"apidoc": "0.3.0",
"generator": {
"name": "apidoc",
- "time": "2021-11-08T14:21:57.401Z",
+ "time": "2021-11-08T15:17:43.440Z",
"url": "http://apidocjs.com",
"version": "0.24.0"
}
"apidoc": "0.3.0",
"generator": {
"name": "apidoc",
- "time": "2021-11-08T14:21:57.401Z",
+ "time": "2021-11-08T15:17:43.440Z",
"url": "http://apidocjs.com",
"version": "0.24.0"
}
--- /dev/null
+{
+ "ERROR404": {
+ "CODE": "404",
+ "MESSAGE": "Sorry but we couldn’t find the page you are looking for",
+ "SEARCH": "Search for anything",
+ "GO_BACK": "Go back to dashboard"
+ }
+}
--- /dev/null
+{
+ "ERROR500": {
+ "CODE": "500",
+ "MESSAGE": "Well, you broke the internet!",
+ "SUBMESSAGE": "Just kidding, looks like we have an internal issue, please try again in couple minutes",
+ "REPORT": "Report this problem",
+ "JIRA_MESSAGE": "Your request has been received and will be processed shortly.",
+ "JIRA_SUBMESSAGE": "Sorry for the inconvenience. If you have any questions or concerns, please do not hesitate to contact us.",
+ "GO_BACK": "Go back to dashboard"
+ }
+}
--- /dev/null
+{
+ "FOOTER": {
+ "COOKIE_LAW": "We use cookies to give you the best experience. Read our <a target=\"_blank\" href=\"https://wiki.xcallymotion.com/display/XMV/Cookie+Policy\" class=\"blue-fg\">cookie policy</a>.",
+ "ERRORS": {}
+ }
+}
--- /dev/null
+{
+ "FORGOTPASSWORD": {
+ "TITLE": "Recover your password",
+ "EMAIL_ADRESS": "Email address",
+ "SEND_RESET_LINK": "SEND RESET LINK",
+ "GO_BACK": "Go back to login",
+ "LINK_SENT": "Link Sent",
+ "LINNK_SENT_MESSAGE": "An email containing a link to reset your password has been sent to your address!",
+ "PASSWORD_RESET_ERROR": "Password Reset Error",
+ "ERRORS": {
+ "EMAIL_REQUIRED": "Mandatory field",
+ "EMAIL_MUST_VALID": "Wrong format"
+ }
+ }
+}
--- /dev/null
+{
+ "HEADER": {
+ "NEWS": "Please visit our <a target=\"_blank\" href=\"https://wiki.xcallymotion.com/display/XMV\" class=\"blue-100-fg\">Wiki</a> to discover the new cool features available on XCALLY.",
+ "ERRORS": {}
+ }
+}
--- /dev/null
+{
+ "LOGIN": {
+ "TELEPHONES": "Telephones",
+ "SELECT": "Select",
+ "CANCEL": "Cancel",
+ "TITLE": "Log in to your account",
+ "EMAIL": "Email",
+ "USERNAME": "Username",
+ "PASSWORD": "Password",
+ "REMEMBER_ME": "Remember Me",
+ "FORGOT_PASSWORD": "Forgot Password?",
+ "LOG_IN": "LOG IN",
+ "OR": "OR",
+ "WITH_GOOGLE": "Log in with Google",
+ "WITH_FACEBOOK": "Log in with Facebook",
+ "DONT_HAVE_ACCOUNT": "No account?",
+ "CREATE_ACCOUNT": "Create an account",
+ "ERRORS": {
+ "EMAIL_REQUIRED": "Mandatory field",
+ "EMAIL_MUST_VALID": "Wrong format",
+ "PASSWORD_REQUIRED": "Mandatory field",
+ "USERNAME_REQUIRED": "Mandatory field"
+ }
+ }
+}
--- /dev/null
+{
+ "ANALYTICS": {
+ "SEND_IF_EMPTY": "Send if empty",
+ "REPORTNAME": "Report Name",
+ "DELETE": "Delete",
+ "NAME": "Name",
+ "ANALYTICS": "Analytics",
+ "METRICS": "Metrics",
+ "ID": "Id",
+ "TABLE": "Table",
+ "DESCRIPTION": "Description",
+ "SEARCH_FOR_ANYONE": "Search",
+ "METRIC": "Metric",
+ "ERRORS": {
+ "NAME_REQUIRED": "Mandatory field",
+ "METRIC_REQUIRED": "Mandatory field",
+ "COLUMN_REQUIRED": "Mandatory field",
+ "VALUE_REQUIRED": "Mandatory field",
+ "CUSTOM_METRIC_REQUIRED": "Mandatory field",
+ "ALIAS_REQUIRED": "Mandatory field"
+ },
+ "NEW_METRIC": "New Metric",
+ "ADD_METRIC": "Add Metric",
+ "EDIT_METRIC": "Edit Metric",
+ "DELETE_METRIC": "Delete Metric",
+ "SAVE": "Save",
+ "BACK": "Back",
+ "SELECTED": "Selected",
+ "SELECT_ALL": "Select All",
+ "SELECT_NONE": "Select None",
+ "TYPE": "Type",
+ "EXTRACTEDREPORTS": "Extracted Reports",
+ "DATE_RANGE_FROM": "Date Range From",
+ "DATE_RANGE_TO": "Date Range To",
+ "GENERATED_AT": "Generated At",
+ "STATUS": "Status",
+ "OUTPUT": "Output",
+ "REPORTS": "Reports",
+ "SEARCH_FOR_FOLDER": "Search for folder",
+ "CREATED_AT": "Created At",
+ "NEW_REPORT": "New Report",
+ "ADD_REPORT": "Add Report",
+ "COPY_REPORT": "Copy Report",
+ "PREVIEW_REPORT": "Preview Report",
+ "WEB_REPORT": "Web Report",
+ "RUN_REPORT": "Run Report",
+ "DOWNLOAD_JSON_REPORT": "Export Report JSON",
+ "EDIT_REPORT": "Edit Report",
+ "DELETE_REPORT": "Delete Report",
+ "CREATE": "Create Folder",
+ "RENAME": "Rename Folder",
+ "REMOVE": "Remove Folder",
+ "SELECT_NODE": "Select Folder",
+ "ERROR": "Error",
+ "QUERY_ERROR": "Query Error",
+ "MESSAGE": "Message",
+ "CLOSE": "Close",
+ "FORMAT": "Format",
+ "SETTINGS": "Settings",
+ "GENERAL": "General",
+ "FIELDS": "Fields",
+ "CONDITION": "Condition",
+ "OPERATOR": "Operator",
+ "GROUP": "Group",
+ "COLUMN": "Column",
+ "VALUE": "Value",
+ "PREVIEW": "Preview",
+ "LIMITED_RESULT": "*Limited Results",
+ "NO_DATA": "No data results",
+ "CONDITIONS": "Conditions",
+ "ALIAS": "Alias",
+ "FUNCTION": "Function",
+ "GROUP_BY": "Group By",
+ "ORDER_BY": "Order By",
+ "ADD_REPORTFIELD": "Add Field",
+ "EDIT_REPORTFIELD": "Edit Field",
+ "DELETE_REPORTFIELD": "Delete Field",
+ "METRIC_NAME": "Metric",
+ "NO_METRIC_FOUND": "No metric found",
+ "NO_AVAILABLE_INFO": "No available info",
+ "CUSTOM_METRIC": "Custom Metric",
+ "DELETE_EXTRACTEDREPORT": "Delete Extracted Report",
+ "EDIT_EXTRACTEDREPORT": "Edit Extracted Report",
+ "DOWNLOAD_EXTRACTEDREPORT": "Download Extracted Report",
+ "PAGE": "Page",
+ "ROWSPERPAGE": "Rows per page",
+ "OF": "of"
+ }
+}
--- /dev/null
+{
+ "CALLYSQUARE": {
+ "ACCOUNT_ID": "Account",
+ "ADDUSER_PROJECTS": "Add Users to Project",
+ "ADD_ODBC": "Add ODBC",
+ "ADD_PROJECT": "Add Project",
+ "ADD_VARIABLE": "Add Variable",
+ "AGENTS": "Agents",
+ "AGI": "AGI",
+ "ALL_USERS": "All Users",
+ "ANSWER": "Answer",
+ "APIKEY": "ApiKey",
+ "APPID": "App ID",
+ "APPLICATION": "Application",
+ "APPSECRET": "App Secret",
+ "ARGS": "Arguments",
+ "ATTACHMENT_NAME": "Attachment Name",
+ "ATTACHMENT_PATH": "Attachment Path",
+ "ATTACHMENT_TYPE": "Attachment Type",
+ "AUDIO": "Audio",
+ "AUDIOENCODING": "Audio Encoding",
+ "AWSLEX": "Amazon Lex",
+ "AWSPOLLY": "AWS Polly",
+ "AWS_ACCESS_KEY_ID": "Access Key ID",
+ "AWS_BOT_NAME": "Bot name",
+ "AWS_LEX_REGION": "Region",
+ "AWS_POLLY_REGION": "Region",
+ "AWS_POLLY_VOICE": "Voice",
+ "AWS_SECRET_ACCESS_KEY": "Secret Access Key",
+ "AWS_TEXT_TYPE": "Text type",
+ "BACK": "Back",
+ "BCC": "BCC",
+ "BEEP": "Beep",
+ "BODY": "Body",
+ "CALLBACK": "Callback",
+ "CALLBACK_PRIORITY": "Priority",
+ "CALLYSQUARE": "Cally Square",
+ "CC": "CC",
+ "CHOOSE_ATTACHMENT": "Choose Attachment",
+ "CLIENT_EMAIL": "Client Email",
+ "CLOSE": "Close",
+ "COMMAND": "Command",
+ "COMPUTEDVARIABLES": "Computed Variables Script Path",
+ "CONDITION": "Condition",
+ "CONTEXT": "Context",
+ "COPY": "Copy",
+ "COPY_PROJECT": "Copy Project",
+ "CREATED_AT": "Created At",
+ "CUSTOM_ACTION": "Custom Action",
+ "CUSTOM_ACTION_DATA": "Custom Action Data",
+ "CUSTOM_APP": "Custom Application",
+ "DATABASE": "Database",
+ "DELAY": "delay [min]",
+ "DELETE": "Delete",
+ "DELETE_ODBC": "Delete ODBC",
+ "DELETE_PROJECT": "Delete Project",
+ "DELETE_SQUARERECORDING": "Delete Square Recording",
+ "DESCRIPTION": "Description",
+ "DIAL": "Dial",
+ "DIALOGFLOW": "Dialogflow",
+ "DIALOGFLOWV2": "DialogflowV2",
+ "DIALOGFLOWV2_LANGUAGE": "Language",
+ "DIALOGFLOWV2_PROJECT_ID": "Project ID",
+ "DIALOGFLOW_LANGUAGE": "Language",
+ "DIGIT": "Max Digits",
+ "DIGITS": "Digits",
+ "DOWNLOAD_SQUARERECORDING": "Download Square Recording",
+ "DROP_TO_UPLOAD": "DROP TO UPLOAD",
+ "DROP_TO_UPLOAD_MESSAGE": "You can also drop files here to upload. Only XML - Max. 5MB",
+ "DSN": "DSN",
+ "EDIT": "Edit",
+ "EDIT_ODBC": "Edit ODBC",
+ "EDIT_PROJECT": "Edit Project",
+ "EDIT_SQUARERECORDING": "Edit Square Recording",
+ "EDIT_XML": "Edit XML",
+ "END": "End",
+ "ERRORS": {
+ "DSN_REQUIRED": "Mandatory field",
+ "FIELD_REQUIRED": "Mandatory field",
+ "NAME_REQUIRED": "Mandatory field",
+ "PROJECT_REQUIRED": "Mandatory field",
+ "URL_REQUIRED": "Mandatory field"
+ },
+ "ESCAPE_DIGITS": "Escape Digits",
+ "EXTEN": "Exten",
+ "EXTENSION": "Extension",
+ "EXT_DIAL": "External Dial",
+ "FILE": "Filename",
+ "FILENAME": "Filename",
+ "FILE_ID": "Audio",
+ "FINALLY": "Finally",
+ "FINDBY": "Find By",
+ "GETDIGITS": "Get Digits",
+ "GETSECRETDIGITS": "Get Secret Digits",
+ "GOAL": "Goal",
+ "GOALNAME": "Goal Name",
+ "GOOGLEASR": "GoogleASR",
+ "GOOGLE_ASR_LANGUAGE": "Language",
+ "GOOGLE_CLOUD_TTS": "Google Cloud TTS",
+ "GOOGLE_CLOUD_TTS_TEXT_TYPE": "Text Type",
+ "GOOGLE_TTS_LANGUAGE": "Language",
+ "GOSUB": "GoSub",
+ "GOTOC": "GoTo",
+ "GOTOIF": "GoToIf",
+ "GOTOIFTIME": "GoToIfTime",
+ "GO_TO_PROJECTS": "Go to projects",
+ "GRAMMAR": "Grammar",
+ "HANGUP": "Hangup",
+ "HEADERS": "Headers",
+ "HELP": {
+ "BCC": "You can add multiple addresses separated by commas (e.g. john.doe@xcally.com, jane.miller@xcally.com)",
+ "CC": "You can add multiple addresses separated by commas (e.g. john.doe@xcally.com, jane.miller@xcally.com)",
+ "DSN": "Example: DRIVER=MySQL;SERVER=127.0.0.1;UID=xcall;PWD=password;DATABASE=motion",
+ "MAILBOX": "mailbox@context",
+ "MAX_TEXT_TTS": "The maximum number of characters supported is 200",
+ "TO": "You can add multiple addresses separated by commas (e.g. john.doe@xcally.com, jane.miller@xcally.com)"
+ },
+ "HIDDENDIGITSNUM": "Hiddden Digits Number",
+ "HIDDENDIGITSPOS": "hidden Digits Position",
+ "ID": "Id",
+ "IMPORT": "Import",
+ "IMPORT_XML": "Import XML",
+ "INTERVAL_ID": "Interval",
+ "INTKEY": "Interrupt Key",
+ "ISPEECHASR": "iSpeech ASR",
+ "ISPEECHTTS": "iSpeech Text-To-Speech",
+ "ISPEECH_ASR_LANGUAGE": "Language",
+ "ISPEECH_TTS_LANGUAGE": "Language",
+ "KEY": "Key",
+ "LABEL": "Label",
+ "LANGUAGECODE": "Language Code",
+ "LASTNAME": "Last Name",
+ "LIST_ID": "List",
+ "LOGIN": "Login",
+ "LOGOUT": "Logout",
+ "LUMENVOXASR": "Lumenvox ASR",
+ "LUMENVOXTTS": "Lumenvox Text-To-Speech",
+ "MACRO": "Macro",
+ "MAILBOX": "Mailbox",
+ "MATH": "Math",
+ "MAXDIGIT": "Maximum Digits",
+ "MENU": "Menu",
+ "METHOD": "Method",
+ "MINDIGIT": "Minimum Digits",
+ "MODEL": "Model",
+ "MRCPRECOG": "MRCPRecog",
+ "MRCPSYNTH": "MRCPSynth",
+ "NAME": "Name",
+ "NDAACTIVITY_TYPE": "Activity Type",
+ "NDAGENERATE_AUDIO": "Generate Audio File",
+ "NDASSISTANT_URL": "NDASSISTANT Url",
+ "NDAUTH_URL": "NDAUTH Url",
+ "NEW": "New",
+ "NEW_ODBC": "New ODBC connection",
+ "NEW_PROJECT": "New Project",
+ "NEW_VARIABLE": "New Variable",
+ "NOOP": "NoOp",
+ "NOTES": "Notes",
+ "NO_AVAILABLE_INFO": "No available info",
+ "NUMBER": "Number",
+ "ODBC": "ODBC",
+ "ODBC_ID": "ODBC Connection",
+ "OF": "of",
+ "OPEN": "Open",
+ "OPEN_NEW_WINDOW": "Open in a new window",
+ "OPEN_PROJECT": "Open Project",
+ "OPERATION": "Operation",
+ "OPTIONS": "Options",
+ "OPTS": "Options",
+ "OUTPUT": "Output",
+ "PAGE": "Page",
+ "PASSWORD": "Password",
+ "PAUSE": "Pause",
+ "PAUSE_ID": "Pause type",
+ "PERMISSIONADD_PROJECTS": "Add Users to Project",
+ "PHONE": "Phone",
+ "PLAYBACK": "Playback",
+ "POSITION": "Position",
+ "PRIORITY": "Priority",
+ "PRIVATE_KEY": "Private Key",
+ "PROJECT": "Project",
+ "PROJECTS": "Projects",
+ "PROJECT_ID": "Project",
+ "QUERY": "Query",
+ "QUEUE": "Queue",
+ "QUEUE_ID": "Queue",
+ "RAWBODY": "Body",
+ "RAWHEADERS": "Headers",
+ "RECORD": "Record",
+ "RECORDINGFORMAT": "Recording Format",
+ "RESPONSE": "Response Timeout",
+ "RESTAPI": "Rest API",
+ "RETRY": "Retries",
+ "ROWSPERPAGE": "Rows per page",
+ "SAVE": "Save",
+ "SAYDIGITS": "Say Digits",
+ "SAYNUMBER": "Say number",
+ "SAYPHONETIC": "Say Phonetics",
+ "SEARCH_FOR_ANYONE": "Search",
+ "SELECTED": "Selected",
+ "SELECTED_USERS": "Selected Users",
+ "SELECT_ALL": "Select All",
+ "SELECT_NONE": "Select None",
+ "SENDFAX": "Send Fax",
+ "SENDMAIL": "Send Email",
+ "SENDSMS": "Send SMS",
+ "SESTEKASR": "Sestek ASR",
+ "SESTEKNDA": "Sestek NDA",
+ "SESTEKTTS": "Sestek TTS",
+ "SET": "Set",
+ "SIP_ID": "SIP",
+ "SMS_ACCOUNT_ID": "Account",
+ "SMS_TEXT": "Text",
+ "SPEED": "Speed",
+ "SQUARERECORDINGS": "Recordings",
+ "SSMLGENDER": "Gender",
+ "START": "Start",
+ "SUBJECT": "Subject",
+ "SUBPROJECT": "Sub Project",
+ "SYSTEM": "System",
+ "TELEPHONES": "Telephones",
+ "TEMPLATE_ID": "Template",
+ "TEST_ODBC": "Test ODBC",
+ "TEXT": "Text",
+ "TILDEASR": "Tilde ASR",
+ "TIMEOUT": "Timeout",
+ "TO": "To",
+ "TRUNK_NAME": "Trunk",
+ "TTS": "Google Text-To-Speech",
+ "UNIQUEID": "Unique ID",
+ "UNPAUSE": "End Pause",
+ "UPDATE_DESCRIPTION": "Update Description",
+ "UPDATE_INFO": "Update Info",
+ "URI": "URI",
+ "URL": "URL",
+ "USERNAME": "Username",
+ "USERS": "Users",
+ "VARIABLE_ID": "Variable",
+ "VARIABLE_VALUE": "Value",
+ "VOICEMAIL": "Voicemail",
+ "VSWITCH": "Variable Switch"
+ }
+}
--- /dev/null
+{
+ "CHAT": {
+ "EDIT_DIALOGFLOWV2": "Edit Dialogflow V2",
+ "DIALOGFLOWV2": "Dialogflow V2",
+ "PRIVATEKEY": "Private Key",
+ "CLIENTEMAIL": "Client Email",
+ "PROJECTID": "Project ID",
+ "VIDAOOESCALATION": "Start Video Call",
+ "VIDAOOAPIKEY": "Vidaoo Api Key",
+ "VIDAOOSESSION": "Start Video Call",
+ "VIDAOOTOPIC": "Vidaoo Topic",
+ "VIDAOONOTE": "Vidaoo Note",
+ "VIDAOOMETADATA": "Vidaoo Metadata",
+ "VIDEO": "Video",
+ "VIDAOO": "Vidaoo",
+ "EDIT_AMAZONLEX": "Edit Amazon Lex",
+ "AMAZONLEX": "Amazon Lex",
+ "ACCESSKEYID": "Access Key ID",
+ "SECRETACCESSKEY": "Secret Access Key",
+ "LEXREGION": "Region",
+ "BOTNAME": "Bot Name",
+ "LOGIN_TIME": "Login time",
+ "PAUSE_TIME": "Pause time",
+ "DOWNLOAD_INTERACTION": "Download",
+ "ENABLECUSTOMERCHECKMARKS": "Enable customer delivered/read notifications",
+ "TRANSFER": "Transfer",
+ "QUEUETRANSFER": "Queue Transfer",
+ "QUEUETRANSFERTIMEOUT": "Queue Transfer Timeout",
+ "AGENTTRANSFER": "Agent Transfer",
+ "AGENTTRANSFERTIMEOUT": "Agent Transfer Timeout",
+ "SYSTEMAVATAR": "System Avatar",
+ "SYSTEMALIAS": "System Alias",
+ "OPEN_NEW_INTERACTION": "Open new interaction",
+ "EMAIL_ACCOUNT": "Email account",
+ "SUBJECT": "Subject",
+ "WELCOMEMESSAGE": "Welcome Message",
+ "LANGUAGE": "Language",
+ "EDIT_DIALOGFLOW": "Edit Dialogflow",
+ "DIALOGFLOW": "Dialogflow",
+ "BACKGROUNDCOLOR": "Background Color",
+ "MESSAGEFONTSIZE": "Message Font Size",
+ "ADD_NOTE": "Add note",
+ "NOTE": "Note",
+ "TAG": "Tag",
+ "EDIT_TAG": "Edit Tag",
+ "CUSTOMERALIAS": "Customer Alias",
+ "SNIPPETSWIPEOUT": "Snippet swipe out",
+ "CUSTOMERAVATAR": "Customer Avatar",
+ "SHOWCUSTOMERAVATAR": "Show customer avatar",
+ "CANNED_ANSWER_NOT_FOUND": "No Canned Answers were found",
+ "DEFAULTTITLE": "Default Title",
+ "MESSAGESALIGNMENT": "Messages Alignment",
+ "ALTERNATE": "Alternate",
+ "CENTERED": "Centered",
+ "POSITION": "Position",
+ "VERTICALPOSITION": "Vertical position",
+ "ALIGNMENT": "Alignment",
+ "VERTICALALIGNMENT": "Vertical alignment",
+ "BOTTOM_RIGHT": "Bottom right",
+ "RIGHT": "Right",
+ "LEFT": "Left",
+ "WAITFORTHEASSIGNEDAGENT": "Wait for the assigned agent",
+ "AGENTIDENTIFIER": "Identifier",
+ "WEBSITEALIAS": "Website Alias",
+ "AGENTALIAS": "Agent Alias",
+ "AGENTFULLNAME": "Agent Fullname",
+ "INSERT_MESSAGE_HERE": "Insert your text message here",
+ "HIDEWHENOFFLINE": "Hide",
+ "NOTIFICATION": "Notification",
+ "NOTIFICATIONSOUND": "Sound",
+ "NOTIFICATIONSHAKE": "Shake",
+ "NOTIFICATIONTEMPLATE": "Template",
+ "SYSTEM": "System",
+ "EDIT_SYSTEM": "Edit System",
+ "COMMAND": "Command",
+ "TEXTCOLOR": "Text Color",
+ "FONTSIZE": "Font Size",
+ "WEBSCRIPT": "Web Script",
+ "CANNEDANSWERS": "Canned Answers",
+ "CHATCANNEDANSWERS": "Canned Answers",
+ "NO_CHATCANNEDANSWER_AVAILABLE": "No Canned Answers Available",
+ "NEW_CHATCANNEDANSWER": "New Canned Answer",
+ "ADD_CHATCANNEDANSWER": "Add Canned Answer",
+ "EDIT_CHATCANNEDANSWER": "Edit",
+ "DELETE_CHATCANNEDANSWER": "Delete",
+ "OFFLINEMESSAGESUBJECT": "Message subject",
+ "OFFLINEMESSAGEBODY": "Message body",
+ "FORMSUBMITSUCCESSMESSAGE": "Form submit success message",
+ "FORMSUBMITFAILUREMESSAGE": "Form submit failure message",
+ "PLACEHOLDERMESSAGE": "Message placeholder",
+ "NOTETITLE": "Note's title",
+ "CLOSINGQUESTION": "Closing question",
+ "TAGS": "Tags",
+ "SHOWAGENTAVATAR": "Show personal agent avatar",
+ "AGENTAVATAR": "Agent Avatar",
+ "SPYINTERACTION": "Spy",
+ "NO_AGENT_ONLINE": "No Agent Online",
+ "GOTOREALTIME_CHATQUEUE": "Go To Realtime Chat Queue",
+ "PARTIALPAUSE": "Partial Pause",
+ "BUSY": "Busy",
+ "TIMER": "Timer",
+ "IDLE": "Idle",
+ "CAPACITY": "Capacity",
+ "AGENTSADD_QUEUE": "Add Agent to Chat Queue",
+ "QUEUES": "Queues",
+ "LOGGED_IN": "Logged in",
+ "PAUSED": "Paused",
+ "READY": "Ready",
+ "WAITING": "Waiting",
+ "WRITING": "Writing",
+ "CHAT": "Chat",
+ "MAIL": "Email",
+ "SMS": "SMS",
+ "OPENCHANNEL": "Openchannel",
+ "FAX": "Fax",
+ "PAUSE": "Pause",
+ "REALTIME": "Realtime",
+ "AGENTS": "Agents",
+ "FULLNAME": "Full Name",
+ "INTERNAL": "Internal",
+ "PHONE_STATE": "Phone State",
+ "PHONE_STATUS": "Phone Status",
+ "LOGOUT": "Logout",
+ "UNPAUSE": "End Pause",
+ "AGENTADD_QUEUE": "Add Agent to Chat Queue",
+ "TEXT": "Text",
+ "TIMES": "Number of times per interaction",
+ "EDIT_AUTOREPLY": "Edit Auto Reply",
+ "AUTOREPLY": "Auto Reply",
+ "NEW_CHATDISPOSITION": "New Chat Disposition",
+ "ENABLECUSTOMERATTACHMENT": "Enable Customer Attachments",
+ "ENABLESENDBUTTON": "Enable Send Button",
+ "OFFLINE_CHAT_BUTTON": "'Offline Chat' Button",
+ "OFFLINESTATUS": "Offline Status",
+ "NAME": "Name",
+ "CHATQUEUES": "Chat Queues",
+ "SEARCH_FOR_ANYONE": "Search",
+ "STRATEGY": "Strategy",
+ "AGENT_TIMEOUT": "Agent Timeout",
+ "DESCRIPTION": "Description",
+ "KEY": "Key",
+ "ALIAS": "Alias",
+ "VARIABLE": "Variable",
+ "INTERVAL": "Interval",
+ "EDIT_CLOSE": "Edit Close",
+ "TIMEZONE": "Timezone",
+ "MESSAGE": "Message",
+ "ADVANCED": "Advanced",
+ "FORWARDTRANSCRIPT": "Forward Transcript",
+ "FORWARDTRANSCRIPTMESSAGE": "Forward Transcript Message",
+ "SKIPMESSAGEBUTTON": "Skip Message Button",
+ "EDIT_MESSAGE": "Edit Message",
+ "CONDITION_AGREEMENT": "Condition Agreement",
+ "NONE": "None",
+ "PRIORITY": "Priority",
+ "ONLINESTATUS": "Online Status",
+ "UNMANAGEDSTATUS": "Unmanaged Status",
+ "AUTOCLOSE": "Enable Autoclose",
+ "ENABLEUNMANAGEDNOTE": "Enable Unmanaged Message",
+ "UNMANAGEDMESSAGE": "Message",
+ "SKIPUNMANAGED": "Skip Message",
+ "SENDUNMANAGED": "Send Message",
+ "WEBSITESCRIPT": "Website Script",
+ "DELETE_OFFLINEMESSAGE": "Delete",
+ "OFFLINEMESSAGES": "Offline Messages",
+ "FORWARD_OFFLINE": "Forward Offline",
+ "SHOW_OFFLINEMESSAGE": "Show",
+ "FORWARD_OFFLINE_ADDRESS": "Forward Offline Address",
+ "CLOSINGFORM": "Closing Form",
+ "ENABLERATING": "Enable Rating",
+ "ENABLECUSTOMERWRITING": "Allow customer writing before agent accepting",
+ "ENABLEFEEDBACK": "Enable Feedback",
+ "FEEDBACKTITLE": "Feedback Title",
+ "RATINGTYPE": "Rating Type",
+ "CLOSINGMESSAGE": "Closing Message",
+ "CLOSINGMESSAGEBUTTON": "Closing Message Button",
+ "RATINGSTARSNUMBER": "Rating Stars Number",
+ "EDIT_GOTOIF": "Edit GotoIf",
+ "CONDITION": "Condition",
+ "TRUEPRIORITY": "True Priority",
+ "FALSEPRIORITY": "False Priority",
+ "VALUE": "Value",
+ "MANDATORYDISPOSITION": "Mandatory disposition",
+ "MANDATORYDISPOSITIONPAUSEID": "Pause to use if mandatory disposition is enabled",
+ "SERVICEID": "Service ID",
+ "CHANNELID": "Channel ID",
+ "EDIT_TVOX": "Edit TVox",
+ "SERVICENAME": "Service name",
+ "TVOX": "TVox",
+ "TVOXURL": "TVox IP URL",
+ "TVOXIP": "TVox IP Address",
+ "TVOXUSERNAME": "TVox Username",
+ "TVOXPASSWD": "TVox Password",
+ "TVOXLOGINURL": "TVox Login REST Url",
+ "TVOXSESSIONURL": "TVox Session REST Url",
+ "MOTIONURLONRING": "Motion URL On Ring",
+ "MOTIONURLONANSWER": "Motion URL On Answer",
+ "MOTIONTITLE": "Motion Title",
+ "MOTIONURL": "Motion URL",
+ "ERRORS": {
+ "PROJECTID_REQUIRED": "Mandatory Field",
+ "CLIENTEMAIL_REQUIRED": "Mandatory Field",
+ "PRIVATEKEY_REQUIRED": "Mandatory Field",
+ "VIDAOOAPIKEY_REQUIRED": "Mandatory Field",
+ "VIDAOOTOPIC_REQUIRED": "Mandatory Field",
+ "BOTNAME_REQUIRED": "Mandatory Field",
+ "SECRETACCESSKEY_REQUIRED": "Mandatory Field",
+ "ACCESSKEYID_REQUIRED": "Mandatory Field",
+ "QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "QUEUETRANSFERTIMEOUT_REQUIRED": "Mandatory Field",
+ "AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "AGENTTRANSFERTIMEOUT_REQUIRED": "Mandatory Field",
+ "CUSTOMERALIAS_REQUIRED": "Mandatory Field",
+ "AGENTALIAS_REQUIRED": "Mandatory Field",
+ "SYSTEMALIAS_REQUIRED": "Mandatory Field",
+ "MESSAGEFONTSIZE_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "MESSAGEFONTSIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "MESSAGEFONTSIZE_REQUIRED": "Mandatory Field",
+ "TAG_REQUIRED": "Mandatory Field",
+ "VERTICALPOSITION_REQUIRED": "Mandatory Field",
+ "VERTICALPOSITION_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "VERTICALPOSITION_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "WAITFORTHEASSIGNEDAGENT_REQUIRED": "Mandatory Field",
+ "AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "NAME_MUST_VALID_PATTERN": "Wrong format",
+ "COMMAND_REQUIRED": "Mandatory Field",
+ "FONTSIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "FONTSIZE_REQUIRED": "Mandatory Field",
+ "TEXT_MAX_LENGTH": "The value must have a maximum length equal to {{max}}",
+ "VALUE_REQUIRED": "Mandatory Field",
+ "CUSTOMERALIAS_MAX_LENGTH": "The value must have a maximum length equal to {{max}}",
+ "SYSTEMALIAS_MAX_LENGTH": "The value must have a maximum length equal to {{max}}",
+ "OFFLINEMESSAGESUBJECT_MAX_LENGTH": "The value must have a maximum length equal to {{max}}",
+ "OFFLINEMESSAGEBODY_MAX_LENGTH": "The value must have a maximum length equal to {{max}}",
+ "PLACEHOLDERMESSAGE_MAX_LENGTH": "The value must have a maximum length equal to {{max}}",
+ "NOTETITLE_MAX_LENGTH": "The value must have a maximum length equal to {{max}}",
+ "FORMSUBMITSUCCESSMESSAGE_MAX_LENGTH": "The value must have a maximum length equal to {{max}}",
+ "FORMSUBMITFAILUREMESSAGE_MAX_LENGTH": "The value must have a maximum length equal to {{max}}",
+ "CLOSINGQUESTION_MAX_LENGTH": "The value must have a maximum length equal to {{max}}",
+ "HEADER_OFFLINE_MAX_LENGTH": "The value must have a maximum length equal to {{max}}",
+ "OFFLINE_CHAT_BUTTON_MAX_LENGTH": "The value must have a maximum length equal to {{max}}",
+ "TEXT_REQUIRED": "Mandatory Field",
+ "SENDUNMANAGED_REQUIRED": "Mandatory Field",
+ "SENDUNMANAGED_MAX_LENGTH": "The value must have a maximum length equal to {{max}}",
+ "SKIPUNMANAGED_MAX_LENGTH": "The value must have a maximum length equal to {{max}}",
+ "UNMANAGEDMESSAGE_MAX_LENGTH": "The value must have a maximum length equal to {{max}}",
+ "WEBSITEALIAS_MAX_LENGTH": "The value must have a maximum length equal to {{max}}",
+ "AGENT_REQUIRED": "Mandatory Field",
+ "QUEUE_REQUIRED": "Mandatory Field",
+ "CONDITION_REQUIRED": "Mandatory Field",
+ "PRIORITY_REQUIRED": "Mandatory Field",
+ "TRUEPRIORITY_REQUIRED": "Mandatory Field",
+ "FALSEPRIORITY_REQUIRED": "Mandatory Field",
+ "NAME_REQUIRED": "Mandatory Field",
+ "LIST_REQUIRED": "Mandatory Field",
+ "AGENT_TIMEOUT_REQUIRED": "Mandatory Field",
+ "MOTIONADDRESS_REQUIRED": "Mandatory Field",
+ "DISPOSITION_REQUIRED": "Mandatory Field",
+ "MOTIONADDRESS_MUST_VALID_URL": "Wrong format",
+ "EMAIL_MUST_BE_VALID": "Wrong format",
+ "ADDRESS_REQUIRED": "Mandatory Field",
+ "ADDRESS_MUST_VALID_URL": "Wrong format",
+ "ENQUIRY_FORWARDING_ADDRESS_REQUIRED": "Mandatory Field",
+ "ACCEPTURL_MUST_VALID_URL": "Wrong format",
+ "TIMEOUT_REQUIRED": "Mandatory Field",
+ "REJECTURL_MUST_VALID_URL": "Wrong format",
+ "CLOSEURL_MUST_VALID_URL": "Wrong format",
+ "PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": " The value must be greater than or equal to",
+ "TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": " The value must be greater than or equal to",
+ "FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": " The value must be greater than or equal to",
+ "TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": " The value must be greater than or equal to",
+ "POLLING_INTERVAL_MUST_BE_GREATER_THAN_OR_EQUAL_TO": " The value must be greater than or equal to",
+ "WAITINGMESSAGE_REQUIRED": "Mandatory Field",
+ "WAITINGTITLE_REQUIRED": "Mandatory Field",
+ "KEY_MAX_LENGTH": "The value must have a maximum length equal to {{max}}",
+ "KEY_REQUIRED": "Mandatory Field",
+ "WAITINGMESSAGE_MAX_LENGTH": "The value must have a maximum length equal to {{max}}",
+ "WAITINGTITLE_MAX_LENGTH": "The value must have a maximum length equal to {{max}}",
+ "RATINGSTARSNUMBER_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Mandatory field",
+ "EMAIL_ACCOUNT_REQUIRED": "Mandatory field"
+ },
+ "CM_FIELD": "Contact Manager Field",
+ "CHATPROACTIVEACTIONS": "Proactive Actions",
+ "NEW_CHATPROACTIVEACTION": "New Proactive Action",
+ "EDIT_CHATPROACTIVEACTION": "Edit Proactive Action",
+ "DELETE_CHATPROACTIVEACTION": "Delete Proactive Action",
+ "ADD_CHATPROACTIVEACTION": "Add Proactive Action",
+ "NO_CHATPROACTIVEACTION_AVAILABLE": "No Proactive Actions Available",
+ "NO_OFFLINEMESSAGE_AVAILABLE": "No Offline Messages Available",
+ "MOUSEOVER": "Mouse Over",
+ "TIMEOUT": "Timeout",
+ "TYPE": "Type",
+ "SELECTOR": "Selector",
+ "AGENT": "Agent",
+ "GOTO": "Goto",
+ "GOTOIF": "GotoIf",
+ "NOOP": "Noop",
+ "QUEUE": "Queue",
+ "BUILDER": "Builder",
+ "PREVIEW": "Preview",
+ "EDIT_AGENT": "Edit Agent",
+ "EDIT_QUEUE": "Edit Queue",
+ "EDIT_GOTO": "Edit Goto",
+ "EDIT_GOTOIf": "Edit GotoIf",
+ "EDIT_NOOP": "Edit Noop",
+ "ADD_CHATQUEUE": "Add Chat Queue",
+ "EDIT_CHATQUEUE": "Edit Chat Queue",
+ "DELETE_CHATQUEUE": "Delete Chat Queue",
+ "SETTINGS": "Settings",
+ "SAVE": "Save",
+ "SCRIPT": "Script",
+ "TOKEN": "Token",
+ "CREATED_AT": "Created At",
+ "CHATWEBSITES": "Chat Websites",
+ "MOTIONADDRESS": "Website Domain",
+ "MOTIONPROXY": "Proxy Or Motion Domain",
+ "ADD_CHATWEBSITE": "Add Chat Website",
+ "EDIT_CHATWEBSITE": "Edit Chat Website",
+ "DELETE_CHATWEBSITE": "Delete Chat Website",
+ "LIST": "List",
+ "SNIPPET": "Snippet",
+ "FORMS": "Forms",
+ "UP": "Up",
+ "DOWN": "Down",
+ "COLLAPSE": "Collapse",
+ "PROACTIVEACTIONS": "Proactive Actions",
+ "DISPOSITIONS": "Dispositions",
+ "WEBHOOKS": "WebHooks",
+ "ACTIONS": "Actions",
+ "FIDELITY": "Fidelity",
+ "APPEARANCE": "Appearance",
+ "MAINCOLOR": "Main Color",
+ "FOCUSCOLOR": "Focus Color",
+ "BUTTONCOLOR": "Button Color",
+ "HEADERSHAPE": "Header Shape",
+ "ANIMATION": "Animation",
+ "DEFAULT": "Default",
+ "WHITELABEL": "White Label",
+ "LOGO": "Logo",
+ "DOWNLOADTRANSCRIPT": "Download Transcript",
+ "ENQUIRY_ENABLE": "Enquiry Enable",
+ "ENQUIRY_FORWARDING": "Enquiry Forwarding",
+ "ENQUIRY_FORWARDING_ADDRESS": "Enquiry Forwarding Address",
+ "LABELS": "Labels",
+ "HEADER_ONLINE": "Online Header",
+ "ONLINE_MESSAGE": "Online Message",
+ "NAME_TITLE": "Name Input Label",
+ "USERNAME_PLACEHOLDER": "Username Input Placeholder",
+ "EMAIL_TITLE": "Email Input Label",
+ "EMAIL_PLACEHOLDER": "Email Input Placeholder",
+ "START_CHAT_BUTTON": "'Start Chat' Button",
+ "AGENTS_BUSY": "Busy Agents Message",
+ "HEADER_OFFLINE": "Offline Header",
+ "OFFLINE_MESSAGE": "Offline Message",
+ "MESSAGE_TITLE": "Message Label",
+ "ENQUIRY_MESSAGE_PLACEHOLDER": "Enquiry Message Input Placeholder",
+ "ENQUIRY_BUTTON": "Enquiry Button Text",
+ "RATING_MESSAGE": "Rating Message",
+ "RATING_SEND": "Rating Send Button Text",
+ "RATING_SKIP": "Rating Skip Button Text",
+ "ONLINE": "Online",
+ "OFFLINE": "Offline",
+ "PROACTIVE": "Proactive",
+ "ACCEPT": "Accept",
+ "ACCEPTMETHOD": "Accept Method",
+ "ACCEPTURL": "Accept URL",
+ "REJECT": "Reject",
+ "REJECTMETHOD": "Reject Method",
+ "REJECTURL": "Reject URL",
+ "CLOSE": "Close",
+ "CLOSEMETHOD": "Close Method",
+ "CLOSEURL": "Close URL",
+ "EMBEDDING": "Embedding",
+ "GENERAL": "General",
+ "SELECTED": "Selected",
+ "SELECT_ALL": "Select All",
+ "SELECT_NONE": "Select None",
+ "BACK": "Back",
+ "HELP": {
+ "VERTICALPOSITION": "Represents the distance in percentage from top",
+ "AGENTIDENTIFIER": "Represents the agent identifier within the chat session in the snippet",
+ "HIDEWHENOFFLINE": "Hides snippet when offline",
+ "KEY": "Website short name (5 char) shown on the Agent Tab",
+ "TOKEN": "Automatically generated token used in the Script",
+ "INTEVAL": "To be selected from the list of the available intervals",
+ "TIMEZONE": "Select one from the list (default=local timezone)",
+ "ENABLERATING": "Enable it if you want the web visitor can rate the interaction at the end",
+ "ENABLEFEEDBACK": "Enable it if you want the web visitor can send a feedback (up to 150 char) at the end",
+ "FORWARDTRANSCRIPT": "Enable it if you want the web visitor is asked to receive a chat transcript via email",
+ "AUTOCLOSE": "Enable it if you want chat sessions to be closed as Unmanaged if no agent is available. Learn more about it at: https://wiki.xcallymotion.com/display/XMV/Chat+Websites#ChatWebsites-Snippet",
+ "ENABLEUNMANAGEDNOTE": "Enable it if you want the visitor is shown a message when all the agents are busy and the chat gets unmanaged",
+ "WEBSITEALIAS": "A prefix used to compose the agent name (prefix+Agent Id) shown to the web visitor during the chat session",
+ "ENABLECUSTOMERWRITING": " Enable it if you want the chat starts without waiting for an available agent (pay attention: if you enable it, your chats will never get unmanaged). Learn more at: https://wiki.xcallymotion.com/display/XMV/Chat+Websites#ChatWebsites-Snippet",
+ "MAPKEY": "The following Motion Contact Manager field:",
+ "FROMKEY": "Will be mapped in your Motion Chat Snippet as:",
+ "COPYSCRIPTTOCLIPBOARD": "Copy and paste the script text into your website",
+ "FORWARD_OFFLINE": "You can add multiple addresses separated by commas (e.g. john.doe@xcally.com, jane.miller@xcally.com)",
+ "MOTIONADDRESS": "The field must have the following format: <protocol>://<ipaddress>[:<port>]. Example: https://X.Y.Z.W",
+ "MOTIONPROXY": "The field must have the following format: <protocol>://<ipaddress>[:<port>]. Example: https://X.Y.Z.W",
+ "NAME": "Only numbers, letters and specific characters (._) are supported",
+ "LIST": "Contact Manager list used to associate Contacts",
+ "INTERVAL": "Select one from the list",
+ "MANDATORYDISPOSITION": "Mandatory disposition",
+ "MANDATORYDISPOSITIONPAUSEID": "Pause to use if mandatory disposition is enabled",
+ "WELCOMEMESSAGE": "Leave empty if you don't want to send any welcome message"
+ },
+ "ADDRESS": "Address",
+ "ONLINESTATE": "Online Status",
+ "OFFLINESTATE": "Offline Status",
+ "RATINGSTATE": "Rating State",
+ "ENQUIRY": "Enquiry",
+ "OFFLINETEMPLATE": "Offline Template",
+ "CHATDISPOSITIONS": "Chat Dispositions",
+ "NO_CHATDISPOSITION_AVAILABLE": "No Chat Dispositions available",
+ "ADD_CHATDISPOSITION": "Add Chat Disposition",
+ "DELETE": "Delete",
+ "EDIT_CHATDISPOSITION": "Edit Chat Disposition",
+ "DELETE_CHATDISPOSITION": "Delete Chat Disposition",
+ "ID": "Id",
+ "NEW_CHATQUEUE": "New Chat Queue",
+ "NEW_CHATWEBSITE": "New Chat Website",
+ "ROUNDED": "Rounded",
+ "SQUARED": "Squared",
+ "NO_AVAILABLE_INFO": "No available info",
+ "ALL_TEAMS": "All Teams",
+ "SELECTED_TEAMS": "Selected Teams",
+ "PAGE": "Page",
+ "ROWSPERPAGE": "Rows per page",
+ "OF": "of",
+ "CONTACT": "Contact",
+ "STARTEDAT": "Started At",
+ "LASTMESSAGE": "Last message",
+ "STATUS": "Status",
+ "CLOSED": "Closed",
+ "OPENED": "Open",
+ "OPEN": "Open",
+ "ACCOUNT": "Account",
+ "INTERACTION": "Interaction",
+ "INTERACTIONS": "Interactions",
+ "WEBSITE": "Website",
+ "ALL": "All",
+ "SELECT_STATUS": "Select a status",
+ "FILTER": "Filter",
+ "FILTERS": "Filters",
+ "TEAMADD_CHATQUEUE": "Add Team to Chat Queue",
+ "AGENTADD_CHATQUEUE": "Add Agent to Chat Queue",
+ "ALL_AGENTS": "All Agents",
+ "SELECTED_AGENTS": "Selected Agents",
+ "CLOSEDAT": "Closed At",
+ "DISPOSITION": "Disposition",
+ "CREATEDAT": "Created At",
+ "NOTES": "Notes",
+ "NO_INTERACTION_AVAILABLE": "No interactions available",
+ "SELECTED_WEBSITE": "Select a website",
+ "GOTOP": "Gotop",
+ "EDIT_GOTOP": "Edit Gotop",
+ "SELECT_WEBSITE": "Select a website",
+ "INFO": "Info",
+ "OFFLINEMESSAGES_CHATWEBSITE": "Go to Offline Messages",
+ "WAITINGTITLE": "Waiting Title",
+ "WAITINGMESSAGE": "Waiting Message",
+ "RATING": "Rating",
+ "NO_RATINGVALUE": "No Rating",
+ "DEFAULT_PAUSE": "Default pause",
+ "UNKNOWN": "Unknown",
+ "UNREGISTERED": "Unregistered",
+ "UNAVAILABLE": "Unavailable",
+ "NOT_INUSE": "Not in use",
+ "REACHABLE": "Reachable",
+ "IN_USE": "In use",
+ "VOICE": "Voice",
+ "INTERACTIONS_CHATWEBSITE": "Go to Interactions",
+ "REFRESH_INTERACTIONS": "Refresh Interactions",
+ "DELETE_INTERACTION": "Delete Interaction",
+ "AGENTADD_CHATWEBSITE": "Add Agent to Chat Website",
+ "TEAMS_ASSOCIATION": "Teams Association",
+ "TOOLTIP_SCREENRECORDING_ON": "Screen Recording in progress",
+ "TOOLTIP_SCREENRECORDING_OFF": "Screen Recording available",
+ "DOWNLOAD_WITH_ATTACHMENTS": "Download with attachments",
+ "DOWNLOAD_WITHOUT_ATTACHMENTS": "Download without attachments"
+ }
+}
--- /dev/null
+{
+ "CONTACTMANAGER": {
+ "SELECT_TAG": "Select tags",
+ "CUSTOMER_JOURNEY": "Customer Journey",
+ "USERID": "Recall Agent ID",
+ "PRIORITY": "Priority",
+ "MOTIONDIALER": "Motion Bull",
+ "IMPORT_CONTACTS": "Import Contacts",
+ "PREFIX": "Dial Prefix",
+ "VOICEQUEUEID": "VoiceQueue ID",
+ "CAMPAIGNID": "Campaign ID",
+ "STATE": "State",
+ "NAME": "Name",
+ "LISTS": "Lists",
+ "UNIQUEID": "Unique Id",
+ "STATUS": "Status",
+ "STARTTIME": "Start Time",
+ "ENDTIME": "End Time",
+ "MOTION_BULL": "Motion Bull",
+ "HOPPER": "Hopper",
+ "FINAL": "Hopper Final",
+ "HISTORY": "Hopper History",
+ "SCHEDULEDAT": "Scheduled At",
+ "SEARCH_FOR_ANYONE": "Search",
+ "EDIT_LIST": "Edit List",
+ "EDIT_HOPPER": "Edit Hopper",
+ "DELETE_LIST": "Delete List",
+ "DELETE_HOPPER": "Delete Hopper",
+ "RELOAD": "Reload",
+ "NO_COMPANIES": "No Company",
+ "NO_AVAILABLE_ITEMS": "No Available Items",
+ "ADD": "Add",
+ "ERRORS": {
+ "NAME_REQUIRED": "Mandatory field",
+ "FIRSTNAME_REQUIRED": "Mandatory field",
+ "PHONE_REQUIRED": "Mandatory field",
+ "ALIAS_REQUIRED": "Mandatory field",
+ "VALUE_REQUIRED": "Mandatory field",
+ "CLICKTOACTION_REQUIRED": "Mandatory field",
+ "ACTIONTYPE_REQUIRED": "Mandatory field",
+ "EMAIL_MUST_VALID": "Wrong format",
+ "PHONEBAR_API": "Check the MotionBar is running and the remote control switch for the agent is turned on"
+ },
+ "DESCRIPTION": "Description",
+ "DISPOSITION": "Disposition",
+ "DISPOSITIONS": "Dispositions",
+ "VOICEDISPOSITIONS": "Voice Dispositions",
+ "NEW_VOICEDISPOSITION": "New Voice Disposition",
+ "CUSTOM_FIELDS": "Custom Fields",
+ "ADD_LIST": "Add List",
+ "BACK": "Back",
+ "SELECTED": "Selected",
+ "SELECT_ALL": "Select All",
+ "SELECT_NONE": "Select None",
+ "COMPANIES": "Companies",
+ "EDIT_COMPANY": "Edit Company",
+ "DELETE_COMPANY": "Delete Company",
+ "PHONE": "Phone",
+ "EMAIL": "Email",
+ "ADD_COMPANY": "Add Company",
+ "CONTACTS": "Contacts",
+ "NEW_LIST": "New List",
+ "FIRSTNAME": "First Name",
+ "LASTNAME": "Last Name",
+ "LIST": "List",
+ "COMPANY": "Company",
+ "ADD_CONTACT": "Add Contact",
+ "EDIT_CONTACT": "Edit Contact",
+ "MERGE_CONTACT": "Merge Contact",
+ "DUPLICATE_CONTACT": "Duplicate Contact",
+ "DELETE_CONTACT": "Delete Contact",
+ "CREATED_AT": "Created At",
+ "SAVE": "Save",
+ "DETAIL": "Detail",
+ "PERSONAL_INFO": "Personal Info",
+ "MOBILE": "Mobile",
+ "FAX": "Fax",
+ "TAGS": "Tags",
+ "SHOW_ALL_FIELDS": "Show all fields",
+ "FEWER_FIELDS": "Show less fields",
+ "COUNTRY": "Country",
+ "CITY": "City",
+ "STREET": "Street",
+ "POSTALCODE": "Postal Code",
+ "DELETE": "Delete",
+ "DELETE_ALL": "Delete All",
+ "CONTACTMANAGER": "Contacts Manager",
+ "ID": "Id",
+ "SETTINGS": "Settings",
+ "GENERAL": "General",
+ "CUSTOMFIELDS": "Custom Fields",
+ "NO_CUSTOMFIELD_AVAILABLE": "No Custom Fields available",
+ "ADD_TAG": "Add Tag",
+ "NO_TAG": "No Tags",
+ "ALIAS": "Alias",
+ "CLICKTOACTION": "Click to action",
+ "ACTIONTYPE": "Action type",
+ "TYPE": "Type",
+ "VALUE": "Value",
+ "ADD_CUSTOMFIELD": "Add Custom Field",
+ "EDIT_CUSTOMFIELD": "Edit Custom Field",
+ "DELETE_CUSTOMFIELD": "Delete Custom Field",
+ "NEW_COMPANY": "New Company",
+ "NEW_CONTACT": "New Contact",
+ "NEW_TAG": "New Tag",
+ "UPLOAD_CONTACTS": "Upload Contacts",
+ "FINISH": "Finish",
+ "SUCCESS": "Success",
+ "FAILURE": "Failure",
+ "ALL_CONTACTS": "All Contacts",
+ "NEW_CUSTOMFIELD": "New Custom Field",
+ "NO_VOICEDISPOSITION_AVAILABLE": "No Voice Dispositions available",
+ "ADD_VOICEDISPOSITION": "Add Voice Disposition",
+ "EDIT_VOICEDISPOSITION": "Edit Voice Disposition",
+ "DELETE_VOICEDISPOSITION": "Delete Voice Disposition",
+ "VAT": "VAT",
+ "COMPANYID": "Company ID",
+ "WEBSITE": "Website",
+ "EMAIL_DOMAIN": "Email Domain",
+ "ADDRESS": "Address",
+ "POSTAL_CODE": "Postal Code",
+ "SHIPMENTADDRESS": "Shipment Address",
+ "COPY_CONTACT": "Copy Contact",
+ "GOTOCONTACTS_LIST": "Show Contacts",
+ "GOTOCONTACTS_COMPANY": "Show Contacts",
+ "ADD_AGENT_TO_LIST": "Add Agent to List",
+ "AGENTADD_LIST": "Add Agents to List",
+ "NO_AVAILABLE_INFO": "No available info",
+ "NONE": "None",
+ "ALL": "All",
+ "FULLNAME": "Full Name",
+ "CHECK_DUPLICATES": "Check Duplicates",
+ "DUPLICATES": "Duplicates",
+ "UPLOAD_CSV": "Upload CSV",
+ "TAG": "Tag",
+ "UPLOAD": "Upload",
+ "ALL_AGENTS": "All Agents",
+ "SELECTED_AGENTS": "Selected Agents",
+ "DATE_OF_BIRTH": "Birthdate",
+ "DATEOFBIRTH": "Birthdate",
+ "NOTES": "Notes",
+ "EXPORTCSVCONTACTS_LIST": "Export to CSV",
+ "GOTO_LIST": "Show Contacts",
+ "GOTO_COMPANY": "Show Contacts",
+ "REQUIRED": "Required",
+ "GLOBALCUSTOMFIELDS": "Global Custom Fields",
+ "NEW_GLOBALCUSTOMFIELD": "New Custom Fields",
+ "ADD_GLOBALCUSTOMFIELD": "Add Custom Field",
+ "EDIT_GLOBALCUSTOMFIELD": "Edit Custom Field",
+ "DELETE_GLOBALCUSTOMFIELD": "Delete Custom Field",
+ "JSCRIPTY": "Jscripty",
+ "SESSIONS": "Sessions",
+ "AGENT": "Agent",
+ "PROJECT": "Project",
+ "SELECT_LIST": "Select a list",
+ "SELECT_COMPANY": "Select a company",
+ "SELECT_TAGS": "Select one or more tags",
+ "HELP": {
+ "PHONEBAR_API_MESSAGE": "To enable click-to-call, insert a phone number and check the remote control switch for the Agent is turned on",
+ "PHONEBAR_API": "To enable click-to-call, insert a phone number and check the remote control switch for the Agent is turned on"
+ },
+ "PAGE": "Page",
+ "ROWSPERPAGE": "Rows per page",
+ "OF": "of",
+ "SOCIAL": "Social",
+ "ROW": "Row",
+ "EXPORT_ERRORS": "Export Errors",
+ "UPLOAD_COMPLETED": "Upload Completed",
+ "STOP": "Stop",
+ "SELECT_FILE": "Select File",
+ "BILLINGINFORMATION": "Billing Information",
+ "FLATDISCOUNT": "Company Discount",
+ "EUROPE": "Europe",
+ "ISOCODE": "ISO National Code",
+ "VATNUMBER_CF": "Codice Fiscale/VAT",
+ "PIVA": "VAT Number",
+ "SDICODE": "SDI Code",
+ "EXPIREDAY": "Expiration Days",
+ "INVOICEARTICLE": "Law Articles",
+ "PAYMENTMETHOD": "Payment Method",
+ "SOCIAL_CAPITAL": "Share Capital",
+ "COMPANY_FISCAL_TYPE": "Company Fiscal Type",
+ "RELATIONSHIP": "Relationship ...",
+ "RELATIONSHIPCOMPANY": " ... with",
+ "CREATE": "Create",
+ "RECALLME": "Recall Me",
+ "NOTIFICATIONS": {
+ "NO_DATA_ERROR": "Unable to retrieve any data",
+ "INTERACTION_OPEN_ERROR": "Unable to open the interaction",
+ "ACCOUNTS_GET_ERROR": "Unable to retrieve any {{channel}} account",
+ "JSCRIPTY_GET_ERROR": "Unable to retrieve any Jscripty project"
+ }
+ }
+}
--- /dev/null
+{
+ "DASHBOARDS": {
+ "VISIBILITY": "Visibility",
+ "PUBLIC": "Public",
+ "PRIVATE": "Private",
+ "PUBLIC_INTERACTION": "The interaction is public",
+ "LOST_CONNECTION": "Experiencing network connectivity issues. Please check your internet connection.",
+ "SCHEDULED_CALLS": "Scheduled Calls",
+ "DOWNLOAD": "Download",
+ "DOWNLOAD_WITH_ATTACHMENTS": "Download with attachments",
+ "DOWNLOAD_WITHOUT_ATTACHMENTS": "Download without attachments",
+ "UNMANAGED_RATE": "Unmanaged Rate",
+ "UNMANAGED_RATE_TEXT": "Interactions Unmanaged Rate",
+ "VOICE_WAITING": "WAITING",
+ "VOICE_WAITING_TEXT": "WAITING QUEUE CALLS",
+ "VOICE_TALKING": "TALKING",
+ "VOICE_TALKING_TEXT": "ACTIVE QUEUE CALLS",
+ "VOICE_ANSWERED": "ANSWERED",
+ "VOICE_ANSWERED_TEXT": "ANSWERED QUEUE CALLS",
+ "VOICE_ABANDONED": "ABANDONED",
+ "VOICE_ABANDONED_TEXT": "ABANDONED QUEUE CALLS",
+ "VOICE_TOTAL_OFFERED": "TOTAL OFFERED",
+ "VOICE_TOTAL_OFFERED_TEXT": "TOTAL QUEUE CALLS",
+ "TODAY_INTERACTIONS_STATS": "Interactions Daily Stats",
+ "VOICE_AVG_HOLD_TIME": "AVERAGE HOLD TIME",
+ "VOICE_AVG_HOLD_TIME_TEXT": "QUEUE CALLS AVG HOLD TIME",
+ "VOICE_AVG_TALK_TIME": "AVERAGE TALK TIME",
+ "VOICE_AVG_TALK_TIME_TEXT": "QUEUE CALLS TALK TIME",
+ "VOICE_ANSWER_RATE": "ANSWER RATE",
+ "VOICE_ANSWER_RATE_TEXT": "QUEUE CALLS ANSWER RATE",
+ "VOICE_ABANDON_RATE": "ABANDON RATE",
+ "VOICE_ABANDON_RATE_TEXT": "QUEUE CALLS ABANDON RATE",
+ "VOICE_UNMANAGED": "UNMANAGED",
+ "VOICE_UNMANAGED_TEXT": "UNMANAGED QUEUE CALLS",
+ "OPENED_TEXT": "Opened Interactions",
+ "MANAGED": "Managed",
+ "MANAGED_TEXT": "Managed Interactions",
+ "ABANDONED": "Abandoned",
+ "ABANDONED_TEXT": "Abandoned Interactions",
+ "ABANDONED_RATE": "Abandoned Rate",
+ "ABANDONED_RATE_TEXT": "Interactions Abandon Rate",
+ "TOTAL_OFFERED": "Total Offered",
+ "TOTAL_OFFERED_TEXT": "Offered Interactions",
+ "AVG_HOLD_TIME_TEXT": "Interactions AVG Hold Time",
+ "MANAGED_RATE": "Managed Rate",
+ "MANAGED_RATE_TEXT": "Interactions Managed Rate ",
+ "AVG_MANAGED_TIME": "AVG Management Time",
+ "AVG_MANAGED_TIME_TEXT": "Interactions AVG Management Time",
+ "NO_DISPOSITION_SET": "No disposition set",
+ "AGENTS": "Agents",
+ "TRANSFER": "Transfer",
+ "NO_DATA_AVAILABLE": "No data available",
+ "CUSTOMER_JOURNEY": "Customer Journey",
+ "ME": "Me",
+ "CURRENTLY_IN_USE_BY": "Currently in use by",
+ "NOTAVAILABLE": "Not available",
+ "CLICKRELOAD": "New abandoned calls! Reload please",
+ "ASSIGNTO": "Assign to",
+ "SELECT_QUEUE": "Select Queue",
+ "SELECT_CAMPAIGN": "Select Queue",
+ "FREE": "Free",
+ "RESERVED": "Reserved",
+ "QUEUECALLEREXITREASON": "Reason",
+ "QUEUECALLEREXITAT": "Dropped",
+ "LASTASSIGNEDTO": "Last Assigned To",
+ "ABANDONEDQUEUECALLS": "Abandoned Queue Calls",
+ "ABANDONAT": "Abandoned",
+ "QUEUE": "Queue",
+ "SELECT_SUBSTATUS": "Select Substatus",
+ "READ": "Read",
+ "UNREAD": "Unread",
+ "SELECT_READ_UNREAD": "Select Read/Unread",
+ "SELECT_AGENT": "Select Agent",
+ "MARK_AS_UNREAD": "Mark as unread",
+ "FILTER_VOICE_QUEUES": "Filter Voice Queues",
+ "CHANNEL_WAITING_TEXT": "Waiting Queue Interactions",
+ "CHANNEL_QUEUE": "Queue",
+ "CHANNEL_FROM": "From",
+ "LOADING_INTERACTION": "We are loading the interaction...",
+ "JANUARY": "January",
+ "FEBRUARY": "February",
+ "MARCH": "March",
+ "APRIL": "April",
+ "MAY": "May",
+ "JUNE": "June",
+ "JULY": "July",
+ "AUGUST": "August",
+ "SEPTEMBER": "September",
+ "OCTOBER": "October",
+ "NOVEMBER": "November",
+ "DECEMBER": "December",
+ "MON": "Mon",
+ "TUE": "Tue",
+ "WED": "Wed",
+ "THU": "Thu",
+ "FRI": "Fri",
+ "SAT": "Sat",
+ "SUN": "Sun",
+ "DELETE": "Delete",
+ "LAST_3_DAYS": "Last 3 Day",
+ "LAST_YEAR": "Last Year",
+ "THIS_YEAR": "This Year",
+ "LAST_MONTH": "Last Month",
+ "THIS_MONTH": "This Month",
+ "LAST_WEEK": "Last Week",
+ "THIS_WEEK": "This Week",
+ "YESTERDAY": "Yesterday",
+ "TODAY": "Today",
+ "SELECT_DATE": "Select Start Date",
+ "HOME": "Home",
+ "SET_AS": "Set As",
+ "PENDING": "Pending",
+ "CANNED_ANSWER_NOT_FOUND": "No Canned Answers were found",
+ "CANNED_ANSWER_SEARCH": "Enter a text to search a Canned Answer",
+ "TAGS": "Tags",
+ "SELECT_TAG": "Select Tag",
+ "TYPE": "Type",
+ "SOURCE": "Source",
+ "DESTINATION": "Destination",
+ "CALLERID": "Caller ID",
+ "END_AT": "End At",
+ "DURATION": "Duration",
+ "CHAT": "Chat",
+ "MAIL": "Email",
+ "SMS": "Sms",
+ "OPENCHANNEL": "Open Channel",
+ "FAX": "Fax",
+ "NOT_ASSIGNED": "Not Assigned",
+ "UNKNOWN": "Unknown",
+ "SELECT_USER": "Select User",
+ "LAST_MESSAGE": "Last message",
+ "USER": "User",
+ "RATING": "Rating",
+ "FEEDBACK": "Feedback",
+ "SUBJECT": "Subject",
+ "CUSTOMER_IP": "Originating IP Address",
+ "REFERER": "Referer",
+ "ACCOUNT": "Account",
+ "WEBSITE": "Website",
+ "AGENT": "Agent",
+ "CREATED_AT": "Created At",
+ "CLOSED_AT": "Closed At",
+ "DISPOSITION": "Disposition",
+ "CONTACT": "Contact",
+ "INTERACTION": "Interaction",
+ "BROWSER_NAME": "Browser Name",
+ "BROWSER_VERSION": "Browser Version",
+ "OS_NAME": "Operating System Name",
+ "OS_VERSION": "Operating System Version",
+ "DEVICE_MODEL": "Device Model",
+ "DEVICE_VENDOR": "Device Vendor",
+ "DEVICE_TYPE": "Device Type",
+ "RECALLME": "Recall Me",
+ "DROP_RATE": "Drop Rate",
+ "DROPPED": "Dropped",
+ "DROPPED_TEXT": "Dropped Queue Calls",
+ "DETAIL": "Detail",
+ "MOTION_BULL": "Motion Bull",
+ "LIMITED": "Limited",
+ "LIMITED_TEXT": "IVR Campaigns Calls Originated/Limit",
+ "DASHBOARDS": "Dashboards",
+ "RECORDINGS": "Recordings",
+ "TODAY_MOTION_BULL_STATS": "Queue Campaigns Daily Stats",
+ "ORIGINATED": "Originated",
+ "ORIGINATED_TEXT": "Queue Calls Originated",
+ "UPDATE": "Update",
+ "MORE": "More",
+ "MOTIONDIALER": "Motion Bull",
+ "DISPOSE": "Dispose",
+ "QUEUES": "Queues",
+ "DIALER_CALL": "Dialer Call",
+ "ELAPSED_TIME": "Elapsed Time",
+ "EDIT": "Edit",
+ "MERGE": "Merge",
+ "DUPLICATE": "Duplicate",
+ "UNIQUEID": "Uniqueid",
+ "AUTOCLOSE": "Automatically close contact tab after disposal",
+ "CAMPAIGN": "Campaign",
+ "NONE": "None",
+ "NAME": "Name",
+ "ANSWER_MACHINE": "Answer Machine",
+ "INTERESTED": "Interested",
+ "NOT_INTERESTED": "Not Interested",
+ "PERSONAL_INFO": "Personal Info",
+ "SOLD": "Sold",
+ "SPECIAL": "Special",
+ "BLACKLIST": "Blacklist",
+ "RESCHEDULE": "Reschedule",
+ "FIRSTNAME": "Firstname",
+ "LASTNAME": "Lastname",
+ "MOBILE": "Mobile",
+ "DATE_OF_BIRTH": "Birthdate",
+ "COMPANY": "Company",
+ "TAG": "Tag",
+ "COUNTRY": "Country",
+ "CITY": "City",
+ "STREET": "Address",
+ "POSTALCODE": "Postal Code",
+ "CUSTOM_FIELDS": "Custom Fields",
+ "GENERAL": "General",
+ "VOICE": "Voice",
+ "TODAY_IVR_CAMPAIGNS_STATS": "Daily Ivr Campaigns Stats",
+ "TODAY_INBOUND_STATS": "Inbound Queue Daily Stats",
+ "TODAY_OUTBOUND_STATS": "Outbound Daily Stats",
+ "WAITING": "Waiting",
+ "TALKING": "Talking",
+ "INBOUND_ANSWERED": "Answered",
+ "OUTBOUND_ANSWERED": "Answered",
+ "AVG_HOLD_TIME": "Average Hold Time",
+ "INBOUND_ANSWER_RATE": "Answer Rate",
+ "OUTBOUND_ANSWER_RATE": "Answer Rate",
+ "ABANDON_RATE": "Abandon Rate",
+ "UNMANAGED": "Unmanaged",
+ "TOTAL": "Total",
+ "TOT_DURATION": "Total Duration",
+ "AVG_DURATION": "Average Duration",
+ "HELP": {
+ "MANDATORY_DISPOSITION_ENABLED": "Mandatory disposition enabled for this account",
+ "UNMANAGED_RATE": "The Unmanaged Rate of all the Interactions",
+ "WAITING": "The total number of Waiting Interactions",
+ "OPENED": "The total number of Active Interactions",
+ "MANAGED": "The total number of Completed Interactions",
+ "ABANDONED": "The total number of Abandoned Interactions",
+ "TOTAL_OFFERED": "The total number of Interactions (completed + abandoned)",
+ "AVG_HOLD_TIME": "The Average Interaction Hold Time, namely the average time spent waiting for an agent to answer, for all the existing Interactions",
+ "AVG_MANAGED_TIME": "The Average Interaction Managed Time, namely the average time spent during conversation",
+ "MANAGED_RATE": "The Managed Rate of all the Interactions",
+ "ABANDONED_RATE": "The Abandon Rate of all the Interactions",
+ "UNMANAGED": "The total number of Unmanaged Interactions",
+ "VOICE_WAITING": "The total number of Waiting Queue Calls, for all the existing Queues",
+ "VOICE_TALKING": "The total number of Active Queue Calls, for all the existing Queues",
+ "VOICE_ANSWERED": "The total number of Completed Queue Calls, for all the existing Queues",
+ "VOICE_ABANDONED": "The total number of Abandoned Queue Calls, considering all the existing Queues. Note that the calls which are abandoned for timeout and joinempty will not be considered",
+ "VOICE_TOTAL_OFFERED": "The total number of Queue Calls (completed + abandoned + unmanaged in the last queue of the flow). Note that the calls which enter in an IVR and not in a queue, will not be considered",
+ "VOICE_AVG_TALK_TIME": "The Average Queue Talk Time, namely the average time spent during conversation, for all the existing Queues",
+ "VOICE_AVG_HOLD_TIME": "The Average Queue Hold Time, namely the average time spent waiting for an agent to answer, for all the existing Queues",
+ "VOICE_ANSWER_RATE": "The Answer Rate of all the Queue Calls",
+ "VOICE_UNMANAGED": "The total number of Unmanaged Queue Calls, for all the existing Queues. It includes the calls which are abandoned for timeout, joinempty, leavewhenempty and exitwithkey (cfr. asterisk doc for more information)",
+ "ORIGINATED": "Total number of calls dialed in the queue campaigns",
+ "ORIGINATEDLIMITED": "IVR Campaigns Calls Originated/Limit",
+ "DROPPED": "The total number of Dropped Queue Calls, for all the existing Queues",
+ "DROP_RATE": "The Drop Rate of all the Queue Calls",
+ "OUTBOUND_ANSWERED": "The total number of Completed Outbound Calls",
+ "OUTBOUND_ANSWER_RATE": "The Answer Rate of all the Outbound Calls",
+ "ABANDON_RATE": "The Abandon Rate of all the Queue Calls",
+ "TOTAL": "The total number of Outbound Calls",
+ "TOT_DURATION": "The total duration of all the Outbound Calls",
+ "AVG_DURATION": "The average duration of all the Completed Outbound Calls",
+ "EXACT_MATCH_FILTER": "Search for an exact match",
+ "LIKE_FILTER": "Search for the specified pattern"
+ },
+ "ERRORS": {
+ "CAMPAIGN_REQUIRED": "Mandatory field",
+ "FIRSTNAME_REQUIRED": "Mandatory field",
+ "PHONE_REQUIRED": "Mandatory field",
+ "DISPOSITION_REQUIRED": "Mandatory field",
+ "AGENT_REQUIRED": "Mandatory field",
+ "QUEUE_REQUIRED": "Mandatory field",
+ "FAILED_INITIALIZATION": "Error during initialization"
+ },
+ "NO_AVAILABLE_INFO": "No available info",
+ "WELCOME_TO_MOTION": "Welcome to Motion",
+ "WELCOME_MESSAGE": "Use the left sidebar to navigate through available sections",
+ "ADD": "Add",
+ "CONTACTMANAGER": "Contact Manager",
+ "DASHBOARD": "Dashboard",
+ "EDIT_CONTACT": "Edit contact",
+ "EMAIL": "Email",
+ "FULLNAME": "Fullname",
+ "CREATEDAT": "Created At",
+ "LIST": "List",
+ "NEW_CONTACT": "New Contact",
+ "PHONE": "Phone",
+ "SAVE": "Save",
+ "INBOUND_WAITING_CALLS": "Inbound Waiting Calls",
+ "CONTACTS": "Contacts",
+ "MYCONTACTS": "My Contacts",
+ "ADD_CONTACT": "Add Contact",
+ "RELOAD": "Reload",
+ "WAITING_TEXT": "Waiting Interactions",
+ "TALKING_TEXT": "Active Queue Calls",
+ "INBOUND_ANSWERED_TEXT": "Answered Queue Calls",
+ "DROP_RATE_TEXT": "Queue Calls Drop Rate",
+ "AVG_TALK_TIME_TEXT": "Queue Calls Talk Time",
+ "INBOUND_ANSWER_RATE_TEXT": "Queue Calls Answer Rate",
+ "UNMANAGED_TEXT": "Unmanaged Interactions",
+ "TOTAL_TEXT": "Total Outbound Calls",
+ "OUTBOUND_ANSWERED_TEXT": "Outbound Answered Calls",
+ "TOT_DURATION_TEXT": "Outbound Calls Total Duration",
+ "AVG_DURATION_TEXT": "Outbound Calls Average Duration",
+ "OUTBOUND_ANSWER_RATE_TEXT": "Outbound calls Answer Rate",
+ "PAGE": "Page",
+ "ROWSPERPAGE": "Rows per page",
+ "OF": "of",
+ "REPLY_PLACEHOLDER": "Type and hit enter to send a message",
+ "CONTACT_INFO": "Contact Info",
+ "CLOSE_AND_DISPOSE": "Close and dispose",
+ "DISPOSITIONS": "Dispositions",
+ "CLOSE_WITHOUT_DISPOSE": "Close without dispose",
+ "ACCEPT": "Accept",
+ "REJECT": "Reject",
+ "CLOSED": "Closed",
+ "INFO": "Info",
+ "NOTE": "Note",
+ "ACCEPT_ELSEWHERE": "Accepted elsewhere",
+ "ATTENTION": "Attention",
+ "SOCIAL": "Social",
+ "NO_JSCRIPTY_PROJECTS_AVAILABLE": "No Jscripty Projects available",
+ "OPENED": "Open",
+ "FILTER": "Filter",
+ "SELECT_STATUS": "Select Status",
+ "SELECT_ACCOUNT": "Select Account",
+ "SELECT_WEBSITE": "Select Website",
+ "ALL": "All",
+ "INTERACTIONS": "Interactions",
+ "STARTEDAT": "Started At",
+ "STATUS": "Status",
+ "OPEN": "Open",
+ "SHOW": "Show",
+ "SHOW_DETAILS": "Show Details",
+ "HIDE_DETAILS": "Hide Details",
+ "EXTERNAL_URL": "External Link",
+ "NO_MAIL_ACCOUNTS_AVAILABLE": "No Email Accounts available",
+ "NO_FAX_ACCOUNTS_AVAILABLE": "No Fax Accounts available",
+ "NO_SMS_ACCOUNTS_AVAILABLE": "No SMS Accounts available",
+ "NO_WHATSAPP_ACCOUNTS_AVAILABLE": "No Whatsapp Account available",
+ "SELECT_DATE_RANGE": "Select Date Range",
+ "CLEAR": "Clear",
+ "CALL_NUMBER": "Call",
+ "TRANSFER_NUMBER": "Transfer",
+ "CALL_SAVED": "Call properly saved",
+ "CALL_DISPOSED": "Call properly disposed",
+ "CUSTOMER_PORT": "Originating TCP Port",
+ "INTERACTION_CLOSED": "Interaction properly closed",
+ "INTERACTION_DISPOSED": "Interaction properly disposed",
+ "INTERACTION_CLOSED_DISPOSED": "Interaction properly closed and disposed",
+ "SELECT_ALL": "Select all",
+ "ASSIGNED_TO_OTHERS": "Assigned to others",
+ "ID": "Id",
+ "CHAT_INTERACTIONS": "Chat Interactions",
+ "MAIL_INTERACTIONS": "Email Interactions",
+ "SMS_INTERACTIONS": "SMS Interactions",
+ "OPENCHANNEL_INTERACTIONS": "Open Channel Interactions",
+ "FAX_INTERACTIONS": "Fax Interactions",
+ "DRAFT": "Draft",
+ "DRAFT_SAVE_WARNING_TITLE": "Overwrite existing draft?",
+ "DRAFT_SAVE_WARNING_MESSAGE": "There is already a draft saved for this interaction. Are you sure you want to overwrite it?",
+ "OVERWRITE": "Overwrite",
+ "CANCEL": "Cancel",
+ "UNTITLED": "Untitled",
+ "SAVE_AS_DRAFT": "Save as draft",
+ "UPDATE_DRAFT": "Update draft",
+ "NO_AVAILABLE_INTERACTION": "No available interaction",
+ "DOSSIERS": "Dossiers",
+ "DOSSIER": "Dossier",
+ "DOSSIER_INFO": "Information",
+ "SELECT_COMPANY": "Select Company",
+ "DOSSIERNAME": "Dossier Name",
+ "OPENDATE": "Open Date",
+ "ALL_COMPANIES": "All Companies",
+ "SELECT_WORKFLOW": "Select Workflow",
+ "WORKFLOW": "Select Workflow",
+ "SELECT_WORKFLOWSTEPS": "Select Workflow State",
+ "ALL_WORKFLOW": "All Workflow",
+ "STATE": "State",
+ "STEP": "Step",
+ "NEW_DOSSIER": "New Dossier",
+ "PRICELIST": "Price List",
+ "PRODUCTFILTERNAME": "Filter Name",
+ "PRODUCTNAME": "Product",
+ "PRODUCTINQUOTATION": "PRODUCT DETAILS",
+ "REQUEST": "REQUEST",
+ "QUOTATION": "QUOTATION",
+ "DOSSIERID": "Dossier ID",
+ "QUOTATIONNAME": "Quotation Name",
+ "QUOTATIONNOTES": "Quotation Notes",
+ "QUOTATIONSTATUS": "State",
+ "REQUESTNAME": "Request Name",
+ "REQUESTNOTES": "Request Notes",
+ "ALL_STEP": "All",
+ "UPDATED_AT": "Modified on",
+ "BY": "By",
+ "ORDER": "Order",
+ "PROFORMA": "PROFORMA",
+ "INVOICE": "INVOICE",
+ "REQUESTID": "Request",
+ "QUOTATIONID": "Offer",
+ "ORDERID": "Order",
+ "PRICELISTNAME": "Price List",
+ "PRODUCTCODE": "Product Code",
+ "PRICELISTNETPRICE": "Net Price",
+ "PRICELISTDISCOUNT": "Price list discount",
+ "QUOTATIONQTY": "Quantity",
+ "QUOTATIONTAX": "Tax",
+ "QUOTATIONPROFORMAID": "Proforma ID",
+ "QUOTATIONINVOICEID": "Invoice ID",
+ "QUOTATIONDISCOUNT": "Quotation Discount",
+ "ORDER_INFO": "Order",
+ "REQUEST_INFO": "Request",
+ "QUOTATION_INFO": "Quotation",
+ "ORDERCLIENTCODE": "Customer Code",
+ "ORDERNOTES": "Note",
+ "PROFORMANAME": "Proforma name",
+ "AGENTFULLNAME": "Agent",
+ "PROFORMANOTES": "Note",
+ "PRODUCTINPROFORMA": "Products in proforma",
+ "INVOICENAME": "Invoice Name",
+ "INVOICENOTES": "Note",
+ "DOSSIERNOTES": "Note",
+ "QUOTATIONTOTALPRICE": "Total net",
+ "QUOTATIONTOTALTAX": "Total tax",
+ "PROFORMA_INFO": "Proforma",
+ "PROFORMAID": "Id Proforma",
+ "PRICESALELISTNETPRICE": "Prezzo listino",
+ "PROFORMASTATUS": "State",
+ "INVOICESTATUS": "State",
+ "NO_PRODUCTINVOICE_AVAILABLE": "No product",
+ "INVOICEID": "Invoice",
+ "PRODUCTNOTE": "Note",
+ "INVOICE_INFO": "Invoice",
+ "COMPANYSTREET": "Address",
+ "COMPANYCITY": "City",
+ "COMPANYPOSTALCODE": "Postal Code",
+ "COMPANYCOUNTRY": "Country",
+ "COMPANYFAX": "Fax",
+ "COMPANYVAT": "Fiscal Code/VAT",
+ "COMPANYPHONE": "Telephone",
+ "COMPANYEMAIL": "Email",
+ "NOTES": "Note",
+ "QUOTATIONPRODUCTNOTE": "Product Note",
+ "QUOTATIONVAT": "VAT",
+ "AUTOPROFORMA": "SELF-PROFORMA",
+ "AUTOINVOICE": "SELF-INVOICE",
+ "MOVEASSET": "ASSET",
+ "ORDERSTATUS": "State",
+ "QUOTATIONTOTALS": "Total",
+ "QUOTATIONTOTAL": "TOTAL",
+ "PRODUCTTYPE": "Type",
+ "PRODUCTSUBSCRIPTION": "Duration",
+ "PRODUCTATUNIT": "Unit",
+ "INASSET": "Asset",
+ "PRODUCTININVOICE": "Products on the invoice",
+ "SUBSCRIPTIONS": "CUSTOMER SCHEDULE",
+ "SUBSCRIPTIONNAME": "Subscription",
+ "COMPANYNAME": "Company",
+ "NEXTINVOICE": "Next Invoice",
+ "SUBSCRIPTIONDETAIL": "Detail",
+ "PRODUCTDESCRIPTION": "Description",
+ "NETPRICE": "Price",
+ "DISCOUNT": "Discount",
+ "TAX": "Tax",
+ "ATTENDACELASTINVOICE": "Last invoice",
+ "ATTENDACENEXTINVOICE": "Next invoice",
+ "SELECT_PRODUCT": "Select product",
+ "SELECT_PRODUCTTYPE": "Select type",
+ "ALL_PRODUCTS": "All",
+ "ALL_STATUS": "All",
+ "PAYMENT_INFO": "Payment information",
+ "PAYMENTMETHOD": "Payment methods",
+ "PAYMENT": "Payment",
+ "DETAILS": "Details",
+ "INVOICEDETAILS": "INVOICE DETAILS",
+ "QUANTITY": "Quantity",
+ "MANAGESALES": "Subscriptions",
+ "ACCOUNTINGDOC": "Accounting",
+ "INVOICES": "INVOICES",
+ "PROFORMAS": "PROFORMA",
+ "PAYMENTS": "PAYMENTS",
+ "SELECT_PERIOD": "Select range",
+ "NO_PRODUCTPROFORMA_AVAILABLE": "No data available",
+ "NO_PRODUCTPRICELIST_AVAILABLE": "No data available",
+ "PROFORMAAUTHORIZED": "Authorized proforma",
+ "ADD_PRODUCTPRICELIST": "ADD PRODUCT",
+ "DELETE_PRODUCT": "Delete Product",
+ "AUTHORIZED": "AUTHORIZED",
+ "INVOICEDISCOUNT": "Discount",
+ "DEPOSIT": "DEPOSIT",
+ "BALANCE": "BALANCE",
+ "PRODUCTS": "PRODUCTS",
+ "INVOICENOPRODUCTDESCRIPTION": "Description on the invoice",
+ "INVOICENOPRODUCTAMOUNT": "Amount",
+ "INVOICENOTAXAMOUNT": "TAX",
+ "INVOICENOPRODUCTSAVE": "Save",
+ "INVOICENOPRODUCTUPDATE": "Update",
+ "PDFPROFORMA": "PDF",
+ "PDFINVOICE": "PDF",
+ "PAIDANDEXPIRED": "Payment",
+ "CREDITNOTE": "CREDIT NOTE",
+ "CREDITNOTE_INFO": "Credit Note",
+ "MOVECREDITNOTE": "SELF-CREDIT NOTE",
+ "CREDITNOTEDETAILS": "Credit Note Detail",
+ "PDFCREDITNOTE": "PDF",
+ "CREDITINOTENAME": "Name",
+ "TOTALPAYMENTS": "Total payments",
+ "PROFORMADETAILS": "Details",
+ "CREATIONDATE": "Created at",
+ "STARTDATE": "Invoice Date",
+ "ENDDATE": "Expiry Date",
+ "NUMBER": "Number",
+ "PRODUCTPRICE": "Price",
+ "PRODUCTTAX": "Tax percentage",
+ "PRODUCTQTY": "Quantity",
+ "UPDATE_PRODUCT": "Update Product",
+ "QUOTATIONPRODUCTTYPE": "Type",
+ "QUOTATIONUNIT": "Unit",
+ "QUOTATIONSUBSCRIPTION": "Duration",
+ "SELECT_PERIOD_CREATION": "Select Creation Date",
+ "SELECT_PERIOD_START": "Select Date",
+ "SELECT_PERIOD_EXPIRE": "Select Expiry Date",
+ "NEW_COMPANY": "New",
+ "COMPANIES": "Companies",
+ "PAYED_AY": "Payed on",
+ "CLONEPROFORMA": "Clone",
+ "COMPANYDESC": "Description",
+ "COMPANYNATION": "Nation",
+ "GRAPHINVOICES": "Invoice emission chart",
+ "YEARS": "Years",
+ "FROM": "From",
+ "TO": "To",
+ "INVOICEEMITED": "Issued",
+ "INVOICEPAYED": "Payed",
+ "INVOICETOTAL": "Total",
+ "CHOOSE": "Choose",
+ "ADVANCED_SEARCH": "Advanced Search",
+ "NEW_CONDITION": "New Condition",
+ "SELECT_FIELD": "Select field",
+ "SELECT_OPERATOR": "Select operator",
+ "VALUE": "Value",
+ "VALUES": "Values",
+ "APPLY": "Apply",
+ "MEET_ALL_CONDITIONS": "Meet all conditions",
+ "MEET_ANY_CONDITIONS": "Meet at least one condition",
+ "EQUALS": "Equals",
+ "IS_NOT_EQUAL": "Does not equal",
+ "IS_AMONG": "Is among",
+ "IS_NOT_AMONG": "Is not among",
+ "IS_GREATER_THAN": "Is greater than",
+ "IS_GREATER_THAN_OR_EQUAL_TO": "Is greater than or equal to",
+ "IS_LESS_THAN": "Is less than",
+ "IS_LESS_THAN_OR_EQUAL_TO": "Is less than or equal to",
+ "IS_BETWEEN": "Is between",
+ "CONTAINS": "Contains",
+ "STARTS_WITH": "Starts with",
+ "ENDS_WITH": "Ends with",
+ "STARTING_DATE": "Starting date",
+ "ENDING_DATE": "Ending date",
+ "STARTING_VALUE": "Starting value",
+ "ENDING_VALUE": "Ending value",
+ "VALUE_RANGE_CHECK": "Value must be greater than",
+ "AND": "And",
+ "ENABLED": "Enabled",
+ "DISABLED": "Disabled",
+ "ELAPSED_ANSWERED": "Elapsed time since call started",
+ "ELAPSED_DISPOSED": "Elapsed time since call ended",
+ "WHATSAPP": "WhatsApp Connector",
+ "WHATSAPP_INTERACTIONS": "WhatsApp Connector Interactions",
+ "SECOND_LEVEL_DISPOSITION": "Second Level Disposition",
+ "THIRD_LEVEL_DISPOSITION": "Third Level Disposition",
+ "VIDAOOSESSION": "Start Video Call",
+ "SELECT_CONTACT": "Select contact",
+ "SELECT": "Select",
+ "LAST_UPDATED": "Last updated",
+ "MATCHING_FIELD": "Matching field",
+ "MULTIPLE_CONTACTS_FOUND": "Multiple contacts found for number",
+ "WHICH_ONE_TO_USE": "Which one do you want to use?",
+ "LICENSE_EXPIRE_REMAINING_DAYS": "Your license is about to expire! Please contact your Administrator",
+ "NO_RESULTS_AVAILABLE": "No results available",
+ "AVAILABLE": "Available",
+ "AGENT_PRESENCE": "Agent Presence",
+ "SELECT_TEAM": "Select Team",
+ "NOTIFICATIONS": {
+ "TRANSFER_AGENT_EXECUTED": "Transfer to agent successfully executed",
+ "TRANSFER_QUEUE_EXECUTED": "Transfer to queue successfully executed"
+ }
+ }
+}
--- /dev/null
+{
+ "FAX": {
+ "LOGIN_TIME": "Login time",
+ "PAUSE_TIME": "Pause time",
+ "DOWNLOAD_INTERACTION": "Download",
+ "TRANSFER": "Transfer",
+ "QUEUETRANSFER": "Queue Transfer",
+ "QUEUETRANSFERTIMEOUT": "Queue Transfer Timeout",
+ "AGENTTRANSFER": "Agent Transfer",
+ "AGENTTRANSFERTIMEOUT": "Agent Transfer Timeout",
+ "TAG": "Tag",
+ "EDIT_TAG": "Edit Tag",
+ "WAITFORTHEASSIGNEDAGENT": "Wait for the assigned agent",
+ "NOTIFICATION": "Notification",
+ "NOTIFICATIONSOUND": "Sound",
+ "NOTIFICATIONSHAKE": "Shake",
+ "NOTIFICATIONTEMPLATE": "Template",
+ "SYSTEM": "System",
+ "EDIT_SYSTEM": "Edit System",
+ "COMMAND": "Command",
+ "VARIABLE": "Variable",
+ "CANNEDANSWERS": "Canned Answers",
+ "FAXCANNEDANSWERS": "Canned Answers",
+ "NO_FAXCANNEDANSWER_AVAILABLE": "No Canned Answers Available",
+ "NEW_FAXCANNEDANSWER": "New Canned Answer",
+ "ADD_FAXCANNEDANSWER": "Add Canned Answer",
+ "EDIT_CHATCANNEDANSWER": "Edit Canned Answer",
+ "DELETE_CHATCANNEDANSWER": "Delete Canned Answer",
+ "SPYINTERACTION": "Spy",
+ "TAGS": "Tags",
+ "REPLY": "Reply",
+ "SEND": "Send",
+ "TO": "To",
+ "FROM": "From",
+ "NO_AGENT_ONLINE": "No Agent Online",
+ "GOTOREALTIME_FAXQUEUE": "Go To Realtime Fax Queue",
+ "EDIT_TRUNK": "Edit Trunk",
+ "REGISTERED": "Registered",
+ "UNREGISTERED": "Unregistered",
+ "EDIT_ACCOUNT": "Edit Fax Account",
+ "PARTIALPAUSE": "Partial Pause",
+ "BUSY": "Busy",
+ "TIMER": "Timer",
+ "IDLE": "Idle",
+ "CAPACITY": "Capacity",
+ "GOTO_FAXACCOUNT": "Go To Realtime Fax",
+ "ACCOUNTS": "Accounts",
+ "GOTOREALTIME_FAXACCOUNT": "Go To Realtime Fax",
+ "TRUNK_STATUS": "Trunk Status",
+ "TRUNKS": "Trunks",
+ "REGISTRY": "Registry",
+ "NO_REGISTRY": "No Registry",
+ "PAUSE": "Pause",
+ "INFO": "Info",
+ "FULLNAME": "Fullname",
+ "INTERNAL": "Internal",
+ "PHONE_STATE": "Phone State",
+ "PHONE_STATUS": "Phone Status",
+ "LOGOUT": "Logout",
+ "DEFAULT_PAUSE": "Default pause",
+ "AGENTADD_QUEUE": "Add Agent to Fax queue",
+ "AGENTSADD_QUEUE": "Add Agents to Fax queue",
+ "UNPAUSE": "End Pause",
+ "AGENTS": "Agents",
+ "QUEUES": "Queues",
+ "LOGGED_IN": "Logged in",
+ "PAUSED": "Paused",
+ "READY": "Ready",
+ "WAITING": "Waiting",
+ "PRIORITY": "Priority",
+ "CONDITION": "Condition",
+ "TRUEPRIORITY": "True Priority",
+ "FALSEPRIORITY": "False Priority",
+ "VALUE": "Value",
+ "EDIT_FAXQUEUE": "Edit Fax Queue",
+ "EDIT_AGENT": "Edit Agent",
+ "EDIT_GOTO": "Edit Goto",
+ "EDIT_NOOP": "Edit Noop",
+ "EDIT_GOTOP": "Edit GotoP",
+ "EDIT_GOTOIF": "Edit GotoIf",
+ "EDIT_QUEUE": "Edit Fax Queue",
+ "EDIT_CLOSE": "Edit Close",
+ "QUEUE": "Queue",
+ "GOTOIF": "GotoIf",
+ "GOTOP": "GotoP",
+ "NOOP": "Noop",
+ "AGENT": "Agent",
+ "NOTES": "Notes",
+ "CLOSEDAT": "Closed At",
+ "DISPOSITION": "Disposition",
+ "REALTIME": "Realtime",
+ "TEAMADD_FAXQUEUE": "Add Team to Fax Queue",
+ "AGENTADD_FAXQUEUE": "Add Agent to Fax Queue",
+ "NAME": "Name",
+ "FAXQUEUES": "Fax Queues",
+ "SEARCH_FOR_ANYONE": "Search",
+ "MANDATORYDISPOSITION": "Mandatory disposition",
+ "MANDATORYDISPOSITIONPAUSEID": "Pause status when in mandatory disposition",
+ "ERRORS": {
+ "QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "QUEUETRANSFERTIMEOUT_REQUIRED": "Mandatory Field",
+ "AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "AGENTTRANSFERTIMEOUT_REQUIRED": "Mandatory Field",
+ "TAG_REQUIRED": "Mandatory Field",
+ "WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "WAITFORTHEASSIGNEDAGENT_REQUIRED": "Mandatory Field",
+ "AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "NAME_MUST_VALID_PATTERN": "Wrong format",
+ "COMMAND_REQUIRED": "Mandatory Field",
+ "TEXT_MAX_LENGTH": "The value must have a maximum length equal to {{max}}",
+ "TEXT_REQUIRED": "Mandatory Field",
+ "VALUE_REQUIRED": "Mandatory Field",
+ "PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "AGENT_REQUIRED": "Mandatory Field",
+ "QUEUE_REQUIRED": "Mandatory Field",
+ "TRUEPRIORITY_REQUIRED": "Mandatory Field",
+ "FALSEPRIORITY_REQUIRED": "Mandatory Field",
+ "CONDITION_REQUIRED": "Mandatory Field",
+ "PRIORITY_REQUIRED": "Mandatory Field",
+ "DISPOSITION_REQUIRED": "Mandatory Field",
+ "NAME_REQUIRED": "Mandatory Field",
+ "AGENT_TIMEOUT_REQUIRED": "Mandatory Field",
+ "MOTIONADDRESS_REQUIRED": "Mandatory Field",
+ "MOTIONADDRESS_MUST_VALID_URL": "Wrong format",
+ "LOCALSTATIONID_REQUIRED": "Mandatory Field",
+ "MODEM_REQUIRED": "Mandatory Field",
+ "GATEWAY_REQUIRED": "Mandatory Field",
+ "FAXDETECT_REQUIRED": "Mandatory Field",
+ "T38TIMEOUT_REQUIRED": "Mandatory Field",
+ "TIMEOUT_REQUIRED": "Mandatory Field",
+ "HEADERINFO_REQUIRED": "Mandatory Field",
+ "TRUNK_REQUIRED": "Mandatory Field",
+ "LIST_REQUIRED": "Mandatory Field",
+ "KEY_MAX_LENGTH": "The value must have a maximum length equal to {{max}}",
+ "KEY_REQUIRED": "Mandatory Field",
+ "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "You should specify a pause status when in mandatory disposition"
+ },
+ "STRATEGY": "Strategy",
+ "AGENT_TIMEOUT": "Agent Timeout",
+ "DESCRIPTION": "Description",
+ "ADD_FAXQUEUE": "Add Fax Queue",
+ "DELETE_FAXQUEUE": "Delete Fax Queue",
+ "CREATED_AT": "Created At",
+ "SAVE": "Save",
+ "SETTINGS": "Settings",
+ "GENERAL": "General",
+ "FAXACCOUNTS": "Fax Accounts",
+ "MOTIONADDRESS": "Motion Address",
+ "ADD_FAXACCOUNT": "Add Fax Account",
+ "EDIT_FAXACCOUNT": "Edit Fax Account",
+ "DELETE_FAXACCOUNT": "Delete Fax Account",
+ "DISPOSITIONS": "Dispositions",
+ "WEBHOOKS": "WebHooks",
+ "ACTIONS": "Actions",
+ "LIST": "List",
+ "FIDELITY": "Fidelity",
+ "ACCEPT": "Accept",
+ "ACCEPTMETHOD": "Accept Method",
+ "ACCEPTURL": "Accept URL",
+ "REJECT": "Reject",
+ "REJECTMETHOD": "Reject Method",
+ "REJECTURL": "Reject URL",
+ "CLOSE": "Close",
+ "CLOSEMETHOD": "Close Method",
+ "CLOSEURL": "Close URL",
+ "TRUNK": "Trunk",
+ "LOCALSTATIONID": "Local Station Identifier",
+ "HELP": {
+ "LOCALSTATIONID": "Local Station Identifier (telephone number)",
+ "HEADERINFO": "Outbound Fax Header information",
+ "MODEM": "Modem Type (v17/v27/v29)",
+ "GATEWAY": "T.38 Fax Gateway, with optional fax activity timeout in seconds (yes/no/[timeout])",
+ "FAXDETECT": "Enable Fax Detect with optional timeout in seconds (yes/t38/cng/[timeout]/no)",
+ "T38TIMEOUT": "The timeout used for T.38 negotiation (minimum value=1000)",
+ "ECM": "Error Connection Mode (ECM)",
+ "MINRATE": "Minimum transfer rate set before transmission",
+ "MAXRATE": "Maximum transfer rate set before transmission",
+ "MANDATORYDISPOSITION": "Mandatory disposition",
+ "MANDATORYDISPOSITIONPAUSEID": "Pause status for mandatory disposition",
+ "NAME": "Only numbers, letters and specific characters (._) are supported"
+ },
+ "ADVANCED": "Advanced",
+ "ECM": "ECM",
+ "MINRATE": "Min Rate",
+ "MAXRATE": "Max Rate",
+ "MODEM": "Modem",
+ "GATEWAY": "Gateway",
+ "FAXDETECT": "Fax Detect",
+ "T38TIMEOUT": "T.38 Timeout",
+ "SIP": "Technology",
+ "HEADERINFO": "Header Info",
+ "SELECTED": "Selected",
+ "SELECT_ALL": "Select All",
+ "SELECT_NONE": "Select None",
+ "BACK": "Back",
+ "FAX": "Fax",
+ "ID": "Id",
+ "TIMEOUT": "Timeout",
+ "FAXDISPOSITIONS": "Fax Dispositions",
+ "NO_FAXDISPOSITION_AVAILABLE": "No Fax Dispositions available",
+ "NEW_FAXDISPOSITION": "New Fax Disposition",
+ "ADD_FAXDISPOSITION": "Add Fax Disposition",
+ "EDIT_FAXDISPOSITION": "Edit Fax Disposition",
+ "DELETE_FAXDISPOSITION": "Delete Fax Disposition",
+ "NEW_FAXQUEUE": "New Fax Queue",
+ "NEW_FAXACCOUNT": "New Fax Account",
+ "NO_AVAILABLE_INFO": "No available info",
+ "ALL_TEAMS": "All Teams",
+ "SELECTED_TEAMS": "Selected Teams",
+ "PAGE": "Page",
+ "ROWSPERPAGE": "Rows per page",
+ "OF": "of",
+ "DELETE": "Delete",
+ "KEY": "Key",
+ "ALL_AGENTS": "All Agents",
+ "SELECTED_AGENTS": "Selected Agents",
+ "FILTER": "Filter",
+ "SELECT_STATUS": "Select Status",
+ "ALL": "All",
+ "CLOSED": "Closed",
+ "OPENED": "Open",
+ "SELECT_ACCOUNT": "Select Account",
+ "INTERACTIONS": "Interactions",
+ "CONTACT": "Contact",
+ "STARTEDAT": "Started At",
+ "LASTMESSAGE": "Last message",
+ "STATUS": "Status",
+ "ACCOUNT": "Account",
+ "UNKNOWN": "Unknown",
+ "UNAVAILABLE": "Unavailable",
+ "NOT_INUSE": "Not in use",
+ "REACHABLE": "Reachable",
+ "IN_USE": "In use",
+ "VOICE": "Voice",
+ "CHAT": "Chat",
+ "MAIL": "Email",
+ "SMS": "SMS",
+ "OPENCHANNEL": "Open Channel",
+ "TOTAL": "Total",
+ "IN": "In",
+ "OUT": "Out",
+ "NO_INTERACTION_AVAILABLE": "No interactions available",
+ "INTERACTIONS_FAXACCOUNT": "Go to Interactions",
+ "REFRESH_INTERACTIONS": "Refresh Interactions",
+ "DELETE_INTERACTION": "Delete Interaction",
+ "AGENTADD_FAXACCOUNT": "Add Agent to Fax Account",
+ "TEAMS_ASSOCIATION": "Teams Association",
+ "TOOLTIP_SCREENRECORDING_ON": "Screen Recording in progress",
+ "TOOLTIP_SCREENRECORDING_OFF": "Screen Recording available",
+ "DOWNLOAD_WITH_ATTACHMENTS": "Download with attachments",
+ "DOWNLOAD_WITHOUT_ATTACHMENTS": "Download without attachments"
+ }
+}
--- /dev/null
+{
+ "HELP": {
+ "HELP": "Help",
+ "ABOUT": "About",
+ "USEFUL_LINKS": "Useful links",
+ "CONTACT_US": "Contact us"
+ }
+}
"EMAIL_REQUIRED": "Mandatory field",
"TENANTID_REQUIRED": "Mandatory field",
"CODE_REQUIRED": "Mandatory field",
- "MOTIONPROXYADDRESS_REQUIRED": "Mandatory field",
- "MODULECREATE_REQUIRED": "Mandatory field"
+ "MOTIONPROXYADDRESS_REQUIRED": "Mandatory field"
},
"HELP": {
"MOTIONPROXYADDRESS": "Motion (Proxy) Address: it is reqired if you want to fill the ticket body with Recording URL. Enter the address in the following format: <protocol> : //<ipaddress>[:<port>]. Example: https://X.Y.Z.W",
"ADDITIONALSEARCHCONTACT": "Additional field name used to search customer phone number in Contacts",
"ADDITIONALSEARCHLEAD": "Additional field name used to search customer phone number in Leads"
},
- "MODULECREATE": "Module create",
"CODE": "Developer Console Code",
"REFRESHTOKEN": "Refresh Token (generated)",
"ACCOUNT": "Account",
"ADDITIONALSEARCHLEAD": "Additional Search Lead",
"PHONECALL": "Phonecall",
"TASK": "Task",
- "DYNAMIC365CONTACT": "Contact",
- "DYNAMIC365NOTHING": "Nothing"
+ "MODULECREATE": "Module Create"
}
}
--- /dev/null
+{
+ "INTEGRATIONS": {
+ "ZONE": "Zone",
+ "ADVANCED": "Advanced",
+ "MODULE_SEARCH": "Module Search",
+ "MODULE_CREATE": "Module Create",
+ "LEADS": "Lead",
+ "CONTACTS": "Contact",
+ "INTEGRATIONS": "Integrations",
+ "ZENDESKACCOUNTS": "Zendesk Accounts",
+ "ID": "Id",
+ "NAME": "Name",
+ "USERNAME": "Username",
+ "URI": "URL",
+ "BACK": "Back",
+ "SELECTED": "Selected",
+ "SELECT_ALL": "Select All",
+ "SELECT_NONE": "Select None",
+ "EDIT_ZENDESKACCOUNT": "Edit Zendesk Account",
+ "DELETE_ZENDESKACCOUNT": "Delete Zendesk Account",
+ "NEW_ZENDESKACCOUNT": "New Zendesk Account",
+ "AUTHTYPE": "Authentication Type",
+ "PASSWORD": "Password",
+ "CONFIRM_PASSWORD": "Confirm Password",
+ "EMAIL": "Email",
+ "TOKEN": "Token",
+ "MOTIONPROXYADDRESS": "Motion or Proxy IP Address",
+ "DESCRIPTION": "Description",
+ "ADD_ZENDESKACCOUNT": "Add Zendesk Account",
+ "ERRORS": {
+ "NAME_REQUIRED": "Mandatory field",
+ "USERNAME_REQUIRED": "Mandatory field",
+ "URI_REQUIRED": "Mandatory field",
+ "URI_MUST_VALID_URL": "Wrong format",
+ "PASSWORD_REQUIRED": "Mandatory field",
+ "CONFIRM_NOT_MATCH": "The passwords don't match",
+ "TOKEN_REQUIRED": "Mandatory field",
+ "MOTIONPROXYADDRESS_MUST_VALID_URL": "Wrong format",
+ "CLIENTID_REQUIRED": "Mandatory field",
+ "CLIENTSECRET_REQUIRED": "Mandatory field",
+ "SECURITYTOKEN_REQUIRED": "Mandatory field",
+ "APIKEY_REQUIRED": "Mandatory field",
+ "CONTENT_REQUIRED": "Mandatory field",
+ "VARIABLENAME_REQUIRED": "Mandatory field",
+ "KEY_REQUIRED": "Mandatory field",
+ "TYPE_REQUIRED": "Mandatory field",
+ "VALUE_REQUIRED": "Mandatory field",
+ "FIELD_REQUIRED": "Mandatory field",
+ "CONSUMERKEY_REQUIRED": "Mandatory field",
+ "CONSUMERSECRET_REQUIRED": "Mandatory field",
+ "TOKENSECRET_REQUIRED": "Mandatory field",
+ "HOST_REQUIRED": "Mandatory field",
+ "AUTHTOKEN_REQUIRED": "Mandatory field",
+ "VTIGER_USER_NAME_REQUIRED": "Mandatory field",
+ "ACCESS_KEY_REQUIRED": "Mandatory field",
+ "EMAIL_REQUIRED": "Mandatory field",
+ "TENANTID_REQUIRED": "Mandatory field",
+ "CODE_REQUIRED": "Mandatory field",
+ "MOTIONPROXYADDRESS_REQUIRED": "Mandatory field"
+ },
+ "HELP": {
+ "MOTIONPROXYADDRESS": "Motion (Proxy) Address: it is reqired if you want to fill the ticket body with Recording URL. Enter the address in the following format: <protocol> : //<ipaddress>[:<port>]. Example: https://X.Y.Z.W",
+ "TICKETTYPE": "Ticket Type",
+ "ZONE": "Choose your geographic zone (US, AU, EU, IN, CN) to activate the domain-specific Zoho Accounts",
+ "CLIENTID": "The specific CLient Id of your application",
+ "CLIENTSECRET": "The specific CLientSecret of your application",
+ "CODE": "The specific code generated through Developer Console",
+ "REFRESHTOKEN": "The automatically generated refresh token used to refresh expired access tokens. Also the access token are automatically generated each time an api is launched.",
+ "LEADID": "Field name used to link Case and Lead objects",
+ "ADDITIONALSEARCHACCOUNT": "Additional field name used to search customer phone number in Accounts",
+ "ADDITIONALSEARCHCONTACT": "Additional field name used to search customer phone number in Contacts",
+ "ADDITIONALSEARCHLEAD": "Additional field name used to search customer phone number in Leads"
+ },
+ "CODE": "Developer Console Code",
+ "REFRESHTOKEN": "Refresh Token (generated)",
+ "ACCOUNT": "Account",
+ "ZENDESKCONFIGURATIONS": "Zendesk Configurations",
+ "SALESFORCECONFIGURATIONS": "Salesforce Configurations",
+ "SUGARCRMCONFIGURATIONS": "SugarCRM Configurations",
+ "FRESHDESKCONFIGURATIONS": "Freshdesk Configurations",
+ "GENERAL": "General",
+ "CREATED_AT": "Created At",
+ "SAVE": "Save",
+ "NO_ZENDESKCONFIGURATION_AVAILABLE": "No Zendesk Configurations available",
+ "NEW_ZENDESKCONFIGURATION": "New Zendesk Configuration",
+ "ADD_ZENDESKCONFIGURATION": "Add Zendesk Configuration",
+ "EDIT_ZENDESKCONFIGURATION": "Edit Zendesk Configuration",
+ "DELETE_ZENDESKCONFIGURATION": "Delete Zendesk Configuration",
+ "NO_SALESFORCECONFIGURATION_AVAILABLE": "No Salesforce Configurations available",
+ "NEW_SALESFORCECONFIGURATION": "New Salesforce Configuration",
+ "ADD_SALESFORCECONFIGURATION": "Add Salesforce Configuration",
+ "EDIT_SALESFORCECONFIGURATION": "Edit Salesforce Configuration",
+ "DELETE_SALESFORCECONFIGURATION": "Delete Salesforce Configuration",
+ "NO_SUGARCRMCONFIGURATION_AVAILABLE": "No SugarCRM Configurations available",
+ "NEW_SUGARCRMCONFIGURATION": "New SugarCRM Configuration",
+ "ADD_SUGARCRMCONFIGURATION": "Add SugarCRM Configuration",
+ "EDIT_SUGARCRMCONFIGURATION": "Edit SugarCRM Configuration",
+ "DELETE_SUGARCRMCONFIGURATION": "Delete SugarCRM Configuration",
+ "NO_FRESHDESKCONFIGURATION_AVAILABLE": "No Freshdesk Configurations available",
+ "NEW_FRESHDESKCONFIGURATION": "New Freshdesk Configuration",
+ "ADD_FRESHDESKCONFIGURATION": "Add Freshdesk Configuration",
+ "EDIT_FRESHDESKCONFIGURATION": "Edit Freshdesk Configuration",
+ "DELETE_FRESHDESKCONFIGURATION": "Delete Freshdesk Configuration",
+ "SALESFORCEACCOUNTS": "Salesforce Accounts",
+ "EDIT_SALESFORCEACCOUNT": "Edit Salesforce Account",
+ "DELETE_SALESFORCEACCOUNT": "Delete Salesforce Account",
+ "NEW_SALESFORCEACCOUNT": "New Salesforce Account",
+ "ADD_SALESFORCEACCOUNT": "Add Salesforce Account",
+ "CLIENTID": "Client ID",
+ "CLIENTSECRET": "Client Secret",
+ "SECURITYTOKEN": "Security Token",
+ "SEARCH_FOR_ANYONE": "Search",
+ "APIKEY": "Api Key",
+ "FRESHDESKACCOUNTS": "Freshdesk Accounts",
+ "EDIT_FRESHDESKACCOUNT": "Edit Freshdesk Account",
+ "DELETE_FRESHDESKACCOUNT": "Delete Freshdesk Account",
+ "NEW_FRESHDESKACCOUNT": "New Freshdesk Account",
+ "ADD_FRESHDESKACCOUNT": "Add Freshdesk Account",
+ "SUGARCRMACCOUNTS": "SugarCRM Accounts",
+ "EDIT_SUGARCRMACCOUNT": "Edit SugarCRM Account",
+ "DELETE_SUGARCRMACCOUNT": "Delete SugarCRM Account",
+ "NEW_SUGARCRMACCOUNT": "New SugarCRM Account",
+ "ADD_SUGARCRMACCOUNT": "Add SugarCRM Account",
+ "CONFIGURATIONS": "Configurations",
+ "NO_CONFIGURATION_AVAILABLE": "No Configurations available",
+ "NEW_CONFIGURATION": "New Configuration",
+ "ADD_CONFIGURATION": "Add Configuration",
+ "EDIT_CONFIGURATION": "Edit Configuration",
+ "DELETE_CONFIGURATION": "Delete Configuration",
+ "SUBJECTS": "Subjects",
+ "DESCRIPTIONS": "Descriptions",
+ "FIELDS": "Fields",
+ "TAGS": "Tags",
+ "TYPE": "Type",
+ "CONTENT": "Content",
+ "EDIT_SUBJECT": "Edit Subject",
+ "DELETE_SUBJECT": "Delete Subject",
+ "NEW_SUBJECT": "New Subject",
+ "ADD_SUBJECT": "Add Subject",
+ "EDIT_DESCRIPTION": "Edit Description",
+ "DELETE_DESCRIPTION": "Delete Description",
+ "NEW_DESCRIPTION": "New Description",
+ "ADD_DESCRIPTION": "Add Description",
+ "EDIT_FIELD": "Edit Field",
+ "DELETE_FIELD": "Delete Field",
+ "NEW_FIELD": "New Field",
+ "ADD_FIELD": "Add Field",
+ "ADD": "Add",
+ "VOICE": "Voice",
+ "MAIL": "Email",
+ "CHAT": "Chat",
+ "SMS": "SMS",
+ "OPENCHANNEL": "Open Channel",
+ "INBOUND_IN_QUEUE": "Inbound in Queue",
+ "OUTBOUND_CALL": "Outbound Call",
+ "VALUE": "Value",
+ "FIELD": "Field",
+ "KEY": "Key",
+ "CHANNEL": "Channel",
+ "DELETE": "Delete",
+ "NO_AVAILABLE_INFO": "No available info",
+ "TEST_ZENDESKACCOUNT": "Test Zendesk Account",
+ "TEST_FRESHDESKACCOUNT": "Test Freshdesk Account",
+ "TEST_SUGARCRMACCOUNT": "Test SugerCRM Account",
+ "TEST_SALESFORCEACCOUNT": "Test Salesforce Account",
+ "INTEGRATION_TAB": "Integration Tab",
+ "NEW_TAB": "New Tab",
+ "DESKACCOUNTS": "Desk Accounts",
+ "EDIT_DESKACCOUNT": "Edit Desk Account",
+ "TEST_DESKACCOUNT": "Test Desk Account",
+ "DELETE_DESKACCOUNT": "Delete Desk Account",
+ "CONSUMERKEY": "Consumer Key",
+ "CONSUMERSECRET": "Consumer Secret",
+ "TOKENSECRET": "Token Secret",
+ "ADD_DESKACCOUNT": "Add Desk Account",
+ "NEW_DESKACCOUNT": "New Desk Account",
+ "ADD_DESKCONFIGURATION": "Add Desk Configuration",
+ "NEW_DESKCONFIGURATION": "New Desk Configuration",
+ "DELETE_DESKCONFIGURATION": "Delete Desk Configuration",
+ "ZOHOACCOUNTS": "Zoho Accounts",
+ "EDIT_ZOHOACCOUNT": "Edit Zoho Account",
+ "TEST_ZOHOACCOUNT": "Test Zoho Account",
+ "DELETE_ZOHOACCOUNT": "Delete Zoho Account",
+ "ADD_ZOHOACCOUNT": "Add Zoho Account",
+ "NEW_ZOHOACCOUNT": "New Zoho Account",
+ "ADD_ZOHOCONFIGURATION": "Add Zoho Configuration",
+ "NEW_ZOHOCONFIGURATION": "New Zoho Configuration",
+ "AUTHTOKEN": "Authorization Token",
+ "HOST": "Host",
+ "DELETE_ZOHOCONFIGURATION": "Delete Zoho Configuration",
+ "PAGE": "Page",
+ "ROWSPERPAGE": "Rows per page",
+ "OF": "of",
+ "VTIGERACCOUNTS": "vTiger Accounts",
+ "VTIGER_USER_NAME": "vTiger User Name",
+ "MODULE_NAME": "vTiger Module Name",
+ "ACCESS_KEY": "vTiger Access Key",
+ "ADD_VTIGERACCOUNT": "Add new vTiger Account",
+ "EDIT_VTIGERACCOUNT": "Edit vTiger Account",
+ "TEST_VTIGERACCOUNT": "Test vTiger Account",
+ "DELETE_VTIGERACCOUNT": "Delete vTiger Account",
+ "NEW_VTIGERACCOUNT": "New vTiger Account",
+ "NEW_VTIGERCONFIGURATION": "Create vTiger Configuration",
+ "DELETE_VTIGERCONFIGURATION": "Delete vTiger Configuration",
+ "ADD_VTIGERCONFIGURATION": "Add vTiger Configuration",
+ "FRESHSALESACCOUNTS": "Freshsales Accounts",
+ "EDIT_FRESHSALESACCOUNT": "Edit Freshsales Account",
+ "DELETE_FRESHSALESACCOUNT": "Delete Freshsales Account",
+ "NEW_FRESHSALESACCOUNT": "New Freshsales Account",
+ "ADD_FRESHSALESACCOUNT": "Add Freshsales Account",
+ "NO_FRESHSALESCONFIGURATION_AVAILABLE": "No Freshsales Configurations available",
+ "NEW_FRESHSALESCONFIGURATION": "New Freshsales Configuration",
+ "ADD_FRESHSALESCONFIGURATION": "Add Freshsales Configuration",
+ "EDIT_FRESHSALESCONFIGURATION": "Edit Freshsales Configuration",
+ "DELETE_FRESHSALESCONFIGURATION": "Delete Freshsales Configuration",
+ "TEST_FRESHSALESACCOUNT": "Test Freshsales Account",
+ "SERVICENOWACCOUNTS": "ServiceNow Accounts",
+ "ADD_SERVICENOWACCOUNT": "Add new ServiceNow Account",
+ "EDIT_SERVICENOWACCOUNT": "Edit ServiceNow Account",
+ "TEST_SERVICENOWACCOUNT": "Test ServiceNow Account",
+ "DELETE_SERVICENOWACCOUNT": "Delete ServiceNow Account",
+ "NEW_SERVICENOWACCOUNT": "New ServiceNow Account",
+ "NEW_SERVICENOWCONFIGURATION": "Create ServiceNow Configuration",
+ "DELETE_SERVICENOWCONFIGURATION": "Delete ServiceNow Configuration",
+ "ADD_SERVICENOWCONFIGURATION": "Add ServiceNow Configuration",
+ "DYNAMICS365ACCOUNTS": "Dynamics365 Accounts",
+ "TENANTID": "Tenant Id",
+ "ADD_DYNAMICS365ACCOUNT": "Add new Dynamics365 Account",
+ "EDIT_DYNAMICS365ACCOUNT": "Edit Dynamics365 Account",
+ "TEST_DYNAMICS365ACCOUNT": "Test Dynamics365 Account",
+ "DELETE_DYNAMICS365ACCOUNT": "Delete Dynamics365 Account",
+ "NEW_DYNAMICS365ACCOUNT": "New Dynamics365 Account",
+ "NEW_DYNAMICS365CONFIGURATION": "Create Dynamics365 Configuration",
+ "DELETE_DYNAMICS365CONFIGURATION": "Delete Dynamics365 Configuration",
+ "ADD_DYNAMICS365CONFIGURATION": "Add Dynamics365 Configuration",
+ "TICKETTYPE": "Ticket Type",
+ "CASE": "Case",
+ "LEADID": "Lead Id",
+ "ADDITIONALSEARCHACCOUNT": "Additional Search Account",
+ "ADDITIONALSEARCHCONTACT": "Additional Search Contact",
+ "ADDITIONALSEARCHLEAD": "Additional Search Lead",
+ "PHONECALL": "Phonecall",
+ "TASK": "Task",
+ "MODULECREATE": "Module Create"
+ }
+}
--- /dev/null
+{
+ "JSCRIPTY": {
+ "CLONE_PROJECT": "Clone Project",
+ "NAME": "Name",
+ "SEARCH_FOR_ANYONE": "Search",
+ "BACK": "Back",
+ "SELECTED": "Selected",
+ "SELECT_ALL": "Select All",
+ "SELECT_NONE": "Select None",
+ "DESCRIPTION": "Description",
+ "ERRORS": {
+ "NAME_REQUIRED": "Mandatory field",
+ "PROJECT_REQUIRED": "Mandatory field",
+ "FIELD_REQUIRED": "Mandatory field",
+ "NAME_MUST_VALID_PATTERN": "Wrong format"
+ },
+ "SAVE": "Save",
+ "PROJECTS": "Projects",
+ "ADD_PROJECT": "Add Project",
+ "EDIT_PROJECT": "Edit Project",
+ "DELETE_PROJECT": "Delete Project",
+ "JSCRIPTY": "Jscripty",
+ "ID": "Id",
+ "PROJECT": "Project",
+ "CREATED_AT": "Created At",
+ "NEW_PROJECT": "New Project",
+ "EDIT": "Edit",
+ "SETTINGS": "Settings",
+ "GENERAL": "General",
+ "BUILDER": "Builder",
+ "PREVIEW": "Preview",
+ "OPEN_CONTACT": "Open Contact",
+ "SENDUNPAUSEONSUBMIT": "Unpause agent on Submit",
+ "HELP": {
+ "NAME": "Only numbers, letters and specific characters (._) are supported",
+ "ENABLEUNCOMPLETESAVE": "Allow to save the agent session even if the survey is not complete",
+ "SENDUNPAUSEONSUBMIT": "At the end of the survey, automatically stop the agent's pause"
+ },
+ "PAGE": "Page",
+ "ROWSPERPAGE": "Rows per page",
+ "OF": "of",
+ "JSCRIPTYSESSIONS": "Project Sessions",
+ "SESSIONS": "Sessions",
+ "STARTTIME": "Start Time",
+ "ENDTIME": "End Time",
+ "MEMBERNAME": "Member Name",
+ "CALLERIDNUM": "Caller Number",
+ "NO_SESSION_AVAILABLE": "No Sessions available",
+ "SESSION_RESULTS": "Session Results",
+ "SHOW_QUESTIONS_SESSION": "Show Session Results",
+ "ANSWERS": "Answers",
+ "NO_RESULTS_AVAILABLE": "No results available",
+ "TOTAL": "Total",
+ "ANSWER": "Answer",
+ "EXPORT_TO_CSV": "Export to CSV",
+ "NO_ANSWERS_AVAILABLE": "No answers available",
+ "DELETE_SESSION": "Delete Session",
+ "RESET_SESSION": "Reset Session",
+ "YES": "Yes",
+ "NO": "No",
+ "DO_YOU_WANT_TO_RESET_SESSION": "Do you want to reset the session?",
+ "ALL_SURVEY_DATA_WILL_BE_LOST": "All survey answers will be lost!",
+ "ENABLEUNCOMPLETESAVE": "Enable incomplete save",
+ "SUBMIT": "Submit",
+ "PROJECT_NOT_AVAILABLE": "Project is not available. Please contact the administrator",
+ "COMPLETE": "Complete",
+ "SESSIONS_PROJECT": "Go to Sessions"
+ },
+ "mwForm": {
+ "form": {
+ "name": "Title",
+ "name.placeholder": "Form title",
+ "description": "Description"
+ },
+ "buttons": {
+ "addPage": "Add page",
+ "moveDown": "Move down",
+ "moveUp": "Move up",
+ "removePage": "Remove page",
+ "remove": "Remove",
+ "addElement": "Add element",
+ "questionReady": "Ready",
+ "next": "Next",
+ "back": "Back",
+ "submit": "Submit",
+ "begin": "Begin",
+ "fold": "Fold",
+ "unfold": "Unfold",
+ "edit": "Edit",
+ "clone": "Clone",
+ "view": "View"
+ },
+ "page": {
+ "tab": {
+ "heading": "Page {{page}} of {{allPages}}"
+ },
+ "elements": {
+ "empty": "Empty page"
+ },
+ "pageWithNameCheckbox": "named",
+ "name": "Page name"
+ },
+ "pageFlow": {
+ "afterPage": "After page {{page}}:",
+ "afterQuestionAnswer": "Go to page based on answer",
+ "goToPage": "Go to page {{page.number}}",
+ "goToNextPage": "Continue to next page",
+ "submitForm": "Submit form"
+ },
+ "elements": {
+ "question": "Question",
+ "image": "Image",
+ "paragraph": "Paragraph"
+ },
+ "question": {
+ "types": {
+ "text": {
+ "name": "Short text"
+ },
+ "textarea": {
+ "name": "Long text"
+ },
+ "radio": {
+ "name": "Radio"
+ },
+ "select": {
+ "name": "Select"
+ },
+ "checkbox": {
+ "name": "Checkboxes"
+ },
+ "grid": {
+ "name": "Grid"
+ },
+ "priority": {
+ "name": "Priority"
+ },
+ "division": {
+ "name": "Division"
+ },
+ "number": {
+ "name": "Number"
+ },
+ "date": {
+ "name": "Date"
+ },
+ "datetime": {
+ "name": "Datetime"
+ },
+ "time": {
+ "name": "Time"
+ },
+ "email": {
+ "name": "Email"
+ },
+ "range": {
+ "name": "Range"
+ },
+ "url": {
+ "name": "URL"
+ }
+ },
+ "text": "Question text",
+ "type": "Question type",
+ "required": "Required",
+ "preview": {
+ "text": "Short answer text",
+ "textarea": "Long answer text",
+ "otherAnswer": "Other"
+ },
+ "division": {
+ "quantity": "Quantity",
+ "unit": "Unit label",
+ "assignedSumLabel": "Assigned",
+ "fromRequiredLabel": "from required"
+ },
+ "priority": {
+ "sorted": "Sorted",
+ "available": "Available",
+ "clickToAddItem": "Click to add item"
+ },
+ "grid": {
+ "cellInputType": "Cell input type",
+ "cellInputTypes": {
+ "radio": "Radio",
+ "checkbox": "Checkbox",
+ "text": "Text",
+ "number": "Number",
+ "date": "Date",
+ "time": "Time"
+ },
+ "rowLabel": "Row {{row}}",
+ "clickToAddRow": "Click to add row",
+ "columnLabel": "Column {{col}}",
+ "clickToAddColumn": "Click to add column"
+ },
+ "range": {
+ "from": "Range from",
+ "to": "to"
+ },
+ "number": {
+ "min": "Min",
+ "max": "Max"
+ },
+ "orLabel": "or ",
+ "otherLabel": "Other: ",
+ "userAnswer": "User answer",
+ "buttons": {
+ "addOption": "Click to add option",
+ "addOther": "Add 'Other'"
+ }
+ },
+ "image": {
+ "selectImageButton": "Select image",
+ "caption": "Image caption"
+ },
+ "paragraph": {
+ "placeholder": "Enter paragraph text"
+ },
+ "confirmationPage": {
+ "title": "Confirmation page",
+ "customMessage": "Custom confirmation message",
+ "defaultMessage": "Your response has been saved",
+ "errorMessage": "Error! Your response has not been saved",
+ "pendingMessage": "Your response is being saved"
+ }
+ }
+}
--- /dev/null
+{
+ "MAIL": {
+ "ADVANCED": "Advanced",
+ "DOWNLOAD_WITH_ATTACHMENTS": "Download with attachments",
+ "DOWNLOAD_WITHOUT_ATTACHMENTS": "Download without attachments",
+ "DOWNLOAD": "Download",
+ "LOGIN_TIME": "Login time",
+ "PAUSE_TIME": "Pause time",
+ "DOWNLOAD_INTERACTION": "Download",
+ "YOU_ARE_REGISTERED_AS_A": "You are registered as a",
+ "TRANSFER": "Transfer",
+ "QUEUETRANSFER": "Queue Transfer",
+ "QUEUETRANSFERTIMEOUT": "Queue Transfer Timeout",
+ "AGENTTRANSFER": "Agent Transfer",
+ "AGENTTRANSFERTIMEOUT": "Agent Transfer Timeout",
+ "TAG": "Tag",
+ "EDIT_TAG": "Edit Tag",
+ "WAITFORTHEASSIGNEDAGENT": "Wait for the assigned agent",
+ "NOTIFICATION": "Notification",
+ "NOTIFICATIONSOUND": "Sound",
+ "NOTIFICATIONSHAKE": "Shake",
+ "NOTIFICATIONTEMPLATE": "Template",
+ "SYSTEM": "System",
+ "EDIT_SYSTEM": "Edit System",
+ "COMMAND": "Command",
+ "VARIABLE": "Variable",
+ "SEND_AS": "Send as",
+ "NEW_MAILSUBSTATUS": "New Sub Status",
+ "ADD_MAILSUBSTATUS": "Add Sub Status",
+ "MAILSUBSTATUSES": "Email Sub Statuses",
+ "EDIT_MAILSUBSTATUS": "Edit",
+ "DELETE_MAILSUBSTATUS": "Delete",
+ "FONT_FAMILY": "Font Family",
+ "FONT_SIZE": "Font Size",
+ "MARK_AS_UNREAD": "Mark as unread",
+ "ACCEPTED": "Accepted",
+ "CANNEDANSWERS": "Canned Answers",
+ "MAILCANNEDANSWERS": "Canned Answers",
+ "NO_MAILCANNEDANSWER_AVAILABLE": "No Canned Answers Available",
+ "NEW_MAILCANNEDANSWER": "New Canned Answer",
+ "ADD_MAILCANNEDANSWER": "Add Canned Answer",
+ "EDIT_MAILCANNEDANSWER": "Edit Canned Answer",
+ "DELETE_MAILCANNEDANSWER": "Delete Canned Answer",
+ "SHOW_ORIGINAL_MESSAGE": "Show original message",
+ "PENDING": "Pending",
+ "SEND_AS_PENDING": "Send as Pending",
+ "SEND_AND_CLOSE": "Send and Close",
+ "CANNED_ANSWER_NOT_FOUND": "No Canned Answers were found",
+ "CANNED_ANSWER_SEARCH": "Enter a text to search a Canned Answer",
+ "SPYINTERACTION": "Spy",
+ "ADD_NOTE": "Add note",
+ "NOTE": "Note",
+ "TAGS": "Tags",
+ "NO_AGENT_ONLINE": "No Agent Online",
+ "GOTOREALTIME_MAILQUEUE": "Go To Realtime Mail Queue",
+ "PARTIALPAUSE": "Parital Pause",
+ "BUSY": "Busy",
+ "TIMER": "Timer",
+ "IDLE": "Idle",
+ "CAPACITY": "Capacity",
+ "UNPAUSE": "End Pause",
+ "DEFAULT_PAUSE": "Default pause",
+ "LOGOUT": "Logout",
+ "AGENTADD_QUEUE": "Add Agent To Email Queue",
+ "VOICE": "Voice",
+ "CHAT": "Chat",
+ "SMS": "Sms",
+ "OPENCHANNEL": "Open channel",
+ "FAX": "Fax",
+ "REALTIME": "Realtime",
+ "AGENTS": "Agents",
+ "QUEUES": "Queues",
+ "ACCOUNTS": "Accounts",
+ "FULLNAME": "Full Name",
+ "INTERNAL": "Internal",
+ "PHONE_STATE": "Phone State",
+ "PHONE_STATUS": "Phone Status",
+ "PAUSE": "Pause",
+ "LOGGED_IN": "Logged In",
+ "PAUSED": "Paused",
+ "READY": "Ready",
+ "WAITING": "Waiting",
+ "TOTAL": "Total",
+ "IN": "In",
+ "OUT": "Out",
+ "IMAP_STATUS": "IMAP Status",
+ "SMTP_STATUS": "SMTP Status",
+ "DISABLED": "Disabled",
+ "CONNECTED": "Connected",
+ "NEVER_VERIFIED": "Never Verified",
+ "ERROR": "Error",
+ "EDIT_ACCOUNT": "Edit Account",
+ "VERIFY_SMTP": "Verify SMTP",
+ "VERIFIED": "Verified",
+ "VERIFYSMTP_MAILACCOUNT": "Verify SMTP",
+ "GOTOREALTIME_MAILACCOUNT": "Go to Realtime Email Account",
+ "GOTO_MAILACCOUNT": "Go to Realtime Email Account",
+ "TEXT": "Text",
+ "TIMES": "Number of times per interaction",
+ "REPLY_TYPE": "Reply Type",
+ "EDIT_AUTOREPLY": "Edit Auto Reply",
+ "AUTOREPLY": "Auto Reply",
+ "SHOW_AUTOREPLY": "Show Auto Reply",
+ "SHOW_DETAILS": "Show details",
+ "HIDE_DETAILS": "Hide details",
+ "TO": "To",
+ "FROM": "From",
+ "DATE": "Date",
+ "CC": "Cc",
+ "REPLY": "Reply",
+ "REPLY_ALL": "Reply All",
+ "FORWARD": "Forward",
+ "SUBJECT": "Subject",
+ "BCC": "Bcc",
+ "SEND": "Send",
+ "ATTACHMENT": "Attachment",
+ "ATTACHMENTS": "Attachments",
+ "NAME": "Name",
+ "MAILQUEUES": "Email Queues",
+ "SEARCH_FOR_ANYONE": "Search",
+ "STRATEGY": "Strategy",
+ "MANDATORYDISPOSITION": "Mandatory disposition",
+ "MANDATORYDISPOSITIONPAUSEID": "Pause to use if mandatory disposition is enabled",
+ "ERRORS": {
+ "QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "QUEUETRANSFERTIMEOUT_REQUIRED": "Mandatory Field",
+ "AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "AGENTTRANSFERTIMEOUT_REQUIRED": "Mandatory Field",
+ "TAG_REQUIRED": "Mandatory Field",
+ "WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "WAITFORTHEASSIGNEDAGENT_REQUIRED": "Mandatory Field",
+ "AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "NAME_MUST_VALID_PATTERN": "Wrong format",
+ "COMMAND_REQUIRED": "Mandatory Field",
+ "FONT_SIZE_REQUIRED": "Mandatory Field",
+ "FONT_SIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "FONT_SIZE_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "TEXT_MAX_LENGTH": "The value must have a maximum length equal to {{max}}",
+ "VALUE_REQUIRED": "Mandatory Field",
+ "TEXT_REQUIRED": "Mandatory Field",
+ "REPLY_TYPE_REQUIRED": "Mandatory Field",
+ "NAME_REQUIRED": "Mandatory Field",
+ "AGENT_TIMEOUT_REQUIRED": "Mandatory Field",
+ "EMAIL_ADDRESS_REQUIRED": "Mandatory Field",
+ "EMAIL_ADDRESS_MUST_VALID": "Wrong format",
+ "HOST_REQUIRED": "Mandatory Field",
+ "USERNAME_REQUIRED": "Mandatory Field",
+ "PORT_REQUIRED": "Mandatory Field",
+ "CONNTIMEOUT_REQUIRED": "Mandatory Field",
+ "AUTHTIMEOUT_REQUIRED": "Mandatory Field",
+ "ACCEPTURL_MUST_VALID_URL": "Wrong format",
+ "TIMEOUT_REQUIRED": "Mandatory Field",
+ "REJECTURL_MUST_VALID_URL": "Wrong format",
+ "CLOSEURL_MUST_VALID_URL": "Wrong format",
+ "AGENT_REQUIRED": "Mandatory Field",
+ "TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "DISPOSITION_REQUIRED": "Mandatory Field",
+ "CONDITION_REQUIRED": "Mandatory Field",
+ "TRUEPRIORITY_REQUIRED": "Mandatory Field",
+ "FALSEPRIORITY_REQUIRED": "Mandatory Field",
+ "TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "PRIORITY_REQUIRED": "Mandatory Field",
+ "PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "QUEUE_REQUIRED": "Mandatory Field",
+ "LIST_REQUIRED": "Mandatory Field",
+ "PASSWORD_REQUIRED": "Mandatory Field",
+ "SERVICE_REQUIRED": "Mandatory Field",
+ "IMAP_HOST_REQUIRED": "Mandatory Field",
+ "IMAP_PORT_REQUIRED": "Mandatory Field",
+ "SMTP_HOST_REQUIRED": "Mandatory Field",
+ "SMTP_PORT_REQUIRED": "Mandatory Field",
+ "CONFIRM_NOT_MATCH": "The passwords inserted don't match",
+ "KEY_MAX_LENGTH": "Key must have a maximum length equal to {{max}}",
+ "KEY_REQUIRED": "Mandatory Field",
+ "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Mandatory field"
+ },
+ "AGENT_TIMEOUT": "Agent Timeout",
+ "DESCRIPTION": "Description",
+ "ADD_MAILQUEUE": "Add Email Queue",
+ "EDIT_MAILQUEUE": "Edit Email Queue",
+ "DELETE_MAILQUEUE": "Delete Email Queue",
+ "SETTINGS": "Settings",
+ "GENERAL": "General",
+ "SAVE": "Save",
+ "MAILACCOUNTS": "Email Accounts",
+ "EMAIL_ADDRESS": "Email Address",
+ "ADD_MAILACCOUNT": "Add Email Account",
+ "EDIT_MAILACCOUNT": "Edit Email Account",
+ "DELETE_MAILACCOUNT": "Delete Email Accounts",
+ "DISPOSITIONS": "Dispositions",
+ "WEBHOOKS": "WebHooks",
+ "ACTIONS": "Actions",
+ "OTHERS": "Others",
+ "LIST": "List",
+ "TEMPLATE": "Template",
+ "FIDELITY": "Fidelity",
+ "SERVICE": "Service",
+ "CREATED_AT": "Created At",
+ "ACCEPT": "Accept",
+ "ACCEPTMETHOD": "Accept Method",
+ "ACCEPTURL": "Accept URL",
+ "REJECT": "Reject",
+ "REJECTMETHOD": "Reject Method",
+ "REJECTURL": "Reject URL",
+ "CLOSE": "Close",
+ "CLOSEMETHOD": "Close Method",
+ "CLOSEURL": "Close URL",
+ "WHITELABEL": "White Label",
+ "SIGNATURE": "Signature",
+ "IMAP": "IMAP",
+ "HOST": "Host",
+ "USERNAME": "Username",
+ "PORT": "Port",
+ "MAILBOX": "Mailbox",
+ "FILTER": "Filter",
+ "CONNTIMEOUT": "Connection Timeout [sec]",
+ "AUTHTIMEOUT": "Authentication Timeout [sec]",
+ "DELETE": "Delete Email From Server",
+ "SSL": "SSL",
+ "KEEPALIVE": "Keepalive",
+ "POLLING": "Polling",
+ "SMTP": "SMTP",
+ "SELECTED": "Selected",
+ "SELECT_ALL": "Select All",
+ "SELECT_NONE": "Select None",
+ "BACK": "Back",
+ "MAIL": "Email",
+ "ID": "Id",
+ "TIMEOUT": "Timeout",
+ "PASSWORD": "Password",
+ "NO_MAILDISPOSITION_AVAILABLE": "No Email Dispositions available",
+ "ADD_MAILDISPOSITION": "Add Email Disposition",
+ "NEW_MAILDISPOSITION": "New Email Disposition",
+ "EDIT_MAILDISPOSITION": "Edit Email Disposition",
+ "DELETE_MAILDISPOSITION": "Delete Email Disposition",
+ "MAILDISPOSITIONS": "Email Dispositions",
+ "NEW_MAILQUEUE": "New Email Queue",
+ "NEW_MAILACCOUNT": "New Email Account",
+ "NO_AVAILABLE_INFO": "No availables info",
+ "ALL_TEAMS": "All Teams",
+ "SELECTED_TEAMS": "Selected Teams",
+ "HELP": {
+ "FONT_FAMILY": "Default Font Family",
+ "FONT_SIZE": "Default Font Size",
+ "NAME": "Only numbers, letters and specific characters (._) are supported",
+ "USERNAME": "Username used for authentication",
+ "PASSWORD": "Password used for authentication",
+ "SECURE": "If true, the connection will use TLS when connecting to server",
+ "MANDATORYDISPOSITION": "Mandatory disposition",
+ "MANDATORYDISPOSITIONPAUSEID": "Pause to use when mandatory disposition is enabled",
+ "MARK_AS_UNREAD": "Enable/Disable agent to mark as unread the last message of an interaction"
+ },
+ "PAGE": "Page",
+ "ROWSPERPAGE": "Rows per page",
+ "OF": "of",
+ "TEAMADD_MAILQUEUE": "Add Team to Email Queue",
+ "AGENTADD_MAILQUEUE": "Add Agent to Email Queue",
+ "ALL_AGENTS": "All Agents",
+ "SELECTED_AGENTS": "Selected Agents",
+ "AGENT": "Agent",
+ "EDIT_AGENT": "Edit Agent",
+ "EDIT_CLOSE": "Edit Close",
+ "DISPOSITION": "Disposition",
+ "GOTOIF": "GotoIf",
+ "EDIT_GOTOIF": "Edit GotoIf",
+ "CONDITION": "Condition",
+ "TRUEPRIORITY": "True Priority",
+ "FALSEPRIORITY": "False Priority",
+ "GOTOP": "GotoP",
+ "EDIT_GOTOP": "Edit GotoP",
+ "PRIORITY": "Priority",
+ "NOOP": "Noop",
+ "EDIT_NOOP": "Edit Noop",
+ "VALUE": "Value",
+ "QUEUE": "Queue",
+ "EDIT_QUEUE": "Edit Queue",
+ "INTERACTIONS": "Interactions",
+ "STARTEDAT": "Started At",
+ "LASTMESSAGE": "Last message",
+ "CONTACT": "Contact",
+ "CLOSEDAT": "Closed At",
+ "NOTES": "Notes",
+ "NO_INTERACTION_AVAILABLE": "No interactions available",
+ "ACTIVE": "Active",
+ "SECURE": "Secure",
+ "AUTHENTICATION": "Authentication",
+ "SMTP_HOST": "SMTP Host",
+ "SMTP_PORT": "SMTP Port",
+ "IMAP_HOST": "IMAP Host",
+ "IMAP_PORT": "IMAP Port",
+ "CONFIRM_PASSWORD": "Confirm Password",
+ "SELECT_STATUS": "Select Status",
+ "OPENED": "Open",
+ "CLOSED": "Closed",
+ "ALL": "All",
+ "SELECT_ACCOUNT": "Select Account",
+ "STATUS": "Status",
+ "ACCOUNT": "Account",
+ "OPEN": "Open",
+ "KEY": "Key",
+ "SMTPSERVICE": "SMTP Service",
+ "UNKNOWN": "Unknown",
+ "UNREGISTERED": "Unregistered",
+ "UNAVAILABLE": "Unavailable",
+ "NOT_INUSE": "Not in use",
+ "REACHABLE": "Reachable",
+ "IN_USE": "In use",
+ "AGENTSADD_QUEUE": "Add agents to Email Queue",
+ "INFO": "Info",
+ "INTERACTIONS_MAILACCOUNT": "Go to Interactions",
+ "REFRESH_INTERACTIONS": "Refresh Interactions",
+ "DELETE_INTERACTION": "Delete Interaction",
+ "AGENTADD_MAILACCOUNT": "Add Agent to Email Account",
+ "TEAMS_ASSOCIATION": "Teams Association",
+ "TOOLTIP_SCREENRECORDING_ON": "Screen Recording in progress",
+ "TOOLTIP_SCREENRECORDING_OFF": "Screen Recording available",
+ "DOWNLOAD_WITH_ATTACHMENT": "Download with attachment",
+ "DOWNLOAD_WITHOUT_ATTACHMENT": "Download without attachment"
+ }
+}
--- /dev/null
+{
+ "MARKETPLACE": {
+ "MARKETPLACE": "App Zone",
+ "PLUGINS": "Plugins",
+ "BACK": "Back",
+ "SEARCH_FOR_ANYONE": "Search",
+ "SELECTED": "Selected",
+ "SELECT_ALL": "Select all",
+ "SELECT_NONE": "Select none",
+ "NAME": "Name",
+ "DESCRIPTION": "Description",
+ "ACTIVE": "Active",
+ "TYPE": "Type",
+ "ICON": "Icon",
+ "ADMINURL": "Admin url",
+ "AGENTURL": "Agent url",
+ "SCRIPTNAME": "Script name",
+ "SCRIPTPATH": "Script path",
+ "SIDEBAR": "Sidebar",
+ "VERSION": "Version",
+ "NO_AVAILABLE_INFO": "No available info",
+ "MORE": "More",
+ "INSTALL_PLUGIN": "Install plugin",
+ "EDIT_PLUGIN": "Edit plugin",
+ "STOP_PLUGIN": "Stop plugin",
+ "RESTART_PLUGIN": "Restart plugin",
+ "DOWNLOAD_PLUGIN": "Download plugin",
+ "UNINSTALL_PLUGIN": "Uninstall plugin",
+ "DELETE_PLUGIN": "Remove plugin",
+ "CANCEL": "Cancel",
+ "FINISH": "Finish",
+ "DELETE": "Delete",
+ "SAVE": "Save",
+ "INSTALLING": "Installing",
+ "DROP_TO_UPLOAD": "Drop To Upload",
+ "DROP_TO_UPLOAD_MESSAGE": "Drop your file here to upload. Only ZIP - Max. 4MB",
+ "UPLOAD_PLUGIN": "Upload plugin",
+ "UPLOADING": "Uploading",
+ "CREATED_AT": "Created at",
+ "GENERAL": "General",
+ "SETTINGS": "Settings",
+ "EDITOR": "Editor",
+ "ERRORS": {
+ "URL_REQUIRED": "Mandatory field"
+ },
+ "HELP": {},
+ "PAGE": "Page",
+ "ROWSPERPAGE": "Rows per page",
+ "OF": "of"
+ }
+}
--- /dev/null
+{
+ "MOTIONDIALER": {
+ "SECOND_LEVEL_DISPOSITION": "Second Level Disposition",
+ "THIRD_LEVEL_DISPOSITION": "Third Level Disposition",
+ "ONE_CALL_EVERY": "One call every",
+ "CURRENT_INTERVAL": "Current Interval",
+ "PREVIOUS_INTERVAL": "Previous Interval",
+ "PREDICTIVE_IS_RUNNING": "Predictive is running",
+ "PREDICTIVE_IS_NOT_RUNNING": "Predictive is not running",
+ "DATA_COLLECTION_IN_PROGRESSIVE": "Data collection in Progressive",
+ "SHOW_PREDICTIVE_QUEUE_CAMPAIGN_INFO": "Show Predictive Info",
+ "AVG_TALK_TIME": "Avg Talk Time",
+ "ANSWERED_CALLS": "Answered Calls",
+ "TOTAL_CALLS": "Total Calls",
+ "THRESHOLDS": "Thresholds",
+ "PREDICTIVEMAXTHRESHOLD": "Predictive Max Threshold [%]",
+ "PREDICTIVEMINTHRESHOLD": "Predictive Min Threshold [%]",
+ "REFRESH_SCHEDULED_CALLS": "Refresh Scheduled Calls",
+ "RECALLINQUEUE": "Recall in queue",
+ "SELECT_DATE": "Select Date",
+ "SELECT_TYPE": "Select Type",
+ "SELECT_CAMPAIGN": "Select Campaign",
+ "SCHEDULED_CALLS": "Scheduled Calls",
+ "LOGIN_TIME": "Login time",
+ "PAUSE_TIME": "Pause time",
+ "CUTDIGIT": "Cut Digits",
+ "RANDOMLASTDIGITCALLERIDNUMBER": "Random Outgoing CallerId Number",
+ "CLONE_IVRCAMPAIGN": "Clone Campaign",
+ "CLONE_QUEUECAMPAIGN": "Clone Queue Campaign",
+ "ABANDONEDCALLS": "Abandoned Queue Calls",
+ "HOPPERWIDGET": "Summary",
+ "RESETLIST_IVRCAMPAIGN": "Reset Lists",
+ "RESETLIST_QUEUECAMPAIGN": "Reset Lists",
+ "RESET": "Reset",
+ "RESETLIST": "Reset Lists",
+ "SELECTALL": "Select All",
+ "UNSELECTALL": "Un-Select All",
+ "NO_AVAILABLE_INFO": "No available info",
+ "TIMEOUT": "Timeout",
+ "CALLYSQUAREPROJECTPREVIEW": "Cally Square Project Preview",
+ "CALLYSQUAREPROJECTPREVIEW2": "Cally Square Project After Preview",
+ "RUNIFHANGUPAGENT": "Run Cally Square Project After even if the agent hangs up the call",
+ "CALLYSQUAREPROJECT2": "Cally Square Project After Queue",
+ "NO_AGENT_ONLINE": "No Agent Online",
+ "PARTIALPAUSE": "Parital Pause",
+ "ALL": "All",
+ "IDLE": "Idle",
+ "TIMER": "Timer",
+ "MOVE_HOPPERFINAL": "Restore contact",
+ "RESTORECONTACTS": "Restore Contacts",
+ "NO_SUCH_NUMBER": "No Such Number",
+ "ANSWERING_MACHINE": "Answering machine",
+ "DIALORDERBYSCHEDULEDAT": "Order By scheduledat",
+ "ASC": "ASC",
+ "DESC": "DESC",
+ "RECALLAGENT": "Recall Agent",
+ "DIALRECALLINQUEUE": "Recall In Queue",
+ "DIALRECALLMETIMEOUT": "Recall Me Timeout [min]",
+ "RECALLME": "Recall Me",
+ "RECALLFAILEDTIMEOUT": "Recall Failed",
+ "PREVIEW_CAMPAIGN": "Preview Campaigns",
+ "PREVIEW_CAMPAIGNS": "Preview Campaigns",
+ "AMD": "Asterisk Answering Machine Detection (AMD)",
+ "AMDTOTALANALYSISTIME": "Total Analysis Time",
+ "AMDACTIVE": "AMD",
+ "AMDINITIALSILENCE": "Initial Silence",
+ "AMDGREETING": "Greeting",
+ "AMDAFTERGREETINGSILENCE": "Silence after Greeting",
+ "AMDSILENCETHRESHOLD": "Silence Threshold",
+ "AMDMINWORDLENGTH": "Min Word Length",
+ "AMDBETWEENWORDSSILENCE": "Silence Between Words",
+ "AMDMAXIMUMWORDLENGTH": "Maximum Word Length",
+ "AMDMAXIMUMNUMBEROFWORDS": "Maximum Number Of Words",
+ "GOTO_QUEUECAMPAIGN": "Go To Realtime Queue Campaigns",
+ "GOTOREALTIME_QUEUECAMPAIGN": "Go To Realtime Queue Campaigns",
+ "GOTO_IVRCAMPAIGN": "Go To Realtime IVR Campaigns",
+ "GOTOREALTIME_IVRCAMPAIGN": "Go To Realtime IVR Campaigns",
+ "LOGOUT": "Logout",
+ "EDIT_CAMPAIGN": "Edit Campaign",
+ "LIMITED": "Limited",
+ "IVR_CAMPAIGNS": "IVR Campaigns",
+ "MOTIONDIALER": "Motion Bull",
+ "QUEUECAMPAIGNS": "Queue Campaigns",
+ "IVRCAMPAIGNS": "IVR Campaigns",
+ "MANAGED": "Managed",
+ "AVAILABLE_CONTACTS_FINISHED": "Available contacts finished",
+ "HISTORY": "History",
+ "SCHEDULEDAT": "Scheduled At",
+ "HOPPERBLACKS": "Hopper Blacklist",
+ "NO_HOPPERBLACK_AVAILABLE": "No items available",
+ "HOPPERFINALS": "Hopper Final",
+ "NO_HOPPERFINAL_AVAILABLE": "No items available",
+ "HOPPERHISTORIES": "Call history",
+ "NO_HOPPERHISTORY_AVAILABLE": "No items available",
+ "DELETE_HOPPERHISTORY": "Delete",
+ "DELETE_HOPPERFINAL": "Delete",
+ "CONTACTID": "Contact ID",
+ "STARTTIME": "Start Time",
+ "RESPONSETIME": "Response Time",
+ "ENDTIME": "End Time",
+ "STATUS": "Status",
+ "HOPPERS": "Hopper",
+ "NO_HOPPER_AVAILABLE": "No items available",
+ "EDIT_HOPPER": "Edit Hopper",
+ "DELETE_HOPPER": "Delete Hopper",
+ "FINAL": "Final",
+ "BLACKLIST": "Blacklist",
+ "NAME": "Name",
+ "VOICEQUEUES": "Voice Queues",
+ "SEARCH_FOR_ANYONE": "Search",
+ "BACK": "Back",
+ "SELECTED": "Selected",
+ "SELECT_ALL": "Select All",
+ "SELECT_NONE": "Select None",
+ "DELETE_VOICEDISPOSITION": "Delete Voice Disposition",
+ "EDIT_VOICEDISPOSITION": "Edit Voice Disposition",
+ "EDIT_VOICEQUEUE": "Edit Voice Queue",
+ "DELETE_VOICEQUEUE": "Delete Voice Queue",
+ "MOHSOUNDS": "Moh Sounds",
+ "STRATEGY": "Strategy",
+ "DESCRIPTION": "Description",
+ "INTERVAL": "Time Interval",
+ "ADD_VOICEQUEUE": "Add Voice Queue",
+ "NEW_QUEUECAMPAIGN": "New Queue Campaign",
+ "ACTIVE": "Active",
+ "METHOD": "Method",
+ "POWERLEVEL": "Power Level",
+ "DROPRATE": "Drop Rate",
+ "AGENTBUSYFACTOR": "Agent Busy Factor",
+ "PREDICTIVEOPTIMIZATION": "Predictive Optimization",
+ "PREDICTIVEOPTIMIZATIONPERCENTAGE": "Predictive Optimization Percentage",
+ "PREDICTIVEINTERVAL": "Predictive Interval",
+ "ADD_QUEUECAMPAIGN": "Add Queue Campaign",
+ "CAMPAIGN": "Campaign",
+ "MAXCONCURRENTCALLS": "Max Concurrent Calls",
+ "CONCURRENTCALLS": "Max Concurrent Calls",
+ "ORIGINATE": "Originate",
+ "ORIGINATECALLERIDNAME": "Caller ID Name",
+ "ORIGINATECALLERIDNUMBER": "Caller ID Number",
+ "ORIGINATETIMEOUT": "Originate Timeout",
+ "QUEUEOPTIONS": "Queue Options",
+ "QUEUETIMEOUT": "Queue Timeout",
+ "CALLYSQUAREPROJECT": "Cally Square Project",
+ "RETRYANDFREQUENCY": "Retry Settings",
+ "GLOBAL": "Global",
+ "GLOBALMAXRETRY": "Max Retries",
+ "CONGESTION": "Congestion",
+ "CONGESTIONMAXRETRY": "Max Retries",
+ "CONGESTIONRETRYTIME": "Retry Time [min]",
+ "BUSYMAXRETRY": "Max Retries",
+ "BUSYRETRYTIME": "Retry Time [min]",
+ "NOANSWER": "No Answer",
+ "NOANSWERMAXRETRY": "Max Retries",
+ "NOANSWERRETRYTIME": "Retry Time [min]",
+ "QUEUE_PARAMS": "Queue Parameters",
+ "ORIGINATED": "Originated",
+ "MESSAGE": "Message",
+ "DROPPED": "Dropped",
+ "CREATED_AT": "Created At",
+ "NOSUCHNUMBER": "No such number",
+ "NOSUCHNUMBERMAXRETRY": "Max Retries",
+ "NOSUCHNUMBERRETRYTIME": "Retry Time [min]",
+ "DROP": "Drop",
+ "DROPMAXRETRY": "Max Retries",
+ "DROPRETRYTIME": "Retry Time [min]",
+ "ABANDONEDMAXRETRY": "Max Retries",
+ "ABANDONEDRETRYTIME": "Retry Time [min]",
+ "MACHINE": "Machine",
+ "MACHINEMAXRETRY": "Max Retries",
+ "MACHINERETRYTIME": "Retry Time [min]",
+ "AGENTREJECT": "Agent Reject",
+ "AGENTREJECTMAXRETRY": "Max Retries",
+ "AGENTREJECTRETRYTIME": "Retry Time [min]",
+ "LEGEND": {
+ "CUSTOM_APPLICATION": "(*) - Custom application."
+ },
+ "ERRORS": {
+ "AGENT_REQUIRED": "Mandatory field",
+ "CUTDIGIT_REQUIRED": "Mandatory field",
+ "CUTDIGIT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "CUTDIGIT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "RANDOMLASTDIGITCALLERIDNUMBER_REQUIRED": "Mandatory field",
+ "RANDOMLASTDIGITCALLERIDNUMBER_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "RANDOMLASTDIGITCALLERIDNUMBER_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "AGENTTIMEOUT_REQUIRED": "Mandatory field",
+ "INTERVAL_REQUIRED": "Mandatory field",
+ "EMAIL_REQUIRED": "Mandatory field",
+ "DIALRECALLMETIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "DIALRECALLMETIMEOUT_REQUIRED": "Mandatory field",
+ "NAME_MUST_VALID_PATTERN": "Wrong format",
+ "PREFIX_MUST_VALID_PATTERN": "Wrong format",
+ "NAME_REQUIRED": "Mandatory field",
+ "TIMEOUT_REQUIRED": "Mandatory field",
+ "PHONENUMBER_REQUIRED": "Mandatory field",
+ "CONTEXT_REQUIRED": "Mandatory field",
+ "DESTINATIONPATTERN_REQUIRED": "Mandatory field",
+ "FULLNAME_REQUIRED": "Mandatory field",
+ "EMAIL_REQUUIRED": "Mandatory field",
+ "EMAIL_MUST_VALID": "Wrong format",
+ "MAILBOX_REQUIRED": "Mandatory Field",
+ "PASSWORD_REQUIRED": "Mandatory field",
+ "CONFIRM_NOT_MATCH": "The passwords don't match",
+ "TIMEZONE_REQUIRED": "Mandatory field",
+ "PREFIX_REQUIRED": "Mandatory field",
+ "OPTIONS_REQUIRED": "Mandatory field",
+ "AFTERCALLWORKDURATION_REQUIRED": "Mandatory field",
+ "TECHNOLOGY/RESOURCE_REQUIRED": "Mandatory field",
+ "PHONE_REQUIRED": "Mandatory field",
+ "VALUE_REQUIRED": "Mandatory field",
+ "EXTENSION_REQUIRED": "Mandatory field",
+ "PRIORITY_REQUIRED": "Mandatory field",
+ "GLOBALMAXRETRY_REQUIRED": "Mandatory field",
+ "CONGESTIONMAXRETRY_REQUIRED": "Mandatory field",
+ "CONGESTIONRETRYTIME_REQUIRED": "Mandatory field",
+ "BUSYMAXRETRY_REQUIRED": "Mandatory field",
+ "BUSYRETRYTIME_REQUIRED": "Mandatory field",
+ "NOANSWERMAXRETRY_REQUIRED": "Mandatory field",
+ "NOANSWERRETRYTIME_REQUIRED": "Mandatory field",
+ "QUEUETIMEOUT_REQUIRED": "Mandatory field",
+ "ORIGINATETIMEOUT_REQUIRED": "Mandatory field",
+ "GLOBALINTERVAL_REQUIRED": "Mandatory field",
+ "MAXCONCURRENTCALLS_REQUIRED": "Mandatory field",
+ "CONCURRENTCALLS_REQUIRED": "Mandatory field",
+ "NOSUCHNUMBERMAXRETRY_REQUIRED": "Mandatory field",
+ "NOSUCHNUMBERRETRYTIME_REQUIRED": "Mandatory field",
+ "DROPMAXRETRY_REQUIRED": "Mandatory field",
+ "DROPRETRYTIME_REQUIRED": "Mandatory field",
+ "ABANDONEDMAXRETRY_REQUIRED": "Mandatory field",
+ "ABANDONEDRETRYTIME_REQUIRED": "Mandatory field",
+ "MACHINEMAXRETRY_REQUIRED": "Mandatory field",
+ "MACHINERETRYTIME_REQUIRED": "Mandatory field",
+ "AGENTREJECTMAXRETRY_REQUIRED": "Mandatory field",
+ "AGENTREJECTRETRYTIME_REQUIRED": "Mandatory field",
+ "POWERLEVEL_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "PREDICTIVEOPTIMIZATIONPERCENTAGE_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "PREDICTIVEINTERVAL_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "MAXCONCURRENTCALLS_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "ORIGINATETIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "QUEUETIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "AGENTTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "RETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "WRAPUPTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "WEIGHT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "GLOBALMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "CONGESTIONMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "CONGESTIONRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "BUSYMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "BUSYRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "NOANSWERMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "NOANSWERRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "CONCURRENTCALLS_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "POWERLEVEL_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "PREDICTIVEOPTIMIZATIONPERCENTAGE_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "PREDICTIVEINTERVAL_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "MAXCONCURRENTCALLS_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "ORIGINATETIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "QUEUETIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "GLOBALMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "CONGESTIONMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "CONGESTIONRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "BUSYMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "BUSYRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "NOANSWERMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "NOANSWERRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "NOSUCHNUMBERMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "NOSUCHNUMBERRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "DROPMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "DROPRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "ABANDONEDMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "ABANDONEDRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "MACHINEMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "MACHINERETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "AGENTREJECTMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "AGENTREJECTRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "CONCURRENTCALLS_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Mandatory field",
+ "CALLYSQUAREPROJECT_REQUIRED": "Mandatory field",
+ "TRUNK_REQUIRED": "Mandatory field"
+ },
+ "GENERAL": "General",
+ "AGENTTIMEOUT": "Agent Timeout",
+ "MAXLENGTH": "Maximum Length",
+ "RETRY": "Retry",
+ "WRAPUPTIME": "Wrapup Time",
+ "WEIGHT": "Weight",
+ "JOINWHENEMPTY": "Join when empty",
+ "LEAVEWHENEMPTY": "Leave when empty",
+ "HELP": {
+ "PREDICTIVEMAXTHRESHOLD": "If the percentage of agents available in the time window, compared to the agents available at the time of prediction, exceeds the configured maximum limit, the predictive recalculates the prediction. ",
+ "PREDICTIVEMINTHRESHOLD": "If the percentage of agents available in the time window, compared to the agents available at the time of prediction, exceeds the configured minimum limit, the predictive recalculates the prediction.",
+ "RANDOMLASTDIGITCALLERIDNUMBER": "If greater than 0, it generates randomly the corresponding last digits of the Outgoing Caller Id Number",
+ "TIMEOUT": "Number of seconds to ring agent in queue",
+ "CALLYSQUAREPROJECTPREVIEW": "Selecting an IVR project, the dialer will forward the call to the IVR when an agent answers (the IVR will be directed to the agent)",
+ "CALLYSQUAREPROJECTPREVIEW2": "Selecting an IVR project, the dialer will forward the call to the IVR when an client hangup or unreachable (the IVR will be directed to the agent)",
+ "RUNIFHANGUPAGENT": "Run Cally Square Project After even if the agent hangs up the call",
+ "CALLYSQUAREPROJECT2": "Selecting an IVR project, the dialer will forward the call to the IVR after the queue (if the queue ends by timeout)",
+ "DIALORDERBYSCHEDULEDAT": "Get contacts from hopper (descending or ascending).",
+ "DIALRECALLINQUEUE": "Reschedule call for agents in the Queue",
+ "DIALRECALLMETIMEOUT": "Time interval (in minutes) for Recall Me period of validity",
+ "PRIORITY": "Priority in the list",
+ "AMDMAXIMUMWORDLENGTH": "Maximum duration allowed of a single Voice utterance",
+ "AMDMINWORDLENGTH": "Minimum duration of a Voice to be considered a word",
+ "AMDSILENCETHRESHOLD": "If the average level of noise in a sample does not reach this value, from a scale of 0 to 32767, then we will consider it as silence",
+ "AMDTOTALANALYSISTIME": "Maximum time allowed for the algorithm to decide on whether the audio represents a HUMAN or a MACHINE",
+ "AMDAFTERGREETINGSILENCE": "Silence after detecting a greeting. If exceeded, then the result is detection as a HUMAN",
+ "AMDGREETING": "Maximum length of a greeting. If exceeded, then the result is detection as a MACHINE",
+ "AMDINITIALSILENCE": "Maximum silence duration before the greeting. If exceeded, then the result is detection as a MACHINE",
+ "AMDACTIVE": "Activate or disactivate answering machines detection attempts",
+ "AMDBETWEENWORDSSILENCE": "Minimum duration of silence after a word to consider the audio that follows as a new word",
+ "AMDMAXIMUMNUMBEROFWORDS": "Maximum number of words in the greeting. If REACHED, then the result is detection as a MACHINE",
+ "CALLYSQUAREPROJECT": "Selecting an IVR project, the dialer will forward the call to the IVR before the queue",
+ "PREFIX": "Telephone prefix",
+ "ACTIVE": "Active",
+ "AGENTTIMEOUT": "How long (in seconds) to ring an agent’s device",
+ "MAXLENGTH": "Maximum number of callers allowed to be waiting in a queue (0=unlimited)",
+ "RETRY": "How long (in seconds) to wait before calling the next agent in the queue when the agent timeout is expired",
+ "WRAPUPTIME": "How long (in seconds) to keep an agent unavailable in a queue after completing a call",
+ "WEIGHT": "Used to determine priority if the agents are associated with more than one queue",
+ "JOINWHENEMPTY": "If a caller is added to the queue, when no agents are available",
+ "LEAVEWHENEMPTY": "If a caller is expelled from the queue when no agents are available",
+ "ANNOUNCEFREQUENCY": "How often to announce the caller’s position and/or estimated hold time in the queue (0=disable)",
+ "MINANNOUNCEFREQUENCY": "Minimum announcement frequency (useful when the caller’s position changes frequently)",
+ "PERIODICANNOUNCEFREQUENCY": "Frequency of periodic announcements to the caller",
+ "ANNOUNCEPOSITIONLIMIT": "Used if you’ve defined announce-position as either 'limit' or 'more'",
+ "AFTERCALLWORKDURATION": "Pause length triggered by the After Call Work option",
+ "MEMBERDELAY": "Inserts a delay prior to the caller and agent in queue get connected",
+ "MUSICONHOLD": "Sets the music class to use for a particular queue",
+ "ANNOUNCETOAGENT": "Plays an announcement to the agent answering the call (e.g. to let him know which queue the caller is coming from)",
+ "RANDOMPERIODICANNOUNCE": "If yes, it plays the periodic announcements in random order",
+ "ANNOUNCEHOLDTIME": "Plays the estimated hold time along with the periodic announcements (Yes/No/Once)",
+ "ANNOUNCECALLERPOSITION": "Used to define if the caller’s position in the queue should be announced: No=never; Yes=always; Limit=only if it is within the limit defined by announce-position-limit; More= only if it is beyond the value defined by announce-position-limit",
+ "REPORTHOLDTIMEAGENT": "Enables reporting caller’s hold time to the agent in queue prior to connection",
+ "PERIODICANNOUNCE": "Set of periodic announcements to be played (in the order)",
+ "HOLDTIMEANNOUNCE": "Choose a Sound defined in Tools. Default=“Hold time”. Undefined=no announcement",
+ "YOUARENEXTANNOUNCE": "Choose a Sound defined in Tools. Default=“You are now first in line”. Undefined=no announcement",
+ "THEREAREANNOUNCE": "Choose a Sound defined in Tools. Default=“There are”. Undefined=no announcement",
+ "WAITINGCALLSANNOUNCE": "Choose a Sound defined in Tools. Default=“calls waiting”. Undefined=no announcement",
+ "ESTIMATEDHOLDTIMEANNOUNCE": "Choose a Sound defined in Tools. Default=“The current estimated hold time is”. Undefined=no announcement",
+ "MINUTESANNOUNCE": "Choose a Sound defined in Tools. Default=“minutes”. Undefined=no announcement",
+ "MINUTEANNOUNCE": "Choose a Sound defined in Tools. Default=“minute”. Undefined=no announcement",
+ "SECONDSANNOUNCE": "Choose a Sound defined in Tools. Default=“seconds”. Undefined=no announcement",
+ "THANKYOUANNOUNCE": "Choose a Sound defined in Tools. Default=“Thank you for your patience”. Undefined=no announcement",
+ "AFTERCALLWORK": "If enabled, the agent will be set on Pause after completing a call",
+ "AUTOPAUSE": "Enables/disables the automatic pause of agents who fail to answer a call. If enabled, it causes the agent to be paused in all queues he belongs to",
+ "RINGINUSE": "To avoid/allow sending calls to members whose status is In Use",
+ "TIMEOUTRESTART": "If yes, this resets the timeout for an agent to answer when either a BUSY or CONGESTION status is received from the channel",
+ "MONITORFORMAT": "Specifies the file format to use when recording. If monitor-format is inactive, calls will not be recorded",
+ "CONTEXT": "Allows a caller to exit the queue by pressing a single DTMF digit. If a context is specified and the caller enters a number, that digit will attempt to be matched in the context specified, and dialplan execution will continue there",
+ "SETINTERFACEVARIABLES": "If set to yes, just prior to the caller being connected with a queue agent some variables will be set (for more information see wiki docs:<a target=\"_blank\"href=\"https://wiki.xcallymotion.com/display/XMV/Queue+Campaigns#QueueCampaigns-Advanced\">click here</a>)",
+ "SETQUEUEVARIABLES": "If set to yes, just prior to the caller being connected with a queue agent and leaving the queue, some variables will be set (for more information, see wiki docs:<a target=\"_blank\"href=\"https://wiki.xcallymotion.com/display/XMV/Queue+Campaigns#QueueCampaigns-Advanced\">click here</a>)",
+ "SETQUEUEENTRYVARIABLES": "If set to yes, just prior to the caller being connected with a queue agent some variables will be set (for more information, see wiki docs:<a target=\"_blank\"href=\"https://wiki.xcallymotion.com/display/XMV/Queue+Campaigns#QueueCampaigns-Advanced\">click here</a>)",
+ "RECORDING": "Enable call recording",
+ "VOICEMAIL_CONTEXT": "The context of the relative extension",
+ "METHOD": "Outbound dialer method",
+ "POWERLEVEL": "Number of contacts to call for any available agent",
+ "PREDICTIVEOPTIMIZATION": "A factor to optimize in the predictive algorithm",
+ "PREDICTIVEOPTIMIZATIONPERCENTAGE": "Percentage based on the selected predictive optimization factor",
+ "PREDICTIVEINTERVAL": "Time interval (in minutes) considered by the predictive algorithm to calculate the amount of calls to generate to optimize the result",
+ "MAXCONCURRENTCALLS": "Maximum number of concurrent calls that will be originated by the outbound dialer for this campaign (0=unlimited)",
+ "CONCURRENTCALLS": "Maximum number of concurrent calls that will be originated by the outbound dialer for this campaign",
+ "ORIGINATECALLERIDNAME": "Outgoing Caller Id Name",
+ "ORIGINATECALLERIDNUMBER": "Outgoing Caller Id Number",
+ "ORIGINATETIMEOUT": "Time (in seconds) for the outbound call to establish a connection, otherwise the status is set to No Answer ",
+ "QUEUETIMEOUT": "Time (in seconds) a call will wait in the queue before it is dropped (Min 1 and Max 999)",
+ "GLOBALMAXRETRY": "Maximum number of times a contact is called before considering it closed",
+ "CONGESTIONMAXRETRY": "Maximum number of times a contact is called before considering it closed, when the call failed for congestion",
+ "CONGESTIONRETRYTIME": "Time in minutes before trying to call again a failed contact due to congestion",
+ "BUSYMAXRETRY": "Maximum number of times a contact is called before considering it closed, when the call failed for busy",
+ "BUSYRETRYTIME": "Time in minutes before trying to call again a failed contact due to busy",
+ "NOANSWERMAXRETRY": "Maximum number of times a contact is called before considering it closed, when the call failed for no answer",
+ "NOANSWERRETRYTIME": "Time in minutes before trying to call again a failed contact due to no answer",
+ "GLOBALINTERVAL": "Global time interval during which the dialer is allowed to call contacts. We decline responsibility: pay attention when you modify this field, because you may fail to comply with the national Autodialer Laws and Regulations",
+ "NAME": "Only numbers, letters and specific characters (._) are supported",
+ "NOSUCHNUMBERMAXRETRY": "Maximum number of times a contact is called before considering it closed, when the call failed for no such number",
+ "NOSUCHNUMBERRETRYTIME": "Time in minutes before trying to call again a failed contact due to no such number",
+ "DROPMAXRETRY": "Maximum number of times a contact is called before considering it closed, when the call failed for drop",
+ "DROPRETRYTIME": "Time in minutes before trying to call again a failed contact due to drop",
+ "ABANDONEDMAXRETRY": "Maximum number of times a contact is called before considering it closed, when the call failed for abandon",
+ "ABANDONEDRETRYTIME": "Time in minutes before trying to call again a failed contact due to abandon",
+ "MACHINEMAXRETRY": "Maximum number of times a contact is called before considering it closed, when the call failed for machine",
+ "MACHINERETRYTIME": "Time in minutes before trying to call again a failed contact due to machine",
+ "AGENTREJECTMAXRETRY": "Maximum number of times a contact is called before considering it closed, when the call failed for agent reject",
+ "AGENTREJECTRETRYTIME": "Time in minutes before trying to call again a failed contact due to agent reject",
+ "MANDATORYDISPOSITIONPAUSEID": "Pause status to set during mandatory disposition",
+ "PREVIEW_AUTO_RECALL_ME": "If enabled, the system will automatically generate the Recall Me calls; otherwise, the agent must do it manually"
+ },
+ "MUSICONHOLD": "Music On Hold",
+ "ANNOUNCETOAGENT": "Announce To Agent",
+ "ANNOUNCEMENTS": "Announcements",
+ "ADVANCEDPREVIEW": "Advanced",
+ "ADVANCED": "Advanced",
+ "ADVANCE": "Advanced",
+ "ANNOUNCEFREQUENCY": "Announce Frequency",
+ "MINANNOUNCEFREQUENCY": "Minimum Announce Frequency",
+ "PERIODICANNOUNCEFREQUENCY": "Periodic Announce Frequency",
+ "RANDOMPERIODICANNOUNCE": "Random Periodic Announce",
+ "ANNOUNCEHOLDTIME": "Announce Hold Time",
+ "ANNOUNCECALLERPOSITION": "Announce Caller Position",
+ "ANNOUNCEPOSITIONLIMIT": "Announce Position Limit",
+ "REPORTHOLDTIMEAGENT": "Report Agent Hold Time",
+ "PERIODICANNOUNCE": "Periodic Announce",
+ "HOLDTIMEANNOUNCE": "Hold Time Announce",
+ "YOUARENEXTANNOUNCE": "'You are next' Announce",
+ "THEREAREANNOUNCE": "'There are' Announce",
+ "WAITINGCALLSANNOUNCE": "Waiting Calls Announce",
+ "ESTIMATEDHOLDTIMEANNOUNCE": "Estimated Hold Time Announce",
+ "MINUTESANNOUNCE": "Minutes Announce",
+ "MINUTEANNOUNCE": "Minute Announce",
+ "SECONDSANNOUNCE": "Seconds Announce",
+ "THANKYOUANNOUNCE": "'Thank You' Announce",
+ "AUTOPAUSE": "Auto Pause",
+ "AFTERCALLWORK": "After Call Work",
+ "AFTERCALLWORKDURATION": "After Call Work Duration",
+ "RINGINUSE": "Ring In Use",
+ "MEMBERDELAY": "Member Delay",
+ "TIMEOUTRESTART": "Timeout Restart",
+ "MONITORFORMAT": "Recording Format",
+ "SETINTERFACEVARIABLES": "Set Interface Variables",
+ "SETQUEUEVARIABLES": "Set Queue Variables",
+ "SETQUEUEENTRYVARIABLES": "Set Queue Entry Variables",
+ "CONTEXT": "Context",
+ "SAVE": "Save",
+ "SETTINGS": "Settings",
+ "INBOUNDROUTES": "Inbound Routes",
+ "PHONENUMBER": "Phone Number",
+ "ADD_INBOUNDROUTE": "Add Inbound Route",
+ "EDIT_INBOUNDROUTE": "Edit Inbound Route",
+ "DELETE_INBOUNDROUTE": "Delete Inbound Route",
+ "ACTIONS": "Actions",
+ "OUTBOUNDROUTES": "Outbound Routes",
+ "DESTINATIONPATTERN": "Destination Pattern",
+ "ADD_OUTBOUNDROUTE": "Add Outbound Route",
+ "EDIT_OUTBOUNDROUTE": "Edit Outbound Route",
+ "DELETE_OUTBOUNDROUTE": "Delete Outbound Route",
+ "CUTDIGITS": "Cut Digits",
+ "RECORDING": "Recording",
+ "RECORDINGFORMAT": "Recording format",
+ "INTERNALROUTES": "Internal Routes",
+ "ADD_INTERNALROUTE": "Add Internal Route",
+ "EDIT_INTERNALROUTE": "Edit Internal Route",
+ "DELETE_INTERNALROUTE": "Delete Internal Route",
+ "CONTEXTS": "Contexts",
+ "ADD_CONTEXT": "Add Context",
+ "EDIT_CONTEXT": "Edit Context",
+ "DELETE_CONTEXT": "Delete Context",
+ "VOICEMAILS": "Voicemails",
+ "ADD_VOICEMAIL": "Add Voicemail",
+ "EDIT_VOICEMAIL": "Edit Voicemail",
+ "DELETE_VOICEMAIL": "Delete Voicemail",
+ "FULLNAME": "Full Name",
+ "EMAIL": "Email",
+ "MAILBOX": "Mailbox",
+ "PASSWORD": "Password",
+ "CONFIRM_PASSWORD": "Confirm Password",
+ "TIMEZONE": "Timezone",
+ "ATTACH": "Attach",
+ "ENVELOPE": "Envelope",
+ "DELETE": "Delete",
+ "EMAILBODY": "Email Body",
+ "EMAILSUBJECT": "Email Subject",
+ "MAXSECONDS": "Max Seconds",
+ "MAXMESSAGES": "Max Messages",
+ "MESSAGES": "Messages",
+ "SORT": "Sort",
+ "ADD_MUSICONHOLD": "Add Music On Hold",
+ "MUSICONHOLDS": "Music On Hold",
+ "EDIT_MUSICONHOLD": "Edit Music On Hold",
+ "DELETE_MUSICONHOLD": "Delete Music On Hold",
+ "DIRECTORY": "Directory",
+ "AUDIOFILES": "Audio Files",
+ "RECORDINGS": "Recordings",
+ "CHANSPY": "ChanSpy",
+ "PREFIX": "Prefix",
+ "OPTIONS": "Options",
+ "AUTH": "Auth",
+ "ADD_CHANSPY": "Add ChanSpy",
+ "EDIT_CHANSPY": "Edit ChanSpy",
+ "DELETE_CHANSPY": "Delete ChanSpy",
+ "AGENTS": "Agents",
+ "TELEPHONES": "Telephones",
+ "QUEUES": "Queues",
+ "QUEUE_CALLS": "Queue Calls",
+ "QUEUE_PARAMETERS": "Queue Parameters",
+ "ABANDONED_CALLS": "Abandoned Calls",
+ "OUTBOUND_CALLS": "Outbound Calls",
+ "AGI": "AGI",
+ "DIAL": "Dial",
+ "INTERNALDIAL": "Internal Dial",
+ "EXTERNALDIAL": "External Dial",
+ "RINGGROUP": "Ring Group",
+ "PLAYBACK": "Playback",
+ "QUEUE": "Queue",
+ "SET": "Set",
+ "VOICEMAIL": "Voicemail",
+ "GOTO": "GoTo",
+ "HANGUP": "Hangup",
+ "CUSTOM": "Custom",
+ "PROJECT": "Cally-Square Project",
+ "TECHNOLOGY/RESOURCE": "Technology/Resource",
+ "URL": "URL",
+ "EDIT_APP": "Edit Application",
+ "EDIT_INTERVAL": "Edit Interval",
+ "DELETE_APP": "Delete Application",
+ "INTERVALS": "Intervals",
+ "USER": "User",
+ "TRUNK": "Trunk",
+ "PHONE": "Phone",
+ "AUDIO_FILES": "Audio Files",
+ "ANNOUNCE_OVERRIDES": "Announce Overrides",
+ "MACRO": "Macro",
+ "GOSUB": "GoSub",
+ "RULE": "Rule",
+ "POSITION": "Position",
+ "ANSWER": "Answer",
+ "VALUE": "Value",
+ "MAILBOX@CONTEXT": "Mailbox@Context",
+ "EXTENSION": "Extension",
+ "PRIORITY": "Priority",
+ "HANGUP_CAUSE": "Hangup Cause",
+ "OUTBOUNDDIAL": "Outbound Dial",
+ "CALLER_ID": "Caller ID",
+ "NO_MESSAGE_AVAILABLE": "No messages available",
+ "NO_SOUND_AVAILABLE": "No sounds available",
+ "VOICERECORDINGS": "Voice Recordings",
+ "CHANSPIES": "ChanSpy",
+ "VOICE": "Voice",
+ "REALTIME": "Realtime",
+ "ID": "Id",
+ "VOICEMAIL_CONTEXT": "Context",
+ "NO_MOHSOUND_AVAILABLE": "No Music On Hold available",
+ "FILE": "File",
+ "ADD_MOHSOUND": "Add Music On Hold sound",
+ "DOWNLOAD_MOHSOUND": "Download Music On Hold sound",
+ "DELETE_MOHSOUND": "Delete Music On Hold sound",
+ "UNIQUEID": "Unique ID",
+ "AGENT": "Agent",
+ "TYPE": "Type",
+ "RATING": "Rating",
+ "AUDIO": "Audio",
+ "DATE": "Date",
+ "NEW_VOICEQUEUE": "New Voice Queue",
+ "NEW_INBOUNDROUTE": "New Inbound Route",
+ "NEW_OUTBOUNDROUTE": "New Outbound Route",
+ "NEW_INTERNALROUTE": "New Internal Route",
+ "NEW_CONTEXT": "New Context",
+ "NEW_VOICEMAIL": "New Voicemail",
+ "NEW_MUSICONHOLD": "New Music On Hold",
+ "NEW_CHANSPY": "New ChanSpy",
+ "PENALTY": "Penalty",
+ "ADD_TEAM_TO_VOICEQUEUE": "Add Team to Voice Queue",
+ "ADD_AGENT_TO_VOICEQUEUE": "Add Agent to Voice Queue",
+ "EDIT_DIAL": "Edit Dial",
+ "EDIT_AGI": "Edit AGI",
+ "EDIT_INTERNALDIAL": "Edit Internal Dial",
+ "EDIT_EXTERNALDIAL": "Edit External Dial",
+ "EDIT_RINGGROUP": "Edit Ring Group",
+ "EDIT_PLAYBACK": "Edit Playback",
+ "EDIT_QUEUE": "Edit Queue",
+ "EDIT_SET": "Edit Set",
+ "EDIT_GOTO": "Edit GoTo",
+ "EDIT_HANGUP": "Edit Hangup",
+ "EDIT_CUSTOM": "Edit Custom",
+ "DURATION": "Duration",
+ "RECEIVED_AT": "Received At",
+ "YES": "Yes",
+ "NO": "No",
+ "HANGUPCAUSE_1": "1 = Unallocated number",
+ "HANGUPCAUSE_16": "16 = Normal call clearing",
+ "HANGUPCAUSE_17": "17 = User busy",
+ "HANGUPCAUSE_18": "18 = No user responding (telehone device not connected)",
+ "HANGUPCAUSE_21": "21 = Call rejected",
+ "HANGUPCAUSE_22": "22 = Number changed",
+ "HANGUPCAUSE_27": "27 = Destination out of order",
+ "HANGUPCAUSE_38": "38 = Network out of order",
+ "HANGUPCAUSE_41": "41 = Temporary failure",
+ "RANDOM": "Random",
+ "ALPHABETICAL": "Alphabetical",
+ "NO_APPS_AVAILABLE": "No applications available",
+ "DOWNLOAD_VOICERECORDING": "Download Voice Recording",
+ "DELETE_VOICERECORDING": "Delete Voice Recording",
+ "INTERNAL": "Internal",
+ "PHONE_STATE": "Phone State",
+ "PHONE_STATUS": "Phone Status",
+ "REGISTERED": "Registered",
+ "UNREGISTERED": "Unregistered",
+ "LAGGED": "Lagged",
+ "REACHABLE": "Reachable",
+ "UNREACHABLE": "Unreachable",
+ "UNKNOWN": "Unknown",
+ "NOT_INUSE": "Not in use",
+ "INUSE": "In Use",
+ "BUSY": "Busy",
+ "INVALID": "Invalid",
+ "UNAVAILABLE": "Unavailable",
+ "RINGING": "Ringing",
+ "ONHOLD": "On Hold",
+ "RING": "Ring",
+ "UP": "Up",
+ "INFO": "Info",
+ "TRUNKS": "Trunks",
+ "REGISTRY": "Registry",
+ "NO_REGISTRY": "No registry",
+ "LOGGED_IN": "Logged in (SIP connected)",
+ "PAUSED": "Paused",
+ "DISPOSITION": "Disposition",
+ "WAITING": "Waiting",
+ "TALKING": "Talking",
+ "DID": "DID",
+ "CALLER": "Caller",
+ "TOTAL": "Total",
+ "ANSWERED": "Answered",
+ "ABANDONED": "Abandoned",
+ "UNMANAGED": "Unmanaged",
+ "REDIRECT_TO_NUMBER": "Redirect to a number",
+ "REDIRECT_TO_AGENT": "Redirect to an agent",
+ "CLOSING": "Closing",
+ "AVG_HOLD_TIME": "Avg Hold Time",
+ "AVG_DURATION": "Avg Duration",
+ "AVG_BILLABLE": "Avg Billable",
+ "SOURCE": "Source",
+ "DESTINATION": "Destination",
+ "REJECTED": "Rejected",
+ "FAILED": "Failed",
+ "CALLED": "Called",
+ "CONNECTED": "Connected",
+ "NO_RATING": "No rating",
+ "EDIT_VOICERECORDING": "Edit Voice Recording",
+ "APPLICATION_NAME": "Application Name",
+ "ARGUMENTS": "Arguments",
+ "EDIT_QUEUECAMPAIGN": "Edit Campaign",
+ "LISTADD_QUEUECAMPAIGN": "Add List",
+ "BLACKLISTADD_QUEUECAMPAIGN": "Add Blacklist",
+ "TEAMADD_QUEUECAMPAIGN": "Add Team",
+ "AGENTADD_QUEUECAMPAIGN": "Add Agent",
+ "DELETE_QUEUECAMPAIGN": "Delete Campaign",
+ "DELETE_IVRCAMPAIGN": "Delete Campaign",
+ "EDIT_IVRCAMPAIGN": "Edit Campaign",
+ "NEW_IVRCAMPAIGN": "New IVR Campaign",
+ "ADD_IVRCAMPAIGN": "Add IVR Campaign",
+ "LISTADD_IVRCAMPAIGN": "Add List",
+ "BLACKLISTADD_IVRCAMPAIGN": "Add Blacklist",
+ "ENABLED": "Enabled",
+ "READY": "Ready",
+ "PAUSE": "Pause",
+ "UNPAUSE": "End Pause",
+ "DEFAULT_PAUSE": "Default Pause",
+ "AGENTADD_QUEUE": "Add Agent to queue campaign",
+ "AGENTSADD_QUEUE": "Add Agents to queue campaign",
+ "ALL_TEAMS": "All Teams",
+ "SELECTED_TEAMS": "Selected Teams",
+ "ALL_LISTS": "All Lists",
+ "SELECTED_LISTS": "Selected Lists",
+ "ALL_AGENTS": "All Agents",
+ "SELECTED_AGENTS": "Selected Agents",
+ "WAITING_FOR_AGENT": "Waiting for Agent",
+ "TOTAL_OFFERED": "Total Offered",
+ "RUNNING": "Running",
+ "TRUNK_IS_NOT_REACHABLE": "Trunk is Not Reachable",
+ "AGENTS_NOT_LOGGED": "Agent not logged",
+ "NOT_ACTIVE": "Not Active",
+ "IS_DISACTIVED": "Deactivated",
+ "BACKUPTRUNK": "Backup Trunk",
+ "GLOBALINTERVAL": "Global Interval",
+ "RESCHEDULED_CONTACTS": "Rescheduled contacts",
+ "INTERVAL_IS_OVERTIME": "Out of Interval",
+ "GLOBAL_INTERVAL_IS_OVERTIME": "Out of Interval (Global)",
+ "INTERVAL_IS_NULL": "Interval is Null",
+ "TIMEZONE_UNKNOW": "Timezone Unknow",
+ "INTERVAL_IS_EMPTY": "Interval is Empty",
+ "TOTAL_MANAGED": "Total Managed",
+ "OPEN": "Open",
+ "FRESH": "Fresh",
+ "CLOSED": "Closed",
+ "ALWAYS": "Always",
+ "NEVER": "Never",
+ "ONLY_IF_OPEN": "Only If Open",
+ "CHECKDUPLICATE": "Check Duplicate",
+ "PAGE": "Page",
+ "ROWSPERPAGE": "Rows per page",
+ "OF": "of",
+ "CHAT": "Chat",
+ "MAIL": "Email",
+ "SMS": "SMS",
+ "OPENCHANNEL": "Open Channel",
+ "FAX": "Fax",
+ "TEAMS_ASSOCIATION": "Teams Association",
+ "MANDATORYDISPOSITION": "Mandatory disposition",
+ "MANDATORYDISPOSITIONPAUSEID": "Mandatory disposition pause status",
+ "TOOLTIP_SCREENRECORDING_ON": "Screen Recording in progress",
+ "TOOLTIP_SCREENRECORDING_OFF": "Screen Recording available",
+ "PREVIEW_AUTO_RECALL_ME": "Automate Recall Me calls"
+ }
+}
--- /dev/null
+{
+ "OPENCHANNEL": {
+ "EDIT_DIALOGFLOWV2": "Edit Dialogflow V2",
+ "DIALOGFLOWV2": "Dialogflow V2",
+ "PRIVATEKEY": "Private Key",
+ "CLIENTEMAIL": "Client Email",
+ "PROJECTID": "Project ID",
+ "AMAZONLEX": "AmazonLex",
+ "EDIT_AMAZONLEX": "Edit Lex configuration",
+ "ACCESSKEYID": "Access key ID",
+ "SECRETACCESSKEY": "Access key secret",
+ "LEXREGION": "Region",
+ "BOTNAME": "Bot name",
+ "WELCOMEMESSAGE": "Welcome message",
+ "DIALOGFLOW": "Dialogflow",
+ "EDIT_DIALOGFLOW": "Edit Dialogflow configuration",
+ "LANGUAGE": "Language",
+ "LOGIN_TIME": "Login time",
+ "PAUSE_TIME": "Pause time",
+ "DOWNLOAD_INTERACTION": "Download",
+ "TRANSFER": "Transfer",
+ "QUEUETRANSFER": "Queue Transfer",
+ "QUEUETRANSFERTIMEOUT": "Queue Transfer Timeout",
+ "AGENTTRANSFER": "Agent Transfer",
+ "AGENTTRANSFERTIMEOUT": "Agent Transfer Timeout",
+ "TAG": "Tag",
+ "EDIT_TAG": "Edit Tag",
+ "ADVANCED": "Advanced",
+ "PROXY": "Proxy",
+ "TOKEN": "Token",
+ "ADD_NOTE": "Add note",
+ "NOTE": "Note",
+ "WAITFORTHEASSIGNEDAGENT": "Wait for the assigned agent",
+ "INSERT_MESSAGE_HERE": "Insert your text message here",
+ "NOTIFICATION": "Notification",
+ "NOTIFICATIONSOUND": "Sound",
+ "NOTIFICATIONSHAKE": "Shake",
+ "NOTIFICATIONTEMPLATE": "Template",
+ "SYSTEM": "System",
+ "EDIT_SYSTEM": "Edit System",
+ "COMMAND": "Command",
+ "VARIABLE": "Variable",
+ "DELETE": "Delete",
+ "CANNEDANSWERS": "Canned Answers",
+ "OPENCHANNELCANNEDANSWERS": "Canned Answers",
+ "NO_OPENCHANNELCANNEDANSWER_AVAILABLE": "No Canned Answers Available",
+ "NEW_OPENCHANNELCANNEDANSWER": "New Canned Answer",
+ "ADD_OPENCHANNELCANNEDANSWER": "Add Canned Answer",
+ "EDIT_OPENCHANNELCANNEDANSWER": "Edit",
+ "DELETE_OPENCHANNELCANNEDANSWER": "Delete",
+ "DELIVERYREPORTURL": "Delivery Report URL",
+ "TAGS": "Tags",
+ "SPYINTERACTION": "Spy",
+ "NO_AGENT_ONLINE": "No Agent Online",
+ "GOTOREALTIME_OPENCHANNELQUEUE": "Go To Realtime Open Channel Queue",
+ "PARTIALPAUSE": "Parital Pause",
+ "BUSY": "Busy",
+ "TIMER": "Timer",
+ "IDLE": "Idle",
+ "CAPACITY": "Capacity",
+ "REALTIME": "Realtime",
+ "TEXT": "Text",
+ "TIMES": "Number of times per interaction",
+ "EDIT_AUTOREPLY": "Edit Auto Reply",
+ "AUTOREPLY": "Auto Reply",
+ "NAME": "Name",
+ "OPENCHANNELQUEUES": "Open Channel Queues",
+ "SEARCH_FOR_ANYONE": "Search",
+ "MANDATORYDISPOSITION": "Mandatory disposition",
+ "MANDATORYDISPOSITIONPAUSEID": "Pause to use if mandatory disposition is enabled",
+ "ERRORS": {
+ "PROJECTID_REQUIRED": "Mandatory Field",
+ "CLIENTEMAIL_REQUIRED": "Mandatory Field",
+ "PRIVATEKEY_REQUIRED": "Mandatory Field",
+ "ACCESSKEYID_REQUIRED": "Access key ID is required",
+ "SECRETACCESSKEY_REQUIRED": "Access key secret is required",
+ "BOTNAME_REQUIRED": "Bot name is required",
+ "QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "QUEUETRANSFERTIMEOUT_REQUIRED": "Mandatory Field",
+ "AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "AGENTTRANSFERTIMEOUT_REQUIRED": "Mandatory Field",
+ "TAG_REQUIRED": "Mandatory Field",
+ "WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "WAITFORTHEASSIGNEDAGENT_REQUIRED": "Mandatory Field",
+ "AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "NAME_MUST_VALID_PATTERN": "Wrong format",
+ "KEY_REQUIRED": "Mandatory Field",
+ "LIST_REQUIRED": "Mandatory Field",
+ "COMMAND_REQUIRED": "Mandatory Field",
+ "TEXT_MAX_LENGTH": "The value must have a maximum length equal to {{max}}",
+ "VALUE_REQUIRED": "Mandatory Field",
+ "TEXT_REQUIRED": "The field text is required",
+ "NAME_REQUIRED": "Mandatory field",
+ "AGENT_TIMEOUT_REQUIRED": "Mandatory field",
+ "MOTIONADDRESS_REQUIRED": "Mandatory field",
+ "MOTIONADDRESS_MUST_VALID_URL": "Wrong format",
+ "ACCEPTURL_MUST_VALID_URL": "Wrong format",
+ "TIMEOUT_REQUIRED": "Mandatory field",
+ "REJECTURL_MUST_VALID_URL": "Wrong format",
+ "CLOSEURL_MUST_VALID_URL": "Wrong format",
+ "REPLYURI_REQUIRED": "Mandatory field",
+ "REPLYURI_MUST_VALID_URL": "Wrong format",
+ "PRIORITY_REQUIRED": "Mandatory field",
+ "CONDITION_REQUIRED": "Mandatory field",
+ "TRUEPRIORITY_REQUIRED": "Mandatory field",
+ "FALSEPRIORITY_REQUIRED": "Mandatory field",
+ "AGENT_REQUIRED": "Mandatory field",
+ "TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "DISPOSITION_REQUIRED": "Mandatory field",
+ "QUEUE_REQUIRED": "Mandatory field",
+ "KEY_MAX_LENGTH": "Key must have a maximum length equal to {{max}}",
+ "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Mandatory field"
+ },
+ "STRATEGY": "Strategy",
+ "AGENT": "Agent",
+ "GOTO": "Goto",
+ "GOTOIF": "Gotoif",
+ "NOOP": "Noop",
+ "QUEUE": "Queue",
+ "EDIT_AGENT": "Edit Agent",
+ "EDIT_GOTO": "Edit Goto",
+ "EDIT_NOOP": "Edit Noop",
+ "EDIT_GOTOIF": "Edit Gotoif",
+ "EDIT_QUEUE": "Edit Queue",
+ "CONDITION": "Condition",
+ "TRUEPRIORITY": "True Priority",
+ "FALSEPRIORITY": "False Priority",
+ "VALUE": "Value",
+ "PRIORITY": "Priority",
+ "AGENT_TIMEOUT": "Agent Timeout",
+ "DESCRIPTION": "Description",
+ "ADD_OPENCHANNELQUEUE": "Add Open Channel Queue",
+ "EDIT_OPENCHANNELQUEUE": "Edit Open Channel Queue",
+ "DELETE_OPENCHANNELQUEUE": "Delete Open Channel Queue",
+ "PENALTY": "Penalty",
+ "TEAMADD_OPENCHANNELQUEUE": "Add Team To Open Channel Queue",
+ "AGENTADD_OPENCHANNELQUEUE": "Add Agent To Open Channel Queue",
+ "ALL_AGENTS": "All Agents",
+ "SELECTED_AGENTS": "Selected Agents",
+ "CREATED_AT": "Created At",
+ "SAVE": "Save",
+ "SETTINGS": "Settings",
+ "GENERAL": "General",
+ "OPENCHANNELACCOUNTS": "Open Channel Accounts",
+ "MOTIONADDRESS": "Motion Address",
+ "ADD_OPENCHANNELACCOUNT": "Add Open Channel Account",
+ "EDIT_OPENCHANNELACCOUNT": "Edit Open Channel Account",
+ "DELETE_OPENCHANNELACCOUNT": "Delete Open Channel Account",
+ "API": "API",
+ "DISPOSITIONS": "Dispositions",
+ "WEBHOOKS": "WebHooks",
+ "ACTIONS": "Actions",
+ "LIST": "List",
+ "FIDELITY": "Fidelity",
+ "ACCEPT": "Accept",
+ "ACCEPTMETHOD": "Accept Method",
+ "ACCEPTURL": "Accept URL",
+ "REJECT": "Reject",
+ "REJECTMETHOD": "Reject Method",
+ "REJECTURL": "Reject URL",
+ "CLOSE": "Close",
+ "CLOSEMETHOD": "Close Method",
+ "CLOSEURL": "Close URL",
+ "SELECTED": "Selected",
+ "SELECT_ALL": "Select All",
+ "SELECT_NONE": "Select None",
+ "BACK": "Back",
+ "OPENCHANNEL": "Open Channel",
+ "ID": "Id",
+ "TIMEOUT": "Timeout",
+ "OPENCHANNELDISPOSITIONS": "Open Channel Dispositions",
+ "NO_OPENCHANNELDISPOSITION_AVAILABLE": "No Open Channel Dispositions available",
+ "NEW_OPENCHANNELDISPOSITION": "New Open Channel Disposition",
+ "ADD_OPENCHANNELDISPOSITION": "Add Open Channel Disposition",
+ "EDIT_OPENCHANNELDISPOSITION": "Edit Open Channel Disposition",
+ "DELETE_OPENCHANNELDISPOSITION": "Delete Open Channel Disposition",
+ "NEW_OPENCHANNELQUEUE": "New Open channel Queue",
+ "NEW_OPENCHANNELACCOUNT": "New Open channel Account",
+ "NO_AVAILABLE_INFO": "No available info",
+ "ALL_TEAMS": "All Teams",
+ "SELECTED_TEAMS": "Selected Teams",
+ "REPLYURI": "Reply URL",
+ "RECEIVEURI": "Receive URL",
+ "HELP": {
+ "WELCOMEMESSAGE": "This is the first response message sent to new interactions.",
+ "TOKEN": "Add this property as query string in your Web Service URL. For more details see the doc <a target=\"_blank\" href=\"https://wiki.xcallymotion.com/display/XMV/New+Channels+Configuration+Steps#NewChannelsConfigurationSteps-BuildyourownChannelservice\">here</a>",
+ "RECEIVEURI": "Auto-generated API string to be used in order to receive messages inside your open channel from the external application (using POST method). Click the clipboard button to copy it ",
+ "REPLYURI": "The URL the open channel will call when sending or replying to a message. For more details see the doc <a target=\"_blank\" href=\"https://wiki.xcallymotion.com/display/XMV/New+Channels+Configuration+Steps#NewChannelsConfigurationSteps-BuildyourownChannelservice\">here</a>",
+ "NAME": "Only numbers, letters and specific characters (._) are supported",
+ "LIST": "Contact Manager List used to associate contacts",
+ "MANDATORYDISPOSITION": "Mandatory disposition",
+ "MANDATORYDISPOSITIONPAUSEID": "Pause to use if mandatory disposition is enabled"
+ },
+ "PAGE": "Page",
+ "ROWSPERPAGE": "Rows per page",
+ "OF": "of",
+ "CONTACT": "Contact",
+ "STARTEDAT": "Started At",
+ "LASTMESSAGE": "Last message",
+ "STATUS": "Status",
+ "CLOSED": "Closed",
+ "OPENED": "Open",
+ "OPEN": "Open",
+ "ACCOUNT": "Account",
+ "INTERACTION": "Interaction",
+ "INTERACTIONS": "Interactions",
+ "ALL": "All",
+ "SELECT_STATUS": "Select a status",
+ "FILTER": "Filter",
+ "FILTERS": "Filters",
+ "CLOSEDAT": "Closed At",
+ "DISPOSITION": "Disposition",
+ "NOTES": "Notes",
+ "NO_INTERACTION_AVAILABLE": "No interactions available",
+ "SELECT_ACCOUNT": "Select an account",
+ "GOTOP": "Gotop",
+ "EDIT_GOTOP": "Edit Gotop",
+ "EDIT_CLOSE": "Edit Close",
+ "INFO": "Info",
+ "KEY": "Key",
+ "UNKNOWN": "Unknown",
+ "UNREGISTERED": "Unregistered",
+ "UNAVAILABLE": "Unavailable",
+ "NOT_INUSE": "Not in use",
+ "REACHABLE": "Reachable",
+ "IN_USE": "In use",
+ "AGENTS": "Agents",
+ "QUEUES": "Queues",
+ "FULLNAME": "Fullname",
+ "INTERNAL": "Internal",
+ "PHONE_STATE": "Phone State",
+ "PHONE_STATUS": "Phone Status",
+ "PAUSE": "Pause",
+ "LOGOUT": "Logout",
+ "AGENTADD_QUEUE": "Add Agent To Open Channel Queue",
+ "UNPAUSE": "End Pause",
+ "DEFAULT_PAUSE": "Default pause",
+ "LOGGED_IN": "Logged in",
+ "PAUSED": "Paused",
+ "READY": "Ready",
+ "WAITING": "Waiting",
+ "VOICE": "Voice",
+ "CHAT": "Chat",
+ "MAIL": "Email",
+ "SMS": "SMS",
+ "FAX": "Fax",
+ "AGENTSADD_QUEUE": "Add agents to Open Channel queue",
+ "INTERACTIONS_OPENCHANNELACCOUNT": "Go to Interactions",
+ "REFRESH_INTERACTIONS": "Refresh Interactions",
+ "DELETE_INTERACTION": "Delete Interaction",
+ "AGENTADD_OPENCHANNELACCOUNT": "Add Agent to Openchannel Account",
+ "CANNED_ANSWER_SEARCH": "Enter a text to seach a Canned Answer",
+ "CANNED_ANSWER_NOT_FOUND": "No Canned Answer were found",
+ "SEND": "Send",
+ "TO": "To",
+ "MAPKEY": "Map Key",
+ "TEAMS_ASSOCIATION": "Teams Association",
+ "TOOLTIP_SCREENRECORDING_ON": "Screen Recording in progress",
+ "TOOLTIP_SCREENRECORDING_OFF": "Screen Recording available",
+ "DOWNLOAD_WITH_ATTACHMENTS": "Download with attachments",
+ "DOWNLOAD_WITHOUT_ATTACHMENTS": "Download without attachments"
+ }
+}
--- /dev/null
+{
+ "PLUGINS": {
+ "PLUGINS": "Plugins",
+ "ERRORS": {},
+ "HELP": {}
+ }
+}
--- /dev/null
+{
+ "SETTINGS": {
+ "RTLSUPPORT": "RTL Support",
+ "PREFERRED": "Preferred Logo",
+ "DEFAULT_PREFERRED": "Default Preferred Logo",
+ "FAVICON": "Favicon",
+ "DEFAULT_FAVICON": "Default Favicon",
+ "MOTIONBARREMEMBERME": "Remember Me",
+ "CHATTIMEOUT": "Chat closing interaction timeout",
+ "VIRTUAL": "Chat",
+ "VOICE": "Voice",
+ "SESSIONS": "Sessions",
+ "ADDONS": "Add-ons",
+ "REPORT": "Report",
+ "SPLIT": "Split report",
+ "SPLITSIZECSV": "Split report size [CSV records]",
+ "SPLITSIZEPDF": "Split report size [PDF records]",
+ "SPLITSIZEXLSX": "Split report size [XLSX records]",
+ "ENABLEEMAILPREVIEW": "Enable Email Preview",
+ "JAWS": "Jaws",
+ "MOTIONBAR": "Motionbar",
+ "MOTIONBARAUTOUPDATER": "Auto Updater",
+ "MOTIONBARAUTOUPDATERURL": "Auto Updater URL",
+ "SMTP_SSL": "SMTP SSL",
+ "CALL_RECORDING_ENCRYPTION": "Voice Recording Encryption",
+ "TURNADDR": "TURN Address",
+ "TURN_USERNAME": "TURN Username",
+ "TURN_PASSWORD": "TURN Password",
+ "WEBRTC": "WebRTC",
+ "CALLYSQUARE": "Cally Square",
+ "ENABLED": "Enabled",
+ "DISABLED": "Disabled",
+ "UNLIMITED_CHANNELS": "Unlimited Channels",
+ "RELOAD": "Reload",
+ "VERIFY": "Verify",
+ "INTERFACE": "Interface",
+ "UPDATING": "Updating",
+ "REMOTE_VERSION": "Remote Version",
+ "NO_NEW_VERSION_AVAILABLE": "No new version available",
+ "TOP_N_PROCESSES": "Top {{value}} processes",
+ "SYSTEM": "System",
+ "FILE_SYSTEM": "File System",
+ "PROCESSES": "Processes",
+ "MOUNT_POINT": "Mount",
+ "AVG_LOAD": "AVG Load",
+ "TOTAL": "Total",
+ "USED": "Used",
+ "FREE": "Free",
+ "NAME": "Name",
+ "STATE": "State",
+ "CHAT": "Chat",
+ "MAIL": "Email",
+ "MESSAGING": "Sms",
+ "WHATSAPP": "WhatsApp Connector",
+ "FAX": "Fax",
+ "OPENCHANNEL": "Open Channel",
+ "AGENTS": "Agents",
+ "USERS": "Users",
+ "TELEPHONES": "Telephones",
+ "STAFF": "Staff",
+ "CHANNELS": "Channels",
+ "MODULES": "Modules",
+ "CM": "Contacts Manager",
+ "DIALER": "Dialer",
+ "JSCRIPTY": "Jscripty",
+ "CUSTOM": "Customization",
+ "VIDEO": "Video",
+ "SCREENRECORDING": "Screen Recording",
+ "UPDATE": "Update",
+ "OTHERS": "Others",
+ "SETTINGS": "Settings",
+ "GENERAL": "General",
+ "SMTP": "SMTP",
+ "NETWORKS": "Networks",
+ "UPDATES": "Updates",
+ "LICENSE": "License",
+ "ID": "Id",
+ "MIN_INTERNAL": "Min Internal",
+ "MIN_MAILBOX": "Min Mailbox",
+ "INSTALLED_AT": "Installed At",
+ "SEARCH_FOR_ANYONE": "Search",
+ "EDIT_GENERAL": "Edit General",
+ "SECURE_PASSWORD": "Secure Password",
+ "LOGO": "Logo",
+ "DEFAULT_LOGO": "Default Logo",
+ "DEFAULT_LOGIN_LOGO": "Default Login Logo",
+ "WHITELABEL": "White Label",
+ "DEFAULT_HEADER_WHITELABEL": "Default Header White Label",
+ "HEADER_WHITELABEL": "Header White Label",
+ "CREATED_AT": "Created At",
+ "SAVE": "Save",
+ "SMTP_SERVICE": "Service",
+ "SMTP_HOST": "Host",
+ "SMTP_USERNAME": "Username",
+ "DESCRIPTION": "Description",
+ "SMTP_PASSWORD": "Password",
+ "SMTP_PORT": "Port",
+ "SMTP_SECURE": "Secure",
+ "TYPE": "Type",
+ "ADDRESS": "Address",
+ "USERNAME": "Username",
+ "NEW_NETWORK": "New Network",
+ "ADD_NETWORK": "Add Network",
+ "IMAPGENERALSETTINGS": "IMAP",
+ "LOGINMAILFREQUENCY": "Login Mail Frequency (sec)",
+ "DEFAULTSCREENRECORDINGPATH": "Screen Recording path",
+ "APPZONE": "App Zone",
+ "EDIT_NETWORK": "Edit Network",
+ "DELETE_NETWORK": "Delete Network",
+ "BACK": "Back",
+ "SELECTED": "Selected",
+ "SELECT_ALL": "Select All",
+ "SELECT_NONE": "Select None",
+ "EXPIRATION_DATE": "Expiration Date",
+ "REQUEST_LICENSE": "Request License",
+ "EMAIL": "Email",
+ "SEND": "Send",
+ "PLAN": "Plan",
+ "MONTH_TO_MONTH": "Month to month",
+ "MOTION_PROCESS_MANAGEMENT": "Motion Process Management",
+ "USEFUL_COMMANDS": "Useful Commands",
+ "COMMAND": "Command",
+ "PM2_LIST": "List all processes",
+ "PM2_START": "Start a process by id or name",
+ "PM2_STOP": "Stop a process by id or name or insert 'all' to stop all the active processes",
+ "PM2_RESTART": "Restart a process by id or name",
+ "PM2_LOGS": "Stream all processes log files, unless a specific process id or name is provided",
+ "PASSWORD": "Password",
+ "NO_AVAILABLE_INFO": "No available info",
+ "STUNADDR": "STUN Address",
+ "CHANGELOG": "Changelog",
+ "CURRENT_VERSION": "Current version",
+ "CUSTOMIZATIONS": "Customizations",
+ "LOCALNETADDRESS": "Localnet Address",
+ "NEW_VERSION": "New Version",
+ "TRIAL_VERSION": "Trial Version",
+ "TOKEN": "Token",
+ "NEW_TOKEN_DETECTED": "New Token Detected",
+ "EXPIRATION_GRAY_PERIOD": "Gray Period Expiration",
+ "NEW_TOKEN": "New Token",
+ "PRICES": "Prices",
+ "UPDATE_LICENSE": "Update License",
+ "LOGOLOGIN": "Login Logo",
+ "EXPIRATION_REASON": "Expiration Reason",
+ "GLOBAL": "Global",
+ "SMTP_AUTHENTICATION": "Authentication",
+ "LICENSE_REQUEST_SENT": "Thank you! The Licensing Team will check your account asap in order to approve your request: you will receive an email when the changes become effective. Please refer to license@xcally.com for further informations.",
+ "ACCOUNTNAME": "Account Name",
+ "EMAILADDRESS": "Email Address",
+ "EXPIRATION_REASON_MESSAGE_DISABLED": "Your license has been disabled.",
+ "EXPIRATION_REASON_MESSAGE_CHANGED": "Your machine unique id has been updated due to a change to your system.",
+ "EXPIRATION_CHANGED_ADVISE": "Contact xCALLY Motion License Team sending both your old and your new uuid.",
+ "OLD_TOKEN": "Old Token",
+ "SEND_EMAIL_TO": "Send Email to",
+ "JIRA_ERROR_MESSAGE": "Error during license request. Please contact our license team at license@xcally.com with your request",
+ "PAGE": "Page",
+ "ROWSPERPAGE": "Rows per page",
+ "OF": "of",
+ "PAGE_TITLE": "Page Title",
+ "DEFAULT_PAGE_TITLE": "Default Page Title",
+ "PERPETUAL": "Perpetual",
+ "SECURITY_SUITE": "Security Suite",
+ "ANNUALLY": "Annually",
+ "AGENTOMNIDESKTOPINTERFACE": "Agent Omni Desktop Interface",
+ "MESSAGESALIGNMENT": "Messages Alignment",
+ "ENTER_LICENSE": "Enter your license",
+ "UPDATE_LICENSE_MANUALLY": "Do you want to update your license manually?",
+ "SECURITY": "Security",
+ "ALLOWEDLOGINATTEMPTS": "Allowed login attempts before locking the user/agent",
+ "BLOCKDURATION": "Minutes to wait before automatic unlock",
+ "AI": "A.I. Tools",
+ "AITOOLS": "A.I. Tools",
+ "SERVICE": "Service",
+ "NEW_CLOUDPROVIDER": "New Account",
+ "ADD_CLOUDPROVIDER": "Add Account",
+ "DELETE": "Delete",
+ "SECRETACCESSKEY": "Secret Access Key",
+ "ACCESSKEY": "Access Key ID",
+ "EDIT_CLOUDPROVIDER": "Edit Account",
+ "DELETE_CLOUDPROVIDER": "Delete Account",
+ "LANGUAGE": "Language",
+ "BUCKET": "Bucket",
+ "TRANSCRIBE": "Transcribe",
+ "TRANSCRIBEREGION": "Transcribe Region",
+ "TRANSCRIBEACCOUNT": "Transcribe Account",
+ "SENTIMENTANALYSIS": "Sentiment Analysis",
+ "SENTIMENTREGION": "Sentiment Analysis Region",
+ "SENTIMENTACCOUNT": "Sentiment Analysis Account",
+ "SSO": "SSO",
+ "GOOGLE_SSO_ENABLED": "Google SSO Enabled",
+ "ENFORCE_PASSWORD_HISTORY": "Enforce Password History",
+ "PASSWORD_HISTORY_LIMIT": "Password History Limit",
+ "PRIVACY_POLICY_EMAIL": "Privacy Policy for Email Addresses",
+ "PRIVACY_POLICY_NAME": "Privacy Policy for Names",
+ "PRIVACY_POLICY_NUMBER": "Privacy Policy for Numbers",
+ "SEARCH_ON_ENTER_KEY": "Search on Enter key",
+ "CHAT_INTERACTIONS_RELOAD_TIMEOUT": "Chat interactions reload timeout",
+ "MAIL_INTERACTIONS_RELOAD_TIMEOUT": "Email interactions reload timeout",
+ "OPENCHANNEL_INTERACTIONS_RELOAD_TIMEOUT": "Open Channel interactions reload timeout",
+ "SMS_INTERACTIONS_RELOAD_TIMEOUT": "SMS interactions reload timeout",
+ "WHATSAPP_INTERACTIONS_RELOAD_TIMEOUT": "WhatsApp Connector interactions reload timeout",
+ "STOP_RECORDING_ON_VOICE_CALL_TRANSFER": "Stop recording on voice call transfer",
+ "HELP": {
+ "DEFAULTSCREENRECORDINGPATH": "Enter the path where to store screen recording files on the Agent computer (leave empty for default Video Folder path)",
+ "RTLSUPPORT": "Enables the RTL Support for Arabic, Persian and Hebrew languages",
+ "ADDRESS": "External (public) ip address",
+ "LOCALNETADDRESS": "Local ip address/subnet",
+ "SMTP_SECURE": "If true, the connection to the server will use TLS",
+ "SMTP_USERNAME": "Username used for authentication",
+ "SMTP_PASSWORD": "Password used for authentication",
+ "EMAILADDRESS": "The message origin Email address (from)",
+ "SECURITY_SUITE": "Enables the secure password format, the mandatory password reset after the first login and the password expiration after 90 days",
+ "MOTIONBARREMEMBERME": "Enable/Disable the Remember Me feature in Motion Phonebar",
+ "LOGINMAILFREQUENCY": "Please remember to restart the EMAIL service each time this parameter has been changed",
+ "USERNAME": "Username",
+ "PASSWORD": "Password",
+ "ENFORCE_PASSWORD_HISTORY": "Enables the validation against previously used passwords",
+ "PASSWORD_HISTORY_LIMIT": "Number of last used unique passwords to check",
+ "PRIVACY_POLICY": "Number of characters that will be replaced with an asterisk (*) (0 = all characters)",
+ "SEARCH_ON_ENTER_KEY": "Start searching only after the agent hits the Enter key",
+ "INTERACTIONS_RELOAD_TIMEOUT": "Time interval in seconds after which interactions are reloaded (0 = real-time update)"
+ },
+ "ERRORS": {
+ "CHATTIMEOUT_REQUIRED": "Mandatory field",
+ "CHATTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "MOTIONBARAUTOUPDATERURL_MUST_VALID_URL": "Wrong format",
+ "MOTIONBARAUTOUPDATERURL_REQUIRED": "Mandatory field",
+ "ADDRESS_REQUIRED": "Mandatory field",
+ "MIN_INTERNAL_REQUIRED": "Mandatory field",
+ "MIN_MAILBOX_REQUIRED": "Mandatory field",
+ "NAME_REQUIRED": "Mandatory field",
+ "HEADER_WHITELABEL_REQUIRED": "Mandatory field",
+ "LOCALNETADDRESS_REQUIRED": "Mandatory field",
+ "LOCALNETADDRESS_MUST_VALID_PATTERN": "Wrong format",
+ "ADDRESS_MUST_VALID_PATTERN": "Wrong format",
+ "ACCOUNTNAME_REQUIRED": "Mandatory field",
+ "EMAIL_MUST_VALID": "Wrong format",
+ "SMTP_USERNAME_REQUIRED": "Mandatory field",
+ "PASSWORD_REQUIRED": "Mandatory field",
+ "SMTP_HOST_REQUIRED": "Mandatory field",
+ "SMTP_PORT_REQUIRED": "Mandatory field",
+ "MIN_INTERNAL_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "MIN_MAILBOX_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "PAGE_TITLE_REQUIRED": "Mandatory field",
+ "EMAIL_REQUIRED": "Mandatory field",
+ "PLAN_REQUIRED": "Mandatory field",
+ "LICENSE_REQUIRED": "Mandatory field",
+ "LOGINMAILFREQUENCY_REQUIRED": "Mandatory field",
+ "LOGINMAILFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "ALLOWEDLOGINATTEMPTS_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "BLOCKDURATION_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "ALLOWEDLOGINATTEMPTS_REQUIRED": "Mandatory field",
+ "BLOCKDURATION_REQUIRED": "Mandatory field",
+ "SERVICE_REQUIRED": "Mandatory field",
+ "SECRETACCESSKEY_REQUIRED": "Mandatory field",
+ "ACCESSKEY_REQUIRED": "Mandatory field",
+ "LANGUAGE_REQUIRED": "Mandatory field",
+ "BUCKET_REQUIRED": "Mandatory field",
+ "TRANSCRIBEREGION_REQUIRED": "Mandatory field",
+ "TRANSCRIBEACCOUNT_REQUIRED": "Mandatory field",
+ "SENTIMENTREGION_REQUIRED": "Mandatory field",
+ "SENTIMENTACCOUNT_REQUIRED": "Mandatory field",
+ "USERNAME_REQUIRED": "Mandatory field"
+ }
+ }
+}
--- /dev/null
+{
+ "SMS": {
+ "EDIT_DIALOGFLOWV2": "Edit Dialogflow V2",
+ "DIALOGFLOWV2": "Dialogflow V2",
+ "PRIVATEKEY": "Private Key",
+ "CLIENTEMAIL": "Client Email",
+ "PROJECTID": "Project ID",
+ "AMAZONLEX": "AmazonLex",
+ "EDIT_AMAZONLEX": "Edit Lex configuration",
+ "ACCESSKEYID": "Access key ID",
+ "SECRETACCESSKEY": "Access key secret",
+ "LEXREGION": "Region",
+ "BOTNAME": "Bot name",
+ "WELCOMEMESSAGE": "Welcome message",
+ "LOGIN_TIME": "Login time",
+ "PAUSE_TIME": "Pause time",
+ "DOWNLOAD_INTERACTION": "Download",
+ "TRANSFER": "Transfer",
+ "QUEUETRANSFER": "Queue Transfer",
+ "QUEUETRANSFERTIMEOUT": "Queue Transfer Timeout",
+ "AGENTTRANSFER": "Agent Transfer",
+ "AGENTTRANSFERTIMEOUT": "Agent Transfer Timeout",
+ "TAG": "Tag",
+ "EDIT_TAG": "Edit Tag",
+ "WAITFORTHEASSIGNEDAGENT": "Wait for the assigned agent",
+ "NOTIFICATION": "Notification",
+ "NOTIFICATIONSOUND": "Sound",
+ "NOTIFICATIONSHAKE": "Shake",
+ "NOTIFICATIONTEMPLATE": "Template",
+ "SYSTEM": "System",
+ "EDIT_SYSTEM": "Edit System",
+ "COMMAND": "Command",
+ "VARIABLE": "Variable",
+ "AUTHID": "Auth ID",
+ "NO_SMSDISPOSITIONS_AVAILABLE": "No Sms Disposition Available",
+ "CANNEDANSWERS": "Canned Answers",
+ "SMSCANNEDANSWERS": "Canned Answers",
+ "NO_SMSCANNEDANSWER_AVAILABLE": "No Canned Answers Available",
+ "NEW_SMSCANNEDANSWER": "New Canned Answer",
+ "ADD_SMSCANNEDANSWER": "Add Canned Answer",
+ "EDIT_SMSCANNEDANSWER": "Edit",
+ "DELETE_SMSCANNEDANSWER": "Delete",
+ "DELIVERYREPORTURL": "Delivery Report URL",
+ "DELETE": "Delete",
+ "SENDERSTRING": "Sender String",
+ "DELIVERYREPORT": "Delivery Report",
+ "METHOD": "Method",
+ "ADD_NOTE": "Add note",
+ "NOTE": "Note",
+ "SPYINTERACTION": "Spy",
+ "AUTOREPLY": "Auto Reply",
+ "EDIT_AUTOREPLY": "Edit Auto Reply",
+ "TIMES": "Number of times per interaction",
+ "TEXT": "Text",
+ "INSERT_MESSAGE_HERE": "Insert your text message here",
+ "CANNED_ANSWER_NOT_FOUND": "No Canned Answers were found",
+ "CANNED_ANSWER_SEARCH": "Enter a text to search a Canned Answer",
+ "SEND": "Send",
+ "TO": "To",
+ "MESSAGE": "Message",
+ "TAGS": "Tags",
+ "NO_AGENT_ONLINE": "No Agent Online",
+ "GOTOREALTIME_SMSQUEUE": "Go To Realtime Sms Queue",
+ "PARTIALPAUSE": "Parital Pause",
+ "BUSY": "Busy",
+ "TIMER": "Timer",
+ "IDLE": "Idle",
+ "CAPACITY": "Capacity",
+ "PROXY": "Proxy",
+ "ADVANCED": "Advanced",
+ "MOTIONPROXY": "Proxy Or Motion Domain",
+ "REALTIME": "Realtime",
+ "KEY": "Key",
+ "NAME": "Name",
+ "SMSQUEUES": "SMS Queues",
+ "SEARCH_FOR_ANYONE": "Search",
+ "STRATEGY": "Strategy",
+ "BASEURL": "Base URL",
+ "MANDATORYDISPOSITION": "Mandatory disposition",
+ "MANDATORYDISPOSITIONPAUSEID": "Pause to use when mandatory disposition is enabled",
+ "ERRORS": {
+ "PROJECTID_REQUIRED": "Mandatory Field",
+ "CLIENTEMAIL_REQUIRED": "Mandatory Field",
+ "PRIVATEKEY_REQUIRED": "Mandatory Field",
+ "ACCESSKEYID_REQUIRED": "Access key ID is required",
+ "SECRETACCESSKEY_REQUIRED": "Access key secret is required",
+ "BOTNAME_REQUIRED": "Bot name is required",
+ "QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "QUEUETRANSFERTIMEOUT_REQUIRED": "Mandatory Field",
+ "AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "AGENTTRANSFERTIMEOUT_REQUIRED": "Mandatory Field",
+ "TAG_REQUIRED": "Mandatory Field",
+ "WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "WAITFORTHEASSIGNEDAGENT_REQUIRED": "Mandatory Field",
+ "AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "NAME_MUST_VALID_PATTERN": "Wrong format",
+ "COMMAND_REQUIRED": "Mandatory Field",
+ "AUTHID_REQUIRED": "Mandatory Field",
+ "TEXT_MAX_LENGTH": "The value must have a maximum length equal to {{max}}",
+ "TEXT_REQUIRED": "Mandatory Field",
+ "VALUE_REQUIRED": "Mandatory Field",
+ "SENDERSTRING_MAX_LENGTH": "The value must have a maximum length equal to {{max}}",
+ "SENDERSTRING_MUST_VALID_PATTERN": "Wrong format",
+ "METHOD_REQUIRED": "Mandatory Field",
+ "MOTIONPROXY_REQUIRED": "Mandatory Field",
+ "MOTIONPROXY_MUST_VALID_URL": "Wrong format",
+ "KEY_MAX_LENGTH": "The value must have a maximum length equal to {{max}}",
+ "KEY_REQUIRED": "Mandatory Field",
+ "NAME_REQUIRED": "Mandatory Field",
+ "AGENT_TIMEOUT_REQUIRED": "Mandatory Field",
+ "PHONE_REQUIRED": "Mandatory Field",
+ "SID_REQUIRED": "Mandatory Field",
+ "TOKEN_REQUIRED": "Mandatory Field",
+ "USERNAME_REQUIRED": "Mandatory Field",
+ "PASSWORD_REQUIRED": "Mandatory Field",
+ "MOTIONADDRESS_REQUIRED": "Mandatory Field",
+ "MOTIONADDRESS_MUST_VALID_URL": "Wrong format",
+ "ACCEPTURL_MUST_VALID_URL": "Wrong format",
+ "TIMEOUT_REQUIRED": "Mandatory Field",
+ "REJECTURL_MUST_VALID_URL": "Wrong format",
+ "CLOSEURL_MUST_VALID_URL": "Wrong format",
+ "TYPE_REQUIRED": "Mandatory Field",
+ "LIST_REQUIRED": "Mandatory Field",
+ "PRIORITY_REQUIRED": "Mandatory Field",
+ "CONDITION_REQUIRED": "Mandatory Field",
+ "TRUEPRIORITY_REQUIRED": "Mandatory Field",
+ "FALSEPRIORITY_REQUIRED": "Mandatory Field",
+ "AGENT_REQUIRED": "Mandatory Field",
+ "QUEUE_REQUIRED": "Mandatory Field",
+ "DISPOSITION_REQUIRED": "Mandatory Field",
+ "ACCOUNTSID_REQUIRED": "Mandatory Field",
+ "AUTHTOKEN_REQUIRED": "Mandatory Field",
+ "BASEURL_REQUIRED": "Mandatory Field",
+ "APIKEY_REQUIRED": "Mandatory Field",
+ "APPLICATIONID_REQUIRED": "Mandatory Field",
+ "ACCOUNTID_REQUIRED": "Mandatory Field",
+ "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Mandatory field"
+ },
+ "AGENT_TIMEOUT": "Agent Timeout",
+ "DESCRIPTION": "Description",
+ "ADD_SMSQUEUE": "Add SMS Queue",
+ "EDIT_SMSQUEUE": "Edit SMS Queue",
+ "DELETE_SMSQUEUE": "Delete SMS Queue",
+ "SETTINGS": "Settings",
+ "GENERAL": "General",
+ "CREATED_AT": "Created At",
+ "SAVE": "Save",
+ "SMSACCOUNTS": "SMS Accounts",
+ "TYPE": "Type",
+ "PHONE": "Phone",
+ "SID": "SID",
+ "TOKEN": "Token",
+ "SMSTYPE": "SMS Type",
+ "USERNAME": "Username",
+ "PASSWORD": "Password",
+ "MOTIONADDRESS": "Motion Address",
+ "ADD_SMSACCOUNT": "Add SMS Account",
+ "EDIT_SMSACCOUNT": "Edit SMS Account",
+ "DELETE_SMSACCOUNT": "Delete SMS Account",
+ "LIST": "List",
+ "FIDELITY": "Fidelity",
+ "API": "API",
+ "DISPOSITIONS": "Dispositions",
+ "WEBHOOKS": "WebHooks",
+ "ACTIONS": "Actions",
+ "ACCEPT": "Accept",
+ "ACCEPTMETHOD": "Accept Method",
+ "ACCEPTURL": "Accept URL",
+ "REJECT": "Reject",
+ "REJECTMETHOD": "Reject Method",
+ "REJECTURL": "Reject URL",
+ "CLOSE": "Close",
+ "CLOSEMETHOD": "Close Method",
+ "CLOSEURL": "Close URL",
+ "SELECTED": "Selected",
+ "SELECT_ALL": "Select All",
+ "SELECT_NONE": "Select None",
+ "BACK": "Back",
+ "SMS": "SMS",
+ "ID": "Id",
+ "APIKEY": "ApiKey",
+ "APPLICATIONID": "Application ID",
+ "ACCOUNTID": "Account ID",
+ "CONFIRM_PASSWORD": "Confirm Password",
+ "SMSDISPOSITIONS": "SMS Dispositions",
+ "NO_SMSDISPOSITION_AVAILABLE": "No SMS Dispositions available",
+ "NEW_SMSDISPOSITION": "New SMS Disposition",
+ "ADD_SMSDISPOSITION": "Add SMS Disposition",
+ "EDIT_SMSDISPOSITION": "Edit SMS Disposition",
+ "DELETE_SMSDISPOSITION": "Delete SMS Disposition",
+ "NEW_SMSQUEUE": "New SMS Queue",
+ "NEW_SMSACCOUNT": "New SMS Account",
+ "NO_AVAILABLE_INFO": "No available info",
+ "ALL_TEAMS": "All Teams",
+ "SELECTED_TEAMS": "Selected Teams",
+ "DIALOGFLOW": "DialogFlow",
+ "EDIT_DIALOGFLOW": "Edit DialogFlow configuration",
+ "LANGUAGE": "Language",
+ "HELP": {
+ "WELCOMEMESSAGE": "This is the first response message sent to new interactions",
+ "MOTIONPROXY": "The field must have the following format: <protocol>://<ipaddress>[:<port>]. Example: https://X.Y.Z.W",
+ "NAME": "Only numbers, letters and specific characters (._) are supported",
+ "LIST": "Contact Manager list used to associate contacts",
+ "RECEIVEURL": "This is the auto-generated API string you need to use to receive the messages inside your account from your SMS provider (POST method must be used): click the clipboard button to copy it",
+ "DELIVERYREPORTURL": "This is the auto-generated API string you need to use to receive the delivery report of sent messages from your SMS provider (POST method must be used): click the clipboard button to copy it",
+ "MANDATORYDISPOSITION": "Mandatory disposition",
+ "MANDATORYDISPOSITIONPAUSEID": "Pause to use when mandatory disposition is enabled"
+ },
+ "PAGE": "Page",
+ "ROWSPERPAGE": "Rows per page",
+ "OF": "of",
+ "TEAMADD_SMSQUEUE": "Add Team To SMS Queue",
+ "AGENTADD_SMSQUEUE": "Add Agent To SMS Queue",
+ "ALL_AGENTS": "All Agents",
+ "SELECTED_AGENTS": "Selected Agents",
+ "RECEIVEURL": "Receive URL",
+ "INTERACTION": "Interaction",
+ "INTERACTIONS": "Interactions",
+ "NO_INTERACTION_AVAILABLE": "No interactions available",
+ "CONTACT": "Contact",
+ "STARTEDAT": "Started At",
+ "LASTMESSAGE": "Last message",
+ "AGENT": "Agent",
+ "CLOSEDAT": "Closed At",
+ "DISPOSITION": "Disposition",
+ "NOTES": "Notes",
+ "GOTO": "Goto",
+ "GOTOIF": "Gotoif",
+ "NOOP": "Noop",
+ "QUEUE": "Queue",
+ "TIMEOUT": "Timeout",
+ "VALUE": "Value",
+ "EDIT_AGENT": "Edit Agent",
+ "EDIT_GOTO": "Edit Goto",
+ "EDIT_NOOP": "Edit Noop",
+ "EDIT_GOTOIF": "Edit Gotoif",
+ "EDIT_QUEUE": "Edit Queue",
+ "CONDITION": "Condition",
+ "TRUEPRIORITY": "True Priority",
+ "FALSEPRIORITY": "False Priority",
+ "PRIORITY": "Priority",
+ "GOTOP": "Gotop",
+ "EDIT_GOTOP": "Edit Gotop",
+ "EDIT_CLOSE": "Edit Close",
+ "FILTER": "Filter",
+ "SELECT_STATUS": "Select a status",
+ "ALL": "All",
+ "SELECT_ACCOUNT": "Select an account",
+ "OPENED": "Open",
+ "CLOSED": "Closed",
+ "STATUS": "Status",
+ "ACCOUNT": "Account",
+ "OPEN": "Open",
+ "INFO": "Info",
+ "ACCOUNTSID": "Account SID",
+ "AUTHTOKEN": "Auth Token",
+ "UNKNOWN": "Unknown",
+ "UNREGISTERED": "Unregistered",
+ "UNAVAILABLE": "Unavailable",
+ "NOT_INUSE": "Not in use",
+ "REACHABLE": "Reachable",
+ "IN_USE": "In use",
+ "AGENTS": "Agents",
+ "QUEUES": "Queues",
+ "FULLNAME": "Fullname",
+ "INTERNAL": "Internal",
+ "PHONE_STATE": "Phone State",
+ "PHONE_STATUS": "Phone Status",
+ "PAUSE": "Pause",
+ "LOGOUT": "Logout",
+ "AGENTADD_QUEUE": "Add Agent To SMS Queue",
+ "UNPAUSE": "End Pause",
+ "DEFAULT_PAUSE": "Default pause",
+ "LOGGED_IN": "Logged in",
+ "PAUSED": "Paused",
+ "READY": "Ready",
+ "WAITING": "Waiting",
+ "VOICE": "Voice",
+ "CHAT": "Chat",
+ "MAIL": "Email",
+ "OPENCHANNEL": "Open channel",
+ "FAX": "Fax",
+ "AGENTSADD_QUEUE": "Add agents to SMS queue",
+ "INTERACTIONS_SMSACCOUNT": "Go to Interactions",
+ "REFRESH_INTERACTIONS": "Refresh Interactions",
+ "DELETE_INTERACTION": "Delete Interaction",
+ "AGENTADD_SMSACCOUNT": "Add Agent to SMS Account",
+ "TEAMS_ASSOCIATION": "Teams Association",
+ "DOWNLOAD_WITH_ATTACHMENT": "Download with attachment",
+ "DOWNLOAD_WITHOUT_ATTACHMENT": "Download without attachment"
+ }
+}
--- /dev/null
+{
+ "STAFF": {
+ "MANAGE_API_KEY": "API Key Manager",
+ "GENERATE": "Generate",
+ "REGENERATE": "Regenerate",
+ "REMOVE": "Remove",
+ "APIKEYMANAGER_USER": "API Key Manager",
+ "APIKEY": "API Key",
+ "VIDEOSUPPORT": "Video support",
+ "HOTDESK": "Hot desk",
+ "ENABLEVIDEOECORDING": "Enable Video Recording",
+ "ENABLESCREENRECORDINGBYAGENT": "Enable Screen Recording by Agent",
+ "ENABLEAUTOMATICSCREENRECORDING": "Enable Automatic Screen Recording",
+ "OLD_PASSWORD": "Old Password",
+ "ENABLEJAWSINTEGRATION": "Enable Jaws Integration",
+ "ALIAS": "Alias",
+ "NO_PASSWORD_CHANGE": "No Password Change",
+ "SECURITY_SUITE": "Security Suite",
+ "LAST_PASSWORD_RESET_AT": "Last Password Reset At",
+ "SIP_WEBRTC": "Sip",
+ "SETTINGS_WEBRTC": "Settings",
+ "WEBRTC": "WebRTC",
+ "DTLSCERTFILE": "TLS certificate",
+ "DTLSPRIVATEKEY": "TLS certificate's private key",
+ "CONTEXT": "Context",
+ "RINGINUSE": "Ring In Use",
+ "USERS": "Users",
+ "AGENTS": "Agents",
+ "TOGGLE_SIDENAV": "Toggle sidenav",
+ "SEARCH_FOR_ANYONE": "Search",
+ "BACK": "Back",
+ "MULTI_SELECT_TOGGLE": "multi select toggle",
+ "SELECT_ALL": "Select all",
+ "SELECT_NONE": "Select None",
+ "SELECTED": "Selected",
+ "DELETE_SELECTED": "Delete selected",
+ "EXPORT_SELECTED": "Export selected",
+ "ALL_USERS": "All users",
+ "ALL_AGENTS": "All agents",
+ "SORT": "sort",
+ "NAME": "Name",
+ "FULLNAME": "Full Name",
+ "A_TO_Z": "(A to Z)",
+ "Z_TO_A": "(Z to A)",
+ "MORE": "More",
+ "DELETE_USER": "Delete User",
+ "EDIT_USER": "Edit User",
+ "DELETE_AGENT": "Delete Agent",
+ "EDIT_AGENT": "Edit Agent",
+ "DELETE": "Delete",
+ "SAVE": "SAVE",
+ "ADD_USER": "ADD USER",
+ "ADD_AGENT": "ADD AGENT",
+ "NO_RESULTS": "No results..",
+ "CLOSE_DIALOG": "Close dialog",
+ "NAME_REQUIRED": "Name (required)",
+ "USERNAME": "Username",
+ "SHOW_ALL_FIELDS": "Show All Fields",
+ "PHONE_NUMBER": "Phone number",
+ "EMAIL": "Email",
+ "PASSWORD": "Password",
+ "ERRORS": {
+ "CONFIRM_REQUIRED": "Mandatory field",
+ "ALLOWCODECS_REQUIRED": "Mandatory field",
+ "ENCRYPTION": "SRTP (Secure Realtime Protocol) Encryption",
+ "DTLSCERTFILE_REQUIRED": "Mandatory field",
+ "DTLSPRIVATEKEY_REQUIRED": "Mandatory field",
+ "FULLNAME_REQUIRED": "Mandatory field",
+ "USERNAME_REQUIRED": "Mandatory field",
+ "EMAIL_REQUIRED": "Mandatory field",
+ "PASSWORD_REQUIRED": "Mandatory field",
+ "CONFIRM_NOT_MATCH": "The passwords don't match",
+ "EMAIL_MUST_VALID": "Wrong format",
+ "ACCOUNTNAME_REQUIRED": "Mandatory field",
+ "NAME_REQUIRED": "Mandatory field",
+ "HOST_REQUIRED": "Mandatory field",
+ "CHATCAPACITY_REQUIRED": "Mandatory field",
+ "MAILCAPACITY_REQUIRED": "Mandatory field",
+ "FAXCAPACITY_REQUIRED": "Mandatory field",
+ "SMSCAPACITY_REQUIRED": "Mandatory field",
+ "WHATSAPPCAPACITY_REQUIRED": "Mandatory field",
+ "OPENCHANNELCAPACITY_REQUIRED": "Mandatory field",
+ "SIPEXPIRES_REQUIRED": "Mandatory field",
+ "SIPPORT_REQUIRED": "Mandatory field",
+ "UNCONDITIONALNUMBER_REQUIRED": "Mandatory field",
+ "NOREPLYNUMBER_REQUIRED": "Mandatory field",
+ "BUSYNUMBER_REQUIRED": "Mandatory field",
+ "USERNAME_MUST_VALID_PATTERN": "Wrong format {{regex}}",
+ "REMOTECONTROLPORT_REQUIRED": "Mandatory field",
+ "CHATCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "MAILCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "FAXCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "OPENCHANNELCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "AUTOANSWERDELAY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "AUTOANSWERDELAY_REQUIRED": "Mandatory field",
+ "MONITOREXTENSION_REQUIRED": "Mandatory field",
+ "SECURE_PASSWORD_PATTERN": "The password must be at least 8 characters long and have 1 lowercase character, 1 uppercase character, 1 number and 1 special character ~!@#$%^&-_=+[{]}.",
+ "CRUDPERMISSIONS_REQUIRED": "Mandatory field",
+ "USERPROFILE_REQUIRED": "Mandatory field",
+ "PASSWORD_OLDPASSWORD_MATCH": "New password must be different from previous one"
+ },
+ "ACCOUNT": "Account",
+ "VOICE": "Voice",
+ "CREATED_AT": "Created At",
+ "ROLE": "Role",
+ "PERSONAL_INFO": "Personal Info",
+ "DESCRIPTION": "Description",
+ "CHANGE_AVATAR": "Change Avatar",
+ "GENERAL": "General",
+ "INTERNAL": "Internal",
+ "TRANSPORT": "Transport",
+ "ALLOWCODECS": "Allowed Codecs",
+ "DISABLED": "Deactivated",
+ "BLOCKED": "Locked",
+ "HELP": {
+ "DISABLED": "select to deactivate / unselect to reactivate",
+ "BLOCKED": "Lock / Unlock access",
+ "APIKEY": "Please use 'API key manager' button on toolbar to manage this key",
+ "LAST_PASSWORD_RESET_AT": "Last date and time the password has been changed. If Secure Suite General Setting is enabled, the password will expire after 90 days.",
+ "DTLSCERTFILE": "Link to the valid TLS certificate(.crt file). Default value: '/etc/pki/tls/certs/motion.crt'.",
+ "DTLSPRIVATEKEY": "Link to the certificate's private key(.key file). Default value: '/etc/pki/tls/private/motion.key'.",
+ "ALLOWCODECS": "Allowed Codecs in order of preference",
+ "TRANSPORT": "Set the default transports in order of preference",
+ "HOST": "How to find the client - IP or host name. If you want the phone to register itself, use the keyword dynamic instead of Host IP",
+ "NAT": "Changes the behaviour of Asterisk for clients behind a firewall. If any of the comma-separated options is 'no', Asterisk will ignore other settings and set nat=no",
+ "SIPEXPIRES": "Default: 120",
+ "SIPPORT": "Default: 5160",
+ "TYPE": "Determines the SIP role within asterisk. User: used to authenticate incoming - Peer: for outgoing calls - Friend: covers both characteristics of the above",
+ "CHATCAPACITY": "Maximum number of concurrent channel interactions per agent (0=unlimited)",
+ "MAILCAPACITY": "Maximum number of concurrent channel interactions per agent (0=unlimited)",
+ "FAXCAPACITY": "Maximum number of concurrent channel interactions per agent (0=unlimited)",
+ "SMSCAPACITY": "Maximum number of concurrent channel interactions per agent (0=unlimited)",
+ "WHATSAPPCAPACITY": "Maximum number of concurrent channel interactions per agent (0=unlimited)",
+ "OPENCHANNELCAPACITY": "Maximum number of concurrent channel interactions per agent (0=unlimited)",
+ "CALLGROUP": "The agent's callgroup",
+ "PICKUPGROUP": "The groups in which the agent can answer calls",
+ "USERNAME": "Only numbers, letters and specific characters (._) are supported",
+ "ENCRYPTION": "SRTP (Secure Realtime Protocol) Encryption",
+ "SAVE_PERMISSIONS": "Every section containing any pending changes will be saved",
+ "CUSTOM_DASHBOARDS_PERMISSIONS": "Custom Dashboards permissions are managed in the Tools module",
+ "ENABLEAUTOMATICSCREENRECORDING": "The functionality is available only for voice channel",
+ "MASK_SENSITIVE_DATA": "Mask any sensitive data throughout the application (e.g. phone numbers and email addresses)",
+ "WSS_PORT": "Default: 8089"
+ },
+ "NEW_PASSWORD": "New Password",
+ "CONFIRM_PASSWORD": "Confirm Password",
+ "CHANGE_PASSWORD": "Change Password",
+ "CHANGEPASSWORD_AGENT": "Change Password",
+ "CHANGEPASSWORD_USER": "Change Password",
+ "CHANGEPASSWORD_TELEPHONE": "Change Password",
+ "LOGININPAUSE": "Login In Pause",
+ "HOST": "Host",
+ "NAT": "NAT",
+ "CHANSPY": "ChanSpy",
+ "OTHER_CHANNELS": "Other Channels",
+ "CHATCAPACITY": "Chat Capacity",
+ "MAILCAPACITY": "Email Capacity",
+ "FAXCAPACITY": "Fax Capacity",
+ "SMSCAPACITY": "Sms Capacity",
+ "WHATSAPPCAPACITY": "WhatsApp Connector Capacity",
+ "OPENCHANNELCAPACITY": "Open Channel Capacity",
+ "MOTIONBAR": "Motion Bar",
+ "SETTINGS": "Settings",
+ "AUTOANSWER": "Auto Answer",
+ "ENABLESETTINGS": "Enable Settings",
+ "CALL_FORWARDING": "Call Forwarding",
+ "UNCONDITIONAL": "Unconditional",
+ "UNCONDITIONALNUMBER": "Unconditional Number",
+ "NOREPLY": "No Reply",
+ "NOREPLYNUMBER": "No Reply Number",
+ "BUSY": "Busy",
+ "BUSYNUMBER": "Busy Number",
+ "REMOTE_CONTROL": "Remote Control",
+ "REMOTECONTROL": "Remote Control",
+ "REMOTECONTROLPORT": "Remote Control Port",
+ "SIP": "SIP",
+ "SIPEXPIRES": "SIP Expires [sec]",
+ "SIPPORT": "SIP Port",
+ "PENALTY": "Penalty",
+ "ACCOUNTNAME": "Account Name",
+ "ADD_TELEPHONE": "Add Telephone",
+ "EDIT_TELEPHONE": "Edit Telephone",
+ "DELETE_TELEPHONE": "Delete Telephone",
+ "TEAMS": "Teams",
+ "DELETE_TEAM": "Delete Team",
+ "AGENTADD_TEAM": "Add Agents to Team",
+ "EDIT_TEAM": "Edit Team",
+ "TYPE": "Type",
+ "TELEPHONES": "Telephones",
+ "CALLERID": "Caller ID",
+ "ENABLERECORDING": "Enable Recording",
+ "STAFF": "Staff",
+ "ID": "Id",
+ "NEW_USER": "New User",
+ "NEW_AGENT": "New Agent",
+ "NEW_TELEPHONE": "New Telephone",
+ "NEW_TEAM": "New Team",
+ "ADD_TEAM": "Add Team",
+ "JOIN_QUEUE": "Join Queue",
+ "CAPACITY": "Capacity",
+ "AUTOINTERNAL": "Auto generate internal number",
+ "ADD_AGENT_TO_TEAM": "Add Agent to Team",
+ "TEAMADD_AGENT": "Add Agent to Team",
+ "NO_AVAILABLE_INFO": "No available info",
+ "PERMISSIONS": "Permissions",
+ "ADD_AGENT_TO_QUEUE": "Add Agent to Queue",
+ "ALL_MODULES_AVAILABLE": "All modules available",
+ "CALLGROUP": "Call Group",
+ "PICKUPGROUP": "Pickup Group",
+ "ADD_AGENT_TO_QUEUE_CAMPAIGNS": "Add Agent to Queue Campaigns",
+ "ADD_AGENT_TO_VOICE_QUEUES": "Add Agent to Voice Queues",
+ "ADD_AGENT_TO_CHAT_QUEUES": "Add Agent to Chat Queues",
+ "ADD_AGENT_TO_MAIL_QUEUES": "Add Agent to Email Queues",
+ "ADD_AGENT_TO_SMS_QUEUES": "Add Agent to SMS Queues",
+ "ADD_AGENT_TO_WHATSAPP_QUEUES": "Add Agent to WhatsApp Queues",
+ "ADD_AGENT_TO_OPENCHANNEL_QUEUES": "Add Agent to Open Channel Queues",
+ "ADD_AGENT_TO_FAX_QUEUES": "Add Agent to Fax Queues",
+ "QUEUEADD_USER_VOICE_INBOUND": "Add User to Voice Queues",
+ "QUEUEADD_USER_CHAT_INBOUND": "Add User to Chat Queues",
+ "QUEUEADD_USER_MAIL_INBOUND": "Add User to Email Queues",
+ "QUEUEADD_USER_SMS_INBOUND": "Add User to SMS Queues",
+ "QUEUEADD_USER_WHATSAPP_INBOUND": "Add User to WhatsApp Queues",
+ "QUEUEADD_USER_OPENCHANNEL_INBOUND": "Add User to Open Channel Queues",
+ "QUEUEADD_USER_FAX_INBOUND": "Add User to Fax Queues",
+ "ALL_TEAMS": "All Teams",
+ "SELECTED_TEAMS": "Selected Teams",
+ "SELECTED_AGENTS": "Selected Agents",
+ "ALL_QUEUE_CAMPAIGNS": "All Queue Campaigns",
+ "SELECTED_QUEUE_CAMPAIGNS": "Selected Queue Campaigns",
+ "ALL_VOICE_QUEUES": "All Voice Queues",
+ "SELECTED_VOICE_QUEUES": "Selected Voice Queues",
+ "ALL_CHAT_QUEUES": "All Chat Queues",
+ "SELECTED_CHAT_QUEUES": "Selected Chat Queues",
+ "ALL_MAIL_QUEUES": "All Email Queues",
+ "SELECTED_MAIL_QUEUES": "Selected Email Queues",
+ "ALL_SMS_QUEUES": "All SMS Queues",
+ "SELECTED_SMS_QUEUES": "Selected SMS Queues",
+ "ALL_WHATSAPP_QUEUES": "All WhatsApp Queues",
+ "SELECTED_WHATSAPP_QUEUES": "Selected WhatsApp Queues",
+ "ALL_OPENCHANNEL_QUEUES": "All Open Channel Queues",
+ "SELECTED_OPENCHANNEL_QUEUES": "Selected Open Channel Queues",
+ "ALL_FAX_QUEUES": "All Fax Queues",
+ "SELECTED_FAX_QUEUES": "Selected Fax Queues",
+ "VOICEMAIL": "Voicemail",
+ "SHOWWEBCONTROL": "Typology",
+ "PAGE": "Page",
+ "ROWSPERPAGE": "Rows per page",
+ "OF": "of",
+ "CALLFORWARDING": "Call Forwarding",
+ "DND": "Do not disturb during pause",
+ "UNANSWEREDCALLBADGE": "Show unanswered call badge",
+ "ENABLEDTMFTONE": "Enable Dtmf tones",
+ "AUTOANSWERDELAY": "Auto Answer Delay [s]",
+ "ENCRYPTION": "Encryption",
+ "CHANNELS": "Channels",
+ "CHAT": "Chat",
+ "SMS": "Sms",
+ "WHATSAPP": "WhatsApp Connector",
+ "OPENCHANNEL": "Open Channel",
+ "FAX": "Fax",
+ "QUEUEADD_USER_VOICE_OUTBOUND": "Add User to Queue Campaigns",
+ "MONITOREXTENSION": "Record calls to user extension",
+ "EDITPERMISSIONS": "Editing Permissions",
+ "READ_PERMISSION": "Read",
+ "EDIT_PERMISSION": "Edit",
+ "DELETE_PERMISSION": "Delete",
+ "GENERAL_PERMISSIONS": "General",
+ "ENABLEMESSENGER": "Enable Internal Messenger",
+ "OUTBOUNDPROXY": "Oubound Proxy",
+ "PHONE": "Phone",
+ "MOBILE": "Mobile",
+ "PREFIXREQUIRED": "Prefix Required",
+ "MANAGE_PERMISSIONS": "Manage Permissions",
+ "USERADD_VOICEQUEUES": "Add Voice Queue to User",
+ "ALL_VOICEQUEUES": "All Voice Queues",
+ "SELECTED_VOICEQUEUES": "Selected Voice Queues",
+ "USERADD_CHATQUEUES": "Add Chat Queue to User",
+ "ALL_CHATQUEUES": "All Chat Queues",
+ "SELECTED_CHATQUEUES": "Selected Email Queues",
+ "USERADD_MAILQUEUES": "Add Email Queue to User",
+ "ALL_MAILQUEUES": "All Email Queues",
+ "SELECTED_MAILQUEUES": "Selected Chat Queues",
+ "USERADD_SMSQUEUES": "Add SMS Queue to User",
+ "ALL_SMSQUEUES": "All SMS Queues",
+ "SELECTED_SMSQUEUES": "Selected SMS Queues",
+ "USERADD_WHATSAPPQUEUES": "Add Whataspp Queue to User",
+ "ALL_WHATSAPPQUEUES": "All Whataspp Queues",
+ "SELECTED_WHATSAPPQUEUES": "Selected WhatsApp Queues",
+ "USERADD_FAXQUEUES": "Add Fax Queue to User",
+ "ALL_FAXQUEUES": "All Fax Queues",
+ "SELECTED_FAXQUEUES": "Selected Fax Queues",
+ "USERADD_OPENCHANNELQUEUES": "Add Open Channel Queue to User",
+ "ALL_OPENCHANNELQUEUES": "All Open Channel Queues",
+ "SELECTED_OPENCHANNELQUEUES": "Selected Open Channel Queues",
+ "USERADD_PROJECTS": "Add Cally Square Project to User",
+ "ALL_PROJECTS": "All Cally Square Projects",
+ "SELECTED_PROJECTS": "Selected Cally Square Projects",
+ "USERADD_CHATWEBSITES": "Add Chat Website to User",
+ "ALL_CHATWEBSITES": "All Chat Websites",
+ "SELECTED_CHATWEBSITES": "Selected Chat Websites",
+ "USERADD_QUEUECAMPAIGNS": "Add Queue Campaign to User",
+ "ALL_QUEUECAMPAIGNS": "All Queue Campaigns",
+ "SELECTED_QUEUECAMPAIGNS": "Selected Queue Campaigns",
+ "USERADD_MAILACCOUNTS": "Add Email Account to User",
+ "ALL_MAILACCOUNTS": "All Email Accounts",
+ "SELECTED_MAILACCOUNTS": "Selected Email Accounts",
+ "USERADD_FAXACCOUNTS": "Add Fax Account to User",
+ "ALL_FAXACCOUNTS": "All Fax Accounts",
+ "SELECTED_FAXACCOUNTS": "Selected Fax Accounts",
+ "USERADD_SMSACCOUNTS": "Add SMS Account to User",
+ "ALL_SMSACCOUNTS": "All SMS Accounts",
+ "SELECTED_SMSACCOUNTS": "Selected SMS Accounts",
+ "USERADD_WHATSAPPACCOUNTS": "Add WhatsApp Account to User",
+ "ALL_WHATSAPPACCOUNTS": "All WhatsApp Accounts",
+ "SELECTED_WHATSAPPACCOUNTS": "Selected WhatsApp Accounts",
+ "USERADD_OPENCHANNELACCOUNTS": "Add Open Channel Account to User",
+ "ALL_OPENCHANNELACCOUNTS": "All Open Channel Accounts",
+ "SELECTED_OPENCHANNELACCOUNTS": "Selected Open Channel Accounts",
+ "USERPROFILES": "User Profiles",
+ "USERPROFILE": "User Profile",
+ "NEW_USERPROFILE": "New User Profile",
+ "ADD_USERPROFILE": "Add User Profile",
+ "EDIT_USERPROFILE": "Edit User Profile",
+ "CLONE_USERPROFILE": "Clone User Profile",
+ "DELETE_USERPROFILE": "Delete User Profile",
+ "CRUDPERMISSIONS": "Permission Type",
+ "SECTIONS": "Sections",
+ "MODULES": "Modules",
+ "SUMMARY": "Summary",
+ "REPORT_TYPE": "Report Type",
+ "PERMISSIONS_MANAGE": "Manage",
+ "PERMISSIONS_SECTION_TITLE": "{{sectionName}} Permissions",
+ "PERMISSIONS_AUTO_ASSOCIATION_INFO": "Automatically associate every current and future resource of this section to the User Profile",
+ "PERMISSIONS_PLACEHOLDER_SEARCH": "Search...",
+ "PERMISSIONS_SELECT_SECTION": "Select a section",
+ "PERMISSIONS_SELECT_REPORT_TYPE": "Select report type",
+ "PERMISSIONS_ALL_RESOURCES": "All resources",
+ "PERMISSIONS_SELECTED_RESOURCES": "Selected resources",
+ "PERMISSIONS_SECTION_HIDE": "Hide section to the User",
+ "PERMISSIONS_SECTION_SHOW": "Show section to the User",
+ "PERMISSIONS_WARNING_ENABLE_ALL": "All {{sectionName}} subsections and their resources will be enabled. Are you sure you want to continue?",
+ "PERMISSIONS_WARNING_CLOSE": "You have unsaved changes. Are you sure you want to exit without saving?",
+ "NOTIFICATIONS": {
+ "PERMISSIONS_ENABLED_ALL_SUCCESS_TITLE": "{{sectionName}} section enabled",
+ "PERMISSIONS_ENABLED_ALL_SUCCESS_MESSAGE": "All {{sectionName}} resources have been added to {{userProfileName}} User Profile",
+ "PERMISSIONS_ENABLED_ALL_SUCCESS_MESSAGE_NO_RESOURCES": "{{sectionName}} has been added to {{userProfileName}} User Profile",
+ "PERMISSIONS_DISABLED_ALL_SUCCESS_TITLE": "{{sectionName}} section disabled",
+ "PERMISSIONS_DISABLED_ALL_SUCCESS_MESSAGE": "All {{sectionName}} resources have been removed from {{userProfileName}} User Profile",
+ "PERMISSIONS_DISABLED_ALL_SUCCESS_MESSAGE_NO_RESOURCES": "{{sectionName}} has been removed from {{userProfileName}} User Profile",
+ "PERMISSIONS_SAVED_SUCCESS_TITLE": "{{sectionName}} section saved",
+ "PERMISSIONS_SAVED_SUCCESS_MESSAGE": "Permissions successfully updated!"
+ },
+ "CONFIRM": "Confirm",
+ "CANCEL": "Cancel",
+ "CLOSE": "Close",
+ "QUEUES_ASSOCIATION": "{{channel}} Queues Association",
+ "TEAMS_ASSOCIATION": "Teams Association",
+ "PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE": "Unauthorized action",
+ "PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE": "You are not allowed to access the selected section",
+ "PERMISSIONS_UNAUTHORIZED_CREATION_MESSAGE": "You are not allowed to create the resource",
+ "MASK_SENSITIVE_DATA": "Mask Sensitive Data",
+ "WSS_PORT": "WSS Port",
+ "DOWNLOADS": "Downloads",
+ "DOWNLOAD_PERMISSIONS": "Download Permissions",
+ "VOICE_RECORDINGS": "Voice Recordings",
+ "OMNICHANNEL_INTERACTIONS": "Omnichannel Interactions",
+ "ATTACHMENTS": "Attachments",
+ "SCREEN_RECORDINGS": "Screen Recordings",
+ "JSCRIPTY_SESSIONS": "Jscripty Sessions",
+ "CONTACT_MANAGER_LISTS": "Contact Manager Lists",
+ "CALLYSQUARE_RECORDINGS": "Cally Square Recordings",
+ "IGNORE_AGENT_BREAK_STATUS_FOR_PREVIEW_CALLS": "Ignore agent break status for preview calls",
+ "SELECT_RECALLME_CAMPAIGN": "Select Recall Me Campaign"
+ }
+}
--- /dev/null
+{
+ "TOOLS": {
+ "VIDEOSUPPORT": "Video support",
+ "PREVIOUSCONTACT": "Previous",
+ "BOT": "Voicebot",
+ "CLONE_TRUNK": "Clone Trunk",
+ "DISPOSITIONS": "Dispositions",
+ "NEW_DISPOSITION": "New Disposition",
+ "ADD_DISPOSITION": "Add Disposition",
+ "EDIT_DISPOSITION": "Edit Disposition",
+ "DELETE_DISPOSITION": "Delete Disposition",
+ "RUN_SCHEDULE": "Run schedule",
+ "SENDIFEMPTY": "Send if empty",
+ "NEXTCONTACT": "Next",
+ "OUTBOUND_ROUTE": "Outbound Route",
+ "EDIT_DASHBOARDITEM": "Edit Dashboard Widget",
+ "FONTSIZE": "Font Size",
+ "TITLEFONTSIZE": "Font Title Size",
+ "CLONE_CUSTOMDASHBOARD": "Clone Custom Dashboard",
+ "LINK": "Link [https://]",
+ "BACKGROUND": "Background",
+ "FOREGROUND": "Foreground",
+ "IGNOREDIALERCONTACTID": "Ignore dialer contact Id",
+ "NONE": "None",
+ "TOTAL": "Total",
+ "ABANDONED": "Abandoned",
+ "WAITING": "Waiting",
+ "TALKING": "Talking",
+ "ANSWERED": "Answered",
+ "UNMANAGED": "Unmanaged",
+ "CUSTOMTYPE": "Custom [path]",
+ "WEBREPORT": "Web Report",
+ "PIECHART": "Pie Chart",
+ "MULTIBARCHART": "Multibar Chart",
+ "MOVE_WIDGET": "Move Widget",
+ "USERADD_CUSTOMDASHBOARD": "Add User Permissions",
+ "GOTODASHBOARD_CUSTOMDASHBOARD": "Go to preview dashboard",
+ "GOTO_CUSTOMDASHBOARD": "Go to preview dashboard",
+ "METRIC": "Metric",
+ "FILTERVOICEQUEUES": "Filter Voice Queues",
+ "SERIE1": "Serie 1",
+ "SERIE2": "Serie 2",
+ "SERIE3": "Serie 3",
+ "REFRESH": "Refresh [s]",
+ "FORMAT": "Format",
+ "PATH": "Absolute Path",
+ "ALL_USERS": "All Users",
+ "SELECTED_USERS": "Selected Users",
+ "ADD_WIDGET": "Add Widget",
+ "COLOR": "Color",
+ "FAX": "Fax",
+ "INTERACTION": "Interaction",
+ "MESSAGE": "Message",
+ "T38PT_UDPTL": "T38pt Udptl",
+ "CALL": "Call",
+ "NAME": "Name",
+ "TRUNKS": "Trunks",
+ "SEARCH_FOR_ANYONE": "Search",
+ "SCRIPT": "Script",
+ "SCRIPT_INFO": "Info",
+ "SCRIPT_TYPE": "Type",
+ "ERRORS": {
+ "INFO_REQUIRED": "Mandatory field",
+ "SCRIPT_REQUIRED": "Mandatory field",
+ "NAME_MAX_LENGTH": "The value must have a maximum length equal to {{max}}",
+ "TITLE_MAX_LENGTH": "The value must have a maximum length equal to {{max}}",
+ "REFRESH_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "REFRESH_REQUIRED": "Mandatory field",
+ "FONTSIZE_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "FONTSIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "FONTSIZE_REQUIRED": "Mandatory field",
+ "PATH_REQUIRED": "Mandatory field",
+ "FORMAT_REQUIRED": "Mandatory field",
+ "REPORT_REQUIRED": "Mandatory field",
+ "TYPE_REQUIRED": "Mandatory field",
+ "VALUE_REQUIRED": "Mandatory field",
+ "ACCOUNT_REQUIRED": "Mandatory field",
+ "IGNOREDIALERCONTACTID_REQUIRED": "Ignore dialer contact Id field is required",
+ "FIELD_REQUIRED": "Mandatory field",
+ "NAME_REQUIRED": "Mandatory field",
+ "HOST_REQUIRED": "Mandatory field",
+ "DEFAULTUSER_REQUIRED": "Mandatory field",
+ "CALLERID_REQUIRED": "Mandatory field",
+ "KEY_REQUIRED": "Mandatory field",
+ "CONFIRM_NOT_MATCH": "The Passwords don't match",
+ "VALIDITYSTART_REQUIRED": "Mandatory field",
+ "VALIDITYEND_REQUIRED": "Mandatory field",
+ "MONTHDAY_REQUIRED": "Mandatory field",
+ "HOUR_REQUIRED": "Mandatory field",
+ "CONTENT_REQUIRED": "Mandatory field",
+ "URL_REQUIRED": "Mandatory field",
+ "URL_MUST_VALID_URL": "Wrong format",
+ "APPLICATION_REQUIRED": "Mandatory field",
+ "ARGUMENTS_REQUIRED": "Mandatory field",
+ "NAME_MUST_VALID_PATTERN": "Wrong format",
+ "POLLING_INTERVAL_REQUIRED": "Mandatory field",
+ "TITLE_REQUIRED": "Mandatory field",
+ "EMAILADDRESS_REQUIRED": "Mandatory field",
+ "EVENTVARIABLES_REQUIRED": "Mandatory field",
+ "INTEGRATION_REQUIRED": "Mandatory field",
+ "LIST_REQUIRED": "Mandatory field",
+ "TEMPLATE_REQUIRED": "Mandatory field",
+ "AUTOCREATECONTACT_REQUIRED": "Mandatory field",
+ "AUTOCREATE_FIELD_REQUIRED": "Mandatory field",
+ "OUTBOUNDROUTE_REQUIRED": "Mandatory field",
+ "QUEUE_REQUIRED": "Mandatory field",
+ "TIME_RANGE_TO_REQUIRED": "Mandatory field",
+ "WEEK_DAYS_TO_REQUIRED": "Mandatory field",
+ "MONTH_DAYS_TO_REQUIRED": "Mandatory field",
+ "MONTH_TO_REQUIRED": "Mandatory field",
+ "TIME_RANGE_FROM_INVALID": "Wrong Format",
+ "TIME_RANGE_TO_INVALID": "Wrong Format",
+ "ACTION_REQUIRED": "Mandatory field",
+ "CONFIGURATION_REQUIRED": "Mandatory field",
+ "PROJECT_REQUIRED": "Mandatory field",
+ "LOCATION_REQUIRED": "Mandatory field",
+ "OUTPUT_REQUIRED": "Mandatory field",
+ "REPORTTYPE_REQUIRED": "Mandatory field",
+ "REPORTFOLDER_REQUIRED": "Mandatory field",
+ "REPORTSUBFOLDER_REQUIRED": "Mandatory field",
+ "AGENT_REQUIRED": "Mandatory field",
+ "TIMEOUT_REQUIRED": "Mandatory field",
+ "TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to"
+ },
+ "HOST": "Host",
+ "SECRET": "Secret",
+ "DEFAULTUSER": "Default User",
+ "DESCRIPTION": "Description",
+ "ADD_TRUNK": "Add Trunk",
+ "HELP": {
+ "SCRIPT_INFO": "Insert a description for the script",
+ "SCRIPT_TYPE": "Insert a typology for the script (eg. curl, bash...)",
+ "INFO": "Insert title",
+ "SCRIPT": "Insert script",
+ "T38PT_UDPTL": "Es: yes,redundancy,maxdatagram=400",
+ "SECRET": "Authentication password",
+ "HOST": "The domain or host name",
+ "DEFAULTUSER": "Authentication username",
+ "CALLERID": "The Caller ID, in the format \"name\" <number>",
+ "REGISTRY": "The registry string, if required by provider, usually defaultuser:secret@host",
+ "FROMDOMAIN": "Set default From:domain in SIP messages when acting as a SIP ua (client). Some destinations may require mandatory identity name instead of only the IP address",
+ "FROMUSER": "How your provider knows you. This is which user to put instead of callerid when placing calls to peer (another SIP proxy). Valid only for type=peer.",
+ "OUTBOUNDPROXY": "IP_address or DNS SRV name (excluding the _sip._udp prefix): SRV name, hostname, or IP address of the outbound SIP Proxy. Send outbound signaling to this proxy, not directly to the devices. Valid only for type=peer.",
+ "PORT": "The SIP port number",
+ "CONTEXT": "The context for the trunk",
+ "TYPE": "Determine the SIP role within asterisk. User: used to authenticate incoming - Peer: for outgoing calls - Friend: covers both characteristics of the above.",
+ "DTMFMODE": "How DTMF (Dual-Tone Multi-Frequency) are sent. RFC2833: the default mode, the DTMF are sent with RTP but outside the audio stream. INBAND: The DTMF is sent in audio stream of the current conversation, becoming audible from the speakers. Requires a high CPU load. INFO: Although this method is very reliable, it is not supported by all PBX devices and many SIP Trunks.",
+ "NAT": "Change the behaviour of Asterisk for clients behind a firewall. If any of the comma-separated options is 'no', Asterisk will ignore any other settings and set nat=no.",
+ "QUALIFY": "Determine when the SIP is achievable",
+ "ALLOWCODECS": "Allowed codecs in order of preference",
+ "INSECURE": "Specify how to handle connections with peer, allowing insecure settings",
+ "CALL_LIMIT": "The limit number of the inbound and outbound concurrent calls",
+ "DIRECTMEDIA": "Asterisk by default tries to redirect the RTP media stream to go directly from the caller to the callee. Some devices do not support this (especially if one of them is behind a NAT). The default setting is YES. If you have all clients behind a NAT, or for some other reason want Asterisk to stay in the audio path, you may want to turn this off.",
+ "CALLCOUNTER": "Enable call counters on devices",
+ "ADD_PHONE_TO_URI": "Define if the provider requires ';user=phone' on URL",
+ "TRUST_REMOTE_PARTY_ID": "Define if Remote-Party-ID should be trusted",
+ "SEND_REMOTE_PARTY_ID_HEADER": "Define if Remote-Party-ID should be sent (defaults is no)",
+ "ENCRYPTION": "Whether to offer SRTP encrypted media (and only SRTP encrypted media) on outgoing calls to a peer. Calls will fail with HANGUPCAUSE=58 if the peer does not support SRTP. Defaults value is No",
+ "TRANSPORT": "Set the default transports, in order of preference",
+ "OTHERFIELDS": "Other fields to add in the trunks conf files. Follow default asterisk format (key=value), each field on a single row",
+ "EMAILADDRESS": "Add one or multiple addresses separated by commas (e.g. john.doe@xcally.com, jane.miller@xcally.com)",
+ "EMAILCCADDRESS": "Add one or multiple addresses separated by commas (e.g. john.doe@xcally.com, jane.miller@xcally.com)",
+ "EMAILBCCADDRESS": "Add one or multiple addresses separated by commas (e.g. john.doe@xcally.com, jane.miller@xcally.com)",
+ "NAME": "Only numbers, letters and specific characters (._) are supported",
+ "EVENTVARIABLES": "If enabled, it adds all the event variables to the url (recommended value=No. Set to Yes only for evaluation purposes) ",
+ "HEADERS": "Note: Headers section must be in RAW JSON format {\"key\":\"value\"} \nNote: If not filled out, the default value will be sent",
+ "BODY": "Note: the body must be in RAW JSON format {\"key\":\"value\"} \nNote: If not filled out, the default value will be sent",
+ "TIMEOUT": "Request timeout in seconds. The value must be between 1 and 10 and the default value is 5."
+ },
+ "EDIT_TRUNK": "Edit Trunk",
+ "DELETE_TRUNK": "Delete Trunk",
+ "CREATED_AT": "Created At",
+ "SETTINGS": "Settings",
+ "ADVANCED": "Advanced",
+ "OTHER": "Other",
+ "ACTIVE": "Active",
+ "CONTEXT": "Context",
+ "CALLERID": "Caller ID",
+ "TYPE": "Type",
+ "DTMFMODE": "DTMF Mode",
+ "NAT": "NAT",
+ "QUALIFY": "Qualify",
+ "ALLOWCODECS": "Allowed Codecs",
+ "INSECURE": "Insecure",
+ "REGISTRY": "Registry",
+ "DIRECTMEDIA": "Direct Media",
+ "CALLCOUNTER": "Call Counter",
+ "FROMDOMAIN": "From Domain",
+ "FROMUSER": "From User",
+ "OUTBOUNDPROXY": "Outbound Proxy",
+ "ADD_PHONE_TO_URI": "Add Phone to URL",
+ "TRUST_REMOTE_PARTY_ID": "Trust Remote Party ID",
+ "SEND_REMOTE_PARTY_ID_HEADER": "Send Remote Party ID Header",
+ "ENCRYPTION": "Encryption",
+ "PORT": "Port",
+ "TRANSPORT": "Transport",
+ "SAVE": "Save",
+ "VARIABLES": "Variables",
+ "ADD_VARIABLE": "Add Variable",
+ "EDIT_VARIABLE": "Edit Variable",
+ "DELETE_VARIABLE": "Delete Variable",
+ "SELECTED": "Selected",
+ "SELECT_ALL": "Select All",
+ "SELECT_NONE": "Select None",
+ "TAGS": "Tags",
+ "ADD_TAG": "Add Tag",
+ "EDIT_TAG": "Edit Tag",
+ "DELETE_TAG": "Delete Tag",
+ "PAUSES": "Pauses",
+ "ADD_PAUSE": "Add Pause",
+ "EDIT_PAUSE": "Edit Pause",
+ "DELETE_PAUSE": "Delete Pause",
+ "CANNEDANSWERS": "Canned Answers",
+ "ADD_CANNEDANSWER": "Add Canned Answer",
+ "EDIT_CANNEDANSWER": "Edit Canned Answer",
+ "DELETE_CANNEDANSWER": "Delete Canned Answer",
+ "KEY": "Key",
+ "VALUE": "Value",
+ "SOUNDS": "Sounds",
+ "EDIT_SOUND": "Edit Sound",
+ "DELETE_SOUND": "Delete Sound",
+ "CANCEL": "Cancel",
+ "FINISH": "Finish",
+ "DROP_TO_UPLOAD": "Drop To Upload",
+ "UPLOADING": "Uploading",
+ "TRIGGERS": "Triggers",
+ "EDIT_TRIGGER": "Edit Trigger",
+ "DELETE_TRIGGER": "Delete Trigger",
+ "ADD_TRIGGER": "Add Trigger",
+ "DELETE": "Delete",
+ "AUTOMATIONS": "Automations",
+ "EDIT_AUTOMATION": "Edit Automation",
+ "DELETE_AUTOMATION": "Delete Automation",
+ "ADD_AUTOMATION": "Add Automation",
+ "INTERVALS": "Intervals",
+ "EDIT_INTERVAL": "Edit Interval",
+ "DELETE_INTERVAL": "Delete Interval",
+ "ADD_INTERVAL": "Add Interval",
+ "TOOLS": "Tools",
+ "ID": "Id",
+ "AUDIO": "Audio",
+ "DOWNLOAD_SOUND": "Download Sound",
+ "UPLOAD_SOUND": "Tools",
+ "CHANNEL": "Channel",
+ "NEW_TRIGGER": "New Trigger",
+ "GENERAL": "General",
+ "STATUS": "Status",
+ "CONDITIONS&ACTIONS": "Conditions & Actions",
+ "ALLCONDITIONS": "Meet all these conditions:",
+ "ANYCONDITIONS": "Meet any of these conditions:",
+ "ACTIONS": "Actions:",
+ "NEW_AUTOMATION": "New Automation",
+ "TIMEOUT": "Timeout",
+ "PEERSTATUS": "Peer Status",
+ "CALL_LIMIT": "Calls Limit",
+ "OTHERFIELDS": "Other Fields",
+ "NEW_VARIABLE": "New Variable",
+ "NEW_TAG": "New Tag",
+ "NEW_PAUSE": "New Pause",
+ "NEW_CANNEDANSWER": "New Canned Answer",
+ "CONFIRM_PASSWORD": "Confirm Password",
+ "NEW_TRUNK": "New Trunk",
+ "FROM": "From",
+ "TO": "To",
+ "WEEKDAY": "Week Day",
+ "MONTHDAY": "Month Day",
+ "MONTH": "Month",
+ "ALWAYS": "Always",
+ "MON": "Monday",
+ "TUE": "Tuesday",
+ "WED": "Wednesday",
+ "THU": "Thursday",
+ "FRI": "Friday",
+ "SAT": "Saturday",
+ "SUN": "Sunday",
+ "JAN": "January",
+ "FEB": "February",
+ "MAR": "March",
+ "APR": "April",
+ "MAY": "May",
+ "JUN": "June",
+ "JUL": "July",
+ "AUG": "August",
+ "SEP": "September",
+ "OCT": "October",
+ "NOV": "November",
+ "DEC": "December",
+ "PASSWORD": "Password",
+ "CUSTOMDASHBOARDS": "Custom Dashboards",
+ "NEW_CUSTOMDASHBOARD": "New Custom Dashboard",
+ "ADD_CUSTOMDASHBOARD": "Add Custom Dashboard",
+ "EDIT_CUSTOMDASHBOARD": "Edit Custom Dashboard",
+ "DELETE_CUSTOMDASHBOARD": "Delete Custom Dashboard",
+ "SCHEDULER": "Scheduler",
+ "NEW_SCHEDULE": "New Schedule",
+ "ADD_SCHEDULE": "Add Schedule",
+ "EDIT_SCHEDULE": "Edit Schedule",
+ "DELETE_SCHEDULE": "Delete Schedule",
+ "SENDMAIL": "Send Email",
+ "CONFIGURATION": "Configuration",
+ "MAIL": "Email",
+ "REPORTTYPE": "Report Type",
+ "REPORT": "Report",
+ "OUTPUT": "Output",
+ "EXECUTEON": "Execute On",
+ "REPORTRANGE": "Report Range",
+ "VALIDITYSTART": "Start Time",
+ "VALIDITYEND": "End Time",
+ "EXECUTEEVERY": "Execute every",
+ "ACCOUNT": "Account",
+ "EMAILADDRESS": "Email Address",
+ "EMAILCCADDRESS": "Cc",
+ "EMAILBCCADDRESS": "Bcc",
+ "CURRENTDAY": "Current Day",
+ "DAILY": "Daily",
+ "WEEKLY": "Weekly",
+ "MONTHLY": "Monthly",
+ "PREVIOUS_DAY": "Previous Day",
+ "LAST_SEVEN_DAYS": "Last Seven Days",
+ "LAST_THIRTY_DAYS": "Last Thirthy Days",
+ "LAST_MONTH": "Last Month",
+ "WEEKDAYS": "Week Days",
+ "HOUR": "Hour",
+ "DEFAULT": "Default",
+ "CSV": "CSV",
+ "PDF": "PDF",
+ "15MIN": "15 minutes",
+ "30MIN": "30 minutes",
+ "1H": "1 hour",
+ "VOICE": "Voice",
+ "CHAT": "Chat",
+ "SMS": "SMS",
+ "OPENCHANNEL": "Open Channel",
+ "TEMPLATES": "Templates",
+ "EDIT_TEMPLATE": "Edit Template",
+ "DELETE_TEMPLATE": "Delete Template",
+ "NEW_TEMPLATE": "New Template",
+ "ADD_TEMPLATE": "Add Template",
+ "CONTENT": "Content",
+ "FIELD": "Field",
+ "NO_ANYCONDITION_AVAILABLE": "No Conditions available",
+ "NO_ALLCONDITION_AVAILABLE": "No Conditions available",
+ "NO_ACTION_AVAILABLE": "No Actions available",
+ "ACTION": "Action",
+ "EDIT_ANYCONDITION": "Edit Condition",
+ "DELETE_ANYCONDITION": "Delete Condition",
+ "NEW_ANYCONDITION": "New Condition",
+ "ADD_ANYCONDITION": "Add Condition",
+ "EDIT_ALLCONDITION": "Edit Condition",
+ "DELETE_ALLCONDITION": "Delete Condition",
+ "NEW_ALLCONDITION": "New Condition",
+ "ADD_ALLCONDITION": "Add Condition",
+ "EDIT_ACTION": "Edit Action",
+ "DELETE_ACTION": "Delete Action",
+ "NEW_ACTION": "New Action",
+ "ADD_ACTION": "Add Action",
+ "QUEUE": "Queue",
+ "CALL_STATUS": "Call Status",
+ "OUTBOUNDROUTE": "Outbound Route",
+ "MAIL_SUBSTATUS": "Email Substatus",
+ "EQUALS": "Equals",
+ "NOT_EQUALS": "Not Equals",
+ "CONTACT_MANAGER": "Contacts Manager",
+ "INTEGRATIONS": "Integrations",
+ "MOTIONBAR": "Motion Bar",
+ "JSCRIPTY": "Jscripty",
+ "URL_FORWARD": "URL Forward",
+ "WEB_POPUP": "Web Popup",
+ "LIST": "List",
+ "INTEGRATION": "Integration",
+ "TEMPLATE": "Template",
+ "URL": "URL",
+ "APPLICATION": "Application",
+ "ARGUMENTS": "Arguments",
+ "NO_APPS_AVAILABLE": "No applications available",
+ "NEW_INTERVAL": "New Interval",
+ "OPERATOR": "Operator",
+ "NO_INTERVALS_AVAILABLE": "No intervals available",
+ "YES": "Yes",
+ "NO": "No",
+ "SUBJECT": "Subject",
+ "NO_AVAILABLE_INFO": "No available info",
+ "BROWSER": "Browser",
+ "INTERVAL": "Interval",
+ "INFO": "Info",
+ "TIME_RANGE": "Time Range",
+ "WEEK_DAYS": "Week Days",
+ "MONTH_DAYS": "Month Days",
+ "MONTHS": "Months",
+ "DROP_TO_UPLOAD_MESSAGE": "Drop audio files here to upload. Only MP3, WAV, GSM - Max. 15MB",
+ "POLLING_INTERVAL": "Polling Interval (seconds)",
+ "DASHBOARD": "Dashboard",
+ "NEW_DASHBOARDITEM": "New Dashboard Widget",
+ "COUNTER": "Counter",
+ "IFRAME": "IFrame",
+ "CLOCK": "Clock",
+ "ADD_DASHBOARDITEM": "Add Dashboard Widget",
+ "EDIT_WIDGET": "Edit Widget",
+ "DELETE_WIDGET": "Delete Widget",
+ "FLIP_WIDGET": "Flip Widget",
+ "TITLE": "Title",
+ "UPDATE": "Update",
+ "LAYOUT": "Layout",
+ "BACKGROUND_COLOR": "Background Color",
+ "FOREGROUND_COLOR": "Foreground Color",
+ "FOREGROUND_TITLE_COLOR": "Foreground Title Color",
+ "THEME": "Theme",
+ "LIGHT": "Light",
+ "DARK": "Dark",
+ "TIMEZONE": "TimeZone",
+ "DIGITAL_FORMAT": "Digital Date Format",
+ "TOOLS_QUERY": "Query",
+ "SELECT": "Select",
+ "WHERE": "Where",
+ "BACK": "Back",
+ "PROJECT": "Project",
+ "GOTOREALTIME_TRUNK": "Go To Realtime Trunk",
+ "GOTO_TRUNK": "Go To Trunk",
+ "CRON": "Cron",
+ "MINUTES": "Minutes",
+ "HOURLY": "Hourly",
+ "YEARLY": "Yearly",
+ "EVERY": "Every",
+ "MINUTE": "Minute",
+ "ON_SECOND": "On second",
+ "HOUR_ON_MINUTE": "Hour on minute",
+ "AND_SECOND": "And second",
+ "DAY_AT": "Day at",
+ "START_TIME": "Start Time",
+ "ON_THE": "On the",
+ "OF_EVERY": "Of every",
+ "MONTH_AT": "Month at",
+ "AT": "At",
+ "LAST": "Last",
+ "LASTUNIT": "Unit",
+ "MAILACCOUNT": "Email Account",
+ "OF": "of",
+ "PAST_THE_HOUR": "Past the hour",
+ "DAY": "Day",
+ "WEEK": "Week",
+ "YEAR": "Year",
+ "ON": "On",
+ "PAI": "P-Asserted-Identity",
+ "PAGE": "Page",
+ "ROWSPERPAGE": "Rows per page",
+ "EVENTVARIABLES": "Event Variables",
+ "AUTOCREATECONTACT": "Create contact automatically",
+ "LOCATION": "Location",
+ "NEW_TAB": "New Tab",
+ "NEW_WINDOW": "New Window",
+ "MOTION_TAB": "New Agent Dashboard Tab",
+ "WINDOWWIDTH": "Window Width(px)",
+ "WINDOWHEIGHT": "Window Height(px)",
+ "BODY": "Body",
+ "REPORTFOLDER": "Report Folder",
+ "REPORTSUBFOLDER": "Report Subfolder",
+ "AGENT": "Agent",
+ "HEADERS": "Headers",
+ "WHATSAPP": "WhatsApp Connector",
+ "LEVEL": "Level",
+ "NOTIFICATIONS": {
+ "DISPOSITION_CREATED_SUCCESS_TITLE": "Disposition successfully created",
+ "DISPOSITION_SAVED_SUCCESS_TITLE": "Disposition successfully saved",
+ "DISPOSITION_DELETE_TITLE": "Are you sure want to delete the disposition?",
+ "DISPOSITION_DELETE_MESSAGE": "{{ name }} will be deleted",
+ "DISPOSITION_DELETE_MESSAGE_CHILDREN": "{{ name }} will be deleted with all its sub dispositions",
+ "DISPOSITION_DELETED_SUCCESS_TITLE": "Disposition successfully deleted",
+ "DISPOSITIONS_DELETE_TITLE": "Are you sure want to delete the selected dispositions?",
+ "DISPOSITIONS_DELETE_MESSAGE": "{{ total }} dispositions will be deleted",
+ "TRIGGER_CREATED_SUCCESS_TITLE": "Trigger successfully created",
+ "TRIGGER_SAVED_SUCCESS_TITLE": "Trigger successfully saved",
+ "TRIGGER_DELETE_TITLE": "Are you sure want to delete the trigger?",
+ "TRIGGER_DELETE_MESSAGE": "{{ name }} will be deleted",
+ "TRIGGER_DELETED_SUCCESS_TITLE": "Trigger successfully deleted",
+ "TRIGGERS_DELETE_TITLE": "Are you sure want to delete the selected triggers?",
+ "TRIGGERS_DELETE_MESSAGE": "{{ total }} triggers will be deleted",
+ "TRIGGERS_DELETED_SUCCESS_TITLE": "Triggers successfully deleted",
+ "ACTION_CREATED_SUCCESS_TITLE": "Action successfully created",
+ "ACTION_SAVED_SUCCESS_TITLE": "Action successfully saved",
+ "ACTION_DELETE_TITLE": "Are you sure want to delete the action?",
+ "ACTION_DELETED_SUCCESS_TITLE": "Action successfully deleted",
+ "ACTIONS_DELETE_TITLE": "Are you sure want to delete the selected actions?",
+ "ACTIONS_DELETE_MESSAGE": "{{ total }} actions will be deleted",
+ "ACTIONS_DELETED_SUCCESS_TITLE": "Actions successfully deleted",
+ "CONDITION_CREATED_SUCCESS_TITLE": "Condition successfully created",
+ "CONDITION_SAVED_SUCCESS_TITLE": "Condition successfully saved",
+ "CONDITION_DELETE_TITLE": "Are you sure want to delete the condition?",
+ "CONDITION_DELETED_SUCCESS_TITLE": "Condition successfully deleted",
+ "CONDITIONS_DELETE_TITLE": "Are you sure want to delete the selected conditions?",
+ "CONDITIONS_DELETE_MESSAGE": "{{ total }} conditions will be deleted",
+ "CONDITIONS_DELETED_SUCCESS_TITLE": "Conditions successfully deleted"
+ },
+ "ALL_DISPOSITIONS": "All dispositions",
+ "SELECT_LEVEL": "Select a level",
+ "ALL": "All",
+ "FIRST_LEVEL_DISPOSITION": "First Level Disposition",
+ "SECOND_LEVEL_DISPOSITION": "Second Level Disposition",
+ "SEARCH_FIELDS": "Search fields",
+ "AUTOCREATE_FIELD": "Autocreate field",
+ "STANDARD": "Standard",
+ "GLOBALS": "Globals",
+ "MOTION_BAR": "Motion Bar"
+ }
+}
--- /dev/null
+{
+ "VIDEO": {
+ "VIDEO": "Video",
+ "SCREENRECORDINGS": "Screen Recordings",
+ "SEARCH_FOR_ANYONE": "Search",
+ "INTERACTIONID": "Interaction ID",
+ "CHANNEL": "Channel",
+ "AGENT": "Agent",
+ "RATING": "Rating",
+ "NO_RATING": "No Rating",
+ "RECORDSTARTTIME": "Record Start Time",
+ "RECORDENDTIME": "Record End Time",
+ "DURATION": "Duration",
+ "PAGE": "Page",
+ "ROWSPERPAGE": "Rows per page",
+ "OF": "of",
+ "NO_AVAILABLE_INFO": "No Available Info",
+ "EDIT_SCREENRECORDING": "Rate Screen Recording",
+ "PLAY_SCREENRECORDING": "Play Screen Recording",
+ "DOWNLOAD_SCREENRECORDING": "Download Screen Recording",
+ "DELETE_SCREENRECORDING": "Delete Screen Recording",
+ "CANT_DOWNLOAD_THIS_FILE": "Can't download this file",
+ "WRONG_EXTENSION": "The file presents the wrong extension",
+ "FILE_NOT_FOUND": "File not found",
+ "SAVE": "Save",
+ "DELETE": "Delete",
+ "UPDATEDAT": "Last Update",
+ "PROPERTIES": "Properties",
+ "FORMAT": "Format",
+ "STARTEDAT": "Record Start Time",
+ "CLOSEDAT": "Record End Time",
+ "CREATEDAT": "Created at",
+ "ID": "Id",
+ "AGENTNAME": "Agent",
+ "CANT_PLAY_THIS_FILE": "Can't play this type of file",
+ "LEGEND": {},
+ "ERRORS": {},
+ "HELP": {}
+ }
+}
--- /dev/null
+{
+ "VOICE": {
+ "SECOND_LEVEL_DISPOSITION": "Second Level Disposition",
+ "THIRD_LEVEL_DISPOSITION": "Third Level Disposition",
+ "FAILUREREASON": "Failure reason",
+ "TEXT": "Text",
+ "DOWNLOADTRANSCRIBE_VOICERECORDING": "Download Transcript",
+ "INBOUND": "Inbound",
+ "OUTBOUND": "Outbound",
+ "DIALER": "Dialer",
+ "LOGIN_TIME": "Login time",
+ "PAUSE_TIME": "Pause time",
+ "ABANDONEDCALLS": "Abandoned Queue Calls",
+ "WAITING_FOR_AGENTS": "Waiting for agents",
+ "ACTIVE": "Active",
+ "NO_AGENT_ONLINE": "No Agent Online",
+ "PARTIALPAUSE": "Partial Pause",
+ "STATUS": "Status",
+ "TIMER": "Timer",
+ "ALIAS": "Alias",
+ "ALL": "All",
+ "IDLE": "Idle",
+ "EDIT_TRUNK": "Edit Trunk",
+ "GOTO_VOICEQUEUE": "Go To Realtime Voice Queues",
+ "GOTOREALTIME_VOICEQUEUE": "Go To Realtime Voice Queues",
+ "NAME": "Name",
+ "LOGOUT": "Logout",
+ "VOICEQUEUES": "Voice Queues",
+ "SEARCH_FOR_ANYONE": "Search",
+ "BACK": "Back",
+ "SELECTED": "Selected",
+ "SELECT_ALL": "Select All",
+ "SELECT_NONE": "Select None",
+ "DELETE_VOICEDISPOSITION": "Delete Voice Disposition",
+ "EDIT_VOICEDISPOSITION": "Edit Voice Disposition",
+ "EDIT_VOICEQUEUE": "Edit Voice Queue",
+ "DELETE_VOICEQUEUE": "Delete Voice Queue",
+ "MOHSOUNDS": "Moh Sounds",
+ "STRATEGY": "Strategy",
+ "DESCRIPTION": "Description",
+ "ADD_VOICEQUEUE": "Add Voice Queue",
+ "CREATED_AT": "Created At",
+ "CANT_PLAY_GSM_AUDIO_FILES": "Can't play gsm or wav49 audio files",
+ "APPLICATIONS_LIST": "Applications List",
+ "GENERAL": "General",
+ "TIMEOUT": "Timeout",
+ "MAXLENGTH": "Maximum Length",
+ "RETRY": "Retry",
+ "WRAPUPTIME": "Wrapup Time",
+ "WEIGHT": "Weight",
+ "JOINWHENEMPTY": "Join when empty",
+ "LEAVEWHENEMPTY": "Leave when empty",
+ "MUSICONHOLD": "Music On Hold",
+ "ANNOUNCETOAGENT": "Announce To Agent",
+ "ANNOUNCEMENTS": "Announcements",
+ "ADVANCED": "Advanced",
+ "ANNOUNCEFREQUENCY": "Announce Frequency",
+ "MINANNOUNCEFREQUENCY": "Minimum Announce Frequency",
+ "PERIODICANNOUNCEFREQUENCY": "Periodic Announce Frequency",
+ "RANDOMPERIODICANNOUNCE": "Random Periodic Announce",
+ "ANNOUNCEHOLDTIME": "Announce Hold Time",
+ "ANNOUNCECALLERPOSITION": "Announce Caller Position",
+ "ANNOUNCEPOSITIONLIMIT": "Announce Position Limit",
+ "REPORTHOLDTIMEAGENT": "Report Agent Hold Time",
+ "PERIODICANNOUNCE": "Periodic Announce",
+ "HOLDTIMEANNOUNCE": "Hold Time Announce",
+ "YOUARENEXTANNOUNCE": "'You are next' Announce",
+ "THEREAREANNOUNCE": "'There are' Announce",
+ "WAITINGCALLSANNOUNCE": "Waiting Calls Announce",
+ "ESTIMATEDHOLDTIMEANNOUNCE": "Estimated Hold Time Announce",
+ "MINUTESANNOUNCE": "Minutes Announce",
+ "MINUTEANNOUNCE": "Minute Announce",
+ "SECONDSANNOUNCE": "Seconds Announce",
+ "THANKYOUANNOUNCE": "'Thank You' Announce",
+ "AUTOPAUSE": "Auto Pause",
+ "AFTERCALLWORK": "After Call Work",
+ "AFTERCALLWORKDURATION": "After Call Work Duration",
+ "RINGINUSE": "Ring In Use",
+ "MEMBERDELAY": "Member Delay",
+ "TIMEOUTRESTART": "Timeout Restart",
+ "MONITORFORMAT": "Recording Format",
+ "SETINTERFACEVARIABLES": "Set Interface Variables",
+ "SETQUEUEVARIABLES": "Set Queue Variables",
+ "SETQUEUEENTRYVARIABLES": "Set Queue Entry Variables",
+ "VARIABLE": "Variable",
+ "CONTEXT": "Context",
+ "SAVE": "Save",
+ "SETTINGS": "Settings",
+ "INBOUNDROUTES": "Inbound Routes",
+ "PHONENUMBER": "Phone Number",
+ "ADD_INBOUNDROUTE": "Add Inbound Route",
+ "EDIT_INBOUNDROUTE": "Edit Inbound Route",
+ "DELETE_INBOUNDROUTE": "Delete Inbound Route",
+ "ACTIONS": "Actions",
+ "OUTBOUNDROUTES": "Outbound Routes",
+ "DESTINATIONPATTERN": "Destination Pattern",
+ "ADD_OUTBOUNDROUTE": "Add Outbound Route",
+ "EDIT_OUTBOUNDROUTE": "Edit Outbound Route",
+ "DELETE_OUTBOUNDROUTE": "Delete Outbound Route",
+ "CUTDIGITS": "Cut Digits",
+ "RECORDING": "Recording",
+ "RECORDINGFORMAT": "Recording format",
+ "INTERNALROUTES": "Internal Routes",
+ "ADD_INTERNALROUTE": "Add Internal Route",
+ "EDIT_INTERNALROUTE": "Edit Internal Route",
+ "DELETE_INTERNALROUTE": "Delete Internal Route",
+ "CONTEXTS": "Contexts",
+ "ADD_CONTEXT": "Add Context",
+ "EDIT_CONTEXT": "Edit Context",
+ "DELETE_CONTEXT": "Delete Context",
+ "VOICEMAILS": "Voicemails",
+ "ADD_VOICEMAIL": "Add Voicemail",
+ "EDIT_VOICEMAIL": "Edit Voicemail",
+ "DELETE_VOICEMAIL": "Delete Voicemail",
+ "FULLNAME": "Full Name",
+ "EMAIL": "Email",
+ "MAILBOX": "Mailbox",
+ "PASSWORD": "Password",
+ "CONFIRM_PASSWORD": "Confirm Password",
+ "TIMEZONE": "Timezone",
+ "ATTACH": "Attach",
+ "ENVELOPE": "Envelope",
+ "DELETE": "Delete",
+ "EMAILBODY": "Email Body",
+ "EMAILSUBJECT": "Email Subject",
+ "MAXSECONDS": "Max Seconds",
+ "MAXMESSAGES": "Max Messages",
+ "MESSAGES": "Messages",
+ "SORT": "Sort",
+ "ADD_MUSICONHOLD": "Add Music On Hold",
+ "MUSICONHOLDS": "Music On Hold",
+ "EDIT_MUSICONHOLD": "Edit Music On Hold",
+ "DELETE_MUSICONHOLD": "Delete Music On Hold",
+ "DIRECTORY": "Directory",
+ "AUDIOFILES": "Audio Files",
+ "RECORDINGS": "Recordings",
+ "CHANSPY": "ChanSpy",
+ "PREFIX": "Prefix",
+ "OPTIONS": "Options",
+ "AUTH": "Auth",
+ "ADD_CHANSPY": "Add ChanSpy",
+ "EDIT_CHANSPY": "Edit ChanSpy",
+ "DELETE_CHANSPY": "Delete ChanSpy",
+ "AGENTS": "Agents",
+ "TELEPHONES": "Telephones",
+ "QUEUES": "Queues",
+ "QUEUE_CALLS": "Queue Calls",
+ "QUEUE_PARAMETERS": "Queue Parameters",
+ "ABANDONED_CALLS": "Abandoned Calls",
+ "OUTBOUND_CALLS": "Outbound Calls",
+ "AGI": "Agi",
+ "DIAL": "Dial",
+ "CALLYSQUARE": "CallySquare",
+ "INTERNALDIAL": "Internal Dial",
+ "EXTERNALDIAL": "External Dial",
+ "RINGGROUP": "Ring Group",
+ "PLAYBACK": "Playback",
+ "QUEUE": "Queue",
+ "SET": "Set",
+ "VOICEMAIL": "Voicemail",
+ "GOTO": "GoTo",
+ "HANGUP": "Hangup",
+ "CUSTOM": "Custom",
+ "PROJECT": "Cally-Square Project",
+ "TECHNOLOGY/RESOURCE": "Technology/Resource",
+ "URL": "URL",
+ "EDIT_APP": "Edit Application",
+ "EDIT_INTERVAL": "Edit Interval",
+ "DELETE_APP": "Delete Application",
+ "INTERVALS": "Intervals",
+ "USER": "User",
+ "TRUNK": "Trunk",
+ "PHONE": "Phone",
+ "AUDIO_FILES": "Audio Files",
+ "ANNOUNCE_OVERRIDES": "Announce Overrides",
+ "MACRO": "Macro",
+ "GOSUB": "GoSub",
+ "RULE": "Rule",
+ "POSITION": "Position",
+ "ANSWER": "Answer",
+ "VALUE": "Value",
+ "MAILBOX@CONTEXT": "Mailbox@Context",
+ "EXTENSION": "Extension",
+ "PRIORITY": "Priority",
+ "HANGUP_CAUSE": "Hangup Cause",
+ "OUTBOUNDDIAL": "Outbound Dial",
+ "CALLER_ID": "Caller ID",
+ "NO_MESSAGE_AVAILABLE": "No messages available",
+ "NO_SOUND_AVAILABLE": "No sounds available",
+ "VOICERECORDINGS": "Voice Recordings",
+ "CHANSPIES": "ChanSpy",
+ "VOICE": "Voice",
+ "REALTIME": "Realtime",
+ "ID": "Id",
+ "VOICEMAIL_CONTEXT": "Context",
+ "NO_MOHSOUND_AVAILABLE": "No Music On Hold available",
+ "FILE": "File",
+ "ADD_MOHSOUND": "Add Music On Hold sound",
+ "DOWNLOAD_MOHSOUND": "Download Music On Hold sound",
+ "DELETE_MOHSOUND": "Delete Music On Hold sound",
+ "UNIQUEID": "Unique ID",
+ "AGENT": "Agent",
+ "TYPE": "Type",
+ "RATING": "Rating",
+ "AUDIO": "Audio",
+ "DATE": "Date",
+ "NEW_VOICEQUEUE": "New Voice Queue",
+ "NEW_INBOUNDROUTE": "New Inbound Route",
+ "NEW_OUTBOUNDROUTE": "New Outbound Route",
+ "NEW_INTERNALROUTE": "New Internal Route",
+ "NEW_CONTEXT": "New Context",
+ "NEW_VOICEMAIL": "New Voicemail",
+ "NEW_MUSICONHOLD": "New Music On Hold",
+ "NEW_CHANSPY": "New ChanSpy",
+ "PENALTY": "Penalty",
+ "ADD_TEAM_TO_VOICEQUEUE": "Add Team to Voice Queue",
+ "ADD_AGENT_TO_VOICEQUEUE": "Add Agent to Voice Queue",
+ "EDIT_DIAL": "Edit Dial",
+ "EDIT_AGI": "Edit AGI",
+ "EDIT_INTERNALDIAL": "Edit Internal Dial",
+ "EDIT_EXTERNALDIAL": "Edit External Dial",
+ "EDIT_RINGGROUP": "Edit Ring Group",
+ "EDIT_PLAYBACK": "Edit Playback",
+ "EDIT_QUEUE": "Edit Queue",
+ "EDIT_SET": "Edit Set",
+ "EDIT_GOTO": "Edit GoTo",
+ "EDIT_HANGUP": "Edit Hangup",
+ "EDIT_CUSTOM": "Edit Custom",
+ "DURATION": "Duration",
+ "RECEIVED_AT": "Received At",
+ "YES": "Yes",
+ "NO": "No",
+ "HANGUPCAUSE_1": "1 = Unallocated number",
+ "HANGUPCAUSE_16": "16 = Normal call clearing",
+ "HANGUPCAUSE_17": "17 = User busy",
+ "HANGUPCAUSE_18": "18 = No user responding (telehone device not connected)",
+ "HANGUPCAUSE_21": "21 = Call rejected",
+ "HANGUPCAUSE_22": "22 = Number changed",
+ "HANGUPCAUSE_27": "27 = Destination out of order",
+ "HANGUPCAUSE_38": "38 = Network out of order",
+ "HANGUPCAUSE_41": "41 = Temporary failure",
+ "RANDOM": "Random",
+ "ALPHABETICAL": "Alphabetical",
+ "NO_APPS_AVAILABLE": "No applications available",
+ "DOWNLOAD_VOICERECORDING": "Download Voice Recording",
+ "DELETE_VOICERECORDING": "Delete Voice Recording",
+ "INTERNAL": "Internal",
+ "PHONE_STATE": "Phone State",
+ "PHONE_STATUS": "Phone Status",
+ "TRUNK_STATUS": "Trunk Status",
+ "REGISTERED": "Registered",
+ "UNREGISTERED": "Unregistered",
+ "LAGGED": "Lagged",
+ "REACHABLE": "Reachable",
+ "UNREACHABLE": "Unreachable",
+ "UNKNOWN": "Unknown",
+ "NOT_INUSE": "Not In Use",
+ "INUSE": "In Use",
+ "BUSY": "Busy",
+ "INVALID": "Invalid",
+ "UNAVAILABLE": "Unavailable",
+ "RINGING": "Ringing",
+ "ONHOLD": "On Hold",
+ "RING": "Ring",
+ "UP": "Up",
+ "INFO": "Info",
+ "TRUNKS": "Trunks",
+ "REGISTRY": "Registry",
+ "NO_REGISTRY": "No Registry",
+ "LOGGED_IN": "Logged In (SIP Connected)",
+ "PAUSED": "Paused",
+ "WAITING": "Waiting",
+ "TALKING": "Talking",
+ "DID": "DID",
+ "CALLER": "Caller",
+ "TOTAL": "Total",
+ "ANSWERED": "Answered",
+ "ABANDONED": "Abandoned",
+ "UNMANAGED": "Unmanaged",
+ "AVG_HOLD_TIME": "Avg Hold Time",
+ "AVG_DURATION": "Av Duration",
+ "AVG_BILLABLE": "Avg Billable",
+ "SOURCE": "Source",
+ "DESTINATION": "Destination",
+ "REJECTED": "Rejected",
+ "FAILED": "Failed",
+ "CALLED": "Called",
+ "CONNECTED": "Connected",
+ "NO_RATING": "No rating",
+ "EDIT_VOICERECORDING": "Edit Voice Recording",
+ "APPLICATION_NAME": "Application Name",
+ "ARGUMENTS": "Arguments",
+ "NO_AVAILABLE_INFO": "No Available Info",
+ "ADD_AGENT_TO_QUEUE": "Add Agent To Queue",
+ "DEFAULT_PAUSE": "DEFAULT PAUSE",
+ "PAUSE": "Pause",
+ "UNPAUSE": "End Pause",
+ "REDIRECT_TO_NUMBER": "Redirect To Number",
+ "REDIRECT_TO_AGENT": "Redirect To Agent",
+ "AGENTADD_VOICEQUEUE": "Add Agent To Voice Queue",
+ "APPLICATION": "Application",
+ "FILES": "Files",
+ "FORMAT": "Format",
+ "MODE": "Mode",
+ "RECORD": "Record",
+ "TEAMADD_VOICEQUEUE": "Add Team To Voice Queue",
+ "NEW_MOHSOUND": "New Music On Hold sound",
+ "DOWNLOAD_MESSAGE": "Download",
+ "DELETE_MESSAGE": "Delete",
+ "QUEUE_PARAMS": "Queue Parameters",
+ "TOTAL_OFFERED": "Total Offered",
+ "READY": "Ready",
+ "AGENTADD_QUEUE": "Add Agent To Voice Queue",
+ "AGENTSADD_QUEUE": "Add Agents To Voice Queue",
+ "ALL_TEAMS": "All Teams",
+ "SELECTED_TEAMS": "Selected Teams",
+ "ALL_AGENTS": "All Agents",
+ "SELECTED_AGENTS": "Selected Agents",
+ "CLOSING": "Closing",
+ "TAGS": "Tags",
+ "WAITING_FOR_AGENT": "Waiting For Agents",
+ "EDIT_OUTBOUNDDIAL": "Edit Outbound Dial",
+ "ACCOUNTNAME": "Account Name",
+ "PAGE": "Page",
+ "ROWSPERPAGE": "Rows per page",
+ "OF": "of",
+ "DISPOSITION": "Disposition",
+ "CHAT": "Chat",
+ "MAIL": "Email",
+ "SMS": "SMS",
+ "OPENCHANNEL": "Open Channel",
+ "FAX": "Fax",
+ "CLEAR": "Clear",
+ "CALLS": "Calls",
+ "STARTEDAT": "Started At",
+ "ENDEDAT": "Ended At",
+ "TAG": "Tag",
+ "DETAILS": "Details",
+ "BILLABLESECONDS": "Billable seconds",
+ "ANSWEREDAT": "Answered At",
+ "NOTE": "Note",
+ "CLOSE": "Close",
+ "SELECT_DATE": "Select Start Date",
+ "SELECT_TYPE": "Select Type",
+ "VOICEPREFIXES": "Out Prefixes",
+ "NEW_VOICEPREFIX": "New Prefix",
+ "ADD_VOICEPREFIX": "Add Prefix",
+ "EDIT_VOICEPREFIX": "Edit Prefix",
+ "AGENTADD_VOICEPREFIX": "Add Agent to Prefix",
+ "TEAMADD_VOICEPREFIX": "Add Team to Prefix",
+ "DELETE_VOICEPREFIX": "Delete Prefix",
+ "OUTBOUNDROUTE": "Outbound Route",
+ "CALLERIDALL": "Caller Id",
+ "MANDATORYDISPOSITION": "Mandatory disposition",
+ "MANDATORYDISPOSITIONPAUSEID": "Mandatory disposition pause status",
+ "SCREENRECORDING": "Manage Screen Recording",
+ "START_SCREENRECORDING": "Start Screen Recording",
+ "STOP_SCREENRECORDING": "Stop Screen Recording",
+ "TOOLTIP_SCREENRECORDING_ON": "Screen Recording in progress",
+ "TOOLTIP_SCREENRECORDING_OFF": "Screen Recording available",
+ "CANT_DOWNLOAD_THIS_FILE": "Can't download this file",
+ "WRONG_EXTENSION": "The file presents the wrong extension",
+ "FILE_NOT_FOUND": "File not found",
+ "TEAMS_ASSOCIATION": "Teams Association",
+ "TRANSCRIBE": "Transcribe",
+ "TRANSCRIPT": "Transcript",
+ "SENTIMENTANALYSIS": "Sentiment Analysis",
+ "TRANSCRIBESTATUS_COMPLETED": "Completed",
+ "TRANSCRIBESTATUS_IN_PROGRESS": "In progress",
+ "TRANSCRIBESTATUS_FAILED": "Failed",
+ "TRANSCRIBESTATUS_NEW": "New",
+ "TRANSCRIPTANALYSIS": "Transcript & Analysis",
+ "SENTIMENT_POSITIVE": "Positive",
+ "SENTIMENT_NEGATIVE": "Negative",
+ "SENTIMENT_NEUTRAL": "Neutral",
+ "SENTIMENT_MIXED": "Mixed",
+ "RUNTRANSCRIBE_VOICERECORDING": "Run Transcribe",
+ "RUNTRANSCRIBESENTIMENT_VOICERECORDING": "Run Transcribe&Sentiment",
+ "RUNSENTIMENT_VOICERECORDING": "Run Sentiment",
+ "SENTIMENT": "Sentiment",
+ "SERVICELEVEL": "Service level",
+ "MAXCAPACITY": "Max capacity",
+ "WORKING": "Working",
+ "LEGEND": {
+ "CUSTOM_APPLICATION": "(*) - Custom application"
+ },
+ "ERRORS": {
+ "PROJECT_REQUIRED": "Mandatory field",
+ "TRUNK_REQUIRED": "Mandatory field",
+ "VARIABLE_REQUIRED": "Mandatory field",
+ "NAME_REQUIRED": "Mandatory field",
+ "APPLICATION_NAME_REQUIRED": "Mandatory field",
+ "TIMEOUT_REQUIRED": "Mandatory field",
+ "PHONENUMBER_REQUIRED": "Mandatory field",
+ "CONTEXT_REQUIRED": "Mandatory field",
+ "DESTINATIONPATTERN_REQUIRED": "Mandatory field",
+ "FULLNAME_REQUIRED": "Mandatory field",
+ "EMAIL_REQUIRED": "Mandatory field",
+ "EMAIL_MUST_VALID": "Wrong format",
+ "MAILBOX_REQUIRED": "Mandatory field",
+ "PASSWORD_REQUIRED": "Mandatory field",
+ "CONFIRM_NOT_MATCH": "The passwords don't match",
+ "TIMEZONE_REQUIRED": "Mandatory field",
+ "PREFIX_REQUIRED": "Mandatory field",
+ "OPTIONS_REQUIRED": "Mandatory field",
+ "AFTERCALLWORKDURATION_REQUIRED": "Mandatory field",
+ "TECHNOLOGY/RESOURCE_REQUIRED": "Mandatory field",
+ "PHONE_REQUIRED": "Mandatory field",
+ "VALUE_REQUIRED": "Mandatory field",
+ "EXTENSION_REQUIRED": "Mandatory field",
+ "PRIORITY_REQUIRED": "Mandatory field",
+ "APPLICATION_REQUIRED": "Mandatory field",
+ "OUTBOUNDROUTE_REQUIRED": "Mandatory field",
+ "TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "MAXLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "RETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "WRAPUPTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "WEIGHT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "ANNOUNCEFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "MINANNOUNCEFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "PERIODICANNOUNCEFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "AFTERCALLWORKDURATION_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "MEMBERDELAY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "POSITION_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "CUTDIGITS_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "MAXSECONDS_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "MAXMESSAGES_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater than or equal to",
+ "MAXMESSAGES_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less than or equal to",
+ "NAME_MUST_VALID_PATTERN": "Wrong format",
+ "CALLERIDALL_MUST_VALID_PATTERN": "Wrong format",
+ "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Mandatory field",
+ "CALLER_ID_MUST_VALID_PATTERN": "Wrong format",
+ "PENALTY_REQUIRED": "You must specify a value for penalty"
+ },
+ "HELP": {
+ "TIMEOUT": "How many seconds to ring a device",
+ "MAXLENGTH": "Maximum number of callers allowed to wait in a queue: zero means unlimited",
+ "RETRY": "Time in seconds to wait before calling the next agent in queue when the timeout is expired",
+ "WRAPUPTIME": "Time in seconds to keep a queue member unavailable after completing a call",
+ "WEIGHT": "Weight of a queue in order to define priority if members are associated with multiple queues",
+ "JOINWHENEMPTY": "Used to control whether a caller is passed to a queue when no members are available",
+ "LEAVEWHENEMPTY": "Used to control whether callers are made leave the queue when no members are available to take calls",
+ "ANNOUNCEFREQUENCY": "How often to announce the caller’s position and/or estimated hold time in the queue (zero to disable)",
+ "MINANNOUNCEFREQUENCY": "Minimum announcement frequency (useful when the caller’s position changes frequently)",
+ "PERIODICANNOUNCEFREQUENCY": "Frequency of periodic announcements to the caller",
+ "ANNOUNCEPOSITIONLIMIT": "Used if announce-position is defined as either 'limit' or 'more'",
+ "AFTERCALLWORKDURATION": "Pause length triggered by the After Call Work option",
+ "MEMBERDELAY": "Inserts a delay prior to the caller and agent in queue get connected",
+ "MUSICONHOLD": "Sets the music class to use for a particular queue",
+ "ANNOUNCETOAGENT": "Play an announcement to the agent answering the call (typically to let him know what queue the caller is coming from)",
+ "RANDOMPERIODICANNOUNCE": "If yes, the defined periodic announcements will be played random",
+ "ANNOUNCEHOLDTIME": "Plays the estimated hold time along with the periodic announcements (Yes/No/Once)",
+ "ANNOUNCECALLERPOSITION": "Used to define if the caller’s position in the queue should be announced: No=never; Yes=always; Limit=only if it is within the limit defined by announce-position-limit; More= only if it is beyond the value defined by announce-position-limit",
+ "REPORTHOLDTIMEAGENT": "Enables reporting caller’s hold time to the agent in queue prior to connection",
+ "PERIODICANNOUNCE": "Set of periodic announcements to be played (in the order)",
+ "HOLDTIMEANNOUNCE": "Choose a Sound defined in Tools. Default=“Hold time”. Undefined=no announcement",
+ "YOUARENEXTANNOUNCE": "Choose a Sound defined in Tools. Default=“You are now first in line”. Undefined=no announcement",
+ "THEREAREANNOUNCE": "Choose a Sound defined in Tools. Default=“There are”. Undefined=no announcement",
+ "WAITINGCALLSANNOUNCE": "Choose a Sound defined in Tools. Default=“calls waiting”. Undefined=no announcement",
+ "ESTIMATEDHOLDTIMEANNOUNCE": "Choose a Sound defined in Tools. Default=“The current estimated hold time is”. Undefined=no announcement",
+ "MINUTESANNOUNCE": "Choose a Sound defined in Tools. Default=“minutes”. Undefined=no announcement",
+ "MINUTEANNOUNCE": "Choose a Sound defined in Tools. Default=“minute”. Undefined=no announcement",
+ "SECONDSANNOUNCE": "Choose a Sound defined in Tools. Default=“seconds”. Undefined=no announcement",
+ "THANKYOUANNOUNCE": "Choose a Sound defined in Tools. Default=“Thank you for your patience”. Undefined=no announcement",
+ "AFTERCALLWORK": "If enabled, the agent will be set on Pause after completing a call",
+ "AUTOPAUSE": "Enables/disables the automatic pause of agents who fail to answer a call. If enabled it causes the agent to be paused in all queues he belongs to",
+ "RINGINUSE": "To avoid/allow sending calls to members whose status is In Use",
+ "TIMEOUTRESTART": "If yes, this resets the timeout for an agent to answer when either a BUSY or CONGESTION status is received from the channel",
+ "MONITORFORMAT": "Specifies the format of the recording file. If it set to 'inactive', calls will not be recorded",
+ "CONTEXT": "Allows a caller to exit the queue by pressing a single DTMF digit. If a context is specified and the caller enters a number, that digit will attempt to be matched in the context specified, and dialplan execution will continue there",
+ "SETINTERFACEVARIABLES": "If set to yes, just prior to the caller being connected with a queue agent some variables will be set (for more information see wiki docs)",
+ "SETQUEUEVARIABLES": "If set to yes, just prior to the caller being connected with a queue agent and leaving the queue, some variables will be set (for more information, see wiki docs)",
+ "SETQUEUEENTRYVARIABLES": "If set to yes, just prior to the caller being connected with a queue agent some variables will be set (for more information, see wiki docs)",
+ "RECORDING": "Enable call recording",
+ "VOICEMAIL_CONTEXT": "The context of the relative extension",
+ "NAME": "Only numbers, letters and specific characters (._) are supported",
+ "CALLERIDALL": "Supported format: \"CallerId\" <number>",
+ "CALLER_ID": "Supported format: \"CallerId\" <number>",
+ "MANDATORYDISPOSITIONPAUSEID": "Pause status to set during mandatory disposition",
+ "SERVICELEVEL": "Second settings for service level (default=0, no SL). Used for service level statistics (calls answered within service level time frame)",
+ "SAVE_ROUTES": "The routing has been modified. Remember to save if you don't want to lose your changes."
+ },
+ "NOTIFICATIONS": {
+ "EXTENSION_CREATED_SUCCESS_TITLE": "Route successfully created",
+ "EXTENSION_SAVED_SUCCESS_TITLE": "Route successfully saved",
+ "EXTENSION_DELETE_TITLE": "Are you sure want to delete the route?",
+ "EXTENSION_DELETE_MESSAGE": "{{ name }} will be deleted",
+ "EXTENSION_DELETED_SUCCESS_TITLE": "Route successfully deleted",
+ "EXTENSIONS_DELETE_TITLE": "Are you sure want to delete the selected routes?",
+ "EXTENSIONS_DELETE_MESSAGE": "{{ total }} routes will be deleted",
+ "ROUTING_APPLICATION_DELETE_TITLE": "Are you sure want to delete the application?",
+ "ROUTING_APPLICATION_DELETE_MESSAGE": "{{ name }} will be deleted",
+ "ROUTING_APPLICATIONS_DELETE_TITLE": "Are you sure want to delete the selected applications?",
+ "ROUTING_APPLICATIONS_DELETE_MESSAGE": "{{ total }} applications will be deleted",
+ "CALLYSQUARE_PROJECTS_GET_ERROR": "Unable to retrieve any CallySquare project",
+ "TRUNKS_GET_ERROR": "Unable to retrieve any trunk",
+ "VOICE_CONTEXTS_GET_ERROR": "Unable to retrieve any voice context",
+ "QUEUES_GET_ERROR": "Unable to retrieve any queue",
+ "SOUNDS_GET_ERROR": "Unable to retrieve any sound",
+ "USERS_GET_ERROR": "Unable to retrieve any user",
+ "VARIABLES_GET_ERROR": "Unable to retrieve any variable",
+ "VOICEMAILS_GET_ERROR": "Unable to retrieve any voicemail",
+ "TAGS_GET_ERROR": "Unable to retrieve any tag",
+ "INTERVALS_GET_ERROR": "Unable to retrieve any interval"
+ }
+ }
+}
--- /dev/null
+{
+ "WHATSAPP": {
+ "EDIT_DIALOGFLOWV2": "Edit Dialogflow V2",
+ "DIALOGFLOWV2": "Dialogflow V2",
+ "PRIVATEKEY": "Private Key",
+ "CLIENTEMAIL": "Client Email",
+ "PROJECTID": "Project ID",
+ "ACCESSKEYID": "Access Key ID",
+ "ACCOUNTSID": "Account SID",
+ "ACTIONS": "Actions",
+ "ADD_NOTE": "Add note",
+ "ADD_WHATSAPPACCOUNT": "Add",
+ "ADD_WHATSAPPCANNEDANSWER": "Add Canned Answer",
+ "ADD_WHATSAPPDISPOSITION": "Add WhatsApp Disposition",
+ "ADD_WHATSAPPQUEUE": "Add WhatsApp queue",
+ "ADVANCED": "Advanced",
+ "AGENT": "Agent",
+ "AGENT_TIMEOUT": "Agent Timeout",
+ "AGENTADD_QUEUE": "Add Agent To WhatsApp Queue",
+ "AGENTADD_WHATSAPPACCOUNT": "Add Agent To WhatsApp Account",
+ "AGENTADD_WHATSAPPQUEUE": "Add Agent To WhatsApp Queue",
+ "AGENTS": "Agents",
+ "AGENTSADD_QUEUE": "Add agents to WhatsApp queue",
+ "AGENTTRANSFER": "Agent Transfer",
+ "AGENTTRANSFERTIMEOUT": "Agent Transfer Timeout",
+ "ALL": "All",
+ "ALL_AGENTS": "All Agents",
+ "ALL_TEAMS": "All Teams",
+ "AMAZONLEX": "AmazonLex",
+ "AUTHTOKEN": "Auth Token",
+ "AUTOREPLY": "Auto Reply",
+ "BACK": "Back",
+ "BASEURL": "Base URL",
+ "BOTNAME": "Bot Name",
+ "BUSY": "Busy",
+ "CANNED_ANSWER_NOT_FOUND": "No Canned Answers were found",
+ "CANNED_ANSWER_SEARCH": "Enter a text to search a Canned Answer",
+ "CANNEDANSWERS": "Canned Answers",
+ "CAPACITY": "Capacity",
+ "CLOSE": "Close",
+ "CLOSED": "Closed",
+ "CLOSEMETHOD": "Close Method",
+ "CLOSEURL": "Close URL",
+ "COMMAND": "Command",
+ "CONDITION": "Condition",
+ "CONTACT": "Contact",
+ "CREATED_AT": "Created at",
+ "DEFAULT_PAUSE": "DEFAULT PAUSE",
+ "DELETE": "Delete",
+ "DELETE_INTERACTION": "Delete Interaction",
+ "DELETE_SELECTED": "Delete selected",
+ "DELETE_WHATSAPPACCOUNT": "Delete WhatsApp Account",
+ "DELETE_WHATSAPPCANNEDANSWER": "Deleted",
+ "DELETE_WHATSAPPDISPOSITION": "Delete WhatsApp Disposition",
+ "DELETE_WHATSAPPQUEUE": "Delete WhatsApp Queue",
+ "DESCRIPTION": "Description",
+ "DIALOGFLOW": "DialogFlow",
+ "DISPOSITION": "Disposition",
+ "DISPOSITIONS": "Dispositions",
+ "DOWNLOAD_INTERACTION": "Download",
+ "DOWNLOAD_WITH_ATTACHMENTS": "Download With Attachments",
+ "DOWNLOAD_WITHOUT_ATTACHMENTS": "Download Without Attachments",
+ "EDIT_AGENT": "Edit Agent",
+ "EDIT_AMAZONLEX": "Edit Lex configuration",
+ "EDIT_AUTOREPLY": "Edit Auto Reply",
+ "EDIT_CLOSE": "Edit Close",
+ "EDIT_DIALOGFLOW": "Edit DialogFlow configuration",
+ "EDIT_GOTOIF": "Edit Gotoif",
+ "EDIT_GOTOP": "Edit Gotop",
+ "EDIT_NOOP": "Edit Noop",
+ "EDIT_QUEUE": "Edit Queue",
+ "EDIT_SYSTEM": "Edit System",
+ "EDIT_TAG": "Edit Tag",
+ "EDIT_WHATSAPPACCOUNT": "Edit WhatsApp Account",
+ "EDIT_WHATSAPPCANNEDANSWER": "Edit",
+ "EDIT_WHATSAPPDISPOSITION": "Edit WhatsApp Disposition",
+ "EDIT_WHATSAPPQUEUE": "Edit WhatsApp Queue",
+ "ERRORS": {
+ "PROJECTID_REQUIRED": "Mandatory Field",
+ "CLIENTEMAIL_REQUIRED": "Mandatory Field",
+ "PRIVATEKEY_REQUIRED": "Mandatory Field",
+ "ACCESSKEYID_REQUIRED": "Mandatory Field",
+ "ACCOUNTSID_REQUIRED": "Mandatory Field",
+ "AGENT_REQUIRED": "Mandatory Field",
+ "AGENT_TIMEOUT_REQUIRED": "Mandatory Field",
+ "AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater or equal than",
+ "AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less or equal than",
+ "AGENTTRANSFERTIMEOUT_REQUIRED": "Mandatory Field",
+ "AUTHTOKEN_REQUIRED": "Mandatory Field",
+ "BASEURL_REQUIRED": "Mandatory Field",
+ "BOTNAME_REQUIRED": "Mandatory Field",
+ "COMMAND_REQUIRED": "Mandatory Field",
+ "CONDITION_REQUIRED": "Mandatory Field",
+ "DESCRIPTION_REQUIRED": "Mandatory Field",
+ "DISPOSITION_REQUIRED": "Mandatory Field",
+ "FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater or equal than",
+ "FALSEPRIORITY_REQUIRED": "Mandatory Field",
+ "KEY_MAX_LENGTH": "The value must have a maximum length equal to {{max}}",
+ "KEY_REQUIRED": "Mandatory Field",
+ "LANGUAGE_REQUIRED": "Mandtory Field",
+ "LEXREGION_REQUIRED": "Mandatory Field",
+ "LIST_REQUIRED": "Mandatory Field",
+ "MANDATORYDISPOSITIONPAUSEID_REQUIRED": "Mandatory Field",
+ "NAME_REQUIRED": "Mandatory Field",
+ "PHONE_REQUIRED": "Mandatory Field",
+ "PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater or equal than",
+ "PRIORITY_REQUIRED": "Mandatory Field",
+ "QUEUE_REQUIRED": "Mandatory Field",
+ "QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater or equal than",
+ "QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less or equal than",
+ "QUEUETRANSFERTIMEOUT_REQUIRED": "Mandatory Field",
+ "SECRETACCESSKEY_REQUIRED": "Mandatory Field",
+ "TAG_REQUIRED": "Mandatory Field",
+ "TEXT_REQUIRED": "Mandatory Field",
+ "TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater or equal than",
+ "TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less or equal than",
+ "TIMEOUT_REQUIRED": "Mandatory Field",
+ "TIMES_REQUIRED": "Mandatory Field",
+ "TOKEN_REQUIRED": "Mandatory Field",
+ "TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater or equal than",
+ "TRUEPRIORITY_REQUIRED": "Mandatory Field",
+ "TYPE_REQUIRED": "Mandatory Field",
+ "VALUE_REQUIRED": "Mandatory Field",
+ "VARIABLE_REQUIRED": "Mandatory Field",
+ "WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO": "The value must be greater or equal than",
+ "WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO": "The value must be less or equal than",
+ "WAITFORTHEASSIGNEDAGENT_REQUIRED": "Mandatory Field",
+ "WELCOMEMESSAGE_MAX_LENGTH": "The value must have a maximum length equal to {{max}}",
+ "WELCOMEMESSAGE_REQUIRED": "Mandatory Field"
+ },
+ "FALSEPRIORITY": "False Priority",
+ "GENERAL": "General",
+ "GO_TO_WHATSAPPACCOUNTS": "Go To Account",
+ "GOTOIF": "Gotoif",
+ "GOTOP": "Gotop",
+ "GOTOREALTIME_WHATSAPPQUEUE": "Go To Realtime WhatsApp Queue",
+ "HELP": {
+ "LIST": "Contact Manager list used to associate contacts",
+ "MANDATORYDISPOSITION": "Mandatory disposition",
+ "MANDATORYDISPOSITIONPAUSEID": "Pause to use when mandatory disposition is enabled",
+ "MOTIONPROXY": "The field must have the following format: <protocol>://<ipaddress>[:<port>]. Example: https://X.Y.Z.W",
+ "NAME": "Only numbers, letters and specific characters (._) are supported",
+ "RECEIVEURL": "This is the auto-generated API string you need to use to receive the messages inside your account from your WhatsApp Connector provider (POST method must be used): click the clipboard button to copy it",
+ "WELCOMEMESSAGE": "This is the first response message sent to new interactions"
+ },
+ "ID": "Id",
+ "IDLE": "Idle",
+ "INSERT_MESSAGE_HERE": "Insert message here",
+ "INTERACTIONS": "Interactions",
+ "INTERACTIONS_WHATSAPPACCOUNT": "Go to Interactions",
+ "KEY": "Key",
+ "LANGUAGE": "Language",
+ "LASTMESSAGE": "Last Message",
+ "LEXREGION": "Region",
+ "LIST": "List",
+ "LOGGED_IN": "Logged In",
+ "LOGIN_TIME": "Login Time",
+ "LOGOUT": "Logout",
+ "MANDATORYDISPOSITION": "Mandatory Disposition",
+ "MANDATORYDISPOSITIONPAUSEID": "Pause to use when mandatory disposition is enabled",
+ "MORE": "More",
+ "MOTIONPROXY": "Proxy Or Motion Domain",
+ "MULTI_SELECT_TOGGLE": "Multi select toggle",
+ "NAME": "Name",
+ "NEW_WHATSAPPACCOUNT": "New WhatsApp Account",
+ "NEW_WHATSAPPCANNEDANSWER": "New WhatsApp Canned Answer",
+ "NEW_WHATSAPPDISPOSITION": "New WhatsApp Disposition",
+ "NEW_WHATSAPPQUEUE": "New WhatsApp Queue",
+ "NO_AGENT_ONLINE": "No Agent Online",
+ "NO_AVAILABLE_INFO": "No Available Info",
+ "NO_INTERACTION_AVAILABLE": "No Interactions Available",
+ "NO_WHATSAPP_ACCOUNTS_AVAILABLE": "No WhatsApp Accounts available",
+ "NO_WHATSAPPCANNEDANSWER_AVAILABLE": "No WhatsApp Canned Answers Available",
+ "NO_WHATSAPPDISPOSITION_AVAILABLE": "No WhatsApp Dispositions Available",
+ "NOOP": "Noop",
+ "NOTE": "Note",
+ "NOTIFICATION": "Notification",
+ "NOTIFICATIONSHAKE": "Shake",
+ "NOTIFICATIONSOUND": "Sound",
+ "NOTIFICATIONTEMPLATE": "Template",
+ "OF": "of",
+ "OPENED": "Open",
+ "PAGE": "Page",
+ "PARTIALPAUSE": "Partial Pause",
+ "PAUSE": "Pause",
+ "PAUSE_TIME": "Pause Time",
+ "PAUSED": "Paused",
+ "PHONE": "Phone",
+ "PRIORITY": "Priority",
+ "PROXY": "Proxy",
+ "QUEUE": "Queue",
+ "QUEUES": "Queues",
+ "QUEUETRANSFER": "Queue Transfer",
+ "QUEUETRANSFERTIMEOUT": "Queue Transfer Timeout",
+ "READY": "Ready",
+ "REALTIME": "Realtime",
+ "RECEIVEURL": "Receive URL",
+ "DELIVERYREPORTURL": "Delivery report URL",
+ "REFRESH_INTERACTIONS": "Refresh Interactions",
+ "REMOTE": "Remote",
+ "ROWSPERPAGE": "Rows per page",
+ "SAVE": "Save",
+ "SCREENRECORDING": "Manage Screen Recording",
+ "SEARCH_FOR_ANYONE": "Search",
+ "SECRETACCESSKEY": "Access key secret",
+ "SELECT_ALL": "Select all",
+ "SELECT_NONE": "Select none",
+ "SELECTED": "Selected",
+ "SELECTED_AGENTS": "Selected Agents",
+ "SELECTED_TEAMS": "Selected Teams",
+ "SEND": "Send",
+ "SETTINGS": "Settings",
+ "SPYINTERACTION": "Spy Interaction",
+ "START_SCREENRECORDING": "Start Screen Recording",
+ "STARTEDAT": "Started at",
+ "STATUS": "Status",
+ "STOP_SCREENRECORDING": "Stop Screen Recording",
+ "STRATEGY": "Strategy",
+ "SYSTEM": "System",
+ "TAG": "Tag",
+ "TAGS": "Tags",
+ "TEAMADD_WHATSAPPQUEUE": "Add Team To WhatsApp Queue",
+ "TEAMS_ASSOCIATION": "Teams Association",
+ "TEXT": "Text",
+ "TIMEOUT": "Timeout",
+ "TIMER": "Timer",
+ "TIMES": "Times",
+ "TO": "To",
+ "TOKEN": "Token",
+ "TOOLTIP_SCREENRECORDING_OFF": "Screen Recording available",
+ "TOOLTIP_SCREENRECORDING_ON": "Screen Recording in progress",
+ "TRANSFER": "Transfer",
+ "TRUEPRIORITY": "True Priority",
+ "TYPE": "Type",
+ "UNPAUSE": "End Pause",
+ "VALUE": "Value",
+ "VARIABLE": "Variable",
+ "WAITFORTHEASSIGNEDAGENT": "Wait for the assigned agent",
+ "WAITING": "Waiting",
+ "WELCOMEMESSAGE": "Welcome Message",
+ "WHATSAPP": "WhatsApp Connector",
+ "WHATSAPPACCOUNTS": "WhatsApp Accounts",
+ "WHATSAPPCANNEDANSWERS": "WhatsApp Canned Answers",
+ "WHATSAPPDISPOSITIONS": "WhatsApp Dispositions",
+ "WHATSAPPQUEUES": "WhatsApp Queues"
+ }
+}
--- /dev/null
+{
+ "QUICKPANEL": {
+ "EXPIRATION_GRAY_PERIOD": "Expiration Gray Period",
+ "NO_AVAILABLE_GROUPS": "No Available Groups",
+ "SAVE": "Save",
+ "INFO": "Info",
+ "NEW_CHATGROUP": "New Group",
+ "NAME": "Name",
+ "MEMBERS": "Members",
+ "ENABLE_WRITING": "Enable Writing",
+ "GROUPS": "Groups",
+ "YOU": "You + {{participants}}",
+ "NEW_INTERNAL_MESSAGE": "New internal message",
+ "DELETE": "Delete",
+ "SEARCH": "Search",
+ "USERS": "Users",
+ "TODAY": "TODAY",
+ "MONDAY": "Monday",
+ "TUESDAY": "Tuesday",
+ "WEDNESDAY": "Wednesday",
+ "THURSDAY": "Thursday",
+ "FRIDAY": "Friday",
+ "SATURDAY": "Saturday",
+ "SUNDAY": "Sunday",
+ "JANUARY": "January",
+ "FEBRUARY": "February",
+ "MARCH": "March",
+ "APRIL": "April",
+ "MAY": "May",
+ "JUNE": "June",
+ "JULY": "July",
+ "AUGUST": "August",
+ "SEPTEMBER": "September",
+ "OCTOBER": "October",
+ "NOVEMBER": "November",
+ "DECEMBER": "December",
+ "CHAT": "CHAT",
+ "ACTIVITY": "ACTIVITY",
+ "FRIENDS": "Friends",
+ "APP_SERVERS": "Application Servers",
+ "USER_STATS": "User Stats",
+ "EVENTS": "Events",
+ "NOTES": "Notes",
+ "QUICK_SETTINGS": "Quick Settings",
+ "NOTIFICATIONS": "Notifications",
+ "CLOUD_SYNC": "Cloud Sync",
+ "RETRO_THRUSTERS": "Retro Thrusters",
+ "RECENT": "Recent",
+ "START_NEW_CHAT": "Start New Chat",
+ "BACK": "Back",
+ "CALL": "Call",
+ "MORE": "More",
+ "SEND_MESSAGE": "Send message",
+ "REPLY_PLACEHOLDER": "Type and hit enter to send message",
+ "CONTACT_XCALLY_MOTION_SUPPORT": "Contact xCALLY Motion Support",
+ "EXPIRATION_DATE": "Expiration Date",
+ "EXPIRATION_REASON": "Expiration Reason",
+ "LICENSE": "License",
+ "NEW_TOKEN": "New Token",
+ "OLD_TOKEN": "Old Token",
+ "SEND_EMAIL_TO": "Send Email To",
+ "TOKEN": "Token",
+ "EXPIRATION_REASON_MESSAGE": "Your license has expired or your machine unique id has been updated due to a change to your system. Contact xCALLY Motion Support Team sending both your old and your new uuid.",
+ "GRAY_PERIOD_EXPIRATION": "Gray Period Expiration",
+ "EXPIRATION_REASON_MESSAGE_GRAY": "Your license has expired or has been disabled. Contact xCALLY Motion Support Team.",
+ "EXPIRATION_REASON_MESSAGE_CHANGED": "Your machine unique id has been updated due to a change to your system. Contact xCALLY Motion Support Team sending both your old and your new uuid.",
+ "MESSENGER_DISABLED": "The internal messaging is disabled for this agent!",
+ "WARNING": "Warning",
+ "ERRORS": {
+ "NAME_REQUIRED": "Mandatory Field"
+ }
+ }
+}
--- /dev/null
+{
+ "RESETPASSWORD": {
+ "TITLE": "Reset your password",
+ "EMAIL_ADRESS": "Email address",
+ "PASSWORD": "Password",
+ "PASSWORD_CONFIRM": "Password (Confirm)",
+ "UPDATE_PASSWORD": "RESET MY PASSWORD",
+ "GO_BACK": "Go back to login",
+ "PASSWORD_RESET": "Password Reset",
+ "PASSWORD_RESET_MESSAGE": "Your password has been correctly reset, you can now login!",
+ "PASSWORD_RESET_ERROR": "Password Reset Error",
+ "ERRORS": {
+ "EMAIL_REQUIRED": "Email field is required",
+ "EMAIL_MUST_VALID": "Email must be a valid e-mail address",
+ "PASSWORD_REQUIRED": "Password field is required",
+ "CONFIRM_NOT_MATCH": "The passwords don't match",
+ "SECURE_PASSWORD_PATTERN": "Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}."
+ }
+ }
+}
"PORTUGUESE": "Portuguese",
"NORWEGIAN": "Norwegian",
"HINDI": "Hindi",
+ "HUNGARIAN": "Hungarian",
"TURKISH": "Turkish",
"PERSIAN": "Persian",
"LATVIAN": "Latvian",
--- /dev/null
+{
+ "TOOLBAR": {
+ "CHANGE_LANGUAGE_TITLE": "Change language",
+ "CHANGE_LANGUAGE_MESSAGE": "Remember to refresh the page to apply RTL Support (if enabled)",
+ "HEBREW": "Hebrew",
+ "PREFIXES": "Prefixes",
+ "CALL": "Call",
+ "ARABIC": "Arabic",
+ "INDONESIAN": "Indonesian",
+ "RESETPASSWORD": "Reset Password",
+ "PASSWORD_EXPIRE_REMAINING_DAYS": "Remaining days before your password expires",
+ "BROWSER_COMPATIBILITY": "Browser Compatibility [Chrome, Opera, Safari]",
+ "RECORDING": "Recording",
+ "INVALID_LICENSE": "Invalid License",
+ "BROWSER": "Browser",
+ "OS": "Operating System",
+ "REQUIREMENTS": "Requirements",
+ "LICENSE": "License",
+ "HTTPS": "HTTPS",
+ "WEBRTCSUPPORT": "WebRTC Support",
+ "REGISTERED": "Registered",
+ "NOT_REGISTERED": "Not registered",
+ "WEBRTC_LICENSE_NOT_ENABELD": "WebRTC License is not enabled",
+ "ATTENDED_TRANSFER": "Attended Tranfer",
+ "TRANSFER": "Transfer",
+ "TARGET": "Target",
+ "CANCEL": "Cancel",
+ "FILENAME": "File name",
+ "STATUS": "Status",
+ "ACTIONS": "Actions",
+ "SPEAKER": "Speaker",
+ "RINGING": "Ringing tone",
+ "MICROPHONE": "Microphone",
+ "CONFERENCE": "Conference with 2 active sessions",
+ "PROFILE": "Profile",
+ "SERVICES": "Services",
+ "AUDIO": "Audio",
+ "FULLNAME": "Fullname",
+ "NAME": "Name",
+ "INTERNAL": "Internal",
+ "RINGINGDEVICE": "Ringing Device",
+ "SPEAKERDEVICE": "Speaker Device",
+ "MICROPHONEDEVICE": "Microphone Device",
+ "CHANGEPASSWORD": "Change password",
+ "SETTINGS": "Settings",
+ "AUTOANSWER": "Auto answer",
+ "TOGGLE_NAVIGATION": "Toggle navigation",
+ "TOGGLE_NAVIGATION_FOLD": "Toggle navigation fold",
+ "TOGGLE_NAVIGATION_MODE": "Toggle navigation mode",
+ "SEARCH": "Search",
+ "USER_SETTINGS": "User settings",
+ "TOGGLE_QUICK_PANEL": "Toggle quick panel",
+ "SOMEONE_LOGGED_YOU_OUT": "Someone logged out, do you want to stay logged?",
+ "STAY_LOGGED": "Stay logged",
+ "WARNING": "Warning",
+ "ENGLISH": "English",
+ "ITALIAN": "Italian",
+ "FRENCH": "French",
+ "KOREAN": "Korean",
+ "SPANISH": "Spanish",
+ "SWEDISH": "Swedish",
+ "RUSSIAN": "Russian",
+ "GERMAN": "German",
+ "JAPANESE": "Japanese",
+ "CHINESESIMPLIFIED": "Chinese Simplified",
+ "CHINESETRADITIONAL": "Chinese Traditional",
+ "DUTCH": "Dutch",
+ "FINNISH": "Finnish",
+ "DANISH": "Danish",
+ "PORTUGUESE": "Portuguese",
+ "NORWEGIAN": "Norwegian",
+ "HINDI": "Hindi",
+ "TURKISH": "Turkish",
+ "PERSIAN": "Persian",
+ "LATVIAN": "Latvian",
+ "POLISH": "Polish",
+ "LOGIN_TIME": "Login Time",
+ "PAUSE_TIME": "Pause Time",
+ "PREVIEW": "Preview",
+ "CONFIRM_PASSWORD": "Confirm Password",
+ "NEW_PASSWORD": "New Password",
+ "OLD_PASSWORD": "Old Password",
+ "SAVE": "Save",
+ "TRIAL_VERSION": "Trial Version",
+ "PAUSE": "Pause",
+ "RESUME": "End Pause",
+ "NO_PAUSES_AVAILABLE": "No pauses available",
+ "CZECH": "Czech",
+ "ERRORS": {
+ "FIELD_REQUIRED": "Mandatory Field",
+ "PASSWORD_REQUIRED": "Mandatory Field",
+ "CONFIRM_NOT_MATCH": "The passwords don't match",
+ "SECURE_PASSWORD_PATTERN": "The password must be at least 8 characters long and have 1 lowercase character, 1 uppercase character, 1 number and 1 special character ~!?*@#$%^&-_=+[{]}.",
+ "PASSWORD_OLDPASSWORD_MATCH": "New password must be different from previous one"
+ },
+ "BRAZILIAN": "Brazilian",
+ "ESTONIAN": "Estonian",
+ "WEBRTC_MICROPHONE_NOT_AVAILABLE": "No microphone available",
+ "WEBRTC_SPEAKER_NOT_AVAILABLE": "No speaker available",
+ "WEBRTC_AUDIO_DEVICES_NOT_AVAILABLE": "No audio devices available",
+ "NO_AVAILABLE_INFO": "No available info",
+ "LITHUANIAN": "Lithuanian",
+ "NOTIFICATION_TITLE": "New notification from {{sender}}",
+ "NOTIFICATION_TITLE_RECIPIENT": "to {{recipient}}",
+ "USER_FORCE_LOGOUT": "{{ip}} has logged in with your credentials. \nMultiple logins are not allowed",
+ "LOGOUT": "Logout",
+ "SESSION_TIMEOUT": "The session will be automatically closed after 60 seconds",
+ "HELP": {
+ "PREVIEW_RECALLME": "This is a Recall Me call scheduled for {{date}}"
+ }
+ }
+}
"PORTUGUESE": "Portoghese",
"NORWEGIAN": "Norwegian",
"HINDI": "Hindi",
+ "HUNGARIAN": "Ungherese",
"TURKISH": "Turco",
"PERSIAN": "Persiano",
"LATVIAN": "Lettone",
<script src="assets/plugins/angular-material-form-builder/dist/angular-material-form-builder.min.js"></script>
<!-- ANGULAR-MATERIAL-FORM-BUILDER -->
- <script src="scripts/app.8fee3ae7.js"></script>
+ <script src="scripts/app.11f2d7d7.js"></script>
<!-- CKEDITOR -->
<script src="assets/plugins/ckeditor/ckeditor.js"></script>
-!function(){"use strict";angular.module("app.auth",[])}(),function(){"use strict";angular.module("app.core",["ngAnimate","ngAria","ngCookies","ngMessages","ngResource","ngSanitize","ngMaterial","pascalprecht.translate","ui.router","ui.router.state.events","gridster","ds.clock","angucomplete-alt"])}(),function(){"use strict";function e(e,n){e.state("app.errors_error-404",{url:"/errors/error-404",views:{"main@":{templateUrl:"app/core/layouts/content-only.html",controller:"MainController as vm"},"content@app.errors_error-404":{templateUrl:"app/errors/404/error-404.html",controller:"Error404Controller as vm"}},params:{status:404,statusText:"",data:{},config:{}},bodyClass:"error-404"}),n.addPart("app/errors/404")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.errors.error-404",[]).config(e)}(),function(){"use strict";function e(e,n){e.state("app.errors_error-500",{url:"/errors/error-500",views:{"main@":{templateUrl:"app/core/layouts/content-only.html",controller:"MainController as vm"},"content@app.errors_error-500":{templateUrl:"app/errors/500/error-500.html",controller:"Error500Controller as vm"}},params:{status:500,statusText:"",data:{},config:{}},bodyClass:"error-500"}),n.addPart("app/errors/500")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.errors.error-500",[]).config(e)}(),function(){"use strict";angular.module("app.errors",["app.errors.error-404","app.errors.error-500"])}(),function(){"use strict";function e(e){e.addPart("app/footer")}e.$inject=["$translatePartialLoaderProvider"],angular.module("app.footer",[]).config(e)}(),function(){"use strict";function e(e,n){e.state("app.forgot",{url:"/forgot",views:{"main@":{templateUrl:"app/core/layouts/content-only.html",controller:"MainController as vm"},"content@app.forgot":{templateUrl:"app/forgot/forgot.html",controller:"ForgotPasswordController as vm"}},bodyClass:"forgot"}),n.addPart("app/forgot")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.forgot",[]).config(e)}(),function(){"use strict";function e(e){e.addPart("app/header")}e.$inject=["$translatePartialLoaderProvider"],angular.module("app.header",[]).config(e)}(),function(){"use strict";angular.module("motion",["angular-toasty","app.core","app.auth","app.navigation","app.toolbar","app.quick-panel","app.header","app.footer","app.realtime","app.dashboards","app.staff","app.contactmanager","app.voice","app.chat","app.mail","app.sms","app.openchannel","app.fax","app.tools","app.callysquare","app.analytics","app.integrations","app.settings","app.motiondialer","app.help","app.jscripty","app.marketplace","app.plugins","app.video","app.whatsapp","app.login","app.forgot","app.reset","app.errors"])}(),function(){"use strict";function e(e,n){e.state("app.login",{url:"/login?token&userId",views:{"main@":{templateUrl:"app/core/layouts/content-only.html",controller:"MainController as vm"},"content@app.login":{templateUrl:"app/login/login.html",controller:"LoginController as vm"}},bodyClass:"login"}),n.addPart("app/login")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.login",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.analytics",{abstract:!0,url:"/analytics"}).state("app.analytics.metrics",{url:"/metrics",views:{"content@app":{templateUrl:"app/main/apps/analytics/views/metrics/metrics.html",controller:"MetricsController as vm"}},resolve:{metrics:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("analyticMetric@get",{fields:"createdAt,updatedAt,id,name,table,metric,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Metrics",fields:"createdAt,updatedAt,id,name,table,metric,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1201})}]},authenticate:!0,permissionId:1201,bodyClass:"analytics"}).state("app.analytics.extractedReports",{url:"/extractedReports",views:{"content@app":{templateUrl:"app/main/apps/analytics/views/extractedReports/extractedReports.html",controller:"ExtractedReportsController as vm"}},resolve:{extractedReports:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("analyticExtractedReport@get",{fields:"createdAt,updatedAt,id,name,basename,savename,type,startDate,endDate,status,output,reportId,reportType",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ExtractedReports",fields:"createdAt,updatedAt,id,name,basename,savename,type,startDate,endDate,status,output,reportId,reportType",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1202})}]},authenticate:!0,permissionId:1202,bodyClass:"analytics"}),n.addPart("app/main/apps/analytics")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.analytics",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.analytics.reports"]).config(e)}(),function(){"use strict";function e(e){e.state("app.analytics.reports",{url:"/reports",views:{"content@app":{templateUrl:"app/main/apps/analytics/views/reports/reports.html",controller:"ReportsController as vm"}},resolve:{treeReports:["apiResolver",function(e){return e.resolve("analyticTreeReport@get",{fields:"id,tree",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1203})}]},authenticate:!0,permissionId:1203,bodyClass:"analytics"}).state("app.analytics.reports.edit",{url:"/:id?tab",views:{"content@app":{templateUrl:"app/main/apps/analytics/views/reports/edit/view.html",controller:"ReportController as vm"}},resolve:{report:["apiResolver","$stateParams","$q","describeTable",function(e,n,a,i){var s;return e.resolve("analyticCustomReport@get",{fields:"createdAt,updatedAt,id,name,description,table,conditions,joins",id:n.id}).then(function(e){var n=[];if((s=e).joins)try{s.joins=JSON.parse(s.joins);for(var t=0;t<s.joins.length;t+=1)n.push(i.getColumns(s.joins[t].foreignTable))}catch(e){console.log(e)}return a.all(n)}).then(function(e){for(var n=0;n<e.length;n+=1)s.joins[n].foreignTableFields=_.difference(_.keys(e[n]),["$promise","$resolved"]);return s})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1203})}]},authenticate:!0,permissionId:1203,bodyClass:"analytics"})}e.$inject=["$stateProvider"],angular.module("app.analytics.reports",["ngJsTree"]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.callysquare",{abstract:!0,url:"/callysquare"}).state("app.callysquare.odbcs",{url:"/odbcs",views:{"content@app":{templateUrl:"app/main/apps/callysquare/views/odbcs/odbcs.html",controller:"OdbcsController as vm"}},resolve:{odbcs:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("squareOdbc@get",{fields:"createdAt,updatedAt,id,name,dsn,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ODBC",fields:"createdAt,updatedAt,id,name,dsn,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1101})}]},authenticate:!0,permissionId:1101,bodyClass:"callysquare"}).state("app.callysquare.squareRecordings",{url:"/squareRecordings",views:{"content@app":{templateUrl:"app/main/apps/callysquare/views/squareRecordings/squareRecordings.html",controller:"SquareRecordingsController as vm"}},resolve:{squareRecordings:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("squareRecording@get",{fields:"createdAt,updatedAt,id,filename,projectName,uniqueid,callerid,extension,audio,savePath,format",sort:"-createdAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SquareRecordings",fields:"createdAt,updatedAt,id,filename,projectName,uniqueid,callerid,extension,audio,savePath,format",sort:"-createdAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadCallySquareRecordings",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1102})}]},authenticate:!0,permissionId:1102,bodyClass:"callysquare"}),n.addPart("app/main/apps/callysquare")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.callysquare",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.callysquare.projects"]).config(e)}(),function(){"use strict";function e(e){e.state("app.callysquare.projects",{url:"/projects",views:{"content@app":{templateUrl:"app/main/apps/callysquare/views/projects/projects.html",controller:"ProjectsController as vm"}},resolve:{projects:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("squareProject@get",{fields:"id,name,description,notes",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SquareProjects",fields:"id,name,description,notes",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1103})}]},authenticate:!0,permissionId:1103,bodyClass:"callysquare"}).state("app.callysquare.projects.edit",{url:"/:id",views:{"content@app":{templateUrl:"app/main/apps/callysquare/views/projects/edit/view.html",controller:"ProjectController as vm"}},params:{crudPermissions:void 0},resolve:{project:["apiResolver","$stateParams",function(e,n){return e.resolve("squareProject@get",{id:n.id})}],users:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,fullname,role",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Users",mergeResources:!0,fields:"id,fullname,role",sort:"name",nolimit:!0})}],trunks:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("trunk@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Trunks",fields:"id,name",sort:"name",nolimit:!0})}],queues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"inbound",fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceQueues",type:"inbound",fields:"id,name",sort:"name",nolimit:!0})}],sounds:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("sound@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Sounds",fields:"id,name",sort:"name",nolimit:!0})}],variables:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("variable@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Variables",fields:"id,name",sort:"name",nolimit:!0})}],databases:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("squareOdbc@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ODBC",fields:"id,name",sort:"name",nolimit:!0})}],projects:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("squareProject@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SquareProjects",fields:"id,name",sort:"name",nolimit:!0})}],contexts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceContext@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Contexts",fields:"id,name",sort:"name",nolimit:!0})}],intervals:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("interval@get",{fields:"id,name,IntervalId",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Intervals",fields:"id,name,IntervalId",sort:"name",nolimit:!0})}],mailAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("mailAccount@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"MailAccounts",fields:"id,name",sort:"name",nolimit:!0})}],templates:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("template@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Templates",fields:"id,name",sort:"name",nolimit:!0})}],lists:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Lists",fields:"id,name",sort:"name",nolimit:!0})}],smsAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("smsAccount@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SmsAccounts",fields:"id,name",sort:"name",nolimit:!0})}],pauses:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("pause@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Pauses",fields:"id,name",sort:"name",nolimit:!0})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1103})}]},authenticate:!0,permissionId:1103,bodyClass:"callysquare"})}e.$inject=["$stateProvider"],angular.module("app.callysquare.projects",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.chat",{abstract:!0,url:"/chat"}).state("app.chat.chatQueues",{url:"/chatQueues",views:{"content@app":{templateUrl:"app/main/apps/chat/views/chatQueues/chatQueues.html",controller:"ChatQueuesController as vm"}},resolve:{chatQueues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("chatQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"chat",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ChatQueues",fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"chat",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:501})}]},authenticate:!0,permissionId:501,bodyClass:"chat"}).state("app.chat.chatQueues.edit",{url:"/:id?tab",params:{chatQueue:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/chat/views/chatQueues/edit/view.html",controller:"ChatQueueController as vm"}},resolve:{chatQueue:["apiResolver","$stateParams",function(e,n){return e.resolve("chatQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:501})}]},authenticate:!0,permissionId:501,bodyClass:"chat"}).state("app.chat.chatWebsites",{url:"/chatWebsites",views:{"content@app":{templateUrl:"app/main/apps/chat/views/chatWebsites/chatWebsites.html",controller:"ChatWebsitesController as vm"}},resolve:{chatWebsites:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("chatWebsite@get",{fields:"createdAt,updatedAt,id,token,agentIdentifier,customerAlias,messageFontSize,name,key,address,remote,ListId,fidelity,timeout,agentAlias,closingQuestion,formSubmitSuccessMessage,formSubmitFailureMessage,color,color_focus,color_button,textColor,backgroundColor,fontSize,header_shape,showAgentAvatar,showCustomerAvatar,alignment,verticalAlignment,messagesAlignment,defaultTitle,animation,defaultWhiteLabel,whiteLabel,defaultLogo,conditionAgreement,autoclose,enableUnmanagedNote,unmanagedMessage,skipUnmanaged,sendUnmanaged,enableCustomerWriting,waitingTitle,waitingMessage,closingMessage,noteTitle,placeholderMessage,skipMessageButton,enableRating,ratingType,ratingStarsNumber,enableFeedback,feedbackTitle,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,enableSendButton,enableCustomerCheckmarks,systemAlias,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,name_title,username_placeholder,email_title,email_placeholder,header_online,hideWhenOffline,header_offline,start_chat_button,offline_chat_button,offlineMessageSubject,offlineMessageBody,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,onlineForm,offlineForm,mapKey,mapKeyOffline,forwardOffline,MailAccountId,openNewInteraction,forwardOfflineAddress,subjectOffline,IntervalId,timezone,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout,vidaooEscalation,vidaooApiKey,vidaooTopic,vidaooNote,vidaooMetadata",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ChatWebsites",fields:"createdAt,updatedAt,id,token,agentIdentifier,customerAlias,messageFontSize,name,key,address,remote,ListId,fidelity,timeout,agentAlias,closingQuestion,formSubmitSuccessMessage,formSubmitFailureMessage,color,color_focus,color_button,textColor,backgroundColor,fontSize,header_shape,showAgentAvatar,showCustomerAvatar,alignment,verticalAlignment,messagesAlignment,defaultTitle,animation,defaultWhiteLabel,whiteLabel,defaultLogo,conditionAgreement,autoclose,enableUnmanagedNote,unmanagedMessage,skipUnmanaged,sendUnmanaged,enableCustomerWriting,waitingTitle,waitingMessage,closingMessage,noteTitle,placeholderMessage,skipMessageButton,enableRating,ratingType,ratingStarsNumber,enableFeedback,feedbackTitle,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,enableSendButton,enableCustomerCheckmarks,systemAlias,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,name_title,username_placeholder,email_title,email_placeholder,header_online,hideWhenOffline,header_offline,start_chat_button,offline_chat_button,offlineMessageSubject,offlineMessageBody,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,onlineForm,offlineForm,mapKey,mapKeyOffline,forwardOffline,MailAccountId,openNewInteraction,forwardOfflineAddress,subjectOffline,IntervalId,timezone,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout,vidaooEscalation,vidaooApiKey,vidaooTopic,vidaooNote,vidaooMetadata",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:502})}]},authenticate:!0,permissionId:502,bodyClass:"chat"}).state("app.chat.chatWebsites.edit",{url:"/:id?tab",params:{chatWebsite:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/chat/views/chatWebsites/edit/view.html",controller:"ChatWebsiteController as vm"}},resolve:{chatWebsite:["apiResolver","$stateParams",function(e,n){return e.resolve("chatWebsite@get",{fields:"createdAt,updatedAt,id,token,agentIdentifier,customerAlias,messageFontSize,name,key,address,remote,ListId,fidelity,timeout,agentAlias,closingQuestion,formSubmitSuccessMessage,formSubmitFailureMessage,color,color_focus,color_button,textColor,backgroundColor,fontSize,header_shape,showAgentAvatar,showCustomerAvatar,alignment,verticalAlignment,messagesAlignment,defaultTitle,animation,defaultWhiteLabel,whiteLabel,defaultLogo,conditionAgreement,autoclose,enableUnmanagedNote,unmanagedMessage,skipUnmanaged,sendUnmanaged,enableCustomerWriting,waitingTitle,waitingMessage,closingMessage,noteTitle,placeholderMessage,skipMessageButton,enableRating,ratingType,ratingStarsNumber,enableFeedback,feedbackTitle,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,enableSendButton,enableCustomerCheckmarks,systemAlias,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,name_title,username_placeholder,email_title,email_placeholder,header_online,hideWhenOffline,header_offline,start_chat_button,offline_chat_button,offlineMessageSubject,offlineMessageBody,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,onlineForm,offlineForm,mapKey,mapKeyOffline,forwardOffline,MailAccountId,openNewInteraction,forwardOfflineAddress,subjectOffline,IntervalId,timezone,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout,vidaooEscalation,vidaooApiKey,vidaooTopic,vidaooNote,vidaooMetadata",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadAttachments,downloadOmnichannelInteractions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:502})}]},authenticate:!0,permissionId:502,bodyClass:"chat"}),n.addPart("app/main/apps/chat")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.chat",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.chat.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.chat.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/chat/views/realtime/realtime.html",controller:"ChatRealtimeController as vm"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:510})}]},authenticate:!0,permissionId:510}).state("app.chat.realtime.agents",{url:"/agents",params:{channel:"chat"},controller:"AgentsRealtimeController as vm",templateUrl:"app/main/apps/realtime/views/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getAgents",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}]},authenticate:!0,permissionId:510}).state("app.chat.realtime.queues",{url:"/queues",controller:"QueuesChatRealtimeController as vm",templateUrl:"app/main/apps/chat/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"ChatQueues":void 0,channel:"chat",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:501})}]},authenticate:!0,permissionId:510})}e.$inject=["$stateProvider"],angular.module("app.chat.realtime",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.contactmanager",{abstract:!0,url:"/contactmanager"}).state("app.contactmanager.lists",{url:"/lists",views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/lists/lists.html",controller:"ListsController as vm"}},resolve:{lists:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"createdAt,updatedAt,id,name,description,dialPrefix",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Lists",fields:"createdAt,updatedAt,id,name,description,dialPrefix",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadContactManagerLists",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:301})}]},authenticate:!0,permissionId:301,bodyClass:"contactmanager"}).state("app.contactmanager.lists.edit",{url:"/:id?tab",params:{list:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/lists/edit/view.html",controller:"ListController as vm"}},resolve:{list:["apiResolver","$stateParams",function(e,n){return e.resolve("cmList@get",{fields:"createdAt,updatedAt,id,name,description,dialPrefix",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:301})}]},authenticate:!0,permissionId:301,bodyClass:"contactmanager"}).state("app.contactmanager.companies",{url:"/companies",views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/companies/companies.html",controller:"CompaniesController as vm"}},resolve:{companies:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmCompany@get",{fields:"createdAt,updatedAt,id,name,phone,vat,fax,companyId,type,website,emailDomain,email,description,sStreet,sPostalCode,sCity,sCountry,street,postalCode,city,country",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Companies",fields:"createdAt,updatedAt,id,name,phone,vat,fax,companyId,type,website,emailDomain,email,description,sStreet,sPostalCode,sCity,sCountry,street,postalCode,city,country",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:302})}]},authenticate:!0,permissionId:302,bodyClass:"contactmanager"}).state("app.contactmanager.companies.edit",{url:"/:id?tab",params:{company:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/companies/edit/view.html",controller:"CompanyController as vm"}},resolve:{company:["apiResolver","$stateParams",function(e,n){return e.resolve("cmCompany@get",{fields:"createdAt,updatedAt,id,name,phone,vat,fax,companyId,type,website,emailDomain,email,description,sStreet,sPostalCode,sCity,sCountry,street,postalCode,city,country",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:302})}]},authenticate:!0,permissionId:302,bodyClass:"contactmanager"}).state("app.contactmanager.globalCustomFields",{url:"/globalCustomFields",views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/globalCustomFields/globalCustomFields.html",controller:"GlobalCustomFieldsController as vm"}},resolve:{globalCustomFields:["apiResolver","Auth",function(e,n){return e.resolve("cmCustomField@get",{fields:"createdAt,updatedAt,id,alias,type,values,required,clickToAction,actionType",sort:"-updatedAt",ListId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:304})}]},authenticate:!0,permissionId:304,bodyClass:"contactmanager"}),n.addPart("app/main/apps/contactmanager")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.contactmanager",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.contactmanager.contacts"]).config(e)}(),function(){"use strict";function e(e){e.state("app.contactmanager.contacts",{url:"/contacts?ListId&CompanyId",views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/contacts/contacts.html",controller:"ContactsController as vm"}},resolve:{contacts:["apiResolver","Auth","$stateParams",function(e,n,t){return n.hasRole("admin")?e.resolve("cmContact@get",_.merge({includeAll:!0,sort:"-updatedAt",limit:10,offset:0},t)):e.resolve("userProfile@getResources",_.merge({id:n.getCurrentUser().userProfileId,section:"Contacts",includeAll:!0,sort:"-updatedAt",limit:10,offset:0},t))}],lists:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Lists",fields:"id,name",sort:"-updatedAt",nolimit:!0})}],listsMap:["lists",function(e){for(var n={},t=0;t<e.rows.length;t++)n[e.rows[t].id]=e.rows[t].name;return n}],companies:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmCompany@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Companies",fields:"id,name",sort:"name",nolimit:!0})}],companiesMap:["companies",function(e){for(var n={},t=0;t<e.rows.length;t++)n[e.rows[t].id]=e.rows[t].name;return n}],tags:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("tag@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Tags",fields:"id,name",sort:"name",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:303})}]},authenticate:!0,permissionId:303,bodyClass:"contactmanager"}).state("app.contactmanager.contacts.edit",{url:"/:id?tab",params:{crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/contacts/edit/view.html",controller:"ContactController as vm"}},resolve:{contact:["apiResolver","$stateParams",function(e,n){return e.resolve("cmContact@get",{id:n.id}).then(function(e){return e.dateOfBirth&&(e.dateOfBirth=new Date(e.dateOfBirth)),e}).catch(function(e){console.error(e)})}],hoppers:["apiResolver","$stateParams",function(e,n){return e.resolve("cmContact@getHoppers",{id:n.id,fields:"id,phone,scheduledat,priority,recallme,VoiceQueueId,CampaignId,UserId",sort:"-updatedAt",limit:10,offset:0})}],finals:["apiResolver","$stateParams",function(e,n){return e.resolve("cmContact@getHopperFinals",{id:n.id,fields:"id,uniqueid,calleridnum,statedesc,starttime,disposition",sort:"-updatedAt",limit:10,offset:0})}],histories:["apiResolver","$stateParams",function(e,n){return e.resolve("cmContact@getHopperHistories",{id:n.id,fields:"id,uniqueid,calleridnum,statedesc,scheduledat,starttime,endtime",sort:"-updatedAt",limit:10,offset:0})}],jscriptySessions:["apiResolver","$stateParams",function(e,n){return e.resolve("cmContact@getJscriptySessions",{id:n.id,fields:"id,starttime,endtime,membername,projectname",sort:"-starttime",limit:10,offset:0})}],companies:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmCompany@get"):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Companies"})}],lists:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"id,name",sort:"-updatedAt",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Lists",fields:"id,name",sort:"-updatedAt",nolimit:!0})}],customFields:["apiResolver","contact",function(e,n){return n.ListId?e.resolve("cmList@getCustomFields",{id:n.ListId}):null}],tags:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("tag@get",{sort:"name"}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Tags"})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:303})}]},authenticate:!0,permissionId:303,bodyClass:"contactmanager"})}e.$inject=["$stateProvider"],angular.module("app.contactmanager.contacts",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.dashboards",{abstract:!0,url:"/dashboards"}),n.addPart("app/main/apps/dashboards")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.dashboards",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.dashboards.general","app.dashboards.custom"]).config(e)}(),function(){"use strict";function e(e){e.state("app.dashboards.custom",{url:"/custom/:id",views:{"content@app":{templateUrl:"app/main/apps/dashboards/views/custom/custom.html",controller:"DashboardCustomController as vm"}},resolve:{voiceQueues:["apiResolver","Auth",function(n,e){var a;return(e.hasRole("admin")?n.resolve("voiceQueue@get",{fields:"id,name",nolimit:!0}):n.resolve("userProfile@getResources",{id:e.getCurrentUser().userProfileId,section:"VoiceQueues",mergeResources:!0,fields:"id,name",channel:"voice",nolimit:!0})).then(function(e){return a=e,n.resolve("rpc@getVoiceQueues")}).then(function(e){if(e)for(var n,t=0;t<e.rows.length;t+=1)(n=_.find(a.rows,{id:e.rows[t].id}))&&_.merge(n,_.pick(e.rows[t],["waiting","total","talking","answered","unmanaged","abandoned"]));return a})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:100})}]},authenticate:!0,bodyClass:"dashboards"})}e.$inject=["$stateProvider"],angular.module("app.dashboards.custom",[]).config(e)}(),function(){"use strict";function e(e){e.state("app.dashboards.general",{url:"/general",views:{"content@app":{templateProvider:["$stateParams","$templateFactory","Auth",function(e,n,t){return t.isAgent()?n.fromUrl("app/main/apps/dashboards/views/general/agent/agent.general.html",e):n.fromUrl("app/main/apps/dashboards/views/general/user/user.general.html",e)}],controllerProvider:["Auth",function(e){return e.isAgent()?"AgentDashboardGeneralController as vm":"UserDashboardGeneralController as vm"}]}},resolve:{globalUserLists:["apiResolver","Auth",function(e,n){return e.resolve("user@getLists",{id:n.getCurrentUser().id,sort:"name",nolimit:!0})}],globalLists:["apiResolver",function(e){return e.resolve("cmList@get",{sort:"name",nolimit:!0})}],globalTags:["apiResolver",function(e){return e.resolve("tag@get",{sort:"name",nolimit:!0})}],globalCompanies:["apiResolver",function(e){return e.resolve("cmCompany@get",{sort:"name",nolimit:!0})}]},authenticate:!0,bodyClass:"dashboards"})}e.$inject=["$stateProvider"],angular.module("app.dashboards.general",["ngMaterialDateRangePicker","app.dashboards.general.user"]).config(e)}(),function(){"use strict";function e(e){e.state("app.dashboards.general.voice",{url:"/voice",data:{selectedTab:0},views:{voice:{templateUrl:"app/main/apps/dashboards/views/general/user/voice/user.general.voice.html",controller:"UserVoiceDashboardGeneralController as vm"}},resolve:{rpcQueues:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueues")}],inboundQueues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{fields:"id,name",type:"inbound",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceQueues",fields:"id,name",type:"inbound",channel:"voice",nolimit:!0})}],outbound:["apiResolver",function(e){return e.resolve("rpc@getOutbound")}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.dialer",{url:"/dialer",data:{selectedTab:1},views:{dialer:{templateUrl:"app/main/apps/dashboards/views/general/user/dialer/user.general.dialer.html",controller:"UserVoiceDashboardDialerController as vm"}},resolve:{rpcQueues:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueues")}],outboundQueues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{fields:"id,name",type:"outbound",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"QueueCampaigns",fields:"id,name",type:"outbound",channel:"voice",nolimit:!0})}],rpcCampaigns:["apiResolver",function(e){return e.resolve("rpc@getCampaigns")}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.chat",{url:"/chat",data:{selectedTab:2},views:{chat:{templateUrl:"app/main/apps/dashboards/views/general/user/chat/user.general.chat.html",controller:"UserChatDashboardGeneralController as vm"}},resolve:{chatInteractions:["apiResolver",function(e){return e.resolve("chatInteraction@get",{createdAt:{$gte:moment().startOf("day").utcOffset(0,!0).format(),$lte:moment().endOf("day").utcOffset(0,!0).format()},nolimit:!0})}],chatWebsites:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("chatWebsite@get",{fields:"createdAt,updatedAt,id,token,agentIdentifier,customerAlias,messageFontSize,name,key,address,remote,ListId,fidelity,timeout,agentAlias,closingQuestion,formSubmitSuccessMessage,formSubmitFailureMessage,color,color_focus,color_button,textColor,backgroundColor,fontSize,header_shape,showAgentAvatar,showCustomerAvatar,alignment,verticalAlignment,messagesAlignment,defaultTitle,animation,defaultWhiteLabel,whiteLabel,defaultLogo,conditionAgreement,autoclose,enableUnmanagedNote,unmanagedMessage,skipUnmanaged,sendUnmanaged,enableCustomerWriting,waitingTitle,waitingMessage,closingMessage,noteTitle,placeholderMessage,skipMessageButton,enableRating,ratingType,ratingStarsNumber,enableFeedback,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,systemAlias,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,name_title,username_placeholder,email_title,email_placeholder,header_online,hideWhenOffline,header_offline,start_chat_button,offline_chat_button,offlineMessageSubject,offlineMessageBody,header_offline,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl,onlineForm,offlineForm,mapKey,mapKeyOffline,forwardTranscript,forwardOffline,forwardOfflineAddress,IntervalId,timezone,waitForTheAssignedAgent,description,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ChatWebsites",fields:"createdAt,updatedAt,id,token,agentIdentifier,customerAlias,messageFontSize,name,key,address,remote,ListId,fidelity,timeout,agentAlias,closingQuestion,formSubmitSuccessMessage,formSubmitFailureMessage,color,color_focus,color_button,textColor,backgroundColor,fontSize,header_shape,showAgentAvatar,showCustomerAvatar,alignment,verticalAlignment,messagesAlignment,defaultTitle,animation,defaultWhiteLabel,whiteLabel,defaultLogo,conditionAgreement,autoclose,enableUnmanagedNote,unmanagedMessage,skipUnmanaged,sendUnmanaged,enableCustomerWriting,waitingTitle,waitingMessage,closingMessage,noteTitle,placeholderMessage,skipMessageButton,enableRating,ratingType,ratingStarsNumber,enableFeedback,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,systemAlias,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,name_title,username_placeholder,email_title,email_placeholder,header_online,hideWhenOffline,header_offline,start_chat_button,offline_chat_button,offlineMessageSubject,offlineMessageBody,header_offline,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl,onlineForm,offlineForm,mapKey,mapKeyOffline,forwardTranscript,forwardOffline,forwardOfflineAddress,IntervalId,timezone,waitForTheAssignedAgent,description,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.mail",{url:"/mail",data:{selectedTab:3},views:{mail:{templateUrl:"app/main/apps/dashboards/views/general/user/mail/user.general.mail.html",controller:"UserMailDashboardGeneralController as vm"}},resolve:{mailInteractions:["apiResolver",function(e){return e.resolve("mailInteraction@get",{createdAt:{$gte:moment().startOf("day").utcOffset(0,!0).format(),$lte:moment().endOf("day").utcOffset(0,!0).format()},nolimit:!0})}],mailAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("mailAccount@get",{fields:"createdAt,updatedAt,id,name,key,email,ListId,active,cservice,Imap.service,Imap.host,Imap.port,Imap.tls,Imap.authentication,Imap.user,Imap.password,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,cauthentication,cuser,cpassword,fontFamily,fontSize,template,markAsUnread,waitForTheAssignedAgent,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"MailAccounts",fields:"createdAt,updatedAt,id,name,key,email,ListId,active,cservice,Imap.service,Imap.host,Imap.port,Imap.tls,Imap.authentication,Imap.user,Imap.password,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,cauthentication,cuser,cpassword,fontFamily,fontSize,template,markAsUnread,waitForTheAssignedAgent,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.sms",{url:"/sms",data:{selectedTab:4},views:{sms:{templateUrl:"app/main/apps/dashboards/views/general/user/sms/user.general.sms.html",controller:"UserSmsDashboardGeneralController as vm"}},resolve:{smsInteractions:["apiResolver",function(e){return e.resolve("smsInteraction@get",{createdAt:{$gte:moment().startOf("day").utcOffset(0,!0).format(),$lte:moment().endOf("day").utcOffset(0,!0).format()},nolimit:!0})}],smsAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("smsAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,phone,type,accountSid,authId,authToken,smsMethod,applicationId,accountId,username,password,senderString,deliveryReport,waitForTheAssignedAgent,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SmsAccounts",fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,phone,type,accountSid,authId,authToken,smsMethod,applicationId,accountId,username,password,senderString,deliveryReport,waitForTheAssignedAgent,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.openchannel",{url:"/openchannel",data:{selectedTab:5},views:{openchannel:{templateUrl:"app/main/apps/dashboards/views/general/user/openchannel/user.general.openchannel.html",controller:"UserOpenchannelDashboardGeneralController as vm"}},resolve:{openchannelInteractions:["apiResolver",function(e){return e.resolve("openchannelInteraction@get",{createdAt:{$gte:moment().startOf("day").utcOffset(0,!0).format(),$lte:moment().endOf("day").utcOffset(0,!0).format()},nolimit:!0})}],openchannelAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("openchannelAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,description,receiveUri,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"OpenchannelAccounts",fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,description,receiveUri,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",nolimit:!0})}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.fax",{url:"/fax",data:{selectedTab:6},views:{fax:{templateUrl:"app/main/apps/dashboards/views/general/user/fax/user.general.fax.html",controller:"UserFaxDashboardGeneralController as vm"}},resolve:{faxInteractions:["apiResolver",function(e){return e.resolve("faxInteraction@get",{createdAt:{$gte:moment().startOf("day").utcOffset(0,!0).format(),$lte:moment().endOf("day").utcOffset(0,!0).format()},nolimit:!0})}],faxAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("faxAccount@get",{fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"FaxAccounts",fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.whatsapp",{url:"/whatsapp",data:{selectedTab:7},views:{whatsapp:{templateUrl:"app/main/apps/dashboards/views/general/user/whatsapp/user.general.whatsapp.html",controller:"UserWhatsappDashboardGeneralController as vm"}},resolve:{whatsappInteractions:["apiResolver",function(e){return e.resolve("whatsappInteraction@get",{createdAt:{$gte:moment().startOf("day").utcOffset(0,!0).format(),$lte:moment().endOf("day").utcOffset(0,!0).format()},nolimit:!0})}],whatsappAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("whatsappAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,phone,type,accountSid,authId,authToken,whatsappMethod,username,password,senderString,deliveryReport,waitForTheAssignedAgent,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"WhatsappAccounts",fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,phone,type,accountSid,authId,authToken,whatsappMethod,username,password,senderString,deliveryReport,waitForTheAssignedAgent,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,bodyClass:"dashboards"})}e.$inject=["$stateProvider"],angular.module("app.dashboards.general.user",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.fax",{abstract:!0,url:"/fax"}).state("app.fax.faxQueues",{url:"/faxQueues",views:{"content@app":{templateUrl:"app/main/apps/fax/views/faxQueues/faxQueues.html",controller:"FaxQueuesController as vm"}},resolve:{faxQueues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("faxQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"fax",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"FaxQueues",fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"fax",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:901})}]},authenticate:!0,permissionId:901,bodyClass:"fax"}).state("app.fax.faxQueues.edit",{url:"/:id?tab",params:{faxQueue:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/fax/views/faxQueues/edit/view.html",controller:"FaxQueueController as vm"}},resolve:{faxQueue:["apiResolver","$stateParams",function(e,n){return e.resolve("faxQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:901})}]},authenticate:!0,permissionId:901,bodyClass:"fax"}).state("app.fax.faxAccounts",{url:"/faxAccounts",views:{"content@app":{templateUrl:"app/main/apps/fax/views/faxAccounts/faxAccounts.html",controller:"FaxAccountsController as vm"}},resolve:{faxAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("faxAccount@get",{fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"FaxAccounts",fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:902})}]},authenticate:!0,permissionId:902,bodyClass:"fax"}).state("app.fax.faxAccounts.edit",{url:"/:id?tab",params:{faxAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/fax/views/faxAccounts/edit/view.html",controller:"FaxAccountController as vm"}},resolve:{faxAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("faxAccount@get",{fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadOmnichannelInteractions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:902})}]},authenticate:!0,permissionId:902,bodyClass:"fax"}),n.addPart("app/main/apps/fax")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.fax",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.fax.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.fax.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/fax/views/realtime/realtime.html",controller:"FaxRealtimeController as vm"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:910})}]},authenticate:!0,permissionId:910}).state("app.fax.realtime.agents",{url:"/agents",params:{channel:"fax"},controller:"AgentsRealtimeController as vm",templateUrl:"app/main/apps/realtime/views/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getAgents",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}]},authenticate:!0,permissionId:910}).state("app.fax.realtime.trunks",{url:"/trunks",controller:"TrunksFaxRealtimeController as vm",templateUrl:"app/main/apps/fax/views/realtime/trunks/view.html",resolve:{trunks:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("trunk@get",{fields:"id,name",active:!0,sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Trunks",fields:"id,name",active:!0,sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1011})}],rpcTrunks:["apiResolver",function(e){return e.resolve("rpc@getTrunks")}]},authenticate:!0,permissionId:910}).state("app.fax.realtime.queues",{url:"/queues",controller:"QueuesFaxRealtimeController as vm",templateUrl:"app/main/apps/fax/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"FaxQueues":void 0,channel:"fax",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:901})}]},authenticate:!0,permissionId:910}).state("app.fax.realtime.accounts",{url:"/accounts",controller:"FaxAccountsRealtimeController as vm",templateUrl:"app/main/apps/fax/views/realtime/accounts/view.html",resolve:{faxAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("faxAccount@get",{sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"FaxAccounts",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:902})}],rpcFaxAccounts:["apiResolver",function(e){return e.resolve("rpc@getFaxAccounts")}]},authenticate:!0,permissionId:910})}e.$inject=["$stateProvider"],angular.module("app.fax.realtime",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.help",{abstract:!0,url:"/help"}),n.addPart("app/main/apps/help")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.help",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.help.about"]).config(e)}(),function(){"use strict";function e(e){e.state("app.help.about",{url:"/about",views:{"content@app":{templateUrl:"app/main/apps/help/views/about/about.html",controller:"AboutController as vm"}},resolve:{info:["apiResolver",function(e){return e.resolve("version@get")}]},authenticate:!0,permissionId:1600,bodyClass:"help"})}e.$inject=["$stateProvider"],angular.module("app.help.about",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.integrations",{abstract:!0,url:"/integrations"}).state("app.integrations.zendeskAccounts",{url:"/zendeskAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/zendeskAccounts/zendeskAccounts.html",controller:"ZendeskAccountsController as vm"}},resolve:{zendeskAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intZendeskAccount@get",{fields:"createdAt,updatedAt,id,name,type,username,remoteUri,authType,password,token,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ZendeskAccounts",fields:"createdAt,updatedAt,id,name,type,username,remoteUri,authType,password,token,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1301})}]},authenticate:!0,permissionId:1301,bodyClass:"integrations"}).state("app.integrations.zendeskAccounts.edit",{url:"/:id?tab",params:{zendeskAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/view.html",controller:"ZendeskAccountController as vm"}},resolve:{zendeskAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("intZendeskAccount@get",{fields:"createdAt,updatedAt,id,name,type,username,remoteUri,authType,password,token,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1301})}]},authenticate:!0,permissionId:1301,bodyClass:"integrations"}).state("app.integrations.salesforceAccounts",{url:"/salesforceAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/salesforceAccounts/salesforceAccounts.html",controller:"SalesforceAccountsController as vm"}},resolve:{salesforceAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intSalesforceAccount@get",{fields:"createdAt,updatedAt,id,name,type,username,remoteUri,password,clientId,clientSecret,securityToken,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SalesforceAccounts",fields:"createdAt,updatedAt,id,name,type,username,remoteUri,password,clientId,clientSecret,securityToken,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1302})}]},authenticate:!0,permissionId:1302,bodyClass:"integrations"}).state("app.integrations.salesforceAccounts.edit",{url:"/:id?tab",params:{salesforceAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/view.html",controller:"SalesforceAccountController as vm"}},resolve:{salesforceAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("intSalesforceAccount@get",{fields:"createdAt,updatedAt,id,name,type,username,remoteUri,password,clientId,clientSecret,securityToken,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1302})}]},authenticate:!0,permissionId:1302,bodyClass:"integrations"}).state("app.integrations.freshdeskAccounts",{url:"/freshdeskAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/freshdeskAccounts.html",controller:"FreshdeskAccountsController as vm"}},resolve:{freshdeskAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intFreshdeskAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"FreshdeskAccounts",fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1303})}]},authenticate:!0,permissionId:1303,bodyClass:"integrations"}).state("app.integrations.freshdeskAccounts.edit",{url:"/:id?tab",params:{freshdeskAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/view.html",controller:"FreshdeskAccountController as vm"}},resolve:{freshdeskAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("intFreshdeskAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1303})}]},authenticate:!0,permissionId:1303,bodyClass:"integrations"}).state("app.integrations.sugarcrmAccounts",{url:"/sugarcrmAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/sugarcrmAccounts.html",controller:"SugarcrmAccountsController as vm"}},resolve:{sugarcrmAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intSugarcrmAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,password,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SugarcrmAccounts",fields:"createdAt,updatedAt,id,name,username,remoteUri,password,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1305})}]},authenticate:!0,permissionId:1305,bodyClass:"integrations"}).state("app.integrations.sugarcrmAccounts.edit",{url:"/:id?tab",params:{sugarcrmAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/view.html",controller:"SugarcrmAccountController as vm"}},resolve:{sugarcrmAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("intSugarcrmAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,password,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1305})}]},authenticate:!0,permissionId:1305,bodyClass:"integrations"}).state("app.integrations.deskAccounts",{url:"/deskAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/deskAccounts/deskAccounts.html",controller:"DeskAccountsController as vm"}},resolve:{deskAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intDeskAccount@get",{fields:"createdAt,updatedAt,id,name,type,remoteUri,authType,username,password,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"DeskAccounts",fields:"createdAt,updatedAt,id,name,type,remoteUri,authType,username,password,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1306})}]},authenticate:!0,permissionId:1306,bodyClass:"integrations"}).state("app.integrations.deskAccounts.edit",{url:"/:id?tab",params:{deskAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/view.html",controller:"DeskAccountController as vm"}},resolve:{deskAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("intDeskAccount@get",{fields:"createdAt,updatedAt,id,name,type,remoteUri,authType,username,password,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1306})}]},authenticate:!0,permissionId:1306,bodyClass:"integrations"}).state("app.integrations.zohoAccounts",{url:"/zohoAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/zohoAccounts/zohoAccounts.html",controller:"ZohoAccountsController as vm"}},resolve:{zohoAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intZohoAccount@get",{fields:"createdAt,updatedAt,id,name,host,zone,clientId,clientSecret,code,refreshToken,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ZohoAccounts",fields:"createdAt,updatedAt,id,name,host,zone,clientId,clientSecret,code,refreshToken,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1307})}]},authenticate:!0,permissionId:1307,bodyClass:"integrations"}).state("app.integrations.zohoAccounts.edit",{url:"/:id?tab",params:{zohoAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/zohoAccounts/edit/view.html",controller:"ZohoAccountController as vm"}},resolve:{zohoAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("intZohoAccount@get",{fields:"createdAt,updatedAt,id,name,host,zone,clientId,clientSecret,code,refreshToken,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1307})}]},authenticate:!0,permissionId:1307,bodyClass:"integrations"}).state("app.integrations.vtigerAccounts",{url:"/vtigerAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/vtigerAccounts/vtigerAccounts.html",controller:"VtigerAccountsController as vm"}},resolve:{vtigerAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intVtigerAccount@get",{fields:"createdAt,updatedAt,id,name,description,username,accessKey,remoteUri,serverUrl",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VtigerAccounts",fields:"createdAt,updatedAt,id,name,description,username,accessKey,remoteUri,serverUrl",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1308})}]},authenticate:!0,permissionId:1308,bodyClass:"integrations"}).state("app.integrations.vtigerAccounts.edit",{url:"/:id?tab",params:{vtigerAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/vtigerAccounts/edit/view.html",controller:"VtigerAccountController as vm"}},resolve:{vtigerAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("intVtigerAccount@get",{fields:"createdAt,updatedAt,id,name,description,username,accessKey,remoteUri,serverUrl",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1308})}]},authenticate:!0,permissionId:1308,bodyClass:"integrations"}).state("app.integrations.dynamics365Accounts",{url:"/dynamics365Accounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/dynamics365Accounts.html",controller:"Dynamics365AccountsController as vm"}},resolve:{dynamics365Accounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intDynamics365Account@get",{fields:"createdAt,updatedAt,id,name,username,password,remoteUri,tenantId,clientId,clientSecret,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Dynamics365Accounts",fields:"createdAt,updatedAt,id,name,username,password,remoteUri,tenantId,clientId,clientSecret,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1309})}]},authenticate:!0,permissionId:1309,bodyClass:"integrations"}).state("app.integrations.dynamics365Accounts.edit",{url:"/:id?tab",params:{dynamics365Account:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/edit/view.html",controller:"Dynamics365AccountController as vm"}},resolve:{dynamics365Account:["apiResolver","$stateParams",function(e,n){return e.resolve("intDynamics365Account@get",{fields:"createdAt,updatedAt,id,name,username,password,remoteUri,tenantId,clientId,clientSecret,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1309})}]},authenticate:!0,permissionId:1309,bodyClass:"integrations"}).state("app.integrations.servicenowAccounts",{url:"/servicenowAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/servicenowAccounts/servicenowAccounts.html",controller:"ServicenowAccountsController as vm"}},resolve:{servicenowAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intServicenowAccount@get",{fields:"createdAt,updatedAt,id,name,username,password,email,remoteUri,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ServicenowAccounts",fields:"createdAt,updatedAt,id,name,username,password,email,remoteUri,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1310})}]},authenticate:!0,permissionId:1310,bodyClass:"integrations"}).state("app.integrations.servicenowAccounts.edit",{url:"/:id?tab",params:{servicenowAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/servicenowAccounts/edit/view.html",controller:"ServicenowAccountController as vm"}},resolve:{servicenowAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("intServicenowAccount@get",{fields:"createdAt,updatedAt,id,name,username,password,email,remoteUri,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1310})}]},authenticate:!0,permissionId:1310,bodyClass:"integrations"}).state("app.integrations.freshsalesAccounts",{url:"/freshsalesAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/freshsalesAccounts.html",controller:"FreshsalesAccountsController as vm"}},resolve:{freshsalesAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intFreshsalesAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"FreshsalesAccounts",fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1304})}]},authenticate:!0,permissionId:1304,bodyClass:"integrations"}).state("app.integrations.freshsalesAccounts.edit",{url:"/:id?tab",params:{freshsalesAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/edit/view.html",controller:"FreshsalesAccountController as vm"}},resolve:{freshsalesAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("intFreshsalesAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1304})}]},authenticate:!0,permissionId:1304,bodyClass:"integrations"}),n.addPart("app/main/apps/integrations")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.integrations",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter"]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.jscripty",{abstract:!0,url:"/jscripty"}).state("app.jscripty.projects",{url:"/projects",views:{"content@app":{templateUrl:"app/main/apps/jscripty/views/projects/projects.html",controller:"JscriptyProjectsController as vm"}},resolve:{projects:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("jscriptyProject@get",{fields:"createdAt,updatedAt,id,name,enableUncompleteSave,sendUnpauseOnSubmit,description,formData",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Projects",fields:"createdAt,updatedAt,id,name,enableUncompleteSave,sendUnpauseOnSubmit,description,formData",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadJscriptySessions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1701})}]},authenticate:!0,permissionId:1701,bodyClass:"jscripty"}).state("app.jscripty.projects.edit",{url:"/:id?tab",params:{project:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/jscripty/views/projects/edit/view.html",controller:"JscriptyProjectController as vm"}},resolve:{project:["apiResolver","$stateParams",function(e,n){return e.resolve("jscriptyProject@get",{fields:"createdAt,updatedAt,id,name,enableUncompleteSave,sendUnpauseOnSubmit,description,formData",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadJscriptySessions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1701})}]},authenticate:!0,permissionId:1701,bodyClass:"jscripty"}),n.addPart("app/main/apps/jscripty")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.jscripty",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter"]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.mail",{abstract:!0,url:"/mail"}).state("app.mail.mailQueues",{url:"/mailQueues",views:{"content@app":{templateUrl:"app/main/apps/mail/views/mailQueues/mailQueues.html",controller:"MailQueuesController as vm"}},resolve:{mailQueues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("mailQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"mail",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"MailQueues",fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"mail",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:601})}]},authenticate:!0,permissionId:601,bodyClass:"mail"}).state("app.mail.mailQueues.edit",{url:"/:id?tab",params:{mailQueue:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/mail/views/mailQueues/edit/view.html",controller:"MailQueueController as vm"}},resolve:{mailQueue:["apiResolver","$stateParams",function(e,n){return e.resolve("mailQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:601})}]},authenticate:!0,permissionId:601,bodyClass:"mail"}).state("app.mail.mailAccounts",{url:"/mailAccounts",views:{"content@app":{templateUrl:"app/main/apps/mail/views/mailAccounts/mailAccounts.html",controller:"MailAccountsController as vm"}},resolve:{mailAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("mailAccount@get",{fields:"createdAt,updatedAt,id,name,key,email,ListId,active,cservice,Imap.service,Imap.host,Imap.port,Imap.tls,Imap.authentication,Imap.user,Imap.password,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,cauthentication,cuser,cpassword,fontFamily,fontSize,template,markAsUnread,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"MailAccounts",fields:"createdAt,updatedAt,id,name,key,email,ListId,active,cservice,Imap.service,Imap.host,Imap.port,Imap.tls,Imap.authentication,Imap.user,Imap.password,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,cauthentication,cuser,cpassword,fontFamily,fontSize,template,markAsUnread,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:602})}]},authenticate:!0,permissionId:602,bodyClass:"mail"}).state("app.mail.mailAccounts.edit",{url:"/:id?tab",params:{mailAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/mail/views/mailAccounts/edit/view.html",controller:"MailAccountController as vm"}},resolve:{mailAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("mailAccount@get",{fields:"createdAt,updatedAt,id,name,key,email,ListId,active,cservice,Imap.service,Imap.host,Imap.port,Imap.tls,Imap.authentication,Imap.user,Imap.password,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,cauthentication,cuser,cpassword,fontFamily,fontSize,template,markAsUnread,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadAttachments,downloadOmnichannelInteractions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:602})}]},authenticate:!0,permissionId:602,bodyClass:"mail"}).state("app.mail.mailSubtatuses",{url:"/mailSubtatuses",views:{"content@app":{templateUrl:"app/main/apps/mail/views/mailSubtatuses/mailSubtatuses.html",controller:"MailSubstatusesController as vm"}},resolve:{mailSubtatuses:["apiResolver","Auth",function(e,n){return e.resolve("mailSubstatus@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:603})}]},authenticate:!0,permissionId:603,bodyClass:"mail"}),n.addPart("app/main/apps/mail")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.mail",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.mail.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.mail.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/mail/views/realtime/realtime.html",controller:"MailRealtimeController as vm"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:610})}]},authenticate:!0,permissionId:610}).state("app.mail.realtime.agents",{url:"/agents",params:{channel:"mail"},controller:"AgentsRealtimeController as vm",templateUrl:"app/main/apps/realtime/views/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getAgents",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}]},authenticate:!0,permissionId:610}).state("app.mail.realtime.queues",{url:"/queues",controller:"QueuesMailRealtimeController as vm",templateUrl:"app/main/apps/mail/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"MailQueues":void 0,channel:"mail",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:601})}]},authenticate:!0,permissionId:610}).state("app.mail.realtime.accounts",{url:"/accounts",controller:"MailAccountsRealtimeController as vm",templateUrl:"app/main/apps/mail/views/realtime/accounts/view.html",resolve:{mailAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("mailAccount@get",{sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"MailAccounts",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:602})}],rpcMailAccounts:["apiResolver",function(e){return e.resolve("rpc@getMailAccounts")}]},authenticate:!0,permissionId:610})}e.$inject=["$stateProvider"],angular.module("app.mail.realtime",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.marketplace",{abstract:!0,url:"/marketplace"}).state("app.marketplace.plugins",{url:"/plugins",views:{"content@app":{templateUrl:"app/main/apps/marketplace/views/plugins/plugins.html",controller:"MarketplacePluginsController as vm"}},resolve:{plugins:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("plugin@get",{fields:"createdAt,updatedAt,id,name,type,active,description,icon,sidebar,path,adminUrl,agentUrl,scriptName,scriptPath,version",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Plugins",fields:"createdAt,updatedAt,id,name,type,active,description,icon,sidebar,path,adminUrl,agentUrl,scriptName,scriptPath,version",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1801})}]},authenticate:!0,permissionId:1801,bodyClass:"marketplace"}).state("app.marketplace.plugins.edit",{url:"/:id?tab",params:{plugin:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/marketplace/views/plugins/edit/view.html",controller:"MarketplacePluginController as vm"}},resolve:{plugin:["apiResolver","$stateParams",function(e,n){return e.resolve("plugin@get",{fields:"createdAt,updatedAt,id,name,type,active,description,icon,sidebar,path,adminUrl,agentUrl,scriptName,scriptPath,version",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1801})}]},authenticate:!0,permissionId:1801,bodyClass:"marketplace"}),n.addPart("app/main/apps/marketplace")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.marketplace",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter"]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.motiondialer",{abstract:!0,url:"/motiondialer"}).state("app.motiondialer.queueCampaigns",{url:"/queueCampaigns",views:{"content@app":{templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/queueCampaigns.html",controller:"QueueCampaignsController as vm"}},resolve:{queueCampaigns:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{fields:"createdAt,updatedAt,id,name,dialActive,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,dialOrderByScheduledAt,dialRecallMeTimeout,dialRecallInQueue,dialGlobalInterval,dialTimezone,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength,dialMethod,dialPowerLevel,dialPredictiveOptimization,dialPredictiveOptimizationPercentage,dialPredictiveInterval,dialLimitQueue,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialPrefix,dialQueueOptions,dialQueueTimeout,strategy,timeout,retry,wrapuptime,weight,musiconhold,dialQueueProject,dialQueueProject2,dialAgiAfterHangupAgent,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,description,mandatoryDisposition,mandatoryDispositionPauseId,dialPredictiveIntervalMaxThreshold,dialPredictiveIntervalMinThreshold,dialPreviewAutoRecallMe",type:"outbound",sort:"-updatedAt",channel:"voice",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"QueueCampaigns",fields:"createdAt,updatedAt,id,name,dialActive,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,dialOrderByScheduledAt,dialRecallMeTimeout,dialRecallInQueue,dialGlobalInterval,dialTimezone,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength,dialMethod,dialPowerLevel,dialPredictiveOptimization,dialPredictiveOptimizationPercentage,dialPredictiveInterval,dialLimitQueue,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialPrefix,dialQueueOptions,dialQueueTimeout,strategy,timeout,retry,wrapuptime,weight,musiconhold,dialQueueProject,dialQueueProject2,dialAgiAfterHangupAgent,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,description,mandatoryDisposition,mandatoryDispositionPauseId,dialPredictiveIntervalMaxThreshold,dialPredictiveIntervalMinThreshold,dialPreviewAutoRecallMe",type:"outbound",sort:"-updatedAt",channel:"voice",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1501})}]},authenticate:!0,permissionId:1501,bodyClass:"motiondialer"}).state("app.motiondialer.queueCampaigns.edit",{url:"/:id?tab",params:{queueCampaign:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/view.html",controller:"QueueCampaignController as vm"}},resolve:{queueCampaign:["apiResolver","$stateParams",function(e,n){return e.resolve("voiceQueue@get",{fields:"createdAt,updatedAt,id,name,dialActive,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,dialOrderByScheduledAt,dialRecallMeTimeout,dialRecallInQueue,dialGlobalInterval,dialTimezone,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength,dialMethod,dialPowerLevel,dialPredictiveOptimization,dialPredictiveOptimizationPercentage,dialPredictiveInterval,dialLimitQueue,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialPrefix,dialQueueOptions,dialQueueTimeout,strategy,timeout,retry,wrapuptime,weight,musiconhold,dialQueueProject,dialQueueProject2,dialAgiAfterHangupAgent,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,description,mandatoryDisposition,mandatoryDispositionPauseId,dialPredictiveIntervalMaxThreshold,dialPredictiveIntervalMinThreshold,dialPreviewAutoRecallMe",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1501})}]},authenticate:!0,permissionId:1501,bodyClass:"motiondialer"}).state("app.motiondialer.ivrCampaigns",{url:"/ivrCampaigns",views:{"content@app":{templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/ivrCampaigns.html",controller:"IvrCampaignsController as vm"}},resolve:{ivrCampaigns:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("campaign@get",{fields:"createdAt,updatedAt,id,name,active,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,SquareProjectId,limitCalls,description,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,dialOrderByScheduledAt,dialGlobalInterval,dialTimezone,dialPrefix,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength",type:"ivr",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"IvrCampaigns",fields:"createdAt,updatedAt,id,name,active,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,SquareProjectId,limitCalls,description,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,dialOrderByScheduledAt,dialGlobalInterval,dialTimezone,dialPrefix,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength",type:"ivr",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1502})}]},authenticate:!0,permissionId:1502,bodyClass:"motiondialer"}).state("app.motiondialer.ivrCampaigns.edit",{url:"/:id?tab",params:{ivrCampaign:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/view.html",controller:"IvrCampaignController as vm"}},resolve:{ivrCampaign:["apiResolver","$stateParams",function(e,n){return e.resolve("campaign@get",{fields:"createdAt,updatedAt,id,name,active,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,SquareProjectId,limitCalls,description,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,dialOrderByScheduledAt,dialGlobalInterval,dialTimezone,dialPrefix,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1502})}]},authenticate:!0,permissionId:1502,bodyClass:"motiondialer"}),n.addPart("app/main/apps/motiondialer")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.motiondialer",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.motiondialer.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.motiondialer.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/motiondialer/views/realtime/realtime.html",controller:"MotionDialerRealtimeController as vm"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1510})}]},authenticate:!0,permissionId:1510}).state("app.motiondialer.realtime.agents",{url:"/agents",params:{channel:"voice",direction:"outbound"},controller:"AgentsRealtimeController as vm",templateUrl:"app/main/apps/realtime/views/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getAgents",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}]},authenticate:!0,permissionId:1510}).state("app.motiondialer.realtime.queues",{url:"/queues",controller:"QueuesMotionDialerRealtimeController as vm",templateUrl:"app/main/apps/motiondialer/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"QueueCampaigns":void 0,channel:"voice",type:"outbound",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1501})}]},authenticate:!0,permissionId:1510}).state("app.motiondialer.realtime.queue_calls",{url:"/queue_calls",controller:"QueueCallsMotionDialerRealtimeController as vm",templateUrl:"app/main/apps/motiondialer/views/realtime/queue_calls/view.html",resolve:{agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,role,context",role:"agent",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,role,context",role:"agent",nolimit:!0})}],queues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"outbound",sort:"-updatedAt",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"QueueCampaigns",channel:"voice",type:"outbound",sort:"-updatedAt",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1501})}],rpcVoiceQueuesChannels:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueuesChannels")}]},authenticate:!0,permissionId:1510}).state("app.motiondialer.realtime.abandonedcalls",{url:"/abandonedcalls",controller:"AbandonedCallsMotionDialerRealtimeController as vm",templateUrl:"app/main/apps/motiondialer/views/realtime/abandonedcalls/view.html",resolve:{agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,role,context",role:"agent",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,role,context",role:"agent",nolimit:!0})}],queues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"outbound",sort:"-updatedAt",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"QueueCampaigns",channel:"voice",type:"outbound",sort:"-updatedAt",nolimit:!0})}],dispositions:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("disposition@get",{fields:"createdAt,updatedAt,id,name,level,ParentId",sort:"name",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Dispositions",fields:"createdAt,updatedAt,id,name",sort:"name",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1501})}]},authenticate:!0,permissionId:1510}).state("app.motiondialer.realtime.queue_params",{url:"/queue_params",controller:"QueueParamsMotionDialerRealtimeController as vm",templateUrl:"app/main/apps/motiondialer/views/realtime/queue_params/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"outbound",fields:"id,name",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"QueueCampaigns",channel:"voice",type:"outbound",sort:"-updatedAt",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1501})}],rpcQueues:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueues")}]},authenticate:!0,permissionId:1510}).state("app.motiondialer.realtime.ivr_campaigns",{url:"/ivr_campaigns",controller:"IvrCampaignsMotionDialerRealtimeController as vm",templateUrl:"app/main/apps/motiondialer/views/realtime/ivr_campaigns/view.html",resolve:{campaigns:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("campaign@get",{sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"IvrCampaigns",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1502})}],rpcCampaigns:["apiResolver",function(e){return e.resolve("rpc@getCampaigns")}]},authenticate:!0,permissionId:1510})}e.$inject=["$stateProvider"],angular.module("app.motiondialer.realtime",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.openchannel",{abstract:!0,url:"/openchannel"}).state("app.openchannel.openchannelQueues",{url:"/openchannelQueues",views:{"content@app":{templateUrl:"app/main/apps/openchannel/views/openchannelQueues/openchannelQueues.html",controller:"OpenchannelQueuesController as vm"}},resolve:{openchannelQueues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("openchannelQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"openchannel",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"OpenchannelQueues",fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"openchannel",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:801})}]},authenticate:!0,permissionId:801,bodyClass:"openchannel"}).state("app.openchannel.openchannelQueues.edit",{url:"/:id?tab",params:{openchannelQueue:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/view.html",controller:"OpenchannelQueueController as vm"}},resolve:{openchannelQueue:["apiResolver","$stateParams",function(e,n){return e.resolve("openchannelQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:801})}]},authenticate:!0,permissionId:801,bodyClass:"openchannel"}).state("app.openchannel.openchannelAccounts",{url:"/openchannelAccounts",views:{"content@app":{templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/openchannelAccounts.html",controller:"OpenchannelAccountsController as vm"}},resolve:{openchannelAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("openchannelAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUri,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"OpenchannelAccounts",fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUri,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:802})}]},authenticate:!0,permissionId:802,bodyClass:"openchannel"}).state("app.openchannel.openchannelAccounts.edit",{url:"/:id?tab",params:{openchannelAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/view.html",controller:"OpenchannelAccountController as vm"}},resolve:{openchannelAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("openchannelAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUri,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadAttachments,downloadOmnichannelInteractions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:802})}]},authenticate:!0,permissionId:802,bodyClass:"openchannel"}),n.addPart("app/main/apps/openchannel")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.openchannel",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.openchannel.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.openchannel.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/openchannel/views/realtime/realtime.html",controller:"OpenchannelRealtimeController as vm"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:810})}]},authenticate:!0,permissionId:810}).state("app.openchannel.realtime.agents",{url:"/agents",params:{channel:"openchannel"},controller:"AgentsRealtimeController as vm",templateUrl:"app/main/apps/realtime/views/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getAgents",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}]},authenticate:!0,permissionId:810}).state("app.openchannel.realtime.queues",{url:"/queues",controller:"QueuesOpenchannelRealtimeController as vm",templateUrl:"app/main/apps/openchannel/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"OpenchannelQueues":void 0,channel:"openchannel",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:801})}]},authenticate:!0,permissionId:810})}e.$inject=["$stateProvider"],angular.module("app.openchannel.realtime",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.plugins",{abstract:!0,url:"/plugins"}),n.addPart("app/main/apps/plugins")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.plugins",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.plugins.plugin"]).config(e)}(),function(){"use strict";function e(e){e.state("app.plugins.plugin",{url:"/plugin/:id",views:{"content@app":{templateUrl:"app/main/apps/plugins/views/plugin/plugin.html",controller:"PluginController as vm"}},resolve:{},authenticate:!0,bodyClass:"plugins"})}e.$inject=["$stateProvider"],angular.module("app.plugins.plugin",[]).config(e)}(),function(){"use strict";angular.module("app.realtime",[])}(),function(){"use strict";function e(e,n,t,a){e.state("app.settings",{abstract:!0,url:"/settings"}).state("app.settings.generals",{url:"/generals",views:{"content@app":{templateUrl:"app/main/apps/settings/views/generals/generals.html",controller:"GeneralsController as vm"}},resolve:{generals:["apiResolver",function(e){return e.resolve("setting@get",{fields:"createdAt,updatedAt,id,min_internal,securePassword,callRecordingEncryption,chatTimeout,phoneBarAutoUpdater,defaultScreenRecordingPath,phoneBarAutoUpdaterUrl,enableEmailPreview,split,splitSizeCsv,splitSizePdf,splitSizeXlsx,searchOnEnterKey,messagesAlignment,phoneBarRememberMeEnabled,rtlSupport,allowedLoginAttempts,blockDuration,loginMailFrequency,language,bucket,transcribe,transcribeRegion,transcribeAccountId,sentiment,sentimentRegion,sentimentAccountId,googleSsoEnabled,enforcePasswordHistory,passwordHistoryLimit,enablePrivacyPolicyEmail,privacyPolicyEmail,enablePrivacyPolicyName,privacyPolicyName,enablePrivacyPolicyNumber,privacyPolicyNumber,chatInteractionsReloadTimeout,mailInteractionsReloadTimeout,openchannelInteractionsReloadTimeout,smsInteractionsReloadTimeout,whatsappInteractionsReloadTimeout,stopRecordingOnTransfer",limit:10,offset:0})}]},authenticate:!0,permissionId:1400,bodyClass:"settings"}).state("app.settings.smtps",{url:"/smtps",views:{"content@app":{templateUrl:"app/main/apps/settings/views/smtps/smtps.html",controller:"SmtpController as vm"}},resolve:{smtps:["apiResolver",function(e){return e.resolve("mailAccount@get",{fields:"createdAt,updatedAt,id,service,name,email,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,description",service:"1",limit:10,offset:0})}]},authenticate:!0,permissionId:1400,bodyClass:"settings"}).state("app.settings.networks",{url:"/networks",views:{"content@app":{templateUrl:"app/main/apps/settings/views/networks/networks.html",controller:"NetworksController as vm"}},resolve:{networks:["apiResolver",function(e){return e.resolve("network@get",{fields:"createdAt,updatedAt,id,type,value,username,password",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1400,bodyClass:"settings"}).state("app.settings.customizations",{url:"/customizations",views:{"content@app":{templateUrl:"app/main/apps/settings/views/customizations/customizations.html",controller:"CustomizationsController as vm"}},resolve:{customizations:["apiResolver",function(e){return e.resolve("setting@get",{fields:"createdAt,updatedAt,id,defaultLogo,defaultLoginLogo,defaultFavicon,defaultHeaderWhiteLabel,headerWhiteLabel,defaultPageTitle,pageTitle,defaultPreferred",limit:10,offset:0})}]},authenticate:!0,permissionId:1400,bodyClass:"settings"}).state("app.settings.cloudProviders",{url:"/cloudProviders",views:{"content@app":{templateUrl:"app/main/apps/settings/views/cloudProviders/cloudProviders.html",controller:"CloudProvidersController as vm"}},resolve:{cloudProviders:["apiResolver",function(e){return e.resolve("cloudProvider@get",{fields:"createdAt,updatedAt,id,name,service,data2,data1",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1400,bodyClass:"settings"}),n.addPart("app/main/apps/settings")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.settings",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.settings.updates","app.settings.license","app.settings.system"]).config(e)}(),function(){"use strict";function e(e){e.state("app.settings.license",{url:"/license",views:{"content@app":{templateUrl:"app/main/apps/settings/views/license/license.html",controller:"LicenseController as vm"}},authenticate:!0,permissionId:1400,bodyClass:"settings"})}e.$inject=["$stateProvider"],angular.module("app.settings.license",[]).config(e)}(),function(){"use strict";function e(e){e.state("app.settings.system",{url:"/system?tab",views:{"content@app":{templateUrl:"app/main/apps/settings/views/system/system.html",controller:"SystemController as vm"}},resolve:{system:["apiResolver",function(e){return e.resolve("system@get")}],processes:["apiResolver",function(e){return e.resolve("pm2@get")}]},authenticate:!0,permissionId:1400,bodyClass:"settings"})}e.$inject=["$stateProvider"],angular.module("app.settings.system",[]).config(e)}(),function(){"use strict";function e(e){e.state("app.settings.updates",{url:"/updates",views:{"content@app":{templateUrl:"app/main/apps/settings/views/updates/updates.html",controller:"UpdatesController as vm"}},resolve:{version:["apiResolver",function(e){return e.resolve("version@get",{latest:!0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1400})}]},authenticate:!0,permissionId:1400,bodyClass:"settings"})}e.$inject=["$stateProvider"],angular.module("app.settings.updates",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.sms",{abstract:!0,url:"/sms"}).state("app.sms.smsQueues",{url:"/smsQueues",views:{"content@app":{templateUrl:"app/main/apps/sms/views/smsQueues/smsQueues.html",controller:"SmsQueuesController as vm"}},resolve:{smsQueues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("smsQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"sms",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SmsQueues",fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"sms",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:701})}]},authenticate:!0,permissionId:701,bodyClass:"sms"}).state("app.sms.smsQueues.edit",{url:"/:id?tab",params:{smsQueue:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/sms/views/smsQueues/edit/view.html",controller:"SmsQueueController as vm"}},resolve:{smsQueue:["apiResolver","$stateParams",function(e,n){return e.resolve("smsQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:701})}]},authenticate:!0,permissionId:701,bodyClass:"sms"}).state("app.sms.smsAccounts",{url:"/smsAccounts",views:{"content@app":{templateUrl:"app/main/apps/sms/views/smsAccounts/smsAccounts.html",controller:"SmsAccountsController as vm"}},resolve:{smsAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("smsAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,type,phone,accountSid,authId,authToken,smsMethod,username,password,baseUrl,apiKey,accountId,applicationId,senderString,deliveryReport,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SmsAccounts",fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,type,phone,accountSid,authId,authToken,smsMethod,username,password,baseUrl,apiKey,accountId,applicationId,senderString,deliveryReport,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:702})}]},authenticate:!0,permissionId:702,bodyClass:"sms"}).state("app.sms.smsAccounts.edit",{url:"/:id?tab",params:{smsAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/sms/views/smsAccounts/edit/view.html",controller:"SmsAccountController as vm"}},resolve:{smsAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("smsAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,type,phone,accountSid,authId,authToken,smsMethod,username,password,baseUrl,apiKey,accountId,applicationId,senderString,deliveryReport,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadOmnichannelInteractions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:702})}]},authenticate:!0,permissionId:702,bodyClass:"sms"}),n.addPart("app/main/apps/sms")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.sms",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.sms.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.sms.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/sms/views/realtime/realtime.html",controller:"SmsRealtimeController as vm"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:710})}]},authenticate:!0,permissionId:710}).state("app.sms.realtime.agents",{url:"/agents",params:{channel:"sms"},controller:"AgentsRealtimeController as vm",templateUrl:"app/main/apps/realtime/views/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getAgents",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}]},authenticate:!0,permissionId:710}).state("app.sms.realtime.queues",{url:"/queues",controller:"QueuesSmsRealtimeController as vm",templateUrl:"app/main/apps/sms/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"SmsQueues":void 0,channel:"sms",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:701})}]},authenticate:!0,permissionId:710})}e.$inject=["$stateProvider"],angular.module("app.sms.realtime",[]).config(e)}(),function(){"use strict";function e(e,n){e.state("app.staff",{abstract:!0,url:"/staff"}).state("app.staff.users",{url:"/users",views:{"content@app":{templateUrl:"app/main/apps/staff/views/users/users.html",controller:"UsersController as vm"}},resolve:{users:["apiResolver",function(e){return e.resolve("user@get",{fields:"createdAt,updatedAt,role,userProfileId,id,fullname,name,email,phone,mobile,userpic,password,description,autointernal,internal,transport,nat,allow,context,callgroup,pickupgroup,passwordResetAt,apiKey,videosupport,disabled,blocked",role:"admin,user",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:201})}]},authenticate:!0,permissionId:201,bodyClass:"staff"}).state("app.staff.users.edit",{url:"/:id?tab",params:{user:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/staff/views/users/edit/view.html",controller:"UserController as vm"}},resolve:{user:["apiResolver","$stateParams",function(e,n){return e.resolve("user@get",{fields:"createdAt,updatedAt,role,userProfileId,id,fullname,name,email,phone,mobile,userpic,password,description,autointernal,internal,transport,nat,allow,context,callgroup,pickupgroup,passwordResetAt,apiKey,videosupport,disabled,blocked",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:201})}]},authenticate:!0,permissionId:201,bodyClass:"staff"}).state("app.staff.agents",{url:"/agents",views:{"content@app":{templateUrl:"app/main/apps/staff/views/agents/agents.html",controller:"AgentsController as vm"}},resolve:{agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"createdAt,updatedAt,id,role,fullname,name,alias,showWebBar,email,phone,mobile,userpic,password,hotdesk,autointernal,internal,loginInPause,description,dtlscertfile,dtlsprivatekey,wssPort,voicemail,transport,host,nat,type,allow,callerid,context,callgroup,pickupgroup,chanspy,videosupport,extensionMonitor,chatCapacity,mailCapacity,smsCapacity,openchannelCapacity,faxCapacity,whatsappCapacity,phoneBarEnableSettings,phoneBarAutoAnswer,phoneBarAutoAnswerDelay,phoneBarRingInUse,phoneBarEnableRecording,phoneBarEnableDtmfTone,phoneBarDnd,phoneBarUnansweredCallBadge,phoneBarEnableJaws,phoneBarOutboundProxy,phoneBarUnconditional,phoneBarUnconditionalNumber,phoneBarRemoteControl,phoneBarRemoteControlPort,phoneBarExpires,phoneBarListenPort,permissions,allowmessenger,phoneBarPrefixRequired,passwordResetAt,disabled,blocked,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording,privacyEnabled,downloadAttachments,downloadOmnichannelInteractions,downloadVoiceRecordings,selectRecallMeCampaign,ignorePauseForPreviewCalls",role:"agent",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"createdAt,updatedAt,id,role,fullname,name,alias,showWebBar,email,phone,mobile,userpic,password,hotdesk,autointernal,internal,loginInPause,description,dtlscertfile,dtlsprivatekey,wssPort,voicemail,transport,host,nat,type,allow,callerid,context,callgroup,pickupgroup,chanspy,videosupport,extensionMonitor,chatCapacity,mailCapacity,smsCapacity,openchannelCapacity,faxCapacity,whatsappCapacity,phoneBarEnableSettings,phoneBarAutoAnswer,phoneBarAutoAnswerDelay,phoneBarRingInUse,phoneBarEnableRecording,phoneBarEnableDtmfTone,phoneBarDnd,phoneBarUnansweredCallBadge,phoneBarEnableJaws,phoneBarOutboundProxy,phoneBarUnconditional,phoneBarUnconditionalNumber,phoneBarRemoteControl,phoneBarRemoteControlPort,phoneBarExpires,phoneBarListenPort,permissions,allowmessenger,phoneBarPrefixRequired,passwordResetAt,disabled,blocked,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording,privacyEnabled,downloadAttachments,downloadOmnichannelInteractions,downloadVoiceRecordings,selectRecallMeCampaign,ignorePauseForPreviewCalls",role:"agent",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}]},authenticate:!0,permissionId:202,bodyClass:"staff"}).state("app.staff.agents.edit",{url:"/:id?tab",params:{agent:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/staff/views/agents/edit/view.html",controller:"AgentController as vm"}},resolve:{agent:["apiResolver","$stateParams",function(e,n){return e.resolve("user@get",{fields:"createdAt,updatedAt,id,role,fullname,name,alias,showWebBar,email,phone,mobile,userpic,password,hotdesk,autointernal,internal,loginInPause,description,dtlscertfile,dtlsprivatekey,wssPort,voicemail,transport,host,nat,type,allow,callerid,context,callgroup,pickupgroup,chanspy,videosupport,extensionMonitor,chatCapacity,mailCapacity,smsCapacity,openchannelCapacity,faxCapacity,whatsappCapacity,phoneBarEnableSettings,phoneBarAutoAnswer,phoneBarAutoAnswerDelay,phoneBarRingInUse,phoneBarEnableRecording,phoneBarEnableDtmfTone,phoneBarDnd,phoneBarUnansweredCallBadge,phoneBarEnableJaws,phoneBarOutboundProxy,phoneBarUnconditional,phoneBarUnconditionalNumber,phoneBarRemoteControl,phoneBarRemoteControlPort,phoneBarExpires,phoneBarListenPort,permissions,allowmessenger,phoneBarPrefixRequired,passwordResetAt,disabled,blocked,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording,privacyEnabled,downloadAttachments,downloadOmnichannelInteractions,downloadVoiceRecordings,selectRecallMeCampaign,ignorePauseForPreviewCalls",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}]},authenticate:!0,permissionId:202,bodyClass:"staff"}).state("app.staff.telephones",{url:"/telephones",views:{"content@app":{templateUrl:"app/main/apps/staff/views/telephones/telephones.html",controller:"TelephonesController as vm"}},resolve:{telephones:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"createdAt,updatedAt,id,role,fullname,name,email,password,description,autointernal,internal,voicemail,transport,nat,allow,callerid,context,callgroup,pickupgroup,videosupport,encryption,phone,mobile",role:"telephone",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Telephones",fields:"createdAt,updatedAt,id,role,fullname,name,email,password,description,autointernal,internal,voicemail,transport,nat,allow,callerid,context,callgroup,pickupgroup,videosupport,encryption,phone,mobile",role:"telephone",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:203})}]},authenticate:!0,permissionId:203,bodyClass:"staff"}).state("app.staff.telephones.edit",{url:"/:id?tab",params:{telephone:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/staff/views/telephones/edit/view.html",controller:"TelephoneController as vm"}},resolve:{telephone:["apiResolver","$stateParams",function(e,n){return e.resolve("user@get",{fields:"createdAt,updatedAt,id,role,fullname,name,email,password,description,autointernal,internal,voicemail,transport,nat,allow,callerid,context,callgroup,pickupgroup,videosupport,encryption,phone,mobile",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:203})}]},authenticate:!0,permissionId:203,bodyClass:"staff"}).state("app.staff.teams",{url:"/teams",views:{"content@app":{templateUrl:"app/main/apps/staff/views/teams/teams.html",controller:"TeamsController as vm"}},resolve:{teams:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("team@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Teams",fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:204})}]},authenticate:!0,permissionId:204,bodyClass:"staff"}).state("app.staff.userProfiles",{url:"/userProfiles",views:{"content@app":{templateUrl:"app/main/apps/staff/views/userProfiles/userProfiles.html",controller:"UserProfilesController as vm"}},resolve:{userProfiles:["apiResolver",function(e){return e.resolve("userProfile@get",{fields:"createdAt,updatedAt,id,name,description,crudPermissions,privacyEnabled,downloadAttachments,downloadCallySquareRecordings,downloadContactManagerLists,downloadJscriptySessions,downloadOmnichannelInteractions,downloadScreenRecordings,downloadVoiceRecordings",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:205})}]},authenticate:!0,permissionId:205,bodyClass:"staff"}).state("app.staff.userProfiles.edit",{url:"/:id?tab",params:{userProfile:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/staff/views/userProfiles/edit/view.html",controller:"UserProfileController as vm"}},resolve:{userProfile:["apiResolver","$stateParams",function(e,n){return e.resolve("userProfile@get",{fields:"createdAt,updatedAt,id,name,description,crudPermissions,privacyEnabled,downloadAttachments,downloadCallySquareRecordings,downloadContactManagerLists,downloadJscriptySessions,downloadOmnichannelInteractions,downloadScreenRecordings,downloadVoiceRecordings",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:205})}]},authenticate:!0,permissionId:205,bodyClass:"staff"}),n.addPart("app/main/apps/staff")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.staff",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter"]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.tools",{abstract:!0,url:"/tools"}).state("app.tools.cannedAnswers",{url:"/cannedAnswers",views:{"content@app":{templateUrl:"app/main/apps/tools/views/cannedAnswers/cannedAnswers.html",controller:"CannedAnswersController as vm"}},resolve:{cannedAnswers:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cannedAnswer@get",{fields:"createdAt,updatedAt,id,key,value,description",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"CannedAnswers",fields:"createdAt,updatedAt,id,key,value,description",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1001})}]},authenticate:!0,permissionId:1001,bodyClass:"tools"}).state("app.tools.customDashboards",{url:"/customDashboards",views:{"content@app":{templateUrl:"app/main/apps/tools/views/customDashboards/customDashboards.html",controller:"CustomDashboardsController as vm"}},resolve:{customDashboards:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("dashboard@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"CustomDashboards",fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1003})}]},authenticate:!0,permissionId:1003,bodyClass:"tools"}).state("app.tools.customDashboards.edit",{url:"/:id?tab",params:{customDashboard:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/tools/views/customDashboards/edit/view.html",controller:"CustomDashboardController as vm"}},resolve:{customDashboard:["apiResolver","$stateParams",function(e,n){return e.resolve("dashboard@get",{fields:"createdAt,updatedAt,id,name,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1003})}]},authenticate:!0,permissionId:1003,bodyClass:"tools"}).state("app.tools.intervals",{url:"/intervals",views:{"content@app":{templateUrl:"app/main/apps/tools/views/intervals/intervals.html",controller:"IntervalsController as vm"}},resolve:{intervals:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("interval@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",IntervalId:"null",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Intervals",fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",IntervalId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1004})}]},authenticate:!0,permissionId:1004,bodyClass:"tools"}).state("app.tools.intervals.edit",{url:"/:id?tab",params:{interval:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/tools/views/intervals/edit/view.html",controller:"IntervalController as vm"}},resolve:{interval:["apiResolver","$stateParams",function(e,n){return e.resolve("interval@get",{fields:"createdAt,updatedAt,id,name,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1004})}]},authenticate:!0,permissionId:1004,bodyClass:"tools"}).state("app.tools.pauses",{url:"/pauses",views:{"content@app":{templateUrl:"app/main/apps/tools/views/pauses/pauses.html",controller:"PausesController as vm"}},resolve:{pauses:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("pause@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Pauses",fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1005})}]},authenticate:!0,permissionId:1005,bodyClass:"tools"}).state("app.tools.schedules",{url:"/schedules",views:{"content@app":{templateUrl:"app/main/apps/tools/views/schedules/schedules.html",controller:"SchedulesController as vm"}},resolve:{schedules:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("schedule@get",{fields:"createdAt,updatedAt,id,name,CustomReportId,DefaultReportId,output,active,startAt,endAt,cron,subtractNumber,subtractUnit,sendMail,MailAccountId,email,cc,bcc,sendIfEmpty,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Scheduler",fields:"createdAt,updatedAt,id,name,CustomReportId,DefaultReportId,output,active,startAt,endAt,cron,subtractNumber,subtractUnit,sendMail,MailAccountId,email,cc,bcc,sendIfEmpty,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1006})}]},authenticate:!0,permissionId:1006,bodyClass:"tools"}).state("app.tools.sounds",{url:"/sounds",views:{"content@app":{templateUrl:"app/main/apps/tools/views/sounds/sounds.html",controller:"SoundsController as vm"}},resolve:{sounds:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("sound@get",{fields:"createdAt,updatedAt,id,save_name,converted_format,name,audio,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Sounds",fields:"createdAt,updatedAt,id,save_name,converted_format,name,audio,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1007})}]},authenticate:!0,permissionId:1007,bodyClass:"tools"}).state("app.tools.tags",{url:"/tags",views:{"content@app":{templateUrl:"app/main/apps/tools/views/tags/tags.html",controller:"TagsController as vm"}},resolve:{tags:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("tag@get",{fields:"createdAt,updatedAt,id,name,description,color",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Tags",fields:"createdAt,updatedAt,id,name,description,color",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1008})}]},authenticate:!0,permissionId:1008,bodyClass:"tools"}).state("app.tools.templates",{url:"/templates",views:{"content@app":{templateUrl:"app/main/apps/tools/views/templates/templates.html",controller:"TemplatesController as vm"}},resolve:{templates:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("template@get",{fields:"createdAt,updatedAt,id,name,html,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Templates",fields:"createdAt,updatedAt,id,name,html,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1009})}]},authenticate:!0,permissionId:1009,bodyClass:"tools"}).state("app.tools.trunks",{url:"/trunks",views:{"content@app":{templateUrl:"app/main/apps/tools/views/trunks/trunks.html",controller:"TrunksController as vm"}},resolve:{trunks:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("trunk@get",{fields:"createdAt,updatedAt,id,name,active,host,secret,defaultuser,context,callerid,type,dtmfmode,nat,qualify,allow,insecure,call_limit,registry,description,directmedia,callcounter,fromdomain,fromuser,outboundproxy,usereqphone,trustrpid,sendrpid,encryption,port,transport,t38pt_udptl,videosupport,otherFields",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Trunks",fields:"createdAt,updatedAt,id,name,active,host,secret,defaultuser,context,callerid,type,dtmfmode,nat,qualify,allow,insecure,call_limit,registry,description,directmedia,callcounter,fromdomain,fromuser,outboundproxy,usereqphone,trustrpid,sendrpid,encryption,port,transport,t38pt_udptl,videosupport,otherFields",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1011})}]},authenticate:!0,permissionId:1011,bodyClass:"tools"}).state("app.tools.trunks.edit",{url:"/:id?tab",params:{trunk:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/tools/views/trunks/edit/view.html",controller:"TrunkController as vm"}},resolve:{trunk:["apiResolver","$stateParams",function(e,n){return e.resolve("trunk@get",{fields:"createdAt,updatedAt,id,name,active,host,secret,defaultuser,context,callerid,type,dtmfmode,nat,qualify,allow,insecure,call_limit,registry,description,directmedia,callcounter,fromdomain,fromuser,outboundproxy,usereqphone,trustrpid,sendrpid,encryption,port,transport,t38pt_udptl,videosupport,otherFields",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1011})}]},authenticate:!0,permissionId:1011,bodyClass:"tools"}).state("app.tools.variables",{url:"/variables",views:{"content@app":{templateUrl:"app/main/apps/tools/views/variables/variables.html",controller:"VariablesController as vm"}},resolve:{variables:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("variable@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Variables",fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1012})}]},authenticate:!0,permissionId:1012,bodyClass:"tools"}),n.addPart("app/main/apps/tools")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.tools",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.tools.dispositions","app.tools.triggers"]).config(e)}(),function(){"use strict";function e(e){e.state("app.tools.dispositions",{url:"/dispositions",views:{"content@app":{templateUrl:"app/main/apps/tools/views/dispositions/dispositions.html",controller:"DispositionsController as vm"}},resolve:{dispositions:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("disposition@get",{fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",WhatsappAccountId:"null",ListId:"null",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Dispositions",fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",WhatsappAccountId:"null",ListId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1002})}]},authenticate:!0,permissionId:1002,bodyClass:"tools"})}e.$inject=["$stateProvider"],angular.module("app.tools.dispositions",[]).config(e)}(),function(){"use strict";function e(e){e.state("app.tools.triggers",{url:"/triggers",views:{"content@app":{templateUrl:"app/main/apps/tools/views/triggers/triggers.html",controller:"TriggersController as vm"}},resolve:{triggers:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("trigger@get",{fields:"createdAt,updatedAt,id,name,channel,status,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Triggers",fields:"createdAt,updatedAt,id,name,channel,status,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1010})}]},authenticate:!0,permissionId:1010,bodyClass:"tools"}).state("app.tools.triggers.edit",{url:"/:id?tab",params:{trigger:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/tools/views/triggers/edit/view.html",controller:"TriggerController as vm"}},resolve:{trigger:["apiResolver","$stateParams",function(e,n){return e.resolve("trigger@get",{fields:"createdAt,updatedAt,id,name,channel,status,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1010})}]},authenticate:!0,permissionId:1010,bodyClass:"tools"})}e.$inject=["$stateProvider"],angular.module("app.tools.triggers",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.video",{abstract:!0,url:"/video"}).state("app.video.screenRecordings",{url:"/screenRecordings",views:{"content@app":{templateUrl:"app/main/apps/video/views/screenRecordings/screenRecordings.html",controller:"ScreenRecordingsController as vm"}},resolve:{screenRecordings:["apiResolver","Auth","msUtils",function(e,n,t){return n.hasRole("admin")?e.resolve("screenRecording@get",{fields:"createdAt,updatedAt,id,interactionid,channel,format,value,rating,UserId,duration,startedAt,closedAt",createdAt:t.firstLastDayMonth(),includeAll:"true",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ScreenRecordings",fields:"createdAt,updatedAt,id,interactionid,channel,format,value,rating,UserId,duration,startedAt,closedAt",createdAt:t.firstLastDayMonth(),includeAll:"true",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadScreenRecordings",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2001})}]},authenticate:!0,permissionId:2001,bodyClass:"video"}),n.addPart("app/main/apps/video")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.video",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter"]).config(e)}(),function(){"use strict";function e(e){e.state("app.voice.inboundRoutes",{url:"/inboundRoutes",views:{"content@app":{templateUrl:"app/main/apps/voice/views/inboundRoutes/inboundRoutes.html",controller:"InboundRoutesController as vm"}},resolve:{inboundRoutes:["apiResolver","Auth",function(e,n){return n.isAdmin()?e.resolve("voiceExtension@get",{fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"inbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"InboundRoutes",fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"inbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:402})}]},authenticate:!0,permissionId:402,bodyClass:"voice"}).state("app.voice.inboundRoutes.edit",{url:"/:id?tab",params:{inboundRoute:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/inboundRoutes/edit/view.html",controller:"InboundRouteController as vm"}},resolve:{inboundRoute:["apiResolver","$stateParams",function(e,n){return e.resolve("voiceExtension@get",{fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",id:n.id})}],contexts:["apiResolver",function(e){return e.resolve("voiceContext@get",{fields:"id,name",sort:"name"})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:402})}]},authenticate:!0,permissionId:402,bodyClass:"voice"})}e.$inject=["$stateProvider"],angular.module("app.voice.inboundRoutes",[]).config(e)}(),function(){"use strict";function e(e){e.state("app.voice.internalRoutes",{url:"/internalRoutes",views:{"content@app":{templateUrl:"app/main/apps/voice/views/internalRoutes/internalRoutes.html",controller:"InternalRoutesController as vm"}},resolve:{internalRoutes:["apiResolver","Auth",function(e,n){return n.isAdmin()?e.resolve("voiceExtension@get",{fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"internal",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"InternalRoutes",fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"internal",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:404})}]},authenticate:!0,permissionId:404,bodyClass:"voice"}).state("app.voice.internalRoutes.edit",{url:"/:id?tab",params:{internalRoute:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/internalRoutes/edit/view.html",controller:"InternalRouteController as vm"}},resolve:{internalRoute:["apiResolver","$stateParams",function(e,n){return e.resolve("voiceExtension@get",{fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",id:n.id})}],contexts:["apiResolver",function(e){return e.resolve("voiceContext@get",{fields:"id,name",sort:"name"})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:404})}]},authenticate:!0,permissionId:404,bodyClass:"voice"})}e.$inject=["$stateProvider"],angular.module("app.voice.internalRoutes",[]).config(e)}(),function(){"use strict";function e(e){e.state("app.voice.outboundRoutes",{url:"/outboundRoutes",views:{"content@app":{templateUrl:"app/main/apps/voice/views/outboundRoutes/outboundRoutes.html",controller:"OutboundRoutesController as vm"}},resolve:{outboundRoutes:["apiResolver","Auth",function(e,n){return n.isAdmin()?e.resolve("voiceExtension@get",{fields:"id,appdata,type,exten,context,recordingFormat,cutdigits,description,alias,createdAt,updatedAt",type:"outbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"OutboundRoutes",fields:"id,appdata,type,exten,context,recordingFormat,cutdigits,description,alias,createdAt,updatedAt",type:"outbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:403})}]},authenticate:!0,permissionId:403,bodyClass:"voice"}).state("app.voice.outboundRoutes.edit",{url:"/:id?tab",params:{outboundRoute:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/outboundRoutes/edit/view.html",controller:"OutboundRouteController as vm"}},resolve:{outboundRoute:["apiResolver","$stateParams",function(e,n){return e.resolve("voiceExtension@get",{fields:"id,appdata,type,exten,context,recordingFormat,cutdigits,description,alias,createdAt,updatedAt",id:n.id})}],contexts:["apiResolver",function(e){return e.resolve("voiceContext@get",{fields:"id,name",sort:"name"})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:403})}]},authenticate:!0,permissionId:403,bodyClass:"voice"})}e.$inject=["$stateProvider"],angular.module("app.voice.outboundRoutes",[]).config(e)}(),function(){"use strict";function e(e){e.state("app.voice.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/voice/views/realtime/realtime.html",controller:"VoiceRealtimeController as vm"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:411})}]},authenticate:!0,permissionId:411}).state("app.voice.realtime.agents",{url:"/agents",params:{channel:"voice",direction:"inbound"},controller:"AgentsRealtimeController as vm",templateUrl:"app/main/apps/realtime/views/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getAgents",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}]},authenticate:!0,permissionId:411}).state("app.voice.realtime.telephones",{url:"/telephones",controller:"TelephonesVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/telephones/view.html",resolve:{telephones:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,fullname,userpic,internal",role:"telephone",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Telephones",fields:"id,fullname,userpic,internal",role:"telephone",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:203})}],rpcTelephones:["apiResolver",function(e){return e.resolve("rpc@getTelephones")}]},authenticate:!0,permissionId:411}).state("app.voice.realtime.trunks",{url:"/trunks",controller:"TrunksVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/trunks/view.html",resolve:{trunks:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("trunk@get",{fields:"id,name",active:!0,sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Trunks",fields:"id,name",active:!0,sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1011})}],rpcTrunks:["apiResolver",function(e){return e.resolve("rpc@getTrunks")}]},authenticate:!0,permissionId:411}).state("app.voice.realtime.queues",{url:"/queues",controller:"QueuesVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"VoiceQueues":void 0,channel:"voice",type:"inbound",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:401})}]},authenticate:!0,permissionId:411}).state("app.voice.realtime.queue_calls",{url:"/queue_calls",controller:"QueueCallsVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/queue_calls/view.html",resolve:{agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,role,context",role:"agent",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,role,context",role:"agent",nolimit:!0})}],queues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"inbound",sort:"-updatedAt",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceQueues",channel:"voice",type:"inbound",sort:"-updatedAt",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:401})}],rpcVoiceQueuesChannels:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueuesChannels")}]},authenticate:!0,permissionId:411}).state("app.voice.realtime.abandonedcalls",{url:"/abandonedcalls",controller:"AbandonedCallsVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/abandonedcalls/view.html",resolve:{agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,role,context",role:"agent",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,role,context",role:"agent",nolimit:!0})}],queues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"inbound",sort:"-updatedAt",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceQueues",channel:"voice",type:"inbound",sort:"-updatedAt",nolimit:!0})}],dispositions:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("disposition@get",{fields:"createdAt,updatedAt,id,name,level,ParentId",sort:"name",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Dispositions",fields:"createdAt,updatedAt,id,name",sort:"name",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:401})}]},authenticate:!0,permissionId:411}).state("app.voice.realtime.queue_params",{url:"/queue_params",controller:"QueueParamsVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/queue_params/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"inbound",fields:"id,name",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceQueues",channel:"voice",type:"inbound",sort:"-updatedAt",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:401})}],rpcQueues:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueues")}]},authenticate:!0,permissionId:411}).state("app.voice.realtime.outbound_calls",{url:"/outbound_calls",controller:"OutboundCallsVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/outbound_calls/view.html",resolve:{rpcCalls:["apiResolver",function(e){return e.resolve("rpc@getOutboundChannels")}]},authenticate:!0,permissionId:411})}e.$inject=["$stateProvider"],angular.module("app.voice.realtime",[]).config(e)}(),function(){"use strict";function e(e,n){e.state("app.voice",{abstract:!0,url:"/voice"}).state("app.voice.voiceQueues",{url:"/voiceQueues",views:{"content@app":{templateUrl:"app/main/apps/voice/views/voiceQueues/voiceQueues.html",controller:"VoiceQueuesController as vm"}},resolve:{voiceQueues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{fields:"createdAt,updatedAt,id,name,type,strategy,timeout,maxlen,retry,wrapuptime,weight,joinempty,leavewhenempty,musiconhold,announce,description,periodic_announce,queue_reporthold,queue_youarenext,queue_thereare,queue_callswaiting,queue_holdtime,queue_minutes,queue_minute,queue_seconds,queue_thankyou,announce_frequency,min_announce_frequency,periodic_announce_frequency,random_periodic_announce,announce_holdtime,announce_position,announce_position_limit,reportholdtime,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,servicelevel,mandatoryDisposition,mandatoryDispositionPauseId",type:"inbound",sort:"-updatedAt",channel:"voice",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceQueues",fields:"createdAt,updatedAt,id,name,type,strategy,timeout,maxlen,retry,wrapuptime,weight,joinempty,leavewhenempty,musiconhold,announce,description,periodic_announce,queue_reporthold,queue_youarenext,queue_thereare,queue_callswaiting,queue_holdtime,queue_minutes,queue_minute,queue_seconds,queue_thankyou,announce_frequency,min_announce_frequency,periodic_announce_frequency,random_periodic_announce,announce_holdtime,announce_position,announce_position_limit,reportholdtime,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,servicelevel,mandatoryDisposition,mandatoryDispositionPauseId",type:"inbound",sort:"-updatedAt",channel:"voice",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:401})}]},authenticate:!0,permissionId:401,bodyClass:"voice"}).state("app.voice.voiceQueues.edit",{url:"/:id?tab",params:{voiceQueue:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/voiceQueues/edit/view.html",controller:"VoiceQueueController as vm"}},resolve:{voiceQueue:["apiResolver","$stateParams",function(e,n){return e.resolve("voiceQueue@get",{fields:"createdAt,updatedAt,id,name,type,strategy,timeout,maxlen,retry,wrapuptime,weight,joinempty,leavewhenempty,musiconhold,announce,description,periodic_announce,queue_reporthold,queue_youarenext,queue_thereare,queue_callswaiting,queue_holdtime,queue_minutes,queue_minute,queue_seconds,queue_thankyou,announce_frequency,min_announce_frequency,periodic_announce_frequency,random_periodic_announce,announce_holdtime,announce_position,announce_position_limit,reportholdtime,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,servicelevel,mandatoryDisposition,mandatoryDispositionPauseId",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:401})}]},authenticate:!0,permissionId:401,bodyClass:"voice"}).state("app.voice.contexts",{url:"/contexts",views:{"content@app":{templateUrl:"app/main/apps/voice/views/contexts/contexts.html",controller:"ContextsController as vm"}},resolve:{contexts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceContext@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",defaultEntry:"false",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Contexts",fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",defaultEntry:"false",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:405})}]},authenticate:!0,permissionId:405,bodyClass:"voice"}).state("app.voice.voicemails",{url:"/voicemails",views:{"content@app":{templateUrl:"app/main/apps/voice/views/voicemails/voicemails.html",controller:"VoicemailsController as vm"}},resolve:{voicemails:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceMail@get",{fields:"createdAt,updatedAt,id,customer_id,fullname,email,password,mailbox,context,tz,attach,envelope,delete,emailbody,emailsubject,maxsecs,maxmsg",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Voicemails",fields:"createdAt,updatedAt,id,customer_id,fullname,email,password,mailbox,context,tz,attach,envelope,delete,emailbody,emailsubject,maxsecs,maxmsg",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:406})}]},authenticate:!0,permissionId:406,bodyClass:"voice"}).state("app.voice.voicemails.edit",{url:"/:id?tab",params:{voicemail:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/voicemails/edit/view.html",controller:"VoicemailController as vm"}},resolve:{voicemail:["apiResolver","$stateParams",function(e,n){return e.resolve("voiceMail@get",{fields:"createdAt,updatedAt,id,customer_id,fullname,email,password,mailbox,context,tz,attach,envelope,delete,emailbody,emailsubject,maxsecs,maxmsg",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:406})}]},authenticate:!0,permissionId:406,bodyClass:"voice"}).state("app.voice.musiconholds",{url:"/musiconholds",views:{"content@app":{templateUrl:"app/main/apps/voice/views/musiconholds/musiconholds.html",controller:"MusicOnHoldsController as vm"}},resolve:{musiconholds:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceMusicOnHold@get",{fields:"createdAt,updatedAt,id,name,mode,directory,application,format,sort",defaultEntry:"false",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"MusicOnHolds",fields:"createdAt,updatedAt,id,name,mode,directory,application,format,sort",defaultEntry:"false",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:407})}]},authenticate:!0,permissionId:407,bodyClass:"voice"}).state("app.voice.musiconholds.edit",{url:"/:id?tab",params:{musiconhold:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/musiconholds/edit/view.html",controller:"MusicOnHoldController as vm"}},resolve:{musiconhold:["apiResolver","$stateParams",function(e,n){return e.resolve("voiceMusicOnHold@get",{fields:"createdAt,updatedAt,id,name,mode,directory,application,format,sort",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:407})}]},authenticate:!0,permissionId:407,bodyClass:"voice"}).state("app.voice.voiceRecordings",{url:"/voiceRecordings",views:{"content@app":{templateUrl:"app/main/apps/voice/views/voiceRecordings/voiceRecordings.html",controller:"VoiceRecordingsController as vm"}},resolve:{voiceRecordings:["apiResolver","Auth","msUtils",function(e,n,t){return n.hasRole("admin")?e.resolve("voiceRecording@get",{fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,membername,rating,audio,userDisposition,userSecondDisposition,userThirdDisposition,transcribeStatus,fileText,failureReason,sentiment,sPositive,sNegative,sNeutral,sMixed",sort:"-createdAt",createdAt:t.firstLastDayMonth(),limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceRecordings",fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,membername,rating,audio,userDisposition,userSecondDisposition,userThirdDisposition,transcribeStatus,fileText,failureReason,sentiment,sPositive,sNegative,sNeutral,sMixed",sort:"-createdAt",createdAt:t.firstLastDayMonth(),limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadVoiceRecordings,privacyEnabled",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:408})}]},authenticate:!0,permissionId:408,bodyClass:"voice"}).state("app.voice.voiceRecordings.edit",{url:"/:id?tab",params:{voiceRecording:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/voiceRecordings/edit/view.html",controller:"VoiceRecordingController as vm"}},resolve:{voiceRecording:["apiResolver","$stateParams",function(e,n){return e.resolve("voiceRecording@get",{fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,membername,rating,audio,userDisposition,userSecondDisposition,userThirdDisposition,transcribeStatus,fileText,failureReason,sentiment,sPositive,sNegative,sNeutral,sMixed",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadVoiceRecordings,privacyEnabled",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:408})}]},authenticate:!0,permissionId:408,bodyClass:"voice"}).state("app.voice.chanSpies",{url:"/chanSpies",views:{"content@app":{templateUrl:"app/main/apps/voice/views/chanSpies/chanSpies.html",controller:"ChanSpiesController as vm"}},resolve:{chanSpies:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceChanSpy@get",{fields:"createdAt,updatedAt,id,name,prefix,options,auth,password,record,recordingFormat,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ChanSpies",fields:"createdAt,updatedAt,id,name,prefix,options,auth,password,record,recordingFormat,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:409})}]},authenticate:!0,permissionId:409,bodyClass:"voice"}).state("app.voice.voicePrefixes",{url:"/voicePrefixes",views:{"content@app":{templateUrl:"app/main/apps/voice/views/voicePrefixes/voicePrefixes.html",controller:"VoicePrefixesController as vm"}},resolve:{voicePrefixes:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voicePrefix@get",{fields:"createdAt,updatedAt,id,name,VoiceExtensionId,callerIdAll,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoicePrefixes",fields:"createdAt,updatedAt,id,name,VoiceExtensionId,callerIdAll,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:410})}]},authenticate:!0,permissionId:410,bodyClass:"voice"}),n.addPart("app/main/apps/voice")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.voice",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.voice.inboundRoutes","app.voice.outboundRoutes","app.voice.internalRoutes","app.voice.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.whatsapp.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/whatsapp/views/realtime/realtime.html",controller:"WhatsappRealtimeController as vm"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2110})}]},authenticate:!0,permissionId:2110}).state("app.whatsapp.realtime.agents",{url:"/agents",params:{channel:"whatsapp"},controller:"AgentsRealtimeController as vm",templateUrl:"app/main/apps/realtime/views/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getAgents",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}]},authenticate:!0,permissionId:2110}).state("app.whatsapp.realtime.queues",{url:"/queues",controller:"QueuesWhatsappRealtimeController as vm",templateUrl:"app/main/apps/whatsapp/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"WhatsappQueues":void 0,channel:"whatsapp",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2101})}]},authenticate:!0,permissionId:2110})}e.$inject=["$stateProvider"],angular.module("app.whatsapp.realtime",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.whatsapp",{abstract:!0,url:"/whatsapp"}).state("app.whatsapp.whatsappQueues",{url:"/whatsappQueues",views:{"content@app":{templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/whatsappQueues.html",controller:"WhatsappQueuesController as vm"}},resolve:{whatsappQueues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("whatsappQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"whatsapp",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"WhatsappQueues",fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"whatsapp",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2101})}]},authenticate:!0,permissionId:2101,bodyClass:"whatsapp"}).state("app.whatsapp.whatsappQueues.edit",{url:"/:id?tab",params:{whatsappQueue:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/edit/view.html",controller:"WhatsappQueueController as vm"}},resolve:{whatsappQueue:["apiResolver","$stateParams",function(e,n){return e.resolve("whatsappQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2101})}]},authenticate:!0,permissionId:2101,bodyClass:"whatsapp"}).state("app.whatsapp.whatsappAccounts",{url:"/whatsappAccounts",views:{"content@app":{templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/whatsappAccounts.html",controller:"WhatsappAccountsController as vm"}},resolve:{whatsappAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("whatsappAccount@get",{fields:"createdAt,updatedAt,id,name,key,ListId,remote,token,type,accountSid,authToken,phone,receiveUrl,deliveryReportUrl,notificationShake,notificationSound,notificationTemplate,queueTransfer,queueTransferTimeout,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,agentTransfer,agentTransferTimeout,description,baseUrl",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"WhatsappAccounts",fields:"createdAt,updatedAt,id,name,key,ListId,remote,token,type,accountSid,authToken,phone,receiveUrl,deliveryReportUrl,notificationShake,notificationSound,notificationTemplate,queueTransfer,queueTransferTimeout,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,agentTransfer,agentTransferTimeout,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2102})}]},authenticate:!0,permissionId:2102,bodyClass:"whatsapp"}).state("app.whatsapp.whatsappAccounts.edit",{url:"/:id?tab",params:{whatsappAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/view.html",controller:"WhatsappAccountController as vm"}},resolve:{whatsappAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("whatsappAccount@get",{fields:"createdAt,updatedAt,id,name,key,ListId,remote,token,type,accountSid,authToken,phone,receiveUrl,deliveryReportUrl,notificationShake,notificationSound,notificationTemplate,queueTransfer,queueTransferTimeout,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,agentTransfer,agentTransferTimeout,description,baseUrl",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadOmnichannelInteractions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2102})}]},authenticate:!0,permissionId:2102,bodyClass:"whatsapp"}),n.addPart("app/main/apps/whatsapp")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.whatsapp",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.whatsapp.realtime"]).config(e)}(),function(){"use strict";angular.module("app.navigation",[]).config(function(){})}(),function(){"use strict";function e(e,n){e.addPart("app/quick-panel")}e.$inject=["$translatePartialLoaderProvider","msApiProvider"],angular.module("app.quick-panel",[]).config(e)}(),function(){"use strict";function e(e,n){e.state("app.reset",{url:"/reset/:token",views:{"main@":{templateUrl:"app/core/layouts/content-only.html",controller:"MainController as vm"},"content@app.reset":{templateUrl:"app/reset/reset.html",controller:"ResetPasswordController as vm"}},bodyClass:"reset"}),n.addPart("app/reset")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.reset",[]).config(e)}(),function(){"use strict";function e(e){e.addPart("app/toolbar")}e.$inject=["$translatePartialLoaderProvider"],angular.module("app.toolbar",[]).config(e)}(),function(){"use strict";function e(e){e.interceptors.push("authInterceptor")}e.$inject=["$httpProvider"],angular.module("app.auth").config(e)}(),function(){"use strict";function e(e){e.onBefore({to:function(e){return!0===e.authenticate}},function(e){var n=e.injector().get("Auth"),t=e.router.stateService;return n.isLoggedIn()?n.retrieveUser().catch(function(){return t.target("app.login",void 0,{reload:!0})}):t.target("app.login",void 0,{reload:!0})}),e.onStart({to:function(e){return"app.login"!==e.name}},function(e){var n=e.injector().get("Auth"),t=e.router.stateService,a=e.$to();if(n.hasRole("agent")&&"app.dashboards.general"!=a.name)return t.target("app.dashboards.general",{redirect:!1},{reload:!0})}),e.onFinish({to:function(e){return"app.help"===e.parent.name}},function(e){var n=e.router.stateService;if("app.help"===e.$to().parent.name){var t=e.injector().get("settingsManager"),a=t?t.get():null;if(!a||!a.viewHelpSection)return n.target("app.dashboards.general",{redirect:!1},{reload:!0})}}),e.onFinish({to:function(e){return e.permissionId}},function(e){var n=e.injector().get("Auth"),t=e.router.stateService,a=e.$to();if(n.hasRole("user")){if(!n.hasPermission(a.permissionId))return t.target("app.dashboards.general",{redirect:!1},{reload:!0});var i=e.params().id?Number(e.params().id):void 0;if(i)return n.hasResourcePermission(a.permissionId,i).catch(function(){return t.target(a.parent.name,{redirect:!1},{reload:!0})})}}),e.onFinish({to:function(e){return"app.dashboards.general"===e.parent.name}},function(e){var n=e.injector().get("Auth"),t=e.router.stateService;e.$to();if(n.hasRole("user")&&!n.hasPermission(100))return t.target("app.dashboards.general",{redirect:!1},{reload:!0})})}e.$inject=["$transitions"],angular.module("app.auth").run(e)}(),function(){"use strict";function e(a,e,o,n,i,r,l,s,d){var c;return{getToken:t,getCurrentUser:function(){return c},getPermissions:b,hasChildrenPermissions:function(e){return!!e&&_.some(e,function(e){return f(e)})},hasModulePermissions:function(i){return o(function(a,n){v()?a(!0):r.userProfileSection.get({userProfileId:c.userProfileId}).$promise.then(function(e){var n=e&&e.rows?e.rows:[];if(_.isEmpty(n))a(!1);else{var t=_.filter(n,function(e){return e.enabled});a(_.some(t,["category",i]))}}).catch(function(e){n(e)})})},hasModulesPermissions:function(s){return o(function(a,n){var i={};v()?(s.forEach(function(e){i[e]=!0}),a(i)):r.userProfileSection.get({userProfileId:c.userProfileId}).$promise.then(function(e){var n=e&&e.rows?e.rows:[];if(_.isEmpty(n))a({});else{var t=_(n).filter(function(e){return e.enabled&&_.includes(s,e.category)}).uniqBy(function(e){return e.category}).map(function(e){return e.category}).value();t.forEach(function(e){i[e]=!0}),a(i)}}).catch(function(e){n(e)})})},hasRole:function(e){return!!c&&c.role===e},hasPermission:f,hasResourcePermission:function(e,s){return o(function(a,i){return r.userProfileSection.get({userProfileId:c.userProfileId,sectionId:e}).$promise.then(function(e){var n=e.rows[0];if(n.autoAssociation)return a();var t=l.getActiveItem().node;return t.permissions&&!1===t.permissions.association?a():r.userProfileResource.get({sectionId:n.id,nolimit:!0}).$promise.then(function(e){var n=e.rows;_.some(n,["resourceId",s])?a():i()})}).catch(function(e){i("Error retrieving user profile permissions",e)})})},hasSectionPermissions:function(a){return o(function(e,n){var t={};return A().then(function(){_.includes(c.permissions,a)&&(t[a]=!0),e(t)}).catch(function(e){n(e)})})},hasSectionsPermissions:function(a){return o(function(e,n){var t={};if(!v())return A().then(function(){a.forEach(function(e){_.includes(c.permissions,e)&&(t[e]=!0)}),e(t)}).catch(function(e){n(e)});a.forEach(function(e){t[e]=!0}),e(t)})},isAgent:g,isAdmin:v,isLoggedIn:function(){return!!t()},isTelephone:function(){return"telephone"===c.role},isUser:h,login:function(e){return o(function(n,t){r.auth.local(e).$promise.then(function(e){return s.get().secureCookieEnabled?d.set("motion.token",e.token,{secure:!0,sameSite:"none"}):d.set("motion.token",e.token),r.user.get({id:e.id}).$promise}).then(function(e){(c=e).lastLoginAt=moment().format("YYYY-MM-DD HH:mm:ss"),E("LOCAL_LOGIN")}).then(function(){if(g()&&1===c.showWebBar&&c.hotdesk)return a.show({controller:"HotDeskDialogController",controllerAs:"vm",templateUrl:"app/auth/services/hotdesk/dialog.html",parent:angular.element(i.body),clickOutsideToClose:!1,resolve:{telephones:["apiResolver",function(e){return e.resolve("user@get",{fields:"id,fullname,name,internal",role:"telephone",nolimit:!0})}]}})}).then(function(e){return g()&&0!==c.showWebBar?m(e):v()||h()?u(!0):void 0}).then(function(e){c=_.assign(c,e),n()}).catch(function(e){t(e)})})},logout:function(t){return o(function(e,n){t?(p(),e()):o.resolve().then(function(){return g()&&0!==c.showWebBar?o(function(e,n){r.user.logout({id:c.id,device:"web"}).$promise.then(function(){e()}).catch(function(e){n(e)})}):v()||h()?u(!1):void 0}).then(function(){p(),e()}).catch(function(e){n(e)})})},parseCrudPermissions:function(e){return v()?{readOnly:!1,canEdit:!0,canDelete:!0}:e?{readOnly:!(!_.includes(e,"r")||1!==e.length),canEdit:!!_.includes(e,"e"),canDelete:!!_.includes(e,"d")}:{readOnly:!0,canEdit:!1,canDelete:!1}},queueLogin:m,reloadPermissions:A,removeCookies:p,retrieveUser:function(){return o(function(n,t){r.user.whoami().$promise.then(function(n){return"user"===n.role?b(n.userProfileId).then(function(e){return n.permissions=e,n}):n}).then(function(e){n(c=e)}).catch(function(e){t(e)})})},setCurrentUser:function(e){c=_.merge(c,e)},getAuthenticationType:function(){return n.localStorage["motion.authenticationtype"]||"NONE"},loginSSO:function(e){return E("SSO_LOGIN"),"/api/auth/"+e}};function t(){return e.get("motion.token")}function m(e){return o(function(n,t){r.user.login({id:c.id,device:"web",intrf:e}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}function u(a){return o(function(n,t){var e={online:a,lastLoginAt:a?moment().format("YYYY-MM-DD HH:mm:ss"):void 0};r.user.update({id:c.id},e).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}function p(){e.remove("motion.token"),c&&(n.localStorage.removeItem("motion.user:"+c.id),n.localStorage.removeItem("motion.authenticationtype"),c=null)}function g(){return"agent"===c.role}function v(){return"admin"===c.role}function h(){return"user"===c.role}function f(e){return!!c&&_.includes(c.permissions,e)}function b(e){var a=[];return o(function(n,t){return e||n(a),r.userProfile.getSections({id:e}).$promise.then(function(e){for(var n=0;n<e.length;n++){var t=e[n];a.push(t.sectionId),t.subsections&&(a=_.concat(a,t.subsections))}return a}).then(function(e){n(e)}).catch(function(e){t("Error retrieving user profile permissions",e)})})}function A(){return o(function(n,t){b(c.userProfileId).then(function(e){c.permissions=e,n()}).catch(function(e){t(e)})})}function E(e){n.localStorage["motion.authenticationtype"]=e}}e.$inject=["$mdDialog","$cookies","$q","$window","$document","api","msNavigationService","settingsManager","jscookie"],angular.module("app.auth").factory("Auth",e)}(),function(){"use strict";function e(n,e){this.telephones=e,this.closeDialog=function(e){n.hide(e)},e.count&&(this.name=e.rows[0].name)}e.$inject=["$mdDialog","telephones"],angular.module("app.auth").controller("HotDeskDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s;return{request:function(e){var n=t.get("motion.token");return e.headers=e.headers||{},i.isSameOrigin(e.url)&&n&&(e.headers.Authorization="Bearer "+n),e},responseError:function(e){switch(e.status){case 401:t.remove("motion.token"),(s||(s=a.get("$state"))).go("app.login")}return n.reject(e)}}}e.$inject=["$rootScope","$q","$cookies","$injector","Util"],angular.module("app.auth").factory("authInterceptor",e)}(),function(){"use strict";function e(n){var t={safeCb:function(e){return angular.isFunction(e)?e:angular.noop},urlParse:function(e){var n=document.createElement("a");return n.href=e,""===n.host&&(n.href=n.href),n},isSameOrigin:function(i,e){return i=t.urlParse(i),(e=(e=e&&[].concat(e)||[]).map(t.urlParse)).push(n.location),1<=(e=e.filter(function(e){var n=i.hostname===e.hostname,t=i.protocol===e.protocol,a=i.port===e.port||""===e.port&&("80"===i.port||"443"===i.port);return n&&t&&a})).length}};return t}e.$inject=["$window"],angular.module("app.auth").factory("Util",e)}(),function(){"use strict";angular.module("app.core").provider("motionConfig",function(){var t={disableCustomScrollbars:!1,disableMdInkRippleOnMobile:!0,disableCustomScrollbarsOnMobile:!0};this.config=function(e){t=angular.extend({},t,e)},this.$get=function(){var e={getConfig:function(e){if(angular.isUndefined(t[e]))return!1;return t[e]},setConfig:function(e,n){t[e]=n}};return e}})}(),function(){"use strict";function e(e,n,t,a){n.debugEnabled(!0),e.config({tabindex:!1}),a.config({disableCustomScrollbars:!1,disableCustomScrollbarsOnMobile:!0,disableMdInkRippleOnMobile:!0}),t.config({wheelPropagation:!0})}e.$inject=["$ariaProvider","$logProvider","msScrollConfigProvider","motionConfigProvider"],angular.module("app.core").config(e)}(),function(){"use strict";function e(e,n,t){(n.generate(),t.getConfig("disableMdInkRippleOnMobile")&&e.isMobile())&&angular.element("body").attr("md-no-ink",!0);e.isMobile()&&angular.element("html").addClass("is-mobile");var a=e.detectBrowser();if(a){var i=a.browser+" "+a.version+" "+a.os;angular.element("html").addClass(i)}}e.$inject=["msUtils","motionGenerator","motionConfig"],angular.module("app.core").run(e)}(),function(){"use strict";function e(n,e,t,a,i,s){var l=this;function o(){var e=_.filter(l.searchOptions.conditions,["disabled",!1]),o=[],r="";if(_(e).groupBy("name").forEach(function(e){var n=e[0],t=1<e.length,a=n.query.column;if(t){var i=_(e).groupBy(function(e){return e.query.operator}).mapValues(function(e){return _.chain(e).map(function(e){return e.query.value}).flattenDeep().value()}).value(),s=[];_.keys(i).forEach(function(e){var n=i[e],t=e;_.includes(["$between","$in","$notIn"],e)?t+="["+n+"]":n.forEach(function(e){t+="["+e+"]"}),s.push(t)}),r+=a+":="+s.join(":=")}else r=a+":="+n.query.operator+"["+n.query.value+"]";o.push(r)}),0!==o.length){var n="["+l.searchOptions.matchType+"]";return n+=o.join("||")}}function r(){var e=n.localStorage.getItem("motion2."+s+":"+l.currentUser.id);return e?JSON.parse(e):{}}function d(e){n.localStorage.setItem("motion2."+s+":"+l.currentUser.id,JSON.stringify(e))}function c(){if(s){var e=r();e.advancedSearch=_.omit(l.searchOptions,"fields"),d(e)}}function m(){return!!r().advancedSearch}l.currentUser=t.getCurrentUser(),l.searchOptions={matchType:"$and",conditions:[],fields:i},l.toolbarColor=a,l.onInit=function(){if(s){var e=r();e.hasOwnProperty("advancedSearch")&&(l.searchOptions=_.merge(l.searchOptions,e.advancedSearch))}},l.applyFilter=function(){c(),e.hide({apply:!0,value:o()})},l.clearConditions=function(){l.searchOptions.conditions=[],function(){if(s){var e=r();delete e.advancedSearch,e.query&&delete e.query.search,d(e)}}()},l.minimize=function(){c(),e.hide({apply:!m(),value:o()||m()?!_.isEmpty(l.searchOptions.conditions):void 0})},l.close=function(){e.hide({apply:!m(),value:o()||m()?!_.isEmpty(l.searchOptions.conditions):void 0})}}e.$inject=["$window","$mdDialog","Auth","color","fields","storagePath"],angular.module("app.core").controller("AdvancedSearchController",e)}(),function(){"use strict";function e(a){return{restrict:"A",link:function(e,n,t){e.$watch(t.focusOn,function(e){a(function(){e?n[0].focus():n[0].blur()})})}}}e.$inject=["$timeout"],angular.module("app.core").directive("focusOn",e)}(),function(){"use strict";function e(o,l,d){return{restrict:"E",compile:function(e,n){var s;return n.code||(s=e.html(),e.empty()),function(t,a,r){r.code&&(s=t.$eval(r.code));var i=t.$eval(r.shouldInterpolate);l.when(s).then(function(e){if(e){i&&(e=d(e)(t));var n=angular.element('<pre><code class="highlight" ng-non-bindable></code></pre>');a.append(n),o(function(){!function(e,n){var t=n.find("code"),a=e.split("\n"),i=(a=a.filter(function(e){return e.trim().length}))[0].match(/^\s*/)[0],s=new RegExp("^"+i);a=a.map(function(e){return e.replace(s,"").replace(/\s+$/,"")});var o=hljs.highlight(r.language||r.lang,a.join("\n"),!0);o.value=o.value.replace(/=<span class="hljs-value">""<\/span>/gi,"").replace("<head>","").replace("<head/>",""),t.append(o.value).addClass("highlight")}(e,n)},34,!1)}})}}}}e.$inject=["$timeout","$q","$interpolate"],angular.module("app.core").directive("hljs",e)}(),function(){"use strict";function e(a,i,s,o){var r=this;function n(){var a=r.selectedField.options&&!_.isEmpty(r.selectedField.options.extraOperators),i=r.selectedField.options&&!_.isEmpty(r.selectedField.options.excludedOperators);r.availableOperators=_.filter(r.operators,function(n){var e=!n.applyTo||_.includes(n.applyTo,r.selectedField.type);n.isExtra=a&&_.some(r.selectedField.options.extraOperators,function(e){return e===n.type});var t=_.includes(n.excludeFrom,r.selectedField.type)||i&&_.includes(r.selectedField.options.excludedOperators,n.type);if((e||n.isExtra)&&!t)return n})}function t(){!r.value||_.isArray(r.value)&&_.isEmpty(r.value)?r.isValidCondition=!1:r.selectedOperator&&"$between"===r.selectedOperator.type?r.isValidCondition=!(!r.endRangeValue||!r.isValidRange):r.isValidCondition=!0}function e(){"number"===r.selectedField.type?_.isNumber(r.endRangeValue)?r.isValidRange=Number(r.endRangeValue)>Number(r.value):r.isValidRange=!0:"date"===r.selectedField.type&&(r.maxDateRange=moment(r.endRangeValue).subtract(1,"day"),r.isValidRange=!0),t()}function l(){var e=c();r.options.conditions.push(e),u()}function d(){var e=c(),n=_.findIndex(r.options.conditions,"style");r.options.conditions.splice(n,1,e),u(),r.pendingCondition.style=null,r.pendingCondition=void 0}function c(){return{name:r.selectedField.name,operator:a.instant("DASHBOARDS."+r.selectedOperator.translate),value:r.value,endValue:r.endRangeValue,displayValue:m(r.value),displayEndValue:m(r.endRangeValue),query:{column:r.selectedField.column,operator:r.selectedOperator.type,value:function(){var e,n=r.value,t=r.endRangeValue;switch(r.selectedField.type){case"date":var a=moment(n).utcOffset(0,!0).format("YYYY-MM-DD");if("$between"===r.selectedOperator.type){var i=moment(t).utcOffset(0,!0).format("YYYY-MM-DD");e=[a,i]}else e=a;break;case"number":e="$between"===r.selectedOperator.type?[n,t]:n;break;case"multiselect":var s=r.selectedField.options.field||"id";e=_.map(n,s);break;case"select":e=n.id;break;case"autocomplete":e=r.selectedOperator.isExtra?n:n.id;break;default:e=n}return e}()},disabled:!1}}function m(e){var n;if(e){switch(r.selectedField.type){case"date":n=moment(e).format("YYYY-MM-DD");break;case"multiselect":var t=_.map(e,function(e){return e.name});n="$eq"===r.selectedOperator.type?t.join(" or "):t.join(" and ");break;case"select":n=e.name;break;case"autocomplete":n=r.selectedOperator.isExtra?e:e.displayValue;break;default:n=e}return n}}function u(){r.value=null,r.endRangeValue=null,r.minDateRange=null,r.maxDateRange=null,r.isValidCondition=!1}r.operators=r.availableOperators=[{type:"$eq",symbol:"=",translate:"EQUALS",excludeFrom:["multiselect"]},{type:"$ne",symbol:"≠",translate:"IS_NOT_EQUAL",excludeFrom:["multiselect"]},{type:"$in",symbol:"∈",translate:"IS_AMONG",applyTo:["multiselect"]},{type:"$notIn",symbol:"∉",translate:"IS_NOT_AMONG",applyTo:["multiselect"]},{type:"$substring",symbol:"⊃",translate:"CONTAINS",applyTo:["text"]},{type:"$startsWith",symbol:"a..",translate:"STARTS_WITH",applyTo:["text"]},{type:"$endsWith",symbol:"..a",translate:"ENDS_WITH",applyTo:["text"]},{type:"$lt",symbol:"<",translate:"IS_LESS_THAN",applyTo:["date","number"]},{type:"$gt",symbol:">",translate:"IS_GREATER_THAN",applyTo:["date","number"]},{type:"$lte",symbol:"≤",translate:"IS_LESS_THAN_OR_EQUAL_TO",applyTo:["date","number"]},{type:"$gte",symbol:"≥",translate:"IS_GREATER_THAN_OR_EQUAL_TO",applyTo:["date","number"]},{type:"$between",symbol:"≬",translate:"IS_BETWEEN",applyTo:["date","number"]}],r.addCondition=l,r.editCondition=function(e){r.pendingCondition=e,r.pendingCondition.style="md-amber-200-bg",r.selectedField=_.find(r.options.fields,["name",r.pendingCondition.name]),n(),r.selectedOperator=_.find(r.availableOperators,["type",r.pendingCondition.query.operator]),"date"===r.selectedField.type&&"string"==typeof r.pendingCondition.value?(r.value=new Date(r.pendingCondition.value),r.minDateRange=moment(r.value).add(1,"day"),r.endRangeValue=r.pendingCondition.endValue?new Date(r.pendingCondition.endValue):void 0):(r.value=r.pendingCondition.value,r.endRangeValue=r.pendingCondition.endValue);r.isValidRange=!0,r.isValidCondition=!0},r.updateCondition=d,r.cancelUpdateCondition=function(){r.pendingCondition.style=null,r.pendingCondition=void 0},r.setConditionStatus=function(e){e.style=e.disabled?void 0:"chip-disabled",e.disabled=!e.disabled},r.removeCondition=function(){_.isEmpty(r.options.conditions)&&r.clearFilter()},r.getValues=function(){var n=angular.copy(r.selectedField.options.route);if("autocomplete"===r.selectedField.type)for(var e=0;e<Object.keys(n.params).length;e++){var t=Object.keys(n.params)[e];"@autocomplete"===n.params[t]&&(n.params[t]=r.searchText)}{if(!r.selectedField.values)return s[n.model][n.action](n.params).$promise.then(function(e){if("autocomplete"!==r.selectedField.type)return r.selectedField.values=e.rows;var n=r.searchText?_.filter(e.rows,function(e){e.displayValue="";for(var n=0;n<r.selectedField.options.searchFields.length;n++){var t=r.selectedField.options.searchFields[n],a=e[t]||"";e.displayValue+=a+" "}return _.trimEnd(e.displayValue),_.includes(e.displayValue.toLowerCase(),r.searchText.toLowerCase())}):[];return i.when(n)}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:n.model.toUpperCase()+"."+n.action.toUpperCase(),msg:e.data?JSON.stringify(e.data.message):e.toString()})});r.selectedField.values.forEach(function(e){e.translate&&(e.name=a.instant(e.translate))})}},r.onFieldChange=function(){r.value=void 0,r.endRangeValue=void 0,r.searchText=void 0,r.isValidCondition=!1,n(),r.autoSelectOperator=1===r.availableOperators.length,r.autoSelectOperator||(r.selectedOperator=void 0)},r.onOperatorChange=function(e){r.isValidRange=!0,r.selectedOperator&&(e?e.applyTo?0<_.difference(r.selectedOperator.applyTo,e.applyTo).length&&(r.value=null):r.selectedOperator.applyTo&&(r.value=null):r.value=null,"between"!=r.selectedOperator.type&&(r.endRangeValue=null),r.selectedField.options&&!_.isEmpty(r.selectedField.options.extraOperators)&&(r.selectedOperator.isExtra=_.some(r.selectedField.options.extraOperators,function(e){return e===r.selectedOperator.type})));t()},r.onValueChange=function(){r.selectedOperator&&"$between"===r.selectedOperator.type?"number"===r.selectedField.type?e():"date"===r.selectedField.type&&(r.minDateRange=moment(r.value).add(1,"day"),t()):t()},r.checkRange=e,r.handleKeyboardAction=function(){r.pendingCondition?d():l()}}e.$inject=["$translate","$q","api","toasty"],angular.module("app.core").directive("msAdvancedSearch",function(){return{restrict:"E",scope:{options:"=",clearFilter:"&"},controller:e,controllerAs:"vm",bindToController:!0,templateUrl:"app/core/directives/ms-advanced-search/ms-advanced-search.html"}})}(),function(){"use strict";angular.module("app.core").directive("msCard",function(){return{restrict:"E",scope:{templatePath:"=template",card:"=ngModel",vm:"=viewModel"},template:'<div class="ms-card-content-wrapper" ng-include="templatePath" onload="cardTemplateLoaded()"></div>',compile:function(e){return e.addClass("ms-card"),function(e,n){e.cardTemplateLoaded=function(){e.$emit("msCard::cardTemplateLoaded",n)}}}}})}(),function(){"use strict";angular.module("app.core").directive("msChipColor",function(){return{restrict:"A",link:function(e,i,n){n.$observe("msChipColor",function(e){var n=i.parent().parent();if(n.hasClass("md-background-bg md-hue-3")||n.addClass("md-background-bg md-hue-3"),_.isEmpty(e)){var t=n[0].className.split(" "),a=t.indexOf("md-hue-3");t.length=a+1,n[0].className=t.join(" ")}else n.addClass(e)})}}})}(),function(){"use strict";angular.module("app.core").directive("msClickToCall",function(){return{restrict:"E",scope:{type:"=",disabled:"=",target:"=",prefix:"=",license:"="},controller:["$scope","$rootScope","$http","$translate","$document","$mdDialog","Auth","toasty","api",function(t,n,a,i,s,o,e,r,l){function d(e){switch(t.currentUser.showWebBar){case 0:return m("http://127.0.0.1:"+(t.currentUser.phoneBarRemoteControlPort||"9888")+"/api/originate/"+c(e));case 2:return n.$broadcast("webrtc::call",{target:c(e)})}}function c(e){return _.isNil(e)?"":e.replace(/[^\w.+#*\-]+/g,"")}function m(e){return a.get(e).success(function(){r.success({title:"Successful call",msg:"Call properly handled!"})}).error(function(e){r.error({title:"PhoneBar API Error",msg:i.instant("CONTACTMANAGER.ERRORS.PHONEBAR_API")})})}t.currentUser=e.getCurrentUser(),t.privacy=t.currentUser.privacyEnabled,t.showMenu=function(){return t.target&&t.target.indexOf("@")<0&&t.target!=t.currentUser.internal&&t.target!=t.currentUser.name&&(0==t.currentUser.showWebBar&&t.currentUser.phoneBarRemoteControl||2==t.currentUser.showWebBar&&t.license.webrtc)&&!t.disabled},t.call=function(e){return 2!==t.currentUser.showWebBar?(n=e,l.user.getVoicePrefixes({id:t.currentUser.id}).$promise.then(function(e){if(e.count)return o.show({controller:"PrefixDialogController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/prefix/dialog.html",parent:angular.element(s.body),clickOutsideToClose:!0,locals:{prefixes:e,required:t.currentUser.phoneBarPrefixRequired}})}).then(function(e){t.currentUser.phoneBarPrefixRequired?e&&-1!==e&&d(e+n):e&&-1!==e?d(e+n):e||d(n)})):d(e);var n},t.transfer=function(e){switch(t.currentUser.showWebBar){case 0:return m("http://127.0.0.1:"+(t.currentUser.phoneBarRemoteControlPort||"9888")+"/api/transfer?number="+c(e));case 2:n.$broadcast("webrtc::transfer",{target:c(e)})}}}],templateUrl:"app/core/directives/ms-click-to-call/ms-click-to-call.html"}})}(),function(){"use strict";function e(i){return{require:"ngModel",priority:1,link:function(e,n,t,a){a.$formatters.push(i.formatter),a.$parsers.push(i.parser)}}}e.$inject=["msDatepickerFixConfig"],angular.module("app.core").provider("msDatepickerFixConfig",function(){var n={formatter:function(e){return e?""===e?e:new Date(e):""},parser:function(e){return e?moment(e).add(moment(e).utcOffset(),"m").toDate():""}};this.config=function(e){n=angular.extend({},n,e)},this.$get=function(){return n}}).directive("msDatepickerFix",e)}(),function(){"use strict";function e(s){return{restrict:"E",scope:{id:"=",model:"=",element:"=",title:"=",path:"="},replace:!0,link:function(n,e){var t=!1,a={};a.id=n.id,_.isNil(n.path)||(a.path=n.path);var i=document.createElement(n.element);i.setAttribute("preload","none"),i.setAttribute("controls","true"),"audio"===n.element&&i.setAttribute("style","width: 265px;"),"video"===n.element&&i.setAttribute("style","max-width: 500px;"),i.setAttribute("title",n.title),i.setAttribute("src"," "),i.onplay=function(e){t||(t=!0,e.preventDefault(),s[n.model].download(a).$promise.then(function(e){var n=[e.buffer],t=new Blob(n,{type:e.type});i.setAttribute("type",e.type),i.setAttribute("src",URL.createObjectURL(t)),i.play()}).catch(function(e){console.error(e)}))},e.append(i)}}}e.$inject=["api"],angular.module("app.core").directive("msDialogRecording",e)}(),function(){"use strict";function e(i){return{restrict:"A",link:function(t,a){a.bind("click",function(e){var n=i('<div layout="row" class="spinner-overlay" layout-sm="column" layout-align="center center" aria-label="wait"><md-progress-circular md-mode="indeterminate"></md-progress-circular></div>')(t);a.closest("md-dialog").prepend(n)})}}}e.$inject=["$compile"],angular.module("app.core").directive("msDialogSpinner",e)}(),function(){"use strict";function e(){var o=this;function a(e,n,t,a){var i=[];if(0<=t)i.push(e[t]),n.push(e[t]),e.splice(t,1);else{for(var s=0;s<e.length;s++)void 0!==e[s].isValid&&e[s].isValid&&n.push(e[s]);for(s=e.length-1;0<=s;s--)e[s].isValid&&e.splice(s,1);i=n}o.options.transferCallback&&o.options.transferCallback(i,a)}o.canTransfer=function(e,n,t){if(void 0!==e.isValid&&e.isValid)return t?a(n.selectedItems,n.items,n.selectedItems.indexOf(e),t):a(n.items,n.selectedItems,n.items.indexOf(e),t)},o.transfer=a,o.getLine=function(e,n){var t="";if(_.isNil(n))return t;{if(_.isArray(n)){for(var a=0;a<n.length;a++)t+=" "+(e[n[a]]?e[n[a]]:"");return t}return e[n]?e[n]:""}}}angular.module("app.core").directive("msDualMultiselect",function(){return{restrict:"E",scope:{options:"=",readOnly:"=",addDisabled:"<"},controller:e,controllerAs:"vm",bindToController:!0,templateUrl:"app/core/directives/ms-dual-multiselect/ms-dual-multiselect.html"}})}(),function(){"use strict";function e(a){return{restrict:"E",replace:!0,scope:{onReply:"&",ngModel:"=",ctrlMethods:"=",pickerPosition:"=",search:"=",recentEmojis:"=",placeholder:"="},template:'<textarea class="emojionearea"></textarea>',link:function(t,e){var n=e.emojioneArea({pickerPosition:t.pickerPosition,search:t.search,recentEmojis:t.recentEmojis,placeholder:a.instant(t.placeholder||"Type a message"),attributes:{spellcheck:!0},events:{keyup:function(e,n){t.ngModel=this.getText(),t.onReply({event:n,body:this.getText()})},emojibtn_click:function(){t.ngModel=this.getText()}}});t.ngModel&&n[0].emojioneArea.setText(t.ngModel),t.internalControl=t.ctrlMethods||{},t.internalControl.setText=function(e){n[0].emojioneArea.setText(e)},t.internalControl.getText=function(){return n[0].emojioneArea.getText()},t.$watch("ngModel",function(e){e||n[0].emojioneArea.setText("")})}}}e.$inject=["$translate"],angular.module("app.core").directive("msEmojiArea",e)}(),function(){"use strict";angular.module("app.core").directive("msFontFamily",function(){return{restrict:"E",scope:{ngModel:"="},controller:["$scope",function(e){e.fonts=[{option:"Arial",value:"Arial,Helvetica,sans-serif"},{option:"Century Gothic",value:"Century Gothic,Futura,Didact Gothic,san-serif"},{option:"Calibri",value:"Calibri, Verdana, Geneva, sans-serif"},{option:"Comic Sans MS",value:"Comic Sans MS,cursive"},{option:"Courier New",value:"Courier New,Courier,monospace"},{option:"Georgia",value:"Georgia,serif"},{option:"Lucida Sans Unicode",value:"Lucida Sans Unicode,Lucida Grande,sans-serif"},{option:"Tahoma",value:"Tahoma,Geneva,sans-serif"},{option:"Times New Roman",value:"Times New Roman,Times,serif"},{option:"Trebuchet MS",value:"Trebuchet MS,Helvetica,sans-serif"},{option:"Verdana",value:"Verdana,Geneva,sans-serif"}]}],templateUrl:"app/core/directives/ms-font-family/ms-font-family.html"}})}(),function(){"use strict";angular.module("app.core").controller("MsFormWizardController",function(){var n=this;function e(){return n.forms.length}function t(){return 0===n.selectedIndex}function a(){return n.selectedIndex===e()-1}n.forms=[],n.selectedIndex=0,n.registerForm=function(e){n.forms.push(e)},n.previousStep=function(){if(t())return;n.selectedIndex--},n.nextStep=function(){if(a())return;n.selectedIndex++},n.firstStep=function(){n.selectedIndex=0},n.lastStep=function(){n.selectedIndex=e()-1},n.totalSteps=e,n.isFirstStep=t,n.isLastStep=a,n.currentStepInvalid=function(){return angular.isDefined(n.forms[n.selectedIndex])&&n.forms[n.selectedIndex].$invalid},n.previousStepInvalid=function(){return 0<n.selectedIndex&&angular.isDefined(n.forms[n.selectedIndex-1])&&n.forms[n.selectedIndex-1].$invalid},n.formsIncomplete=function(){for(var e=0;e<n.forms.length;e++)if(n.forms[e].$invalid)return!0;return!1},n.resetForm=function(){for(var e=n.selectedIndex=0;e<n.forms.length;e++)n.forms[e].$setPristine(),n.forms[e].$setUntouched()}}).directive("msFormWizard",function(){return{restrict:"E",scope:!0,controller:"MsFormWizardController as msWizard",compile:function(e){return e.addClass("ms-form-wizard"),function(){}}}}).directive("msFormWizardForm",function(){return{restrict:"A",require:["form","^msFormWizard"],compile:function(e){return e.addClass("ms-form-wizard-form"),function(e,n,t,a){var i=a[0],s=a[1];s.registerForm(i)}}}})}(),function(){"use strict";function e(i){return{restrict:"E",scope:{onClose:"&"},transclude:!0,templateUrl:"app/core/directives/ms-info-bar/ms-info-bar.html",link:function(e,n){var t=i.find("ms-info-bar-active"),a="ms-info-bar-active";t.addClass(a),e.removeInfoBar=function(){t.removeClass(a),n.remove(),e.onClose&&e.onClose(),e.$destroy()}}}}e.$inject=["$document"],angular.module("app.core").directive("msInfoBar",e)}(),function(){"use strict";function e(r,a,l,e){var d=this,n={columnCount:5,respectItemOrder:!1,reLayoutDebounce:400,responsive:{md:3,sm:2,xs:1}},t=!0;function i(){t&&e.cancel(t),t=e(function(){!function(){d.containerPos=d.container[0].getBoundingClientRect(),function(){d.columnCount=d.options.columnCount,l("gt-md")?d.columnCount=d.options.columnCount:l("md")?d.columnCount=d.columnCount>d.options.responsive.md?d.options.responsive.md:d.columnCount:l("sm")?d.columnCount=d.columnCount>d.options.responsive.sm?d.options.responsive.sm:d.columnCount:d.columnCount=d.options.responsive.xs;d.columnWidth=d.containerPos.width/d.columnCount}(),r.$broadcast("msMasonry:relayoutStarted"),d.items=d.container.find("ms-masonry-item");for(var e=Array.apply(null,new Array(d.columnCount)).map(function(){return 0}),n=0;n<d.items.length;n++){var t,a,i,s,o=d.items[n];(o=angular.element(o)).scope()&&o.scope().$broadcast("msMasonryItem:startReLayout"),o.css({width:d.columnWidth}),d.options.respectItemOrder?(i=n%d.columnCount,s=e[i]):(s=Math.min.apply(Math,e),i=e.indexOf(s)),e[i]=s+o[0].getBoundingClientRect().height,t=Math.round(i*d.columnWidth),a=s,o.css({transform:"translate3d("+t+"px,"+a+"px,0px)"}),o.addClass("placed"),o.scope()&&o.scope().$broadcast("msMasonryItem:finishReLayout")}}(),r.$broadcast("msMasonry:relayoutFinished")},d.options.reLayoutDebounce)}d.options=null,d.container=[],d.containerPos="",d.columnWidth="",d.items=[],d.reLayout=i,d.initialize=function(){d.options=d.options?angular.extend(n,d.options):n,r.$watch(function(){return d.container.width()},function(e,n){e!==n&&i()})},d.waitImagesLoaded=function(e,n){if("undefined"!=typeof imagesLoaded){var t=a.imagesLoaded(e);t.on("done",function(){n()})}else n()},r.$on("msMasonry:relayout",function(){i()})}function n(o){return{restrict:"AEC",controller:"msMasonryController",compile:function(i,s){return{pre:function(e,n,t,a){a.options=angular.fromJson(s.options||"{}"),a.container=i},post:function(e,n,t,a){o(function(){a.initialize()})}}}}}e.$inject=["$scope","$window","$mdMedia","$timeout"],n.$inject=["$timeout"],angular.module("app.core").controller("msMasonryController",e).directive("msMasonry",n).directive("msMasonryItem",function(){return{restrict:"AEC",require:"^msMasonry",priority:1,link:function(e,n,t,a){a.waitImagesLoaded(n,function(){a.reLayout()}),e.$on("msMasonryItem:finishReLayout",function(){e.$watch(function(){return n.height()},function(e,n){e!==n&&a.reLayout()})}),n.on("$destroy",function(){a.reLayout()})}}})}(),function(){"use strict";function e(t,e,a,i){var s=this;function o(e,n){s.selectedPalette=e,s.selectedHues=n}function r(){o(!(s.selectedColor={palette:"",hue:"",class:""}),!1),d()}function l(e,n){s.selectedColor={palette:e,hue:n,class:"md-"+e+"-"+n+"-bg",bgColorValue:i.rgba(s.palettes[e][n].value),fgColorValue:i.rgba(s.palettes[e][n].contrast)},"obj"!==s.msModelType||angular.equals(s.selectedColor,s.modelCtrl.$viewValue)||d(),o(e,s.palettes[e]),t.$selectedColor=s.selectedColor}function d(){"class"===s.msModelType?s.modelCtrl.$setViewValue(s.selectedColor.class):"obj"===s.msModelType&&s.modelCtrl.$setViewValue(s.selectedColor)}s.palettes=e,s.selectedPalette=!1,s.selectedHues=!1,t.$selectedColor={},s.activateHueSelection=o,s.selectColor=function(e,n){l(e,n),d(),a.hide()},s.removeColor=r,t.$watch("ngModel",function(){if(!s.modelCtrl.$viewValue||""===s.modelCtrl.$viewValue)return void r();var e,n;if("class"===s.msModelType){var t=s.modelCtrl.$viewValue.split("-");n=5<=t.length?(e=t[1]+"-"+t[2],t[3]):(e=t[1],t[2])}else"obj"===s.msModelType&&(e=s.modelCtrl.$viewValue.palette,n=s.modelCtrl.$viewValue.hue||500);l(e,n)})}e.$inject=["$scope","$mdColorPalette","$mdMenu","motionGenerator"],angular.module("app.core").controller("msMaterialColorPickerController",e).directive("msMaterialColorPicker",function(){return{require:["msMaterialColorPicker","ngModel"],restrict:"E",scope:{ngModel:"=",msModelType:"@?"},controller:"msMaterialColorPickerController as vm",transclude:!0,templateUrl:"app/core/directives/ms-material-color-picker/ms-material-color-picker.html",link:function(e,n,t,a,i){var s=a[0];s.modelCtrl=a[1],s.msModelType=e.msModelType||"class",i(e,function(e){(e=e.filter(function(e,n){return 1===n.nodeType})).length&&n.find("ms-color-picker-button").replaceWith(e)})}}})}(),function(){"use strict";function e(p,g,v){return{restrict:"A",link:function(e,n,t){var a="true"===t.msNavIsFolded,i=!1,s=angular.element(p[0].body),o=angular.element('<div id="ms-nav-fold-open-overlay"></div>'),r=angular.element('<div id="ms-nav-fold-close-overlay"></div>'),l=n.parent();function d(){s.addClass("ms-nav-folded"),g.$broadcast("msNav::forceCollapse"),n.scrollTop(0),l.append(o),o.on("mouseenter touchstart",function(e){c(e),i=!0})}function c(e){angular.isDefined(e)&&e.preventDefault(),s.addClass("ms-nav-folded-open"),g.$broadcast("msNav::expandMatchingToggles"),l.find(o).remove(),l.parent().append(r),r.on("mouseenter touchstart",function(e){m(e),i=!1})}function m(e){angular.isDefined(e)&&e.preventDefault(),g.$broadcast("msNav::forceCollapse"),n.scrollTop(0),s.removeClass("ms-nav-folded-open"),l.parent().find(r).remove(),l.append(o),o.on("mouseenter touchstart",function(e){c(e),i=!0})}function u(){s.removeClass("ms-nav-folded ms-nav-folded-open"),g.$broadcast("msNav::expandMatchingToggles"),n.off("mouseenter mouseleave")}v.setFoldable(e,n,a),a?d():u(),e.toggleFold=function(){(a=!a)?d():u()},e.openFolded=c,e.closeFolded=m,e.isNavFoldedOpen=function(){return i},e.$on("$destroy",function(){o.off("mouseenter touchstart"),r.off("mouseenter touchstart"),n.off("mouseenter mouseleave")})}}}function n(t,a,i){return{restrict:"E",scope:{},controller:"MsNavController",compile:function(e){return e.addClass("ms-nav"),function(e){t.$broadcast("msNav::expandMatchingToggles");var n=t.$on("$stateChangeSuccess",function(){t.$broadcast("msNav::expandMatchingToggles"),a.when("navigation").then(function(e){e.close(),i.isNavFoldedOpen()&&i.closeFolded()})});e.$on("$destroy",function(){n()})}}}}function t(m,u,p,g){return{restrict:"A",require:"^msNav",scope:!0,compile:function(e,n){return e.addClass("ms-nav-toggle"),angular.isUndefined(n.collapsed)&&(n.collapsed=!0),e.attr("collapsed",n.collapsed),function(a,i,e,t){var s={expanded:"expanded",expandAnimation:"expand-animation",collapseAnimation:"collapse-animation"},n=i.find("a"),o=[],r=/\(.*\)/g;function l(){return"true"===i.attr("collapsed")}function d(){var e=u.defer();if(!l())return e.reject({error:!0}),e.promise;i.attr("collapsed",!1);var n=angular.element(i.find("ms-nav-toggle-items")[0]);n.css({position:"absolute",visibility:"hidden",display:"block",height:"auto"});var t=n[0].offsetHeight;return n.css({position:"",visibility:"",display:"",height:""}),a.$evalAsync(function(){p.animate(n,{display:"block",height:"0px"},{height:t+"px"},s.expandAnimation).then(function(){n.addClass(s.expanded),n.css({height:""}),e.resolve({success:!0})})}),e.promise}function c(){var e=u.defer();if(l())return e.reject({error:!0}),e.promise;i.attr("collapsed",!0);var n=angular.element(i.find("ms-nav-toggle-items")[0]),t=n[0].offsetHeight;return a.$evalAsync(function(){p.animate(n,{height:t+"px"},{height:"0px"},s.collapseAnimation).then(function(){n.removeClass(s.expanded),n.css({display:"",height:""}),e.resolve({success:!0})})}),e.promise}angular.forEach(n,function(e){var n=angular.element(e).attr("ui-sref");angular.isUndefined(n)||(n=n.replace(r,""),o.push(n))}),t.setToggleItem(i,a),i.children(".ms-nav-button").on("click",function(){if(t.isDisabled())return;t.disable(),l()?(t.clearLockedItems(),a.$emit("msNav::pushToLockedList"),m.$broadcast("msNav::collapse"),d().then(function(){t.enable()})):a.$broadcast("msNav::forceCollapse")}),a.$on("$destroy",function(){i.children(".ms-nav-button").off("click")}),a.$on("msNav::collapse",function(){var e=t.getLockedItems(),n=!1;angular.forEach(e,function(e){angular.equals(e.scope,a)&&(n=!0)}),n||c().then(function(){t.enable()})}),a.$on("msNav::forceCollapse",function(){c().then(function(){t.enable()})}),a.$on("msNav::expandMatchingToggles",function(){var n=g.current.name,t=!1;angular.forEach(o,function(e){n===e&&(t=!0)}),t?d():c()}),a.$on("msNav::pushToLockedList",function(){t.setLockedItem(i,a)})}}}}e.$inject=["$document","$rootScope","msNavFoldService"],n.$inject=["$rootScope","$mdComponentRegistry","msNavFoldService"],t.$inject=["$rootScope","$q","$animate","$state"],angular.module("app.core").factory("msNavFoldService",function(){var t={};return{setFoldable:function(e,n){t={scope:e,element:n}},isNavFoldedOpen:function(){return t.scope.isNavFoldedOpen()},toggleFold:function(){t.scope.toggleFold()},openFolded:function(){t.scope.openFolded()},closeFolded:function(){t.scope.closeFolded()}}}).directive("msNavIsFolded",e).controller("MsNavController",function(){var e=this,n=!1,t=[],a=[];e.isDisabled=function(){return n},e.enable=function(){n=!1},e.disable=function(){n=!0},e.setToggleItem=function(e,n){t.push({element:e,scope:n})},e.getLockedItems=function(){return a},e.setLockedItem=function(e,n){a.push({element:e,scope:n})},e.clearLockedItems=function(){a=[]}}).directive("msNav",n).directive("msNavTitle",function(){return{restrict:"A",compile:function(e){return e.addClass("ms-nav-title"),function(){}}}}).directive("msNavButton",function(){return{restrict:"AE",compile:function(e){return e.addClass("ms-nav-button"),function(){}}}}).directive("msNavToggle",t)}(),function(){"use strict";function e(e,n){e.root?this.navigation=n.getNavigation(e.root):this.navigation=n.getNavigation(),this.toggleHorizontalMobileMenu=function(){angular.element("body").toggleClass("ms-navigation-horizontal-mobile-menu-active")},n.sort()}function n(c,m,u,p){return{restrict:"E",scope:{folded:"=",root:"@"},controller:"MsNavigationController as vm",templateUrl:"app/core/directives/ms-navigation/templates/vertical.html",transclude:!0,compile:function(e){return e.addClass("ms-navigation"),function(e,n){var t=angular.element("body"),a=angular.element('<div id="ms-navigation-fold-expander"></div>'),i=angular.element('<div id="ms-navigation-fold-collapser"></div>'),s=u("navigation");function o(e){if(p.setFolded(e),e)c.$broadcast("msNavigation::collapse"),t.addClass("ms-navigation-folded"),r();else{var n=p.getActiveItem();n&&n.scope.$emit("msNavigation::stateMatched"),t.removeClass("ms-navigation-folded ms-navigation-folded-open"),i.remove()}}function r(){n.parent().append(a),m(function(){a.on("mouseenter touchstart",l)})}function l(e){e&&e.preventDefault(),p.setFoldedOpen(!0);var n=p.getActiveItem();n&&n.scope.$emit("msNavigation::stateMatched"),t.addClass("ms-navigation-folded-open"),a.remove(),t.find("#main").append(i),i.on("mouseenter touchstart",d)}function d(e){e&&e.preventDefault(),p.setFoldedOpen(!1),c.$broadcast("msNavigation::collapse"),t.removeClass("ms-navigation-folded-open"),i.remove(),r()}p.setNavigationScope(e),function(){null===p.getFolded()&&p.setFolded(e.folded);p.getFolded()&&(m(function(){c.$broadcast("msNavigation::collapse")}),t.addClass("ms-navigation-folded"),r())}(),e.$watch(function(){return s.isLockedOpen()},function(e,n){if(!angular.isUndefined(e)&&!angular.equals(e,n)&&p.getFolded())if(e)c.$broadcast("msNavigation::collapse");else{var t=p.getActiveItem();t&&t.scope.$emit("msNavigation::stateMatched")}}),e.$watch("folded",function(e,n){angular.isUndefined(e)||angular.equals(e,n)||o(e)}),e.toggleFolded=function(){o(!p.getFolded())},e.$on("$stateChangeStart",function(){s.close()}),e.$on("$destroy",function(){i.off("mouseenter touchstart"),a.off("mouseenter touchstart")})}}}}function t(t,e,a,i,n,s){var o=this;o.element=e,o.node=t.node,o.hasChildren=void 0,o.collapsed=void 0,o.collapsable=void 0,o.group=void 0,o.animateHeightClass="animate-height",o.toggleCollapsed=function(){o.collapsed?o.expand():o.collapse()},o.collapse=function(){var e=o.element.children("ul"),n=e[0].offsetHeight;t.$evalAsync(function(){o.collapsed=!0,o.element.addClass("collapsing"),i.animate(e,{display:"block",height:n+"px"},{height:"0px"},o.animateHeightClass).then(function(){e.css({display:"",height:""}),o.element.removeClass("collapsing")}),t.$broadcast("msNavigation::collapse")})},o.expand=function(){var e=o.element.children("ul");e.css({position:"absolute",visibility:"hidden",display:"block",height:"auto"});var n=e[0].offsetHeight;e.css({position:"",visibility:"",display:"",height:""}),t.$evalAsync(function(){o.collapsed=!1,o.element.addClass("expanding"),i.animate(e,{display:"block",height:"0px"},{height:n+"px"},o.animateHeightClass).then(function(){e.css({height:""}),o.element.removeClass("expanding")}),a.$broadcast("msNavigation::collapse",o.node._path)})},o.getClass=function(){return o.node.class},o.isHidden=function(){if(angular.isDefined(o.node.hidden)&&angular.isFunction(o.node.hidden))return o.node.hidden();return!1},function(){o.hasChildren=0<o.node.children.length,o.group=!(!angular.isDefined(o.node.group)||!0!==o.node.group),!o.hasChildren||o.group?o.collapsable=!1:o.collapsable=!(!angular.isUndefined(o.node.collapsable)&&"boolean"==typeof o.node.collapsable&&!0!==o.node.collapsable);o.collapsable?o.collapsed=!(!angular.isUndefined(o.node.collapsed)&&"boolean"==typeof o.node.collapsed&&!0!==o.node.collapsed):o.collapsed=!1;if(o.node.state===n.current.name||n.includes(o.node.state)){if(angular.isDefined(o.node.stateParams)&&angular.isDefined(n.params)&&!angular.equals(o.node.stateParams,n.params))return;t.$emit("msNavigation::stateMatched"),s.setActiveItem(o.node,t)}t.$on("msNavigation::stateMatched",function(){o.collapsable&&o.collapsed&&t.$evalAsync(function(){o.collapsed=!1})}),t.$on("msNavigation::collapse",function(e,n){if(!o.collapsed&&o.collapsable)if(angular.isUndefined(n))o.collapse();else{var t=n.split("."),a=[],i=s.getActiveItem();if(i&&(a=i.node._path.split(".")),-1<t.indexOf(o.node._id))return;if(-1<a.indexOf(o.node._id))return;o.collapse()}}),t.$on("$stateChangeSuccess",function(){if(o.node.state===n.current.name){if(angular.isDefined(o.node.stateParams)&&angular.isDefined(n.params)&&!angular.equals(o.node.stateParams,n.params))return;s.setActiveItem(o.node,t),a.$broadcast("msNavigation::collapse",o.node._path)}if(n.includes(o.node.state)){if(angular.isDefined(o.node.stateParams)&&angular.isDefined(n.params)&&!angular.equals(o.node.stateParams,n.params))return;t.$emit("msNavigation::stateMatched")}})}()}function a(n){return{restrict:"E",scope:{root:"@"},controller:"MsNavigationController as vm",templateUrl:"app/core/directives/ms-navigation/templates/horizontal.html",transclude:!0,compile:function(e){return e.addClass("ms-navigation-horizontal"),function(e){n.setNavigationScope(e)}}}}function i(t,e,n,a,i){var s=this;s.element=e,s.node=t.node,s.hasChildren=void 0,s.group=void 0,s.getClass=function(){return s.node.class},function(){if(s.isActive=!1,s.hasChildren=0<s.node.children.length,s.group=!(!angular.isDefined(s.node.group)||!0!==s.node.group),s.node.state===a.current.name||a.includes(s.node.state)){if(angular.isDefined(s.node.stateParams)&&angular.isDefined(a.params)&&!angular.equals(s.node.stateParams,a.params))return;t.$emit("msNavigation::stateMatched"),i.setActiveItem(s.node,t)}t.$on("msNavigation::stateMatched",function(){s.hasChildren&&t.$evalAsync(function(){s.isActive=!0})}),t.$on("msNavigation::clearActive",function(){if(s.hasChildren){var e=[],n=i.getActiveItem();n&&(e=n.node._path.split(".")),-1<e.indexOf(s.node._id)?t.$evalAsync(function(){s.isActive=!0}):t.$evalAsync(function(){s.isActive=!1})}}),t.$on("$stateChangeSuccess",function(){if(s.node.state===a.current.name||a.includes(s.node.state)){if(angular.isDefined(s.node.stateParams)&&angular.isDefined(a.params)&&!angular.equals(s.node.stateParams,a.params))return;i.setActiveItem(s.node,t),n.$broadcast("msNavigation::clearActive")}})}()}function s(i){return{restrict:"A",require:"^msNavigationHorizontalNode",compile:function(e){return e.addClass("ms-navigation-horizontal-item"),function(e,n,t,a){n.on("click",function(){if(!a.hasChildren||i("gt-md"))return;n.toggleClass("expanded")}),e.$on("$destroy",function(){n.off("click")})}}}}e.$inject=["$scope","msNavigationService"],n.$inject=["$rootScope","$timeout","$mdSidenav","msNavigationService"],t.$inject=["$scope","$element","$rootScope","$animate","$state","msNavigationService"],a.$inject=["msNavigationService"],i.$inject=["$scope","$element","$rootScope","$state","msNavigationService"],s.$inject=["$mdMedia"],angular.module("app.core").provider("msNavigationService",function(){var r=angular.injector(["ng"]).get("$log"),l=[];function d(e,n){if(angular.isString(e)){for(var t=e.split("."),a=t[t.length-1],i=function(e){var n=l;if(1===e.length)return n;e.pop();for(var t=0;t<e.length;t++){for(var a=e[t],i=!0,s=0;s<n.length;s++)if(n[s]._id===a){n=n[s].children,i=!1;break}if(i){var o={_id:a,_path:e.join("."),title:a,weight:1,children:[]};n.push(o),n=o.children}}return n}(t),s=!1,o=0;o<i.length;o++)if(i[o]._id===a){s=i[o];break}s?(angular.extend(s,n),s.uisref=u(s)):(n.children=[],!angular.isUndefined(n.weight)&&angular.isNumber(n.weight)||(n.weight=1),n._id=a,n._path=e,n.uisref=u(n),i.push(n))}else r.error("path must be a string (eg. `dashboard.project`)")}function c(e){if(angular.isString(e)){for(var n=l,t=e.split("."),a=0;a<t.length;a++)for(var i=t[a],s=0;s<n.length;s++)if(n[s]._id===i){if(n[s]._path===e)return n.splice(s,1),!0;n=n[s].children;break}return!1}r.error("path must be a string (eg. `dashboard.project`)")}function m(e){e||(e=l).sort(a);for(var n=0;n<e.length;n++){var t=e[n].children;1<t.length&&t.sort(a),0<t.length&&m(t)}}function a(e,n){return parseInt(e.weight)-parseInt(n.weight)}function u(e){var n="";return angular.isDefined(e.state)&&(n=e.state,angular.isDefined(e.stateParams)&&angular.isObject(e.stateParams)&&(n=n+"("+angular.toJson(e.stateParams)+")")),n}this.saveItem=d,this.deleteItem=c,this.sortByWeight=m,this.$get=function(){var t=null,n=null,a=null,i=null,e={saveItem:d,deleteItem:c,sort:m,clearNavigation:function(){l=[],n&&(n.vm.navigation=l)},setActiveItem:function(e,n){t={node:e,scope:n}},getActiveItem:function(){return t},getNavigation:s,getFlatNavigation:o,setNavigationScope:function(e){n=e},setFolded:function(e){a=e},getFolded:function(){return a},setFoldedOpen:function(e){i=e},getFoldedOpen:function(){return i},toggleFolded:function(){n.toggleFolded()},getSectionId:function(n,t){var e=o(),a=_.find(e,function(e){return t?e.route===n&&e.title.toLowerCase()===t.toLowerCase():e.route===n});return a?a.id:0}};return e;function s(e){if(e){for(var n=0;n<l.length;n++)if(l[n]._id===e)return[l[n]];return null}return l}function o(e){var n=s(e);return function e(n){var t=[];for(var a=0;a<n.length;a++){var i=angular.copy(n[a]);i.children=[],t.push(i),0<n[a].children.length&&(t=t.concat(e(n[a].children)))}return t}(n)}}}).controller("MsNavigationController",e).directive("msNavigation",n).controller("MsNavigationNodeController",t).directive("msNavigationNode",function(){return{restrict:"A",bindToController:{node:"=msNavigationNode"},controller:"MsNavigationNodeController as vm",compile:function(e){return e.addClass("ms-navigation-node"),function(e,n,t,a){n.addClass(a.getClass()),a.group&&n.addClass("group")}}}}).directive("msNavigationItem",function(){return{restrict:"A",require:"^msNavigationNode",compile:function(e){return e.addClass("ms-navigation-item"),function(e,n,t,a){a.collapsable&&n.on("click",a.toggleCollapsed),e.$on("$destroy",function(){n.off("click")})}}}}).directive("msNavigationHorizontal",a).controller("MsNavigationHorizontalNodeController",i).directive("msNavigationHorizontalNode",function(){return{restrict:"A",bindToController:{node:"=msNavigationHorizontalNode"},controller:"MsNavigationHorizontalNodeController as vm",compile:function(e){return e.addClass("ms-navigation-horizontal-node"),function(e,n,t,a){n.addClass(a.getClass()),a.group&&n.addClass("group")}}}}).directive("msNavigationHorizontalItem",s)}(),function(){"use strict";function e(p,t,g,e,a,i,n,u,s,o,v,h,f,b,r,A){var E=this,l=["ringingId","speakerId","microphoneId","ringingVolume","speakerVolume","microphoneVolume","ringingMute","speakerMute","microphoneMute"],d=JSON.parse(n.localStorage.getItem("motion2.user:"+E.conf.id))||{webrtc:{ringingVolume:.5,speakerVolume:.5,microphoneVolume:1,ringingMute:!1,speakerMute:!1,microphoneMute:!1}};function c(l){var d,c,m;return E.initDeviceInProgress=!0,navigator.mediaDevices.getUserMedia({audio:!0}).then(function(e){return E.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/silence.ogg"),E.soundPlayer.play().catch(function(e){console.log(e.message)}),e.getTracks().forEach(function(e){e.stop()}),navigator.mediaDevices.enumerateDevices()}).then(function(e){var n=_.filter(e,function(e){return"audioinput"===e.kind&&"default"!==e.deviceId&&"communications"!==e.deviceId});if(0<n.length){var t=_.find(e,function(e){return"default"===e.deviceId&&"audioinput"===e.kind});if(m=_.find(n,function(e){return e.groupId===t.groupId}),E.conf.microphoneId&&!l){var a=_.find(n,function(e){return e.deviceId===E.conf.microphoneId});a&&(m=a)}E.conf.microphoneId=m.deviceId}else v.warning({title:u.instant("TOOLBAR.WARNING"),msg:u.instant("TOOLBAR.WEBRTC_MICROPHONE_NOT_AVAILABLE"),clickToClose:!0,showClose:!0,shake:!1,timeout:!1,position:"bottom-right"});E.conf.microphoneId?E.sessionConf.mediaConstraints.audio={deviceId:E.conf.microphoneId}:E.sessionConf.mediaConstraints.audio=!0,R("microphone",!1);var i=_.filter(e,function(e){return"audiooutput"===e.kind&&"default"!==e.deviceId&&"communications"!==e.deviceId});if(0<i.length){var s=_.find(e,function(e){return"default"===e.deviceId&&"audiooutput"===e.kind});if(c=d=_.find(i,function(e){return e.groupId===s.groupId}),E.conf.speakerId&&!l){var o=_.find(i,function(e){return e.deviceId===E.conf.speakerId});o&&(c=o)}if(E.conf.speakerId=c.deviceId,E.conf.ringingId&&!l){var r=_.find(i,function(e){return e.deviceId===E.conf.ringingId});r&&(d=r)}E.conf.ringingId=d.deviceId}else v.warning({title:u.instant("TOOLBAR.WARNING"),msg:u.instant("TOOLBAR.WEBRTC_SPEAKER_NOT_AVAILABLE"),clickToClose:!0,showClose:!0,shake:!1,timeout:!1,position:"bottom-right"});return R("speaker",!1)}).then(function(){return R("ringing",!1)}).then(function(){if(jabra)return jabra.init().then(function(){return E.isJabraInitialized=!0,jabra.getInstallInfo()}).then(function(){return jabra.getUserDeviceMediaExt()}).then(function(e){m&&c&&d&&e&&_.includes([m.groupId,c.groupId,d.groupId],e.deviceInfo.browserGroupId)&&(console.log("Jabra library correctly initialized and device correctly installed"),E.isJabraEnabled=!0,jabra.onHook(),jabra.addEventListener("acceptcall",function(e){var n=_.last(E.sessions);n?"incoming"===n.direction&&n.isInProgress()?E.answer(n):console.error("Unable to find a valid call to answer",e):console.error("Unable to answer the call",e)}.bind(this)),jabra.addEventListener("mute",function(){R("microphone",E.conf.microphoneMute=!0)}.bind(this)),jabra.addEventListener("unmute",function(){E.conf.microphoneMute=!1,R("microphone",!0)}.bind(this)),jabra.addEventListener("flash",function(){E.jabraSession.localHold?E.unhold(E.jabraSession):E.hold(E.jabraSession)}.bind(this)),jabra.addEventListener("endcall",function(){o(function(e){for(var n=null,t=0;t<E.sessions.length;t++)_.has(E.sessions[t],"localHold")&&E.sessions[t].localHold||(n=E.sessions[t]);e(n)}).then(function(e){null!==e&&E.terminate(e)})}.bind(this)))}).catch(function(e){console.warn("Error initializing Jabra integration",e)})}).catch(function(e){console.error("Unable to init media devices",e),"NotFoundError"===e.name&&v.warning({title:u.instant("TOOLBAR.WARNING"),msg:u.instant("TOOLBAR.WEBRTC_AUDIO_DEVICES_NOT_AVAILABLE"),clickToClose:!0,showClose:!0,shake:!1,timeout:!1,position:"bottom-right"})}).finally(function(){E.initDeviceInProgress=!1,y(),DetectRTC.load(function(){E.conf.hasMicrophone=DetectRTC.hasMicrophone,E.conf.hasSpeakers="Chrome"!==DetectRTC.browser.name&&"Edge"!==DetectRTC.browser.name&&"Opera"!==DetectRTC.browser.name||DetectRTC.hasSpeakers,E.conf.isWebRTCSupported=DetectRTC.isWebRTCSupported,E.conf.osName=DetectRTC.osName,E.conf.osVersion=DetectRTC.osVersion,E.conf.browserName=DetectRTC.browser.name,E.conf.browserVersion=DetectRTC.browser.version,E.conf.license&&E.conf.isWebRTCSupported&&E.conf.hasMicrophone&&E.conf.hasSpeakers&&"https"===E.conf.protocol&&("chrome"===E.conf.browserName.toLowerCase()||"opera"===E.conf.browserName.toLowerCase()||"safari"===E.conf.browserName.toLowerCase())?E.register||E.ua.start():E.conf.license||v.warning({title:u.instant("TOOLBAR.WARNING"),msg:u.instant("TOOLBAR.WEBRTC_LICENSE_NOT_ENABELD"),clickToClose:!0,showClose:!0,shake:!1,timeout:!1,position:"bottom-right"})}.bind(this))})}function y(){d.webrtc=_.pick(E.conf,l),n.localStorage.setItem("motion2.user:"+E.conf.id,JSON.stringify(d))}function S(e,n,t){console.debug("addCall -> target, inbound, fullname",e,n,t),E.calls.unshift({target:e,fullname:t||e,inbound:n,time:moment().format("HH:mm")}),50<E.calls.length&&E.calls.pop()}function T(e){console.debug("answer -> session",e),e.notification&&(e.notification.close(),e.notification=null),E.conf.microphoneId?E.sessionConf.mediaConstraints.audio={deviceId:E.conf.microphoneId}:E.sessionConf.mediaConstraints.audio=!0,e.answer(E.sessionConf),E.isJabraEnabled&&(jabra.offHook(),E.jabraSession=e)}function I(e,n){console.debug("terminate -> session",e),e.notification&&(e.notification.close(),e.notification=null);var t={};if(n?t.status_code=n:e.isEstablished()||(t.status_code=603),e.terminate(t),E.isJabraEnabled)if(0===E.sessions.length)e.localHold&&jabra.resume(),jabra.onHook(),E.jabraSession=null;else{var a=_.last(E.sessions);a.localHold?(jabra.onHook(),jabra.hold(),E.jabraSession=a):jabra.offHook()}}function C(t){return console.debug("getVoiceChannels -> session",t),h.rpc.getVoiceChannels().$promise.then(function(e){var n=_.find(e.rows,function(e){return e.sipcalllinkedid===t.call_id?e:e.sipcalluniqueid===t.call_id?e:null});n&&(t.monitor=n.monitor,t.uniqueid=n.uniqueid,t.monitors=n.monitors)})}function O(e){console.debug("onAddstream -> data",e),this.remotePlayer.srcObject=e.stream,this.remotePlayer.play()}function w(){E.canGoInConference=!1,E.isInConference=!1,E.currentconferenceSessions=[]}function R(e,n){switch(e){case"ringing":E.soundPlayer.muted=E.conf.ringingMute,E.conf.ringingId&&E.soundPlayer.setSinkId(E.conf.ringingId).then(function(){E.soundPlayer.volume=E.conf.ringingVolume}).then(function(){n&&y()}).catch(function(e){console.info(e.message,E.conf.ringingId)});break;case"speaker":E.remotePlayer.muted=E.conf.speakerMute,E.conf.speakerId&&E.remotePlayer.setSinkId(E.conf.speakerId).then(function(){E.remotePlayer.volume=E.conf.speakerVolume}).then(function(){n&&y()}).catch(function(e){console.info(e.message,E.conf.speakerId)});break;case"microphone":for(var t=0;t<E.sessions.length;t+=1)E.conf.microphoneMute?E.sessions[t].mute():E.sessions[t].unmute();jabra&&E.isJabraEnabled&&(E.conf.microphoneMute?jabra.mute():jabra.unmute()),n&&y();break;default:console.log("unknown device")}}function m(){E.target="",document.getElementById("ms-target").blur(),document.getElementById("ms-target").value="",p.$broadcast("angucomplete-alt:clearInput","ms-target-wrap")}function x(n){return h.user.getVoicePrefixes({id:E.conf.id}).$promise.then(function(e){if(e.count)return a.show({controller:"PrefixDialogController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/prefix/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{prefixes:e,required:E.conf.phoneBarPrefixRequired}})}).then(function(e){if(E.conf.phoneBarPrefixRequired){if(e&&-1!==e)return e+n}else{if(e&&-1!==e)return e+n;if(!e)return n}})}function N(){if(E.isInConference){var e=E.sessions[0].connection.getReceivers()[0],n=E.sessions[1].connection.getReceivers()[0],t=new MediaStream;t.addTrack(e.track),t.addTrack(n.track);var a=document.getElementById("remote-audio");a.srcObject=t;var i=a.play();void 0!==i&&i.then(function(){}).catch(function(e){console.log(e)})}}function D(e,n,t,a){return console.debug("onReferCallback -> session, textContent, position, delay",e,n,t,a),function(){i.show(i.simple().textContent(n).position(t).hideDelay(a)),I(e)}}function P(n){return console.debug("findSessionBySessionId -> sessionId, vm_pb.sessions",n,E.sessions),_.find(E.sessions,function(e){return e.call_id==n})}function L(e,n){return console.debug("callCallback -> url, params",e,n),s({url:e,method:"GET",params:n})}e(function(){},999),E.currentUser=b.getCurrentUser(),E.direction="right",E.selectedMode="md-scale",E.target="",E.showDialpad=!1,E.soundPlayer=document.getElementById(E.conf.soundPlayerId),E.remotePlayer=document.getElementById(E.conf.remotePlayerId),E.soundPlayer.volume=1,E.sessionConf={mediaConstraints:{audio:!0,video:!1},pcConfig:{iceServers:[]}},E.sessions=[],E.calls=[],E.callbackQueue=[],E.canGoInConference=!1,E.isInConference=!1,E.currentConferenceSessions=[],E.ua=new JsSIP.UA({sockets:[new JsSIP.WebSocketInterface("wss://"+E.conf.host+":"+E.conf.wssPort+"/ws")],uri:new JsSIP.URI("sip",E.conf.name,E.conf.host,5060,null,null).toString(),authorization_user:E.conf.name,ha1:E.conf.ha1,realm:E.conf.realm,user_agent:E.conf.ua,session_timers_refresh_method:"invite",register_expires:E.conf.phoneBarExpires||60,register:!0}),E.conf=_.merge(d.webrtc,E.conf),E.initDeviceInProgress=!1,E.isJabraEnabled=!1,E.isJabraInitialized=!1,E.jabraSession=null,E.jabraClicked=!1,E.buttonClicked=!1,E.originateInProgress=!1,t.bind("keyup",function(e){switch(e.keyCode){case 27:g(function(){E.showDialpad=!1})}}),E.$onInit=function(){c(!1),navigator.mediaDevices.ondevicechange=function(){E.initDeviceInProgress||(E.initDeviceInProgress=!0,jabra&&E.isJabraInitialized?jabra.shutdown().then(function(){E.isJabraInitialized=!1,c(!(E.isJabraEnabled=!1))}).catch(function(e){console.error("Unable to shutdown Jabra library",e)}):c(!0))};var e=[h.network.get({type:"turn",nolimit:!0}).$promise,h.network.get({type:"stun",nolimit:!0}).$promise];o.all(e).then(function(e){var n=e[0].rows,t=e[1].rows,a=[],i=[];t.forEach(function(e){i.push("stun:"+e.value)}),a.push({urls:i}),n.forEach(function(e){var n={urls:"turn:"+e.value};e.username&&(n.username=e.username),e.password&&(n.credential=e.password),a.push(n)}),E.sessionConf.pcConfig={iceServers:a}}),this.ua.on("registered",function(){this.registered=!0}.bind(this)),this.ua.on("unregistered",function(){this.registered=!1}.bind(this)),this.ua.on("newRTCSession",function(e){console.debug("onNewRTCSession -> data",e);var n,t,a,i,s,o=e.session,r=!0,l="",d=0;switch(e.originator){case"local":o.outgoing=!0,o.name=e.request.ruri.user,o.user=e.request.ruri.user,S(o.user,!1),t=e.request.extraHeaders,a="X-callback-url",s=_.find(t,function(e){return _.startsWith(e,a)}),n=!!s&&_.trim(s.replace(a,"").replace(i||":","")),E.isJabraEnabled&&(E.jabraSession&&jabra.resume(),E.jabraSession=o,jabra.offHook());break;case"remote":var c=b.getCurrentUser();c.voicePause&&c.phoneBarDnd&&(r=!1);var m=e.request.getHeader("Call-Type")||"";if(c.ignorePauseForPreviewCalls&&"PREVIEW"===m&&(r=!0),E.originateInProgress&&(r=!1),r&&(o.incoming=!0,o.name=e.request.from.display_name,o.user=e.request.from.uri.user,l=e.request.getHeader("X-Answer-Mode")||"",d=e.request.getHeader("X-Answer-After")||0,function(n){console.debug("getNotification -> session",n);var e=n.name?n.name+" <"+n.user+">":n.user;E.currentUser.privacyEnabled&&(e=A.mask(e)),f.create("Incoming call from: ",e,null,function(){T(n)},function(){I(n)},E.conf.autoAnswer).then(function(e){n.notification=e}).catch(function(e){console.error("Error creating notification for incoming call",e)})}(e.session),S(e.session.user,!0),E.isJabraEnabled&&jabra.ring(),E.conf.autoAnswer&&g(function(){o.isInProgress()&&(o.autoAnswer=!0,T(o))},E.conf.autoAnswerDelay?1e3*E.conf.autoAnswerDelay:0),console.debug("xAnswerMode",l),console.debug("xAnswerAfterSec",d),"auto"==l.toLowerCase())){var u=0==d?500:1e3*d;console.debug("auto answer enabled after:"+u+" ms"),g(function(){o.isInProgress()&&(o.autoAnswer=!0,T(o))},u)}}r?(o.call_id=e.request.call_id,n&&L(E.callbackQueue[o.call_id]=n,{call_id:o.call_id}).then(function(){console.log('callbackurl:"'+n+'" called successfully')}).catch(function(e){console.log('fail callbackurl:"'+n+'" err:',e)}),o.connection&&(o.connection.onaddstream=O.bind(this)),o.iceCandidateTimeout=null,o.on("progress",function(e,n){console.debug("onProgress -> session, data",e,n);var t=!1;switch(n.originator){case"local":this.conf.ringingMute||(this.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/incoming-call.ogg"),t=!0);break;case"remote":this.putOtherCallsOnHold(e),this.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/outgoing-call.ogg"),t=!0}E.originateInProgress&&(E.originateInProgress=!1),t&&(this.soundPlayer.loop="loop",this.soundPlayer.play().catch(function(e){console.log(e.message)})),C(e).then(function(){var n=E.callbackQueue[e.call_id];n&&L(n,{uniqueid:e.uniqueid,call_id:e.call_id,number_called:e.user}).then(function(){console.log('callbackurl:"'+n+'" called successfully')}).catch(function(e){console.log('fail callbackurl:"'+n+'" err:',e)}).finally(function(){delete E.callbackQueue[e.call_id]})}).catch(function(e){console.error("Unable to retrieve voice channels",e)})}.bind(this,o)),o.on("confirmed",function(e,n){console.debug("onConfirmed -> session, data",e,n);var t=document.getElementById("div_session_"+e.id.substr(0,32));t&&$(t).scope().$broadcast("timer-start"),e.confirmed=!0,"remote"===n.originator&&e.connection&&(e.connection.onaddstream=O.bind(this),_.head(e.connection.getRemoteStreams())&&(this.remotePlayer.srcObject=_.head(e.connection.getRemoteStreams()),this.remotePlayer.play())),this.soundPlayer.pause(),this.soundPlayer.loop=null,this.putOtherCallsOnHold(e),e.autoAnswer&&(this.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/beep.ogg"),this.soundPlayer.play().catch(function(e){console.log("Unable to play autoAnswer notification",e)})),E.canGoInConference=2==E.sessions.length,C(e).catch(function(e){console.error("Unable to retrieve voice channels",e)})}.bind(this,o)),o.on("hold",function(e,n){console.debug("onHold -> session, data",e,n),"local"===n.originator&&(e.localHold=!0)}.bind(this,o)),o.on("unhold",function(e,n){console.debug("onUnhold -> session, data",e,n),"local"===n.originator&&(e.localHold=!1)}.bind(this,o)),o.on("ended",function(e,n){if(console.debug("onEnded -> session, data",e,n),E.isInConference&&_.includes(E.currentConferenceSessions,e.id)&&(w(),E.buttonClicked=!0),_.remove(this.sessions,{id:e.id}),2!==E.sessions.length&&(E.canGoInConference=!1),E.isJabraEnabled)if(0===E.sessions.length)e.localHold&&jabra.resume(),jabra.onHook(),E.jabraSession=null;else{var t=_.last(E.sessions);t.localHold?(jabra.onHook(),jabra.hold(),E.jabraSession=t):jabra.offHook()}0===E.sessions.length&&E.currentUser.voicePause&&h.user.pause({id:E.currentUser.id,type:_.startsWith(E.currentUser.pauseType,"#")?E.currentUser.pauseType.substring(1):E.currentUser.pauseType}).$promise.catch(function(e){v.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:PAUSEUSER",msg:e.status?JSON.stringify(e.data):e.toString()})}),E.conf.microphoneMute=!1,E.initDevice("microphone",!0)}.bind(this,o)),o.on("failed",function(e,n){if(console.debug("onFailed -> session, data",e,n),this.soundPlayer.pause(),this.soundPlayer.loop=null,e.notification&&e.notification.close(),E.isInConference&&_.includes(E.currentConferenceSessions,e.id)&&w(),E.originateInProgress&&(E.originateInProgress=!1),_.remove(this.sessions,{id:e.id}),2!==E.sessions.length&&(E.canGoInConference=!1),E.isJabraEnabled)if(0===E.sessions.length)e.localHold&&jabra.resume(),jabra.onHook(),E.jabraSession=null;else{var t=_.last(E.sessions);t.localHold?(jabra.onHook(),jabra.hold(),E.jabraSession=t):jabra.offHook()}}.bind(this,o)),o.on("icecandidate",function(e,n){console.debug("onIcecandidate -> session, data",e,n),null!==e.iceCandidateTimeout&&clearTimeout(e.iceCandidateTimeout),e.iceCandidateTimeout=setTimeout(n.ready,1e3)}.bind(this,o)),E.sessions.push(o),g(function(){p.$apply(),console.debug("onNewRTCSession -> vm_pb.sessions",E.sessions)})):I(o,486)}.bind(this)),r.on("webbar:originate",function(e){console.debug("originateHook -> payload",e);var n=e.callNumber,t=e.callerId,a=e.callbackUrl;E.conf.microphoneId?E.sessionConf.mediaConstraints.audio={deviceId:E.conf.microphoneId}:E.sessionConf.mediaConstraints.audio=!0;var i=n.replace(/ /g,"");if(i=(i=i.replace(/\(/g,"")).replace(/\)/g,"")){var s=angular.copy(E.sessionConf);s.extraHeaders=[],t&&s.extraHeaders.push("X-CID: "+t),a&&s.extraHeaders.push("X-callback-url: "+a),E.originateInProgress=!0,E.ua.call(i,s)}}.bind(this)),r.on("webbar:hangup",function(e){console.debug("hangupHook -> payload",e);var n=E.sessions;if(e.sessionId&&((n=[]).push(P(e.sessionId)),0==n.length))console.warn("call with session Id "+e.sessionId+" not found");else for(var t=0;t<n.length;t++){var a=n[t];console.log("hangupHook -> sessionToHangup",a),E.terminate(a)}}.bind(this)),r.on("webbar:answer",function(e){var n;console.debug("answerHook -> payload",e),n=e.sessionId?P(e.sessionId):_.find(E.sessions,function(e){return e.incoming&&!e.confirmed}),e.sessionId&&!n&&console.warn("call with session Id "+e.sessionId+" not found"),n&&E.answer(n)}.bind(this)),r.on("webbar:hold",function(e){console.debug("holdHook -> payload",e);var n=E.sessions;if(e.sessionId&&((n=[]).push(P(e.sessionId)),0==n.length))console.warn("call with session Id "+e.sessionId+" not found");else for(var t=0;t<n.length;t++){var a=n[t];E.hold(a)}}.bind(this)),r.on("webbar:unhold",function(e){if(console.debug("holdHook -> payload",e),e.sessionId){var n=P(e.sessionId);n?E.unhold(n):console.warn("call with session Id "+e.sessionId+" not found")}else console.error("sessionId required")}.bind(this)),r.on("webbar:transfer",function(e){if(console.debug("transferHook -> payload",e),e.sessionId)if(e.transferNumber){var n=P(e.sessionId);n?n.refer(e.transferNumber,{eventHandlers:{requestSucceeded:D(n,"requestSucceeded","top right",3e3),requestFailed:D(n,"requestFailed","top right",3e3)}}):console.warn("call with session Id "+e.sessionId+" not found")}else console.error("transferNumber required");else console.error("sessionId required")}.bind(this)),r.on("webbar:stopmonitors",function(e){if(e.agentId===E.currentUser.id){var n=_.find(E.sessions,["uniqueid",e.uniqueid]);if(!n)return;n.monitors.forEach(function(e){e.status="pause"}),n.monitor=!1}}.bind(this))}.bind(this),E.type=function(e,n){var t=e;switch(E.target||(E.target=""),n&&(E.target+=e,p.$broadcast("angucomplete-alt:changeInput","ms-target-wrap",E.target)),e){case"*":t="asterisk";break;case"#":t="pound"}E.conf.enableDtmfTone&&(E.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/dialpad/"+t+".ogg"),E.soundPlayer.play().catch(function(e){console.log(e.message)}));for(var a=0;a<E.sessions.length;a+=1)E.sessions[a].isEstablished()&&!E.sessions[a].isOnHold().local&&E.sessions[a].sendDTMF(e)},E.call=function(){if(E.target&&E.target!==E.conf.name&&E.target!==E.conf.internal){E.conf.microphoneId?E.sessionConf.mediaConstraints.audio={deviceId:E.conf.microphoneId}:E.sessionConf.mediaConstraints.audio=!0;var e=E.target.replace(/ /g,"");return x(e=(e=e.replace(/\(/g,"")).replace(/\)/g,"")).then(function(e){e&&E.ua.call(e,E.sessionConf)}).then(function(){m()})}},E.hold=function(e){console.debug("hold -> session",e),e.hold({useUpdate:!1}),E.isJabraEnabled&&(jabra.hold(),jabra.onHook())},E.refer=function(n){console.debug("refer -> session",n);var e=a.prompt().title("Transfer").textContent("Type the target").placeholder("Target").ariaLabel("Target").ok("Transfer").cancel("Cancel");a.show(e).then(function(e){return x(e.replace(/ /g,"").replace(/\(/g,"").replace(/\)/g,""))}).then(function(e){n.refer(e,{eventHandlers:{requestSucceeded:D(n,"requestSucceeded","top right",3e3),requestFailed:D(n,"requestFailed","top right",3e3)}})})},E.record=function(e){console.debug("record -> session",e),a.show({controller:"RecordDialogController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/record/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{session:e,sessions:E.sessions}})},E.unhold=function(e){console.debug("unhold -> session",e),e.unhold({useUpdate:!1}),E.putOtherCallsOnHold(e),E.isJabraEnabled&&(jabra.offHook(),jabra.resume())},E.answer=T,E.terminate=I,E.selectSession=function(e){console.debug("selectSession -> session",e),E.unhold(e)},E.typeWrapper=function(e){switch(e.key.toLowerCase()){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":case"*":case"#":E.type(e.key);break;case"enter":E.call()}},E.toggleDialpad=function(){E.showDialpad=!E.showDialpad},E.referAttended=function(e){console.debug("referAttended -> session",e),a.show({controller:"ReferAttendedDialogController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/referAttended/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{session:e,sessions:_.reject(E.sessions,{id:e.id}),isJabraEnabled:E.isJabraEnabled}})},E.closeDialpad=function(){E.showDialpad=!1},E.initDevice=R,E.putOtherCallsOnHold=function(e){if(console.debug("putOtherCallsOnHold -> session",e),1<E.sessions.length)for(var n=0;n<E.sessions.length;n+=1)E.sessions[n].id===e.id||E.sessions[n].isOnHold().remote||E.sessions[n].hold({useUpdate:!1})},E.targetChanged=function(e){e?/^(\w|\.|\+|#|\*|\(|\)|\s|-)*$/.test(e)?(E.target=e,p.$broadcast("angucomplete-alt:changeInput","ms-target-wrap",E.target)):E.target?p.$broadcast("angucomplete-alt:changeInput","ms-target-wrap",E.target):m():m()},E.targetSelected=function(e){e&&(E.target=e.originalObject.target,E.call(),m())},E.start3WayConf=function(){E.isInConference=!0,E.canGoInConference=!1,E.currentConferenceSessions.push(E.sessions[0].id),E.currentConferenceSessions.push(E.sessions[1].id);var e=new AudioContext,n=E.sessions[0].connection.getSenders()[0],t=E.sessions[0].connection.getReceivers()[0];t.track.addEventListener("unmute",function(){setTimeout(function(){N()},1e3)},!1);var a=E.sessions[1].connection.getSenders()[0],i=E.sessions[1].connection.getReceivers()[0];i.track.addEventListener("unmute",function(){setTimeout(function(){N()},1e3)},!1),E.sessions[0].unhold({useUpdate:!1}),E.sessions[1].unhold({useUpdate:!1}),t.track.enabled=!0,i.track.enabled=!0;var s=new MediaStream,o=e.createMediaStreamDestination();o=(e=new AudioContext).createMediaStreamDestination();var r=e.createMediaStreamSource(new MediaStream([i.track]));r.connect(o),(r=e.createMediaStreamSource(new MediaStream([n.track]))).connect(o),n.replaceTrack(o.stream.getTracks()[0]).then(function(){}),o=e.createMediaStreamDestination(),(r=e.createMediaStreamSource(new MediaStream([t.track]))).connect(o),(r=e.createMediaStreamSource(new MediaStream([a.track]))).connect(o),a.replaceTrack(o.stream.getTracks()[0]).then(function(){s.addTrack(t.track),s.addTrack(i.track);var e=document.getElementById("remote-audio");e.srcObject=s;var n=e.play();void 0!==n&&n.then(function(){}).catch(function(e){console.log(e)})})},E.patchConference=N,p.$on("webrtc::settings",function(e){a.show({controller:"SettingsController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/settings/settings.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,resolve:{devices:function(){return navigator.mediaDevices.enumerateDevices()}},locals:{conf:E.conf,activeSessions:E.sessions}}).then(function(e){e&&(E.conf=e,E.initDeviceInProgress||(E.initDeviceInProgress=!0,jabra&&E.isJabraInitialized?jabra.shutdown().then(function(){E.isJabraInitialized=!1,c(E.isJabraEnabled=!1)}).catch(function(e){console.error("Unable to shutdown Jabra library",e)}):c(!1)))})}),p.$on("webrtc::logout",function(){E.ua.stop(),jabra&&E.isJabraInitialized&&jabra.shutdown(),navigator.mediaDevices.ondevicechange=function(){}}),p.$on("webrtc::call",function(e,n){console.debug("onRemoteCall -> evt, data",e,n),n.target&&(E.target=n.target,E.call())}),p.$on("webrtc::transfer",function(e,n){if(console.debug("onRemoteTransfer -> evt, data",e,n),n.target)for(var t=0;t<E.sessions.length;t+=1)if(E.sessions[t].isEstablished()&&!E.sessions[t].isOnHold().local)return x(n.target).then(function(e){e&&E.sessions[t].refer(e,{eventHandlers:{requestSucceeded:D(E.sessions[t],"requestSucceeded","top right",3e3),requestFailed:D(E.sessions[t],"requestFailed","top right",3e3)}})})}),p.$on("$destroy",function(){console.debug("$destroy event fired"),r.removeAllListeners("webbar:originate"),r.removeAllListeners("webbar:hangup"),r.removeAllListeners("webbar:answer"),r.removeAllListeners("webbar:hold"),r.removeAllListeners("webbar:unhold"),r.removeAllListeners("webbar:transfer"),r.removeAllListeners("webbar:stopmonitors")})}e.$inject=["$scope","$document","$timeout","$interval","$mdDialog","$mdToast","$window","$translate","$http","$q","toasty","api","motNotification","Auth","socket","privacyManager"],angular.module("app.core").controller("MsPhonebarController",e).directive("msPhonebar",function(){return{restrict:"E",scope:{conf:"=",sessions:"="},require:"msPhonebar",controller:"MsPhonebarController",controllerAs:"vm_pb",bindToController:!0,templateUrl:"assets/ms-phonebar/ms-phonebar.html"}})}(),function(){"use strict";function e(n,e,t){var a=this;a.prefixes=e,a.required=t,a.closeDialog=function(e){n.hide(e)},a.keyPress=function(e){13===e.keyCode&&this.call()},a.call=function(){n.hide(a.prefix)}}e.$inject=["$mdDialog","prefixes","required"],angular.module("app.core").controller("PrefixDialogController",e)}(),function(){"use strict";function e(i){return{restrict:"C",controller:["$scope","$element",function(e,n){function t(){n.css("display","inline"),i(a,1e3)}function a(){n.css("display","none"),i(t,1e3)}t()}],replace:!0}}function n(n,i,s,e,t){var o=this;function a(n,e){console.log("startMonitor");var t=i.defer(),a=(e||n.filename.replace(/^.*[\\\/]/,"")).split(".")[0];return s.rpc.startMonitor({uniqueid:o.session.uniqueid,filename:a,format:"wav"}).$promise.then(function(e){n.filename=a+".wav",n.mixmonitorid=e.mixmonitorid,n.status="rec",o.session.monitor=!0,t.resolve(n)}).catch(function(e){t.reject(e)}),t.promise}o.title="Record",o.sessions=e,o.session=t,o.closeDialog=function(){n.hide()},o.addRecording=function(){var e=n.prompt({skipHide:!0}).title("Start new recording").textContent("Type the file name.").placeholder("File name").ariaLabel("File name").initialValue(function(){function e(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}return e()+e()+"-"+e()+"-"+e()+"-"+e()+"-"+e()+e()+e()}()).ok("Start").cancel("Cancel");n.show(e).then(function(e){return a({},e)}).then(function(e){o.session.monitors.push(e)})},o.stop=function(n){return console.log("stopMonitor"),s.rpc.stopMonitor({uniqueid:o.session.uniqueid,mixmonitorid:n.mixmonitorid}).$promise.then(function(e){n.status="pause",o.session.monitor=_.includes(o.session.monitors,{status:"rec"})}).catch(function(e){console.error(e)})},o.start=a}e.$inject=["$timeout"],n.$inject=["$mdDialog","$q","api","sessions","session"],angular.module("app.core").directive("msBlink",e).controller("RecordDialogController",n)}(),function(){"use strict";function e(n,s,a,i,e){var o=this;function r(e,n,t,a,i){return console.debug("onTransferCallback -> session, textContent, position, delay",e,n,t,a),function(){s.show(s.simple().textContent(n).position(t).hideDelay(a)),e.terminate(),jabra&&i&&jabra.onHook(),l()}}function l(e){n.hide(e)}o.title="Refer Attended",o.sessions=a,o.session=i,o.isJabraEnabled=e,o.sessionTarget=null,a.length&&(o.target=a[0].user),o.closeDialog=l,o.transfer=function(){var e,n,t=_.find(a,function(e){if(e.user===o.target)return e});n=t.outgoing?(e=t,o.session):(e=o.session,t);n.refer(e.user,{replaces:e,eventHandlers:{requestSucceeded:r(i,"requestSucceeded","top right",3e3,o.isJabraEnabled),requestFailed:r(i,"requestFailed","top right",3e3,o.isJabraEnabled)}})}}e.$inject=["$mdDialog","$mdToast","sessions","session","isJabraEnabled"],angular.module("app.core").controller("ReferAttendedDialogController",e)}(),function(){"use strict";function e(e,s,n,t){var a=this;function i(e,n,t){var a;if(s[t]){if(a=_.find(e,function(e){return e.deviceId===s[t]}))return a.deviceId;var i=_.findIndex(e,function(e){return e.kind===n});if(0<=i)return e[i].deviceId}else(a=_.find(e,function(e){return e.kind===n}))&&(s[t]=a.deviceId);return s[t]||null}_.remove(n,function(e){return"audioinput"===e.kind&&("default"===e.deviceId||"communications"===e.deviceId)||"audiooutput"===e.kind&&("default"===e.deviceId||"communications"===e.deviceId)}),s.ringingId=i(n,"audiooutput","ringingId"),s.speakerId=i(n,"audiooutput","speakerId"),s.microphoneId=i(n,"audioinput","microphoneId"),s.ringingVolume=s.ringingVolume||.5,s.speakerVolume=s.speakerVolume||.5,s.microphoneVolume=s.microphoneVolume||1,s.ringingMute=s.ringingMute||!1,s.speakerMute=s.speakerMute||!1,s.microphoneMute=s.microphoneMute||!1,a.conf=angular.copy(s),a.devices=n,a.activeSessions=t,a.saveSettings=function(){e.hide(a.conf)},a.closeDialog=function(){e.hide()},a.isCompatibleBrowser=function(){return"chrome"===a.conf.browserName.toLowerCase()||"opera"===a.conf.browserName.toLowerCase()||"safari"===a.conf.browserName.toLowerCase()}}e.$inject=["$mdDialog","conf","devices","activeSessions"],angular.module("app.toolbar").controller("SettingsController",e)}(),function(){"use strict";function e(t,a){var i=this;function s(e){var n=e.key,t={param:i.query[n],resources:e.options,placeholder:e.placeholder,ngValue:e.ngValue};a.setPlaceholder(t).then(function(e){i.placeholders[n]=e})}i.pickerModels={},i.placeholders={},i.localizationMap=t.localizationMap,i.onMultiselectInit=function(e){s(e)},i.onDateRangeInit=function(e){var n=e.key;i.query[n]?i.pickerModels[n]=t.setSelectedDate(i.query[n]):i.pickerModels[n]={dateStart:null}},i.onMultiselectSelection=function(e,n){n&&(s(e),i.search())},i.onDateRangeSelection=function(e){var n=e.key;i.pickerModels[n].dateStart?!0===e.useFromToKeys?i.query[n]={from:moment(i.pickerModels[n].dateStart).utcOffset(0,!0).format(),to:moment(i.pickerModels[n].dateEnd).utcOffset(0,!0).add(23,"hours").add(59,"minutes").add(59,"seconds").format()}:i.query[n]={$gte:moment(i.pickerModels[n].dateStart).utcOffset(0,!0).format(),$lte:moment(i.pickerModels[n].dateEnd).utcOffset(0,!0).add(23,"hours").add(59,"minutes").add(59,"seconds").format()}:i.query[n]=void 0;i.search()},i.clearDate=function(e){var n=e.key;i.pickerModels[n]={dateStart:null},delete i.query[n],i.search()},i.clearSelection=function(e){var n=e.key,t=e.ngValue||"id";i.query[n]=!1===e.clearAll?[_.head(e.options)[t]]:[],s(e),i.search()},i.selectAll=function(e){var n=e.key,t=e.ngValue||"id";i.query[n]=_.map(e.options,t),s(e),i.search()}}function n(p,e){var g={localizationMap:e,setSelectedDate:function(e){var n=e.$gte?new Date(moment.utc(e.$gte).format("YYYY-MM-DD")):new Date(moment.utc(e.from).format("YYYY-MM-DD")),t=e.$lte?new Date(moment.utc(e.$lte).format("YYYY-MM-DD")):new Date(moment.utc(e.to).format("YYYY-MM-DD")),a={dateStart:new Date(n.getFullYear(),n.getMonth(),n.getDate()),dateEnd:new Date(t.getFullYear(),t.getMonth(),t.getDate())};return a.selectedTemplateName=(i=a,moment(i.dateStart).isSame(i.dateEnd)?(u=i,moment().startOf("day").isSame(u.dateStart)?g.localizationMap.Today:(m=i,moment().subtract(1,"days").startOf("day").isSame(m.dateStart)?g.localizationMap.Yesterday:p("date")(i.dateStart,"dd MMM yyyy"))):(c=i,moment().startOf("isoWeek").isSame(c.dateStart,"day")&&moment().endOf("isoWeek").isSame(c.dateEnd,"day")?g.localizationMap["This Week"]:(d=i,moment().subtract(1,"weeks").startOf("isoWeek").isSame(d.dateStart,"day")&&moment().subtract(1,"weeks").endOf("isoWeek").isSame(d.dateEnd,"day")?g.localizationMap["Last Week"]:(l=i,moment().startOf("month").isSame(l.dateStart,"day")&&moment().endOf("month").isSame(l.dateEnd,"day")?g.localizationMap["This Month"]:(r=i,moment().subtract(1,"months").startOf("month").isSame(r.dateStart,"day")&&moment().subtract(1,"months").endOf("month").isSame(r.dateEnd,"day")?g.localizationMap["Last Month"]:(o=i,moment().startOf("year").isSame(o.dateStart,"day")&&moment().endOf("year").isSame(o.dateEnd,"day")?g.localizationMap["This Year"]:(s=i,moment().subtract(1,"years").startOf("year").isSame(s.dateStart,"day")&&moment().subtract(1,"years").endOf("year").isSame(s.dateEnd,"day")?g.localizationMap["Last Year"]:p("date")(i.dateStart,"dd"+(i.dateStart.getMonth()!==i.dateEnd.getMonth()||i.dateStart.getFullYear()!==i.dateEnd.getFullYear()?" MMM":"")+(i.dateStart.getFullYear()!==i.dateEnd.getFullYear()?" yyyy":""))+" - "+p("date")(i.dateEnd,"dd MMM yyyy")))))))),a;var i,s,o,r,l,d,c,m,u}};return g}n.$inject=["$filter","dateFilterLocalizationFactory"],e.$inject=["dateRangeManager","quickFilterManager"],angular.module("app.core").directive("msQuickFilter",function(){return{restrict:"E",scope:{query:"=",filters:"=",search:"&"},controller:e,controllerAs:"vm",bindToController:!0,templateUrl:"app/core/directives/ms-quick-filter/ms-quick-filter.html"}}).factory("dateRangeManager",n)}(),function(){"use strict";angular.module("app.core").directive("msRandomClass",function(){return{restrict:"A",scope:{msRandomClass:"="},link:function(e,n){var t=e.msRandomClass[Math.floor(Math.random()*e.msRandomClass.length)];n.addClass(t)}}})}(),function(){"use strict";function e(i){return{restrict:"E",scope:{id:"=",model:"=",download:"="},replace:!0,link:function(n,e){var t=!1,a=document.createElement("audio");n.download||a.setAttribute("controlsList","nodownload"),a.setAttribute("preload","none"),a.setAttribute("controls",""),a.setAttribute("style","width: 265px;"),a.setAttribute("src"," "),a.onplay=function(e){t||(t=!0,e.preventDefault(),i[n.model||"voiceRecording"].download({id:n.id}).$promise.then(function(e){var n=[e.buffer],t=new Blob(n,{type:e.type});a.setAttribute("type",e.type),a.setAttribute("src",URL.createObjectURL(t)),a.play()}).catch(function(e){console.error(e)}))},e.append(a)}}}e.$inject=["api"],angular.module("app.core").directive("msRecording",e)}(),function(){"use strict";angular.module("app.core").directive("msResponsiveTable",function(){return{restrict:"A",link:function(e,n){var t=angular.element('<div class="ms-responsive-table-wrapper"></div>');n.after(t),t.append(n)}}})}(),function(){"use strict";function e(s,o,n,t){return{restrict:"AE",compile:function(e){if(!(t.getConfig("disableCustomScrollbars")||t.getConfig("disableCustomScrollbarsOnMobile")&&n.isMobile()))return e.addClass("ms-scroll"),function(e,n,t){var a={};function i(){PerfectScrollbar.update(n[0])}t.msScroll&&(a=e.$eval(t.msScroll)),a=angular.extend({},o.getConfig(),a),s(function(){PerfectScrollbar.initialize(n[0],a)},0),n.on("mouseenter",i),e.$watch(function(){return n.prop("scrollHeight")},function(e,n){angular.isUndefined(e)||angular.equals(e,n)||i()}),e.$watch(function(){return n.prop("scrollWidth")},function(e,n){angular.isUndefined(e)||angular.equals(e,n)||i()}),e.$on("$destroy",function(){n.off("mouseenter"),PerfectScrollbar.destroy(n[0])})}}}}e.$inject=["$timeout","msScrollConfig","msUtils","motionConfig"],angular.module("app.core").provider("msScrollConfig",function(){var n={wheelSpeed:1,wheelPropagation:!1,swipePropagation:!0,minScrollbarLength:null,maxScrollbarLength:null,useBothWheelAxes:!1,useKeyboard:!0,suppressScrollX:!1,suppressScrollY:!1,scrollXMarginOffset:0,scrollYMarginOffset:0,stopPropagationOnClick:!0};this.config=function(e){n=angular.extend({},n,e)},this.$get=function(){var e={getConfig:function(){return n}};return e}}).directive("msScroll",e)}(),function(){"use strict";function e(n,i,s,e){var o=this;function t(){angular.isArray(o.onSearch)?a(o.onSearch):o.onResultClick?(o.resultsLoading=!0,n.$parent.$eval("vm.search(query)",{query:o.query.filter}).then(function(e){a(e)}).catch(function(){a([])}).finally(function(){o.resultsLoading=!1})):o.onSearch()}function a(e){o.expanded&&(void 0===e||angular.isArray(e)||null===e)&&(o.selectedResultIndex=0,o.results=e)}function r(){o.expanded=!0,o.displayOn=!0,n.expand()}function l(e){!1!==e&&(o.query.filter=void 0,o.onResultClick?a(null):t()),o.expanded=!1,n.collapse()}function d(e){o.onResultClick&&o.onResultClick({item:e}),l()}function c(){var e=i.find(".ms-search-bar-results"),n=angular.element(e.find(".result")[o.selectedResultIndex]);if(e&&n){var t=n.position().top-8,a=n.position().top+n.outerHeight()+8;o.ignoreMouseEvents=!0,s.cancel(o.mouseEventIgnoreTimeout),o.mouseEventIgnoreTimeout=s(function(){o.ignoreMouseEvents=!1},250),e.scrollTop()>t&&e.scrollTop(t),a>e.height()+e.scrollTop()&&e.scrollTop(a-e.height())}}o.queryOptions={debounce:o.debounce||0},o.searchOnEnterKey=e.get().searchOnEnterKey||!1,o.resultsLoading=!1,o.results=null,o.selectedResultIndex=0,o.ignoreMouseEvents=!1,o.expandBar=r,o.collapseBar=l,o.blurCollapse=function(){if(!o.collapseOnBlur)return;l()},o.onKeyDown=function(e){var n=e.keyCode;-1<[27,38,40].indexOf(n)&&e.preventDefault();switch(n){case 13:if(!o.onResultClick)return t();if(!o.results)return;d(o.results[o.selectedResultIndex]);break;case 27:l();break;case 38:0<=o.selectedResultIndex-1&&(o.selectedResultIndex--,c());break;case 40:if(!o.results)return;o.selectedResultIndex+1<o.results.length&&(o.selectedResultIndex++,c())}},o.absorbEvent=function(e){e.preventDefault()},o.handleMouseenter=function(e){if(o.ignoreMouseEvents)return;o.selectedResultIndex=e},o.handleResultClick=d,n.$watch("vm.displayOn",function(e){angular.isUndefined(e)||(!0!==e||o.expanded?e||!1===o.expanded||l(!1):r())}),n.$watch("vm.query.filter",function(e,n){if(!angular.isUndefined(e)&&0!==e.length&&!angular.equals(e,n)&&!1!==o.displayOn){if(o.expanded){if(!0===o.searchOnEnterKey&&!o.onResultClick)return;if(o.minChars&&o.minChars>e.length)return}else r();t()}})}function n(a){return{restrict:"E",scope:{query:"=?",debounce:"=?",direction:"@",iconColor:"@",onSearch:"&",onResultClick:"&?",onExpand:"&?",onCollapse:"&?",collapseOnBlur:"<?",minChars:"<?",displayOn:"=?"},controller:e,controllerAs:"vm",bindToController:!0,templateUrl:"app/core/directives/ms-search-bar/ms-search-bar.html",compile:function(e){return e.addClass("ms-search-bar"),{post:function(n,t){n.collapse=function(){if(t.removeClass("expanded"),"down"===n.vm.direction){t.removeClass("down");var e=t.closest("md-toolbar");e&&e.removeClass("h-128")}a.find("body").removeClass("ms-search-bar-expanded")},n.expand=function(){if(t.addClass("expanded"),"down"===n.vm.direction){t.addClass("down");var e=t.closest("md-toolbar");e&&e.addClass("h-128")}a.find("body").addClass("ms-search-bar-expanded")}}}}}}e.$inject=["$scope","$element","$timeout","settingsManager"],n.$inject=["$document"],angular.module("app.core").controller("MsSearchBarController",e).directive("msSearchBar",n)}(),function(){"use strict";function e(e,t,i,o,r,l){var d=this;d.query="",d.queryOptions={debounce:300},d.resultsLoading=!1,d.selectedResultIndex=0,d.ignoreMouseEvents=!1,d.mobileBarActive=!1,d.results=null,d.shortcuts=[],d.sortableOptions={ghostClass:"ghost",forceFallback:!0,fallbackClass:"dragging",onSort:function(){d.saveShortcuts()}},d.populateResults=function(){for(var e=[],n=l.getFlatNavigation(),t=r.defer(),a=0;a<n.length;a++)n[a].uisref&&e.push(n[a]);if(d.query){e=e.filter(function(e){if(-1<angular.lowercase(e.title).search(angular.lowercase(d.query)))return!0});for(var i=0;i<e.length;i++){e[i].hasShortcut=!1;for(var s=0;s<d.shortcuts.length;s++)if(d.shortcuts[s]._id===e[i]._id){e[i].hasShortcut=!0;break}}}else 0<d.shortcuts.length&&(e=d.shortcuts);return d.selectedResultIndex=0,o(function(){t.resolve(e)},250),t.promise},d.loadShortcuts=function(){var e=r.defer(),n=angular.fromJson(t.get("motion.shortcuts"));angular.isUndefined(n)&&(n=[{title:"Agents",icon:"icon-account-multiple",state:"app.staff.agents",weight:5,children:[],uisref:"app.staff.agents",hasShortcut:!0},{title:"License",icon:"icon-cog",state:"app.settings.license",weight:10,children:[],uisref:"app.settings.license",hasShortcut:!0}],t.put("motion.shortcuts",angular.toJson(n)));return e.resolve(n),e.promise},d.saveShortcuts=function(){var e=r.defer();return t.put("motion.shortcuts",angular.toJson(d.shortcuts)),o(function(){e.resolve({success:!0})},250),e.promise},d.addShortcut=function(e){e.hasShortcut=!0,d.shortcuts.push(e),d.saveShortcuts()},d.removeShortcut=function(e){e.hasShortcut=!1;for(var n=0;n<d.shortcuts.length;n++)d.shortcuts[n]._id===e._id&&(d.shortcuts.splice(n,1),d.query||(0===d.shortcuts.length?d.results=null:n>=d.shortcuts.length&&(d.selectedResultIndex=d.shortcuts.length-1)));d.saveShortcuts()},d.handleResultClick=function(e){e.hasShortcut?d.removeShortcut(e):d.addShortcut(e)},d.absorbEvent=function(e){e.preventDefault()},d.handleKeydown=function(e){var n=e.keyCode;-1<[38,40].indexOf(n)&&e.preventDefault();switch(n){case 13:d.handleResultClick(d.results[d.selectedResultIndex]);break;case 38:0<=d.selectedResultIndex-1&&(d.selectedResultIndex--,d.ensureSelectedResultIsVisible());break;case 40:d.selectedResultIndex+1<d.results.length&&(d.selectedResultIndex++,d.ensureSelectedResultIsVisible())}},d.handleMouseenter=function(e){if(d.ignoreMouseEvents)return;d.selectedResultIndex=e},d.temporarilyIgnoreMouseEvents=function(){d.ignoreMouseEvents=!0,o.cancel(d.mouseEventIgnoreTimeout),d.mouseEventIgnoreTimeout=o(function(){d.ignoreMouseEvents=!1},250)},d.ensureSelectedResultIsVisible=function(){var e=i.find("#ms-shortcut-add-menu").find(".results"),n=angular.element(e.find(".result")[d.selectedResultIndex]);if(e&&n){var t=n.position().top-8,a=n.position().top+n.outerHeight()+8;d.temporarilyIgnoreMouseEvents(),e.scrollTop()>t&&e.scrollTop(t),a>e.height()+e.scrollTop()&&e.scrollTop(a-e.height())}},d.toggleMobileBar=function(){d.mobileBarActive=!d.mobileBarActive},d.loadShortcuts().then(function(e){d.shortcuts=e,0<d.shortcuts.length&&(d.results=e)}),e.$watch("MsShortcuts.query",function(e,n){angular.isUndefined(e)||angular.equals(e,n)||(d.resultsLoading=!0,d.populateResults().then(function(e){d.results=e},function(){d.results=[]}).finally(function(){d.resultsLoading=!1}))})}e.$inject=["$scope","$cookies","$document","$timeout","$q","msNavigationService"],angular.module("app.core").controller("MsShortcutsController",e).directive("msShortcuts",function(){return{restrict:"E",scope:{},require:"msShortcuts",controller:"MsShortcutsController as MsShortcuts",bindToController:{},templateUrl:"app/core/directives/ms-shortcuts/ms-shortcuts.html",compile:function(e){return e.addClass("ms-shortcuts"),function(e,n){}}}})}(),function(){"use strict";angular.module("app.core").directive("msSidenavHelper",function(){return{restrict:"A",require:"^mdSidenav",link:function(e,n,t,a){e.$watch(function(){return a.isOpen()&&!a.isLockedOpen()},function(e){angular.isUndefined(e)||(n.parent().toggleClass("full-height",e),angular.element("html").toggleClass("sidenav-open",e))})}}})}(),function(){"use strict";function e(a){return{restrict:"E",link:function(e,n){var t=e.$on("msSplashScreen::remove",function(){a.leave(n).then(function(){t(),e=n=null})})}}}e.$inject=["$animate"],angular.module("app.core").directive("msSplashScreen",e)}(),function(){"use strict";function e(e){var i=this;function n(){i.setCurrentStep(1)}function t(e){return o(e)?i.steps[e-1].scope.optionalStep:null}function a(e){return o(e)?!!i.steps[e-1].scope.hideStep:null}function s(e){return o(e)?!!t(e)||i.steps[e-1].form.$valid:null}function o(e){return!(angular.isUndefined(e)||e<1||e>i.steps.length)}i.mainForm=void 0,i.orientation="horizontal",i.steps=[],i.currentStep=void 0,i.currentStepNumber=1,i.setOrientation=function(e){i.orientation=e||"horizontal"},i.registerMainForm=function(e){i.mainForm=e},i.registerStep=function(e,n,t){var a={element:e,scope:n,form:t,stepNumber:n.step||i.steps.length+1,stepTitle:n.stepTitle,stepTitleTranslate:n.stepTitleTranslate};return i.steps.push(a),i.steps.sort(function(e,n){return e.stepNumber-n.stepNumber}),a},i.setupSteps=function(){i.setCurrentStep(i.currentStepNumber)},i.resetForm=function(){e(function(){for(var e=0;e<i.steps.length;e++)i.steps[e].form.$setPristine(),i.steps[e].form.$setUntouched();i.mainForm.$setPristine(),i.mainForm.$setUntouched(),n()})},i.setCurrentStep=function(e){if(!o(e))return;if(i.currentStepNumber=e,"horizontal"===i.orientation){for(var n=0;n<i.steps.length;n++)i.steps[n].element.hide();i.steps[i.currentStepNumber-1].element.show()}else if("vertical"===i.orientation){for(var t=0;t<i.steps.length;t++)i.steps[t].element.find(".ms-stepper-step-content").hide();i.steps[i.currentStepNumber-1].element.find(".ms-stepper-step-content").show()}},i.gotoStep=function(e){if(a(e))return;i.setCurrentStep(e)},i.gotoPreviousStep=function(){for(var e=i.currentStepNumber-1,n=e;1<=n;n--)if(!a(n)){e=n;break}i.setCurrentStep(e)},i.gotoNextStep=function(){for(var e=i.currentStepNumber+1,n=e;n<=i.steps.length;n++)if(!a(n)){e=n;break}i.setCurrentStep(e)},i.gotoFirstStep=n,i.gotoLastStep=function(){i.setCurrentStep(i.steps.length)},i.isFirstStep=function(){return 1===i.currentStepNumber},i.isLastStep=function(){return i.currentStepNumber===i.steps.length},i.isStepCurrent=function(e){return o(e)?i.currentStepNumber===e:null},i.isStepDisabled=function(e){if(!o(e))return null;for(var n=!1,t=1;t<e;t++)if(!s(t)){n=!0;break}return n},i.isStepOptional=t,i.isStepHidden=a,i.filterHiddenStep=function(e){return!a(e.stepNumber)},i.isStepValid=s,i.isStepNumberValid=o,i.isFormValid=function(){return i.mainForm.$valid}}function n(o){return{restrict:"A",scope:{},require:["form","msVerticalStepper"],priority:1001,controller:"MsStepperController as MsStepper",bindToController:{model:"=ngModel"},transclude:!0,templateUrl:"app/core/directives/ms-stepper/templates/vertical/vertical.html",compile:function(e){return e.addClass("ms-stepper"),function(e,n,t,a){var i=a[0],s=a[1];o(function(){s.setOrientation("vertical"),s.registerMainForm(i),s.setupSteps()})}}}}e.$inject=["$timeout"],n.$inject=["$timeout"],angular.module("app.core").controller("MsStepperController",e).directive("msHorizontalStepper",function(){return{restrict:"A",scope:{},require:["form","msHorizontalStepper"],priority:1001,controller:"MsStepperController as MsStepper",bindToController:{model:"=ngModel"},transclude:!0,templateUrl:"app/core/directives/ms-stepper/templates/horizontal/horizontal.html",compile:function(e){return e.addClass("ms-stepper"),function(e,n,t,a){var i=a[0],s=a[1];s.setOrientation("horizontal"),s.registerMainForm(i),s.setupSteps()}}}}).directive("msHorizontalStepperStep",function(){return{restrict:"E",require:["form","^msHorizontalStepper"],priority:1e3,scope:{step:"=?",stepTitle:"=?",stepTitleTranslate:"=?",optionalStep:"=?",hideStep:"=?"},compile:function(e){return e.addClass("ms-stepper-step"),function(e,n,t,a){var i=a[0],s=a[1];e.optionalStep=angular.isDefined(t.optionalStep),s.registerStep(n,e,i),n.hide()}}}}).directive("msVerticalStepper",n).directive("msVerticalStepperStep",function(){return{restrict:"E",require:["form","^msVerticalStepper"],priority:1e3,scope:{step:"=?",stepTitle:"=?",stepTitleTranslate:"=?",optionalStep:"=?",hideStep:"=?"},transclude:!0,templateUrl:"app/core/directives/ms-stepper/templates/vertical/step/vertical-step.html",compile:function(e){return e.addClass("ms-stepper-step"),function(e,n,t,a){var i=a[0],s=a[1];e.optionalStep=angular.isDefined(t.optionalStep),e.stepInfo=s.registerStep(n,e,i),e.MsStepper=s,n.find(".ms-stepper-step-content").hide()}}}})}(),function(){"use strict";function e(e){return{restrict:"E",scope:{},transclude:!0,controller:"MsTabScrollController",controllerAs:"vm",bindToController:!0,templateUrl:"app/core/directives/ms-tab-scroll/ms-tab-scroll.html",compile:function(e){return e.addClass("ms-tab-scroll"),function(e,n){}}}}e.$inject=["$document"],angular.module("app.core").controller("MsTabScrollController",function(){function n(){var e=document.getElementById("bar-container"),n=document.getElementById("tab-container");return n.scrollWidth>e.scrollWidth&&0==e.scrollLeft&&0==n.scrollLeft?"right":n.scrollWidth>e.scrollWidth&&n.scrollLeft>e.scrollLeft&&e.scrollWidth+n.scrollLeft>=n.scrollWidth?"left":n.scrollWidth>e.scrollWidth&&n.scrollLeft>e.scrollLeft&&e.scrollWidth+n.scrollLeft<n.scrollWidth?"both":"none"}this.onTabScroll=function(e){"left"==e?$("#tab-container").stop().animate({scrollLeft:"-=400"},1e3):$("#tab-container").stop().animate({scrollLeft:"+=400"},1e3)},this.canScroll=function(e){switch(n()){case"both":return!0;case"left":return"left"==e;case"right":return"right"==e;case"none":default:return!1}}}).directive("msTabScroll",e)}(),function(){"use strict";function e(m,u){return{scope:!0,require:"^msTimeline",compile:function(e){return e.addClass("ms-timeline-item").addClass("hidden"),function(e,t,n,a){var i=72,s=!1,o=!1,r=a.getScrollEl();!function(){t.find("ms-card")?e.$on("msCard::cardTemplateLoaded",function(e,n){var t=angular.element(n[0]);d(t).then(function(){m(function(){s=!0})})}):d(t).then(function(){m(function(){s=!0})});r.on("scroll",c),c()}();var l=e.$watch(function(){return s&&o},function(e,n){angular.equals(e,n)||e&&(t.removeClass("hidden").addClass("animate"),l())},!0);function d(e){var n=u.defer(),t=e.find("img");return 0<t.length?t.on("load",function(){n.resolve("Image is loaded")}):n.resolve("No images"),n.promise}function c(){r.scrollTop()+r.height()>t.position().top+i&&(m(function(){o=!0}),r.off("scroll",c))}}}}}e.$inject=["$timeout","$q"],angular.module("app.core").controller("MsTimelineController",function(){var n=this;n.scrollEl=void 0,n.setScrollEl=function(e){n.scrollEl=e},n.getScrollEl=function(){return n.scrollEl}}).directive("msTimeline",function(){return{scope:{msTimeline:"=?",loadMore:"&?msTimelineLoadMore"},controller:"MsTimelineController",compile:function(e){return e.addClass("ms-timeline"),function(e,n,t,a){var i=angular.element('<div class="ms-timeline-loader md-accent-bg md-whiteframe-4dp"><span class="spinner animate-rotate"></span></div>');n.append(i);var s={scrollEl:"#content"};s=angular.extend(s,e.msTimeline,{});var o=angular.element(s.scrollEl);a.setScrollEl(o);var r=144;function l(){o.scrollTop()+o.height()+r>i.position().top&&(i.addClass("show"),c(),e.loadMore&&e.loadMore().then(function(){i.removeClass("show"),d()},function(){i.remove()}))}function d(){o.on("scroll",l)}function c(){o.off("scroll",l)}d(),e.$on("$destroy",function(){c()})}}}}).directive("msTimelineItem",e)}(),function(){"use strict";function e(a,e,n,i,t){var r=this;function s(){!function(){r.millis=l().diff(moment(r.startingTime));var e=moment.duration(r.millis),n=e.seconds(),t=e.minutes(),a=e.hours(),i=e.days(),s=e.months(),o=e.years();r.seconds=n<10?"0"+n:n,r.minutes=t<10?"0"+t:t,r.hours=a<10?"0"+a:a,r.days=i<10?"0"+i:i,r.months=s<10?"0"+s:s,r.years=o<10?"0"+o:o,r.timer=0<r.days?r.days+"d ":r.hours+":"+r.minutes+":"+r.seconds}(),r.timeoutId=setTimeout(function(){s(),a.$digest()},r.interval)}function l(e){var n=(e||moment()).utcOffset(a.serverDateOffset).format("YYYY-MM-DD HH:mm:ss");return moment(n)}function o(){n(function(n,t){try{if(a.serverDateOffset)return void n(l());i.setting.getDate().$promise.then(function(e){a.serverDateOffset=e.offset,n(moment(e.now))})}catch(e){t(e)}}).then(function(e){var n=r.startTime?moment(r.startTime):void 0;r.startTime?n.isAfter(e,"hour")||n.isBefore(e,"hour")?r.startingTime=l(n):r.startingTime=n:r.startingTime=e,s()}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.getDate",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}o(),a.$watch("vm.startTime",function(e,n){angular.isUndefined(e)||0!==e.length&&(angular.equals(e,n)||o())}),a.$on("timer-start",function(){r.startTime=void 0,o()}),e.bind("$destroy",function(){r.timeoutId&&clearTimeout(r.timeoutId)})}e.$inject=["$scope","$element","$q","api","toasty"],angular.module("app.core").directive("timer",function(){return{restrict:"EA",replace:!1,scope:{startTime:"=?",interval:"=?"},template:"<span ng-cloak>{{ vm.timer }}</span>",compile:function(){return{pre:function(e,n,t){e.interval=t.interval||1e3}}},controller:e,controllerAs:"vm",bindToController:!0}})}(),function(){"use strict";angular.module("app.core").directive("msTimezone",function(){return{restrict:"E",scope:{ngModel:"="},controller:["$scope",function(e){e.timezone=[{name:"Europe/Andorra",utcOffset:60,offsetStr:"+01:00",countries:["AD"]},{name:"Asia/Dubai",utcOffset:240,offsetStr:"+04:00",countries:["AE","OM"]},{name:"Asia/Kabul",utcOffset:270,offsetStr:"+04:30",countries:["AF"]},{name:"Europe/Tirane",utcOffset:60,offsetStr:"+01:00",countries:["AL"]},{name:"Asia/Yerevan",utcOffset:240,offsetStr:"+04:00",countries:["AM"]},{name:"Antarctica/Rothera",utcOffset:-180,offsetStr:"-03:00",countries:["AQ"]},{name:"Antarctica/Palmer",utcOffset:-180,offsetStr:"-03:00",countries:["AQ"]},{name:"Antarctica/Mawson",utcOffset:300,offsetStr:"+05:00",countries:["AQ"]},{name:"Antarctica/Davis",utcOffset:420,offsetStr:"+07:00",countries:["AQ"]},{name:"Antarctica/Casey",utcOffset:480,offsetStr:"+08:00",countries:["AQ"]},{name:"Antarctica/Vostok",utcOffset:360,offsetStr:"+06:00",countries:["AQ"]},{name:"Antarctica/DumontDUrville",utcOffset:600,offsetStr:"+10:00",countries:["AQ"]},{name:"Antarctica/Syowa",utcOffset:180,offsetStr:"+03:00",countries:["AQ"]},{name:"Antarctica/Troll",utcOffset:0,offsetStr:"+00:00",countries:["AQ"]},{name:"America/Argentina/Buenos_Aires",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Cordoba",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Salta",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Jujuy",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Tucuman",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Catamarca",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/La_Rioja",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/San_Juan",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Mendoza",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/San_Luis",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Rio_Gallegos",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Ushuaia",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"Pacific/Pago_Pago",utcOffset:-660,offsetStr:"-11:00",countries:["AS","UM"]},{name:"Europe/Vienna",utcOffset:60,offsetStr:"+01:00",countries:["AT"]},{name:"Australia/Lord_Howe",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Antarctica/Macquarie",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Australia/Hobart",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Australia/Currie",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Australia/Melbourne",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Australia/Sydney",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Australia/Broken_Hill",utcOffset:630,offsetStr:"+10:30",countries:["AU"]},{name:"Australia/Brisbane",utcOffset:600,offsetStr:"+10:00",countries:["AU"]},{name:"Australia/Lindeman",utcOffset:600,offsetStr:"+10:00",countries:["AU"]},{name:"Australia/Adelaide",utcOffset:630,offsetStr:"+10:30",countries:["AU"]},{name:"Australia/Darwin",utcOffset:570,offsetStr:"+09:30",countries:["AU"]},{name:"Australia/Perth",utcOffset:480,offsetStr:"+08:00",countries:["AU"]},{name:"Australia/Eucla",utcOffset:525,offsetStr:"+08:45",countries:["AU"]},{name:"Asia/Baku",utcOffset:240,offsetStr:"+04:00",countries:["AZ"]},{name:"America/Barbados",utcOffset:-240,offsetStr:"-04:00",countries:["BB"]},{name:"Asia/Dhaka",utcOffset:360,offsetStr:"+06:00",countries:["BD"]},{name:"Europe/Brussels",utcOffset:60,offsetStr:"+01:00",countries:["BE"]},{name:"Europe/Sofia",utcOffset:120,offsetStr:"+02:00",countries:["BG"]},{name:"Atlantic/Bermuda",utcOffset:-240,offsetStr:"-04:00",countries:["BM"]},{name:"Asia/Brunei",utcOffset:480,offsetStr:"+08:00",countries:["BN"]},{name:"America/La_Paz",utcOffset:-240,offsetStr:"-04:00",countries:["BO"]},{name:"America/Noronha",utcOffset:-120,offsetStr:"-02:00",countries:["BR"]},{name:"America/Belem",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Fortaleza",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Recife",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Araguaina",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Maceio",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Bahia",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Sao_Paulo",utcOffset:-120,offsetStr:"-02:00",countries:["BR"]},{name:"America/Campo_Grande",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Cuiaba",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Santarem",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Porto_Velho",utcOffset:-240,offsetStr:"-04:00",countries:["BR"]},{name:"America/Boa_Vista",utcOffset:-240,offsetStr:"-04:00",countries:["BR"]},{name:"America/Manaus",utcOffset:-240,offsetStr:"-04:00",countries:["BR"]},{name:"America/Eirunepe",utcOffset:-300,offsetStr:"-05:00",countries:["BR"]},{name:"America/Rio_Branco",utcOffset:-300,offsetStr:"-05:00",countries:["BR"]},{name:"America/Nassau",utcOffset:-300,offsetStr:"-05:00",countries:["BS"]},{name:"Asia/Thimphu",utcOffset:360,offsetStr:"+06:00",countries:["BT"]},{name:"Europe/Minsk",utcOffset:180,offsetStr:"+03:00",countries:["BY"]},{name:"America/Belize",utcOffset:-360,offsetStr:"-06:00",countries:["BZ"]},{name:"America/St_Johns",utcOffset:-210,offsetStr:"-03:30",countries:["CA"]},{name:"America/Halifax",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},{name:"America/Glace_Bay",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},{name:"America/Moncton",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},{name:"America/Goose_Bay",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},{name:"America/Blanc-Sablon",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},{name:"America/Toronto",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Nipigon",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Thunder_Bay",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Iqaluit",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Pangnirtung",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Resolute",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Atikokan",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Rankin_Inlet",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Winnipeg",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Rainy_River",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Regina",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Swift_Current",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Edmonton",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Cambridge_Bay",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Yellowknife",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Inuvik",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Creston",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Dawson_Creek",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Fort_Nelson",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Vancouver",utcOffset:-480,offsetStr:"-08:00",countries:["CA"]},{name:"America/Whitehorse",utcOffset:-480,offsetStr:"-08:00",countries:["CA"]},{name:"America/Dawson",utcOffset:-480,offsetStr:"-08:00",countries:["CA"]},{name:"Indian/Cocos",utcOffset:390,offsetStr:"+06:30",countries:["CC"]},{name:"Europe/Zurich",utcOffset:60,offsetStr:"+01:00",countries:["CH","DE","LI"]},{name:"Africa/Abidjan",utcOffset:0,offsetStr:"+00:00",countries:["CI","BF","GM","GN","ML","MR","SH","SL","SN","ST","TG"]},{name:"Pacific/Rarotonga",utcOffset:-600,offsetStr:"-10:00",countries:["CK"]},{name:"America/Santiago",utcOffset:-180,offsetStr:"-03:00",countries:["CL"]},{name:"Pacific/Easter",utcOffset:-300,offsetStr:"-05:00",countries:["CL"]},{name:"Asia/Shanghai",utcOffset:480,offsetStr:"+08:00",countries:["CN"]},{name:"Asia/Urumqi",utcOffset:360,offsetStr:"+06:00",countries:["CN"]},{name:"America/Bogota",utcOffset:-300,offsetStr:"-05:00",countries:["CO"]},{name:"America/Costa_Rica",utcOffset:-360,offsetStr:"-06:00",countries:["CR"]},{name:"America/Havana",utcOffset:-300,offsetStr:"-05:00",countries:["CU"]},{name:"Atlantic/Cape_Verde",utcOffset:-60,offsetStr:"-01:00",countries:["CV"]},{name:"America/Curacao",utcOffset:-240,offsetStr:"-04:00",countries:["CW","AW","BQ","SX"]},{name:"Indian/Christmas",utcOffset:420,offsetStr:"+07:00",countries:["CX"]},{name:"Asia/Nicosia",utcOffset:120,offsetStr:"+02:00",countries:["CY"]},{name:"Europe/Prague",utcOffset:60,offsetStr:"+01:00",countries:["CZ","SK"]},{name:"Europe/Berlin",utcOffset:60,offsetStr:"+01:00",countries:["DE"]},{name:"Europe/Copenhagen",utcOffset:60,offsetStr:"+01:00",countries:["DK"]},{name:"America/Santo_Domingo",utcOffset:-240,offsetStr:"-04:00",countries:["DO"]},{name:"Africa/Algiers",utcOffset:60,offsetStr:"+01:00",countries:["DZ"]},{name:"America/Guayaquil",utcOffset:-300,offsetStr:"-05:00",countries:["EC"]},{name:"Pacific/Galapagos",utcOffset:-360,offsetStr:"-06:00",countries:["EC"]},{name:"Europe/Tallinn",utcOffset:120,offsetStr:"+02:00",countries:["EE"]},{name:"Africa/Cairo",utcOffset:120,offsetStr:"+02:00",countries:["EG"]},{name:"Africa/El_Aaiun",utcOffset:0,offsetStr:"+00:00",countries:["EH"]},{name:"Europe/Madrid",utcOffset:60,offsetStr:"+01:00",countries:["ES"]},{name:"Africa/Ceuta",utcOffset:60,offsetStr:"+01:00",countries:["ES"]},{name:"Atlantic/Canary",utcOffset:0,offsetStr:"+00:00",countries:["ES"]},{name:"Europe/Helsinki",utcOffset:120,offsetStr:"+02:00",countries:["FI","AX"]},{name:"Pacific/Fiji",utcOffset:720,offsetStr:"+12:00",countries:["FJ"]},{name:"Atlantic/Stanley",utcOffset:-180,offsetStr:"-03:00",countries:["FK"]},{name:"Pacific/Chuuk",utcOffset:600,offsetStr:"+10:00",countries:["FM"]},{name:"Pacific/Pohnpei",utcOffset:660,offsetStr:"+11:00",countries:["FM"]},{name:"Pacific/Kosrae",utcOffset:660,offsetStr:"+11:00",countries:["FM"]},{name:"Atlantic/Faroe",utcOffset:0,offsetStr:"+00:00",countries:["FO"]},{name:"Europe/Paris",utcOffset:60,offsetStr:"+01:00",countries:["FR"]},{name:"Europe/London",utcOffset:0,offsetStr:"+00:00",countries:["GB","GG","IM","JE"]},{name:"Asia/Tbilisi",utcOffset:240,offsetStr:"+04:00",countries:["GE"]},{name:"America/Cayenne",utcOffset:-180,offsetStr:"-03:00",countries:["GF"]},{name:"Africa/Accra",utcOffset:0,offsetStr:"+00:00",countries:["GH"]},{name:"Europe/Gibraltar",utcOffset:60,offsetStr:"+01:00",countries:["GI"]},{name:"America/Godthab",utcOffset:-180,offsetStr:"-03:00",countries:["GL"]},{name:"America/Danmarkshavn",utcOffset:0,offsetStr:"+00:00",countries:["GL"]},{name:"America/Scoresbysund",utcOffset:-60,offsetStr:"-01:00",countries:["GL"]},{name:"America/Thule",utcOffset:-240,offsetStr:"-04:00",countries:["GL"]},{name:"Europe/Athens",utcOffset:120,offsetStr:"+02:00",countries:["GR"]},{name:"Atlantic/South_Georgia",utcOffset:-120,offsetStr:"-02:00",countries:["GS"]},{name:"America/Guatemala",utcOffset:-360,offsetStr:"-06:00",countries:["GT"]},{name:"Pacific/Guam",utcOffset:600,offsetStr:"+10:00",countries:["GU","MP"]},{name:"Africa/Bissau",utcOffset:0,offsetStr:"+00:00",countries:["GW"]},{name:"America/Guyana",utcOffset:-240,offsetStr:"-04:00",countries:["GY"]},{name:"Asia/Hong_Kong",utcOffset:480,offsetStr:"+08:00",countries:["HK"]},{name:"America/Tegucigalpa",utcOffset:-360,offsetStr:"-06:00",countries:["HN"]},{name:"America/Port-au-Prince",utcOffset:-300,offsetStr:"-05:00",countries:["HT"]},{name:"Europe/Budapest",utcOffset:60,offsetStr:"+01:00",countries:["HU"]},{name:"Asia/Jakarta",utcOffset:420,offsetStr:"+07:00",countries:["ID"]},{name:"Asia/Pontianak",utcOffset:420,offsetStr:"+07:00",countries:["ID"]},{name:"Asia/Makassar",utcOffset:480,offsetStr:"+08:00",countries:["ID"]},{name:"Asia/Jayapura",utcOffset:540,offsetStr:"+09:00",countries:["ID"]},{name:"Europe/Dublin",utcOffset:0,offsetStr:"+00:00",countries:["IE"]},{name:"Asia/Jerusalem",utcOffset:120,offsetStr:"+02:00",countries:["IL"]},{name:"Asia/Kolkata",utcOffset:330,offsetStr:"+05:30",countries:["IN"]},{name:"Indian/Chagos",utcOffset:360,offsetStr:"+06:00",countries:["IO"]},{name:"Asia/Baghdad",utcOffset:180,offsetStr:"+03:00",countries:["IQ"]},{name:"Asia/Tehran",utcOffset:210,offsetStr:"+03:30",countries:["IR"]},{name:"Atlantic/Reykjavik",utcOffset:0,offsetStr:"+00:00",countries:["IS"]},{name:"Europe/Rome",utcOffset:60,offsetStr:"+01:00",countries:["IT","SM","VA"]},{name:"America/Jamaica",utcOffset:-300,offsetStr:"-05:00",countries:["JM"]},{name:"Asia/Amman",utcOffset:120,offsetStr:"+02:00",countries:["JO"]},{name:"Asia/Tokyo",utcOffset:540,offsetStr:"+09:00",countries:["JP"]},{name:"Africa/Nairobi",utcOffset:180,offsetStr:"+03:00",countries:["KE","DJ","ER","ET","KM","MG","SO","TZ","UG","YT"]},{name:"Asia/Bishkek",utcOffset:360,offsetStr:"+06:00",countries:["KG"]},{name:"Pacific/Tarawa",utcOffset:720,offsetStr:"+12:00",countries:["KI"]},{name:"Pacific/Enderbury",utcOffset:780,offsetStr:"+13:00",countries:["KI"]},{name:"Pacific/Kiritimati",utcOffset:840,offsetStr:"+14:00",countries:["KI"]},{name:"Asia/Pyongyang",utcOffset:510,offsetStr:"+08:30",countries:["KP"]},{name:"Asia/Seoul",utcOffset:540,offsetStr:"+09:00",countries:["KR"]},{name:"America/Cayman",utcOffset:-300,offsetStr:"-05:00",countries:["KY"]},{name:"Asia/Almaty",utcOffset:360,offsetStr:"+06:00",countries:["KZ"]},{name:"Asia/Qyzylorda",utcOffset:360,offsetStr:"+06:00",countries:["KZ"]},{name:"Asia/Aqtobe",utcOffset:300,offsetStr:"+05:00",countries:["KZ"]},{name:"Asia/Aqtau",utcOffset:300,offsetStr:"+05:00",countries:["KZ"]},{name:"Asia/Oral",utcOffset:300,offsetStr:"+05:00",countries:["KZ"]},{name:"Asia/Beirut",utcOffset:120,offsetStr:"+02:00",countries:["LB"]},{name:"Asia/Colombo",utcOffset:330,offsetStr:"+05:30",countries:["LK"]},{name:"Africa/Monrovia",utcOffset:0,offsetStr:"+00:00",countries:["LR"]},{name:"Europe/Vilnius",utcOffset:120,offsetStr:"+02:00",countries:["LT"]},{name:"Europe/Luxembourg",utcOffset:60,offsetStr:"+01:00",countries:["LU"]},{name:"Europe/Riga",utcOffset:120,offsetStr:"+02:00",countries:["LV"]},{name:"Africa/Tripoli",utcOffset:120,offsetStr:"+02:00",countries:["LY"]},{name:"Africa/Casablanca",utcOffset:0,offsetStr:"+00:00",countries:["MA"]},{name:"Europe/Monaco",utcOffset:60,offsetStr:"+01:00",countries:["MC"]},{name:"Europe/Chisinau",utcOffset:120,offsetStr:"+02:00",countries:["MD"]},{name:"Pacific/Majuro",utcOffset:720,offsetStr:"+12:00",countries:["MH"]},{name:"Pacific/Kwajalein",utcOffset:720,offsetStr:"+12:00",countries:["MH"]},{name:"Asia/Rangoon",utcOffset:390,offsetStr:"+06:30",countries:["MM"]},{name:"Asia/Ulaanbaatar",utcOffset:480,offsetStr:"+08:00",countries:["MN"]},{name:"Asia/Hovd",utcOffset:420,offsetStr:"+07:00",countries:["MN"]},{name:"Asia/Choibalsan",utcOffset:480,offsetStr:"+08:00",countries:["MN"]},{name:"Asia/Macau",utcOffset:480,offsetStr:"+08:00",countries:["MO"]},{name:"America/Martinique",utcOffset:-240,offsetStr:"-04:00",countries:["MQ"]},{name:"Europe/Malta",utcOffset:60,offsetStr:"+01:00",countries:["MT"]},{name:"Indian/Mauritius",utcOffset:240,offsetStr:"+04:00",countries:["MU"]},{name:"Indian/Maldives",utcOffset:300,offsetStr:"+05:00",countries:["MV"]},{name:"America/Mexico_City",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},{name:"America/Cancun",utcOffset:-300,offsetStr:"-05:00",countries:["MX"]},{name:"America/Merida",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},{name:"America/Monterrey",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},{name:"America/Matamoros",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},{name:"America/Mazatlan",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},{name:"America/Chihuahua",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},{name:"America/Ojinaga",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},{name:"America/Hermosillo",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},{name:"America/Tijuana",utcOffset:-480,offsetStr:"-08:00",countries:["MX"]},{name:"America/Santa_Isabel",utcOffset:-480,offsetStr:"-08:00",countries:["MX"]},{name:"America/Bahia_Banderas",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},{name:"Asia/Kuala_Lumpur",utcOffset:480,offsetStr:"+08:00",countries:["MY"]},{name:"Asia/Kuching",utcOffset:480,offsetStr:"+08:00",countries:["MY"]},{name:"Africa/Maputo",utcOffset:120,offsetStr:"+02:00",countries:["MZ","BI","BW","CD","MW","RW","ZM","ZW"]},{name:"Africa/Windhoek",utcOffset:120,offsetStr:"+02:00",countries:["NA"]},{name:"Pacific/Noumea",utcOffset:660,offsetStr:"+11:00",countries:["NC"]},{name:"Pacific/Norfolk",utcOffset:660,offsetStr:"+11:00",countries:["NF"]},{name:"Africa/Lagos",utcOffset:60,offsetStr:"+01:00",countries:["NG","AO","BJ","CD","CF","CG","CM","GA","GQ","NE"]},{name:"America/Managua",utcOffset:-360,offsetStr:"-06:00",countries:["NI"]},{name:"Europe/Amsterdam",utcOffset:60,offsetStr:"+01:00",countries:["NL"]},{name:"Europe/Oslo",utcOffset:60,offsetStr:"+01:00",countries:["NO","SJ"]},{name:"Asia/Kathmandu",utcOffset:345,offsetStr:"+05:45",countries:["NP"]},{name:"Pacific/Nauru",utcOffset:720,offsetStr:"+12:00",countries:["NR"]},{name:"Pacific/Niue",utcOffset:-660,offsetStr:"-11:00",countries:["NU"]},{name:"Pacific/Auckland",utcOffset:780,offsetStr:"+13:00",countries:["NZ","AQ"]},{name:"Pacific/Chatham",utcOffset:825,offsetStr:"+13:45",countries:["NZ"]},{name:"America/Panama",utcOffset:-300,offsetStr:"-05:00",countries:["PA"]},{name:"America/Lima",utcOffset:-300,offsetStr:"-05:00",countries:["PE"]},{name:"Pacific/Tahiti",utcOffset:-600,offsetStr:"-10:00",countries:["PF"]},{name:"Pacific/Marquesas",utcOffset:-570,offsetStr:"-09:30",countries:["PF"]},{name:"Pacific/Gambier",utcOffset:-540,offsetStr:"-09:00",countries:["PF"]},{name:"Pacific/Port_Moresby",utcOffset:600,offsetStr:"+10:00",countries:["PG"]},{name:"Pacific/Bougainville",utcOffset:660,offsetStr:"+11:00",countries:["PG"]},{name:"Asia/Manila",utcOffset:480,offsetStr:"+08:00",countries:["PH"]},{name:"Asia/Karachi",utcOffset:300,offsetStr:"+05:00",countries:["PK"]},{name:"Europe/Warsaw",utcOffset:60,offsetStr:"+01:00",countries:["PL"]},{name:"America/Miquelon",utcOffset:-180,offsetStr:"-03:00",countries:["PM"]},{name:"Pacific/Pitcairn",utcOffset:-480,offsetStr:"-08:00",countries:["PN"]},{name:"America/Puerto_Rico",utcOffset:-240,offsetStr:"-04:00",countries:["PR"]},{name:"Asia/Gaza",utcOffset:120,offsetStr:"+02:00",countries:["PS"]},{name:"Asia/Hebron",utcOffset:120,offsetStr:"+02:00",countries:["PS"]},{name:"Europe/Lisbon",utcOffset:0,offsetStr:"+00:00",countries:["PT"]},{name:"Atlantic/Madeira",utcOffset:0,offsetStr:"+00:00",countries:["PT"]},{name:"Atlantic/Azores",utcOffset:-60,offsetStr:"-01:00",countries:["PT"]},{name:"Pacific/Palau",utcOffset:540,offsetStr:"+09:00",countries:["PW"]},{name:"America/Asuncion",utcOffset:-180,offsetStr:"-03:00",countries:["PY"]},{name:"Asia/Qatar",utcOffset:180,offsetStr:"+03:00",countries:["QA","BH"]},{name:"Indian/Reunion",utcOffset:240,offsetStr:"+04:00",countries:["RE","TF"]},{name:"Europe/Bucharest",utcOffset:120,offsetStr:"+02:00",countries:["RO"]},{name:"Europe/Belgrade",utcOffset:60,offsetStr:"+01:00",countries:["RS","BA","HR","ME","MK","SI"]},{name:"Europe/Kaliningrad",utcOffset:120,offsetStr:"+02:00",countries:["RU"]},{name:"Europe/Moscow",utcOffset:180,offsetStr:"+03:00",countries:["RU"]},{name:"Europe/Simferopol",utcOffset:180,offsetStr:"+03:00",countries:["RU"]},{name:"Europe/Volgograd",utcOffset:180,offsetStr:"+03:00",countries:["RU"]},{name:"Europe/Samara",utcOffset:240,offsetStr:"+04:00",countries:["RU"]},{name:"Asia/Yekaterinburg",utcOffset:300,offsetStr:"+05:00",countries:["RU"]},{name:"Asia/Omsk",utcOffset:360,offsetStr:"+06:00",countries:["RU"]},{name:"Asia/Novosibirsk",utcOffset:360,offsetStr:"+06:00",countries:["RU"]},{name:"Asia/Novokuznetsk",utcOffset:420,offsetStr:"+07:00",countries:["RU"]},{name:"Asia/Krasnoyarsk",utcOffset:420,offsetStr:"+07:00",countries:["RU"]},{name:"Asia/Irkutsk",utcOffset:480,offsetStr:"+08:00",countries:["RU"]},{name:"Asia/Chita",utcOffset:480,offsetStr:"+08:00",countries:["RU"]},{name:"Asia/Yakutsk",utcOffset:540,offsetStr:"+09:00",countries:["RU"]},{name:"Asia/Khandyga",utcOffset:540,offsetStr:"+09:00",countries:["RU"]},{name:"Asia/Vladivostok",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},{name:"Asia/Sakhalin",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},{name:"Asia/Ust-Nera",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},{name:"Asia/Magadan",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},{name:"Asia/Srednekolymsk",utcOffset:660,offsetStr:"+11:00",countries:["RU"]},{name:"Asia/Kamchatka",utcOffset:720,offsetStr:"+12:00",countries:["RU"]},{name:"Asia/Anadyr",utcOffset:720,offsetStr:"+12:00",countries:["RU"]},{name:"Asia/Riyadh",utcOffset:180,offsetStr:"+03:00",countries:["SA","KW","YE"]},{name:"Pacific/Guadalcanal",utcOffset:660,offsetStr:"+11:00",countries:["SB"]},{name:"Indian/Mahe",utcOffset:240,offsetStr:"+04:00",countries:["SC"]},{name:"Africa/Khartoum",utcOffset:180,offsetStr:"+03:00",countries:["SD","SS"]},{name:"Europe/Stockholm",utcOffset:60,offsetStr:"+01:00",countries:["SE"]},{name:"Asia/Singapore",utcOffset:480,offsetStr:"+08:00",countries:["SG"]},{name:"America/Paramaribo",utcOffset:-180,offsetStr:"-03:00",countries:["SR"]},{name:"America/El_Salvador",utcOffset:-360,offsetStr:"-06:00",countries:["SV"]},{name:"Asia/Damascus",utcOffset:120,offsetStr:"+02:00",countries:["SY"]},{name:"America/Grand_Turk",utcOffset:-240,offsetStr:"-04:00",countries:["TC"]},{name:"Africa/Ndjamena",utcOffset:60,offsetStr:"+01:00",countries:["TD"]},{name:"Indian/Kerguelen",utcOffset:300,offsetStr:"+05:00",countries:["TF"]},{name:"Asia/Bangkok",utcOffset:420,offsetStr:"+07:00",countries:["TH","KH","LA","VN"]},{name:"Asia/Dushanbe",utcOffset:300,offsetStr:"+05:00",countries:["TJ"]},{name:"Pacific/Fakaofo",utcOffset:780,offsetStr:"+13:00",countries:["TK"]},{name:"Asia/Dili",utcOffset:540,offsetStr:"+09:00",countries:["TL"]},{name:"Asia/Ashgabat",utcOffset:300,offsetStr:"+05:00",countries:["TM"]},{name:"Africa/Tunis",utcOffset:60,offsetStr:"+01:00",countries:["TN"]},{name:"Pacific/Tongatapu",utcOffset:780,offsetStr:"+13:00",countries:["TO"]},{name:"Europe/Istanbul",utcOffset:120,offsetStr:"+02:00",countries:["TR"]},{name:"America/Port_of_Spain",utcOffset:-240,offsetStr:"-04:00",countries:["TT","AG","AI","BL","DM","GD","GP","KN","LC","MF","MS","VC","VG","VI"]},{name:"Pacific/Funafuti",utcOffset:720,offsetStr:"+12:00",countries:["TV"]},{name:"Asia/Taipei",utcOffset:480,offsetStr:"+08:00",countries:["TW"]},{name:"Europe/Kiev",utcOffset:120,offsetStr:"+02:00",countries:["UA"]},{name:"Europe/Uzhgorod",utcOffset:120,offsetStr:"+02:00",countries:["UA"]},{name:"Europe/Zaporozhye",utcOffset:120,offsetStr:"+02:00",countries:["UA"]},{name:"Pacific/Wake",utcOffset:720,offsetStr:"+12:00",countries:["UM"]},{name:"America/New_York",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Detroit",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Kentucky/Louisville",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Kentucky/Monticello",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Indianapolis",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Vincennes",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Winamac",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Marengo",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Petersburg",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Vevay",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Chicago",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/Indiana/Tell_City",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/Indiana/Knox",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/Menominee",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/North_Dakota/Center",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/North_Dakota/New_Salem",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/North_Dakota/Beulah",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/Denver",utcOffset:-420,offsetStr:"-07:00",countries:["US"]},{name:"America/Boise",utcOffset:-420,offsetStr:"-07:00",countries:["US"]},{name:"America/Phoenix",utcOffset:-420,offsetStr:"-07:00",countries:["US"]},{name:"America/Los_Angeles",utcOffset:-480,offsetStr:"-08:00",countries:["US"]},{name:"America/Metlakatla",utcOffset:-480,offsetStr:"-08:00",countries:["US"]},{name:"America/Anchorage",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},{name:"America/Juneau",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},{name:"America/Sitka",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},{name:"America/Yakutat",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},{name:"America/Nome",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},{name:"America/Adak",utcOffset:-600,offsetStr:"-10:00",countries:["US"]},{name:"Pacific/Honolulu",utcOffset:-600,offsetStr:"-10:00",countries:["US","UM"]},{name:"America/Montevideo",utcOffset:-180,offsetStr:"-03:00",countries:["UY"]},{name:"Asia/Samarkand",utcOffset:300,offsetStr:"+05:00",countries:["UZ"]},{name:"Asia/Tashkent",utcOffset:300,offsetStr:"+05:00",countries:["UZ"]},{name:"America/Caracas",utcOffset:-270,offsetStr:"-04:30",countries:["VE"]},{name:"Asia/Ho_Chi_Minh",utcOffset:420,offsetStr:"+07:00",countries:["VN"]},{name:"Pacific/Efate",utcOffset:660,offsetStr:"+11:00",countries:["VU"]},{name:"Pacific/Wallis",utcOffset:720,offsetStr:"+12:00",countries:["WF"]},{name:"Pacific/Apia",utcOffset:840,offsetStr:"+14:00",countries:["WS"]},{name:"Africa/Johannesburg",utcOffset:120,offsetStr:"+02:00",countries:["ZA","LS","SZ"]}]}],templateUrl:"app/core/directives/ms-timezone/ms-timezone.html"}})}(),function(){"use strict";angular.module("app.core").controller("MsWidgetEngineCounterController",function(){var a=this;a.filter=[],a.filtered=!1,a.fontSize=20,a.getCount=function(e){var n=0;if(e){a.fontSize=e.attrs[2]&&e.attrs[2].value?parseInt(e.attrs[2].value)-parseInt(e.attrs[2].value)%2:20,e.attrs[1].value&&e.attrs[1].value.length?(a.filtered=!0,a.filter=_.intersection(e.voiceQueuesSelected,e.attrs[1].value)):(a.filtered=!1,a.filter=e.voiceQueuesSelected);for(var t=0;t<e.voiceQueues.rows.length;t+=1)_.includes(a.filter,e.voiceQueues.rows[t].id)&&(n+=e.voiceQueues.rows[t][e.attrs[0].value]?parseInt(e.voiceQueues.rows[t][e.attrs[0].value]):0)}return n}})}(),function(){"use strict";function e(o,e){var r=this;r.filter=[],r.filtered=!1,r.properties=[],r.multiBarChart={labels:["QUEUE_NAME"],series:["TOTAL"],data:[[50]],options:{responsive:!0,legend:{display:!0,fontColor:"#2196f3"},scales:{xAxes:[{gridLines:{display:!0},ticks:{fontColor:"#2196f3",stepSize:1,beginAtZero:!0}}],yAxes:[{gridLines:{display:!1},ticks:{fontColor:"#2196f3"}}]}}},r.getMultiBarChart=function(e){e&&(e.attrs&&function(e){r.properties=_.map(_.filter(e.attrs,function(e){return e.name&&0<=e.name.indexOf("attrSerie")&&e.value&&"null"!==e.value}),"value"),e.attrs[3].value&&e.attrs[3].value.length?(r.filtered=!0,r.filter=_.intersection(e.voiceQueuesSelected,e.attrs[3].value)):(r.filtered=!1,r.filter=e.voiceQueuesSelected);if(r.multiBarChart.series.length>r.properties.length){var n=r.multiBarChart.series.length-r.properties.length;r.multiBarChart.series.splice(0,n),r.multiBarChart.data.splice(0,n)}for(var t=0;t<r.properties.length;t+=1){if(r.multiBarChart.series[t]=o.instant("TOOLS."+r.properties[t].toUpperCase()),_.isNil(r.multiBarChart.data[t])&&(r.multiBarChart.data[t]=[]),r.multiBarChart.labels.length>r.filter.length){var a=r.multiBarChart.labels.length-r.filter.length;r.multiBarChart.labels.splice(0,a),r.multiBarChart.data[t].splice(0,a)}for(var i=0,s=0;i<e.voiceQueues.rows.length;i+=1)_.includes(r.filter,e.voiceQueues.rows[i].id)&&(r.multiBarChart.labels[s]=e.voiceQueues.rows[i].name,r.multiBarChart.data[t][s]=e.voiceQueues.rows[i][r.properties[t]]?parseInt(e.voiceQueues.rows[i][r.properties[t]]):0,s+=1)}}(e),e.foreground&&function(e){r.multiBarChart.options.legend.fontColor=e.foreground;for(var n=0;n<r.multiBarChart.options.scales.xAxes.length;n+=1)r.multiBarChart.options.scales.xAxes[n].ticks.fontColor=e.foreground;for(var t=0;t<r.multiBarChart.options.scales.yAxes.length;t+=1)r.multiBarChart.options.scales.yAxes[t].ticks.fontColor=e.foreground}(e))}}e.$inject=["$translate","socket"],angular.module("app.core").controller("MsWidgetEngineMultibarChartController",e)}(),function(){"use strict";function e(s){var o=this;o.filter=[],o.filtered=!1,o.properties=[],o.pieChart={labels:["ANSWERED"],data:[30],options:{responsive:!0,legend:{display:!0}}},o.getPieChart=function(e){e&&(e.attrs&&function(e){o.properties=_.map(_.filter(e.attrs,function(e){return e.name&&0<=e.name.indexOf("attrSerie")&&e.value&&"null"!==e.value}),"value"),e.attrs[3].value&&e.attrs[3].value.length?(o.filtered=!0,o.filter=_.intersection(e.voiceQueuesSelected,e.attrs[3].value)):(o.filtered=!1,o.filter=e.voiceQueuesSelected);if(o.pieChart.labels.length>o.properties.length){var n=o.pieChart.labels.length-o.properties.length;o.pieChart.labels.splice(0,n),o.pieChart.data.splice(0,n)}for(var t=0,a=0;t<o.properties.length;t+=1){o.pieChart.labels[t]=s.instant("TOOLS."+o.properties[t].toUpperCase());for(var i=0;i<e.voiceQueues.rows.length;i+=1)_.includes(o.filter,e.voiceQueues.rows[i].id)&&(a+=e.voiceQueues.rows[i][o.properties[t]]?parseInt(e.voiceQueues.rows[i][o.properties[t]]):0);o.pieChart.data[t]=a,a=0}}(e),e.foreground&&(n=e,o.pieChart.options.legend.fontColor=n.foreground));var n}}e.$inject=["$translate"],angular.module("app.core").controller("MsWidgetEnginePieChartController",e)}(),function(){"use strict";function e(e,t,a,i){var s=this;function n(e){s.results=e||{count:0,rows:[]}}function o(){s.query.offset=(s.query.page-1)*s.query.limit,s.promise=i[s.reportRoute].run(s.query,n).$promise}s.countDown=0,s.refresh=0,s.title="",s.columns=[],s.results={rows:[],count:0},s.query={limit:10,page:1,startDate:moment().startOf("day").format("YYYY-MM-DD HH:mm:ss"),endDate:moment().endOf("day").format("YYYY-MM-DD HH:mm:ss"),output:"web"},s.onInit=function e(n){n&&n.attrs&&(n.attrs[0]&&n.attrs[0].value&&(s.query.id=n.attrs[0].value,i.analyticFieldReport.get({fields:"field,alias",nolimit:!0,DefaultReportId:"default"===n.attrs[0].type?n.attrs[0].value:void 0,CustomReportId:"custom"===n.attrs[0].type?n.attrs[0].value:void 0}).$promise.then(function(e){switch(e&&e.rows&&(s.columns=e.rows),n.attrs[0].type){case"default":s.reportRoute="analyticDefaultReport";break;case"custom":s.reportRoute="analyticCustomReport"}return i[s.reportRoute].get({id:n.attrs[0].value,fields:"id,name"}).$promise}).then(function(e){e&&e.name&&(s.title=e.name),o()}).catch(function(e){console.log(e)})),n.attrs[1]&&n.attrs[1].value&&(s.refresh=parseInt(n.attrs[1].value),!_.isNaN(s.refresh)&&0<s.refresh?(s.countDown=parseInt(n.attrs[1].value),s.interval=a(function(){s.countDown-=1},1e3,0),s.timeout=t(function(){s.interval&&a.cancel(s.interval),e(n)},1e3*s.refresh)):(s.interval&&a.cancel(s.interval),s.timeout&&t.cancel(s.timeout))))},s.getResults=o,s.valueReplacer=function(e,n){moment(n,"YYYY-MM-DDTHH:mm:ssZ",!0).isValid()&&(n=moment(n,"").format("YYYY-MM-DD HH:mm:ss"));return n},e.$on("$destroy",function(){s.interval&&a.cancel(s.interval),s.timeout&&t.cancel(s.timeout)})}e.$inject=["$scope","$timeout","$interval","api"],angular.module("app.core").controller("MsWidgetEngineWebReportController",e)}(),function(){"use strict";function e(e,n){this.getTrustedURL=function(e){return n.trustAsResourceUrl(e)}}function n(e){return{restrict:"E",scope:{config:"=?",onEdit:"&?",onDelete:"&?"},require:"msWidgetEngine",controller:"MsWidgetEngineController",controllerAs:"vm",bindToController:!0,templateUrl:"app/core/directives/ms-widget-engine/ms-widget-engine.html"}}e.$inject=["$mdDialog","$sce"],n.$inject=["$document"],angular.module("app.core").controller("MsWidgetEngineController",e).directive("msWidgetEngine",n)}(),function(){"use strict";function e(e,n){var t=this;t.flipped=!1,t.flip=function(){if(!angular.isDefined(e.flippable)||!0!==e.flippable)return;t.flipped=!t.flipped,n.toggleClass("flipped",t.flipped)}}e.$inject=["$scope","$element"],angular.module("app.core").controller("MsWidgetController",e).directive("msWidget",function(){return{restrict:"E",scope:{flippable:"=?"},controller:"MsWidgetController",transclude:!0,compile:function(e){return e.addClass("ms-widget"),function(e,n,t,a,i){i(function(e){n.empty(),n.append(e)})}}}}).directive("msWidgetFront",function(){return{restrict:"E",require:"^msWidget",transclude:!0,compile:function(e){return e.addClass("ms-widget-front"),function(e,n,t,a,i){i(function(e){n.empty(),n.append(e)}),e.flipWidget=a.flip}}}}).directive("msWidgetBack",function(){return{restrict:"E",require:"^msWidget",transclude:!0,compile:function(e){return e.addClass("ms-widget-back"),function(e,n,t,a,i){i(function(e){n.empty(),n.append(e)}),e.flipWidget=a.flip}}}})}(),function(){"use strict";function e(s,n,o,r){return{restrict:"A",require:"?ngModel",link:function(t,a,e,i){o.isAdmin()||o.isTelephone()||(""!==e.privacy||o.getCurrentUser().privacyEnabled)&&!1!==t.$eval(e.privacy)&&(i?(i.$formatters.push(function(e){if(!e)return e;var n=r.mask(e);return i.$setViewValue(n),i.$render(),i.$viewValue}),i.$parsers.push(function(){return i.$modelValue}),a[0].disabled=!0):n(function(){s(a.contents())(t);var e=a.text();if(e){var n=r.mask(e);a.text(n)}}))}}}e.$inject=["$compile","$timeout","Auth","privacyManager"],angular.module("app.core").directive("privacy",e)}(),function(){"use strict";function e(o,r,i,l,d){var e={get:function(s,a){return o(function(n,t){0===a.offset&&(s=void 0);var e=_.merge({},a);i.cmContact.getJourney(e).$promise.then(function(e){var a,n=_(e.rows).uniqBy(function(e){return e.channel}).map("channel").value();return(a=n,o(function(e,n){var t=a.map(function(n){if("voice"!==n){var e="get"+_.startCase(n)+("chat"===n?"Websites":"Accounts");return i.user[e]({id:l.getCurrentUser().id,attributes:["id","name"],nolimit:!0}).$promise.then(function(e){c[n]=e.rows})}});return o.all(t).then(function(){e()}).catch(function(e){n(e)})})).then(function(){return e.rows.forEach(function(e){var n;e.canOpen=function(e){switch(e.channel){case"chat":return!!c.chat&&_.some(c.chat,["id",e.ChatWebsiteId]);case"fax":return!!c.fax&&_.some(c.fax,["id",e.FaxAccountId]);case"mail":return!!c.mail&&_.some(c.mail,["id",e.MailAccountId]);case"openchannel":return!!c.openchannel&&_.some(c.openchannel,["id",e.OpenchannelAccountId]);case"sms":return!!c.sms&&_.some(c.sms,["id",e.SmsAccountId]);case"voice":return!0;case"whatsapp":return!!c.whatsapp&&_.some(c.whatsapp,["id",e.WhatsappAccountId]);default:return!1}}(e),e.dispositionsValues=(n=e).disposition?"("+_.compact([n.disposition,n.secondDisposition,n.thirdDisposition]).join(" - ")+")":"("+r.instant("DASHBOARDS.NO_DISPOSITION_SET")+")",e.style=function(e){switch(e.channel){case"chat":return{color:"green-A700",icon:"icon-hangouts"};case"fax":return{color:"blue-grey-A200",icon:"icon-deskphone"};case"mail":return{color:"teal",icon:"icon-email"};case"openchannel":return{color:"amber-A200",icon:"icon-google-earth"};case"sms":return{color:"orange",icon:"icon-message-text"};case"voice":return{color:"blue-A700",icon:"icon-phone"};case"whatsapp":return{color:"lime-A700",icon:"icon-whatsapp"}}}(e)}),a=s,i=e,o(function(e,n){try{var t={journey:a?_.union(a,i.rows):i.rows};t.loadMore=0<i.count-t.journey.length,e(t)}catch(e){n(e)}});var a,i})}).then(function(e){n(e)}).catch(function(e){d.error({title:r.instant("CONTACTMANAGER.CUSTOMER_JOURNEY"),msg:r.instant("CONTACTMANAGER.NOTIFICATIONS.NO_DATA_ERROR")}),t(e)})})},getQuery:function(){return{range:{from:moment().subtract(3,"M").startOf("month").format("YYYY-MM-DD HH:mm:ss"),to:moment().endOf("month").format("YYYY-MM-DD HH:mm:ss")},limit:10,offset:0}},getQuickFilters:function(){return[{name:"Channel",key:"channel",type:"select",label:"INTEGRATIONS.CHANNEL",customOptions:[{value:void 0,translate:"DASHBOARDS.ALL"},{value:"voice",translate:"DASHBOARDS.VOICE"},{value:"chat",translate:"DASHBOARDS.CHAT"},{value:"mail",translate:"DASHBOARDS.MAIL"},{value:"sms",translate:"DASHBOARDS.SMS"},{value:"fax",translate:"DASHBOARDS.FAX"},{value:"openchannel",translate:"DASHBOARDS.OPENCHANNEL"},{value:"whatsapp",translate:"DASHBOARDS.WHATSAPP"}]},{name:"Start Date",key:"range",type:"date",label:"DASHBOARDS.SELECT_DATE",useFromToKeys:!0}]}},c={};return e}e.$inject=["$q","$translate","api","Auth","toasty"],angular.module("app.core").factory("customerJourneyManager",e)}(),function(){"use strict";function e(t,a,n,i,s){var o={},r={},l={},d={};function c(){r=i.getCurrentUser();var e=n.localStorage.getItem("motion2.home:"+r.id);if(l=e?JSON.parse(e).currentSidebarTab:"dashboard",d=n.localStorage.getItem("motion2.home."+l+":"+r.id)){var a=JSON.parse(d);a.drafts?r.privacyEnabled&&Object.keys(a.drafts).forEach(function(e){var n=a.drafts[e].title,t=n.split(/-(.+)/)[1].trim();a.drafts[e].title=n.replace(t,s.mask(t))}):a.drafts={},d=a}else d={drafts:{}};return d.drafts}function m(){_.isEmpty(o.drafts)?delete d.drafts:d.drafts=o.drafts,n.localStorage.setItem("motion2.home."+l+":"+r.id,JSON.stringify(d))}return o.init=function(){o.drafts=c()},o.getByInteraction=function(n){return o.drafts=c(),_.find(_.values(o.drafts),function(e){return e.interaction&&e.interaction.id===n})},o.removeByInteraction=function(n){o.drafts=c();var e=_.find(_.values(o.drafts),function(e){return e.interaction&&e.interaction.id===n});e&&(delete o.drafts[e.id],m())},o.add=function(e){o.drafts=c();var n=a.instant("DASHBOARDS.UNTITLED");e.contact?n=e.contact.firstName||e.contact.email:_.isEmpty(e.message.subject)||(n=e.message.subject);var t={type:"draft",title:e.account.key+" - "+n,channel:e.channel,content:e.message,account:e.account,interaction:e.interaction,id:_.random(1e10),openedAt:new Date,saved:!1};o.drafts[t.id]=t,m()},o.update=function(e){o.drafts=c();var n=o.drafts[e.id];n&&(n.content=e.message,o.drafts[e.id]=n,m())},o.open=function(e){o.drafts=c();var n=o.drafts[e];n&&t.$broadcast("open"+_.startCase(l)+"Draft",n)},o.remove=function(e){o.drafts=c(),o.drafts[e]&&(delete o.drafts[e],m())},o}e.$inject=["$rootScope","$translate","$window","Auth","privacyManager"],angular.module("app.core").factory("draftManager",e)}(),function(){"use strict";function e(i){function s(e,n){var t=i.localStorage.getItem(e),a=t?JSON.parse(t):{};return n?a[n]:a}function o(e,n){return i.localStorage.setItem(e,JSON.stringify(n))}return{get:s,set:o,update:function(e,n,t){var a=s(e);t?a[t]=n:a=n;return o(e,a)}}}e.$inject=["$window"],angular.module("app.core").factory("localStorageManager",e)}(),function(){"use strict";function e(i){function s(e,n){var t=i.get(),a=0;if(t)switch(n){case"email":a=t.privacyPolicyEmail;break;case"number":a=t.privacyPolicyNumber;break;default:a=t.privacyPolicyName}return _.isNil(a)?e:0===a||a>e.length?e.replace(/./g,"*"):e.substring(0,e.length-a).padEnd(e.length,"*")}function o(e){return _.startsWith(e,"<")&&_.endsWith(e,">")&&(e=e.substring(1,e.length-1)),/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)}function r(e){if(_.startsWith(e,"<")&&_.endsWith(e,">")){var n=!0;e=e.substring(1,e.length-1)}var t=e.split("@")[0],a=e.split("@")[1],i="";return n&&(i+="<"),i+=s(t,"email"),i+="@",i+=s(a,"email"),n&&(i+=">"),i}return{mask:function n(e){t=e,e=t.replace(/\s\s+/g," ").trim();var t;{if(o(e))return r(e);if(/^[+]?[0-9|.|\-|\s]*$/.test(e))return s(e,"number");var a=[],i=e.split(" ");return 1===i.length?s(e):(i.forEach(function(e){a.push(n(e))}),a.join(" "))}}}}e.$inject=["settingsManager"],angular.module("app.core").factory("privacyManager",e)}(),function(){"use strict";function e(e,s){return{setPlaceholder:function(a){var i;return e(function(n,e){try{if(_.isEmpty(a.resources))i=s.instant("DASHBOARDS.NONE");else if(_.isEmpty(a.param))i=a.placeholder?s.instant(a.placeholder):s.instant("DASHBOARDS.CHOOSE");else if(a.param.length===a.resources.length)i=s.instant("DASHBOARDS.ALL");else{var t=a.ngValue||"id";i=_(a.resources).filter(function(e){return _.includes(a.param,e[t])}).map("name").value().join(", ")}n(i)}catch(e){console.log("QuickFilterManager::setPlaceholder",e),n(null)}})}}}e.$inject=["$q","$translate"],angular.module("app.core").factory("quickFilterManager",e)}(),function(){"use strict";function e(t){var e={getAgentStatus:function(e){var n="unknown";n=o(e)?"pause":o(e,!0)?"*pause":function(e){if("idle"!==e.voiceStatus&&e.voicePause)return!(e.voiceStatus="pause");return _.every([e.chatStatus,e.faxStatus,e.mailStatus,e.openchannelStatus,e.smsStatus,e.voiceStatus,e.whatsappStatus],r)}(e)?"idle":"busy";return n},setAgentStatusDisplayValue:function(e){var n=e.globalStatus;"pause"===e.globalStatus?n=e.pauseType||t.instant("VOICE.DEFAULT_PAUSE"):"*pause"===e.globalStatus&&(n="*"+(e.pauseType||t.instant("VOICE.DEFAULT_PAUSE")));e.globalStatusDisplayValue=n},updateBusyCounter:s,updateQueue:function(e,n,t,a){var i=t.paused;!1===e.online?(t.online=!1,n.loggedInDb-=1,t.paused?(t.paused=!1,n.paused-=1):n.available-=1):t.online?!e[a+"Pause"]||t.paused||o(e,!0)?!e[a+"Pause"]&&t.paused?(t.paused=!1,t.talking||t.busy||(n.paused-=1,n.available+=1)):e[a+"Pause"]&&t.paused&&(t.talking||t.busy||(n.busy-=1,i||(n.paused+=1))):(t.paused=!0,t.talking||t.busy||(i||(n.paused+=1),0<n.available&&(n.available-=1))):(t.online=!0,n.loggedInDb+=1,n.available+=1);s(n)},updateVoiceQueue:function(e,n){e.loggedIn===e.available&&0<e.waiting&&(e.available-=e.waiting);var t=e.loggedIn-e.available-e.talking-e.waiting-n.paused;t<0?(n.paused-=Math.abs(t),n.waitingOrTalking=!0):0<t&&n.waitingOrTalking&&(n.paused+=1,delete n.waitingOrTalking);_.merge(n,_.pick(e,"inbound"===n.type?a:i)),"outbound"===n.type&&_.isNil(e.startPredictive)&&(n.startPredictive=void 0);s(n)}},a=["loggedIn","available","waiting","talking","paused"],i=["loggedIn","available","waiting","talking","pTalking","originated","message","dialActive","dialMethod","Trunk","paused","startPredictive","startProgressive","erlangCalls","erlangCallToSecond","erlangAbandonmentRate","erlangBusyFactor","dialPredictiveInterval","dialPredictiveIntervalMaxThreshold","dialPredictiveIntervalMinThreshold","predictiveIntervalAvailable","predictiveIntervalTotalCalls","predictiveIntervalAnsweredCalls","predictiveIntervalDroppedCallsTimeout","predictiveIntervalDroppedCallsCallersExit","predictiveIntervalAvgHoldtime","predictiveIntervalAvgTalktime"];function s(e){var n=_.filter(e.agents,["busy",!0]).length,t=e.loggedInDb-e.available-e.paused-e.talking-e.waiting;t<0&&(t=0),e.busy=t<n?n:t}function o(e,n){var t=[e.chatPause,e.faxPause,e.mailPause,e.openchannelPause,e.smsPause,e.voicePause,e.whatsappPause];if(!n)return _.every(t);var a=_.filter(t);return 0<a.length&&a.length<t.length}function r(e){if(_.isNil(e))return!0;return _.includes(["idle","unknown","unavailable","ringing"],e)}return e}e.$inject=["$translate"],angular.module("app.core").factory("realtimeManager",e)}(),function(){"use strict";angular.module("app.core").factory("settingsManager",function(){var n={};return{get:function(){return n},set:function(e){e&&(n=e.toJSON())}}})}(),function(){"use strict";function e(c,m){function u(e,n,t){if(_.isEmpty(n))return t;for(var a=0;a<n.length;a++){var i=n[a].key,s=_.find(e,function(e){return e[i]===n[a].value});s&&(_.some(t,["id",s.id])||(s.canSelect=!1,t.push(s)))}return t}return{getResources:function(a,i,s,o,r,l,d){return c(function(t,n){o||(o={}),d||(d="get"),a[s][d](o).$promise.then(function(e){var t=e.rows;if("admin"===i.role)return t;var n=m.getSectionId(s,l);return a.userProfileSection.get({userProfileId:i.userProfileId,sectionId:n}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?t:a.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(t,{id:e.resourceId})});return u(t,r,n)}):c.resolve().then(function(){return e=s,_.includes(["voiceContext"],e)?(o.defaultEntry=1,a[s][d](o).$promise.then(function(e){return e.rows})):[];var e}).then(function(e){return u(t,r,e)})})}).then(function(e){var n={rows:_.orderBy(e,[o.sort]),count:e.length};t(n)}).catch(function(e){n(e)})})}}}e.$inject=["$q","msNavigationService"],angular.module("app.core").factory("userProfileManager",e)}(),function(){"use strict";angular.module("app.core").filter("altDate",function(){return function(e){var n=Date.now()-new Date(e);return n<36e5?moment(e).fromNow():n<864e5?moment(e).format("HH:mm"):n<6048e5?moment(e).format("dddd"):moment(e).calendar()}})}(),function(){"use strict";function e(n){return function(e){return n.trustAsHtml(e)}}e.$inject=["$sce"],angular.module("app.core").filter("toTrusted",e).filter("htmlToPlaintext",function(){return function(e){return String(e).replace(/<[^>]+>/gm,"")}}).filter("nospace",function(){return function(e){return e?e.replace(/ /g,""):""}}).filter("humanizeDoc",function(){return function(e){if(e)return"directive"===e.type?e.name.replace(/([A-Z])/g,function(e){return"-"+e.toLowerCase()}):e.label||e.name}})}(),function(){"use strict";angular.module("app.core").filter("capitalize",function(){return function(e){return e?_.capitalize(e):""}})}(),function(){"use strict";angular.module("app.core").filter("filterByIds",function(){return function(e,n){if(0===e.length||!n)return e;if(0===n.length)return[];for(var t=[],a=0;a<e.length;a++){for(var i=e[a],s=!1,o=0;o<n.length;o++){var r=n[o];if(i.id===r){s=!0;break}}s&&t.push(i)}return t}})}(),function(){"use strict";angular.module("app.core").filter("filterByPropIds",function(){return function(e,n,t){if(0===e.length||!t||0===t.length)return e;for(var a=[],i=0;i<e.length;i++){for(var s=e[i],o=!1,r=0;r<t.length;r++){var l=t[r];if(-1<s[n].indexOf(l)){o=!0;break}}o&&a.push(s)}return a}})}(),function(){"use strict";angular.module("app.core").filter("getOptionByValue",function(){return function(e,n,t){if(void 0===e)return"";if(!n)return"";t||(t="option");var a=_.find(n,["value",e]);return a?a[t]:""}})}(),function(){"use strict";angular.module("app.core").filter("orderByDate",function(){return function(e){var n=[];return angular.forEach(e,function(e){n.push(e)}),n.sort(function(e,n){return e.hasOwnProperty("openedAt")&&n.hasOwnProperty("openedAt")?e.openedAt>n.openedAt?1:-1:1}),n}})}(),function(){"use strict";angular.module("app.core").filter("secToTime",function(){return function(e){e&&(e=e.toString().replace(",",""));var n=Math.floor(e/86400),t=e%86400,a=new Date(1e3*t).toISOString().substring(11,19);return a.replace(/^(\d+)/,function(e){return(""+(Number(e)+24*n)).padStart(2,"0")})}})}(),function(){"use strict";angular.module("app.core").filter("snakecase",function(){return function(e){return e?_.snakeCase(e):""}})}(),function(){"use strict";angular.module("app.core").filter("startcase",function(){return function(e){return e?_.startCase(e):""}})}(),function(){"use strict";angular.module("app.core").filter("filterByTags",function(){return function(e,t){if(0===e.length||0===t.length)return e;var a=[];return e.forEach(function(e){var n=t.every(function(n){var t=!1;return e.tags.forEach(function(e){e.name!==n.name||(t=!0)}),t});n&&a.push(e)}),a}}).filter("filterSingleByTags",function(){return function(e,n){if(0!==e.length&&0!==n.length){if(e.length<n.length)return[];var t=[],a=n.every(function(n){var t=!1;return e.forEach(function(e){e.name!==n.name||(t=!0)}),t});return a&&t.push(e),t}}})}(),function(){"use strict";angular.module("app.core").filter("toInteger",function(){return function(e){if(e&&"string"==typeof e)return parseInt(e)}})}(),function(){"use strict";function m(e,n,t,a){this.id=Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15),this.title=e,this.body=n,this.accept=t,this.reject=a,this.close=i}function u(){return/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor)}function i(){var t=this;navigator.serviceWorker.ready.then(function(e){e.getNotifications().then(function(e){var n=_.find(e,function(e){return e.data.id===t.id});n&&n.close()})})}angular.module("app.dashboards").provider("motNotification",function(){return{$get:[function(){var d,t,c=[];"serviceWorker"in navigator&&u()?navigator.serviceWorker.register("notification.js").then(function(e){(d=e).update(),d.installing?t=d.installing:d.waiting?t=d.waiting:d.active&&(t=d.active)}).catch(function(e){console.error("Service worker registration failed",e)}):console.error("Service Worker is not supported");return navigator.serviceWorker.addEventListener("message",function(e){if(e.source===t){var n=_.find(c,{id:e.data.id});if(n)switch(e.data.action){case"accept":n.accept&&n.accept();break;case"reject":n.reject&&n.reject()}}}),{create:function(e,i,s,o,r,l){return new Promise(function(t,n){var a;u()&&(window.document.hidden||window.document.mozHidden||window.document.webkitHidden)?(a=new m(e||"MyTitle",i||"MyBody",o,r),c.push(a),a?window.Notification.requestPermission().then(function(e){if("granted"===e)return d.showNotification(a.title,{body:a.body,requireInteraction:!0,icon:s||"assets/images/business/queueCampaigns.jpg",data:{id:a.id},actions:[{action:"accept",title:"Accept"},{action:"reject",title:"Reject"}]})}).then(function(e){if(l){for(var n=0;n<c.length;n++)c[n].close();t()}else t(a)}).catch(function(e){n(e)}):n(new Error("Notification creating error"))):t()})}}}]}})}(),function(){"use strict";function e(l,d,c){return{resolve:function(e,n){var t=e.split("@"),a=t[0],i=t[1],s=n||{};if(!a||!i)return d.error("apiResolver.resolve requires correct action parameter (ResourceName@methodName)"),!1;var o=l.defer(),r=function(e){for(var n=e.split("."),t=c,a=0;a<n.length;a++){if(angular.isUndefined(t[n[a]])){d.error('Resource part "'+n[a]+'" is not defined!'),t=!1;break}t=t[n[a]]}return t||!1}(a);r?r[i](s,function(e){o.resolve(e)},function(e){o.reject(e)}):(d.error('Resource "'+a+'" is not defined in the api service!'),o.reject('Resource "'+a+'" is not defined in the api service!'));return o.promise}}}e.$inject=["$q","$log","api"],angular.module("app.core").factory("apiResolver",e)}(),function(){"use strict";function e(e){return{showLoadingIndicator:function(){e.loadingProgress=!0},hideLoadingIndicator:function(){e.loadingProgress=!1}}}e.$inject=["$rootScope"],angular.module("app.core").factory("LoadingIndicatorService",e)}(),function(){"use strict";angular.module("app.core").provider("msApi",function(){var t=angular.injector(["ng"]).get("$log"),a="",v=[];function n(e){a=e}function i(){return a}function s(e,n){angular.isString(e)?angular.isArray(n)?v[e]={url:a+(n[0]||""),paramDefaults:n[1]||[],actions:n[2]||[],options:n[3]||{}}:t.error('"resource" must be an array and it must follow $resource definition'):t.error('"path" must be a string (eg. `dashboard.project`)')}this.setBaseUrl=n,this.getBaseUrl=i,this.getApiObject=function(){return v},this.register=s,this.$get=["$log","$q","$resource","$rootScope",function(m,u,p,g){var e={setBaseUrl:n,getBaseUrl:i,register:s,resolve:function(e,n){g.$broadcast("msApi::resolveStart");var t=e.split("@"),a=t[0],i=t[1],s=n||{};if(!a||!i)return m.error("msApi.resolve requires correct action parameter (resourceName@methodName)"),!1;var o=u.defer(),r=v[a];if(r){var l=p(r.url,r.paramDefaults,r.actions,r.options);l[i](s,function(e){o.resolve(e),g.$broadcast("msApi::resolveSuccess")},function(e){o.reject(e),g.$broadcast("msApi::resolveError")})}else m.error('Resource "'+a+'" is not defined in the api service!'),o.reject('Resource "'+a+'" is not defined in the api service!');return o.promise},request:function(e,n,t,a){g.$broadcast("msApi::requestStart");var i=e.split("@"),s=i[0],o=i[1],r=n||{};if(!s||!o)return m.error("msApi.resolve requires correct action parameter (resourceName@methodName)"),!1;var l=u.defer(),d=v[s];if(d){var c=p(d.url,d.paramDefaults,d.actions,d.options);c[o](r,function(e){g.$broadcast("msApi::requestSuccess"),l.resolve(e),angular.isDefined(t)&&angular.isFunction(t)&&t(e)},function(e){g.$broadcast("msApi::requestError"),l.reject(e),angular.isDefined(a)&&angular.isFunction(a)&&a(e)})}else m.error('Resource "'+s+'" is not defined in the api service!'),l.reject('Resource "'+s+'" is not defined in the api service!');return l.promise}};return e}]})}(),function(){"use strict";function e(l){var e=new MobileDetect(l.navigator.userAgent),d=null;return{exists:function(e,n){return-1<n.indexOf(e)},detectBrowser:function(){if(d)return d;var e=[{string:l.navigator.userAgent,subString:"Edge",versionSearch:"Edge",identity:"Edge"},{string:l.navigator.userAgent,subString:"Chrome",identity:"Chrome"},{string:l.navigator.userAgent,subString:"OmniWeb",versionSearch:"OmniWeb/",identity:"OmniWeb"},{string:l.navigator.vendor,subString:"Apple",versionSearch:"Version",identity:"Safari"},{prop:l.opera,identity:"Opera"},{string:l.navigator.vendor,subString:"iCab",identity:"iCab"},{string:l.navigator.vendor,subString:"KDE",identity:"Konqueror"},{string:l.navigator.userAgent,subString:"Firefox",identity:"Firefox"},{string:l.navigator.vendor,subString:"Camino",identity:"Camino"},{string:l.navigator.userAgent,subString:"Netscape",identity:"Netscape"},{string:l.navigator.userAgent,subString:"MSIE",identity:"Explorer",versionSearch:"MSIE"},{string:l.navigator.userAgent,subString:"Trident/7",identity:"Explorer",versionSearch:"rv"},{string:l.navigator.userAgent,subString:"Gecko",identity:"Mozilla",versionSearch:"rv"},{string:l.navigator.userAgent,subString:"Mozilla",identity:"Netscape",versionSearch:"Mozilla"}],n=[{string:l.navigator.platform,subString:"Win",identity:"Windows"},{string:l.navigator.platform,subString:"Mac",identity:"Mac"},{string:l.navigator.platform,subString:"Linux",identity:"Linux"},{string:l.navigator.platform,subString:"iPhone",identity:"iPhone"},{string:l.navigator.platform,subString:"iPod",identity:"iPod"},{string:l.navigator.platform,subString:"iPad",identity:"iPad"},{string:l.navigator.platform,subString:"Android",identity:"Android"}],i="";function t(e){for(var n=0;n<e.length;n++){var t=e[n].string,a=e[n].prop;if(i=e[n].versionSearch||e[n].identity,t){if(-1!==t.indexOf(e[n].subString))return e[n].identity}else if(a)return e[n].identity}}function a(e){var n=e.indexOf(i);if(-1!==n)return parseInt(e.substring(n+i.length+1))}var s=t(e)||"unknown-browser",o=a(l.navigator.userAgent)||a(l.navigator.appVersion)||"unknown-version",r=t(n)||"unknown-os";return s=s.toLowerCase(),o=s+"-"+o,r=r.toLowerCase(),d={browser:s,version:o,os:r}},guidGenerator:function(){var e=function(){return(65536*(1+Math.random())||0).toString(16).substring(1)};return e()+e()+e()+e()+e()+e()},isMobile:function(){return e.mobile()},toggleInArray:function(e,n){-1===n.indexOf(e)?n.push(e):n.splice(n.indexOf(e),1)},firstLastDayMonth:function(){return{$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()}}}}e.$inject=["$window"],angular.module("app.core").factory("msUtils",e)}(),function(){"use strict";function e(e,n){var t=this;t.themes=n.themes,t.layoutModes=[{label:"Boxed",value:"boxed"},{label:"Wide",value:"wide"}],t.layoutStyles=[{label:"Vertical Navigation",value:"verticalNavigation",figure:"/assets/images/theme-options/vertical-nav.jpg"},{label:"Vertical Navigation with Fullwidth Toolbar",value:"verticalNavigationFullwidthToolbar",figure:"/assets/images/theme-options/vertical-nav-with-full-toolbar.jpg"},{label:"Vertical Navigation with Fullwidth Toolbar 2",value:"verticalNavigationFullwidthToolbar2",figure:"/assets/images/theme-options/vertical-nav-with-full-toolbar-2.jpg"},{label:"Horizontal Navigation",value:"horizontalNavigation",figure:"/assets/images/theme-options/horizontal-nav.jpg"},{label:"Content with Toolbar",value:"contentWithToolbar",figure:"/assets/images/theme-options/content-with-toolbar.jpg"},{label:"Content Only",value:"contentOnly",figure:"/assets/images/theme-options/content-only.jpg"}],t.layoutMode="wide",t.layoutStyle=e.get("motion.layoutStyle")||"verticalNavigation",t.setActiveTheme=function(e){n.setActiveTheme(e)},t.getActiveTheme=function(){return n.themes.active},t.updateLayoutMode=function(){angular.element("body").toggleClass("boxed","boxed"===t.layoutMode)},t.updateLayoutStyle=function(){e.put("motion.layoutStyle",t.layoutStyle),location.reload()}}function n(n){return{restrict:"E",scope:{},controller:"MsThemeOptionsController as vm",templateUrl:"app/core/theme-options/theme-options.html",compile:function(e){return e.addClass("ms-theme-options"),function(e){e.toggleOptionsSidenav=function(){n("motion-theme-options").toggle()}}}}}e.$inject=["$cookies","motionTheming"],n.$inject=["$mdSidenav"],angular.module("app.core").controller("MsThemeOptionsController",e).directive("msThemeOptions",n)}(),function(){"use strict";function e(i,a,s){var o={};return{generate:function(){var e=angular.copy(s.getRegisteredThemes()),a=angular.copy(s.getRegisteredPalettes());angular.forEach(e,function(t){o[t.name]={},angular.forEach(t.colors,function(e,n){o[t.name][n]={name:e.name,levels:{default:{color:l(a[e.name][e.hues.default].value),contrast1:l(a[e.name][e.hues.default].contrast,1),contrast2:l(a[e.name][e.hues.default].contrast,2),contrast3:l(a[e.name][e.hues.default].contrast,3),contrast4:l(a[e.name][e.hues.default].contrast,4)},hue1:{color:l(a[e.name][e.hues["hue-1"]].value),contrast1:l(a[e.name][e.hues["hue-1"]].contrast,1),contrast2:l(a[e.name][e.hues["hue-1"]].contrast,2),contrast3:l(a[e.name][e.hues["hue-1"]].contrast,3),contrast4:l(a[e.name][e.hues["hue-1"]].contrast,4)},hue2:{color:l(a[e.name][e.hues["hue-2"]].value),contrast1:l(a[e.name][e.hues["hue-2"]].contrast,1),contrast2:l(a[e.name][e.hues["hue-2"]].contrast,2),contrast3:l(a[e.name][e.hues["hue-2"]].contrast,3),contrast4:l(a[e.name][e.hues["hue-2"]].contrast,4)},hue3:{color:l(a[e.name][e.hues["hue-3"]].value),contrast1:l(a[e.name][e.hues["hue-3"]].contrast,1),contrast2:l(a[e.name][e.hues["hue-3"]].contrast,2),contrast3:l(a[e.name][e.hues["hue-3"]].contrast,3),contrast4:l(a[e.name][e.hues["hue-3"]].contrast,4)}}}})}),function(e){var n=angular.copy(e);angular.forEach(n,function(t){angular.forEach(t,function(e,n){t[n]=e.levels,t[n].color=e.levels.default.color,t[n].contrast1=e.levels.default.contrast1,t[n].contrast2=e.levels.default.contrast2,t[n].contrast3=e.levels.default.contrast3,t[n].contrast4=e.levels.default.contrast4,delete t[n].default})}),s.setThemesList(n);var t=i.get("motion.selectedTheme");t?s.setActiveTheme(t):s.setActiveTheme("default")}(o);var r={};angular.forEach(o,function(e,n){var t,a,i,s,o;(r={})["@themeName"]=n,angular.forEach(e,function(e,a){angular.forEach(e.levels,function(e,t){angular.forEach(e,function(e,n){r["@"+a+d(t)+d(n)]=e})})}),t=r,a=new RegExp(Object.keys(t).join("|"),"gi"),i='/* Content hack because they wont fix */\n/* https://github.com/angular/material/pull/8067 */\n[md-theme="@themeName"] md-content.md-hue-1,\nmd-content.md-@themeName-theme.md-hue-1 {\n color: @backgroundHue1Contrast1;\n background-color: @backgroundHue1Color;\n}\n\n[md-theme="@themeName"] md-content.md-hue-2,\nmd-content.md-@themeName-theme.md-hue-2 {\n color: @backgroundHue2Contrast1;\n background-color: @backgroundHue2Color;\n}\n\n[md-theme="@themeName"] md-content.md-hue-3,\n md-content.md-@themeName-theme.md-hue-3 {\n color: @backgroundHue3Contrast1;\n background-color: @backgroundHue3Color;\n}\n\n/* Text Colors */\n[md-theme="@themeName"] a {\n color: @accentDefaultColor;\n}\n\n[md-theme="@themeName"] .secondary-text,\n[md-theme="@themeName"] .icon {\n color: @backgroundDefaultContrast2;\n}\n\n[md-theme="@themeName"] .hint-text,\n[md-theme="@themeName"] .disabled-text {\n color: @backgroundDefaultContrast3;\n}\n\n[md-theme="@themeName"] .fade-text,\n[md-theme="@themeName"] .divider {\n color: @backgroundDefaultContrast4;\n}\n\n/* Primary */\n[md-theme="@themeName"] .md-primary-bg {\n background-color: @primaryDefaultColor;\n color: @primaryDefaultContrast1;\n}\n\n[md-theme="@themeName"] .md-primary-bg .secondary-text,\n[md-theme="@themeName"] .md-primary-bg .icon {\n color: @primaryDefaultContrast2;\n}\n\n[md-theme="@themeName"] .md-primary-bg .hint-text,\n[md-theme="@themeName"] .md-primary-bg .disabled-text {\n color: @primaryDefaultContrast3;\n}\n\n[md-theme="@themeName"] .md-primary-bg .fade-text,\n[md-theme="@themeName"] .md-primary-bg .divider {\n color: @primaryDefaultContrast4;\n}\n\n/* Primary, Hue-1 */\n[md-theme="@themeName"] .md-primary-bg.md-hue-1 {\n background-color: @primaryHue1Color;\n color: @primaryHue1Contrast1;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-1 .secondary-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-1 .icon {\n color: @primaryHue1Contrast2;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-1 .hint-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-1 .disabled-text {\n color: @primaryHue1Contrast3;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-1 .fade-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-1 .divider {\n color: @primaryHue1Contrast4;\n}\n\n/* Primary, Hue-2 */\n[md-theme="@themeName"] .md-primary-bg.md-hue-2 {\n background-color: @primaryHue2Color;\n color: @primaryHue2Contrast1;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-2 .secondary-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-2 .icon {\n color: @primaryHue2Contrast2;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-2 .hint-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-2 .disabled-text {\n color: @primaryHue2Contrast3;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-2 .fade-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-2 .divider {\n color: @primaryHue2Contrast4;\n}\n\n/* Primary, Hue-3 */\n[md-theme="@themeName"] .md-primary-bg.md-hue-3 {\n background-color: @primaryHue3Color;\n color: @primaryHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-3 .secondary-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-3 .icon {\n color: @primaryHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-3 .hint-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-3 .disabled-text {\n color: @primaryHue3Contrast3;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-3 .fade-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-3 .divider {\n color: @primaryHue3Contrast4;\n}\n\n/* Primary foreground */\n[md-theme="@themeName"] .md-primary-fg {\n color: @primaryDefaultColor !important;\n}\n\n/* Primary foreground, Hue-1 */\n[md-theme="@themeName"] .md-primary-fg.md-hue-1 {\n color: @primaryHue1Color !important;\n}\n\n/* Primary foreground, Hue-2 */\n[md-theme="@themeName"] .md-primary-fg.md-hue-2 {\n color: @primaryHue2Color !important;\n}\n\n/* Primary foreground, Hue-3 */\n[md-theme="@themeName"] .md-primary-fg.md-hue-3 {\n color: @primaryHue3Color !important;\n}\n\n/* Accent */\n[md-theme="@themeName"] .md-accent-bg {\n background-color: @accentDefaultColor;\n color: @accentDefaultContrast1;\n}\n\n[md-theme="@themeName"] .md-accent-bg .secondary-text,\n[md-theme="@themeName"] .md-accent-bg .icon {\n color: @accentDefaultContrast2;\n}\n\n[md-theme="@themeName"] .md-accent-bg .hint-text,\n[md-theme="@themeName"] .md-accent-bg .disabled-text {\n color: @accentDefaultContrast3;\n}\n\n[md-theme="@themeName"] .md-accent-bg .fade-text,\n[md-theme="@themeName"] .md-accent-bg .divider {\n color: @accentDefaultContrast4;\n}\n\n/* Accent, Hue-1 */\n[md-theme="@themeName"] .md-accent-bg.md-hue-1 {\n background-color: @accentHue1Color;\n color: @accentHue1Contrast1;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-1 .secondary-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-1 .icon {\n color: @accentHue1Contrast2;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-1 .hint-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-1 .disabled-text {\n color: @accentHue1Contrast3;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-1 .fade-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-1 .divider {\n color: @accentHue1Contrast4;\n}\n\n/* Accent, Hue-2 */\n[md-theme="@themeName"] .md-accent-bg.md-hue-2 {\n background-color: @accentHue2Color;\n color: @accentHue2Contrast1;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-2 .secondary-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-2 .icon {\n color: @accentHue2Contrast2;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-2 .hint-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-2 .disabled-text {\n color: @accentHue2Contrast3;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-2 .fade-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-2 .divider {\n color: @accentHue2Contrast4;\n}\n\n/* Accent, Hue-3 */\n[md-theme="@themeName"] .md-accent-bg.md-hue-3 {\n background-color: @accentHue3Color;\n color: @accentHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-3 .secondary-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-3 .icon {\n color: @accentHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-3 .hint-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-3 .disabled-text {\n color: @accentHue3Contrast3;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-3 .fade-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-3 .divider {\n color: @accentHue3Contrast4;\n}\n\n/* Accent foreground */\n[md-theme="@themeName"] .md-accent-fg {\n color: @accentDefaultColor !important;\n}\n\n/* Accent foreground, Hue-1 */\n[md-theme="@themeName"] .md-accent-fg.md-hue-1 {\n color: @accentHue1Color !important;\n}\n\n/* Accent foreground, Hue-2 */\n[md-theme="@themeName"] .md-accent-fg.md-hue-2 {\n color: @accentHue2Color !important;\n}\n\n/* Accent foreground, Hue-3 */\n[md-theme="@themeName"] .md-accent-fg.md-hue-3 {\n color: @accentHue3Color !important;\n}\n\n/* Warn */\n[md-theme="@themeName"] .md-warn-bg {\n background-color: @warnDefaultColor;\n color: @warnDefaultContrast1;\n}\n\n[md-theme="@themeName"] .md-warn-bg .secondary-text,\n[md-theme="@themeName"] .md-warn-bg .icon {\n color: @warnDefaultContrast2;\n}\n\n[md-theme="@themeName"] .md-warn-bg .hint-text,\n[md-theme="@themeName"] .md-warn-bg .disabled-text {\n color: @warnDefaultContrast3;\n}\n\n[md-theme="@themeName"] .md-warn-bg .fade-text,\n[md-theme="@themeName"] .md-warn-bg .divider {\n color: @warnDefaultContrast4;\n}\n\n/* Warn, Hue-1 */\n[md-theme="@themeName"] .md-warn-bg.md-hue-1 {\n background-color: @warnHue1Color;\n color: @warnHue1Contrast1;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-1 .secondary-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-1 .icon {\n color: @warnHue1Contrast2;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-1 .hint-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-1 .disabled-text {\n color: @warnHue1Contrast3;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-1 .fade-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-1 .divider {\n color: @warnHue1Contrast4;\n}\n\n/* Warn, Hue-2 */\n[md-theme="@themeName"] .md-warn-bg.md-hue-2 {\n background-color: @warnHue2Color;\n color: @warnHue2Contrast1;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-2 .secondary-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-2 .icon {\n color: @warnHue2Contrast2;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-2 .hint-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-2 .disabled-text {\n color: @warnHue2Contrast3;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-2 .fade-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-2 .divider {\n color: @warnHue2Contrast4;\n}\n\n/* Warn, Hue-3 */\n[md-theme="@themeName"] .md-warn-bg.md-hue-3 {\n background-color: @warnHue3Color;\n color: @warnHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-3 .secondary-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-3 .icon {\n color: @warnHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-3 .hint-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-3 .disabled-text {\n color: @warnHue3Contrast3;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-3 .fade-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-3 .divider {\n color: @warnHue3Contrast4;\n}\n\n/* Warn foreground */\n[md-theme="@themeName"] .md-warn-fg {\n color: @warnDefaultColor !important;\n}\n\n/* Warn foreground, Hue-1 */\n[md-theme="@themeName"] .md-warn-fg.md-hue-1 {\n color: @warnHue1Color !important;\n}\n\n/* Warn foreground, Hue-2 */\n[md-theme="@themeName"] .md-warn-fg.md-hue-2 {\n color: @warnHue2Color !important;\n}\n\n/* Warn foreground, Hue-3 */\n[md-theme="@themeName"] .md-warn-fg.md-hue-3 {\n color: @warnHue3Color !important;\n}\n\n/* Background */\n[md-theme="@themeName"] .md-background-bg {\n background-color: @backgroundDefaultColor;\n color: @backgroundDefaultContrast1;\n}\n\n[md-theme="@themeName"] .md-background-bg .secondary-text,\n[md-theme="@themeName"] .md-background-bg .icon {\n color: @backgroundDefaultContrast2;\n}\n\n[md-theme="@themeName"] .md-background-bg .hint-text,\n[md-theme="@themeName"] .md-background-bg .disabled-text {\n color: @backgroundDefaultContrast3;\n}\n\n[md-theme="@themeName"] .md-background-bg .fade-text,\n[md-theme="@themeName"] .md-background-bg .divider {\n color: @backgroundDefaultContrast4;\n}\n\n/* Background, Hue-1 */\n[md-theme="@themeName"] .md-background-bg.md-hue-1 {\n background-color: @backgroundHue1Color;\n color: @backgroundHue1Contrast1;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-1 .secondary-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-1 .icon {\n color: @backgroundHue1Contrast2;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-1 .hint-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-1 .disabled-text {\n color: @backgroundHue1Contrast3;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-1 .fade-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-1 .divider {\n color: @backgroundHue1Contrast4;\n}\n\n/* Background, Hue-2 */\n[md-theme="@themeName"] .md-background-bg.md-hue-2 {\n background-color: @backgroundHue2Color;\n color: @backgroundHue2Contrast1;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-2 .secondary-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-2 .icon {\n color: @backgroundHue2Contrast2;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-2 .hint-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-2 .disabled-text {\n color: @backgroundHue2Contrast3;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-2 .fade-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-2 .divider {\n color: @backgroundHue2Contrast4;\n}\n\n/* Background, Hue-3 */\n[md-theme="@themeName"] .md-background-bg.md-hue-3 {\n background-color: @backgroundHue3Color;\n color: @backgroundHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-3 .secondary-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-3 .icon {\n color: @backgroundHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-3 .hint-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-3 .disabled-text {\n color: @backgroundHue3Contrast3;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-3 .fade-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-3 .divider {\n color: @backgroundHue3Contrast4;\n}\n\n/* Background foreground */\n[md-theme="@themeName"] .md-background-fg {\n color: @backgroundDefaultColor !important;\n}\n\n/* Background foreground, Hue-1 */\n[md-theme="@themeName"] .md-background-fg.md-hue-1 {\n color: @backgroundHue1Color !important;\n}\n\n/* Background foreground, Hue-2 */\n[md-theme="@themeName"] .md-background-fg.md-hue-2 {\n color: @backgroundHue2Color !important;\n}\n\n/* Background foreground, Hue-3 */\n[md-theme="@themeName"] .md-background-fg.md-hue-3 {\n color: @backgroundHue3Color !important;\n}'.replace(a,function(e){return t[e]}),s=angular.element("head"),(o=angular.element('<style type="text/css"></style>')).html(i),s.append(o)})},rgba:l};function l(e,n){var t=n||!1;return 4===e.length&&255===e[0]&&255===e[1]&&255===e[2]&&e.splice(3,4),t&&(e=function(e,n){var t={white:{1:"1",2:"0.7",3:"0.3",4:"0.12"},black:{1:"0.87",2:"0.54",3:"0.26",4:"0.12"}};255===e[0]&&255===e[1]&&255===e[2]?e[3]=t.white[n]:0===e[0]&&0===e[1]&&0===e[2]&&(e[3]=t.black[n]);return e}(e,t)),3===e.length?"rgb("+e.join(",")+")":4===e.length?"rgba("+e.join(",")+")":void a.error("Invalid number of arguments supplied in the color array: "+e.length+"\nThe array must have 3 or 4 colors.")}function d(e){return e.charAt(0).toUpperCase()+e.slice(1)}}e.$inject=["$cookies","$log","motionTheming"],angular.module("app.core").factory("motionGenerator",e)}(),function(){"use strict";angular.module("app.core").constant("motionPalettes",[{name:"motion-blue",options:{50:"#ebf1fa",100:"#c2d4ef",200:"#9ab8e5",300:"#78a0dc",400:"#5688d3",500:"#3470ca",600:"#2e62b1",700:"#275498",800:"#21467e",900:"#1a3865",A100:"#c2d4ef",A200:"#9ab8e5",A400:"#5688d3",A700:"#275498",contrastDefaultColor:"light",contrastDarkColors:"50 100 200 A100",contrastStrongLightColors:"300 400"}},{name:"motion-paleblue",options:{50:"#ececee",100:"#c5c6cb",200:"#9ea1a9",300:"#7d818c",400:"#5c616f",500:"#3c4252",600:"#353a48",700:"#2d323e",800:"#262933",900:"#1e2129",A100:"#c5c6cb",A200:"#9ea1a9",A400:"#5c616f",A700:"#2d323e",contrastDefaultColor:"light",contrastDarkColors:"50 100 200 A100",contrastStrongLightColors:"300 400"}}])}(),function(){"use strict";angular.module("app.core").constant("motionThemes",{default:{primary:{name:"motion-paleblue",hues:{default:"700","hue-1":"500","hue-2":"600","hue-3":"400"}},accent:{name:"light-blue",hues:{default:"600","hue-1":"400","hue-2":"700","hue-3":"A100"}},warn:{name:"red"},background:{name:"grey",hues:{default:"A100","hue-1":"A100","hue-2":"100","hue-3":"300"}}},pinkTheme:{primary:{name:"blue-grey",hues:{default:"800","hue-1":"600","hue-2":"400","hue-3":"A100"}},accent:{name:"pink",hues:{default:"400","hue-1":"300","hue-2":"600","hue-3":"A100"}},warn:{name:"blue"},background:{name:"grey",hues:{default:"A100","hue-1":"A100","hue-2":"100","hue-3":"300"}}},tealTheme:{primary:{name:"motion-blue",hues:{default:"900","hue-1":"600","hue-2":"500","hue-3":"A100"}},accent:{name:"teal",hues:{default:"500","hue-1":"400","hue-2":"600","hue-3":"A100"}},warn:{name:"deep-orange"},background:{name:"grey",hues:{default:"A100","hue-1":"A100","hue-2":"100","hue-3":"300"}}}})}(),function(){"use strict";function e(t,e,n){var a;angular.injector(["ngCookies"]).invoke(["$cookies",function(e){a=e}]);var i=a.getObject("motion.customTheme");i&&(n.custom=i),t.alwaysWatchTheme(!0),angular.forEach(e,function(e){t.definePalette(e.name,e.options)}),angular.forEach(n,function(e,n){t.theme(n).primaryPalette(e.primary.name,e.primary.hues).accentPalette(e.accent.name,e.accent.hues).warnPalette(e.warn.name,e.warn.hues).backgroundPalette(e.background.name,e.background.hues)})}e.$inject=["$mdThemingProvider","motionPalettes","motionThemes"],angular.module("app.core").config(e)}(),function(){"use strict";function e(n,t,e){var a={getRegisteredPalettes:function(){return e.PALETTES},getRegisteredThemes:function(){return e.THEMES},setActiveTheme:function(e){if(angular.isUndefined(a.themes.list[e]))return angular.isUndefined(a.themes.list.default)?void t.error('You must have at least one theme named "default"'):(t.warn('The theme "'+e+'" does not exist! Falling back to the "default" theme.'),a.themes.active.name="default",a.themes.active.theme=a.themes.list.default,void n.put("motion.selectedTheme",a.themes.active.name));a.themes.active.name=e,a.themes.active.theme=a.themes.list[e],n.put("motion.selectedTheme",e)},setThemesList:function(e){a.themes.list=e},themes:{list:{},active:{name:"",theme:{}}}};return a}e.$inject=["$cookies","$log","$mdTheming"],angular.module("app.core").service("motionTheming",e)}(),function(){"use strict";function e(n,s,o,r){this.search=function(n){for(var e=[],t=r.getFlatNavigation(),a=o.defer(),i=0;i<t.length;i+=1)t[i].uisref&&e.push(t[i]);n&&(e=e.filter(function(e){if(-1<angular.lowercase(e.title).search(angular.lowercase(n)))return!0}));return s(function(){a.resolve(e)},1e3),a.promise},this.searchResultClick=function(e){e.uisref&&(e.stateParams?n.go(e.state,e.stateParams):n.go(e.state))}}e.$inject=["$state","$timeout","$q","msNavigationService"],angular.module("app.errors.error-404").controller("Error404Controller",e)}(),function(){"use strict";function e(e,n){var t=this;t.code="",t.send=!1,t.error=e.params,t.sendReport=function(){n.post("/api/jira",t.error).then(function(e){t.send=!0,e.data&&(t.code=e.data.id)},function(e){t.send=!1})}}e.$inject=["$state","$http"],angular.module("app.errors.error-500").controller("Error500Controller",e)}(),function(){"use strict";function e(e,n){var t=this;t.currentUser=e.getCurrentUser(),t.cookieAlertHide=n.get("motion.cookieAlertHide:"+t.currentUser.id)||!1,t.cookieAlertOnClose=function(){n.put("motion.cookieAlertHide:"+t.currentUser.id,!0)}}e.$inject=["Auth","$cookies"],angular.module("app.footer").controller("FooterController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;s.form={},s.forgotPassword=function(){return i.auth.forgot(s.form).$promise.then(function(){n.success({title:t.instant("FORGOTPASSWORD.LINK_SENT"),msg:t.instant("FORGOTPASSWORD.LINNK_SENT_MESSAGE")})}).catch(function(e){e&&n.error({title:t.instant("FORGOTPASSWORD.PASSWORD_RESET_ERROR"),msg:e.data?e.data.message||e.message||e:e.message||e})})},s.onInit=function(){e.isLoggedIn()&&a.go("app.dashboards.general")}}e.$inject=["Auth","toasty","$translate","$state","api"],angular.module("app.forgot").controller("ForgotPasswordController",e)}(),function(){"use strict";function e(e,n){var t=this;t.currentUser=e.getCurrentUser(),t.newsAlertHide=n.get("motion.newsAlertHide:"+t.currentUser.id)||!1,t.newsAlertOnClose=function(){n.put("motion.newsAlertHide:"+t.currentUser.id,!0)}}e.$inject=["Auth","$cookies"],angular.module("app.header").controller("HeaderController",e)}(),function(){"use strict";function e(e,o){var r={getResourcesByRole:function(e,n,t,a,i,s){return o.getResources(r,e,n,t,a,i,s)}};return r.baseUrl="api/",r.auth=e(r.baseUrl+"auth/local",{},{local:{method:"post",url:r.baseUrl+"auth/local"},forgot:{method:"post",url:r.baseUrl+"auth/local/forgot"},reset:{method:"post",url:r.baseUrl+"auth/local/reset/:token",params:{token:"@token"}},user:{method:"get",url:r.baseUrl+"auth/local/user/:token",params:{token:"@token"}},google:{method:"post",url:r.baseUrl+"auth/google"}}),r.jira=e(r.baseUrl+"jira"),r.rpc=e(r.baseUrl+"rpc",{},{startMonitor:{method:"get",url:r.baseUrl+"rpc/voice/channels/:uniqueid/mixmonitor",params:{uniqueid:"@uniqueid"}},stopMonitor:{method:"get",url:r.baseUrl+"rpc/voice/channels/:uniqueid/stopmixmonitor",params:{uniqueid:"@uniqueid"}},getVoiceChannels:{method:"get",url:r.baseUrl+"rpc/voice/channels"},getVoiceQueues:{method:"get",url:r.baseUrl+"rpc/voice/queues"},getChatQueues:{method:"get",url:r.baseUrl+"rpc/chat/queues"},getMailQueues:{method:"get",url:r.baseUrl+"rpc/mail/queues"},getSmsQueues:{method:"get",url:r.baseUrl+"rpc/sms/queues"},getWhatsappQueues:{method:"get",url:r.baseUrl+"rpc/whatsapp/queues"},getOpenchannelQueues:{method:"get",url:r.baseUrl+"rpc/openchannel/queues"},getFaxQueues:{method:"get",url:r.baseUrl+"rpc/fax/queues"},getVoiceQueuesPreview:{method:"get",url:r.baseUrl+"rpc/voice/queues/preview/:id"},getVoiceQueuesChannels:{method:"get",url:r.baseUrl+"rpc/voice/queues/channels"},getVoiceQueuesChannel:{method:"get",url:r.baseUrl+"rpc/voice/queues/channels/:uniqueid"},getVoiceQueuesChannelHangup:{method:"get",url:r.baseUrl+"rpc/voice/queues/channels/:uniqueid/hangup"},getVoiceQueuesChannelRedirect:{method:"get",url:r.baseUrl+"rpc/voice/queues/channels/:uniqueid/redirect/:exten"},getOutbound:{method:"get",url:r.baseUrl+"rpc/outbound"},getOutboundChannels:{method:"get",url:r.baseUrl+"rpc/outbound/channels"},getAgents:{method:"get",url:r.baseUrl+"rpc/agents"},setAgentCapacity:{method:"put",url:r.baseUrl+"rpc/agents/:id/capacity",params:{id:"@id"}},getTelephones:{method:"get",url:r.baseUrl+"rpc/telephones"},getTrunks:{method:"get",url:r.baseUrl+"rpc/trunks"},getCampaigns:{method:"get",url:r.baseUrl+"rpc/campaigns"},getMailAccounts:{method:"get",url:r.baseUrl+"rpc/mail/accounts"},getFaxAccounts:{method:"get",url:r.baseUrl+"rpc/fax/accounts"},getChatQueuesWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/chat/queues/waitinginteractions"},getMailQueuesWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/mail/queues/waitinginteractions"},getOpenchannelQueuesWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/openchannel/queues/waitinginteractions"},getOpenchannelQueuesIdWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/openchannel/queues/:id/waitinginteractions"},getSmsQueuesWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/sms/queues/waitinginteractions"},getFaxQueuesWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/fax/queues/waitinginteractions"},getWhatsappQueuesWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/whatsapp/queues/waitinginteractions"},mailQueueNotify:{method:"post",url:r.baseUrl+"rpc/mail/queues/:id/notify",params:{id:"@id"}},chatQueueNotify:{method:"post",url:r.baseUrl+"rpc/chat/queues/:id/notify",params:{id:"@id"}},faxQueueNotify:{method:"post",url:r.baseUrl+"rpc/fax/queues/:id/notify",params:{id:"@id"}},smsQueueNotify:{method:"post",url:r.baseUrl+"rpc/sms/queues/:id/notify",params:{id:"@id"}},openchannelQueueNotify:{method:"post",url:r.baseUrl+"rpc/openchannel/queues/:id/notify",params:{id:"@id"}},agentNotify:{method:"post",url:r.baseUrl+"rpc/agents/:id/notify",params:{id:"@id"}}}),r.version=e(r.baseUrl+"version",{},{fetch:{method:"get",url:r.baseUrl+"version/fetch"},reset:{method:"get",url:r.baseUrl+"version/reset"},pull:{method:"get",url:r.baseUrl+"version/pull"},restart:{method:"get",url:r.baseUrl+"version/restart"},migrations:{method:"get",url:r.baseUrl+"version/migrations"}}),r.system=e(r.baseUrl+"system",{},{killProcess:{method:"get",url:r.baseUrl+"system/process/:pid/kill",params:{pid:"@pid"}}}),r.pm2=e(r.baseUrl+"pm2/:id",{id:"@id"},{update:{method:"put",isArray:!0}}),r.user=e(r.baseUrl+"users/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"users/describe"},clone:{method:"post",url:r.baseUrl+"users/:id/clone",params:{includeAll:"@includeAll"}},addContacts:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/contacts"},bulkCreate:{isArray:!1,method:"post",url:r.baseUrl+"users/create_many"},changePassword:{isArray:!1,method:"put",url:r.baseUrl+"users/:id/password"},addQueues:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/queues"},removeQueues:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/queues"},addAvatar:{isArray:!1,method:"post",url:r.baseUrl+"users/:id/avatar"},getAvatar:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/avatar"},getOpenTabs:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/open_tabs"},getContacts:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/contacts"},getQueues:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/queues"},getVoiceQueuesRt:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/queues_rt"},getGroups:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/groups"},getRecordings:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/recordings"},getScreenRecordings:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/screen_recordings"},getChatInteractions:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/chat/interactions"},getOpenchannelInteractions:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/openchannel/interactions"},getMailInteractions:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/mail/interactions"},getSmsInteractions:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/sms/interactions"},getFaxInteractions:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/fax/interactions"},getWhatsappInteractions:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/whatsapp/interactions"},login:{isArray:!1,method:"post",url:r.baseUrl+"users/:id/login"},logout:{isArray:!1,method:"post",url:r.baseUrl+"users/:id/logout"},pause:{isArray:!1,method:"post",url:r.baseUrl+"users/:id/pause"},unpause:{isArray:!1,method:"post",url:r.baseUrl+"users/:id/unpause"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/teams"},getLists:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/lists"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/agents"},addChatInteractions:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/chat_interactions"},removeChatInteractions:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/chat_interactions"},addMailInteractions:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/mail_interactions"},removeMailInteractions:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/mail_interactions"},addFaxInteractions:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/fax_interactions"},removeFaxInteractions:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/fax_interactions"},addSmsInteractions:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/sms_interactions"},removeSmsInteractions:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/sms_interactions"},addOpenchannelInteractions:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/openchannel_interactions"},removeOpenchannelInteractions:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/openchannel_interactions"},addWhatsappInteractions:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/whatsapp_interactions"},removeWhatsappInteractions:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/whatsapp_interactions"},getVoicePrefixes:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/prefixes"},getFaxAccounts:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/fax_accounts"},addFaxAccounts:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/fax_accounts"},removeFaxAccounts:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/fax_accounts"},getMailAccounts:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/mail_accounts"},addMailAccounts:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/mail_accounts"},removeMailAccounts:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/mail_accounts"},getOpenchannelAccounts:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/openchannel_accounts"},addOpenchannelAccounts:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/openchannel_accounts"},removeOpenchannelAccounts:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/openchannel_accounts"},getSmsAccounts:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/sms_accounts"},addSmsAccounts:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/sms_accounts"},removeSmsAccounts:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/sms_accounts"},getChatWebsites:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/chat_websites"},addChatWebsites:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/chat_websites"},removeChatWebsites:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/chat_websites"},getWhatsappAccounts:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/whatsapp_accounts"},addWhatsappAccounts:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/whatsapp_accounts"},removeWhatsappAccounts:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/whatsapp_accounts"},getSquareProjects:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/square_projects"},addSquareProjects:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/square_projects"},removeSquareProjects:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/square_projects"},getScheduledCalls:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/scheduled_calls"},getApiKey:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/api_key"},createApiKey:{isArray:!1,method:"post",url:r.baseUrl+"users/:id/api_key"},removeApiKey:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/api_key"},whoami:{isArray:!1,method:"get",url:r.baseUrl+"users/whoami"},getPresence:{isArray:!1,method:"get",url:r.baseUrl+"users/presence"}}),r.voiceChanSpy=e(r.baseUrl+"voice/chanspy/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/chanspy/describe"},clone:{method:"post",url:r.baseUrl+"voice/chanspy/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceContext=e(r.baseUrl+"voice/contexts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/contexts/describe"},clone:{method:"post",url:r.baseUrl+"voice/contexts/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceExtension=e(r.baseUrl+"voice/extensions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/extensions/describe"},clone:{method:"post",url:r.baseUrl+"voice/extensions/:id/clone",params:{includeAll:"@includeAll"}},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"voice/extensions/:id/applications"}}),r.voiceMusicOnHold=e(r.baseUrl+"voice/mohs/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/mohs/describe"},clone:{method:"post",url:r.baseUrl+"voice/mohs/:id/clone",params:{includeAll:"@includeAll"}},addSound:{isArray:!1,method:"post",url:r.baseUrl+"voice/mohs/:id/sounds"},removeSound:{isArray:!1,method:"delete",url:r.baseUrl+"voice/mohs/:id/sounds/:id2"},getSounds:{isArray:!1,method:"get",url:r.baseUrl+"voice/mohs/:id/sounds"}}),r.voiceQueue=e(r.baseUrl+"voice/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/queues/describe"},clone:{method:"post",url:r.baseUrl+"voice/queues/:id/clone",params:{includeAll:"@includeAll"}},getHoppers:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/hoppers"},getHopperHistories:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/hopper_histories"},getHopperFinals:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/hopper_finals"},getHopperBlacks:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/hopper_black"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"voice/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"voice/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"voice/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"voice/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/users"},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/members"},getLists:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/lists"},addLists:{isArray:!0,method:"post",url:r.baseUrl+"voice/queues/:id/lists"},removeLists:{isArray:!0,method:"delete",url:r.baseUrl+"voice/queues/:id/lists"},getBlackLists:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/blacklists"},addBlackLists:{isArray:!0,method:"post",url:r.baseUrl+"voice/queues/:id/blacklists"},removeBlackLists:{isArray:!0,method:"delete",url:r.baseUrl+"voice/queues/:id/blacklists"}}),r.voiceRecording=e(r.baseUrl+"voice/recordings/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/recordings/describe"},clone:{method:"post",url:r.baseUrl+"voice/recordings/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"voice/recordings/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}},downloads:{isArray:!1,method:"get",url:r.baseUrl+"voice/recordings/:id/downloads"},runTranscribe:{isArray:!1,method:"post",url:r.baseUrl+"voice/recordings/:id/transcribe"},downloadTranscribe:{isArray:!1,method:"get",url:r.baseUrl+"voice/recordings/:id/transcribe",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.screenRecording=e(r.baseUrl+"screen/recordings/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"screen/recordings/describe"},clone:{method:"post",url:r.baseUrl+"screen/recordings/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"screen/recordings/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.voiceMail=e(r.baseUrl+"voice/mails/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/mails/describe"},clone:{method:"post",url:r.baseUrl+"voice/mails/:id/clone",params:{includeAll:"@includeAll"}},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"voice/mails/:id/messages"}}),r.voiceMailMessage=e(r.baseUrl+"voice/mails/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/mails/messages/describe"},clone:{method:"post",url:r.baseUrl+"voice/mails/messages/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"voice/mails/messages/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.voiceCallReport=e(r.baseUrl+"voice/calls/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/calls/reports/describe"},clone:{method:"post",url:r.baseUrl+"voice/calls/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceDialReport=e(r.baseUrl+"voice/dials/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/dials/reports/describe"},clone:{method:"post",url:r.baseUrl+"voice/dials/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceAgentReport=e(r.baseUrl+"voice/agents/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/agents/reports/describe"},clone:{method:"post",url:r.baseUrl+"voice/agents/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceQueueReport=e(r.baseUrl+"voice/queues/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/queues/reports/describe"},clone:{method:"post",url:r.baseUrl+"voice/queues/reports/:id/clone",params:{includeAll:"@includeAll"}},getVoiceQueuesReport:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/reports/index"}}),r.memberReport=e(r.baseUrl+"members/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"members/reports/describe"},clone:{method:"post",url:r.baseUrl+"members/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.trunk=e(r.baseUrl+"trunks/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"trunks/describe"},clone:{method:"post",url:r.baseUrl+"trunks/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceTransferReport=e(r.baseUrl+"voice/transfers/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/transfers/reports/describe"},clone:{method:"post",url:r.baseUrl+"voice/transfers/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.mailServerOut=e(r.baseUrl+"mail/out_servers/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/out_servers/describe"},clone:{method:"post",url:r.baseUrl+"mail/out_servers/:id/clone",params:{includeAll:"@includeAll"}}}),r.mailAccount=e(r.baseUrl+"mail/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/accounts/describe"},clone:{method:"post",url:r.baseUrl+"mail/accounts/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"mail/accounts/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:r.baseUrl+"mail/accounts/:id/canned_answers"},getImap:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/in_servers"},addImap:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/in_servers"},removeImap:{isArray:!1,method:"delete",url:r.baseUrl+"mail/accounts/:id/in_servers"},getSmtp:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/out_servers"},addSmtp:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/out_servers"},removeSmtp:{isArray:!1,method:"delete",url:r.baseUrl+"mail/accounts/:id/out_servers"},addInteraction:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/interactions"},getInteractions:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/interactions"},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/applications"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/messages"},send:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/send"},verifySmtp:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/verify"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"mail/accounts/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"mail/accounts/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/users"}}),r.mailQueue=e(r.baseUrl+"mail/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/queues/describe"},clone:{method:"post",url:r.baseUrl+"mail/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"mail/queues/:id/members"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"mail/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"mail/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"mail/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"mail/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"mail/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"mail/queues/:id/users"}}),r.mailSubstatus=e(r.baseUrl+"mail/substatuses/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/substatuses/describe"},clone:{method:"post",url:r.baseUrl+"mail/substatuses/:id/clone",params:{includeAll:"@includeAll"}}}),r.mailInteraction=e(r.baseUrl+"mail/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/interactions/describe"},clone:{method:"post",url:r.baseUrl+"mail/interactions/:id/clone",params:{includeAll:"@includeAll"}},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"mail/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"mail/interactions/:id/messages"},addTags:{isArray:!1,method:"post",url:r.baseUrl+"mail/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:r.baseUrl+"mail/interactions/:id/tags"},download:{isArray:!1,method:"get",url:r.baseUrl+"mail/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.mailMessage=e(r.baseUrl+"mail/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/messages/describe"},clone:{method:"post",url:r.baseUrl+"mail/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:r.baseUrl+"mail/messages/:id/accept"},reject:{isArray:!1,method:"put",url:r.baseUrl+"mail/messages/:id/reject"},download:{isArray:!1,method:"get",url:r.baseUrl+"mail/messages/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.mailApplication=e(r.baseUrl+"mail/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/applications/describe"},clone:{method:"post",url:r.baseUrl+"mail/applications/:id/clone",params:{includeAll:"@includeAll"}}}),r.mailQueueReport=e(r.baseUrl+"mail/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/reports/queue/describe"},clone:{method:"post",url:r.baseUrl+"mail/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),r.dashboard=e(r.baseUrl+"dashboards/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"dashboards/describe"},clone:{method:"post",url:r.baseUrl+"dashboards/:id/clone",params:{includeAll:"@includeAll"}},addItem:{isArray:!1,method:"post",url:r.baseUrl+"dashboards/:id/items"},getItems:{isArray:!1,method:"get",url:r.baseUrl+"dashboards/:id/items"}}),r.dashboardItem=e(r.baseUrl+"dashboards/items/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"dashboards/items/describe"},clone:{method:"post",url:r.baseUrl+"dashboards/items/:id/clone",params:{includeAll:"@includeAll"}}}),r.faxAccount=e(r.baseUrl+"fax/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/accounts/describe"},clone:{method:"post",url:r.baseUrl+"fax/accounts/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"fax/accounts/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"fax/accounts/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"fax/accounts/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:r.baseUrl+"fax/accounts/:id/canned_answers"},addInteraction:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/:id/interactions"},getInteractions:{isArray:!1,method:"get",url:r.baseUrl+"fax/accounts/:id/interactions"},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:r.baseUrl+"fax/accounts/:id/applications"},addAccountApplications:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/addaccountapplications"},updateAccountApplications:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/updateaccountapplications"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"fax/accounts/:id/messages"},send:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/:id/send"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"fax/accounts/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"fax/accounts/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"fax/accounts/:id/users"}}),r.faxApplication=e(r.baseUrl+"fax/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/applications/describe"},clone:{method:"post",url:r.baseUrl+"fax/applications/:id/clone",params:{includeAll:"@includeAll"}}}),r.faxInteraction=e(r.baseUrl+"fax/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/interactions/describe"},clone:{method:"post",url:r.baseUrl+"fax/interactions/:id/clone",params:{includeAll:"@includeAll"}},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"fax/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"fax/interactions/:id/messages"},addTags:{isArray:!1,method:"post",url:r.baseUrl+"fax/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:r.baseUrl+"fax/interactions/:id/tags"},download:{isArray:!1,method:"get",url:r.baseUrl+"fax/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.faxMessage=e(r.baseUrl+"fax/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/messages/describe"},clone:{method:"post",url:r.baseUrl+"fax/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:r.baseUrl+"fax/messages/:id/accept"},reject:{isArray:!1,method:"put",url:r.baseUrl+"fax/messages/:id/reject"},download:{isArray:!1,method:"get",url:r.baseUrl+"fax/messages/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.faxQueue=e(r.baseUrl+"fax/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/queues/describe"},clone:{method:"post",url:r.baseUrl+"fax/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"fax/queues/:id/members"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"fax/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"fax/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"fax/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"fax/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"fax/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"fax/queues/:id/users"}}),r.faxQueueReport=e(r.baseUrl+"fax/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/reports/queue/describe"},clone:{method:"post",url:r.baseUrl+"fax/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),r.smsAccount=e(r.baseUrl+"sms/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/accounts/describe"},clone:{method:"post",url:r.baseUrl+"sms/accounts/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"sms/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"sms/accounts/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"sms/accounts/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:r.baseUrl+"sms/accounts/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"sms/accounts/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:r.baseUrl+"sms/accounts/:id/canned_answers"},notify:{isArray:!1,method:"post",url:r.baseUrl+"sms/accounts/:id/notify"},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"sms/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:r.baseUrl+"sms/accounts/:id/applications"},getInteractions:{isArray:!1,method:"get",url:r.baseUrl+"sms/accounts/:id/interactions"},send:{isArray:!1,method:"post",url:r.baseUrl+"sms/accounts/:id/send"},status:{isArray:!1,method:"post",url:r.baseUrl+"sms/accounts/:id/status"},statusGet:{isArray:!1,method:"get",url:r.baseUrl+"sms/accounts/:id/status"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"sms/accounts/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"sms/accounts/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"sms/accounts/:id/users"}}),r.smsApplication=e(r.baseUrl+"sms/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/applications/describe"},clone:{method:"post",url:r.baseUrl+"sms/applications/:id/clone",params:{includeAll:"@includeAll"}}}),r.smsInteraction=e(r.baseUrl+"sms/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/interactions/describe"},clone:{method:"post",url:r.baseUrl+"sms/interactions/:id/clone",params:{includeAll:"@includeAll"}},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"sms/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"sms/interactions/:id/messages"},addTags:{isArray:!1,method:"post",url:r.baseUrl+"sms/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:r.baseUrl+"sms/interactions/:id/tags"},download:{isArray:!1,method:"get",url:r.baseUrl+"sms/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.smsMessage=e(r.baseUrl+"sms/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/messages/describe"},clone:{method:"post",url:r.baseUrl+"sms/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:r.baseUrl+"sms/messages/:id/accept"},reject:{isArray:!1,method:"put",url:r.baseUrl+"sms/messages/:id/reject"},status:{isArray:!1,method:"post",url:r.baseUrl+"sms/messages/:id/status"}}),r.smsQueue=e(r.baseUrl+"sms/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/queues/describe"},clone:{method:"post",url:r.baseUrl+"sms/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"sms/queues/:id/members"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"sms/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"sms/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"sms/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"sms/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"sms/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"sms/queues/:id/users"}}),r.openchannelAccount=e(r.baseUrl+"openchannel/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/accounts/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/accounts/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/accounts/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"openchannel/accounts/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/accounts/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/accounts/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:r.baseUrl+"openchannel/accounts/:id/canned_answers"},notify:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/accounts/:id/notify"},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/accounts/:id/applications"},getInteractions:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/accounts/:id/interactions"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"openchannel/accounts/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"openchannel/accounts/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/accounts/:id/users"},send:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/accounts/:id/send"}}),r.openchannelApplication=e(r.baseUrl+"openchannel/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/applications/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/applications/:id/clone",params:{includeAll:"@includeAll"}}}),r.openchannelInteraction=e(r.baseUrl+"openchannel/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/interactions/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/interactions/:id/clone",params:{includeAll:"@includeAll"}},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/interactions/:id/messages"},addTags:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:r.baseUrl+"openchannel/interactions/:id/tags"},download:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.openchannelMessage=e(r.baseUrl+"openchannel/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/messages/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:r.baseUrl+"openchannel/messages/:id/accept"},reject:{isArray:!1,method:"put",url:r.baseUrl+"openchannel/messages/:id/reject"}}),r.openchannelQueue=e(r.baseUrl+"openchannel/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/queues/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/queues/:id/members"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"openchannel/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"openchannel/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"openchannel/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"openchannel/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/queues/:id/users"}}),r.chatWebsite=e(r.baseUrl+"chat/websites/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/websites/describe"},clone:{method:"post",url:r.baseUrl+"chat/websites/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"chat/websites/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:r.baseUrl+"chat/websites/:id/canned_answers"},addLogo:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/logo"},addAvatar:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/avatar"},addCustomerAvatar:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/customer_avatar"},addSystemAvatar:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/system_avatar"},getLogo:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/logo"},getAvatar:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/avatar"},getCustomerAvatar:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/customer_avatar"},getSystemAvatar:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/system_avatar"},notify:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/notify"},offline:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/offline"},addInteraction:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/interactions"},getInteractions:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/interactions"},getSnippet:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/snippet"},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/applications"},getApplications:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/applications"},addProactiveActions:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/proactive_actions"},getProactiveActions:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/proactive_actions"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/fields"},getOfflineMessages:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/offline_messages"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"chat/websites/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"chat/websites/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/users"}}),r.openchannelQueueReport=e(r.baseUrl+"openchannel/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/reports/queue/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),r.chatApplication=e(r.baseUrl+"chat/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/applications/describe"},clone:{method:"post",url:r.baseUrl+"chat/applications/:id/clone",params:{includeAll:"@includeAll"}}}),r.chatInteraction=e(r.baseUrl+"chat/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/interactions/describe"},clone:{method:"post",url:r.baseUrl+"chat/interactions/:id/clone",params:{includeAll:"@includeAll"}},createVidaooSession:{isArray:!1,method:"post",url:r.baseUrl+"chat/interactions/:id/vidaoo"},customUpdate:{isArray:!1,method:"put",url:r.baseUrl+"chat/interactions/:id/custom_update"},abandon:{isArray:!1,method:"put",url:r.baseUrl+"chat/interactions/:id/abandon"},attachmentUpload:{isArray:!1,method:"post",url:r.baseUrl+"chat/interactions/:id/attachment_upload"},attachmentDownload:{isArray:!1,method:"get",url:r.baseUrl+"chat/interactions/:id/attachment_download"},close:{isArray:!1,method:"put",url:r.baseUrl+"chat/interactions/:id/close"},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"chat/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"chat/interactions/:id/messages"},getMyMessages:{isArray:!1,method:"get",url:r.baseUrl+"chat/interactions/:id/my_messages"},addTags:{isArray:!1,method:"post",url:r.baseUrl+"chat/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:r.baseUrl+"chat/interactions/:id/tags"},download:{isArray:!1,method:"get",url:r.baseUrl+"chat/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.chatMessage=e(r.baseUrl+"chat/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/messages/describe"},clone:{method:"post",url:r.baseUrl+"chat/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:r.baseUrl+"chat/messages/:id/accept"},reject:{isArray:!1,method:"put",url:r.baseUrl+"chat/messages/:id/reject"}}),r.chatOfflineMessage=e(r.baseUrl+"chat/offline_messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/offline_messages/describe"},clone:{method:"post",url:r.baseUrl+"chat/offline_messages/:id/clone",params:{includeAll:"@includeAll"}}}),r.chatQueue=e(r.baseUrl+"chat/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/queues/describe"},clone:{method:"post",url:r.baseUrl+"chat/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"chat/queues/:id/members"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"chat/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"chat/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"chat/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"chat/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"chat/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"chat/queues/:id/users"}}),r.chatGroup=e(r.baseUrl+"chat/groups/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/groups/describe"},clone:{method:"post",url:r.baseUrl+"chat/groups/:id/clone",params:{includeAll:"@includeAll"}},getUnread:{isArray:!1,method:"get",url:r.baseUrl+"chat/groups/:id/unread"},addMembers:{isArray:!0,method:"post",url:r.baseUrl+"chat/groups/:id/members"},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"chat/groups/:id/members"},removeMembers:{isArray:!1,method:"delete",url:r.baseUrl+"chat/groups/:id/members"},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"chat/groups/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"chat/groups/:id/messages"}}),r.chatProactiveAction=e(r.baseUrl+"chat/proactive_actions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/proactive_actions/describe"},clone:{method:"post",url:r.baseUrl+"chat/proactive_actions/:id/clone",params:{includeAll:"@includeAll"}}}),r.cmCompany=e(r.baseUrl+"cm/companies/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/companies/describe"},clone:{method:"post",url:r.baseUrl+"cm/companies/:id/clone",params:{includeAll:"@includeAll"}},addContacts:{isArray:!1,method:"post",url:r.baseUrl+"cm/companies/:id/contacts"},getContacts:{isArray:!1,method:"get",url:r.baseUrl+"cm/companies/:id/contacts"}}),r.cmContact=e(r.baseUrl+"cm/contacts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/contacts/describe"},clone:{method:"post",url:r.baseUrl+"cm/contacts/:id/clone",params:{includeAll:"@includeAll"}},merge:{isArray:!1,method:"post",url:r.baseUrl+"cm/contacts/merge"},bulkCreate:{isArray:!1,method:"post",url:r.baseUrl+"cm/contacts/create_many"},getTags:{isArray:!1,method:"get",url:r.baseUrl+"cm/contacts/:id/tags"},setTags:{isArray:!0,method:"post",url:r.baseUrl+"cm/contacts/:id/tags"},getHoppers:{isArray:!1,method:"get",url:r.baseUrl+"cm/contacts/:id/hoppers"},getHopperHistories:{isArray:!1,method:"get",url:r.baseUrl+"cm/contacts/:id/hopper_histories"},getHopperFinals:{isArray:!1,method:"get",url:r.baseUrl+"cm/contacts/:id/hopper_finals"},getJscriptySessions:{isArray:!1,method:"get",url:r.baseUrl+"cm/contacts/:id/jscripty_sessions"},uploadCsv:{isArray:!1,method:"post",url:r.baseUrl+"cm/contacts/csv"},upload:{isArray:!1,method:"post",url:r.baseUrl+"cm/contacts/upload"},import:{isArray:!1,method:"post",url:r.baseUrl+"cm/contacts/upload/:id"},getJourney:{isArray:!1,method:"get",url:r.baseUrl+"cm/contacts/:id/journey"}}),r.cmHopper=e(r.baseUrl+"cm/hopper/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/hopper/describe"},clone:{method:"post",url:r.baseUrl+"cm/hopper/:id/clone",params:{includeAll:"@includeAll"}},getPreview:{isArray:!1,method:"post",url:r.baseUrl+"cm/hopper/preview"},getOpenContacts:{isArray:!1,method:"get",url:r.baseUrl+"cm/hopper/opencontacts"}}),r.cmHopperBlack=e(r.baseUrl+"cm/hopper_black/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/hopper_black/describe"},clone:{method:"post",url:r.baseUrl+"cm/hopper_black/:id/clone",params:{includeAll:"@includeAll"}}}),r.cmHopperFinal=e(r.baseUrl+"cm/hopper_final/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/hopper_final/describe"},clone:{method:"post",url:r.baseUrl+"cm/hopper_final/:id/clone",params:{includeAll:"@includeAll"}},countContactsQueueCampaignHopperFinal:{isArray:!0,method:"get",url:r.baseUrl+"cm/hopper_final/voice/queue/countAttributes/:id"},countContactsIvrCampaignHopperFinal:{isArray:!0,method:"get",url:r.baseUrl+"cm/hopper_final/campaign/countAttributes/:id"},moveContactsQueueCampaignHopperFinal:{isArray:!0,method:"post",url:r.baseUrl+"cm/hopper_final/voice/queue/moveContacts/:id"},moveContactsIvrCampaignHopperFinal:{isArray:!0,method:"post",url:r.baseUrl+"cm/hopper_final/voice/campaign/moveContacts/:id"},checkContactHopper:{isArray:!1,method:"post",url:r.baseUrl+"cm/hopper_final/checkContactHopper"}}),r.cmHopperHistory=e(r.baseUrl+"cm/hopper_history/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/hopper_history/describe"},clone:{method:"post",url:r.baseUrl+"cm/hopper_history/:id/clone",params:{includeAll:"@includeAll"}}}),r.cmCustomField=e(r.baseUrl+"cm/custom_fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/custom_fields/describe"},clone:{method:"post",url:r.baseUrl+"cm/custom_fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.action=e(r.baseUrl+"actions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"actions/describe"},clone:{method:"post",url:r.baseUrl+"actions/:id/clone",params:{includeAll:"@includeAll"}}}),r.automation=e(r.baseUrl+"automations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"automations/describe"},clone:{method:"post",url:r.baseUrl+"automations/:id/clone",params:{includeAll:"@includeAll"}},addConditions:{isArray:!1,method:"post",url:r.baseUrl+"automations/:id/conditions"},getConditions:{isArray:!1,method:"get",url:r.baseUrl+"automations/:id/conditions"},addActions:{isArray:!1,method:"post",url:r.baseUrl+"automations/:id/actions"},getActions:{isArray:!1,method:"get",url:r.baseUrl+"automations/:id/actions"}}),r.cannedAnswer=e(r.baseUrl+"canned_answers/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"canned_answers/describe"},clone:{method:"post",url:r.baseUrl+"canned_answers/:id/clone",params:{includeAll:"@includeAll"}}}),r.disposition=e(r.baseUrl+"dispositions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"dispositions/describe"},clone:{method:"post",url:r.baseUrl+"dispositions/:id/clone",params:{includeAll:"@includeAll"}}}),r.condition=e(r.baseUrl+"conditions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"conditions/describe"},clone:{method:"post",url:r.baseUrl+"conditions/:id/clone",params:{includeAll:"@includeAll"}}}),r.interval=e(r.baseUrl+"intervals/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"intervals/describe"},clone:{method:"post",url:r.baseUrl+"intervals/:id/clone",params:{includeAll:"@includeAll"}},addInterval:{isArray:!1,method:"post",url:r.baseUrl+"intervals/:id/sub_intervals"},getIntervals:{isArray:!1,method:"get",url:r.baseUrl+"intervals/:id/sub_intervals"},addIntervals:{isArray:!0,method:"post",url:r.baseUrl+"intervals/:id/sub_intervals/create_many"}}),r.pause=e(r.baseUrl+"pauses/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"pauses/describe"},clone:{method:"post",url:r.baseUrl+"pauses/:id/clone",params:{includeAll:"@includeAll"}}}),r.cdr=e(r.baseUrl+"cdr/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cdr/describe"},clone:{method:"post",url:r.baseUrl+"cdr/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceQueuesLog=e(r.baseUrl+"voiceQueuesLog/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voiceQueuesLog/describe"},clone:{method:"post",url:r.baseUrl+"voiceQueuesLog/:id/clone",params:{includeAll:"@includeAll"}}}),r.schedule=e(r.baseUrl+"schedules/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"schedules/describe"},clone:{method:"post",url:r.baseUrl+"schedules/:id/clone",params:{includeAll:"@includeAll"}},run:{isArray:!1,method:"get",url:r.baseUrl+"schedules/:id/run"}}),r.sound=e(r.baseUrl+"sounds/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sounds/describe"},clone:{method:"post",url:r.baseUrl+"sounds/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"sounds/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}},delete:{isArray:!1,method:"delete",url:r.baseUrl+"sounds/:id"}}),r.tag=e(r.baseUrl+"tags/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"tags/describe"},clone:{method:"post",url:r.baseUrl+"tags/:id/clone",params:{includeAll:"@includeAll"}}}),r.template=e(r.baseUrl+"templates/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"templates/describe"},clone:{method:"post",url:r.baseUrl+"templates/:id/clone",params:{includeAll:"@includeAll"}}}),r.trigger=e(r.baseUrl+"triggers/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"triggers/describe"},clone:{method:"post",url:r.baseUrl+"triggers/:id/clone",params:{includeAll:"@includeAll"}},addAllCondition:{isArray:!1,method:"post",url:r.baseUrl+"triggers/:id/all_conditions"},addAnyCondition:{isArray:!1,method:"post",url:r.baseUrl+"triggers/:id/any_conditions"},getAllConditions:{isArray:!1,method:"get",url:r.baseUrl+"triggers/:id/all_conditions"},getAnyConditions:{isArray:!1,method:"get",url:r.baseUrl+"triggers/:id/any_conditions"},addAction:{isArray:!1,method:"post",url:r.baseUrl+"triggers/:id/actions"},getActions:{isArray:!1,method:"get",url:r.baseUrl+"triggers/:id/actions"}}),r.variable=e(r.baseUrl+"variables/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"variables/describe"},clone:{method:"post",url:r.baseUrl+"variables/:id/clone",params:{includeAll:"@includeAll"}}}),r.integration=e(r.baseUrl+"integrations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/:id/clone",params:{includeAll:"@includeAll"}}}),r.integrationReport=e(r.baseUrl+"integrations/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/reports/describe"},clone:{method:"post",url:r.baseUrl+"integrations/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.analyticCustomReport=e(r.baseUrl+"analytics/custom_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"analytics/custom_reports/describe"},clone:{method:"post",url:r.baseUrl+"analytics/custom_reports/:id/clone",params:{includeAll:"@includeAll"}},preview:{isArray:!0,method:"get",url:r.baseUrl+"analytics/custom_reports/:id/preview"},run:{isArray:!1,method:"get",url:r.baseUrl+"analytics/custom_reports/:id/run"},query:{isArray:!1,method:"get",url:r.baseUrl+"analytics/custom_reports/:id/query"}}),r.analyticDefaultReport=e(r.baseUrl+"analytics/default_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"analytics/default_reports/describe"},clone:{method:"post",url:r.baseUrl+"analytics/default_reports/:id/clone",params:{includeAll:"@includeAll"}},preview:{isArray:!0,method:"get",url:r.baseUrl+"analytics/default_reports/:id/preview"},run:{isArray:!1,method:"get",url:r.baseUrl+"analytics/default_reports/:id/run"},query:{isArray:!1,method:"get",url:r.baseUrl+"analytics/default_reports/:id/query"}}),r.analyticExtractedReport=e(r.baseUrl+"analytics/extracted_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"analytics/extracted_reports/describe"},clone:{method:"post",url:r.baseUrl+"analytics/extracted_reports/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"analytics/extracted_reports/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.analyticMetric=e(r.baseUrl+"analytics/metrics/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"analytics/metrics/describe"},clone:{method:"post",url:r.baseUrl+"analytics/metrics/:id/clone",params:{includeAll:"@includeAll"}}}),r.analyticFieldReport=e(r.baseUrl+"analytics/field_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"analytics/field_reports/describe"},clone:{method:"post",url:r.baseUrl+"analytics/field_reports/:id/clone",params:{includeAll:"@includeAll"}},bulkCreate:{method:"post",url:r.baseUrl+"analytics/field_reports/create_many",isArray:!0},bulkDestroy:{method:"delete",url:r.baseUrl+"analytics/field_reports/destroy_many",isArray:!0},addFields:{isArray:!0,method:"post",url:r.baseUrl+"analytics/field_reports/:id/create_many"}}),r.analyticTreeReport=e(r.baseUrl+"analytics/tree_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"analytics/tree_reports/describe"},clone:{method:"post",url:r.baseUrl+"analytics/tree_reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.intSalesforceAccount=e(r.baseUrl+"integrations/salesforce/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/salesforce/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/salesforce/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/salesforce/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/salesforce/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/salesforce/accounts/:id/fields"}}),r.intSalesforceConfiguration=e(r.baseUrl+"integrations/salesforce/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/salesforce/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/salesforce/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/salesforce/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/salesforce/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/salesforce/configurations/:id/descriptions"}}),r.intSalesforceField=e(r.baseUrl+"integrations/salesforce/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/salesforce/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/salesforce/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intSugarcrmAccount=e(r.baseUrl+"integrations/sugarcrm/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/sugarcrm/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/sugarcrm/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/sugarcrm/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/sugarcrm/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/sugarcrm/accounts/:id/fields"}}),r.intSugarcrmConfiguration=e(r.baseUrl+"integrations/sugarcrm/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/sugarcrm/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/sugarcrm/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/sugarcrm/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/sugarcrm/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/sugarcrm/configurations/:id/descriptions"}}),r.intSugarcrmField=e(r.baseUrl+"integrations/sugarcrm/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/sugarcrm/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/sugarcrm/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intDeskAccount=e(r.baseUrl+"integrations/desk/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/desk/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/desk/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/desk/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/desk/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/desk/accounts/:id/fields"}}),r.intDeskConfiguration=e(r.baseUrl+"integrations/desk/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/desk/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/desk/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/desk/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/desk/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/desk/configurations/:id/descriptions"},getTags:{isArray:!1,method:"get",url:r.baseUrl+"integrations/desk/configurations/:id/tags"},setTags:{isArray:!0,method:"post",url:r.baseUrl+"integrations/desk/configurations/:id/tags"}}),r.intDeskField=e(r.baseUrl+"integrations/desk/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/desk/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/desk/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intZohoAccount=e(r.baseUrl+"integrations/zoho/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/zoho/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/zoho/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zoho/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/zoho/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zoho/accounts/:id/fields"}}),r.intZohoConfiguration=e(r.baseUrl+"integrations/zoho/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/zoho/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/zoho/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zoho/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zoho/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zoho/configurations/:id/descriptions"}}),r.intZohoField=e(r.baseUrl+"integrations/zoho/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/zoho/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/zoho/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intZendeskAccount=e(r.baseUrl+"integrations/zendesk/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/zendesk/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/zendesk/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zendesk/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/zendesk/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zendesk/accounts/:id/fields"}}),r.intZendeskConfiguration=e(r.baseUrl+"integrations/zendesk/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/zendesk/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/zendesk/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zendesk/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zendesk/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zendesk/configurations/:id/descriptions"},getTags:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zendesk/configurations/:id/tags"},setTags:{isArray:!0,method:"post",url:r.baseUrl+"integrations/zendesk/configurations/:id/tags"}}),r.intZendeskField=e(r.baseUrl+"integrations/zendesk/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/zendesk/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/zendesk/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intFreshdeskAccount=e(r.baseUrl+"integrations/freshdesk/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/freshdesk/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/freshdesk/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshdesk/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/freshdesk/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshdesk/accounts/:id/fields"}}),r.intFreshdeskConfiguration=e(r.baseUrl+"integrations/freshdesk/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/freshdesk/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/freshdesk/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshdesk/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshdesk/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshdesk/configurations/:id/descriptions"},getTags:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshdesk/configurations/:id/tags"},setTags:{isArray:!0,method:"post",url:r.baseUrl+"integrations/freshdesk/configurations/:id/tags"}}),r.intFreshdeskField=e(r.baseUrl+"integrations/freshdesk/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/freshdesk/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/freshdesk/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intVtigerAccount=e(r.baseUrl+"integrations/vtiger/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/vtiger/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/vtiger/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/vtiger/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/vtiger/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/vtiger/accounts/:id/fields"}}),r.intVtigerConfiguration=e(r.baseUrl+"integrations/vtiger/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/vtiger/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/vtiger/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/vtiger/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/vtiger/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/vtiger/configurations/:id/descriptions"}}),r.intVtigerField=e(r.baseUrl+"integrations/vtiger/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/vtiger/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/vtiger/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intServicenowAccount=e(r.baseUrl+"integrations/servicenow/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/servicenow/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/servicenow/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/servicenow/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/servicenow/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/servicenow/accounts/:id/fields"}}),r.intServicenowConfiguration=e(r.baseUrl+"integrations/servicenow/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/servicenow/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/servicenow/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/servicenow/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/servicenow/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/servicenow/configurations/:id/descriptions"}}),r.intServicenowField=e(r.baseUrl+"integrations/servicenow/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/servicenow/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/servicenow/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intDynamics365Account=e(r.baseUrl+"integrations/dynamics365/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/dynamics365/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/dynamics365/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/dynamics365/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/dynamics365/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/dynamics365/accounts/:id/fields"}}),r.intDynamics365Configuration=e(r.baseUrl+"integrations/dynamics365/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/dynamics365/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/dynamics365/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/dynamics365/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/dynamics365/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/dynamics365/configurations/:id/descriptions"}}),r.intDynamics365Field=e(r.baseUrl+"integrations/dynamics365/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/dynamics365/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/dynamics365/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intFreshsalesAccount=e(r.baseUrl+"integrations/freshsales/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/freshsales/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/freshsales/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshsales/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/freshsales/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshsales/accounts/:id/fields"}}),r.intFreshsalesConfiguration=e(r.baseUrl+"integrations/freshsales/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/freshsales/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/freshsales/configurations/:id/clone",params:{includeAll:"@includeAll"}},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshsales/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshsales/configurations/:id/descriptions"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshsales/configurations/:id/fields"}}),r.intFreshsalesField=e(r.baseUrl+"integrations/freshsales/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/freshsales/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/freshsales/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.network=e(r.baseUrl+"networks/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"networks/describe"},clone:{method:"post",url:r.baseUrl+"networks/:id/clone",params:{includeAll:"@includeAll"}}}),r.chatQueueReport=e(r.baseUrl+"chat/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/reports/queue/describe"},clone:{method:"post",url:r.baseUrl+"chat/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),r.chatInternalMessage=e(r.baseUrl+"chat/internal/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/internal/messages/describe"},clone:{method:"post",url:r.baseUrl+"chat/internal/messages/:id/clone",params:{includeAll:"@includeAll"}},getUsers:{isArray:!1,method:"get",url:r.baseUrl+"chat/internal/messages/users"}}),r.jscriptyAnswerReport=e(r.baseUrl+"jscripty/answers/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"jscripty/answers/reports/describe"},clone:{method:"post",url:r.baseUrl+"jscripty/answers/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.jscriptyQuestionReport=e(r.baseUrl+"jscripty/questions/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"jscripty/questions/reports/describe"},clone:{method:"post",url:r.baseUrl+"jscripty/questions/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.jscriptySessionReport=e(r.baseUrl+"jscripty/sessions/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"jscripty/sessions/reports/describe"},clone:{method:"post",url:r.baseUrl+"jscripty/sessions/reports/:id/clone",params:{includeAll:"@includeAll"}},getQuestions:{isArray:!1,method:"get",url:r.baseUrl+"jscripty/sessions/reports/:id/questions"}}),r.smsQueueReport=e(r.baseUrl+"sms/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/reports/queue/describe"},clone:{method:"post",url:r.baseUrl+"sms/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),r.squareReport=e(r.baseUrl+"square/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"square/reports/describe"},clone:{method:"post",url:r.baseUrl+"square/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.squareReportDetail=e(r.baseUrl+"square/details/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"square/details/reports/describe"},clone:{method:"post",url:r.baseUrl+"square/details/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.jscriptyProject=e(r.baseUrl+"jscripty/projects/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"jscripty/projects/describe"},clone:{method:"post",url:r.baseUrl+"jscripty/projects/:id/clone",params:{includeAll:"@includeAll"}},getSessions:{isArray:!1,method:"get",url:r.baseUrl+"jscripty/projects/:id/sessions"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"jscripty/projects/:id/answers"},getSummary:{isArray:!1,method:"get",url:r.baseUrl+"jscripty/projects/:id/summary",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.setting=e(r.baseUrl+"settings/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"settings/describe"},clone:{method:"post",url:r.baseUrl+"settings/:id/clone",params:{includeAll:"@includeAll"}},addLogo:{isArray:!1,method:"post",url:r.baseUrl+"settings/:id/logo"},addLogoLogin:{isArray:!1,method:"post",url:r.baseUrl+"settings/:id/logo_login"},getLogo:{isArray:!1,method:"get",url:r.baseUrl+"settings/:id/logo"},getLogoLogin:{isArray:!1,method:"get",url:r.baseUrl+"settings/:id/logo_login"},gdpr:{isArray:!1,method:"get",url:r.baseUrl+"settings/:id/gdpr"},addPreferred:{isArray:!1,method:"post",url:r.baseUrl+"settings/:id/preferred"},getPreferred:{isArray:!1,method:"get",url:r.baseUrl+"settings/:id/preferred"},addFavicon:{isArray:!1,method:"post",url:r.baseUrl+"settings/:id/favicon"},getFavicon:{isArray:!1,method:"get",url:r.baseUrl+"settings/:id/favicon"},getDate:{isArray:!1,method:"get",url:r.baseUrl+"settings/now"}}),r.squareOdbc=e(r.baseUrl+"square/odbc/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"square/odbc/describe"},clone:{method:"post",url:r.baseUrl+"square/odbc/:id/clone",params:{includeAll:"@includeAll"}},test:{isArray:!1,method:"get",url:r.baseUrl+"square/odbc/:id/test"}}),r.squareProject=e(r.baseUrl+"square/projects/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"square/projects/describe"},clone:{method:"post",url:r.baseUrl+"square/projects/:id/clone",params:{includeAll:"@includeAll"}},addUsers:{isArray:!0,method:"post",url:r.baseUrl+"square/projects/:id/users"},removeUsers:{isArray:!1,method:"delete",url:r.baseUrl+"square/projects/:id/users"},getUsers:{isArray:!1,method:"get",url:r.baseUrl+"square/projects/:id/users"}}),r.squareRecording=e(r.baseUrl+"square/recordings/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"square/recordings/describe"},clone:{method:"post",url:r.baseUrl+"square/recordings/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"square/recordings/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.squareMessage=e(r.baseUrl+"square/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"square/messages/describe"},clone:{method:"post",url:r.baseUrl+"square/messages/:id/clone",params:{includeAll:"@includeAll"}}}),r.team=e(r.baseUrl+"teams/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"teams/describe"},clone:{method:"post",url:r.baseUrl+"teams/:id/clone",params:{includeAll:"@includeAll"}},getQueues:{isArray:!0,method:"get",url:r.baseUrl+"teams/:id/queues"},addQueues:{isArray:!0,method:"post",url:r.baseUrl+"teams/:id/queues"},removeQueues:{isArray:!1,method:"delete",url:r.baseUrl+"teams/:id/queues"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"teams/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"teams/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"teams/:id/users"}}),r.license=e(r.baseUrl+"license/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"license/describe"},clone:{method:"post",url:r.baseUrl+"license/:id/clone",params:{includeAll:"@includeAll"}}}),r.campaign=e(r.baseUrl+"campaigns/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"campaigns/describe"},clone:{method:"post",url:r.baseUrl+"campaigns/:id/clone",params:{includeAll:"@includeAll"}},getHoppers:{isArray:!1,method:"get",url:r.baseUrl+"campaigns/:id/hoppers"},getHopperHistories:{isArray:!1,method:"get",url:r.baseUrl+"campaigns/:id/hopper_histories"},getHopperFinals:{isArray:!1,method:"get",url:r.baseUrl+"campaigns/:id/hopper_finals"},getHopperBlacks:{isArray:!1,method:"get",url:r.baseUrl+"campaigns/:id/hopper_black"},getLists:{isArray:!1,method:"get",url:r.baseUrl+"campaigns/:id/lists"},addLists:{isArray:!0,method:"post",url:r.baseUrl+"campaigns/:id/lists"},removeLists:{isArray:!0,method:"delete",url:r.baseUrl+"campaigns/:id/lists"},getBlackLists:{isArray:!1,method:"get",url:r.baseUrl+"campaigns/:id/blacklists"},addBlackLists:{isArray:!0,method:"post",url:r.baseUrl+"campaigns/:id/blacklists"},removeBlackLists:{isArray:!0,method:"delete",url:r.baseUrl+"campaigns/:id/blacklists"}}),r.migration=e(r.baseUrl+"migrations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"migrations/describe"},clone:{method:"post",url:r.baseUrl+"migrations/:id/clone",params:{includeAll:"@includeAll"}}}),r.attachment=e(r.baseUrl+"attachments/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"attachments/describe"},clone:{method:"post",url:r.baseUrl+"attachments/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"attachments/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.plugin=e(r.baseUrl+"plugins/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"plugins/describe"},clone:{method:"post",url:r.baseUrl+"plugins/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"plugins/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}},upload:{isArray:!1,method:"post",url:r.baseUrl+"plugins/"},delete:{isArray:!1,method:"delete",url:r.baseUrl+"plugins/:id"},webhookGet:{isArray:!1,method:"get",url:r.baseUrl+"plugins/webhook"},webhookPost:{isArray:!1,method:"post",url:r.baseUrl+"plugins/webhook"}}),r.mailTransferReport=e(r.baseUrl+"mail/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/reports/transfer/describe"},clone:{method:"post",url:r.baseUrl+"mail/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),r.chatTransferReport=e(r.baseUrl+"chat/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/reports/transfer/describe"},clone:{method:"post",url:r.baseUrl+"chat/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),r.faxTransferReport=e(r.baseUrl+"fax/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/reports/transfer/describe"},clone:{method:"post",url:r.baseUrl+"fax/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),r.openchannelTransferReport=e(r.baseUrl+"openchannel/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/reports/transfer/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),r.smsTransferReport=e(r.baseUrl+"sms/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/reports/transfer/describe"},clone:{method:"post",url:r.baseUrl+"sms/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),r.cmList=e(r.baseUrl+"cm/lists/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/lists/describe"},clone:{method:"post",url:r.baseUrl+"cm/lists/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"cm/lists/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"cm/lists/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"cm/lists/:id/dispositions"},addContacts:{isArray:!1,method:"post",url:r.baseUrl+"cm/lists/:id/contacts"},getContacts:{isArray:!0,method:"get",url:r.baseUrl+"cm/lists/:id/contacts"},getContactsCsv:{isArray:!1,method:"get",url:r.baseUrl+"cm/lists/:id/contacts/csv",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}},addCustomField:{isArray:!1,method:"post",url:r.baseUrl+"cm/lists/:id/fields"},getCustomFields:{isArray:!1,method:"get",url:r.baseUrl+"cm/lists/:id/fields"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"cm/lists/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"cm/lists/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"cm/lists/:id/users"}}),r.voicePrefix=e(r.baseUrl+"voice/prefixes/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/prefixes/describe"},clone:{method:"post",url:r.baseUrl+"voice/prefixes/:id/clone",params:{includeAll:"@includeAll"}},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"voice/prefixes/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"voice/prefixes/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"voice/prefixes/:id/users"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"voice/prefixes/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"voice/prefixes/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"voice/prefixes/:id/teams"}}),r.userProfile=e(r.baseUrl+"userProfiles/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"userProfiles/describe"},clone:{method:"post",url:r.baseUrl+"userProfiles/:id/clone",params:{includeAll:"@includeAll"}},addSections:{isArray:!0,method:"post",url:r.baseUrl+"userProfiles/:id/sections"},removeSections:{isArray:!1,method:"delete",url:r.baseUrl+"userProfiles/:id/sections"},getSections:{isArray:!0,method:"get",url:r.baseUrl+"userProfiles/:id/sections"},addResources:{isArray:!0,method:"post",url:r.baseUrl+"userProfiles/:id/resources"},removeResources:{isArray:!1,method:"delete",url:r.baseUrl+"userProfiles/:id/resources"},getResources:{isArray:!1,method:"get",url:r.baseUrl+"userProfiles/:id/resources"}}),r.userProfileSection=e(r.baseUrl+"userProfile/sections/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"userProfile/sections/describe"},clone:{method:"post",url:r.baseUrl+"userProfile/sections/:id/clone",params:{includeAll:"@includeAll"}}}),r.userProfileResource=e(r.baseUrl+"userProfile/resources/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"userProfile/resources/describe"},clone:{method:"post",url:r.baseUrl+"userProfile/resources/:id/clone",params:{includeAll:"@includeAll"}}}),r.userNotification=e(r.baseUrl+"userNotifications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"userNotifications/describe"},clone:{method:"post",url:r.baseUrl+"userNotifications/:id/clone",params:{includeAll:"@includeAll"}},sendUserNotification:{isArray:!1,method:"post",url:r.baseUrl+"userNotifications/"}}),r.whatsappAccount=e(r.baseUrl+"whatsapp/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/accounts/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/accounts/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/accounts/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"whatsapp/accounts/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/accounts/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/accounts/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:r.baseUrl+"whatsapp/accounts/:id/canned_answers"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"whatsapp/accounts/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"whatsapp/accounts/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/accounts/:id/users"},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/accounts/:id/applications"},notify:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/accounts/:id/notify"},send:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/accounts/:id/send"}}),r.whatsappApplication=e(r.baseUrl+"whatsapp/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/applications/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/applications/:id/clone",params:{includeAll:"@includeAll"}}}),r.whatsappInteraction=e(r.baseUrl+"whatsapp/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/interactions/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/interactions/:id/clone",params:{includeAll:"@includeAll"}},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/interactions/:id/messages"},addTags:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:r.baseUrl+"whatsapp/interactions/:id/tags"},download:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.whatsappMessage=e(r.baseUrl+"whatsapp/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/messages/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:r.baseUrl+"whatsapp/messages/:id/accept"},reject:{isArray:!1,method:"put",url:r.baseUrl+"whatsapp/messages/:id/reject"},status:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/messages/:id/status"}}),r.whatsappQueueReport=e(r.baseUrl+"whatsapp/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/reports/queue/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),r.whatsappTransferReport=e(r.baseUrl+"whatsapp/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/reports/transfer/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),r.whatsappQueue=e(r.baseUrl+"whatsapp/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/queues/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/queues/:id/members"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"whatsapp/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"whatsapp/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"whatsapp/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"whatsapp/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/queues/:id/users"}}),r.cloudProvider=e(r.baseUrl+"cloudProviders/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cloudProviders/describe"},clone:{method:"post",url:r.baseUrl+"cloudProviders/:id/clone",params:{includeAll:"@includeAll"}}}),r.realtime=e(r.baseUrl+"realtime",{},{getAgents:{isArray:!1,method:"get",url:r.baseUrl+"realtime/agents"},getQueues:{isArray:!1,method:"get",url:r.baseUrl+"realtime/queues"}}),r}e.$inject=["$resource","userProfileManager"],angular.module("motion").factory("api",e)}(),function(){"use strict";function e(e,n){n.setConfig({position:"top-right",sound:!1,html:!0,theme:"material"}),e.useLoader("$translatePartialLoader",{urlTemplate:"{part}/i18n/{lang}.json"}),e.preferredLanguage("en"),e.fallbackLanguage("en"),e.useSanitizeValueStrategy(null)}e.$inject=["$translateProvider","toastyConfigProvider"],angular.module("motion").config(e)}(),function(){"use strict";angular.module("motion")}(),function(){"use strict";function e(e,n,t,a){var i=this;i.themes=e.themes,i.direction="ltr";var s=t.get("motion.language");s&&(n.use(s),0<=["ar","fa","he"].indexOf(s)&&a.setting.get({id:1}).$promise.then(function(e){e&&e.rtlSupport&&(i.direction="rtl")}).catch(function(e){e&&toasty.error({title:"Error",msg:e.data?e.data.message||e.message||e:e.message||e})}))}e.$inject=["motionTheming","$translate","$cookies","api"],angular.module("motion").controller("IndexController",e)}(),function(){"use strict";function e(a,i){return function(e){var n=new Date,t=new Date(e);return t.getDate()===n.getDate()&&t.getMonth()===n.getMonth()&&t.getFullYear()===n.getFullYear()?a("date")(t.getTime(),"shortTime"):t.getDate()===n.getDate()-1&&t.getMonth()===n.getMonth()&&t.getFullYear()===n.getFullYear()?i.instant("DASHBOARDS.YESTERDAY")+" "+a("date")(t.getTime(),"shortTime"):a("date")(t.getTime(),"MMM d, y h:mm a")}}function n(e){return{Today:e.instant("DASHBOARDS.TODAY"),Yesterday:e.instant("DASHBOARDS.YESTERDAY"),"This Week":e.instant("DASHBOARDS.THIS_WEEK"),"Last Week":e.instant("DASHBOARDS.LAST_WEEK"),"This Month":e.instant("DASHBOARDS.THIS_MONTH"),"Last Month":e.instant("DASHBOARDS.LAST_MONTH"),"This Year":e.instant("DASHBOARDS.THIS_YEAR"),"Last Year":e.instant("DASHBOARDS.LAST_YEAR"),January:e.instant("DASHBOARDS.JANUARY"),February:e.instant("DASHBOARDS.FEBRUARY"),March:e.instant("DASHBOARDS.MARCH"),April:e.instant("DASHBOARDS.APRIL"),May:e.instant("DASHBOARDS.MAY"),June:e.instant("DASHBOARDS.JUNE"),July:e.instant("DASHBOARDS.JULY"),August:e.instant("DASHBOARDS.AUGUST"),September:e.instant("DASHBOARDS.SEPTEMBER"),October:e.instant("DASHBOARDS.OCTOBER"),November:e.instant("DASHBOARDS.NOVEMBER"),December:e.instant("DASHBOARDS.DECEMBER"),Mon:e.instant("DASHBOARDS.MON"),Tue:e.instant("DASHBOARDS.TUE"),Wed:e.instant("DASHBOARDS.WED"),Thu:e.instant("DASHBOARDS.THU"),Fri:e.instant("DASHBOARDS.FRI"),Sat:e.instant("DASHBOARDS.SAT"),Sun:e.instant("DASHBOARDS.SUN")}}e.$inject=["$filter","$translate"],n.$inject=["$translate"],angular.module("motion").filter("limitObjectFromTo",function(){return function(e,n,t){var a,i={},s=0;for(a in e)if(t<=s&&(i[a]=e[a]),++s===t+n)break;return i}}).filter("formatdate",e).factory("IndexFactory",function(){var e=[{value:"jan"},{value:"feb"},{value:"mar"},{value:"apr"},{value:"may"},{value:"jun"},{value:"jul"},{value:"aug"},{value:"sep"},{value:"oct"},{value:"nov"},{value:"dec"}],n=[{value:"1"},{value:"2"},{value:"3"},{value:"4"},{value:"5"},{value:"6"},{value:"7"},{value:"8"},{value:"9"},{value:"10"},{value:"11"},{value:"12"}],t=[{value:"mon"},{value:"tue"},{value:"wed"},{value:"thu"},{value:"fri"},{value:"sat"},{value:"sun"}],a=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31];return{getMonthName:function(){return e},getMonthNumber:function(){return n},getDaysOfWeek:function(){return t},getDaysOfMonth:function(){return a}}}).factory("dateFilterLocalizationFactory",n).factory("jscookie",function(){return Cookies}).factory("Sequence",function(){return{enqueue:function(e){this.tail=this.tail?this.tail.finally(e):e()}}})}(),function(){"use strict";function e(e,n,t){var a;t.html5Mode(!0),n.otherwise("/dashboards/general"),angular.injector(["ngCookies"]).invoke(["$cookies",function(e){a=e}]);var i=a.get("motion.layoutStyle")||"verticalNavigation",s={verticalNavigation:{main:"app/core/layouts/vertical-navigation.html",toolbar:"app/toolbar/layouts/vertical-navigation/toolbar.html",navigation:"app/navigation/layouts/vertical-navigation/navigation.html",header:"app/header/layouts/vertical-navigation/header.html",footer:"app/footer/layouts/vertical-navigation/footer.html"},verticalNavigationFullwidthToolbar:{main:"app/core/layouts/vertical-navigation-fullwidth-toolbar.html",toolbar:"app/toolbar/layouts/vertical-navigation-fullwidth-toolbar/toolbar.html",navigation:"app/navigation/layouts/vertical-navigation/navigation.html"},verticalNavigationFullwidthToolbar2:{main:"app/core/layouts/vertical-navigation-fullwidth-toolbar-2.html",toolbar:"app/toolbar/layouts/vertical-navigation-fullwidth-toolbar-2/toolbar.html",navigation:"app/navigation/layouts/vertical-navigation-fullwidth-toolbar-2/navigation.html"},horizontalNavigation:{main:"app/core/layouts/horizontal-navigation.html",toolbar:"app/toolbar/layouts/horizontal-navigation/toolbar.html",navigation:"app/navigation/layouts/horizontal-navigation/navigation.html"},contentOnly:{main:"app/core/layouts/content-only.html",toolbar:"",navigation:""},contentWithToolbar:{main:"app/core/layouts/content-with-toolbar.html",toolbar:"app/toolbar/layouts/content-with-toolbar/toolbar.html",navigation:""}};e.state("app",{abstract:!0,views:{"main@":{templateUrl:s[i].main,controller:"MainController as vm"},"toolbar@app":{templateUrl:s[i].toolbar,controller:"ToolbarController as vm"},"navigation@app":{templateUrl:s[i].navigation,controller:"NavigationController as vm"},"quickPanel@app":{templateUrl:"app/quick-panel/quick-panel.html",controller:"QuickPanelController as vm"},"header@app":{templateUrl:s[i].header,controller:"HeaderController as vm"},"footer@app":{templateUrl:s[i].footer,controller:"FooterController as vm"}},resolve:{license:["apiResolver",function(e){return e.resolve("license@get")}],setting:["apiResolver","settingsManager",function(e,n){return e.resolve("setting@get",{id:1}).then(function(e){return n.set(e),e})}]}})}e.$inject=["$stateProvider","$urlRouterProvider","$locationProvider"],angular.module("motion").config(e)}(),function(){"use strict";function e(e,n){e.onStart({},n.showLoadingIndicator),e.onFinish({},n.hideLoadingIndicator)}e.$inject=["$transitions","LoadingIndicatorService"],angular.module("motion").run(e)}(),function(){"use strict";function e(a,e){var i,o={};function s(){a.$broadcast("socket:connect"),i&&i.connected||(i=io({query:e.getCurrentUser()?"id="+e.getCurrentUser().id:void 0,transports:["websocket","polling"]})).once("disconnect",n)}function n(e){i.once("connect",s),"logout"===e?i.removeAllListeners():a.$broadcast("socket:disconnect"),i&&i.connected&&i.disconnect()}function r(e,n,t){o[e]||(o[e]=[]),o[e].push({wrapper:n,fn:t})}return{connect:s,disconnect:n,getListeners:function(e){return e?o[e]:o},on:function(e,n){n=n||angular.noop,i||s();var t=function(){var e=arguments;a.$applyAsync(function(){n.apply(i,e)})};r(e,t,n),i.on(e,t)},onWithoutApply:function(e,n){n=n||angular.noop,i||s();var t=function(){n.apply(i,arguments)};r(e,t,n),i.on(e,t)},emit:function(e,n,t){t=t||angular.noop,i||s(),i.emit(e,n,function(){var e=arguments;a.$applyAsync(function(){t.apply(i,e)})})},removeAllListeners:function(e){var n;i||s(),i.removeAllListeners(e),n=e,_.isEmpty(o[n])||delete o[n]},removeListener:function(e,n){i||s();var t=function(e,n){var t=o[e];if(!_.isEmpty(t))for(var a=0;a<t.length;a++){var i=t[a];if(i.fn===n){var s=i.wrapper;return t.splice(a,1),s}}}(e,n);i.removeListener(e,t)}}}e.$inject=["$rootScope","Auth"],angular.module("motion").factory("socket",e)}(),function(){"use strict";function e(n,t,e,a,i,s,o,r){var l=this;l.progresslogin=!1,l.googleSsoEnabled=!1,l.login=function(){return l.progresslogin=!0,l.message="",s.login(l.form).then(function(){return n.go("app.dashboards.general")}).catch(function(e){l.message=e.data?e.data.message:e.message}).finally(function(){l.progresslogin=!1})},l.loginOauth=function(e){l.message="",t.location.href=s.loginSSO(e)},l.onInit=function(){{if(n.params.token&&n.params.userId)return s.removeCookies(),l.progresslogin=!0,o.secureCookieEnabled?r.set("motion.token",res.token,{secure:!0,sameSite:"none"}):r.set("motion.token",res.token),i.user.get({id:n.params.userId}).$promise.then(function(e){e&&(s.setCurrentUser(e),n.go("app.dashboards.general"))}).finally(function(){l.progresslogin=!1});s.isLoggedIn()&&n.go("app.dashboards.general")}l.googleSsoEnabled=o.googleSsoEnabled},l.onInit()}e.$inject=["$state","$window","$cookies","$timeout","api","Auth","setting","jscookie"],angular.module("app.login").controller("LoginController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="ANALYTICS.EDIT_EXTRACTEDREPORT",g.extractedReport=angular.copy(l),g.extractedReports=r,g.newExtractedReport=!1,g.extractedReport||(g.extractedReport={},g.title="ANALYTICS.NEW_EXTRACTEDREPORT",g.newExtractedReport=!0),g.addNewExtractedReport=function(){g.errors=[],d.analyticExtractedReport.save(g.extractedReport).$promise.then(function(e){g.extractedReports.unshift(e.toJSON()),o.success({title:"ExtractedReport properly created",msg:g.extractedReport.name?g.extractedReport.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticExtractedReport.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticExtractedReport.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveExtractedReport=function(){g.errors=[],d.analyticExtractedReport.update({id:g.extractedReport.id},g.extractedReport).$promise.then(function(e){var n=_.find(g.extractedReports,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ExtractedReport properly saved!",msg:g.extractedReport.name?g.extractedReport.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticExtractedReport.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticExtractedReport.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteExtractedReport=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The extractedReport will be deleted.").ariaLabel("Delete ExtractedReport").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.analyticExtractedReport.delete({id:g.extractedReport.id}).$promise.then(function(){_.remove(g.extractedReports,{id:g.extractedReport.id}),o.success({title:"ExtractedReport properly deleted!",msg:(g.extractedReport.name||"extractedReport")+" has been deleted!"}),v(g.extractedReport)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticExtractedReport.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticExtractedReport.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","extractedReports","extractedReport","api","Auth","license","setting","crudPermissions"],angular.module("app.analytics").controller("CreateOrEditExtractedReportDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.extractedReports=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="extractedReports",f.listOrder="",f.listOrderAsc=null,f.selectedExtractedReports=[],f.query={fields:"createdAt,updatedAt,id,name,basename,savename,type,startDate,endDate,status,output,reportId,reportType",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditExtractedReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/extractedReports/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{extractedReport:e,extractedReports:f.extractedReports.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.downloadfile2=function(s,e){return m.analyticExtractedReport.download({id:s.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s.savename;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticExtractedReport.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("extractedReport")+"?").htmlContent("<b>"+(e.name||"extractedReport")+"</b> will be deleted.").ariaLabel("delete extractedReport").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getExtractedReports=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.analyticExtractedReport.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ExtractedReports",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditExtractedReport=function(e,n){i.show({controller:"CreateOrEditExtractedReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/extractedReports/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{extractedReport:n,extractedReports:f.extractedReports.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteExtractedReport=y,f.exportSelectedExtractedReports=function(){var e=angular.copy(f.selectedExtractedReports);return f.selectedExtractedReports=[],e},f.deleteSelectedExtractedReports=function(e){var n=i.confirm().title("Are you sure want to delete the selected extractedReports?").htmlContent("<b>"+f.selectedExtractedReports.length+" selected</b> will be deleted.").ariaLabel("delete ExtractedReports").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedExtractedReports.forEach(function(e){y(e)}),f.selectedExtractedReports=[]})},f.deselectExtractedReports=function(){f.selectedExtractedReports=[]},f.selectAllExtractedReports=function(){f.selectedExtractedReports=f.extractedReports.rows};var b=!0,A=1;function E(e){f.extractedReports=e||{count:0,rows:[]}}function y(e){m.analyticExtractedReport.delete({id:e.id}).$promise.then(function(){_.remove(f.extractedReports.rows,{id:e.id}),f.extractedReports.count-=1,f.extractedReports.rows.length||f.getExtractedReports(),p.success({title:_.startCase("ExtractedReport")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEanalyticExtractedReport"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEanalyticExtractedReport",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getExtractedReports())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","extractedReports","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.analytics").controller("ExtractedReportsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="ANALYTICS.EDIT_METRIC",g.metric=angular.copy(l),g.metrics=r,g.newMetric=!1,g.metric||(g.metric={table:"report_agent"},g.title="ANALYTICS.NEW_METRIC",g.newMetric=!0),g.addNewMetric=function(){g.errors=[],d.analyticMetric.save(g.metric).$promise.then(function(e){g.metrics.unshift(e.toJSON()),o.success({title:"Metric properly created",msg:g.metric.name?g.metric.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticMetric.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticMetric.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveMetric=function(){g.errors=[],d.analyticMetric.update({id:g.metric.id},g.metric).$promise.then(function(e){var n=_.find(g.metrics,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Metric properly saved!",msg:g.metric.name?g.metric.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticMetric.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticMetric.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteMetric=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The metric will be deleted.").ariaLabel("Delete Metric").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.analyticMetric.delete({id:g.metric.id}).$promise.then(function(){_.remove(g.metrics,{id:g.metric.id}),o.success({title:"Metric properly deleted!",msg:(g.metric.name||"metric")+" has been deleted!"}),v(g.metric)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticMetric.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticMetric.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","metrics","metric","api","Auth","license","setting","crudPermissions"],angular.module("app.analytics").controller("CreateOrEditMetricDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.metrics=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="metrics",f.listOrder="",f.listOrderAsc=null,f.selectedMetrics=[],f.query={fields:"createdAt,updatedAt,id,name,table,metric,description",sort:"-updatedAt",limit:10,page:1},f.arraytable=_.keyBy([{option:"Agent Report",value:"'report_agent'"},{option:"Call Report",value:"'report_call'"},{option:"CDR",value:"'cdr'"},{option:"Chat Website",value:"'chat_websites'"},{option:"Chat Interaction",value:"'chat_interactions'"},{option:"Chat Messages",value:"'chat_messages'"},{option:"Chat Offline Messages",value:"'chat_offline_messages'"},{option:"Chat Queues",value:"'chat_queues'"},{option:"Chat Report Queue",value:"'report_chat_queue'"},{option:"Chat Report Transfer",value:"'report_chat_transfer'"},{option:"Companies",value:"'cm_companies'"},{option:"Call transfer report",value:"'report_call_transfer'"},{option:"Contacts",value:"'cm_contacts'"},{option:"CSquare Report",value:"'report_square'"},{option:"CSquare Details Report",value:"'report_square_details'"},{option:"Dial Report",value:"'report_dial'"},{option:"Dialer Hopper Processing",value:"'cm_hopper'"},{option:"Dialer Hopper Logs",value:"'cm_hopper_history'"},{option:"Dialer Hopper Final",value:"'cm_hopper_final'"},{option:"Email Account",value:"'mail_accounts'"},{option:"Email Interaction",value:"'mail_interactions'"},{option:"Email Messages",value:"'mail_messages'"},{option:"Email Queues",value:"'mail_queues'"},{option:"Email Report Queue",value:"'report_mail_queue'"},{option:"Email Report Transfer",value:"'report_mail_transfer'"},{option:"Fax Account",value:"'fax_accounts'"},{option:"Fax Interaction",value:"'fax_interactions'"},{option:"Fax Messages",value:"'fax_messages'"},{option:"Fax Queues",value:"'fax_queues'"},{option:"Fax Report Queue",value:"'report_fax_queue'"},{option:"Fax Report Transfer",value:"'report_fax_transfer'"},{option:"Jscripty Sessions",value:"'report_jscripty_sessions'"},{option:"Jscripty Questions",value:"'report_jscripty_questions'"},{option:"Jscripty Answers",value:"'report_jscripty_answers'"},{option:"Lists",value:"'cm_lists'"},{option:"Member Report",value:"'report_member'"},{option:"Openchannel Account",value:"'openchannel_accounts'"},{option:"Openchannel Interaction",value:"'openchannel_interactions'"},{option:"Openchannel Messages",value:"'openchannel_messages'"},{option:"Openchannel Queues",value:"'openchannel_queues'"},{option:"Openchannel Report Queue",value:"'report_openchannel_queue'"},{option:"Openchannel Report Transfer",value:"'report_openchannel_transfer'"},{option:"Queue Report",value:"'report_queue'"},{option:"SMS Account",value:"'sms_accounts'"},{option:"SMS Interaction",value:"'sms_interactions'"},{option:"SMS Messages",value:"'sms_messages'"},{option:"SMS Queues",value:"'sms_queues'"},{option:"SMS Report Queue",value:"'report_sms_queue'"},{option:"SMS Report Transfer",value:"'report_sms_transfer'"},{option:"Users",value:"'users'"},{option:"Voice Recordings",value:"'voice_recordings'"},{option:"Whatsapp Account",value:"'whatsapp_accounts'"},{option:"Whatsapp Interaction",value:"'whatsapp_interactions'"},{option:"Whatsapp Messages",value:"'whatsapp_messages'"},{option:"Whatsapp Queues",value:"'whatsapp_queues'"},{option:"Whatsapp Report Queue",value:"'report_whatsapp_queue'"},{option:"Whatsapp Report Transfer",value:"'report_whatsapp_transfer'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editdialog=function(e,n){i.show({controller:"CreateOrEditMetricDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/metrics/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{metric:e,metrics:f.metrics.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("metric")+"?").htmlContent("<b>"+(e.name||"metric")+"</b> will be deleted.").ariaLabel("delete metric").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getMetrics=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.analyticMetric.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Metrics",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditMetric=function(e,n){i.show({controller:"CreateOrEditMetricDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/metrics/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{metric:n,metrics:f.metrics.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteMetric=y,f.exportSelectedMetrics=function(){var e=angular.copy(f.selectedMetrics);return f.selectedMetrics=[],e},f.deleteSelectedMetrics=function(e){var n=i.confirm().title("Are you sure want to delete the selected metrics?").htmlContent("<b>"+f.selectedMetrics.length+" selected</b> will be deleted.").ariaLabel("delete Metrics").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedMetrics.forEach(function(e){y(e)}),f.selectedMetrics=[]})},f.deselectMetrics=function(){f.selectedMetrics=[]},f.selectAllMetrics=function(){f.selectedMetrics=f.metrics.rows};var b=!0,A=1;function E(e){f.metrics=e||{count:0,rows:[]}}function y(e){m.analyticMetric.delete({id:e.id}).$promise.then(function(){_.remove(f.metrics.rows,{id:e.id}),f.metrics.count-=1,f.metrics.rows.length||f.getMetrics(),p.success({title:_.startCase("Metric")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEanalyticMetric"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEanalyticMetric",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getMetrics())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","metrics","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.analytics").controller("MetricsController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o){var r=this;function l(){n.hide()}r.errors=[],r.report=angular.copy(t),r.report.name+="-copy",r.treeCustomData=o,r.treeCustomConfig={core:{multiple:!1,animation:!0,error:function(e){console.error("treeCtrl: error from js tree - "+angular.toJson(e))},check_callback:!0,worker:!0},version:1,plugins:["wholerow"]},r.treeCustomEvents={select_node:function(e,n){r.currentNode=n.node}},r.copyReport=function(){var t;r.errors=[],i.analyticCustomReport.save({name:r.report.name,description:r.report.description,table:r.report.table,conditions:r.report.conditions,joins:r.report.joins,parent:r.currentNode.id}).$promise.then(function(e){t=e,a.success({title:"Report properly copied!",msg:r.report.name?r.report.name+" has been copied!":""});var n={fields:"field,alias,function,format,groupBy,orderBy,custom,MetricId",nolimit:!0};return n["analyticCustomReport"===s?"CustomReportId":"DefaultReportId"]=r.report.id,i.analyticFieldReport.get(n).$promise}).then(function(e){var e=_.map(e.rows,function(e){return _.extend({},e,{CustomReportId:t.id})});return i.analyticFieldReport.bulkCreate(e).$promise}).then(function(){a.success({title:"Fields copied!",msg:"Fields has been copied!"}),l()}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:COPYREPORT",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$location","$mdDialog","toasty","report","api","apiName","treeCustomData"],angular.module("app.analytics").controller("CopyReportDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;function m(){n.hide()}c.errors=[],c.joinTables=[],c.title="ANALYTICS.EDIT_REPORT",c.crudPermissions=d,c.report=angular.copy(i),c.reports=a,c.newReport=!1,c.tables=l.getMap(),c.joinTypes=[{key:"join",value:"Join"},{key:"left_join",value:"Left Join"},{key:"right_join",value:"Right Join"},{key:"cross_join",value:"Cross Join"}],c.report||(c.report={name:"",table:"report_agent",description:"",parent:r.id},c.title="ANALYTICS.NEW_REPORT",c.newReport=!0),c.addNewReport=function(){c.errors=[],c.report.joins=_.map(c.joinTables||[],function(e){return{parentKey:e.parentKey,foreignTable:e.name,foreignKey:e.foreignKey,type:e.type.toLowerCase()}}),c.report.joins=JSON.stringify(c.report.joins),s[o].save(c.report).$promise.then(function(e){c.reports.unshift(e),t.success({title:"Report properly created",msg:c.report.name?c.report.name+" has been created!":""}),m()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.analyticReport.save"}];for(var n=0;n<e.data.errors.length;n++)t.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticReport.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.saveReport=function(){c.errors=[],s[o].update({id:c.report.id},c.report).$promise.then(function(e){var n=_.find(c.reports,{id:e.id});n&&_.merge(n,e),t.success({title:"Report properly saved!",msg:c.report.name?c.report.name+" has been saved!":""}),m()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.analyticReport.update"}];for(var n=0;n<e.data.errors.length;n++)t.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticReport.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.deleteReport=function(){c.errors=[];var e=n.confirm().title("Are you sure?").content("The report will be deleted.").ariaLabel("Delete Report").ok("Delete").cancel("Cancel").targetEvent(event);n.show(e).then(function(){s[o].delete({id:c.report.id}).$promise.then(function(){_.remove(c.reports,{id:c.report.id}),t.success({title:"Report properly deleted!",msg:c.report.name?c.report.name+" has been deleted!":""}),m()}).catch(function(e){c.errors=e.data.errors||[{message:e.toString(),type:"api.analyticReport.delete"}]})},function(){})},c.closeDialog=m,c.selectedTableChange=function(e){e&&(delete c.selectedItem,c.joinTables.push(e))},c.removeJoin=function(e){c.joinTables.splice(e,1)},c.getFields=function(n,t,e){var a=_.find(c.tables,{name:e});a&&a.api&&s[a.api].describe().$promise.then(function(e){n[t]=_.difference(_.keys(e),["$promise","$resolved"])}).catch(function(e){console.error(e)})}}e.$inject=["$location","$mdDialog","toasty","reports","report","api","apiName","currentNode","describeTable","crudPermissions"],angular.module("app.analytics").controller("CreateOrEditReportDialogController",e)}(),function(){"use strict";function e(i,s,o,e){var r=this;r.report={},r.conditions=e.getConditions,r.init=function(e,n){r.report=e,r.report.condition=angular.fromJson(e.conditions)||{group:{operator:"AND",rules:[]}},r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1};for(var t=0;t<r.report.condition.group.rules.length;t++)if(r.report.condition.group.rules[t].field){var a=r.report.condition.group.rules[t].field.split(".");1===a.length&&(r.report.condition.group.rules[t].field=r.report.table+"."+r.report.condition.group.rules[t].field)}s.getColumns(r.report.table).then(function(e){r.columns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt"])}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DESCRIBE",msg:e.data?JSON.stringify(e.data):e.toString()})})},r.addCondition=function(e){e.unshift({condition:"=",field:"",value:""})},r.addGroup=function(e){e.push({group:{operator:"AND",rules:[]}})},r.deleteConfirm=function(e,n,t){var a=i.confirm().title("Are you sure want to delete the item?").htmlContent("The item will be deleted.").ariaLabel("delete item").targetEvent(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){e.splice(n,1)},function(){console.log("CANCEL")})},r.isValueByCondition=function(e){return!_.includes(["IS NULL","IS NOT NULL","IS EMPTY","IS NOT EMPTY"],e)}}e.$inject=["$mdDialog","describeTable","toasty","sqlUtil"],angular.module("app.analytics").controller("ReportConditionsController",e)}(),function(){"use strict";function e(a){var i={report_call_transfer:"voiceTransferReport",cm_companies:"cmCompany",cm_contacts:"cmContact",cm_hopper:"cmHopper",cm_hopper_final:"cmHopperFinal",cm_hopper_history:"cmHopperHistory",cm_lists:"cmList",chat_websites:"chatWebsite",chat_queues:"chatQueue",chat_interactions:"chatInteraction",chat_messages:"chatMessage",chat_offline_messages:"chatOfflineMessage",report_chat_queue:"chatQueueReport",report_chat_transfer:"chatTransferReport",mail_accounts:"mailAccount",mail_queues:"mailQueue",mail_interactions:"mailInteraction",mail_messages:"mailMessage",report_mail_queue:"mailQueueReport",report_mail_transfer:"mailTransferReport",openchannel_accounts:"openchannelAccount",openchannel_queues:"openchannelQueue",openchannel_interactions:"openchannelInteraction",openchannel_messages:"openchannelMessage",report_openchannel_queue:"openchannelQueueReport",report_openchannel_transfer:"openchannelTransferReport",sms_accounts:"smsAccount",sms_queues:"smsQueue",sms_interactions:"smsInteraction",sms_messages:"smsMessage",report_sms_queue:"smsQueueReport",report_sms_transfer:"smsTransferReport",fax_accounts:"faxAccount",fax_queues:"faxQueue",fax_interactions:"faxInteraction",fax_messages:"faxMessage",report_fax_transfer:"faxTransferReport",report_fax_queue:"faxQueueReport",report_call:"voiceCallReport",report_agent:"voiceAgentReport",report_square:"squareReport",report_member:"memberReport",report_queue:"voiceQueueReport",report_square_details:"squareReportDetail",report_dial:"voiceDialReport",report_jscripty_sessions:"jscriptySessionReport",report_jscripty_questions:"jscriptyQuestionReport",report_jscripty_answers:"jscriptyAnswerReport",users:"user",voice_recordings:"voiceRecording",cdr:"cdr",whatsapp_accounts:"whatsappAccount",whatsapp_queues:"whatsappQueue",whatsapp_interactions:"whatsappInteraction",whatsapp_messages:"whatsappMessage",report_whatsapp_queue:"whatsappQueueReport",report_whatsapp_transfer:"whatsappTransferReport"};return{getMap:function(){var t=[];return _.forIn(i,function(e,n){t.push({name:n,api:e})}),t},getColumns:function(e){var n=i[e],t={};return"cm_contacts"===e&&(t.analytics=!0),a[n].describe(t).$promise}}}e.$inject=["api"],angular.module("app.analytics").factory("describeTable",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;(u.errors=[],u.title="Edit Report Field",u.report=i,u.reportField=angular.copy(o),u.reportFields=s,u.metrics=r,u.columns=l,u.sqlUtil=d,u.newReportField=!1,u.crudPermissions=m,u.reportField)?(u.reportField.type=u.reportField.custom?"custom":u.reportField.MetricId?"metric":"column",u.reportField.field&&!u.reportField.custom&&_.isNil(u.reportField.MetricId)&&1===u.reportField.field.split(".").length&&(u.reportField.field=u.report.table+"."+u.reportField.field)):(u.reportField={type:"column",function:null,format:null,groupBy:!1,orderBy:null},u.title="New Report Field",u.newReportField=!0);function p(){t.hide()}u.addNewReportField=function(){u.errors=[],u.reportField.custom="custom"===u.reportField.type,u.reportField.MetricId="metric"===u.reportField.type?u.reportField.MetricId:null,u.reportField.CustomReportId=u.report.id,c.analyticFieldReport.save(u.reportField).$promise.then(function(e){u.reportFields.push(e),a.success({title:"Report field properly created",msg:u.reportField.field?u.reportField.field+" has been created!":u.reportField.type+" has been created!"}),p()}).catch(function(e){u.errors=e.data.errors||[{message:e.toString(),type:"api.analyticFieldReport.save"}]})},u.saveReportField=function(){u.errors=[],u.reportField.custom="custom"===u.reportField.type,u.reportField.MetricId="metric"===u.reportField.type?u.reportField.MetricId:null,c.analyticFieldReport.update({id:u.reportField.id},u.reportField).$promise.then(function(e){var n=_.find(u.reportFields,{id:e.id});n&&_.merge(n,e),a.success({title:"Report Field properly saved!",msg:u.reportField.field?u.reportField.field+" has been saved!":""}),p()}).catch(function(e){u.errors=e.data.errors||[{message:e.toString(),type:"api.analyticFieldReport.update"}]})},u.deleteReportField=function(e){u.errors=[];var n=t.confirm().title("Are you sure?").content("The field will be deleted.").ariaLabel("Delete Report").ok("Delete").cancel("Cancel").targetEvent(e);t.show(n).then(function(){c.analyticFieldReport.delete({id:u.reportField.id}).$promise.then(function(){_.remove(u.reportFields,{id:u.reportField.id}),a.success({title:"Report Field properly deleted!",msg:u.reportField.field?u.reportField.field+" has been deleted!":""}),p()}).catch(function(e){u.errors=e.data.errors||[{message:e.toString(),type:"api.analyticReportField.delete"}]})},function(){})},u.closeDialog=p}e.$inject=["$scope","$location","$mdDialog","toasty","report","reportFields","reportField","metrics","columns","sqlUtil","api","crudPermissions"],angular.module("app.analytics").controller("CreateOrEditReportFieldDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;c.report={},c.reportFields={count:0,rows:[]},c.functions=_.keyBy(l.getFunctions,"value"),c.formats=_.keyBy(l.getFormats,"value"),c.groupBy=_.keyBy(l.getGroupBy,"value"),c.orderBy=_.keyBy(l.getOrderBy,"value"),c.selectedReportFields=[],c.query={fields:"createdAt,updatedAt,id,field,alias,function,format,groupBy,orderBy,custom,MetricId",nolimit:!0},c.sortableTable={animation:100,onSort:function(e){o.analyticFieldReport.addFields({id:c.report.id},e.models).$promise.then(function(e){c.reportFields.rows=e}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ADDFIELDS"})})}},c.init=function(e,n){c.report=e,c.query.CustomReportId=c.report.id,c.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},c.sortableTable.disabled=!c.crudPermissions.canEdit,r.getColumns(c.report.table).then(function(e){return c.columns=_.difference(_.keys(e),["$promise","$resolved"]),o.analyticMetric.get({fields:"id,name,metric,table",nolimit:!0}).$promise}).then(function(e){c.metrics=e.rows}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DESCRIBE",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.getReportFields()},c.deleteConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>"+e.field+"</b> will be deleted.").ariaLabel("delete field").targetEvent(n).ok("OK").cancel("CANCEL");a.show(t).then(function(){p(e)},function(){console.log("CANCEL")})},c.success=u,c.getReportFields=function(){c.promise=o.analyticFieldReport.get(c.query,u).$promise},c.createOrEditReportField=function(e,n){a.show({controller:"CreateOrEditReportFieldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/edit/field/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{report:c.report,reportField:n,reportFields:c.reportFields.rows,metrics:c.metrics,columns:c.columns,setting:null,crudPermissions:c.crudPermissions}})},c.deleteReportField=p,c.deleteSelectedReportFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+c.selectedReportFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){c.selectedReportFields.forEach(function(e){p(e)}),c.selectedReportFields=[]})},c.getMetricName=function(e){var n=_.find(c.metrics,{id:e});return n?n.name:d.instant("ANALYTICS.NO_METRIC_FOUND")},c.getMetricValue=function(e){var n=_.find(c.metrics,{id:e});return n?n.metric:d.instant("ANALYTICS.NO_METRIC_FOUND")};var m=!0;function u(e){c.reportFields=e||{count:0,rows:[]}}function p(e){o.analyticFieldReport.delete({id:e.id}).$promise.then(function(){c.selectedReportFields=[],_.remove(c.reportFields.rows,{id:e.id}),c.reportFields.count-=1,c.reportFields.rows.length||c.getReportFields(),s.success({title:"Field deleted!",msg:e.field?e.field+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}n.$watch("vm_rf.query.filter",function(e,n){m?t(function(){m=!1}):c.getReportFields()})}e.$inject=["$cookies","$scope","$timeout","$mdDialog","$document","toasty","api","describeTable","sqlUtil","$translate"],angular.module("app.analytics").controller("ReportFieldsController",e)}(),function(){"use strict";angular.module("app.analytics").factory("sqlUtil",function(){return{getFunctions:[{value:"SUM",option:function(e){return"SUM ("+e+")"}},{value:"COUNT",option:function(e){return"COUNT ("+e+")"}},{value:"COUNT DISTINCT",option:function(e){return"COUNT (DISTINCT "+e+")"}},{value:"MAX",option:function(e){return"MAX ("+e+")"}},{value:"MIN",option:function(e){return"MIN ("+e+")"}},{value:"AVG",option:function(e){return"AVG ("+e+")"}},{value:"GROUP_CONCAT",option:function(e){return"GROUP_CONCAT ("+e+")"}},{value:"GROUP_CONCAT ASC",option:function(e){return"GROUP_CONCAT ("+e+" ORDER BY "+e+" ASC)"}},{value:"GROUP_CONCAT DESC",option:function(e){return"GROUP_CONCAT ("+e+" ORDER BY "+e+" DESC)"}}],getFormats:[{value:"SEC_TO_TIME",option:function(e){return"SEC_TO_TIME ("+e+")"}},{value:"DATE",option:function(e){return"DATE ("+e+")"}},{value:"HOUR",option:function(e){return"HOUR ("+e+")"}},{value:"ROUND",option:function(e){return"ROUND ("+e+")"}},{value:"UNIX_TIMESTAMP",option:function(e){return"UNIX_TIMESTAMP ("+e+")"}}],getGroupBy:[{value:!1,option:function(){return"No"}},{value:!0,option:function(e){return"GROUP BY "+e}}],getOrderBy:[{value:"ASC",option:function(e){return"ORDER BY "+e+" ASC"}},{value:"DESC",option:function(e){return"ORDER BY "+e+" DESC"}}],getConditions:["=","!=","<","<=",">",">=","LIKE","NOT LIKE","IS NULL","IS NOT NULL","IS EMPTY","IS NOT EMPTY"]}})}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this;function r(e){return _.isArray(e)}o.report=a||{},o.userProfileSection=s&&1==s.count?s.rows[0]:null,o.crudPermissions=i.parseCrudPermissions(o.userProfileSection?o.userProfileSection.crudPermissions:null),o.selectedTab=e.params.tab||0,o.gotoReports=function(){e.go("app.analytics.reports",{},{reload:"app.analytics.reports"})},o.saveReport=function(){o.report.conditions=angular.toJson(o.report.condition),t.analyticCustomReport.update({id:o.report.id},_.omit(o.report,"joins")).$promise.then(function(){n.success({title:"Report updated!",msg:o.report.name?o.report.name+" has been updated!":""})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETreport",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.previewReport=function(){o.columns=[],o.rows=[],o.error=!1,t.analyticFieldReport.get({fields:"field,alias",nolimit:!0,CustomReportId:o.report.id}).$promise.then(function(e){return o.columns=e?e.rows:[],t.analyticCustomReport.preview({id:o.report.id}).$promise}).then(function(e){o.rows=e}).catch(function(e){console.log(e),o.error={title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:analyticFieldReport",msg:e.data?e.data.message:e.toString(),sql:e.data&&e.data.parent?e.data.parent.sql:"NO QUERY"},n.error(o.error)})},o.queryReport=function(){return o.queryResult="Loading...",t.analyticCustomReport.query({id:o.report.id}).$promise.then(function(e){o.queryResult=e.sql}).catch(function(e){o.queryResult="",console.log(e),o.error={title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:analyticFieldReport",msg:e.data?e.data.message:e.toString(),sql:e.data&&e.data.parent?e.data.parent.sql:"NO QUERY"},n.error(o.error)})},o.mapArray=function(e,n){if(r(e))return _.map(e,n).join(",");return""},o.isArray=r,o.valueReplacer=function(e,n){moment(n,"YYYY-MM-DDTHH:mm:ssZ",!0).isValid()&&(n=moment(n,"").format("YYYY-MM-DD HH:mm:ss"));return n}}e.$inject=["$state","toasty","api","report","Auth","userProfileSection"],angular.module("app.analytics").controller("ReportController",e)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this;o.errors=[],o.report=angular.copy(a),o.valueReplacer=function(e,n){moment(n,"YYYY-MM-DDTHH:mm:ssZ",!0).isValid()&&(n=moment(n,"").format("YYYY-MM-DD HH:mm:ss"));return n},o.closeDialog=function(){n.hide()},function(){o.columns=[],o.rows=[],o.error=!1;var e={fields:"field,alias",nolimit:!0};e["analyticCustomReport"===s?"CustomReportId":"DefaultReportId"]=o.report.id,o.promise=i.analyticFieldReport.get(e).$promise.then(function(e){return o.columns=e?e.rows:[],i[s].preview({id:o.report.id}).$promise}).then(function(e){o.rows=e}).catch(function(e){console.log(e),o.error={title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:analyticFieldReport",msg:e.data?e.data.message:e.toString(),sql:e.data&&e.data.parent?e.data.parent.sql:"NO QUERY"},t.error(o.error)})}()}e.$inject=["$location","$mdDialog","toasty","report","api","apiName"],angular.module("app.analytics").controller("PreviewReportDialogController",e)}(),function(){"use strict";function e(e,t,a,i,s,o,n,r,l,d,c,m,u){var p=this;p.currentUser=u.getCurrentUser(),p.reports={count:0,rows:[]},p.userProfile=r,p.userProfileSection=l&&1==l.count?l.rows[0]:null,p.crudPermissions=u.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.selectedReports=[],p.query={fields:"createdAt,updatedAt,id,name,description,table,parent,conditions,joins",limit:10,page:1,sort:"-updatedAt"},p.apiName=null,p.currentPath="",p.customTree=!0,p.editstate=function(e,n){s.go("app.analytics.reports.edit",{id:e.id,crudPermissions:p.crudPermissions})},p.copydialog=function(e,n){i.show({controller:"CopyReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/copy/dialog.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{report:e,apiName:p.apiName,treeCustomData:p.treeCustomInstance.jstree(!0).get_json("#")}}).finally(function(){})},p.previewdialog=function(e,n){i.show({controller:"PreviewReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/preview/dialog.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{report:e,apiName:p.apiName}})},p.rundialog=function(e,n){i.show({controller:"RunReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/run/dialog.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{report:e,apiName:p.apiName,currentPath:p.currentPath}})},p.downloadfile=function(a,e){var i;d.analyticMetric.get({fields:"id,name,metric,table",nolimit:!0}).$promise.then(function(e){i=_.keyBy(e.rows,"id");var n={fields:"field,alias,function,format,groupBy,orderBy,custom,MetricId",nolimit:!0};return n["analyticCustomReport"===p.apiName?"CustomReportId":"DefaultReportId"]=a.id,d.analyticFieldReport.get(n).$promise}).then(function(e){for(var n=0;n<e.rows.length;n+=1)e.rows[n].MetricId&&(e.rows[n].field=i[e.rows[n].MetricId].metric,e.rows[n].custom=!0),delete e.rows[n].MetricId;var t=o.document.createElement("a");t.href="data:text/json;charset=utf-8,"+o.encodeURIComponent(angular.toJson({name:a.name,description:a.description,table:a.table,conditions:a.conditions,joins:a.joins,fields:e.rows})),t.download=a.name+".json",t.target="_self",t.click(),m.success({title:"Report downloaded!",msg:a.name?a.name+" has been downloaded!":""})}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DOWNLOADJSON",msg:e.data?JSON.stringify(e.data):e.toString()})})},p.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the report?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete report").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){b(e)},function(){console.log("CANCEL")})},p.success=h,p.getReports=f,p.createOrEditReport=function(e,n){i.show({controller:"CreateOrEditReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{report:n,reports:p.reports.rows,apiName:p.apiName,currentNode:p.currentNode,setting:null,crudPermissions:p.crudPermissions}})},p.importReport=function(e,n,t){if("application/json"===e.file.type){var a=new FileReader;a.onload=function(e){console.log(e.target.result);try{var t=atob(e.target.result.split(",")[1]);t=angular.fromJson(t),d.analyticCustomReport.save({name:t.name,description:t.description,table:t.table,conditions:t.conditions,joins:t.joins,parent:p.currentNode.id}).$promise.then(function(n){p.reports.rows.unshift(n),m.success({title:"Report saved!",msg:n.name?n.name+" has been saved!":""});var e=_.map(t.fields,function(e){return _.extend({},e,{CustomReportId:n.id})});return d.analyticFieldReport.bulkCreate(e).$promise}).then(function(e){m.success({title:"Fields saved!",msg:"Fields has been saved!"})}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETanalyticReport",msg:e.data?JSON.stringify(e.data):e.toString()})})}catch(e){console.error(e),m.error({title:"Decode File Error",msg:e.toString()})}},a.readAsDataURL(e.file)}else m.error({title:"Format Error",msg:"Please use only json files"})},p.deleteReport=b,p.exportSelectedReports=function(){var e=angular.copy(p.selectedReports);return p.selectedReports=[],e},p.deleteSelectedReports=function(e){var n=i.confirm().title("Are you sure want to delete the selected reports?").htmlContent("<b>"+p.selectedReports.length+" selected</b> will be deleted.").ariaLabel("delete Reports").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){p.selectedReports.forEach(function(e){b(e)}),p.selectedReports=[]})},p.deselectReports=function(){p.selectedReports=[]},p.selectAllReports=function(){p.selectedReports=p.reports.rows},p.treeDefaultData=c.rows[0]?angular.fromJson(c.rows[0].tree):[],p.treeCustomData=c.rows[1]?angular.fromJson(c.rows[1].tree):[],p.treeDefaultConfig=S(!1),p.treeCustomConfig=S(!0),p.treeDefaultEvents=T(!1),p.treeCustomEvents=T(!0);var g=!0,v=1;function h(e){p.reports=e||{count:0,rows:[]}}function f(){if(p.query.offset=(p.query.page-1)*p.query.limit,p.apiName)if("admin"===p.currentUser.role||p.userProfileSection.autoAssociation)p.promise=d[p.apiName].get(p.query,h).$promise;else{var a=[];p.promise=d[p.apiName].get(p.query).$promise.then(function(e){return 0<(a=e&&e.rows?e.rows:[]).length?d.userProfileResource.get({sectionId:p.userProfileSection.id,type:"analyticDefaultReport"===p.apiName?"DefaultReports":"CustomReports"}).$promise.then(function(e){var n=e&&e.rows?e.rows:[];if(0<n.length){var t=[];return a.forEach(function(e){_.find(n,["resourceId",e.id])&&t.push(e)}),h({count:t.length,rows:t})}return h(null)}):h(null)})}}function b(e){p.apiName&&d[p.apiName].delete({id:e.id}).$promise.then(function(){_.remove(p.reports.rows,{id:e.id}),p.reports.count-=1,p.reports.rows.length||p.getReports(),m.success({title:"Report deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.analyticreport.delete"}];for(var n=0;n<e.data.errors.length;n++)m.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticreport.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function A(e,n){p.treeDefaultInstance.jstree(!0).deselect_all(),p.treeDefaultInstance.jstree(!0).close_all(),p.currentNode=n.node,p.currentNode.custom=!0,p.currentPath=p.treeCustomInstance.jstree(!0).get_path(p.currentNode).join("/ "),p.apiName="analyticCustomReport",p.query.parent=n.node.id,f()}function E(e,n){p.treeCustomInstance.jstree(!0).deselect_all(),p.treeCustomInstance.jstree(!0).close_all(),p.currentNode=n.node,p.currentNode.custom=!1,p.currentPath=p.treeDefaultInstance.jstree(!0).get_path(p.currentNode).join("/ "),p.apiName="analyticDefaultReport",p.query.parent=n.node.id,f()}function y(e,n){var t=angular.toJson(p.treeCustomInstance.jstree(!0).get_json("#"));d.analyticTreeReport.update({id:2,tree:t}).$promise.then(function(){c.rows[1]&&(c.rows[1].tree=t),m.success({title:"Node Updated",msg:n.node.text?n.node.text+" has been updated!":"Node has been updated!"})}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEanalyticTreeReport",msg:e.data?JSON.stringify(e.data):e.toString()})})}function S(e){return{core:{multiple:!1,animation:!0,error:function(e){console.error("treeCtrl: error from js tree - "+angular.toJson(e))},check_callback:!0,worker:!0},version:1,plugins:e?["contextmenu","dnd","search","state","wholerow"]:["search","state","wholerow"],contextmenu:{items:function(t){var e={};return p.crudPermissions.canEdit&&_.assign(e,{create:{label:n.instant("ANALYTICS.CREATE"),action:function(){t=p.treeCustomInstance.jstree(!0).create_node(t),p.treeCustomInstance.jstree(!0).edit(t)}},rename:{_disabled:"#"===t.parent,label:n.instant("ANALYTICS.RENAME"),action:function(){p.treeCustomInstance.jstree(!0).edit(t)}}}),p.crudPermissions.canDelete&&_.assign(e,{remove:{_disabled:"#"===t.parent,label:n.instant("ANALYTICS.REMOVE"),action:function(){var e=i.confirm().title("Are you sure want to delete the node?").htmlContent("<b>"+(t.text?t.text:"Node")+"</b> and its subnode will be deleted.").ariaLabel("delete node").ok("OK").cancel("CANCEL");i.show(e).then(function(){var e,n=p.treeCustomInstance.jstree(!0).get_parent(t);n=p.treeCustomInstance.jstree(!0).get_node(n),p.treeCustomInstance.jstree(!0).delete_node(t),e=[t.id].concat(t.children_d||[]),d.analyticCustomReport.get({parent:e.join(","),fields:"id,name"}).$promise.then(function(e){e&&e.rows&&e.rows.forEach(function(e){b(e)})}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEreportsByParents",msg:e.data?JSON.stringify(e.data):e.toString()})}),p.treeCustomInstance.jstree(!0).select_node(n)})}}}),e}}}}function T(e){return e?{create_node:y,rename_node:y,move_node:y,delete_node:y,select_node:A}:{select_node:E}}e.$watch("vm.query.filter",function(e,n){g?t(function(){g=!1}):(n||(v=p.query.page),e!==n&&(p.query.page=1),e||(p.query.page=v),p.getReports())}),e.$watch("vm.search",function(e,n){p.treeDefaultInstance&&p.treeDefaultInstance.jstree(!0).search(e),p.treeCustomInstance&&p.treeCustomInstance.jstree(!0).search(e)})}e.$inject=["$scope","$timeout","$document","$mdDialog","$state","$window","$translate","userProfile","userProfileSection","api","treeReports","toasty","Auth"],angular.module("app.analytics").controller("ReportsController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r){var l=this;function d(){l.export={id:l.report.id,name:l.report.name,startDate:new Date(moment().startOf("day")),endDate:new Date(moment().endOf("day")),output:"xlsx",fullPath:r?r+"/"+l.report.name:l.report.name}}function c(){t.hide()}l.errors=[],l.report=angular.copy(n),l.export={},l.runReport=function(n){l.errors=[],l.exportDate=_.assign({},l.export,{startDate:moment(l.export.startDate).format("YYYY-MM-DD HH:mm:ss"),endDate:moment(l.export.endDate).format("YYYY-MM-DD HH:mm:ss")}),i[s].run(l.exportDate).$promise.then(function(e){"web"===l.export.output?t.show({controller:"WebReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/run/web/dialog.html",parent:angular.element(o.body),targetEvent:n,skipHide:!0,locals:{apiName:s,exportDate:l.exportDate,results:e},resolve:{columns:["apiResolver",function(e){var n={fields:"field,alias",nolimit:!0};return n["analyticCustomReport"===s?"CustomReportId":"DefaultReportId"]=l.report.id,e.resolve("analyticFieldReport@get",n)}]}}):(a.success({title:"Report properly run!",msg:l.report.name?l.report.name+" has been run!":""}),c())}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DESCRIBE",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},l.closeDialog=c,(l.refreshDate=d)()}e.$inject=["$location","$mdDialog","toasty","report","api","apiName","$document","currentPath"],angular.module("app.analytics").controller("RunReportDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o){var r=this;function l(e){r.results=e||{count:0,rows:[]}}r.errors=[],r.columns=a?a.rows:[],r.results=i||{rows:[],count:0},r.query={limit:10,page:1},r.closeDialog=function(){e.hide()},r.getResults=function(){o.offset=(r.query.page-1)*r.query.limit,o.limit=r.query.limit,r.promise=t[s].run(o,l).$promise},r.valueReplacer=function(e,n){moment(n,"YYYY-MM-DDTHH:mm:ssZ",!0).isValid()&&(n=moment(n,"").format("YYYY-MM-DD HH:mm:ss"));return n}}e.$inject=["$mdDialog","toasty","api","columns","results","apiName","exportDate"],angular.module("app.analytics").controller("WebReportDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CALLYSQUARE.EDIT_ODBC",g.odbc=angular.copy(l),g.odbcs=r,g.newOdbc=!1,g.odbc||(g.odbc={},g.title="CALLYSQUARE.NEW_ODBC",g.newOdbc=!0),g.addNewOdbc=function(){g.errors=[],d.squareOdbc.save(g.odbc).$promise.then(function(e){g.odbcs.unshift(e.toJSON()),o.success({title:"Odbc properly created",msg:g.odbc.name?g.odbc.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.squareOdbc.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareOdbc.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveOdbc=function(){g.errors=[],d.squareOdbc.update({id:g.odbc.id},g.odbc).$promise.then(function(e){var n=_.find(g.odbcs,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Odbc properly saved!",msg:g.odbc.name?g.odbc.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.squareOdbc.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareOdbc.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteOdbc=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The odbc will be deleted.").ariaLabel("Delete Odbc").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.squareOdbc.delete({id:g.odbc.id}).$promise.then(function(){_.remove(g.odbcs,{id:g.odbc.id}),o.success({title:"Odbc properly deleted!",msg:(g.odbc.name||"odbc")+" has been deleted!"}),v(g.odbc)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.squareOdbc.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareOdbc.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","odbcs","odbc","api","Auth","license","setting","crudPermissions"],angular.module("app.callysquare").controller("CreateOrEditOdbcDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.odbcs=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="odbcs",f.listOrder="",f.listOrderAsc=null,f.selectedODBC=[],f.query={fields:"createdAt,updatedAt,id,name,dsn,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditOdbcDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/odbcs/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{odbc:e,odbcs:f.odbcs.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.testtestOdbc=function(e,n){return m.squareOdbc.test({id:e.id}).$promise.then(function(){p.success({title:"Square ODBC properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"Square ODBC properly tested",msg:e.data?JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("odbc")+"?").htmlContent("<b>"+(e.name||"odbc")+"</b> will be deleted.").ariaLabel("delete odbc").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getODBC=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.squareOdbc.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ODBC",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditOdbc=function(e,n){i.show({controller:"CreateOrEditOdbcDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/odbcs/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{odbc:n,odbcs:f.odbcs.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteOdbc=y,f.exportSelectedODBC=function(){var e=angular.copy(f.selectedODBC);return f.selectedODBC=[],e},f.deleteSelectedODBC=function(e){var n=i.confirm().title("Are you sure want to delete the selected odbcs?").htmlContent("<b>"+f.selectedODBC.length+" selected</b> will be deleted.").ariaLabel("delete Odbcs").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedODBC.forEach(function(e){y(e)}),f.selectedODBC=[]})},f.deselectODBC=function(){f.selectedODBC=[]},f.selectAllODBC=function(){f.selectedODBC=f.odbcs.rows};var b=!0,A=1;function E(e){f.odbcs=e||{count:0,rows:[]}}function y(e){m.squareOdbc.delete({id:e.id}).$promise.then(function(){_.remove(f.odbcs.rows,{id:e.id}),f.odbcs.count-=1,f.odbcs.rows.length||f.getODBC(),p.success({title:_.startCase("Odbc")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsquareOdbc"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEsquareOdbc",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getODBC())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","odbcs","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.callysquare").controller("OdbcsController",e)}(),function(){"use strict";function e(n,t,a,i,s,e,o,r,l,d){var c=this;function m(e){n.hide(e)}c.errors=[],c.title="CALLYSQUARE.EDIT_PROJECT",c.crudPermissions=d,c.project=angular.copy(o),c.newWindow=!0,c.projects=e,c.newProject=!1,c.openFromEditor=l,c.project||(c.project={name:"",description:""},c.title="CALLYSQUARE.NEW_PROJECT",c.newProject=!0),c.addNewProject=function(){c.errors=[],r.squareProject.save(c.project).$promise.then(function(e){return r.user.addSquareProjects({id:i.getCurrentUser().id,ids:[e.id]}).$promise,e}).then(function(e){c.projects.unshift(e),s.success({title:"Project properly created",msg:c.project.name?c.project.name+" has been created!":""}),m(e),c.openFromEditor&&(c.newWindow?t.open("/callysquare/projects/"+e.id,"_blank"):a.go("app.callysquare.projects.edit",{id:e.id}))}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.save"}];for(var n=0;n<e.data.errors.length;n++)s.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareProject.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.saveProject=function(){c.errors=[],r.squareProject.update({id:c.project.id},c.project).$promise.then(function(e){var n=_.find(c.projects,{id:e.id});n&&_.merge(n,e),s.success({title:"Project properly saved!",msg:c.project.name?c.project.name+" has been saved!":""}),m(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.update"}];for(var n=0;n<e.data.errors.length;n++)s.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareProject.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.deleteProject=function(){c.errors=[];var e=n.confirm().title("Are you sure?").content("The project will be deleted.").ariaLabel("Delete Project").ok("Delete").cancel("Cancel").targetEvent(event);n.show(e).then(function(){r.squareProject.delete({id:c.project.id}).$promise.then(function(){return r.squareProject.getUsers({id:c.project.id}).$promise}).then(function(e){for(var n=[],t=e.rows,a=0;a<t.length;a++)n.push(r.user.removeSquareProjects({id:i.getCurrentUser().id,ids:[c.project.id]}).$promise);return $q.all(n)}).then(function(){_.remove(c.projects,{id:c.project.id}),s.success({title:"Project properly deleted!",msg:c.project.name?c.project.name+" has been deleted!":""}),m(c.project)}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.delete"}]})},function(){})},c.closeDialog=m}e.$inject=["$mdDialog","$window","$state","Auth","toasty","projects","project","api","openFromEditor","crudPermissions"],angular.module("app.callysquare").controller("CreateOrEditSquareProjectDialogController",e)}(),function(){"use strict";function e(n,t,a,e,i,s,o,r,l,d,c,m,u,p,g,v,h,f,b,A,E,y,S,T,I,C,O,w,R,x,N,D){var P=this,L={playback:["file_id"],answer:["timeout"],menu:["file_id","digit","response","retry"],getdigits:["file_id","variable_id","mindigit","maxdigit","retry"],getsecretdigits:["file_id","variable_id","mindigit","maxdigit","hiddendigitsnum","retry"],vswitch:["variable_id"],database:["odbc_id","query"],ext_dial:["trunk_name","phone","timeout"],set:["variable_id"],math:["variable_id"],gotoc:["context","extension","priority"],system:["command"],agi:["command"],gotoif:["condition"],saydigits:["digits"],saynumber:["number"],sayphonetic:["text"],record:["file","timeout"],goal:["goalname"],dial:["sip_id","timeout"],queue:["queue_id","timeout"],callback:["list_id","name","phone","delay"],gotoiftime:["interval_id"],voicemail:["mailbox"],subproject:["project_id"],sendSMS:["sms_account_id","to","sms_text"],sendMail:["account_id","to"],sendFax:["account_id","to","attachment_path"],google_cloud_tts:["apiKey","google_cloud_tts_text_type","text"],tts:["text"],ispeechtts:["text","key","speed"],ispeechasr:["key","timeout"],custom_app:["application"],googleasr:["key","timeout"],awspolly:["aws_access_key_id","aws_secret_access_key","text","aws_text_type"],lumenvoxtts:["text"],sestektts:["text"],lumenvoxasr:["grammar"],sestekasr:["grammar"],tildeasr:["appid","appsecret","uri"],login:["findBy"],pause:["findBy","pause_id"],unpause:["findBy"],logout:["findBy"],dialogflow:["key","text","dialogflow_language"],awslex:["aws_access_key_id","aws_secret_access_key","aws_lex_region","aws_bot_name","text"],sesteknda:["text","ndauth_url","username","password","ndassistant_url"],restapi:["url","method"],mrcpsynth:["text"],mrcprecog:["grammar"],dialogflowV2:["dialogflowV2_project_id","client_email","private_key","dialogflowV2_language","text"]},k={queue:["file_id"],database:["variable_id"],pause:["pause_id"]},M={sendMail:["to","cc","bcc"],voicemail:["mailbox"]};function U(e,n,t,a){return _.map(e,function(e){return{value:e[n],option:e[t],group:a?e[a]:void 0,canSelect:void 0===e.canSelect||e.canSelect}})}function F(){var e=Number(_.find(P.attributes,{name:"sip_id"}).value);if(!_.some(d,{id:e})&&0<e)return t.user.get({id:e,fields:"id,fullname,role"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,d.push(n),P.values.sip_id=U(d,"id","fullname","role")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_USER",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.sip_id=U(d,"id","fullname","role")}function $(){var e=Number(_.find(P.attributes,{name:"list_id"}).value);if(!_.some(E,{id:e})&&0<e)return t.cmList.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,E.push(n),P.values.list_id=U(E,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_LIST",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.list_id=U(E,"id","name")}function q(){var e=Number(_.find(P.attributes,{name:"trunk_id"}).value);if(!_.some(c,{id:e})&&0<e)return t.trunk.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,c.push(n),P.values.trunk_id=U(c,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_TRUNK",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.trunk_id=U(c,"id","name")}function G(){var e=_.find(P.attributes,{name:"trunk_name"}).value;if(!_.some(c,{name:e})&&e)return t.trunk.get({name:e,fields:"id,name"}).$promise.then(function(e){if(0<e.count&&0<e.rows.length){var n=e.rows[0];n.canSelect=!1,c.push(n),P.values.trunk_name=U(c,"name","name")}}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_TRUNK",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.trunk_name=U(c,"name","name")}function H(){var e=Number(_.find(P.attributes,{name:"queue_id"}).value);if(!_.some(m,{id:e})&&0<e)return t.voiceQueue.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,m.push(n),P.values.queue_id=U(m,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_QUEUE",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.queue_id=U(m,"id","name")}function V(){var e=Number(_.find(P.attributes,{name:"file_id"}).value);if(!_.some(u,{id:e})&&0<e)return t.sound.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,u.push(n),P.values.file_id=U(u,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_SOUND",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.file_id=U(u,"id","name")}function B(){var e=Number(_.find(P.attributes,{name:"variable_id"}).value);if(!_.some(p,{id:e})&&0<e)return t.variable.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,p.push(n),P.values.variable_id=U(p,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_VARIABLE",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.variable_id=U(p,"id","name")}function Q(){var e=Number(_.find(P.attributes,{name:"odbc_id"}).value);if(!_.some(g,{id:e})&&0<e)return t.squareOdbc.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,g.push(n),P.values.odbc_id=U(g,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_ODBC",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.odbc_id=U(g,"id","name")}function W(){var e=Number(_.find(P.attributes,{name:"project_id"}).value);if(!_.some(v,{id:e})&&0<e)return t.squareProject.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,v.push(n),P.values.project_id=U(v,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_PROJECT",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.project_id=U(v,"id","name")}function j(){var e=Number(_.find(P.attributes,{name:"context"}).value);if(!_.some(h,{id:e})&&0<e)return t.voiceContext.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,h.push(n),P.values.context=U(h,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_CONTEXT",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.context=U(h,"id","name")}function Y(){var e=Number(_.find(P.attributes,{name:"interval_id"}).value);if(!_.some(f,{id:e})&&0<e)return t.interval.get({id:e,fields:"id,name,IntervalId"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,f.push(n),P.values.interval_id=U(f,"id","name","IntervalId")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_INTERVAL",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.interval_id=U(f,"id","name","IntervalId")}function z(){var e=Number(_.find(P.attributes,{name:"account_id"}).value);if(!_.some(b,{id:e})&&0<e)return t.mailAccount.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,b.push(n),P.values.account_id=U(b,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_MAIL_ACCOUNT",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.account_id=U(b,"id","name")}function J(){var e=Number(_.find(P.attributes,{name:"sms_account_id"}).value);if(!_.some(C,{id:e})&&0<e)return t.smsAccount.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,C.push(n),P.values.sms_account_id=U(C,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_SMS_ACCOUNT",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.sms_account_id=U(C,"id","name")}function K(){var e=Number(_.find(P.attributes,{name:"template_id"}).value);if(!_.some(A,{id:e})&&0<e)return t.template.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,A.push(n),P.values.template_id=U(A,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_TEMPLATE",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.template_id=U(A,"id","name")}function X(){var e=Number(_.find(P.attributes,{name:"pause_id"}).value);if(!_.some(O,{id:e})&&0<e)return t.pause.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,O.push(n),P.values.pause_id=U(O,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_PAUSE",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.pause_id=U(O,"id","name")}P.cellName=y.tagName,P.attributes=_.map(y.attributes,function(e){return{name:e.name,value:e.value,defaultValue:k[P.cellName]&&_.includes(k[P.cellName],e.name),required:L[P.cellName]&&_.includes(L[P.cellName],e.name),help:M[P.cellName]&&_.includes(M[P.cellName],e.name)}}),P.values={authMethod:[{value:"noauth",option:"NO AUTH"},{value:"hmac",option:"HMAC"}],answer:[{value:"yes",option:"Yes"},{value:"no",option:"No"}],ndagenerate_audio:[{value:1,option:"Yes"},{value:0,option:"No"}],ndaactivity_type:[{value:"message",option:"Message"},{value:"conversationUpdate",option:"Conversation Update"},{value:"contactRelationUpdate",option:"Contact Relation Update"},{value:"endOfConversation",option:"End of Conversation"}],hiddendigitspos:[{value:"first",option:"First"},{value:"last",option:"Last"}],recordingFormat:[{value:"wav",option:"Wav"},{value:"gsm",option:"Gsm"}],intkey:[{value:"#",option:"#"},{value:"*",option:"*"}],beep:[{value:"BEEP",option:"Yes"},{value:"NOBEEP",option:"No"}],model:e,ispeech_asr_language:i,ispeech_tts_language:o,languageCode:r,ssmlGender:[{value:"FEMALE",option:"Female"},{value:"MALE",option:"Male"}],google_tts_language:l,google_asr_language:s,google_cloud_tts_text_type:[{value:"text",option:"Text"},{value:"ssml",option:"SSML"}],aws_polly_region:I,aws_polly_voice:T,aws_text_type:[{value:"text",option:"Text"},{value:"ssml",option:"SSML"}],callback_priority:[{option:"Highest",value:4},{option:"High",value:3},{option:"Medium",value:2},{option:"Low",value:1},{option:"Lowest",value:0}],findBy:[{value:"internal",option:"Internal"},{value:"phone",option:"Phone"},{value:"mobile",option:"Mobile"}],dialogflow_language:w,dialogflowV2_language:R,aws_lex_region:x,method:[{value:"GET",option:"GET"},{value:"POST",option:"POST"},{value:"PUT",option:"PUT"},{value:"DELETE",option:"DELETE"}]},P.crudPermissions=D,P.onInit=function(){N.hasRole("admin")?(e={sip_id:U(d,"id","fullname","role"),trunk_name:U(c,"name","name"),trunk_id:U(c,"id","name"),queue_id:U(m,"id","name"),file_id:U(u,"id","name"),variable_id:U(p,"id","name"),odbc_id:U(g,"id","name"),project_id:U(v,"id","name"),context:U(h,"id","name"),interval_id:(t=f,a="id",i="name",s="IntervalId",o=_.filter(t,function(e){return null===e[s]}),r=[],_.forEach(o,function(n){r.push({value:n[a],option:n[i]});var e=_.filter(t,function(e){return e[s]===n.id});_.forEach(e,function(e){r.push({value:e[a],option:" - "+e[i]})})}),r),account_id:U(b,"id","name"),template_id:U(A,"id","name"),list_id:U(E,"id","name"),sms_account_id:U(C,"id","name"),pause_id:U(O,"id","name")},n=_.merge(P.values,e),P.values=n):function(){for(var e=["sip_id","trunk_name","trunk_id","queue_id","file_id","variable_id","odbc_id","project_id","context","interval_id","account_id","template_id","list_id","sms_account_id","pause_id"],n=0;n<P.attributes.length;n++)if(_.includes(e,P.attributes[n].name))switch(P.attributes[n].name){case"sip_id":F();break;case"trunk_name":G();break;case"trunk_id":q();break;case"queue_id":H();break;case"file_id":V();break;case"variable_id":B();break;case"odbc_id":Q();break;case"project_id":W();break;case"context":j();break;case"interval_id":Y();break;case"account_id":z();break;case"template_id":K();break;case"list_id":$();break;case"sms_account_id":J();break;case"pause_id":X()}}();var e,n,t,a,i,s,o,r},P.closeDialog=function(e){e&&S(P.attributes),n.hide()},P.getMap=U}e.$inject=["$mdDialog","api","toasty","ispeechAsrModel","ispeechAsrLanguage","googleAsrLanguage","ispeechTtsLanguage","googleCloudTtslanguageCode","googleTtsLanguage","users","trunks","queues","sounds","variables","databases","projects","contexts","intervals","mailAccounts","templates","lists","cell","saveCallback","awsPollyVoice","awsPollyRegion","smsAccounts","pauses","dialogFlowLanguage","dialogFlowV2Language","awsLexRegion","Auth","crudPermissions"],angular.module("app.callysquare").controller("MxGraphDialogController",e)}(),function(){"use strict";angular.module("app.callysquare").directive("stringToNumber",function(){return{require:"ngModel",link:function(e,n,t,a){a.$parsers.push(function(e){return""+e}),a.$formatters.push(function(e){return parseFloat(e)})}}})}(),function(){"use strict";angular.module("app.callysquare").factory("ispeechAsrModel",function(){return[{value:"0",option:"Default"},{value:"date",option:"Date"},{value:"usmoney",option:"US Money"},{value:"numbersto9",option:"Numbers to 9"},{value:"numbersto99",option:"Numbers to 99"},{value:"numbersto999",option:"Numbers to 999"},{value:"time",option:"Time"},{value:"phonenumber",option:"Phone number"},{value:"streets",option:"Streets"},{value:"citystate",option:"US City/States"}]}).factory("ispeechAsrLanguage",function(){return[{value:"en-US",option:"English (US)"},{value:"en-CA",option:"English (Canada)"},{value:"en-GB",option:"English (UK)"},{value:"en-AU",option:"English (Australia)"},{value:"es-ES",option:"Spanish (Spain)"},{value:"es-MX",option:"Spanish (Mexico)"},{value:"it-IT",option:"Italian (Italy) / Finnish (Finland)"},{value:"fr-FR",option:"German (Germany)"},{value:"fr-CA",option:"French (Canada)"},{value:"pl-PL",option:"Polish (Poland)"},{value:"pt-PT",option:"Portuguese (Portugal)"},{value:"ca-ES",option:"Catalan (Catalan)"},{value:"zh-TW",option:"Chinese (Taiwan)"},{value:"da-DK",option:"Danish (Denmark)"},{value:"ja-JP",option:"Japanese (Japan)"},{value:"ko-KR",option:"Korean (Korea)"},{value:"nl-NL",option:"Dutch (Netherlands)"},{value:"nb-NO",option:"Norwegian (Norway)"},{value:"pt-BR",option:"Portuguese (Brazil)"},{value:"ru-RU",option:"Russian (Russia)"},{value:"sv-SE",option:"Swedish (Sweden)"},{value:"zh-CN",option:"Chinese (China)"},{value:"zh-HK",option:"Chinese (Hong Kong)"}]}).factory("ispeechTtsLanguage",function(){return[{value:"usenglishfemale",option:"US English Female"},{value:"usenglishmale",option:"US English Male"},{value:"ukenglishfemale",option:"UK English Female"},{value:"ukenglishmale",option:"UK English Male"},{value:"auenglishfemale",option:"Australian English"},{value:"usspanishfemale",option:"US Spanish Female"},{value:"usspanishmale",option:"US Spanish Male"},{value:"chchinesefemale",option:"Chinese Female"},{value:"chchinesemale",option:"Chinese Male"},{value:"hkchinesefemale",option:"Hong Kong Cantonese Female"},{value:"twchinesefemale",option:"Taiwan Chinese Female"},{value:"jpjapanesefemale",option:"Japanese Female"},{value:"jpjapanesemale",option:"Japanese Male"},{value:"krkoreanfemale",option:"Korean Female"},{value:"krkoreanmale",option:"Korean Male"},{value:"caenglishfemale",option:"Canadian English Female"},{value:"huhungarianfemale",option:"Hungarian Female"},{value:"brportuguesefemale",option:"Brazilian Portuguese Female"},{value:"eurportuguesefemale",option:"European Portuguese Female"},{value:"eurportuguesemale",option:"European Portuguese Male"},{value:"eurspanishfemale",option:"European Spanish Female"},{value:"eurspanishmale",option:"European Spanish Male"},{value:"eurcatalanfemale",option:"European Catalan Female"},{value:"eurczechfemale",option:"European Czech Female"},{value:"eurdanishfemale",option:"European Danish Female"},{value:"eurfinnishfemale",option:"European Finnish Female"},{value:"eurfrenchfemale",option:"European French Female"},{value:"eurfrenchmale",option:"European French Male"},{value:"eurnorwegianfemale",option:"European Norwegian Female"},{value:"eurdutchfemale",option:"European Dutch Female"},{value:"eurpolishfemale",option:"European Polish Female"},{value:"euritalianfemale",option:"European Italian Female"},{value:"euritalianmale",option:"European Italian Male"},{value:"eurturkishfemale",option:"European Turkish Female"},{value:"eurturkishmale",option:"European Turkish Male"},{value:"eurgermanfemale",option:"European German Female"},{value:"eurgermanmale",option:"European German Male"},{value:"rurussianfemale",option:"Russian Female"},{value:"rurussianmale",option:"Russian Male"},{value:"swswedishfemale",option:"Swedish Female"},{value:"cafrenchfemale",option:"Canadian French Female"},{value:"cafrenchmale",option:"Canadian French Male"}]}).factory("googleCloudTtslanguageCode",function(){return[{value:"af-ZA",option:"Afrikaans (South Africa)"},{value:"ar-XA",option:"Arabic"},{value:"bn-IN",option:"Bengali (India)"},{value:"bg-BG",option:"Bulgarian (Bulgaria)"},{value:"ca-ES",option:"Catalan (Spain)"},{value:"yue-HK",option:"Chinese (Hong Kong)"},{value:"cs-CZ",option:"Czech (Czech Republic)"},{value:"da-DK",option:"Danish (Denmark)"},{value:"nl-BE",option:"Dutch (Belgium)"},{value:"nl-NL",option:"Dutch (Netherlands)"},{value:"en-AU",option:"English (Australian)"},{value:"en-IN",option:"English (India)"},{value:"en-GB",option:"English (UK)"},{value:"en-US",option:"English (US)"},{value:"fi-FI",option:"Finnish (Finland)"},{value:"fil-PH",option:"Filipino (Philippines)"},{value:"fr-CA",option:"French (Canada)"},{value:"fr-FR",option:"French (France)"},{value:"de-DE",option:"German (Germany)"},{value:"el-GR",option:"Greek (Greece)"},{value:"gu-IN",option:"Gujarati (India)"},{value:"hi-IN",option:"Hindi (India)"},{value:"hu-HU",option:"Hungarian (Hungary)"},{value:"is-IS",option:"Icelandic (Iceland)"},{value:"id-ID",option:"Indonesian (Indonesia)"},{value:"it-IT",option:"Italian (Italy)"},{value:"ja-JP",option:"Japanese (Japan)"},{value:"kn-IN",option:"Kannada (India)"},{value:"ko-KR",option:"Korean (South Korea)"},{value:"lv-LV",option:"Latvian (Latvia)"},{value:"ms-MY",option:"Malay (Malaysia)"},{value:"ml-IN",option:"Malayalam (India)"},{value:"cmn-CN",option:"Mandarin Chinese"},{value:"nb-NO",option:"Norwegian (Norway)"},{value:"pl-PL",option:"Polish (Poland)"},{value:"pt-BR",option:"Portuguese (Brazil)"},{value:"pt-PT",option:"Portuguese (Portugal)"},{value:"ro-RO",option:"Romanian (Romania)"},{value:"ru-RU",option:"Russian (Russia)"},{value:"sr-RS",option:"Serbian (Cyrillic)"},{value:"sk-SK",option:"Slovak (Slovakia)"},{value:"es-ES",option:"Spanish (Spain)"},{value:"es-US",option:"Spanish (US)"},{value:"sv-SE",option:"Swedish (Sweden)"},{value:"ta-IN",option:"Tamil (India)"},{value:"te-IN",option:"Telugu (India)\t"},{value:"th-TH",option:"Thai (Thailand)"},{value:"tr-TR",option:"Turkish (Turkey)"},{value:"uk-UA",option:"Ukrainian (Ukraine)"},{value:"vi-VN",option:"Vietnamese (Vietnam)"}]}).factory("googleTtsLanguage",function(){return[{value:"af",option:"Afrikaans"},{value:"sq",option:"Albanian"},{value:"am",option:"Amharic"},{value:"ar",option:"Arabic"},{value:"hy",option:"Armenian"},{value:"az",option:"Azerbaijani"},{value:"eu",option:"Basque"},{value:"be",option:"Belarusian"},{value:"bn",option:"Bengali"},{value:"bh",option:"Bihari"},{value:"bs",option:"Bosnian"},{value:"br",option:"Breton"},{value:"bg",option:"Bulgarian"},{value:"km",option:"Cambodian"},{value:"ca",option:"Catalan"},{value:"zh-CN",option:"Chinese (Simplified)"},{value:"zh-TW",option:"Chinese (Traditional)"},{value:"co",option:"Corsican"},{value:"hr",option:"Croatian"},{value:"cs",option:"Czech"},{value:"da",option:"Danish"},{value:"nl",option:"Dutch"},{value:"en",option:"English"},{value:"eo",option:"Esperanto"},{value:"et",option:"Estonian"},{value:"fo",option:"Faroese"},{value:"tl",option:"Filipino"},{value:"fi",option:"Finnish"},{value:"fr",option:"French"},{value:"fy",option:"Frisian"},{value:"gl",option:"Galician"},{value:"ka",option:"Georgian"},{value:"de",option:"German"},{value:"el",option:"Greek"},{value:"gn",option:"Guarani"},{value:"gu",option:"Gujarati"},{value:"xx-hacker",option:"Hacker"},{value:"ha",option:"Hausa"},{value:"iw",option:"Hebrew"},{value:"hi",option:"Hindi"},{value:"hu",option:"Hungarian"},{value:"is",option:"Icelandic"},{value:"id",option:"Indonesian"},{value:"ia",option:"Interlingua"},{value:"ga",option:"Irish"},{value:"it",option:"Italian"},{value:"jw",option:"Javanese"},{value:"ja",option:"Japanese"},{value:"kn",option:"Kannada"},{value:"kk",option:"Kazakh"},{value:"rw",option:"Kinyarwanda"},{value:"rn",option:"Kirundi"},{value:"xx-klingon",option:"Klingon"},{value:"ku",option:"Kurdish"},{value:"ko",option:"Korean"},{value:"ky",option:"Kyrgyz"},{value:"lo",option:"Laothian"},{value:"la",option:"Latin"},{value:"lv",option:"Latvian"},{value:"ln",option:"Lingala"},{value:"lt",option:"Lithuanian"},{value:"mk",option:"Macedonian"},{value:"mg",option:"Malagasy"},{value:"ml",option:"Malayalam"},{value:"mt",option:"Maltese"},{value:"mi",option:"Maori"},{value:"mr",option:"Marathi"},{value:"mo",option:"Moldavian"},{value:"mn",option:"Mongolian"},{value:"sr-ME",option:"Montenegrin"},{value:"ne",option:"Nepali"},{value:"no",option:"Norwegian"},{value:"nn",option:"Norwegian (Nynorsk)"},{value:"oc",option:"Occitan"},{value:"or",option:"Oriya"},{value:"om",option:"Oromo"},{value:"ps",option:"Pashto"},{value:"fa",option:"Persian"},{value:"xx-pirate",option:"Pirate"},{value:"pl",option:"Polish"},{value:"pt-BR",option:"Portuguese (Brazil)"},{value:"pt-PT",option:"Portuguese (Portugal)"},{value:"pa",option:"Punjabi"},{value:"qu",option:"Quechua"},{value:"ro",option:"Romanian"},{value:"rm",option:"Romansh"},{value:"ru",option:"Russian"},{value:"gd",option:"Scots Gaelic"},{value:"sr",option:"Serbian"},{value:"sh",option:"Serbo-Croatian"},{value:"st",option:"Sesotho"},{value:"sn",option:"Shona"},{value:"sd",option:"Sindhi"},{value:"si",option:"Sinhalese"},{value:"sk",option:"Slovak"},{value:"sl",option:"Slovenian"},{value:"so",option:"Somali"},{value:"es",option:"Spanish"},{value:"su",option:"Sundanese"},{value:"sw",option:"Swahili"},{value:"sv",option:"Swedish"},{value:"tg",option:"Tajik"},{value:"ta",option:"Tamil"},{value:"tt",option:"Tatar"},{value:"te",option:"Telugu"},{value:"th",option:"Thai"},{value:"ti",option:"Tigrinya"},{value:"to",option:"Tonga"},{value:"tr",option:"Turkish"},{value:"tk",option:"Turkmen"},{value:"tw",option:"Twi"},{value:"ug",option:"Uighur"},{value:"uk",option:"Ukrainian"},{value:"ur",option:"Urdu"},{value:"uz",option:"Uzbek"},{value:"vi",option:"Vietnamese"},{value:"cy",option:"Welsh"},{value:"xh",option:"Xhosa"},{value:"yi",option:"Yiddish"},{value:"yo",option:"Yoruba"},{value:"zu",option:"Zulu"}]}).factory("googleAsrLanguage",function(){return[{option:"Afrikaans (South Africa)",value:"af-ZA"},{option:"Albanian (Albania)",value:"sq-AL"},{option:"Amharic (Ethiopia)",value:"am-ET"},{option:"Arabic (Algeria)",value:"ar-DZ"},{option:"Arabic (Bahrain)",value:"ar-BH"},{option:"Arabic (Egypt)",value:"ar-EG"},{option:"Arabic (Iraq)",value:"ar-IQ"},{option:"Arabic (Israel)",value:"ar-IL"},{option:"Arabic (Jordan)",value:"ar-JO"},{option:"Arabic (Kuwait)",value:"ar-KW"},{option:"Arabic (Lebanon)",value:"ar-LB"},{option:"Arabic (Morocco)",value:"ar-MA"},{option:"Arabic (Oman)",value:"ar-OM"},{option:"Arabic (Qatar)",value:"ar-QA"},{option:"Arabic (Saudi Arabia)",value:"ar-SA"},{option:"Arabic (State of Palestine)",value:"ar-PS"},{option:"Arabic (Tunisia)",value:"ar-TN"},{option:"Arabic (United Arab Emirates)",value:"ar-AE"},{option:"Arabic (Yemen)",value:"ar-YE"},{option:"Armenian (Armenia)",value:"hy-AM"},{option:"Azerbaijani (Azerbaijan)",value:"az-AZ"},{option:"Basque (Spain)",value:"eu-ES"},{option:"Bengali (Bangladesh)",value:"bn-BD"},{option:"Bengali (India)",value:"bn-IN"},{option:"Bosnian (Bosnia and Herzegovina)",value:"bs-BA"},{option:"Bulgarian (Bulgaria)",value:"bg-BG"},{option:"Burmese (Myanmar)",value:"my-MM"},{option:"Catalan (Spain)",value:"ca-ES"},{option:"Chinese, Cantonese (Traditional Hong Kong)",value:"yue-Hant-HK"},{option:"Chinese, Mandarin (Simplified, China)",value:"cmn-Hans-CN"},{option:"Croatian (Croatia)",value:"hr-HR"},{option:"Czech (Czech Republic)",value:"cs-CZ"},{option:"Danish (Denmark)",value:"da-DK"},{option:"Dutch (Belgium)",value:"nl-BE"},{option:"Dutch (Netherlands)",value:"nl-NL"},{option:"English (Australia)",value:"en-AU"},{option:"English (Canada)",value:"en-CA"},{option:"English (Ghana)",value:"en-GH"},{option:"English (Hong Kong)",value:"en-HK"},{option:"English (India)",value:"en-IN"},{option:"English (Ireland)",value:"en-IE"},{option:"English (Kenya)",value:"en-KE"},{option:"English (New Zealand)",value:"en-NZ"},{option:"English (Nigeria)",value:"en-NG"},{option:"English (Pakistan)",value:"en-PK"},{option:"English (Philippines)",value:"en-PH"},{option:"English (Singapore)",value:"en-SG"},{option:"English (South Africa)",value:"en-ZA"},{option:"English (Tanzania)",value:"en-TZ"},{option:"English (United Kingdom)",value:"en-GB"},{option:"English (United States)",value:"en-US"},{option:"Estonian (Estonia)",value:"et-EE"},{option:"Filipino (Philippines)",value:"fil-PH"},{option:"Finnish (Finland)",value:"fi-FI"},{option:"French (Belgium)",value:"fr-BE"},{option:"French (Canada)",value:"fr-CA"},{option:"French (France)",value:"fr-FR"},{option:"French (Switzerland)",value:"fr-CH"},{option:"Galician (Spain)",value:"gl-ES"},{option:"Georgian (Georgia)",value:"ka-GE"},{option:"German (Austria)",value:"de-AT"},{option:"German (Germany)",value:"de-DE"},{option:"German (Switzerland)",value:"de-CH"},{option:"Greek (Greece)",value:"el-GR"},{option:"Gujarati (India)",value:"gu-IN"},{option:"Hebrew (Israel)",value:"iw-IL"},{option:"Hindi (India)",value:"hi-IN"},{option:"Hungarian (Hungary)",value:"hu-HU"},{option:"Icelandic (Iceland)",value:"is-IS"},{option:"Indonesian (Indonesia)",value:"id-ID"},{option:"Italian (Italy)",value:"it-IT"},{option:"Italian (Switzerland)",value:"it-CH"},{option:"Japanese (Japan)",value:"ja-JP"},{option:"Javanese (Indonesia)",value:"jv-ID"},{option:"Kannada (India)",value:"kn-IN"},{option:"Kazakh (Kazakhstan)",value:"kk-KZ"},{option:"Khmer (Cambodia)",value:"km-KH"},{option:"Korean (South Korea)",value:"ko-KR"},{option:"Lao (Laos)",value:"lo-LA"},{option:"Latvian (Latvia)",value:"lv-LV"},{option:"Lithuanian (Lithuania)",value:"lt-LT"},{option:"Macedonian (North Macedonia)",value:"mk-MK"},{option:"Malay (Malaysia)",value:"ms-MY"},{option:"Malayalam (India)",value:"ml-IN"},{option:"Marathi (India)",value:"mr-IN"},{option:"Mongolian (Mongolia)",value:"mn-MN"},{option:"Nepali (Nepal)",value:"ne-NP"},{option:"Norwegian Bokmål (Norway)",value:"no-NO"},{option:"Persian (Iran)",value:"fa-IR"},{option:"Polish (Poland)",value:"pl-PL"},{option:"Portuguese (Brazil)",value:"pt-BR"},{option:"Portuguese (Portugal)",value:"pt-PT"},{option:"Punjabi (Gurmukhi India)",value:"pa-Guru-IN"},{option:"Romanian (Romania)",value:"ro-RO"},{option:"Russian (Russia)",value:"ru-RU"},{option:"Serbian (Serbia)",value:"sr-RS"},{option:"Sinhala (Sri Lanka)",value:"si-LK"},{option:"Slovak (Slovakia)",value:"sk-SK"},{option:"Slovenian (Slovenia)",value:"sl-SI"},{option:"Spanish (Argentina)",value:"es-AR"},{option:"Spanish (Bolivia)",value:"es-BO"},{option:"Spanish (Chile)",value:"es-CL"},{option:"Spanish (Colombia)",value:"es-CO"},{option:"Spanish (Costa Rica)",value:"es-CR"},{option:"Spanish (Dominican Republic)",value:"es-DO"},{option:"Spanish (Ecuador)",value:"es-EC"},{option:"Spanish (El Salvador)",value:"es-SV"},{option:"Spanish (Guatemala)",value:"es-GT"},{option:"Spanish (Honduras)",value:"es-HN"},{option:"Spanish (Mexico)",value:"es-MX"},{option:"Spanish (Nicaragua)",value:"es-NI"},{option:"Spanish (Panama)",value:"es-PA"},{option:"Spanish (Paraguay)",value:"es-PY"},{option:"Spanish (Peru)",value:"es-PE"},{option:"Spanish (Puerto Rico)",value:"es-PR"},{option:"Spanish (Spain)",value:"es-ES"},{option:"Spanish (United States)",value:"es-US"},{option:"Spanish (Uruguay)",value:"es-UY"},{option:"Spanish (Venezuela)",value:"es-VE"},{option:"Sundanese (Indonesia)",value:"su-ID"},{option:"Swahili (Kenya)",value:"sw-KE"},{option:"Swahili (Tanzania)",value:"sw-TZ"},{option:"Swedish (Sweden)",value:"sv-SE"},{option:"Tamil (India)",value:"ta-IN"},{option:"Tamil (Malaysia)",value:"ta-MY"},{option:"Tamil (Singapore)",value:"ta-SG"},{option:"Tamil (Sri Lanka)",value:"ta-LK"},{option:"Telugu (India)",value:"te-IN"},{option:"Thai (Thailand)",value:"th-TH"},{option:"Turkish (Turkey)",value:"tr-TR"},{option:"Ukrainian (Ukraine)",value:"uk-UA"},{option:"Urdu (India)",value:"ur-IN"},{option:"Urdu (Pakistan)",value:"ur-PK"},{option:"Uzbek (Uzbekistan)",value:"uz-UZ"},{option:"Vietnamese (Vietnam)",value:"vi-VN"},{option:"Zulu (South Africa)",value:"zu-ZA"}]}).factory("awsPollyVoice",function(){return[{value:"Amy",option:"Amy (English, British, Female)"},{value:"Astrid",option:"Astrid (Swedish, Female)"},{value:"Brian",option:"Brian (English, British, Male)"},{value:"Carla",option:"Carla (Italian, Female)"},{value:"Carmen",option:"Carmen (Romanian, Female)"},{value:"Celine",option:"Celine (French, Female)"},{value:"Chantal",option:"Chantal (French, Canadian, Female)"},{value:"Conchita",option:"Conchita (Spanish, Castilian, Female)"},{value:"Cristiano",option:"Cristiano (Portuguese, Male)"},{value:"Dora",option:"Dora (Icelandic, Female)"},{value:"Emma",option:"Emma (English, British, Female)"},{value:"Enrique",option:"Enrique (Spanish, Castilian, Male)"},{value:"Ewa",option:"Ewa (Polish, Female)"},{value:"Filiz",option:"Filiz (Turkish, Female)"},{value:"Geraint",option:"Geraint (English, Welsh, Male)"},{value:"Giorgio",option:"Giorgio (Italian, Male)"},{value:"Gwineth",option:"Gwineth (Welsh, Female)"},{value:"Hans",option:"Hans (German, Male)"},{value:"Ines",option:"Ines (Portuguese, Female)"},{value:"Ivy",option:"Ivy (English, US, Female)"},{value:"Jacek",option:"Jacek (Polish, Male)"},{value:"Jan",option:"Jan (Polish, Male)"},{value:"Joanna",option:"Joanna (English, US, Female)"},{value:"Joey",option:"Joey (English, US, Male)"},{value:"Justin",option:"Justin (English, US, Male)"},{value:"Karl",option:"Karl (Icelandic, Male)"},{value:"Kendra",option:"Kendra (English, US, Female)"},{value:"Kimberly",option:"Kimberly (English, US, Female)"},{value:"Liv",option:"Liv (Norwegian, Female)"},{value:"Lotte",option:"Lotte (Dutch, Female)"},{value:"Mads",option:"Mads (Danish, Male)"},{value:"Maja",option:"Maja (Polish, Female)"},{value:"Marlene",option:"Marlene (German, Female)"},{value:"Mathieu",option:"Mathieu (French, Male)"},{value:"Maxim",option:"Maxim (Russian, Male)"},{value:"Miguel",option:"Miguel (Spanish, US, Male)"},{value:"Mizuki",option:"Mizuki (Japanese, Female)"},{value:"Naja",option:"Naja (Danish, Female)"},{value:"Nicole",option:"Nicole (English, Austrialian, Female)"},{value:"Penelope",option:"Penelope (Spanish, US, Female)"},{value:"Raveena",option:"Raveena (English, Indian, Female)"},{value:"Ricardo",option:"Ricardo (Portuguese, Brazilian, Male)"},{value:"Ruben",option:"Ruben (Dutch, Male)"},{value:"Russell",option:"Russell (English, Austrialian, Male)"},{value:"Salli",option:"Salli (English, US, Female)"},{value:"Tatyana",option:"Tatyana (Russian, Female)"},{value:"Vitoria",option:"Vitoria (Portuguese, Brazilian, Female)"}]}).factory("awsPollyRegion",function(){return[{value:"us-east-1",option:"US East (N. Virginia)"},{value:"us-east-2",option:"US East (Ohio)"},{value:"us-west-1",option:"US West (N. California)"},{value:"us-west-2",option:"US West (Oregon)"},{value:"ca-central-1",option:"Canada (Central)"},{value:"eu-west-1",option:"EU (Ireland)"},{value:"eu-central-1",option:"EU (Frankfurt)"},{value:"eu-west-2",option:"EU (London)"},{value:"eu-west-3",option:"EU (Paris)"},{value:"ap-southeast-1",option:"Asia Pacific (Singapore)"},{value:"ap-southeast-2",option:"Asia Pacific (Sydney)"},{value:"ap-northeast-2",option:"Asia Pacific (Seoul)"},{value:"ap-northeast-1",option:"Asia Pacific (Tokyo)"},{value:"ap-south-1",option:"Asia Pacific (Mumbai)"},{value:"sa-east-1",option:"South America (São Paulo)"}]}).factory("awsLexRegion",function(){return[{value:"us-east-1",option:"US East (N. Virginia)"},{value:"us-west-2",option:"US West (Oregon)"},{value:"eu-west-1",option:"EU (Ireland)"},{value:"ap-southeast-2",option:"Asia Pacific (Sydney)"}]}).factory("dialogFlowLanguage",function(){return[{value:"da",option:"Danish"},{value:"en",option:"English"},{value:"de",option:"German"},{value:"it",option:"Italian"},{value:"es",option:"Spanish"},{value:"fr",option:"French"},{value:"id",option:"Indonesian"},{value:"ja",option:"Japanese"},{value:"ko",option:"Korean (South Korea)"},{value:"nl",option:"Dutch"},{value:"no",option:"Norwegian"},{value:"pt",option:"Portuguese (European)"},{value:"pt-br",option:"Portuguese (Nrazilian)"},{value:"ru",option:"Russian"},{value:"sv",option:"Swedish"},{value:"th",option:"Thai"},{value:"uk",option:"Ukrainian"},{value:"zh-CN",option:"Chinese (Simplified)"},{value:"zh-HK",option:"Chinese (Hong Kong)"},{value:"zh-TW",option:"Chinese (Traditional)"}]}).factory("dialogFlowV2Language",function(){return[{value:"zh-HK",option:"Chinese (Cantonese)"},{value:"zh-CN",option:"Chinese (Simplified)"},{value:"zh-TW",option:"Chinese (Traditional)"},{value:"da",option:"Danish"},{value:"nl",option:"Dutch"},{value:"en",option:"English"},{value:"en-AU",option:"English (Australia)"},{value:"en-CA",option:"English (Canada)"},{value:"en-GB",option:"English (Great Britain)"},{value:"en-IN",option:"English (India)"},{value:"en-US",option:"English (US)"},{value:"fr",option:"French"},{value:"fr-CA",option:"French (Canada)"},{value:"fr-FR",option:"France (France)"},{value:"de",option:"German"},{value:"hi",option:"Hindi"},{value:"id",option:"Indonesian"},{value:"it",option:"Italian"},{value:"ja",option:"Japanese"},{value:"ko",option:"Korean"},{value:"no",option:"Norwegian"},{value:"pl",option:"Polish"},{value:"pt-BR",option:"Portuguese (Brazil)"},{value:"pt-PT",option:"Portuguese (Portugal)"},{value:"ru",option:"Russian"},{value:"es",option:"Spanish"},{value:"es-419",option:"Spanish (Latin America)"},{value:"es-ES",option:"Spanish (Spain)"},{value:"sw",option:"Swedish"},{value:"th",option:"Thai"},{value:"tr",option:"Turkish"},{value:"uk",option:"Ukrainian"}]})}(),function(){"use strict";function e(n,e,t,a){var i=this;i.project={preproduction:t},i.closeDialog=function(e){e?(a(i.project.preproduction),n.hide(i.project.preproduction)):n.hide()}}e.$inject=["$mdDialog","toasty","currentXML","saveCallback"],angular.module("app.callysquare").controller("MxGraphEditXMLController",e)}(),function(){"use strict";function e(n,t){var a=this;function i(e){e?(t(e),n.hide(e)):n.hide()}a.errors=[],a.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:5242880,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},a.ngFlow={flow:{}},a.dropping=!1,a.closeDialog=i,a.fileAdded=function(e){a.errors=[];_.includes(["xml"],e.getExtension())||a.errors.push({message:"The extension "+e.getExtension()+" is not supported!"});5242880<e.size&&a.errors.push({message:"The file is too big. The max allowed size is 5MB"});if(!a.errors.length){var n=new FileReader;n.onload=function(e){i(e.target.result)},n.readAsText(e.file)}}}e.$inject=["$mdDialog","saveCallback"],angular.module("app.callysquare").controller("MxGraphImportXMLController",e)}(),function(){"use strict";function e(n,t,e,a){var i=this;i.project=_.clone(e),i.closeDialog=function(){n.hide()},i.save=function(){i.errors=[],a.squareProject.update({id:i.project.id},{notes:i.project.notes,description:i.project.description}).$promise.then(function(e){t.success({title:"Project updated!",msg:i.project.name?i.project.name+" has been updated!":""}),n.hide(e)}).catch(function(e){console.error(e),i.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.update"}]})}}e.$inject=["$mdDialog","toasty","project","api"],angular.module("app.callysquare").controller("MxGraphUpdateInfoController",e)}(),function(){"use strict";function e(n,e,t,a,i){var s=this;s.projects=t,s.id="",s.newWindow=!0,s.closeDialog=function(e){s.errors=[],e?(n.hide(),s.newWindow?a.open("/callysquare/projects/"+s.id,"_blank"):i.go("app.callysquare.projects.edit",{id:s.id})):n.hide()}}e.$inject=["$mdDialog","toasty","projects","$window","$state"],angular.module("app.callysquare").controller("MxGraphOpenProjectController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o){var r=this;function l(){return a.squareProject.getUsers({id:r.project.id,fields:"id,name,fullname,internal",nolimit:!0,role:"user"}).$promise.then(function(e){return r.selectedItems=e.rows?_.map(e.rows,function(e){return e}):[],r.dualMultiselectOptions.selectedItems=r.selectedItems,a.user.get({fields:"id,fullname,name,internal",role:"user",nolimit:!0}).$promise}).then(function(e){r.items=e.rows?_.map(e.rows,function(e){return e}):[],r.dualMultiselectOptions.items=_.differenceBy(r.items,r.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS",msg:e.status?JSON.stringify(e.data):e.toString()})})}r.project=n,r.penalty=0,r.items=[],r.selectedItems=[],r.closeDialog=function(){e.hide()},r.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("CALLYSQUARE.ALL_USERS"),labelSelected:s.instant("CALLYSQUARE.SELECTED_USERS"),transferCallback:function(e,n){a.squareProject[n?"removeUsers":"addUsers"]({id:r.project.id,ids:_.map(e,"id"),penalty:r.penalty||0}).$promise.then(function(){t.success({title:"Project properly "+(n?"removed":"added"),msg:"Project has been "+(n?"removed":"added")+"!"}),n||l()}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:squareProjects.ADDUSERS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},l()}e.$inject=["$mdDialog","toasty","api","project","projects","$translate","Auth"],angular.module("app.callysquare").controller("ProjectspermissionaddController",e)}(),function(){"use strict";function e(n,t,e,a,i,s,o){var r=this;r.project=angular.copy(e),r.project.name+="_new",r.project.preproduction=a,r.newWindow=!0,r.closeDialog=function(){n.hide()},r.save=function(){delete r.project.id,i.squareProject.save(r.project).$promise.then(function(e){t.success({title:"Project properly created",msg:r.project.name?r.project.name+" has been created!":""}),n.hide(e),r.newWindow?s.open("/callysquare/projects/"+e.id,"_blank"):o.go("app.callysquare.projects.edit",{id:e.id})}).catch(function(e){console.error(e),r.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.save"}]})}}e.$inject=["$mdDialog","toasty","project","currentXML","api","$window","$state"],angular.module("app.callysquare").controller("MxGraphSaveProjectAsController",e)}(),function(){"use strict";function e(e,t,a,i,s,o,r,n,l,d,c,m,u,p,g,v,h,f,b,A,E,y,S,T){var I=this;I.currentUser=T.getCurrentUser(),I.project=n||{},I.userProfileSection=S&&1==S.count?S.rows[0]:null,I.crudPermissions=T.parseCrudPermissions(I.userProfileSection?I.userProfileSection.crudPermissions:null),I.onInit=function(){new EditorUi(I,new Editor,document.getElementById("geEditor")).openString(I.project.preproduction,I.project.name,I.project)},I.saveOrPublishProject=function(e,n){var t={preproduction:e};n&&(t.production=e);r.squareProject.update({id:I.project.id},t).$promise.then(function(e){o.success({title:"Project "+(n?"published":"saved")+"!",msg:I.project.name?I.project.name+" has been "+(n?"published":"saved")+"!":""}),I.project.preproduction=e.preproduction}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsquareProject",msg:e.data?JSON.stringify(e.data):e.toString()})})},I.openDialog=function(e,n){a.show({controller:"MxGraphDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/dialog/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{users:l.rows||[],trunks:d.rows||[],queues:c.rows||[],sounds:m.rows||[],variables:u.rows||[],databases:p.rows||[],contexts:g.rows||[],projects:v.rows||[],intervals:h.rows||[],mailAccounts:f.rows||[],smsAccounts:E.rows||[],pauses:y.rows||[],templates:b.rows||[],lists:A.rows||[],cell:e,saveCallback:n,crudPermissions:I.crudPermissions}})},I.newProject=function(e){a.show({controller:"CreateOrEditSquareProjectDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/create/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{project:e,projects:v.rows,openFromEditor:!0,license:null,setting:null,crudPermissions:I.crudPermissions}})},I.openProject=function(){a.show({controller:"MxGraphOpenProjectController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/open/open.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{projects:v.rows||[]}})},I.saveProjectAs=function(e){a.show({controller:"MxGraphSaveProjectAsController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/saveAs/saveAs.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{project:I.project,currentXML:e}}).then(function(e){e&&v.rows.push(e)})},I.newVariable=function(n){return i(function(a,n){return r.userProfileSection.get({userProfileId:I.currentUser.userProfileId,sectionId:1012}).$promise.then(function(e){var n=e.rows?e.rows[0]:null,t=T.parseCrudPermissions(n?n.crudPermissions:null);a(t)}).catch(function(e){n(e)})}).then(function(e){e.canEdit?a.show({controller:"CreateOrEditVariableDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/variables/create/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{variable:n,variables:u.rows,license:null,setting:null,crudPermissions:e}}):o.info({title:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_CREATION_MESSAGE")})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"API:NEW_VARIABLE",msg:e.data?JSON.stringify(e.data):e.toString()})})},I.updateInfo=function(e){a.show({controller:"MxGraphUpdateInfoController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/info/info.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{project:I.project}}).then(function(e){e&&_.merge(I.project,e)})},I.editXML=function(e,n){a.show({controller:"MxGraphEditXMLController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/edit/edit.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{currentXML:e,saveCallback:n}}).then(function(e){e&&(I.project.preproduction=e)})},I.importXML=function(e){a.show({controller:"MxGraphImportXMLController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/import/import.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{saveCallback:e}}).then(function(e){e&&(I.project.preproduction=e)})},I.gotoProjects=function(){e.go("app.callysquare.projects",{},{reload:"app.callysquare.projects"})}}e.$inject=["$state","$document","$mdDialog","$q","$translate","toasty","api","project","users","trunks","queues","sounds","variables","databases","contexts","projects","intervals","mailAccounts","templates","lists","smsAccounts","pauses","userProfileSection","Auth"],angular.module("app.callysquare").controller("ProjectController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m,u){var p=this;p.currentUser=u.getCurrentUser(),p.projects=a||{count:0,rows:[]},p.userProfile=i,p.userProfileSection=s&&1==s.count?s.rows[0]:null,p.crudPermissions=u.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.listOrder="",p.listOrderAsc=null,p.selectedProjects=[],p.query={fields:"id,name,description,notes",sort:"-updatedAt",limit:10,page:1},p.editstate=function(e,n){t.go("app.callysquare.projects.edit",{id:e.id,crudPermissions:p.crudPermissions})},p.deleteconfirm=function(e,n){var t=l.confirm().title("Are you sure want to delete the project?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete project").targetEvent(n).ok("OK").cancel("CANCEL");l.show(t).then(function(){f(e)},function(){console.log("CANCEL")})},p.success=h,p.getProjects=function(){p.query.offset=(p.query.page-1)*p.query.limit,u.hasRole("admin")?p.promise=o.squareProject.get(p.query,h).$promise:(p.query.id=p.userProfile.id,p.query.section="SquareProjects",p.promise=o.userProfile.getResources(p.query,h).$promise)},p.createOrEditProject=function(e,n){l.show({controller:"CreateOrEditSquareProjectDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/create/dialog.html",parent:angular.element(d.body),targetEvent:e,clickOutsideToClose:!0,locals:{project:n,projects:p.projects.rows,openFromEditor:null,setting:null,crudPermissions:p.crudPermissions}})},p.deleteProject=f,p.exportSelectedProjects=function(){var e=angular.copy(p.selectedProjects);return p.selectedProjects=[],e},p.deleteSelectedProjects=function(e){var n=l.confirm().title("Are you sure want to delete the selected projects?").htmlContent("<b>"+p.selectedProjects.length+" selected</b> will be deleted.").ariaLabel("delete Projects").targetEvent(e).ok("OK").cancel("CANCEL");l.show(n).then(function(){p.selectedProjects.forEach(function(e){f(e)}),p.selectedProjects=[]})},p.deselectProjects=function(){p.selectedProjects=[]},p.selectAllProjects=function(){p.selectedProjects=p.projects.rows};var g=!0,v=1;function h(e){p.projects=e||{count:0,rows:[]}}function f(e){o.squareProject.delete({id:e.id}).$promise.then(function(){_.remove(p.projects.rows,{id:e.id}),p.projects.count-=1,p.projects.rows.length||p.getProjects(),m.success({title:"Project deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.project.delete"}];for(var n=0;n<e.data.errors.length;n++)m.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.project.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){g?c(function(){g=!1}):(n||(v=p.query.page),e!==n&&(p.query.page=1),e||(p.query.page=v),p.getProjects())})}e.$inject=["$scope","$state","$mdSidenav","projects","userProfile","userProfileSection","api","msUtils","$mdDialog","$document","$timeout","toasty","Auth"],angular.module("app.callysquare").controller("ProjectsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CALLYSQUARE.EDIT_SQUARERECORDING",g.squareRecording=angular.copy(l),g.squareRecordings=r,g.newSquareRecording=!1,g.squareRecording||(g.squareRecording={},g.title="CALLYSQUARE.NEW_SQUARERECORDING",g.newSquareRecording=!0),g.addNewSquareRecording=function(){g.errors=[],d.squareRecording.save(g.squareRecording).$promise.then(function(e){g.squareRecordings.unshift(e.toJSON()),o.success({title:"SquareRecording properly created",msg:g.squareRecording.name?g.squareRecording.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.squareRecording.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSquareRecording=function(){g.errors=[],d.squareRecording.update({id:g.squareRecording.id},g.squareRecording).$promise.then(function(e){var n=_.find(g.squareRecordings,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"SquareRecording properly saved!",msg:g.squareRecording.name?g.squareRecording.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.squareRecording.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareRecording.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSquareRecording=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The squareRecording will be deleted.").ariaLabel("Delete SquareRecording").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.squareRecording.delete({id:g.squareRecording.id}).$promise.then(function(){_.remove(g.squareRecordings,{id:g.squareRecording.id}),o.success({title:"SquareRecording properly deleted!",msg:(g.squareRecording.name||"squareRecording")+" has been deleted!"}),v(g.squareRecording)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.squareRecording.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareRecording.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","squareRecordings","squareRecording","api","Auth","license","setting","crudPermissions"],angular.module("app.callysquare").controller("CreateOrEditSquareRecordingDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.squareRecordings=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="squareRecordings",f.listOrder="",f.listOrderAsc=null,f.selectedSquareRecordings=[],f.query={fields:"createdAt,updatedAt,id,filename,projectName,uniqueid,callerid,extension,audio,savePath,format",sort:"-createdAt",limit:10,page:1},f.downloadfile2=function(s,e){return m.squareRecording.download({id:s.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s.uniqueid+s.format;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("squareRecording")+"?").htmlContent("<b>"+(e.name||"squareRecording")+"</b> will be deleted.").ariaLabel("delete squareRecording").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getSquareRecordings=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.squareRecording.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="SquareRecordings",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSquareRecording=function(e,n){i.show({controller:"CreateOrEditSquareRecordingDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/squareRecordings/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{squareRecording:n,squareRecordings:f.squareRecordings.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSquareRecording=y,f.exportSelectedSquareRecordings=function(){var e=angular.copy(f.selectedSquareRecordings);return f.selectedSquareRecordings=[],e},f.deleteSelectedSquareRecordings=function(e){var n=i.confirm().title("Are you sure want to delete the selected squareRecordings?").htmlContent("<b>"+f.selectedSquareRecordings.length+" selected</b> will be deleted.").ariaLabel("delete SquareRecordings").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedSquareRecordings.forEach(function(e){y(e)}),f.selectedSquareRecordings=[]})},f.deselectSquareRecordings=function(){f.selectedSquareRecordings=[]},f.selectAllSquareRecordings=function(){f.selectedSquareRecordings=f.squareRecordings.rows};var b=!0,A=1;function E(e){f.squareRecordings=e||{count:0,rows:[]}}function y(e){m.squareRecording.delete({id:e.id}).$promise.then(function(){_.remove(f.squareRecordings.rows,{id:e.id}),f.squareRecordings.count-=1,f.squareRecordings.rows.length||f.getSquareRecordings(),p.success({title:_.startCase("SquareRecording")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsquareRecording"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEsquareRecording",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getSquareRecordings())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","squareRecordings","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.callysquare").controller("SquareRecordingsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.chatQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="chatQueues",f.listOrder="",f.listOrderAsc=null,f.selectedChatQueues=[],f.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"chat",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.chat.chatQueues.edit",{id:e.id,chatQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"ChatQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:f.chatQueues?f.chatQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"ChatQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:f.chatQueues?f.chatQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("chatQueue")+"?").htmlContent("<b>"+(e.name||"chatQueue")+"</b> will be deleted.").ariaLabel("delete chatQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:510}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.chat.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.chat.realtime.queues",{})}},f.success=E,f.getChatQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.chatQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ChatQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditChatQueue=function(e,n){i.show({controller:"CreateOrEditChatQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatQueue:n,chatQueues:f.chatQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteChatQueue=y,f.exportSelectedChatQueues=function(){var e=angular.copy(f.selectedChatQueues);return f.selectedChatQueues=[],e},f.deleteSelectedChatQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected chatQueues?").htmlContent("<b>"+f.selectedChatQueues.length+" selected</b> will be deleted.").ariaLabel("delete ChatQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedChatQueues.forEach(function(e){y(e)}),f.selectedChatQueues=[]})},f.deselectChatQueues=function(){f.selectedChatQueues=[]},f.selectAllChatQueues=function(){f.selectedChatQueues=f.chatQueues.rows};var b=!0,A=1;function E(e){f.chatQueues=e||{count:0,rows:[]}}function y(e){m.chatQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.chatQueues.rows,{id:e.id}),f.chatQueues.count-=1,f.chatQueues.rows.length||f.getChatQueues(),p.success({title:_.startCase("ChatQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEchatQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEchatQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getChatQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","chatQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.chat").controller("ChatQueuesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CHAT.EDIT_CHATQUEUE",g.chatQueue=angular.copy(l),g.chatQueues=r,g.newChatQueue=!1,g.chatQueue||(g.chatQueue={strategy:"beepall",timeout:10},g.title="CHAT.NEW_CHATQUEUE",g.newChatQueue=!0),g.addNewChatQueue=function(){g.errors=[],d.chatQueue.save(g.chatQueue).$promise.then(function(e){g.chatQueues.unshift(e.toJSON()),o.success({title:"ChatQueue properly created",msg:g.chatQueue.name?g.chatQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveChatQueue=function(){g.errors=[],d.chatQueue.update({id:g.chatQueue.id},g.chatQueue).$promise.then(function(e){var n=_.find(g.chatQueues,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ChatQueue properly saved!",msg:g.chatQueue.name?g.chatQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteChatQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The chatQueue will be deleted.").ariaLabel("Delete ChatQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.chatQueue.delete({id:g.chatQueue.id}).$promise.then(function(){_.remove(g.chatQueues,{id:g.chatQueue.id}),o.success({title:"ChatQueue properly deleted!",msg:(g.chatQueue.name||"chatQueue")+" has been deleted!"}),v(g.chatQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","chatQueues","chatQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.chat").controller("CreateOrEditChatQueueDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.chatQueue.getAgents({id:c.chatQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserChatQueue?"penalty "+e.UserChatQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.chatQueue=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.chatQueue.removeAgents({id:c.chatQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.chatQueue.addAgents({id:c.chatQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("CHAT.ALL_AGENTS"),labelSelected:r.instant("CHAT.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","chatQueue","chatQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.chat").controller("ChatQueueagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.chatQueue.getTeams({id:l.chatQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.chatQueue=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("CHAT.ALL_TEAMS"),labelSelected:t.instant("CHAT.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.chatQueue.removeTeams({id:l.chatQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.chatQueue.addTeams({id:l.chatQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","chatQueue","$translate","Auth","crudPermissions"],angular.module("app.chat").controller("ChatQueueteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.chatQueue=c||e.params.chatQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.teamadddialog=function(e,n){t.show({controller:"ChatQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:u.chatQueues?u.chatQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){t.show({controller:"ChatQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:u.chatQueues?u.chatQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoChatQueues=function(){e.go("app.chat.chatQueues",{},{reload:"app.chat.chatQueues"})},u.saveChatQueue=function(){r.chatQueue.update({id:u.chatQueue.id},u.chatQueue).$promise.then(function(){l.success({title:"ChatQueue updated!",msg:u.chatQueue.name?u.chatQueue.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","chatQueue","userProfileSection"],angular.module("app.chat").controller("ChatQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.chatWebsites=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="chatWebsites",f.listOrder="",f.listOrderAsc=null,f.selectedChatWebsites=[],f.query={fields:"createdAt,updatedAt,id,token,agentIdentifier,customerAlias,messageFontSize,name,key,address,remote,ListId,fidelity,timeout,agentAlias,closingQuestion,formSubmitSuccessMessage,formSubmitFailureMessage,color,color_focus,color_button,textColor,backgroundColor,fontSize,header_shape,showAgentAvatar,showCustomerAvatar,alignment,verticalAlignment,messagesAlignment,defaultTitle,animation,defaultWhiteLabel,whiteLabel,defaultLogo,conditionAgreement,autoclose,enableUnmanagedNote,unmanagedMessage,skipUnmanaged,sendUnmanaged,enableCustomerWriting,waitingTitle,waitingMessage,closingMessage,noteTitle,placeholderMessage,skipMessageButton,enableRating,ratingType,ratingStarsNumber,enableFeedback,feedbackTitle,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,enableSendButton,enableCustomerCheckmarks,systemAlias,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,name_title,username_placeholder,email_title,email_placeholder,header_online,hideWhenOffline,header_offline,start_chat_button,offline_chat_button,offlineMessageSubject,offlineMessageBody,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,onlineForm,offlineForm,mapKey,mapKeyOffline,forwardOffline,MailAccountId,openNewInteraction,forwardOfflineAddress,subjectOffline,IntervalId,timezone,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout,vidaooEscalation,vidaooApiKey,vidaooTopic,vidaooNote,vidaooMetadata",sort:"-updatedAt",limit:10,page:1},f.arrayagentIdentifier=_.keyBy([{option:"WebsiteAlias",value:"'website_alias'"},{option:"AgentAlias",value:"'agent_alias'"},{option:"AgentFullname",value:"'agent_fullname'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayheader_shape=_.keyBy([{option:"Rounded",value:"'rounded'"},{option:"Squared",value:"'squared'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayalignment=_.keyBy([{option:"bottom_right",value:"'bottom_right'"},{option:"right",value:"'right'"},{option:"left",value:"'left'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraymessagesAlignment=_.keyBy([{option:"alternate",value:"'alternate'"},{option:"centered",value:"'centered'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayratingType=_.keyBy([{option:"Star",value:"'star'"},{option:"Thumb",value:"'thumb'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.chat.chatWebsites.edit",{id:e.id,chatWebsite:e,crudPermissions:f.crudPermissions})},f.interactionsgoto=function(e,n){t.go("app.chat.chatWebsites.edit",{id:e.id,tab:10})},f.offlinemessagesgoto=function(e,n){t.go("app.chat.chatWebsites.edit",{id:e.id,tab:11})},f.agentadddialog=function(e,n){i.show({controller:"ChatWebsiteagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatWebsite:e,chatWebsites:f.chatWebsites?f.chatWebsites.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("chatWebsite")+"?").htmlContent("<b>"+(e.name||"chatWebsite")+"</b> will be deleted.").ariaLabel("delete chatWebsite").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getChatWebsites=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.chatWebsite.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ChatWebsites",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditChatWebsite=function(e,n){i.show({controller:"CreateOrEditChatWebsiteDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:n,chatWebsites:f.chatWebsites.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteChatWebsite=y,f.exportSelectedChatWebsites=function(){var e=angular.copy(f.selectedChatWebsites);return f.selectedChatWebsites=[],e},f.deleteSelectedChatWebsites=function(e){var n=i.confirm().title("Are you sure want to delete the selected chatWebsites?").htmlContent("<b>"+f.selectedChatWebsites.length+" selected</b> will be deleted.").ariaLabel("delete ChatWebsites").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedChatWebsites.forEach(function(e){y(e)}),f.selectedChatWebsites=[]})},f.deselectChatWebsites=function(){f.selectedChatWebsites=[]},f.selectAllChatWebsites=function(){f.selectedChatWebsites=f.chatWebsites.rows},g.hasRole("admin")?m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.lists,{id:e.resourceId})}),t=null;if(f.chatWebsite&&(t=_.find(f.lists,{id:Number(f.chatWebsite.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.lists,{id:t.id});a.canSelect=!1,n.push(a)}f.lists=n})}else{var t=[],a=null;f.chatWebsite&&(a=_.find(f.lists,{id:Number(f.chatWebsite.ListId)}));for(var i=0;i<f.lists.length;i++)a&&f.lists[i].id===a.id&&(f.lists[i].canSelect=!1,t.push(f.lists[i]));f.lists=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){f.interval=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){f.interval=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.interval,{id:e.resourceId})}),t=null;if(f.chatWebsite&&(t=_.find(f.interval,{id:Number(f.chatWebsite.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.interval,{id:t.id});a.canSelect=!1,n.push(a)}f.interval=n})}else{var t=[],a=null;f.chatWebsite&&(a=_.find(f.interval,{id:Number(f.chatWebsite.IntervalId)}));for(var i=0;i<f.interval.length;i++)a&&f.interval[i].id===a.id&&(f.interval[i].canSelect=!1,t.push(f.interval[i]));f.interval=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.chatWebsites=e||{count:0,rows:[]}}function y(e){m.chatWebsite.delete({id:e.id}).$promise.then(function(){_.remove(f.chatWebsites.rows,{id:e.id}),f.chatWebsites.count-=1,f.chatWebsites.rows.length||f.getChatWebsites(),p.success({title:_.startCase("ChatWebsite")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEchatWebsite"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEchatWebsite",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getChatWebsites())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","chatWebsites","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.chat").controller("ChatWebsitesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CHAT.EDIT_CHATWEBSITE",g.chatWebsite=angular.copy(l),g.chatWebsites=r,g.newChatWebsite=!1,g.chatWebsite||(g.chatWebsite={remote:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():""),header_shape:"rounded",alignment:"bottom_right",verticalAlignment:30,messagesAlignment:"alternate",IntervalId:"null",timezone:"null",waitForTheAssignedAgent:10,notificationSound:!0,queueTransferTimeout:300,agentTransferTimeout:300,vidaooTopic:"Generated by XCALLY Motion",vidaooNote:"Meeting generated for interaction #{{interaction.id}} by {{agent.name}}"},g.title="CHAT.NEW_CHATWEBSITE",g.newChatWebsite=!0),n.params.id&&(g.chatWebsite.ChatWebsiteId=n.params.id),g.addNewChatWebsite=function(){g.errors=[],d.chatWebsite.save(g.chatWebsite).$promise.then(function(e){g.chatWebsites.unshift(e.toJSON()),o.success({title:"ChatWebsite properly created",msg:g.chatWebsite.name?g.chatWebsite.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatWebsite.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatWebsite.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveChatWebsite=function(){g.errors=[],d.chatWebsite.update({id:g.chatWebsite.id},g.chatWebsite).$promise.then(function(e){var n=_.find(g.chatWebsites,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ChatWebsite properly saved!",msg:g.chatWebsite.name?g.chatWebsite.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatWebsite.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatWebsite.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteChatWebsite=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The chatWebsite will be deleted.").ariaLabel("Delete ChatWebsite").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.chatWebsite.delete({id:g.chatWebsite.id}).$promise.then(function(){_.remove(g.chatWebsites,{id:g.chatWebsite.id}),o.success({title:"ChatWebsite properly deleted!",msg:(g.chatWebsite.name||"chatWebsite")+" has been deleted!"}),v(g.chatWebsite)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatWebsite.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatWebsite.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.lists,{id:e.resourceId})}),t=null;if(g.chatWebsite&&(t=_.find(g.lists,{id:Number(g.chatWebsite.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.lists,{id:t.id});a.canSelect=!1,n.push(a)}g.lists=n})}else{var t=[],a=null;g.chatWebsite&&(a=_.find(g.lists,{id:Number(g.chatWebsite.ListId)}));for(var i=0;i<g.lists.length;i++)a&&g.lists[i].id===a.id&&(g.lists[i].canSelect=!1,t.push(g.lists[i]));g.lists=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){g.interval=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){g.interval=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.interval,{id:e.resourceId})}),t=null;if(g.chatWebsite&&(t=_.find(g.interval,{id:Number(g.chatWebsite.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.interval,{id:t.id});a.canSelect=!1,n.push(a)}g.interval=n})}else{var t=[],a=null;g.chatWebsite&&(a=_.find(g.interval,{id:Number(g.chatWebsite.IntervalId)}));for(var i=0;i<g.interval.length;i++)a&&g.interval[i].id===a.id&&(g.interval[i].canSelect=!1,t.push(g.interval[i]));g.interval=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","chatWebsites","chatWebsite","api","Auth","license","setting","crudPermissions"],angular.module("app.chat").controller("CreateOrEditChatWebsiteDialogController",e)}(),function(){"use strict";function e(o,i,a,s,e){var r=this;function n(e,n){if(r.chatWebsiteApps.rows.length){var t=r.chatWebsiteApps.rows[n]?r.chatWebsiteApps.rows[n]:r.chatWebsiteApps.rows[0];i.show({controller:"EditChatWebsiteApp"+(t.appType||t.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/apps/"+(t.appType||t.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsiteApp:t,chatWebsite:r.chatWebsite,crudPermissions:r.crudPermissions}}).then(function(e){e&&(e.id?r.chatWebsiteApps.rows[n]=e:r.chatWebsiteApps.rows.splice(n,0,e),l())}).catch(function(e){e&&s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function l(){for(var e=1,n=[],t=0;t<r.chatWebsiteApps.rows.length;t++,0){var a=r.chatWebsiteApps.rows[t],i=[],s=[];a.intervals="*,*,*,*"!==a.interval?[a.interval]:a.IntervalId?_.map(_.filter(r.intervals.rows,{IntervalId:a.IntervalId}),"interval"):[],a.context=r.chatWebsite.context,a.exten=r.chatWebsite.exten,a.type&&(a.type=a.type.toLowerCase()),a.priority=i.length?_.last(i).priority+1:e,e=(s.length?_.last(s).priority:a.priority)+1,n=_.concat(n,i,[a],s)}o.chatWebsite.addApplications({id:r.chatWebsite.id},_.sortBy(n,"priority")).$promise.then(function(e){r.chatWebsiteApps.rows=e.rows}).catch(function(e){console.error(e)})}function t(e){r.chatWebsiteApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.chatWebsite={},r.chatWebsiteApps={count:0,rows:[]},r.selectedChatWebsiteApps=[],r.crudPermissions,r.query={sort:"priority"},r.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"noop",appType:"noop",type:"noop",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,fields:[{title:"Value",name:"value",type:"text",param:0}]},{app:"system",appType:"system",type:"system",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,extraApi:[{name:"variables",field:{name:"variable",key:"name"},route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1012}}],fields:[{title:"Command",name:"command",type:"text",required:!0,param:0},{title:"Variable",name:"variable",type:"apiselect",values:"variables",value:"variable.name",option:"variable.name",defaultValues:[{value:"''",option:"None"}],defaultValue:"''",param:1}]},{app:"gotop",appType:"gotop",type:"goto",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Priority",name:"priority",type:"number",required:!0,min:0,param:0}]},{app:"gotoif",appType:"gotoif",type:"gotoif",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Condition",name:"condition",type:"text",required:!0,param:0},{title:"truepriority",name:"truepriority",type:"number",min:1,required:!0,param:1},{title:"falsepriority",name:"falsepriority",type:"number",min:1,required:!0,param:2}]},{app:"queue",appType:"queue",foreignKey:"ChatQueueId",type:"queue",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"queues",field:{name:"queue",key:"name"},route:"chatQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0},permissions:{section:501}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",defaultValue:300,required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:300,param:1}]},{app:"agent",appType:"agent",type:"agent",foreignKey:"UserId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"agents",field:{name:"agent",key:"name"},route:"user",filters:{fields:"id,name",role:"agent",sort:"name",nolimit:!0},permissions:{section:202}}],fields:[{title:"Agent",name:"agent",type:"apiselect",values:"agents",value:"agent.name",option:"agent.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:30,param:1}]},{app:"close",appType:"close",type:"close",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Disposition",name:"disposition",type:"text",required:!0,param:0}]},{app:"autoreply",appType:"autoreply",type:"autoreply",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"times",name:"times",type:"select",defaultValue:"1",values:[{option:"One Time",value:"2"},{option:"Always",value:"0"},{option:"First Message",value:"1"}],required:!0,param:0},{title:"Text",name:"text",type:"textarea",required:!0,param:1}]},{app:"tag",appType:"tag",type:"tag",foreignKey:"TagId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"tags",field:{name:"tag",key:"name"},route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1008}}],fields:[{title:"Tag",name:"tag",type:"apiselect",values:"tags",value:"tag.name",option:"tag.name",required:!0,param:0}]},{app:"dialogflow",appType:"dialogflow",type:"dialogflow",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Key",name:"key",type:"text",required:!0,param:0},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{option:"Danish",value:"'da'"},{option:"English",value:"'en'"},{option:"German",value:"'de'"},{option:"Italian",value:"'it'"},{option:"Spanish",value:"'es'"},{option:"French",value:"'fr'"},{option:"Indonesian",value:"'id'"},{option:"Japanese",value:"'ja'"},{option:"Korean (South Korea)",value:"'ko'"},{option:"Dutch",value:"'nl'"},{option:"Norwegian",value:"'no'"},{option:"Portuguese (European)",value:"'pt'"},{option:"Portuguese (Nrazilian)",value:"'pt-br'"},{option:"Russian",value:"'ru'"},{option:"Swedish",value:"'sv'"},{option:"Thai",value:"'th'"},{option:"Ukrainian",value:"'uk'"},{option:"Chinese (Simplified)",value:"'zh-CN'"},{option:"Chinese (Hong Kong)",value:"'zh-HK'"},{option:"Chinese (Traditional)",value:"'zh-TW'"}],required:!0,param:1},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,param:2,help:!0}]},{app:"dialogflowV2",appType:"dialogflowv2",type:"dialogflowv2",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"ProjectID",name:"projectId",type:"text",required:!0,param:0},{title:"ClientEmail",name:"clientEmail",type:"text",required:!0,param:1},{title:"PrivateKey",name:"privateKey",type:"textarea",required:!0,param:2},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{value:"'zh-HK'",option:"Chinese (Cantonese)"},{value:"'zh-CN'",option:"Chinese (Simplified)"},{value:"'zh-TW'",option:"Chinese (Traditional)"},{value:"'da'",option:"Danish"},{value:"'nl'",option:"Dutch"},{value:"'en'",option:"English"},{value:"'en-AU'",option:"English (Australia)"},{value:"'en-CA'",option:"English (Canada)"},{value:"'en-GB'",option:"English (Great Britain)"},{value:"'en-IN'",option:"English (India)"},{value:"'en-US'",option:"English (US)"},{value:"'fr'",option:"French"},{value:"'fr-CA'",option:"French (Canada)"},{value:"'fr-FR'",option:"'France (France)"},{value:"'de'",option:"German"},{value:"'hi'",option:"Hindi"},{value:"'id'",option:"Indonesian"},{value:"'it'",option:"Italian"},{value:"'ja'",option:"Japanese"},{value:"'ko'",option:"Korean"},{value:"'no'",option:"Norwegian"},{value:"'pl'",option:"Polish"},{value:"'pt-BR'",option:"Portuguese (Brazil)"},{value:"'pt-PT'",option:"Portuguese (Portugal)"},{value:"'ru'",option:"Russian"},{value:"'es'",option:"Spanish"},{value:"'es-419'",option:"Spanish (Latin America)"},{value:"'es-ES'",option:"Spanish (Spain)"},{value:"'sw'",option:"Swedish"},{value:"'th'",option:"Thai"},{value:"'tr'",option:"Turkish"},{value:"'uk'",option:"Ukrainian"}],required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,param:4,help:!0}]},{app:"amazonlex",appType:"amazonlex",type:"amazonlex",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"accesskeyid",name:"accesskeyid",type:"text",required:!0,param:0},{title:"secretaccesskey",name:"secretaccesskey",type:"text",required:!0,param:1},{title:"lexregion",name:"lexregion",type:"select",defaultValue:"'us-east-1'",values:[{option:"US East (N. Virginia)",value:"'us-east-1'"},{option:"US West (Oregon)",value:"'us-west-2'"},{option:"EU (Ireland)",value:"'eu-west-1'"},{option:"Asia Pacific (Sydney)",value:"'ap-southeast-2'"}],required:!0,param:2},{title:"botname",name:"botname",type:"text",required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,param:4,help:!0}]},{app:"tvox",appType:"tvox",type:"tvox",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"serviceid",name:"serviceid",type:"text",param:0},{title:"channelid",name:"channelid",type:"text",param:1},{title:"tvoxurl",name:"tvoxurl",type:"text",param:2},{title:"tvoxloginurl",name:"tvoxloginurl",type:"text",param:3},{title:"tvoxsessionurl",name:"tvoxsessionurl",type:"text",param:4},{title:"tvoxusername",name:"tvoxusername",type:"text",param:5},{title:"tvoxpasswd",name:"tvoxpasswd",type:"password",param:6},{title:"motionurlonring",name:"motionurlonring",type:"text",param:7},{title:"motionurlonanswer",name:"motionurlonanswer",type:"text",param:8},{title:"motiontitle",name:"motiontitle",type:"text",param:9},{title:"motionurl",name:"motionurl",type:"text",param:10}]}],["app"]),{isApp:!1}),r.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},r.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){n(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e,n){r.chatWebsite=e,r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},r.applications.disabled=!r.crudPermissions.canEdit,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getChatWebsiteApps(),r.getIntervals()},r.deleteConfirm=function(e,n,t){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.chatWebsiteApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})},r.getChatWebsiteApps=function(){r.promise=o.chatWebsite.getApplications(r.query,t).$promise},r.editChatWebsiteApp=n,r.editInterval=function(e,n){if(r.chatWebsiteApps.rows.length){var t=r.chatWebsiteApps.rows[n]?r.chatWebsiteApps.rows[n]:r.chatWebsiteApps.rows[0];i.show({controller:"EditChatWebsiteAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:[],crudPermissions:r.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,l())})}},r.deleteChatWebsiteApp=function(e){_.remove(r.chatWebsiteApps.rows,{id:e.id}),l(),s.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedChatWebsiteApps=function(e){var n=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+r.selectedChatWebsiteApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){r.selectedChatWebsiteApps.forEach(function(e){_.remove(r.chatWebsiteApps.rows,{id:e.id})}),r.selectedChatWebsiteApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return o.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){r.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.chat").controller("ChatWebsiteActionsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.chatWebsite.getAgents({id:c.chatWebsite.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserChatWebsite?"penalty "+e.UserChatWebsite.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.chatWebsite=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.chatWebsite.removeAgents({id:c.chatWebsite.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.chatWebsite.addAgents({id:c.chatWebsite.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("CHAT.ALL_AGENTS"),labelSelected:r.instant("CHAT.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","chatWebsite","chatWebsites","realtime","$translate","Auth","crudPermissions"],angular.module("app.chat").controller("ChatWebsiteagentaddController",e)}(),function(){"use strict";function e(e,a){var i=this;i.chatWebsite={},i.crudPermissions,i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.chatWebsite.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.chatWebsite.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e,n){i.chatWebsite=angular.copy(e),i.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.ngFlowOptions.target="/api/chat/websites/:id/avatar".replace(":id",i.chatWebsite.id),i.chatWebsite.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.chat").controller("ChatWebsiteagentAvatarController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.agent=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.agent.appdata)switch(l.agent.appType?l.agent.appType.toLowerCase():l.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.agent.appdata.split(",");l.agent.key=d[0],l.agent.language=d[1],l.agent.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.agent.appdata.split(",");l.agent.projectId=d[0],l.agent.clientEmail=d[1],l.agent.privateKey=d[2],l.agent.language=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.agent.appdata.split(",");l.agent.accesskeyid=d[0],l.agent.secretaccesskey=d[1],l.agent.lexregion=d[2],l.agent.botname=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.agent.appdata.split(",");l.agent.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.agent.text=d.slice(1,d.length).join(",");break;case"message":l.agent.text=l.agent.appdata;break;case"set":l.agent.name=l.agent.appdata.split("=")[0],l.agent.value=l.agent.appdata.split("=")[1];break;case"agi":l.agent.project=l.agent.appdata;break;default:var c=l.agent.appdata.split(",");l.agent.agent=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.agent.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.agent.timeout=30;function m(e){n.hide(e)}l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outbounddial"===l.agent.appType.toLowerCase()&&(l.agent.prefix=l.agent.phone?l.agent.phone.split("$")[0]:void 0,l.agent.callerId=l.agent.callerID?"CALLERID(all)="+l.agent.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outboundDial"===l.agent.appType&&(l.agent.phone=i.cutdigits?(l.agent.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.agent.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.agent.options+="U(xcally-mixmonitor-context)"):l.agent.options=l.agent.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.agents,{name:l.agent.agent});n&&(l.agent.UserId=n.id);if(l.agent.appType&&"custom"===l.agent.appType);else switch((l.agent.app||l.agent.appType).toLowerCase()){case"set":l.agent.appdata=l.agent.name+"="+l.agent.value;break;case"custom":break;default:e[0]=l.agent.agent,e[1]=l.agent.timeout,l.agent.appdata=e.join(",")}m(l.agent)},l.closeDialog=m,o.hasRole("admin")?s.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){l.agents=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){l.agents=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.agents,{id:e.resourceId})}),t=null;if(l.agent&&(t=_.find(l.agents,{name:l.agent.agent})),t&&!_.some(n,["id",t.id])){var a=_.find(l.agents,{id:t.id});a.canSelect=!1,n.push(a)}l.agents=n})}else{var t=[],a=null;l.agent&&(a=_.find(l.agents,{name:l.agent.agent}));for(var i=0;i<l.agents.length;i++)a&&l.agents[i].id===a.id&&(l.agents[i].canSelect=!1,t.push(l.agents[i]));l.agents=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppagentDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.amazonlex=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.amazonlex.appdata)switch(l.amazonlex.appType?l.amazonlex.appType.toLowerCase():l.amazonlex.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.amazonlex.appdata.split(",");l.amazonlex.key=d[0],l.amazonlex.language=d[1],l.amazonlex.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.amazonlex.appdata.split(",");l.amazonlex.projectId=d[0],l.amazonlex.clientEmail=d[1],l.amazonlex.privateKey=d[2],l.amazonlex.language=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=d[0],l.amazonlex.secretaccesskey=d[1],l.amazonlex.lexregion=d[2],l.amazonlex.botname=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.amazonlex.appdata.split(",");l.amazonlex.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.amazonlex.text=d.slice(1,d.length).join(",");break;case"message":l.amazonlex.text=l.amazonlex.appdata;break;case"set":l.amazonlex.name=l.amazonlex.appdata.split("=")[0],l.amazonlex.value=l.amazonlex.appdata.split("=")[1];break;case"agi":l.amazonlex.project=l.amazonlex.appdata;break;default:var c=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.amazonlex.secretaccesskey=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.amazonlex.lexregion=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.amazonlex.botname=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.amazonlex.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.amazonlex.lexregion="us-east-1";function m(e){n.hide(e)}l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outbounddial"===l.amazonlex.appType.toLowerCase()&&(l.amazonlex.prefix=l.amazonlex.phone?l.amazonlex.phone.split("$")[0]:void 0,l.amazonlex.callerId=l.amazonlex.callerID?"CALLERID(all)="+l.amazonlex.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outboundDial"===l.amazonlex.appType&&(l.amazonlex.phone=i.cutdigits?(l.amazonlex.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.amazonlex.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.amazonlex.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.amazonlex.options+="U(xcally-mixmonitor-context)"):l.amazonlex.options=l.amazonlex.options.replace("U(xcally-mixmonitor-context)",""));if(l.amazonlex.appType&&"custom"===l.amazonlex.appType);else switch((l.amazonlex.app||l.amazonlex.appType).toLowerCase()){case"set":l.amazonlex.appdata=l.amazonlex.name+"="+l.amazonlex.value;break;case"custom":break;default:e[0]=l.amazonlex.accesskeyid,e[1]=l.amazonlex.secretaccesskey,e[2]=l.amazonlex.lexregion,e[3]=l.amazonlex.botname,e[4]=l.amazonlex.welcomemessage,l.amazonlex.appdata=e.join(",")}m(l.amazonlex)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppamazonlexDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.autoreply=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.autoreply.appdata)switch(l.autoreply.appType?l.autoreply.appType.toLowerCase():l.autoreply.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.autoreply.appdata.split(",");l.autoreply.key=d[0],l.autoreply.language=d[1],l.autoreply.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.autoreply.appdata.split(",");l.autoreply.projectId=d[0],l.autoreply.clientEmail=d[1],l.autoreply.privateKey=d[2],l.autoreply.language=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.autoreply.appdata.split(",");l.autoreply.accesskeyid=d[0],l.autoreply.secretaccesskey=d[1],l.autoreply.lexregion=d[2],l.autoreply.botname=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.autoreply.appdata.split(",");l.autoreply.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.autoreply.text=d.slice(1,d.length).join(",");break;case"message":l.autoreply.text=l.autoreply.appdata;break;case"set":l.autoreply.name=l.autoreply.appdata.split("=")[0],l.autoreply.value=l.autoreply.appdata.split("=")[1];break;case"agi":l.autoreply.project=l.autoreply.appdata;break;default:var c=l.autoreply.appdata.split(",");l.autoreply.times=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.autoreply.text=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.autoreply.times=1;function m(e){n.hide(e)}l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outbounddial"===l.autoreply.appType.toLowerCase()&&(l.autoreply.prefix=l.autoreply.phone?l.autoreply.phone.split("$")[0]:void 0,l.autoreply.callerId=l.autoreply.callerID?"CALLERID(all)="+l.autoreply.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outboundDial"===l.autoreply.appType&&(l.autoreply.phone=i.cutdigits?(l.autoreply.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.autoreply.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.autoreply.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.autoreply.options+="U(xcally-mixmonitor-context)"):l.autoreply.options=l.autoreply.options.replace("U(xcally-mixmonitor-context)",""));if(l.autoreply.appType&&"custom"===l.autoreply.appType);else switch((l.autoreply.app||l.autoreply.appType).toLowerCase()){case"set":l.autoreply.appdata=l.autoreply.name+"="+l.autoreply.value;break;case"custom":break;default:e[0]=l.autoreply.times,e[1]=l.autoreply.text,l.autoreply.appdata=e.join(",")}m(l.autoreply)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppautoreplyDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.close=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.close.appdata)switch(l.close.appType?l.close.appType.toLowerCase():l.close.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.close.appdata.split(",");l.close.key=d[0],l.close.language=d[1],l.close.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.close.appdata.split(",");l.close.projectId=d[0],l.close.clientEmail=d[1],l.close.privateKey=d[2],l.close.language=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.close.appdata.split(",");l.close.accesskeyid=d[0],l.close.secretaccesskey=d[1],l.close.lexregion=d[2],l.close.botname=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.close.appdata.split(",");l.close.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.close.text=d.slice(1,d.length).join(",");break;case"message":l.close.text=l.close.appdata;break;case"set":l.close.name=l.close.appdata.split("=")[0],l.close.value=l.close.appdata.split("=")[1];break;case"agi":l.close.project=l.close.appdata;break;default:var c=l.close.appdata.split(",");l.close.disposition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outbounddial"===l.close.appType.toLowerCase()&&(l.close.prefix=l.close.phone?l.close.phone.split("$")[0]:void 0,l.close.callerId=l.close.callerID?"CALLERID(all)="+l.close.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outboundDial"===l.close.appType&&(l.close.phone=i.cutdigits?(l.close.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.close.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.close.options+="U(xcally-mixmonitor-context)"):l.close.options=l.close.options.replace("U(xcally-mixmonitor-context)",""));if(l.close.appType&&"custom"===l.close.appType);else switch((l.close.app||l.close.appType).toLowerCase()){case"set":l.close.appdata=l.close.name+"="+l.close.value;break;case"custom":break;default:e[0]=l.close.disposition,l.close.appdata=e.join(",")}m(l.close)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppcloseDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflow=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflow.appdata)switch(l.dialogflow.appType?l.dialogflow.appType.toLowerCase():l.dialogflow.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflow.appdata.split(",");l.dialogflow.key=d[0],l.dialogflow.language=d[1],l.dialogflow.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflow.appdata.split(",");l.dialogflow.projectId=d[0],l.dialogflow.clientEmail=d[1],l.dialogflow.privateKey=d[2],l.dialogflow.language=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflow.appdata.split(",");l.dialogflow.accesskeyid=d[0],l.dialogflow.secretaccesskey=d[1],l.dialogflow.lexregion=d[2],l.dialogflow.botname=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflow.appdata.split(",");l.dialogflow.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflow.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflow.text=l.dialogflow.appdata;break;case"set":l.dialogflow.name=l.dialogflow.appdata.split("=")[0],l.dialogflow.value=l.dialogflow.appdata.split("=")[1];break;case"agi":l.dialogflow.project=l.dialogflow.appdata;break;default:var c=l.dialogflow.appdata.split(",");l.dialogflow.key=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflow.language=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflow.welcomemessage=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}else l.dialogflow.language="en";function m(e){n.hide(e)}l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outbounddial"===l.dialogflow.appType.toLowerCase()&&(l.dialogflow.prefix=l.dialogflow.phone?l.dialogflow.phone.split("$")[0]:void 0,l.dialogflow.callerId=l.dialogflow.callerID?"CALLERID(all)="+l.dialogflow.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outboundDial"===l.dialogflow.appType&&(l.dialogflow.phone=i.cutdigits?(l.dialogflow.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflow.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflow.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflow.options+="U(xcally-mixmonitor-context)"):l.dialogflow.options=l.dialogflow.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflow.appType&&"custom"===l.dialogflow.appType);else switch((l.dialogflow.app||l.dialogflow.appType).toLowerCase()){case"set":l.dialogflow.appdata=l.dialogflow.name+"="+l.dialogflow.value;break;case"custom":break;default:e[0]=l.dialogflow.key,e[1]=l.dialogflow.language,e[2]=l.dialogflow.welcomemessage,l.dialogflow.appdata=e.join(",")}m(l.dialogflow)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppdialogflowDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflowv2=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflowv2.appdata)switch(l.dialogflowv2.appType?l.dialogflowv2.appType.toLowerCase():l.dialogflowv2.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.key=d[0],l.dialogflowv2.language=d[1],l.dialogflowv2.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=d[0],l.dialogflowv2.clientEmail=d[1],l.dialogflowv2.privateKey=d[2],l.dialogflowv2.language=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.accesskeyid=d[0],l.dialogflowv2.secretaccesskey=d[1],l.dialogflowv2.lexregion=d[2],l.dialogflowv2.botname=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflowv2.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflowv2.text=l.dialogflowv2.appdata;break;case"set":l.dialogflowv2.name=l.dialogflowv2.appdata.split("=")[0],l.dialogflowv2.value=l.dialogflowv2.appdata.split("=")[1];break;case"agi":l.dialogflowv2.project=l.dialogflowv2.appdata;break;default:var c=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflowv2.clientEmail=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflowv2.privateKey=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.dialogflowv2.language=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.dialogflowv2.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.dialogflowv2.language="en";function m(e){n.hide(e)}l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outbounddial"===l.dialogflowv2.appType.toLowerCase()&&(l.dialogflowv2.prefix=l.dialogflowv2.phone?l.dialogflowv2.phone.split("$")[0]:void 0,l.dialogflowv2.callerId=l.dialogflowv2.callerID?"CALLERID(all)="+l.dialogflowv2.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outboundDial"===l.dialogflowv2.appType&&(l.dialogflowv2.phone=i.cutdigits?(l.dialogflowv2.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflowv2.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflowv2.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflowv2.options+="U(xcally-mixmonitor-context)"):l.dialogflowv2.options=l.dialogflowv2.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflowv2.appType&&"custom"===l.dialogflowv2.appType);else switch((l.dialogflowv2.app||l.dialogflowv2.appType).toLowerCase()){case"set":l.dialogflowv2.appdata=l.dialogflowv2.name+"="+l.dialogflowv2.value;break;case"custom":break;default:e[0]=l.dialogflowv2.projectId,e[1]=l.dialogflowv2.clientEmail,e[2]=l.dialogflowv2.privateKey,e[3]=l.dialogflowv2.language,e[4]=l.dialogflowv2.welcomemessage,l.dialogflowv2.appdata=e.join(",")}m(l.dialogflowv2)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppdialogflowv2DialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotoif=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotoif.appdata)switch(l.gotoif.appType?l.gotoif.appType.toLowerCase():l.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotoif.appdata.split(",");l.gotoif.key=d[0],l.gotoif.language=d[1],l.gotoif.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotoif.appdata.split(",");l.gotoif.projectId=d[0],l.gotoif.clientEmail=d[1],l.gotoif.privateKey=d[2],l.gotoif.language=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotoif.appdata.split(",");l.gotoif.accesskeyid=d[0],l.gotoif.secretaccesskey=d[1],l.gotoif.lexregion=d[2],l.gotoif.botname=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotoif.appdata.split(",");l.gotoif.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotoif.text=d.slice(1,d.length).join(",");break;case"message":l.gotoif.text=l.gotoif.appdata;break;case"set":l.gotoif.name=l.gotoif.appdata.split("=")[0],l.gotoif.value=l.gotoif.appdata.split("=")[1];break;case"agi":l.gotoif.project=l.gotoif.appdata;break;default:var c=l.gotoif.appdata.split(",");l.gotoif.condition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.gotoif.truepriority=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.gotoif.falsepriority=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}function m(e){n.hide(e)}l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outbounddial"===l.gotoif.appType.toLowerCase()&&(l.gotoif.prefix=l.gotoif.phone?l.gotoif.phone.split("$")[0]:void 0,l.gotoif.callerId=l.gotoif.callerID?"CALLERID(all)="+l.gotoif.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outboundDial"===l.gotoif.appType&&(l.gotoif.phone=i.cutdigits?(l.gotoif.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotoif.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotoif.options+="U(xcally-mixmonitor-context)"):l.gotoif.options=l.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotoif.appType&&"custom"===l.gotoif.appType);else switch((l.gotoif.app||l.gotoif.appType).toLowerCase()){case"set":l.gotoif.appdata=l.gotoif.name+"="+l.gotoif.value;break;case"custom":break;default:e[0]=l.gotoif.condition,e[1]=l.gotoif.truepriority,e[2]=l.gotoif.falsepriority,l.gotoif.appdata=e.join(",")}m(l.gotoif)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppgotoifDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotop.appdata)switch(l.gotop.appType?l.gotop.appType.toLowerCase():l.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotop.appdata.split(",");l.gotop.key=d[0],l.gotop.language=d[1],l.gotop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotop.appdata.split(",");l.gotop.projectId=d[0],l.gotop.clientEmail=d[1],l.gotop.privateKey=d[2],l.gotop.language=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotop.appdata.split(",");l.gotop.accesskeyid=d[0],l.gotop.secretaccesskey=d[1],l.gotop.lexregion=d[2],l.gotop.botname=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotop.appdata.split(",");l.gotop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotop.text=d.slice(1,d.length).join(",");break;case"message":l.gotop.text=l.gotop.appdata;break;case"set":l.gotop.name=l.gotop.appdata.split("=")[0],l.gotop.value=l.gotop.appdata.split("=")[1];break;case"agi":l.gotop.project=l.gotop.appdata;break;default:var c=l.gotop.appdata.split(",");l.gotop.priority=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outbounddial"===l.gotop.appType.toLowerCase()&&(l.gotop.prefix=l.gotop.phone?l.gotop.phone.split("$")[0]:void 0,l.gotop.callerId=l.gotop.callerID?"CALLERID(all)="+l.gotop.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outboundDial"===l.gotop.appType&&(l.gotop.phone=i.cutdigits?(l.gotop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotop.options+="U(xcally-mixmonitor-context)"):l.gotop.options=l.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotop.appType&&"custom"===l.gotop.appType);else switch((l.gotop.app||l.gotop.appType).toLowerCase()){case"set":l.gotop.appdata=l.gotop.name+"="+l.gotop.value;break;case"custom":break;default:e[0]=l.gotop.priority,l.gotop.appdata=e.join(",")}m(l.gotop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppgotopDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom","list"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditChatWebsiteAppintervalDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.noop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.noop.appdata)switch(l.noop.appType?l.noop.appType.toLowerCase():l.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.noop.appdata.split(",");l.noop.key=d[0],l.noop.language=d[1],l.noop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.noop.appdata.split(",");l.noop.projectId=d[0],l.noop.clientEmail=d[1],l.noop.privateKey=d[2],l.noop.language=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.noop.appdata.split(",");l.noop.accesskeyid=d[0],l.noop.secretaccesskey=d[1],l.noop.lexregion=d[2],l.noop.botname=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.noop.appdata.split(",");l.noop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.noop.text=d.slice(1,d.length).join(",");break;case"message":l.noop.text=l.noop.appdata;break;case"set":l.noop.name=l.noop.appdata.split("=")[0],l.noop.value=l.noop.appdata.split("=")[1];break;case"agi":l.noop.project=l.noop.appdata;break;default:var c=l.noop.appdata.split(",");l.noop.value=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outbounddial"===l.noop.appType.toLowerCase()&&(l.noop.prefix=l.noop.phone?l.noop.phone.split("$")[0]:void 0,l.noop.callerId=l.noop.callerID?"CALLERID(all)="+l.noop.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outboundDial"===l.noop.appType&&(l.noop.phone=i.cutdigits?(l.noop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.noop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.noop.options+="U(xcally-mixmonitor-context)"):l.noop.options=l.noop.options.replace("U(xcally-mixmonitor-context)",""));if(l.noop.appType&&"custom"===l.noop.appType);else switch((l.noop.app||l.noop.appType).toLowerCase()){case"set":l.noop.appdata=l.noop.name+"="+l.noop.value;break;case"custom":break;default:e[0]=l.noop.value,l.noop.appdata=e.join(",")}m(l.noop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppnoopDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.queue=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.queue.appdata)switch(l.queue.appType?l.queue.appType.toLowerCase():l.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.queue.appdata.split(",");l.queue.key=d[0],l.queue.language=d[1],l.queue.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.queue.appdata.split(",");l.queue.projectId=d[0],l.queue.clientEmail=d[1],l.queue.privateKey=d[2],l.queue.language=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.queue.appdata.split(",");l.queue.accesskeyid=d[0],l.queue.secretaccesskey=d[1],l.queue.lexregion=d[2],l.queue.botname=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.queue.appdata.split(",");l.queue.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.queue.text=d.slice(1,d.length).join(",");break;case"message":l.queue.text=l.queue.appdata;break;case"set":l.queue.name=l.queue.appdata.split("=")[0],l.queue.value=l.queue.appdata.split("=")[1];break;case"agi":l.queue.project=l.queue.appdata;break;default:var c=l.queue.appdata.split(",");l.queue.queue=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.queue.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.queue.queue=300,l.queue.timeout=300;function m(e){n.hide(e)}l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outbounddial"===l.queue.appType.toLowerCase()&&(l.queue.prefix=l.queue.phone?l.queue.phone.split("$")[0]:void 0,l.queue.callerId=l.queue.callerID?"CALLERID(all)="+l.queue.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outboundDial"===l.queue.appType&&(l.queue.phone=i.cutdigits?(l.queue.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.queue.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.queue.options+="U(xcally-mixmonitor-context)"):l.queue.options=l.queue.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.queues,{name:l.queue.queue});n&&(l.queue[_.capitalize("chat")+"QueueId"]=n.id);if(l.queue.appType&&"custom"===l.queue.appType);else switch((l.queue.app||l.queue.appType).toLowerCase()){case"set":l.queue.appdata=l.queue.name+"="+l.queue.value;break;case"custom":break;default:e[0]=l.queue.queue,e[1]=l.queue.timeout,l.queue.appdata=e.join(",")}m(l.queue)},l.closeDialog=m,o.hasRole("admin")?s.chatQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.chatQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:501}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.queues,{id:e.resourceId})}),t=null;if(l.queue&&(t=_.find(l.queues,{name:l.queue.queue})),t&&!_.some(n,["id",t.id])){var a=_.find(l.queues,{id:t.id});a.canSelect=!1,n.push(a)}l.queues=n})}else{var t=[],a=null;l.queue&&(a=_.find(l.queues,{name:l.queue.queue}));for(var i=0;i<l.queues.length;i++)a&&l.queues[i].id===a.id&&(l.queues[i].canSelect=!1,t.push(l.queues[i]));l.queues=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppqueueDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.system=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.system.appdata)switch(l.system.appType?l.system.appType.toLowerCase():l.system.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.system.appdata.split(",");l.system.key=d[0],l.system.language=d[1],l.system.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.system.appdata.split(",");l.system.projectId=d[0],l.system.clientEmail=d[1],l.system.privateKey=d[2],l.system.language=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.system.appdata.split(",");l.system.accesskeyid=d[0],l.system.secretaccesskey=d[1],l.system.lexregion=d[2],l.system.botname=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.system.appdata.split(",");l.system.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.system.text=d.slice(1,d.length).join(",");break;case"message":l.system.text=l.system.appdata;break;case"set":l.system.name=l.system.appdata.split("=")[0],l.system.value=l.system.appdata.split("=")[1];break;case"agi":l.system.project=l.system.appdata;break;default:var c=l.system.appdata.split(",");l.system.command=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.system.variable=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.system.variable="";function m(e){n.hide(e)}l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outbounddial"===l.system.appType.toLowerCase()&&(l.system.prefix=l.system.phone?l.system.phone.split("$")[0]:void 0,l.system.callerId=l.system.callerID?"CALLERID(all)="+l.system.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outboundDial"===l.system.appType&&(l.system.phone=i.cutdigits?(l.system.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.system.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.system.options+="U(xcally-mixmonitor-context)"):l.system.options=l.system.options.replace("U(xcally-mixmonitor-context)",""));if(l.system.appType&&"custom"===l.system.appType);else switch((l.system.app||l.system.appType).toLowerCase()){case"set":l.system.appdata=l.system.name+"="+l.system.value;break;case"custom":break;default:e[0]=l.system.command,e[1]=l.system.variable,l.system.appdata=e.join(",")}m(l.system)},l.closeDialog=m,o.hasRole("admin")?s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1012}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.variables,{id:e.resourceId})}),t=null;if(l.system&&(t=_.find(l.variables,{name:l.system.variable})),t&&!_.some(n,["id",t.id])){var a=_.find(l.variables,{id:t.id});a.canSelect=!1,n.push(a)}l.variables=n})}else{var t=[],a=null;l.system&&(a=_.find(l.variables,{name:l.system.variable}));for(var i=0;i<l.variables.length;i++)a&&l.variables[i].id===a.id&&(l.variables[i].canSelect=!1,t.push(l.variables[i]));l.variables=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppsystemDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.tag=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.tag.appdata)switch(l.tag.appType?l.tag.appType.toLowerCase():l.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.tag.appdata.split(",");l.tag.key=d[0],l.tag.language=d[1],l.tag.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.tag.appdata.split(",");l.tag.projectId=d[0],l.tag.clientEmail=d[1],l.tag.privateKey=d[2],l.tag.language=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.tag.appdata.split(",");l.tag.accesskeyid=d[0],l.tag.secretaccesskey=d[1],l.tag.lexregion=d[2],l.tag.botname=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.tag.appdata.split(",");l.tag.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.tag.text=d.slice(1,d.length).join(",");break;case"message":l.tag.text=l.tag.appdata;break;case"set":l.tag.name=l.tag.appdata.split("=")[0],l.tag.value=l.tag.appdata.split("=")[1];break;case"agi":l.tag.project=l.tag.appdata;break;default:var c=l.tag.appdata.split(",");l.tag.tag=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outbounddial"===l.tag.appType.toLowerCase()&&(l.tag.prefix=l.tag.phone?l.tag.phone.split("$")[0]:void 0,l.tag.callerId=l.tag.callerID?"CALLERID(all)="+l.tag.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outboundDial"===l.tag.appType&&(l.tag.phone=i.cutdigits?(l.tag.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.tag.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.tag.options+="U(xcally-mixmonitor-context)"):l.tag.options=l.tag.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.tags,{name:l.tag.tag});n&&(l.tag.TagId=n.id);if(l.tag.appType&&"custom"===l.tag.appType);else switch((l.tag.app||l.tag.appType).toLowerCase()){case"set":l.tag.appdata=l.tag.name+"="+l.tag.value;break;case"custom":break;default:e[0]=l.tag.tag,l.tag.appdata=e.join(",")}m(l.tag)},l.closeDialog=m,o.hasRole("admin")?s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1008}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.tags,{id:e.resourceId})}),t=null;if(l.tag&&(t=_.find(l.tags,{name:l.tag.tag})),t&&!_.some(n,["id",t.id])){var a=_.find(l.tags,{id:t.id});a.canSelect=!1,n.push(a)}l.tags=n})}else{var t=[],a=null;l.tag&&(a=_.find(l.tags,{name:l.tag.tag}));for(var i=0;i<l.tags.length;i++)a&&l.tags[i].id===a.id&&(l.tags[i].canSelect=!1,t.push(l.tags[i]));l.tags=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtags",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteApptagDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.tvox=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.tvox.appdata)switch(l.tvox.appType?l.tvox.appType.toLowerCase():l.tvox.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.tvox.appdata.split(",");l.tvox.key=d[0],l.tvox.language=d[1],l.tvox.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.tvox.appdata.split(",");l.tvox.projectId=d[0],l.tvox.clientEmail=d[1],l.tvox.privateKey=d[2],l.tvox.language=d[3],l.tvox.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.tvox.appdata.split(",");l.tvox.accesskeyid=d[0],l.tvox.secretaccesskey=d[1],l.tvox.lexregion=d[2],l.tvox.botname=d[3],l.tvox.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.tvox.appdata.split(",");l.tvox.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.tvox.text=d.slice(1,d.length).join(",");break;case"message":l.tvox.text=l.tvox.appdata;break;case"set":l.tvox.name=l.tvox.appdata.split("=")[0],l.tvox.value=l.tvox.appdata.split("=")[1];break;case"agi":l.tvox.project=l.tvox.appdata;break;default:var c=l.tvox.appdata.split(",");l.tvox.serviceid=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.tvox.channelid=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.tvox.tvoxurl=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.tvox.tvoxloginurl=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.tvox.tvoxsessionurl=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10),l.tvox.tvoxusername=_.isEmpty(c[5])?c[5]:isNaN(c[5])?c[5]:parseInt(c[5],10),l.tvox.tvoxpasswd=_.isEmpty(c[6])?c[6]:isNaN(c[6])?c[6]:parseInt(c[6],10),l.tvox.motionurlonring=_.isEmpty(c[7])?c[7]:isNaN(c[7])?c[7]:parseInt(c[7],10),l.tvox.motionurlonanswer=_.isEmpty(c[8])?c[8]:isNaN(c[8])?c[8]:parseInt(c[8],10),l.tvox.motiontitle=_.isEmpty(c[9])?c[9]:isNaN(c[9])?c[9]:parseInt(c[9],10),l.tvox.motionurl=_.isEmpty(c[10])?c[10]:isNaN(c[10])?c[10]:parseInt(c[10],10)}function m(e){n.hide(e)}l.tvox.type&&"outbound"===l.tvox.type.toLowerCase()&&"outbounddial"===l.tvox.appType.toLowerCase()&&(l.tvox.prefix=l.tvox.phone?l.tvox.phone.split("$")[0]:void 0,l.tvox.callerId=l.tvox.callerID?"CALLERID(all)="+l.tvox.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.tvox.type&&"outbound"===l.tvox.type.toLowerCase()&&"outboundDial"===l.tvox.appType&&(l.tvox.phone=i.cutdigits?(l.tvox.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.tvox.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.tvox.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.tvox.options+="U(xcally-mixmonitor-context)"):l.tvox.options=l.tvox.options.replace("U(xcally-mixmonitor-context)",""));if(l.tvox.appType&&"custom"===l.tvox.appType);else switch((l.tvox.app||l.tvox.appType).toLowerCase()){case"set":l.tvox.appdata=l.tvox.name+"="+l.tvox.value;break;case"custom":break;default:e[0]=l.tvox.serviceid,e[1]=l.tvox.channelid,e[2]=l.tvox.tvoxurl,e[3]=l.tvox.tvoxloginurl,e[4]=l.tvox.tvoxsessionurl,e[5]=l.tvox.tvoxusername,e[6]=l.tvox.tvoxpasswd,e[7]=l.tvox.motionurlonring,e[8]=l.tvox.motionurlonanswer,e[9]=l.tvox.motiontitle,e[10]=l.tvox.motionurl,l.tvox.appdata=e.join(",")}m(l.tvox)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteApptvoxDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.chatWebsiteChatCannedAnswers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.chatWebsite.getAnswers(m.query,u).$promise}function g(e){d.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(m.chatWebsiteChatCannedAnswers.rows,{id:e.id}),m.chatWebsiteChatCannedAnswers.count-=1,m.chatWebsiteChatCannedAnswers.rows.length||p(),l.success({title:"ChatCannedAnswer deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETchatWebsite"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.chatWebsite={},m.chatWebsiteChatCannedAnswers={count:0,rows:[]},m.selectedChatWebsiteChatCannedAnswers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,key,value,description",limit:10,page:1},m.init=function(e,n,t){m.chatWebsite=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.ChatWebsiteId=m.chatWebsite.id,m.query.id=m.chatWebsite.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the chatCannedAnswer?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("chatCannedAnswer #")+e.id||"chatCannedAnswer")+"</b> will be deleted.").ariaLabel("delete chatCannedAnswer").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getChatWebsiteChatCannedAnswers=p,m.createOrEditChatWebsiteChatCannedAnswer=function(e,n){o.show({controller:"CreateOrEditChatCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/chatCannedAnswers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:m.chatWebsite,chatCannedAnswer:n,chatCannedAnswers:m.chatWebsiteChatCannedAnswers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedChatWebsiteChatCannedAnswers=function(){var e=angular.copy(m.selectedChatWebsiteChatCannedAnswers);return m.selectedChatWebsiteChatCannedAnswers=[],e},m.deleteChatWebsiteChatCannedAnswer=g,m.deleteSelectedChatWebsiteChatCannedAnswers=function(e){var n=o.confirm().title("Are you sure want to delete the selected chatCannedAnswers?").htmlContent("<b>"+m.selectedChatWebsiteChatCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete chatCannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedChatWebsiteChatCannedAnswers.forEach(function(e){g(e)}),m.selectedChatWebsiteChatCannedAnswers=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.chat").controller("ChatWebsiteChatCannedAnswersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CHAT.EDIT_CHATCANNEDANSWER",g.chatCannedAnswer=angular.copy(l),g.chatCannedAnswers=r,g.newChatCannedAnswer=!1,g.chatCannedAnswer||(g.chatCannedAnswer={},g.title="CHAT.NEW_CHATCANNEDANSWER",g.newChatCannedAnswer=!0),n.params.id&&(g.chatCannedAnswer.ChatWebsiteId=n.params.id),g.addNewChatCannedAnswer=function(){g.errors=[],d.cannedAnswer.save(g.chatCannedAnswer).$promise.then(function(e){g.chatCannedAnswers.unshift(e.toJSON()),o.success({title:"ChatCannedAnswer properly created",msg:g.chatCannedAnswer.name?g.chatCannedAnswer.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveChatCannedAnswer=function(){g.errors=[],d.cannedAnswer.update({id:g.chatCannedAnswer.id},g.chatCannedAnswer).$promise.then(function(e){var n=_.find(g.chatCannedAnswers,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ChatCannedAnswer properly saved!",msg:g.chatCannedAnswer.name?g.chatCannedAnswer.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteChatCannedAnswer=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The chatCannedAnswer will be deleted.").ariaLabel("Delete ChatCannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cannedAnswer.delete({id:g.chatCannedAnswer.id}).$promise.then(function(){_.remove(g.chatCannedAnswers,{id:g.chatCannedAnswer.id}),o.success({title:"ChatCannedAnswer properly deleted!",msg:(g.chatCannedAnswer.name||"chatCannedAnswer")+" has been deleted!"}),v(g.chatCannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","chatCannedAnswers","chatCannedAnswer","api","Auth","license","setting","crudPermissions"],angular.module("app.chat").controller("CreateOrEditChatCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.chatWebsite.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.chatWebsite=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.ChatWebsiteId=m.chatWebsite.id,m.query.id=m.chatWebsite.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.chatWebsite.id,field:"ChatWebsiteId",route:"chatWebsite"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.chat").controller("ChatWebsiteDispositionsController",e)}(),function(){"use strict";function e(t,e,a){var i=this;i.chatWebsite={},i.offlineForm={},i.buttons=[{type:"label",name:"Label",icon:"icon-label"},{type:"chooseFromList",name:"Select",icon:"icon-playlist-plus"},{type:"input",name:"Input",icon:"icon-keyboard"},{type:"textarea",name:"Textarea",icon:"icon-format-text"},{type:"multipleChoices",name:"Radio Buttons",icon:"icon-radiobox-marked"},{type:"checkboxes",name:"Checkboxes",icon:"icon-checkbox-multiple-marked-outline"},{type:"agreement",name:"Agreement",icon:"icon-checkbox-marked-outline"},{type:"upload",name:"Upload",icon:"icon-upload"}],i.init=function(e){i.fields=[],i.customFields=[],i.uselessFields=["id","createdAt","updatedAt","ListId","CompanyId","$promise","$resolved"],i.chatWebsite=e,_.isEmpty(i.chatWebsite.offlineForm)&&(i.chatWebsite.offlineForm={items:[],fromKey:null});a.cmList.getCustomFields({id:i.chatWebsite.ListId}).$promise.then(function(e){for(var n=0;n<e.rows.length;n++)i.customFields.push({key:"cf_"+e.rows[n].id,value:e.rows[n].alias});return a.cmContact.describe().$promise}).then(function(e){for(var n=_.keys(e),t=0;t<n.length;t++)_.includes(i.uselessFields,n[t])||_.startsWith(n[t],"cf_")||i.fields.unshift({key:n[t],value:n[t]});return a.variable.get().$promise}).then(function(e){return i.variables=e.rows,a.mailAccount.get({fields:"id,name",raw:!0}).$promise.then(function(e){i.email_accounts=e.rows})}).catch(function(e){console.error(e)})},i.up=function(e,n){if(0!==n){var t=i.chatWebsite.offlineForm.items[n-1];i.chatWebsite.offlineForm.items[n]=t,i.chatWebsite.offlineForm.items[n-1]=angular.copy(e),i.chatWebsite.offlineForm.fromKey===n?i.chatWebsite.offlineForm.fromKey--:i.chatWebsite.offlineForm.fromKey===n-1&&i.chatWebsite.offlineForm.fromKey++}},i.down=function(e,n){if(n!==i.chatWebsite.offlineForm.items.length-1){var t=i.chatWebsite.offlineForm.items[n+1];i.chatWebsite.offlineForm.items[n]=t,i.chatWebsite.offlineForm.items[n+1]=angular.copy(e),i.chatWebsite.offlineForm.fromKey===n?i.chatWebsite.offlineForm.fromKey++:i.chatWebsite.offlineForm.fromKey===n+1&&i.chatWebsite.offlineForm.fromKey--}},i.add=function(e){i.chatWebsite.offlineForm.items.push({type:e,cmField:null,variable:null})},i.remove=function(e){var n=t.confirm().title("The component will be deleted.").textContent("Are you sure?").ariaLabel("Lucky day").ok("Ok").cancel("Cancel");t.show(n).then(function(){i.chatWebsite.offlineForm.items.splice(e,1)})},i.card_type="offline",i.email_accounts=[]}e.$inject=["$mdDialog","$document","api"],angular.module("app.chat").controller("ChatWebsiteofflineFormController",e)}(),function(){"use strict";function e(t,e,a){var i=this;i.chatWebsite={},i.onlineForm={},i.buttons=[{type:"label",name:"Label",icon:"icon-label"},{type:"chooseFromList",name:"Select",icon:"icon-playlist-plus"},{type:"input",name:"Input",icon:"icon-keyboard"},{type:"textarea",name:"Textarea",icon:"icon-format-text"},{type:"multipleChoices",name:"Radio Buttons",icon:"icon-radiobox-marked"},{type:"checkboxes",name:"Checkboxes",icon:"icon-checkbox-multiple-marked-outline"},{type:"agreement",name:"Agreement",icon:"icon-checkbox-marked-outline"}],i.init=function(e){i.fields=[],i.customFields=[],i.uselessFields=["id","createdAt","updatedAt","ListId","CompanyId","$promise","$resolved"],i.chatWebsite=e,_.isEmpty(i.chatWebsite.onlineForm)&&(i.chatWebsite.onlineForm={items:[],fromKey:null});a.cmList.getCustomFields({id:i.chatWebsite.ListId}).$promise.then(function(e){for(var n=0;n<e.rows.length;n++)i.customFields.push({key:"cf_"+e.rows[n].id,value:e.rows[n].alias});return a.cmContact.describe().$promise}).then(function(e){for(var n=_.keys(e),t=0;t<n.length;t++)_.includes(i.uselessFields,n[t])||_.startsWith(n[t],"cf_")||i.fields.unshift({key:n[t],value:n[t]});return a.variable.get().$promise}).then(function(e){return i.variables=e.rows,a.mailAccount.get({fields:"id,name",raw:!0}).$promise.then(function(e){i.email_accounts=e.rows})}).catch(function(e){console.error(e)})},i.up=function(e,n){if(0!==n){var t=i.chatWebsite.onlineForm.items[n-1];i.chatWebsite.onlineForm.items[n]=t,i.chatWebsite.onlineForm.items[n-1]=angular.copy(e),i.chatWebsite.onlineForm.fromKey===n?i.chatWebsite.onlineForm.fromKey--:i.chatWebsite.onlineForm.fromKey===n-1&&i.chatWebsite.onlineForm.fromKey++}},i.down=function(e,n){if(n!==i.chatWebsite.onlineForm.items.length-1){var t=i.chatWebsite.onlineForm.items[n+1];i.chatWebsite.onlineForm.items[n]=t,i.chatWebsite.onlineForm.items[n+1]=angular.copy(e),i.chatWebsite.onlineForm.fromKey===n?i.chatWebsite.onlineForm.fromKey++:i.chatWebsite.onlineForm.fromKey===n+1&&i.chatWebsite.onlineForm.fromKey--}},i.add=function(e){i.chatWebsite.onlineForm.items.push({type:e,cmField:null,variable:null})},i.remove=function(e){var n=t.confirm().title("The component will be deleted.").textContent("Are you sure?").ariaLabel("Lucky day").ok("Ok").cancel("Cancel");t.show(n).then(function(){i.chatWebsite.onlineForm.fromKey===e&&(i.chatWebsite.onlineForm.fromKey=null),i.chatWebsite.onlineForm.items.splice(e,1),i.chatWebsite.onlineForm.items.length||(i.chatWebsite.onlineForm.fromKey=null)})},i.card_type="online",i.email_accounts=[]}e.$inject=["$mdDialog","$document","api"],angular.module("app.chat").controller("ChatWebsiteonlineFormController",e)}(),function(){"use strict";function e(e,a){var i=this;i.chatWebsite={},i.crudPermissions,i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.chatWebsite.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.chatWebsite.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e,n){i.chatWebsite=angular.copy(e),i.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.ngFlowOptions.target="/api/chat/websites/:id/customer_avatar".replace(":id",i.chatWebsite.id),i.chatWebsite.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.chat").controller("ChatWebsitecustomerAvatarController",e)}(),function(){"use strict";function e(e,a,n,t,i,s,o,r,l,d,c){var m=this;function u(e){m.chatWebsiteInteractions=e||{count:0,rows:[]};for(var n=0;n<m.chatWebsiteInteractions.rows.length;n+=1){var t=m.chatWebsiteInteractions.rows[n];v(t),t.Owner.name=h(t)}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.chatInteraction.get(m.query,u).$promise}function g(e){d.chatInteraction.delete({id:e.id}).$promise.then(function(){_.remove(m.chatWebsiteInteractions.rows,{id:e.id}),m.chatWebsiteInteractions.count-=1,m.chatWebsiteInteractions.rows.length||p(),l.success({title:"Interaction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETchatWebsite"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(e){e.Contact?e.contactName=(e.Contact.firstName||"")+" "+(e.Contact.lastName||""):e.contactName=i.instant("DASHBOARDS.UNKNOWN")}function h(e){return e.UserId?e.UserId===m.currentUser.id?i.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">":i.instant("DASHBOARDS.NOT_ASSIGNED")}m.currentUser=c.getCurrentUser(),m.chatWebsite={},m.chatWebsiteInteractions={count:0,rows:[]},m.selectedChatWebsiteInteractions=[],m.crudPermissions,m.query={read:"null",closed:"null",sort:"-createdAt",includeAll:"true",limit:10,page:1},m.init=function(e,n,t){m.chatWebsite=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.ChatWebsiteId=m.chatWebsite.id,m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Customer Ip",column:"customerIp",type:"text",options:{excludedOperators:["$eq","$ne","$startsWith","$endsWith"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},d.tag.get({sort:"name"}).$promise.then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]})},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interaction #")+e.id||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.chatInteractionDownload=function(s,e,n){return d.chatInteraction.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="interaction"+s.id,a=new Blob(n,{type:e.type});t="chat-interaction"+s.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatWebsite.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getChatWebsiteInteractions=p,m.createOrEditChatWebsiteInteraction=function(e,n){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/interactions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:m.chatWebsite,interaction:n,interactions:m.chatWebsiteInteractions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.spychatInteraction=function(e,t){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,n){e.vm.init({id:1,channel:"chat",interaction:t,spy:!0},a.$parent.vm.setting)}})},m.openAdvancedSearch=function(){o.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,locals:{fields:m.advancedSearch.fields,color:void 0,storagePath:"chat.chatWebsites"},fullscreen:!0}).then(function(e){if(m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply){var n="";n+="||ChatWebsiteId:=$eq["+m.chatWebsite.id+"]",m.query.search=e.value?e.value+=n:e.value,p()}}).catch(function(e){l.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.exportSelectedChatWebsiteInteractions=function(){var e=angular.copy(m.selectedChatWebsiteInteractions);return m.selectedChatWebsiteInteractions=[],e},m.deleteChatWebsiteInteraction=g,m.deleteSelectedChatWebsiteInteractions=function(e){var n=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+m.selectedChatWebsiteInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedChatWebsiteInteractions.forEach(function(e){g(e)}),m.selectedChatWebsiteInteractions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.chat").controller("ChatWebsiteInteractionsController",e)}(),function(){"use strict";function e(e,a){var i=this;i.chatWebsite={},i.crudPermissions,i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.chatWebsite.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.chatWebsite.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e,n){i.chatWebsite=angular.copy(e),i.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.ngFlowOptions.target="/api/chat/websites/:id/logo".replace(":id",i.chatWebsite.id),i.chatWebsite.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.chat").controller("ChatWebsitelogoController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.chatWebsiteOfflineMessages=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.chatWebsite.getOfflineMessages(m.query,u).$promise}function g(e){d.chatOfflineMessage.delete({id:e.id}).$promise.then(function(){_.remove(m.chatWebsiteOfflineMessages.rows,{id:e.id}),m.chatWebsiteOfflineMessages.count-=1,m.chatWebsiteOfflineMessages.rows.length||p(),l.success({title:"OfflineMessage deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETchatWebsite"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.chatWebsite={},m.chatWebsiteOfflineMessages={count:0,rows:[]},m.selectedChatWebsiteOfflineMessages=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,attachments,Contact.firstName,ContactId,ChatWebsiteId",sort:"-createdAt",limit:10,page:1},m.init=function(e,n,t){m.chatWebsite=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.id=m.chatWebsite.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the offlineMessage?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("offlineMessage #")+e.id||"offlineMessage")+"</b> will be deleted.").ariaLabel("delete offlineMessage").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getChatWebsiteOfflineMessages=p,m.createOrEditChatWebsiteOfflineMessage=function(e,n){o.show({controller:"CreateOrEditOfflineMessageDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/offlineMessages/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:m.chatWebsite,offlineMessage:n,offlineMessages:m.chatWebsiteOfflineMessages.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.showOfflineMessageChatWebsiteOfflineMessage=function(e,t){o.show({controller:"ShowOfflineMessageOfflineMessageDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/offlineMessages/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,resolve:{message:["apiResolver","$stateParams",function(e,n){return e.resolve("chatOfflineMessage@get",{fields:"id,body",id:t.id})}],attachments:["apiResolver","$stateParams",function(e,n){return e.resolve("attachment@get",{fields:"id,name",ChatOfflineMessageId:t.id})}]}})},m.exportSelectedChatWebsiteOfflineMessages=function(){var e=angular.copy(m.selectedChatWebsiteOfflineMessages);return m.selectedChatWebsiteOfflineMessages=[],e},m.deleteChatWebsiteOfflineMessage=g,m.deleteSelectedChatWebsiteOfflineMessages=function(e){var n=o.confirm().title("Are you sure want to delete the selected offlineMessages?").htmlContent("<b>"+m.selectedChatWebsiteOfflineMessages.length+" selected</b> will be deleted.").ariaLabel("delete offlineMessages").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedChatWebsiteOfflineMessages.forEach(function(e){g(e)}),m.selectedChatWebsiteOfflineMessages=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.chat").controller("ChatWebsiteOfflineMessagesController",e)}(),function(){"use strict";function e(n,e,t,a,i){var s=this;s.title="CHAT.OFFLINE_MESSAGE",s.message=a,s.attachments=i.rows,s.closeDialog=function(e){n.hide(e)},s.download=function(i){return e.attachment.download({id:i.id}).$promise.then(function(e){if(e){var n=new Blob([e.buffer],{type:e.type}),t=document.createElement("a"),a=window.URL.createObjectURL(n);t.href=a,t.target="_self",t.download=i.name,document.body.appendChild(t),t.click(),setTimeout(function(){document.body.removeChild(t),window.URL.revokeObjectURL(a)},100)}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"ATTACHMENTS:GET",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.isHtml=_.isNil(s.message.body.match(/\s?<!doctype html>|(<html\b[^>]*>|<body\b[^>]*>|<x-[^>]+>)+/i))}e.$inject=["$mdDialog","api","toasty","message","attachments"],angular.module("app.chat").controller("ShowOfflineMessageOfflineMessageDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.chatWebsiteProactiveActions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.chatWebsite.getProactiveActions(m.query,u).$promise}function g(e){d.chatProactiveAction.delete({id:e.id}).$promise.then(function(){_.remove(m.chatWebsiteProactiveActions.rows,{id:e.id}),m.chatWebsiteProactiveActions.count-=1,m.chatWebsiteProactiveActions.rows.length||p(),l.success({title:"ChatProactiveAction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETchatWebsite"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.chatWebsite={},m.chatWebsiteProactiveActions={count:0,rows:[]},m.selectedChatWebsiteProactiveActions=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,name,type,selector,timeout",limit:10,page:1},m.arraytype=_.keyBy([{option:"MouseOver",value:"'mouseOver'"},{option:"Timeout",value:"'timeout'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),m.init=function(e,n,t){m.chatWebsite=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.ChatWebsiteId=m.chatWebsite.id,m.query.id=m.chatWebsite.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the chatProactiveAction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("chatProactiveAction #")+e.id||"chatProactiveAction")+"</b> will be deleted.").ariaLabel("delete chatProactiveAction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getChatWebsiteProactiveActions=p,m.createOrEditChatWebsiteChatProactiveAction=function(e,n){o.show({controller:"CreateOrEditChatProactiveActionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/proactive/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:m.chatWebsite,chatProactiveAction:n,proactive:m.chatWebsiteProactiveActions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedChatWebsiteProactiveActions=function(){var e=angular.copy(m.selectedChatWebsiteProactiveActions);return m.selectedChatWebsiteProactiveActions=[],e},m.deleteChatWebsiteChatProactiveAction=g,m.deleteSelectedChatWebsiteProactiveActions=function(e){var n=o.confirm().title("Are you sure want to delete the selected proactive?").htmlContent("<b>"+m.selectedChatWebsiteProactiveActions.length+" selected</b> will be deleted.").ariaLabel("delete proactive").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedChatWebsiteProactiveActions.forEach(function(e){g(e)}),m.selectedChatWebsiteProactiveActions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.chat").controller("ChatWebsiteProactiveActionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CHAT.EDIT_CHATPROACTIVEACTION",g.chatProactiveAction=angular.copy(l),g.proactive=r,g.newChatProactiveAction=!1,g.chatProactiveAction||(g.chatProactiveAction={type:"mouseOver"},g.title="CHAT.NEW_CHATPROACTIVEACTION",g.newChatProactiveAction=!0),n.params.id&&(g.chatProactiveAction.ChatWebsiteId=n.params.id),g.addNewChatProactiveAction=function(){g.errors=[],d.chatProactiveAction.save(g.chatProactiveAction).$promise.then(function(e){g.proactive.unshift(e.toJSON()),o.success({title:"ChatProactiveAction properly created",msg:g.chatProactiveAction.name?g.chatProactiveAction.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatProactiveAction.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatProactiveAction.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveChatProactiveAction=function(){g.errors=[],d.chatProactiveAction.update({id:g.chatProactiveAction.id},g.chatProactiveAction).$promise.then(function(e){var n=_.find(g.proactive,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ChatProactiveAction properly saved!",msg:g.chatProactiveAction.name?g.chatProactiveAction.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatProactiveAction.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatProactiveAction.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteChatProactiveAction=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The chatProactiveAction will be deleted.").ariaLabel("Delete ChatProactiveAction").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.chatProactiveAction.delete({id:g.chatProactiveAction.id}).$promise.then(function(){_.remove(g.proactive,{id:g.chatProactiveAction.id}),o.success({title:"ChatProactiveAction properly deleted!",msg:(g.chatProactiveAction.name||"chatProactiveAction")+" has been deleted!"}),v(g.chatProactiveAction)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatProactiveAction.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatProactiveAction.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","proactive","chatProactiveAction","api","Auth","license","setting","crudPermissions"],angular.module("app.chat").controller("CreateOrEditChatProactiveActionDialogController",e)}(),function(){"use strict";function e(e){var n=this;n.chatWebsite={},n.init=function(e){n.chatWebsite=e,n.start="\n\x3c!-- START Motion Chat Script --\x3e",n.script='\n <script src="'+n.chatWebsite.remote+"/api/chat/websites/"+n.chatWebsite.id+"/snippet?token="+n.chatWebsite.token+'"><\/script>',n.end="\n\x3c!-- START Motion Chat Script --\x3e"},n.info={},e.$watch("vm_ac.chatWebsite.remote",function(e){n.script='\n <script src="'+n.chatWebsite.remote+"/api/chat/websites/"+n.chatWebsite.id+"/snippet?token="+n.chatWebsite.token+'"><\/script>'})}e.$inject=["$scope"],angular.module("app.chat").controller("ChatWebsiteScriptController",e)}(),function(){"use strict";function e(e,a){var i=this;i.chatWebsite={},i.crudPermissions,i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.chatWebsite.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.chatWebsite.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e,n){i.chatWebsite=angular.copy(e),i.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.ngFlowOptions.target="/api/chat/websites/:id/system_avatar".replace(":id",i.chatWebsite.id),i.chatWebsite.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.chat").controller("ChatWebsitesystemAvatarController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=s,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=n.protocol()+"://"+n.host(),p.chatWebsite=c||e.params.chatWebsite||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=e.params.tab||0,p.agentadddialog=function(e,n){t.show({controller:"ChatWebsiteagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatWebsite:e,chatWebsites:p.chatWebsites?p.chatWebsites.rows:[],crudPermissions:p.crudPermissions,realtime:!1}})},p.alert=l.info,p.gotoChatWebsites=function(){e.go("app.chat.chatWebsites",{},{reload:"app.chat.chatWebsites"})},p.saveChatWebsite=function(){r.chatWebsite.update({id:p.chatWebsite.id},p.chatWebsite).$promise.then(function(){l.success({title:"ChatWebsite updated!",msg:p.chatWebsite.name?p.chatWebsite.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.lists,{id:e.resourceId})}),t=null;if(p.chatWebsite&&(t=_.find(p.lists,{id:Number(p.chatWebsite.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.lists,{id:t.id});a.canSelect=!1,n.push(a)}p.lists=n})}else{var t=[],a=null;p.chatWebsite&&(a=_.find(p.lists,{id:Number(p.chatWebsite.ListId)}));for(var i=0;i<p.lists.length;i++)a&&p.lists[i].id===a.id&&(p.lists[i].canSelect=!1,t.push(p.lists[i]));p.lists=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){p.interval=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){p.interval=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.interval,{id:e.resourceId})}),t=null;if(p.chatWebsite&&(t=_.find(p.interval,{id:Number(p.chatWebsite.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.interval,{id:t.id});a.canSelect=!1,n.push(a)}p.interval=n})}else{var t=[],a=null;p.chatWebsite&&(a=_.find(p.interval,{id:Number(p.chatWebsite.IntervalId)}));for(var i=0;i<p.interval.length;i++)a&&p.interval[i].id===a.id&&(p.interval[i].canSelect=!1,t.push(p.interval[i]));p.interval=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.pauses,{id:e.resourceId})});p.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),p.pauses=n})}else p.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","chatWebsite","userProfile","userProfileSection"],angular.module("app.chat").controller("ChatWebsiteController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c,m){var u=this,p=["loggedIn","available","waiting","paused"],g=n(function(){},999);u.currentUser=c.getCurrentUser(),u.queues=s,u.userProfileSection=d&&1==d.count?d.rows[0]:null,u.crudPermissions=c.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.query={id:c.isUser()?u.currentUser.id:void 0,section:c.isUser()?"ChatQueues":void 0,channel:"chat",sort:"name",limit:10,page:1},u.getQueues=function(){u.query.offset=(u.query.page-1)*u.query.limit,o.realtime.getQueues(u.query).$promise.then(function(e){u.queues=e}).catch(function(e){l.error({title:i.instant("CHAT.CHATQUEUES"),msg:e.status?JSON.stringify(e.data):e.toString()})})},u.editQueue=function(e,n){t.show({controller:"CreateOrEditChatQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatQueue:n,chatQueues:u.queues.rows,license:null,setting:null,crudPermissions:u.crudPermissions}})},u.addAgent=function(e,n){t.show({controller:"ChatQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatQueue:n,chatQueues:u.queues.rows,realtime:!1,crudPermissions:u.crudPermissions}})},r.on("chat_queue:save",function(e){var n=_.find(u.queues.rows,["id",e.id]);n&&_.merge(n,_.pick(e,p))}),r.on("userChatQueue:save",function(e){var n=_.find(u.queues.rows,["id",e.ChatQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),r.on("userChatQueue:remove",function(e){var n=_.find(u.queues.rows,["id",e.ChatQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),r.on("user:update",function(t){u.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&m.updateQueue(t,e,n,"chat")})}),e.$on("$destroy",function(){r.removeAllListeners("chat_queue:save"),r.removeAllListeners("userChatQueue:remove"),r.removeAllListeners("userChatQueue:save"),r.removeAllListeners("user:update"),g&&n.cancel(g)})}e.$inject=["$scope","$mdDialog","$document","$interval","$translate","queues","api","socket","toasty","userProfileSection","Auth","realtimeManager"],angular.module("app.chat").controller("QueuesChatRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){return{status:{registered:"green-300-fg icon-checkbox-marked-circle",unregistered:"red-300-fg icon-close-circle",lagged:"red-300-fg icon-close-circle",reachable:"green-300-fg icon-checkbox-marked-circle",unreachable:"red-300-fg icon-close-circle",unknown:"grey-fg icon-minus-circle"},state:{unknown:"grey-fg icon-phone-hangup",not_inuse:"green-300-fg icon-phone-hangup",inuse:"red-300-fg icon-phone-in-talk",busy:"red-300-fg icon-phone-locked",invalid:"grey-fg icon-phone-hangup",unavailable:"grey-fg icon-phone-hangup",ringing:"blue-300-fg icon-phone-incoming",ringinuse:"blue-300-fg icon-phone-incoming",onhold:"blue-300-fg icon-phone-paused"},channelStatus:{ring:"blue-300-fg icon-phone-incoming",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"},channelStatusOut:{ring:"blue-300-fg icon-phone-outgoing",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"}}})}(),function(){"use strict";function e(e,t,n){switch(this.selectedTab=0,t.current.name){case"app.chat.realtime.agents":this.selectedTab=0;break;case"app.chat.realtime.queues":this.selectedTab=1;break;default:this.selectedTab=0,t.go("app.chat.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.chat.realtime.agents");break;case 1:t.go("app.chat.realtime.queues");break;default:t.go("app.chat.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.chat").controller("ChatRealtimeController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.companies=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="companies",f.listOrder="",f.listOrderAsc=null,f.selectedCompanies=[],f.query={fields:"createdAt,updatedAt,id,name,phone,vat,fax,companyId,type,website,emailDomain,email,description,sStreet,sPostalCode,sCity,sCountry,street,postalCode,city,country",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){a.go("app.contactmanager.companies.edit",{id:e.id,company:e,crudPermissions:f.crudPermissions})},f.gotocontactsgoto=function(t,e){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:303}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?a.go("app.contactmanager.contacts",{CompanyId:t.id}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});a.go("app.contactmanager.contacts",{CompanyId:t.id})}},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("company")+"?").htmlContent("<b>"+(e.name||"company")+"</b> will be deleted.").ariaLabel("delete company").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getCompanies=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.cmCompany.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Companies",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditCompany=function(e,n){i.show({controller:"CreateOrEditCompanyDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/companies/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{company:n,companies:f.companies.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteCompany=y,f.exportSelectedCompanies=function(){var e=angular.copy(f.selectedCompanies);return f.selectedCompanies=[],e},f.deleteSelectedCompanies=function(e){var n=i.confirm().title("Are you sure want to delete the selected companies?").htmlContent("<b>"+f.selectedCompanies.length+" selected</b> will be deleted.").ariaLabel("delete Companys").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedCompanies.forEach(function(e){y(e)}),f.selectedCompanies=[]})},f.deselectCompanies=function(){f.selectedCompanies=[]},f.selectAllCompanies=function(){f.selectedCompanies=f.companies.rows};var b=!0,A=1;function E(e){f.companies=e||{count:0,rows:[]}}function y(e){m.cmCompany.delete({id:e.id}).$promise.then(function(){_.remove(f.companies.rows,{id:e.id}),f.companies.count-=1,f.companies.rows.length||f.getCompanies(),p.success({title:_.startCase("Company")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcmCompany"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEcmCompany",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getCompanies())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","companies","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.contactmanager").controller("CompaniesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CONTACTMANAGER.EDIT_COMPANY",g.company=angular.copy(l),g.companies=r,g.newCompany=!1,g.company||(g.company={},g.title="CONTACTMANAGER.NEW_COMPANY",g.newCompany=!0),g.addNewCompany=function(){g.errors=[],d.cmCompany.save(g.company).$promise.then(function(e){g.companies.unshift(e.toJSON()),o.success({title:"Company properly created",msg:g.company.name?g.company.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCompany.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCompany.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveCompany=function(){g.errors=[],d.cmCompany.update({id:g.company.id},g.company).$promise.then(function(e){var n=_.find(g.companies,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Company properly saved!",msg:g.company.name?g.company.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCompany.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCompany.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteCompany=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The company will be deleted.").ariaLabel("Delete Company").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cmCompany.delete({id:g.company.id}).$promise.then(function(){_.remove(g.companies,{id:g.company.id}),o.success({title:"Company properly deleted!",msg:(g.company.name||"company")+" has been deleted!"}),v(g.company)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCompany.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCompany.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","companies","company","api","Auth","license","setting","crudPermissions"],angular.module("app.contactmanager").controller("CreateOrEditCompanyDialogController",e)}(),function(){"use strict";function e(a,e,n,t,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.company=c||a.params.company||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=a.params.tab||0,u.gotogoto=function(t,e){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:303}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?a.go("app.contactmanager.contacts",{CompanyId:t.id}):l.info({title:i.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:i.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});a.go("app.contactmanager.contacts",{CompanyId:t.id})}},u.alert=l.info,u.gotoCompanies=function(){a.go("app.contactmanager.companies",{},{reload:"app.contactmanager.companies"})},u.saveCompany=function(){r.cmCompany.update({id:u.company.id},u.company).$promise.then(function(){l.success({title:"Company updated!",msg:u.company.name?u.company.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmCompany",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","company","userProfileSection"],angular.module("app.contactmanager").controller("CompanyController",e)}(),function(){"use strict";function e(n,i,t,a,e,s,o,r,l,d,c,m,u,p,g,v,h,f,b){var A=this;A.currentUser=f.getCurrentUser(),A.license=b,A.userProfile=r,A.userProfileSection=l&&1==l.count?l.rows[0]:null,A.crudPermissions=f.parseCrudPermissions(A.userProfileSection?A.userProfileSection.crudPermissions:null);var E=60,y=1024*E*1024;A.ngFlowOptions={target:"api/cm/contacts/upload",singleFile:!0,maxChunkRetries:1,chunkSize:y,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},A.contacts=c||{count:0,rows:[]},A.options={hidden:!1,hover:!1,isOpen:!1},A.table="cm_contacts",A.selectedContacts=[],A.lists=m||{rows:[],count:0},A.companies=p||{rows:[],count:0},A.tags=v||{rows:[],count:0},A.listsMap=u,A.companiesMap=g,A.selectedTags=[],A.selectedList=null,A.selectedCompany=null,A.query=_.merge({includeAll:!0,sort:"-updatedAt",limit:10,offset:0,page:1},e),A.editdialog=function(e,n){a.go("app.contactmanager.contacts.edit",{id:e.id,crudPermissions:A.crudPermissions})},A.deleteconfirm=function(e,n){var t=s.confirm().title("Are you sure want to delete the contact?").htmlContent("<b>"+(e.firstName||e.email||e.phone||"Contact")+"</b> will be deleted.").ariaLabel("delete contact").targetEvent(n).ok("OK").cancel("CANCEL");s.show(t).then(function(){C(e)})},A.success=I,A.getContacts=function(){A.query.offset=(A.query.page-1)*A.query.limit,f.hasRole("admin")?A.promise=d.cmContact.get(A.query,I).$promise:(A.query.id=A.userProfile.id,A.query.ListId=A.query.ListId?A.query.ListId:_.map(A.lists.rows,"id"),A.query.CompanyId=A.query.CompanyId?A.query.CompanyId:_(A.companies.rows).filter({canSelect:void 0}).map("id").value(),A.query.section="Contacts",A.promise=d.userProfile.getResources(A.query,I).$promise)},A.getAssignedCompanies=function(){if(!f.hasRole("admin")){var e=_(A.contacts.rows).map(function(e){return{id:e.CompanyId}}).uniqBy("id").filter(function(e){return e.id&&0<e.id}).pullAllBy(A.companies.rows,"id").value();if(!_.isEmpty(e)){var n=[];e.forEach(function(e){n.push(d.cmCompany.get({id:e.id,fields:"id,name"}).$promise)}),o.all(n).then(function(e){e.forEach(function(e){var n=e.toJSON();n.canSelect=!1,A.companies.rows.push(n);var t={};t[n.id]=n.name,A.companiesMap=_.assignIn(A.companiesMap,t)})}).catch(function(e){h.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_COMPANY",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}}},A.mergeContact=function(e,n){s.show({controller:"MergeContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/merge/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"id,name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Lists",fields:"id,name",nolimit:!0})}]},locals:{contacts:A.contacts.rows}})},A.duplicateContact=function(e,n){s.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"id,name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Lists",fields:"id,name",nolimit:!0})}]},locals:{contacts:A.contacts.rows}})},A.createOrEditContact=function(e,n){n&&n.dateOfBirth&&(n.dateOfBirth=new Date(n.dateOfBirth));s.show({controller:"CreateOrEditContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/create/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{ListId:A.query.ListId||a.params.ListId,CompanyId:A.query.CompanyId||a.params.CompanyId,contact:n,contacts:A.contacts.rows,companies:A.companies,lists:A.lists,setting:null,crudPermissions:A.crudPermissions}})},A.deleteContact=C,A.exportSelectedContacts=function(){var e=angular.copy(A.selectedContacts);return A.selectedContacts=[],e},A.deleteSelectedContacts=function(e){var n=s.confirm().title("Are you sure want to delete the selected contacts?").htmlContent("<b>"+A.selectedContacts.length+" selected</b> will be deleted.").ariaLabel("delete Contacts").targetEvent(e).ok("OK").cancel("CANCEL");s.show(n).then(function(){A.selectedContacts.forEach(function(e){C(e)}),A.selectedContacts=[]})},A.deselectContacts=function(){A.selectedContacts=[]},A.selectAllContacts=function(){A.selectedContacts=A.contacts.rows},A.createTag=function(e){var n=s.prompt().title("What would you name your tag?").placeholder("Tag name").ariaLabel("Tag name").targetEvent(e).ok("Ok").cancel("Cancel");return s.show(n).then(function(e){if(e)return d.tag.save({name:e});h.error({title:"Error creating tag!",msg:"Invalid tag name."})}).then(function(e){e&&(A.tags.rows.push(e),h.success({title:"Tag properly created!",msg:e.tag?e.name+" has been created!":""}))})},A.createList=function(e){var n=s.prompt().title("What would you name your list?").placeholder("List name").ariaLabel("List name").targetEvent(e).ok("Ok").cancel("Cancel");return s.show(n).then(function(e){if(e)return d.cmList.save({name:e});h.error({title:"Error creating list!",msg:"Invalid list name."})}).then(function(e){e&&(A.lists.rows.push(e),h.success({title:"List properly created!",msg:e.name?e.name+" has been created!":""}))})},A.createCompany=function(e){var n=s.prompt().title("What would you name your company?").placeholder("Company name").ariaLabel("Company name").targetEvent(e).ok("Ok").cancel("Cancel");return s.show(n).then(function(e){if(e)return d.cmCompany.save({name:e});h.error({title:"Error creating company!",msg:"Invalid company name."})}).then(function(e){e&&(A.companies.rows.push(e),h.success({title:"Company properly created!",msg:e.name?e.name+" has been created!":""}))})},A.importContacts=function(e,n,t){var a=JSON.parse(n);s.show({controller:"ImportContactsDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/import/import.html",parent:angular.element(i.body),clickOutsideToClose:!1,locals:{lists:m,companies:p,file:a.file,fields:a.fields,license:A.license}}).then(function(){A.getContacts()}).catch(function(e){console.error()})},A.hasPermission=function(){return f.hasPermission(303)||f.hasRole("admin")},A.fileAdded=function(e){var n=["csv"];if(!_.includes(n,e.getExtension()))return h.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(e.size>y)return h.error({title:"File too big",msg:"The max allowed size is "+E+"MB"}),!1;return!0},a.params.ListId&&(A.selectedList=a.params.ListId),a.params.CompanyId&&(A.selectedCompany=a.params.CompanyId),n.$watch("vm.options.isOpen",function(e){e?t(function(){n.tooltipVisible=A.options.isOpen},600):n.tooltipVisible=A.options.isOpen});var S=!0,T=1;function I(e){A.contacts=e||{count:0,rows:[]}}function C(e){d.cmContact.delete({id:e.id}).$promise.then(function(){_.remove(A.contacts.rows,{id:e.id}),A.contacts.count-=1,A.contacts.rows.length||A.getContacts(),h.success({title:"Contact deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){A.errors=e.data.errors||[{message:e.toString(),type:"api.contact.delete"}];for(var n=0;n<e.data.errors.length;n++)h.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else h.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}n.$watch("vm.query.filter",function(e,n){S?t(function(){S=!1}):(n||(T=A.query.page),e!==n&&(A.query.page=1),e||(A.query.page=T),A.getContacts())},!0),n.$watch("vm.selectedList",function(e,n){e!==n&&(A.query.ListId=A.selectedList||void 0,A.getContacts())}),n.$watch("vm.selectedCompany",function(e,n){e!==n&&(A.query.CompanyId=A.selectedCompany||void 0,A.getContacts())}),n.$watch("vm.selectedTags",function(e,n){(e.length||n.length)&&A.getContacts()})}e.$inject=["$scope","$document","$timeout","$state","$stateParams","$mdDialog","$q","userProfile","userProfileSection","api","contacts","lists","listsMap","companies","companiesMap","tags","toasty","Auth","license"],angular.module("app.contactmanager").controller("ContactsController",e)}(),function(){"use strict";function e(t,a,e,n,i,s,o,r,l,d){var c=this;function m(e){if(e)return l.cmList.getCustomFields({id:e}).$promise.then(function(e){if(e){c.customFields=e;var n=_.map(c.customFields.rows,function(e){return"cf_"+e.id});return l.cmContact.get({id:c.contact.id,attributes:n,raw:!0}).$promise.then(function(e){c.contact=_.merge(c.contact,e)})}}).then(function(){c.customFields.rows.forEach(function(e){"datetime"===e.type&&c.contact["cf_"+e.id]&&(c.contact["cf_"+e.id]=u(c.contact["cf_"+e.id]))}),Object.keys(c.contact).forEach(function(e){if(_.startsWith(e,"cf_")){var n=e.split("_")[1];_.some(c.customFields.rows,["id",Number(n)])||delete c.contact["cf_"+n]}})}).catch(function(e){console.error(e)});c.customFields={rows:[],count:0}}function u(e){return null===e?void 0:new Date(e)}function p(){t.hide()}c.errors=[],c.title="CONTACTMANAGER.EDIT_CONTACT",c.crudPermissions=d,c.contact=angular.copy(s),c.contacts=e||{rows:[],count:0},c.lists=n||{rows:[],count:0},c.companies=i||{rows:[],count:0},c.customFields={rows:[],count:0},c.newContact=!1,c.contact?(delete c.contact.List,m(c.contact.ListId)):(c.contact={ListId:o?parseInt(o,10):void 0,CompanyId:r?parseInt(r,10):void 0},c.title="CONTACTMANAGER.NEW_CONTACT",c.newContact=!0),c.addNewContact=function(){c.errors=[],l.cmContact.save(c.contact).$promise.then(function(e){c.contacts.unshift(e),a.success({title:"Contact properly created",msg:c.contact.name?c.contact.name+" has been created!":""}),p()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.user.save"}];for(var n=0;n<e.data.errors.length;n++)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contacts.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.saveContact=function(){c.errors=[],l.cmContact.update({id:c.contact.id},c.contact).$promise.then(function(e){var n=_.find(c.contacts,{id:e.id});n&&_.merge(n,e),a.success({title:"Contact properly saved!",msg:c.contact.name?c.contact.name+" has been saved!":""}),p()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.contact.update"}];for(var n=0;n<e.data.errors.length;n++)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.deleteContact=function(e){c.errors=[];var n=t.confirm().title("Are you sure?").content("The contact will be deleted.").ariaLabel("Delete Contact").ok("Delete").cancel("Cancel").targetEvent(e);t.show(n).then(function(){l.cmContact.delete({id:c.contact.id}).$promise.then(function(){_.remove(c.contacts,{id:c.contact.id}),a.success({title:"Contact properly deleted!",msg:c.contact.name?c.contact.name+" has been deleted!":""}),p()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.contact.delete"}]})},function(){})},c.closeDialog=p,c.getCustomFields=m,c.getDateFromString=u}e.$inject=["$mdDialog","toasty","contacts","lists","companies","contact","ListId","CompanyId","api","crudPermissions"],angular.module("app.tools").controller("CreateOrEditContactDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this;function r(){e.hide()}o.errors=[],o.title="CONTACTMANAGER.COPY_CONTACT",o.contact=angular.copy(t),o.lists=i||{rows:[],count:0},o.addNewContact=function(){o.errors=[],delete o.contact.id,o.contact.tags&&!o.contact.tags.length&&delete o.contact.tags;s.cmContact.save(o.contact).$promise.then(function(e){a.unshift(e),n.success({title:"Contact properly created",msg:o.contact.name?o.contact.name+" has been created!":""}),r()}).catch(function(e){console.error(e),o.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}]})},o.closeDialog=r}e.$inject=["$mdDialog","toasty","contact","contacts","lists","api"],angular.module("app.tools").controller("DuplicateContactDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){var d=this;function c(e){a.hide(e)}d.errors=[],d.title="CONTACTMANAGER.EDIT_HOPPER",d.hopper=angular.copy(o),d.hoppers=s,d.newHopper=!1,d.crudPermissions=l,d.hopper||(d.hopper={},d.title="CONTACTMANAGER.NEW_HOPPER",d.newHopper=!0),d.saveHopper=function(){d.errors=[],r.cmHopper.update({id:d.hopper.id},d.hopper).$promise.then(function(e){var n=_.find(d.hoppers,{id:e.id});n&&_.merge(n,e),i.success({title:"Hopper properly saved!",msg:d.hopper.name?d.hopper.name+" has been saved!":""}),c(e)}).catch(function(e){console.error(e),d.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.update"}]})},d.getDateFromString=function(e){return null===e?void 0:new Date(e)},d.closeDialog=c}e.$inject=["$scope","$state","$location","$mdDialog","toasty","hoppers","hopper","api","crudPermissions"],angular.module("app.contactmanager.contacts").controller("EditHopperDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m,u,p,g,v,h,f,b,A,E,y){var S=this;function T(n){return function(e){S[n]=e||{count:0,rows:[]}}}function I(){S.queryHopper.offset=(S.queryHopper.page-1)*S.queryHopper.limit,S.queryHopper.id=S.contact.id,S.promise=r.cmContact.getHoppers(S.queryHopper,T("hoppers")).$promise}function C(){S.queryFinal.offset=(S.queryFinal.page-1)*S.queryFinal.limit,S.queryFinal.id=S.contact.id,S.promise=r.cmContact.getHopperFinals(S.queryFinal,T("finals")).$promise}function O(){S.queryHistory.offset=(S.queryHistory.page-1)*S.queryHistory.limit,S.queryHistory.id=S.contact.id,S.promise=r.cmContact.getHopperHistories(S.queryHistory,T("histories")).$promise}function w(e){S.journeyIsLoading=!0;var n=_.merge(S.journeyOptions,{id:S.contact.id,offset:e||0});return y.get(S.journey,n).then(function(e){S.journey=e.journey,S.canLoadMoreJourney=e.loadMore}).finally(function(){S.journeyIsLoading=!1})}S.currentUser=A.getCurrentUser(),S.license=b,S.journey=[],S.contact=l||{},S.hoppers=d||{rows:[],count:0},S.finals=c||{rows:[],count:0},S.histories=m||{rows:[],count:0},S.companies=p||{rows:[],count:0},S.lists=g||{rows:[],count:0},S.customFields=v||{rows:[],count:0},S.tags=h||{rows:[],count:0},S.jscriptySessions=f||{rows:[],count:0},S.journeyOptions=y.getQuery(),S.quickFilters=y.getQuickFilters(),S.journeyTimelineOptions={scrollEl:"#journey-content"},S.userProfileSection=E&&1==E.count?E.rows[0]:null,S.crudPermissions=A.parseCrudPermissions(S.userProfileSection?S.userProfileSection.crudPermissions:null),S.arraypriority=_.keyBy([{option:"Highest",value:"'4'"},{option:"High",value:"'3'"},{option:"Medium",value:"'2'"},{option:"Low",value:"'1'"},{option:"Lowest",value:"'0'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),S.queryHopper={fields:"id,phone,scheduledat,priority,recallme,VoiceQueueId,CampaignId,UserId",sort:"-updatedAt",limit:10,page:1},S.queryFinal={fields:"id,uniqueid,calleridnum,statedesc,starttime,disposition",sort:"-id",limit:10,page:1},S.queryHistory={fields:"id,uniqueid,calleridnum,statedesc,scheduledat,starttime,endtime",sort:"-id",limit:10,page:1},S.queryJscriptySession={fields:"id,starttime,endtime,membername,projectname",sort:"-starttime",limit:10,page:1},S.selectedTab=n.params.tab||0,S.onInit=function(){A.hasRole("admin")||(function(){if(!_.some(S.companies.rows,{id:S.contact.CompanyId}))r.cmCompany.get({id:S.contact.CompanyId,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,S.companies.rows.push(n)}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_COMPANY",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}(),function(){var e=_.map(S.contact.Tags,function(e){return{id:e.id,name:e.name}});if(!_.isEmpty(e))for(var n=0;n<e.length;n++)_.some(S.tags.rows,{id:e.id})||(e[n].canSelect=!1,S.tags.rows.push(e[n]))}());return r.user.get({fields:"id,fullname",nolimit:!0}).$promise.then(function(e){S.users=e||{count:0,rows:[]},S.usersMap=_.mapValues(_.keyBy(S.users.rows,"id"),"fullname"),S.Tags=_.map(S.contact.Tags,"id")}).finally(function(){S.contact&&w()})},S.gotoContacts=function(){n.go("app.contactmanager.contacts",{},{reload:!0,notify:!0})},S.duplicateContact=function(e){i.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,resolve:{lists:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"id,name"}):e.resolve("userProfile@getResources",{id:S.currentUser.userProfileId,section:"Lists",fields:"id,name"})}]},locals:{contacts:u.rows,contact:l}})},S.saveContact=function(){r.cmContact.update({id:S.contact.id},S.contact).$promise.then(function(){o.success({title:"Contact updated!",msg:S.contact.name?S.contact.name+" has been updated!":""})}).then(function(){return r.cmContact.setTags({id:S.contact.id,ids:S.Tags}).$promise}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEcontact",msg:e.data?JSON.stringify(e.data):e.toString()})})},S.editCompany=function(e,n){var t=_.find(S.companies.rows,{id:n});i.show({controller:"CreateOrEditCompanyDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/companies/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{companies:[],license:null,setting:null,crudPermissions:!1===t.canSelect?{readOnly:!0,canEdit:!1,canDelete:!1}:r.userProfileSection.get({userProfileId:S.currentUser.userProfileId,sectionId:302}).$promise.then(function(e){var n=e.rows?e.rows[0]:null;return A.parseCrudPermissions(n?n.crudPermissions:null)}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"API:GET_COMPANY_SECTION",msg:e.data?JSON.stringify(e.data):e.toString()})})},resolve:{company:["apiResolver",function(e){return e.resolve("cmCompany@get",{id:n})}]}})},S.onSelectList=function(e){if(S.contact.ListId){var n=i.confirm().title("You are selecting the list number: "+S.contact.ListId).textContent("Warning! You won't select a different list for the contact "+S.contact.firstName||S.contact.lastName||S.contact.id).targetEvent(e).ok("Ok").cancel("Cancel");return i.show(n).then(S.onSelectListSuccess).catch(function(){S.contact.ListId=null})}},S.onSelectListSuccess=function(){return r.cmList.getCustomFields({id:S.contact.ListId}).$promise.then(function(e){S.customFields=e||{rows:[],count:0}}).catch(function(e){console.error(e)})},S.getDateFromString=function(e){return null===e?void 0:new Date(e)},S.getHoppers=I,S.getFinals=C,S.getHistories=O,S.getJscriptySessions=function(){S.queryJscriptySession.offset=(S.queryJscriptySession.page-1)*S.queryJscriptySession.limit,S.queryJscriptySession.id=S.contact.id,S.promise=r.cmContact.getJscriptySessions(S.queryJscriptySession,T("jscriptySessions")).$promise},S.deleteconfirm=function(n,e){var t=i.confirm().title("Are you sure want to delete the agent?").htmlContent("<b>"+(n.phone||"hopper")+"</b> will be deleted.").ariaLabel("delete hopper").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){var e;e=n,r.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(S.hoppers.rows,{id:e.id}),S.hoppers.count--,S.hoppers.rows.length||S.getHoppers(),o.success({title:"Hopper deleted!",msg:e.phone?e.phone+" has been deleted!":""})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEhopper",msg:e.data?JSON.stringify(e.data):e.toString()})})},function(){console.log("CANCEL")})},S.editHopper=function(e,n){i.show({controller:"CreateOrEditHopperVoiceQueueIdDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hoppers/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{hopper:n,hoppers:S.hoppers.rows,license:null,setting:null,crudPermissions:S.crudPermissions}})},S.createOrEditIvrCampaignHopper=function(e,n){i.show({controller:"CreateOrEditHopperCampaignIdDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hoppers/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{hopper:n,hoppers:S.hoppers.rows,license:null,setting:null,crudPermissions:S.crudPermissions}})},S.getCustomerJourney=w,S.loadMoreJourney=function(){return s(function(e,n){var t=S.journey.length;return e(w(t))})};var R=!0,x=1;e.$watch("vm.queryHopper.filter",function(e,n){R?t(function(){R=!1}):(n||(x=S.queryHopper.page),e!==n&&(S.queryHopper.page=1),e||(S.queryHopper.page=x),I())}),e.$watch("vm.queryFinal.filter",function(e,n){R?t(function(){R=!1}):(n||(x=S.queryFinal.page),e!==n&&(S.queryFinal.page=1),e||(S.queryFinal.page=x),C())}),e.$watch("vm.queryHistory.filter",function(e,n){R?t(function(){R=!1}):(n||(x=S.queryHistory.page),e!==n&&(S.queryHistory.page=1),e||(S.queryHistory.page=x),O())})}e.$inject=["$scope","$timeout","$state","$document","$mdDialog","$q","toasty","api","contact","hoppers","finals","histories","contacts","companies","lists","customFields","tags","jscriptySessions","license","Auth","userProfileSection","customerJourneyManager"],angular.module("app.contactmanager.contacts").controller("ContactController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;g.processing=!1,g.stopping=!0,g.license=p,g.pid=0,g.result={finish:!1,rows:0,affectedRows:0,failedRows:0,duplicatedRows:0,errors:[]},g.contactFields=[{key:"firstName",required:!0},{key:"lastName",required:!1},{key:"phone",required:!0},{key:"mobile",required:!1},{key:"email",required:!1},{key:"dateOfBirth",required:!1},{key:"country",required:!1},{key:"city",required:!1},{key:"street",required:!1},{key:"postalCode",required:!1},{key:"fax",required:!1}],g.motionBullFields=[{key:"UserId",required:!1},{key:"scheduledat",required:!1},{key:"priority",required:!1}],g.binding={},g.duplicate=[],g.lists=s||{rows:[],count:0},g.companies=o||{rows:[],count:0},g.customFields={rows:[],count:0},g.fields=u||[],g.closeDialog=function(){d.removeAllListeners("contact:import:"+v),n.hide()},g.onChangeList=function(){return l.cmList.getCustomFields({id:g.ListId}).$promise.then(function(e){g.customFields=e}).catch(function(e){console.error(e)})},g.uploadCsv=function(){g.processing=moment(),l.cmContact.import({id:m.filename,binding:g.binding,ListId:g.ListId,CompanyId:g.CompanyId,duplicates:g.duplicates,socket_timestamp:v}).$promise.then(function(e){g.stopping=!1,e&&e.pid&&(g.pid=e.pid)}).catch(function(e){g.processing=!1,r.error({title:"Import process failed!",msg:"Please retry with a new file"})})},g.getHeaderErrors=function(){var e=u;return e.push("contact_import_error"),e},g.getArrayErrors=function(){for(var e=[],n=0;n<g.result.errors.length;n+=1){var t=g.result.errors[n].row;t.contact_import_error=g.result.errors[n].message,e.push(t)}return e},g.stopUpload=function(){if(g.stopping=!0,g.pid)return l.system.killProcess({pid:g.pid}).$promise.then(function(e){r.success({title:"CSV import process stopped!",msg:"Import has been stopped!"})}).catch(function(e){r.error({title:"CSV stop import process failed!",msg:"pid is unknown"})})};var v=moment().unix();d.on("contact:import:"+v,function(t){i(function(){if(g.result.rows=t.rows,t.errors)for(var e=0;e<t.errors.length;e++)g.result.errors.push(t.errors[e]);if(t.finish){g.result.finish=!0,g.result.affectedRows=t.affectedRows,g.result.failedRows=g.result.errors.length;var n=g.result.rows-g.result.affectedRows-g.result.errors.length;n&&0<n&&(g.duplicates.length?g.result.duplicatedRows=n:g.result.failedRows+=n),g.result.elapsed=moment().diff(g.processing,"seconds")}})}),c.$on("$destroy",function(){d.removeAllListeners("contact:import:"+v)})}e.$inject=["$cookies","$mdDialog","$interval","$q","$timeout","lists","companies","toasty","api","socket","$scope","file","fields","license"],angular.module("app.tools").controller("ImportContactsDialogController",e)}(),function(){"use strict";function e(i,e,s,n,o,t,r){var a=this;a.errors=[],a.title="CONTACTMANAGER.MERGE_CONTACT",a.contact=angular.copy(n),a.lists=t||[],a.change=function(){a.searchTerm?r.cmContact.get({fields:"id,firstName,lastName,phone,email",filter:a.searchTerm,ListId:n.ListId}).$promise.then(function(e){a.contacts=e.rows}).catch(function(e){console.error(e)}):a.contacts=[]},a.showConfirm=function(e,n,t){var a=i.confirm({skipHide:!0}).title("Would you like to merge your contacs?").textContent("All unfilled values of the contact #"+t.id+" will be overwritten by the fields of the contact #"+n.id+".").targetEvent(e).ok("Ok").cancel("Cancel");i.show(a).then(function(){return r.cmContact.merge({to:t.id,from:n.id}).$promise}).then(function(e){i.hide({new:e,to:t,from:n}),_.remove(o,{id:t.id}),_.remove(o,{id:n.id}),o.unshift(e)}).then(function(){s.success({title:"Contact properly merged!"})}).catch(function(e){e&&e.status&&s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:MERGE_CONTACT",msg:e.data?JSON.stringify(e.data):e.toString()})})},a.closeDialog=function(){i.hide()}}e.$inject=["$mdDialog","$scope","toasty","contact","contacts","lists","api"],angular.module("app.tools").controller("MergeContactDialogController",e)}(),function(){"use strict";function e(a,e,n,t,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){t.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CONTACTMANAGER.EDIT_GLOBALCUSTOMFIELD",g.sortable={animation:800,sort:!0,onSort:function(e){a.globalCustomFieldForm.$pristine=!1}},g.globalCustomField=l,g.globalCustomFields=r,g.newGlobalCustomField=!1,g.globalCustomField||(g.globalCustomField={type:"text",actionType:"voice"},g.title="CONTACTMANAGER.NEW_GLOBALCUSTOMFIELD",g.newGlobalCustomField=!0),a.$watch("vm.globalCustomField.type",function(e,n){if(e!==n)switch(e){case"text":g.globalCustomField.values="";break;case"select":g.globalCustomField.values=[]}}),g.addNewGlobalCustomField=function(){g.errors=[],d.cmCustomField.save(g.globalCustomField).$promise.then(function(e){g.globalCustomFields.unshift(e.toJSON()),o.success({title:"GlobalCustomField properly created",msg:g.globalCustomField.name?g.globalCustomField.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCustomField.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveGlobalCustomField=function(){g.errors=[],d.cmCustomField.update({id:g.globalCustomField.id},g.globalCustomField).$promise.then(function(e){var n=_.find(g.globalCustomFields,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"GlobalCustomField properly saved!",msg:g.globalCustomField.name?g.globalCustomField.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCustomField.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteGlobalCustomField=function(e){g.errors=[];var n=t.confirm().title("Are you sure?").content("The globalCustomField will be deleted.").ariaLabel("Delete GlobalCustomField").ok("Delete").cancel("Cancel").targetEvent(e);t.show(n).then(function(){d.cmCustomField.delete({id:g.globalCustomField.id}).$promise.then(function(){_.remove(g.globalCustomFields,{id:g.globalCustomField.id}),o.success({title:"GlobalCustomField properly deleted!",msg:(g.globalCustomField.name||"globalCustomField")+" has been deleted!"}),v(g.globalCustomField)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCustomField.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.addItem=function(e){e.push({value:"New Item"}),a.globalCustomFieldForm.$pristine=!1},g.removeItem=function(e,n){e.splice(n,1),a.globalCustomFieldForm.$pristine=!1},g.removeItems=function(e){for(var n=e.length,t=0;t<n;t++)e.splice(0,1);a.globalCustomFieldForm.$pristine=!1},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","globalCustomFields","globalCustomField","api","Auth","license","setting","crudPermissions"],angular.module("app.contactmanager").controller("CreateOrEditGlobalCustomFieldDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.globalCustomFields=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="globalCustomFields",f.listOrder="",f.listOrderAsc=null,f.selectedGlobalCustomFields=[],f.query={fields:"createdAt,updatedAt,id,alias,type,values,required,clickToAction,actionType",sort:"-updatedAt",ListId:"null",limit:10,page:1},f.arraytype=_.keyBy([{option:"Text",value:"'text'"},{option:"Select",value:"'select'"},{option:"Number",value:"'number'"},{option:"Switch",value:"'switch'"},{option:"Datetime",value:"'datetime'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayactionType=_.keyBy([{option:"Voice",value:"'voice'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editdialog=function(e,n){i.show({controller:"CreateOrEditGlobalCustomFieldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/globalCustomFields/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{globalCustomField:e,globalCustomFields:f.globalCustomFields.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("globalCustomField")+"?").htmlContent("<b>"+(e.name||"globalCustomField")+"</b> will be deleted.").ariaLabel("delete globalCustomField").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getGlobalCustomFields=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.cmCustomField.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="GlobalCustomFields",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditGlobalCustomField=function(e,n){i.show({controller:"CreateOrEditGlobalCustomFieldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/globalCustomFields/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{globalCustomField:n,globalCustomFields:f.globalCustomFields.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteGlobalCustomField=y,f.exportSelectedGlobalCustomFields=function(){var e=angular.copy(f.selectedGlobalCustomFields);return f.selectedGlobalCustomFields=[],e},f.deleteSelectedGlobalCustomFields=function(e){var n=i.confirm().title("Are you sure want to delete the selected globalCustomFields?").htmlContent("<b>"+f.selectedGlobalCustomFields.length+" selected</b> will be deleted.").ariaLabel("delete GlobalCustomFields").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedGlobalCustomFields.forEach(function(e){y(e)}),f.selectedGlobalCustomFields=[]})},f.deselectGlobalCustomFields=function(){f.selectedGlobalCustomFields=[]},f.selectAllGlobalCustomFields=function(){f.selectedGlobalCustomFields=f.globalCustomFields.rows};var b=!0,A=1;function E(e){f.globalCustomFields=e||{count:0,rows:[]}}function y(e){m.cmCustomField.delete({id:e.id}).$promise.then(function(){_.remove(f.globalCustomFields.rows,{id:e.id}),f.globalCustomFields.count-=1,f.globalCustomFields.rows.length||f.getGlobalCustomFields(),p.success({title:_.startCase("GlobalCustomField")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcmCustomField"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEcmCustomField",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getGlobalCustomFields())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","globalCustomFields","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.contactmanager").controller("GlobalCustomFieldsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CONTACTMANAGER.EDIT_LIST",g.list=angular.copy(l),g.lists=r,g.newList=!1,g.list||(g.list={},g.title="CONTACTMANAGER.NEW_LIST",g.newList=!0),g.addNewList=function(){g.errors=[],d.cmList.save(g.list).$promise.then(function(e){g.lists.unshift(e.toJSON()),o.success({title:"List properly created",msg:g.list.name?g.list.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmList.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmList.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveList=function(){g.errors=[],d.cmList.update({id:g.list.id},g.list).$promise.then(function(e){var n=_.find(g.lists,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"List properly saved!",msg:g.list.name?g.list.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmList.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmList.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteList=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The list will be deleted.").ariaLabel("Delete List").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cmList.delete({id:g.list.id}).$promise.then(function(){_.remove(g.lists,{id:g.list.id}),o.success({title:"List properly deleted!",msg:(g.list.name||"list")+" has been deleted!"}),v(g.list)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmList.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmList.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","lists","list","api","Auth","license","setting","crudPermissions"],angular.module("app.contactmanager").controller("CreateOrEditListDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.cmList.getAgents({id:c.list.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserList?"penalty "+e.UserList.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.list=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.cmList.removeAgents({id:c.list.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.cmList.addAgents({id:c.list.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("CONTACTMANAGER.ALL_AGENTS"),labelSelected:r.instant("CONTACTMANAGER.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","list","lists","realtime","$translate","Auth","crudPermissions"],angular.module("app.contactmanager").controller("ListagentaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.listCustomFields=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.cmList.getCustomFields(m.query,u).$promise}function g(e){d.cmCustomField.delete({id:e.id}).$promise.then(function(){_.remove(m.listCustomFields.rows,{id:e.id}),m.listCustomFields.count-=1,m.listCustomFields.rows.length||p(),l.success({title:"CustomField deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcmList"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmList",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.list={},m.listCustomFields={count:0,rows:[]},m.selectedListCustomFields=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,alias,type,values,required,clickToAction,actionType",limit:10,page:1},m.arraytype=_.keyBy([{option:"Text",value:"'text'"},{option:"Select",value:"'select'"},{option:"Number",value:"'number'"},{option:"Switch",value:"'switch'"},{option:"Datetime",value:"'datetime'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),m.arrayactionType=_.keyBy([{option:"Voice",value:"'voice'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),m.init=function(e,n){m.list=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.ListId=m.list.id,m.query.id=m.list.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the customField?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("customField #")+e.id||"customField")+"</b> will be deleted.").ariaLabel("delete customField").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getListCustomFields=p,m.createOrEditListCustomField=function(e,n){o.show({controller:"CreateOrEditCustomFieldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/edit/customFields/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{list:m.list,customField:n,customFields:m.listCustomFields.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedListCustomFields=function(){var e=angular.copy(m.selectedListCustomFields);return m.selectedListCustomFields=[],e},m.deleteListCustomField=g,m.deleteSelectedListCustomFields=function(e){var n=o.confirm().title("Are you sure want to delete the selected customFields?").htmlContent("<b>"+m.selectedListCustomFields.length+" selected</b> will be deleted.").ariaLabel("delete customFields").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedListCustomFields.forEach(function(e){g(e)}),m.selectedListCustomFields=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.contactmanager").controller("ListCustomFieldsController",e)}(),function(){"use strict";function e(a,e,n,t,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){t.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CONTACTMANAGER.EDIT_CUSTOMFIELD",g.sortable={animation:800,sort:!0,onSort:function(e){a.customFieldForm.$pristine=!1}},g.customField=l,g.customFields=r,g.newCustomField=!1,g.customField||(g.customField={type:"text",actionType:"voice"},g.title="CONTACTMANAGER.NEW_CUSTOMFIELD",g.newCustomField=!0),e.params.id&&(g.customField.ListId=e.params.id),a.$watch("vm.customField.type",function(e,n){if(e!==n)switch(e){case"text":g.customField.values="";break;case"select":g.customField.values=[]}}),g.addNewCustomField=function(){g.errors=[],d.cmList.addCustomField({id:e.params.id},g.customField).$promise.then(function(e){g.customFields.unshift(e.toJSON()),o.success({title:"CustomField properly created",msg:g.customField.name?g.customField.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCustomField.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveCustomField=function(){g.errors=[],d.cmCustomField.update({id:g.customField.id},g.customField).$promise.then(function(e){var n=_.find(g.customFields,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"CustomField properly saved!",msg:g.customField.name?g.customField.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCustomField.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteCustomField=function(e){g.errors=[];var n=t.confirm().title("Are you sure?").content("The customField will be deleted.").ariaLabel("Delete CustomField").ok("Delete").cancel("Cancel").targetEvent(e);t.show(n).then(function(){d.cmCustomField.delete({id:g.customField.id}).$promise.then(function(){_.remove(g.customFields,{id:g.customField.id}),o.success({title:"CustomField properly deleted!",msg:(g.customField.name||"customField")+" has been deleted!"}),v(g.customField)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCustomField.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.addItem=function(e){e.push({value:"New Item"}),a.customFieldForm.$pristine=!1},g.removeItem=function(e,n){e.splice(n,1),a.customFieldForm.$pristine=!1},g.removeItems=function(e){for(var n=e.length,t=0;t<n;t++)e.splice(0,1);a.customFieldForm.$pristine=!1},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","customFields","customField","api","Auth","license","setting","crudPermissions"],angular.module("app.contactmanager").controller("CreateOrEditCustomFieldDialogController",e)}(),function(){"use strict";function e(a,e,t,i,s,n,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=n,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.list=c||a.params.list||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=a.params.tab||0,u.gotogoto=function(t,e){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:303}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?a.go("app.contactmanager.contacts",{ListId:t.id}):l.info({title:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});a.go("app.contactmanager.contacts",{ListId:t.id})}},u.agentadddialog=function(e,n){t.show({controller:"ListagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{list:e,lists:u.lists?u.lists.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoLists=function(){a.go("app.contactmanager.lists",{},{reload:"app.contactmanager.lists"})},u.saveList=function(){r.cmList.update({id:u.list.id},u.list).$promise.then(function(){l.success({title:"List updated!",msg:u.list.name?u.list.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmList",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","list","userProfileSection"],angular.module("app.contactmanager").controller("ListController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.cmList.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.list=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.ListId=m.list.id,m.query.id=m.list.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.list.id,field:"ListId",route:"cmList"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.contactmanager").controller("ListDispositionsController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.lists=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="lists",f.listOrder="",f.listOrderAsc=null,f.selectedLists=[],f.query={fields:"createdAt,updatedAt,id,name,description,dialPrefix",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){a.go("app.contactmanager.lists.edit",{id:e.id,list:e,crudPermissions:f.crudPermissions})},f.gotocontactsgoto=function(t,e){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:303}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?a.go("app.contactmanager.contacts",{ListId:t.id}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});a.go("app.contactmanager.contacts",{ListId:t.id})}},f.exportcsvcontactsexport=function(i,e){return m.cmList.getContactsCsv({id:i.id,nolimit:!0}).$promise.then(function(e){if(void 0!==e.length){var n=[e.buffer],t=new Blob(n,{type:e.type}),a=window.document.createElement("a");a.setAttribute("href",URL.createObjectURL(t)),a.setAttribute("download","exportContacts_"+i.id+".csv"),a.click()}else p.info({title:"EXPORT",msg:"The list is empty"})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmList",msg:e.data?JSON.stringify(e.data):e.toString()})})},f.agentadddialog=function(e,n){i.show({controller:"ListagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{list:e,lists:f.lists?f.lists.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("list")+"?").htmlContent("<b>"+(e.name||"list")+"</b> will be deleted.").ariaLabel("delete list").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getLists=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.cmList.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Lists",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditList=function(e,n){i.show({controller:"CreateOrEditListDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{list:n,lists:f.lists.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteList=y,f.exportSelectedLists=function(){var e=angular.copy(f.selectedLists);return f.selectedLists=[],e},f.deleteSelectedLists=function(e){var n=i.confirm().title("Are you sure want to delete the selected lists?").htmlContent("<b>"+f.selectedLists.length+" selected</b> will be deleted.").ariaLabel("delete Lists").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedLists.forEach(function(e){y(e)}),f.selectedLists=[]})},f.deselectLists=function(){f.selectedLists=[]},f.selectAllLists=function(){f.selectedLists=f.lists.rows};var b=!0,A=1;function E(e){f.lists=e||{count:0,rows:[]}}function y(e){m.cmList.delete({id:e.id}).$promise.then(function(){_.remove(f.lists.rows,{id:e.id}),f.lists.count-=1,f.lists.rows.length||f.getLists(),p.success({title:_.startCase("List")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcmList"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEcmList",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getLists())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","lists","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.contactmanager").controller("ListsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){var d=this;d.currentUser=s.getCurrentUser(),d.userProfile=r,d.userProfileSection=l&&1==l.count?l.rows[0]:null,d.crudPermissions=s.parseCrudPermissions(d.userProfileSection?d.userProfileSection.crudPermissions:null),d.customDashboard={},d.voiceQueues=o&&o.count?o:{count:0,rows:[]},d.voiceQueuesSelected=o&&o.count?_.map(o.rows,"id"):[],d.interval=n(function(){},1e3),d.onChangeVoiceQueues=function(){for(var e=0;e<d.customDashboard.widgets.length;e+=1)d.customDashboard.widgets[e].voiceQueuesSelected=d.voiceQueuesSelected},d.goToEdit=function(){e.go("app.tools.customDashboards.edit",{id:d.customDashboard.id,tab:1})},i.onWithoutApply("voice_queue:save",function(e){var n=_.find(d.voiceQueues.rows,{id:e.id});n&&_.merge(n,_.pick(e,_.keys(n)))}),a.dashboard.get({id:e.params.id}).$promise.then(function(e){if(e)return d.customDashboard=e,d.customDashboard.widgets=[],d.customDashboard.preview=!0,d.customDashboard.draggable={enabled:!1},d.customDashboard.resizable={enabled:!1},a.dashboard.getItems({id:d.customDashboard.id}).$promise}).then(function(e){if(e&&e.count&&e.rows)for(var n=0;n<e.rows.length;n+=1)e.rows[n].templateUrl="app/core/directives/ms-widget-engine/ms-widget-engine-"+e.rows[n].type+"/ms-widget-engine."+e.rows[n].type+".html",e.rows[n].voiceQueues=d.voiceQueues,e.rows[n].voiceQueuesSelected=d.voiceQueuesSelected,d.customDashboard.widgets.push(e.rows[n])}).catch(function(e){d.customDashboard=void 0}),t.$on("$destroy",function(){i.removeAllListeners("voice_queue:save"),d.interval&&n.cancel(d.interval)})}e.$inject=["$state","$interval","$scope","api","socket","Auth","voiceQueues","userProfile","userProfileSection"],angular.module("app.dashboards.custom").controller("DashboardCustomController",e)}(),function(){"use strict";function e(e,i,s,o,r,l,n,d,t,a,c,m,u,p,g,v,h,f,b){var A=this;function E(e){var n={};for(var t in A.tabs)A.tabs.hasOwnProperty(t)&&(n[t]=_.pick(A.tabs[t],["type","title","channel","icon","color","autoCreate","id","saved","badges","openedAt"]),_.isNil(A.tabs[t].contact)||(n[t].contact=_.pick(A.tabs[t].contact,["id","ListId"])),_.isNil(A.tabs[t].calls)||(n[t].calls=A.tabs[t].calls),A.tabs[t].interaction&&(n[t].interaction=_.pick(A.tabs[t].interaction,["id","OpenchannelAccountId","MailAccountId","ChatWebsiteId","FaxAccountId","SmsAccountId","WhatsappAccountId","closed","draft"])));var a=JSON.parse(s.localStorage.getItem("motion2.user:"+A.user.id));a?(a.tabs=n,a.currentTab=A.currentTab,a.autoClose=A.autoClose):a={tabs:n,currentTab:A.currentTab,autoClose:A.autoClose},s.localStorage.setItem("motion2.user:"+A.user.id,JSON.stringify(a)),e&&y(e)}function y(e){if(_.isNil(e)||e&&"interaction"===e.type){var n={id:A.user.id,online:!0,capacity:{mail:0,fax:0,sms:0,whatsapp:0,openchannel:0,chat:0},interaction:{mail:[],fax:[],sms:[],whatsapp:[],openchannel:[],chat:[]}};for(var t in A.tabs)A.tabs.hasOwnProperty(t)&&n.capacity.hasOwnProperty(A.tabs[t].channel)&&A.tabs[t].interaction&&!A.tabs[t].interaction.closed&&(n.capacity[A.tabs[t].channel]+=1,n.interaction[A.tabs[t].channel].push(A.tabs[t].interaction.id));if(!_.isEqual(A.agentCapacity,n.capacity))return A.agentCapacity=n.capacity,d.rpc.setAgentCapacity(n)}}function S(e){A.tabs[e.id]&&(!function(e){if(e.channel&&e.interaction)d.user["remove"+_.upperFirst(e.channel)+"Interactions"]({id:A.user.id,ids:[e.interaction.id]}).$promise.catch(function(e){console.error(e)})}(A.tabs[e.id]),delete A.tabs[e.id],A.currentTab=0,E(e))}function T(e){e.id=_.random(1e10),e.openedAt=(new Date).toISOString(),e.saved=!1,e.badges=0,A.tabs[e.id]=e,A.currentTab=e.id,E(e)}function I(n){return _.find(A.tabs,function(e){return"interaction"===e.type&&e.interaction&&e.interaction.id==n.interactionId&&e.channel==n.channel})}function C(n,t){var e,a,i={type:"contact",title:n?(e=n,a="",e&&(e.firstName||e.lastName?(e.firstName&&(a+=e.firstName+" "),e.lastName&&(a+=e.lastName)):e.phone&&(a=e.phone)),a=A.user.privacyEnabled?b.mask(a):a):o.instant("DASHBOARDS.NEW_CONTACT"),icon:"icon-account-circle",color:"red",contact:n,calls:t?[t]:[],autoCreate:t?t.autoCreate:0};if(t&&(t.answertime||(t.answertime=t.agentconnectAt),(t.agentcompleteAt||t.endtime)&&N(t)),n){var s=_.find(A.tabs,function(e){return e.contact&&e.contact.id?"contact"===e.type&&e.contact&&e.contact.id==n.id:"contact"===e.type&&e.contact&&e.contact.phone==n.phone});if(s){if(t)return d.voiceCallReport.get({uniqueid:t.uniqueid}).$promise.then(function(e){(e&&0<e.rows.length&&(t.disposedAt=_.first(e.rows).endtime),s.calls)?_.find(s.calls,function(e){return e.uniqueid===t.uniqueid})||s.calls.push(t):s.calls=[t];A.currentTab=s.id})}else{if(n.ListId)return d.disposition.get({ListId:n.ListId,nolimit:!0}).$promise.then(function(e){return i.dispositions=e,d.cmList.getCustomFields({id:n.ListId,nolimit:!0}).$promise}).then(function(e){i.customFields=e}).catch(D()).finally(function(){T(i)});T(i)}}else T(i)}function O(n,t){var e=_.find(A.tabs,function(e){return"interaction"===e.type&&e.interaction&&e.interaction.id===t.id&&e.channel===n});e?(e.isDraft=t.isDraft||!1,A.currentTab=e.id):T(e={type:"interaction",title:n?n.toUpperCase():"openchannel",icon:function(e){switch(e){case"chat":return"icon-hangouts";case"mail":return"icon-email";case"sms":return"icon-message-text";case"openchannel":return"icon-google-earth";case"fax":return"icon-deskphone";case"whatsapp":return"icon-whatsapp";default:return"icon-hangouts"}}(n),color:function(e){switch(e){case"chat":return"green-A700";case"mail":return"teal";case"sms":return"orange";case"openchannel":return"amber-A200";case"fax":return"blue-grey-A200";case"whatsapp":return"lime-A700";default:return"grey"}}(n),channel:n,interaction:t,isDraft:t.isDraft||!1})}function w(e){e&&e.uniqueid&&A.notifications[e.uniqueid]&&(a.clear(A.notifications[e.uniqueid]),delete A.notifications[e.uniqueid])}function R(n){var t=n.uniqueid;for(var e in console.debug("onVoiceChannelRemove -> evt",n),A.tabs)if(A.tabs.hasOwnProperty(e)){var a=A.tabs[e];if(a.calls){console.debug("onVoiceChannelRemove -> key, tab, tab.calls",e,a,a.calls);var i=_.findIndex(a.calls,function(e){return e.uniqueid===t});i<0&&0<=(i=_.findIndex(a.calls,function(e){return e.uniqueid===n.linkedid}))&&(t=n.linkedid),0<=i&&!a.calls[i].disposedAt?(console.debug("Allowing disposition for call %s",a.calls[i].uniqueid),N(a.calls[i])):console.debug("Call %s not found or already completed",a.calls[i].uniqueid),a.contact&&a.contact.id&&l(x(t,a.contact.id,a),1e3)}}E()}function x(n,e,t){return function(){if(_.find(t.calls,function(e){return e.uniqueid===n}))return d.voiceCallReport.update({id:n,ContactId:e}).$promise.catch(function(e){console.error(e)})}}function N(e){e.disposedAt=new Date}function D(){return function(e){if(404===e.status)a.warning({title:o.instant("DASHBOARDS.ATTENTION"),msg:o.instant("DASHBOARDS.ACCEPT_ELSEWHERE")});else if(e.data&&e.data.errors&&e.data.errors.length){A.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelMessage.accept"}];for(var n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelMessage.accept",msg:e.data?JSON.stringify(e.data.message):e.toString()})}}A.license=g,A.setting=v,A.detectBrowser=f.detectBrowser(),A.user=n.getCurrentUser(),A.currentTab=0,A.notifications={},A.tabs={},A.agentCapacity={},A.autoClose=!1,A.globalUserLists=c||{count:0,rows:[]},A.globalLists=m||{count:0,rows:[]},A.globalCompanies=u||{count:0,rows:[]},A.globalTags=p||{count:0,rows:[]},A.onClickTab=function(e){A.currentTab=e,E(A.tabs[e])},A.isActiveTab=function(e){return e===A.currentTab},A.alreadyExistsTab=I,A.addContactTab=C,A.addInteractionTab=O,A.addTab=T,A.removeTab=S,A.updateLocalStorage=E,A.closeTab=function(e){var n=i.confirm().title("interaction"===e.type?"Do you want to close the interaction?":"Are you sure want to close the "+e.type+"?").textContent("interaction"===e.type?"":"The "+e.type+" has been modified. Closing will lose all changes!").ariaLabel("Close Contact").ok("interaction"===e.type?"YES":"OK").cancel("interaction"===e.type?"NO":"CANCEL");{if(!e.saved){var t=A.user.voicePause||A.user.chatPause||A.user.mailPause||A.user.openchannelPause||A.user.faxPause,a=!1;return"interaction"===e.type&&(a=e.interaction.Account.mandatoryDisposition),i.show(n).then(function(){"interaction"===e.type&&i.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(r.body),onRemoving:function(e,n){A.user&&a&&!t&&d.user.unpause({id:A.user.id}).$promise.catch(function(e){console.error(e)})},clickOutsideToClose:!a,escapeToClose:!a,locals:{user:A.user,channel:e.channel,interaction:e.interaction}}),S(e)}).catch(function(){"interaction"===e.type&&S(e)})}var a=!1;if(_.forEach(e.calls,function(e){e.mandatoryDisposition&&(a=!0)}),"contact"===e.type&&0<e.calls.length){if(!a)return n._options.textContent="There is a call that hasn't been disposed yet.",i.show(n).then(function(){S(e)});alert=i.alert().title("Warning").textContent("There is a call that hasn't been disposed yet.").ok("OK"),i.show(alert).finally(function(){alert=void 0})}else S(e)}},t.on("trigger:contactmanager",function(n){if(!_.isNil(n.contacts)&&1===n.contacts.length)return void C(n.contact,n.evt);i.show({controller:"ContactSelectionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/contact/selection/dialog.html",parent:angular.element(r.body),locals:{contacts:n.contacts,callNumber:n.evt.routeId?n.evt.destcalleridnum:n.evt.calleridnum}}).then(function(e){C(e,n.evt)})}),t.on("trigger:jscripty",function(t){return d.jscriptyProject.get({id:t.ProjectId}).$promise.then(function(n){if(n){if(!_.isUndefined(t["xmd-contactid"]))return d.cmContact.get({id:t["xmd-contactid"]}).$promise.then(function(e){try{n.formData=Mustache.render(n.formData,_.merge(t,{user:A.user,contact:e}))}catch(e){console.error(e)}T({type:"jscripty",title:n.name,icon:"icon-script",color:"grey",project:n,call:t,contact:e})}).catch(D());try{n.formData=Mustache.render(n.formData,_.merge(t,{user:A.user}))}catch(e){console.error(e)}T({type:"jscripty",title:n.name,icon:"icon-script",color:"grey",project:n,call:t})}}).catch(D())}),t.on("trigger:bot",function(n){var t=n.calleridname&&"<unknown>"!==n.calleridname?n.calleridname:n.calleridnum,a=n.calleridnum;return d.squareMessage.get({fields:"id",limit:1,offset:0,uniqueid:n.uniqueid}).$promise.then(function(e){e.count&&T({type:"bot",title:t+" <"+a+">",icon:"fas fa-robot",color:"pink",data:{uniqueid:n.uniqueid}})})}),t.on("trigger:browser:url",function(e){if(e&&e.uri)if(e.uri=_.replace(e.uri,"<%3B",""),e.uri=_.replace(e.uri,"=>%3B=",""),e.uriLocation)switch(e.uriLocation){case"0":s.open(e.uri);break;case"1":s.open(e.uri,"_blank","width="+(e.windowWidth||"800")+",height="+e.windowHeight||"600");break;case"2":var n={type:"iframe",title:e.uri,icon:"icon-google-earth",color:"blue",src:e.uri};T(n);break;default:s.open(e.uri)}else s.open(e.uri)}),t.on("trigger:browser:popup",function(e){e&&e.html&&T({type:"popup",title:e.calleridnum||"popup",icon:"icon-tablet",color:"grey",html:e.html})}),t.on("notification:save",function(e){if(e&&e.uniqueid){t=e,h.isSupported()?h.requestPermission().then(function(){var e,n;n={autoClose:!0,duration:10,showOnPageHidden:!0,icon:"../../../../../../../assets/images/avatars/customer.png",body:(e=t).queue?"Queue: "+e.queue:"",focusOnclick:!0,closeOnClick:!0},h.show(e.title,n)},function(e){console.error("Please enable browser notifications!",e)}):console.error("Browser notifications are not supported by the browser. Normal notifications will be used.");var n=I(e);if(n){if(d[e.channel+"Message"])return A.currentTab!==n.id&&(n.badges+=1),d[e.channel+"Message"].accept({id:e.id,UserId:A.user.id}).$promise.catch(D())}else a.wait({title:e.title,msg:e.msg||"",showClose:!1,clickToClose:!1,timeout:!1,sound:e.sound,html:!0,shake:e.shake||!1,onAdd:function(){A.notifications[e.uniqueid]=this.id},onAccept:function(){if(w(e),d[e.channel+"Message"])return d[e.channel+"Message"].accept({id:e.id,UserId:A.user.id,manual:!0}).$promise.then(function(e){O(e.channel,e.interaction),a.success({title:"Message properly accepted!",msg:"Message has been accepted!"})}).catch(D())},onReject:function(){if(w(e),d[e.channel+"Message"])return d[e.channel+"Message"].reject({id:e.id,UserId:A.user.id}).$promise.then(function(e){a.success({title:"Message properly rejected!",msg:"Message has been rejected!"})}).catch(D())}})}var t}),t.on("notification:remove",w),t.on("voice_queue_channel:remove",R),t.on("voice_outbound_channel:remove",R),function(){var e=s.localStorage.getItem("motion2.user:"+A.user.id);if(e)try{e=JSON.parse(e),A.tabs=e.tabs?e.tabs:{},A.currentTab=e.currentTab?e.currentTab:0,A.autoClose=!!e.autoClose&&e.autoClose,y(A.tabs[A.currentTab])}catch(e){console.error(e)}}(),e.$on("$destroy",function(){for(var e in A.notifications)A.notifications.hasOwnProperty(e)&&w({uniqueid:e});t.removeAllListeners("trigger:contactmanager"),t.removeAllListeners("trigger:jscripty"),t.removeAllListeners("trigger:browser:url"),t.removeAllListeners("trigger:browser:popup"),t.removeAllListeners("notification:save"),t.removeAllListeners("notification:remove"),t.removeAllListeners("voice_queue_channel:remove"),t.removeAllListeners("voice_outbound_channel:remove")})}e.$inject=["$scope","$mdDialog","$window","$translate","$document","$timeout","Auth","api","socket","toasty","globalUserLists","globalLists","globalCompanies","globalTags","license","setting","desktopNotification","msUtils","privacyManager"],angular.module("app.dashboards").controller("AgentDashboardGeneralController",e)}(),function(){"use strict";angular.module("app.dashboards").provider("desktopNotification",function(){var f={autoClose:!0,duration:5,showOnPageHidden:!1};return{config:function(e){for(var n in e)f.hasOwnProperty(n)&&null!=e[n]&&(f[n]=e[n])},$get:["$q","$timeout","$window","PERMISSIONS",function(e,u,n,p){var g=n.Notification||n.mozNotification||n.webkitNotification;return{isSupported:v,currentPermission:h,requestPermission:function(){if(!v())return e.reject("Notification API not supported");var t=e.defer();Promise.resolve(g.requestPermission)==g.requestPermission?g.requestPermission().then(function(e){p.GRANTED===e?t.resolve(e):t.reject(e)}):g.requestPermission(function(e,n){p.GRANTED===e?t.resolve(e):t.reject(e)});return t.promise},show:function(e,n){if(n=n||{},!v()||(t=e,a=n,i=angular.isString(t),s=!a.onClick||angular.isFunction(a.onClick),!i||!s)||function(e){if(e||f.showOnPageHidden)return!(window.document.hidden||window.document.mozHidden||window.document.webkitHidden)}(n.showOnPageHidden)||h()!==p.GRANTED)return;var t,a,i,s;var o=new g(e,n),r=n.duration||f.duration,l=void 0===n.autoClose?f.autoClose:n.autoClose;o.onclick=function(){n.onClick&&n.onClick(),n.focusOnclick&&window.focus(),n.closeOnClick&&o.close()},l&&(d=o,c=r,m=1e3*c,u(d.close.bind(d),m,!1));var d,c,m;return o},permissions:{default:p.DEFAULT,granted:p.GRANTED,denied:p.DENIED}};function v(){return!(void 0===g)}function h(){return(g||{}).permission}}]}}).provider("msNavigationAgentService",function(){var r=angular.injector(["ng"]).get("$log"),l=[];function n(e,n){if(angular.isString(e)){for(var t=e.split("."),a=t[t.length-1],i=function(e){var n=l;if(1===e.length)return n;e.pop();for(var t=0;t<e.length;t++){for(var a=e[t],i=!0,s=0;s<n.length;s++)if(n[s]._id===a){n=n[s].children,i=!1;break}if(i){var o={_id:a,_path:e.join("."),title:a,weight:1,children:[]};n.push(o),n=o.children}}return n}(t),s=!1,o=0;o<i.length;o++)if(i[o]._id===a){s=i[o];break}s?(angular.extend(s,n),s.uisref=d(s)):(n.children=[],!angular.isUndefined(n.weight)&&angular.isNumber(n.weight)||(n.weight=1),n._id=a,n._path=e,n.uisref=d(n),i.push(n))}else r.error("path must be a string (eg. `dashboard.project`)")}function d(e){var n="";return angular.isDefined(e.state)&&(n=e.state,angular.isDefined(e.stateParams)&&angular.isObject(e.stateParams)&&(n=n+"("+angular.toJson(e.stateParams)+")")),n}this.saveItem=n,this.deleteItem=function(e){if(!angular.isString(e))return void r.error("path must be a string (eg. `dashboard.project`)");for(var n=l,t=e.split("."),a=0;a<t.length;a++)for(var i=t[a],s=0;s<n.length;s++)if(n[s]._id===i){if(n[s]._path===e)return n.splice(s,1),!0;n=n[s].children;break}return!1},this.$get=function(){var e={saveItem:n,getNavigation:function(e){if(e){for(var n=0;n<l.length;n++)if(l[n]._id===e)return[l[n]];return null}return l}};return e}}).constant("PERMISSIONS",{DEFAULT:"default",GRANTED:"granted",DENIED:"denied"})}(),function(){"use strict";function e(t){var a=this;a.setting={},a.messages={count:0,rows:[]},a.showInteraction=!1,a.init=function(e,n){{if(a.setting=n,a.tab=e,a.tab.saved=!0,a.tab&&a.tab.data&&a.tab.data.uniqueid)return t.squareMessage.get({uniqueid:a.tab.data.uniqueid}).$promise.then(function(e){a.messages=e}).finally(function(){a.showInteraction=!0});a.showInteraction=!0}},a.getMessagesAlignment=function(e){switch(a.setting.messagesAlignment){case"left":return"in"==e.direction?e.direction:"out-left-aligned";case"right":return"in"==e.direction?"in-right-aligned":e.direction;default:return e.direction}}}e.$inject=["api"],angular.module("app.dashboards").controller("AgentGeneralBotController",e)}(),function(){"use strict";function e(a,d,c,t,m,i,u,p,s,o,e,r,n,l){var g=this;function v(){g.errors=[],u.cmContact.save(g.contact).$promise.then(function(e){g.contact.id=e.id,g.newContact=!1;var n=e.firstName||e.phone;return g.tab.title=g.user.privacyEnabled?l.mask(n):n,g.tab.contact=g.contact,u.user.addContacts({id:s.getCurrentUser().id,ids:[e.id]})}).then(function(){g.detailForm.$pristine=!0,g.customFieldsForm.$pristine=!0,p.success({title:"Contact properly created",msg:g.contact.firstName?g.contact.firstName+" has been created!":""})}).then(function(){return u.cmContact.setTags({id:g.contact.id,ids:g.tab.Tags}).$promise}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}];for(var n=0;n<e.data.errors.length;n+=1)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function h(n){return function(e){g[n]=e||{count:0,rows:[]}}}function f(){g.contact&&g.contact.id&&(g.queryHopper.ContactId=g.contact.id,g.queryHopper.offset=(g.queryHopper.page-1)*g.queryHopper.limit,g.promise=u.cmHopper.get(g.queryHopper,h("hoppers")).$promise)}function b(){g.contact&&g.contact.id&&(g.queryFinal.ContactId=g.contact.id,g.queryFinal.offset=(g.queryFinal.page-1)*g.queryFinal.limit,g.promise=u.cmHopperFinal.get(g.queryFinal,h("finals")).$promise)}function A(){g.contact&&g.contact.id&&(g.queryHistory.ContactId=g.contact.id,g.queryHistory.offset=(g.queryHistory.page-1)*g.queryHistory.limit,g.promise=u.cmHopperHistory.get(g.queryHistory,h("histories")).$promise)}function E(e){return null===e?void 0:new Date(e)}function y(e){g.journeyIsLoading=!0;var n=_.merge(g.journeyOptions,{id:g.contact.id,offset:e||0});return r.get(g.journey,n).then(function(e){g.journey=e.journey,g.canLoadMoreJourney=e.loadMore}).finally(function(){g.journeyIsLoading=!1})}g.user=s.getCurrentUser(),g.detectBrowser=e.detectBrowser(),g.journey=[],g.queryHopper={fields:"id,phone,scheduledat",sort:"-updatedAt",limit:10,page:1},g.queryFinal={fields:"uniqueid,calleridnum,statedesc,starttime,disposition,secondDisposition,thirdDisposition",sort:"-updatedAt",limit:10,page:1},g.queryHistory={fields:"uniqueid,calleridnum,statedesc,scheduledat,starttime,endtime",sort:"-updatedAt",limit:10,page:1},g.hoppers={rows:[],count:0},g.finals={rows:[],count:0},g.histories={rows:[],count:0},g.journeyOptions=r.getQuery(),g.quickFilters=r.getQuickFilters(),g.addNewContact=v,g.saveContact=function(){g.errors=[],u.cmContact.update({id:g.contact.id},g.contact).$promise.then(function(e){var n=e.firstName||e.phone;return g.tab.title=g.user.privacyEnabled?l.mask(n):n,g.tab.contact=g.contact,m.$parent.vm.updateLocalStorage(),u.user.addContacts({id:s.getCurrentUser().id,ids:[e.id]})}).then(function(){return u.cmContact.setTags({id:g.contact.id,ids:g.tab.Tags}).$promise}).then(function(){g.detailForm.$pristine=!0,g.customFieldsForm.$pristine=!0,p.success({title:"Contact properly updated!",msg:g.contact.name?g.contact.name+" has been updated!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}];for(var n=0;n<e.data.errors.length;n+=1)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.getCustomFields=function(e){return u.cmList.getCustomFields({id:e}).$promise.then(function(e){g.tab.customFields=e}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"LIST:GETCustomFields",msg:e.data?JSON.stringify(e.data):e.toString()})})},g.call=m.$parent.vm.call,g.disposeCall=function(e,i){if(g.newContact)return void p.error({title:"ATTENTION",msg:"Please save the contact before disposing!"});d.show({controller:"DisposeCallDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/contact/dispose/dialog.html",parent:angular.element(c.body),targetEvent:i,clickOutsideToClose:!i.mandatoryDisposition,escapeToClose:!i.mandatoryDisposition,resolve:{globalDispositions:["apiResolver",function(e){return e.resolve("disposition@get",{MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0})}]},onRemoving:function(e,n){g.user&&i.mandatoryDisposition&&u.user.unpause({id:g.user.id}).$promise.catch(function(e){console.error(e)})},locals:{dispositions:g.tab.dispositions,contact:g.contact,call:i,availableCalls:g.tab.calls.length,autoClose:m.$parent.vm.autoClose}}).then(function(e){var n=e[0];for(var t in m.$parent.vm.autoClose=e[1],n&&("BLACKLIST"===n?p.success({title:o.instant("DASHBOARDS.INFO"),msg:o.instant("DASHBOARDS.CALL_DISPOSED")+" "+n}):"RECALLME"===n||"RESCHEDULE"===n||p.success({title:o.instant("DASHBOARDS.INFO"),msg:o.instant("DASHBOARDS.CALL_SAVED")})),m.$parent.$parent.$parent.vm.tabs)if(m.$parent.$parent.$parent.vm.tabs.hasOwnProperty(t)){var a=m.$parent.$parent.$parent.vm.tabs[t];_.remove(a.calls,function(e){return e.uniqueid===i.uniqueid})}0===g.tab.calls.length&&m.$parent.vm.autoClose&&m.$parent.vm.removeTab(g.tab),m.$parent.vm.updateLocalStorage()})},g.checkCallStatus=function(n){return g.checkingCallStatus=!0,u.voiceCallReport.get({uniqueid:n.uniqueid}).$promise.then(function(e){e&&0<e.rows.length&&(n.disposedAt=_.first(e.rows).endtime)}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"VOICE_CALL_REPORT:GET",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){g.checkingCallStatus=!1})},g.duplicateContact=function(e){d.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(c.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:g.contact.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:s.getCurrentUser().id,fields:"id,name"})}]},locals:{contacts:[]}})},g.mergeContact=function(e){d.show({controller:"MergeContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/merge/dialog.html",parent:angular.element(c.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:g.contact.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:s.getCurrentUser().id,fields:"id,name"})}]},locals:{contacts:[]}}).then(function(e){if(e){for(var n in m.$parent.$parent.$parent.vm.tabs)if(m.$parent.$parent.$parent.vm.tabs.hasOwnProperty(n)){var t=m.$parent.$parent.$parent.vm.tabs[n];t&&t.contact&&(e.from&&e.from.id&&e.from.id===t.contact.id&&m.$parent.$parent.$parent.vm.removeTab(t),e.to&&e.to.id&&e.to.id===t.contact.id&&m.$parent.$parent.$parent.vm.removeTab(t))}e.new&&m.$parent.$parent.$parent.vm.addContactTab(e.new)}})},g.getDateFromString=E,g.addJscriptyTab=function(e){try{e.formData=Mustache.render(e.formData,{contact:g.contact,user:g.user})}catch(e){console.error(e)}try{m.$parent.$parent.$parent.vm.addTab({type:"jscripty",title:e.name,icon:"icon-script",color:"grey",project:e,contact:g.contact})}catch(e){p.error({title:"ERROR OPENING JSCRIPTY PROJECT",msg:"The project cannot be started"+JSON.stringify(e)})}},g.getHoppers=f,g.getFinals=b,g.getHistories=A,g.getJscriptyProjects=function(){if(g.jscriptyProjects)return;return g.loadingJscriptyProjects=!0,u.jscriptyProject.get({fields:"createdAt,updatedAt,id,name,description,createdAt,formData,enableUncompleteSave",sort:"-updatedAt",nolimit:!0}).$promise.then(function(e){g.jscriptyProjects=e||{count:0,rows:[]}}).catch(function(){p.error({title:o.instant("JSCRIPTY.JSCRIPTY"),msg:o.instant("CONTACTMANAGER.NOTIFICATIONS.JSCRIPTY_GET_ERROR")})}).finally(function(){g.loadingJscriptyProjects=!1})},g.getAccounts=function(n){if(g[n+"Accounts"])return;var e="get"+_.startCase(n)+"Accounts";return g.loadingAccounts=!0,u.user[e]({id:g.user.id,attributes:["id","name"],nolimit:!0}).$promise.then(function(e){g[n+"Accounts"]=e||{count:0,rows:[]}}).catch(function(){p.error({title:o.instant(n.toUpperCase()+"."+n.toUpperCase()+"ACCOUNTS"),msg:o.instant("CONTACTMANAGER.NOTIFICATIONS.ACCOUNTS_GET_ERROR",{channel:o.instant("DASHBOARDS."+n.toUpperCase())})})}).finally(function(){g.loadingAccounts=!1})},g.composeInteraction=function(e,o,r,n){var l=o.toLowerCase();d.show({controller:"Compose"+o+"InteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/"+o.toLowerCase()+"/dialog.html",parent:angular.element(c.body),clickOutsideToClose:!1,locals:{account:r,message:{to:"mail"==l?n:n.split(",")},type:"new",interaction:{Contact:g.contact}},fullscreen:!0}).then(function(s){if(!s||_.isNil(s.message)||!s.message.savedAsDraft)return u[l+"Account"].send({id:r.id},s).$promise.then(function(e){if("Mail"===o){var n=e;if(n&&n.Messages&&n.Messages.length){if(s.attachments&&s.attachments.length)for(var t=0;t<s.attachments.length;t+=1)u.attachment.update({id:s.attachments[t].id},{MailMessageId:_.head(n.Messages).id});if(p.success({title:"Message properly sent!",msg:"Message has been sent!"}),n.closed){n.disposition=null;var a=!r.mandatoryDisposition,i=g.user.voicePause||g.user.chatPause||g.user.mailPause||g.user.openchannelPause||g.user.faxPause;d.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(c.body),onRemoving:function(e,n){g.user&&r.mandatoryDisposition&&!i&&u.user.unpause({id:g.user.id}).$promise.catch(function(e){console.error(e)})},clickOutsideToClose:a,escapeToClose:a,locals:{user:g.user,channel:"mail",interaction:n}})}else m.$parent.vm.addInteractionTab("mail",n)}}else p.success({title:"Message properly sent!",msg:"Message has been sent!"}),m.$parent.vm.addInteractionTab(l,e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else"fax"===l?p.error({title:"FAX:SEND",msg:e.data?JSON.stringify(e.data):e.message||e.toString()}):p.error({title:e.status?"API:"+e.status+" - "+e.statusText:o.toUpperCase()+"ACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})});var e={type:"draft",channel:"mail",account:r,contact:g.contact,id:g.tab.id,openedAt:new Date,saved:!1,title:r.key+" - Untitled",content:s.message},n=a.localStorage.getItem("motion2.home.mail:"+g.user.id);if(n){var t=JSON.parse(n);t.drafts||(t.drafts={}),n=t}else n={drafts:{}};n.drafts[g.tab.id]=e,a.localStorage.setItem("motion2.home.mail:"+g.user.id,JSON.stringify(n))})},g.init=function(n,e){return g.tab=n,m.$watchGroup(["vm.detailForm.$pristine","vm.customFieldsForm.$pristine"],function(e){g.tab.saved=e[0]&&e[1]}),g.license=e,g.contact=g.tab.contact,g.newContact=!1,g.currentTab=0,u.user.get({fields:"id,fullname",nolimit:!0}).$promise.then(function(e){g.users=e||{count:0,rows:[]},g.usersMap=_.mapValues(_.keyBy(g.users.rows,"id"),"fullname")}).then(function(){for(var e=[],n=0;n<g.tab.calls.length;n++){var t=g.tab.calls[n];e.push(u.voiceCallReport.get({uniqueid:t.uniqueid}).$promise.then(function(e){e&&0<e.rows.length&&(t.disposedAt=_.first(e.rows).endtime)}))}return i.all(e)}).then(function(){return u.user.getLists({id:g.user.id,nolimit:!0}).$promise}).then(function(e){if(g.lists=e||{count:0,rows:[]},g.contact&&g.contact.ListId){if(g.list=_.find(g.lists.rows,{id:g.contact.ListId}),g.list)return;return u.cmList.get({id:g.contact.ListId}).$promise.then(function(e){e&&(g.list=e,g.lists.rows=_.unionBy(g.lists.rows,[g.list]))})}}).then(function(){if(g.contact&&g.contact.id){var e={id:g.contact.id,ListId:g.contact.ListId,limit:1,offset:0,sort:"-updatedAt"};return u.cmContact.get(e).$promise.then(function(e){return g.contact=e,g.tab.contact=e,u.user.addContacts({id:g.user.id,ids:[g.contact.id]})}).then(function(){if(g.contact.ListId)return u.disposition.get({ListId:g.contact.ListId,nolimit:!0}).$promise.then(function(e){return g.tab.dispositions=e,u.cmList.getCustomFields({id:g.contact.ListId,nolimit:!0}).$promise}).then(function(e){g.tab.customFields=e})}).then(function(){try{g.tab.companies=m.$parent.$parent.$parent.vm.globalCompanies,g.tab.tags=m.$parent.$parent.$parent.vm.globalTags,g.tab.autoCreate=0}catch(e){}f(),b(),A()}).then(function(){return u.cmContact.getTags({id:g.contact.id}).$promise.then(function(e){g.tab.Tags=_.map(e.rows,"id")})})}return g.newContact=!0,n.autoCreate?v():void 0}).finally(function(){g.contact&&g.contact.id&&(y(),g.contact.dateOfBirth=E(g.contact.dateOfBirth))})},g.hasPermission=function(e){return s.hasPermission(e)},g.openInteraction=function(e){try{return m.$parent.$parent.$parent.vm.addInteractionTab(e.channel,e)}catch(e){p.error({title:o.instant("CONTACTMANAGER.CUSTOMER_JOURNEY"),msg:o.instant("CONTACTMANAGER.NOTIFICATIONS.INTERACTION_OPEN_ERROR")})}},g.getCustomerJourney=y,g.loadMoreJourney=function(){return i(function(e,n){var t=g.journey.length;return e(y(t))})},m.$on("$destroy",function(){}),m.$watch("currentTab",function(e,n){1===g.currentTab&&(f(),b(),A())});var S=!0,T=1;m.$watch("queryHopper.filter",function(e,n){S?t(function(){S=!1}):(n||(T=g.queryHopper.page),e!==n&&(g.queryHopper.page=1),e||(g.queryHopper.page=T),f())}),m.$watch("queryFinal.filter",function(e,n){S?t(function(){S=!1}):(n||(T=g.queryFinal.page),e!==n&&(g.queryFinal.page=1),e||(g.queryFinal.page=T),b())}),m.$watch("queryHistory.filter",function(e,n){S?t(function(){S=!1}):(n||(T=g.queryHistory.page),e!==n&&(g.queryHistory.page=1),e||(g.queryHistory.page=T),A())})}e.$inject=["$window","$mdDialog","$document","$timeout","$scope","$q","api","toasty","Auth","$translate","msUtils","customerJourneyManager","draftManager","privacyManager"],angular.module("app.dashboards").controller("AgentGeneralContactController",e)}(),function(){"use strict";function e(n,t,i,s,o,e,a,r,l,d,c,m,u){var p=this;function g(){return i(function(n,e){o.user.getQueues({id:d.getCurrentUser().id,fields:"id,name,dialActive,dialMethod",channel:"voice",type:"outbound",nolimit:!0}).$promise.then(function(e){p.queueCampaigns=e||{count:0,rows:[]},n()}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.getBlackLists",msg:e.data?JSON.stringify(e.data):e.toString()})})})}function v(){var e=p.selectedDisposition?p.selectedDisposition.name.toLowerCase():void 0;return{id:p.call.uniqueid,disposition:p.firstLevelDisposition?p.firstLevelDisposition.name:null,secondDisposition:p.secondLevelDisposition?p.secondLevelDisposition.name:null,thirdDisposition:p.thirdLevelDisposition?p.thirdLevelDisposition.name:null,dispositionat:moment(),amd:"amd"===e,fax:"fax"===e,blacklist:"blacklist"===e,recallme:"recallme"===e,UserId:"recallme"===e?d.getCurrentUser().id:null,OwnerId:d.getCurrentUser().id}}function h(e){t.hide([e,p.autoClose])}p.user=d.getCurrentUser(),p.isReschedule=!1,p.recallme=!1,p.queueCampaign=void 0,p.queueCampaigns={count:0,rows:[]},p.dispositions=_.orderBy(_.concat([],e.rows,a.rows),["name"],["asc"]),p.contact=l,p.call=r,p.note=p.call.note||void 0,p.dialerCall=!1,p.hasBlackLists=!1,p.availableCalls=m,p.autoClose=u,p.hopper={minDate:new Date,dateTime:new Date},p.call&&p.call.variables&&p.call.variables["xmd-voicequeueid"]?(p.dialerCall=!0,o.voiceQueue.getBlackLists({id:p.call.variables["xmd-voicequeueid"]}).$promise.then(function(e){e&&e.rows&&0<e.rows.length&&(p.hasBlackLists=!0)}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.getBlackLists",msg:e.data?JSON.stringify(e.data):e.toString()})})):g(),p.onDispositionChange=function(e){switch(e){case"first":p.selectedDisposition=p.firstLevelDisposition,p.anySecondLevelDisposition=_.some(p.dispositions,["ParentId",p.firstLevelDisposition.id]),p.secondLevelDisposition=void 0,p.thirdLevelDisposition=void 0,p.anyThirdLevelDisposition=!1;break;case"second":p.selectedDisposition=p.secondLevelDisposition,p.anyThirdLevelDisposition=_.some(p.dispositions,["ParentId",p.secondLevelDisposition.id]);break;case"third":p.selectedDisposition=p.thirdLevelDisposition}},p.clearDispositionSelection=function(e){"second"===e?(p.secondLevelDisposition=void 0,p.thirdLevelDisposition=void 0,p.selectedDisposition=p.firstLevelDisposition):"third"===e&&(p.thirdLevelDisposition=void 0,p.selectedDisposition=p.secondLevelDisposition)},p.saveDisposition=function(e){p.selectedDisposition=_.isNil(e)?p.selectedDisposition:{name:e},e&&(p.firstLevelDisposition=p.selectedDisposition);p.call.note=p.note,o.voiceCallReport.update({id:p.call.uniqueid,userDisposition:p.firstLevelDisposition?p.firstLevelDisposition.name:null,userSecondDisposition:p.secondLevelDisposition?p.secondLevelDisposition.name:null,userThirdDisposition:p.thirdLevelDisposition?p.thirdLevelDisposition.name:null,note:p.note,UserId:d.getCurrentUser().id,ContactId:p.contact.id}).$promise.catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEVOICECALLREPORT",msg:e.data?JSON.stringify(e.data):e.toString()})}),o.voiceRecording.get({uniqueid:p.call.uniqueid}).$promise.then(function(e){if(e)for(var n=0;n<e.rows.length;n+=1)o.voiceRecording.update({id:e.rows[n].id,userDisposition:p.firstLevelDisposition?p.firstLevelDisposition.name:null,userSecondDisposition:p.secondLevelDisposition?p.secondLevelDisposition.name:null,userThirdDisposition:p.thirdLevelDisposition?p.thirdLevelDisposition.name:null}).$promise.catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEVOICERECORDING",msg:e.data?JSON.stringify(e.data):e.toString()})})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEVOICERECORDING",msg:e.data?JSON.stringify(e.data):e.toString()})}),p.dialerCall&&(o.cmHopperFinal.update(v()).$promise.catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECMHOPPERFINAL",msg:e.data?JSON.stringify(e.data):e.toString()})}),o.cmHopperHistory.update(v()).$promise.catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECMHOPPERHISTORY",msg:e.data?JSON.stringify(e.data):e.toString()})}));if(_.isNil(p.selectedDisposition))h(p.selectedDisposition?p.selectedDisposition.name.toUpperCase():"");else switch(p.selectedDisposition.name.toLowerCase()){case"blacklist":p.call&&p.call.variables&&p.call.variables["xmd-voicequeueid"]&&function(e){if(e)o.voiceQueue.getBlackLists({id:e,type:"outbound",fields:"id"}).$promise.then(function(e){var n=[];if(e&&0<e.count){for(var t=0;t<e.rows.length;t+=1){var a=angular.copy(p.contact);delete a.id,a.ListId=e.rows[t].id,n.push(o.cmContact.save(a).$promise)}return i.all(n)}s.success({title:c.instant("DASHBOARDS.INFO"),msg:c.instant("DASHBOARDS.NOTAVAILABLE")+" "+p.selectedDisposition}),p.selectedDisposition=void 0}).then(function(e){e&&h(p.selectedDisposition?p.selectedDisposition.name.toUpperCase():"")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEBLACKLIST",msg:e.data?JSON.stringify(e.data):e.toString()}),h(p.selectedDisposition?p.selectedDisposition.name.toUpperCase():"")})}(p.call.variables["xmd-voicequeueid"]);break;case"reschedule":p.isReschedule=!0,p.recallme=!1;break;case"recallme":p.isReschedule=!0,p.recallme=!0,p.user.selectRecallMeCampaign&&g().then(function(){p.originalCampaign=_.find(p.queueCampaigns.rows,["id",p.call.variables["xmd-voicequeueid"]]);var e=JSON.parse(n.localStorage.getItem("motion2.user:"+p.user.id));p.queueCampaign=e.previewCampaignId?_.find(p.queueCampaigns.rows,["id",Number(e.previewCampaignId)]):p.originalCampaign});break;default:h(p.selectedDisposition?p.selectedDisposition.name.toUpperCase():"")}},p.closeDialog=function(){t.cancel()},p.saveReschedule=function(){p.disable=!0;var e=p.queueCampaign?p.queueCampaign.id:null;p.dialerCall&&(e=p.queueCampaign&&"preview"===p.originalCampaign.dialMethod?p.queueCampaign.id:Number(p.call["xmd-voicequeueid"]));return o.cmHopper.save({phone:p.contact.phone,UserId:p.recallme?d.getCurrentUser().id:null,ContactId:p.contact.id,ListId:p.contact.ListId,VoiceQueueId:e,scheduledat:moment(p.hopper.dateTime).format("YYYY-MM-DD HH:mm:ss"),priority:3,recallme:p.recallme,OwnerId:d.getCurrentUser().id}).$promise.then(function(){if(p.dialerCall&&(o.cmHopperFinal.update({id:p.call.uniqueid,rescheduled:!0,rescheduledat:moment(p.hopper.dateTime).format("YYYY-MM-DD HH:mm:ss"),recallme:p.recallme}).$promise.catch(function(e){console.log(e)}),p.user.selectRecallMeCampaign&&"preview"===p.originalCampaign.dialMethod)){var e=JSON.parse(n.localStorage.getItem("motion2.user:"+p.user.id));e.previewCampaignId=p.queueCampaign.id,n.localStorage.setItem("motion2.user:"+p.user.id,JSON.stringify(e))}}).then(function(){s.success({title:c.instant("DASHBOARDS.INFO"),msg:c.instant("DASHBOARDS.CALL_DISPOSED")+" "+(p.recallme?c.instant("DASHBOARDS.RECALLME"):c.instant("DASHBOARDS.RESCHEDULE"))})}).catch(function(e){h(p.selectedDisposition?p.selectedDisposition.name.toUpperCase():"")}).finally(function(){p.disable=!1,h(p.selectedDisposition?p.selectedDisposition.name.toUpperCase():"")})}}e.$inject=["$window","$mdDialog","$q","toasty","api","dispositions","globalDispositions","call","contact","Auth","$translate","availableCalls","autoClose"],angular.module("app.staff").controller("DisposeCallDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.call=l,u.contact=r,u.hopper={minDate:new Date,dateTime:new Date},u.closeDialog=function(){a.cancel()},u.saveDialog=function(){return u.disable=!0,o.cmHopper.save({phone:u.contact.phone,UserId:c?d.getCurrentUser().id:null,ContactId:u.contact.id,ListId:u.contact.ListId,VoiceQueueId:Number(u.call["xmd-voicequeueid"]),scheduledat:moment(u.hopper.dateTime).format("YYYY-MM-DD HH:mm:ss"),priority:3,recallme:c,OwnerId:d.getCurrentUser().id}).$promise.then(function(){o.cmHopperFinal.update({id:u.call.uniqueid,rescheduled:!0,rescheduledat:moment(u.hopper.dateTime).format("YYYY-MM-DD HH:mm:ss"),recallme:c}).$promise}).then(function(){s.success({title:m.instant("DASHBOARDS.INFO"),msg:m.instant("DASHBOARDS.CALL_DISPOSED")+" "+(c?m.instant("DASHBOARDS.RECALLME"):m.instant("DASHBOARDS.RESCHEDULE"))}),a.hide()}).catch(function(e){a.cancel(e)}).finally(function(){u.disable=!1})}}e.$inject=["$scope","$state","$location","$mdDialog","$timeout","toasty","api","contact","call","Auth","recallme","$translate"],angular.module("app.staff").controller("RescheduleCallDialogController",e)}(),function(){"use strict";function e(e,a,n,t,i,s){var o=this;o.callNumber=i,o.page=1,o.onInit=function(){n.cmList.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){o.lists=_.chain(e.rows).keyBy("id").mapValues("name").value(),n.cmCustomField.get({fields:"id,alias",nolimit:!0}).$promise.then(function(e){o.customFields=e.rows,o.contacts=_.map(t,function(t){return Object.keys(t).forEach(function(e){if(Number(t[e])===Number(o.callNumber))if(e.startsWith("cf_")){var n=_.find(o.customFields,["id",Number(_.trimStart(e,"cf_"))]);t.matchingField=n?n.alias:a.instant("DASHBOARDS.UNKNOWN")}else t.matchingField=e}),t})})}).then(function(){o.paginatedContacts=_.chunk(t,4)}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmList.get",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},o.selectContact=function(){e.hide(o.selectedContact)}}e.$inject=["$mdDialog","$translate","api","contacts","callNumber","toasty"],angular.module("app.dashboards").controller("ContactSelectionController",e)}(),function(){"use strict";function e(e,n){var t=n(function(){},999);e.$on("$destroy",function(){t&&(n.cancel(t),t=null)})}e.$inject=["$scope","$interval"],angular.module("app.dashboards").controller("AgentHomeAbandonedController",e)}(),function(){"use strict";function e(e,n,a,i,t,s,o,r,l,d){var c=this;function m(){return o.disposition.get({fields:"createdAt,updatedAt,id,name,level,ParentId",sort:"name",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0}).$promise.then(function(e){return c.dispositions=e?e.rows:[],o.user.getQueues({id:r.getCurrentUser().id,fields:"id,name",channel:"voice",type:"outbound",nolimit:!0}).$promise}).then(function(e){c.queues=e||{count:0,rows:[]},c.queuesMap=_.mapValues(_.keyBy(c.queues.rows,"name"),"name"),c.defaultQueues=c.queues.rows?_.map(c.queues.rows,"name").join(","):void 0}).then(function(){c.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Agent",key:"lastAssignedTo",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:c.currentUser.name,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}],ngValue:"name"},{name:"Campaign",key:"queue",type:"multiselect",label:"DASHBOARDS.SELECT_CAMPAIGN",options:c.queues.rows,ngValue:"name",clearAll:!1}]}).catch(function(e){console.log(e)}).finally(function(){var e=t.localStorage.getItem("motion2.home.abandoned.bull.calls:"+c.currentUser.id);if(e)(e=JSON.parse(e)).query&&(c.query=_.merge(e.query,c.query));else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};c.query.createdAt=n}c.isSearchBarVisible=!!c.query.filter,u()})}function u(){c.query.queue=c.query.queue||c.defaultQueues.split(","),c.query.offset=(c.query.page-1)*c.query.limit;var e={query:c.query};t.localStorage.setItem("motion2.home.abandoned.bull.calls:"+c.currentUser.id,JSON.stringify(e)),c.promise=o.voiceQueueReport.getVoiceQueuesReport(c.query,p).$promise}function p(e){c.abandonedCalls=e||{count:0,rows:[]},c.refresh=!0}c.showTooltip=!1,c.refresh=!0,c.disable=[],c.dispositions={count:0,rows:[]},c.currentUser=r.getCurrentUser(),c.queues={},c.abandonedCalls={count:0,rows:[]},c.query={fields:"id,type,calleridnum,calleridname,queue,queuecallerabandonAt,queuecallerexitAt,queuecallerexitreason,assigned,lastAssignedTo,updatedAt,disposition,secondDisposition,thirdDisposition",type:"outbound",queuecallerexitreason:"TIMEOUT,ABANDONED",sort:"-updatedAt",limit:10,page:1},c.getAbandonedCalls=u,c.refreshAbandonedCalls=function(){c.showTooltip=!1,u()},c.onInit=m,c.reserved=function(e){e&&(c.disable[e.id]=!0,o.voiceQueueReport.update({id:e.id,lastAssignedTo:e.assigned?c.currentUser.name:null,assigned:e.assigned}).$promise.catch(function(e){console.log(e)}).finally(function(){c.disable[e.id]=!1,e.lastAssignedTo=e.assigned?c.currentUser.name:null}))},c.dispose=function(t){a.show({controller:"DisposeAbandonedCallDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/home/abandoned/dispose/dialog.html",parent:angular.element(i.body),targetEvent:t,locals:{dispositions:c.dispositions,call:t}}).then(function(e){if(e){c.disable[t.id]=!0;var n={id:t.id,lastAssignedTo:t.assigned?c.currentUser.name:null,assigned:t.assigned,disposition:e.firstLevel||null,secondDisposition:e.secondLevel||null,thirdDisposition:e.thirdLevel||null};o.voiceQueueReport.update(n).$promise.catch(function(e){console.log(e)}).finally(function(){c.disable[t.id]=!1,t.disposition=e.firstLevel,t.secondDisposition=e.secondLevel,t.thirdDisposition=e.thirdLevel})}})},c.call=e.$parent.$parent.$parent.$parent.vm.call,c.transfer=e.$parent.$parent.$parent.$parent.vm.transfer,c.webcall=e.$parent.$parent.$parent.$parent.vm.webcall,c.webtransfer=e.$parent.$parent.$parent.$parent.vm.webtransfer,l.onWithoutApply("voiceQueueReport:save",function(e){c.queuesMap&&"outbound"===e.type&&c.queuesMap[e.queue]&&(c.showTooltip=!0)}),l.onWithoutApply("voiceQueueReport:update",function(e){if(e){var n=_.findIndex(c.abandonedCalls.rows,["id",e.id]);0<=n&&_.merge(c.abandonedCalls.rows[n],e)}}),m(),e.$on("$destroy",function(){l.removeAllListeners("voiceQueueReport:save"),l.removeAllListeners("voiceQueueReport:update")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeAbandonedBullController",e)}(),function(){"use strict";function e(n,e,t){var a=this;a.dispositions=e,a.call=t,a.note=a.call.note||void 0,a.onDispositionChange=function(e){switch(e){case"first":a.selectedDisposition=a.firstLevelDisposition,a.anySecondLevelDisposition=_.some(a.dispositions,["ParentId",a.firstLevelDisposition.id]),a.secondLevelDisposition=void 0,a.thirdLevelDisposition=void 0,a.anyThirdLevelDisposition=!1;break;case"second":a.selectedDisposition=a.secondLevelDisposition,a.anyThirdLevelDisposition=_.some(a.dispositions,["ParentId",a.secondLevelDisposition.id]);break;case"third":a.selectedDisposition=a.thirdLevelDisposition}},a.clearDispositionSelection=function(e){"second"===e?(a.secondLevelDisposition=void 0,a.thirdLevelDisposition=void 0,a.selectedDisposition=a.firstLevelDisposition):"third"===e&&(a.thirdLevelDisposition=void 0,a.selectedDisposition=a.secondLevelDisposition)},a.saveDisposition=function(){a.call.note=a.note;var e={firstLevel:a.firstLevelDisposition?a.firstLevelDisposition.name:void 0,secondLevel:a.secondLevelDisposition?a.secondLevelDisposition.name:void 0,thirdLevel:a.thirdLevelDisposition?a.thirdLevelDisposition.name:void 0};n.hide(e)},a.closeDialog=function(){n.cancel()}}e.$inject=["$mdDialog","dispositions","call"],angular.module("app.dashboards").controller("DisposeAbandonedCallDialogController",e)}(),function(){"use strict";function e(e,n,a,i,t,s,o,r,l,d){var c=this;function m(){return o.disposition.get({fields:"createdAt,updatedAt,id,name,level,ParentId",sort:"name",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0}).$promise.then(function(e){return c.dispositions=e?e.rows:[],o.user.getQueues({id:r.getCurrentUser().id,fields:"id,name",channel:"voice",type:"inbound",nolimit:!0}).$promise}).then(function(e){c.queues=e||{count:0,rows:[]},c.queuesMap=_.mapValues(_.keyBy(c.queues.rows,"name"),"name"),c.defaultQueues=c.queues.rows?_.map(c.queues.rows,"name").join(","):void 0}).then(function(){c.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Agent",key:"lastAssignedTo",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:c.currentUser.name,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}],ngValue:"name"},{name:"Campaign",key:"queue",type:"multiselect",label:"DASHBOARDS.SELECT_QUEUE",options:c.queues.rows,ngValue:"name",clearAll:!1}]}).catch(function(e){console.log(e)}).finally(function(){var e=t.localStorage.getItem("motion2.home.abandoned.voice.calls:"+c.currentUser.id);if(e)(e=JSON.parse(e)).query&&(c.query=_.merge(e.query,c.query));else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};c.query.createdAt=n}c.isSearchBarVisible=!!c.query.filter,u()})}function u(){c.query.queue=c.query.queue||c.defaultQueues.split(","),c.query.offset=(c.query.page-1)*c.query.limit;var e={query:c.query};t.localStorage.setItem("motion2.home.abandoned.voice.calls:"+c.currentUser.id,JSON.stringify(e)),c.promise=o.voiceQueueReport.getVoiceQueuesReport(c.query,p).$promise}function p(e){c.abandonedCalls=e||{count:0,rows:[]},c.refresh=!0}c.showTooltip=!1,c.refresh=!0,c.disable=[],c.dispositions={count:0,rows:[]},c.currentUser=r.getCurrentUser(),c.queues={},c.abandonedCalls={count:0,rows:[]},c.query={fields:"id,type,calleridnum,calleridname,queue,queuecallerabandonAt,queuecallerexitAt,queuecallerexitreason,assigned,lastAssignedTo,updatedAt,disposition,secondDisposition,thirdDisposition",type:"inbound",queuecallerexitreason:"TIMEOUT,ABANDONED",sort:"-updatedAt",limit:10,page:1},c.getAbandonedCalls=u,c.refreshAbandonedCalls=function(){c.showTooltip=!1,u()},c.onInit=m,c.reserved=function(e){e&&(c.disable[e.id]=!0,o.voiceQueueReport.update({id:e.id,lastAssignedTo:e.assigned?c.currentUser.name:null,assigned:e.assigned}).$promise.catch(function(e){console.log(e)}).finally(function(){c.disable[e.id]=!1,e.lastAssignedTo=e.assigned?c.currentUser.name:null}))},c.dispose=function(t){a.show({controller:"DisposeAbandonedCallDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/home/abandoned/dispose/dialog.html",parent:angular.element(i.body),targetEvent:t,locals:{dispositions:c.dispositions,call:t}}).then(function(e){if(e){c.disable[t.id]=!0;var n={id:t.id,lastAssignedTo:t.assigned?c.currentUser.name:null,assigned:t.assigned,disposition:e.firstLevel||null,secondDisposition:e.secondLevel||null,thirdDisposition:e.thirdLevel||null};o.voiceQueueReport.update(n).$promise.catch(function(e){console.log(e)}).finally(function(){c.disable[t.id]=!1,t.disposition=e.firstLevel,t.secondDisposition=e.secondLevel,t.thirdDisposition=e.thirdLevel})}})},c.call=e.$parent.$parent.$parent.$parent.vm.call,c.transfer=e.$parent.$parent.$parent.$parent.vm.transfer,c.webcall=e.$parent.$parent.$parent.$parent.vm.webcall,c.webtransfer=e.$parent.$parent.$parent.$parent.vm.webtransfer,l.onWithoutApply("voiceQueueReport:save",function(e){c.queuesMap&&"inbound"===e.type&&c.queuesMap[e.queue]&&(c.showTooltip=!0)}),l.onWithoutApply("voiceQueueReport:update",function(e){if(e){var n=_.findIndex(c.abandonedCalls.rows,["id",e.id]);0<=n&&_.merge(c.abandonedCalls.rows[n],e)}}),m(),e.$on("$destroy",function(){l.removeAllListeners("voiceQueueReport:save"),l.removeAllListeners("voiceQueueReport:update")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeAbandonedVoiceController",e)}(),function(){"use strict";function e(n,a,t,e,i){var s=this;s.user=t.getCurrentUser(),s.license={},s.plugin={},s.setting={},s.sidebar="dashboard",s.draftManager=i,s.navigation=e.getNavigation(),s.addContactTab=n.$parent.vm.addContactTab,s.addInteractionTab=n.$parent.vm.addInteractionTab,s.init=function(e,n){s.license=e,s.setting=n;var t=a.localStorage.getItem("motion2.home:"+s.user.id);if(t){try{t=JSON.parse(t),s.sidebar=t.currentSidebarTab?t.currentSidebarTab:"dashboard"}catch(e){console.error(e),s.sidebar="dashboard"}"mail"===s.sidebar&&s.draftManager.init()}},s.changeSidebarTab=function(e){s.sidebar=e.view,"plugin"===s.sidebar&&(s.plugin=e.stateParams,s.pluginId=e.id,n.$broadcast("pluginUpdated",{plugin:s.plugin}));a.localStorage.setItem("motion2.home:"+s.user.id,JSON.stringify({currentSidebarTab:e.view}))},s.hasPermission=function(e){return t.hasPermission(e)},n.$watch("vm_home.sidebar",function(e,n){"mail"===e?s.draftManager.init():s.draftManager.drafts={}})}e.$inject=["$scope","$window","Auth","msNavigationAgentService","draftManager"],angular.module("app.dashboards").controller("AgentGeneralHomeController",e)}(),function(){"use strict";function e(t,n,i,s,a,o,r,e,l,d){var c=this;function m(e){!c.reloadingInteractions&&0<c.setting.chatInteractionsReloadTimeout&&A(!0),c.searchInProgress=!1,c.reloadingInteractions=!1,c.chatInteractions=e||{count:0,rows:[]};for(var n=0;n<c.chatInteractions.rows.length;n+=1)p(c.chatInteractions.rows[n])}function u(e,n){c.searchInProgress=!0,e||(c.query.page=1),c.query.offset=(c.query.page-1)*c.query.limit;var t=a.localStorage.getItem("motion2.home.chat:"+c.user.id);(t=t?JSON.parse(t):{}).query=c.query,a.localStorage.setItem("motion2.home.chat:"+c.user.id,JSON.stringify(t)),c.promise=r.chatInteraction.get(c.query,m).$promise}function p(e){"Unknown"===e.contactName&&(e.contactName=o.instant("DASHBOARDS.UNKNOWN"))}function g(e){var n=_.find(c.chatInteractions.rows,{id:e.ChatInteractionId});n&&n.Users&&(_.find(n.Users,{id:e.UserId})||n.Users.push({id:e.UserId}))}function v(e){var n=_.find(c.chatInteractions.rows,{id:e.ChatInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function h(e){if(e){var n=_.find(c.chatInteractions.rows,{id:e.id});if(n){if(n.Users=[],e.closed&&(n.unreadMessages=0),c.query.sort){var t=_.startsWith(c.query.sort,"-")?"desc":"asc";c.chatInteractions.rows=_.orderBy(c.chatInteractions.rows,_.trimStart(c.query.sort,"-"),t)}_.merge(n,_.pick(e,_.keys(n)))}else 0===c.setting.chatInteractionsReloadTimeout&&u(c.query.page)}}function f(e){if(e){var n=_.find(c.chatInteractions.rows,{id:e.id});n&&(n.Tags=e.tags||[],_.merge(n,_.pick(e,_.keys(n))))}}function b(e){if(e&&!e.secret){var n=_.find(c.chatInteractions.rows,{id:e.ChatInteractionId});if(n){var t=_.find(n.Messages,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):(_.isNil(n.Messages)&&(n.Messages={count:0}),e.read||(n.Messages.count+=1))}}}function A(e){e&&c.interactionsInterval&&n.cancel(c.interactionsInterval),c.interactionsInterval=n(function(){c.reloadingInteractions=!0,c.searchInProgress||u()},1e3*c.setting.chatInteractionsReloadTimeout)}c.user=e.getCurrentUser(),c.license={},c.setting={},c.tags={count:0,rows:[]},c.chatInteractions={count:0,rows:[]},c.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1,read:null,closed:null},c.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Customer Ip",column:"customerIp",type:"text",options:{excludedOperators:["$eq","$ne","$startsWith","$endsWith"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Website",column:"ChatWebsiteId",type:"multiselect",options:{route:{model:"user",action:"getChatWebsites",params:{id:c.user.id,nolimit:!0}}}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},c.sectionColor="green-A700",c.onInit=function(e,n){return c.license=e,c.setting=n,r.user["get"+_.upperFirst("ChatWebsites")]({id:c.user.id,nolimit:!0}).$promise.then(function(e){return c.chatAccounts=e||{count:0,rows:[]},r.tag.get({sort:"name"}).$promise}).then(function(e){c.tags=e||{count:0,rows:[]}}).then(function(){c.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Website",key:"ChatWebsiteId",type:"multiselect",label:"DASHBOARDS.SELECT_ACCOUNT",options:c.chatAccounts.rows,clearAll:!1},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:c.user.id,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:c.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=a.localStorage.getItem("motion2.home.chat:"+c.user.id);if(e)try{(e=JSON.parse(e)).query&&(c.query=_.merge(c.query,e.query),_.isEmpty(c.chatAccounts.rows)?c.query.ChatWebsiteId=[]:_.isEmpty(c.query.ChatWebsiteId)&&(c.query.ChatWebsiteId=_(c.chatAccounts.rows).map("id").take().value()),c.query.sort&&0<=c.query.sort.indexOf("lastMessage")&&(c.query=_.omit(c.query,"sort")),c.query.includeAll=!0,c.isSearchBarVisible=!(c.query.search||!c.query.filter))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()},t={ChatWebsiteId:_.map(c.chatAccounts.rows,"id"),createdAt:n};c.query=_.merge(c.query,t)}l.on("chatInteraction:save",h),l.on("chatInteraction:update",h),l.on("chatInteractionTags:save",f),l.on("chatMessage:save",b),l.on("chatMessage:update",b),l.on("user_has_chat_interactions:save",g),l.on("user_has_chat_interactions:remove",v),u(c.query.page),0<c.setting.chatInteractionsReloadTimeout&&A()})},c.success=m,c.getChatInteractions=u,c.showChatInteraction=function(e,n){t.$parent.vm.addInteractionTab("chat",n)},c.downloadChatInteraction=function(e,s,n){r.chatInteraction.download({id:s.id,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="chat-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadChatInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.disposeInteraction=function(e,t){var a=c.user.voicePause||c.user.chatPause||c.user.mailPause||c.user.openchannelPause||c.user.faxPause,n=!t.Account.mandatoryDisposition;i.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(s.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(e,n){c.user&&t.Account.mandatoryDisposition&&!a&&r.user.unpause({id:c.user.id}).$promise.catch(function(e){console.error(e)})},locals:{user:c.user,channel:"chat",interaction:t}})},c.getContactLabel=p,c.getAgentLabel=function(e){if(e.UserId)return e.UserId===c.user.id?o.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">";return o.instant("DASHBOARDS.NOT_ASSIGNED")},c.getChatWebsiteLabel=function(e){if(e.Account)return e.Account.key;return o.instant("DASHBOARDS.UNKNOWN")},c.openAdvancedSearch=function(){i.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(s.body),clickOutsideToClose:!1,locals:{color:c.sectionColor,fields:c.advancedSearch.fields,storagePath:"home.chat"},fullscreen:!0}).then(function(e){c.isSearchBarVisible=!(e.value||!c.query.filter),e.apply&&(c.query.search=e.value,u())}).catch(function(e){d.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},t.$on("$destroy",function(){l.removeAllListeners("chatMessage:save"),l.removeAllListeners("chatMessage:update"),l.removeAllListeners("chatInteraction:save"),l.removeAllListeners("chatInteractionTags:save"),l.removeAllListeners("chatInteraction:update"),l.removeAllListeners("user_has_chat_interactions:save"),l.removeAllListeners("user_has_chat_interactions:remove"),c.interactionsInterval&&n.cancel(c.interactionsInterval)})}e.$inject=["$scope","$interval","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeChatController",e)}(),function(){"use strict";function e(t,n,e,a,i,s,o,r){var l=this;function d(e){l.searchInProgress=!1,l.contacts=e||{count:0,rows:[]}}function c(e,n){l.searchInProgress=!0,o.cmContact.describe({id:l.query.ListId}).$promise.then(function(e){return _(e.toJSON()).omit("UserId").values().map(function(e){return function(e){var n={name:_.startCase(e.displayName),column:e.columnName,options:{}};if(e.custom)switch(e.custom.type){case"text":n.type="text";break;case"select":n.type="multiselect",n.values=_.map(JSON.parse(e.custom.values),function(e,n){return{id:n,name:e.value,value:e.value}}),n.options.field="name";break;case"switch":n.type="select",n.values=[{id:1,translate:"DASHBOARDS.ENABLED"},{id:0,translate:"DASHBOARDS.DISABLED"}],n.options.excludedOperators=["$ne"];break;case"number":n.type="number";break;case"datetime":n.type="date"}else switch(e.columnName){case"dateOfBirth":n.type="date";break;case"CompanyId":n.name="Company",n.type="autocomplete",n.options.route={model:"cmCompany",action:"get",params:{fields:"id,name",nolimit:!0}},n.options.searchFields=["name"],n.options.excludedOperators=["$ne"];break;case"ListId":n.name="List",n.type="autocomplete",n.options.route={model:"user",action:"getLists",params:{id:l.currentUser.id,fields:"id,name",nolimit:!0}},n.options.searchFields=["name"],n.options.excludedOperators=["$ne"];break;default:_.includes(e.type.toLowerCase(),"int")?n.type="number":_.includes(e.type.toLowerCase(),"date")?n.type="date":n.type="text"}return n}(e)}).value()}).then(function(e){l.advancedSearch.fields=e;var n=_.findIndex(e,function(e){return _.startsWith(e.column,"cf_")})||e.length-1;n<0&&(n=e.length),l.advancedSearch.fields.splice(n,0,{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"DESCRIBE_CM_CONTACTS",msg:e.data?JSON.stringify(e.data.message):e.toString()})}),e||(l.query.page=1),l.query.offset=(l.query.page-1)*l.query.limit;var t=i.localStorage.getItem("motion2.home.contacts:"+l.currentUser.id);(t=t?JSON.parse(t):{}).query=l.query,i.localStorage.setItem("motion2.home.contacts:"+l.currentUser.id,JSON.stringify(t)),l.promise=o.cmContact.get(l.query,d).$promise}l.currentUser=s.getCurrentUser(),l.lists={},l.contacts={count:0,rows:[]},l.tags={count:0,rows:[]},l.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1},l.advancedSearch={fields:[]},l.sectionColor="red",l.getContacts=c,l.refreshContacts=function(){c()},l.mergeContact=function(e,n){a.show({controller:"MergeContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/merge/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:l.currentUser.id,fields:"id,name"})}]},locals:{contacts:l.contacts.rows}})},l.duplicateContact=function(e,n){a.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:l.currentUser.id,fields:"id,name"})}]},locals:{contacts:l.contacts.rows}})},l.openContact=function(e){return o.cmContact.get({id:e}).$promise.then(function(e){n.$parent.vm.addContactTab(e)})},l.call=n.$parent.vm.call,l.onInit=function(){o.user.getLists({id:l.currentUser.id,fields:"id,name,dialPrefix",sort:"name",nolimit:!0}).$promise.then(function(e){return l.lists=e||{count:0,rows:[]},l.listsMap=_.keyBy(l.lists.rows,"id"),o.tag.get({sort:"name"}).$promise}).then(function(e){l.tags=e||{count:0,rows:[]}}).then(function(){l.quickFilters=[{name:"List",key:"ListId",type:"multiselect",label:"CONTACTMANAGER.SELECT_LIST",options:l.lists.rows,clearAll:!1},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:l.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=i.localStorage.getItem("motion2.home.contacts:"+l.currentUser.id);if(e)try{(e=JSON.parse(e)).query&&(l.query=_.merge(l.query,e.query),_.isEmpty(l.lists.rows)?l.query.ListId=[]:_.isEmpty(l.query.ListId)&&(l.query.ListId=_(l.lists.rows).map("id").take().value()))}catch(e){console.log(e)}else l.query.ListId=_.map(l.lists.rows,"id");l.isSearchBarVisible=!(l.query.search||!l.query.filter),c()})},l.openAdvancedSearch=function(){a.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{color:l.sectionColor,fields:l.advancedSearch.fields,storagePath:"home.contacts"},fullscreen:!0}).then(function(e){l.isSearchBarVisible=!(e.value||!l.query.filter),e.apply&&(l.query.search=e.value,c())}).catch(function(e){r.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}}e.$inject=["$document","$scope","$timeout","$mdDialog","$window","Auth","api","toasty"],angular.module("app.dashboards").controller("AgentHomeContactsController",e)}(),function(){"use strict";function e(e,n){var t=n(function(){},999);e.$on("$destroy",function(){t&&(n.cancel(t),t=null)})}e.$inject=["$scope","$interval"],angular.module("app.dashboards").controller("AgentHomeDashboardController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["type","waiting","dialMethod","dialActive"];function u(e){c.voiceQueuesTotal=e.count?e.count:0,c.voiceQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.voiceQueues,function(e,n){c.rpcVoiceQueues[n]&&(c.voiceQueues[n].waiting=c.rpcVoiceQueues[n].waiting||0)})}c.voiceQueues={},c.voiceQueuesTotal=0,c.rpcVoiceQueues={},c.getVoiceQueues={},c.rpcVoiceQueuesChannels={},c.addVoiceQueuesChannels={},c.deleteVoiceQueuesChannels=[],c.load=!0,c.query={id:r.getCurrentUser().id,fields:"id,name,type,dialMethod,dialActive",channel:"voice",type:"outbound",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=u,c.getVoiceQueues=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.user.getQueues(c.query,u).$promise},c.getSize=function(e){return _.size(e)},c.onSaveQueue=function(e){c.voiceQueues[e.id]&&c.rpcVoiceQueues[e.id]&&(c.rpcVoiceQueues[e.id]=e,_.merge(c.voiceQueues[e.id],_.pick(e,m)))},c.onSaveChannel=function(e){"outbound"===e.type&&(e.queuecallerleaveAt?(delete c.rpcVoiceQueuesChannels[e.uniqueid],c.load&&c.deleteVoiceQueuesChannels.push(e.uniqueid)):(c.rpcVoiceQueuesChannels[e.uniqueid]=e,c.load&&(c.addVoiceQueuesChannels[e.uniqueid]=e)))},c.onUserVoiceQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getVoiceQueues()},c.onSaveVoiceQueue=function(e){_.isNil(e)||(c.rpcVoiceQueues[e.id]=_.pick(e,m))},c.onUpdateVoiceQueue=function(e){_.isNil(e)||(c.rpcVoiceQueues[e.id]&&_.merge(c.rpcVoiceQueues[e.id],_.pick(e,m)),c.voiceQueues[e.id]&&_.merge(c.voiceQueues[e.id],_.pick(e,m)))},c.onRemoveVoiceQueue=function(e){_.isNil(e)||(delete c.rpcVoiceQueues[e.id],delete c.voiceQueues[e.id])},l.onWithoutApply("voice_queue:save",c.onSaveQueue),l.onWithoutApply("voice_queue_channel:save",c.onSaveChannel),l.onWithoutApply("userVoiceQueue:save",c.onUserVoiceQueue),l.onWithoutApply("userVoiceQueue:remove",c.onUserVoiceQueue),l.onWithoutApply("voiceQueue:save",c.onSaveVoiceQueue),l.onWithoutApply("voiceQueue:remove",c.onRemoveVoiceQueue),l.onWithoutApply("voiceQueue:update",c.onUpdateVoiceQueue),o.rpc.getVoiceQueues().$promise.then(function(e){return c.rpcVoiceQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},o.rpc.getVoiceQueuesChannels().$promise}).then(function(e){c.rpcVoiceQueuesChannels=e?_.keyBy(e.rows?_.filter(e.rows,{type:"outbound",queuecallerleaveAt:null}):[],"uniqueid"):{}}).catch(function(e){console.error(e)}).finally(function(){_.merge(c.rpcVoiceQueuesChannels,c.addVoiceQueuesChannels);for(var e=0;e<c.deleteVoiceQueuesChannels.length;e+=1)delete c.rpcVoiceQueuesChannels[c.deleteVoiceQueuesChannels[e]];c.load=!1,c.addVoiceQueuesChannels={},c.deleteVoiceQueuesChannels=[],c.getVoiceQueues()});var p=!0,g=1;e.$watch("vm_dc.query.filter",function(e,n){p?t(function(){p=!1}):(n||(g=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=g),c.getVoiceQueues())}),e.$on("$destroy",function(){l.removeAllListeners("voice_queue:save"),l.removeAllListeners("voice_queue_channel:save"),l.removeAllListeners("userVoiceQueue:save"),l.removeAllListeners("userVoiceQueue:remove"),l.removeAllListeners("voiceQueue:save"),l.removeAllListeners("voiceQueue:update"),l.removeAllListeners("voiceQueue:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardBullController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["id","name","mapAgentsId","waiting"],u=!0;function p(){var e=(c.queryChannels.page-1)*c.queryChannels.limit;c.paginatedInteractions=_.orderBy(c.rpcChatQueuesWaitingInteractions,["joinAt"],["desc"]),c.interactions=_.drop(c.paginatedInteractions,e).slice(0,c.queryChannels.limit)}function g(e){c.chatQueuesTotal=e.count?e.count:0,c.chatQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.chatQueues,function(e,n){c.rpcChatQueues[n]&&(c.chatQueues[n].waiting=c.rpcChatQueues[n].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.user.getQueues(c.query,g).$promise}c.chatQueues={},c.chatQueuesTotal=0,c.rpcChatQueues={},c.paginatedInteractions=[],c.deleteChatQueuesWaitingInteractions=[],c.rpcChatQueuesWaitingInteractions={},c.query={id:r.getCurrentUser().id,channel:"chat",fields:"id,name,mapAgentsId,waiting",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=g,c.getChatQueues=v,c.getSize=function(e){return _.size(e)},c.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"whatsapp":return"lime-A700-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},c.paginate=p,c.onSaveQueue=function(e){c.chatQueues[e.id]&&c.rpcChatQueues[e.id]&&(_.merge(c.rpcChatQueues[e.id],_.pick(e,m)),_.merge(c.chatQueues[e.id],_.pick(e,m)))},c.onSaveChatQueue=function(e){_.isNil(e)||(c.rpcChatQueues[e.id]=_.pick(e,m))},c.onUpdateChatQueue=function(e){_.isNil(e)||(c.rpcChatQueues[e.id]&&_.merge(c.rpcChatQueues[e.id],_.pick(e,m)),c.chatQueues[e.id]&&_.merge(c.chatQueues[e.id],_.pick(e,m)))},c.onRemoveChatQueue=function(e){_.isNil(e)||(delete c.rpcChatQueues[e.id],delete c.chatQueues[e.id])},c.onSaveUserChatQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getChatQueues()},c.onRemoveUserChatQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getChatQueues()},c.onSaveChatQueueChannel=function(e){c.chatQueues[e.queue_id]&&(c.rpcChatQueuesWaitingInteractions[e.id]=e,p())},c.onRemoveChatQueueChannel=function(e){delete c.rpcChatQueuesWaitingInteractions[e.id],u&&c.deleteChatQueuesWaitingInteractions.push(e.id);p()},l.onWithoutApply("chat_queue:save",c.onSaveQueue),l.onWithoutApply("chatQueue:save",c.onSaveChatQueue),l.onWithoutApply("chatQueue:update",c.onUpdateChatQueue),l.onWithoutApply("chatQueue:remove",c.onRemoveChatQueue),l.onWithoutApply("userChatQueue:save",c.onSaveUserChatQueue),l.onWithoutApply("userChatQueue:remove",c.onRemoveUserChatQueue),l.onWithoutApply("chat_queue_waiting_interaction:save",c.onSaveChatQueueChannel),l.onWithoutApply("chat_queue_waiting_interaction:remove",c.onRemoveChatQueueChannel),o.rpc.getChatQueues().$promise.then(function(e){c.rpcChatQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return o.user.getQueues({id:r.getCurrentUser().id,channel:"chat"}).$promise}).then(function(e){return c.myQueues=e.rows,o.rpc.getChatQueuesWaitingInteractions().$promise}).then(function(e){var n=_.filter(e.rows,function(e){return _.find(c.myQueues,{id:e.queue_id})});e.rows=n,e.count=n.length,_.merge(c.rpcChatQueuesWaitingInteractions,e?_.keyBy(e.rows?e.rows:[],"id"):{})}).catch(function(e){console.error(e)}).finally(function(){for(var e=0;e<c.deleteChatQueuesWaitingInteractions.length;e+=1)delete c.rpcChatQueuesWaitingInteractions[c.deleteChatQueuesWaitingInteractions[e]];u=!1,c.deleteChatQueuesWaitingInteractions=[],v(),p()});var h=!0,f=1;e.$watch("vm_dc.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=f),c.getChatQueues())}),e.$on("$destroy",function(){l.removeAllListeners("chat_queue:save"),l.removeAllListeners("chatQueue:save"),l.removeAllListeners("chatQueue:update"),l.removeAllListeners("chatQueue:remove"),l.removeAllListeners("userChatQueue:save"),l.removeAllListeners("userChatQueue:remove"),l.removeAllListeners("chat_queue_waiting_interaction:save"),l.removeAllListeners("chat_queue_waiting_interaction:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardMultiChannelChatController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["id","name","mapAgentsId","waiting"],u=!0;function p(){var e=(c.queryChannels.page-1)*c.queryChannels.limit;c.paginatedInteractions=_.orderBy(c.rpcFaxQueuesWaitingInteractions,["joinAt"],["desc"]),c.interactions=_.drop(c.paginatedInteractions,e).slice(0,c.queryChannels.limit)}function g(e){c.faxQueuesTotal=e.count?e.count:0,c.faxQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.faxQueues,function(e,n){c.rpcFaxQueues[n]&&(c.faxQueues[n].waiting=c.rpcFaxQueues[n].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.user.getQueues(c.query,g).$promise}c.faxQueues={},c.faxQueuesTotal=0,c.rpcFaxQueues={},c.paginatedInteractions=[],c.deleteFaxQueuesWaitingInteractions=[],c.rpcFaxQueuesWaitingInteractions={},c.query={id:r.getCurrentUser().id,channel:"fax",fields:"id,name,mapAgentsId,waiting",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=g,c.getFaxQueues=v,c.getSize=function(e){return _.size(e)},c.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"whatsapp":return"lime-A700-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},c.paginate=p,c.onSaveQueue=function(e){c.faxQueues[e.id]&&c.rpcFaxQueues[e.id]&&(_.merge(c.rpcFaxQueues[e.id],_.pick(e,m)),_.merge(c.faxQueues[e.id],_.pick(e,m)))},c.onSaveFaxQueue=function(e){_.isNil(e)||(c.rpcFaxQueues[e.id]=_.pick(e,m))},c.onUpdateFaxQueue=function(e){_.isNil(e)||(c.rpcFaxQueues[e.id]&&_.merge(c.rpcFaxQueues[e.id],_.pick(e,m)),c.faxQueues[e.id]&&_.merge(c.faxQueues[e.id],_.pick(e,m)))},c.onRemoveFaxQueue=function(e){_.isNil(e)||(delete c.rpcFaxQueues[e.id],delete c.faxQueues[e.id])},c.onSaveUserFaxQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getFaxQueues()},c.onRemoveUserFaxQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getFaxQueues()},c.onSaveFaxQueueChannel=function(e){c.faxQueues[e.queue_id]&&(c.rpcFaxQueuesWaitingInteractions[e.id]=e,p())},c.onRemoveFaxQueueChannel=function(e){delete c.rpcFaxQueuesWaitingInteractions[e.id],u&&c.deleteFaxQueuesWaitingInteractions.push(e.id);p()},l.onWithoutApply("fax_queue:save",c.onSaveQueue),l.onWithoutApply("faxQueue:save",c.onSaveFaxQueue),l.onWithoutApply("faxQueue:update",c.onUpdateFaxQueue),l.onWithoutApply("faxQueue:remove",c.onRemoveFaxQueue),l.onWithoutApply("userFaxQueue:save",c.onSaveUserFaxQueue),l.onWithoutApply("userFaxQueue:remove",c.onRemoveUserFaxQueue),l.onWithoutApply("fax_queue_waiting_interaction:save",c.onSaveFaxQueueChannel),l.onWithoutApply("fax_queue_waiting_interaction:remove",c.onRemoveFaxQueueChannel),o.rpc.getFaxQueues().$promise.then(function(e){c.rpcFaxQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return o.user.getQueues({id:r.getCurrentUser().id,channel:"fax"}).$promise}).then(function(e){return c.myQueues=e.rows,o.rpc.getFaxQueuesWaitingInteractions().$promise}).then(function(e){var n=_.filter(e.rows,function(e){return _.find(c.myQueues,{id:e.queue_id})});e.rows=n,e.count=n.length,_.merge(c.rpcFaxQueuesWaitingInteractions,e?_.keyBy(e.rows?e.rows:[],"id"):{})}).catch(function(e){console.error(e)}).finally(function(){for(var e=0;e<c.deleteFaxQueuesWaitingInteractions.length;e+=1)delete c.rpcFaxQueuesWaitingInteractions[c.deleteFaxQueuesWaitingInteractions[e]];u=!1,c.deleteFaxQueuesWaitingInteractions=[],v(),p()});var h=!0,f=1;e.$watch("vm_dc.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=f),c.getFaxQueues())}),e.$on("$destroy",function(){l.removeAllListeners("fax_queue:save"),l.removeAllListeners("faxQueue:save"),l.removeAllListeners("faxQueue:update"),l.removeAllListeners("faxQueue:remove"),l.removeAllListeners("userFaxQueue:save"),l.removeAllListeners("userFaxQueue:remove"),l.removeAllListeners("fax_queue_waiting_interaction:save"),l.removeAllListeners("fax_queue_waiting_interaction:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardMultiChannelFaxController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["id","name","mapAgentsId","waiting"],u=!0;function p(){var e=(c.queryChannels.page-1)*c.queryChannels.limit;c.paginatedInteractions=_.orderBy(c.rpcMailQueuesWaitingInteractions,["joinAt"],["desc"]),c.interactions=_.drop(c.paginatedInteractions,e).slice(0,c.queryChannels.limit)}function g(e){c.mailQueuesTotal=e.count?e.count:0,c.mailQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.mailQueues,function(e,n){c.rpcMailQueues[n]&&(c.mailQueues[n].waiting=c.rpcMailQueues[n].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.user.getQueues(c.query,g).$promise}c.mailQueues={},c.mailQueuesTotal=0,c.rpcMailQueues={},c.paginatedInteractions=[],c.deleteMailQueuesWaitingInteractions=[],c.rpcMailQueuesWaitingInteractions={},c.query={id:r.getCurrentUser().id,channel:"mail",fields:"id,name,mapAgentsId,waiting",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=g,c.getMailQueues=v,c.getSize=function(e){return _.size(e)},c.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"whatsapp":return"lime-A700-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},c.paginate=p,c.onSaveQueue=function(e){c.mailQueues[e.id]&&c.rpcMailQueues[e.id]&&(_.merge(c.rpcMailQueues[e.id],_.pick(e,m)),_.merge(c.mailQueues[e.id],_.pick(e,m)))},c.onSaveMailQueue=function(e){_.isNil(e)||(c.rpcMailQueues[e.id]=_.pick(e,m))},c.onUpdateMailQueue=function(e){_.isNil(e)||(c.rpcMailQueues[e.id]&&_.merge(c.rpcMailQueues[e.id],_.pick(e,m)),c.mailQueues[e.id]&&_.merge(c.mailQueues[e.id],_.pick(e,m)))},c.onRemoveMailQueue=function(e){_.isNil(e)||(delete c.rpcMailQueues[e.id],delete c.mailQueues[e.id])},c.onSaveUserMailQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getMailQueues()},c.onRemoveUserMailQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getMailQueues()},c.onSaveMailQueueChannel=function(e){c.mailQueues[e.queue_id]&&(c.rpcMailQueuesWaitingInteractions[e.id]=e,p())},c.onRemoveMailQueueChannel=function(e){delete c.rpcMailQueuesWaitingInteractions[e.id],u&&c.deleteMailQueuesWaitingInteractions.push(e.id);p()},l.onWithoutApply("mail_queue:save",c.onSaveQueue),l.onWithoutApply("mailQueue:save",c.onSaveMailQueue),l.onWithoutApply("mailQueue:update",c.onUpdateMailQueue),l.onWithoutApply("mailQueue:remove",c.onRemoveMailQueue),l.onWithoutApply("userMailQueue:save",c.onSaveUserMailQueue),l.onWithoutApply("userMailQueue:remove",c.onRemoveUserMailQueue),l.onWithoutApply("mail_queue_waiting_interaction:save",c.onSaveMailQueueChannel),l.onWithoutApply("mail_queue_waiting_interaction:remove",c.onRemoveMailQueueChannel),o.rpc.getMailQueues().$promise.then(function(e){c.rpcMailQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return o.user.getQueues({id:r.getCurrentUser().id,channel:"mail"}).$promise}).then(function(e){return c.myQueues=e.rows,o.rpc.getMailQueuesWaitingInteractions().$promise}).then(function(e){var n=_.filter(e.rows,function(e){return _.find(c.myQueues,{id:e.queue_id})});e.rows=n,e.count=n.length,_.merge(c.rpcMailQueuesWaitingInteractions,e?_.keyBy(e.rows?e.rows:[],"id"):{})}).catch(function(e){console.error(e)}).finally(function(){for(var e=0;e<c.deleteMailQueuesWaitingInteractions.length;e+=1)delete c.rpcMailQueuesWaitingInteractions[c.deleteMailQueuesWaitingInteractions[e]];u=!1,c.deleteMailQueuesWaitingInteractions=[],v(),p()});var h=!0,f=1;e.$watch("vm_dc.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=f),c.getMailQueues())}),e.$on("$destroy",function(){l.removeAllListeners("mail_queue:save"),l.removeAllListeners("mailQueue:save"),l.removeAllListeners("mailQueue:update"),l.removeAllListeners("mailQueue:remove"),l.removeAllListeners("userMailQueue:save"),l.removeAllListeners("userMailQueue:remove"),l.removeAllListeners("mail_queue_waiting_interaction:save"),l.removeAllListeners("mail_queue_waiting_interaction:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardMultiChannelMailController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["id","name","mapAgentsId","waiting"],u=!0;function p(){var e=(c.queryChannels.page-1)*c.queryChannels.limit;c.paginatedInteractions=_.orderBy(c.rpcOpenchannelQueuesWaitingInteractions,["joinAt"],["desc"]),c.interactions=_.drop(c.paginatedInteractions,e).slice(0,c.queryChannels.limit)}function g(e){c.openchannelQueuesTotal=e.count?e.count:0,c.openchannelQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.openchannelQueues,function(e,n){c.rpcOpenchannelQueues[n]&&(c.openchannelQueues[n].waiting=c.rpcOpenchannelQueues[n].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.user.getQueues(c.query,g).$promise}c.openchannelQueues={},c.openchannelQueuesTotal=0,c.rpcOpenchannelQueues={},c.paginatedInteractions=[],c.deleteOpenchannelQueuesWaitingInteractions=[],c.rpcOpenchannelQueuesWaitingInteractions={},c.query={id:r.getCurrentUser().id,channel:"openchannel",fields:"id,name,mapAgentsId,waiting",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=g,c.getOpenchannelQueues=v,c.getSize=function(e){return _.size(e)},c.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"whatsapp":return"lime-A700-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},c.paginate=p,c.onSaveQueue=function(e){c.openchannelQueues[e.id]&&c.rpcOpenchannelQueues[e.id]&&(_.merge(c.rpcOpenchannelQueues[e.id],_.pick(e,m)),_.merge(c.openchannelQueues[e.id],_.pick(e,m)))},c.onSaveOpenchannelQueue=function(e){_.isNil(e)||(c.rpcOpenchannelQueues[e.id]=_.pick(e,m))},c.onUpdateOpenchannelQueue=function(e){_.isNil(e)||(c.rpcOpenchannelQueues[e.id]&&_.merge(c.rpcOpenchannelQueues[e.id],_.pick(e,m)),c.openchannelQueues[e.id]&&_.merge(c.openchannelQueues[e.id],_.pick(e,m)))},c.onRemoveOpenchannelQueue=function(e){_.isNil(e)||(delete c.rpcOpenchannelQueues[e.id],delete c.openchannelQueues[e.id])},c.onSaveUserOpenchannelQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getOpenchannelQueues()},c.onRemoveUserOpenchannelQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getOpenchannelQueues()},c.onSaveOpenchannelQueueChannel=function(e){c.openchannelQueues[e.queue_id]&&(c.rpcOpenchannelQueuesWaitingInteractions[e.id]=e,p())},c.onRemoveOpenchannelQueueChannel=function(e){delete c.rpcOpenchannelQueuesWaitingInteractions[e.id],u&&c.deleteOpenchannelQueuesWaitingInteractions.push(e.id);p()},l.onWithoutApply("openchannel_queue:save",c.onSaveQueue),l.onWithoutApply("openchannelQueue:save",c.onSaveOpenchannelQueue),l.onWithoutApply("openchannelQueue:update",c.onUpdateOpenchannelQueue),l.onWithoutApply("openchannelQueue:remove",c.onRemoveOpenchannelQueue),l.onWithoutApply("userOpenchannelQueue:save",c.onSaveUserOpenchannelQueue),l.onWithoutApply("userOpenchannelQueue:remove",c.onRemoveUserOpenchannelQueue),l.onWithoutApply("openchannel_queue_waiting_interaction:save",c.onSaveOpenchannelQueueChannel),l.onWithoutApply("openchannel_queue_waiting_interaction:remove",c.onRemoveOpenchannelQueueChannel),o.rpc.getOpenchannelQueues().$promise.then(function(e){c.rpcOpenchannelQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return o.user.getQueues({id:r.getCurrentUser().id,channel:"openchannel"}).$promise}).then(function(e){return c.myQueues=e.rows,o.rpc.getOpenchannelQueuesWaitingInteractions().$promise}).then(function(e){var n=_.filter(e.rows,function(e){return _.find(c.myQueues,{id:e.queue_id})});e.rows=n,e.count=n.length,_.merge(c.rpcOpenchannelQueuesWaitingInteractions,e?_.keyBy(e.rows?e.rows:[],"id"):{})}).catch(function(e){console.error(e)}).finally(function(){for(var e=0;e<c.deleteOpenchannelQueuesWaitingInteractions.length;e+=1)delete c.rpcOpenchannelQueuesWaitingInteractions[c.deleteOpenchannelQueuesWaitingInteractions[e]];u=!1,c.deleteOpenchannelQueuesWaitingInteractions=[],v(),p()});var h=!0,f=1;e.$watch("vm_dc.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=f),c.getOpenchannelQueues())}),e.$on("$destroy",function(){l.removeAllListeners("openchannel_queue:save"),l.removeAllListeners("openchannelQueue:save"),l.removeAllListeners("openchannelQueue:update"),l.removeAllListeners("openchannelQueue:remove"),l.removeAllListeners("userOpenchannelQueue:save"),l.removeAllListeners("userOpenchannelQueue:remove"),l.removeAllListeners("openchannel_queue_waiting_interaction:save"),l.removeAllListeners("openchannel_queue_waiting_interaction:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardMultiChannelOpenchannelController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["id","name","mapAgentsId","waiting"],u=!0;function p(){var e=(c.queryChannels.page-1)*c.queryChannels.limit;c.paginatedInteractions=_.orderBy(c.rpcSmsQueuesWaitingInteractions,["joinAt"],["desc"]),c.interactions=_.drop(c.paginatedInteractions,e).slice(0,c.queryChannels.limit)}function g(e){c.smsQueuesTotal=e.count?e.count:0,c.smsQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.smsQueues,function(e,n){c.rpcSmsQueues[n]&&(c.smsQueues[n].waiting=c.rpcSmsQueues[n].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.user.getQueues(c.query,g).$promise}c.smsQueues={},c.smsQueuesTotal=0,c.rpcSmsQueues={},c.paginatedInteractions=[],c.deleteSmsQueuesWaitingInteractions=[],c.rpcSmsQueuesWaitingInteractions={},c.query={id:r.getCurrentUser().id,channel:"sms",fields:"id,name,mapAgentsId,waiting",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=g,c.getSmsQueues=v,c.getSize=function(e){return _.size(e)},c.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"whatsapp":return"lime-A700-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},c.paginate=p,c.onSaveQueue=function(e){c.smsQueues[e.id]&&c.rpcSmsQueues[e.id]&&(_.merge(c.rpcSmsQueues[e.id],_.pick(e,m)),_.merge(c.smsQueues[e.id],_.pick(e,m)))},c.onSaveSmsQueue=function(e){_.isNil(e)||(c.rpcSmsQueues[e.id]=_.pick(e,m))},c.onUpdateSmsQueue=function(e){_.isNil(e)||(c.rpcSmsQueues[e.id]&&_.merge(c.rpcSmsQueues[e.id],_.pick(e,m)),c.smsQueues[e.id]&&_.merge(c.smsQueues[e.id],_.pick(e,m)))},c.onRemoveSmsQueue=function(e){_.isNil(e)||(delete c.rpcSmsQueues[e.id],delete c.smsQueues[e.id])},c.onSaveUserSmsQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getSmsQueues()},c.onRemoveUserSmsQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getSmsQueues()},c.onSaveSmsQueueChannel=function(e){c.smsQueues[e.queue_id]&&(c.rpcSmsQueuesWaitingInteractions[e.id]=e,p())},c.onRemoveSmsQueueChannel=function(e){delete c.rpcSmsQueuesWaitingInteractions[e.id],u&&c.deleteSmsQueuesWaitingInteractions.push(e.id);p()},l.onWithoutApply("sms_queue:save",c.onSaveQueue),l.onWithoutApply("smsQueue:save",c.onSaveSmsQueue),l.onWithoutApply("smsQueue:update",c.onUpdateSmsQueue),l.onWithoutApply("smsQueue:remove",c.onRemoveSmsQueue),l.onWithoutApply("userSmsQueue:save",c.onSaveUserSmsQueue),l.onWithoutApply("userSmsQueue:remove",c.onRemoveUserSmsQueue),l.onWithoutApply("sms_queue_waiting_interaction:save",c.onSaveSmsQueueChannel),l.onWithoutApply("sms_queue_waiting_interaction:remove",c.onRemoveSmsQueueChannel),o.rpc.getSmsQueues().$promise.then(function(e){c.rpcSmsQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return o.user.getQueues({id:r.getCurrentUser().id,channel:"sms"}).$promise}).then(function(e){return c.myQueues=e.rows,o.rpc.getSmsQueuesWaitingInteractions().$promise}).then(function(e){var n=_.filter(e.rows,function(e){return _.find(c.myQueues,{id:e.queue_id})});e.rows=n,e.count=n.length,_.merge(c.rpcSmsQueuesWaitingInteractions,e?_.keyBy(e.rows?e.rows:[],"id"):{})}).catch(function(e){console.error(e)}).finally(function(){for(var e=0;e<c.deleteSmsQueuesWaitingInteractions.length;e+=1)delete c.rpcSmsQueuesWaitingInteractions[c.deleteSmsQueuesWaitingInteractions[e]];u=!1,c.deleteSmsQueuesWaitingInteractions=[],v(),p()});var h=!0,f=1;e.$watch("vm_dc.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=f),c.getSmsQueues())}),e.$on("$destroy",function(){l.removeAllListeners("sms_queue:save"),l.removeAllListeners("smsQueue:save"),l.removeAllListeners("smsQueue:update"),l.removeAllListeners("smsQueue:remove"),l.removeAllListeners("userSmsQueue:save"),l.removeAllListeners("userSmsQueue:remove"),l.removeAllListeners("sms_queue_waiting_interaction:save"),l.removeAllListeners("sms_queue_waiting_interaction:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardMultiChannelSmsController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["type","waiting","dialMethod","dialActive"];function u(e){c.voiceQueuesTotal=e.count?e.count:0,c.voiceQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.voiceQueues,function(e,n){c.rpcVoiceQueues[n]&&(c.voiceQueues[n].waiting=c.rpcVoiceQueues[n].waiting||0)})}c.voiceQueues={},c.voiceQueuesTotal=0,c.rpcVoiceQueues={},c.getVoiceQueues={},c.rpcVoiceQueuesChannels={},c.addVoiceQueuesChannels={},c.deleteVoiceQueuesChannels=[],c.load=!0,c.query={id:r.getCurrentUser().id,fields:"id,name,type,dialMethod,dialActive",channel:"voice",type:"inbound",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=u,c.getVoiceQueues=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.user.getQueues(c.query,u).$promise},c.getSize=function(e){return _.size(e)},c.onSaveQueue=function(e){c.voiceQueues[e.id]&&c.rpcVoiceQueues[e.id]&&(c.rpcVoiceQueues[e.id]=e,_.merge(c.voiceQueues[e.id],_.pick(e,m)))},c.onSaveChannel=function(e){"inbound"===e.type&&(e.queuecallerleaveAt?(delete c.rpcVoiceQueuesChannels[e.uniqueid],c.load&&c.deleteVoiceQueuesChannels.push(e.uniqueid)):(c.rpcVoiceQueuesChannels[e.uniqueid]=e,c.load&&(c.addVoiceQueuesChannels[e.uniqueid]=e)))},c.onUserVoiceQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getVoiceQueues()},c.onSaveVoiceQueue=function(e){_.isNil(e)||(c.rpcVoiceQueues[e.id]=_.pick(e,m))},c.onUpdateVoiceQueue=function(e){_.isNil(e)||(c.rpcVoiceQueues[e.id]&&_.merge(c.rpcVoiceQueues[e.id],_.pick(e,m)),c.voiceQueues[e.id]&&_.merge(c.voiceQueues[e.id],_.pick(e,m)))},c.onRemoveVoiceQueue=function(e){_.isNil(e)||(delete c.rpcVoiceQueues[e.id],delete c.voiceQueues[e.id])},l.onWithoutApply("voice_queue:save",c.onSaveQueue),l.onWithoutApply("voice_queue_channel:save",c.onSaveChannel),l.onWithoutApply("userVoiceQueue:save",c.onUserVoiceQueue),l.onWithoutApply("userVoiceQueue:remove",c.onUserVoiceQueue),l.onWithoutApply("voiceQueue:save",c.onSaveVoiceQueue),l.onWithoutApply("voiceQueue:remove",c.onRemoveVoiceQueue),l.onWithoutApply("voiceQueue:update",c.onUpdateVoiceQueue),o.user.getQueues(c.query).$promise.then(function(e){return c.myQueues=e,o.rpc.getVoiceQueues().$promise}).then(function(e){for(var n=e.rows,t=_.keyBy(n,"id"),a=0;a<c.myQueues.count;a++){var i=c.myQueues.rows[a];c.rpcVoiceQueues[i.id]=t[i.id]}return o.rpc.getVoiceQueuesChannels().$promise}).then(function(e){c.rpcVoiceQueuesChannels=e?_.keyBy(e.rows?_.filter(e.rows,function(e){return!("inbound"!==e.type||e.queuecallerleaveAt||!_.find(c.myQueues.rows,{name:e.queue}))}):[],"uniqueid"):{}}).catch(function(e){console.error(e)}).finally(function(){_.merge(c.rpcVoiceQueuesChannels,c.addVoiceQueuesChannels);for(var e=0;e<c.deleteVoiceQueuesChannels.length;e+=1)delete c.rpcVoiceQueuesChannels[c.deleteVoiceQueuesChannels[e]];c.load=!1,c.addVoiceQueuesChannels={},c.deleteVoiceQueuesChannels=[],c.getVoiceQueues()});var p=!0,g=1;e.$watch("vm_dc.query.filter",function(e,n){p?t(function(){p=!1}):(n||(g=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=g),c.getVoiceQueues())}),e.$on("$destroy",function(){l.removeAllListeners("voice_queue:save"),l.removeAllListeners("voice_queue_channel:save"),l.removeAllListeners("userVoiceQueue:save"),l.removeAllListeners("userVoiceQueue:remove"),l.removeAllListeners("voiceQueue:save"),l.removeAllListeners("voiceQueue:update"),l.removeAllListeners("voiceQueue:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardVoiceController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["id","name","mapAgentsId","waiting"],u=!0;function p(){var e=(c.queryChannels.page-1)*c.queryChannels.limit;c.paginatedInteractions=_.orderBy(c.rpcWhatsappQueuesWaitingInteractions,["joinAt"],["desc"]),c.interactions=_.drop(c.paginatedInteractions,e).slice(0,c.queryChannels.limit)}function g(e){c.whatsappQueuesTotal=e.count?e.count:0,c.whatsappQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.whatsappQueues,function(e,n){c.rpcWhatsappQueues[n]&&(c.whatsappQueues[n].waiting=c.rpcWhatsappQueues[n].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.user.getQueues(c.query,g).$promise}c.whatsappQueues={},c.whatsappQueuesTotal=0,c.rpcWhatsappQueues={},c.paginatedInteractions=[],c.deleteWhatsappQueuesWaitingInteractions=[],c.rpcWhatsappQueuesWaitingInteractions={},c.query={id:r.getCurrentUser().id,channel:"whatsapp",fields:"id,name,mapAgentsId,waiting",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=g,c.getWhatsappQueues=v,c.getSize=function(e){return _.size(e)},c.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"whatsapp":return"lime-A700-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},c.paginate=p,c.onSaveQueue=function(e){c.whatsappQueues[e.id]&&c.rpcWhatsappQueues[e.id]&&(_.merge(c.rpcWhatsappQueues[e.id],_.pick(e,m)),_.merge(c.whatsappQueues[e.id],_.pick(e,m)))},c.onSaveWhatsappQueue=function(e){_.isNil(e)||(c.rpcWhatsappQueues[e.id]=_.pick(e,m))},c.onUpdateWhatsappQueue=function(e){_.isNil(e)||(c.rpcWhatsappQueues[e.id]&&_.merge(c.rpcWhatsappQueues[e.id],_.pick(e,m)),c.whatsappQueues[e.id]&&_.merge(c.whatsappQueues[e.id],_.pick(e,m)))},c.onRemoveWhatsappQueue=function(e){_.isNil(e)||(delete c.rpcWhatsappQueues[e.id],delete c.whatsappQueues[e.id])},c.onSaveUserWhatsappQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getWhatsappQueues()},c.onRemoveUserWhatsappQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getWhatsappQueues()},c.onSaveWhatsappQueueChannel=function(e){c.whatsappQueues[e.queue_id]&&(c.rpcWhatsappQueuesWaitingInteractions[e.id]=e,p())},c.onRemoveWhatsappQueueChannel=function(e){delete c.rpcWhatsappQueuesWaitingInteractions[e.id],u&&c.deleteWhatsappQueuesWaitingInteractions.push(e.id);p()},l.onWithoutApply("whatsapp_queue:save",c.onSaveQueue),l.onWithoutApply("whatsappQueue:save",c.onSaveWhatsappQueue),l.onWithoutApply("whatsappQueue:update",c.onUpdateWhatsappQueue),l.onWithoutApply("whatsappQueue:remove",c.onRemoveWhatsappQueue),l.onWithoutApply("userWhatsappQueue:save",c.onSaveUserWhatsappQueue),l.onWithoutApply("userWhatsappQueue:remove",c.onRemoveUserWhatsappQueue),l.onWithoutApply("whatsapp_queue_waiting_interaction:save",c.onSaveWhatsappQueueChannel),l.onWithoutApply("whatsapp_queue_waiting_interaction:remove",c.onRemoveWhatsappQueueChannel),o.rpc.getWhatsappQueues().$promise.then(function(e){c.rpcWhatsappQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return o.user.getQueues({id:r.getCurrentUser().id,channel:"whatsapp"}).$promise}).then(function(e){return c.myQueues=e.rows,o.rpc.getWhatsappQueuesWaitingInteractions().$promise}).then(function(e){var n=_.filter(e.rows,function(e){return _.find(c.myQueues,{id:e.queue_id})});e.rows=n,e.count=n.length,_.merge(c.rpcWhatsappQueuesWaitingInteractions,e?_.keyBy(e.rows?e.rows:[],"id"):{})}).catch(function(e){console.error(e)}).finally(function(){for(var e=0;e<c.deleteWhatsappQueuesWaitingInteractions.length;e+=1)delete c.rpcWhatsappQueuesWaitingInteractions[c.deleteWhatsappQueuesWaitingInteractions[e]];u=!1,c.deleteWhatsappQueuesWaitingInteractions=[],v(),p()});var h=!0,f=1;e.$watch("vm_dc.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=f),c.getWhatsappQueues())}),e.$on("$destroy",function(){l.removeAllListeners("whatsapp_queue:save"),l.removeAllListeners("whatsappQueue:save"),l.removeAllListeners("whatsappQueue:update"),l.removeAllListeners("whatsappQueue:remove"),l.removeAllListeners("userWhatsappQueue:save"),l.removeAllListeners("userWhatsappQueue:remove"),l.removeAllListeners("whatsapp_queue_waiting_interaction:save"),l.removeAllListeners("whatsapp_queue_waiting_interaction:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardMultiChannelWhatsappController",e)}(),function(){"use strict";function e(i,t,s,o,a,n,r,e,l,d,c){var m=this;function u(e){!m.reloadingInteractions&&0<m.setting.faxInteractionsReloadTimeout&&function(e){e&&m.interactionsInterval&&t.cancel(m.interactionsInterval);m.interactionsInterval=t(function(){m.reloadingInteractions=!0,m.searchInProgress||p()},1e3*m.setting.faxInteractionsReloadTimeout)}(!0),m.searchInProgress=!1,m.reloadingInteractions=!1,m.faxInteractions=e||{count:0,rows:[]};for(var n=0;n<m.faxInteractions.rows.length;n+=1)g(m.faxInteractions.rows[n])}function p(e,n){m.searchInProgress=!0,e||(m.query.page=1),m.query.offset=(m.query.page-1)*m.query.limit;var t=a.localStorage.getItem("motion2.home.fax:"+m.user.id);(t=t?JSON.parse(t):{}).query=m.query,a.localStorage.setItem("motion2.home.fax:"+m.user.id,JSON.stringify(t)),m.promise=r.faxInteraction.get(m.query,u).$promise}function g(e){e.contactInfo=e.Contact?e.Contact.fax:void 0,"Unknown"===e.contactName&&(e.contactName=n.instant("DASHBOARDS.UNKNOWN"))}function v(e){var n=_.find(m.faxInteractions.rows,{id:e.FaxInteractionId});n&&n.Users&&(_.find(n.Users,{id:e.UserId})||n.Users.push({id:e.UserId}))}function h(e){var n=_.find(m.faxInteractions.rows,{id:e.FaxInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function f(e){if(e){var n=_.find(m.faxInteractions.rows,{id:e.id});if(n){if(n.Users=[],e.closed&&(n.unreadMessages=0),m.query.sort){var t=_.startsWith(m.query.sort,"-")?"desc":"asc";m.faxInteractions.rows=_.orderBy(m.faxInteractions.rows,_.trimStart(m.query.sort,"-"),t)}_.merge(n,_.pick(e,_.keys(n)))}else p(m.query.page)}}function b(e){if(e){var n=_.find(m.faxInteractions.rows,{id:e.id});n&&(n.Tags=e.tags||[],_.merge(n,_.pick(e,_.keys(n))))}}function A(e){if(e&&!e.secret){var n=_.find(m.faxInteractions.rows,{id:e.FaxInteractionId});if(n){var t=_.find(n.Messages,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):(_.isNil(n.Messages)&&(n.Messages={count:0}),e.read||(n.Messages.count+=1))}}}m.user=e.getCurrentUser(),m.license={},m.setting={},m.tags={count:0,rows:[]},m.faxInteractions={count:0,rows:[]},m.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1,read:null,closed:null},m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Account",column:"FaxAccountId",type:"multiselect",options:{route:{model:"user",action:"getFaxAccounts",params:{id:m.user.id,nolimit:!0}}}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},m.sectionColor="blue-grey",m.onInit=function(e,n){return m.license=e,m.setting=n,r.user["get"+_.upperFirst("faxAccounts")]({id:m.user.id,nolimit:!0}).$promise.then(function(e){return m.faxAccounts=e||{count:0,rows:[]},r.tag.get({sort:"name"}).$promise}).then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Account",key:"FaxAccountId",type:"multiselect",label:"DASHBOARDS.SELECT_ACCOUNT",options:m.faxAccounts.rows,clearAll:!1},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:m.user.id,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=a.localStorage.getItem("motion2.home.fax:"+m.user.id);if(e)try{(e=JSON.parse(e)).query&&(m.query=_.merge(m.query,e.query),_.isEmpty(m.faxAccounts.rows)?m.query.FaxAccountId=[]:_.isEmpty(m.query.FaxAccountId)&&(m.query.FaxAccountId=_(m.faxAccounts.rows).map("id").take().value()),m.query.sort&&0<=m.query.sort.indexOf("lastMessage")&&(m.query=_.omit(m.query,"sort")),m.query.includeAll=!0,m.isSearchBarVisible=!(m.query.search||!m.query.filter))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()},t={FaxAccountId:_.map(m.faxAccounts.rows,"id"),createdAt:n};m.query=_.merge(m.query,t)}l.on("faxInteraction:save",f),l.on("faxInteraction:update",f),l.on("faxInteractionTags:save",b),l.on("faxMessage:save",A),l.on("faxMessage:update",A),l.on("user_has_fax_interactions:save",v),l.on("user_has_fax_interactions:remove",h),p(m.query.page)})},m.success=u,m.getFaxInteractions=p,m.showFaxInteraction=function(e,n){i.$parent.vm.addInteractionTab("fax",n)},m.downloadFaxInteraction=function(e,s,n){r.faxInteraction.download({id:s.id,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="fax-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadFaxInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.disposeInteraction=function(e,t){var a=m.user.voicePause||m.user.chatPause||m.user.mailPause||m.user.openchannelPause||m.user.faxPause,n=!t.Account.mandatoryDisposition;s.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(o.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(e,n){m.user&&t.Account.mandatoryDisposition&&!a&&r.user.unpause({id:m.user.id}).$promise.catch(function(e){console.error(e)})},locals:{user:m.user,channel:"fax",interaction:t}})},m.getContactLabel=g,m.getAgentLabel=function(e){if(e.UserId)return e.UserId===m.user.id?n.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">";return n.instant("DASHBOARDS.NOT_ASSIGNED")},m.getFaxAccountLabel=function(e){if(e.Account)return e.Account.key;return n.instant("DASHBOARDS.UNKNOWN")},m.composeFaxInteraction=function(e,a){s.show({controller:"ComposeFaxInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/fax/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{account:a,message:{},type:"new",interaction:{}},fullscreen:!0}).then(function(e){if(e){if(!e.message||!e.message.savedAsDraft){var n=e;return r.faxAccount.send({id:a.id},n).$promise.then(function(e){d.success({title:"Message properly sent!",msg:"Message has been sent!"}),i.$parent.vm.addInteractionTab("fax",e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:"FAX:SEND",msg:e.data?JSON.stringify(e.data):e.message||e.toString()})})}var t={channel:"fax",account:a,message:e.message,contact:e.contact};c.add(t)}})},m.openAdvancedSearch=function(){s.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{color:m.sectionColor,fields:m.advancedSearch.fields,storagePath:"home.fax"},fullscreen:!0}).then(function(e){m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply&&(m.query.search=e.value,p())}).catch(function(e){d.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},i.$on("$destroy",function(){l.removeAllListeners("faxMessage:save"),l.removeAllListeners("faxMessage:update"),l.removeAllListeners("faxInteraction:save"),l.removeAllListeners("faxInteractionTags:save"),l.removeAllListeners("faxInteraction:update"),l.removeAllListeners("user_has_fax_interactions:save"),l.removeAllListeners("user_has_fax_interactions:remove"),m.interactionsInterval&&t.cancel(m.interactionsInterval)})}e.$inject=["$scope","$interval","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty","draftManager"],angular.module("app.dashboards").controller("AgentHomeFaxController",e)}(),function(){"use strict";function e(o,n,r,l,a,t,d,e,i,c,m){var u=this;function s(e){!u.reloadingInteractions&&0<u.setting.mailInteractionsReloadTimeout&&y(!0),u.searchInProgress=!1,u.reloadingInteractions=!1,u.mailInteractions=e||{count:0,rows:[]};for(var n=0;n<u.mailInteractions.rows.length;n+=1)v(u.mailInteractions.rows[n])}function p(e,n){u.searchInProgress=!0,e||(u.query.page=1),(void 0===u.query.closed||null===u.query.closed||u.query.closed)&&delete u.query.substatus,u.query.offset=(u.query.page-1)*u.query.limit;var t=a.localStorage.getItem("motion2.home.mail:"+u.user.id);(t=t?JSON.parse(t):{}).query=u.query,a.localStorage.setItem("motion2.home.mail:"+u.user.id,JSON.stringify(t)),u.promise=d.mailInteraction.get(u.query,s).$promise}function g(e,n){o.$parent.vm.addInteractionTab("mail",n)}function v(e){_.isEmpty(e.to)||!e.Account||_.includes(e.to,e.Account.email)?e.contactInfo=e.Contact?e.Contact.email:void 0:e.contactInfo=e.to.split("<").pop().split(">")[0],"Unknown"===e.contactName&&(e.contactName=t.instant("DASHBOARDS.UNKNOWN"))}function h(e){var n=_.find(u.mailInteractions.rows,{id:e.MailInteractionId});n&&n.Users&&(_.find(n.Users,{id:e.UserId})||n.Users.push({id:e.UserId}))}function f(e){var n=_.find(u.mailInteractions.rows,{id:e.MailInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function b(e){if(e){var n=_.find(u.mailInteractions.rows,{id:e.id});if(n){if(n.Users=[],e.closed&&(n.unreadMessages=0),u.query.sort){var t=_.startsWith(u.query.sort,"-")?"desc":"asc";u.mailInteractions.rows=_.orderBy(u.mailInteractions.rows,_.trimStart(u.query.sort,"-"),t)}_.merge(n,_.pick(e,_.keys(n)))}else 0===u.setting.mailInteractionsReloadTimeout&&p(u.query.page)}}function A(e){if(e){var n=_.find(u.mailInteractions.rows,{id:e.id});n&&(n.Tags=e.tags||[],_.merge(n,_.pick(e,_.keys(n))))}}function E(e){if(e&&!e.secret){var n=_.find(u.mailInteractions.rows,{id:e.MailInteractionId});if(n){var t=_.find(n.Messages,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):(_.isNil(n.Messages)&&(n.Messages={count:0}),e.read||(n.Messages.count+=1))}}}function y(e){e&&u.interactionsInterval&&n.cancel(u.interactionsInterval),u.interactionsInterval=n(function(){u.reloadingInteractions=!0,u.searchInProgress||p()},1e3*u.setting.mailInteractionsReloadTimeout)}u.user=e.getCurrentUser(),u.license={},u.setting={},u.tags={count:0,rows:[]},u.mailInteractions={count:0,rows:[]},u.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1,read:null,closed:null},u.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Subject",column:"subject",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Body",column:"plainBody",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Substatus",column:"substatus",type:"multiselect",options:{field:"name",route:{model:"mailSubstatus",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Account",column:"MailAccountId",type:"multiselect",options:{route:{model:"user",action:"getMailAccounts",params:{id:u.user.id,nolimit:!0}}}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},u.sectionColor="teal",u.onInit=function(e,n){return u.license=e,u.setting=n,d.user["get"+_.upperFirst("mailAccounts")]({id:u.user.id,nolimit:!0}).$promise.then(function(e){return u.mailAccounts=e||{count:0,rows:[]},d.tag.get({sort:"name"}).$promise}).then(function(e){u.tags=e||{count:0,rows:[]}}).then(function(){return d.mailSubstatus.get({nolimit:!0}).$promise}).then(function(e){u.subStatuses=e||{count:0,rows:[]}}).then(function(){u.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Substatus",key:"substatus",type:"select",label:"DASHBOARDS.SELECT_SUBSTATUS",options:u.subStatuses.rows,customOptions:[{value:"null",translate:"DASHBOARDS.NONE"},{value:void 0,translate:"DASHBOARDS.ALL"}],ngValue:"name",ngIf:"closed === 0"},{name:"Account",key:"MailAccountId",type:"multiselect",label:"DASHBOARDS.SELECT_ACCOUNT",options:u.mailAccounts.rows,clearAll:!1},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:u.user.id,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:u.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=a.localStorage.getItem("motion2.home.mail:"+u.user.id);if(e)try{(e=JSON.parse(e)).query&&(u.query=_.merge(u.query,e.query),_.isEmpty(u.mailAccounts.rows)?u.query.MailAccountId=[]:_.isEmpty(u.query.MailAccountId)&&(u.query.MailAccountId=_(u.mailAccounts.rows).map("id").take().value()),u.query.sort&&0<=u.query.sort.indexOf("lastMessage")&&(u.query=_.omit(u.query,"sort")),u.query.includeAll=!0,u.isSearchBarVisible=!(u.query.search||!u.query.filter))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()},t={MailAccountId:_.map(u.mailAccounts.rows,"id"),createdAt:n};u.query=_.merge(u.query,t)}i.on("mailInteraction:save",b),i.on("mailInteraction:update",b),i.on("mailInteractionTags:save",A),i.on("mailMessage:save",E),i.on("mailMessage:update",E),i.on("user_has_mail_interactions:save",h),i.on("user_has_mail_interactions:remove",f),p(u.query.page),0<u.setting.mailInteractionsReloadTimeout&&y()})},u.success=s,u.getMailInteractions=p,u.showMailInteraction=g,u.downloadMailInteraction=function(e,s,n){d.mailInteraction.download({id:s.id,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="mail-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadMailInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.disposeInteraction=function(e,t){var a=u.user.voicePause||u.user.chatPause||u.user.mailPause||u.user.openchannelPause||u.user.faxPause,n=!t.Account.mandatoryDisposition;r.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(l.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(e,n){u.user&&t.Account.mandatoryDisposition&&!a&&d.user.unpause({id:u.user.id}).$promise.catch(function(e){console.error(e)})},locals:{user:u.user,channel:"mail",interaction:t}})},u.getContactLabel=v,u.getAgentLabel=function(e){if(e.UserId)return e.UserId===u.user.id?t.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">";return t.instant("DASHBOARDS.NOT_ASSIGNED")},u.getMailAccountLabel=function(e){if(e.Account)return e.Account.key;return t.instant("DASHBOARDS.UNKNOWN")},u.composeMailInteraction=function(e,s){r.show({controller:"ComposeMailInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/mail/dialog.html",parent:angular.element(l.body),clickOutsideToClose:!1,locals:{account:s,message:{},type:"new",interaction:{}},fullscreen:!0}).then(function(e){if(e){if(!e.message||!e.message.savedAsDraft){var i=e;return d.mailAccount.send({id:s.id},i).$promise.then(function(e){if(e&&e.Messages&&e.Messages.length){if(i.attachments&&i.attachments.length)for(var n=0;n<i.attachments.length;n+=1)d.attachment.update({id:i.attachments[n].id},{MailMessageId:_.head(e.Messages).id});if(c.success({title:"Message properly sent!",msg:"Message has been sent!"}),e.closed){e.disposition=null;var t=!s.mandatoryDisposition,a=u.user.voicePause||u.user.chatPause||u.user.mailPause||u.user.openchannelPause||u.user.faxPause;r.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(l.body),onRemoving:function(e,n){u.user&&s.mandatoryDisposition&&!a&&d.user.unpause({id:u.user.id}).$promise.catch(function(e){console.error(e)})},clickOutsideToClose:t,escapeToClose:t,locals:{user:u.user,channel:"mail",interaction:e}})}else o.$parent.vm.addInteractionTab("mail",e)}}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"MAILACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}var n={channel:"mail",account:s,message:e.message,contact:e.contact};m.add(n)}})},u.openAdvancedSearch=function(){r.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(l.body),clickOutsideToClose:!1,locals:{color:u.sectionColor,fields:u.advancedSearch.fields,storagePath:"home.mail"},fullscreen:!0}).then(function(e){u.isSearchBarVisible=!(e.value||!u.query.filter),e.apply&&(u.query.search=e.value,p())}).catch(function(e){c.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},o.$on("openMailDraft",function(e,s){s.interaction?(s.interaction.isDraft=!0,g(null,s.interaction)):r.show({controller:"ComposeMailInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/mail/dialog.html",parent:angular.element(l.body),clickOutsideToClose:!1,locals:{account:s.account,message:s.content,type:"draft",interaction:{}},fullscreen:!0}).then(function(e){if(e){if(!e.message||!e.message.savedAsDraft){var i=e;return d.mailAccount.send({id:s.account.id},i).$promise.then(function(e){if(m.remove(s.id),e&&e.Messages&&e.Messages.length){if(i.attachments&&i.attachments.length)for(var n=0;n<i.attachments.length;n+=1)d.attachment.update({id:i.attachments[n].id},{MailMessageId:_.head(e.Messages).id});if(c.success({title:"Message properly sent!",msg:"Message has been sent!"}),e.closed){e.disposition=null;var t=!s.account.mandatoryDisposition,a=u.user.voicePause||u.user.chatPause||u.user.mailPause||u.user.openchannelPause||u.user.faxPause;r.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(l.body),onRemoving:function(e,n){u.user&&s.account.mandatoryDisposition&&!a&&d.user.unpause({id:u.user.id}).$promise.catch(function(e){console.error(e)})},clickOutsideToClose:t,escapeToClose:t,locals:{user:u.user,channel:"mail",interaction:e}})}else o.$parent.vm.addInteractionTab("mail",e)}}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"MAILACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}var n={id:s.id,channel:"mail",account:e.account,message:e.message};m.update(n)}})}),o.$on("$destroy",function(){i.removeAllListeners("mailMessage:save"),i.removeAllListeners("mailMessage:update"),i.removeAllListeners("mailInteraction:save"),i.removeAllListeners("mailInteractionTags:save"),i.removeAllListeners("mailInteraction:update"),i.removeAllListeners("user_has_mail_interactions:save"),i.removeAllListeners("user_has_mail_interactions:remove"),u.interactionsInterval&&n.cancel(u.interactionsInterval)})}e.$inject=["$scope","$interval","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty","draftManager"],angular.module("app.dashboards").controller("AgentHomeMailController",e)}(),function(){"use strict";function e(t,a,e,i,n,s,o,r){var l=this;function d(e){l.searchInProgress=!1,l.contacts=e||{count:0,rows:[]}}function c(e,n){l.searchInProgress=!0,s.cmContact.describe({id:l.query.ListId}).$promise.then(function(e){return _(e.toJSON()).omit("UserId").values().map(function(e){return function(e){var n={name:_.startCase(e.displayName),column:e.columnName,options:{}};if(e.custom)switch(e.custom.type){case"text":n.type="text";break;case"select":n.type="multiselect",n.values=_.map(JSON.parse(e.custom.values),function(e,n){return{id:n,name:e.value,value:e.value}}),n.options.field="name";break;case"switch":n.type="select",n.values=[{id:1,translate:"DASHBOARDS.ENABLED"},{id:0,translate:"DASHBOARDS.DISABLED"}],n.options.excludedOperators=["$ne"];break;case"number":n.type="number";break;case"datetime":n.type="date"}else switch(e.columnName){case"dateOfBirth":n.type="date";break;case"CompanyId":n.name="Company",n.type="autocomplete",n.options.route={model:"cmCompany",action:"get",params:{fields:"id,name",nolimit:!0}},n.options.searchFields=["name"],n.options.excludedOperators=["$ne"];break;case"ListId":n.name="List",n.type="autocomplete",n.options.route={model:"user",action:"getLists",params:{id:l.currentUser.id,fields:"id,name",nolimit:!0}},n.options.searchFields=["name"],n.options.excludedOperators=["$ne"];break;default:_.includes(e.type.toLowerCase(),"int")?n.type="number":_.includes(e.type.toLowerCase(),"date")?n.type="date":n.type="text"}return n}(e)}).value()}).then(function(e){l.advancedSearch.fields=e;var n=_.findIndex(e,function(e){return _.startsWith(e.column,"cf_")})||e.length-1;n<0&&(n=e.length),l.advancedSearch.fields.splice(n,0,{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"DESCRIBE_CM_CONTACTS",msg:e.data?JSON.stringify(e.data.message):e.toString()})}),e||(l.query.page=1),l.query.offset=(l.query.page-1)*l.query.limit;var t=o.localStorage.getItem("motion2.home.mycontacts:"+l.currentUser.id);(t=t?JSON.parse(t):{}).query=l.query,o.localStorage.setItem("motion2.home.mycontacts:"+l.currentUser.id,JSON.stringify(t)),l.query.search&&(l.advancedQuery=_.omit(l.query,"id")),l.promise=l.query.search?s.cmContact.get(l.advancedQuery,d).$promise:s.user.getContacts(l.query,d).$promise}l.currentUser=n.getCurrentUser(),l.lists={},l.contacts={count:0,rows:[]},l.tags={count:0,rows:[]},l.query={includeAll:!0,id:l.currentUser.id,sort:"-updatedAt",limit:10,page:1},l.advancedSearch={fields:[]},l.sectionColor="red",l.getContacts=c,l.refreshContacts=function(){c()},l.mergeContact=function(e,n){i.show({controller:"MergeContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/merge/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:l.currentUser.id,fields:"id,name"})}]},locals:{contacts:l.contacts.rows}})},l.duplicateContact=function(e,n){i.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:l.currentUser.id,fields:"id,name"})}]},locals:{contacts:l.contacts.rows}})},l.openContact=function(e,n){a.$parent.vm.addContactTab(n)},l.call=a.$parent.vm.call,l.onInit=function(){s.cmList.get({fields:"id,name,dialPrefix",sort:"name",nolimit:!0}).$promise.then(function(e){return l.lists=e||{count:0,rows:[]},l.listsMap=_.keyBy(l.lists.rows,"id"),s.tag.get({sort:"name"}).$promise}).then(function(e){l.tags=e||{count:0,rows:[]}}).then(function(){l.quickFilters=[{name:"List",key:"ListId",type:"multiselect",label:"CONTACTMANAGER.SELECT_LIST",options:l.lists.rows,clearAll:!1},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:l.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=o.localStorage.getItem("motion2.home.mycontacts:"+l.currentUser.id);if(e)try{(e=JSON.parse(e)).query&&(l.query=_.merge(l.query,e.query),_.isEmpty(l.lists.rows)?l.query.ListId=[]:_.isEmpty(l.query.ListId)&&(l.query.ListId=_(l.lists.rows).map("id").take().value()))}catch(e){console.error(e)}else l.query.ListId=_.map(l.lists.rows,"id");l.isSearchBarVisible=!(l.query.search||!l.query.filter),c()})},l.openAdvancedSearch=function(){i.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{color:l.sectionColor,fields:l.advancedSearch.fields,storagePath:"home.mycontacts"},fullscreen:!0}).then(function(e){l.isSearchBarVisible=!(e.value||!l.query.filter),e.apply&&(l.query.search=e.value?e.value+="||User:=$eq["+l.currentUser.id+"]":e.value,c())}).catch(function(e){r.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}}e.$inject=["$document","$scope","$timeout","$mdDialog","Auth","api","$window","toasty"],angular.module("app.dashboards").controller("AgentHomeMyContactsController",e)}(),function(){"use strict";function e(i,n,s,o,a,t,r,e,l,d,c){var m=this;function u(e){!m.reloadingInteractions&&0<m.setting.openchannelInteractionsReloadTimeout&&E(!0),m.searchInProgress=!1,m.reloadingInteractions=!1,m.openchannelInteractions=e||{count:0,rows:[]};for(var n=0;n<m.openchannelInteractions.rows.length;n+=1)g(m.openchannelInteractions.rows[n])}function p(e,n){m.searchInProgress=!0,e||(m.query.page=1),m.query.offset=(m.query.page-1)*m.query.limit;var t=a.localStorage.getItem("motion2.home.openchannel:"+m.user.id);(t=t?JSON.parse(t):{}).query=m.query,a.localStorage.setItem("motion2.home.openchannel:"+m.user.id,JSON.stringify(t)),m.promise=r.openchannelInteraction.get(m.query,u).$promise}function g(e){"Unknown"===e.contactName&&(e.contactName=t.instant("DASHBOARDS.UNKNOWN"))}function v(e){var n=_.find(m.openchannelInteractions.rows,{id:e.OpenchannelInteractionId});n&&n.Users&&(_.find(n.Users,{id:e.UserId})||n.Users.push({id:e.UserId}))}function h(e){var n=_.find(m.openchannelInteractions.rows,{id:e.OpenchannelInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function f(e){if(e){var n=_.find(m.openchannelInteractions.rows,{id:e.id});if(n){if(n.Users=[],e.closed&&(n.unreadMessages=0),m.query.sort){var t=_.startsWith(m.query.sort,"-")?"desc":"asc";m.openchannelInteractions.rows=_.orderBy(m.openchannelInteractions.rows,_.trimStart(m.query.sort,"-"),t)}_.merge(n,_.pick(e,_.keys(n)))}else 0===m.setting.openchannelInteractionsReloadTimeout&&p(m.query.page)}}function b(e){if(e){var n=_.find(m.openchannelInteractions.rows,{id:e.id});n&&(n.Tags=e.tags||[],_.merge(n,_.pick(e,_.keys(n))))}}function A(e){if(e&&!e.secret){var n=_.find(m.openchannelInteractions.rows,{id:e.OpenchannelInteractionId});if(n){var t=_.find(n.Messages,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):(_.isNil(n.Messages)&&(n.Messages={count:0}),e.read||(n.Messages.count+=1))}}}function E(e){e&&m.interactionsInterval&&n.cancel(m.interactionsInterval),m.interactionsInterval=n(function(){m.reloadingInteractions=!0,m.searchInProgress||p()},1e3*m.setting.openchannelInteractionsReloadTimeout)}m.user=e.getCurrentUser(),m.license={},m.setting={},m.tags={count:0,rows:[]},m.openchannelInteractions={count:0,rows:[]},m.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1,read:null,closed:null},m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Account",column:"OpenchannelAccountId",type:"multiselect",options:{route:{model:"user",action:"getOpenchannelAccounts",params:{id:m.user.id,nolimit:!0}}}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},m.sectionColor="amber",m.onInit=function(e,n){return m.license=e,m.setting=n,r.user["get"+_.upperFirst("openchannelAccounts")]({id:m.user.id,nolimit:!0}).$promise.then(function(e){return m.openchannelAccounts=e||{count:0,rows:[]},r.tag.get({sort:"name"}).$promise}).then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Account",key:"OpenchannelAccountId",type:"multiselect",label:"DASHBOARDS.SELECT_ACCOUNT",options:m.openchannelAccounts.rows,clearAll:!1},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:m.user.id,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=a.localStorage.getItem("motion2.home.openchannel:"+m.user.id);if(e)try{(e=JSON.parse(e)).query&&(m.query=_.merge(m.query,e.query),_.isEmpty(m.openchannelAccounts.rows)?m.query.OpenchannelAccountId=[]:_.isEmpty(m.query.OpenchannelAccountId)&&(m.query.OpenchannelAccountId=_(m.openchannelAccounts.rows).map("id").take().value()),m.query.sort&&0<=m.query.sort.indexOf("lastMessage")&&(m.query=_.omit(m.query,"sort")),m.query.includeAll=!0,m.isSearchBarVisible=!(m.query.search||!m.query.filter))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()},t={OpenchannelAccountId:_.map(m.openchannelAccounts.rows,"id"),createdAt:n};m.query=_.merge(m.query,t)}l.on("openchannelInteraction:save",f),l.on("openchannelInteraction:update",f),l.on("openchannelInteractionTags:save",b),l.on("openchannelMessage:save",A),l.on("openchannelMessage:update",A),l.on("user_has_openchannel_interactions:save",v),l.on("user_has_openchannel_interactions:remove",h),p(m.query.page),0<m.setting.openchannelInteractionsReloadTimeout&&E()})},m.success=u,m.getOpenchannelInteractions=p,m.showOpenchannelInteraction=function(e,n){i.$parent.vm.addInteractionTab("openchannel",n)},m.downloadOpenchannelInteraction=function(e,s,n){r.openchannelInteraction.download({id:s.id,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="openchannel-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadOpenchannelInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.disposeInteraction=function(e,t){var a=m.user.voicePause||m.user.chatPause||m.user.mailPause||m.user.openchannelPause||m.user.faxPause,n=!t.Account.mandatoryDisposition;s.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(o.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(e,n){m.user&&t.Account.mandatoryDisposition&&!a&&r.user.unpause({id:m.user.id}).$promise.catch(function(e){console.error(e)})},locals:{user:m.user,channel:"openchannel",interaction:t}})},m.getContactLabel=g,m.getAgentLabel=function(e){if(e.UserId)return e.UserId===m.user.id?t.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">";return t.instant("DASHBOARDS.NOT_ASSIGNED")},m.getOpenchannelAccountLabel=function(e){if(e.Account)return e.Account.key;return t.instant("DASHBOARDS.UNKNOWN")},m.composeOpenchannelInteraction=function(e,a){s.show({controller:"ComposeOpenchannelInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/openchannel/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{account:a,message:{},type:"new",interaction:{}},fullscreen:!0}).then(function(e){if(e){if(!e.message||!e.message.savedAsDraft){var n=e;return r.openchannelAccount.send({id:a.id},n).$promise.then(function(e){d.success({title:"Message properly sent!",msg:"Message has been sent!"}),i.$parent.vm.addInteractionTab("openchannel",e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"OPENCHANNELACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}var t={channel:"openchannel",account:a,message:e.message,contact:e.contact};c.add(t)}})},m.openAdvancedSearch=function(){s.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{color:m.sectionColor,fields:m.advancedSearch.fields,storagePath:"home.openchannel"},fullscreen:!0}).then(function(e){m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply&&(m.query.search=e.value,p())}).catch(function(e){d.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},i.$on("$destroy",function(){l.removeAllListeners("openchannelMessage:save"),l.removeAllListeners("openchannelMessage:update"),l.removeAllListeners("openchannelInteraction:save"),l.removeAllListeners("openchannelInteractionTags:save"),l.removeAllListeners("openchannelInteraction:update"),l.removeAllListeners("user_has_openchannel_interactions:save"),l.removeAllListeners("user_has_openchannel_interactions:remove"),m.interactionsInterval&&n.cancel(m.interactionsInterval)})}e.$inject=["$scope","$interval","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty","draftManager"],angular.module("app.dashboards").controller("AgentHomeOpenchannelController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){var d=this;function c(e,n,t){d.license=e,d.setting=n,d.plugin=t}d.currentUser=o.getCurrentUser(),d.plugin={},d.onInit=c,d.getTrustedURL=function(){return s.trustAsResourceUrl(d.plugin.agentUrl)},c(),n.$on("pluginUpdated",function(e,n){d.plugin=n.plugin})}e.$inject=["$document","$scope","$timeout","$mdDialog","$stateParams","$sce","Auth","api","$window"],angular.module("app.dashboards").controller("AgentHomePluginsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){var d=this;function c(){d.agentsQuery.offset=(d.agentsQuery.page-1)*d.agentsQuery.limit,l.update("motion2.home.presence.agents:"+d.currentUser.id,d.agentsQuery,"query"),i.user.getPresence(d.agentsQuery).$promise.then(function(e){d.agents={count:e.count,rows:_.filter(e.rows,function(e){return e.id!==d.currentUser.id})}}).catch(function(){r.error({title:t.instant("DASHBOARDS.AGENT_PRESENCE"),msg:t.instant("CONTACTMANAGER.NOTIFICATIONS.NO_DATA_ERROR")})})}function m(){d.queuesQuery.offset=(d.queuesQuery.page-1)*d.queuesQuery.limit,l.update("motion2.home.presence.queues:"+d.currentUser.id,d.queuesQuery,"query"),i.voiceQueue.get(d.queuesQuery).$promise.then(function(e){return d.voiceQueues=e||{rows:[],count:0},i.rpc.getVoiceQueuesChannels().$promise.then(function(e){e.rows.forEach(function(e){var n=_.find(d.voiceQueues.rows,["name",e.name]);n&&(n.calls||(n.calls=[]),n.calls.push(e))})})}).catch(function(){r.error({title:t.instant("VOICE.VOICEQUEUES"),msg:t.instant("CONTACTMANAGER.NOTIFICATIONS.NO_DATA_ERROR")})})}function u(e){return 0===d.selectedTab?e:"xcallyQueueExtension"+e}function p(e,n,t,a){var i=_.find(d.agents.rows,["id",e]);i&&(i.status=!1===n?"offline":a?"pause":"unavailable"===t?t:_.includes(["idle","unknown","ringing",null,void 0],t)?"online":"busy")}function g(e){e.id!==d.currentUser.id&&p(e.id,e.online,e.voiceStatus,e.voicePause)}d.currentUser=s.getCurrentUser(),d.agents={count:0,rows:[]},d.agentsQuery={fields:"id,name,internal,online",role:"agent",sort:"name",limit:10,page:1},d.queuesQuery={fields:"id,name",type:"inbound",sort:"name",limit:10,page:1},d.onAgentsTabSelection=function(){if(d.agentsQuery.filter||d.agentsQuery.teams||d.agentsQuery.queues)return;_.merge(d.agentsQuery,l.get("motion2.home.presence.agents:"+d.currentUser.id,"query")),d.isSearchBarVisible=!!d.agentsQuery.filter,a.all([a(function(n,e){i.team.get({fields:"id,name",sort:"name",nolimit:!0}).$promise.then(function(e){d.teams=e||{rows:[],count:0},n()}).catch(function(){r.error({title:t.instant("STAFF.TEAMS"),msg:t.instant("CONTACTMANAGER.NOTIFICATIONS.NO_DATA_ERROR")}),e()})}),a(function(n,e){i.voiceQueue.get({fields:"id,name",type:"inbound",sort:"name",nolimit:!0}).$promise.then(function(e){d.queues=e||{rows:[],count:0},n()}).catch(function(){r.error({title:t.instant("VOICE.VOICEQUEUES"),msg:t.instant("CONTACTMANAGER.NOTIFICATIONS.NO_DATA_ERROR")}),e()})})]).then(function(){d.quickFilters=[{name:"Team",key:"teams",type:"multiselect",label:"DASHBOARDS.SELECT_TEAM",options:d.teams.rows},{name:"Queue",key:"queues",type:"multiselect",label:"DASHBOARDS.SELECT_QUEUE",options:d.queues.rows}],c()}).catch(function(){r.error({title:t.instant("DASHBOARDS.AGENT_PRESENCE"),msg:t.instant("DASHBOARDS.ERRORS.FAILED_INITIALIZATION")})})},d.onQueuesTabSelection=function(){if(d.queuesQuery.filter)return;_.merge(d.queuesQuery,l.get("motion2.home.presence.queues:"+d.currentUser.id,"query")),d.isSearchBarVisible=!!d.queuesQuery.filter,m()},d.getAgents=c,d.getVoiceQueues=m,d.originateCall=function(e){n.$broadcast("webrtc::call",{target:u(e)})},d.transferCall=function(e){n.$broadcast("webrtc::transfer",{target:u(e)})},o.on("user:presence",function(e){if(e.id===d.currentUser.id)return;p(e.id,e.online,e.voiceStatus,e.voicePause)}),o.on("user:update",g),o.on("voice_queue_presence:save",function(e){if(!d.voiceQueues&&d.voiceQueues.rows)return;var n=_.find(d.voiceQueues.rows,["name",e.name]);if(!n)return;n.calls||(n.calls=[]);if(_.some(n.calls,["uniqueid",e.uniqueid]))return;n.calls.push(e)}),o.on("voice_queue_presence:remove",function(e){var n=_.find(d.voiceQueues.rows,["name",e.name]);if(!n)return;_.remove(n.calls,["uniqueid",e.uniqueid])}),e.$on("$destroy",function(){o.removeListener("user:update",g),o.removeAllListeners("user:presence"),o.removeAllListeners("voice_queue_presence:save"),o.removeAllListeners("voice_queue_presence:remove")})}e.$inject=["$scope","$rootScope","$translate","$q","api","Auth","socket","toasty","localStorageManager"],angular.module("app.dashboards").controller("AgentHomePresenceController",e)}(),function(){"use strict";function e(e,t,n,a,o,i){var s=this;function r(e){s.searchInProgress=!1,s.voiceRecordings=e||{count:0,rows:[]}}function l(){s.searchInProgress=!0,s.query.offset=(s.query.page-1)*s.query.limit;var e={query:s.query};t.localStorage.setItem("motion2.home.recordings:"+s.currentUser.id,JSON.stringify(e)),s.promise=a.voiceRecording.get(s.query,r).$promise}s.currentUser=i.getCurrentUser(),s.voiceRecordings={},s.table="voiceRecordings",s.query={UserId:s.currentUser.id,fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,rating,audio,transcribeStatus,UserId",sort:"-updatedAt",limit:10,page:1,type:null},s.downloadfile=function(i,e){return a.voiceRecording.download({id:i.id,exists:!0}).$promise.then(function(e){var n=[e.buffer],t=new Blob(n,{type:e.type}),a=window.document.createElement("a");a.setAttribute("href",URL.createObjectURL(t)),a.setAttribute("download",i.uniqueid+i.format),a.click()}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceRecording",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.downloadtranscribe=function(s,e){return a.voiceRecording.downloadTranscribe({id:s.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s.uniqueid;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceRecording",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.success=r,s.getVoiceRecordings=l,s.onInit=function(){s.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Type",key:"type",type:"select",label:"VOICE.SELECT_TYPE",customOptions:[{value:"internal",translate:"VOICE.INTERNAL"},{value:"inbound",translate:"VOICE.INBOUND"},{value:"outbound",translate:"VOICE.OUTBOUND"},{value:"dialer",translate:"VOICE.DIALER"},{value:null,translate:"VOICE.ALL"}]}];var e=t.localStorage.getItem("motion2.home.recordings:"+s.currentUser.id);if(e)try{(e=JSON.parse(e)).query&&(s.query=_.merge(s.query,e.query))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};s.query.createdAt=n}s.isSearchBarVisible=!!s.query.filter,l()}}e.$inject=["$scope","$window","$timeout","api","toasty","Auth"],angular.module("app.dashboards").controller("AgentHomeRecordingsController",e)}(),function(){"use strict";function e(e,t,a,i,s,o,r,n){var l=this;function d(e){l.searchInProgress=!1,l.scheduledCalls=e||{count:0,rows:[]}}l.currentUser=n.getCurrentUser(),l.priorities=["Lowest","Low","Medium","High","Highest"],l.crudPermissions={readOnly:!1,canEdit:!0,canDelete:!0},l.scheduledCalls={},l.query={id:l.currentUser.id,fields:"id,phone,scheduledat,recallme,priority,UserId,OwnerId",sort:"scheduledat",limit:10,page:1},l.queueCampaigns={rows:[],count:0},l.success=d,l.getScheduledCalls=function(){l.searchInProgress=!0,l.query.id=l.currentUser.id,l.query.includeAll=!0,l.query.offset=(l.query.page-1)*l.query.limit;var e={query:l.query};t.localStorage.setItem("motion2.home.scheduled:"+l.currentUser.id,JSON.stringify(e)),l.promise=r.user.getScheduledCalls(l.query,d).$promise},l.onInit=function(){r.user.getQueues({id:n.getCurrentUser().id,fields:"id,name",channel:"voice",type:"outbound",nolimit:!0}).$promise.then(function(e){l.queueCampaigns=e||{count:0,rows:[]}}).then(function(){l.quickFilters=[{name:"Start Date",key:"scheduledat",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Campaigns",key:"VoiceQueueId",type:"multiselect",label:"MOTIONDIALER.SELECT_CAMPAIGN",options:l.queueCampaigns.rows}]}).catch(function(e){console.error(e)}).finally(function(){var e=t.localStorage.getItem("motion2.home.scheduled:"+l.currentUser.id);if(e)try{(e=JSON.parse(e)).query&&(l.query=_.omit(e.query,["filter"]))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};l.query.scheduledat=n}l.getScheduledCalls()})},l.isDateBeforeToday=function(e){return moment(e).isBefore(moment())},l.createOrEditQueueCampaignHopper=function(e,n){i.show({controller:"CreateOrEditHopperVoiceQueueIdDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hoppers/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:null,hopper:n,hoppers:l.scheduledCalls.rows,license:null,setting:null,crudPermissions:l.crudPermissions}})},l.deleteConfirm=function(n,e){var t=i.confirm().title("Are you sure want to delete the scheduled call?").htmlContent("<b>Scheduled call</b> will be deleted.").ariaLabel("delete scheduled call").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){var e;e=n,r.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(l.scheduledCalls.rows,{id:e.id}),l.scheduledCalls.count-=1,l.scheduledCalls.rows.length||l.getScheduledCalls(),o.success({title:"Scheduled call deleted!",msg:e.name?"Scheduled call has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){l.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETE_HOPPER"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETE_HOPPER",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){console.log("CANCEL")})};var c=!0,m=1;e.$watch("vm.query.filter",function(e,n){c?a(function(){c=!1}):(n||(m=l.query.page),e!==n&&(l.query.page=1),e||(l.query.page=m),l.getScheduledCalls())})}e.$inject=["$scope","$window","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.dashboards").controller("AgentHomeScheduledCallsController",e)}(),function(){"use strict";function e(i,n,s,o,a,t,r,e,l,d,c){var m=this;function u(e){!m.reloadingInteractions&&0<m.setting.smsInteractionsReloadTimeout&&E(!0),m.searchInProgress=!1,m.reloadingInteractions=!1,m.smsInteractions=e||{count:0,rows:[]};for(var n=0;n<m.smsInteractions.rows.length;n+=1)g(m.smsInteractions.rows[n])}function p(e,n){m.searchInProgress=!0,e||(m.query.page=1),m.query.offset=(m.query.page-1)*m.query.limit;var t=a.localStorage.getItem("motion2.home.sms:"+m.user.id);(t=t?JSON.parse(t):{}).query=m.query,a.localStorage.setItem("motion2.home.sms:"+m.user.id,JSON.stringify(t)),m.promise=r.smsInteraction.get(m.query,u).$promise}function g(e){e.contactInfo=e.Contact?e.Contact.mobile:void 0,"Unknown"===e.contactName&&(e.contactName=t.instant("DASHBOARDS.UNKNOWN"))}function v(e){var n=_.find(m.smsInteractions.rows,{id:e.SmsInteractionId});n&&n.Users&&(_.find(n.Users,{id:e.UserId})||n.Users.push({id:e.UserId}))}function h(e){var n=_.find(m.smsInteractions.rows,{id:e.SmsInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function f(e){if(e){var n=_.find(m.smsInteractions.rows,{id:e.id});if(n){if(n.Users=[],e.closed&&(n.unreadMessages=0),m.query.sort){var t=_.startsWith(m.query.sort,"-")?"desc":"asc";m.smsInteractions.rows=_.orderBy(m.smsInteractions.rows,_.trimStart(m.query.sort,"-"),t)}_.merge(n,_.pick(e,_.keys(n)))}else 0===m.setting.smsInteractionsReloadTimeout&&p(m.query.page)}}function b(e){if(e){var n=_.find(m.smsInteractions.rows,{id:e.id});n&&(n.Tags=e.tags||[],_.merge(n,_.pick(e,_.keys(n))))}}function A(e){if(e&&!e.secret){var n=_.find(m.smsInteractions.rows,{id:e.SmsInteractionId});if(n){var t=_.find(n.Messages,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):(_.isNil(n.Messages)&&(n.Messages={count:0}),e.read||(n.Messages.count+=1))}}}function E(e){e&&m.interactionsInterval&&n.cancel(m.interactionsInterval),m.interactionsInterval=n(function(){m.reloadingInteractions=!0,m.searchInProgress||p()},1e3*m.setting.smsInteractionsReloadTimeout)}m.user=e.getCurrentUser(),m.license={},m.setting={},m.tags={count:0,rows:[]},m.smsInteractions={count:0,rows:[]},m.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1,read:null,closed:null},m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Account",column:"SmsAccountId",type:"multiselect",options:{route:{model:"user",action:"getSmsAccounts",params:{id:m.user.id,nolimit:!0}}}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},m.sectionColor="orange",m.onInit=function(e,n){return m.license=e,m.setting=n,r.user["get"+_.upperFirst("smsAccounts")]({id:m.user.id,nolimit:!0}).$promise.then(function(e){return m.smsAccounts=e||{count:0,rows:[]},r.tag.get({sort:"name"}).$promise}).then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Account",key:"SmsAccountId",type:"multiselect",label:"DASHBOARDS.SELECT_ACCOUNT",options:m.smsAccounts.rows,clearAll:!1},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:m.user.id,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=a.localStorage.getItem("motion2.home.sms:"+m.user.id);if(e)try{(e=JSON.parse(e)).query&&(m.query=_.merge(m.query,e.query),_.isEmpty(m.smsAccounts.rows)?m.query.SmsAccountId=[]:_.isEmpty(m.query.SmsAccountId)&&(m.query.SmsAccountId=_(m.smsAccounts.rows).map("id").take().value()),m.query.sort&&0<=m.query.sort.indexOf("lastMessage")&&(m.query=_.omit(m.query,"sort")),m.query.includeAll=!0,m.isSearchBarVisible=!(m.query.search||!m.query.filter))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()},t={SmsAccountId:_.map(m.smsAccounts.rows,"id"),createdAt:n};m.query=_.merge(m.query,t)}l.on("smsInteraction:save",f),l.on("smsInteraction:update",f),l.on("smsInteractionTags:save",b),l.on("smsMessage:save",A),l.on("smsMessage:update",A),l.on("user_has_sms_interactions:save",v),l.on("user_has_sms_interactions:remove",h),p(m.query.page),0<m.setting.smsInteractionsReloadTimeout&&E()})},m.success=u,m.getSmsInteractions=p,m.showSmsInteraction=function(e,n){i.$parent.vm.addInteractionTab("sms",n)},m.downloadSmsInteraction=function(e,s,n){r.smsInteraction.download({id:s.id,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="sms-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadSmsInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.disposeInteraction=function(e,t){var a=m.user.voicePause||m.user.chatPause||m.user.mailPause||m.user.openchannelPause||m.user.faxPause,n=!t.Account.mandatoryDisposition;s.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(o.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(e,n){m.user&&t.Account.mandatoryDisposition&&!a&&r.user.unpause({id:m.user.id}).$promise.catch(function(e){console.error(e)})},locals:{user:m.user,channel:"sms",interaction:t}})},m.getContactLabel=g,m.getAgentLabel=function(e){if(e.UserId)return e.UserId===m.user.id?t.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">";return t.instant("DASHBOARDS.NOT_ASSIGNED")},m.getSmsAccountLabel=function(e){if(e.Account)return e.Account.key;return t.instant("DASHBOARDS.UNKNOWN")},m.composeSmsInteraction=function(e,a){s.show({controller:"ComposeSmsInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/sms/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{account:a,message:{},type:"new",interaction:{}},fullscreen:!0}).then(function(e){if(e){if(!e.message||!e.message.savedAsDraft){var n=e;return r.smsAccount.send({id:a.id},n).$promise.then(function(e){d.success({title:"Message properly sent!",msg:"Message has been sent!"}),i.$parent.vm.addInteractionTab("sms",e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SMSACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}var t={channel:"sms",account:a,message:e.message,contact:e.contact};c.add(t)}})},m.openAdvancedSearch=function(){s.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{color:m.sectionColor,fields:m.advancedSearch.fields,storagePath:"home.sms"},fullscreen:!0}).then(function(e){m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply&&(m.query.search=e.value,p())}).catch(function(e){d.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},i.$on("$destroy",function(){l.removeAllListeners("smsMessage:save"),l.removeAllListeners("smsMessage:update"),l.removeAllListeners("smsInteraction:save"),l.removeAllListeners("smsInteractionTags:save"),l.removeAllListeners("smsInteraction:update"),l.removeAllListeners("user_has_sms_interactions:save"),l.removeAllListeners("user_has_sms_interactions:remove"),m.interactionsInterval&&n.cancel(m.interactionsInterval)})}e.$inject=["$scope","$interval","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty","draftManager"],angular.module("app.dashboards").controller("AgentHomeSmsController",e)}(),function(){"use strict";function e(n,t,a,i,e,s,o,r){var l=this;function d(e){l.searchInProgress=!1,l.voiceCalls=e||{count:0,rows:[]}}function c(){l.searchInProgress=!0,l.query.offset=(l.query.page-1)*l.query.limit;var e={query:l.query};s.localStorage.setItem("motion2.home.voice:"+l.currentUser.id,JSON.stringify(e)),l.promise=a.voiceCallReport.get(l.query,d).$promise}l.currentUser=e.getCurrentUser(),l.voiceCalls={},l.table="voiceCalls",l.query={UserId:l.currentUser.id,fields:"id,type,uniqueid,tag,starttime,endtime,source,destination,userDisposition,userSecondDisposition,userThirdDisposition,note,duration,billableseconds,answertime",sort:"-updatedAt",limit:10,page:1,type:null},l.success=d,l.getVoiceCalls=c,l.onInit=function(){return a.tag.get({sort:"name"}).$promise.then(function(e){l.tags=e||{count:0,rows:[]}}).then(function(){l.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Type",key:"type",type:"select",label:"VOICE.SELECT_TYPE",customOptions:[{value:"internal",translate:"VOICE.INTERNAL"},{value:"inbound",translate:"VOICE.INBOUND"},{value:"outbound",translate:"VOICE.OUTBOUND"},{value:"dialer",translate:"VOICE.DIALER"},{value:null,translate:"VOICE.ALL"}]}]}).catch(function(e){i.error({title:"Init error",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()}),l.tags={count:0,rows:[]}}).finally(function(){var e=s.localStorage.getItem("motion2.home.voice:"+l.currentUser.id);if(e)try{(e=JSON.parse(e)).query&&(l.query=_.merge(l.query,e.query))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};l.query.createdAt=n}l.isSearchBarVisible=!!l.query.filter,c()})},l.showDetails=function(e){n.show({controller:"AgentHomeVoiceDetailsController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/home/voice/details/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{call:e}})}}e.$inject=["$mdDialog","$document","api","toasty","Auth","$window","$scope","$timeout"],angular.module("app.dashboards").controller("AgentHomeVoiceController",e)}(),function(){"use strict";function e(e,n){this.call=n,this.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","call"],angular.module("app.dashboards").controller("AgentHomeVoiceDetailsController",e)}(),function(){"use strict";function e(i,n,s,o,a,t,r,e,l,d,c){var m=this;function u(e){!m.reloadingInteractions&&0<m.setting.whatsappInteractionsReloadTimeout&&E(!0),m.searchInProgress=!1,m.reloadingInteractions=!1,m.whatsappInteractions=e||{count:0,rows:[]};for(var n=0;n<m.whatsappInteractions.rows.length;n+=1)g(m.whatsappInteractions.rows[n])}function p(e,n){m.searchInProgress=!0,e||(m.query.page=1),m.query.offset=(m.query.page-1)*m.query.limit;var t=a.localStorage.getItem("motion2.home.whatsapp:"+m.user.id);(t=t?JSON.parse(t):{}).query=m.query,a.localStorage.setItem("motion2.home.whatsapp:"+m.user.id,JSON.stringify(t)),m.promise=r.whatsappInteraction.get(m.query,u).$promise}function g(e){e.contactInfo=e.Contact?e.Contact.mobile:void 0,"Unknown"===e.contactName&&(e.contactName=t.instant("DASHBOARDS.UNKNOWN"))}function v(e){var n=_.find(m.whatsappInteractions.rows,{id:e.WhatsappInteractionId});n&&n.Users&&(_.find(n.Users,{id:e.UserId})||n.Users.push({id:e.UserId}))}function h(e){var n=_.find(m.whatsappInteractions.rows,{id:e.WhatsappInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function f(e){if(e){var n=_.find(m.whatsappInteractions.rows,{id:e.id});if(n){if(n.Users=[],e.closed&&(n.unreadMessages=0),m.query.sort){var t=_.startsWith(m.query.sort,"-")?"desc":"asc";m.whatsappInteractions.rows=_.orderBy(m.whatsappInteractions.rows,_.trimStart(m.query.sort,"-"),t)}_.merge(n,_.pick(e,_.keys(n)))}else 0===m.setting.whatsappInteractionsReloadTimeout&&p(m.query.page)}}function b(e){if(e){var n=_.find(m.whatsappInteractions.rows,{id:e.id});n&&(n.Tags=e.tags||[],_.merge(n,_.pick(e,_.keys(n))))}}function A(e){if(e&&!e.secret){var n=_.find(m.whatsappInteractions.rows,{id:e.WhatsappInteractionId});if(n){var t=_.find(n.Messages,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):(_.isNil(n.Messages)&&(n.Messages={count:0}),e.read||(n.Messages.count+=1))}}}function E(e){e&&m.interactionsInterval&&n.cancel(m.interactionsInterval),m.interactionsInterval=n(function(){m.reloadingInteractions=!0,m.searchInProgress||p()},1e3*m.setting.whatsappInteractionsReloadTimeout)}m.user=e.getCurrentUser(),m.license={},m.setting={},m.tags={count:0,rows:[]},m.whatsappInteractions={count:0,rows:[]},m.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1,read:null,closed:null},m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Account",column:"WhatsappAccountId",type:"multiselect",options:{route:{model:"user",action:"getWhatsappAccounts",params:{id:m.user.id,nolimit:!0}}}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},m.sectionColor="lime-A700",m.onInit=function(e,n){return m.license=e,m.setting=n,r.user["get"+_.upperFirst("whatsappAccounts")]({id:m.user.id,nolimit:!0}).$promise.then(function(e){return m.whatsappAccounts=e||{count:0,rows:[]},r.tag.get({sort:"name"}).$promise}).then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Account",key:"WhatsappAccountId",type:"multiselect",label:"DASHBOARDS.SELECT_ACCOUNT",options:m.whatsappAccounts.rows,clearAll:!1},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:m.user.id,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=a.localStorage.getItem("motion2.home.whatsapp:"+m.user.id);if(e)try{(e=JSON.parse(e)).query&&(m.query=_.merge(m.query,e.query),_.isEmpty(m.whatsappAccounts.rows)?m.query.WhatsappAccountId=[]:_.isEmpty(m.query.WhatsappAccountId)&&(m.query.WhatsappAccountId=_(m.whatsappAccounts.rows).map("id").take().value()),m.query.sort&&0<=m.query.sort.indexOf("lastMessage")&&(m.query=_.omit(m.query,"sort")),m.query.includeAll=!0,m.isSearchBarVisible=!(m.query.search||!m.query.filter))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()},t={WhatsappAccountId:_.map(m.whatsappAccounts.rows,"id"),createdAt:n};m.query=_.merge(m.query,t)}l.on("whatsappInteraction:save",f),l.on("whatsappInteraction:update",f),l.on("whatsappInteractionTags:save",b),l.on("whatsappMessage:save",A),l.on("whatsappMessage:update",A),l.on("user_has_whatsapp_interactions:save",v),l.on("user_has_whatsapp_interactions:remove",h),p(m.query.page),0<m.setting.whatsappInteractionsReloadTimeout&&E()})},m.success=u,m.getWhatsappInteractions=p,m.showWhatsappInteraction=function(e,n){i.$parent.vm.addInteractionTab("whatsapp",n)},m.downloadWhatsappInteraction=function(e,s,n){r.whatsappInteraction.download({id:s.id,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="whatsapp-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadWhatsappInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.disposeInteraction=function(e,t){var a=m.user.voicePause||m.user.chatPause||m.user.mailPause||m.user.openchannelPause||m.user.faxPause,n=!t.Account.mandatoryDisposition;s.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(o.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(e,n){m.user&&t.Account.mandatoryDisposition&&!a&&r.user.unpause({id:m.user.id}).$promise.catch(function(e){console.error(e)})},locals:{user:m.user,channel:"whatsapp",interaction:t}})},m.getContactLabel=g,m.getAgentLabel=function(e){if(e.UserId)return e.UserId===m.user.id?t.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">";return t.instant("DASHBOARDS.NOT_ASSIGNED")},m.getWhatsappAccountLabel=function(e){if(e.Account)return e.Account.key;return t.instant("DASHBOARDS.UNKNOWN")},m.composeWhatsappInteraction=function(e,a){s.show({controller:"ComposeWhatsappInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/whatsapp/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{account:a,message:{},type:"new",interaction:{}},fullscreen:!0}).then(function(e){if(e){if(!e.message||!e.message.savedAsDraft){var n=e;return r.whatsappAccount.send({id:a.id},n).$promise.then(function(e){d.success({title:"Message properly sent!",msg:"Message has been sent!"}),i.$parent.vm.addInteractionTab("whatsapp",e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"WHATSAPPACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}var t={channel:"whatsapp",account:a,message:e.message,contact:e.contact};c.add(t)}})},m.openAdvancedSearch=function(){s.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{color:m.sectionColor,fields:m.advancedSearch.fields,storagePath:"home.whatsapp"},fullscreen:!0}).then(function(e){m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply&&(m.query.search=e.value,p())}).catch(function(e){d.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},i.$on("$destroy",function(){l.removeAllListeners("whatsappMessage:save"),l.removeAllListeners("whatsappMessage:update"),l.removeAllListeners("whatsappInteraction:save"),l.removeAllListeners("whatsappInteractionTags:save"),l.removeAllListeners("whatsappInteraction:update"),l.removeAllListeners("user_has_whatsapp_interactions:save"),l.removeAllListeners("user_has_whatsapp_interactions:remove"),m.interactionsInterval&&n.cancel(m.interactionsInterval)})}e.$inject=["$scope","$interval","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty","draftManager"],angular.module("app.dashboards").controller("AgentHomeWhatsappController",e)}(),function(){"use strict";function e(e,n){var t=this;t.setting={},t.messages={count:0,rows:[]},t.showInteraction=!1,t.init=function(e,n){t.setting=n,t.tab=e,t.tab.saved=!0},t.getTrustedURL=function(){return n.trustAsResourceUrl(t.tab.src)}}e.$inject=["$scope","$sce"],angular.module("app.dashboards").controller("AgentGeneralIframeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v){var h=this,f=25,b=1024*f*1024;function A(){var e=h.user.voicePause||h.user.chatPause||h.user.mailPause||h.user.openchannelPause||h.user.faxPause,n=!h.tab.interaction.Account.mandatoryDisposition;i.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(t.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(){h.user&&h.interaction.Account.mandatoryDisposition&&!e&&l.user.unpause({id:h.user.id}).$promise.catch(function(e){d.error(e.data?e.data.message:e.toString())})},locals:{user:h.user,channel:h.tab.channel,interaction:h.tab.interaction}}).then(function(e){h.tab.saved=Boolean(e),e&&a.$parent.$parent.$parent.vm.closeTab(h.tab)})}function E(e,n){h.tab.message=n,i.show({controller:"ComposeMailInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/mail/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,message:h.tab.message,type:e,interaction:h.interaction},fullscreen:!0,skipHide:Boolean(h.tab.spy)}).then(function(e){if(e)if(e.message&&e.message.savedAsDraft)h.draft?p.update({id:h.draft.id,channel:"mail",account:h.account,message:e.message,contact:h.contact,interaction:h.interaction}):p.add({channel:"mail",account:h.account,message:e.message,contact:h.contact,interaction:h.interaction}),h.draft=p.getByInteraction(h.tab.interaction.id);else{var n=e;n&&S(n),n.Interaction&&h.interaction&&h.interaction.id&&(n.Interaction.id=h.interaction.id,l.mailInteraction.update(n.Interaction).$promise.then(function(e){e&&e.closed?(h.tab.saved=!0,h.interaction.closed=!0,A()):null!==n.Interaction.substatus&&(h.tab.saved=!0,h.tab.interaction.substatus=n.Interaction.substatus,a.$parent.$parent.$parent.vm.closeTab(h.tab))}).catch(function(e){d.error(e.data?e.data.message:e.toString())}))}}).finally(function(){h.tab.isDraft=!1})}function y(){"mail"!==h.tab.channel&&n(function(){var e=angular.element(t.find("md-content[name*='interaction-content-"+h.tab.id+"']"));e&&e[0]&&(e[0].scrollTop=e[0].scrollHeight)},0)}function S(i){if(i)return i["chat"===h.tab.channel?"ChatWebsiteId":_.capitalize(h.tab.channel)+"AccountId"]=h.interaction["chat"===h.tab.channel?"ChatWebsiteId":_.capitalize(h.tab.channel)+"AccountId"],i[_.capitalize(h.tab.channel)+"InteractionId"]=h.interaction.id,i.UserId=h.user.id,i.ContactId=h.interaction.ContactId,i.direction="out",i.secret=Boolean(h.tab.spy||i.secret),l[h.tab.channel+"Message"].save(i).$promise.then(function(e){if(e&&e.id&&!_.isEmpty(i.attachments)){for(var n=[],t=0;t<i.attachments.length;t++){var a=i.attachments[t];a.MailMessageId?n.push(l.attachment.clone({id:a.id},{name:a.name,basename:a.basename,type:a.type,MailMessageId:e.id}).$promise):n.push(l.attachment.update({id:a.id},{MailMessageId:e.id}).$promise)}return s.all(n)}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:SENDMESSAGE",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){"mail"===h.tab.channel&&i.isDraft&&(p.removeByInteraction(h.interaction.id),h.draft=null),h.tab.areaText="",y()})}function T(e){switch(h.tab.channel){case"mail":h.draft.content.originalMessage=e?_.find(h.interaction.Messages,["id",e]):h.interaction.Messages[h.interaction.Messages.length-1],E(h.draft.type,h.draft.content)}}function I(e){h.journeyIsLoading=!0;var n=_.merge(h.journeyOptions,{id:h.contact.id,offset:e||0});return g.get(h.journey,n).then(function(e){h.journey=e.journey,h.canLoadMoreJourney=e.loadMore}).finally(function(){h.journeyIsLoading=!1})}h.showFooter=!1,h.BTNLoadMore=0,h.showInteraction=!1,h.user=c.getCurrentUser(),h.detectBrowser=u.detectBrowser(),h.journey=[],h.acceptedMessages=[],h.ngFlowOptions={target:"api/attachments",singleFile:!0,maxChunkRetries:1,chunkSize:b,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},h.ngFlow={flow:{}},h.selectedMailShowDetails={},h.selectedMailShowSystemMessage={},h.setting={},h.ctrlMethods={},h.embedOptions={fontSmiley:!0,sanitizeHtml:!0,emoji:!0,link:!0,linkTarget:"_blank"},h.journeyOptions=g.getQuery(),h.quickFilters=g.getQuickFilters(),h.init=function(e,n){h.tab=e,h.tab.saved=!0,h.tab.badges=0,h.setting=n||{},h.tab&&h.tab.channel&&h.tab.interaction&&(h.interaction=h.tab.interaction,l[h.tab.channel+"Interaction"].get({id:h.tab.interaction.id,includeAll:!0}).$promise.then(function(e){return e&&(h.interaction=e,h.tab.interaction=e),h.tab.saved=h.interaction.closed,h.queryMessage={id:h.interaction.id,includeAll:!0},"mail"===h.tab.channel?(h.queryMessage.sort="-id",h.queryMessage.offset=0,h.queryMessage.limit=3,h.queryMessage.inlineCss=!0):(h.queryMessage.sort="id",h.queryMessage.nolimit=!0),l[h.tab.channel+"Interaction"].getMessages(h.queryMessage).$promise}).then(function(e){return e&&(h.BTNLoadMore=e.count-h.queryMessage.limit),h.messages=e||{count:0,rows:[]},l["chat"===h.tab.channel?"chatWebsite":h.tab.channel+"Account"].get({id:h.interaction["chat"===h.tab.channel?"ChatWebsiteId":_.capitalize(h.tab.channel)+"AccountId"]}).$promise}).then(function(e){if(h.account=e,h.tab.title=h.account.key||h.account.name,h.interaction.ContactId)return l.cmContact.get({id:h.interaction.ContactId}).$promise}).then(function(e){return e&&(h.contact=e),h.showInteraction=!0,h.contact?h.tab.title+=" - "+(h.user.privacyEnabled?v.mask(h.contact.firstName):h.contact.firstName):h.tab.title+=" - "+r.instant(h.tab.channel.toUpperCase()+".UNKNOWN"),l.user.get({fields:"id,fullname",nolimit:!0}).$promise}).then(function(e){h.users=e||{count:0,rows:[]},h.usersMap=_.mapValues(_.keyBy(h.users.rows,"id"),"fullname")}).then(function(){if(h.tab.channel&&h.interaction)return l.user["add"+_.upperFirst(h.tab.channel)+"Interactions"]({id:h.user.id,ids:[h.interaction.id]})}).then(function(){return l.mailSubstatus.get({sort:"name",nolimit:!0}).$promise}).then(function(e){h.subStatuses=e||{count:0,rows:[]}}).catch(function(){h.showInteraction=!0}).finally(function(){h.contact&&I(),function(){switch(h.user.role){case"admin":return h.downloadPermissions={attachments:!0,interactions:!0};case"agent":return h.downloadPermissions={attachments:h.user.downloadAttachments,interactions:h.user.downloadOmnichannelInteractions};case"user":l.userProfile.get({id:h.user.userProfileId,fields:"downloadAttachments,downloadOmnichannelInteractions"}).$promise.then(function(e){h.downloadPermissions={attachments:e.downloadAttachments,interactions:e.downloadOmnichannelInteractions}}).catch(function(){h.downloadPermissions={attachments:!1,interactions:!1}})}}(),function(){if(!h.tab.spy&&!h.interaction.closed){var t=[];if(h.messages.rows.forEach(function(e){if("in"===e.direction&&!e.read){var n=0===t.length;t.push(l[h.tab.channel+"Message"].accept({id:e.id,UserId:h.user.id,manual:n}).$promise),h.acceptedMessages.push(e.id)}}),"mail"===h.tab.channel){var e=_(h.interaction.Messages).filter({read:!1,direction:"in"}).differenceBy(h.messages.rows,"id").value();e.forEach(function(e){t.push(l.mailMessage.accept({id:e.id,UserId:h.user.id}).$promise),h.acceptedMessages.push(e.id)})}s.all(t)}}(),y(),m.on(h.tab.channel+"Message:save",h.onMessageSave),m.on(h.tab.channel+"Message:update",h.onMessageSave),m.on(h.tab.channel+"Interaction:save",h.onInteractionSave),m.on(h.tab.channel+"Interaction:update",h.onInteractionSave),m.on("user_has_"+h.tab.channel+"_interactions:save",h.onInteractionOpen),m.on("user_has_"+h.tab.channel+"_interactions:remove",h.onInteractionClose),h.tab.areaText=h.tab.areaText?h.tab.areaText:"",h.showFooter=!0,"mail"===h.tab.channel&&(h.draft=p.getByInteraction(h.tab.interaction.id),h.tab.isDraft&&(h.tab.interaction.closed?(p.removeByInteraction(h.tab.interaction.id),h.draft=null):T()))}))},h.getLabelByMessage=function(e){var n="loading...";if(e)return"in"===e.direction?e.Contact?e.Contact.firstName||"Anonymous":n:e.UserId?h.usersMap?h.usersMap[e.UserId]:n:"System"},h.openContact=function(e,n){try{h.tab&&!h.tab.spy&&a.$parent.$parent.$parent.vm.addContactTab(n||h.contact)}catch(e){d.error({title:"ERROR OPEN CONTACT",msg:"Unable to open the contact"})}},h.openInteraction=function(e){try{if(e.MailAccountId)return a.$parent.$parent.$parent.vm.addInteractionTab("mail",e);if(e.ChatWebsiteId)return a.$parent.$parent.$parent.vm.addInteractionTab("chat",e);if(e.SmsAccountId)return a.$parent.$parent.$parent.vm.addInteractionTab("sms",e);if(e.WhatsappAccountId)return a.$parent.$parent.$parent.vm.addInteractionTab("whatsapp",e);if(e.OpenchannelAccountId)return a.$parent.$parent.$parent.vm.addInteractionTab("openchannel",e);if(e.FaxAccountId)return a.$parent.$parent.$parent.vm.addInteractionTab("fax",e)}catch(e){d.error({title:"ERROR OPEN INTERACTION",msg:"Customer Journey can't open the interaction"})}},h.disposeInteraction=A,h.tagInteraction=function(){i.show({controller:"TagInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/tag/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,skipHide:Boolean(h.tab.spy),resolve:{tags:["apiResolver",function(e){return e.resolve("tag@get",{sort:"name",nolimit:!0,fields:"id,name,color"})}]},locals:{channel:h.tab.channel,interaction:h.tab.interaction}})},h.composeMailInteraction=function(n,e){if(e.inReplyTo){var t=_.find(h.messages.rows,{messageId:e.inReplyTo});if(!t)return l.mailMessage.get({messageId:e.inReplyTo}).$promise.then(function(e){E(n,e&&e.count?e.rows[0]:void 0)}).catch(function(e){d.error(e.data?e.data.message:e.toString()),E(n,void 0)});E(n,t)}else E(n,e)},h.composeFaxInteraction=function(e){var n={to:[]};n.to.push(h.contact.fax),i.show({controller:"ComposeFaxInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/fax/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,message:n,type:e},fullscreen:!0}).then(function(e){return l.faxAccount.send({id:h.account.id},e).$promise.then(function(e){d.success({title:"Message properly sent!",msg:"Message has been sent!"}),a.$parent.vm.addInteractionTab("fax",e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:"FAX:SEND",msg:e.data?JSON.stringify(e.data):e.message||e.toString()})})})},h.composeSmsInteraction=function(e,n){i.show({controller:"ComposeSmsInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/sms/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,message:n,type:e},fullscreen:!0,skipHide:Boolean(h.tab.spy)}).then(function(e){e&&S(e)})},h.composeWhatsappInteraction=function(e,n){i.show({controller:"ComposeWhatsappInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/whatsapp/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,message:n,type:e},fullscreen:!0,skipHide:Boolean(h.tab.spy)}).then(function(e){e&&S(e)})},h.composeChatInteraction=function(e,n){i.show({controller:"ComposeChatInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/chat/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,message:n,type:e},fullscreen:!0,skipHide:Boolean(h.tab.spy)}).then(function(e){e&&S(e)})},h.composeOpenchannelInteraction=function(e,n){i.show({controller:"ComposeOpenchannelInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/openchannel/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,message:n,type:e},fullscreen:!0,skipHide:Boolean(h.tab.spy)}).then(function(e){e&&S(e)})},h.transferLastMessage=function(){if(h.interaction){var e=_.findLast(h.messages.rows,function(e){return"in"===e.direction});e?i.show({controller:"TransferMessageDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/transfer/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,interaction:h.interaction,message:e,channel:h.tab.channel},resolve:{agents:["apiResolver",function(e){var n={fields:"id,name",$id:{ne:h.user.id},role:"agent",online:!0,sort:"name",nolimit:!0};return n[h.tab.channel+"Pause"]=!1,e.resolve("user@get",n)}],queues:["apiResolver",function(e){return e.resolve(h.tab.channel+"Queue@get",{fields:"id,name",sort:"name",nolimit:!0})}]}}).then(function(e){h.tab.saved=Boolean(e),e&&a.$parent.$parent.$parent.vm.closeTab(h.tab)}):d.error({title:"Invalid transfer",msg:"Message not found!"})}},h.downloadMessage=function(s,e){h.tab.channel&&s.id&&l[h.tab.channel+"Message"].download({id:s.id,attachments:e}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=h.tab.channel+"-message"+s.id+".eml";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.downloadMessage.get",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.downloadInteraction=function(s,e){h.tab.channel&&s.id&&l[h.tab.channel+"Interaction"].download({id:s.id,attachments:e}).$promise.then(function(e){var n=[e.buffer],t=h.tab.channel+"-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.inteactionMessage.get",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.openDraft=T,h.createVidaooSession=function(e){var n={id:e.id,account:e.Account,contact:e.Contact};return l.chatInteraction.createVidaooSession(n).$promise.then(function(){d.success({title:"Start Video Call",msg:"Session properly created."})}).catch(function(){d.error({title:"Start Video Call",msg:"Unable to create session!"})})},h.reply=function(e,n){if(e&&13===e.keyCode&&e.shiftKey)return;if(e&&13!==e.keyCode)return;if(""===n.trim())return;S(function(e){var n={},t="chat"===h.tab.channel?"ChatWebsiteId":_.capitalize(h.tab.channel)+"AccountId";n[t]=h.interaction[t].toString(),n[_.capitalize(h.tab.channel)+"InteractionId"]=h.interaction.id,("sms"===h.tab.channel||"whatsapp"===h.tab.channel)&&(n.phone=h.interaction.phone);e&&(n.UserId=h.user.id,n.ContactId=h.interaction.ContactId,n.body=e);return n}(n.replace(/\n$/,"")))},h.upload=function(){h.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},h.ngFlow.flow.upload()},h.fileAdded=function(e){if(e.size>b)return d.error({title:"File too big",msg:"The max allowed size is "+f+"MB"}),!1;return!0},h.fileSuccess=function(e,n){var t=JSON.parse(n),a=t.name;"chat"===h.tab.channel&&(a='<a href="'+(h.account.remote?h.account.remote:o.protocol()+"://"+o.host())+"/api/chat/interactions/"+h.interaction.id+"/attachment_download?attachId="+t.id+"&token="+h.account.token+'" target="_self">'+t.name+"</a>");S({body:a,AttachmentId:t.id})},h.onMessageSave=function(e){if(e&&h.interaction.id!=e[_.capitalize(h.tab.channel)+"InteractionId"])return;var n=!1;h.messages?n=_.find(h.messages.rows,{id:e.id}):h.messages={rows:[],count:0};n?_.merge(n,e):("mail"===h.tab.channel?h.messages.rows.unshift(e):h.messages.rows.push(e),y())},h.onInteractionSave=function(e){if(e&&h.interaction.id!==e.id)return;e.closed&&(h.tab.saved=!0);_.merge(h.interaction,e)},h.searchTextChange=function(n){var t=s.defer(),a=[],e={},i="chat"===h.tab.channel?"ChatWebsiteId":_.capitalize(h.tab.channel)+"AccountId";return e.filter=n,e[i]=h.account.id,l.cannedAnswer.get(e).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:n}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.WhatsappAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),t.resolve(a)}).catch(function(e){t.reject(e)}),t.promise},h.selectedItemChange=function(n){if(n){try{_.templateSettings.interpolate=/{{([\s\S]+?)}}/g;var e=_.template(n.value),t={user:h.user,account:h.account,interaction:h.interaction,contact:h.interaction&&h.interaction.Contact?h.interaction.Contact:{}};""!==h.tab.areaText&&(h.tab.areaText+=" "),h.tab.areaText+=e(t),h.ctrlMethods.setText(h.tab.areaText)}catch(e){""!==h.tab.areaText&&(h.tab.areaText+=" "),h.tab.areaText+=n.value,h.ctrlMethods.setText(h.tab.areaText)}h.selectedItem=null,h.changeDisplayCannedAnswerInputValue()}},h.getMessagesAlignment=function(e){if(e.secret&&h.user.id!=e.UserId)return"in";switch(h.setting.messagesAlignment){case"left":return"in"==e.direction?e.direction:"out-left-aligned";case"right":return"in"==e.direction?"in-right-aligned":e.direction;default:return e.direction}},h.displayCannedAnswerInput=!1,h.changeDisplayCannedAnswerInputValue=function(){h.displayCannedAnswerInput=!h.displayCannedAnswerInput},h.setAs=function(e){h.tab.channel&&h.interaction&&h.interaction.id&&l[h.tab.channel+"Interaction"].update({id:h.interaction.id,substatus:e}).$promise.catch(function(e){d.error(e.data?e.data.message:e.toString())})},h.markAsUnread=function(){if(h.tab.channel&&h.interaction&&h.interaction.id)if(h.acceptedMessages.length)for(var e=0;e<h.acceptedMessages.length;e+=1)l[h.tab.channel+"Message"].update({id:h.acceptedMessages[e],read:!1,UserId:null});else for(var n=0;n<h.messages.rows.length;n+=1)if("in"===h.messages.rows[n].direction){h.messages.rows[n].UserId===h.user.id?l[h.tab.channel+"Message"].update({id:h.messages.rows[n].id,read:!1,UserId:null}):d.error({title:"You can't mark as unread",msg:"You are not the owner of the last message!"});break}h.tab.saved=!0,a.$parent.$parent.$parent.vm.closeTab(h.tab)},h.getAttachments=function(n){return l.attachment.get({MailMessageId:n.id}).$promise.then(function(e){e&&e.rows&&(n.attachments=e.rows)}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"ATTACHMENTS:GET",msg:e.data?JSON.stringify(e.data):e.toString()})})},h.getAttachment=function(i){return l.attachment.download({id:i.id}).$promise.then(function(e){if(e){var n=new Blob([e.buffer],{type:e.type}),t=document.createElement("a"),a=window.URL.createObjectURL(n);t.href=a,t.target="_self",t.download=i.name,document.body.appendChild(t),t.click(),setTimeout(function(){document.body.removeChild(t),window.URL.revokeObjectURL(a)},100)}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"ATTACHMENTS:GET",msg:e.data?JSON.stringify(e.data):e.toString()})})},h.htmlToPlaintext=function(e){return e?String(e).replace(/<[^>]+>/gm,""):""},h.onInteractionOpen=function(e){var n;h.interaction.id==e[_.upperFirst(h.tab.channel)+"InteractionId"]&&(h.interaction.Users&&(n=_.find(h.interaction.Users,{id:e.UserId})),n||h.interaction.Users.push({id:e.UserId}))},h.onInteractionClose=function(e){h.interaction.id==e[_.upperFirst(h.tab.channel)+"InteractionId"]&&h.interaction.Users&&_.remove(h.interaction.Users,{id:e.UserId})},h.getCustomerJourney=I,h.loadNextPage=function(){var t=s.defer();if(h.queryMessage)return h.queryMessage.offset=h.messages.rows.length,l[h.tab.channel+"Interaction"].getMessages(h.queryMessage).$promise.then(function(e){for(var n=0;n<e.rows.length;n+=1)h.messages.rows.push(e.rows[n]),h.interaction.closed||"in"!==e.rows[n].direction||e.rows[n].read||(l[h.tab.channel+"Message"].accept({id:e.rows[n].id,UserId:h.user.id}),h.acceptedMessages.push(e.rows[n].id));return 0<e.rows.length&&(h.BTNLoadMore=h.BTNLoadMore-e.rows.length),t.resolve(e)}).catch(function(e){return t.reject(e)});return t.reject()},h.interactionTimelineOptions={scrollEl:"#interaction-content"},h.loadMoreJourney=function(){return s(function(e){var n=h.journey.length;return e(I(n))})},h.journeyTimelineOptions={scrollEl:"#journey-content"},a.$on("$destroy",function(){m.removeAllListeners(h.tab.channel+"Message:save"),m.removeAllListeners(h.tab.channel+"Message:update"),m.removeAllListeners(h.tab.channel+"Interaction:save"),m.removeAllListeners(h.tab.channel+"Interaction:update"),m.removeAllListeners("user_has_"+h.tab.channel+"_interactions:save"),m.removeAllListeners("user_has_"+h.tab.channel+"_interactions:remove")})}function n(a){return{scope:{ngBindHtmlUnsafe:"="},template:"<div ng-bind-html='trustedHtml'></div>",link:function(t){t.updateView=function(){var e,n=_.replace(t.ngBindHtmlUnsafe,'<div id="xm-mail-content"','<a style="cursor:pointer" class="toggle-details md-accent-color" onclick="document.getElementById(\''+(e="xm-mail-content-"+Math.floor(9999*Math.random()+1))+"').style.display='block'; this.parentNode.removeChild(this)\">See More</a><div id=\""+e+'" style="display:none"');t.trustedHtml=a.trustAsHtml(n)},t.$watch("ngBindHtmlUnsafe",function(e){t.updateView(e)})}}}e.$inject=["$cookies","$timeout","$document","$scope","$mdDialog","$q","$location","$translate","api","toasty","Auth","socket","msUtils","draftManager","customerJourneyManager","privacyManager"],n.$inject=["$sce"],angular.module("app.dashboards").directive("ngBindHtmlUnsafe",n).controller("AgentGeneralInteractionController",e)}(),function(){"use strict";angular.module("app.dashboards").factory("Emojis",function(){return{watchEmbedData:!1,sanitizeHtml:!1,fontSmiley:!1,emoji:!0,link:!0,linkTarget:"_blank",pdf:{embed:!0},image:{embed:!0},audio:{embed:!0},basicVideo:!1,gdevAuth:"xxxxxxxx",video:{embed:!1,width:null,height:null,ytTheme:"dark",details:!1,thumbnailQuality:"medium",autoPlay:!0},twitchtvEmbed:!0,dailymotionEmbed:!0,tedEmbed:!0,dotsubEmbed:!0,liveleakEmbed:!0,ustreamEmbed:!0,soundCloudEmbed:!0,soundCloudOptions:{height:160,themeColor:"f50000",autoPlay:!1,hideRelated:!1,showComments:!0,showUser:!0,showReposts:!1,visual:!1,download:!1},spotifyEmbed:!0,tweetEmbed:!0,tweetOptions:{maxWidth:550,hideMedia:!1,hideThread:!1,align:"none",lang:"en"},code:{highlight:!0,lineNumbers:!1},codepenEmbed:!0,codepenHeight:300,jsfiddleEmbed:!0,jsfiddleHeight:300,jsbinEmbed:!0,jsbinHeight:300,plunkerEmbed:!0,githubgistEmbed:!0,ideoneEmbed:!0,ideoneHeight:300}})}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;switch(p.currentUser=u.getCurrentUser(),p.errors=[],p.separatorKeys=[i.KEY_CODE.ENTER,i.KEY_CODE.COMMA,i.KEY_CODE.TAB],p.searchTextChange=function(n){var t=c.defer(),a=[];return l.cannedAnswer.get({filter:n,ChatAccountId:s.id}).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:n}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.WhatsappAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),t.resolve(a)}).catch(function(e){t.reject(e)}),t.promise},p.selectedItemChange=function(n){if(n){try{_.templateSettings.interpolate=/{{([\s\S]+?)}}/g;var e=_.template(n.value),t={user:p.currentUser,account:s};p.message.body+=" "+e(t),p.ctrlMethods.setText(p.message.body)}catch(e){p.message.body+=" "+n.value,p.ctrlMethods.setText(p.message.body)}p.selectedItem=null}},p.note=function(){p.secret=!0},p.addNote=function(){p.message.body&&a.hide({secret:!0,body:p.message.body})},p.ctrlMethods={},p.message={from:s.phone,to:_.isNil(o.to)||_.isEmpty(o.to)?[]:o.to,body:""},p.send=function(e){p.message.to&&p.message.body&&(p.message.to.length?(n=p.message.body,a.hide({to:p.message.to.join(","),body:n})):d.error("To is mandatory"));var n},p.getContact=function(e){var n="";e.firstName&&e.firstName!==e.mobile&&(n+=e.firstName+" ");e.lastName&&e.lastName!==e.mobile&&(n+=e.lastName+" ");return n+="<"+e.mobile+">"},p.closeDialog=function(){a.cancel()},p.contactSearch=function(e){if(s&&s.ListId)return l.cmContact.get({ListId:s.ListId,nolimit:!0,filter:e,fields:"firstName,lastName,mobile"}).$promise.then(function(e){return e.rows});return[]},p.transformContact=function(e){var n=e;if(_.isObject(n))return e.mobile;if(t=n,/^(\+|\d)[0-9]{7,16}$/.test(t))return n;var t;return d.error("Mobile "+n+" is not valid"),null},r){case"note":p.note()}}e.$inject=["$cookies","$timeout","$window","$mdDialog","$mdConstant","account","message","type","api","toasty","$q","$translate","Auth"],angular.module("app.dashboards").controller("ComposeChatInteractionDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this,m=25,u=1024*m*1024;c.separatorKeys=[a.KEY_CODE.ENTER,a.KEY_CODE.COMMA,a.KEY_CODE.TAB],c.message={from:i.localstationid,to:_.isNil(s.to)||_.isEmpty(s.to)?[]:s.to,attachments:[]},c.ngFlowOptions={target:"api/attachments",singleFile:!0,maxChunkRetries:1,chunkSize:u,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},c.ngFlow={flow:{}},c.send=function(e){1===c.message.attachments.length?c.message.to.length?(s.draft=void 0,t.hide({from:c.message.from,to:c.message.to,attach:c.message.attachments.length,attachments:c.message.attachments})):l.error("To is mandatory"):l.error("Attachment is mandatory")},c.upload=function(){c.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},c.ngFlow.flow.upload()},c.fileSuccess=function(e,n){try{(n=JSON.parse(n)).size=e.size,c.message.attachments.push(n)}catch(e){console.error(e)}},c.fileAdded=function(e){var n=["pdf","tif"];if(!_.includes(n,e.getExtension()))return l.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extensions: "+n.join()}),!1;if(e.size>u)return l.error({title:"File too big",msg:"The max allowed size is "+m+"MB"}),!1;return!0},c.getContact=function(e){var n="";e.firstName&&e.firstName!==e.fax&&(n+=e.firstName+" ");e.lastName&&e.lastName!==e.fax&&(n+=e.lastName+" ");return n+="<"+e.fax+">"},c.contactSearch=function(e){return i&&i.ListId?r.cmContact.get({ListId:i.ListId,nolimit:!0,filter:e,fields:"firstName,lastName,fax"}).$promise.then(function(e){return e.rows}):[]},c.transformContact=function(e){var n=e;if(_.isObject(e))return e.fax;if(t=n,!/[&\/\\#,()$~%.'":;*?<>{}\s\\|a-zA-Z\pS!òàùè…_§°çéì-]/.test(t))return n;var t;return l.error("Fax "+n+" is not valid"),null},c.closeDialog=function(){s.draft=c.message,t.cancel()}}e.$inject=["$cookies","$window","$mdDialog","$mdConstant","account","message","type","api","toasty","$q"],angular.module("app.dashboards").controller("ComposeFaxInteractionDialogController",e)}(),function(){"use strict";function e(n,e,i,t,a,s,o,r,l,d,c,m,u,p){var g=this,v=25,h=1024*v*1024;g.currentUser=m.getCurrentUser(),g.secret="note"===r,g.hiddenCC=!0,g.hiddenBCC=!0,g.verifySmtp=!0,g.errors=[],g.separatorKeys=[t.KEY_CODE.ENTER,t.KEY_CODE.COMMA,t.KEY_CODE.TAB],g.searchTextChange=function(n){var t=c.defer(),a=[];return l.cannedAnswer.get({filter:n,MailAccountId:s.id}).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:n}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.WhatsappAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),t.resolve(a)}).catch(function(e){t.reject(e)}),t.promise},g.selectedItemChange=function(n){if(n&&n.value&&g.ckEditorInstance)try{var e=_.template(n.value),t={user:g.currentUser,account:s,interaction:u,contact:u&&u.Contact?u.Contact:{}};g.ckEditorInstance.insertHtml(e(t))}catch(e){console.error(e),g.ckEditorInstance.insertHtml(n.value)}document.getElementById("html-area").focus(),g.selectedItem=null},g.onReadyEditor=function(e){try{g.ckEditorInstance=CKEDITOR.instances["html-area"]}catch(e){console.error("Unable to get Html Editor instance",e)}},_.templateSettings.interpolate=/{{([\s\S]+?)}}/g,g.fromTemplate=_.template("{{ name }} <{{ email }}>"),g.replyTemplate=_.template("On {{ date }}, at {{ time }}, {{ from }} wrote:"),g.forwardTemplate=_.template("Begin forwarded message:<br><br><strong>From:</strong> {{ from }}<br><strong>Subject:</strong> {{ subject }}<br><strong>Date:</strong> {{ date }}, at {{ time }}<br><strong>To:</strong> {{ to }}"),g.message={from:g.fromTemplate({name:s.name,email:s.email||s.Smtp.user}),to:[],cc:[],bcc:[],body:S(),type:r,attachments:[],showLastMessage:!0},g.draft=null,g.ckeditor={skin:"office2013",startupFocus:!0,language:"en",allowedContent:!0,extraPlugins:"font,colorbutton,autogrow,autoembed,autocorrect,googlethisterm,pastebase64",toolbarGroups:[{name:"styles",groups:["styles"]},{name:"clipboard",groups:["undo"]},{name:"colors",groups:["colors"]},{name:"basicstyles",groups:["basicstyles"]},{name:"paragraph",groups:["list","indent","align"]}],autoGrow_onStartup:!0,autoGrow_minHeight:g.secret?160:300,autoGrow_maxHeight:e.innerHeight-400,autocorrect_enabled:!0,disableNativeSpellChecker:!1,enterMode:CKEDITOR.ENTER_BR,font_defaultLabel:s.fontFamily?s.fontFamily.split(",")[0]:"Arial",fontSize_defaultLabel:s.fontSize||"12",removePlugins:"magicline"};for(var f=[],b=8;b<=72;b++)f.push(b+"/"+b+"pt");g.ckeditor.fontSize_sizes=f.join(";"),g.ngFlowOptions={target:"api/attachments",singleFile:!0,maxChunkRetries:1,chunkSize:h,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},g.ngFlow={flow:{}},g.reply=function(e){angular.isDefined(o)&&(g.message.type="reply",g.message.to="in"===o.direction?o.from.split(","):o.to.split(","),g.message.subject=_.startsWith(o.subject,"Re:")?o.subject:"Re: "+o.subject,g.message.inReplyTo=o.messageId,g.message.body=S(),g.message.attachments=[],e&&o.cc&&(g.hiddenCC=!1,g.message.cc=o.cc.split(",")),g.message.showLastMessage=!1)},g.newMail=function(){angular.isDefined(o)&&(g.message.type="new",g.message.to=o.to?o.to.split(","):[])},g.forward=function(){if(angular.isDefined(o)){if(g.message.type="forward",g.message.subject=_.startsWith(o.subject,"Fwd:")?o.subject:"Fwd: "+o.subject,g.message.body=S(),o.Attachments&&o.Attachments.length)for(var e=0;e<o.Attachments.length;e++)g.message.attachments.push(o.Attachments[e]);g.message.showLastMessage=!1}},g.editDraft=function(){g.isDraft=!0,angular.isDefined(o)&&(o.savedAsDraft=!1,g.message=angular.copy(o),_.isEmpty(g.message.cc)||(g.hiddenCC=!1),_.isEmpty(g.message.bcc)||(g.hiddenBCC=!1))},g.send=function(e,n,t){if(!A&&g.message.to&&g.message.body)if(g.message.to.length)if(_.isEmpty(g.message.subject)){var a=i.confirm({skipHide:!0}).title("Warning").textContent("This message has no subject. Are you sure you want to send it?").ariaLabel("Warning").targetEvent(e).ok("Send Anyway").cancel("Cancel");i.show(a).then(function(){E(n,t)})}else E(n,t);else d.error("To is mandatory");A=!1},g.note=function(){g.type="note",g.secret=!0,g.message.body='<div style="font-family:'+s.fontFamily+";font-size:"+s.fontSize+'pt"><p></p></div>'},g.addNote=function(){g.message.body&&i.hide({secret:!0,body:g.message.body,attach:g.message.attachments.length,attachments:g.message.attachments})},g.upload=function(e){g.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+n.get("motion.token")},g.ngFlow.flow.upload()},g.fileSuccess=function(e,n){try{(n=JSON.parse(n)).size=e.size,g.message.attachments.push(n)}catch(e){console.error(e)}},g.removeAttachment=function(e){g.message.attachments=_.reject(g.message.attachments,{id:e.id}),e.MailMessageId||l.attachment.delete({id:e.id}).$promise.catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.attachment.delete",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.fileAdded=function(e){if(e.size>h)return d.error({title:"File too big",msg:"The max allowed size is "+v+"MB"}),!1;return!0},g.getContact=function(e){var n="";e.firstName&&e.firstName!==e.email&&(n+=e.firstName+" ");e.lastName&&e.lastName!==e.email&&(n+=e.lastName+" ");return n+="<"+e.email+">"},g.contactSearch=function(e){return s&&s.ListId?l.cmContact.get({ListId:s.ListId,nolimit:!0,filter:e,fields:"firstName,lastName,email"}).$promise.then(function(e){return e.rows}):[]},g.transformContact=function(e,n){if(_.isObject(e))return(g.contact=e).email;if(_.isString(e)){if(y(e))return g.contact={email:e},e;for(var t=e.split(","),a=0;a<t.length;a+=1)y(t[a])?_.isArray(n)&&_.indexOf(n,t[a])<0&&n.push(t[a]):d.error("Email "+t[a]+" is not valid");return g.contact={email:e.split(",")[0]},null}return d.error("Email field is not valid"),null},g.saveDraft=function(){g.message.savedAsDraft=!0,g.draft=p.getByInteraction(u.id);var e={account:s,message:g.message,contact:g.contact,interaction:u};if(g.draft&&!g.isDraft){var n=i.confirm({skipHide:!0}).title(a.instant("DASHBOARDS.DRAFT_SAVE_WARNING_TITLE")).content(a.instant("DASHBOARDS.DRAFT_SAVE_WARNING_MESSAGE")).ariaLabel("Save draft").ok(a.instant("DASHBOARDS.OVERWRITE")).cancel(a.instant("DASHBOARDS.CANCEL"));i.show(n).then(function(){i.hide(e)})}else i.hide(e)},g.closeDialog=function(){i.cancel()},g.loadLastMessage=function(){g.message.body+=T(g.message.type)};var A=!(g.keyPress=function(e){13===e.keyCode&&(A=!0)});switch(r){case"reply":g.reply(!1);break;case"replyAll":g.reply(!0);break;case"forward":g.forward();break;case"draft":g.editDraft();break;case"new":g.newMail();break;case"note":g.note()}function E(e,n){var t={from:g.message.from,to:g.message.to.join(","),cc:g.message.cc.join(","),bcc:g.message.bcc.join(","),subject:g.message.subject,body:g.message.showLastMessage?g.message.body:g.message.body+T(g.message.type),inReplyTo:g.message.inReplyTo,attach:g.message.attachments.length,attachments:g.message.attachments,Interaction:{lastMsgDirection:"out",substatus:n},isDraft:g.isDraft};t.html='<div id="xm-mail-content">'+_.replace(t.body,'<div id="xm-mail-content"',"<div")+"</div>",e&&(t.Interaction.closed=!0),i.hide(t)}function y(e){return/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(e)}function S(){return'<div style="font-family:'+s.fontFamily+";font-size:"+s.fontSize+'pt">'+function(){if(_.isNil(s.template))return"";try{return _.template(s.template)({user:g.currentUser,account:s,interaction:u,contact:u&&u.Contact?u.Contact:{}})}catch(e){return console.error(e),""}}()+"</div>"}function T(e){var n='<div id="xm-mail-content"><blockquote type="cite">';switch(e){case"reply":case"replyAll":n+=g.replyTemplate({date:moment(o.createdAt).format("D MMM YYYY")||"",time:moment(o.createdAt).format("HH:mm")||"",from:_.escape(o.from)||""});break;case"forward":n+=g.forwardTemplate({date:moment(o.createdAt).format("D MMM YYYY")||"",time:moment(o.createdAt).format("HH:mm")||"",from:_.escape(o.from)||"",to:_.escape(o.to)||"",subject:_.escape(o.subject)||""})}var t,a,i=g.message.showLastMessage&&o.originalMessage?o.originalMessage.body:o.body;return n+="<br><br>",n+=(t=i?_.replace(i,'<div id="xm-mail-content"',"<div"):"",(a=t.match(/\<body[^>]*\>([^]*)\<\/body/m))?a[1]:t),n+="</blockquote></div>",e?n:""}l.mailSubstatus.get({nolimit:!0}).$promise.then(function(e){g.subStatuses=e||{count:0,rows:[]}}).catch(function(e){console.error(e)}),g.secret||l.mailAccount.verifySmtp({id:s.id}).$promise.catch(function(e){g.verifySmtp=!1,g.errors.push({message:e.data,type:e.status}),g.errors.push({message:"You can't reply or send an email. Please contact the administrator!",type:"500"})})}e.$inject=["$cookies","$window","$mdDialog","$mdConstant","$translate","account","message","type","api","toasty","$q","Auth","interaction","draftManager"],angular.module("app.dashboards").controller("ComposeMailInteractionDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;switch(p.currentUser=u.getCurrentUser(),p.errors=[],p.separatorKeys=[i.KEY_CODE.ENTER,i.KEY_CODE.COMMA,i.KEY_CODE.TAB],p.searchTextChange=function(n){var t=c.defer(),a=[];return l.cannedAnswer.get({filter:n,OpenchannelAccountId:s.id}).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:n}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.WhatsappAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),t.resolve(a)}).catch(function(e){t.reject(e)}),t.promise},p.selectedItemChange=function(n){if(n){try{_.templateSettings.interpolate=/{{([\s\S]+?)}}/g;var e=_.template(n.value),t={user:p.currentUser,account:s};p.message.body+=" "+e(t),p.ctrlMethods.setText(p.message.body)}catch(e){p.message.body+=" "+n.value,p.ctrlMethods.setText(p.message.body)}p.selectedItem=null}},p.note=function(){p.secret=!0},p.addNote=function(){p.message.body&&a.hide({secret:!0,body:p.message.body})},p.ctrlMethods={},p.message={from:s.phone,to:_.isNil(o.to)||_.isEmpty(o.to)?[]:o.to,body:""},p.send=function(e){p.message.to&&p.message.body&&(p.message.to.length?(n=p.message.body,a.hide({to:p.message.to.join(","),body:n})):d.error("To is mandatory"));var n},p.getContact=function(e){var n="";e.firstName&&e.firstName!==e[s.mapKey]&&(n+=e.firstName+" ");e.lastName&&e.lastName!==e[s.mapKey]&&(n+=e.lastName+" ");return n+="<"+e[s.mapKey]+">"},p.closeDialog=function(){a.cancel()},p.contactSearch=function(e){if(s&&s.ListId){var n="firstName,lastName,phone,mobile";return s.mapKey&&(n+=","+s.mapKey),l.cmContact.get({ListId:s.ListId,nolimit:!0,filter:e,fields:n}).$promise.then(function(e){return e.rows})}return[]},p.transformContact=function(e){var n=e;if(_.isObject(n))return e[s.mapKey];return n},r){case"note":p.note()}}e.$inject=["$cookies","$timeout","$window","$mdDialog","$mdConstant","account","message","type","api","toasty","$q","$translate","Auth"],angular.module("app.dashboards").controller("ComposeOpenchannelInteractionDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;switch(p.currentUser=u.getCurrentUser(),p.errors=[],p.separatorKeys=[i.KEY_CODE.ENTER,i.KEY_CODE.COMMA,i.KEY_CODE.TAB],p.searchTextChange=function(n){var t=c.defer(),a=[];return l.cannedAnswer.get({filter:n,SmsAccountId:s.id}).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:n}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.WhatsappAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),t.resolve(a)}).catch(function(e){t.reject(e)}),t.promise},p.selectedItemChange=function(n){if(n){try{_.templateSettings.interpolate=/{{([\s\S]+?)}}/g;var e=_.template(n.value),t={user:p.currentUser,account:s};p.message.body+=" "+e(t),p.ctrlMethods.setText(p.message.body)}catch(e){p.message.body+=" "+n.value,p.ctrlMethods.setText(p.message.body)}p.selectedItem=null}},p.note=function(){p.secret=!0},p.addNote=function(){p.message.body&&a.hide({secret:!0,body:p.message.body})},p.ctrlMethods={},p.message={from:s.phone,to:_.isNil(o.to)||_.isEmpty(o.to)?[]:o.to,body:""},p.send=function(e){p.message.to&&p.message.body&&(p.message.to.length?(n=p.message.body,a.hide({to:p.message.to.join(","),body:n})):d.error("To is mandatory"));var n},p.getContact=function(e){var n="";e.firstName&&e.firstName!==e.mobile&&(n+=e.firstName+" ");e.lastName&&e.lastName!==e.mobile&&(n+=e.lastName+" ");return n+="<"+e.mobile+">"},p.closeDialog=function(){a.cancel()},p.contactSearch=function(e){if(s&&s.ListId)return l.cmContact.get({ListId:s.ListId,nolimit:!0,filter:e,fields:"firstName,lastName,mobile"}).$promise.then(function(e){return e.rows});return[]},p.transformContact=function(e){var n=e;if(_.isObject(n))return e.mobile;if(t=n,/^(\+|\d)[0-9]{7,16}$/.test(t))return n;var t;return d.error("Mobile "+n+" is not valid"),null},r){case"note":p.note()}}e.$inject=["$cookies","$timeout","$window","$mdDialog","$mdConstant","account","message","type","api","toasty","$q","$translate","Auth"],angular.module("app.dashboards").controller("ComposeSmsInteractionDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;switch(p.currentUser=u.getCurrentUser(),p.errors=[],p.separatorKeys=[i.KEY_CODE.ENTER,i.KEY_CODE.COMMA,i.KEY_CODE.TAB],p.searchTextChange=function(n){var t=c.defer(),a=[];return l.cannedAnswer.get({filter:n,WhatsappAccountId:s.id}).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:n}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.WhatsappAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),t.resolve(a)}).catch(function(e){t.reject(e)}),t.promise},p.selectedItemChange=function(n){if(n){try{_.templateSettings.interpolate=/{{([\s\S]+?)}}/g;var e=_.template(n.value),t={user:p.currentUser,account:s};p.message.body+=" "+e(t),p.ctrlMethods.setText(p.message.body)}catch(e){p.message.body+=" "+n.value,p.ctrlMethods.setText(p.message.body)}p.selectedItem=null}},p.note=function(){p.secret=!0},p.addNote=function(){p.message.body&&a.hide({secret:!0,body:p.message.body})},p.ctrlMethods={},p.message={from:s.phone,to:_.isNil(o.to)||_.isEmpty(o.to)?[]:o.to,body:""},p.send=function(e){p.message.to&&p.message.body&&(p.message.to.length?(n=p.message.body,a.hide({to:p.message.to.join(","),body:n})):d.error("To is mandatory"));var n},p.getContact=function(e){var n="";e.firstName&&e.firstName!==e.mobile&&(n+=e.firstName+" ");e.lastName&&e.lastName!==e.mobile&&(n+=e.lastName+" ");return n+="<"+e.mobile+">"},p.closeDialog=function(){a.cancel()},p.contactSearch=function(e){if(s&&s.ListId)return l.cmContact.get({ListId:s.ListId,nolimit:!0,filter:e,fields:"firstName,lastName,mobile"}).$promise.then(function(e){return e.rows});return[]},p.transformContact=function(e){var n=e;if(_.isObject(n))return e.mobile;if(t=n,/^(\+|\d)[0-9]{7,16}$/.test(t))return n;var t;return d.error("Mobile "+n+" is not valid"),null},r){case"note":p.note()}}e.$inject=["$cookies","$timeout","$window","$mdDialog","$mdConstant","account","message","type","api","toasty","$q","$translate","Auth"],angular.module("app.dashboards").controller("ComposeWhatsappInteractionDialogController",e)}(),function(){"use strict";function e(n,t,a,e,i,s,o){var r=this;function l(e){n.hide(e)}r.errors=[],r.dispositions=[],r.interaction=angular.copy(e),r.interaction.disposition||(r.interaction.disposition=null),r.channel=i,r.apiRoute=r.channel+"Interaction",r.apiAccountRoute=r.channel+("chat"===r.channel?"Website":"Account"),r.accountProperty=_.capitalize(r.channel)+("chat"===r.channel?"Website":"Account")+"Id",r.firstLevelDisposition=null,r.mandatoryDisposition=!1,r.mandatoryDispositionPause="",r.wasUserInPause=s.voicePause||s.chatPause||s.mailPause||s.openchannelPause||s.faxPause,r.onInit=function(){var n=[],t={fields:"id,name,level,ParentId",sort:"name",nolimit:!0};t[r.accountProperty]=e[r.accountProperty],a[r.apiAccountRoute].get({id:e[r.accountProperty]}).$promise.then(function(e){return r.mandatoryDisposition=e.mandatoryDisposition,r.mandatoryDisposition&&(r.mandatoryDispositionPause=e.mandatoryDispositionPause.name),a.disposition.get(t).$promise}).then(function(e){return e.rows.length&&(n=_.concat(n,e.rows)),a.disposition.get({MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0}).$promise}).then(function(e){e.rows.length&&(n=_.concat(n,e.rows))}).catch(function(e){console.error(e)}).finally(function(){r.dispositions=_.orderBy(n,["name"],["asc"]),r.mandatoryDisposition&&!r.wasUserInPause&&a.user.pause({id:s.id,type:r.mandatoryDispositionPause||"DEFAULT PAUSE"}).$promise.then(function(e){}).catch(function(e){console.error(e)})})},r.onDispositionChange=function(e){"first"===e?(r.anySecondLevelDisposition=!!r.firstLevelDisposition&&_.some(r.dispositions,["ParentId",r.firstLevelDisposition.id]),r.firstLevelDisposition||(r.secondLevelDisposition=void 0)):"second"===e&&(r.anyThirdLevelDisposition=_.some(r.dispositions,["ParentId",r.secondLevelDisposition.id]))},r.clearDispositionSelection=function(e){"second"===e?(r.secondLevelDisposition=void 0,r.thirdLevelDisposition=void 0):"third"===e&&(r.thirdLevelDisposition=void 0)},r.saveDisposition=function(){r.errors=[],r.interaction.UserId=s.id,r.interaction.closed=!0,r.interaction.closeReason="agent",r.interaction.disposition=r.firstLevelDisposition?r.firstLevelDisposition.name:null,r.interaction.secondDisposition=r.secondLevelDisposition?r.secondLevelDisposition.name:void 0,r.interaction.thirdDisposition=r.thirdLevelDisposition?r.thirdLevelDisposition.name:void 0,a[r.apiRoute]?a[r.apiRoute].update(_.pick(r.interaction,["MailAccountId","FaxAccountId","SmsAccountId","WhatsappAccountId","ChatWebsiteId","OpenchannelAccountId","closed","closeReason","disposition","secondDisposition","thirdDisposition","id","note","UserId"])).$promise.then(function(e){r.interaction=e,"mail"===r.channel&&o.removeByInteraction(r.interaction.id),t.success({title:"Interaction properly closed!",msg:"Interaction has been closed!"})}).then(function(){l(!0)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.variable.update"}];for(var n=0;n<e.data.errors.length;n++)t.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.variable.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})}):l(!1)},r.closeDialog=l}e.$inject=["$mdDialog","toasty","api","interaction","channel","user","draftManager"],angular.module("app.dashboards").controller("DisposeInteractionDialogController",e)}(),function(){"use strict";function e(n,t,e,a,i,s){var o=this;function r(e){n.hide(e)}o.errors=[],o.tags=s,o.interaction=angular.copy(a),o.interaction.Tags=_.map(o.interaction.Tags,function(e){return{id:e.id,name:e.name,color:e.color}}),o.channel=i,o.autocompleteRequireMatch=!0,o.saveTag=function(){{if(o.errors=[],e[o.apiRoute])return e[o.apiRoute].addTags({id:o.interaction.id,ids:_.map(o.interaction.Tags,"id")}).$promise.then(function(){t.success({title:"Interaction properly tagged!",msg:"Interaction has been tagged!"}),a.Tags=o.interaction.Tags,r(!0)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)t.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.variable.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})});r(!1)}},o.closeDialog=r,o.apiRoute=o.channel+"Interaction"}e.$inject=["$mdDialog","toasty","api","interaction","channel","tags"],angular.module("app.dashboards").controller("TagInteractionDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r,l,d){var c=this;function m(e){n.hide(e)}c.channel=s.toLowerCase(),c.message=o,c.account=r,c.agents=l,c.queues=d,c.transfer={id:0,type:c.account.queueTransfer?"queue":"agent"},c.onTransfer=function(){m(!0),e(function(){var e="agent"===c.transfer.type?"agentNotify":c.channel+"QueueNotify";return a.rpc[e]({id:c.transfer.id,messageId:c.message.id,channel:c.channel}).$promise.then(function(){i.success({title:t.instant("DASHBOARDS.INFO"),msg:"queue"===c.transfer.type?t.instant("DASHBOARDS.NOTIFICATIONS.TRANSFER_QUEUE_EXECUTED"):t.instant("DASHBOARDS.NOTIFICATIONS.TRANSFER_AGENT_EXECUTED")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.rpc.notify"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.rpc.notify",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},5e3)},c.closeDialog=m}e.$inject=["$mdDialog","$timeout","$translate","api","toasty","channel","message","account","agents","queues"],angular.module("app.dashboards").controller("TransferMessageDialogController",e)}(),function(){"use strict";function e(i,m,s,e,u,o,r,t,n,a,l){var p=this;function d(){try{i.$parent.$parent.$parent.vm.updateLocalStorage()}catch(e){o.error({title:"ERROR UPDATE LOCAL TABS",msg:"Error updating locally stored tabs"})}}function c(t,e){var n,a,l=[],d=[],c=r.getCurrentUser();(n=c,a=m.defer(),p.project.sendUnpauseOnSubmit?u.user.unpause({id:n.id}).$promise.then(function(e){a.resolve()}).catch(function(e){console.log("err"),a.resolve()}):a.resolve(),a.promise).then(function(){return u.jscriptySessionReport.save({starttime:p.starttime,membername:p.call&&p.call.membername?p.call.membername:c.name,calleridname:p.call&&p.call.calleridname?p.call.calleridname:void 0,calleridnum:p.call&&p.call.calleridnum?p.call.calleridnum:void 0,queue:p.call&&p.call.queue?p.call.queue:void 0,uniqueid:p.call&&p.call.uniqueid?p.call.uniqueid:void 0,VoiceQueueId:p.call&&p.call["xmd-voicequeueid"]?p.call["xmd-voicequeueid"]:void 0,ProjectId:p.project&&p.project.id?p.project.id:void 0,projectname:p.project&&p.project.name?p.project.name:void 0,ContactId:p.contact&&p.contact.id?p.contact.id:void 0,completed:e}).$promise}).then(function(e){if(e)for(var n=p.getResponseSheetHeaders(),t=p.getResponseSheetRow(),a=p.getQuestionWithResponseList(),i=0;i<n.length;i+=1)if(!_.isEmpty(String(t[i]))){try{l.push(u.jscriptyQuestionReport.save({question:n[i],answer:"date"===a[i].type?moment(String(t[i])).format("YYYY-MM-DD"):"time"===a[i].type?moment(String(t[i])).format("HH:mm"):String(t[i]),questionId:a[i].id,membername:p.call&&p.call.membername?p.call.membername:c.name,calleridname:p.call&&p.call.calleridname?p.call.calleridname:void 0,calleridnum:p.call&&p.call.calleridnum?p.call.calleridnum:void 0,queue:p.call&&p.call.queue?p.call.queue:void 0,uniqueid:p.call&&p.call.uniqueid?p.call.uniqueid:void 0,SessionId:e.id,ProjectId:p.project.id,projectname:p.project.name}))}catch(e){console.error("Unable to convert question",e)}for(var s=String(t[i]).split(";"),o=0;o<s.length;o+=1){var r=s[o].trim();try{d.push(u.jscriptyAnswerReport.save({question:n[i],questionId:a[i].id,answer:"date"===a[i].type?moment(r).format("YYYY-MM-DD"):"time"===a[i].type?moment(r).format("HH:mm"):r,membername:p.call&&p.call.membername?p.call.membername:c.name,calleridname:p.call&&p.call.calleridname?p.call.calleridname:void 0,calleridnum:p.call&&p.call.calleridnum?p.call.calleridnum:void 0,queue:p.call&&p.call.queue?p.call.queue:void 0,uniqueid:p.call&&p.call.uniqueid?p.call.uniqueid:void 0,SessionId:e.id,ProjectId:p.project.id,projectname:p.project.name}))}catch(e){console.error("Unable to convert answer",e)}}}return m.all(l).then(function(){return m.all(d).then(function(){return e})})}).then(function(e){e?t.resolve(!0):t.reject()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.save",msg:e.data?JSON.stringify(e.data.message):e.toString()});t.reject()})}p.formViewer={},p.showResetButton=!0,p.showIncompleteSubmitButton=!1,p.detectBrowser=l.detectBrowser(),p.onSubmit=function(e,n){var t=m.defer();if(n){var a=s.confirm().title("Would you like to save your survey?").textContent("").ariaLabel("survey").targetEvent(e).ok("YES").cancel("NO");s.show(a).then(function(){c(t,!1)},function(){t.resolve()})}else c(t,!0);return t.promise.then(function(e){e&&(o.success({title:"Session saved",msg:"Your survey session has been properly saved!"}),function(e){try{i.$parent.$parent.$parent.vm.removeTab(e)}catch(e){o.error({title:"ERROR REMOVE TAB",msg:"Error while removing tab"})}}(p.tab))}).catch(function(e){o.error({title:"Session save error",msg:"There has been an error while trying to save your survey session!"})})},p.openContact=function(e,n){try{i.$parent.$parent.$parent.vm.addContactTab(n)}catch(e){o.error({title:"ERROR OPEN CONTACT",msg:"Jscripty can't open the contact"})}},p.isJsonString=function(e){if(_.isNil(e))return!1;try{JSON.parse(e)}catch(e){return!1}return!0},p.getResponseSheet=function(){return e.getResponseSheet(p.project.formData,p.project.responseData,!1)},p.getResponseSheetRow=function(){return e.getResponseSheetRow(p.project.formData,p.project.responseData)},p.getResponseSheetHeaders=function(){return e.getResponseSheetHeaders(p.project.formData,!1)},p.getQuestionWithResponseList=function(){return e.getQuestionWithResponseList(p.project.formData,p.project.responseData)},p.init=function(e){p.tab=e,p.tab&&(p.call=p.tab.call,p.starttime=p.tab.openedAt,p.contact=p.tab.contact,p.project=p.tab.project,p.project&&(_.isObjectLike(p.project.formData)?p.project.formData=p.project.formData:p.isJsonString(p.project.formData)?p.project.formData=JSON.parse(p.project.formData):p.project.formData=void 0,p.project.responseData=p.project.responseData||{},void 0!==p.project.currentPage&&a(function(){n.$broadcast("mwForm.pageEvents.changePage",{page:p.project.currentPage})}),i.$on("mwForm.pageEvents.pageCurrentChanged",function(e,n){if(n.currentPage&&(p.project.currentPage=n.currentPage.number-1,d(),p.project.enableUncompleteSave&&(1<=n.currentPage.number&&n.currentPage.number<p.project.formData.pages.length?p.showIncompleteSubmitButton=!0:p.showIncompleteSubmitButton=!1),p.project.formData&&p.project.formData.pages))for(var t=0,a=p.project.formData.pages.length;t<a;t++)if(n.currentPage.number<t+1&&p.project.formData.pages[t].elements)for(var i=0,s=p.project.formData.pages[t].elements.length;i<s;i++)"question"===p.project.formData.pages[t].elements[i].type&&p.project.formData.pages[t].elements[i].question&&delete p.project.responseData[p.project.formData.pages[t].elements[i].question.id]})))},p.resetViewer=function(e){if(p.formViewer.reset){var n=s.confirm().title(t.instant("JSCRIPTY.DO_YOU_WANT_TO_RESET_SESSION")).content(t.instant("JSCRIPTY.ALL_SURVEY_DATA_WILL_BE_LOST")).textContent("").ariaLabel("survey").targetEvent(e).ok(t.instant("JSCRIPTY.YES")).cancel(t.instant("JSCRIPTY.NO"));s.show(n).then(function(){p.showIncompleteSubmitButton=!1,p.project.currentPage=void 0,d(),p.formViewer.reset()})}}}e.$inject=["$scope","$q","$mdDialog","mwFormResponseUtils","api","toasty","Auth","$translate","$rootScope","$timeout","msUtils"],angular.module("app.dashboards").controller("AgentGeneralJscriptyController",e)}(),function(){"use strict";function e(t,a,e,n,i){var s=this;function o(){return function(e){if(404===e.status)a.info({title:t.instant("DASHBOARDS.ATTENTION"),msg:t.instant("DASHBOARDS.ACCEPT_ELSEWHERE")});else if(e.data&&e.data.errors&&e.data.errors.length){s.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelMessage.accept"}];for(var n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelMessage.accept",msg:e.data?JSON.stringify(e.data.message):e.toString()})}}s.notification=e,s.user=i.getCurrentUser(),s.accept=function(e){{if(n[s.notification.channel+"Message"])return n[s.notification.channel+"Message"].accept({id:s.notification.id,UserId:s.user.id,manual:!0}).$promise.then(function(e){a.success({title:"Message properly accepted!",msg:"Message has been accepted!"})}).catch(o());a.error({title:"API:ERROR",msg:"API accept message not found: "+s.notification.channel+"Message"})}},s.reject=function(e){{if(n[s.notification.channel+"Message"])return n[s.notification.channel+"Message"].reject({id:s.notification.id,UserId:s.user.id}).$promise.then(function(e){a.success({title:"Message properly rejected!",msg:"Message has been rejected!"})}).catch(o());a.error({title:"API:ERROR",msg:"API reject message not found: "+s.notification.channel+"Message"})}}}e.$inject=["$translate","toasty","notification","api","Auth"],angular.module("app.dashboards").controller("NotificationController",e)}(),function(){"use strict";angular.module("app.dashboards").controller("AgentGeneralPopupController",function(){var n=this;n.init=function(e){n.tab=e,n.tab&&(n.tab.saved=!0,n.html=n.tab.html)}})}(),function(){"use strict";function e(e,n,t,a){var i=this,s=[];function o(e,n){e.closed||e.UserId||!n||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(s,e.id)||(i.inbound.talking+=1,s.push(e.id),!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),e.closed&&"abandoned"===e.disposition?(i.inbound.abandoned+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)):e.closed&&!e.UserId&&e.disposition?(i.inbound.unmanaged+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)):e.closed&&e.UserId&&(i.inbound.sumBillable+=moment(e.closedAt).diff(moment(e.read1stAt),i.config.unit),i.inbound.sumHoldTime+=moment(e.read1stAt).diff(moment(e.createdAt),i.config.unit),i.inbound.answered+=1,!n&&i.inbound.talking&&(i.inbound.talking-=1)),n&&(i.inbound.total+=1)}function r(){i.inbound.abandonRate=Math.round((i.inbound.abandoned+i.inbound.unmanaged)/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.answerRate=Math.round(i.inbound.answered/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.avgHoldTime=moment.duration(Math.round(i.inbound.sumHoldTime/i.inbound.answered),i.config.unit).format(i.config.format,i.config),i.inbound.avgTalkTime=moment.duration(Math.round(i.inbound.sumBillable/i.inbound.answered),i.config.unit).format(i.config.format,i.config)}function l(e){return!!_.some(i.chatWebsites,{id:_.toNumber(e.ChatWebsiteId)})}function d(e){var n=moment().utcOffset(0,!0).startOf("day"),t=moment().utcOffset(0,!0).endOf("day");return moment(e).utcOffset(0,!0).isBetween(n,t)}i.config={format:"hh:mm:ss",unit:"seconds",trim:!1},i.inbound={waiting:0,talking:0,answered:0,abandoned:0,unmanaged:0,sumHoldTime:0,sumBillable:0,total:0,avgHoldTime:"00:00:00",avgTalkTime:"00:00:00",answerRate:0,abandonRate:0},i.chatWebsites=a?_.keyBy(a.rows?a.rows:[],"id"):{},i.onSaveChatInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!0),r())},i.onUpdateChatInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!1),r())},n.on("chatInteraction:save",i.onSaveChatInteraction),n.on("chatInteraction:update",i.onUpdateChatInteraction),function(){if(0<Object.keys(i.chatWebsites).length)for(var e=0;e<t.rows.length;e+=1)if(l(t.rows[e])){var n=t.rows[e];o(n,!0),r()}}(),e.$on("$destroy",function(){n.removeAllListeners("chatInteraction:save"),n.removeAllListeners("chatInteraction:update")})}e.$inject=["$scope","socket","chatInteractions","chatWebsites"],angular.module("app.dashboards").controller("UserChatDashboardGeneralController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r){var l=this;function d(){s({queues:l.outboundQueues,rpcQueues:l.rpcQueues}).then(function(e){l.inbound=e})}function c(){o({rpcCampaigns:l.rpcCampaigns}).then(function(e){l.ivr=e})}l.outboundQueues=a?_.keyBy(a.rows?a.rows:[],"id"):{},l.rpcQueues=i?_.keyBy(i.rows?i.rows:[],"id"):{},l.rpcCampaigns=r?_.keyBy(r.rows?r.rows:[],"id"):{},l.ivr={originated:0,limitCalls:0},l.inbound={waiting:0,talking:0,pTalking:0,answered:0,abandoned:0,unmanaged:0,sumHoldTime:0,sumBillable:0,total:0,avgHoldTime:"00:00:00",avgTalkTime:"00:00:00",answerRate:0,abandonRate:0,outboundDropCallsDayCallersExit:0,outboundDropCallsDayTimeout:0},l.onSaveQueue=function(e){l.outboundQueues[e.id]&&l.rpcQueues[e.id]&&(l.rpcQueues[e.id]=e)},l.onSaveCampaign=function(e){l.rpcCampaigns[e.id]&&(l.rpcCampaigns[e.id]=e)},t.onWithoutApply("voice_queue:save",l.onSaveQueue),l.interval=n(function(){d(),c()},999),t.onWithoutApply("campaign:save",l.onSaveCampaign),d(),c(),e.$on("$destroy",function(){t.removeListener("voice_queue:save",l.onSaveQueue),t.removeAllListeners("campaign:save"),l.interval&&n.cancel(l.interval)})}e.$inject=["$scope","$interval","socket","outboundQueues","rpcQueues","initializeRealtimeQueue","initializeRealtimeCampaign","rpcCampaigns"],angular.module("app.dashboards").controller("UserVoiceDashboardDialerController",e)}(),function(){"use strict";function e(e,n,t,a){var i=this,s=[];function o(e,n){e.closed||e.UserId||!n||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(s,e.id)||(i.inbound.talking+=1,s.push(e.id),!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),e.closed&&e.UserId&&(i.inbound.sumBillable+=moment(e.closedAt).diff(moment(e.read1stAt),i.config.unit),i.inbound.sumHoldTime+=moment(e.read1stAt).diff(moment(e.createdAt),i.config.unit),i.inbound.answered+=1,!n&&i.inbound.talking&&(i.inbound.talking-=1)),e.closed&&!e.UserId&&(i.inbound.unmanaged+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),n&&(i.inbound.total+=1)}function r(){i.inbound.abandonRate=Math.round((i.inbound.abandoned+i.inbound.unmanaged)/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.answerRate=Math.round(i.inbound.answered/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.avgHoldTime=moment.duration(Math.round(i.inbound.sumHoldTime/i.inbound.answered),i.config.unit).format(i.config.format,i.config),i.inbound.avgTalkTime=moment.duration(Math.round(i.inbound.sumBillable/i.inbound.answered),i.config.unit).format(i.config.format,i.config)}function l(e){return!!_.some(i.faxAccounts,{id:_.toNumber(e.FaxAccountId)})}function d(e){var n=moment().utcOffset(0,!0).startOf("day"),t=moment().utcOffset(0,!0).endOf("day");return moment(e).utcOffset(0,!0).isBetween(n,t)}i.config={format:"hh:mm:ss",unit:"seconds",trim:!1},i.inbound={waiting:0,talking:0,answered:0,abandoned:0,unmanaged:0,sumHoldTime:0,sumBillable:0,total:0,avgHoldTime:"00:00:00",avgTalkTime:"00:00:00",answerRate:0,abandonRate:0},i.faxAccounts=a?_.keyBy(a.rows?a.rows:[],"id"):{},i.onSaveFaxInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!0),r())},i.onUpdateFaxInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!1),r())},n.on("faxInteraction:save",i.onSaveFaxInteraction),n.on("faxInteraction:update",i.onUpdateFaxInteraction),function(){if(0<Object.keys(i.faxAccounts).length)for(var e=0;e<t.rows.length;e+=1)if(l(t.rows[e])){var n=t.rows[e];o(n,!0),r()}}(),e.$on("$destroy",function(){n.removeAllListeners("faxInteraction:save"),n.removeAllListeners("faxInteraction:update")})}e.$inject=["$scope","socket","faxInteractions","faxAccounts"],angular.module("app.dashboards").controller("UserFaxDashboardGeneralController",e)}(),function(){"use strict";function e(e,n,t,a){var i=this,s=[];function o(e,n){e.closed||e.UserId||!n||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(s,e.id)||(i.inbound.talking+=1,s.push(e.id),!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),e.closed&&e.UserId&&(i.inbound.sumBillable+=moment(e.closedAt).diff(moment(e.read1stAt),i.config.unit),i.inbound.sumHoldTime+=moment(e.read1stAt).diff(moment(e.createdAt),i.config.unit),i.inbound.answered+=1,!n&&i.inbound.talking&&(i.inbound.talking-=1)),e.closed&&!e.UserId&&(i.inbound.unmanaged+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),n&&(i.inbound.total+=1)}function r(){i.inbound.abandonRate=Math.round((i.inbound.abandoned+i.inbound.unmanaged)/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.answerRate=Math.round(i.inbound.answered/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.avgHoldTime=moment.duration(Math.round(i.inbound.sumHoldTime/i.inbound.answered),i.config.unit).format(i.config.format,i.config),i.inbound.avgTalkTime=moment.duration(Math.round(i.inbound.sumBillable/i.inbound.answered),i.config.unit).format(i.config.format,i.config)}function l(e){return!!_.some(i.mailAccounts,{id:_.toNumber(e.MailAccountId)})}function d(e){var n=moment().utcOffset(0,!0).startOf("day"),t=moment().utcOffset(0,!0).endOf("day");return moment(e).utcOffset(0,!0).isBetween(n,t)}i.config={format:"hh:mm:ss",unit:"seconds",trim:!1},i.inbound={waiting:0,talking:0,answered:0,abandoned:0,unmanaged:0,sumHoldTime:0,sumBillable:0,total:0,avgHoldTime:"00:00:00",avgTalkTime:"00:00:00",answerRate:0,abandonRate:0},i.mailAccounts=a?_.keyBy(a.rows?a.rows:[],"id"):{},i.onSaveMailInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!0),r())},i.onUpdateMailInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!1),r())},n.on("mailInteraction:save",i.onSaveMailInteraction),n.on("mailInteraction:update",i.onUpdateMailInteraction),function(){if(0<Object.keys(i.mailAccounts).length)for(var e=0;e<t.rows.length;e+=1)if(l(t.rows[e])){var n=t.rows[e];o(n,!0),r()}}(),e.$on("$destroy",function(){n.removeAllListeners("mailInteraction:save"),n.removeAllListeners("mailInteraction:update")})}e.$inject=["$scope","socket","mailInteractions","mailAccounts"],angular.module("app.dashboards").controller("UserMailDashboardGeneralController",e)}(),function(){"use strict";function e(e,n,t,a){var i=this,s=[];function o(e,n){e.closed||e.UserId||!n||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(s,e.id)||(i.inbound.talking+=1,s.push(e.id),!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),e.closed&&e.UserId&&(i.inbound.sumBillable+=moment(e.closedAt).diff(moment(e.read1stAt),i.config.unit),i.inbound.sumHoldTime+=moment(e.read1stAt).diff(moment(e.createdAt),i.config.unit),i.inbound.answered+=1,!n&&i.inbound.talking&&(i.inbound.talking-=1)),e.closed&&!e.UserId&&(i.inbound.unmanaged+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),n&&(i.inbound.total+=1)}function r(){i.inbound.abandonRate=Math.round((i.inbound.abandoned+i.inbound.unmanaged)/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.answerRate=Math.round(i.inbound.answered/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.avgHoldTime=moment.duration(Math.round(i.inbound.sumHoldTime/i.inbound.answered),i.config.unit).format(i.config.format,i.config),i.inbound.avgTalkTime=moment.duration(Math.round(i.inbound.sumBillable/i.inbound.answered),i.config.unit).format(i.config.format,i.config)}function l(e){return!!_.some(i.openchannelAccounts,{id:_.toNumber(e.OpenchannelAccountId)})}function d(e){var n=moment().utcOffset(0,!0).startOf("day"),t=moment().utcOffset(0,!0).endOf("day");return moment(e).utcOffset(0,!0).isBetween(n,t)}i.config={format:"hh:mm:ss",unit:"seconds",trim:!1},i.inbound={waiting:0,talking:0,answered:0,abandoned:0,unmanaged:0,sumHoldTime:0,sumBillable:0,total:0,avgHoldTime:"00:00:00",avgTalkTime:"00:00:00",answerRate:0,abandonRate:0},i.openchannelAccounts=a?_.keyBy(a.rows?a.rows:[],"id"):{},i.onSaveOpenchannelInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!0),r())},i.onUpdateOpenchannelInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!1),r())},n.on("openchannelInteraction:save",i.onSaveOpenchannelInteraction),n.on("openchannelInteraction:update",i.onUpdateOpenchannelInteraction),function(){if(0<Object.keys(i.openchannelAccounts).length)for(var e=0;e<t.rows.length;e+=1)if(l(t.rows[e])){var n=t.rows[e];o(n,!0),r()}}(),e.$on("$destroy",function(){n.removeAllListeners("openchannelInteraction:save"),n.removeAllListeners("openchannelInteraction:update")})}e.$inject=["$scope","socket","openchannelInteractions","openchannelAccounts"],angular.module("app.dashboards").controller("UserOpenchannelDashboardGeneralController",e)}(),function(){"use strict";function e(e,n,t,a){var i=this,s=[];function o(e,n){e.closed||e.UserId||!n||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(s,e.id)||(i.inbound.talking+=1,s.push(e.id),!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),e.closed&&e.UserId&&(i.inbound.sumBillable+=moment(e.closedAt).diff(moment(e.read1stAt),i.config.unit),i.inbound.sumHoldTime+=moment(e.read1stAt).diff(moment(e.createdAt),i.config.unit),i.inbound.answered+=1,!n&&i.inbound.talking&&(i.inbound.talking-=1)),e.closed&&!e.UserId&&(i.inbound.unmanaged+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),n&&(i.inbound.total+=1)}function r(){i.inbound.abandonRate=Math.round((i.inbound.abandoned+i.inbound.unmanaged)/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.answerRate=Math.round(i.inbound.answered/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.avgHoldTime=moment.duration(Math.round(i.inbound.sumHoldTime/i.inbound.answered),i.config.unit).format(i.config.format,i.config),i.inbound.avgTalkTime=moment.duration(Math.round(i.inbound.sumBillable/i.inbound.answered),i.config.unit).format(i.config.format,i.config)}function l(e){return!!_.some(i.smsAccounts,{id:_.toNumber(e.SmsAccountId)})}function d(e){var n=moment().utcOffset(0,!0).startOf("day"),t=moment().utcOffset(0,!0).endOf("day");return moment(e).utcOffset(0,!0).isBetween(n,t)}i.config={format:"hh:mm:ss",unit:"seconds",trim:!1},i.inbound={waiting:0,talking:0,answered:0,abandoned:0,unmanaged:0,sumHoldTime:0,sumBillable:0,total:0,avgHoldTime:"00:00:00",avgTalkTime:"00:00:00",answerRate:0,abandonRate:0},i.smsAccounts=a?_.keyBy(a.rows?a.rows:[],"id"):{},i.onSaveSmsInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!0),r())},i.onUpdateSmsInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!1),r())},n.on("smsInteraction:save",i.onSaveSmsInteraction),n.on("smsInteraction:update",i.onUpdateSmsInteraction),function(){if(0<Object.keys(i.smsAccounts).length)for(var e=0;e<t.rows.length;e+=1)if(l(t.rows[e])){var n=t.rows[e];o(n,!0),r()}}(),e.$on("$destroy",function(){n.removeAllListeners("smsInteraction:save"),n.removeAllListeners("smsInteraction:update")})}e.$inject=["$scope","socket","smsInteractions","smsAccounts"],angular.module("app.dashboards").controller("UserSmsDashboardGeneralController",e)}(),function(){"use strict";function e(t){var i=[],s=function(){var t=i[0],a={waiting:0,talking:0,pTalking:0,answered:0,abandoned:0,unmanaged:0,sumHoldTime:0,sumBillable:0,total:0,avgHoldTime:"00:00:00",avgTalkTime:"00:00:00",answerRate:0,abandonRate:0,originated:0,outboundDropCallsDayCallersExit:0,outboundDropCallsDayTimeout:0};_.forIn(t.queues,function(e,n){t.rpcQueues[n]&&(a.waiting+=t.rpcQueues[n].waiting||0,a.talking+=(t.rpcQueues[n].talking||0)+(t.rpcQueues[n].pTalking||0),a.answered+=t.rpcQueues[n].answered||0,a.abandoned+=t.rpcQueues[n].abandoned||0,a.sumHoldTime+=t.rpcQueues[n].sumHoldTime||0,a.sumBillable+=t.rpcQueues[n].sumBillable||0,a.total+=t.rpcQueues[n].total||0,a.originated+=t.rpcQueues[n].originated||0,a.outboundDropCallsDayCallersExit+=t.rpcQueues[n].outboundDropCallsDayCallersExit||0,a.outboundDropCallsDayTimeout+=t.rpcQueues[n].outboundDropCallsDayTimeout||0)});var e=a.total-a.answered-a.abandoned;a.unmanaged=0<e?e:0,a.avgHoldTime=Math.round(0<a.total?a.sumHoldTime/a.total:0),a.avgHoldTime=new Date(1e3*a.avgHoldTime).toISOString().substr(11,8),a.avgTalkTime=Math.round(0<a.answered?a.sumBillable/a.answered:0),a.avgTalkTime=new Date(1e3*a.avgTalkTime).toISOString().substr(11,8),a.answerRate=Math.round((0<a.total?a.answered/a.total*100:0)*Math.pow(10,1))/Math.pow(10,1),a.abandonRate=Math.round((0<a.total?a.abandoned/a.total*100:0)*Math.pow(10,1))/Math.pow(10,1),a.outboundDropRate=Math.round((0<a.total?a.outboundDropCallsDayTimeout/a.total*100:0)*Math.pow(10,1))/Math.pow(10,1),a.outboundAbandonRate=Math.round((0<a.total?a.outboundDropCallsDayCallersExit/a.total*100:0)*Math.pow(10,1))/Math.pow(10,1),a.outboundanswerRate=0<100-a.outboundDropRate-a.outboundAbandonRate&&a.total?100-a.outboundDropRate-a.outboundAbandonRate:0,i.shift(),t.defer.resolve(a),0<i.length&&s()};return function(e){var n=t.defer();return i.push({queues:e.queues,rpcQueues:e.rpcQueues,defer:n}),1===i.length&&s(),n.promise}}function n(t){var i=[],s=function(){var t=i[0],a={originated:0,limitCalls:0};_.forIn(t.rpcCampaigns,function(e,n){t.rpcCampaigns[n]&&(a.originated+=t.rpcCampaigns[n].originated||0,a.limitCalls+=t.rpcCampaigns[n].limitCalls||0)}),i.shift(),t.defer.resolve(a),0<i.length&&s()};return function(e){var n=t.defer();return i.push({rpcCampaigns:e.rpcCampaigns,defer:n}),1===i.length&&s(),n.promise}}function t(t,a,e){var i=this;i.license=e,i.onInit=function(){if(i.hasDashboardPermissions=!a.hasRole("user")||a.hasPermission(101),i.hasDashboardPermissions){var e=t.current.name;switch(e){case"app.dashboards.general":n=[],i.license.voice&&n.push("app.dashboards.general.voice"),i.license.dialer&&n.push("app.dashboards.general.dialer"),i.license.chat&&n.push("app.dashboards.general.chat"),i.license.mail&&n.push("app.dashboards.general.mail"),i.license.messaging&&n.push("app.dashboards.general.sms"),i.license.openchannel&&n.push("app.dashboards.general.openchannel"),i.license.fax&&n.push("app.dashboards.general.fax"),i.license.whatsapp&&n.push("app.dashboards.general.whatsapp"),0<n.length&&t.go(_.first(n));break;case"app.dashboards.general.voice":i.selectedTab=0;break;case"app.dashboards.general.dialer":i.selectedTab=1;break;case"app.dashboards.general.chat":i.selectedTab=2;break;case"app.dashboards.general.mail":i.selectedTab=3;break;case"app.dashboards.general.sms":i.selectedTab=4;break;case"app.dashboards.general.openchannel":i.selectedTab=5;break;case"app.dashboards.general.fax":i.selectedTab=6;break;case"app.dashboards.general.whatsapp":i.selectedTab=7}}var n}}e.$inject=["$q"],n.$inject=["$q"],t.$inject=["$state","Auth","license"],angular.module("app.dashboards").factory("initializeRealtimeQueue",e).factory("initializeRealtimeCampaign",n).controller("UserDashboardGeneralController",t)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this;function r(){s({queues:o.inboundQueues,rpcQueues:o.rpcQueues}).then(function(e){o.inbound=e})}o.inboundQueues=t?_.keyBy(t.rows?t.rows:[],"id"):{},o.rpcQueues=a?_.keyBy(a.rows?a.rows:[],"id"):{},o.inbound={waiting:0,talking:0,answered:0,abandoned:0,unmanaged:0,sumHoldTime:0,sumBillable:0,total:0,avgHoldTime:"00:00:00",avgTalkTime:"00:00:00",answerRate:0,abandonRate:0},o.outbound=i||{answered:0,sumBillable:0,sumDuration:0,sumHoldTime:0,total:0},o.onSaveQueue=function(e){o.inboundQueues[e.id]&&o.rpcQueues[e.id]&&(o.rpcQueues[e.id]=e,r())},o.onSaveOutbound=function(e){o.outbound=e},n.on("voice_queue:save",o.onSaveQueue),n.on("voice_outbound:save",o.onSaveOutbound),r(),e.$on("$destroy",function(){n.removeListener("voice_queue:save",o.onSaveQueue),n.removeAllListeners("voice_outbound:save")})}e.$inject=["$scope","socket","inboundQueues","rpcQueues","outbound","initializeRealtimeQueue"],angular.module("app.dashboards").controller("UserVoiceDashboardGeneralController",e)}(),function(){"use strict";function e(e,n,t,a){var i=this,s=[];function o(e,n){e.closed||e.UserId||!n||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(s,e.id)||(i.inbound.talking+=1,s.push(e.id),!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),e.closed&&e.UserId&&(i.inbound.sumBillable+=moment(e.closedAt).diff(moment(e.read1stAt),i.config.unit),i.inbound.sumHoldTime+=moment(e.read1stAt).diff(moment(e.createdAt),i.config.unit),i.inbound.answered+=1,!n&&i.inbound.talking&&(i.inbound.talking-=1)),e.closed&&!e.UserId&&(i.inbound.unmanaged+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),n&&(i.inbound.total+=1)}function r(){i.inbound.abandonRate=Math.round((i.inbound.abandoned+i.inbound.unmanaged)/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.answerRate=Math.round(i.inbound.answered/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.avgHoldTime=moment.duration(Math.round(i.inbound.sumHoldTime/i.inbound.answered),i.config.unit).format(i.config.format,i.config),i.inbound.avgTalkTime=moment.duration(Math.round(i.inbound.sumBillable/i.inbound.answered),i.config.unit).format(i.config.format,i.config)}function l(e){return!!_.some(i.whatsappAccounts,{id:_.toNumber(e.WhatsappAccountId)})}function d(e){var n=moment().utcOffset(0,!0).startOf("day"),t=moment().utcOffset(0,!0).endOf("day");return moment(e).utcOffset(0,!0).isBetween(n,t)}i.config={format:"hh:mm:ss",unit:"seconds",trim:!1},i.inbound={waiting:0,talking:0,answered:0,abandoned:0,unmanaged:0,sumHoldTime:0,sumBillable:0,total:0,avgHoldTime:"00:00:00",avgTalkTime:"00:00:00",answerRate:0,abandonRate:0},i.whatsappAccounts=a?_.keyBy(a.rows?a.rows:[],"id"):{},i.onSaveWhatsappInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!0),r())},i.onUpdateWhatsappInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!1),r())},n.on("whatsappInteraction:save",i.onSaveWhatsappInteraction),n.on("whatsappInteraction:update",i.onUpdateWhatsappInteraction),function(){if(0<Object.keys(i.whatsappAccounts).length)for(var e=0;e<t.rows.length;e+=1)if(l(t.rows[e])){var n=t.rows[e];o(n,!0),r()}}(),e.$on("$destroy",function(){n.removeAllListeners("whatsappInteraction:save"),n.removeAllListeners("whatsappInteraction:update")})}e.$inject=["$scope","socket","whatsappInteractions","whatsappAccounts"],angular.module("app.dashboards").controller("UserWhatsappDashboardGeneralController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="FAX.EDIT_FAXACCOUNT",g.faxAccount=angular.copy(l),g.faxAccounts=r,g.newFaxAccount=!1,g.faxAccount||(g.faxAccount={waitForTheAssignedAgent:10,notificationSound:!0,queueTransferTimeout:300,agentTransferTimeout:300},g.title="FAX.NEW_FAXACCOUNT",g.newFaxAccount=!0),n.params.id&&(g.faxAccount.FaxAccountId=n.params.id),g.addNewFaxAccount=function(){g.errors=[],d.faxAccount.addAccountApplications(g.faxAccount).$promise.then(function(e){g.faxAccounts.unshift(e.toJSON()),o.success({title:"FaxAccount properly created",msg:g.faxAccount.name?g.faxAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.faxAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveFaxAccount=function(){g.errors=[],d.faxAccount.updateAccountApplications(g.faxAccount).$promise.then(function(e){var n=_.find(g.faxAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"FaxAccount properly saved!",msg:g.faxAccount.name?g.faxAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.faxAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteFaxAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The faxAccount will be deleted.").ariaLabel("Delete FaxAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.faxAccount.delete({id:g.faxAccount.id}).$promise.then(function(){_.remove(g.faxAccounts,{id:g.faxAccount.id}),o.success({title:"FaxAccount properly deleted!",msg:(g.faxAccount.name||"faxAccount")+" has been deleted!"}),v(g.faxAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.faxAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.trunks=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.trunks=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.trunks,{id:e.resourceId})}),t=null;if(g.faxAccount&&(t=_.find(g.trunks,{id:Number(g.faxAccount.TrunkId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.trunks,{id:t.id});a.canSelect=!1,n.push(a)}g.trunks=n})}else{var t=[],a=null;g.faxAccount&&(a=_.find(g.trunks,{id:Number(g.faxAccount.TrunkId)}));for(var i=0;i<g.trunks.length;i++)a&&g.trunks[i].id===a.id&&(g.trunks[i].canSelect=!1,t.push(g.trunks[i]));g.trunks=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.lists,{id:e.resourceId})}),t=null;if(g.faxAccount&&(t=_.find(g.lists,{id:Number(g.faxAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.lists,{id:t.id});a.canSelect=!1,n.push(a)}g.lists=n})}else{var t=[],a=null;g.faxAccount&&(a=_.find(g.lists,{id:Number(g.faxAccount.ListId)}));for(var i=0;i<g.lists.length;i++)a&&g.lists[i].id===a.id&&(g.lists[i].canSelect=!1,t.push(g.lists[i]));g.lists=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","faxAccounts","faxAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.fax").controller("CreateOrEditFaxAccountDialogController",e)}(),function(){"use strict";function e(o,i,a,s,e){var r=this;function n(e,n){if(r.faxAccountApps.rows.length){var t=r.faxAccountApps.rows[n]?r.faxAccountApps.rows[n]:r.faxAccountApps.rows[0];i.show({controller:"EditFaxAccountApp"+(t.appType||t.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/apps/"+(t.appType||t.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxAccountApp:t,faxAccount:r.faxAccount,crudPermissions:r.crudPermissions}}).then(function(e){e&&(e.id?r.faxAccountApps.rows[n]=e:r.faxAccountApps.rows.splice(n,0,e),l())}).catch(function(e){e&&s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function l(){for(var e=1,n=[],t=0;t<r.faxAccountApps.rows.length;t++,0){var a=r.faxAccountApps.rows[t],i=[],s=[];a.intervals="*,*,*,*"!==a.interval?[a.interval]:a.IntervalId?_.map(_.filter(r.intervals.rows,{IntervalId:a.IntervalId}),"interval"):[],a.context=r.faxAccount.context,a.exten=r.faxAccount.exten,a.type&&(a.type=a.type.toLowerCase()),a.priority=i.length?_.last(i).priority+1:e,e=(s.length?_.last(s).priority:a.priority)+1,n=_.concat(n,i,[a],s)}o.faxAccount.addApplications({id:r.faxAccount.id},_.sortBy(n,"priority")).$promise.then(function(e){r.faxAccountApps.rows=e.rows}).catch(function(e){console.error(e)})}function t(e){r.faxAccountApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.faxAccount={},r.faxAccountApps={count:0,rows:[]},r.selectedFaxAccountApps=[],r.crudPermissions,r.query={sort:"priority"},r.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"noop",appType:"noop",type:"noop",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,fields:[{title:"Value",name:"value",type:"text",param:0}]},{app:"system",appType:"system",type:"system",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,extraApi:[{name:"variables",field:{name:"variable",key:"name"},route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1012}}],fields:[{title:"Command",name:"command",type:"text",required:!0,param:0},{title:"Variable",name:"variable",type:"apiselect",values:"variables",value:"variable.name",option:"variable.name",defaultValues:[{value:"''",option:"None"}],defaultValue:"''",param:1}]},{app:"gotop",appType:"gotop",type:"goto",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Priority",name:"priority",type:"number",required:!0,min:0,param:0}]},{app:"gotoif",appType:"gotoif",type:"gotoif",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Condition",name:"condition",type:"text",required:!0,param:0},{title:"truepriority",name:"truepriority",type:"number",min:1,required:!0,param:1},{title:"falsepriority",name:"falsepriority",type:"number",min:1,required:!0,param:2}]},{app:"queue",appType:"queue",foreignKey:"FaxQueueId",type:"queue",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"queues",field:{name:"queue",key:"name"},route:"faxQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0},permissions:{section:901}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",defaultValue:300,required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,defaultValue:300,required:!0,param:1}]},{app:"agent",appType:"agent",type:"agent",foreignKey:"UserId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"agents",field:{name:"agent",key:"name"},route:"user",filters:{fields:"id,name",sort:"name",role:"agent",nolimit:!0},permissions:{section:202}}],fields:[{title:"Agent",name:"agent",type:"apiselect",values:"agents",value:"agent.name",option:"agent.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:30,param:1}]},{app:"close",appType:"close",type:"close",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Disposition",name:"disposition",type:"text",required:!0,param:0}]},{app:"tag",appType:"tag",type:"tag",foreignKey:"TagId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"tags",field:{name:"tag",key:"name"},route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1008}}],fields:[{title:"Tag",name:"tag",type:"apiselect",values:"tags",value:"tag.name",option:"tag.name",required:!0,param:0}]}],["app"]),{isApp:!1}),r.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},r.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){n(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e,n){r.faxAccount=e,r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},r.applications.disabled=!r.crudPermissions.canEdit,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getFaxAccountApps(),r.getIntervals()},r.deleteConfirm=function(e,n,t){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.faxAccountApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})},r.getFaxAccountApps=function(){r.promise=o.faxAccount.getApplications(r.query,t).$promise},r.editFaxAccountApp=n,r.editInterval=function(e,n){if(r.faxAccountApps.rows.length){var t=r.faxAccountApps.rows[n]?r.faxAccountApps.rows[n]:r.faxAccountApps.rows[0];i.show({controller:"EditFaxAccountAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:[],crudPermissions:r.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,l())})}},r.deleteFaxAccountApp=function(e){_.remove(r.faxAccountApps.rows,{id:e.id}),l(),s.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedFaxAccountApps=function(e){var n=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+r.selectedFaxAccountApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){r.selectedFaxAccountApps.forEach(function(e){_.remove(r.faxAccountApps.rows,{id:e.id})}),r.selectedFaxAccountApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return o.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){r.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.fax").controller("FaxAccountActionsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.faxAccount.getAgents({id:c.faxAccount.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserFaxAccount?"penalty "+e.UserFaxAccount.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.faxAccount=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.faxAccount.removeAgents({id:c.faxAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.faxAccount.addAgents({id:c.faxAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("FAX.ALL_AGENTS"),labelSelected:r.instant("FAX.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","faxAccount","faxAccounts","realtime","$translate","Auth","crudPermissions"],angular.module("app.fax").controller("FaxAccountagentaddController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.agent=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.agent.appdata)switch(l.agent.appType?l.agent.appType.toLowerCase():l.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.agent.appdata.split(",");l.agent.key=d[0],l.agent.language=d[1],l.agent.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.agent.appdata.split(",");l.agent.projectId=d[0],l.agent.clientEmail=d[1],l.agent.privateKey=d[2],l.agent.language=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.agent.appdata.split(",");l.agent.accesskeyid=d[0],l.agent.secretaccesskey=d[1],l.agent.lexregion=d[2],l.agent.botname=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.agent.appdata.split(",");l.agent.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.agent.text=d.slice(1,d.length).join(",");break;case"message":l.agent.text=l.agent.appdata;break;case"set":l.agent.name=l.agent.appdata.split("=")[0],l.agent.value=l.agent.appdata.split("=")[1];break;case"agi":l.agent.project=l.agent.appdata;break;default:var c=l.agent.appdata.split(",");l.agent.agent=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.agent.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.agent.timeout=30;function m(e){n.hide(e)}l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outbounddial"===l.agent.appType.toLowerCase()&&(l.agent.prefix=l.agent.phone?l.agent.phone.split("$")[0]:void 0,l.agent.callerId=l.agent.callerID?"CALLERID(all)="+l.agent.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outboundDial"===l.agent.appType&&(l.agent.phone=i.cutdigits?(l.agent.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.agent.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.agent.options+="U(xcally-mixmonitor-context)"):l.agent.options=l.agent.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.agents,{name:l.agent.agent});n&&(l.agent.UserId=n.id);if(l.agent.appType&&"custom"===l.agent.appType);else switch((l.agent.app||l.agent.appType).toLowerCase()){case"set":l.agent.appdata=l.agent.name+"="+l.agent.value;break;case"custom":break;default:e[0]=l.agent.agent,e[1]=l.agent.timeout,l.agent.appdata=e.join(",")}m(l.agent)},l.closeDialog=m,o.hasRole("admin")?s.user.get({fields:"id,name",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){l.agents=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.user.get({fields:"id,name",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){l.agents=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.agents,{id:e.resourceId})}),t=null;if(l.agent&&(t=_.find(l.agents,{name:l.agent.agent})),t&&!_.some(n,["id",t.id])){var a=_.find(l.agents,{id:t.id});a.canSelect=!1,n.push(a)}l.agents=n})}else{var t=[],a=null;l.agent&&(a=_.find(l.agents,{name:l.agent.agent}));for(var i=0;i<l.agents.length;i++)a&&l.agents[i].id===a.id&&(l.agents[i].canSelect=!1,t.push(l.agents[i]));l.agents=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppagentDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.close=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.close.appdata)switch(l.close.appType?l.close.appType.toLowerCase():l.close.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.close.appdata.split(",");l.close.key=d[0],l.close.language=d[1],l.close.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.close.appdata.split(",");l.close.projectId=d[0],l.close.clientEmail=d[1],l.close.privateKey=d[2],l.close.language=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.close.appdata.split(",");l.close.accesskeyid=d[0],l.close.secretaccesskey=d[1],l.close.lexregion=d[2],l.close.botname=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.close.appdata.split(",");l.close.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.close.text=d.slice(1,d.length).join(",");break;case"message":l.close.text=l.close.appdata;break;case"set":l.close.name=l.close.appdata.split("=")[0],l.close.value=l.close.appdata.split("=")[1];break;case"agi":l.close.project=l.close.appdata;break;default:var c=l.close.appdata.split(",");l.close.disposition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outbounddial"===l.close.appType.toLowerCase()&&(l.close.prefix=l.close.phone?l.close.phone.split("$")[0]:void 0,l.close.callerId=l.close.callerID?"CALLERID(all)="+l.close.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outboundDial"===l.close.appType&&(l.close.phone=i.cutdigits?(l.close.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.close.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.close.options+="U(xcally-mixmonitor-context)"):l.close.options=l.close.options.replace("U(xcally-mixmonitor-context)",""));if(l.close.appType&&"custom"===l.close.appType);else switch((l.close.app||l.close.appType).toLowerCase()){case"set":l.close.appdata=l.close.name+"="+l.close.value;break;case"custom":break;default:e[0]=l.close.disposition,l.close.appdata=e.join(",")}m(l.close)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppcloseDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotoif=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotoif.appdata)switch(l.gotoif.appType?l.gotoif.appType.toLowerCase():l.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotoif.appdata.split(",");l.gotoif.key=d[0],l.gotoif.language=d[1],l.gotoif.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotoif.appdata.split(",");l.gotoif.projectId=d[0],l.gotoif.clientEmail=d[1],l.gotoif.privateKey=d[2],l.gotoif.language=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotoif.appdata.split(",");l.gotoif.accesskeyid=d[0],l.gotoif.secretaccesskey=d[1],l.gotoif.lexregion=d[2],l.gotoif.botname=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotoif.appdata.split(",");l.gotoif.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotoif.text=d.slice(1,d.length).join(",");break;case"message":l.gotoif.text=l.gotoif.appdata;break;case"set":l.gotoif.name=l.gotoif.appdata.split("=")[0],l.gotoif.value=l.gotoif.appdata.split("=")[1];break;case"agi":l.gotoif.project=l.gotoif.appdata;break;default:var c=l.gotoif.appdata.split(",");l.gotoif.condition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.gotoif.truepriority=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.gotoif.falsepriority=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}function m(e){n.hide(e)}l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outbounddial"===l.gotoif.appType.toLowerCase()&&(l.gotoif.prefix=l.gotoif.phone?l.gotoif.phone.split("$")[0]:void 0,l.gotoif.callerId=l.gotoif.callerID?"CALLERID(all)="+l.gotoif.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outboundDial"===l.gotoif.appType&&(l.gotoif.phone=i.cutdigits?(l.gotoif.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotoif.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotoif.options+="U(xcally-mixmonitor-context)"):l.gotoif.options=l.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotoif.appType&&"custom"===l.gotoif.appType);else switch((l.gotoif.app||l.gotoif.appType).toLowerCase()){case"set":l.gotoif.appdata=l.gotoif.name+"="+l.gotoif.value;break;case"custom":break;default:e[0]=l.gotoif.condition,e[1]=l.gotoif.truepriority,e[2]=l.gotoif.falsepriority,l.gotoif.appdata=e.join(",")}m(l.gotoif)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppgotoifDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotop.appdata)switch(l.gotop.appType?l.gotop.appType.toLowerCase():l.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotop.appdata.split(",");l.gotop.key=d[0],l.gotop.language=d[1],l.gotop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotop.appdata.split(",");l.gotop.projectId=d[0],l.gotop.clientEmail=d[1],l.gotop.privateKey=d[2],l.gotop.language=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotop.appdata.split(",");l.gotop.accesskeyid=d[0],l.gotop.secretaccesskey=d[1],l.gotop.lexregion=d[2],l.gotop.botname=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotop.appdata.split(",");l.gotop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotop.text=d.slice(1,d.length).join(",");break;case"message":l.gotop.text=l.gotop.appdata;break;case"set":l.gotop.name=l.gotop.appdata.split("=")[0],l.gotop.value=l.gotop.appdata.split("=")[1];break;case"agi":l.gotop.project=l.gotop.appdata;break;default:var c=l.gotop.appdata.split(",");l.gotop.priority=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outbounddial"===l.gotop.appType.toLowerCase()&&(l.gotop.prefix=l.gotop.phone?l.gotop.phone.split("$")[0]:void 0,l.gotop.callerId=l.gotop.callerID?"CALLERID(all)="+l.gotop.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outboundDial"===l.gotop.appType&&(l.gotop.phone=i.cutdigits?(l.gotop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotop.options+="U(xcally-mixmonitor-context)"):l.gotop.options=l.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotop.appType&&"custom"===l.gotop.appType);else switch((l.gotop.app||l.gotop.appType).toLowerCase()){case"set":l.gotop.appdata=l.gotop.name+"="+l.gotop.value;break;case"custom":break;default:e[0]=l.gotop.priority,l.gotop.appdata=e.join(",")}m(l.gotop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppgotopDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom","list"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditFaxAccountAppintervalDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.noop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.noop.appdata)switch(l.noop.appType?l.noop.appType.toLowerCase():l.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.noop.appdata.split(",");l.noop.key=d[0],l.noop.language=d[1],l.noop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.noop.appdata.split(",");l.noop.projectId=d[0],l.noop.clientEmail=d[1],l.noop.privateKey=d[2],l.noop.language=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.noop.appdata.split(",");l.noop.accesskeyid=d[0],l.noop.secretaccesskey=d[1],l.noop.lexregion=d[2],l.noop.botname=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.noop.appdata.split(",");l.noop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.noop.text=d.slice(1,d.length).join(",");break;case"message":l.noop.text=l.noop.appdata;break;case"set":l.noop.name=l.noop.appdata.split("=")[0],l.noop.value=l.noop.appdata.split("=")[1];break;case"agi":l.noop.project=l.noop.appdata;break;default:var c=l.noop.appdata.split(",");l.noop.value=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outbounddial"===l.noop.appType.toLowerCase()&&(l.noop.prefix=l.noop.phone?l.noop.phone.split("$")[0]:void 0,l.noop.callerId=l.noop.callerID?"CALLERID(all)="+l.noop.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outboundDial"===l.noop.appType&&(l.noop.phone=i.cutdigits?(l.noop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.noop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.noop.options+="U(xcally-mixmonitor-context)"):l.noop.options=l.noop.options.replace("U(xcally-mixmonitor-context)",""));if(l.noop.appType&&"custom"===l.noop.appType);else switch((l.noop.app||l.noop.appType).toLowerCase()){case"set":l.noop.appdata=l.noop.name+"="+l.noop.value;break;case"custom":break;default:e[0]=l.noop.value,l.noop.appdata=e.join(",")}m(l.noop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppnoopDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.queue=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.queue.appdata)switch(l.queue.appType?l.queue.appType.toLowerCase():l.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.queue.appdata.split(",");l.queue.key=d[0],l.queue.language=d[1],l.queue.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.queue.appdata.split(",");l.queue.projectId=d[0],l.queue.clientEmail=d[1],l.queue.privateKey=d[2],l.queue.language=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.queue.appdata.split(",");l.queue.accesskeyid=d[0],l.queue.secretaccesskey=d[1],l.queue.lexregion=d[2],l.queue.botname=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.queue.appdata.split(",");l.queue.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.queue.text=d.slice(1,d.length).join(",");break;case"message":l.queue.text=l.queue.appdata;break;case"set":l.queue.name=l.queue.appdata.split("=")[0],l.queue.value=l.queue.appdata.split("=")[1];break;case"agi":l.queue.project=l.queue.appdata;break;default:var c=l.queue.appdata.split(",");l.queue.queue=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.queue.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.queue.queue=300,l.queue.timeout=300;function m(e){n.hide(e)}l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outbounddial"===l.queue.appType.toLowerCase()&&(l.queue.prefix=l.queue.phone?l.queue.phone.split("$")[0]:void 0,l.queue.callerId=l.queue.callerID?"CALLERID(all)="+l.queue.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outboundDial"===l.queue.appType&&(l.queue.phone=i.cutdigits?(l.queue.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.queue.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.queue.options+="U(xcally-mixmonitor-context)"):l.queue.options=l.queue.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.queues,{name:l.queue.queue});n&&(l.queue[_.capitalize("fax")+"QueueId"]=n.id);if(l.queue.appType&&"custom"===l.queue.appType);else switch((l.queue.app||l.queue.appType).toLowerCase()){case"set":l.queue.appdata=l.queue.name+"="+l.queue.value;break;case"custom":break;default:e[0]=l.queue.queue,e[1]=l.queue.timeout,l.queue.appdata=e.join(",")}m(l.queue)},l.closeDialog=m,o.hasRole("admin")?s.faxQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.faxQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:901}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.queues,{id:e.resourceId})}),t=null;if(l.queue&&(t=_.find(l.queues,{name:l.queue.queue})),t&&!_.some(n,["id",t.id])){var a=_.find(l.queues,{id:t.id});a.canSelect=!1,n.push(a)}l.queues=n})}else{var t=[],a=null;l.queue&&(a=_.find(l.queues,{name:l.queue.queue}));for(var i=0;i<l.queues.length;i++)a&&l.queues[i].id===a.id&&(l.queues[i].canSelect=!1,t.push(l.queues[i]));l.queues=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppqueueDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.system=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.system.appdata)switch(l.system.appType?l.system.appType.toLowerCase():l.system.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.system.appdata.split(",");l.system.key=d[0],l.system.language=d[1],l.system.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.system.appdata.split(",");l.system.projectId=d[0],l.system.clientEmail=d[1],l.system.privateKey=d[2],l.system.language=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.system.appdata.split(",");l.system.accesskeyid=d[0],l.system.secretaccesskey=d[1],l.system.lexregion=d[2],l.system.botname=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.system.appdata.split(",");l.system.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.system.text=d.slice(1,d.length).join(",");break;case"message":l.system.text=l.system.appdata;break;case"set":l.system.name=l.system.appdata.split("=")[0],l.system.value=l.system.appdata.split("=")[1];break;case"agi":l.system.project=l.system.appdata;break;default:var c=l.system.appdata.split(",");l.system.command=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.system.variable=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.system.variable="";function m(e){n.hide(e)}l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outbounddial"===l.system.appType.toLowerCase()&&(l.system.prefix=l.system.phone?l.system.phone.split("$")[0]:void 0,l.system.callerId=l.system.callerID?"CALLERID(all)="+l.system.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outboundDial"===l.system.appType&&(l.system.phone=i.cutdigits?(l.system.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.system.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.system.options+="U(xcally-mixmonitor-context)"):l.system.options=l.system.options.replace("U(xcally-mixmonitor-context)",""));if(l.system.appType&&"custom"===l.system.appType);else switch((l.system.app||l.system.appType).toLowerCase()){case"set":l.system.appdata=l.system.name+"="+l.system.value;break;case"custom":break;default:e[0]=l.system.command,e[1]=l.system.variable,l.system.appdata=e.join(",")}m(l.system)},l.closeDialog=m,o.hasRole("admin")?s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1012}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.variables,{id:e.resourceId})}),t=null;if(l.system&&(t=_.find(l.variables,{name:l.system.variable})),t&&!_.some(n,["id",t.id])){var a=_.find(l.variables,{id:t.id});a.canSelect=!1,n.push(a)}l.variables=n})}else{var t=[],a=null;l.system&&(a=_.find(l.variables,{name:l.system.variable}));for(var i=0;i<l.variables.length;i++)a&&l.variables[i].id===a.id&&(l.variables[i].canSelect=!1,t.push(l.variables[i]));l.variables=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppsystemDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.tag=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.tag.appdata)switch(l.tag.appType?l.tag.appType.toLowerCase():l.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.tag.appdata.split(",");l.tag.key=d[0],l.tag.language=d[1],l.tag.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.tag.appdata.split(",");l.tag.projectId=d[0],l.tag.clientEmail=d[1],l.tag.privateKey=d[2],l.tag.language=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.tag.appdata.split(",");l.tag.accesskeyid=d[0],l.tag.secretaccesskey=d[1],l.tag.lexregion=d[2],l.tag.botname=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.tag.appdata.split(",");l.tag.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.tag.text=d.slice(1,d.length).join(",");break;case"message":l.tag.text=l.tag.appdata;break;case"set":l.tag.name=l.tag.appdata.split("=")[0],l.tag.value=l.tag.appdata.split("=")[1];break;case"agi":l.tag.project=l.tag.appdata;break;default:var c=l.tag.appdata.split(",");l.tag.tag=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outbounddial"===l.tag.appType.toLowerCase()&&(l.tag.prefix=l.tag.phone?l.tag.phone.split("$")[0]:void 0,l.tag.callerId=l.tag.callerID?"CALLERID(all)="+l.tag.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outboundDial"===l.tag.appType&&(l.tag.phone=i.cutdigits?(l.tag.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.tag.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.tag.options+="U(xcally-mixmonitor-context)"):l.tag.options=l.tag.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.tags,{name:l.tag.tag});n&&(l.tag.TagId=n.id);if(l.tag.appType&&"custom"===l.tag.appType);else switch((l.tag.app||l.tag.appType).toLowerCase()){case"set":l.tag.appdata=l.tag.name+"="+l.tag.value;break;case"custom":break;default:e[0]=l.tag.tag,l.tag.appdata=e.join(",")}m(l.tag)},l.closeDialog=m,o.hasRole("admin")?s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1008}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.tags,{id:e.resourceId})}),t=null;if(l.tag&&(t=_.find(l.tags,{name:l.tag.tag})),t&&!_.some(n,["id",t.id])){var a=_.find(l.tags,{id:t.id});a.canSelect=!1,n.push(a)}l.tags=n})}else{var t=[],a=null;l.tag&&(a=_.find(l.tags,{name:l.tag.tag}));for(var i=0;i<l.tags.length;i++)a&&l.tags[i].id===a.id&&(l.tags[i].canSelect=!1,t.push(l.tags[i]));l.tags=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtags",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountApptagDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.faxAccount.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.faxAccount=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.FaxAccountId=m.faxAccount.id,m.query.id=m.faxAccount.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.faxAccount.id,field:"FaxAccountId",route:"faxAccount"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.fax").controller("FaxAccountDispositionsController",e)}(),function(){"use strict";function e(e,a,n,t,i,s,o,r,l,d,c){var m=this;function u(e){m.faxAccountInteractions=e||{count:0,rows:[]};for(var n=0;n<m.faxAccountInteractions.rows.length;n+=1){var t=m.faxAccountInteractions.rows[n];v(t),t.Owner.name=h(t)}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.faxInteraction.get(m.query,u).$promise}function g(e){d.faxInteraction.delete({id:e.id}).$promise.then(function(){_.remove(m.faxAccountInteractions.rows,{id:e.id}),m.faxAccountInteractions.count-=1,m.faxAccountInteractions.rows.length||p(),l.success({title:"Interaction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETfaxAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(e){e.Contact?(e.contactName=(e.Contact.firstName||"")+" "+(e.Contact.lastName||""),e.contactInfo=e.Contact.fax):e.contactName=i.instant("DASHBOARDS.UNKNOWN")}function h(e){return e.UserId?e.UserId===m.currentUser.id?i.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">":i.instant("DASHBOARDS.NOT_ASSIGNED")}m.currentUser=c.getCurrentUser(),m.faxAccount={},m.faxAccountInteractions={count:0,rows:[]},m.selectedFaxAccountInteractions=[],m.crudPermissions,m.query={read:"null",closed:"null",sort:"-createdAt",includeAll:"true",limit:10,page:1},m.init=function(e,n,t){m.faxAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.FaxAccountId=m.faxAccount.id,m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Subject",column:"subject",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},d.tag.get({sort:"name"}).$promise.then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]})},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interaction #")+e.id||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.faxInteractionDownload=function(s,e,n){return d.faxInteraction.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="interaction"+s.id,a=new Blob(n,{type:e.type});t="fax-interaction"+s.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getFaxAccountInteractions=p,m.createOrEditFaxAccountInteraction=function(e,n){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/interactions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxAccount:m.faxAccount,interaction:n,interactions:m.faxAccountInteractions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.spyfaxInteraction=function(e,t){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,n){e.vm.init({id:1,channel:"fax",interaction:t,spy:!0},a.$parent.vm.setting)}})},m.openAdvancedSearch=function(){o.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,locals:{fields:m.advancedSearch.fields,color:void 0,storagePath:"fax.faxAccounts"},fullscreen:!0}).then(function(e){if(m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply){var n="";n+="||FaxAccountId:=$eq["+m.faxAccount.id+"]",m.query.search=e.value?e.value+=n:e.value,p()}}).catch(function(e){l.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.exportSelectedFaxAccountInteractions=function(){var e=angular.copy(m.selectedFaxAccountInteractions);return m.selectedFaxAccountInteractions=[],e},m.deleteFaxAccountInteraction=g,m.deleteSelectedFaxAccountInteractions=function(e){var n=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+m.selectedFaxAccountInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedFaxAccountInteractions.forEach(function(e){g(e)}),m.selectedFaxAccountInteractions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.fax").controller("FaxAccountInteractionsController",e)}(),function(){"use strict";function e(t,e,a,i,s,n,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=n,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=e.protocol()+"://"+e.host(),p.faxAccount=c||t.params.faxAccount||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=t.params.tab||0,p.gotogoto=function(e,n){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:910}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.fax.realtime.accounts",{}):l.info({title:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.fax.realtime.accounts",{})}},p.agentadddialog=function(e,n){a.show({controller:"FaxAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{faxAccount:e,faxAccounts:p.faxAccounts?p.faxAccounts.rows:[],crudPermissions:p.crudPermissions,realtime:!1}})},p.alert=l.info,p.gotoFaxAccounts=function(){t.go("app.fax.faxAccounts",{},{reload:"app.fax.faxAccounts"})},p.saveFaxAccount=function(){r.faxAccount.updateAccountApplications(p.faxAccount).$promise.then(function(){l.success({title:"FaxAccount updated!",msg:p.faxAccount.name?p.faxAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.trunks=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.trunks=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.trunks,{id:e.resourceId})}),t=null;if(p.faxAccount&&(t=_.find(p.trunks,{id:Number(p.faxAccount.TrunkId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.trunks,{id:t.id});a.canSelect=!1,n.push(a)}p.trunks=n})}else{var t=[],a=null;p.faxAccount&&(a=_.find(p.trunks,{id:Number(p.faxAccount.TrunkId)}));for(var i=0;i<p.trunks.length;i++)a&&p.trunks[i].id===a.id&&(p.trunks[i].canSelect=!1,t.push(p.trunks[i]));p.trunks=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.lists,{id:e.resourceId})}),t=null;if(p.faxAccount&&(t=_.find(p.lists,{id:Number(p.faxAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.lists,{id:t.id});a.canSelect=!1,n.push(a)}p.lists=n})}else{var t=[],a=null;p.faxAccount&&(a=_.find(p.lists,{id:Number(p.faxAccount.ListId)}));for(var i=0;i<p.lists.length;i++)a&&p.lists[i].id===a.id&&(p.lists[i].canSelect=!1,t.push(p.lists[i]));p.lists=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.pauses,{id:e.resourceId})});p.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),p.pauses=n})}else p.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","faxAccount","userProfile","userProfileSection"],angular.module("app.fax").controller("FaxAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.faxAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="faxAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedFaxAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,page:1},f.arrayecm=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayminrate=_.keyBy([{option:"2400",value:"'2400'"},{option:"4800",value:"'4800'"},{option:"7200",value:"'7200'"},{option:"9600",value:"'9600'"},{option:"12000",value:"'12000'"},{option:"14400",value:"'14400'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraymaxrate=_.keyBy([{option:"2400",value:"'2400'"},{option:"4800",value:"'4800'"},{option:"7200",value:"'7200'"},{option:"9600",value:"'9600'"},{option:"12000",value:"'12000'"},{option:"14400",value:"'14400'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraytech=_.keyBy([{option:"SIP",value:"'SIP'"},{option:"IAX",value:"'IAX'"},{option:"DADHI",value:"'DADHI'"},{option:"KHOMP",value:"'KHOMP'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.fax.faxAccounts.edit",{id:e.id,faxAccount:e,crudPermissions:f.crudPermissions})},f.interactionsgoto=function(e,n){t.go("app.fax.faxAccounts.edit",{id:e.id,tab:5})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:910}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.fax.realtime.accounts",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.fax.realtime.accounts",{})}},f.agentadddialog=function(e,n){i.show({controller:"FaxAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{faxAccount:e,faxAccounts:f.faxAccounts?f.faxAccounts.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("faxAccount")+"?").htmlContent("<b>"+(e.name||"faxAccount")+"</b> will be deleted.").ariaLabel("delete faxAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getFaxAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.faxAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="FaxAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditFaxAccount=function(e,n){i.show({controller:"CreateOrEditFaxAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxAccount:n,faxAccounts:f.faxAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteFaxAccount=y,f.exportSelectedFaxAccounts=function(){var e=angular.copy(f.selectedFaxAccounts);return f.selectedFaxAccounts=[],e},f.deleteSelectedFaxAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected faxAccounts?").htmlContent("<b>"+f.selectedFaxAccounts.length+" selected</b> will be deleted.").ariaLabel("delete FaxAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedFaxAccounts.forEach(function(e){y(e)}),f.selectedFaxAccounts=[]})},f.deselectFaxAccounts=function(){f.selectedFaxAccounts=[]},f.selectAllFaxAccounts=function(){f.selectedFaxAccounts=f.faxAccounts.rows},g.hasRole("admin")?m.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.trunks=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.trunks=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(f.trunks,{id:e.resourceId})}),a=null;a=[],f.faxAccounts.rows.forEach(function(e){var n=_.find(f.trunks,{id:Number(e.TrunkId)});a.push(n)}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(f.trunks,{id:e.id});n.canSelect=!1,t.push(n)}}),f.trunks=t})}else{var t=[],a=[];f.faxAccounts.rows.forEach(function(e){var n=_.find(f.trunks,{id:Number(e.TrunkId)});a.push(n)});for(var i=0;i<f.trunks.length;i++){_.some(a,{id:f.trunks[i].id})&&(f.trunks[i].canSelect=!1,t.push(f.trunks[i]))}f.trunks=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.lists,{id:e.resourceId})}),t=null;if(f.faxAccount&&(t=_.find(f.lists,{id:Number(f.faxAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.lists,{id:t.id});a.canSelect=!1,n.push(a)}f.lists=n})}else{var t=[],a=null;f.faxAccount&&(a=_.find(f.lists,{id:Number(f.faxAccount.ListId)}));for(var i=0;i<f.lists.length;i++)a&&f.lists[i].id===a.id&&(f.lists[i].canSelect=!1,t.push(f.lists[i]));f.lists=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.faxAccounts=e||{count:0,rows:[]}}function y(e){m.faxAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.faxAccounts.rows,{id:e.id}),f.faxAccounts.count-=1,f.faxAccounts.rows.length||f.getFaxAccounts(),p.success({title:_.startCase("FaxAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEfaxAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEfaxAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getFaxAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","faxAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.fax").controller("FaxAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="FAX.EDIT_FAXQUEUE",g.faxQueue=angular.copy(l),g.faxQueues=r,g.newFaxQueue=!1,g.faxQueue||(g.faxQueue={strategy:"beepall",timeout:10},g.title="FAX.NEW_FAXQUEUE",g.newFaxQueue=!0),g.addNewFaxQueue=function(){g.errors=[],d.faxQueue.save(g.faxQueue).$promise.then(function(e){g.faxQueues.unshift(e.toJSON()),o.success({title:"FaxQueue properly created",msg:g.faxQueue.name?g.faxQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.faxQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveFaxQueue=function(){g.errors=[],d.faxQueue.update({id:g.faxQueue.id},g.faxQueue).$promise.then(function(e){var n=_.find(g.faxQueues,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"FaxQueue properly saved!",msg:g.faxQueue.name?g.faxQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.faxQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteFaxQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The faxQueue will be deleted.").ariaLabel("Delete FaxQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.faxQueue.delete({id:g.faxQueue.id}).$promise.then(function(){_.remove(g.faxQueues,{id:g.faxQueue.id}),o.success({title:"FaxQueue properly deleted!",msg:(g.faxQueue.name||"faxQueue")+" has been deleted!"}),v(g.faxQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.faxQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","faxQueues","faxQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.fax").controller("CreateOrEditFaxQueueDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.faxQueue.getAgents({id:c.faxQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserFaxQueue?"penalty "+e.UserFaxQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.faxQueue=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.faxQueue.removeAgents({id:c.faxQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.faxQueue.addAgents({id:c.faxQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("FAX.ALL_AGENTS"),labelSelected:r.instant("FAX.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","faxQueue","faxQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.fax").controller("FaxQueueagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.faxQueue.getTeams({id:l.faxQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.faxQueue=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("FAX.ALL_TEAMS"),labelSelected:t.instant("FAX.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.faxQueue.removeTeams({id:l.faxQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.faxQueue.addTeams({id:l.faxQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","faxQueue","$translate","Auth","crudPermissions"],angular.module("app.fax").controller("FaxQueueteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.faxQueue=c||e.params.faxQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.teamadddialog=function(e,n){t.show({controller:"FaxQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{faxQueue:e,faxQueues:u.faxQueues?u.faxQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){t.show({controller:"FaxQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{faxQueue:e,faxQueues:u.faxQueues?u.faxQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoFaxQueues=function(){e.go("app.fax.faxQueues",{},{reload:"app.fax.faxQueues"})},u.saveFaxQueue=function(){r.faxQueue.update({id:u.faxQueue.id},u.faxQueue).$promise.then(function(){l.success({title:"FaxQueue updated!",msg:u.faxQueue.name?u.faxQueue.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","faxQueue","userProfileSection"],angular.module("app.fax").controller("FaxQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.faxQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="faxQueues",f.listOrder="",f.listOrderAsc=null,f.selectedFaxQueues=[],f.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"fax",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.fax.faxQueues.edit",{id:e.id,faxQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"FaxQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{faxQueue:e,faxQueues:f.faxQueues?f.faxQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"FaxQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{faxQueue:e,faxQueues:f.faxQueues?f.faxQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("faxQueue")+"?").htmlContent("<b>"+(e.name||"faxQueue")+"</b> will be deleted.").ariaLabel("delete faxQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:910}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.fax.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.fax.realtime.queues",{})}},f.success=E,f.getFaxQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.faxQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="FaxQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditFaxQueue=function(e,n){i.show({controller:"CreateOrEditFaxQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxQueue:n,faxQueues:f.faxQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteFaxQueue=y,f.exportSelectedFaxQueues=function(){var e=angular.copy(f.selectedFaxQueues);return f.selectedFaxQueues=[],e},f.deleteSelectedFaxQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected faxQueues?").htmlContent("<b>"+f.selectedFaxQueues.length+" selected</b> will be deleted.").ariaLabel("delete FaxQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedFaxQueues.forEach(function(e){y(e)}),f.selectedFaxQueues=[]})},f.deselectFaxQueues=function(){f.selectedFaxQueues=[]},f.selectAllFaxQueues=function(){f.selectedFaxQueues=f.faxQueues.rows};var b=!0,A=1;function E(e){f.faxQueues=e||{count:0,rows:[]}}function y(e){m.faxQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.faxQueues.rows,{id:e.id}),f.faxQueues.count-=1,f.faxQueues.rows.length||f.getFaxQueues(),p.success({title:_.startCase("FaxQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEfaxQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEfaxQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getFaxQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","faxQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.fax").controller("FaxQueuesController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){_.forIn(p.faxAccounts,function(e,n){p.rpcFaxAccounts[n]&&_.merge(e,p.rpcFaxAccounts[n])}),_.forIn(p.faxAccounts,function(n,e){var t={id:e,sort:"-id",direction:"in",limit:1,offset:0,$gte:"createdAt,"+moment().startOf("day").format("YYYY-MM-DD HH:mm:ss"),fields:"id,createdAt"};s.faxAccount.getMessages(t).$promise.then(function(e){return e&&(n.in=e.count||0,n.lastIn=e.rows&&e.rows.length?e.rows[0].createdAt:void 0),t.direction="out",s.faxAccount.getMessages(t).$promise}).then(function(e){e&&(n.out=e.count||0,n.lastOut=e.rows&&e.rows.length?e.rows[0].createdAt:void 0)}).catch(function(e){console.log(e)})})}p.currentUser=u.getCurrentUser(),p.count=l&&l.count?l.count:0,p.faxAccounts=l?_.keyBy(l.rows?l.rows:[],"id"):{},p.rpcFaxAccounts=d?_.keyBy(d.rows?d.rows:[],"id"):{},p.userProfile=c,p.userProfileSection=m&&1==m.count?m.rows[0]:null,p.crudPermissions=u.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.query={sort:"-name",limit:10,page:1},p.success=f,p.$onInit=g,p.getFaxAccounts=function(){p.query.offset=(p.query.page-1)*p.query.limit,u.hasRole("admin")?p.promise=s.faxAccount.get(p.query,f).$promise:(p.query.id=p.userProfile.id,p.query.section="FaxAccounts",p.promise=s.userProfile.getResources(p.query,f).$promise)},p.onSave=function(e){p.faxAccounts[e.id]&&_.merge(p.faxAccounts[e.id],e)},p.onFaxMessageSave=function(e){p.faxAccounts[e.FaxAccountId]&&("in"==e.direction?(p.faxAccounts[e.FaxAccountId].in+=1,p.faxAccounts[e.FaxAccountId].lastIn=e.createdAt):(p.faxAccounts[e.FaxAccountId].out+=1,p.faxAccounts[e.FaxAccountId].lastOut=e.createdAt))},p.goToFaxAccount=function(e,n){i.go("app.fax.faxAccounts.edit",{id:n.id,faxAccount:n})},p.order=[],_.forIn(p.faxAccounts,function(e,n){p.order.push(e.id)}),o.on("faxAccount:save",p.onSave),o.on("faxAccount:update",p.onSave),o.on("faxMessage:save",p.onFaxMessageSave);var v=!0,h=1;function f(e){if(p.faxAccounts=e?_.keyBy(e.rows?e.rows:[],"id"):{},e.rows){p.order=[];for(var n=0;n<e.rows.length;n++)p.order.push(e.rows[n].id)}g()}e.$watch("vm.query.filter",function(e,n){v?t(function(){v=!1}):(n||(h=p.query.page),e!==n&&(p.query.page=1),e||(p.query.page=h),p.getFaxAccounts())}),e.$on("$destroy",function(){o.removeAllListeners("faxAccount:save"),o.removeAllListeners("faxAccount:update"),o.removeAllListeners("faxMessage:save")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$state","api","socket","toasty","faxAccounts","rpcFaxAccounts","userProfile","userProfileSection","Auth"],angular.module("app.fax").controller("FaxAccountsRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c,m){var u=this,p=["loggedIn","available","waiting","paused"],g=n(function(){},999);u.currentUser=c.getCurrentUser(),u.queues=s,u.userProfileSection=d&&1==d.count?d.rows[0]:null,u.crudPermissions=c.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.query={id:c.isUser()?u.currentUser.id:void 0,section:c.isUser()?"FaxQueues":void 0,channel:"fax",sort:"name",limit:10,page:1},u.getQueues=function(){u.query.offset=(u.query.page-1)*u.query.limit,o.realtime.getQueues(u.query).$promise.then(function(e){u.queues=e}).catch(function(e){l.error({title:i.instant("FAX.FAXQUEUES"),msg:e.status?JSON.stringify(e.data):e.toString()})})},u.editQueue=function(e,n){t.show({controller:"CreateOrEditFaxQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxQueue:n,faxQueues:u.queues.rows,license:null,setting:null,crudPermissions:u.crudPermissions}})},u.addAgent=function(e,n){t.show({controller:"FaxQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxQueue:n,faxQueues:u.queues.rows,realtime:!1,crudPermissions:u.crudPermissions}})},r.on("fax_queue:save",function(e){var n=_.find(u.queues.rows,["id",e.id]);n&&_.merge(n,_.pick(e,p))}),r.on("userFaxQueue:save",function(e){var n=_.find(u.queues.rows,["id",e.FaxQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),r.on("userFaxQueue:remove",function(e){var n=_.find(u.queues.rows,["id",e.FaxQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),r.on("user:update",function(t){u.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&m.updateQueue(t,e,n,"fax")})}),e.$on("$destroy",function(){r.removeAllListeners("fax_queue:save"),r.removeAllListeners("userFaxQueue:remove"),r.removeAllListeners("userFaxQueue:save"),r.removeAllListeners("user:update"),g&&n.cancel(g)})}e.$inject=["$scope","$mdDialog","$document","$interval","$translate","queues","api","socket","toasty","userProfileSection","Auth","realtimeManager"],angular.module("app.fax").controller("QueuesFaxRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){return{status:{registered:"green-300-fg icon-checkbox-marked-circle",unregistered:"red-300-fg icon-close-circle",lagged:"red-300-fg icon-close-circle",reachable:"green-300-fg icon-checkbox-marked-circle",unreachable:"red-300-fg icon-close-circle",unknown:"grey-fg icon-minus-circle"},state:{unknown:"grey-fg icon-phone-hangup",not_inuse:"green-300-fg icon-phone-hangup",inuse:"red-300-fg icon-phone-in-talk",busy:"red-300-fg icon-phone-locked",invalid:"grey-fg icon-phone-hangup",unavailable:"grey-fg icon-phone-hangup",ringing:"blue-300-fg icon-phone-incoming",ringinuse:"blue-300-fg icon-phone-incoming",onhold:"blue-300-fg icon-phone-paused"},channelStatus:{ring:"blue-300-fg icon-phone-incoming",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"},channelStatusOut:{ring:"blue-300-fg icon-phone-outgoing",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"}}})}(),function(){"use strict";function e(e,t,n){switch(this.selectedTab=0,t.current.name){case"app.fax.realtime.agents":this.selectedTab=0;break;case"app.fax.realtime.trunks":this.selectedTab=1;break;case"app.fax.realtime.queues":this.selectedTab=2;break;case"app.fax.realtime.accounts":this.selectedTab=3;break;default:this.selectedTab=0,t.go("app.fax.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.fax.realtime.agents");break;case 1:t.go("app.fax.realtime.trunks");break;case 2:t.go("app.fax.realtime.queues");break;case 3:t.go("app.fax.realtime.accounts");break;default:t.go("app.fax.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.fax").controller("FaxRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m){var u=this,p=["status","stateRegistry","registry","host","port","internal","state","status"];function g(){for(var e,n=0;n<u.trunks.length;n+=1)0<=(e=_.findIndex(u.rpcTrunks,["id",u.trunks[n].id]))&&_.merge(u.trunks[n],_.pick(u.rpcTrunks[e],p))}function v(e,n,t){0<=n&&_.merge(e[n],_.pick(t,p))}u.currentUser=m.getCurrentUser(),u.count=a.count,u.trunks=a?a.rows:[],u.rpcTrunks=i&&i.rows?i.rows:[],u.query={fields:"id,name",active:!0,sort:"-updatedAt",limit:10,page:1},u.statusClass=r.status,u.stateClass=r.state,u.userProfile=d,u.userProfileSection=c&&1==c.count?c.rows[0]:null,u.crudPermissions=m.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.success=b,u.$onInit=g,u.showInfo=function(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},u.getTrunks=function(){u.query.offset=(u.query.page-1)*u.query.limit,m.hasRole("admin")?u.promise=s.trunk.get(u.query,b).$promise:(u.query.id=u.userProfile.id,u.query.section="Trunks",u.promise=s.userProfile.getResources(u.query,b).$promise)},u.goToTrunk=function(e,n){l.go("app.tools.trunks.edit",{id:n.id})},u.onSave=function(e){var n=_.findIndex(u.trunks,["id",e.id]),t=_.findIndex(u.rpcTrunks,["id",e.id]);v(u.trunks,n,e),v(u.rpcTrunks,t,e)},o.on("trunk:save",u.onSave);var h=!0,f=1;function b(e){u.count=e.count,u.trunks=e&&e.rows?e.rows:[],g()}e.$watch("vm.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=u.query.page),e!==n&&(u.query.page=1),e||(u.query.page=f),u.getTrunks())}),e.$on("$destroy",function(){o.removeAllListeners("trunk:save")})}e.$inject=["$scope","$timeout","$mdDialog","trunks","rpcTrunks","api","socket","helperClasses","$state","userProfile","userProfileSection","Auth"],angular.module("app.fax").controller("TrunksFaxRealtimeController",e)}(),function(){"use strict";function e(e,n){this.info=e,this.license=n}e.$inject=["info","license"],angular.module("app.help.about").controller("AboutController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_DESKACCOUNT",g.deskAccount=angular.copy(l),g.deskAccounts=r,g.newDeskAccount=!1,g.deskAccount||(g.deskAccount={type:"integrationTab",authType:"basic",serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_DESKACCOUNT",g.newDeskAccount=!0),g.addNewDeskAccount=function(){g.errors=[],d.intDeskAccount.save(g.deskAccount).$promise.then(function(e){g.deskAccounts.unshift(e.toJSON()),o.success({title:"DeskAccount properly created",msg:g.deskAccount.name?g.deskAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDeskAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveDeskAccount=function(){g.errors=[],d.intDeskAccount.update({id:g.deskAccount.id},g.deskAccount).$promise.then(function(e){var n=_.find(g.deskAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"DeskAccount properly saved!",msg:g.deskAccount.name?g.deskAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDeskAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteDeskAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The deskAccount will be deleted.").ariaLabel("Delete DeskAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intDeskAccount.delete({id:g.deskAccount.id}).$promise.then(function(){_.remove(g.deskAccounts,{id:g.deskAccount.id}),o.success({title:"DeskAccount properly deleted!",msg:(g.deskAccount.name||"deskAccount")+" has been deleted!"}),v(g.deskAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDeskAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","deskAccounts","deskAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditDeskAccountDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.deskAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="deskAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedDeskAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,type,remoteUri,authType,username,password,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.arraytype=_.keyBy([{option:"Integration_Tab",value:"'integrationTab'"},{option:"New_Tab",value:"'newTab'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayauthType=_.keyBy([{option:"Basic",value:"'basic'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.integrations.deskAccounts.edit",{id:e.id,deskAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intDeskAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"DeskAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"DeskAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("deskAccount")+"?").htmlContent("<b>"+(e.name||"deskAccount")+"</b> will be deleted.").ariaLabel("delete deskAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getDeskAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intDeskAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="DeskAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditDeskAccount=function(e,n){i.show({controller:"CreateOrEditDeskAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{deskAccount:n,deskAccounts:f.deskAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteDeskAccount=y,f.exportSelectedDeskAccounts=function(){var e=angular.copy(f.selectedDeskAccounts);return f.selectedDeskAccounts=[],e},f.deleteSelectedDeskAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected deskAccounts?").htmlContent("<b>"+f.selectedDeskAccounts.length+" selected</b> will be deleted.").ariaLabel("delete DeskAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedDeskAccounts.forEach(function(e){y(e)}),f.selectedDeskAccounts=[]})},f.deselectDeskAccounts=function(){f.selectedDeskAccounts=[]},f.selectAllDeskAccounts=function(){f.selectedDeskAccounts=f.deskAccounts.rows};var b=!0,A=1;function E(e){f.deskAccounts=e||{count:0,rows:[]}}function y(e){m.intDeskAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.deskAccounts.rows,{id:e.id}),f.deskAccounts.count-=1,f.deskAccounts.rows.length||f.getDeskAccounts(),p.success({title:_.startCase("DeskAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintDeskAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintDeskAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getDeskAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","deskAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("DeskAccountsController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intDeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intDeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intDeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.deskAccount={},o.deskConfiguration={},o.configurations=[],o.selectedDeskConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.deskAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intDeskAccount.getConfigurations({id:o.deskAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getDeskConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getDeskConfiguration=function(e){o.deskConfiguration=o.configurations[e],o.selectedDeskConfiguration=e,i.intDeskConfiguration.getSubjects({id:o.deskConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intDeskConfiguration.getDescriptions({id:o.deskConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intDeskConfiguration.getFields({id:o.deskConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.intDeskConfiguration.getTags({id:o.deskConfiguration.id}).$promise.then(function(e){o.selectedTags=e.rows?_.map(e.rows,"id"):[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditDeskConfiguration=function(e,n){a.show({controller:"CreateOrEditDeskConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{deskConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getDeskConfiguration(0)})},o.deleteDeskConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the deskConfiguration?").htmlContent("<b>"+(n.name||"deskConfiguration")+"</b> will be deleted.").ariaLabel("delete deskConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intDeskConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"DeskConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getDeskConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedTags=[],o.selectTagsChanged=function(e){i.intDeskConfiguration.setTags({id:o.deskConfiguration.id,ids:o.selectedTags}).$promise.then(function(){s.success({title:"Tags set!",msg:"Tags has been set!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ADDTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},i.tag.get({nolimit:!0,sort:"name"}).$promise.then(function(e){o.tags=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}),o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditDeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.deskConfiguration,account:o.deskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditDeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.deskConfiguration,account:o.deskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditDeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.deskConfiguration,account:o.deskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("DeskAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_DESKCONFIGURATION",g.deskConfiguration=angular.copy(l),g.configurations=r,g.newDeskConfiguration=!1,g.deskConfiguration||(g.deskConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_DESKCONFIGURATION",g.newDeskConfiguration=!0),g.addNewDeskConfiguration=function(){g.errors=[],d.intDeskAccount.addConfiguration({id:n.params.id},g.deskConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"DeskConfiguration properly created",msg:g.deskConfiguration.name?g.deskConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDeskConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveDeskConfiguration=function(){g.errors=[],d.intDeskConfiguration.update({id:g.deskConfiguration.id},g.deskConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"DeskConfiguration properly saved!",msg:g.deskConfiguration.name?g.deskConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDeskConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteDeskConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The deskConfiguration will be deleted.").ariaLabel("Delete DeskConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intDeskConfiguration.delete({id:g.deskConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.deskConfiguration.id}),o.success({title:"DeskConfiguration properly deleted!",msg:(g.deskConfiguration.name||"deskConfiguration")+" has been deleted!"}),v(g.deskConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDeskConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","deskConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditDeskConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intDeskField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intDeskField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intDeskField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intDeskAccount.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditDeskAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.deskAccount=c||e.params.deskAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoDeskAccounts=function(){e.go("app.integrations.deskAccounts",{},{reload:"app.integrations.deskAccounts"})},u.saveDeskAccount=function(){r.intDeskAccount.update({id:u.deskAccount.id},u.deskAccount).$promise.then(function(){l.success({title:"DeskAccount updated!",msg:u.deskAccount.name?u.deskAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintDeskAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","deskAccount","userProfileSection"],angular.module("app.integrations").controller("DeskAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_DYNAMICS365ACCOUNT",g.dynamics365Account=angular.copy(l),g.dynamics365Accounts=r,g.newDynamics365Account=!1,g.dynamics365Account||(g.dynamics365Account={serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_DYNAMICS365ACCOUNT",g.newDynamics365Account=!0),g.addNewDynamics365Account=function(){g.errors=[],d.intDynamics365Account.save(g.dynamics365Account).$promise.then(function(e){g.dynamics365Accounts.unshift(e.toJSON()),o.success({title:"Dynamics365Account properly created",msg:g.dynamics365Account.name?g.dynamics365Account.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDynamics365Account.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDynamics365Account.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveDynamics365Account=function(){g.errors=[],d.intDynamics365Account.update({id:g.dynamics365Account.id},g.dynamics365Account).$promise.then(function(e){var n=_.find(g.dynamics365Accounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Dynamics365Account properly saved!",msg:g.dynamics365Account.name?g.dynamics365Account.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDynamics365Account.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDynamics365Account.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteDynamics365Account=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The dynamics365Account will be deleted.").ariaLabel("Delete Dynamics365Account").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intDynamics365Account.delete({id:g.dynamics365Account.id}).$promise.then(function(){_.remove(g.dynamics365Accounts,{id:g.dynamics365Account.id}),o.success({title:"Dynamics365Account properly deleted!",msg:(g.dynamics365Account.name||"dynamics365Account")+" has been deleted!"}),v(g.dynamics365Account)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDynamics365Account.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDynamics365Account.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","dynamics365Accounts","dynamics365Account","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditDynamics365AccountDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.dynamics365Accounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="dynamics365Accounts",f.listOrder="",f.listOrderAsc=null,f.selectedDynamics365Accounts=[],f.query={fields:"createdAt,updatedAt,id,name,username,password,remoteUri,tenantId,clientId,clientSecret,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.integrations.dynamics365Accounts.edit",{id:e.id,dynamics365Account:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intDynamics365Account.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"Dynamics365Account properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"Dynamics365Account properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("dynamics365Account")+"?").htmlContent("<b>"+(e.name||"dynamics365Account")+"</b> will be deleted.").ariaLabel("delete dynamics365Account").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getDynamics365Accounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intDynamics365Account.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Dynamics365Accounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditDynamics365Account=function(e,n){i.show({controller:"CreateOrEditDynamics365AccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{dynamics365Account:n,dynamics365Accounts:f.dynamics365Accounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteDynamics365Account=y,f.exportSelectedDynamics365Accounts=function(){var e=angular.copy(f.selectedDynamics365Accounts);return f.selectedDynamics365Accounts=[],e},f.deleteSelectedDynamics365Accounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected dynamics365Accounts?").htmlContent("<b>"+f.selectedDynamics365Accounts.length+" selected</b> will be deleted.").ariaLabel("delete Dynamics365Accounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedDynamics365Accounts.forEach(function(e){y(e)}),f.selectedDynamics365Accounts=[]})},f.deselectDynamics365Accounts=function(){f.selectedDynamics365Accounts=[]},f.selectAllDynamics365Accounts=function(){f.selectedDynamics365Accounts=f.dynamics365Accounts.rows};var b=!0,A=1;function E(e){f.dynamics365Accounts=e||{count:0,rows:[]}}function y(e){m.intDynamics365Account.delete({id:e.id}).$promise.then(function(){_.remove(f.dynamics365Accounts.rows,{id:e.id}),f.dynamics365Accounts.count-=1,f.dynamics365Accounts.rows.length||f.getDynamics365Accounts(),p.success({title:_.startCase("Dynamics365Account")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintDynamics365Account"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintDynamics365Account",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getDynamics365Accounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","dynamics365Accounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("Dynamics365AccountsController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intDynamics365Field.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intDynamics365Field.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intDynamics365Field.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.dynamics365Account={},o.dynamics365Configuration={},o.configurations=[],o.selectedDynamics365Configuration=-1,o.crudPermissions,o.init=function(e,n){o.dynamics365Account=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intDynamics365Account.getConfigurations({id:o.dynamics365Account.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getDynamics365Configuration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getDynamics365Configuration=function(e){o.advancedForm&&o.advancedForm.$setPristine();o.dynamics365Configuration=o.configurations[e],o.selectedDynamics365Configuration=e,i.intDynamics365Configuration.getSubjects({id:o.dynamics365Configuration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intDynamics365Configuration.getDescriptions({id:o.dynamics365Configuration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intDynamics365Configuration.getFields({id:o.dynamics365Configuration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditDynamics365Configuration=function(e,n){a.show({controller:"CreateOrEditDynamics365ConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{dynamics365Configuration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getDynamics365Configuration(0)})},o.deleteDynamics365Configuration=function(e,n){var t=a.confirm().title("Are you sure want to delete the dynamics365Configuration?").htmlContent("<b>"+(n.name||"dynamics365Configuration")+"</b> will be deleted.").ariaLabel("delete dynamics365Configuration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intDynamics365Configuration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"Dynamics365Configuration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getDynamics365Configuration(0)})},function(){console.log("CANCEL")})},o.saveDynamics365Configuration=function(){o.errors=[],i.intDynamics365Configuration.update({id:o.dynamics365Configuration.id},o.dynamics365Configuration).$promise.then(function(e){var n=_.find(o.configurations,{id:e.id});n&&_.merge(n,e.toJSON()),o.advancedForm.$setPristine(),s.success({title:"Dynamics365Configuration properly saved!",msg:o.dynamics365Configuration.name?o.dynamics365Configuration.name+" has been saved!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){o.errors=e.data.errors||[{message:e.toString(),type:"api.intDynamics365Configuration.update"}];for(var n=0;n<e.data.errors.length;n++)s.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDynamics365Configuration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditDynamics365AccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.dynamics365Configuration,account:o.dynamics365Account,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditDynamics365AccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.dynamics365Configuration,account:o.dynamics365Account,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditDynamics365AccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.dynamics365Configuration,account:o.dynamics365Account,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("Dynamics365AccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_DYNAMICS365CONFIGURATION",g.dynamics365Configuration=angular.copy(l),g.configurations=r,g.newDynamics365Configuration=!1,g.dynamics365Configuration||(g.dynamics365Configuration={channel:"voice",type:"inbound",ticketType:"incident"},g.title="INTEGRATIONS.NEW_DYNAMICS365CONFIGURATION",g.newDynamics365Configuration=!0),g.addNewDynamics365Configuration=function(){g.errors=[],d.intDynamics365Account.addConfiguration({id:n.params.id},g.dynamics365Configuration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"Dynamics365Configuration properly created",msg:g.dynamics365Configuration.name?g.dynamics365Configuration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDynamics365Configuration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDynamics365Configuration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveDynamics365Configuration=function(){g.errors=[],d.intDynamics365Configuration.update({id:g.dynamics365Configuration.id},g.dynamics365Configuration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Dynamics365Configuration properly saved!",msg:g.dynamics365Configuration.name?g.dynamics365Configuration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDynamics365Configuration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDynamics365Configuration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteDynamics365Configuration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The dynamics365Configuration will be deleted.").ariaLabel("Delete Dynamics365Configuration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intDynamics365Configuration.delete({id:g.dynamics365Configuration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.dynamics365Configuration.id}),o.success({title:"Dynamics365Configuration properly deleted!",msg:(g.dynamics365Configuration.name||"dynamics365Configuration")+" has been deleted!"}),v(g.dynamics365Configuration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDynamics365Configuration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDynamics365Configuration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","dynamics365Configuration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditDynamics365ConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intDynamics365Field.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intDynamics365Field.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intDynamics365Field.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intDynamics365Account.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditDynamics365AccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.dynamics365Account=c||e.params.dynamics365Account||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoDynamics365Accounts=function(){e.go("app.integrations.dynamics365Accounts",{},{reload:"app.integrations.dynamics365Accounts"})},u.saveDynamics365Account=function(){r.intDynamics365Account.update({id:u.dynamics365Account.id},u.dynamics365Account).$promise.then(function(){l.success({title:"Dynamics365Account updated!",msg:u.dynamics365Account.name?u.dynamics365Account.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintDynamics365Account",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","dynamics365Account","userProfileSection"],angular.module("app.integrations").controller("Dynamics365AccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_FRESHDESKACCOUNT",g.freshdeskAccount=angular.copy(l),g.freshdeskAccounts=r,g.newFreshdeskAccount=!1,g.freshdeskAccount||(g.freshdeskAccount={serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_FRESHDESKACCOUNT",g.newFreshdeskAccount=!0),g.addNewFreshdeskAccount=function(){g.errors=[],d.intFreshdeskAccount.save(g.freshdeskAccount).$promise.then(function(e){g.freshdeskAccounts.unshift(e.toJSON()),o.success({title:"FreshdeskAccount properly created",msg:g.freshdeskAccount.name?g.freshdeskAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshdeskAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveFreshdeskAccount=function(){g.errors=[],d.intFreshdeskAccount.update({id:g.freshdeskAccount.id},g.freshdeskAccount).$promise.then(function(e){var n=_.find(g.freshdeskAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"FreshdeskAccount properly saved!",msg:g.freshdeskAccount.name?g.freshdeskAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshdeskAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteFreshdeskAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The freshdeskAccount will be deleted.").ariaLabel("Delete FreshdeskAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intFreshdeskAccount.delete({id:g.freshdeskAccount.id}).$promise.then(function(){_.remove(g.freshdeskAccounts,{id:g.freshdeskAccount.id}),o.success({title:"FreshdeskAccount properly deleted!",msg:(g.freshdeskAccount.name||"freshdeskAccount")+" has been deleted!"}),v(g.freshdeskAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshdeskAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","freshdeskAccounts","freshdeskAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditFreshdeskAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intFreshdeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intFreshdeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intFreshdeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.freshdeskAccount={},o.freshdeskConfiguration={},o.configurations=[],o.selectedFreshdeskConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.freshdeskAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intFreshdeskAccount.getConfigurations({id:o.freshdeskAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getFreshdeskConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getFreshdeskConfiguration=function(e){o.freshdeskConfiguration=o.configurations[e],o.selectedFreshdeskConfiguration=e,i.intFreshdeskConfiguration.getSubjects({id:o.freshdeskConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intFreshdeskConfiguration.getDescriptions({id:o.freshdeskConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intFreshdeskConfiguration.getFields({id:o.freshdeskConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.intFreshdeskConfiguration.getTags({id:o.freshdeskConfiguration.id}).$promise.then(function(e){o.selectedTags=e.rows?_.map(e.rows,"id"):[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditFreshdeskConfiguration=function(e,n){a.show({controller:"CreateOrEditFreshdeskConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{freshdeskConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getFreshdeskConfiguration(0)})},o.deleteFreshdeskConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the freshdeskConfiguration?").htmlContent("<b>"+(n.name||"freshdeskConfiguration")+"</b> will be deleted.").ariaLabel("delete freshdeskConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intFreshdeskConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"FreshdeskConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getFreshdeskConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedTags=[],o.selectTagsChanged=function(e){i.intFreshdeskConfiguration.setTags({id:o.freshdeskConfiguration.id,ids:o.selectedTags}).$promise.then(function(){s.success({title:"Tags set!",msg:"Tags has been set!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ADDTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},i.tag.get({nolimit:!0,sort:"name"}).$promise.then(function(e){o.tags=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}),o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditFreshdeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.freshdeskConfiguration,account:o.freshdeskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditFreshdeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.freshdeskConfiguration,account:o.freshdeskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditFreshdeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.freshdeskConfiguration,account:o.freshdeskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("FreshdeskAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_FRESHDESKCONFIGURATION",g.freshdeskConfiguration=angular.copy(l),g.configurations=r,g.newFreshdeskConfiguration=!1,g.freshdeskConfiguration||(g.freshdeskConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_FRESHDESKCONFIGURATION",g.newFreshdeskConfiguration=!0),g.addNewFreshdeskConfiguration=function(){g.errors=[],d.intFreshdeskAccount.addConfiguration({id:n.params.id},g.freshdeskConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"FreshdeskConfiguration properly created",msg:g.freshdeskConfiguration.name?g.freshdeskConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshdeskConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveFreshdeskConfiguration=function(){g.errors=[],d.intFreshdeskConfiguration.update({id:g.freshdeskConfiguration.id},g.freshdeskConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"FreshdeskConfiguration properly saved!",msg:g.freshdeskConfiguration.name?g.freshdeskConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshdeskConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteFreshdeskConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The freshdeskConfiguration will be deleted.").ariaLabel("Delete FreshdeskConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intFreshdeskConfiguration.delete({id:g.freshdeskConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.freshdeskConfiguration.id}),o.success({title:"FreshdeskConfiguration properly deleted!",msg:(g.freshdeskConfiguration.name||"freshdeskConfiguration")+" has been deleted!"}),v(g.freshdeskConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshdeskConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","freshdeskConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditFreshdeskConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intFreshdeskField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intFreshdeskField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intFreshdeskField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intFreshdeskAccount.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditFreshdeskAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.freshdeskAccount=c||e.params.freshdeskAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoFreshdeskAccounts=function(){e.go("app.integrations.freshdeskAccounts",{},{reload:"app.integrations.freshdeskAccounts"})},u.saveFreshdeskAccount=function(){r.intFreshdeskAccount.update({id:u.freshdeskAccount.id},u.freshdeskAccount).$promise.then(function(){l.success({title:"FreshdeskAccount updated!",msg:u.freshdeskAccount.name?u.freshdeskAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintFreshdeskAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","freshdeskAccount","userProfileSection"],angular.module("app.integrations").controller("FreshdeskAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.freshdeskAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="freshdeskAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedFreshdeskAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.integrations.freshdeskAccounts.edit",{id:e.id,freshdeskAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intFreshdeskAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"FreshdeskAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"FreshdeskAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("freshdeskAccount")+"?").htmlContent("<b>"+(e.name||"freshdeskAccount")+"</b> will be deleted.").ariaLabel("delete freshdeskAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getFreshdeskAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intFreshdeskAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="FreshdeskAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditFreshdeskAccount=function(e,n){i.show({controller:"CreateOrEditFreshdeskAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{freshdeskAccount:n,freshdeskAccounts:f.freshdeskAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteFreshdeskAccount=y,f.exportSelectedFreshdeskAccounts=function(){var e=angular.copy(f.selectedFreshdeskAccounts);return f.selectedFreshdeskAccounts=[],e},f.deleteSelectedFreshdeskAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected freshdeskAccounts?").htmlContent("<b>"+f.selectedFreshdeskAccounts.length+" selected</b> will be deleted.").ariaLabel("delete FreshdeskAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedFreshdeskAccounts.forEach(function(e){y(e)}),f.selectedFreshdeskAccounts=[]})},f.deselectFreshdeskAccounts=function(){f.selectedFreshdeskAccounts=[]},f.selectAllFreshdeskAccounts=function(){f.selectedFreshdeskAccounts=f.freshdeskAccounts.rows};var b=!0,A=1;function E(e){f.freshdeskAccounts=e||{count:0,rows:[]}}function y(e){m.intFreshdeskAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.freshdeskAccounts.rows,{id:e.id}),f.freshdeskAccounts.count-=1,f.freshdeskAccounts.rows.length||f.getFreshdeskAccounts(),p.success({title:_.startCase("FreshdeskAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintFreshdeskAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintFreshdeskAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getFreshdeskAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","freshdeskAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("FreshdeskAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_FRESHSALESACCOUNT",g.freshsalesAccount=angular.copy(l),g.freshsalesAccounts=r,g.newFreshsalesAccount=!1,g.freshsalesAccount||(g.freshsalesAccount={serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_FRESHSALESACCOUNT",g.newFreshsalesAccount=!0),g.addNewFreshsalesAccount=function(){g.errors=[],d.intFreshsalesAccount.save(g.freshsalesAccount).$promise.then(function(e){g.freshsalesAccounts.unshift(e.toJSON()),o.success({title:"FreshsalesAccount properly created",msg:g.freshsalesAccount.name?g.freshsalesAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshsalesAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshsalesAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveFreshsalesAccount=function(){g.errors=[],d.intFreshsalesAccount.update({id:g.freshsalesAccount.id},g.freshsalesAccount).$promise.then(function(e){var n=_.find(g.freshsalesAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"FreshsalesAccount properly saved!",msg:g.freshsalesAccount.name?g.freshsalesAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshsalesAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshsalesAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteFreshsalesAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The freshsalesAccount will be deleted.").ariaLabel("Delete FreshsalesAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intFreshsalesAccount.delete({id:g.freshsalesAccount.id}).$promise.then(function(){_.remove(g.freshsalesAccounts,{id:g.freshsalesAccount.id}),o.success({title:"FreshsalesAccount properly deleted!",msg:(g.freshsalesAccount.name||"freshsalesAccount")+" has been deleted!"}),v(g.freshsalesAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshsalesAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshsalesAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","freshsalesAccounts","freshsalesAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditFreshsalesAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intFreshsalesField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intFreshsalesField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intFreshsalesField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.freshsalesAccount={},o.freshsalesConfiguration={},o.configurations=[],o.selectedFreshsalesConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.freshsalesAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intFreshsalesAccount.getConfigurations({id:o.freshsalesAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getFreshsalesConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getFreshsalesConfiguration=function(e){o.freshsalesConfiguration=o.configurations[e],o.selectedFreshsalesConfiguration=e,i.intFreshsalesConfiguration.getSubjects({id:o.freshsalesConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intFreshsalesConfiguration.getDescriptions({id:o.freshsalesConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intFreshsalesConfiguration.getFields({id:o.freshsalesConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditFreshsalesConfiguration=function(e,n){a.show({controller:"CreateOrEditFreshsalesConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{freshsalesConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getFreshsalesConfiguration(0)})},o.deleteFreshsalesConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the freshsalesConfiguration?").htmlContent("<b>"+(n.name||"freshsalesConfiguration")+"</b> will be deleted.").ariaLabel("delete freshsalesConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intFreshsalesConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"FreshsalesConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getFreshsalesConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditFreshsalesAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.freshsalesConfiguration,account:o.freshsalesAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditFreshsalesAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.freshsalesConfiguration,account:o.freshsalesAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditFreshsalesAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.freshsalesConfiguration,account:o.freshsalesAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("FreshsalesAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_FRESHSALESCONFIGURATION",g.freshsalesConfiguration=angular.copy(l),g.configurations=r,g.newFreshsalesConfiguration=!1,g.freshsalesConfiguration||(g.freshsalesConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_FRESHSALESCONFIGURATION",g.newFreshsalesConfiguration=!0),g.addNewFreshsalesConfiguration=function(){g.errors=[],d.intFreshsalesAccount.addConfiguration({id:n.params.id},g.freshsalesConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"FreshsalesConfiguration properly created",msg:g.freshsalesConfiguration.name?g.freshsalesConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshsalesConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshsalesConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveFreshsalesConfiguration=function(){g.errors=[],d.intFreshsalesConfiguration.update({id:g.freshsalesConfiguration.id},g.freshsalesConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"FreshsalesConfiguration properly saved!",msg:g.freshsalesConfiguration.name?g.freshsalesConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshsalesConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshsalesConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteFreshsalesConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The freshsalesConfiguration will be deleted.").ariaLabel("Delete FreshsalesConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intFreshsalesConfiguration.delete({id:g.freshsalesConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.freshsalesConfiguration.id}),o.success({title:"FreshsalesConfiguration properly deleted!",msg:(g.freshsalesConfiguration.name||"freshsalesConfiguration")+" has been deleted!"}),v(g.freshsalesConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshsalesConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshsalesConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","freshsalesConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditFreshsalesConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intFreshsalesField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intFreshsalesField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intFreshsalesField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intFreshsalesAccount.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditFreshsalesAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.freshsalesAccount=c||e.params.freshsalesAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoFreshsalesAccounts=function(){e.go("app.integrations.freshsalesAccounts",{},{reload:"app.integrations.freshsalesAccounts"})},u.saveFreshsalesAccount=function(){r.intFreshsalesAccount.update({id:u.freshsalesAccount.id},u.freshsalesAccount).$promise.then(function(){l.success({title:"FreshsalesAccount updated!",msg:u.freshsalesAccount.name?u.freshsalesAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintFreshsalesAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","freshsalesAccount","userProfileSection"],angular.module("app.integrations").controller("FreshsalesAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.freshsalesAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="freshsalesAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedFreshsalesAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.integrations.freshsalesAccounts.edit",{id:e.id,freshsalesAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intFreshsalesAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"FreshsalesAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"FreshsalesAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("freshsalesAccount")+"?").htmlContent("<b>"+(e.name||"freshsalesAccount")+"</b> will be deleted.").ariaLabel("delete freshsalesAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getFreshsalesAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intFreshsalesAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="FreshsalesAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditFreshsalesAccount=function(e,n){i.show({controller:"CreateOrEditFreshsalesAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{freshsalesAccount:n,freshsalesAccounts:f.freshsalesAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteFreshsalesAccount=y,f.exportSelectedFreshsalesAccounts=function(){var e=angular.copy(f.selectedFreshsalesAccounts);return f.selectedFreshsalesAccounts=[],e},f.deleteSelectedFreshsalesAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected freshsalesAccounts?").htmlContent("<b>"+f.selectedFreshsalesAccounts.length+" selected</b> will be deleted.").ariaLabel("delete FreshsalesAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedFreshsalesAccounts.forEach(function(e){y(e)}),f.selectedFreshsalesAccounts=[]})},f.deselectFreshsalesAccounts=function(){f.selectedFreshsalesAccounts=[]},f.selectAllFreshsalesAccounts=function(){f.selectedFreshsalesAccounts=f.freshsalesAccounts.rows};var b=!0,A=1;function E(e){f.freshsalesAccounts=e||{count:0,rows:[]}}function y(e){m.intFreshsalesAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.freshsalesAccounts.rows,{id:e.id}),f.freshsalesAccounts.count-=1,f.freshsalesAccounts.rows.length||f.getFreshsalesAccounts(),p.success({title:_.startCase("FreshsalesAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintFreshsalesAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintFreshsalesAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getFreshsalesAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","freshsalesAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("FreshsalesAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_SALESFORCEACCOUNT",g.salesforceAccount=angular.copy(l),g.salesforceAccounts=r,g.newSalesforceAccount=!1,g.salesforceAccount||(g.salesforceAccount={type:"integrationTab",serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_SALESFORCEACCOUNT",g.newSalesforceAccount=!0),g.addNewSalesforceAccount=function(){g.errors=[],d.intSalesforceAccount.save(g.salesforceAccount).$promise.then(function(e){g.salesforceAccounts.unshift(e.toJSON()),o.success({title:"SalesforceAccount properly created",msg:g.salesforceAccount.name?g.salesforceAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSalesforceAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSalesforceAccount=function(){g.errors=[],d.intSalesforceAccount.update({id:g.salesforceAccount.id},g.salesforceAccount).$promise.then(function(e){var n=_.find(g.salesforceAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"SalesforceAccount properly saved!",msg:g.salesforceAccount.name?g.salesforceAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSalesforceAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSalesforceAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The salesforceAccount will be deleted.").ariaLabel("Delete SalesforceAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intSalesforceAccount.delete({id:g.salesforceAccount.id}).$promise.then(function(){_.remove(g.salesforceAccounts,{id:g.salesforceAccount.id}),o.success({title:"SalesforceAccount properly deleted!",msg:(g.salesforceAccount.name||"salesforceAccount")+" has been deleted!"}),v(g.salesforceAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSalesforceAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","salesforceAccounts","salesforceAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditSalesforceAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function n(){return"Case"===o.salesforceConfiguration.ticketType&&("lead"===o.salesforceConfiguration.moduleCreate||_.includes(["lead","contact_lead","account_contact_lead"],o.salesforceConfiguration.moduleSearch))}function r(){return _.includes(["lead","contact_lead","account_contact_lead"],o.salesforceConfiguration.moduleSearch)}function l(){return _.includes(["contact","contact_lead","account_contact_lead"],o.salesforceConfiguration.moduleSearch)}function d(){return _.includes(["account","account_contact_lead"],o.salesforceConfiguration.moduleSearch)}function c(){return i.intSalesforceConfiguration.update({id:o.salesforceConfiguration.id},o.salesforceConfiguration).$promise.then(function(){s.success({title:"Module updated!",msg:"Module has been updated!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function m(e){i.intSalesforceField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function u(e){i.intSalesforceField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function p(e){i.intSalesforceField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.salesforceAccount={},o.salesforceConfiguration={},o.configurations=[],o.selectedSalesforceConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.salesforceAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intSalesforceAccount.getConfigurations({id:o.salesforceAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getSalesforceConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getSalesforceConfiguration=function(e){o.salesforceConfiguration=o.configurations[e],o.salesforceConfiguration.isLead=n(),o.salesforceConfiguration.isLeadSearch=r(),o.salesforceConfiguration.isContactSearch=l(),o.salesforceConfiguration.isAccountSearch=d(),o.selectedSalesforceConfiguration=e,i.intSalesforceConfiguration.getSubjects({id:o.salesforceConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intSalesforceConfiguration.getDescriptions({id:o.salesforceConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intSalesforceConfiguration.getFields({id:o.salesforceConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditSalesforceConfiguration=function(e,n){a.show({controller:"CreateOrEditSalesforceConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{salesforceConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getSalesforceConfiguration(0)})},o.deleteSalesforceConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the salesforceConfiguration?").htmlContent("<b>"+(n.name||"salesforceConfiguration")+"</b> will be deleted.").ariaLabel("delete salesforceConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intSalesforceConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"SalesforceConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getSalesforceConfiguration(0)})},function(){console.log("CANCEL")})},o.selectChangedAdvanced=function(){o.salesforceConfiguration.isLead=n(),o.salesforceConfiguration.isLeadSearch=r(),o.salesforceConfiguration.isContactSearch=l(),o.salesforceConfiguration.isAccountSearch=d(),c()},o.salesforceConfiguration.isLead=!1,o.salesforceConfiguration.isLeadSearch=!1,o.salesforceConfiguration.isContactSearch=!1,o.salesforceConfiguration.isAccountSearch=!1,o.checkIsLead=n,o.checkIsLeadSearch=r,o.checkIsContactSearch=l,o.checkIsAccountSearch=d,o.saveSalesforceConfiguration=c,o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditSalesforceAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.salesforceConfiguration,account:o.salesforceAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){m(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){m(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditSalesforceAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.salesforceConfiguration,account:o.salesforceAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){u(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){u(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditSalesforceAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.salesforceConfiguration,account:o.salesforceAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){p(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){p(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("SalesforceAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_SALESFORCECONFIGURATION",g.salesforceConfiguration=angular.copy(l),g.configurations=r,g.newSalesforceConfiguration=!1,g.salesforceConfiguration||(g.salesforceConfiguration={channel:"voice",type:"inbound",ticketType:"Task"},g.title="INTEGRATIONS.NEW_SALESFORCECONFIGURATION",g.newSalesforceConfiguration=!0),g.addNewSalesforceConfiguration=function(){g.errors=[],d.intSalesforceAccount.addConfiguration({id:n.params.id},g.salesforceConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"SalesforceConfiguration properly created",msg:g.salesforceConfiguration.name?g.salesforceConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSalesforceConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSalesforceConfiguration=function(){g.errors=[],d.intSalesforceConfiguration.update({id:g.salesforceConfiguration.id},g.salesforceConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"SalesforceConfiguration properly saved!",msg:g.salesforceConfiguration.name?g.salesforceConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSalesforceConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSalesforceConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The salesforceConfiguration will be deleted.").ariaLabel("Delete SalesforceConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intSalesforceConfiguration.delete({id:g.salesforceConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.salesforceConfiguration.id}),o.success({title:"SalesforceConfiguration properly deleted!",msg:(g.salesforceConfiguration.name||"salesforceConfiguration")+" has been deleted!"}),v(g.salesforceConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSalesforceConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","salesforceConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditSalesforceConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intSalesforceField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intSalesforceField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intSalesforceField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intSalesforceAccount.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditSalesforceAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.salesforceAccount=c||e.params.salesforceAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoSalesforceAccounts=function(){e.go("app.integrations.salesforceAccounts",{},{reload:"app.integrations.salesforceAccounts"})},u.saveSalesforceAccount=function(){r.intSalesforceAccount.update({id:u.salesforceAccount.id},u.salesforceAccount).$promise.then(function(){l.success({title:"SalesforceAccount updated!",msg:u.salesforceAccount.name?u.salesforceAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintSalesforceAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","salesforceAccount","userProfileSection"],angular.module("app.integrations").controller("SalesforceAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.salesforceAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="salesforceAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedSalesforceAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,type,username,remoteUri,password,clientId,clientSecret,securityToken,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.arraytype=_.keyBy([{option:"Integration_Tab",value:"'integrationTab'"},{option:"New_Tab",value:"'newTab'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.integrations.salesforceAccounts.edit",{id:e.id,salesforceAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intSalesforceAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"SalesforceAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"SalesforceAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("salesforceAccount")+"?").htmlContent("<b>"+(e.name||"salesforceAccount")+"</b> will be deleted.").ariaLabel("delete salesforceAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getSalesforceAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intSalesforceAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="SalesforceAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSalesforceAccount=function(e,n){i.show({controller:"CreateOrEditSalesforceAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{salesforceAccount:n,salesforceAccounts:f.salesforceAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSalesforceAccount=y,f.exportSelectedSalesforceAccounts=function(){var e=angular.copy(f.selectedSalesforceAccounts);return f.selectedSalesforceAccounts=[],e},f.deleteSelectedSalesforceAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected salesforceAccounts?").htmlContent("<b>"+f.selectedSalesforceAccounts.length+" selected</b> will be deleted.").ariaLabel("delete SalesforceAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedSalesforceAccounts.forEach(function(e){y(e)}),f.selectedSalesforceAccounts=[]})},f.deselectSalesforceAccounts=function(){f.selectedSalesforceAccounts=[]},f.selectAllSalesforceAccounts=function(){f.selectedSalesforceAccounts=f.salesforceAccounts.rows};var b=!0,A=1;function E(e){f.salesforceAccounts=e||{count:0,rows:[]}}function y(e){m.intSalesforceAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.salesforceAccounts.rows,{id:e.id}),f.salesforceAccounts.count-=1,f.salesforceAccounts.rows.length||f.getSalesforceAccounts(),p.success({title:_.startCase("SalesforceAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintSalesforceAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintSalesforceAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getSalesforceAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","salesforceAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("SalesforceAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_SERVICENOWACCOUNT",g.servicenowAccount=angular.copy(l),g.servicenowAccounts=r,g.newServicenowAccount=!1,g.servicenowAccount||(g.servicenowAccount={serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_SERVICENOWACCOUNT",g.newServicenowAccount=!0),g.addNewServicenowAccount=function(){g.errors=[],d.intServicenowAccount.save(g.servicenowAccount).$promise.then(function(e){g.servicenowAccounts.unshift(e.toJSON()),o.success({title:"ServicenowAccount properly created",msg:g.servicenowAccount.name?g.servicenowAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intServicenowAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intServicenowAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveServicenowAccount=function(){g.errors=[],d.intServicenowAccount.update({id:g.servicenowAccount.id},g.servicenowAccount).$promise.then(function(e){var n=_.find(g.servicenowAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ServicenowAccount properly saved!",msg:g.servicenowAccount.name?g.servicenowAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intServicenowAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intServicenowAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteServicenowAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The servicenowAccount will be deleted.").ariaLabel("Delete ServicenowAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intServicenowAccount.delete({id:g.servicenowAccount.id}).$promise.then(function(){_.remove(g.servicenowAccounts,{id:g.servicenowAccount.id}),o.success({title:"ServicenowAccount properly deleted!",msg:(g.servicenowAccount.name||"servicenowAccount")+" has been deleted!"}),v(g.servicenowAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intServicenowAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intServicenowAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","servicenowAccounts","servicenowAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditServicenowAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intServicenowField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intServicenowField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intServicenowField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.servicenowAccount={},o.servicenowConfiguration={},o.configurations=[],o.selectedServicenowConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.servicenowAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intServicenowAccount.getConfigurations({id:o.servicenowAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getServicenowConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getServicenowConfiguration=function(e){o.servicenowConfiguration=o.configurations[e],o.selectedServicenowConfiguration=e,i.intServicenowConfiguration.getSubjects({id:o.servicenowConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intServicenowConfiguration.getDescriptions({id:o.servicenowConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intServicenowConfiguration.getFields({id:o.servicenowConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditServicenowConfiguration=function(e,n){a.show({controller:"CreateOrEditServicenowConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/servicenowAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{servicenowConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getServicenowConfiguration(0)})},o.deleteServicenowConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the servicenowConfiguration?").htmlContent("<b>"+(n.name||"servicenowConfiguration")+"</b> will be deleted.").ariaLabel("delete servicenowConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intServicenowConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"ServicenowConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getServicenowConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditServicenowAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/servicenowAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.servicenowConfiguration,account:o.servicenowAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditServicenowAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/servicenowAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.servicenowConfiguration,account:o.servicenowAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditServicenowAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/servicenowAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.servicenowConfiguration,account:o.servicenowAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("ServicenowAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_SERVICENOWCONFIGURATION",g.servicenowConfiguration=angular.copy(l),g.configurations=r,g.newServicenowConfiguration=!1,g.servicenowConfiguration||(g.servicenowConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_SERVICENOWCONFIGURATION",g.newServicenowConfiguration=!0),g.addNewServicenowConfiguration=function(){g.errors=[],d.intServicenowAccount.addConfiguration({id:n.params.id},g.servicenowConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"ServicenowConfiguration properly created",msg:g.servicenowConfiguration.name?g.servicenowConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intServicenowConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intServicenowConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveServicenowConfiguration=function(){g.errors=[],d.intServicenowConfiguration.update({id:g.servicenowConfiguration.id},g.servicenowConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ServicenowConfiguration properly saved!",msg:g.servicenowConfiguration.name?g.servicenowConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intServicenowConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intServicenowConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteServicenowConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The servicenowConfiguration will be deleted.").ariaLabel("Delete ServicenowConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intServicenowConfiguration.delete({id:g.servicenowConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.servicenowConfiguration.id}),o.success({title:"ServicenowConfiguration properly deleted!",msg:(g.servicenowConfiguration.name||"servicenowConfiguration")+" has been deleted!"}),v(g.servicenowConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intServicenowConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intServicenowConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","servicenowConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditServicenowConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intServicenowField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intServicenowField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intServicenowField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intServicenowAccount.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditServicenowAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.servicenowAccount=c||e.params.servicenowAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoServicenowAccounts=function(){e.go("app.integrations.servicenowAccounts",{},{reload:"app.integrations.servicenowAccounts"})},u.saveServicenowAccount=function(){r.intServicenowAccount.update({id:u.servicenowAccount.id},u.servicenowAccount).$promise.then(function(){l.success({title:"ServicenowAccount updated!",msg:u.servicenowAccount.name?u.servicenowAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintServicenowAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","servicenowAccount","userProfileSection"],angular.module("app.integrations").controller("ServicenowAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.servicenowAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="servicenowAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedServicenowAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,username,password,email,remoteUri,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.integrations.servicenowAccounts.edit",{id:e.id,servicenowAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intServicenowAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"ServicenowAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"ServicenowAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("servicenowAccount")+"?").htmlContent("<b>"+(e.name||"servicenowAccount")+"</b> will be deleted.").ariaLabel("delete servicenowAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getServicenowAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intServicenowAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ServicenowAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditServicenowAccount=function(e,n){i.show({controller:"CreateOrEditServicenowAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/servicenowAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{servicenowAccount:n,servicenowAccounts:f.servicenowAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteServicenowAccount=y,f.exportSelectedServicenowAccounts=function(){var e=angular.copy(f.selectedServicenowAccounts);return f.selectedServicenowAccounts=[],e},f.deleteSelectedServicenowAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected servicenowAccounts?").htmlContent("<b>"+f.selectedServicenowAccounts.length+" selected</b> will be deleted.").ariaLabel("delete ServicenowAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedServicenowAccounts.forEach(function(e){y(e)}),f.selectedServicenowAccounts=[]})},f.deselectServicenowAccounts=function(){f.selectedServicenowAccounts=[]},f.selectAllServicenowAccounts=function(){f.selectedServicenowAccounts=f.servicenowAccounts.rows};var b=!0,A=1;function E(e){f.servicenowAccounts=e||{count:0,rows:[]}}function y(e){m.intServicenowAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.servicenowAccounts.rows,{id:e.id}),f.servicenowAccounts.count-=1,f.servicenowAccounts.rows.length||f.getServicenowAccounts(),p.success({title:_.startCase("ServicenowAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintServicenowAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintServicenowAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getServicenowAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","servicenowAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("ServicenowAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_SUGARCRMACCOUNT",g.sugarcrmAccount=angular.copy(l),g.sugarcrmAccounts=r,g.newSugarcrmAccount=!1,g.sugarcrmAccount||(g.sugarcrmAccount={serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_SUGARCRMACCOUNT",g.newSugarcrmAccount=!0),g.addNewSugarcrmAccount=function(){g.errors=[],d.intSugarcrmAccount.save(g.sugarcrmAccount).$promise.then(function(e){g.sugarcrmAccounts.unshift(e.toJSON()),o.success({title:"SugarcrmAccount properly created",msg:g.sugarcrmAccount.name?g.sugarcrmAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSugarcrmAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSugarcrmAccount=function(){g.errors=[],d.intSugarcrmAccount.update({id:g.sugarcrmAccount.id},g.sugarcrmAccount).$promise.then(function(e){var n=_.find(g.sugarcrmAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"SugarcrmAccount properly saved!",msg:g.sugarcrmAccount.name?g.sugarcrmAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSugarcrmAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSugarcrmAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The sugarcrmAccount will be deleted.").ariaLabel("Delete SugarcrmAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intSugarcrmAccount.delete({id:g.sugarcrmAccount.id}).$promise.then(function(){_.remove(g.sugarcrmAccounts,{id:g.sugarcrmAccount.id}),o.success({title:"SugarcrmAccount properly deleted!",msg:(g.sugarcrmAccount.name||"sugarcrmAccount")+" has been deleted!"}),v(g.sugarcrmAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSugarcrmAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","sugarcrmAccounts","sugarcrmAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditSugarcrmAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intSugarcrmField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intSugarcrmField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intSugarcrmField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.sugarcrmAccount={},o.sugarcrmConfiguration={},o.configurations=[],o.selectedSugarcrmConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.sugarcrmAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intSugarcrmAccount.getConfigurations({id:o.sugarcrmAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getSugarcrmConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getSugarcrmConfiguration=function(e){o.sugarcrmConfiguration=o.configurations[e],o.selectedSugarcrmConfiguration=e,i.intSugarcrmConfiguration.getSubjects({id:o.sugarcrmConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intSugarcrmConfiguration.getDescriptions({id:o.sugarcrmConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intSugarcrmConfiguration.getFields({id:o.sugarcrmConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditSugarcrmConfiguration=function(e,n){a.show({controller:"CreateOrEditSugarcrmConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{sugarcrmConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getSugarcrmConfiguration(0)})},o.deleteSugarcrmConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the sugarcrmConfiguration?").htmlContent("<b>"+(n.name||"sugarcrmConfiguration")+"</b> will be deleted.").ariaLabel("delete sugarcrmConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intSugarcrmConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"SugarcrmConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getSugarcrmConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditSugarcrmAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.sugarcrmConfiguration,account:o.sugarcrmAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditSugarcrmAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.sugarcrmConfiguration,account:o.sugarcrmAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditSugarcrmAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.sugarcrmConfiguration,account:o.sugarcrmAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("SugarcrmAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_SUGARCRMCONFIGURATION",g.sugarcrmConfiguration=angular.copy(l),g.configurations=r,g.newSugarcrmConfiguration=!1,g.sugarcrmConfiguration||(g.sugarcrmConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_SUGARCRMCONFIGURATION",g.newSugarcrmConfiguration=!0),g.addNewSugarcrmConfiguration=function(){g.errors=[],d.intSugarcrmAccount.addConfiguration({id:n.params.id},g.sugarcrmConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"SugarcrmConfiguration properly created",msg:g.sugarcrmConfiguration.name?g.sugarcrmConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSugarcrmConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSugarcrmConfiguration=function(){g.errors=[],d.intSugarcrmConfiguration.update({id:g.sugarcrmConfiguration.id},g.sugarcrmConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"SugarcrmConfiguration properly saved!",msg:g.sugarcrmConfiguration.name?g.sugarcrmConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSugarcrmConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSugarcrmConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The sugarcrmConfiguration will be deleted.").ariaLabel("Delete SugarcrmConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intSugarcrmConfiguration.delete({id:g.sugarcrmConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.sugarcrmConfiguration.id}),o.success({title:"SugarcrmConfiguration properly deleted!",msg:(g.sugarcrmConfiguration.name||"sugarcrmConfiguration")+" has been deleted!"}),v(g.sugarcrmConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSugarcrmConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","sugarcrmConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditSugarcrmConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intSugarcrmField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intSugarcrmField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intSugarcrmField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intSugarcrmAccount.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditSugarcrmAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.sugarcrmAccount=c||e.params.sugarcrmAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoSugarcrmAccounts=function(){e.go("app.integrations.sugarcrmAccounts",{},{reload:"app.integrations.sugarcrmAccounts"})},u.saveSugarcrmAccount=function(){r.intSugarcrmAccount.update({id:u.sugarcrmAccount.id},u.sugarcrmAccount).$promise.then(function(){l.success({title:"SugarcrmAccount updated!",msg:u.sugarcrmAccount.name?u.sugarcrmAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintSugarcrmAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","sugarcrmAccount","userProfileSection"],angular.module("app.integrations").controller("SugarcrmAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.sugarcrmAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="sugarcrmAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedSugarcrmAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,username,remoteUri,password,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.integrations.sugarcrmAccounts.edit",{id:e.id,sugarcrmAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intSugarcrmAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"SugarcrmAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"SugarcrmAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("sugarcrmAccount")+"?").htmlContent("<b>"+(e.name||"sugarcrmAccount")+"</b> will be deleted.").ariaLabel("delete sugarcrmAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getSugarcrmAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intSugarcrmAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="SugarcrmAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSugarcrmAccount=function(e,n){i.show({controller:"CreateOrEditSugarcrmAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{sugarcrmAccount:n,sugarcrmAccounts:f.sugarcrmAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSugarcrmAccount=y,f.exportSelectedSugarcrmAccounts=function(){var e=angular.copy(f.selectedSugarcrmAccounts);return f.selectedSugarcrmAccounts=[],e},f.deleteSelectedSugarcrmAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected sugarcrmAccounts?").htmlContent("<b>"+f.selectedSugarcrmAccounts.length+" selected</b> will be deleted.").ariaLabel("delete SugarcrmAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedSugarcrmAccounts.forEach(function(e){y(e)}),f.selectedSugarcrmAccounts=[]})},f.deselectSugarcrmAccounts=function(){f.selectedSugarcrmAccounts=[]},f.selectAllSugarcrmAccounts=function(){f.selectedSugarcrmAccounts=f.sugarcrmAccounts.rows};var b=!0,A=1;function E(e){f.sugarcrmAccounts=e||{count:0,rows:[]}}function y(e){m.intSugarcrmAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.sugarcrmAccounts.rows,{id:e.id}),f.sugarcrmAccounts.count-=1,f.sugarcrmAccounts.rows.length||f.getSugarcrmAccounts(),p.success({title:_.startCase("SugarcrmAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintSugarcrmAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintSugarcrmAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getSugarcrmAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","sugarcrmAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("SugarcrmAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_VTIGERACCOUNT",g.vtigerAccount=angular.copy(l),g.vtigerAccounts=r,g.newVtigerAccount=!1,g.vtigerAccount||(g.vtigerAccount={serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_VTIGERACCOUNT",g.newVtigerAccount=!0),g.addNewVtigerAccount=function(){g.errors=[],d.intVtigerAccount.save(g.vtigerAccount).$promise.then(function(e){g.vtigerAccounts.unshift(e.toJSON()),o.success({title:"VtigerAccount properly created",msg:g.vtigerAccount.name?g.vtigerAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intVtigerAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveVtigerAccount=function(){g.errors=[],d.intVtigerAccount.update({id:g.vtigerAccount.id},g.vtigerAccount).$promise.then(function(e){var n=_.find(g.vtigerAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"VtigerAccount properly saved!",msg:g.vtigerAccount.name?g.vtigerAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intVtigerAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteVtigerAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The vtigerAccount will be deleted.").ariaLabel("Delete VtigerAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intVtigerAccount.delete({id:g.vtigerAccount.id}).$promise.then(function(){_.remove(g.vtigerAccounts,{id:g.vtigerAccount.id}),o.success({title:"VtigerAccount properly deleted!",msg:(g.vtigerAccount.name||"vtigerAccount")+" has been deleted!"}),v(g.vtigerAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intVtigerAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","vtigerAccounts","vtigerAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditVtigerAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intVtigerField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intVtigerField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intVtigerField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.vtigerAccount={},o.vtigerConfiguration={},o.configurations=[],o.selectedVtigerConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.vtigerAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intVtigerAccount.getConfigurations({id:o.vtigerAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getVtigerConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getVtigerConfiguration=function(e){o.vtigerConfiguration=o.configurations[e],o.selectedVtigerConfiguration=e,i.intVtigerConfiguration.getSubjects({id:o.vtigerConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intVtigerConfiguration.getDescriptions({id:o.vtigerConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intVtigerConfiguration.getFields({id:o.vtigerConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditVtigerConfiguration=function(e,n){a.show({controller:"CreateOrEditVtigerConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/vtigerAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{vtigerConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getVtigerConfiguration(0)})},o.deleteVtigerConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the vtigerConfiguration?").htmlContent("<b>"+(n.name||"vtigerConfiguration")+"</b> will be deleted.").ariaLabel("delete vtigerConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intVtigerConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"VtigerConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getVtigerConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditVtigerAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/vtigerAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.vtigerConfiguration,account:o.vtigerAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditVtigerAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/vtigerAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.vtigerConfiguration,account:o.vtigerAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditVtigerAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/vtigerAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.vtigerConfiguration,account:o.vtigerAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("VtigerAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_VTIGERCONFIGURATION",g.vtigerConfiguration=angular.copy(l),g.configurations=r,g.newVtigerConfiguration=!1,g.vtigerConfiguration||(g.vtigerConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_VTIGERCONFIGURATION",g.newVtigerConfiguration=!0),g.addNewVtigerConfiguration=function(){g.errors=[],d.intVtigerAccount.addConfiguration({id:n.params.id},g.vtigerConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"VtigerConfiguration properly created",msg:g.vtigerConfiguration.name?g.vtigerConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intVtigerConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveVtigerConfiguration=function(){g.errors=[],d.intVtigerConfiguration.update({id:g.vtigerConfiguration.id},g.vtigerConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"VtigerConfiguration properly saved!",msg:g.vtigerConfiguration.name?g.vtigerConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intVtigerConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteVtigerConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The vtigerConfiguration will be deleted.").ariaLabel("Delete VtigerConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intVtigerConfiguration.delete({id:g.vtigerConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.vtigerConfiguration.id}),o.success({title:"VtigerConfiguration properly deleted!",msg:(g.vtigerConfiguration.name||"vtigerConfiguration")+" has been deleted!"}),v(g.vtigerConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intVtigerConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","vtigerConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditVtigerConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intVtigerField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intVtigerField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intVtigerField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intVtigerAccount.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditVtigerAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.vtigerAccount=c||e.params.vtigerAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoVtigerAccounts=function(){e.go("app.integrations.vtigerAccounts",{},{reload:"app.integrations.vtigerAccounts"})},u.saveVtigerAccount=function(){r.intVtigerAccount.update({id:u.vtigerAccount.id},u.vtigerAccount).$promise.then(function(){l.success({title:"VtigerAccount updated!",msg:u.vtigerAccount.name?u.vtigerAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintVtigerAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","vtigerAccount","userProfileSection"],angular.module("app.integrations").controller("VtigerAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.vtigerAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="vtigerAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedVtigerAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,description,username,accessKey,remoteUri,serverUrl",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.integrations.vtigerAccounts.edit",{id:e.id,vtigerAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intVtigerAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"VtigerAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"VtigerAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("vtigerAccount")+"?").htmlContent("<b>"+(e.name||"vtigerAccount")+"</b> will be deleted.").ariaLabel("delete vtigerAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getVtigerAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intVtigerAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="VtigerAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditVtigerAccount=function(e,n){i.show({controller:"CreateOrEditVtigerAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/vtigerAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{vtigerAccount:n,vtigerAccounts:f.vtigerAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteVtigerAccount=y,f.exportSelectedVtigerAccounts=function(){var e=angular.copy(f.selectedVtigerAccounts);return f.selectedVtigerAccounts=[],e},f.deleteSelectedVtigerAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected vtigerAccounts?").htmlContent("<b>"+f.selectedVtigerAccounts.length+" selected</b> will be deleted.").ariaLabel("delete VtigerAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedVtigerAccounts.forEach(function(e){y(e)}),f.selectedVtigerAccounts=[]})},f.deselectVtigerAccounts=function(){f.selectedVtigerAccounts=[]},f.selectAllVtigerAccounts=function(){f.selectedVtigerAccounts=f.vtigerAccounts.rows};var b=!0,A=1;function E(e){f.vtigerAccounts=e||{count:0,rows:[]}}function y(e){m.intVtigerAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.vtigerAccounts.rows,{id:e.id}),f.vtigerAccounts.count-=1,f.vtigerAccounts.rows.length||f.getVtigerAccounts(),p.success({title:_.startCase("VtigerAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintVtigerAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintVtigerAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getVtigerAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","vtigerAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("VtigerAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_ZENDESKACCOUNT",g.zendeskAccount=angular.copy(l),g.zendeskAccounts=r,g.newZendeskAccount=!1,g.zendeskAccount||(g.zendeskAccount={type:"integrationTab",authType:"password",serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_ZENDESKACCOUNT",g.newZendeskAccount=!0),g.addNewZendeskAccount=function(){g.errors=[],d.intZendeskAccount.save(g.zendeskAccount).$promise.then(function(e){g.zendeskAccounts.unshift(e.toJSON()),o.success({title:"ZendeskAccount properly created",msg:g.zendeskAccount.name?g.zendeskAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZendeskAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveZendeskAccount=function(){g.errors=[],d.intZendeskAccount.update({id:g.zendeskAccount.id},g.zendeskAccount).$promise.then(function(e){var n=_.find(g.zendeskAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ZendeskAccount properly saved!",msg:g.zendeskAccount.name?g.zendeskAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZendeskAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteZendeskAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The zendeskAccount will be deleted.").ariaLabel("Delete ZendeskAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intZendeskAccount.delete({id:g.zendeskAccount.id}).$promise.then(function(){_.remove(g.zendeskAccounts,{id:g.zendeskAccount.id}),o.success({title:"ZendeskAccount properly deleted!",msg:(g.zendeskAccount.name||"zendeskAccount")+" has been deleted!"}),v(g.zendeskAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZendeskAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","zendeskAccounts","zendeskAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditZendeskAccountDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intZendeskField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intZendeskField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intZendeskField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intZendeskAccount.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditZendeskAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.zendeskAccount=c||e.params.zendeskAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoZendeskAccounts=function(){e.go("app.integrations.zendeskAccounts",{},{reload:"app.integrations.zendeskAccounts"})},u.saveZendeskAccount=function(){r.intZendeskAccount.update({id:u.zendeskAccount.id},u.zendeskAccount).$promise.then(function(){l.success({title:"ZendeskAccount updated!",msg:u.zendeskAccount.name?u.zendeskAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintZendeskAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","zendeskAccount","userProfileSection"],angular.module("app.integrations").controller("ZendeskAccountController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intZendeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intZendeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intZendeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.zendeskAccount={},o.zendeskConfiguration={},o.zendeskConfigurations=[],o.selectedZendeskConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.zendeskAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intZendeskAccount.getConfigurations({id:o.zendeskAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.zendeskConfigurations=e.rows?e.rows:[],o.zendeskConfigurations.length&&o.getZendeskConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getZendeskConfiguration=function(e){o.zendeskConfiguration=o.zendeskConfigurations[e],o.selectedZendeskConfiguration=e,i.intZendeskConfiguration.getSubjects({id:o.zendeskConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intZendeskConfiguration.getDescriptions({id:o.zendeskConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intZendeskConfiguration.getFields({id:o.zendeskConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.intZendeskConfiguration.getTags({id:o.zendeskConfiguration.id}).$promise.then(function(e){o.selectedTags=e.rows?_.map(e.rows,"id"):[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditZendeskConfiguration=function(e,n){a.show({controller:"CreateOrEditZendeskConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/zendeskConfigurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{zendeskConfiguration:n,zendeskConfigurations:o.zendeskConfigurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getZendeskConfiguration(0)})},o.deleteZendeskConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the zendeskConfiguration?").htmlContent("<b>"+(n.name||"zendeskConfiguration")+"</b> will be deleted.").ariaLabel("delete zendeskConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intZendeskConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.zendeskConfigurations,{id:n.id}),s.success({title:"ZendeskConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getZendeskConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedTags=[],o.selectTagsChanged=function(e){i.intZendeskConfiguration.setTags({id:o.zendeskConfiguration.id,ids:o.selectedTags}).$promise.then(function(){s.success({title:"Tags set!",msg:"Tags has been set!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ADDTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},i.tag.get({nolimit:!0,sort:"name"}).$promise.then(function(e){o.tags=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}),o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditZendeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.zendeskConfiguration,account:o.zendeskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditZendeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.zendeskConfiguration,account:o.zendeskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditZendeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.zendeskConfiguration,account:o.zendeskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("ZendeskAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_ZENDESKCONFIGURATION",g.zendeskConfiguration=angular.copy(l),g.zendeskConfigurations=r,g.newZendeskConfiguration=!1,g.zendeskConfiguration||(g.zendeskConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_ZENDESKCONFIGURATION",g.newZendeskConfiguration=!0),g.addNewZendeskConfiguration=function(){g.errors=[],d.intZendeskAccount.addConfiguration({id:n.params.id},g.zendeskConfiguration).$promise.then(function(e){g.zendeskConfigurations.unshift(e.toJSON()),o.success({title:"ZendeskConfiguration properly created",msg:g.zendeskConfiguration.name?g.zendeskConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZendeskConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveZendeskConfiguration=function(){g.errors=[],d.intZendeskConfiguration.update({id:g.zendeskConfiguration.id},g.zendeskConfiguration).$promise.then(function(e){var n=_.find(g.zendeskConfigurations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ZendeskConfiguration properly saved!",msg:g.zendeskConfiguration.name?g.zendeskConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZendeskConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteZendeskConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The zendeskConfiguration will be deleted.").ariaLabel("Delete ZendeskConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intZendeskConfiguration.delete({id:g.zendeskConfiguration.id}).$promise.then(function(){_.remove(g.zendeskConfigurations,{id:g.zendeskConfiguration.id}),o.success({title:"ZendeskConfiguration properly deleted!",msg:(g.zendeskConfiguration.name||"zendeskConfiguration")+" has been deleted!"}),v(g.zendeskConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZendeskConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","zendeskConfigurations","zendeskConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditZendeskConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.zendeskAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="zendeskAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedZendeskAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,type,username,remoteUri,authType,password,token,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.arraytype=_.keyBy([{option:"Integration_Tab",value:"'integrationTab'"},{option:"New_Tab",value:"'newTab'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayauthType=_.keyBy([{option:"Password",value:"'password'"},{option:"Token",value:"'token'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.integrations.zendeskAccounts.edit",{id:e.id,zendeskAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intZendeskAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"ZendeskAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"ZendeskAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("zendeskAccount")+"?").htmlContent("<b>"+(e.name||"zendeskAccount")+"</b> will be deleted.").ariaLabel("delete zendeskAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getZendeskAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intZendeskAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ZendeskAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditZendeskAccount=function(e,n){i.show({controller:"CreateOrEditZendeskAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{zendeskAccount:n,zendeskAccounts:f.zendeskAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteZendeskAccount=y,f.exportSelectedZendeskAccounts=function(){var e=angular.copy(f.selectedZendeskAccounts);return f.selectedZendeskAccounts=[],e},f.deleteSelectedZendeskAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected zendeskAccounts?").htmlContent("<b>"+f.selectedZendeskAccounts.length+" selected</b> will be deleted.").ariaLabel("delete ZendeskAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedZendeskAccounts.forEach(function(e){y(e)}),f.selectedZendeskAccounts=[]})},f.deselectZendeskAccounts=function(){f.selectedZendeskAccounts=[]},f.selectAllZendeskAccounts=function(){f.selectedZendeskAccounts=f.zendeskAccounts.rows};var b=!0,A=1;function E(e){f.zendeskAccounts=e||{count:0,rows:[]}}function y(e){m.intZendeskAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.zendeskAccounts.rows,{id:e.id}),f.zendeskAccounts.count-=1,f.zendeskAccounts.rows.length||f.getZendeskAccounts(),p.success({title:_.startCase("ZendeskAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintZendeskAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintZendeskAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getZendeskAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","zendeskAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("ZendeskAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_ZOHOACCOUNT",g.zohoAccount=angular.copy(l),g.zohoAccounts=r,g.newZohoAccount=!1,g.zohoAccount||(g.zohoAccount={host:"zoho.com",zone:"EU",serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_ZOHOACCOUNT",g.newZohoAccount=!0),g.addNewZohoAccount=function(){g.errors=[],d.intZohoAccount.save(g.zohoAccount).$promise.then(function(e){g.zohoAccounts.unshift(e.toJSON()),o.success({title:"ZohoAccount properly created",msg:g.zohoAccount.name?g.zohoAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZohoAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveZohoAccount=function(){g.errors=[],d.intZohoAccount.update({id:g.zohoAccount.id},g.zohoAccount).$promise.then(function(e){var n=_.find(g.zohoAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ZohoAccount properly saved!",msg:g.zohoAccount.name?g.zohoAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZohoAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteZohoAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The zohoAccount will be deleted.").ariaLabel("Delete ZohoAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intZohoAccount.delete({id:g.zohoAccount.id}).$promise.then(function(){_.remove(g.zohoAccounts,{id:g.zohoAccount.id}),o.success({title:"ZohoAccount properly deleted!",msg:(g.zohoAccount.name||"zohoAccount")+" has been deleted!"}),v(g.zohoAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZohoAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","zohoAccounts","zohoAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditZohoAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intZohoField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intZohoField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intZohoField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.zohoAccount={},o.zohoConfiguration={},o.configurations=[],o.selectedZohoConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.zohoAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intZohoAccount.getConfigurations({id:o.zohoAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getZohoConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getZohoConfiguration=function(e){o.zohoConfiguration=o.configurations[e],o.selectedZohoConfiguration=e,i.intZohoConfiguration.getSubjects({id:o.zohoConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intZohoConfiguration.getDescriptions({id:o.zohoConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intZohoConfiguration.getFields({id:o.zohoConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditZohoConfiguration=function(e,n){a.show({controller:"CreateOrEditZohoConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{zohoConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getZohoConfiguration(0)})},o.deleteZohoConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the zohoConfiguration?").htmlContent("<b>"+(n.name||"zohoConfiguration")+"</b> will be deleted.").ariaLabel("delete zohoConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intZohoConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"ZohoConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getZohoConfiguration(0)})},function(){console.log("CANCEL")})},o.selectChangedAdvanced=function(){i.intZohoConfiguration.update({id:o.zohoConfiguration.id},o.zohoConfiguration).$promise.then(function(){s.success({title:"Module updated!",msg:"Module has been updated!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditZohoAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.zohoConfiguration,account:o.zohoAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditZohoAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.zohoConfiguration,account:o.zohoAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditZohoAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.zohoConfiguration,account:o.zohoAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("ZohoAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_ZOHOCONFIGURATION",g.zohoConfiguration=angular.copy(l),g.configurations=r,g.newZohoConfiguration=!1,g.zohoConfiguration||(g.zohoConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_ZOHOCONFIGURATION",g.newZohoConfiguration=!0),g.addNewZohoConfiguration=function(){g.errors=[],d.intZohoAccount.addConfiguration({id:n.params.id},g.zohoConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"ZohoConfiguration properly created",msg:g.zohoConfiguration.name?g.zohoConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZohoConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveZohoConfiguration=function(){g.errors=[],d.intZohoConfiguration.update({id:g.zohoConfiguration.id},g.zohoConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ZohoConfiguration properly saved!",msg:g.zohoConfiguration.name?g.zohoConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZohoConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteZohoConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The zohoConfiguration will be deleted.").ariaLabel("Delete ZohoConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intZohoConfiguration.delete({id:g.zohoConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.zohoConfiguration.id}),o.success({title:"ZohoConfiguration properly deleted!",msg:(g.zohoConfiguration.name||"zohoConfiguration")+" has been deleted!"}),v(g.zohoConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZohoConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","zohoConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditZohoConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intZohoField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intZohoField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intZohoField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intZohoAccount.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditZohoAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.zohoAccount=c||e.params.zohoAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoZohoAccounts=function(){e.go("app.integrations.zohoAccounts",{},{reload:"app.integrations.zohoAccounts"})},u.saveZohoAccount=function(){r.intZohoAccount.update({id:u.zohoAccount.id},u.zohoAccount).$promise.then(function(){l.success({title:"ZohoAccount updated!",msg:u.zohoAccount.name?u.zohoAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintZohoAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","zohoAccount","userProfileSection"],angular.module("app.integrations").controller("ZohoAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.zohoAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="zohoAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedZohoAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,host,zone,clientId,clientSecret,code,refreshToken,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.arrayhost=_.keyBy([{option:"zoho.com",value:"'zoho.com'"},{option:"zoho.eu",value:"'zoho.eu'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayzone=_.keyBy([{option:"US",value:"'US'"},{option:"AU",value:"'AU'"},{option:"EU",value:"'EU'"},{option:"IN",value:"'IN'"},{option:"CN",value:"'CN'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.integrations.zohoAccounts.edit",{id:e.id,zohoAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intZohoAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"ZohoAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"ZohoAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("zohoAccount")+"?").htmlContent("<b>"+(e.name||"zohoAccount")+"</b> will be deleted.").ariaLabel("delete zohoAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getZohoAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intZohoAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ZohoAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditZohoAccount=function(e,n){i.show({controller:"CreateOrEditZohoAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{zohoAccount:n,zohoAccounts:f.zohoAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteZohoAccount=y,f.exportSelectedZohoAccounts=function(){var e=angular.copy(f.selectedZohoAccounts);return f.selectedZohoAccounts=[],e},f.deleteSelectedZohoAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected zohoAccounts?").htmlContent("<b>"+f.selectedZohoAccounts.length+" selected</b> will be deleted.").ariaLabel("delete ZohoAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedZohoAccounts.forEach(function(e){y(e)}),f.selectedZohoAccounts=[]})},f.deselectZohoAccounts=function(){f.selectedZohoAccounts=[]},f.selectAllZohoAccounts=function(){f.selectedZohoAccounts=f.zohoAccounts.rows};var b=!0,A=1;function E(e){f.zohoAccounts=e||{count:0,rows:[]}}function y(e){m.intZohoAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.zohoAccounts.rows,{id:e.id}),f.zohoAccounts.count-=1,f.zohoAccounts.rows.length||f.getZohoAccounts(),p.success({title:_.startCase("ZohoAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintZohoAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintZohoAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getZohoAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","zohoAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("ZohoAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="JSCRIPTY.EDIT_PROJECT",g.project=angular.copy(l),g.projects=r,g.newProject=!1,g.project||(g.project={enableUncompleteSave:!0,sendUnpauseOnSubmit:!0},g.title="JSCRIPTY.NEW_PROJECT",g.newProject=!0),g.addNewProject=function(){g.errors=[],d.jscriptyProject.save(g.project).$promise.then(function(e){g.projects.unshift(e.toJSON()),o.success({title:"Project properly created",msg:g.project.name?g.project.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.jscriptyProject.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.jscriptyProject.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveProject=function(){g.errors=[],d.jscriptyProject.update({id:g.project.id},g.project).$promise.then(function(e){var n=_.find(g.projects,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Project properly saved!",msg:g.project.name?g.project.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.jscriptyProject.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.jscriptyProject.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteProject=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The project will be deleted.").ariaLabel("Delete Project").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.jscriptyProject.delete({id:g.project.id}).$promise.then(function(){_.remove(g.projects,{id:g.project.id}),o.success({title:"Project properly deleted!",msg:(g.project.name||"project")+" has been deleted!"}),v(g.project)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.jscriptyProject.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.jscriptyProject.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","projects","project","api","Auth","license","setting","crudPermissions"],angular.module("app.jscripty").controller("CreateOrEditProjectDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o){var r=this;r.currentUser=i.getCurrentUser(),r.project={},r.localizationMap=o;var l=new Date;r.pickerModel={dateStart:new Date(l.getFullYear(),l.getMonth(),1),dateEnd:new Date(l.getFullYear(),l.getMonth()+1,0),selectedTemplate:"TM"},r.init=function(e,n){r.project=e,r.userProfile=n,r.getAnswers()},r.getSummary=function(){return a.jscriptyProject.getSummary({id:r.project.id,startTime:{$gte:r.pickerModel.dateStart,$lte:moment(r.pickerModel.dateEnd).add(23,"hours").add(59,"minutes").add(59,"seconds").format()},nolimit:!0}).$promise.then(function(e){if(void 0!==e.length){var n=[e.buffer],t=new Blob(n,{type:e.type}),a=window.document.createElement("a");a.setAttribute("href",URL.createObjectURL(t)),a.setAttribute("download","jscriptyProjectSummary_"+r.project.id+".csv"),a.click()}else s.info({title:"EXPORT",msg:"No answers available"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.jscriptyProject.getSummary",msg:e.data?JSON.stringify(e.data):e.toString()})})},r.getAnswers=function(){return r.hasIdAnswers=!1,a.jscriptyProject.getAnswers({id:r.project.id,sort:"-createdAt,questionId",createdAt:{$gte:moment(r.pickerModel.dateStart).add(0,"hours").add(0,"minutes").add(0,"seconds").utcOffset(0,!0).format(),$lte:moment(r.pickerModel.dateEnd).add(23,"hours").add(59,"minutes").add(59,"seconds").utcOffset(0,!0).format()},nolimit:!0}).$promise.then(function(e){if(e&&e.rows&&e.hasOwnProperty("count")){r.answers={};for(var n=0,t=e.count;n<t;n++)e.rows[n].questionId&&(r.hasIdAnswers=!0,r.answers.hasOwnProperty(e.rows[n].questionId)||(r.answers[e.rows[n].questionId]={question:e.rows[n].question,answers:{},sum:0}),""===e.rows[n].answer&&(e.rows[n].answer="NO_ANSWER"),r.answers[e.rows[n].questionId].answers[e.rows[n].answer]?r.answers[e.rows[n].questionId].answers[e.rows[n].answer]+=1:r.answers[e.rows[n].questionId].answers[e.rows[n].answer]=1,r.answers[e.rows[n].questionId].sum+=1)}}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETANSWERS",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$mdDialog","$document","$window","api","Auth","toasty","dateFilterLocalizationFactory"],angular.module("app.jscripty").controller("ProjectAnswersController",e)}(),function(){"use strict";angular.module("app.jscripty").controller("ProjectBuilderController",function(){var n=this;n.project={},n.optionsBuilder={questionTypes:["text","textarea","radio","checkbox","select","number","date","time","email","range","url"],elementTypes:["question","paragraph"]},n.init=function(e){n.project=e,_.isObjectLike(e.formData)?n.project.formData=e.formData:n.isJsonString(e.formData)?n.project.formData=JSON.parse(e.formData):n.project.formData={}},n.isJsonString=function(e){if(_.isNil(e))return!1;try{JSON.parse(e)}catch(e){return!1}return!0}})}(),function(){"use strict";function e(n,t,a,e,i,s,o){var r=this;function l(e){n.hide(e)}r.newProject=!0,r.project=angular.copy(i),r.projects=s,r.title=o.instant("JSCRIPTY.CLONE_PROJECT"),i&&i.name&&(r.title+=": "+i.name),r.cloneProject=function(){return e.jscriptyProject.clone({id:i.id},r.project).$promise.then(function(e){r.projects.unshift(e.toJSON()),a.success({title:"Project properly cloned",msg:r.project.name?r.project.name+" has been cloned!":""}),t.go("app.jscripty.projects.edit",{id:e.id}),l(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.jscriptyProject.clone"}];for(var n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.jscriptyProject.clone",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$mdDialog","$state","toasty","api","project","projects","$translate"],angular.module("app.jscripty").controller("ProjectcloneController",e)}(),function(){"use strict";function e(a,i,n){var o=this;o.project={},o.responseData={},o.formViewer={},o.init=function(e){o.project=e,n.$on("mwForm.pageEvents.pageCurrentChanged",function(e,n){if(n.currentPage&&o.project.formData&&o.project.formData.pages)for(var t=0,a=o.project.formData.pages.length;t<a;t++)if(n.currentPage.number<t+1&&o.project.formData.pages[t].elements)for(var i=0,s=o.project.formData.pages[t].elements.length;i<s;i++)"question"===o.project.formData.pages[t].elements[i].type&&o.project.formData.pages[t].elements[i].question&&delete o.responseData[o.project.formData.pages[t].elements[i].question.id]})},o.onSubmit=function(e){var n=a.defer(),t=i.confirm().title("Would you like to save your survey?").textContent("").ariaLabel("survey").targetEvent(e).ok("SAVE").cancel("CANCEL");return i.show(t).then(function(){n.resolve(!0)},function(){n.reject()}),n.promise},o.resetViewer=function(){o.formViewer.reset&&o.formViewer.reset()}}e.$inject=["$q","$mdDialog","$scope"],angular.module("app.jscripty").controller("ProjectViewerController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.projectSessions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.jscriptyProject.getSessions(m.query,u).$promise}function g(e){d.jscriptySessionReport.delete({id:e.id}).$promise.then(function(){_.remove(m.projectSessions.rows,{id:e.id}),m.projectSessions.count-=1,m.projectSessions.rows.length||p(),l.success({title:"Session deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETjscriptyProject"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETjscriptyProject",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.project={},m.projectSessions={count:0,rows:[]},m.selectedProjectSessions=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,starttime,endtime,membername,calleridnum,completed",sort:"-starttime",limit:10,page:1},m.init=function(e,n,t){m.project=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.id=m.project.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the session?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("session #")+e.id||"session")+"</b> will be deleted.").ariaLabel("delete session").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getProjectSessions=p,m.createOrEditProjectSession=function(e,n){o.show({controller:"CreateOrEditSessionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/edit/sessions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{project:m.project,session:n,sessions:m.projectSessions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.showQuestionsProjectSession=function(e,t){o.show({controller:"ShowQuestionsSessionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/edit/sessions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,resolve:{questions:["apiResolver","$stateParams",function(e,n){return e.resolve("jscriptySessionReport@getQuestions",{fields:"question,answer",sort:"id",id:t.id})}]},locals:{project:m.project,session:t}})},m.exportSelectedProjectSessions=function(){var e=angular.copy(m.selectedProjectSessions);return m.selectedProjectSessions=[],e},m.deleteProjectSession=g,m.deleteSelectedProjectSessions=function(e){var n=o.confirm().title("Are you sure want to delete the selected sessions?").htmlContent("<b>"+m.selectedProjectSessions.length+" selected</b> will be deleted.").ariaLabel("delete sessions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedProjectSessions.forEach(function(e){g(e)}),m.selectedProjectSessions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.jscripty").controller("ProjectSessionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){this.title="JSCRIPTY.SESSION_RESULTS",this.session=s,this.questions=o,this.project=r,this.closeDialog=function(e){a.hide(e)}}e.$inject=["$scope","$state","$location","$mdDialog","toasty","session","questions","project","api"],angular.module("app.jscripty").controller("ShowQuestionsSessionDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=s,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=n.protocol()+"://"+n.host(),p.project=c||e.params.project||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=e.params.tab||0,p.clonedialog=function(e,n){t.show({controller:"ProjectcloneController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/edit/clone/clone.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{project:e,projects:p.projects?p.projects.rows:[],crudPermissions:p.crudPermissions}})},p.alert=l.info,p.gotoProjects=function(){e.go("app.jscripty.projects",{},{reload:"app.jscripty.projects"})},p.saveProject=function(){r.jscriptyProject.update({id:p.project.id},p.project).$promise.then(function(){l.success({title:"Project updated!",msg:p.project.name?p.project.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETjscriptyProject",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","project","userProfile","userProfileSection"],angular.module("app.jscripty").controller("JscriptyProjectController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.projects=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="projects",f.listOrder="",f.listOrderAsc=null,f.selectedProjects=[],f.query={fields:"createdAt,updatedAt,id,name,enableUncompleteSave,sendUnpauseOnSubmit,description,formData",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.jscripty.projects.edit",{id:e.id,project:e,crudPermissions:f.crudPermissions})},f.clonedialog=function(e,n){i.show({controller:"ProjectcloneController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{project:e,projects:f.projects?f.projects.rows:[],crudPermissions:f.crudPermissions}})},f.sessionsgoto=function(e,n){t.go("app.jscripty.projects.edit",{id:e.id,tab:3})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("project")+"?").htmlContent("<b>"+(e.name||"project")+"</b> will be deleted.").ariaLabel("delete project").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getProjects=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.jscriptyProject.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Projects",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditProject=function(e,n){i.show({controller:"CreateOrEditProjectDialogController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{project:n,projects:f.projects.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteProject=y,f.exportSelectedProjects=function(){var e=angular.copy(f.selectedProjects);return f.selectedProjects=[],e},f.deleteSelectedProjects=function(e){var n=i.confirm().title("Are you sure want to delete the selected projects?").htmlContent("<b>"+f.selectedProjects.length+" selected</b> will be deleted.").ariaLabel("delete Projects").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedProjects.forEach(function(e){y(e)}),f.selectedProjects=[]})},f.deselectProjects=function(){f.selectedProjects=[]},f.selectAllProjects=function(){f.selectedProjects=f.projects.rows};var b=!0,A=1;function E(e){f.projects=e||{count:0,rows:[]}}function y(e){m.jscriptyProject.delete({id:e.id}).$promise.then(function(){_.remove(f.projects.rows,{id:e.id}),f.projects.count-=1,f.projects.rows.length||f.getProjects(),p.success({title:_.startCase("Project")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEjscriptyProject"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEjscriptyProject",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getProjects())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","projects","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.jscripty").controller("JscriptyProjectsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MAIL.EDIT_MAILACCOUNT",g.mailAccount=angular.copy(l),g.mailAccounts=r,g.newMailAccount=!1,g.mailAccount||(g.mailAccount={active:!0,cservice:"null",cauthentication:!0,fontSize:13,waitForTheAssignedAgent:10,notificationSound:!0,queueTransferTimeout:300,agentTransferTimeout:300},g.title="MAIL.NEW_MAILACCOUNT",g.newMailAccount=!0),n.params.id&&(g.mailAccount.MailAccountId=n.params.id),g.addNewMailAccount=function(){g.errors=[],d.mailAccount.save(g.mailAccount).$promise.then(function(e){g.mailAccounts.unshift(e.toJSON()),o.success({title:"MailAccount properly created",msg:g.mailAccount.name?g.mailAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveMailAccount=function(){g.errors=[],d.mailAccount.update({id:g.mailAccount.id},g.mailAccount).$promise.then(function(e){var n=_.find(g.mailAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"MailAccount properly saved!",msg:g.mailAccount.name?g.mailAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteMailAccount=function(e){if(g.mailAccount.service)return o.error({title:"Mail Account not deleted!",msg:"You can't remove service account"});g.errors=[];var n=a.confirm().title("Are you sure?").content("The mailAccount will be deleted.").ariaLabel("Delete MailAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.mailAccount.delete({id:g.mailAccount.id}).$promise.then(function(){_.remove(g.mailAccounts,{id:g.mailAccount.id}),o.success({title:"MailAccount properly deleted!",msg:(g.mailAccount.name||"mailAccount")+" has been deleted!"}),v(g.mailAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.lists,{id:e.resourceId})}),t=null;if(g.mailAccount&&(t=_.find(g.lists,{id:Number(g.mailAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.lists,{id:t.id});a.canSelect=!1,n.push(a)}g.lists=n})}else{var t=[],a=null;g.mailAccount&&(a=_.find(g.lists,{id:Number(g.mailAccount.ListId)}));for(var i=0;i<g.lists.length;i++)a&&g.lists[i].id===a.id&&(g.lists[i].canSelect=!1,t.push(g.lists[i]));g.lists=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","mailAccounts","mailAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.mail").controller("CreateOrEditMailAccountDialogController",e)}(),function(){"use strict";function e(o,i,a,s,e){var r=this;function n(e,n){if(r.mailAccountApps.rows.length){var t=r.mailAccountApps.rows[n]?r.mailAccountApps.rows[n]:r.mailAccountApps.rows[0];i.show({controller:"EditMailAccountApp"+(t.appType||t.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/apps/"+(t.appType||t.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailAccountApp:t,mailAccount:r.mailAccount,crudPermissions:r.crudPermissions}}).then(function(e){e&&(e.id?r.mailAccountApps.rows[n]=e:r.mailAccountApps.rows.splice(n,0,e),l())}).catch(function(e){e&&s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function l(){for(var e=1,n=[],t=0;t<r.mailAccountApps.rows.length;t++,0){var a=r.mailAccountApps.rows[t],i=[],s=[];a.intervals="*,*,*,*"!==a.interval?[a.interval]:a.IntervalId?_.map(_.filter(r.intervals.rows,{IntervalId:a.IntervalId}),"interval"):[],a.context=r.mailAccount.context,a.exten=r.mailAccount.exten,a.type&&(a.type=a.type.toLowerCase()),a.priority=i.length?_.last(i).priority+1:e,e=(s.length?_.last(s).priority:a.priority)+1,n=_.concat(n,i,[a],s)}o.mailAccount.addApplications({id:r.mailAccount.id},_.sortBy(n,"priority")).$promise.then(function(e){r.mailAccountApps.rows=e.rows}).catch(function(e){console.error(e)})}function t(e){r.mailAccountApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.mailAccount={},r.mailAccountApps={count:0,rows:[]},r.selectedMailAccountApps=[],r.crudPermissions,r.query={sort:"priority"},r.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"noop",appType:"noop",type:"noop",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,fields:[{title:"Value",name:"value",type:"text",param:0}]},{app:"system",appType:"system",type:"system",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,extraApi:[{name:"variables",field:{name:"variable",key:"name"},route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1012}}],fields:[{title:"Command",name:"command",type:"text",required:!0,param:0},{title:"Variable",name:"variable",type:"apiselect",values:"variables",value:"variable.name",option:"variable.name",defaultValues:[{value:"''",option:"None"}],defaultValue:"''",param:1}]},{app:"gotop",appType:"gotop",type:"goto",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Priority",name:"priority",type:"number",required:!0,min:0,param:0}]},{app:"gotoif",appType:"gotoif",type:"gotoif",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Condition",name:"condition",type:"text",required:!0,param:0},{title:"truepriority",name:"truepriority",type:"number",min:1,required:!0,param:1},{title:"falsepriority",name:"falsepriority",type:"number",min:1,required:!0,param:2}]},{app:"queue",appType:"queue",foreignKey:"MailQueueId",type:"queue",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"queues",field:{name:"queue",key:"name"},route:"mailQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0},permissions:{section:601}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",defaultValue:300,required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:300,param:1}]},{app:"agent",appType:"agent",type:"agent",foreignKey:"UserId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"agents",field:{name:"agent",key:"name"},route:"user",filters:{fields:"id,name",sort:"name",nolimit:!0,role:"agent"},permissions:{section:202}}],fields:[{title:"Agent",name:"agent",type:"apiselect",values:"agents",value:"agent.name",option:"agent.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:30,param:1}]},{app:"autoreply",appType:"autoreply",type:"autoreply",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"times",name:"times",type:"select",defaultValue:"1",values:[{option:"One Time",value:"2"},{option:"Always",value:"0"},{option:"First Message",value:"1"}],required:!0,param:0},{title:"Reply_Type",name:"replyType",type:"select",defaultValue:"1",values:[{option:"Reply",value:"0"},{option:"Reply All",value:"1"}],required:!0,param:1},{title:"Text",name:"text",type:"html",required:!0,param:2}]},{app:"close",appType:"close",type:"close",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Disposition",name:"disposition",type:"text",required:!0,param:0}]},{app:"tag",appType:"tag",type:"tag",foreignKey:"TagId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"tags",field:{name:"tag",key:"name"},route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1008}}],fields:[{title:"Tag",name:"tag",type:"apiselect",values:"tags",value:"tag.name",option:"tag.name",required:!0,param:0}]}],["app"]),{isApp:!1}),r.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},r.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){n(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e,n){r.mailAccount=e,r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},r.applications.disabled=!r.crudPermissions.canEdit,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getMailAccountApps(),r.getIntervals()},r.deleteConfirm=function(e,n,t){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.mailAccountApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})},r.getMailAccountApps=function(){r.promise=o.mailAccount.getApplications(r.query,t).$promise},r.editMailAccountApp=n,r.editInterval=function(e,n){if(r.mailAccountApps.rows.length){var t=r.mailAccountApps.rows[n]?r.mailAccountApps.rows[n]:r.mailAccountApps.rows[0];i.show({controller:"EditMailAccountAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:[],crudPermissions:r.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,l())})}},r.deleteMailAccountApp=function(e){_.remove(r.mailAccountApps.rows,{id:e.id}),l(),s.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedMailAccountApps=function(e){var n=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+r.selectedMailAccountApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){r.selectedMailAccountApps.forEach(function(e){_.remove(r.mailAccountApps.rows,{id:e.id})}),r.selectedMailAccountApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return o.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){r.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.mail").controller("MailAccountActionsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.mailAccount.getAgents({id:c.mailAccount.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserMailAccount?"penalty "+e.UserMailAccount.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.mailAccount=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.mailAccount.removeAgents({id:c.mailAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.mailAccount.addAgents({id:c.mailAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("MAIL.ALL_AGENTS"),labelSelected:r.instant("MAIL.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","mailAccount","mailAccounts","realtime","$translate","Auth","crudPermissions"],angular.module("app.mail").controller("MailAccountagentaddController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.agent=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.agent.appdata)switch(l.agent.appType?l.agent.appType.toLowerCase():l.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.agent.appdata.split(",");l.agent.key=d[0],l.agent.language=d[1],l.agent.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.agent.appdata.split(",");l.agent.projectId=d[0],l.agent.clientEmail=d[1],l.agent.privateKey=d[2],l.agent.language=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.agent.appdata.split(",");l.agent.accesskeyid=d[0],l.agent.secretaccesskey=d[1],l.agent.lexregion=d[2],l.agent.botname=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.agent.appdata.split(",");l.agent.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.agent.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.agent.text=d.slice(2,d.length).join(",");break;case"message":l.agent.text=l.agent.appdata;break;case"set":l.agent.name=l.agent.appdata.split("=")[0],l.agent.value=l.agent.appdata.split("=")[1];break;case"agi":l.agent.project=l.agent.appdata;break;default:var c=l.agent.appdata.split(",");l.agent.agent=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.agent.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.agent.timeout=30;function m(e){n.hide(e)}l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outbounddial"===l.agent.appType.toLowerCase()&&(l.agent.prefix=l.agent.phone?l.agent.phone.split("$")[0]:void 0,l.agent.callerId=l.agent.callerID?"CALLERID(all)="+l.agent.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outboundDial"===l.agent.appType&&(l.agent.phone=i.cutdigits?(l.agent.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.agent.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.agent.options+="U(xcally-mixmonitor-context)"):l.agent.options=l.agent.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.agents,{name:l.agent.agent});n&&(l.agent.UserId=n.id);if(l.agent.appType&&"custom"===l.agent.appType);else switch((l.agent.app||l.agent.appType).toLowerCase()){case"set":l.agent.appdata=l.agent.name+"="+l.agent.value;break;case"custom":break;default:e[0]=l.agent.agent,e[1]=l.agent.timeout,l.agent.appdata=e.join(",")}m(l.agent)},l.closeDialog=m,o.hasRole("admin")?s.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){l.agents=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){l.agents=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.agents,{id:e.resourceId})}),t=null;if(l.agent&&(t=_.find(l.agents,{name:l.agent.agent})),t&&!_.some(n,["id",t.id])){var a=_.find(l.agents,{id:t.id});a.canSelect=!1,n.push(a)}l.agents=n})}else{var t=[],a=null;l.agent&&(a=_.find(l.agents,{name:l.agent.agent}));for(var i=0;i<l.agents.length;i++)a&&l.agents[i].id===a.id&&(l.agents[i].canSelect=!1,t.push(l.agents[i]));l.agents=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppagentDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.autoreply=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.autoreply.appdata)switch(l.autoreply.appType?l.autoreply.appType.toLowerCase():l.autoreply.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.autoreply.appdata.split(",");l.autoreply.key=d[0],l.autoreply.language=d[1],l.autoreply.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.autoreply.appdata.split(",");l.autoreply.projectId=d[0],l.autoreply.clientEmail=d[1],l.autoreply.privateKey=d[2],l.autoreply.language=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.autoreply.appdata.split(",");l.autoreply.accesskeyid=d[0],l.autoreply.secretaccesskey=d[1],l.autoreply.lexregion=d[2],l.autoreply.botname=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.autoreply.appdata.split(",");l.autoreply.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.autoreply.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.autoreply.text=d.slice(2,d.length).join(",");break;case"message":l.autoreply.text=l.autoreply.appdata;break;case"set":l.autoreply.name=l.autoreply.appdata.split("=")[0],l.autoreply.value=l.autoreply.appdata.split("=")[1];break;case"agi":l.autoreply.project=l.autoreply.appdata;break;default:var c=l.autoreply.appdata.split(",");l.autoreply.times=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.autoreply.replyType=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.autoreply.text=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}else l.autoreply.times=1,l.autoreply.replyType=1;function m(e){n.hide(e)}l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outbounddial"===l.autoreply.appType.toLowerCase()&&(l.autoreply.prefix=l.autoreply.phone?l.autoreply.phone.split("$")[0]:void 0,l.autoreply.callerId=l.autoreply.callerID?"CALLERID(all)="+l.autoreply.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outboundDial"===l.autoreply.appType&&(l.autoreply.phone=i.cutdigits?(l.autoreply.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.autoreply.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.autoreply.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.autoreply.options+="U(xcally-mixmonitor-context)"):l.autoreply.options=l.autoreply.options.replace("U(xcally-mixmonitor-context)",""));if(l.autoreply.appType&&"custom"===l.autoreply.appType);else switch((l.autoreply.app||l.autoreply.appType).toLowerCase()){case"set":l.autoreply.appdata=l.autoreply.name+"="+l.autoreply.value;break;case"custom":break;default:e[0]=l.autoreply.times,e[1]=l.autoreply.replyType,e[2]=l.autoreply.text,l.autoreply.appdata=e.join(",")}m(l.autoreply)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppautoreplyDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.close=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.close.appdata)switch(l.close.appType?l.close.appType.toLowerCase():l.close.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.close.appdata.split(",");l.close.key=d[0],l.close.language=d[1],l.close.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.close.appdata.split(",");l.close.projectId=d[0],l.close.clientEmail=d[1],l.close.privateKey=d[2],l.close.language=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.close.appdata.split(",");l.close.accesskeyid=d[0],l.close.secretaccesskey=d[1],l.close.lexregion=d[2],l.close.botname=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.close.appdata.split(",");l.close.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.close.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.close.text=d.slice(2,d.length).join(",");break;case"message":l.close.text=l.close.appdata;break;case"set":l.close.name=l.close.appdata.split("=")[0],l.close.value=l.close.appdata.split("=")[1];break;case"agi":l.close.project=l.close.appdata;break;default:var c=l.close.appdata.split(",");l.close.disposition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outbounddial"===l.close.appType.toLowerCase()&&(l.close.prefix=l.close.phone?l.close.phone.split("$")[0]:void 0,l.close.callerId=l.close.callerID?"CALLERID(all)="+l.close.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outboundDial"===l.close.appType&&(l.close.phone=i.cutdigits?(l.close.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.close.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.close.options+="U(xcally-mixmonitor-context)"):l.close.options=l.close.options.replace("U(xcally-mixmonitor-context)",""));if(l.close.appType&&"custom"===l.close.appType);else switch((l.close.app||l.close.appType).toLowerCase()){case"set":l.close.appdata=l.close.name+"="+l.close.value;break;case"custom":break;default:e[0]=l.close.disposition,l.close.appdata=e.join(",")}m(l.close)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppcloseDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotoif=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotoif.appdata)switch(l.gotoif.appType?l.gotoif.appType.toLowerCase():l.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotoif.appdata.split(",");l.gotoif.key=d[0],l.gotoif.language=d[1],l.gotoif.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotoif.appdata.split(",");l.gotoif.projectId=d[0],l.gotoif.clientEmail=d[1],l.gotoif.privateKey=d[2],l.gotoif.language=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotoif.appdata.split(",");l.gotoif.accesskeyid=d[0],l.gotoif.secretaccesskey=d[1],l.gotoif.lexregion=d[2],l.gotoif.botname=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotoif.appdata.split(",");l.gotoif.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotoif.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.gotoif.text=d.slice(2,d.length).join(",");break;case"message":l.gotoif.text=l.gotoif.appdata;break;case"set":l.gotoif.name=l.gotoif.appdata.split("=")[0],l.gotoif.value=l.gotoif.appdata.split("=")[1];break;case"agi":l.gotoif.project=l.gotoif.appdata;break;default:var c=l.gotoif.appdata.split(",");l.gotoif.condition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.gotoif.truepriority=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.gotoif.falsepriority=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}function m(e){n.hide(e)}l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outbounddial"===l.gotoif.appType.toLowerCase()&&(l.gotoif.prefix=l.gotoif.phone?l.gotoif.phone.split("$")[0]:void 0,l.gotoif.callerId=l.gotoif.callerID?"CALLERID(all)="+l.gotoif.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outboundDial"===l.gotoif.appType&&(l.gotoif.phone=i.cutdigits?(l.gotoif.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotoif.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotoif.options+="U(xcally-mixmonitor-context)"):l.gotoif.options=l.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotoif.appType&&"custom"===l.gotoif.appType);else switch((l.gotoif.app||l.gotoif.appType).toLowerCase()){case"set":l.gotoif.appdata=l.gotoif.name+"="+l.gotoif.value;break;case"custom":break;default:e[0]=l.gotoif.condition,e[1]=l.gotoif.truepriority,e[2]=l.gotoif.falsepriority,l.gotoif.appdata=e.join(",")}m(l.gotoif)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppgotoifDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotop.appdata)switch(l.gotop.appType?l.gotop.appType.toLowerCase():l.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotop.appdata.split(",");l.gotop.key=d[0],l.gotop.language=d[1],l.gotop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotop.appdata.split(",");l.gotop.projectId=d[0],l.gotop.clientEmail=d[1],l.gotop.privateKey=d[2],l.gotop.language=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotop.appdata.split(",");l.gotop.accesskeyid=d[0],l.gotop.secretaccesskey=d[1],l.gotop.lexregion=d[2],l.gotop.botname=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotop.appdata.split(",");l.gotop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotop.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.gotop.text=d.slice(2,d.length).join(",");break;case"message":l.gotop.text=l.gotop.appdata;break;case"set":l.gotop.name=l.gotop.appdata.split("=")[0],l.gotop.value=l.gotop.appdata.split("=")[1];break;case"agi":l.gotop.project=l.gotop.appdata;break;default:var c=l.gotop.appdata.split(",");l.gotop.priority=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outbounddial"===l.gotop.appType.toLowerCase()&&(l.gotop.prefix=l.gotop.phone?l.gotop.phone.split("$")[0]:void 0,l.gotop.callerId=l.gotop.callerID?"CALLERID(all)="+l.gotop.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outboundDial"===l.gotop.appType&&(l.gotop.phone=i.cutdigits?(l.gotop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotop.options+="U(xcally-mixmonitor-context)"):l.gotop.options=l.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotop.appType&&"custom"===l.gotop.appType);else switch((l.gotop.app||l.gotop.appType).toLowerCase()){case"set":l.gotop.appdata=l.gotop.name+"="+l.gotop.value;break;case"custom":break;default:e[0]=l.gotop.priority,l.gotop.appdata=e.join(",")}m(l.gotop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppgotopDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom","list"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditMailAccountAppintervalDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.noop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.noop.appdata)switch(l.noop.appType?l.noop.appType.toLowerCase():l.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.noop.appdata.split(",");l.noop.key=d[0],l.noop.language=d[1],l.noop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.noop.appdata.split(",");l.noop.projectId=d[0],l.noop.clientEmail=d[1],l.noop.privateKey=d[2],l.noop.language=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.noop.appdata.split(",");l.noop.accesskeyid=d[0],l.noop.secretaccesskey=d[1],l.noop.lexregion=d[2],l.noop.botname=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.noop.appdata.split(",");l.noop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.noop.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.noop.text=d.slice(2,d.length).join(",");break;case"message":l.noop.text=l.noop.appdata;break;case"set":l.noop.name=l.noop.appdata.split("=")[0],l.noop.value=l.noop.appdata.split("=")[1];break;case"agi":l.noop.project=l.noop.appdata;break;default:var c=l.noop.appdata.split(",");l.noop.value=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outbounddial"===l.noop.appType.toLowerCase()&&(l.noop.prefix=l.noop.phone?l.noop.phone.split("$")[0]:void 0,l.noop.callerId=l.noop.callerID?"CALLERID(all)="+l.noop.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outboundDial"===l.noop.appType&&(l.noop.phone=i.cutdigits?(l.noop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.noop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.noop.options+="U(xcally-mixmonitor-context)"):l.noop.options=l.noop.options.replace("U(xcally-mixmonitor-context)",""));if(l.noop.appType&&"custom"===l.noop.appType);else switch((l.noop.app||l.noop.appType).toLowerCase()){case"set":l.noop.appdata=l.noop.name+"="+l.noop.value;break;case"custom":break;default:e[0]=l.noop.value,l.noop.appdata=e.join(",")}m(l.noop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppnoopDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.queue=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.queue.appdata)switch(l.queue.appType?l.queue.appType.toLowerCase():l.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.queue.appdata.split(",");l.queue.key=d[0],l.queue.language=d[1],l.queue.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.queue.appdata.split(",");l.queue.projectId=d[0],l.queue.clientEmail=d[1],l.queue.privateKey=d[2],l.queue.language=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.queue.appdata.split(",");l.queue.accesskeyid=d[0],l.queue.secretaccesskey=d[1],l.queue.lexregion=d[2],l.queue.botname=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.queue.appdata.split(",");l.queue.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.queue.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.queue.text=d.slice(2,d.length).join(",");break;case"message":l.queue.text=l.queue.appdata;break;case"set":l.queue.name=l.queue.appdata.split("=")[0],l.queue.value=l.queue.appdata.split("=")[1];break;case"agi":l.queue.project=l.queue.appdata;break;default:var c=l.queue.appdata.split(",");l.queue.queue=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.queue.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.queue.queue=300,l.queue.timeout=300;function m(e){n.hide(e)}l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outbounddial"===l.queue.appType.toLowerCase()&&(l.queue.prefix=l.queue.phone?l.queue.phone.split("$")[0]:void 0,l.queue.callerId=l.queue.callerID?"CALLERID(all)="+l.queue.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outboundDial"===l.queue.appType&&(l.queue.phone=i.cutdigits?(l.queue.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.queue.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.queue.options+="U(xcally-mixmonitor-context)"):l.queue.options=l.queue.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.queues,{name:l.queue.queue});n&&(l.queue[_.capitalize("mail")+"QueueId"]=n.id);if(l.queue.appType&&"custom"===l.queue.appType);else switch((l.queue.app||l.queue.appType).toLowerCase()){case"set":l.queue.appdata=l.queue.name+"="+l.queue.value;break;case"custom":break;default:e[0]=l.queue.queue,e[1]=l.queue.timeout,l.queue.appdata=e.join(",")}m(l.queue)},l.closeDialog=m,o.hasRole("admin")?s.mailQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.mailQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:601}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.queues,{id:e.resourceId})}),t=null;if(l.queue&&(t=_.find(l.queues,{name:l.queue.queue})),t&&!_.some(n,["id",t.id])){var a=_.find(l.queues,{id:t.id});a.canSelect=!1,n.push(a)}l.queues=n})}else{var t=[],a=null;l.queue&&(a=_.find(l.queues,{name:l.queue.queue}));for(var i=0;i<l.queues.length;i++)a&&l.queues[i].id===a.id&&(l.queues[i].canSelect=!1,t.push(l.queues[i]));l.queues=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppqueueDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.system=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.system.appdata)switch(l.system.appType?l.system.appType.toLowerCase():l.system.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.system.appdata.split(",");l.system.key=d[0],l.system.language=d[1],l.system.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.system.appdata.split(",");l.system.projectId=d[0],l.system.clientEmail=d[1],l.system.privateKey=d[2],l.system.language=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.system.appdata.split(",");l.system.accesskeyid=d[0],l.system.secretaccesskey=d[1],l.system.lexregion=d[2],l.system.botname=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.system.appdata.split(",");l.system.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.system.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.system.text=d.slice(2,d.length).join(",");break;case"message":l.system.text=l.system.appdata;break;case"set":l.system.name=l.system.appdata.split("=")[0],l.system.value=l.system.appdata.split("=")[1];break;case"agi":l.system.project=l.system.appdata;break;default:var c=l.system.appdata.split(",");l.system.command=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.system.variable=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.system.variable="";function m(e){n.hide(e)}l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outbounddial"===l.system.appType.toLowerCase()&&(l.system.prefix=l.system.phone?l.system.phone.split("$")[0]:void 0,l.system.callerId=l.system.callerID?"CALLERID(all)="+l.system.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outboundDial"===l.system.appType&&(l.system.phone=i.cutdigits?(l.system.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.system.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.system.options+="U(xcally-mixmonitor-context)"):l.system.options=l.system.options.replace("U(xcally-mixmonitor-context)",""));if(l.system.appType&&"custom"===l.system.appType);else switch((l.system.app||l.system.appType).toLowerCase()){case"set":l.system.appdata=l.system.name+"="+l.system.value;break;case"custom":break;default:e[0]=l.system.command,e[1]=l.system.variable,l.system.appdata=e.join(",")}m(l.system)},l.closeDialog=m,o.hasRole("admin")?s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1012}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.variables,{id:e.resourceId})}),t=null;if(l.system&&(t=_.find(l.variables,{name:l.system.variable})),t&&!_.some(n,["id",t.id])){var a=_.find(l.variables,{id:t.id});a.canSelect=!1,n.push(a)}l.variables=n})}else{var t=[],a=null;l.system&&(a=_.find(l.variables,{name:l.system.variable}));for(var i=0;i<l.variables.length;i++)a&&l.variables[i].id===a.id&&(l.variables[i].canSelect=!1,t.push(l.variables[i]));l.variables=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppsystemDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.tag=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.tag.appdata)switch(l.tag.appType?l.tag.appType.toLowerCase():l.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.tag.appdata.split(",");l.tag.key=d[0],l.tag.language=d[1],l.tag.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.tag.appdata.split(",");l.tag.projectId=d[0],l.tag.clientEmail=d[1],l.tag.privateKey=d[2],l.tag.language=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.tag.appdata.split(",");l.tag.accesskeyid=d[0],l.tag.secretaccesskey=d[1],l.tag.lexregion=d[2],l.tag.botname=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.tag.appdata.split(",");l.tag.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.tag.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.tag.text=d.slice(2,d.length).join(",");break;case"message":l.tag.text=l.tag.appdata;break;case"set":l.tag.name=l.tag.appdata.split("=")[0],l.tag.value=l.tag.appdata.split("=")[1];break;case"agi":l.tag.project=l.tag.appdata;break;default:var c=l.tag.appdata.split(",");l.tag.tag=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outbounddial"===l.tag.appType.toLowerCase()&&(l.tag.prefix=l.tag.phone?l.tag.phone.split("$")[0]:void 0,l.tag.callerId=l.tag.callerID?"CALLERID(all)="+l.tag.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outboundDial"===l.tag.appType&&(l.tag.phone=i.cutdigits?(l.tag.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.tag.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.tag.options+="U(xcally-mixmonitor-context)"):l.tag.options=l.tag.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.tags,{name:l.tag.tag});n&&(l.tag.TagId=n.id);if(l.tag.appType&&"custom"===l.tag.appType);else switch((l.tag.app||l.tag.appType).toLowerCase()){case"set":l.tag.appdata=l.tag.name+"="+l.tag.value;break;case"custom":break;default:e[0]=l.tag.tag,l.tag.appdata=e.join(",")}m(l.tag)},l.closeDialog=m,o.hasRole("admin")?s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1008}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.tags,{id:e.resourceId})}),t=null;if(l.tag&&(t=_.find(l.tags,{name:l.tag.tag})),t&&!_.some(n,["id",t.id])){var a=_.find(l.tags,{id:t.id});a.canSelect=!1,n.push(a)}l.tags=n})}else{var t=[],a=null;l.tag&&(a=_.find(l.tags,{name:l.tag.tag}));for(var i=0;i<l.tags.length;i++)a&&l.tags[i].id===a.id&&(l.tags[i].canSelect=!1,t.push(l.tags[i]));l.tags=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtags",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountApptagDialogController",e)}(),function(){"use strict";function e(e,a,n,t,i,s,o,r,l,d,c){var m=this;function u(e){m.mailAccountInteractions=e||{count:0,rows:[]};for(var n=0;n<m.mailAccountInteractions.rows.length;n+=1){var t=m.mailAccountInteractions.rows[n];v(t),t.Owner.name=h(t)}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,(void 0===m.query.closed||null===m.query.closed||m.query.closed)&&delete m.query.substatus,m.promise=d.mailInteraction.get(m.query,u).$promise}function g(e){d.mailInteraction.delete({id:e.id}).$promise.then(function(){_.remove(m.mailAccountInteractions.rows,{id:e.id}),m.mailAccountInteractions.count-=1,m.mailAccountInteractions.rows.length||p(),l.success({title:"Interaction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETmailAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(e){_.isEmpty(e.to)||_.includes(e.to,m.mailAccount.email)?e.Contact?(e.contactName=(e.Contact.firstName||"")+" "+(e.Contact.lastName||""),e.contactInfo=e.Contact.email||""):e.contactName=i.instant("MAIL.UNKNOWN"):(e.contactName=e.to.split(" <")[0],e.contactInfo=e.to.split("<").pop().split(">")[0])}function h(e){return e.UserId?e.UserId===m.currentUser.id?i.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">":i.instant("DASHBOARDS.NOT_ASSIGNED")}m.currentUser=c.getCurrentUser(),m.mailAccount={},m.mailAccountInteractions={count:0,rows:[]},m.selectedMailAccountInteractions=[],m.crudPermissions,m.query={read:"null",closed:"null",sort:"-createdAt",includeAll:"true",limit:10,page:1},m.init=function(e,n,t){m.mailAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.MailAccountId=m.mailAccount.id,m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Subject",column:"subject",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Body",column:"plainBody",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Substatus",column:"substatus",type:"multiselect",options:{field:"name",route:{model:"mailSubstatus",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},d.tag.get({sort:"name"}).$promise.then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){return d.mailSubstatus.get({nolimit:!0}).$promise.then(function(e){m.subStatuses=e||{count:0,rows:[]}})}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Substatus",key:"substatus",type:"select",label:"DASHBOARDS.SELECT_SUBSTATUS",options:m.subStatuses.rows,customOptions:[{value:"null",translate:"DASHBOARDS.NONE"},{value:void 0,translate:"DASHBOARDS.ALL"}],ngValue:"name",ngIf:"closed === 0"},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]})},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interaction #")+e.id||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.mailInteractionDownload=function(s,e,n){return d.mailInteraction.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="interaction"+s.id,a=new Blob(n,{type:e.type});t="mail-interaction"+s.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getMailAccountInteractions=p,m.createOrEditMailAccountInteraction=function(e,n){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/interactions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailAccount:m.mailAccount,interaction:n,interactions:m.mailAccountInteractions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.spymailInteraction=function(e,t){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,n){e.vm.init({id:1,channel:"mail",interaction:t,spy:!0},a.$parent.vm.setting)}})},m.openAdvancedSearch=function(){o.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,locals:{fields:m.advancedSearch.fields,color:void 0,storagePath:"mail.mailAccounts"},fullscreen:!0}).then(function(e){if(m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply){var n="";n+="||MailAccountId:=$eq["+m.mailAccount.id+"]",m.query.search=e.value?e.value+=n:e.value,p()}}).catch(function(e){l.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.exportSelectedMailAccountInteractions=function(){var e=angular.copy(m.selectedMailAccountInteractions);return m.selectedMailAccountInteractions=[],e},m.deleteMailAccountInteraction=g,m.deleteSelectedMailAccountInteractions=function(e){var n=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+m.selectedMailAccountInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedMailAccountInteractions.forEach(function(e){g(e)}),m.selectedMailAccountInteractions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.mail").controller("MailAccountInteractionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.mailAccountMailCannedAnswers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.mailAccount.getAnswers(m.query,u).$promise}function g(e){d.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(m.mailAccountMailCannedAnswers.rows,{id:e.id}),m.mailAccountMailCannedAnswers.count-=1,m.mailAccountMailCannedAnswers.rows.length||p(),l.success({title:"MailCannedAnswer deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETmailAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.mailAccount={},m.mailAccountMailCannedAnswers={count:0,rows:[]},m.selectedMailAccountMailCannedAnswers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,key,value,description",limit:10,page:1},m.init=function(e,n,t){m.mailAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.MailAccountId=m.mailAccount.id,m.query.id=m.mailAccount.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the mailCannedAnswer?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("mailCannedAnswer #")+e.id||"mailCannedAnswer")+"</b> will be deleted.").ariaLabel("delete mailCannedAnswer").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getMailAccountMailCannedAnswers=p,m.createOrEditMailAccountMailCannedAnswer=function(e,n){o.show({controller:"CreateOrEditMailCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/mailCannedAnswers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailAccount:m.mailAccount,mailCannedAnswer:n,mailCannedAnswers:m.mailAccountMailCannedAnswers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedMailAccountMailCannedAnswers=function(){var e=angular.copy(m.selectedMailAccountMailCannedAnswers);return m.selectedMailAccountMailCannedAnswers=[],e},m.deleteMailAccountMailCannedAnswer=g,m.deleteSelectedMailAccountMailCannedAnswers=function(e){var n=o.confirm().title("Are you sure want to delete the selected mailCannedAnswers?").htmlContent("<b>"+m.selectedMailAccountMailCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete mailCannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedMailAccountMailCannedAnswers.forEach(function(e){g(e)}),m.selectedMailAccountMailCannedAnswers=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.mail").controller("MailAccountMailCannedAnswersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MAIL.EDIT_MAILCANNEDANSWER",g.mailCannedAnswer=angular.copy(l),g.mailCannedAnswers=r,g.newMailCannedAnswer=!1,g.mailCannedAnswer||(g.mailCannedAnswer={},g.title="MAIL.NEW_MAILCANNEDANSWER",g.newMailCannedAnswer=!0),n.params.id&&(g.mailCannedAnswer.MailAccountId=n.params.id),g.addNewMailCannedAnswer=function(){g.errors=[],d.cannedAnswer.save(g.mailCannedAnswer).$promise.then(function(e){g.mailCannedAnswers.unshift(e.toJSON()),o.success({title:"MailCannedAnswer properly created",msg:g.mailCannedAnswer.name?g.mailCannedAnswer.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveMailCannedAnswer=function(){g.errors=[],d.cannedAnswer.update({id:g.mailCannedAnswer.id},g.mailCannedAnswer).$promise.then(function(e){var n=_.find(g.mailCannedAnswers,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"MailCannedAnswer properly saved!",msg:g.mailCannedAnswer.name?g.mailCannedAnswer.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteMailCannedAnswer=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The mailCannedAnswer will be deleted.").ariaLabel("Delete MailCannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cannedAnswer.delete({id:g.mailCannedAnswer.id}).$promise.then(function(){_.remove(g.mailCannedAnswers,{id:g.mailCannedAnswer.id}),o.success({title:"MailCannedAnswer properly deleted!",msg:(g.mailCannedAnswer.name||"mailCannedAnswer")+" has been deleted!"}),v(g.mailCannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","mailCannedAnswers","mailCannedAnswer","api","Auth","license","setting","crudPermissions"],angular.module("app.mail").controller("CreateOrEditMailCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.mailAccount.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.mailAccount=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.MailAccountId=m.mailAccount.id,m.query.id=m.mailAccount.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.mailAccount.id,field:"MailAccountId",route:"mailAccount"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.mail").controller("MailAccountDispositionsController",e)}(),function(){"use strict";function e(t,e,a,i,s,n,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=n,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=e.protocol()+"://"+e.host(),p.mailAccount=c||t.params.mailAccount||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=t.params.tab||0,p.gotogoto=function(e,n){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:610}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.mail.realtime.accounts",{}):l.info({title:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.mail.realtime.accounts",{})}},p.agentadddialog=function(e,n){a.show({controller:"MailAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailAccount:e,mailAccounts:p.mailAccounts?p.mailAccounts.rows:[],crudPermissions:p.crudPermissions,realtime:!1}})},p.alert=l.info,p.gotoMailAccounts=function(){t.go("app.mail.mailAccounts",{},{reload:"app.mail.mailAccounts"})},p.saveMailAccount=function(){r.mailAccount.update({id:p.mailAccount.id},p.mailAccount).$promise.then(function(){l.success({title:"MailAccount updated!",msg:p.mailAccount.name?p.mailAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.lists,{id:e.resourceId})}),t=null;if(p.mailAccount&&(t=_.find(p.lists,{id:Number(p.mailAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.lists,{id:t.id});a.canSelect=!1,n.push(a)}p.lists=n})}else{var t=[],a=null;p.mailAccount&&(a=_.find(p.lists,{id:Number(p.mailAccount.ListId)}));for(var i=0;i<p.lists.length;i++)a&&p.lists[i].id===a.id&&(p.lists[i].canSelect=!1,t.push(p.lists[i]));p.lists=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.pauses,{id:e.resourceId})});p.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),p.pauses=n})}else p.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","mailAccount","userProfile","userProfileSection"],angular.module("app.mail").controller("MailAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.mailAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="mailAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedMailAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,key,email,ListId,active,cservice,Imap.service,Imap.host,Imap.port,Imap.tls,Imap.authentication,Imap.user,Imap.password,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,cauthentication,cuser,cpassword,fontFamily,fontSize,template,markAsUnread,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,page:1},f.arraycservice=_.keyBy([{option:"Custom",value:"null"},{option:"Gmail",value:"'gmail'"},{option:"Hotmail",value:"'hotmail'"},{option:"Yahoo",value:"'yahoo'"},{option:"Outlook365",value:"'outlook365'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f["arrayImap.service"]=_.keyBy([{option:"Custom",value:"null"},{option:"Gmail",value:"'gmail'"},{option:"Hotmail",value:"'hotmail'"},{option:"Yahoo",value:"'yahoo'"},{option:"Outlook365",value:"'outlook365'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f["arraySmtp.service"]=_.keyBy([{option:"Custom",value:"null"},{option:"Gmail",value:"'gmail'"},{option:"Hotmail",value:"'hotmail'"},{option:"Yahoo",value:"'yahoo'"},{option:"Outlook365",value:"'outlook365'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.mail.mailAccounts.edit",{id:e.id,mailAccount:e,crudPermissions:f.crudPermissions})},f.verifysmtpverifysmtp=function(e,n){{if(e&&e.id)return m.mailAccount.verifySmtp({id:e.id}).$promise.then(function(){p.success({title:"Smtp properly verified",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"Smtp properly verified",msg:e.data?JSON.stringify(e.data):e.toString()})});p.error({title:"Smtp properly verified",msg:"Smpt id unknown"})}},f.interactionsgoto=function(e,n){t.go("app.mail.mailAccounts.edit",{id:e.id,tab:7})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:610}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.mail.realtime.accounts",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.mail.realtime.accounts",{})}},f.agentadddialog=function(e,n){i.show({controller:"MailAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailAccount:e,mailAccounts:f.mailAccounts?f.mailAccounts.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("mailAccount")+"?").htmlContent("<b>"+(e.name||"mailAccount")+"</b> will be deleted.").ariaLabel("delete mailAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getMailAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.mailAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="MailAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditMailAccount=function(e,n){i.show({controller:"CreateOrEditMailAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailAccount:n,mailAccounts:f.mailAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteMailAccount=y,f.exportSelectedMailAccounts=function(){var e=angular.copy(f.selectedMailAccounts);return f.selectedMailAccounts=[],e},f.deleteSelectedMailAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected mailAccounts?").htmlContent("<b>"+f.selectedMailAccounts.length+" selected</b> will be deleted.").ariaLabel("delete MailAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedMailAccounts.forEach(function(e){y(e)}),f.selectedMailAccounts=[]})},f.deselectMailAccounts=function(){f.selectedMailAccounts=[]},f.selectAllMailAccounts=function(){f.selectedMailAccounts=f.mailAccounts.rows},g.hasRole("admin")?m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.lists,{id:e.resourceId})}),t=null;if(f.mailAccount&&(t=_.find(f.lists,{id:Number(f.mailAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.lists,{id:t.id});a.canSelect=!1,n.push(a)}f.lists=n})}else{var t=[],a=null;f.mailAccount&&(a=_.find(f.lists,{id:Number(f.mailAccount.ListId)}));for(var i=0;i<f.lists.length;i++)a&&f.lists[i].id===a.id&&(f.lists[i].canSelect=!1,t.push(f.lists[i]));f.lists=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.mailAccounts=e||{count:0,rows:[]}}function y(e){if(e.service)return p.error({title:"Mail Account not deleted!",msg:"You can't remove service account"});m.mailAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.mailAccounts.rows,{id:e.id}),f.mailAccounts.count-=1,f.mailAccounts.rows.length||f.getMailAccounts(),p.success({title:_.startCase("MailAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEmailAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEmailAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getMailAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","mailAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.mail").controller("MailAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MAIL.EDIT_MAILQUEUE",g.mailQueue=angular.copy(l),g.mailQueues=r,g.newMailQueue=!1,g.mailQueue||(g.mailQueue={strategy:"beepall",timeout:10},g.title="MAIL.NEW_MAILQUEUE",g.newMailQueue=!0),g.addNewMailQueue=function(){g.errors=[],d.mailQueue.save(g.mailQueue).$promise.then(function(e){g.mailQueues.unshift(e.toJSON()),o.success({title:"MailQueue properly created",msg:g.mailQueue.name?g.mailQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveMailQueue=function(){g.errors=[],d.mailQueue.update({id:g.mailQueue.id},g.mailQueue).$promise.then(function(e){var n=_.find(g.mailQueues,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"MailQueue properly saved!",msg:g.mailQueue.name?g.mailQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteMailQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The mailQueue will be deleted.").ariaLabel("Delete MailQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.mailQueue.delete({id:g.mailQueue.id}).$promise.then(function(){_.remove(g.mailQueues,{id:g.mailQueue.id}),o.success({title:"MailQueue properly deleted!",msg:(g.mailQueue.name||"mailQueue")+" has been deleted!"}),v(g.mailQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","mailQueues","mailQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.mail").controller("CreateOrEditMailQueueDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.mailQueue.getAgents({id:c.mailQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserMailQueue?"penalty "+e.UserMailQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.mailQueue=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.mailQueue.removeAgents({id:c.mailQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.mailQueue.addAgents({id:c.mailQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("MAIL.ALL_AGENTS"),labelSelected:r.instant("MAIL.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","mailQueue","mailQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.mail").controller("MailQueueagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.mailQueue.getTeams({id:l.mailQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.mailQueue=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("MAIL.ALL_TEAMS"),labelSelected:t.instant("MAIL.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.mailQueue.removeTeams({id:l.mailQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.mailQueue.addTeams({id:l.mailQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","mailQueue","$translate","Auth","crudPermissions"],angular.module("app.mail").controller("MailQueueteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.mailQueue=c||e.params.mailQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.teamadddialog=function(e,n){t.show({controller:"MailQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailQueue:e,mailQueues:u.mailQueues?u.mailQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){t.show({controller:"MailQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailQueue:e,mailQueues:u.mailQueues?u.mailQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoMailQueues=function(){e.go("app.mail.mailQueues",{},{reload:"app.mail.mailQueues"})},u.saveMailQueue=function(){r.mailQueue.update({id:u.mailQueue.id},u.mailQueue).$promise.then(function(){l.success({title:"MailQueue updated!",msg:u.mailQueue.name?u.mailQueue.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","mailQueue","userProfileSection"],angular.module("app.mail").controller("MailQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.mailQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="mailQueues",f.listOrder="",f.listOrderAsc=null,f.selectedMailQueues=[],f.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"mail",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.mail.mailQueues.edit",{id:e.id,mailQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"MailQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailQueue:e,mailQueues:f.mailQueues?f.mailQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"MailQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailQueue:e,mailQueues:f.mailQueues?f.mailQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("mailQueue")+"?").htmlContent("<b>"+(e.name||"mailQueue")+"</b> will be deleted.").ariaLabel("delete mailQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:610}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.mail.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.mail.realtime.queues",{})}},f.success=E,f.getMailQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.mailQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="MailQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditMailQueue=function(e,n){i.show({controller:"CreateOrEditMailQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailQueue:n,mailQueues:f.mailQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteMailQueue=y,f.exportSelectedMailQueues=function(){var e=angular.copy(f.selectedMailQueues);return f.selectedMailQueues=[],e},f.deleteSelectedMailQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected mailQueues?").htmlContent("<b>"+f.selectedMailQueues.length+" selected</b> will be deleted.").ariaLabel("delete MailQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedMailQueues.forEach(function(e){y(e)}),f.selectedMailQueues=[]})},f.deselectMailQueues=function(){f.selectedMailQueues=[]},f.selectAllMailQueues=function(){f.selectedMailQueues=f.mailQueues.rows};var b=!0,A=1;function E(e){f.mailQueues=e||{count:0,rows:[]}}function y(e){m.mailQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.mailQueues.rows,{id:e.id}),f.mailQueues.count-=1,f.mailQueues.rows.length||f.getMailQueues(),p.success({title:_.startCase("MailQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEmailQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEmailQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getMailQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","mailQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.mail").controller("MailQueuesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MAIL.EDIT_MAILSUBSTATUS",g.mailSubstatus=angular.copy(l),g.mailSubtatuses=r,g.newMailSubstatus=!1,g.mailSubstatus||(g.mailSubstatus={},g.title="MAIL.NEW_MAILSUBSTATUS",g.newMailSubstatus=!0),g.addNewMailSubstatus=function(){g.errors=[],d.mailSubstatus.save(g.mailSubstatus).$promise.then(function(e){g.mailSubtatuses.unshift(e.toJSON()),o.success({title:"MailSubstatus properly created",msg:g.mailSubstatus.name?g.mailSubstatus.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailSubstatus.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailSubstatus.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveMailSubstatus=function(){g.errors=[],d.mailSubstatus.update({id:g.mailSubstatus.id},g.mailSubstatus).$promise.then(function(e){var n=_.find(g.mailSubtatuses,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"MailSubstatus properly saved!",msg:g.mailSubstatus.name?g.mailSubstatus.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailSubstatus.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailSubstatus.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteMailSubstatus=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The mailSubstatus will be deleted.").ariaLabel("Delete MailSubstatus").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.mailSubstatus.delete({id:g.mailSubstatus.id}).$promise.then(function(){_.remove(g.mailSubtatuses,{id:g.mailSubstatus.id}),o.success({title:"MailSubstatus properly deleted!",msg:(g.mailSubstatus.name||"mailSubstatus")+" has been deleted!"}),v(g.mailSubstatus)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailSubstatus.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailSubstatus.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","mailSubtatuses","mailSubstatus","api","Auth","license","setting","crudPermissions"],angular.module("app.mail").controller("CreateOrEditMailSubstatusDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.mailSubtatuses=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="mailSubtatuses",f.listOrder="",f.listOrderAsc=null,f.selectedMailSubstatuses=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditMailSubstatusDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailSubtatuses/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailSubstatus:e,mailSubtatuses:f.mailSubtatuses.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("mailSubstatus")+"?").htmlContent("<b>"+(e.name||"mailSubstatus")+"</b> will be deleted.").ariaLabel("delete mailSubstatus").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getMailSubstatuses=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.mailSubstatus.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="MailSubstatuses",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditMailSubstatus=function(e,n){i.show({controller:"CreateOrEditMailSubstatusDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailSubtatuses/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailSubstatus:n,mailSubtatuses:f.mailSubtatuses.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteMailSubstatus=y,f.exportSelectedMailSubstatuses=function(){var e=angular.copy(f.selectedMailSubstatuses);return f.selectedMailSubstatuses=[],e},f.deleteSelectedMailSubstatuses=function(e){var n=i.confirm().title("Are you sure want to delete the selected mailSubtatuses?").htmlContent("<b>"+f.selectedMailSubstatuses.length+" selected</b> will be deleted.").ariaLabel("delete MailSubstatuss").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedMailSubstatuses.forEach(function(e){y(e)}),f.selectedMailSubstatuses=[]})},f.deselectMailSubstatuses=function(){f.selectedMailSubstatuses=[]},f.selectAllMailSubstatuses=function(){f.selectedMailSubstatuses=f.mailSubtatuses.rows};var b=!0,A=1;function E(e){f.mailSubtatuses=e||{count:0,rows:[]}}function y(e){m.mailSubstatus.delete({id:e.id}).$promise.then(function(){_.remove(f.mailSubtatuses.rows,{id:e.id}),f.mailSubtatuses.count-=1,f.mailSubtatuses.rows.length||f.getMailSubstatuses(),p.success({title:_.startCase("MailSubstatus")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEmailSubstatus"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEmailSubstatus",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getMailSubstatuses())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","mailSubtatuses","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.mail").controller("MailSubstatusesController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){_.forIn(p.mailAccounts,function(e,n){p.rpcMailAccounts[n]&&_.merge(e,p.rpcMailAccounts[n])}),_.forIn(p.mailAccounts,function(n,e){var t={id:e,sort:"-id",direction:"in",limit:1,offset:0,$gte:"createdAt,"+moment().startOf("day").format("YYYY-MM-DD HH:mm:ss"),fields:"id,createdAt"};s.mailAccount.getMessages(t).$promise.then(function(e){return e&&(n.in=e.count||0,n.lastIn=e.rows&&e.rows.length?e.rows[0].createdAt:void 0),t.direction="out",s.mailAccount.getMessages(t).$promise}).then(function(e){e&&(n.out=e.count||0,n.lastOut=e.rows&&e.rows.length?e.rows[0].createdAt:void 0)}).catch(function(e){console.log(e)})})}p.currentUser=u.getCurrentUser(),p.count=l&&l.count?l.count:0,p.mailAccounts=l?_.keyBy(l.rows?l.rows:[],"id"):{},p.rpcMailAccounts=d?_.keyBy(d.rows?d.rows:[],"id"):{},p.userProfile=c,p.userProfileSection=m&&1==m.count?m.rows[0]:null,p.crudPermissions=u.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.query={sort:"-name",limit:10,page:1},p.success=f,p.$onInit=g,p.getMailAccounts=function(){p.query.offset=(p.query.page-1)*p.query.limit,u.hasRole("admin")?p.promise=s.mailAccount.get(p.query,f).$promise:(p.query.id=p.userProfile.id,p.query.section="MailAccounts",p.promise=s.userProfile.getResources(p.query,f).$promise)},p.onSave=function(e){p.mailAccounts[e.id]&&_.merge(p.mailAccounts[e.id],e)},p.onMailMessageSave=function(e){p.mailAccounts[e.MailAccountId]&&("in"==e.direction?(p.mailAccounts[e.MailAccountId].in+=1,p.mailAccounts[e.MailAccountId].lastIn=e.createdAt):(p.mailAccounts[e.MailAccountId].out+=1,p.mailAccounts[e.MailAccountId].lastOut=e.createdAt))},p.goToMailAccount=function(e,n){i.go("app.mail.mailAccounts.edit",{id:n.id,mailAccount:n})},p.verifySmtp=function(e,n){{if(n&&n.id)return s.mailAccount.verifySmtp({id:n.id}).$promise.then(function(){r.success({title:"Smtp properly verified",msg:"Connection succeded!"})}).catch(function(e){r.error({title:"Smtp properly verified",msg:e.data?JSON.stringify(e.data):e.toString()})});r.error({title:"Smtp properly verified",msg:"Smpt id unknown"})}},p.order=[],_.forIn(p.mailAccounts,function(e,n){p.order.push(e.id)}),o.on("mailAccount:save",p.onSave),o.on("mailAccount:update",p.onSave),o.on("mailMessage:save",p.onMailMessageSave);var v=!0,h=1;function f(e){if(p.mailAccounts=e?_.keyBy(e.rows?e.rows:[],"id"):{},e.rows){p.order=[];for(var n=0;n<e.rows.length;n++)p.order.push(e.rows[n].id)}g()}e.$watch("vm.query.filter",function(e,n){v?t(function(){v=!1}):(n||(h=p.query.page),e!==n&&(p.query.page=1),e||(p.query.page=h),p.getMailAccounts())}),e.$on("$destroy",function(){o.removeAllListeners("mailAccount:save"),o.removeAllListeners("mailAccount:update"),o.removeAllListeners("mailMessage:save")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$state","api","socket","toasty","mailAccounts","rpcMailAccounts","userProfile","userProfileSection","Auth"],angular.module("app.mail").controller("MailAccountsRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c,m){var u=this,p=["loggedIn","available","waiting","paused"],g=n(function(){},999);u.currentUser=c.getCurrentUser(),u.queues=s,u.userProfileSection=d&&1==d.count?d.rows[0]:null,u.crudPermissions=c.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.query={id:c.isUser()?u.currentUser.id:void 0,section:c.isUser()?"MailQueues":void 0,channel:"mail",sort:"name",limit:10,page:1},u.getQueues=function(){u.query.offset=(u.query.page-1)*u.query.limit,o.realtime.getQueues(u.query).$promise.then(function(e){u.queues=e}).catch(function(e){l.error({title:i.instant("MAIL.MAILQUEUES"),msg:e.status?JSON.stringify(e.data):e.toString()})})},u.editQueue=function(e,n){t.show({controller:"CreateOrEditMailQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailQueue:n,mailQueues:u.queues.rows,license:null,setting:null,crudPermissions:u.crudPermissions}})},u.addAgent=function(e,n){t.show({controller:"MailQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailQueue:n,mailQueues:u.queues.rows,realtime:!1,crudPermissions:u.crudPermissions}})},r.on("mail_queue:save",function(e){var n=_.find(u.queues.rows,["id",e.id]);n&&_.merge(n,_.pick(e,p))}),r.on("userMailQueue:save",function(e){var n=_.find(u.queues.rows,["id",e.MailQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),r.on("userMailQueue:remove",function(e){var n=_.find(u.queues.rows,["id",e.MailQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),r.on("user:update",function(t){u.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&m.updateQueue(t,e,n,"mail")})}),e.$on("$destroy",function(){r.removeAllListeners("mail_queue:save"),r.removeAllListeners("userMailQueue:remove"),r.removeAllListeners("userMailQueue:save"),r.removeAllListeners("user:update"),g&&n.cancel(g)})}e.$inject=["$scope","$mdDialog","$document","$interval","$translate","queues","api","socket","toasty","userProfileSection","Auth","realtimeManager"],angular.module("app.mail").controller("QueuesMailRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){return{status:{registered:"green-300-fg icon-checkbox-marked-circle",unregistered:"red-300-fg icon-close-circle",lagged:"red-300-fg icon-close-circle",reachable:"green-300-fg icon-checkbox-marked-circle",unreachable:"red-300-fg icon-close-circle",unknown:"grey-fg icon-minus-circle"},state:{unknown:"grey-fg icon-phone-hangup",not_inuse:"green-300-fg icon-phone-hangup",inuse:"red-300-fg icon-phone-in-talk",busy:"red-300-fg icon-phone-locked",invalid:"grey-fg icon-phone-hangup",unavailable:"grey-fg icon-phone-hangup",ringing:"blue-300-fg icon-phone-incoming",ringinuse:"blue-300-fg icon-phone-incoming",onhold:"blue-300-fg icon-phone-paused"},channelStatus:{ring:"blue-300-fg icon-phone-incoming",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"},channelStatusOut:{ring:"blue-300-fg icon-phone-outgoing",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"}}})}(),function(){"use strict";function e(e,t,n){switch(this.selectedTab=0,t.current.name){case"app.mail.realtime.agents":this.selectedTab=0;break;case"app.mail.realtime.queues":this.selectedTab=1;break;case"app.mail.realtime.accounts":this.selectedTab=2;break;default:this.selectedTab=0,t.go("app.mail.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.mail.realtime.agents");break;case 1:t.go("app.mail.realtime.queues");break;case 2:t.go("app.mail.realtime.accounts");break;default:t.go("app.mail.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.mail").controller("MailRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MARKETPLACE.EDIT_PLUGIN",g.plugin=angular.copy(l),g.plugins=r,g.newPlugin=!1,g.plugin||(g.plugin={},g.title="MARKETPLACE.NEW_PLUGIN",g.newPlugin=!0),g.addNewPlugin=function(){g.errors=[],d.plugin.save(g.plugin).$promise.then(function(e){g.plugins.unshift(e.toJSON()),o.success({title:"Plugin properly created",msg:g.plugin.name?g.plugin.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.plugin.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.plugin.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.savePlugin=function(){g.errors=[],d.plugin.update({id:g.plugin.id},g.plugin).$promise.then(function(e){var n=_.find(g.plugins,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Plugin properly saved!",msg:g.plugin.name?g.plugin.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.plugin.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.plugin.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deletePlugin=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The plugin will be deleted.").ariaLabel("Delete Plugin").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.plugin.delete({id:g.plugin.id}).$promise.then(function(){_.remove(g.plugins,{id:g.plugin.id}),o.success({title:"Plugin properly deleted!",msg:(g.plugin.name||"plugin")+" has been deleted!"}),v(g.plugin)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.plugin.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.plugin.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","plugins","plugin","api","Auth","license","setting","crudPermissions"],angular.module("app.marketplace").controller("CreateOrEditPluginDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.plugin=c||e.params.plugin||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoPlugins=function(){e.go("app.marketplace.plugins",{},{reload:"app.marketplace.plugins"})},u.savePlugin=function(){r.plugin.update({id:u.plugin.id},u.plugin).$promise.then(function(){l.success({title:"Plugin updated!",msg:u.plugin.name?u.plugin.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETplugin",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","plugin","userProfileSection"],angular.module("app.marketplace").controller("MarketplacePluginController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.plugins=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="plugins",f.listOrder="",f.listOrderAsc=null,f.selectedPlugins=[],f.query={fields:"createdAt,updatedAt,id,name,type,active,description,icon,sidebar,path,adminUrl,agentUrl,scriptName,scriptPath,version",sort:"-updatedAt",limit:10,page:1},f.installing=!1,f.arraysidebar=_.keyBy([{option:"Always",value:"'always'"},{option:"Admin Only",value:"'adminOnly'"},{option:"Agent Only",value:"'agentOnly'"},{option:"Never",value:"'never'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.installplugin=function(e){{if("script"!==e.type)return e.active=!0,m.plugin.update({id:e.id},e).$promise.then(function(){p.success({title:"Plugin installed!",msg:e.name?e.name+" has been installed!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"api.plugin.update"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.plugin.update",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})});f.installing=!0,m.pm2.save({name:e.scriptName,script:e.path+"/"+e.scriptPath}).$promise.then(function(){return e.active=!0,m.plugin.update({id:e.id},e).$promise}).then(function(){f.installing=!1,p.success({title:"Plugin installed!",msg:e.name?e.name+" has been installed!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"api.pm2.save"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pm2.save",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}},f.editstate=function(e,n){t.go("app.marketplace.plugins.edit",{id:e.id,plugin:e,crudPermissions:f.crudPermissions})},f.stopplugin=function(e,n){var t=i.confirm().title("Are you sure want to stop the plugin attached process?").htmlContent("<b>"+(e.name||"plugin")+"</b> attached process will be stoppped.").ariaLabel("stop plugin process").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){var t;t=e,m.pm2.get().$promise.then(function(e){if(!e||!e.rows)throw new Error("Failed to retrieve pm2 processes");var n=_.find(e.rows,{name:t.scriptName});if(!n)throw new Error("No corresponding process found");m.pm2.update({id:n.pm_id,status:"stopped"}).$promise.then(function(){p.success({title:"Process stopped!",msg:"Attached pm2 process successfully stopped"})})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"api.pm2.update"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pm2.update",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){console.log("CANCEL")})},f.restartplugin=function(e,n){var t=i.confirm().title("Are you sure want to restart the plugin attached process?").htmlContent("<b>"+(e.name||"plugin")+"</b> attached process will be restarted.").ariaLabel("restart plugin process").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){var t;t=e,m.pm2.get().$promise.then(function(e){if(!e||!e.rows)throw new Error("Failed to retrieve pm2 processes");var n=_.find(e.rows,{name:t.scriptName});if(!n)throw new Error("No corresponding process found");m.pm2.update({id:n.pm_id,status:"online"}).$promise.then(function(){p.success({title:"Process restarted!",msg:"Attached pm2 process successfully restarted"})})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"api.pm2.update"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pm2.update",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){console.log("CANCEL")})},f.downloadfile2=function(s,e){return m.plugin.download({id:s.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s.name.replace(" ","_").toLowerCase()+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.plugin.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.uninstallplugin=function(e,n){var t=i.confirm().title("Are you sure want to uninstall the plugin?").htmlContent("<b>"+(e.name||"plugin")+"</b> will be uninstalled.").ariaLabel("uninstall plugin").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){!function(t){"script"===t.type&&m.pm2.get().$promise.then(function(e){if(!e||!e.rows)throw new Error("Failed to retrieve pm2 processes");var n=_.find(e.rows,{name:t.scriptName});if(!n)throw new Error("No corresponding process found");m.pm2.delete({id:n.pm_id,name:t.scriptName}).$promise}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pm2.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})});t.active=!1,m.plugin.update({id:t.id},t).$promise.then(function(){p.success({title:"Plugin uninstalled!",msg:t.name?t.name+" has been uninstalled!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"api.plugin.update"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.plugin.update",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}(e)},function(){console.log("CANCEL")})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("plugin")+"?").htmlContent("<b>"+(e.name||"plugin")+"</b> will be deleted.").ariaLabel("delete plugin").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getPlugins=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.plugin.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Plugins",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditPlugin=function(e,n){i.show({controller:"CreateOrEditPluginDialogController",controllerAs:"vm",templateUrl:"app/main/apps/marketplace/views/plugins/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{plugin:n,plugins:f.plugins.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deletePlugin=y,f.exportSelectedPlugins=function(){var e=angular.copy(f.selectedPlugins);return f.selectedPlugins=[],e},f.deleteSelectedPlugins=function(e){var n=i.confirm().title("Are you sure want to delete the selected plugins?").htmlContent("<b>"+f.selectedPlugins.length+" selected</b> will be deleted.").ariaLabel("delete Plugins").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedPlugins.forEach(function(e){y(e)}),f.selectedPlugins=[]})},f.deselectPlugins=function(){f.selectedPlugins=[]},f.selectAllPlugins=function(){f.selectedPlugins=f.plugins.rows},f.uploadPlugin=function(e){i.show({controller:"UploadPluginDialogController",controllerAs:"vm",templateUrl:"app/main/apps/marketplace/views/plugins/upload/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{plugins:f.plugins.rows}})};var b=!0,A=1;function E(e){f.plugins=e||{count:0,rows:[]}}function y(t){t.active&&"script"==t.type&&m.pm2.get().$promise.then(function(e){if(!e||!e.rows)return p.error({title:"Plugin not deleted!",msg:"Failed to retrieve pm2 processes"});var n=_.find(e.rows,{name:t.scriptName});n?m.pm2.delete({id:n.pm_id,name:t.scriptName}).$promise:console.log("No '%s' process found",t.scriptName)}).catch(function(e){return p.error({title:"PM2 process not found!",msg:"Failed to delete the attached pm2 process"})}),m.plugin.delete({id:t.id}).$promise.then(function(){_.remove(f.plugins.rows,{id:t.id}),f.plugins.count-=1,f.plugins.rows.length||f.getPlugins(),p.success({title:_.startCase("Plugin")+" deleted!",msg:t.name?t.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEplugin"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEplugin",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getPlugins())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","plugins","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.marketplace").controller("MarketplacePluginsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this,r=4,l=1024*r*1024;o.currentUser=s.getCurrentUser(),o.errors=[],o.title="MARKETPLACE.UPLOAD_PLUGIN",o.plugins=a,o.uploadPlugins=[],o.uploadState="none",o.plugin={},o.ngFlowOptions={maxChunkRetries:1,chunkSize:l,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0,target:"api/plugins"},o.ngFlow={flow:{}},o.dropping=!1,o.fileAdded=function(e){var n=["zip"];if(!_.includes(n,e.getExtension()))return t.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(e.size>l)return t.error({title:"File too big",msg:"The max allowed size is "+r+"MB"}),!1;return o.plugin={id:e.uniqueIdentifier,file:e},o.uploadPlugins.unshift(o.plugin),!0},o.upload=function(){o.uploadState="uploading",o.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},o.ngFlow.flow.opts.query={role:o.currentUser.role,userProfileId:o.currentUser.userProfileId},o.ngFlow.flow.upload()},o.fileSuccess=function(a,e){o.plugins.unshift(JSON.parse(e)),angular.forEach(o.uploadPlugins,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result}}})},o.uploadError=function(e,n){o.ngFlow.flow.cancel(),t.error({title:"Upload error",msg:"Cannot upload the plugin"}),o.uploadState="failed"},o.uploadComplete=function(){"failed"!==o.uploadState&&(o.uploadState="completed",t.success({title:"Upload completed",msg:o.plugin.file.name+" uploaded successfully"}))},o.closeDialog=function(){n.hide()}}e.$inject=["$cookies","$mdDialog","toasty","plugins","api","Auth"],angular.module("app.marketplace").controller("UploadPluginDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MOTIONDIALER.EDIT_IVRCAMPAIGN",g.ivrCampaign=angular.copy(l),g.ivrCampaigns=r,g.newIvrCampaign=!1,g.ivrCampaign||(g.ivrCampaign={active:!0,type:"ivr",dialCheckDuplicateType:"always",dialCutDigit:0,limitCalls:30,dialRandomLastDigitCallerIdNumber:0,dialOriginateTimeout:30,dialGlobalMaxRetry:4,dialCongestionMaxRetry:3,dialCongestionRetryFrequency:150,dialBusyMaxRetry:3,dialBusyRetryFrequency:150,dialNoAnswerMaxRetry:3,dialNoAnswerRetryFrequency:150,dialNoSuchNumberMaxRetry:3,dialNoSuchNumberRetryFrequency:150,dialDropMaxRetry:3,dialDropRetryFrequency:150,dialAbandonedMaxRetry:3,dialAbandonedRetryFrequency:150,dialMachineMaxRetry:3,dialMachineRetryFrequency:150,dialAgentRejectMaxRetry:3,dialAgentRejectRetryFrequency:150,dialOrderByScheduledAt:"ASC",dialGlobalInterval:"07:00-22:00,*,*,*",dialAMDInitialSilence:2500,dialAMDGreeting:1500,dialAMDAfterGreetingSilence:800,dialAMDTotalAnalysisTime:5e3,dialAMDMinWordLength:100,dialAMDBetweenWordsSilence:50,dialAMDMaximumNumberOfWords:3,dialAMDSilenceThreshold:256,dialAMDMaximumWordLength:5e3},g.title="MOTIONDIALER.NEW_IVRCAMPAIGN",g.newIvrCampaign=!0),g.addNewIvrCampaign=function(){g.errors=[],d.campaign.save(g.ivrCampaign).$promise.then(function(e){g.ivrCampaigns.unshift(e.toJSON()),o.success({title:"IvrCampaign properly created",msg:g.ivrCampaign.name?g.ivrCampaign.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.campaign.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.campaign.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveIvrCampaign=function(){g.errors=[],d.campaign.update({id:g.ivrCampaign.id},g.ivrCampaign).$promise.then(function(e){var n=_.find(g.ivrCampaigns,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"IvrCampaign properly saved!",msg:g.ivrCampaign.name?g.ivrCampaign.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.campaign.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.campaign.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteIvrCampaign=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The ivrCampaign will be deleted.").ariaLabel("Delete IvrCampaign").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.campaign.delete({id:g.ivrCampaign.id}).$promise.then(function(){_.remove(g.ivrCampaigns,{id:g.ivrCampaign.id}),o.success({title:"IvrCampaign properly deleted!",msg:(g.ivrCampaign.name||"ivrCampaign")+" has been deleted!"}),v(g.ivrCampaign)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.campaign.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.campaign.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.trunk.get({fields:"id,name",sort:"name",table:"true"}).$promise.then(function(e){g.trunks=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.trunk.get({fields:"id,name",sort:"name",table:"true"}).$promise.then(function(e){g.trunks=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.trunks,{id:e.resourceId})});g.trunks.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),g.trunks=n})}else g.trunks=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.projects=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PROJECTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.projects=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1103}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.projects,{id:e.resourceId})}),t=null;if(g.ivrCampaign&&(t=_.find(g.projects,{id:Number(g.ivrCampaign.SquareProjectId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.projects,{id:t.id});a.canSelect=!1,n.push(a)}g.projects=n})}else{var t=[],a=null;g.ivrCampaign&&(a=_.find(g.projects,{id:Number(g.ivrCampaign.SquareProjectId)}));for(var i=0;i<g.projects.length;i++)a&&g.projects[i].id===a.id&&(g.projects[i].canSelect=!1,t.push(g.projects[i]));g.projects=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){g.interval=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){g.interval=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.interval,{id:e.resourceId})}),t=null;if(g.ivrCampaign&&(t=_.find(g.interval,{id:Number(g.ivrCampaign.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.interval,{id:t.id});a.canSelect=!1,n.push(a)}g.interval=n})}else{var t=[],a=null;g.ivrCampaign&&(a=_.find(g.interval,{id:Number(g.ivrCampaign.IntervalId)}));for(var i=0;i<g.interval.length;i++)a&&g.interval[i].id===a.id&&(g.interval[i].canSelect=!1,t.push(g.interval[i]));g.interval=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","ivrCampaigns","ivrCampaign","api","Auth","license","setting","crudPermissions"],angular.module("app.motiondialer").controller("CreateOrEditIvrCampaignDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l){var d=this;function c(){return a(function(t,n){return a(function(n,t){return s.cmList.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return d.items=e.rows?e.rows:[],r.hasRole("admin")?e:d.section?d.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:d.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return d.allowedItems=_.map(n,function(e){return _.find(d.items,{id:r.hasRole("admin")||d.section.autoAssociation?e.id:e.resourceId})}),d.startingAllowedItems=angular.copy(d.allowedItems),d.items.forEach(function(e){var n=_.find(d.allowedItems,{id:e.id});"admin"===d.currentUser.role?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s[d.apiRoute][d.getApi]({id:d.ivrCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];d.selectedItems=_.map(n,function(e){return _.find(d.items,{id:e.id})}),d.startingSelectedItems=angular.copy(d.selectedItems),d.dualMultiselectOptions.selectedItems=d.selectedItems,d.dualMultiselectOptions.items=_.differenceBy(d.allowedItems,d.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}d.currentUser=r.getCurrentUser(),d.ivrCampaign=n,d.crudPermissions=l,d.apiRoute="campaign",d.getApi="getBlackLists",d.addApi="addBlackLists",d.removeApi="removeBlackLists",d.items=[],d.allowedItems=[],d.selectedItems=[],d.startingAllowedItems=[],d.startingSelectedItems=[],d.pendingChanges=!1,d.loading=!1,d.dualMultiselectOptions={allowedItems:[],selectedItems:[],showSelectAndDeselectAll:!1,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:t.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,n){var t=_.xorBy(d.startingSelectedItems,d.selectedItems,"id");d.pendingChanges=!_.isEmpty(t)}},d.onInit=function(){return r.hasRole("admin")?c().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:d.currentUser.userProfileId,name:"Lists"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return d.section=e,c()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},d.saveLists=function(){d.loading=!0;var e=_.differenceBy(d.startingSelectedItems,d.selectedItems,"id"),n=_.differenceBy(d.selectedItems,d.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.removeApi]({id:d.ivrCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.addApi]({id:d.ivrCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){d.pendingChanges=!1,d.startingAllowedItems=angular.copy(d.allowedItems),d.startingSelectedItems=angular.copy(d.selectedItems),i.success({title:"SUCCESS",msg:"Lists association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})}).finally(function(){d.loading=!1});var t},d.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","ivrCampaign","$translate","$timeout","Auth","crudPermissions"],angular.module("app.motiondialer").controller("IvrCampaignblacklistaddController",e)}(),function(){"use strict";function e(n,t,a,e,i,s,o){var r=this;function l(e){n.hide(e)}r.newIvrCampaign=!0,r.ivrCampaign=angular.copy(i),r.ivrCampaigns=s,r.title=o.instant("MOTIONDIALER.CLONE_IVRCAMPAIGN"),i&&i.name&&(r.title+=": "+i.name),r.cloneIvrCampaign=function(){return e.campaign.clone({id:i.id},r.ivrCampaign).$promise.then(function(e){r.ivrCampaigns.unshift(e.toJSON()),a.success({title:"IvrCampaign properly cloned",msg:r.ivrCampaign.name?r.ivrCampaign.name+" has been cloned!":""}),t.go("app.motiondialer.ivrCampaigns.edit",{id:e.id}),l(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.campaign.clone"}];for(var n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.campaign.clone",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$mdDialog","$state","toasty","api","ivrCampaign","ivrCampaigns","$translate"],angular.module("app.motiondialer").controller("IvrCampaigncloneController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.ivrCampaignHopperBlacks=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.campaign.getHopperBlacks(m.query,u).$promise}function g(e){d.hopperBlack.delete({id:e.id}).$promise.then(function(){_.remove(m.ivrCampaignHopperBlacks.rows,{id:e.id}),m.ivrCampaignHopperBlacks.count-=1,m.ivrCampaignHopperBlacks.rows.length||p(),l.success({title:"HopperBlack deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcampaign"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.ivrCampaign={},m.ivrCampaignHopperBlacks={count:0,rows:[]},m.selectedIvrCampaignHopperBlacks=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,ContactId,phone",sort:"-id",limit:10,page:1},m.init=function(e,n){m.ivrCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.CampaignId=m.ivrCampaign.id,m.query.id=m.ivrCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopperBlack?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopperBlack #")+e.id||"hopperBlack")+"</b> will be deleted.").ariaLabel("delete hopperBlack").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getIvrCampaignHopperBlacks=p,m.createOrEditIvrCampaignHopperBlack=function(e,n){o.show({controller:"CreateOrEditHopperBlackDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hopperBlacks/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:m.ivrCampaign,hopperBlack:n,hopperBlacks:m.ivrCampaignHopperBlacks.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedIvrCampaignHopperBlacks=function(){var e=angular.copy(m.selectedIvrCampaignHopperBlacks);return m.selectedIvrCampaignHopperBlacks=[],e},m.deleteIvrCampaignHopperBlack=g,m.deleteSelectedIvrCampaignHopperBlacks=function(e){var n=o.confirm().title("Are you sure want to delete the selected hopperBlacks?").htmlContent("<b>"+m.selectedIvrCampaignHopperBlacks.length+" selected</b> will be deleted.").ariaLabel("delete hopperBlacks").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedIvrCampaignHopperBlacks.forEach(function(e){g(e)}),m.selectedIvrCampaignHopperBlacks=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("IvrCampaignHopperBlacksController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.ivrCampaignHopperFinals=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.campaign.getHopperFinals(m.query,u).$promise}function g(e){d.hopperFinal.delete({id:e.id}).$promise.then(function(){_.remove(m.ivrCampaignHopperFinals.rows,{id:e.id}),m.ivrCampaignHopperFinals.count-=1,m.ivrCampaignHopperFinals.rows.length||p(),l.success({title:"HopperFinal deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcampaign"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(a){d.cmHopperFinal.checkContactHopper(a).$promise.then(function(e){l.info({title:"The contact is in the hopper",msg:"Contact ID "+e.ContactId})}).catch(function(e){var n,t;"Not Found"===e.data?d.cmHopper.save((n=a,t={},t.phone=n.calleridnum,t.scheduledat=moment().format("YYYY-MM-DD HH:mm:ss"),t.countbusyretry=0,t.countcongestionretry=0,t.countnoanswerretry=0,t.countglobal=0,t.ContactId=n.ContactId,t.ListId=n.ListId,t.UserId=n.deleted?null:n.UserId,t.VoiceQueueId=n.VoiceQueueId,t.CampaignId=n.CampaignId,t.priority=n.recallme?3:2,t.recallme=!!n.recallme,t)).$promise.then(function(e){var n,t;l.info({title:"Restored Contact",msg:"Contact ID "+e.ContactId}),e.ContactId&&d.cmHopperHistory.save(((t={}).calleridnum=(n=a).calleridnum,t.calleridname=n.calleridname,t.scheduledat=moment().format("YYYY-MM-DD HH:mm:ss"),t.countbusyretry=n.countbusyretry,t.countcongestionretry=n.countcongestionretry,t.countnoanswerretry=n.countnoanswerretry,t.countglobal=n.countglobal,t.ContactId=n.ContactId,t.ListId=n.ListId,t.UserId=c.getCurrentUser().id,t.VoiceQueueId=n.VoiceQueueId,t.CampaignId=n.CampaignId,t.editedat=moment().format("YYYY-MM-DD HH:mm:ss"),t.edited=!0,t.state=25,t.statedesc="Restored",t.campaign=n.campaign,t.campaigntype=n.VoiceQueueId?"queue":"ivr",t))}).catch(function(e){_.isNil(e.data)||"Validation error"!==e.data.message?l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()}):l.info({title:"The contact is in the hopper",msg:"Contact ID "+a.ContactId})}):l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.contacts={},m.ivrCampaign={},m.ivrCampaignHopperFinals={count:0,rows:[]},m.selectedIvrCampaignHopperFinals=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,uniqueid,ContactId,calleridnum,calleridname,statedesc,countcongestionretry,countbusyretry,countnoanswerretry,countnosuchnumberretry,countdropretry,countabandonedretry,countmachineretry,countagentrejectretry,countglobal,scheduledat,starttime,responsetime,endtime,disposition,ListId,UserId,VoiceQueueId,CampaignId,recallme,deleted,campaign",sort:"-id",limit:10,page:1},m.init=function(e,n){m.ivrCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.CampaignId=m.ivrCampaign.id,m.query.id=m.ivrCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopperFinal?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopperFinal #")+e.id||"hopperFinal")+"</b> will be deleted.").ariaLabel("delete hopperFinal").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getIvrCampaignHopperFinals=p,m.createOrEditIvrCampaignHopperFinal=function(e,n){o.show({controller:"CreateOrEditHopperFinalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hopperFinals/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:m.ivrCampaign,hopperFinal:n,hopperFinals:m.ivrCampaignHopperFinals.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedIvrCampaignHopperFinals=function(){var e=angular.copy(m.selectedIvrCampaignHopperFinals);return m.selectedIvrCampaignHopperFinals=[],e},m.deleteIvrCampaignHopperFinal=g,m.deleteSelectedIvrCampaignHopperFinals=function(e){var n=o.confirm().title("Are you sure want to delete the selected hopperFinals?").htmlContent("<b>"+m.selectedIvrCampaignHopperFinals.length+" selected</b> will be deleted.").ariaLabel("delete hopperFinals").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedIvrCampaignHopperFinals.forEach(function(e){g(e)}),m.selectedIvrCampaignHopperFinals=[]})},m.moveIvrCampaignHopperFinal=v,m.moveContactsIvrCampaignHopperFinal=function(e){d.cmHopperFinal.moveContactsIvrCampaignHopperFinal({id:m.query.id,state:e}).$promise.then(function(e){_.isNil(e)&&_.isNil(e[0])?l.info({title:"Restored Contacts",msg:"0"}):l.info({title:"Restored Contacts",msg:JSON.stringify(e[0].affectedRows)})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},m.countContactsIvrCampaignHopperFinal=function(e){d.cmHopperFinal.countContactsIvrCampaignHopperFinal({id:e}).$promise.then(function(e){_.merge(m.contacts,e[0])}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},m.moveConfirm=function(e,n){var t=o.confirm().title("Are you sure want to restore the contact?").htmlContent("<b>Contact</b> will be restored.").ariaLabel("Restore Contact").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){v(e)},function(){console.log("CANCEL")})},m.moveSelectedIvrCampaignHopperFinals=function(e){var n=o.confirm().title("Are you sure want to restore the selected contacts?").htmlContent("<b> Contacts selected</b> will be restored.").ariaLabel("Restore Contacts").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedIvrCampaignHopperFinals.forEach(function(e){v(e)}),m.selectedIvrCampaignHopperFinals=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("IvrCampaignHopperFinalsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.ivrCampaignHopperHistories=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.campaign.getHopperHistories(m.query,u).$promise}function g(e){d.hopperHistory.delete({id:e.id}).$promise.then(function(){_.remove(m.ivrCampaignHopperHistories.rows,{id:e.id}),m.ivrCampaignHopperHistories.count-=1,m.ivrCampaignHopperHistories.rows.length||p(),l.success({title:"HopperHistory deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcampaign"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.ivrCampaign={},m.ivrCampaignHopperHistories={count:0,rows:[]},m.selectedIvrCampaignHopperHistories=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,uniqueid,ContactId,calleridnum,calleridname,statedesc,scheduledat,starttime,responsetime,endtime",sort:"-id",limit:10,page:1},m.init=function(e,n){m.ivrCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.CampaignId=m.ivrCampaign.id,m.query.id=m.ivrCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopperHistory?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopperHistory #")+e.id||"hopperHistory")+"</b> will be deleted.").ariaLabel("delete hopperHistory").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getIvrCampaignHopperHistories=p,m.createOrEditIvrCampaignHopperHistory=function(e,n){o.show({controller:"CreateOrEditHopperHistoryDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hopperHistories/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:m.ivrCampaign,hopperHistory:n,hopperHistories:m.ivrCampaignHopperHistories.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedIvrCampaignHopperHistories=function(){var e=angular.copy(m.selectedIvrCampaignHopperHistories);return m.selectedIvrCampaignHopperHistories=[],e},m.deleteIvrCampaignHopperHistory=g,m.deleteSelectedIvrCampaignHopperHistories=function(e){var n=o.confirm().title("Are you sure want to delete the selected hopperHistories?").htmlContent("<b>"+m.selectedIvrCampaignHopperHistories.length+" selected</b> will be deleted.").ariaLabel("delete hopperHistories").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedIvrCampaignHopperHistories.forEach(function(e){g(e)}),m.selectedIvrCampaignHopperHistories=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("IvrCampaignHopperHistoriesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.ivrCampaignHoppers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.campaign.getHoppers(m.query,u).$promise}function g(e){d.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(m.ivrCampaignHoppers.rows,{id:e.id}),m.ivrCampaignHoppers.count-=1,m.ivrCampaignHoppers.rows.length||p(),l.success({title:"Hopper deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcampaign"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.ivrCampaign={},m.ivrCampaignHoppers={count:0,rows:[]},m.selectedIvrCampaignHoppers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,ContactId,phone,countcongestionretry,countbusyretry,countnoanswerretry,countnosuchnumberretry,countdropretry,countabandonedretry,countmachineretry,countagentrejectretry,scheduledat,priority",sort:"-updatedAt",limit:10,page:1},m.arraypriority=_.keyBy([{option:"Highest",value:"'4'"},{option:"High",value:"'3'"},{option:"Medium",value:"'2'"},{option:"Low",value:"'1'"},{option:"Lowest",value:"'0'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),m.init=function(e,n){m.ivrCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.CampaignId=m.ivrCampaign.id,m.query.id=m.ivrCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopper?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopper #")+e.id||"hopper")+"</b> will be deleted.").ariaLabel("delete hopper").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getIvrCampaignHoppers=p,m.createOrEditIvrCampaignHopper=function(e,n){o.show({controller:"CreateOrEditHopperCampaignIdDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hoppers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:m.ivrCampaign,hopper:n,hoppers:m.ivrCampaignHoppers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedIvrCampaignHoppers=function(){var e=angular.copy(m.selectedIvrCampaignHoppers);return m.selectedIvrCampaignHoppers=[],e},m.deleteIvrCampaignHopper=g,m.deleteSelectedIvrCampaignHoppers=function(e){var n=o.confirm().title("Are you sure want to delete the selected hoppers?").htmlContent("<b>"+m.selectedIvrCampaignHoppers.length+" selected</b> will be deleted.").ariaLabel("delete hoppers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedIvrCampaignHoppers.forEach(function(e){g(e)}),m.selectedIvrCampaignHoppers=[]})},c.hasRole("admin")?d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){m.agents=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){m.agents=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:m.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(m.agents,{id:e.resourceId})});m.agents.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),m.agents=n})}else m.agents=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("IvrCampaignHoppersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MOTIONDIALER.EDIT_HOPPER",g.hopper=angular.copy(l),g.hoppers=r,g.newHopper=!1,g.hopper||(g.hopper={},g.title="MOTIONDIALER.NEW_HOPPER",g.newHopper=!0),n.params.id&&(g.hopper.CampaignId=n.params.id),g.addNewHopper=function(){g.errors=[],d.cmHopper.save(g.hopper).$promise.then(function(e){g.hoppers.unshift(e.toJSON()),o.success({title:"Hopper properly created",msg:g.hopper.name?g.hopper.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveHopper=function(){var t,a,i,s;g.errors=[],g.hopper.UserId=g.hopper.recallme?g.hopper.UserId:null,g.hopper.OwnerId=c.getCurrentUser().id,d.cmHopper.get({id:g.hopper.id,attributes:["scheduledat"]}).$promise.then(function(e){t=_.isNil(e)||_.isEmpty(e)?moment().format("YYYY-MM-DD HH:mm:ss"):e.scheduledat}).finally(function(){d.cmHopper.update({id:g.hopper.id},_.omit(g.hopper,["VoiceQueueId","CampaignId","ContactId","ListId"])).$promise.then(function(e){a=e,d.cmContact.get({id:a.ContactId,attributes:["firstName","lastName"]}).$promise.then(function(e){_.isNil(e)||_.isNil(e.firstName)||(i=e.firstName,_.isNil(e.lastName)||(i+=" "+e.lastName))}).catch(function(){i=void 0}).finally(function(){d.campaign.get({raw:!1,id:a.CampaignId,attributes:["name"]}).$promise.then(function(e){s=e.name}).catch(function(e){s=void 0}).finally(function(){d.cmHopperHistory.save({state:24,statedesc:"Edited",scheduledat:t,calleridnum:a.phone,calleridname:i,campaigntype:a.VoiceQueueId?"queue":"ivr",campaign:s,editedat:moment().format("YYYY-MM-DD HH:mm:ss"),edited:!0,ListId:a.ListId,UserId:c.getCurrentUser().id,VoiceQueueId:a.VoiceQueueId,CampaignId:a.CampaignId,ContactId:a.ContactId,callback:a.callback,callbackuniqueid:a.callbackuniqueid,countbusyretry:a.countbusyretry,countcongestionretry:a.countcongestionretry,countglobal:a.countglobal,countnoanswerretry:a.countnoanswerretry,followuptime:a.followuptime,recallme:a.recallme})})});var n=_.find(g.hoppers,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Hopper properly saved!",msg:g.hopper.name?g.hopper.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})})},g.deleteHopper=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The hopper will be deleted.").ariaLabel("Delete Hopper").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cmHopper.delete({id:g.hopper.id}).$promise.then(function(){_.remove(g.hoppers,{id:g.hopper.id}),o.success({title:"Hopper properly deleted!",msg:(g.hopper.name||"hopper")+" has been deleted!"}),v(g.hopper)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){g.agents=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){g.agents=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.agents,{id:e.resourceId})});g.agents.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),g.agents=n})}else g.agents=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","hoppers","hopper","api","Auth","license","setting","crudPermissions"],angular.module("app.motiondialer").controller("CreateOrEditHopperCampaignIdDialogController",e)}(),function(){"use strict";function e(t,a){var i=this;i.ivrCampaign={},i.init=function(n){i.ivrCampaign=n,t.cmHopper.get({limit:0,CampaignId:n.id}).$promise.then(function(e){return i.total=e.count||0,t.cmHopper.get({limit:0,CampaignId:n.id,active:!1,countbusyretry:0,countcongestionretry:0,countnoanswerretry:0,countnosuchnumberretry:0,countdropretry:0,countabandonedretry:0,countmachineretry:0,countagentrejectretry:0}).$promise}).then(function(e){return i.fresh=e.count||0,t.cmHopperFinal.get({limit:0,CampaignId:n.id}).$promise}).then(function(e){i.closed=e.count||0}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["api","toasty"],angular.module("app.motiondialer").controller("IvrCampaignHopperStatisticsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l){var d=this;function c(){return a(function(t,n){return a(function(n,t){return s.cmList.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return d.items=e.rows?e.rows:[],r.hasRole("admin")?e:d.section?d.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:d.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return d.allowedItems=_.map(n,function(e){return _.find(d.items,{id:r.hasRole("admin")||d.section.autoAssociation?e.id:e.resourceId})}),d.startingAllowedItems=angular.copy(d.allowedItems),d.items.forEach(function(e){var n=_.find(d.allowedItems,{id:e.id});"admin"===d.currentUser.role?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s[d.apiRoute][d.getApi]({id:d.ivrCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];d.selectedItems=_.map(n,function(e){return _.find(d.items,{id:e.id})}),d.startingSelectedItems=angular.copy(d.selectedItems),d.dualMultiselectOptions.selectedItems=d.selectedItems,d.dualMultiselectOptions.items=_.differenceBy(d.allowedItems,d.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}d.currentUser=r.getCurrentUser(),d.ivrCampaign=n,d.crudPermissions=l,d.apiRoute="campaign",d.getApi="getLists",d.addApi="addLists",d.removeApi="removeLists",d.items=[],d.allowedItems=[],d.selectedItems=[],d.startingAllowedItems=[],d.startingSelectedItems=[],d.pendingChanges=!1,d.loading=!1,d.dualMultiselectOptions={allowedItems:[],selectedItems:[],showSelectAndDeselectAll:!1,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:t.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,n){var t=_.xorBy(d.startingSelectedItems,d.selectedItems,"id");d.pendingChanges=!_.isEmpty(t)}},d.onInit=function(){return r.hasRole("admin")?c().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:d.currentUser.userProfileId,name:"Lists"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return d.section=e,c()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},d.saveLists=function(){d.loading=!0;var e=_.differenceBy(d.startingSelectedItems,d.selectedItems,"id"),n=_.differenceBy(d.selectedItems,d.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.removeApi]({id:d.ivrCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.addApi]({id:d.ivrCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){d.pendingChanges=!1,d.startingAllowedItems=angular.copy(d.allowedItems),d.startingSelectedItems=angular.copy(d.selectedItems),i.success({title:"SUCCESS",msg:"Lists association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})}).finally(function(){d.loading=!1});var t},d.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","ivrCampaign","$translate","$timeout","Auth","crudPermissions"],angular.module("app.motiondialer").controller("IvrCampaignlistaddController",e)}(),function(){"use strict";function e(e,n,a,i,s,t,o,r){var l=this;function d(){n.hide()}function c(e,n){var t=n.id;o.enqueue(function(){return i.campaign.removeLists({id:e,ids:t}).$promise.then(function(){return i.campaign.addLists({id:e,ids:t,dialCheckDuplicateType:"never"}).$promise}).then(function(){a.success({title:"Reset Succesfull",msg:"List "+n.name+" has been reset"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:queueCampaign.RESETLIST",msg:e.status?JSON.stringify(e.data):e.toString()})})})}l.selected=[],l.items=t||[],l.loading=!1,l.closeDialog=d,l.exists=function(e,n){return-1<n.indexOf(e)},l.toggle=function(e,n){var t=n.indexOf(e);-1<t?n.splice(t,1):n.push(e)},l.isIndeterminate=function(){return 0!==l.selected.length&&l.selected.length!==l.items.length},l.isChecked=function(){return l.selected.length===l.items.length},l.toggleAll=function(){l.selected.length===l.items.length?l.selected=[]:(0===l.selected.length||0<l.selected.length)&&(l.selected=l.items.slice(0))},l.listSelected=function(){l.loading=!0,r(function(e,n){for(var t=0;t<l.selected.length;t+=1)c(s.id,l.selected[t]);var a;a=e,o.enqueue(function(){return a()})}).finally(function(){l.loading=!1,d()})}}e.$inject=["$scope","$mdDialog","toasty","api","ivrCampaign","listsCampaign","Sequence","$q"],angular.module("app.motiondialer").controller("IvrCampaignresetlistController",e)}(),function(){"use strict";function e(t,e,i,s,a,n,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=n,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.ivrCampaign=c||t.params.ivrCampaign||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=t.params.tab||0,u.clonedialog=function(e,n){i.show({controller:"IvrCampaigncloneController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:u.ivrCampaigns?u.ivrCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.listadddialog=function(e,n){i.show({controller:"IvrCampaignlistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/listadd/listadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:u.ivrCampaigns?u.ivrCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.blacklistadddialog=function(e,n){i.show({controller:"IvrCampaignblacklistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/blacklistadd/blacklistadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:u.ivrCampaigns?u.ivrCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.resetlistdialog=function(n,t){r.campaign.getLists({id:n.id,fields:"id,name",nolimit:!0}).$promise.then(function(a){if(_.isNil(a.rows)||_.isEmpty(a.rows))l.info({title:"Campaign Without Lists"});else if(1===a.rows.length){var e=i.confirm().title("Are you sure want to reset the list "+a.rows[0].name+" ?").htmlContent("<b>"+a.rows[0].name+"</b> will be reset.").ariaLabel("Reset List").targetEvent(t).ok("OK").cancel("CANCEL");i.show(e).then(function(){var e,n,t;e=u.ivrCampaign.id,n=a.rows[0],t=n.id,r.campaign.removeLists({id:e,ids:t}).$promise.then(function(){return r.campaign.addLists({id:e,ids:t,dialCheckDuplicateType:"never"}).$promise}).then(function(){l.success({title:"Reset Succesfull",msg:"List "+n.name+" has been reset"})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ivrCampaign.REMOVELIST",msg:e.status?JSON.stringify(e.data):e.toString()})})})}else i.show({controller:"IvrCampaignresetlistController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/resetlist/resetlist.html",parent:angular.element(s.body),targetEvent:t,clickOutsideToClose:!1,locals:{ivrCampaign:n,listsCampaign:a?a.rows:[]}})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:RESETLIST",msg:e.status?JSON.stringify(e.data):e.toString()})})},u.gotogoto=function(e,n){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:1510}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.motiondialer.realtime.ivr_campaigns",{}):l.info({title:a.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:a.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.motiondialer.realtime.ivr_campaigns",{})}},u.alert=l.info,u.gotoIvrCampaigns=function(){t.go("app.motiondialer.ivrCampaigns",{},{reload:"app.motiondialer.ivrCampaigns"})},u.saveIvrCampaign=function(){r.campaign.update({id:u.ivrCampaign.id},u.ivrCampaign).$promise.then(function(){l.success({title:"IvrCampaign updated!",msg:u.ivrCampaign.name?u.ivrCampaign.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.trunks=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.trunks=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.trunks,{id:e.resourceId})});u.trunks.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),u.trunks=n})}else u.trunks=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.projects=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PROJECTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.projects=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1103}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.projects,{id:e.resourceId})}),t=null;if(u.ivrCampaign&&(t=_.find(u.projects,{id:Number(u.ivrCampaign.SquareProjectId)})),t&&!_.some(n,["id",t.id])){var a=_.find(u.projects,{id:t.id});a.canSelect=!1,n.push(a)}u.projects=n})}else{var t=[],a=null;u.ivrCampaign&&(a=_.find(u.projects,{id:Number(u.ivrCampaign.SquareProjectId)}));for(var i=0;i<u.projects.length;i++)a&&u.projects[i].id===a.id&&(u.projects[i].canSelect=!1,t.push(u.projects[i]));u.projects=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){u.interval=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){u.interval=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.interval,{id:e.resourceId})}),t=null;if(u.ivrCampaign&&(t=_.find(u.interval,{id:Number(u.ivrCampaign.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(u.interval,{id:t.id});a.canSelect=!1,n.push(a)}u.interval=n})}else{var t=[],a=null;u.ivrCampaign&&(a=_.find(u.interval,{id:Number(u.ivrCampaign.IntervalId)}));for(var i=0;i<u.interval.length;i++)a&&u.interval[i].id===a.id&&(u.interval[i].canSelect=!1,t.push(u.interval[i]));u.interval=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","ivrCampaign","userProfileSection"],angular.module("app.motiondialer").controller("IvrCampaignController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.ivrCampaigns=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="ivrCampaigns",f.listOrder="",f.listOrderAsc=null,f.selectedIvrCampaigns=[],f.query={fields:"createdAt,updatedAt,id,name,active,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,SquareProjectId,limitCalls,description,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,dialOrderByScheduledAt,dialGlobalInterval,dialTimezone,dialPrefix,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength",type:"ivr",sort:"-updatedAt",limit:10,page:1},f.arraydialCheckDuplicateType=_.keyBy([{option:"ALWAYS",value:"'always'"},{option:"NEVER",value:"'never'"},{option:"ONLY_IF_OPEN",value:"'onlyIfOpen'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraydialOrderByScheduledAt=_.keyBy([{option:"DESC",value:"'DESC'"},{option:"ASC",value:"'ASC'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.motiondialer.ivrCampaigns.edit",{id:e.id,ivrCampaign:e,crudPermissions:f.crudPermissions})},f.clonedialog=function(e,n){i.show({controller:"IvrCampaigncloneController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:f.ivrCampaigns?f.ivrCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.listadddialog=function(e,n){i.show({controller:"IvrCampaignlistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/listadd/listadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:f.ivrCampaigns?f.ivrCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.blacklistadddialog=function(e,n){i.show({controller:"IvrCampaignblacklistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/blacklistadd/blacklistadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:f.ivrCampaigns?f.ivrCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("ivrCampaign")+"?").htmlContent("<b>"+(e.name||"ivrCampaign")+"</b> will be deleted.").ariaLabel("delete ivrCampaign").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:1510}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.motiondialer.realtime.ivr_campaigns",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.motiondialer.realtime.ivr_campaigns",{})}},f.success=E,f.getIvrCampaigns=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.campaign.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="IvrCampaigns",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditIvrCampaign=function(e,n){i.show({controller:"CreateOrEditIvrCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:n,ivrCampaigns:f.ivrCampaigns.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteIvrCampaign=y,f.exportSelectedIvrCampaigns=function(){var e=angular.copy(f.selectedIvrCampaigns);return f.selectedIvrCampaigns=[],e},f.deleteSelectedIvrCampaigns=function(e){var n=i.confirm().title("Are you sure want to delete the selected ivrCampaigns?").htmlContent("<b>"+f.selectedIvrCampaigns.length+" selected</b> will be deleted.").ariaLabel("delete IvrCampaigns").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedIvrCampaigns.forEach(function(e){y(e)}),f.selectedIvrCampaigns=[]})},f.deselectIvrCampaigns=function(){f.selectedIvrCampaigns=[]},f.selectAllIvrCampaigns=function(){f.selectedIvrCampaigns=f.ivrCampaigns.rows},g.hasRole("admin")?m.trunk.get({fields:"id,name",sort:"name",table:"true"}).$promise.then(function(e){f.trunks=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.trunk.get({fields:"id,name",sort:"name",table:"true"}).$promise.then(function(e){f.trunks=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.trunks,{id:e.resourceId})});f.trunks.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),f.trunks=n})}else f.trunks=[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.projects=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PROJECTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.projects=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1103}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(f.projects,{id:e.resourceId})}),a=null;a=[],f.ivrCampaigns.rows.forEach(function(e){var n=_.find(f.projects,{id:Number(e.SquareProjectId)});a.push(n)}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(f.projects,{id:e.id});n.canSelect=!1,t.push(n)}}),f.projects=t})}else{var t=[],a=[];f.ivrCampaigns.rows.forEach(function(e){var n=_.find(f.projects,{id:Number(e.SquareProjectId)});a.push(n)});for(var i=0;i<f.projects.length;i++){_.some(a,{id:f.projects[i].id})&&(f.projects[i].canSelect=!1,t.push(f.projects[i]))}f.projects=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){f.interval=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){f.interval=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.interval,{id:e.resourceId})}),t=null;if(f.ivrCampaign&&(t=_.find(f.interval,{id:Number(f.ivrCampaign.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.interval,{id:t.id});a.canSelect=!1,n.push(a)}f.interval=n})}else{var t=[],a=null;f.ivrCampaign&&(a=_.find(f.interval,{id:Number(f.ivrCampaign.IntervalId)}));for(var i=0;i<f.interval.length;i++)a&&f.interval[i].id===a.id&&(f.interval[i].canSelect=!1,t.push(f.interval[i]));f.interval=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.ivrCampaigns=e||{count:0,rows:[]}}function y(e){m.campaign.delete({id:e.id}).$promise.then(function(){_.remove(f.ivrCampaigns.rows,{id:e.id}),f.ivrCampaigns.count-=1,f.ivrCampaigns.rows.length||f.getIvrCampaigns(),p.success({title:_.startCase("IvrCampaign")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcampaign"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getIvrCampaigns())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","ivrCampaigns","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.motiondialer").controller("IvrCampaignsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MOTIONDIALER.EDIT_QUEUECAMPAIGN",g.queueCampaign=angular.copy(l),g.queueCampaigns=r,g.newQueueCampaign=!1,g.queueCampaign||(g.queueCampaign={dialActive:!0,type:"outbound",dialCheckDuplicateType:"always",dialCutDigit:0,autopause:"no",ringinuse:"no",timeoutrestart:"no",setinterfacevar:"no",setqueuevar:"no",setqueueentryvar:"no",dialOrderByScheduledAt:"ASC",dialGlobalInterval:"07:00-22:00,*,*,*",dialAMDInitialSilence:2500,dialAMDGreeting:1500,dialAMDAfterGreetingSilence:800,dialAMDTotalAnalysisTime:5e3,dialAMDMinWordLength:100,dialAMDBetweenWordsSilence:50,dialAMDMaximumNumberOfWords:3,dialAMDSilenceThreshold:256,dialAMDMaximumWordLength:5e3,dialMethod:"progressive",dialPowerLevel:1,dialPredictiveOptimization:"dropRate",dialPredictiveOptimizationPercentage:3,dialPredictiveInterval:10,dialLimitQueue:0,dialRandomLastDigitCallerIdNumber:0,dialOriginateTimeout:30,dialQueueOptions:"tTxX",dialQueueTimeout:3,strategy:"rrmemory",timeout:3,retry:3,weight:1,dialGlobalMaxRetry:4,dialCongestionMaxRetry:3,dialCongestionRetryFrequency:150,dialBusyMaxRetry:3,dialBusyRetryFrequency:150,dialNoAnswerMaxRetry:3,dialNoAnswerRetryFrequency:150,dialNoSuchNumberMaxRetry:3,dialNoSuchNumberRetryFrequency:150,dialDropMaxRetry:3,dialDropRetryFrequency:150,dialAbandonedMaxRetry:3,dialAbandonedRetryFrequency:150,dialMachineMaxRetry:3,dialMachineRetryFrequency:150,dialAgentRejectMaxRetry:3,dialAgentRejectRetryFrequency:150,dialPredictiveIntervalMaxThreshold:20,dialPredictiveIntervalMinThreshold:10},g.title="MOTIONDIALER.NEW_QUEUECAMPAIGN",g.newQueueCampaign=!0),g.addNewQueueCampaign=function(){g.errors=[],d.voiceQueue.save(g.queueCampaign).$promise.then(function(e){g.queueCampaigns.unshift(e.toJSON()),o.success({title:"QueueCampaign properly created",msg:g.queueCampaign.name?g.queueCampaign.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveQueueCampaign=function(){g.errors=[],d.voiceQueue.update({id:g.queueCampaign.id},g.queueCampaign).$promise.then(function(e){var n=_.find(g.queueCampaigns,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"QueueCampaign properly saved!",msg:g.queueCampaign.name?g.queueCampaign.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteQueueCampaign=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The queueCampaign will be deleted.").ariaLabel("Delete QueueCampaign").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceQueue.delete({id:g.queueCampaign.id}).$promise.then(function(){_.remove(g.queueCampaigns,{id:g.queueCampaign.id}),o.success({title:"QueueCampaign properly deleted!",msg:(g.queueCampaign.name||"queueCampaign")+" has been deleted!"}),v(g.queueCampaign)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.trunks=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.trunks=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.trunks,{id:e.resourceId})}),t=null;if(g.queueCampaign&&(t=_.find(g.trunks,{id:Number(g.queueCampaign.TrunkId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.trunks,{id:t.id});a.canSelect=!1,n.push(a)}g.trunks=n})}else{var t=[],a=null;g.queueCampaign&&(a=_.find(g.trunks,{id:Number(g.queueCampaign.TrunkId)}));for(var i=0;i<g.trunks.length;i++)a&&g.trunks[i].id===a.id&&(g.trunks[i].canSelect=!1,t.push(g.trunks[i]));g.trunks=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){g.interval=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){g.interval=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.interval,{id:e.resourceId})}),t=null;if(g.queueCampaign&&(t=_.find(g.interval,{id:Number(g.queueCampaign.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.interval,{id:t.id});a.canSelect=!1,n.push(a)}g.interval=n})}else{var t=[],a=null;g.queueCampaign&&(a=_.find(g.interval,{id:Number(g.queueCampaign.IntervalId)}));for(var i=0;i<g.interval.length;i++)a&&g.interval[i].id===a.id&&(g.interval[i].canSelect=!1,t.push(g.interval[i]));g.interval=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","queueCampaigns","queueCampaign","api","Auth","license","setting","crudPermissions"],angular.module("app.motiondialer").controller("CreateOrEditQueueCampaignDialogController",e)}(),function(){"use strict";function e(e,l,a,d,n,t,i,s,o,r){var c=this;function m(){return l(function(t,n){return l(function(n,t){return d.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],o.hasRole("admin")?e:c.section?c.section.autoAssociation?e:l(function(n,t){return d.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:o.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),l(function(n,t){return d.voiceQueue.getAgents({id:c.queueCampaign.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserVoiceQueue?"penalty "+e.UserVoiceQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=o.getCurrentUser(),c.queueCampaign=n,c.crudPermissions=r,c.penalty=0,c.realtime=i,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return o.hasRole("admin")?m().catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):l(function(t,n){d.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceWith(c.selectedItems,c.startingSelectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});return(t=e,l(function(e,n){_.isEmpty(t)?e():d.voiceQueue.removeAgents({id:c.queueCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return r=n,l(function(e,n){if(_.isEmpty(r))e();else{for(var t=[],a=_.groupBy(r,"penalty"),i=0;i<Object.keys(a).length;i++){var s=Object.keys(a)[i],o=_.filter(r,["penalty",s]);t.push(d.voiceQueue.addAgents({id:c.queueCampaign.id,ids:_.map(o,"id"),penalty:_.trim(s,"penalty "),realtime:c.realtime||!1}).$promise)}l.all(t).then(function(){e()}).catch(function(e){n(e)})}});var r}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),a.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("MOTIONDIALER.ALL_AGENTS"),labelSelected:s.instant("MOTIONDIALER.SELECTED_AGENTS"),transferCallback:function(e,n){n?e.forEach(function(e){e.penalty=void 0}):e.forEach(function(e){e.penalty="penalty "+c.penalty});var t=_.xorWith(c.startingSelectedItems,c.selectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","queueCampaign","queueCampaigns","realtime","$translate","Auth","crudPermissions"],angular.module("app.motiondialer").controller("QueueCampaignagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l){var d=this;function c(){return a(function(t,n){return a(function(n,t){return s.cmList.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return d.items=e.rows?e.rows:[],r.hasRole("admin")?e:d.section?d.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:d.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return d.allowedItems=_.map(n,function(e){return _.find(d.items,{id:r.hasRole("admin")||d.section.autoAssociation?e.id:e.resourceId})}),d.startingAllowedItems=angular.copy(d.allowedItems),d.items.forEach(function(e){var n=_.find(d.allowedItems,{id:e.id});"admin"===d.currentUser.role?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s[d.apiRoute][d.getApi]({id:d.queueCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];d.selectedItems=_.map(n,function(e){return _.find(d.items,{id:e.id})}),d.startingSelectedItems=angular.copy(d.selectedItems),d.dualMultiselectOptions.selectedItems=d.selectedItems,d.dualMultiselectOptions.items=_.differenceBy(d.allowedItems,d.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}d.currentUser=r.getCurrentUser(),d.queueCampaign=n,d.crudPermissions=l,d.apiRoute="voiceQueue",d.getApi="getBlackLists",d.addApi="addBlackLists",d.removeApi="removeBlackLists",d.items=[],d.allowedItems=[],d.selectedItems=[],d.startingAllowedItems=[],d.startingSelectedItems=[],d.pendingChanges=!1,d.loading=!1,d.dualMultiselectOptions={allowedItems:[],selectedItems:[],showSelectAndDeselectAll:!1,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:t.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,n){var t=_.xorBy(d.startingSelectedItems,d.selectedItems,"id");d.pendingChanges=!_.isEmpty(t)}},d.onInit=function(){return r.hasRole("admin")?c().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:d.currentUser.userProfileId,name:"Lists"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return d.section=e,c()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},d.saveLists=function(){d.loading=!0;var e=_.differenceBy(d.startingSelectedItems,d.selectedItems,"id"),n=_.differenceBy(d.selectedItems,d.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.removeApi]({id:d.queueCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.addApi]({id:d.queueCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){d.pendingChanges=!1,d.startingAllowedItems=angular.copy(d.allowedItems),d.startingSelectedItems=angular.copy(d.selectedItems),i.success({title:"SUCCESS",msg:"Lists association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})}).finally(function(){d.loading=!1});var t},d.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","queueCampaign","$translate","$timeout","Auth","crudPermissions"],angular.module("app.motiondialer").controller("QueueCampaignblacklistaddController",e)}(),function(){"use strict";function e(n,t,a,e,i,s,o){var r=this;function l(e){n.hide(e)}r.newQueueCampaign=!0,r.queueCampaign=angular.copy(i),r.queueCampaigns=s,r.title=o.instant("MOTIONDIALER.CLONE_QUEUECAMPAIGN"),i&&i.name&&(r.title+=": "+i.name),r.cloneQueueCampaign=function(){return e.voiceQueue.clone({id:i.id},r.queueCampaign).$promise.then(function(e){r.queueCampaigns.unshift(e.toJSON()),a.success({title:"QueueCampaign properly cloned",msg:r.queueCampaign.name?r.queueCampaign.name+" has been cloned!":""}),t.go("app.motiondialer.queueCampaigns.edit",{id:e.id}),l(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.clone"}];for(var n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.clone",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$mdDialog","$state","toasty","api","queueCampaign","queueCampaigns","$translate"],angular.module("app.motiondialer").controller("QueueCampaigncloneController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.queueCampaignHopperBlacks=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.voiceQueue.getHopperBlacks(m.query,u).$promise}function g(e){d.hopperBlack.delete({id:e.id}).$promise.then(function(){_.remove(m.queueCampaignHopperBlacks.rows,{id:e.id}),m.queueCampaignHopperBlacks.count-=1,m.queueCampaignHopperBlacks.rows.length||p(),l.success({title:"HopperBlack deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceQueue"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.queueCampaign={},m.queueCampaignHopperBlacks={count:0,rows:[]},m.selectedQueueCampaignHopperBlacks=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,ContactId,phone",sort:"-id",limit:10,page:1},m.init=function(e,n){m.queueCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.VoiceQueueId=m.queueCampaign.id,m.query.id=m.queueCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopperBlack?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopperBlack #")+e.id||"hopperBlack")+"</b> will be deleted.").ariaLabel("delete hopperBlack").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getQueueCampaignHopperBlacks=p,m.createOrEditQueueCampaignHopperBlack=function(e,n){o.show({controller:"CreateOrEditHopperBlackDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hopperBlacks/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:m.queueCampaign,hopperBlack:n,hopperBlacks:m.queueCampaignHopperBlacks.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedQueueCampaignHopperBlacks=function(){var e=angular.copy(m.selectedQueueCampaignHopperBlacks);return m.selectedQueueCampaignHopperBlacks=[],e},m.deleteQueueCampaignHopperBlack=g,m.deleteSelectedQueueCampaignHopperBlacks=function(e){var n=o.confirm().title("Are you sure want to delete the selected hopperBlacks?").htmlContent("<b>"+m.selectedQueueCampaignHopperBlacks.length+" selected</b> will be deleted.").ariaLabel("delete hopperBlacks").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedQueueCampaignHopperBlacks.forEach(function(e){g(e)}),m.selectedQueueCampaignHopperBlacks=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("QueueCampaignHopperBlacksController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.queueCampaignHopperFinals=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.voiceQueue.getHopperFinals(m.query,u).$promise}function g(e){d.hopperFinal.delete({id:e.id}).$promise.then(function(){_.remove(m.queueCampaignHopperFinals.rows,{id:e.id}),m.queueCampaignHopperFinals.count-=1,m.queueCampaignHopperFinals.rows.length||p(),l.success({title:"HopperFinal deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceQueue"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(a){d.cmHopperFinal.checkContactHopper(a).$promise.then(function(e){l.info({title:"The contact is in the hopper",msg:"Contact ID "+e.ContactId})}).catch(function(e){var n,t;"Not Found"===e.data?d.cmHopper.save((n=a,t={},t.phone=n.calleridnum,t.scheduledat=moment().format("YYYY-MM-DD HH:mm:ss"),t.countbusyretry=0,t.countcongestionretry=0,t.countnoanswerretry=0,t.countglobal=0,t.ContactId=n.ContactId,t.ListId=n.ListId,t.UserId=n.deleted?null:n.UserId,t.VoiceQueueId=n.VoiceQueueId,t.CampaignId=n.CampaignId,t.priority=n.recallme?3:2,t.recallme=!!n.recallme,t)).$promise.then(function(e){var n,t;l.info({title:"Restored Contact",msg:"Contact ID "+e.ContactId}),e.ContactId&&d.cmHopperHistory.save(((t={}).calleridnum=(n=a).calleridnum,t.calleridname=n.calleridname,t.scheduledat=moment().format("YYYY-MM-DD HH:mm:ss"),t.countbusyretry=n.countbusyretry,t.countcongestionretry=n.countcongestionretry,t.countnoanswerretry=n.countnoanswerretry,t.countglobal=n.countglobal,t.ContactId=n.ContactId,t.ListId=n.ListId,t.UserId=c.getCurrentUser().id,t.VoiceQueueId=n.VoiceQueueId,t.CampaignId=n.CampaignId,t.editedat=moment().format("YYYY-MM-DD HH:mm:ss"),t.edited=!0,t.state=25,t.statedesc="Restored",t.campaign=n.campaign,t.campaigntype=n.VoiceQueueId?"queue":"ivr",t))}).catch(function(e){_.isNil(e.data)||"Validation error"!==e.data.message?l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()}):l.info({title:"The contact is in the hopper",msg:"Contact ID "+a.ContactId})}):l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.contacts={},m.queueCampaign={},m.queueCampaignHopperFinals={count:0,rows:[]},m.selectedQueueCampaignHopperFinals=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,uniqueid,ContactId,calleridnum,calleridname,statedesc,countcongestionretry,countbusyretry,countnoanswerretry,countnosuchnumberretry,countdropretry,countabandonedretry,countmachineretry,countagentrejectretry,countglobal,scheduledat,starttime,responsetime,endtime,disposition,secondDisposition,thirdDisposition,ListId,UserId,VoiceQueueId,CampaignId,recallme,deleted,campaign",sort:"-id",limit:10,page:1},m.init=function(e,n){m.queueCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.VoiceQueueId=m.queueCampaign.id,m.query.id=m.queueCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopperFinal?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopperFinal #")+e.id||"hopperFinal")+"</b> will be deleted.").ariaLabel("delete hopperFinal").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getQueueCampaignHopperFinals=p,m.createOrEditQueueCampaignHopperFinal=function(e,n){o.show({controller:"CreateOrEditHopperFinalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hopperFinals/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:m.queueCampaign,hopperFinal:n,hopperFinals:m.queueCampaignHopperFinals.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedQueueCampaignHopperFinals=function(){var e=angular.copy(m.selectedQueueCampaignHopperFinals);return m.selectedQueueCampaignHopperFinals=[],e},m.deleteQueueCampaignHopperFinal=g,m.deleteSelectedQueueCampaignHopperFinals=function(e){var n=o.confirm().title("Are you sure want to delete the selected hopperFinals?").htmlContent("<b>"+m.selectedQueueCampaignHopperFinals.length+" selected</b> will be deleted.").ariaLabel("delete hopperFinals").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedQueueCampaignHopperFinals.forEach(function(e){g(e)}),m.selectedQueueCampaignHopperFinals=[]})},m.moveQueueCampaignHopperFinal=v,m.moveContactsQueueCampaignHopperFinal=function(e){d.cmHopperFinal.moveContactsQueueCampaignHopperFinal({id:m.query.id,state:e}).$promise.then(function(e){_.isNil(e)&&_.isNil(e[0])?l.info({title:"Restored Contacts",msg:"0"}):l.info({title:"Restored Contacts",msg:JSON.stringify(e[0].affectedRows)})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},m.countContactsQueueCampaignHopperFinal=function(e){d.cmHopperFinal.countContactsQueueCampaignHopperFinal({id:e}).$promise.then(function(e){_.merge(m.contacts,e[0])}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},m.moveConfirm=function(e,n){var t=o.confirm().title("Are you sure want to restore the contact?").htmlContent("<b>Contact</b> will be restored.").ariaLabel("Restore Contact").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){v(e)},function(){console.log("CANCEL")})},m.moveSelectedQueueCampaignHopperFinals=function(e){var n=o.confirm().title("Are you sure want to restore the selected contacts?").htmlContent("<b> Contacts selected</b> will be restored.").ariaLabel("Restore Contacts").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedQueueCampaignHopperFinals.forEach(function(e){v(e)}),m.selectedQueueCampaignHopperFinals=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("QueueCampaignHopperFinalsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.queueCampaignHopperHistories=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.voiceQueue.getHopperHistories(m.query,u).$promise}function g(e){d.hopperHistory.delete({id:e.id}).$promise.then(function(){_.remove(m.queueCampaignHopperHistories.rows,{id:e.id}),m.queueCampaignHopperHistories.count-=1,m.queueCampaignHopperHistories.rows.length||p(),l.success({title:"HopperHistory deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceQueue"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.queueCampaign={},m.queueCampaignHopperHistories={count:0,rows:[]},m.selectedQueueCampaignHopperHistories=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,uniqueid,ContactId,calleridnum,calleridname,statedesc,scheduledat,starttime,responsetime,endtime",sort:"-id",limit:10,page:1},m.init=function(e,n){m.queueCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.VoiceQueueId=m.queueCampaign.id,m.query.id=m.queueCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopperHistory?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopperHistory #")+e.id||"hopperHistory")+"</b> will be deleted.").ariaLabel("delete hopperHistory").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getQueueCampaignHopperHistories=p,m.createOrEditQueueCampaignHopperHistory=function(e,n){o.show({controller:"CreateOrEditHopperHistoryDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hopperHistories/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:m.queueCampaign,hopperHistory:n,hopperHistories:m.queueCampaignHopperHistories.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedQueueCampaignHopperHistories=function(){var e=angular.copy(m.selectedQueueCampaignHopperHistories);return m.selectedQueueCampaignHopperHistories=[],e},m.deleteQueueCampaignHopperHistory=g,m.deleteSelectedQueueCampaignHopperHistories=function(e){var n=o.confirm().title("Are you sure want to delete the selected hopperHistories?").htmlContent("<b>"+m.selectedQueueCampaignHopperHistories.length+" selected</b> will be deleted.").ariaLabel("delete hopperHistories").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedQueueCampaignHopperHistories.forEach(function(e){g(e)}),m.selectedQueueCampaignHopperHistories=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("QueueCampaignHopperHistoriesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.queueCampaignHoppers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.voiceQueue.getHoppers(m.query,u).$promise}function g(e){d.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(m.queueCampaignHoppers.rows,{id:e.id}),m.queueCampaignHoppers.count-=1,m.queueCampaignHoppers.rows.length||p(),l.success({title:"Hopper deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceQueue"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.queueCampaign={},m.queueCampaignHoppers={count:0,rows:[]},m.selectedQueueCampaignHoppers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,ContactId,phone,countcongestionretry,countbusyretry,countnoanswerretry,countnosuchnumberretry,countdropretry,countabandonedretry,countmachineretry,countagentrejectretry,scheduledat,priority,recallme,UserId",sort:"-updatedAt",limit:10,page:1},m.arraypriority=_.keyBy([{option:"Highest",value:"'4'"},{option:"High",value:"'3'"},{option:"Medium",value:"'2'"},{option:"Low",value:"'1'"},{option:"Lowest",value:"'0'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),m.init=function(e,n){m.queueCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.VoiceQueueId=m.queueCampaign.id,m.query.id=m.queueCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopper?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopper #")+e.id||"hopper")+"</b> will be deleted.").ariaLabel("delete hopper").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getQueueCampaignHoppers=p,m.createOrEditQueueCampaignHopper=function(e,n){o.show({controller:"CreateOrEditHopperVoiceQueueIdDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hoppers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:m.queueCampaign,hopper:n,hoppers:m.queueCampaignHoppers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedQueueCampaignHoppers=function(){var e=angular.copy(m.selectedQueueCampaignHoppers);return m.selectedQueueCampaignHoppers=[],e},m.deleteQueueCampaignHopper=g,m.deleteSelectedQueueCampaignHoppers=function(e){var n=o.confirm().title("Are you sure want to delete the selected hoppers?").htmlContent("<b>"+m.selectedQueueCampaignHoppers.length+" selected</b> will be deleted.").ariaLabel("delete hoppers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedQueueCampaignHoppers.forEach(function(e){g(e)}),m.selectedQueueCampaignHoppers=[]})},c.hasRole("admin")?d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){m.agents=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){m.agents=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:m.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(m.agents,{id:e.resourceId})}),t=null;if(m.queueCampaign&&(t=_.find(m.agents,{id:Number(m.queueCampaign.UserId)})),t&&!_.some(n,["id",t.id])){var a=_.find(m.agents,{id:t.id});a.canSelect=!1,n.push(a)}m.agents=n})}else{var t=[],a=null;m.queueCampaign&&(a=_.find(m.agents,{id:Number(m.queueCampaign.UserId)}));for(var i=0;i<m.agents.length;i++)a&&m.agents[i].id===a.id&&(m.agents[i].canSelect=!1,t.push(m.agents[i]));m.agents=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("QueueCampaignHoppersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MOTIONDIALER.EDIT_HOPPER",g.hopper=angular.copy(l),g.hoppers=r,g.newHopper=!1,g.hopper||(g.hopper={},g.title="MOTIONDIALER.NEW_HOPPER",g.newHopper=!0),n.params.id&&(g.hopper.VoiceQueueId=n.params.id),g.addNewHopper=function(){g.errors=[],d.cmHopper.save(g.hopper).$promise.then(function(e){g.hoppers.unshift(e.toJSON()),o.success({title:"Hopper properly created",msg:g.hopper.name?g.hopper.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveHopper=function(){var t,a,i,s;g.errors=[],g.hopper.UserId=g.hopper.recallme?g.hopper.UserId:null,g.hopper.OwnerId=c.getCurrentUser().id,d.cmHopper.get({id:g.hopper.id,attributes:["scheduledat"]}).$promise.then(function(e){t=_.isNil(e)||_.isEmpty(e)?moment().format("YYYY-MM-DD HH:mm:ss"):e.scheduledat}).finally(function(){d.cmHopper.update({id:g.hopper.id},_.omit(g.hopper,["VoiceQueueId","CampaignId","ContactId","ListId"])).$promise.then(function(e){a=e,d.cmContact.get({id:a.ContactId,attributes:["firstName","lastName"]}).$promise.then(function(e){_.isNil(e)||_.isNil(e.firstName)||(i=e.firstName,_.isNil(e.lastName)||(i+=" "+e.lastName))}).catch(function(){i=void 0}).finally(function(){d.voiceQueue.get({raw:!1,id:a.VoiceQueueId,attributes:["name"]}).$promise.then(function(e){s=e.name}).catch(function(e){s=void 0}).finally(function(){d.cmHopperHistory.save({state:24,statedesc:"Edited",scheduledat:t,calleridnum:a.phone,calleridname:i,campaigntype:a.VoiceQueueId?"queue":"ivr",campaign:s,editedat:moment().format("YYYY-MM-DD HH:mm:ss"),edited:!0,ListId:a.ListId,UserId:c.getCurrentUser().id,VoiceQueueId:a.VoiceQueueId,CampaignId:a.CampaignId,ContactId:a.ContactId,callback:a.callback,callbackuniqueid:a.callbackuniqueid,countbusyretry:a.countbusyretry,countcongestionretry:a.countcongestionretry,countglobal:a.countglobal,countnoanswerretry:a.countnoanswerretry,followuptime:a.followuptime,recallme:a.recallme})})});var n=_.find(g.hoppers,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Hopper properly saved!",msg:g.hopper.name?g.hopper.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})})},g.deleteHopper=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The hopper will be deleted.").ariaLabel("Delete Hopper").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cmHopper.delete({id:g.hopper.id}).$promise.then(function(){_.remove(g.hoppers,{id:g.hopper.id}),o.success({title:"Hopper properly deleted!",msg:(g.hopper.name||"hopper")+" has been deleted!"}),v(g.hopper)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){g.agents=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){g.agents=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.agents,{id:e.resourceId})}),t=null;if(g.hopper&&(t=_.find(g.agents,{id:Number(g.hopper.UserId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.agents,{id:t.id});a.canSelect=!1,n.push(a)}g.agents=n})}else{var t=[],a=null;g.hopper&&(a=_.find(g.agents,{id:Number(g.hopper.UserId)}));for(var i=0;i<g.agents.length;i++)a&&g.agents[i].id===a.id&&(g.agents[i].canSelect=!1,t.push(g.agents[i]));g.agents=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","hoppers","hopper","api","Auth","license","setting","crudPermissions"],angular.module("app.motiondialer").controller("CreateOrEditHopperVoiceQueueIdDialogController",e)}(),function(){"use strict";function e(t,a){var i=this;i.queueCampaign={},i.init=function(n){i.queueCampaign=n,t.cmHopper.get({limit:0,VoiceQueueId:n.id}).$promise.then(function(e){return i.total=e.count||0,t.cmHopper.get({limit:0,VoiceQueueId:n.id,active:!1,countbusyretry:0,countcongestionretry:0,countnoanswerretry:0,countnosuchnumberretry:0,countdropretry:0,countabandonedretry:0,countmachineretry:0,countagentrejectretry:0}).$promise}).then(function(e){return i.fresh=e.count||0,t.cmHopperFinal.get({limit:0,VoiceQueueId:n.id}).$promise}).then(function(e){i.closed=e.count||0}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["api","toasty"],angular.module("app.motiondialer").controller("QueueCampaignHopperStatisticsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l){var d=this;function c(){return a(function(t,n){return a(function(n,t){return s.cmList.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return d.items=e.rows?e.rows:[],r.hasRole("admin")?e:d.section?d.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:d.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return d.allowedItems=_.map(n,function(e){return _.find(d.items,{id:r.hasRole("admin")||d.section.autoAssociation?e.id:e.resourceId})}),d.startingAllowedItems=angular.copy(d.allowedItems),d.items.forEach(function(e){var n=_.find(d.allowedItems,{id:e.id});"admin"===d.currentUser.role?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s[d.apiRoute][d.getApi]({id:d.queueCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];d.selectedItems=_.map(n,function(e){return _.find(d.items,{id:e.id})}),d.startingSelectedItems=angular.copy(d.selectedItems),d.dualMultiselectOptions.selectedItems=d.selectedItems,d.dualMultiselectOptions.items=_.differenceBy(d.allowedItems,d.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}d.currentUser=r.getCurrentUser(),d.queueCampaign=n,d.crudPermissions=l,d.apiRoute="voiceQueue",d.getApi="getLists",d.addApi="addLists",d.removeApi="removeLists",d.items=[],d.allowedItems=[],d.selectedItems=[],d.startingAllowedItems=[],d.startingSelectedItems=[],d.pendingChanges=!1,d.loading=!1,d.dualMultiselectOptions={allowedItems:[],selectedItems:[],showSelectAndDeselectAll:!1,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:t.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,n){var t=_.xorBy(d.startingSelectedItems,d.selectedItems,"id");d.pendingChanges=!_.isEmpty(t)}},d.onInit=function(){return r.hasRole("admin")?c().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:d.currentUser.userProfileId,name:"Lists"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return d.section=e,c()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},d.saveLists=function(){d.loading=!0;var e=_.differenceBy(d.startingSelectedItems,d.selectedItems,"id"),n=_.differenceBy(d.selectedItems,d.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.removeApi]({id:d.queueCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.addApi]({id:d.queueCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){d.pendingChanges=!1,d.startingAllowedItems=angular.copy(d.allowedItems),d.startingSelectedItems=angular.copy(d.selectedItems),i.success({title:"SUCCESS",msg:"Lists association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})}).finally(function(){d.loading=!1});var t},d.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","queueCampaign","$translate","$timeout","Auth","crudPermissions"],angular.module("app.motiondialer").controller("QueueCampaignlistaddController",e)}(),function(){"use strict";function e(e,n,a,i,s,t,o,r){var l=this;function d(){n.hide()}function c(e,n){var t=n.id;o.enqueue(function(){return i.voiceQueue.removeLists({id:e,ids:t}).$promise.then(function(){return i.voiceQueue.addLists({id:e,ids:t,dialCheckDuplicateType:"never"}).$promise}).then(function(){a.success({title:"Reset Succesfull",msg:"List "+n.name+" has been reset"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:queueCampaign.RESETLIST",msg:e.status?JSON.stringify(e.data):e.toString()})})})}l.selected=[],l.items=t||[],l.loading=!1,l.closeDialog=d,l.exists=function(e,n){return-1<n.indexOf(e)},l.toggle=function(e,n){var t=n.indexOf(e);-1<t?n.splice(t,1):n.push(e)},l.isIndeterminate=function(){return 0!==l.selected.length&&l.selected.length!==l.items.length},l.isChecked=function(){return l.selected.length===l.items.length},l.toggleAll=function(){l.selected.length===l.items.length?l.selected=[]:(0===l.selected.length||0<l.selected.length)&&(l.selected=l.items.slice(0))},l.listSelected=function(){l.loading=!0,r(function(e,n){for(var t=0;t<l.selected.length;t+=1)c(s.id,l.selected[t]);var a;a=e,o.enqueue(function(){return a()})}).finally(function(){l.loading=!1,d()})}}e.$inject=["$scope","$mdDialog","toasty","api","queueCampaign","listsCampaign","Sequence","$q"],angular.module("app.motiondialer").controller("QueueCampaignresetlistController",e)}(),function(){"use strict";function e(e,i,a,s,n,t,o,r){var l=this;function d(){return i(function(t,n){return i(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:i(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),i(function(n,t){return s.voiceQueue.getTeams({id:l.queueCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.queueCampaign=n,l.crudPermissions=r,l.penalty=0,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"penalty",labelAll:t.instant("MOTIONDIALER.ALL_TEAMS"),labelSelected:t.instant("MOTIONDIALER.SELECTED_TEAMS"),transferCallback:function(e,n){n?e.forEach(function(e){e.penalty=void 0}):e.forEach(function(e){e.penalty="penalty "+l.penalty});var t=_.xorWith(l.startingSelectedItems,l.selectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):i(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceWith(l.selectedItems,l.startingSelectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});return(t=e,i(function(e,n){_.isEmpty(t)?e():s.voiceQueue.removeTeams({id:l.queueCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return a=n,i(function(e,n){if(!_.isEmpty(a)){var t=_.map(a,function(e){return{id:e.id,penalty:_.trim(e.penalty,"penalty ")}});return s.voiceQueue.addTeams({id:l.queueCampaign.id,teams:t}).$promise.then(function(){e()}).catch(function(e){n(e)})}e()});var a}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),a.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","queueCampaign","$translate","Auth","crudPermissions"],angular.module("app.motiondialer").controller("QueueCampaignteamaddController",e)}(),function(){"use strict";function e(t,e,i,s,a,n,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=n,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.queueCampaign=c||t.params.queueCampaign||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=t.params.tab||0,u.clonedialog=function(e,n){i.show({controller:"QueueCampaigncloneController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.listadddialog=function(e,n){i.show({controller:"QueueCampaignlistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/listadd/listadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.blacklistadddialog=function(e,n){i.show({controller:"QueueCampaignblacklistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/blacklistadd/blacklistadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.teamadddialog=function(e,n){i.show({controller:"QueueCampaignteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){i.show({controller:"QueueCampaignagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.resetlistdialog=function(n,t){r.voiceQueue.getLists({id:n.id,fields:"id,name",nolimit:!0}).$promise.then(function(a){if(_.isNil(a.rows)||_.isEmpty(a.rows))l.info({title:"Campaign Without Lists"});else if(1===a.rows.length){var e=i.confirm().title("Are you sure want to reset the list "+a.rows[0].name+" ?").htmlContent("<b>"+a.rows[0].name+"</b> will be reset.").ariaLabel("Reset List").targetEvent(t).ok("OK").cancel("CANCEL");i.show(e).then(function(){var e,n,t;e=u.queueCampaign.id,n=a.rows[0],t=n.id,r.voiceQueue.removeLists({id:e,ids:t}).$promise.then(function(){return r.voiceQueue.addLists({id:e,ids:t,dialCheckDuplicateType:"never"}).$promise}).then(function(){l.success({title:"Reset Succesfull",msg:"List "+n.name+" has been reset"})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:queueCampaign.REMOVELIST",msg:e.status?JSON.stringify(e.data):e.toString()})})})}else i.show({controller:"QueueCampaignresetlistController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/resetlist/resetlist.html",parent:angular.element(s.body),targetEvent:t,clickOutsideToClose:!1,locals:{queueCampaign:n,listsCampaign:a?a.rows:[]}})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:RESETLIST",msg:e.status?JSON.stringify(e.data):e.toString()})})},u.gotogoto=function(e,n){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:1510}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.motiondialer.realtime.queues",{}):l.info({title:a.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:a.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.motiondialer.realtime.queues",{})}},u.alert=l.info,u.gotoQueueCampaigns=function(){t.go("app.motiondialer.queueCampaigns",{},{reload:"app.motiondialer.queueCampaigns"})},u.saveQueueCampaign=function(){r.voiceQueue.update({id:u.queueCampaign.id},u.queueCampaign).$promise.then(function(){l.success({title:"QueueCampaign updated!",msg:u.queueCampaign.name?u.queueCampaign.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.voiceMusicOnHold.get({fields:"id,name",nolimit:"true"}).$promise.then(function(e){u.musiconholds=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_MUSICONHOLDS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.voiceMusicOnHold.get({fields:"id,name",nolimit:"true"}).$promise.then(function(e){u.musiconholds=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:407}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?void 0:r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.musiconholds,{id:e.resourceId})}),t=null;if(u.queueCampaign&&(t=_.find(u.musiconholds,{name:u.queueCampaign.musiconhold})),t&&!_.some(n,["id",t.id])){var a=_.find(u.musiconholds,{id:t.id});a.canSelect=!1,n.push(a)}u.musiconholds=n}):r.voiceMusicOnHold.get({fields:"id,name",nolimit:"true",defaultEntry:1}).$promise.then(function(e){u.musiconholds=e.rows||[]})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmusiconholds",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.trunks=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.trunks=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.trunks,{id:e.resourceId})}),t=null;if(u.queueCampaign&&(t=_.find(u.trunks,{id:Number(u.queueCampaign.TrunkId)})),t&&!_.some(n,["id",t.id])){var a=_.find(u.trunks,{id:t.id});a.canSelect=!1,n.push(a)}u.trunks=n})}else{var t=[],a=null;u.queueCampaign&&(a=_.find(u.trunks,{id:Number(u.queueCampaign.TrunkId)}));for(var i=0;i<u.trunks.length;i++)a&&u.trunks[i].id===a.id&&(u.trunks[i].canSelect=!1,t.push(u.trunks[i]));u.trunks=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.projects=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PROJECTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.projects=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1103}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.projects,{id:e.resourceId})}),t=null;if(u.queueCampaign&&(t=_.find(u.projects,{name:u.queueCampaign.dialQueueProject})),t&&!_.some(n,["id",t.id])){var a=_.find(u.projects,{id:t.id});a.canSelect=!1,n.push(a)}u.projects=n})}else{var t=[],a=null;u.queueCampaign&&(a=_.find(u.projects,{name:u.queueCampaign.dialQueueProject}));for(var i=0;i<u.projects.length;i++)a&&u.projects[i].id===a.id&&(u.projects[i].canSelect=!1,t.push(u.projects[i]));u.projects=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){u.interval=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){u.interval=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.interval,{id:e.resourceId})}),t=null;if(u.queueCampaign&&(t=_.find(u.interval,{id:Number(u.queueCampaign.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(u.interval,{id:t.id});a.canSelect=!1,n.push(a)}u.interval=n})}else{var t=[],a=null;u.queueCampaign&&(a=_.find(u.interval,{id:Number(u.queueCampaign.IntervalId)}));for(var i=0;i<u.interval.length;i++)a&&u.interval[i].id===a.id&&(u.interval[i].canSelect=!1,t.push(u.interval[i]));u.interval=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){u.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){u.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.pauses,{id:e.resourceId})});u.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),u.pauses=n})}else u.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","queueCampaign","userProfileSection"],angular.module("app.motiondialer").controller("QueueCampaignController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.queueCampaigns=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="queueCampaigns",f.listOrder="",f.listOrderAsc=null,f.selectedQueueCampaigns=[],f.query={fields:"createdAt,updatedAt,id,name,dialActive,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,dialOrderByScheduledAt,dialRecallMeTimeout,dialRecallInQueue,dialGlobalInterval,dialTimezone,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength,dialMethod,dialPowerLevel,dialPredictiveOptimization,dialPredictiveOptimizationPercentage,dialPredictiveInterval,dialLimitQueue,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialPrefix,dialQueueOptions,dialQueueTimeout,strategy,timeout,retry,wrapuptime,weight,musiconhold,dialQueueProject,dialQueueProject2,dialAgiAfterHangupAgent,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,description,mandatoryDisposition,mandatoryDispositionPauseId,dialPredictiveIntervalMaxThreshold,dialPredictiveIntervalMinThreshold,dialPreviewAutoRecallMe",type:"outbound",sort:"-updatedAt",channel:"voice",limit:10,page:1},f.arraydialCheckDuplicateType=_.keyBy([{option:"ALWAYS",value:"'always'"},{option:"NEVER",value:"'never'"},{option:"ONLY_IF_OPEN",value:"'onlyIfOpen'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayautopause=_.keyBy([{option:"Yes",value:"'all'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayringinuse=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraytimeoutrestart=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraymonitor_format=_.keyBy([{option:"Inactive",value:"''"},{option:"wav",value:"'wav'"},{option:"wav49",value:"'wav49'"},{option:"gsm",value:"'gsm'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysetinterfacevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysetqueuevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysetqueueentryvar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraydialOrderByScheduledAt=_.keyBy([{option:"DESC",value:"'DESC'"},{option:"ASC",value:"'ASC'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraydialMethod=_.keyBy([{option:"Progressive",value:"'progressive'"},{option:"PowerDialing",value:"'power'"},{option:"Predictive",value:"'predictive'"},{option:"Preview",value:"'preview'"},{option:"BookedProgressive",value:"'booked'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraydialPredictiveOptimization=_.keyBy([{option:"AgentBusyFactor",value:"'agentBusyFactor'"},{option:"DropRate",value:"'dropRate'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraystrategy=_.keyBy([{option:"Round Robin Memory",value:"'rrmemory'"},{option:"Round Robin",value:"'roundrobin'",ngIf:"vm.queueCampaign.dialMethod === 'booked'"},{option:"Least Recent",value:"'leastrecent'",ngIf:"vm.queueCampaign.dialMethod !== 'booked'"},{option:"Fewest Calls",value:"'fewestcalls'",ngIf:"vm.queueCampaign.dialMethod !== 'booked'"},{option:"Random",value:"'random'",ngIf:"vm.queueCampaign.dialMethod !== 'booked'"},{option:"Linear",value:"'linear'",ngIf:"vm.queueCampaign.dialMethod !== 'booked'"},{option:"Weight Random",value:"'wrandom'",ngIf:"vm.queueCampaign.dialMethod !== 'booked'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.motiondialer.queueCampaigns.edit",{id:e.id,queueCampaign:e,crudPermissions:f.crudPermissions})},f.clonedialog=function(e,n){i.show({controller:"QueueCampaigncloneController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:f.queueCampaigns?f.queueCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.listadddialog=function(e,n){i.show({controller:"QueueCampaignlistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/listadd/listadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:f.queueCampaigns?f.queueCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.blacklistadddialog=function(e,n){i.show({controller:"QueueCampaignblacklistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/blacklistadd/blacklistadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:f.queueCampaigns?f.queueCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.teamadddialog=function(e,n){i.show({controller:"QueueCampaignteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:f.queueCampaigns?f.queueCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"QueueCampaignagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:f.queueCampaigns?f.queueCampaigns.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("queueCampaign")+"?").htmlContent("<b>"+(e.name||"queueCampaign")+"</b> will be deleted.").ariaLabel("delete queueCampaign").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:1510}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.motiondialer.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.motiondialer.realtime.queues",{})}},f.success=E,f.getQueueCampaigns=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="QueueCampaigns",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditQueueCampaign=function(e,n){i.show({controller:"CreateOrEditQueueCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:n,queueCampaigns:f.queueCampaigns.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteQueueCampaign=y,f.exportSelectedQueueCampaigns=function(){var e=angular.copy(f.selectedQueueCampaigns);return f.selectedQueueCampaigns=[],e},f.deleteSelectedQueueCampaigns=function(e){var n=i.confirm().title("Are you sure want to delete the selected queueCampaigns?").htmlContent("<b>"+f.selectedQueueCampaigns.length+" selected</b> will be deleted.").ariaLabel("delete QueueCampaigns").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedQueueCampaigns.forEach(function(e){y(e)}),f.selectedQueueCampaigns=[]})},f.deselectQueueCampaigns=function(){f.selectedQueueCampaigns=[]},f.selectAllQueueCampaigns=function(){f.selectedQueueCampaigns=f.queueCampaigns.rows},g.hasRole("admin")?m.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.trunks=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.trunks=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(f.trunks,{id:e.resourceId})}),a=null;a=[],f.queueCampaigns.rows.forEach(function(e){var n=_.find(f.trunks,{id:Number(e.TrunkId)});a.push(n)}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(f.trunks,{id:e.id});n.canSelect=!1,t.push(n)}}),f.trunks=t})}else{var t=[],a=[];f.queueCampaigns.rows.forEach(function(e){var n=_.find(f.trunks,{id:Number(e.TrunkId)});a.push(n)});for(var i=0;i<f.trunks.length;i++){_.some(a,{id:f.trunks[i].id})&&(f.trunks[i].canSelect=!1,t.push(f.trunks[i]))}f.trunks=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){f.interval=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){f.interval=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.interval,{id:e.resourceId})}),t=null;if(f.queueCampaign&&(t=_.find(f.interval,{id:Number(f.queueCampaign.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.interval,{id:t.id});a.canSelect=!1,n.push(a)}f.interval=n})}else{var t=[],a=null;f.queueCampaign&&(a=_.find(f.interval,{id:Number(f.queueCampaign.IntervalId)}));for(var i=0;i<f.interval.length;i++)a&&f.interval[i].id===a.id&&(f.interval[i].canSelect=!1,t.push(f.interval[i]));f.interval=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.queueCampaigns=e||{count:0,rows:[]}}function y(e){m.voiceQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.queueCampaigns.rows,{id:e.id}),f.queueCampaigns.count-=1,f.queueCampaigns.rows.length||f.getQueueCampaigns(),p.success({title:_.startCase("QueueCampaign")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getQueueCampaigns())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","queueCampaigns","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.motiondialer").controller("QueueCampaignsController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(){return[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Agent",key:"lastAssignedTo",type:"select",label:"DASHBOARDS.SELECT_AGENT",options:g.agents.rows,customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}],ngValue:"name"},{name:"Campaign",key:"queue",type:"multiselect",label:"DASHBOARDS.SELECT_CAMPAIGN",options:g.queues.rows,ngValue:"name"}]}function h(){return g.refresh=!1,0===g.queues.count?f(null):(g.query.queue=1===g.queues.count?g.queues.rows[0].name:g.query.queue,void 0===g.query.queue&&(g.query.queue=_.map(g.queues.rows,"name")),_.isEmpty(g.query.queue)?f(null):(g.query.offset=(g.query.page-1)*g.query.limit,i.localStorage.setItem("motion2.realtime.abandoned.bull.abandonedCalls:"+g.currentUser.id,JSON.stringify({query:_.omit(g.query,"queue")})),void(g.promise=o.voiceQueueReport.getVoiceQueuesReport(g.query,f).$promise)))}function f(e){g.abandonedCalls=e||{count:0,rows:[]},!1,g.refresh=!0}g.currentUser=d.getCurrentUser(),g.agents=u||[],g.dispositions=p.rows,g.abandonedCalls={count:0,rows:[]},g.showTooltip=!1,g.refresh=!0,g.userProfile=r,g.userProfileSection=l&&1==l.count?l.rows[0]:null,g.crudPermissions=d.parseCrudPermissions(g.userProfileSection?g.userProfileSection.crudPermissions:null),g.query={fields:"id,type,calleridnum,calleridname,queue,queuecallerabandonAt,queuecallerexitAt,queuecallerexitreason,assigned,lastAssignedTo,updatedAt,disposition,secondDisposition,thirdDisposition",type:"outbound",queuecallerexitreason:"TIMEOUT,ABANDONED",sort:"-updatedAt",limit:10,page:1},g.getAbandonedCalls=h,g.refreshAbandonedCalls=function(){g.showTooltip=!1,h()},g.assignTo=function(e,n){e&&o.voiceQueueReport.update({id:e.id,lastAssignedTo:n?n.name:null,assigned:!!n}).$promise.catch(function(e){console.log(e)})},g.dispose=function(t){n.show({controller:"DisposeAbandonedCallDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/home/abandoned/dispose/dialog.html",parent:angular.element(a.body),targetEvent:t,locals:{dispositions:g.dispositions,call:t}}).then(function(e){if(e){var n={id:t.id,disposition:e.firstLevel||null,secondDisposition:e.secondLevel||null,thirdDisposition:e.thirdLevel||null};o.voiceQueueReport.update(n).$promise.catch(function(e){console.log(e)})}})},g.onSaveVoiceQueueReport=function(e){e&&g.queuesMap&&"outbound"===queue.type&&g.queuesMap[e.queue]&&(g.showTooltip=!0)},g.onUpdateVoiceQueueReport=function(e){if(e){var n=_.findIndex(g.abandonedCalls.rows,["id",e.id]);0<=n&&_.merge(g.abandonedCalls.rows[n],e)}},c.onWithoutApply("voiceQueueReport:save",g.onSaveVoiceQueueReport),c.on("voiceQueueReport:update",g.onUpdateVoiceQueueReport),function(){var e=i.localStorage.getItem("motion2.realtime.abandoned.bull.abandonedCalls:"+g.currentUser.id);if(e)(e=JSON.parse(e))&&e.query&&(g.query=_.merge(e.query,_.omit(g.query,["sort","limit","page"])),g.query=_.omit(g.query,"filter"));else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};g.query.createdAt=n}d.hasRole("admin")?o.user.getQueues({id:d.getCurrentUser().id,fields:"id,name",channel:"voice",type:"outbound",nolimit:!0}).$promise.then(function(e){g.queues=e||{count:0,rows:[]},g.queuesMap=_.mapValues(_.keyBy(g.queues.rows,"name"),"name")}).catch(function(e){console.error(e)}).finally(function(){g.quickFilters=v(),h()}):o.userProfile.getResources({id:g.currentUser.userProfileId,section:"QueueCampaigns",channel:"voice",type:"outbound",sort:"-updatedAt",nolimit:!0}).$promise.then(function(e){g.queues=e||{count:0,rows:[]},g.queuesMap=_.mapValues(_.keyBy(g.queues.rows,"name"),"name")}).catch(function(e){console.error(e)}).finally(function(){g.quickFilters=v(),h()})}();var b=!0,A=1;e.$watch("vm.query.filter",function(e,n){b?t(function(){b=!1}):(n||(A=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=A),h())}),e.$on("$destroy",function(){c.removeAllListeners("voiceQueueReport:save"),c.removeAllListeners("voiceQueueReport:update")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","userProfile","userProfileSection","Auth","socket","toasty","agents","dispositions"],angular.module("app.motiondialer").controller("AbandonedCallsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,t,a,i,n,s,o,r,l,d,c,m){var u=this,p=["name","active","limitCalls","message","originated","IntervalId","SquareProjectId","Trunk","TrunkId","ivrAnswerCallsDay","dialQueueProject","ivrTotalCallsDays","description"];function g(){_.forIn(u.campaigns,function(e,n){u.rpcCampaigns[n]&&_.merge(e,_.pick(u.rpcCampaigns[n],p))})}u.currentUser=m.getCurrentUser(),u.count=o.count,u.campaigns=o?_.keyBy(o.rows?o.rows:[],"id"):{},u.rpcCampaigns=s?_.keyBy(s.rows?s.rows:[],"id"):{},u.userProfile=d,u.userProfileSection=c&&1==c.count?c.rows[0]:null,u.crudPermissions=m.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.query={sort:"-updatedAt",limit:10,page:1},u.success=f,u.getCampaigns=function(){u.query.offset=(u.query.page-1)*u.query.limit,m.hasRole("admin")?u.promise=r.campaign.get(u.query,f).$promise:(u.query.id=u.userProfile.id,u.query.section="IvrCampaigns",u.promise=r.userProfile.getResources(u.query,f).$promise)},u.onSave=function(e){u.campaigns[e.id]&&(_.merge(u.campaigns[e.id],_.pick(e,p)),_.merge(u.rpcCampaigns[e.id],_.pick(e,p)))},u.$onInit=g,u.createOrEditIvrCampaign=function(e,n){a.show({controller:"CreateOrEditIvrCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/create/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:n,ivrCampaigns:_.values(u.campaigns),license:null,setting:null,crudPermissions:u.crudPermissions}})},l.onWithoutApply("campaign:save",u.onSave),u.interval=n(function(){},999);var v=!0,h=1;function f(e){u.count=e.count,u.campaigns=e?_.keyBy(e.rows?e.rows:[],"id"):{},g()}e.$watch("vm.query.filter",function(e,n){v?t(function(){v=!1}):(n||(h=u.query.page),e!==n&&(u.query.page=1),e||(u.query.page=h),u.getCampaigns())}),e.$on("$destroy",function(){l.removeAllListeners("campaign:save"),u.interval&&n.cancel(u.interval)})}e.$inject=["$scope","$timeout","$mdDialog","$document","$interval","rpcCampaigns","campaigns","api","socket","userProfile","userProfileSection","Auth"],angular.module("app.motiondialer").controller("IvrCampaignsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,n,a,o,t,i,s,r,l,d,c,m,u){var p=this;p.currentUser=u.getCurrentUser(),p.queues=t?_.keyBy(t.rows?t.rows:[],"name"):{},p.rpcVoiceQueuesChannelsTmp=i?_.keyBy(i.rows?_.filter(i.rows,{type:"outbound"}):[],"uniqueid"):{},p.rpcVoiceQueuesChannels={},p.userProfile=c,p.userProfileSection=m&&1==m.count?m.rows[0]:null,p.crudPermissions=u.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.queryChannels={limit:10,page:1},p.getAvailableAgents=function(){p.availableAgents=null,s.rpc.getAgents().$promise.then(function(e){for(var n=[],t=e?e.rows:[],a=_.filter(t,{online:!0,voicePause:!1,voiceStatus:"idle"}),i=0;i<a.length;i++){var s=_.find(o.rows,["id",a[i].id]);s&&n.push(s)}p.availableAgents=n}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},p.getSize=function(e){return _.size(e)},p.$onInit=function(){_.forIn(p.rpcVoiceQueuesChannelsTmp,function(e,n){_.find(p.queues,{name:e.name})&&(p.rpcVoiceQueuesChannels[n]=e)})},p.onSave=function(e){"outbound"===e.type&&_.find(p.queues,{name:e.name})&&(p.rpcVoiceQueuesChannels[e.uniqueid]=e)},p.onRemove=function(e){p.rpcVoiceQueuesChannels[e.uniqueid]&&delete p.rpcVoiceQueuesChannels[e.uniqueid]},p.hangup=function(n){return s.rpc.getVoiceQueuesChannelHangup({uniqueid:n}).$promise.then(function(e){d.success({title:"Channel "+n+" properly hangup!",msg:e.message||""})}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},p.redirectToAgent=function(n,e,t){return s.rpc.getVoiceQueuesChannelRedirect({uniqueid:n,exten:e,context:t}).$promise.then(function(e){d.success({title:"Channel "+n+" properly redirect!",msg:e.message||""})}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},p.redirectToNumber=function(e,n){var t=a.prompt().title("Which number do you want transfer the call to?").placeholder("Number").targetEvent(e).ok("Ok").cancel("Cancel");return a.show(t).then(function(e){return s.rpc.getVoiceQueuesChannelRedirect({uniqueid:n,exten:e}).$promise}).then(function(e){d.success({title:"Channel "+n+" properly redirect!",msg:e.message||""})}).catch(function(e){e&&d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},r.on("voice_queue_channel:save",p.onSave),r.on("voice_queue_channel:remove",p.onRemove),e.$on("$destroy",function(){r.removeAllListeners("voice_queue_channel:save"),r.removeAllListeners("voice_queue_channel:remove")})}e.$inject=["$scope","$timeout","$mdDialog","agents","queues","rpcVoiceQueuesChannels","api","socket","helperClasses","toasty","userProfile","userProfileSection","Auth"],angular.module("app.motiondialer").controller("QueueCallsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["total","answered","sumHoldTime","sumDuration","sumBillable","outboundNoAnswerCallsDay","outboundBusyCallsDay","outboundCongestionCallsDay","outboundNoSuchCallsDay","outboundUnknownCallsDay","outboundDropCallsDayTimeout","outboundDropCallsDayCallersExit","outboundBlacklistCallsDay","outboundOriginateFailureCallsDay","outboundAnswerAgiCallsDay","outboundReCallsDay","outboundRejectCallsDay"];function u(){_.forIn(c.queues,function(e,n){c.rpcQueues[n]&&_.merge(e,_.pick(c.rpcQueues[n],m))})}c.count=a.count,c.queues=a?_.keyBy(a.rows?a.rows:[],"id"):{},c.rpcQueues=i?_.keyBy(i.rows?i.rows:[],"id"):{},c.userProfile=r,c.userProfileSection=l&&1==l.count?l.rows[0]:null,c.crudPermissions=d.parseCrudPermissions(c.userProfileSection?c.userProfileSection.crudPermissions:null),d.hasRole("admin")?c.query={type:"outbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1}:c.query={id:d.getCurrentUser().id,channel:"voice",type:"outbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1},c.success=v,c.getQueues=function(){c.query.offset=(c.query.page-1)*c.query.limit,d.hasRole("admin")?c.promise=s.voiceQueue.get(c.query,v).$promise:(c.query.id=c.userProfile.id,c.query.section="QueueCampaigns",c.promise=s.userProfile.getResources(c.query,v).$promise)},c.onSave=function(e){c.queues[e.id]&&_.merge(c.queues[e.id],_.pick(e,m))},c.$onInit=u,o.onWithoutApply("voice_queue:save",c.onSave),c.interval=n(function(){},999);var p=!0,g=1;function v(e){c.count=e.count,c.queues=e?_.keyBy(e.rows?e.rows:[],"id"):{},u()}e.$watch("vm.query.filter",function(e,n){p?t(function(){p=!1}):(n||(g=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=g),c.getQueues())}),e.$on("$destroy",function(){o.removeAllListeners("voice_queue:save"),c.interval&&n.cancel(c.interval)})}e.$inject=["$scope","$timeout","$interval","queues","rpcQueues","api","socket","userProfile","userProfileSection","Auth"],angular.module("app.motiondialer").controller("QueueParamsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c,m){var u=this,p=n(function(){},999);u.currentUser=c.getCurrentUser(),u.queues=s,u.userProfileSection=d&&1==d.count?d.rows[0]:null,u.crudPermissions=c.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.query={id:c.isUser()?u.currentUser.id:void 0,section:c.isUser()?"QueueCampaigns":void 0,channel:"voice",type:"outbound",sort:"name",limit:10,page:1},u.getQueues=function(){u.query.offset=(u.query.page-1)*u.query.limit,o.realtime.getQueues(u.query).$promise.then(function(e){u.queues=e}).catch(function(e){l.error({title:i.instant("VOICE.VOICEQUEUES"),msg:e.status?JSON.stringify(e.data):e.toString()})})},u.editQueue=function(e,n){t.show({controller:"CreateOrEditQueueCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:n,queueCampaigns:u.queues.rows,license:null,setting:null,crudPermissions:u.crudPermissions}})},u.addAgent=function(e,n){t.show({controller:"QueueCampaignagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:n,queueCampaigns:u.queues.rows,realtime:!0,crudPermissions:u.crudPermissions}})},u.showPredictiveQueueCampaignInfo=function(e,n){t.show({controller:"PredictiveQueueCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/realtime/queues/predictive/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:n}})},r.onWithoutApply("voice_queue:save",function(e){var n=_.find(u.queues.rows,["id",e.id]);n&&m.updateVoiceQueue(e,n)}),r.on("userVoiceQueueRt:save",function(e){var n=_.find(u.queues.rows,["id",e.MotionDialerQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),r.on("user:agentconnect",function(t){u.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);if(n){if(!t.agentconnected)return;t.queue?n.talking=!0:n.busy=!0,m.updateBusyCounter(e)}})}),r.on("user:agentcomplete",function(t){u.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(n.talking?n.talking=!1:n.busy&&(n.busy=!1),m.updateBusyCounter(e))})}),r.on("user:update",function(t){u.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&m.updateQueue(t,e,n,"voice")})}),e.$on("$destroy",function(){r.removeAllListeners("voice_queue:save"),r.removeAllListeners("userVoiceQueueRt:save"),r.removeAllListeners("user:agentconnect"),r.removeAllListeners("user:agentcomplete"),r.removeAllListeners("user:update"),p&&n.cancel(p)})}e.$inject=["$scope","$mdDialog","$document","$interval","$translate","queues","api","socket","toasty","userProfileSection","Auth","realtimeManager"],angular.module("app.motiondialer").controller("QueuesMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,n,t){this.queueCampaign=t,this.addMinutes=function(e,n){return moment(e).add("m",n).format("HH:mm:ss")},this.setFormatTime=function(e){return moment(e).format("HH:mm:ss")},this.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$interval","queueCampaign"],angular.module("app.motiondialer").controller("PredictiveQueueCampaignDialogController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){return{status:{registered:"green-300-fg icon-checkbox-marked-circle",unregistered:"red-300-fg icon-close-circle",lagged:"red-300-fg icon-close-circle",reachable:"green-300-fg icon-checkbox-marked-circle",unreachable:"red-300-fg icon-close-circle",unknown:"grey-fg icon-minus-circle"},state:{unknown:"grey-fg icon-phone-hangup",not_inuse:"green-300-fg icon-phone-hangup",inuse:"red-300-fg icon-phone-in-talk",busy:"red-300-fg icon-phone-locked",invalid:"grey-fg icon-phone-hangup",unavailable:"grey-fg icon-phone-hangup",ringing:"blue-300-fg icon-phone-incoming",ringinuse:"blue-300-fg icon-phone-incoming",onhold:"blue-300-fg icon-phone-paused"},channelStatus:{ring:"blue-300-fg icon-phone-incoming",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"},channelStatusOut:{ring:"blue-300-fg icon-phone-outgoing",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"}}})}(),function(){"use strict";function e(e,t,n){switch(this.selectedTab=0,t.current.name){case"app.motiondialer.realtime.agents":this.selectedTab=0;break;case"app.motiondialer.realtime.queues":this.selectedTab=1;break;case"app.motiondialer.realtime.queue_calls":this.selectedTab=2;break;case"app.motiondialer.realtime.abandonedcalls":this.selectedTab=3;break;case"app.motiondialer.realtime.queue_params":this.selectedTab=4;break;case"app.motiondialer.realtime.ivr_campaigns":this.selectedTab=5;break;default:this.selectedTab=0,t.go("app.motiondialer.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.motiondialer.realtime.agents");break;case 1:t.go("app.motiondialer.realtime.queues");break;case 2:t.go("app.motiondialer.realtime.queue_calls");break;case 3:t.go("app.motiondialer.realtime.abandonedcalls");break;case 4:t.go("app.motiondialer.realtime.queue_params");break;case 5:t.go("app.motiondialer.realtime.ivr_campaigns");break;default:t.go("app.motiondialer.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.motiondialer").controller("MotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="OPENCHANNEL.EDIT_OPENCHANNELACCOUNT",g.openchannelAccount=angular.copy(l),g.openchannelAccounts=r,g.newOpenchannelAccount=!1,g.openchannelAccount||(g.openchannelAccount={waitForTheAssignedAgent:10,notificationSound:!0,queueTransferTimeout:300,agentTransferTimeout:300},g.title="OPENCHANNEL.NEW_OPENCHANNELACCOUNT",g.newOpenchannelAccount=!0),n.params.id&&(g.openchannelAccount.OpenchannelAccountId=n.params.id),g.addNewOpenchannelAccount=function(){g.errors=[],d.openchannelAccount.save(g.openchannelAccount).$promise.then(function(e){g.openchannelAccounts.unshift(e.toJSON()),o.success({title:"OpenchannelAccount properly created",msg:g.openchannelAccount.name?g.openchannelAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveOpenchannelAccount=function(){g.errors=[],d.openchannelAccount.update({id:g.openchannelAccount.id},g.openchannelAccount).$promise.then(function(e){var n=_.find(g.openchannelAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"OpenchannelAccount properly saved!",msg:g.openchannelAccount.name?g.openchannelAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteOpenchannelAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The openchannelAccount will be deleted.").ariaLabel("Delete OpenchannelAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.openchannelAccount.delete({id:g.openchannelAccount.id}).$promise.then(function(){_.remove(g.openchannelAccounts,{id:g.openchannelAccount.id}),o.success({title:"OpenchannelAccount properly deleted!",msg:(g.openchannelAccount.name||"openchannelAccount")+" has been deleted!"}),v(g.openchannelAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.lists,{id:e.resourceId})}),t=null;if(g.openchannelAccount&&(t=_.find(g.lists,{id:Number(g.openchannelAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.lists,{id:t.id});a.canSelect=!1,n.push(a)}g.lists=n})}else{var t=[],a=null;g.openchannelAccount&&(a=_.find(g.lists,{id:Number(g.openchannelAccount.ListId)}));for(var i=0;i<g.lists.length;i++)a&&g.lists[i].id===a.id&&(g.lists[i].canSelect=!1,t.push(g.lists[i]));g.lists=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","openchannelAccounts","openchannelAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.openchannel").controller("CreateOrEditOpenchannelAccountDialogController",e)}(),function(){"use strict";function e(o,i,a,s,e){var r=this;function n(e,n){if(r.openchannelAccountApps.rows.length){var t=r.openchannelAccountApps.rows[n]?r.openchannelAccountApps.rows[n]:r.openchannelAccountApps.rows[0];i.show({controller:"EditOpenchannelAccountApp"+(t.appType||t.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/apps/"+(t.appType||t.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelAccountApp:t,openchannelAccount:r.openchannelAccount,crudPermissions:r.crudPermissions}}).then(function(e){e&&(e.id?r.openchannelAccountApps.rows[n]=e:r.openchannelAccountApps.rows.splice(n,0,e),l())}).catch(function(e){e&&s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function l(){for(var e=1,n=[],t=0;t<r.openchannelAccountApps.rows.length;t++,0){var a=r.openchannelAccountApps.rows[t],i=[],s=[];a.intervals="*,*,*,*"!==a.interval?[a.interval]:a.IntervalId?_.map(_.filter(r.intervals.rows,{IntervalId:a.IntervalId}),"interval"):[],a.context=r.openchannelAccount.context,a.exten=r.openchannelAccount.exten,a.type&&(a.type=a.type.toLowerCase()),a.priority=i.length?_.last(i).priority+1:e,e=(s.length?_.last(s).priority:a.priority)+1,n=_.concat(n,i,[a],s)}o.openchannelAccount.addApplications({id:r.openchannelAccount.id},_.sortBy(n,"priority")).$promise.then(function(e){r.openchannelAccountApps.rows=e.rows}).catch(function(e){console.error(e)})}function t(e){r.openchannelAccountApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.openchannelAccount={},r.openchannelAccountApps={count:0,rows:[]},r.selectedOpenchannelAccountApps=[],r.crudPermissions,r.query={sort:"priority"},r.apps=_.reject(_.sortBy([{app:"dialogflow",appType:"dialogflow",type:"dialogflow",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Key",name:"key",type:"text",required:!0,param:0},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{option:"Danish",value:"'da'"},{option:"English",value:"'en'"},{option:"German",value:"'de'"},{option:"Italian",value:"'it'"},{option:"Spanish",value:"'es'"},{option:"French",value:"'fr'"},{option:"Indonesian",value:"'id'"},{option:"Japanese",value:"'ja'"},{option:"Korean (South Korea)",value:"'ko'"},{option:"Dutch",value:"'nl'"},{option:"Norwegian",value:"'no'"},{option:"Portuguese (European)",value:"'pt'"},{option:"Portuguese (Nrazilian)",value:"'pt-br'"},{option:"Russian",value:"'ru'"},{option:"Swedish",value:"'sv'"},{option:"Thai",value:"'th'"},{option:"Ukrainian",value:"'uk'"},{option:"Chinese (Simplified)",value:"'zh-CN'"},{option:"Chinese (Hong Kong)",value:"'zh-HK'"},{option:"Chinese (Traditional)",value:"'zh-TW'"}],required:!0,param:1},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,required:!1,param:2,help:!0}]},{app:"dialogflowV2",appType:"dialogflowv2",type:"dialogflowv2",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"ProjectID",name:"projectId",type:"text",required:!0,param:0},{title:"ClientEmail",name:"clientEmail",type:"text",required:!0,param:1},{title:"PrivateKey",name:"privateKey",type:"textarea",required:!0,param:2},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{value:"'zh-HK'",option:"Chinese (Cantonese)"},{value:"'zh-CN'",option:"Chinese (Simplified)"},{value:"'zh-TW'",option:"Chinese (Traditional)"},{value:"'da'",option:"Danish"},{value:"'nl'",option:"Dutch"},{value:"'en'",option:"English"},{value:"'en-AU'",option:"English (Australia)"},{value:"'en-CA'",option:"English (Canada)"},{value:"'en-GB'",option:"English (Great Britain)"},{value:"'en-IN'",option:"English (India)"},{value:"'en-US'",option:"English (US)"},{value:"'fr'",option:"French"},{value:"'fr-CA'",option:"French (Canada)"},{value:"'fr-FR'",option:"'France (France)"},{value:"'de'",option:"German"},{value:"'hi'",option:"Hindi"},{value:"'id'",option:"Indonesian"},{value:"'it'",option:"Italian"},{value:"'ja'",option:"Japanese"},{value:"'ko'",option:"Korean"},{value:"'no'",option:"Norwegian"},{value:"'pl'",option:"Polish"},{value:"'pt-BR'",option:"Portuguese (Brazil)"},{value:"'pt-PT'",option:"Portuguese (Portugal)"},{value:"'ru'",option:"Russian"},{value:"'es'",option:"Spanish"},{value:"'es-419'",option:"Spanish (Latin America)"},{value:"'es-ES'",option:"Spanish (Spain)"},{value:"'sw'",option:"Swedish"},{value:"'th'",option:"Thai"},{value:"'tr'",option:"Turkish"},{value:"'uk'",option:"Ukrainian"}],required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,param:4,help:!0}]},{app:"amazonlex",appType:"amazonlex",type:"amazonlex",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"accesskeyid",name:"accesskeyid",type:"text",required:!0,param:0},{title:"secretaccesskey",name:"secretaccesskey",type:"text",required:!0,param:1},{title:"lexregion",name:"lexregion",type:"select",defaultValue:"'us-east-1'",values:[{option:"US East (N. Virginia)",value:"'us-east-1'"},{option:"US West (Oregon)",value:"'us-west-2'"},{option:"EU (Ireland)",value:"'eu-west-1'"},{option:"Asia Pacific (Sydney)",value:"'ap-southeast-2'"}],required:!0,param:2},{title:"botname",name:"botname",type:"text",required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,required:!1,param:4,help:!0}]},{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"noop",appType:"noop",type:"noop",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,fields:[{title:"Value",name:"value",type:"text",param:0}]},{app:"system",appType:"system",type:"system",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,extraApi:[{name:"variables",field:{name:"variable",key:"name"},route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1012}}],fields:[{title:"Command",name:"command",type:"text",required:!0,param:0},{title:"Variable",name:"variable",type:"apiselect",values:"variables",value:"variable.name",option:"variable.name",defaultValues:[{value:"''",option:"None"}],defaultValue:"''",param:1}]},{app:"gotop",appType:"gotop",type:"goto",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Priority",name:"priority",type:"number",required:!0,min:0,param:0}]},{app:"gotoif",appType:"gotoif",type:"gotoif",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Condition",name:"condition",type:"text",required:!0,param:0},{title:"truepriority",name:"truepriority",type:"number",min:1,required:!0,param:1},{title:"falsepriority",name:"falsepriority",type:"number",min:1,required:!0,param:2}]},{app:"queue",appType:"queue",foreignKey:"OpenchannelQueueId",type:"queue",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"queues",field:{name:"queue",key:"name"},route:"openchannelQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0},permissions:{section:801}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",defaultValue:300,required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,defaultValue:300,required:!0,param:1}]},{app:"agent",appType:"agent",type:"agent",foreignKey:"UserId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"agents",field:{name:"agent",key:"name"},route:"user",filters:{fields:"id,name",sort:"name",role:"agent",nolimit:!0},permissions:{section:202}}],fields:[{title:"Agent",name:"agent",type:"apiselect",values:"agents",value:"agent.name",option:"agent.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:30,param:1}]},{app:"autoreply",appType:"autoreply",type:"autoreply",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"times",name:"times",type:"select",defaultValue:"1",values:[{option:"One Time",value:"2"},{option:"Always",value:"0"},{option:"First Message",value:"1"}],required:!0,param:0},{title:"Text",name:"text",type:"textarea",required:!0,param:1}]},{app:"close",appType:"close",type:"close",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Disposition",name:"disposition",type:"text",required:!0,param:0}]},{app:"tag",appType:"tag",type:"tag",foreignKey:"TagId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"tags",field:{name:"tag",key:"name"},route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1008}}],fields:[{title:"Tag",name:"tag",type:"apiselect",values:"tags",value:"tag.name",option:"tag.name",required:!0,param:0}]}],["app"]),{isApp:!1}),r.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},r.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){n(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e,n){r.openchannelAccount=e,r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},r.applications.disabled=!r.crudPermissions.canEdit,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getOpenchannelAccountApps(),r.getIntervals()},r.deleteConfirm=function(e,n,t){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.openchannelAccountApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})},r.getOpenchannelAccountApps=function(){r.promise=o.openchannelAccount.getApplications(r.query,t).$promise},r.editOpenchannelAccountApp=n,r.editInterval=function(e,n){if(r.openchannelAccountApps.rows.length){var t=r.openchannelAccountApps.rows[n]?r.openchannelAccountApps.rows[n]:r.openchannelAccountApps.rows[0];i.show({controller:"EditOpenchannelAccountAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:[],crudPermissions:r.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,l())})}},r.deleteOpenchannelAccountApp=function(e){_.remove(r.openchannelAccountApps.rows,{id:e.id}),l(),s.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedOpenchannelAccountApps=function(e){var n=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+r.selectedOpenchannelAccountApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){r.selectedOpenchannelAccountApps.forEach(function(e){_.remove(r.openchannelAccountApps.rows,{id:e.id})}),r.selectedOpenchannelAccountApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return o.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){r.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.openchannel").controller("OpenchannelAccountActionsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.openchannelAccount.getAgents({id:c.openchannelAccount.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserOpenchannelAccount?"penalty "+e.UserOpenchannelAccount.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.openchannelAccount=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.openchannelAccount.removeAgents({id:c.openchannelAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.openchannelAccount.addAgents({id:c.openchannelAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("OPENCHANNEL.ALL_AGENTS"),labelSelected:r.instant("OPENCHANNEL.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","openchannelAccount","openchannelAccounts","realtime","$translate","Auth","crudPermissions"],angular.module("app.openchannel").controller("OpenchannelAccountagentaddController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.agent=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.agent.appdata)switch(l.agent.appType?l.agent.appType.toLowerCase():l.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.agent.appdata.split(",");l.agent.key=d[0],l.agent.language=d[1],l.agent.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.agent.appdata.split(",");l.agent.projectId=d[0],l.agent.clientEmail=d[1],l.agent.privateKey=d[2],l.agent.language=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.agent.appdata.split(",");l.agent.accesskeyid=d[0],l.agent.secretaccesskey=d[1],l.agent.lexregion=d[2],l.agent.botname=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.agent.appdata.split(",");l.agent.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.agent.text=d.slice(1,d.length).join(",");break;case"message":l.agent.text=l.agent.appdata;break;case"set":l.agent.name=l.agent.appdata.split("=")[0],l.agent.value=l.agent.appdata.split("=")[1];break;case"agi":l.agent.project=l.agent.appdata;break;default:var c=l.agent.appdata.split(",");l.agent.agent=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.agent.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.agent.timeout=30;function m(e){n.hide(e)}l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outbounddial"===l.agent.appType.toLowerCase()&&(l.agent.prefix=l.agent.phone?l.agent.phone.split("$")[0]:void 0,l.agent.callerId=l.agent.callerID?"CALLERID(all)="+l.agent.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outboundDial"===l.agent.appType&&(l.agent.phone=i.cutdigits?(l.agent.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.agent.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.agent.options+="U(xcally-mixmonitor-context)"):l.agent.options=l.agent.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.agents,{name:l.agent.agent});n&&(l.agent.UserId=n.id);if(l.agent.appType&&"custom"===l.agent.appType);else switch((l.agent.app||l.agent.appType).toLowerCase()){case"set":l.agent.appdata=l.agent.name+"="+l.agent.value;break;case"custom":break;default:e[0]=l.agent.agent,e[1]=l.agent.timeout,l.agent.appdata=e.join(",")}m(l.agent)},l.closeDialog=m,o.hasRole("admin")?s.user.get({fields:"id,name",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){l.agents=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.user.get({fields:"id,name",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){l.agents=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.agents,{id:e.resourceId})}),t=null;if(l.agent&&(t=_.find(l.agents,{name:l.agent.agent})),t&&!_.some(n,["id",t.id])){var a=_.find(l.agents,{id:t.id});a.canSelect=!1,n.push(a)}l.agents=n})}else{var t=[],a=null;l.agent&&(a=_.find(l.agents,{name:l.agent.agent}));for(var i=0;i<l.agents.length;i++)a&&l.agents[i].id===a.id&&(l.agents[i].canSelect=!1,t.push(l.agents[i]));l.agents=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppagentDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.amazonlex=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.amazonlex.appdata)switch(l.amazonlex.appType?l.amazonlex.appType.toLowerCase():l.amazonlex.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.amazonlex.appdata.split(",");l.amazonlex.key=d[0],l.amazonlex.language=d[1],l.amazonlex.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.amazonlex.appdata.split(",");l.amazonlex.projectId=d[0],l.amazonlex.clientEmail=d[1],l.amazonlex.privateKey=d[2],l.amazonlex.language=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=d[0],l.amazonlex.secretaccesskey=d[1],l.amazonlex.lexregion=d[2],l.amazonlex.botname=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.amazonlex.appdata.split(",");l.amazonlex.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.amazonlex.text=d.slice(1,d.length).join(",");break;case"message":l.amazonlex.text=l.amazonlex.appdata;break;case"set":l.amazonlex.name=l.amazonlex.appdata.split("=")[0],l.amazonlex.value=l.amazonlex.appdata.split("=")[1];break;case"agi":l.amazonlex.project=l.amazonlex.appdata;break;default:var c=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.amazonlex.secretaccesskey=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.amazonlex.lexregion=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.amazonlex.botname=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.amazonlex.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.amazonlex.lexregion="us-east-1";function m(e){n.hide(e)}l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outbounddial"===l.amazonlex.appType.toLowerCase()&&(l.amazonlex.prefix=l.amazonlex.phone?l.amazonlex.phone.split("$")[0]:void 0,l.amazonlex.callerId=l.amazonlex.callerID?"CALLERID(all)="+l.amazonlex.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outboundDial"===l.amazonlex.appType&&(l.amazonlex.phone=i.cutdigits?(l.amazonlex.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.amazonlex.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.amazonlex.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.amazonlex.options+="U(xcally-mixmonitor-context)"):l.amazonlex.options=l.amazonlex.options.replace("U(xcally-mixmonitor-context)",""));if(l.amazonlex.appType&&"custom"===l.amazonlex.appType);else switch((l.amazonlex.app||l.amazonlex.appType).toLowerCase()){case"set":l.amazonlex.appdata=l.amazonlex.name+"="+l.amazonlex.value;break;case"custom":break;default:e[0]=l.amazonlex.accesskeyid,e[1]=l.amazonlex.secretaccesskey,e[2]=l.amazonlex.lexregion,e[3]=l.amazonlex.botname,e[4]=l.amazonlex.welcomemessage,l.amazonlex.appdata=e.join(",")}m(l.amazonlex)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppamazonlexDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.autoreply=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.autoreply.appdata)switch(l.autoreply.appType?l.autoreply.appType.toLowerCase():l.autoreply.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.autoreply.appdata.split(",");l.autoreply.key=d[0],l.autoreply.language=d[1],l.autoreply.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.autoreply.appdata.split(",");l.autoreply.projectId=d[0],l.autoreply.clientEmail=d[1],l.autoreply.privateKey=d[2],l.autoreply.language=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.autoreply.appdata.split(",");l.autoreply.accesskeyid=d[0],l.autoreply.secretaccesskey=d[1],l.autoreply.lexregion=d[2],l.autoreply.botname=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.autoreply.appdata.split(",");l.autoreply.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.autoreply.text=d.slice(1,d.length).join(",");break;case"message":l.autoreply.text=l.autoreply.appdata;break;case"set":l.autoreply.name=l.autoreply.appdata.split("=")[0],l.autoreply.value=l.autoreply.appdata.split("=")[1];break;case"agi":l.autoreply.project=l.autoreply.appdata;break;default:var c=l.autoreply.appdata.split(",");l.autoreply.times=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.autoreply.text=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.autoreply.times=1;function m(e){n.hide(e)}l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outbounddial"===l.autoreply.appType.toLowerCase()&&(l.autoreply.prefix=l.autoreply.phone?l.autoreply.phone.split("$")[0]:void 0,l.autoreply.callerId=l.autoreply.callerID?"CALLERID(all)="+l.autoreply.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outboundDial"===l.autoreply.appType&&(l.autoreply.phone=i.cutdigits?(l.autoreply.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.autoreply.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.autoreply.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.autoreply.options+="U(xcally-mixmonitor-context)"):l.autoreply.options=l.autoreply.options.replace("U(xcally-mixmonitor-context)",""));if(l.autoreply.appType&&"custom"===l.autoreply.appType);else switch((l.autoreply.app||l.autoreply.appType).toLowerCase()){case"set":l.autoreply.appdata=l.autoreply.name+"="+l.autoreply.value;break;case"custom":break;default:e[0]=l.autoreply.times,e[1]=l.autoreply.text,l.autoreply.appdata=e.join(",")}m(l.autoreply)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppautoreplyDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.close=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.close.appdata)switch(l.close.appType?l.close.appType.toLowerCase():l.close.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.close.appdata.split(",");l.close.key=d[0],l.close.language=d[1],l.close.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.close.appdata.split(",");l.close.projectId=d[0],l.close.clientEmail=d[1],l.close.privateKey=d[2],l.close.language=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.close.appdata.split(",");l.close.accesskeyid=d[0],l.close.secretaccesskey=d[1],l.close.lexregion=d[2],l.close.botname=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.close.appdata.split(",");l.close.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.close.text=d.slice(1,d.length).join(",");break;case"message":l.close.text=l.close.appdata;break;case"set":l.close.name=l.close.appdata.split("=")[0],l.close.value=l.close.appdata.split("=")[1];break;case"agi":l.close.project=l.close.appdata;break;default:var c=l.close.appdata.split(",");l.close.disposition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outbounddial"===l.close.appType.toLowerCase()&&(l.close.prefix=l.close.phone?l.close.phone.split("$")[0]:void 0,l.close.callerId=l.close.callerID?"CALLERID(all)="+l.close.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outboundDial"===l.close.appType&&(l.close.phone=i.cutdigits?(l.close.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.close.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.close.options+="U(xcally-mixmonitor-context)"):l.close.options=l.close.options.replace("U(xcally-mixmonitor-context)",""));if(l.close.appType&&"custom"===l.close.appType);else switch((l.close.app||l.close.appType).toLowerCase()){case"set":l.close.appdata=l.close.name+"="+l.close.value;break;case"custom":break;default:e[0]=l.close.disposition,l.close.appdata=e.join(",")}m(l.close)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppcloseDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflow=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflow.appdata)switch(l.dialogflow.appType?l.dialogflow.appType.toLowerCase():l.dialogflow.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflow.appdata.split(",");l.dialogflow.key=d[0],l.dialogflow.language=d[1],l.dialogflow.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflow.appdata.split(",");l.dialogflow.projectId=d[0],l.dialogflow.clientEmail=d[1],l.dialogflow.privateKey=d[2],l.dialogflow.language=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflow.appdata.split(",");l.dialogflow.accesskeyid=d[0],l.dialogflow.secretaccesskey=d[1],l.dialogflow.lexregion=d[2],l.dialogflow.botname=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflow.appdata.split(",");l.dialogflow.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflow.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflow.text=l.dialogflow.appdata;break;case"set":l.dialogflow.name=l.dialogflow.appdata.split("=")[0],l.dialogflow.value=l.dialogflow.appdata.split("=")[1];break;case"agi":l.dialogflow.project=l.dialogflow.appdata;break;default:var c=l.dialogflow.appdata.split(",");l.dialogflow.key=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflow.language=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflow.welcomemessage=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}else l.dialogflow.language="en";function m(e){n.hide(e)}l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outbounddial"===l.dialogflow.appType.toLowerCase()&&(l.dialogflow.prefix=l.dialogflow.phone?l.dialogflow.phone.split("$")[0]:void 0,l.dialogflow.callerId=l.dialogflow.callerID?"CALLERID(all)="+l.dialogflow.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outboundDial"===l.dialogflow.appType&&(l.dialogflow.phone=i.cutdigits?(l.dialogflow.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflow.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflow.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflow.options+="U(xcally-mixmonitor-context)"):l.dialogflow.options=l.dialogflow.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflow.appType&&"custom"===l.dialogflow.appType);else switch((l.dialogflow.app||l.dialogflow.appType).toLowerCase()){case"set":l.dialogflow.appdata=l.dialogflow.name+"="+l.dialogflow.value;break;case"custom":break;default:e[0]=l.dialogflow.key,e[1]=l.dialogflow.language,e[2]=l.dialogflow.welcomemessage,l.dialogflow.appdata=e.join(",")}m(l.dialogflow)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppdialogflowDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflowv2=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflowv2.appdata)switch(l.dialogflowv2.appType?l.dialogflowv2.appType.toLowerCase():l.dialogflowv2.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.key=d[0],l.dialogflowv2.language=d[1],l.dialogflowv2.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=d[0],l.dialogflowv2.clientEmail=d[1],l.dialogflowv2.privateKey=d[2],l.dialogflowv2.language=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.accesskeyid=d[0],l.dialogflowv2.secretaccesskey=d[1],l.dialogflowv2.lexregion=d[2],l.dialogflowv2.botname=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflowv2.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflowv2.text=l.dialogflowv2.appdata;break;case"set":l.dialogflowv2.name=l.dialogflowv2.appdata.split("=")[0],l.dialogflowv2.value=l.dialogflowv2.appdata.split("=")[1];break;case"agi":l.dialogflowv2.project=l.dialogflowv2.appdata;break;default:var c=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflowv2.clientEmail=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflowv2.privateKey=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.dialogflowv2.language=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.dialogflowv2.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.dialogflowv2.language="en";function m(e){n.hide(e)}l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outbounddial"===l.dialogflowv2.appType.toLowerCase()&&(l.dialogflowv2.prefix=l.dialogflowv2.phone?l.dialogflowv2.phone.split("$")[0]:void 0,l.dialogflowv2.callerId=l.dialogflowv2.callerID?"CALLERID(all)="+l.dialogflowv2.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outboundDial"===l.dialogflowv2.appType&&(l.dialogflowv2.phone=i.cutdigits?(l.dialogflowv2.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflowv2.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflowv2.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflowv2.options+="U(xcally-mixmonitor-context)"):l.dialogflowv2.options=l.dialogflowv2.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflowv2.appType&&"custom"===l.dialogflowv2.appType);else switch((l.dialogflowv2.app||l.dialogflowv2.appType).toLowerCase()){case"set":l.dialogflowv2.appdata=l.dialogflowv2.name+"="+l.dialogflowv2.value;break;case"custom":break;default:e[0]=l.dialogflowv2.projectId,e[1]=l.dialogflowv2.clientEmail,e[2]=l.dialogflowv2.privateKey,e[3]=l.dialogflowv2.language,e[4]=l.dialogflowv2.welcomemessage,l.dialogflowv2.appdata=e.join(",")}m(l.dialogflowv2)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppdialogflowv2DialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotoif=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotoif.appdata)switch(l.gotoif.appType?l.gotoif.appType.toLowerCase():l.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotoif.appdata.split(",");l.gotoif.key=d[0],l.gotoif.language=d[1],l.gotoif.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotoif.appdata.split(",");l.gotoif.projectId=d[0],l.gotoif.clientEmail=d[1],l.gotoif.privateKey=d[2],l.gotoif.language=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotoif.appdata.split(",");l.gotoif.accesskeyid=d[0],l.gotoif.secretaccesskey=d[1],l.gotoif.lexregion=d[2],l.gotoif.botname=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotoif.appdata.split(",");l.gotoif.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotoif.text=d.slice(1,d.length).join(",");break;case"message":l.gotoif.text=l.gotoif.appdata;break;case"set":l.gotoif.name=l.gotoif.appdata.split("=")[0],l.gotoif.value=l.gotoif.appdata.split("=")[1];break;case"agi":l.gotoif.project=l.gotoif.appdata;break;default:var c=l.gotoif.appdata.split(",");l.gotoif.condition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.gotoif.truepriority=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.gotoif.falsepriority=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}function m(e){n.hide(e)}l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outbounddial"===l.gotoif.appType.toLowerCase()&&(l.gotoif.prefix=l.gotoif.phone?l.gotoif.phone.split("$")[0]:void 0,l.gotoif.callerId=l.gotoif.callerID?"CALLERID(all)="+l.gotoif.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outboundDial"===l.gotoif.appType&&(l.gotoif.phone=i.cutdigits?(l.gotoif.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotoif.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotoif.options+="U(xcally-mixmonitor-context)"):l.gotoif.options=l.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotoif.appType&&"custom"===l.gotoif.appType);else switch((l.gotoif.app||l.gotoif.appType).toLowerCase()){case"set":l.gotoif.appdata=l.gotoif.name+"="+l.gotoif.value;break;case"custom":break;default:e[0]=l.gotoif.condition,e[1]=l.gotoif.truepriority,e[2]=l.gotoif.falsepriority,l.gotoif.appdata=e.join(",")}m(l.gotoif)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppgotoifDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotop.appdata)switch(l.gotop.appType?l.gotop.appType.toLowerCase():l.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotop.appdata.split(",");l.gotop.key=d[0],l.gotop.language=d[1],l.gotop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotop.appdata.split(",");l.gotop.projectId=d[0],l.gotop.clientEmail=d[1],l.gotop.privateKey=d[2],l.gotop.language=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotop.appdata.split(",");l.gotop.accesskeyid=d[0],l.gotop.secretaccesskey=d[1],l.gotop.lexregion=d[2],l.gotop.botname=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotop.appdata.split(",");l.gotop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotop.text=d.slice(1,d.length).join(",");break;case"message":l.gotop.text=l.gotop.appdata;break;case"set":l.gotop.name=l.gotop.appdata.split("=")[0],l.gotop.value=l.gotop.appdata.split("=")[1];break;case"agi":l.gotop.project=l.gotop.appdata;break;default:var c=l.gotop.appdata.split(",");l.gotop.priority=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outbounddial"===l.gotop.appType.toLowerCase()&&(l.gotop.prefix=l.gotop.phone?l.gotop.phone.split("$")[0]:void 0,l.gotop.callerId=l.gotop.callerID?"CALLERID(all)="+l.gotop.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outboundDial"===l.gotop.appType&&(l.gotop.phone=i.cutdigits?(l.gotop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotop.options+="U(xcally-mixmonitor-context)"):l.gotop.options=l.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotop.appType&&"custom"===l.gotop.appType);else switch((l.gotop.app||l.gotop.appType).toLowerCase()){case"set":l.gotop.appdata=l.gotop.name+"="+l.gotop.value;break;case"custom":break;default:e[0]=l.gotop.priority,l.gotop.appdata=e.join(",")}m(l.gotop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppgotopDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom","list"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditOpenchannelAccountAppintervalDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.noop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.noop.appdata)switch(l.noop.appType?l.noop.appType.toLowerCase():l.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.noop.appdata.split(",");l.noop.key=d[0],l.noop.language=d[1],l.noop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.noop.appdata.split(",");l.noop.projectId=d[0],l.noop.clientEmail=d[1],l.noop.privateKey=d[2],l.noop.language=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.noop.appdata.split(",");l.noop.accesskeyid=d[0],l.noop.secretaccesskey=d[1],l.noop.lexregion=d[2],l.noop.botname=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.noop.appdata.split(",");l.noop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.noop.text=d.slice(1,d.length).join(",");break;case"message":l.noop.text=l.noop.appdata;break;case"set":l.noop.name=l.noop.appdata.split("=")[0],l.noop.value=l.noop.appdata.split("=")[1];break;case"agi":l.noop.project=l.noop.appdata;break;default:var c=l.noop.appdata.split(",");l.noop.value=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outbounddial"===l.noop.appType.toLowerCase()&&(l.noop.prefix=l.noop.phone?l.noop.phone.split("$")[0]:void 0,l.noop.callerId=l.noop.callerID?"CALLERID(all)="+l.noop.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outboundDial"===l.noop.appType&&(l.noop.phone=i.cutdigits?(l.noop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.noop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.noop.options+="U(xcally-mixmonitor-context)"):l.noop.options=l.noop.options.replace("U(xcally-mixmonitor-context)",""));if(l.noop.appType&&"custom"===l.noop.appType);else switch((l.noop.app||l.noop.appType).toLowerCase()){case"set":l.noop.appdata=l.noop.name+"="+l.noop.value;break;case"custom":break;default:e[0]=l.noop.value,l.noop.appdata=e.join(",")}m(l.noop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppnoopDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.queue=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.queue.appdata)switch(l.queue.appType?l.queue.appType.toLowerCase():l.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.queue.appdata.split(",");l.queue.key=d[0],l.queue.language=d[1],l.queue.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.queue.appdata.split(",");l.queue.projectId=d[0],l.queue.clientEmail=d[1],l.queue.privateKey=d[2],l.queue.language=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.queue.appdata.split(",");l.queue.accesskeyid=d[0],l.queue.secretaccesskey=d[1],l.queue.lexregion=d[2],l.queue.botname=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.queue.appdata.split(",");l.queue.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.queue.text=d.slice(1,d.length).join(",");break;case"message":l.queue.text=l.queue.appdata;break;case"set":l.queue.name=l.queue.appdata.split("=")[0],l.queue.value=l.queue.appdata.split("=")[1];break;case"agi":l.queue.project=l.queue.appdata;break;default:var c=l.queue.appdata.split(",");l.queue.queue=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.queue.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.queue.queue=300,l.queue.timeout=300;function m(e){n.hide(e)}l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outbounddial"===l.queue.appType.toLowerCase()&&(l.queue.prefix=l.queue.phone?l.queue.phone.split("$")[0]:void 0,l.queue.callerId=l.queue.callerID?"CALLERID(all)="+l.queue.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outboundDial"===l.queue.appType&&(l.queue.phone=i.cutdigits?(l.queue.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.queue.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.queue.options+="U(xcally-mixmonitor-context)"):l.queue.options=l.queue.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.queues,{name:l.queue.queue});n&&(l.queue[_.capitalize("openChannel")+"QueueId"]=n.id);if(l.queue.appType&&"custom"===l.queue.appType);else switch((l.queue.app||l.queue.appType).toLowerCase()){case"set":l.queue.appdata=l.queue.name+"="+l.queue.value;break;case"custom":break;default:e[0]=l.queue.queue,e[1]=l.queue.timeout,l.queue.appdata=e.join(",")}m(l.queue)},l.closeDialog=m,o.hasRole("admin")?s.openchannelQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.openchannelQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:801}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.queues,{id:e.resourceId})}),t=null;if(l.queue&&(t=_.find(l.queues,{name:l.queue.queue})),t&&!_.some(n,["id",t.id])){var a=_.find(l.queues,{id:t.id});a.canSelect=!1,n.push(a)}l.queues=n})}else{var t=[],a=null;l.queue&&(a=_.find(l.queues,{name:l.queue.queue}));for(var i=0;i<l.queues.length;i++)a&&l.queues[i].id===a.id&&(l.queues[i].canSelect=!1,t.push(l.queues[i]));l.queues=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppqueueDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.system=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.system.appdata)switch(l.system.appType?l.system.appType.toLowerCase():l.system.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.system.appdata.split(",");l.system.key=d[0],l.system.language=d[1],l.system.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.system.appdata.split(",");l.system.projectId=d[0],l.system.clientEmail=d[1],l.system.privateKey=d[2],l.system.language=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.system.appdata.split(",");l.system.accesskeyid=d[0],l.system.secretaccesskey=d[1],l.system.lexregion=d[2],l.system.botname=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.system.appdata.split(",");l.system.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.system.text=d.slice(1,d.length).join(",");break;case"message":l.system.text=l.system.appdata;break;case"set":l.system.name=l.system.appdata.split("=")[0],l.system.value=l.system.appdata.split("=")[1];break;case"agi":l.system.project=l.system.appdata;break;default:var c=l.system.appdata.split(",");l.system.command=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.system.variable=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.system.variable="";function m(e){n.hide(e)}l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outbounddial"===l.system.appType.toLowerCase()&&(l.system.prefix=l.system.phone?l.system.phone.split("$")[0]:void 0,l.system.callerId=l.system.callerID?"CALLERID(all)="+l.system.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outboundDial"===l.system.appType&&(l.system.phone=i.cutdigits?(l.system.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.system.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.system.options+="U(xcally-mixmonitor-context)"):l.system.options=l.system.options.replace("U(xcally-mixmonitor-context)",""));if(l.system.appType&&"custom"===l.system.appType);else switch((l.system.app||l.system.appType).toLowerCase()){case"set":l.system.appdata=l.system.name+"="+l.system.value;break;case"custom":break;default:e[0]=l.system.command,e[1]=l.system.variable,l.system.appdata=e.join(",")}m(l.system)},l.closeDialog=m,o.hasRole("admin")?s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1012}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.variables,{id:e.resourceId})}),t=null;if(l.system&&(t=_.find(l.variables,{name:l.system.variable})),t&&!_.some(n,["id",t.id])){var a=_.find(l.variables,{id:t.id});a.canSelect=!1,n.push(a)}l.variables=n})}else{var t=[],a=null;l.system&&(a=_.find(l.variables,{name:l.system.variable}));for(var i=0;i<l.variables.length;i++)a&&l.variables[i].id===a.id&&(l.variables[i].canSelect=!1,t.push(l.variables[i]));l.variables=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppsystemDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.tag=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.tag.appdata)switch(l.tag.appType?l.tag.appType.toLowerCase():l.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.tag.appdata.split(",");l.tag.key=d[0],l.tag.language=d[1],l.tag.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.tag.appdata.split(",");l.tag.projectId=d[0],l.tag.clientEmail=d[1],l.tag.privateKey=d[2],l.tag.language=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.tag.appdata.split(",");l.tag.accesskeyid=d[0],l.tag.secretaccesskey=d[1],l.tag.lexregion=d[2],l.tag.botname=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.tag.appdata.split(",");l.tag.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.tag.text=d.slice(1,d.length).join(",");break;case"message":l.tag.text=l.tag.appdata;break;case"set":l.tag.name=l.tag.appdata.split("=")[0],l.tag.value=l.tag.appdata.split("=")[1];break;case"agi":l.tag.project=l.tag.appdata;break;default:var c=l.tag.appdata.split(",");l.tag.tag=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outbounddial"===l.tag.appType.toLowerCase()&&(l.tag.prefix=l.tag.phone?l.tag.phone.split("$")[0]:void 0,l.tag.callerId=l.tag.callerID?"CALLERID(all)="+l.tag.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outboundDial"===l.tag.appType&&(l.tag.phone=i.cutdigits?(l.tag.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.tag.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.tag.options+="U(xcally-mixmonitor-context)"):l.tag.options=l.tag.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.tags,{name:l.tag.tag});n&&(l.tag.TagId=n.id);if(l.tag.appType&&"custom"===l.tag.appType);else switch((l.tag.app||l.tag.appType).toLowerCase()){case"set":l.tag.appdata=l.tag.name+"="+l.tag.value;break;case"custom":break;default:e[0]=l.tag.tag,l.tag.appdata=e.join(",")}m(l.tag)},l.closeDialog=m,o.hasRole("admin")?s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1008}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.tags,{id:e.resourceId})}),t=null;if(l.tag&&(t=_.find(l.tags,{name:l.tag.tag})),t&&!_.some(n,["id",t.id])){var a=_.find(l.tags,{id:t.id});a.canSelect=!1,n.push(a)}l.tags=n})}else{var t=[],a=null;l.tag&&(a=_.find(l.tags,{name:l.tag.tag}));for(var i=0;i<l.tags.length;i++)a&&l.tags[i].id===a.id&&(l.tags[i].canSelect=!1,t.push(l.tags[i]));l.tags=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtags",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountApptagDialogController",e)}(),function(){"use strict";function e(e,a,n,t,i,s,o,r,l,d,c){var m=this;function u(e){m.openchannelAccountInteractions=e||{count:0,rows:[]};for(var n=0;n<m.openchannelAccountInteractions.rows.length;n+=1){var t=m.openchannelAccountInteractions.rows[n];v(t),t.Owner.name=h(t)}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.openchannelInteraction.get(m.query,u).$promise}function g(e){d.openchannelInteraction.delete({id:e.id}).$promise.then(function(){_.remove(m.openchannelAccountInteractions.rows,{id:e.id}),m.openchannelAccountInteractions.count-=1,m.openchannelAccountInteractions.rows.length||p(),l.success({title:"Interaction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETopenchannelAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(e){e.from?e.contactName=e.from:e.Contact?e.contactName=(e.Contact.firstName||"")+" "+(e.Contact.lastName||""):e.contactName=i.instant("OPENCHANNEL.UNKNOWN")}function h(e){return e.UserId?e.UserId===m.currentUser.id?i.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">":i.instant("DASHBOARDS.NOT_ASSIGNED")}m.currentUser=c.getCurrentUser(),m.openchannelAccount={},m.openchannelAccountInteractions={count:0,rows:[]},m.selectedOpenchannelAccountInteractions=[],m.crudPermissions,m.query={read:"null",closed:"null",sort:"-createdAt",includeAll:"true",limit:10,page:1},m.init=function(e,n,t){m.openchannelAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.OpenchannelAccountId=m.openchannelAccount.id,m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Subject",column:"subject",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},d.tag.get({sort:"name"}).$promise.then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]})},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interaction #")+e.id||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.openchannelInteractionDownload=function(s,e,n){return d.openchannelInteraction.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="interaction"+s.id,a=new Blob(n,{type:e.type});t="openchannel-interaction"+s.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getOpenchannelAccountInteractions=p,m.createOrEditOpenchannelAccountInteraction=function(e,n){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/interactions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelAccount:m.openchannelAccount,interaction:n,interactions:m.openchannelAccountInteractions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.spyopenchannelInteraction=function(e,t){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,n){e.vm.init({id:1,channel:"openchannel",interaction:t,spy:!0},a.$parent.vm.setting)}})},m.openAdvancedSearch=function(){o.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,locals:{fields:m.advancedSearch.fields,color:void 0,storagePath:"openchannel.openchannelAccounts"},fullscreen:!0}).then(function(e){if(m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply){var n="";n+="||OpenchannelAccountId:=$eq["+m.openchannelAccount.id+"]",m.query.search=e.value?e.value+=n:e.value,p()}}).catch(function(e){l.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.exportSelectedOpenchannelAccountInteractions=function(){var e=angular.copy(m.selectedOpenchannelAccountInteractions);return m.selectedOpenchannelAccountInteractions=[],e},m.deleteOpenchannelAccountInteraction=g,m.deleteSelectedOpenchannelAccountInteractions=function(e){var n=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+m.selectedOpenchannelAccountInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedOpenchannelAccountInteractions.forEach(function(e){g(e)}),m.selectedOpenchannelAccountInteractions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.openchannel").controller("OpenchannelAccountInteractionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.openchannelAccountOpenchannelCannedAnswers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.openchannelAccount.getAnswers(m.query,u).$promise}function g(e){d.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(m.openchannelAccountOpenchannelCannedAnswers.rows,{id:e.id}),m.openchannelAccountOpenchannelCannedAnswers.count-=1,m.openchannelAccountOpenchannelCannedAnswers.rows.length||p(),l.success({title:"OpenchannelCannedAnswer deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETopenchannelAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.openchannelAccount={},m.openchannelAccountOpenchannelCannedAnswers={count:0,rows:[]},m.selectedOpenchannelAccountOpenchannelCannedAnswers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,key,value,description",limit:10,page:1},m.init=function(e,n,t){m.openchannelAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.OpenchannelAccountId=m.openchannelAccount.id,m.query.id=m.openchannelAccount.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the openchannelCannedAnswer?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("openchannelCannedAnswer #")+e.id||"openchannelCannedAnswer")+"</b> will be deleted.").ariaLabel("delete openchannelCannedAnswer").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getOpenchannelAccountOpenchannelCannedAnswers=p,m.createOrEditOpenchannelAccountOpenchannelCannedAnswer=function(e,n){o.show({controller:"CreateOrEditOpenchannelCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/openchannelCannedAnswers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelAccount:m.openchannelAccount,openchannelCannedAnswer:n,openchannelCannedAnswers:m.openchannelAccountOpenchannelCannedAnswers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedOpenchannelAccountOpenchannelCannedAnswers=function(){var e=angular.copy(m.selectedOpenchannelAccountOpenchannelCannedAnswers);return m.selectedOpenchannelAccountOpenchannelCannedAnswers=[],e},m.deleteOpenchannelAccountOpenchannelCannedAnswer=g,m.deleteSelectedOpenchannelAccountOpenchannelCannedAnswers=function(e){var n=o.confirm().title("Are you sure want to delete the selected openchannelCannedAnswers?").htmlContent("<b>"+m.selectedOpenchannelAccountOpenchannelCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete openchannelCannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedOpenchannelAccountOpenchannelCannedAnswers.forEach(function(e){g(e)}),m.selectedOpenchannelAccountOpenchannelCannedAnswers=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.openchannel").controller("OpenchannelAccountOpenchannelCannedAnswersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="OPENCHANNEL.EDIT_OPENCHANNELCANNEDANSWER",g.openchannelCannedAnswer=angular.copy(l),g.openchannelCannedAnswers=r,g.newOpenchannelCannedAnswer=!1,g.openchannelCannedAnswer||(g.openchannelCannedAnswer={},g.title="OPENCHANNEL.NEW_OPENCHANNELCANNEDANSWER",g.newOpenchannelCannedAnswer=!0),n.params.id&&(g.openchannelCannedAnswer.OpenchannelAccountId=n.params.id),g.addNewOpenchannelCannedAnswer=function(){g.errors=[],d.cannedAnswer.save(g.openchannelCannedAnswer).$promise.then(function(e){g.openchannelCannedAnswers.unshift(e.toJSON()),o.success({title:"OpenchannelCannedAnswer properly created",msg:g.openchannelCannedAnswer.name?g.openchannelCannedAnswer.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveOpenchannelCannedAnswer=function(){g.errors=[],d.cannedAnswer.update({id:g.openchannelCannedAnswer.id},g.openchannelCannedAnswer).$promise.then(function(e){var n=_.find(g.openchannelCannedAnswers,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"OpenchannelCannedAnswer properly saved!",msg:g.openchannelCannedAnswer.name?g.openchannelCannedAnswer.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteOpenchannelCannedAnswer=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The openchannelCannedAnswer will be deleted.").ariaLabel("Delete OpenchannelCannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cannedAnswer.delete({id:g.openchannelCannedAnswer.id}).$promise.then(function(){_.remove(g.openchannelCannedAnswers,{id:g.openchannelCannedAnswer.id}),o.success({title:"OpenchannelCannedAnswer properly deleted!",msg:(g.openchannelCannedAnswer.name||"openchannelCannedAnswer")+" has been deleted!"}),v(g.openchannelCannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","openchannelCannedAnswers","openchannelCannedAnswer","api","Auth","license","setting","crudPermissions"],angular.module("app.openchannel").controller("CreateOrEditOpenchannelCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.openchannelAccount.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.openchannelAccount=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.OpenchannelAccountId=m.openchannelAccount.id,m.query.id=m.openchannelAccount.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.openchannelAccount.id,field:"OpenchannelAccountId",route:"openchannelAccount"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.openchannel").controller("OpenchannelAccountDispositionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=s,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=n.protocol()+"://"+n.host(),p.openchannelAccount=c||e.params.openchannelAccount||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=e.params.tab||0,p.agentadddialog=function(e,n){t.show({controller:"OpenchannelAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{openchannelAccount:e,openchannelAccounts:p.openchannelAccounts?p.openchannelAccounts.rows:[],crudPermissions:p.crudPermissions,realtime:!1}})},p.alert=l.info,p.gotoOpenchannelAccounts=function(){e.go("app.openchannel.openchannelAccounts",{},{reload:"app.openchannel.openchannelAccounts"})},p.saveOpenchannelAccount=function(){r.openchannelAccount.update({id:p.openchannelAccount.id},p.openchannelAccount).$promise.then(function(){l.success({title:"OpenchannelAccount updated!",msg:p.openchannelAccount.name?p.openchannelAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.lists,{id:e.resourceId})}),t=null;if(p.openchannelAccount&&(t=_.find(p.lists,{id:Number(p.openchannelAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.lists,{id:t.id});a.canSelect=!1,n.push(a)}p.lists=n})}else{var t=[],a=null;p.openchannelAccount&&(a=_.find(p.lists,{id:Number(p.openchannelAccount.ListId)}));for(var i=0;i<p.lists.length;i++)a&&p.lists[i].id===a.id&&(p.lists[i].canSelect=!1,t.push(p.lists[i]));p.lists=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.cmContact.describe({id:p.openchannelAccount.ListId}).$promise.then(function(e){p.fields=[];e=_.values(e.toJSON());for(var n=["id","createdAt","updatedAt","deletedAt","scheduledat","ListId","CompanyId"],t=0;t<e.length;t++)_.includes(n,e[t].columnName)||p.fields.push(e[t])}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_FIELDS",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.pauses,{id:e.resourceId})});p.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),p.pauses=n})}else p.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","openchannelAccount","userProfile","userProfileSection"],angular.module("app.openchannel").controller("OpenchannelAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.openchannelAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="openchannelAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedOpenchannelAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUri,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.openchannel.openchannelAccounts.edit",{id:e.id,openchannelAccount:e,crudPermissions:f.crudPermissions})},f.interactionsgoto=function(e,n){t.go("app.openchannel.openchannelAccounts.edit",{id:e.id,tab:5})},f.agentadddialog=function(e,n){i.show({controller:"OpenchannelAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{openchannelAccount:e,openchannelAccounts:f.openchannelAccounts?f.openchannelAccounts.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("openchannelAccount")+"?").htmlContent("<b>"+(e.name||"openchannelAccount")+"</b> will be deleted.").ariaLabel("delete openchannelAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getOpenchannelAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.openchannelAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="OpenchannelAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditOpenchannelAccount=function(e,n){i.show({controller:"CreateOrEditOpenchannelAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelAccount:n,openchannelAccounts:f.openchannelAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteOpenchannelAccount=y,f.exportSelectedOpenchannelAccounts=function(){var e=angular.copy(f.selectedOpenchannelAccounts);return f.selectedOpenchannelAccounts=[],e},f.deleteSelectedOpenchannelAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected openchannelAccounts?").htmlContent("<b>"+f.selectedOpenchannelAccounts.length+" selected</b> will be deleted.").ariaLabel("delete OpenchannelAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedOpenchannelAccounts.forEach(function(e){y(e)}),f.selectedOpenchannelAccounts=[]})},f.deselectOpenchannelAccounts=function(){f.selectedOpenchannelAccounts=[]},f.selectAllOpenchannelAccounts=function(){f.selectedOpenchannelAccounts=f.openchannelAccounts.rows},g.hasRole("admin")?m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.lists,{id:e.resourceId})}),t=null;if(f.openchannelAccount&&(t=_.find(f.lists,{id:Number(f.openchannelAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.lists,{id:t.id});a.canSelect=!1,n.push(a)}f.lists=n})}else{var t=[],a=null;f.openchannelAccount&&(a=_.find(f.lists,{id:Number(f.openchannelAccount.ListId)}));for(var i=0;i<f.lists.length;i++)a&&f.lists[i].id===a.id&&(f.lists[i].canSelect=!1,t.push(f.lists[i]));f.lists=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.openchannelAccounts=e||{count:0,rows:[]}}function y(e){m.openchannelAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.openchannelAccounts.rows,{id:e.id}),f.openchannelAccounts.count-=1,f.openchannelAccounts.rows.length||f.getOpenchannelAccounts(),p.success({title:_.startCase("OpenchannelAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEopenchannelAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEopenchannelAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getOpenchannelAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","openchannelAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.openchannel").controller("OpenchannelAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="OPENCHANNEL.EDIT_OPENCHANNELQUEUE",g.openchannelQueue=angular.copy(l),g.openchannelQueues=r,g.newOpenchannelQueue=!1,g.openchannelQueue||(g.openchannelQueue={strategy:"beepall",timeout:10},g.title="OPENCHANNEL.NEW_OPENCHANNELQUEUE",g.newOpenchannelQueue=!0),g.addNewOpenchannelQueue=function(){g.errors=[],d.openchannelQueue.save(g.openchannelQueue).$promise.then(function(e){g.openchannelQueues.unshift(e.toJSON()),o.success({title:"OpenchannelQueue properly created",msg:g.openchannelQueue.name?g.openchannelQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveOpenchannelQueue=function(){g.errors=[],d.openchannelQueue.update({id:g.openchannelQueue.id},g.openchannelQueue).$promise.then(function(e){var n=_.find(g.openchannelQueues,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"OpenchannelQueue properly saved!",msg:g.openchannelQueue.name?g.openchannelQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteOpenchannelQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The openchannelQueue will be deleted.").ariaLabel("Delete OpenchannelQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.openchannelQueue.delete({id:g.openchannelQueue.id}).$promise.then(function(){_.remove(g.openchannelQueues,{id:g.openchannelQueue.id}),o.success({title:"OpenchannelQueue properly deleted!",msg:(g.openchannelQueue.name||"openchannelQueue")+" has been deleted!"}),v(g.openchannelQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","openchannelQueues","openchannelQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.openchannel").controller("CreateOrEditOpenchannelQueueDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.openchannelQueue.getAgents({id:c.openchannelQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserOpenchannelQueue?"penalty "+e.UserOpenchannelQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.openchannelQueue=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.openchannelQueue.removeAgents({id:c.openchannelQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.openchannelQueue.addAgents({id:c.openchannelQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("OPENCHANNEL.ALL_AGENTS"),labelSelected:r.instant("OPENCHANNEL.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","openchannelQueue","openchannelQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.openchannel").controller("OpenchannelQueueagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.openchannelQueue.getTeams({id:l.openchannelQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.openchannelQueue=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("OPENCHANNEL.ALL_TEAMS"),labelSelected:t.instant("OPENCHANNEL.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.openchannelQueue.removeTeams({id:l.openchannelQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.openchannelQueue.addTeams({id:l.openchannelQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","openchannelQueue","$translate","Auth","crudPermissions"],angular.module("app.openchannel").controller("OpenchannelQueueteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.openchannelQueue=c||e.params.openchannelQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.teamadddialog=function(e,n){t.show({controller:"OpenchannelQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{openchannelQueue:e,openchannelQueues:u.openchannelQueues?u.openchannelQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){t.show({controller:"OpenchannelQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{openchannelQueue:e,openchannelQueues:u.openchannelQueues?u.openchannelQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoOpenchannelQueues=function(){e.go("app.openchannel.openchannelQueues",{},{reload:"app.openchannel.openchannelQueues"})},u.saveOpenchannelQueue=function(){r.openchannelQueue.update({id:u.openchannelQueue.id},u.openchannelQueue).$promise.then(function(){l.success({title:"OpenchannelQueue updated!",msg:u.openchannelQueue.name?u.openchannelQueue.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","openchannelQueue","userProfileSection"],angular.module("app.openchannel").controller("OpenchannelQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.openchannelQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="openchannelQueues",f.listOrder="",f.listOrderAsc=null,f.selectedOpenchannelQueues=[],f.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"openchannel",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.openchannel.openchannelQueues.edit",{id:e.id,openchannelQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"OpenchannelQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{openchannelQueue:e,openchannelQueues:f.openchannelQueues?f.openchannelQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"OpenchannelQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{openchannelQueue:e,openchannelQueues:f.openchannelQueues?f.openchannelQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("openchannelQueue")+"?").htmlContent("<b>"+(e.name||"openchannelQueue")+"</b> will be deleted.").ariaLabel("delete openchannelQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:810}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.openchannel.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.openchannel.realtime.queues",{})}},f.success=E,f.getOpenchannelQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.openchannelQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="OpenchannelQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditOpenchannelQueue=function(e,n){i.show({controller:"CreateOrEditOpenchannelQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelQueue:n,openchannelQueues:f.openchannelQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteOpenchannelQueue=y,f.exportSelectedOpenchannelQueues=function(){var e=angular.copy(f.selectedOpenchannelQueues);return f.selectedOpenchannelQueues=[],e},f.deleteSelectedOpenchannelQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected openchannelQueues?").htmlContent("<b>"+f.selectedOpenchannelQueues.length+" selected</b> will be deleted.").ariaLabel("delete OpenchannelQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedOpenchannelQueues.forEach(function(e){y(e)}),f.selectedOpenchannelQueues=[]})},f.deselectOpenchannelQueues=function(){f.selectedOpenchannelQueues=[]},f.selectAllOpenchannelQueues=function(){f.selectedOpenchannelQueues=f.openchannelQueues.rows};var b=!0,A=1;function E(e){f.openchannelQueues=e||{count:0,rows:[]}}function y(e){m.openchannelQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.openchannelQueues.rows,{id:e.id}),f.openchannelQueues.count-=1,f.openchannelQueues.rows.length||f.getOpenchannelQueues(),p.success({title:_.startCase("OpenchannelQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEopenchannelQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEopenchannelQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getOpenchannelQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","openchannelQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.openchannel").controller("OpenchannelQueuesController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c,m){var u=this,p=["loggedIn","available","waiting","paused"],g=n(function(){},999);u.currentUser=c.getCurrentUser(),u.queues=s,u.userProfileSection=d&&1==d.count?d.rows[0]:null,u.crudPermissions=c.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.query={id:c.isUser()?u.currentUser.id:void 0,section:c.isUser()?"OpenchannelQueues":void 0,channel:"openchannel",sort:"name",limit:10,page:1},u.getQueues=function(){u.query.offset=(u.query.page-1)*u.query.limit,o.realtime.getQueues(u.query).$promise.then(function(e){u.queues=e}).catch(function(e){l.error({title:i.instant("OPENCHANNEL.OPENCHANNELQUEUES"),msg:e.status?JSON.stringify(e.data):e.toString()})})},u.editQueue=function(e,n){t.show({controller:"CreateOrEditOpenchannelQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelQueue:n,openchannelQueues:u.queues.rows,license:null,setting:null,crudPermissions:u.crudPermissions}})},u.addAgent=function(e,n){t.show({controller:"OpenchannelQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelQueue:n,openchannelQueues:u.queues.rows,realtime:!1,crudPermissions:u.crudPermissions}})},r.on("openchannel_queue:save",function(e){var n=_.find(u.queues.rows,["id",e.id]);n&&_.merge(n,_.pick(e,p))}),r.on("userOpenchannelQueue:save",function(e){var n=_.find(u.queues.rows,["id",e.OpenchannelQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),r.on("userOpenchannelQueue:remove",function(e){var n=_.find(u.queues.rows,["id",e.OpenchannelQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),r.on("user:update",function(t){u.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&m.updateQueue(t,e,n,"openchannel")})}),e.$on("$destroy",function(){r.removeAllListeners("openchannel_queue:save"),r.removeAllListeners("userOpenchannelQueue:remove"),r.removeAllListeners("userOpenchannelQueue:save"),r.removeAllListeners("user:update"),g&&n.cancel(g)})}e.$inject=["$scope","$mdDialog","$document","$interval","$translate","queues","api","socket","toasty","userProfileSection","Auth","realtimeManager"],angular.module("app.openchannel").controller("QueuesOpenchannelRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){return{status:{registered:"green-300-fg icon-checkbox-marked-circle",unregistered:"red-300-fg icon-close-circle",lagged:"red-300-fg icon-close-circle",reachable:"green-300-fg icon-checkbox-marked-circle",unreachable:"red-300-fg icon-close-circle",unknown:"grey-fg icon-minus-circle"},state:{unknown:"grey-fg icon-phone-hangup",not_inuse:"green-300-fg icon-phone-hangup",inuse:"red-300-fg icon-phone-in-talk",busy:"red-300-fg icon-phone-locked",invalid:"grey-fg icon-phone-hangup",unavailable:"grey-fg icon-phone-hangup",ringing:"blue-300-fg icon-phone-incoming",ringinuse:"blue-300-fg icon-phone-incoming",onhold:"blue-300-fg icon-phone-paused"},channelStatus:{ring:"blue-300-fg icon-phone-incoming",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"},channelStatusOut:{ring:"blue-300-fg icon-phone-outgoing",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"}}})}(),function(){"use strict";function e(e,t,n){switch(this.selectedTab=0,t.current.name){case"app.openchannel.realtime.agents":this.selectedTab=0;break;case"app.openchannel.realtime.queues":this.selectedTab=1;break;default:this.selectedTab=0,t.go("app.openchannel.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.openchannel.realtime.agents");break;case 1:t.go("app.openchannel.realtime.queues");break;default:t.go("app.openchannel.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.openchannel").controller("OpenchannelRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this;o.currentUser=s.getCurrentUser(),o.plugin={},o.getTrustedURL=function(){return t.trustAsResourceUrl(o.plugin.adminUrl)},a.plugin.get({id:e.params.id}).$promise.then(function(e){if(e)return o.plugin=e,a.plugin.get({id:o.plugin.id}).$promise}).catch(function(e){o.plugin=void 0})}e.$inject=["$state","$scope","$sce","api","socket","Auth"],angular.module("app.plugins.plugin").controller("PluginController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g){var v=this,h=t(function(){},999);function f(){v.agents.rows.forEach(function(e){g.setAgentStatusDisplayValue(e)})}function b(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.realtime.getAgents(v.query).$promise.then(function(e){v.agents=e,f()}).catch(function(e){c.error({title:s.instant("VOICE.AGENTS"),msg:e.status?JSON.stringify(e.data):e.toString()})})}function A(e){_.remove(v.agents.rows,["id",e.id])}v.currentUser=u.getCurrentUser(),v.channel=n.params.channel,v.queueType=n.params.direction,v.agents=o,v.pauses=r||{count:0,rows:[]},v.license=p,v.userProfileSection=m&&1==m.count?m.rows[0]:null,v.crudPermissions=u.parseCrudPermissions(v.userProfileSection?v.userProfileSection.crudPermissions:null),v.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},v.getAgents=b,v.logout=function(e){return l.user.logout({id:e.id,device:"realtime",agent_id:e.id,agent_name:e.name}).$promise.then(function(){A(e),c.success({title:"Agent logout",msg:e.fullname+" properly logout"})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:s.instant("VOICE.LOGOUT"),msg:e.data?JSON.stringify(e.data.message):e.toString()})})},v.addQueue=function(e,n){a.show({controller:"AgentQueueAddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,channel:v.channel,direction:v.queueType,crudPermissions:v.crudPermissions}})},v.pause=function(e,n){return l.user.pause({id:e.id,type:n}).$promise.catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:s.instant("VOICE.PAUSE"),msg:e.data?JSON.stringify(e.data.message):e.toString()})})},v.unpause=function(e){return l.user.unpause({id:e.id}).$promise.catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:s.instant("VOICE.UNPAUSE"),msg:e.data?JSON.stringify(e.data.message):e.toString()})})},v.manageScreenRecording=function(e,n){return l.user.update({id:e.id},{screenrecording:n}).$promise.catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:s.instant("VOICE.SCREENRECORDING"),msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.on("user:save",function(e){var n=_.find(v.agents.rows,["id",e.id]);n&&(_.merge(n,e),n.globalStatus=g.getAgentStatus(n),g.setAgentStatusDisplayValue(n))}),d.on("user:update",function(e){var n=_.find(v.agents.rows,["id",e.id]);if(n){if(!1===e.online)return A(n);_.merge(n,e),n.globalStatus=g.getAgentStatus(n),g.setAgentStatusDisplayValue(n)}else e.online&&b()}),d.on("user:agentconnect",function(e){var n=_.find(v.agents.rows,["id",e.id]);if(n){if(!e.agentconnected)return;_.merge(n,_.pick(e,["queue","destconnectedlinenum","routealias"]))}}),d.on("user:agentcomplete",function(e){if("ATTENDED"===e.transfer)return;var n=_.find(v.agents.rows,["id",e.id]);n&&(delete n.queue,delete n.destconnectedlinenum,delete n.routealias)}),f(),e.$on("$destroy",function(){d.removeAllListeners("user:save"),d.removeAllListeners("user:update"),d.removeAllListeners("user:agentconnect"),d.removeAllListeners("user:agentcomplete"),h&&t.cancel(h)})}e.$inject=["$scope","$state","$interval","$mdDialog","$document","$translate","agents","pauses","api","socket","toasty","userProfileSection","Auth","license","realtimeManager"],angular.module("app.realtime").controller("AgentsRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g){var v=this;v.license=p,v.setting=g,v.currentUser=u.getCurrentUser(),v.cloudProviders=l||{count:0,rows:[]},v.table="cloudProviders",v.listOrder="",v.listOrderAsc=null,v.selectedAiTools=[],v.query={fields:"createdAt,updatedAt,id,name,service,data2,data1",sort:"-updatedAt",limit:10,page:1},v.arrayservice=_.keyBy([{option:"AmazonAWS",value:"'AmazonAWS'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editdialog=function(e,n){i.show({controller:"CreateOrEditCloudProviderDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/cloudProviders/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{cloudProvider:e,cloudProviders:v.cloudProviders.rows,license:v.license,setting:null,crudPermissions:v.crudPermissions}})},v.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("cloudProvider")+"?").htmlContent("<b>"+(e.name||"cloudProvider")+"</b> will be deleted.").ariaLabel("delete cloudProvider").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){A(e)},function(){console.log("CANCEL")})},v.success=b,v.getAiTools=function(){v.query.offset=(v.query.page-1)*v.query.limit,u.hasRole("admin")?v.promise=d.cloudProvider.get(v.query,b).$promise:(v.query.id=v.userProfile.id,v.query.section="AiTools",v.promise=d.userProfile.getResources(v.query,b).$promise)},v.createOrEditCloudProvider=function(e,n){i.show({controller:"CreateOrEditCloudProviderDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/cloudProviders/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{cloudProvider:n,cloudProviders:v.cloudProviders.rows,license:v.license,setting:v.setting,crudPermissions:v.crudPermissions}})},v.deleteCloudProvider=A,v.exportSelectedAiTools=function(){var e=angular.copy(v.selectedAiTools);return v.selectedAiTools=[],e},v.deleteSelectedAiTools=function(e){var n=i.confirm().title("Are you sure want to delete the selected cloudProviders?").htmlContent("<b>"+v.selectedAiTools.length+" selected</b> will be deleted.").ariaLabel("delete CloudProviders").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){v.selectedAiTools.forEach(function(e){A(e)}),v.selectedAiTools=[]})},v.deselectAiTools=function(){v.selectedAiTools=[]},v.selectAllAiTools=function(){v.selectedAiTools=v.cloudProviders.rows};var h=!0,f=1;function b(e){v.cloudProviders=e||{count:0,rows:[]}}function A(e){d.cloudProvider.delete({id:e.id}).$promise.then(function(){_.remove(v.cloudProviders.rows,{id:e.id}),v.cloudProviders.count-=1,v.cloudProviders.rows.length||v.getAiTools(),m.success({title:_.startCase("CloudProvider")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcloudProvider"}];for(var n=0;n<e.data.errors.length;n++)m.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEcloudProvider",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){h?o(function(){h=!1}):(n||(f=v.query.page),e!==n&&(v.query.page=1),e||(v.query.page=f),v.getAiTools())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","cloudProviders","api","msUtils","toasty","Auth","license","setting"],angular.module("app.settings").controller("CloudProvidersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(e){a.hide(e)}p.currentUser=c.getCurrentUser(),p.errors=[],p.setting=u,p.license=m,p.hasModulePermissions={},p.passwordPattern=p.setting&&p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.title="SETTINGS.EDIT_CLOUDPROVIDER",p.cloudProvider=angular.copy(l),p.cloudProviders=r,p.newCloudProvider=!1,p.cloudProvider||(p.cloudProvider={},p.title="SETTINGS.NEW_CLOUDPROVIDER",p.newCloudProvider=!0),p.addNewCloudProvider=function(){p.errors=[],d.cloudProvider.save(p.cloudProvider).$promise.then(function(e){p.cloudProviders.unshift(e.toJSON()),o.success({title:"CloudProvider properly created",msg:p.cloudProvider.name?p.cloudProvider.name+" has been created!":""}),g(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cloudProvider.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cloudProvider.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.saveCloudProvider=function(){p.errors=[],d.cloudProvider.update({id:p.cloudProvider.id},p.cloudProvider).$promise.then(function(e){var n=_.find(p.cloudProviders,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"CloudProvider properly saved!",msg:p.cloudProvider.name?p.cloudProvider.name+" has been saved!":""}),g(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cloudProvider.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cloudProvider.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.deleteCloudProvider=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The cloudProvider will be deleted.").ariaLabel("Delete CloudProvider").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cloudProvider.delete({id:p.cloudProvider.id}).$promise.then(function(){_.remove(p.cloudProviders,{id:p.cloudProvider.id}),o.success({title:"CloudProvider properly deleted!",msg:(p.cloudProvider.name||"cloudProvider")+" has been deleted!"}),g(p.cloudProvider)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cloudProvider.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cloudProvider.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},p.getDateFromString=function(e){return null===e?void 0:new Date(e)},p.closeDialog=g}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","cloudProviders","cloudProvider","api","Auth","license","setting"],angular.module("app.settings").controller("CreateOrEditCloudProviderDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="SETTINGS.EDIT_CUSTOMIZATION",g.customization=angular.copy(l),g.customizations=r,g.newCustomization=!1,g.customization||(g.customization={},g.title="SETTINGS.NEW_CUSTOMIZATION",g.newCustomization=!0),g.addNewCustomization=function(){g.errors=[],d.setting.save(g.customization).$promise.then(function(e){g.customizations.unshift(e.toJSON()),o.success({title:"Customization properly created",msg:g.customization.name?g.customization.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.setting.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveCustomization=function(){g.errors=[],d.setting.update({id:g.customization.id},g.customization).$promise.then(function(e){var n=_.find(g.customizations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Customization properly saved!",msg:g.customization.name?g.customization.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.setting.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteCustomization=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The customization will be deleted.").ariaLabel("Delete Customization").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.setting.delete({id:g.customization.id}).$promise.then(function(){_.remove(g.customizations,{id:g.customization.id}),o.success({title:"Customization properly deleted!",msg:(g.customization.name||"customization")+" has been deleted!"}),v(g.customization)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.setting.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","customizations","customization","api","Auth","license","setting","crudPermissions"],angular.module("app.settings").controller("CreateOrEditCustomizationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;s.currentUser=i.getCurrentUser(),s.license=a,s.customizations=e,s.customization={},s.customizations&&s.customizations.rows&&s.customizations.rows.length&&(s.customization=s.customizations.rows[0]),s.saveCustomization=function(){s.customization.id?n.setting.update({id:s.customization.id},s.customization).$promise.then(function(){t.success({title:"Customization updated!",msg:s.customization.name?s.customization.name+" has been updated!":""})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsetting",msg:e.data?JSON.stringify(e.data):e.toString()})}):n.setting.save(s.customization).$promise.then(function(e){_.merge(s.customization,e),t.success({title:"Customization updated!",msg:s.customization.name?s.customization.name+" has been updated!":""})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsetting",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["customizations","api","toasty","license","Auth"],angular.module("app.settings").controller("CustomizationsController",e)}(),function(){"use strict";function e(e,a){var i=this;i.customization={},i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg","ico"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.customization.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.customization.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e){i.customization=angular.copy(e),i.ngFlowOptions.target="/api/settings/1/favicon".replace(":id",i.customization.id),i.customization.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.settings").controller("CustomizationfaviconController",e)}(),function(){"use strict";function e(e,a){var i=this;i.customization={},i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.customization.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.customization.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e){i.customization=angular.copy(e),i.ngFlowOptions.target="/api/settings/1/logo".replace(":id",i.customization.id),i.customization.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.settings").controller("CustomizationlogoController",e)}(),function(){"use strict";function e(e,a){var i=this;i.customization={},i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.customization.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.customization.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e){i.customization=angular.copy(e),i.ngFlowOptions.target="/api/settings/1/logo_login".replace(":id",i.customization.id),i.customization.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.settings").controller("CustomizationlogologinController",e)}(),function(){"use strict";function e(e,a){var i=this;i.customization={},i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.customization.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.customization.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e){i.customization=angular.copy(e),i.ngFlowOptions.target="/api/settings/1/preferred".replace(":id",i.customization.id),i.customization.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.settings").controller("CustomizationpreferredController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="SETTINGS.EDIT_GENERAL",g.general=angular.copy(l),g.generals=r,g.newGeneral=!1,g.general||(g.general={min_internal:1e3,chatTimeout:30,phoneBarAutoUpdater:!0,phoneBarAutoUpdaterUrl:"https://www.xcally.com/bar/phonebar/autoupdater.xml",splitSizeCsv:5e3,splitSizePdf:1e3,splitSizeXlsx:5e3,messagesAlignment:"alternate",phoneBarRememberMeEnabled:!0,allowedLoginAttempts:5,blockDuration:10,loginMailFrequency:10,enforcePasswordHistory:!0,passwordHistoryLimit:3},g.title="SETTINGS.NEW_GENERAL",g.newGeneral=!0),g.addNewGeneral=function(){g.errors=[],d.setting.save(g.general).$promise.then(function(e){g.generals.unshift(e.toJSON()),o.success({title:"General properly created",msg:g.general.name?g.general.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.setting.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveGeneral=function(){g.errors=[],d.setting.update({id:g.general.id},g.general).$promise.then(function(e){var n=_.find(g.generals,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"General properly saved!",msg:g.general.name?g.general.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.setting.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteGeneral=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The general will be deleted.").ariaLabel("Delete General").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.setting.delete({id:g.general.id}).$promise.then(function(){_.remove(g.generals,{id:g.general.id}),o.success({title:"General properly deleted!",msg:(g.general.name||"general")+" has been deleted!"}),v(g.general)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.setting.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,d.cloudProvider.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){g.cloudProviders=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CLOUDPROVIDERS",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","generals","general","api","Auth","license","setting","crudPermissions"],angular.module("app.settings").controller("CreateOrEditGeneralDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;s.currentUser=i.getCurrentUser(),s.license=a,s.generals=e,s.general={},s.generals&&s.generals.rows&&s.generals.rows.length&&(s.general=s.generals.rows[0]),_.isNil(s.general.privacyPolicyEmail)||(s.general.enablePrivacyPolicyEmail=!0),_.isNil(s.general.privacyPolicyName)||(s.general.enablePrivacyPolicyName=!0),_.isNil(s.general.privacyPolicyNumber)||(s.general.enablePrivacyPolicyNumber=!0),n.cloudProvider.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){s.cloudProviders=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CLOUDPROVIDERS",msg:e.data?JSON.stringify(e.data):e.toString()})}),s.saveGeneral=function(){s.general.enablePrivacyPolicyEmail||(s.general.privacyPolicyEmail=null),s.general.enablePrivacyPolicyNumber||(s.general.privacyPolicyNumber=null),s.general.enablePrivacyPolicyName||(s.general.privacyPolicyName=null),s.general.id?n.setting.update({id:s.general.id},s.general).$promise.then(function(){t.success({title:"General updated!",msg:s.general.name?s.general.name+" has been updated!":""})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsetting",msg:e.data?JSON.stringify(e.data):e.toString()})}):n.setting.save(s.general).$promise.then(function(e){_.merge(s.general,e),t.success({title:"General updated!",msg:s.general.name?s.general.name+" has been updated!":""})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsetting",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.onPrivacyPolicyChange=function(e){switch(e){case"email":s.general.enablePrivacyPolicyEmail&&!s.general.privacyPolicyEmail&&(s.general.privacyPolicyEmail=0);break;case"name":s.general.enablePrivacyPolicyName&&!s.general.privacyPolicyName&&(s.general.privacyPolicyName=0);break;case"number":s.general.enablePrivacyPolicyNumber&&!s.general.privacyPolicyNumber&&(s.general.privacyPolicyNumber=0)}}}e.$inject=["generals","api","toasty","license","Auth"],angular.module("app.settings").controller("GeneralsController",e)}(),function(){"use strict";function e(n,t,a,i,e,s){var o=this;o.license=i||{},o.agents=0,o.users=0,o.telephones=0,o.channels=[{name:"voice",icon:"icon-phone"},{name:"chat",icon:"icon-hangouts"},{name:"mail",icon:"icon-email"},{name:"messaging",icon:"icon-message-text"},{name:"fax",icon:"icon-deskphone"},{name:"openchannel",icon:"icon-google-earth"},{name:"whatsapp",icon:"icon-whatsapp"}],o.modules=[{name:"cm",icon:"icon-account-circle"},{name:"dialer",icon:"icon-crosshairs"},{name:"jscripty",icon:"icon-console"}],o.addons=[{name:"webrtc",icon:"icon-server-plus"},{name:"jaws",icon:"icon-fish"},{name:"custom",icon:"icon-table-edit"},{name:"screenrecording",icon:"icon-video"},{name:"ai",icon:"icon-text-to-speech"}],o.sessions=[{name:"callysquare",icon:"icon-sitemap",restart:!0,label:"channels",enabled:"voice"},{name:"virtual",icon:"icon-dots-horizontal",restart:!1,label:"sessions",enabled:"chat"}],o.others=[{name:"update",icon:"icon-cloud-download"}],o.requestLicense=function(e){t.show({controller:"RequestLicenseDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/license/request/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{license:i,channels:o.channels,modules:o.modules,addons:o.addons,sessions:o.sessions,others:o.others}})},o.updateLicense=function(e){t.show({controller:"UpdateLicenseDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/license/update/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{license:i}})},o.gotoProcess=function(e){a.go("app.settings.system",{tab:1})},s.user.get({fields:"id",role:"agent",online:!0}).$promise.then(function(e){return o.agents=e&&e.count?e.count:0,s.user.get({fields:"id",role:"user,admin"}).$promise}).then(function(e){return o.users=e&&e.count?e.count:0,s.user.get({fields:"id",role:"telephone"}).$promise}).then(function(e){o.telephones=e&&e.count?e.count:0}).catch(function(e){console.log(e)})}e.$inject=["$document","$mdDialog","$state","license","toasty","api"],angular.module("app.settings.license").controller("LicenseController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(){e.hide()}m.errors=[],m.user=d.getCurrentUser(),m.license=angular.copy(t),m.channels=a,m.modules=i,m.addons=s,m.sessions=o,m.others=r,m.license.name=m.user.fullname,m.license.email=m.user.email,m.sendRequest=function(){for(var e in m.errors=[],m.table="||FIELD||OLD||NEW||\n",m.license)m.license.hasOwnProperty(e)&&!_.includes(["$promise","$resolved"],e)&&(t[e]===m.license[e]?m.table+="|"+e+"|"+(void 0!==t[e]?t[e]:"")+"|"+m.license[e]+"|\n":m.table+="|"+e+"|{color:red}"+(void 0!==t[e]?t[e]:"")+"{color}|*"+m.license[e]+"*|\n");l.jira.save({key:"MOTLICENSE",summary:"Motion License Request",description:m.table,issuetype:"License Request"}).$promise.then(function(e){n.success({title:"Request sent!",msg:c.instant("SETTINGS.LICENSE_REQUEST_SENT"),timeout:15e3}),u()}).catch(function(e){console.error(e),m.errors=[{message:c.instant("SETTINGS.JIRA_ERROR_MESSAGE"),type:"api.jira"}]})},m.closeDialog=u}e.$inject=["$mdDialog","toasty","license","channels","modules","addons","sessions","others","api","Auth","$translate"],angular.module("app.settings.license").controller("RequestLicenseDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;s.errors=[],s.license=angular.copy(t),s.licenseKey,s.updateLicense=function(){return a.license.update({id:1,key:s.licenseKey}).$promise.then(function(e){e&&(e.demo?n.error({title:"License update failed!",msg:"Invalid license key"}):n.success({title:"License properly updated!",msg:"The license has been updated!"}))}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATElicense",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","toasty","license","api","$translate"],angular.module("app.settings.license").controller("UpdateLicenseDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(e){a.hide(e)}p.currentUser=c.getCurrentUser(),p.errors=[],p.setting=u,p.license=m,p.hasModulePermissions={},p.passwordPattern=p.setting&&p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.title="SETTINGS.EDIT_NETWORK",p.network=angular.copy(l),p.networks=r,p.newNetwork=!1,p.network||(p.network={type:"localnet"},p.title="SETTINGS.NEW_NETWORK",p.newNetwork=!0),p.addNewNetwork=function(){p.errors=[],d.network.save(p.network).$promise.then(function(e){p.networks.unshift(e.toJSON()),o.success({title:"Network properly created",msg:p.network.name?p.network.name+" has been created!":""}),g(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.network.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.network.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.saveNetwork=function(){p.errors=[],d.network.update({id:p.network.id},p.network).$promise.then(function(e){var n=_.find(p.networks,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Network properly saved!",msg:p.network.name?p.network.name+" has been saved!":""}),g(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.network.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.network.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.deleteNetwork=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The network will be deleted.").ariaLabel("Delete Network").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.network.delete({id:p.network.id}).$promise.then(function(){_.remove(p.networks,{id:p.network.id}),o.success({title:"Network properly deleted!",msg:(p.network.name||"network")+" has been deleted!"}),g(p.network)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.network.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.network.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},p.getDateFromString=function(e){return null===e?void 0:new Date(e)},p.closeDialog=g}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","networks","network","api","Auth","license","setting"],angular.module("app.settings").controller("CreateOrEditNetworkDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g){var v=this;v.license=p,v.setting=g,v.currentUser=u.getCurrentUser(),v.networks=l||{count:0,rows:[]},v.table="networks",v.listOrder="",v.listOrderAsc=null,v.selectedNetworks=[],v.query={fields:"createdAt,updatedAt,id,type,value,username,password",sort:"-updatedAt",limit:10,page:1},v.arraytype=_.keyBy([{option:"LocalNET",value:"'localnet'"},{option:"ExternIP",value:"'externip'"},{option:"Turn",value:"'turn'"},{option:"Stun",value:"'stun'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editdialog=function(e,n){i.show({controller:"CreateOrEditNetworkDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/networks/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{network:e,networks:v.networks.rows,license:v.license,setting:null,crudPermissions:v.crudPermissions}})},v.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("network")+"?").htmlContent("<b>"+(e.name||"network")+"</b> will be deleted.").ariaLabel("delete network").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){A(e)},function(){console.log("CANCEL")})},v.success=b,v.getNetworks=function(){v.query.offset=(v.query.page-1)*v.query.limit,u.hasRole("admin")?v.promise=d.network.get(v.query,b).$promise:(v.query.id=v.userProfile.id,v.query.section="Networks",v.promise=d.userProfile.getResources(v.query,b).$promise)},v.createOrEditNetwork=function(e,n){i.show({controller:"CreateOrEditNetworkDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/networks/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{network:n,networks:v.networks.rows,license:v.license,setting:v.setting,crudPermissions:v.crudPermissions}})},v.deleteNetwork=A,v.exportSelectedNetworks=function(){var e=angular.copy(v.selectedNetworks);return v.selectedNetworks=[],e},v.deleteSelectedNetworks=function(e){var n=i.confirm().title("Are you sure want to delete the selected networks?").htmlContent("<b>"+v.selectedNetworks.length+" selected</b> will be deleted.").ariaLabel("delete Networks").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){v.selectedNetworks.forEach(function(e){A(e)}),v.selectedNetworks=[]})},v.deselectNetworks=function(){v.selectedNetworks=[]},v.selectAllNetworks=function(){v.selectedNetworks=v.networks.rows};var h=!0,f=1;function b(e){v.networks=e||{count:0,rows:[]}}function A(e){d.network.delete({id:e.id}).$promise.then(function(){_.remove(v.networks.rows,{id:e.id}),v.networks.count-=1,v.networks.rows.length||v.getNetworks(),m.success({title:_.startCase("Network")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEnetwork"}];for(var n=0;n<e.data.errors.length;n++)m.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEnetwork",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){h?o(function(){h=!1}):(n||(f=v.query.page),e!==n&&(v.query.page=1),e||(v.query.page=f),v.getNetworks())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","networks","api","msUtils","toasty","Auth","license","setting"],angular.module("app.settings").controller("NetworksController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="SETTINGS.EDIT_SMTP",g.smtp=angular.copy(l),g.smtps=r,g.newSmtp=!1,g.smtp||(g.smtp={service:!0},g.title="SETTINGS.NEW_SMTP",g.newSmtp=!0),g.addNewSmtp=function(){g.errors=[],d.mailAccount.save(g.smtp).$promise.then(function(e){g.smtps.unshift(e.toJSON()),o.success({title:"Smtp properly created",msg:g.smtp.name?g.smtp.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSmtp=function(){g.errors=[],d.mailAccount.update({id:g.smtp.id},g.smtp).$promise.then(function(e){var n=_.find(g.smtps,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Smtp properly saved!",msg:g.smtp.name?g.smtp.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSmtp=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The smtp will be deleted.").ariaLabel("Delete Smtp").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.mailAccount.delete({id:g.smtp.id}).$promise.then(function(){_.remove(g.smtps,{id:g.smtp.id}),o.success({title:"Smtp properly deleted!",msg:(g.smtp.name||"smtp")+" has been deleted!"}),v(g.smtp)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","smtps","smtp","api","Auth","license","setting","crudPermissions"],angular.module("app.settings").controller("CreateOrEditSmtpDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;s.currentUser=i.getCurrentUser(),s.license=a,s.smtps=e,s.smtp={},s.smtps&&s.smtps.rows&&s.smtps.rows.length?s.smtp=s.smtps.rows[0]:s.smtp={service:!0,Smtp:{service:null}},s.saveSmtp=function(){s.smtp.id?n.mailAccount.update({id:s.smtp.id},s.smtp).$promise.then(function(){t.success({title:"Smtp updated!",msg:s.smtp.name?s.smtp.name+" has been updated!":""})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data):e.toString()})}):n.mailAccount.save(s.smtp).$promise.then(function(e){_.merge(s.smtp,e),t.success({title:"Smtp updated!",msg:s.smtp.name?s.smtp.name+" has been updated!":""})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.verifySmtp=function(){s.smtp.id&&n.mailAccount.verifySmtp({id:s.smtp.id}).$promise.then(function(){t.success({title:"Smtp verified!",msg:s.smtp.name?s.smtp.name+" has been verified!":""})}).catch(function(e){t.error({title:"Smtp not verified! Remember to save before to verify!",msg:e.data?JSON.stringify(e.data):e.toString(),timeout:1e4})})}}e.$inject=["smtps","api","toasty","license","Auth"],angular.module("app.settings").controller("SmtpController",e)}(),function(){"use strict";function e(e,i,s,n,t,a,o,r){var l,d=this;d.system=t||{},d.processes=a?a.rows:[],d.processLimit=7,d.selectedTab=n.params.tab||0,d.getInfo=function(){return r.system.get().$promise.then(function(e){_.merge(d.system,e)}).catch(d.cancelInterval)},d.getProcesses=function(){return r.pm2.get().$promise.then(function(e){_.merge(d.processes,e?e.rows:[])}).catch(d.cancelInterval)},d.cancelInterval=function(e){i.cancel(l)},d.updateProcess=function(e,n,t){var a=s.confirm().title("Would you like to change the status of the process #"+n+"?").textContent("The status will be changed to: "+t.toUpperCase()).ariaLabel("Lucky day").targetEvent(e).ok("Ok").cancel("Cancel");s.show(a).then(function(){return r.pm2.update({id:n,status:t})}).then(function(){i(d.getProcesses,1e3,1)}).then(function(){o.success({title:"Process updated!",msg:"Status properly changed to: "+t})})},l=i(d.getInfo,5e3),e.$on("$destroy",function(){d.cancelInterval()})}e.$inject=["$scope","$interval","$mdDialog","$state","system","processes","toasty","api"],angular.module("app.settings.system").controller("SystemController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;s.title="SETTINGS.UPDATE",s.progress=0,s.updating=!0,s.output="Waiting...",s.success=!0,s.interval=n(function(){s.progress<90&&(s.progress+=1)},1e3),s.closeDialog=function(){e.hide()},s.reload=function(){t.location.reload()},s.stopInterval=function(){angular.isDefined(s.interval)&&(n.cancel(s.interval),s.interval=void 0);s.progress=100,s.updating=!1},i.version.fetch().$promise.then(function(e){return s.output=e.output+"...",i.version.reset().$promise}).then(function(e){return s.output=e.output+"...",i.version.pull().$promise}).then(function(e){return s.output=e.output+"...",i.version.migrations().$promise}).then(function(e){return s.output=e.output+"...",i.version.restart().$promise}).then(function(e){s.output="Waiting to restart motion...",a(function(){s.stopInterval()},3e4)}).catch(function(e){s.success=!1,s.stopInterval(),s.output=JSON.stringify(e)})}e.$inject=["$mdDialog","$interval","$window","$timeout","api"],angular.module("app.settings").controller("UpdateDialogController",e)}(),function(){"use strict";function e(t,e,a,n,i){this.version=n||{},this.updateConfirm=function(e){var n=t.confirm().title("Would you like to update your system?").htmlContent('The system request time for the update should be below 1 minute.<br><br>Do you agree the terms of this <a href="http://www.xcally.com/support/eula-xcally-license-en.pdf" target="_blank">End User License Agreement<a>?').ariaLabel("").targetEvent(e).clickOutsideToClose(!0).parent(angular.element(a.body)).ok("I agree").cancel("Disagree");t.show(n).then(function(){t.show({controller:"UpdateDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/updates/update/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!1})})}}e.$inject=["$mdDialog","$interval","$document","version","toasty"],angular.module("app.settings").controller("UpdatesController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c,m){var u=this,p=["loggedIn","available","waiting","paused"],g=n(function(){},999);u.currentUser=c.getCurrentUser(),u.queues=s,u.userProfileSection=d&&1==d.count?d.rows[0]:null,u.crudPermissions=c.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.query={id:c.isUser()?u.currentUser.id:void 0,section:c.isUser()?"SmsQueues":void 0,channel:"sms",sort:"name",limit:10,page:1},u.getQueues=function(){u.query.offset=(u.query.page-1)*u.query.limit,o.realtime.getQueues(u.query).$promise.then(function(e){u.queues=e}).catch(function(e){l.error({title:i.instant("SMS.SMSQUEUES"),msg:e.status?JSON.stringify(e.data):e.toString()})})},u.editQueue=function(e,n){t.show({controller:"CreateOrEditSmsQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsQueue:n,smsQueues:u.queues.rows,license:null,setting:null,crudPermissions:u.crudPermissions}})},u.addAgent=function(e,n){t.show({controller:"SmsQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsQueue:n,smsQueues:u.queues.rows,realtime:!1,crudPermissions:u.crudPermissions}})},r.on("sms_queue:save",function(e){var n=_.find(u.queues.rows,["id",e.id]);n&&_.merge(n,_.pick(e,p))}),r.on("userSmsQueue:save",function(e){var n=_.find(u.queues.rows,["id",e.SmsQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),r.on("userSmsQueue:remove",function(e){var n=_.find(u.queues.rows,["id",e.SmsQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),r.on("user:update",function(t){u.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&m.updateQueue(t,e,n,"sms")})}),e.$on("$destroy",function(){r.removeAllListeners("sms_queue:save"),r.removeAllListeners("userSmsQueue:remove"),r.removeAllListeners("userSmsQueue:save"),r.removeAllListeners("user:update"),g&&n.cancel(g)})}e.$inject=["$scope","$mdDialog","$document","$interval","$translate","queues","api","socket","toasty","userProfileSection","Auth","realtimeManager"],angular.module("app.sms").controller("QueuesSmsRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){return{status:{registered:"green-300-fg icon-checkbox-marked-circle",unregistered:"red-300-fg icon-close-circle",lagged:"red-300-fg icon-close-circle",reachable:"green-300-fg icon-checkbox-marked-circle",unreachable:"red-300-fg icon-close-circle",unknown:"grey-fg icon-minus-circle"},state:{unknown:"grey-fg icon-phone-hangup",not_inuse:"green-300-fg icon-phone-hangup",inuse:"red-300-fg icon-phone-in-talk",busy:"red-300-fg icon-phone-locked",invalid:"grey-fg icon-phone-hangup",unavailable:"grey-fg icon-phone-hangup",ringing:"blue-300-fg icon-phone-incoming",ringinuse:"blue-300-fg icon-phone-incoming",onhold:"blue-300-fg icon-phone-paused"},channelStatus:{ring:"blue-300-fg icon-phone-incoming",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"},channelStatusOut:{ring:"blue-300-fg icon-phone-outgoing",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"}}})}(),function(){"use strict";function e(e,t,n){switch(this.selectedTab=0,t.current.name){case"app.sms.realtime.agents":this.selectedTab=0;break;case"app.sms.realtime.queues":this.selectedTab=1;break;default:this.selectedTab=0,t.go("app.sms.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.sms.realtime.agents");break;case 1:t.go("app.sms.realtime.queues");break;default:t.go("app.sms.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.sms").controller("SmsRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="SMS.EDIT_SMSACCOUNT",g.smsAccount=angular.copy(l),g.smsAccounts=r,g.newSmsAccount=!1,g.smsAccount||(g.smsAccount={remote:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():""),type:"twilio",waitForTheAssignedAgent:10,notificationSound:!0,queueTransferTimeout:300,agentTransferTimeout:300},g.title="SMS.NEW_SMSACCOUNT",g.newSmsAccount=!0),n.params.id&&(g.smsAccount.SmsAccountId=n.params.id),g.addNewSmsAccount=function(){g.errors=[],d.smsAccount.save(g.smsAccount).$promise.then(function(e){g.smsAccounts.unshift(e.toJSON()),o.success({title:"SmsAccount properly created",msg:g.smsAccount.name?g.smsAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.smsAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSmsAccount=function(){g.errors=[],d.smsAccount.update({id:g.smsAccount.id},g.smsAccount).$promise.then(function(e){var n=_.find(g.smsAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"SmsAccount properly saved!",msg:g.smsAccount.name?g.smsAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.smsAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSmsAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The smsAccount will be deleted.").ariaLabel("Delete SmsAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.smsAccount.delete({id:g.smsAccount.id}).$promise.then(function(){_.remove(g.smsAccounts,{id:g.smsAccount.id}),o.success({title:"SmsAccount properly deleted!",msg:(g.smsAccount.name||"smsAccount")+" has been deleted!"}),v(g.smsAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.smsAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.lists,{id:e.resourceId})}),t=null;if(g.smsAccount&&(t=_.find(g.lists,{id:Number(g.smsAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.lists,{id:t.id});a.canSelect=!1,n.push(a)}g.lists=n})}else{var t=[],a=null;g.smsAccount&&(a=_.find(g.lists,{id:Number(g.smsAccount.ListId)}));for(var i=0;i<g.lists.length;i++)a&&g.lists[i].id===a.id&&(g.lists[i].canSelect=!1,t.push(g.lists[i]));g.lists=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","smsAccounts","smsAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.sms").controller("CreateOrEditSmsAccountDialogController",e)}(),function(){"use strict";function e(o,i,a,s,e){var r=this;function n(e,n){if(r.smsAccountApps.rows.length){var t=r.smsAccountApps.rows[n]?r.smsAccountApps.rows[n]:r.smsAccountApps.rows[0];i.show({controller:"EditSmsAccountApp"+(t.appType||t.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/apps/"+(t.appType||t.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsAccountApp:t,smsAccount:r.smsAccount,crudPermissions:r.crudPermissions}}).then(function(e){e&&(e.id?r.smsAccountApps.rows[n]=e:r.smsAccountApps.rows.splice(n,0,e),l())}).catch(function(e){e&&s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function l(){for(var e=1,n=[],t=0;t<r.smsAccountApps.rows.length;t++,0){var a=r.smsAccountApps.rows[t],i=[],s=[];a.intervals="*,*,*,*"!==a.interval?[a.interval]:a.IntervalId?_.map(_.filter(r.intervals.rows,{IntervalId:a.IntervalId}),"interval"):[],a.context=r.smsAccount.context,a.exten=r.smsAccount.exten,a.type&&(a.type=a.type.toLowerCase()),a.priority=i.length?_.last(i).priority+1:e,e=(s.length?_.last(s).priority:a.priority)+1,n=_.concat(n,i,[a],s)}o.smsAccount.addApplications({id:r.smsAccount.id},_.sortBy(n,"priority")).$promise.then(function(e){r.smsAccountApps.rows=e.rows}).catch(function(e){console.error(e)})}function t(e){r.smsAccountApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.smsAccount={},r.smsAccountApps={count:0,rows:[]},r.selectedSmsAccountApps=[],r.crudPermissions,r.query={sort:"priority"},r.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"noop",appType:"noop",type:"noop",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,fields:[{title:"Value",name:"value",type:"text",param:0}]},{app:"system",appType:"system",type:"system",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,extraApi:[{name:"variables",field:{name:"variable",key:"name"},route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1012}}],fields:[{title:"Command",name:"command",type:"text",required:!0,param:0},{title:"Variable",name:"variable",type:"apiselect",values:"variables",value:"variable.name",option:"variable.name",defaultValues:[{value:"''",option:"None"}],defaultValue:"''",param:1}]},{app:"gotop",appType:"gotop",type:"goto",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Priority",name:"priority",type:"number",required:!0,min:0,param:0}]},{app:"gotoif",appType:"gotoif",type:"gotoif",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Condition",name:"condition",type:"text",required:!0,param:0},{title:"truepriority",name:"truepriority",type:"number",min:1,required:!0,param:1},{title:"falsepriority",name:"falsepriority",type:"number",min:1,required:!0,param:2}]},{app:"queue",appType:"queue",foreignKey:"SmsQueueId",type:"queue",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"queues",field:{name:"queue",key:"name"},route:"smsQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0},permissions:{section:701}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",defaultValue:300,required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:300,param:1}]},{app:"agent",appType:"agent",type:"agent",foreignKey:"UserId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"agents",field:{name:"agent",key:"name"},route:"user",filters:{fields:"id,name",sort:"name",nolimit:!0,role:"agent"},permissions:{section:202}}],fields:[{title:"Agent",name:"agent",type:"apiselect",values:"agents",value:"agent.name",option:"agent.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:30,param:1}]},{app:"autoreply",appType:"autoreply",type:"autoreply",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"times",name:"times",type:"select",defaultValue:"1",values:[{option:"One Time",value:"2"},{option:"Always",value:"0"},{option:"First Message",value:"1"}],required:!0,param:0},{title:"Text",name:"text",type:"textarea",required:!0,param:1}]},{app:"close",appType:"close",type:"close",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Disposition",name:"disposition",type:"text",required:!0,param:0}]},{app:"tag",appType:"tag",type:"tag",foreignKey:"TagId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"tags",field:{name:"tag",key:"name"},route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1008}}],fields:[{title:"Tag",name:"tag",type:"apiselect",values:"tags",value:"tag.name",option:"tag.name",required:!0,param:0}]},{app:"dialogflow",appType:"dialogflow",type:"dialogflow",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Key",name:"key",type:"text",required:!0,param:0},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{option:"Danish",value:"'da'"},{option:"English",value:"'en'"},{option:"German",value:"'de'"},{option:"Italian",value:"'it'"},{option:"Spanish",value:"'es'"},{option:"French",value:"'fr'"},{option:"Indonesian",value:"'id'"},{option:"Japanese",value:"'ja'"},{option:"Korean (South Korea)",value:"'ko'"},{option:"Dutch",value:"'nl'"},{option:"Norwegian",value:"'no'"},{option:"Portuguese (European)",value:"'pt'"},{option:"Portuguese (Nrazilian)",value:"'pt-br'"},{option:"Russian",value:"'ru'"},{option:"Swedish",value:"'sv'"},{option:"Thai",value:"'th'"},{option:"Ukrainian",value:"'uk'"},{option:"Chinese (Simplified)",value:"'zh-CN'"},{option:"Chinese (Hong Kong)",value:"'zh-HK'"},{option:"Chinese (Traditional)",value:"'zh-TW'"}],required:!0,param:1},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,required:!1,param:2,help:!0}]},{app:"dialogflowV2",appType:"dialogflowv2",type:"dialogflowv2",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"ProjectID",name:"projectId",type:"text",required:!0,param:0},{title:"ClientEmail",name:"clientEmail",type:"text",required:!0,param:1},{title:"PrivateKey",name:"privateKey",type:"textarea",required:!0,param:2},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{value:"'zh-HK'",option:"Chinese (Cantonese)"},{value:"'zh-CN'",option:"Chinese (Simplified)"},{value:"'zh-TW'",option:"Chinese (Traditional)"},{value:"'da'",option:"Danish"},{value:"'nl'",option:"Dutch"},{value:"'en'",option:"English"},{value:"'en-AU'",option:"English (Australia)"},{value:"'en-CA'",option:"English (Canada)"},{value:"'en-GB'",option:"English (Great Britain)"},{value:"'en-IN'",option:"English (India)"},{value:"'en-US'",option:"English (US)"},{value:"'fr'",option:"French"},{value:"'fr-CA'",option:"French (Canada)"},{value:"'fr-FR'",option:"'France (France)"},{value:"'de'",option:"German"},{value:"'hi'",option:"Hindi"},{value:"'id'",option:"Indonesian"},{value:"'it'",option:"Italian"},{value:"'ja'",option:"Japanese"},{value:"'ko'",option:"Korean"},{value:"'no'",option:"Norwegian"},{value:"'pl'",option:"Polish"},{value:"'pt-BR'",option:"Portuguese (Brazil)"},{value:"'pt-PT'",option:"Portuguese (Portugal)"},{value:"'ru'",option:"Russian"},{value:"'es'",option:"Spanish"},{value:"'es-419'",option:"Spanish (Latin America)"},{value:"'es-ES'",option:"Spanish (Spain)"},{value:"'sw'",option:"Swedish"},{value:"'th'",option:"Thai"},{value:"'tr'",option:"Turkish"},{value:"'uk'",option:"Ukrainian"}],required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,param:4,help:!0}]},{app:"amazonlex",appType:"amazonlex",type:"amazonlex",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"accesskeyid",name:"accesskeyid",type:"text",required:!0,param:0},{title:"secretaccesskey",name:"secretaccesskey",type:"text",required:!0,param:1},{title:"lexregion",name:"lexregion",type:"select",defaultValue:"'us-east-1'",values:[{option:"US East (N. Virginia)",value:"'us-east-1'"},{option:"US West (Oregon)",value:"'us-west-2'"},{option:"EU (Ireland)",value:"'eu-west-1'"},{option:"Asia Pacific (Sydney)",value:"'ap-southeast-2'"}],required:!0,param:2},{title:"botname",name:"botname",type:"text",required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,required:!1,param:4,help:!0}]}],["app"]),{isApp:!1}),r.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},r.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){n(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e,n){r.smsAccount=e,r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},r.applications.disabled=!r.crudPermissions.canEdit,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getSmsAccountApps(),r.getIntervals()},r.deleteConfirm=function(e,n,t){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.smsAccountApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})},r.getSmsAccountApps=function(){r.promise=o.smsAccount.getApplications(r.query,t).$promise},r.editSmsAccountApp=n,r.editInterval=function(e,n){if(r.smsAccountApps.rows.length){var t=r.smsAccountApps.rows[n]?r.smsAccountApps.rows[n]:r.smsAccountApps.rows[0];i.show({controller:"EditSmsAccountAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:[],crudPermissions:r.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,l())})}},r.deleteSmsAccountApp=function(e){_.remove(r.smsAccountApps.rows,{id:e.id}),l(),s.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedSmsAccountApps=function(e){var n=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+r.selectedSmsAccountApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){r.selectedSmsAccountApps.forEach(function(e){_.remove(r.smsAccountApps.rows,{id:e.id})}),r.selectedSmsAccountApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return o.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){r.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.sms").controller("SmsAccountActionsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.smsAccount.getAgents({id:c.smsAccount.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserSmsAccount?"penalty "+e.UserSmsAccount.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.smsAccount=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.smsAccount.removeAgents({id:c.smsAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.smsAccount.addAgents({id:c.smsAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("SMS.ALL_AGENTS"),labelSelected:r.instant("SMS.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","smsAccount","smsAccounts","realtime","$translate","Auth","crudPermissions"],angular.module("app.sms").controller("SmsAccountagentaddController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.agent=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.agent.appdata)switch(l.agent.appType?l.agent.appType.toLowerCase():l.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.agent.appdata.split(",");l.agent.key=d[0],l.agent.language=d[1],l.agent.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.agent.appdata.split(",");l.agent.projectId=d[0],l.agent.clientEmail=d[1],l.agent.privateKey=d[2],l.agent.language=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.agent.appdata.split(",");l.agent.accesskeyid=d[0],l.agent.secretaccesskey=d[1],l.agent.lexregion=d[2],l.agent.botname=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.agent.appdata.split(",");l.agent.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.agent.text=d.slice(1,d.length).join(",");break;case"message":l.agent.text=l.agent.appdata;break;case"set":l.agent.name=l.agent.appdata.split("=")[0],l.agent.value=l.agent.appdata.split("=")[1];break;case"agi":l.agent.project=l.agent.appdata;break;default:var c=l.agent.appdata.split(",");l.agent.agent=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.agent.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.agent.timeout=30;function m(e){n.hide(e)}l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outbounddial"===l.agent.appType.toLowerCase()&&(l.agent.prefix=l.agent.phone?l.agent.phone.split("$")[0]:void 0,l.agent.callerId=l.agent.callerID?"CALLERID(all)="+l.agent.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outboundDial"===l.agent.appType&&(l.agent.phone=i.cutdigits?(l.agent.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.agent.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.agent.options+="U(xcally-mixmonitor-context)"):l.agent.options=l.agent.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.agents,{name:l.agent.agent});n&&(l.agent.UserId=n.id);if(l.agent.appType&&"custom"===l.agent.appType);else switch((l.agent.app||l.agent.appType).toLowerCase()){case"set":l.agent.appdata=l.agent.name+"="+l.agent.value;break;case"custom":break;default:e[0]=l.agent.agent,e[1]=l.agent.timeout,l.agent.appdata=e.join(",")}m(l.agent)},l.closeDialog=m,o.hasRole("admin")?s.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){l.agents=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){l.agents=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.agents,{id:e.resourceId})}),t=null;if(l.agent&&(t=_.find(l.agents,{name:l.agent.agent})),t&&!_.some(n,["id",t.id])){var a=_.find(l.agents,{id:t.id});a.canSelect=!1,n.push(a)}l.agents=n})}else{var t=[],a=null;l.agent&&(a=_.find(l.agents,{name:l.agent.agent}));for(var i=0;i<l.agents.length;i++)a&&l.agents[i].id===a.id&&(l.agents[i].canSelect=!1,t.push(l.agents[i]));l.agents=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppagentDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.amazonlex=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.amazonlex.appdata)switch(l.amazonlex.appType?l.amazonlex.appType.toLowerCase():l.amazonlex.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.amazonlex.appdata.split(",");l.amazonlex.key=d[0],l.amazonlex.language=d[1],l.amazonlex.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.amazonlex.appdata.split(",");l.amazonlex.projectId=d[0],l.amazonlex.clientEmail=d[1],l.amazonlex.privateKey=d[2],l.amazonlex.language=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=d[0],l.amazonlex.secretaccesskey=d[1],l.amazonlex.lexregion=d[2],l.amazonlex.botname=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.amazonlex.appdata.split(",");l.amazonlex.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.amazonlex.text=d.slice(1,d.length).join(",");break;case"message":l.amazonlex.text=l.amazonlex.appdata;break;case"set":l.amazonlex.name=l.amazonlex.appdata.split("=")[0],l.amazonlex.value=l.amazonlex.appdata.split("=")[1];break;case"agi":l.amazonlex.project=l.amazonlex.appdata;break;default:var c=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.amazonlex.secretaccesskey=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.amazonlex.lexregion=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.amazonlex.botname=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.amazonlex.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.amazonlex.lexregion="us-east-1";function m(e){n.hide(e)}l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outbounddial"===l.amazonlex.appType.toLowerCase()&&(l.amazonlex.prefix=l.amazonlex.phone?l.amazonlex.phone.split("$")[0]:void 0,l.amazonlex.callerId=l.amazonlex.callerID?"CALLERID(all)="+l.amazonlex.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outboundDial"===l.amazonlex.appType&&(l.amazonlex.phone=i.cutdigits?(l.amazonlex.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.amazonlex.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.amazonlex.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.amazonlex.options+="U(xcally-mixmonitor-context)"):l.amazonlex.options=l.amazonlex.options.replace("U(xcally-mixmonitor-context)",""));if(l.amazonlex.appType&&"custom"===l.amazonlex.appType);else switch((l.amazonlex.app||l.amazonlex.appType).toLowerCase()){case"set":l.amazonlex.appdata=l.amazonlex.name+"="+l.amazonlex.value;break;case"custom":break;default:e[0]=l.amazonlex.accesskeyid,e[1]=l.amazonlex.secretaccesskey,e[2]=l.amazonlex.lexregion,e[3]=l.amazonlex.botname,e[4]=l.amazonlex.welcomemessage,l.amazonlex.appdata=e.join(",")}m(l.amazonlex)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppamazonlexDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.autoreply=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.autoreply.appdata)switch(l.autoreply.appType?l.autoreply.appType.toLowerCase():l.autoreply.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.autoreply.appdata.split(",");l.autoreply.key=d[0],l.autoreply.language=d[1],l.autoreply.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.autoreply.appdata.split(",");l.autoreply.projectId=d[0],l.autoreply.clientEmail=d[1],l.autoreply.privateKey=d[2],l.autoreply.language=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.autoreply.appdata.split(",");l.autoreply.accesskeyid=d[0],l.autoreply.secretaccesskey=d[1],l.autoreply.lexregion=d[2],l.autoreply.botname=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.autoreply.appdata.split(",");l.autoreply.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.autoreply.text=d.slice(1,d.length).join(",");break;case"message":l.autoreply.text=l.autoreply.appdata;break;case"set":l.autoreply.name=l.autoreply.appdata.split("=")[0],l.autoreply.value=l.autoreply.appdata.split("=")[1];break;case"agi":l.autoreply.project=l.autoreply.appdata;break;default:var c=l.autoreply.appdata.split(",");l.autoreply.times=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.autoreply.text=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.autoreply.times=1;function m(e){n.hide(e)}l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outbounddial"===l.autoreply.appType.toLowerCase()&&(l.autoreply.prefix=l.autoreply.phone?l.autoreply.phone.split("$")[0]:void 0,l.autoreply.callerId=l.autoreply.callerID?"CALLERID(all)="+l.autoreply.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outboundDial"===l.autoreply.appType&&(l.autoreply.phone=i.cutdigits?(l.autoreply.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.autoreply.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.autoreply.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.autoreply.options+="U(xcally-mixmonitor-context)"):l.autoreply.options=l.autoreply.options.replace("U(xcally-mixmonitor-context)",""));if(l.autoreply.appType&&"custom"===l.autoreply.appType);else switch((l.autoreply.app||l.autoreply.appType).toLowerCase()){case"set":l.autoreply.appdata=l.autoreply.name+"="+l.autoreply.value;break;case"custom":break;default:e[0]=l.autoreply.times,e[1]=l.autoreply.text,l.autoreply.appdata=e.join(",")}m(l.autoreply)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppautoreplyDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.close=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.close.appdata)switch(l.close.appType?l.close.appType.toLowerCase():l.close.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.close.appdata.split(",");l.close.key=d[0],l.close.language=d[1],l.close.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.close.appdata.split(",");l.close.projectId=d[0],l.close.clientEmail=d[1],l.close.privateKey=d[2],l.close.language=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.close.appdata.split(",");l.close.accesskeyid=d[0],l.close.secretaccesskey=d[1],l.close.lexregion=d[2],l.close.botname=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.close.appdata.split(",");l.close.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.close.text=d.slice(1,d.length).join(",");break;case"message":l.close.text=l.close.appdata;break;case"set":l.close.name=l.close.appdata.split("=")[0],l.close.value=l.close.appdata.split("=")[1];break;case"agi":l.close.project=l.close.appdata;break;default:var c=l.close.appdata.split(",");l.close.disposition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outbounddial"===l.close.appType.toLowerCase()&&(l.close.prefix=l.close.phone?l.close.phone.split("$")[0]:void 0,l.close.callerId=l.close.callerID?"CALLERID(all)="+l.close.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outboundDial"===l.close.appType&&(l.close.phone=i.cutdigits?(l.close.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.close.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.close.options+="U(xcally-mixmonitor-context)"):l.close.options=l.close.options.replace("U(xcally-mixmonitor-context)",""));if(l.close.appType&&"custom"===l.close.appType);else switch((l.close.app||l.close.appType).toLowerCase()){case"set":l.close.appdata=l.close.name+"="+l.close.value;break;case"custom":break;default:e[0]=l.close.disposition,l.close.appdata=e.join(",")}m(l.close)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppcloseDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflow=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflow.appdata)switch(l.dialogflow.appType?l.dialogflow.appType.toLowerCase():l.dialogflow.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflow.appdata.split(",");l.dialogflow.key=d[0],l.dialogflow.language=d[1],l.dialogflow.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflow.appdata.split(",");l.dialogflow.projectId=d[0],l.dialogflow.clientEmail=d[1],l.dialogflow.privateKey=d[2],l.dialogflow.language=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflow.appdata.split(",");l.dialogflow.accesskeyid=d[0],l.dialogflow.secretaccesskey=d[1],l.dialogflow.lexregion=d[2],l.dialogflow.botname=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflow.appdata.split(",");l.dialogflow.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflow.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflow.text=l.dialogflow.appdata;break;case"set":l.dialogflow.name=l.dialogflow.appdata.split("=")[0],l.dialogflow.value=l.dialogflow.appdata.split("=")[1];break;case"agi":l.dialogflow.project=l.dialogflow.appdata;break;default:var c=l.dialogflow.appdata.split(",");l.dialogflow.key=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflow.language=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflow.welcomemessage=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}else l.dialogflow.language="en";function m(e){n.hide(e)}l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outbounddial"===l.dialogflow.appType.toLowerCase()&&(l.dialogflow.prefix=l.dialogflow.phone?l.dialogflow.phone.split("$")[0]:void 0,l.dialogflow.callerId=l.dialogflow.callerID?"CALLERID(all)="+l.dialogflow.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outboundDial"===l.dialogflow.appType&&(l.dialogflow.phone=i.cutdigits?(l.dialogflow.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflow.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflow.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflow.options+="U(xcally-mixmonitor-context)"):l.dialogflow.options=l.dialogflow.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflow.appType&&"custom"===l.dialogflow.appType);else switch((l.dialogflow.app||l.dialogflow.appType).toLowerCase()){case"set":l.dialogflow.appdata=l.dialogflow.name+"="+l.dialogflow.value;break;case"custom":break;default:e[0]=l.dialogflow.key,e[1]=l.dialogflow.language,e[2]=l.dialogflow.welcomemessage,l.dialogflow.appdata=e.join(",")}m(l.dialogflow)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppdialogflowDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflowv2=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflowv2.appdata)switch(l.dialogflowv2.appType?l.dialogflowv2.appType.toLowerCase():l.dialogflowv2.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.key=d[0],l.dialogflowv2.language=d[1],l.dialogflowv2.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=d[0],l.dialogflowv2.clientEmail=d[1],l.dialogflowv2.privateKey=d[2],l.dialogflowv2.language=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.accesskeyid=d[0],l.dialogflowv2.secretaccesskey=d[1],l.dialogflowv2.lexregion=d[2],l.dialogflowv2.botname=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflowv2.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflowv2.text=l.dialogflowv2.appdata;break;case"set":l.dialogflowv2.name=l.dialogflowv2.appdata.split("=")[0],l.dialogflowv2.value=l.dialogflowv2.appdata.split("=")[1];break;case"agi":l.dialogflowv2.project=l.dialogflowv2.appdata;break;default:var c=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflowv2.clientEmail=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflowv2.privateKey=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.dialogflowv2.language=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.dialogflowv2.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.dialogflowv2.language="en";function m(e){n.hide(e)}l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outbounddial"===l.dialogflowv2.appType.toLowerCase()&&(l.dialogflowv2.prefix=l.dialogflowv2.phone?l.dialogflowv2.phone.split("$")[0]:void 0,l.dialogflowv2.callerId=l.dialogflowv2.callerID?"CALLERID(all)="+l.dialogflowv2.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outboundDial"===l.dialogflowv2.appType&&(l.dialogflowv2.phone=i.cutdigits?(l.dialogflowv2.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflowv2.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflowv2.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflowv2.options+="U(xcally-mixmonitor-context)"):l.dialogflowv2.options=l.dialogflowv2.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflowv2.appType&&"custom"===l.dialogflowv2.appType);else switch((l.dialogflowv2.app||l.dialogflowv2.appType).toLowerCase()){case"set":l.dialogflowv2.appdata=l.dialogflowv2.name+"="+l.dialogflowv2.value;break;case"custom":break;default:e[0]=l.dialogflowv2.projectId,e[1]=l.dialogflowv2.clientEmail,e[2]=l.dialogflowv2.privateKey,e[3]=l.dialogflowv2.language,e[4]=l.dialogflowv2.welcomemessage,l.dialogflowv2.appdata=e.join(",")}m(l.dialogflowv2)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppdialogflowv2DialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotoif=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotoif.appdata)switch(l.gotoif.appType?l.gotoif.appType.toLowerCase():l.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotoif.appdata.split(",");l.gotoif.key=d[0],l.gotoif.language=d[1],l.gotoif.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotoif.appdata.split(",");l.gotoif.projectId=d[0],l.gotoif.clientEmail=d[1],l.gotoif.privateKey=d[2],l.gotoif.language=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotoif.appdata.split(",");l.gotoif.accesskeyid=d[0],l.gotoif.secretaccesskey=d[1],l.gotoif.lexregion=d[2],l.gotoif.botname=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotoif.appdata.split(",");l.gotoif.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotoif.text=d.slice(1,d.length).join(",");break;case"message":l.gotoif.text=l.gotoif.appdata;break;case"set":l.gotoif.name=l.gotoif.appdata.split("=")[0],l.gotoif.value=l.gotoif.appdata.split("=")[1];break;case"agi":l.gotoif.project=l.gotoif.appdata;break;default:var c=l.gotoif.appdata.split(",");l.gotoif.condition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.gotoif.truepriority=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.gotoif.falsepriority=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}function m(e){n.hide(e)}l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outbounddial"===l.gotoif.appType.toLowerCase()&&(l.gotoif.prefix=l.gotoif.phone?l.gotoif.phone.split("$")[0]:void 0,l.gotoif.callerId=l.gotoif.callerID?"CALLERID(all)="+l.gotoif.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outboundDial"===l.gotoif.appType&&(l.gotoif.phone=i.cutdigits?(l.gotoif.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotoif.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotoif.options+="U(xcally-mixmonitor-context)"):l.gotoif.options=l.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotoif.appType&&"custom"===l.gotoif.appType);else switch((l.gotoif.app||l.gotoif.appType).toLowerCase()){case"set":l.gotoif.appdata=l.gotoif.name+"="+l.gotoif.value;break;case"custom":break;default:e[0]=l.gotoif.condition,e[1]=l.gotoif.truepriority,e[2]=l.gotoif.falsepriority,l.gotoif.appdata=e.join(",")}m(l.gotoif)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppgotoifDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotop.appdata)switch(l.gotop.appType?l.gotop.appType.toLowerCase():l.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotop.appdata.split(",");l.gotop.key=d[0],l.gotop.language=d[1],l.gotop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotop.appdata.split(",");l.gotop.projectId=d[0],l.gotop.clientEmail=d[1],l.gotop.privateKey=d[2],l.gotop.language=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotop.appdata.split(",");l.gotop.accesskeyid=d[0],l.gotop.secretaccesskey=d[1],l.gotop.lexregion=d[2],l.gotop.botname=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotop.appdata.split(",");l.gotop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotop.text=d.slice(1,d.length).join(",");break;case"message":l.gotop.text=l.gotop.appdata;break;case"set":l.gotop.name=l.gotop.appdata.split("=")[0],l.gotop.value=l.gotop.appdata.split("=")[1];break;case"agi":l.gotop.project=l.gotop.appdata;break;default:var c=l.gotop.appdata.split(",");l.gotop.priority=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outbounddial"===l.gotop.appType.toLowerCase()&&(l.gotop.prefix=l.gotop.phone?l.gotop.phone.split("$")[0]:void 0,l.gotop.callerId=l.gotop.callerID?"CALLERID(all)="+l.gotop.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outboundDial"===l.gotop.appType&&(l.gotop.phone=i.cutdigits?(l.gotop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotop.options+="U(xcally-mixmonitor-context)"):l.gotop.options=l.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotop.appType&&"custom"===l.gotop.appType);else switch((l.gotop.app||l.gotop.appType).toLowerCase()){case"set":l.gotop.appdata=l.gotop.name+"="+l.gotop.value;break;case"custom":break;default:e[0]=l.gotop.priority,l.gotop.appdata=e.join(",")}m(l.gotop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppgotopDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom","list"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditSmsAccountAppintervalDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.noop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.noop.appdata)switch(l.noop.appType?l.noop.appType.toLowerCase():l.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.noop.appdata.split(",");l.noop.key=d[0],l.noop.language=d[1],l.noop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.noop.appdata.split(",");l.noop.projectId=d[0],l.noop.clientEmail=d[1],l.noop.privateKey=d[2],l.noop.language=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.noop.appdata.split(",");l.noop.accesskeyid=d[0],l.noop.secretaccesskey=d[1],l.noop.lexregion=d[2],l.noop.botname=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.noop.appdata.split(",");l.noop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.noop.text=d.slice(1,d.length).join(",");break;case"message":l.noop.text=l.noop.appdata;break;case"set":l.noop.name=l.noop.appdata.split("=")[0],l.noop.value=l.noop.appdata.split("=")[1];break;case"agi":l.noop.project=l.noop.appdata;break;default:var c=l.noop.appdata.split(",");l.noop.value=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outbounddial"===l.noop.appType.toLowerCase()&&(l.noop.prefix=l.noop.phone?l.noop.phone.split("$")[0]:void 0,l.noop.callerId=l.noop.callerID?"CALLERID(all)="+l.noop.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outboundDial"===l.noop.appType&&(l.noop.phone=i.cutdigits?(l.noop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.noop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.noop.options+="U(xcally-mixmonitor-context)"):l.noop.options=l.noop.options.replace("U(xcally-mixmonitor-context)",""));if(l.noop.appType&&"custom"===l.noop.appType);else switch((l.noop.app||l.noop.appType).toLowerCase()){case"set":l.noop.appdata=l.noop.name+"="+l.noop.value;break;case"custom":break;default:e[0]=l.noop.value,l.noop.appdata=e.join(",")}m(l.noop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppnoopDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.queue=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.queue.appdata)switch(l.queue.appType?l.queue.appType.toLowerCase():l.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.queue.appdata.split(",");l.queue.key=d[0],l.queue.language=d[1],l.queue.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.queue.appdata.split(",");l.queue.projectId=d[0],l.queue.clientEmail=d[1],l.queue.privateKey=d[2],l.queue.language=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.queue.appdata.split(",");l.queue.accesskeyid=d[0],l.queue.secretaccesskey=d[1],l.queue.lexregion=d[2],l.queue.botname=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.queue.appdata.split(",");l.queue.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.queue.text=d.slice(1,d.length).join(",");break;case"message":l.queue.text=l.queue.appdata;break;case"set":l.queue.name=l.queue.appdata.split("=")[0],l.queue.value=l.queue.appdata.split("=")[1];break;case"agi":l.queue.project=l.queue.appdata;break;default:var c=l.queue.appdata.split(",");l.queue.queue=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.queue.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.queue.queue=300,l.queue.timeout=300;function m(e){n.hide(e)}l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outbounddial"===l.queue.appType.toLowerCase()&&(l.queue.prefix=l.queue.phone?l.queue.phone.split("$")[0]:void 0,l.queue.callerId=l.queue.callerID?"CALLERID(all)="+l.queue.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outboundDial"===l.queue.appType&&(l.queue.phone=i.cutdigits?(l.queue.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.queue.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.queue.options+="U(xcally-mixmonitor-context)"):l.queue.options=l.queue.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.queues,{name:l.queue.queue});n&&(l.queue[_.capitalize("sms")+"QueueId"]=n.id);if(l.queue.appType&&"custom"===l.queue.appType);else switch((l.queue.app||l.queue.appType).toLowerCase()){case"set":l.queue.appdata=l.queue.name+"="+l.queue.value;break;case"custom":break;default:e[0]=l.queue.queue,e[1]=l.queue.timeout,l.queue.appdata=e.join(",")}m(l.queue)},l.closeDialog=m,o.hasRole("admin")?s.smsQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.smsQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:701}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.queues,{id:e.resourceId})}),t=null;if(l.queue&&(t=_.find(l.queues,{name:l.queue.queue})),t&&!_.some(n,["id",t.id])){var a=_.find(l.queues,{id:t.id});a.canSelect=!1,n.push(a)}l.queues=n})}else{var t=[],a=null;l.queue&&(a=_.find(l.queues,{name:l.queue.queue}));for(var i=0;i<l.queues.length;i++)a&&l.queues[i].id===a.id&&(l.queues[i].canSelect=!1,t.push(l.queues[i]));l.queues=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppqueueDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.system=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.system.appdata)switch(l.system.appType?l.system.appType.toLowerCase():l.system.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.system.appdata.split(",");l.system.key=d[0],l.system.language=d[1],l.system.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.system.appdata.split(",");l.system.projectId=d[0],l.system.clientEmail=d[1],l.system.privateKey=d[2],l.system.language=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.system.appdata.split(",");l.system.accesskeyid=d[0],l.system.secretaccesskey=d[1],l.system.lexregion=d[2],l.system.botname=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.system.appdata.split(",");l.system.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.system.text=d.slice(1,d.length).join(",");break;case"message":l.system.text=l.system.appdata;break;case"set":l.system.name=l.system.appdata.split("=")[0],l.system.value=l.system.appdata.split("=")[1];break;case"agi":l.system.project=l.system.appdata;break;default:var c=l.system.appdata.split(",");l.system.command=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.system.variable=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.system.variable="";function m(e){n.hide(e)}l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outbounddial"===l.system.appType.toLowerCase()&&(l.system.prefix=l.system.phone?l.system.phone.split("$")[0]:void 0,l.system.callerId=l.system.callerID?"CALLERID(all)="+l.system.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outboundDial"===l.system.appType&&(l.system.phone=i.cutdigits?(l.system.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.system.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.system.options+="U(xcally-mixmonitor-context)"):l.system.options=l.system.options.replace("U(xcally-mixmonitor-context)",""));if(l.system.appType&&"custom"===l.system.appType);else switch((l.system.app||l.system.appType).toLowerCase()){case"set":l.system.appdata=l.system.name+"="+l.system.value;break;case"custom":break;default:e[0]=l.system.command,e[1]=l.system.variable,l.system.appdata=e.join(",")}m(l.system)},l.closeDialog=m,o.hasRole("admin")?s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1012}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.variables,{id:e.resourceId})}),t=null;if(l.system&&(t=_.find(l.variables,{name:l.system.variable})),t&&!_.some(n,["id",t.id])){var a=_.find(l.variables,{id:t.id});a.canSelect=!1,n.push(a)}l.variables=n})}else{var t=[],a=null;l.system&&(a=_.find(l.variables,{name:l.system.variable}));for(var i=0;i<l.variables.length;i++)a&&l.variables[i].id===a.id&&(l.variables[i].canSelect=!1,t.push(l.variables[i]));l.variables=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppsystemDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.tag=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.tag.appdata)switch(l.tag.appType?l.tag.appType.toLowerCase():l.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.tag.appdata.split(",");l.tag.key=d[0],l.tag.language=d[1],l.tag.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.tag.appdata.split(",");l.tag.projectId=d[0],l.tag.clientEmail=d[1],l.tag.privateKey=d[2],l.tag.language=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.tag.appdata.split(",");l.tag.accesskeyid=d[0],l.tag.secretaccesskey=d[1],l.tag.lexregion=d[2],l.tag.botname=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.tag.appdata.split(",");l.tag.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.tag.text=d.slice(1,d.length).join(",");break;case"message":l.tag.text=l.tag.appdata;break;case"set":l.tag.name=l.tag.appdata.split("=")[0],l.tag.value=l.tag.appdata.split("=")[1];break;case"agi":l.tag.project=l.tag.appdata;break;default:var c=l.tag.appdata.split(",");l.tag.tag=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outbounddial"===l.tag.appType.toLowerCase()&&(l.tag.prefix=l.tag.phone?l.tag.phone.split("$")[0]:void 0,l.tag.callerId=l.tag.callerID?"CALLERID(all)="+l.tag.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outboundDial"===l.tag.appType&&(l.tag.phone=i.cutdigits?(l.tag.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.tag.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.tag.options+="U(xcally-mixmonitor-context)"):l.tag.options=l.tag.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.tags,{name:l.tag.tag});n&&(l.tag.TagId=n.id);if(l.tag.appType&&"custom"===l.tag.appType);else switch((l.tag.app||l.tag.appType).toLowerCase()){case"set":l.tag.appdata=l.tag.name+"="+l.tag.value;break;case"custom":break;default:e[0]=l.tag.tag,l.tag.appdata=e.join(",")}m(l.tag)},l.closeDialog=m,o.hasRole("admin")?s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1008}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.tags,{id:e.resourceId})}),t=null;if(l.tag&&(t=_.find(l.tags,{name:l.tag.tag})),t&&!_.some(n,["id",t.id])){var a=_.find(l.tags,{id:t.id});a.canSelect=!1,n.push(a)}l.tags=n})}else{var t=[],a=null;l.tag&&(a=_.find(l.tags,{name:l.tag.tag}));for(var i=0;i<l.tags.length;i++)a&&l.tags[i].id===a.id&&(l.tags[i].canSelect=!1,t.push(l.tags[i]));l.tags=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtags",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountApptagDialogController",e)}(),function(){"use strict";function e(e,a,n,t,i,s,o,r,l,d,c){var m=this;function u(e){m.smsAccountInteractions=e||{count:0,rows:[]};for(var n=0;n<m.smsAccountInteractions.rows.length;n+=1){var t=m.smsAccountInteractions.rows[n];v(t),t.Owner.name=h(t)}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.smsInteraction.get(m.query,u).$promise}function g(e){d.smsInteraction.delete({id:e.id}).$promise.then(function(){_.remove(m.smsAccountInteractions.rows,{id:e.id}),m.smsAccountInteractions.count-=1,m.smsAccountInteractions.rows.length||p(),l.success({title:"Interaction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETsmsAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(e){e.Contact?(e.contactName=(e.Contact.firstName||"")+" "+(e.Contact.lastName||""),e.contactInfo=e.Contact.mobile):e.contactName=i.instant("DASHBOARDS.UNKNOWN")}function h(e){return e.UserId?e.UserId===m.currentUser.id?i.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">":i.instant("DASHBOARDS.NOT_ASSIGNED")}m.currentUser=c.getCurrentUser(),m.smsAccount={},m.smsAccountInteractions={count:0,rows:[]},m.selectedSmsAccountInteractions=[],m.crudPermissions,m.query={read:"null",closed:"null",sort:"-createdAt",includeAll:"true",limit:10,page:1},m.init=function(e,n,t){m.smsAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.SmsAccountId=m.smsAccount.id,m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Subject",column:"subject",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},d.tag.get({sort:"name"}).$promise.then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]})},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interaction #")+e.id||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.smsInteractionDownload=function(s,e,n){return d.smsInteraction.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="interaction"+s.id,a=new Blob(n,{type:e.type});t="sms-interaction"+s.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getSmsAccountInteractions=p,m.createOrEditSmsAccountInteraction=function(e,n){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/interactions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsAccount:m.smsAccount,interaction:n,interactions:m.smsAccountInteractions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.spysmsInteraction=function(e,t){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,n){e.vm.init({id:1,channel:"sms",interaction:t,spy:!0},a.$parent.vm.setting)}})},m.openAdvancedSearch=function(){o.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,locals:{fields:m.advancedSearch.fields,color:void 0,storagePath:"sms.smsAccounts"},fullscreen:!0}).then(function(e){if(m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply){var n="";n+="||SmsAccountId:=$eq["+m.smsAccount.id+"]",m.query.search=e.value?e.value+=n:e.value,p()}}).catch(function(e){l.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.exportSelectedSmsAccountInteractions=function(){var e=angular.copy(m.selectedSmsAccountInteractions);return m.selectedSmsAccountInteractions=[],e},m.deleteSmsAccountInteraction=g,m.deleteSelectedSmsAccountInteractions=function(e){var n=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+m.selectedSmsAccountInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedSmsAccountInteractions.forEach(function(e){g(e)}),m.selectedSmsAccountInteractions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.sms").controller("SmsAccountInteractionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.smsAccountSmsCannedAnswers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.smsAccount.getAnswers(m.query,u).$promise}function g(e){d.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(m.smsAccountSmsCannedAnswers.rows,{id:e.id}),m.smsAccountSmsCannedAnswers.count-=1,m.smsAccountSmsCannedAnswers.rows.length||p(),l.success({title:"SmsCannedAnswer deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETsmsAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.smsAccount={},m.smsAccountSmsCannedAnswers={count:0,rows:[]},m.selectedSmsAccountSmsCannedAnswers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,key,value,description",limit:10,page:1},m.init=function(e,n,t){m.smsAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.SmsAccountId=m.smsAccount.id,m.query.id=m.smsAccount.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the smsCannedAnswer?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("smsCannedAnswer #")+e.id||"smsCannedAnswer")+"</b> will be deleted.").ariaLabel("delete smsCannedAnswer").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getSmsAccountSmsCannedAnswers=p,m.createOrEditSmsAccountSmsCannedAnswer=function(e,n){o.show({controller:"CreateOrEditSmsCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/smsCannedAnswers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsAccount:m.smsAccount,smsCannedAnswer:n,smsCannedAnswers:m.smsAccountSmsCannedAnswers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedSmsAccountSmsCannedAnswers=function(){var e=angular.copy(m.selectedSmsAccountSmsCannedAnswers);return m.selectedSmsAccountSmsCannedAnswers=[],e},m.deleteSmsAccountSmsCannedAnswer=g,m.deleteSelectedSmsAccountSmsCannedAnswers=function(e){var n=o.confirm().title("Are you sure want to delete the selected smsCannedAnswers?").htmlContent("<b>"+m.selectedSmsAccountSmsCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete smsCannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedSmsAccountSmsCannedAnswers.forEach(function(e){g(e)}),m.selectedSmsAccountSmsCannedAnswers=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.sms").controller("SmsAccountSmsCannedAnswersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="SMS.EDIT_SMSCANNEDANSWER",g.smsCannedAnswer=angular.copy(l),g.smsCannedAnswers=r,g.newSmsCannedAnswer=!1,g.smsCannedAnswer||(g.smsCannedAnswer={},g.title="SMS.NEW_SMSCANNEDANSWER",g.newSmsCannedAnswer=!0),n.params.id&&(g.smsCannedAnswer.SmsAccountId=n.params.id),g.addNewSmsCannedAnswer=function(){g.errors=[],d.cannedAnswer.save(g.smsCannedAnswer).$promise.then(function(e){g.smsCannedAnswers.unshift(e.toJSON()),o.success({title:"SmsCannedAnswer properly created",msg:g.smsCannedAnswer.name?g.smsCannedAnswer.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSmsCannedAnswer=function(){g.errors=[],d.cannedAnswer.update({id:g.smsCannedAnswer.id},g.smsCannedAnswer).$promise.then(function(e){var n=_.find(g.smsCannedAnswers,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"SmsCannedAnswer properly saved!",msg:g.smsCannedAnswer.name?g.smsCannedAnswer.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSmsCannedAnswer=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The smsCannedAnswer will be deleted.").ariaLabel("Delete SmsCannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cannedAnswer.delete({id:g.smsCannedAnswer.id}).$promise.then(function(){_.remove(g.smsCannedAnswers,{id:g.smsCannedAnswer.id}),o.success({title:"SmsCannedAnswer properly deleted!",msg:(g.smsCannedAnswer.name||"smsCannedAnswer")+" has been deleted!"}),v(g.smsCannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","smsCannedAnswers","smsCannedAnswer","api","Auth","license","setting","crudPermissions"],angular.module("app.sms").controller("CreateOrEditSmsCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.smsAccount.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.smsAccount=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.SmsAccountId=m.smsAccount.id,m.query.id=m.smsAccount.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.smsAccount.id,field:"SmsAccountId",route:"smsAccount"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.sms").controller("SmsAccountDispositionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=s,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=n.protocol()+"://"+n.host(),p.smsAccount=c||e.params.smsAccount||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=e.params.tab||0,p.agentadddialog=function(e,n){t.show({controller:"SmsAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{smsAccount:e,smsAccounts:p.smsAccounts?p.smsAccounts.rows:[],crudPermissions:p.crudPermissions,realtime:!1}})},p.alert=l.info,p.gotoSmsAccounts=function(){e.go("app.sms.smsAccounts",{},{reload:"app.sms.smsAccounts"})},p.saveSmsAccount=function(){r.smsAccount.update({id:p.smsAccount.id},p.smsAccount).$promise.then(function(){l.success({title:"SmsAccount updated!",msg:p.smsAccount.name?p.smsAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.lists,{id:e.resourceId})}),t=null;if(p.smsAccount&&(t=_.find(p.lists,{id:Number(p.smsAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.lists,{id:t.id});a.canSelect=!1,n.push(a)}p.lists=n})}else{var t=[],a=null;p.smsAccount&&(a=_.find(p.lists,{id:Number(p.smsAccount.ListId)}));for(var i=0;i<p.lists.length;i++)a&&p.lists[i].id===a.id&&(p.lists[i].canSelect=!1,t.push(p.lists[i]));p.lists=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.pauses,{id:e.resourceId})});p.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),p.pauses=n})}else p.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","smsAccount","userProfile","userProfileSection"],angular.module("app.sms").controller("SmsAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.smsAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="smsAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedSmsAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,type,phone,accountSid,authId,authToken,smsMethod,username,password,baseUrl,apiKey,accountId,applicationId,senderString,deliveryReport,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,page:1},f.arraytype=_.keyBy([{option:"Twilio",value:"'twilio'"},{option:"Skebby",value:"'skebby'"},{option:"Connectel",value:"'connectel'"},{option:"ClickSend",value:"'clicksend'"},{option:"Plivo",value:"'plivo'"},{option:"Infobip",value:"'infobip'"},{option:"Clickatell",value:"'clickatell'"},{option:"Bandwidth",value:"'bandwidth'"},{option:"CSCTelecom",value:"'csc'"},{option:"Intelepeer",value:"'intelepeer'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysmsMethod=_.keyBy([{option:"Basic",value:"'SI'"},{option:"Classic",value:"'TI'"},{option:"Classic+",value:"'GP'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.sms.smsAccounts.edit",{id:e.id,smsAccount:e,crudPermissions:f.crudPermissions})},f.interactionsgoto=function(e,n){t.go("app.sms.smsAccounts.edit",{id:e.id,tab:5})},f.agentadddialog=function(e,n){i.show({controller:"SmsAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{smsAccount:e,smsAccounts:f.smsAccounts?f.smsAccounts.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("smsAccount")+"?").htmlContent("<b>"+(e.name||"smsAccount")+"</b> will be deleted.").ariaLabel("delete smsAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getSmsAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.smsAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="SmsAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSmsAccount=function(e,n){i.show({controller:"CreateOrEditSmsAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsAccount:n,smsAccounts:f.smsAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSmsAccount=y,f.exportSelectedSmsAccounts=function(){var e=angular.copy(f.selectedSmsAccounts);return f.selectedSmsAccounts=[],e},f.deleteSelectedSmsAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected smsAccounts?").htmlContent("<b>"+f.selectedSmsAccounts.length+" selected</b> will be deleted.").ariaLabel("delete SmsAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedSmsAccounts.forEach(function(e){y(e)}),f.selectedSmsAccounts=[]})},f.deselectSmsAccounts=function(){f.selectedSmsAccounts=[]},f.selectAllSmsAccounts=function(){f.selectedSmsAccounts=f.smsAccounts.rows},g.hasRole("admin")?m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.lists,{id:e.resourceId})}),t=null;if(f.smsAccount&&(t=_.find(f.lists,{id:Number(f.smsAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.lists,{id:t.id});a.canSelect=!1,n.push(a)}f.lists=n})}else{var t=[],a=null;f.smsAccount&&(a=_.find(f.lists,{id:Number(f.smsAccount.ListId)}));for(var i=0;i<f.lists.length;i++)a&&f.lists[i].id===a.id&&(f.lists[i].canSelect=!1,t.push(f.lists[i]));f.lists=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.smsAccounts=e||{count:0,rows:[]}}function y(e){m.smsAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.smsAccounts.rows,{id:e.id}),f.smsAccounts.count-=1,f.smsAccounts.rows.length||f.getSmsAccounts(),p.success({title:_.startCase("SmsAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsmsAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEsmsAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getSmsAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","smsAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.sms").controller("SmsAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="SMS.EDIT_SMSQUEUE",g.smsQueue=angular.copy(l),g.smsQueues=r,g.newSmsQueue=!1,g.smsQueue||(g.smsQueue={strategy:"beepall",timeout:10},g.title="SMS.NEW_SMSQUEUE",g.newSmsQueue=!0),g.addNewSmsQueue=function(){g.errors=[],d.smsQueue.save(g.smsQueue).$promise.then(function(e){g.smsQueues.unshift(e.toJSON()),o.success({title:"SmsQueue properly created",msg:g.smsQueue.name?g.smsQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.smsQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSmsQueue=function(){g.errors=[],d.smsQueue.update({id:g.smsQueue.id},g.smsQueue).$promise.then(function(e){var n=_.find(g.smsQueues,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"SmsQueue properly saved!",msg:g.smsQueue.name?g.smsQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.smsQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSmsQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The smsQueue will be deleted.").ariaLabel("Delete SmsQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.smsQueue.delete({id:g.smsQueue.id}).$promise.then(function(){_.remove(g.smsQueues,{id:g.smsQueue.id}),o.success({title:"SmsQueue properly deleted!",msg:(g.smsQueue.name||"smsQueue")+" has been deleted!"}),v(g.smsQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.smsQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","smsQueues","smsQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.sms").controller("CreateOrEditSmsQueueDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.smsQueue.getAgents({id:c.smsQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserSmsQueue?"penalty "+e.UserSmsQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.smsQueue=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.smsQueue.removeAgents({id:c.smsQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.smsQueue.addAgents({id:c.smsQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("SMS.ALL_AGENTS"),labelSelected:r.instant("SMS.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","smsQueue","smsQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.sms").controller("SmsQueueagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.smsQueue.getTeams({id:l.smsQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.smsQueue=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("SMS.ALL_TEAMS"),labelSelected:t.instant("SMS.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.smsQueue.removeTeams({id:l.smsQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.smsQueue.addTeams({id:l.smsQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","smsQueue","$translate","Auth","crudPermissions"],angular.module("app.sms").controller("SmsQueueteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.smsQueue=c||e.params.smsQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.teamadddialog=function(e,n){t.show({controller:"SmsQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{smsQueue:e,smsQueues:u.smsQueues?u.smsQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){t.show({controller:"SmsQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{smsQueue:e,smsQueues:u.smsQueues?u.smsQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoSmsQueues=function(){e.go("app.sms.smsQueues",{},{reload:"app.sms.smsQueues"})},u.saveSmsQueue=function(){r.smsQueue.update({id:u.smsQueue.id},u.smsQueue).$promise.then(function(){l.success({title:"SmsQueue updated!",msg:u.smsQueue.name?u.smsQueue.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","smsQueue","userProfileSection"],angular.module("app.sms").controller("SmsQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.smsQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="smsQueues",f.listOrder="",f.listOrderAsc=null,f.selectedSmsQueues=[],f.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"sms",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.sms.smsQueues.edit",{id:e.id,smsQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"SmsQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{smsQueue:e,smsQueues:f.smsQueues?f.smsQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"SmsQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{smsQueue:e,smsQueues:f.smsQueues?f.smsQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("smsQueue")+"?").htmlContent("<b>"+(e.name||"smsQueue")+"</b> will be deleted.").ariaLabel("delete smsQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:710}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.sms.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.sms.realtime.queues",{})}},f.success=E,f.getSmsQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.smsQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="SmsQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSmsQueue=function(e,n){i.show({controller:"CreateOrEditSmsQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsQueue:n,smsQueues:f.smsQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSmsQueue=y,f.exportSelectedSmsQueues=function(){var e=angular.copy(f.selectedSmsQueues);return f.selectedSmsQueues=[],e},f.deleteSelectedSmsQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected smsQueues?").htmlContent("<b>"+f.selectedSmsQueues.length+" selected</b> will be deleted.").ariaLabel("delete SmsQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedSmsQueues.forEach(function(e){y(e)}),f.selectedSmsQueues=[]})},f.deselectSmsQueues=function(){f.selectedSmsQueues=[]},f.selectAllSmsQueues=function(){f.selectedSmsQueues=f.smsQueues.rows};var b=!0,A=1;function E(e){f.smsQueues=e||{count:0,rows:[]}}function y(e){m.smsQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.smsQueues.rows,{id:e.id}),f.smsQueues.count-=1,f.smsQueues.rows.length||f.getSmsQueues(),p.success({title:_.startCase("SmsQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsmsQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEsmsQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getSmsQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","smsQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.sms").controller("SmsQueuesController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o,r,l,d,c,m,u){var p=this;function g(e){p.agents=e||{count:0,rows:[]}}function v(e){l.user.delete({id:e.id}).$promise.then(function(){_.remove(p.agents.rows,{id:e.id}),p.agents.count-=1,p.agents.rows.length||p.getAgents(),d.success({title:_.startCase("Agent")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEuser"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEuser",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}p.license=m,p.setting=u,p.currentUser=c.getCurrentUser(),p.agents=s||{count:0,rows:[]},p.userProfile=o,p.userProfileSection=r&&1==r.count?r.rows[0]:null,p.crudPermissions=c.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.selectedAgents=[],p.query={fields:"createdAt,updatedAt,id,role,fullname,name,alias,showWebBar,email,phone,mobile,userpic,password,hotdesk,autointernal,internal,loginInPause,description,dtlscertfile,dtlsprivatekey,wssPort,voicemail,transport,host,nat,type,allow,callerid,context,callgroup,pickupgroup,chanspy,videosupport,extensionMonitor,chatCapacity,mailCapacity,smsCapacity,openchannelCapacity,faxCapacity,whatsappCapacity,phoneBarEnableSettings,phoneBarAutoAnswer,phoneBarAutoAnswerDelay,phoneBarRingInUse,phoneBarEnableRecording,phoneBarEnableDtmfTone,phoneBarDnd,phoneBarUnansweredCallBadge,phoneBarEnableJaws,phoneBarOutboundProxy,phoneBarUnconditional,phoneBarUnconditionalNumber,phoneBarRemoteControl,phoneBarRemoteControlPort,phoneBarExpires,phoneBarListenPort,permissions,allowmessenger,phoneBarPrefixRequired,passwordResetAt,disabled,blocked,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording,privacyEnabled,downloadAttachments,downloadOmnichannelInteractions,downloadVoiceRecordings,selectRecallMeCampaign,ignorePauseForPreviewCalls",role:"agent",sort:"-updatedAt",limit:10,page:1},p.showWebBarOptions=[{option:"Phonebar",value:0},{option:"External",value:1},{option:"WebRTC",value:2}],p.editstate=function(e){n.go("app.staff.agents.edit",{id:e.id,agent:e,crudPermissions:p.crudPermissions})},p.teamadddialog=function(e,n){a.show({controller:"AgentteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/teamadd/teamadd.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:p.agents?p.agents.rows:[],crudPermissions:p.crudPermissions}})},p.deleteconfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the "+_.startCase("agent")+"?").htmlContent("<b>"+(e.name||"agent")+"</b> will be deleted.").ariaLabel("delete agent").targetEvent(n).ok("OK").cancel("CANCEL");a.show(t).then(function(){v(e)})},p.success=g,p.getAgents=function(){p.query.offset=(p.query.page-1)*p.query.limit,c.hasRole("admin")?p.promise=l.user.get(p.query,g).$promise:(p.query.id=p.userProfile.id,p.query.section="Agents",p.promise=l.userProfile.getResources(p.query,g).$promise)},p.createOrEditAgent=function(e,n){a.show({controller:"CreateOrEditAgentDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{agent:n,agents:p.agents.rows,license:p.license,setting:p.setting,crudPermissions:p.crudPermissions}})},p.deleteAgent=v,p.exportSelectedAgents=function(){var e=angular.copy(p.selectedAgents);return p.selectedAgents=[],e},p.deleteSelectedAgents=function(e){var n=a.confirm().title("Are you sure want to delete the selected agents?").htmlContent("<b>"+p.selectedAgents.length+" selected</b> will be deleted.").ariaLabel("delete Agents").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){p.selectedAgents.forEach(function(e){v(e)}),p.selectedAgents=[]})},p.deselectAgents=function(){p.selectedAgents=[]},p.selectAllAgents=function(){p.selectedAgents=p.agents.rows};var h=!0,f=1;e.$watch("vm.query.filter",function(e,n){h?i(function(){h=!1}):(n||(f=p.query.page),e!==n&&(p.query.page=1),e||(p.query.page=f),p.getAgents())})}e.$inject=["$scope","$state","$mdDialog","$document","$timeout","agents","userProfile","userProfileSection","api","toasty","Auth","license","setting"],angular.module("app.staff").controller("AgentsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="STAFF.EDIT_AGENT",g.agent=angular.copy(l),g.agents=r,g.newAgent=!1,g.agent||(g.agent={role:"agent",showWebBar:"0",autointernal:!0,wssPort:8089,type:"friend",context:"from-sip",phoneBarRemoteControl:!0,phoneBarRemoteControlPort:9888,allowmessenger:!0,downloadAttachments:!0,downloadOmnichannelInteractions:!0,downloadVoiceRecordings:!0},g.title="STAFF.NEW_AGENT",g.newAgent=!0),g.addNewAgent=function(){g.errors=[],d.user.save(g.agent).$promise.then(function(e){g.agents.unshift(e.toJSON()),o.success({title:"Agent properly created",msg:g.agent.name?g.agent.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveAgent=function(){g.errors=[],d.user.update({id:g.agent.id},g.agent).$promise.then(function(e){var n=_.find(g.agents,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Agent properly saved!",msg:g.agent.name?g.agent.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteAgent=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The agent will be deleted.").ariaLabel("Delete Agent").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.user.delete({id:g.agent.id}).$promise.then(function(){_.remove(g.agents,{id:g.agent.id}),o.success({title:"Agent properly deleted!",msg:(g.agent.name||"agent")+" has been deleted!"}),v(g.agent)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","agents","agent","api","Auth","license","setting","crudPermissions"],angular.module("app.staff").controller("CreateOrEditAgentDialogController",e)}(),function(){"use strict";function e(e,a){var i=this;i.agent={},i.crudPermissions,i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.agent.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.agent.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e,n){i.agent=angular.copy(e),i.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.ngFlowOptions.target="api/users/"+i.agent.id+"/avatar",i.agent.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.staff").controller("Agentchange_avatarController",e)}(),function(){"use strict";function e(t,e,n,a,i,s,o){var r=this;function l(){e.hide()}r.currentUser=o.getCurrentUser(),r.errors=[],r.setting=s,r.passwordPattern=r.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",r.agent=i,r.password="",r.oldPassword="",r.savePassword=function(){r.errors=[];var e={id:r.agent.id,newPassword:r.password};r.currentUser.id==r.agent.id&&(e.oldPassword=r.oldPassword);a.user.changePassword(e).$promise.then(function(){n.success({title:"Agent password properly updated!"}),l()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.agent.save",msg:e.data?JSON.stringify(e.data.message):e.toString()}),r.errors=e.data.errors||[{message:e.toString(),type:"api.agent.changePassword"}]})},r.closeDialog=l,t.$watch("vm.password",function(e,n){_.isNil(r.oldPassword)||(e===r.oldPassword?t.agentForm.password.$setValidity("oldPasswordMatch",!1):t.agentForm.password.$setValidity("oldPasswordMatch",!0))})}e.$inject=["$scope","$mdDialog","toasty","api","agent","setting","Auth"],angular.module("app.staff").controller("AgentchangepasswordController",e)}(),function(){"use strict";function e(e,n,i,t,s){var o=this;o.agent={},o.navigation=t.getNavigation(),o.crudPermissions,o.init=function(e,n){o.agent=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1}},o.onChange=function(n,t){if((t||n).enabled){if(t)t.enabled=!0,o.agent.permissions.push(t.id);else for(var e=0;e<n.children.length;e++)n.children[e].enabled=!0,o.agent.permissions.push(n.children[e].id);n.enabled=!0,o.agent.permissions.push(n.id)}else if(t)t.enabled=!1,_.remove(o.agent.permissions,function(e){return t.id===e}),_.filter(n.children,{enabled:!1}).length===n.children.length&&(n.enabled=!1,_.remove(o.agent.permissions,function(e){return n.id===e}));else{n.enabled=!1,_.remove(o.agent.permissions,function(e){return n.id===e});for(var a=0;a<n.children.length;a++)n.children[a].enabled=!1,_.remove(o.agent.permissions,function(e){return n.children[a].id===e})}return i.user.update({id:o.agent.id,permissions:_.uniq(o.agent.permissions)}).$promise.then(function(){s.success({title:"agent updated!",msg:o.agent.name?o.agent.name+" has been updated!":""})}).catch(function(e){console.error(e)})}}e.$inject=["$document","$mdDialog","api","msNavigationAgentService","toasty"],angular.module("app.staff").controller("AgentPermissionsController",e)}(),function(){"use strict";function e(e,l,a,d,n,t,i,s,o,r){var c=this;function m(){return l(function(t,n){return l(function(n,t){return d[c.apiName].get({fields:"id,name,strategy,type",channel:c.channel,type:"voice"===c.channel?c.direction:void 0,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],o.hasRole("admin")?e:c.section?c.section.autoAssociation?e:l(function(n,t){return d.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:o.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),l(function(n,t){return d.user.getQueues({id:c.agent.id,fields:"id,name,strategy,type,penalty",nolimit:!0,type:"voice"===c.channel?c.direction:void 0,channel:c.channel}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return"voice"===c.channel&&(n.penalty=void 0!==n&&void 0!==e.UserVoiceQueue?"penalty "+e.UserVoiceQueue.penalty:"penalty 0"),n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=o.getCurrentUser(),c.agent=n,c.crudPermissions=r,c.penalty=0,c.channel=t,c.direction=i,c.apiName=c.channel+"Queue",c.title=s.instant("STAFF.ADD_AGENT_TO_"+("outbound"===c.direction?"QUEUE_CAMPAIGNS":c.channel.toUpperCase()+"_QUEUES")),c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"type",line3:"voice"===c.channel?"penalty":"",labelAll:s.instant("STAFF.ALL_"+("outbound"===c.direction?"QUEUE_CAMPAIGNS":c.channel.toUpperCase()+"_QUEUES")),labelSelected:s.instant("STAFF.SELECTED_"+("outbound"===c.direction?"QUEUE_CAMPAIGNS":c.channel.toUpperCase()+"_QUEUES")),transferCallback:function(e,n){n?e.forEach(function(e){e.penalty=void 0}):e.forEach(function(e){e.penalty="penalty "+c.penalty});var t=_.xorWith(c.startingSelectedItems,c.selectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});c.pendingChanges=!_.isEmpty(t)}},c.onInit=function(){return o.hasRole("admin")?m().catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.status?JSON.stringify(e.data):e.toString()})}):l(function(t,n){var e;switch(c.channel){case"voice":switch(c.direction){case"inbound":e="VoiceQueues";break;case"outbound":e="QueueCampaigns"}break;case"chat":e="ChatQueues";break;case"mail":e="MailQueues";break;case"sms":e="SmsQueues";break;case"openchannel":e="OpenchannelQueues";break;case"fax":e="FaxQueues"}d.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:e}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveQueues=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceWith(c.selectedItems,c.startingSelectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});return(t=e,l(function(e,n){_.isEmpty(t)?e():d.user.removeQueues({id:c.agent.id,ids:_.map(t,"id"),channel:c.channel}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return r=n,l(function(e,n){if(_.isEmpty(r))e();else if("voice"===c.channel){for(var t=[],a=_.groupBy(r,"penalty"),i=0;i<Object.keys(a).length;i++){var s=Object.keys(a)[i],o=_.filter(r,["penalty",s]);t.push(d.user.addQueues({id:c.agent.id,ids:_.map(o,"id"),channel:c.channel,penalty:_.trim(s,"penalty ")}).$promise)}l.all(t).then(function(){e()}).catch(function(e){n(e)})}else d.user.addQueues({id:c.agent.id,ids:_.map(r,"id"),channel:c.channel}).$promise.then(function(){e()}).catch(function(e){n(e)})});var r}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),a.success({title:"SUCCESS",msg:"Queues association has been updated!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:QUEUES_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","agent","channel","direction","$translate","Auth","crudPermissions"],angular.module("app.staff").controller("AgentQueueAddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.user.getTeams({id:l.agent.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.agent=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("STAFF.ALL_TEAMS"),labelSelected:t.instant("STAFF.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.user.removeTeams({id:l.agent.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.user.addTeams({id:l.agent.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","agent","$translate","Auth","crudPermissions"],angular.module("app.staff").controller("AgentteamaddController",e)}(),function(){"use strict";function e(e,n,i,s,t,a,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=a,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.agent=c||e.params.agent||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.queueaddchannel=function(e,n,t,a){i.show({controller:"AgentQueueAddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(s.body),targetEvent:t,clickOutsideToClose:!0,locals:{agent:e,agents:u.agents?u.agents.rows:[],channel:n,direction:a||"inbound",crudPermissions:u.crudPermissions}})},u.teamadddialog=function(e,n){i.show({controller:"AgentteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:u.agents?u.agents.rows:[],crudPermissions:u.crudPermissions}})},u.changepassworddialog=function(e,n){i.show({controller:"AgentchangepasswordController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/changepassword/changepassword.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,setting:o,agents:u.agents?u.agents.rows:[],crudPermissions:u.crudPermissions}})},u.onEnableScreenRecordingByAgentSelection=function(){["phoneBarEnableAutomaticScreenRecording"].forEach(function(e){u.agent.phoneBarEnableScreenRecordingByAgent&&(u.agent[e]=!u.agent.phoneBarEnableScreenRecordingByAgent)})},u.onEnableAutomaticScreenRecordingSelection=function(){["phoneBarEnableScreenRecordingByAgent"].forEach(function(e){u.agent.phoneBarEnableAutomaticScreenRecording&&(u.agent[e]=!u.agent.phoneBarEnableAutomaticScreenRecording)})},u.alert=l.info,u.gotoAgents=function(){e.go("app.staff.agents",{},{reload:"app.staff.agents"})},u.saveAgent=function(){u.agent=_.omit(u.agent,"userpic"),r.user.update({id:u.agent.id},u.agent).$promise.then(function(){l.success({title:"Agent updated!",msg:u.agent.name?u.agent.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CONTEXTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:405}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?void 0:r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.contexts,{id:e.resourceId})}),t=null;if(u.agent&&(t=_.find(u.contexts,{name:u.agent.context})),t&&!_.some(n,["id",t.id])){var a=_.find(u.contexts,{id:t.id});a.canSelect=!1,n.push(a)}u.contexts=n}):r.voiceContext.get({fields:"id,name",sort:"name",defaultEntry:1}).$promise.then(function(e){u.contexts=e.rows||[]})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","agent","userProfileSection"],angular.module("app.staff").controller("AgentController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="STAFF.EDIT_TEAM",g.team=angular.copy(l),g.teams=r,g.newTeam=!1,g.team||(g.team={},g.title="STAFF.NEW_TEAM",g.newTeam=!0),g.addNewTeam=function(){g.errors=[],d.team.save(g.team).$promise.then(function(e){g.teams.unshift(e.toJSON()),o.success({title:"Team properly created",msg:g.team.name?g.team.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.team.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.team.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveTeam=function(){g.errors=[],d.team.update({id:g.team.id},g.team).$promise.then(function(e){var n=_.find(g.teams,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Team properly saved!",msg:g.team.name?g.team.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.team.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.team.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteTeam=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The team will be deleted.").ariaLabel("Delete Team").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.team.delete({id:g.team.id}).$promise.then(function(){_.remove(g.teams,{id:g.team.id}),o.success({title:"Team properly deleted!",msg:(g.team.name||"team")+" has been deleted!"}),v(g.team)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.team.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.team.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","teams","team","api","Auth","license","setting","crudPermissions"],angular.module("app.staff").controller("CreateOrEditTeamDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.team.getAgents({id:c.team.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserTeam?"penalty "+e.UserTeam.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.team=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.team.removeAgents({id:c.team.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.team.addAgents({id:c.team.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("STAFF.ALL_AGENTS"),labelSelected:r.instant("STAFF.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","team","teams","realtime","$translate","Auth","crudPermissions"],angular.module("app.staff").controller("TeamagentaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.teams=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="teams",f.listOrder="",f.listOrderAsc=null,f.selectedTeams=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditTeamDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/teams/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{team:e,teams:f.teams.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"TeamagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/teams/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{team:e,teams:f.teams?f.teams.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("team")+"?").htmlContent("<b>"+(e.name||"team")+"</b> will be deleted.").ariaLabel("delete team").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getTeams=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.team.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Teams",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditTeam=function(e,n){i.show({controller:"CreateOrEditTeamDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/teams/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{team:n,teams:f.teams.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteTeam=y,f.exportSelectedTeams=function(){var e=angular.copy(f.selectedTeams);return f.selectedTeams=[],e},f.deleteSelectedTeams=function(e){var n=i.confirm().title("Are you sure want to delete the selected teams?").htmlContent("<b>"+f.selectedTeams.length+" selected</b> will be deleted.").ariaLabel("delete Teams").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedTeams.forEach(function(e){y(e)}),f.selectedTeams=[]})},f.deselectTeams=function(){f.selectedTeams=[]},f.selectAllTeams=function(){f.selectedTeams=f.teams.rows};var b=!0,A=1;function E(e){f.teams=e||{count:0,rows:[]}}function y(e){m.team.delete({id:e.id}).$promise.then(function(){_.remove(f.teams.rows,{id:e.id}),f.teams.count-=1,f.teams.rows.length||f.getTeams(),p.success({title:_.startCase("Team")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEteam"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEteam",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getTeams())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","teams","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.staff").controller("TeamsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="STAFF.EDIT_TELEPHONE",g.telephone=angular.copy(l),g.telephones=r,g.newTelephone=!1,g.telephone||(g.telephone={role:"telephone",autointernal:!0,context:"from-sip"},g.title="STAFF.NEW_TELEPHONE",g.newTelephone=!0),g.addNewTelephone=function(){g.errors=[],d.user.save(g.telephone).$promise.then(function(e){g.telephones.unshift(e.toJSON()),o.success({title:"Telephone properly created",msg:g.telephone.name?g.telephone.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveTelephone=function(){g.errors=[],d.user.update({id:g.telephone.id},g.telephone).$promise.then(function(e){var n=_.find(g.telephones,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Telephone properly saved!",msg:g.telephone.name?g.telephone.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteTelephone=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The telephone will be deleted.").ariaLabel("Delete Telephone").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.user.delete({id:g.telephone.id}).$promise.then(function(){_.remove(g.telephones,{id:g.telephone.id}),o.success({title:"Telephone properly deleted!",msg:(g.telephone.name||"telephone")+" has been deleted!"}),v(g.telephone)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","telephones","telephone","api","Auth","license","setting","crudPermissions"],angular.module("app.staff").controller("CreateOrEditTelephoneDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i,s,o){var r=this;function l(){e.hide()}r.currentUser=o.getCurrentUser(),r.errors=[],r.setting=s,r.passwordPattern=r.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",r.telephone=i,r.password="",r.oldPassword="",r.savePassword=function(){r.errors=[];var e={id:r.telephone.id,newPassword:r.password};r.currentUser.id==r.telephone.id&&(e.oldPassword=r.oldPassword);a.user.changePassword(e).$promise.then(function(){n.success({title:"Telephone password properly updated!"}),l()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.telephone.save",msg:e.data?JSON.stringify(e.data.message):e.toString()}),r.errors=e.data.errors||[{message:e.toString(),type:"api.telephone.changePassword"}]})},r.closeDialog=l,t.$watch("vm.password",function(e,n){_.isNil(r.oldPassword)||(e===r.oldPassword?t.telephoneForm.password.$setValidity("oldPasswordMatch",!1):t.telephoneForm.password.$setValidity("oldPasswordMatch",!0))})}e.$inject=["$scope","$mdDialog","toasty","api","telephone","setting","Auth"],angular.module("app.staff").controller("TelephonechangepasswordController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.telephone=c||e.params.telephone||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.changepassworddialog=function(e,n){t.show({controller:"TelephonechangepasswordController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/telephones/edit/changepassword/changepassword.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{telephone:e,setting:o,telephones:u.telephones?u.telephones.rows:[],crudPermissions:u.crudPermissions}})},u.alert=l.info,u.gotoTelephones=function(){e.go("app.staff.telephones",{},{reload:"app.staff.telephones"})},u.saveTelephone=function(){r.user.update({id:u.telephone.id},u.telephone).$promise.then(function(){l.success({title:"Telephone updated!",msg:u.telephone.name?u.telephone.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CONTEXTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:405}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?void 0:r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.contexts,{id:e.resourceId})}),t=null;if(u.telephone&&(t=_.find(u.contexts,{name:u.telephone.context})),t&&!_.some(n,["id",t.id])){var a=_.find(u.contexts,{id:t.id});a.canSelect=!1,n.push(a)}u.contexts=n}):r.voiceContext.get({fields:"id,name",sort:"name",defaultEntry:1}).$promise.then(function(e){u.contexts=e.rows||[]})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","telephone","userProfileSection"],angular.module("app.staff").controller("TelephoneController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.telephones=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="telephones",f.listOrder="",f.listOrderAsc=null,f.selectedTelephones=[],f.query={fields:"createdAt,updatedAt,id,role,fullname,name,email,password,description,autointernal,internal,voicemail,transport,nat,allow,callerid,context,callgroup,pickupgroup,videosupport,encryption,phone,mobile",role:"telephone",sort:"-updatedAt",limit:10,page:1},f.arraytransport=_.keyBy([{option:"udp",value:"'udp'"},{option:"tcp",value:"'tcp'"},{option:"ws",value:"'ws'"},{option:"wss",value:"'wss'"},{option:"tls",value:"'tls'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraynat=_.keyBy([{option:"force_rport",value:"'force_rport'"},{option:"comedia",value:"'comedia'"},{option:"yes",value:"'yes'"},{option:"no",value:"'no'"},{option:"never",value:"'never'"},{option:"route",value:"'route'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayallow=_.keyBy([{option:"ulaw",value:"'ulaw'"},{option:"alaw",value:"'alaw'"},{option:"gsm",value:"'gsm'"},{option:"g722",value:"'g722'"},{option:"g729",value:"'g729'"},{option:"opus",value:"'opus'"},{option:"h264",value:"'h264'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayvideosupport=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Always",value:"'always'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayencryption=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.staff.telephones.edit",{id:e.id,telephone:e,crudPermissions:f.crudPermissions})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("telephone")+"?").htmlContent("<b>"+(e.name||"telephone")+"</b> will be deleted.").ariaLabel("delete telephone").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getTelephones=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.user.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Telephones",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditTelephone=function(e,n){i.show({controller:"CreateOrEditTelephoneDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/telephones/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{telephone:n,telephones:f.telephones.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteTelephone=y,f.exportSelectedTelephones=function(){var e=angular.copy(f.selectedTelephones);return f.selectedTelephones=[],e},f.deleteSelectedTelephones=function(e){var n=i.confirm().title("Are you sure want to delete the selected telephones?").htmlContent("<b>"+f.selectedTelephones.length+" selected</b> will be deleted.").ariaLabel("delete Telephones").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedTelephones.forEach(function(e){y(e)}),f.selectedTelephones=[]})},f.deselectTelephones=function(){f.selectedTelephones=[]},f.selectAllTelephones=function(){f.selectedTelephones=f.telephones.rows};var b=!0,A=1;function E(e){f.telephones=e||{count:0,rows:[]}}function y(e){m.user.delete({id:e.id}).$promise.then(function(){_.remove(f.telephones.rows,{id:e.id}),f.telephones.count-=1,f.telephones.rows.length||f.getTelephones(),p.success({title:_.startCase("Telephone")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEuser"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEuser",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getTelephones())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","telephones","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.staff").controller("TelephonesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="STAFF.EDIT_USERPROFILE",g.userProfile=angular.copy(l),g.userProfiles=r,g.newUserProfile=!1,g.userProfile||(g.userProfile={crudPermissions:["r"],downloadAttachments:!0,downloadCallySquareRecordings:!0,downloadContactManagerLists:!0,downloadJscriptySessions:!0,downloadOmnichannelInteractions:!0,downloadScreenRecordings:!0,downloadVoiceRecordings:!0},g.title="STAFF.NEW_USERPROFILE",g.newUserProfile=!0),g.addNewUserProfile=function(){g.errors=[],d.userProfile.save(g.userProfile).$promise.then(function(e){var n,t;t=[],(n=e).crudPermissions.forEach(function(e){var n;switch(e){case"r":n="READ_PERMISSION";break;case"e":n="EDIT_PERMISSION";break;case"d":n="DELETE_PERMISSION"}t.push(s.instant("STAFF."+n))}),n.selectedcrudPermissions=t.join(", "),g.userProfiles.unshift(e.toJSON()),o.success({title:"UserProfile properly created",msg:g.userProfile.name?g.userProfile.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.userProfile.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.userProfile.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveUserProfile=function(){g.errors=[],d.userProfile.update({id:g.userProfile.id},g.userProfile).$promise.then(function(e){var n=_.find(g.userProfiles,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"UserProfile properly saved!",msg:g.userProfile.name?g.userProfile.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.userProfile.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.userProfile.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteUserProfile=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The userProfile will be deleted.").ariaLabel("Delete UserProfile").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.userProfile.delete({id:g.userProfile.id}).$promise.then(function(){_.remove(g.userProfiles,{id:g.userProfile.id}),o.success({title:"UserProfile properly deleted!",msg:(g.userProfile.name||"userProfile")+" has been deleted!"}),v(g.userProfile)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.userProfile.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.userProfile.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","userProfiles","userProfile","api","Auth","license","setting","crudPermissions"],angular.module("app.staff").controller("CreateOrEditUserProfileDialogController",e)}(),function(){"use strict";function e(n,a,i,e,t,s,o){var r=this;function l(e){n.hide(e)}r.newUserProfile=!0,r.userProfile=angular.copy(t),r.userProfiles=s,r.title=o.instant("STAFF.CLONE_USERPROFILE"),t&&t.name&&(r.title+=": "+t.name),r.cloneUserProfile=function(){return e.userProfile.clone({id:t.id},r.userProfile).$promise.then(function(e){var n,t;t=[],(n=e).crudPermissions.forEach(function(e){var n;switch(e){case"r":n="READ_PERMISSION";break;case"e":n="EDIT_PERMISSION";break;case"d":n="DELETE_PERMISSION"}t.push(o.instant("STAFF."+n))}),n.selectedcrudPermissions=t.join(", "),r.userProfiles.unshift(e.toJSON()),i.success({title:"UserProfile properly cloned",msg:r.userProfile.name?r.userProfile.name+" has been cloned!":""}),a.go("app.staff.userProfiles.edit",{id:e.id}),l(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.userProfile.clone"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.userProfile.clone",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$mdDialog","$state","toasty","api","userProfile","userProfiles","$translate"],angular.module("app.staff").controller("UserProfilecloneController",e)}(),function(){"use strict";function e(t,o,r,l,d,e,n,c){var m=this;function u(e,n){switch(e.allResourcesEnabled="full"===n,n){case"full":return _.find(m.statusList,["tag","full"]);case"partial":return _.find(m.statusList,["tag","partial"]);case"disabled":return _.find(m.statusList,["tag","disabled"]);case"unlicensed":return _.find(m.statusList,["tag","unlicensed"]);case"unknown":default:return _.find(m.statusList,["tag","unknown"])}}function p(e){return l(function(n,t){var o,a;void 0!==e.channel&&_.includes(e.route,"Queue")?(a=e,l(function(n,t){var e=void 0!==a.channel&&"bull"===a.channel?"outbound":"inbound";return d[a.route].get({fields:"id,name,strategy,type",channel:"bull"===a.channel?"voice":a.channel,type:e,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})).then(function(e){n(e)}).catch(function(e){t(e)}):(o=e,l(function(a,n){switch(o.route){case"voiceExtension":var e;switch(o.title){case"InboundRoutes":e="inbound";break;case"OutboundRoutes":e="outbound";break;case"InternalRoutes":e="internal"}break;case"interval":var t=!0;break;case"disposition":var i=!0;break;case"user":var s;switch(o.title){case"Agents":s="agent";break;case"Telephones":s="telephone";break;case"Users":s="user"}}if("Reports"===o.title){if(!o.reportType)return d.analyticDefaultReport.get({nolimit:!0}).$promise.then(function(t){d.analyticCustomReport.get({nolimit:!0}).$promise.then(function(e){var n=_.union(t.rows,e.rows);a({count:n.length,rows:n.rows})})}).catch(function(e){n(e)});switch(o.reportType){case"default":o.route="analyticDefaultReport";break;case"custom":o.route="analyticCustomReport"}}return d[o.route].get({role:s||void 0,type:e||void 0,VoiceExtensionId:e?"null":void 0,IntervalId:t?"null":void 0,MailAccountId:i?"null":void 0,FaxAccountId:i?"null":void 0,SmsAccountId:i?"null":void 0,OpenchannelAccountId:i?"null":void 0,ChatWebsiteId:i?"null":void 0,WhatsappAccountId:i?"null":void 0,ListId:i?"null":void 0,nolimit:!0}).$promise.then(function(e){a(e)}).catch(function(e){n(e)})})).then(function(e){n(e)}).catch(function(e){t(e)})})}function g(e,n,t){var a=e&&0<e.length?e[0]:null;if(!a)return t;var i,s,o=_.find(n,["sectionId",a.id]);return o?(n=_.remove(n,["sectionId",a.id]),(i=a,s=o.id,l(function(n,t){d.userProfileResource.get({sectionId:s}).$promise.then(function(n){return p(i).then(function(e){return _.differenceBy(n.rows,e.rows,"id")})}).then(function(e){_.isEmpty(e)?n():t()}).catch(function(e){t(e)})})).then(function(){return t="full",g(e.shift(),n,t)}).catch(function(e){return l.reject(e)})):void 0}function a(a){var t="Marketplace"===a.title?"AppZone":a.title;m.license?void 0===a.permissions||a.permissions.association?void 0===a.license||m.license[a.license]?d.userProfileSection.get({userProfileId:m.userProfile.id,category:t}).$promise.then(function(e){var n=e&&e.rows&&0<e.rows.length?e.rows:[];if("Dashboards"===a.title)return _.isEmpty(n)?"disabled":n[0].autoAssociation?"full":d.userProfileResource.get({sectionId:n[0].id,resourceId:101}).$promise.then(function(e){return(e&&e.rows?e.rows[0]:null)?"full":"partial"});var t=_.filter(a.children,function(e){return void 0!==e.permissions&&e.permissions.hidden?void 0:e});return n.length!==t.length?0===n.length?"disabled":"partial":_.every(n,["autoAssociation",!0])?"full":g(_.filter(t,function(e){return void 0===e.permissions||e.permissions.association?e:void 0}),n,"partial")}).then(function(e){a.status=u(a,e)}).catch(function(e){var n=e?"unknown":"partial";a.status=u(a,n),e&&c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GETRESOURCES("+t.toUpperCase()+")",msg:e.status?JSON.stringify(e.data):e.toString()})}):a.status=u(a,"unlicensed"):d.userProfileSection.get({userProfileId:m.userProfile.id,sectionId:a.id}).$promise.then(function(e){var n=(e&&1===e.rows.length?e.rows[0]:null)?"full":"disabled";a.status=u(a,n)}):a.status=u(a,"unknown")}m.userProfile={},m.license={},m.navigation=e.getNavigation(),m.modules=m.navigation[0].children,m.statusList=[{id:0,name:"Fully Enabled",color:"green-A700-bg",info:"All resources enabled",tag:"full"},{id:1,name:"Partially Enabled",color:"orange-A700-bg",info:"Some resources enabled",tag:"partial"},{id:2,name:"Disabled",color:"grey-A400-bg",info:"No resources enabled",tag:"disabled"},{id:3,name:"Unlicensed",color:"red-A700-bg",info:"Module not included in the license",tag:"unlicensed"},{id:4,name:"Unknown",color:"grey-A700-bg",info:"Unknown status",tag:"unknown"}],m.dashboardSections=[{title:"Dashboards",translate:"DASHBOARDS.DASHBOARDS",id:100}],m.init=function(e,n){m.userProfile=e,m.license=n},m.onChangeEnableAllResources=function(n){var e=void 0!==n.permissions&&!n.permissions.association,a="Marketplace"===n.title?"AppZone":n.title;if("Fully Enabled"!==n.status.name){var i=[];if(e)return i.push({category:a,sectionId:n.id,name:a,enabled:!0,crudPermissions:"red"}),d.userProfile.addSections({id:m.userProfile.id},i).$promise.then(function(){n.status=u(n,"full"),c.success({title:r.instant("STAFF.NOTIFICATIONS.PERMISSIONS_ENABLED_ALL_SUCCESS_TITLE",{sectionName:r.instant(n.translate),userProfileName:m.userProfile.name}),msg:r.instant("STAFF.NOTIFICATIONS.PERMISSIONS_ENABLED_ALL_SUCCESS_MESSAGE_NO_RESOURCES",{sectionName:r.instant(n.translate),userProfileName:m.userProfile.name})})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:USERPROFILE.ADDSECTIONS",msg:e.status?JSON.stringify(e.data):e.toString()})});var t=o.confirm({skipHide:!0}).title("Warning").textContent(r.instant("STAFF.PERMISSIONS_WARNING_ENABLE_ALL",{sectionName:r.instant(n.translate)})).ariaLabel("Warning").ok(r.instant("STAFF.CONFIRM")).cancel(r.instant("STAFF.CANCEL"));o.show(t).then(function(){switch(a){case"Dashboards":_.map(m.dashboardSections,function(e){i.push({category:a,sectionId:e.id,name:e.title,enabled:!0,autoAssociation:!0,crudPermissions:_.map(m.userProfile.crudPermissions).join("")})});break;default:_.map(n.children,function(e){var n=!(void 0===e.permissions||!e.permissions.hidden);if(!n){var t=e.title;switch(a){case"CallySquare":t="Projects"===t?"SquareProjects":t}i.push({category:a,sectionId:e.id,name:t,enabled:!0,autoAssociation:!0,crudPermissions:_.map(m.userProfile.crudPermissions).join("")})}})}return d.userProfile.addSections({id:m.userProfile.id},i).$promise.then(function(){n.status=u(n,"full"),c.success({title:r.instant("STAFF.NOTIFICATIONS.PERMISSIONS_ENABLED_ALL_SUCCESS_TITLE",{sectionName:r.instant(n.translate),userProfileName:m.userProfile.name}),msg:r.instant("STAFF.NOTIFICATIONS.PERMISSIONS_ENABLED_ALL_SUCCESS_MESSAGE",{sectionName:r.instant(n.translate),userProfileName:m.userProfile.name})})})}).catch(function(e){e?c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:USERPROFILE.ADDSECTIONS",msg:e.status?JSON.stringify(e.data):e.toString()}):n.status=u(n,n.status.tag)})}else if("Fully Enabled"===n.status.name){n.status=u(n,"disabled");var s=[];switch(a){case"Settings":case"Help":s=[n.id];break;case"Dashboards":s=_.map(m.dashboardSections,function(e){return e.id});break;default:s=_.map(n.children,function(e){return e.id})}return d.userProfile.removeSections({id:m.userProfile.id,ids:s}).$promise.then(function(){c.success({title:r.instant("STAFF.NOTIFICATIONS.PERMISSIONS_DISABLED_ALL_SUCCESS_TITLE",{sectionName:r.instant(n.translate),userProfileName:m.userProfile.name}),msg:r.instant("STAFF.NOTIFICATIONS.PERMISSIONS_DISABLED_ALL_SUCCESS_MESSAGE",{sectionName:r.instant(n.translate),userProfileName:m.userProfile.name})})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:USERPROFILE.REMOVESECTIONS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},m.manageResources=function(e,n){o.show({controller:"UserProfilepermissionsmanageController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/userProfiles/edit/permissionsmanage/permissionsmanage.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!1,locals:{userProfile:m.userProfile,userProfiles:[],section:e}}).then(function(){a(e)})},m.checkSectionResources=a}e.$inject=["$document","$mdDialog","$translate","$q","api","msNavigationService","Auth","toasty"],angular.module("app.staff").controller("UserProfilePermissionsController",e)}(),function(){"use strict";function e(n,t,i,o,r,e,a,l,s,d){var c=this;function m(){var a=void 0!==c.selectedSection.pending&&c.selectedSection.pending;return i(function(t,n){r.userProfileSection.get({userProfileId:c.userProfile.id,sectionId:c.selectedSection.id}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;a||(c.selectedSection.enabled=!!n&&!!n.enabled,c.selectedSection.autoAssociation=!!n&&!!n.autoAssociation,c.selectedSection.crudPermissions=v(n?n.crudPermissions:c.userProfile.crudPermissions)),t(n)}).catch(function(e){n(e)})})}function u(){return i(function(n,t){c.loadedSection?r.userProfileResource.get({sectionId:c.loadedSection.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)}):n(null)})}function p(){return i(function(n,t){void 0!==c.selectedSection.channel&&_.includes(c.selectedSection.route,"Queue")?i(function(n,t){var e=void 0!==c.selectedSection.channel&&"bull"===c.selectedSection.channel?"outbound":"inbound";return r[c.selectedSection.route].get({fields:"id,name,strategy,type",channel:"bull"===c.selectedSection.channel?"voice":c.selectedSection.channel,type:e,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){n(e)}).catch(function(e){t(e)}):i(function(n,t){var e,a;if("voiceExtension"===c.selectedSection.route)switch(c.selectedSection.title){case"InboundRoutes":e="inbound";break;case"OutboundRoutes":e="outbound";break;case"InternalRoutes":e="internal"}if("user"===c.selectedSection.route)switch(c.selectedSection.title){case"Agents":a="agent";break;case"Telephones":a="telephone";break;case"Users":a="user"}if("interval"===c.selectedSection.route)var i=!0;if("disposition"===c.selectedSection.route)var s=!0;if("Reports"===c.selectedSection.title&&(c.selectedSection.route="default"===c.selectedSection.reportType?"analyticDefaultReport":"analyticCustomReport"),"Dashboards"!==c.selectedSection.title)return r[c.selectedSection.route].get({role:a||void 0,type:e||void 0,VoiceExtensionId:e?"null":void 0,IntervalId:i?"null":void 0,MailAccountId:s?"null":void 0,FaxAccountId:s?"null":void 0,SmsAccountId:s?"null":void 0,OpenchannelAccountId:s?"null":void 0,ChatWebsiteId:s?"null":void 0,WhatsappAccountId:s?"null":void 0,ListId:s?"null":void 0,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)});n({count:1,rows:[{id:101,name:l.instant("DASHBOARDS.GENERAL")}]})}).then(function(e){n(e)}).catch(function(e){t(e)})})}function g(){var i=void 0!==c.selectedSection.pending&&c.selectedSection.pending,s=[];return u().then(function(e){var n;return s=e&&e.rows?e.rows:[],"Reports"===c.selectedSection.title&&(c.associatedReports=c.associatedReports?c.associatedReports:s,n=c.associatedReports,s=_.filter(n,{type:"default"===c.selectedSection.reportType?"DefaultReports":"CustomReports"})),void 0===c.selectedSection.permissions||c.selectedSection.permissions.association?p():{rows:[]}}).then(function(e){c.items=e.rows?_.map(e.rows,function(e){var n,t;return"Reports"===c.selectedSection.title&&(e.fullPath=(n=e.parent,t=c.treeStructure[0].text,t=function e(n,t,a){if(!a||_.isEmpty(a.children))return n;var a=_.find(a.children,function(e){return _.includes(t,e.id)?e:void 0});return n+=a?"/"+a.text:"",e(n,t,a)}(t,n,c.treeStructure[0])).replace(" ","_")),e.isValid=!0,e}):[],i||(c.selectedSection.selectedItems=_.map(s,function(e){return _.find(c.items,{id:e.resourceId})}));var n,t=_.differenceBy(c.selectedSection.selectedItems,c.items,"id");switch(_.isEmpty(t)||(c.selectedSection.selectedItems=_.pullAllBy(c.selectedSection.selectedItems,t,"id")),c.selectedSection.title){case"Contexts":c.selectedSection.selectedItems=_.filter(c.items,function(e){return e.defaultEntry?(e.isValid=!1,e):void 0!==_.find(s,{resourceId:e.id})?(e.isValid=!0,e):void 0});break;case"MusicOnHolds":c.selectedSection.selectedItems=_.filter(c.items,function(e){return e.defaultEntry?(e.isValid=!1,e):void 0!==_.find(s,{resourceId:e.id})?(e.isValid=!0,e):void 0});break;case"Reports":var a=(n=c.allReportsSelected,_.filter(n,function(e){return _.startsWith(e.parent,"default"===c.selectedSection.reportType?"motion":"custom")}));c.selectedSection.selectedItems=b(c.selectedSection.selectedItems),c.selectedSection.selectedItems=_.unionBy(c.selectedSection.selectedItems,a,"id")}c.dualMultiselectOptions.selectedItems=c.selectedSection.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.items,c.dualMultiselectOptions.selectedItems,"id")}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET"+c.selectedSection.title.toUpperCase(),msg:e.status?JSON.stringify(e.data):e.toString()})})}function v(e){return e&&(c.selectedSection.allowEdit=!!_.includes(e,"e"),c.selectedSection.allowDelete=!!_.includes(e,"d")),function(){var e=["r"];if(c.selectedSection.allowEdit)e.push("e");else{var n=_.indexOf(e,["e"]);0<n&&c.selectedSection.crudPermissions.replace("e","")}if(c.selectedSection.allowDelete)e.push("d");else{var n=_.indexOf(e,["d"]);0<n&&c.selectedSection.crudPermissions.replace("d","")}return e}()}function h(e){var n=_.findIndex(c.subsections,function(e){return e.id==c.selectedSection.id});c.subsections[n].pending=e,f()}function f(){return c.pendingChanges=_.some(c.subsections,["pending",!0])}function b(e){return _.remove(e,function(e){return _.startsWith(e.parent,"default"===c.selectedSection.reportType?"motion":"custom")})}function A(){_.isEmpty(c.selectedSection.selectedItems)?c.allReportsSelected=_.remove(c.allReportsSelected,function(e){return e.type===("default"===c.selectedSection.reportType?"CustomReports":"DefaultReports")}):c.selectedSection.selectedItems.forEach(function(e){_.some(c.allReportsSelected,{id:e.id,parent:e.parent})||c.allReportsSelected.push(e)})}c.userProfile=e,c.penalty=0,c.section=angular.copy(d),c.title=l.instant("STAFF.PERMISSIONS_SECTION_TITLE",{sectionName:l.instant(c.section.translate)}),c.items=[],c.selectedItems=[],c.subsections=_.filter(c.section.children,function(e){return void 0!==e.permissions&&e.permissions.hidden?void 0:e}),c.dashboardSections=[{title:"Dashboards",translate:"DASHBOARDS.DASHBOARDS",id:100}],c.dashboardItems=[],"Dashboards"===c.section.title&&(c.dashboardItems=c.subsections,c.subsections=c.dashboardSections),c.selectedSection=null,c.loadedSection=null,c.allReportsSelected=[],c.closeDialog=function(e){if(c.pendingChanges){var n=t.confirm({skipHide:!0}).title("Warning").textContent(l.instant("STAFF.PERMISSIONS_WARNING_CLOSE")).ariaLabel("Warning").targetEvent(e).ok(l.instant("STAFF.CLOSE")).cancel(l.instant("STAFF.CANCEL"));t.show(n).then(function(){t.hide()})}else t.hide()},c.onChangeSection=function(){return m().then(function(e){if(c.loadedSection=e,"Reports"===c.selectedSection.title)return i(function(n,t){r.analyticTreeReport.get({}).$promise.then(function(e){c.treeReports=e.rows||[],n(c.treeReports)}).catch(function(e){t(e)})}).then(function(){if(!c.selectedSection.reportType)return u().then(function(e){c.allReportsSelected=e?_.map(e.rows,function(e){return{id:e.resourceId,name:e.name,type:e.type}}):[]})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TREE_REPORT_STRUCTURE",msg:e.data?JSON.stringify(e.data):e.toString()})});g()}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET"+c.selectedSection.title.toUpperCase(),msg:e.status?JSON.stringify(e.data):e.toString()})})},c.onChangeVisibility=function(){c.selectedSection.enabled=!c.selectedSection.enabled,h(!0)},c.onChangeAutoAssociation=function(){if(!c.selectedSection.autoAssociation){for(var e=[],n=0;n<c.dualMultiselectOptions.items.length;n++)e.push(c.dualMultiselectOptions.items[n]),c.dualMultiselectOptions.selectedItems.push(c.dualMultiselectOptions.items[n]);c.dualMultiselectOptions.items=[],c.dualMultiselectOptions.transferCallback(e,!1)}h(!0)},c.onChangeReportType=function(){c.treeStructure="default"===c.selectedSection.reportType?c.treeReports[0]?angular.fromJson(c.treeReports[0].tree):[]:c.treeReports[1]?angular.fromJson(c.treeReports[1].tree):[],c.selectedSection.selectedItems&&(c.allReportsSelected=b(c.allReportsSelected),A());g()},c.setPermission=function(e){"edit"===e?c.selectedSection.allowEdit=!c.selectedSection.allowEdit:"delete"===e&&(c.selectedSection.allowDelete=!c.selectedSection.allowDelete);c.selectedSection.crudPermissions=v(),h(!0)},c.saveSection=function(){var a="Marketplace"===c.section.title?"AppZone":c.section.title,e=_(c.subsections).filter({pending:!0}).map(function(e){var n="CallySquare"===a&&"Projects"===e.title?"SquareProjects":e.title,t="Reports"===n?c.allReportsSelected:e.selectedItems;return"Integrations"===a&&(e.autoAssociation=!0),{category:a,sectionId:e.id,name:n,enabled:e.enabled,autoAssociation:e.autoAssociation,crudPermissions:_.map(e.crudPermissions).join(""),Resources:_.map(t,function(e){return{name:e.name,resourceId:e.id,type:function(e,n){if("Reports"!==e)return e;{if(n.parent){var t=_.startsWith(n.parent,"motion")?"Default":"Custom";return t+e}return n.type}}(n,e)}})}}).value();return r.userProfile.addSections({id:c.userProfile.id},e).$promise.then(function(){c.subsections.forEach(function(e){e.pending=void 0}),c.associatedReports=null,f(),"Reports"!==c.selectedSection.title||c.selectedSection.reportType||n.userProfileForm.$setPristine(),o.success({title:l.instant("STAFF.NOTIFICATIONS.PERMISSIONS_SAVED_SUCCESS_TITLE",{sectionName:l.instant(a.translate)}),msg:l.instant("STAFF.NOTIFICATIONS.PERMISSIONS_SAVED_SUCCESS_MESSAGE")})}).then(function(){return m().then(function(e){c.loadedSection=e})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:USERPROFILE.ADDSECTIONS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",line4:"fullPath",labelAll:l.instant("STAFF.PERMISSIONS_ALL_RESOURCES"),labelSelected:l.instant("STAFF.PERMISSIONS_SELECTED_RESOURCES"),transferCallback:function(e,n){h(!0),n?(c.selectedSection.selectedItems=_.pullAllBy(c.selectedSection.selectedItems,e,"id"),c.selectedSection.autoAssociation=!1):c.selectedSection.selectedItems=_.unionBy(c.selectedSection.selectedItems,e,"id"),"Reports"===c.selectedSection.title&&A()}}}e.$inject=["$scope","$mdDialog","$q","toasty","api","userProfile","userProfiles","$translate","Auth","section"],angular.module("app.staff").controller("UserProfilepermissionsmanageController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.userProfile=c||e.params.userProfile||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.permissionsmanagedialog=function(e,n){t.show({controller:"UserProfilepermissionsmanageController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/userProfiles/edit/permissionsmanage/permissionsmanage.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{userProfile:e,userProfiles:u.userProfiles?u.userProfiles.rows:[],crudPermissions:u.crudPermissions}})},u.clonedialog=function(e,n){t.show({controller:"UserProfilecloneController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/userProfiles/edit/clone/clone.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{userProfile:e,userProfiles:u.userProfiles?u.userProfiles.rows:[],crudPermissions:u.crudPermissions}})},u.alert=l.info,u.gotoUserProfiles=function(){e.go("app.staff.userProfiles",{},{reload:"app.staff.userProfiles"})},u.saveUserProfile=function(){r.userProfile.update({id:u.userProfile.id},u.userProfile).$promise.then(function(){l.success({title:"UserProfile updated!",msg:u.userProfile.name?u.userProfile.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuserProfile",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","userProfile","userProfileSection"],angular.module("app.staff").controller("UserProfileController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.userProfiles=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="userProfiles",f.listOrder="",f.listOrderAsc=null,f.selectedUserProfiles=[],f.query={fields:"createdAt,updatedAt,id,name,description,crudPermissions,privacyEnabled,downloadAttachments,downloadCallySquareRecordings,downloadContactManagerLists,downloadJscriptySessions,downloadOmnichannelInteractions,downloadScreenRecordings,downloadVoiceRecordings",sort:"-updatedAt",limit:10,page:1},f.arraycrudPermissions=_.keyBy([{option:"Read_permission",value:"'r'",disabled:!0},{option:"Edit_permission",value:"'e'"},{option:"Delete_permission",value:"'d'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.userProfiles&&0<f.userProfiles.count&&f.userProfiles.rows.forEach(function(e){var n=[];e.crudPermissions.forEach(function(e){n.push(f.arraycrudPermissions[e].option)});var t=[];n.forEach(function(e){t.push(r.instant("STAFF."+e.toUpperCase()))}),e.selectedcrudPermissions=t.join(", ")}),f.editstate=function(e,n){t.go("app.staff.userProfiles.edit",{id:e.id,userProfile:e,crudPermissions:f.crudPermissions})},f.clonedialog=function(e,n){i.show({controller:"UserProfilecloneController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/userProfiles/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{userProfile:e,userProfiles:f.userProfiles?f.userProfiles.rows:[],crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("userProfile")+"?").htmlContent("<b>"+(e.name||"userProfile")+"</b> will be deleted.").ariaLabel("delete userProfile").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getUserProfiles=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.userProfile.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="UserProfiles",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditUserProfile=function(e,n){i.show({controller:"CreateOrEditUserProfileDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/userProfiles/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{userProfile:n,userProfiles:f.userProfiles.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteUserProfile=y,f.exportSelectedUserProfiles=function(){var e=angular.copy(f.selectedUserProfiles);return f.selectedUserProfiles=[],e},f.deleteSelectedUserProfiles=function(e){var n=i.confirm().title("Are you sure want to delete the selected userProfiles?").htmlContent("<b>"+f.selectedUserProfiles.length+" selected</b> will be deleted.").ariaLabel("delete UserProfiles").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedUserProfiles.forEach(function(e){y(e)}),f.selectedUserProfiles=[]})},f.deselectUserProfiles=function(){f.selectedUserProfiles=[]},f.selectAllUserProfiles=function(){f.selectedUserProfiles=f.userProfiles.rows};var b=!0,A=1;function E(e){f.userProfiles=e||{count:0,rows:[]}}function y(e){m.userProfile.delete({id:e.id}).$promise.then(function(){_.remove(f.userProfiles.rows,{id:e.id}),f.userProfiles.count-=1,f.userProfiles.rows.length||f.getUserProfiles(),p.success({title:_.startCase("UserProfile")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEuserProfile"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEuserProfile",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getUserProfiles())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","userProfiles","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.staff").controller("UserProfilesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="STAFF.EDIT_USER",g.user=angular.copy(l),g.users=r,g.newUser=!1,g.user||(g.user={role:"user",autointernal:!0,context:"from-sip"},g.title="STAFF.NEW_USER",g.newUser=!0),g.addNewUser=function(){g.errors=[],d.user.save(g.user).$promise.then(function(e){g.users.unshift(e.toJSON()),o.success({title:"User properly created",msg:g.user.name?g.user.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveUser=function(){g.errors=[],d.user.update({id:g.user.id},g.user).$promise.then(function(e){var n=_.find(g.users,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"User properly saved!",msg:g.user.name?g.user.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteUser=function(e){if(c.getCurrentUser().id===g.user.id)return o.error({title:"User not deleted!",msg:"You can't remove yourself"});g.errors=[];var n=a.confirm().title("Are you sure?").content("The user will be deleted.").ariaLabel("Delete User").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.user.delete({id:g.user.id}).$promise.then(function(){_.remove(g.users,{id:g.user.id}),o.success({title:"User properly deleted!",msg:(g.user.name||"user")+" has been deleted!"}),v(g.user)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,d.userProfile.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.userProfiles=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_USERPROFILES",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","users","user","api","Auth","license","setting","crudPermissions"],angular.module("app.staff").controller("CreateOrEditUserDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;function o(){e.hide()}s.currentUser=i.getCurrentUser(),s.errors=[],s.user=a,s.generateApiKey=function(){s.errors=[],t.user.createApiKey({id:s.user.id}).$promise.then(function(e){s.user.apiKey=e.api_key||"N/A",n.success({title:"User API key updated!"}),o()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.createApiKey",msg:e.data?JSON.stringify(e.data.message):e.toString()}),s.errors=e.data.errors||[{message:e.toString(),type:"api.user.createApiKey"}]})},s.removeApiKey=function(){s.errors=[],t.user.removeApiKey({id:s.user.id}).$promise.then(function(){s.user.apiKey="N/A",n.success({title:"User API key removed!"}),o()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.removeApiKey",msg:e.data?JSON.stringify(e.data.message):e.toString()}),s.errors=e.data.errors||[{message:e.toString(),type:"api.user.removeApiKey"}]})},s.closeDialog=o}e.$inject=["$mdDialog","toasty","api","user","Auth"],angular.module("app.staff").controller("UserapikeymanagerController",e)}(),function(){"use strict";function e(e,a){var i=this;i.user={},i.crudPermissions,i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.user.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.user.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e,n){i.user=angular.copy(e),i.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.ngFlowOptions.target="api/users/"+i.user.id+"/avatar",i.user.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.staff").controller("Userchange_avatarController",e)}(),function(){"use strict";function e(t,e,n,a,i,s,o){var r=this;function l(){e.hide()}r.currentUser=o.getCurrentUser(),r.errors=[],r.setting=s,r.passwordPattern=r.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",r.user=i,r.password="",r.oldPassword="",r.savePassword=function(){r.errors=[];var e={id:r.user.id,newPassword:r.password};r.currentUser.id==r.user.id&&(e.oldPassword=r.oldPassword);a.user.changePassword(e).$promise.then(function(){n.success({title:"User password properly updated!"}),l()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.save",msg:e.data?JSON.stringify(e.data.message):e.toString()}),r.errors=e.data.errors||[{message:e.toString(),type:"api.user.changePassword"}]})},r.closeDialog=l,t.$watch("vm.password",function(e,n){_.isNil(r.oldPassword)||(e===r.oldPassword?t.userForm.password.$setValidity("oldPasswordMatch",!1):t.userForm.password.$setValidity("oldPasswordMatch",!0))})}e.$inject=["$scope","$mdDialog","toasty","api","user","setting","Auth"],angular.module("app.staff").controller("UserchangepasswordController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.user=c||e.params.user||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.apikeymanagerdialog=function(e,n){t.show({controller:"UserapikeymanagerController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/users/edit/apikeymanager/apikeymanager.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{user:e,users:u.users?u.users.rows:[],crudPermissions:u.crudPermissions}})},u.changepassworddialog=function(e,n){t.show({controller:"UserchangepasswordController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/users/edit/changepassword/changepassword.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{user:e,setting:o,users:u.users?u.users.rows:[],crudPermissions:u.crudPermissions}})},u.alert=l.info,u.gotoUsers=function(){e.go("app.staff.users",{},{reload:"app.staff.users"})},u.saveUser=function(){u.user=_.omit(u.user,"userpic"),r.user.update({id:u.user.id},u.user).$promise.then(function(){l.success({title:"User updated!",msg:u.user.name?u.user.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})},r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CONTEXTS",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.userProfile.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.userProfiles=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_USERPROFILES",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.user.getApiKey({id:u.user.id}).$promise.then(function(e){u.user.apiKey=e.api_key?e.api_key:"N/A"}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_APIKEY",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","user","userProfileSection"],angular.module("app.staff").controller("UserController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.users=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="users",f.listOrder="",f.listOrderAsc=null,f.selectedUsers=[],f.query={fields:"createdAt,updatedAt,role,userProfileId,id,fullname,name,email,phone,mobile,userpic,password,description,autointernal,internal,transport,nat,allow,context,callgroup,pickupgroup,passwordResetAt,apiKey,videosupport,disabled,blocked",role:"admin,user",sort:"-updatedAt",limit:10,page:1},f.arrayrole=_.keyBy([{option:"Admin",value:"'admin'"},{option:"User",value:"'user'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraytransport=_.keyBy([{option:"udp",value:"'udp'"},{option:"tcp",value:"'tcp'"},{option:"ws",value:"'ws'"},{option:"wss",value:"'wss'"},{option:"tls",value:"'tls'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraynat=_.keyBy([{option:"force_rport",value:"'force_rport'"},{option:"comedia",value:"'comedia'"},{option:"yes",value:"'yes'"},{option:"no",value:"'no'"},{option:"never",value:"'never'"},{option:"route",value:"'route'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayallow=_.keyBy([{option:"ulaw",value:"'ulaw'"},{option:"alaw",value:"'alaw'"},{option:"gsm",value:"'gsm'"},{option:"g722",value:"'g722'"},{option:"g729",value:"'g729'"},{option:"opus",value:"'opus'"},{option:"h264",value:"'h264'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayvideosupport=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Always",value:"'always'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.staff.users.edit",{id:e.id,user:e,crudPermissions:f.crudPermissions})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("user")+"?").htmlContent("<b>"+(e.name||"user")+"</b> will be deleted.").ariaLabel("delete user").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getUsers=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.user.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Users",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditUser=function(e,n){i.show({controller:"CreateOrEditUserDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/users/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{user:n,users:f.users.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteUser=y,f.exportSelectedUsers=function(){var e=angular.copy(f.selectedUsers);return f.selectedUsers=[],e},f.deleteSelectedUsers=function(e){var n=i.confirm().title("Are you sure want to delete the selected users?").htmlContent("<b>"+f.selectedUsers.length+" selected</b> will be deleted.").ariaLabel("delete Users").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedUsers.forEach(function(e){y(e)}),f.selectedUsers=[]})},f.deselectUsers=function(){f.selectedUsers=[]},f.selectAllUsers=function(){f.selectedUsers=f.users.rows},m.userProfile.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.userProfiles=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_USERPROFILES",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.users=e||{count:0,rows:[]}}function y(e){m.user.delete({id:e.id}).$promise.then(function(){_.remove(f.users.rows,{id:e.id}),f.users.count-=1,f.users.rows.length||f.getUsers(),p.success({title:_.startCase("User")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEuser"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEuser",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getUsers())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","users","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.staff").controller("UsersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.cannedAnswers=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="cannedAnswers",f.listOrder="",f.listOrderAsc=null,f.selectedCannedAnswers=[],f.query={fields:"createdAt,updatedAt,id,key,value,description",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/cannedAnswers/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{cannedAnswer:e,cannedAnswers:f.cannedAnswers.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("cannedAnswer")+"?").htmlContent("<b>"+(e.name||"cannedAnswer")+"</b> will be deleted.").ariaLabel("delete cannedAnswer").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getCannedAnswers=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.cannedAnswer.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="CannedAnswers",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditCannedAnswer=function(e,n){i.show({controller:"CreateOrEditCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/cannedAnswers/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{cannedAnswer:n,cannedAnswers:f.cannedAnswers.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteCannedAnswer=y,f.exportSelectedCannedAnswers=function(){var e=angular.copy(f.selectedCannedAnswers);return f.selectedCannedAnswers=[],e},f.deleteSelectedCannedAnswers=function(e){var n=i.confirm().title("Are you sure want to delete the selected cannedAnswers?").htmlContent("<b>"+f.selectedCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete CannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedCannedAnswers.forEach(function(e){y(e)}),f.selectedCannedAnswers=[]})},f.deselectCannedAnswers=function(){f.selectedCannedAnswers=[]},f.selectAllCannedAnswers=function(){f.selectedCannedAnswers=f.cannedAnswers.rows};var b=!0,A=1;function E(e){f.cannedAnswers=e||{count:0,rows:[]}}function y(e){m.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(f.cannedAnswers.rows,{id:e.id}),f.cannedAnswers.count-=1,f.cannedAnswers.rows.length||f.getCannedAnswers(),p.success({title:_.startCase("CannedAnswer")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcannedAnswer"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEcannedAnswer",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getCannedAnswers())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","cannedAnswers","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("CannedAnswersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_CANNEDANSWER",g.cannedAnswer=angular.copy(l),g.cannedAnswers=r,g.newCannedAnswer=!1,g.cannedAnswer||(g.cannedAnswer={},g.title="TOOLS.NEW_CANNEDANSWER",g.newCannedAnswer=!0),g.addNewCannedAnswer=function(){g.errors=[],d.cannedAnswer.save(g.cannedAnswer).$promise.then(function(e){g.cannedAnswers.unshift(e.toJSON()),o.success({title:"CannedAnswer properly created",msg:g.cannedAnswer.name?g.cannedAnswer.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveCannedAnswer=function(){g.errors=[],d.cannedAnswer.update({id:g.cannedAnswer.id},g.cannedAnswer).$promise.then(function(e){var n=_.find(g.cannedAnswers,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"CannedAnswer properly saved!",msg:g.cannedAnswer.name?g.cannedAnswer.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteCannedAnswer=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The cannedAnswer will be deleted.").ariaLabel("Delete CannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cannedAnswer.delete({id:g.cannedAnswer.id}).$promise.then(function(){_.remove(g.cannedAnswers,{id:g.cannedAnswer.id}),o.success({title:"CannedAnswer properly deleted!",msg:(g.cannedAnswer.name||"cannedAnswer")+" has been deleted!"}),v(g.cannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","cannedAnswers","cannedAnswer","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_CUSTOMDASHBOARD",g.customDashboard=angular.copy(l),g.customDashboards=r,g.newCustomDashboard=!1,g.customDashboard||(g.customDashboard={},g.title="TOOLS.NEW_CUSTOMDASHBOARD",g.newCustomDashboard=!0),g.addNewCustomDashboard=function(){g.errors=[],d.dashboard.save(g.customDashboard).$promise.then(function(e){g.customDashboards.unshift(e.toJSON()),o.success({title:"CustomDashboard properly created",msg:g.customDashboard.name?g.customDashboard.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.dashboard.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboard.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveCustomDashboard=function(){g.errors=[],d.dashboard.update({id:g.customDashboard.id},g.customDashboard).$promise.then(function(e){var n=_.find(g.customDashboards,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"CustomDashboard properly saved!",msg:g.customDashboard.name?g.customDashboard.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.dashboard.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboard.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteCustomDashboard=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The customDashboard will be deleted.").ariaLabel("Delete CustomDashboard").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.dashboard.delete({id:g.customDashboard.id}).$promise.then(function(){_.remove(g.customDashboards,{id:g.customDashboard.id}),o.success({title:"CustomDashboard properly deleted!",msg:(g.customDashboard.name||"customDashboard")+" has been deleted!"}),v(g.customDashboard)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.dashboard.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboard.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","customDashboards","customDashboard","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditCustomDashboardDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.customDashboards=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="customDashboards",f.listOrder="",f.listOrderAsc=null,f.selectedCustomDashboards=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.tools.customDashboards.edit",{id:e.id,customDashboard:e,crudPermissions:f.crudPermissions})},f.clonedialog=function(e,n){i.show({controller:"CustomDashboardcloneController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{customDashboard:e,customDashboards:f.customDashboards?f.customDashboards.rows:[],crudPermissions:f.crudPermissions}})},f.gotodashboardgoto=function(e,n){t.go("app.dashboards.custom",{id:e.id})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("customDashboard")+"?").htmlContent("<b>"+(e.name||"customDashboard")+"</b> will be deleted.").ariaLabel("delete customDashboard").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getCustomDashboards=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.dashboard.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="CustomDashboards",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditCustomDashboard=function(e,n){i.show({controller:"CreateOrEditCustomDashboardDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{customDashboard:n,customDashboards:f.customDashboards.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteCustomDashboard=y,f.exportSelectedCustomDashboards=function(){var e=angular.copy(f.selectedCustomDashboards);return f.selectedCustomDashboards=[],e},f.deleteSelectedCustomDashboards=function(e){var n=i.confirm().title("Are you sure want to delete the selected customDashboards?").htmlContent("<b>"+f.selectedCustomDashboards.length+" selected</b> will be deleted.").ariaLabel("delete CustomDashboards").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedCustomDashboards.forEach(function(e){y(e)}),f.selectedCustomDashboards=[]})},f.deselectCustomDashboards=function(){f.selectedCustomDashboards=[]},f.selectAllCustomDashboards=function(){f.selectedCustomDashboards=f.customDashboards.rows};var b=!0,A=1;function E(e){f.customDashboards=e||{count:0,rows:[]}}function y(e){m.dashboard.delete({id:e.id}).$promise.then(function(){_.remove(f.customDashboards.rows,{id:e.id}),f.customDashboards.count-=1,f.customDashboards.rows.length||f.getCustomDashboards(),p.success({title:_.startCase("CustomDashboard")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdashboard"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdashboard",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getCustomDashboards())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","customDashboards","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("CustomDashboardsController",e)}(),function(){"use strict";function e(n,t,a,e,i,s,o){var r=this;function l(e){n.hide(e)}r.newCustomDashboard=!0,r.customDashboard=angular.copy(i),r.customDashboards=s,r.title=o.instant("TOOLS.CLONE_CUSTOMDASHBOARD"),i&&i.name&&(r.title+=": "+i.name),r.cloneCustomDashboard=function(){return e.dashboard.clone({id:i.id,includeAll:!0},r.customDashboard).$promise.then(function(e){r.customDashboards.unshift(e.toJSON()),a.success({title:"CustomDashboard properly cloned",msg:r.customDashboard.name?r.customDashboard.name+" has been cloned!":""}),t.go("app.tools.customDashboards.edit",{id:e.id}),l(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.dashboard.clone"}];for(var n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboard.clone",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$mdDialog","$state","toasty","api","customDashboard","customDashboards","$translate"],angular.module("app.tools").controller("CustomDashboardcloneController",e)}(),function(){"use strict";function e(t,a,e,i,s){var o=this;function r(e,n,t){return s.dashboardItem.update(t).$promise.catch(function(e){console.error(e)})}o.customDashboard={},o.voiceQueues=s.rpc.getVoiceQueues({fields:"id,name"}),o.init=function(e,n){return o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},o.customDashboard=e,o.customDashboard.draggable={enabled:!0,handle:".draggable",stop:r},o.customDashboard.resizable={enabled:!0,handle:".resizable",stop:r},o.customDashboard.widgets=[],s.dashboard.getItems({id:e.id}).$promise.then(function(e){if(e&&e.count&&e.rows)for(var n=0;n<e.rows.length;n+=1)e.rows[n].voiceQueues=o.voiceQueues,e.rows[n].voiceQueuesSelected=_.map(o.voiceQueues.rows,"id"),e.rows[n].templateUrl="app/core/directives/ms-widget-engine/ms-widget-engine-"+e.rows[n].type+"/ms-widget-engine."+e.rows[n].type+".html",o.customDashboard.widgets.push(e.rows[n])}).catch(function(e){console.error(e)})},o.createOrEditWidget=function(e){if(e&&e.attrs)for(var n=0;n<e.attrs.length;n+=1)"attrReport"===e.attrs[n].name&&(e.reportType=e.attrs[n].type),e[e.attrs[n].name]=e.attrs[n].value;t.show({controller:"CreateOrEditDashboardItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/edit/dashboard/dialog.html",parent:angular.element(a.body),clickOutsideToClose:!0,locals:{dashboarditem:e,dashboard:o.customDashboard.widgets,license:null,setting:null,crudPermissions:o.crudPermissions}}).then(function(e){if(e)for(var n=0;n<o.customDashboard.widgets.length;n+=1)o.customDashboard.widgets[n].id===e.id&&(o.customDashboard.widgets[n].attrs=e.attrs,o.customDashboard.widgets[n].voiceQueues=o.voiceQueues,o.customDashboard.widgets[n].voiceQueuesSelected=_.map(o.voiceQueues.rows,"id"),o.customDashboard.widgets[n].templateUrl="app/core/directives/ms-widget-engine/ms-widget-engine-"+o.customDashboard.widgets[n].type+"/ms-widget-engine."+o.customDashboard.widgets[n].type+".html")})},o.deleteWidget=function(n){var e=t.confirm().title("Would you like to delete "+n.title+"?").textContent("").ariaLabel("Delete Widget").ok("YES").cancel("NO");t.show(e).then(function(){return s.dashboardItem.delete({id:n.id}).$promise.then(function(e){_.remove(o.customDashboard.widgets,{id:n.id}),i.success({title:"Widget deleted!",msg:n.name?n.name+" has been deleted!":"Widget has been deleted!"})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){o.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETE.customDashboard"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdashboard",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()});console.error(e)})})}}e.$inject=["$mdDialog","$document","socket","toasty","api"],angular.module("app.tools").controller("CustomDashboardItemsController",e)}(),function(){"use strict";function e(n,e,t,a,o,i,s,r,l,d,c,m,u,p){var g=this;g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_DASHBOARDITEM",g.dashboarditem=angular.copy(l),g.dashboard=r,g.newDashboardItem=!1,g.selectedReport=[],g.query={fields:"createdAt,updatedAt,id,name,description,table,parent,conditions,joins",limit:10,page:1,sort:"-updatedAt"},g.dashboarditem?"web-report"==g.dashboarditem.type&&(g.apiName="custom"===g.dashboarditem.reportType?"analyticCustomReport":"analyticDefaultReport",d[g.apiName].get({fields:"id,name,parent"}).$promise.then(function(e){g.currentReport=_.find(e.rows,{id:g.dashboarditem.attrReport}),g.dashboarditem.report=g.currentReport.name,g.query.parent=g.currentReport.parent})):(g.dashboarditem={type:"counter",titleFontSize:12,attrUrl:"https://",attrHourFormat:"HH:mm:ss",attrTimezone:"0.00",attrMetric:"total",attrSerie1:"total",attrSerie2:"null",attrSerie3:"null",attrRefresh:10,attrFontSize:20,foreground:"#2196f3",background:"#ffffff"},g.title="TOOLS.NEW_DASHBOARDITEM",g.newDashboardItem=!0),g.addNewDashboardItem=function(){g.errors=[],d.dashboard.addItem({id:e.params.id},g.dashboarditem).$promise.then(function(e){g.dashboard.unshift(e.toJSON()),s.success({title:"DashboardItem properly created",msg:g.dashboarditem.name?g.dashboarditem.name+" has been created!":""}),I(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.dashboardItem.save"}];for(var n=0;n<e.data.errors.length;n+=1)s.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboardItem.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveDashboardItem=function(){g.errors=[],d.dashboardItem.update({id:g.dashboarditem.id},g.dashboarditem).$promise.then(function(e){var n=_.find(g.dashboard,{id:e.id});n&&_.merge(n,e.toJSON()),s.success({title:"DashboardItem properly saved!",msg:g.dashboarditem.name?g.dashboarditem.name+" has been saved!":""}),I(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.dashboardItem.update"}];for(var n=0;n<e.data.errors.length;n++)s.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboardItem.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteDashboardItem=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The dashboarditem will be deleted.").ariaLabel("Delete DashboardItem").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.dashboardItem.delete({id:g.dashboarditem.id}).$promise.then(function(){_.remove(g.dashboard,{id:g.dashboarditem.id}),s.success({title:"DashboardItem properly deleted!",msg:(g.dashboarditem.name||"dashboarditem")+" has been deleted!"}),I(g.dashboarditem)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.dashboardItem.delete"}];for(var n=0;n<e.data.errors.length;n++)s.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboardItem.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.getReports=S,g.selectReport=function(){if(g.dashboarditem.report=g.selectedReport[0].name,g.dashboarditem.attrReport=g.selectedReport[0].id,g.dashboarditem.reportType=g.currentNode.custom?"custom":"default",!g.newDashboardItem){var e={name:"attrReport",type:g.dashboarditem.reportType,value:g.selectedReport[0].id};g.dashboarditem.attrs.splice(_.findIndex(g.dashboarditem.attrs,1,e))}n.dashboarditemForm.report.$setDirty(),a.hide()},g.closeReportDialog=function(){a.hide()},g.searchReport=function(){g.treeDefaultData=g.treeReports[0]?angular.fromJson(g.treeReports[0].tree):[],g.treeCustomData=g.treeReports[1]?angular.fromJson(g.treeReports[1].tree):[],g.treeConfig=(n={core:{multiple:!1,animation:!0,error:function(e){console.error("treeCtrl: error from js tree - "+angular.toJson(e))},check_callback:!0,worker:!0},version:1,plugins:["wholerow"]},"admin"!==g.currentUser.role?d.userProfileSection.get({fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:g.currentUser.userProfileId,sectionId:1203}).$promise.then(function(e){return g.userProfileSection=e&&1==e.count?e.rows[0]:null,n}).catch(function(e){s.error({title:"ERROR",msg:e.message})}):n),g.treeDefaultEvents=f(!1),g.treeCustomEvents=f(!0),a.show({controller:function(){return g},controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/partialViews/reports/treeReports.html",autoWrap:!0,skipHide:!0});var n},g.closeDialog=I,d.analyticTreeReport.get({}).$promise.then(function(e){g.treeReports=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TREEREPORTS",msg:e.data?JSON.stringify(e.data):e.toString()})});var v=[{id:401,type:"inbound"},{id:1501,type:"outbound"}],h=null;function f(e){return e?{loaded:E,select_node:b}:{loaded:y,select_node:A}}function b(e,n){g.treeDefaultInstance.jstree(!0).deselect_all(),g.treeDefaultInstance.jstree(!0).close_all(),g.currentNode=n.node,g.currentNode.custom=!0,g.currentPath=g.treeCustomInstance.jstree(!0).get_path(g.currentNode).join("/ "),g.apiName="analyticCustomReport",g.query.parent=n.node.id,S()}function A(e,n){g.treeCustomInstance.jstree(!0).deselect_all(),g.treeCustomInstance.jstree(!0).close_all(),g.currentNode=n.node,g.currentNode.custom=!1,g.currentPath=g.treeDefaultInstance.jstree(!0).get_path(g.currentNode).join("/ "),g.apiName="analyticDefaultReport",g.query.parent=n.node.id,S()}function E(){if(!g.newDashboardItem&&"analyticCustomReport"===g.apiName){var e=g.treeCustomInstance.jstree(!0).get_node(g.query.parent);b(0,{node:e,selected:e.id})}}function y(){if(!g.newDashboardItem&&"analyticDefaultReport"===g.apiName){var e=g.treeDefaultInstance.jstree(!0).get_node(g.query.parent);A(0,{node:e,selected:e.id})}}function S(){if(g.query.offset=(g.query.page-1)*g.query.limit,g.apiName)if("admin"===g.currentUser.role)g.promise=d[g.apiName].get(g.query,T).$promise;else{if(!g.userProfileSection)return T(null);if(g.userProfileSection.autoAssociation)g.promise=d[g.apiName].get(g.query,T).$promise;else{var a=[];g.promise=d[g.apiName].get(g.query).$promise.then(function(e){return 0<(a=e&&e.rows?e.rows:[]).length?d.userProfileResource.get({sectionId:g.userProfileSection.id,type:"analyticDefaultReport"===g.apiName?"DefaultReports":"CustomReports"}).$promise.then(function(e){var n=e&&e.rows?e.rows:[];if(0<n.length){var t=[];return a.forEach(function(e){_.find(n,["resourceId",e.id])&&t.push(e)}),T({count:t.length,rows:t})}return T(null)}):T(null)}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_REPORTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}}}function T(e){g.reports=e||{count:0,rows:[]},g.newDashboardItem||g.selectedReport.push(_.find(g.reports.rows,{id:g.currentReport.id}))}function I(e){a.hide(e)}c.hasRole("admin")?d.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){g.voiceQueues=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VOICEQUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){h=e.rows||[]}).then(function(){for(var e=[],n=0;n<v.length;n++)e.push(d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:v[n].id}).$promise);return o.all(e)}).then(function(e){for(var n=_.map(e,function(e){return e&&e.rows?e.rows[0]:null}),t=[],a=0;a<v.length;a++){var i=_.find(n,["sectionId",v[a].id]);if(i)if(i.autoAssociation){var s=[];h.forEach(function(e){e.type===v[a].type&&s.push(e)}),t.push({rows:s,count:s.length})}else t.push(d.userProfileResource.get({sectionId:i.id}).$promise)}return o.all(t)}).then(function(e){var n=[],t=null;g.dashboarditem&&(t=_.find(h,{id:Number(g.dashboarditem.attrVoiceQueues)}));for(var a=0;a<e.length;a++){(e[a].rows||[]).forEach(function(e){n.push(e)})}t&&!_.some(n,["resourceId",t.id])&&h.forEach(function(e){e.id===t.id&&(e.canSelect=!1,n.push(e))}),g.voiceQueues=n}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","dashboard","dashboarditem","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditDashboardItemDialogController",e)}(),function(){"use strict";function e(t,e,a,i,n,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.customDashboard=c||t.params.customDashboard||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=t.params.tab||0,u.clonedialog=function(e,n){a.show({controller:"CustomDashboardcloneController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/edit/clone/clone.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{customDashboard:e,customDashboards:u.customDashboards?u.customDashboards.rows:[],crudPermissions:u.crudPermissions}})},u.gotogoto=function(e,n){t.go("app.dashboards.custom",{id:e.id})},u.alert=l.info,u.gotoCustomDashboards=function(){t.go("app.tools.customDashboards",{},{reload:"app.tools.customDashboards"})},u.saveCustomDashboard=function(){r.dashboard.update({id:u.customDashboard.id},u.customDashboard).$promise.then(function(){l.success({title:"CustomDashboard updated!",msg:u.customDashboard.name?u.customDashboard.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETdashboard",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","customDashboard","userProfileSection"],angular.module("app.tools").controller("CustomDashboardController",e)}(),function(){"use strict";function e(a,i,o,r,e,l,d,n,t,s,c){var m=this;if(m.currentUser=n.getCurrentUser(),m.disposition=angular.copy(e),m.setting=c,m.license=s,m.crudPermissions=t,m.newDisposition=!1,m.errors=[],m.disposition||(m.disposition={level:"first"},m.newDisposition=!0),l){var u=l.field;m.disposition[u]=l.id}function p(){return o(function(t,n){d.disposition.get({fields:"id,name,level,ParentId",sort:"id",nolimit:"true"}).$promise.then(function(e){var n=e.rows||[];return t(n)}).catch(function(e){n(e)})})}function g(e){"first"===e.level?m.firstLevelDisposition=e:(m.anySecondLevelDisposition=!0,m.secondLevelDisposition=e,m.firstLevelDisposition=_.find(m.dispositions,["id",m.secondLevelDisposition.ParentId]),m.firstLevelDisposition||p().then(function(){m.firstLevelDisposition=_.find(m.allDispositions,["id",m.secondLevelDisposition.ParentId]),m.firstLevelDisposition.canSelect=!1,m.dispositions.push(m.firstLevelDisposition)}))}function v(e){a.hide(e)}m.onInit=function(){var n="disposition";l?n=l.route:"user"===m.currentUser.role&&(n="userProfile");var t="get";l?t="getDispositions":"user"===m.currentUser.role&&(t="getResources");var e={fields:"id,name,level,ParentId",id:l?l.id:void 0,section:"user"===m.currentUser.role?"Dispositions":void 0,MailAccountId:l?void 0:"null",FaxAccountId:l?void 0:"null",SmsAccountId:l?void 0:"null",OpenchannelAccountId:l?void 0:"null",ChatWebsiteId:l?void 0:"null",WhatsappAccountId:l?void 0:"null",ListId:l?void 0:"null",sort:"id",nolimit:"true"};(a=n,i=t,s=e,o(function(t,n){d[a][i](s).$promise.then(function(e){var n=e.rows||[];return t(n)}).catch(function(e){n(e)})})).then(function(e){m.dispositions=angular.copy(e),m.newDisposition||function(){if("first"===m.disposition.level)return;if(m.parentDisposition=_.find(m.dispositions,["id",m.disposition.ParentId]),!m.parentDisposition)return p().then(function(e){m.allDispositions=e;for(var n=0;n<m.allDispositions.length;n++){var t=m.allDispositions[n];if(t.id===m.disposition.ParentId){g(t),t.canSelect=!1,m.dispositions.push(t);break}}});g(m.parentDisposition)}()}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:["api",n,t].join(":"),msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})});var a,i,s},m.onFirstLevelSelection=function(){m.secondLevelDisposition=void 0,m.anySecondLevelDisposition=_.some(m.dispositions,function(e){return e.ParentId===m.firstLevelDisposition.id&&e.id!=m.disposition.id})},m.addNewDisposition=function(){m.errors=[],m.secondLevelDisposition?(m.disposition.ParentId=m.secondLevelDisposition.id,m.disposition.level="third"):m.firstLevelDisposition&&(m.disposition.ParentId=m.firstLevelDisposition.id,m.disposition.level="second");d.disposition.save(m.disposition).$promise.then(function(e){m.dispositions.unshift(e.toJSON()),r.success({title:i.instant("TOOLS.NOTIFICATIONS.DISPOSITION_CREATED_SUCCESS_TITLE")}),v(!0)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.save"}];for(var n=0;n<e.data.errors.length;n+=1)r.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.disposition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.saveDisposition=function(){m.errors=[],m.secondLevelDisposition?(m.disposition.ParentId=m.secondLevelDisposition.id,m.disposition.level="third"):m.firstLevelDisposition&&(m.disposition.ParentId=m.firstLevelDisposition.id,m.disposition.level="second");d.disposition.update({id:m.disposition.id},m.disposition).$promise.then(function(e){var n=_.find(m.dispositions,{id:e.id});n&&_.merge(n,e.toJSON()),r.success({title:i.instant("TOOLS.NOTIFICATIONS.DISPOSITION_SAVED_SUCCESS_TITLE")}),v(!0)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.update"}];for(var n=0;n<e.data.errors.length;n++)r.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.disposition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.deleteDisposition=function(e){m.errors=[];var n=_.some(m.dispositions,["ParentId",m.disposition.id]),t=a.confirm({skipHide:!0}).title(i.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(i.instant("TOOLS.NOTIFICATIONS."+(n?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:m.disposition.name})).ariaLabel("Delete disposition").ok(i.instant("TOOLS.DELETE")).cancel(i.instant("TOOLS.CANCEL")).targetEvent(e);a.show(t).then(function(){d.disposition.delete({id:m.disposition.id}).$promise.then(function(){r.success({title:i.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")}),v(!0)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.delete"}];for(var n=0;n<e.data.errors.length;n++)r.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.disposition.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})})},m.clearSelection=function(e){"first"===e?(m.firstLevelDisposition=void 0,m.secondLevelDisposition=void 0,m.anySecondLevelDisposition=!1):m.secondLevelDisposition=void 0},m.closeDialog=v}e.$inject=["$mdDialog","$translate","$q","toasty","disposition","model","api","Auth","crudPermissions","license","setting"],angular.module("app.tools").controller("CreateOrEditDispositionDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v){var h=this;function f(e){h.dispositions=e||{count:0,rows:[]}}function b(){h.query.offset=(h.query.page-1)*h.query.limit,p.isAdmin()?h.promise=m.disposition.get(h.query,f).$promise:(h.query.id=h.userProfile.id,h.query.section="Dispositions",h.promise=m.userProfile.getResources(h.query,f).$promise)}function A(e){m.disposition.delete({id:e.id}).$promise.then(function(){b(),u.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){h.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)u.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else u.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}h.license=g,h.setting=v,h.currentUser=p.getCurrentUser(),h.dispositions=l||{count:0,rows:[]},h.userProfile=d,h.userProfileSection=c&&1==c.count?c.rows[0]:null,h.crudPermissions=p.parseCrudPermissions(h.userProfileSection?h.userProfileSection.crudPermissions:null),h.selectedDispositions=[],h.levels={first:"1st",second:"2nd",third:"3rd"},h.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",WhatsappAccountId:"null",ListId:"null",limit:10,page:1},h.deleteconfirm=function(e,n){var t=_.some(h.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){A(e)})},h.success=f,h.getDispositions=b,h.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:null,license:h.license,setting:h.setting,crudPermissions:h.crudPermissions}}).then(function(e){!0===e&&b()})},h.deleteDisposition=A,h.exportSelectedDispositions=function(){var e=angular.copy(h.selectedDispositions);return h.selectedDispositions=[],e},h.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:h.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){h.selectedDispositions.forEach(function(e){A(e)}),h.selectedDispositions=[]})},h.deselectDispositions=function(){h.selectedDispositions=[]},h.selectAllDispositions=function(){h.selectedDispositions=h.dispositions.rows};var E=!0,y=1;e.$watch("vm.query.filter",function(e,n){E?o(function(){E=!1}):(n||(y=h.query.page),e!==n&&(h.query.page=1),e||(h.query.page=y),b())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","dispositions","userProfile","userProfileSection","api","toasty","Auth","license","setting"],angular.module("app.tools").controller("DispositionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_INTERVAL",g.interval=angular.copy(l),g.intervals=r,g.newInterval=!1,g.interval||(g.interval={},g.title="TOOLS.NEW_INTERVAL",g.newInterval=!0),g.addNewInterval=function(){g.errors=[],d.interval.save(g.interval).$promise.then(function(e){g.intervals.unshift(e.toJSON()),o.success({title:"Interval properly created",msg:g.interval.name?g.interval.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.interval.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveInterval=function(){g.errors=[],d.interval.update({id:g.interval.id},g.interval).$promise.then(function(e){var n=_.find(g.intervals,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Interval properly saved!",msg:g.interval.name?g.interval.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.interval.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteInterval=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The interval will be deleted.").ariaLabel("Delete Interval").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.interval.delete({id:g.interval.id}).$promise.then(function(){_.remove(g.intervals,{id:g.interval.id}),o.success({title:"Interval properly deleted!",msg:(g.interval.name||"interval")+" has been deleted!"}),v(g.interval)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.interval.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.interval.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","intervals","interval","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditIntervalDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditAppintervalDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.intervalIntervals=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.interval.getIntervals(m.query,u).$promise}function g(e){d.interval.delete({id:e.id}).$promise.then(function(){_.remove(m.intervalIntervals.rows,{id:e.id}),m.intervalIntervals.count-=1,m.intervalIntervals.rows.length||p(),l.success({title:"Interval deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETinterval"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.interval={},m.intervalIntervals={count:0,rows:[]},m.selectedIntervalIntervals=[],m.crudPermissions,m.sortableTable={animation:100,onSort:function(e){d.interval.addIntervals({id:m.interval.id},e.models).$promise.then(function(e){m.intervalIntervals.rows=e}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:SORTABLETABLE",msg:e.data?JSON.stringify(e.data):e.toString()})})}},m.query={fields:"createdAt,updatedAt,id,name,interval",nolimit:"true",limit:10,page:1},m.init=function(e,n){m.interval=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.sortableTable.disabled=!m.crudPermissions.canEdit,m.query.id=m.interval.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interval?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interval #")+e.id||"interval")+"</b> will be deleted.").ariaLabel("delete interval").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getIntervalIntervals=p,m.createOrEditIntervalInterval=function(e,n){o.show({controller:"EditAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/intervals/edit/apps/interval/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:m.interval,interval:n,intervals:m.intervalIntervals.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedIntervalIntervals=function(){var e=angular.copy(m.selectedIntervalIntervals);return m.selectedIntervalIntervals=[],e},m.deleteIntervalInterval=g,m.deleteSelectedIntervalIntervals=function(e){var n=o.confirm().title("Are you sure want to delete the selected intervals?").htmlContent("<b>"+m.selectedIntervalIntervals.length+" selected</b> will be deleted.").ariaLabel("delete intervals").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedIntervalIntervals.forEach(function(e){g(e)}),m.selectedIntervalIntervals=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.tools").controller("IntervalIntervalsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_INTERVAL",g.interval=angular.copy(l),g.intervals=r,g.newInterval=!1,g.interval||(g.interval={},g.title="TOOLS.NEW_INTERVAL",g.newInterval=!0),g.addNewInterval=function(){g.errors=[],d.interval.save(g.interval).$promise.then(function(e){g.intervals.unshift(e.toJSON()),o.success({title:"Interval properly created",msg:g.interval.name?g.interval.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.interval.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveInterval=function(){g.errors=[],d.interval.update({id:g.interval.id},g.interval).$promise.then(function(e){var n=_.find(g.intervals,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Interval properly saved!",msg:g.interval.name?g.interval.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.interval.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteInterval=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The interval will be deleted.").ariaLabel("Delete Interval").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.interval.delete({id:g.interval.id}).$promise.then(function(){_.remove(g.intervals,{id:g.interval.id}),o.success({title:"Interval properly deleted!",msg:(g.interval.name||"interval")+" has been deleted!"}),v(g.interval)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.interval.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.interval.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","intervals","interval","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditIntervalDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.interval=c||e.params.interval||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoIntervals=function(){e.go("app.tools.intervals",{},{reload:"app.tools.intervals"})},u.saveInterval=function(){r.interval.update({id:u.interval.id},u.interval).$promise.then(function(){l.success({title:"Interval updated!",msg:u.interval.name?u.interval.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","interval","userProfileSection"],angular.module("app.tools").controller("IntervalController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.intervals=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="intervals",f.listOrder="",f.listOrderAsc=null,f.selectedIntervals=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",IntervalId:"null",limit:10,page:1},f.editstate=function(e,n){t.go("app.tools.intervals.edit",{id:e.id,interval:e,crudPermissions:f.crudPermissions})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("interval")+"?").htmlContent("<b>"+(e.name||"interval")+"</b> will be deleted.").ariaLabel("delete interval").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getIntervals=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.interval.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Intervals",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditInterval=function(e,n){i.show({controller:"CreateOrEditIntervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/intervals/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:n,intervals:f.intervals.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteInterval=y,f.exportSelectedIntervals=function(){var e=angular.copy(f.selectedIntervals);return f.selectedIntervals=[],e},f.deleteSelectedIntervals=function(e){var n=i.confirm().title("Are you sure want to delete the selected intervals?").htmlContent("<b>"+f.selectedIntervals.length+" selected</b> will be deleted.").ariaLabel("delete Intervals").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedIntervals.forEach(function(e){y(e)}),f.selectedIntervals=[]})},f.deselectIntervals=function(){f.selectedIntervals=[]},f.selectAllIntervals=function(){f.selectedIntervals=f.intervals.rows};var b=!0,A=1;function E(e){f.intervals=e||{count:0,rows:[]}}function y(e){m.interval.delete({id:e.id}).$promise.then(function(){_.remove(f.intervals.rows,{id:e.id}),f.intervals.count-=1,f.intervals.rows.length||f.getIntervals(),p.success({title:_.startCase("Interval")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEinterval"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEinterval",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getIntervals())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","intervals","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("IntervalsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_PAUSE",g.pause=angular.copy(l),g.pauses=r,g.newPause=!1,g.pause||(g.pause={},g.title="TOOLS.NEW_PAUSE",g.newPause=!0),g.addNewPause=function(){g.errors=[],d.pause.save(g.pause).$promise.then(function(e){g.pauses.unshift(e.toJSON()),o.success({title:"Pause properly created",msg:g.pause.name?g.pause.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.pause.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pause.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.savePause=function(){g.errors=[],d.pause.update({id:g.pause.id},g.pause).$promise.then(function(e){var n=_.find(g.pauses,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Pause properly saved!",msg:g.pause.name?g.pause.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.pause.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pause.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deletePause=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The pause will be deleted.").ariaLabel("Delete Pause").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.pause.delete({id:g.pause.id}).$promise.then(function(){_.remove(g.pauses,{id:g.pause.id}),o.success({title:"Pause properly deleted!",msg:(g.pause.name||"pause")+" has been deleted!"}),v(g.pause)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.pause.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pause.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","pauses","pause","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditPauseDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.pauses=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="pauses",f.listOrder="",f.listOrderAsc=null,f.selectedPauses=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditPauseDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/pauses/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{pause:e,pauses:f.pauses.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("pause")+"?").htmlContent("<b>"+(e.name||"pause")+"</b> will be deleted.").ariaLabel("delete pause").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getPauses=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.pause.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Pauses",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditPause=function(e,n){i.show({controller:"CreateOrEditPauseDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/pauses/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{pause:n,pauses:f.pauses.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deletePause=y,f.exportSelectedPauses=function(){var e=angular.copy(f.selectedPauses);return f.selectedPauses=[],e},f.deleteSelectedPauses=function(e){var n=i.confirm().title("Are you sure want to delete the selected pauses?").htmlContent("<b>"+f.selectedPauses.length+" selected</b> will be deleted.").ariaLabel("delete Pauses").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedPauses.forEach(function(e){y(e)}),f.selectedPauses=[]})},f.deselectPauses=function(){f.selectedPauses=[]},f.selectAllPauses=function(){f.selectedPauses=f.pauses.rows};var b=!0,A=1;function E(e){f.pauses=e||{count:0,rows:[]}}function y(e){m.pause.delete({id:e.id}).$promise.then(function(){_.remove(f.pauses.rows,{id:e.id}),f.pauses.count-=1,f.pauses.rows.length||f.getPauses(),p.success({title:_.startCase("Pause")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEpause"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEpause",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getPauses())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","pauses","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("PausesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;if(g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_SCHEDULE",g.schedule=angular.copy(l),g.schedules=r,g.newSchedule=!1,g.selectedReport=[],g.query={fields:"createdAt,updatedAt,id,name,description,table,parent,conditions,joins",limit:10,page:1,sort:"-updatedAt"},g.schedule){g.apiName=g.schedule.DefaultReportId?"analyticDefaultReport":"analyticCustomReport";var v=g.schedule.DefaultReportId?g.schedule.DefaultReportId:g.schedule.CustomReportId;d[g.apiName].get({fields:"id,name,parent"}).$promise.then(function(e){g.currentReport=_.find(e.rows,{id:v}),g.schedule.report=g.currentReport.name,g.query.parent=g.currentReport.parent})}else g.schedule={output:"xlsx",active:!0,startAt:new Date,endAt:new Date(Date.now()+2592e6),cron:"0 0 * * *",subtractNumber:1,subtractUnit:"days",sendMail:!1,sendIfEmpty:!0},g.title="TOOLS.NEW_SCHEDULE",g.newSchedule=!0;function h(e){return e?{loaded:A,select_node:f}:{loaded:E,select_node:b}}function f(e,n){g.treeDefaultInstance.jstree(!0).deselect_all(),g.treeDefaultInstance.jstree(!0).close_all(),g.currentNode=n.node,g.currentNode.custom=!0,g.currentPath=g.treeCustomInstance.jstree(!0).get_path(g.currentNode).join("/ "),g.apiName="analyticCustomReport",g.query.parent=n.node.id,y()}function b(e,n){g.treeCustomInstance.jstree(!0).deselect_all(),g.treeCustomInstance.jstree(!0).close_all(),g.currentNode=n.node,g.currentNode.custom=!1,g.currentPath=g.treeDefaultInstance.jstree(!0).get_path(g.currentNode).join("/ "),g.apiName="analyticDefaultReport",g.query.parent=n.node.id,y()}function A(){if(!g.newSchedule&&"analyticCustomReport"===g.apiName){var e=g.treeCustomInstance.jstree(!0).get_node(g.query.parent);f(0,{node:e,selected:e.id})}}function E(){if(!g.newSchedule&&"analyticDefaultReport"===g.apiName){var e=g.treeDefaultInstance.jstree(!0).get_node(g.query.parent);b(0,{node:e,selected:e.id})}}function y(){if(g.query.offset=(g.query.page-1)*g.query.limit,g.apiName)if("admin"===g.currentUser.role)g.promise=d[g.apiName].get(g.query,S).$promise;else{if(!g.userProfileSection)return S(null);if(g.userProfileSection.autoAssociation)g.promise=d[g.apiName].get(g.query,S).$promise;else{var a=[];g.promise=d[g.apiName].get(g.query).$promise.then(function(e){return 0<(a=e&&e.rows?e.rows:[]).length?d.userProfileResource.get({sectionId:g.userProfileSection.id,type:"analyticDefaultReport"===g.apiName?"DefaultReports":"CustomReports"}).$promise.then(function(e){var n=e&&e.rows?e.rows:[];if(0<n.length){var t=[];return a.forEach(function(e){_.find(n,["resourceId",e.id])&&t.push(e)}),S({count:t.length,rows:t})}return S(null)}):S(null)}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_REPORTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}}}function S(e){g.reports=e||{count:0,rows:[]},g.newSchedule||g.selectedReport.push(_.find(g.reports.rows,{id:g.currentReport.id}))}function T(e){a.hide(e)}g.addNewSchedule=function(){g.errors=[],d.schedule.save(g.schedule).$promise.then(function(e){g.schedules.unshift(e.toJSON()),o.success({title:"Schedule properly created",msg:g.schedule.name?g.schedule.name+" has been created!":""}),T(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.schedule.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.schedule.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSchedule=function(){g.errors=[],d.schedule.update({id:g.schedule.id},g.schedule).$promise.then(function(e){var n=_.find(g.schedules,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Schedule properly saved!",msg:g.schedule.name?g.schedule.name+" has been saved!":""}),T(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.schedule.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.schedule.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSchedule=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The schedule will be deleted.").ariaLabel("Delete Schedule").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.schedule.delete({id:g.schedule.id}).$promise.then(function(){_.remove(g.schedules,{id:g.schedule.id}),o.success({title:"Schedule properly deleted!",msg:(g.schedule.name||"schedule")+" has been deleted!"}),T(g.schedule)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.schedule.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.schedule.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.getReports=y,g.selectReport=function(){g.schedule.report=g.selectedReport[0].name,g.currentNode.custom?(g.schedule.CustomReportId=g.selectedReport[0].id,delete g.schedule.DefaultReportId):(g.schedule.DefaultReportId=g.selectedReport[0].id,delete g.schedule.CustomReportId);e.scheduleForm.report.$setDirty(),a.hide()},g.closeReportDialog=function(){a.hide()},g.searchReport=function(){g.treeDefaultData=g.treeReports[0]?angular.fromJson(g.treeReports[0].tree):[],g.treeCustomData=g.treeReports[1]?angular.fromJson(g.treeReports[1].tree):[],g.treeConfig=(n={core:{multiple:!1,animation:!0,error:function(e){console.error("treeCtrl: error from js tree - "+angular.toJson(e))},check_callback:!0,worker:!0},version:1,plugins:["wholerow"]},"admin"!==g.currentUser.role?d.userProfileSection.get({fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:g.currentUser.userProfileId,sectionId:1203}).$promise.then(function(e){return g.userProfileSection=e&&1==e.count?e.rows[0]:null,n}).catch(function(e){o.error({title:"ERROR",msg:e.message})}):n),g.treeDefaultEvents=h(!1),g.treeCustomEvents=h(!0),a.show({controller:function(){return g},controllerAs:"vm",templateUrl:"app/main/apps/tools/views/schedules/partialViews/reports/treeReports.html",autoWrap:!0,skipHide:!0});var n},g.closeDialog=T,d.analyticTreeReport.get({}).$promise.then(function(e){g.treeReports=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TREEREPORTS",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.mailAccount.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.mailAccounts=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_MAILACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.mailAccount.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.mailAccounts=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:602}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.mailAccounts,{id:e.resourceId})}),t=null;if(g.schedule&&(t=_.find(g.mailAccounts,{id:Number(g.schedule.MailAccountId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.mailAccounts,{id:t.id});a.canSelect=!1,n.push(a)}g.mailAccounts=n})}else{var t=[],a=null;g.schedule&&(a=_.find(g.mailAccounts,{id:Number(g.schedule.MailAccountId)}));for(var i=0;i<g.mailAccounts.length;i++)a&&g.mailAccounts[i].id===a.id&&(g.mailAccounts[i].canSelect=!1,t.push(g.mailAccounts[i]));g.mailAccounts=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","schedules","schedule","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditScheduleDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.schedules=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="schedules",f.listOrder="",f.listOrderAsc=null,f.selectedScheduler=[],f.query={fields:"createdAt,updatedAt,id,name,CustomReportId,DefaultReportId,output,active,startAt,endAt,cron,subtractNumber,subtractUnit,sendMail,MailAccountId,email,cc,bcc,sendIfEmpty,description",sort:"-updatedAt",limit:10,page:1},f.arrayoutput=_.keyBy([{option:"CSV",value:"'csv'"},{option:"PDF",value:"'pdf'"},{option:"Excel",value:"'xlsx'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysubtractUnit=_.keyBy([{option:"Minutes",value:"'minutes'"},{option:"Hours",value:"'hours'"},{option:"Days",value:"'days'"},{option:"Weeks",value:"'weeks'"},{option:"Months",value:"'months'"},{option:"Quarters",value:"'quarters'"},{option:"Years",value:"'years'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editdialog=function(e,n){i.show({controller:"CreateOrEditScheduleDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/schedules/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{schedule:e,schedules:f.schedules.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.runconfirm=function(e,n){var t=i.confirm().title("Are you sure want to run the schedule?").htmlContent("<b>"+(e.name||"schedule")+"</b> will be run.").ariaLabel("delete schedule").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){return m.schedule.run({id:e.id}).$promise},function(){console.log("CANCEL")})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("schedule")+"?").htmlContent("<b>"+(e.name||"schedule")+"</b> will be deleted.").ariaLabel("delete schedule").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getScheduler=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.schedule.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Scheduler",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSchedule=function(e,n){i.show({controller:"CreateOrEditScheduleDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/schedules/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{schedule:n,schedules:f.schedules.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSchedule=y,f.exportSelectedScheduler=function(){var e=angular.copy(f.selectedScheduler);return f.selectedScheduler=[],e},f.deleteSelectedScheduler=function(e){var n=i.confirm().title("Are you sure want to delete the selected schedules?").htmlContent("<b>"+f.selectedScheduler.length+" selected</b> will be deleted.").ariaLabel("delete Schedules").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedScheduler.forEach(function(e){y(e)}),f.selectedScheduler=[]})},f.deselectScheduler=function(){f.selectedScheduler=[]},f.selectAllScheduler=function(){f.selectedScheduler=f.schedules.rows},m.analyticTreeReport.get({}).$promise.then(function(e){f.treeReports=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TREEREPORTS",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.mailAccount.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.mailAccounts=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_MAILACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.mailAccount.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.mailAccounts=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:602}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.mailAccounts,{id:e.resourceId})}),t=null;if(f.schedule&&(t=_.find(f.mailAccounts,{id:Number(f.schedule.MailAccountId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.mailAccounts,{id:t.id});a.canSelect=!1,n.push(a)}f.mailAccounts=n})}else{var t=[],a=null;f.schedule&&(a=_.find(f.mailAccounts,{id:Number(f.schedule.MailAccountId)}));for(var i=0;i<f.mailAccounts.length;i++)a&&f.mailAccounts[i].id===a.id&&(f.mailAccounts[i].canSelect=!1,t.push(f.mailAccounts[i]));f.mailAccounts=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.schedules=e||{count:0,rows:[]}}function y(e){m.schedule.delete({id:e.id}).$promise.then(function(){_.remove(f.schedules.rows,{id:e.id}),f.schedules.count-=1,f.schedules.rows.length||f.getScheduler(),p.success({title:_.startCase("Schedule")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEschedule"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEschedule",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getScheduler())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","schedules","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("SchedulesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_SOUND",g.sound=angular.copy(l),g.sounds=r,g.newSound=!1,g.sound||(g.sound={},g.title="TOOLS.NEW_SOUND",g.newSound=!0),g.addNewSound=function(){g.errors=[],d.sound.save(g.sound).$promise.then(function(e){g.sounds.unshift(e.toJSON()),o.success({title:"Sound properly created",msg:g.sound.name?g.sound.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.sound.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.sound.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSound=function(){g.errors=[],d.sound.update({id:g.sound.id},g.sound).$promise.then(function(e){var n=_.find(g.sounds,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Sound properly saved!",msg:g.sound.name?g.sound.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.sound.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.sound.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSound=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The sound will be deleted.").ariaLabel("Delete Sound").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.sound.delete({id:g.sound.id}).$promise.then(function(){_.remove(g.sounds,{id:g.sound.id}),o.success({title:"Sound properly deleted!",msg:(g.sound.name||"sound")+" has been deleted!"}),v(g.sound)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.sound.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.sound.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","sounds","sound","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditSoundDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.sounds=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="sounds",f.listOrder="",f.listOrderAsc=null,f.selectedSounds=[],f.query={fields:"createdAt,updatedAt,id,save_name,converted_format,name,audio,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditSoundDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/sounds/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{sound:e,sounds:f.sounds.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.downloadfile2=function(s,e){return m.sound.download({id:s.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s.converted_format?s.save_name+"."+s.converted_format:s.save_name;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.sound.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("sound")+"?").htmlContent("<b>"+(e.name||"sound")+"</b> will be deleted.").ariaLabel("delete sound").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getSounds=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.sound.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Sounds",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSound=function(e,n){i.show({controller:"CreateOrEditSoundDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/sounds/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{sound:n,sounds:f.sounds.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSound=y,f.exportSelectedSounds=function(){var e=angular.copy(f.selectedSounds);return f.selectedSounds=[],e},f.deleteSelectedSounds=function(e){var n=i.confirm().title("Are you sure want to delete the selected sounds?").htmlContent("<b>"+f.selectedSounds.length+" selected</b> will be deleted.").ariaLabel("delete Sounds").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedSounds.forEach(function(e){y(e)}),f.selectedSounds=[]})},f.deselectSounds=function(){f.selectedSounds=[]},f.selectAllSounds=function(){f.selectedSounds=f.sounds.rows},f.uploadSound=function(e){i.show({controller:"UploadSoundDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/sounds/upload/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{sounds:f.sounds.rows}})};var b=!0,A=1;function E(e){f.sounds=e||{count:0,rows:[]}}function y(e){m.sound.delete({id:e.id}).$promise.then(function(){_.remove(f.sounds.rows,{id:e.id}),f.sounds.count-=1,f.sounds.rows.length||f.getSounds(),p.success({title:_.startCase("Sound")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsound"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEsound",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getSounds())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","sounds","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("SoundsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this,r=15,l=1024*r*1024;o.currentUser=s.getCurrentUser(),o.errors=[],o.title="TOOLS.UPLOAD_SOUND",o.sounds=a,o.uploadSounds=[],o.uploadState="none",o.sound={},o.ngFlowOptions={maxChunkRetries:1,chunkSize:l,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0,target:"api/sounds"},o.ngFlow={flow:{}},o.dropping=!1,o.fileAdded=function(e){var n=["wav","mp3","gsm"];if(!_.includes(n,e.getExtension()))return t.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(e.size>l)return t.error({title:"File too big",msg:"The max allowed size is "+r+"MB"}),!1;return o.sound={id:e.uniqueIdentifier,file:e},o.uploadSounds.unshift(o.sound),!0},o.upload=function(){o.uploadState="uploading",o.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},o.ngFlow.flow.opts.query={role:o.currentUser.role,userProfileId:o.currentUser.userProfileId},o.ngFlow.flow.upload()},o.fileSuccess=function(a,e){o.sounds.unshift(JSON.parse(e)),angular.forEach(o.uploadSounds,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result}}})},o.uploadError=function(e,n){o.ngFlow.flow.cancel(),t.error({title:"Upload error",msg:"Cannot upload the sound"}),o.uploadState="failed"},o.uploadComplete=function(){"failed"!==o.uploadState&&(o.uploadState="completed",t.success({title:"Upload completed",msg:o.sound.file.name+" uploaded successfully"}))},o.closeDialog=function(){n.hide()}}e.$inject=["$cookies","$mdDialog","toasty","sounds","api","Auth"],angular.module("app.tools").controller("UploadSoundDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_TAG",g.tag=angular.copy(l),g.tags=r,g.newTag=!1,g.tag||(g.tag={},g.title="TOOLS.NEW_TAG",g.newTag=!0),g.addNewTag=function(){g.errors=[],d.tag.save(g.tag).$promise.then(function(e){g.tags.unshift(e.toJSON()),o.success({title:"Tag properly created",msg:g.tag.name?g.tag.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.tag.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.tag.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveTag=function(){g.errors=[],d.tag.update({id:g.tag.id},g.tag).$promise.then(function(e){var n=_.find(g.tags,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Tag properly saved!",msg:g.tag.name?g.tag.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.tag.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.tag.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteTag=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The tag will be deleted.").ariaLabel("Delete Tag").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.tag.delete({id:g.tag.id}).$promise.then(function(){_.remove(g.tags,{id:g.tag.id}),o.success({title:"Tag properly deleted!",msg:(g.tag.name||"tag")+" has been deleted!"}),v(g.tag)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.tag.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.tag.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","tags","tag","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditTagDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.tags=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="tags",f.listOrder="",f.listOrderAsc=null,f.selectedTags=[],f.query={fields:"createdAt,updatedAt,id,name,description,color",sort:"name,-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditTagDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/tags/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{tag:e,tags:f.tags.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("tag")+"?").htmlContent("<b>"+(e.name||"tag")+"</b> will be deleted.").ariaLabel("delete tag").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getTags=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.tag.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Tags",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditTag=function(e,n){i.show({controller:"CreateOrEditTagDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/tags/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{tag:n,tags:f.tags.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteTag=y,f.exportSelectedTags=function(){var e=angular.copy(f.selectedTags);return f.selectedTags=[],e},f.deleteSelectedTags=function(e){var n=i.confirm().title("Are you sure want to delete the selected tags?").htmlContent("<b>"+f.selectedTags.length+" selected</b> will be deleted.").ariaLabel("delete Tags").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedTags.forEach(function(e){y(e)}),f.selectedTags=[]})},f.deselectTags=function(){f.selectedTags=[]},f.selectAllTags=function(){f.selectedTags=f.tags.rows};var b=!0,A=1;function E(e){f.tags=e||{count:0,rows:[]}}function y(e){m.tag.delete({id:e.id}).$promise.then(function(){_.remove(f.tags.rows,{id:e.id}),f.tags.count-=1,f.tags.rows.length||f.getTags(),p.success({title:_.startCase("Tag")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEtag"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEtag",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getTags())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","tags","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("TagsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_TEMPLATE",g.template=angular.copy(l),g.templates=r,g.newTemplate=!1,g.template||(g.template={},g.title="TOOLS.NEW_TEMPLATE",g.newTemplate=!0),g.addNewTemplate=function(){g.errors=[],d.template.save(g.template).$promise.then(function(e){g.templates.unshift(e.toJSON()),o.success({title:"Template properly created",msg:g.template.name?g.template.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.template.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.template.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveTemplate=function(){g.errors=[],d.template.update({id:g.template.id},g.template).$promise.then(function(e){var n=_.find(g.templates,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Template properly saved!",msg:g.template.name?g.template.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.template.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.template.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteTemplate=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The template will be deleted.").ariaLabel("Delete Template").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.template.delete({id:g.template.id}).$promise.then(function(){_.remove(g.templates,{id:g.template.id}),o.success({title:"Template properly deleted!",msg:(g.template.name||"template")+" has been deleted!"}),v(g.template)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.template.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.template.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","templates","template","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditTemplateDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.templates=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="templates",f.listOrder="",f.listOrderAsc=null,f.selectedTemplates=[],f.query={fields:"createdAt,updatedAt,id,name,html,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditTemplateDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/templates/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{template:e,templates:f.templates.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("template")+"?").htmlContent("<b>"+(e.name||"template")+"</b> will be deleted.").ariaLabel("delete template").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getTemplates=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.template.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Templates",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditTemplate=function(e,n){i.show({controller:"CreateOrEditTemplateDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/templates/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{template:n,templates:f.templates.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteTemplate=y,f.exportSelectedTemplates=function(){var e=angular.copy(f.selectedTemplates);return f.selectedTemplates=[],e},f.deleteSelectedTemplates=function(e){var n=i.confirm().title("Are you sure want to delete the selected templates?").htmlContent("<b>"+f.selectedTemplates.length+" selected</b> will be deleted.").ariaLabel("delete Templates").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedTemplates.forEach(function(e){y(e)}),f.selectedTemplates=[]})},f.deselectTemplates=function(){f.selectedTemplates=[]},f.selectAllTemplates=function(){f.selectedTemplates=f.templates.rows};var b=!0,A=1;function E(e){f.templates=e||{count:0,rows:[]}}function y(e){m.template.delete({id:e.id}).$promise.then(function(){_.remove(f.templates.rows,{id:e.id}),f.templates.count-=1,f.templates.rows.length||f.getTemplates(),p.success({title:_.startCase("Template")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEtemplate"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEtemplate",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getTemplates())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","templates","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("TemplatesController",e)}(),function(){"use strict";function e(t,a,i,e,n,s,o,r,l,d){var c=this;function m(e){t.hide(e)}c.currentUser=o.getCurrentUser(),c.trigger=angular.copy(n),c.triggers=angular.copy(e),c.setting=l,c.license=r,c.crudPermissions=d,c.newTrigger=!1,c.errors=[],c.trigger||(c.trigger={channel:"voice"},c.newTrigger=!0),c.addNewTrigger=function(){c.errors=[],s.trigger.save(c.trigger).$promise.then(function(e){c.triggers.unshift(e.toJSON()),i.success({title:a.instant("TOOLS.NOTIFICATIONS.TRIGGER_CREATED_SUCCESS_TITLE")}),m(c.triggers)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.trigger.save"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trigger.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.saveTrigger=function(){c.errors=[],s.trigger.update({id:c.trigger.id},c.trigger).$promise.then(function(){c.triggers=_.map(c.triggers,function(e){return e.id===c.trigger.id?c.trigger:e}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.TRIGGER_SAVED_SUCCESS_TITLE")}),m(c.triggers)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.trigger.update"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trigger.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.deleteTrigger=function(e){c.errors=[];var n=t.confirm({skipHide:!0}).title(a.instant("TOOLS.NOTIFICATIONS.TRIGGER_DELETE_TITLE")).content(a.instant("TOOLS.NOTIFICATIONS.TRIGGER_DELETE_MESSAGE",{name:c.trigger.name})).ariaLabel("Delete trigger").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){s.trigger.delete({id:c.trigger.id}).$promise.then(function(){c.triggers=_.filter(c.triggers,function(e){return e.id!==c.trigger.id}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.TRIGGER_DELETED_SUCCESS_TITLE")}),m(c.triggers)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.trigger.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trigger.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},c.closeDialog=m}e.$inject=["$mdDialog","$translate","toasty","triggers","trigger","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditTriggerDialogController",e)}(),function(){"use strict";function e(e,a,n,i,t,s,o,r){var l=this;function d(){_.some(l.triggerActions.rows,["action","contactManager"])&&(l.lists||(r.isAdmin()?o.cmList.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.lists=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):o.cmList.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.lists=e.rows||[]}).then(function(){return o.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return o.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(l.lists,{id:e.resourceId})}),a=null;a=[],l.triggerActions.rows.forEach(function(e){if("contactManager"===e.action){var n=_.find(l.lists,{id:Number(e.data1)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(l.lists,{id:e.id});n.canSelect=!1,t.push(n)}}),l.lists=t})}else{var t=[],a=[];l.triggerActions.rows.forEach(function(e){if("contactManager"===e.action){var n=_.find(l.lists,{id:Number(e.data1)});a.push(n)}});for(var i=0;i<l.lists.length;i++)_.some(a,{id:l.lists[i].id})&&(l.lists[i].canSelect=!1,t.push(l.lists[i]));l.lists=t}}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}))),_.some(l.triggerActions.rows,["action","integration"])&&_(l.triggerActions.rows).map(function(e){return"integration"===e.action?e.data1:void 0}).compact().uniq().value().forEach(function(e){var n=e+"Accounts";if(!l[n]){var t="int"+_.startCase(e)+"Account";o[t.replace(/\s+/g,"")].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){l[n]=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+n.toUpperCase()+"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}}),_.some(l.triggerActions.rows,function(e){return _.includes(["motionbar","browser"],e.action)})&&(l.templates||(r.isAdmin()?o.template.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){l.templates=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEMPLATES",msg:e.data?JSON.stringify(e.data):e.toString()})}):o.template.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){l.templates=e.rows||[]}).then(function(){return o.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1009}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return o.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(l.templates,{id:e.resourceId})}),a=null;a=[],l.triggerActions.rows.forEach(function(e){if(_.includes(["motionbar","browser"],e.action)){var n=_.find(l.templates,{id:Number(e.data2)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(l.templates,{id:e.id});n.canSelect=!1,t.push(n)}}),l.templates=t})}else{var t=[],a=[];l.triggerActions.rows.forEach(function(e){if(_.includes(["motionbar","browser"],e.action)){var n=_.find(l.templates,{id:Number(e.data2)});a.push(n)}});for(var i=0;i<l.templates.length;i++)_.some(a,{id:l.templates[i].id})&&(l.templates[i].canSelect=!1,t.push(l.templates[i]));l.templates=t}}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEMPLATES",msg:e.data?JSON.stringify(e.data):e.toString()})}))),_.some(l.triggerActions.rows,["action","jscripty"])&&(l.projects||(r.isAdmin()?o.jscriptyProject.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.projects=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PROJECTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):o.jscriptyProject.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.projects=e.rows||[]}).then(function(){return o.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1701}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return o.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(l.projects,{id:e.resourceId})}),a=null;a=[],l.triggerActions.rows.forEach(function(e){if("jscripty"===e.action){var n=_.find(l.projects,{id:Number(e.data1)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(l.projects,{id:e.id});n.canSelect=!1,t.push(n)}}),l.projects=t})}else{var t=[],a=[];l.triggerActions.rows.forEach(function(e){if("jscripty"===e.action){var n=_.find(l.projects,{id:Number(e.data1)});a.push(n)}});for(var i=0;i<l.projects.length;i++)_.some(a,{id:l.projects[i].id})&&(l.projects[i].canSelect=!1,t.push(l.projects[i]));l.projects=t}}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})})))}function c(e){l.triggerActions=e||{count:0,rows:[]},d()}function m(){l.query.offset=(l.query.page-1)*l.query.limit,l.promise=o.trigger.getActions(l.query,c).$promise}function u(e,n){o.action.delete({id:e.id}).$promise.then(function(){m(),n&&s.success({title:a.instant("TOOLS.NOTIFICATIONS.ACTION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){l.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETtrigger"}];for(var n=0;n<e.data.errors.length;n++)s.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}l.currentUser=r.getCurrentUser(),l.trigger={},l.triggerActions={count:0,rows:[]},l.selectedTriggerActions=[],l.query={fields:"id,action,contact,data1,data2,data3,data4,data5,data6,data7,createdAt,updatedAt",limit:10,page:1},l.integrationTypes={zendesk:"Zendesk",salesforce:"Salesforce",sugarcrm:"SugarCRM",freshdesk:"Freshdesk",desk:"Desk",zoho:"Zoho",vtiger:"vTiger",dynamics365:"Dynamics365",servicenow:"ServiceNow",freshsales:"Freshsales"},l.motionBarOptions={0:"Popup",1:"CTI URL",2:"Windows App"},l.onInit=function(e,n){l.trigger=e,l.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},l.query.ActionId=l.trigger.id,l.query.id=l.trigger.id,m()},l.success=c,l.getTriggerActions=m,l.createOrEditTriggerAction=function(e,n){i.show({controller:"CreateOrEditActionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/edit/actions/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{trigger:l.trigger,action:n,actions:l.triggerActions.rows,license:null,setting:null,crudPermissions:l.crudPermissions}}).then(function(e){e&&(l.triggerActions={count:e.length,rows:e},d())})},l.exportSelectedTriggerActions=function(){var e=angular.copy(l.selectedTriggerActions);return l.selectedTriggerActions=[],e},l.deleteConfirm=function(e,n){var t=i.confirm().title(a.instant("TOOLS.NOTIFICATIONS.ACTION_DELETE_TITLE")).ariaLabel("Delete action").targetEvent(n).ok("OK").cancel(a.instant("TOOLS.CANCEL"));i.show(t).then(function(){u(e,!0)})},l.deleteSelectedTriggerActions=function(e){var n=i.confirm().title(a.instant("TOOLS.NOTIFICATIONS.ACTIONS_DELETE_TITLE")).content(a.instant("TOOLS.NOTIFICATIONS.ACTIONS_DELETE_MESSAGE",{total:l.selectedTriggerActions.length})).ariaLabel("Delete actions").targetEvent(e).ok("OK").cancel(a.instant("TOOLS.CANCEL"));i.show(n).then(function(){l.selectedTriggerActions.forEach(function(e){u(e)}),l.selectedTriggerActions=[],s.success({title:a.instant("TOOLS.NOTIFICATIONS.ACTIONS_DELETED_SUCCESS_TITLE")})})}}e.$inject=["$scope","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.tools").controller("TriggerActionsController",e)}(),function(){"use strict";function e(n,t,a,i,e,s,o,r,l,d,c,m){var u=this;function p(){return new Promise(function(n,t){l.hasSectionsPermissions([1301,1302,1303,1304,1305,1306,1307,1308,1309,1310]).then(function(e){u.hasSectionPermissions=_.merge(u.hasSectionPermissions,e),n(u.hasSectionPermissions)}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_SECTIONS_PERMISSIONS",msg:e.data?JSON.stringify(e.data):e.toString()}),t()})})}function g(){r.cmList.getCustomFields({id:u.action.data1,ListId:u.action.data1}).$promise.then(function(e){u.listFields=_.filter(e.rows,["type","text"]),u.listFields.forEach(function(e){e.columnName="cf_"+e.id})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LIST_CUSTOM_FIELDS",msg:e.data?JSON.stringify(e.data):e.toString()})})}function v(){l.isAdmin()?r.template.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u.templates=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEMPLATES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.template.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u.templates=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1009}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.templates,{id:e.resourceId})}),a=null;a=[],u.actions.forEach(function(e){if(_.includes(["motionbar","browser"],e.action)){var n=_.find(u.templates,{id:Number(e.data2)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.templates,{id:e.id});n.canSelect=!1,t.push(n)}}),u.templates=t})}else{var t=[],a=[];u.actions.forEach(function(e){if(_.includes(["motionbar","browser"],e.action)){var n=_.find(u.templates,{id:Number(e.data2)});a.push(n)}});for(var i=0;i<u.templates.length;i++){_.some(a,{id:u.templates[i].id})&&(u.templates[i].canSelect=!1,t.push(u.templates[i]))}u.templates=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEMPLATES",msg:e.data?JSON.stringify(e.data):e.toString()})})}function h(){switch(u.action.action){case"contactManager":u.lists||(l.isAdmin()?r.cmList.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.lists=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.lists,{id:e.resourceId})}),a=null;a=[],u.actions.forEach(function(e){if("contactManager"===e.action){var n=_.find(u.lists,{id:Number(e.data1)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.lists,{id:e.id});n.canSelect=!1,t.push(n)}}),u.lists=t})}else{var t=[],a=[];u.actions.forEach(function(e){if("contactManager"===e.action){var n=_.find(u.lists,{id:Number(e.data1)});a.push(n)}});for(var i=0;i<u.lists.length;i++)_.some(a,{id:u.lists[i].id})&&(u.lists[i].canSelect=!1,t.push(u.lists[i]));u.lists=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})})),u.contactFields||r.cmContact.describe({}).$promise.then(function(e){u.contactFields=[],u.customFields=[];for(var n=_.values(e.toJSON()),t=0;t<n.length;t++)_.includes(u.allowedStandardFields,n[t].columnName)?u.contactFields.push(n[t]):_.startsWith(n[t].columnName,"cf_")&&"text"===n[t].custom.type&&u.customFields.push(n[t])}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DESCRIBE_CM_CONTACT",msg:e.data?JSON.stringify(e.data):e.toString()})}),u.action.data3=u.action.data3?u.action.data3.split(","):["phone"],"1"!==u.action.data2||u.action.data4||(u.action.data4="phone");break;case"jscripty":u.projects||(l.isAdmin()?r.jscriptyProject.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.projects=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PROJECTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.jscriptyProject.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.projects=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1701}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.projects,{id:e.resourceId})}),a=null;a=[],u.actions.forEach(function(e){if("jscripty"===e.action){var n=_.find(u.projects,{id:Number(e.data1)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.projects,{id:e.id});n.canSelect=!1,t.push(n)}}),u.projects=t})}else{var t=[],a=[];u.actions.forEach(function(e){if("jscripty"===e.action){var n=_.find(u.projects,{id:Number(e.data1)});a.push(n)}});for(var i=0;i<u.projects.length;i++)_.some(a,{id:u.projects[i].id})&&(u.projects[i].canSelect=!1,t.push(u.projects[i]));u.projects=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"urlForward":u.action.data5||(u.action.data5=5)}}function f(){u.editAccount||(u.action.data2=void 0,u.action.data3=void 0),u.action.isIntegrationDisabled=!u.newAction&&!function(){switch(u.action.data1){case"zendesk":return u.hasSectionPermissions[1301];case"salesforce":return u.hasSectionPermissions[1302];case"sugarcrm":return u.hasSectionPermissions[1305];case"freshdesk":return u.hasSectionPermissions[1303];case"desk":return u.hasSectionPermissions[1306];case"zoho":return u.hasSectionPermissions[1307];case"vtiger":return u.hasSectionPermissions[1308];case"dynamics365":return u.hasSectionPermissions[1309];case"servicenow":return u.hasSectionPermissions[1310];case"freshsales":return u.hasSectionPermissions[1304]}}();var e="int"+_.capitalize(u.action.data1)+"Account";r[e].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u.accounts=e.rows||[],u.editAccount=!1}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+u.action.data1.toUpperCase()+"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){u.action.data3=u.action.data3?u.action.data3:void 0;var e="int"+_.capitalize(u.action.data1)+"Configuration";r[e].get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){u.configurations=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+u.action.data1.toUpperCase()+"CONFIGURATIONS",msg:e.data?JSON.stringify(e.data):e.toString()})})}function A(){var e=angular.copy(u.action);return _.isArray(e.data3)&&(e.data3=u.action.data3.join(",")),e}function E(e){t.hide(e)}u.currentUser=l.getCurrentUser(),void 0!==s&&"urlForward"===s.action&&s.data5&&(s.data5=parseInt(s.data5)),u.action=angular.copy(s),u.actions=angular.copy(e),u.setting=c,u.license=d,u.crudPermissions=m,u.newAction=!1,u.errors=[],u.trigger=angular.copy(o),u.action?function(){switch(u.editAccount=!0,u.action.action){case"integration":return new Promise(function(e){e(p())}).then(function(){return u.editAccount||(u.action.data2=void 0,u.action.data3=void 0,h()),f()}).then(function(){return b()});case"motionbar":case"browser":v()}u.editAccount=!1}():(u.action={},u.newAction=!0),u.action.ActionId=n.params.id||void 0,u.allowedStandardFields=["phone","mobile","fax"],u.addNewAction=function(){u.errors=[];var e=A();r.trigger.addAction({id:n.params.id},e).$promise.then(function(e){u.actions.unshift(e.toJSON()),i.success({title:a.instant("TOOLS.NOTIFICATIONS.ACTION_CREATED_SUCCESS_TITLE")}),E(u.actions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.action.save"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.action.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveAction=function(){u.errors=[];var n=A();r.action.update({id:n.id},n).$promise.then(function(){u.actions=_.map(u.actions,function(e){return e.id===n.id?n:e}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.ACTION_SAVED_SUCCESS_TITLE")}),E(u.actions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.action.update"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.action.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteAction=function(e){u.errors=[];var n=t.confirm({skipHide:!0}).title(a.instant("TOOLS.NOTIFICATIONS.ACTION_DELETE_TITLE")).ariaLabel("Delete action").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){r.action.delete({id:u.action.id}).$promise.then(function(){u.actions=_.filter(u.actions,function(e){return e.id!==u.action.id}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.ACTION_DELETED_SUCCESS_TITLE")}),E(u.actions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.action.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.action.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.onActionInit=function(){l.hasModulePermissions("Integrations").then(function(e){u.hasIntegrationsPermissions=e}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_MODULE_PERMISSIONS",msg:e.data?JSON.stringify(e.data):e.toString()})}),u.action.action&&h()},u.onIntegrationInit=p,u.onSearchFieldsInit=function(){u.newAction||g()},u.onActionSelection=function(){u.newAction&&(u.action.data1=void 0,u.action.data2=void 0,u.action.data3=void 0,u.action.data4=void 0,u.action.data5="urlForward"===u.action.action?5:void 0,h())},u.onIntegrationSelection=f,u.onListSelection=function(){g()},u.onTypeSelection=function(){"0"!==u.action.data1||u.templates?(u.action.data2=void 0,u.action.data4="1"===u.action.data1?0:void 0):v()},u.onAutocreateSelection=function(){"0"===u.action.data2&&(u.action.data4=void 0);u.action.data4||"1"!==u.action.data2||(u.action.data4="phone")},u.onIntegrationAccountSelection=b,u.closeDialog=E,u.onActionLocationChange=function(){u.editAccount||(u.action.data5=void 0,u.action.data6=void 0)}}e.$inject=["$state","$mdDialog","$translate","toasty","actions","action","trigger","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditActionDialogController",e)}(),function(){"use strict";function e(e,l,a,n,i,t,d,c,m){var u=this;function s(){var o,r;"voice"===u.trigger.channel?(_.some(u.allConditions.rows,["field","queue"])&&(u.queues||(o=[{id:401,type:"inbound"},{id:1501,type:"outbound"}],r=null,m.isAdmin()?c.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){u.queues=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VOICEQUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):c.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){r=e.rows||[]}).then(function(){for(var e=[],n=0;n<o.length;n++)e.push(c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:o[n].id}).$promise);return l.all(e)}).then(function(e){for(var n=_.map(e,function(e){return e&&e.rows?e.rows[0]:null}),t=[],a=0;a<o.length;a++){var i=_.find(n,["sectionId",o[a].id]);if(i)if(i.autoAssociation){var s=[];r.forEach(function(e){e.type===o[a].type&&s.push(e)}),t.push({rows:s,count:s.length})}else t.push(c.userProfileResource.get({sectionId:i.id}).$promise.then(function(e){return{count:e.count,rows:_.map(e.rows,function(e){return e.id=e.resourceId,delete e.resourceId,e})}}))}return l.all(t)}).then(function(e){var t=[],a=[];u.allConditions.rows.forEach(function(e){if("queue"===e.field){var n=_.find(r,{name:e.value});a.push(n)}});for(var n=0;n<e.length;n++)(e[n].rows||[]).forEach(function(e){t.push(e)});_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(r,{id:e.id});n.canSelect=!1,t.push(n)}}),u.queues=t}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}))),_.some(u.allConditions.rows,["field","routeId"])&&(u.outboundRoutes||(m.isAdmin()?c.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){u.outboundRoutes=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}):c.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){u.outboundRoutes=e.rows||[]}).then(function(){return c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:403}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return c.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.outboundRoutes,{id:e.resourceId})}),a=null;a=[],u.triggerAllConditions.rows.forEach(function(e){if("routeId"===e.field){var n=_.find(u.outboundRoutes,{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.outboundRoutes,{id:e.id});n.canSelect=!1,t.push(n)}}),u.outboundRoutes=t})}else{var t=[],a=[];u.allConditions.rows.forEach(function(e){if("routeId"===e.field){var n=_.find(u.outboundRoutes,{id:Number(e.value)});a.push(n)}});for(var i=0;i<u.outboundRoutes.length;i++)_.some(a,{id:u.outboundRoutes[i].id})&&(u.outboundRoutes[i].canSelect=!1,t.push(u.outboundRoutes[i]));u.outboundRoutes=t}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}))),_.some(u.allConditions.rows,["field","agent"])&&(u.agents||(m.isAdmin()?c.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){u.agents=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):c.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){u.agents=e.rows||[]}).then(function(){return c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return c.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.agents,{id:e.resourceId})}),a=null;a=[],u.triggerAllConditions.rows.forEach(function(e){if("agent"===e.field){var n=_.find(u.agents,{name:e.value});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.agents,{id:e.id});n.canSelect=!1,t.push(n)}}),u.agents=t})}else{var t=[],a=[];u.allConditions.rows.forEach(function(e){if("agent"===e.field){var n=_.find(u.agents,{name:e.value});a.push(n)}});for(var i=0;i<u.agents.length;i++)_.some(a,{id:u.agents[i].id})&&(u.agents[i].canSelect=!1,t.push(u.agents[i]));u.agents=t}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})})))):("mail"===u.trigger.channel&&c.mailSubstatus.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.mailSubstatuses=e.rows||[]}).catch(function(){d.error({title:a.instant("MAIL.SUBSTATUSES"),msg:a.instant("MAIL.NOTIFICATIONS.SUBSTATUSES_GET_ERROR")})}),function(){var e,s=u.trigger.channel+("chat"===u.trigger.channel?"Websites":"Accounts"),n=u.trigger.channel+("chat"===u.trigger.channel?"Website":"Account");switch(u.trigger.channel){case"chat":e=502;break;case"fax":e=902;break;case"mail":e=602;break;case"openchannel":e=802;break;case"sms":e=702;break;case"whatsapp":e=2102}m.isAdmin()?c[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u[s]=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+u.trigger.channel.toUpperCase()+u.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):c[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u[s]=e.rows||[]}).then(function(){return c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:e}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return c.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u[s],{id:e.resourceId})}),a=null;a=[],u.allConditions.rows.forEach(function(e){if("account"===e.field){var n=_.find(u[s],{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u[s],{id:e.id});n.canSelect=!1,t.push(n)}}),u[s]=t})}else{var t=[],a=[];u.allConditions.rows.forEach(function(e){if("account"===e.field){var n=_.find(u[s],{id:Number(e.value)});a.push(n)}});for(var i=0;i<u[s].length;i++)_.some(a,{id:u[s][i].id})&&(u[s][i].canSelect=!1,t.push(u[s][i]));u[s]=t}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+u.trigger.channel.toUpperCase()+u.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}())}function o(e){u.allConditions=e||{count:0,rows:[]},s()}function r(){u.query.offset=(u.query.page-1)*u.query.limit,u.promise=c.trigger.getAllConditions(u.query,o).$promise}function p(e,n){c.condition.delete({id:e.id}).$promise.then(function(){r(),n&&d.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETtrigger"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}u.currentUser=m.getCurrentUser(),u.trigger={},u.allConditions={count:0,rows:[]},u.selectedAllConditions=[],u.query={fields:"id,field,operator,value,createdAt,updatedAt",limit:10,page:1},u.fields={queue:"Queue",lastevent:"Call_Status",routeId:"OutboundRoute",agent:"Agent",account:"Account",interaction:"Interaction",message:"Message",mailSubstatus:"Mail_Substatus"},u.callStatuses={abandoned:"Abandon",timeout:"Timeout",complete:"Hangup",rejected:"Reject",called:"Ring",connect:"Answer",nosuchnumber:"NoSuchNumber",busy:"Busy",noanswer:"NoAnswer",congestion:"Congestion",agentreject:"AgentReject",amd:"AMD"},u.messageStatuses={in:"Incoming",out:"Outgoing",accept:"Accepted",reject:"Rejected"},u.onInit=function(e,n){u.trigger=e,u.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},u.query.TriggerAllId=u.trigger.id,u.query.id=u.trigger.id,r()},u.success=o,u.getAllConditions=r,u.createOrEditAllCondition=function(e,n){i.show({controller:"CreateOrEditAllConditionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/edit/allconditions/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{trigger:u.trigger,allCondition:n,allConditions:u.allConditions.rows,license:null,setting:null,crudPermissions:u.crudPermissions}}).then(function(e){e&&(u.allConditions={count:e.length,rows:e},s())})},u.exportSelectedAllConditions=function(){var e=angular.copy(u.selectedAllConditions);return u.selectedAllConditions=[],e},u.deleteConfirm=function(e,n){var t=i.confirm().title(a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETE_TITLE")).ariaLabel("Delete condition").targetEvent(n).ok("OK").cancel(a.instant("TOOLS.CANCEL"));i.show(t).then(function(){p(e,!0)})},u.deleteSelectedAllConditions=function(e){var n=i.confirm().title(a.instant("TOOLS.NOTIFICATIONS.CONDITIONS_DELETE_TITLE")).content(a.instant("TOOLS.NOTIFICATIONS.CONDITIONS_DELETE_MESSAGE",{total:u.selectedAllConditions.length})).ariaLabel("Delete conditions").targetEvent(e).ok("OK").cancel(a.instant("TOOLS.CANCEL"));i.show(n).then(function(){u.selectedAllConditions.forEach(function(e){p(e)}),u.selectedAllConditions=[],d.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITIONS_DELETED_SUCCESS_TITLE")})})}}e.$inject=["$scope","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.tools").controller("TriggerAllConditionsController",e)}(),function(){"use strict";function e(e,t,l,a,i,n,s,o,d,c,r,m,u){var p=this;function g(){switch(p.allCondition.field){case"queue":p.queues||(o=[{id:401,type:"inbound"},{id:1501,type:"outbound"}],r=null,c.isAdmin()?d.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){p.queues=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VOICEQUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){r=e.rows||[]}).then(function(){for(var e=[],n=0;n<o.length;n++)e.push(d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:o[n].id}).$promise);return l.all(e)}).then(function(e){for(var n=_.map(e,function(e){return e&&e.rows?e.rows[0]:null}),t=[],a=0;a<o.length;a++){var i=_.find(n,["sectionId",o[a].id]);if(i)if(i.autoAssociation){var s=[];r.forEach(function(e){e.type===o[a].type&&s.push(e)}),t.push({rows:s,count:s.length})}else t.push(d.userProfileResource.get({sectionId:i.id}).$promise.then(function(e){return{count:e.count,rows:_.map(e.rows,function(e){return e.id=e.resourceId,delete e.resourceId,e})}}))}return l.all(t)}).then(function(e){var t=[],a=[];p.allConditions.forEach(function(e){if("queue"===e.field){var n=_.find(r,{name:e.value});a.push(n)}});for(var n=0;n<e.length;n++)(e[n].rows||[]).forEach(function(e){t.push(e)});_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(r,{id:e.id});n.canSelect=!1,t.push(n)}}),p.queues=t}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"routeId":p.outboundRoutes||(c.isAdmin()?d.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){p.outboundRoutes=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){p.outboundRoutes=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:403}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(p.outboundRoutes,{id:e.resourceId})}),a=null;a=[],p.allConditions.forEach(function(e){if("routeId"===e.field){var n=_.find(p.outboundRoutes,{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(p.outboundRoutes,{id:e.id});n.canSelect=!1,t.push(n)}}),p.outboundRoutes=t})}else{var t=[],a=[];p.allConditions.forEach(function(e){if("routeId"===e.field){var n=_.find(p.outboundRoutes,{id:Number(e.value)});a.push(n)}});for(var i=0;i<p.outboundRoutes.length;i++)_.some(a,{id:p.outboundRoutes[i].id})&&(p.outboundRoutes[i].canSelect=!1,t.push(p.outboundRoutes[i]));p.outboundRoutes=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"agent":p.agents||(c.isAdmin()?d.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){p.agents=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){p.agents=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(p.agents,{id:e.resourceId})}),a=null;a=[],p.allConditions.forEach(function(e){if("agent"===e.field){var n=_.find(p.agents,{name:e.value});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(p.agents,{id:e.id});n.canSelect=!1,t.push(n)}}),p.agents=t})}else{var t=[],a=[];p.allConditions.forEach(function(e){if("agent"===e.field){var n=_.find(p.agents,{name:e.value});a.push(n)}});for(var i=0;i<p.agents.length;i++)_.some(a,{id:p.agents[i].id})&&(p.agents[i].canSelect=!1,t.push(p.agents[i]));p.agents=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"account":!function(){var e,n=p.trigger.channel+("chat"===p.trigger.channel?"Website":"Account");switch(p.trigger.channel){case"chat":e=502;break;case"fax":e=902;break;case"mail":e=602;break;case"openchannel":e=802;break;case"sms":e=702;break;case"whatsapp":e=2102}c.isAdmin()?d[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.accounts=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+p.trigger.channel.toUpperCase()+p.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.accounts=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:e}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(p.accounts,{id:e.resourceId})}),a=null;a=[],p.allConditions.forEach(function(e){if("account"===e.field){var n=_.find(p.accounts,{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(p.accounts,{id:e.id});n.canSelect=!1,t.push(n)}}),p.accounts=t})}else{var t=[],a=[];p.allConditions.forEach(function(e){if("account"===e.field){var n=_.find(p.accounts,{id:Number(e.value)});a.push(n)}});for(var i=0;i<p.accounts.length;i++)_.some(a,{id:p.accounts[i].id})&&(p.accounts[i].canSelect=!1,t.push(p.accounts[i]));p.accounts=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+p.trigger.channel.toUpperCase()+p.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}();break;case"mailSubstatus":d.mailSubstatus.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){p.mailSubstatuses=e.rows||[]}).catch(function(){i.error({title:a.instant("MAIL.SUBSTATUSES"),msg:a.instant("MAIL.NOTIFICATIONS.SUBSTATUSES_GET_ERROR")})})}var o,r}function v(e){t.hide(e)}p.currentUser=c.getCurrentUser(),p.allCondition=angular.copy(s),p.allConditions=angular.copy(n),p.setting=m,p.license=r,p.crudPermissions=u,p.hasModulePermissions={},p.newAllCondition=!1,p.errors=[],p.trigger=angular.copy(o),p.allCondition?g():(p.allCondition={operator:"equals"},p.newAllCondition=!0),p.allCondition.TriggerAllId=e.params.id||void 0,p.callStatuses=[{name:"Abandon",value:"abandoned"},{name:"Timeout",value:"timeout"},{name:"Hangup",value:"complete"},{name:"Reject",value:"rejected"},{name:"Ring",value:"called"},{name:"Answer",value:"connect"},{name:"NoSuchNumber",value:"nosuchnumber"},{name:"Busy",value:"busy"},{name:"NoAnswer",value:"noanswer"},{name:"Congestion",value:"congestion"},{name:"AgentReject",value:"agentreject"},{name:"AMD",value:"amd"}],p.onFieldSelection=function(){p.allCondition.value=void 0,g()},p.addNewAllCondition=function(){p.errors=[],d.trigger.addAllCondition({id:e.params.id},p.allCondition).$promise.then(function(e){p.allConditions.unshift(e.toJSON()),i.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_CREATED_SUCCESS_TITLE")}),v(p.allConditions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.save"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.condition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.saveAllCondition=function(){p.errors=[],d.condition.update({id:p.allCondition.id},p.allCondition).$promise.then(function(){p.allConditions=_.map(p.allConditions,function(e){return e.id===p.allCondition.id?p.allCondition:e}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_SAVED_SUCCESS_TITLE")}),v(p.allConditions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.update"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.condition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.deleteAllCondition=function(e){p.errors=[];var n=t.confirm({skipHide:!0}).title(a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETE_TITLE")).ariaLabel("Delete condition").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){d.condition.delete({id:p.allCondition.id}).$promise.then(function(){p.allConditions=_.filter(p.allConditions,function(e){return e.id!==p.allCondition.id}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETED_SUCCESS_TITLE")}),v(p.allConditions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.condition.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},p.closeDialog=v}e.$inject=["$state","$mdDialog","$q","$translate","toasty","allConditions","allCondition","trigger","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditAllConditionDialogController",e)}(),function(){"use strict";function e(e,l,a,n,i,t,d,c,m){var u=this;function s(){var o,r;"voice"===u.trigger.channel?(_.some(u.anyConditions.rows,["field","queue"])&&(u.queues||(o=[{id:401,type:"inbound"},{id:1501,type:"outbound"}],r=null,m.isAdmin()?c.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){u.queues=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VOICEQUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):c.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){r=e.rows||[]}).then(function(){for(var e=[],n=0;n<o.length;n++)e.push(c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:o[n].id}).$promise);return l.all(e)}).then(function(e){for(var n=_.map(e,function(e){return e&&e.rows?e.rows[0]:null}),t=[],a=0;a<o.length;a++){var i=_.find(n,["sectionId",o[a].id]);if(i)if(i.autoAssociation){var s=[];r.forEach(function(e){e.type===o[a].type&&s.push(e)}),t.push({rows:s,count:s.length})}else t.push(c.userProfileResource.get({sectionId:i.id}).$promise.then(function(e){return{count:e.count,rows:_.map(e.rows,function(e){return e.id=e.resourceId,delete e.resourceId,e})}}))}return l.all(t)}).then(function(e){var t=[],a=[];u.anyConditions.rows.forEach(function(e){if("queue"===e.field){var n=_.find(r,{name:e.value});a.push(n)}});for(var n=0;n<e.length;n++)(e[n].rows||[]).forEach(function(e){t.push(e)});_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(r,{id:e.id});n.canSelect=!1,t.push(n)}}),u.queues=t}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}))),_.some(u.anyConditions.rows,["field","routeId"])&&(u.outboundRoutes||(m.isAdmin()?c.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){u.outboundRoutes=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}):c.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){u.outboundRoutes=e.rows||[]}).then(function(){return c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:403}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return c.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.outboundRoutes,{id:e.resourceId})}),a=null;a=[],u.anyConditions.rows.forEach(function(e){if("routeId"===e.field){var n=_.find(u.outboundRoutes,{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.outboundRoutes,{id:e.id});n.canSelect=!1,t.push(n)}}),u.outboundRoutes=t})}else{var t=[],a=[];u.anyConditions.rows.forEach(function(e){if("routeId"===e.field){var n=_.find(u.outboundRoutes,{id:Number(e.value)});a.push(n)}});for(var i=0;i<u.outboundRoutes.length;i++)_.some(a,{id:u.outboundRoutes[i].id})&&(u.outboundRoutes[i].canSelect=!1,t.push(u.outboundRoutes[i]));u.outboundRoutes=t}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}))),_.some(u.anyConditions.rows,["field","agent"])&&(u.agents||(m.isAdmin()?c.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){u.agents=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):c.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){u.agents=e.rows||[]}).then(function(){return c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return c.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.agents,{id:e.resourceId})}),a=null;a=[],u.anyConditions.rows.forEach(function(e){if("agent"===e.field){var n=_.find(u.agents,{name:e.value});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.agents,{id:e.id});n.canSelect=!1,t.push(n)}}),u.agents=t})}else{var t=[],a=[];u.anyConditions.rows.forEach(function(e){if("agent"===e.field){var n=_.find(u.agents,{name:e.value});a.push(n)}});for(var i=0;i<u.agents.length;i++)_.some(a,{id:u.agents[i].id})&&(u.agents[i].canSelect=!1,t.push(u.agents[i]));u.agents=t}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})})))):("mail"===u.trigger.channel&&c.mailSubstatus.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.mailSubstatuses=e.rows||[]}).catch(function(){d.error({title:a.instant("MAIL.SUBSTATUSES"),msg:a.instant("MAIL.NOTIFICATIONS.SUBSTATUSES_GET_ERROR")})}),function(){var e,s=u.trigger.channel+("chat"===u.trigger.channel?"Websites":"Accounts"),n=u.trigger.channel+("chat"===u.trigger.channel?"Website":"Account");switch(u.trigger.channel){case"chat":e=502;break;case"fax":e=902;break;case"mail":e=602;break;case"openchannel":e=802;break;case"sms":e=702;break;case"whatsapp":e=2102}m.isAdmin()?c[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u[s]=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+u.trigger.channel.toUpperCase()+u.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):c[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u[s]=e.rows||[]}).then(function(){return c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:e}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return c.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u[s],{id:e.resourceId})}),a=null;a=[],u.anyConditions.rows.forEach(function(e){if("account"===e.field){var n=_.find(u[s],{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u[s],{id:e.id});n.canSelect=!1,t.push(n)}}),u[s]=t})}else{var t=[],a=[];u.anyConditions.rows.forEach(function(e){if("account"===e.field){var n=_.find(u[s],{id:Number(e.value)});a.push(n)}});for(var i=0;i<u[s].length;i++)_.some(a,{id:u[s][i].id})&&(u[s][i].canSelect=!1,t.push(u[s][i]));u[s]=t}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+u.trigger.channel.toUpperCase()+u.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}())}function o(e){u.anyConditions=e||{count:0,rows:[]},s()}function r(){u.query.offset=(u.query.page-1)*u.query.limit,u.promise=c.trigger.getAnyConditions(u.query,o).$promise}function p(e,n){c.condition.delete({id:e.id}).$promise.then(function(){r(),n&&d.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETtrigger"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}u.currentUser=m.getCurrentUser(),u.trigger={},u.anyConditions={count:0,rows:[]},u.selectedAnyConditions=[],u.query={fields:"id,field,operator,value,createdAt,updatedAt",limit:10,page:1},u.fields={queue:"Queue",lastevent:"Call_Status",routeId:"OutboundRoute",agent:"Agent",account:"Account",interaction:"Interaction",message:"Message",mailSubstatus:"Mail_Substatus"},u.callStatuses={abandoned:"Abandon",timeout:"Timeout",complete:"Hangup",rejected:"Reject",called:"Ring",connect:"Answer",nosuchnumber:"NoSuchNumber",busy:"Busy",noanswer:"NoAnswer",congestion:"Congestion",agentreject:"AgentReject",amd:"AMD"},u.messageStatuses={in:"Incoming",out:"Outgoing",accept:"Accepted",reject:"Rejected"},u.onInit=function(e,n){u.trigger=e,u.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},u.query.TriggerAnyId=u.trigger.id,u.query.id=u.trigger.id,r()},u.success=o,u.getAnyConditions=r,u.createOrEditAnyCondition=function(e,n){i.show({controller:"CreateOrEditAnyConditionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/edit/anyconditions/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{trigger:u.trigger,anyCondition:n,anyConditions:u.anyConditions.rows,license:null,setting:null,crudPermissions:u.crudPermissions}}).then(function(e){e&&(u.anyConditions={count:e.length,rows:e},s())})},u.exportSelectedAnyConditions=function(){var e=angular.copy(u.selectedAnyConditions);return u.selectedAnyConditions=[],e},u.deleteConfirm=function(e,n){var t=i.confirm().title(a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETE_TITLE")).ariaLabel("Delete condition").targetEvent(n).ok("OK").cancel(a.instant("TOOLS.CANCEL"));i.show(t).then(function(){p(e,!0)})},u.deleteAnyCondition=p,u.deleteSelectedAnyConditions=function(e){var n=i.confirm().title(a.instant("TOOLS.NOTIFICATIONS.CONDITIONS_DELETE_TITLE")).content(a.instant("TOOLS.NOTIFICATIONS.CONDITIONS_DELETE_MESSAGE",{total:u.selectedAnyConditions.length})).ariaLabel("Delete conditions").targetEvent(e).ok("OK").cancel(a.instant("TOOLS.CANCEL"));i.show(n).then(function(){u.selectedAnyConditions.forEach(function(e){p(e)}),u.selectedAnyConditions=[],d.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITIONS_DELETED_SUCCESS_TITLE")})})}}e.$inject=["$scope","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.tools").controller("TriggerAnyConditionsController",e)}(),function(){"use strict";function e(e,t,l,a,i,n,s,o,d,c,r,m,u){var p=this;function g(){switch(p.anyCondition.field){case"queue":p.queues||(o=[{id:401,type:"inbound"},{id:1501,type:"outbound"}],r=null,c.isAdmin()?d.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){p.queues=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VOICEQUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){r=e.rows||[]}).then(function(){for(var e=[],n=0;n<o.length;n++)e.push(d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:o[n].id}).$promise);return l.all(e)}).then(function(e){for(var n=_.map(e,function(e){return e&&e.rows?e.rows[0]:null}),t=[],a=0;a<o.length;a++){var i=_.find(n,["sectionId",o[a].id]);if(i)if(i.autoAssociation){var s=[];r.forEach(function(e){e.type===o[a].type&&s.push(e)}),t.push({rows:s,count:s.length})}else t.push(d.userProfileResource.get({sectionId:i.id}).$promise.then(function(e){return{count:e.count,rows:_.map(e.rows,function(e){return e.id=e.resourceId,delete e.resourceId,e})}}))}return l.all(t)}).then(function(e){var t=[],a=[];p.anyConditions.forEach(function(e){if("queue"===e.field){var n=_.find(r,{name:e.value});a.push(n)}});for(var n=0;n<e.length;n++)(e[n].rows||[]).forEach(function(e){t.push(e)});_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(r,{id:e.id});n.canSelect=!1,t.push(n)}}),p.queues=t}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"routeId":p.outboundRoutes||(c.isAdmin()?d.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){p.outboundRoutes=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){p.outboundRoutes=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:403}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(p.outboundRoutes,{id:e.resourceId})}),a=null;a=[],p.anyConditions.forEach(function(e){if("routeId"===e.field){var n=_.find(p.outboundRoutes,{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(p.outboundRoutes,{id:e.id});n.canSelect=!1,t.push(n)}}),p.outboundRoutes=t})}else{var t=[],a=[];p.anyConditions.forEach(function(e){if("routeId"===e.field){var n=_.find(p.outboundRoutes,{id:Number(e.value)});a.push(n)}});for(var i=0;i<p.outboundRoutes.length;i++)_.some(a,{id:p.outboundRoutes[i].id})&&(p.outboundRoutes[i].canSelect=!1,t.push(p.outboundRoutes[i]));p.outboundRoutes=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"agent":p.agents||(c.isAdmin()?d.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){p.agents=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){p.agents=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(p.agents,{id:e.resourceId})}),a=null;a=[],p.anyConditions.forEach(function(e){if("agent"===e.field){var n=_.find(p.agents,{name:e.value});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(p.agents,{id:e.id});n.canSelect=!1,t.push(n)}}),p.agents=t})}else{var t=[],a=[];p.anyConditions.forEach(function(e){if("agent"===e.field){var n=_.find(p.agents,{name:e.value});a.push(n)}});for(var i=0;i<p.agents.length;i++)_.some(a,{id:p.agents[i].id})&&(p.agents[i].canSelect=!1,t.push(p.agents[i]));p.agents=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"account":!function(){var e,n=p.trigger.channel+("chat"===p.trigger.channel?"Website":"Account");switch(p.trigger.channel){case"chat":e=502;break;case"fax":e=902;break;case"mail":e=602;break;case"openchannel":e=802;break;case"sms":e=702;break;case"whatsapp":e=2102}c.isAdmin()?d[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.accounts=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+p.trigger.channel.toUpperCase()+p.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.accounts=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:e}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(p.accounts,{id:e.resourceId})}),a=null;a=[],p.anyConditions.forEach(function(e){if("account"===e.field){var n=_.find(p.accounts,{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(p.accounts,{id:e.id});n.canSelect=!1,t.push(n)}}),p.accounts=t})}else{var t=[],a=[];p.anyConditions.forEach(function(e){if("account"===e.field){var n=_.find(p.accounts,{id:Number(e.value)});a.push(n)}});for(var i=0;i<p.accounts.length;i++)_.some(a,{id:p.accounts[i].id})&&(p.accounts[i].canSelect=!1,t.push(p.accounts[i]));p.accounts=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+p.trigger.channel.toUpperCase()+p.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}();break;case"mailSubstatus":d.mailSubstatus.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){p.mailSubstatuses=e.rows||[]}).catch(function(){i.error({title:a.instant("MAIL.SUBSTATUSES"),msg:a.instant("MAIL.NOTIFICATIONS.SUBSTATUSES_GET_ERROR")})})}var o,r}function v(e){t.hide(e)}p.currentUser=c.getCurrentUser(),p.anyCondition=angular.copy(s),p.anyConditions=angular.copy(n),p.setting=m,p.license=r,p.crudPermissions=u,p.hasModulePermissions={},p.newAnyCondition=!1,p.errors=[],p.trigger=angular.copy(o),p.anyCondition?g():(p.anyCondition={operator:"equals"},p.newAnyCondition=!0),p.anyCondition.TriggerAnyId=e.params.id||void 0,p.callStatuses=[{name:"Abandon",value:"abandoned"},{name:"Timeout",value:"timeout"},{name:"Hangup",value:"complete"},{name:"Reject",value:"rejected"},{name:"Ring",value:"called"},{name:"Answer",value:"connect"},{name:"NoSuchNumber",value:"nosuchnumber"},{name:"Busy",value:"busy"},{name:"NoAnswer",value:"noanswer"},{name:"Congestion",value:"congestion"},{name:"AgentReject",value:"agentreject"},{name:"AMD",value:"amd"}],p.onFieldSelection=function(){p.anyCondition.value=void 0,g()},p.addNewAnyCondition=function(){p.errors=[],d.trigger.addAnyCondition({id:e.params.id},p.anyCondition).$promise.then(function(e){p.anyConditions.unshift(e.toJSON()),i.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_CREATED_SUCCESS_TITLE")}),v(p.anyConditions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.save"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.condition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.saveAnyCondition=function(){p.errors=[],d.condition.update({id:p.anyCondition.id},p.anyCondition).$promise.then(function(){p.anyConditions=_.map(p.anyConditions,function(e){return e.id===p.anyCondition.id?p.anyCondition:e}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_SAVED_SUCCESS_TITLE")}),v(p.anyConditions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.update"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.condition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.deleteAnyCondition=function(e){p.errors=[];var n=t.confirm({skipHide:!0}).title(a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETE_TITLE")).ariaLabel("Delete condition").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){d.condition.delete({id:p.anyCondition.id}).$promise.then(function(){p.anyConditions=_.filter(p.anyConditions,function(e){return e.id!==p.allCondition.id}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETED_SUCCESS_TITLE")}),v(p.anyConditions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.condition.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},p.closeDialog=v}e.$inject=["$state","$mdDialog","$q","$translate","toasty","anyConditions","anyCondition","trigger","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditAnyConditionDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){var d=this;d.currentUser=o.getCurrentUser(),d.license=t,d.setting=a,d.trigger=r||e.params.trigger||{},d.selectedTab=e.params.tab||0,e.params.crudPermissions?d.crudPermissions=e.params.crudPermissions:(d.userProfileSection=l&&1==l.count?l.rows[0]:null,d.crudPermissions=o.parseCrudPermissions(d.userProfileSection?d.userProfileSection.crudPermissions:null)),d.gotoTriggers=function(){e.go("app.tools.triggers",{},{reload:"app.tools.triggers"})},d.saveTrigger=function(){i.trigger.update({id:d.trigger.id},d.trigger).$promise.then(function(){s.success({title:n.instant("TOOLS.NOTIFICATIONS.TRIGGER_SAVED_SUCCESS_TITLE")})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$translate","license","setting","api","toasty","Auth","trigger","userProfileSection"],angular.module("app.tools").controller("TriggerController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){n.go("app.tools.triggers.edit",{id:e.id,trigger:e,crudPermissions:g.crudPermissions})}function h(e){g.triggers=e||{count:0,rows:[]}}function f(){g.query.offset=(g.query.page-1)*g.query.limit,m.isAdmin()?g.promise=d.trigger.get(g.query,h).$promise:(g.query.id=g.userProfile.id,g.query.section="Triggers",g.promise=d.userProfile.getResources(g.query,h).$promise)}function b(e,n){d.trigger.delete({id:e.id}).$promise.then(function(){f(),n&&c.success({title:s.instant("TOOLS.NOTIFICATIONS.TRIGGER_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEtrigger"}];for(var n=0;n<e.data.errors.length;n++)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEtrigger",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}g.license=u,g.setting=p,g.currentUser=m.getCurrentUser(),g.triggers=o||{count:0,rows:[]},g.userProfile=r,g.userProfileSection=l&&1==l.count?l.rows[0]:null,g.crudPermissions=m.parseCrudPermissions(g.userProfileSection?g.userProfileSection.crudPermissions:null),g.selectedTriggers=[],g.query={fields:"id,name,channel,status,description,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},g.goToEditState=v,g.createOrEditTrigger=function(e,n){if(g.crudPermissions.readOnly||g.crudPermissions.canDelete&&!g.crudPermissions.canEdit)return void v(n);a.show({controller:"CreateOrEditTriggerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{trigger:n,triggers:g.triggers.rows,license:g.license,setting:g.setting,crudPermissions:g.crudPermissions}}).then(function(e){e&&(g.triggers={count:e.length,rows:e})})},g.success=h,g.getTriggers=f,g.deleteconfirm=function(e,n){var t=a.confirm().title(s.instant("TOOLS.NOTIFICATIONS.TRIGGER_DELETE_TITLE")).content(s.instant("TOOLS.NOTIFICATIONS.TRIGGER_DELETE_MESSAGE",{name:e.name})).ariaLabel("Delete trigger").targetEvent(n).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(t).then(function(){b(e,!0)})},g.exportSelectedTriggers=function(){var e=angular.copy(g.selectedTriggers);return g.selectedTriggers=[],e},g.deleteSelectedTriggers=function(e){var n=a.confirm().title(s.instant("TOOLS.NOTIFICATIONS.TRIGGERS_DELETE_TITLE")).content(s.instant("TOOLS.NOTIFICATIONS.TRIGGERS_DELETE_MESSAGE",{total:g.selectedTriggers.length})).ariaLabel("Delete triggers").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(n).then(function(){g.selectedTriggers.forEach(function(e){b(e)}),g.selectedTriggers=[],c.success({title:s.instant("TOOLS.NOTIFICATIONS.TRIGGERS_DELETED_SUCCESS_TITLE")})})},g.deselectTriggers=function(){g.selectedTriggers=[]},g.selectAllTriggers=function(){g.selectedTriggers=g.triggers.rows};var A=!0,E=1;e.$watch("vm.query.filter",function(e,n){A?i(function(){A=!1}):(n||(E=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=E),f())})}e.$inject=["$scope","$state","$mdDialog","$document","$timeout","$translate","triggers","userProfile","userProfileSection","api","toasty","Auth","license","setting"],angular.module("app.tools").controller("TriggersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_TRUNK",g.trunk=angular.copy(l),g.trunks=r,g.newTrunk=!1,g.trunk||(g.trunk={active:!0,type:"friend",dtmfmode:"rfc2833",qualify:"yes",t38pt_udptl:"no"},g.title="TOOLS.NEW_TRUNK",g.newTrunk=!0),g.addNewTrunk=function(){g.errors=[],d.trunk.save(g.trunk).$promise.then(function(e){g.trunks.unshift(e.toJSON()),o.success({title:"Trunk properly created",msg:g.trunk.name?g.trunk.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.trunk.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trunk.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveTrunk=function(){g.errors=[],d.trunk.update({id:g.trunk.id},g.trunk).$promise.then(function(e){var n=_.find(g.trunks,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Trunk properly saved!",msg:g.trunk.name?g.trunk.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.trunk.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trunk.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteTrunk=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The trunk will be deleted.").ariaLabel("Delete Trunk").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.trunk.delete({id:g.trunk.id}).$promise.then(function(){_.remove(g.trunks,{id:g.trunk.id}),o.success({title:"Trunk properly deleted!",msg:(g.trunk.name||"trunk")+" has been deleted!"}),v(g.trunk)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.trunk.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trunk.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","trunks","trunk","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditTrunkDialogController",e)}(),function(){"use strict";function e(n,t,a,e,i,s,o){var r=this;function l(e){n.hide(e)}r.newTrunk=!0,r.trunk=angular.copy(i),r.trunks=s,r.title=o.instant("TOOLS.CLONE_TRUNK"),i&&i.name&&(r.title+=": "+i.name),r.cloneTrunk=function(){return e.trunk.clone({id:i.id},r.trunk).$promise.then(function(e){r.trunks.unshift(e.toJSON()),a.success({title:"Trunk properly cloned",msg:r.trunk.name?r.trunk.name+" has been cloned!":""}),t.go("app.tools.trunks.edit",{id:e.id}),l(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.trunk.clone"}];for(var n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trunk.clone",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$mdDialog","$state","toasty","api","trunk","trunks","$translate"],angular.module("app.tools").controller("TrunkcloneController",e)}(),function(){"use strict";function e(t,e,a,i,s,n,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=n,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.trunk=c||t.params.trunk||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=t.params.tab||0,u.gotogoto=function(e,n){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:411}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.voice.realtime.trunks",{}):l.info({title:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.voice.realtime.trunks",{})}},u.clonedialog=function(e,n){a.show({controller:"TrunkcloneController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/trunks/edit/clone/clone.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{trunk:e,trunks:u.trunks?u.trunks.rows:[],crudPermissions:u.crudPermissions}})},u.alert=l.info,u.gotoTrunks=function(){t.go("app.tools.trunks",{},{reload:"app.tools.trunks"})},u.saveTrunk=function(){r.trunk.update({id:u.trunk.id},u.trunk).$promise.then(function(){l.success({title:"Trunk updated!",msg:u.trunk.name?u.trunk.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunk",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CONTEXTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:405}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?void 0:r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.contexts,{id:e.resourceId})}),t=null;if(u.trunk&&(t=_.find(u.contexts,{name:u.trunk.context})),t&&!_.some(n,["id",t.id])){var a=_.find(u.contexts,{id:t.id});a.canSelect=!1,n.push(a)}u.contexts=n}):r.voiceContext.get({fields:"id,name",sort:"name",defaultEntry:1}).$promise.then(function(e){u.contexts=e.rows||[]})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","trunk","userProfileSection"],angular.module("app.tools").controller("TrunkController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.trunks=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="trunks",f.listOrder="",f.listOrderAsc=null,f.selectedTrunks=[],f.query={fields:"createdAt,updatedAt,id,name,active,host,secret,defaultuser,context,callerid,type,dtmfmode,nat,qualify,allow,insecure,call_limit,registry,description,directmedia,callcounter,fromdomain,fromuser,outboundproxy,usereqphone,trustrpid,sendrpid,encryption,port,transport,t38pt_udptl,videosupport,otherFields",sort:"-updatedAt",limit:10,page:1},f.arraytype=_.keyBy([{option:"Friend",value:"'friend'"},{option:"User",value:"'user'"},{option:"Peer",value:"'peer'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraydtmfmode=_.keyBy([{option:"rfc2833",value:"'rfc2833'"},{option:"info",value:"'info'"},{option:"shortinfo",value:"'shortinfo'"},{option:"inband",value:"'inband'"},{option:"auto",value:"'auto'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraynat=_.keyBy([{option:"force_rport",value:"'force_rport'"},{option:"comedia",value:"'comedia'"},{option:"yes",value:"'yes'"},{option:"no",value:"'no'"},{option:"never",value:"'never'"},{option:"route",value:"'route'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayqualify=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayallow=_.keyBy([{option:"ulaw",value:"'ulaw'"},{option:"alaw",value:"'alaw'"},{option:"gsm",value:"'gsm'"},{option:"g723",value:"'g723'"},{option:"g726",value:"'g726'"},{option:"g722",value:"'g722'"},{option:"g729",value:"'g729'"},{option:"ilbc",value:"'ilbc'"},{option:"opus",value:"'opus'"},{option:"h264",value:"'h264'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayinsecure=_.keyBy([{option:"port",value:"'port'"},{option:"invite",value:"'invite'"},{option:"very",value:"'very'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraydirectmedia=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"},{option:"nonat",value:"'nonat'"},{option:"update",value:"'update'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraycallcounter=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayusereqphone=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraytrustrpid=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysendrpid=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"},{option:"pai",value:"'pai'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayencryption=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraytransport=_.keyBy([{option:"udp",value:"'udp'"},{option:"tcp",value:"'tcp'"},{option:"ws",value:"'ws'"},{option:"wss",value:"'wss'"},{option:"tls",value:"'tls'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayvideosupport=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Always",value:"'always'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.tools.trunks.edit",{id:e.id,trunk:e,crudPermissions:f.crudPermissions})},f.clonedialog=function(e,n){i.show({controller:"TrunkcloneController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/trunks/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{trunk:e,trunks:f.trunks?f.trunks.rows:[],crudPermissions:f.crudPermissions}})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:411}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.voice.realtime.trunks",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.voice.realtime.trunks",{})}},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("trunk")+"?").htmlContent("<b>"+(e.name||"trunk")+"</b> will be deleted.").ariaLabel("delete trunk").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getTrunks=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.trunk.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Trunks",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditTrunk=function(e,n){i.show({controller:"CreateOrEditTrunkDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/trunks/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{trunk:n,trunks:f.trunks.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteTrunk=y,f.exportSelectedTrunks=function(){var e=angular.copy(f.selectedTrunks);return f.selectedTrunks=[],e},f.deleteSelectedTrunks=function(e){var n=i.confirm().title("Are you sure want to delete the selected trunks?").htmlContent("<b>"+f.selectedTrunks.length+" selected</b> will be deleted.").ariaLabel("delete Trunks").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedTrunks.forEach(function(e){y(e)}),f.selectedTrunks=[]})},f.deselectTrunks=function(){f.selectedTrunks=[]},f.selectAllTrunks=function(){f.selectedTrunks=f.trunks.rows};var b=!0,A=1;function E(e){f.trunks=e||{count:0,rows:[]}}function y(e){m.trunk.delete({id:e.id}).$promise.then(function(){_.remove(f.trunks.rows,{id:e.id}),f.trunks.count-=1,f.trunks.rows.length||f.getTrunks(),p.success({title:_.startCase("Trunk")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEtrunk"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEtrunk",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getTrunks())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","trunks","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("TrunksController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_VARIABLE",g.variable=angular.copy(l),g.variables=r,g.newVariable=!1,g.variable||(g.variable={},g.title="TOOLS.NEW_VARIABLE",g.newVariable=!0),g.addNewVariable=function(){g.errors=[],d.variable.save(g.variable).$promise.then(function(e){g.variables.unshift(e.toJSON()),o.success({title:"Variable properly created",msg:g.variable.name?g.variable.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.variable.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.variable.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveVariable=function(){g.errors=[],d.variable.update({id:g.variable.id},g.variable).$promise.then(function(e){var n=_.find(g.variables,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Variable properly saved!",msg:g.variable.name?g.variable.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.variable.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.variable.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteVariable=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The variable will be deleted.").ariaLabel("Delete Variable").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.variable.delete({id:g.variable.id}).$promise.then(function(){_.remove(g.variables,{id:g.variable.id}),o.success({title:"Variable properly deleted!",msg:(g.variable.name||"variable")+" has been deleted!"}),v(g.variable)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.variable.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.variable.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","variables","variable","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditVariableDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.variables=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="variables",f.listOrder="",f.listOrderAsc=null,f.selectedVariables=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditVariableDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/variables/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{variable:e,variables:f.variables.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("variable")+"?").htmlContent("<b>"+(e.name||"variable")+"</b> will be deleted.").ariaLabel("delete variable").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getVariables=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.variable.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Variables",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditVariable=function(e,n){i.show({controller:"CreateOrEditVariableDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/variables/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{variable:n,variables:f.variables.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteVariable=y,f.exportSelectedVariables=function(){var e=angular.copy(f.selectedVariables);return f.selectedVariables=[],e},f.deleteSelectedVariables=function(e){var n=i.confirm().title("Are you sure want to delete the selected variables?").htmlContent("<b>"+f.selectedVariables.length+" selected</b> will be deleted.").ariaLabel("delete Variables").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedVariables.forEach(function(e){y(e)}),f.selectedVariables=[]})},f.deselectVariables=function(){f.selectedVariables=[]},f.selectAllVariables=function(){f.selectedVariables=f.variables.rows};var b=!0,A=1;function E(e){f.variables=e||{count:0,rows:[]}}function y(e){m.variable.delete({id:e.id}).$promise.then(function(){_.remove(f.variables.rows,{id:e.id}),f.variables.count-=1,f.variables.rows.length||f.getVariables(),p.success({title:_.startCase("Variable")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvariable"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvariable",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getVariables())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","variables","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("VariablesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VIDEO.EDIT_SCREENRECORDING",g.screenRecording=angular.copy(l),g.screenRecordings=r,g.newscreenRecording=!1,g.screenRecording||(g.screenRecording={},g.title="VIDEO.NEW_SCREENRECORDING",g.newscreenRecording=!0),g.addNewscreenRecording=function(){g.errors=[],d.screenRecording.save(g.screenRecording).$promise.then(function(e){g.screenRecordings.unshift(e.toJSON()),o.success({title:"screenRecording properly created",msg:g.screenRecording.name?g.screenRecording.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.screenRecording.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.screenRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.savescreenRecording=function(){g.errors=[],d.screenRecording.update({id:g.screenRecording.id},g.screenRecording).$promise.then(function(e){var n=_.find(g.screenRecordings,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"screenRecording properly saved!",msg:g.screenRecording.name?g.screenRecording.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.screenRecording.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.screenRecording.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deletescreenRecording=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The screenRecording will be deleted.").ariaLabel("Delete screenRecording").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.screenRecording.delete({id:g.screenRecording.id}).$promise.then(function(){_.remove(g.screenRecordings,{id:g.screenRecording.id}),o.success({title:"screenRecording properly deleted!",msg:(g.screenRecording.name||"screenRecording")+" has been deleted!"}),v(g.screenRecording)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.screenRecording.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.screenRecording.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,d.user.get({fields:"id,name,fullname",sort:"name",nolimit:"true"}).$promise.then(function(e){g.users=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_USERS",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","screenRecordings","screenRecording","api","Auth","license","setting","crudPermissions"],angular.module("app.video").controller("CreateOrEditscreenRecordingDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c,m=this;if(m.loading=!1,m.recording=Object.assign({},i),m.route="screenRecording",m.element=l,m.actionOptions=Object.assign({},s),m.path=r,m.label=o,m.app="video",m.model="screenRecording",console.log("TCL: vm.path",m.path),console.log("TCL: vm.recording[vm.path]",m.recording[m.path]),m.filename=-1<m.recording[m.path].indexOf("/")?m.recording[m.path].substring(m.recording[m.path].lastIndexOf("/")+1):-1<m.recording[m.path].indexOf("\\")?m.recording[m.path].substring(m.recording[m.path].lastIndexOf("\\")+1):m.recording[m.path],m.format=!1,_.isNil(m.recording.format)&&(m.recording.format=m.filename.slice(m.filename.lastIndexOf("."))),(".wav"===m.recording.format&&"audio"===m.element||".mp4"===m.recording.format&&"video"===m.element)&&(m.format=!0),m.found=!0,m.format&&(c=d.defer(),a.screenRecording.download({id:m.recording.id,path:String(m.path)}).$promise.then(function(e){m.format=!0,m.found=!0,c.resolve()}).catch(function(e){console.log("err"),m.format=!1,m.found=!1,c.resolve()}),c.promise),!_.isNil(s.properties)&&s.properties){if(m.properties=Object.assign({},i),Object.keys(i).forEach(function(e){String(e[0].toUpperCase())===String(e[0])&&delete m.properties[e]}),m.propertiesDefault={},!_.isNil(s.propertiesList)&&0<s.propertiesList.length){m.propertiesDefault=Object.assign({},i);var u=s.propertiesList,p=Object.keys(i),g=!0;p.forEach(function(n){g=!0,u.forEach(function(e){String(n)===String(e)&&(g=!1)}),g&&delete m.propertiesDefault[n]}),m.properties=m.propertiesDefault}if(!_.isNil(s.extraData)&&0<s.extraData.length){m.propertiesExtra={};for(var v=s.extraData,h=0;h<v.length;h++)for(var f=v[h].values,b=v[h].model,A=0;A<f.length;A++)m.propertiesExtra[f[A].text]=i[b][f[A].key];m.properties=Object.assign({},m.propertiesDefault,m.propertiesExtra)}}m.closeDialog=function(){n.hide()}}e.$inject=["$scope","$mdDialog","toasty","api","recording","actionOptions","label","varPath","elementTag","$q"],angular.module("app.video").controller("screenRecordingplayController",e)}(),function(){"use strict";function e(e,n,t,a,r,l,i,o,s,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.screenRecordings=s||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="screenRecordings",f.listOrder="",f.listOrderAsc=null,f.selectedScreenRecordings=[],f.query={fields:"createdAt,updatedAt,id,interactionid,channel,format,value,rating,UserId,duration,startedAt,closedAt",createdAt:"@msUtils.firstLastDayMonth()",includeAll:"true",sort:"-updatedAt",limit:10,page:1},f.query.createdAt=u.firstLastDayMonth(),f.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE_RANGE"}],f.playrecording=function(e,n,t,a,i){var s={route:"screenRecording",name:"screenRecordings",model:"screenRecording",singular:"screenRecording"},a=String(a),o=String(t);console.log("TCL: path",String(t)),r.show({controller:"screenRecordingplayController",controllerAs:"vm",templateUrl:"app/main/apps/video/views/screenRecordings/partialViews/play.html",parent:angular.element(l.body),targetEvent:n,clickOutsideToClose:!0,locals:{recording:e,recordings:f.screenRecordings.rows,license:f.license,setting:null,item:s,actionOptions:{upperTitle:!1,lowerTitle:!0,properties:!0,propertiesIcon:"icon-video",propertiesList:["format","interactionid","duration","startedAt","closedAt","createdAt"],extraData:[{model:"User",values:[{key:"name",text:"agentname"}]}]},label:a,varPath:o,elementTag:String(i)}})},f.downloadfile2=function(e,n){var t=!1,a=_.isNil(e.format)?e.value.substring(e.value.lastIndexOf(".")):e.format;t=".mp4"===a;var s=-1<e.value.lastIndexOf("/")?e.value.substring(e.value.lastIndexOf("/")+1):-1<e.value.lastIndexOf("\\")?e.value.substring(e.value.lastIndexOf("\\")+1):e.value;return m.screenRecording.download({id:e.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else"404"===String(e.status)&&!1===t?p.info({title:o.instant("VIDEO.CANT_DOWNLOAD_THIS_FILE"),msg:o.instant("VIDEO.WRONG_EXTENSION")}):"404"===String(e.status)?p.info({title:o.instant("VIDEO.CANT_DOWNLOAD_THIS_FILE"),msg:o.instant("VIDEO.FILE_NOT_FOUND")}):p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.screenRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.deleteconfirm=function(e,n){var t=r.confirm().title("Are you sure want to delete the "+_.startCase("screenRecording")+"?").htmlContent("<b>"+(e.name||"screenRecording")+"</b> will be deleted.").ariaLabel("delete screenRecording").targetEvent(n).ok("OK").cancel("CANCEL");r.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getScreenRecordings=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.screenRecording.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ScreenRecordings",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditscreenRecording=function(e,n){r.show({controller:"CreateOrEditscreenRecordingDialogController",controllerAs:"vm",templateUrl:"app/main/apps/video/views/screenRecordings/create/dialog.html",parent:angular.element(l.body),targetEvent:e,clickOutsideToClose:!0,locals:{screenRecording:n,screenRecordings:f.screenRecordings.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deletescreenRecording=y,f.exportSelectedScreenRecordings=function(){var e=angular.copy(f.selectedScreenRecordings);return f.selectedScreenRecordings=[],e},f.deleteSelectedScreenRecordings=function(e){var n=r.confirm().title("Are you sure want to delete the selected screenRecordings?").htmlContent("<b>"+f.selectedScreenRecordings.length+" selected</b> will be deleted.").ariaLabel("delete screenRecordings").targetEvent(e).ok("OK").cancel("CANCEL");r.show(n).then(function(){f.selectedScreenRecordings.forEach(function(e){y(e)}),f.selectedScreenRecordings=[]})},f.deselectScreenRecordings=function(){f.selectedScreenRecordings=[]},f.selectAllScreenRecordings=function(){f.selectedScreenRecordings=f.screenRecordings.rows},f.convertDuration=function(e){var n=Math.floor(e/1e3%60),t=Math.floor(e/6e4%60),a=Math.floor(e/36e5%24),i=a<10?"0"+String(a):String(a),s=t<10?"0"+String(t):String(t),o=n<10?"0"+String(n):String(n);return i+":"+s+":"+o},m.user.get({fields:"id,name,fullname",sort:"name",nolimit:"true"}).$promise.then(function(e){f.users=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_USERS",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.screenRecordings=e||{count:0,rows:[]}}function y(e){m.screenRecording.delete({id:e.id}).$promise.then(function(){_.remove(f.screenRecordings.rows,{id:e.id}),f.screenRecordings.count-=1,f.screenRecordings.rows.length||f.getScreenRecordings(),p.success({title:_.startCase("screenRecording")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEscreenRecording"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEscreenRecording",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?i(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getScreenRecordings())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","screenRecordings","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.video").controller("ScreenRecordingsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l){var d=this;function c(e){return _.isEmpty(e)||isNaN(e)?e:parseInt(e,10)}function m(e){switch(e){case"sound":if(!d.application.appdata)return;return[{key:"save_name",value:d.application.appdata.split("/").pop()}];case"squareProject":if(!d.application.project)return;return[{key:"name",value:d.application.project.split(",")[1]}];case"tag":if(!d.application.tag)return;return[{key:"name",value:d.application.tag}];case"trunk":if(!d.application.trunk)return;return[{key:"name",value:d.application.trunk}];case"user":if(!d.application.user&&!d.application.users)return;return d.application.user?[{key:"name",value:d.application.user.split("/")[1]}]:_.map(d.application.users,function(e){return{key:"name",value:e.split("/")[1]}});case"variable":if(!d.application.name)return;return[{key:"name",value:d.application.name}];case"voiceContext":if(!d.application.context)return;return[{key:"name",value:d.application.context}];case"voiceMail":if(!d.application.voiceMail)return;return[{key:"mailbox",value:d.application.voiceMail.split("@")[0]}];case"voiceQueue":if(!d.application.queue)return;return[{key:"name",value:d.application.queue}]}}function u(){o.getResourcesByRole(d.currentUser,"trunk",{fields:"id,name",sort:"name",nolimit:"true"},m("trunk")).then(function(e){d.trunks=e}).catch(function(){s.error({title:i.instant("TOOLS.TRUNKS"),msg:i.instant("VOICE.NOTIFICATIONS.TRUNKS_GET_ERROR")})})}function p(){o.getResourcesByRole(d.currentUser,"sound",{fields:"id,name,save_name",sort:"name",nolimit:"true"},m("sound")).then(function(e){d.sounds=e}).catch(function(){s.error({title:i.instant("TOOLS.SOUNDS"),msg:i.instant("VOICE.NOTIFICATIONS.SOUNDS_GET_ERROR")})})}function g(){var e={fields:"id,name,role",sort:"name",nolimit:"true"},n=m("user"),t=[o.getResourcesByRole(d.currentUser,"user",_.merge(e,{role:"agent"}),n,"Agents"),o.getResourcesByRole(d.currentUser,"user",_.merge(e,{role:"telephone"}),n,"Telephones")];a.all(t).then(function(e){var n=_(e).flatMap(function(e){return e.rows}).orderBy([function(e){return e.name.toLowerCase()}]).value();d.users={rows:n,count:n.length}}).catch(function(){s.error({title:i.instant("STAFF.USERS"),msg:i.instant("VOICE.NOTIFICATIONS.USERS_GET_ERROR")})})}function v(){(d.application.appdata||"custom"===d.application.appType)&&e.hide(d.application),e.hide()}d.currentUser=r.getCurrentUser(),d.application=angular.copy(n),d.crudPermissions=l,d.errors=[],d.init=function(){d.application.appdata&&function(){var e=[];switch(d.application.appType){case"agi":d.application.project=d.application.appdata;break;case"dial":e=d.application.appdata.split(","),d.application.tech=c(e[0]),d.application.timeout=c(e[1]),d.application.options=c(e[2]),d.application.url=c(e[3]);break;case"externalDial":e=d.application.appdata.split(","),d.application.trunk=e[0].split("/")[1],d.application.phone=e[0].split("/")[2],d.application.timeout=c(e[1]),d.application.options=c(e[2]),d.application.url=c(e[3]);break;case"goTo":e=d.application.appdata.split(","),d.application.context=c(e[0]),d.application.extension=c(e[1]),d.application.priority=c(e[2]);break;case"internalDial":e=d.application.appdata.split(","),d.application.user=c(e[0]),d.application.timeout=c(e[1]),d.application.options=c(e[2]),d.application.url=c(e[3]);break;case"outboundDial":e=d.application.appdata.split(","),d.application.trunk=e[0].split("/")[1],d.application.phone=e[0].split("/")[2],d.application.timeout=c(e[1]),d.application.options=c(e[2]),d.application.url=c(e[3]),d.application.prefix=d.application.phone?d.application.phone.split("$")[0]:void 0,d.application.callerId=d.application.callerID?"CALLERID(all)="+d.application.callerID:void 0;break;case"playback":e=d.application.appdata.split(","),d.application.appdata=c(e[0]),d.application.options=c(e[1]);break;case"queue":e=d.application.appdata.split(","),d.application.queue=c(e[0]),d.application.options=c(e[1]),d.application.URL=c(e[2]),d.application.sound=c(e[3]),d.application.timeout=c(e[4]),d.application.agi=c(e[5]),d.application.macro=c(e[6]),d.application.gosub=c(e[7]),d.application.rule=c(e[8]),d.application.position=c(e[9]);break;case"ringGroup":e=d.application.appdata.split(","),d.application.users=e[0].split("&"),d.application.timeout=c(e[1]),d.application.options=c(e[2]),d.application.url=c(e[3]);break;case"set":e=d.application.appdata.split("="),d.application.name=e[0],d.application.value=e[1];break;case"voicemail":e=d.application.appdata.split(","),d.application.voiceMail=c(e[0]),d.application.options=c(e[1])}}();switch(d.application.appType){case"agi":o.getResourcesByRole(d.currentUser,"squareProject",{fields:"id,name",sort:"name",nolimit:"true"},m("squareProject")).then(function(e){d.projects=e}).catch(function(){s.error({title:i.instant("CALLYSQUARE.CALLYSQUARE")+" "+i.instant("CALLYSQUARE.PROJECTS"),msg:i.instant("VOICE.NOTIFICATIONS.CALLYSQUARE_PROJECTS_GET_ERROR")})});break;case"externalDial":u();break;case"goTo":o.getResourcesByRole(d.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:"true"},m("voiceContext")).then(function(e){d.contexts=e}).catch(function(){s.error({title:i.instant("VOICE.CONTEXTS"),msg:i.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});break;case"internalDial":g();break;case"outboundDial":o.getResourcesByRole(d.currentUser,"tag",{fields:"id,name",sort:"name",nolimit:"true"},m("tag")).then(function(e){d.tags=e}).catch(function(){s.error({title:i.instant("TOOLS.TAGS"),msg:i.instant("VOICE.NOTIFICATIONS.TAGS_GET_ERROR")})}),u();break;case"playback":p();break;case"queue":p(),o.getResourcesByRole(d.currentUser,"voiceQueue",{type:"inbound",fields:"id,name,type",sort:"name",nolimit:"true"},m("voiceQueue")).then(function(e){d.queues=e}).catch(function(){s.error({title:i.instant("VOICE.VOICEQUEUES"),msg:i.instant("VOICE.NOTIFICATIONS.QUEUES_GET_ERROR")})});break;case"ringGroup":g();break;case"set":o.getResourcesByRole(d.currentUser,"variable",{fields:"id,name",sort:"name",nolimit:"true"},m("variable")).then(function(e){d.variables=e}).catch(function(){s.error({title:i.instant("TOOLS.VARIABLES"),msg:i.instant("VOICE.NOTIFICATIONS.VARIABLES_GET_ERROR")})});break;case"voicemail":o.getResourcesByRole(d.currentUser,"voiceMail",{fields:"id,mailbox",sort:"mailbox",nolimit:"true"},m("voiceMail")).then(function(e){d.voiceMails=e}).catch(function(){s.error({title:i.instant("VOICE.VOICEMAILS"),msg:i.instant("VOICE.NOTIFICATIONS.VOICEMAILS_GET_ERROR")})})}},d.saveRoutingApp=function(){d.errors=[],function(){var e=[];switch(d.application.appType){case"agi":d.application.appdata=d.application.project;break;case"dial":e[0]=d.application.tech,e[1]=d.application.timeout,e[2]=d.application.options,e[3]=d.application.url,d.application.appdata=e.join(",");break;case"externalDial":e[0]=["SIP",d.application.trunk,d.application.phone].join("/"),e[1]=d.application.timeout,e[2]=d.application.options,e[3]=d.application.url,d.application.appdata=e.join(",");break;case"goTo":e[0]=d.application.context,e[1]=d.application.extension,e[2]=d.application.priority,d.application.appdata=e.join(",");break;case"internalDial":e[0]=d.application.user,e[1]=d.application.timeout,e[2]=d.application.options,e[3]=d.application.url,d.application.appdata=e.join(",");break;case"outboundDial":d.application.phone=t.cutdigits?(d.application.prefix||"")+"${EXTEN:"+t.cutdigits+"}":(d.application.prefix||"")+"${EXTEN}","none"===t.recordingFormat?d.application.options=d.application.options.replace("U(xcally-mixmonitor-context)",""):d.application.options.indexOf("U(xcally-mixmonitor-context)")<0&&(d.application.options+="U(xcally-mixmonitor-context)"),e[0]=["SIP",d.application.trunk,d.application.phone].join("/"),e[1]=d.application.timeout,e[2]=d.application.options,e[3]=d.application.url,d.application.appdata=e.join(",");break;case"playback":e[0]=d.application.appdata,e[1]=d.application.options,d.application.appdata=e.join(",");break;case"queue":e[0]=d.application.queue,e[1]=d.application.options,e[2]=d.application.URL,e[3]=d.application.sound,e[4]=d.application.timeout,e[5]=d.application.agi,e[6]=d.application.macro,e[7]=d.application.gosub,e[8]=d.application.rule,e[9]=d.application.position,d.application.appdata=e.join(",");break;case"ringGroup":e[0]=d.application.users.join("&"),e[1]=d.application.timeout,e[2]=d.application.options,e[3]=d.application.url,d.application.appdata=e.join(",");break;case"set":e[0]=d.application.name,e[1]=d.application.value,d.application.appdata=e.join("=");break;case"voicemail":e[0]=d.application.voiceMail,e[1]=d.application.options,d.application.appdata=e.join(",")}}(),v()},d.closeDialog=v}e.$inject=["$mdDialog","$q","$translate","toasty","application","route","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditRoutingAppDialogController",e)}(),function(){"use strict";function e(n,t,e,a,i,s,o,r,l){var d=this;function c(){var e=[{key:"name",value:d.interval.IntervalId}];s.getResourcesByRole(d.currentUser,"interval",{fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0},e).then(function(e){d.intervals=e}).catch(function(){i.error({title:t.instant("TOOLS.INTERVALS"),msg:t.instant("VOICE.NOTIFICATIONS.INTERVALS_GET_ERROR")})})}function m(e){n.hide(e)}d.currentUser=o.getCurrentUser(),d.interval=angular.copy(e),d.intervals=a||{rows:[],count:0},d.types=["always","custom","list"],d.crudPermissions=r,d.errors=[],d.daysOfWeek=l.getDaysOfWeek(),d.monthNumber=l.getMonthNumber(),d.monthName=l.getMonthName(),d.daysOfMonth=l.getDaysOfMonth(),d.initialize=function(){if("*,*,*,*"===d.interval.interval)return d.type=d.interval.IntervalId&&d.interval.application?"list":"always",void("list"===d.type&&c());d.type="custom";var e=d.interval.interval.split(","),n=e[0],t=e[1],a=e[2],i=e[3];if("*"!==n){var s,o=n.split("-")[0],r=n.split("-")[1];(s=new Date).setHours(Number(o.split(":")[0])),s.setMinutes(Number(o.split(":")[1])),d.timeRangeFrom=s,(s=new Date).setHours(Number(r.split(":")[0])),s.setMinutes(Number(r.split(":")[1])),d.timeRangeTo=s}"*"!==t&&(d.dayOfWeekFrom=t.split("-")[0],d.dayOfWeekTo=t.split("-")[1]);"*"!==a&&(d.monthDayFrom=a.split("-")[0],d.monthDayTo=a.split("-")[1]);"*"!==i&&(d.monthFrom=i.split("-")[0],d.monthTo=i.split("-")[1])},d.onTypeChange=function(){"list"===d.type&&0===d.intervals.count&&c()},d.saveInterval=function(){d.errors=[],d.interval.interval=function(){if(["always","list"].includes(d.type))return"*,*,*,*";var e=[];if("*"!==d.timeRangeFrom&&d.timeRangeFrom&&d.timeRangeTo){var n=(d.timeRangeFrom.getHours()<10?"0":"")+d.timeRangeFrom.getHours()+":"+(d.timeRangeFrom.getMinutes()<10?"0":"")+d.timeRangeFrom.getMinutes(),t=(d.timeRangeTo.getHours()<10?"0":"")+d.timeRangeTo.getHours()+":"+(d.timeRangeTo.getMinutes()<10?"0":"")+d.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return d.dayOfWeekFrom?d.dayOfWeekTo?e.push(d.dayOfWeekFrom+"-"+d.dayOfWeekTo):e.push(d.dayOfWeekFrom):e.push("*"),d.monthDayFrom?d.monthDayTo?e.push(d.monthDayFrom+"-"+d.monthDayTo):e.push(d.monthDayFrom):e.push("*"),d.monthFrom?d.monthTo?e.push(d.monthFrom+"-"+d.monthTo):e.push(d.monthFrom):e.push("*"),e.join()}(),"list"!==d.type&&(d.interval.IntervalId=null);m(d.interval)},d.closeDialog=m}e.$inject=["$mdDialog","$translate","interval","intervals","toasty","api","Auth","crudPermissions","IndexFactory"],angular.module("app.voice").controller("EditRoutingIntervalDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.chanSpies=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="chanSpies",f.listOrder="",f.listOrderAsc=null,f.selectedChanSpies=[],f.query={fields:"createdAt,updatedAt,id,name,prefix,options,auth,password,record,recordingFormat,description",sort:"-updatedAt",limit:10,page:1},f.arrayoptions=_.keyBy([{option:"b: Only spy on channels involved in a bridged call.",value:"'b'"},{option:"B: Instead of whispering on a single channel barge in on both channels involved in the call.",value:"'B'"},{option:"E: Exit when the spied-on channel hangs up.",value:"'E'"},{option:"o: Only listen to audio coming from this channel.",value:"'o'"},{option:"q: Don't play a beep when beginning to spy on a channel, or speak the selected channel name.",value:"'q'"},{option:"s: Skip the playback of the channel type (i.e. SIP, IAX, etc) when speaking the selected channel name.",value:"'s'"},{option:"S: Stop when no more channels are left to spy on.",value:"'S'"},{option:"w: Enable whisper mode, so the spying channel can talk to the spied-on channel.",value:"'w'"},{option:"W: Enable private whisper mode, so the spying channel can talk to the spied-on channel but cannot listen to that channel.",value:"'W'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayrecordingFormat=_.keyBy([{option:"wav",value:"'wav'"},{option:"gsm",value:"'gsm'"},{option:"wav49",value:"'WAV'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editdialog=function(e,n){i.show({controller:"CreateOrEditchanSpyDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/chanSpies/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{chanSpy:e,chanSpies:f.chanSpies.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("chanSpy")+"?").htmlContent("<b>"+(e.name||"chanSpy")+"</b> will be deleted.").ariaLabel("delete chanSpy").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getChanSpies=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceChanSpy.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ChanSpies",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditchanSpy=function(e,n){i.show({controller:"CreateOrEditchanSpyDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/chanSpies/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{chanSpy:n,chanSpies:f.chanSpies.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deletechanSpy=y,f.exportSelectedChanSpies=function(){var e=angular.copy(f.selectedChanSpies);return f.selectedChanSpies=[],e},f.deleteSelectedChanSpies=function(e){var n=i.confirm().title("Are you sure want to delete the selected chanSpies?").htmlContent("<b>"+f.selectedChanSpies.length+" selected</b> will be deleted.").ariaLabel("delete chanSpys").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedChanSpies.forEach(function(e){y(e)}),f.selectedChanSpies=[]})},f.deselectChanSpies=function(){f.selectedChanSpies=[]},f.selectAllChanSpies=function(){f.selectedChanSpies=f.chanSpies.rows};var b=!0,A=1;function E(e){f.chanSpies=e||{count:0,rows:[]}}function y(e){m.voiceChanSpy.delete({id:e.id}).$promise.then(function(){_.remove(f.chanSpies.rows,{id:e.id}),f.chanSpies.count-=1,f.chanSpies.rows.length||f.getChanSpies(),p.success({title:_.startCase("chanSpy")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceChanSpy"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceChanSpy",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getChanSpies())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","chanSpies","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("ChanSpiesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_CHANSPY",g.chanSpy=angular.copy(l),g.chanSpies=r,g.newchanSpy=!1,g.chanSpy||(g.chanSpy={recordingFormat:"wav"},g.title="VOICE.NEW_CHANSPY",g.newchanSpy=!0),g.addNewchanSpy=function(){g.errors=[],d.voiceChanSpy.save(g.chanSpy).$promise.then(function(e){g.chanSpies.unshift(e.toJSON()),o.success({title:"chanSpy properly created",msg:g.chanSpy.name?g.chanSpy.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceChanSpy.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceChanSpy.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.savechanSpy=function(){g.errors=[],d.voiceChanSpy.update({id:g.chanSpy.id},g.chanSpy).$promise.then(function(e){var n=_.find(g.chanSpies,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"chanSpy properly saved!",msg:g.chanSpy.name?g.chanSpy.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceChanSpy.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceChanSpy.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deletechanSpy=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The chanSpy will be deleted.").ariaLabel("Delete chanSpy").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceChanSpy.delete({id:g.chanSpy.id}).$promise.then(function(){_.remove(g.chanSpies,{id:g.chanSpy.id}),o.success({title:"chanSpy properly deleted!",msg:(g.chanSpy.name||"chanSpy")+" has been deleted!"}),v(g.chanSpy)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceChanSpy.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceChanSpy.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","chanSpies","chanSpy","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditchanSpyDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.contexts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="contexts",f.listOrder="",f.listOrderAsc=null,f.selectedContexts=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",defaultEntry:"false",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditContextDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/contexts/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{context:e,contexts:f.contexts.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("context")+"?").htmlContent("<b>"+(e.name||"context")+"</b> will be deleted.").ariaLabel("delete context").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getContexts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceContext.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Contexts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditContext=function(e,n){i.show({controller:"CreateOrEditContextDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/contexts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{context:n,contexts:f.contexts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteContext=y,f.exportSelectedContexts=function(){var e=angular.copy(f.selectedContexts);return f.selectedContexts=[],e},f.deleteSelectedContexts=function(e){var n=i.confirm().title("Are you sure want to delete the selected contexts?").htmlContent("<b>"+f.selectedContexts.length+" selected</b> will be deleted.").ariaLabel("delete Contexts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedContexts.forEach(function(e){y(e)}),f.selectedContexts=[]})},f.deselectContexts=function(){f.selectedContexts=[]},f.selectAllContexts=function(){f.selectedContexts=f.contexts.rows};var b=!0,A=1;function E(e){f.contexts=e||{count:0,rows:[]}}function y(e){m.voiceContext.delete({id:e.id}).$promise.then(function(){_.remove(f.contexts.rows,{id:e.id}),f.contexts.count-=1,f.contexts.rows.length||f.getContexts(),p.success({title:_.startCase("Context")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceContext"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceContext",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getContexts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","contexts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("ContextsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_CONTEXT",g.context=angular.copy(l),g.contexts=r,g.newContext=!1,g.context||(g.context={},g.title="VOICE.NEW_CONTEXT",g.newContext=!0),g.addNewContext=function(){g.errors=[],d.voiceContext.save(g.context).$promise.then(function(e){g.contexts.unshift(e.toJSON()),o.success({title:"Context properly created",msg:g.context.name?g.context.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceContext.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceContext.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveContext=function(){g.errors=[],d.voiceContext.update({id:g.context.id},g.context).$promise.then(function(e){var n=_.find(g.contexts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Context properly saved!",msg:g.context.name?g.context.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceContext.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceContext.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteContext=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The context will be deleted.").ariaLabel("Delete Context").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceContext.delete({id:g.context.id}).$promise.then(function(){_.remove(g.contexts,{id:g.context.id}),o.success({title:"Context properly deleted!",msg:(g.context.name||"context")+" has been deleted!"}),v(g.context)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceContext.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceContext.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","contexts","context","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditContextDialogController",e)}(),function(){"use strict";function e(t,e,a,i,n,s,o,r,l){var d=this;function c(t){return e(function(e,n){o.voiceExtension.addApplications({id:t},d.applications?d.applications.rows:[]).$promise.then(function(){e()}).catch(function(e){n(e)})})}function m(e){t.hide(e)}d.currentUser=r.getCurrentUser(),d.crudPermissions=l,d.inboundRoute=angular.copy(s),d.inboundRoutes=n,d.newInboundRoute=!1,d.hasModulePermissions={},d.errors=[],d.initialize=function(){d.inboundRoute||(d.inboundRoute={appdata:"Inbound Call",type:"inbound",context:"from-sip"},d.newInboundRoute=!0);e=[{key:"name",value:d.inboundRoute.context}],o.getResourcesByRole(d.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:!0},e).then(function(e){d.contexts=e}).catch(function(){i.error({title:a.instant("VOICE.CONTEXTS"),msg:a.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});var e},d.getRouting=function(){if(d.newinboundRoute)return;var e={sort:"priority",VoiceExtensionId:d.inboundRoute.id,isApp:!0,nolimit:!0};o.voiceExtension.get(e).$promise.then(function(e){d.applications=e||{count:0,rows:[]}})},d.addNewInboundRoute=function(){d.errors=[],o.voiceExtension.save(d.inboundRoute).$promise.then(function(e){c(e.id).then(function(){d.inboundRoutes.unshift(e.toJSON()),i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_CREATED_SUCCESS_TITLE")}),m(e)})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.save"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.saveInboundRoute=function(){d.errors=[],o.voiceExtension.update({id:d.inboundRoute.id},d.inboundRoute).$promise.then(function(e){var n=_.find(d.inboundRoutes,{id:e.id});if(n&&_.merge(n,e.toJSON()),d.applications)return c(d.inboundRoute.id)}).then(function(){i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_SAVED_SUCCESS_TITLE")}),m(s)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.update"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.deleteInboundRoute=function(e){d.errors=[];var n=t.confirm().title(a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_TITLE")).content(a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_MESSAGE",{name:d.inboundRoute.exten})).ariaLabel("Delete inbound route").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){o.voiceExtension.delete({id:d.inboundRoute.id}).$promise.then(function(){_.remove(d.inboundRoutes,{id:d.inboundRoute.id}),i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETED_SUCCESS_TITLE")}),m(d.inboundRoute)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})})},d.closeDialog=m}e.$inject=["$mdDialog","$q","$translate","toasty","inboundRoutes","inboundRoute","api","Auth","crudPermissions"],angular.module("app.voice").controller("CreateOrEditInboundRouteDialogController",e)}(),function(){"use strict";function e(e,i,a,n,s,o,r,t,l,d,c){var m=this;function u(e,n){1===m.applications.rows.length&&1===n&&(n=0);var t=m.applications.rows[n];i.show({controller:"EditRoutingAppDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/routing/dialog.html",parent:angular.element(a.body),targetEvent:e,locals:{application:t,route:m.inboundRoute,crudPermissions:m.crudPermissions}}).then(function(e){e?(m.applications.rows[n].appdata===e.appdata&&"custom"!==e.appType||p(),m.applications.rows[n]=e):t.id||m.applications.rows.splice(n,1)}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}function p(){m.pendingChanges=!0}m.currentUser=t.getCurrentUser(),m.inboundRoute=l||e.params.inboundRoute||{},m.contexts=d,m.userProfileSection=c&&1==c.count?c.rows[0]:null,m.crudPermissions=t.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={sort:"priority",VoiceExtensionId:m.inboundRoute.id,isApp:!0,nolimit:!0},m.apps=[{app:"AGI",appAlias:"CallySquare",appType:"agi",context:"from-sip",type:"Inbound",interval:"*,*,*,*"},{app:"Dial",appType:"dial",context:"from-sip",type:"Inbound",options:"xX",interval:"*,*,*,*"},{app:"Dial",appType:"internalDial",context:"from-sip",type:"Inbound",options:"xX",interval:"*,*,*,*"},{app:"Dial",appType:"externalDial",context:"from-sip",type:"Inbound",interval:"*,*,*,*",options:"xX"},{app:"Dial",appType:"ringGroup",context:"from-sip",type:"Inbound",interval:"*,*,*,*",options:"xX"},{app:"Playback",appType:"playback",context:"from-sip",type:"Inbound",interval:"*,*,*,*",answer:!0},{app:"Queue",appType:"queue",context:"from-sip",type:"Inbound",options:"xX",appdata:",xX,,,300,,,,,",interval:"*,*,*,*",answer:!0},{app:"Set",appType:"set",context:"from-sip",type:"Inbound",separator:"=",interval:"*,*,*,*"},{app:"Voicemail",appType:"voicemail",context:"from-sip",type:"Inbound",interval:"*,*,*,*"},{app:"goto",appType:"goTo",context:"from-sip",type:"Inbound",interval:"*,*,*,*"},{app:"hangup",appType:"hangup",context:"from-sip",type:"Inbound",interval:"*,*,*,*"},{app:null,appType:"custom",type:"Inbound",interval:"*,*,*,*"}],m.sortableAppsOptions={group:{name:"apps",pull:"clone",put:!1},animation:100,sort:!1},m.sortableRoutingOptions={group:{name:"apps",put:!0},animation:100,disabled:!m.crudPermissions.canEdit,onAdd:function(e){u(e,e.newIndex)},onUpdate:function(){p()}},m.selectedApplications=[],m.onInit=function(){if(t.isAdmin())return;e=[{key:"name",value:m.inboundRoute.context}],o.getResourcesByRole(m.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:!0},e).then(function(e){m.contexts=e}).catch(function(){r.error({title:s.instant("VOICE.CONTEXTS"),msg:s.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});var e},m.onActionsTabSelection=function(){m.applications||o.voiceExtension.get(m.query).$promise.then(function(e){m.applications=e||{count:0,rows:[]}})},m.gotoInboundRoutes=function(){e.go("app.voice.inboundRoutes",{},{reload:"app.voice.inboundRoutes"})},m.saveInboundRoute=function(){o.voiceExtension.update({id:m.inboundRoute.id},m.inboundRoute).$promise.then(function(){n(function(n,t){if(!m.applications)return n();o.voiceExtension.addApplications({id:m.inboundRoute.id},m.applications.rows).$promise.then(function(e){m.applications.rows=e.rows,n()}).catch(function(e){t(e)})}).then(function(){m.pendingChanges=!1,r.success({title:s.instant("VOICE.NOTIFICATIONS.EXTENSION_SAVED_SUCCESS_TITLE")})})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})},m.editApplication=u,m.editInterval=function(e,n){var t=m.applications.rows[n];i.show({controller:"EditRoutingIntervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/routing/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:void 0,crudPermissions:m.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,p())})},m.deleteApplication=function(e,n,t){var a=i.confirm().title(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATION_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATION_DELETE_MESSAGE",{name:e.app})).ariaLabel("Delete application").targetEvent(t).ok("OK").cancel(s.instant("TOOLS.CANCEL"));i.show(a).then(function(){m.applications.rows.splice(n,1),p()})},m.deleteSelectedApplications=function(e){var n=i.confirm().title(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATIONS_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATIONS_DELETE_MESSAGE",{total:m.selectedApplications.length})).ariaLabel("Delete applications").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedApplications.forEach(function(e){_.remove(m.applications.rows,{id:e.id})}),m.selectedApplications=[],p()})}}e.$inject=["$state","$mdDialog","$document","$q","$translate","api","toasty","Auth","inboundRoute","contexts","userProfileSection"],angular.module("app.voice").controller("InboundRouteController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){g.inboundRoutes=e||{count:0,rows:[]}}function h(){g.query.offset=(g.query.page-1)*g.query.limit,m.isAdmin()?g.promise=d.voiceExtension.get(g.query,v).$promise:(g.query.id=g.userProfile.id,g.query.section="InboundRoutes",g.promise=d.userProfile.getResources(g.query,v).$promise)}function f(e){d.voiceExtension.delete({id:e.id}).$promise.then(function(){_.remove(g.inboundRoutes.rows,{id:e.id}),g.inboundRoutes.count-=1,g.inboundRoutes.rows.length||h(),c.success({title:s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceExtension"}];for(var n=0;n<e.data.errors.length;n++)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceExtension",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}g.license=u,g.setting=p,g.currentUser=m.getCurrentUser(),g.inboundRoutes=o,g.userProfile=r,g.userProfileSection=l&&1==l.count?l.rows[0]:null,g.crudPermissions=m.parseCrudPermissions(g.userProfileSection?g.userProfileSection.crudPermissions:null),g.selectedInboundRoutes=[],g.query={fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"inbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,page:1},g.editRoute=function(e){n.go("app.voice.inboundRoutes.edit",{id:e.id,inboundRoute:e,crudPermissions:g.crudPermissions})},g.createOrEditInboundRoute=function(e,n){a.show({controller:"CreateOrEditInboundRouteDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/inboundRoutes/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{inboundRoute:n,inboundRoutes:g.inboundRoutes.rows,crudPermissions:g.crudPermissions}})},g.success=v,g.getInboundRoutes=h,g.deleteConfirm=function(e,n){var t=a.confirm().title(s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_MESSAGE",{name:e.exten})).ariaLabel("Delete extension").targetEvent(n).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(t).then(function(){f(e)})},g.exportSelectedInboundRoutes=function(){var e=angular.copy(g.selectedInboundRoutes);return g.selectedInboundRoutes=[],e},g.deleteSelectedInboundRoutes=function(e){var n=a.confirm().title(s.instant("VOICE.NOTIFICATIONS.EXTENSIONS_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.EXTENSIONS_DELETE_MESSAGE",{total:g.selectedInboundRoutes.length})).ariaLabel("Delete extensions").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(n).then(function(){g.selectedInboundRoutes.forEach(function(e){f(e)}),g.selectedInboundRoutes=[]})};var b=!0,A=1;e.$watch("vm.query.filter",function(e,n){b?i(function(){b=!1}):(n||(A=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=A),h())})}e.$inject=["$scope","$state","$mdDialog","$document","$timeout","$translate","inboundRoutes","userProfile","userProfileSection","api","toasty","Auth","license","setting"],angular.module("app.voice").controller("InboundRoutesController",e)}(),function(){"use strict";function e(t,e,a,i,n,s,o,r,l){var d=this;function c(t){return e(function(e,n){o.voiceExtension.addApplications({id:t},d.applications?d.applications.rows:[]).$promise.then(function(){e()}).catch(function(e){n(e)})})}function m(e){t.hide(e)}d.currentUser=r.getCurrentUser(),d.crudPermissions=l,d.internalRoute=angular.copy(s),d.internalRoutes=n,d.newInternalRoute=!1,d.hasModulePermissions={},d.errors=[],d.initialize=function(){d.internalRoute||(d.internalRoute={appdata:"Internal Call",type:"internal",context:"from-sip"},d.newInternalRoute=!0);e=[{key:"name",value:d.internalRoute.context}],o.getResourcesByRole(d.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:!0},e).then(function(e){d.contexts=e}).catch(function(){i.error({title:a.instant("VOICE.CONTEXTS"),msg:a.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});var e},d.getRouting=function(){if(d.newInternalRoute)return;var e={sort:"priority",VoiceExtensionId:d.internalRoute.id,isApp:!0,nolimit:!0};o.voiceExtension.get(e).$promise.then(function(e){d.applications=e||{count:0,rows:[]}})},d.addNewInternalRoute=function(){d.errors=[],o.voiceExtension.save(d.internalRoute).$promise.then(function(e){c(e.id).then(function(){d.internalRoutes.unshift(e.toJSON()),i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_CREATED_SUCCESS_TITLE")}),m(e)})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.save"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.saveInternalRoute=function(){d.errors=[],o.voiceExtension.update({id:d.internalRoute.id},d.internalRoute).$promise.then(function(e){var n=_.find(d.internalRoutes,{id:e.id});if(n&&_.merge(n,e.toJSON()),d.applications)return c(d.internalRoute.id)}).then(function(){i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_SAVED_SUCCESS_TITLE")}),m(s)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.update"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.deleteInternalRoute=function(e){d.errors=[];var n=t.confirm().title(a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_TITLE")).content(a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_MESSAGE",{name:d.internalRoute.exten})).ariaLabel("Delete internal route").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){o.voiceExtension.delete({id:d.internalRoute.id}).$promise.then(function(){_.remove(d.internalRoutes,{id:d.internalRoute.id}),i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETED_SUCCESS_TITLE")}),m(d.internalRoute)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})})},d.closeDialog=m}e.$inject=["$mdDialog","$q","$translate","toasty","internalRoutes","internalRoute","api","Auth","crudPermissions"],angular.module("app.voice").controller("CreateOrEditInternalRouteDialogController",e)}(),function(){"use strict";function e(e,i,a,n,s,o,r,t,l,d,c){var m=this;function u(e,n){1===m.applications.rows.length&&1===n&&(n=0);var t=m.applications.rows[n];i.show({controller:"EditRoutingAppDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/routing/dialog.html",parent:angular.element(a.body),targetEvent:e,locals:{application:t,route:m.internalRoute,crudPermissions:m.crudPermissions}}).then(function(e){e?(m.applications.rows[n].appdata===e.appdata&&"custom"!==e.appType||p(),m.applications.rows[n]=e):t.id||m.applications.rows.splice(n,1)}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}function p(){m.pendingChanges=!0}m.currentUser=t.getCurrentUser(),m.internalRoute=l||e.params.internalRoute||{},m.contexts=d,m.userProfileSection=c&&1==c.count?c.rows[0]:null,m.crudPermissions=t.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={sort:"priority",VoiceExtensionId:m.internalRoute.id,isApp:!0,nolimit:!0},m.apps=[{app:"AGI",appAlias:"CallySquare",appType:"agi",context:"from-sip",type:"Internal",interval:"*,*,*,*"},{app:"Dial",appType:"dial",context:"from-sip",type:"Internal",options:"xX",interval:"*,*,*,*"},{app:"Dial",appType:"internalDial",context:"from-sip",type:"Internal",options:"xX",interval:"*,*,*,*"},{app:"Dial",appType:"externalDial",context:"from-sip",type:"Internal",interval:"*,*,*,*",options:"xX"},{app:"Dial",appType:"ringGroup",context:"from-sip",type:"Internal",interval:"*,*,*,*",options:"xX"},{app:"Playback",appType:"playback",context:"from-sip",type:"Internal",interval:"*,*,*,*",answer:!0},{app:"Queue",appType:"queue",context:"from-sip",type:"Internal",options:"xX",appdata:",xX,,,300,,,,,",interval:"*,*,*,*",answer:!0},{app:"Set",appType:"set",context:"from-sip",type:"Internal",separator:"=",interval:"*,*,*,*"},{app:"Voicemail",appType:"voicemail",context:"from-sip",type:"Internal",interval:"*,*,*,*"},{app:"goto",appType:"goTo",context:"from-sip",type:"Internal",interval:"*,*,*,*"},{app:"hangup",appType:"hangup",context:"from-sip",type:"Internal",interval:"*,*,*,*"},{app:null,appType:"custom",type:"Internal",interval:"*,*,*,*"}],m.sortableAppsOptions={group:{name:"apps",pull:"clone",put:!1},animation:100,sort:!1},m.sortableRoutingOptions={group:{name:"apps",put:!0},animation:100,disabled:!m.crudPermissions.canEdit,onAdd:function(e){u(e,e.newIndex)},onUpdate:function(){p()}},m.selectedApplications=[],m.onInit=function(){if(t.isAdmin())return;e=[{key:"name",value:m.internalRoute.context}],o.getResourcesByRole(m.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:!0},e).then(function(e){m.contexts=e}).catch(function(){r.error({title:s.instant("VOICE.CONTEXTS"),msg:s.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});var e},m.onActionsTabSelection=function(){m.applications||o.voiceExtension.get(m.query).$promise.then(function(e){m.applications=e||{count:0,rows:[]}})},m.gotoInternalRoutes=function(){e.go("app.voice.internalRoutes",{},{reload:"app.voice.internalRoutes"})},m.saveInternalRoute=function(){o.voiceExtension.update({id:m.internalRoute.id},m.internalRoute).$promise.then(function(){n(function(n,t){if(!m.applications)return n();o.voiceExtension.addApplications({id:m.internalRoute.id},m.applications.rows).$promise.then(function(e){m.applications.rows=e.rows,n()}).catch(function(e){t(e)})}).then(function(){m.pendingChanges=!1,r.success({title:s.instant("VOICE.NOTIFICATIONS.EXTENSION_SAVED_SUCCESS_TITLE")})})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})},m.editApplication=u,m.editInterval=function(e,n){var t=m.applications.rows[n];i.show({controller:"EditRoutingIntervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/routing/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:void 0,crudPermissions:m.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,p())})},m.deleteApplication=function(e,n,t){var a=i.confirm().title(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATION_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATION_DELETE_MESSAGE",{name:e.app})).ariaLabel("Delete application").targetEvent(t).ok("OK").cancel(s.instant("TOOLS.CANCEL"));i.show(a).then(function(){m.applications.rows.splice(n,1),p()})},m.deleteSelectedApplications=function(e){var n=i.confirm().title(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATIONS_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATIONS_DELETE_MESSAGE",{total:m.selectedApplications.length})).ariaLabel("Delete applications").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedApplications.forEach(function(e){_.remove(m.applications.rows,{id:e.id})}),m.selectedApplications=[],p()})}}e.$inject=["$state","$mdDialog","$document","$q","$translate","api","toasty","Auth","internalRoute","contexts","userProfileSection"],angular.module("app.voice").controller("InternalRouteController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){g.internalRoutes=e||{count:0,rows:[]}}function h(){g.query.offset=(g.query.page-1)*g.query.limit,m.isAdmin()?g.promise=d.voiceExtension.get(g.query,v).$promise:(g.query.id=g.userProfile.id,g.query.section="InternalRoutes",g.promise=d.userProfile.getResources(g.query,v).$promise)}function f(e){d.voiceExtension.delete({id:e.id}).$promise.then(function(){_.remove(g.internalRoutes.rows,{id:e.id}),g.internalRoutes.count-=1,g.internalRoutes.rows.length||h(),c.success({title:s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceExtension"}];for(var n=0;n<e.data.errors.length;n++)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceExtension",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}g.license=u,g.setting=p,g.currentUser=m.getCurrentUser(),g.internalRoutes=o,g.userProfile=r,g.userProfileSection=l&&1==l.count?l.rows[0]:null,g.crudPermissions=m.parseCrudPermissions(g.userProfileSection?g.userProfileSection.crudPermissions:null),g.selectedInternalRoutes=[],g.query={fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"internal",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,page:1},g.editRoute=function(e){n.go("app.voice.internalRoutes.edit",{id:e.id,internalRoute:e,crudPermissions:g.crudPermissions})},g.createOrEditInternalRoute=function(e,n){a.show({controller:"CreateOrEditInternalRouteDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/internalRoutes/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{internalRoute:n,internalRoutes:g.internalRoutes.rows,crudPermissions:g.crudPermissions}})},g.success=v,g.getInternalRoutes=h,g.deleteConfirm=function(e,n){var t=a.confirm().title(s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_MESSAGE",{name:e.exten})).ariaLabel("Delete extension").targetEvent(n).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(t).then(function(){f(e)})},g.exportSelectedInternalRoutes=function(){var e=angular.copy(g.selectedInternalRoutes);return g.selectedInternalRoutes=[],e},g.deleteSelectedInternalRoutes=function(e){var n=a.confirm().title(s.instant("VOICE.NOTIFICATIONS.EXTENSIONS_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.EXTENSIONS_DELETE_MESSAGE",{total:g.selectedInternalRoutes.length})).ariaLabel("Delete extensions").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(n).then(function(){g.selectedInternalRoutes.forEach(function(e){f(e)}),g.selectedInternalRoutes=[]})};var b=!0,A=1;e.$watch("vm.query.filter",function(e,n){b?i(function(){b=!1}):(n||(A=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=A),h())})}e.$inject=["$scope","$state","$mdDialog","$document","$timeout","$translate","internalRoutes","userProfile","userProfileSection","api","toasty","Auth","license","setting"],angular.module("app.voice").controller("InternalRoutesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_MUSICONHOLD",g.musiconhold=angular.copy(l),g.musiconholds=r,g.newMusicOnHold=!1,g.musiconhold||(g.musiconhold={mode:"files"},g.title="VOICE.NEW_MUSICONHOLD",g.newMusicOnHold=!0),g.addNewMusicOnHold=function(){g.errors=[],d.voiceMusicOnHold.save(g.musiconhold).$promise.then(function(e){g.musiconholds.unshift(e.toJSON()),o.success({title:"MusicOnHold properly created",msg:g.musiconhold.name?g.musiconhold.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveMusicOnHold=function(){g.errors=[],d.voiceMusicOnHold.update({id:g.musiconhold.id},g.musiconhold).$promise.then(function(e){var n=_.find(g.musiconholds,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"MusicOnHold properly saved!",msg:g.musiconhold.name?g.musiconhold.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteMusicOnHold=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The musiconhold will be deleted.").ariaLabel("Delete MusicOnHold").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceMusicOnHold.delete({id:g.musiconhold.id}).$promise.then(function(){_.remove(g.musiconholds,{id:g.musiconhold.id}),o.success({title:"MusicOnHold properly deleted!",msg:(g.musiconhold.name||"musiconhold")+" has been deleted!"}),v(g.musiconhold)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","musiconholds","musiconhold","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditMusicOnHoldDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.musiconholdMohSounds=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.voiceMusicOnHold.getSounds(m.query,u).$promise}function g(e){d.voiceMusicOnHold.removeSound({id:t.params.id,id2:e.id}).$promise.then(function(){_.remove(m.musiconholdMohSounds.rows,{id:e.id}),m.musiconholdMohSounds.count-=1,m.musiconholdMohSounds.rows.length||p(),l.success({title:"MohSound deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceMusicOnHold"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMusicOnHold",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.musiconhold={},m.musiconholdMohSounds={count:0,rows:[]},m.selectedMusicOnHoldMohSounds=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,save_name,converted_format,audio",limit:10,page:1},m.init=function(e,n){m.musiconhold=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.VoiceMusicOnHoldId=m.musiconhold.id,m.query.id=m.musiconhold.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the mohSound?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("mohSound #")+e.id||"mohSound")+"</b> will be deleted.").ariaLabel("delete mohSound").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.voiceMusicOnHoldDownload=function(s,e,n){return d.sound.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="mohSound"+s.id,a=new Blob(n,{type:e.type});t=s.converted_format?s.save_name+"."+s.converted_format:s.save_name;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getMusicOnHoldMohSounds=p,m.createOrEditMusicOnHoldMohSound=function(e,n){o.show({controller:"CreateOrEditMohSoundDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/musiconholds/edit/mohSounds/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{musiconhold:m.musiconhold,mohSound:n,mohSounds:m.musiconholdMohSounds.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedMusicOnHoldMohSounds=function(){var e=angular.copy(m.selectedMusicOnHoldMohSounds);return m.selectedMusicOnHoldMohSounds=[],e},m.deleteMusicOnHoldMohSound=g,m.deleteSelectedMusicOnHoldMohSounds=function(e){var n=o.confirm().title("Are you sure want to delete the selected mohSounds?").htmlContent("<b>"+m.selectedMusicOnHoldMohSounds.length+" selected</b> will be deleted.").ariaLabel("delete mohSounds").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedMusicOnHoldMohSounds.forEach(function(e){g(e)}),m.selectedMusicOnHoldMohSounds=[]})},c.hasRole("admin")?d.sound.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){m.sounds=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_SOUNDS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.sound.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){m.sounds=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:m.currentUser.userProfileId,sectionId:1007}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(m.sounds,{id:e.resourceId})}),t=null;if(m.musiconhold&&(t=_.find(m.sounds,{id:Number(m.musiconhold.id)})),t&&!_.some(n,["id",t.id])){var a=_.find(m.sounds,{id:t.id});a.canSelect=!1,n.push(a)}m.sounds=n})}else{var t=[],a=null;m.musiconhold&&(a=_.find(m.sounds,{id:Number(m.musiconhold.id)}));for(var i=0;i<m.sounds.length;i++)a&&m.sounds[i].id===a.id&&(m.sounds[i].canSelect=!1,t.push(m.sounds[i]));m.sounds=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.voice").controller("MusicOnHoldMohSoundsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_MOHSOUND",g.mohSound=angular.copy(l),g.mohSounds=r,g.newMohSound=!1,g.mohSound||(g.mohSound={},g.title="VOICE.NEW_MOHSOUND",g.newMohSound=!0),n.params.id&&(g.mohSound.VoiceMusicOnHoldId=n.params.id),g.addNewMohSound=function(){g.errors=[],d.voiceMusicOnHold.addSound({id:n.params.id},g.mohSound).$promise.then(function(e){g.mohSounds.unshift(e.toJSON()),o.success({title:"MohSound properly created",msg:g.mohSound.name?g.mohSound.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveMohSound=function(){g.errors=[],d.voiceMusicOnHold.update({id:g.mohSound.id},g.mohSound).$promise.then(function(e){var n=_.find(g.mohSounds,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"MohSound properly saved!",msg:g.mohSound.name?g.mohSound.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteMohSound=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The mohSound will be deleted.").ariaLabel("Delete MohSound").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceMusicOnHold.delete({id:g.mohSound.id}).$promise.then(function(){_.remove(g.mohSounds,{id:g.mohSound.id}),o.success({title:"MohSound properly deleted!",msg:(g.mohSound.name||"mohSound")+" has been deleted!"}),v(g.mohSound)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.sound.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){g.sounds=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_SOUNDS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.sound.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){g.sounds=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1007}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.sounds,{id:e.resourceId})}),t=null;if(g.mohSound&&(t=_.find(g.sounds,{id:Number(g.mohSound.id)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.sounds,{id:t.id});a.canSelect=!1,n.push(a)}g.sounds=n})}else{var t=[],a=null;g.mohSound&&(a=_.find(g.sounds,{id:Number(g.mohSound.id)}));for(var i=0;i<g.sounds.length;i++)a&&g.sounds[i].id===a.id&&(g.sounds[i].canSelect=!1,t.push(g.sounds[i]));g.sounds=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","mohSounds","mohSound","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditMohSoundDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.musiconhold=c||e.params.musiconhold||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoMusicOnHolds=function(){e.go("app.voice.musiconholds",{},{reload:"app.voice.musiconholds"})},u.saveMusicOnHold=function(){r.voiceMusicOnHold.update({id:u.musiconhold.id},u.musiconhold).$promise.then(function(){l.success({title:"MusicOnHold updated!",msg:u.musiconhold.name?u.musiconhold.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMusicOnHold",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","musiconhold","userProfileSection"],angular.module("app.voice").controller("MusicOnHoldController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.musiconholds=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="musiconholds",f.listOrder="",f.listOrderAsc=null,f.selectedMusicOnHolds=[],f.query={fields:"createdAt,updatedAt,id,name,mode,directory,application,format,sort",defaultEntry:"false",limit:10,page:1},f.arraymode=_.keyBy([{option:"Files",value:"'files'"},{option:"Custom",value:"'custom'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysort=_.keyBy([{option:"Random",value:"'random'"},{option:"Alphabetical",value:"'alpha'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.voice.musiconholds.edit",{id:e.id,musiconhold:e,crudPermissions:f.crudPermissions})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("musiconhold")+"?").htmlContent("<b>"+(e.name||"musiconhold")+"</b> will be deleted.").ariaLabel("delete musiconhold").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getMusicOnHolds=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceMusicOnHold.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="MusicOnHolds",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditMusicOnHold=function(e,n){i.show({controller:"CreateOrEditMusicOnHoldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/musiconholds/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{musiconhold:n,musiconholds:f.musiconholds.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteMusicOnHold=y,f.exportSelectedMusicOnHolds=function(){var e=angular.copy(f.selectedMusicOnHolds);return f.selectedMusicOnHolds=[],e},f.deleteSelectedMusicOnHolds=function(e){var n=i.confirm().title("Are you sure want to delete the selected musiconholds?").htmlContent("<b>"+f.selectedMusicOnHolds.length+" selected</b> will be deleted.").ariaLabel("delete MusicOnHolds").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedMusicOnHolds.forEach(function(e){y(e)}),f.selectedMusicOnHolds=[]})},f.deselectMusicOnHolds=function(){f.selectedMusicOnHolds=[]},f.selectAllMusicOnHolds=function(){f.selectedMusicOnHolds=f.musiconholds.rows};var b=!0,A=1;function E(e){f.musiconholds=e||{count:0,rows:[]}}function y(e){m.voiceMusicOnHold.delete({id:e.id}).$promise.then(function(){_.remove(f.musiconholds.rows,{id:e.id}),f.musiconholds.count-=1,f.musiconholds.rows.length||f.getMusicOnHolds(),p.success({title:_.startCase("MusicOnHold")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceMusicOnHold"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceMusicOnHold",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getMusicOnHolds())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","musiconholds","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("MusicOnHoldsController",e)}(),function(){"use strict";function e(t,e,a,i,n,s,o,r,l){var d=this;function c(t){return e(function(e,n){o.voiceExtension.addApplications({id:t},d.applications?d.applications.rows:[]).$promise.then(function(){e()}).catch(function(e){n(e)})})}function m(e){t.hide(e)}d.currentUser=r.getCurrentUser(),d.crudPermissions=l,d.outboundRoute=angular.copy(s),d.outboundRoutes=n,d.newOutboundRoute=!1,d.hasModulePermissions={},d.errors=[],d.initialize=function(){d.outboundRoute||(d.outboundRoute={appdata:"Outbound Call",type:"outbound",context:"from-sip",recordingFormat:"none"},d.newOutboundRoute=!0);e=[{key:"name",value:d.outboundRoute.context}],o.getResourcesByRole(d.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:!0},e).then(function(e){d.contexts=e}).catch(function(){i.error({title:a.instant("VOICE.CONTEXTS"),msg:a.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});var e},d.getRouting=function(){if(d.newOutboundRoute)return;var e={sort:"priority",VoiceExtensionId:d.outboundRoute.id,isApp:!0,nolimit:!0};o.voiceExtension.get(e).$promise.then(function(e){d.applications=e||{count:0,rows:[]}})},d.addNewOutboundRoute=function(){d.errors=[],o.voiceExtension.save(d.outboundRoute).$promise.then(function(e){c(e.id).then(function(){d.outboundRoutes.unshift(e.toJSON()),i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_CREATED_SUCCESS_TITLE")}),m(e)})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.save"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.saveOutboundRoute=function(){d.errors=[],o.voiceExtension.update({id:d.outboundRoute.id},d.outboundRoute).$promise.then(function(e){var n=_.find(d.outboundRoutes,{id:e.id});if(n&&_.merge(n,e.toJSON()),d.applications)return c(d.outboundRoute.id)}).then(function(){i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_SAVED_SUCCESS_TITLE")}),m(s)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.update"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.deleteOutboundRoute=function(e){d.errors=[];var n=t.confirm().title(a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_TITLE")).content(a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_MESSAGE",{name:d.outboundRoute.exten})).ariaLabel("Delete outbound route").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){o.voiceExtension.delete({id:d.outboundRoute.id}).$promise.then(function(){_.remove(d.outboundRoutes,{id:d.outboundRoute.id}),i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETED_SUCCESS_TITLE")}),m(d.outboundRoute)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})})},d.closeDialog=m}e.$inject=["$mdDialog","$q","$translate","toasty","outboundRoutes","outboundRoute","api","Auth","crudPermissions"],angular.module("app.voice").controller("CreateOrEditOutboundRouteDialogController",e)}(),function(){"use strict";function e(e,i,a,n,s,o,r,t,l,d,c){var m=this;function u(e,n){1===m.applications.rows.length&&1===n&&(n=0);var t=m.applications.rows[n];i.show({controller:"EditRoutingAppDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/routing/dialog.html",parent:angular.element(a.body),targetEvent:e,locals:{application:t,route:m.outboundRoute,crudPermissions:m.crudPermissions}}).then(function(e){e?(m.applications.rows[n].appdata===e.appdata&&"custom"!==e.appType||p(),m.applications.rows[n]=e):t.id||m.applications.rows.splice(n,1)}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}function p(){m.pendingChanges=!0}m.currentUser=t.getCurrentUser(),m.outboundRoute=l||e.params.outboundRoute||{},m.contexts=d,m.userProfileSection=c&&1==c.count?c.rows[0]:null,m.crudPermissions=t.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={sort:"priority",VoiceExtensionId:m.outboundRoute.id,isApp:!0,nolimit:!0},m.apps=[{app:"Dial",appType:"outboundDial",context:"from-sip",type:"Outbound",options:"xX",interval:"*,*,*,*"},{app:null,appType:"custom",type:"Outbound",interval:"*,*,*,*"}],m.sortableAppsOptions={group:{name:"apps",pull:"clone",put:!1},animation:100,sort:!1},m.sortableRoutingOptions={group:{name:"apps",put:!0},animation:100,disabled:!m.crudPermissions.canEdit,onAdd:function(e){u(e,e.newIndex)},onUpdate:function(){p()}},m.selectedApplications=[],m.onInit=function(){if(t.isAdmin())return;e=[{key:"name",value:m.outboundRoute.context}],o.getResourcesByRole(m.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:!0},e).then(function(e){m.contexts=e}).catch(function(){r.error({title:s.instant("VOICE.CONTEXTS"),msg:s.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});var e},m.onActionsTabSelection=function(){m.applications||o.voiceExtension.get(m.query).$promise.then(function(e){m.applications=e||{count:0,rows:[]}})},m.gotoOutboundRoutes=function(){e.go("app.voice.outboundRoutes",{},{reload:"app.voice.outboundRoutes"})},m.saveOutboundRoute=function(){o.voiceExtension.update({id:m.outboundRoute.id},m.outboundRoute).$promise.then(function(){n(function(n,t){if(!m.applications)return n();o.voiceExtension.addApplications({id:m.outboundRoute.id},m.applications.rows).$promise.then(function(e){m.applications.rows=e.rows,n()}).catch(function(e){t(e)})}).then(function(){m.pendingChanges=!1,r.success({title:s.instant("VOICE.NOTIFICATIONS.EXTENSION_SAVED_SUCCESS_TITLE")})})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})},m.editApplication=u,m.editInterval=function(e,n){var t=m.applications.rows[n];i.show({controller:"EditRoutingIntervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/routing/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:void 0,crudPermissions:m.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,p())})},m.deleteApplication=function(e,n,t){var a=i.confirm().title(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATION_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATION_DELETE_MESSAGE",{name:e.app})).ariaLabel("Delete application").targetEvent(t).ok("OK").cancel(s.instant("TOOLS.CANCEL"));i.show(a).then(function(){m.applications.rows.splice(n,1),p()})},m.deleteSelectedApplications=function(e){var n=i.confirm().title(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATIONS_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATIONS_DELETE_MESSAGE",{total:m.selectedApplications.length})).ariaLabel("Delete applications").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedApplications.forEach(function(e){_.remove(m.applications.rows,{id:e.id})}),m.selectedApplications=[],p()})}}e.$inject=["$state","$mdDialog","$document","$q","$translate","api","toasty","Auth","outboundRoute","contexts","userProfileSection"],angular.module("app.voice").controller("OutboundRouteController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){g.outboundRoutes=e||{count:0,rows:[]}}function h(){g.query.offset=(g.query.page-1)*g.query.limit,m.isAdmin()?g.promise=d.voiceExtension.get(g.query,v).$promise:(g.query.id=g.userProfile.id,g.query.section="OutboundRoutes",g.promise=d.userProfile.getResources(g.query,v).$promise)}function f(e){d.voiceExtension.delete({id:e.id}).$promise.then(function(){_.remove(g.outboundRoutes.rows,{id:e.id}),g.outboundRoutes.count-=1,g.outboundRoutes.rows.length||h(),c.success({title:s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceExtension"}];for(var n=0;n<e.data.errors.length;n++)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceExtension",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}g.license=u,g.setting=p,g.currentUser=m.getCurrentUser(),g.outboundRoutes=o,g.userProfile=r,g.userProfileSection=l&&1==l.count?l.rows[0]:null,g.crudPermissions=m.parseCrudPermissions(g.userProfileSection?g.userProfileSection.crudPermissions:null),g.selectedOutboundRoutes=[],g.query={fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"outbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,page:1},g.editRoute=function(e){n.go("app.voice.outboundRoutes.edit",{id:e.id,outboundRoute:e,crudPermissions:g.crudPermissions})},g.createOrEditOutboundRoute=function(e,n){a.show({controller:"CreateOrEditOutboundRouteDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/outboundRoutes/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{outboundRoute:n,outboundRoutes:g.outboundRoutes.rows,crudPermissions:g.crudPermissions}})},g.success=v,g.getOutboundRoutes=h,g.deleteConfirm=function(e,n){var t=a.confirm().title(s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_MESSAGE",{name:e.exten})).ariaLabel("Delete extension").targetEvent(n).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(t).then(function(){f(e)})},g.exportSelectedOutboundRoutes=function(){var e=angular.copy(g.selectedOutboundRoutes);return g.selectedOutboundRoutes=[],e},g.deleteSelectedOutboundRoutes=function(e){var n=a.confirm().title(s.instant("VOICE.NOTIFICATIONS.EXTENSIONS_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.EXTENSIONS_DELETE_MESSAGE",{total:g.selectedOutboundRoutes.length})).ariaLabel("Delete extensions").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(n).then(function(){g.selectedOutboundRoutes.forEach(function(e){f(e)}),g.selectedOutboundRoutes=[]})};var b=!0,A=1;e.$watch("vm.query.filter",function(e,n){b?i(function(){b=!1}):(n||(A=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=A),h())})}e.$inject=["$scope","$state","$mdDialog","$document","$timeout","$translate","outboundRoutes","userProfile","userProfileSection","api","toasty","Auth","license","setting"],angular.module("app.voice").controller("OutboundRoutesController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(){return[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Agent",key:"lastAssignedTo",type:"select",label:"DASHBOARDS.SELECT_AGENT",options:g.agents.rows,customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}],ngValue:"name"},{name:"Campaign",key:"queue",type:"multiselect",label:"DASHBOARDS.SELECT_CAMPAIGN",options:g.queues.rows,ngValue:"name"}]}function h(){return g.refresh=!1,0===g.queues.count?f(null):(g.query.queue=1===g.queues.count?g.queues.rows[0].name:g.query.queue,void 0===g.query.queue&&(g.query.queue=_.map(g.queues.rows,"name")),_.isEmpty(g.query.queue)?f(null):(g.query.offset=(g.query.page-1)*g.query.limit,i.localStorage.setItem("motion2.realtime.abandoned.voice.abandonedCalls:"+g.currentUser.id,JSON.stringify({query:_.omit(g.query,"queue")})),void(g.promise=o.voiceQueueReport.getVoiceQueuesReport(g.query,f).$promise)))}function f(e){g.abandonedCalls=e||{count:0,rows:[]},!1,g.refresh=!0}g.currentUser=d.getCurrentUser(),g.agents=u||[],g.dispositions=p.rows,g.abandonedCalls={count:0,rows:[]},g.showTooltip=!1,g.refresh=!0,g.userProfile=r,g.userProfileSection=l&&1==l.count?l.rows[0]:null,g.crudPermissions=d.parseCrudPermissions(g.userProfileSection?g.userProfileSection.crudPermissions:null),g.query={fields:"id,type,calleridnum,calleridname,queue,queuecallerabandonAt,queuecallerexitAt,queuecallerexitreason,assigned,lastAssignedTo,updatedAt,disposition,secondDisposition,thirdDisposition",type:"inbound",queuecallerexitreason:"TIMEOUT,ABANDONED",sort:"-updatedAt",limit:10,page:1},g.getAbandonedCalls=h,g.refreshAbandonedCalls=function(){g.showTooltip=!1,h()},g.assignTo=function(e,n){e&&o.voiceQueueReport.update({id:e.id,lastAssignedTo:n?n.name:null,assigned:!!n}).$promise.catch(function(e){console.log(e)})},g.dispose=function(t){n.show({controller:"DisposeAbandonedCallDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/home/abandoned/dispose/dialog.html",parent:angular.element(a.body),targetEvent:t,locals:{dispositions:g.dispositions,call:t}}).then(function(e){if(e){var n={id:t.id,disposition:e.firstLevel||null,secondDisposition:e.secondLevel||null,thirdDisposition:e.thirdLevel||null};o.voiceQueueReport.update(n).$promise.catch(function(e){console.log(e)})}})},g.onSaveVoiceQueueReport=function(e){e&&g.queuesMap&&"inbound"===queue.type&&g.queuesMap[e.queue]&&(g.showTooltip=!0)},g.onUpdateVoiceQueueReport=function(e){if(e){var n=_.findIndex(g.abandonedCalls.rows,["id",e.id]);0<=n&&_.merge(g.abandonedCalls.rows[n],e)}},c.onWithoutApply("voiceQueueReport:save",g.onSaveVoiceQueueReport),c.on("voiceQueueReport:update",g.onUpdateVoiceQueueReport),function(){var e=i.localStorage.getItem("motion2.realtime.abandoned.voice.abandonedCalls:"+g.currentUser.id);if(e)(e=JSON.parse(e))&&e.query&&(g.query=_.merge(e.query,_.omit(g.query,["sort","limit","page"])),g.query=_.omit(g.query,"filter"));else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};g.query.createdAt=n}d.hasRole("admin")?o.user.getQueues({id:d.getCurrentUser().id,fields:"id,name",channel:"voice",type:"inbound",nolimit:!0}).$promise.then(function(e){g.queues=e||{count:0,rows:[]},g.queuesMap=_.mapValues(_.keyBy(g.queues.rows,"name"),"name")}).catch(function(e){console.error(e)}).finally(function(){g.quickFilters=v(),h()}):o.userProfile.getResources({id:g.currentUser.userProfileId,section:"VoiceQueues",channel:"voice",type:"inbound",sort:"-updatedAt",nolimit:!0}).$promise.then(function(e){g.queues=e||{count:0,rows:[]},g.queuesMap=_.mapValues(_.keyBy(g.queues.rows,"name"),"name")}).catch(function(e){console.error(e)}).finally(function(){g.quickFilters=v(),h()})}();var b=!0,A=1;e.$watch("vm.query.filter",function(e,n){b?t(function(){b=!1}):(n||(A=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=A),h())}),e.$on("$destroy",function(){c.removeAllListeners("voiceQueueReport:save"),c.removeAllListeners("voiceQueueReport:update")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","userProfile","userProfileSection","Auth","socket","toasty","agents","dispositions"],angular.module("app.voice").controller("AbandonedCallsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,s){var o=this;o.calls=i||{rows:[],count:0},o.query={limit:10,page:1},o.channelStatus=s.channelStatusOut,o.onSave=function(e){var n=_.find(o.calls.rows,{channel:e.channel});e.channelstatedesc=e.dialstatus?"up":"ring",n?_.merge(n,e):e.channel&&o.calls.rows.push(e)},o.onRemove=function(e){var n=_.findIndex(o.calls.rows,{channel:e.channel});0<=n&&(o.calls.rows[n].status="hangup");t(function(){o.calls.rows.splice(n,1)},5e3)},a.on("voice_outbound_channel:save",o.onSave),a.on("voice_outbound_channel:remove",o.onRemove),e.$on("$destroy",function(){a.removeAllListeners("voice_outbound_channel:save"),a.removeAllListeners("voice_outbound_channel:remove")})}e.$inject=["$scope","$timeout","api","socket","rpcCalls","helperClasses"],angular.module("app.voice").controller("OutboundCallsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,n,a,o,t,i,s,r,l,d,c,m,u){var p=this;p.currentUser=u.getCurrentUser(),p.queues=t?_.keyBy(t.rows?t.rows:[],"name"):{},p.rpcVoiceQueuesChannelsTmp=i?_.keyBy(i.rows?_.filter(i.rows,{type:"inbound"}):[],"uniqueid"):{},p.rpcVoiceQueuesChannels={},p.userProfile=c,p.userProfileSection=m&&1==m.count?m.rows[0]:null,p.crudPermissions=u.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.queryChannels={limit:10,page:1},p.getAvailableAgents=function(){p.availableAgents=null,s.rpc.getAgents().$promise.then(function(e){for(var n=[],t=e?e.rows:[],a=_.filter(t,{online:!0,voicePause:!1,voiceStatus:"idle"}),i=0;i<a.length;i++){var s=_.find(o.rows,["id",a[i].id]);s&&n.push(s)}p.availableAgents=n}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},p.getSize=function(e){return _.size(e)},p.$onInit=function(){_.forIn(p.rpcVoiceQueuesChannelsTmp,function(e,n){_.find(p.queues,{name:e.name})&&(p.rpcVoiceQueuesChannels[n]=e)})},p.onSave=function(e){"inbound"===e.type&&_.find(p.queues,{name:e.name})&&(p.rpcVoiceQueuesChannels[e.uniqueid]=e)},p.onRemove=function(e){p.rpcVoiceQueuesChannels[e.uniqueid]&&delete p.rpcVoiceQueuesChannels[e.uniqueid]},p.hangup=function(n){return s.rpc.getVoiceQueuesChannelHangup({uniqueid:n}).$promise.then(function(e){d.success({title:"Channel "+n+" properly hangup!",msg:e.message||""})}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},p.redirectToAgent=function(n,e,t){return s.rpc.getVoiceQueuesChannelRedirect({uniqueid:n,exten:e,context:t}).$promise.then(function(e){d.success({title:"Channel "+n+" properly redirect!",msg:e.message||""})}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},p.redirectToNumber=function(e,n){var t=a.prompt().title("Which number do you want transfer the call to?").placeholder("Number").targetEvent(e).ok("Ok").cancel("Cancel");return a.show(t).then(function(e){return s.rpc.getVoiceQueuesChannelRedirect({uniqueid:n,exten:e}).$promise}).then(function(e){d.success({title:"Channel "+n+" properly redirect!",msg:e.message||""})}).catch(function(e){e&&d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},r.on("voice_queue_channel:save",p.onSave),r.on("voice_queue_channel:remove",p.onRemove),e.$on("$destroy",function(){r.removeAllListeners("voice_queue_channel:save"),r.removeAllListeners("voice_queue_channel:remove")})}e.$inject=["$scope","$timeout","$mdDialog","agents","queues","rpcVoiceQueuesChannels","api","socket","helperClasses","toasty","userProfile","userProfileSection","Auth"],angular.module("app.voice").controller("QueueCallsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["total","answered","unmanaged","abandoned","sumHoldTime","sumDuration","sumBillable"];function u(){_.forIn(c.queues,function(e,n){c.rpcQueues[n]&&_.merge(e,_.pick(c.rpcQueues[n],m))})}c.count=a.count,c.queues=a?_.keyBy(a.rows?a.rows:[],"id"):{},c.rpcQueues=i?_.keyBy(i.rows?i.rows:[],"id"):{},c.userProfile=r,c.userProfileSection=l&&1==l.count?l.rows[0]:null,c.crudPermissions=d.parseCrudPermissions(c.userProfileSection?c.userProfileSection.crudPermissions:null),d.hasRole("admin")?c.query={type:"inbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1}:c.query={id:d.getCurrentUser().id,channel:"voice",type:"inbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1},c.success=v,c.getQueues=function(){c.query.offset=(c.query.page-1)*c.query.limit,d.hasRole("admin")?c.promise=s.voiceQueue.get(c.query,v).$promise:(c.query.id=c.userProfile.id,c.query.section="VoiceQueues",c.promise=s.userProfile.getResources(c.query,v).$promise)},c.onSave=function(e){c.queues[e.id]&&_.merge(c.queues[e.id],_.pick(e,m))},c.$onInit=u,o.onWithoutApply("voice_queue:save",c.onSave),c.interval=n(function(){},999);var p=!0,g=1;function v(e){c.count=e.count,c.queues=e?_.keyBy(e.rows?e.rows:[],"id"):{},u()}e.$watch("vm.query.filter",function(e,n){p?t(function(){p=!1}):(n||(g=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=g),c.getQueues())}),e.$on("$destroy",function(){o.removeAllListeners("voice_queue:save"),c.interval&&n.cancel(c.interval)})}e.$inject=["$scope","$timeout","$interval","queues","rpcQueues","api","socket","userProfile","userProfileSection","Auth"],angular.module("app.voice").controller("QueueParamsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c,m){var u=this,p=n(function(){},999);u.currentUser=c.getCurrentUser(),u.queues=s,u.userProfileSection=d&&1==d.count?d.rows[0]:null,u.crudPermissions=c.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.query={id:c.isUser()?u.currentUser.id:void 0,section:c.isUser()?"VoiceQueues":void 0,channel:"voice",type:"inbound",sort:"name",limit:10,page:1},u.getQueues=function(){u.query.offset=(u.query.page-1)*u.query.limit,o.realtime.getQueues(u.query).$promise.then(function(e){u.queues=e}).catch(function(e){l.error({title:i.instant("VOICE.VOICEQUEUES"),msg:e.status?JSON.stringify(e.data):e.toString()})})},u.editQueue=function(e,n){t.show({controller:"CreateOrEditVoiceQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceQueue:n,voiceQueues:u.queues.rows,license:null,setting:null,crudPermissions:u.crudPermissions}})},u.addAgent=function(e,n){t.show({controller:"VoiceQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceQueue:n,voiceQueues:u.queues.rows,realtime:!0,crudPermissions:u.crudPermissions}})},r.onWithoutApply("voice_queue:save",function(e){var n=_.find(u.queues.rows,["id",e.id]);n&&m.updateVoiceQueue(e,n)}),r.on("userVoiceQueue:save",function(e){var n=_.find(u.queues.rows,["id",e.VoiceQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),r.on("userVoiceQueue:remove",function(e){var n=_.find(u.queues.rows,["id",e.VoiceQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),r.on("user:agentconnect",function(t){u.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);if(n){if(!t.agentconnected)return;t.queue?n.talking=!0:n.busy=!0,m.updateBusyCounter(e)}})}),r.on("user:agentcomplete",function(t){u.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(n.talking?n.talking=!1:n.busy&&(n.busy=!1),m.updateBusyCounter(e))})}),r.on("user:update",function(t){u.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&m.updateQueue(t,e,n,"voice")})}),e.$on("$destroy",function(){r.removeAllListeners("voice_queue:save"),r.removeAllListeners("userVoiceQueue:remove"),r.removeAllListeners("userVoiceQueue:save"),r.removeAllListeners("user:agentconnect"),r.removeAllListeners("user:agentcomplete"),r.removeAllListeners("user:update"),p&&n.cancel(p)})}e.$inject=["$scope","$mdDialog","$document","$interval","$translate","queues","api","socket","toasty","userProfileSection","Auth","realtimeManager"],angular.module("app.voice").controller("QueuesVoiceRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){return{status:{registered:"green-300-fg icon-checkbox-marked-circle",unregistered:"red-300-fg icon-close-circle",lagged:"red-300-fg icon-close-circle",reachable:"green-300-fg icon-checkbox-marked-circle",unreachable:"red-300-fg icon-close-circle",unknown:"grey-fg icon-minus-circle"},state:{unknown:"grey-fg icon-phone-hangup",not_inuse:"green-300-fg icon-phone-hangup",inuse:"red-300-fg icon-phone-in-talk",busy:"red-300-fg icon-phone-locked",invalid:"grey-fg icon-phone-hangup",unavailable:"grey-fg icon-phone-hangup",ringing:"blue-300-fg icon-phone-incoming",ringinuse:"blue-300-fg icon-phone-incoming",onhold:"blue-300-fg icon-phone-paused"},channelStatus:{ring:"blue-300-fg icon-phone-incoming",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"},channelStatusOut:{ring:"blue-300-fg icon-phone-outgoing",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"}}})}(),function(){"use strict";function e(e,t,n){var a=this;switch(a.selectedTab=0,t.current.name){case"app.voice.realtime.agents":a.selectedTab=0;break;case"app.voice.realtime.telephones":a.selectedTab=1;break;case"app.voice.realtime.trunks":a.selectedTab=2;break;case"app.voice.realtime.queues":a.selectedTab=3;break;case"app.voice.realtime.queue_calls":a.selectedTab=4;break;case"app.voice.realtime.abandonedcalls":a.selectedTab=5;break;case"app.voice.realtime.queue_params":a.selectedTab=6;break;case"app.voice.realtime.outbound_calls":a.selectedTab=7;break;default:a.selectedTab=0,t.go("app.voice.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.voice.realtime.agents");break;case 1:t.go("app.voice.realtime.telephones");break;case 2:t.go("app.voice.realtime.trunks");break;case 3:t.go("app.voice.realtime.queues");break;case 4:t.go("app.voice.realtime.queue_calls");break;case 5:t.go("app.voice.realtime.abandonedcalls");break;case 6:t.go("app.voice.realtime.queue_params");break;case 7:t.go("app.voice.realtime.outbound_calls");break;default:t.go("app.voice.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.voice").controller("VoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c){var m=this,u=["fullname","internal","state","status"];function p(){_.forIn(m.telephones,function(e,n){m.rpcTelephones[n]&&_.merge(e,_.pick(m.rpcTelephones[n],u))})}m.count=a.count,m.attributes=["fullname","internal","state","status","address"],m.telephones=a?_.keyBy(a.rows?a.rows:[],"id"):{},m.rpcTelephones=i?_.keyBy(i.rows?i.rows:[],"id"):{},m.userProfile=l,m.userProfileSection=d&&1==d.count?d.rows[0]:null,m.crudPermissions=c.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={fields:"id,fullname,internal",role:"telephone",sort:"-updatedAt",limit:10,page:1},m.statusClass=r.status,m.stateClass=r.state,m.success=h,m.$onInit=p,m.showInfo=function(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},m.getTelephones=function(){m.query.offset=(m.query.page-1)*m.query.limit,c.hasRole("admin")?m.promise=s.user.get(m.query,h).$promise:(m.query.id=m.userProfile.id,m.query.section="Telephones",m.promise=s.userProfile.getResources(m.query,h).$promise)},m.onSave=function(e){m.telephones[e.id]&&_.merge(m.telephones[e.id],_.pick(e,u))},o.on("telephone:save",m.onSave);var g=!0,v=1;function h(e){m.telephones=e?_.keyBy(e.rows?e.rows:[],"id"):{},p()}e.$watch("vm.query.filter",function(e,n){g?t(function(){g=!1}):(n||(v=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=v),m.getTelephones())}),e.$on("$destroy",function(){o.removeAllListeners("telephone:save")})}e.$inject=["$scope","$timeout","$mdDialog","telephones","rpcTelephones","api","socket","helperClasses","userProfile","userProfileSection","Auth"],angular.module("app.voice").controller("TelephonesVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m){var u=this,p=["status","stateRegistry","registry","host","port","internal","state","status"];function g(){for(var e,n=0;n<u.trunks.length;n+=1)0<=(e=_.findIndex(u.rpcTrunks,["id",u.trunks[n].id]))&&_.merge(u.trunks[n],_.pick(u.rpcTrunks[e],p))}function v(e,n,t){0<=n&&_.merge(e[n],_.pick(t,p))}u.currentUser=m.getCurrentUser(),u.count=a.count,u.trunks=a?a.rows:[],u.rpcTrunks=i&&i.rows?i.rows:[],u.query={fields:"id,name",active:!0,sort:"-updatedAt",limit:10,page:1},u.statusClass=r.status,u.stateClass=r.state,u.userProfile=d,u.userProfileSection=c&&1==c.count?c.rows[0]:null,u.crudPermissions=m.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.success=b,u.$onInit=g,u.showInfo=function(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},u.getTrunks=function(){u.query.offset=(u.query.page-1)*u.query.limit,m.hasRole("admin")?u.promise=s.trunk.get(u.query,b).$promise:(u.query.id=u.userProfile.id,u.query.section="Trunks",u.promise=s.userProfile.getResources(u.query,b).$promise)},u.goToTrunk=function(e,n){l.go("app.tools.trunks.edit",{id:n.id})},u.onSave=function(e){var n=_.findIndex(u.trunks,["id",e.id]),t=_.findIndex(u.rpcTrunks,["id",e.id]);v(u.trunks,n,e),v(u.rpcTrunks,t,e)},o.on("trunk:save",u.onSave);var h=!0,f=1;function b(e){u.count=e.count,u.trunks=e&&e.rows?e.rows:[],g()}e.$watch("vm.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=u.query.page),e!==n&&(u.query.page=1),e||(u.query.page=f),u.getTrunks())}),e.$on("$destroy",function(){o.removeAllListeners("trunk:save")})}e.$inject=["$scope","$timeout","$mdDialog","trunks","rpcTrunks","api","socket","helperClasses","$state","userProfile","userProfileSection","Auth"],angular.module("app.voice").controller("TrunksVoiceRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_VOICEMAIL",g.voicemail=angular.copy(l),g.voicemails=r,g.newVoicemail=!1,g.voicemail||(g.voicemail={attach:"no"},g.title="VOICE.NEW_VOICEMAIL",g.newVoicemail=!0),g.addNewVoicemail=function(){g.errors=[],d.voiceMail.save(g.voicemail).$promise.then(function(e){g.voicemails.unshift(e.toJSON()),o.success({title:"Voicemail properly created",msg:g.voicemail.name?g.voicemail.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMail.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMail.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveVoicemail=function(){g.errors=[],d.voiceMail.update({id:g.voicemail.id},g.voicemail).$promise.then(function(e){var n=_.find(g.voicemails,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Voicemail properly saved!",msg:g.voicemail.name?g.voicemail.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMail.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMail.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteVoicemail=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The voicemail will be deleted.").ariaLabel("Delete Voicemail").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceMail.delete({id:g.voicemail.id}).$promise.then(function(){_.remove(g.voicemails,{id:g.voicemail.id}),o.success({title:"Voicemail properly deleted!",msg:(g.voicemail.name||"voicemail")+" has been deleted!"}),v(g.voicemail)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMail.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMail.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","voicemails","voicemail","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditVoicemailDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.voicemailMessages=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.voiceMail.getMessages(m.query,u).$promise}function g(e){d.voiceMailMessage.delete({id:e.id}).$promise.then(function(){_.remove(m.voicemailMessages.rows,{id:e.id}),m.voicemailMessages.count-=1,m.voicemailMessages.rows.length||p(),l.success({title:"Message deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceMail"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMail",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.voicemail={},m.voicemailMessages={count:0,rows:[]},m.selectedVoicemailMessages=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,callerid,duration,audio,stamp,msg_id",sort:"-stamp",limit:10,page:1},m.init=function(e,n){m.voicemail=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.id=m.voicemail.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the message?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("message #")+e.id||"message")+"</b> will be deleted.").ariaLabel("delete message").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.voiceMailMessageDownload=function(s,e,n){return d.voiceMailMessage.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="message"+s.id,a=new Blob(n,{type:e.type});t=s.msg_id+".wav";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMail.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getVoicemailMessages=p,m.createOrEditVoicemailMessage=function(e,n){o.show({controller:"CreateOrEditMessageDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicemails/edit/messages/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{voicemail:m.voicemail,message:n,messages:m.voicemailMessages.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedVoicemailMessages=function(){var e=angular.copy(m.selectedVoicemailMessages);return m.selectedVoicemailMessages=[],e},m.deleteVoicemailMessage=g,m.deleteSelectedVoicemailMessages=function(e){var n=o.confirm().title("Are you sure want to delete the selected messages?").htmlContent("<b>"+m.selectedVoicemailMessages.length+" selected</b> will be deleted.").ariaLabel("delete messages").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedVoicemailMessages.forEach(function(e){g(e)}),m.selectedVoicemailMessages=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.voice").controller("VoicemailMessagesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.voicemail=c||e.params.voicemail||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoVoicemails=function(){e.go("app.voice.voicemails",{},{reload:"app.voice.voicemails"})},u.saveVoicemail=function(){r.voiceMail.update({id:u.voicemail.id},u.voicemail).$promise.then(function(){l.success({title:"Voicemail updated!",msg:u.voicemail.name?u.voicemail.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMail",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CONTEXTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:405}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?void 0:r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.contexts,{id:e.resourceId})}),t=null;if(u.voicemail&&(t=_.find(u.contexts,{name:u.voicemail.context})),t&&!_.some(n,["id",t.id])){var a=_.find(u.contexts,{id:t.id});a.canSelect=!1,n.push(a)}u.contexts=n}):r.voiceContext.get({fields:"id,name",sort:"name",defaultEntry:1}).$promise.then(function(e){u.contexts=e.rows||[]})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","voicemail","userProfileSection"],angular.module("app.voice").controller("VoicemailController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.voicemails=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="voicemails",f.listOrder="",f.listOrderAsc=null,f.selectedVoicemails=[],f.query={fields:"createdAt,updatedAt,id,customer_id,fullname,email,password,mailbox,context,tz,attach,envelope,delete,emailbody,emailsubject,maxsecs,maxmsg",sort:"-updatedAt",limit:10,page:1},f.arrayattach=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayenvelope=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraydelete=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.voice.voicemails.edit",{id:e.id,voicemail:e,crudPermissions:f.crudPermissions})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("voicemail")+"?").htmlContent("<b>"+(e.name||"voicemail")+"</b> will be deleted.").ariaLabel("delete voicemail").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getVoicemails=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceMail.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Voicemails",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditVoicemail=function(e,n){i.show({controller:"CreateOrEditVoicemailDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicemails/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{voicemail:n,voicemails:f.voicemails.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteVoicemail=y,f.exportSelectedVoicemails=function(){var e=angular.copy(f.selectedVoicemails);return f.selectedVoicemails=[],e},f.deleteSelectedVoicemails=function(e){var n=i.confirm().title("Are you sure want to delete the selected voicemails?").htmlContent("<b>"+f.selectedVoicemails.length+" selected</b> will be deleted.").ariaLabel("delete Voicemails").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedVoicemails.forEach(function(e){y(e)}),f.selectedVoicemails=[]})},f.deselectVoicemails=function(){f.selectedVoicemails=[]},f.selectAllVoicemails=function(){f.selectedVoicemails=f.voicemails.rows};var b=!0,A=1;function E(e){f.voicemails=e||{count:0,rows:[]}}function y(e){m.voiceMail.delete({id:e.id}).$promise.then(function(){_.remove(f.voicemails.rows,{id:e.id}),f.voicemails.count-=1,f.voicemails.rows.length||f.getVoicemails(),p.success({title:_.startCase("Voicemail")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceMail"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceMail",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getVoicemails())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","voicemails","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("VoicemailsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_VOICEPREFIX",g.voicePrefix=angular.copy(l),g.voicePrefixes=r,g.newvoicePrefix=!1,g.voicePrefix||(g.voicePrefix={},g.title="VOICE.NEW_VOICEPREFIX",g.newvoicePrefix=!0),g.addNewvoicePrefix=function(){g.errors=[],d.voicePrefix.save(g.voicePrefix).$promise.then(function(e){g.voicePrefixes.unshift(e.toJSON()),o.success({title:"voicePrefix properly created",msg:g.voicePrefix.name?g.voicePrefix.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voicePrefix.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voicePrefix.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.savevoicePrefix=function(){g.errors=[],d.voicePrefix.update({id:g.voicePrefix.id},g.voicePrefix).$promise.then(function(e){var n=_.find(g.voicePrefixes,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"voicePrefix properly saved!",msg:g.voicePrefix.name?g.voicePrefix.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voicePrefix.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voicePrefix.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deletevoicePrefix=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The voicePrefix will be deleted.").ariaLabel("Delete voicePrefix").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voicePrefix.delete({id:g.voicePrefix.id}).$promise.then(function(){_.remove(g.voicePrefixes,{id:g.voicePrefix.id}),o.success({title:"voicePrefix properly deleted!",msg:(g.voicePrefix.name||"voicePrefix")+" has been deleted!"}),v(g.voicePrefix)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voicePrefix.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voicePrefix.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){g.outboundRoutes=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){g.outboundRoutes=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:403}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.outboundRoutes,{id:e.resourceId})}),t=null;if(g.voicePrefix&&(t=_.find(g.outboundRoutes,{id:Number(g.voicePrefix.VoiceExtensionId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.outboundRoutes,{id:t.id});a.canSelect=!1,n.push(a)}g.outboundRoutes=n})}else{var t=[],a=null;g.voicePrefix&&(a=_.find(g.outboundRoutes,{id:Number(g.voicePrefix.VoiceExtensionId)}));for(var i=0;i<g.outboundRoutes.length;i++)a&&g.outboundRoutes[i].id===a.id&&(g.outboundRoutes[i].canSelect=!1,t.push(g.outboundRoutes[i]));g.outboundRoutes=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GEToutboundRoutes",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","voicePrefixes","voicePrefix","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditvoicePrefixDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.voicePrefix.getAgents({id:c.voicePrefix.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UservoicePrefix?"penalty "+e.UservoicePrefix.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.voicePrefix=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.voicePrefix.removeAgents({id:c.voicePrefix.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.voicePrefix.addAgents({id:c.voicePrefix.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("VOICE.ALL_AGENTS"),labelSelected:r.instant("VOICE.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","voicePrefix","voicePrefixes","realtime","$translate","Auth","crudPermissions"],angular.module("app.voice").controller("voicePrefixagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.voicePrefix.getTeams({id:l.voicePrefix.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.voicePrefix=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("VOICE.ALL_TEAMS"),labelSelected:t.instant("VOICE.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.voicePrefix.removeTeams({id:l.voicePrefix.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.voicePrefix.addTeams({id:l.voicePrefix.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","voicePrefix","$translate","Auth","crudPermissions"],angular.module("app.voice").controller("voicePrefixteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.voicePrefixes=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="voicePrefixes",f.listOrder="",f.listOrderAsc=null,f.selectedVoicePrefixes=[],f.query={fields:"createdAt,updatedAt,id,name,VoiceExtensionId,callerIdAll,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditvoicePrefixDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicePrefixes/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{voicePrefix:e,voicePrefixes:f.voicePrefixes.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"voicePrefixagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicePrefixes/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{voicePrefix:e,voicePrefixes:f.voicePrefixes?f.voicePrefixes.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.teamadddialog=function(e,n){i.show({controller:"voicePrefixteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicePrefixes/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{voicePrefix:e,voicePrefixes:f.voicePrefixes?f.voicePrefixes.rows:[],crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("voicePrefix")+"?").htmlContent("<b>"+(e.name||"voicePrefix")+"</b> will be deleted.").ariaLabel("delete voicePrefix").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getVoicePrefixes=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voicePrefix.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="VoicePrefixes",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditvoicePrefix=function(e,n){i.show({controller:"CreateOrEditvoicePrefixDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicePrefixes/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{voicePrefix:n,voicePrefixes:f.voicePrefixes.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deletevoicePrefix=y,f.exportSelectedVoicePrefixes=function(){var e=angular.copy(f.selectedVoicePrefixes);return f.selectedVoicePrefixes=[],e},f.deleteSelectedVoicePrefixes=function(e){var n=i.confirm().title("Are you sure want to delete the selected voicePrefixes?").htmlContent("<b>"+f.selectedVoicePrefixes.length+" selected</b> will be deleted.").ariaLabel("delete voicePrefixs").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedVoicePrefixes.forEach(function(e){y(e)}),f.selectedVoicePrefixes=[]})},f.deselectVoicePrefixes=function(){f.selectedVoicePrefixes=[]},f.selectAllVoicePrefixes=function(){f.selectedVoicePrefixes=f.voicePrefixes.rows},g.hasRole("admin")?m.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){f.outboundRoutes=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){f.outboundRoutes=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:403}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.outboundRoutes,{id:e.resourceId})}),t=null;if(f.voicePrefix&&(t=_.find(f.outboundRoutes,{id:Number(f.voicePrefix.VoiceExtensionId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.outboundRoutes,{id:t.id});a.canSelect=!1,n.push(a)}f.outboundRoutes=n})}else{var t=[],a=null;f.voicePrefix&&(a=_.find(f.outboundRoutes,{id:Number(f.voicePrefix.VoiceExtensionId)}));for(var i=0;i<f.outboundRoutes.length;i++)a&&f.outboundRoutes[i].id===a.id&&(f.outboundRoutes[i].canSelect=!1,t.push(f.outboundRoutes[i]));f.outboundRoutes=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GEToutboundRoutes",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.voicePrefixes=e||{count:0,rows:[]}}function y(e){m.voicePrefix.delete({id:e.id}).$promise.then(function(){_.remove(f.voicePrefixes.rows,{id:e.id}),f.voicePrefixes.count-=1,f.voicePrefixes.rows.length||f.getVoicePrefixes(),p.success({title:_.startCase("voicePrefix")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoicePrefix"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoicePrefix",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getVoicePrefixes())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","voicePrefixes","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("VoicePrefixesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_VOICEQUEUE",g.voiceQueue=angular.copy(l),g.voiceQueues=r,g.newVoiceQueue=!1,g.voiceQueue||(g.voiceQueue={type:"inbound",strategy:"ringall",timeout:15,retry:2,random_periodic_announce:"no",announce_holdtime:"no",announce_position:"no",reportholdtime:"no",autopause:"no",ringinuse:"no",timeoutrestart:"no",setinterfacevar:"no",setqueuevar:"no",setqueueentryvar:"no"},g.title="VOICE.NEW_VOICEQUEUE",g.newVoiceQueue=!0),g.addNewVoiceQueue=function(){g.errors=[],d.voiceQueue.save(g.voiceQueue).$promise.then(function(e){g.voiceQueues.unshift(e.toJSON()),o.success({title:"VoiceQueue properly created",msg:g.voiceQueue.name?g.voiceQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveVoiceQueue=function(){g.errors=[],d.voiceQueue.update({id:g.voiceQueue.id},g.voiceQueue).$promise.then(function(e){var n=_.find(g.voiceQueues,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"VoiceQueue properly saved!",msg:g.voiceQueue.name?g.voiceQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteVoiceQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The voiceQueue will be deleted.").ariaLabel("Delete VoiceQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceQueue.delete({id:g.voiceQueue.id}).$promise.then(function(){_.remove(g.voiceQueues,{id:g.voiceQueue.id}),o.success({title:"VoiceQueue properly deleted!",msg:(g.voiceQueue.name||"voiceQueue")+" has been deleted!"}),v(g.voiceQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","voiceQueues","voiceQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditVoiceQueueDialogController",e)}(),function(){"use strict";function e(e,l,a,d,n,t,i,s,o,r){var c=this;function m(){return l(function(t,n){return l(function(n,t){return d.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],o.hasRole("admin")?e:c.section?c.section.autoAssociation?e:l(function(n,t){return d.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:o.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),l(function(n,t){return d.voiceQueue.getAgents({id:c.voiceQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserVoiceQueue?"penalty "+e.UserVoiceQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=o.getCurrentUser(),c.voiceQueue=n,c.crudPermissions=r,c.penalty=0,c.realtime=i,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return o.hasRole("admin")?m().catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):l(function(t,n){d.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceWith(c.selectedItems,c.startingSelectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});return(t=e,l(function(e,n){_.isEmpty(t)?e():d.voiceQueue.removeAgents({id:c.voiceQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return r=n,l(function(e,n){if(_.isEmpty(r))e();else{for(var t=[],a=_.groupBy(r,"penalty"),i=0;i<Object.keys(a).length;i++){var s=Object.keys(a)[i],o=_.filter(r,["penalty",s]);t.push(d.voiceQueue.addAgents({id:c.voiceQueue.id,ids:_.map(o,"id"),penalty:_.trim(s,"penalty "),realtime:c.realtime||!1}).$promise)}l.all(t).then(function(){e()}).catch(function(e){n(e)})}});var r}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),a.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("VOICE.ALL_AGENTS"),labelSelected:s.instant("VOICE.SELECTED_AGENTS"),transferCallback:function(e,n){n?e.forEach(function(e){e.penalty=void 0}):e.forEach(function(e){e.penalty="penalty "+c.penalty});var t=_.xorWith(c.startingSelectedItems,c.selectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","voiceQueue","voiceQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.voice").controller("VoiceQueueagentaddController",e)}(),function(){"use strict";function e(e,i,a,s,n,t,o,r){var l=this;function d(){return i(function(t,n){return i(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:i(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),i(function(n,t){return s.voiceQueue.getTeams({id:l.voiceQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.voiceQueue=n,l.crudPermissions=r,l.penalty=0,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"penalty",labelAll:t.instant("VOICE.ALL_TEAMS"),labelSelected:t.instant("VOICE.SELECTED_TEAMS"),transferCallback:function(e,n){n?e.forEach(function(e){e.penalty=void 0}):e.forEach(function(e){e.penalty="penalty "+l.penalty});var t=_.xorWith(l.startingSelectedItems,l.selectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):i(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceWith(l.selectedItems,l.startingSelectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});return(t=e,i(function(e,n){_.isEmpty(t)?e():s.voiceQueue.removeTeams({id:l.voiceQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return a=n,i(function(e,n){if(!_.isEmpty(a)){var t=_.map(a,function(e){return{id:e.id,penalty:_.trim(e.penalty,"penalty ")}});return s.voiceQueue.addTeams({id:l.voiceQueue.id,teams:t}).$promise.then(function(){e()}).catch(function(e){n(e)})}e()});var a}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),a.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","voiceQueue","$translate","Auth","crudPermissions"],angular.module("app.voice").controller("VoiceQueueteamaddController",e)}(),function(){"use strict";function e(t,e,a,i,s,n,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=n,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.voiceQueue=c||t.params.voiceQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=t.params.tab||0,u.teamadddialog=function(e,n){a.show({controller:"VoiceQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/teamadd/teamadd.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:u.voiceQueues?u.voiceQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){a.show({controller:"VoiceQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:u.voiceQueues?u.voiceQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.gotogoto=function(e,n){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:411}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.voice.realtime.queues",{}):l.info({title:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.voice.realtime.queues",{})}},u.alert=l.info,u.gotoVoiceQueues=function(){t.go("app.voice.voiceQueues",{},{reload:"app.voice.voiceQueues"})},u.saveVoiceQueue=function(){r.voiceQueue.update({id:u.voiceQueue.id},u.voiceQueue).$promise.then(function(){l.success({title:"VoiceQueue updated!",msg:u.voiceQueue.name?u.voiceQueue.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.voiceMusicOnHold.get({fields:"id,name",nolimit:"true"}).$promise.then(function(e){u.musiconholds=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_MUSICONHOLDS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.voiceMusicOnHold.get({fields:"id,name",nolimit:"true"}).$promise.then(function(e){u.musiconholds=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:407}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?void 0:r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.musiconholds,{id:e.resourceId})}),t=null;if(u.voiceQueue&&(t=_.find(u.musiconholds,{name:u.voiceQueue.musiconhold})),t&&!_.some(n,["id",t.id])){var a=_.find(u.musiconholds,{id:t.id});a.canSelect=!1,n.push(a)}u.musiconholds=n}):r.voiceMusicOnHold.get({fields:"id,name",nolimit:"true",defaultEntry:1}).$promise.then(function(e){u.musiconholds=e.rows||[]})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmusiconholds",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.sound.get({fields:"id,name,save_name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.sounds=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_SOUNDS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.sound.get({fields:"id,name,save_name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.sounds=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1007}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.sounds,{id:e.resourceId})});u.sounds.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),u.sounds=n})}else u.sounds=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){u.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){u.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.pauses,{id:e.resourceId})});u.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),u.pauses=n})}else u.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","voiceQueue","userProfileSection"],angular.module("app.voice").controller("VoiceQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.voiceQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="voiceQueues",f.listOrder="",f.listOrderAsc=null,f.selectedVoiceQueues=[],f.query={fields:"createdAt,updatedAt,id,name,type,strategy,timeout,maxlen,retry,wrapuptime,weight,joinempty,leavewhenempty,musiconhold,announce,description,periodic_announce,queue_reporthold,queue_youarenext,queue_thereare,queue_callswaiting,queue_holdtime,queue_minutes,queue_minute,queue_seconds,queue_thankyou,announce_frequency,min_announce_frequency,periodic_announce_frequency,random_periodic_announce,announce_holdtime,announce_position,announce_position_limit,reportholdtime,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,servicelevel,mandatoryDisposition,mandatoryDispositionPauseId",type:"inbound",sort:"-updatedAt",channel:"voice",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Ringall",value:"'ringall'"},{option:"Round Robin Memory",value:"'rrmemory'"},{option:"Least Recent",value:"'leastrecent'"},{option:"Fewest Calls",value:"'fewestcalls'"},{option:"Random",value:"'random'"},{option:"Linear",value:"'linear'"},{option:"Weight Random",value:"'wrandom'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayjoinempty=_.keyBy([{option:"no",value:"'no'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'no'"},{option:"yes",value:"'yes'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'yes'"},{option:"strict",value:"'strict'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'strict'"},{option:"loose",value:"'loose'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'loose'"},{option:"paused",value:"'paused'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'paused'"},{option:"penalty",value:"'penalty'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'penalty'"},{option:"inuse",value:"'inuse'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'inuse'"},{option:"ringing",value:"'ringing'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'ringing'"},{option:"unavailable",value:"'unavailable'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'unavailable'"},{option:"invalid",value:"'invalid'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'invalid'"},{option:"unknown",value:"'unknown'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'unknown'"},{option:"wrapup",value:"'wrapup'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'wrapup'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayleavewhenempty=_.keyBy([{option:"no",value:"'no'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'no'"},{option:"yes",value:"'yes'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'yes'"},{option:"strict",value:"'strict'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'strict'"},{option:"loose",value:"'loose'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'loose'"},{option:"paused",value:"'paused'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'paused'"},{option:"penalty",value:"'penalty'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'penalty'"},{option:"inuse",value:"'inuse'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'inuse'"},{option:"ringing",value:"'ringing'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'ringing'"},{option:"unavailable",value:"'unavailable'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'unavailable'"},{option:"invalid",value:"'invalid'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'invalid'"},{option:"unknown",value:"'unknown'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'unknown'"},{option:"wrapup",value:"'wrapup'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'wrapup'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayrandom_periodic_announce=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayannounce_holdtime=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Once",value:"'once'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayannounce_position=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Limit",value:"'limit'"},{option:"More",value:"'more'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayreportholdtime=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayautopause=_.keyBy([{option:"Yes",value:"'all'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayringinuse=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraytimeoutrestart=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraymonitor_format=_.keyBy([{option:"Inactive",value:"''"},{option:"wav",value:"'wav'"},{option:"wav49",value:"'wav49'"},{option:"gsm",value:"'gsm'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysetinterfacevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysetqueuevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysetqueueentryvar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.voice.voiceQueues.edit",{id:e.id,voiceQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"VoiceQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:f.voiceQueues?f.voiceQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"VoiceQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:f.voiceQueues?f.voiceQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("voiceQueue")+"?").htmlContent("<b>"+(e.name||"voiceQueue")+"</b> will be deleted.").ariaLabel("delete voiceQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:411}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.voice.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.voice.realtime.queues",{})}},f.success=E,f.getVoiceQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="VoiceQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditVoiceQueue=function(e,n){i.show({controller:"CreateOrEditVoiceQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceQueue:n,voiceQueues:f.voiceQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteVoiceQueue=y,f.exportSelectedVoiceQueues=function(){var e=angular.copy(f.selectedVoiceQueues);return f.selectedVoiceQueues=[],e},f.deleteSelectedVoiceQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected voiceQueues?").htmlContent("<b>"+f.selectedVoiceQueues.length+" selected</b> will be deleted.").ariaLabel("delete VoiceQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedVoiceQueues.forEach(function(e){y(e)}),f.selectedVoiceQueues=[]})},f.deselectVoiceQueues=function(){f.selectedVoiceQueues=[]},f.selectAllVoiceQueues=function(){f.selectedVoiceQueues=f.voiceQueues.rows};var b=!0,A=1;function E(e){f.voiceQueues=e||{count:0,rows:[]}}function y(e){m.voiceQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.voiceQueues.rows,{id:e.id}),f.voiceQueues.count-=1,f.voiceQueues.rows.length||f.getVoiceQueues(),p.success({title:_.startCase("VoiceQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getVoiceQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","voiceQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("VoiceQueuesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_VOICERECORDING",g.voiceRecording=angular.copy(l),g.voiceRecordings=r,g.newVoiceRecording=!1,g.voiceRecording||(g.voiceRecording={},g.title="VOICE.NEW_VOICERECORDING",g.newVoiceRecording=!0),g.addNewVoiceRecording=function(){g.errors=[],d.voiceRecording.save(g.voiceRecording).$promise.then(function(e){g.voiceRecordings.unshift(e.toJSON()),o.success({title:"VoiceRecording properly created",msg:g.voiceRecording.name?g.voiceRecording.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceRecording.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveVoiceRecording=function(){g.errors=[],d.voiceRecording.update({id:g.voiceRecording.id},g.voiceRecording).$promise.then(function(e){var n=_.find(g.voiceRecordings,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"VoiceRecording properly saved!",msg:g.voiceRecording.name?g.voiceRecording.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceRecording.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceRecording.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteVoiceRecording=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The voiceRecording will be deleted.").ariaLabel("Delete VoiceRecording").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceRecording.delete({id:g.voiceRecording.id}).$promise.then(function(){_.remove(g.voiceRecordings,{id:g.voiceRecording.id}),o.success({title:"VoiceRecording properly deleted!",msg:(g.voiceRecording.name||"voiceRecording")+" has been deleted!"}),v(g.voiceRecording)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceRecording.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceRecording.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","voiceRecordings","voiceRecording","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditVoiceRecordingDialogController",e)}(),function(){"use strict";function e(e,n){var t=this;t.voiceRecording={},t.init=function(e){t.voiceRecording=e}}e.$inject=["api","toasty"],angular.module("app.voice").controller("VoiceRecordingSentimentStatisticsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=s,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=n.protocol()+"://"+n.host(),p.voiceRecording=c||e.params.voiceRecording||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=e.params.tab||0,p.alert=l.info,p.gotoVoiceRecordings=function(){e.go("app.voice.voiceRecordings",{},{reload:"app.voice.voiceRecordings"})},p.saveVoiceRecording=function(){r.voiceRecording.update({id:p.voiceRecording.id},p.voiceRecording).$promise.then(function(){l.success({title:"VoiceRecording updated!",msg:p.voiceRecording.name?p.voiceRecording.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceRecording",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","voiceRecording","userProfile","userProfileSection"],angular.module("app.voice").controller("VoiceRecordingController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,l,r,d,c,m,u,p,g,v,h,f){var b=this;function A(n,e){return m.voiceRecording.runTranscribe({id:n.id,runSentiment:!1}).$promise.then(function(e){p.success({title:l.instant("VOICE.RUNTRANSCRIBE_VOICERECORDING"),msg:l.instant("VOICE.RUNTRANSCRIBE_VOICERECORDING")+" succeded!"}),n.transcribeStatus=e.transcribeStatus}).catch(function(e){p.error({title:l.instant("VOICE.RUNTRANSCRIBE_VOICERECORDING"),msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})}function E(n,e){return m.voiceRecording.runTranscribe({id:n.id,runSentiment:!0}).$promise.then(function(e){p.success({title:l.instant("VOICE.RUNTRANSCRIBESENTIMENT_VOICERECORDING"),msg:l.instant("VOICE.RUNTRANSCRIBESENTIMENT_VOICERECORDING")+" succeded!"}),n.transcribeStatus=e.transcribeStatus}).catch(function(e){p.error({title:l.instant("VOICE.RUNTRANSCRIBESENTIMENT_VOICERECORDING"),msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})}function y(e,n){return m.voiceRecording.runTranscribe({id:e.id,runSentiment:!0}).$promise.then(function(e){p.success({title:l.instant("VOICE.RUNSENTIMENT_VOICERECORDING"),msg:l.instant("VOICE.RUNSENTIMENT_VOICERECORDING")+" succeded!"})}).catch(function(e){p.error({title:l.instant("VOICE.RUNSENTIMENT_VOICERECORDING"),msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})}b.license=v,b.setting=h,b.currentUser=g.getCurrentUser(),b.voiceRecordings=r||{count:0,rows:[]},b.userProfile=d,b.userProfileSection=c&&1==c.count?c.rows[0]:null,b.crudPermissions=g.parseCrudPermissions(b.userProfileSection?b.userProfileSection.crudPermissions:null),b.table="voiceRecordings",b.listOrder="",b.listOrderAsc=null,b.selectedVoiceRecordings=[],b.query={fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,membername,rating,audio,userDisposition,userSecondDisposition,userThirdDisposition,transcribeStatus,fileText,failureReason,sentiment,sPositive,sNegative,sNeutral,sMixed",sort:"-createdAt",createdAt:"@msUtils.firstLastDayMonth()",limit:10,page:1},b.query.createdAt=u.firstLastDayMonth(),b.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE_RANGE"}],b.editstate=function(e,n){t.go("app.voice.voiceRecordings.edit",{id:e.id,voiceRecording:e,crudPermissions:b.crudPermissions})},b.runtranscriberuntranscribesentiment=A,b.runtranscribesentimentruntranscribesentiment=E,b.runsentimentruntranscribesentiment=y,b.downloadtranscribefile2=function(s,e){var t=!1,n=_.isNil(s.format)?s.value.substring(s.value.lastIndexOf(".")):s.format;t=".mp4"===n;-1<s.value.lastIndexOf("/")?s.value.substring(s.value.lastIndexOf("/")+1):-1<s.value.lastIndexOf("\\")?s.value.substring(s.value.lastIndexOf("\\")+1):s.value;return m.voiceRecording.downloadTranscribe({id:s.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s.uniqueid+".txt";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else"404"===String(e.status)&&!1===t?p.info({title:l.instant("VOICE.CANT_DOWNLOAD_THIS_FILE"),msg:l.instant("VOICE.WRONG_EXTENSION")}):"404"===String(e.status)?p.info({title:l.instant("VOICE.CANT_DOWNLOAD_THIS_FILE"),msg:l.instant("VOICE.FILE_NOT_FOUND")}):p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.downloadfile2=function(r,e){var t=!1,n=_.isNil(r.format)?r.value.substring(r.value.lastIndexOf(".")):r.format;t=".mp4"===n;-1<r.value.lastIndexOf("/")?r.value.substring(r.value.lastIndexOf("/")+1):-1<r.value.lastIndexOf("\\")?r.value.substring(r.value.lastIndexOf("\\")+1):r.value;return m.voiceRecording.download({id:r.id}).$promise.then(function(e){var n,t,a=[e.buffer],i="download",s=new Blob(a,{type:e.type});n=r.value,t=-1<n.lastIndexOf("/")?n.substring(n.lastIndexOf("/")+1):-1<n.lastIndexOf("\\")?n.substring(n.lastIndexOf("\\")+1):n,i=(t=t.substring(0,t.lastIndexOf(".")))+r.format;var o=window.document.createElement("a");o.setAttribute("href",URL.createObjectURL(s)),o.setAttribute("download",i),document.body.appendChild(o),o.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else"404"===String(e.status)&&!1===t?p.info({title:l.instant("VOICE.CANT_DOWNLOAD_THIS_FILE"),msg:l.instant("VOICE.WRONG_EXTENSION")}):"404"===String(e.status)?p.info({title:l.instant("VOICE.CANT_DOWNLOAD_THIS_FILE"),msg:l.instant("VOICE.FILE_NOT_FOUND")}):p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("voiceRecording")+"?").htmlContent("<b>"+(e.name||"voiceRecording")+"</b> will be deleted.").ariaLabel("delete voiceRecording").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){C(e)},function(){console.log("CANCEL")})},b.success=I,b.getVoiceRecordings=function(){b.query.offset=(b.query.page-1)*b.query.limit,g.hasRole("admin")?b.promise=m.voiceRecording.get(b.query,I).$promise:(b.query.id=b.userProfile.id,b.query.section="VoiceRecordings",b.promise=m.userProfile.getResources(b.query,I).$promise)},b.createOrEditVoiceRecording=function(e,n){i.show({controller:"CreateOrEditVoiceRecordingDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceRecordings/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceRecording:n,voiceRecordings:b.voiceRecordings.rows,license:b.license,setting:b.setting,crudPermissions:b.crudPermissions}})},b.deleteVoiceRecording=C,b.exportSelectedVoiceRecordings=function(){var e=angular.copy(b.selectedVoiceRecordings);b.selectedVoiceRecordings=[],b.userProfile.privacyEnabled&&_.forEach(e,function(e){e.calleridnum=f.mask(e.calleridnum),e.exten=f.mask(e.exten),e.connectedlinenum=f.mask(e.connectedlinenum),e.membername=f.mask(e.membername)});return e},b.deleteSelectedVoiceRecordings=function(e){var n=i.confirm().title("Are you sure want to delete the selected voiceRecordings?").htmlContent("<b>"+b.selectedVoiceRecordings.length+" selected</b> will be deleted.").ariaLabel("delete VoiceRecordings").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){b.selectedVoiceRecordings.forEach(function(e){C(e)}),b.selectedVoiceRecordings=[]})},b.deselectVoiceRecordings=function(){b.selectedVoiceRecordings=[]},b.selectAllVoiceRecordings=function(){b.selectedVoiceRecordings=b.voiceRecordings.rows},b.runtranscribeSelectedVoiceRecordings=function(n){b.selectedVoiceRecordings.forEach(function(e){A(e,n)}),b.selectedVoiceRecordings=[]},b.runtranscribesentimentSelectedVoiceRecordings=function(n){b.selectedVoiceRecordings.forEach(function(e){E(e,n)}),b.selectedVoiceRecordings=[]},b.runsentimentSelectedVoiceRecordings=function(n){b.selectedVoiceRecordings.forEach(function(e){y(e,n)}),b.selectedVoiceRecordings=[]};var S=!0,T=1;function I(e){b.voiceRecordings=e||{count:0,rows:[]}}function C(e){m.voiceRecording.delete({id:e.id}).$promise.then(function(){_.remove(b.voiceRecordings.rows,{id:e.id}),b.voiceRecordings.count-=1,b.voiceRecordings.rows.length||b.getVoiceRecordings(),p.success({title:_.startCase("VoiceRecording")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){b.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceRecording"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceRecording",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){S?o(function(){S=!1}):(n||(T=b.query.page),e!==n&&(b.query.page=1),e||(b.query.page=T),b.getVoiceRecordings())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","voiceRecordings","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting","privacyManager"],angular.module("app.voice").controller("VoiceRecordingsController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c,m){var u=this,p=["loggedIn","available","waiting","paused"],g=n(function(){},999);u.currentUser=c.getCurrentUser(),u.queues=s,u.userProfileSection=d&&1==d.count?d.rows[0]:null,u.crudPermissions=c.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.query={id:c.isUser()?u.currentUser.id:void 0,section:c.isUser()?"WhatsappQueues":void 0,channel:"whatsapp",sort:"name",limit:10,page:1},u.getQueues=function(){u.query.offset=(u.query.page-1)*u.query.limit,o.realtime.getQueues(u.query).$promise.then(function(e){u.queues=e}).catch(function(e){l.error({title:i.instant("WHATSAPP.WHATSAPPQUEUES"),msg:e.status?JSON.stringify(e.data):e.toString()})})},u.editQueue=function(e,n){t.show({controller:"CreateOrEditWhatsappQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappQueue:n,whatsappQueues:u.queues.rows,license:null,setting:null,crudPermissions:u.crudPermissions}})},u.addAgent=function(e,n){t.show({controller:"WhatsappQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappQueue:n,whatsappQueues:u.queues.rows,realtime:!1,crudPermissions:u.crudPermissions}})},r.on("whatsapp_queue:save",function(e){var n=_.find(u.queues.rows,["id",e.id]);n&&_.merge(n,_.pick(e,p))}),r.on("userWhatsappQueue:save",function(e){var n=_.find(u.queues.rows,["id",e.WhatsappQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),r.on("userWhatsappQueue:remove",function(e){var n=_.find(u.queues.rows,["id",e.WhatsappQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),r.on("user:update",function(t){u.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&m.updateQueue(t,e,n,"whatsapp")})}),e.$on("$destroy",function(){r.removeAllListeners("whatsapp_queue:save"),r.removeAllListeners("userWhatsappQueue:remove"),r.removeAllListeners("userWhatsappQueue:save"),r.removeAllListeners("user:update"),g&&n.cancel(g)})}e.$inject=["$scope","$mdDialog","$document","$interval","$translate","queues","api","socket","toasty","userProfileSection","Auth","realtimeManager"],angular.module("app.whatsapp").controller("QueuesWhatsappRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){return{status:{registered:"green-300-fg icon-checkbox-marked-circle",unregistered:"red-300-fg icon-close-circle",lagged:"red-300-fg icon-close-circle",reachable:"green-300-fg icon-checkbox-marked-circle",unreachable:"red-300-fg icon-close-circle",unknown:"grey-fg icon-minus-circle"},state:{unknown:"grey-fg icon-phone-hangup",not_inuse:"green-300-fg icon-phone-hangup",inuse:"red-300-fg icon-phone-in-talk",busy:"red-300-fg icon-phone-locked",invalid:"grey-fg icon-phone-hangup",unavailable:"grey-fg icon-phone-hangup",ringing:"blue-300-fg icon-phone-incoming",ringinuse:"blue-300-fg icon-phone-incoming",onhold:"blue-300-fg icon-phone-paused"},channelStatus:{ring:"blue-300-fg icon-phone-incoming",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"},channelStatusOut:{ring:"blue-300-fg icon-phone-outgoing",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"}}})}(),function(){"use strict";function e(e,t,n){switch(this.selectedTab=0,t.current.name){case"app.whatsapp.realtime.agents":this.selectedTab=0;break;case"app.whatsapp.realtime.queues":this.selectedTab=1;break;default:this.selectedTab=0,t.go("app.whatsapp.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.whatsapp.realtime.agents");break;case 1:t.go("app.whatsapp.realtime.queues");break;default:t.go("app.whatsapp.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.whatsapp").controller("WhatsappRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(){"twilio"===g.whatsappAccount.type&&(g.whatsappAccount.baseUrl=null)}function h(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="WHATSAPP.EDIT_WHATSAPPACCOUNT",g.whatsappAccount=angular.copy(l),g.whatsappAccounts=r,g.newWhatsappAccount=!1,g.whatsappAccount||(g.whatsappAccount={remote:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():""),type:"twilio",notificationSound:!0,queueTransferTimeout:300,waitForTheAssignedAgent:10,agentTransferTimeout:300},g.title="WHATSAPP.NEW_WHATSAPPACCOUNT",g.newWhatsappAccount=!0),n.params.id&&(g.whatsappAccount.WhatsappAccountId=n.params.id),g.addNewWhatsappAccount=function(){g.errors=[],v(),d.whatsappAccount.save(g.whatsappAccount).$promise.then(function(e){g.whatsappAccounts.unshift(e.toJSON()),o.success({title:"WhatsappAccount properly created",msg:g.whatsappAccount.name?g.whatsappAccount.name+" has been created!":""}),h(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.whatsappAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveWhatsappAccount=function(){g.errors=[],v(),d.whatsappAccount.update({id:g.whatsappAccount.id},g.whatsappAccount).$promise.then(function(e){var n=_.find(g.whatsappAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"WhatsappAccount properly saved!",msg:g.whatsappAccount.name?g.whatsappAccount.name+" has been saved!":""}),h(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.whatsappAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteWhatsappAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The whatsappAccount will be deleted.").ariaLabel("Delete WhatsappAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.whatsappAccount.delete({id:g.whatsappAccount.id}).$promise.then(function(){_.remove(g.whatsappAccounts,{id:g.whatsappAccount.id}),o.success({title:"WhatsappAccount properly deleted!",msg:(g.whatsappAccount.name||"whatsappAccount")+" has been deleted!"}),h(g.whatsappAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.whatsappAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=h,c.hasRole("admin")?d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.lists,{id:e.resourceId})}),t=null;if(g.whatsappAccount&&(t=_.find(g.lists,{id:Number(g.whatsappAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.lists,{id:t.id});a.canSelect=!1,n.push(a)}g.lists=n})}else{var t=[],a=null;g.whatsappAccount&&(a=_.find(g.lists,{id:Number(g.whatsappAccount.ListId)}));for(var i=0;i<g.lists.length;i++)a&&g.lists[i].id===a.id&&(g.lists[i].canSelect=!1,t.push(g.lists[i]));g.lists=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){g.pauses=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){g.pauses=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.pauses,{id:e.resourceId})});g.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),g.pauses=n})}else g.pauses=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","whatsappAccounts","whatsappAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.whatsapp").controller("CreateOrEditWhatsappAccountDialogController",e)}(),function(){"use strict";function e(o,i,a,s,e){var r=this;function n(e,n){if(r.whatsappAccountApps.rows.length){var t=r.whatsappAccountApps.rows[n]?r.whatsappAccountApps.rows[n]:r.whatsappAccountApps.rows[0];i.show({controller:"EditWhatsappAccountApp"+(t.appType||t.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/"+(t.appType||t.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappAccountApp:t,whatsappAccount:r.whatsappAccount,crudPermissions:r.crudPermissions}}).then(function(e){e&&(e.id?r.whatsappAccountApps.rows[n]=e:r.whatsappAccountApps.rows.splice(n,0,e),l())}).catch(function(e){e&&s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function l(){for(var e=1,n=[],t=0;t<r.whatsappAccountApps.rows.length;t++,0){var a=r.whatsappAccountApps.rows[t],i=[],s=[];a.intervals="*,*,*,*"!==a.interval?[a.interval]:a.IntervalId?_.map(_.filter(r.intervals.rows,{IntervalId:a.IntervalId}),"interval"):[],a.context=r.whatsappAccount.context,a.exten=r.whatsappAccount.exten,a.type&&(a.type=a.type.toLowerCase()),a.priority=i.length?_.last(i).priority+1:e,e=(s.length?_.last(s).priority:a.priority)+1,n=_.concat(n,i,[a],s)}o.whatsappAccount.addApplications({id:r.whatsappAccount.id},_.sortBy(n,"priority")).$promise.then(function(e){r.whatsappAccountApps.rows=e.rows}).catch(function(e){console.error(e)})}function t(e){r.whatsappAccountApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.whatsappAccount={},r.whatsappAccountApps={count:0,rows:[]},r.selectedWhatsappAccountApps=[],r.crudPermissions,r.query={sort:"priority"},r.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"noop",appType:"noop",type:"noop",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,fields:[{title:"Value",name:"value",type:"text",param:0}]},{app:"system",appType:"system",type:"system",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,extraApi:[{name:"variables",field:{name:"variable",key:"name"},route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1012}}],fields:[{title:"Command",name:"command",type:"text",required:!0,param:0},{title:"Variable",name:"variable",type:"apiselect",values:"variables",value:"variable.name",option:"variable.name",defaultValues:[{value:"''",option:"None"}],defaultValue:"''",param:1}]},{app:"gotop",appType:"gotop",type:"goto",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Priority",name:"priority",type:"number",required:!0,min:0,param:0}]},{app:"gotoif",appType:"gotoif",type:"gotoif",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Condition",name:"condition",type:"text",required:!0,param:0},{title:"truepriority",name:"truepriority",type:"number",min:1,required:!0,param:1},{title:"falsepriority",name:"falsepriority",type:"number",min:1,required:!0,param:2}]},{app:"queue",appType:"queue",foreignKey:"WhatsappQueueId",type:"queue",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"queues",field:{name:"queue",key:"name"},route:"whatsappQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0},permissions:{section:2102}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",defaultValue:300,required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:300,param:1}]},{app:"agent",appType:"agent",type:"agent",foreignKey:"UserId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"agents",field:{name:"agent",key:"name"},route:"user",filters:{fields:"id,name",sort:"name",nolimit:!0,role:"agent"},permissions:{section:202}}],fields:[{title:"Agent",name:"agent",type:"apiselect",values:"agents",value:"agent.name",option:"agent.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:30,param:1}]},{app:"autoreply",appType:"autoreply",type:"autoreply",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"times",name:"times",type:"select",defaultValue:"1",values:[{option:"One Time",value:"2"},{option:"Always",value:"0"},{option:"First Message",value:"1"}],required:!0,param:0},{title:"Text",name:"text",type:"textarea",required:!0,param:1}]},{app:"close",appType:"close",type:"close",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Disposition",name:"disposition",type:"text",required:!0,param:0}]},{app:"tag",appType:"tag",type:"tag",foreignKey:"TagId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"tags",field:{name:"tag",key:"name"},route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1008}}],fields:[{title:"Tag",name:"tag",type:"apiselect",values:"tags",value:"tag.name",option:"tag.name",required:!0,param:0}]},{app:"dialogflow",appType:"dialogflow",type:"dialogflow",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Key",name:"key",type:"text",required:!0,param:0},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{option:"Danish",value:"'da'"},{option:"English",value:"'en'"},{option:"German",value:"'de'"},{option:"Italian",value:"'it'"},{option:"Spanish",value:"'es'"},{option:"French",value:"'fr'"},{option:"Indonesian",value:"'id'"},{option:"Japanese",value:"'ja'"},{option:"Korean (South Korea)",value:"'ko'"},{option:"Dutch",value:"'nl'"},{option:"Norwegian",value:"'no'"},{option:"Portuguese (European)",value:"'pt'"},{option:"Portuguese (Nrazilian)",value:"'pt-br'"},{option:"Russian",value:"'ru'"},{option:"Swedish",value:"'sv'"},{option:"Thai",value:"'th'"},{option:"Ukrainian",value:"'uk'"},{option:"Chinese (Simplified)",value:"'zh-CN'"},{option:"Chinese (Hong Kong)",value:"'zh-HK'"},{option:"Chinese (Traditional)",value:"'zh-TW'"}],required:!0,param:1},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,required:!1,param:2,help:!0}]},{app:"dialogflowV2",appType:"dialogflowv2",type:"dialogflowv2",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"ProjectID",name:"projectId",type:"text",required:!0,param:0},{title:"ClientEmail",name:"clientEmail",type:"text",required:!0,param:1},{title:"PrivateKey",name:"privateKey",type:"textarea",required:!0,param:2},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{value:"'zh-HK'",option:"Chinese (Cantonese)"},{value:"'zh-CN'",option:"Chinese (Simplified)"},{value:"'zh-TW'",option:"Chinese (Traditional)"},{value:"'da'",option:"Danish"},{value:"'nl'",option:"Dutch"},{value:"'en'",option:"English"},{value:"'en-AU'",option:"English (Australia)"},{value:"'en-CA'",option:"English (Canada)"},{value:"'en-GB'",option:"English (Great Britain)"},{value:"'en-IN'",option:"English (India)"},{value:"'en-US'",option:"English (US)"},{value:"'fr'",option:"French"},{value:"'fr-CA'",option:"French (Canada)"},{value:"'fr-FR'",option:"'France (France)"},{value:"'de'",option:"German"},{value:"'hi'",option:"Hindi"},{value:"'id'",option:"Indonesian"},{value:"'it'",option:"Italian"},{value:"'ja'",option:"Japanese"},{value:"'ko'",option:"Korean"},{value:"'no'",option:"Norwegian"},{value:"'pl'",option:"Polish"},{value:"'pt-BR'",option:"Portuguese (Brazil)"},{value:"'pt-PT'",option:"Portuguese (Portugal)"},{value:"'ru'",option:"Russian"},{value:"'es'",option:"Spanish"},{value:"'es-419'",option:"Spanish (Latin America)"},{value:"'es-ES'",option:"Spanish (Spain)"},{value:"'sw'",option:"Swedish"},{value:"'th'",option:"Thai"},{value:"'tr'",option:"Turkish"},{value:"'uk'",option:"Ukrainian"}],required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,param:4,help:!0}]},{app:"amazonlex",appType:"amazonlex",type:"amazonlex",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"accesskeyid",name:"accesskeyid",type:"text",required:!0,param:0},{title:"secretaccesskey",name:"secretaccesskey",type:"text",required:!0,param:1},{title:"lexregion",name:"lexregion",type:"select",defaultValue:"'us-east-1'",values:[{option:"US East (N. Virginia)",value:"'us-east-1'"},{option:"US West (Oregon)",value:"'us-west-2'"},{option:"EU (Ireland)",value:"'eu-west-1'"},{option:"Asia Pacific (Sydney)",value:"'ap-southeast-2'"}],required:!0,param:2},{title:"botname",name:"botname",type:"text",required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,required:!1,param:4,help:!0}]}],["app"]),{isApp:!1}),r.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},r.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){n(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e,n){r.whatsappAccount=e,r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},r.applications.disabled=!r.crudPermissions.canEdit,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getWhatsappAccountApps(),r.getIntervals()},r.deleteConfirm=function(e,n,t){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.whatsappAccountApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})},r.getWhatsappAccountApps=function(){r.promise=o.whatsappAccount.getApplications(r.query,t).$promise},r.editWhatsappAccountApp=n,r.editInterval=function(e,n){if(r.whatsappAccountApps.rows.length){var t=r.whatsappAccountApps.rows[n]?r.whatsappAccountApps.rows[n]:r.whatsappAccountApps.rows[0];i.show({controller:"EditWhatsappAccountAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:[],crudPermissions:r.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,l())})}},r.deleteWhatsappAccountApp=function(e){_.remove(r.whatsappAccountApps.rows,{id:e.id}),l(),s.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedWhatsappAccountApps=function(e){var n=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+r.selectedWhatsappAccountApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){r.selectedWhatsappAccountApps.forEach(function(e){_.remove(r.whatsappAccountApps.rows,{id:e.id})}),r.selectedWhatsappAccountApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return o.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){r.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.whatsapp").controller("WhatsappAccountActionsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.whatsappAccount.getAgents({id:c.whatsappAccount.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserWhatsappAccount?"penalty "+e.UserWhatsappAccount.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.whatsappAccount=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.whatsappAccount.removeAgents({id:c.whatsappAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.whatsappAccount.addAgents({id:c.whatsappAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("WHATSAPP.ALL_AGENTS"),labelSelected:r.instant("WHATSAPP.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","whatsappAccount","whatsappAccounts","realtime","$translate","Auth","crudPermissions"],angular.module("app.whatsapp").controller("WhatsappAccountagentaddController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.agent=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.agent.appdata)switch(l.agent.appType?l.agent.appType.toLowerCase():l.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.agent.appdata.split(",");l.agent.key=d[0],l.agent.language=d[1],l.agent.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.agent.appdata.split(",");l.agent.projectId=d[0],l.agent.clientEmail=d[1],l.agent.privateKey=d[2],l.agent.language=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.agent.appdata.split(",");l.agent.accesskeyid=d[0],l.agent.secretaccesskey=d[1],l.agent.lexregion=d[2],l.agent.botname=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.agent.appdata.split(",");l.agent.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.agent.text=d.slice(1,d.length).join(",");break;case"message":l.agent.text=l.agent.appdata;break;case"set":l.agent.name=l.agent.appdata.split("=")[0],l.agent.value=l.agent.appdata.split("=")[1];break;case"agi":l.agent.project=l.agent.appdata;break;default:var c=l.agent.appdata.split(",");l.agent.agent=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.agent.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.agent.timeout=30;function m(e){n.hide(e)}l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outbounddial"===l.agent.appType.toLowerCase()&&(l.agent.prefix=l.agent.phone?l.agent.phone.split("$")[0]:void 0,l.agent.callerId=l.agent.callerID?"CALLERID(all)="+l.agent.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outboundDial"===l.agent.appType&&(l.agent.phone=i.cutdigits?(l.agent.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.agent.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.agent.options+="U(xcally-mixmonitor-context)"):l.agent.options=l.agent.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.agents,{name:l.agent.agent});n&&(l.agent.UserId=n.id);if(l.agent.appType&&"custom"===l.agent.appType);else switch((l.agent.app||l.agent.appType).toLowerCase()){case"set":l.agent.appdata=l.agent.name+"="+l.agent.value;break;case"custom":break;default:e[0]=l.agent.agent,e[1]=l.agent.timeout,l.agent.appdata=e.join(",")}m(l.agent)},l.closeDialog=m,o.hasRole("admin")?s.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){l.agents=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){l.agents=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.agents,{id:e.resourceId})}),t=null;if(l.agent&&(t=_.find(l.agents,{name:l.agent.agent})),t&&!_.some(n,["id",t.id])){var a=_.find(l.agents,{id:t.id});a.canSelect=!1,n.push(a)}l.agents=n})}else{var t=[],a=null;l.agent&&(a=_.find(l.agents,{name:l.agent.agent}));for(var i=0;i<l.agents.length;i++)a&&l.agents[i].id===a.id&&(l.agents[i].canSelect=!1,t.push(l.agents[i]));l.agents=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppagentDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.amazonlex=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.amazonlex.appdata)switch(l.amazonlex.appType?l.amazonlex.appType.toLowerCase():l.amazonlex.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.amazonlex.appdata.split(",");l.amazonlex.key=d[0],l.amazonlex.language=d[1],l.amazonlex.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.amazonlex.appdata.split(",");l.amazonlex.projectId=d[0],l.amazonlex.clientEmail=d[1],l.amazonlex.privateKey=d[2],l.amazonlex.language=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=d[0],l.amazonlex.secretaccesskey=d[1],l.amazonlex.lexregion=d[2],l.amazonlex.botname=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.amazonlex.appdata.split(",");l.amazonlex.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.amazonlex.text=d.slice(1,d.length).join(",");break;case"message":l.amazonlex.text=l.amazonlex.appdata;break;case"set":l.amazonlex.name=l.amazonlex.appdata.split("=")[0],l.amazonlex.value=l.amazonlex.appdata.split("=")[1];break;case"agi":l.amazonlex.project=l.amazonlex.appdata;break;default:var c=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.amazonlex.secretaccesskey=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.amazonlex.lexregion=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.amazonlex.botname=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.amazonlex.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.amazonlex.lexregion="us-east-1";function m(e){n.hide(e)}l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outbounddial"===l.amazonlex.appType.toLowerCase()&&(l.amazonlex.prefix=l.amazonlex.phone?l.amazonlex.phone.split("$")[0]:void 0,l.amazonlex.callerId=l.amazonlex.callerID?"CALLERID(all)="+l.amazonlex.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outboundDial"===l.amazonlex.appType&&(l.amazonlex.phone=i.cutdigits?(l.amazonlex.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.amazonlex.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.amazonlex.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.amazonlex.options+="U(xcally-mixmonitor-context)"):l.amazonlex.options=l.amazonlex.options.replace("U(xcally-mixmonitor-context)",""));if(l.amazonlex.appType&&"custom"===l.amazonlex.appType);else switch((l.amazonlex.app||l.amazonlex.appType).toLowerCase()){case"set":l.amazonlex.appdata=l.amazonlex.name+"="+l.amazonlex.value;break;case"custom":break;default:e[0]=l.amazonlex.accesskeyid,e[1]=l.amazonlex.secretaccesskey,e[2]=l.amazonlex.lexregion,e[3]=l.amazonlex.botname,e[4]=l.amazonlex.welcomemessage,l.amazonlex.appdata=e.join(",")}m(l.amazonlex)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppamazonlexDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.autoreply=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.autoreply.appdata)switch(l.autoreply.appType?l.autoreply.appType.toLowerCase():l.autoreply.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.autoreply.appdata.split(",");l.autoreply.key=d[0],l.autoreply.language=d[1],l.autoreply.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.autoreply.appdata.split(",");l.autoreply.projectId=d[0],l.autoreply.clientEmail=d[1],l.autoreply.privateKey=d[2],l.autoreply.language=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.autoreply.appdata.split(",");l.autoreply.accesskeyid=d[0],l.autoreply.secretaccesskey=d[1],l.autoreply.lexregion=d[2],l.autoreply.botname=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.autoreply.appdata.split(",");l.autoreply.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.autoreply.text=d.slice(1,d.length).join(",");break;case"message":l.autoreply.text=l.autoreply.appdata;break;case"set":l.autoreply.name=l.autoreply.appdata.split("=")[0],l.autoreply.value=l.autoreply.appdata.split("=")[1];break;case"agi":l.autoreply.project=l.autoreply.appdata;break;default:var c=l.autoreply.appdata.split(",");l.autoreply.times=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.autoreply.text=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.autoreply.times=1;function m(e){n.hide(e)}l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outbounddial"===l.autoreply.appType.toLowerCase()&&(l.autoreply.prefix=l.autoreply.phone?l.autoreply.phone.split("$")[0]:void 0,l.autoreply.callerId=l.autoreply.callerID?"CALLERID(all)="+l.autoreply.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outboundDial"===l.autoreply.appType&&(l.autoreply.phone=i.cutdigits?(l.autoreply.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.autoreply.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.autoreply.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.autoreply.options+="U(xcally-mixmonitor-context)"):l.autoreply.options=l.autoreply.options.replace("U(xcally-mixmonitor-context)",""));if(l.autoreply.appType&&"custom"===l.autoreply.appType);else switch((l.autoreply.app||l.autoreply.appType).toLowerCase()){case"set":l.autoreply.appdata=l.autoreply.name+"="+l.autoreply.value;break;case"custom":break;default:e[0]=l.autoreply.times,e[1]=l.autoreply.text,l.autoreply.appdata=e.join(",")}m(l.autoreply)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppautoreplyDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.close=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.close.appdata)switch(l.close.appType?l.close.appType.toLowerCase():l.close.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.close.appdata.split(",");l.close.key=d[0],l.close.language=d[1],l.close.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.close.appdata.split(",");l.close.projectId=d[0],l.close.clientEmail=d[1],l.close.privateKey=d[2],l.close.language=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.close.appdata.split(",");l.close.accesskeyid=d[0],l.close.secretaccesskey=d[1],l.close.lexregion=d[2],l.close.botname=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.close.appdata.split(",");l.close.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.close.text=d.slice(1,d.length).join(",");break;case"message":l.close.text=l.close.appdata;break;case"set":l.close.name=l.close.appdata.split("=")[0],l.close.value=l.close.appdata.split("=")[1];break;case"agi":l.close.project=l.close.appdata;break;default:var c=l.close.appdata.split(",");l.close.disposition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outbounddial"===l.close.appType.toLowerCase()&&(l.close.prefix=l.close.phone?l.close.phone.split("$")[0]:void 0,l.close.callerId=l.close.callerID?"CALLERID(all)="+l.close.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outboundDial"===l.close.appType&&(l.close.phone=i.cutdigits?(l.close.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.close.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.close.options+="U(xcally-mixmonitor-context)"):l.close.options=l.close.options.replace("U(xcally-mixmonitor-context)",""));if(l.close.appType&&"custom"===l.close.appType);else switch((l.close.app||l.close.appType).toLowerCase()){case"set":l.close.appdata=l.close.name+"="+l.close.value;break;case"custom":break;default:e[0]=l.close.disposition,l.close.appdata=e.join(",")}m(l.close)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppcloseDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflow=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflow.appdata)switch(l.dialogflow.appType?l.dialogflow.appType.toLowerCase():l.dialogflow.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflow.appdata.split(",");l.dialogflow.key=d[0],l.dialogflow.language=d[1],l.dialogflow.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflow.appdata.split(",");l.dialogflow.projectId=d[0],l.dialogflow.clientEmail=d[1],l.dialogflow.privateKey=d[2],l.dialogflow.language=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflow.appdata.split(",");l.dialogflow.accesskeyid=d[0],l.dialogflow.secretaccesskey=d[1],l.dialogflow.lexregion=d[2],l.dialogflow.botname=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflow.appdata.split(",");l.dialogflow.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflow.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflow.text=l.dialogflow.appdata;break;case"set":l.dialogflow.name=l.dialogflow.appdata.split("=")[0],l.dialogflow.value=l.dialogflow.appdata.split("=")[1];break;case"agi":l.dialogflow.project=l.dialogflow.appdata;break;default:var c=l.dialogflow.appdata.split(",");l.dialogflow.key=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflow.language=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflow.welcomemessage=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}else l.dialogflow.language="en";function m(e){n.hide(e)}l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outbounddial"===l.dialogflow.appType.toLowerCase()&&(l.dialogflow.prefix=l.dialogflow.phone?l.dialogflow.phone.split("$")[0]:void 0,l.dialogflow.callerId=l.dialogflow.callerID?"CALLERID(all)="+l.dialogflow.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outboundDial"===l.dialogflow.appType&&(l.dialogflow.phone=i.cutdigits?(l.dialogflow.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflow.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflow.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflow.options+="U(xcally-mixmonitor-context)"):l.dialogflow.options=l.dialogflow.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflow.appType&&"custom"===l.dialogflow.appType);else switch((l.dialogflow.app||l.dialogflow.appType).toLowerCase()){case"set":l.dialogflow.appdata=l.dialogflow.name+"="+l.dialogflow.value;break;case"custom":break;default:e[0]=l.dialogflow.key,e[1]=l.dialogflow.language,e[2]=l.dialogflow.welcomemessage,l.dialogflow.appdata=e.join(",")}m(l.dialogflow)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppdialogflowDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflowv2=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflowv2.appdata)switch(l.dialogflowv2.appType?l.dialogflowv2.appType.toLowerCase():l.dialogflowv2.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.key=d[0],l.dialogflowv2.language=d[1],l.dialogflowv2.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=d[0],l.dialogflowv2.clientEmail=d[1],l.dialogflowv2.privateKey=d[2],l.dialogflowv2.language=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.accesskeyid=d[0],l.dialogflowv2.secretaccesskey=d[1],l.dialogflowv2.lexregion=d[2],l.dialogflowv2.botname=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflowv2.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflowv2.text=l.dialogflowv2.appdata;break;case"set":l.dialogflowv2.name=l.dialogflowv2.appdata.split("=")[0],l.dialogflowv2.value=l.dialogflowv2.appdata.split("=")[1];break;case"agi":l.dialogflowv2.project=l.dialogflowv2.appdata;break;default:var c=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflowv2.clientEmail=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflowv2.privateKey=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.dialogflowv2.language=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.dialogflowv2.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.dialogflowv2.language="en";function m(e){n.hide(e)}l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outbounddial"===l.dialogflowv2.appType.toLowerCase()&&(l.dialogflowv2.prefix=l.dialogflowv2.phone?l.dialogflowv2.phone.split("$")[0]:void 0,l.dialogflowv2.callerId=l.dialogflowv2.callerID?"CALLERID(all)="+l.dialogflowv2.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outboundDial"===l.dialogflowv2.appType&&(l.dialogflowv2.phone=i.cutdigits?(l.dialogflowv2.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflowv2.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflowv2.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflowv2.options+="U(xcally-mixmonitor-context)"):l.dialogflowv2.options=l.dialogflowv2.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflowv2.appType&&"custom"===l.dialogflowv2.appType);else switch((l.dialogflowv2.app||l.dialogflowv2.appType).toLowerCase()){case"set":l.dialogflowv2.appdata=l.dialogflowv2.name+"="+l.dialogflowv2.value;break;case"custom":break;default:e[0]=l.dialogflowv2.projectId,e[1]=l.dialogflowv2.clientEmail,e[2]=l.dialogflowv2.privateKey,e[3]=l.dialogflowv2.language,e[4]=l.dialogflowv2.welcomemessage,l.dialogflowv2.appdata=e.join(",")}m(l.dialogflowv2)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppdialogflowv2DialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotoif=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotoif.appdata)switch(l.gotoif.appType?l.gotoif.appType.toLowerCase():l.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotoif.appdata.split(",");l.gotoif.key=d[0],l.gotoif.language=d[1],l.gotoif.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotoif.appdata.split(",");l.gotoif.projectId=d[0],l.gotoif.clientEmail=d[1],l.gotoif.privateKey=d[2],l.gotoif.language=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotoif.appdata.split(",");l.gotoif.accesskeyid=d[0],l.gotoif.secretaccesskey=d[1],l.gotoif.lexregion=d[2],l.gotoif.botname=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotoif.appdata.split(",");l.gotoif.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotoif.text=d.slice(1,d.length).join(",");break;case"message":l.gotoif.text=l.gotoif.appdata;break;case"set":l.gotoif.name=l.gotoif.appdata.split("=")[0],l.gotoif.value=l.gotoif.appdata.split("=")[1];break;case"agi":l.gotoif.project=l.gotoif.appdata;break;default:var c=l.gotoif.appdata.split(",");l.gotoif.condition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.gotoif.truepriority=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.gotoif.falsepriority=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}function m(e){n.hide(e)}l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outbounddial"===l.gotoif.appType.toLowerCase()&&(l.gotoif.prefix=l.gotoif.phone?l.gotoif.phone.split("$")[0]:void 0,l.gotoif.callerId=l.gotoif.callerID?"CALLERID(all)="+l.gotoif.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outboundDial"===l.gotoif.appType&&(l.gotoif.phone=i.cutdigits?(l.gotoif.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotoif.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotoif.options+="U(xcally-mixmonitor-context)"):l.gotoif.options=l.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotoif.appType&&"custom"===l.gotoif.appType);else switch((l.gotoif.app||l.gotoif.appType).toLowerCase()){case"set":l.gotoif.appdata=l.gotoif.name+"="+l.gotoif.value;break;case"custom":break;default:e[0]=l.gotoif.condition,e[1]=l.gotoif.truepriority,e[2]=l.gotoif.falsepriority,l.gotoif.appdata=e.join(",")}m(l.gotoif)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppgotoifDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotop.appdata)switch(l.gotop.appType?l.gotop.appType.toLowerCase():l.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotop.appdata.split(",");l.gotop.key=d[0],l.gotop.language=d[1],l.gotop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotop.appdata.split(",");l.gotop.projectId=d[0],l.gotop.clientEmail=d[1],l.gotop.privateKey=d[2],l.gotop.language=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotop.appdata.split(",");l.gotop.accesskeyid=d[0],l.gotop.secretaccesskey=d[1],l.gotop.lexregion=d[2],l.gotop.botname=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotop.appdata.split(",");l.gotop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotop.text=d.slice(1,d.length).join(",");break;case"message":l.gotop.text=l.gotop.appdata;break;case"set":l.gotop.name=l.gotop.appdata.split("=")[0],l.gotop.value=l.gotop.appdata.split("=")[1];break;case"agi":l.gotop.project=l.gotop.appdata;break;default:var c=l.gotop.appdata.split(",");l.gotop.priority=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outbounddial"===l.gotop.appType.toLowerCase()&&(l.gotop.prefix=l.gotop.phone?l.gotop.phone.split("$")[0]:void 0,l.gotop.callerId=l.gotop.callerID?"CALLERID(all)="+l.gotop.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outboundDial"===l.gotop.appType&&(l.gotop.phone=i.cutdigits?(l.gotop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotop.options+="U(xcally-mixmonitor-context)"):l.gotop.options=l.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotop.appType&&"custom"===l.gotop.appType);else switch((l.gotop.app||l.gotop.appType).toLowerCase()){case"set":l.gotop.appdata=l.gotop.name+"="+l.gotop.value;break;case"custom":break;default:e[0]=l.gotop.priority,l.gotop.appdata=e.join(",")}m(l.gotop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppgotopDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom","list"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditWhatsappAccountAppintervalDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.noop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.noop.appdata)switch(l.noop.appType?l.noop.appType.toLowerCase():l.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.noop.appdata.split(",");l.noop.key=d[0],l.noop.language=d[1],l.noop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.noop.appdata.split(",");l.noop.projectId=d[0],l.noop.clientEmail=d[1],l.noop.privateKey=d[2],l.noop.language=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.noop.appdata.split(",");l.noop.accesskeyid=d[0],l.noop.secretaccesskey=d[1],l.noop.lexregion=d[2],l.noop.botname=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.noop.appdata.split(",");l.noop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.noop.text=d.slice(1,d.length).join(",");break;case"message":l.noop.text=l.noop.appdata;break;case"set":l.noop.name=l.noop.appdata.split("=")[0],l.noop.value=l.noop.appdata.split("=")[1];break;case"agi":l.noop.project=l.noop.appdata;break;default:var c=l.noop.appdata.split(",");l.noop.value=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outbounddial"===l.noop.appType.toLowerCase()&&(l.noop.prefix=l.noop.phone?l.noop.phone.split("$")[0]:void 0,l.noop.callerId=l.noop.callerID?"CALLERID(all)="+l.noop.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outboundDial"===l.noop.appType&&(l.noop.phone=i.cutdigits?(l.noop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.noop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.noop.options+="U(xcally-mixmonitor-context)"):l.noop.options=l.noop.options.replace("U(xcally-mixmonitor-context)",""));if(l.noop.appType&&"custom"===l.noop.appType);else switch((l.noop.app||l.noop.appType).toLowerCase()){case"set":l.noop.appdata=l.noop.name+"="+l.noop.value;break;case"custom":break;default:e[0]=l.noop.value,l.noop.appdata=e.join(",")}m(l.noop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppnoopDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.queue=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.queue.appdata)switch(l.queue.appType?l.queue.appType.toLowerCase():l.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.queue.appdata.split(",");l.queue.key=d[0],l.queue.language=d[1],l.queue.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.queue.appdata.split(",");l.queue.projectId=d[0],l.queue.clientEmail=d[1],l.queue.privateKey=d[2],l.queue.language=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.queue.appdata.split(",");l.queue.accesskeyid=d[0],l.queue.secretaccesskey=d[1],l.queue.lexregion=d[2],l.queue.botname=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.queue.appdata.split(",");l.queue.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.queue.text=d.slice(1,d.length).join(",");break;case"message":l.queue.text=l.queue.appdata;break;case"set":l.queue.name=l.queue.appdata.split("=")[0],l.queue.value=l.queue.appdata.split("=")[1];break;case"agi":l.queue.project=l.queue.appdata;break;default:var c=l.queue.appdata.split(",");l.queue.queue=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.queue.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.queue.queue=300,l.queue.timeout=300;function m(e){n.hide(e)}l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outbounddial"===l.queue.appType.toLowerCase()&&(l.queue.prefix=l.queue.phone?l.queue.phone.split("$")[0]:void 0,l.queue.callerId=l.queue.callerID?"CALLERID(all)="+l.queue.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outboundDial"===l.queue.appType&&(l.queue.phone=i.cutdigits?(l.queue.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.queue.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.queue.options+="U(xcally-mixmonitor-context)"):l.queue.options=l.queue.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.queues,{name:l.queue.queue});n&&(l.queue[_.capitalize("whatsapp")+"QueueId"]=n.id);if(l.queue.appType&&"custom"===l.queue.appType);else switch((l.queue.app||l.queue.appType).toLowerCase()){case"set":l.queue.appdata=l.queue.name+"="+l.queue.value;break;case"custom":break;default:e[0]=l.queue.queue,e[1]=l.queue.timeout,l.queue.appdata=e.join(",")}m(l.queue)},l.closeDialog=m,o.hasRole("admin")?s.whatsappQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.whatsappQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:2102}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.queues,{id:e.resourceId})}),t=null;if(l.queue&&(t=_.find(l.queues,{name:l.queue.queue})),t&&!_.some(n,["id",t.id])){var a=_.find(l.queues,{id:t.id});a.canSelect=!1,n.push(a)}l.queues=n})}else{var t=[],a=null;l.queue&&(a=_.find(l.queues,{name:l.queue.queue}));for(var i=0;i<l.queues.length;i++)a&&l.queues[i].id===a.id&&(l.queues[i].canSelect=!1,t.push(l.queues[i]));l.queues=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppqueueDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.system=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.system.appdata)switch(l.system.appType?l.system.appType.toLowerCase():l.system.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.system.appdata.split(",");l.system.key=d[0],l.system.language=d[1],l.system.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.system.appdata.split(",");l.system.projectId=d[0],l.system.clientEmail=d[1],l.system.privateKey=d[2],l.system.language=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.system.appdata.split(",");l.system.accesskeyid=d[0],l.system.secretaccesskey=d[1],l.system.lexregion=d[2],l.system.botname=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.system.appdata.split(",");l.system.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.system.text=d.slice(1,d.length).join(",");break;case"message":l.system.text=l.system.appdata;break;case"set":l.system.name=l.system.appdata.split("=")[0],l.system.value=l.system.appdata.split("=")[1];break;case"agi":l.system.project=l.system.appdata;break;default:var c=l.system.appdata.split(",");l.system.command=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.system.variable=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.system.variable="";function m(e){n.hide(e)}l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outbounddial"===l.system.appType.toLowerCase()&&(l.system.prefix=l.system.phone?l.system.phone.split("$")[0]:void 0,l.system.callerId=l.system.callerID?"CALLERID(all)="+l.system.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outboundDial"===l.system.appType&&(l.system.phone=i.cutdigits?(l.system.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.system.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.system.options+="U(xcally-mixmonitor-context)"):l.system.options=l.system.options.replace("U(xcally-mixmonitor-context)",""));if(l.system.appType&&"custom"===l.system.appType);else switch((l.system.app||l.system.appType).toLowerCase()){case"set":l.system.appdata=l.system.name+"="+l.system.value;break;case"custom":break;default:e[0]=l.system.command,e[1]=l.system.variable,l.system.appdata=e.join(",")}m(l.system)},l.closeDialog=m,o.hasRole("admin")?s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1012}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.variables,{id:e.resourceId})}),t=null;if(l.system&&(t=_.find(l.variables,{name:l.system.variable})),t&&!_.some(n,["id",t.id])){var a=_.find(l.variables,{id:t.id});a.canSelect=!1,n.push(a)}l.variables=n})}else{var t=[],a=null;l.system&&(a=_.find(l.variables,{name:l.system.variable}));for(var i=0;i<l.variables.length;i++)a&&l.variables[i].id===a.id&&(l.variables[i].canSelect=!1,t.push(l.variables[i]));l.variables=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppsystemDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.tag=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.tag.appdata)switch(l.tag.appType?l.tag.appType.toLowerCase():l.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.tag.appdata.split(",");l.tag.key=d[0],l.tag.language=d[1],l.tag.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.tag.appdata.split(",");l.tag.projectId=d[0],l.tag.clientEmail=d[1],l.tag.privateKey=d[2],l.tag.language=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.tag.appdata.split(",");l.tag.accesskeyid=d[0],l.tag.secretaccesskey=d[1],l.tag.lexregion=d[2],l.tag.botname=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.tag.appdata.split(",");l.tag.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.tag.text=d.slice(1,d.length).join(",");break;case"message":l.tag.text=l.tag.appdata;break;case"set":l.tag.name=l.tag.appdata.split("=")[0],l.tag.value=l.tag.appdata.split("=")[1];break;case"agi":l.tag.project=l.tag.appdata;break;default:var c=l.tag.appdata.split(",");l.tag.tag=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outbounddial"===l.tag.appType.toLowerCase()&&(l.tag.prefix=l.tag.phone?l.tag.phone.split("$")[0]:void 0,l.tag.callerId=l.tag.callerID?"CALLERID(all)="+l.tag.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outboundDial"===l.tag.appType&&(l.tag.phone=i.cutdigits?(l.tag.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.tag.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.tag.options+="U(xcally-mixmonitor-context)"):l.tag.options=l.tag.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.tags,{name:l.tag.tag});n&&(l.tag.TagId=n.id);if(l.tag.appType&&"custom"===l.tag.appType);else switch((l.tag.app||l.tag.appType).toLowerCase()){case"set":l.tag.appdata=l.tag.name+"="+l.tag.value;break;case"custom":break;default:e[0]=l.tag.tag,l.tag.appdata=e.join(",")}m(l.tag)},l.closeDialog=m,o.hasRole("admin")?s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1008}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.tags,{id:e.resourceId})}),t=null;if(l.tag&&(t=_.find(l.tags,{name:l.tag.tag})),t&&!_.some(n,["id",t.id])){var a=_.find(l.tags,{id:t.id});a.canSelect=!1,n.push(a)}l.tags=n})}else{var t=[],a=null;l.tag&&(a=_.find(l.tags,{name:l.tag.tag}));for(var i=0;i<l.tags.length;i++)a&&l.tags[i].id===a.id&&(l.tags[i].canSelect=!1,t.push(l.tags[i]));l.tags=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtags",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountApptagDialogController",e)}(),function(){"use strict";function e(e,a,n,t,i,s,o,r,l,d,c){var m=this;function u(e){m.whatsappAccountInteractions=e||{count:0,rows:[]};for(var n=0;n<m.whatsappAccountInteractions.rows.length;n+=1){var t=m.whatsappAccountInteractions.rows[n];v(t),t.Owner.name=h(t)}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.whatsappInteraction.get(m.query,u).$promise}function g(e){d.whatsappInteraction.delete({id:e.id}).$promise.then(function(){_.remove(m.whatsappAccountInteractions.rows,{id:e.id}),m.whatsappAccountInteractions.count-=1,m.whatsappAccountInteractions.rows.length||p(),l.success({title:"Interaction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETwhatsappAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETwhatsappAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(e){e.Contact?e.contactName=(e.Contact.firstName||"")+" "+(e.Contact.lastName||""):e.contactName=i.instant("DASHBOARDS.UNKNOWN")}function h(e){return e.UserId?e.UserId===m.currentUser.id?i.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">":i.instant("DASHBOARDS.NOT_ASSIGNED")}m.currentUser=c.getCurrentUser(),m.whatsappAccount={},m.whatsappAccountInteractions={count:0,rows:[]},m.selectedWhatsappAccountInteractions=[],m.crudPermissions,m.query={read:"null",closed:"null",sort:"-createdAt",includeAll:"true",limit:10,page:1},m.init=function(e,n,t){m.whatsappAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.WhatsappAccountId=m.whatsappAccount.id,m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Subject",column:"subject",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},d.tag.get({sort:"name"}).$promise.then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]})},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interaction #")+e.id||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.whatsappInteractionDownload=function(s,e,n){return d.whatsappInteraction.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="interaction"+s.id,a=new Blob(n,{type:e.type});t="whatsapp-interaction"+s.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getWhatsappAccountInteractions=p,m.createOrEditWhatsappAccountInteraction=function(e,n){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/interactions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappAccount:m.whatsappAccount,interaction:n,interactions:m.whatsappAccountInteractions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.spywhatsappInteraction=function(e,t){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,n){e.vm.init({id:1,channel:"whatsapp",interaction:t,spy:!0},a.$parent.vm.setting)}})},m.openAdvancedSearch=function(){o.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,locals:{fields:m.advancedSearch.fields,color:void 0,storagePath:"whatsapp.whatsappAccounts"},fullscreen:!0}).then(function(e){if(m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply){var n="";n+="||WhatsappAccountId:=$eq["+m.whatsappAccount.id+"]",m.query.search=e.value?e.value+=n:e.value,p()}}).catch(function(e){l.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.exportSelectedWhatsappAccountInteractions=function(){var e=angular.copy(m.selectedWhatsappAccountInteractions);return m.selectedWhatsappAccountInteractions=[],e},m.deleteWhatsappAccountInteraction=g,m.deleteSelectedWhatsappAccountInteractions=function(e){var n=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+m.selectedWhatsappAccountInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedWhatsappAccountInteractions.forEach(function(e){g(e)}),m.selectedWhatsappAccountInteractions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.whatsapp").controller("WhatsappAccountInteractionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=s,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=n.protocol()+"://"+n.host(),p.whatsappAccount=c||e.params.whatsappAccount||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=e.params.tab||0,p.baseUrl=[{name:"US Production",url:"https://us1.whatsapp.api.sinch.com"},{name:"EU Production",url:"https://eu1.whatsapp.api.sinch.com"}],p.agentadddialog=function(e,n){t.show({controller:"WhatsappAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{whatsappAccount:e,whatsappAccounts:p.whatsappAccounts?p.whatsappAccounts.rows:[],crudPermissions:p.crudPermissions,realtime:!1}})},p.alert=l.info,p.gotoWhatsappAccounts=function(){e.go("app.whatsapp.whatsappAccounts",{},{reload:"app.whatsapp.whatsappAccounts"})},p.saveWhatsappAccount=function(){"twilio"===p.whatsappAccount.type&&(p.whatsappAccount.baseUrl=null);r.whatsappAccount.update({id:p.whatsappAccount.id},p.whatsappAccount).$promise.then(function(){l.success({title:"WhatsappAccount updated!",msg:p.whatsappAccount.name?p.whatsappAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETwhatsappAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.lists,{id:e.resourceId})}),t=null;if(p.whatsappAccount&&(t=_.find(p.lists,{id:Number(p.whatsappAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.lists,{id:t.id});a.canSelect=!1,n.push(a)}p.lists=n})}else{var t=[],a=null;p.whatsappAccount&&(a=_.find(p.lists,{id:Number(p.whatsappAccount.ListId)}));for(var i=0;i<p.lists.length;i++)a&&p.lists[i].id===a.id&&(p.lists[i].canSelect=!1,t.push(p.lists[i]));p.lists=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.pauses,{id:e.resourceId})});p.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),p.pauses=n})}else p.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","whatsappAccount","userProfile","userProfileSection"],angular.module("app.whatsapp").controller("WhatsappAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.whatsappAccountWhatsappCannedAnswers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.whatsappAccount.getAnswers(m.query,u).$promise}function g(e){d.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(m.whatsappAccountWhatsappCannedAnswers.rows,{id:e.id}),m.whatsappAccountWhatsappCannedAnswers.count-=1,m.whatsappAccountWhatsappCannedAnswers.rows.length||p(),l.success({title:"WhatsappCannedAnswer deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETwhatsappAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETwhatsappAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.whatsappAccount={},m.whatsappAccountWhatsappCannedAnswers={count:0,rows:[]},m.selectedWhatsappAccountWhatsappCannedAnswers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,key,value,description",limit:10,page:1},m.init=function(e,n,t){m.whatsappAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.WhatsappAccountId=m.whatsappAccount.id,m.query.id=m.whatsappAccount.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the whatsappCannedAnswer?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("whatsappCannedAnswer #")+e.id||"whatsappCannedAnswer")+"</b> will be deleted.").ariaLabel("delete whatsappCannedAnswer").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getWhatsappAccountWhatsappCannedAnswers=p,m.createOrEditWhatsappAccountWhatsappCannedAnswer=function(e,n){o.show({controller:"CreateOrEditWhatsappCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/whatsappCannedAnswers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappAccount:m.whatsappAccount,whatsappCannedAnswer:n,whatsappCannedAnswers:m.whatsappAccountWhatsappCannedAnswers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedWhatsappAccountWhatsappCannedAnswers=function(){var e=angular.copy(m.selectedWhatsappAccountWhatsappCannedAnswers);return m.selectedWhatsappAccountWhatsappCannedAnswers=[],e},m.deleteWhatsappAccountWhatsappCannedAnswer=g,m.deleteSelectedWhatsappAccountWhatsappCannedAnswers=function(e){var n=o.confirm().title("Are you sure want to delete the selected whatsappCannedAnswers?").htmlContent("<b>"+m.selectedWhatsappAccountWhatsappCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete whatsappCannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedWhatsappAccountWhatsappCannedAnswers.forEach(function(e){g(e)}),m.selectedWhatsappAccountWhatsappCannedAnswers=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.whatsapp").controller("WhatsappAccountWhatsappCannedAnswersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="WHATSAPP.EDIT_WHATSAPPCANNEDANSWER",g.whatsappCannedAnswer=angular.copy(l),g.whatsappCannedAnswers=r,g.newWhatsappCannedAnswer=!1,g.whatsappCannedAnswer||(g.whatsappCannedAnswer={},g.title="WHATSAPP.NEW_WHATSAPPCANNEDANSWER",g.newWhatsappCannedAnswer=!0),n.params.id&&(g.whatsappCannedAnswer.WhatsappAccountId=n.params.id),g.addNewWhatsappCannedAnswer=function(){g.errors=[],d.cannedAnswer.save(g.whatsappCannedAnswer).$promise.then(function(e){g.whatsappCannedAnswers.unshift(e.toJSON()),o.success({title:"WhatsappCannedAnswer properly created",msg:g.whatsappCannedAnswer.name?g.whatsappCannedAnswer.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveWhatsappCannedAnswer=function(){g.errors=[],d.cannedAnswer.update({id:g.whatsappCannedAnswer.id},g.whatsappCannedAnswer).$promise.then(function(e){var n=_.find(g.whatsappCannedAnswers,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"WhatsappCannedAnswer properly saved!",msg:g.whatsappCannedAnswer.name?g.whatsappCannedAnswer.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteWhatsappCannedAnswer=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The whatsappCannedAnswer will be deleted.").ariaLabel("Delete WhatsappCannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cannedAnswer.delete({id:g.whatsappCannedAnswer.id}).$promise.then(function(){_.remove(g.whatsappCannedAnswers,{id:g.whatsappCannedAnswer.id}),o.success({title:"WhatsappCannedAnswer properly deleted!",msg:(g.whatsappCannedAnswer.name||"whatsappCannedAnswer")+" has been deleted!"}),v(g.whatsappCannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","whatsappCannedAnswers","whatsappCannedAnswer","api","Auth","license","setting","crudPermissions"],angular.module("app.whatsapp").controller("CreateOrEditWhatsappCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.whatsappAccount.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.whatsappAccount=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.WhatsappAccountId=m.whatsappAccount.id,m.query.id=m.whatsappAccount.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.whatsappAccount.id,field:"WhatsappAccountId",route:"whatsappAccount"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.whatsapp").controller("WhatsappAccountDispositionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.whatsappAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="whatsappAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedWhatsappAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,key,ListId,remote,token,type,accountSid,authToken,phone,receiveUrl,deliveryReportUrl,notificationShake,notificationSound,notificationTemplate,queueTransfer,queueTransferTimeout,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,agentTransfer,agentTransferTimeout,description,baseUrl",sort:"-updatedAt",limit:10,page:1},f.arraytype=_.keyBy([{option:"Twilio",value:"'twilio'"},{option:"Sinch",value:"'sinch'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.whatsapp.whatsappAccounts.edit",{id:e.id,whatsappAccount:e,crudPermissions:f.crudPermissions})},f.interactionsgoto=function(e,n){t.go("app.whatsapp.whatsappAccounts.edit",{id:e.id,tab:5})},f.agentadddialog=function(e,n){i.show({controller:"WhatsappAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{whatsappAccount:e,whatsappAccounts:f.whatsappAccounts?f.whatsappAccounts.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("whatsappAccount")+"?").htmlContent("<b>"+(e.name||"whatsappAccount")+"</b> will be deleted.").ariaLabel("delete whatsappAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getWhatsappAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.whatsappAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="WhatsappAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditWhatsappAccount=function(e,n){i.show({controller:"CreateOrEditWhatsappAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappAccount:n,whatsappAccounts:f.whatsappAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteWhatsappAccount=y,f.exportSelectedWhatsappAccounts=function(){var e=angular.copy(f.selectedWhatsappAccounts);return f.selectedWhatsappAccounts=[],e},f.deleteSelectedWhatsappAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected whatsappAccounts?").htmlContent("<b>"+f.selectedWhatsappAccounts.length+" selected</b> will be deleted.").ariaLabel("delete WhatsappAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedWhatsappAccounts.forEach(function(e){y(e)}),f.selectedWhatsappAccounts=[]})},f.deselectWhatsappAccounts=function(){f.selectedWhatsappAccounts=[]},f.selectAllWhatsappAccounts=function(){f.selectedWhatsappAccounts=f.whatsappAccounts.rows},g.hasRole("admin")?m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.lists,{id:e.resourceId})}),t=null;if(f.whatsappAccount&&(t=_.find(f.lists,{id:Number(f.whatsappAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.lists,{id:t.id});a.canSelect=!1,n.push(a)}f.lists=n})}else{var t=[],a=null;f.whatsappAccount&&(a=_.find(f.lists,{id:Number(f.whatsappAccount.ListId)}));for(var i=0;i<f.lists.length;i++)a&&f.lists[i].id===a.id&&(f.lists[i].canSelect=!1,t.push(f.lists[i]));f.lists=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){f.pauses=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){f.pauses=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.pauses,{id:e.resourceId})});f.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),f.pauses=n})}else f.pauses=[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.whatsappAccounts=e||{count:0,rows:[]}}function y(e){m.whatsappAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.whatsappAccounts.rows,{id:e.id}),f.whatsappAccounts.count-=1,f.whatsappAccounts.rows.length||f.getWhatsappAccounts(),p.success({title:_.startCase("WhatsappAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEwhatsappAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEwhatsappAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getWhatsappAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","whatsappAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.whatsapp").controller("WhatsappAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="WHATSAPP.EDIT_WHATSAPPQUEUE",g.whatsappQueue=angular.copy(l),g.whatsappQueues=r,g.newWhatsappQueue=!1,g.whatsappQueue||(g.whatsappQueue={strategy:"beepall",timeout:10},g.title="WHATSAPP.NEW_WHATSAPPQUEUE",g.newWhatsappQueue=!0),g.addNewWhatsappQueue=function(){g.errors=[],d.whatsappQueue.save(g.whatsappQueue).$promise.then(function(e){g.whatsappQueues.unshift(e.toJSON()),o.success({title:"WhatsappQueue properly created",msg:g.whatsappQueue.name?g.whatsappQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.whatsappQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveWhatsappQueue=function(){g.errors=[],d.whatsappQueue.update({id:g.whatsappQueue.id},g.whatsappQueue).$promise.then(function(e){var n=_.find(g.whatsappQueues,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"WhatsappQueue properly saved!",msg:g.whatsappQueue.name?g.whatsappQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.whatsappQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteWhatsappQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The whatsappQueue will be deleted.").ariaLabel("Delete WhatsappQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.whatsappQueue.delete({id:g.whatsappQueue.id}).$promise.then(function(){_.remove(g.whatsappQueues,{id:g.whatsappQueue.id}),o.success({title:"WhatsappQueue properly deleted!",msg:(g.whatsappQueue.name||"whatsappQueue")+" has been deleted!"}),v(g.whatsappQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.whatsappQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","whatsappQueues","whatsappQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.whatsapp").controller("CreateOrEditWhatsappQueueDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.whatsappQueue.getAgents({id:c.whatsappQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserWhatsappQueue?"penalty "+e.UserWhatsappQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.whatsappQueue=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.whatsappQueue.removeAgents({id:c.whatsappQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.whatsappQueue.addAgents({id:c.whatsappQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("WHATSAPP.ALL_AGENTS"),labelSelected:r.instant("WHATSAPP.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","whatsappQueue","whatsappQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.whatsapp").controller("WhatsappQueueagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.whatsappQueue.getTeams({id:l.whatsappQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.whatsappQueue=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("WHATSAPP.ALL_TEAMS"),labelSelected:t.instant("WHATSAPP.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.whatsappQueue.removeTeams({id:l.whatsappQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.whatsappQueue.addTeams({id:l.whatsappQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","whatsappQueue","$translate","Auth","crudPermissions"],angular.module("app.whatsapp").controller("WhatsappQueueteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.whatsappQueue=c||e.params.whatsappQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.teamadddialog=function(e,n){t.show({controller:"WhatsappQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{whatsappQueue:e,whatsappQueues:u.whatsappQueues?u.whatsappQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){t.show({controller:"WhatsappQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{whatsappQueue:e,whatsappQueues:u.whatsappQueues?u.whatsappQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoWhatsappQueues=function(){e.go("app.whatsapp.whatsappQueues",{},{reload:"app.whatsapp.whatsappQueues"})},u.saveWhatsappQueue=function(){r.whatsappQueue.update({id:u.whatsappQueue.id},u.whatsappQueue).$promise.then(function(){l.success({title:"WhatsappQueue updated!",msg:u.whatsappQueue.name?u.whatsappQueue.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETwhatsappQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","whatsappQueue","userProfileSection"],angular.module("app.whatsapp").controller("WhatsappQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.whatsappQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="whatsappQueues",f.listOrder="",f.listOrderAsc=null,f.selectedWhatsappQueues=[],f.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"whatsapp",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.whatsapp.whatsappQueues.edit",{id:e.id,whatsappQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"WhatsappQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{whatsappQueue:e,whatsappQueues:f.whatsappQueues?f.whatsappQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"WhatsappQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{whatsappQueue:e,whatsappQueues:f.whatsappQueues?f.whatsappQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("whatsappQueue")+"?").htmlContent("<b>"+(e.name||"whatsappQueue")+"</b> will be deleted.").ariaLabel("delete whatsappQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:2110}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.whatsapp.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.whatsapp.realtime.queues",{})}},f.success=E,f.getWhatsappQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.whatsappQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="WhatsappQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditWhatsappQueue=function(e,n){i.show({controller:"CreateOrEditWhatsappQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappQueue:n,whatsappQueues:f.whatsappQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteWhatsappQueue=y,f.exportSelectedWhatsappQueues=function(){var e=angular.copy(f.selectedWhatsappQueues);return f.selectedWhatsappQueues=[],e},f.deleteSelectedWhatsappQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected whatsappQueues?").htmlContent("<b>"+f.selectedWhatsappQueues.length+" selected</b> will be deleted.").ariaLabel("delete WhatsappQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedWhatsappQueues.forEach(function(e){y(e)}),f.selectedWhatsappQueues=[]})},f.deselectWhatsappQueues=function(){f.selectedWhatsappQueues=[]},f.selectAllWhatsappQueues=function(){f.selectedWhatsappQueues=f.whatsappQueues.rows};var b=!0,A=1;function E(e){f.whatsappQueues=e||{count:0,rows:[]}}function y(e){m.whatsappQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.whatsappQueues.rows,{id:e.id}),f.whatsappQueues.count-=1,f.whatsappQueues.rows.length||f.getWhatsappQueues(),p.success({title:_.startCase("WhatsappQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEwhatsappQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEwhatsappQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getWhatsappQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","whatsappQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.whatsapp").controller("WhatsappQueuesController",e)}(),function(){"use strict";function e(n,t,e,s,a,i,o,r,l,d,c){var m=this;function u(e,n){return{id:e,title:n.name||"NONAME",state:"app.dashboards.custom",stateParams:n,weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(e)&&!o.hasRole("admin")}}}function p(e,n){return{id:e,title:n.name||"NONAME",state:"app.plugins.plugin",stateParams:n,weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(e)&&!o.hasRole("admin")}}}function g(e,n){var t={user:_.pick(o.getCurrentUser(),["id","name","fullname","email","role","internal","interface"])};n.agentUrl=Mustache.render(n.agentUrl,t),a.saveItem("apps.home.plugin_"+e,{id:e,title:n.name,translate:n.name,state:"plugin_"+n.id,stateParams:n,view:"plugin",icon:n.icon,weight:12,hidden:function(){return!o.hasPermission(e)}})}function v(e){return _.map(e.children,function(e){return e.id})}i.clear(),m.isAgent=function(){return o.getCurrentUser()&&o.hasRole("agent")},s.saveItem("apps",{title:"APPS",group:!0,weight:1,hidden:function(){return o.hasRole("agent")}}),l.version.get().$promise.then(function(e){m.version=e&&e.current?e.current:"UNKNOWN"}).catch(function(e){m.version="UNKNOWN"}).finally(function(){s.saveItem("version",{title:"VERSION "+m.version,group:!0,weight:2,hidden:function(){return o.hasRole("agent")}})}),o.isLoggedIn()&&(r.gray&&i.warning({msg:e.instant("DASHBOARDS.LICENSE_EXPIRE_REMAINING_DAYS"),showClose:!0,timeout:!1}),l.dashboard.get().$promise.then(function(e){for(var n=0,t=0;t<e.rows.length;t+=1)n=99999+e.rows[t].id,s.saveItem("apps.dashboards.custom_"+n,u(n,e.rows[t]))}),l.plugin.get({active:!0}).$promise.then(function(e){var n=0;if(e.count){var t=_.filter(e.rows,function(e){return"never"!=e.sidebar&&"agentOnly"!=e.sidebar});if(0<t.length){s.saveItem("apps.plugins",{id:1900,title:"Plugins",translate:"PLUGINS.PLUGINS",icon:"icon-apps",permissions:{hidden:!0},weight:17,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}});for(var a=0;a<t.length;a+=1)n=88888+t[a].id,s.saveItem("apps.plugins.plugin_"+n,p(n,t[a]));s.sort()}var i=_.filter(e.rows,function(e){return"never"!=e.sidebar&&"adminOnly"!=e.sidebar});if(0<i.length)for(a=0;a<i.length;a+=1)g(n=88888+i[a].id,i[a])}})),r.custom&&!d.defaultPageTitle&&d.pageTitle&&angular.element("#pageTitle").html(d.pageTitle),s.saveItem("apps.dashboards",{id:100,title:"Dashboards",translate:"DASHBOARDS.DASHBOARDS",icon:"icon-tile-four",weight:2,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.dashboards.general",{id:101,title:"General",route:"",translate:"DASHBOARDS.GENERAL",state:"app.dashboards.general",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(101)&&!o.hasRole("admin")}}),s.saveItem("apps.staff",{id:200,title:"Staff",translate:"STAFF.STAFF",icon:"icon-account-multiple",weight:3,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.staff.users",{id:201,title:"Users",route:"user",translate:"STAFF.USERS",state:"app.staff.users",permissions:{hidden:!0},weight:1,hidden:function(){return o.hasRole("agent")||o.hasRole("user")||!o.hasPermission(201)&&!o.hasRole("admin")}}),s.saveItem("apps.staff.agents",{id:202,title:"Agents",route:"user",translate:"STAFF.AGENTS",state:"app.staff.agents",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(202)&&!o.hasRole("admin")}}),s.saveItem("apps.staff.telephones",{id:203,title:"Telephones",route:"user",translate:"STAFF.TELEPHONES",state:"app.staff.telephones",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(203)&&!o.hasRole("admin")}}),s.saveItem("apps.staff.teams",{id:204,title:"Teams",route:"team",translate:"STAFF.TEAMS",state:"app.staff.teams",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(204)&&!o.hasRole("admin")}}),s.saveItem("apps.staff.userProfiles",{id:205,title:"UserProfiles",route:"userProfile",translate:"STAFF.USERPROFILES",state:"app.staff.userProfiles",permissions:{hidden:!0},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(205)&&!o.hasRole("admin")}}),s.saveItem("apps.contactmanager",{id:300,title:"ContactManager",translate:"CONTACTMANAGER.CONTACTMANAGER",icon:"icon-account-circle",license:"cm",weight:4,hidden:function(){return!r.cm||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.contactmanager.lists",{id:301,title:"Lists",route:"cmList",translate:"CONTACTMANAGER.LISTS",state:"app.contactmanager.lists",weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(301)&&!o.hasRole("admin")}}),s.saveItem("apps.contactmanager.companies",{id:302,title:"Companies",route:"cmCompany",translate:"CONTACTMANAGER.COMPANIES",state:"app.contactmanager.companies",weight:3,hidden:function(){return o.hasRole("agent")||!o.hasPermission(302)&&!o.hasRole("admin")}}),s.saveItem("apps.contactmanager.globalCustomFields",{id:304,title:"GlobalCustomFields",route:"cmCustomField",translate:"CONTACTMANAGER.GLOBALCUSTOMFIELDS",state:"app.contactmanager.globalCustomFields",permissions:{association:!1},weight:4,hidden:function(){return o.hasRole("agent")||!o.hasPermission(304)&&!o.hasRole("admin")}}),s.saveItem("apps.contactmanager.contacts",{id:303,title:"Contacts",route:"",translate:"CONTACTMANAGER.CONTACTS",state:"app.contactmanager.contacts",permissions:{association:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(303)&&!o.hasRole("admin")}}),s.saveItem("apps.voice",{id:400,title:"Voice",translate:"VOICE.VOICE",icon:"icon-phone",license:"voice",weight:5,hidden:function(){return!r.voice||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.voice.voiceQueues",{id:401,title:"VoiceQueues",route:"voiceQueue",channel:"voice",translate:"VOICE.VOICEQUEUES",state:"app.voice.voiceQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(401)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.contexts",{id:405,title:"Contexts",route:"voiceContext",translate:"VOICE.CONTEXTS",state:"app.voice.contexts",weight:5,hidden:function(){return o.hasRole("agent")||!o.hasPermission(405)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.voicemails",{id:406,title:"Voicemails",route:"voiceMail",translate:"VOICE.VOICEMAILS",state:"app.voice.voicemails",weight:6,hidden:function(){return o.hasRole("agent")||!o.hasPermission(406)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.musiconholds",{id:407,title:"MusicOnHolds",route:"voiceMusicOnHold",translate:"VOICE.MUSICONHOLDS",state:"app.voice.musiconholds",weight:7,hidden:function(){return o.hasRole("agent")||!o.hasPermission(407)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.voiceRecordings",{id:408,title:"VoiceRecordings",route:"voiceRecording",translate:"VOICE.VOICERECORDINGS",state:"app.voice.voiceRecordings",permissions:{association:!1,loading:!0},weight:8,hidden:function(){return o.hasRole("agent")||!o.hasPermission(408)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.chanSpies",{id:409,title:"ChanSpies",route:"voiceChanSpy",translate:"VOICE.CHANSPIES",state:"app.voice.chanSpies",weight:9,hidden:function(){return o.hasRole("agent")||!o.hasPermission(409)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.voicePrefixes",{id:410,title:"VoicePrefixes",route:"voicePrefix",translate:"VOICE.VOICEPREFIXES",state:"app.voice.voicePrefixes",weight:10,hidden:function(){return o.hasRole("agent")||!o.hasPermission(410)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.inboundRoutes",{id:402,title:"InboundRoutes",route:"voiceExtension",translate:"VOICE.INBOUNDROUTES",state:"app.voice.inboundRoutes",weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(402)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.outboundRoutes",{id:403,title:"OutboundRoutes",route:"voiceExtension",translate:"VOICE.OUTBOUNDROUTES",state:"app.voice.outboundRoutes",weight:3,hidden:function(){return o.hasRole("agent")||!o.hasPermission(403)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.internalRoutes",{id:404,title:"InternalRoutes",route:"voiceExtension",translate:"VOICE.INTERNALROUTES",state:"app.voice.internalRoutes",weight:4,hidden:function(){return o.hasRole("agent")||!o.hasPermission(404)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.realtime",{id:411,title:"Realtime",route:"",translate:"VOICE.REALTIME",state:"app.voice.realtime",permissions:{association:!1,crud:!1},weight:11,hidden:function(){return o.hasRole("agent")||!o.hasPermission(411)&&!o.hasRole("admin")}}),s.saveItem("apps.chat",{id:500,title:"Chat",translate:"CHAT.CHAT",icon:"icon-hangouts",license:"chat",weight:6,hidden:function(){return!r.chat||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.chat.chatQueues",{id:501,title:"ChatQueues",route:"chatQueue",channel:"chat",translate:"CHAT.CHATQUEUES",state:"app.chat.chatQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(501)&&!o.hasRole("admin")}}),s.saveItem("apps.chat.chatWebsites",{id:502,title:"ChatWebsites",route:"chatWebsite",channel:"chat",translate:"CHAT.CHATWEBSITES",state:"app.chat.chatWebsites",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(502)&&!o.hasRole("admin")}}),s.saveItem("apps.chat.realtime",{id:510,title:"Realtime",route:"",translate:"CHAT.REALTIME",state:"app.chat.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(510)&&!o.hasRole("admin")}}),s.saveItem("apps.mail",{id:600,title:"Mail",translate:"MAIL.MAIL",icon:"icon-email",license:"mail",weight:7,hidden:function(){return!r.mail||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.mail.mailQueues",{id:601,title:"MailQueues",route:"mailQueue",channel:"mail",translate:"MAIL.MAILQUEUES",state:"app.mail.mailQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(601)&&!o.hasRole("admin")}}),s.saveItem("apps.mail.mailAccounts",{id:602,title:"MailAccounts",route:"mailAccount",channel:"mail",translate:"MAIL.MAILACCOUNTS",state:"app.mail.mailAccounts",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(602)&&!o.hasRole("admin")}}),s.saveItem("apps.mail.mailSubtatuses",{id:603,title:"MailSubstatuses",route:"mailSubstatus",channel:"mail",translate:"MAIL.MAILSUBSTATUSES",state:"app.mail.mailSubtatuses",permissions:{association:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(603)&&!o.hasRole("admin")}}),s.saveItem("apps.mail.realtime",{id:610,title:"Realtime",route:"",translate:"MAIL.REALTIME",state:"app.mail.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(610)&&!o.hasRole("admin")}}),s.saveItem("apps.sms",{id:700,title:"Sms",translate:"SMS.SMS",icon:"icon-message-text",license:"messaging",weight:8,hidden:function(){return!r.messaging||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.sms.smsQueues",{id:701,title:"SmsQueues",route:"smsQueue",channel:"sms",translate:"SMS.SMSQUEUES",state:"app.sms.smsQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(701)&&!o.hasRole("admin")}}),s.saveItem("apps.sms.smsAccounts",{id:702,title:"SmsAccounts",route:"smsAccount",channel:"sms",translate:"SMS.SMSACCOUNTS",state:"app.sms.smsAccounts",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(702)&&!o.hasRole("admin")}}),s.saveItem("apps.sms.realtime",{id:710,title:"Realtime",route:"",translate:"SMS.REALTIME",state:"app.sms.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(710)&&!o.hasRole("admin")}}),s.saveItem("apps.openchannel",{id:800,title:"Openchannel",translate:"OPENCHANNEL.OPENCHANNEL",icon:"icon-google-earth",license:"openchannel",weight:9,hidden:function(){return!r.openchannel||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.openchannel.openchannelQueues",{id:801,title:"OpenchannelQueues",route:"openchannelQueue",channel:"openChannel",translate:"OPENCHANNEL.OPENCHANNELQUEUES",state:"app.openchannel.openchannelQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(801)&&!o.hasRole("admin")}}),s.saveItem("apps.openchannel.openchannelAccounts",{id:802,title:"OpenchannelAccounts",route:"openchannelAccount",channel:"openChannel",translate:"OPENCHANNEL.OPENCHANNELACCOUNTS",state:"app.openchannel.openchannelAccounts",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(802)&&!o.hasRole("admin")}}),s.saveItem("apps.openchannel.realtime",{id:810,title:"Realtime",route:"",translate:"OPENCHANNEL.REALTIME",state:"app.openchannel.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(810)&&!o.hasRole("admin")}}),s.saveItem("apps.fax",{id:900,title:"Fax",translate:"FAX.FAX",icon:"icon-deskphone",license:"fax",weight:10,hidden:function(){return!r.fax||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.fax.faxQueues",{id:901,title:"FaxQueues",route:"faxQueue",channel:"fax",translate:"FAX.FAXQUEUES",state:"app.fax.faxQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(901)&&!o.hasRole("admin")}}),s.saveItem("apps.fax.faxAccounts",{id:902,title:"FaxAccounts",route:"faxAccount",channel:"fax",translate:"FAX.FAXACCOUNTS",state:"app.fax.faxAccounts",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(902)&&!o.hasRole("admin")}}),s.saveItem("apps.fax.realtime",{id:910,title:"Realtime",route:"",translate:"FAX.REALTIME",state:"app.fax.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(910)&&!o.hasRole("admin")}}),s.saveItem("apps.tools",{id:1e3,title:"Tools",translate:"TOOLS.TOOLS",icon:"icon-auto-fix",weight:15,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.tools.cannedAnswers",{id:1001,title:"CannedAnswers",route:"cannedAnswer",translate:"TOOLS.CANNEDANSWERS",state:"app.tools.cannedAnswers",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1001)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.customDashboards",{id:1003,title:"CustomDashboards",route:"dashboard",translate:"TOOLS.CUSTOMDASHBOARDS",state:"app.tools.customDashboards",weight:3,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1003)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.intervals",{id:1004,title:"Intervals",route:"interval",translate:"TOOLS.INTERVALS",state:"app.tools.intervals",weight:4,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1004)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.pauses",{id:1005,title:"Pauses",route:"pause",translate:"TOOLS.PAUSES",state:"app.tools.pauses",weight:5,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1005)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.schedules",{id:1006,title:"Scheduler",route:"schedule",translate:"TOOLS.SCHEDULER",state:"app.tools.schedules",weight:6,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1006)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.sounds",{id:1007,title:"Sounds",route:"sound",translate:"TOOLS.SOUNDS",state:"app.tools.sounds",weight:7,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1007)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.tags",{id:1008,title:"Tags",route:"tag",translate:"TOOLS.TAGS",state:"app.tools.tags",weight:8,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1008)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.templates",{id:1009,title:"Templates",route:"template",translate:"TOOLS.TEMPLATES",state:"app.tools.templates",weight:9,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1009)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.trunks",{id:1011,title:"Trunks",route:"trunk",translate:"TOOLS.TRUNKS",state:"app.tools.trunks",weight:11,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1011)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.variables",{id:1012,title:"Variables",route:"variable",translate:"TOOLS.VARIABLES",state:"app.tools.variables",weight:12,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1012)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.dispositions",{id:1002,title:"Dispositions",route:"disposition",translate:"TOOLS.DISPOSITIONS",state:"app.tools.dispositions",weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1002)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.triggers",{id:1010,title:"Triggers",route:"trigger",translate:"TOOLS.TRIGGERS",state:"app.tools.triggers",weight:10,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1010)&&!o.hasRole("admin")}}),s.saveItem("apps.callysquare",{id:1100,title:"CallySquare",translate:"CALLYSQUARE.CALLYSQUARE",icon:"icon-sitemap",license:"voice",weight:13,hidden:function(){return!r.voice||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.callysquare.odbcs",{id:1101,title:"ODBC",route:"squareOdbc",translate:"CALLYSQUARE.ODBC",state:"app.callysquare.odbcs",weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1101)&&!o.hasRole("admin")}}),s.saveItem("apps.callysquare.squareRecordings",{id:1102,title:"SquareRecordings",route:"squareRecording",translate:"CALLYSQUARE.SQUARERECORDINGS",state:"app.callysquare.squareRecordings",permissions:{association:!1,loading:!0},weight:3,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1102)&&!o.hasRole("admin")}}),s.saveItem("apps.callysquare.projects",{id:1103,title:"Projects",route:"squareProject",translate:"CALLYSQUARE.PROJECTS",state:"app.callysquare.projects",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1103)&&!o.hasRole("admin")}}),s.saveItem("apps.analytics",{id:1200,title:"Analytics",translate:"ANALYTICS.ANALYTICS",icon:"icon-chart-line",weight:16,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.analytics.metrics",{id:1201,title:"Metrics",route:"analyticMetric",translate:"ANALYTICS.METRICS",state:"app.analytics.metrics",weight:3,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1201)&&!o.hasRole("admin")}}),s.saveItem("apps.analytics.extractedReports",{id:1202,title:"ExtractedReports",route:"analyticExtractedReport",translate:"ANALYTICS.EXTRACTEDREPORTS",state:"app.analytics.extractedReports",permissions:{association:!1,loading:!0},weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1202)&&!o.hasRole("admin")}}),s.saveItem("apps.analytics.reports",{id:1203,title:"Reports",route:"",translate:"ANALYTICS.REPORTS",state:"app.analytics.reports",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1203)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations",{id:1300,title:"Integrations",translate:"INTEGRATIONS.INTEGRATIONS",icon:"icon-heart",weight:17,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.zendeskAccounts",{id:1301,title:"ZendeskAccounts",route:"intZendeskAccount",translate:"INTEGRATIONS.ZENDESKACCOUNTS",state:"app.integrations.zendeskAccounts",permissions:{association:!1,loading:!0},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1301)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.salesforceAccounts",{id:1302,title:"SalesforceAccounts",route:"intSalesforceAccount",translate:"INTEGRATIONS.SALESFORCEACCOUNTS",state:"app.integrations.salesforceAccounts",permissions:{association:!1,loading:!0},weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1302)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.freshdeskAccounts",{id:1303,title:"FreshdeskAccounts",route:"intFreshdeskAccount",translate:"INTEGRATIONS.FRESHDESKACCOUNTS",state:"app.integrations.freshdeskAccounts",permissions:{association:!1,loading:!0},weight:3,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1303)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.sugarcrmAccounts",{id:1305,title:"SugarcrmAccounts",route:"intSugarcrmAccount",translate:"INTEGRATIONS.SUGARCRMACCOUNTS",state:"app.integrations.sugarcrmAccounts",permissions:{association:!1,loading:!0},weight:4,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1305)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.deskAccounts",{id:1306,title:"DeskAccounts",route:"intDeskAccount",translate:"INTEGRATIONS.DESKACCOUNTS",state:"app.integrations.deskAccounts",permissions:{association:!1,loading:!0},weight:5,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1306)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.zohoAccounts",{id:1307,title:"ZohoAccounts",route:"intZohoAccount",translate:"INTEGRATIONS.ZOHOACCOUNTS",state:"app.integrations.zohoAccounts",permissions:{association:!1,loading:!0},weight:6,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1307)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.vtigerAccounts",{id:1308,title:"VtigerAccounts",route:"intVtigerAccount",translate:"INTEGRATIONS.VTIGERACCOUNTS",state:"app.integrations.vtigerAccounts",permissions:{association:!1,loading:!0},weight:7,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1308)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.dynamics365Accounts",{id:1309,title:"Dynamics365Accounts",route:"intDynamics365Account",translate:"INTEGRATIONS.DYNAMICS365ACCOUNTS",state:"app.integrations.dynamics365Accounts",permissions:{association:!1,loading:!0},weight:8,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1309)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.servicenowAccounts",{id:1310,title:"ServicenowAccounts",route:"intServicenowAccount",translate:"INTEGRATIONS.SERVICENOWACCOUNTS",state:"app.integrations.servicenowAccounts",permissions:{association:!1,loading:!0},weight:9,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1310)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.freshsalesAccounts",{id:1304,title:"FreshsalesAccounts",route:"intFreshsalesAccount",translate:"INTEGRATIONS.FRESHSALESACCOUNTS",state:"app.integrations.freshsalesAccounts",permissions:{association:!1,loading:!0},weight:10,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1304)&&!o.hasRole("admin")}}),s.saveItem("apps.settings",{id:1400,title:"Settings",translate:"SETTINGS.SETTINGS",icon:"icon-cog",permissions:{hidden:!0},weight:20,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")||o.hasRole("admin")&&!o.getCurrentUser().settingsEnabled}}),s.saveItem("apps.settings.generals",{id:1401,title:"General",route:"setting",translate:"SETTINGS.GENERAL",state:"app.settings.generals",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.smtps",{id:1402,title:"Smtp",route:"mailAccount",translate:"SETTINGS.SMTP",state:"app.settings.smtps",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.networks",{id:1403,title:"Networks",route:"network",translate:"SETTINGS.NETWORKS",state:"app.settings.networks",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.customizations",{id:1407,title:"Customizations",route:"setting",translate:"SETTINGS.CUSTOMIZATIONS",state:"app.settings.customizations",weight:1,hidden:function(){return!r.custom||o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.cloudProviders",{id:1408,title:"AiTools",route:"cloudProvider",translate:"SETTINGS.AITOOLS",state:"app.settings.cloudProviders",weight:1,hidden:function(){return!r.ai||o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.updates",{id:1404,title:"Updates",route:"",translate:"SETTINGS.UPDATES",state:"app.settings.updates",weight:1,hidden:function(){return!r.update||o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.license",{id:1405,title:"License",route:"",translate:"SETTINGS.LICENSE",state:"app.settings.license",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.system",{id:1406,title:"System",route:"",translate:"SETTINGS.SYSTEM",state:"app.settings.system",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.motiondialer",{id:1500,title:"MotionDialer",translate:"MOTIONDIALER.MOTIONDIALER",icon:"icon-fire",license:"dialer",weight:5,hidden:function(){return!r.dialer||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.motiondialer.queueCampaigns",{id:1501,title:"QueueCampaigns",route:"voiceQueue",channel:"bull",translate:"MOTIONDIALER.QUEUECAMPAIGNS",state:"app.motiondialer.queueCampaigns",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1501)&&!o.hasRole("admin")}}),s.saveItem("apps.motiondialer.ivrCampaigns",{id:1502,title:"IvrCampaigns",route:"campaign",translate:"MOTIONDIALER.IVRCAMPAIGNS",state:"app.motiondialer.ivrCampaigns",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1502)&&!o.hasRole("admin")}}),s.saveItem("apps.motiondialer.realtime",{id:1510,title:"Realtime",route:"",translate:"MOTIONDIALER.REALTIME",state:"app.motiondialer.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1510)&&!o.hasRole("admin")}}),s.saveItem("apps.help",{id:1600,title:"Help",translate:"HELP.HELP",icon:"icon-help",permissions:{association:!1},weight:21,hidden:function(){return!d.viewHelpSection||o.hasRole("agent")||!o.hasPermission(1600)&&!o.hasRole("admin")}}),s.saveItem("apps.help.about",{id:1601,title:"About",route:"",translate:"HELP.ABOUT",state:"app.help.about",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1600)&&!o.hasRole("admin")}}),s.saveItem("apps.jscripty",{id:1700,title:"jscripty",translate:"JSCRIPTY.JSCRIPTY",icon:"icon-script",license:"jscripty",weight:14,hidden:function(){return!r.jscripty||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.jscripty.projects",{id:1701,title:"Projects",route:"jscriptyProject",translate:"JSCRIPTY.PROJECTS",state:"app.jscripty.projects",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1701)&&!o.hasRole("admin")}}),s.saveItem("apps.marketplace",{id:1800,title:"Marketplace",translate:"MARKETPLACE.MARKETPLACE",icon:"icon-cart",weight:18,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.marketplace.plugins",{id:1801,title:"Plugins",route:"plugin",translate:"MARKETPLACE.PLUGINS",state:"app.marketplace.plugins",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1801)&&!o.hasRole("admin")}}),s.saveItem("apps.video",{id:2e3,title:"Video",translate:"VIDEO.VIDEO",icon:"icon-video",license:"screenrecording",weight:12,hidden:function(){return!r.screenrecording||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.video.screenRecordings",{id:2001,title:"ScreenRecordings",route:"screenRecording",translate:"VIDEO.SCREENRECORDINGS",state:"app.video.screenRecordings",permissions:{association:!1,loading:!0},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(2001)&&!o.hasRole("admin")}}),s.saveItem("apps.whatsapp",{id:2100,title:"Whatsapp",translate:"WHATSAPP.WHATSAPP",icon:"icon-whatsapp",license:"whatsapp",weight:11,hidden:function(){return!r.whatsapp||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.whatsapp.whatsappQueues",{id:2101,title:"WhatsappQueues",route:"whatsappQueue",channel:"whatsapp",translate:"WHATSAPP.WHATSAPPQUEUES",state:"app.whatsapp.whatsappQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(2101)&&!o.hasRole("admin")}}),s.saveItem("apps.whatsapp.whatsappAccounts",{id:2102,title:"WhatsappAccounts",route:"whatsappAccount",channel:"whatsapp",translate:"WHATSAPP.WHATSAPPACCOUNTS",state:"app.whatsapp.whatsappAccounts",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(2102)&&!o.hasRole("admin")}}),s.saveItem("apps.whatsapp.realtime",{id:2110,title:"Realtime",route:"",translate:"WHATSAPP.REALTIME",state:"app.whatsapp.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(2110)&&!o.hasRole("admin")}}),s.sort(),a.saveItem("apps",{title:"APPS",group:!0,weight:1}),a.saveItem("apps.home",{id:100,title:"Home",translate:"DASHBOARDS.HOME",icon:"icon-home",weight:1}),a.saveItem("apps.home.dashboard",{id:101,title:"Dashboard",translate:"DASHBOARDS.DASHBOARD",state:"dashboard",view:"dashboard",icon:"icon-tile-four",iconClass:"cyan-500-fg",weight:1,hidden:function(){return!o.hasPermission(101)}}),a.saveItem("apps.home.agentPresence",{id:115,title:"AgentPresence",translate:"DASHBOARDS.AGENT_PRESENCE",state:"agentPresence",view:"agentPresence",icon:"icon-webcam",iconClass:"xenialab-violet-light-fg",weight:2,hidden:function(){return!o.hasPermission(115)}}),a.saveItem("apps.home.contacts",{id:102,title:"Contacts",translate:"DASHBOARDS.CONTACTS",state:"contacts",view:"contacts",icon:"icon-account-circle",iconClass:"red-fg",weight:3,hidden:function(){return!r.cm||!o.hasPermission(102)}}),a.saveItem("apps.home.mycontacts",{id:103,title:"Contacts",translate:"DASHBOARDS.MYCONTACTS",state:"mycontacts",view:"mycontacts",icon:"icon-account-multiple",iconClass:"red-fg",weight:4,hidden:function(){return!r.cm||!o.hasPermission(103)}}),a.saveItem("apps.home.scheduled",{id:113,title:"Scheduled Calls",translate:"DASHBOARDS.SCHEDULED_CALLS",state:"scheduled",view:"scheduled",icon:"icon-calendar-clock",iconClass:"blue-grey-fg",weight:5,hidden:function(){return!r.dialer||!o.hasPermission(113)}}),a.saveItem("apps.home.voice",{id:110,title:"Voice",translate:"DASHBOARDS.VOICE",state:"voice",view:"voice",icon:"icon-phone",iconClass:"blue-A700-fg",weight:6,hidden:function(){return!r.voice||!o.hasPermission(110)}}),a.saveItem("apps.home.abandoned",{id:111,title:"Abandoned",translate:"DASHBOARDS.ABANDONED",state:"abandoned",view:"abandoned",icon:"icon-phone-missed",iconClass:"blue-fg",weight:7,hidden:function(){return!r.voice||!o.hasPermission(111)}}),a.saveItem("apps.home.recordings",{id:104,title:"Recordings",translate:"DASHBOARDS.RECORDINGS",state:"recordings",view:"recordings",icon:"icon-audiobook",iconClass:"indigo-A100-fg",weight:8,hidden:function(){return!r.voice||!o.hasPermission(104)}}),a.saveItem("apps.home.chat",{id:105,title:"Chat",translate:"DASHBOARDS.CHAT",state:"chat",view:"chat",icon:"icon-hangouts",iconClass:"green-A700-fg",weight:9,hidden:function(){return!r.chat||!o.hasPermission(105)}}),a.saveItem("apps.home.mail",{id:106,title:"Mail",translate:"DASHBOARDS.MAIL",state:"mail",view:"mail",icon:"icon-email",iconClass:"teal-fg",weight:10,hidden:function(){return!r.mail||!o.hasPermission(106)}}),a.saveItem("apps.home.sms",{id:107,title:"Sms",translate:"DASHBOARDS.SMS",state:"sms",view:"sms",icon:"icon-message-text",iconClass:"orange-fg",weight:11,hidden:function(){return!r.messaging||!o.hasPermission(107)}}),a.saveItem("apps.home.openchannel",{id:108,title:"Openchannel",translate:"DASHBOARDS.OPENCHANNEL",state:"openchannel",view:"openchannel",icon:"icon-google-earth",iconClass:"amber-fg",weight:12,hidden:function(){return!r.openchannel||!o.hasPermission(108)}}),a.saveItem("apps.home.fax",{id:109,title:"Fax",translate:"DASHBOARDS.FAX",state:"fax",view:"fax",icon:"icon-deskphone",iconClass:"blue-grey-A200-fg",weight:13,hidden:function(){return!r.fax||!o.hasPermission(109)}}),a.saveItem("apps.home.whatsapp",{id:114,title:"Whatsapp",translate:"DASHBOARDS.WHATSAPP",state:"whatsapp",view:"whatsapp",icon:"icon-whatsapp",iconClass:"lime-A700-fg",weight:14,hidden:function(){return!r.whatsapp||!o.hasPermission(114)}}),n.$on("$viewContentAnimationEnded",function(e){e.targetScope.$id===n.$id&&t.$broadcast("msSplashScreen::remove")}),n.$on("socket:connect",function(){t.toastySocketLost&&(i.clear(t.toastySocketLost),t.toastySocketLost=void 0)}),n.$on("socket:disconnect",function(){t.toastySocketLost||i.warning({title:e.instant("TOOLBAR.WARNING"),msg:e.instant("DASHBOARDS.LOST_CONNECTION"),timeout:!1,onAdd:function(){t.toastySocketLost=this.id}})})}e.$inject=["$scope","$rootScope","$translate","msNavigationService","msNavigationAgentService","toasty","Auth","license","api","setting","socket"],angular.module("motion").controller("MainController",e)}(),function(){"use strict";function e(e,n,t,a,o,r){var i=this;function s(e){if(e&&e.id){var n=99999+e.id;o.saveItem("apps.dashboards.custom_"+n,{id:n,title:e.name||"NONAME",state:"app.dashboards.custom",stateParams:e,weight:2,hidden:function(){return r.hasRole("agent")||!r.hasPermission(n)&&!r.hasRole("admin")}})}}function l(e){if(e&&e.id&&"never"!=e.sidebar)if(e.active){if("always"==e.sidebar||"adminOnly"==e.sidebar){o.saveItem("apps.plugins",{id:1900,title:"Plugins",translate:"PLUGINS.PLUGINS",icon:"icon-apps",weight:17,hidden:function(){return r.hasRole("agent")||!r.hasPermission(1900)&&!r.hasRole("admin")}});var n=88888+e.id;o.saveItem("apps.plugins.plugin_"+n,{id:n,title:e.name||"NONAME",state:"app.plugins.plugin",stateParams:e,weight:2,hidden:function(){return r.hasRole("agent")||!r.hasPermission(n)&&!r.hasRole("admin")}}),o.sort()}}else{n=88888+e.id;t=1900,a=n,i=o.getNavigation(),(s=_.find(i[0].children,{id:t}))&&_.some(s.children,{id:a})&&("always"==e.sidebar||"adminOnly"==e.sidebar)&&(o.deleteItem("apps.plugins.plugin_"+n),d(1900)||o.saveItem("apps.plugins",{id:1900,title:"Plugins",translate:"PLUGINS.PLUGINS",icon:"icon-apps",weight:17,hidden:function(){return!0}}))}var t,a,i,s}function d(e){var n=o.getNavigation(),t=_.find(n[0].children,{id:e});return!!(t&&0<t.children.length)}i.bodyEl=angular.element("body"),i.msScrollOptions={suppressScrollX:!0},i.setting=t,i.$onInit=function(){i.folded="true"===n.get("motion.folded")||!1},i.toggleMsNavigationFolded=function(){i.folded=!i.folded,n.put("motion.folded",i.folded)},i.getLogo=function(){return i.setting.defaultHeaderWhiteLabel?"xCALLY Motion":i.setting.headerWhiteLabel},a.on("dashboard:save",s),a.on("dashboard:update",s),a.on("dashboard:remove",function(e){if(e&&e.id){var n=99999+e.id;o.deleteItem("apps.dashboards.custom_"+n)}}),a.on("plugin:save",l),a.on("plugin:update",l),a.on("plugin:remove",function(e){if(e&&e.id&&"never"!=e.sidebar){var n=88888+e.id;"always"!=e.sidebar&&"adminOnly"!=e.sidebar||(o.deleteItem("apps.plugins.plugin_"+n),d(1900)||o.saveItem("apps.plugins",{id:1900,title:"Plugins",translate:"PLUGINS.PLUGINS",icon:"icon-apps",weight:17,hidden:function(){return!0}}))}}),e.$on("$stateChangeSuccess",function(){i.bodyEl.removeClass("ms-navigation-horizontal-mobile-menu-active")})}e.$inject=["$scope","$cookies","setting","socket","msNavigationService","Auth"],angular.module("app.navigation").controller("NavigationController",e)}(),function(){"use strict";function e(e,a,i,n,t,s,o,r){var l=this;function d(t){o.isSupported()?o.requestPermission().then(function(){var e,n;n={autoClose:!0,duration:10,showOnPageHidden:!0,icon:"api/users/"+(e=t).FromId+"/avatar",body:e.body||"",focusOnclick:!0,closeOnClick:!0},o.show(a.instant("QUICKPANEL.NEW_INTERNAL_MESSAGE"),n)},function(e){console.error("Please enable browser notifications!",e)}):console.error("Browser notifications are not supported by the browser. Normal notifications will be used.")}l.date=moment().format(),l.currentUser=n.getCurrentUser(),l.license=r,l.unreadTotalMessages=0,l.unreadTotalGroupMessages=0,l.userIsNotPhonebar=function(){return"admin"===l.currentUser.role||"user"===l.currentUser.role||"agent"===l.currentUser.role&&0!==l.currentUser.showWebBar},l.onMessageSave=function(e){e.ToId===l.currentUser.id&&e.FromId!==l.currentUser.id&&!e.read&&e.ChatGroupId&&(l.unreadTotalGroupMessages++,d(e));e.ToId!==l.currentUser.id||e.ChatGroupId||(l.unreadTotalMessages+=1,d(e))},l.onMessageUpdate=function(e){e.ToId===l.currentUser.id&&e.read&&0<l.unreadTotalMessages&&!e.ChatGroupId&&(l.unreadTotalMessages-=1);e.ToId==l.currentUser.id&&e.FromId!==l.currentUser.id&&e.ChatGroupId&&e.read&&0<l.unreadTotalGroupMessages&&l.unreadTotalGroupMessages--},t.on("chatInternalMessage:save",l.onMessageSave),t.on("chatInternalMessage:update",l.onMessageUpdate),s.chatInternalMessage.get({fields:"FromId",ToId:l.currentUser.id,read:!1,nolimit:!0,ChatGroupId:"null"}).$promise.then(function(e){return e&&e.count&&(l.unreadTotalMessages=e.count),s.user.getGroups({id:l.currentUser.id}).$promise}).then(function(e){for(var n=[],t=e.rows,a=0;a<t.length;a++)n.push(s.chatGroup.getUnread({id:t[a].id}).$promise);return i.all(n)}).then(function(e){for(var n=0;n<e.length;n++)l.unreadTotalGroupMessages+=e[n].count}).catch(function(e){console.error(e)}),e.$on("$destroy",function(){t.removeAllListeners("chatInternalMessage:save"),t.removeAllListeners("chatInternalMessage:update")})}e.$inject=["$scope","$translate","$q","Auth","socket","api","desktopNotification","license"],angular.module("app.quick-panel").controller("QuickPanelController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;function p(e){var n=angular.element("#chat-dialog");a(function(){n.animate({scrollTop:n[0].scrollHeight},e)},0)}function g(e){return _.isNil(e)?"":e.replace(/[^\w.+#*\-]+/g,"")}function v(e){return m.get(e).success(function(){n.success({title:"Successful call",msg:"Call properly handled!"})}).error(function(e){n.error({title:"PhoneBar API Error",msg:d.instant("CONTACTMANAGER.ERRORS.PHONEBAR_API")})})}u.currentUser=i.getCurrentUser(),u.user=void 0,u.users={count:0,rows:[]},u.standardDate=moment(0).format("YYYY-MM-DD HH:mm:ss"),u.unreadMessage={},u.replyMessage="",u.disabled=!1,u.init=function(e){u.license=e},u.toggleChat=function(e){if(e){if(!e.allowmessenger&&"agent"===e.role)return n.warning({title:d.instant("QUICKPANEL.WARNING"),msg:d.instant("QUICKPANEL.MESSENGER_DISABLED")}),void(u.user=void 0);u.user=e,u.replyMessage="",t.chatInternalMessage.get({sort:"createdAt",FromId:u.currentUser.id+","+e.id,ToId:u.currentUser.id+","+e.id,ChatGroupId:"null"}).$promise.then(function(e){if(e&&e.rows){u.user.messages=e;for(var n=0;n<u.user.messages.rows.length;n+=1)!1===u.user.messages.rows[n].read&&u.user.messages.rows[n].ToId===u.currentUser.id&&t.chatInternalMessage.update({id:u.user.messages.rows[n].id,read:!0})}}).finally(function(){p(0)})}else u.user=void 0},u.reply=function(){u.disabled=!0;Date.now();if(""===u.replyMessage)return void(u.disabled=!1);var e={FromId:u.currentUser.id,ToId:u.user.id,body:u.replyMessage,read:!1};u.replyMessage="",t.chatInternalMessage.save(e).$promise.then(function(e){u.user.messages.rows.push(e),u.user.lastMessageAt=e.createdAt,u.user.lastMessage=e,p(400)}).catch(function(e){}).finally(function(){u.disabled=!1})},u.onMessageSave=function(e){if(e.ToId===u.currentUser.id&&!e.ChatGroupId){u.user&&u.user.id===e.FromId?(u.user.messages.rows.push(e),p(0),t.chatInternalMessage.update({id:e.id,read:!0})):u.unreadMessage[e.FromId]=u.unreadMessage[e.FromId]?u.unreadMessage[e.FromId]+1:1;var n=_.find(u.users.rows,{id:e.FromId});n&&(n.lastMessageAt=e.createdAt,n.lastMessage=e)}},u.onMessageUpdate=function(e){if((e.FromId===u.currentUser.id||e.ToId===u.currentUser.id)&&!e.ChatGroupId){if(u.user){var n=_.find(u.user.messages.rows,{id:e.id});n&&_.merge(n,e)}var t=_.find(u.users.rows,{id:u.currentUser.id===e.FromId?e.ToId:e.FromId});t&&t.lastMessage&&_.merge(t.lastMessage,e),e.ToId===u.currentUser.id&&e.read&&0<u.unreadMessage[e.FromId]&&(u.unreadMessage[e.FromId]-=1)}},u.onUserUpdate=function(e){var n=_.find(u.users.rows,{id:e.id});n&&(_.isNil(e.online)||n.online===e.online||(n.online=e.online),_.isNil(e.allowmessenger)||n.allowmessenger===e.allowmessenger||(n.allowmessenger=e.allowmessenger))},u.webcall=function(e){c.$broadcast("webrtc::call",{target:g(e)})},u.call=function(e){return v("http://127.0.0.1:"+(u.user.phoneBarRemoteControlPort||"9888")+"/api/originate/"+g(e))},u.transfer=function(e){return v("http://127.0.0.1:"+(u.user.phoneBarRemoteControlPort||"9888")+"/api/transfer?number="+g(e))},s.on("chatInternalMessage:save",u.onMessageSave),s.on("chatInternalMessage:update",u.onMessageUpdate),s.on("user:update",u.onUserUpdate),o("quick-panel").onClose(function(){u.user=void 0}),t.chatInternalMessage.get({fields:"FromId",ToId:u.currentUser.id,read:!1,nolimit:!0,ChatGroupId:"null"}).$promise.then(function(e){u.unreadMessage=_.countBy(e.rows,"FromId")}).catch(function(e){}),t.chatInternalMessage.getUsers().$promise.then(function(e){u.users=e}).catch(function(e){console.error(e)}),e.$on("$destroy",function(){s.removeAllListeners("chatInternalMessage:save"),s.removeAllListeners("chatInternalMessage:update"),s.removeAllListeners("user:update")})}e.$inject=["$scope","toasty","api","$timeout","Auth","socket","$mdSidenav","$q","$interval","$translate","$rootScope","$http"],angular.module("app.quick-panel").controller("ChatInternalController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){var d=this;function c(e){a.hide(e)}d.errors=[],d.title="QUICKPANEL.EDIT_CHATGROUP",d.group=angular.copy(r),d.currentUser=o.getCurrentUser(),d.members=l,d.newChatGroup=!0,d.group||(d.group={write:!0,members:[]},d.title="QUICKPANEL.NEW_CHATGROUP"),d.saveChatGroup=function(){var t;return d.errors=[],s.chatGroup.save({name:d.group.name,write:d.group.write}).$promise.then(function(e){var n=_.map(d.group.members,"id");return n.unshift(d.currentUser.id),t=e,s.chatGroup.addMembers({id:t.id,ids:n}).$promise}).then(function(){i.success({title:"Group properly saved!",msg:t.name+" has been saved!"}),c(t)}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.closeDialog=c,d.querySearch=function(e){return e?d.members.rows.filter((n=e,t=angular.lowercase(n),function(e){var n=e.name.toLowerCase();return-1!=n.indexOf(t)})):[];var n,t}}e.$inject=["$scope","$state","$location","$mdDialog","toasty","api","Auth","group","members"],angular.module("app.quick-panel").controller("CreateOrEditChatGroupDialogController",e)}(),function(){"use strict";function e(e,t,a,s,n,o,i,r,l,d){var c=this;function m(){delete c.group}function u(e){var n=angular.element("#chat-group-dialog");a(function(){n.animate({scrollTop:n[0].scrollHeight},e)},0)}c.currentUser=i.getCurrentUser(),c.unreadGroupMessages={},c.groups={},c.participants,c.group,c.init=function(e){return c.license=e,r.user.getGroups({id:c.currentUser.id}).$promise.then(function(e){for(var n=0,t=[];n<e.rows.length;n++)e.rows[n].unreadGroupMessages=0,c.groups[e.rows[n].id]=e.rows[n],t.push(r.chatGroup.getUnread({id:e.rows[n].id}).$promise);return o.all(t)}).then(function(e){for(var n=0;n<e.length;n++)c.groups[e[n].id].unreadGroupMessages+=e[n].count}).catch(function(e){console.error(e)})},c.back=m,c.addGroup=function(e,n){s.show({controller:"CreateOrEditChatGroupDialogController",controllerAs:"vm",templateUrl:"app/quick-panel/tabs/groups/create/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{group:e,me:c.currentUser,license:null,setting:null},resolve:{members:function(){return i.hasRole("admin")?r.user.get({role:"agent"}).$promise:r.userProfile.getResources({id:i.getCurrentUser().userProfileId,section:"Agents",role:"agent"}).$promise}}}).then(function(e){e&&(c.groups[e.id]=e)}).catch(function(e){e&&console.error(e.message)})},c.deleteGroup=function(e,n){var t=s.confirm().title("Are you sure want to delete the selected group?").htmlContent("Group <b>"+e.name+"</b> will be deleted.").ariaLabel("delete Group").targetEvent(n).ok("OK").cancel("CANCEL");s.show(t).then(function(){return r.chatGroup.delete({id:e.id}).$promise}).then(function(){delete c.groups[e.id],d.success({title:"Group properly deleted!",msg:e.name+" has been deleted!"})}).catch(function(e){e&&d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatGroup.delete",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.groupsToArray=function(){return _.values(c.groups)},c.showMessageInfo=function(e,i){s.show({controller:"ShowMessageInfoDialogController",controllerAs:"vm",templateUrl:"app/quick-panel/tabs/groups/info/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{message:i},resolve:{data:function(){var a={messages:[]};return r.chatInternalMessage.get({ChatInternalMessageId:i.id}).$promise.then(function(e){var n=[];a.messages=e.rows,a.messages.unshift(i);for(var t=0;t<a.messages.length;t++)n.push(r.user.get({id:a.messages[t].ToId,fields:"id,name,fullname,userpic"}).$promise);return o.all(n)}).then(function(e){return a.users=e,a}).catch(function(e){e&&console.error(e)})}}}).then(function(){}).catch(function(e){e&&console.error(e.message)})},c.toggleChat=function(n){c.group={id:n.id,write:n.write,messages:{}},r.chatGroup.getMembers({id:n.id,fields:"id,name,fullname"}).$promise.then(function(e){return c.group.membersByKeys=_.keyBy(e.rows,"id"),c.group.members=_.differenceBy(e.rows,[{id:c.currentUser.id}],"id"),c.participants=_.map(c.group.members,"fullname").join(", "),r.chatGroup.getMessages({id:n.id,nolimit:!0}).$promise}).then(function(e){for(var n,t=0,a=[];t<e.count;t++)e.rows[t].ToId===c.currentUser.id&&(n=e.rows[t],c.group.messages[n.id]=n,e.rows[t].ToId!=c.currentUser.id||e.rows[t].FromId===c.currentUser.id||n.read||a.push(r.chatInternalMessage.update({id:n.id,read:!0})));return o.all(a)}).then(function(){u(400)}).catch(function(e){console.error(e.message)})},c.reply=function(){if(!c.replyMessage)return;var t={id:c.group.id,FromId:c.currentUser.id,ToId:c.currentUser.id,body:c.replyMessage,read:!0},a=[];c.replyMessage="",r.chatGroup.addMessage(t).$promise.then(function(e){t.read=!1,t.ChatInternalMessageId=e.id;for(var n=0;n<c.group.members.length;n++)c.group.members[n].id!==c.currentUser.id&&(t.ToId=c.group.members[n].id,a.push(r.chatGroup.addMessage(angular.copy(t)).$promise));return o.all(a)}).catch(function(e){console.log(e)})},l.on("chatInternalMessage:save",function(n){if(!c.group&&n.ToId===c.currentUser.id&&n.FromId!==c.currentUser.id&&!n.read&&n.ChatGroupId){var e=c.groups[n.ChatGroupId];if(!e)return r.chatGroup.get({id:n.ChatGroupId}).$promise.then(function(e){e.unreadGroupMessages=1,c.groups[e.id]=e});e.unreadGroupMessages||(e.unreadGroupMessages=0),e.unreadGroupMessages++}c.group&&n.ChatGroupId===c.group.id&&n.ToId===c.currentUser.id&&r.chatInternalMessage.update({id:n.id,read:!0}).$promise.then(function(){var e;e=n,c.group.messages[e.id]=e,u(400)})}),l.on("chatInternalMessage:update",function(e){e.ToId==c.currentUser.id&&e.FromId!==c.currentUser.id&&e.ChatGroupId&&e.read&&(0<c.groups[e.ChatGroupId].unreadGroupMessages&&c.groups[e.ChatGroupId].unreadGroupMessages--,c.group.messages[e.id]&&(c.group.messages[e.id].read=!0))}),l.on("chatGroup:remove",function(e){c.groups[e.id]&&delete c.groups[e.id]}),n("quick-panel").onClose(m),e.$on("$destroy",function(){l.removeAllListeners("chatInternalMessage:save"),l.removeAllListeners("chatInternalMessage:update"),l.removeAllListeners("chatGroup:remove")})}e.$inject=["$scope","$document","$timeout","$mdDialog","$mdSidenav","$q","Auth","api","socket","toasty"],angular.module("app.quick-panel").controller("ChatGroupController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r){this.data=r,this.title="QUICKPANEL.INFO",this.closeDialog=function(){a.hide()}}e.$inject=["$scope","$state","$location","$mdDialog","toasty","api","Auth","data"],angular.module("app.quick-panel").controller("ShowMessageInfoDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this;o.form={token:s.token},o.setting={},o.resetPassword=function(){return i.auth.reset(o.form).$promise.then(function(){n.success({title:t.instant("RESETPASSWORD.PASSWORD_RESET"),msg:t.instant("RESETPASSWORD.PASSWORD_RESET_MESSAGE")}),a.go("app.login")}).catch(function(e){e&&n.error({title:t.instant("RESETPASSWORD.PASSWORD_RESET_ERROR"),msg:e.data?e.data.message||e.message||e:e.message||e})})},o.onInit=function(){e.isLoggedIn()&&a.go("app.dashboards.general");return i.setting.gdpr({id:1}).$promise.then(function(e){o.setting=e,o.passwordPattern=o.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:""}).catch(function(e){e&&n.error({title:"Error",msg:e.data?e.data.message||e.message||e:e.message||e})})}}e.$inject=["Auth","toasty","$translate","$state","api","$stateParams"],angular.module("app.reset").controller("ResetPasswordController",e)}(),function(){"use strict";function e(t,e,n,a,i,s,o){var r=this;function l(){e.hide()}r.errors=[],r.user=i,r.setting=s,r.reset=o,r.passwordPattern=r.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",r.savePassword=function(){r.errors=[],a.user.changePassword({id:r.user.id},{oldPassword:r.oldPassword,newPassword:r.password}).$promise.then(function(){n.show(n.simple().textContent("Your password properly updated").position("top right").hideDelay(5e3)),l()}).catch(function(e){console.error(e),r.errors=e.data.errors&&e.data.errors.length?e.data.errors:[{message:e.data.message||"Authorization error",type:"api.user.changePassword"}]})},r.closeDialog=l,t.$watch("vm.password",function(e,n){_.isNil(r.oldPassword)||(e===r.oldPassword?t.changePasswordForm.password.$setValidity("oldPasswordMatch",!1):t.changePasswordForm.password.$setValidity("oldPasswordMatch",!0))})}e.$inject=["$scope","$mdDialog","$mdToast","api","user","setting","reset"],angular.module("app.toolbar").controller("ChangePasswordController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r){var l=this;function d(e){_.isNil(e)&&s.cmHopper.update({id:l.preview.id,UserId:null}),a.hide()}l.customFieldsMap=r&&r.rows?_.mapValues(_.keyBy(r.rows,function(e){return"cf_"+e.id}),"name"):{},l.errors=[],l.hopperIds=[],l.preview=o,l.originated=!1,l.disable=!1,l.disableGetContact=!1,l.hopperIds.push(l.preview.id),l.originatePreview=function(){l.originated=!0,l.disable=!0,_.isEmpty(l.preview)?(i.error({title:"Message",msg:"Contact not available"}),l.disable=!1,l.hopperIds=[],d(!0)):s.rpc.getVoiceQueuesPreview({id:l.preview.id}).$promise.then(function(e){d(!0)}).catch(function(e){i.error({title:"Message",msg:e.data}),d(!0)}).finally(function(){l.disable=!1,l.hopperIds=[]})},l.closeDialog=d,l.nextContact=function(){return l.disableGetContact=!0,s.cmHopper.getPreview({hopperIds:l.hopperIds,direction:"next"}).$promise.then(function(e){l.disableGetContact=!1,_.isNil(e)||_.isNil(e.Queue)||!e.Queue.dialActive?(l.hopperIds=[],a.hide(),i.info({title:"PREVIEW",msg:"CAMPAIGN NOT ACTIVE"})):(l.originated||s.cmHopper.update({id:l.preview.id,UserId:null}),l.preview=e,l.hopperIds.push(l.preview.id))}).catch(function(e){if(l.disableGetContact=!1,l.hopperIds=[],404===e.status)l.getFirstAvailableContact();else if(e.data&&e.data.errors&&e.data.errors.length){a.hide();for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.hide(),i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api preview",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},l.previousContact=function(){if(l.disableGetContact=!0,1<l.hopperIds.length){var e=_.without(l.hopperIds,l.preview.id);return s.cmHopper.getPreview({hopperIds:e,direction:"prev"}).$promise.then(function(e){l.disableGetContact=!1,_.isNil(e)||_.isNil(e.Queue)||!e.Queue.dialActive?(l.hopperIds=[],a.hide(),i.info({title:"PREVIEW",msg:"CAMPAIGN NOT ACTIVE"})):(_.remove(l.hopperIds,function(e){return e==l.preview.id}),l.originated||s.cmHopper.update({id:l.preview.id,UserId:null}),l.preview=e)}).catch(function(e){if(404===e.status)l.hopperIds=[l.preview.id],i.info({title:"PREVIEW",msg:"PREVIOUS CONTACTS NOT AVAILABLE"});else if(e.data&&e.data.errors&&e.data.errors.length){l.hopperIds=[],a.hide();for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.hopperIds=[],a.hide(),i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api preview",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}},l.getFirstAvailableContact=function(){return l.disableGetContact=!0,i.info({title:"PREVIEW",msg:"CONTACTS NOT AVAILABLE. REWINDING THE LIST"}),s.cmHopper.getPreview({hopperIds:[l.preview.id],direction:"next"}).$promise.then(function(e){_.isNil(e)||_.isNil(e.Queue)||!e.Queue.dialActive?(a.hide(),i.info({title:"PREVIEW",msg:"CAMPAIGN NOT ACTIVE"})):(l.originated||s.cmHopper.update({id:l.preview.id,UserId:null}),l.preview=e,l.hopperIds.push(l.preview.id))}).catch(function(e){if(a.hide(),404===e.status)i.info({title:"PREVIEW",msg:"CONTACTS NOT AVAILABLE"});else if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api preview",msg:e.data?JSON.stringify(e.data.message):e.toString()})}).finally(function(){l.disableGetContact=!1})},l.isCustomField=function(e){return _.startsWith(e,"cf_")},l.isHiddenField=function(e){return _.includes(["Company","CompanyId","ListId","UserId","createdAt","deletedAt","id","priority","scheduledat","tags","updatedAt","facebook","twitter","skype","wechat","teams","viber","line","telegram"],e)},l.isNil=function(e){return _.isNil(e)},e.$on("$destroy",function(){l.originated||s.cmHopper.update({id:l.preview.id,UserId:null})})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","api","preview","customFields"],angular.module("app.toolbar").controller("PreviewDialogController",e)}(),function(){"use strict";function e(n,t,s,a,o,e,i,r,l,d,c,m,u,p,g,v,h,f,b,A,E,y){var S,T=this;T.voiceQueues={},T.polling=!0,t.global={search:""},T.pauses=[],T.license=b,T.currentUser=v.getCurrentUser(),T.unreadTotalMessages=0,T.unreadTotalGroupMessages=0,T.contacts=0,"agent"===T.currentUser.role&&(S=E(function(){_.some(T.voiceQueues,{dialMethod:"preview",dialActive:!0})&&T.license.dialer&&T.polling?(T.polling=!1,f.cmHopper.getOpenContacts().$promise.then(function(e){e&&_.isNumber(e.contacts)&&(T.contacts=e.contacts)}).finally(function(){T.polling=!0})):T.contacts=0},14999)),T.setting=A,T.bodyEl=angular.element("body"),T.conf={realm:"asterisk",host:e.host(),protocol:e.protocol(),soundPlayerId:"local-audio",remotePlayerId:"remote-audio",ua:"Motion WebRTC Bar 0.2.0",license:T.license.webrtc,phoneBarExpires:T.currentUser.phoneBarExpires,phoneBarPrefixRequired:T.currentUser.phoneBarPrefixRequired,wssPort:T.currentUser.wssPort},T.webRTCSessions=[],T.query={id:v.getCurrentUser().id,fields:"id,name,type,dialMethod,dialActive",channel:"voice",nolimit:!0},T.userStatusOptions=[{title:"Online",icon:"icon-checkbox-marked-circle",color:"#4CAF50"},{title:"Away",icon:"icon-clock",color:"#FFC107"},{title:"Do not Disturb",icon:"icon-minus-circle",color:"#F44336"},{title:"Invisible",icon:"icon-checkbox-blank-circle-outline",color:"#BDBDBD"},{title:"Offline",icon:"icon-checkbox-blank-circle-outline",color:"#616161"}],T.languages={ar:{title:"Arabic",translation:"TOOLBAR.ARABIC",code:"ar",flag:"ar"},cs:{title:"Czech",translation:"TOOLBAR.CZECH",code:"cs",flag:"cs"},da:{title:"Danish",translation:"TOOLBAR.DANISH",code:"da",flag:"da"},de:{title:"German",translation:"TOOLBAR.GERMAN",code:"de",flag:"de"},en:{title:"English",translation:"TOOLBAR.ENGLISH",code:"en",flag:"us"},es:{title:"Spanish",translation:"TOOLBAR.SPANISH",code:"es",flag:"es"},fa:{title:"Persian",translation:"TOOLBAR.PERSIAN",code:"fa",flag:"fa"},fi:{title:"Finnish",translation:"TOOLBAR.FINNISH",code:"fi",flag:"fi"},fr:{title:"French",translation:"TOOLBAR.FRENCH",code:"fr",flag:"fr"},he:{title:"Hebrew",translation:"TOOLBAR.HEBREW",code:"he",flag:"he"},hi:{title:"Hindi",translation:"TOOLBAR.HINDI",code:"hi",flag:"hi"},id:{title:"Indonesian",translation:"TOOLBAR.INDONESIAN",code:"id",flag:"id"},it:{title:"Italian",translation:"TOOLBAR.ITALIAN",code:"it",flag:"it"},ja:{title:"Japanese",translation:"TOOLBAR.JAPANESE",code:"ja",flag:"ja"},ko:{title:"Korean",translation:"TOOLBAR.KOREAN",code:"ko",flag:"ko"},lv:{title:"Latvian",translation:"TOOLBAR.LATVIAN",code:"lv",flag:"lv"},nl:{title:"Dutch",translation:"TOOLBAR.DUTCH",code:"nl",flag:"nl"},no:{title:"Norwegian",translation:"TOOLBAR.NORWEGIAN",code:"no",flag:"no"},pl:{title:"Polish",translation:"TOOLBAR.POLISH",code:"pl",flag:"pl"},"pt-BR":{title:"Brazilian",translation:"TOOLBAR.BRAZILIAN",code:"pt-BR",flag:"pt-BR"},"pt-PT":{title:"Portuguese",translation:"TOOLBAR.PORTUGUESE",code:"pt-PT",flag:"pt-PT"},ru:{title:"Russian",translation:"TOOLBAR.RUSSIAN",code:"ru",flag:"ru"},sv:{title:"Swedish",translation:"TOOLBAR.SWEDISH",code:"sv",flag:"sv"},tr:{title:"Turkish",translation:"TOOLBAR.TURKISH",code:"tr",flag:"tr"},"zh-CN":{title:"ChineseSimplified",translation:"TOOLBAR.CHINESESIMPLIFIED",code:"zh-CN",flag:"zh-CN"},"zh-TW":{title:"ChineseTraditional",translation:"TOOLBAR.CHINESETRADITIONAL",code:"zh-TW",flag:"zh-TW"}};var I=["ar","fa","he"];function C(){h.connect(),h.on("user:update",T.onUserUpdate),h.on("user:called",T.onUserCalled),h.on("chatInternalMessage:save",T.onInternalMessageSave),h.on("chatInternalMessage:update",T.onInternalMessageUpdate),h.on("userVoiceQueue:save",T.onUserVoiceQueue),h.on("voiceQueue:save",T.onVoiceQueue),h.on("userVoiceQueue:remove",T.onUserVoiceQueue),h.on("voiceQueue:remove",T.onVoiceQueue),h.on("voiceQueue:update",T.onVoiceQueue),h.on("user:forcelogout",D),h.on("userNotification:send",P)}function O(){h.disconnect("logout")}function w(e){T.voiceQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}function R(){T.promise=f.user.getQueues(T.query,w).$promise}function x(e){return O(),v.logout(e).then(function(){return t.$broadcast("webrtc::logout"),a.go("app.login")}).catch(function(e){console.error(e)})}function N(e,n){c.show({controller:"ChangePasswordController",controllerAs:"vm",templateUrl:"app/toolbar/changepassword/changepassword.html",parent:angular.element(m.body),targetEvent:e,clickOutsideToClose:!n,escapeToClose:!n,locals:{user:T.user,setting:A,reset:n}})}function D(e){if(console.debug("onForceLogout -> data",e),e.user.id===T.user.id&&0!==T.user.showWebBar)return O(),v.logout(!0).then(function(){t.$broadcast("webrtc::logout"),c.show(c.alert().parent(angular.element(m.body)).clickOutsideToClose(!1).escapeToClose(!1).title(r.instant("TOOLBAR.WARNING")).textContent(r.instant("TOOLBAR.USER_FORCE_LOGOUT",{ip:e.ip})).ok("OK")).then(function(){return a.go("app.login")})}).catch(function(e){console.error(e)})}function P(e){var n=e;if(T.currentUser.id===n.recipient){var t=r.instant("TOOLBAR.NOTIFICATION_TITLE",{sender:n.sender}),a=n.description?r.instant("TOOLBAR.NOTIFICATION_TITLE_RECIPIENT",{recipient:n.description}):null;p.wait({title:a?t+" "+a:t,msg:n.content,clickToClose:!1,timeout:!1,sound:n.beep,html:!0})}}T.toggleSidenav=function(e){i(e).toggle()},T.logout=x,T.changeLanguage=function(e){if(!T.languages.hasOwnProperty(e.code)){return void l.show({template:'<md-toast id="language-message" layout="column" layout-align="center start"><div class="md-toast-content">Motion supports multiple translations through angular-translate module, but currently we do not support the selected language. If you want to help us, send us a message.</div></md-toast>',hideDelay:7e3,position:"top right",parent:"#content"})}T.selectedLanguage=e,u.put("motion.language",e.code),r.use(e.code),"app.callysquare.projects.edit"===a.current.name&&d.location.reload();0<=I.indexOf(e.code)?p.info({title:r.instant("TOOLBAR.CHANGE_LANGUAGE_TITLE"),msg:r.instant("TOOLBAR.CHANGE_LANGUAGE_MESSAGE")}):n.$parent.$parent.vm.direction="ltr"},T.setUserStatus=function(e){T.userStatus=e},T.toggleHorizontalMobileMenu=function(){T.bodyEl.toggleClass("ms-navigation-horizontal-mobile-menu-active")},T.toggleMsNavigationFolded=function(){g.toggleFolded()},T.search=function(n){for(var e=[],t=g.getFlatNavigation(),a=s.defer(),i=0;i<t.length;i++)t[i].uisref&&e.push(t[i]);n&&(e=e.filter(function(e){if(-1<angular.lowercase(e.title).search(angular.lowercase(n)))return!0}));return o(function(){a.resolve(e)},1e3),a.promise},T.searchResultClick=function(e){e.uisref&&(e.stateParams?a.go(e.state,e.stateParams):a.go(e.state))},T.openSettings=function(e){t.$broadcast("webrtc::settings")},T.changePassword=N,T.isAgent=function(){return v.getCurrentUser()&&v.hasRole("agent")},T.onUserUpdate=function(e){if(e.id===T.user.id)if("agent"===e.role&&_.isBoolean(e.online)&&!e.online)if(0!==T.user.showWebBar){var t;O();var n=c.confirm({title:r.instant("TOOLBAR.WARNING")+"!",htmlContent:"<span>"+r.instant("TOOLBAR.SOMEONE_LOGGED_YOU_OUT")+"</span><br><span>"+r.instant("TOOLBAR.SESSION_TIMEOUT")+"</span>",ariaLabel:r.instant("TOOLBAR.WARNING")+"!",ok:r.instant("TOOLBAR.STAY_LOGGED"),cancel:r.instant("TOOLBAR.LOGOUT"),onComplete:function(e,n){t=setTimeout(function(){c.cancel()},6e4)}});c.show(n).then(function(){return clearTimeout(t),v.queueLogin().then(function(){C(),_.merge(T.user,e),v.setCurrentUser(T.user)})}).catch(function(e){clearTimeout(t),x(!0)})}else x(!0);else _.merge(T.user,e),v.setCurrentUser(T.user)},T.onUserCalled=function(e){if(2===T.currentUser.showWebBar&&"agent"===T.currentUser.role){var n=T.currentUser.privacyEnabled?y.mask(e.calleridnum):e.calleridnum;p.info({title:"WebRTC Popup",msg:"<div> <span>Call from: "+n+"</span><br> <span>Queue: "+e.queue+"</span><br> <span>Extra: "+(e.variables&&e.variables.extravar?e.variables.extravar:"Not defined")+"</span><br> </div>",showClose:!0,timeout:1e4,html:!0})}},T.pause=function(e){var n=e||"DEFAULT PAUSE";_.some(T.webRTCSessions,["confirmed",!0])&&(n="#"+n);return f.user.pause({id:T.user.id,type:n}).$promise.catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:PAUSEUSER",msg:e.status?JSON.stringify(e.data):e.toString()})})},T.unpause=function(){return f.user.unpause({id:T.user.id}).$promise.catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UNPAUSEUSER",msg:e.status?JSON.stringify(e.data):e.toString()})})},T.preview=function(n){return T.disable=!0,f.cmHopper.getPreview().$promise.then(function(e){_.isNil(e)||_.isNil(e.Queue)||!e.Queue.dialActive?p.info({title:"PREVIEW",msg:"CAMPAIGN NOT ACTIVE"}):c.show({controller:"PreviewDialogController",controllerAs:"vm",templateUrl:"app/toolbar/preview/dialog.html",parent:angular.element(m.body),targetEvent:n,clickOutsideToClose:!0,locals:{preview:e,currentUser:T.currentUser},resolve:{customFields:["apiResolver",function(e){return e.resolve("cmCustomField@get",{nolimit:!0})}]}})}).catch(function(e){if(404===e.status)p.info({title:"PREVIEW",msg:"CONTACT NOT AVAILABLE"});else if(e.data&&e.data.errors&&e.data.errors.length){T.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelMessage.accept"}];for(var n=0;n<e.data.errors.length;n+=1)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelMessage.accept",msg:e.data?JSON.stringify(e.data.message):e.toString()})}).finally(function(){T.disable=!1})},T.getLogo=function(){return T.setting.defaultHeaderWhiteLabel?"xCALLY Motion":T.setting.headerWhiteLabel},T.userIsNotPhonebar=function(){return"admin"===T.currentUser.role||"user"===T.currentUser.role||"agent"===T.currentUser.role&&0!==T.currentUser.showWebBar},T.onInternalMessageSave=function(e){e.ToId!==T.currentUser.id||e.ChatGroupId||(T.unreadTotalMessages+=1);e.ToId===T.currentUser.id&&e.FromId!==T.currentUser.id&&!e.read&&e.ChatGroupId&&T.unreadTotalGroupMessages++},T.onInternalMessageUpdate=function(e){e.ToId===T.currentUser.id&&e.read&&0<T.unreadTotalMessages&&!e.ChatGroupId&&(T.unreadTotalMessages-=1);e.ToId===T.currentUser.id&&e.read&&e.ChatGroupId&&0<T.unreadTotalGroupMessages&&T.unreadTotalGroupMessages--},T.onUserVoiceQueue=function(e){_.toInteger(e.UserId)===v.getCurrentUser().id&&R()},T.onVoiceQueue=function(e){R()},function(){T.user=v.getCurrentUser(),T.conf.ha1=T.user.md5secret,T.conf.id=T.user.id,T.conf.name=T.user.name,T.conf.fullname=T.user.fullname,T.conf.internal=T.user.internal,T.conf.recording=T.user.phoneBarEnableRecording,T.conf.autoAnswer=T.user.phoneBarAutoAnswer,T.conf.enableSettings=T.user.phoneBarEnableSettings,T.conf.enableDtmfTone=T.user.phoneBarEnableDtmfTone,T.conf.autoAnswerDelay=T.user.phoneBarAutoAnswerDelay,T.userStatus=T.userStatusOptions[0];var e=u.get("motion.language");e&&T.languages.hasOwnProperty(e)?T.selectedLanguage=T.languages[e]:T.selectedLanguage=T.languages[r.preferredLanguage()];if(f.pause.get({fields:"name",nolimit:!0}).$promise.then(function(e){T.pauses=e.rows?e.rows:[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETPAUSES",msg:e.status?JSON.stringify(e.data):e.toString()})}),"LOCAL_LOGIN"==v.getAuthenticationType()&&T.setting.securePassword)if(T.user.passwordResetAt){var n=moment(T.user.passwordResetAt).add(T.setting.passwordExpiresDays||90,"day");moment().isAfter(n)?N(null,!0):moment().add(15,"day").isAfter(n)&&p.warning({title:r.instant("TOOLBAR.WARNING")+"!",msg:r.instant("TOOLBAR.PASSWORD_EXPIRE_REMAINING_DAYS")+": "+Math.ceil(n.diff(moment(),"days",!0)),timeout:2e4})}else N(null,!0)}(),R(),C(),f.chatInternalMessage.get({fields:"FromId",ToId:T.currentUser.id,read:!1,nolimit:!0}).$promise.then(function(e){T.unreadTotalMessages=e.rows.length}),n.$on("$destroy",function(){h.removeAllListeners("user:called"),h.removeAllListeners("user:update"),h.removeAllListeners("chatInternalMessage:save"),h.removeAllListeners("chatInternalMessage:update"),h.removeAllListeners("userVoiceQueue:save"),h.removeAllListeners("voiceQueue:save"),h.removeAllListeners("userVoiceQueue:remove"),h.removeAllListeners("voiceQueue:remove"),h.removeAllListeners("voiceQueue:update"),h.removeAllListeners("user:forcelogout"),h.removeAllListeners("userNotification:send"),S&&(E.cancel(S),S=null)})}e.$inject=["$scope","$rootScope","$q","$state","$timeout","$location","$mdSidenav","$translate","$mdToast","$window","$mdDialog","$document","$cookies","toasty","msNavigationService","Auth","socket","api","license","setting","$interval","privacyManager"],angular.module("app.toolbar").controller("ToolbarController",e)}();var urlParams=function(e){var n=new Object,t=e.lastIndexOf("?");if(0<t)for(var a=e.substring(t+1).split("&"),i=0;i<a.length;i++)0<(t=a[i].indexOf("="))&&(n[a[i].substring(0,t)]=a[i].substring(t+1));return n}(window.location.href),t0=new Date,MAX_REQUEST_SIZE=10485760,MAX_WIDTH=12e3,MAX_HEIGHT=12e3,EXPORT_URL="http://exp.draw.io/ImageExport2/export",SHARE_HOST="http://localhost:3000",SAVE_URL="api/square/projects/",VARIABLE_URL="/api/variables",STENCIL_PATH="/assets/plugins/square/stencils",SHAPES_PATH="/assets/plugins/square/shapes",IMAGE_PATH="/assets/plugins/square/images",STYLE_PATH="/assets/plugins/square/styles",CSS_PATH="/assets/plugins/square/styles",OPEN_FORM="api/square/projects/open",TEMPLATE_PATH="/assets/plugins/square/templates",RESOURCES_PATH="/assets/plugins/square/resources",RESOURCE_BASE=RESOURCES_PATH+"/grapheditor",CRUD_PERMISSIONS={readOnly:!1,canEdit:!1,canDelete:!1},tapAndHoldStartsConnection=!0,showConnectorImg=!0,mxLoadResources=!1,mxLanguages=["it","fr","ko","es","sv","ru","de","ja","zh-CN","zh-TW","nl","fi","da","pt-BR","pt-PT","no","hi","tr","fa"],mxLanguage="en",match=document.cookie.match(new RegExp("(^| )motion.language=([^;]+)"));match&&mxLanguages.includes(match[2])&&(mxLanguage=match[2]);var mxBasePath="assets/plugins/mxgraph",mxClient={VERSION:"2.0.0.0",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&navigator.userAgent.indexOf("MSIE")<0,IS_OP:0<=navigator.userAgent.indexOf("Opera/"),IS_OT:navigator.userAgent.indexOf("Presto/2.4.")<0&&navigator.userAgent.indexOf("Presto/2.3.")<0&&navigator.userAgent.indexOf("Presto/2.2.")<0&&navigator.userAgent.indexOf("Presto/2.1.")<0&&navigator.userAgent.indexOf("Presto/2.0.")<0&&navigator.userAgent.indexOf("Presto/1.")<0,IS_SF:0<=navigator.userAgent.indexOf("AppleWebKit/")&&navigator.userAgent.indexOf("Chrome/")<0,IS_GC:0<=navigator.userAgent.indexOf("Chrome/"),IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&navigator.userAgent.indexOf("Firefox/1.")<0&&navigator.userAgent.indexOf("Firefox/2.")<0||0<=navigator.userAgent.indexOf("Iceweasel/")&&navigator.userAgent.indexOf("Iceweasel/1.")<0&&navigator.userAgent.indexOf("Iceweasel/2.")<0||0<=navigator.userAgent.indexOf("SeaMonkey/")&&navigator.userAgent.indexOf("SeaMonkey/1.")<0||0<=navigator.userAgent.indexOf("Iceape/")&&navigator.userAgent.indexOf("Iceape/1.")<0,IS_SVG:0<=navigator.userAgent.indexOf("Firefox/")||0<=navigator.userAgent.indexOf("Iceweasel/")||0<=navigator.userAgent.indexOf("Seamonkey/")||0<=navigator.userAgent.indexOf("Iceape/")||0<=navigator.userAgent.indexOf("Galeon/")||0<=navigator.userAgent.indexOf("Epiphany/")||0<=navigator.userAgent.indexOf("AppleWebKit/")||0<=navigator.userAgent.indexOf("Gecko/")||0<=navigator.userAgent.indexOf("Opera/"),NO_FO:0<=navigator.userAgent.indexOf("Firefox/1.")||0<=navigator.userAgent.indexOf("Iceweasel/1.")||0<=navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/2.")||0<=navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/1.")||0<=navigator.userAgent.indexOf("Camino/1.")||0<=navigator.userAgent.indexOf("Epiphany/2.")||0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("MSIE")||0<=navigator.userAgent.indexOf("Mozilla/2."),IS_VML:"MICROSOFT INTERNET EXPLORER"==navigator.appName.toUpperCase(),IS_MAC:0<navigator.userAgent.toUpperCase().indexOf("MACINTOSH"),IS_TOUCH:0<navigator.userAgent.toUpperCase().indexOf("IPAD")||0<navigator.userAgent.toUpperCase().indexOf("IPOD")||0<navigator.userAgent.toUpperCase().indexOf("IPHONE")||0<navigator.userAgent.toUpperCase().indexOf("ANDROID"),IS_LOCAL:document.location.href.indexOf("http://")<0&&document.location.href.indexOf("https://")<0,isBrowserSupported:function(){return mxClient.IS_VML||mxClient.IS_SVG},link:function(e,n,t){if(t=t||document,mxClient.IS_IE6)t.write('<link rel="'+e+'" href="'+n+'" charset="ISO-8859-1" type="text/css"/>');else{var a=t.createElement("link");a.setAttribute("rel",e),a.setAttribute("href",n),a.setAttribute("charset","ISO-8859-1"),a.setAttribute("type","text/css"),t.getElementsByTagName("head")[0].appendChild(a)}},include:function(e){document.write('<script src="'+e+'"><\/script>')},dispose:function(){for(var e=0;e<mxEvent.objects.length;e++)null!=mxEvent.objects[e].mxListenerList&&mxEvent.removeAllListeners(mxEvent.objects[e])}};if(mxClient.IS_OP&&mxClient.IS_OT?mxClient.CSS_PREFIX="O":mxClient.IS_SF||mxClient.IS_GC?mxClient.CSS_PREFIX="Webkit":mxClient.IS_MT?mxClient.CSS_PREFIX="Moz":mxClient.IS_IE&&9<=document.documentMode&&(mxClient.CSS_PREFIX="ms"),void 0===mxLoadResources&&(mxLoadResources=!0),"undefined"==typeof mxResourceExtension&&(mxResourceExtension=".txt"),"undefined"==typeof mxLoadStylesheets&&(mxLoadStylesheets=!0),void 0!==mxBasePath&&0<mxBasePath.length?("/"==mxBasePath.substring(mxBasePath.length-1)&&(mxBasePath=mxBasePath.substring(0,mxBasePath.length-1)),mxClient.basePath=mxBasePath):mxClient.basePath=".","undefined"!=typeof mxImageBasePath&&0<mxImageBasePath.length?("/"==mxImageBasePath.substring(mxImageBasePath.length-1)&&(mxImageBasePath=mxImageBasePath.substring(0,mxImageBasePath.length-1)),mxClient.imageBasePath=mxImageBasePath):mxClient.imageBasePath=mxClient.basePath+"/images",mxClient.language=void 0!==mxLanguage?mxLanguage:mxClient.IS_IE?navigator.userLanguage:navigator.language,mxClient.defaultLanguage="undefined"!=typeof mxDefaultLanguage?mxDefaultLanguage:"en",mxLoadStylesheets&&mxClient.link("stylesheet",mxClient.basePath+"/css/common.css"),void 0!==mxLanguages&&(mxClient.languages=mxLanguages),mxClient.IS_IE){if(9<=document.documentMode)mxClient.IS_VML=!1,mxClient.IS_SVG=!0;else{8==document.documentMode?(document.namespaces.add(mxClient.VML_PREFIX,"urn:schemas-microsoft-com:vml","#default#VML"),document.namespaces.add(mxClient.OFFICE_PREFIX,"urn:schemas-microsoft-com:office:office","#default#VML")):(document.namespaces.add(mxClient.VML_PREFIX,"urn:schemas-microsoft-com:vml"),document.namespaces.add(mxClient.OFFICE_PREFIX,"urn:schemas-microsoft-com:office:office"));var ss=document.createStyleSheet();ss.cssText="v\\:*{behavior:url(#default#VML)}o\\:*{behavior:url(#default#VML)}",mxLoadStylesheets&&mxClient.link("stylesheet",mxClient.basePath+"/css/explorer.css")}window.attachEvent("onunload",mxClient.dispose)}var mxLog={consoleName:"Console",TRACE:!1,DEBUG:!0,WARN:!0,buffer:"",init:function(){if(null==mxLog.window&&null!=document.body){var e=mxLog.consoleName+" - mxGraph "+mxClient.VERSION,n=document.createElement("table");n.setAttribute("width","100%"),n.setAttribute("height","100%");var t=document.createElement("tbody"),a=document.createElement("tr"),i=document.createElement("td");if(i.style.verticalAlign="top",mxLog.textarea=document.createElement("textarea"),mxLog.textarea.setAttribute("readOnly","true"),mxLog.textarea.style.height="100%",mxLog.textarea.style.resize="none",mxLog.textarea.value=mxLog.buffer,mxLog.textarea.style.width=mxClient.IS_NS&&"BackCompat"!=document.compatMode?"99%":"100%",i.appendChild(mxLog.textarea),a.appendChild(i),t.appendChild(a),a=document.createElement("tr"),mxLog.td=document.createElement("td"),mxLog.td.style.verticalAlign="top",mxLog.td.setAttribute("height","30px"),a.appendChild(mxLog.td),t.appendChild(a),n.appendChild(t),mxLog.addButton("Info",function(e){mxLog.info()}),mxLog.addButton("DOM",function(e){e=mxUtils.getInnerHtml(document.body),mxLog.debug(e)}),mxLog.addButton("Trace",function(e){mxLog.TRACE=!mxLog.TRACE,mxLog.TRACE?mxLog.debug("Tracing enabled"):mxLog.debug("Tracing disabled")}),mxLog.addButton("Copy",function(e){try{mxUtils.copy(mxLog.textarea.value)}catch(e){mxUtils.alert(e)}}),mxLog.addButton("Show",function(e){try{mxUtils.popup(mxLog.textarea.value)}catch(e){mxUtils.alert(e)}}),mxLog.addButton("Clear",function(e){mxLog.textarea.value=""}),a=t=0,a="number"==typeof window.innerWidth?(t=window.innerHeight,window.innerWidth):(t=document.documentElement.clientHeight||document.body.clientHeight,document.body.clientWidth),mxLog.window=new mxWindow(e,n,Math.max(0,a-320),Math.max(0,t-210),300,160),mxLog.window.setMaximizable(!0),mxLog.window.setScrollable(!1),mxLog.window.setResizable(!0),mxLog.window.setClosable(!0),mxLog.window.destroyOnClose=!1,(mxClient.IS_NS||mxClient.IS_IE)&&!mxClient.IS_GC&&!mxClient.IS_SF&&"BackCompat"!=document.compatMode){var s=mxLog.window.getElement();e=function(e,n){mxLog.textarea.style.height=Math.max(0,s.offsetHeight-70)+"px"};mxLog.window.addListener(mxEvent.RESIZE_END,e),mxLog.window.addListener(mxEvent.MAXIMIZE,e),mxLog.window.addListener(mxEvent.NORMALIZE,e),mxLog.textarea.style.height="92px"}}},info:function(){mxLog.writeln(mxUtils.toString(navigator))},addButton:function(e,n){var t=document.createElement("button");mxUtils.write(t,e),mxEvent.addListener(t,"click",n),mxLog.td.appendChild(t)},isVisible:function(){return null!=mxLog.window&&mxLog.window.isVisible()},show:function(){mxLog.setVisible(!0)},setVisible:function(e){null==mxLog.window&&mxLog.init(),null!=mxLog.window&&mxLog.window.setVisible(e)},enter:function(e){if(mxLog.TRACE)return mxLog.writeln("Entering "+e),(new Date).getTime()},leave:function(e,n){if(mxLog.TRACE){var t=0!=n?" ("+((new Date).getTime()-n)+" ms)":"";mxLog.writeln("Leaving "+e+t)}},debug:function(){mxLog.DEBUG&&mxLog.writeln.apply(this,arguments)},warn:function(){mxLog.WARN&&mxLog.writeln.apply(this,arguments)},write:function(){for(var e="",n=0;n<arguments.length;n++)e+=arguments[n],n<arguments.length-1&&(e+=" ");null!=mxLog.textarea?(mxLog.textarea.value+=e,0<=navigator.userAgent.indexOf("Presto/2.5")&&(mxLog.textarea.style.visibility="hidden",mxLog.textarea.style.visibility="visible"),mxLog.textarea.scrollTop=mxLog.textarea.scrollHeight):mxLog.buffer+=e},writeln:function(){for(var e="",n=0;n<arguments.length;n++)e+=arguments[n],n<arguments.length-1&&(e+=" ");mxLog.write(e+"\n")}},mxObjectIdentity={FIELD_NAME:"mxObjectId",counter:0,get:function(e){if("object"==typeof e&&null==e[mxObjectIdentity.FIELD_NAME]){var n=mxUtils.getFunctionName(e.constructor);e[mxObjectIdentity.FIELD_NAME]=n+"#"+mxObjectIdentity.counter++}return e[mxObjectIdentity.FIELD_NAME]},clear:function(e){"object"==typeof e&&delete e[mxObjectIdentity.FIELD_NAME]}};function mxDictionary(){this.clear()}mxDictionary.prototype.map=null,mxDictionary.prototype.clear=function(){this.map={}},mxDictionary.prototype.get=function(e){return e=mxObjectIdentity.get(e),this.map[e]},mxDictionary.prototype.put=function(e,n){var t=mxObjectIdentity.get(e),a=this.map[t];return this.map[t]=n,a},mxDictionary.prototype.remove=function(e){e=mxObjectIdentity.get(e);var n=this.map[e];return delete this.map[e],n},mxDictionary.prototype.getKeys=function(){var e,n=[];for(e in this.map)n.push(e);return n},mxDictionary.prototype.getValues=function(){var e,n=[];for(e in this.map)n.push(this.map[e]);return n},mxDictionary.prototype.visit=function(e){for(var n in this.map)e(n,this.map[n])};var mxResources={resources:[],extension:mxResourceExtension,resourcesEncoded:!1,loadDefaultBundle:!0,loadSpecialBundle:!0,isLanguageSupported:function(e){return null==mxClient.languages||0<=mxUtils.indexOf(mxClient.languages,e)},getDefaultBundle:function(e,n){return mxResources.loadDefaultBundle||!mxResources.isLanguageSupported(n)?e+mxResources.extension:null},getSpecialBundle:function(e,n){if(null==mxClient.languages||!this.isLanguageSupported(n)){var t=n.indexOf("-");0<t&&(n=n.substring(0,t))}return mxResources.loadSpecialBundle&&mxResources.isLanguageSupported(n)&&n!=mxClient.defaultLanguage?e+"_"+n+mxResources.extension:null},add:function(e,n){if((n=null!=n?n:mxClient.language)!=mxConstants.NONE){var t=mxResources.getDefaultBundle(e,n);if(null!=t)try{var a=mxUtils.load(t);a.isReady()&&mxResources.parse(a.getText())}catch(e){}if(null!=(t=mxResources.getSpecialBundle(e,n)))try{(a=mxUtils.load(t)).isReady()&&mxResources.parse(a.getText())}catch(e){}}},parse:function(e){if(null!=e){e=e.split("\n");for(var n=0;n<e.length;n++)if("#"!=e[n].charAt(0)){var t=e[n].indexOf("=");if(0<t){var a=e[n].substring(0,t),i=e[n].length;13==e[n].charCodeAt(i-1)&&i--,t=e[n].substring(t+1,i),this.resourcesEncoded?(t=t.replace(/\\(?=u[a-fA-F\d]{4})/g,"%"),mxResources.resources[a]=unescape(t)):mxResources.resources[a]=t}}}},get:function(e,n,t){if(null==(e=mxResources.resources[e])&&(e=t),null!=e&&null!=n){t=[];for(var a=null,i=0;i<e.length;i++){var s=e.charAt(i);"{"==s?a="":null!=a&&"}"==s?(0<=(a=parseInt(a)-1)&&a<n.length&&t.push(n[a]),a=null):null!=a?a+=s:t.push(s)}e=t.join("")}return e}};function mxPoint(e,n){this.x=null!=e?e:0,this.y=null!=n?n:0}function mxRectangle(e,n,t,a){mxPoint.call(this,e,n),this.width=null!=t?t:0,this.height=null!=a?a:0}mxPoint.prototype.x=null,mxPoint.prototype.y=null,mxPoint.prototype.equals=function(e){return e.x==this.x&&e.y==this.y},mxPoint.prototype.clone=function(){return mxUtils.clone(this)},mxRectangle.prototype=new mxPoint,mxRectangle.prototype.constructor=mxRectangle,mxRectangle.prototype.width=null,mxRectangle.prototype.height=null,mxRectangle.prototype.setRect=function(e,n,t,a){this.x=e,this.y=n,this.width=t,this.height=a},mxRectangle.prototype.getCenterX=function(){return this.x+this.width/2},mxRectangle.prototype.getCenterY=function(){return this.y+this.height/2},mxRectangle.prototype.add=function(e){if(null!=e){var n=Math.min(this.x,e.x),t=Math.min(this.y,e.y),a=Math.max(this.x+this.width,e.x+e.width);e=Math.max(this.y+this.height,e.y+e.height),this.x=n,this.y=t,this.width=a-n,this.height=e-t}},mxRectangle.prototype.grow=function(e){this.x-=e,this.y-=e,this.width+=2*e,this.height+=2*e},mxRectangle.prototype.getPoint=function(){return new mxPoint(this.x,this.y)},mxRectangle.prototype.equals=function(e){return e.x==this.x&&e.y==this.y&&e.width==this.width&&e.height==this.height};var mxEffects={animateChanges:function(l,d,c){var m=0,u=function(){for(var e=!1,n=0;n<d.length;n++){var t=d[n];if(t instanceof mxGeometryChange||t instanceof mxTerminalChange||t instanceof mxValueChange||t instanceof mxChildChange||t instanceof mxStyleChange){var a=l.getView().getState(t.cell||t.child,!1);if(null!=a)if(e=!0,t.constructor!=mxGeometryChange||l.model.isEdge(t.cell))mxUtils.setOpacity(a.shape.node,100*m/10);else{var i=l.getView().scale,s=(t.geometry.x-t.previous.x)*i,o=(t.geometry.y-t.previous.y)*i,r=(t.geometry.width-t.previous.width)*i;i=(t.geometry.height-t.previous.height)*i;0==m?(a.x-=s,a.y-=o,a.width-=r,a.height-=i):(a.x+=s/10,a.y+=o/10,a.width+=r/10,a.height+=i/10),l.cellRenderer.redraw(a),mxEffects.cascadeOpacity(l,t.cell,100*m/10)}}}m<10&&e?(m++,window.setTimeout(u,p)):null!=c&&c()},p=30;u()},cascadeOpacity:function(e,n,t){for(var a=e.model.getChildCount(n),i=0;i<a;i++){var s=e.model.getChildAt(n,i),o=e.getView().getState(s);null!=o&&(mxUtils.setOpacity(o.shape.node,t),mxEffects.cascadeOpacity(e,s,t))}if(null!=(n=e.model.getEdges(n)))for(i=0;i<n.length;i++)null!=(a=e.getView().getState(n[i]))&&mxUtils.setOpacity(a.shape.node,t)},fadeOut:function(e,n,t,a,i,s){a=a||40,i=i||30;var o=n||100;if(mxUtils.setOpacity(e,o),s||null==s){var r=function(){o=Math.max(o-a,0),mxUtils.setOpacity(e,o),0<o?window.setTimeout(r,i):(e.style.visibility="hidden",t&&e.parentNode&&e.parentNode.removeChild(e))};window.setTimeout(r,i)}else e.style.visibility="hidden",t&&e.parentNode&&e.parentNode.removeChild(e)}},mxUtils={errorResource:"none"!=mxClient.language?"error":"",closeResource:"none"!=mxClient.language?"close":"",errorImage:mxClient.imageBasePath+"/error.gif",removeCursors:function(e){if(null!=e.style&&(e.style.cursor=""),null!=(e=e.childNodes))for(var n=e.length,t=0;t<n;t+=1)mxUtils.removeCursors(e[t])},getCurrentStyle:mxClient.IS_IE?function(e){return null!=e?e.currentStyle:null}:function(e){return null!=e?window.getComputedStyle(e,""):null},hasScrollbars:function(e){return null!=(e=mxUtils.getCurrentStyle(e))&&("scroll"==e.overflow||"auto"==e.overflow)},bind:function(e,n){return function(){return n.apply(e,arguments)}},eval:function(a){var b=null;if(0<=a.indexOf("function"))try{eval("var _mxJavaScriptExpression="+a),b=_mxJavaScriptExpression,_mxJavaScriptExpression=null}catch(e){mxLog.warn(e.message+" while evaluating "+a)}else try{b=eval(a)}catch(e){mxLog.warn(e.message+" while evaluating "+a)}return b},findNode:function(e,n,t){var a=e.getAttribute(n);if(null!=a&&a==t)return e;for(e=e.firstChild;null!=e;){if(null!=(a=mxUtils.findNode(e,n,t)))return a;e=e.nextSibling}return null},findNodeByAttribute:9<=document.documentMode?function(e,n,t){var a=null;if(null!=e)if(e.nodeType==mxConstants.NODETYPE_ELEMENT&&e.getAttribute(n)==t)a=e;else for(e=e.firstChild;null!=e&&null==a;)a=mxUtils.findNodeByAttribute(e,n,t),e=e.nextSibling;return a}:mxClient.IS_IE?function(e,n,t){return null==e?null:e.ownerDocument.selectSingleNode("//*[@"+n+"='"+t+"']")}:function(e,n,t){return null==e?null:e.ownerDocument.evaluate("//*[@"+n+"='"+t+"']",e.ownerDocument,null,XPathResult.ANY_TYPE,null).iterateNext()},getFunctionName:function(e){var n=null;if(null!=e)if(null!=e.name)n=e.name;else{for(e=e.toString(),n=9;" "==e.charAt(n);)n++;var t=e.indexOf("(",n);n=e.substring(n,t)}return n},indexOf:function(e,n){if(null!=e&&null!=n)for(var t=0;t<e.length;t++)if(e[t]==n)return t;return-1},remove:function(e,n){var t=null;if("object"==typeof n)for(var a=mxUtils.indexOf(n,e);0<=a;)n.splice(a,1),t=e,a=mxUtils.indexOf(n,e);for(var i in n)n[i]==e&&(delete n[i],t=e);return t},isNode:function(e,n,t,a){return!(null==e||isNaN(e.nodeType)||null!=n&&e.nodeName.toLowerCase()!=n.toLowerCase())&&(null==t||e.getAttribute(t)==a)},getChildNodes:function(e,n){n=n||mxConstants.NODETYPE_ELEMENT;for(var t=[],a=e.firstChild;null!=a;)a.nodeType==n&&t.push(a),a=a.nextSibling;return t},createXmlDocument:function(){var e=null;return document.implementation&&document.implementation.createDocument?e=document.implementation.createDocument("","",null):window.ActiveXObject&&(e=new ActiveXObject("Microsoft.XMLDOM")),e},parseXml:mxClient.IS_IE&&(void 0===document.documentMode||document.documentMode<9)?function(e){var n=mxUtils.createXmlDocument();return n.async="false",n.loadXML(e),n}:function(e){return(new DOMParser).parseFromString(e,"text/xml")},clearSelection:document.selection?function(){document.selection.empty()}:window.getSelection?function(){window.getSelection().removeAllRanges()}:void 0,getPrettyXml:function(e,n,t){var a=[];if(null!=e)if(n=n||" ",t=t||"",e.nodeType==mxConstants.NODETYPE_TEXT)a.push(e.nodeValue);else{a.push(t+"<"+e.nodeName);var i=e.attributes;if(null!=i)for(var s=0;s<i.length;s++){var o=mxUtils.htmlEntities(i[s].nodeValue);a.push(" "+i[s].nodeName+'="'+o+'"')}if(null!=(i=e.firstChild)){for(a.push(">\n");null!=i;)a.push(mxUtils.getPrettyXml(i,n,t+n)),i=i.nextSibling;a.push(t+"</"+e.nodeName+">\n")}else a.push("/>\n")}return a.join("")},removeWhitespace:function(e,n){for(var t=n?e.previousSibling:e.nextSibling;null!=t&&t.nodeType==mxConstants.NODETYPE_TEXT;){var a=n?t.previousSibling:t.nextSibling,i=mxUtils.getTextContent(t);0==mxUtils.trim(i).length&&t.parentNode.removeChild(t),t=a}},htmlEntities:function(e,n){return e=(e=(e=(e=(e=(e||"").replace(/&/g,"&")).replace(/"/g,""")).replace(/\'/g,"'")).replace(/</g,"<")).replace(/>/g,">"),(null==n||n)&&(e=e.replace(/\n/g,"
")),e},isVml:function(e){return null!=e&&"urn:schemas-microsoft-com:vml"==e.tagUrn},getXml:function(e,n){var t="";return null!=e&&(t=null==(t=e.xml)?e.innerHTML?e.innerHTML:(new XMLSerializer).serializeToString(e):t.replace(/\r\n\t[\t]*/g,"").replace(/>\r\n/g,">").replace(/\r\n/g,"\n")),t.replace(/\n/g,n||"
")},getTextContent:function(e){var n="";return null!=e&&(null!=e.firstChild&&(e=e.firstChild),n=e.nodeValue||""),n},getInnerHtml:mxClient.IS_IE?function(e){return null!=e?e.innerHTML:""}:function(e){return null!=e?(new XMLSerializer).serializeToString(e):""},getOuterHtml:mxClient.IS_IE?function(e){if(null==e)return"";if(null!=e.outerHTML)return e.outerHTML;var n=[];n.push("<"+e.nodeName);var t=e.attributes;if(null!=t)for(var a=0;a<t.length;a++){var i=t[a].nodeValue;null!=i&&0<i.length&&(n.push(" "),n.push(t[a].nodeName),n.push('="'),n.push(i),n.push('"'))}return 0==e.innerHTML.length?n.push("/>"):(n.push(">"),n.push(e.innerHTML),n.push("</"+e.nodeName+">")),n.join("")}:function(e){return null!=e?(new XMLSerializer).serializeToString(e):""},write:function(e,n){var t=e.ownerDocument.createTextNode(n);return null!=e&&e.appendChild(t),t},writeln:function(e,n){var t=e.ownerDocument.createTextNode(n);return null!=e&&(e.appendChild(t),e.appendChild(document.createElement("br"))),t},br:function(e,n){n=n||1;for(var t=null,a=0;a<n;a++)null!=e&&(t=e.ownerDocument.createElement("br"),e.appendChild(t));return t},button:function(e,n,t){return t=(t=null!=t?t:document).createElement("button"),mxUtils.write(t,e),mxEvent.addListener(t,"click",function(e){n(e)}),t},para:function(e,n){var t=document.createElement("p");return mxUtils.write(t,n),null!=e&&e.appendChild(t),t},addTransparentBackgroundFilter:function(e){e.style.filter+="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+mxClient.imageBasePath+"/transparent.gif', sizingMethod='scale')"},linkAction:function(e,n,t,a,i){return mxUtils.link(e,n,function(){t.execute(a)},i)},linkInvoke:function(e,n,t,a,i,s){return mxUtils.link(e,n,function(){t[a](i)},s)},link:function(e,n,t,a){var i=document.createElement("span");return i.style.color="blue",i.style.textDecoration="underline",i.style.cursor="pointer",null!=a&&(i.style.paddingLeft=a+"px"),mxEvent.addListener(i,"click",t),mxUtils.write(i,n),null!=e&&e.appendChild(i),i},fit:function(e){var n=parseInt(e.offsetLeft),t=parseInt(e.offsetWidth),a=document.body,i=document.documentElement,s=(a.scrollLeft||i.scrollLeft)+(a.clientWidth||i.clientWidth);s<n+t&&(e.style.left=Math.max(a.scrollLeft||i.scrollLeft,s-t)+"px"),n=parseInt(e.offsetTop),t=parseInt(e.offsetHeight),(s=(a.scrollTop||i.scrollTop)+Math.max(a.clientHeight||0,i.clientHeight))<n+t&&(e.style.top=Math.max(a.scrollTop||i.scrollTop,s-t)+"px")},open:function(e){if(mxClient.IS_NS){try{netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect")}catch(e){return mxUtils.alert("Permission to read file denied."),""}var n=Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);return n.initWithPath(e),n.exists()?((e=Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance(Components.interfaces.nsIFileInputStream)).init(n,1,4,null),(n=Components.classes["@mozilla.org/scriptableinputstream;1"].createInstance(Components.interfaces.nsIScriptableInputStream)).init(e),n.read(n.available())):(mxUtils.alert("File not found."),"")}return e=(n=new ActiveXObject("Scripting.FileSystemObject").OpenTextFile(e,1)).readAll(),n.close(),e},save:function(e,n){if(mxClient.IS_NS){try{netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect")}catch(e){return void mxUtils.alert("Permission to write file denied.")}var t=Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);t.initWithPath(e),t.exists()||t.create(0,420);var a=Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream);a.init(t,34,4,null),a.write(n,n.length),a.flush(),a.close()}else(t=new ActiveXObject("Scripting.FileSystemObject").CreateTextFile(e,!0)).Write(n),t.Close()},saveAs:function(e){var n=document.createElement("iframe");n.setAttribute("src",""),n.style.visibility="hidden",document.body.appendChild(n);try{if(mxClient.IS_NS){var t=n.contentDocument;t.open(),t.write(e),t.close();try{netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"),n.focus(),saveDocument(t)}catch(e){mxUtils.alert("Permission to save document denied.")}}else(t=n.contentWindow.document).write(e),t.execCommand("SaveAs",!1,document.location)}finally{document.body.removeChild(n)}},copy:function(e){if(window.clipboardData)window.clipboardData.setData("Text",e);else{netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");var n=Components.classes["@mozilla.org/widget/clipboard;1"].createInstance(Components.interfaces.nsIClipboard);if(n){var t=Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);if(t){t.addDataFlavor("text/unicode");var a=Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);a.data=e,t.setTransferData("text/unicode",a,2*e.length),n.setData(t,null,Components.interfaces.nsIClipboard.kGlobalClipboard)}}}},load:function(e){return(e=new mxXmlRequest(e,null,"GET",!1)).send(),e},get:function(e,n,t){return new mxXmlRequest(e,null,"GET").send(n,t)},post:function(e,n,t,a){return new mxXmlRequest(e,n).send(t,a)},submit:function(e,n,t,a){return new mxXmlRequest(e,n).simulate(t,a)},loadInto:function(e,n,t){mxClient.IS_IE?n.onreadystatechange=function(){4==n.readyState&&t()}:n.addEventListener("load",t,!1),n.load(e)},getValue:function(e,n,t){return null==(e=null!=e?e[n]:null)&&(e=t),e},getNumber:function(e,n,t){return null==(e=null!=e?e[n]:null)&&(e=t||0),Number(e)},getColor:function(e,n,t){return null==(e=null!=e?e[n]:null)?e=t:e==mxConstants.NONE&&(e=null),e},clone:function(e,n,t){t=null!=t&&t;var a=null;if(null!=e&&"function"==typeof e.constructor){var i;a=new e.constructor;for(i in e)i!=mxObjectIdentity.FIELD_NAME&&(null==n||mxUtils.indexOf(n,i)<0)&&(a[i]=t||"object"!=typeof e[i]?e[i]:mxUtils.clone(e[i]))}return a},equalPoints:function(e,n){if(null==e&&null!=n||null!=e&&null==n||null!=e&&null!=n&&e.length!=n.length)return!1;if(null!=e&&null!=n)for(var t=0;t<e.length;t++)if(e[t]==n[t]||null!=e[t]&&!e[t].equals(n[t]))return!1;return!0},equalEntries:function(e,n){if(null==e&&null!=n||null!=e&&null==n||null!=e&&null!=n&&e.length!=n.length)return!1;if(null!=e&&null!=n)for(var t in e)if(e[t]!=n[t])return!1;return!0},extend:function(e,n){var t=function(){};t.prototype=n.prototype,e.prototype=new t,e.prototype.constructor=e},toString:function(e){var n,t="";for(n in e)try{if(null==e[n])t+=n+" = [null]\n";else if("function"==typeof e[n])t+=n+" => [Function]\n";else if("object"==typeof e[n])t=t+(n+" => [")+mxUtils.getFunctionName(e[n].constructor)+"]\n";else t+=n+" = "+e[n]+"\n"}catch(e){t+=n+"="+e.message}return t},toRadians:function(e){return Math.PI*e/180},arcToCurves:function(e,n,t,a,i,s,o,r,l){if(r-=e,l-=n,0===t||0===a)return h;t=Math.abs(t),a=Math.abs(a);var d=-r/2,c=-l/2,m=Math.cos(i*Math.PI/180);i=m*d+(h=Math.sin(i*Math.PI/180))*c;d=-1*h*d+m*c;r=m*(c=(s=1<(v=(c=i*i)/(g=t*t)+(p=d*d)/(A=a*a))?(t*=Math.sqrt(v),a*=Math.sqrt(v),0):(v=1,s===o&&(v=-1),v*Math.sqrt((g*A-g*p-A*c)/(g*p+A*c))))*t*d/a)-h*(p=-1*s*a*i/t)+r/2,l=h*c+m*p+l/2,s=0<=(g=Math.atan2((d-p)/a,(i-c)/t)-Math.atan2(0,1))?g:2*Math.PI+g,i=0<=(g=Math.atan2((-d-p)/a,(-i-c)/t)-Math.atan2((d-p)/a,(i-c)/t))?g:2*Math.PI+g,0==o&&0<i?i-=2*Math.PI:0!=o&&i<0&&(i+=2*Math.PI),o=2*i/Math.PI,i/=o=Math.ceil(o<0?-1*o:o),d=8/3*Math.sin(i/4)*Math.sin(i/4)/Math.sin(i/2),c=m*t,m*=a,t*=h,a*=h;for(var u=Math.cos(s),p=-d*(c*(b=Math.sin(s))+a*u),g=-d*(t*b-m*u),v=A=0,h=[],f=0;f<o;++f){s+=i;var b,A=c*(u=Math.cos(s))-a*(b=Math.sin(s))+r,E=(v=t*u+m*b+l,-d*(c*b+a*u));u=-d*(t*b-m*u);h[b=6*f]=Number(p+e),h[b+1]=Number(g+n),h[b+2]=Number(A-E+e),h[b+3]=Number(v-u+n),h[b+4]=Number(A+e),h[b+5]=Number(v+n),p=A+E,g=v+u}return h},getBoundingBox:function(e,n){var t=null;if(null!=e&&null!=n&&0!=n){var a=mxUtils.toRadians(n),i=(t=Math.cos(a),Math.sin(a)),s=new mxPoint(e.x+e.width/2,e.y+e.height/2),o=new mxPoint(e.x,e.y),r=new mxPoint((a=new mxPoint(e.x+e.width,e.y)).x,e.y+e.height),l=new mxPoint(e.x,r.y);o=mxUtils.getRotatedPoint(o,t,i,s),a=mxUtils.getRotatedPoint(a,t,i,s),r=mxUtils.getRotatedPoint(r,t,i,s),l=mxUtils.getRotatedPoint(l,t,i,s);(t=new mxRectangle(o.x,o.y,0,0)).add(new mxRectangle(a.x,a.y,0,0)),t.add(new mxRectangle(r.x,r.y,0,0)),t.add(new mxRectangle(l.x,l.y,0,0))}return t},getRotatedPoint:function(e,n,t,a){a=null!=a?a:new mxPoint;var i=e.x-a.x;return new mxPoint(i*n-(e=e.y-a.y)*t+a.x,e*n+i*t+a.y)},getPortConstraints:function(e,n,t,a){return null==(e=mxUtils.getValue(e.style,mxConstants.STYLE_PORT_CONSTRAINT,null))?a:(a=e.toString(),e=mxConstants.DIRECTION_MASK_NONE,0<=a.indexOf(mxConstants.DIRECTION_NORTH)&&(e|=mxConstants.DIRECTION_MASK_NORTH),0<=a.indexOf(mxConstants.DIRECTION_WEST)&&(e|=mxConstants.DIRECTION_MASK_WEST),0<=a.indexOf(mxConstants.DIRECTION_SOUTH)&&(e|=mxConstants.DIRECTION_MASK_SOUTH),0<=a.indexOf(mxConstants.DIRECTION_EAST)&&(e|=mxConstants.DIRECTION_MASK_EAST),e)},reversePortConstraints:function(e){return(e&mxConstants.DIRECTION_MASK_WEST)<<3|(e&mxConstants.DIRECTION_MASK_NORTH)<<1|(e&mxConstants.DIRECTION_MASK_SOUTH)>>1|(e&mxConstants.DIRECTION_MASK_EAST)>>3},findNearestSegment:function(e,n,t){var a=-1;if(0<e.absolutePoints.length)for(var i=e.absolutePoints[0],s=null,o=1;o<e.absolutePoints.length;o++){var r=e.absolutePoints[o];i=mxUtils.ptSegDistSq(i.x,i.y,r.x,r.y,n,t);(null==s||i<s)&&(s=i,a=o-1),i=r}return a},rectangleIntersectsSegment:function(e,n,t){var a=e.y,i=e.x,s=a+e.height,o=i+e.width;e=n.x;var r=t.x;if(n.x>t.x&&(e=t.x,r=n.x),o<r&&(r=o),e<i&&(e=i),r<e)return!1;i=n.y,o=t.y;var l=t.x-n.x;return 1e-7<Math.abs(l)&&(i=(t=(t.y-n.y)/l)*e+(n=n.y-t*n.x),o=t*r+n),o<i&&(n=o,o=i,i=n),s<o&&(o=s),i<a&&(i=a),!(o<i)},contains:function(e,n,t){return e.x<=n&&e.x+e.width>=n&&e.y<=t&&e.y+e.height>=t},intersects:function(e,n){var t=e.width,a=e.height,i=n.width,s=n.height;if(i<=0||s<=0||t<=0||a<=0)return!1;var o=e.x,r=e.y,l=n.x,d=n.y;s+=d,t+=o,a+=r;return((i=i+l)<l||o<i)&&(s<d||r<s)&&(t<o||l<t)&&(a<r||d<a)},intersectsHotspot:function(e,n,t,a,i,s){if(i=null!=i?i:0,s=null!=s?s:0,0<(a=null!=a?a:1)){var o=e.getCenterX(),r=e.getCenterY(),l=e.width,d=e.height,c=mxUtils.getValue(e.style,mxConstants.STYLE_STARTSIZE)*e.view.scale;return 0<c&&(mxUtils.getValue(e.style,mxConstants.STYLE_HORIZONTAL,!0)?(r=e.y+c/2,d=c):(o=e.x+c/2,l=c)),l=Math.max(i,l*a),d=Math.max(i,d*a),0<s&&(l=Math.min(l,s),d=Math.min(d,s)),a=new mxRectangle(o-l/2,r-d/2,l,d),0!=(o=mxUtils.toRadians(mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION)||0))&&(i=Math.cos(-o),s=Math.sin(-o),o=new mxPoint(e.getCenterX(),e.getCenterY()),n=(e=mxUtils.getRotatedPoint(new mxPoint(n,t),i,s,o)).x,t=e.y),mxUtils.contains(a,n,t)}return!0},getOffset:function(e,n){var t=0,a=0;if(null!=n&&n){var i=document.body,s=document.documentElement;t=t+(i.scrollLeft||s.scrollLeft),a=a+(i.scrollTop||s.scrollTop)}for(;e.offsetParent;)t+=e.offsetLeft,a+=e.offsetTop,e=e.offsetParent;return new mxPoint(t,a)},getScrollOrigin:function(e){for(var n=document.body,t=document.documentElement,a=new mxPoint(n.scrollLeft||t.scrollLeft,n.scrollTop||t.scrollTop);null!=e&&e!=n&&e!=t;)!isNaN(e.scrollLeft)&&!isNaN(e.scrollTop)&&(a.x+=e.scrollLeft,a.y+=e.scrollTop),e=e.parentNode;return a},convertPoint:function(e,n,t){var a=mxUtils.getScrollOrigin(e);return(e=mxUtils.getOffset(e)).x-=a.x,e.y-=a.y,new mxPoint(n-e.x,t-e.y)},ltrim:function(e,n){return e.replace(RegExp("^["+(n||"\\s")+"]+","g"),"")},rtrim:function(e,n){return e.replace(RegExp("["+(n||"\\s")+"]+$","g"),"")},trim:function(e,n){return mxUtils.ltrim(mxUtils.rtrim(e,n),n)},isNumeric:function(e){return null!=e&&(null==e.length||0<e.length&&e.indexOf("0x")<0&&e.indexOf("0X")<0)&&!isNaN(e)},mod:function(e,n){return(e%n+n)%n},intersection:function(e,n,t,a,i,s,o,r){var l=(r-s)*(t-e)-(o-i)*(a-n);return o=((o-i)*(n-s)-(r-s)*(e-i))/l,i=((t-e)*(n-s)-(a-n)*(e-i))/l,0<=o&&o<=1&&0<=i&&i<=1?new mxPoint(e+o*(t-e),n+o*(a-n)):null},ptSegDistSq:function(e,n,t,a,i,s){return t=(i-=e)*(t-=e)+(s-=n)*(a-=n)<=0?0:(e=(i=t-i)*t+(s=a-s)*a)<=0?0:e*e/(t*t+a*a),(i=i*i+s*s-t)<0&&(i=0),i},relativeCcw:function(e,n,t,a,i,s){return 0==(e=(i-=e)*(a-=n)-(s-=n)*(t-=e))&&(0<(e=i*t+s*a)&&((e=(i-t)*t+(s-a)*a)<0&&(e=0))),e<0?-1:0<e?1:0},animateChanges:function(e,n){mxEffects.animateChanges.apply(this,arguments)},cascadeOpacity:function(e,n,t){mxEffects.cascadeOpacity.apply(this,arguments)},fadeOut:function(e,n,t,a,i,s){mxEffects.fadeOut.apply(this,arguments)},setOpacity:function(e,n){mxUtils.isVml(e)?e.style.filter=100<=n?null:"alpha(opacity="+n/5+")":mxClient.IS_IE&&(void 0===document.documentMode||document.documentMode<9)?e.style.filter=100<=n?null:"alpha(opacity="+n+")":e.style.opacity=n/100},createImage:function(e){var n=null;return mxClient.IS_IE6&&"CSS1Compat"!=document.compatMode?((n=document.createElement(mxClient.VML_PREFIX+":image")).setAttribute("src",e),n.style.borderStyle="none"):((n=document.createElement("img")).setAttribute("src",e),n.setAttribute("border","0")),n},sortCells:function(e,i){i=null==i||i;var s=new mxDictionary;return e.sort(function(e,n){var t=s.get(e);null==t&&(t=mxCellPath.create(e).split(mxCellPath.PATH_SEPARATOR),s.put(e,t));var a=s.get(n);return null==a&&(a=mxCellPath.create(n).split(mxCellPath.PATH_SEPARATOR),s.put(n,a)),0==(t=mxCellPath.compare(t,a))?0:0<t==i?1:-1}),e},getStylename:function(e){return null!=e&&(e=e.split(";")[0]).indexOf("=")<0?e:""},getStylenames:function(e){var n=[];if(null!=e){e=e.split(";");for(var t=0;t<e.length;t++)e[t].indexOf("=")<0&&n.push(e[t])}return n},indexOfStylename:function(e,n){if(null!=e&&null!=n)for(var t=e.split(";"),a=0,i=0;i<t.length;i++){if(t[i]==n)return a;a+=t[i].length+1}return-1},addStylename:function(e,n){return mxUtils.indexOfStylename(e,n)<0&&(null==e?e="":0<e.length&&";"!=e.charAt(e.length-1)&&(e+=";"),e+=n),e},removeStylename:function(e,n){var t=[];if(null!=e)for(var a=e.split(";"),i=0;i<a.length;i++)a[i]!=n&&t.push(a[i]);return t.join(";")},removeAllStylenames:function(e){var n=[];if(null!=e){e=e.split(";");for(var t=0;t<e.length;t++)0<=e[t].indexOf("=")&&n.push(e[t])}return n.join(";")},setCellStyles:function(e,n,t,a){if(null!=n&&0<n.length){e.beginUpdate();try{for(var i=0;i<n.length;i++)if(null!=n[i]){var s=mxUtils.setStyle(e.getStyle(n[i]),t,a);e.setStyle(n[i],s)}}finally{e.endUpdate()}}},setStyle:function(e,n,t){var a=null!=t&&(void 0===t.length||0<t.length);if(null==e||0==e.length)a&&(e=n+"="+t);else{var i=e.indexOf(n+"=");i<0?a&&(a=";"==e.charAt(e.length-1)?"":";",e=e+a+n+"="+t):(n=a?n+"="+t:"",t=e.indexOf(";",i),a||t++,e=e.substring(0,i)+n+(i<t?e.substring(t):""))}return e},setCellStyleFlags:function(e,n,t,a,i){if(null!=n&&0<n.length){e.beginUpdate();try{for(var s=0;s<n.length;s++)if(null!=n[s]){var o=mxUtils.setStyleFlag(e.getStyle(n[s]),t,a,i);e.setStyle(n[s],o)}}finally{e.endUpdate()}}},setStyleFlag:function(e,n,t,a){if(null==e||0==e.length)e=a||null==a?n+"="+t:n+"=0";else{var i=e.indexOf(n+"=");if(i<0)i=";"==e.charAt(e.length-1)?"":";",e=a||null==a?e+i+n+"="+t:e+i+n+"=0";else{var s=e.indexOf(";",i),o="";o=s<0?e.substring(i+n.length+1):e.substring(i+n.length+1,s),o=null==a?parseInt(o)^t:a?parseInt(o)|t:parseInt(o)&~t;e=e.substring(0,i)+n+"="+o+(0<=s?e.substring(s):"")}}return e},getAlignmentAsPoint:function(e,n){var t=0,a=0;return e==mxConstants.ALIGN_CENTER?t=-.5:e==mxConstants.ALIGN_RIGHT&&(t=-1),n==mxConstants.ALIGN_MIDDLE?a=-.5:n==mxConstants.ALIGN_BOTTOM&&(a=-1),new mxPoint(t,a)},getSizeForString:function(e,n,t){n=null!=n?n:mxConstants.DEFAULT_FONTSIZE,t=null!=t?t:mxConstants.DEFAULT_FONTFAMILY;var a=document.createElement("div");return a.style.fontFamily=t,a.style.fontSize=Math.round(n)+"px",a.style.lineHeight=Math.round(n*mxConstants.LINE_HEIGHT)+"px",a.style.position="absolute",a.style.whiteSpace="nowrap",a.style.visibility="hidden",a.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",a.style.zoom="1",a.innerHTML=e,document.body.appendChild(a),e=new mxRectangle(0,0,a.offsetWidth,a.offsetHeight),document.body.removeChild(a),e},getViewXml:function(e,n,t,a,i){a=null!=a?a:0,i=null!=i?i:0,n=null!=n?n:1,null==t&&(t=[e.getModel().getRoot()]);var s=e.getView(),o=null,r=s.isEventsEnabled();s.setEventsEnabled(!1);var l=s.drawPane,d=s.overlayPane;e.dialect==mxConstants.DIALECT_SVG?(s.drawPane=document.createElementNS(mxConstants.NS_SVG,"g"),s.canvas.appendChild(s.drawPane),s.overlayPane=document.createElementNS(mxConstants.NS_SVG,"g")):(s.drawPane=s.drawPane.cloneNode(!1),s.canvas.appendChild(s.drawPane),s.overlayPane=s.overlayPane.cloneNode(!1)),s.canvas.appendChild(s.overlayPane);var c=s.getTranslate();s.translate=new mxPoint(a,i),n=new mxTemporaryCellStates(e.getView(),n,t);try{o=(new mxCodec).encode(e.getView())}finally{n.destroy(),s.translate=c,s.canvas.removeChild(s.drawPane),s.canvas.removeChild(s.overlayPane),s.drawPane=l,s.overlayPane=d,s.setEventsEnabled(r)}return o},getScaleForPageCount:function(e,n,t,a){if(e<1)return 1;a=null!=a?a:0;var i=(t=null!=t?t:mxConstants.PAGE_FORMAT_A4_PORTRAIT).width-2*a;t=t.height-2*a,a=n.getGraphBounds().clone(),n=n.getView().getScale(),a.width/=n,a.height/=n,t=(n=a.width)/a.height/(i/t),a=Math.sqrt(e);var s=Math.sqrt(t);if(t=a*s,a/=s,t<1&&e<a){var o=a/e;a=e,t/=o}for(a<1&&e<t&&(o=t/e,t=e,a/=o),o=Math.ceil(t)*Math.ceil(a),s=0;e<o;){o=Math.floor(t)/t;var r=Math.floor(a)/a;if(1==o&&(o=Math.floor(t-1)/t),1==r&&(r=Math.floor(a-1)/a),t*=o=r<o?o:r,a*=o,o=Math.ceil(t)*Math.ceil(a),10<++s)break}return i*t/n*.99999},show:function(e,n,t,a){if(t=null!=t?t:0,a=null!=a?a:0,null==n?n=window.open().document:n.open(),t=-(i=e.getGraphBounds()).x+t,a=-i.y+a,mxClient.IS_IE){for(var i="<html><head>",s=document.getElementsByTagName("base"),o=0;o<s.length;o++)i+=s[o].outerHTML;for(i+="<style>",o=0;o<document.styleSheets.length;o++)try{i+=document.styleSheets(o).cssText}catch(e){}i+="</style></head>",i+="<body>",i+=e.container.innerHTML,i+="</body>",i+="<html>",n.writeln(i),n.close(),null!=(e=n.body.getElementsByTagName("DIV")[0])&&(e.style.position="absolute",e.style.left=t+"px",e.style.top=a+"px")}else{for(n.writeln("<html"),n.writeln("<head>"),s=document.getElementsByTagName("base"),o=0;o<s.length;o++)n.writeln(mxUtils.getOuterHtml(s[o]));for(s=document.getElementsByTagName("link"),o=0;o<s.length;o++)n.writeln(mxUtils.getOuterHtml(s[o]));for(s=document.getElementsByTagName("style"),o=0;o<s.length;o++)n.writeln(mxUtils.getOuterHtml(s[o]));for(n.writeln("</head>"),n.writeln("</html>"),n.close(),null==n.body&&n.documentElement.appendChild(n.createElement("body")),n.body.style.overflow="auto",e=e.container.firstChild;null!=e;)o=e.cloneNode(!0),n.body.appendChild(o),e=e.nextSibling;null!=(e=n.getElementsByTagName("g")[0])&&(e.setAttribute("transform","translate("+t+","+a+")"),(t=e.ownerSVGElement).setAttribute("width",i.width+Math.max(i.x,0)+3),t.setAttribute("height",i.height+Math.max(i.y,0)+3))}return mxUtils.removeCursors(n.body),n},printScreen:function(e){var n=window.open();mxUtils.show(e,n.document),e=function(){n.focus(),n.print(),n.close()},mxClient.IS_GC?n.setTimeout(e,500):e()},popup:function(e,n){if(n){var t=document.createElement("div");t.style.overflow="scroll",t.style.width="636px",t.style.height="460px";var a=document.createElement("pre");a.innerHTML=mxUtils.htmlEntities(e,!1).replace(/\n/g,"<br>").replace(/ /g," "),t.appendChild(a),(t=new mxWindow("Popup Window",t,document.body.clientWidth/2-320,(document.body.clientHeight||document.documentElement.clientHeight)/2-240,640,480,!1,!0)).setClosable(!0),t.setVisible(!0)}else mxClient.IS_NS?((t=window.open()).document.writeln("<pre>"+mxUtils.htmlEntities(e)+"</pre"),t.document.close()):((a=(t=window.open()).document.createElement("pre")).innerHTML=mxUtils.htmlEntities(e,!1).replace(/\n/g,"<br>").replace(/ /g," "),t.document.body.appendChild(a))},alert:function(e){alert(e)},prompt:function(e,n){return prompt(e,n)},confirm:function(e){return confirm(e)},error:function(e,n,t,a){var i=document.createElement("div");i.style.padding="20px";var s=document.createElement("img");s.setAttribute("src",a||mxUtils.errorImage),s.setAttribute("valign","bottom"),s.style.verticalAlign="middle",i.appendChild(s),i.appendChild(document.createTextNode(" ")),i.appendChild(document.createTextNode(" ")),i.appendChild(document.createTextNode(" ")),mxUtils.write(i,e),e=document.body.clientWidth,a=document.body.clientHeight||document.documentElement.clientHeight;var o=new mxWindow(mxResources.get(mxUtils.errorResource)||mxUtils.errorResource,i,(e-n)/2,a/4,n,null,!1,!0);return t&&(mxUtils.br(i),n=document.createElement("p"),t=document.createElement("button"),mxClient.IS_IE?t.style.cssText="float:right":t.setAttribute("style","float:right"),mxEvent.addListener(t,"click",function(e){o.destroy()}),mxUtils.write(t,mxResources.get(mxUtils.closeResource)||mxUtils.closeResource),n.appendChild(t),i.appendChild(n),mxUtils.br(i),o.setClosable(!0)),o.setVisible(!0),o},makeDraggable:function(e,n,t,i,a,s,o,r,l,d){return(e=new mxDragSource(e,t)).dragOffset=new mxPoint(null!=a?a:0,null!=s?s:mxConstants.TOOLTIP_VERTICAL_OFFSET),e.autoscroll=o,e.setGuidesEnabled(!1),null!=l&&(e.highlightDropTargets=l),null!=d&&(e.getDropTarget=d),e.getGraphForEvent=function(e){return"function"==typeof n?n(e):n},null!=i&&(e.createDragElement=function(){return i.cloneNode(!0)},r&&(e.createPreviewElement=function(e){var n=i.cloneNode(!0),t=parseInt(n.style.width),a=parseInt(n.style.height);return n.style.width=Math.round(t*e.view.scale)+"px",n.style.height=Math.round(a*e.view.scale)+"px",n})),e}},mxConstants={DEFAULT_HOTSPOT:.3,MIN_HOTSPOT_SIZE:8,MAX_HOTSPOT_SIZE:0,RENDERING_HINT_EXACT:"exact",RENDERING_HINT_FASTER:"faster",RENDERING_HINT_FASTEST:"fastest",DIALECT_SVG:"svg",DIALECT_VML:"vml",DIALECT_MIXEDHTML:"mixedHtml",DIALECT_PREFERHTML:"preferHtml",DIALECT_STRICTHTML:"strictHtml",NS_SVG:"http://www.w3.org/2000/svg",NS_XHTML:"http://www.w3.org/1999/xhtml",NS_XLINK:"http://www.w3.org/1999/xlink",SHADOWCOLOR:"gray",SHADOW_OFFSET_X:2,SHADOW_OFFSET_Y:3,SHADOW_OPACITY:1,NODETYPE_ELEMENT:1,NODETYPE_ATTRIBUTE:2,NODETYPE_TEXT:3,NODETYPE_CDATA:4,NODETYPE_ENTITY_REFERENCE:5,NODETYPE_ENTITY:6,NODETYPE_PROCESSING_INSTRUCTION:7,NODETYPE_COMMENT:8,NODETYPE_DOCUMENT:9,NODETYPE_DOCUMENTTYPE:10,NODETYPE_DOCUMENT_FRAGMENT:11,NODETYPE_NOTATION:12,TOOLTIP_VERTICAL_OFFSET:16,DEFAULT_VALID_COLOR:"#00FF00",DEFAULT_INVALID_COLOR:"#FF0000",HIGHLIGHT_STROKEWIDTH:3,CURSOR_MOVABLE_VERTEX:"move",CURSOR_MOVABLE_EDGE:"move",CURSOR_LABEL_HANDLE:"default",CURSOR_BEND_HANDLE:"pointer",CURSOR_CONNECT:"pointer",HIGHLIGHT_COLOR:"#00FF00",CONNECT_TARGET_COLOR:"#0000FF",INVALID_CONNECT_TARGET_COLOR:"#FF0000",DROP_TARGET_COLOR:"#0000FF",VALID_COLOR:"#00FF00",INVALID_COLOR:"#FF0000",EDGE_SELECTION_COLOR:"#00FF00",VERTEX_SELECTION_COLOR:"#00FF00",VERTEX_SELECTION_STROKEWIDTH:1,EDGE_SELECTION_STROKEWIDTH:1,VERTEX_SELECTION_DASHED:!0,EDGE_SELECTION_DASHED:!0,GUIDE_COLOR:"#FF0000",GUIDE_STROKEWIDTH:1,OUTLINE_COLOR:"#0099FF",OUTLINE_STROKEWIDTH:mxClient.IS_IE?2:3,HANDLE_SIZE:7,LABEL_HANDLE_SIZE:4,HANDLE_FILLCOLOR:"#00FF00",HANDLE_STROKECOLOR:"black",LABEL_HANDLE_FILLCOLOR:"yellow",CONNECT_HANDLE_FILLCOLOR:"#0000FF",LOCKED_HANDLE_FILLCOLOR:"#FF0000",OUTLINE_HANDLE_FILLCOLOR:"#00FFFF",OUTLINE_HANDLE_STROKECOLOR:"#0033FF",DEFAULT_FONTFAMILY:"Arial,Helvetica",DEFAULT_FONTSIZE:11,LINE_HEIGHT:1.2,DEFAULT_FONTSTYLE:0,DEFAULT_STARTSIZE:40,DEFAULT_MARKERSIZE:6,DEFAULT_IMAGESIZE:24,ENTITY_SEGMENT:30,RECTANGLE_ROUNDING_FACTOR:.15,LINE_ARCSIZE:20,ARROW_SPACING:10,ARROW_WIDTH:30,ARROW_SIZE:30,PAGE_FORMAT_A4_PORTRAIT:new mxRectangle(0,0,826,1169),PAGE_FORMAT_A4_LANDSCAPE:new mxRectangle(0,0,1169,826),PAGE_FORMAT_LETTER_PORTRAIT:new mxRectangle(0,0,850,1100),PAGE_FORMAT_LETTER_LANDSCAPE:new mxRectangle(0,0,1100,850),NONE:"none",STYLE_PERIMETER:"perimeter",STYLE_SOURCE_PORT:"sourcePort",STYLE_TARGET_PORT:"targetPort",STYLE_PORT_CONSTRAINT:"portConstraint",STYLE_OPACITY:"opacity",STYLE_TEXT_OPACITY:"textOpacity",STYLE_OVERFLOW:"overflow",STYLE_ORTHOGONAL:"orthogonal",STYLE_EXIT_X:"exitX",STYLE_EXIT_Y:"exitY",STYLE_EXIT_PERIMETER:"exitPerimeter",STYLE_ENTRY_X:"entryX",STYLE_ENTRY_Y:"entryY",STYLE_ENTRY_PERIMETER:"entryPerimeter",STYLE_WHITE_SPACE:"whiteSpace",STYLE_ROTATION:"rotation",STYLE_FILLCOLOR:"fillColor",STYLE_SWIMLANE_FILLCOLOR:"swimlaneFillColor",STYLE_GRADIENTCOLOR:"gradientColor",STYLE_GRADIENT_DIRECTION:"gradientDirection",STYLE_STROKECOLOR:"strokeColor",STYLE_SEPARATORCOLOR:"separatorColor",STYLE_STROKEWIDTH:"strokeWidth",STYLE_ALIGN:"align",STYLE_VERTICAL_ALIGN:"verticalAlign",STYLE_LABEL_POSITION:"labelPosition",STYLE_VERTICAL_LABEL_POSITION:"verticalLabelPosition",STYLE_IMAGE_ASPECT:"imageAspect",STYLE_IMAGE_ALIGN:"imageAlign",STYLE_IMAGE_VERTICAL_ALIGN:"imageVerticalAlign",STYLE_GLASS:"glass",STYLE_IMAGE:"image",STYLE_IMAGE_WIDTH:"imageWidth",STYLE_IMAGE_HEIGHT:"imageHeight",STYLE_IMAGE_BACKGROUND:"imageBackground",STYLE_IMAGE_BORDER:"imageBorder",STYLE_FLIPH:"flipH",STYLE_FLIPV:"flipV",STYLE_NOLABEL:"noLabel",STYLE_NOEDGESTYLE:"noEdgeStyle",STYLE_LABEL_BACKGROUNDCOLOR:"labelBackgroundColor",STYLE_LABEL_BORDERCOLOR:"labelBorderColor",STYLE_LABEL_PADDING:"labelPadding",STYLE_INDICATOR_SHAPE:"indicatorShape",STYLE_INDICATOR_IMAGE:"indicatorImage",STYLE_INDICATOR_COLOR:"indicatorColor",STYLE_INDICATOR_STROKECOLOR:"indicatorStrokeColor",STYLE_INDICATOR_GRADIENTCOLOR:"indicatorGradientColor",STYLE_INDICATOR_SPACING:"indicatorSpacing",STYLE_INDICATOR_WIDTH:"indicatorWidth",STYLE_INDICATOR_HEIGHT:"indicatorHeight",STYLE_INDICATOR_DIRECTION:"indicatorDirection",STYLE_SHADOW:"shadow",STYLE_SEGMENT:"segment",STYLE_ENDARROW:"endArrow",STYLE_STARTARROW:"startArrow",STYLE_ENDSIZE:"endSize",STYLE_STARTSIZE:"startSize",STYLE_SWIMLANE_LINE:"swimlaneLine",STYLE_ENDFILL:"endFill",STYLE_STARTFILL:"startFill",STYLE_DASHED:"dashed",STYLE_DASH_PATTERN:"dashPattern",STYLE_ROUNDED:"rounded",STYLE_CURVED:"curved",STYLE_ARCSIZE:"arcSize",STYLE_SMOOTH:"smooth",STYLE_SOURCE_PERIMETER_SPACING:"sourcePerimeterSpacing",STYLE_TARGET_PERIMETER_SPACING:"targetPerimeterSpacing",STYLE_PERIMETER_SPACING:"perimeterSpacing",STYLE_SPACING:"spacing",STYLE_SPACING_TOP:"spacingTop",STYLE_SPACING_LEFT:"spacingLeft",STYLE_SPACING_BOTTOM:"spacingBottom",STYLE_SPACING_RIGHT:"spacingRight",STYLE_HORIZONTAL:"horizontal",STYLE_DIRECTION:"direction",STYLE_ELBOW:"elbow",STYLE_FONTCOLOR:"fontColor",STYLE_FONTFAMILY:"fontFamily",STYLE_FONTSIZE:"fontSize",STYLE_FONTSTYLE:"fontStyle",STYLE_AUTOSIZE:"autosize",STYLE_FOLDABLE:"foldable",STYLE_EDITABLE:"editable",STYLE_BENDABLE:"bendable",STYLE_MOVABLE:"movable",STYLE_RESIZABLE:"resizable",STYLE_CLONEABLE:"cloneable",STYLE_DELETABLE:"deletable",STYLE_SHAPE:"shape",STYLE_EDGE:"edgeStyle",STYLE_LOOP:"loopStyle",STYLE_ROUTING_CENTER_X:"routingCenterX",STYLE_ROUTING_CENTER_Y:"routingCenterY",FONT_BOLD:1,FONT_ITALIC:2,FONT_UNDERLINE:4,FONT_SHADOW:8,SHAPE_RECTANGLE:"rectangle",SHAPE_ELLIPSE:"ellipse",SHAPE_DOUBLE_ELLIPSE:"doubleEllipse",SHAPE_RHOMBUS:"rhombus",SHAPE_LINE:"line",SHAPE_IMAGE:"image",SHAPE_ARROW:"arrow",SHAPE_LABEL:"label",SHAPE_CYLINDER:"cylinder",SHAPE_SWIMLANE:"swimlane",SHAPE_CONNECTOR:"connector",SHAPE_ACTOR:"actor",SHAPE_CLOUD:"cloud",SHAPE_TRIANGLE:"triangle",SHAPE_HEXAGON:"hexagon",ARROW_CLASSIC:"classic",ARROW_BLOCK:"block",ARROW_OPEN:"open",ARROW_OVAL:"oval",ARROW_DIAMOND:"diamond",ARROW_DIAMOND_THIN:"diamondThin",ALIGN_LEFT:"left",ALIGN_CENTER:"center",ALIGN_RIGHT:"right",ALIGN_TOP:"top",ALIGN_MIDDLE:"middle",ALIGN_BOTTOM:"bottom",DIRECTION_NORTH:"north",DIRECTION_SOUTH:"south",DIRECTION_EAST:"east",DIRECTION_WEST:"west",DIRECTION_MASK_NONE:0,DIRECTION_MASK_WEST:1,DIRECTION_MASK_NORTH:2,DIRECTION_MASK_SOUTH:4,DIRECTION_MASK_EAST:8,DIRECTION_MASK_ALL:15,ELBOW_VERTICAL:"vertical",ELBOW_HORIZONTAL:"horizontal",EDGESTYLE_ELBOW:"elbowEdgeStyle",EDGESTYLE_ENTITY_RELATION:"entityRelationEdgeStyle",EDGESTYLE_LOOP:"loopEdgeStyle",EDGESTYLE_SIDETOSIDE:"sideToSideEdgeStyle",EDGESTYLE_TOPTOBOTTOM:"topToBottomEdgeStyle",EDGESTYLE_ORTHOGONAL:"orthogonalEdgeStyle",EDGESTYLE_SEGMENT:"segmentEdgeStyle",PERIMETER_ELLIPSE:"ellipsePerimeter",PERIMETER_RECTANGLE:"rectanglePerimeter",PERIMETER_RHOMBUS:"rhombusPerimeter",PERIMETER_TRIANGLE:"trianglePerimeter"};function mxEventObject(e){this.name=e,this.properties=[];for(var n=1;n<arguments.length;n+=2)null!=arguments[n+1]&&(this.properties[arguments[n]]=arguments[n+1])}function mxMouseEvent(e,n){this.evt=e,this.state=n}function mxEventSource(e){this.setEventSource(e)}mxEventObject.prototype.name=null,mxEventObject.prototype.properties=null,mxEventObject.prototype.consumed=!1,mxEventObject.prototype.getName=function(){return this.name},mxEventObject.prototype.getProperties=function(){return this.properties},mxEventObject.prototype.getProperty=function(e){return this.properties[e]},mxEventObject.prototype.isConsumed=function(){return this.consumed},mxEventObject.prototype.consume=function(){this.consumed=!0},mxMouseEvent.prototype.consumed=!1,mxMouseEvent.prototype.evt=null,mxMouseEvent.prototype.graphX=null,mxMouseEvent.prototype.graphY=null,mxMouseEvent.prototype.state=null,mxMouseEvent.prototype.getEvent=function(){return this.evt},mxMouseEvent.prototype.getSource=function(){return mxEvent.getSource(this.evt)},mxMouseEvent.prototype.isSource=function(e){if(null!=e)for(var n=this.getSource();null!=n;){if(n==e.node)return!0;n=n.parentNode}return!1},mxMouseEvent.prototype.getX=function(){return mxEvent.getClientX(this.getEvent())},mxMouseEvent.prototype.getY=function(){return mxEvent.getClientY(this.getEvent())},mxMouseEvent.prototype.getGraphX=function(){return this.graphX},mxMouseEvent.prototype.getGraphY=function(){return this.graphY},mxMouseEvent.prototype.getState=function(){return this.state},mxMouseEvent.prototype.getCell=function(){var e=this.getState();return null!=e?e.cell:null},mxMouseEvent.prototype.isPopupTrigger=function(){return mxEvent.isPopupTrigger(this.getEvent())},mxMouseEvent.prototype.isConsumed=function(){return this.consumed},mxMouseEvent.prototype.consume=function(e){(null==e||e)&&this.evt.preventDefault&&this.evt.preventDefault(),this.evt.returnValue=!1,this.consumed=!0},mxEventSource.prototype.eventListeners=null,mxEventSource.prototype.eventsEnabled=!0,mxEventSource.prototype.eventSource=null,mxEventSource.prototype.isEventsEnabled=function(){return this.eventsEnabled},mxEventSource.prototype.setEventsEnabled=function(e){this.eventsEnabled=e},mxEventSource.prototype.getEventSource=function(){return this.eventSource},mxEventSource.prototype.setEventSource=function(e){this.eventSource=e},mxEventSource.prototype.addListener=function(e,n){null==this.eventListeners&&(this.eventListeners=[]),this.eventListeners.push(e),this.eventListeners.push(n)},mxEventSource.prototype.removeListener=function(e){if(null!=this.eventListeners)for(var n=0;n<this.eventListeners.length;)this.eventListeners[n+1]==e?this.eventListeners.splice(n,2):n+=2},mxEventSource.prototype.fireEvent=function(e,n){if(null!=this.eventListeners&&this.isEventsEnabled()){null==e&&(e=new mxEventObject),null==n&&(n=this.getEventSource()),null==n&&(n=this);for(var t=[n,e],a=0;a<this.eventListeners.length;a+=2){var i=this.eventListeners[a];(null==i||i==e.getName())&&this.eventListeners[a+1].apply(this,t)}}};var mxEvent={objects:[],addListener:function(){var a=function(e,n,t){null==e.mxListenerList&&(e.mxListenerList=[],mxEvent.objects.push(e)),e.mxListenerList.push({name:n,f:t})};return window.addEventListener?function(e,n,t){e.addEventListener(n,t,!1),a(e,n,t)}:function(e,n,t){e.attachEvent("on"+n,t),a(e,n,t)}}(),removeListener:function(){var a=function(e,n,t){if(null!=e.mxListenerList){n=e.mxListenerList.length;for(var a=0;a<n;a++)if(e.mxListenerList[a].f==t){e.mxListenerList.splice(a,1);break}0==e.mxListenerList.length&&(e.mxListenerList=null)}};return window.removeEventListener?function(e,n,t){e.removeEventListener(n,t,!1),a(e,n,t)}:function(e,n,t){e.detachEvent("on"+n,t),a(e,n,t)}}(),removeAllListeners:function(e){var n=e.mxListenerList;if(null!=n)for(;0<n.length;){var t=n[0];mxEvent.removeListener(e,t.name,t.f)}},addGestureListeners:function(e,n,t,a){null!=n&&mxEvent.addListener(e,"mousedown",n),null!=t&&mxEvent.addListener(e,"mousemove",t),null!=a&&mxEvent.addListener(e,"mouseup",a),mxClient.IS_TOUCH&&(null!=n&&mxEvent.addListener(e,"touchstart",n),null!=t&&mxEvent.addListener(e,"touchmove",t),null!=a&&mxEvent.addListener(e,"touchend",a))},removeGestureListeners:function(e,n,t,a){null!=n&&mxEvent.removeListener(e,"mousedown",n),null!=t&&mxEvent.removeListener(e,"mousemove",t),null!=a&&mxEvent.removeListener(e,"mouseup",a),mxClient.IS_TOUCH&&(null!=n&&mxEvent.removeListener(e,"touchstart",n),null!=t&&mxEvent.removeListener(e,"touchmove",t),null!=a&&mxEvent.removeListener(e,"touchend",a))},redirectMouseEvents:function(e,t,n,a,i,s,o){var r=function(e){return"function"==typeof n?n(e):n};mxEvent.addGestureListeners(e,function(e){null!=a?a(e):mxEvent.isConsumed(e)||t.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,r(e)))},function(e){null!=i?i(e):mxEvent.isConsumed(e)||t.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,r(e)))},function(e){null!=s?s(e):mxEvent.isConsumed(e)||t.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e,r(e)))}),mxEvent.addListener(e,"dblclick",function(e){if(null!=o)o(e);else if(!mxEvent.isConsumed(e)){var n=r(e);t.dblClick(e,null!=n?n.cell:null)}})},release:function(e){if(null!=e&&(mxEvent.removeAllListeners(e),null!=(e=e.childNodes)))for(var n=e.length,t=0;t<n;t+=1)mxEvent.release(e[t])},addMouseWheelListener:function(t){if(null!=t){var e=function(e){null==e&&(e=window.event);var n=0;0!=(n=!mxClient.IS_NS||mxClient.IS_SF||mxClient.IS_GC?e.wheelDelta/120:-e.detail/2)&&t(e,0<n)};mxClient.IS_NS?mxEvent.addListener(window,mxClient.IS_SF||mxClient.IS_GC?"mousewheel":"DOMMouseScroll",e):mxEvent.addListener(document,"mousewheel",e)}},disableContextMenu:mxClient.IS_IE&&(void 0===document.documentMode||document.documentMode<9)?function(e){mxEvent.addListener(e,"contextmenu",function(){return!1})}:function(e){e.setAttribute("oncontextmenu","return false;")},getSource:function(e){return null!=e.srcElement?e.srcElement:e.target},isConsumed:function(e){return null!=e.isConsumed&&e.isConsumed},isLeftMouseButton:function(e){return e.button==(mxClient.IS_IE&&(void 0===document.documentMode||document.documentMode<9)?1:0)},isRightMouseButton:function(e){return 2==e.button},isPopupTrigger:function(e){return mxEvent.isRightMouseButton(e)||mxEvent.isShiftDown(e)&&!mxEvent.isControlDown(e)},isShiftDown:function(e){return null!=e&&e.shiftKey},isAltDown:function(e){return null!=e&&e.altKey},isControlDown:function(e){return null!=e&&e.ctrlKey},isMetaDown:function(e){return null!=e&&e.metaKey},getMainEvent:function(e){return"touchstart"!=e.type&&"touchmove"!=e.type||null==e.touches||null==e.touches[0]?"touchend"==e.type&&null!=e.changedTouches&&null!=e.changedTouches[0]&&(e=e.changedTouches[0]):e=e.touches[0],e},getClientX:function(e){return mxEvent.getMainEvent(e).clientX},getClientY:function(e){return mxEvent.getMainEvent(e).clientY},consume:function(e,n,t){t=null==t||t,(null==n||n)&&(e.preventDefault?(t&&e.stopPropagation(),e.preventDefault()):t&&(e.cancelBubble=!0)),e.isConsumed=!0,e.returnValue=!1},LABEL_HANDLE:-1,ROTATION_HANDLE:-2,MOUSE_DOWN:"mouseDown",MOUSE_MOVE:"mouseMove",MOUSE_UP:"mouseUp",ACTIVATE:"activate",RESIZE_START:"resizeStart",RESIZE:"resize",RESIZE_END:"resizeEnd",MOVE_START:"moveStart",MOVE:"move",MOVE_END:"moveEnd",PAN_START:"panStart",PAN:"pan",PAN_END:"panEnd",MINIMIZE:"minimize",NORMALIZE:"normalize",MAXIMIZE:"maximize",HIDE:"hide",SHOW:"show",CLOSE:"close",DESTROY:"destroy",REFRESH:"refresh",SIZE:"size",SELECT:"select",FIRED:"fired",GET:"get",RECEIVE:"receive",CONNECT:"connect",DISCONNECT:"disconnect",SUSPEND:"suspend",RESUME:"resume",MARK:"mark",SESSION:"session",ROOT:"root",POST:"post",OPEN:"open",SAVE:"save",BEFORE_ADD_VERTEX:"beforeAddVertex",ADD_VERTEX:"addVertex",AFTER_ADD_VERTEX:"afterAddVertex",DONE:"done",EXECUTE:"execute",EXECUTED:"executed",BEGIN_UPDATE:"beginUpdate",START_EDIT:"startEdit",END_UPDATE:"endUpdate",END_EDIT:"endEdit",BEFORE_UNDO:"beforeUndo",UNDO:"undo",REDO:"redo",CHANGE:"change",NOTIFY:"notify",LAYOUT_CELLS:"layoutCells",CLICK:"click",SCALE:"scale",TRANSLATE:"translate",SCALE_AND_TRANSLATE:"scaleAndTranslate",UP:"up",DOWN:"down",ADD:"add",REMOVE:"remove",CLEAR:"clear",ADD_CELLS:"addCells",CELLS_ADDED:"cellsAdded",MOVE_CELLS:"moveCells",CELLS_MOVED:"cellsMoved",RESIZE_CELLS:"resizeCells",CELLS_RESIZED:"cellsResized",TOGGLE_CELLS:"toggleCells",CELLS_TOGGLED:"cellsToggled",ORDER_CELLS:"orderCells",CELLS_ORDERED:"cellsOrdered",REMOVE_CELLS:"removeCells",CELLS_REMOVED:"cellsRemoved",GROUP_CELLS:"groupCells",UNGROUP_CELLS:"ungroupCells",REMOVE_CELLS_FROM_PARENT:"removeCellsFromParent",FOLD_CELLS:"foldCells",CELLS_FOLDED:"cellsFolded",ALIGN_CELLS:"alignCells",LABEL_CHANGED:"labelChanged",CONNECT_CELL:"connectCell",CELL_CONNECTED:"cellConnected",SPLIT_EDGE:"splitEdge",FLIP_EDGE:"flipEdge",START_EDITING:"startEditing",ADD_OVERLAY:"addOverlay",REMOVE_OVERLAY:"removeOverlay",UPDATE_CELL_SIZE:"updateCellSize",ESCAPE:"escape",CLICK:"click",DOUBLE_CLICK:"doubleClick",START:"start",RESET:"reset"};function mxXmlRequest(e,n,t,a,i,s){this.url=e,this.params=n,this.method=t||"POST",this.async=null==a||a,this.username=i,this.password=s}mxXmlRequest.prototype.url=null,mxXmlRequest.prototype.params=null,mxXmlRequest.prototype.method=null,mxXmlRequest.prototype.async=null,mxXmlRequest.prototype.binary=!1,mxXmlRequest.prototype.username=null,mxXmlRequest.prototype.password=null,mxXmlRequest.prototype.request=null,mxXmlRequest.prototype.isBinary=function(){return this.binary},mxXmlRequest.prototype.setBinary=function(e){this.binary=e},mxXmlRequest.prototype.getText=function(){return this.request.responseText},mxXmlRequest.prototype.isReady=function(){return 4==this.request.readyState},mxXmlRequest.prototype.getDocumentElement=function(){var e=this.getXml();return null!=e?e.documentElement:null},mxXmlRequest.prototype.getXml=function(){var e=this.request.responseXML;return(9<=document.documentMode||null==e||null==e.documentElement)&&(e=mxUtils.parseXml(this.request.responseText)),e},mxXmlRequest.prototype.getText=function(){return this.request.responseText},mxXmlRequest.prototype.getStatus=function(){return this.request.status},mxXmlRequest.prototype.create=window.XMLHttpRequest?function(){var e=new XMLHttpRequest;return this.isBinary()&&e.overrideMimeType&&e.overrideMimeType("text/plain; charset=x-user-defined"),e}:"undefined"!=typeof ActiveXObject?function(){return new ActiveXObject("Microsoft.XMLHTTP")}:void 0,mxXmlRequest.prototype.send=function(e,n){this.request=this.create(),null!=this.request&&(null!=e&&(this.request.onreadystatechange=mxUtils.bind(this,function(){this.isReady()&&(e(this),this.onreadystatechaange=null)})),this.request.open(this.method,this.url,this.async,this.username,this.password),this.setRequestHeaders(this.request,this.params),this.request.send(this.params))},mxXmlRequest.prototype.setRequestHeaders=function(e,n){null!=n&&e.setRequestHeader("Content-Type","application/x-www-form-urlencoded")},mxXmlRequest.prototype.simulate=function(e,n){var t=null;(e=e||document)==document&&(t=window.onbeforeunload,window.onbeforeunload=null);var a=e.createElement("form");a.setAttribute("method",this.method),a.setAttribute("action",this.url),null!=n&&a.setAttribute("target",n),a.style.display="none",a.style.visibility="hidden";for(var i=0<this.params.indexOf("&")?this.params.split("&"):this.params.split(),s=0;s<i.length;s++){if(0<(o=i[s].indexOf("="))){var o,r=i[s].substring(0,o),l=i[s].substring(o+1);(o=e.createElement("textarea")).setAttribute("name",r),l=l.replace(/\n/g,"
"),r=e.createTextNode(l),o.appendChild(r),a.appendChild(o)}}e.body.appendChild(a),a.submit(),e.body.removeChild(a),null!=t&&(window.onbeforeunload=t)};var mxClipboard={STEPSIZE:10,insertCount:1,cells:null,isEmpty:function(){return null==mxClipboard.cells},cut:function(e,n){return n=mxClipboard.copy(e,n),mxClipboard.insertCount=0,mxClipboard.removeCells(e,n),n},removeCells:function(e,n){e.removeCells(n)},copy:function(e,n){n=n||e.getSelectionCells();var t=e.getExportableCells(n);return mxClipboard.insertCount=1,mxClipboard.cells=e.cloneCells(t),t},paste:function(e){if(null!=mxClipboard.cells){var n=e.getImportableCells(mxClipboard.cells),t=mxClipboard.insertCount*mxClipboard.STEPSIZE,a=e.getDefaultParent();n=e.importCells(n,t,t,a);mxClipboard.insertCount++,e.setSelectionCells(n)}}};function mxWindow(e,n,t,a,i,s,o,r,l,d){null!=n&&(o=null==o||o,this.content=n,this.init(t,a,i,s,d),this.installMaximizeHandler(),this.installMinimizeHandler(),this.installCloseHandler(),this.setMinimizable(o),this.setTitle(e),(null==r||r)&&this.installMoveHandler(),null!=l&&null!=l.parentNode?l.parentNode.replaceChild(this.div,l):document.body.appendChild(this.div))}function mxForm(e){this.table=document.createElement("table"),this.table.className=e,this.body=document.createElement("tbody"),this.table.appendChild(this.body)}function mxImage(e,n,t){this.src=e,this.width=n,this.height=t}function mxDivResizer(e,n){if("div"==e.nodeName.toLowerCase()){null==n&&(n=window),this.div=e;var t=mxUtils.getCurrentStyle(e);null!=t&&(this.resizeWidth="auto"==t.width,this.resizeHeight="auto"==t.height),mxEvent.addListener(n,"resize",mxUtils.bind(this,function(e){this.handlingResize||(this.handlingResize=!0,this.resize(),this.handlingResize=!1)})),this.resize()}}function mxDragSource(e,n){this.element=e,this.dropHandler=n,mxEvent.addGestureListeners(e,mxUtils.bind(this,this.mouseDown))}function mxToolbar(e){this.container=e}function mxSession(n,e,t,a){this.model=n,this.urlInit=e,this.urlPoll=t,this.urlNotify=a,null!=n&&(this.codec=new mxCodec,this.codec.lookup=function(e){return n.getCell(e)}),n.addListener(mxEvent.NOTIFY,mxUtils.bind(this,function(e,n){var t=n.getProperty("edit");(null!=t&&this.debug||this.connected&&!this.suspended)&&this.notify("<edit>"+this.encodeChanges(t.changes,t.undone)+"</edit>")}))}function mxUndoableEdit(e,n){this.source=e,this.changes=[],this.significant=null==n||n}function mxUndoManager(e){this.size=null!=e?e:100,this.clear()}mxWindow.prototype=new mxEventSource,mxWindow.prototype.constructor=mxWindow,mxWindow.prototype.closeImage=mxClient.imageBasePath+"/close.gif",mxWindow.prototype.minimizeImage=mxClient.imageBasePath+"/minimize.gif",mxWindow.prototype.normalizeImage=mxClient.imageBasePath+"/normalize.gif",mxWindow.prototype.maximizeImage=mxClient.imageBasePath+"/maximize.gif",mxWindow.prototype.resizeImage=mxClient.imageBasePath+"/resize.gif",mxWindow.prototype.visible=!1,mxWindow.prototype.content=!1,mxWindow.prototype.minimumSize=new mxRectangle(0,0,50,40),mxWindow.prototype.title=!1,mxWindow.prototype.content=!1,mxWindow.prototype.destroyOnClose=!0,mxWindow.prototype.init=function(e,n,t,a,i){i=null!=i?i:"mxWindow",this.div=document.createElement("div"),this.div.className=i,this.div.style.left=e+"px",this.div.style.top=n+"px",this.table=document.createElement("table"),this.table.className=i,null!=t&&(mxClient.IS_IE||(this.div.style.width=t+"px"),this.table.style.width=t+"px"),null!=a&&(mxClient.IS_IE||(this.div.style.height=a+"px"),this.table.style.height=a+"px"),e=document.createElement("tbody"),n=document.createElement("tr"),this.title=document.createElement("td"),this.title.className=i+"Title",n.appendChild(this.title),e.appendChild(n),n=document.createElement("tr"),this.td=document.createElement("td"),this.td.className=i+"Pane",this.contentWrapper=document.createElement("div"),this.contentWrapper.className=i+"Pane",this.contentWrapper.style.width="100%",this.contentWrapper.appendChild(this.content),(mxClient.IS_IE||"DIV"!=this.content.nodeName.toUpperCase())&&(this.contentWrapper.style.height="100%"),this.td.appendChild(this.contentWrapper),n.appendChild(this.td),e.appendChild(n),this.table.appendChild(e),this.div.appendChild(this.table),i=mxUtils.bind(this,function(e){this.activate()}),mxEvent.addListener(this.title,"mousedown",i),mxEvent.addListener(this.table,"mousedown",i),mxClient.IS_TOUCH&&(mxEvent.addListener(this.title,"touchstart",i),mxEvent.addListener(this.table,"touchstart",i)),this.hide()},mxWindow.prototype.setTitle=function(e){for(var n=this.title.firstChild;null!=n;){var t=n.nextSibling;n.nodeType==mxConstants.NODETYPE_TEXT&&n.parentNode.removeChild(n),n=t}mxUtils.write(this.title,e||"")},mxWindow.prototype.setScrollable=function(e){navigator.userAgent.indexOf("Presto/2.5")<0&&(this.contentWrapper.style.overflow=e?"auto":"hidden")},mxWindow.prototype.activate=function(){if(mxWindow.activeWindow!=this){var e=null!=(e=mxUtils.getCurrentStyle(this.getElement()))?e.zIndex:3;if(mxWindow.activeWindow){var n=mxWindow.activeWindow.getElement();null!=n&&null!=n.style&&(n.style.zIndex=e)}n=mxWindow.activeWindow,this.getElement().style.zIndex=parseInt(e)+1,(mxWindow.activeWindow=this).fireEvent(new mxEventObject(mxEvent.ACTIVATE,"previousWindow",n))}},mxWindow.prototype.getElement=function(){return this.div},mxWindow.prototype.fit=function(){mxUtils.fit(this.div)},mxWindow.prototype.isResizable=function(){return null!=this.resize&&"none"!=this.resize.style.display},mxWindow.prototype.setResizable=function(e){e?null==this.resize?(this.resize=document.createElement("img"),this.resize.style.position="absolute",this.resize.style.bottom="2px",this.resize.style.right="2px",this.resize.setAttribute("src",mxClient.imageBasePath+"/resize.gif"),this.resize.style.cursor="nw-resize",mxEvent.addGestureListeners(this.resize,mxUtils.bind(this,function(e){this.activate();var a=mxEvent.getClientX(e),i=mxEvent.getClientY(e),s=this.div.offsetWidth,o=this.div.offsetHeight,n=mxUtils.bind(this,function(e){var n=mxEvent.getClientX(e)-a,t=mxEvent.getClientY(e)-i;this.setSize(s+n,o+t),this.fireEvent(new mxEventObject(mxEvent.RESIZE,"event",e)),mxEvent.consume(e)}),t=mxUtils.bind(this,function(e){mxEvent.removeGestureListeners(document,null,n,t),this.fireEvent(new mxEventObject(mxEvent.RESIZE_END,"event",e)),mxEvent.consume(e)});mxEvent.addGestureListeners(document,null,n,t),this.fireEvent(new mxEventObject(mxEvent.RESIZE_START,"event",e)),mxEvent.consume(e)}),null,null),this.div.appendChild(this.resize)):this.resize.style.display="inline":null!=this.resize&&(this.resize.style.display="none")},mxWindow.prototype.setSize=function(e,n){e=Math.max(this.minimumSize.width,e),n=Math.max(this.minimumSize.height,n),mxClient.IS_IE||(this.div.style.width=e+"px",this.div.style.height=n+"px"),this.table.style.width=e+"px",this.table.style.height=n+"px",mxClient.IS_IE||(this.contentWrapper.style.height=this.div.offsetHeight-this.title.offsetHeight-2+"px")},mxWindow.prototype.setMinimizable=function(e){this.minimize.style.display=e?"":"none"},mxWindow.prototype.getMinimumSize=function(){return new mxRectangle(0,0,0,this.title.offsetHeight)},mxWindow.prototype.installMinimizeHandler=function(){this.minimize=document.createElement("img"),this.minimize.setAttribute("src",this.minimizeImage),this.minimize.setAttribute("align","right"),this.minimize.setAttribute("title","Minimize"),this.minimize.style.cursor="pointer",this.minimize.style.marginRight="1px",this.minimize.style.display="none",this.title.appendChild(this.minimize);var t=!1,a=null,i=null,e=mxUtils.bind(this,function(e){if(this.activate(),t)t=!1,this.minimize.setAttribute("src",this.minimizeImage),this.minimize.setAttribute("title","Minimize"),this.contentWrapper.style.display="",this.maximize.style.display=a,mxClient.IS_IE||(this.div.style.height=i),this.table.style.height=i,null!=this.resize&&(this.resize.style.visibility=""),this.fireEvent(new mxEventObject(mxEvent.NORMALIZE,"event",e));else{t=!0,this.minimize.setAttribute("src",this.normalizeImage),this.minimize.setAttribute("title","Normalize"),this.contentWrapper.style.display="none",a=this.maximize.style.display,this.maximize.style.display="none",i=this.table.style.height;var n=this.getMinimumSize();0<n.height&&(mxClient.IS_IE||(this.div.style.height=n.height+"px"),this.table.style.height=n.height+"px"),0<n.width&&(mxClient.IS_IE||(this.div.style.width=n.width+"px"),this.table.style.width=n.width+"px"),null!=this.resize&&(this.resize.style.visibility="hidden"),this.fireEvent(new mxEventObject(mxEvent.MINIMIZE,"event",e))}mxEvent.consume(e)});mxEvent.addListener(this.minimize,"mousedown",e),mxClient.IS_TOUCH&&mxEvent.addListener(this.minimize,"touchstart",e)},mxWindow.prototype.setMaximizable=function(e){this.maximize.style.display=e?"":"none"},mxWindow.prototype.installMaximizeHandler=function(){this.maximize=document.createElement("img"),this.maximize.setAttribute("src",this.maximizeImage),this.maximize.setAttribute("align","right"),this.maximize.setAttribute("title","Maximize"),this.maximize.style.cursor="default",this.maximize.style.marginLeft="1px",this.maximize.style.cursor="pointer",this.maximize.style.display="none",this.title.appendChild(this.maximize);var t=!1,a=null,i=null,s=null,o=null,e=mxUtils.bind(this,function(e){if(this.activate(),"none"!=this.maximize.style.display){if(t)t=!1,this.maximize.setAttribute("src",this.maximizeImage),this.maximize.setAttribute("title","Maximize"),this.contentWrapper.style.display="",this.minimize.style.visibility="",this.div.style.left=a+"px",this.div.style.top=i+"px",mxClient.IS_IE||(this.div.style.height=s,this.div.style.width=o,"auto"!=(n=mxUtils.getCurrentStyle(this.contentWrapper)).overflow&&null==this.resize)||(this.contentWrapper.style.height=this.div.offsetHeight-this.title.offsetHeight-2+"px"),this.table.style.height=s,this.table.style.width=o,null!=this.resize&&(this.resize.style.visibility=""),this.fireEvent(new mxEventObject(mxEvent.NORMALIZE,"event",e));else{if(t=!0,this.maximize.setAttribute("src",this.normalizeImage),this.maximize.setAttribute("title","Normalize"),this.contentWrapper.style.display="",this.minimize.style.visibility="hidden",a=parseInt(this.div.style.left),i=parseInt(this.div.style.top),s=this.table.style.height,o=this.table.style.width,this.div.style.left="0px",this.div.style.top="0px",mxClient.IS_IE||(this.div.style.height=document.body.clientHeight-2+"px",this.div.style.width=document.body.clientWidth-2+"px"),this.table.style.width=document.body.clientWidth-2+"px",this.table.style.height=document.body.clientHeight-2+"px",null!=this.resize&&(this.resize.style.visibility="hidden"),!mxClient.IS_IE){var n=mxUtils.getCurrentStyle(this.contentWrapper);"auto"!=n.overflow&&null==this.resize||(this.contentWrapper.style.height=this.div.offsetHeight-this.title.offsetHeight-2+"px")}this.fireEvent(new mxEventObject(mxEvent.MAXIMIZE,"event",e))}mxEvent.consume(e)}});mxEvent.addGestureListeners(this.maximize,e),mxEvent.addListener(this.title,"dblclick",e)},mxWindow.prototype.installMoveHandler=function(){this.title.style.cursor="move",mxEvent.addGestureListeners(this.title,mxUtils.bind(this,function(e){var a=mxEvent.getClientX(e),i=mxEvent.getClientY(e),s=this.getX(),o=this.getY(),n=mxUtils.bind(this,function(e){var n=mxEvent.getClientX(e)-a,t=mxEvent.getClientY(e)-i;this.setLocation(s+n,o+t),this.fireEvent(new mxEventObject(mxEvent.MOVE,"event",e)),mxEvent.consume(e)}),t=mxUtils.bind(this,function(e){mxEvent.removeGestureListeners(document,null,n,t),this.fireEvent(new mxEventObject(mxEvent.MOVE_END,"event",e)),mxEvent.consume(e)});mxEvent.addGestureListeners(document,null,n,t),this.fireEvent(new mxEventObject(mxEvent.MOVE_START,"event",e)),mxEvent.consume(e)}))},mxWindow.prototype.setLocation=function(e,n){this.div.style.left=e+"px",this.div.style.top=n+"px"},mxWindow.prototype.getX=function(){return parseInt(this.div.style.left)},mxWindow.prototype.getY=function(){return parseInt(this.div.style.top)},mxWindow.prototype.installCloseHandler=function(){this.closeImg=document.createElement("img"),this.closeImg.setAttribute("src",this.closeImage),this.closeImg.setAttribute("align","right"),this.closeImg.setAttribute("title","Close"),this.closeImg.style.marginLeft="2px",this.closeImg.style.cursor="pointer",this.closeImg.style.display="none",this.title.insertBefore(this.closeImg,this.title.firstChild),mxEvent.addGestureListeners(this.closeImg,mxUtils.bind(this,function(e){this.fireEvent(new mxEventObject(mxEvent.CLOSE,"event",e)),this.destroyOnClose?this.destroy():this.setVisible(!1),mxEvent.consume(e)}))},mxWindow.prototype.setImage=function(e){this.image=document.createElement("img"),this.image.setAttribute("src",e),this.image.setAttribute("align","left"),this.image.style.marginRight="4px",this.image.style.marginLeft="0px",this.image.style.marginTop="-2px",this.title.insertBefore(this.image,this.title.firstChild)},mxWindow.prototype.setClosable=function(e){this.closeImg.style.display=e?"":"none"},mxWindow.prototype.isVisible=function(){return null!=this.div&&"hidden"!=this.div.style.visibility},mxWindow.prototype.setVisible=function(e){null!=this.div&&this.isVisible()!=e&&(e?this.show():this.hide())},mxWindow.prototype.show=function(){this.div.style.visibility="",this.activate();var e=mxUtils.getCurrentStyle(this.contentWrapper);mxClient.IS_IE||"auto"!=e.overflow&&null==this.resize||(this.contentWrapper.style.height=this.div.offsetHeight-this.title.offsetHeight-2+"px"),this.fireEvent(new mxEventObject(mxEvent.SHOW))},mxWindow.prototype.hide=function(){this.div.style.visibility="hidden",this.fireEvent(new mxEventObject(mxEvent.HIDE))},mxWindow.prototype.destroy=function(){this.fireEvent(new mxEventObject(mxEvent.DESTROY)),null!=this.div&&(mxEvent.release(this.div),this.div.parentNode.removeChild(this.div),this.div=null),this.contentWrapper=this.content=this.title=null},mxForm.prototype.table=null,mxForm.prototype.body=!1,mxForm.prototype.getTable=function(){return this.table},mxForm.prototype.addButtons=function(e,n){var t=document.createElement("tr"),a=document.createElement("td");t.appendChild(a);a=document.createElement("td");var i=document.createElement("button");mxUtils.write(i,mxResources.get("ok")||"OK"),a.appendChild(i),mxEvent.addListener(i,"click",function(){e()}),i=document.createElement("button"),mxUtils.write(i,mxResources.get("cancel")||"Cancel"),a.appendChild(i),mxEvent.addListener(i,"click",function(){n()}),t.appendChild(a),this.body.appendChild(t)},mxForm.prototype.addText=function(e,n){var t=document.createElement("input");return t.setAttribute("type","text"),t.value=n,this.addField(e,t)},mxForm.prototype.addCheckbox=function(e,n){var t=document.createElement("input");return t.setAttribute("type","checkbox"),this.addField(e,t),n&&(t.checked=!0),t},mxForm.prototype.addTextarea=function(e,n,t){var a=document.createElement("textarea");return mxClient.IS_NS&&t--,a.setAttribute("rows",t||2),a.value=n,this.addField(e,a)},mxForm.prototype.addCombo=function(e,n,t){var a=document.createElement("select");return null!=t&&a.setAttribute("size",t),n&&a.setAttribute("multiple","true"),this.addField(e,a)},mxForm.prototype.addOption=function(e,n,t,a){var i=document.createElement("option");mxUtils.writeln(i,n),i.setAttribute("value",t),a&&i.setAttribute("selected",a),e.appendChild(i)},mxForm.prototype.addField=function(e,n){var t=document.createElement("tr"),a=document.createElement("td");return mxUtils.write(a,e),t.appendChild(a),(a=document.createElement("td")).appendChild(n),t.appendChild(a),this.body.appendChild(t),n},mxImage.prototype.src=null,mxImage.prototype.width=null,mxImage.prototype.height=null,mxDivResizer.prototype.resizeWidth=!0,mxDivResizer.prototype.resizeHeight=!0,mxDivResizer.prototype.handlingResize=!1,mxDivResizer.prototype.resize=function(){var e=this.getDocumentWidth(),n=this.getDocumentHeight(),t=parseInt(this.div.style.left),a=parseInt(this.div.style.right),i=parseInt(this.div.style.top),s=parseInt(this.div.style.bottom);this.resizeWidth&&!isNaN(t)&&!isNaN(a)&&0<=t&&0<=a&&0<e-a-t&&(this.div.style.width=e-a-t+"px"),this.resizeHeight&&!isNaN(i)&&!isNaN(s)&&0<=i&&0<=s&&0<n-i-s&&(this.div.style.height=n-i-s+"px")},mxDivResizer.prototype.getDocumentWidth=function(){return document.body.clientWidth},mxDivResizer.prototype.getDocumentHeight=function(){return document.body.clientHeight},mxDragSource.prototype.element=null,mxDragSource.prototype.dropHandler=null,mxDragSource.prototype.dragOffset=null,mxDragSource.prototype.dragElement=null,mxDragSource.prototype.previewElement=null,mxDragSource.prototype.enabled=!0,mxDragSource.prototype.currentGraph=null,mxDragSource.prototype.currentDropTarget=null,mxDragSource.prototype.currentPoint=null,mxDragSource.prototype.currentGuide=null,mxDragSource.prototype.currentHighlight=null,mxDragSource.prototype.autoscroll=!0,mxDragSource.prototype.guidesEnabled=!0,mxDragSource.prototype.gridEnabled=!0,mxDragSource.prototype.highlightDropTargets=!0,mxDragSource.prototype.dragElementZIndex=100,mxDragSource.prototype.dragElementOpacity=70,mxDragSource.prototype.isEnabled=function(){return this.enabled},mxDragSource.prototype.setEnabled=function(e){this.enabled=e},mxDragSource.prototype.isGuidesEnabled=function(){return this.guidesEnabled},mxDragSource.prototype.setGuidesEnabled=function(e){this.guidesEnabled=e},mxDragSource.prototype.isGridEnabled=function(){return this.gridEnabled},mxDragSource.prototype.setGridEnabled=function(e){this.gridEnabled=e},mxDragSource.prototype.getGraphForEvent=function(e){return null},mxDragSource.prototype.getDropTarget=function(e,n,t){return e.getCellAt(n,t)},mxDragSource.prototype.createDragElement=function(e){return this.element.cloneNode(!0)},mxDragSource.prototype.createPreviewElement=function(e){return null},mxDragSource.prototype.mouseDown=function(e){this.enabled&&!mxEvent.isConsumed(e)&&null==this.mouseMoveHandler&&(this.startDrag(e),this.mouseMoveHandler=mxUtils.bind(this,this.mouseMove),this.mouseUpHandler=mxUtils.bind(this,this.mouseUp),mxEvent.addGestureListeners(document,null,this.mouseMoveHandler,this.mouseUpHandler),mxEvent.consume(e,!0,!1))},mxDragSource.prototype.startDrag=function(e){this.dragElement=this.createDragElement(e),this.dragElement.style.position="absolute",this.dragElement.style.zIndex=this.dragElementZIndex,mxUtils.setOpacity(this.dragElement,this.dragElementOpacity)},mxDragSource.prototype.stopDrag=function(e){null!=this.dragElement&&(null!=this.dragElement.parentNode&&this.dragElement.parentNode.removeChild(this.dragElement),this.dragElement=null)},mxDragSource.prototype.graphContainsEvent=function(e,n){var t=mxEvent.getClientX(n),a=mxEvent.getClientY(n),i=mxUtils.getOffset(e.container),s=mxUtils.getScrollOrigin();return t>=i.x-s.x&&a>=i.y-s.y&&t<=i.x-s.x+e.container.offsetWidth&&a<=i.y-s.y+e.container.offsetHeight},mxDragSource.prototype.mouseMove=function(e){if(null!=(n=this.getGraphForEvent(e))&&!this.graphContainsEvent(n,e)&&(n=null),n!=this.currentGraph&&(null!=this.currentGraph&&this.dragExit(this.currentGraph),this.currentGraph=n,null!=this.currentGraph&&this.dragEnter(this.currentGraph)),null!=this.currentGraph&&this.dragOver(this.currentGraph,e),null==this.dragElement||null!=this.previewElement&&"visible"==this.previewElement.style.visibility)null!=this.dragElement&&(this.dragElement.style.visibility="hidden");else{var n=mxEvent.getClientX(e),t=mxEvent.getClientY(e);null==this.dragElement.parentNode&&document.body.appendChild(this.dragElement),this.dragElement.style.visibility="visible",null!=this.dragOffset&&(n+=this.dragOffset.x,t+=this.dragOffset.y),n+=document.body.scrollLeft||document.documentElement.scrollLeft,t+=document.body.scrollTop||document.documentElement.scrollTop,this.dragElement.style.left=n+"px",this.dragElement.style.top=t+"px"}mxEvent.consume(e)},mxDragSource.prototype.mouseUp=function(e){if(null!=this.currentGraph){if(null!=this.currentPoint&&(null==this.previewElement||"hidden"!=this.previewElement.style.visibility)){var n=this.currentGraph.view.scale,t=this.currentGraph.view.translate;this.drop(this.currentGraph,e,this.currentDropTarget,this.currentPoint.x/n-t.x,this.currentPoint.y/n-t.y)}this.dragExit(this.currentGraph)}this.stopDrag(e),mxEvent.removeGestureListeners(document,null,this.mouseMoveHandler,this.mouseUpHandler),this.currentGraph=this.mouseUpHandler=this.mouseMoveHandler=null,mxEvent.consume(e)},mxDragSource.prototype.dragEnter=function(e){e.isMouseDown=!0,this.previewElement=this.createPreviewElement(e),this.isGuidesEnabled()&&null!=this.previewElement&&(this.currentGuide=new mxGuide(e,e.graphHandler.getGuideStates())),this.highlightDropTargets&&(this.currentHighlight=new mxCellHighlight(e,mxConstants.DROP_TARGET_COLOR))},mxDragSource.prototype.dragExit=function(e){this.currentPoint=this.currentDropTarget=null,e.isMouseDown=!1,null!=this.previewElement&&(null!=this.previewElement.parentNode&&this.previewElement.parentNode.removeChild(this.previewElement),this.previewElement=null),null!=this.currentGuide&&(this.currentGuide.destroy(),this.currentGuide=null),null!=this.currentHighlight&&(this.currentHighlight.destroy(),this.currentHighlight=null)},mxDragSource.prototype.dragOver=function(e,n){var t=mxUtils.getOffset(e.container),a=mxUtils.getScrollOrigin(e.container),i=mxEvent.getClientX(n)-t.x+a.x;t=mxEvent.getClientY(n)-t.y+a.y;if(e.autoScroll&&(null==this.autoscroll||this.autoscroll)&&e.scrollPointToVisible(i,t,e.autoExtend),null!=this.currentHighlight&&e.isDropEnabled()&&(this.currentDropTarget=this.getDropTarget(e,i,t),a=e.getView().getState(this.currentDropTarget),this.currentHighlight.highlight(a)),null!=this.previewElement){null==this.previewElement.parentNode&&(e.container.appendChild(this.previewElement),this.previewElement.style.zIndex="3",this.previewElement.style.position="absolute");a=this.isGridEnabled()&&e.isGridEnabledEvent(n);var s=!0;if(null!=this.currentGuide&&this.currentGuide.isEnabledForEvent(n))s=new mxRectangle(0,0,s=parseInt(this.previewElement.style.width),o=parseInt(this.previewElement.style.height)),t=new mxPoint(i,t),t=this.currentGuide.move(s,t,a),s=!1,i=t.x,t=t.y;else if(a){a=e.view.scale;var o=e.view.translate,r=e.gridSize/2;i=(e.snap(i/a-o.x-r)+o.x)*a,t=(e.snap(t/a-o.y-r)+o.y)*a}null!=this.currentGuide&&s&&this.currentGuide.hide(),null!=this.previewOffset&&(i+=this.previewOffset.x,t+=this.previewOffset.y),this.previewElement.style.left=Math.round(i)+"px",this.previewElement.style.top=Math.round(t)+"px",this.previewElement.style.visibility="visible"}this.currentPoint=new mxPoint(i,t)},mxDragSource.prototype.drop=function(e,n,t,a,i){this.dropHandler(e,n,t,a,i),e.container.focus()},mxToolbar.prototype=new mxEventSource,mxToolbar.prototype.constructor=mxToolbar,mxToolbar.prototype.container=null,mxToolbar.prototype.enabled=!0,mxToolbar.prototype.noReset=!1,mxToolbar.prototype.updateDefaultMode=!0,mxToolbar.prototype.addItem=function(e,n,t,a,i,s){var o=document.createElement(null!=n?"img":"button"),r=i||(null!=s?"mxToolbarMode":"mxToolbarItem");return o.className=r,o.setAttribute("src",n),null!=e&&(null!=n?o.setAttribute("title",e):mxUtils.write(o,e)),this.container.appendChild(o),null!=t&&(mxEvent.addListener(o,"click",t),mxClient.IS_TOUCH&&mxEvent.addListener(o,"touchend",t)),e=mxUtils.bind(this,function(e){null!=a?o.setAttribute("src",n):o.style.backgroundColor=""}),mxEvent.addGestureListeners(o,mxUtils.bind(this,function(e){if(null!=a?o.setAttribute("src",a):o.style.backgroundColor="gray",null!=s){null==this.menu&&(this.menu=new mxPopupMenu,this.menu.init());var n=this.currentImg;this.menu.isMenuShowing()&&this.menu.hideMenu(),n!=o&&(this.currentImg=o,this.menu.factoryMethod=s,n=new mxPoint(o.offsetLeft,o.offsetTop+o.offsetHeight),this.menu.popup(n.x,n.y,null,e),this.menu.isMenuShowing()&&(o.className=r+"Selected",this.menu.hideMenu=function(){mxPopupMenu.prototype.hideMenu.apply(this),o.className=r,this.currentImg=null}))}}),null,e),mxEvent.addListener(o,"mouseout",e),o},mxToolbar.prototype.addCombo=function(e){var n=document.createElement("div");n.style.display="inline",n.className="mxToolbarComboContainer";var t=document.createElement("select");return t.className=e||"mxToolbarCombo",n.appendChild(t),this.container.appendChild(n),t},mxToolbar.prototype.addActionCombo=function(e,n){var t=document.createElement("select");return t.className=n||"mxToolbarCombo",this.addOption(t,e,null),mxEvent.addListener(t,"change",function(e){var n=t.options[t.selectedIndex];t.selectedIndex=0,null!=n.funct&&n.funct(e)}),this.container.appendChild(t),t},mxToolbar.prototype.addOption=function(e,n,t){var a=document.createElement("option");return mxUtils.writeln(a,n),"function"==typeof t?a.funct=t:a.setAttribute("value",t),e.appendChild(a),a},mxToolbar.prototype.addSwitchMode=function(e,n,t,a,i){var s=document.createElement("img");return s.initialClassName=i||"mxToolbarMode",s.className=s.initialClassName,s.setAttribute("src",n),s.altIcon=a,null!=e&&s.setAttribute("title",e),mxEvent.addListener(s,"click",mxUtils.bind(this,function(e){null!=(e=this.selectedMode.altIcon)?(this.selectedMode.altIcon=this.selectedMode.getAttribute("src"),this.selectedMode.setAttribute("src",e)):this.selectedMode.className=this.selectedMode.initialClassName,this.updateDefaultMode&&(this.defaultMode=s),null!=(e=(this.selectedMode=s).altIcon)?(s.altIcon=s.getAttribute("src"),s.setAttribute("src",e)):s.className=s.initialClassName+"Selected",this.fireEvent(new mxEventObject(mxEvent.SELECT)),t()})),this.container.appendChild(s),null==this.defaultMode&&(this.defaultMode=s,this.selectMode(s),t()),s},mxToolbar.prototype.addMode=function(e,n,t,a,i,s){s=null==s||s;var o=document.createElement(null!=n?"img":"button");return o.initialClassName=i||"mxToolbarMode",o.className=o.initialClassName,o.setAttribute("src",n),o.altIcon=a,null!=e&&o.setAttribute("title",e),this.enabled&&s&&(mxEvent.addListener(o,"click",mxUtils.bind(this,function(e){this.selectMode(o,t),this.noReset=!1})),mxEvent.addListener(o,"dblclick",mxUtils.bind(this,function(e){this.selectMode(o,t),this.noReset=!0})),null==this.defaultMode&&(this.defaultMode=o,this.defaultFunction=t,this.selectMode(o,t))),this.container.appendChild(o),o},mxToolbar.prototype.selectMode=function(e,n){if(this.selectedMode!=e){if(null!=this.selectedMode){var t=this.selectedMode.altIcon;null!=t?(this.selectedMode.altIcon=this.selectedMode.getAttribute("src"),this.selectedMode.setAttribute("src",t)):this.selectedMode.className=this.selectedMode.initialClassName}this.selectedMode=e,null!=(t=this.selectedMode.altIcon)?(this.selectedMode.altIcon=this.selectedMode.getAttribute("src"),this.selectedMode.setAttribute("src",t)):this.selectedMode.className=this.selectedMode.initialClassName+"Selected",this.fireEvent(new mxEventObject(mxEvent.SELECT,"function",n))}},mxToolbar.prototype.resetMode=function(e){(e||!this.noReset)&&this.selectedMode!=this.defaultMode&&this.selectMode(this.defaultMode,this.defaultFunction)},mxToolbar.prototype.addSeparator=function(e){return this.addItem(null,e,null)},mxToolbar.prototype.addBreak=function(){mxUtils.br(this.container)},mxToolbar.prototype.addLine=function(){var e=document.createElement("hr");e.style.marginRight="6px",e.setAttribute("size","1"),this.container.appendChild(e)},mxToolbar.prototype.destroy=function(){mxEvent.release(this.container),this.selectedMode=this.defaultFunction=this.defaultMode=this.container=null,null!=this.menu&&this.menu.destroy()},mxSession.prototype=new mxEventSource,mxSession.prototype.constructor=mxSession,mxSession.prototype.model=null,mxSession.prototype.urlInit=null,mxSession.prototype.urlPoll=null,mxSession.prototype.urlNotify=null,mxSession.prototype.codec=null,mxSession.prototype.linefeed="
",mxSession.prototype.escapePostData=!0,mxSession.prototype.significantRemoteChanges=!0,mxSession.prototype.sent=0,mxSession.prototype.received=0,mxSession.prototype.debug=!1,mxSession.prototype.connected=!1,mxSession.prototype.suspended=!1,mxSession.prototype.polling=!1,mxSession.prototype.start=function(){this.debug?(this.connected=!0,this.fireEvent(new mxEventObject(mxEvent.CONNECT))):this.connected||this.get(this.urlInit,mxUtils.bind(this,function(e){this.connected=!0,this.fireEvent(new mxEventObject(mxEvent.CONNECT)),this.poll()}))},mxSession.prototype.suspend=function(){this.connected&&!this.suspended&&(this.suspended=!0,this.fireEvent(new mxEventObject(mxEvent.SUSPEND)))},mxSession.prototype.resume=function(e,n,t){this.connected&&this.suspended&&(this.suspended=!1,this.fireEvent(new mxEventObject(mxEvent.RESUME)),this.polling||this.poll())},mxSession.prototype.stop=function(e){this.connected&&(this.connected=!1),this.fireEvent(new mxEventObject(mxEvent.DISCONNECT,"reason",e))},mxSession.prototype.poll=function(){this.connected&&!this.suspended&&null!=this.urlPoll?(this.polling=!0,this.get(this.urlPoll,mxUtils.bind(this,function(){this.poll()}))):this.polling=!1},mxSession.prototype.notify=function(e,n,t){null!=e&&0<e.length&&(null!=this.urlNotify&&(this.debug?(mxLog.show(),mxLog.debug("mxSession.notify: "+this.urlNotify+" xml="+e)):(e="<message><delta>"+e+"</delta></message>",this.escapePostData&&(e=encodeURIComponent(e)),mxUtils.post(this.urlNotify,"xml="+e,n,t))),this.sent+=e.length,this.fireEvent(new mxEventObject(mxEvent.NOTIFY,"url",this.urlNotify,"xml",e)))},mxSession.prototype.get=function(t,a,n){if(void 0!==mxUtils){var i=mxUtils.bind(this,function(e){null!=n?n(e):this.stop(e)});mxUtils.get(t,mxUtils.bind(this,function(e){if(void 0!==mxUtils)if(e.isReady()&&404!=e.getStatus()){if(this.received+=e.getText().length,this.fireEvent(new mxEventObject(mxEvent.GET,"url",t,"request",e)),this.isValidResponse(e)){if(0<e.getText().length){var n=e.getDocumentElement();null==n?i("Invalid response: "+e.getText()):this.receive(n)}null!=a&&a(e)}}else i("Response not ready")}),function(e){i("Transmission error")})}},mxSession.prototype.isValidResponse=function(e){return e.getText().indexOf("<?php")<0},mxSession.prototype.encodeChanges=function(e,n){for(var t="",a=n?-1:1,i=n?e.length-1:0;0<=i&&i<e.length;i+=a){var s=this.codec.encode(e[i]);t=t+mxUtils.getXml(s,this.linefeed)}return t},mxSession.prototype.receive=function(e){if(null!=e&&e.nodeType==mxConstants.NODETYPE_ELEMENT){var n=e.getAttribute("namespace");for(null!=n&&(this.model.prefix=n+"-"),n=e.firstChild;null!=n;){var t=n.nodeName.toLowerCase();"state"==t?this.processState(n):"delta"==t&&this.processDelta(n),n=n.nextSibling}this.fireEvent(new mxEventObject(mxEvent.RECEIVE,"node",e))}},mxSession.prototype.processState=function(e){new mxCodec(e.ownerDocument).decode(e.firstChild,this.model)},mxSession.prototype.processDelta=function(e){for(e=e.firstChild;null!=e;)"edit"==e.nodeName&&this.processEdit(e),e=e.nextSibling},mxSession.prototype.processEdit=function(e){if(0<(e=this.decodeChanges(e)).length){var n=this.createUndoableEdit(e);this.model.fireEvent(new mxEventObject(mxEvent.CHANGE,"edit",n,"changes",e)),this.model.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",n)),this.fireEvent(new mxEventObject(mxEvent.FIRED,"edit",n))}},mxSession.prototype.createUndoableEdit=function(e){var n=new mxUndoableEdit(this.model,this.significantRemoteChanges);return n.changes=e,n.notify=function(){n.source.fireEvent(new mxEventObject(mxEvent.CHANGE,"edit",n,"changes",n.changes)),n.source.fireEvent(new mxEventObject(mxEvent.NOTIFY,"edit",n,"changes",n.changes))},n},mxSession.prototype.decodeChanges=function(e){this.codec.document=e.ownerDocument;var n=[];for(e=e.firstChild;null!=e;){var t=this.decodeChange(e);null!=t&&n.push(t),e=e.nextSibling}return n},mxSession.prototype.decodeChange=function(e){var n=null;return e.nodeType==mxConstants.NODETYPE_ELEMENT&&(null!=(n="mxRootChange"==e.nodeName?new mxCodec(e.ownerDocument).decode(e):this.codec.decode(e))&&(n.model=this.model,n.execute(),"mxChildChange"==e.nodeName&&null==n.parent&&this.cellRemoved(n.child))),n},mxSession.prototype.cellRemoved=function(e,n){this.codec.putObject(e.getId(),e);for(var t=this.model.getChildCount(e),a=0;a<t;a++)this.cellRemoved(this.model.getChildAt(e,a))},mxUndoableEdit.prototype.source=null,mxUndoableEdit.prototype.changes=null,mxUndoableEdit.prototype.significant=null,mxUndoableEdit.prototype.undone=!1,mxUndoableEdit.prototype.redone=!1,mxUndoableEdit.prototype.isEmpty=function(){return 0==this.changes.length},mxUndoableEdit.prototype.isSignificant=function(){return this.significant},mxUndoableEdit.prototype.add=function(e){this.changes.push(e)},mxUndoableEdit.prototype.notify=function(){},mxUndoableEdit.prototype.die=function(){},mxUndoableEdit.prototype.undo=function(){if(!this.undone){this.source.fireEvent(new mxEventObject(mxEvent.START_EDIT));for(var e=this.changes.length-1;0<=e;e--){var n=this.changes[e];null!=n.execute?n.execute():null!=n.undo&&n.undo(),this.source.fireEvent(new mxEventObject(mxEvent.EXECUTED,"change",n))}this.undone=!0,this.redone=!1,this.source.fireEvent(new mxEventObject(mxEvent.END_EDIT))}this.notify()},mxUndoableEdit.prototype.redo=function(){if(!this.redone){this.source.fireEvent(new mxEventObject(mxEvent.START_EDIT));for(var e=this.changes.length,n=0;n<e;n++){var t=this.changes[n];null!=t.execute?t.execute():null!=t.redo&&t.redo(),this.source.fireEvent(new mxEventObject(mxEvent.EXECUTED,"change",t))}this.undone=!1,this.redone=!0,this.source.fireEvent(new mxEventObject(mxEvent.END_EDIT))}this.notify()},mxUndoManager.prototype=new mxEventSource,mxUndoManager.prototype.constructor=mxUndoManager,mxUndoManager.prototype.size=null,mxUndoManager.prototype.history=null,mxUndoManager.prototype.indexOfNextAdd=0,mxUndoManager.prototype.isEmpty=function(){return 0==this.history.length},mxUndoManager.prototype.clear=function(){this.history=[],this.indexOfNextAdd=0,this.fireEvent(new mxEventObject(mxEvent.CLEAR))},mxUndoManager.prototype.canUndo=function(){return 0<this.indexOfNextAdd},mxUndoManager.prototype.undo=function(){for(;0<this.indexOfNextAdd;){var e=this.history[--this.indexOfNextAdd];if(e.undo(),e.isSignificant()){this.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",e));break}}},mxUndoManager.prototype.canRedo=function(){return this.indexOfNextAdd<this.history.length},mxUndoManager.prototype.redo=function(){for(var e=this.history.length;this.indexOfNextAdd<e;){var n=this.history[this.indexOfNextAdd++];if(n.redo(),n.isSignificant()){this.fireEvent(new mxEventObject(mxEvent.REDO,"edit",n));break}}},mxUndoManager.prototype.undoableEditHappened=function(e){this.trim(),0<this.size&&this.size==this.history.length&&this.history.shift(),this.history.push(e),this.indexOfNextAdd=this.history.length,this.fireEvent(new mxEventObject(mxEvent.ADD,"edit",e))},mxUndoManager.prototype.trim=function(){if(this.history.length>this.indexOfNextAdd)for(var e=this.history.splice(this.indexOfNextAdd,this.history.length-this.indexOfNextAdd),n=0;n<e.length;n++)e[n].die()};var mxUrlConverter=function(e){var t=!0,a=null,i=null;return{isEnabled:function(){return t},setEnabled:function(e){t=e},getBaseUrl:function(){return a},setBaseUrl:function(e){a=e},getBaseDomain:function(){return a},setBaseDomain:function(e){a=e},isRelativeUrl:function(e){return"http://"!=e.substring(0,7)&&"https://"!=e.substring(0,8)&&"data:image"!=e.substring(0,10)},convert:function(e){if(t&&this.isRelativeUrl(e)){if(null==a){i=location.protocol+"//"+location.host;var n=(a=i+location.pathname).lastIndexOf("/");0<n&&(a=a.substring(0,n+1))}e="/"==e.charAt(0)?i+e:a+e}return e}}};function mxPanningManager(s){this.thread=null,this.active=!1,this.dy=this.dx=this.t0y=this.t0x=this.tdy=this.tdx=0,this.scrollbars=!1,this.scrollTop=this.scrollLeft=0,this.mouseListener={mouseDown:function(e,n){},mouseMove:function(e,n){},mouseUp:mxUtils.bind(this,function(e,n){this.active&&this.stop()})},s.addMouseListener(this.mouseListener),mxEvent.addListener(document,"mouseup",mxUtils.bind(this,function(){this.active&&this.stop()}));var o=mxUtils.bind(this,function(){return this.scrollbars=mxUtils.hasScrollbars(s.container),this.scrollLeft=s.container.scrollLeft,this.scrollTop=s.container.scrollTop,window.setInterval(mxUtils.bind(this,function(){if(this.tdx-=this.dx,this.tdy-=this.dy,this.scrollbars){var e=-s.container.scrollLeft-Math.ceil(this.dx),n=-s.container.scrollTop-Math.ceil(this.dy);s.panGraph(e,n),s.panDx=this.scrollLeft-s.container.scrollLeft,s.panDy=this.scrollTop-s.container.scrollTop,s.fireEvent(new mxEventObject(mxEvent.PAN))}else s.panGraph(this.getDx(),this.getDy())}),this.delay)});this.isActive=function(){return active},this.getDx=function(){return Math.round(this.tdx)},this.getDy=function(){return Math.round(this.tdy)},this.start=function(){this.t0x=s.view.translate.x,this.t0y=s.view.translate.y,this.active=!0},this.panTo=function(e,n,t,a){this.active||this.start(),this.scrollLeft=s.container.scrollLeft,this.scrollTop=s.container.scrollTop,a=null!=a?a:0;var i=s.container;this.dx=e+(null!=t?t:0)-i.scrollLeft-i.clientWidth,this.dx<0&&Math.abs(this.dx)<this.border?this.dx=this.border+this.dx:this.dx=this.handleMouseOut?Math.max(this.dx,0):0,0==this.dx&&(this.dx=e-i.scrollLeft,this.dx=0<this.dx&&this.dx<this.border?this.dx-this.border:this.handleMouseOut?Math.min(0,this.dx):0),this.dy=n+a-i.scrollTop-i.clientHeight,this.dy<0&&Math.abs(this.dy)<this.border?this.dy=this.border+this.dy:this.dy=this.handleMouseOut?Math.max(this.dy,0):0,0==this.dy&&(this.dy=n-i.scrollTop,this.dy=0<this.dy&&this.dy<this.border?this.dy-this.border:this.handleMouseOut?Math.min(0,this.dy):0),0!=this.dx||0!=this.dy?(this.dx*=this.damper,this.dy*=this.damper,null==this.thread&&(this.thread=o())):null!=this.thread&&(window.clearInterval(this.thread),this.thread=null)},this.stop=function(){if(this.active)if(this.active=!1,null!=this.thread&&(window.clearInterval(this.thread),this.thread=null),this.tdy=this.tdx=0,this.scrollbars)s.panDx=0,s.panDy=0,s.fireEvent(new mxEventObject(mxEvent.PAN));else{var e=s.panDx,n=s.panDy;0==e&&0==n||(s.panGraph(0,0),s.view.setTranslate(this.t0x+e/s.view.scale,this.t0y+n/s.view.scale))}},this.destroy=function(){s.removeMouseListener(this.mouseListener)}}function mxPopupMenu(e){null!=(this.factoryMethod=e)&&this.init()}function mxAutoSaveManager(e){this.changeHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.graphModelChanged(n.getProperty("edit").changes)}),this.setGraph(e)}function mxAnimation(e){this.delay=null!=e?e:20}function mxMorphing(e,n,t,a){mxAnimation.call(this,a),this.graph=e,this.steps=null!=n?n:6,this.ease=null!=t?t:1.5}function mxImageBundle(e){this.images=[],this.alt=null!=e&&e}function mxImageExport(){}function mxAbstractCanvas2D(){this.converter=this.createUrlConverter(),this.reset()}function mxXmlCanvas2D(e){mxAbstractCanvas2D.call(this),this.root=e,this.writeDefaults()}function mxSvgCanvas2D(e,n){mxAbstractCanvas2D.call(this),this.root=e,this.gradients=[],this.defs=null,this.styleEnabled=null!=n&&n;var t=null;if(e.ownerDocument!=document)for(t=e;null!=t&&"svg"!=t.nodeName;)t=t.parentNode;null!=t&&(0<t.getElementsByTagName("defs").length&&(this.defs=t.getElementsByTagName("defs")[0]),null==this.defs&&(this.defs=this.createElement("defs"),null!=t.firstChild?t.insertBefore(this.defs,t.firstChild):t.appendChild(this.defs)),this.styleEnabled&&this.defs.appendChild(this.createStyle()))}mxPanningManager.prototype.damper=1/6,mxPanningManager.prototype.delay=10,mxPanningManager.prototype.handleMouseOut=!0,mxPanningManager.prototype.border=0,mxPopupMenu.prototype=new mxEventSource,mxPopupMenu.prototype.constructor=mxPopupMenu,mxPopupMenu.prototype.submenuImage=mxClient.imageBasePath+"/submenu.gif",mxPopupMenu.prototype.zIndex=10006,mxPopupMenu.prototype.factoryMethod=null,mxPopupMenu.prototype.useLeftButtonForPopup=!1,mxPopupMenu.prototype.enabled=!0,mxPopupMenu.prototype.itemCount=0,mxPopupMenu.prototype.autoExpand=!1,mxPopupMenu.prototype.smartSeparators=!1,mxPopupMenu.prototype.labels=!0,mxPopupMenu.prototype.init=function(){this.table=document.createElement("table"),this.table.className="mxPopupMenu",this.tbody=document.createElement("tbody"),this.table.appendChild(this.tbody),this.div=document.createElement("div"),this.div.className="mxPopupMenu",this.div.style.display="inline",this.div.style.zIndex=this.zIndex,this.div.appendChild(this.table),mxEvent.disableContextMenu(this.div)},mxPopupMenu.prototype.isEnabled=function(){return this.enabled},mxPopupMenu.prototype.setEnabled=function(e){this.enabled=e},mxPopupMenu.prototype.isPopupTrigger=function(e){return e.isPopupTrigger()||this.useLeftButtonForPopup&&mxEvent.isLeftMouseButton(e.getEvent())},mxPopupMenu.prototype.addItem=function(e,n,t,a,i,s){a=a||this,this.itemCount++,a.willAddSeparator&&(a.containsItems&&this.addSeparator(a,!0),a.willAddSeparator=!1),a.containsItems=!0;var o=document.createElement("tr");o.className="mxPopupMenuItem";var r=document.createElement("td");return r.className="mxPopupMenuIcon",null!=n?((i=document.createElement("img")).src=n,r.appendChild(i)):null!=i&&((n=document.createElement("div")).className=i,r.appendChild(n)),o.appendChild(r),this.labels&&((r=document.createElement("td")).className="mxPopupMenuItem"+(null==s||s?"":" disabled"),mxUtils.write(r,e),r.align="left",o.appendChild(r),(e=document.createElement("td")).className="mxPopupMenuItem"+(null==s||s?"":" disabled"),e.style.paddingRight="6px",e.style.textAlign="right",o.appendChild(e),null==a.div&&this.createSubmenu(a)),a.tbody.appendChild(o),(null==s||s)&&(mxEvent.addGestureListeners(o,mxUtils.bind(this,function(e){this.eventReceiver=o,a.activeRow!=o&&a.activeRow!=a&&(null!=a.activeRow&&null!=a.activeRow.div.parentNode&&this.hideSubmenu(a),null!=o.div&&(this.showSubmenu(a,o),a.activeRow=o)),mxEvent.consume(e)}),mxUtils.bind(this,function(e){a.activeRow!=o&&a.activeRow!=a&&(null!=a.activeRow&&null!=a.activeRow.div.parentNode&&this.hideSubmenu(a),this.autoExpand&&null!=o.div&&(this.showSubmenu(a,o),a.activeRow=o)),o.className="mxPopupMenuItemHover"}),mxUtils.bind(this,function(e){this.eventReceiver==o&&(a.activeRow!=o&&this.hideMenu(),null!=t&&t(e)),this.eventReceiver=null,mxEvent.consume(e)})),mxEvent.addListener(o,"mouseout",mxUtils.bind(this,function(e){o.className="mxPopupMenuItem"}))),o},mxPopupMenu.prototype.createSubmenu=function(e){e.table=document.createElement("table"),e.table.className="mxPopupMenu",e.tbody=document.createElement("tbody"),e.table.appendChild(e.tbody),e.div=document.createElement("div"),e.div.className="mxPopupMenu",e.div.style.position="absolute",e.div.style.display="inline",e.div.style.zIndex=this.zIndex,e.div.appendChild(e.table);var n=document.createElement("img");n.setAttribute("src",this.submenuImage),td=e.firstChild.nextSibling.nextSibling,td.appendChild(n)},mxPopupMenu.prototype.showSubmenu=function(e,n){if(null!=n.div){n.div.style.left=e.div.offsetLeft+n.offsetLeft+n.offsetWidth-1+"px",n.div.style.top=e.div.offsetTop+n.offsetTop+"px",document.body.appendChild(n.div);var t=parseInt(n.div.offsetLeft),a=parseInt(n.div.offsetWidth),i=document.body,s=document.documentElement;t+a>(i.scrollLeft||s.scrollLeft)+(i.clientWidth||s.clientWidth)&&(n.div.style.left=e.div.offsetLeft-a+(mxClient.IS_IE?6:-6)+"px"),mxUtils.fit(n.div)}},mxPopupMenu.prototype.addSeparator=function(e,n){if(e=e||this,this.smartSeparators&&!n)e.willAddSeparator=!0;else if(null!=e.tbody){e.willAddSeparator=!1;var t=document.createElement("tr"),a=document.createElement("td");a.className="mxPopupMenuIcon",a.style.padding="0 0 0 0px",t.appendChild(a),(a=document.createElement("td")).style.padding="0 0 0 0px",a.setAttribute("colSpan","2");var i=document.createElement("hr");i.setAttribute("size","1"),a.appendChild(i),t.appendChild(a),e.tbody.appendChild(t)}},mxPopupMenu.prototype.popup=function(e,n,t,a){if(null!=this.div&&null!=this.tbody&&null!=this.factoryMethod){for(this.div.style.left=e+"px",this.div.style.top=n+"px";null!=this.tbody.firstChild;)mxEvent.release(this.tbody.firstChild),this.tbody.removeChild(this.tbody.firstChild);this.itemCount=0,this.factoryMethod(this,t,a),0<this.itemCount&&(this.showMenu(),this.fireEvent(new mxEventObject(mxEvent.SHOW)))}},mxPopupMenu.prototype.isMenuShowing=function(){return null!=this.div&&this.div.parentNode==document.body},mxPopupMenu.prototype.showMenu=function(){9<=document.documentMode&&(this.div.style.filter="none"),document.body.appendChild(this.div),mxUtils.fit(this.div)},mxPopupMenu.prototype.hideMenu=function(){null!=this.div&&(null!=this.div.parentNode&&this.div.parentNode.removeChild(this.div),this.hideSubmenu(this),this.containsItems=!1)},mxPopupMenu.prototype.hideSubmenu=function(e){null!=e.activeRow&&(this.hideSubmenu(e.activeRow),null!=e.activeRow.div.parentNode&&e.activeRow.div.parentNode.removeChild(e.activeRow.div),e.activeRow=null)},mxPopupMenu.prototype.destroy=function(){null!=this.div&&(mxEvent.release(this.div),null!=this.div.parentNode&&this.div.parentNode.removeChild(this.div),this.div=null)},mxAutoSaveManager.prototype=new mxEventSource,mxAutoSaveManager.prototype.constructor=mxAutoSaveManager,mxAutoSaveManager.prototype.graph=null,mxAutoSaveManager.prototype.autoSaveDelay=10,mxAutoSaveManager.prototype.autoSaveThrottle=2,mxAutoSaveManager.prototype.autoSaveThreshold=5,mxAutoSaveManager.prototype.ignoredChanges=0,mxAutoSaveManager.prototype.lastSnapshot=0,mxAutoSaveManager.prototype.enabled=!0,mxAutoSaveManager.prototype.changeHandler=null,mxAutoSaveManager.prototype.isEnabled=function(){return this.enabled},mxAutoSaveManager.prototype.setEnabled=function(e){this.enabled=e},mxAutoSaveManager.prototype.setGraph=function(e){null!=this.graph&&this.graph.getModel().removeListener(this.changeHandler),this.graph=e,null!=this.graph&&this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler)},mxAutoSaveManager.prototype.save=function(){},mxAutoSaveManager.prototype.graphModelChanged=function(e){(e=((new Date).getTime()-this.lastSnapshot)/1e3)>this.autoSaveDelay||this.ignoredChanges>=this.autoSaveThreshold&&e>this.autoSaveThrottle?(this.save(),this.reset()):this.ignoredChanges++},mxAutoSaveManager.prototype.reset=function(){this.lastSnapshot=(new Date).getTime(),this.ignoredChanges=0},mxAutoSaveManager.prototype.destroy=function(){this.setGraph(null)},mxAnimation.prototype=new mxEventSource,mxAnimation.prototype.constructor=mxAnimation,mxAnimation.prototype.delay=null,mxAnimation.prototype.thread=null,mxAnimation.prototype.startAnimation=function(){null==this.thread&&(this.thread=window.setInterval(mxUtils.bind(this,this.updateAnimation),this.delay))},mxAnimation.prototype.updateAnimation=function(){this.fireEvent(new mxEventObject(mxEvent.EXECUTE))},mxAnimation.prototype.stopAnimation=function(){null!=this.thread&&(window.clearInterval(this.thread),this.thread=null,this.fireEvent(new mxEventObject(mxEvent.DONE)))},mxMorphing.prototype=new mxAnimation,mxMorphing.prototype.constructor=mxMorphing,mxMorphing.prototype.graph=null,mxMorphing.prototype.steps=null,mxMorphing.prototype.step=0,mxMorphing.prototype.ease=null,mxMorphing.prototype.cells=null,mxMorphing.prototype.updateAnimation=function(){var e=new mxCellStatePreview(this.graph);if(null!=this.cells)for(var n=0;n<this.cells.length;n++)this.animateCell(cells[n],e,!1);else this.animateCell(this.graph.getModel().getRoot(),e,!0);this.show(e),(e.isEmpty()||this.step++>=this.steps)&&this.stopAnimation()},mxMorphing.prototype.show=function(e){e.show()},mxMorphing.prototype.animateCell=function(e,n,t){var a=this.graph.getView().getState(e),i=null;if(null!=a&&(i=this.getDelta(a),this.graph.getModel().isVertex(e)&&(0!=i.x||0!=i.y))){var s=this.graph.view.getTranslate(),o=this.graph.view.getScale();i.x+=s.x*o,i.y+=s.y*o,n.moveState(a,-i.x/this.ease,-i.y/this.ease)}if(t&&!this.stopRecursion(a,i))for(a=this.graph.getModel().getChildCount(e),i=0;i<a;i++)this.animateCell(this.graph.getModel().getChildAt(e,i),n,t)},mxMorphing.prototype.stopRecursion=function(e,n){return null!=n&&(0!=n.x||0!=n.y)},mxMorphing.prototype.getDelta=function(e){var n=this.getOriginForCell(e.cell),t=this.graph.getView().getTranslate(),a=this.graph.getView().getScale();return e=new mxPoint(e.x/a-t.x,e.y/a-t.y),new mxPoint((n.x-e.x)*a,(n.y-e.y)*a)},mxMorphing.prototype.getOriginForCell=function(e){var n=null;return null!=e&&(n=this.getOriginForCell(this.graph.getModel().getParent(e)),null!=(e=this.graph.getCellGeometry(e))&&(n.x+=e.x,n.y+=e.y)),null==n&&(n=new mxPoint(-(n=this.graph.view.getTranslate()).x,-n.y)),n},mxImageBundle.prototype.images=null,mxImageBundle.prototype.images=null,mxImageBundle.prototype.putImage=function(e,n,t){this.images[e]={value:n,fallback:t}},mxImageBundle.prototype.getImage=function(e){var n=null;return null!=e&&(null!=(e=this.images[e])&&(n=this.alt?e.fallback:e.value)),n},mxImageExport.prototype.includeOverlays=!1,mxImageExport.prototype.drawState=function(e,n){null!=e&&(this.visitStatesRecursive(e,n,this.drawCellState),this.includeOverlays&&this.visitStatesRecursive(e,n,this.drawOverlays))},mxImageExport.prototype.visitStatesRecursive=function(e,n,t){if(null!=e){t(e,n);for(var a=e.view.graph,i=a.model.getChildCount(e.cell),s=0;s<i;s++){var o=a.view.getState(a.model.getChildAt(e.cell,s));this.visitStatesRecursive(o,n,t)}}},mxImageExport.prototype.drawCellState=function(e,n){e.shape instanceof mxShape&&(n.save(),e.shape.paint(n),n.restore()),null!=e.text&&(n.save(),e.text.paint(n),n.restore())},mxImageExport.prototype.drawOverlays=function(e,t){null!=e.overlays&&e.overlays.visit(function(e,n){n instanceof mxShape&&n.paint(t)})},mxAbstractCanvas2D.prototype.state=null,mxAbstractCanvas2D.prototype.states=null,mxAbstractCanvas2D.prototype.path=null,mxAbstractCanvas2D.prototype.rotateHtml=!0,mxAbstractCanvas2D.prototype.lastX=0,mxAbstractCanvas2D.prototype.lastY=0,mxAbstractCanvas2D.prototype.moveOp="M",mxAbstractCanvas2D.prototype.lineOp="L",mxAbstractCanvas2D.prototype.quadOp="Q",mxAbstractCanvas2D.prototype.curveOp="C",mxAbstractCanvas2D.prototype.closeOp="Z",mxAbstractCanvas2D.prototype.pointerEvents=!1,mxAbstractCanvas2D.prototype.createUrlConverter=function(){return new mxUrlConverter},mxAbstractCanvas2D.prototype.reset=function(){this.state=this.createState(),this.states=[]},mxAbstractCanvas2D.prototype.createState=function(){return{dx:0,dy:0,scale:1,alpha:1,fillColor:null,fillAlpha:1,gradientColor:null,gradientAlpha:1,gradientDirection:null,strokeColor:null,strokeWidth:1,dashed:!1,dashPattern:"3 3",lineCap:"flat",lineJoin:"miter",miterLimit:10,fontColor:"#000000",fontBackgroundColor:null,fontBorderColor:null,fontSize:mxConstants.DEFAULT_FONTSIZE,fontFamily:mxConstants.DEFAULT_FONTFAMILY,fontStyle:0,shadow:!1,shadowColor:mxConstants.SHADOWCOLOR,shadowAlpha:mxConstants.SHADOW_OPACITY,shadowDx:mxConstants.SHADOW_OFFSET_X,shadowDy:mxConstants.SHADOW_OFFSET_Y,rotation:0,rotationCx:0,rotationCy:0}},mxAbstractCanvas2D.prototype.format=function(e){return Math.round(parseFloat(e))},mxAbstractCanvas2D.prototype.addOp=function(){if(null!=this.path&&(this.path.push(arguments[0]),2<arguments.length))for(var e=this.state,n=2;n<arguments.length;n+=2)this.lastX=arguments[n-1],this.lastY=arguments[n],this.path.push(this.format((this.lastX+e.dx)*e.scale)),this.path.push(this.format((this.lastY+e.dy)*e.scale))},mxAbstractCanvas2D.prototype.rotatePoint=function(e,n,t,a,i){return t*=Math.PI/180,mxUtils.getRotatedPoint(new mxPoint(e,n),Math.cos(t),Math.sin(t),new mxPoint(a,i))},mxAbstractCanvas2D.prototype.save=function(){this.states.push(this.state),this.state=mxUtils.clone(this.state)},mxAbstractCanvas2D.prototype.restore=function(){this.state=this.states.pop()},mxAbstractCanvas2D.prototype.scale=function(e){this.state.scale*=e,this.state.strokeWidth*=e},mxAbstractCanvas2D.prototype.translate=function(e,n){this.state.dx+=e,this.state.dy+=n},mxAbstractCanvas2D.prototype.setAlpha=function(e){this.state.alpha=e},mxAbstractCanvas2D.prototype.setFillColor=function(e){e==mxConstants.NONE&&(e=null),this.state.fillColor=e,this.state.gradientColor=null},mxAbstractCanvas2D.prototype.setGradient=function(e,n,t,a,i,s,o,r,l){(t=this.state).fillColor=e,t.fillAlpha=null!=r?r:1,t.gradientColor=n,t.gradientAlpha=null!=l?l:1,t.gradientDirection=o},mxAbstractCanvas2D.prototype.setStrokeColor=function(e){e==mxConstants.NONE&&(e=null),this.state.strokeColor=e},mxAbstractCanvas2D.prototype.setStrokeWidth=function(e){this.state.strokeWidth=e},mxAbstractCanvas2D.prototype.setDashed=function(e){this.state.dashed=e},mxAbstractCanvas2D.prototype.setDashPattern=function(e){this.state.dashPattern=e},mxAbstractCanvas2D.prototype.setLineCap=function(e){this.state.lineCap=e},mxAbstractCanvas2D.prototype.setLineJoin=function(e){this.state.lineJoin=e},mxAbstractCanvas2D.prototype.setMiterLimit=function(e){this.state.miterLimit=e},mxAbstractCanvas2D.prototype.setFontColor=function(e){e==mxConstants.NONE&&(e=null),this.state.fontColor=e},mxAbstractCanvas2D.prototype.setFontBackgroundColor=function(e){e==mxConstants.NONE&&(e=null),this.state.fontBackgroundColor=e},mxAbstractCanvas2D.prototype.setFontBorderColor=function(e){e==mxConstants.NONE&&(e=null),this.state.fontBorderColor=e},mxAbstractCanvas2D.prototype.setFontSize=function(e){this.state.fontSize=e},mxAbstractCanvas2D.prototype.setFontFamily=function(e){this.state.fontFamily=e},mxAbstractCanvas2D.prototype.setFontStyle=function(e){null==e&&(e=0),this.state.fontStyle=e},mxAbstractCanvas2D.prototype.setShadow=function(e){this.state.shadow=e},mxAbstractCanvas2D.prototype.setShadowColor=function(e){e==mxConstants.NONE&&(e=null),this.state.shadowColor=e},mxAbstractCanvas2D.prototype.setShadowAlpha=function(e){this.state.shadowAlpha=e},mxAbstractCanvas2D.prototype.setShadowOffset=function(e,n){this.state.shadowDx=e,this.state.shadowDy=n},mxAbstractCanvas2D.prototype.begin=function(){this.lastY=this.lastX=0,this.path=[]},mxAbstractCanvas2D.prototype.moveTo=function(e,n){this.addOp(this.moveOp,e,n)},mxAbstractCanvas2D.prototype.lineTo=function(e,n){this.addOp(this.lineOp,e,n)},mxAbstractCanvas2D.prototype.quadTo=function(e,n,t,a){this.addOp(this.quadOp,e,n,t,a)},mxAbstractCanvas2D.prototype.curveTo=function(e,n,t,a,i,s){this.addOp(this.curveOp,e,n,t,a,i,s)},mxAbstractCanvas2D.prototype.arcTo=function(e,n,t,a,i,s,o){for(e=mxUtils.arcToCurves(this.lastX,this.lastY,e,n,t,a,i,s,o),n=0;n<e.length;n+=6)this.curveTo(e[n],e[n+1],e[n+2],e[n+3],e[n+4],e[n+5])},mxAbstractCanvas2D.prototype.close=function(e,n,t,a,i,s){this.addOp(this.closeOp)},mxAbstractCanvas2D.prototype.end=function(){},mxUtils.extend(mxXmlCanvas2D,mxAbstractCanvas2D),mxXmlCanvas2D.prototype.textEnabled=!0,mxXmlCanvas2D.prototype.compressed=!0,mxXmlCanvas2D.prototype.writeDefaults=function(){var e;(e=this.createElement("fontfamily")).setAttribute("family",mxConstants.DEFAULT_FONTFAMILY),this.root.appendChild(e),(e=this.createElement("fontsize")).setAttribute("size",mxConstants.DEFAULT_FONTSIZE),this.root.appendChild(e),(e=this.createElement("shadowcolor")).setAttribute("color",mxConstants.SHADOWCOLOR),this.root.appendChild(e),(e=this.createElement("shadowalpha")).setAttribute("alpha",mxConstants.SHADOW_OPACITY),this.root.appendChild(e),(e=this.createElement("shadowoffset")).setAttribute("dx",mxConstants.SHADOW_OFFSET_X),e.setAttribute("dy",mxConstants.SHADOW_OFFSET_Y),this.root.appendChild(e)},mxXmlCanvas2D.prototype.format=function(e){return parseFloat(parseFloat(e).toFixed(2))},mxXmlCanvas2D.prototype.createElement=function(e){return this.root.ownerDocument.createElement(e)},mxXmlCanvas2D.prototype.save=function(){this.compressed&&mxAbstractCanvas2D.prototype.save.apply(this,arguments),this.root.appendChild(this.createElement("save"))},mxXmlCanvas2D.prototype.restore=function(){this.compressed&&mxAbstractCanvas2D.prototype.restore.apply(this,arguments),this.root.appendChild(this.createElement("restore"))},mxXmlCanvas2D.prototype.scale=function(e){if(this.compressed){if(this.state.scale==e)return;mxAbstractCanvas2D.prototype.setAlpha.apply(this,arguments)}var n=this.createElement("scale");n.setAttribute("scale",e),this.root.appendChild(n)},mxXmlCanvas2D.prototype.translate=function(e,n){var t=this.createElement("translate");t.setAttribute("dx",this.format(e)),t.setAttribute("dy",this.format(n)),this.root.appendChild(t)},mxXmlCanvas2D.prototype.rotate=function(e,n,t,a,i){var s=this.createElement("rotate");(0!=e||n||t)&&(s.setAttribute("theta",this.format(e)),s.setAttribute("flipH",n?"1":"0"),s.setAttribute("flipV",t?"1":"0"),s.setAttribute("cx",this.format(a)),s.setAttribute("cy",this.format(i)),this.root.appendChild(s))},mxXmlCanvas2D.prototype.setAlpha=function(e){if(this.compressed){if(this.state.alpha==e)return;mxAbstractCanvas2D.prototype.setAlpha.apply(this,arguments)}var n=this.createElement("alpha");n.setAttribute("alpha",this.format(e)),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setFillColor=function(e){if(e==mxConstants.NONE&&(e=null),this.compressed){if(this.state.fillColor==e)return;mxAbstractCanvas2D.prototype.setFillColor.apply(this,arguments)}var n=this.createElement("fillcolor");n.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setGradient=function(e,n,t,a,i,s,o,r,l){if(null!=e&&null!=n){mxAbstractCanvas2D.prototype.setGradient.apply(this,arguments);var d=this.createElement("gradient");d.setAttribute("c1",e),d.setAttribute("c2",n),d.setAttribute("x",this.format(t)),d.setAttribute("y",this.format(a)),d.setAttribute("w",this.format(i)),d.setAttribute("h",this.format(s)),null!=o&&d.setAttribute("direction",o),null!=r&&d.setAttribute("alpha1",r),null!=l&&d.setAttribute("alpha2",l),this.root.appendChild(d)}},mxXmlCanvas2D.prototype.setStrokeColor=function(e){if(e==mxConstants.NONE&&(e=null),this.compressed){if(this.state.strokeColor==e)return;mxAbstractCanvas2D.prototype.setStrokeColor.apply(this,arguments)}var n=this.createElement("strokecolor");n.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setStrokeWidth=function(e){if(this.compressed){if(this.state.strokeWidth==e)return;mxAbstractCanvas2D.prototype.setStrokeWidth.apply(this,arguments)}var n=this.createElement("strokewidth");n.setAttribute("width",this.format(e)),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setDashed=function(e){if(this.compressed){if(this.state.dashed==e)return;mxAbstractCanvas2D.prototype.setDashed.apply(this,arguments)}var n=this.createElement("dashed");n.setAttribute("dashed",e?"1":"0"),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setDashPattern=function(e){if(this.compressed){if(this.state.dashPattern==e)return;mxAbstractCanvas2D.prototype.setDashPattern.apply(this,arguments)}var n=this.createElement("dashpattern");n.setAttribute("pattern",e),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setLineCap=function(e){if(this.compressed){if(this.state.lineCap==e)return;mxAbstractCanvas2D.prototype.setLineCap.apply(this,arguments)}var n=this.createElement("linecap");n.setAttribute("cap",e),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setLineJoin=function(e){if(this.compressed){if(this.state.lineJoin==e)return;mxAbstractCanvas2D.prototype.setLineJoin.apply(this,arguments)}var n=this.createElement("linejoin");n.setAttribute("join",e),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setMiterLimit=function(e){if(this.compressed){if(this.state.miterLimit==e)return;mxAbstractCanvas2D.prototype.setMiterLimit.apply(this,arguments)}var n=this.createElement("miterlimit");n.setAttribute("limit",e),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setFontColor=function(e){if(this.textEnabled){if(e==mxConstants.NONE&&(e=null),this.compressed){if(this.state.fontColor==e)return;mxAbstractCanvas2D.prototype.setFontColor.apply(this,arguments)}var n=this.createElement("fontcolor");n.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(n)}},mxXmlCanvas2D.prototype.setFontBackgroundColor=function(e){if(this.textEnabled){if(e==mxConstants.NONE&&(e=null),this.compressed){if(this.state.fontBackgroundColor==e)return;mxAbstractCanvas2D.prototype.setFontBackgroundColor.apply(this,arguments)}var n=this.createElement("fontbackgroundcolor");n.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(n)}},mxXmlCanvas2D.prototype.setFontBorderColor=function(e){if(this.textEnabled){if(e==mxConstants.NONE&&(e=null),this.compressed){if(this.state.fontBorderColor==e)return;mxAbstractCanvas2D.prototype.setFontBorderColor.apply(this,arguments)}var n=this.createElement("fontbordercolor");n.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(n)}},mxXmlCanvas2D.prototype.setFontSize=function(e){if(this.textEnabled){if(this.compressed){if(this.state.fontSize==e)return;mxAbstractCanvas2D.prototype.setFontSize.apply(this,arguments)}var n=this.createElement("fontsize");n.setAttribute("size",e),this.root.appendChild(n)}},mxXmlCanvas2D.prototype.setFontFamily=function(e){if(this.textEnabled){if(this.compressed){if(this.state.fontFamily==e)return;mxAbstractCanvas2D.prototype.setFontFamily.apply(this,arguments)}var n=this.createElement("fontfamily");n.setAttribute("family",e),this.root.appendChild(n)}},mxXmlCanvas2D.prototype.setFontStyle=function(e){if(this.textEnabled){if(null==e&&(e=0),this.compressed){if(this.state.fontStyle==e)return;mxAbstractCanvas2D.prototype.setFontStyle.apply(this,arguments)}var n=this.createElement("fontstyle");n.setAttribute("style",e),this.root.appendChild(n)}},mxXmlCanvas2D.prototype.setShadow=function(e){if(this.compressed){if(this.state.shadow==e)return;mxAbstractCanvas2D.prototype.setShadow.apply(this,arguments)}var n=this.createElement("shadow");n.setAttribute("enabled",e?"1":"0"),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setShadowColor=function(e){if(this.compressed){if(e==mxConstants.NONE&&(e=null),this.state.shadowColor==e)return;mxAbstractCanvas2D.prototype.setShadowColor.apply(this,arguments)}var n=this.createElement("shadowcolor");n.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setShadowAlpha=function(e){if(this.compressed){if(this.state.shadowAlpha==e)return;mxAbstractCanvas2D.prototype.setShadowAlpha.apply(this,arguments)}var n=this.createElement("shadowalpha");n.setAttribute("alpha",e),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setShadowOffset=function(e,n){if(this.compressed){if(this.state.shadowDx==e&&this.state.shadowDy==n)return;mxAbstractCanvas2D.prototype.setShadowOffset.apply(this,arguments)}var t=this.createElement("shadowoffset");t.setAttribute("dx",e),t.setAttribute("dy",n),this.root.appendChild(t)},mxXmlCanvas2D.prototype.rect=function(e,n,t,a){var i=this.createElement("rect");i.setAttribute("x",this.format(e)),i.setAttribute("y",this.format(n)),i.setAttribute("w",this.format(t)),i.setAttribute("h",this.format(a)),this.root.appendChild(i)},mxXmlCanvas2D.prototype.roundrect=function(e,n,t,a,i,s){var o=this.createElement("roundrect");o.setAttribute("x",this.format(e)),o.setAttribute("y",this.format(n)),o.setAttribute("w",this.format(t)),o.setAttribute("h",this.format(a)),o.setAttribute("dx",this.format(i)),o.setAttribute("dy",this.format(s)),this.root.appendChild(o)},mxXmlCanvas2D.prototype.ellipse=function(e,n,t,a){var i=this.createElement("ellipse");i.setAttribute("x",this.format(e)),i.setAttribute("y",this.format(n)),i.setAttribute("w",this.format(t)),i.setAttribute("h",this.format(a)),this.root.appendChild(i)},mxXmlCanvas2D.prototype.image=function(e,n,t,a,i,s,o,r){i=this.converter.convert(i);var l=this.createElement("image");l.setAttribute("x",this.format(e)),l.setAttribute("y",this.format(n)),l.setAttribute("w",this.format(t)),l.setAttribute("h",this.format(a)),l.setAttribute("src",i),l.setAttribute("aspect",s?"1":"0"),l.setAttribute("flipH",o?"1":"0"),l.setAttribute("flipV",r?"1":"0"),this.root.appendChild(l)},mxXmlCanvas2D.prototype.begin=function(){this.root.appendChild(this.createElement("begin")),this.lastY=this.lastX=0},mxXmlCanvas2D.prototype.moveTo=function(e,n){var t=this.createElement("move");t.setAttribute("x",this.format(e)),t.setAttribute("y",this.format(n)),this.root.appendChild(t),this.lastX=e,this.lastY=n},mxXmlCanvas2D.prototype.lineTo=function(e,n){var t=this.createElement("line");t.setAttribute("x",this.format(e)),t.setAttribute("y",this.format(n)),this.root.appendChild(t),this.lastX=e,this.lastY=n},mxXmlCanvas2D.prototype.quadTo=function(e,n,t,a){var i=this.createElement("quad");i.setAttribute("x1",this.format(e)),i.setAttribute("y1",this.format(n)),i.setAttribute("x2",this.format(t)),i.setAttribute("y2",this.format(a)),this.root.appendChild(i),this.lastX=t,this.lastY=a},mxXmlCanvas2D.prototype.curveTo=function(e,n,t,a,i,s){var o=this.createElement("curve");o.setAttribute("x1",this.format(e)),o.setAttribute("y1",this.format(n)),o.setAttribute("x2",this.format(t)),o.setAttribute("y2",this.format(a)),o.setAttribute("x3",this.format(i)),o.setAttribute("y3",this.format(s)),this.root.appendChild(o),this.lastX=i,this.lastY=s},mxXmlCanvas2D.prototype.close=function(){this.root.appendChild(this.createElement("close"))},mxXmlCanvas2D.prototype.text=function(e,n,t,a,i,s,o,r,l,d,c,m){if(this.textEnabled&&null!=i){mxUtils.isNode(i)&&(i=mxUtils.getOuterHtml(i));var u=this.createElement("text");u.setAttribute("x",this.format(e)),u.setAttribute("y",this.format(n)),u.setAttribute("w",this.format(t)),u.setAttribute("h",this.format(a)),u.setAttribute("str",i),null!=s&&u.setAttribute("align",s),null!=o&&u.setAttribute("valign",o),u.setAttribute("wrap",r?"1":"0"),null==l&&(l=""),u.setAttribute("format",l),null!=d&&u.setAttribute("fill",d?"1":"0"),null!=c&&u.setAttribute("clip",c?"1":"0"),null!=m&&u.setAttribute("rotation",m),this.root.appendChild(u)}},mxXmlCanvas2D.prototype.stroke=function(){this.root.appendChild(this.createElement("stroke"))},mxXmlCanvas2D.prototype.fill=function(){this.root.appendChild(this.createElement("fill"))},mxXmlCanvas2D.prototype.fillAndStroke=function(){this.root.appendChild(this.createElement("fillstroke"))},mxUtils.extend(mxSvgCanvas2D,mxAbstractCanvas2D),mxSvgCanvas2D.prototype.node=null,mxSvgCanvas2D.prototype.matchHtmlAlignment=!0,mxSvgCanvas2D.prototype.textEnabled=!0,mxSvgCanvas2D.prototype.foEnabled=!0,mxSvgCanvas2D.prototype.strokeTolerance=0,mxSvgCanvas2D.prototype.refCount=0,mxSvgCanvas2D.prototype.blockImagePointerEvents=!1,mxSvgCanvas2D.prototype.reset=function(){mxAbstractCanvas2D.prototype.reset.apply(this,arguments),this.gradients=[]},mxSvgCanvas2D.prototype.createStyle=function(e){return(e=this.createElement("style")).setAttribute("type","text/css"),mxUtils.write(e,"svg{font-family:"+mxConstants.DEFAULT_FONTFAMILY+";font-size:"+mxConstants.DEFAULT_FONTSIZE+";fill:none;stroke-miterlimit:10}"),e},mxSvgCanvas2D.prototype.createElement=function(e,n){if(null!=this.root.ownerDocument.createElementNS)return this.root.ownerDocument.createElementNS(n||mxConstants.NS_SVG,e);var t=this.root.ownerDocument.createElement(e);return null!=n&&t.setAttribute("xmlns",n),t},mxSvgCanvas2D.prototype.createGradientId=function(e,n,t,a,i){return"#"==e.charAt(0)&&(e=e.substring(1)),"#"==n.charAt(0)&&(n=n.substring(1)),e=e.toLowerCase()+"-"+t,n=n.toLowerCase()+"-"+a,(t=null)==i||i==mxConstants.DIRECTION_SOUTH?t="s":i==mxConstants.DIRECTION_EAST?t="e":(a=e,e=n,n=a,i==mxConstants.DIRECTION_NORTH?t="s":i==mxConstants.DIRECTION_WEST&&(t="e")),"mx-gradient-"+e+"-"+n+"-"+t},mxSvgCanvas2D.prototype.getSvgGradient=function(e,n,t,a,i){var s=this.createGradientId(e,n,t,a,i),o=this.gradients[s];if(null==o){var r=this.root.ownerSVGElement,l=0,d=s+"-"+l;if(null!=r)for(o=r.ownerDocument.getElementById(d);null!=o&&o.ownerSVGElement!=r;)d=s+"-"+l++,o=r.ownerDocument.getElementById(d);else d="id"+ ++this.refCount;null==o&&((o=this.createSvgGradient(e,n,t,a,i)).setAttribute("id",d),null!=this.defs?this.defs.appendChild(o):r.appendChild(o)),this.gradients[s]=o}return o.getAttribute("id")},mxSvgCanvas2D.prototype.createSvgGradient=function(e,n,t,a,i){var s=this.createElement("linearGradient");return s.setAttribute("x1","0%"),s.setAttribute("y1","0%"),s.setAttribute("x2","0%"),s.setAttribute("y2","0%"),null==i||i==mxConstants.DIRECTION_SOUTH?s.setAttribute("y2","100%"):i==mxConstants.DIRECTION_EAST?s.setAttribute("x2","100%"):i==mxConstants.DIRECTION_NORTH?s.setAttribute("y1","100%"):i==mxConstants.DIRECTION_WEST&&s.setAttribute("x1","100%"),t=t<1?";stop-opacity:"+t:"",(i=this.createElement("stop")).setAttribute("offset","0%"),i.setAttribute("style","stop-color:"+e+t),s.appendChild(i),t=a<1?";stop-opacity:"+a:"",(i=this.createElement("stop")).setAttribute("offset","100%"),i.setAttribute("style","stop-color:"+n+t),s.appendChild(i),s},mxSvgCanvas2D.prototype.addNode=function(e,n){var t=this.node,a=this.state;if(null!=t){if("path"==t.nodeName){if(!(null!=this.path&&0<this.path.length))return;t.setAttribute("d",this.path.join(" "))}e&&null!=a.fillColor?this.updateFill():this.styleEnabled||("ellipse"!=t.nodeName||!mxClient.IS_NS||mxClient.IS_GC||mxClient.IS_SF?t.setAttribute("fill","none"):t.setAttribute("fill","transparent"),e=!1),n&&null!=a.strokeColor?this.updateStroke():this.styleEnabled||t.setAttribute("stroke","none"),null!=a.transform&&0<a.transform.length&&t.setAttribute("transform",a.transform),a.shadow&&this.root.appendChild(this.createShadow(t)),0<this.strokeTolerance&&!e&&this.root.appendChild(this.createTolerance(t)),this.pointerEvents&&("path"!=t.nodeName||this.path[this.path.length-1]==this.closeOp)&&t.setAttribute("pointer-events","all"),this.root.appendChild(t)}},mxSvgCanvas2D.prototype.updateFill=function(){var e=this.state;e.alpha<1&&this.node.setAttribute("fill-opacity",e.alpha),null!=e.fillColor&&(null!=e.gradientColor?(e=this.getSvgGradient(e.fillColor,e.gradientColor,e.fillAlpha,e.gradientAlpha,e.gradientDirection),this.node.setAttribute("fill","url(#"+e+")")):this.node.setAttribute("fill",e.fillColor.toLowerCase()))},mxSvgCanvas2D.prototype.updateStroke=function(){var e=this.state;this.node.setAttribute("stroke",e.strokeColor.toLowerCase()),e.alpha<1&&this.node.setAttribute("stroke-opacity",e.alpha);var n=Math.max(1,this.format(e.strokeWidth*e.scale));1!=n&&this.node.setAttribute("stroke-width",n),"path"==this.node.nodeName&&this.updateStrokeAttributes(),e.dashed&&this.node.setAttribute("stroke-dasharray",this.createDashPattern(n))},mxSvgCanvas2D.prototype.updateStrokeAttributes=function(){var e=this.state;if(null!=e.lineJoin&&"miter"!=e.lineJoin&&this.node.setAttribute("stroke-linejoin",e.lineJoin),null!=e.lineCap){var n=e.lineCap;"flat"==n&&(n="butt"),"butt"!=n&&this.node.setAttribute("stroke-linecap",n)}null!=e.miterLimit&&(!this.styleEnabled||10!=e.miterLimit)&&this.node.setAttribute("stroke-miterlimit",e.miterLimit)},mxSvgCanvas2D.prototype.createDashPattern=function(e){var n=this.state.dashPattern.split(" "),t=[];if(0<n.length)for(var a=0;a<n.length;a++)t[a]=Number(n[a])*e;return t.join(" ")},mxSvgCanvas2D.prototype.createTolerance=function(e){e=e.cloneNode(!0);var n=parseFloat(e.getAttribute("stroke-width")||1)+this.strokeTolerance;return e.setAttribute("pointer-events","stroke"),e.setAttribute("visibility","hidden"),e.removeAttribute("stroke-dasharray"),e.setAttribute("stroke-width",n),e.setAttribute("fill","none"),e.setAttribute("stroke",mxClient.IS_OP?"none":"white"),e},mxSvgCanvas2D.prototype.createShadow=function(e){e=e.cloneNode(!0);var n=this.state;return"none"!=e.getAttribute("fill")&&e.setAttribute("fill",n.shadowColor),"none"!=e.getAttribute("stroke")&&e.setAttribute("stroke",n.shadowColor),e.setAttribute("transform","translate("+this.format(n.shadowDx*n.scale)+","+this.format(n.shadowDy*n.scale)+")"+(n.transform||"")),e.setAttribute("opacity",n.shadowAlpha),e},mxSvgCanvas2D.prototype.rotate=function(e,n,t,a,i){if(0!=e||n||t){var s=this.state;if(a+=s.dx,i+=s.dy,a*=s.scale,i*=s.scale,s.transform=s.transform||"",n&&t)e+=180;else if(n^t){var o=n?a:0,r=n?-1:1,l=t?i:0,d=t?-1:1;s.transform+="translate("+this.format(o)+","+this.format(l)+")scale("+this.format(r)+","+this.format(d)+")translate("+this.format(-o)+","+this.format(-l)+")"}(n?!t:t)&&(e*=-1),0!=e&&(s.transform+="rotate("+this.format(e)+","+this.format(a)+","+this.format(i)+")"),s.rotation+=e,s.rotationCx=a,s.rotationCy=i}},mxSvgCanvas2D.prototype.begin=function(){mxAbstractCanvas2D.prototype.begin.apply(this,arguments),this.node=this.createElement("path")},mxSvgCanvas2D.prototype.rect=function(e,n,t,a){var i=this.state,s=this.createElement("rect");s.setAttribute("x",this.format((e+i.dx)*i.scale)),s.setAttribute("y",this.format((n+i.dy)*i.scale)),s.setAttribute("width",this.format(t*i.scale)),s.setAttribute("height",this.format(a*i.scale)),this.node=s},mxSvgCanvas2D.prototype.roundrect=function(e,n,t,a,i,s){this.rect(e,n,t,a),0<i&&this.node.setAttribute("rx",this.format(i*this.state.scale)),0<s&&this.node.setAttribute("ry",this.format(s*this.state.scale))},mxSvgCanvas2D.prototype.ellipse=function(e,n,t,a){var i=this.state,s=this.createElement("ellipse");s.setAttribute("cx",Math.round((e+t/2+i.dx)*i.scale)),s.setAttribute("cy",Math.round((n+a/2+i.dy)*i.scale)),s.setAttribute("rx",t/2*i.scale),s.setAttribute("ry",a/2*i.scale),this.node=s},mxSvgCanvas2D.prototype.image=function(e,n,t,a,i,s,o,r){i=this.converter.convert(i),s=null==s||s,o=null!=o&&o,r=null!=r&&r;var l=this.state;e+=l.dx,n+=l.dy;var d=this.createElement("image");if(d.setAttribute("x",this.format(e*l.scale)),d.setAttribute("y",this.format(n*l.scale)),d.setAttribute("width",this.format(t*l.scale)),d.setAttribute("height",this.format(a*l.scale)),null==d.setAttributeNS?d.setAttribute("xlink:href",i):d.setAttributeNS(mxConstants.NS_XLINK,"href",i),s||d.setAttribute("preserveAspectRatio","none"),l.alpha<1&&d.setAttribute("opacity",l.alpha),i=this.state.transform||"",o||r){var c=s=1,m=0,u=0;o&&(s=-1,m=-t-2*e),r&&(c=-1,u=-a-2*n),i+="scale("+s+","+c+")translate("+m+","+u+")"}0<i.length&&d.setAttribute("transform",i),this.root.appendChild(d),this.blockImagePointerEvents&&(d.setAttribute("style","pointer-events:none"),(d=this.createElement("rect")).setAttribute("visibility","hidden"),d.setAttribute("pointer-events","fill"),d.setAttribute("x",this.format(e*l.scale)),d.setAttribute("y",this.format(n*l.scale)),d.setAttribute("width",this.format(t*l.scale)),d.setAttribute("height",this.format(a*l.scale)),this.root.appendChild(d))},mxSvgCanvas2D.prototype.createDiv=function(e,n,t,a,i){return t=this.state,a="display:inline-block;font-size:"+Math.round(t.fontSize)+"px;font-family:"+t.fontFamily+";color:"+t.fontColor+";line-height:"+Math.round(t.fontSize*mxConstants.LINE_HEIGHT)+"px;"+a,(t.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(a+="font-weight:bold;"),(t.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(a+="font-style:italic;"),(t.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&(a+="font-decoration:underline;"),n==mxConstants.ALIGN_CENTER?a+="text-align:center;":n==mxConstants.ALIGN_RIGHT&&(a+="text-align:right;"),n="",null!=t.fontBackgroundColor&&(n+="background-color:"+t.fontBackgroundColor+";"),null!=t.fontBorderColor&&(n+="border:1px solid "+t.fontBorderColor+";"),mxUtils.isNode(e)||((t=document.createElement("textarea")).innerHTML=e.replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/</g,"<").replace(/>/g,">"),e=t.value,i?a+=n:0<n.length&&(e='<div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;'+n+'">'+e+"</div>")),!mxClient.IS_IE&&document.createElementNS?((i=document.createElementNS("http://www.w3.org/1999/xhtml","div")).setAttribute("style",a),mxUtils.isNode(e)?this.root.ownerDocument!=document?i.appendChild(e.cloneNode(!0)):i.appendChild(e):i.innerHTML=e,i):(mxUtils.isNode(e)&&this.root.ownerDocument!=document&&(e=e.outerHTML),e=e.replace(/<br>/g,"<br />").replace(/<hr>/g,"<hr />"),mxUtils.parseXml('<div xmlns="http://www.w3.org/1999/xhtml" style="'+a+'">'+e+"</div>").documentElement)},mxSvgCanvas2D.prototype.text=function(e,n,t,a,i,s,o,r,l,d,c,m){if(this.textEnabled&&null!=i){m=null!=m?m:0;var u=this.state;if(e+=u.dx,n+=u.dy,this.foEnabled&&"html"==l){var p="vertical-align:top;";if(c?(p+="overflow:hidden;",0<a&&(p+="max-height:"+Math.round(a)+"px;"),0<t&&(p+="width:"+Math.round(t)+"px;")):d&&(p+="width:"+Math.round(t)+"px;",0<a&&(p+="max-height:"+Math.round(a)+"px;")),r?(!c&&0<t&&(p+="width:"+Math.round(t)+"px;"),p+="white-space:normal;"):p+="white-space:nowrap;",r=this.createElement("g"),u.alpha<1&&r.setAttribute("opacity",u.alpha),(l=this.createElement("foreignObject")).setAttribute("pointer-events","all"),null!=(p=this.createDiv(i,s,o,p,d))){r.appendChild(l),this.root.appendChild(r);var g=0;if(mxClient.IS_IE&&!mxClient.IS_SVG){var v=document.createElement("div");v.style.cssText=p.getAttribute("style"),v.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",v.style.visibility="hidden",v.innerHTML=mxUtils.isNode(i)?i.outerHTML:i,document.body.appendChild(v),g=v.offsetWidth,a=mxClient.IS_QUIRKS&&0<a&&c?Math.min(a,v.offsetHeight+2):v.offsetHeight,v.parentNode.removeChild(v),l.appendChild(p)}else this.root.ownerDocument!=document?(p.style.visibility="hidden",document.body.appendChild(p),g=p.offsetWidth,a=p.offsetHeight,l.appendChild(p),p.style.visibility=""):(l.appendChild(p),g=p.offsetWidth,a=p.offsetHeight);t=d?Math.max(t,g):g,u.alpha<1&&r.setAttribute("opacity",u.alpha),d=i=0,s==mxConstants.ALIGN_CENTER?i-=t/2:s==mxConstants.ALIGN_RIGHT&&(i-=t),e+=i,o==mxConstants.ALIGN_MIDDLE?d-=a/2:o==mxConstants.ALIGN_BOTTOM&&(d-=a),n+=d,s=1!=u.scale?"scale("+u.scale+")":"",0!=u.rotation&&this.rotateHtml?(s+="rotate("+u.rotation+","+t/2+","+a/2+")",e=(n=this.rotatePoint((e+t/2)*u.scale,(n+a/2)*u.scale,u.rotation,u.rotationCx,u.rotationCy)).x-t*u.scale/2,n=n.y-a*u.scale/2):(e*=u.scale,n*=u.scale),0!=m&&(s+="rotate("+m+","+-i+","+-d+")"),r.setAttribute("transform","translate("+Math.round(e)+","+Math.round(n)+")"+s),l.setAttribute("width",Math.round(Math.max(1,t))),l.setAttribute("height",Math.round(Math.max(1,a)))}}else this.plainText(e,n,t,a,i,s,o,r,d,c,m)}},mxSvgCanvas2D.prototype.createClip=function(e,n,t,a){for(var i="mx-clip-"+(e=Math.round(e))+"-"+(n=Math.round(n))+"-"+(t=Math.round(t))+"-"+(a=Math.round(a)),s=0,o=i+"-"+s;null!=document.getElementById(o);)o=i+"-"+ ++s;return clip=this.createElement("clipPath"),clip.setAttribute("id",o),(i=this.createElement("rect")).setAttribute("x",e),i.setAttribute("y",n),i.setAttribute("width",t),i.setAttribute("height",a),clip.appendChild(i),clip},mxSvgCanvas2D.prototype.plainText=function(e,n,t,a,i,s,o,r,l,d,c){c=null!=c?c:0,r=this.state;var m=Math.round(r.fontSize),u=this.createElement("g"),p=r.transform||"";if(0!=c&&(p+="rotate("+c+","+this.format(e*r.scale)+","+this.format(n*r.scale)+")"),d&&0<t&&0<a){var g=e;c=n,s==mxConstants.ALIGN_CENTER?g-=t/2:s==mxConstants.ALIGN_RIGHT&&(g-=t),o==mxConstants.ALIGN_MIDDLE?c-=a/2:o==mxConstants.ALIGN_BOTTOM&&(c-=a),c=this.createClip(g*r.scale-2,c*r.scale-2,t*r.scale+4,a*r.scale+4),null!=this.defs?this.defs.appendChild(c):this.root.appendChild(c),u.setAttribute("clip-path","url(#"+c.getAttribute("id")+")")}this.updateFont(u,s),"start"!=(c=s==mxConstants.ALIGN_RIGHT?"end":s==mxConstants.ALIGN_CENTER?"middle":"start")&&u.setAttribute("text-anchor",c),(!this.styleEnabled||m!=mxConstants.DEFAULT_FONTSIZE)&&u.setAttribute("font-size",Math.round(m*r.scale)+"px"),0<p.length&&u.setAttribute("transform",p),r.alpha<1&&u.setAttribute("opacity",r.alpha);p=i.split("\n"),g=Math.round(m*mxConstants.LINE_HEIGHT);var v=m+(p.length-1)*g;for(c=n+m-1,o==mxConstants.ALIGN_MIDDLE?c-=(a=(this.matchHtmlAlignment&&d&&0<a?Math.min(v,a):v)/2)+1:o==mxConstants.ALIGN_BOTTOM&&(c-=(a=this.matchHtmlAlignment&&d&&0<a?Math.min(v,a):v)+2),a=0;a<p.length;a++)0<p[a].length&&0<mxUtils.trim(p[a]).length&&((d=this.createElement("text")).setAttribute("x",this.format(e*r.scale)),d.setAttribute("y",this.format(c*r.scale)),mxUtils.write(d,p[a]),u.appendChild(d)),c+=g;this.root.appendChild(u),this.addTextBackground(u,i,e,n,t,v,s,o,l)},mxSvgCanvas2D.prototype.updateFont=function(e){var n=this.state;e.setAttribute("fill",n.fontColor),(!this.styleEnabled||n.fontFamily!=mxConstants.DEFAULT_FONTFAMILY)&&e.setAttribute("font-family",n.fontFamily),(n.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&e.setAttribute("font-weight","bold"),(n.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&e.setAttribute("font-style","italic"),(n.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&e.setAttribute("text-decoration","underline")},mxSvgCanvas2D.prototype.addTextBackground=function(e,n,t,a,i,s,o,r,l){var d=this.state;if(null!=d.fontBackgroundColor||null!=d.fontBorderColor){var c=null;null!=(c=l?(o==mxConstants.ALIGN_CENTER?t-=i/2:o==mxConstants.ALIGN_RIGHT&&(t-=i),r==mxConstants.ALIGN_MIDDLE?a-=s/2:r==mxConstants.ALIGN_BOTTOM&&(a-=s),new mxRectangle((t+1)*d.scale,a*d.scale,(i-2)*d.scale,(s+2)*d.scale)):null!=e.getBBox&&this.root.ownerDocument==document?(c=e.getBBox(),n=mxClient.IS_IE&&mxClient.IS_SVG,new mxRectangle(c.x,c.y+(n?0:1),c.width,c.height+(n?1:0))):((c=document.createElement("div")).style.lineHeight=Math.round(d.fontSize*mxConstants.LINE_HEIGHT)+"px",c.style.fontSize=Math.round(d.fontSize)+"px",c.style.fontFamily=d.fontFamily,c.style.whiteSpace="nowrap",c.style.position="absolute",c.style.visibility="hidden",c.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",c.style.zoom="1",(d.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(c.style.fontWeight="bold"),(d.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(c.style.fontStyle="italic"),n=mxUtils.htmlEntities(n,!1),c.innerHTML=n.replace(/\n/g,"<br/>"),document.body.appendChild(c),i=c.offsetWidth,s=c.offsetHeight,c.parentNode.removeChild(c),o==mxConstants.ALIGN_CENTER?t-=i/2:o==mxConstants.ALIGN_RIGHT&&(t-=i),r==mxConstants.ALIGN_MIDDLE?a-=s/2:r==mxConstants.ALIGN_BOTTOM&&(a-=s),new mxRectangle((t+1)*d.scale,(a+2)*d.scale,i*d.scale,(s+1)*d.scale)))&&((n=this.createElement("rect")).setAttribute("fill",d.fontBackgroundColor||"none"),n.setAttribute("stroke",d.fontBorderColor||"none"),n.setAttribute("x",Math.floor(c.x-1)),n.setAttribute("y",Math.floor(c.y-1)),n.setAttribute("width",Math.ceil(c.width+2)),n.setAttribute("height",Math.ceil(c.height)),d=null!=d.fontBorderColor?Math.max(1,this.format(d.scale)):0,n.setAttribute("stroke-width",d),this.root.ownerDocument==document&&1==mxUtils.mod(d,2)&&n.setAttribute("transform","translate(0.5, 0.5)"),e.insertBefore(n,e.firstChild))}},mxSvgCanvas2D.prototype.stroke=function(){this.addNode(!1,!0)},mxSvgCanvas2D.prototype.fill=function(){this.addNode(!0,!1)},mxSvgCanvas2D.prototype.fillAndStroke=function(){this.addNode(!0,!0)};var mxVmlCanvas2D=function(e){mxAbstractCanvas2D.call(this),this.root=e};function mxGuide(e,n){this.graph=e,this.setStates(n)}function mxStencil(e){this.desc=e,this.parseDescription(),this.parseConstraints()}function mxShape(e){this.stencil=e,this.strokewidth=1,this.rotation=0,this.opacity=100,this.flipV=this.flipH=!1}mxUtils.extend(mxVmlCanvas2D,mxAbstractCanvas2D),mxVmlCanvas2D.prototype.node=null,mxVmlCanvas2D.prototype.textEnabled=!0,mxVmlCanvas2D.prototype.moveOp="m",mxVmlCanvas2D.prototype.lineOp="l",mxVmlCanvas2D.prototype.curveOp="c",mxVmlCanvas2D.prototype.closeOp="x",mxVmlCanvas2D.prototype.rotatedHtmlBackground="",mxVmlCanvas2D.prototype.vmlScale=1,mxVmlCanvas2D.prototype.addNode=function(e,n){var t=this.node,a=this.state;if(null!=t){if("shape"==t.nodeName){if(!(null!=this.path&&0<this.path.length))return;t.path=this.path.join(" ")+" e",t.style.width=this.root.style.width,t.style.height=this.root.style.height,t.coordsize=parseInt(t.style.width)+" "+parseInt(t.style.height)}t.strokeweight=this.format(Math.max(1,a.strokeWidth*a.scale/this.vmlScale))+"px",a.shadow&&this.root.appendChild(this.createShadow(t,e&&null!=a.fillColor,n&&null!=a.strokeColor)),n&&null!=a.strokeColor?(t.stroked="true",t.strokecolor=a.strokeColor):t.stroked="false",t.appendChild(this.createStroke()),e&&null!=a.fillColor?t.appendChild(this.createFill()):!this.pointerEvents||"shape"==t.nodeName&&this.path[this.path.length-1]!=this.closeOp?t.filled="false":t.appendChild(this.createTransparentFill()),this.root.appendChild(t)}},mxVmlCanvas2D.prototype.createTransparentFill=function(){var e=document.createElement(mxClient.VML_PREFIX+":fill");return e.src=mxClient.imageBasePath+"/transparent.gif",e.type="tile",e},mxVmlCanvas2D.prototype.createFill=function(){var e=this.state,n=document.createElement(mxClient.VML_PREFIX+":fill");if(n.color=e.fillColor,null!=e.gradientColor){n.type="gradient",n.method="none",n.color2=e.gradientColor;var t=180-e.rotation;t=e.gradientDirection==mxConstants.DIRECTION_WEST?t-(90+("x"==this.root.style.flip?180:0)):e.gradientDirection==mxConstants.DIRECTION_EAST?t+(90+("x"==this.root.style.flip?180:0)):e.gradientDirection==mxConstants.DIRECTION_NORTH?t-(180+("y"==this.root.style.flip?-180:0)):t+("y"==this.root.style.flip?-180:0);"x"!=this.root.style.flip&&"y"!=this.root.style.flip||(t*=-1),n.angle=mxUtils.mod(t,360),n.opacity=100*e.alpha*e.fillAlpha+"%",n.setAttribute(mxClient.OFFICE_PREFIX+":opacity2",100*e.alpha*e.gradientAlpha+"%")}else e.alpha<1&&(n.opacity=100*e.alpha+"%");return n},mxVmlCanvas2D.prototype.createStroke=function(){var e=this.state,n=document.createElement(mxClient.VML_PREFIX+":stroke");return n.endcap=e.lineCap||"flat",n.joinstyle=e.lineJoin||"miter",n.miterlimit=e.miterLimit||"10",e.alpha<1&&(n.opacity=100*e.alpha+"%"),e.dashed&&(n.dashstyle=this.getVmlDashStyle()),n},mxVmlCanvas2D.prototype.getVmlDashStyle=function(){var e="dash";if(null!=this.state.dashPattern){var n=this.state.dashPattern.split(" ");0<n.length&&1==n[0]&&(e="0 2")}return e},mxVmlCanvas2D.prototype.createShadow=function(e,n,t){var a=this.state,i=-a.rotation*(Math.PI/180),s=Math.cos(i),o=(i=Math.sin(i),a.shadowDx*a.scale),r=a.shadowDy*a.scale;"x"==this.root.style.flip?o*=-1:"y"==this.root.style.flip&&(r*=-1);var l=e.cloneNode(!0);return l.style.marginLeft=Math.round(o*s-r*i)+"px",l.style.marginTop=Math.round(o*i+r*s)+"px",8==document.documentMode&&(l.strokeweight=e.strokeweight,"shape"==e.nodeName&&(l.path=this.path.join(" ")+" e",l.style.width=this.root.style.width,l.style.height=this.root.style.height,l.coordsize=parseInt(e.style.width)+" "+parseInt(e.style.height))),t?(l.strokecolor=a.shadowColor,l.appendChild(this.createShadowStroke())):l.stroked="false",n?l.appendChild(this.createShadowFill()):l.filled="false",l},mxVmlCanvas2D.prototype.createShadowFill=function(){var e=document.createElement(mxClient.VML_PREFIX+":fill");return e.color=this.state.shadowColor,e.opacity=100*this.state.alpha*this.state.shadowAlpha+"%",e},mxVmlCanvas2D.prototype.createShadowStroke=function(){var e=this.createStroke();return e.opacity=100*this.state.alpha*this.state.shadowAlpha+"%",e},mxVmlCanvas2D.prototype.rotate=function(e,n,t,a,i){n&&t?e+=180:n?this.root.style.flip="x":t&&(this.root.style.flip="y"),(n?!t:t)&&(e*=-1),this.root.style.rotation=e,this.state.rotation+=e,this.state.rotationCx=a,this.state.rotationCy=i},mxVmlCanvas2D.prototype.begin=function(){mxAbstractCanvas2D.prototype.begin.apply(this,arguments),this.node=document.createElement(mxClient.VML_PREFIX+":shape"),this.node.style.position="absolute"},mxVmlCanvas2D.prototype.quadTo=function(e,n,t,a){var i=this.state,s=(this.lastX+i.dx)*i.scale,o=(this.lastY+i.dy)*i.scale;e=(e+i.dx)*i.scale;o+=2/3*((n=(n+i.dy)*i.scale)-o);var r=(t=(t+i.dx)*i.scale)+2/3*(e-t);n=(a=(a+i.dy)*i.scale)+2/3*(n-a),this.path.push("c "+this.format(s+2/3*(e-s))+" "+this.format(o)+" "+this.format(r)+" "+this.format(n)+" "+this.format(t)+" "+this.format(a)),this.lastX=t/i.scale-i.dx,this.lastY=a/i.scale-i.dy},mxVmlCanvas2D.prototype.createRect=function(e,n,t,a,i){var s=this.state;return(e=document.createElement(e)).style.position="absolute",e.style.left=this.format((n+s.dx)*s.scale)+"px",e.style.top=this.format((t+s.dy)*s.scale)+"px",e.style.width=this.format(a*s.scale)+"px",e.style.height=this.format(i*s.scale)+"px",e},mxVmlCanvas2D.prototype.rect=function(e,n,t,a){this.node=this.createRect(mxClient.VML_PREFIX+":rect",e,n,t,a)},mxVmlCanvas2D.prototype.roundrect=function(e,n,t,a,i,s){this.node=this.createRect(mxClient.VML_PREFIX+":roundrect",e,n,t,a),this.node.setAttribute("arcsize",Math.max(100*i/t,100*s/a)+"%")},mxVmlCanvas2D.prototype.ellipse=function(e,n,t,a){this.node=this.createRect(mxClient.VML_PREFIX+":oval",e,n,t,a)},mxVmlCanvas2D.prototype.image=function(e,n,t,a,i,s,o,r){var l=null;s?((l=this.createRect(mxClient.VML_PREFIX+":rect",e,n,t,a)).stroked="false",(e=document.createElement(mxClient.VML_PREFIX+":fill")).aspect=s?"atmost":"ignore",e.rotate="true",e.type="frame",e.src=i,l.appendChild(e)):(l=this.createRect(mxClient.VML_PREFIX+":image",e,n,t,a)).src=i,o&&r?l.style.rotation="180":o?l.style.flip="x":r&&(l.style.flip="y"),this.state.alpha<1&&(l.style.filter+="alpha(opacity="+100*this.state.alpha+")"),this.root.appendChild(l)},mxVmlCanvas2D.prototype.createDiv=function(e,n,t,a){t=document.createElement("div");var i=this.state,s="";return null!=i.fontBackgroundColor&&(s+="background-color:"+i.fontBackgroundColor+";"),null!=i.fontBorderColor&&(s+="border:1px solid "+i.fontBorderColor+";"),mxUtils.isNode(e)?t.appendChild(e):0<s.length&&!a?((a=document.createElement("div")).style.cssText=s,a.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",a.style.zoom="1",a.innerHTML=e,t.appendChild(a)):(t.style.cssText=s,t.innerHTML=e),(e=t.style).fontSize=Math.round(i.fontSize/this.vmlScale)+"px",e.fontFamily=i.fontFamily,e.color=i.fontColor,e.verticalAlign="top",e.textAlign=n||"left",e.lineHeight=Math.round(i.fontSize*mxConstants.LINE_HEIGHT/this.vmlScale)+"px",(i.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(e.fontWeight="bold"),(i.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(e.fontStyle="italic"),(i.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&(e.fontDecoration="underline"),t},mxVmlCanvas2D.prototype.text=function(e,n,t,a,i,s,o,r,l,d,c,m){if(this.textEnabled&&null!=i){var u=this.state;if("html"==l){null!=u.rotation&&(e=(n=this.rotatePoint(e,n,u.rotation,u.rotationCx,u.rotationCy)).x,n=n.y),8==document.documentMode?(e+=u.dx,n+=u.dy):(e*=u.scale,n*=u.scale),(l=8==document.documentMode?document.createElement(mxClient.VML_PREFIX+":group"):document.createElement("div")).style.position="absolute",l.style.display="inline",l.style.left=this.format(e)+"px",l.style.top=this.format(n)+"px",l.style.zoom=u.scale;var p=document.createElement("div");p.style.position="relative",p.style.display="inline";var g=(v=mxUtils.getAlignmentAsPoint(s,o)).x,v=v.y;if(i=this.createDiv(i,s,o,d),s=document.createElement("div"),r?(!c&&0<t&&(i.style.width=Math.round(t)+"px"),i.style.whiteSpace="normal"):i.style.whiteSpace="nowrap",r=u.rotation+(m||0),this.rotateHtml&&0!=r?(s.style.display="inline",s.style.zoom="1",s.appendChild(i),8==document.documentMode&&"DIV"!=this.root.nodeName?(p.appendChild(s),l.appendChild(p)):l.appendChild(s)):8==document.documentMode?(p.appendChild(i),l.appendChild(p)):(i.style.display="inline",l.appendChild(i)),"DIV"!=this.root.nodeName?((m=document.createElement(mxClient.VML_PREFIX+":rect")).stroked="false",m.filled="false",m.appendChild(l),this.root.appendChild(m)):this.root.appendChild(l),c?(i.style.overflow="hidden",0<t&&(i.style.width=Math.round(t)+"px"),0<a&&8==document.documentMode&&(i.style.maxHeight=Math.round(a)+"px")):d&&(i.style.width=t+"px",0<a&&(i.style.maxHeight=Math.round(a)+"px")),this.rotateHtml&&0!=r){t=r*(Math.PI/180),r=parseFloat(parseFloat(Math.cos(t)).toFixed(8)),m=parseFloat(parseFloat(Math.sin(-t)).toFixed(8)),(t%=2*Math.PI)<0&&(t+=2*Math.PI),(t%=Math.PI)>Math.PI/2&&(t=Math.PI-t),o=Math.cos(t);var h=Math.sin(t);8==document.documentMode&&(i.style.display="inline-block",s.style.display="inline-block",p.style.display="inline-block"),i.style.visibility="hidden",document.body.appendChild(i),t=i.offsetWidth,p=i.offsetHeight,mxClient.IS_QUIRKS&&(c||d)&&a<p&&(p=a,i.style.height=p+"px"),c=((a=p)-a*o+t*-h)/2-m*t*(g+.5)+r*a*(v+.5),d=(t-t*o+a*-h)/2+r*t*(g+.5)+m*a*(v+.5),"group"==l.nodeName&&"DIV"==this.root.nodeName?((g=document.createElement("div")).style.display="inline-block",g.style.position="absolute",g.style.left=this.format(e+(d-t/2)*u.scale)+"px",g.style.top=this.format(n+(c-a/2)*u.scale)+"px",l.parentNode.appendChild(g),g.appendChild(l)):(u=8==document.documentMode?1:u.scale,l.style.left=this.format(e+(d-t/2)*u)+"px",l.style.top=this.format(n+(c-a/2)*u)+"px"),s.style.filter="progid:DXImageTransform.Microsoft.Matrix(M11="+r+", M12="+m+", M21="+-m+", M22="+r+", sizingMethod='auto expand')",s.style.backgroundColor=this.rotatedHtmlBackground,this.state.alpha<1&&(s.style.filter+="alpha(opacity="+100*this.state.alpha+")"),i.style.visibility="",s.appendChild(i)}else 8!=document.documentMode?(i.style.verticalAlign="top",this.state.alpha<1&&(l.style.filter="alpha(opacity="+100*this.state.alpha+")"),u=i.parentNode,i.style.visibility="hidden",document.body.appendChild(i),t=i.offsetWidth,p=i.offsetHeight,mxClient.IS_QUIRKS&&c&&a<p&&(p=a,i.style.height=p+"px"),a=p,i.style.visibility="",u.appendChild(i),l.style.left=this.format(e+t*g*this.state.scale)+"px",l.style.top=this.format(n+a*v*this.state.scale)+"px"):(this.state.alpha<1&&(i.style.filter="alpha(opacity="+100*this.state.alpha+")"),p.style.left=100*g+"%",p.style.top=100*v+"%")}else this.plainText(e,n,t,a,mxUtils.htmlEntities(i,!1),s,o,r,l,d,c,m)}},mxVmlCanvas2D.prototype.plainText=function(e,n,t,a,i,s,o,r,l,d,c,m){e=(e+(a=this.state).dx)*a.scale,n=(n+a.dy)*a.scale,(t=document.createElement(mxClient.VML_PREFIX+":shape")).style.width="1px",t.style.height="1px",t.stroked="false",(d=document.createElement(mxClient.VML_PREFIX+":fill")).color=a.fontColor,d.opacity=100*a.alpha+"%",t.appendChild(d),(d=document.createElement(mxClient.VML_PREFIX+":path")).textpathok="true",d.v="m "+this.format(0)+" "+this.format(0)+" l "+this.format(1)+" "+this.format(0),t.appendChild(d),(d=document.createElement(mxClient.VML_PREFIX+":textpath")).style.cssText="v-text-align:"+s,d.style.align=s,d.style.fontFamily=a.fontFamily,d.string=i,d.on="true",s=Math.round(a.fontSize*a.scale/this.vmlScale),d.style.fontSize=s+"px",(a.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(d.style.fontWeight="bold"),(a.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(d.style.fontStyle="italic"),(a.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&(d.style.textDecoration="underline"),a=s+((i=i.split("\n")).length-1)*s*mxConstants.LINE_HEIGHT,s=i=0,o==mxConstants.ALIGN_BOTTOM?s=-a/2:o!=mxConstants.ALIGN_MIDDLE&&(s=a/2),null!=m&&(o=(t.style.rotation=m)*(Math.PI/180),i=Math.sin(o)*s,s*=Math.cos(o)),t.appendChild(d),t.style.left=this.format(e-i)+"px",t.style.top=this.format(n+s)+"px",this.root.appendChild(t)},mxVmlCanvas2D.prototype.stroke=function(){this.addNode(!1,!0)},mxVmlCanvas2D.prototype.fill=function(){this.addNode(!0,!1)},mxVmlCanvas2D.prototype.fillAndStroke=function(){this.addNode(!0,!0)},mxGuide.prototype.graph=null,mxGuide.prototype.states=null,mxGuide.prototype.horizontal=!0,mxGuide.prototype.vertical=!0,mxGuide.prototype.guideX=null,mxGuide.prototype.guideY=null,mxGuide.prototype.setStates=function(e){this.states=e},mxGuide.prototype.isEnabledForEvent=function(e){return!0},mxGuide.prototype.getGuideTolerance=function(){return this.graph.gridSize*this.graph.view.scale/2},mxGuide.prototype.createGuideShape=function(e){return(e=new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH)).isDashed=!0,e},mxGuide.prototype.move=function(a,e,n){if(null!=this.states&&(this.horizontal||this.vertical)&&null!=a&&null!=e){var t=this.graph.getView().translate,i=this.graph.getView().scale,s=e.x,o=e.y,r=!1,l=!1,d=f=this.getGuideTolerance(),c=f;(f=a.clone()).x+=e.x,f.y+=e.y;var m=f.x,u=f.x+f.width,p=f.getCenterX(),g=f.y,v=f.y+f.height,h=f.getCenterY();e=function(e){e+=this.graph.panDx;var n=!1;if(Math.abs(e-p)<d?(s=e-a.getCenterX(),d=Math.abs(e-p),n=!0):Math.abs(e-m)<d?(s=e-a.x,d=Math.abs(e-m),n=!0):Math.abs(e-u)<d&&(s=e-a.x-a.width,d=Math.abs(e-u),n=!0),n){null==this.guideX&&(this.guideX=this.createGuideShape(!0),this.guideX.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.guideX.pointerEvents=!1,this.guideX.init(this.graph.getView().getOverlayPane()));var t=this.graph.container;e-=this.graph.panDx,this.guideX.points=[new mxPoint(e,-this.graph.panDy),new mxPoint(e,t.scrollHeight-3-this.graph.panDy)]}r=r||n};for(var f=function(e){e+=this.graph.panDy;var n=!1;if(Math.abs(e-h)<c?(o=e-a.getCenterY(),c=Math.abs(e-h),n=!0):Math.abs(e-g)<c?(o=e-a.y,c=Math.abs(e-g),n=!0):Math.abs(e-v)<c&&(o=e-a.y-a.height,c=Math.abs(e-v),n=!0),n){null==this.guideY&&(this.guideY=this.createGuideShape(!1),this.guideY.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.guideY.pointerEvents=!1,this.guideY.init(this.graph.getView().getOverlayPane()));var t=this.graph.container;e-=this.graph.panDy,this.guideY.points=[new mxPoint(-this.graph.panDx,e),new mxPoint(t.scrollWidth-3-this.graph.panDx,e)]}l=l||n},b=0;b<this.states.length;b++){var A=this.states[b];null!=A&&(this.horizontal&&(e.call(this,A.getCenterX()),e.call(this,A.x),e.call(this,A.x+A.width)),this.vertical&&(f.call(this,A.getCenterY()),f.call(this,A.y),f.call(this,A.y+A.height)))}r||null==this.guideX?null!=this.guideX&&(this.guideX.node.style.visibility="visible",this.guideX.redraw()):this.guideX.node.style.visibility="hidden",l||null==this.guideY?null!=this.guideY&&(this.guideY.node.style.visibility="visible",this.guideY.redraw()):this.guideY.node.style.visibility="hidden",n&&(r||(n=a.x-(this.graph.snap(a.x/i-t.x)+t.x)*i,s=this.graph.snap(s/i)*i-n),l||(t=a.y-(this.graph.snap(a.y/i-t.y)+t.y)*i,o=this.graph.snap(o/i)*i-t)),e=new mxPoint(s,o)}return e},mxGuide.prototype.hide=function(){null!=this.guideX&&(this.guideX.node.style.visibility="hidden"),null!=this.guideY&&(this.guideY.node.style.visibility="hidden")},mxGuide.prototype.destroy=function(){null!=this.guideX&&(this.guideX.destroy(),this.guideX=null),null!=this.guideY&&(this.guideY.destroy(),this.guideY=null)},mxStencil.defaultLocalized=!1,mxStencil.prototype.desc=null,mxStencil.prototype.constraints=null,mxStencil.prototype.aspect=null,mxStencil.prototype.w0=null,mxStencil.prototype.h0=null,mxStencil.prototype.bgNode=null,mxStencil.prototype.fgNode=null,mxStencil.prototype.strokewidth=null,mxStencil.prototype.parseDescription=function(){this.fgNode=this.desc.getElementsByTagName("foreground")[0],this.bgNode=this.desc.getElementsByTagName("background")[0],this.w0=Number(this.desc.getAttribute("w")||100),this.h0=Number(this.desc.getAttribute("h")||100);var e=this.desc.getAttribute("aspect");this.aspect=null!=e?e:"variable",e=this.desc.getAttribute("strokewidth"),this.strokewidth=null!=e?e:"1"},mxStencil.prototype.parseConstraints=function(){var e=this.desc.getElementsByTagName("connections")[0];if(null!=e&&(null!=(e=mxUtils.getChildNodes(e))&&0<e.length)){this.constraints=[];for(var n=0;n<e.length;n++)this.constraints.push(this.parseConstraint(e[n]))}},mxStencil.prototype.parseConstraint=function(e){var n=Number(e.getAttribute("x")),t=Number(e.getAttribute("y"));return e="1"==e.getAttribute("perimeter"),new mxConnectionConstraint(new mxPoint(n,t),e)},mxStencil.prototype.evaluateTextAttribute=function(e,n,t){return n=this.evaluateAttribute(e,n,t),e=e.getAttribute("localized"),(mxStencil.defaultLocalized&&null==e||"1"==e)&&(n=mxResources.get(n)),n},mxStencil.prototype.evaluateAttribute=function(e,n,t){return null==(n=e.getAttribute(n))&&(null!=(e=mxUtils.getTextContent(e))&&("function"==typeof(e=mxUtils.eval(e))&&(n=e(t)))),n},mxStencil.prototype.drawShape=function(e,n,t,a,i,s){this.drawChildren(e,n,t,a,i,s,this.bgNode,!1),this.drawChildren(e,n,t,a,i,s,this.fgNode,!0)},mxStencil.prototype.drawChildren=function(e,n,t,a,i,s,o,r){if(null!=o){var l=mxUtils.getValue(n.style,mxConstants.STYLE_DIRECTION,null);for(t=this.computeAspect(n.style,t,a,i,s,l),a=Math.min(t.width,t.height),a="inherit"==this.strokewidth?Number(mxUtils.getNumber(n.style,mxConstants.STYLE_STROKEWIDTH,1)):Number(this.strokewidth)*a,e.setStrokeWidth(a),o=o.firstChild;null!=o;)o.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(e,n,o,t,r),o=o.nextSibling}},mxStencil.prototype.computeAspect=function(e,n,t,a,i,s){e=n,n=a/this.w0;var o=i/this.h0;if(s="north"==s||"south"==s){o=a/this.h0,n=i/this.w0;var r=(a-i)/2;e+=r,t-=r}return"fixed"==this.aspect&&(n=o=Math.min(n,o),s?(e+=(i-this.w0*n)/2,t+=(a-this.h0*o)/2):(e+=(a-this.w0*n)/2,t+=(i-this.h0*o)/2)),new mxRectangle(e,t,n,o)},mxStencil.prototype.drawNode=function(e,n,t,a,i){var s=t.nodeName,o=a.x,r=a.y,l=a.width,d=a.height,c=Math.min(l,d);if("save"==s)e.save();else if("restore"==s)e.restore();else if("path"==s)for(e.begin(),t=t.firstChild;null!=t;)t.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(e,n,t,a,i),t=t.nextSibling;else if("close"==s)e.close();else if("move"==s)e.moveTo(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d);else if("line"==s)e.lineTo(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d);else if("quad"==s)e.quadTo(o+Number(t.getAttribute("x1"))*l,r+Number(t.getAttribute("y1"))*d,o+Number(t.getAttribute("x2"))*l,r+Number(t.getAttribute("y2"))*d);else if("curve"==s)e.curveTo(o+Number(t.getAttribute("x1"))*l,r+Number(t.getAttribute("y1"))*d,o+Number(t.getAttribute("x2"))*l,r+Number(t.getAttribute("y2"))*d,o+Number(t.getAttribute("x3"))*l,r+Number(t.getAttribute("y3"))*d);else if("arc"==s)e.arcTo(Number(t.getAttribute("rx"))*l,Number(t.getAttribute("ry"))*d,Number(t.getAttribute("x-axis-rotation")),Number(t.getAttribute("large-arc-flag")),Number(t.getAttribute("sweep-flag")),o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d);else if("rect"==s)e.rect(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d,Number(t.getAttribute("w"))*l,Number(t.getAttribute("h"))*d);else if("roundrect"==s)0==(n=t.getAttribute("arcsize"))&&(n=100*mxConstants.RECTANGLE_ROUNDING_FACTOR),c=Number(t.getAttribute("w"))*l,a=Number(t.getAttribute("h"))*d,n=Number(n)/100,n=Math.min(c*n,a*n),e.roundrect(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d,c,a,n,n);else if("ellipse"==s)e.ellipse(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d,Number(t.getAttribute("w"))*l,Number(t.getAttribute("h"))*d);else if("image"==s)n=this.evaluateAttribute(t,"src",n),e.image(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d,Number(t.getAttribute("w"))*l,Number(t.getAttribute("h"))*d,n,!1,"1"==t.getAttribute("flipH"),"1"==t.getAttribute("flipV"));else if("text"==s){if(c=this.evaluateTextAttribute(t,"str",n),a="1"==t.getAttribute("vertical")?-90:0,"0"==t.getAttribute("align-shape")){var m=n.rotation,u=1==mxUtils.getValue(n.style,mxConstants.STYLE_FLIPH,0);n=1==mxUtils.getValue(n.style,mxConstants.STYLE_FLIPV,0),a=u&&n?a-m:u||n?a+m:a-m}a-=t.getAttribute("rotation"),e.text(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d,0,0,c,t.getAttribute("align")||"left",t.getAttribute("valign")||"top",!1,"",!1,!1,a)}else if("include-shape"==s)null!=(m=mxStencilRegistry.getStencil(t.getAttribute("name")))&&(o+=Number(t.getAttribute("x"))*l,r+=Number(t.getAttribute("y"))*d,c=Number(t.getAttribute("w"))*l,a=Number(t.getAttribute("h"))*d,m.drawShape(e,n,o,r,c,a));else if("fillstroke"==s)e.fillAndStroke();else if("fill"==s)e.fill();else if("stroke"==s)e.stroke();else if("strokewidth"==s)e.setStrokeWidth(Number(t.getAttribute("width"))*c);else if("dashed"==s)e.setDashed("1"==t.getAttribute("dashed"));else if("dashpattern"==s){if(null!=(t=t.getAttribute("pattern"))){for(t=t.split(" "),l=[],d=0;d<t.length;d++)0<t[d].length&&l.push(Number(t[d])*c);t=l.join(" "),e.setDashPattern(t)}}else"strokecolor"==s?e.setStrokeColor(t.getAttribute("color")):"linecap"==s?e.setLineCap(t.getAttribute("cap")):"linejoin"==s?e.setLineJoin(t.getAttribute("join")):"miterlimit"==s?e.setMiterLimit(Number(t.getAttribute("limit"))):"fillcolor"==s?e.setFillColor(t.getAttribute("color")):"alpha"==s?e.setAlpha(t.getAttribute("alpha")):"fontcolor"==s?e.setFontColor(t.getAttribute("color")):"fontstyle"==s?e.setFontStyle(t.getAttribute("style")):"fontfamily"==s?e.setFontFamily(t.getAttribute("family")):"fontsize"==s&&e.setFontSize(Number(t.getAttribute("size"))*c);i&&("fillstroke"==s||"fill"==s||"stroke"==s)&&e.setShadow(!1)},mxShape.prototype.dialect=null,mxShape.prototype.scale=1,mxShape.prototype.bounds=null,mxShape.prototype.points=null,mxShape.prototype.node=null,mxShape.prototype.style=null,mxShape.prototype.style=null,mxShape.prototype.boundingBox=null,mxShape.prototype.stencil=null,mxShape.prototype.svgStrokeTolerance=6,mxShape.prototype.pointerEvents=!0,mxShape.prototype.stencilPointerEvents=!1,mxShape.prototype.vmlScale=1,mxShape.prototype.init=function(e){null==this.node&&(this.node=this.create(e),null!=e&&e.appendChild(this.node))},mxShape.prototype.isParseVml=function(){return!0},mxShape.prototype.isHtmlAllowed=function(){return!1},mxShape.prototype.getSvgScreenOffset=function(){return 1==mxUtils.mod(Math.max(1,Math.round(this.strokewidth*this.scale)),2)?.5:0},mxShape.prototype.create=function(e){return null!=e.ownerSVGElement?this.createSvg(e):8==document.documentMode||this.dialect==mxConstants.DIALECT_SVG||this.dialect!=mxConstants.DIALECT_VML&&this.isHtmlAllowed()?this.createHtml(e):this.createVml(e)},mxShape.prototype.createSvg=function(){return document.createElementNS(mxConstants.NS_SVG,"g")},mxShape.prototype.createVml=function(){var e=document.createElement(mxClient.VML_PREFIX+":group");return e.style.position="absolute",e},mxShape.prototype.createHtml=function(){var e=document.createElement("div");return e.style.position="absolute",e},mxShape.prototype.reconfigure=function(){this.redraw()},mxShape.prototype.redraw=function(){this.updateBoundsFromPoints(),this.checkBounds()?(this.node.style.visibility="","DIV"==this.node.nodeName&&this.isHtmlAllowed()?this.redrawHtmlShape():this.redrawShape(),this.updateBoundingBox()):(this.node.style.visibility="hidden",this.boundingBox=null)},mxShape.prototype.updateBoundsFromPoints=function(){var e=this.points;if(null!=e&&0<e.length&&null!=e[0]){this.bounds=new mxRectangle(Number(e[0].x),Number(e[0].y),1,1);for(var n=1;n<this.points.length;n++)null!=e[n]&&this.bounds.add(new mxRectangle(Number(e[n].x),Number(e[n].y),1,1))}},mxShape.prototype.checkBounds=function(){return null!=this.bounds&&!isNaN(this.bounds.x)&&!isNaN(this.bounds.y)&&!isNaN(this.bounds.width)&&!isNaN(this.bounds.height)&&0<this.bounds.width&&0<this.bounds.height},mxShape.prototype.createVmlGroup=function(){var e=document.createElement(mxClient.VML_PREFIX+":group");return e.style.position="absolute",e.style.width=this.node.style.width,e.style.height=this.node.style.height,e},mxShape.prototype.redrawShape=function(){var e=this.createCanvas();for(e.pointerEvents=this.pointerEvents;this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild);this.paint(e),this.node!=e.root&&this.node.insertAdjacentHTML("beforeend",e.root.outerHTML),"DIV"==this.node.nodeName&&8==document.documentMode&&(this.node.style.filter="",(null==this.stencil||!this.stencilPointerEvents)&&mxUtils.addTransparentBackgroundFilter(this.node)),this.destroyCanvas(e)},mxShape.prototype.createCanvas=function(){var e=null,n=null;if(null!=this.node.ownerSVGElement)(e=new mxSvgCanvas2D(this.node,!1)).strokeTolerance=this.svgStrokeTolerance,e.blockImagePointerEvents=mxClient.IS_NS&&!mxClient.IS_SF&&!mxClient.IS_GC,0!=(n=this.getSvgScreenOffset())?this.node.setAttribute("transform","translate("+n+","+n+")"):this.node.removeAttribute("transform");else{this.updateVmlContainer();var t=Math.max(1,Math.round(this.bounds.width)),a=Math.max(1,Math.round(this.bounds.height));n=8==document.documentMode&&this.isParseVml()?this.createVmlGroup():this.node,e=new mxVmlCanvas2D(n,!1);""!=n.tagUrn&&(n.coordsize=t*this.vmlScale+","+a*this.vmlScale,e.scale(this.vmlScale),e.vmlScale=this.vmlScale),n=this.scale,e.translate(-Math.round(this.bounds.x/n),-Math.round(this.bounds.y/n))}return e},mxShape.prototype.updateVmlContainer=function(){this.node.style.left=Math.round(this.bounds.x)+"px",this.node.style.top=Math.round(this.bounds.y)+"px";var e=Math.max(1,Math.round(this.bounds.width)),n=Math.max(1,Math.round(this.bounds.height));this.node.style.width=e+"px",this.node.style.height=n+"px",this.node.style.overflow="visible"},mxShape.prototype.destroyCanvas=function(e){if(e instanceof mxSvgCanvas2D){for(var n in e.gradients){var t=e.gradients[n];t.mxRefCount=(t.mxRefCount||0)+1}this.releaseSvgGradients(this.oldGradients),this.oldGradients=e.gradients}},mxShape.prototype.paint=function(e){var n=this.scale,t=this.bounds.x/n,a=this.bounds.y/n,i=this.bounds.width/n,s=this.bounds.height/n;if(this.isPaintBoundsInverted()){t=t+(o=(i-s)/2),a=a-o;var o=i;i=s,s=o}if(this.updateTransform(e,t,a,i,s),this.configureCanvas(e,t,a,i,s),null!=this.stencil)this.paintStencilShape(e,t,a,i,s);else if(e.setStrokeWidth(this.strokewidth),null!=this.points){for(t=[],a=0;a<this.points.length;a++)t.push(new mxPoint(this.points[a].x/n,this.points[a].y/n));this.paintEdgeShape(e,t)}else this.paintVertexShape(e,t,a,i,s)},mxShape.prototype.configureCanvas=function(e,n,t,a,i){var s=null;null!=this.style&&(s=this.style.dashPattern),e.setAlpha(this.opacity/100),null!=this.isShadow&&e.setShadow(this.isShadow),null!=this.isDashed&&e.setDashed(this.isDashed),null!=s&&e.setDashPattern(s),null!=this.gradient?(n=this.getGradientBounds(e,n,t,a,i),e.setGradient(this.fill,this.gradient,n.x,n.y,n.width,n.height,this.gradientDirection)):e.setFillColor(this.fill),e.setStrokeColor(this.stroke)},mxShape.prototype.getGradientBounds=function(e,n,t,a,i){return new mxRectangle(n,t,a,i)},mxShape.prototype.updateTransform=function(e,n,t,a,i){e.scale(this.scale),e.rotate(this.getShapeRotation(),this.flipH,this.flipV,n+a/2,t+i/2)},mxShape.prototype.paintStencilShape=function(e,n,t,a,i){this.stencilPointerEvents&&(this.dialect==mxConstants.DIALECT_SVG?this.addTransparentBackgroundRectangle(this.node,n,t,a,i):8!=document.documentMode&&this.setTransparentBackgroundImage(this.node)),this.stencil.drawShape(e,this,n,t,a,i)},mxShape.prototype.paintVertexShape=function(e,n,t,a,i){this.paintBackground(e,n,t,a,i),e.setShadow(!1),this.paintForeground(e,n,t,a,i)},mxShape.prototype.paintBackground=function(e,n,t,a,i){},mxShape.prototype.paintForeground=function(e,n,t,a,i){},mxShape.prototype.paintEdgeShape=function(e,n){},mxShape.prototype.getArcSize=function(e,n){var t=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100;return Math.min(e*t,n*t)},mxShape.prototype.paintGlassEffect=function(e,n,t,a,i,s){var o=Math.ceil(this.strokewidth/2);e.setGradient("#ffffff","#ffffff",n,t,a,.6*i,"south",.9,.1),e.begin(),s+=2*o,this.isRounded?(e.moveTo(n-o+s,t-o),e.quadTo(n-o,t-o,n-o,t-o+s),e.lineTo(n-o,t+.4*i),e.quadTo(n+.5*a,t+.7*i,n+a+o,t+.4*i),e.lineTo(n+a+o,t-o+s),e.quadTo(n+a+o,t-o,n+a+o-s,t-o)):(e.moveTo(n-o,t-o),e.lineTo(n-o,t+.4*i),e.quadTo(n+.5*a,t+.7*i,n+a+o,t+.4*i),e.lineTo(n+a+o,t-o)),e.close(),e.fill()},mxShape.prototype.apply=function(e){this.state=e,this.style=e.style,null!=this.style&&(this.fill=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,this.fill),this.gradient=mxUtils.getValue(this.style,mxConstants.STYLE_GRADIENTCOLOR,this.gradient),this.gradientDirection=mxUtils.getValue(this.style,mxConstants.STYLE_GRADIENT_DIRECTION,this.gradientDirection),this.opacity=mxUtils.getValue(this.style,mxConstants.STYLE_OPACITY,this.opacity),this.stroke=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,this.stroke),this.strokewidth=mxUtils.getNumber(this.style,mxConstants.STYLE_STROKEWIDTH,this.strokewidth),this.spacing=mxUtils.getValue(this.style,mxConstants.STYLE_SPACING,this.spacing),this.startSize=mxUtils.getNumber(this.style,mxConstants.STYLE_STARTSIZE,this.startSize),this.endSize=mxUtils.getNumber(this.style,mxConstants.STYLE_ENDSIZE,this.endSize),this.startArrow=mxUtils.getValue(this.style,mxConstants.STYLE_STARTARROW,this.startArrow),this.endArrow=mxUtils.getValue(this.style,mxConstants.STYLE_ENDARROW,this.endArrow),this.rotation=mxUtils.getValue(this.style,mxConstants.STYLE_ROTATION,this.rotation),this.direction=mxUtils.getValue(this.style,mxConstants.STYLE_DIRECTION,this.direction),this.flipH=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPH,0),this.flipV=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPV,0),null!=this.stencil&&(this.flipH=1==mxUtils.getValue(this.style,"stencilFlipH",0)||this.flipH,this.flipV=1==mxUtils.getValue(this.style,"stencilFlipV",0)||this.flipV),"north"!=this.direction&&"south"!=this.direction||(e=this.flipH,this.flipH=this.flipV,this.flipV=e),this.isShadow=1==mxUtils.getValue(this.style,mxConstants.STYLE_SHADOW,this.isShadow),this.isDashed=1==mxUtils.getValue(this.style,mxConstants.STYLE_DASHED,this.isDashed),this.isRounded=1==mxUtils.getValue(this.style,mxConstants.STYLE_ROUNDED,this.isRounded),this.glass=1==mxUtils.getValue(this.style,mxConstants.STYLE_GLASS,this.glass),"none"==this.fill&&(this.fill=null),"none"==this.gradient&&(this.gradient=null),"none"==this.stroke&&(this.stroke=null))},mxShape.prototype.setCursor=function(e){null==e&&(e=""),this.cursor=e,null!=this.node&&(this.node.style.cursor=e)},mxShape.prototype.getCursor=function(){return this.cursor},mxShape.prototype.updateBoundingBox=function(){if(null!=this.bounds){var e=this.createBoundingBox();if(null!=e){this.augmentBoundingBox(e);var n=this.getShapeRotation();0!=n&&(e=mxUtils.getBoundingBox(e,n)),e.x=Math.floor(e.x),e.y=Math.floor(e.y),e.width=Math.ceil(e.width),e.height=Math.ceil(e.height)}this.boundingBox=e}},mxShape.prototype.createBoundingBox=function(){var e=this.bounds.clone();if(this.isPaintBoundsInverted()){var n=(e.width-e.height)/2;e.x+=n,e.y-=n,n=e.width,e.width=e.height,e.height=n}return e},mxShape.prototype.augmentBoundingBox=function(e){this.isShadow&&(e.width+=Math.ceil(mxConstants.SHADOW_OFFSET_X*this.scale),e.height+=Math.ceil(mxConstants.SHADOW_OFFSET_Y*this.scale));var n=Math.ceil(this.strokewidth*this.scale);e.grow(Math.ceil(n/2))},mxShape.prototype.isPaintBoundsInverted=function(){return null==this.stencil&&("north"==this.direction||"south"==this.direction)},mxShape.prototype.getRotation=function(){return null!=this.rotation?this.rotation:0},mxShape.prototype.getTextRotation=function(){var e=this.getRotation();return 1!=mxUtils.getValue(this.style,mxConstants.STYLE_HORIZONTAL,1)&&(e+=mxText.prototype.verticalTextRotation),e},mxShape.prototype.getShapeRotation=function(){var e=this.getRotation();return null!=this.direction&&("north"==this.direction?e+=270:"west"==this.direction?e+=180:"south"==this.direction&&(e+=90)),e},mxShape.prototype.addTransparentBackgroundRectangle=function(e,n,t,a,i){(e=document.createElementNS(mxConstants.NS_SVG,"rect")).setAttribute("x",n),e.setAttribute("y",t),e.setAttribute("width",a),e.setAttribute("height",i),e.setAttribute("fill","none"),e.setAttribute("stroke","none"),e.setAttribute("pointer-events","all"),this.node.appendChild(e)},mxShape.prototype.setTransparentBackgroundImage=function(e){e.style.backgroundImage="url('"+mxClient.imageBasePath+"/transparent.gif')"},mxShape.prototype.releaseSvgGradients=function(e){if(null!=e)for(var n in e){var t=e[n];t.mxRefCount=(t.mxRefCount||0)-1,0==t.mxRefCount&&null!=t.parentNode&&t.parentNode.removeChild(t)}},mxShape.prototype.destroy=function(){null!=this.node&&(mxEvent.release(this.node),null!=this.node.parentNode&&this.node.parentNode.removeChild(this.node),this.node=null),this.releaseSvgGradients(this.oldGradients),this.oldGradients=null};var mxStencilRegistry={stencils:[],addStencil:function(e,n){mxStencilRegistry.stencils[e]=n},getStencil:function(e){return mxStencilRegistry.stencils[e]}},mxMarker={markers:[],addMarker:function(e,n){mxMarker.markers[e]=n},createMarker:function(e,n,t,a,i,s,o,r,l,d){var c=mxMarker.markers[t];return null!=c?c(e,n,t,a,i,s,o,r,l,d):null}};function mxActor(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxCloud(e,n,t,a){mxActor.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxRectangleShape(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxEllipse(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxDoubleEllipse(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxRhombus(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxPolyline(e,n,t){mxShape.call(this),this.points=e,this.stroke=n,this.strokewidth=null!=t?t:1}function mxArrow(e,n,t,a,i,s,o){mxShape.call(this),this.points=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1,this.arrowWidth=null!=i?i:mxConstants.ARROW_WIDTH,this.spacing=null!=s?s:mxConstants.ARROW_SPACING,this.endSize=null!=o?o:mxConstants.ARROW_SIZE}function mxText(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h,f,b,A){mxShape.call(this),this.value=e,this.bounds=n,this.color=null!=i?i:"black",this.align=null!=t?t:"",this.valign=null!=a?a:"",this.family=null!=s?s:mxConstants.DEFAULT_FONTFAMILY,this.size=null!=o?o:mxConstants.DEFAULT_FONTSIZE,this.fontStyle=null!=r?r:mxConstants.DEFAULT_FONTSTYLE,this.spacing=parseInt(l||2),this.spacingTop=this.spacing+parseInt(d||0),this.spacingRight=this.spacing+parseInt(c||0),this.spacingBottom=this.spacing+parseInt(m||0),this.spacingLeft=this.spacing+parseInt(u||0),this.horizontal=null==p||p,this.background=g,this.border=v,this.wrap=null!=h&&h,this.clipped=null!=f&&f,this.overflow=null!=b?b:"visible",this.labelPadding=null!=A?A:0,this.rotation=0}function mxTriangle(){mxActor.call(this)}function mxHexagon(){mxActor.call(this)}function mxLine(e,n,t){mxShape.call(this),this.bounds=e,this.stroke=n,this.strokewidth=null!=t?t:1}function mxImageShape(e,n,t,a,i){mxShape.call(this),this.bounds=e,this.image=n,this.fill=t,this.stroke=a,this.strokewidth=null!=i?i:1,this.shadow=!1}function mxLabel(e,n,t,a){mxRectangleShape.call(this,e,n,t,a)}function mxCylinder(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxConnector(e,n,t){mxPolyline.call(this,e,n,t)}function mxSwimlane(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxGraphLayout(e){this.graph=e}function mxStackLayout(e,n,t,a,i,s){mxGraphLayout.call(this,e),this.horizontal=null==n||n,this.spacing=null!=t?t:0,this.x0=null!=a?a:0,this.y0=null!=i?i:0,this.border=null!=s?s:0}function mxPartitionLayout(e,n,t,a){mxGraphLayout.call(this,e),this.horizontal=null==n||n,this.spacing=t||0,this.border=a||0}function mxCompactTreeLayout(e,n,t){mxGraphLayout.call(this,e),this.horizontal=null==n||n,this.invert=null!=t&&t}function WeightedCellSorter(e,n){this.cell=e,this.weightedValue=n}function mxFastOrganicLayout(e){mxGraphLayout.call(this,e)}function mxCircleLayout(e,n){mxGraphLayout.call(this,e),this.radius=null!=n?n:100}function mxParallelEdgeLayout(e){mxGraphLayout.call(this,e)}function mxCompositeLayout(e,n,t){mxGraphLayout.call(this,e),this.layouts=n,this.master=t}function mxEdgeLabelLayout(e,n){mxGraphLayout.call(this,e)}function mxGraphAbstractHierarchyCell(){this.x=[],this.y=[],this.temp=[]}function mxGraphHierarchyNode(e){mxGraphAbstractHierarchyCell.apply(this,arguments),this.cell=e}function mxGraphHierarchyEdge(e){mxGraphAbstractHierarchyCell.apply(this,arguments),this.edges=e}function mxGraphHierarchyModel(e,n,t,a,i){for(e.getGraph(),this.tightenToSource=i,this.roots=t,this.parent=a,this.vertexMapper={},this.edgeMapper={},this.maxRank=0,t=[],null==n&&(n=this.graph.getChildVertices(a)),this.maxRank=this.SOURCESCANSTARTRANK,this.createInternalCells(e,n,t),a=0;a<n.length;a++){i=t[a].connectsAsSource;for(var s=0;s<i.length;s++){var o=i[s];if(null!=(r=o.edges)&&0<r.length){var r=r[0],l=e.getVisibleTerminal(r,!1);l=mxCellPath.create(l),l=this.vertexMapper[l];t[a]==l&&(l=e.getVisibleTerminal(r,!0),l=mxCellPath.create(l),l=this.vertexMapper[l]),null!=l&&t[a]!=l&&(0==(o.target=l).connectsAsTarget.length&&(l.connectsAsTarget=[]),mxUtils.indexOf(l.connectsAsTarget,o)<0&&l.connectsAsTarget.push(o))}}t[a].temp[0]=1}}function mxHierarchicalLayoutStage(){}function mxMedianHybridCrossingReduction(e){this.layout=e}function MedianCellSorter(){}function mxMinimumCycleRemover(e){this.layout=e}function mxCoordinateAssignment(e,n,t,a,i,s){this.layout=e,this.intraCellSpacing=n,this.interRankCellSpacing=t,this.orientation=a,this.initialX=i,this.parallelEdgeSpacing=s}!function(){function e(e,n,t,a,i,s,o,r,l,d){n=1.118*i*l,r=1.118*s*l,i*=o+l,s*=o+l;var c=a.clone();return c.x-=n,c.y-=r,o=t!=mxConstants.ARROW_CLASSIC?1:.75,a.x+=-i*o-n,a.y+=-s*o-r,function(){e.begin(),e.moveTo(c.x,c.y),e.lineTo(c.x-i-s/2,c.y-s+i/2),t==mxConstants.ARROW_CLASSIC&&e.lineTo(c.x-3*i/4,c.y-3*s/4),e.lineTo(c.x+s/2-i,c.y-s-i/2),e.close(),d?e.fillAndStroke():e.stroke()}}function n(e,n,t,a,i,s,o,r,l,d){r=t==mxConstants.ARROW_DIAMOND?.7071:.9862,n=i*l*r,r*=s*l,i*=o+l,s*=o+l;var c=a.clone();c.x-=n,c.y-=r,a.x+=-i-n,a.y+=-s-r;var m=t==mxConstants.ARROW_DIAMOND?2:3.4;return function(){e.begin(),e.moveTo(c.x,c.y),e.lineTo(c.x-i/2-s/m,c.y+i/m-s/2),e.lineTo(c.x-i,c.y-s),e.lineTo(c.x-i/2+s/m,c.y-s/2-i/m),e.close(),d?e.fillAndStroke():e.stroke()}}mxMarker.addMarker("classic",e),mxMarker.addMarker("block",e),mxMarker.addMarker("open",function(e,n,t,a,i,s,o,r,l,d){n=1.118*i*l,t=1.118*s*l,i*=o+l,s*=o+l;var c=a.clone();return c.x-=n,c.y-=t,a.x+=2*-n,a.y+=2*-t,function(){e.begin(),e.moveTo(c.x-i-s/2,c.y-s+i/2),e.lineTo(c.x,c.y),e.lineTo(c.x+s/2-i,c.y-s-i/2),e.stroke()}}),mxMarker.addMarker("oval",function(e,n,t,a,i,s,o,r,l,d){var c=o/2,m=a.clone();return a.x-=i*c,a.y-=s*c,function(){e.ellipse(m.x-c,m.y-c,o,o),d?e.fillAndStroke():e.stroke()}}),mxMarker.addMarker("diamond",n),mxMarker.addMarker("diamondThin",n)}(),mxUtils.extend(mxActor,mxShape),mxActor.prototype.paintVertexShape=function(e,n,t,a,i){e.translate(n,t),e.begin(),this.redrawPath(e,n,t,a,i),e.fillAndStroke()},mxActor.prototype.redrawPath=function(e,n,t,a,i){n=a/3,e.moveTo(0,i),e.curveTo(0,3*i/5,0,2*i/5,a/2,2*i/5),e.curveTo(a/2-n,2*i/5,a/2-n,0,a/2,0),e.curveTo(a/2+n,0,a/2+n,2*i/5,a/2,2*i/5),e.curveTo(a,2*i/5,a,3*i/5,a,i),e.close()},mxUtils.extend(mxCloud,mxActor),mxCloud.prototype.redrawPath=function(e,n,t,a,i){e.moveTo(.25*a,.25*i),e.curveTo(.05*a,.25*i,0,.5*i,.16*a,.55*i),e.curveTo(0,.66*i,.18*a,.9*i,.31*a,.8*i),e.curveTo(.4*a,i,.7*a,i,.8*a,.8*i),e.curveTo(a,.8*i,a,.6*i,.875*a,.5*i),e.curveTo(a,.3*i,.8*a,.1*i,.625*a,.2*i),e.curveTo(.5*a,.05*i,.3*a,.05*i,.25*a,.25*i),e.close()},mxUtils.extend(mxRectangleShape,mxShape),mxRectangleShape.prototype.isHtmlAllowed=function(){return!this.isRounded&&!this.glass&&0==this.rotation},mxRectangleShape.prototype.paintBackground=function(e,n,t,a,i){if(this.isRounded){var s=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100;s=Math.min(a*s,i*s);e.roundrect(n,t,a,i,s,s)}else e.rect(n,t,a,i);e.fillAndStroke()},mxRectangleShape.prototype.paintForeground=function(e,n,t,a,i){this.glass&&this.paintGlassEffect(e,n,t,a,i,this.getArcSize(a+this.strokewidth,i+this.strokewidth))},mxRectangleShape.prototype.redrawHtmlShape=function(){this.updateHtmlBounds(this.node),this.updateHtmlFilters(this.node),this.updateHtmlColors(this.node)},mxRectangleShape.prototype.updateHtmlBounds=function(e){var n=9<=document.documentMode?0:Math.ceil(this.strokewidth*this.scale);e.style.borderWidth=Math.max(1,n)+"px",e.style.overflow="hidden",e.style.left=Math.round(this.bounds.x-n/2)+"px",e.style.top=Math.round(this.bounds.y-n/2)+"px","CSS1Compat"==document.compatMode&&(n=-n),e.style.width=Math.round(Math.max(0,this.bounds.width+n))+"px",e.style.height=Math.round(Math.max(0,this.bounds.height+n))+"px"},mxRectangleShape.prototype.updateHtmlColors=function(e){var n=this.stroke;null!=n&&n!=mxConstants.NONE?(e.style.borderColor=n,this.isDashed?e.style.borderStyle="dashed":0<this.strokewidth&&(e.style.borderStyle="solid"),e.style.borderWidth=Math.max(1,Math.ceil(this.strokewidth*this.scale))+"px"):e.style.borderWidth="0px",null!=(n=this.fill)&&n!=mxConstants.NONE?(e.style.backgroundColor=n,e.style.backgroundImage="none"):this.pointerEvents?e.style.backgroundColor="transparent":8==document.documentMode?mxUtils.addTransparentBackgroundFilter(e):this.setTransparentBackgroundImage(e)},mxRectangleShape.prototype.updateHtmlFilters=function(e){var n="";if(this.opacity<100&&(n+="alpha(opacity="+this.opacity+")"),this.isShadow&&(n+="progid:DXImageTransform.Microsoft.dropShadow (OffX='"+Math.round(mxConstants.SHADOW_OFFSET_X*this.scale)+"', OffY='"+Math.round(mxConstants.SHADOW_OFFSET_Y*this.scale)+"', Color='"+mxConstants.SHADOWCOLOR+"')"),this.gradient){var t=this.fill,a=this.gradient,i="0",s={east:0,south:1,west:2,north:3},o=null!=this.direction?s[this.direction]:0;null!=this.gradientDirection&&(o=mxUtils.mod(o+s[this.gradientDirection]-1,4)),1==o?(i="1",s=t,t=a,a=s):2==o?(s=t,t=a,a=s):3==o&&(i="1"),n+="progid:DXImageTransform.Microsoft.gradient(startColorStr='"+t+"', endColorStr='"+a+"', gradientType='"+i+"')"}e.style.filter=n},mxUtils.extend(mxEllipse,mxShape),mxEllipse.prototype.paintVertexShape=function(e,n,t,a,i){e.ellipse(n,t,a,i),e.fillAndStroke()},mxUtils.extend(mxDoubleEllipse,mxShape),mxDoubleEllipse.prototype.vmlScale=10,mxDoubleEllipse.prototype.paintBackground=function(e,n,t,a,i){e.ellipse(n,t,a,i),e.fillAndStroke()},mxDoubleEllipse.prototype.paintForeground=function(e,n,t,a,i){var s=Math.min(4,Math.min(a/5,i/5));i-=2*s,0<(a-=2*s)&&0<i&&e.ellipse(n+s,t+s,a,i),e.stroke()},mxUtils.extend(mxRhombus,mxShape),mxRhombus.prototype.paintVertexShape=function(e,n,t,a,i){var s=a/2,o=i/2;e.begin(),e.moveTo(n+s,t),e.lineTo(n+a,t+o),e.lineTo(n+s,t+i),e.lineTo(n,t+o),e.close(),e.fillAndStroke()},mxUtils.extend(mxPolyline,mxShape),mxPolyline.prototype.getRotation=function(){return 0},mxPolyline.prototype.paintEdgeShape=function(e,n){this.paintLine(e,n,this.isRounded)},mxPolyline.prototype.paintLine=function(e,n,t){var a=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2,i=n[0],s=n[n.length-1];e.begin(),e.moveTo(i.x,i.y);for(var o=1;o<n.length-1;o++){var r=n[o],l=i.x-r.x;i=i.y-r.y;if(t&&o<n.length-1&&(0!=l||0!=i)){var d=Math.sqrt(l*l+i*i);l=l*Math.min(a,d/2)/d,i=i*Math.min(a,d/2)/d;e.lineTo(r.x+l,r.y+i),l=(i=n[o+1]).x-r.x,i=i.y-r.y,d=Math.max(1,Math.sqrt(l*l+i*i)),l=l*Math.min(a,d/2)/d,i=i*Math.min(a,d/2)/d,l=r.x+l,i=r.y+i,e.quadTo(r.x,r.y,l,i),r=new mxPoint(l,i)}else e.lineTo(r.x,r.y);i=r}e.lineTo(s.x,s.y),e.stroke()},mxUtils.extend(mxArrow,mxShape),mxArrow.prototype.paintEdgeShape=function(e,n){var t=mxConstants.ARROW_SPACING,a=mxConstants.ARROW_WIDTH,i=mxConstants.ARROW_SIZE,s=n[0],o=n[n.length-1],r=o.x-s.x,l=o.y-s.y,d=(c=Math.sqrt(r*r+l*l))-2*t-i,c=(r=r/c,a*(l=l/c)/3),m=(a=-a*r/3,(i=s.x-c/2+t*r)+c),u=(s=s.y-a/2+t*l)+a,p=m+d*r,g=p+c,v=(d=u+d*l)+a,h=g-3*c,f=v-3*a;e.begin(),e.moveTo(i,s),e.lineTo(m,u),e.lineTo(p,d),e.lineTo(g,v),e.lineTo(o.x-t*r,o.y-t*l),e.lineTo(h,f),e.lineTo(h+c,f+a),e.close(),e.fillAndStroke()},mxUtils.extend(mxText,mxShape),mxText.prototype.baseSpacingTop=0,mxText.prototype.baseSpacingBottom=0,mxText.prototype.baseSpacingLeft=0,mxText.prototype.baseSpacingRight=0,mxText.prototype.replaceLinefeeds=!0,mxText.prototype.verticalTextRotation=-90,mxText.prototype.ignoreClippedStringSize=!0,mxText.prototype.ignoreStringSize=!1,mxText.prototype.isParseVml=function(){return!1},mxText.prototype.isHtmlAllowed=function(){return 8!=document.documentMode},mxText.prototype.getSvgScreenOffset=function(){return 0},mxText.prototype.checkBounds=function(){return!(null==this.bounds||isNaN(this.bounds.x)||isNaN(this.bounds.y)||isNaN(this.bounds.width)||isNaN(this.bounds.height))},mxText.prototype.updateBoundingBox=function(){var e=this.node;8==document.documentMode&&null!=e.firstChild&&(null!=(e=e.firstChild).firstChild&&(e=e.firstChild)),this.boundingBox=this.bounds.clone();var n=this.getTextRotation();if(this.ignoreStringSize||null==e||"fill"==this.overflow||this.clipped&&this.ignoreClippedStringSize)this.boundingBox.x+=this.margin.x*this.boundingBox.width,this.boundingBox.y+=this.margin.y*this.boundingBox.height;else{var t=null,a=null;if(null!=e.ownerSVGElement)if(null!=e.firstChild&&null!=e.firstChild.firstChild&&"foreignObject"==e.firstChild.firstChild.nodeName)e=e.firstChild.firstChild,t=this.wrap?this.bounds.width:parseInt(e.getAttribute("width"))*this.scale,a=parseInt(e.getAttribute("height"))*this.scale;else{if(0==(n=e.getBBox()).width&&0==n.height)return;this.boundingBox=new mxRectangle(n.x,n.y,n.width,n.height),n=0}else a=this.state.view.textDiv,a=null!=this.offsetWidth&&null!=this.offsetHeight?(t=this.wrap?this.bounds.width:this.offsetWidth*this.scale,this.offsetHeight*this.scale):null!=a?(this.updateFont(a),this.updateSize(a),mxUtils.isNode(this.value)?a.innerHTML=this.value.outerHTML:(t=this.replaceLinefeeds?this.value.replace(/\n/g,"<br/>"):this.value,a.innerHTML=t),t=this.wrap?this.bounds.width:a.offsetWidth*this.scale,a.offsetHeight*this.scale):(t=this.wrap?this.bounds.width:e.offsetWidth*this.scale,e.offsetHeight*this.scale);null!=t&&null!=a&&(this.boundingBox=new mxRectangle(this.bounds.x+this.margin.x*t,this.bounds.y+this.margin.y*a,t,a))}null!=this.boundingBox&&(0!=n&&(n=mxUtils.getBoundingBox(this.boundingBox,n),this.boundingBox.x=n.x,this.boundingBox.y=n.y,mxClient.IS_QUIRKS||(this.boundingBox.width=n.width,this.boundingBox.height=n.height)),this.boundingBox.x=Math.floor(this.boundingBox.x),this.boundingBox.y=Math.floor(this.boundingBox.y),this.boundingBox.width=Math.ceil(this.boundingBox.width),this.boundingBox.height=Math.ceil(this.boundingBox.height))},mxText.prototype.getShapeRotation=function(){return 0},mxText.prototype.getTextRotation=function(){return null!=this.state&&null!=this.state.shape?this.state.shape.getTextRotation():0},mxText.prototype.isPaintBoundsInverted=function(){return!this.horizontal&&null!=this.state&&this.state.view.graph.model.isVertex(this.state.cell)},mxText.prototype.configureCanvas=function(e,n,t,a,i){mxShape.prototype.configureCanvas.apply(this,arguments),e.setFontColor(this.color),e.setFontBackgroundColor(this.background),e.setFontBorderColor(this.border),e.setFontFamily(this.family),e.setFontSize(this.size),e.setFontStyle(this.fontStyle)},mxText.prototype.updateVmlContainer=function(){this.node.style.left=Math.round(this.bounds.x)+"px",this.node.style.top=Math.round(this.bounds.y)+"px",this.node.style.width="1px",this.node.style.height="1px",this.node.style.overflow="visible"},mxText.prototype.paint=function(e){var n=this.scale,t=this.bounds.x/n,a=this.bounds.y/n,i=this.bounds.width/n;n=this.bounds.height/n;this.updateTransform(e,t,a,i,n),this.configureCanvas(e,t,a,i,n);var s=mxUtils.isNode(this.value)||this.dialect==mxConstants.DIALECT_STRICTHTML,o=s||e instanceof mxVmlCanvas2D?"html":"",r=this.value;!s&&"html"==o&&(r=mxUtils.htmlEntities(r,!1)),r=!mxUtils.isNode(this.value)&&this.replaceLinefeeds&&"html"==o?r.replace(/\n/g,"<br/>"):r,e.text(t,a,i,n,r,this.align,this.valign,this.wrap,o,"fill"==this.overflow,this.clipped,this.getTextRotation())},mxText.prototype.redrawHtmlShape=function(){var e=this.node.style;e.opacity=this.opacity<1?this.opacity:"",e.overflow="",e.width="",e.height="",this.updateFont(this.node),this.updateSize(this.node),this.updateValue(),this.offsetHeight=this.offsetWidth=null,null!=mxClient.CSS_PREFIX?this.updateHtmlTransform():this.updateHtmlFilter()},mxText.prototype.updateHtmlTransform=function(){var e=this.getTextRotation(),n=this.node.style,t=this.margin.x,a=this.margin.y;0!=e?(n[mxClient.CSS_PREFIX+"TransformOrigin"]=100*-t+"% "+100*-a+"%",n[mxClient.CSS_PREFIX+"Transform"]="translate("+100*t+"%,"+100*a+"%)scale("+this.scale+") rotate("+e+"deg)"):(n[mxClient.CSS_PREFIX+"TransformOrigin"]="0% 0%",n[mxClient.CSS_PREFIX+"Transform"]="scale("+this.scale+")translate("+100*t+"%,"+100*a+"%)"),n.left=Math.round(this.bounds.x)+"px",n.top=Math.round(this.bounds.y)+"px"},mxText.prototype.updateHtmlFilter=function(){var e=this.node.style,n=this.margin.x,t=this.margin.y,a=this.scale;e.filter="";var i=0,s=0;if(null!=(r=null!=this.state?this.state.view.textDiv:null)){if(r.style.overflow="",r.style.height="",r.style.width="",this.updateFont(r),this.updateSize(r),mxUtils.isNode(this.value))r.innerHTML=this.value.outerHTML;else{var o=this.value;this.dialect!=mxConstants.DIALECT_STRICTHTML&&(o=mxUtils.htmlEntities(o,!1)),o=this.replaceLinefeeds?o.replace(/\n/g,"<br/>"):o,r.innerHTML=o}i=r.offsetWidth+2,s=r.offsetHeight+2}else i=this.node.offsetWidth,s=this.node.offsetHeight+1;this.offsetWidth=i,this.offsetHeight=s,r=this.bounds.width/a,o=this.bounds.height/a,mxClient.IS_QUIRKS&&(this.clipped||"fill"==this.overflow)&&0<o?(o=Math.min(o,s),e.height=Math.round(o+1)+"px"):o=s,"fill"!=this.overflow&&(mxClient.IS_QUIRKS&&(this.clipped||this.wrap)&&0<r?(r=Math.min(r,i),e.width=Math.round(r)+"px"):r=i);o*=a;var r=r*a,l=(i=this.getTextRotation()*(Math.PI/180),s=parseFloat(parseFloat(Math.cos(i)).toFixed(8)),parseFloat(parseFloat(Math.sin(-i)).toFixed(8)));(i=i%(2*Math.PI))<0&&(i+=2*Math.PI),(i%=Math.PI)>Math.PI/2&&(i=Math.PI-i);var d=Math.cos(i),c=Math.sin(-i),m=(o-o*d+r*c)/2+l*(n=r*-(n+.5))-s*(t=o*-(t+.5));0!=i&&(e.filter="progid:DXImageTransform.Microsoft.Matrix(M11="+s+", M12="+l+", M21="+-l+", M22="+s+", sizingMethod='auto expand')"),e.zoom=a,e.left=Math.round(this.bounds.x+((r-r*d+o*c)/2-s*n-l*t)-r/2)+"px",e.top=Math.round(this.bounds.y+m-o/2)+"px"},mxText.prototype.updateValue=function(){if(mxUtils.isNode(this.value))this.node.innerHTML="",this.node.appendChild(this.value);else{var e=this.value;this.dialect!=mxConstants.DIALECT_STRICTHTML&&(e=mxUtils.htmlEntities(e,!1));e=this.replaceLinefeeds?e.replace(/\n/g,"<br/>"):e;var n=null!=this.background&&this.background!=mxConstants.NONE?this.background:null,t=null!=this.border&&this.border!=mxConstants.NONE?this.border:null;if(null!=n||null!=t)if("fill"==this.overflow)null!=n&&(this.node.style.backgroundColor=n),null!=t&&(this.node.style.border="1px solid "+t);else{var a="";null!=n&&(a+="background-color:"+n+";"),null!=t&&(a+="border:1px solid "+t+";"),e='<div style="zoom:1;'+a+"display:inline-block;_display:inline;padding-bottom:1px;padding-right:1px;line-height:"+this.node.style.lineHeight+'">'+e+"</div>",this.node.style.lineHeight=""}this.node.innerHTML=e}},mxText.prototype.updateFont=function(e){(e=e.style).lineHeight=Math.round(this.size*mxConstants.LINE_HEIGHT)+"px",e.fontSize=Math.round(this.size)+"px",e.fontFamily=this.family,e.verticalAlign="top",e.color=this.color,e.fontWeight=(this.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD?"bold":"",e.fontStyle=(this.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC?"italic":"",e.fontDecoration=(this.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE?"underline":"",e.textAlign=this.align==mxConstants.ALIGN_CENTER?"center":this.align==mxConstants.ALIGN_RIGHT?"right":"left"},mxText.prototype.updateSize=function(e){var n=Math.round(this.bounds.width/this.scale),t=Math.round(this.bounds.height/this.scale);e=e.style,this.clipped?(e.overflow="hidden",0<t&&(e.maxHeight=t+"px"),0<n&&(e.width=n+"px")):"fill"==this.overflow&&(e.width=n+"px",0<t&&(e.maxHeight=t+"px")),this.wrap?(!this.clipped&&0<n&&(e.width=n+"px"),e.whiteSpace="normal"):e.whiteSpace="nowrap"},mxText.prototype.updateMargin=function(){this.margin=mxUtils.getAlignmentAsPoint(this.align,this.valign)},mxText.prototype.getSpacing=function(){return new mxPoint(this.align==mxConstants.ALIGN_CENTER?(this.spacingLeft-this.spacingRight)/2:this.align==mxConstants.ALIGN_RIGHT?-this.spacingRight-this.baseSpacingRight:this.spacingLeft+this.baseSpacingLeft,this.valign==mxConstants.ALIGN_MIDDLE?(this.spacingTop-this.spacingBottom)/2:this.valign==mxConstants.ALIGN_BOTTOM?-this.spacingBottom-this.baseSpacingBottom:this.spacingTop+this.baseSpacingTop)},mxUtils.extend(mxTriangle,mxActor),mxTriangle.prototype.redrawPath=function(e,n,t,a,i){e.moveTo(0,0),e.lineTo(a,.5*i),e.lineTo(0,i),e.close()},mxUtils.extend(mxHexagon,mxActor),mxHexagon.prototype.redrawPath=function(e,n,t,a,i){e.moveTo(.25*a,0),e.lineTo(.75*a,0),e.lineTo(a,.5*i),e.lineTo(.75*a,i),e.lineTo(.25*a,i),e.lineTo(0,.5*i),e.close()},mxUtils.extend(mxLine,mxShape),mxLine.prototype.paintVertexShape=function(e,n,t,a,i){t+=i/2,e.begin(),e.moveTo(n,t),e.lineTo(n+a,t),e.stroke()},mxUtils.extend(mxImageShape,mxRectangleShape),mxImageShape.prototype.preserveImageAspect=!0,mxImageShape.prototype.getSvgScreenOffset=function(){return mxClient.IS_IE?0:.5},mxImageShape.prototype.apply=function(e){mxShape.prototype.apply.apply(this,arguments),this.gradient=this.stroke=this.fill=null,null!=this.style&&(this.fill=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BACKGROUND),this.stroke=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BORDER),this.preserveImageAspect=1==mxUtils.getNumber(this.style,mxConstants.STYLE_IMAGE_ASPECT,1),this.flipH=this.flipH||1==mxUtils.getValue(this.style,"imageFlipH",0),this.flipV=this.flipV||1==mxUtils.getValue(this.style,"imageFlipV",0))},mxImageShape.prototype.isHtmlAllowed=function(){return!this.preserveImageAspect},mxImageShape.prototype.createHtml=function(){var e=document.createElement("div");return e.style.position="absolute",e},mxImageShape.prototype.paintVertexShape=function(e,n,t,a,i){if(null!=this.image){var s=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BACKGROUND,null),o=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BORDER,null);null==s&&null==o||(e.setFillColor(s),e.setStrokeColor(o),e.rect(n,t,a,i),e.fillAndStroke()),e.image(n,t,a,i,this.image,this.preserveImageAspect,!1,!1)}else mxRectangleShape.prototype.paintBackground.apply(this,arguments)},mxImageShape.prototype.redrawHtmlShape=function(){if(this.node.style.left=Math.round(this.bounds.x)+"px",this.node.style.top=Math.round(this.bounds.y)+"px",this.node.style.width=Math.max(0,Math.round(this.bounds.width))+"px",this.node.style.height=Math.max(0,Math.round(this.bounds.height))+"px",this.node.style.backgroundColor=this.fill||"",this.node.style.borderColor=this.stroke||"",this.node.innerHTML="",null!=this.image){var e=document.createElement(mxClient.IS_IE6||null==mxClient.CSS_PREFIX&&0!=this.rotation?mxClient.VML_PREFIX+":image":"img");e.style.position="absolute",e.src=this.image;var n=this.opacity<100?"alpha(opacity="+this.opacity+")":"";this.node.style.filter=n,this.flipH&&this.flipV?n+="progid:DXImageTransform.Microsoft.BasicImage(rotation=2)":this.flipH?n+="progid:DXImageTransform.Microsoft.BasicImage(mirror=1)":this.flipV&&(n+="progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"),e.style.filter!=n&&(e.style.filter=n),"image"==e.nodeName?e.style.rotation=this.rotation:e.style[mxClient.CSS_PREFIX+"Transform"]="rotate("+this.rotation+"deg)",e.style.width=this.node.style.width,e.style.height=this.node.style.height,this.node.style.backgroundImage="",this.node.appendChild(e)}else this.setTransparentBackgroundImage(this.node)},mxUtils.extend(mxLabel,mxRectangleShape),mxLabel.prototype.imageSize=mxConstants.DEFAULT_IMAGESIZE,mxLabel.prototype.spacing=2,mxLabel.prototype.indicatorSize=10,mxLabel.prototype.indicatorSpacing=2,mxLabel.prototype.init=function(e){mxShape.prototype.init.apply(this,arguments),null!=this.indicatorColor&&null!=this.indicatorShape&&(this.indicator=new this.indicatorShape,this.indicator.dialect=this.dialect,this.indicator.bounds=this.bounds,this.indicator.fill=this.indicatorColor,this.indicator.stroke=this.indicatorColor,this.indicator.gradient=this.indicatorGradientColor,this.indicator.direction=this.indicatorDirection,this.indicator.init(this.node))},mxLabel.prototype.redraw=function(){null!=this.indicator&&(this.indicator.fill=this.indicatorColor,this.indicator.stroke=this.indicatorColor,this.indicator.gradient=this.indicatorGradientColor,this.indicator.direction=this.indicatorDirection),mxShape.prototype.redraw.apply(this,arguments)},mxLabel.prototype.isHtmlAllowed=function(){return mxRectangleShape.prototype.isHtmlAllowed.apply(this,arguments)&&null==this.indicatorColor&&null==this.indicatorShape},mxLabel.prototype.paintForeground=function(e,n,t,a,i){this.paintImage(e,n,t,a,i),this.paintIndicator(e,n,t,a,i),mxRectangleShape.prototype.paintForeground.apply(this,arguments)},mxLabel.prototype.paintImage=function(e,n,t,a,i){null!=this.image&&(n=this.getImageBounds(n,t,a,i),e.image(n.x,n.y,n.width,n.height,this.image,!1,!1,!1))},mxLabel.prototype.getImageBounds=function(e,n,t,a){var i=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_ALIGN,mxConstants.ALIGN_LEFT),s=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE),o=mxUtils.getNumber(this.style,mxConstants.STYLE_IMAGE_WIDTH,mxConstants.DEFAULT_IMAGESIZE),r=mxUtils.getNumber(this.style,mxConstants.STYLE_IMAGE_HEIGHT,mxConstants.DEFAULT_IMAGESIZE),l=mxUtils.getNumber(this.style,mxConstants.STYLE_SPACING,this.spacing)+5;return new mxRectangle(e=i==mxConstants.ALIGN_CENTER?e+(t-o)/2:i==mxConstants.ALIGN_RIGHT?e+(t-o-l):e+l,n=s==mxConstants.ALIGN_TOP?n+l:s==mxConstants.ALIGN_BOTTOM?n+(a-r-l):n+(a-r)/2,o,r)},mxLabel.prototype.paintIndicator=function(e,n,t,a,i){null!=this.indicator?(this.indicator.bounds=this.getIndicatorBounds(n,t,a,i),this.indicator.paint(e)):null!=this.indicatorImage&&(n=this.getIndicatorBounds(n,t,a,i),e.image(n.x,n.y,n.width,n.height,this.indicatorImage,!1,!1,!1))},mxLabel.prototype.getIndicatorBounds=function(e,n,t,a){var i=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_ALIGN,mxConstants.ALIGN_LEFT),s=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE),o=mxUtils.getNumber(this.style,mxConstants.STYLE_INDICATOR_WIDTH,this.indicatorSize),r=mxUtils.getNumber(this.style,mxConstants.STYLE_INDICATOR_HEIGHT,this.indicatorSize),l=this.spacing+5;return new mxRectangle(e=i==mxConstants.ALIGN_RIGHT?e+(t-o-l):i==mxConstants.ALIGN_CENTER?e+(t-o)/2:e+l,n=s==mxConstants.ALIGN_BOTTOM?n+(a-r-l):s==mxConstants.ALIGN_TOP?n+l:n+(a-r)/2,o,r)},mxLabel.prototype.redrawHtmlShape=function(){for(mxRectangleShape.prototype.redrawHtmlShape.apply(this,arguments);this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild);if(null!=this.image){var e=document.createElement("img");e.style.position="relative",e.setAttribute("border","0");var n=this.getImageBounds(this.bounds.x,this.bounds.y,this.bounds.width,this.bounds.height);n.x-=this.bounds.x,n.y-=this.bounds.y,e.style.left=Math.round(n.x)+"px",e.style.top=Math.round(n.y)+"px",e.style.width=Math.round(n.width)+"px",e.style.height=Math.round(n.height)+"px",e.src=this.image,this.node.appendChild(e)}},mxUtils.extend(mxCylinder,mxShape),mxCylinder.prototype.maxHeight=40,mxCylinder.prototype.svgStrokeTolerance=0,mxCylinder.prototype.paintVertexShape=function(e,n,t,a,i){e.translate(n,t),e.begin(),this.redrawPath(e,n,t,a,i,!1),e.fillAndStroke(),e.setShadow(!1),e.begin(),this.redrawPath(e,n,t,a,i,!0),e.stroke()},mxCylinder.prototype.redrawPath=function(e,n,t,a,i,s){n=Math.min(this.maxHeight,Math.round(i/5)),(s&&null!=this.fill||!s&&null==this.fill)&&(e.moveTo(0,n),e.curveTo(0,2*n,a,2*n,a,n),s||(e.stroke(),e.begin())),s||(e.moveTo(0,n),e.curveTo(0,-n/3,a,-n/3,a,n),e.lineTo(a,i-n),e.curveTo(a,i+n/3,0,i+n/3,0,i-n),e.close())},mxUtils.extend(mxConnector,mxPolyline),mxConnector.prototype.paintEdgeShape=function(e,n){var t=this.createMarker(e,n,!0),a=this.createMarker(e,n,!1);null==this.style||1!=this.style[mxConstants.STYLE_CURVED]?this.paintLine(e,n,this.isRounded):this.paintCurvedLine(e,n),e.setFillColor(this.stroke),e.setShadow(!1),e.setDashed(!1),null!=t&&t(),null!=a&&a()},mxConnector.prototype.paintCurvedLine=function(e,n){e.begin();var t=n[0],a=n.length;for(e.moveTo(t.x,t.y),t=1;t<a-2;t++){var i=n[t],s=n[t+1];e.quadTo(i.x,i.y,(i.x+s.x)/2,(i.y+s.y)/2)}i=n[a-2],s=n[a-1],e.quadTo(i.x,i.y,s.x,s.y),e.stroke()},mxConnector.prototype.createMarker=function(e,n,t){var a=n.length,i=t?n[1]:n[a-2],s=(a=(n=t?n[0]:n[a-1]).x-i.x,n.y-i.y),o=(i=a/(o=Math.max(1,Math.sqrt(a*a+s*s))),a=s/o,s=mxUtils.getNumber(this.style,t?mxConstants.STYLE_STARTSIZE:mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE),mxUtils.getValue(this.style,t?mxConstants.STYLE_STARTARROW:mxConstants.STYLE_ENDARROW));return mxMarker.createMarker(e,this,o,n,i,a,s,t,this.strokewidth,0!=this.style[t?mxConstants.STYLE_STARTFILL:mxConstants.STYLE_ENDFILL])},mxConnector.prototype.augmentBoundingBox=function(e){mxShape.prototype.augmentBoundingBox.apply(this,arguments);var n=0;mxUtils.getValue(this.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(n=mxUtils.getNumber(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE)+1),mxUtils.getValue(this.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(n=Math.max(n,mxUtils.getNumber(this.style,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE))+1),e.grow(Math.ceil(n*this.scale))},mxUtils.extend(mxSwimlane,mxShape),mxSwimlane.prototype.imageSize=16,mxSwimlane.prototype.getGradientBounds=function(e,n,t,a,i){return new mxRectangle(n,t,a,Math.min(i,mxUtils.getValue(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE)))},mxSwimlane.prototype.getRotation=function(){var e=mxShape.prototype.getRotation.apply(this,arguments);return 1!=mxUtils.getValue(this.style,mxConstants.STYLE_HORIZONTAL,1)&&(e+=mxText.prototype.verticalTextRotation),e},mxSwimlane.prototype.getTextRotation=function(){return this.getRotation()},mxSwimlane.prototype.isPaintBoundsInverted=function(){return mxShape.prototype.isPaintBoundsInverted.apply(this,arguments)||1!=mxUtils.getValue(this.style,mxConstants.STYLE_HORIZONTAL,1)},mxSwimlane.prototype.getArcSize=function(e,n,t){return 3*t*(mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100)},mxSwimlane.prototype.paintVertexShape=function(e,n,t,a,i){var s=Math.min(i,mxUtils.getValue(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE)),o=mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE),r=1==mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_LINE,1),l=0;e.translate(n,t),this.isRounded?(l=this.getArcSize(a,i,s),this.paintRoundedSwimlane(e,n,t,a,i,s,l,o,r)):this.paintSwimlane(e,n,t,a,i,s,o,r),o=mxUtils.getValue(this.style,mxConstants.STYLE_SEPARATORCOLOR,mxConstants.NONE),this.paintSeparator(e,a,s,i,o),null!=this.image&&(i=this.getImageBounds(n,s,a,i),e.image(i.x-n,i.y-t,i.width,i.height,this.image,!1,!1,!1)),this.glass&&(e.setShadow(!1),this.paintGlassEffect(e,0,0,a,s,l))},mxSwimlane.prototype.paintSwimlane=function(e,n,t,a,i,s,o,r){o!=mxConstants.NONE&&(e.save(),e.setFillColor(o),e.rect(0,0,a,i),e.fillAndStroke(),e.restore(),e.setShadow(!1)),e.begin(),e.moveTo(0,s),e.lineTo(0,0),e.lineTo(a,0),e.lineTo(a,s),r&&e.close(),e.fillAndStroke(),s<i&&o==mxConstants.NONE&&(e.pointerEvents=!1,e.begin(),e.moveTo(0,s),e.lineTo(0,i),e.lineTo(a,i),e.lineTo(a,s),e.stroke())},mxSwimlane.prototype.paintRoundedSwimlane=function(e,n,t,a,i,s,o,r,l){r!=mxConstants.NONE&&(e.save(),e.setFillColor(r),e.roundrect(0,0,a,i,o,o),e.fillAndStroke(),e.restore(),e.setShadow(!1)),e.begin(),e.moveTo(a,s),e.lineTo(a,o),e.quadTo(a,0,a-Math.min(a/2,o),0),e.lineTo(Math.min(a/2,o),0),e.quadTo(0,0,0,o),e.lineTo(0,s),l&&e.close(),e.fillAndStroke(),s<i&&r==mxConstants.NONE&&(e.pointerEvents=!1,e.begin(),e.moveTo(0,s),e.lineTo(0,i-o),e.quadTo(0,i,Math.min(a/2,o),i),e.lineTo(a-Math.min(a/2,o),i),e.quadTo(a,i,a,i-o),e.lineTo(a,s),e.stroke())},mxSwimlane.prototype.paintSeparator=function(e,n,t,a,i){i!=mxConstants.NONE&&(e.setStrokeColor(i),e.setDashed(!0),e.begin(),e.moveTo(n,t),e.lineTo(n,a),e.stroke(),e.setDashed(!1))},mxSwimlane.prototype.getImageBounds=function(e,n,t,a){return new mxRectangle(e+t-this.imageSize,n,this.imageSize,this.imageSize)},mxGraphLayout.prototype.graph=null,mxGraphLayout.prototype.useBoundingBox=!0,mxGraphLayout.prototype.parent=null,mxGraphLayout.prototype.moveCell=function(e,n,t){},mxGraphLayout.prototype.execute=function(e){},mxGraphLayout.prototype.getGraph=function(){return this.graph},mxGraphLayout.prototype.getConstraint=function(e,n,t,a){return null!=(n=null!=(t=this.graph.view.getState(n))?t.style:this.graph.getCellStyle(n))?n[e]:null},mxGraphLayout.traverse=function(e,n,t,a,i){if(null!=t&&null!=e){n=null==n||n,i=i||[];var s=mxCellPath.create(e);if(null==i[s]&&(null==(a=t(i[s]=e,a))||a)&&0<(a=this.graph.model.getEdgeCount(e)))for(s=0;s<a;s++){var o=this.graph.model.getEdgeAt(e,s),r=this.graph.model.getTerminal(o,!0)==e;n&&!r||(r=this.graph.view.getVisibleTerminal(o,!r),this.traverse(r,n,t,o,i))}}},mxGraphLayout.prototype.isVertexMovable=function(e){return this.graph.isCellMovable(e)},mxGraphLayout.prototype.isVertexIgnored=function(e){return!this.graph.getModel().isVertex(e)||!this.graph.isCellVisible(e)},mxGraphLayout.prototype.isEdgeIgnored=function(e){var n=this.graph.getModel();return!n.isEdge(e)||!this.graph.isCellVisible(e)||null==n.getTerminal(e,!0)||null==n.getTerminal(e,!1)},mxGraphLayout.prototype.setEdgeStyleEnabled=function(e,n){this.graph.setCellStyles(mxConstants.STYLE_NOEDGESTYLE,n?"0":"1",[e])},mxGraphLayout.prototype.setOrthogonalEdge=function(e,n){this.graph.setCellStyles(mxConstants.STYLE_ORTHOGONAL,n?"1":"0",[e])},mxGraphLayout.prototype.getParentOffset=function(e){var n=new mxPoint;if(null!=e&&e!=this.parent){var t=this.graph.getModel();if(t.isAncestor(this.parent,e))for(var a=t.getGeometry(e);e!=this.parent;)n.x+=a.x,n.y+=a.y,e=t.getParent(e),a=t.getGeometry(e)}return n},mxGraphLayout.prototype.setEdgePoints=function(e,n){if(null!=e){var t=this.graph.model,a=t.getGeometry(e);if(null==a?(a=new mxGeometry).setRelative(!0):a=a.clone(),null!=this.parent&&null!=n)for(var i=t.getParent(e),s=(i=this.getParentOffset(i),0);s<n.length;s++)n[s].x-=i.x,n[s].y-=i.y;a.points=n,t.setGeometry(e,a)}},mxGraphLayout.prototype.setVertexLocation=function(e,n,t){var a=this.graph.getModel(),i=a.getGeometry(e),s=null;if(null!=i){if(s=new mxRectangle(n,t,i.width,i.height),this.useBoundingBox){var o=this.graph.getView().getState(e);if(null!=o&&null!=o.text&&null!=o.text.boundingBox){var r=this.graph.getView().scale,l=o.text.boundingBox;o.text.boundingBox.x<o.x&&(n+=(o.x-l.x)/r,s.width=l.width),o.text.boundingBox.y<o.y&&(t+=(o.y-l.y)/r,s.height=l.height)}}null!=this.parent&&(null!=(o=a.getParent(e))&&o!=this.parent&&(n-=(o=this.getParentOffset(o)).x,t-=o.y)),i.x==n&&i.y==t||((i=i.clone()).x=n,i.y=t,a.setGeometry(e,i))}return s},mxGraphLayout.prototype.getVertexBounds=function(e){var n=this.graph.getModel().getGeometry(e);if(this.useBoundingBox&&(null!=(r=this.graph.getView().getState(e))&&null!=r.text&&null!=r.text.boundingBox)){var t=this.graph.getView().scale,a=r.text.boundingBox,i=Math.max(r.x-a.x,0)/t,s=Math.max(r.y-a.y,0)/t,o=Math.max(a.x+a.width-(r.x+r.width),0)/t,r=Math.max(a.y+a.height-(r.y+r.height),0)/t;n=new mxRectangle(n.x-i,n.y-s,n.width+i+o,n.height+s+r)}return null!=this.parent&&(e=this.graph.getModel().getParent(e),n=n.clone(),null!=e&&e!=this.parent&&(e=this.getParentOffset(e),n.x+=e.x,n.y+=e.y)),new mxRectangle(n.x,n.y,n.width,n.height)},mxGraphLayout.prototype.arrangeGroups=function(e,n){this.graph.getModel().beginUpdate();try{for(var t=e.length-1;0<=t;t--){var a=e[t],i=this.graph.getChildVertices(a),s=this.graph.getBoundingBoxFromGeometry(i),o=this.graph.getCellGeometry(a),r=0,l=0;if(this.graph.isSwimlane(a)){var d=this.graph.getStartSize(a);r=d.width,l=d.height}null!=s&&null!=o&&((o=o.clone()).x=o.x+s.x-n-r,o.y=o.y+s.y-n-l,o.width=s.width+2*n+r,o.height=s.height+2*n+l,this.graph.getModel().setGeometry(a,o),this.graph.moveCells(i,n+r-s.x,n+l-s.y))}}finally{this.graph.getModel().endUpdate()}},mxStackLayout.prototype=new mxGraphLayout,mxStackLayout.prototype.constructor=mxStackLayout,mxStackLayout.prototype.horizontal=null,mxStackLayout.prototype.spacing=null,mxStackLayout.prototype.x0=null,mxStackLayout.prototype.y0=null,mxStackLayout.prototype.border=0,mxStackLayout.prototype.keepFirstLocation=!1,mxStackLayout.prototype.fill=!1,mxStackLayout.prototype.resizeParent=!1,mxStackLayout.prototype.resizeLast=!1,mxStackLayout.prototype.wrap=null,mxStackLayout.prototype.isHorizontal=function(){return this.horizontal},mxStackLayout.prototype.moveCell=function(e,n,t){var a=this.graph.getModel(),i=a.getParent(e),s=this.isHorizontal();if(null!=e&&null!=i){var o=0,r=0,l=a.getChildCount(i);for(n=s?n:t,null!=(o=this.graph.getView().getState(i))&&(n-=s?o.x:o.y),o=0;o<l;o++)if((t=a.getChildAt(i,o))!=e&&null!=(t=a.getGeometry(t))){if(t=s?t.x+t.width/2:t.y+t.height/2,r<n&&n<t)break;r=t}s=i.getIndex(e),s=Math.max(0,o-(s<o?1:0)),a.add(i,e,s)}},mxStackLayout.prototype.getParentSize=function(e){var n=this.graph.getModel(),t=n.getGeometry(e);return null!=this.graph.container&&(null==t&&n.isLayer(e)||e==this.graph.getView().currentRoot)&&(t=new mxRectangle(0,0,this.graph.container.offsetWidth-1,this.graph.container.offsetHeight-1)),t},mxStackLayout.prototype.execute=function(e){if(null!=e){var n=this.isHorizontal(),t=this.graph.getModel(),a=this.getParentSize(e),i=0;null!=a&&(i=n?a.height:a.width);i=i-(2*this.spacing+2*this.border);var s=this.x0+this.border,o=this.y0+this.border;if(this.graph.isSwimlane(e)){var r=this.graph.getCellStyle(e),l=mxUtils.getValue(r,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE);n==(r=mxUtils.getValue(r,mxConstants.STYLE_HORIZONTAL,!0))&&(i-=l),n?o+=l:s+=l}t.beginUpdate();try{l=0,r=null;for(var d=t.getChildCount(e),c=0;c<d;c++){var m=t.getChildAt(e,c);if(!this.isVertexIgnored(m)&&this.isVertexMovable(m)){var u=t.getGeometry(m);null!=u&&(u=u.clone(),null!=this.wrap&&null!=r&&(n&&r.x+r.width+u.width+2*this.spacing>this.wrap||!n&&r.y+r.height+u.height+2*this.spacing>this.wrap)&&(r=null,n?o+=l+this.spacing:s+=l+this.spacing,l=0),l=Math.max(l,n?u.height:u.width),null!=r?n?u.x=r.x+r.width+this.spacing:u.y=r.y+r.height+this.spacing:this.keepFirstLocation||(n?u.x=s:u.y=o),n?u.y=o:u.x=s,this.fill&&0<i&&(n?u.height=i:u.width=i),t.setGeometry(m,u),r=u)}}this.resizeParent&&null!=a&&null!=r&&!this.graph.isCellCollapsed(e)?(a=a.clone(),n?a.width=r.x+r.width+this.spacing:a.height=r.y+r.height+this.spacing,t.setGeometry(e,a)):this.resizeLast&&null!=a&&null!=r&&(n?r.width=a.width-r.x-this.spacing:r.height=a.height-r.y-this.spacing)}finally{t.endUpdate()}}},mxPartitionLayout.prototype=new mxGraphLayout,mxPartitionLayout.prototype.constructor=mxPartitionLayout,mxPartitionLayout.prototype.horizontal=null,mxPartitionLayout.prototype.spacing=null,mxPartitionLayout.prototype.border=null,mxPartitionLayout.prototype.resizeVertices=!0,mxPartitionLayout.prototype.isHorizontal=function(){return this.horizontal},mxPartitionLayout.prototype.moveCell=function(e,n,t){var a=(t=this.graph.getModel()).getParent(e);if(null!=e&&null!=a){var i=0,s=0,o=t.getChildCount(a);for(i=0;i<o;i++){var r=t.getChildAt(a,i);if(null!=(r=this.getVertexBounds(r))){if(r=r.x+r.width/2,s<n&&n<r)break;s=r}}n=a.getIndex(e),n=Math.max(0,i-(n<i?1:0)),t.add(a,e,n)}},mxPartitionLayout.prototype.execute=function(e){var n=this.isHorizontal(),t=this.graph.getModel(),a=t.getGeometry(e);if(null!=this.graph.container&&(null==a&&t.isLayer(e)||e==this.graph.getView().currentRoot)&&(a=new mxRectangle(0,0,this.graph.container.offsetWidth-1,this.graph.container.offsetHeight-1)),null!=a){for(var i=[],s=t.getChildCount(e),o=0;o<s;o++){var r=t.getChildAt(e,o);!this.isVertexIgnored(r)&&this.isVertexMovable(r)&&i.push(r)}if(0<(s=i.length)){var l=this.border,d=this.border,c=(c=n?a.height:a.width)-2*this.border;if(e=this.graph.isSwimlane(e)?this.graph.getStartSize(e):new mxRectangle,c-=n?e.height:e.width,l+=e.width,d+=e.height,e=this.border+(s-1)*this.spacing,0<(a=n?(a.width-l-e)/s:(a.height-d-e)/s)){t.beginUpdate();try{for(o=0;o<s;o++){r=i[o];var m=t.getGeometry(r);null!=m&&((m=m.clone()).x=l,m.y=d,n?(this.resizeVertices&&(m.width=a,m.height=c),l+=a+this.spacing):(this.resizeVertices&&(m.height=a,m.width=c),d+=a+this.spacing),t.setGeometry(r,m))}}finally{t.endUpdate()}}}}},mxCompactTreeLayout.prototype=new mxGraphLayout,mxCompactTreeLayout.prototype.constructor=mxCompactTreeLayout,mxCompactTreeLayout.prototype.horizontal=null,mxCompactTreeLayout.prototype.invert=null,mxCompactTreeLayout.prototype.resizeParent=!0,mxCompactTreeLayout.prototype.groupPadding=10,mxCompactTreeLayout.prototype.parentsChanged=null,mxCompactTreeLayout.prototype.moveTree=!1,mxCompactTreeLayout.prototype.levelDistance=10,mxCompactTreeLayout.prototype.nodeDistance=20,mxCompactTreeLayout.prototype.resetEdges=!0,mxCompactTreeLayout.prototype.prefHozEdgeSep=5,mxCompactTreeLayout.prototype.prefVertEdgeOff=4,mxCompactTreeLayout.prototype.minEdgeJetty=8,mxCompactTreeLayout.prototype.channelBuffer=4,mxCompactTreeLayout.prototype.edgeRouting=!0,mxCompactTreeLayout.prototype.isVertexIgnored=function(e){return mxGraphLayout.prototype.isVertexIgnored.apply(this,arguments)||0==this.graph.getConnections(e).length},mxCompactTreeLayout.prototype.isHorizontal=function(){return this.horizontal},mxCompactTreeLayout.prototype.execute=function(e,n){this.parent=e;var t=this.graph.getModel();if(null==n)if(0<this.graph.getEdges(e,t.getParent(e),this.invert,!this.invert,!1).length)n=e;else{if(0<(o=this.graph.findTreeRoots(e,!0,this.invert)).length)for(var a=0;a<o.length;a++)if(!this.isVertexIgnored(o[a])&&0<this.graph.getEdges(o[a],null,this.invert,!this.invert,!1).length){n=o[a];break}}if(null!=n){this.parentsChanged=this.resizeParent?{}:null,t.beginUpdate();try{var i=this.dfs(n,e);if(null!=i){this.layout(i);var s=this.graph.gridSize,o=s;if(!this.moveTree){var r=this.getVertexBounds(n);null!=r&&(s=r.x,o=r.y)}if((r=null)!=(r=this.isHorizontal()?this.horizontalLayout(i,s,o):this.verticalLayout(i,null,s,o))){var l=a=0;r.x<0&&(a=Math.abs(s-r.x)),r.y<0&&(l=Math.abs(o-r.y)),(0!=a||0!=l)&&this.moveNode(i,a,l),this.resizeParent&&this.adjustParents(),this.edgeRouting&&this.localEdgeProcessing(i)}}}finally{t.endUpdate()}}},mxCompactTreeLayout.prototype.moveNode=function(e,n,t){for(e.x+=n,e.y+=t,this.apply(e),e=e.child;null!=e;)this.moveNode(e,n,t),e=e.next},mxCompactTreeLayout.prototype.dfs=function(e,n,t){t=null!=t?t:[];var a=mxCellPath.create(e),i=null;if(null!=e&&null==t[a]&&!this.isVertexIgnored(e)){t[a]=e;i=this.createNode(e),a=this.graph.getModel();var s=null;e=this.graph.getEdges(e,n,this.invert,!this.invert,!1,!0);for(var o=this.graph.getView(),r=0;r<e.length;r++){var l=e[r];if(!this.isEdgeIgnored(l)){this.resetEdges&&this.setEdgePoints(l,null),this.edgeRouting&&(this.setEdgeStyleEnabled(l,!1),this.setEdgePoints(l,null));var d;l=null!=(d=o.getState(l))?d.getVisibleTerminal(this.invert):o.getVisibleTerminal(l,this.invert);null!=(d=this.dfs(l,n,t))&&null!=a.getGeometry(l)&&(null==s?i.child=d:s.next=d,s=d)}}}return i},mxCompactTreeLayout.prototype.layout=function(e){if(null!=e){for(var n=e.child;null!=n;)this.layout(n),n=n.next;null!=e.child?this.attachParent(e,this.join(e)):this.layoutLeaf(e)}},mxCompactTreeLayout.prototype.horizontalLayout=function(e,n,t,a){if(e.x+=n+e.offsetX,e.y+=t+e.offsetY,a=this.apply(e,a),null!=(n=e.child)){a=this.horizontalLayout(n,e.x,e.y,a),t=e.y+n.offsetY;for(var i=n.next;null!=i;)a=this.horizontalLayout(i,e.x+n.offsetX,t,a),t+=i.offsetY,i=i.next}return a},mxCompactTreeLayout.prototype.verticalLayout=function(e,n,t,a,i){if(e.x+=t+e.offsetY,e.y+=a+e.offsetX,i=this.apply(e,i),null!=(n=e.child))for(i=this.verticalLayout(n,e,e.x,e.y,i),t=e.x+n.offsetY,a=n.next;null!=a;)i=this.verticalLayout(a,e,t,e.y+n.offsetX,i),t+=a.offsetY,a=a.next;return i},mxCompactTreeLayout.prototype.attachParent=function(e,n){var t=this.nodeDistance+this.levelDistance,a=(n-e.width)/2-this.nodeDistance,i=a+e.width+2*this.nodeDistance-n;e.child.offsetX=t+e.height,e.child.offsetY=i,e.contour.upperHead=this.createLine(e.height,0,this.createLine(t,i,e.contour.upperHead)),e.contour.lowerHead=this.createLine(e.height,0,this.createLine(t,a,e.contour.lowerHead))},mxCompactTreeLayout.prototype.layoutLeaf=function(e){var n=2*this.nodeDistance;e.contour.upperTail=this.createLine(e.height+n,0),e.contour.upperHead=e.contour.upperTail,e.contour.lowerTail=this.createLine(0,-e.width-n),e.contour.lowerHead=this.createLine(e.height+n,0,e.contour.lowerTail)},mxCompactTreeLayout.prototype.join=function(e){var n=2*this.nodeDistance,t=e.child;e.contour=t.contour;var a=t.width+n,i=a;for(t=t.next;null!=t;){var s=this.merge(e.contour,t.contour);t.offsetY=s+a,t.offsetX=0,i+=s+(a=t.width+n),t=t.next}return i},mxCompactTreeLayout.prototype.merge=function(e,n){for(var t=0,a=0,i=0,s=e.lowerHead,o=n.upperHead;null!=o&&null!=s;){var r=this.offset(t,a,o.dx,o.dy,s.dx,s.dy);a=a+r,i=i+r;t+o.dx<=s.dx?(t+=o.dx,a+=o.dy,o=o.next):(t-=s.dx,a-=s.dy,s=s.next)}return null!=o?(t=this.bridge(e.upperTail,0,0,o,t,a),e.upperTail=null!=t.next?n.upperTail:t,e.lowerTail=n.lowerTail):null==(t=this.bridge(n.lowerTail,t,a,s,0,0)).next&&(e.lowerTail=t),e.lowerHead=n.lowerHead,i},mxCompactTreeLayout.prototype.offset=function(e,n,t,a,i,s){var o;return i<=e||e+t<=0?0:0<(o=0<i*a-t*s?e<0?e*a/t-n:0<e?e*s/i-n:-n:i<e+t?s-(n+(i-e)*a/t):e+t<i?(t+e)*s/i-(n+a):s-(n+a))?o:0},mxCompactTreeLayout.prototype.bridge=function(e,n,t,a,i,s){return n=i+a.dx-n,i=i=0,0==a.dx?i=a.dy:(i=n*a.dy,i/=a.dx),n=this.createLine(n,i,a.next),e.next=this.createLine(0,s+a.dy-i-t,n),n},mxCompactTreeLayout.prototype.createNode=function(e){var n={};return n.cell=e,n.x=0,n.y=0,n.width=0,n.height=0,null!=(e=this.getVertexBounds(e))&&(this.isHorizontal()?(n.width=e.height,n.height=e.width):(n.width=e.width,n.height=e.height)),n.offsetX=0,n.offsetY=0,n.contour={},n},mxCompactTreeLayout.prototype.apply=function(e,n){var t=this.graph.getModel(),a=e.cell,i=t.getGeometry(a);return null!=a&&null!=i&&(this.isVertexMovable(a)&&(i=this.setVertexLocation(a,e.x,e.y),this.resizeParent&&(t=t.getParent(a),a=mxCellPath.create(t),null==this.parentsChanged[a]&&(this.parentsChanged[a]=t))),n=null==n?new mxRectangle(i.x,i.y,i.width,i.height):new mxRectangle(Math.min(n.x,i.x),Math.min(n.y,i.y),Math.max(n.x+n.width,i.x+i.width),Math.max(n.y+n.height,i.y+i.height))),n},mxCompactTreeLayout.prototype.createLine=function(e,n,t){var a={};return a.dx=e,a.dy=n,a.next=t,a},mxCompactTreeLayout.prototype.adjustParents=function(){var e,n=[];for(e in this.parentsChanged)n.push(this.parentsChanged[e]);this.arrangeGroups(mxUtils.sortCells(n,!0),this.groupPadding)},mxCompactTreeLayout.prototype.localEdgeProcessing=function(e){for(this.processNodeOutgoing(e),e=e.child;null!=e;)this.localEdgeProcessing(e),e=e.next},mxCompactTreeLayout.prototype.processNodeOutgoing=function(e){for(var n=e.child,t=e.cell,a=0,i=[];null!=n;){a++;var s=n.x;this.horizontal&&(s=n.y),i.push(new WeightedCellSorter(n,s)),n=n.next}i.sort(WeightedCellSorter.prototype.compare),(s=e.width)>(o=(a+1)*this.prefHozEdgeSep)+2*this.prefHozEdgeSep&&(s-=2*this.prefHozEdgeSep),n=(e=s/a)/2,s>o+2*this.prefHozEdgeSep&&(n+=this.prefHozEdgeSep);s=this.minEdgeJetty-this.prefVertEdgeOff;for(var o=0,r=this.getVertexBounds(t),l=0;l<i.length;l++){for(var d=i[l].cell.cell,c=this.getVertexBounds(d),m=(d=this.graph.getEdgesBetween(t,d,!1),[]),u=0,p=0,g=0;g<d.length;g++)this.horizontal?(u=r.x+r.width,p=r.y+n,m.push(new mxPoint(u,p)),u=r.x+r.width+s,m.push(new mxPoint(u,p)),p=c.y+c.height/2):(u=r.x+n,p=r.y+r.height,m.push(new mxPoint(u,p)),p=r.y+r.height+s,m.push(new mxPoint(u,p)),u=c.x+c.width/2),m.push(new mxPoint(u,p)),this.setEdgePoints(d[g],m);l<a/2?s+=this.prefVertEdgeOff:a/2<l&&(s-=this.prefVertEdgeOff),n+=e,o=Math.max(o,s)}},WeightedCellSorter.prototype.weightedValue=0,WeightedCellSorter.prototype.nudge=!1,WeightedCellSorter.prototype.visited=!1,WeightedCellSorter.prototype.rankIndex=null,WeightedCellSorter.prototype.cell=null,WeightedCellSorter.prototype.compare=function(e,n){return null!=e&&null!=n?n.weightedValue>e.weightedValue?1:n.weightedValue<e.weightedValue?-1:n.nudge?1:-1:0},mxFastOrganicLayout.prototype=new mxGraphLayout,mxFastOrganicLayout.prototype.constructor=mxFastOrganicLayout,mxFastOrganicLayout.prototype.useInputOrigin=!0,mxFastOrganicLayout.prototype.resetEdges=!0,mxFastOrganicLayout.prototype.disableEdgeStyle=!0,mxFastOrganicLayout.prototype.forceConstant=50,mxFastOrganicLayout.prototype.forceConstantSquared=0,mxFastOrganicLayout.prototype.minDistanceLimit=2,mxFastOrganicLayout.prototype.maxDistanceLimit=500,mxFastOrganicLayout.prototype.minDistanceLimitSquared=4,mxFastOrganicLayout.prototype.initialTemp=200,mxFastOrganicLayout.prototype.temperature=0,mxFastOrganicLayout.prototype.maxIterations=0,mxFastOrganicLayout.prototype.iteration=0,mxFastOrganicLayout.prototype.allowedToRun=!0,mxFastOrganicLayout.prototype.isVertexIgnored=function(e){return mxGraphLayout.prototype.isVertexIgnored.apply(this,arguments)||0==this.graph.getConnections(e).length},mxFastOrganicLayout.prototype.execute=function(e){var n=this.graph.getModel();this.vertexArray=[];for(var t=this.graph.getChildVertices(e),a=0;a<t.length;a++)this.isVertexIgnored(t[a])||this.vertexArray.push(t[a]);var i=this.useInputOrigin?this.graph.view.getBounds(this.vertexArray):null,s=this.vertexArray.length;for(this.indices=[],this.dispX=[],this.dispY=[],this.cellLocation=[],this.isMoveable=[],this.neighbours=[],this.radius=[],this.radiusSquared=[],this.forceConstant<.001&&(this.forceConstant=.001),this.forceConstantSquared=this.forceConstant*this.forceConstant,a=0;a<this.vertexArray.length;a++){var o=this.vertexArray[a];this.cellLocation[a]=[];var r=mxCellPath.create(o);this.indices[r]=a;var l=this.getVertexBounds(o),d=l.width,c=l.height,m=l.x,u=l.y;this.cellLocation[a][0]=m+d/2,this.cellLocation[a][1]=u+c/2,this.radius[a]=Math.min(d,c),this.radiusSquared[a]=this.radius[a]*this.radius[a]}n.beginUpdate();try{for(a=0;a<s;a++){this.dispX[a]=0,this.dispY[a]=0,this.isMoveable[a]=this.isVertexMovable(this.vertexArray[a]);var p=this.graph.getConnections(this.vertexArray[a],e);t=this.graph.getOpposites(p,this.vertexArray[a]);for(this.neighbours[a]=[],d=0;d<t.length;d++){this.resetEdges&&this.graph.resetEdge(p[d]),this.disableEdgeStyle&&this.setEdgeStyleEnabled(p[d],!1);r=mxCellPath.create(t[d]);var g=this.indices[r];this.neighbours[a][d]=null!=g?g:a}}for(this.temperature=this.initialTemp,0==this.maxIterations&&(this.maxIterations=20*Math.sqrt(s)),this.iteration=0;this.iteration<this.maxIterations;this.iteration++){if(!this.allowedToRun)return;this.calcRepulsion(),this.calcAttraction(),this.calcPositions(),this.reduceTemperature()}for(e=t=null,a=0;a<this.vertexArray.length;a++)o=this.vertexArray[a],this.isVertexMovable(o)&&(null!=(l=this.getVertexBounds(o))&&(this.cellLocation[a][0]-=l.width/2,this.cellLocation[a][1]-=l.height/2,m=this.graph.snap(this.cellLocation[a][0]),u=this.graph.snap(this.cellLocation[a][1]),this.setVertexLocation(o,m,u),t=null==t?m:Math.min(t,m),e=null==e?u:Math.min(e,u)));a=1-(t||0),o=1-(e||0),null!=i&&(a+=i.x,o+=i.y),this.graph.moveCells(this.vertexArray,a,o)}finally{n.endUpdate()}},mxFastOrganicLayout.prototype.calcPositions=function(){for(var e=0;e<this.vertexArray.length;e++)if(this.isMoveable[e]){(t=Math.sqrt(this.dispX[e]*this.dispX[e]+this.dispY[e]*this.dispY[e]))<.001&&(t=.001);var n=this.dispX[e]/t*Math.min(t,this.temperature),t=this.dispY[e]/t*Math.min(t,this.temperature);this.dispX[e]=0,this.dispY[e]=0,this.cellLocation[e][0]+=n,this.cellLocation[e][1]+=t}},mxFastOrganicLayout.prototype.calcAttraction=function(){for(var e=0;e<this.vertexArray.length;e++)for(var n=0;n<this.neighbours[e].length;n++){var t=this.neighbours[e][n];if(e!=t&&this.isMoveable[e]&&this.isMoveable[t]){(a=(s=this.cellLocation[e][0]-this.cellLocation[t][0])*s+(o=this.cellLocation[e][1]-this.cellLocation[t][1])*o-this.radiusSquared[e]-this.radiusSquared[t])<this.minDistanceLimitSquared&&(a=this.minDistanceLimitSquared);var a,i=Math.sqrt(a),s=s/i*(a=a/this.forceConstant),o=o/i*a;this.dispX[e]-=s,this.dispY[e]-=o,this.dispX[t]+=s,this.dispY[t]+=o}}},mxFastOrganicLayout.prototype.calcRepulsion=function(){for(var e=this.vertexArray.length,n=0;n<e;n++)for(var t=n;t<e;t++){if(!this.allowedToRun)return;if(t!=n&&this.isMoveable[n]&&this.isMoveable[t]){var a=this.cellLocation[n][0]-this.cellLocation[t][0],i=this.cellLocation[n][1]-this.cellLocation[t][1];0==a&&(a=.01+Math.random()),0==i&&(i=.01+Math.random());var s=Math.sqrt(a*a+i*i),o=s-this.radius[n]-this.radius[t];o>this.maxDistanceLimit||(o<this.minDistanceLimit&&(o=this.minDistanceLimit),a=a/s*(o=this.forceConstantSquared/o),i=i/s*o,this.dispX[n]+=a,this.dispY[n]+=i,this.dispX[t]-=a,this.dispY[t]-=i)}}},mxFastOrganicLayout.prototype.reduceTemperature=function(){this.temperature=this.initialTemp*(1-this.iteration/this.maxIterations)},mxCircleLayout.prototype=new mxGraphLayout,mxCircleLayout.prototype.constructor=mxCircleLayout,mxCircleLayout.prototype.radius=null,mxCircleLayout.prototype.moveCircle=!1,mxCircleLayout.prototype.x0=0,mxCircleLayout.prototype.y0=0,mxCircleLayout.prototype.resetEdges=!0,mxCircleLayout.prototype.disableEdgeStyle=!0,mxCircleLayout.prototype.execute=function(e){var n=this.graph.getModel();n.beginUpdate();try{for(var t=0,a=null,i=null,s=[],o=n.getChildCount(e),r=0;r<o;r++){var l=n.getChildAt(e,r);if(this.isVertexIgnored(l))this.isEdgeIgnored(l)||(this.resetEdges&&this.graph.resetEdge(l),this.disableEdgeStyle&&this.setEdgeStyleEnabled(l,!1));else{s.push(l);var d=this.getVertexBounds(l);a=null==a?d.y:Math.min(a,d.y),i=null==i?d.x:Math.min(i,d.x),t=Math.max(t,Math.max(d.width,d.height))}}var c=this.getRadius(s.length,t);this.moveCircle&&(i=this.x0,a=this.y0),this.circle(s,c,i,a)}finally{n.endUpdate()}},mxCircleLayout.prototype.getRadius=function(e,n){return Math.max(e*n/Math.PI,this.radius)},mxCircleLayout.prototype.circle=function(e,n,t,a){for(var i=e.length,s=2*Math.PI/i,o=0;o<i;o++)this.isVertexMovable(e[o])&&this.setVertexLocation(e[o],t+n+n*Math.sin(o*s),a+n+n*Math.cos(o*s))},mxParallelEdgeLayout.prototype=new mxGraphLayout,mxParallelEdgeLayout.prototype.constructor=mxParallelEdgeLayout,mxParallelEdgeLayout.prototype.spacing=20,mxParallelEdgeLayout.prototype.execute=function(e){e=this.findParallels(e),this.graph.model.beginUpdate();try{for(var n in e){var t=e[n];1<t.length&&this.layout(t)}}finally{this.graph.model.endUpdate()}},mxParallelEdgeLayout.prototype.findParallels=function(e){for(var n=this.graph.getModel(),t=[],a=n.getChildCount(e),i=0;i<a;i++){var s=n.getChildAt(e,i);if(!this.isEdgeIgnored(s)){var o=this.getEdgeId(s);null!=o&&(null==t[o]&&(t[o]=[]),t[o].push(s))}}return t},mxParallelEdgeLayout.prototype.getEdgeId=function(e){var n=this.graph.getView(),t=n.getState(e),a=null!=t?t.getVisibleTerminal(!0):n.getVisibleTerminal(e,!0);return e=null!=t?t.getVisibleTerminal(!1):n.getVisibleTerminal(e,!1),null!=a&&null!=e?(a=mxCellPath.create(a),(e=mxCellPath.create(e))<a?e+"-"+a:a+"-"+e):null},mxParallelEdgeLayout.prototype.layout=function(e){var n=e[0];if((o=(t=this.graph.getModel()).getGeometry(t.getTerminal(n,!0)))==(s=t.getGeometry(t.getTerminal(n,!1)))){n=o.x+o.width+this.spacing;for(var t=o.y+o.height/2,a=0;a<e.length;a++)this.route(e[a],n,t),n+=this.spacing}else if(null!=o&&null!=s){n=o.x+o.width/2,t=o.y+o.height/2,a=s.x+s.width/2-n;var i=s.y+s.height/2-t,s=Math.sqrt(a*a+i*i),o=i*this.spacing/s;for(s=a*this.spacing/s,n=n+a/2+o*(e.length-1)/2,t=t+i/2-s*(e.length-1)/2,a=0;a<e.length;a++)this.route(e[a],n,t),n-=o,t+=s}},mxParallelEdgeLayout.prototype.route=function(e,n,t){this.graph.isCellMovable(e)&&this.setEdgePoints(e,[new mxPoint(n,t)])},mxCompositeLayout.prototype=new mxGraphLayout,mxCompositeLayout.prototype.constructor=mxCompositeLayout,mxCompositeLayout.prototype.layouts=null,mxCompositeLayout.prototype.master=null,mxCompositeLayout.prototype.moveCell=function(e,n,t){null!=this.master?this.master.move.apply(this.master,arguments):this.layouts[0].move.apply(this.layouts[0],arguments)},mxCompositeLayout.prototype.execute=function(e){var n=this.graph.getModel();n.beginUpdate();try{for(var t=0;t<this.layouts.length;t++)this.layouts[t].execute.apply(this.layouts[t],arguments)}finally{n.endUpdate()}},mxEdgeLabelLayout.prototype=new mxGraphLayout,mxEdgeLabelLayout.prototype.constructor=mxEdgeLabelLayout,mxEdgeLabelLayout.prototype.execute=function(e){for(var n=this.graph.view,t=this.graph.getModel(),a=[],i=[],s=t.getChildCount(e),o=0;o<s;o++){var r=t.getChildAt(e,o),l=n.getState(r);null!=l&&(this.isVertexIgnored(r)?this.isEdgeIgnored(r)||a.push(l):i.push(l))}this.placeLabels(i,a)},mxEdgeLabelLayout.prototype.placeLabels=function(e,n){var t=this.graph.getModel();t.beginUpdate();try{for(var a=0;a<n.length;a++){var i=n[a];if(null!=i&&null!=i.text&&null!=i.text.boundingBox)for(var s=0;s<e.length;s++){var o=e[s];null!=o&&this.avoid(i,o)}}}finally{t.endUpdate()}},mxEdgeLabelLayout.prototype.avoid=function(e,n){var t=this.graph.getModel(),a=e.text.boundingBox;if(mxUtils.intersects(a,n)){var i=-a.y-a.height+n.y,s=-a.y+n.y+n.height;i=Math.abs(i)<Math.abs(s)?i:s,s=-a.x-a.width+n.x,a=-a.x+n.x+n.width,a=Math.abs(s)<Math.abs(a)?s:a;Math.abs(a)<Math.abs(i)?i=0:a=0,null!=(s=t.getGeometry(e.cell))&&(null!=(s=s.clone()).offset?(s.offset.x+=a,s.offset.y+=i):s.offset=new mxPoint(a,i),t.setGeometry(e.cell,s))}},mxGraphAbstractHierarchyCell.prototype.maxRank=-1,mxGraphAbstractHierarchyCell.prototype.minRank=-1,mxGraphAbstractHierarchyCell.prototype.x=null,mxGraphAbstractHierarchyCell.prototype.y=null,mxGraphAbstractHierarchyCell.prototype.width=0,mxGraphAbstractHierarchyCell.prototype.height=0,mxGraphAbstractHierarchyCell.prototype.nextLayerConnectedCells=null,mxGraphAbstractHierarchyCell.prototype.previousLayerConnectedCells=null,mxGraphAbstractHierarchyCell.prototype.temp=null,mxGraphAbstractHierarchyCell.prototype.getNextLayerConnectedCells=function(e){return null},mxGraphAbstractHierarchyCell.prototype.getPreviousLayerConnectedCells=function(e){return null},mxGraphAbstractHierarchyCell.prototype.isEdge=function(){return!1},mxGraphAbstractHierarchyCell.prototype.isVertex=function(){return!1},mxGraphAbstractHierarchyCell.prototype.getGeneralPurposeVariable=function(e){return null},mxGraphAbstractHierarchyCell.prototype.setGeneralPurposeVariable=function(e,n){return null},mxGraphAbstractHierarchyCell.prototype.setX=function(e,n){this.isVertex()?this.x[0]=n:this.isEdge()&&(this.x[e-this.minRank-1]=n)},mxGraphAbstractHierarchyCell.prototype.getX=function(e){return this.isVertex()?this.x[0]:this.isEdge()?this.x[e-this.minRank-1]:0},mxGraphAbstractHierarchyCell.prototype.setY=function(e,n){this.isVertex()?this.y[0]=n:this.isEdge()&&(this.y[e-this.minRank-1]=n)},mxGraphHierarchyNode.prototype=new mxGraphAbstractHierarchyCell,mxGraphHierarchyNode.prototype.constructor=mxGraphHierarchyNode,mxGraphHierarchyNode.prototype.cell=null,mxGraphHierarchyNode.prototype.connectsAsTarget=[],mxGraphHierarchyNode.prototype.connectsAsSource=[],mxGraphHierarchyNode.prototype.hashCode=!1,mxGraphHierarchyNode.prototype.getRankValue=function(e){return this.maxRank},mxGraphHierarchyNode.prototype.getNextLayerConnectedCells=function(e){if(null==this.nextLayerConnectedCells){this.nextLayerConnectedCells=[],this.nextLayerConnectedCells[0]=[];for(var n=0;n<this.connectsAsTarget.length;n++){var t=this.connectsAsTarget[n];-1==t.maxRank||t.maxRank==e+1?this.nextLayerConnectedCells[0].push(t.source):this.nextLayerConnectedCells[0].push(t)}}return this.nextLayerConnectedCells[0]},mxGraphHierarchyNode.prototype.getPreviousLayerConnectedCells=function(e){if(null==this.previousLayerConnectedCells){this.previousLayerConnectedCells=[],this.previousLayerConnectedCells[0]=[];for(var n=0;n<this.connectsAsSource.length;n++){var t=this.connectsAsSource[n];-1==t.minRank||t.minRank==e-1?this.previousLayerConnectedCells[0].push(t.target):this.previousLayerConnectedCells[0].push(t)}}return this.previousLayerConnectedCells[0]},mxGraphHierarchyNode.prototype.isVertex=function(){return!0},mxGraphHierarchyNode.prototype.getGeneralPurposeVariable=function(e){return this.temp[0]},mxGraphHierarchyNode.prototype.setGeneralPurposeVariable=function(e,n){this.temp[0]=n},mxGraphHierarchyNode.prototype.isAncestor=function(e){if(null!=e&&null!=this.hashCode&&null!=e.hashCode&&this.hashCode.length<e.hashCode.length){if(this.hashCode==e.hashCode)return!0;if(null==this.hashCode||null==this.hashCode)return!1;for(var n=0;n<this.hashCode.length;n++)if(this.hashCode[n]!=e.hashCode[n])return!1;return!0}return!1},mxGraphHierarchyNode.prototype.getCoreCell=function(){return this.cell},mxGraphHierarchyEdge.prototype=new mxGraphAbstractHierarchyCell,mxGraphHierarchyEdge.prototype.constructor=mxGraphHierarchyEdge,mxGraphHierarchyEdge.prototype.edges=null,mxGraphHierarchyEdge.prototype.source=null,mxGraphHierarchyEdge.prototype.target=null,mxGraphHierarchyEdge.prototype.isReversed=!1,mxGraphHierarchyEdge.prototype.invert=function(e){e=this.source,this.source=this.target,this.target=e,this.isReversed=!this.isReversed},mxGraphHierarchyEdge.prototype.getNextLayerConnectedCells=function(e){if(null==this.nextLayerConnectedCells){this.nextLayerConnectedCells=[];for(var n=0;n<this.temp.length;n++)this.nextLayerConnectedCells[n]=[],n==this.temp.length-1?this.nextLayerConnectedCells[n].push(this.source):this.nextLayerConnectedCells[n].push(this)}return this.nextLayerConnectedCells[e-this.minRank-1]},mxGraphHierarchyEdge.prototype.getPreviousLayerConnectedCells=function(e){if(null==this.previousLayerConnectedCells){this.previousLayerConnectedCells=[];for(var n=0;n<this.temp.length;n++)this.previousLayerConnectedCells[n]=[],0==n?this.previousLayerConnectedCells[n].push(this.target):this.previousLayerConnectedCells[n].push(this)}return this.previousLayerConnectedCells[e-this.minRank-1]},mxGraphHierarchyEdge.prototype.isEdge=function(){return!0},mxGraphHierarchyEdge.prototype.getGeneralPurposeVariable=function(e){return this.temp[e-this.minRank-1]},mxGraphHierarchyEdge.prototype.setGeneralPurposeVariable=function(e,n){this.temp[e-this.minRank-1]=n},mxGraphHierarchyEdge.prototype.getCoreCell=function(){return null!=this.edges&&0<this.edges.length?this.edges[0]:null},mxGraphHierarchyModel.prototype.maxRank=null,mxGraphHierarchyModel.prototype.vertexMapper=null,mxGraphHierarchyModel.prototype.edgeMapper=null,mxGraphHierarchyModel.prototype.ranks=null,mxGraphHierarchyModel.prototype.roots=null,mxGraphHierarchyModel.prototype.parent=null,mxGraphHierarchyModel.prototype.dfsCount=0,mxGraphHierarchyModel.prototype.SOURCESCANSTARTRANK=1e8,mxGraphHierarchyModel.prototype.tightenToSource=!1,mxGraphHierarchyModel.prototype.createInternalCells=function(e,n,t){for(var a=e.getGraph(),i=0;i<n.length;i++){t[i]=new mxGraphHierarchyNode(n[i]);var s=mxCellPath.create(n[i]);this.vertexMapper[s]=t[i],s=e.getEdges(n[i]),t[i].connectsAsSource=[];for(var o=0;o<s.length;o++){if((d=e.getVisibleTerminal(s[o],!1))!=n[i]&&d!=n[i]&&e.graph.model.isVertex(d)&&!e.isVertexIgnored(d)){var r=e.getEdgesBetween(n[i],d,!1),l=e.getEdgesBetween(n[i],d,!0),d=mxCellPath.create(r[0]);if(null!=r&&0<r.length&&null==this.edgeMapper[d]&&2*l.length>=r.length){l=new mxGraphHierarchyEdge(r);for(var c=0;c<r.length;c++){var m=r[c];d=mxCellPath.create(m);this.edgeMapper[d]=l,a.resetEdge(m),e.disableEdgeStyle&&(e.setEdgeStyleEnabled(m,!1),e.setOrthogonalEdge(m,!0))}l.source=t[i],mxUtils.indexOf(t[i].connectsAsSource,l)<0&&t[i].connectsAsSource.push(l)}}}t[i].temp[0]=0}},mxGraphHierarchyModel.prototype.initialRank=function(){var e=[];if(null!=this.roots)for(var n=0;n<this.roots.length;n++){var t=mxCellPath.create(this.roots[n]);null!=(t=this.vertexMapper[t])&&e.push(t)}for(var a in this.vertexMapper)(t=this.vertexMapper[a]).temp[0]=-1;for(var i=e.slice();0<e.length;){var s,o;s=(t=e[0]).connectsAsTarget,o=t.connectsAsSource;var r=!0,l=this.SOURCESCANSTARTRANK;for(n=0;n<s.length;n++){var d=s[n];if(5270620!=d.temp[0]){r=!1;break}d=d.source,l=Math.min(l,d.temp[0]-1)}if(r){if(t.temp[0]=l,this.maxRank=Math.min(this.maxRank,l),null!=o)for(n=0;n<o.length;n++)(d=o[n]).temp[0]=5270620,-1==(d=d.target).temp[0]&&(e.push(d),d.temp[0]=-2);e.shift()}else if(n=e.shift(),e.push(t),n==t&&1==e.length)break}for(a in this.vertexMapper)(t=this.vertexMapper[a]).temp[0]-=this.maxRank;for(n=0;n<i.length;n++)for(e=0,s=(t=i[n]).connectsAsSource,a=0;a<s.length;a++)d=(d=s[a]).target,t.temp[0]=Math.max(e,d.temp[0]+1),e=t.temp[0];this.maxRank=this.SOURCESCANSTARTRANK-this.maxRank},mxGraphHierarchyModel.prototype.fixRanks=function(){var s=[];this.ranks=[];for(var e=0;e<this.maxRank+1;e++)s[e]=[],this.ranks[e]=s[e];var n=null;if(null!=this.roots){var t=this.roots;for(n=[],e=0;e<t.length;e++){var a=mxCellPath.create(t[e]);n[e]=this.vertexMapper[a]}}this.visit(function(e,n,t,a,i){if(0==i&&n.maxRank<0&&n.minRank<0&&(s[n.temp[0]].push(n),n.maxRank=n.temp[0],n.minRank=n.temp[0],n.temp[0]=s[n.maxRank].length-1),null!=e&&null!=t&&1<e.maxRank-n.maxRank)for(t.maxRank=e.maxRank,t.minRank=n.maxRank,t.temp=[],t.x=[],t.y=[],e=t.minRank+1;e<t.maxRank;e++)s[e].push(t),t.setGeneralPurposeVariable(e,s[e].length-1)},n,!1,null)},mxGraphHierarchyModel.prototype.visit=function(e,n,t,a){if(null!=n){for(var i=0;i<n.length;i++){var s=n[i];null!=s&&(null==a&&(a={}),t?(s.hashCode=[],s.hashCode[0]=this.dfsCount,s.hashCode[1]=i,this.extendedDfs(null,s,null,e,a,s.hashCode,i,0)):this.dfs(null,s,null,e,a,0))}this.dfsCount++}},mxGraphHierarchyModel.prototype.dfs=function(e,n,t,a,i,s){if(null!=n){var o=mxCellPath.create(n.cell);if(null==i[o])for(a(e,i[o]=n,t,s,0),e=n.connectsAsSource.slice(),t=0;t<e.length;t++)o=e[t],this.dfs(n,o.target,o,a,i,s+1);else a(e,n,t,s,1)}},mxGraphHierarchyModel.prototype.extendedDfs=function(e,n,t,a,i,s,o,r){if(null!=n)if(null==e||null!=n.hashCode&&n.hashCode[0]==e.hashCode[0]||(s=e.hashCode.length+1,n.hashCode=e.hashCode.slice(),n.hashCode[s-1]=o),null==i[o=mxCellPath.create(n.cell)])for(a(e,i[o]=n,t,r,0),e=n.connectsAsSource.slice(),t=0;t<e.length;t++)o=e[t],this.extendedDfs(n,o.target,o,a,i,n.hashCode,t,r+1);else a(e,n,t,r,1)},mxHierarchicalLayoutStage.prototype.execute=function(e){},mxMedianHybridCrossingReduction.prototype=new mxHierarchicalLayoutStage,mxMedianHybridCrossingReduction.prototype.constructor=mxMedianHybridCrossingReduction,mxMedianHybridCrossingReduction.prototype.layout=null,mxMedianHybridCrossingReduction.prototype.maxIterations=24,mxMedianHybridCrossingReduction.prototype.nestedBestRanks=null,mxMedianHybridCrossingReduction.prototype.currentBestCrossings=0,mxMedianHybridCrossingReduction.prototype.iterationsWithoutImprovement=0,mxMedianHybridCrossingReduction.prototype.maxNoImprovementIterations=2,mxMedianHybridCrossingReduction.prototype.execute=function(e){e=this.layout.getModel(),this.nestedBestRanks=[];for(var n=0;n<e.ranks.length;n++)this.nestedBestRanks[n]=e.ranks[n].slice();var t=0,a=this.calculateCrossings(e);for(n=0;n<this.maxIterations&&t<this.maxNoImprovementIterations;n++){this.weightedMedian(n,e),this.transpose(n,e);var i=this.calculateCrossings(e);if(i<a)for(a=i,i=t=0;i<this.nestedBestRanks.length;i++)for(var s=e.ranks[i],o=0;o<s.length;o++){var r=s[o];this.nestedBestRanks[i][r.getGeneralPurposeVariable(i)]=r}else for(t++,i=0;i<this.nestedBestRanks.length;i++)for(s=e.ranks[i],o=0;o<s.length;o++)(r=s[o]).setGeneralPurposeVariable(i,o);if(0==a)break}for(t=[],a=[],n=0;n<e.maxRank+1;n++)a[n]=[],t[n]=a[n];for(n=0;n<this.nestedBestRanks.length;n++)for(i=0;i<this.nestedBestRanks[n].length;i++)a[n].push(this.nestedBestRanks[n][i]);e.ranks=t},mxMedianHybridCrossingReduction.prototype.calculateCrossings=function(e){for(var n=e.ranks.length,t=0,a=1;a<n;a++)t+=this.calculateRankCrossing(a,e);return t},mxMedianHybridCrossingReduction.prototype.calculateRankCrossing=function(e,n){for(var t=0,a=n.ranks[e],i=a.length,s=n.ranks[e-1].length,o=[],r=0;r<i;r++)o[r]=[];for(r=0;r<a.length;r++)for(var l=(c=a[r]).getGeneralPurposeVariable(e),d=c.getPreviousLayerConnectedCells(e),c=0;c<d.length;c++){var m=d[c].getGeneralPurposeVariable(e-1);o[l][m]=201207}for(r=0;r<i;r++)for(c=0;c<s;c++)if(201207==o[r][c]){for(a=r+1;a<i;a++)for(l=0;l<c;l++)201207==o[a][l]&&t++;for(a=0;a<r;a++)for(l=c+1;l<s;l++)201207==o[a][l]&&t++}return t/2},mxMedianHybridCrossingReduction.prototype.transpose=function(e,n){for(var t=!0,a=0;t&&a++<10;)for(var i=1==e%2&&1==a%2,s=(t=!1,0);s<n.ranks.length;s++){for(var o=n.ranks[s],r=[],l=0;l<o.length;l++){(b=(f=o[l]).getGeneralPurposeVariable(s))<0&&(b=l),r[b]=f}var d=b=f=null,c=null,m=null,u=null,p=null,g=null,v=null,h=null;for(l=0;l<o.length-1;l++){if(0==l){for(var f=(v=r[l]).getNextLayerConnectedCells(s),b=v.getPreviousLayerConnectedCells(s),A=(m=[],u=[],0);A<f.length;A++)m[A]=f[A].getGeneralPurposeVariable(s+1);for(A=0;A<b.length;A++)u[A]=b[A].getGeneralPurposeVariable(s-1)}else f=d,b=c,m=p,u=g,v=h;for(d=(h=r[l+1]).getNextLayerConnectedCells(s),c=h.getPreviousLayerConnectedCells(s),p=[],g=[],A=0;A<d.length;A++)p[A]=d[A].getGeneralPurposeVariable(s+1);for(A=0;A<c.length;A++)g[A]=c[A].getGeneralPurposeVariable(s-1);var E=0,y=0;for(A=0;A<m.length;A++)for(var S=0;S<p.length;S++)m[A]>p[S]&&E++,m[A]<p[S]&&y++;for(A=0;A<u.length;A++)for(S=0;S<g.length;S++)u[A]>g[S]&&E++,u[A]<g[S]&&y++;(y<E||y==E&&i)&&(d=v.getGeneralPurposeVariable(s),v.setGeneralPurposeVariable(s,h.getGeneralPurposeVariable(s)),h.setGeneralPurposeVariable(s,d),d=f,c=b,p=m,g=u,h=v,i||(t=!0))}}},mxMedianHybridCrossingReduction.prototype.weightedMedian=function(e,n){var t=0==e%2;if(t)for(var a=n.maxRank-1;0<=a;a--)this.medianRank(a,t);else for(a=1;a<n.maxRank;a++)this.medianRank(a,t)},mxMedianHybridCrossingReduction.prototype.medianRank=function(e,n){for(var t=this.nestedBestRanks[e].length,a=[],i=[],s=0;s<t;s++){var o,r,l=this.nestedBestRanks[e][s],d=new MedianCellSorter;d.cell=l,r=n?e+1:e-1,null!=(o=n?l.getNextLayerConnectedCells(e):l.getPreviousLayerConnectedCells(e))&&0!=o.length?(d.medianValue=this.medianValue(o,r),a.push(d)):i[l.getGeneralPurposeVariable(e)]=!0}for(a.sort(MedianCellSorter.prototype.compare),s=0;s<t;s++)null==i[s]&&(l=a.shift().cell).setGeneralPurposeVariable(e,s)},mxMedianHybridCrossingReduction.prototype.medianValue=function(e,n){for(var t=[],a=0,i=0;i<e.length;i++){var s=e[i];t[a++]=s.getGeneralPurposeVariable(n)}return t.sort(function(e,n){return e-n}),1==a%2?t[Math.floor(a/2)]:2==a?(t[0]+t[1])/2:(s=t[(i=a/2)-1]-t[0],a=t[a-1]-t[i],(t[i-1]*a+t[i]*s)/(s+a))},MedianCellSorter.prototype.medianValue=0,MedianCellSorter.prototype.cell=!1,MedianCellSorter.prototype.compare=function(e,n){return null!=e&&null!=n?n.medianValue>e.medianValue?-1:n.medianValue<e.medianValue?1:0:0},mxMinimumCycleRemover.prototype=new mxHierarchicalLayoutStage,mxMinimumCycleRemover.prototype.constructor=mxMinimumCycleRemover,mxMinimumCycleRemover.prototype.layout=null,mxMinimumCycleRemover.prototype.execute=function(e){var n=this.layout.getModel(),s={},o=mxUtils.clone(n.vertexMapper,null,!0),t=null;if(null!=n.roots){var a=n.roots;t=[];for(e=0;e<a.length;e++){var i=mxCellPath.create(a[e]);t[e]=n.vertexMapper[i]}}if(n.visit(function(e,n,t,a,i){n.isAncestor(e)&&(t.invert(),mxUtils.remove(t,e.connectsAsSource),e.connectsAsTarget.push(t),mxUtils.remove(t,n.connectsAsTarget),n.connectsAsSource.push(t)),e=mxCellPath.create(n.cell),s[e]=n,delete o[e]},t,!0,null),t=null,0<o.lenth&&(t=mxUtils.clone(o,null,!0)),e=mxUtils.clone(s,null,!0),n.visit(function(e,n,t,a,i){n.isAncestor(e)&&(t.invert(),mxUtils.remove(t,e.connectsAsSource),n.connectsAsSource.push(t),e.connectsAsTarget.push(t),mxUtils.remove(t,n.connectsAsTarget)),e=mxCellPath.create(n.cell),s[e]=n,delete o[e]},o,!0,e),a=this.layout.getGraph(),null!=t&&0<t.length)for(n=n.roots,e=0;e<t.length;e++)i=t[e].cell,0==a.getIncomingEdges(i).length&&n.push(i)};var mxHierarchicalEdgeStyle={ORTHOGONAL:1,POLYLINE:2,STRAIGHT:3,CURVE:4};function WeightedCellSorter(e,n){this.cell=e,this.weightedValue=n}function mxHierarchicalLayout(e,n,t){mxGraphLayout.call(this,e),this.orientation=null!=n?n:mxConstants.DIRECTION_NORTH,this.deterministic=null==t||t}function mxGraphModel(e){this.currentEdit=this.createUndoableEdit(),null!=e?this.setRoot(e):this.clear()}function mxRootChange(e,n){this.model=e,this.previous=this.root=n}function mxChildChange(e,n,t,a){this.model=e,this.previous=this.parent=n,this.child=t,this.previousIndex=this.index=a}function mxTerminalChange(e,n,t,a){this.model=e,this.cell=n,this.previous=this.terminal=t,this.source=a}function mxValueChange(e,n,t){this.model=e,this.cell=n,this.previous=this.value=t}function mxStyleChange(e,n,t){this.model=e,this.cell=n,this.previous=this.style=t}function mxGeometryChange(e,n,t){this.model=e,this.cell=n,this.previous=this.geometry=t}function mxCollapseChange(e,n,t){this.model=e,this.cell=n,this.previous=this.collapsed=t}function mxVisibleChange(e,n,t){this.model=e,this.cell=n,this.previous=this.visible=t}function mxCellAttributeChange(e,n,t){this.cell=e,this.attribute=n,this.previous=this.value=t}function mxCell(e,n,t){this.value=e,this.setGeometry(n),this.setStyle(t),null!=this.onInit&&this.onInit()}function mxGeometry(e,n,t,a){mxRectangle.call(this,e,n,t,a)}mxCoordinateAssignment.prototype=new mxHierarchicalLayoutStage,mxCoordinateAssignment.prototype.constructor=mxCoordinateAssignment,mxCoordinateAssignment.prototype.layout=null,mxCoordinateAssignment.prototype.intraCellSpacing=30,mxCoordinateAssignment.prototype.interRankCellSpacing=100,mxCoordinateAssignment.prototype.parallelEdgeSpacing=10,mxCoordinateAssignment.prototype.maxIterations=8,mxCoordinateAssignment.prototype.prefHozEdgeSep=5,mxCoordinateAssignment.prototype.prefVertEdgeOff=2,mxCoordinateAssignment.prototype.minEdgeJetty=12,mxCoordinateAssignment.prototype.channelBuffer=4,mxCoordinateAssignment.prototype.jettyPositions=null,mxCoordinateAssignment.prototype.orientation=mxConstants.DIRECTION_NORTH,mxCoordinateAssignment.prototype.initialX=null,mxCoordinateAssignment.prototype.limitX=null,mxCoordinateAssignment.prototype.currentXDelta=null,mxCoordinateAssignment.prototype.widestRank=null,mxCoordinateAssignment.prototype.rankTopY=null,mxCoordinateAssignment.prototype.rankBottomY=null,mxCoordinateAssignment.prototype.widestRankValue=null,mxCoordinateAssignment.prototype.rankWidths=null,mxCoordinateAssignment.prototype.rankY=null,mxCoordinateAssignment.prototype.fineTuning=!0,mxCoordinateAssignment.prototype.edgeStyle=mxHierarchicalEdgeStyle.POLYLINE,mxCoordinateAssignment.prototype.nextLayerConnectedCache=null,mxCoordinateAssignment.prototype.previousLayerConnectedCache=null,mxCoordinateAssignment.prototype.groupPadding=10,mxCoordinateAssignment.prototype.printStatus=function(){var e=this.layout.getModel();mxLog.show(),mxLog.writeln("======Coord assignment debug=======");for(var n=0;n<e.ranks.length;n++){mxLog.write("Rank ",n," : ");for(var t=e.ranks[n],a=0;a<t.length;a++)mxLog.write(t[a].getGeneralPurposeVariable(n)," ");mxLog.writeln()}mxLog.writeln("====================================")},mxCoordinateAssignment.prototype.execute=function(e){this.jettyPositions=[],e=this.layout.getModel(),this.currentXDelta=0,this.initialCoords(this.layout.getGraph(),e),this.fineTuning&&this.minNode(e);var n=1e8;if(this.fineTuning)for(var t=0;t<this.maxIterations;t++){if(0!=t&&(this.medianPos(t,e),this.minNode(e)),this.currentXDelta<n){for(var a=0;a<e.ranks.length;a++)for(var i=e.ranks[a],s=0;s<i.length;s++){var o=i[s];o.setX(a,o.getGeneralPurposeVariable(a))}n=this.currentXDelta}else for(a=0;a<e.ranks.length;a++)for(i=e.ranks[a],s=0;s<i.length;s++)(o=i[s]).setGeneralPurposeVariable(a,o.getX(a));this.minPath(this.layout.getGraph(),e),this.currentXDelta=0}this.setCellLocations(this.layout.getGraph(),e)},mxCoordinateAssignment.prototype.minNode=function(e){for(var n=[],t=[],a=[],i=0;i<=e.maxRank;i++){a[i]=e.ranks[i];for(var s=0;s<a[i].length;s++){var o=a[i][s];(r=new WeightedCellSorter(o,i)).rankIndex=s,r.visited=!0,n.push(r),t[o=mxCellPath.create(o.getCoreCell())]=r}}for(e=10*n.length,s=0;0<n.length&&s<=e;){i=(r=n.shift()).cell;var r,l=r.weightedValue,d=parseInt(r.rankIndex),c=(o=i.getNextLayerConnectedCells(l),i.getPreviousLayerConnectedCells(l)),m=o.length,u=c.length,p=this.medianXValue(o,l+1),g=this.medianXValue(c,l-1),v=m+u,h=i.getGeneralPurposeVariable(l),f=h;if(0<v&&(f=(p*m+g*u)/v),m=!1,f<h-1?0==d?(i.setGeneralPurposeVariable(l,f),m=!0):(h=(h=(d=a[l][d-1]).getGeneralPurposeVariable(l))+d.width/2+this.intraCellSpacing+i.width/2)<f?(i.setGeneralPurposeVariable(l,f),m=!0):h<i.getGeneralPurposeVariable(l)-1&&(i.setGeneralPurposeVariable(l,h),m=!0):h+1<f&&(d==a[l].length-1?(i.setGeneralPurposeVariable(l,f),m=!0):f<(h=(h=(d=a[l][d+1]).getGeneralPurposeVariable(l))-d.width/2-this.intraCellSpacing-i.width/2)?(i.setGeneralPurposeVariable(l,f),m=!0):h>i.getGeneralPurposeVariable(l)+1&&(i.setGeneralPurposeVariable(l,h),m=!0)),m){for(i=0;i<o.length;i++)l=o[i],null!=(l=t[l=mxCellPath.create(l.getCoreCell())])&&0==l.visited&&(l.visited=!0,n.push(l));for(i=0;i<c.length;i++)l=c[i],null!=(l=t[l=mxCellPath.create(l.getCoreCell())])&&0==l.visited&&(l.visited=!0,n.push(l))}r.visited=!1,s++}},mxCoordinateAssignment.prototype.medianPos=function(e,n){if(0==e%2)for(var t=n.maxRank;0<t;t--)this.rankMedianPosition(t-1,n,t);else for(t=0;t<n.maxRank-1;t++)this.rankMedianPosition(t+1,n,t)},mxCoordinateAssignment.prototype.rankMedianPosition=function(e,n,t){n=n.ranks[e];for(var a=[],i=[],s=0;s<n.length;s++){var o=n[s];a[s]=new WeightedCellSorter,a[s].cell=o,a[s].rankIndex=s;var r=mxCellPath.create(o.getCoreCell());i[r]=a[s];var l=null;l=t<e?o.getPreviousLayerConnectedCells(e):o.getNextLayerConnectedCells(e);a[s].weightedValue=this.calculatedWeightedValue(o,l)}for(a.sort(WeightedCellSorter.prototype.compare),s=0;s<a.length;s++){r=0,o=a[s].cell,r=0,null!=(l=t<e?o.getPreviousLayerConnectedCells(e).slice():o.getNextLayerConnectedCells(e).slice())&&(r=0<(r=l.length)?this.medianXValue(l,t):o.getGeneralPurposeVariable(e));for(var d=0,c=(l=-1e8,a[s].rankIndex-1);0<=c;){var m;if(null!=(m=i[m=mxCellPath.create(n[c].getCoreCell())])){var u=m.cell;m.visited?(l=u.getGeneralPurposeVariable(e)+u.width/2+this.intraCellSpacing+d+o.width/2,c=-1):(d+=u.width+this.intraCellSpacing,c--)}}for(d=0,u=1e8,c=a[s].rankIndex+1;c<a.length;)if(null!=(m=i[m=mxCellPath.create(n[c].getCoreCell())])){var p=m.cell;m.visited?(u=p.getGeneralPurposeVariable(e)-p.width/2-this.intraCellSpacing-d-o.width/2,c=a.length):(d+=p.width+this.intraCellSpacing,c++)}l<=r&&r<=u?o.setGeneralPurposeVariable(e,r):r<l?(o.setGeneralPurposeVariable(e,l),this.currentXDelta+=l-r):u<r&&(o.setGeneralPurposeVariable(e,u),this.currentXDelta+=r-u),a[s].visited=!0}},mxCoordinateAssignment.prototype.calculatedWeightedValue=function(e,n){for(var t=0,a=0;a<n.length;a++){var i=n[a];e.isVertex()&&i.isVertex()?t++:t=e.isEdge()&&i.isEdge()?t+8:t+2}return t},mxCoordinateAssignment.prototype.medianXValue=function(e,n){if(0==e.length)return 0;for(var t=[],a=0;a<e.length;a++)t[a]=e[a].getGeneralPurposeVariable(n);return t.sort(function(e,n){return e-n}),1==e.length%2?t[Math.floor(e.length/2)]:(t[(a=e.length/2)-1]+t[a])/2},mxCoordinateAssignment.prototype.initialCoords=function(e,n){this.calculateWidestRank(e,n);for(var t=this.widestRank;0<=t;t--)t<n.maxRank&&this.rankCoordinates(t,e,n);for(t=this.widestRank+1;t<=n.maxRank;t++)0<t&&this.rankCoordinates(t,e,n)},mxCoordinateAssignment.prototype.rankCoordinates=function(e,n,t){n=t.ranks[e],t=0;for(var a=this.initialX+(this.widestRankValue-this.rankWidths[e])/2,i=!1,s=0;s<n.length;s++){var o=n[s];if(o.isVertex()){var r=this.layout.getVertexBounds(o.cell);null!=r?this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(o.width=r.width,o.height=r.height):(o.width=r.height,o.height=r.width):i=!0,t=Math.max(t,o.height)}else o.isEdge()&&(r=1,null!=o.edges?r=o.edges.length:mxLog.warn("edge.edges is null"),o.width=(r-1)*this.parallelEdgeSpacing);a+=o.width/2,o.setX(e,a),o.setGeneralPurposeVariable(e,a),a+=o.width/2,a+=this.intraCellSpacing}1==i&&mxLog.warn("At least one cell has no bounds")},mxCoordinateAssignment.prototype.calculateWidestRank=function(e,n){var t=-this.interRankCellSpacing,a=0;this.rankWidths=[],this.rankY=[];for(var i=n.maxRank;0<=i;i--){for(var s=0,o=n.ranks[i],r=this.initialX,l=!1,d=0;d<o.length;d++){var c=o[d];if(c.isVertex()){var m=this.layout.getVertexBounds(c.cell);null!=m?this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(c.width=m.width,c.height=m.height):(c.width=m.height,c.height=m.width):l=!0,s=Math.max(s,c.height)}else c.isEdge()&&(m=1,null!=c.edges?m=c.edges.length:mxLog.warn("edge.edges is null"),c.width=(m-1)*this.parallelEdgeSpacing);r+=c.width/2,c.setX(i,r),c.setGeneralPurposeVariable(i,r),r+=c.width/2,(r+=this.intraCellSpacing)>this.widestRankValue&&(this.widestRankValue=r,this.widestRank=i),this.rankWidths[i]=r}for(1==l&&mxLog.warn("At least one cell has no bounds"),this.rankY[i]=t,r=s/2+a/2+this.interRankCellSpacing,a=s,t=this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_WEST?t+r:t-r,d=0;d<o.length;d++)o[d].setY(i,t)}},mxCoordinateAssignment.prototype.minPath=function(e,n){var t,a=n.edgeMapper;for(t in a){var i=a[t];if(!(i.maxRank-i.minRank-1<1)){for(var s=i.getGeneralPurposeVariable(i.minRank+1),o=!0,r=0,l=i.minRank+2;l<i.maxRank;l++){s!=(d=i.getGeneralPurposeVariable(l))?(o=!1,s=d):r++}if(!o){o=s=0;var d=[],c=[],m=i.getGeneralPurposeVariable(i.minRank+1);for(l=i.minRank+1;l<i.maxRank-1;l++){var u=i.getX(l+1);m==u?(d[l-i.minRank-1]=m,s++):this.repositionValid(n,i,l+1,m)?(d[l-i.minRank-1]=m,s++):m=d[l-i.minRank-1]=u}for(m=i.getX(l),l=i.maxRank-1;l>i.minRank+1;l--)m==(u=i.getX(l-1))?(c[l-i.minRank-2]=m,o++):this.repositionValid(n,i,l-1,m)?(c[l-i.minRank-2]=m,o++):(c[l-i.minRank-2]=i.getX(l-1),m=u);if(r<o||r<s)if(s<=o)for(l=i.maxRank-2;l>i.minRank;l--)i.setX(l,c[l-i.minRank-1]);else if(o<s)for(l=i.minRank+2;l<i.maxRank;l++)i.setX(l,d[l-i.minRank-2])}}}},mxCoordinateAssignment.prototype.repositionValid=function(e,n,t,a){e=e.ranks[t];for(var i=-1,s=0;s<e.length;s++)if(n==e[s]){i=s;break}if(i<0)return!1;if(a<(s=n.getGeneralPurposeVariable(t))){if(0==i)return!0;if(!((t=(t=(e=e[i-1]).getGeneralPurposeVariable(t))+e.width/2+this.intraCellSpacing+n.width/2)<=a))return!1}else if(s<a){if(i==e.length-1)return!0;if(!(a<=(t=(t=(e=e[i+1]).getGeneralPurposeVariable(t))-e.width/2-this.intraCellSpacing-n.width/2)))return!1}return!0},mxCoordinateAssignment.prototype.setCellLocations=function(e,n){this.rankTopY=[],this.rankBottomY=[];for(var t=0;t<n.ranks.length;t++)this.rankTopY[t]=Number.MAX_VALUE,this.rankBottomY[t]=0;t=null,this.layout.resizeParent&&(t={});var a,i=n.edgeMapper,s=n.vertexMapper;for(a in s){var o=s[a];if(this.setVertexLocation(o),this.layout.resizeParent){o=e.model.getParent(o.cell);var r=mxCellPath.create(o);null==t[r]&&(t[r]=o)}}for(a in this.layout.resizeParent&&null!=t&&this.adjustParents(t),(this.edgeStyle==mxHierarchicalEdgeStyle.ORTHOGONAL||this.edgeStyle==mxHierarchicalEdgeStyle.POLYLINE||this.edgeStyle==mxHierarchicalEdgeStyle.CURVE)&&this.localEdgeProcessing(n),i)this.setEdgePosition(i[a])},mxCoordinateAssignment.prototype.adjustParents=function(e){var n,t=[];for(n in e)t.push(e[n]);this.layout.arrangeGroups(mxUtils.sortCells(t,!0),this.groupPadding)},mxCoordinateAssignment.prototype.localEdgeProcessing=function(e){for(var n=0;n<e.ranks.length;n++)for(var t=e.ranks[n],a=0;a<t.length;a++){var i=t[a];if(i.isVertex())for(var s=i.getPreviousLayerConnectedCells(n),o=n-1,r=0;r<2;r++){if(-1<o&&o<e.ranks.length&&null!=s&&0<s.length){for(var l=[],d=0;d<s.length;d++){var c=new WeightedCellSorter(s[d],s[d].getX(o));l.push(c)}l.sort(WeightedCellSorter.prototype.compare);var m=(c=i.x[0]-i.width/2)+i.width,u=s=0;for(o=[],d=0;d<l.length;d++){var p,g=l[d].cell;if(g.isVertex()){p=0==r?i.connectsAsSource:i.connectsAsTarget;for(var v=0;v<p.length;v++)p[v].source!=g&&p[v].target!=g||(s+=p[v].edges.length,u++,o.push(p[v]))}else s+=g.edges.length,u++,o.push(g)}for(i.width>(s+1)*this.prefHozEdgeSep+2*this.prefHozEdgeSep&&(c+=this.prefHozEdgeSep,m-=this.prefHozEdgeSep),c+=(l=(m-c)/s)/2,m=this.minEdgeJetty-this.prefVertEdgeOff,d=u=0;d<o.length;d++){for(g=o[d].edges.length,v=mxCellPath.create(o[d].edges[0]),null==(p=this.jettyPositions[v])&&(p=[],this.jettyPositions[v]=p),d<s/2?m+=this.prefVertEdgeOff:s/2<d&&(m-=this.prefVertEdgeOff),v=0;v<g;v++)p[4*v+2*r]=c,c+=l,p[4*v+2*r+1]=m;u=Math.max(u,m)}}s=i.getNextLayerConnectedCells(n),o=n+1}}},mxCoordinateAssignment.prototype.setEdgePosition=function(e){var n=0;if(101207!=e.temp[0]){var t=e.maxRank,a=e.minRank;t==a&&(t=e.source.maxRank,a=e.target.minRank);for(var i=0,s=mxCellPath.create(e.edges[0]),o=(s=this.jettyPositions[s],e.isReversed?e.target.cell:e.source.cell),r=this.layout.graph,l=0;l<e.edges.length;l++){var d=e.edges[l],c=this.layout.getVisibleTerminal(d,!0),m=r.model.getTerminal(d,!0),u=[],p=e.isReversed;if(c!=o&&(p=!p),null!=s){var g=p?2:0,v=p?this.rankTopY[a]:this.rankBottomY[t],h=s[4*i+1+g];p&&(h=-h),v+=h,g=s[4*i+g],m=r.model.getTerminal(d,!0),this.layout.isPort(m)&&r.model.getParent(m)==c&&(g=null!=(g=r.view.getState(m))?g.x:c.geometry.x+e.source.width*m.geometry.x),this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(u.push(new mxPoint(g,v)),this.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&u.push(new mxPoint(g,v+h))):(u.push(new mxPoint(v,g)),this.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&u.push(new mxPoint(v+h,g)))}for(g=e.x.length-1,v=h=-1,c=e.maxRank-1,p&&(g=0,h=e.x.length,v=1,c=e.minRank+1);e.maxRank!=e.minRank&&g!=h;g+=v){m=e.x[g]+n;var f=(this.rankTopY[c]+this.rankBottomY[c+1])/2,b=(this.rankTopY[c-1]+this.rankBottomY[c])/2;if(p){var A=f;f=b,b=A}this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(u.push(new mxPoint(m,f)),u.push(new mxPoint(m,b))):(u.push(new mxPoint(f,m)),u.push(new mxPoint(b,m))),this.limitX=Math.max(this.limitX,m),c+=v}null!=s&&(g=p?2:0,v=p?this.rankBottomY[t]:this.rankTopY[a],h=s[4*i+3-g],p&&(h=-h),v-=h,g=s[4*i+2-g],p=r.model.getTerminal(d,!1),c=this.layout.getVisibleTerminal(d,!1),this.layout.isPort(p)&&r.model.getParent(p)==c&&(g=null!=(g=r.view.getState(p))?g.x:c.geometry.x+e.target.width*p.geometry.x),this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(this.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&u.push(new mxPoint(g,v-h)),u.push(new mxPoint(g,v))):(this.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&u.push(new mxPoint(v-h,g)),u.push(new mxPoint(v,g)))),e.isReversed&&this.processReversedEdge(e,d),this.layout.setEdgePoints(d,u),n=0==n?this.parallelEdgeSpacing:0<n?-n:-n+this.parallelEdgeSpacing,i++}e.temp[0]=101207}},mxCoordinateAssignment.prototype.setVertexLocation=function(e){var n=e.cell,t=e.x[0]-e.width/2,a=e.y[0]-e.height/2;this.rankTopY[e.minRank]=Math.min(this.rankTopY[e.minRank],a),this.rankBottomY[e.minRank]=Math.max(this.rankBottomY[e.minRank],a+e.height),this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?this.layout.setVertexLocation(n,t,a):this.layout.setVertexLocation(n,a,t),this.limitX=Math.max(this.limitX,t+e.width)},mxCoordinateAssignment.prototype.processReversedEdge=function(e,n){},WeightedCellSorter.prototype.weightedValue=0,WeightedCellSorter.prototype.nudge=!1,WeightedCellSorter.prototype.visited=!1,WeightedCellSorter.prototype.rankIndex=null,WeightedCellSorter.prototype.cell=null,WeightedCellSorter.prototype.compare=function(e,n){return null!=e&&null!=n?n.weightedValue>e.weightedValue?-1:n.weightedValue<e.weightedValue?1:n.nudge?-1:1:0},mxHierarchicalLayout.prototype=new mxGraphLayout,mxHierarchicalLayout.prototype.constructor=mxHierarchicalLayout,mxHierarchicalLayout.prototype.roots=null,mxHierarchicalLayout.prototype.resizeParent=!1,mxHierarchicalLayout.prototype.moveParent=!1,mxHierarchicalLayout.prototype.parentBorder=0,mxHierarchicalLayout.prototype.intraCellSpacing=30,mxHierarchicalLayout.prototype.interRankCellSpacing=100,mxHierarchicalLayout.prototype.interHierarchySpacing=60,mxHierarchicalLayout.prototype.parallelEdgeSpacing=10,mxHierarchicalLayout.prototype.orientation=mxConstants.DIRECTION_NORTH,mxHierarchicalLayout.prototype.fineTuning=!0,mxHierarchicalLayout.prototype.tightenToSource=!0,mxHierarchicalLayout.prototype.disableEdgeStyle=!0,mxHierarchicalLayout.prototype.traverseAncestors=!0,mxHierarchicalLayout.prototype.model=null,mxHierarchicalLayout.prototype.edgesCache=null,mxHierarchicalLayout.prototype.getModel=function(){return this.model},mxHierarchicalLayout.prototype.execute=function(e,n){this.parent=e;var t=this.graph.model;if(this.edgesCache={},null!=n||null!=e){if(null!=n&&null!=e){for(var a=[],i=0;i<n.length;i++)t.isAncestor(e,n[i])&&a.push(n[i]);this.roots=a}else this.roots=n;t.beginUpdate();try{this.run(e),this.resizeParent&&!this.graph.isCellCollapsed(e)&&this.graph.updateGroupBounds([e],this.parentBorder,this.moveParent)}finally{t.endUpdate()}}},mxHierarchicalLayout.prototype.findRoots=function(e,n){var t=[];if(null!=e&&null!=n){var a,i=this.graph.model,s=null,o=-1e5;for(a in n){var r=n[a];if(i.isVertex(r)&&this.graph.isCellVisible(r)){for(var l=this.getEdges(r),d=0,c=0,m=0;m<l.length;m++)this.getVisibleTerminal(l[m],!0)==r?d++:c++;0==c&&0<d&&t.push(r),o<(l=d-c)&&(o=l,s=r)}}0==t.length&&null!=s&&t.push(s)}return t},mxHierarchicalLayout.prototype.getEdges=function(e){var n=mxCellPath.create(e);if(null!=this.edgesCache[n])return this.edgesCache[n];for(var t=this.graph.model,a=[],i=this.graph.isCellCollapsed(e),s=t.getChildCount(e),o=0;o<s;o++){var r=t.getChildAt(e,o);this.isPort(r)?a=a.concat(t.getEdges(r,!0,!0)):!i&&this.graph.isCellVisible(r)||(a=a.concat(t.getEdges(r,!0,!0)))}for(a=a.concat(t.getEdges(e,!0,!0)),t=[],o=0;o<a.length;o++)((i=this.getVisibleTerminal(a[o],!0))==(s=this.getVisibleTerminal(a[o],!1))||i!=s&&(s==e&&(null==this.parent||this.graph.isValidAncestor(i,this.parent,this.traverseAncestors))||i==e&&(null==this.parent||this.graph.isValidAncestor(s,this.parent,this.traverseAncestors))))&&t.push(a[o]);return this.edgesCache[n]=t},mxHierarchicalLayout.prototype.getVisibleTerminal=function(e,n){var t=null!=(t=this.graph.view.getState(e))?t.getVisibleTerminal(n):this.graph.view.getVisibleTerminal(e,n);return this.isPort(t)&&(t=this.graph.model.getParent(t)),t},mxHierarchicalLayout.prototype.run=function(e){var n=[],t=[];if(null==this.roots&&null!=e){var a={};this.filterDescendants(e,a),this.roots=[];var i,s=!0;for(i in a)if(null!=a[i]){s=!1;break}for(;!s;){var o=this.findRoots(e,a);for(s=0;s<o.length;s++){var r=[];n.push(r),this.traverse(o[s],!0,null,t,r,n,a)}for(s=0;s<o.length;s++)this.roots.push(o[s]);for(i in s=!0,a)if(null!=a[i]){s=!1;break}}}else for(s=0;s<roots.length;s++)r=[],n.push(r),traverse(roots.get(s),!0,null,t,r,n,null);for(s=t=0;s<n.length;s++){for(i in a=[],r=n[s])a.push(r[i]);this.model=new mxGraphHierarchyModel(this,a,this.roots,e,this.tightenToSource),this.cycleStage(e),this.layeringStage(),this.crossingStage(e),t=this.placementStage(t,e)}},mxHierarchicalLayout.prototype.filterDescendants=function(e,n){var t=this.graph.model;if(t.isVertex(e)&&e!=this.parent&&this.graph.isCellVisible(e)&&(n[mxCellPath.create(e)]=e),this.traverseAncestors||e==this.parent&&this.graph.isCellVisible(e))for(var a=t.getChildCount(e),i=0;i<a;i++){var s=t.getChildAt(e,i);this.isPort(s)||this.filterDescendants(s,n)}},mxHierarchicalLayout.prototype.isPort=function(e){return!!e.geometry.relative},mxHierarchicalLayout.prototype.getEdgesBetween=function(e,n,t){t=null!=t&&t;for(var a=this.getEdges(e),i=[],s=0;s<a.length;s++){var o=this.getVisibleTerminal(a[s],!0),r=this.getVisibleTerminal(a[s],!1);(o==e&&r==n||!t&&o==n&&r==e)&&i.push(a[s])}return i},mxHierarchicalLayout.prototype.traverse=function(e,n,t,a,i,s,o){if(null!=e&&null!=a){var r=mxCellPath.create(e);if(null!=a[r]||null!=o&&null==o[r]){if(null==i[r])for(t=0;t<s.length;t++)if(null!=(e=s[t])[r]){for(l in i)e[l]=i[l];return s.pop(),e}}else{null==i[r]&&(i[r]=e),null==a[r]&&(a[r]=e),delete o[r];var l=this.getEdges(e);for(t=0;t<l.length;t++)r=this.getVisibleTerminal(l[t],!0)==e,(!n||r)&&(r=this.getVisibleTerminal(l[t],!r),i=this.traverse(r,n,l[t],a,i,s,o))}}return i},mxHierarchicalLayout.prototype.cycleStage=function(e){new mxMinimumCycleRemover(this).execute(e)},mxHierarchicalLayout.prototype.layeringStage=function(){this.model.initialRank(),this.model.fixRanks()},mxHierarchicalLayout.prototype.crossingStage=function(e){new mxMedianHybridCrossingReduction(this).execute(e)},mxHierarchicalLayout.prototype.placementStage=function(e,n){var t=new mxCoordinateAssignment(this,this.intraCellSpacing,this.interRankCellSpacing,this.orientation,e,this.parallelEdgeSpacing);return t.fineTuning=this.fineTuning,t.execute(n),t.limitX+this.interHierarchySpacing},mxGraphModel.prototype=new mxEventSource,mxGraphModel.prototype.constructor=mxGraphModel,mxGraphModel.prototype.root=null,mxGraphModel.prototype.cells=null,mxGraphModel.prototype.maintainEdgeParent=!0,mxGraphModel.prototype.createIds=!0,mxGraphModel.prototype.prefix="",mxGraphModel.prototype.postfix="",mxGraphModel.prototype.nextId=0,mxGraphModel.prototype.currentEdit=null,mxGraphModel.prototype.updateLevel=0,mxGraphModel.prototype.endingUpdate=!1,mxGraphModel.prototype.clear=function(){this.setRoot(this.createRoot())},mxGraphModel.prototype.isCreateIds=function(){return this.createIds},mxGraphModel.prototype.setCreateIds=function(e){this.createIds=e},mxGraphModel.prototype.createRoot=function(){var e=new mxCell;return e.insert(new mxCell),e},mxGraphModel.prototype.getCell=function(e){return null!=this.cells?this.cells[e]:null},mxGraphModel.prototype.filterCells=function(e,n){var t=null;if(null!=e){t=[];for(var a=0;a<e.length;a++)n(e[a])&&t.push(e[a])}return t},mxGraphModel.prototype.getDescendants=function(e){return this.filterDescendants(null,e)},mxGraphModel.prototype.filterDescendants=function(e,n){var t=[];n=n||this.getRoot(),(null==e||e(n))&&t.push(n);for(var a=this.getChildCount(n),i=0;i<a;i++){var s=this.getChildAt(n,i);t=t.concat(this.filterDescendants(e,s))}return t},mxGraphModel.prototype.getRoot=function(e){var n=e||this.root;if(null!=e)for(;null!=e;)n=e,e=this.getParent(e);return n},mxGraphModel.prototype.setRoot=function(e){return this.execute(new mxRootChange(this,e)),e},mxGraphModel.prototype.rootChanged=function(e){var n=this.root;return this.root=e,this.nextId=0,this.cells=null,this.cellAdded(e),n},mxGraphModel.prototype.isRoot=function(e){return null!=e&&this.root==e},mxGraphModel.prototype.isLayer=function(e){return this.isRoot(this.getParent(e))},mxGraphModel.prototype.isAncestor=function(e,n){for(;null!=n&&n!=e;)n=this.getParent(n);return n==e},mxGraphModel.prototype.contains=function(e){return this.isAncestor(this.root,e)},mxGraphModel.prototype.getParent=function(e){return null!=e?e.getParent():null},mxGraphModel.prototype.add=function(e,n,t){if(n!=e&&null!=e&&null!=n){null==t&&(t=this.getChildCount(e));var a=e!=this.getParent(n);this.execute(new mxChildChange(this,e,n,t)),this.maintainEdgeParent&&a&&this.updateEdgeParents(n)}return n},mxGraphModel.prototype.cellAdded=function(e){if(null!=e){if(null==e.getId()&&this.createIds&&e.setId(this.createId(e)),null!=e.getId())if((n=this.getCell(e.getId()))!=e){for(;null!=n;)e.setId(this.createId(e)),n=this.getCell(e.getId());null==this.cells&&(this.cells={}),this.cells[e.getId()]=e}mxUtils.isNumeric(e.getId())&&(this.nextId=Math.max(this.nextId,e.getId()));for(var n=this.getChildCount(e),t=0;t<n;t++)this.cellAdded(this.getChildAt(e,t))}},mxGraphModel.prototype.createId=function(e){return e=this.nextId,this.nextId++,this.prefix+e+this.postfix},mxGraphModel.prototype.updateEdgeParents=function(e,n){n=n||this.getRoot(e);for(var t=this.getChildCount(e),a=0;a<t;a++){var i=this.getChildAt(e,a);this.updateEdgeParents(i,n)}for(i=this.getEdgeCount(e),t=[],a=0;a<i;a++)t.push(this.getEdgeAt(e,a));for(a=0;a<t.length;a++)i=t[a],this.isAncestor(n,i)&&this.updateEdgeParent(i,n)},mxGraphModel.prototype.updateEdgeParent=function(e,n){for(var t=this.getTerminal(e,!0),a=this.getTerminal(e,!1),i=null;null!=t&&!this.isEdge(t)&&null!=t.geometry&&t.geometry.relative;)t=this.getParent(t);for(;null!=a&&!this.isEdge(a)&&null!=a.geometry&&a.geometry.relative;)a=this.getParent(a);if(this.isAncestor(n,t)&&this.isAncestor(n,a)&&(null!=(i=t==a?this.getParent(t):this.getNearestCommonAncestor(t,a))&&(this.getParent(i)!=this.root||this.isAncestor(i,e))&&this.getParent(e)!=i)){if(null!=(t=this.getGeometry(e))){var s=this.getOrigin(this.getParent(e)),o=this.getOrigin(i);a=o.x-s.x,s=o.y-s.y;(t=t.clone()).translate(-a,-s),this.setGeometry(e,t)}this.add(i,e,this.getChildCount(i))}},mxGraphModel.prototype.getOrigin=function(e){var n=null;return null!=e?(n=this.getOrigin(this.getParent(e)),this.isEdge(e)||null!=(e=this.getGeometry(e))&&(n.x+=e.x,n.y+=e.y)):n=new mxPoint,n},mxGraphModel.prototype.getNearestCommonAncestor=function(e,n){if(null!=e&&null!=n&&(null!=(s=mxCellPath.create(n))&&0<s.length)){var t=e,a=mxCellPath.create(t);if(s.length<a.length){t=n;var i=a,s=(a=s,i)}for(;null!=t;){if(i=this.getParent(t),0==s.indexOf(a+mxCellPath.PATH_SEPARATOR)&&null!=i)return t;a=mxCellPath.getParentPath(a),t=i}}return null},mxGraphModel.prototype.remove=function(e){return e==this.root?this.setRoot(null):null!=this.getParent(e)&&this.execute(new mxChildChange(this,null,e)),e},mxGraphModel.prototype.cellRemoved=function(e){if(null!=e&&null!=this.cells){for(var n=this.getChildCount(e)-1;0<=n;n--)this.cellRemoved(this.getChildAt(e,n));null!=this.cells&&null!=e.getId()&&delete this.cells[e.getId()]}},mxGraphModel.prototype.parentForCellChanged=function(e,n,t){var a=this.getParent(e);return null!=n?(n!=a||a.getIndex(e)!=t)&&n.insert(e,t):null!=a&&(t=a.getIndex(e),a.remove(t)),this.contains(a)||null==n?null==n&&this.cellRemoved(e):this.cellAdded(e),a},mxGraphModel.prototype.getChildCount=function(e){return null!=e?e.getChildCount():0},mxGraphModel.prototype.getChildAt=function(e,n){return null!=e?e.getChildAt(n):null},mxGraphModel.prototype.getChildren=function(e){return null!=e?e.children:null},mxGraphModel.prototype.getChildVertices=function(e){return this.getChildCells(e,!0,!1)},mxGraphModel.prototype.getChildEdges=function(e){return this.getChildCells(e,!1,!0)},mxGraphModel.prototype.getChildCells=function(e,n,t){n=null!=n&&n,t=null!=t&&t;for(var a=this.getChildCount(e),i=[],s=0;s<a;s++){var o=this.getChildAt(e,s);(!t&&!n||t&&this.isEdge(o)||n&&this.isVertex(o))&&i.push(o)}return i},mxGraphModel.prototype.getTerminal=function(e,n){return null!=e?e.getTerminal(n):null},mxGraphModel.prototype.setTerminal=function(e,n,t){var a=n!=this.getTerminal(e,t);return this.execute(new mxTerminalChange(this,e,n,t)),this.maintainEdgeParent&&a&&this.updateEdgeParent(e,this.getRoot()),n},mxGraphModel.prototype.setTerminals=function(e,n,t){this.beginUpdate();try{this.setTerminal(e,n,!0),this.setTerminal(e,t,!1)}finally{this.endUpdate()}},mxGraphModel.prototype.terminalForCellChanged=function(e,n,t){var a=this.getTerminal(e,t);return null!=n?n.insertEdge(e,t):null!=a&&a.removeEdge(e,t),a},mxGraphModel.prototype.getEdgeCount=function(e){return null!=e?e.getEdgeCount():0},mxGraphModel.prototype.getEdgeAt=function(e,n){return null!=e?e.getEdgeAt(n):null},mxGraphModel.prototype.getDirectedEdgeCount=function(e,n,t){for(var a=0,i=this.getEdgeCount(e),s=0;s<i;s++){var o=this.getEdgeAt(e,s);o!=t&&this.getTerminal(o,n)==e&&a++}return a},mxGraphModel.prototype.getConnections=function(e){return this.getEdges(e,!0,!0,!1)},mxGraphModel.prototype.getIncomingEdges=function(e){return this.getEdges(e,!0,!1,!1)},mxGraphModel.prototype.getOutgoingEdges=function(e){return this.getEdges(e,!1,!0,!1)},mxGraphModel.prototype.getEdges=function(e,n,t,a){n=null==n||n,t=null==t||t,a=null==a||a;for(var i=this.getEdgeCount(e),s=[],o=0;o<i;o++){var r=this.getEdgeAt(e,o),l=this.getTerminal(r,!0),d=this.getTerminal(r,!1);(a&&l==d||l!=d&&(n&&d==e||t&&l==e))&&s.push(r)}return s},mxGraphModel.prototype.getEdgesBetween=function(e,n,t){t=null!=t&&t;var a=this.getEdgeCount(e),i=this.getEdgeCount(n),s=e,o=a;for(i<a&&(o=i,s=n),a=[],i=0;i<o;i++){var r=this.getEdgeAt(s,i),l=this.getTerminal(r,!0),d=this.getTerminal(r,!1);(l==e&&d==n||!t&&(d==e&&l==n))&&a.push(r)}return a},mxGraphModel.prototype.getOpposites=function(e,n,t,a){t=null==t||t,a=null==a||a;var i=[];if(null!=e)for(var s=0;s<e.length;s++){var o=this.getTerminal(e[s],!0),r=this.getTerminal(e[s],!1);o==n&&null!=r&&r!=n&&a?i.push(r):r==n&&null!=o&&o!=n&&t&&i.push(o)}return i},mxGraphModel.prototype.getTopmostCells=function(e){for(var n=[],t=0;t<e.length;t++){for(var a=e[t],i=!0,s=this.getParent(a);null!=s;){if(0<=mxUtils.indexOf(e,s)){i=!1;break}s=this.getParent(s)}i&&n.push(a)}return n},mxGraphModel.prototype.isVertex=function(e){return null!=e&&e.isVertex()},mxGraphModel.prototype.isEdge=function(e){return null!=e&&e.isEdge()},mxGraphModel.prototype.isConnectable=function(e){return null!=e&&e.isConnectable()},mxGraphModel.prototype.getValue=function(e){return null!=e?e.getValue():null},mxGraphModel.prototype.setValue=function(e,n){return this.execute(new mxValueChange(this,e,n)),n},mxGraphModel.prototype.valueForCellChanged=function(e,n){return e.valueChanged(n)},mxGraphModel.prototype.getGeometry=function(e,n){return null!=e?e.getGeometry():null},mxGraphModel.prototype.setGeometry=function(e,n){return n!=this.getGeometry(e)&&this.execute(new mxGeometryChange(this,e,n)),n},mxGraphModel.prototype.geometryForCellChanged=function(e,n){var t=this.getGeometry(e);return e.setGeometry(n),t},mxGraphModel.prototype.getStyle=function(e){return null!=e?e.getStyle():null},mxGraphModel.prototype.setStyle=function(e,n){return n!=this.getStyle(e)&&this.execute(new mxStyleChange(this,e,n)),n},mxGraphModel.prototype.styleForCellChanged=function(e,n){var t=this.getStyle(e);return e.setStyle(n),t},mxGraphModel.prototype.isCollapsed=function(e){return null!=e&&e.isCollapsed()},mxGraphModel.prototype.setCollapsed=function(e,n){return n!=this.isCollapsed(e)&&this.execute(new mxCollapseChange(this,e,n)),n},mxGraphModel.prototype.collapsedStateForCellChanged=function(e,n){var t=this.isCollapsed(e);return e.setCollapsed(n),t},mxGraphModel.prototype.isVisible=function(e){return null!=e&&e.isVisible()},mxGraphModel.prototype.setVisible=function(e,n){return n!=this.isVisible(e)&&this.execute(new mxVisibleChange(this,e,n)),n},mxGraphModel.prototype.visibleStateForCellChanged=function(e,n){var t=this.isVisible(e);return e.setVisible(n),t},mxGraphModel.prototype.execute=function(e){e.execute(),this.beginUpdate(),this.currentEdit.add(e),this.fireEvent(new mxEventObject(mxEvent.EXECUTE,"change",e)),this.fireEvent(new mxEventObject(mxEvent.EXECUTED,"change",e)),this.endUpdate()},mxGraphModel.prototype.beginUpdate=function(){this.updateLevel++,this.fireEvent(new mxEventObject(mxEvent.BEGIN_UPDATE)),1==this.updateLevel&&this.fireEvent(new mxEventObject(mxEvent.START_EDIT))},mxGraphModel.prototype.endUpdate=function(){if(this.updateLevel--,0==this.updateLevel&&this.fireEvent(new mxEventObject(mxEvent.END_EDIT)),!this.endingUpdate){this.endingUpdate=0==this.updateLevel,this.fireEvent(new mxEventObject(mxEvent.END_UPDATE,"edit",this.currentEdit));try{if(this.endingUpdate&&!this.currentEdit.isEmpty()){this.fireEvent(new mxEventObject(mxEvent.BEFORE_UNDO,"edit",this.currentEdit));var e=this.currentEdit;this.currentEdit=this.createUndoableEdit(),e.notify(),this.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",e))}}finally{this.endingUpdate=!1}}},mxGraphModel.prototype.createUndoableEdit=function(){var e=new mxUndoableEdit(this,!0);return e.notify=function(){e.source.fireEvent(new mxEventObject(mxEvent.CHANGE,"edit",e,"changes",e.changes)),e.source.fireEvent(new mxEventObject(mxEvent.NOTIFY,"edit",e,"changes",e.changes))},e},mxGraphModel.prototype.mergeChildren=function(e,n,t){t=null==t||t,this.beginUpdate();try{var a={};for(var i in this.mergeChildrenImpl(e,n,t,a),a){var s=a[i],o=this.getTerminal(s,!0);null!=o&&(o=a[mxCellPath.create(o)],this.setTerminal(s,o,!0)),null!=(o=this.getTerminal(s,!1))&&(o=a[mxCellPath.create(o)],this.setTerminal(s,o,!1))}}finally{this.endUpdate()}},mxGraphModel.prototype.mergeChildrenImpl=function(e,n,t,a){this.beginUpdate();try{for(var i=e.getChildCount(),s=0;s<i;s++){var o=e.getChildAt(s);if("function"==typeof o.getId){var r=o.getId(),l=null==r||this.isEdge(o)&&t?null:this.getCell(r);if(null==l){var d=o.clone();d.setId(r),d.setTerminal(o.getTerminal(!0),!0),d.setTerminal(o.getTerminal(!1),!1),l=n.insert(d),this.cellAdded(l)}a[mxCellPath.create(o)]=l,this.mergeChildrenImpl(o,l,t,a)}}}finally{this.endUpdate()}},mxGraphModel.prototype.getParents=function(e){var n=[];if(null!=e)for(var t={},a=0;a<e.length;a++){var i=this.getParent(e[a]);if(null!=i){var s=mxCellPath.create(i);null==t[s]&&(t[s]=i,n.push(i))}}return n},mxGraphModel.prototype.cloneCell=function(e){return null!=e?this.cloneCells([e],!0)[0]:null},mxGraphModel.prototype.cloneCells=function(e,n){for(var t={},a=[],i=0;i<e.length;i++)null!=e[i]?a.push(this.cloneCellImpl(e[i],t,n)):a.push(null);for(i=0;i<a.length;i++)null!=a[i]&&this.restoreClone(a[i],e[i],t);return a},mxGraphModel.prototype.cloneCellImpl=function(e,n,t){var a=this.cellCloned(e);if(n[mxObjectIdentity.get(e)]=a,t){t=this.getChildCount(e);for(var i=0;i<t;i++){var s=this.cloneCellImpl(this.getChildAt(e,i),n,!0);a.insert(s)}}return a},mxGraphModel.prototype.cellCloned=function(e){return e.clone()},mxGraphModel.prototype.restoreClone=function(e,n,t){null!=(a=this.getTerminal(n,!0))&&(null!=(a=t[mxObjectIdentity.get(a)])&&a.insertEdge(e,!0)),null!=(a=this.getTerminal(n,!1))&&(null!=(a=t[mxObjectIdentity.get(a)])&&a.insertEdge(e,!1));for(var a=this.getChildCount(e),i=0;i<a;i++)this.restoreClone(this.getChildAt(e,i),this.getChildAt(n,i),t)},mxRootChange.prototype.execute=function(){this.root=this.previous,this.previous=this.model.rootChanged(this.previous)},mxChildChange.prototype.execute=function(){var e=this.model.getParent(this.child),n=null!=e?e.getIndex(this.child):0;null==this.previous&&this.connect(this.child,!1),e=this.model.parentForCellChanged(this.child,this.previous,this.previousIndex),null!=this.previous&&this.connect(this.child,!0),this.parent=this.previous,this.previous=e,this.index=this.previousIndex,this.previousIndex=n},mxChildChange.prototype.connect=function(e,n){n=null==n||n;var t=e.getTerminal(!0),a=e.getTerminal(!1);for(null!=t&&(n?this.model.terminalForCellChanged(e,t,!0):this.model.terminalForCellChanged(e,null,!0)),null!=a&&(n?this.model.terminalForCellChanged(e,a,!1):this.model.terminalForCellChanged(e,null,!1)),e.setTerminal(t,!0),e.setTerminal(a,!1),t=this.model.getChildCount(e),a=0;a<t;a++)this.connect(this.model.getChildAt(e,a),n)},mxTerminalChange.prototype.execute=function(){this.terminal=this.previous,this.previous=this.model.terminalForCellChanged(this.cell,this.previous,this.source)},mxValueChange.prototype.execute=function(){this.value=this.previous,this.previous=this.model.valueForCellChanged(this.cell,this.previous)},mxStyleChange.prototype.execute=function(){this.style=this.previous,this.previous=this.model.styleForCellChanged(this.cell,this.previous)},mxGeometryChange.prototype.execute=function(){this.geometry=this.previous,this.previous=this.model.geometryForCellChanged(this.cell,this.previous)},mxCollapseChange.prototype.execute=function(){this.collapsed=this.previous,this.previous=this.model.collapsedStateForCellChanged(this.cell,this.previous)},mxVisibleChange.prototype.execute=function(){this.visible=this.previous,this.previous=this.model.visibleStateForCellChanged(this.cell,this.previous)},mxCellAttributeChange.prototype.execute=function(){var e=this.cell.getAttribute(this.attribute);null==this.previous?this.cell.value.removeAttribute(this.attribute):this.cell.setAttribute(this.attribute,this.previous),this.previous=e},mxCell.prototype.id=null,mxCell.prototype.value=null,mxCell.prototype.geometry=null,mxCell.prototype.style=null,mxCell.prototype.vertex=!1,mxCell.prototype.edge=!1,mxCell.prototype.connectable=!0,mxCell.prototype.visible=!0,mxCell.prototype.collapsed=!1,mxCell.prototype.parent=null,mxCell.prototype.source=null,mxCell.prototype.target=null,mxCell.prototype.children=null,mxCell.prototype.edges=null,mxCell.prototype.mxTransient="id value parent source target children edges".split(" "),mxCell.prototype.getId=function(){return this.id},mxCell.prototype.setId=function(e){this.id=e},mxCell.prototype.getValue=function(){return this.value},mxCell.prototype.setValue=function(e){this.value=e},mxCell.prototype.valueChanged=function(e){var n=this.getValue();return this.setValue(e),n},mxCell.prototype.getGeometry=function(){return this.geometry},mxCell.prototype.setGeometry=function(e){this.geometry=e},mxCell.prototype.getStyle=function(){return this.style},mxCell.prototype.setStyle=function(e){this.style=e},mxCell.prototype.isVertex=function(){return this.vertex},mxCell.prototype.setVertex=function(e){this.vertex=e},mxCell.prototype.isEdge=function(){return this.edge},mxCell.prototype.setEdge=function(e){this.edge=e},mxCell.prototype.isConnectable=function(){return this.connectable},mxCell.prototype.setConnectable=function(e){this.connectable=e},mxCell.prototype.isVisible=function(){return this.visible},mxCell.prototype.setVisible=function(e){this.visible=e},mxCell.prototype.isCollapsed=function(){return this.collapsed},mxCell.prototype.setCollapsed=function(e){this.collapsed=e},mxCell.prototype.getParent=function(){return this.parent},mxCell.prototype.setParent=function(e){this.parent=e},mxCell.prototype.getTerminal=function(e){return e?this.source:this.target},mxCell.prototype.setTerminal=function(e,n){return n?this.source=e:this.target=e,e},mxCell.prototype.getChildCount=function(){return null==this.children?0:this.children.length},mxCell.prototype.getIndex=function(e){return mxUtils.indexOf(this.children,e)},mxCell.prototype.getChildAt=function(e){return null==this.children?null:this.children[e]},mxCell.prototype.insert=function(e,n){return null!=e&&(null==n&&(n=this.getChildCount(),e.getParent()==this&&n--),e.removeFromParent(),e.setParent(this),null==this.children?(this.children=[],this.children.push(e)):this.children.splice(n,0,e)),e},mxCell.prototype.remove=function(e){var n=null;return null!=this.children&&0<=e&&(null!=(n=this.getChildAt(e))&&(this.children.splice(e,1),n.setParent(null))),n},mxCell.prototype.removeFromParent=function(){if(null!=this.parent){var e=this.parent.getIndex(this);this.parent.remove(e)}},mxCell.prototype.getEdgeCount=function(){return null==this.edges?0:this.edges.length},mxCell.prototype.getEdgeIndex=function(e){return mxUtils.indexOf(this.edges,e)},mxCell.prototype.getEdgeAt=function(e){return null==this.edges?null:this.edges[e]},mxCell.prototype.insertEdge=function(e,n){return null!=e&&(e.removeFromTerminal(n),e.setTerminal(this,n),null==this.edges||e.getTerminal(!n)!=this||mxUtils.indexOf(this.edges,e)<0)&&(null==this.edges&&(this.edges=[]),this.edges.push(e)),e},mxCell.prototype.removeEdge=function(e,n){if(null!=e){if(e.getTerminal(!n)!=this&&null!=this.edges){var t=this.getEdgeIndex(e);0<=t&&this.edges.splice(t,1)}e.setTerminal(null,n)}return e},mxCell.prototype.removeFromTerminal=function(e){var n=this.getTerminal(e);null!=n&&n.removeEdge(this,e)},mxCell.prototype.getAttribute=function(e,n){var t=this.getValue();return(null!=t&&t.nodeType==mxConstants.NODETYPE_ELEMENT?t.getAttribute(e):null)||n},mxCell.prototype.setAttribute=function(e,n){var t=this.getValue();null!=t&&t.nodeType==mxConstants.NODETYPE_ELEMENT&&t.setAttribute(e,n)},mxCell.prototype.clone=function(){var e=mxUtils.clone(this,this.mxTransient);return e.setValue(this.cloneValue()),e},mxCell.prototype.cloneValue=function(){var e=this.getValue();return null!=e&&("function"==typeof e.clone?e=e.clone():isNaN(e.nodeType)||(e=e.cloneNode(!0))),e},mxGeometry.prototype=new mxRectangle,mxGeometry.prototype.constructor=mxGeometry,mxGeometry.prototype.TRANSLATE_CONTROL_POINTS=!0,mxGeometry.prototype.alternateBounds=null,mxGeometry.prototype.sourcePoint=null,mxGeometry.prototype.targetPoint=null,mxGeometry.prototype.points=null,mxGeometry.prototype.offset=null,mxGeometry.prototype.relative=!1,mxGeometry.prototype.swap=function(){if(null!=this.alternateBounds){var e=new mxRectangle(this.x,this.y,this.width,this.height);this.x=this.alternateBounds.x,this.y=this.alternateBounds.y,this.width=this.alternateBounds.width,this.height=this.alternateBounds.height,this.alternateBounds=e}},mxGeometry.prototype.getTerminalPoint=function(e){return e?this.sourcePoint:this.targetPoint},mxGeometry.prototype.setTerminalPoint=function(e,n){return n?this.sourcePoint=e:this.targetPoint=e,e},mxGeometry.prototype.translate=function(e,n){if(this.clone(),this.relative||(this.x+=e,this.y+=n),null!=this.sourcePoint&&(this.sourcePoint.x+=e,this.sourcePoint.y+=n),null!=this.targetPoint&&(this.targetPoint.x+=e,this.targetPoint.y+=n),this.TRANSLATE_CONTROL_POINTS&&null!=this.points)for(var t=this.points.length,a=0;a<t;a++){var i=this.points[a];null!=i&&(i.x+=e,i.y+=n)}};var mxCellPath={PATH_SEPARATOR:".",create:function(e){var n="";if(null!=e)for(var t=e.getParent();null!=t;)n=t.getIndex(e)+mxCellPath.PATH_SEPARATOR+n,t=(e=t).getParent();return 1<(e=n.length)&&(n=n.substring(0,e-1)),n},getParentPath:function(e){if(null!=e){var n=e.lastIndexOf(mxCellPath.PATH_SEPARATOR);if(0<=n)return e.substring(0,n);if(0<e.length)return""}return null},resolve:function(e,n){var t=e;if(null!=n)for(var a=n.split(mxCellPath.PATH_SEPARATOR),i=0;i<a.length;i++)t=t.getChildAt(parseInt(a[i]));return t},compare:function(e,n){for(var t=Math.min(e.length,n.length),a=0,i=0;i<t;i++)if(e[i]!=n[i]){a=0==e[i].length||0==n[i].length?e[i]==n[i]?0:e[i]>n[i]?1:-1:(t=parseInt(e[i]))==(i=parseInt(n[i]))?0:i<t?1:-1;break}return 0==a&&((t=e.length)!=(i=n.length)&&(a=i<t?1:-1)),a}},mxPerimeter={RectanglePerimeter:function(e,n,t,a){n=e.getCenterX();var i=e.getCenterY(),s=Math.atan2(t.y-i,t.x-n),o=new mxPoint(0,0),r=Math.PI,l=Math.PI/2-s,d=Math.atan2(e.height,e.width);return s<-r+d||r-d<s?(o.x=e.x,o.y=i-e.width*Math.tan(s)/2):s<-d?(o.y=e.y,o.x=n-e.height*Math.tan(l)/2):s<d?(o.x=e.x+e.width,o.y=i+e.width*Math.tan(s)/2):(o.y=e.y+e.height,o.x=n+e.height*Math.tan(l)/2),a&&(t.x>=e.x&&t.x<=e.x+e.width?o.x=t.x:t.y>=e.y&&t.y<=e.y+e.height&&(o.y=t.y),t.x<e.x?o.x=e.x:t.x>e.x+e.width&&(o.x=e.x+e.width),t.y<e.y?o.y=e.y:t.y>e.y+e.height&&(o.y=e.y+e.height)),o},EllipsePerimeter:function(e,n,t,a){var i=e.x,s=e.y,o=e.width/2,r=e.height/2,l=i+o,d=s+r;n=t.x,t=t.y;var c=parseInt(n-l),m=parseInt(t-d);if(0==c&&0!=m)return new mxPoint(l,d+r*m/Math.abs(m));if(0==c&&0==m)return new mxPoint(n,t);if(a){if(s<=t&&t<=s+e.height)return e=t-d,e=Math.sqrt(o*o*(1-e*e/(r*r)))||0,n<=i&&(e=-e),new mxPoint(l+e,t);if(i<=n&&n<=i+e.width)return e=n-l,e=Math.sqrt(r*r*(1-e*e/(o*o)))||0,t<=s&&(e=-e),new mxPoint(n,d+e)}return d-=(i=m/c)*l,l=i*(o=(-(e=-2*l*(s=o*o*i*i+r*r))+(r=Math.sqrt(e*e-4*s*(o*o*i*i*l*l+r*r*l*l-o*o*r*r))))/(2*s))+d,d=i*(r=(-e-r)/(2*s))+d,i=Math.sqrt(Math.pow(o-n,2)+Math.pow(l-t,2)),n=Math.sqrt(Math.pow(r-n,2)+Math.pow(d-t,2)),s=t=0,s=i<n?(t=o,l):(t=r,d),new mxPoint(t,s)},RhombusPerimeter:function(e,n,t,a){n=e.x;var i=e.y,s=e.width,o=n+s/2,r=i+(e=e.height)/2,l=t.x;if(t=t.y,o==l)return new mxPoint(o,t<r?i:i+e);if(r==t)return new mxPoint(l<o?n:n+s,r);var d=o,c=r;return a&&(n<=l&&l<=n+s?d=l:i<=t&&t<=i+e&&(c=t)),l<o?t<r?mxUtils.intersection(l,t,d,c,o,i,n,r):mxUtils.intersection(l,t,d,c,o,i+e,n,r):t<r?mxUtils.intersection(l,t,d,c,o,i,n+s,r):mxUtils.intersection(l,t,d,c,o,i+e,n+s,r)},TrianglePerimeter:function(e,n,t,a){var i=(n=null!=n?n.style[mxConstants.STYLE_DIRECTION]:null)==mxConstants.DIRECTION_NORTH||n==mxConstants.DIRECTION_SOUTH,s=e.x,o=e.y,r=e.width,l=s+r/2,d=o+(e=e.height)/2,c=new mxPoint(s,o),m=new mxPoint(s+r,d),u=new mxPoint(s,o+e);n==mxConstants.DIRECTION_NORTH?(c=u,m=new mxPoint(l,o),u=new mxPoint(s+r,o+e)):n==mxConstants.DIRECTION_SOUTH?(m=new mxPoint(l,o+e),u=new mxPoint(s+r,o)):n==mxConstants.DIRECTION_WEST&&(c=new mxPoint(s+r,o),m=new mxPoint(s,d),u=new mxPoint(s+r,o+e));var p=t.x-l,g=t.y-d,v=(p=i?Math.atan2(p,g):Math.atan2(g,p),i?Math.atan2(r,e):Math.atan2(e,r));g=!1,g=n==mxConstants.DIRECTION_NORTH||n==mxConstants.DIRECTION_WEST?-v<p&&p<v:p<-Math.PI+v||p>Math.PI-v,v=null;return null==(v=g?a&&(i&&t.x>=c.x&&t.x<=u.x||!i&&t.y>=c.y&&t.y<=u.y)?i?new mxPoint(t.x,c.y):new mxPoint(c.x,t.y):n==mxConstants.DIRECTION_NORTH?new mxPoint(s+r/2+e*Math.tan(p)/2,o+e):n==mxConstants.DIRECTION_SOUTH?new mxPoint(s+r/2-e*Math.tan(p)/2,o):n==mxConstants.DIRECTION_WEST?new mxPoint(s+r,o+e/2+r*Math.tan(p)/2):new mxPoint(s,o+e/2-r*Math.tan(p)/2):(a&&(a=new mxPoint(l,d),t.y>=o&&t.y<=o+e?(a.x=i?l:n==mxConstants.DIRECTION_WEST?s+r:s,a.y=t.y):t.x>=s&&t.x<=s+r&&(a.x=t.x,a.y=i?n==mxConstants.DIRECTION_NORTH?o+e:o:d),l=a.x,d=a.y),i&&t.x<=s+r/2||!i&&t.y<=o+e/2?mxUtils.intersection(t.x,t.y,l,d,c.x,c.y,m.x,m.y):mxUtils.intersection(t.x,t.y,l,d,m.x,m.y,u.x,u.y)))&&(v=new mxPoint(l,d)),v}};function mxPrintPreview(e,n,t,a,i,s,o,r,l){this.graph=e,this.scale=null!=n?n:1/e.pageScale,this.border=null!=a?a:0,this.pageFormat=null!=t?t:e.pageFormat,this.title=null!=r?r:"Printer-friendly version",this.x0=null!=i?i:0,this.y0=null!=s?s:0,this.borderColor=o,this.pageSelector=null==l||l}function mxStylesheet(){this.styles={},this.putDefaultVertexStyle(this.createDefaultVertexStyle()),this.putDefaultEdgeStyle(this.createDefaultEdgeStyle())}function mxCellState(e,n,t){this.view=e,this.cell=n,this.style=t,this.origin=new mxPoint,this.absoluteOffset=new mxPoint}function mxGraphSelectionModel(e){this.graph=e,this.cells=[]}function mxSelectionChange(e,n,t){this.selectionModel=e,this.added=null!=n?n.slice():null,this.removed=null!=t?t.slice():null}function mxCellEditor(e){this.graph=e}function mxCellRenderer(){}mxPrintPreview.prototype.graph=null,mxPrintPreview.prototype.pageFormat=null,mxPrintPreview.prototype.scale=null,mxPrintPreview.prototype.border=0,mxPrintPreview.prototype.x0=0,mxPrintPreview.prototype.y0=0,mxPrintPreview.prototype.autoOrigin=!0,mxPrintPreview.prototype.printOverlays=!1,mxPrintPreview.prototype.borderColor=null,mxPrintPreview.prototype.title=null,mxPrintPreview.prototype.pageSelector=null,mxPrintPreview.prototype.wnd=null,mxPrintPreview.prototype.pageCount=0,mxPrintPreview.prototype.getWindow=function(){return this.wnd},mxPrintPreview.prototype.getDoctype=function(){var e="";return 8==document.documentMode&&(e='<meta http-equiv="X-UA-Compatible" content="IE=8">'),e},mxPrintPreview.prototype.open=function(e){var n=this.graph.cellRenderer.initializeOverlay,t=null;try{if(this.printOverlays&&(this.graph.cellRenderer.initializeOverlay=function(e,n){n.init(e.view.getDrawPane())}),null==this.wnd){this.wnd=window.open();var a=this.wnd.document,i=this.getDoctype();null!=i&&0<i.length&&a.writeln(i),a.writeln("<html>"),a.writeln("<head>"),this.writeHead(a,e),a.writeln("</head>"),a.writeln('<body class="mxPage">'),mxClient.link("stylesheet",mxClient.basePath+"/css/common.css",a),mxClient.IS_VML&&(a.namespaces.add("v","urn:schemas-microsoft-com:vml"),a.namespaces.add("o","urn:schemas-microsoft-com:office:office"),a.createStyleSheet().cssText="v\\:*{behavior:url(#default#VML)}o\\:*{behavior:url(#default#VML)}",mxClient.link("stylesheet",mxClient.basePath+"/css/explorer.css",a));var s=this.graph.getGraphBounds().clone(),o=this.graph.getView().getScale(),r=o/this.scale,l=this.graph.getView().getTranslate();this.autoOrigin||(this.x0=-l.x*this.scale,this.y0=-l.y*this.scale,s.width+=s.x,s.height+=s.y,s.x=0,this.border=s.y=0),s.width/=r,s.height/=r;var d=this.pageFormat.width-2*this.border,c=this.pageFormat.height-2*this.border,m=Math.max(1,Math.ceil((s.width+this.x0)/d)),u=Math.max(1,Math.ceil((s.height+this.y0)/c));this.pageCount=m*u;var p=mxUtils.bind(this,function(){if(this.pageSelector&&(1<u||1<m)){var e=this.createPageSelector(u,m);if(a.body.appendChild(e),mxClient.IS_IE){e.style.position="absolute";var n=function(){e.style.top=a.body.scrollTop+10+"px"};mxEvent.addListener(this.wnd,"scroll",function(e){n()}),mxEvent.addListener(this.wnd,"resize",function(e){n()})}}});if(e=function(e,n){if(null!=this.borderColor&&(e.style.borderColor=this.borderColor,e.style.borderStyle="solid",e.style.borderWidth="1px"),e.style.background="white",n&&(e.style.pageBreakAfter="always"),mxClient.IS_IE?(a.writeln(e.outerHTML),e.parentNode.removeChild(e)):(e.parentNode.removeChild(e),a.body.appendChild(e)),n){var t=a.createElement("hr");t.className="mxPageBreak",a.body.appendChild(t)}},null!=(f=this.getCoverPages(this.pageFormat.width,this.pageFormat.height)))for(var g=0;g<f.length;g++)e(f[g],!0);var v=this.getAppendices(this.pageFormat.width,this.pageFormat.height);for(g=0;g<u;g++)for(var h=g*c/this.scale-this.y0/this.scale+(s.y-l.y*o)/o,f=0;f<m;f++){if(null==this.wnd)return null;var b=f*d/this.scale-this.x0/this.scale+(s.x-l.x*o)/o,A=g*m+f+1;(t=this.renderPage(this.pageFormat.width,this.pageFormat.height,mxUtils.bind(this,function(e){this.addGraphFragment(-b,-h,this.scale,A,e)}))).setAttribute("id","mxPage-"+A),e(t,null!=v||g<u-1||f<m-1)}if(null!=v)for(g=0;g<v.length;g++)e(v[g],g<v.length);a.writeln("</body>"),a.writeln("</html>"),a.close(),p(),mxEvent.release(a.body)}this.wnd.focus()}catch(e){null!=t&&null!=t.parentNode&&t.parentNode.removeChild(t)}finally{this.graph.cellRenderer.initializeOverlay=n}return this.wnd},mxPrintPreview.prototype.writeHead=function(e,n){null!=this.title&&e.writeln("<title>"+this.title+"</title>"),e.writeln('<style type="text/css">'),e.writeln("@media print {"),e.writeln(" table.mxPageSelector { display: none; }"),e.writeln(" hr.mxPageBreak { display: none; }"),e.writeln("}"),e.writeln("@media screen {"),e.writeln(" table.mxPageSelector { position: fixed; right: 10px; top: 10px;font-family: Arial; font-size:10pt; border: solid 1px darkgray;background: white; border-collapse:collapse; }"),e.writeln(" table.mxPageSelector td { border: solid 1px gray; padding:4px; }"),e.writeln(" body.mxPage { background: gray; }"),e.writeln("}"),null!=n&&e.writeln(n),e.writeln("</style>")},mxPrintPreview.prototype.createPageSelector=function(e,n){var t=this.wnd.document,a=t.createElement("table");a.className="mxPageSelector",a.setAttribute("border","0");for(var i=t.createElement("tbody"),s=0;s<e;s++){for(var o=t.createElement("tr"),r=0;r<n;r++){var l=s*n+r+1,d=t.createElement("td");if(!mxClient.IS_NS||mxClient.IS_SF||mxClient.IS_GC){var c=t.createElement("a");c.setAttribute("href","#mxPage-"+l),mxUtils.write(c,l,t),d.appendChild(c)}else mxUtils.write(d,l,t);o.appendChild(d)}i.appendChild(o)}return a.appendChild(i),a},mxPrintPreview.prototype.renderPage=function(e,n,t){var a=document.createElement("div");try{a.style.width=e+"px",a.style.height=n+"px",a.style.overflow="hidden",a.style.pageBreakInside="avoid",a.style.position="relative";var i=document.createElement("div");i.style.top=this.border+"px",i.style.left=this.border+"px",i.style.width=e-2*this.border+"px",i.style.height=n-2*this.border+"px",i.style.overflow="hidden",this.graph.dialect==mxConstants.DIALECT_VML&&(i.style.position="absolute"),a.appendChild(i),document.body.appendChild(a),t(i)}catch(e){throw a.parentNode.removeChild(a),e}return a},mxPrintPreview.prototype.addGraphFragment=function(e,n,t,a,i){a=this.graph.getView();var s=this.graph.container;this.graph.container=i;var o=a.getCanvas(),r=a.getBackgroundPane(),l=a.getDrawPane(),d=a.getOverlayPane();this.graph.dialect==mxConstants.DIALECT_SVG?a.createSvg():this.graph.dialect==mxConstants.DIALECT_VML?a.createVml():a.createHtml();var c=a.isEventsEnabled();a.setEventsEnabled(!1);var m=this.graph.isEnabled();this.graph.setEnabled(!1);var u=a.getTranslate();a.translate=new mxPoint(e,n),e=null;try{var p=[this.graph.getModel().getRoot()];e=new mxTemporaryCellStates(a,t,p)}finally{if(mxClient.IS_IE)a.overlayPane.innerHTML="";else for(t=i.firstChild;null!=t;)p=t.nextSibling,"svg"==(n=t.nodeName.toLowerCase())?(t.setAttribute("width",parseInt(i.style.width)),t.setAttribute("height",parseInt(i.style.height))):"default"!=t.style.cursor&&"table"!=n&&t.parentNode.removeChild(t),t=p;a.overlayPane.parentNode.removeChild(a.overlayPane),this.graph.setEnabled(m),this.graph.container=s,a.canvas=o,a.backgroundPane=r,a.drawPane=l,a.overlayPane=d,a.translate=u,e.destroy(),a.setEventsEnabled(c)}},mxPrintPreview.prototype.getCoverPages=function(){return null},mxPrintPreview.prototype.getAppendices=function(){return null},mxPrintPreview.prototype.print=function(){var e=this.open();null!=e&&e.print()},mxPrintPreview.prototype.close=function(){null!=this.wnd&&(this.wnd.close(),this.wnd=null)},mxStylesheet.prototype.createDefaultVertexStyle=function(){var e={};return e[mxConstants.STYLE_SHAPE]=mxConstants.SHAPE_RECTANGLE,e[mxConstants.STYLE_PERIMETER]=mxPerimeter.RectanglePerimeter,e[mxConstants.STYLE_VERTICAL_ALIGN]=mxConstants.ALIGN_MIDDLE,e[mxConstants.STYLE_ALIGN]=mxConstants.ALIGN_CENTER,e[mxConstants.STYLE_FILLCOLOR]="#C3D9FF",e[mxConstants.STYLE_STROKECOLOR]="#6482B9",e[mxConstants.STYLE_FONTCOLOR]="#774400",e},mxStylesheet.prototype.createDefaultEdgeStyle=function(){var e={};return e[mxConstants.STYLE_SHAPE]=mxConstants.SHAPE_CONNECTOR,e[mxConstants.STYLE_ENDARROW]=mxConstants.ARROW_CLASSIC,e[mxConstants.STYLE_VERTICAL_ALIGN]=mxConstants.ALIGN_MIDDLE,e[mxConstants.STYLE_ALIGN]=mxConstants.ALIGN_CENTER,e[mxConstants.STYLE_STROKECOLOR]="#6482B9",e[mxConstants.STYLE_FONTCOLOR]="#446299",e},mxStylesheet.prototype.putDefaultVertexStyle=function(e){this.putCellStyle("defaultVertex",e)},mxStylesheet.prototype.putDefaultEdgeStyle=function(e){this.putCellStyle("defaultEdge",e)},mxStylesheet.prototype.getDefaultVertexStyle=function(){return this.styles.defaultVertex},mxStylesheet.prototype.getDefaultEdgeStyle=function(){return this.styles.defaultEdge},mxStylesheet.prototype.putCellStyle=function(e,n){this.styles[e]=n},mxStylesheet.prototype.getCellStyle=function(e,n){var t=n;if(null!=e&&0<e.length)for(var a=e.split(";"),i=(t=null!=t&&";"!=e.charAt(0)?mxUtils.clone(t):{},0);i<a.length;i++){var s=(o=a[i]).indexOf("=");if(0<=s){var o,r=o.substring(0,s);(o=o.substring(s+1))==mxConstants.NONE?delete t[r]:mxUtils.isNumeric(o)?t[r]=parseFloat(o):t[r]=o}else if(null!=(o=this.styles[o]))for(r in o)t[r]=o[r]}return t},mxCellState.prototype=new mxRectangle,mxCellState.prototype.constructor=mxCellState,mxCellState.prototype.view=null,mxCellState.prototype.cell=null,mxCellState.prototype.style=null,mxCellState.prototype.invalid=!0,mxCellState.prototype.invalidOrder=!1,mxCellState.prototype.orderChanged=!1,mxCellState.prototype.origin=null,mxCellState.prototype.absolutePoints=null,mxCellState.prototype.absoluteOffset=null,mxCellState.prototype.visibleSourceState=null,mxCellState.prototype.visibleTargetState=null,mxCellState.prototype.terminalDistance=0,mxCellState.prototype.length=0,mxCellState.prototype.segments=null,mxCellState.prototype.shape=null,mxCellState.prototype.text=null,mxCellState.prototype.getPerimeterBounds=function(e,n){if(e=e||0,n=null!=n?n:new mxRectangle(this.x,this.y,this.width,this.height),null!=this.shape&&null!=this.shape.stencil){var t=this.shape.stencil.computeAspect(this.style,n.x,n.y,n.width,n.height);n.x=t.x,n.y=t.y,n.width=this.shape.stencil.w0*t.width,n.height=this.shape.stencil.h0*t.height}return 0!=e&&n.grow(e),n},mxCellState.prototype.setAbsoluteTerminalPoint=function(e,n){n?(null==this.absolutePoints&&(this.absolutePoints=[]),0==this.absolutePoints.length?this.absolutePoints.push(e):this.absolutePoints[0]=e):null==this.absolutePoints?(this.absolutePoints=[],this.absolutePoints.push(null),this.absolutePoints.push(e)):1==this.absolutePoints.length?this.absolutePoints.push(e):this.absolutePoints[this.absolutePoints.length-1]=e},mxCellState.prototype.setCursor=function(e){null!=this.shape&&this.shape.setCursor(e),null!=this.text&&this.text.setCursor(e)},mxCellState.prototype.getVisibleTerminal=function(e){return null!=(e=this.getVisibleTerminalState(e))?e.cell:null},mxCellState.prototype.getVisibleTerminalState=function(e){return e?this.visibleSourceState:this.visibleTargetState},mxCellState.prototype.setVisibleTerminalState=function(e,n){n?this.visibleSourceState=e:this.visibleTargetState=e},mxCellState.prototype.destroy=function(){this.view.graph.cellRenderer.destroy(this)},mxCellState.prototype.clone=function(){var e=new mxCellState(this.view,this.cell,this.style);if(null!=this.absolutePoints){e.absolutePoints=[];for(var n=0;n<this.absolutePoints.length;n++)e.absolutePoints[n]=this.absolutePoints[n].clone()}return null!=this.origin&&(e.origin=this.origin.clone()),null!=this.absoluteOffset&&(e.absoluteOffset=this.absoluteOffset.clone()),null!=this.boundingBox&&(e.boundingBox=this.boundingBox.clone()),e.terminalDistance=this.terminalDistance,e.segments=this.segments,e.length=this.length,e.x=this.x,e.y=this.y,e.width=this.width,e.height=this.height,e},mxGraphSelectionModel.prototype=new mxEventSource,mxGraphSelectionModel.prototype.constructor=mxGraphSelectionModel,mxGraphSelectionModel.prototype.doneResource="none"!=mxClient.language?"done":"",mxGraphSelectionModel.prototype.updatingSelectionResource="none"!=mxClient.language?"updatingSelection":"",mxGraphSelectionModel.prototype.graph=null,mxGraphSelectionModel.prototype.singleSelection=!1,mxGraphSelectionModel.prototype.isSingleSelection=function(){return this.singleSelection},mxGraphSelectionModel.prototype.setSingleSelection=function(e){this.singleSelection=e},mxGraphSelectionModel.prototype.isSelected=function(e){return null!=e&&0<=mxUtils.indexOf(this.cells,e)},mxGraphSelectionModel.prototype.isEmpty=function(){return 0==this.cells.length},mxGraphSelectionModel.prototype.clear=function(){this.changeSelection(null,this.cells)},mxGraphSelectionModel.prototype.setCell=function(e){null!=e&&this.setCells([e])},mxGraphSelectionModel.prototype.setCells=function(e){if(null!=e){this.singleSelection&&(e=[this.getFirstSelectableCell(e)]);for(var n=[],t=0;t<e.length;t++)this.graph.isCellSelectable(e[t])&&n.push(e[t]);this.changeSelection(n,this.cells)}},mxGraphSelectionModel.prototype.getFirstSelectableCell=function(e){if(null!=e)for(var n=0;n<e.length;n++)if(this.graph.isCellSelectable(e[n]))return e[n];return null},mxGraphSelectionModel.prototype.addCell=function(e){null!=e&&this.addCells([e])},mxGraphSelectionModel.prototype.addCells=function(e){if(null!=e){var n=null;this.singleSelection&&(n=this.cells,e=[this.getFirstSelectableCell(e)]);for(var t=[],a=0;a<e.length;a++)!this.isSelected(e[a])&&this.graph.isCellSelectable(e[a])&&t.push(e[a]);this.changeSelection(t,n)}},mxGraphSelectionModel.prototype.removeCell=function(e){null!=e&&this.removeCells([e])},mxGraphSelectionModel.prototype.removeCells=function(e){if(null!=e){for(var n=[],t=0;t<e.length;t++)this.isSelected(e[t])&&n.push(e[t]);this.changeSelection(null,n)}},mxGraphSelectionModel.prototype.changeSelection=function(e,n){if(null!=e&&0<e.length&&null!=e[0]||null!=n&&0<n.length&&null!=n[0]){var t=new mxSelectionChange(this,e,n);t.execute();var a=new mxUndoableEdit(this,!1);a.add(t),this.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",a))}},mxGraphSelectionModel.prototype.cellAdded=function(e){null!=e&&!this.isSelected(e)&&this.cells.push(e)},mxGraphSelectionModel.prototype.cellRemoved=function(e){null!=e&&(0<=(e=mxUtils.indexOf(this.cells,e))&&this.cells.splice(e,1))},mxSelectionChange.prototype.execute=function(){var e=mxLog.enter("mxSelectionChange.execute");if(window.status=mxResources.get(this.selectionModel.updatingSelectionResource)||this.selectionModel.updatingSelectionResource,null!=this.removed)for(var n=0;n<this.removed.length;n++)this.selectionModel.cellRemoved(this.removed[n]);if(null!=this.added)for(n=0;n<this.added.length;n++)this.selectionModel.cellAdded(this.added[n]);n=this.added,this.added=this.removed,this.removed=n,window.status=mxResources.get(this.selectionModel.doneResource)||this.selectionModel.doneResource,mxLog.leave("mxSelectionChange.execute",e),this.selectionModel.fireEvent(new mxEventObject(mxEvent.CHANGE,"added",this.added,"removed",this.removed))},mxCellEditor.prototype.graph=null,mxCellEditor.prototype.textarea=null,mxCellEditor.prototype.editingCell=null,mxCellEditor.prototype.trigger=null,mxCellEditor.prototype.modified=!1,mxCellEditor.prototype.autoSize=!0,mxCellEditor.prototype.emptyLabelText="",mxCellEditor.prototype.textNode="",mxCellEditor.prototype.init=function(){this.textarea=document.createElement("textarea"),this.textarea.className="mxCellEditor",this.textarea.style.position="absolute",this.textarea.style.overflow="visible",this.textarea.setAttribute("cols","20"),this.textarea.setAttribute("rows","4"),mxClient.IS_NS&&(this.textarea.style.resize="none"),mxEvent.addListener(this.textarea,"blur",mxUtils.bind(this,function(e){this.focusLost()})),mxEvent.addListener(this.textarea,"keydown",mxUtils.bind(this,function(e){mxEvent.isConsumed(e)||(113==e.keyCode||this.graph.isEnterStopsCellEditing()&&13==e.keyCode&&!mxEvent.isControlDown(e)&&!mxEvent.isShiftDown(e)?(this.graph.stopEditing(!1),mxEvent.consume(e)):27==e.keyCode?(this.graph.stopEditing(!0),mxEvent.consume(e)):(this.clearOnChange&&(this.clearOnChange=!1,this.textarea.value=""),this.setModified(!0)))})),mxEvent.addListener(this.textarea,"keypress",mxUtils.bind(this,function(e){this.autoSize&&!mxEvent.isConsumed(e)&&setTimeout(mxUtils.bind(this,function(){this.resize()}),0)}))},mxCellEditor.prototype.resize=function(){if(null!=this.textDiv){var e=this.graph.getView().getState(this.editingCell),n=this.graph.isLabelClipped(e.cell),t=this.graph.isWrapping(e.cell);if(this.graph.getModel().isEdge(e.cell))this.bounds.x=e.absoluteOffset.x,this.bounds.y=e.absoluteOffset.y,this.bounds.width=0,this.bounds.height=0;else if(null!=this.bounds){this.bounds.x=e.x,this.bounds.y=e.y,this.bounds.width=e.width,this.bounds.height=e.height,(a=mxUtils.getValue(e.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER))==mxConstants.ALIGN_LEFT?this.bounds.x-=e.width:a==mxConstants.ALIGN_RIGHT&&(this.bounds.x+=e.width),(a=mxUtils.getValue(e.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE))==mxConstants.ALIGN_TOP?this.bounds.y-=e.height:a==mxConstants.ALIGN_BOTTOM&&(this.bounds.y+=e.height)}"\n"!=(a=this.textarea.value).charAt(a.length-1)&&""!=a||(a+=" "),a=mxUtils.htmlEntities(a,!1),t?(this.textDiv.style.whiteSpace="normal",this.textDiv.style.width=this.bounds.width+"px"):a=a.replace(/ /g," "),a=a.replace(/\n/g,"<br/>"),this.textDiv.innerHTML=a;var a=this.textDiv.offsetWidth+30,i=this.textDiv.offsetHeight+16;a=Math.max(a,40),i=Math.max(i,20);n&&(a=Math.min(this.bounds.width-4,a),i=Math.min(this.bounds.height,i));var s=null!=e.text?e.text.margin:null;null==s&&(s=mxUtils.getValue(e.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),e=mxUtils.getValue(e.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE),s=mxUtils.getAlignmentAsPoint(s,e)),null!=s&&(!n&&t||(this.textarea.style.left=Math.max(0,Math.round(this.bounds.x-s.x*this.bounds.width+s.x*a)-3)+"px"),this.textarea.style.top=Math.max(0,Math.round(this.bounds.y-s.y*this.bounds.height+s.y*i)+4)+"px"),!n&&t||(this.textarea.style.width=a+"px"),this.textarea.style.height=i+"px"}},mxCellEditor.prototype.isModified=function(){return this.modified},mxCellEditor.prototype.setModified=function(e){this.modified=e},mxCellEditor.prototype.focusLost=function(){this.stopEditing(!this.graph.isInvokesStopCellEditing())},mxCellEditor.prototype.startEditing=function(e,n){null==this.textarea&&this.init(),this.stopEditing(!0);var t=this.graph.getView().getState(e);if(null!=t){this.editingCell=e,this.trigger=n,(this.textNode=null)!=t.text&&this.isHideLabel(t)&&(this.textNode=t.text.node,this.textNode.style.visibility="hidden");var a=this.graph.getView().scale,i=(a=mxUtils.getValue(t.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE)*a,mxUtils.getValue(t.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY)),s=mxUtils.getValue(t.style,mxConstants.STYLE_FONTCOLOR,"black"),o=mxUtils.getValue(t.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),r=(mxUtils.getValue(t.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD,l=(mxUtils.getValue(t.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,d=(mxUtils.getValue(t.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE;this.textarea.style.fontSize=Math.round(a)+"px",this.textarea.style.lineHeight=Math.round(a*mxConstants.LINE_HEIGHT)+"px",this.textarea.style.fontFamily=i,this.textarea.style.textAlign=o,this.textarea.style.color=s,this.textarea.style.fontWeight=r?"bold":"normal",this.textarea.style.fontStyle=l?"italic":"",this.textarea.style.textDecoration=d?"underline":"",this.textarea.style.overflow="auto",this.textarea.style.outline="none",this.bounds=a=this.getEditorBounds(t),this.textarea.style.left=a.x+"px",this.textarea.style.top=a.y+"px",this.textarea.style.width=a.width+"px",this.textarea.style.height=a.height+"px",this.textarea.style.zIndex=5,null==(t=this.getInitialValue(t,n))||0==t.length?(t=this.getEmptyLabelText(),this.clearOnChange=!0):this.clearOnChange=!1,this.setModified(!1),this.textarea.value=t,this.graph.container.appendChild(this.textarea),"none"!=this.textarea.style.display&&(this.autoSize&&(this.textDiv=this.createTextDiv(),document.body.appendChild(this.textDiv),this.resize()),this.textarea.focus(),this.textarea.select())}},mxCellEditor.prototype.createTextDiv=function(){var e=document.createElement("div"),n=e.style;return n.position="absolute",n.whiteSpace="nowrap",n.visibility="hidden",n.display=mxClient.IS_QUIRKS?"inline":"inline-block",n.zoom="1",n.verticalAlign="top",n.lineHeight=this.textarea.style.lineHeight,n.fontSize=this.textarea.style.fontSize,n.fontFamily=this.textarea.style.fontFamily,n.fontWeight=this.textarea.style.fontWeight,n.textAlign=this.textarea.style.textAlign,n.fontStyle=this.textarea.style.fontStyle,n.textDecoration=this.textarea.style.textDecoration,e},mxCellEditor.prototype.stopEditing=function(e){null!=this.editingCell&&(null!=this.textNode&&(this.textNode.style.visibility="visible",this.textNode=null),!e&&this.isModified()&&this.graph.labelChanged(this.editingCell,this.getCurrentValue(),this.trigger),null!=this.textDiv&&(document.body.removeChild(this.textDiv),this.textDiv=null),this.bounds=this.trigger=this.editingCell=null,this.textarea.blur(),this.textarea.parentNode.removeChild(this.textarea))},mxCellEditor.prototype.getInitialValue=function(e,n){return this.graph.getEditingValue(e.cell,n)},mxCellEditor.prototype.getCurrentValue=function(){return this.textarea.value.replace(/\r/g,"")},mxCellEditor.prototype.isHideLabel=function(e){return!0},mxCellEditor.prototype.getMinimumSize=function(e){var n=this.graph.getView().scale;return new mxRectangle(0,0,null==e.text?30:e.text.size*n+20,"left"==this.textarea.style.textAlign?120:40)},mxCellEditor.prototype.getEditorBounds=function(e){var n=this.graph.getModel().isEdge(e.cell),t=this.graph.getView().scale,a=(i=this.getMinimumSize(e)).width,i=i.height,s=parseInt(e.style[mxConstants.STYLE_SPACING]||2)*t,o=parseInt(e.style[mxConstants.STYLE_SPACING_TOP]||0)*t+s,r=parseInt(e.style[mxConstants.STYLE_SPACING_RIGHT]||0)*t+s,l=parseInt(e.style[mxConstants.STYLE_SPACING_BOTTOM]||0)*t+s;t=parseInt(e.style[mxConstants.STYLE_SPACING_LEFT]||0)*t+s,r=new mxRectangle(e.x,e.y,Math.max(a,e.width-t-r),Math.max(i,e.height-o-l));return n?(r.x=e.absoluteOffset.x,r.y=e.absoluteOffset.y,null!=e.text&&null!=e.text.boundingBox&&(0<e.text.boundingBox.x&&(r.x=e.text.boundingBox.x),0<e.text.boundingBox.y&&(r.y=e.text.boundingBox.y))):null!=e.text&&null!=e.text.boundingBox&&(r.x=Math.min(r.x,e.text.boundingBox.x),r.y=Math.min(r.y,e.text.boundingBox.y)),r.x+=t,r.y+=o,null!=e.text&&null!=e.text.boundingBox&&(n?(r.width=Math.max(a,e.text.boundingBox.width),r.height=Math.max(i,e.text.boundingBox.height)):(r.width=Math.max(r.width,e.text.boundingBox.width),r.height=Math.max(r.height,e.text.boundingBox.height))),this.graph.getModel().isVertex(e.cell)&&((n=mxUtils.getValue(e.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER))==mxConstants.ALIGN_LEFT?r.x-=e.width:n==mxConstants.ALIGN_RIGHT&&(r.x+=e.width),(n=mxUtils.getValue(e.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE))==mxConstants.ALIGN_TOP?r.y-=e.height:n==mxConstants.ALIGN_BOTTOM&&(r.y+=e.height)),r},mxCellEditor.prototype.getEmptyLabelText=function(e){return this.emptyLabelText},mxCellEditor.prototype.getEditingCell=function(){return this.editingCell},mxCellEditor.prototype.destroy=function(){null!=this.textarea&&(mxEvent.release(this.textarea),null!=this.textarea.parentNode&&this.textarea.parentNode.removeChild(this.textarea),this.textarea=null)},mxCellRenderer.prototype.defaultEdgeShape=mxConnector,mxCellRenderer.prototype.defaultVertexShape=mxRectangleShape,mxCellRenderer.prototype.defaultTextShape=mxText,mxCellRenderer.prototype.legacyControlPosition=!0,mxCellRenderer.prototype.defaultShapes={},mxCellRenderer.registerShape=function(e,n){mxCellRenderer.prototype.defaultShapes[e]=n},mxCellRenderer.registerShape(mxConstants.SHAPE_RECTANGLE,mxRectangleShape),mxCellRenderer.registerShape(mxConstants.SHAPE_ELLIPSE,mxEllipse),mxCellRenderer.registerShape(mxConstants.SHAPE_RHOMBUS,mxRhombus),mxCellRenderer.registerShape(mxConstants.SHAPE_CYLINDER,mxCylinder),mxCellRenderer.registerShape(mxConstants.SHAPE_CONNECTOR,mxConnector),mxCellRenderer.registerShape(mxConstants.SHAPE_ACTOR,mxActor),mxCellRenderer.registerShape(mxConstants.SHAPE_TRIANGLE,mxTriangle),mxCellRenderer.registerShape(mxConstants.SHAPE_HEXAGON,mxHexagon),mxCellRenderer.registerShape(mxConstants.SHAPE_CLOUD,mxCloud),mxCellRenderer.registerShape(mxConstants.SHAPE_LINE,mxLine),mxCellRenderer.registerShape(mxConstants.SHAPE_ARROW,mxArrow),mxCellRenderer.registerShape(mxConstants.SHAPE_DOUBLE_ELLIPSE,mxDoubleEllipse),mxCellRenderer.registerShape(mxConstants.SHAPE_SWIMLANE,mxSwimlane),mxCellRenderer.registerShape(mxConstants.SHAPE_IMAGE,mxImageShape),mxCellRenderer.registerShape(mxConstants.SHAPE_LABEL,mxLabel),mxCellRenderer.prototype.initialize=function(e,n){var t=e.view.graph.getModel();null!=e.view.graph.container&&null==e.shape&&e.cell!=e.view.currentRoot&&(t.isVertex(e.cell)||t.isEdge(e.cell))&&(this.createShape(e),null==e.shape||null!=n&&!n||(this.initializeShape(e),e.view.graph.ordered||t.isEdge(e.cell)?e.invalidOrder=!0:e.view.graph.keepEdgesInForeground&&null!=this.firstEdge&&(this.firstEdge.parentNode==e.shape.node.parentNode?this.insertState(e,this.firstEdge):this.firstEdge=null),e.shape.scale=e.view.scale,this.createCellOverlays(e),this.installListeners(e)))},mxCellRenderer.prototype.initializeShape=function(e){e.shape.init(e.view.getDrawPane())},mxCellRenderer.prototype.getPreviousStateInContainer=function(e,n){for(var t=null,a=e.view.graph,i=a.getModel(),s=e.cell,o=i.getParent(s);null!=o&&null==t;)t=this.findPreviousStateInContainer(a,o,s,n),s=o,o=i.getParent(s);return t},mxCellRenderer.prototype.findPreviousStateInContainer=function(e,n,t,a){var i=null,s=e.getModel();for(t=null!=t?n.getIndex(t)-1:s.getChildCount(n)-1;0<=t&&null==i;t--)i=this.findPreviousStateInContainer(e,s.getChildAt(n,t),null,a);return null!=i||(null==(i=e.view.getState(n))||null!=i.shape&&null!=i.shape.node&&i.shape.node.parentNode==a)||(i=null),i},mxCellRenderer.prototype.order=function(e){var n=e.shape.node.parentNode,t=this.getPreviousStateInContainer(e,n),a=n.firstChild;null!=t&&(a=t.shape.node,null!=t.text&&null!=t.text.node&&t.text.node.parentNode==n&&(a=t.text.node),a=a.nextSibling),this.insertState(e,a)},mxCellRenderer.prototype.orderEdge=function(e){var n=(t=e.view).graph.getModel();if(t.graph.keepEdgesInForeground)null!=this.firstEdge&&null!=this.firstEdge.parentNode&&this.firstEdge.parentNode==e.shape.node.parentNode||(this.firstEdge=e.shape.node);else if(t.graph.keepEdgesInBackground){var t,a=e.shape.node,i=a.parentNode;n=n.getParent(e.cell);null!=(i=null!=(t=t.getState(n))&&null!=t.shape&&null!=t.shape.node?t.shape.node.nextSibling:i.firstChild)&&i!=a&&this.insertState(e,i)}},mxCellRenderer.prototype.insertState=function(e,n){e.shape.node.parentNode.insertBefore(e.shape.node,n),null!=e.text&&null!=e.text.node&&e.text.node.parentNode==e.shape.node.parentNode&&e.shape.node.parentNode.insertBefore(e.text.node,e.shape.node.nextSibling)},mxCellRenderer.prototype.createShape=function(e){if(null!=e.style){var n=mxStencilRegistry.getStencil(e.style[mxConstants.STYLE_SHAPE]);null!=n?e.shape=new mxShape(n):(n=this.getShapeConstructor(e),e.shape=new n),e.shape.points=e.absolutePoints,e.shape.bounds=new mxRectangle(e.x,e.y,e.width,e.height),e.shape.dialect=e.view.graph.dialect,this.configureShape(e)}},mxCellRenderer.prototype.getShape=function(e){return null!=e?mxCellRenderer.prototype.defaultShapes[e]:null},mxCellRenderer.prototype.getShapeConstructor=function(e){var n=this.getShape(e.style[mxConstants.STYLE_SHAPE]);return null==n&&(n=e.view.graph.getModel().isEdge(e.cell)?this.defaultEdgeShape:this.defaultVertexShape),n},mxCellRenderer.prototype.configureShape=function(e){e.shape.apply(e),e.shape.image=e.view.graph.getImage(e),e.shape.indicatorShape=this.getShape(e.view.graph.getIndicatorShape(e)),e.shape.indicatorColor=e.view.graph.getIndicatorColor(e),e.shape.indicatorGradientColor=e.view.graph.getIndicatorGradientColor(e),e.shape.indicatorDirection=e.style[mxConstants.STYLE_INDICATOR_DIRECTION],e.shape.indicatorImage=e.view.graph.getIndicatorImage(e),this.postConfigureShape(e)},mxCellRenderer.prototype.postConfigureShape=function(e){null!=e.shape&&(this.resolveColor(e,"indicatorColor",mxConstants.STYLE_FILLCOLOR),this.resolveColor(e,"indicatorGradientColor",mxConstants.STYLE_GRADIENTCOLOR),this.resolveColor(e,"fill",mxConstants.STYLE_FILLCOLOR),this.resolveColor(e,"stroke",mxConstants.STYLE_STROKECOLOR),this.resolveColor(e,"gradient",mxConstants.STYLE_GRADIENTCOLOR))},mxCellRenderer.prototype.resolveColor=function(e,n,t){var a=e.shape[n],i=e.view.graph,s=null;"inherit"==a?s=i.model.getParent(e.cell):"swimlane"==a?(s=null!=i.model.getTerminal(e.cell,!1)?i.model.getTerminal(e.cell,!1):e.cell,s=i.getSwimlane(s),t=i.swimlaneIndicatorColorAttribute):"indicated"==a&&(e.shape[n]=e.shape.indicatorColor),null!=s&&(a=i.getView().getState(s),(e.shape[n]=null)!=a&&(e.shape[n]=null!=a.shape&&"indicatorColor"!=n?a.shape[n]:a.style[t]))},mxCellRenderer.prototype.getLabelValue=function(e){return e.view.graph.getLabel(e.cell)},mxCellRenderer.prototype.createLabel=function(t,e){var a=t.view.graph;if(a.getModel().isEdge(t.cell),0<t.style[mxConstants.STYLE_FONTSIZE]||null==t.style[mxConstants.STYLE_FONTSIZE]){var n=a.isHtmlLabel(t.cell)||null!=e&&mxUtils.isNode(e);t.text=new this.defaultTextShape(e,new mxRectangle,t.style[mxConstants.STYLE_ALIGN]||mxConstants.ALIGN_CENTER,a.getVerticalAlign(t),t.style[mxConstants.STYLE_FONTCOLOR],t.style[mxConstants.STYLE_FONTFAMILY],t.style[mxConstants.STYLE_FONTSIZE],t.style[mxConstants.STYLE_FONTSTYLE],t.style[mxConstants.STYLE_SPACING],t.style[mxConstants.STYLE_SPACING_TOP],t.style[mxConstants.STYLE_SPACING_RIGHT],t.style[mxConstants.STYLE_SPACING_BOTTOM],t.style[mxConstants.STYLE_SPACING_LEFT],t.style[mxConstants.STYLE_HORIZONTAL],t.style[mxConstants.STYLE_LABEL_BACKGROUNDCOLOR],t.style[mxConstants.STYLE_LABEL_BORDERCOLOR],a.isWrapping(t.cell)&&a.isHtmlLabel(t.cell),a.isLabelClipped(t.cell),t.style[mxConstants.STYLE_OVERFLOW],t.style[mxConstants.STYLE_LABEL_PADDING]),t.text.opacity=mxUtils.getValue(t.style,mxConstants.STYLE_TEXT_OPACITY,100),t.text.dialect=n?mxConstants.DIALECT_STRICTHTML:t.view.graph.dialect,t.text.state=t,this.initializeLabel(t);var i=!1,s=function(e){var n=t;return(mxClient.IS_TOUCH||i)&&(n=mxEvent.getClientX(e),e=mxEvent.getClientY(e),e=mxUtils.convertPoint(a.container,n,e),n=a.view.getState(a.getCellAt(e.x,e.y))),n};mxEvent.addGestureListeners(t.text.node,mxUtils.bind(this,function(e){this.isLabelEvent(t,e)&&(a.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,t)),i=a.dialect!=mxConstants.DIALECT_SVG&&"IMG"==mxEvent.getSource(e).nodeName)}),mxUtils.bind(this,function(e){this.isLabelEvent(t,e)&&a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,s(e)))}),mxUtils.bind(this,function(e){this.isLabelEvent(t,e)&&(a.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e,s(e))),i=!1)})),mxEvent.addListener(t.text.node,"dblclick",mxUtils.bind(this,function(e){this.isLabelEvent(t,e)&&(a.dblClick(e,t.cell),mxEvent.consume(e))}))}},mxCellRenderer.prototype.initializeLabel=function(e){var n=e.view.graph;e.text.dialect!=mxConstants.DIALECT_SVG&&(mxClient.IS_SVG&&mxClient.NO_FO?e.text.init(n.container):mxUtils.isVml(e.view.getDrawPane())&&(null!=e.shape.label?e.text.init(e.shape.label):e.text.init(e.shape.node))),null==e.text.node&&(e.text.init(e.view.getDrawPane()),null!=e.shape&&null!=e.text&&e.shape.node.parentNode.insertBefore(e.text.node,e.shape.node.nextSibling))},mxCellRenderer.prototype.createCellOverlays=function(e){var n=e.view.graph.getCellOverlays(e.cell),t=null;if(null!=n){t=new mxDictionary;for(var a=0;a<n.length;a++){var i=null!=e.overlays?e.overlays.remove(n[a]):null;null==i&&((i=new mxImageShape(new mxRectangle,n[a].image.src)).dialect=e.view.graph.dialect,i.preserveImageAspect=!1,i.overlay=n[a],this.initializeOverlay(e,i),this.installCellOverlayListeners(e,n[a],i),null!=n[a].cursor&&(i.node.style.cursor=n[a].cursor)),t.put(n[a],i)}}null!=e.overlays&&e.overlays.visit(function(e,n){n.destroy()}),e.overlays=t},mxCellRenderer.prototype.initializeOverlay=function(e,n){n.init(e.view.getOverlayPane())},mxCellRenderer.prototype.installCellOverlayListeners=function(n,t,e){var a=n.view.graph;mxEvent.addListener(e.node,"click",function(e){a.isEditing()&&a.stopEditing(!a.isInvokesStopCellEditing()),t.fireEvent(new mxEventObject(mxEvent.CLICK,"event",e,"cell",n.cell))}),mxEvent.addGestureListeners(e.node,function(e){mxEvent.consume(e)},function(e){a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,n))}),mxClient.IS_TOUCH&&mxEvent.addListener(e.node,"touchend",function(e){t.fireEvent(new mxEventObject(mxEvent.CLICK,"event",e,"cell",n.cell))})},mxCellRenderer.prototype.createControl=function(t){var a=t.view.graph,e=a.getFoldingImage(t);if(a.foldingEnabled&&null!=e){if(null==t.control){var n=new mxRectangle(0,0,e.width,e.height);t.control=new mxImageShape(n,e.src),t.control.preserveImageAspect=!1,t.control.dialect=a.dialect,this.initControl(t,t.control,!0,function(e){if(a.isEnabled()){var n=!a.isCellCollapsed(t.cell);a.foldCells(n,!1,[t.cell]),mxEvent.consume(e)}})}}else null!=t.control&&(t.control.destroy(),t.control=null)},mxCellRenderer.prototype.initControl=function(n,e,t,a){var i=n.view.graph;return i.isHtmlLabel(n.cell)&&mxClient.NO_FO&&i.dialect==mxConstants.DIALECT_SVG?(e.dialect=mxConstants.DIALECT_PREFERHTML,e.init(i.container),e.node.style.zIndex=1):e.init(n.view.getOverlayPane()),e=e.innerNode||e.node,a&&(i.isEnabled()&&(e.style.cursor="pointer"),mxEvent.addListener(e,"click",a)),t&&mxEvent.addGestureListeners(e,function(e){i.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,n)),mxEvent.consume(e)},function(e){i.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,n))}),e},mxCellRenderer.prototype.isShapeEvent=function(e,n){return!0},mxCellRenderer.prototype.isLabelEvent=function(e,n){return!0},mxCellRenderer.prototype.installListeners=function(t){var a=t.view.graph,n=function(e){var n=t;return(a.dialect!=mxConstants.DIALECT_SVG&&"IMG"==mxEvent.getSource(e).nodeName||mxClient.IS_TOUCH)&&(n=mxEvent.getClientX(e),e=mxEvent.getClientY(e),e=mxUtils.convertPoint(a.container,n,e),n=a.view.getState(a.getCellAt(e.x,e.y))),n},i=!1;mxEvent.addListener(t.shape.node,"gesturestart",mxUtils.bind(this,function(e){a.lastTouchTime=0,i=!0,mxEvent.consume(e)})),mxEvent.addGestureListeners(t.shape.node,mxUtils.bind(this,function(e){this.isShapeEvent(t,e)&&!i?a.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,null!=t.shape&&mxEvent.getSource(e)==t.shape.content?null:t)):i&&mxEvent.consume(e)}),mxUtils.bind(this,function(e){this.isShapeEvent(t,e)&&!i?a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,null!=t.shape&&mxEvent.getSource(e)==t.shape.content?null:n(e))):i&&mxEvent.consume(e)}),mxUtils.bind(this,function(e){this.isShapeEvent(t,e)&&!i?a.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e,null!=t.shape&&mxEvent.getSource(e)==t.shape.content?null:n(e))):i&&mxEvent.consume(e)}));var s=mxClient.IS_TOUCH?"gestureend":"dblclick";mxEvent.addListener(t.shape.node,s,mxUtils.bind(this,function(e){i=!1,"gestureend"==s?(a.lastTouchTime=0,a.gestureEnabled&&(a.handleGesture(t,e),mxEvent.consume(e))):this.isShapeEvent(t,e)&&(a.dblClick(e,null!=t.shape&&mxEvent.getSource(e)==t.shape.content?null:t.cell),mxEvent.consume(e))}))},mxCellRenderer.prototype.redrawLabel=function(e,n){var t=this.getLabelValue(e);if(null==e.text&&null!=t&&(mxUtils.isNode(t)||0<t.length)?this.createLabel(e,t):null==e.text||null!=t&&0!=t.length||(e.text.destroy(),e.text=null),null!=e.text){var a=(i=e.view.graph).isWrapping(e.cell),i=i.isLabelClipped(e.cell),s=this.getLabelBounds(e);!n&&e.text.value==t&&e.text.isWrapping==a&&e.text.isClipping==i&&e.text.scale==e.view.scale&&e.text.bounds.equals(s)||(e.text.value=t,e.text.bounds=s,e.text.scale=this.getTextScale(e),e.text.isWrapping=a,e.text.isClipping=i,e.text.redraw())}},mxCellRenderer.prototype.getTextScale=function(e){return e.view.scale},mxCellRenderer.prototype.getLabelBounds=function(e){var n=e.view.graph,t=e.view.scale,a=n.getModel().isEdge(e.cell),i=new mxRectangle(e.absoluteOffset.x,e.absoluteOffset.y);return e.text.updateMargin(),a?(a=e.text.getSpacing(),i.x+=a.x*t,i.y+=a.y*t,null!=(n=n.getCellGeometry(e.cell))&&(i.width=Math.max(0,e.text.margin.x*n.width*t-e.text.spacingLeft*t-e.text.spacingRight*t),i.height=Math.max(0,e.text.margin.y*n.height*t-e.text.spacingTop*t-e.text.spacingBottom*t))):(e.text.isPaintBoundsInverted()&&(a=i.x,i.x=i.y,i.y=a),i.x+=e.x,i.y+=e.y,i.width=Math.max(1,e.width),i.height=Math.max(1,e.height),n.isSwimlane(e.cell)&&(0<(n=n.getStartSize(e.cell)).width?(a=Math.min(i.width,n.width*t),e.shape.flipH&&(i.x+=i.width-a),i.width=a):0<n.height&&(a=Math.min(i.height,n.height*t),e.shape.flipV&&(i.y+=i.height-a),i.height=a)),this.rotateLabelBounds(e,i)),i},mxCellRenderer.prototype.rotateLabelBounds=function(e,n){if(e.text.isPaintBoundsInverted()){var t=(e.width-e.height)/2;n.x+=t,n.y-=t,t=n.width,n.width=n.height,n.height=t}if(n.x-=e.text.margin.x*n.width,n.y-=e.text.margin.y*n.height,"fill"!=e.style[mxConstants.STYLE_OVERFLOW]){t=e.view.scale;var a=e.text.getSpacing();n.x+=a.x*t,n.y+=a.y*t,n.width=Math.max(0,n.width-e.text.spacingLeft*t-e.text.spacingRight*t),n.height=Math.max(0,n.height-e.text.spacingTop*t-e.text.spacingBottom*t)}var i=e.text.getTextRotation();0!=i&&null!=e&&e.view.graph.model.isVertex(e.cell)&&(t=e.getCenterX(),a=e.getCenterY(),n.x!=t||n.y!=a)&&(i*=Math.PI/180,pt=mxUtils.getRotatedPoint(new mxPoint(n.x,n.y),Math.cos(i),Math.sin(i),new mxPoint(t,a)),n.x=pt.x,n.y=pt.y)},mxCellRenderer.prototype.redrawCellOverlays=function(s,o){if(this.createCellOverlays(s),null!=s.overlays){var r=mxUtils.mod(mxUtils.getValue(s.style,mxConstants.STYLE_ROTATION,0),90),e=mxUtils.toRadians(r),l=Math.cos(e),d=Math.sin(e);s.overlays.visit(function(e,n){var t=n.overlay.getBounds(s);if(!s.view.graph.getModel().isEdge(s.cell)&&null!=s.shape&&0!=r){var a=t.getCenterX(),i=t.getCenterY();a=(i=mxUtils.getRotatedPoint(new mxPoint(a,i),l,d,new mxPoint(s.getCenterX(),s.getCenterY()))).x,i=i.y;t.x=Math.round(a-t.width/2),t.y=Math.round(i-t.height/2)}!o&&null!=n.bounds&&n.scale==s.view.scale&&n.bounds.equals(t)||(n.bounds=t,n.scale=s.view.scale,n.redraw())})}},mxCellRenderer.prototype.redrawControl=function(e,n){if(null!=e.control){var t=this.getControlBounds(e),a=this.legacyControlPosition?mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION,0):e.shape.getTextRotation(),i=e.view.scale;!n&&e.control.scale==i&&e.control.bounds.equals(t)&&e.control.rotation==a||(e.control.rotation=a,e.control.bounds=t,e.control.scale=i,e.control.redraw())}},mxCellRenderer.prototype.getControlBounds=function(e){if(null==e.control)return null;var n=e.control.scale,t=e.control.bounds.width/n,a=(n=e.control.bounds.height/n,e.view.scale),i=e.getCenterX(),s=e.getCenterY();if(!e.view.graph.getModel().isEdge(e.cell)&&(i=e.x+t*a,s=e.y+n*a,null!=e.shape)){var o=e.shape.getShapeRotation();if(this.legacyControlPosition)o=mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION,0);else if(e.shape.isPaintBoundsInverted()){var r=(e.width-e.height)/2;i=i+r,s=s-r}0!=o&&(r=mxUtils.toRadians(o),o=Math.cos(r),r=Math.sin(r),i=(s=mxUtils.getRotatedPoint(new mxPoint(i,s),o,r,new mxPoint(e.getCenterX(),e.getCenterY()))).x,s=s.y)}return e.view.graph.getModel().isEdge(e.cell),new mxRectangle(Math.round(i-t/2*a),Math.round(s-n/2*a),Math.round(t*a),Math.round(n*a))},mxCellRenderer.prototype.redraw=function(e,n,t){if(null!=e.shape){var a=!1;e.view.graph.getModel().isEdge(e.cell),reconfigure=null!=n&&n,this.createControl(e),(e.orderChanged||e.invalidOrder)&&(e.view.graph.ordered?this.order(e):this.orderEdge(e)),!e.orderChanged&&mxUtils.equalEntries(e.shape.style,e.style)||(this.configureShape(e),n=!0),delete e.invalidOrder,delete e.orderChanged,!n&&null!=e.shape.bounds&&e.shape.scale==e.view.scale&&e.shape.bounds.equals(e)&&mxUtils.equalPoints(e.shape.points,e.absolutePoints)||(a=!0,e.shape.points=null!=e.absolutePoints?e.absolutePoints.slice():null,e.shape.bounds=new mxRectangle(e.x,e.y,e.width,e.height),e.shape.scale=e.view.scale,null==t||t?e.shape.redraw():e.shape.updateBoundingBox()),(null==t||t)&&(this.redrawLabel(e,a),this.redrawCellOverlays(e,a),this.redrawControl(e,a))}},mxCellRenderer.prototype.destroy=function(e){null!=e.shape&&(null!=e.text&&(e.text.destroy(),e.text=null),null!=e.overlays&&(e.overlays.visit(function(e,n){n.destroy()}),e.overlays=null),null!=e.control&&(e.control.destroy(),e.control=null),e.shape.destroy(),e.shape=null)};var mxEdgeStyle={EntityRelation:function(e,n,t,a,i){var s=e.view,o=s.graph;a=mxUtils.getValue(e.style,mxConstants.STYLE_SEGMENT,mxConstants.ENTITY_SEGMENT)*s.scale;var r=(d=e.absolutePoints)[0],l=d[d.length-1],d=!1;if(null!=r)(n=new mxCellState).x=r.x,n.y=r.y;else{if(null==n)return;var c=mxUtils.getPortConstraints(n,e,!0,mxConstants.DIRECTION_MASK_NONE);c!=mxConstants.DIRECTION_MASK_NONE?d=c==mxConstants.DIRECTION_MASK_WEST:(r=o.getCellGeometry(n.cell)).relative?d=r.x<=.5:null!=t&&(d=t.x+t.width<n.x)}r=!0,null!=l?((t=new mxCellState).x=l.x,t.y=l.y):null!=t&&((c=mxUtils.getPortConstraints(t,e,!1,mxConstants.DIRECTION_MASK_NONE))!=mxConstants.DIRECTION_MASK_NONE?r=c==mxConstants.DIRECTION_MASK_WEST:(e=o.getCellGeometry(t.cell)).relative?r=e.x<=.5:null!=n&&(r=n.x+n.width<t.x)),null!=n&&null!=t&&(e=d?n.x:n.x+n.width,n=s.getRoutingCenterY(n),o=r?t.x:t.x+t.width,t=s.getRoutingCenterY(t),s=new mxPoint(e+(d?-a:a),n),l=new mxPoint(o+(r?-a:a),t),d==r?(a=d?Math.min(e,o)-a:Math.max(e,o)+a,i.push(new mxPoint(a,n)),i.push(new mxPoint(a,t))):(s.x<l.x==d?(a=n+(t-n)/2,i.push(s),i.push(new mxPoint(s.x,a)),i.push(new mxPoint(l.x,a))):i.push(s),i.push(l)))},Loop:function(e,n,t,a,i){if(null!=n){var s=(t=e.view).graph;null!=(a=null!=a&&0<a.length?a[0]:null)&&(a=t.transformControlPoint(e,a),mxUtils.contains(n,a.x,a.y)&&(a=null));var o=0,r=0,l=0,d=0;s=mxUtils.getValue(e.style,mxConstants.STYLE_SEGMENT,s.gridSize)*t.scale;(e=mxUtils.getValue(e.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_WEST))==mxConstants.DIRECTION_NORTH||e==mxConstants.DIRECTION_SOUTH?(o=t.getRoutingCenterX(n),r=s):(l=t.getRoutingCenterY(n),d=s),null==a||a.x<n.x||a.x>n.x+n.width?null!=a?(o=a.x,d=Math.max(Math.abs(l-a.y),d)):e==mxConstants.DIRECTION_NORTH?l=n.y-2*r:e==mxConstants.DIRECTION_SOUTH?l=n.y+n.height+2*r:o=e==mxConstants.DIRECTION_EAST?n.x-2*d:n.x+n.width+2*d:null!=a&&(o=t.getRoutingCenterX(n),r=Math.max(Math.abs(o-a.x),d),l=a.y,d=0),i.push(new mxPoint(o-r,l-d)),i.push(new mxPoint(o+r,l+d))}},ElbowConnector:function(e,n,t,a,i){var s=null!=a&&0<a.length?a[0]:null,o=!1,r=!1;if(null!=n&&null!=t)if(null!=s){var l=Math.min(n.x,t.x),d=Math.max(n.x+n.width,t.x+t.width),c=(r=Math.min(n.y,t.y),Math.max(n.y+n.height,t.y+t.height));o=(s=e.view.transformControlPoint(e,s)).y<r||s.y>c,r=s.x<l||s.x>d}else(o=(l=Math.max(n.x,t.x))==(d=Math.min(n.x+n.width,t.x+t.width)))||(r=(r=Math.max(n.y,t.y))==(c=Math.min(n.y+n.height,t.y+t.height)));r||!o&&e.style[mxConstants.STYLE_ELBOW]!=mxConstants.ELBOW_VERTICAL?mxEdgeStyle.SideToSide(e,n,t,a,i):mxEdgeStyle.TopToBottom(e,n,t,a,i)},SideToSide:function(e,n,t,a,i){var s=e.view;a=null!=a&&0<a.length?a[0]:null;var o=(r=e.absolutePoints)[0],r=r[r.length-1];null!=a&&(a=s.transformControlPoint(e,a)),null!=o&&((n=new mxCellState).x=o.x,n.y=o.y),null!=r&&((t=new mxCellState).x=r.x,t.y=r.y),null!=n&&null!=t&&(e=Math.max(n.x,t.x),o=Math.min(n.x+n.width,t.x+t.width),e=null!=a?a.x:o+(e-o)/2,o=s.getRoutingCenterY(n),s=s.getRoutingCenterY(t),null!=a&&(a.y>=n.y&&a.y<=n.y+n.height&&(o=a.y),a.y>=t.y&&a.y<=t.y+t.height&&(s=a.y)),!mxUtils.contains(t,e,o)&&!mxUtils.contains(n,e,o)&&i.push(new mxPoint(e,o)),!mxUtils.contains(t,e,s)&&!mxUtils.contains(n,e,s)&&i.push(new mxPoint(e,s)),1==i.length&&(null!=a?!mxUtils.contains(t,e,a.y)&&!mxUtils.contains(n,e,a.y)&&i.push(new mxPoint(e,a.y)):(s=Math.max(n.y,t.y),n=Math.min(n.y+n.height,t.y+t.height),i.push(new mxPoint(e,s+(n-s)/2)))))},TopToBottom:function(e,n,t,a,i){var s=e.view;a=null!=a&&0<a.length?a[0]:null;var o=(r=e.absolutePoints)[0],r=r[r.length-1];null!=a&&(a=s.transformControlPoint(e,a)),null!=o&&((n=new mxCellState).x=o.x,n.y=o.y),null!=r&&((t=new mxCellState).x=r.x,t.y=r.y),null!=n&&null!=t&&(o=Math.max(n.y,t.y),r=Math.min(n.y+n.height,t.y+t.height),e=s.getRoutingCenterX(n),null!=a&&a.x>=n.x&&a.x<=n.x+n.width&&(e=a.x),o=null!=a?a.y:r+(o-r)/2,!mxUtils.contains(t,e,o)&&!mxUtils.contains(n,e,o)&&i.push(new mxPoint(e,o)),e=null!=a&&a.x>=t.x&&a.x<=t.x+t.width?a.x:s.getRoutingCenterX(t),!mxUtils.contains(t,e,o)&&!mxUtils.contains(n,e,o)&&i.push(new mxPoint(e,o)),1==i.length&&(null!=a&&1==i.length?!mxUtils.contains(t,a.x,o)&&!mxUtils.contains(n,a.x,o)&&i.push(new mxPoint(a.x,o)):(s=Math.max(n.x,t.x),n=Math.min(n.x+n.width,t.x+t.width),i.push(new mxPoint(s+(n-s)/2,o)))))},SegmentConnector:function(e,n,t,a,i){var s=e.absolutePoints,o=!0,r=null,l=s[0];null==l&&null!=n?l=new mxPoint(e.view.getRoutingCenterX(n),e.view.getRoutingCenterY(n)):null!=l&&(l=l.clone());var d=s.length-1;if(null!=a&&0<a.length){r=e.view.transformControlPoint(e,a[0]);for(var c=n,m=s[0],u=!1,p=!1,g=(u=r,a.length),v=0;v<2;v++){var h=null!=m&&m.x==u.x,f=null!=m&&m.y==u.y,b=null!=c&&u.y>=c.y&&u.y<=c.y+c.height;c=null!=c&&u.x>=c.x&&u.x<=c.x+c.width,u=f||null==m&&b,p=h||null==m&&c;if(null!=m&&!f&&!h&&(b||c)){o=!b;break}if(p||u){o=u,1==v&&(o=0==a.length%2?u:p);break}c=t,m=s[d],u=e.view.transformControlPoint(e,a[g-1])}for(o&&(null!=s[0]&&s[0].y!=r.y||null==s[0]&&null!=n&&(r.y<n.y||r.y>n.y+n.height))?i.push(new mxPoint(l.x,r.y)):!o&&(null!=s[0]&&s[0].x!=r.x||null==s[0]&&null!=n&&(r.x<n.x||r.x>n.x+n.width))&&i.push(new mxPoint(r.x,l.y)),o?l.y=r.y:l.x=r.x,v=0;v<a.length;v++)o=!o,r=e.view.transformControlPoint(e,a[v]),o?l.y=r.y:l.x=r.x,i.push(l.clone())}else r=l,o=!0;if(null==(l=s[d])&&null!=t&&(l=new mxPoint(e.view.getRoutingCenterX(t),e.view.getRoutingCenterY(t))),o&&(null!=s[d]&&s[d].y!=r.y||null==s[d]&&null!=t&&(r.y<t.y||r.y>t.y+t.height))?i.push(new mxPoint(l.x,r.y)):!o&&(null!=s[d]&&s[d].x!=r.x||null==s[d]&&null!=t&&(r.x<t.x||r.x>t.x+t.width))&&i.push(new mxPoint(r.x,l.y)),null==s[0]&&null!=n)for(;1<i.length&&mxUtils.contains(n,i[1].x,i[1].y);)i=i.splice(1,1);if(null==s[d]&&null!=t)for(;1<i.length&&mxUtils.contains(t,i[i.length-1].x,i[i.length-1].y);)i=i.splice(i.length-1,1)},orthBuffer:10,dirVectors:[[-1,0],[0,-1],[1,0],[0,1],[-1,0],[0,-1],[1,0]],wayPoints1:[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],routePatterns:[[[513,2308,2081,2562],[513,1090,514,2184,2114,2561],[513,1090,514,2564,2184,2562],[513,2308,2561,1090,514,2568,2308]],[[514,1057,513,2308,2081,2562],[514,2184,2114,2561],[514,2184,2562,1057,513,2564,2184],[514,1057,513,2568,2308,2561]],[[1090,514,1057,513,2308,2081,2562],[2114,2561],[1090,2562,1057,513,2564,2184],[1090,514,1057,513,2308,2561,2568]],[[2081,2562],[1057,513,1090,514,2184,2114,2561],[1057,513,1090,514,2184,2562,2564],[1057,2561,1090,514,2568,2308]]],inlineRoutePatterns:[[null,[2114,2568],null,null],[null,[514,2081,2114,2568],null,null],[null,[2114,2561],null,null],[[2081,2562],[1057,2114,2568],[2184,2562],null]],vertexSeperations:[],limits:[[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0]],LEFT_MASK:32,TOP_MASK:64,RIGHT_MASK:128,BOTTOM_MASK:256,LEFT:1,TOP:2,RIGHT:4,BOTTOM:8,SIDE_MASK:480,CENTER_MASK:512,SOURCE_MASK:1024,TARGET_MASK:2048,VERTEX_MASK:3072,OrthConnector:function(e,n,t,a,i){var s=e.view.graph,o=null!=n&&s.getModel().isEdge(n.cell);s=null!=t&&s.getModel().isEdge(t.cell);if(null!=a&&0<a.length||o||s)mxEdgeStyle.SegmentConnector(e,n,t,a,i);else{var r=(a=e.absolutePoints)[0],l=a[a.length-1];a=null!=n?n.x:r.x;o=null!=n?n.y:r.y;var d=null!=n?n.width:1,c=null!=n?n.height:1,m=null!=t?t.x:l.x,u=null!=t?t.y:l.y,p=null!=t?t.width:1,g=null!=t?t.height:1,v=(s=e.view.scale*mxEdgeStyle.orthBuffer,[mxConstants.DIRECTION_MASK_ALL,mxConstants.DIRECTION_MASK_ALL]);for(null!=n&&(v[0]=mxUtils.getPortConstraints(n,e,!0,mxConstants.DIRECTION_MASK_ALL)),null!=t&&(v[1]=mxUtils.getPortConstraints(t,e,!1,mxConstants.DIRECTION_MASK_ALL)),e=[0,0],a=[[a,o,d,c],[m,u,p,g]],d=0;d<2;d++)mxEdgeStyle.limits[d][1]=a[d][0]-s,mxEdgeStyle.limits[d][2]=a[d][1]-s,mxEdgeStyle.limits[d][4]=a[d][0]+a[d][2]+s,mxEdgeStyle.limits[d][8]=a[d][1]+a[d][3]+s;for(d=a[0][0]+a[0][2]/2-(a[1][0]+a[1][2]/2),c=a[0][1]+a[0][3]/2-(a[1][1]+a[1][3]/2),d<(o=0)?o=c<0?2:1:c<=0&&(o=3,0==d&&(o=2)),(c=null)!=n&&(c=r),n=[[.5,.5],[.5,.5]],d=0;d<2;d++)null!=c&&(n[d][0]=(c.x-a[d][0])/a[d][2],n[d][0]<.01?e[d]=mxConstants.DIRECTION_MASK_WEST:.99<n[d][0]&&(e[d]=mxConstants.DIRECTION_MASK_EAST),n[d][1]=(c.y-a[d][1])/a[d][3],n[d][1]<.01?e[d]=mxConstants.DIRECTION_MASK_NORTH:.99<n[d][1]&&(e[d]=mxConstants.DIRECTION_MASK_SOUTH)),(c=null)!=t&&(c=l);for(d=a[0][1]-(a[1][1]+a[1][3]),c=a[0][0]-(a[1][0]+a[1][2]),m=a[1][1]-(a[0][1]+a[0][3]),u=a[1][0]-(a[0][0]+a[0][2]),mxEdgeStyle.vertexSeperations[1]=Math.max(c-2*s,0),mxEdgeStyle.vertexSeperations[2]=Math.max(d-2*s,0),mxEdgeStyle.vertexSeperations[4]=Math.max(m-2*s,0),mxEdgeStyle.vertexSeperations[3]=Math.max(u-2*s,0),t=[],l=[],(r=[])[0]=u<=c?mxConstants.DIRECTION_MASK_WEST:mxConstants.DIRECTION_MASK_EAST,l[0]=m<=d?mxConstants.DIRECTION_MASK_NORTH:mxConstants.DIRECTION_MASK_SOUTH,r[1]=mxUtils.reversePortConstraints(r[0]),l[1]=mxUtils.reversePortConstraints(l[0]),c=u<=c?c:u,m=m<=d?d:m,p=!(u=[[0,0],[0,0]]),d=0;d<2;d++)0==e[d]&&(0==(r[d]&v[d])&&(r[d]=mxUtils.reversePortConstraints(r[d])),0==(l[d]&v[d])&&(l[d]=mxUtils.reversePortConstraints(l[d])),u[d][0]=l[d],u[d][1]=r[d]);for(2*s<m&&2*s<c&&(0<(r[0]&v[0])&&0<(l[1]&v[1])?(u[0][0]=r[0],u[0][1]=l[0],u[1][0]=l[1],u[1][1]=r[1],p=!0):0<(l[0]&v[0])&&0<(r[1]&v[1])&&(u[0][0]=l[0],u[0][1]=r[0],u[1][0]=r[1],u[1][1]=l[1],p=!0)),2*s<m&&!p&&(u[0][0]=l[0],u[0][1]=r[0],u[1][0]=l[1],u[1][1]=r[1],p=!0),2*s<c&&!p&&(u[0][0]=r[0],u[0][1]=l[0],u[1][0]=r[1],u[1][1]=l[1]),d=0;d<2;d++)0==e[d]&&(0==(u[d][0]&v[d])&&(u[d][0]=u[d][1]),t[d]=u[d][0]&v[d],t[d]|=(u[d][1]&v[d])<<8,t[d]|=(u[1-d][d]&v[d])<<16,t[d]|=(u[1-d][1-d]&v[d])<<24,0==(15&t[d])&&(t[d]<<=8),0==(3840&t[d])&&(t[d]=15&t[d]|t[d]>>8),0==(983040&t[d])&&(t[d]=65535&t[d]|(251658240&t[d])>>8),e[d]=15&t[d],v[d]==mxConstants.DIRECTION_MASK_WEST||v[d]==mxConstants.DIRECTION_MASK_NORTH||v[d]==mxConstants.DIRECTION_MASK_EAST||v[d]==mxConstants.DIRECTION_MASK_SOUTH)&&(e[d]=v[d]);switch(d=e[0]==mxConstants.DIRECTION_MASK_EAST?3:e[0],v=e[1]==mxConstants.DIRECTION_MASK_EAST?3:e[1],(d-=o)<1&&(d+=4),(v-=o)<1&&(v+=4),v=mxEdgeStyle.routePatterns[d-1][v-1],mxEdgeStyle.wayPoints1[0][0]=a[0][0],mxEdgeStyle.wayPoints1[0][1]=a[0][1],e[0]){case mxConstants.DIRECTION_MASK_WEST:mxEdgeStyle.wayPoints1[0][0]-=s,mxEdgeStyle.wayPoints1[0][1]+=n[0][1]*a[0][3];break;case mxConstants.DIRECTION_MASK_SOUTH:mxEdgeStyle.wayPoints1[0][0]+=n[0][0]*a[0][2],mxEdgeStyle.wayPoints1[0][1]+=a[0][3]+s;break;case mxConstants.DIRECTION_MASK_EAST:mxEdgeStyle.wayPoints1[0][0]+=a[0][2]+s,mxEdgeStyle.wayPoints1[0][1]+=n[0][1]*a[0][3];break;case mxConstants.DIRECTION_MASK_NORTH:mxEdgeStyle.wayPoints1[0][0]+=n[0][0]*a[0][2],mxEdgeStyle.wayPoints1[0][1]-=s}for(r=t=(s=0)<(e[0]&(mxConstants.DIRECTION_MASK_EAST|mxConstants.DIRECTION_MASK_WEST))?0:1,d=l=0;d<v.length;d++){g=(l=15&v[d])==mxConstants.DIRECTION_MASK_EAST?3:l,4<(g+=o)&&(g-=4),c=mxEdgeStyle.dirVectors[g-1],(l=0<g%2?0:1)!=t&&(s++,mxEdgeStyle.wayPoints1[s][0]=mxEdgeStyle.wayPoints1[s-1][0],mxEdgeStyle.wayPoints1[s][1]=mxEdgeStyle.wayPoints1[s-1][1]);var h=0<(v[d]&mxEdgeStyle.TARGET_MASK);p=0<(v[d]&mxEdgeStyle.SOURCE_MASK);15<(m=(m=(v[d]&mxEdgeStyle.SIDE_MASK)>>5)<<o)&&(m>>=4),u=0<(v[d]&mxEdgeStyle.CENTER_MASK),(p||h)&&m<9?(g=0,p=p?0:1,g=u&&0==l?a[p][0]+n[p][0]*a[p][2]:u?a[p][1]+n[p][1]*a[p][3]:mxEdgeStyle.limits[p][m],0==l?0<(m=(g-mxEdgeStyle.wayPoints1[s][0])*c[0])&&(mxEdgeStyle.wayPoints1[s][0]+=c[0]*m):0<(m=(g-mxEdgeStyle.wayPoints1[s][1])*c[1])&&(mxEdgeStyle.wayPoints1[s][1]+=c[1]*m)):u&&(mxEdgeStyle.wayPoints1[s][0]+=c[0]*Math.abs(mxEdgeStyle.vertexSeperations[g]/2),mxEdgeStyle.wayPoints1[s][1]+=c[1]*Math.abs(mxEdgeStyle.vertexSeperations[g]/2)),0<s&&mxEdgeStyle.wayPoints1[s][l]==mxEdgeStyle.wayPoints1[s-1][l]?s--:t=l}for(d=0;d<=s&&(d!=s||((0<(e[1]&(mxConstants.DIRECTION_MASK_EAST|mxConstants.DIRECTION_MASK_WEST))?0:1)==r?0:1)==(s+1)%2);d++)i.push(new mxPoint(mxEdgeStyle.wayPoints1[d][0],mxEdgeStyle.wayPoints1[d][1]))}},getRoutePattern:function(e,n,t,a){var i=e[0]==mxConstants.DIRECTION_MASK_EAST?3:e[0];return e=e[1]==mxConstants.DIRECTION_MASK_EAST?3:e[1],(i-=n)<1&&(i+=4),(e-=n)<1&&(e+=4),n=routePatterns[i-1][e-1],0!=t&&0!=a||null!=inlineRoutePatterns[i-1][e-1]&&(n=inlineRoutePatterns[i-1][e-1]),n}},mxStyleRegistry={values:[],putValue:function(e,n){mxStyleRegistry.values[e]=n},getValue:function(e){return mxStyleRegistry.values[e]},getName:function(e){for(var n in mxStyleRegistry.values)if(mxStyleRegistry.values[n]==e)return n;return null}};function mxGraphView(e){this.graph=e,this.translate=new mxPoint,this.graphBounds=new mxRectangle,this.states=new mxDictionary}function mxCurrentRootChange(e,n){if(this.view=e,this.previous=this.root=n,this.isUp=null==n,!this.isUp)for(var t=this.view.currentRoot,a=this.view.graph.getModel();null!=t;){if(t==n){this.isUp=!0;break}t=a.getParent(t)}}function mxGraph(e,n,t,a){this.mouseListeners=null,this.renderHint=t,this.dialect=mxClient.IS_SVG?mxConstants.DIALECT_SVG:t==mxConstants.RENDERING_HINT_EXACT&&mxClient.IS_VML?mxConstants.DIALECT_VML:t==mxConstants.RENDERING_HINT_FASTEST?mxConstants.DIALECT_STRICTHTML:t==mxConstants.RENDERING_HINT_FASTER?mxConstants.DIALECT_PREFERHTML:mxConstants.DIALECT_MIXEDHTML,this.model=null!=n?n:new mxGraphModel,this.multiplicities=[],this.imageBundles=[],this.cellRenderer=this.createCellRenderer(),this.setSelectionModel(this.createSelectionModel()),this.setStylesheet(null!=a?a:this.createStylesheet()),this.view=this.createGraphView(),this.graphModelChangeListener=mxUtils.bind(this,function(e,n){this.graphModelChanged(n.getProperty("edit").changes)}),this.model.addListener(mxEvent.CHANGE,this.graphModelChangeListener),this.createHandlers(),null!=e&&this.init(e),this.view.revalidate()}function mxCellOverlay(e,n,t,a,i,s){this.image=e,this.tooltip=n,this.align=null!=t?t:this.align,this.verticalAlign=null!=a?a:this.verticalAlign,this.offset=null!=i?i:new mxPoint,this.cursor=null!=s?s:"help"}function mxOutline(e,n){this.source=e,null!=n&&this.init(n)}function mxMultiplicity(e,n,t,a,i,s,o,r,l,d){this.source=e,this.type=n,this.attr=t,this.value=a,this.min=null!=i?i:0,this.max=null!=s?s:"n",this.validNeighbors=o,this.countError=mxResources.get(r)||r,this.typeError=mxResources.get(l)||l,this.validNeighborsAllowed=null==d||d}function mxLayoutManager(e){this.undoHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.beforeUndo(n.getProperty("edit"))}),this.moveHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.cellsMoved(n.getProperty("cells"),n.getProperty("event"))}),this.setGraph(e)}function mxSpaceManager(e,n,t,a){this.resizeHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.cellsResized(n.getProperty("cells"))}),this.foldHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.cellsResized(n.getProperty("cells"))}),this.shiftRightwards=null==n||n,this.shiftDownwards=null==t||t,this.extendParents=null==a||a,this.setGraph(e)}function mxSwimlaneManager(e,n,t,a){this.horizontal=null==n||n,this.addEnabled=null==t||t,this.resizeEnabled=null==a||a,this.addHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.isAddEnabled()&&this.cellsAdded(n.getProperty("cells"))}),this.resizeHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.isResizeEnabled()&&this.cellsResized(n.getProperty("cells"))}),this.setGraph(e)}function mxTemporaryCellStates(e,n,t){if(this.view=e,n=null!=n?n:1,this.oldBounds=e.getGraphBounds(),this.oldStates=e.getStates(),this.oldScale=e.getScale(),e.setStates(new mxDictionary),e.setScale(n),null!=t){n=e.createState(new mxCell);for(var a=0;a<t.length;a++)e.validateBounds(n,t[a]);var i=null;for(a=0;a<t.length;a++){var s=e.validatePoints(n,t[a]);null==i?i=s:i.add(s)}null==i&&(i=new mxRectangle),e.setGraphBounds(i)}}function mxCellStatePreview(e){this.graph=e,this.deltas={}}function mxConnectionConstraint(e,n){this.point=e,this.perimeter=null==n||n}function mxGraphHandler(e){this.graph=e,this.graph.addMouseListener(this),this.panHandler=mxUtils.bind(this,function(){this.updatePreviewShape()}),this.graph.addListener(mxEvent.PAN,this.panHandler)}function mxPanningHandler(e,n){null!=e&&(this.graph=e,this.factoryMethod=n,this.graph.addMouseListener(this),this.init())}function mxCellMarker(e,n,t,a){mxEventSource.call(this),null!=e&&(this.graph=e,this.validColor=null!=n?n:mxConstants.DEFAULT_VALID_COLOR,this.invalidColor=null!=n?t:mxConstants.DEFAULT_INVALID_COLOR,this.hotspot=null!=a?a:mxConstants.DEFAULT_HOTSPOT,this.highlight=new mxCellHighlight(e))}function mxSelectionCellsHandler(e){mxEventSource.call(this),this.graph=e,this.handlers=new mxDictionary,this.graph.addMouseListener(this),this.refreshHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.refresh()}),this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.refreshHandler),this.graph.getModel().addListener(mxEvent.CHANGE,this.refreshHandler),this.graph.getView().addListener(mxEvent.SCALE,this.refreshHandler),this.graph.getView().addListener(mxEvent.TRANSLATE,this.refreshHandler),this.graph.getView().addListener(mxEvent.SCALE_AND_TRANSLATE,this.refreshHandler),this.graph.getView().addListener(mxEvent.DOWN,this.refreshHandler),this.graph.getView().addListener(mxEvent.UP,this.refreshHandler)}function mxConnectionHandler(e,n){mxEventSource.call(this),null!=e&&(this.graph=e,this.factoryMethod=n,this.init())}function mxConstraintHandler(e){this.graph=e}function mxRubberband(e){null!=e&&(this.graph=e,this.graph.addMouseListener(this),this.panHandler=mxUtils.bind(this,function(){this.repaint()}),this.graph.addListener(mxEvent.PAN,this.panHandler),mxClient.IS_IE&&mxEvent.addListener(window,"unload",mxUtils.bind(this,function(){this.destroy()})))}function mxVertexHandler(e){null!=e&&(this.state=e,this.init())}function mxEdgeHandler(e){null!=e&&(this.state=e,this.init())}function mxElbowEdgeHandler(e){mxEdgeHandler.call(this,e)}function mxEdgeSegmentHandler(e){mxEdgeHandler.call(this,e)}function mxKeyHandler(e,n){null!=e&&(this.graph=e,this.target=n||document.documentElement,this.normalKeys=[],this.shiftKeys=[],this.controlKeys=[],this.controlShiftKeys=[],mxEvent.addListener(this.target,"keydown",mxUtils.bind(this,function(e){this.keyDown(e)})),mxClient.IS_IE&&mxEvent.addListener(window,"unload",mxUtils.bind(this,function(){this.destroy()})))}function mxTooltipHandler(e,n){null!=e&&(this.graph=e,this.delay=n||500,this.graph.addMouseListener(this))}function mxCellTracker(e,n,t){mxCellMarker.call(this,e,n),this.graph.addMouseListener(this),null!=t&&(this.getCell=t),mxClient.IS_IE&&mxEvent.addListener(window,"unload",mxUtils.bind(this,function(){this.destroy()}))}function mxCellHighlight(e,n,t,a){null!=e&&(this.graph=e,this.highlightColor=null!=n?n:mxConstants.DEFAULT_VALID_COLOR,this.strokeWidth=null!=t?t:mxConstants.HIGHLIGHT_STROKEWIDTH,this.dashed=null!=a&&a,this.repaintHandler=mxUtils.bind(this,function(){this.repaint()}),this.graph.getView().addListener(mxEvent.SCALE,this.repaintHandler),this.graph.getView().addListener(mxEvent.TRANSLATE,this.repaintHandler),this.graph.getView().addListener(mxEvent.SCALE_AND_TRANSLATE,this.repaintHandler),this.graph.getModel().addListener(mxEvent.CHANGE,this.repaintHandler),this.resetHandler=mxUtils.bind(this,function(){this.hide()}),this.graph.getView().addListener(mxEvent.DOWN,this.resetHandler),this.graph.getView().addListener(mxEvent.UP,this.resetHandler))}function mxDefaultKeyHandler(n){if(null!=n){this.editor=n,this.handler=new mxKeyHandler(n.graph);var t=this.handler.escape;this.handler.escape=function(e){t.apply(this,arguments),n.hideProperties(),n.fireEvent(new mxEventObject(mxEvent.ESCAPE,"event",e))}}}function mxDefaultPopupMenu(e){this.config=e}function mxDefaultToolbar(e,n){this.editor=n,null!=e&&null!=n&&this.init(e)}function mxEditor(e){this.actions=[],this.addActions(),null!=document.body&&(this.cycleAttributeValues=[],this.popupHandler=new mxDefaultPopupMenu,this.undoManager=new mxUndoManager,this.graph=this.createGraph(),this.toolbar=this.createToolbar(),this.keyHandler=new mxDefaultKeyHandler(this),this.configure(e),this.graph.swimlaneIndicatorColorAttribute=this.cycleAttributeName,!mxClient.IS_LOCAL&&null!=this.urlInit&&(this.session=this.createSession()),null!=this.onInit&&this.onInit(),mxClient.IS_IE&&mxEvent.addListener(window,"unload",mxUtils.bind(this,function(){this.destroy()})))}mxStyleRegistry.putValue(mxConstants.EDGESTYLE_ELBOW,mxEdgeStyle.ElbowConnector),mxStyleRegistry.putValue(mxConstants.EDGESTYLE_ENTITY_RELATION,mxEdgeStyle.EntityRelation),mxStyleRegistry.putValue(mxConstants.EDGESTYLE_LOOP,mxEdgeStyle.Loop),mxStyleRegistry.putValue(mxConstants.EDGESTYLE_SIDETOSIDE,mxEdgeStyle.SideToSide),mxStyleRegistry.putValue(mxConstants.EDGESTYLE_TOPTOBOTTOM,mxEdgeStyle.TopToBottom),mxStyleRegistry.putValue(mxConstants.EDGESTYLE_ORTHOGONAL,mxEdgeStyle.OrthConnector),mxStyleRegistry.putValue(mxConstants.EDGESTYLE_SEGMENT,mxEdgeStyle.SegmentConnector),mxStyleRegistry.putValue(mxConstants.PERIMETER_ELLIPSE,mxPerimeter.EllipsePerimeter),mxStyleRegistry.putValue(mxConstants.PERIMETER_RECTANGLE,mxPerimeter.RectanglePerimeter),mxStyleRegistry.putValue(mxConstants.PERIMETER_RHOMBUS,mxPerimeter.RhombusPerimeter),mxStyleRegistry.putValue(mxConstants.PERIMETER_TRIANGLE,mxPerimeter.TrianglePerimeter),mxGraphView.prototype=new mxEventSource,mxGraphView.prototype.constructor=mxGraphView,mxGraphView.prototype.EMPTY_POINT=new mxPoint,mxGraphView.prototype.doneResource="none"!=mxClient.language?"done":"",mxGraphView.prototype.updatingDocumentResource="none"!=mxClient.language?"updatingDocument":"",mxGraphView.prototype.allowEval=!1,mxGraphView.prototype.captureDocumentGesture=!0,mxGraphView.prototype.optimizeVmlReflows=!0,mxGraphView.prototype.rendering=!0,mxGraphView.prototype.graph=null,mxGraphView.prototype.currentRoot=null,mxGraphView.prototype.graphBounds=null,mxGraphView.prototype.scale=1,mxGraphView.prototype.translate=null,mxGraphView.prototype.updateStyle=!1,mxGraphView.prototype.getGraphBounds=function(){return this.graphBounds},mxGraphView.prototype.setGraphBounds=function(e){this.graphBounds=e},mxGraphView.prototype.getBounds=function(e){var n=null;if(null!=e&&0<e.length)for(var t=this.graph.getModel(),a=0;a<e.length;a++)if(t.isVertex(e[a])||t.isEdge(e[a])){var i=this.getState(e[a]);null!=i&&(null==n?n=new mxRectangle(i.x,i.y,i.width,i.height):n.add(i))}return n},mxGraphView.prototype.setCurrentRoot=function(e){if(this.currentRoot!=e){var n=new mxCurrentRootChange(this,e);n.execute();var t=new mxUndoableEdit(this,!1);t.add(n),this.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",t)),this.graph.sizeDidChange()}return e},mxGraphView.prototype.scaleAndTranslate=function(e,n,t){var a=this.scale,i=new mxPoint(this.translate.x,this.translate.y);this.scale==e&&this.translate.x==n&&this.translate.y==t||(this.scale=e,this.translate.x=n,this.translate.y=t,this.isEventsEnabled()&&(this.revalidate(),this.graph.sizeDidChange())),this.fireEvent(new mxEventObject(mxEvent.SCALE_AND_TRANSLATE,"scale",e,"previousScale",a,"translate",this.translate,"previousTranslate",i))},mxGraphView.prototype.getScale=function(){return this.scale},mxGraphView.prototype.setScale=function(e){var n=this.scale;this.scale!=e&&(this.scale=e,this.isEventsEnabled()&&(this.revalidate(),this.graph.sizeDidChange())),this.fireEvent(new mxEventObject(mxEvent.SCALE,"scale",e,"previousScale",n))},mxGraphView.prototype.getTranslate=function(){return this.translate},mxGraphView.prototype.setTranslate=function(e,n){var t=new mxPoint(this.translate.x,this.translate.y);this.translate.x==e&&this.translate.y==n||(this.translate.x=e,this.translate.y=n,this.isEventsEnabled()&&(this.revalidate(),this.graph.sizeDidChange())),this.fireEvent(new mxEventObject(mxEvent.TRANSLATE,"translate",this.translate,"previousTranslate",t))},mxGraphView.prototype.refresh=function(){null!=this.currentRoot&&this.clear(),this.revalidate()},mxGraphView.prototype.revalidate=function(){this.invalidate(),this.validate()},mxGraphView.prototype.clear=function(e,n,t){var a=this.graph.getModel();if(e=e||a.getRoot(),n=null!=n&&n,t=null==t||t,this.removeState(e),t&&(n||e!=this.currentRoot)){t=a.getChildCount(e);for(var i=0;i<t;i++)this.clear(a.getChildAt(e,i),n)}else this.invalidate(e)},mxGraphView.prototype.invalidate=function(e,n,t,a){var i=this.graph.getModel();if(e=e||i.getRoot(),n=null==n||n,t=null==t||t,a=null!=a&&a,null!=(o=this.getState(e))&&(o.invalid=!0,a&&(o.orderChanged=!0)),n)for(var s=i.getChildCount(e),o=0;o<s;o++){var r=i.getChildAt(e,o);this.invalidate(r,n,t,a)}if(t)for(a=i.getEdgeCount(e),o=0;o<a;o++)this.invalidate(i.getEdgeAt(e,o),n,t)},mxGraphView.prototype.validate=function(e){var n=mxLog.enter("mxGraphView.validate");window.status=mxResources.get(this.updatingDocumentResource)||this.updatingDocumentResource;var t=null;if(this.optimizeVmlReflows&&null!=this.canvas&&null==this.textDiv&&(8==document.documentMode||mxClient.IS_QUIRKS)){t=this.canvas.style.display,this.canvas.style.display="none";var a=document.createElement("div");a.style.position="absolute",a.style.whiteSpace="nowrap",a.style.visibility="hidden",a.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",a.style.zoom="1",document.body.appendChild(a),this.textDiv=a}e=e||(null!=this.currentRoot?this.currentRoot:this.graph.getModel().getRoot()),this.validateBounds(null,e),null==(e=this.validatePoints(null,e))&&(e=new mxRectangle),this.setGraphBounds(e),this.validateBackground(),null!=t&&(this.canvas.style.display=t,document.body.removeChild(this.textDiv),this.textDiv=null),window.status=mxResources.get(this.doneResource)||this.doneResource,mxLog.leave("mxGraphView.validate",n)},mxGraphView.prototype.createBackgroundPageShape=function(e){return new mxRectangleShape(e,"white","black")},mxGraphView.prototype.validateBackground=function(){var e=this.graph.getBackgroundImage();if(null!=e){if(null==this.backgroundImage||this.backgroundImage.image!=e.src){null!=this.backgroundImage&&this.backgroundImage.destroy();var n=new mxRectangle(0,0,1,1);this.backgroundImage=new mxImageShape(n,e.src),this.backgroundImage.dialect=this.graph.dialect,this.backgroundImage.init(this.backgroundPane),this.backgroundImage.redraw()}this.redrawBackgroundImage(this.backgroundImage,e)}else null!=this.backgroundImage&&(this.backgroundImage.destroy(),this.backgroundImage=null);this.graph.pageVisible?(n=this.getBackgroundPageBounds(),null==this.backgroundPageShape?(this.backgroundPageShape=this.createBackgroundPageShape(n),this.backgroundPageShape.scale=this.scale,this.backgroundPageShape.isShadow=!0,this.backgroundPageShape.dialect=this.graph.dialect,this.backgroundPageShape.init(this.backgroundPane),this.backgroundPageShape.redraw(),mxEvent.addListener(this.backgroundPageShape.node,"dblclick",mxUtils.bind(this,function(e){this.graph.dblClick(e)})),mxEvent.addGestureListeners(this.backgroundPageShape.node,mxUtils.bind(this,function(e){this.graph.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e))}),mxUtils.bind(this,function(e){null!=this.graph.tooltipHandler&&this.graph.tooltipHandler.isHideOnHover()&&this.graph.tooltipHandler.hide(),this.graph.isMouseDown&&!mxEvent.isConsumed(e)&&this.graph.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e))}),mxUtils.bind(this,function(e){this.graph.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e))}))):(this.backgroundPageShape.scale=this.scale,this.backgroundPageShape.bounds=n,this.backgroundPageShape.redraw())):null!=this.backgroundPageShape&&(this.backgroundPageShape.destroy(),this.backgroundPageShape=null)},mxGraphView.prototype.getBackgroundPageBounds=function(){var e=this.graph.pageFormat,n=this.scale*this.graph.pageScale;return new mxRectangle(this.scale*this.translate.x,this.scale*this.translate.y,e.width*n,e.height*n)},mxGraphView.prototype.redrawBackgroundImage=function(e,n){e.scale=this.scale,e.bounds.x=this.scale*this.translate.x,e.bounds.y=this.scale*this.translate.y,e.bounds.width=this.scale*n.width,e.bounds.height=this.scale*n.height,e.redraw()},mxGraphView.prototype.validateBounds=function(e,n){var t=this.graph.getModel(),a=this.getState(n,!0);if(null!=a&&a.invalid){if(this.graph.isCellVisible(n)){if(n!=this.currentRoot&&null!=e)if(a.absoluteOffset.x=0,a.absoluteOffset.y=0,a.origin.x=e.origin.x,a.origin.y=e.origin.y,null!=(s=this.graph.getCellGeometry(n))){if(!t.isEdge(n)){var i=s.offset||this.EMPTY_POINT;s.relative?(a.origin.x+=s.x*e.width/this.scale+i.x,a.origin.y+=s.y*e.height/this.scale+i.y):(a.absoluteOffset.x=this.scale*i.x,a.absoluteOffset.y=this.scale*i.y,a.origin.x+=s.x,a.origin.y+=s.y)}if(a.x=this.scale*(this.translate.x+a.origin.x),a.y=this.scale*(this.translate.y+a.origin.y),a.width=this.scale*s.width,a.height=this.scale*s.height,t.isVertex(n)){if(s.relative&&0!=(i=mxUtils.toRadians(e.style[mxConstants.STYLE_ROTATION]||"0"))){var s=Math.cos(i),o=(i=Math.sin(i),new mxPoint(a.getCenterX(),a.getCenterY())),r=new mxPoint(e.getCenterX(),e.getCenterY());s=mxUtils.getRotatedPoint(o,s,i,r);a.x=s.x-a.width/2,a.y=s.y-a.height/2}this.updateVertexLabelOffset(a)}}}else this.removeState(n);null!=(i=this.graph.getChildOffsetForCell(n))&&(a.origin.x+=i.x,a.origin.y+=i.y)}if(null!=a&&(!this.graph.isCellCollapsed(n)||n==this.currentRoot))for(s=t.getChildCount(n),i=0;i<s;i++)o=t.getChildAt(n,i),this.validateBounds(a,o)},mxGraphView.prototype.updateVertexLabelOffset=function(e){var n=mxUtils.getValue(e.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER);n==mxConstants.ALIGN_LEFT?e.absoluteOffset.x-=e.width:n==mxConstants.ALIGN_RIGHT&&(e.absoluteOffset.x+=e.width),(n=mxUtils.getValue(e.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE))==mxConstants.ALIGN_TOP?e.absoluteOffset.y-=e.height:n==mxConstants.ALIGN_BOTTOM&&(e.absoluteOffset.y+=e.height)},mxGraphView.prototype.validatePoints=function(e,n){var t=this.graph.getModel(),a=this.getState(n),i=null;if(null!=a){if(a.invalid){var s=this.graph.getCellGeometry(n);if(null!=s&&t.isEdge(n)){var o=this.getState(this.getVisibleTerminal(n,!0));if(a.setVisibleTerminalState(o,!0),null!=o&&t.isEdge(o.cell)&&!t.isAncestor(o.cell,n)){var r=this.getState(t.getParent(o.cell));this.validatePoints(r,o.cell)}var l=this.getState(this.getVisibleTerminal(n,!1));a.setVisibleTerminalState(l,!1),null!=l&&t.isEdge(l.cell)&&!t.isAncestor(l.cell,n)&&(r=this.getState(t.getParent(l.cell)),this.validatePoints(r,l.cell)),this.updateFixedTerminalPoints(a,o,l),this.updatePoints(a,s.points,o,l),this.updateFloatingTerminalPoints(a,o,l),this.updateEdgeBounds(a),this.updateEdgeLabelOffset(a)}else null!=s&&s.relative&&null!=e&&t.isEdge(e.cell)&&(null!=(s=this.getPoint(e,s))&&(a.x=s.x,a.y=s.y,s.x=s.x/this.scale-this.translate.x,s.y=s.y/this.scale-this.translate.y,a.origin=s,this.childMoved(e,a)));a.invalid=!1,n!=this.currentRoot&&this.graph.cellRenderer.redraw(a,!1,this.isRendering())}(t.isEdge(n)||t.isVertex(n))&&(null!=a.shape&&null!=a.shape.boundingBox&&(i=a.shape.boundingBox.clone()),null!=a.text&&!this.graph.isLabelClipped(a.cell)&&null!=a.text.boundingBox&&(null!=i?i.add(a.text.boundingBox):i=a.text.boundingBox.clone()))}if(null!=a&&(!this.graph.isCellCollapsed(n)||n==this.currentRoot))for(s=t.getChildCount(n),o=0;o<s;o++)r=t.getChildAt(n,o),null!=(r=this.validatePoints(a,r))&&(null==i?i=r:i.add(r));return i},mxGraphView.prototype.childMoved=function(e,n){var t=n.cell;if(!this.graph.isCellCollapsed(t)||t==this.currentRoot)for(var a=this.graph.getModel(),i=a.getChildCount(t),s=0;s<i;s++)this.validateBounds(n,a.getChildAt(t,s))},mxGraphView.prototype.updateFixedTerminalPoints=function(e,n,t){this.updateFixedTerminalPoint(e,n,!0,this.graph.getConnectionConstraint(e,n,!0)),this.updateFixedTerminalPoint(e,t,!1,this.graph.getConnectionConstraint(e,t,!1))},mxGraphView.prototype.updateFixedTerminalPoint=function(e,n,t,a){var i=null;if(null!=a&&(i=this.graph.getConnectionPoint(n,a)),null==i&&null==n){n=this.scale,a=this.translate;var s=e.origin;null!=(i=this.graph.getCellGeometry(e.cell).getTerminalPoint(t))&&(i=new mxPoint(n*(a.x+i.x+s.x),n*(a.y+i.y+s.y)))}e.setAbsoluteTerminalPoint(i,t)},mxGraphView.prototype.updatePoints=function(e,n,t,a){if(null!=e){var i=[];i.push(e.absolutePoints[0]);var s=this.getEdgeStyle(e,n,t,a);if(null!=s)s(e,t=this.getTerminalPort(e,t,!0),a=this.getTerminalPort(e,a,!1),n,i);else if(null!=n)for(s=0;s<n.length;s++)null!=n[s]&&(a=mxUtils.clone(n[s]),i.push(this.transformControlPoint(e,a)));n=e.absolutePoints,i.push(n[n.length-1]),e.absolutePoints=i}},mxGraphView.prototype.transformControlPoint=function(e,n){var t=e.origin;return new mxPoint(this.scale*(n.x+this.translate.x+t.x),this.scale*(n.y+this.translate.y+t.y))},mxGraphView.prototype.getEdgeStyle=function(e,n,t,a){return"string"==typeof(e=null!=t&&t==a?mxUtils.getValue(e.style,mxConstants.STYLE_LOOP,this.graph.defaultLoopStyle):mxUtils.getValue(e.style,mxConstants.STYLE_NOEDGESTYLE,!1)?null:e.style[mxConstants.STYLE_EDGE])&&(null==(n=mxStyleRegistry.getValue(e))&&this.isAllowEval()&&(n=mxUtils.eval(e)),e=n),"function"==typeof e?e:null},mxGraphView.prototype.updateFloatingTerminalPoints=function(e,n,t){var a=e.absolutePoints,i=a[0];null==a[a.length-1]&&null!=t&&this.updateFloatingTerminalPoint(e,t,n,!1),null==i&&null!=n&&this.updateFloatingTerminalPoint(e,n,t,!0)},mxGraphView.prototype.updateFloatingTerminalPoint=function(e,n,t,a){n=this.getTerminalPort(e,n,a);var i=this.getNextPoint(e,t,a),s=this.graph.isOrthogonal(e);t=mxUtils.toRadians(Number(n.style[mxConstants.STYLE_ROTATION]||"0"));var o=new mxPoint(n.getCenterX(),n.getCenterY());if(0!=t){var r=Math.cos(-t),l=Math.sin(-t);i=mxUtils.getRotatedPoint(i,r,l,o)}r=parseFloat(e.style[mxConstants.STYLE_PERIMETER_SPACING]||0),r+=parseFloat(e.style[a?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0),n=this.getPerimeterPoint(n,i,0==t&&s,r),0!=t&&(r=Math.cos(t),l=Math.sin(t),n=mxUtils.getRotatedPoint(n,r,l,o)),e.setAbsoluteTerminalPoint(n,a)},mxGraphView.prototype.getTerminalPort=function(e,n,t){return null!=(e=mxUtils.getValue(e.style,t?mxConstants.STYLE_SOURCE_PORT:mxConstants.STYLE_TARGET_PORT))&&(null!=(e=this.getState(this.graph.getModel().getCell(e)))&&(n=e)),n},mxGraphView.prototype.getPerimeterPoint=function(e,n,t,a){var i=null;if(null!=e){var s=this.getPerimeterFunction(e);null!=s&&null!=n&&(0<(a=this.getPerimeterBounds(e,a)).width||0<a.height)&&(i=s(a,e,n,t)),null==i&&(i=this.getPoint(e))}return i},mxGraphView.prototype.getRoutingCenterX=function(e){var n=null!=e.style&&parseFloat(e.style[mxConstants.STYLE_ROUTING_CENTER_X])||0;return e.getCenterX()+n*e.width},mxGraphView.prototype.getRoutingCenterY=function(e){var n=null!=e.style&&parseFloat(e.style[mxConstants.STYLE_ROUTING_CENTER_Y])||0;return e.getCenterY()+n*e.height},mxGraphView.prototype.getPerimeterBounds=function(e,n){return n=null!=n?n:0,null!=e&&(n+=parseFloat(e.style[mxConstants.STYLE_PERIMETER_SPACING]||0)),e.getPerimeterBounds(n*this.scale)},mxGraphView.prototype.getPerimeterFunction=function(e){if("string"==typeof(e=e.style[mxConstants.STYLE_PERIMETER])){var n=mxStyleRegistry.getValue(e);null==n&&this.isAllowEval()&&(n=mxUtils.eval(e)),e=n}return"function"==typeof e?e:null},mxGraphView.prototype.getNextPoint=function(e,n,t){var a=null;return null!=(e=e.absolutePoints)&&(t||2<e.length||null==n)&&(a=e.length,a=e[t?Math.min(1,a-1):Math.max(0,a-2)]),null==a&&null!=n&&(a=new mxPoint(n.getCenterX(),n.getCenterY())),a},mxGraphView.prototype.getVisibleTerminal=function(e,n){for(var t=this.graph.getModel(),a=t.getTerminal(e,n),i=a;null!=a&&a!=this.currentRoot;)this.graph.isCellVisible(i)&&!this.graph.isCellCollapsed(a)||(i=a),a=t.getParent(a);return t.getParent(i)==t.getRoot()&&(i=null),i},mxGraphView.prototype.updateEdgeBounds=function(e){var n=e.absolutePoints;if(e.length=0,null!=n&&0<n.length){var t=n[0],a=n[n.length-1];if(null==t||null==a)e.cell!=this.currentRoot&&this.clear(e.cell,!0);else{if(t.x!=a.x||t.y!=a.y){var i=a.x-t.x,s=a.y-t.y;e.terminalDistance=Math.sqrt(i*i+s*s)}else e.terminalDistance=0;a=0;var o=[];if(null!=(s=t)){t=s.x;for(var r=s.y,l=t,d=r,c=1;c<n.length;c++){var m=n[c];null!=m&&(i=s.x-m.x,s=s.y-m.y,i=Math.sqrt(i*i+s*s),o.push(i),a+=i,s=m,t=Math.min(s.x,t),r=Math.min(s.y,r),l=Math.max(s.x,l),d=Math.max(s.y,d))}e.length=a,e.segments=o,e.x=t,e.y=r,e.width=Math.max(1,l-t),e.height=Math.max(1,d-r)}}}},mxGraphView.prototype.getPoint=function(e,n){var t=e.getCenterX(),a=e.getCenterY();if(null==e.segments||null!=n&&!n.relative)null!=n&&(null!=(d=n.offset)&&(t+=d.x,a+=d.y));else{for(var i=e.absolutePoints.length,s=(.5+(null!=n?n.x/2:0))*e.length,o=e.segments[0],r=0,l=1;r+o<s&&l<i-1;)r+=o,o=e.segments[l++];if(i=0==o?0:(s-r)/o,s=e.absolutePoints[l-1],l=e.absolutePoints[l],null!=s&&null!=l){if(r=t=a=0,null!=n){a=n.y;var d=n.offset;null!=d&&(t=d.x,r=d.y)}d=l.x-s.x,l=l.y-s.y,t=s.x+d*i+((0==o?0:l/o)*a+t)*this.scale,a=s.y+l*i-((0==o?0:d/o)*a-r)*this.scale}}return new mxPoint(t,a)},mxGraphView.prototype.getRelativePoint=function(e,n,t){if(null!=(i=this.graph.getModel().getGeometry(e.cell))){var a=e.absolutePoints.length;if(i.relative&&1<a){for(var i=e.length,s=e.segments,o=e.absolutePoints[0],r=e.absolutePoints[1],l=mxUtils.ptSegDistSq(o.x,o.y,r.x,r.y,n,t),d=0,c=0,m=0,u=2;u<a;u++)c+=s[u-2],r=e.absolutePoints[u],(o=mxUtils.ptSegDistSq(o.x,o.y,r.x,r.y,n,t))<=l&&(l=o,d=u-1,m=c),o=r;return a=s[d],o=e.absolutePoints[d],l=(r=e.absolutePoints[d+1]).x,s=r.y,s=(l=(e=o.x-l)-(l=n-l))*e+(s=(d=o.y-s)-(s=t-s))*d,a<(e=Math.sqrt(s<=0?0:s*s/(e*e+d*d)))&&(e=a),a=Math.sqrt(mxUtils.ptSegDistSq(o.x,o.y,r.x,r.y,n,t)),-1==mxUtils.relativeCcw(o.x,o.y,r.x,r.y,n,t)&&(a=-a),new mxPoint((i/2-m-e)/i*-2,a/this.scale)}}return new mxPoint},mxGraphView.prototype.updateEdgeLabelOffset=function(e){var n=e.absolutePoints;if(e.absoluteOffset.x=e.getCenterX(),e.absoluteOffset.y=e.getCenterY(),null!=n&&0<n.length&&null!=e.segments)if((i=this.graph.getCellGeometry(e.cell)).relative){null!=(t=this.getPoint(e,i))&&(e.absoluteOffset=t)}else{var t=n[0],a=n[n.length-1];if(null!=t&&null!=a){n=a.x-t.x;var i,s=a.y-t.y,o=a=0;null!=(i=i.offset)&&(a=i.x,o=i.y),i=t.y+s/2+o*this.scale,e.absoluteOffset.x=t.x+n/2+a*this.scale,e.absoluteOffset.y=i}}},mxGraphView.prototype.getState=function(e,n){n=n||!1;var t=null;return null!=e&&(t=this.states.get(e),this.graph.isCellVisible(e)&&(null==t&&n&&this.graph.isCellVisible(e)?(t=this.createState(e),this.states.put(e,t)):n&&null!=t&&this.updateStyle&&(t.style=this.graph.getCellStyle(e)))),t},mxGraphView.prototype.isRendering=function(){return this.rendering},mxGraphView.prototype.setRendering=function(e){this.rendering=e},mxGraphView.prototype.isAllowEval=function(){return this.allowEval},mxGraphView.prototype.setAllowEval=function(e){this.allowEval=e},mxGraphView.prototype.getStates=function(){return this.states},mxGraphView.prototype.setStates=function(e){this.states=e},mxGraphView.prototype.getCellStates=function(e){if(null==e)return this.states;for(var n=[],t=0;t<e.length;t++){var a=this.getState(e[t]);null!=a&&n.push(a)}return n},mxGraphView.prototype.removeState=function(e){var n=null;return null!=e&&(null!=(n=this.states.remove(e))&&(this.graph.cellRenderer.destroy(n),n.destroy())),n},mxGraphView.prototype.createState=function(e){var n=this.graph.getCellStyle(e);return e=new mxCellState(this,e,n),this.graph.cellRenderer.initialize(e,this.isRendering()),e},mxGraphView.prototype.getCanvas=function(){return this.canvas},mxGraphView.prototype.getBackgroundPane=function(){return this.backgroundPane},mxGraphView.prototype.getDrawPane=function(){return this.drawPane},mxGraphView.prototype.getOverlayPane=function(){return this.overlayPane},mxGraphView.prototype.isContainerEvent=function(e){return(e=mxEvent.getSource(e))==this.graph.container||e.parentNode==this.backgroundPane||null!=e.parentNode&&e.parentNode.parentNode==this.backgroundPane||e==this.canvas.parentNode||e==this.canvas||e==this.backgroundPane||e==this.drawPane||e==this.overlayPane},mxGraphView.prototype.isScrollEvent=function(e){var n=mxUtils.getOffset(this.graph.container);e=new mxPoint(e.clientX-n.x,e.clientY-n.y);n=this.graph.container.offsetWidth;var t=this.graph.container.clientWidth;return t<n&&e.x>t+2&&e.x<=n||(n=this.graph.container.offsetHeight,(t=this.graph.container.clientHeight)<n&&e.y>t+2&&e.y<=n)},mxGraphView.prototype.init=function(){this.installListeners();var e=this.graph;e.dialect==mxConstants.DIALECT_SVG?this.createSvg():e.dialect==mxConstants.DIALECT_VML?this.createVml():this.createHtml()},mxGraphView.prototype.installListeners=function(){var a=this.graph,i=a.container;if(null!=i){mxEvent.addGestureListeners(i,mxUtils.bind(this,function(e){mxClient.IS_TOUCH&&a.isEditing()&&a.stopEditing(!a.isInvokesStopCellEditing()),this.isContainerEvent(e)&&(!mxClient.IS_IE&&!mxClient.IS_GC&&!mxClient.IS_OP&&!mxClient.IS_SF||!this.isScrollEvent(e))&&a.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e))}),mxUtils.bind(this,function(e){this.isContainerEvent(e)&&a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e))}),mxUtils.bind(this,function(e){this.isContainerEvent(e)&&a.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e))})),mxEvent.addListener(i,"dblclick",mxUtils.bind(this,function(e){a.dblClick(e)}));a.addMouseListener({mouseDown:function(e,n){a.panningHandler.hideMenu()},mouseMove:function(){},mouseUp:function(){}}),this.moveHandler=mxUtils.bind(this,function(e){var n,t;null!=a.tooltipHandler&&a.tooltipHandler.isHideOnHover()&&a.tooltipHandler.hide(),this.captureDocumentGesture&&a.isMouseDown&&!mxEvent.isConsumed(e)&&a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,(n=e,t=null,mxClient.IS_TOUCH&&(t=mxEvent.getClientX(n),n=mxEvent.getClientY(n),n=mxUtils.convertPoint(i,t,n),t=a.view.getState(a.getCellAt(n.x,n.y))),t)))}),this.endHandler=mxUtils.bind(this,function(e){this.captureDocumentGesture&&a.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e))}),mxEvent.addGestureListeners(document,null,this.moveHandler,this.endHandler)}},mxGraphView.prototype.createHtml=function(){var e=this.graph.container;null!=e&&(this.canvas=this.createHtmlPane("100%","100%"),this.backgroundPane=this.createHtmlPane("1px","1px"),this.drawPane=this.createHtmlPane("1px","1px"),this.overlayPane=this.createHtmlPane("1px","1px"),this.canvas.appendChild(this.backgroundPane),this.canvas.appendChild(this.drawPane),this.canvas.appendChild(this.overlayPane),e.appendChild(this.canvas),mxClient.IS_QUIRKS&&(e=mxUtils.bind(this,function(e){e=this.getGraphBounds(),this.updateHtmlCanvasSize(e.x+e.width+this.graph.border,e.y+e.height+this.graph.border)}),mxEvent.addListener(window,"resize",e)))},mxGraphView.prototype.updateHtmlCanvasSize=function(e,n){if(null!=this.graph.container){var t=this.graph.container.offsetHeight;this.canvas.style.width=this.graph.container.offsetWidth<e?e+"px":"100%",this.canvas.style.height=t<n?n+"px":"100%"}},mxGraphView.prototype.createHtmlPane=function(e,n){var t=document.createElement("DIV");return null!=e&&null!=n?(t.style.position="absolute",t.style.left="0px",t.style.top="0px",t.style.width=e,t.style.height=n):t.style.position="relative",t},mxGraphView.prototype.createVml=function(){var e=this.graph.container;if(null!=e){var n=e.offsetWidth,t=e.offsetHeight;this.canvas=this.createVmlPane(n,t),this.backgroundPane=this.createVmlPane(n,t),this.drawPane=this.createVmlPane(n,t),this.overlayPane=this.createVmlPane(n,t),this.canvas.appendChild(this.backgroundPane),this.canvas.appendChild(this.drawPane),this.canvas.appendChild(this.overlayPane),e.appendChild(this.canvas)}},mxGraphView.prototype.createVmlPane=function(e,n){var t=document.createElement(mxClient.VML_PREFIX+":group");return t.style.position="absolute",t.style.left="0px",t.style.top="0px",t.style.width=e+"px",t.style.height=n+"px",t.setAttribute("coordsize",e+","+n),t.setAttribute("coordorigin","0,0"),t},mxGraphView.prototype.createSvg=function(){var e=this.graph.container;this.canvas=document.createElementNS(mxConstants.NS_SVG,"g"),this.backgroundPane=document.createElementNS(mxConstants.NS_SVG,"g"),this.canvas.appendChild(this.backgroundPane),this.drawPane=document.createElementNS(mxConstants.NS_SVG,"g"),this.canvas.appendChild(this.drawPane),this.overlayPane=document.createElementNS(mxConstants.NS_SVG,"g"),this.canvas.appendChild(this.overlayPane);var n=document.createElementNS(mxConstants.NS_SVG,"svg");n.style.width="100%",n.style.height="100%",n.style.display="block",n.appendChild(this.canvas),null!=e&&(e.appendChild(n),"static"==mxUtils.getCurrentStyle(e).position&&(e.style.position="relative"))},mxGraphView.prototype.destroy=function(){var e=null!=this.canvas?this.canvas.ownerSVGElement:null;null==e&&(e=this.canvas),null!=e&&null!=e.parentNode&&(this.clear(this.currentRoot,!0),mxEvent.removeGestureListeners(document,null,this.moveHandler,this.endHandler),mxEvent.release(this.graph.container),e.parentNode.removeChild(e),this.overlayPane=this.drawPane=this.backgroundPane=this.canvas=this.endHandler=this.moveHandler=null)},mxCurrentRootChange.prototype.execute=function(){var e=this.view.currentRoot;this.view.currentRoot=this.previous,this.previous=e,null!=(e=this.view.graph.getTranslateForRoot(this.view.currentRoot))&&(this.view.translate=new mxPoint(-e.x,-e.y)),this.view.fireEvent(new mxEventObject(this.isUp?mxEvent.UP:mxEvent.DOWN,"root",this.view.currentRoot,"previous",this.previous)),this.isUp?(this.view.clear(this.view.currentRoot,!0),this.view.validate()):this.view.refresh(),this.isUp=!this.isUp},mxLoadResources&&mxResources.add(mxClient.basePath+"/resources/graph"),mxGraph.prototype=new mxEventSource,mxGraph.prototype.constructor=mxGraph,mxGraph.prototype.EMPTY_ARRAY=[],mxGraph.prototype.mouseListeners=null,mxGraph.prototype.isMouseDown=!1,mxGraph.prototype.model=null,mxGraph.prototype.view=null,mxGraph.prototype.stylesheet=null,mxGraph.prototype.selectionModel=null,mxGraph.prototype.cellEditor=null,mxGraph.prototype.cellRenderer=null,mxGraph.prototype.multiplicities=null,mxGraph.prototype.renderHint=null,mxGraph.prototype.dialect=null,mxGraph.prototype.gridSize=10,mxGraph.prototype.gridEnabled=!0,mxGraph.prototype.portsEnabled=!0,mxGraph.prototype.doubleTapEnabled=!0,mxGraph.prototype.doubleTapTimeout=700,mxGraph.prototype.doubleTapTolerance=25,mxGraph.prototype.lastTouchY=0,mxGraph.prototype.lastTouchY=0,mxGraph.prototype.lastTouchTime=0,mxGraph.prototype.gestureEnabled=!0,mxGraph.prototype.tolerance=4,mxGraph.prototype.defaultOverlap=.5,mxGraph.prototype.defaultParent=null,mxGraph.prototype.alternateEdgeStyle=null,mxGraph.prototype.backgroundImage=null,mxGraph.prototype.pageVisible=!1,mxGraph.prototype.pageBreaksVisible=!1,mxGraph.prototype.pageBreakColor="gray",mxGraph.prototype.pageBreakDashed=!0,mxGraph.prototype.minPageBreakDist=20,mxGraph.prototype.preferPageSize=!1,mxGraph.prototype.pageFormat=mxConstants.PAGE_FORMAT_A4_PORTRAIT,mxGraph.prototype.pageScale=1.5,mxGraph.prototype.enabled=!0,mxGraph.prototype.escapeEnabled=!0,mxGraph.prototype.invokesStopCellEditing=!0,mxGraph.prototype.enterStopsCellEditing=!1,mxGraph.prototype.useScrollbarsForPanning=!0,mxGraph.prototype.exportEnabled=!0,mxGraph.prototype.importEnabled=!0,mxGraph.prototype.cellsLocked=!1,mxGraph.prototype.cellsCloneable=!0,mxGraph.prototype.foldingEnabled=!0,mxGraph.prototype.cellsEditable=!0,mxGraph.prototype.cellsDeletable=!0,mxGraph.prototype.cellsMovable=!0,mxGraph.prototype.edgeLabelsMovable=!0,mxGraph.prototype.vertexLabelsMovable=!1,mxGraph.prototype.dropEnabled=!1,mxGraph.prototype.splitEnabled=!0,mxGraph.prototype.cellsResizable=!0,mxGraph.prototype.cellsBendable=!0,mxGraph.prototype.cellsSelectable=!0,mxGraph.prototype.cellsDisconnectable=!0,mxGraph.prototype.autoSizeCells=!1,mxGraph.prototype.autoScroll=!0,mxGraph.prototype.timerAutoScroll=!1,mxGraph.prototype.allowAutoPanning=!1,mxGraph.prototype.ignoreScrollbars=!1,mxGraph.prototype.autoExtend=!0,mxGraph.prototype.maximumGraphBounds=null,mxGraph.prototype.minimumGraphSize=null,mxGraph.prototype.minimumContainerSize=null,mxGraph.prototype.maximumContainerSize=null,mxGraph.prototype.resizeContainer=!1,mxGraph.prototype.border=0,mxGraph.prototype.ordered=!0,mxGraph.prototype.keepEdgesInForeground=!1,mxGraph.prototype.keepEdgesInBackground=!0,mxGraph.prototype.allowNegativeCoordinates=!0,mxGraph.prototype.constrainChildren=!0,mxGraph.prototype.extendParents=!0,mxGraph.prototype.extendParentsOnAdd=!0,mxGraph.prototype.collapseToPreferredSize=!0,mxGraph.prototype.zoomFactor=1.2,mxGraph.prototype.keepSelectionVisibleOnZoom=!1,mxGraph.prototype.centerZoom=!0,mxGraph.prototype.resetViewOnRootChange=!0,mxGraph.prototype.resetEdgesOnResize=!1,mxGraph.prototype.resetEdgesOnMove=!1,mxGraph.prototype.resetEdgesOnConnect=!0,mxGraph.prototype.allowLoops=!1,mxGraph.prototype.defaultLoopStyle=mxEdgeStyle.Loop,mxGraph.prototype.multigraph=!0,mxGraph.prototype.connectableEdges=!1,mxGraph.prototype.allowDanglingEdges=!0,mxGraph.prototype.cloneInvalidEdges=!1,mxGraph.prototype.disconnectOnMove=!0,mxGraph.prototype.labelsVisible=!0,mxGraph.prototype.htmlLabels=!1,mxGraph.prototype.swimlaneSelectionEnabled=!0,mxGraph.prototype.swimlaneNesting=!0,mxGraph.prototype.swimlaneIndicatorColorAttribute=mxConstants.STYLE_FILLCOLOR,mxGraph.prototype.imageBundles=null,mxGraph.prototype.minFitScale=.1,mxGraph.prototype.maxFitScale=8,mxGraph.prototype.panDx=0,mxGraph.prototype.panDy=0,mxGraph.prototype.collapsedImage=new mxImage(mxClient.imageBasePath+"/collapsed.gif",9,9),mxGraph.prototype.expandedImage=new mxImage(mxClient.imageBasePath+"/expanded.gif",9,9),mxGraph.prototype.warningImage=new mxImage("/assets/plugins/mxgraph/images/warning.gif",16,16),mxGraph.prototype.alreadyConnectedResource="none"!=mxClient.language?"alreadyConnected":"",mxGraph.prototype.containsValidationErrorsResource="none"!=mxClient.language?"containsValidationErrors":"",mxGraph.prototype.collapseExpandResource="none"!=mxClient.language?"collapse-expand":"",mxGraph.prototype.init=function(e){this.container=e,this.cellEditor=this.createCellEditor(),this.view.init(),this.sizeDidChange(),mxClient.IS_IE&&(mxEvent.addListener(window,"unload",mxUtils.bind(this,function(){this.destroy()})),mxEvent.addListener(e,"selectstart",mxUtils.bind(this,function(){return this.isEditing()}))),8==document.documentMode&&e.insertAdjacentHTML("beforeend",'<v:group style="DISPLAY: none;"></v:group>')},mxGraph.prototype.createHandlers=function(e){this.tooltipHandler=new mxTooltipHandler(this),this.tooltipHandler.setEnabled(!1),this.panningHandler=new mxPanningHandler(this),this.panningHandler.panningEnabled=!1,this.selectionCellsHandler=new mxSelectionCellsHandler(this),this.connectionHandler=new mxConnectionHandler(this),this.connectionHandler.setEnabled(!1),this.graphHandler=new mxGraphHandler(this)},mxGraph.prototype.createSelectionModel=function(){return new mxGraphSelectionModel(this)},mxGraph.prototype.createStylesheet=function(){return new mxStylesheet},mxGraph.prototype.createGraphView=function(){return new mxGraphView(this)},mxGraph.prototype.createCellRenderer=function(){return new mxCellRenderer},mxGraph.prototype.createCellEditor=function(){return new mxCellEditor(this)},mxGraph.prototype.getModel=function(){return this.model},mxGraph.prototype.getView=function(){return this.view},mxGraph.prototype.getStylesheet=function(){return this.stylesheet},mxGraph.prototype.setStylesheet=function(e){this.stylesheet=e},mxGraph.prototype.getSelectionModel=function(){return this.selectionModel},mxGraph.prototype.setSelectionModel=function(e){this.selectionModel=e},mxGraph.prototype.getSelectionCellsForChanges=function(e){for(var n=[],t=0;t<e.length;t++){var a=e[t];if(a.constructor!=mxRootChange){var i=null;a instanceof mxChildChange&&null==a.previous?i=a.child:null!=a.cell&&a.cell instanceof mxCell&&(i=a.cell),null!=i&&mxUtils.indexOf(n,i)<0&&n.push(i)}}return this.getModel().getTopmostCells(n)},mxGraph.prototype.graphModelChanged=function(e){for(var n=0;n<e.length;n++)this.processChange(e[n]);this.removeSelectionCells(this.getRemovedCellsForChanges(e)),this.view.validate(),this.sizeDidChange()},mxGraph.prototype.getRemovedCellsForChanges=function(e){for(var n=[],t=0;t<e.length;t++){var a=e[t];if(a instanceof mxRootChange)break;a instanceof mxChildChange?null!=a.previous&&null==a.parent&&(n=n.concat(this.model.getDescendants(a.child))):a instanceof mxVisibleChange&&(n=n.concat(this.model.getDescendants(a.cell)))}return n},mxGraph.prototype.processChange=function(e){if(e instanceof mxRootChange)this.clearSelection(),this.removeStateForCell(e.previous),this.resetViewOnRootChange&&(this.view.scale=1,this.view.translate.x=0,this.view.translate.y=0),this.fireEvent(new mxEventObject(mxEvent.ROOT));else if(e instanceof mxChildChange){var n=this.model.getParent(e.child);null!=n?this.view.invalidate(e.child,!0,!1,null!=e.previous):(this.removeStateForCell(e.child),this.view.currentRoot==e.child&&this.home()),n!=e.previous&&(null!=n&&this.view.invalidate(n,!1,!1),null!=e.previous&&this.view.invalidate(e.previous,!1,!1))}else e instanceof mxTerminalChange||e instanceof mxGeometryChange?this.view.invalidate(e.cell):e instanceof mxValueChange?this.view.invalidate(e.cell,!1,!1):e instanceof mxStyleChange?(this.view.invalidate(e.cell,!0,!0,!1),this.view.removeState(e.cell)):null!=e.cell&&e.cell instanceof mxCell&&this.removeStateForCell(e.cell)},mxGraph.prototype.removeStateForCell=function(e){for(var n=this.model.getChildCount(e),t=0;t<n;t++)this.removeStateForCell(this.model.getChildAt(e,t));this.view.removeState(e)},mxGraph.prototype.addCellOverlay=function(e,n){null==e.overlays&&(e.overlays=[]),e.overlays.push(n);var t=this.view.getState(e);return null!=t&&this.cellRenderer.redraw(t),this.fireEvent(new mxEventObject(mxEvent.ADD_OVERLAY,"cell",e,"overlay",n)),n},mxGraph.prototype.getCellOverlays=function(e){return e.overlays},mxGraph.prototype.removeCellOverlay=function(e,n){if(null==n)this.removeCellOverlays(e);else{var t=mxUtils.indexOf(e.overlays,n);0<=t?(e.overlays.splice(t,1),0==e.overlays.length&&(e.overlays=null),null!=(t=this.view.getState(e))&&this.cellRenderer.redraw(t),this.fireEvent(new mxEventObject(mxEvent.REMOVE_OVERLAY,"cell",e,"overlay",n))):n=null}return n},mxGraph.prototype.removeCellOverlays=function(e){var n=e.overlays;if(null!=n){e.overlays=null;var t=this.view.getState(e);for(null!=t&&this.cellRenderer.redraw(t),t=0;t<n.length;t++)this.fireEvent(new mxEventObject(mxEvent.REMOVE_OVERLAY,"cell",e,"overlay",n[t]))}return n},mxGraph.prototype.clearCellOverlays=function(e){e=null!=e?e:this.model.getRoot(),this.removeCellOverlays(e);for(var n=this.model.getChildCount(e),t=0;t<n;t++){var a=this.model.getChildAt(e,t);this.clearCellOverlays(a)}},mxGraph.prototype.setCellWarning=function(t,e,n,a){return null!=e&&0<e.length?(e=new mxCellOverlay(n=null!=n?n:this.warningImage,"<font color=red>"+e+"</font>"),a&&e.addListener(mxEvent.CLICK,mxUtils.bind(this,function(e,n){this.isEnabled()&&this.setSelectionCell(t)})),this.addCellOverlay(t,e)):(this.removeCellOverlays(t),null)},mxGraph.prototype.startEditing=function(e){this.startEditingAtCell(null,e)},mxGraph.prototype.startEditingAtCell=function(e,n){null==e&&(null!=(e=this.getSelectionCell())&&!this.isCellEditable(e)&&(e=null)),null!=e&&(this.fireEvent(new mxEventObject(mxEvent.START_EDITING,"cell",e,"event",n)),this.cellEditor.startEditing(e,n))},mxGraph.prototype.getEditingValue=function(e,n){return this.convertValueToString(e)},mxGraph.prototype.stopEditing=function(e){this.cellEditor.stopEditing(e)},mxGraph.prototype.labelChanged=function(e,n,t){this.model.beginUpdate();try{this.cellLabelChanged(e,n,this.isAutoSizeCell(e)),this.fireEvent(new mxEventObject(mxEvent.LABEL_CHANGED,"cell",e,"value",n,"event",t))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellLabelChanged=function(e,n,t){this.model.beginUpdate();try{this.model.setValue(e,n),t&&this.cellSizeUpdated(e,!1)}finally{this.model.endUpdate()}},mxGraph.prototype.escape=function(e){this.stopEditing(!0),this.connectionHandler.reset(),this.graphHandler.reset(),e=this.getSelectionCells();for(var n=0;n<e.length;n++){var t=this.view.getState(e[n]);null!=t&&null!=t.handler&&t.handler.reset()}},mxGraph.prototype.click=function(e){var n=e.getEvent(),t=e.getCell(),a=new mxEventObject(mxEvent.CLICK,"event",n,"cell",t);e.isConsumed()&&a.consume(),this.fireEvent(a),this.isEnabled()&&!mxEvent.isConsumed(n)&&!a.isConsumed()&&(null!=t?this.selectCellForEvent(t,n):(t=null,this.isSwimlaneSelectionEnabled()&&(t=this.getSwimlaneAt(e.getGraphX(),e.getGraphY())),null!=t?this.selectCellForEvent(t,n):this.isToggleEvent(n)||this.clearSelection()))},mxGraph.prototype.dblClick=function(e,n){var t=new mxEventObject(mxEvent.DOUBLE_CLICK,"event",e,"cell",n);this.fireEvent(t),this.isEnabled()&&!mxEvent.isConsumed(e)&&!t.isConsumed()&&null!=n&&this.isCellEditable(n)&&this.startEditingAtCell(n,e)},mxGraph.prototype.scrollPointToVisible=function(e,n,t,a){if(this.timerAutoScroll||!this.ignoreScrollbars&&!mxUtils.hasScrollbars(this.container))this.allowAutoPanning&&!this.panningHandler.active&&(null==this.panningManager&&(this.panningManager=this.createPanningManager()),this.panningManager.panTo(e+this.panDx,n+this.panDy));else{var i=this.container;if(a=null!=a?a:20,e>=i.scrollLeft&&n>=i.scrollTop&&e<=i.scrollLeft+i.clientWidth&&n<=i.scrollTop+i.clientHeight){var s=i.scrollLeft+i.clientWidth-e;if(s<a){if(e=i.scrollLeft,i.scrollLeft+=a-s,t&&e==i.scrollLeft){if(this.dialect==mxConstants.DIALECT_SVG){e=this.view.getDrawPane().ownerSVGElement;var o=this.container.scrollWidth+a-s}else o=Math.max(i.clientWidth,i.scrollWidth)+a-s,e=this.view.getCanvas();e.style.width=o+"px",i.scrollLeft+=a-s}}else(s=e-i.scrollLeft)<a&&(i.scrollLeft-=a-s);(s=i.scrollTop+i.clientHeight-n)<a?(e=i.scrollTop,i.scrollTop+=a-s,e==i.scrollTop&&t&&(this.dialect==mxConstants.DIALECT_SVG?(e=this.view.getDrawPane().ownerSVGElement,n=this.container.scrollHeight+a-s):(n=Math.max(i.clientHeight,i.scrollHeight)+a-s,e=this.view.getCanvas()),e.style.height=n+"px",i.scrollTop+=a-s)):(s=n-i.scrollTop)<a&&(i.scrollTop-=a-s)}}},mxGraph.prototype.createPanningManager=function(){return new mxPanningManager(this)},mxGraph.prototype.getBorderSizes=function(){function e(e){var n=0;n="thin"==e?2:"medium"==e?4:"thick"==e?6:parseInt(e);return isNaN(n)&&(n=0),n}var n=mxUtils.getCurrentStyle(this.container),t=new mxRectangle;return t.x=e(n.borderLeftWidth)+parseInt(n.paddingLeft||0),t.y=e(n.borderTopWidth)+parseInt(n.paddingTop||0),t.width=e(n.borderRightWidth)+parseInt(n.paddingRight||0),t.height=e(n.borderBottomWidth)+parseInt(n.paddingBottom||0),t},mxGraph.prototype.getPreferredPageSize=function(e,n,t){e=this.view.scale;var a=this.view.translate,i=this.pageFormat,s=e*this.pageScale;i=new mxRectangle(0,0,i.width*s,i.height*s);return n=this.pageBreaksVisible?Math.ceil(n/i.width):1,t=this.pageBreaksVisible?Math.ceil(t/i.height):1,new mxRectangle(0,0,n*i.width+2+a.x/e,t*i.height+2+a.y/e)},mxGraph.prototype.sizeDidChange=function(){var e=this.getGraphBounds();if(null!=this.container){var n=this.getBorder(),t=Math.max(0,e.x+e.width+1+n);n=Math.max(0,e.y+e.height+1+n);if(null!=this.minimumContainerSize&&(t=Math.max(t,this.minimumContainerSize.width),n=Math.max(n,this.minimumContainerSize.height)),this.resizeContainer&&this.doResizeContainer(t,n),this.preferPageSize||!mxClient.IS_IE&&this.pageVisible){var a=this.getPreferredPageSize(e,t,n);null!=a&&(t=a.width,n=a.height)}null!=this.minimumGraphSize&&(t=Math.max(t,this.minimumGraphSize.width*this.view.scale),n=Math.max(n,this.minimumGraphSize.height*this.view.scale)),t=Math.ceil(t-1),n=Math.ceil(n-1),this.dialect==mxConstants.DIALECT_SVG?((a=this.view.getDrawPane().ownerSVGElement).style.minWidth=Math.max(1,t)+"px",a.style.minHeight=Math.max(1,n)+"px",a.style.width="100%",a.style.height="100%"):mxClient.IS_QUIRKS?this.view.updateHtmlCanvasSize(Math.max(1,t),Math.max(1,n)):(this.view.canvas.style.minWidth=Math.max(1,t)+"px",this.view.canvas.style.minHeight=Math.max(1,n)+"px"),this.updatePageBreaks(this.pageBreaksVisible,t-1,n-1)}this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",e))},mxGraph.prototype.doResizeContainer=function(e,n){if(mxClient.IS_IE)if(mxClient.IS_QUIRKS){var t=this.getBorderSizes();e+=Math.max(2,t.x+t.width+1),n+=Math.max(2,t.y+t.height+1)}else 9<=document.documentMode?(e+=3,n+=5):(e+=1,n+=1);else n+=1;null!=this.maximumContainerSize&&(e=Math.min(this.maximumContainerSize.width,e),n=Math.min(this.maximumContainerSize.height,n)),this.container.style.width=Math.ceil(e)+"px",this.container.style.height=Math.ceil(n)+"px"},mxGraph.prototype.updatePageBreaks=function(e,n,t){var a=this.view.scale,i=this.view.translate,s=this.pageFormat,o=a*this.pageScale;i=new mxRectangle(a*i.x,a*i.y,s.width*o,s.height*o);if(e=e&&Math.min(i.width,i.height)>this.minPageBreakDist,i.x=mxUtils.mod(i.x,i.width),i.y=mxUtils.mod(i.y,i.height),s=e?Math.ceil((n-i.x)/i.width):0,e=e?Math.ceil((t-i.y)/i.height):0,null==this.horizontalPageBreaks&&0<s&&(this.horizontalPageBreaks=[]),null!=this.horizontalPageBreaks){for(o=0;o<=s;o++){var r=[new mxPoint(i.x+o*i.width,1),new mxPoint(i.x+o*i.width,t)];null!=this.horizontalPageBreaks[o]?(this.horizontalPageBreaks[o].scale=1,this.horizontalPageBreaks[o].points=r,this.horizontalPageBreaks[o].redraw()):((r=new mxPolyline(r,this.pageBreakColor,this.scale)).dialect=this.dialect,r.isDashed=this.pageBreakDashed,r.scale=a,r.init(this.view.backgroundPane),r.redraw(),this.horizontalPageBreaks[o]=r)}for(o=s;o<this.horizontalPageBreaks.length;o++)this.horizontalPageBreaks[o].destroy();this.horizontalPageBreaks.splice(s,this.horizontalPageBreaks.length-s)}if(null==this.verticalPageBreaks&&0<e&&(this.verticalPageBreaks=[]),null!=this.verticalPageBreaks){for(o=0;o<=e;o++)r=[new mxPoint(1,i.y+o*i.height),new mxPoint(n,i.y+o*i.height)],null!=this.verticalPageBreaks[o]?(this.verticalPageBreaks[o].scale=1,this.verticalPageBreaks[o].points=r,this.verticalPageBreaks[o].redraw()):((r=new mxPolyline(r,this.pageBreakColor,a)).dialect=this.dialect,r.isDashed=this.pageBreakDashed,r.scale=a,r.init(this.view.backgroundPane),r.redraw(),this.verticalPageBreaks[o]=r);for(o=e;o<this.verticalPageBreaks.length;o++)this.verticalPageBreaks[o].destroy();this.verticalPageBreaks.splice(e,this.verticalPageBreaks.length-e)}},mxGraph.prototype.getCellStyle=function(e){var n=this.model.getStyle(e),t=null;t=this.model.isEdge(e)?this.stylesheet.getDefaultEdgeStyle():this.stylesheet.getDefaultVertexStyle();return null!=n&&(t=this.postProcessCellStyle(this.stylesheet.getCellStyle(n,t))),null==t&&(t=mxGraph.prototype.EMPTY_ARRAY),t},mxGraph.prototype.postProcessCellStyle=function(e){if(null!=e){var n=e[mxConstants.STYLE_IMAGE],t=this.getImageFromBundles(n);null!=t?e[mxConstants.STYLE_IMAGE]=t:t=n,null!=t&&"data:image/"==t.substring(0,11)&&(0<(n=t.indexOf(","))&&(t=t.substring(0,n)+";base64,"+t.substring(n+1)),e[mxConstants.STYLE_IMAGE]=t)}return e},mxGraph.prototype.setCellStyle=function(e,n){if(null!=(n=n||this.getSelectionCells())){this.model.beginUpdate();try{for(var t=0;t<n.length;t++)this.model.setStyle(n[t],e)}finally{this.model.endUpdate()}}},mxGraph.prototype.toggleCellStyle=function(e,n,t){t=t||this.getSelectionCell(),this.toggleCellStyles(e,n,[t])},mxGraph.prototype.toggleCellStyles=function(e,n,t){var a;(n=null!=n&&n,null!=(t=t||this.getSelectionCells())&&0<t.length)&&(null!=(a=null!=(a=this.view.getState(t[0]))?a.style:this.getCellStyle(t[0]))&&(n=mxUtils.getValue(a,e,n)?0:1,this.setCellStyles(e,n,t)))},mxGraph.prototype.setCellStyles=function(e,n,t){t=t||this.getSelectionCells(),mxUtils.setCellStyles(this.model,t,e,n)},mxGraph.prototype.toggleCellStyleFlags=function(e,n,t){this.setCellStyleFlags(e,n,null,t)},mxGraph.prototype.setCellStyleFlags=function(e,n,t,a){if(null!=(a=a||this.getSelectionCells())&&0<a.length){var i;if(null==t)null!=(i=null!=(i=this.view.getState(a[0]))?i.style:this.getCellStyle(a[0]))&&(t=(parseInt(i[e]||0)&n)!=n);mxUtils.setCellStyleFlags(this.model,a,e,n,t)}},mxGraph.prototype.alignCells=function(e,n,t){if(null==n&&(n=this.getSelectionCells()),null!=n&&1<n.length){if(null==t)for(var a=0;a<n.length;a++){var i=this.getCellGeometry(n[a]);if(null!=i&&!this.model.isEdge(n[a]))if(null==t){if(e==mxConstants.ALIGN_CENTER){t=i.x+i.width/2;break}if(e==mxConstants.ALIGN_RIGHT)t=i.x+i.width;else if(e==mxConstants.ALIGN_TOP)t=i.y;else{if(e==mxConstants.ALIGN_MIDDLE){t=i.y+i.height/2;break}t=e==mxConstants.ALIGN_BOTTOM?i.y+i.height:i.x}}else t=e==mxConstants.ALIGN_RIGHT?Math.max(t,i.x+i.width):e==mxConstants.ALIGN_TOP?Math.min(t,i.y):e==mxConstants.ALIGN_BOTTOM?Math.max(t,i.y+i.height):Math.min(t,i.x)}if(null!=t){this.model.beginUpdate();try{for(a=0;a<n.length;a++)null!=(i=this.getCellGeometry(n[a]))&&!this.model.isEdge(n[a])&&(i=i.clone(),e==mxConstants.ALIGN_CENTER?i.x=t-i.width/2:e==mxConstants.ALIGN_RIGHT?i.x=t-i.width:e==mxConstants.ALIGN_TOP?i.y=t:e==mxConstants.ALIGN_MIDDLE?i.y=t-i.height/2:e==mxConstants.ALIGN_BOTTOM?i.y=t-i.height:i.x=t,this.model.setGeometry(n[a],i));this.fireEvent(new mxEventObject(mxEvent.ALIGN_CELLS,"align",e,"cells",n))}finally{this.model.endUpdate()}}}return n},mxGraph.prototype.flipEdge=function(e){if(null!=e&&null!=this.alternateEdgeStyle){this.model.beginUpdate();try{var n=this.model.getStyle(e);null==n||0==n.length?this.model.setStyle(e,this.alternateEdgeStyle):this.model.setStyle(e,null),this.resetEdge(e),this.fireEvent(new mxEventObject(mxEvent.FLIP_EDGE,"edge",e))}finally{this.model.endUpdate()}}return e},mxGraph.prototype.addImageBundle=function(e){this.imageBundles.push(e)},mxGraph.prototype.removeImageBundle=function(e){for(var n=[],t=0;t<this.imageBundles.length;t++)this.imageBundles[t]!=e&&n.push(this.imageBundles[t]);this.imageBundles=n},mxGraph.prototype.getImageFromBundles=function(e){if(null!=e)for(var n=0;n<this.imageBundles.length;n++){var t=this.imageBundles[n].getImage(e);if(null!=t)return t}return null},mxGraph.prototype.orderCells=function(e,n){null==n&&(n=mxUtils.sortCells(this.getSelectionCells(),!0)),this.model.beginUpdate();try{this.cellsOrdered(n,e),this.fireEvent(new mxEventObject(mxEvent.ORDER_CELLS,"back",e,"cells",n))}finally{this.model.endUpdate()}return n},mxGraph.prototype.cellsOrdered=function(e,n){if(null!=e){this.model.beginUpdate();try{for(var t=0;t<e.length;t++){var a=this.model.getParent(e[t]);n?this.model.add(a,e[t],t):this.model.add(a,e[t],this.model.getChildCount(a)-1)}this.fireEvent(new mxEventObject(mxEvent.CELLS_ORDERED,"back",n,"cells",e))}finally{this.model.endUpdate()}}},mxGraph.prototype.groupCells=function(e,n,t){null==t&&(t=mxUtils.sortCells(this.getSelectionCells(),!0)),t=this.getCellsForGroup(t),null==e&&(e=this.createGroupCell(t));var a=this.getBoundsForGroup(e,t,n);if(0<t.length&&null!=a){var i=this.model.getParent(e);null==i&&(i=this.model.getParent(t[0])),this.model.beginUpdate();try{null==this.getCellGeometry(e)&&this.model.setGeometry(e,new mxGeometry);var s=this.model.getChildCount(i);this.cellsAdded([e],i,s,null,null,!1),s=this.model.getChildCount(e),this.cellsAdded(t,e,s,null,null,!1,!1),this.cellsMoved(t,-a.x,-a.y,!1,!0),this.cellsResized([e],[a]),this.fireEvent(new mxEventObject(mxEvent.GROUP_CELLS,"group",e,"border",n,"cells",t))}finally{this.model.endUpdate()}}return e},mxGraph.prototype.getCellsForGroup=function(e){var n=[];if(null!=e&&0<e.length){var t=this.model.getParent(e[0]);n.push(e[0]);for(var a=1;a<e.length;a++)this.model.getParent(e[a])==t&&n.push(e[a])}return n},mxGraph.prototype.getBoundsForGroup=function(e,n,t){return null!=(n=this.getBoundingBoxFromGeometry(n))&&(this.isSwimlane(e)&&(e=this.getStartSize(e),n.x-=e.width,n.y-=e.height,n.width+=e.width,n.height+=e.height),n.x-=t,n.y-=t,n.width+=2*t,n.height+=2*t),n},mxGraph.prototype.createGroupCell=function(e){return(e=new mxCell("")).setVertex(!0),e.setConnectable(!1),e},mxGraph.prototype.ungroupCells=function(e){var n=[];if(null==e){e=this.getSelectionCells();for(var t=[],a=0;a<e.length;a++)0<this.model.getChildCount(e[a])&&t.push(e[a]);e=t}if(null!=e&&0<e.length){this.model.beginUpdate();try{for(a=0;a<e.length;a++){if(null!=(i=this.model.getChildren(e[a]))&&0<i.length){var i=i.slice(),s=this.model.getParent(e[a]),o=this.model.getChildCount(s);this.cellsAdded(i,s,o,null,null,!0),n=n.concat(i)}}this.cellsRemoved(this.addAllEdges(e)),this.fireEvent(new mxEventObject(mxEvent.UNGROUP_CELLS,"cells",e))}finally{this.model.endUpdate()}}return n},mxGraph.prototype.removeCellsFromParent=function(e){null==e&&(e=this.getSelectionCells()),this.model.beginUpdate();try{var n=this.getDefaultParent(),t=this.model.getChildCount(n);this.cellsAdded(e,n,t,null,null,!0),this.fireEvent(new mxEventObject(mxEvent.REMOVE_CELLS_FROM_PARENT,"cells",e))}finally{this.model.endUpdate()}return e},mxGraph.prototype.updateGroupBounds=function(e,n,t){null==e&&(e=this.getSelectionCells()),n=null!=n?n:0,t=null!=t&&t,this.model.beginUpdate();try{for(var a=0;a<e.length;a++){if(null!=(r=this.getCellGeometry(e[a]))){var i=this.getChildCells(e[a]);if(null!=i&&0<i.length){var s=this.getBoundingBoxFromGeometry(i);if(0<s.width&&0<s.height){var o=this.isSwimlane(e[a])?this.getStartSize(e[a]):new mxRectangle,r=r.clone();t&&(r.x+=s.x-o.width-n,r.y+=s.y-o.height-n),r.width=s.width+o.width+2*n,r.height=s.height+o.height+2*n,this.model.setGeometry(e[a],r),this.moveCells(i,-s.x+o.width+n,-s.y+o.height+n)}}}}}finally{this.model.endUpdate()}return e},mxGraph.prototype.cloneCells=function(e,n){n=null==n||n;var t=null;if(null!=e){for(var a={},i=(t=[],0);i<e.length;i++){a[s=mxCellPath.create(e[i])]=e[i],t.push(e[i])}if(0<t.length){var s=this.view.scale,o=this.view.translate;for(t=this.model.cloneCells(e,!0),i=0;i<e.length;i++)if(!n&&this.model.isEdge(t[i])&&null!=this.getEdgeValidationError(t[i],this.model.getTerminal(t[i],!0),this.model.getTerminal(t[i],!1)))t[i]=null;else{var r=this.model.getGeometry(t[i]);if(null!=r){var l=this.view.getState(e[i]),d=this.view.getState(this.model.getParent(e[i]));if(null!=l&&null!=d){var c=d.origin.x;d=d.origin.y;if(this.model.isEdge(t[i])){l=l.absolutePoints;for(var m=this.model.getTerminal(e[i],!0),u=mxCellPath.create(m);null!=m&&null==a[u];)m=this.model.getParent(m),u=mxCellPath.create(m);for(null==m&&r.setTerminalPoint(new mxPoint(l[0].x/s-o.x,l[0].y/s-o.y),!0),m=this.model.getTerminal(e[i],!1),u=mxCellPath.create(m);null!=m&&null==a[u];)m=this.model.getParent(m),u=mxCellPath.create(m);if(null==m&&(m=l.length-1,r.setTerminalPoint(new mxPoint(l[m].x/s-o.x,l[m].y/s-o.y),!1)),null!=(r=r.points))for(l=0;l<r.length;l++)r[l].x+=c,r[l].y+=d}else r.x+=c,r.y+=d}}}}else t=[]}return t},mxGraph.prototype.insertVertex=function(e,n,t,a,i,s,o,r,l){return n=this.createVertex(e,n,t,a,i,s,o,r,l),this.addCell(n,e)},mxGraph.prototype.createVertex=function(e,n,t,a,i,s,o,r,l){return(e=new mxGeometry(a,i,s,o)).relative=null!=l&&l,(t=new mxCell(t,e,r)).setId(n),t.setVertex(!0),t.setConnectable(!0),t},mxGraph.prototype.insertEdge=function(e,n,t,a,i,s){return n=this.createEdge(e,n,t,a,i,s),this.addEdge(n,e,a,i)},mxGraph.prototype.createEdge=function(e,n,t,a,i,s){return(e=new mxCell(t,new mxGeometry,s)).setId(n),e.setEdge(!0),e.geometry.relative=!0,e},mxGraph.prototype.addEdge=function(e,n,t,a,i){return this.addCell(e,n,i,t,a)},mxGraph.prototype.addCell=function(e,n,t,a,i){return this.addCells([e],n,t,a,i)[0]},mxGraph.prototype.addCells=function(e,n,t,a,i){null==n&&(n=this.getDefaultParent()),null==t&&(t=this.model.getChildCount(n)),this.model.beginUpdate();try{this.cellsAdded(e,n,t,a,i,!1,!0),this.fireEvent(new mxEventObject(mxEvent.ADD_CELLS,"cells",e,"parent",n,"index",t,"source",a,"target",i))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellsAdded=function(e,n,t,a,i,s,o){if(null!=e&&null!=n&&null!=t){this.model.beginUpdate();try{for(var r=null!=(d=s?this.view.getState(n):null)?d.origin:null,l=new mxPoint(0,0),d=0;d<e.length;d++)if(null==e[d])t--;else{var c=this.model.getParent(e[d]);if(null!=r&&e[d]!=n&&n!=c){var m=this.view.getState(c),u=null!=m?m.origin:l;if(null!=(p=this.model.getGeometry(e[d]))){var p,g=u.x-r.x,v=u.y-r.y;(p=p.clone()).translate(g,v),!p.relative&&this.model.isVertex(e[d])&&!this.isAllowNegativeCoordinates()&&(p.x=Math.max(0,p.x),p.y=Math.max(0,p.y)),this.model.setGeometry(e[d],p)}}n==c&&t+d>this.model.getChildCount(n)&&t--,this.model.add(n,e[d],t+d),this.isExtendParentsOnAdd()&&this.isExtendParent(e[d])&&this.extendParent(e[d]),(null==o||o)&&this.constrainChild(e[d]),null!=a&&this.cellConnected(e[d],a,!0),null!=i&&this.cellConnected(e[d],i,!1)}this.fireEvent(new mxEventObject(mxEvent.CELLS_ADDED,"cells",e,"parent",n,"index",t,"source",a,"target",i,"absolute",s))}finally{this.model.endUpdate()}}},mxGraph.prototype.removeCells=function(e,n){n=null==n||n,null==e&&(e=this.getDeletableCells(this.getSelectionCells())),n&&(e=this.getDeletableCells(this.addAllEdges(e))),this.model.beginUpdate();try{this.cellsRemoved(e),this.fireEvent(new mxEventObject(mxEvent.REMOVE_CELLS,"cells",e,"includeEdges",n))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellsRemoved=function(e){if(null!=e&&0<e.length){var n=this.view.scale,t=this.view.translate;this.model.beginUpdate();try{for(var a={},i=0;i<e.length;i++){var s=mxCellPath.create(e[i]);a[s]=e[i]}for(i=0;i<e.length;i++){for(var o=this.getConnections(e[i]),r=0;r<o.length;r++)if(null==a[s=mxCellPath.create(o[r])]){if(null!=(d=this.model.getGeometry(o[r]))){var l=this.view.getState(o[r]);if(null!=l){var d=d.clone(),c=l.getVisibleTerminal(!0)==e[i],m=l.absolutePoints,u=c?0:m.length-1;d.setTerminalPoint(new mxPoint(m[u].x/n-t.x,m[u].y/n-t.y),c),this.model.setTerminal(o[r],null,c),this.model.setGeometry(o[r],d)}}}this.model.remove(e[i])}this.fireEvent(new mxEventObject(mxEvent.CELLS_REMOVED,"cells",e))}finally{this.model.endUpdate()}}},mxGraph.prototype.splitEdge=function(e,n,t,a,i){a=a||0,i=i||0,null==t&&(t=this.cloneCells([e])[0]);var s=this.model.getParent(e),o=this.model.getTerminal(e,!0);this.model.beginUpdate();try{this.cellsMoved(n,a,i,!1,!1),this.cellsAdded(n,s,this.model.getChildCount(s),null,null,!0),this.cellsAdded([t],s,this.model.getChildCount(s),o,n[0],!1),this.cellConnected(e,n[0],!0),this.fireEvent(new mxEventObject(mxEvent.SPLIT_EDGE,"edge",e,"cells",n,"newEdge",t,"dx",a,"dy",i))}finally{this.model.endUpdate()}return t},mxGraph.prototype.toggleCells=function(e,n,t){null==n&&(n=this.getSelectionCells()),t&&(n=this.addAllEdges(n)),this.model.beginUpdate();try{this.cellsToggled(n,e),this.fireEvent(new mxEventObject(mxEvent.TOGGLE_CELLS,"show",e,"cells",n,"includeEdges",t))}finally{this.model.endUpdate()}return n},mxGraph.prototype.cellsToggled=function(e,n){if(null!=e&&0<e.length){this.model.beginUpdate();try{for(var t=0;t<e.length;t++)this.model.setVisible(e[t],n)}finally{this.model.endUpdate()}}},mxGraph.prototype.foldCells=function(e,n,t,a){n=null!=n&&n,null==t&&(t=this.getFoldableCells(this.getSelectionCells(),e)),this.stopEditing(!1),this.model.beginUpdate();try{this.cellsFolded(t,e,n,a),this.fireEvent(new mxEventObject(mxEvent.FOLD_CELLS,"collapse",e,"recurse",n,"cells",t))}finally{this.model.endUpdate()}return t},mxGraph.prototype.cellsFolded=function(e,n,t,a){if(null!=e&&0<e.length){this.model.beginUpdate();try{for(var i=0;i<e.length;i++)if((!a||this.isCellFoldable(e[i],n))&&n!=this.isCellCollapsed(e[i])&&(this.model.setCollapsed(e[i],n),this.swapBounds(e[i],n),this.isExtendParent(e[i])&&this.extendParent(e[i]),t)){var s=this.model.getChildren(e[i]);this.foldCells(s,n,t)}this.fireEvent(new mxEventObject(mxEvent.CELLS_FOLDED,"cells",e,"collapse",n,"recurse",t))}finally{this.model.endUpdate()}}},mxGraph.prototype.swapBounds=function(e,n){if(null!=e){var t=this.model.getGeometry(e);null!=t&&(t=t.clone(),this.updateAlternateBounds(e,t,n),t.swap(),this.model.setGeometry(e,t))}},mxGraph.prototype.updateAlternateBounds=function(e,n,t){if(null!=e&&null!=n){if(t=null!=(t=this.view.getState(e))?t.style:this.getCellStyle(e),null==n.alternateBounds){var a=n;this.collapseToPreferredSize&&(null!=(e=this.getPreferredSizeForCell(e))&&(a=e,0<(e=mxUtils.getValue(t,mxConstants.STYLE_STARTSIZE))&&(a.height=Math.max(a.height,e)))),n.alternateBounds=new mxRectangle(0,0,a.width,a.height)}if(null!=n.alternateBounds){n.alternateBounds.x=n.x,n.alternateBounds.y=n.y;var i=mxUtils.toRadians(t[mxConstants.STYLE_ROTATION]||"0");0!=i&&(e=n.alternateBounds.getCenterX()-n.getCenterX(),t=n.alternateBounds.getCenterY()-n.getCenterY(),a=Math.cos(i),i=Math.sin(i),n.alternateBounds.x+=a*e-i*t-e,n.alternateBounds.y+=i*e+a*t-t)}}},mxGraph.prototype.addAllEdges=function(e){var n=e.slice();return n.concat(this.getAllEdges(e))},mxGraph.prototype.getAllEdges=function(e){var n=[];if(null!=e)for(var t=0;t<e.length;t++){for(var a=this.model.getEdgeCount(e[t]),i=0;i<a;i++)n.push(this.model.getEdgeAt(e[t],i));a=this.model.getChildren(e[t]),n=n.concat(this.getAllEdges(a))}return n},mxGraph.prototype.updateCellSize=function(e,n){n=null!=n&&n,this.model.beginUpdate();try{this.cellSizeUpdated(e,n),this.fireEvent(new mxEventObject(mxEvent.UPDATE_CELL_SIZE,"cell",e,"ignoreChildren",n))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellSizeUpdated=function(e,n){if(null!=e){this.model.beginUpdate();try{var t=this.getPreferredSizeForCell(e),a=this.model.getGeometry(e);if(null!=t&&null!=a){var i=this.isCellCollapsed(e);a=a.clone();if(this.isSwimlane(e)){var s=this.view.getState(e),o=null!=s?s.style:this.getCellStyle(e),r=this.model.getStyle(e);null==r&&(r=""),mxUtils.getValue(o,mxConstants.STYLE_HORIZONTAL,!0)?(r=mxUtils.setStyle(r,mxConstants.STYLE_STARTSIZE,t.height+8),i&&(a.height=t.height+8),a.width=t.width):(r=mxUtils.setStyle(r,mxConstants.STYLE_STARTSIZE,t.width+8),i&&(a.width=t.width+8),a.height=t.height),this.model.setStyle(e,r)}else a.width=t.width,a.height=t.height;if(!n&&!i){var l=this.view.getBounds(this.model.getChildren(e));if(null!=l){var d=this.view.translate,c=this.view.scale,m=(l.y+l.height)/c-a.y-d.y;a.width=Math.max(a.width,(l.x+l.width)/c-a.x-d.x),a.height=Math.max(a.height,m)}}this.cellsResized([e],[a])}}finally{this.model.endUpdate()}}},mxGraph.prototype.getPreferredSizeForCell=function(e){var n=null;if(null!=e){var t=this.view.getState(e),a=null!=t?t.style:this.getCellStyle(e);if(null!=a&&!this.model.isEdge(e)){var i=a[mxConstants.STYLE_FONTSIZE]||mxConstants.DEFAULT_FONTSIZE,s=0;n=0;null==this.getImage(t)&&null==a[mxConstants.STYLE_IMAGE]||a[mxConstants.STYLE_SHAPE]!=mxConstants.SHAPE_LABEL||(a[mxConstants.STYLE_VERTICAL_ALIGN]==mxConstants.ALIGN_MIDDLE&&(s+=parseFloat(a[mxConstants.STYLE_IMAGE_WIDTH])||mxLabel.prototype.imageSize),a[mxConstants.STYLE_ALIGN]!=mxConstants.ALIGN_CENTER&&(n+=parseFloat(a[mxConstants.STYLE_IMAGE_HEIGHT])||mxLabel.prototype.imageSize)),s+=2*(a[mxConstants.STYLE_SPACING]||0),s+=a[mxConstants.STYLE_SPACING_LEFT]||0,s+=a[mxConstants.STYLE_SPACING_RIGHT]||0,n+=2*(a[mxConstants.STYLE_SPACING]||0),n+=a[mxConstants.STYLE_SPACING_TOP]||0,n+=a[mxConstants.STYLE_SPACING_BOTTOM]||0,null!=(t=this.getFoldingImage(t))&&(s+=t.width+8),n=null!=(t=this.getLabel(e))&&0<t.length?(this.isHtmlLabel(e)||(t=t.replace(/\n/g,"<br>")),e=(i=mxUtils.getSizeForString(t,i,a[mxConstants.STYLE_FONTFAMILY])).width+s,n=i.height+n,mxUtils.getValue(a,mxConstants.STYLE_HORIZONTAL,!0)||(a=n,n=e,e=a),this.gridEnabled&&(e=this.snap(e+this.gridSize/2),n=this.snap(n+this.gridSize/2)),new mxRectangle(0,0,e,n)):new mxRectangle(0,0,a=4*this.gridSize,a)}}return n},mxGraph.prototype.handleGesture=function(e,n){if(.2<Math.abs(1-n.scale)){var t=this.view.scale,a=this.view.translate,i=e.width*n.scale,s=e.height*n.scale,o=e.y-(s-e.height)/2;t=new mxRectangle(this.snap((e.x-(i-e.width)/2)/t)-a.x,this.snap(o/t)-a.y,this.snap(i/t),this.snap(s/t));this.resizeCell(e.cell,t)}},mxGraph.prototype.resizeCell=function(e,n){return this.resizeCells([e],[n])[0]},mxGraph.prototype.resizeCells=function(e,n){this.model.beginUpdate();try{this.cellsResized(e,n),this.fireEvent(new mxEventObject(mxEvent.RESIZE_CELLS,"cells",e,"bounds",n))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellsResized=function(e,n){if(null!=e&&null!=n&&e.length==n.length){this.model.beginUpdate();try{for(var t=0;t<e.length;t++){var a=n[t],i=this.model.getGeometry(e[t]);if(null!=i&&(i.x!=a.x||i.y!=a.y||i.width!=a.width||i.height!=a.height)){if((i=i.clone()).relative){var s=i.offset;null!=s&&(s.x+=a.x-i.x,s.y+=a.y-i.y)}else i.x=a.x,i.y=a.y;i.width=a.width,i.height=a.height,!i.relative&&this.model.isVertex(e[t])&&!this.isAllowNegativeCoordinates()&&(i.x=Math.max(0,i.x),i.y=Math.max(0,i.y)),this.model.setGeometry(e[t],i),this.isExtendParent(e[t])&&this.extendParent(e[t])}}this.resetEdgesOnResize&&this.resetEdges(e),this.fireEvent(new mxEventObject(mxEvent.CELLS_RESIZED,"cells",e,"bounds",n))}finally{this.model.endUpdate()}}},mxGraph.prototype.extendParent=function(e){if(null!=e){var n=this.model.getParent(e),t=this.model.getGeometry(n);null!=n&&null!=t&&!this.isCellCollapsed(n)&&(null!=(e=this.model.getGeometry(e))&&(t.width<e.x+e.width||t.height<e.y+e.height))&&((t=t.clone()).width=Math.max(t.width,e.x+e.width),t.height=Math.max(t.height,e.y+e.height),this.cellsResized([n],[t]))}},mxGraph.prototype.importCells=function(e,n,t,a,i){return this.moveCells(e,n,t,!0,a,i)},mxGraph.prototype.moveCells=function(e,n,t,a,i,s){if(n=null!=n?n:0,t=null!=t?t:0,a=null!=a&&a,null!=e&&(0!=n||0!=t||a||null!=i)){this.model.beginUpdate();try{a&&(e=this.cloneCells(e,this.isCloneInvalidEdges()),null==i&&(i=this.getDefaultParent()));var o=this.isAllowNegativeCoordinates();if(null!=i&&this.setAllowNegativeCoordinates(!0),this.cellsMoved(e,n,t,!a&&this.isDisconnectOnMove()&&this.isAllowDanglingEdges(),null==i),this.setAllowNegativeCoordinates(o),null!=i){var r=this.model.getChildCount(i);this.cellsAdded(e,i,r,null,null,!0)}this.fireEvent(new mxEventObject(mxEvent.MOVE_CELLS,"cells",e,"dx",n,"dy",t,"clone",a,"target",i,"event",s))}finally{this.model.endUpdate()}}return e},mxGraph.prototype.cellsMoved=function(e,n,t,a,i){if(null!=e&&(0!=n||0!=t)){this.model.beginUpdate();try{a&&this.disconnectGraph(e);for(var s=0;s<e.length;s++)this.translateCell(e[s],n,t),i&&this.constrainChild(e[s]);this.resetEdgesOnMove&&this.resetEdges(e),this.fireEvent(new mxEventObject(mxEvent.CELLS_MOVED,"cells",e,"dx",t,"dy",t,"disconnect",a))}finally{this.model.endUpdate()}}},mxGraph.prototype.translateCell=function(e,n,t){var a=this.model.getGeometry(e);null!=a&&((a=a.clone()).translate(n,t),!a.relative&&this.model.isVertex(e)&&!this.isAllowNegativeCoordinates()&&(a.x=Math.max(0,a.x),a.y=Math.max(0,a.y)),a.relative&&!this.model.isEdge(e)&&(null==a.offset?a.offset=new mxPoint(n,t):(a.offset.x+=n,a.offset.y+=t)),this.model.setGeometry(e,a))},mxGraph.prototype.getCellContainmentArea=function(e){if(null!=e&&!this.model.isEdge(e)){var n=this.model.getParent(e);if(n==this.getDefaultParent()||n==this.getCurrentRoot())return this.getMaximumGraphBounds();if(null!=n&&n!=this.getDefaultParent())if(null!=(i=this.model.getGeometry(n))){var t=e=0,a=i.width,i=i.height;return this.isSwimlane(n)&&(e=(n=this.getStartSize(n)).width,a-=n.width,t=n.height,i-=n.height),new mxRectangle(e,t,a,i)}}return null},mxGraph.prototype.getMaximumGraphBounds=function(){return this.maximumGraphBounds},mxGraph.prototype.constrainChild=function(e){if(null!=e){var n=this.model.getGeometry(e),t=this.isConstrainChild(e)?this.getCellContainmentArea(e):this.getMaximumGraphBounds();null!=n&&null!=t&&!n.relative&&(n.x<t.x||n.y<t.y||t.width<n.x+n.width||t.height<n.y+n.height)&&(e=this.getOverlap(e),0<t.width&&(n.x=Math.min(n.x,t.x+t.width-(1-e)*n.width)),0<t.height&&(n.y=Math.min(n.y,t.y+t.height-(1-e)*n.height)),n.x=Math.max(n.x,t.x-n.width*e),n.y=Math.max(n.y,t.y-n.height*e))}},mxGraph.prototype.resetEdges=function(e){if(null!=e){for(var n={},t=0;t<e.length;t++){var a=mxCellPath.create(e[t]);n[a]=e[t]}this.model.beginUpdate();try{for(t=0;t<e.length;t++){var i=this.model.getEdges(e[t]);if(null!=i)for(a=0;a<i.length;a++){var s=this.view.getState(i[a]),o=null!=s?s.getVisibleTerminal(!0):this.view.getVisibleTerminal(i[a],!0),r=null!=s?s.getVisibleTerminal(!1):this.view.getVisibleTerminal(i[a],!1),l=mxCellPath.create(o),d=mxCellPath.create(r);(null==n[l]||null==n[d])&&this.resetEdge(i[a])}this.resetEdges(this.model.getChildren(e[t]))}}finally{this.model.endUpdate()}}},mxGraph.prototype.resetEdge=function(e){var n=this.model.getGeometry(e);return null!=n&&null!=n.points&&0<n.points.length&&((n=n.clone()).points=[],this.model.setGeometry(e,n)),e},mxGraph.prototype.getAllConnectionConstraints=function(e,n){return null!=e&&null!=e.shape&&null!=e.shape.stencil?e.shape.stencil.constraints:null},mxGraph.prototype.getConnectionConstraint=function(e,n,t){n=null;var a=e.style[t?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X];if(null!=a){var i=e.style[t?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y];null!=i&&(n=new mxPoint(parseFloat(a),parseFloat(i)))}return a=!1,null!=n&&(a=mxUtils.getValue(e.style,t?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,!0)),new mxConnectionConstraint(n,a)},mxGraph.prototype.setConnectionConstraint=function(e,n,t,a){if(null!=a){this.model.beginUpdate();try{null==a||null==a.point?(this.setCellStyles(t?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X,null,[e]),this.setCellStyles(t?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y,null,[e]),this.setCellStyles(t?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,null,[e])):null!=a.point&&(this.setCellStyles(t?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X,a.point.x,[e]),this.setCellStyles(t?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y,a.point.y,[e]),a.perimeter?this.setCellStyles(t?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,null,[e]):this.setCellStyles(t?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,"0",[e]))}finally{this.model.endUpdate()}}},mxGraph.prototype.getConnectionPoint=function(e,n){var t=null;if(null!=e){var a=this.view.getPerimeterBounds(e),i=new mxPoint(a.getCenterX(),a.getCenterY()),s=e.style[mxConstants.STYLE_DIRECTION],o=0;if(null!=s&&("north"==s?o+=270:"west"==s?o+=180:"south"==s&&(o+=90),"north"==s||"south"==s)){a.x+=a.width/2-a.height/2,a.y+=a.height/2-a.width/2;var r=a.width;a.width=a.height,a.height=r}if(null!=n.point){var l=t=1,d=0,c=0;if(this.getModel().isVertex(e.cell)){var m=e.style[mxConstants.STYLE_FLIPH],u=e.style[mxConstants.STYLE_FLIPV];null!=e.shape.stencil&&(m=1==mxUtils.getValue(e.style,"stencilFlipH",0)||m,u=1==mxUtils.getValue(e.style,"stencilFlipV",0)||u),"north"!=s&&"south"!=s||(r=m,m=u,u=r),m&&(t=-1,d=-a.width),u&&(l=-1,c=-a.height)}t=new mxPoint(a.x+n.point.x*a.width*t-d,a.y+n.point.y*a.height*l-c)}s=e.style[mxConstants.STYLE_ROTATION]||0,n.perimeter?(0!=o&&null!=t&&(r=a=0,90==o?r=1:180==o?a=-1:270==s&&(r=-1),t=mxUtils.getRotatedPoint(t,a,r,i)),null!=t&&n.perimeter&&(t=this.view.getPerimeterPoint(e,t,!1))):s+=o,0!=s&&null!=t&&(o=mxUtils.toRadians(s),a=Math.cos(o),r=Math.sin(o),t=mxUtils.getRotatedPoint(t,a,r,i))}return t},mxGraph.prototype.connectCell=function(e,n,t,a){this.model.beginUpdate();try{var i=this.model.getTerminal(e,t);this.cellConnected(e,n,t,a),this.fireEvent(new mxEventObject(mxEvent.CONNECT_CELL,"edge",e,"terminal",n,"source",t,"previous",i))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellConnected=function(e,n,t,a){if(null!=e){this.model.beginUpdate();try{var i=this.model.getTerminal(e,t);this.setConnectionConstraint(e,n,t,a),this.isPortsEnabled()&&(a=null,this.isPort(n)&&(a=n.getId(),n=this.getTerminalForPort(n,t)),this.setCellStyles(t?mxConstants.STYLE_SOURCE_PORT:mxConstants.STYLE_TARGET_PORT,a,[e])),this.model.setTerminal(e,n,t),this.resetEdgesOnConnect&&this.resetEdge(e),this.fireEvent(new mxEventObject(mxEvent.CELL_CONNECTED,"edge",e,"terminal",n,"source",t,"previous",i))}finally{this.model.endUpdate()}}},mxGraph.prototype.disconnectGraph=function(e){if(null!=e){this.model.beginUpdate();try{for(var n=this.view.scale,t=this.view.translate,a={},i=0;i<e.length;i++){a[mxCellPath.create(e[i])]=e[i]}for(i=0;i<e.length;i++)if(this.model.isEdge(e[i])){if(null!=(r=this.model.getGeometry(e[i]))){var s=this.view.getState(e[i]),o=this.view.getState(this.model.getParent(e[i]));if(null!=s&&null!=o){var r=r.clone(),l=-o.origin.x,d=-o.origin.y,c=s.absolutePoints,m=this.model.getTerminal(e[i],!0);if(null!=m&&this.isCellDisconnectable(e[i],m,!0)){for(var u=mxCellPath.create(m);null!=m&&null==a[u];)m=this.model.getParent(m),u=mxCellPath.create(m);null==m&&(r.setTerminalPoint(new mxPoint(c[0].x/n-t.x+l,c[0].y/n-t.y+d),!0),this.model.setTerminal(e[i],null,!0))}var p=this.model.getTerminal(e[i],!1);if(null!=p&&this.isCellDisconnectable(e[i],p,!1)){for(var g=mxCellPath.create(p);null!=p&&null==a[g];)p=this.model.getParent(p),g=mxCellPath.create(p);if(null==p){var v=c.length-1;r.setTerminalPoint(new mxPoint(c[v].x/n-t.x+l,c[v].y/n-t.y+d),!1),this.model.setTerminal(e[i],null,!1)}}this.model.setGeometry(e[i],r)}}}}finally{this.model.endUpdate()}}},mxGraph.prototype.getCurrentRoot=function(){return this.view.currentRoot},mxGraph.prototype.getTranslateForRoot=function(e){return null},mxGraph.prototype.isPort=function(e){return!1},mxGraph.prototype.getTerminalForPort=function(e,n){return this.model.getParent(e)},mxGraph.prototype.getChildOffsetForCell=function(e){return null},mxGraph.prototype.enterGroup=function(e){null!=(e=e||this.getSelectionCell())&&this.isValidRoot(e)&&(this.view.setCurrentRoot(e),this.clearSelection())},mxGraph.prototype.exitGroup=function(){var e=this.model.getRoot(),n=this.getCurrentRoot();if(null!=n){for(var t=this.model.getParent(n);t!=e&&!this.isValidRoot(t)&&this.model.getParent(t)!=e;)t=this.model.getParent(t);t==e||this.model.getParent(t)==e?this.view.setCurrentRoot(null):this.view.setCurrentRoot(t),null!=this.view.getState(n)&&this.setSelectionCell(n)}},mxGraph.prototype.home=function(){var e=this.getCurrentRoot();null!=e&&(this.view.setCurrentRoot(null),null!=this.view.getState(e)&&this.setSelectionCell(e))},mxGraph.prototype.isValidRoot=function(e){return null!=e},mxGraph.prototype.getGraphBounds=function(){return this.view.getGraphBounds()},mxGraph.prototype.getCellBounds=function(e,n,t){var a=[e];if(n&&(a=a.concat(this.model.getEdges(e))),a=this.view.getBounds(a),t){t=this.model.getChildCount(e);for(var i=0;i<t;i++){var s=this.getCellBounds(this.model.getChildAt(e,i),n,!0);null!=a?a.add(s):a=s}}return a},mxGraph.prototype.getBoundingBoxFromGeometry=function(e,n){n=null!=n&&n;var t=null;if(null!=e)for(var a=0;a<e.length;a++)if(n||this.model.isVertex(e[a])){var i=this.getCellGeometry(e[a]);if(null!=i){var s=i.points;if(null!=s&&0<s.length){for(var o=new mxRectangle(s[0].x,s[0].y,0,0),r=function(e){null!=e&&o.add(new mxRectangle(e.x,e.y,0,0))},l=1;l<s.length;l++)r(s[l]);r(i.getTerminalPoint(!0)),r(i.getTerminalPoint(!1))}null==t?t=new mxRectangle(i.x,i.y,i.width,i.height):t.add(i)}}return t},mxGraph.prototype.refresh=function(e){this.view.clear(e,null==e),this.view.validate(),this.sizeDidChange(),this.fireEvent(new mxEventObject(mxEvent.REFRESH))},mxGraph.prototype.snap=function(e){return this.gridEnabled&&(e=Math.round(e/this.gridSize)*this.gridSize),e},mxGraph.prototype.panGraph=function(e,n){if(this.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.container))this.container.scrollLeft=-e,this.container.scrollTop=-n;else{var t=this.view.getCanvas();if(this.dialect==mxConstants.DIALECT_SVG)if(0==e&&0==n){if(mxClient.IS_IE?t.setAttribute("transform","translate("+e+","+n+")"):t.removeAttribute("transform"),null!=this.shiftPreview1){for(var a=this.shiftPreview1.firstChild;null!=a;){var i=a.nextSibling;this.container.appendChild(a),a=i}for(this.shiftPreview1.parentNode.removeChild(this.shiftPreview1),this.shiftPreview1=null,this.container.appendChild(t.parentNode),a=this.shiftPreview2.firstChild;null!=a;)i=a.nextSibling,this.container.appendChild(a),a=i;this.shiftPreview2.parentNode.removeChild(this.shiftPreview2),this.shiftPreview2=null}}else{if(t.setAttribute("transform","translate("+e+","+n+")"),null==this.shiftPreview1){this.shiftPreview1=document.createElement("div"),this.shiftPreview1.style.position="absolute",this.shiftPreview1.style.overflow="visible",this.shiftPreview2=document.createElement("div"),this.shiftPreview2.style.position="absolute",this.shiftPreview2.style.overflow="visible";var s=this.shiftPreview1;for(a=this.container.firstChild;null!=a;)i=a.nextSibling,a!=t.parentNode?s.appendChild(a):s=this.shiftPreview2,a=i;this.container.insertBefore(this.shiftPreview1,t.parentNode),this.container.appendChild(this.shiftPreview2)}this.shiftPreview1.style.left=e+"px",this.shiftPreview1.style.top=n+"px",this.shiftPreview2.style.left=e+"px",this.shiftPreview2.style.top=n+"px"}else t.style.left=e+"px",t.style.top=n+"px";this.panDx=e,this.panDy=n,this.fireEvent(new mxEventObject(mxEvent.PAN))}},mxGraph.prototype.zoomIn=function(){this.zoom(this.zoomFactor)},mxGraph.prototype.zoomOut=function(){this.zoom(1/this.zoomFactor)},mxGraph.prototype.zoomActual=function(){1==this.view.scale?this.view.setTranslate(0,0):(this.view.translate.x=0,this.view.translate.y=0,this.view.setScale(1))},mxGraph.prototype.zoomTo=function(e,n){this.zoom(e/this.view.scale,n)},mxGraph.prototype.zoom=function(e,n){n=null!=n?n:this.centerZoom;var t=this.view.scale*e,a=this.view.getState(this.getSelectionCell());if(this.keepSelectionVisibleOnZoom&&null!=a)a=new mxRectangle(a.x*e,a.y*e,a.width*e,a.height*e),this.view.scale=t,this.scrollRectToVisible(a)||(this.view.revalidate(),this.view.setScale(t));else if(n&&!mxUtils.hasScrollbars(this.container)){a=this.container.offsetWidth;var i=this.container.offsetHeight;if(1<e){var s=(e-1)/(2*t);a=a*-s,i=i*-s}else a*=s=(1/e-1)/(2*this.view.scale),i*=s;this.view.scaleAndTranslate(t,this.view.translate.x+a,this.view.translate.y+i)}else this.view.setScale(t),mxUtils.hasScrollbars(this.container)&&(i=a=0,n&&(a=this.container.offsetWidth*(e-1)/2,i=this.container.offsetHeight*(e-1)/2),this.container.scrollLeft=Math.round(this.container.scrollLeft*e+a),this.container.scrollTop=Math.round(this.container.scrollTop*e+i))},mxGraph.prototype.zoomToRect=function(e){var n=this.container.clientWidth/e.width/(this.container.clientHeight/e.height);e.x=Math.max(0,e.x),e.y=Math.max(0,e.y);var t=Math.min(this.container.scrollWidth,e.x+e.width),a=Math.min(this.container.scrollHeight,e.y+e.height);e.width=t-e.x,e.height=a-e.y,n<1?(t=((n=e.height/n)-e.height)/2,e.height=n,n=Math.min(e.y,t),e.y-=n,a=Math.min(this.container.scrollHeight,e.y+e.height),e.height=a-e.y):(t=((n*=e.width)-e.width)/2,e.width=n,n=Math.min(e.x,t),e.x-=n,t=Math.min(this.container.scrollWidth,e.x+e.width),e.width=t-e.x),n=this.container.clientWidth/e.width,t=this.view.scale*n,mxUtils.hasScrollbars(this.container)?(this.view.setScale(t),this.container.scrollLeft=Math.round(e.x*n),this.container.scrollTop=Math.round(e.y*n)):this.view.scaleAndTranslate(t,this.view.translate.x-e.x/this.view.scale,this.view.translate.y-e.y/this.view.scale)},mxGraph.prototype.fit=function(e,n){if(null!=this.container){e=null!=e?e:0,n=null!=n&&n;var t=this.container.clientWidth,a=this.container.clientHeight,i=this.view.getGraphBounds();n&&null!=i.x&&null!=i.y&&(i.width+=i.x,i.height+=i.y,i.x=0,i.y=0);var s=this.view.scale,o=i.width/s,r=i.height/s;null!=this.backgroundImage&&(o=Math.max(o,this.backgroundImage.width-i.x/s),r=Math.max(r,this.backgroundImage.height-i.y/s));var l=n?e:2*e;t=Math.floor(100*Math.min(t/(o+l),a/(r+l)))/100;null!=this.minFitScale&&(t=Math.max(t,this.minFitScale)),null!=this.maxFitScale&&(t=Math.min(t,this.maxFitScale)),n?this.view.scale!=t&&this.view.setScale(t):mxUtils.hasScrollbars(this.container)?(this.view.setScale(t),null!=i.x&&(this.container.scrollLeft=Math.round(i.x/s)*t-e-Math.max(0,(this.container.clientWidth-o*t)/2)),null!=i.y&&(this.container.scrollTop=Math.round(i.y/s)*t-e-Math.max(0,(this.container.clientHeight-r*t)/2))):this.view.scaleAndTranslate(t,null!=i.x?Math.floor(this.view.translate.x-i.x/s+e+1):e,null!=i.y?Math.floor(this.view.translate.y-i.y/s+e+1):e)}return this.view.scale},mxGraph.prototype.scrollCellToVisible=function(e,n){var t=-this.view.translate.x,a=-this.view.translate.y,i=this.view.getState(e);null!=i&&(t=new mxRectangle(t+i.x,a+i.y,i.width,i.height),n&&null!=this.container&&(a=this.container.clientWidth,i=this.container.clientHeight,t.x=t.getCenterX()-a/2,t.width=a,t.y=t.getCenterY()-i/2,t.height=i),this.scrollRectToVisible(t)&&this.view.setTranslate(this.view.translate.x,this.view.translate.y))},mxGraph.prototype.scrollRectToVisible=function(e){var n=!1;if(null!=e){var t=this.container.offsetWidth,a=this.container.offsetHeight,i=Math.min(t,e.width),s=Math.min(a,e.height);if(mxUtils.hasScrollbars(this.container)){t=this.container,e.x+=this.view.translate.x,e.y+=this.view.translate.y;var o=t.scrollLeft-e.x;a=Math.max(o-t.scrollLeft,0);0<o?t.scrollLeft-=o+2:0<(o=e.x+i-t.scrollLeft-t.clientWidth)&&(t.scrollLeft+=o+2),i=t.scrollTop-e.y,o=Math.max(0,i-t.scrollTop),0<i?t.scrollTop-=i+2:0<(i=e.y+s-t.scrollTop-t.clientHeight)&&(t.scrollTop+=i+2),!this.useScrollbarsForPanning&&(0!=a||0!=o)&&this.view.setTranslate(a,o)}else{o=-this.view.translate.x;var r=-this.view.translate.y,l=this.view.scale;e.x+i>o+t&&(this.view.translate.x-=(e.x+i-t-o)/l,n=!0),e.y+s>r+a&&(this.view.translate.y-=(e.y+s-a-r)/l,n=!0),e.x<o&&(this.view.translate.x+=(o-e.x)/l,n=!0),e.y<r&&(this.view.translate.y+=(r-e.y)/l,n=!0),n&&(this.view.refresh(),null!=this.selectionCellsHandler&&this.selectionCellsHandler.refresh())}}return n},mxGraph.prototype.getCellGeometry=function(e){return this.model.getGeometry(e)},mxGraph.prototype.isCellVisible=function(e){return this.model.isVisible(e)},mxGraph.prototype.isCellCollapsed=function(e){return this.model.isCollapsed(e)},mxGraph.prototype.isCellConnectable=function(e){return this.model.isConnectable(e)},mxGraph.prototype.isOrthogonal=function(e){var n=e.style[mxConstants.STYLE_ORTHOGONAL];return null!=n?n:(e=this.view.getEdgeStyle(e))==mxEdgeStyle.SegmentConnector||e==mxEdgeStyle.ElbowConnector||e==mxEdgeStyle.SideToSide||e==mxEdgeStyle.TopToBottom||e==mxEdgeStyle.EntityRelation||e==mxEdgeStyle.OrthConnector},mxGraph.prototype.isLoop=function(e){var n=e.getVisibleTerminalState(!0);return e=e.getVisibleTerminalState(!1),null!=n&&n==e},mxGraph.prototype.isCloneEvent=function(e){return mxEvent.isControlDown(e)},mxGraph.prototype.isToggleEvent=function(e){return mxClient.IS_MAC?mxEvent.isMetaDown(e):mxEvent.isControlDown(e)},mxGraph.prototype.isGridEnabledEvent=function(e){return null!=e&&!mxEvent.isAltDown(e)},mxGraph.prototype.isConstrainedEvent=function(e){return mxEvent.isShiftDown(e)},mxGraph.prototype.isForceMarqueeEvent=function(e){return mxEvent.isAltDown(e)},mxGraph.prototype.validationAlert=function(e){mxUtils.alert(e)},mxGraph.prototype.isEdgeValid=function(e,n,t){return null==this.getEdgeValidationError(e,n,t)},mxGraph.prototype.getEdgeValidationError=function(e,n,t){if(null!=e&&!this.isAllowDanglingEdges()&&(null==n||null==t))return"";if(null!=e&&null==this.model.getTerminal(e,!0)&&null==this.model.getTerminal(e,!1))return null;if(!this.allowLoops&&n==t&&null!=n||!this.isValidConnection(n,t))return"";if(null==n||null==t)return this.allowDanglingEdges?null:"";var a="";this.multigraph||(1<(i=this.model.getEdgesBetween(n,t,!0)).length||1==i.length&&i[0]!=e)&&(a+=(mxResources.get(this.alreadyConnectedResource)||this.alreadyConnectedResource)+"\n");var i=this.model.getDirectedEdgeCount(n,!0,e),s=this.model.getDirectedEdgeCount(t,!1,e);if(null!=this.multiplicities)for(var o=0;o<this.multiplicities.length;o++){var r=this.multiplicities[o].check(this,e,n,t,i,s);null!=r&&(a+=r)}return null!=(r=this.validateEdge(e,n,t))&&(a+=r),0<a.length?a:null},mxGraph.prototype.validateEdge=function(e,n,t){return null},mxGraph.prototype.validateGraph=function(e,n){e=null!=e?e:this.model.getRoot(),n=null!=n?n:{};for(var t=!0,a=this.model.getChildCount(e),i=0;i<a;i++){var s=this.model.getChildAt(e,i),o=n;this.isValidRoot(s)&&(o={}),null!=(o=this.validateGraph(s,o))?this.setCellWarning(s,o.replace(/\n/g,"<br>")):this.setCellWarning(s,null),t=t&&null==o}return a="",this.isCellCollapsed(e)&&!t&&(a+=(mxResources.get(this.containsValidationErrorsResource)||this.containsValidationErrorsResource)+"\n"),a=this.model.isEdge(e)?a+(this.getEdgeValidationError(e,this.model.getTerminal(e,!0),this.model.getTerminal(e,!1))||""):a+(this.getCellValidationError(e)||""),null!=(i=this.validateCell(e,n))&&(a+=i),null==this.model.getParent(e)&&this.view.validate(),0<a.length||!t?a:null},mxGraph.prototype.getCellValidationError=function(e){var n=this.model.getDirectedEdgeCount(e,!0),t=this.model.getDirectedEdgeCount(e,!1);e=this.model.getValue(e);var a="";if(null!=this.multiplicities)for(var i=0;i<this.multiplicities.length;i++){var s=this.multiplicities[i];s.source&&mxUtils.isNode(e,s.type,s.attr,s.value)&&(0==s.max&&0<n||1==s.min&&0==n||1==s.max&&1<n)?a+=s.countError+"\n":!s.source&&mxUtils.isNode(e,s.type,s.attr,s.value)&&(0==s.max&&0<t||1==s.min&&0==t||1==s.max&&1<t)&&(a+=s.countError+"\n")}return 0<a.length?a:null},mxGraph.prototype.validateCell=function(e,n){return null},mxGraph.prototype.getBackgroundImage=function(){return this.backgroundImage},mxGraph.prototype.setBackgroundImage=function(e){this.backgroundImage=e},mxGraph.prototype.getFoldingImage=function(e){if(null!=e&&this.foldingEnabled&&!this.getModel().isEdge(e.cell)){var n=this.isCellCollapsed(e.cell);if(this.isCellFoldable(e.cell,!n))return n?this.collapsedImage:this.expandedImage}return null},mxGraph.prototype.convertValueToString=function(e){if(null!=(e=this.model.getValue(e))){if(mxUtils.isNode(e))return e.nodeName;if("function"==typeof e.toString)return e.toString()}return""},mxGraph.prototype.getLabel=function(e){var n="";if(this.labelsVisible&&null!=e){var t=null!=(t=this.view.getState(e))?t.style:this.getCellStyle(e);mxUtils.getValue(t,mxConstants.STYLE_NOLABEL,!1)||(n=this.convertValueToString(e))}return n},mxGraph.prototype.isHtmlLabel=function(e){return this.isHtmlLabels()},mxGraph.prototype.isHtmlLabels=function(){return this.htmlLabels},mxGraph.prototype.setHtmlLabels=function(e){this.htmlLabels=e},mxGraph.prototype.isWrapping=function(e){var n=this.view.getState(e);return null!=(e=null!=n?n.style:this.getCellStyle(e))&&"wrap"==e[mxConstants.STYLE_WHITE_SPACE]},mxGraph.prototype.isLabelClipped=function(e){var n=this.view.getState(e);return null!=(e=null!=n?n.style:this.getCellStyle(e))&&"hidden"==e[mxConstants.STYLE_OVERFLOW]},mxGraph.prototype.getTooltip=function(e,t,n,a){var i=null;return null!=e&&(null==e.control||t!=e.control.node&&t.parentNode!=e.control.node||(i=this.collapseExpandResource,i=mxResources.get(i)||i),null==i&&null!=e.overlays&&e.overlays.visit(function(e,n){null!=i||t!=n.node&&t.parentNode!=n.node||(i=n.overlay.toString())}),null==i&&(null!=(n=this.selectionCellsHandler.getHandler(e.cell))&&"function"==typeof n.getTooltipForNode&&(i=n.getTooltipForNode(t))),null==i&&(i=this.getTooltipForCell(e.cell))),i},mxGraph.prototype.getTooltipForCell=function(e){return null!=e&&null!=e.getTooltip?e.getTooltip():this.convertValueToString(e)},mxGraph.prototype.getCursorForCell=function(e){return null},mxGraph.prototype.getStartSize=function(e){var n=new mxRectangle,t=this.view.getState(e);return null!=(e=null!=t?t.style:this.getCellStyle(e))&&(t=parseInt(mxUtils.getValue(e,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE)),mxUtils.getValue(e,mxConstants.STYLE_HORIZONTAL,!0)?n.height=t:n.width=t),n},mxGraph.prototype.getImage=function(e){return null!=e&&null!=e.style?e.style[mxConstants.STYLE_IMAGE]:null},mxGraph.prototype.getVerticalAlign=function(e){return null!=e&&null!=e.style?e.style[mxConstants.STYLE_VERTICAL_ALIGN]||mxConstants.ALIGN_MIDDLE:null},mxGraph.prototype.getIndicatorColor=function(e){return null!=e&&null!=e.style?e.style[mxConstants.STYLE_INDICATOR_COLOR]:null},mxGraph.prototype.getIndicatorGradientColor=function(e){return null!=e&&null!=e.style?e.style[mxConstants.STYLE_INDICATOR_GRADIENTCOLOR]:null},mxGraph.prototype.getIndicatorShape=function(e){return null!=e&&null!=e.style?e.style[mxConstants.STYLE_INDICATOR_SHAPE]:null},mxGraph.prototype.getIndicatorImage=function(e){return null!=e&&null!=e.style?e.style[mxConstants.STYLE_INDICATOR_IMAGE]:null},mxGraph.prototype.getBorder=function(){return this.border},mxGraph.prototype.setBorder=function(e){this.border=e},mxGraph.prototype.isSwimlane=function(e){var n;if(null!=e&&this.model.getParent(e)!=this.model.getRoot()&&(null!=(n=null!=(n=this.view.getState(e))?n.style:this.getCellStyle(e))&&!this.model.isEdge(e)))return n[mxConstants.STYLE_SHAPE]==mxConstants.SHAPE_SWIMLANE;return!1},mxGraph.prototype.isResizeContainer=function(){return this.resizeContainer},mxGraph.prototype.setResizeContainer=function(e){this.resizeContainer=e},mxGraph.prototype.isEnabled=function(){return this.enabled},mxGraph.prototype.setEnabled=function(e){this.enabled=e},mxGraph.prototype.isEscapeEnabled=function(){return this.escapeEnabled},mxGraph.prototype.setEscapeEnabled=function(e){this.escapeEnabled=e},mxGraph.prototype.isInvokesStopCellEditing=function(){return this.invokesStopCellEditing},mxGraph.prototype.setInvokesStopCellEditing=function(e){this.invokesStopCellEditing=e},mxGraph.prototype.isEnterStopsCellEditing=function(){return this.enterStopsCellEditing},mxGraph.prototype.setEnterStopsCellEditing=function(e){this.enterStopsCellEditing=e},mxGraph.prototype.isCellLocked=function(e){var n=this.model.getGeometry(e);return this.isCellsLocked()||null!=n&&this.model.isVertex(e)&&n.relative},mxGraph.prototype.isCellsLocked=function(){return this.cellsLocked},mxGraph.prototype.setCellsLocked=function(e){this.cellsLocked=e},mxGraph.prototype.getCloneableCells=function(e){return this.model.filterCells(e,mxUtils.bind(this,function(e){return this.isCellCloneable(e)}))},mxGraph.prototype.isCellCloneable=function(e){var n=this.view.getState(e);return e=null!=n?n.style:this.getCellStyle(e),this.isCellsCloneable()&&0!=e[mxConstants.STYLE_CLONEABLE]},mxGraph.prototype.isCellsCloneable=function(){return this.cellsCloneable},mxGraph.prototype.setCellsCloneable=function(e){this.cellsCloneable=e},mxGraph.prototype.getExportableCells=function(e){return this.model.filterCells(e,mxUtils.bind(this,function(e){return this.canExportCell(e)}))},mxGraph.prototype.canExportCell=function(e){return this.exportEnabled},mxGraph.prototype.getImportableCells=function(e){return this.model.filterCells(e,mxUtils.bind(this,function(e){return this.canImportCell(e)}))},mxGraph.prototype.canImportCell=function(e){return this.importEnabled},mxGraph.prototype.isCellSelectable=function(e){return this.isCellsSelectable()},mxGraph.prototype.isCellsSelectable=function(){return this.cellsSelectable},mxGraph.prototype.setCellsSelectable=function(e){this.cellsSelectable=e},mxGraph.prototype.getDeletableCells=function(e){return this.model.filterCells(e,mxUtils.bind(this,function(e){return this.isCellDeletable(e)}))},mxGraph.prototype.isCellDeletable=function(e){var n=this.view.getState(e);return e=null!=n?n.style:this.getCellStyle(e),this.isCellsDeletable()&&0!=e[mxConstants.STYLE_DELETABLE]},mxGraph.prototype.isCellsDeletable=function(){return this.cellsDeletable},mxGraph.prototype.setCellsDeletable=function(e){this.cellsDeletable=e},mxGraph.prototype.isLabelMovable=function(e){return!this.isCellLocked(e)&&(this.model.isEdge(e)&&this.edgeLabelsMovable||this.model.isVertex(e)&&this.vertexLabelsMovable)},mxGraph.prototype.getMovableCells=function(e){return this.model.filterCells(e,mxUtils.bind(this,function(e){return this.isCellMovable(e)}))},mxGraph.prototype.isCellMovable=function(e){var n=null!=(n=this.view.getState(e))?n.style:this.getCellStyle(e);return this.isCellsMovable()&&!this.isCellLocked(e)&&0!=n[mxConstants.STYLE_MOVABLE]},mxGraph.prototype.isCellsMovable=function(){return this.cellsMovable},mxGraph.prototype.setCellsMovable=function(e){this.cellsMovable=e},mxGraph.prototype.isGridEnabled=function(){return this.gridEnabled},mxGraph.prototype.setGridEnabled=function(e){this.gridEnabled=e},mxGraph.prototype.isPortsEnabled=function(){return this.portsEnabled},mxGraph.prototype.setPortsEnabled=function(e){this.portsEnabled=e},mxGraph.prototype.getGridSize=function(){return this.gridSize},mxGraph.prototype.setGridSize=function(e){this.gridSize=e},mxGraph.prototype.getTolerance=function(){return this.tolerance},mxGraph.prototype.setTolerance=function(e){this.tolerance=e},mxGraph.prototype.isVertexLabelsMovable=function(){return this.vertexLabelsMovable},mxGraph.prototype.setVertexLabelsMovable=function(e){this.vertexLabelsMovable=e},mxGraph.prototype.isEdgeLabelsMovable=function(){return this.edgeLabelsMovable},mxGraph.prototype.setEdgeLabelsMovable=function(e){this.edgeLabelsMovable=e},mxGraph.prototype.isSwimlaneNesting=function(){return this.swimlaneNesting},mxGraph.prototype.setSwimlaneNesting=function(e){this.swimlaneNesting=e},mxGraph.prototype.isSwimlaneSelectionEnabled=function(){return this.swimlaneSelectionEnabled},mxGraph.prototype.setSwimlaneSelectionEnabled=function(e){this.swimlaneSelectionEnabled=e},mxGraph.prototype.isMultigraph=function(){return this.multigraph},mxGraph.prototype.setMultigraph=function(e){this.multigraph=e},mxGraph.prototype.isAllowLoops=function(){return this.allowLoops},mxGraph.prototype.setAllowDanglingEdges=function(e){this.allowDanglingEdges=e},mxGraph.prototype.isAllowDanglingEdges=function(){return this.allowDanglingEdges},mxGraph.prototype.setConnectableEdges=function(e){this.connectableEdges=e},mxGraph.prototype.isConnectableEdges=function(){return this.connectableEdges},mxGraph.prototype.setCloneInvalidEdges=function(e){this.cloneInvalidEdges=e},mxGraph.prototype.isCloneInvalidEdges=function(){return this.cloneInvalidEdges},mxGraph.prototype.setAllowLoops=function(e){this.allowLoops=e},mxGraph.prototype.isDisconnectOnMove=function(){return this.disconnectOnMove},mxGraph.prototype.setDisconnectOnMove=function(e){this.disconnectOnMove=e},mxGraph.prototype.isDropEnabled=function(){return this.dropEnabled},mxGraph.prototype.setDropEnabled=function(e){this.dropEnabled=e},mxGraph.prototype.isSplitEnabled=function(){return this.splitEnabled},mxGraph.prototype.setSplitEnabled=function(e){this.splitEnabled=e},mxGraph.prototype.isCellResizable=function(e){var n=null!=(n=this.view.getState(e))?n.style:this.getCellStyle(e);return this.isCellsResizable()&&!this.isCellLocked(e)&&0!=n[mxConstants.STYLE_RESIZABLE]},mxGraph.prototype.isCellsResizable=function(){return this.cellsResizable},mxGraph.prototype.setCellsResizable=function(e){this.cellsResizable=e},mxGraph.prototype.isTerminalPointMovable=function(e,n){return!0},mxGraph.prototype.isCellBendable=function(e){var n=null!=(n=this.view.getState(e))?n.style:this.getCellStyle(e);return this.isCellsBendable()&&!this.isCellLocked(e)&&0!=n[mxConstants.STYLE_BENDABLE]},mxGraph.prototype.isCellsBendable=function(){return this.cellsBendable},mxGraph.prototype.setCellsBendable=function(e){this.cellsBendable=e},mxGraph.prototype.isCellEditable=function(e){var n=null!=(n=this.view.getState(e))?n.style:this.getCellStyle(e);return this.isCellsEditable()&&!this.isCellLocked(e)&&0!=n[mxConstants.STYLE_EDITABLE]},mxGraph.prototype.isCellsEditable=function(){return this.cellsEditable},mxGraph.prototype.setCellsEditable=function(e){this.cellsEditable=e},mxGraph.prototype.isCellDisconnectable=function(e,n,t){return this.isCellsDisconnectable()&&!this.isCellLocked(e)},mxGraph.prototype.isCellsDisconnectable=function(){return this.cellsDisconnectable},mxGraph.prototype.setCellsDisconnectable=function(e){this.cellsDisconnectable=e},mxGraph.prototype.isValidSource=function(e){return null==e&&this.allowDanglingEdges||null!=e&&(!this.model.isEdge(e)||this.connectableEdges)&&this.isCellConnectable(e)},mxGraph.prototype.isValidTarget=function(e){return this.isValidSource(e)},mxGraph.prototype.isValidConnection=function(e,n){return this.isValidSource(e)&&this.isValidTarget(n)},mxGraph.prototype.setConnectable=function(e){this.connectionHandler.setEnabled(e)},mxGraph.prototype.isConnectable=function(e){return this.connectionHandler.isEnabled()},mxGraph.prototype.setTooltips=function(e){this.tooltipHandler.setEnabled(e)},mxGraph.prototype.setPanning=function(e){this.panningHandler.panningEnabled=e},mxGraph.prototype.isEditing=function(e){if(null==this.cellEditor)return!1;var n=this.cellEditor.getEditingCell();return null==e?null!=n:e==n},mxGraph.prototype.isAutoSizeCell=function(e){var n=this.view.getState(e);return e=null!=n?n.style:this.getCellStyle(e),this.isAutoSizeCells()||1==e[mxConstants.STYLE_AUTOSIZE]},mxGraph.prototype.isAutoSizeCells=function(){return this.autoSizeCells},mxGraph.prototype.setAutoSizeCells=function(e){this.autoSizeCells=e},mxGraph.prototype.isExtendParent=function(e){return!this.getModel().isEdge(e)&&this.isExtendParents()},mxGraph.prototype.isExtendParents=function(){return this.extendParents},mxGraph.prototype.setExtendParents=function(e){this.extendParents=e},mxGraph.prototype.isExtendParentsOnAdd=function(){return this.extendParentsOnAdd},mxGraph.prototype.setExtendParentsOnAdd=function(e){this.extendParentsOnAdd=e},mxGraph.prototype.isConstrainChild=function(e){return this.isConstrainChildren()&&!this.getModel().isEdge(this.getModel().getParent(e))},mxGraph.prototype.isConstrainChildren=function(){return this.constrainChildren},mxGraph.prototype.setConstrainChildren=function(e){this.constrainChildren=e},mxGraph.prototype.isAllowNegativeCoordinates=function(){return this.allowNegativeCoordinates},mxGraph.prototype.setAllowNegativeCoordinates=function(e){this.allowNegativeCoordinates=e},mxGraph.prototype.getOverlap=function(e){return this.isAllowOverlapParent(e)?this.defaultOverlap:0},mxGraph.prototype.isAllowOverlapParent=function(e){return!1},mxGraph.prototype.getFoldableCells=function(e,n){return this.model.filterCells(e,mxUtils.bind(this,function(e){return this.isCellFoldable(e,n)}))},mxGraph.prototype.isCellFoldable=function(e,n){var t=null!=(t=this.view.getState(e))?t.style:this.getCellStyle(e);return 0<this.model.getChildCount(e)&&0!=t[mxConstants.STYLE_FOLDABLE]},mxGraph.prototype.isValidDropTarget=function(e,n,t){return null!=e&&(this.isSplitEnabled()&&this.isSplitTarget(e,n,t)||!this.model.isEdge(e)&&(this.isSwimlane(e)||0<this.model.getChildCount(e)&&!this.isCellCollapsed(e)))},mxGraph.prototype.isSplitTarget=function(e,n,t){return!(!this.model.isEdge(e)||null==n||1!=n.length||!this.isCellConnectable(n[0])||null!=this.getEdgeValidationError(e,this.model.getTerminal(e,!0),n[0]))&&(t=this.model.getTerminal(e,!0),e=this.model.getTerminal(e,!1),!this.model.isAncestor(n[0],t)&&!this.model.isAncestor(n[0],e))},mxGraph.prototype.getDropTarget=function(e,n,t){if(!this.isSwimlaneNesting())for(var a=0;a<e.length;a++)if(this.isSwimlane(e[a]))return null;if((a=mxUtils.convertPoint(this.container,mxEvent.getClientX(n),mxEvent.getClientY(n))).x-=this.panDx,a.y-=this.panDy,a=this.getSwimlaneAt(a.x,a.y),null==t)t=a;else if(null!=a){for(var i=this.model.getParent(a);null!=i&&this.isSwimlane(i)&&i!=t;)i=this.model.getParent(i);i==t&&(t=a)}for(;null!=t&&!this.isValidDropTarget(t,e,n)&&!this.model.isLayer(t);)t=this.model.getParent(t);return!this.model.isLayer(t)&&mxUtils.indexOf(e,t)<0?t:null},mxGraph.prototype.getDefaultParent=function(){var e=this.defaultParent;return null==e&&(null==(e=this.getCurrentRoot())&&(e=this.model.getRoot(),e=this.model.getChildAt(e,0))),e},mxGraph.prototype.setDefaultParent=function(e){this.defaultParent=e},mxGraph.prototype.getSwimlane=function(e){for(;null!=e&&!this.isSwimlane(e);)e=this.model.getParent(e);return e},mxGraph.prototype.getSwimlaneAt=function(e,n,t){if(null!=(t=t||this.getDefaultParent()))for(var a=this.model.getChildCount(t),i=0;i<a;i++){var s=this.model.getChildAt(t,i),o=this.getSwimlaneAt(e,n,s);if(null!=o)return o;if(this.isSwimlane(s)&&(o=this.view.getState(s),this.intersects(o,e,n)))return s}return null},mxGraph.prototype.getCellAt=function(e,n,t,a,i){if(a=null==a||a,i=null==i||i,null!=(t=null!=t?t:this.getDefaultParent()))for(var s=this.model.getChildCount(t)-1;0<=s;s--){var o=this.model.getChildAt(t,s),r=this.getCellAt(e,n,o,a,i);if(null!=r)return r;if(this.isCellVisible(o)&&(i&&this.model.isEdge(o)||a&&this.model.isVertex(o))&&(r=this.view.getState(o),this.intersects(r,e,n)))return o}return null},mxGraph.prototype.intersects=function(e,n,t){if(null!=e){var a=e.absolutePoints;if(null!=a){e=this.tolerance*this.tolerance;for(var i=a[0],s=1;s<a.length;s++){var o=a[s];if(mxUtils.ptSegDistSq(i.x,i.y,o.x,o.y,n,t)<=e)return!0;i=o}}else if(0!=(i=mxUtils.toRadians(mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION)||0))&&(a=Math.cos(-i),i=Math.sin(-i),s=new mxPoint(e.getCenterX(),e.getCenterY()),n=(i=mxUtils.getRotatedPoint(new mxPoint(n,t),a,i,s)).x,t=i.y),mxUtils.contains(e,n,t))return!0}return!1},mxGraph.prototype.hitsSwimlaneContent=function(e,n,t){var a=this.getView().getState(e);if(e=this.getStartSize(e),null!=a){var i=this.getView().getScale();if(n-=a.x,t-=a.y,0<e.width&&0<n&&n>e.width*i||0<e.height&&0<t&&t>e.height*i)return!0}return!1},mxGraph.prototype.getChildVertices=function(e){return this.getChildCells(e,!0,!1)},mxGraph.prototype.getChildEdges=function(e){return this.getChildCells(e,!1,!0)},mxGraph.prototype.getChildCells=function(e,n,t){for(e=null!=e?e:this.getDefaultParent(),e=this.model.getChildCells(e,null!=n&&n,null!=t&&t),n=[],t=0;t<e.length;t++)this.isCellVisible(e[t])&&n.push(e[t]);return n},mxGraph.prototype.getConnections=function(e,n){return this.getEdges(e,n,!0,!0,!1)},mxGraph.prototype.getIncomingEdges=function(e,n){return this.getEdges(e,n,!0,!1,!1)},mxGraph.prototype.getOutgoingEdges=function(e,n){return this.getEdges(e,n,!1,!0,!1)},mxGraph.prototype.getEdges=function(e,n,t,a,i,s){t=null==t||t,a=null==a||a,i=null==i||i,s=null!=s&&s;for(var o=[],r=this.isCellCollapsed(e),l=this.model.getChildCount(e),d=0;d<l;d++){var c=this.model.getChildAt(e,d);!r&&this.isCellVisible(c)||(o=o.concat(this.model.getEdges(c,t,a)))}for(o=o.concat(this.model.getEdges(e,t,a)),r=[],d=0;d<o.length;d++)l=null!=(c=this.view.getState(o[d]))?c.getVisibleTerminal(!0):this.view.getVisibleTerminal(o[d],!0),c=null!=c?c.getVisibleTerminal(!1):this.view.getVisibleTerminal(o[d],!1),(i&&l==c||l!=c&&(t&&c==e&&(null==n||this.isValidAncestor(l,n,s))||a&&l==e&&(null==n||this.isValidAncestor(c,n,s))))&&r.push(o[d]);return r},mxGraph.prototype.isValidAncestor=function(e,n,t){return t?this.model.isAncestor(n,e):this.model.getParent(e)==n},mxGraph.prototype.getOpposites=function(e,n,t,a){t=null==t||t,a=null==a||a;var i=[],s={};if(null!=e)for(var o=0;o<e.length;o++){var r=null!=(l=this.view.getState(e[o]))?l.getVisibleTerminal(!0):this.view.getVisibleTerminal(e[o],!0),l=null!=l?l.getVisibleTerminal(!1):this.view.getVisibleTerminal(e[o],!1);if(r==n&&null!=l&&l!=n&&a){var d=mxCellPath.create(l);null==s[d]&&(s[d]=l,i.push(l))}else l==n&&null!=r&&r!=n&&t&&(null==s[d=mxCellPath.create(r)]&&(s[d]=r,i.push(r)))}return i},mxGraph.prototype.getEdgesBetween=function(e,n,t){t=null!=t&&t;for(var a=this.getEdges(e),i=[],s=0;s<a.length;s++){var o=null!=(r=this.view.getState(a[s]))?r.getVisibleTerminal(!0):this.view.getVisibleTerminal(a[s],!0),r=null!=r?r.getVisibleTerminal(!1):this.view.getVisibleTerminal(a[s],!1);(o==e&&r==n||!t&&o==n&&r==e)&&i.push(a[s])}return i},mxGraph.prototype.getPointForEvent=function(e,n){var t=mxUtils.convertPoint(this.container,mxEvent.getClientX(e),mxEvent.getClientY(e)),a=this.view.scale,i=this.view.translate,s=0!=n?this.gridSize/2:0;return t.x=this.snap(t.x/a-i.x-s),t.y=this.snap(t.y/a-i.y-s),t},mxGraph.prototype.getCells=function(e,n,t,a,i,s){if(s=null!=s?s:[],0<t||0<a){var o=e+t,r=n+a;if(null!=(i=i||this.getDefaultParent()))for(var l=this.model.getChildCount(i),d=0;d<l;d++){var c=this.model.getChildAt(i,d),m=this.view.getState(c);if(this.isCellVisible(c)&&null!=m){var u=m;0!=(m=mxUtils.getValue(m.style,mxConstants.STYLE_ROTATION)||0)&&(u=mxUtils.getBoundingBox(u,m)),u.x>=e&&u.y+u.height<=r&&u.y>=n&&u.x+u.width<=o?s.push(c):this.getCells(e,n,t,a,c,s)}}}return s},mxGraph.prototype.getCellsBeyond=function(e,n,t,a,i){var s=[];if((a||i)&&(null==t&&(t=this.getDefaultParent()),null!=t))for(var o=this.model.getChildCount(t),r=0;r<o;r++){var l=this.model.getChildAt(t,r),d=this.view.getState(l);this.isCellVisible(l)&&null!=d&&(!a||d.x>=e)&&(!i||d.y>=n)&&s.push(l)}return s},mxGraph.prototype.findTreeRoots=function(e,n,t){n=null!=n&&n,t=null!=t&&t;var a=[];if(null!=e){for(var i=this.getModel(),s=i.getChildCount(e),o=null,r=0,l=0;l<s;l++){var d=i.getChildAt(e,l);if(this.model.isVertex(d)&&this.isCellVisible(d)){for(var c=this.getConnections(d,n?e:null),m=0,u=0,p=0;p<c.length;p++)this.view.getVisibleTerminal(c[p],!0)==d?m++:u++;(t&&0==m&&0<u||!t&&0==u&&0<m)&&a.push(d),r<(c=t?u-m:m-u)&&(r=c,o=d)}}0==a.length&&null!=o&&a.push(o)}return a},mxGraph.prototype.traverse=function(e,n,t,a,i){if(null!=t&&null!=e){n=null==n||n,i=i||[];var s=mxCellPath.create(e);if(null==i[s]&&(null==(a=t(i[s]=e,a))||a)&&0<(a=this.model.getEdgeCount(e)))for(s=0;s<a;s++){var o=this.model.getEdgeAt(e,s),r=this.model.getTerminal(o,!0)==e;n&&!r||(r=this.model.getTerminal(o,!r),this.traverse(r,n,t,o,i))}}},mxGraph.prototype.isCellSelected=function(e){return this.getSelectionModel().isSelected(e)},mxGraph.prototype.isSelectionEmpty=function(){return this.getSelectionModel().isEmpty()},mxGraph.prototype.clearSelection=function(){return this.getSelectionModel().clear()},mxGraph.prototype.getSelectionCount=function(){return this.getSelectionModel().cells.length},mxGraph.prototype.getSelectionCell=function(){return this.getSelectionModel().cells[0]},mxGraph.prototype.getSelectionCells=function(){return this.getSelectionModel().cells.slice()},mxGraph.prototype.setSelectionCell=function(e){this.getSelectionModel().setCell(e)},mxGraph.prototype.setSelectionCells=function(e){this.getSelectionModel().setCells(e)},mxGraph.prototype.addSelectionCell=function(e){this.getSelectionModel().addCell(e)},mxGraph.prototype.addSelectionCells=function(e){this.getSelectionModel().addCells(e)},mxGraph.prototype.removeSelectionCell=function(e){this.getSelectionModel().removeCell(e)},mxGraph.prototype.removeSelectionCells=function(e){this.getSelectionModel().removeCells(e)},mxGraph.prototype.selectRegion=function(e,n){var t=this.getCells(e.x,e.y,e.width,e.height);return this.selectCellsForEvent(t,n),t},mxGraph.prototype.selectNextCell=function(){this.selectCell(!0)},mxGraph.prototype.selectPreviousCell=function(){this.selectCell()},mxGraph.prototype.selectParentCell=function(){this.selectCell(!1,!0)},mxGraph.prototype.selectChildCell=function(){this.selectCell(!1,!1,!0)},mxGraph.prototype.selectCell=function(e,n,t){var a=0<(i=this.selectionModel).cells.length?i.cells[0]:null;1<i.cells.length&&i.clear();var i=null!=a?this.model.getParent(a):this.getDefaultParent(),s=this.model.getChildCount(i);null==a&&0<s?(e=this.model.getChildAt(i,0),this.setSelectionCell(e)):null!=a&&!n||null==this.view.getState(i)||null==this.model.getGeometry(i)?null!=a&&t?0<this.model.getChildCount(a)&&(e=this.model.getChildAt(a,0),this.setSelectionCell(e)):0<s&&(n=i.getIndex(a),e=e?(n++,this.model.getChildAt(i,n%s)):(n--,this.model.getChildAt(i,n<0?s-1:n)),this.setSelectionCell(e)):this.getCurrentRoot()!=i&&this.setSelectionCell(i)},mxGraph.prototype.selectAll=function(e){e=e||this.getDefaultParent(),null!=(e=this.model.getChildren(e))&&this.setSelectionCells(e)},mxGraph.prototype.selectVertices=function(e){this.selectCells(!0,!1,e)},mxGraph.prototype.selectEdges=function(e){this.selectCells(!1,!0,e)},mxGraph.prototype.selectCells=function(n,t,e){e=e||this.getDefaultParent();var a=mxUtils.bind(this,function(e){return null!=this.view.getState(e)&&0==this.model.getChildCount(e)&&(this.model.isVertex(e)&&n||this.model.isEdge(e)&&t)});e=this.model.filterDescendants(a,e),this.setSelectionCells(e)},mxGraph.prototype.selectCellForEvent=function(e,n){var t=this.isCellSelected(e);this.isToggleEvent(n)?t?this.removeSelectionCell(e):this.addSelectionCell(e):(!t||1!=this.getSelectionCount())&&this.setSelectionCell(e)},mxGraph.prototype.selectCellsForEvent=function(e,n){this.isToggleEvent(n)?this.addSelectionCells(e):this.setSelectionCells(e)},mxGraph.prototype.createHandler=function(e){var n=null;return null!=e&&(n=this.model.isEdge(e.cell)?(n=this.view.getEdgeStyle(e),this.isLoop(e)||n==mxEdgeStyle.ElbowConnector||n==mxEdgeStyle.SideToSide||n==mxEdgeStyle.TopToBottom?new mxElbowEdgeHandler(e):n==mxEdgeStyle.SegmentConnector||n==mxEdgeStyle.OrthConnector?new mxEdgeSegmentHandler(e):new mxEdgeHandler(e)):new mxVertexHandler(e)),n},mxGraph.prototype.addMouseListener=function(e){null==this.mouseListeners&&(this.mouseListeners=[]),this.mouseListeners.push(e)},mxGraph.prototype.removeMouseListener=function(e){if(null!=this.mouseListeners)for(var n=0;n<this.mouseListeners.length;n++)if(this.mouseListeners[n]==e){this.mouseListeners.splice(n,1);break}},mxGraph.prototype.updateMouseEvent=function(e){if(null==e.graphX||null==e.graphY){var n=mxUtils.convertPoint(this.container,e.getX(),e.getY());e.graphX=n.x-this.panDx,e.graphY=n.y-this.panDy}},mxGraph.prototype.fireMouseEvent=function(e,n,t){if(null==t&&(t=this),this.updateMouseEvent(n),e==mxEvent.MOUSE_DOWN&&(this.isMouseDown=!0),mxClient.IS_TOUCH&&this.doubleTapEnabled&&e==mxEvent.MOUSE_DOWN){var a=(new Date).getTime();a-this.lastTouchTime<this.doubleTapTimeout&&Math.abs(this.lastTouchX-n.getX())<this.doubleTapTolerance&&Math.abs(this.lastTouchY-n.getY())<this.doubleTapTolerance?(this.lastTouchTime=0,this.dblClick(n.getEvent(),n.getCell()),n.getEvent().cancelBubble=!0):(this.lastTouchX=n.getX(),this.lastTouchY=n.getY(),this.lastTouchTime=a)}if(a=2!=n.getEvent().detail,mxClient.IS_IE&&"CSS1Compat"==document.compatMode&&((null!=this.lastMouseX&&Math.abs(this.lastMouseX-n.getX())>this.doubleTapTolerance||null!=this.lastMouseY&&Math.abs(this.lastMouseY-n.getY())>this.doubleTapTolerance)&&(a=!0),e==mxEvent.MOUSE_UP&&(this.lastMouseX=n.getX(),this.lastMouseY=n.getY())),(e!=mxEvent.MOUSE_UP||this.isMouseDown)&&a){if(e==mxEvent.MOUSE_UP&&(this.isMouseDown=!1),!this.isEditing()&&(mxClient.IS_OP||mxClient.IS_SF||mxClient.IS_GC||mxClient.IS_IE&&mxClient.IS_SVG||n.getEvent().target!=this.container)){if(e==mxEvent.MOUSE_MOVE&&this.isMouseDown&&this.autoScroll&&this.scrollPointToVisible(n.getGraphX(),n.getGraphY(),this.autoExtend),null!=this.mouseListeners)for(t=[t,n],n.getEvent().returnValue=!0,a=0;a<this.mouseListeners.length;a++){var i=this.mouseListeners[a];e==mxEvent.MOUSE_DOWN?i.mouseDown.apply(i,t):e==mxEvent.MOUSE_MOVE?i.mouseMove.apply(i,t):e==mxEvent.MOUSE_UP&&i.mouseUp.apply(i,t)}e==mxEvent.MOUSE_UP&&this.click(n)}}else e==mxEvent.MOUSE_UP&&(this.isMouseDown=!1)},mxGraph.prototype.destroy=function(){this.destroyed||(this.destroyed=!0,null!=this.tooltipHandler&&this.tooltipHandler.destroy(),null!=this.selectionCellsHandler&&this.selectionCellsHandler.destroy(),null!=this.panningHandler&&this.panningHandler.destroy(),null!=this.connectionHandler&&this.connectionHandler.destroy(),null!=this.graphHandler&&this.graphHandler.destroy(),null!=this.cellEditor&&this.cellEditor.destroy(),null!=this.view&&this.view.destroy(),null!=this.model&&null!=this.graphModelChangeListener&&(this.model.removeListener(this.graphModelChangeListener),this.graphModelChangeListener=null),this.container=null)},mxCellOverlay.prototype=new mxEventSource,mxCellOverlay.prototype.constructor=mxCellOverlay,mxCellOverlay.prototype.image=null,mxCellOverlay.prototype.tooltip=null,mxCellOverlay.prototype.align=mxConstants.ALIGN_RIGHT,mxCellOverlay.prototype.verticalAlign=mxConstants.ALIGN_BOTTOM,mxCellOverlay.prototype.offset=null,mxCellOverlay.prototype.cursor=null,mxCellOverlay.prototype.defaultOverlap=.5,mxCellOverlay.prototype.getBounds=function(e){var n=e.view.graph.getModel().isEdge(e.cell),t=e.view.scale,a=null,i=this.image.width,s=this.image.height;return n?a=1==(n=e.absolutePoints).length%2?n[Math.floor(n.length/2)]:(e=n[(a=n.length/2)-1],n=n[a],new mxPoint(e.x+(n.x-e.x)/2,e.y+(n.y-e.y)/2)):((a=new mxPoint).x=this.align==mxConstants.ALIGN_LEFT?e.x:this.align==mxConstants.ALIGN_CENTER?e.x+e.width/2:e.x+e.width,a.y=this.verticalAlign==mxConstants.ALIGN_TOP?e.y:this.verticalAlign==mxConstants.ALIGN_MIDDLE?e.y+e.height/2:e.y+e.height),new mxRectangle(Math.round(a.x-(i*this.defaultOverlap-this.offset.x)*t),Math.round(a.y-(s*this.defaultOverlap-this.offset.y)*t),i*t,s*t)},mxCellOverlay.prototype.toString=function(){return this.tooltip},mxOutline.prototype.source=null,mxOutline.prototype.outline=null,mxOutline.prototype.graphRenderHint=mxConstants.RENDERING_HINT_FASTER,mxOutline.prototype.enabled=!0,mxOutline.prototype.showViewport=!0,mxOutline.prototype.border=10,mxOutline.prototype.sizerSize=8,mxOutline.prototype.updateOnPan=!1,mxOutline.prototype.sizerImage=null,mxOutline.prototype.suspended=!1,mxOutline.prototype.init=function(e){this.outline=new mxGraph(e,this.source.getModel(),this.graphRenderHint,this.source.getStylesheet()),this.outline.foldingEnabled=!1,this.outline.autoScroll=!1;var n=this.outline.graphModelChanged;this.outline.graphModelChanged=mxUtils.bind(this,function(e){!this.suspended&&null!=this.outline&&n.apply(this.outline,arguments)}),mxClient.IS_SVG&&((e=this.outline.getView().getCanvas().parentNode).setAttribute("shape-rendering","optimizeSpeed"),e.setAttribute("image-rendering","optimizeSpeed")),this.outline.labelsVisible=!1,this.outline.setEnabled(!1),this.updateHandler=mxUtils.bind(this,function(e,n){!this.suspended&&!this.active&&this.update()}),this.source.getModel().addListener(mxEvent.CHANGE,this.updateHandler),this.outline.addMouseListener(this),(e=this.source.getView()).addListener(mxEvent.SCALE,this.updateHandler),e.addListener(mxEvent.TRANSLATE,this.updateHandler),e.addListener(mxEvent.SCALE_AND_TRANSLATE,this.updateHandler),e.addListener(mxEvent.DOWN,this.updateHandler),e.addListener(mxEvent.UP,this.updateHandler),mxEvent.addListener(this.source.container,"scroll",this.updateHandler),this.panHandler=mxUtils.bind(this,function(e){this.updateOnPan&&this.updateHandler.apply(this,arguments)}),this.source.addListener(mxEvent.PAN,this.panHandler),this.refreshHandler=mxUtils.bind(this,function(e){this.outline.setStylesheet(this.source.getStylesheet()),this.outline.refresh()}),this.source.addListener(mxEvent.REFRESH,this.refreshHandler),this.bounds=new mxRectangle(0,0,0,0),this.selectionBorder=new mxRectangleShape(this.bounds,null,mxConstants.OUTLINE_COLOR,mxConstants.OUTLINE_STROKEWIDTH),this.selectionBorder.dialect=this.outline.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.selectionBorder.init(this.outline.getView().getOverlayPane()),mxEvent.redirectMouseEvents(this.selectionBorder.node,this.outline),this.selectionBorder.node.style.background="",this.sizer=this.createSizer(),this.sizer.init(this.outline.getView().getOverlayPane()),this.enabled&&(this.sizer.node.style.cursor="pointer"),mxEvent.addListener(this.sizer.node,mxClient.IS_TOUCH?"touchstart":"mousedown",mxUtils.bind(this,function(e){this.outline.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e))})),this.selectionBorder.node.style.display=this.showViewport?"":"none",this.sizer.node.style.display=this.selectionBorder.node.style.display,this.selectionBorder.node.style.cursor="move",this.update(!1)},mxOutline.prototype.isEnabled=function(){return this.enabled},mxOutline.prototype.setEnabled=function(e){this.enabled=e},mxOutline.prototype.setZoomEnabled=function(e){this.sizer.node.style.visibility=e?"visible":"hidden"},mxOutline.prototype.refresh=function(){this.update(!0)},mxOutline.prototype.createSizer=function(){var e=null!=this.sizerImage?new mxImageShape(new mxRectangle(0,0,this.sizerImage.width,this.sizerImage.height),this.sizerImage.src):new mxRectangleShape(new mxRectangle(0,0,this.sizerSize,this.sizerSize),mxConstants.OUTLINE_HANDLE_FILLCOLOR,mxConstants.OUTLINE_HANDLE_STROKECOLOR);return e.dialect=this.outline.dialect,e},mxOutline.prototype.getSourceContainerSize=function(){return new mxRectangle(0,0,this.source.container.scrollWidth,this.source.container.scrollHeight)},mxOutline.prototype.getOutlineOffset=function(e){return null},mxOutline.prototype.update=function(e){if(null!=this.source){var n=this.source.view.scale,t=new mxRectangle((t=this.source.getGraphBounds()).x/n+this.source.panDx,t.y/n+this.source.panDy,t.width/n,t.height/n),a=new mxRectangle(0,0,this.source.container.clientWidth/n,this.source.container.clientHeight/n);(s=t.clone()).add(a);var i=this.getSourceContainerSize(),s=(a=Math.max(i.width/n,s.width),n=Math.max(i.height/n,s.height),Math.max(0,this.outline.container.clientWidth-this.border));i=Math.max(0,this.outline.container.clientHeight-this.border);if(0<(s=Math.min(s/a,i/n))){this.outline.getView().scale!=s&&(this.outline.getView().scale=s,e=!0),(a=this.outline.getView()).currentRoot!=this.source.getView().currentRoot&&a.setCurrentRoot(this.source.getView().currentRoot);i=(n=this.source.view.translate).x+this.source.panDx;var o=n.y+this.source.panDy;null!=(s=this.getOutlineOffset(s))&&(i+=s.x,o+=s.y),t.x<0&&(i-=t.x),t.y<0&&(o-=t.y),a.translate.x==i&&a.translate.y==o||(a.translate.x=i,a.translate.y=o,e=!0);t=a.translate,i=(s=this.source.getView().scale)/a.scale,o=1/a.scale;var r=this.source.container;this.bounds=new mxRectangle((t.x-n.x-this.source.panDx)/o,(t.y-n.y-this.source.panDy)/o,r.clientWidth/i,r.clientHeight/i),this.bounds.x+=this.source.container.scrollLeft*a.scale/s,this.bounds.y+=this.source.container.scrollTop*a.scale/s,(t=this.selectionBorder.bounds).x==this.bounds.x&&t.y==this.bounds.y&&t.width==this.bounds.width&&t.height==this.bounds.height||(this.selectionBorder.bounds=this.bounds,this.selectionBorder.redraw()),t=this.sizer.bounds,a=new mxRectangle(this.bounds.x+this.bounds.width-t.width/2,this.bounds.y+this.bounds.height-t.height/2,t.width,t.height),t.x==a.x&&t.y==a.y&&t.width==a.width&&t.height==a.height||(this.sizer.bounds=a,"hidden"!=this.sizer.node.style.visibility&&this.sizer.redraw()),e&&this.outline.view.revalidate()}}},mxOutline.prototype.mouseDown=function(e,n){this.enabled&&this.showViewport&&(this.zoom=n.isSource(this.sizer),this.startX=n.getX(),this.startY=n.getY(),this.active=!0,this.source.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.source.container)?(this.dx0=this.source.container.scrollLeft,this.dy0=this.source.container.scrollTop):this.dy0=this.dx0=0),n.consume()},mxOutline.prototype.mouseMove=function(e,n){if(this.active){this.selectionBorder.node.style.display=this.showViewport?"":"none",this.sizer.node.style.display=this.selectionBorder.node.style.display;var t=n.getX()-this.startX,a=n.getY()-this.startY,i=null;if(this.zoom)a=t/((i=this.source.container).clientWidth/i.clientHeight),i=new mxRectangle(this.bounds.x,this.bounds.y,Math.max(1,this.bounds.width+t),Math.max(1,this.bounds.height+a)),this.selectionBorder.bounds=i,this.selectionBorder.redraw();else{var s=this.outline.getView().scale;i=new mxRectangle(this.bounds.x+t,this.bounds.y+a,this.bounds.width,this.bounds.height);this.selectionBorder.bounds=i,this.selectionBorder.redraw(),t=t/s*this.source.getView().scale,a=a/s*this.source.getView().scale,this.source.panGraph(-t-this.dx0,-a-this.dy0)}t=this.sizer.bounds,this.sizer.bounds=new mxRectangle(i.x+i.width-t.width/2,i.y+i.height-t.height/2,t.width,t.height),"hidden"!=this.sizer.node.style.visibility&&this.sizer.redraw(),n.consume()}},mxOutline.prototype.mouseUp=function(e,n){if(this.active){var t=n.getX()-this.startX,a=n.getY()-this.startY;if(0<Math.abs(t)||0<Math.abs(a)){if(this.zoom){a=this.selectionBorder.bounds.width;var i=this.source.getView().scale;this.source.zoomTo(i-t*i/a,!1)}else this.source.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.source.container)||(this.source.panGraph(0,0),t/=this.outline.getView().scale,a/=this.outline.getView().scale,i=this.source.getView().translate,this.source.getView().setTranslate(i.x-t,i.y-a));this.update(),n.consume()}this.index=null,this.active=!1}},mxOutline.prototype.destroy=function(){null!=this.source&&(this.source.removeListener(this.panHandler),this.source.removeListener(this.refreshHandler),this.source.getModel().removeListener(this.updateHandler),this.source.getView().removeListener(this.updateHandler),mxEvent.addListener(this.source.container,"scroll",this.updateHandler),this.source=null),null!=this.outline&&(this.outline.removeMouseListener(this),this.outline.destroy(),this.outline=null),null!=this.selectionBorder&&(this.selectionBorder.destroy(),this.selectionBorder=null),null!=this.sizer&&(this.sizer.destroy(),this.sizer=null)},mxMultiplicity.prototype.type=null,mxMultiplicity.prototype.attr=null,mxMultiplicity.prototype.value=null,mxMultiplicity.prototype.source=null,mxMultiplicity.prototype.min=null,mxMultiplicity.prototype.max=null,mxMultiplicity.prototype.validNeighbors=null,mxMultiplicity.prototype.validNeighborsAllowed=!0,mxMultiplicity.prototype.countError=null,mxMultiplicity.prototype.typeError=null,mxMultiplicity.prototype.check=function(e,n,t,a,i,s){var o="";return(this.source&&this.checkTerminal(e,t,n)||!this.source&&this.checkTerminal(e,a,n))&&(null!=this.countError&&(this.source&&(0==this.max||i>=this.max)||!this.source&&(0==this.max||s>=this.max))&&(o+=this.countError+"\n"),null!=this.validNeighbors&&null!=this.typeError&&0<this.validNeighbors.length&&(this.checkNeighbors(e,n,t,a)||(o+=this.typeError+"\n"))),0<o.length?o:null},mxMultiplicity.prototype.checkNeighbors=function(e,n,t,a){n=e.model.getValue(t),a=e.model.getValue(a),t=!this.validNeighborsAllowed;for(var i=this.validNeighbors,s=0;s<i.length;s++){if(this.source&&this.checkType(e,a,i[s])){t=this.validNeighborsAllowed;break}if(!this.source&&this.checkType(e,n,i[s])){t=this.validNeighborsAllowed;break}}return t},mxMultiplicity.prototype.checkTerminal=function(e,n,t){return n=e.model.getValue(n),this.checkType(e,n,this.type,this.attr,this.value)},mxMultiplicity.prototype.checkType=function(e,n,t,a,i){return null!=n&&(isNaN(n.nodeType)?n==t:mxUtils.isNode(n,t,a,i))},mxLayoutManager.prototype=new mxEventSource,mxLayoutManager.prototype.constructor=mxLayoutManager,mxLayoutManager.prototype.graph=null,mxLayoutManager.prototype.bubbling=!0,mxLayoutManager.prototype.enabled=!0,mxLayoutManager.prototype.updateHandler=null,mxLayoutManager.prototype.moveHandler=null,mxLayoutManager.prototype.isEnabled=function(){return this.enabled},mxLayoutManager.prototype.setEnabled=function(e){this.enabled=e},mxLayoutManager.prototype.isBubbling=function(){return this.bubbling},mxLayoutManager.prototype.setBubbling=function(e){this.bubbling=e},mxLayoutManager.prototype.getGraph=function(){return this.graph},mxLayoutManager.prototype.setGraph=function(e){if(null!=this.graph){var n=this.graph.getModel();n.removeListener(this.undoHandler),this.graph.removeListener(this.moveHandler)}this.graph=e,null!=this.graph&&((n=this.graph.getModel()).addListener(mxEvent.BEFORE_UNDO,this.undoHandler),this.graph.addListener(mxEvent.MOVE_CELLS,this.moveHandler))},mxLayoutManager.prototype.getLayout=function(e){return null},mxLayoutManager.prototype.beforeUndo=function(e){e=this.getCellsForChanges(e.changes);var n=this.getGraph().getModel();if(this.isBubbling())for(var t=n.getParents(e);0<t.length;)e=e.concat(t),t=n.getParents(t);this.layoutCells(mxUtils.sortCells(e,!1))},mxLayoutManager.prototype.cellsMoved=function(e,n){if(null!=e&&null!=n)for(var t=mxUtils.convertPoint(this.getGraph().container,mxEvent.getClientX(n),mxEvent.getClientY(n)),a=this.getGraph().getModel(),i=0;i<e.length;i++){var s=this.getLayout(a.getParent(e[i]));null!=s&&s.moveCell(e[i],t.x,t.y)}},mxLayoutManager.prototype.getCellsForChanges=function(e){for(var n=[],t={},a=0;a<e.length;a++){if((i=e[a])instanceof mxRootChange)return[];for(var i=this.getCellsForChange(i),s=0;s<i.length;s++)if(null!=i[s]){var o=mxCellPath.create(i[s]);null==t[o]&&(t[o]=i[s],n.push(i[s]))}}return n},mxLayoutManager.prototype.getCellsForChange=function(e){var n=this.getGraph().getModel();return e instanceof mxChildChange?[e.child,e.previous,n.getParent(e.child)]:e instanceof mxTerminalChange||e instanceof mxGeometryChange?[e.cell,n.getParent(e.cell)]:[]},mxLayoutManager.prototype.layoutCells=function(e){if(0<e.length){var n=this.getGraph().getModel();n.beginUpdate();try{for(var t=null,a=0;a<e.length;a++)e[a]!=n.getRoot()&&e[a]!=t&&(t=e[a],this.executeLayout(this.getLayout(t),t));this.fireEvent(new mxEventObject(mxEvent.LAYOUT_CELLS,"cells",e))}finally{n.endUpdate()}}},mxLayoutManager.prototype.executeLayout=function(e,n){null!=e&&null!=n&&e.execute(n)},mxLayoutManager.prototype.destroy=function(){this.setGraph(null)},mxSpaceManager.prototype=new mxEventSource,mxSpaceManager.prototype.constructor=mxSpaceManager,mxSpaceManager.prototype.graph=null,mxSpaceManager.prototype.enabled=!0,mxSpaceManager.prototype.shiftRightwards=!0,mxSpaceManager.prototype.shiftDownwards=!0,mxSpaceManager.prototype.extendParents=!0,mxSpaceManager.prototype.resizeHandler=null,mxSpaceManager.prototype.foldHandler=null,mxSpaceManager.prototype.isCellIgnored=function(e){return!this.getGraph().getModel().isVertex(e)},mxSpaceManager.prototype.isCellShiftable=function(e){return this.getGraph().getModel().isVertex(e)&&this.getGraph().isCellMovable(e)},mxSpaceManager.prototype.isEnabled=function(){return this.enabled},mxSpaceManager.prototype.setEnabled=function(e){this.enabled=e},mxSpaceManager.prototype.isShiftRightwards=function(){return this.shiftRightwards},mxSpaceManager.prototype.setShiftRightwards=function(e){this.shiftRightwards=e},mxSpaceManager.prototype.isShiftDownwards=function(){return this.shiftDownwards},mxSpaceManager.prototype.setShiftDownwards=function(e){this.shiftDownwards=e},mxSpaceManager.prototype.isExtendParents=function(){return this.extendParents},mxSpaceManager.prototype.setExtendParents=function(e){this.extendParents=e},mxSpaceManager.prototype.getGraph=function(){return this.graph},mxSpaceManager.prototype.setGraph=function(e){null!=this.graph&&(this.graph.removeListener(this.resizeHandler),this.graph.removeListener(this.foldHandler)),this.graph=e,null!=this.graph&&(this.graph.addListener(mxEvent.RESIZE_CELLS,this.resizeHandler),this.graph.addListener(mxEvent.FOLD_CELLS,this.foldHandler))},mxSpaceManager.prototype.cellsResized=function(e){if(null!=e){var n=this.graph.getModel();n.beginUpdate();try{for(var t=0;t<e.length;t++)if(!this.isCellIgnored(e[t])){this.cellResized(e[t]);break}}finally{n.endUpdate()}}},mxSpaceManager.prototype.cellResized=function(e){var n=this.getGraph(),t=n.getView(),a=n.getModel(),i=t.getState(e),s=t.getState(a.getParent(e));if(null!=i&&null!=s){var o=this.getCellsToShift(i),r=a.getGeometry(e);if(null!=o&&null!=r){var l=t.translate,d=t.scale,c=(t=i.x-s.origin.x-l.x*d,s=i.y-s.origin.y-l.y*d,l=i.x+i.width,i.y+i.height),m=i.width-r.width*d+t-r.x*d,u=i.height-r.height*d+s-r.y*d,p=1-r.width*d/i.width;i=1-r.height*d/i.height;a.beginUpdate();try{for(r=0;r<o.length;r++)o[r]!=e&&this.isCellShiftable(o[r])&&this.shiftCell(o[r],m,u,t,s,l,c,p,i,this.isExtendParents()&&n.isExtendParent(o[r]))}finally{a.endUpdate()}}}},mxSpaceManager.prototype.shiftCell=function(e,n,t,a,i,s,o,r,l,d){var c=(a=this.getGraph()).getView().getState(e);if(null!=c){var m=a.getModel();if(null!=(p=m.getGeometry(e))){m.beginUpdate();try{if(this.isShiftRightwards())if(c.x>=s)(p=p.clone()).translate(-n,0);else{var u=Math.max(0,c.x-x0);(p=p.clone()).translate(-r*u,0)}if(this.isShiftDownwards())if(c.y>=o)(p=p.clone()).translate(0,-t);else{var p,g=Math.max(0,c.y-i);(p=p.clone()).translate(0,-l*g)}p!=m.getGeometry(e)&&(m.setGeometry(e,p),d&&a.extendParent(e))}finally{m.endUpdate()}}}},mxSpaceManager.prototype.getCellsToShift=function(e){var n=this.getGraph(),t=n.getModel().getParent(e.cell),a=this.isShiftDownwards(),i=this.isShiftRightwards();return n.getCellsBeyond(e.x+(a?0:e.width),e.y+(a&&i?0:e.height),t,i,a)},mxSpaceManager.prototype.destroy=function(){this.setGraph(null)},mxSwimlaneManager.prototype=new mxEventSource,mxSwimlaneManager.prototype.constructor=mxSwimlaneManager,mxSwimlaneManager.prototype.graph=null,mxSwimlaneManager.prototype.enabled=!0,mxSwimlaneManager.prototype.horizontal=!0,mxSwimlaneManager.prototype.addEnabled=!0,mxSwimlaneManager.prototype.resizeEnabled=!0,mxSwimlaneManager.prototype.addHandler=null,mxSwimlaneManager.prototype.resizeHandler=null,mxSwimlaneManager.prototype.isEnabled=function(){return this.enabled},mxSwimlaneManager.prototype.setEnabled=function(e){this.enabled=e},mxSwimlaneManager.prototype.isHorizontal=function(){return this.horizontal},mxSwimlaneManager.prototype.setHorizontal=function(e){this.horizontal=e},mxSwimlaneManager.prototype.isAddEnabled=function(){return this.addEnabled},mxSwimlaneManager.prototype.setAddEnabled=function(e){this.addEnabled=e},mxSwimlaneManager.prototype.isResizeEnabled=function(){return this.resizeEnabled},mxSwimlaneManager.prototype.setResizeEnabled=function(e){this.resizeEnabled=e},mxSwimlaneManager.prototype.getGraph=function(){return this.graph},mxSwimlaneManager.prototype.setGraph=function(e){null!=this.graph&&(this.graph.removeListener(this.addHandler),this.graph.removeListener(this.resizeHandler)),this.graph=e,null!=this.graph&&(this.graph.addListener(mxEvent.ADD_CELLS,this.addHandler),this.graph.addListener(mxEvent.CELLS_RESIZED,this.resizeHandler))},mxSwimlaneManager.prototype.isSwimlaneIgnored=function(e){return!this.getGraph().isSwimlane(e)},mxSwimlaneManager.prototype.isCellHorizontal=function(e){if(this.graph.isSwimlane(e)){var n=this.graph.view.getState(e);return e=null!=n?n.style:this.graph.getCellStyle(e),1==mxUtils.getValue(e,mxConstants.STYLE_HORIZONTAL,1)}return!this.isHorizontal()},mxSwimlaneManager.prototype.cellsAdded=function(e){if(null!=e){var n=this.getGraph().getModel();n.beginUpdate();try{for(var t=0;t<e.length;t++)this.isSwimlaneIgnored(e[t])||this.swimlaneAdded(e[t])}finally{n.endUpdate()}}},mxSwimlaneManager.prototype.swimlaneAdded=function(e){for(var n=this.getGraph().getModel(),t=n.getParent(e),a=n.getChildCount(t),i=null,s=0;s<a;s++){var o=n.getChildAt(t,s);if(o!=e&&!this.isSwimlaneIgnored(o)&&null!=(i=n.getGeometry(o)))break}null!=i&&this.resizeSwimlane(e,i.width,i.height)},mxSwimlaneManager.prototype.cellsResized=function(e){if(null!=e){var n=this.getGraph().getModel();n.beginUpdate();try{for(var t=0;t<e.length;t++)if(!this.isSwimlaneIgnored(e[t])){var a=n.getGeometry(e[t]);if(null!=a){for(var i=new mxRectangle(0,0,a.width,a.height),s=o=e[t];null!=s;){var o=s,r=(s=n.getParent(s),this.graph.isSwimlane(s)?this.graph.getStartSize(s):new mxRectangle);i.width+=r.width,i.height+=r.height}this.resizeSwimlane(o,i.width,i.height)}}}finally{n.endUpdate()}}},mxSwimlaneManager.prototype.resizeSwimlane=function(e,n,t){var a=this.getGraph().getModel();a.beginUpdate();try{if(!this.isSwimlaneIgnored(e))if(null!=(r=a.getGeometry(e))){var i=this.isCellHorizontal(e);(i&&r.height!=t||!i&&r.width!=n)&&(r=r.clone(),i?r.height=t:r.width=n,a.setGeometry(e,r))}var s=this.graph.isSwimlane(e)?this.graph.getStartSize(e):new mxRectangle;n-=s.width,t-=s.height;for(var o=a.getChildCount(e),r=0;r<o;r++){var l=a.getChildAt(e,r);this.resizeSwimlane(l,n,t)}}finally{a.endUpdate()}},mxSwimlaneManager.prototype.destroy=function(){this.setGraph(null)},mxTemporaryCellStates.prototype.view=null,mxTemporaryCellStates.prototype.oldStates=null,mxTemporaryCellStates.prototype.oldBounds=null,mxTemporaryCellStates.prototype.oldScale=null,mxTemporaryCellStates.prototype.destroy=function(){this.view.setScale(this.oldScale),this.view.setStates(this.oldStates),this.view.setGraphBounds(this.oldBounds)},mxCellStatePreview.prototype.graph=null,mxCellStatePreview.prototype.deltas=null,mxCellStatePreview.prototype.count=0,mxCellStatePreview.prototype.isEmpty=function(){return 0==this.count},mxCellStatePreview.prototype.moveState=function(e,n,t,a,i){a=null==a||a,i=null==i||i;var s=mxCellPath.create(e.cell),o=this.deltas[s];return null==o?(o=new mxPoint(n,t),this.deltas[s]=o,this.count++):a?(o.X+=n,o.Y+=t):(o.X=n,o.Y=t),i&&this.addEdges(e),o},mxCellStatePreview.prototype.show=function(e){var n,t=this.graph.getModel(),a=t.getRoot();for(n in this.deltas){var i=mxCellPath.resolve(a,n),s=this.graph.view.getState(i),o=this.deltas[n];i=this.graph.view.getState(t.getParent(i));this.translateState(i,s,o.x,o.y)}for(n in this.deltas)i=mxCellPath.resolve(a,n),s=this.graph.view.getState(i),o=this.deltas[n],i=this.graph.view.getState(t.getParent(i)),this.revalidateState(i,s,o.x,o.y,e)},mxCellStatePreview.prototype.translateState=function(e,n,t,a){if(null!=n){var i=this.graph.getModel();if(i.isVertex(n.cell)){n.invalid=!0,this.graph.view.validateBounds(e,n.cell),e=i.getGeometry(n.cell);var s=mxCellPath.create(n.cell);0==t&&0==a||null==e||e.relative&&null==this.deltas[s]||(n.x+=t,n.y+=a)}for(e=i.getChildCount(n.cell),s=0;s<e;s++)this.translateState(n,this.graph.view.getState(i.getChildAt(n.cell,s)),t,a)}},mxCellStatePreview.prototype.revalidateState=function(e,n,t,a,i){if(null!=n){n.invalid=!0,this.graph.view.validatePoints(e,n.cell);var s=mxCellPath.create(n.cell),o=this.graph.getModel(),r=this.graph.getCellGeometry(n.cell);for(0==t&&0==a||null==r||!r.relative||!o.isVertex(n.cell)||null!=e&&!o.isVertex(e.cell)&&null==this.deltas[s]||(n.x+=t,n.y+=a,this.graph.cellRenderer.redraw(n)),null!=i&&i(n),e=o.getChildCount(n.cell),s=0;s<e;s++)this.revalidateState(n,this.graph.view.getState(o.getChildAt(n.cell,s)),t,a,i)}},mxCellStatePreview.prototype.addEdges=function(e){for(var n=this.graph.getModel(),t=n.getEdgeCount(e.cell),a=0;a<t;a++){var i=this.graph.view.getState(n.getEdgeAt(e.cell,a));null!=i&&this.moveState(i,0,0)}},mxConnectionConstraint.prototype.point=null,mxConnectionConstraint.prototype.perimeter=null,mxGraphHandler.prototype.graph=null,mxGraphHandler.prototype.maxCells=mxClient.IS_IE?20:50,mxGraphHandler.prototype.enabled=!0,mxGraphHandler.prototype.highlightEnabled=!0,mxGraphHandler.prototype.cloneEnabled=!0,mxGraphHandler.prototype.moveEnabled=!0,mxGraphHandler.prototype.guidesEnabled=!1,mxGraphHandler.prototype.guide=null,mxGraphHandler.prototype.currentDx=null,mxGraphHandler.prototype.currentDy=null,mxGraphHandler.prototype.updateCursor=!0,mxGraphHandler.prototype.selectEnabled=!0,mxGraphHandler.prototype.removeCellsFromParent=!0,mxGraphHandler.prototype.connectOnDrop=!1,mxGraphHandler.prototype.scrollOnMove=!0,mxGraphHandler.prototype.minimumSize=6,mxGraphHandler.prototype.previewColor="black",mxGraphHandler.prototype.htmlPreview=!1,mxGraphHandler.prototype.shape=null,mxGraphHandler.prototype.scaleGrid=!1,mxGraphHandler.prototype.rotationEnabled=!0,mxGraphHandler.prototype.isEnabled=function(){return this.enabled},mxGraphHandler.prototype.setEnabled=function(e){this.enabled=e},mxGraphHandler.prototype.isCloneEnabled=function(){return this.cloneEnabled},mxGraphHandler.prototype.setCloneEnabled=function(e){this.cloneEnabled=e},mxGraphHandler.prototype.isMoveEnabled=function(){return this.moveEnabled},mxGraphHandler.prototype.setMoveEnabled=function(e){this.moveEnabled=e},mxGraphHandler.prototype.isSelectEnabled=function(){return this.selectEnabled},mxGraphHandler.prototype.setSelectEnabled=function(e){this.selectEnabled=e},mxGraphHandler.prototype.isRemoveCellsFromParent=function(){return this.removeCellsFromParent},mxGraphHandler.prototype.setRemoveCellsFromParent=function(e){this.removeCellsFromParent=e},mxGraphHandler.prototype.getInitialCellForEvent=function(e){return e.getCell()},mxGraphHandler.prototype.isDelayedSelection=function(e){return this.graph.isCellSelected(e)},mxGraphHandler.prototype.mouseDown=function(e,n){if(!n.isConsumed()&&this.isEnabled()&&this.graph.isEnabled()&&!this.graph.isForceMarqueeEvent(n.getEvent())&&null!=n.getState()){var t=this.getInitialCellForEvent(n);if(this.cell=null,this.delayedSelection=this.isDelayedSelection(t),this.isSelectEnabled()&&!this.delayedSelection&&this.graph.selectCellForEvent(t,n.getEvent()),this.isMoveEnabled()){var a=this.graph.model,i=a.getGeometry(t);this.graph.isCellMovable(t)&&(!a.isEdge(t)||1<this.graph.getSelectionCount()||null!=i.points&&0<i.points.length||null==a.getTerminal(t,!0)||null==a.getTerminal(t,!1)||this.graph.allowDanglingEdges||this.graph.isCloneEvent(n.getEvent())&&this.graph.isCellsCloneable())&&this.start(t,n.getX(),n.getY()),this.cellWasClicked=!0,!mxClient.IS_SF&&!mxClient.IS_GC||"SELECT"!=n.getSource().nodeName?n.consume():mxClient.IS_SF&&"SELECT"==n.getSource().nodeName&&(this.cellWasClicked=!1,this.first=null)}}},mxGraphHandler.prototype.getGuideStates=function(){var e=this.graph.getDefaultParent(),n=this.graph.getModel(),t=mxUtils.bind(this,function(e){return null!=this.graph.view.getState(e)&&n.isVertex(e)&&null!=n.getGeometry(e)&&!n.getGeometry(e).relative});return this.graph.view.getCellStates(n.filterDescendants(t,e))},mxGraphHandler.prototype.getCells=function(e){return!this.delayedSelection&&this.graph.isCellMovable(e)?[e]:this.graph.getMovableCells(this.graph.getSelectionCells())},mxGraphHandler.prototype.getPreviewBounds=function(e){return null!=(e=this.getBoundingBox(e))&&(e.grow(-1,-1),e.width<this.minimumSize&&(e.x-=(this.minimumSize-e.width)/2,e.width=this.minimumSize),e.height<this.minimumSize&&(e.y-=(this.minimumSize-e.height)/2,e.height=this.minimumSize)),e},mxGraphHandler.prototype.getBoundingBox=function(e){var n=null;if(null!=e&&0<e.length)for(var t=this.graph.getModel(),a=0;a<e.length;a++)if(t.isVertex(e[a])||t.isEdge(e[a])){var i=this.graph.view.getState(e[a]);if(null!=i){var s=i;t.isVertex(e[a])&&null!=i.shape&&null!=i.shape.boundingBox&&(s=i.shape.boundingBox),null==n?n=new mxRectangle(s.x,s.y,s.width,s.height):n.add(s)}}return n},mxGraphHandler.prototype.createPreviewShape=function(e){return(e=new mxRectangleShape(e,null,this.previewColor)).isDashed=!0,this.htmlPreview?(e.dialect=mxConstants.DIALECT_STRICTHTML,e.init(this.graph.container)):(e.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,e.init(this.graph.getView().getOverlayPane()),e.pointerEvents=!1),e},mxGraphHandler.prototype.start=function(e,n,t){this.cell=e,this.first=mxUtils.convertPoint(this.graph.container,n,t),this.cells=this.getCells(this.cell),this.bounds=this.graph.getView().getBounds(this.cells),this.pBounds=this.getPreviewBounds(this.cells),this.guidesEnabled&&(this.guide=new mxGuide(this.graph,this.getGuideStates()))},mxGraphHandler.prototype.useGuidesForEvent=function(e){return null==this.guide||this.guide.isEnabledForEvent(e.getEvent())},mxGraphHandler.prototype.snap=function(e){var n=this.scaleGrid?this.graph.view.scale:1;return e.x=this.graph.snap(e.x/n)*n,e.y=this.graph.snap(e.y/n)*n,e},mxGraphHandler.prototype.mouseMove=function(e,n){var t=this.graph;if(!n.isConsumed()&&t.isMouseDown&&null!=this.cell&&null!=this.first&&null!=this.bounds){var a=(s=mxUtils.convertPoint(t.container,n.getX(),n.getY())).x-this.first.x,i=s.y-this.first.y,s=t.tolerance;if(null!=this.shape||Math.abs(a)>s||Math.abs(i)>s){null==this.highlight&&(this.highlight=new mxCellHighlight(this.graph,mxConstants.DROP_TARGET_COLOR,3)),null==this.shape&&(this.shape=this.createPreviewShape(this.bounds));var o=t.isGridEnabledEvent(n.getEvent());s=!0;if(null!=this.guide&&this.useGuidesForEvent(n))s=!1,a=(i=this.guide.move(this.bounds,new mxPoint(a,i),o)).x,i=i.y;else if(o){var r=t.getView().translate,l=t.getView().scale;o=this.bounds.x-(t.snap(this.bounds.x/l-r.x)+r.x)*l,r=this.bounds.y-(t.snap(this.bounds.y/l-r.y)+r.y)*l,a=(i=this.snap(new mxPoint(a,i))).x-o,i=i.y-r}for(null!=this.guide&&s&&this.guide.hide(),t.isConstrainedEvent(n.getEvent())&&(Math.abs(a)>Math.abs(i)?i=0:a=0),this.currentDx=a,this.currentDy=i,this.updatePreviewShape(),s=null,i=n.getCell(),t.isDropEnabled()&&this.highlightEnabled&&(s=t.getDropTarget(this.cells,n.getEvent(),i)),o=s,r=t.getModel();null!=o&&o!=this.cells[0];)o=r.getParent(o);l=t.isCloneEvent(n.getEvent())&&t.isCellsCloneable()&&this.isCloneEnabled();var d=!1;null==(a=t.getView().getState(s))||null!=o||r.getParent(this.cell)==s&&!l?(this.target=null,this.connectOnDrop&&null!=i&&1==this.cells.length&&t.getModel().isVertex(i)&&t.isCellConnectable(i)&&(null!=(a=t.getView().getState(i))&&(t=null==t.getEdgeValidationError(null,this.cell,i)?mxConstants.VALID_COLOR:mxConstants.INVALID_CONNECT_TARGET_COLOR,this.setHighlightColor(t),d=!0))):(this.target!=s&&(this.target=s,this.setHighlightColor(mxConstants.DROP_TARGET_COLOR)),d=!0),null!=a&&d?this.highlight.highlight(a):this.highlight.hide()}n.consume(),mxEvent.consume(n.getEvent())}else!this.isMoveEnabled()&&!this.isCloneEnabled()||!this.updateCursor||n.isConsumed()||null==n.getState()||t.isMouseDown||(null==(a=t.getCursorForCell(n.getCell()))&&t.isEnabled()&&t.isCellMovable(n.getCell())&&(a=t.getModel().isEdge(n.getCell())?mxConstants.CURSOR_MOVABLE_EDGE:mxConstants.CURSOR_MOVABLE_VERTEX),n.getState().setCursor(a),n.consume())},mxGraphHandler.prototype.updatePreviewShape=function(){null!=this.shape&&(this.shape.bounds=new mxRectangle(Math.round(this.pBounds.x+this.currentDx-this.graph.panDx),Math.round(this.pBounds.y+this.currentDy-this.graph.panDy),this.pBounds.width,this.pBounds.height),this.shape.redraw())},mxGraphHandler.prototype.setHighlightColor=function(e){null!=this.highlight&&this.highlight.setHighlightColor(e)},mxGraphHandler.prototype.mouseUp=function(e,n){if(!n.isConsumed()){var t=this.graph;if(null!=this.cell&&null!=this.first&&null!=this.shape&&null!=this.currentDx&&null!=this.currentDy){var a=t.getView().scale,i=t.isCloneEvent(n.getEvent())&&t.isCellsCloneable()&&this.isCloneEnabled(),s=this.currentDx/a,o=(a=this.currentDy/a,n.getCell());this.connectOnDrop&&null==this.target&&null!=o&&t.getModel().isVertex(o)&&t.isCellConnectable(o)&&t.isEdgeValid(null,this.cell,o)?t.connectionHandler.connect(this.cell,o,n.getEvent()):(o=this.target,t.isSplitEnabled()&&t.isSplitTarget(o,this.cells,n.getEvent())?t.splitEdge(o,this.cells,null,s,a):this.moveCells(this.cells,s,a,i,this.target,n.getEvent()))}else this.isSelectEnabled()&&this.delayedSelection&&null!=this.cell&&this.selectDelayed(n)}this.cellWasClicked&&n.consume(),this.reset()},mxGraphHandler.prototype.selectDelayed=function(e){this.graph.selectCellForEvent(this.cell,e.getEvent())},mxGraphHandler.prototype.reset=function(){this.destroyShapes(),this.delayedSelection=this.cellWasClicked=!1,this.target=this.cell=this.first=this.guides=this.currentDy=this.currentDx=null},mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(e,n,t){if(this.graph.getModel().isVertex(e)){if(e=this.graph.getView().getState(e),t=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(t),mxEvent.getClientY(t)),0!=(a=mxUtils.toRadians(mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION)||0))){n=Math.cos(-a);var a=Math.sin(-a),i=new mxPoint(e.getCenterX(),e.getCenterY());t=mxUtils.getRotatedPoint(t,n,a,i)}return null!=e&&!mxUtils.contains(e,t.x,t.y)}return!1},mxGraphHandler.prototype.moveCells=function(e,n,t,a,i,s){a&&(e=this.graph.getCloneableCells(e)),null==i&&this.isRemoveCellsFromParent()&&this.shouldRemoveCellsFromParent(this.graph.getModel().getParent(this.cell),e,s)&&(i=this.graph.getDefaultParent()),e=this.graph.moveCells(e,n-this.graph.panDx/this.graph.view.scale,t-this.graph.panDy/this.graph.view.scale,a,i,s),this.isSelectEnabled()&&this.scrollOnMove&&this.graph.scrollCellToVisible(e[0]),a&&this.graph.setSelectionCells(e)},mxGraphHandler.prototype.destroyShapes=function(){null!=this.shape&&(this.shape.destroy(),this.shape=null),null!=this.guide&&(this.guide.destroy(),this.guide=null),null!=this.highlight&&(this.highlight.destroy(),this.highlight=null)},mxGraphHandler.prototype.destroy=function(){this.graph.removeMouseListener(this),this.graph.removeListener(this.panHandler),this.destroyShapes()},mxPanningHandler.prototype=new mxPopupMenu,mxPanningHandler.prototype.constructor=mxPanningHandler,mxPanningHandler.prototype.graph=null,mxPanningHandler.prototype.triggerX=null,mxPanningHandler.prototype.triggerY=null,mxPanningHandler.prototype.usePopupTrigger=!0,mxPanningHandler.prototype.useLeftButtonForPanning=!1,mxPanningHandler.prototype.selectOnPopup=!0,mxPanningHandler.prototype.clearSelectionOnBackground=!0,mxPanningHandler.prototype.ignoreCell=!1,mxPanningHandler.prototype.previewEnabled=!0,mxPanningHandler.prototype.useGrid=!1,mxPanningHandler.prototype.panningEnabled=!0,mxPanningHandler.prototype.isPanningEnabled=function(){return this.panningEnabled},mxPanningHandler.prototype.setPanningEnabled=function(e){this.panningEnabled=e},mxPanningHandler.prototype.init=function(){mxPopupMenu.prototype.init.apply(this),mxEvent.addListener(this.div,mxClient.IS_TOUCH?"touchmove":"mousemove",mxUtils.bind(this,function(e){this.graph.tooltipHandler.hide()}))},mxPanningHandler.prototype.isPanningTrigger=function(e){var n=e.getEvent();return this.useLeftButtonForPanning&&(this.ignoreCell||null==e.getState())&&mxEvent.isLeftMouseButton(n)||mxEvent.isControlDown(n)&&mxEvent.isShiftDown(n)||this.usePopupTrigger&&mxEvent.isPopupTrigger(n)},mxPanningHandler.prototype.mouseDown=function(e,n){if(!n.isConsumed()&&this.isEnabled()){this.hideMenu(),this.dx0=-this.graph.container.scrollLeft,this.dy0=-this.graph.container.scrollTop;var t=mxUtils.convertPoint(this.graph.container,n.getX(),n.getY());this.triggerX=t.x,this.triggerY=t.y,this.popupTrigger=this.isPopupTrigger(n),this.panningTrigger=this.isPanningEnabled()&&this.isPanningTrigger(n),this.startX=n.getX(),this.startY=n.getY(),this.panningTrigger&&this.consumePanningTrigger(n)}},mxPanningHandler.prototype.consumePanningTrigger=function(e){e.consume()},mxPanningHandler.prototype.mouseMove=function(e,n){var t=n.getX()-this.startX,a=n.getY()-this.startY;if(this.active)this.previewEnabled&&(this.useGrid&&(t=this.graph.snap(t),a=this.graph.snap(a)),this.graph.panGraph(t+this.dx0,a+this.dy0)),this.fireEvent(new mxEventObject(mxEvent.PAN,"event",n)),n.consume();else if(this.panningTrigger){var i=this.active;this.active=Math.abs(t)>this.graph.tolerance||Math.abs(a)>this.graph.tolerance,!i&&this.active&&this.fireEvent(new mxEventObject(mxEvent.PAN_START,"event",n))}},mxPanningHandler.prototype.mouseUp=function(e,n){var t=Math.abs(n.getX()-this.startX),a=Math.abs(n.getY()-this.startY);if(this.active){if(!this.graph.useScrollbarsForPanning||!mxUtils.hasScrollbars(this.graph.container)){t=n.getX()-this.startX,a=n.getY()-this.startY,this.useGrid&&(t=this.graph.snap(t),a=this.graph.snap(a));var i=this.graph.getView().scale,s=this.graph.getView().translate;this.graph.panGraph(0,0),this.panGraph(s.x+t/i,s.y+a/i)}this.active=!1,this.fireEvent(new mxEventObject(mxEvent.PAN_END,"event",n)),n.consume()}else this.popupTrigger&&t<this.graph.tolerance&&a<this.graph.tolerance&&(t=this.getCellForPopupEvent(n),this.graph.isEnabled()&&this.selectOnPopup&&null!=t&&!this.graph.isCellSelected(t)?this.graph.setSelectionCell(t):this.clearSelectionOnBackground&&null==t&&this.graph.clearSelection(),this.graph.tooltipHandler.hide(),a=mxUtils.getScrollOrigin(),a=new mxPoint(n.getX()+a.x,n.getY()+a.y),this.popup(a.x+1,a.y+1,t,n.getEvent()),n.consume());this.popupTrigger=this.panningTrigger=!1},mxPanningHandler.prototype.getCellForPopupEvent=function(e){return e.getCell()},mxPanningHandler.prototype.panGraph=function(e,n){this.graph.getView().setTranslate(e,n)},mxPanningHandler.prototype.destroy=function(){this.graph.removeMouseListener(this),mxPopupMenu.prototype.destroy.apply(this)},mxUtils.extend(mxCellMarker,mxEventSource),mxCellMarker.prototype.graph=null,mxCellMarker.prototype.enabled=!0,mxCellMarker.prototype.hotspot=mxConstants.DEFAULT_HOTSPOT,mxCellMarker.prototype.hotspotEnabled=!1,mxCellMarker.prototype.validColor=null,mxCellMarker.prototype.invalidColor=null,mxCellMarker.prototype.currentColor=null,mxCellMarker.prototype.validState=null,mxCellMarker.prototype.markedState=null,mxCellMarker.prototype.setEnabled=function(e){this.enabled=e},mxCellMarker.prototype.isEnabled=function(){return this.enabled},mxCellMarker.prototype.setHotspot=function(e){this.hotspot=e},mxCellMarker.prototype.getHotspot=function(){return this.hotspot},mxCellMarker.prototype.setHotspotEnabled=function(e){this.hotspotEnabled=e},mxCellMarker.prototype.isHotspotEnabled=function(){return this.hotspotEnabled},mxCellMarker.prototype.hasValidState=function(){return null!=this.validState},mxCellMarker.prototype.getValidState=function(){return this.validState},mxCellMarker.prototype.getMarkedState=function(){return this.markedState},mxCellMarker.prototype.reset=function(){(this.validState=null)!=this.markedState&&(this.markedState=null,this.unmark())},mxCellMarker.prototype.process=function(e){var n=null;if(this.isEnabled()){var t=null!=(n=this.getState(e))&&this.isValidState(n);e=this.getMarkerColor(e.getEvent(),n,t),this.validState=t?n:null,n==this.markedState&&e==this.currentColor||(this.currentColor=e,null!=n&&null!=this.currentColor?(this.markedState=n,this.mark()):null!=this.markedState&&(this.markedState=null,this.unmark()))}return n},mxCellMarker.prototype.markCell=function(e,n){var t=this.graph.getView().getState(e);null!=t&&(this.currentColor=null!=n?n:this.validColor,this.markedState=t,this.mark())},mxCellMarker.prototype.mark=function(){this.highlight.setHighlightColor(this.currentColor),this.highlight.highlight(this.markedState),this.fireEvent(new mxEventObject(mxEvent.MARK,"state",this.markedState))},mxCellMarker.prototype.unmark=function(){this.mark()},mxCellMarker.prototype.isValidState=function(e){return!0},mxCellMarker.prototype.getMarkerColor=function(e,n,t){return t?this.validColor:this.invalidColor},mxCellMarker.prototype.getState=function(e){var n=this.graph.getView();return cell=this.getCell(e),null!=(n=this.getStateToMark(n.getState(cell)))&&this.intersects(n,e)?n:null},mxCellMarker.prototype.getCell=function(e){return e.getCell()},mxCellMarker.prototype.getStateToMark=function(e){return e},mxCellMarker.prototype.intersects=function(e,n){return!this.hotspotEnabled||mxUtils.intersectsHotspot(e,n.getGraphX(),n.getGraphY(),this.hotspot,mxConstants.MIN_HOTSPOT_SIZE,mxConstants.MAX_HOTSPOT_SIZE)},mxCellMarker.prototype.destroy=function(){this.graph.getView().removeListener(this.resetHandler),this.graph.getModel().removeListener(this.resetHandler),this.highlight.destroy()},mxUtils.extend(mxSelectionCellsHandler,mxEventSource),mxSelectionCellsHandler.prototype.graph=null,mxSelectionCellsHandler.prototype.enabled=!0,mxSelectionCellsHandler.prototype.refreshHandler=null,mxSelectionCellsHandler.prototype.maxHandlers=100,mxSelectionCellsHandler.prototype.handlers=null,mxSelectionCellsHandler.prototype.isEnabled=function(){return this.enabled},mxSelectionCellsHandler.prototype.setEnabled=function(e){this.enabled=e},mxSelectionCellsHandler.prototype.getHandler=function(e){return this.handlers.get(e)},mxSelectionCellsHandler.prototype.reset=function(){this.handlers.visit(function(e,n){n.reset.apply(n)})},mxSelectionCellsHandler.prototype.refresh=function(){var e=this.handlers;this.handlers=new mxDictionary;for(var n=this.graph.getSelectionCells(),t=0;t<n.length;t++){var a=this.graph.view.getState(n[t]);if(null!=a){var i=e.remove(n[t]);null!=i&&(i.state!=a?(i.destroy(),i=null):i.redraw()),null==i&&(i=this.graph.createHandler(a),this.fireEvent(new mxEventObject(mxEvent.ADD,"state",a))),null!=i&&this.handlers.put(n[t],i)}}e.visit(mxUtils.bind(this,function(e,n){this.fireEvent(new mxEventObject(mxEvent.REMOVE,"state",n.state)),n.destroy()}))},mxSelectionCellsHandler.prototype.mouseDown=function(e,n){if(this.graph.isEnabled()&&this.isEnabled()){var t=[e,n];this.handlers.visit(function(e,n){n.mouseDown.apply(n,t)})}},mxSelectionCellsHandler.prototype.mouseMove=function(e,n){if(this.graph.isEnabled()&&this.isEnabled()){var t=[e,n];this.handlers.visit(function(e,n){n.mouseMove.apply(n,t)})}},mxSelectionCellsHandler.prototype.mouseUp=function(e,n){if(this.graph.isEnabled()&&this.isEnabled()){var t=[e,n];this.handlers.visit(function(e,n){n.mouseUp.apply(n,t)})}},mxSelectionCellsHandler.prototype.destroy=function(){this.graph.removeMouseListener(this),null!=this.refreshHandler&&(this.graph.getSelectionModel().removeListener(this.refreshHandler),this.graph.getModel().removeListener(this.refreshHandler),this.graph.getView().removeListener(this.refreshHandler),this.refreshHandler=null)},mxUtils.extend(mxConnectionHandler,mxEventSource),mxConnectionHandler.prototype.graph=null,mxConnectionHandler.prototype.factoryMethod=!0,mxConnectionHandler.prototype.moveIconFront=!1,mxConnectionHandler.prototype.moveIconBack=!1,mxConnectionHandler.prototype.connectImage=null,mxConnectionHandler.prototype.targetConnectImage=!1,mxConnectionHandler.prototype.enabled=!0,mxConnectionHandler.prototype.select=!0,mxConnectionHandler.prototype.createTarget=!1;mxConnectionHandler.prototype.marker=null,mxConnectionHandler.prototype.constraintHandler=null,mxConnectionHandler.prototype.error=null,mxConnectionHandler.prototype.waypointsEnabled=!1,mxConnectionHandler.prototype.tapAndHoldEnabled=!0,mxConnectionHandler.prototype.tapAndHoldDelay=500,mxConnectionHandler.prototype.tapAndHoldInProgress=!1,mxConnectionHandler.prototype.tapAndHoldValid=!1,mxConnectionHandler.prototype.tapAndHoldTolerance=4,mxConnectionHandler.prototype.initialTouchX=0,mxConnectionHandler.prototype.initialTouchY=0,mxConnectionHandler.prototype.ignoreMouseDown=!1,mxConnectionHandler.prototype.first=null,mxConnectionHandler.prototype.connectIconOffset=new mxPoint(0,mxConstants.TOOLTIP_VERTICAL_OFFSET),mxConnectionHandler.prototype.edgeState=null,mxConnectionHandler.prototype.changeHandler=null,mxConnectionHandler.prototype.drillHandler=null,mxConnectionHandler.prototype.mouseDownCounter=0,mxConnectionHandler.prototype.movePreviewAway=mxClient.IS_VML,mxConnectionHandler.prototype.isEnabled=function(){return this.enabled},mxConnectionHandler.prototype.setEnabled=function(e){this.enabled=e},mxConnectionHandler.prototype.isCreateTarget=function(){return this.createTarget},mxConnectionHandler.prototype.setCreateTarget=function(e){this.createTarget=e},mxConnectionHandler.prototype.createShape=function(){var e=new mxPolyline([],mxConstants.INVALID_COLOR);if(e.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,e.init(this.graph.getView().getOverlayPane()),e.svgStrokeTolerance=0,e.pointerEvents=!1,e.isDashed=!0,this.graph.dialect==mxConstants.DIALECT_SVG)e.node.setAttribute("pointer-events","none");else{var n=mxUtils.bind(this,function(e){return e=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e)),this.graph.view.getState(this.graph.getCellAt(e.x,e.y))});mxEvent.redirectMouseEvents(e.node,this.graph,n)}return e},mxConnectionHandler.prototype.init=function(){this.graph.addMouseListener(this),this.marker=this.createMarker(),this.constraintHandler=new mxConstraintHandler(this.graph),this.changeHandler=mxUtils.bind(this,function(e){null!=this.iconState&&(this.iconState=this.graph.getView().getState(this.iconState.cell)),null!=this.iconState?this.redrawIcons(this.icons,this.iconState):(this.destroyIcons(this.icons),this.previous=null),this.constraintHandler.reset()}),this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler),this.graph.getView().addListener(mxEvent.SCALE,this.changeHandler),this.graph.getView().addListener(mxEvent.TRANSLATE,this.changeHandler),this.graph.getView().addListener(mxEvent.SCALE_AND_TRANSLATE,this.changeHandler),this.drillHandler=mxUtils.bind(this,function(e){this.destroyIcons(this.icons)}),this.graph.addListener(mxEvent.START_EDITING,this.drillHandler),this.graph.getView().addListener(mxEvent.DOWN,this.drillHandler),this.graph.getView().addListener(mxEvent.UP,this.drillHandler)},mxConnectionHandler.prototype.isConnectableCell=function(e){return!0},mxConnectionHandler.prototype.createMarker=function(){var a=new mxCellMarker(this.graph);return a.hotspotEnabled=!0,a.getCell=mxUtils.bind(this,function(e,n){return n=mxCellMarker.prototype.getCell.apply(a,arguments),this.error=null,this.isConnectableCell(n)?(null!=n?this.isConnecting()?null!=this.previous&&(this.error=this.validateConnection(this.previous.cell,n),null!=this.error&&0==this.error.length&&(n=null,this.isCreateTarget()&&(this.error=null))):this.isValidSource(n)||(n=null):this.isConnecting()&&!this.isCreateTarget()&&!this.graph.allowDanglingEdges&&(this.error=""),n):null}),a.isValidState=mxUtils.bind(this,function(e){return this.isConnecting()?null==this.error:mxCellMarker.prototype.isValidState.apply(a,arguments)}),a.getMarkerColor=mxUtils.bind(this,function(e,n,t){return null==this.connectImage||this.isConnecting()?mxCellMarker.prototype.getMarkerColor.apply(a,arguments):null}),a.intersects=mxUtils.bind(this,function(e,n){return!(null==this.connectImage&&!this.isConnecting())||mxCellMarker.prototype.intersects.apply(a,arguments)}),a},mxConnectionHandler.prototype.start=function(e,n,t,a){this.previous=e,this.first=new mxPoint(n,t),this.edgeState=null!=a?a:this.createEdgeState(null),this.marker.currentColor=this.marker.validColor,this.marker.markedState=e,this.marker.mark(),this.fireEvent(new mxEventObject(mxEvent.START,"state",this.previous))},mxConnectionHandler.prototype.isConnecting=function(){return null!=this.first&&null!=this.shape},mxConnectionHandler.prototype.isValidSource=function(e){return this.graph.isValidSource(e)},mxConnectionHandler.prototype.isValidTarget=function(e){return!0},mxConnectionHandler.prototype.validateConnection=function(e,n){return this.isValidTarget(n)?this.graph.getEdgeValidationError(null,e,n):""},mxConnectionHandler.prototype.getConnectImage=function(e){return this.connectImage},mxConnectionHandler.prototype.isMoveIconToFrontForState=function(e){return null!=e.text&&e.text.node.parentNode==this.graph.container||this.moveIconFront},mxConnectionHandler.prototype.createIcons=function(e){if(null==(i=this.getConnectImage(e))||null==e)return null;this.iconState=e;var n=[],t=new mxImageShape(new mxRectangle(0,0,i.width,i.height),i.src,null,null,0);t.preserveImageAspect=!1,this.isMoveIconToFrontForState(e)?(t.dialect=mxConstants.DIALECT_STRICTHTML,t.init(this.graph.container)):(t.dialect=this.graph.dialect==mxConstants.DIALECT_SVG?mxConstants.DIALECT_SVG:mxConstants.DIALECT_VML,t.init(this.graph.getView().getOverlayPane()),this.moveIconBack&&null!=t.node.previousSibling&&t.node.parentNode.insertBefore(t.node,t.node.parentNode.firstChild)),t.node.style.cursor=mxConstants.CURSOR_CONNECT;var a=mxUtils.bind(this,function(){return null!=this.currentState?this.currentState:e}),i=mxUtils.bind(this,function(e){mxEvent.isConsumed(e)||(this.icon=t,this.graph.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,a())))});return mxEvent.redirectMouseEvents(t.node,this.graph,a,i),n.push(t),this.redrawIcons(n,this.iconState),n},mxConnectionHandler.prototype.redrawIcons=function(e,n){if(null!=e&&null!=e[0]&&null!=n){var t=this.getIconPosition(e[0],n);e[0].bounds.x=t.x,e[0].bounds.y=t.y,e[0].redraw()}},mxConnectionHandler.prototype.getIconPosition=function(e,n){var t=this.graph.getView().scale,a=n.getCenterX(),i=n.getCenterY();if(this.graph.isSwimlane(n.cell)){a=0!=(s=this.graph.getStartSize(n.cell)).width?n.x+s.width*t/2:a,i=0!=s.height?n.y+s.height*t/2:i;if(0!=(s=mxUtils.toRadians(mxUtils.getValue(n.style,mxConstants.STYLE_ROTATION)||0))){t=Math.cos(s);var s=Math.sin(s),o=new mxPoint(n.getCenterX(),n.getCenterY());a=(i=mxUtils.getRotatedPoint(new mxPoint(a,i),t,s,o)).x,i=i.y}}return new mxPoint(a-e.bounds.width/2,i-e.bounds.height/2)},mxConnectionHandler.prototype.destroyIcons=function(e){if(null!=e){this.iconState=null;for(var n=0;n<e.length;n++)e[n].destroy()}},mxConnectionHandler.prototype.isStartEvent=function(e){return!this.graph.isForceMarqueeEvent(e.getEvent())&&(null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentConstraint||null!=this.previous&&null==this.error&&(null==this.icons||null!=this.icons&&null!=this.icon))},mxConnectionHandler.prototype.mouseDown=function(e,n){if(this.mouseDownCounter++,this.isEnabled()&&this.graph.isEnabled()&&!n.isConsumed()&&!this.isConnecting()&&this.isStartEvent(n)){if(null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentPoint?(this.sourceConstraint=this.constraintHandler.currentConstraint,this.previous=this.constraintHandler.currentFocus,this.first=this.constraintHandler.currentPoint.clone()):this.first=new mxPoint(n.getGraphX(),n.getGraphY()),this.edgeState=this.createEdgeState(n),this.mouseDownCounter=1,this.waypointsEnabled&&null==this.shape&&(this.waypoints=null,this.shape=this.createShape()),null==this.previous&&null!=this.edgeState){var t=this.graph.getPointForEvent(n.getEvent());this.edgeState.cell.geometry.setTerminalPoint(t,!0)}this.fireEvent(new mxEventObject(mxEvent.START,"state",this.previous)),n.consume()}else if(mxClient.IS_TOUCH&&this.tapAndHoldEnabled&&!this.tapAndHoldInProgress&&this.isEnabled()&&this.graph.isEnabled()&&!this.isConnecting()){this.tapAndHoldInProgress=!0,this.initialTouchX=n.getX(),this.initialTouchY=n.getY();var a=this.graph.view.getState(this.marker.getCell(n));this.tapAndHoldThread&&window.clearTimeout(this.tapAndHoldThread),this.tapAndHoldThread=window.setTimeout(mxUtils.bind(this,function(){this.tapAndHoldValid&&this.tapAndHold(n,a),this.tapAndHoldValid=this.tapAndHoldInProgress=!1}),this.tapAndHoldDelay),this.tapAndHoldValid=!0}this.selectedIcon=this.icon,this.icon=null},mxConnectionHandler.prototype.tapAndHold=function(e,n){null!=n&&(this.marker.currentColor=this.marker.validColor,this.marker.markedState=n,this.marker.mark(),this.first=new mxPoint(e.getGraphX(),e.getGraphY()),this.edgeState=this.createEdgeState(e),this.previous=n,this.fireEvent(new mxEventObject(mxEvent.START,"state",this.previous)))},mxConnectionHandler.prototype.isImmediateConnectSource=function(e){return!this.graph.isCellMovable(e.cell)},mxConnectionHandler.prototype.createEdgeState=function(e){return null},mxConnectionHandler.prototype.updateCurrentState=function(e){var n=this.marker.process(e);this.constraintHandler.update(e,null==this.first),this.currentState=n},mxConnectionHandler.prototype.convertWaypoint=function(e){var n=this.graph.getView().getScale(),t=this.graph.getView().getTranslate();e.x=e.x/n-t.x,e.y=e.y/n-t.y},mxConnectionHandler.prototype.mouseMove=function(e,n){if(this.tapAndHoldValid&&(this.tapAndHoldValid=Math.abs(this.initialTouchX-n.getX())<this.tapAndHoldTolerance&&Math.abs(this.initialTouchY-n.getY())<this.tapAndHoldTolerance),n.isConsumed()||!this.ignoreMouseDown&&null==this.first&&this.graph.isMouseDown)this.constraintHandler.reset();else{if(!this.isEnabled()&&null!=this.currentState&&(this.destroyIcons(this.icons),this.currentState=null),(null!=this.first||this.isEnabled()&&this.graph.isEnabled())&&this.updateCurrentState(n),null!=this.first){var t=this.graph.getView().scale,a=null,i=t=new mxPoint(this.graph.snap(n.getGraphX()/t)*t,this.graph.snap(n.getGraphY()/t)*t);null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentPoint&&(a=this.constraintHandler.currentConstraint,i=this.constraintHandler.currentPoint.clone());var s=this.first;if(null!=this.selectedIcon){var o=this.selectedIcon.bounds.width,r=this.selectedIcon.bounds.height;null!=this.currentState&&this.targetConnectImage?(o=this.getIconPosition(this.selectedIcon,this.currentState),this.selectedIcon.bounds.x=o.x,this.selectedIcon.bounds.y=o.y):(o=new mxRectangle(n.getGraphX()+this.connectIconOffset.x,n.getGraphY()+this.connectIconOffset.y,o,r),this.selectedIcon.bounds=o),this.selectedIcon.redraw()}if(null!=this.edgeState){if(this.edgeState.absolutePoints=[null,null!=this.currentState?null:i],this.graph.view.updateFixedTerminalPoint(this.edgeState,this.previous,!0,this.sourceConstraint),null!=this.currentState&&(null==a&&(a=this.graph.getConnectionConstraint(this.edgeState,this.previous,!1)),this.edgeState.setAbsoluteTerminalPoint(null,!1),this.graph.view.updateFixedTerminalPoint(this.edgeState,this.currentState,!1,a)),(s=null)!=this.waypoints)for(s=[],i=0;i<this.waypoints.length;i++)a=this.waypoints[i].clone(),this.convertWaypoint(a),s[i]=a;this.graph.view.updatePoints(this.edgeState,s,this.previous,this.currentState),this.graph.view.updateFloatingTerminalPoints(this.edgeState,this.previous,this.currentState),i=this.edgeState.absolutePoints[this.edgeState.absolutePoints.length-1],s=this.edgeState.absolutePoints[0]}else null!=this.currentState&&null==this.constraintHandler.currentConstraint&&(null!=(o=this.getTargetPerimeterPoint(this.currentState,n))&&(i=o)),null==this.sourceConstraint&&null!=this.previous&&(null!=(o=this.getSourcePerimeterPoint(this.previous,null!=this.waypoints&&0<this.waypoints.length?this.waypoints[0]:i,n))&&(s=o));if(null==this.currentState&&this.movePreviewAway){if(o=s,null!=this.edgeState&&2<this.edgeState.absolutePoints.length&&(null!=(a=this.edgeState.absolutePoints[this.edgeState.absolutePoints.length-2])&&(o=a)),a=i.x-o.x,o=i.y-o.y,0==(r=Math.sqrt(a*a+o*o)))return;i.x-=4*a/r,i.y-=4*o/r}null==this.shape&&(a=Math.abs(t.x-this.first.x),o=Math.abs(t.y-this.first.y),a>this.graph.tolerance||o>this.graph.tolerance)&&(this.shape=this.createShape(),this.updateCurrentState(n)),null!=this.shape&&(null!=this.edgeState?this.shape.points=this.edgeState.absolutePoints:(t=[s],null!=this.waypoints&&(t=t.concat(this.waypoints)),t.push(i),this.shape.points=t),this.drawPreview()),mxEvent.consume(n.getEvent()),n.consume()}else this.isEnabled()&&this.graph.isEnabled()?this.previous!=this.currentState&&null==this.edgeState?(this.destroyIcons(this.icons),(this.icons=null)!=this.currentState&&null==this.error&&(this.icons=this.createIcons(this.currentState),null==this.icons&&(this.currentState.setCursor(mxConstants.CURSOR_CONNECT),n.consume())),this.previous=this.currentState):this.previous==this.currentState&&null!=this.currentState&&null==this.icons&&!this.graph.isMouseDown&&n.consume():this.constraintHandler.reset();if(null!=this.constraintHandler.currentConstraint&&this.marker.reset(),!this.graph.isMouseDown&&null!=this.currentState&&null!=this.icons){for(t=!1,s=n.getSource(),i=0;i<this.icons.length&&!t;i++)t=s==this.icons[i].node||s.parentNode==this.icons[i].node;t||this.updateIcons(this.currentState,this.icons,n)}}},mxConnectionHandler.prototype.getTargetPerimeterPoint=function(e,n){var t=null,a=(i=e.view).getPerimeterFunction(e);if(null!=a){var i,s=null!=this.waypoints&&0<this.waypoints.length?this.waypoints[this.waypoints.length-1]:new mxPoint(this.previous.getCenterX(),this.previous.getCenterY());null!=(i=a(i.getPerimeterBounds(e),this.edgeState,s,!1))&&(t=i)}else t=new mxPoint(e.getCenterX(),e.getCenterY());return t},mxConnectionHandler.prototype.getSourcePerimeterPoint=function(e,n,t){t=null;var a=e.view,i=a.getPerimeterFunction(e),s=new mxPoint(e.getCenterX(),e.getCenterY());if(null!=i){var o=mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION,0),r=-o*(Math.PI/180);0!=o&&(n=mxUtils.getRotatedPoint(new mxPoint(n.x,n.y),Math.cos(r),Math.sin(r),s)),null!=(e=i(a.getPerimeterBounds(e),e,n,!1))&&(0!=o&&(e=mxUtils.getRotatedPoint(new mxPoint(e.x,e.y),Math.cos(-r),Math.sin(-r),s)),t=e)}else t=s;return t},mxConnectionHandler.prototype.updateIcons=function(e,n,t){},mxConnectionHandler.prototype.isStopEvent=function(e){return null!=e.getState()},mxConnectionHandler.prototype.addWaypointForEvent=function(e){var n=mxUtils.convertPoint(this.graph.container,e.getX(),e.getY()),t=Math.abs(n.x-this.first.x);n=Math.abs(n.y-this.first.y);(null!=this.waypoints||1<this.mouseDownCounter&&(t>this.graph.tolerance||n>this.graph.tolerance))&&(null==this.waypoints&&(this.waypoints=[]),t=this.graph.view.scale,n=new mxPoint(this.graph.snap(e.getGraphX()/t)*t,this.graph.snap(e.getGraphY()/t)*t),this.waypoints.push(n))},mxConnectionHandler.prototype.mouseUp=function(e,n){if(!n.isConsumed()&&this.isConnecting()){if(this.waypointsEnabled&&!this.isStopEvent(n))return this.addWaypointForEvent(n),void n.consume();if(null==this.error){var t=null!=this.previous?this.previous.cell:null,a=null;null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&(a=this.constraintHandler.currentFocus.cell),null==a&&this.marker.hasValidState()&&(a=this.marker.validState.cell),this.connect(t,a,n.getEvent(),n.getCell())}else null!=this.previous&&null!=this.marker.validState&&this.previous.cell==this.marker.validState.cell&&this.graph.selectCellForEvent(this.marker.source,evt),0<this.error.length&&this.graph.validationAlert(this.error);this.destroyIcons(this.icons),n.consume()}null!=this.first&&this.reset(),this.tapAndHoldValid=this.tapAndHoldInProgress=!1},mxConnectionHandler.prototype.reset=function(){null!=this.shape&&(this.shape.destroy(),this.shape=null),this.destroyIcons(this.icons),this.icons=null,this.marker.reset(),this.constraintHandler.reset(),this.sourceConstraint=this.error=this.previous=this.edgeState=this.selectedIcon=null,this.mouseDownCounter=0,this.icon=this.first=null,this.fireEvent(new mxEventObject(mxEvent.RESET))},mxConnectionHandler.prototype.drawPreview=function(){var e=null==this.error;this.shape.strokewidth=this.getEdgeWidth(e),e=this.getEdgeColor(e),this.shape.stroke=e,this.shape.redraw()},mxConnectionHandler.prototype.getEdgeColor=function(e){return e?mxConstants.VALID_COLOR:mxConstants.INVALID_COLOR},mxConnectionHandler.prototype.getEdgeWidth=function(e){return e?3:1},mxConnectionHandler.prototype.connect=function(e,n,t,a){if(null!=n||this.isCreateTarget()||this.graph.allowDanglingEdges){var i=this.graph.getModel(),s=null;i.beginUpdate();try{if(null!=e&&null==n&&this.isCreateTarget()&&null!=(n=this.createTargetVertex(t,e))){if(null!=(a=this.graph.getDropTarget([n],t,a))&&this.graph.getModel().isEdge(a))a=this.graph.getDefaultParent();else{var o=this.graph.getView().getState(a);if(null!=o){var r=i.getGeometry(n);r.x-=o.origin.x,r.y-=o.origin.y}}this.graph.addCell(n,a)}var l=this.graph.getDefaultParent();if(null!=e&&null!=n&&i.getParent(e)==i.getParent(n)&&i.getParent(i.getParent(e))!=i.getRoot()&&(l=i.getParent(e),null!=e.geometry&&e.geometry.relative&&null!=n.geometry&&n.geometry.relative&&(l=i.getParent(l))),r=o=null,null!=this.edgeState&&(o=this.edgeState.cell.value,r=this.edgeState.cell.style),null!=(s=this.insertEdge(l,null,o,e,n,r))){this.graph.setConnectionConstraint(s,e,!0,this.sourceConstraint),this.graph.setConnectionConstraint(s,n,!1,this.constraintHandler.currentConstraint),null!=this.edgeState&&i.setGeometry(s,this.edgeState.cell.geometry);var d=i.getGeometry(s);if(null==d&&((d=new mxGeometry).relative=!0,i.setGeometry(s,d)),null!=this.waypoints&&0<this.waypoints.length){var c=this.graph.view.scale,m=this.graph.view.translate;for(d.points=[],e=0;e<this.waypoints.length;e++){var u=this.waypoints[e];d.points.push(new mxPoint(u.x/c-m.x,u.y/c-m.y))}}null==n&&((u=this.graph.getPointForEvent(t,!1)).x-=this.graph.panDx/this.graph.view.scale,u.y-=this.graph.panDy/this.graph.view.scale,d.setTerminalPoint(u,!1)),this.fireEvent(new mxEventObject(mxEvent.CONNECT,"cell",s,"event",t,"target",a))}}catch(e){mxLog.show(),mxLog.debug(e.message)}finally{i.endUpdate()}this.select&&this.selectCells(s,n)}},mxConnectionHandler.prototype.selectCells=function(e,n){this.graph.setSelectionCell(e)},mxConnectionHandler.prototype.insertEdge=function(e,n,t,a,i,s){return null==this.factoryMethod?this.graph.insertEdge(e,n,t,a,i,s):(n=this.createEdge(t,a,i,s),this.graph.addEdge(n,e,a,i))},mxConnectionHandler.prototype.createTargetVertex=function(e,n){for(var t=this.graph.getCellGeometry(n);null!=t&&t.relative;)n=this.graph.getModel().getParent(n),t=this.graph.getCellGeometry(n);var a=this.graph.cloneCells([n])[0];if(null!=(t=this.graph.getModel().getGeometry(a))){var i=this.graph.getPointForEvent(e);if(t.x=this.graph.snap(i.x-t.width/2)-this.graph.panDx/this.graph.view.scale,t.y=this.graph.snap(i.y-t.height/2)-this.graph.panDy/this.graph.view.scale,null!=this.first){var s=this.graph.view.getState(n);if(null!=s){var o=this.getAlignmentTolerance();Math.abs(this.graph.snap(this.first.x)-this.graph.snap(i.x))<=o?t.x=s.x:Math.abs(this.graph.snap(this.first.y)-this.graph.snap(i.y))<=o&&(t.y=s.y)}}}return a},mxConnectionHandler.prototype.getAlignmentTolerance=function(){return this.graph.isGridEnabled()?this.graph.gridSize:this.graph.tolerance},mxConnectionHandler.prototype.createEdge=function(e,n,t,a){var i=null;return null!=this.factoryMethod&&(i=this.factoryMethod(n,t,a)),null==i&&((i=new mxCell(e||"")).setEdge(!0),i.setStyle(a),(e=new mxGeometry).relative=!0,i.setGeometry(e)),i},mxConnectionHandler.prototype.destroy=function(){this.graph.removeMouseListener(this),null!=this.shape&&(this.shape.destroy(),this.shape=null),null!=this.marker&&(this.marker.destroy(),this.marker=null),null!=this.constraintHandler&&(this.constraintHandler.destroy(),this.constraintHandler=null),null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.graph.getView().removeListener(this.changeHandler),this.changeHandler=null),null!=this.drillHandler&&(this.graph.removeListener(this.drillHandler),this.graph.getView().removeListener(this.drillHandler),this.drillHandler=null)},mxConstraintHandler.prototype.pointImage=new mxImage(mxClient.imageBasePath+"/point.gif",5,5),mxConstraintHandler.prototype.graph=null,mxConstraintHandler.prototype.enabled=!0,mxConstraintHandler.prototype.highlightColor=mxConstants.DEFAULT_VALID_COLOR,mxConstraintHandler.prototype.isEnabled=function(){return this.enabled},mxConstraintHandler.prototype.setEnabled=function(e){this.enabled=e},mxConstraintHandler.prototype.reset=function(){if(null!=this.focusIcons){for(var e=0;e<this.focusIcons.length;e++)this.focusIcons[e].destroy();this.focusIcons=null}null!=this.focusHighlight&&(this.focusHighlight.destroy(),this.focusHighlight=null),this.focusPoints=this.currentFocus=this.currentPoint=this.currentFocusArea=this.currentConstraint=null},mxConstraintHandler.prototype.getTolerance=function(){return this.graph.getTolerance()},mxConstraintHandler.prototype.getImageForConstraint=function(e,n,t){return this.pointImage},mxConstraintHandler.prototype.isEventIgnored=function(e,n){return!1},mxConstraintHandler.prototype.update=function(e,n){if(this.isEnabled()&&!this.isEventIgnored(e)){var t=this.getTolerance(),a=new mxRectangle(e.getGraphX()-t,e.getGraphY()-t,2*t,2*t),i=null!=e.getCell()&&this.graph.isCellConnectable(e.getCell());if((null==this.currentFocusArea||!mxUtils.intersects(this.currentFocusArea,a)||null!=e.getState()&&null!=this.currentFocus&&i)&&(this.currentFocusArea=null,e.getState()!=this.currentFocus))if(this.currentFocus=null,this.constraints=null!=e.getState()&&i?this.graph.getAllConnectionConstraints(e.getState(),n):null,null!=this.constraints){if(this.currentFocus=e.getState(),this.currentFocusArea=new mxRectangle(e.getState().x,e.getState().y,e.getState().width,e.getState().height),null!=this.focusIcons){for(i=0;i<this.focusIcons.length;i++)this.focusIcons[i].destroy();this.focusPoints=this.focusIcons=null}for(this.focusIcons=[],this.focusPoints=[],i=0;i<this.constraints.length;i++){var s,o=this.graph.getConnectionPoint(e.getState(),this.constraints[i]),r=(s=this.getImageForConstraint(e.getState(),this.constraints[i],o)).src;(s=new mxImageShape(s=new mxRectangle(o.x-s.width/2,o.y-s.height/2,s.width,s.height),r)).dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG,s.preserveImageAspect=!1,s.init(this.graph.getView().getOverlayPane()),null!=s.node.previousSibling&&s.node.parentNode.insertBefore(s.node,s.node.parentNode.firstChild),r=mxUtils.bind(this,function(){return null!=this.currentFocus?this.currentFocus:e.getState()}),s.redraw(),mxEvent.redirectMouseEvents(s.node,this.graph,r),this.currentFocusArea.add(s.bounds),this.focusIcons.push(s),this.focusPoints.push(o)}this.currentFocusArea.grow(t)}else if(null!=this.focusIcons){for(null!=this.focusHighlight&&(this.focusHighlight.destroy(),this.focusHighlight=null),i=0;i<this.focusIcons.length;i++)this.focusIcons[i].destroy();this.focusPoints=this.focusIcons=null}if(this.currentPoint=this.currentConstraint=null,null!=this.focusIcons&&null!=this.constraints&&(null==e.getState()||this.currentFocus==e.getState()))for(i=0;i<this.focusIcons.length;i++)if(mxUtils.intersects(this.focusIcons[i].bounds,a)){this.currentConstraint=this.constraints[i],this.currentPoint=this.focusPoints[i],(t=this.focusIcons[i].bounds.clone()).grow(mxClient.IS_IE?3:2),mxClient.IS_IE&&(t.width-=1,t.height-=1),null==this.focusHighlight?((t=new mxRectangleShape(t,null,this.highlightColor,3)).dialect=this.graph.dialect==mxConstants.DIALECT_SVG?mxConstants.DIALECT_SVG:mxConstants.DIALECT_VML,t.init(this.graph.getView().getOverlayPane()),this.focusHighlight=t,r=mxUtils.bind(this,function(){return null!=this.currentFocus?this.currentFocus:e.getState()}),mxEvent.redirectMouseEvents(t.node,this.graph,r)):(this.focusHighlight.bounds=t,this.focusHighlight.redraw());break}null==this.currentConstraint&&null!=this.focusHighlight&&(this.focusHighlight.destroy(),this.focusHighlight=null)}},mxConstraintHandler.prototype.destroy=function(){this.reset()},mxRubberband.prototype.defaultOpacity=20,mxRubberband.prototype.enabled=!0,mxRubberband.prototype.div=null,mxRubberband.prototype.sharedDiv=null,mxRubberband.prototype.currentX=0,mxRubberband.prototype.currentY=0,mxRubberband.prototype.isEnabled=function(){return this.enabled},mxRubberband.prototype.setEnabled=function(e){this.enabled=e},mxRubberband.prototype.mouseDown=function(e,n){if(!n.isConsumed()&&this.isEnabled()&&this.graph.isEnabled()&&(this.graph.isForceMarqueeEvent(n.getEvent())||null==n.getState())){var t=mxUtils.getOffset(this.graph.container),a=mxUtils.getScrollOrigin(this.graph.container);if(a.x-=t.x,a.y-=t.y,this.start(n.getX()+a.x,n.getY()+a.y),mxClient.IS_NS&&!mxClient.IS_SF&&!mxClient.IS_GC){var i=this.graph.container,s=function(e){e=new mxMouseEvent(e);var n=mxUtils.convertPoint(i,e.getX(),e.getY());return e.graphX=n.x,e.graphY=n.y,e};this.dragHandler=mxUtils.bind(this,function(e){this.mouseMove(this.graph,s(e))}),this.dropHandler=mxUtils.bind(this,function(e){this.mouseUp(this.graph,s(e))}),mxEvent.addListener(document,"mousemove",this.dragHandler),mxEvent.addListener(document,"mouseup",this.dropHandler)}n.consume(!1)}},mxRubberband.prototype.start=function(e,n){this.first=new mxPoint(e,n)},mxRubberband.prototype.mouseMove=function(e,n){if(!n.isConsumed()&&null!=this.first){var t=mxUtils.getScrollOrigin(this.graph.container),a=mxUtils.getOffset(this.graph.container);t.x-=a.x,t.y-=a.y;a=n.getX()+t.x,t=n.getY()+t.y;var i=this.first.x-a,s=this.first.y-t,o=this.graph.tolerance;(null!=this.div||Math.abs(i)>o||Math.abs(s)>o)&&(null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(a,t),n.consume())}},mxRubberband.prototype.createShape=function(){return null==this.sharedDiv&&(this.sharedDiv=document.createElement("div"),this.sharedDiv.className="mxRubberband",mxUtils.setOpacity(this.sharedDiv,this.defaultOpacity)),this.graph.container.appendChild(this.sharedDiv),this.sharedDiv},mxRubberband.prototype.mouseUp=function(e,n){var t=null!=this.div;this.reset(),t&&(t=new mxRectangle(this.x,this.y,this.width,this.height),this.graph.selectRegion(t,n.getEvent()),n.consume())},mxRubberband.prototype.reset=function(){null!=this.div&&this.div.parentNode.removeChild(this.div),null!=this.dragHandler&&(mxEvent.removeListener(document,"mousemove",this.dragHandler),this.dragHandler=null),null!=this.dropHandler&&(mxEvent.removeListener(document,"mouseup",this.dropHandler),this.dropHandler=null),this.currentY=this.currentX=0,this.div=this.first=null},mxRubberband.prototype.update=function(e,n){this.currentX=e,this.currentY=n,this.repaint()},mxRubberband.prototype.repaint=function(){if(null!=this.div){var e=this.currentX-this.graph.panDx,n=this.currentY-this.graph.panDy;this.x=Math.min(this.first.x,e),this.y=Math.min(this.first.y,n),this.width=Math.max(this.first.x,e)-this.x,this.height=Math.max(this.first.y,n)-this.y,e=mxClient.IS_VML?this.graph.panDy:0,this.div.style.left=this.x+(mxClient.IS_VML?this.graph.panDx:0)+"px",this.div.style.top=this.y+e+"px",this.div.style.width=Math.max(1,this.width)+"px",this.div.style.height=Math.max(1,this.height)+"px"}},mxRubberband.prototype.destroy=function(){this.destroyed||(this.destroyed=!0,this.graph.removeMouseListener(this),this.graph.removeListener(this.panHandler),this.reset(),null!=this.sharedDiv&&(this.sharedDiv=null))},mxVertexHandler.prototype.graph=null,mxVertexHandler.prototype.state=null,mxVertexHandler.prototype.singleSizer=!1,mxVertexHandler.prototype.index=null,mxVertexHandler.prototype.allowHandleBoundsCheck=!0,mxVertexHandler.prototype.handleImage=null,mxVertexHandler.prototype.tolerance=0,mxVertexHandler.prototype.rotationEnabled=!1,mxVertexHandler.prototype.rotationRaster=!0,mxVertexHandler.prototype.init=function(){if(this.graph=this.state.view.graph,this.selectionBounds=this.getSelectionBounds(this.state),this.bounds=new mxRectangle(this.selectionBounds.x,this.selectionBounds.y,this.selectionBounds.width,this.selectionBounds.height),this.selectionBorder=this.createSelectionShape(this.bounds),this.selectionBorder.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.selectionBorder.pointerEvents=!1,this.selectionBorder.init(this.graph.getView().getOverlayPane()),this.graph.isCellMovable(this.state.cell)&&(this.selectionBorder.node.style.cursor=mxConstants.CURSOR_MOVABLE_VERTEX),mxEvent.redirectMouseEvents(this.selectionBorder.node,this.graph,this.state),mxGraphHandler.prototype.maxCells<=0||this.graph.getSelectionCount()<mxGraphHandler.prototype.maxCells){var e=this.graph.isCellResizable(this.state.cell);if(this.sizers=[],e||this.graph.isLabelMovable(this.state.cell)&&2<=this.state.width&&2<=this.state.height){var n=0;e&&(this.singleSizer||(this.sizers.push(this.createSizer("nw-resize",n++)),this.sizers.push(this.createSizer("n-resize",n++)),this.sizers.push(this.createSizer("ne-resize",n++)),this.sizers.push(this.createSizer("w-resize",n++)),this.sizers.push(this.createSizer("e-resize",n++)),this.sizers.push(this.createSizer("sw-resize",n++)),this.sizers.push(this.createSizer("s-resize",n++))),this.sizers.push(this.createSizer("se-resize",n++))),null!=(e=this.graph.model.getGeometry(this.state.cell))&&!e.relative&&!this.graph.isSwimlane(this.state.cell)&&this.graph.isLabelMovable(this.state.cell)&&(this.labelShape=this.createSizer(mxConstants.CURSOR_LABEL_HANDLE,mxEvent.LABEL_HANDLE,mxConstants.LABEL_HANDLE_SIZE,mxConstants.LABEL_HANDLE_FILLCOLOR),this.sizers.push(this.labelShape))}else this.graph.isCellMovable(this.state.cell)&&!this.graph.isCellResizable(this.state.cell)&&this.state.width<2&&this.state.height<2&&(this.labelShape=this.createSizer(mxConstants.CURSOR_MOVABLE_VERTEX,null,null,mxConstants.LABEL_HANDLE_FILLCOLOR),this.sizers.push(this.labelShape))}this.rotationEnabled&&(mxGraphHandler.prototype.maxCells<=0||this.graph.getSelectionCount()<mxGraphHandler.prototype.maxCells)&&(this.rotationShape=this.createSizer("pointer",mxEvent.ROTATION_HANDLE,mxConstants.HANDLE_SIZE+3,mxConstants.HANDLE_FILLCOLOR),this.sizers.push(this.rotationShape)),this.redraw()},mxVertexHandler.prototype.getSelectionBounds=function(e){return new mxRectangle(Math.round(e.x),Math.round(e.y),Math.round(e.width),Math.round(e.height))},mxVertexHandler.prototype.createSelectionShape=function(e){return(e=new mxRectangleShape(e,null,this.getSelectionColor())).strokewidth=this.getSelectionStrokeWidth(),e.isDashed=this.isSelectionDashed(),e},mxVertexHandler.prototype.getSelectionColor=function(){return mxConstants.VERTEX_SELECTION_COLOR},mxVertexHandler.prototype.getSelectionStrokeWidth=function(){return mxConstants.VERTEX_SELECTION_STROKEWIDTH},mxVertexHandler.prototype.isSelectionDashed=function(){return mxConstants.VERTEX_SELECTION_DASHED},mxVertexHandler.prototype.createSizer=function(e,n,t,a){return t=new mxRectangle(0,0,t=t||mxConstants.HANDLE_SIZE,t),(a=this.createSizerShape(t,n,a)).isHtmlAllowed()&&null!=this.state.text&&this.state.text.node.parentNode==this.graph.container?(a.bounds.height-=1,a.bounds.width-=1,a.dialect=mxConstants.DIALECT_STRICTHTML,a.init(this.graph.container)):(a.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG,a.init(this.graph.getView().getOverlayPane())),mxEvent.redirectMouseEvents(a.node,this.graph,this.state),this.graph.isEnabled()&&(a.node.style.cursor=e),this.isSizerVisible(n)||(a.node.style.visibility="hidden"),a},mxVertexHandler.prototype.isSizerVisible=function(e){return!0},mxVertexHandler.prototype.createSizerShape=function(e,n,t){return null!=this.handleImage?(e.width=this.handleImage.width,e.height=this.handleImage.height,new mxImageShape(e,this.handleImage.src)):n==mxEvent.ROTATION_HANDLE?new mxEllipse(e,t||mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR):new mxRectangleShape(e,t||mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)},mxVertexHandler.prototype.moveSizerTo=function(e,n,t){null!=e&&(e.bounds.x=Math.round(n-e.bounds.width/2),e.bounds.y=Math.round(t-e.bounds.height/2),e.redraw())},mxVertexHandler.prototype.getHandleForEvent=function(e){if(e.isSource(this.rotationShape))return mxEvent.ROTATION_HANDLE;if(e.isSource(this.labelShape))return mxEvent.LABEL_HANDLE;if(null!=this.sizers)for(var n=this.tolerance,t=(n=this.allowHandleBoundsCheck&&(mxClient.IS_IE||0<n)?new mxRectangle(e.getGraphX()-n,e.getGraphY()-n,2*n,2*n):null,0);t<this.sizers.length;t++)if(e.isSource(this.sizers[t])||null!=n&&mxUtils.intersects(this.sizers[t].bounds,n))return t;return null},mxVertexHandler.prototype.mouseDown=function(e,n){if(!n.isConsumed()&&this.graph.isEnabled()&&!this.graph.isForceMarqueeEvent(n.getEvent())&&(0<this.tolerance||n.getState()==this.state)){var t=this.getHandleForEvent(n);null!=t&&(this.start(n.getX(),n.getY(),t),n.consume())}},mxVertexHandler.prototype.start=function(e,n,t){e=mxUtils.convertPoint(this.graph.container,e,n),this.startX=e.x,this.startY=e.y,this.index=t,this.selectionBorder.node.style.display=t==mxEvent.ROTATION_HANDLE?"inline":"none",this.preview=this.createSelectionShape(this.bounds),mxClient.IS_SVG&&0!=Number(this.state.style[mxConstants.STYLE_ROTATION]||"0")||null==this.state.text||this.state.text.node.parentNode!=this.graph.container?(this.preview.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.preview.init(this.graph.view.getOverlayPane())):(this.preview.dialect=mxConstants.DIALECT_STRICTHTML,this.preview.init(this.graph.container))},mxVertexHandler.prototype.mouseMove=function(e,n){if(n.isConsumed()||null==this.index)null!=this.getHandleForEvent(n)&&n.consume(!1);else{var t=new mxPoint(n.getGraphX(),n.getGraphY()),a=this.graph.isGridEnabledEvent(n.getEvent()),i=this.graph.getView().scale;if(this.index==mxEvent.LABEL_HANDLE)a&&(t.x=this.graph.snap(t.x/i)*i,t.y=this.graph.snap(t.y/i)*i),this.moveSizerTo(this.sizers[this.sizers.length-1],t.x,t.y);else if(this.index==mxEvent.ROTATION_HANDLE){var s=this.state.x+this.state.width/2-t.x,o=this.state.y+this.state.height/2-t.y;this.currentAlpha=0!=s?180*Math.atan(o/s)/Math.PI+90:o<0?180:0,0<s&&(this.currentAlpha-=180),this.rotationRaster&&(s=t.x-this.state.getCenterX(),o=t.y-this.state.getCenterY(),s=Math.abs(Math.sqrt(s*s+o*o)-this.state.height/2-20),s=Math.max(1,5*Math.min(3,Math.max(0,Math.round(80/Math.abs(s))))),this.currentAlpha=Math.round(this.currentAlpha/s)*s),this.selectionBorder.rotation=this.currentAlpha,this.selectionBorder.redraw()}else{var r=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),l=Math.cos(-r),d=Math.sin(-r),c=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),m=(s=t.x-this.startX,o=t.y-this.startY,t=this.graph.view.translate,d*s+l*o);s=l*s-d*o;this.bounds=this.union(this.selectionBounds,s,m,this.index,a,i,t),l=Math.cos(r),c=(d=Math.sin(r))*(s=(o=new mxPoint(this.bounds.getCenterX(),this.bounds.getCenterY())).x-c.x)+l*(o=o.y-c.y)-o,this.bounds.x+=l*s-d*o-s,this.bounds.y+=c,this.drawPreview()}n.consume()}},mxVertexHandler.prototype.mouseUp=function(e,n){if(!n.isConsumed()&&null!=this.index&&null!=this.state){var t=new mxPoint(n.getGraphX(),n.getGraphY());this.graph.getModel().beginUpdate();try{if(this.index==mxEvent.ROTATION_HANDLE)null!=this.currentAlpha&&this.rotateCell(this.state.cell,this.currentAlpha-(this.state.style[mxConstants.STYLE_ROTATION]||0));else{var a=this.graph.isGridEnabledEvent(n.getEvent()),i=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),s=Math.cos(-i),o=Math.sin(-i),r=(t=o*(r=t.x-this.startX)+s*(l=t.y-this.startY),s*r-o*l),l=t,d=this.graph.view.scale;this.resizeCell(this.state.cell,r/d,l/d,this.index,a)}}finally{this.graph.getModel().endUpdate()}this.reset(),n.consume()}},mxVertexHandler.prototype.rotateCell=function(e,n){var t=this.graph.getModel();if(t.isVertex(e)){if(null!=(s=e==this.state?this.state:this.graph.view.getState(e))&&this.graph.setCellStyles(mxConstants.STYLE_ROTATION,(s.style[mxConstants.STYLE_ROTATION]||0)+n,[e]),this.state.cell!=e&&(null!=(s=this.graph.getCellGeometry(e))&&!s.relative))if(0!=n){var a=this.graph.getModel().getParent(e),i=this.graph.getCellGeometry(a);if(!s.relative&&null!=i){var s,o=mxUtils.toRadians(n),r=(a=Math.cos(o),o=Math.sin(o),new mxPoint(s.getCenterX(),s.getCenterY()));i=new mxPoint(i.width/2,i.height/2),a=mxUtils.getRotatedPoint(r,a,o,i);(s=s.clone()).x=a.x-s.width/2,s.y=a.y-s.height/2,t.setGeometry(e,s)}}else(s=s.clone()).x+=dx,s.y+=dy,t.setGeometry(e,s);for(s=t.getChildCount(e),a=0;a<s;a++)this.rotateCell(t.getChildAt(e,a),n)}},mxVertexHandler.prototype.reset=function(){this.index=this.currentAlpha=null,null!=this.preview&&(this.preview.destroy(),this.preview=null),null!=this.selectionBorder&&(this.selectionBorder.node.style.display="inline",this.selectionBounds=this.getSelectionBounds(this.state),this.bounds=new mxRectangle(this.selectionBounds.x,this.selectionBounds.y,this.selectionBounds.width,this.selectionBounds.height),this.drawPreview())},mxVertexHandler.prototype.resizeCell=function(e,n,t,a,i){var s=this.graph.model.getGeometry(e);if(null!=s)if(a==mxEvent.LABEL_HANDLE)a=this.graph.view.scale,n=(this.labelShape.bounds.getCenterX()-this.startX)/a,t=(this.labelShape.bounds.getCenterY()-this.startY)/a,null==(s=s.clone()).offset?s.offset=new mxPoint(n,t):(s.offset.x+=n,s.offset.y+=t),this.graph.model.setGeometry(e,s);else{if(a=this.union(s,n,t,a,i,1,new mxPoint(0,0)),0!=(r=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"))){n=a.getCenterX()-s.getCenterX(),t=a.getCenterY()-s.getCenterY(),i=Math.cos(r);var o=Math.sin(r),r=i*n-o*t-n;n=o*n+i*t-t,t=a.x-s.x;var l=a.y-s.y,d=i*t-o*l;i=o*t+i*l,a.x+=r,a.y+=n,this.graph.isCellCollapsed(e)||0==r&&0==n||(t=s.x-a.x+d,l=s.y-a.y+i,this.moveChildren(e,t,l))}this.graph.resizeCell(e,a)}},mxVertexHandler.prototype.moveChildren=function(e,n,t){for(var a=this.graph.getModel(),i=a.getChildCount(e),s=0;s<i;s++){var o=a.getChildAt(e,s);if(a.isVertex(o)){var r=this.graph.getCellGeometry(o);null!=r&&!r.relative&&((r=r.clone()).x+=n,r.y+=t,a.setGeometry(o,r))}}},mxVertexHandler.prototype.union=function(e,n,t,a,i,s,o){if(this.singleSizer){o=e.x+e.width+n;var r=e.y+e.height+t;return i&&(o=this.graph.snap(o/s)*s,r=this.graph.snap(r/s)*s),(s=new mxRectangle(e.x,e.y,0,0)).add(new mxRectangle(o,r,0,0)),s}var l=(r=e.x-o.x*s)+e.width,d=e.y-o.y*s;return e=d+e.height,4<a?(e+=t,i&&(e=this.graph.snap(e/s)*s)):a<3&&(d+=t,i&&(d=this.graph.snap(d/s)*s)),0==a||3==a||5==a?(r+=n,i&&(r=this.graph.snap(r/s)*s)):2!=a&&4!=a&&7!=a||(l+=n,i&&(l=this.graph.snap(l/s)*s)),e-=d,(i=l-r)<0&&(r+=i,i=Math.abs(i)),e<0&&(d+=e,e=Math.abs(e)),new mxRectangle(r+o.x*s,d+o.y*s,i,e)},mxVertexHandler.prototype.redraw=function(){this.selectionBounds=this.getSelectionBounds(this.state),this.bounds=new mxRectangle(this.state.x,this.state.y,this.state.width,this.state.height);var e=this.state;if(null!=this.sizers){var n=e.x+e.width,t=e.y+e.height;if(this.singleSizer)this.moveSizerTo(this.sizers[0],n,t);else{var a=e.x+e.width/2,i=e.y+e.height/2;if(1<this.sizers.length){var s=mxUtils.toRadians(e.style[mxConstants.STYLE_ROTATION]||"0"),o=Math.cos(s),r=(s=Math.sin(s),new mxPoint(e.getCenterX(),e.getCenterY())),l=mxUtils.getRotatedPoint(new mxPoint(e.x,e.y),o,s,r);this.moveSizerTo(this.sizers[0],l.x,l.y),l.x=a,l.y=e.y,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[1],l.x,l.y),l.x=n,l.y=e.y,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[2],l.x,l.y),l.x=e.x,l.y=i,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[3],l.x,l.y),l.x=n,l.y=i,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[4],l.x,l.y),l.x=e.x,l.y=t,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[5],l.x,l.y),l.x=a,l.y=t,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[6],l.x,l.y),l.x=n,l.y=t,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[7],l.x,l.y),this.moveSizerTo(this.sizers[8],a+e.absoluteOffset.x,i+e.absoluteOffset.y)}else 2<=this.state.width&&2<=this.state.height?this.moveSizerTo(this.sizers[0],a+e.absoluteOffset.x,i+e.absoluteOffset.y):this.moveSizerTo(this.sizers[0],e.x,e.y)}}null!=this.rotationShape&&(s=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),o=Math.cos(s),s=Math.sin(s),r=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),l=mxUtils.getRotatedPoint(new mxPoint(e.x+e.width/2,e.y-16),o,s,r),this.moveSizerTo(this.rotationShape,l.x,l.y)),this.selectionBorder.rotation=Number(this.state.style[mxConstants.STYLE_ROTATION]||"0"),this.drawPreview()},mxVertexHandler.prototype.drawPreview=function(){null!=this.preview&&(this.preview.bounds=this.bounds,this.preview.node.parentNode==this.graph.container&&(this.preview.bounds.width=Math.max(0,this.preview.bounds.width-1),this.preview.bounds.height=Math.max(0,this.preview.bounds.height-1)),this.preview.rotation=Number(this.state.style[mxConstants.STYLE_ROTATION]||"0"),this.preview.redraw()),this.selectionBorder.bounds=this.bounds,this.selectionBorder.redraw()},mxVertexHandler.prototype.destroy=function(){if(null!=this.preview&&(this.preview.destroy(),this.preview=null),this.selectionBorder.destroy(),this.labelShape=this.selectionBorder=null,null!=this.sizers)for(var e=0;e<this.sizers.length;e++)this.sizers[e].destroy(),this.sizers[e]=null},mxEdgeHandler.prototype.graph=null,mxEdgeHandler.prototype.state=null,mxEdgeHandler.prototype.marker=null,mxEdgeHandler.prototype.constraintHandler=null,mxEdgeHandler.prototype.error=null,mxEdgeHandler.prototype.shape=null,mxEdgeHandler.prototype.bends=null,mxEdgeHandler.prototype.labelShape=null,mxEdgeHandler.prototype.cloneEnabled=!0,mxEdgeHandler.prototype.addEnabled=!1,mxEdgeHandler.prototype.removeEnabled=!1,mxEdgeHandler.prototype.preferHtml=!1,mxEdgeHandler.prototype.allowHandleBoundsCheck=!0,mxEdgeHandler.prototype.snapToTerminals=!1,mxEdgeHandler.prototype.handleImage=null,mxEdgeHandler.prototype.tolerance=0,mxEdgeHandler.prototype.init=function(){if(this.graph=this.state.view.graph,this.marker=this.createMarker(),this.constraintHandler=new mxConstraintHandler(this.graph),this.points=[],this.abspoints=this.getSelectionPoints(this.state),this.shape=this.createSelectionShape(this.abspoints),this.shape.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG,this.shape.init(this.graph.getView().getOverlayPane()),this.shape.svgStrokeTolerance=0,this.shape.node.style.cursor=mxConstants.CURSOR_MOVABLE_EDGE,mxEvent.addListener(this.shape.node,"dblclick",mxUtils.bind(this,function(e){this.graph.dblClick(e,this.state.cell)})),mxEvent.addGestureListeners(this.shape.node,mxUtils.bind(this,function(e){this.addEnabled&&this.isAddPointEvent(e)?this.addPoint(this.state,e):this.graph.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,this.state))}),mxUtils.bind(this,function(e){var n=this.state.cell;if(null!=this.index){var t=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e));n=this.graph.getCellAt(t.x,t.y);this.graph.isSwimlane(n)&&this.graph.hitsSwimlaneContent(n,t.x,t.y)&&(n=null)}this.graph.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,this.graph.getView().getState(n)))}),mxUtils.bind(this,function(e){this.graph.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e,this.state))})),this.preferHtml=null!=this.state.text&&this.state.text.node.parentNode==this.graph.container,!this.preferHtml){var e=this.state.getVisibleTerminalState(!0);null!=e&&(this.preferHtml=null!=e.text&&e.text.node.parentNode==this.graph.container),this.preferHtml||null!=(e=this.state.getVisibleTerminalState(!1))&&(this.preferHtml=null!=e.text&&e.text.node.parentNode==this.graph.container)}(this.graph.getSelectionCount()<mxGraphHandler.prototype.maxCells||mxGraphHandler.prototype.maxCells<=0)&&(this.bends=this.createBends()),this.label=new mxPoint(this.state.absoluteOffset.x,this.state.absoluteOffset.y),this.labelShape=new mxRectangleShape(new mxRectangle,mxConstants.LABEL_HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR),this.labelShape.pointerEvents=!1,this.initBend(this.labelShape),this.labelShape.node.style.cursor=mxConstants.CURSOR_LABEL_HANDLE,mxEvent.redirectMouseEvents(this.labelShape.node,this.graph,this.state),this.redraw()},mxEdgeHandler.prototype.isAddPointEvent=function(e){return mxEvent.isShiftDown(e)},mxEdgeHandler.prototype.isRemovePointEvent=function(e){return mxEvent.isShiftDown(e)},mxEdgeHandler.prototype.getSelectionPoints=function(e){return e.absolutePoints},mxEdgeHandler.prototype.createSelectionShape=function(e){return(e=new mxPolyline(e,this.getSelectionColor())).strokewidth=this.getSelectionStrokeWidth(),e.isDashed=this.isSelectionDashed(),e},mxEdgeHandler.prototype.getSelectionColor=function(){return mxConstants.EDGE_SELECTION_COLOR},mxEdgeHandler.prototype.getSelectionStrokeWidth=function(){return mxConstants.EDGE_SELECTION_STROKEWIDTH},mxEdgeHandler.prototype.isSelectionDashed=function(){return mxConstants.EDGE_SELECTION_DASHED},mxEdgeHandler.prototype.isConnectableCell=function(e){return!0},mxEdgeHandler.prototype.createMarker=function(){var e=new mxCellMarker(this.graph),a=this;return e.getCell=function(e){var n=mxCellMarker.prototype.getCell.apply(this,arguments);if(!a.isConnectableCell(n))return null;var t=a.graph.getModel();return(n==a.state.cell||null!=n&&!a.graph.connectableEdges&&t.isEdge(n))&&(n=null),n},e.isValidState=function(e){var n=a.graph.getModel();n=null!=(n=a.graph.view.getTerminalPort(e,a.graph.view.getState(n.getTerminal(a.state.cell,!a.isSource)),!a.isSource))?n.cell:null;return a.error=a.validateConnection(a.isSource?e.cell:n,a.isSource?n:e.cell),null==a.error},e},mxEdgeHandler.prototype.validateConnection=function(e,n){return this.graph.getEdgeValidationError(this.state.cell,e,n)},mxEdgeHandler.prototype.createBends=function(){for(var e=this.state.cell,n=[],t=0;t<this.abspoints.length;t++)if(this.isHandleVisible(t)){var a=t==this.abspoints.length-1;if((a=0==t||a)||this.graph.isCellBendable(e)){var i=this.createHandleShape(t);if(this.initBend(i),mxClient.IS_TOUCH&&i.node.setAttribute("pointer-events","none"),this.isHandleEnabled(t))if(mxClient.IS_TOUCH){var s=mxUtils.bind(this,function(e){return e=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e)),this.graph.view.getState(this.graph.getCellAt(e.x,e.y))});mxEvent.redirectMouseEvents(i.node,this.graph,s)}else i.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(i.node,this.graph,this.state);n.push(i),a||(this.points.push(new mxPoint(0,0)),i.node.style.visibility="hidden")}}return n},mxEdgeHandler.prototype.isHandleEnabled=function(e){return!0},mxEdgeHandler.prototype.isHandleVisible=function(e){return!0},mxEdgeHandler.prototype.createHandleShape=function(e){return null!=this.handleImage?new mxImageShape(new mxRectangle(0,0,this.handleImage.width,this.handleImage.height),this.handleImage.src):(e=mxConstants.HANDLE_SIZE,this.preferHtml&&(e-=1),new mxRectangleShape(new mxRectangle(0,0,e,e),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR))},mxEdgeHandler.prototype.initBend=function(e){this.preferHtml?(e.dialect=mxConstants.DIALECT_STRICTHTML,e.init(this.graph.container)):(e.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG,e.init(this.graph.getView().getOverlayPane()))},mxEdgeHandler.prototype.getHandleForEvent=function(e){if(null!=this.bends)for(var n=this.tolerance,t=(n=this.allowHandleBoundsCheck&&(mxClient.IS_IE||0<n)?new mxRectangle(e.getGraphX()-n,e.getGraphY()-n,2*n,2*n):null,0);t<this.bends.length;t++)if((e.isSource(this.bends[t])||null!=n&&mxUtils.intersects(this.bends[t].bounds,n))&&"hidden"!=this.bends[t].node.style.visibility)return t;return!(e.isSource(this.labelShape)&&"hidden"!=this.labelShape.node.style.visibility||e.isSource(this.state.text))||(mxClient.IS_SF||mxClient.IS_GC)&&"SELECT"==e.getSource().nodeName?null:mxEvent.LABEL_HANDLE},mxEdgeHandler.prototype.mouseDown=function(e,n){var t=null;null!=(t=this.getHandleForEvent(n))&&!n.isConsumed()&&this.graph.isEnabled()&&!this.graph.isForceMarqueeEvent(n.getEvent())&&(this.removeEnabled&&this.isRemovePointEvent(n.getEvent())?this.removePoint(this.state,t):(t!=mxEvent.LABEL_HANDLE||this.graph.isLabelMovable(n.getCell()))&&this.start(n.getX(),n.getY(),t),n.consume())},mxEdgeHandler.prototype.start=function(e,n,t){this.startX=e,this.startY=n,this.isSource=null!=this.bends&&0==t,this.isTarget=null!=this.bends&&t==this.bends.length-1,this.isLabel=t==mxEvent.LABEL_HANDLE,this.isSource||this.isTarget?(e=this.state.cell,(null==(n=this.graph.model.getTerminal(e,this.isSource))&&this.graph.isTerminalPointMovable(e,this.isSource)||null!=n&&this.graph.isCellDisconnectable(e,n,this.isSource))&&(this.index=t)):this.index=t},mxEdgeHandler.prototype.clonePreviewState=function(e,n){return this.state.clone()},mxEdgeHandler.prototype.getSnapToTerminalTolerance=function(){return this.graph.gridSize*this.graph.view.scale/2},mxEdgeHandler.prototype.getPointForEvent=function(e){var t=new mxPoint(e.getGraphX(),e.getGraphY()),a=this.getSnapToTerminalTolerance(),n=this.graph.getView(),i=!1,s=!1;if(this.snapToTerminals&&0<a){var o=function(e){if(null!=e){var n=e.x;Math.abs(t.x-n)<a&&(t.x=n,i=!0),e=e.y,Math.abs(t.y-e)<a&&(t.y=e,s=!0)}},r=function(e){null!=e&&o.call(this,new mxPoint(n.getRoutingCenterX(e),n.getRoutingCenterY(e)))};if(r.call(this,this.state.getVisibleTerminalState(!0)),r.call(this,this.state.getVisibleTerminalState(!1)),null!=this.abspoints)for(r=0;r<this.abspoints;r++)r!=this.index&&o.call(this,this.abspoints[r])}return this.graph.isGridEnabledEvent(e.getEvent())&&(e=n.scale,r=n.translate,i||(t.x=(this.graph.snap(t.x/e-r.x)+r.x)*e),s||(t.y=(this.graph.snap(t.y/e-r.y)+r.y)*e)),t},mxEdgeHandler.prototype.getPreviewTerminalState=function(e){this.constraintHandler.update(e,this.isSource),this.marker.process(e),e=this.marker.getValidState();var n=null;return null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentConstraint&&this.marker.reset(),null!=e?n=e:null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&(n=this.constraintHandler.currentFocus),n},mxEdgeHandler.prototype.getPreviewPoints=function(e){var n=null!=(n=this.graph.getCellGeometry(this.state.cell)).points?n.points.slice():null;return this.isSource||this.isTarget?this.graph.resetEdgesOnConnect&&(n=null):(this.convertPoint(e,!1),null==n?n=[e]:n[this.index-1]=e),n},mxEdgeHandler.prototype.updatePreviewState=function(e,n,t){var a=this.isSource?t:this.state.getVisibleTerminalState(!0),i=this.isTarget?t:this.state.getVisibleTerminalState(!1),s=this.graph.getConnectionConstraint(e,a,!0),o=this.graph.getConnectionConstraint(e,i,!1),r=this.constraintHandler.currentConstraint;null==r&&(r=new mxConnectionConstraint),this.isSource?s=r:this.isTarget&&(o=r),(!this.isSource||null!=a)&&e.view.updateFixedTerminalPoint(e,a,!0,s),(!this.isTarget||null!=i)&&e.view.updateFixedTerminalPoint(e,i,!1,o),(this.isSource||this.isTarget)&&null==t&&(e.setAbsoluteTerminalPoint(n,this.isSource),null==this.marker.getMarkedState()&&(this.error=this.graph.allowDanglingEdges?null:"")),e.view.updatePoints(e,this.points,a,i),e.view.updateFloatingTerminalPoints(e,a,i)},mxEdgeHandler.prototype.mouseMove=function(e,n){if(null!=this.index&&null!=this.marker){var t=this.getPointForEvent(n);if(this.isLabel)this.label.x=t.x,this.label.y=t.y;else{this.points=this.getPreviewPoints(t);var a=this.isSource||this.isTarget?this.getPreviewTerminalState(n):null,i=this.clonePreviewState(t,null!=a?a.cell:null);this.updatePreviewState(i,t,a),this.setPreviewColor(null==this.error?this.marker.validColor:this.marker.invalidColor),this.abspoints=i.absolutePoints,this.active=!0}this.drawPreview(),mxEvent.consume(n.getEvent()),n.consume()}else mxClient.IS_IE&&null!=this.getHandleForEvent(n)&&n.consume(!1)},mxEdgeHandler.prototype.mouseUp=function(e,n){if(null!=this.index&&null!=this.marker){var t=this.state.cell;if(n.getX()!=this.startX||n.getY()!=this.startY)if(null!=this.error)0<this.error.length&&this.graph.validationAlert(this.error);else if(this.isLabel)this.moveLabel(this.state,this.label.x,this.label.y);else if(this.isSource||this.isTarget){var a=null;if(null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&(a=this.constraintHandler.currentFocus.cell),null==a&&this.marker.hasValidState()&&(a=this.marker.validState.cell),null!=a)t=this.connect(t,a,this.isSource,this.graph.isCloneEvent(n.getEvent())&&this.cloneEnabled&&this.graph.isCellsCloneable(),n);else if(this.graph.isAllowDanglingEdges()){(a=this.abspoints[this.isSource?0:this.abspoints.length-1]).x=a.x/this.graph.view.scale-this.graph.view.translate.x,a.y=a.y/this.graph.view.scale-this.graph.view.translate.y;var i=this.graph.getView().getState(this.graph.getModel().getParent(t));null!=i&&(a.x-=i.origin.x,a.y-=i.origin.y),a.x-=this.graph.panDx/this.graph.view.scale,a.y-=this.graph.panDy/this.graph.view.scale,this.changeTerminalPoint(t,a,this.isSource)}}else this.active?this.changePoints(t,this.points):(this.graph.getView().invalidate(this.state.cell),this.graph.getView().revalidate(this.state.cell));null!=this.marker&&(this.reset(),t!=this.state.cell&&this.graph.setSelectionCell(t)),n.consume()}},mxEdgeHandler.prototype.reset=function(){this.points=this.label=this.index=this.error=null,this.isTarget=this.isSource=this.isLabel=this.active=!1,this.marker.reset(),this.constraintHandler.reset(),this.setPreviewColor(mxConstants.EDGE_SELECTION_COLOR),this.redraw()},mxEdgeHandler.prototype.setPreviewColor=function(e){null!=this.shape&&(this.shape.stroke=e)},mxEdgeHandler.prototype.convertPoint=function(e,n){var t=this.graph.getView().getScale(),a=this.graph.getView().getTranslate();return n&&(e.x=this.graph.snap(e.x),e.y=this.graph.snap(e.y)),e.x=Math.round(e.x/t-a.x),e.y=Math.round(e.y/t-a.y),null!=(t=this.graph.getView().getState(this.graph.getModel().getParent(this.state.cell)))&&(e.x-=t.origin.x,e.y-=t.origin.y),e},mxEdgeHandler.prototype.moveLabel=function(e,n,t){var a=this.graph.getModel();if(null!=(i=a.getGeometry(e.cell))){var i=i.clone(),s=this.graph.getView().getRelativePoint(e,n,t);i.x=s.x,i.y=s.y;var o=this.graph.getView().scale;i.offset=new mxPoint(0,0),s=this.graph.view.getPoint(e,i),i.offset=new mxPoint((n-s.x)/o,(t-s.y)/o),a.setGeometry(e.cell,i)}},mxEdgeHandler.prototype.connect=function(e,n,t,a,i){var s=(i=this.graph.getModel()).getParent(e);i.beginUpdate();try{if(a){var o=e.clone();i.add(s,o,i.getChildCount(s));var r=i.getTerminal(e,!t);this.graph.connectCell(o,r,!t),e=o}var l=this.constraintHandler.currentConstraint;null==l&&(l=new mxConnectionConstraint),this.graph.connectCell(e,n,t,l)}finally{i.endUpdate()}return e},mxEdgeHandler.prototype.changeTerminalPoint=function(e,n,t){var a=this.graph.getModel(),i=a.getGeometry(e);if(null!=i){a.beginUpdate();try{(i=i.clone()).setTerminalPoint(n,t),a.setGeometry(e,i),this.graph.connectCell(e,null,t,new mxConnectionConstraint)}finally{a.endUpdate()}}},mxEdgeHandler.prototype.changePoints=function(e,n){var t=this.graph.getModel(),a=t.getGeometry(e);null!=a&&((a=a.clone()).points=n,t.setGeometry(e,a))},mxEdgeHandler.prototype.addPoint=function(e,n){var t=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(n),mxEvent.getClientY(n)),a=this.graph.isGridEnabledEvent(n);this.convertPoint(t,a),this.addPointAt(e,t.x,t.y),mxEvent.consume(n)},mxEdgeHandler.prototype.addPointAt=function(e,n,t){var a=this.graph.getCellGeometry(e.cell);if(n=new mxPoint(n,t),null!=a){a=a.clone(),t=this.graph.view.translate;var i=this.graph.view.scale;t=mxUtils.findNearestSegment(e,(n.x+t.x)*i,(n.y+t.y)*i),null==a.points?a.points=[n]:a.points.splice(t,0,n),this.graph.getModel().setGeometry(e.cell,a),this.destroy(),this.init()}},mxEdgeHandler.prototype.removePoint=function(e,n){if(0<n&&n<this.abspoints.length-1){var t=this.graph.getCellGeometry(this.state.cell);null!=t&&null!=t.points&&((t=t.clone()).points.splice(n-1,1),this.graph.getModel().setGeometry(e.cell,t),this.destroy(),this.init())}},mxEdgeHandler.prototype.getHandleFillColor=function(e){e=0==e;var n=this.state.cell,t=this.graph.getModel().getTerminal(n,e),a=mxConstants.HANDLE_FILLCOLOR;return null!=t&&!this.graph.isCellDisconnectable(n,t,e)||null==t&&!this.graph.isTerminalPointMovable(n,e)?a=mxConstants.LOCKED_HANDLE_FILLCOLOR:null!=t&&this.graph.isCellDisconnectable(n,t,e)&&(a=mxConstants.CONNECT_HANDLE_FILLCOLOR),a},mxEdgeHandler.prototype.redraw=function(){this.abspoints=this.state.absolutePoints.slice();var e=this.state.cell,n=mxConstants.LABEL_HANDLE_SIZE;if(this.label=new mxPoint(this.state.absoluteOffset.x,this.state.absoluteOffset.y),this.labelShape.bounds=new mxRectangle(Math.round(this.label.x-n/2),Math.round(this.label.y-n/2),n,n),this.labelShape.redraw(),null!=(n=this.graph.getLabel(e))&&0<n.length&&this.graph.isLabelMovable(e)?this.labelShape.node.style.visibility="visible":this.labelShape.node.style.visibility="hidden",null!=this.bends&&0<this.bends.length){var t=this.abspoints.length-1,a=(e=this.abspoints[0],this.abspoints[0].y);n=this.bends[0].bounds;this.bends[0].bounds=new mxRectangle(Math.round(this.abspoints[0].x-n.width/2),Math.round(a-n.height/2),n.width,n.height),this.bends[0].fill=this.getHandleFillColor(0),this.bends[0].redraw();a=this.abspoints[t];var i=this.abspoints[t].x,s=(t=this.abspoints[t].y,this.bends.length-1);n=this.bends[s].bounds;this.bends[s].bounds=new mxRectangle(Math.round(i-n.width/2),Math.round(t-n.height/2),n.width,n.height),this.bends[s].fill=this.getHandleFillColor(s),this.bends[s].redraw(),this.redrawInnerBends(e,a)}this.drawPreview()},mxEdgeHandler.prototype.redrawInnerBends=function(e,n){var t=this.graph.getModel().getGeometry(this.state.cell).points;if(null!=t){null==this.points&&(this.points=[]);for(var a=1;a<this.bends.length-1;a++)if(null!=this.bends[a])if(null!=this.abspoints[a]){var i=this.abspoints[a].x,s=this.abspoints[a].y,o=this.bends[a].bounds;this.bends[a].node.style.visibility="visible",this.bends[a].bounds=new mxRectangle(Math.round(i-o.width/2),Math.round(s-o.height/2),o.width,o.height),this.bends[a].redraw(),this.points[a-1]=t[a-1]}else this.bends[a].destroy(),this.bends[a]=null}},mxEdgeHandler.prototype.drawPreview=function(){if(this.isLabel){var e=mxConstants.LABEL_HANDLE_SIZE;e=new mxRectangle(Math.round(this.label.x-e/2),Math.round(this.label.y-e/2),e,e);this.labelShape.bounds=e,this.labelShape.redraw()}else this.shape.points=this.abspoints,this.shape.redraw()},mxEdgeHandler.prototype.destroy=function(){if(null!=this.marker&&(this.marker.destroy(),this.marker=null),null!=this.shape&&(this.shape.destroy(),this.shape=null),null!=this.labelShape&&(this.labelShape.destroy(),this.labelShape=null),null!=this.constraintHandler&&(this.constraintHandler.destroy(),this.constraintHandler=null),null!=this.bends)for(var e=0;e<this.bends.length;e++)null!=this.bends[e]&&(this.bends[e].destroy(),this.bends[e]=null)},mxUtils.extend(mxElbowEdgeHandler,mxEdgeHandler),mxElbowEdgeHandler.prototype=new mxEdgeHandler,mxElbowEdgeHandler.prototype.constructor=mxElbowEdgeHandler,mxElbowEdgeHandler.prototype.flipEnabled=!0,mxElbowEdgeHandler.prototype.doubleClickOrientationResource="none"!=mxClient.language?"doubleClickOrientation":"",mxElbowEdgeHandler.prototype.createBends=function(){var e=[],n=this.createHandleShape(0);return this.initBend(n),n.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(n.node,this.graph,this.state),e.push(n),mxClient.IS_TOUCH&&n.node.setAttribute("pointer-events","none"),e.push(this.createVirtualBend()),this.points.push(new mxPoint(0,0)),n=this.createHandleShape(2),this.initBend(n),n.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(n.node,this.graph,this.state),e.push(n),mxClient.IS_TOUCH&&n.node.setAttribute("pointer-events","none"),e},mxElbowEdgeHandler.prototype.createVirtualBend=function(){var e=this.createHandleShape();this.initBend(e);var n=this.getCursorForBend();return e.node.style.cursor=n,n=mxUtils.bind(this,function(e){!mxEvent.isConsumed(e)&&this.flipEnabled&&(this.graph.flipEdge(this.state.cell,e),mxEvent.consume(e))}),mxEvent.redirectMouseEvents(e.node,this.graph,this.state,null,null,null,n),this.graph.isCellBendable(this.state.cell)||(e.node.style.display="none"),e},mxElbowEdgeHandler.prototype.getCursorForBend=function(){return this.state.style[mxConstants.STYLE_EDGE]==mxEdgeStyle.TopToBottom||this.state.style[mxConstants.STYLE_EDGE]==mxConstants.EDGESTYLE_TOPTOBOTTOM||(this.state.style[mxConstants.STYLE_EDGE]==mxEdgeStyle.ElbowConnector||this.state.style[mxConstants.STYLE_EDGE]==mxConstants.EDGESTYLE_ELBOW)&&this.state.style[mxConstants.STYLE_ELBOW]==mxConstants.ELBOW_VERTICAL?"row-resize":"col-resize"},mxElbowEdgeHandler.prototype.getTooltipForNode=function(e){var n=null;return null==this.bends||null==this.bends[1]||e!=this.bends[1].node&&e.parentNode!=this.bends[1].node||(n=this.doubleClickOrientationResource,n=mxResources.get(n)||n),n},mxElbowEdgeHandler.prototype.convertPoint=function(e,n){var t=this.graph.getView().getScale(),a=this.graph.getView().getTranslate(),i=this.state.origin;n&&(e.x=this.graph.snap(e.x),e.y=this.graph.snap(e.y)),e.x=Math.round(e.x/t-a.x-i.x),e.y=Math.round(e.y/t-a.y-i.y)},mxElbowEdgeHandler.prototype.redrawInnerBends=function(e,n){var t=null==(t=null!=(t=this.graph.getModel().getGeometry(this.state.cell).points)?t[0]:null)?new mxPoint(e.x+(n.x-e.x)/2,e.y+(n.y-e.y)/2):new mxPoint(this.graph.getView().scale*(t.x+this.graph.getView().translate.x+this.state.origin.x),this.graph.getView().scale*(t.y+this.graph.getView().translate.y+this.state.origin.y)),a=(i=this.bends[1].bounds).width,i=i.height;null==this.handleImage&&(i=a=mxConstants.HANDLE_SIZE);var s=new mxRectangle(Math.round(t.x-a/2),Math.round(t.y-i/2),a,i);null==this.handleImage&&"hidden"!=this.labelShape.node.style.visibility&&mxUtils.intersects(s,this.labelShape.bounds)&&(a+=3,i+=3,s=new mxRectangle(Math.round(t.x-a/2),Math.round(t.y-i/2),a,i)),this.bends[1].bounds=s,this.bends[1].redraw()},mxUtils.extend(mxEdgeSegmentHandler,mxEdgeHandler),mxEdgeSegmentHandler.prototype=new mxElbowEdgeHandler,mxEdgeSegmentHandler.prototype.constructor=mxEdgeSegmentHandler,mxEdgeSegmentHandler.prototype.getPreviewPoints=function(e){if(this.isSource||this.isTarget)return mxElbowEdgeHandler.prototype.getPreviewPoints.apply(this,arguments);this.convertPoint(e,!1);var n=this.state.absolutePoints,t=n[0].clone();this.convertPoint(t,!1);for(var a=[],i=1;i<n.length;i++){var s=n[i].clone();this.convertPoint(s,!1),i==this.index&&(t.x==s.x?(t.x=e.x,s.x=e.x):(t.y=e.y,s.y=e.y)),i<n.length-1&&a.push(s),t=s}if(1==a.length){if(t=this.state.view,i=this.state.getVisibleTerminalState(!0),null!=(s=this.state.getVisibleTerminalState(!1))&null!=i){var o=this.state.origin.x,r=this.state.origin.y;mxUtils.contains(s,a[0].x+o,a[0].y+r)?n[1].y==n[2].y?a[0].y=t.getRoutingCenterY(i)-r:a[0].x=t.getRoutingCenterX(i)-o:mxUtils.contains(i,a[0].x+o,a[0].y+r)&&(n[1].y==n[0].y?a[0].y=t.getRoutingCenterY(s)-r:a[0].x=t.getRoutingCenterX(s)-o)}}else 0==a.length&&(a=[e]);return a},mxEdgeSegmentHandler.prototype.createBends=function(){var e=[],n=this.createHandleShape(0);this.initBend(n),n.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(n.node,this.graph,this.state),e.push(n),mxClient.IS_TOUCH&&n.node.setAttribute("pointer-events","none");var t=this.state.absolutePoints;if(this.graph.isCellBendable(this.state.cell)){null==this.points&&(this.points=[]);for(var a=0;a<t.length-1;a++)n=this.createVirtualBend(),e.push(n),n.node.style.cursor=0==t[a].x-t[a+1].x?"col-resize":"row-resize",this.points.push(new mxPoint(0,0)),mxClient.IS_TOUCH&&n.node.setAttribute("pointer-events","none")}return n=this.createHandleShape(t.length),this.initBend(n),n.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(n.node,this.graph,this.state),e.push(n),mxClient.IS_TOUCH&&n.node.setAttribute("pointer-events","none"),e},mxEdgeSegmentHandler.prototype.redraw=function(){this.refresh(),mxEdgeHandler.prototype.redraw.apply(this,arguments)},mxEdgeSegmentHandler.prototype.refresh=function(){if(null!=this.bends){for(var e=0;e<this.bends.length;e++)null!=this.bends[e]&&(this.bends[e].destroy(),this.bends[e]=null);this.bends=this.createBends()}},mxEdgeSegmentHandler.prototype.redrawInnerBends=function(e,n){if(this.graph.isCellBendable(this.state.cell)){var t=mxConstants.HANDLE_SIZE,a=this.state.absolutePoints;if(null!=a&&1<a.length)for(var i=0;i<this.state.absolutePoints.length-1;i++)if(null!=this.bends[i+1]){e=a[i],n=a[i+1];var s=new mxPoint(e.x+(n.x-e.x)/2,e.y+(n.y-e.y)/2);this.bends[i+1].bounds=new mxRectangle(Math.round(s.x-t/2),Math.round(s.y-t/2),t,t),this.bends[i+1].redraw()}}},mxEdgeSegmentHandler.prototype.changePoints=function(e,n){n=[];var t=this.abspoints;if(1<t.length)for(var a=t[0],i=t[1],s=2;s<t.length;s++){var o=t[s];Math.round(a.x)==Math.round(i.x)&&Math.round(i.x)==Math.round(o.x)||Math.round(a.y)==Math.round(i.y)&&Math.round(i.y)==Math.round(o.y)||(i=(a=i).clone(),this.convertPoint(i,!1),n.push(i)),i=o}mxElbowEdgeHandler.prototype.changePoints.apply(this,arguments)},mxKeyHandler.prototype.graph=null,mxKeyHandler.prototype.target=null,mxKeyHandler.prototype.normalKeys=null,mxKeyHandler.prototype.shiftKeys=null,mxKeyHandler.prototype.controlKeys=null,mxKeyHandler.prototype.controlShiftKeys=null,mxKeyHandler.prototype.enabled=!0,mxKeyHandler.prototype.isEnabled=function(){return this.enabled},mxKeyHandler.prototype.setEnabled=function(e){this.enabled=e},mxKeyHandler.prototype.bindKey=function(e,n){this.normalKeys[e]=n},mxKeyHandler.prototype.bindShiftKey=function(e,n){this.shiftKeys[e]=n},mxKeyHandler.prototype.bindControlKey=function(e,n){this.controlKeys[e]=n},mxKeyHandler.prototype.bindControlShiftKey=function(e,n){this.controlShiftKeys[e]=n},mxKeyHandler.prototype.isControlDown=function(e){return mxEvent.isControlDown(e)},mxKeyHandler.prototype.getFunction=function(e){return null!=e?this.isControlDown(e)?mxEvent.isShiftDown(e)?this.controlShiftKeys[e.keyCode]:this.controlKeys[e.keyCode]:mxEvent.isShiftDown(e)?this.shiftKeys[e.keyCode]:this.normalKeys[e.keyCode]:null},mxKeyHandler.prototype.isGraphEvent=function(e){if((e=mxEvent.getSource(e))==this.target||e.parentNode==this.target||null!=this.graph.cellEditor&&e==this.graph.cellEditor.textarea)return!0;for(;null!=e;){if(e==this.graph.container)return!0;e=e.parentNode}return!1},mxKeyHandler.prototype.keyDown=function(e){if(this.graph.isEnabled()&&!mxEvent.isConsumed(e)&&this.isGraphEvent(e)&&this.isEnabled())if(27==e.keyCode)this.escape(e);else if(!this.graph.isEditing()){var n=this.getFunction(e);null!=n&&(n(e),mxEvent.consume(e))}},mxKeyHandler.prototype.escape=function(e){this.graph.isEscapeEnabled()&&this.graph.escape(e)},mxKeyHandler.prototype.destroy=function(){this.target=null},mxTooltipHandler.prototype.zIndex=10005,mxTooltipHandler.prototype.graph=null,mxTooltipHandler.prototype.delay=null,mxTooltipHandler.prototype.hideOnHover=!1,mxTooltipHandler.prototype.enabled=!0,mxTooltipHandler.prototype.isEnabled=function(){return this.enabled},mxTooltipHandler.prototype.setEnabled=function(e){this.enabled=e},mxTooltipHandler.prototype.isHideOnHover=function(){return this.hideOnHover},mxTooltipHandler.prototype.setHideOnHover=function(e){this.hideOnHover=e},mxTooltipHandler.prototype.init=function(){null!=document.body&&(this.div=document.createElement("div"),this.div.className="mxTooltip",this.div.style.visibility="hidden",this.div.style.zIndex=this.zIndex,document.body.appendChild(this.div),mxEvent.addListener(this.div,"mousedown",mxUtils.bind(this,function(e){this.hideTooltip()})))},mxTooltipHandler.prototype.mouseDown=function(e,n){this.reset(n,!1),this.hideTooltip()},mxTooltipHandler.prototype.mouseMove=function(e,n){n.getX()==this.lastX&&n.getY()==this.lastY||(this.reset(n,!0),(this.isHideOnHover()||n.getState()!=this.state||n.getSource()!=this.node&&(!this.stateSource||null!=n.getState()&&this.stateSource==(n.isSource(n.getState().shape)||!n.isSource(n.getState().text))))&&this.hideTooltip()),this.lastX=n.getX(),this.lastY=n.getY()},mxTooltipHandler.prototype.mouseUp=function(e,n){this.reset(n,!0),this.hideTooltip()},mxTooltipHandler.prototype.resetTimer=function(){null!=this.thread&&(window.clearTimeout(this.thread),this.thread=null)},mxTooltipHandler.prototype.reset=function(e,n){if(this.resetTimer(),n&&this.isEnabled()&&null!=e.getState()&&(null==this.div||"hidden"==this.div.style.visibility)){var t=e.getState(),a=e.getSource(),i=e.getX(),s=e.getY(),o=e.isSource(t.shape)||e.isSource(t.text);this.thread=window.setTimeout(mxUtils.bind(this,function(){if(!this.graph.isEditing()&&!this.graph.panningHandler.isMenuShowing()){var e=this.graph.getTooltip(t,a,i,s);this.show(e,i,s),this.state=t,this.node=a,this.stateSource=o}}),this.delay)}},mxTooltipHandler.prototype.hide=function(){this.resetTimer(),this.hideTooltip()},mxTooltipHandler.prototype.hideTooltip=function(){null!=this.div&&(this.div.style.visibility="hidden")},mxTooltipHandler.prototype.show=function(e,n,t){if(null!=e&&0<e.length){null==this.div&&this.init();var a=mxUtils.getScrollOrigin();this.div.style.left=n+a.x+"px",this.div.style.top=t+mxConstants.TOOLTIP_VERTICAL_OFFSET+a.y+"px",mxUtils.isNode(e)?(this.div.innerHTML="",this.div.appendChild(e)):this.div.innerHTML=e.replace(/\n/g,"<br>"),this.div.style.visibility="",mxUtils.fit(this.div)}},mxTooltipHandler.prototype.destroy=function(){this.graph.removeMouseListener(this),mxEvent.release(this.div),null!=this.div&&null!=this.div.parentNode&&this.div.parentNode.removeChild(this.div),this.div=null},mxUtils.extend(mxCellTracker,mxCellMarker),mxCellTracker.prototype.mouseDown=function(e,n){},mxCellTracker.prototype.mouseMove=function(e,n){this.isEnabled()&&this.process(n)},mxCellTracker.prototype.mouseUp=function(e,n){this.reset()},mxCellTracker.prototype.destroy=function(){this.destroyed||(this.destroyed=!0,this.graph.removeMouseListener(this),mxCellMarker.prototype.destroy.apply(this))},mxCellHighlight.prototype.keepOnTop=!1,mxCellHighlight.prototype.graph=!0,mxCellHighlight.prototype.state=null,mxCellHighlight.prototype.spacing=2,mxCellHighlight.prototype.resetHandler=null,mxCellHighlight.prototype.setHighlightColor=function(e){this.highlightColor=e,null!=this.shape&&(this.shape.stroke=e)},mxCellHighlight.prototype.drawHighlight=function(){this.shape=this.createShape(),this.repaint(),!this.keepOnTop&&this.shape.node.parentNode.firstChild!=this.shape.node&&this.shape.node.parentNode.insertBefore(this.shape.node,this.shape.node.parentNode.firstChild)},mxCellHighlight.prototype.createShape=function(){var e=null;return(e=this.graph.model.isEdge(this.state.cell)?new mxPolyline(this.state.absolutePoints,this.highlightColor,this.strokeWidth):new mxRectangleShape(new mxRectangle,null,this.highlightColor,this.strokeWidth)).dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,e.init(this.graph.getView().getOverlayPane()),mxEvent.redirectMouseEvents(e.node,this.graph,this.state),e.svgStrokeTolerance=0,e.pointerEvents=!1,e.isDashed=this.dashed,e},mxCellHighlight.prototype.repaint=function(){if(null!=this.state&&null!=this.shape){var e=0;this.graph.model.isEdge(this.state.cell)?this.shape.points=this.state.absolutePoints:(this.shape.bounds=new mxRectangle(this.state.x-this.spacing,this.state.y-this.spacing,this.state.width+2*this.spacing,this.state.height+2*this.spacing),e=Number(this.state.style[mxConstants.STYLE_ROTATION]||"0")),null!=this.state.shape&&this.shape.setCursor(this.state.shape.getCursor()),0!=e&&(this.shape.rotation=e),this.shape.redraw()}},mxCellHighlight.prototype.hide=function(){this.highlight(null)},mxCellHighlight.prototype.highlight=function(e){this.state!=e&&(null!=this.shape&&(this.shape.destroy(),this.shape=null),this.state=e,null!=this.state&&this.drawHighlight())},mxCellHighlight.prototype.destroy=function(){this.graph.getView().removeListener(this.repaintHandler),this.graph.getModel().removeListener(this.repaintHandler),this.graph.getView().removeListener(this.resetHandler),this.graph.getModel().removeListener(this.resetHandler),null!=this.shape&&(this.shape.destroy(),this.shape=null)},mxDefaultKeyHandler.prototype.editor=null,mxDefaultKeyHandler.prototype.handler=null,mxDefaultKeyHandler.prototype.bindAction=function(e,n,t){var a=mxUtils.bind(this,function(){this.editor.execute(n)});t?this.handler.bindControlKey(e,a):this.handler.bindKey(e,a)},mxDefaultKeyHandler.prototype.destroy=function(){this.handler.destroy(),this.handler=null},mxDefaultPopupMenu.prototype.imageBasePath=null,mxDefaultPopupMenu.prototype.config=null,mxDefaultPopupMenu.prototype.createMenu=function(e,n,t,a){if(null!=this.config){var i=this.createConditions(e,t,a);this.addItems(e,n,t,a,i,this.config.firstChild,null)}},mxDefaultPopupMenu.prototype.addItems=function(e,n,t,a,i,s,o){for(var r=!1;null!=s;){if("add"==s.nodeName){if(null==(l=s.getAttribute("if"))||i[l]){var l=s.getAttribute("as"),d=(l=mxResources.get(l)||l,mxUtils.eval(mxUtils.getTextContent(s))),c=s.getAttribute("action"),m=s.getAttribute("icon"),u=s.getAttribute("iconCls");r&&(n.addSeparator(o),r=!1),null!=m&&this.imageBasePath&&(m=this.imageBasePath+m),l=this.addAction(n,e,l,m,d,c,t,o,u),this.addItems(e,n,t,a,i,s.firstChild,l)}}else"separator"==s.nodeName&&(r=!0);s=s.nextSibling}},mxDefaultPopupMenu.prototype.addAction=function(e,n,t,a,i,s,o,r,l){return e.addItem(t,a,function(e){"function"==typeof i&&i.call(n,n,o,e),null!=s&&n.execute(s,o,e)},r,l)},mxDefaultPopupMenu.prototype.createConditions=function(e,n,t){var a=e.graph.getModel(),i=a.getChildCount(n),s=[];for(s.nocell=null==n,s.ncells=1<e.graph.getSelectionCount(),s.notRoot=a.getRoot()!=a.getParent(e.graph.getDefaultParent()),s.cell=null!=n,a=null!=n&&1==e.graph.getSelectionCount(),s.nonEmpty=a&&0<i,s.expandable=a&&e.graph.isCellFoldable(n,!1),s.collapsable=a&&e.graph.isCellFoldable(n,!0),s.validRoot=a&&e.graph.isValidRoot(n),s.emptyValidRoot=s.validRoot&&0==i,s.swimlane=a&&e.graph.isSwimlane(n),i=this.config.getElementsByTagName("condition"),a=0;a<i.length;a++){var o=mxUtils.eval(mxUtils.getTextContent(i[a])),r=i[a].getAttribute("name");null!=r&&"function"==typeof o&&(s[r]=o(e,n,t))}return s},mxDefaultToolbar.prototype.editor=null,mxDefaultToolbar.prototype.toolbar=null,mxDefaultToolbar.prototype.resetHandler=null,mxDefaultToolbar.prototype.spacing=4,mxDefaultToolbar.prototype.connectOnDrop=!1,mxDefaultToolbar.prototype.init=function(e){null!=e&&(this.toolbar=new mxToolbar(e),this.toolbar.addListener(mxEvent.SELECT,mxUtils.bind(this,function(e,n){var t=n.getProperty("function");this.editor.insertFunction=null!=t?mxUtils.bind(this,function(){t.apply(this,arguments),this.toolbar.resetMode()}):null})),this.resetHandler=mxUtils.bind(this,function(){null!=this.toolbar&&this.toolbar.resetMode(!0)}),this.editor.graph.addListener(mxEvent.DOUBLE_CLICK,this.resetHandler),this.editor.addListener(mxEvent.ESCAPE,this.resetHandler))},mxDefaultToolbar.prototype.addItem=function(e,n,t,a){var i=mxUtils.bind(this,function(){null!=t&&0<t.length&&this.editor.execute(t)});return this.toolbar.addItem(e,n,i,a)},mxDefaultToolbar.prototype.addSeparator=function(e){e=e||mxClient.imageBasePath+"/separator.gif",this.toolbar.addSeparator(e)},mxDefaultToolbar.prototype.addCombo=function(){return this.toolbar.addCombo()},mxDefaultToolbar.prototype.addActionCombo=function(e){return this.toolbar.addActionCombo(e)},mxDefaultToolbar.prototype.addActionOption=function(e,n,t){var a=mxUtils.bind(this,function(){this.editor.execute(t)});this.addOption(e,n,a)},mxDefaultToolbar.prototype.addOption=function(e,n,t){return this.toolbar.addOption(e,n,t)},mxDefaultToolbar.prototype.addMode=function(e,n,t,a,i){var s=mxUtils.bind(this,function(){this.editor.setMode(t),null!=i&&i(this.editor)});return this.toolbar.addSwitchMode(e,n,s,a)},mxDefaultToolbar.prototype.addPrototype=function(e,n,t,a,i,s){var o=function(){return"function"==typeof t?t():null!=t?t.clone():null},r=mxUtils.bind(this,function(e,n){"function"==typeof i?i(this.editor,o(),e,n):this.drop(o(),e,n),this.toolbar.resetMode(),mxEvent.consume(e)});return e=this.toolbar.addMode(e,n,r,a,null,s),this.installDropHandler(e,function(e,n,t){r(n,t)}),e},mxDefaultToolbar.prototype.drop=function(e,n,t){var a=this.editor.graph,i=a.getModel();if(null!=t&&!i.isEdge(t)&&this.connectOnDrop&&a.isCellConnectable(t))this.connect(e,n,t);else{for(;null!=t&&!a.isValidDropTarget(t,[e],n);)t=i.getParent(t);this.insert(e,n,t)}},mxDefaultToolbar.prototype.insert=function(e,n,t){var a=this.editor.graph;if(a.canImportCell(e)){var i=mxEvent.getClientX(n),s=mxEvent.getClientY(n);i=mxUtils.convertPoint(a.container,i,s);return a.isSplitEnabled()&&a.isSplitTarget(t,[e],n)?a.splitEdge(t,[e],null,i.x,i.y):this.editor.addVertex(t,e,i.x,i.y)}return null},mxDefaultToolbar.prototype.connect=function(e,n,t){var a=(n=this.editor.graph).getModel();if(null!=t&&n.isCellConnectable(e)&&n.isEdgeValid(null,t,e)){var i=null;a.beginUpdate();try{var s=a.getGeometry(t),o=a.getGeometry(e).clone();o.x=s.x+(s.width-o.width)/2,o.y=s.y+(s.height-o.height)/2;var r=this.spacing*n.gridSize,l=20*a.getDirectedEdgeCount(t,!0);this.editor.horizontalFlow?o.x+=(o.width+s.width)/2+r+l:o.y+=(o.height+s.height)/2+r+l,e.setGeometry(o);var d=a.getParent(t);if(n.addCell(e,d),n.constrainChild(e),i=this.editor.createEdge(t,e),null==a.getGeometry(i)){var c=new mxGeometry;c.relative=!0,a.setGeometry(i,c)}n.addEdge(i,d,t,e)}finally{a.endUpdate()}n.setSelectionCells([e,i]),n.scrollCellToVisible(e)}},mxDefaultToolbar.prototype.installDropHandler=function(n,t){var a=document.createElement("img");a.setAttribute("src",n.getAttribute("src"));var i=mxUtils.bind(this,function(e){a.style.width=2*n.offsetWidth+"px",a.style.height=2*n.offsetHeight+"px",mxUtils.makeDraggable(n,this.editor.graph,t,a),mxEvent.removeListener(a,"load",i)});mxClient.IS_IE?i():mxEvent.addListener(a,"load",i)},mxDefaultToolbar.prototype.destroy=function(){null!=this.resetHandler&&(this.editor.graph.removeListener("dblclick",this.resetHandler),this.editor.removeListener("escape",this.resetHandler),this.resetHandler=null),null!=this.toolbar&&(this.toolbar.destroy(),this.toolbar=null)},mxLoadResources&&mxResources.add(mxClient.basePath+"/resources/editor"),mxEditor.prototype=new mxEventSource,mxEditor.prototype.constructor=mxEditor,mxEditor.prototype.askZoomResource="none"!=mxClient.language?"askZoom":"",mxEditor.prototype.lastSavedResource="none"!=mxClient.language?"lastSaved":"",mxEditor.prototype.currentFileResource="none"!=mxClient.language?"currentFile":"",mxEditor.prototype.propertiesResource="none"!=mxClient.language?"properties":"",mxEditor.prototype.tasksResource="none"!=mxClient.language?"tasks":"",mxEditor.prototype.helpResource="none"!=mxClient.language?"help":"",mxEditor.prototype.outlineResource="none"!=mxClient.language?"outline":"",mxEditor.prototype.outline=null,mxEditor.prototype.graph=null,mxEditor.prototype.graphRenderHint=null,mxEditor.prototype.toolbar=null,mxEditor.prototype.session=null,mxEditor.prototype.status=null,mxEditor.prototype.popupHandler=null,mxEditor.prototype.undoManager=null,mxEditor.prototype.keyHandler=null,mxEditor.prototype.actions=null,mxEditor.prototype.dblClickAction="edit",mxEditor.prototype.swimlaneRequired=!1,mxEditor.prototype.disableContextMenu=!0,mxEditor.prototype.insertFunction=null,mxEditor.prototype.forcedInserting=!1,mxEditor.prototype.templates=null,mxEditor.prototype.defaultEdge=null,mxEditor.prototype.defaultEdgeStyle=null,mxEditor.prototype.defaultGroup=null,mxEditor.prototype.groupBorderSize=null,mxEditor.prototype.filename=null,mxEditor.prototype.linefeed="
",mxEditor.prototype.postParameterName="xml",mxEditor.prototype.escapePostData=!0,mxEditor.prototype.urlPost=null,mxEditor.prototype.urlImage=null,mxEditor.prototype.urlInit=null,mxEditor.prototype.urlNotify=null,mxEditor.prototype.urlPoll=null,mxEditor.prototype.horizontalFlow=!1,mxEditor.prototype.layoutDiagram=!1,mxEditor.prototype.swimlaneSpacing=0,mxEditor.prototype.maintainSwimlanes=!1,mxEditor.prototype.layoutSwimlanes=!1,mxEditor.prototype.cycleAttributeValues=null,mxEditor.prototype.cycleAttributeIndex=0,mxEditor.prototype.cycleAttributeName="fillColor",mxEditor.prototype.tasks=null,mxEditor.prototype.tasksWindowImage=null,mxEditor.prototype.tasksTop=20,mxEditor.prototype.help=null,mxEditor.prototype.helpWindowImage=null,mxEditor.prototype.urlHelp=null,mxEditor.prototype.helpWidth=300,mxEditor.prototype.helpHeight=260,mxEditor.prototype.propertiesWidth=240,mxEditor.prototype.propertiesHeight=null,mxEditor.prototype.movePropertiesDialog=!1,mxEditor.prototype.validating=!1,mxEditor.prototype.modified=!1,mxEditor.prototype.isModified=function(){return this.modified},mxEditor.prototype.setModified=function(e){this.modified=e},mxEditor.prototype.addActions=function(){this.addAction("save",function(e){e.save()}),this.addAction("print",function(e){new mxPrintPreview(e.graph,1).open()}),this.addAction("show",function(e){mxUtils.show(e.graph,null,10,10)}),this.addAction("exportImage",function(e){var n=e.getUrlImage();if(null==n||mxClient.IS_LOCAL)e.execute("show");else{var t=mxUtils.getViewXml(e.graph,1);t=mxUtils.getXml(t,"\n");mxUtils.submit(n,e.postParameterName+"="+encodeURIComponent(t),document,"_blank")}}),this.addAction("refresh",function(e){e.graph.refresh()}),this.addAction("cut",function(e){e.graph.isEnabled()&&mxClipboard.cut(e.graph)}),this.addAction("copy",function(e){e.graph.isEnabled()&&mxClipboard.copy(e.graph)}),this.addAction("paste",function(e){e.graph.isEnabled()&&mxClipboard.paste(e.graph)}),this.addAction("delete",function(e){e.graph.isEnabled()&&e.graph.removeCells()}),this.addAction("group",function(e){e.graph.isEnabled()&&e.graph.setSelectionCell(e.groupCells())}),this.addAction("ungroup",function(e){e.graph.isEnabled()&&e.graph.setSelectionCells(e.graph.ungroupCells())}),this.addAction("removeFromParent",function(e){e.graph.isEnabled()&&e.graph.removeCellsFromParent()}),this.addAction("undo",function(e){e.graph.isEnabled()&&e.undo()}),this.addAction("redo",function(e){e.graph.isEnabled()&&e.redo()}),this.addAction("zoomIn",function(e){e.graph.zoomIn()}),this.addAction("zoomOut",function(e){e.graph.zoomOut()}),this.addAction("actualSize",function(e){e.graph.zoomActual()}),this.addAction("fit",function(e){e.graph.fit()}),this.addAction("showProperties",function(e,n){e.showProperties(n)}),this.addAction("selectAll",function(e){e.graph.isEnabled()&&e.graph.selectAll()}),this.addAction("selectNone",function(e){e.graph.isEnabled()&&e.graph.clearSelection()}),this.addAction("selectVertices",function(e){e.graph.isEnabled()&&e.graph.selectVertices()}),this.addAction("selectEdges",function(e){e.graph.isEnabled()&&e.graph.selectEdges()}),this.addAction("edit",function(e,n){e.graph.isEnabled()&&e.graph.isCellEditable(n)&&e.graph.startEditingAtCell(n)}),this.addAction("toBack",function(e,n){e.graph.isEnabled()&&e.graph.orderCells(!0)}),this.addAction("toFront",function(e,n){e.graph.isEnabled()&&e.graph.orderCells(!1)}),this.addAction("enterGroup",function(e,n){e.graph.enterGroup(n)}),this.addAction("exitGroup",function(e){e.graph.exitGroup()}),this.addAction("home",function(e){e.graph.home()}),this.addAction("selectPrevious",function(e){e.graph.isEnabled()&&e.graph.selectPreviousCell()}),this.addAction("selectNext",function(e){e.graph.isEnabled()&&e.graph.selectNextCell()}),this.addAction("selectParent",function(e){e.graph.isEnabled()&&e.graph.selectParentCell()}),this.addAction("selectChild",function(e){e.graph.isEnabled()&&e.graph.selectChildCell()}),this.addAction("collapse",function(e){e.graph.isEnabled()&&e.graph.foldCells(!0)}),this.addAction("collapseAll",function(e){if(e.graph.isEnabled()){var n=e.graph.getChildVertices();e.graph.foldCells(!0,!1,n)}}),this.addAction("expand",function(e){e.graph.isEnabled()&&e.graph.foldCells(!1)}),this.addAction("expandAll",function(e){if(e.graph.isEnabled()){var n=e.graph.getChildVertices();e.graph.foldCells(!1,!1,n)}}),this.addAction("bold",function(e){e.graph.isEnabled()&&e.graph.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,mxConstants.FONT_BOLD)}),this.addAction("italic",function(e){e.graph.isEnabled()&&e.graph.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,mxConstants.FONT_ITALIC)}),this.addAction("underline",function(e){e.graph.isEnabled()&&e.graph.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,mxConstants.FONT_UNDERLINE)}),this.addAction("shadow",function(e){e.graph.isEnabled()&&e.graph.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,mxConstants.FONT_SHADOW)}),this.addAction("alignCellsLeft",function(e){e.graph.isEnabled()&&e.graph.alignCells(mxConstants.ALIGN_LEFT)}),this.addAction("alignCellsCenter",function(e){e.graph.isEnabled()&&e.graph.alignCells(mxConstants.ALIGN_CENTER)}),this.addAction("alignCellsRight",function(e){e.graph.isEnabled()&&e.graph.alignCells(mxConstants.ALIGN_RIGHT)}),this.addAction("alignCellsTop",function(e){e.graph.isEnabled()&&e.graph.alignCells(mxConstants.ALIGN_TOP)}),this.addAction("alignCellsMiddle",function(e){e.graph.isEnabled()&&e.graph.alignCells(mxConstants.ALIGN_MIDDLE)}),this.addAction("alignCellsBottom",function(e){e.graph.isEnabled()&&e.graph.alignCells(mxConstants.ALIGN_BOTTOM)}),this.addAction("alignFontLeft",function(e){e.graph.setCellStyles(mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT)}),this.addAction("alignFontCenter",function(e){e.graph.isEnabled()&&e.graph.setCellStyles(mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER)}),this.addAction("alignFontRight",function(e){e.graph.isEnabled()&&e.graph.setCellStyles(mxConstants.STYLE_ALIGN,mxConstants.ALIGN_RIGHT)}),this.addAction("alignFontTop",function(e){e.graph.isEnabled()&&e.graph.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_TOP)}),this.addAction("alignFontMiddle",function(e){e.graph.isEnabled()&&e.graph.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE)}),this.addAction("alignFontBottom",function(e){e.graph.isEnabled()&&e.graph.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_BOTTOM)}),this.addAction("zoom",function(e){var n=100*e.graph.getView().scale;n=parseFloat(mxUtils.prompt(mxResources.get(e.askZoomResource)||e.askZoomResource,n))/100;isNaN(n)||e.graph.getView().setScale(n)}),this.addAction("toggleTasks",function(e){null!=e.tasks?e.tasks.setVisible(!e.tasks.isVisible()):e.showTasks()}),this.addAction("toggleHelp",function(e){null!=e.help?e.help.setVisible(!e.help.isVisible()):e.showHelp()}),this.addAction("toggleOutline",function(e){null==e.outline?e.showOutline():e.outline.setVisible(!e.outline.isVisible())}),this.addAction("toggleConsole",function(e){mxLog.setVisible(!mxLog.isVisible())})},mxEditor.prototype.createSession=function(){var e=mxUtils.bind(this,function(e){this.fireEvent(new mxEventObject(mxEvent.SESSION,"session",e))});return this.connect(this.urlInit,this.urlPoll,this.urlNotify,e)},mxEditor.prototype.configure=function(e){null!=e&&(new mxCodec(e.ownerDocument).decode(e,this),this.resetHistory())},mxEditor.prototype.resetFirstTime=function(){document.cookie="mxgraph=seen; expires=Fri, 27 Jul 2001 02:47:11 UTC; path=/"},mxEditor.prototype.resetHistory=function(){this.lastSnapshot=(new Date).getTime(),this.undoManager.clear(),this.ignoredChanges=0,this.setModified(!1)},mxEditor.prototype.addAction=function(e,n){this.actions[e]=n},mxEditor.prototype.execute=function(n,e,t){var a=this.actions[n];if(null!=a)try{var i=arguments;i[0]=this,a.apply(this,i)}catch(e){throw mxUtils.error("Cannot execute "+n+": "+e.message,280,!0),e}else mxUtils.error("Cannot find action "+n,280,!0)},mxEditor.prototype.addTemplate=function(e,n){this.templates[e]=n},mxEditor.prototype.getTemplate=function(e){return this.templates[e]},mxEditor.prototype.createGraph=function(){var e=new mxGraph(null,null,this.graphRenderHint);return e.setTooltips(!0),e.setPanning(!0),this.installDblClickHandler(e),this.installUndoHandler(e),this.installDrillHandler(e),this.installChangeHandler(e),this.installInsertHandler(e),e.panningHandler.factoryMethod=mxUtils.bind(this,function(e,n,t){return this.createPopupMenu(e,n,t)}),e.connectionHandler.factoryMethod=mxUtils.bind(this,function(e,n){return this.createEdge(e,n)}),this.createSwimlaneManager(e),this.createLayoutManager(e),e},mxEditor.prototype.createSwimlaneManager=function(e){return(e=new mxSwimlaneManager(e,!1)).isHorizontal=mxUtils.bind(this,function(){return this.horizontalFlow}),e.isEnabled=mxUtils.bind(this,function(){return this.maintainSwimlanes}),e},mxEditor.prototype.createLayoutManager=function(a){var e=new mxLayoutManager(a),i=this;return e.getLayout=function(e){var n=null,t=i.graph.getModel();return null!=t.getParent(e)&&(i.layoutSwimlanes&&a.isSwimlane(e)?(null==i.swimlaneLayout&&(i.swimlaneLayout=i.createSwimlaneLayout()),n=i.swimlaneLayout):i.layoutDiagram&&(a.isValidRoot(e)||null==t.getParent(t.getParent(e)))&&(null==i.diagramLayout&&(i.diagramLayout=i.createDiagramLayout()),n=i.diagramLayout)),n},e},mxEditor.prototype.setGraphContainer=function(e){null==this.graph.container&&(this.graph.init(e),this.rubberband=new mxRubberband(this.graph),this.disableContextMenu&&mxEvent.disableContextMenu(e),mxClient.IS_QUIRKS&&new mxDivResizer(e))},mxEditor.prototype.installDblClickHandler=function(a){a.addListener(mxEvent.DOUBLE_CLICK,mxUtils.bind(this,function(e,n){var t=n.getProperty("cell");null!=t&&a.isEnabled()&&null!=this.dblClickAction&&(this.execute(this.dblClickAction,t),n.consume())}))},mxEditor.prototype.installUndoHandler=function(a){var e=mxUtils.bind(this,function(e,n){var t=n.getProperty("edit");this.undoManager.undoableEditHappened(t)});a.getModel().addListener(mxEvent.UNDO,e),a.getView().addListener(mxEvent.UNDO,e),e=function(e,n){var t=n.getProperty("edit").changes;a.setSelectionCells(a.getSelectionCellsForChanges(t))},this.undoManager.addListener(mxEvent.UNDO,e),this.undoManager.addListener(mxEvent.REDO,e)},mxEditor.prototype.installDrillHandler=function(e){var n=mxUtils.bind(this,function(e){this.fireEvent(new mxEventObject(mxEvent.ROOT))});e.getView().addListener(mxEvent.DOWN,n),e.getView().addListener(mxEvent.UP,n)},mxEditor.prototype.installChangeHandler=function(s){var e=mxUtils.bind(this,function(e,n){this.setModified(!0),1==this.validating&&s.validateGraph();for(var t=n.getProperty("edit").changes,a=0;a<t.length;a++){var i=t[a];if(i instanceof mxRootChange||i instanceof mxValueChange&&i.cell==this.graph.model.root||i instanceof mxCellAttributeChange&&i.cell==this.graph.model.root){this.fireEvent(new mxEventObject(mxEvent.ROOT));break}}});s.getModel().addListener(mxEvent.CHANGE,e)},mxEditor.prototype.installInsertHandler=function(e){var t=this;e.addMouseListener({mouseDown:function(e,n){null==t.insertFunction||n.isPopupTrigger()||!t.forcedInserting&&null!=n.getState()||(t.graph.clearSelection(),t.insertFunction(n.getEvent(),n.getCell()),this.isActive=!0,n.consume())},mouseMove:function(e,n){this.isActive&&n.consume()},mouseUp:function(e,n){this.isActive&&(this.isActive=!1,n.consume())}})},mxEditor.prototype.createDiagramLayout=function(){var e=this.graph.gridSize,n=new mxStackLayout(this.graph,!this.horizontalFlow,this.swimlaneSpacing,2*e,2*e);return n.isVertexIgnored=function(e){return!n.graph.isSwimlane(e)},n},mxEditor.prototype.createSwimlaneLayout=function(){return new mxCompactTreeLayout(this.graph,this.horizontalFlow)},mxEditor.prototype.createToolbar=function(){return new mxDefaultToolbar(null,this)},mxEditor.prototype.setToolbarContainer=function(e){this.toolbar.init(e),mxClient.IS_QUIRKS&&new mxDivResizer(e)},mxEditor.prototype.setStatusContainer=function(e){null==this.status&&(this.status=e,this.addListener(mxEvent.SAVE,mxUtils.bind(this,function(){var e=(new Date).toLocaleString();this.setStatus((mxResources.get(this.lastSavedResource)||this.lastSavedResource)+": "+e)})),this.addListener(mxEvent.OPEN,mxUtils.bind(this,function(){this.setStatus((mxResources.get(this.currentFileResource)||this.currentFileResource)+": "+this.filename)})),mxClient.IS_QUIRKS&&new mxDivResizer(e))},mxEditor.prototype.setStatus=function(e){null!=this.status&&null!=e&&(this.status.innerHTML=e)},mxEditor.prototype.setTitleContainer=function(n){this.addListener(mxEvent.ROOT,mxUtils.bind(this,function(e){n.innerHTML=this.getTitle()})),mxClient.IS_QUIRKS&&new mxDivResizer(n)},mxEditor.prototype.treeLayout=function(e,n){null!=e&&new mxCompactTreeLayout(this.graph,n).execute(e)},mxEditor.prototype.getTitle=function(){for(var e="",n=this.graph,t=n.getCurrentRoot();null!=t&&null!=n.getModel().getParent(n.getModel().getParent(t));)n.isValidRoot(t)&&(e=" > "+n.convertValueToString(t)+e),t=n.getModel().getParent(t);return this.getRootTitle()+e},mxEditor.prototype.getRootTitle=function(){var e=this.graph.getModel().getRoot();return this.graph.convertValueToString(e)},mxEditor.prototype.undo=function(){this.undoManager.undo()},mxEditor.prototype.redo=function(){this.undoManager.redo()},mxEditor.prototype.groupCells=function(){var e=null!=this.groupBorderSize?this.groupBorderSize:this.graph.gridSize;return this.graph.groupCells(this.createGroup(),e)},mxEditor.prototype.createGroup=function(){return this.graph.getModel().cloneCell(this.defaultGroup)},mxEditor.prototype.open=function(e){if(null!=e){var n=mxUtils.load(e).getXml();this.readGraphModel(n.documentElement),this.filename=e,this.fireEvent(new mxEventObject(mxEvent.OPEN,"filename",e))}},mxEditor.prototype.readGraphModel=function(e){new mxCodec(e.ownerDocument).decode(e,this.graph.getModel()),this.resetHistory()},mxEditor.prototype.save=function(e,n){if(null!=(e=e||this.getUrlPost())&&0<e.length){var t=this.writeGraphModel(n);this.postDiagram(e,t),this.setModified(!1)}this.fireEvent(new mxEventObject(mxEvent.SAVE,"url",e))},mxEditor.prototype.postDiagram=function(n,t){this.escapePostData&&(t=encodeURIComponent(t)),mxUtils.post(n,this.postParameterName+"="+t,mxUtils.bind(this,function(e){this.fireEvent(new mxEventObject(mxEvent.POST,"request",e,"url",n,"data",t))}))},mxEditor.prototype.writeGraphModel=function(e){e=null!=e?e:this.linefeed;var n=(new mxCodec).encode(this.graph.getModel());return mxUtils.getXml(n,e)},mxEditor.prototype.getUrlPost=function(){return this.urlPost},mxEditor.prototype.getUrlImage=function(){return this.urlImage},mxEditor.prototype.connect=function(e,n,t,a){var i=null;return mxClient.IS_LOCAL||((i=new mxSession(this.graph.getModel(),e,n,t)).addListener(mxEvent.RECEIVE,mxUtils.bind(this,function(e,n){null!=n.getProperty("node").getAttribute("namespace")&&this.resetHistory()})),i.addListener(mxEvent.DISCONNECT,a),i.addListener(mxEvent.CONNECT,a),i.addListener(mxEvent.NOTIFY,a),i.addListener(mxEvent.GET,a),i.start()),i},mxEditor.prototype.swapStyles=function(e,n){var t=this.graph.getStylesheet().styles[n];this.graph.getView().getStylesheet().putCellStyle(n,this.graph.getStylesheet().styles[e]),this.graph.getStylesheet().putCellStyle(e,t),this.graph.refresh()},mxEditor.prototype.showProperties=function(e){if(null==(e=e||this.graph.getSelectionCell())&&(null==(e=this.graph.getCurrentRoot())&&(e=this.graph.getModel().getRoot())),null!=e){this.graph.stopEditing(!0);var n=(t=mxUtils.getOffset(this.graph.container)).x+10,t=t.y;if(null==this.properties||this.movePropertiesDialog){var a=this.graph.getCellBounds(e);null!=a&&(n+=a.x+Math.min(200,a.width),t+=a.y)}else n=this.properties.getX(),t=this.properties.getY();this.hideProperties(),null!=(e=this.createProperties(e))&&(this.properties=new mxWindow(mxResources.get(this.propertiesResource)||this.propertiesResource,e,n,t,this.propertiesWidth,this.propertiesHeight,!1),this.properties.setVisible(!0))}},mxEditor.prototype.isPropertiesVisible=function(){return null!=this.properties},mxEditor.prototype.createProperties=function(t){var a=this.graph.getModel(),e=a.getValue(t);if(mxUtils.isNode(e)){var n=new mxForm("properties");n.addText("ID",t.getId()).setAttribute("readonly","true");var i=null,s=null,o=null,r=null,l=null;a.isVertex(t)&&(null!=(i=a.getGeometry(t))&&(s=n.addText("top",i.y),o=n.addText("left",i.x),r=n.addText("width",i.width),l=n.addText("height",i.height)));var d=a.getStyle(t),c=n.addText("Style",d||""),m=e.attributes,u=[];for(e=0;e<m.length;e++)u[e]=n.addTextarea(m[e].nodeName,m[e].nodeValue,"label"==m[e].nodeName?4:2);return e=mxUtils.bind(this,function(){this.hideProperties(),a.beginUpdate();try{null!=i&&((i=i.clone()).x=parseFloat(o.value),i.y=parseFloat(s.value),i.width=parseFloat(r.value),i.height=parseFloat(l.value),a.setGeometry(t,i)),0<c.value.length?a.setStyle(t,c.value):a.setStyle(t,null);for(var e=0;e<m.length;e++){var n=new mxCellAttributeChange(t,m[e].nodeName,u[e].value);a.execute(n)}this.graph.isAutoSizeCell(t)&&this.graph.updateCellSize(t)}finally{a.endUpdate()}}),d=mxUtils.bind(this,function(){this.hideProperties()}),n.addButtons(e,d),n.table}return null},mxEditor.prototype.hideProperties=function(){null!=this.properties&&(this.properties.destroy(),this.properties=null)},mxEditor.prototype.showTasks=function(){if(null==this.tasks){var n=document.createElement("div");n.style.padding="4px",n.style.paddingLeft="20px";var e=document.body.clientWidth;(e=new mxWindow(mxResources.get(this.tasksResource)||this.tasksResource,n,e-220,this.tasksTop,200)).setClosable(!0),e.destroyOnClose=!1;var t=mxUtils.bind(this,function(e){mxEvent.release(n),n.innerHTML="",this.createTasks(n)});this.graph.getModel().addListener(mxEvent.CHANGE,t),this.graph.getSelectionModel().addListener(mxEvent.CHANGE,t),this.graph.addListener(mxEvent.ROOT,t),null!=this.tasksWindowImage&&e.setImage(this.tasksWindowImage),this.tasks=e,this.createTasks(n)}this.tasks.setVisible(!0)},mxEditor.prototype.refreshTasks=function(e){null!=this.tasks&&(e=this.tasks.content,mxEvent.release(e),e.innerHTML="",this.createTasks(e))},mxEditor.prototype.createTasks=function(e){},mxEditor.prototype.showHelp=function(e){if(null==this.help){var n=document.createElement("iframe");n.setAttribute("src",mxResources.get("urlHelp")||this.urlHelp),n.setAttribute("height","100%"),n.setAttribute("width","100%"),n.setAttribute("frameBorder","0"),n.style.backgroundColor="white",e=document.body.clientWidth;var t=document.body.clientHeight||document.documentElement.clientHeight,a=new mxWindow(mxResources.get(this.helpResource)||this.helpResource,n,(e-this.helpWidth)/2,(t-this.helpHeight)/3,this.helpWidth,this.helpHeight);a.setMaximizable(!0),a.setClosable(!0),a.destroyOnClose=!1,a.setResizable(!0),null!=this.helpWindowImage&&a.setImage(this.helpWindowImage),mxClient.IS_NS&&(e=function(e){n.setAttribute("height",a.div.offsetHeight-26+"px")},a.addListener(mxEvent.RESIZE_END,e),a.addListener(mxEvent.MAXIMIZE,e),a.addListener(mxEvent.NORMALIZE,e),a.addListener(mxEvent.SHOW,e)),this.help=a}this.help.setVisible(!0)},mxEditor.prototype.showOutline=function(){if(null==this.outline){var e=document.createElement("div");e.style.overflow="hidden",e.style.width="100%",e.style.height="100%",e.style.background="white",e.style.cursor="move";var n=new mxWindow(mxResources.get(this.outlineResource)||this.outlineResource,e,600,480,200,200,!1),t=new mxOutline(this.graph,e);n.setClosable(!0),n.setResizable(!0),n.destroyOnClose=!1,n.addListener(mxEvent.RESIZE_END,function(){t.update()}),this.outline=n,this.outline.outline=t}this.outline.setVisible(!0),this.outline.outline.update(!0)},mxEditor.prototype.setMode=function(e){"select"==e?(this.graph.panningHandler.useLeftButtonForPanning=!1,this.graph.setConnectable(!1)):"connect"==e?(this.graph.panningHandler.useLeftButtonForPanning=!1,this.graph.setConnectable(!0)):"pan"==e&&(this.graph.panningHandler.useLeftButtonForPanning=!0,this.graph.setConnectable(!1))},mxEditor.prototype.createPopupMenu=function(e,n,t){this.popupHandler.createMenu(this,e,n,t)},mxEditor.prototype.createEdge=function(e,n){var t=null;if(null!=this.defaultEdge)t=this.graph.getModel().cloneCell(this.defaultEdge);else{(t=new mxCell("")).setEdge(!0);var a=new mxGeometry;a.relative=!0,t.setGeometry(a)}return null!=(a=this.getEdgeStyle())&&t.setStyle(a),t},mxEditor.prototype.getEdgeStyle=function(){return this.defaultEdgeStyle},mxEditor.prototype.consumeCycleAttribute=function(e){return null!=this.cycleAttributeValues&&0<this.cycleAttributeValues.length&&this.graph.isSwimlane(e)?this.cycleAttributeValues[this.cycleAttributeIndex++%this.cycleAttributeValues.length]:null},mxEditor.prototype.cycleAttribute=function(e){if(null!=this.cycleAttributeName){var n=this.consumeCycleAttribute(e);null!=n&&e.setStyle(e.getStyle()+";"+this.cycleAttributeName+"="+n)}},mxEditor.prototype.addVertex=function(e,n,t,a){for(var i=this.graph.getModel();null!=e&&!this.graph.isValidDropTarget(e);)e=i.getParent(e);e=null!=e?e:this.graph.getSwimlaneAt(t,a);var s=this.graph.getView().scale,o=i.getGeometry(n),r=i.getGeometry(e);if(this.graph.isSwimlane(n)&&!this.graph.swimlaneNesting)e=null;else{if(null==e&&this.swimlaneRequired)return null;if(null!=e&&null!=r){var l=this.graph.getView().getState(e);if(null!=l){if(t-=l.origin.x*s,a-=l.origin.y*s,this.graph.isConstrainedMoving){r=o.width;var d=o.height,c=l.x+l.width;c<t+r&&(t-=t+r-c),(c=l.y+l.height)<a+d&&(a-=a+d-c)}}else null!=r&&(t-=r.x*s,a-=r.y*s)}}(o=o.clone()).x=this.graph.snap(t/s-this.graph.getView().translate.x-this.graph.gridSize/2),o.y=this.graph.snap(a/s-this.graph.getView().translate.y-this.graph.gridSize/2),n.setGeometry(o),null==e&&(e=this.graph.getDefaultParent()),this.cycleAttribute(n),this.fireEvent(new mxEventObject(mxEvent.BEFORE_ADD_VERTEX,"vertex",n,"parent",e)),i.beginUpdate();try{null!=(n=this.graph.addCell(n,e))&&(this.graph.constrainChild(n),this.fireEvent(new mxEventObject(mxEvent.ADD_VERTEX,"vertex",n)))}finally{i.endUpdate()}return null!=n&&(this.graph.setSelectionCell(n),this.graph.scrollCellToVisible(n),this.fireEvent(new mxEventObject(mxEvent.AFTER_ADD_VERTEX,"vertex",n))),n},mxEditor.prototype.destroy=function(){this.destroyed||(this.destroyed=!0,null!=this.tasks&&this.tasks.destroy(),null!=this.outline&&this.outline.destroy(),null!=this.properties&&this.properties.destroy(),null!=this.keyHandler&&this.keyHandler.destroy(),null!=this.rubberband&&this.rubberband.destroy(),null!=this.toolbar&&this.toolbar.destroy(),null!=this.graph&&this.graph.destroy(),this.templates=this.status=null)};var mxCodecRegistry={codecs:[],aliases:[],register:function(e){if(null!=e){var n=e.getName();mxCodecRegistry.codecs[n]=e;var t=mxUtils.getFunctionName(e.template.constructor);t!=n&&mxCodecRegistry.addAlias(t,n)}return e},addAlias:function(e,n){mxCodecRegistry.aliases[e]=n},getCodec:function(e){var n=null;if(null!=e){n=mxUtils.getFunctionName(e);var t=mxCodecRegistry.aliases[n];if(null!=t&&(n=t),null==(n=mxCodecRegistry.codecs[n]))try{n=new mxObjectCodec(new e),mxCodecRegistry.register(n)}catch(e){}}return n}};function mxCodec(e){this.document=e||mxUtils.createXmlDocument(),this.objects=[]}function mxObjectCodec(e,n,t,a){for(var i in this.template=e,this.exclude=null!=n?n:[],this.idrefs=null!=t?t:[],this.mapping=null!=a?a:[],this.reverse={},this.mapping)this.reverse[this.mapping[i]]=i}mxCodec.prototype.document=null,mxCodec.prototype.objects=null,mxCodec.prototype.encodeDefaults=!1,mxCodec.prototype.putObject=function(e,n){return this.objects[e]=n},mxCodec.prototype.getObject=function(e){var n=null;return null!=e&&(null==(n=this.objects[e])&&(null==(n=this.lookup(e))&&(null!=(e=this.getElementById(e))&&(n=this.decode(e))))),n},mxCodec.prototype.lookup=function(e){return null},mxCodec.prototype.getElementById=function(e,n){return mxUtils.findNodeByAttribute(this.document.documentElement,null!=n?n:"id",e)},mxCodec.prototype.getId=function(e){var n=null;return null!=e&&(null==(n=this.reference(e))&&e instanceof mxCell&&(null==(n=e.getId())&&(0==(n=mxCellPath.create(e)).length&&(n="root")))),n},mxCodec.prototype.reference=function(e){return null},mxCodec.prototype.encode=function(e){var n=null;if(null!=e&&null!=e.constructor){var t=mxCodecRegistry.getCodec(e.constructor);null!=t?n=t.encode(this,e):mxUtils.isNode(e)?n=mxClient.IS_IE?e.cloneNode(!0):this.document.importNode(e,!0):mxLog.warn("mxCodec.encode: No codec for "+mxUtils.getFunctionName(e.constructor))}return n},mxCodec.prototype.decode=function(a,b){var c=null;if(null!=a&&a.nodeType==mxConstants.NODETYPE_ELEMENT){var d=null;try{d=eval(a.nodeName)}catch(e){}try{var f=mxCodecRegistry.getCodec(d);null!=f?c=f.decode(this,a,b):(c=a.cloneNode(!0),c.removeAttribute("as"))}catch(e){mxLog.debug("Cannot decode "+a.nodeName+": "+e.message)}}return c},mxCodec.prototype.encodeCell=function(e,n,t){if(n.appendChild(this.encode(e)),null==t||t){t=e.getChildCount();for(var a=0;a<t;a++)this.encodeCell(e.getChildAt(a),n)}},mxCodec.prototype.isCellCodec=function(e){return null!=e&&"function"==typeof e.isCellCodec&&e.isCellCodec()},mxCodec.prototype.decodeCell=function(e,n){n=null==n||n;var t=null;if(null!=e&&e.nodeType==mxConstants.NODETYPE_ELEMENT){if(t=mxCodecRegistry.getCodec(e.nodeName),!this.isCellCodec(t))for(var a=e.firstChild;null!=a&&!this.isCellCodec(t);)t=mxCodecRegistry.getCodec(a.nodeName),a=a.nextSibling;this.isCellCodec(t)||(t=mxCodecRegistry.getCodec(mxCell)),t=t.decode(this,e),n&&this.insertIntoGraph(t)}return t},mxCodec.prototype.insertIntoGraph=function(e){var n=e.parent,t=e.getTerminal(!0),a=e.getTerminal(!1);e.setTerminal(null,!1),e.setTerminal(null,!0),(e.parent=null)!=n&&n.insert(e),null!=t&&t.insertEdge(e,!0),null!=a&&a.insertEdge(e,!1)},mxCodec.prototype.setAttribute=function(e,n,t){null!=n&&null!=t&&e.setAttribute(n,t)},mxObjectCodec.prototype.template=null,mxObjectCodec.prototype.exclude=null,mxObjectCodec.prototype.idrefs=null,mxObjectCodec.prototype.mapping=null,mxObjectCodec.prototype.reverse=null,mxObjectCodec.prototype.getName=function(){return mxUtils.getFunctionName(this.template.constructor)},mxObjectCodec.prototype.cloneTemplate=function(){return new this.template.constructor},mxObjectCodec.prototype.getFieldName=function(e){if(null!=e){var n=this.reverse[e];null!=n&&(e=n)}return e},mxObjectCodec.prototype.getAttributeName=function(e){if(null!=e){var n=this.mapping[e];null!=n&&(e=n)}return e},mxObjectCodec.prototype.isExcluded=function(e,n,t,a){return n==mxObjectIdentity.FIELD_NAME||0<=mxUtils.indexOf(this.exclude,n)},mxObjectCodec.prototype.isReference=function(e,n,t,a){return 0<=mxUtils.indexOf(this.idrefs,n)},mxObjectCodec.prototype.encode=function(e,n){var t=e.document.createElement(this.getName());return n=this.beforeEncode(e,n,t),this.encodeObject(e,n,t),this.afterEncode(e,n,t)},mxObjectCodec.prototype.encodeObject=function(e,n,t){for(var a in e.setAttribute(t,"id",e.getId(n)),n){var i=a,s=n[i];null!=s&&!this.isExcluded(n,i,s,!0)&&(mxUtils.isNumeric(i)&&(i=null),this.encodeValue(e,n,i,s,t))}},mxObjectCodec.prototype.encodeValue=function(e,n,t,a,i){if(null!=a){if(this.isReference(n,t,a,!0)){var s=e.getId(a);if(null==s)return void mxLog.warn("mxObjectCodec.encode: No ID for "+this.getName()+"."+t+"="+a);a=s}s=this.template[t],(null==t||e.encodeDefaults||s!=a)&&(t=this.getAttributeName(t),this.writeAttribute(e,n,t,a,i))}},mxObjectCodec.prototype.writeAttribute=function(e,n,t,a,i){"object"!=typeof a?this.writePrimitiveAttribute(e,n,t,a,i):this.writeComplexAttribute(e,n,t,a,i)},mxObjectCodec.prototype.writePrimitiveAttribute=function(e,n,t,a,i){a=this.convertValueToXml(a),null==t?(n=e.document.createElement("add"),"function"==typeof a?n.appendChild(e.document.createTextNode(a)):e.setAttribute(n,"value",a),i.appendChild(n)):"function"!=typeof a&&e.setAttribute(i,t,a)},mxObjectCodec.prototype.writeComplexAttribute=function(e,n,t,a,i){null!=(e=e.encode(a))?(null!=t&&e.setAttribute("as",t),i.appendChild(e)):mxLog.warn("mxObjectCodec.encode: No node for "+this.getName()+"."+t+": "+a)},mxObjectCodec.prototype.convertValueToXml=function(e){return void 0!==e.length||1!=e&&0!=e||(e=1==e?"1":"0"),e},mxObjectCodec.prototype.convertValueFromXml=function(e){return mxUtils.isNumeric(e)&&(e=parseFloat(e)),e},mxObjectCodec.prototype.beforeEncode=function(e,n,t){return n},mxObjectCodec.prototype.afterEncode=function(e,n,t){return t},mxObjectCodec.prototype.decode=function(e,n,t){var a=n.getAttribute("id"),i=e.objects[a];return null==i&&(i=t||this.cloneTemplate(),null!=a&&e.putObject(a,i)),n=this.beforeDecode(e,n,i),this.decodeNode(e,n,i),this.afterDecode(e,n,i)},mxObjectCodec.prototype.decodeNode=function(e,n,t){null!=n&&(this.decodeAttributes(e,n,t),this.decodeChildren(e,n,t))},mxObjectCodec.prototype.decodeAttributes=function(e,n,t){if(null!=(n=n.attributes))for(var a=0;a<n.length;a++)this.decodeAttribute(e,n[a],t)},mxObjectCodec.prototype.decodeAttribute=function(e,n,t){var a=n.nodeName;if("as"!=a&&"id"!=a){n="value"==a?n.nodeValue:this.convertValueFromXml(n.nodeValue);var i=this.getFieldName(a);if(this.isReference(t,i,n,!1)){if(null==(e=e.getObject(n)))return void mxLog.warn("mxObjectCodec.decode: No object for "+this.getName()+"."+a+"="+n);n=e}this.isExcluded(t,a,n,!1)||(t[a]=n)}},mxObjectCodec.prototype.decodeChildren=function(e,n,t){for(n=n.firstChild;null!=n;){var a=n.nextSibling;n.nodeType==mxConstants.NODETYPE_ELEMENT&&!this.processInclude(e,n,t)&&this.decodeChild(e,n,t),n=a}},mxObjectCodec.prototype.decodeChild=function(e,n,t){var a=this.getFieldName(n.getAttribute("as"));if(null==a||!this.isExcluded(t,a,n,!1)){var i=this.getFieldTemplate(t,a,n),s=null;"add"==n.nodeName?null==(s=n.getAttribute("value"))&&(s=mxUtils.eval(mxUtils.getTextContent(n))):s=e.decode(n,i),this.addObjectValue(t,a,s,i)}},mxObjectCodec.prototype.getFieldTemplate=function(e,n,t){return(e=e[n])instanceof Array&&0<e.length&&(e=null),e},mxObjectCodec.prototype.addObjectValue=function(e,n,t,a){null!=t&&t!=a&&(null!=n&&0<n.length?e[n]=t:e.push(t))},mxObjectCodec.prototype.processInclude=function(e,n,t){if("include"!=n.nodeName)return!1;if(null!=(n=n.getAttribute("name")))try{var a=mxUtils.load(n).getDocumentElement();null!=a&&e.decode(a,t)}catch(e){}return!0},mxObjectCodec.prototype.beforeDecode=function(e,n,t){return n},mxObjectCodec.prototype.afterDecode=function(e,n,t){return t},mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxCell,["children","edges","overlays","mxTransient"],["parent","source","target"]);return e.isCellCodec=function(){return!0},e.isExcluded=function(e,n,t,a){return mxObjectCodec.prototype.isExcluded.apply(this,arguments)||a&&"value"==n&&t.nodeType==mxConstants.NODETYPE_ELEMENT},e.afterEncode=function(e,n,t){if(null!=n.value&&n.value.nodeType==mxConstants.NODETYPE_ELEMENT){var a=t;(t=mxClient.IS_IE?n.value.cloneNode(!0):e.document.importNode(n.value,!0)).appendChild(a),e=a.getAttribute("id"),t.setAttribute("id",e),a.removeAttribute("id")}return t},e.beforeDecode=function(e,n,t){var a=n,i=this.getName();if(n.nodeName!=i?(null!=(a=n.getElementsByTagName(i)[0])&&a.parentNode==n?(mxUtils.removeWhitespace(a,!0),mxUtils.removeWhitespace(a,!1),a.parentNode.removeChild(a)):a=null,t.value=n.cloneNode(!0),null!=(n=t.value.getAttribute("id"))&&(t.setId(n),t.value.removeAttribute("id"))):t.setId(n.getAttribute("id")),null!=a)for(n=0;n<this.idrefs.length;n++){i=this.idrefs[n];var s=a.getAttribute(i);if(null!=s){a.removeAttribute(i);var o=e.objects[s]||e.lookup(s);null==o&&(null!=(s=e.getElementById(s))&&(o=(mxCodecRegistry.codecs[s.nodeName]||this).decode(e,s))),t[i]=o}}return a},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxGraphModel);return e.encodeObject=function(e,n,t){var a=e.document.createElement("root");e.encodeCell(n.getRoot(),a),t.appendChild(a)},e.decodeChild=function(e,n,t){"root"==n.nodeName?this.decodeRoot(e,n,t):mxObjectCodec.prototype.decodeChild.apply(this,arguments)},e.decodeRoot=function(e,n,t){var a=null;for(n=n.firstChild;null!=n;){var i=e.decodeCell(n);null!=i&&null==i.getParent()&&(a=i),n=n.nextSibling}null!=a&&t.setRoot(a)},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxRootChange,["model","previous","root"]);return e.afterEncode=function(e,n,t){return e.encodeCell(n.root,t),t},e.beforeDecode=function(e,n,t){if(null!=n.firstChild&&n.firstChild.nodeType==mxConstants.NODETYPE_ELEMENT){var a=(n=n.cloneNode(!0)).firstChild;for(t.root=e.decodeCell(a,!1),t=a.nextSibling,a.parentNode.removeChild(a),a=t;null!=a;)t=a.nextSibling,e.decodeCell(a),a.parentNode.removeChild(a),a=t}return n},e.afterDecode=function(e,n,t){return t.previous=t.root,t},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxChildChange,["model","child","previousIndex"],["parent","previous"]);return e.isReference=function(e,n,t,a){return!("child"!=n||null==e.previous&&a)||0<=mxUtils.indexOf(this.idrefs,n)},e.afterEncode=function(e,n,t){return this.isReference(n,"child",n.child,!0)?t.setAttribute("child",e.getId(n.child)):e.encodeCell(n.child,t),t},e.beforeDecode=function(e,n,t){if(null!=n.firstChild&&n.firstChild.nodeType==mxConstants.NODETYPE_ELEMENT){var a=(n=n.cloneNode(!0)).firstChild;for(t.child=e.decodeCell(a,!1),t=a.nextSibling,a.parentNode.removeChild(a),a=t;null!=a;){if(t=a.nextSibling,a.nodeType==mxConstants.NODETYPE_ELEMENT){var i=a.getAttribute("id");null==e.lookup(i)&&e.decodeCell(a)}a.parentNode.removeChild(a),a=t}}else a=n.getAttribute("child"),t.child=e.getObject(a);return n},e.afterDecode=function(e,n,t){return t.child.parent=t.previous,t.previous=t.parent,t.previousIndex=t.index,t},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxTerminalChange,["model","previous"],["cell","terminal"]);return e.afterDecode=function(e,n,t){return t.previous=t.terminal,t},e}());var mxGenericChangeCodec=function(e,a){var n=new mxObjectCodec(e,["model","previous"],["cell"]);return n.afterDecode=function(e,n,t){return mxUtils.isNode(t.cell)&&(t.cell=e.decodeCell(t.cell,!1)),t.previous=t[a],t},n};mxCodecRegistry.register(mxGenericChangeCodec(new mxValueChange,"value")),mxCodecRegistry.register(mxGenericChangeCodec(new mxStyleChange,"style")),mxCodecRegistry.register(mxGenericChangeCodec(new mxGeometryChange,"geometry")),mxCodecRegistry.register(mxGenericChangeCodec(new mxCollapseChange,"collapsed")),mxCodecRegistry.register(mxGenericChangeCodec(new mxVisibleChange,"visible")),mxCodecRegistry.register(mxGenericChangeCodec(new mxCellAttributeChange,"value")),mxCodecRegistry.register(new mxObjectCodec(new mxGraph,"graphListeners eventListeners view container cellRenderer editor selection".split(" "))),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxGraphView);return e.encode=function(e,n){return this.encodeCell(e,n,n.graph.getModel().getRoot())},e.encodeCell=function(e,n,t){var a=n.graph.getModel(),i=n.getState(t),s=a.getParent(t);if(null==s||null!=i){var o=a.getChildCount(t),r=n.graph.getCellGeometry(t),l=null;if(s==a.getRoot()?l="layer":null==s?l="graph":a.isEdge(t)?l="edge":0<o&&null!=r?l="group":a.isVertex(t)&&(l="vertex"),null!=l){var d=e.document.createElement(l);if(null!=n.graph.getLabel(t)&&(d.setAttribute("label",n.graph.getLabel(t)),n.graph.isHtmlLabel(t)&&d.setAttribute("html",!0)),null==s){var c=n.getGraphBounds();null!=c&&(d.setAttribute("x",Math.round(c.x)),d.setAttribute("y",Math.round(c.y)),d.setAttribute("width",Math.round(c.width)),d.setAttribute("height",Math.round(c.height))),d.setAttribute("scale",n.scale)}else if(null!=i&&null!=r){for(c in i.style)"function"==typeof(s=i.style[c])&&"object"==typeof s&&(s=mxStyleRegistry.getName(s)),null!=s&&"function"!=typeof s&&"object"!=typeof s&&d.setAttribute(c,s);if(null!=(s=i.absolutePoints)&&0<s.length){for(r=Math.round(s[0].x)+","+Math.round(s[0].y),c=1;c<s.length;c++)r+=" "+Math.round(s[c].x)+","+Math.round(s[c].y);d.setAttribute("points",r)}else d.setAttribute("x",Math.round(i.x)),d.setAttribute("y",Math.round(i.y)),d.setAttribute("width",Math.round(i.width)),d.setAttribute("height",Math.round(i.height));null!=(c=i.absoluteOffset)&&(0!=c.x&&d.setAttribute("dx",Math.round(c.x)),0!=c.y&&d.setAttribute("dy",Math.round(c.y)))}for(c=0;c<o;c++)null!=(i=this.encodeCell(e,n,a.getChildAt(t,c)))&&d.appendChild(i)}}return d},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxStylesheet);return e.encode=function(e,n){var t,a=e.document.createElement(this.getName());for(t in n.styles){var i=n.styles[t],s=e.document.createElement("add");if(null!=t){for(var o in s.setAttribute("as",t),i){var r=this.getStringValue(o,i[o]);if(null!=r){var l=e.document.createElement("add");l.setAttribute("value",r),l.setAttribute("as",o),s.appendChild(l)}}0<s.childNodes.length&&a.appendChild(s)}}return a},e.getStringValue=function(e,n){var t=typeof n;return"function"==t?n=mxStyleRegistry.getName(style[j]):"object"==t&&(n=null),n},e.decode=function(e,n,t){t=t||new this.template.constructor;var a=n.getAttribute("id");for(null!=a&&(e.objects[a]=t),n=n.firstChild;null!=n;){if(!this.processInclude(e,n,t)&&"add"==n.nodeName&&null!=(a=n.getAttribute("as"))){var i=n.getAttribute("extend"),s=null!=i?mxUtils.clone(t.styles[i]):null;for(null==s&&(null!=i&&mxLog.warn("mxStylesheetCodec.decode: stylesheet "+i+" not found to extend"),s={}),i=n.firstChild;null!=i;){if(i.nodeType==mxConstants.NODETYPE_ELEMENT){var o=i.getAttribute("as");if("add"==i.nodeName){var r=mxUtils.getTextContent(i),l=null;null!=r&&0<r.length?l=mxUtils.eval(r):(l=i.getAttribute("value"),mxUtils.isNumeric(l)&&(l=parseFloat(l))),null!=l&&(s[o]=l)}else"remove"==i.nodeName&&delete s[o]}i=i.nextSibling}t.putCellStyle(a,s)}n=n.nextSibling}return t},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxDefaultKeyHandler);return e.encode=function(e,n){return null},e.decode=function(e,n,t){if(null!=t)for(n=n.firstChild;null!=n;){if(!this.processInclude(e,n,t)&&"add"==n.nodeName){var a=n.getAttribute("as"),i=n.getAttribute("action"),s=n.getAttribute("control");t.bindAction(a,i,s)}n=n.nextSibling}return t},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxDefaultToolbar);return e.encode=function(e,n){return null},e.decode=function(e,n,t){if(null!=t){var a=t.editor;for(n=n.firstChild;null!=n;){if(n.nodeType==mxConstants.NODETYPE_ELEMENT&&!this.processInclude(e,n,t))if("separator"==n.nodeName)t.addSeparator();else if("br"==n.nodeName)t.toolbar.addBreak();else if("hr"==n.nodeName)t.toolbar.addLine();else if("add"==n.nodeName){var i=n.getAttribute("as"),s=(i=mxResources.get(i)||i,n.getAttribute("icon")),o=n.getAttribute("pressedIcon"),r=n.getAttribute("action"),l=n.getAttribute("mode"),d=n.getAttribute("template"),c="0"!=n.getAttribute("toggle"),m=mxUtils.getTextContent(n),u=null;if(null!=r)u=t.addItem(i,s,r,o);else if(null!=l){var p=mxUtils.eval(m);u=t.addMode(i,s,l,o,p)}else if(null!=d||null!=m&&0<m.length)u=a.templates[d],d=n.getAttribute("style"),null!=u&&null!=d&&(u=u.clone()).setStyle(d),(d=null)!=m&&0<m.length&&(d=mxUtils.eval(m)),u=t.addPrototype(i,s,u,o,d,c);else if(0<(o=mxUtils.getChildNodes(n)).length)if(null==s)for(d=t.addActionCombo(i),i=0;i<o.length;i++)"separator"==(c=o[i]).nodeName?t.addOption(d,"---"):"add"==c.nodeName&&(s=c.getAttribute("as"),c=c.getAttribute("action"),t.addActionOption(d,s,c));else{var g=null,v=t.addPrototype(i,s,function(){if(null==(e=a.templates[g.value]))return mxLog.warn("Template "+e+" not found"),null;var e=e.clone(),n=g.options[g.selectedIndex].cellStyle;return null!=n&&e.setStyle(n),e},null,null,c);g=t.addCombo();for(mxEvent.addListener(g,"change",function(){t.toolbar.selectMode(v,function(e){return e=mxUtils.convertPoint(a.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e)),a.addVertex(null,p(),e.x,e.y)}),t.toolbar.noReset=!1}),i=0;i<o.length;i++)"separator"==(c=o[i]).nodeName?t.addOption(g,"---"):"add"==c.nodeName&&(s=c.getAttribute("as"),m=c.getAttribute("template"),t.addOption(g,s,m||d).cellStyle=c.getAttribute("style"))}null!=u&&(null!=(d=n.getAttribute("id"))&&0<d.length&&u.setAttribute("id",d))}n=n.nextSibling}}return t},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxDefaultPopupMenu);return e.encode=function(e,n){return null},e.decode=function(e,n,t){var a=n.getElementsByTagName("include")[0];return null!=a?this.processInclude(e,a,t):null!=t&&(t.config=n),t},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxEditor,"modified lastSnapshot ignoredChanges undoManager graphContainer toolbarContainer".split(" "));return e.afterDecode=function(e,n,t){return null!=(e=n.getAttribute("defaultEdge"))&&(n.removeAttribute("defaultEdge"),t.defaultEdge=t.templates[e]),null!=(e=n.getAttribute("defaultGroup"))&&(n.removeAttribute("defaultGroup"),t.defaultGroup=t.templates[e]),t},e.decodeChild=function(e,n,t){if("Array"==n.nodeName){if("templates"==n.getAttribute("as"))return void this.decodeTemplates(e,n,t)}else if("ui"==n.nodeName)return void this.decodeUi(e,n,t);mxObjectCodec.prototype.decodeChild.apply(this,arguments)},e.decodeUi=function(e,n,t){for(e=n.firstChild;null!=e;){if("add"==e.nodeName){n=e.getAttribute("as");var a=e.getAttribute("element"),i=e.getAttribute("style"),s=null;if(null!=a)null!=(s=document.getElementById(a))&&null!=i&&(s.style.cssText+=";"+i);else{a=parseInt(e.getAttribute("x"));var o=parseInt(e.getAttribute("y")),r=e.getAttribute("width"),l=e.getAttribute("height");(s=document.createElement("div")).style.cssText=i,new mxWindow(mxResources.get(n)||n,s,a,o,r,l,!1,!0).setVisible(!0)}"graph"==n?t.setGraphContainer(s):"toolbar"==n?t.setToolbarContainer(s):"title"==n?t.setTitleContainer(s):"status"==n?t.setStatusContainer(s):"map"==n&&t.setMapContainer(s)}else"resource"==e.nodeName?mxResources.add(e.getAttribute("basename")):"stylesheet"==e.nodeName&&mxClient.link("stylesheet",e.getAttribute("name"));e=e.nextSibling}},e.decodeTemplates=function(e,n,t){null==t.templates&&(t.templates=[]),n=mxUtils.getChildNodes(n);for(var a=0;a<n.length;a++){for(var i=n[a].getAttribute("as"),s=n[a].firstChild;null!=s&&1!=s.nodeType;)s=s.nextSibling;null!=s&&(t.templates[i]=e.decodeCell(s))}},e}()),EditorUi=function(e,n,t){this.projectDesignController=e,this.editor=n||new Editor,this.container=t||document.body;var a=n.graph,i=this;CRUD_PERMISSIONS=this.projectDesignController.crudPermissions;var s=mxUtils.bind(this,function(e){return null==e&&(e=window.event),!!this.isEditingEnabled()&&a.isEditing()});this.container.style.overflow="hidden",(new Image).src=mxPopupMenu.prototype.submenuImage,null!=mxConnectionHandler.prototype.connectImage&&((new Image).src=mxConnectionHandler.prototype.connectImage.src),this.actions=new Actions(this),this.menus=new Menus(this),this.createDivs(),this.refresh(),this.createUi(),this.container==document.body&&(this.menubarContainer.onselectstart=s,this.menubarContainer.onmousedown=s,this.toolbarContainer.onselectstart=s,this.toolbarContainer.onmousedown=s,this.diagramContainer.onselectstart=s,this.diagramContainer.onmousedown=s,this.sidebarContainer.onselectstart=s,this.sidebarContainer.onmousedown=s,this.footerContainer.onselectstart=s,this.footerContainer.onmousedown=s),mxClient.IS_IE&&(void 0===document.documentMode||document.documentMode<9)?(mxEvent.addListener(this.diagramContainer,"contextmenu",s),mxEvent.addListener(this.sidebarContainer,"contextmenu",s)):(this.diagramContainer.oncontextmenu=s,this.sidebarContainer.oncontextmenu=s),a.init(this.diagramContainer),a.refresh(),a.setEnabled(this.isEditingEnabled()),a.container.setAttribute("tabindex","0"),a.container.style.cursor="default",a.container.style.backgroundImage="url("+n.gridImage+")",a.container.style.backgroundPosition="-1px -1px",a.container.focus();var o=a.fireMouseEvent;a.fireMouseEvent=function(e,n,t){e==mxEvent.MOUSE_DOWN&&this.container.focus(),o.apply(this,arguments)},this.createMultiplicities(a.multiplicities,["start","finally","end"],[[1,1],[1,1],[0,0]],[[0,0],[0,0],[1,"n"]]),this.createMultiplicities(a.multiplicities,["answer","hangup","dial","ext_dial","queue","voicemail","callback"],[[1,1],[0,0],[0,1],[0,1],[0,1],[1,1],[0,1]],[[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["login","pause","unpause","logout"],[[1,2],[1,2],[1,2],[1,2]],[[1,"n"],[1,"n"],[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["set","math"],[[1,1],[1,1]],[[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["background","playback","menu","saydigits","saynumber","sayphonetic","google_cloud_tts","tts","ispeechtts","awspolly","getdigits","getsecretdigits","lumenvoxtts","sestektts","mrcpsynth"],[[1,"n"],[1,1],[1,"n"],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,"n"],[1,"n"],[1,1],[1,1],[1,1]],[[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["record"],[[1,1]],[[1,"n"]]),this.createMultiplicities(a.multiplicities,["database","ispeechasr","sendSMS","sendMail","sendFax","googleasr","lumenvoxasr","tildeasr","dialogflow","dialogflowV2","awslex","sesteknda","sestekasr","restapi","mrcprecog"],[[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1]],[[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["gotoc","gotoif","gotoiftime","vswitch"],[[0,0],[1,2],[1,2],[1,"n"]],[[1,"n"],[1,"n"],[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["queuelog","goal"],[[1,1],[1,1]],[[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["noop","system","agi","subproject","custom_app"],[[1,1],[1,1],[0,1],[0,1],[0,1]],[[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"]]),a.dblClick=function(e,t){var n=new mxEventObject(mxEvent.DOUBLE_CLICK,"event",e,"cell",t);this.fireEvent(n),mxEvent.isConsumed(e)||n.isConsumed()||(this.getModel().isEdge(t)?0<=["background","gotoif","gotoiftime","menu","getdigits","getsecretdigits","vswitch","login","pause","unpause","logout"].indexOf(t.source.value.tagName)&&this.startEditingAtCell(t):this.getModel().isVertex(t)&&i.projectDesignController.openDialog(t.getValue(),function(e){for(var n=0;n<e.length;n+=1)t.setAttribute(e[n].name,e[n].value);a.refresh(t)}),n.consume())},a.panningHandler.autoExpand=!0,a.panningHandler.factoryMethod=mxUtils.bind(this,function(e,n,t){this.isEditingEnabled()&&this.menus.createPopupMenu(e,n,t)}),n.outline.init(this.outlineContainer),mxEvent.addGestureListeners(document,mxUtils.bind(this,function(e){a.panningHandler.hideMenu()})),mxClient.IS_TOUCH&&(mxEvent.addListener(a.container,"gesturechange",mxUtils.bind(this,function(e){a.view.getDrawPane().setAttribute("transform","scale("+e.scale+")"),a.view.getOverlayPane().style.visibility="hidden"})),mxEvent.addListener(a.container,"gestureend",mxUtils.bind(this,function(e){a.view.getDrawPane().removeAttribute("transform"),a.zoomToCenter=!0,a.zoom(e.scale),a.view.getOverlayPane().style.visibility="visible"})));var r=this.isEditingEnabled()?this.createKeyHandler(n):null;this.getKeyHandler=function(){return r},mxEvent.addListener(window,"resize",mxUtils.bind(this,function(){this.refresh(),a.sizeDidChange(),this.editor.outline.update(!1),this.editor.outline.outline.sizeDidChange()})),this.init(),this.open(),this.refresh()},EditorUi.prototype.splitSize=mxClient.IS_TOUCH?16:8,EditorUi.prototype.menubarHeight=33,EditorUi.prototype.toolbarHeight=36,EditorUi.prototype.footerHeight=0,EditorUi.prototype.hsplitPosition=204,EditorUi.prototype.vsplitPosition=190,EditorUi.prototype.init=function(){this.addUndoListener(),this.addSelectionListener();var e=this.actions.get("paste"),n=function(){e.setEnabled(!mxClipboard.isEmpty())},t=mxClipboard.cut;mxClipboard.cut=function(){t.apply(this,arguments),n()};var a=mxClipboard.copy;mxClipboard.copy=function(){a.apply(this,arguments),n()}},EditorUi.prototype.isEditingEnabled=function(){return!!CRUD_PERMISSIONS.canEdit},EditorUi.prototype.exportXML=function(e){var n=window.document.createElement("a");n.href="data:attachment/text;charset=utf-8,"+encodeURIComponent(e),n.download=this.editor.filename+".xml",n.target="_self",n.click()},EditorUi.prototype.open=function(){try{null!=window.opener&&null!=window.opener.openFile&&window.opener.openFile.setConsumer(mxUtils.bind(this,function(e,n){try{var t=mxUtils.parseXml(e);this.editor.setGraphXml(t.documentElement),this.editor.modified=!1,this.editor.undoManager.clear(),null!=n&&(this.editor.filename=n)}catch(e){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+e.message)}}))}catch(e){}},EditorUi.prototype.openString=function(e,n,t){try{var a=mxUtils.parseXml(e);this.editor.setGraphXml(a.documentElement),this.editor.modified=!1,this.editor.undoManager.clear(),null!=n&&(this.editor.filename=n),null!=t&&(this.editor.data=t)}catch(e){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+e.message)}},EditorUi.prototype.validate=function(e,n){for(var t=this.editor.graph,a=(e=null!=e?e:t.model.getRoot(),n=null!=n?n:{},!0),i=t.model.getChildCount(e),s=0;s<i;s++){var o=t.model.getChildAt(e,s),r=n;t.isValidRoot(o)&&(r={}),null!=(r=this.validate(o,r))?t.setCellWarning(o,r.replace(/\n/g,"<br>")):t.setCellWarning(o,null),a=a&&null==r}if(i="",t.model.isVertex(e))switch(e.value.nodeName){case"start":i=this.validateBlock("start")?"":"Only one Start block is allowed\n";break;case"finally":i=this.validateBlock("finally")?"":"Only one Finally block is allowed\n";break;case"playback":i=0<e.value.getAttribute("file_id")?"":mxResources.get("noAudioSelected")+"\n";break;case"answer":i=0<=e.value.getAttribute("timeout")?"":mxResources.get("invalidTimeout")+"\n";break;case"menu":i=0<e.value.getAttribute("file_id")?"":mxResources.get("noAudioSelected")+"\n",i+=0<e.value.getAttribute("digit")?"":mxResources.get("wrongMaxDigit")+"\n",i+=0<=e.value.getAttribute("response")?"":mxResources.get("invalidTimeout")+"\n",i+=0<=e.value.getAttribute("retry")?"":mxResources.get("invalidRetry")+"\n";break;case"getdigits":i=0<e.value.getAttribute("file_id")?"":mxResources.get("noAudioSelected")+"\n",i+=0<e.value.getAttribute("variable_id")?"":mxResources.get("noVariableSelected")+"\n",i+=0<e.value.getAttribute("mindigit")?"":mxResources.get("wrongMinDigit")+"\n",i+=0<e.value.getAttribute("maxdigit")?"":mxResources.get("wrongMaxDigit")+"\n",i+=0<=e.value.getAttribute("retry")?"":mxResources.get("invalidRetry")+"\n";break;case"getsecretdigits":i=0<e.value.getAttribute("file_id")?"":mxResources.get("noAudioSelected")+"\n",i+=0<e.value.getAttribute("variable_id")?"":mxResources.get("noVariableSelected")+"\n",i+=0<e.value.getAttribute("mindigit")?"":mxResources.get("wrongMinDigit")+"\n",i+=0<e.value.getAttribute("maxdigit")?"":mxResources.get("wrongMaxDigit")+"\n",i+=0<=e.value.getAttribute("hiddendigitsnum")?"":mxResources.get("wrongHiddenDigitsnum")+"\n",i+=0<=e.value.getAttribute("retry")?"":mxResources.get("invalidRetry")+"\n";break;case"vswitch":i=0<e.value.getAttribute("variable_id")?"":mxResources.get("noVariableSelected")+"\n";break;case"database":i=0<e.value.getAttribute("odbc_id")?"":mxResources.get("noDatabaseSelected")+"\n",i+=""!==e.value.getAttribute("query")?"":mxResources.get("missingQuery")+"\n";break;case"set":case"math":i=0<e.value.getAttribute("variable_id")?"":mxResources.get("noVariableSelected")+"\n";break;case"gotoc":i=""!==e.value.getAttribute("context")?"":mxResources.get("noContextSelected")+"\n",i+=""!==e.value.getAttribute("extension")?"":mxResources.get("noExtensionSelected")+"\n",i+=1<=e.value.getAttribute("priority")?"":mxResources.get("invalidPriority")+"\n";break;case"system":case"agi":i=""!==e.value.getAttribute("command")?"":mxResources.get("noCommandSelected")+"\n";break;case"gotoif":i=""!==e.value.getAttribute("condition")?"":mxResources.get("noConditionSelected")+"\n";break;case"saydigits":i=""!==e.value.getAttribute("digits")?"":mxResources.get("noDigitsSelected")+"\n";break;case"saynumber":i=""!==e.value.getAttribute("number")?"":mxResources.get("noNumberSelected")+"\n";break;case"sayphonetic":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n";break;case"record":i=""!==e.value.getAttribute("file")?"":mxResources.get("noFileSelected")+"\n",i+=-1<=e.value.getAttribute("timeout")?"":mxResources.get("invalidTimeout")+"\n";break;case"goal":i=""!==e.value.getAttribute("goalname")?"":mxResources.get("noGoalSelected")+"\n";break;case"ext_dial":i="-1"!==e.value.getAttribute("trunk_name")?"":mxResources.get("noTrunkSelected")+"\n",i+=""!==e.value.getAttribute("phone")?"":mxResources.get("noIdentifierSelected")+"\n",i+=0<=e.value.getAttribute("timeout")?"":mxResources.get("invalidTimeout")+"\n";break;case"dial":i=0<e.value.getAttribute("sip_id")?"":mxResources.get("noIdentifierSelected")+"\n",i+=0<=e.value.getAttribute("timeout")?"":mxResources.get("invalidTimeout")+"\n";break;case"queue":i="-1"!==e.value.getAttribute("queue_id")?"":mxResources.get("noQueueSelected")+"\n",i+=0<=e.value.getAttribute("timeout")?"":mxResources.get("invalidTimeout")+"\n";break;case"callback":i="-1"!==e.value.getAttribute("list_id")?"":mxResources.get("noListSelected")+"\n",i+=""!==e.value.getAttribute("name")?"":mxResources.get("noFirstNameSelected")+"\n",i+=""!==e.value.getAttribute("phone")?"":mxResources.get("noPhoneSelected")+"\n",i+=""!==e.value.getAttribute("delay")?"":mxResources.get("invalidDelay")+"\n";break;case"gotoiftime":i=0<e.value.getAttribute("interval_id")?"":mxResources.get("noIntervalSelected")+"\n";break;case"voicemail":i=""!==e.value.getAttribute("mailbox")?"":mxResources.get("noBoxNumberSelected")+"\n";break;case"subproject":i=0<e.value.getAttribute("project_id")?"":mxResources.get("noProjectSelected")+"\n";break;case"sendSMS":i=0<e.value.getAttribute("sms_account_id")?"":mxResources.get("noAccountSelected")+"\n",i+=""!==e.value.getAttribute("to")?"":mxResources.get("noRecipientSelected")+"\n",i+=""!==e.value.getAttribute("sms_text")?"":mxResources.get("noTextSelected")+"\n";break;case"sendMail":i=0<e.value.getAttribute("account_id")?"":mxResources.get("noAccountSelected")+"\n",i+=""!==e.value.getAttribute("to")?"":mxResources.get("noRecipientSelected")+"\n";break;case"sendFax":i=0<e.value.getAttribute("account_id")?"":mxResources.get("noAccountSelected")+"\n",i+=""!==e.value.getAttribute("to")?"":mxResources.get("noRecipientSelected")+"\n",i+=""!==e.value.getAttribute("attachment_path")?"":mxResources.get("noAttachmentSelected")+"\n";break;case"google_cloud_tts":i=""!==e.value.getAttribute("apiKey")?"":mxResources.get("noApiKeySelected")+"\n",i+=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n";break;case"tts":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n";break;case"awspolly":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n",i+=""!==e.value.getAttribute("aws_access_key_id")?"":mxResources.get("noAccessKeySelected")+"\n",i+=""!==e.value.getAttribute("aws_secret_access_key")?"":mxResources.get("noSecretAccessKeySelected")+"\n";break;case"awslex":i=""!==e.value.getAttribute("aws_bot_name")?"":mxResources.get("noNameSelected")+"\n",i+=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n",i+=""!==e.value.getAttribute("aws_access_key_id")?"":mxResources.get("noAccessKeySelected")+"\n",i+=""!==e.value.getAttribute("aws_secret_access_key")?"":mxResources.get("noSecretAccessKeySelected")+"\n";break;case"ispeechtts":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n",i+=""!==e.value.getAttribute("key")?"":mxResources.get("noKeySelected")+"\n",i+=-10<=e.value.getAttribute("speed")&&e.value.getAttribute("speed")<=10?"":mxResources.get("invalidSpeed")+"\n";break;case"lumenvoxtts":case"sestektts":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n";break;case"lumenvoxasr":case"sestekasr":i=""!==e.value.getAttribute("grammar")?"":mxResources.get("noGrammarSelected")+"\n";break;case"ispeechasr":case"googleasr":i=""!==e.value.getAttribute("key")?"":mxResources.get("noKeySelected")+"\n",i+=-1<=e.value.getAttribute("timeout")?"":mxResources.get("invalidTimeout")+"\n";break;case"tildeasr":i=""!==e.value.getAttribute("appid")?"":mxResources.get("noAppIdInserted")+"\n",i+=""!==e.value.getAttribute("appsecret")?"":mxResources.get("noAppSecretInserted")+"\n",i+=""!==e.value.getAttribute("uri")?"":mxResources.get("noUrlInserted")+"\n";break;case"custom_app":i=""!==e.value.getAttribute("application")?"":mxResources.get("noApplicationSelected")+"\n";break;case"login":case"pause":case"unpause":case"logout":i=""!==e.value.getAttribute("findBy")?"":mxResources.get("noFindBySelected")+"\n";break;case"sesteknda":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n",i+=""!==e.value.getAttribute("ndauth_url")?"":mxResources.get("noUrlInserted")+"\n",i+=""!==e.value.getAttribute("ndassistant_url")?"":mxResources.get("noUrlInserted")+"\n",i+=""!==e.value.getAttribute("username")?"":mxResources.get("noUsernameSelected")+"\n",i+=""!==e.value.getAttribute("password")?"":mxResources.get("noPasswordSelected")+"\n";break;case"restapi":i=""!==e.value.getAttribute("url")?"":mxResources.get("noUrlSelected")+"\n",i+=""!==e.value.getAttribute("method")?"":mxResources.get("noMethodSelected")+"\n";case"mrcpsynth":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n";break;case"mrcprecog":i=""!==e.value.getAttribute("grammar")?"":mxResources.get("noGrammarSelected")+"\n";break;case"dialogflow":i=""!==e.value.getAttribute("key")?"":mxResources.get("noKeySelected")+"\n",i+=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n",i+=""!==e.value.getAttribute("dialogflow_language")?"":mxResources.get("noDialogflowLanguageSelected")+"\n";break;case"dialogflowV2":i=""!==e.value.getAttribute("dialogflowV2_project_id")?"":mxResources.get("noDialogflowProjectSelected")+"\n",i+=""!==e.value.getAttribute("client_email")?"":mxResources.get("noClientEmailSelected")+"\n",i+=""!==e.value.getAttribute("private_key")?"":mxResources.get("noPrivateKeySelected")+"\n",i+=""!==e.value.getAttribute("dialogflowV2_language")?"":mxResources.get("noDialogflowLanguageSelected")+"\n",i+=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n"}if(t.model.isEdge(e))switch(t.model.getCell(e.source.getId()).value.nodeName){case"background":case"menu":if(void 0!==e.getValue()){var l=/^[0-9]+$|^[-]{1}$|^[i]{1}$|^[t]{1}$|^[*]{1}$|^[#]{1}$/;String(e.getValue()).split(",").forEach(function(e){i+=l.test(e)?"":mxResources.get("numberOrAll")+"\n"})}else i=i+mxResources.get("numberOrAll")+"\n";break;case"getsecretdigits":case"getdigits":if(void 0!==e.getValue())i+=(l=/^(x|i|-)$/).test(String(e.getValue()))?"":mxResources.get("numberOrInvalidOrDefault")+"\n";else i=i+mxResources.get("numberOrInvalidOrDefault")+"\n";break;case"gotoif":case"gotoiftime":if(void 0!==e.getValue())i+=(l=/^(true){1}$|^(false){1}$/).test(String(e.getValue()))?"":mxResources.get("trueOrFalse")+"\n";else i=i+mxResources.get("trueOrFalse")+"\n";break;case"login":case"pause":case"unpause":case"logout":if(void 0!==e.getValue())i+=(l=/^(success){1}$|^(failure){1}$/).test(String(e.getValue()))?"":mxResources.get("successOrFailure")+"\n";else i=i+mxResources.get("successOrFailure")+"\n"}return t.isCellCollapsed(e)&&!a&&(i+=(mxResources.get(t.containsValidationErrorsResource)||t.containsValidationErrorsResource)+"\n"),i=t.model.isEdge(e)?i+(t.getEdgeValidationError(e,t.model.getTerminal(e,!0),t.model.getTerminal(e,!1))||""):i+(t.getCellValidationError(e)||""),null!=(s=t.validateCell(e,n))&&(i+=s),null==t.model.getParent(e)&&t.view.validate(),0<i.length||!a?i:null},EditorUi.prototype.validateBlock=function(n){var t=this.editor.graph,e=t.getDefaultParent(),a=0;return e.children.forEach(function(e){t.model.isVertex(e)&&e.value.nodeName==n&&a++}),!(1<a)},EditorUi.prototype.getUrl=function(e){var n=null!=e?e:window.location.pathname,t=0<n.indexOf("?")?1:0;for(var a in urlParams)n+=0==t?"?":"&",n+=a+"="+urlParams[a],t++;return n},EditorUi.prototype.addUndoListener=function(){var e=this.actions.get("undo"),n=this.actions.get("redo"),t=this.editor.undoManager,a=function(){e.setEnabled(t.canUndo()),n.setEnabled(t.canRedo())};t.addListener(mxEvent.ADD,a),t.addListener(mxEvent.UNDO,a),t.addListener(mxEvent.REDO,a),t.addListener(mxEvent.CLEAR,a),a()},EditorUi.prototype.addSelectionListener=function(){var e=mxUtils.bind(this,function(){var e=this.editor.graph,n=!e.isSelectionEmpty(),t=!1,a=!1,i=e.getSelectionCells();if(null!=i)for(var s=0;s<i.length;s++){var o=i[s];if(e.getModel().isEdge(o)&&(a=!0),e.getModel().isVertex(o)&&(t=!0),a&&t)break}var r=["cut","copy","delete","duplicate","bold","italic","style","underline","toFront","toBack","dashed","rounded","shadow","tilt","autosize"];for(s=0;s<r.length;s++)this.actions.get(r[s]).setEnabled(n);this.actions.get("curved").setEnabled(a),this.actions.get("rotation").setEnabled(t),this.actions.get("wordWrap").setEnabled(t),this.actions.get("group").setEnabled(1<e.getSelectionCount()),this.actions.get("ungroup").setEnabled(1==e.getSelectionCount()&&0<e.getModel().getChildCount(e.getSelectionCell()));var l=t&&1==e.getSelectionCount();this.actions.get("removeFromGroup").setEnabled(l&&e.getModel().isVertex(e.getModel().getParent(e.getSelectionCell())));var d=["fontFamily","fontSize","alignment","position","text","format","arrange","linewidth","spacing"];for(s=0;s<d.length;s++)this.menus.get(d[s]).setEnabled(n);d=["line","lineend","linestart"];for(s=0;s<d.length;s++)this.menus.get(d[s]).setEnabled(a);this.actions.get("setAsDefaultEdge").setEnabled(a),this.menus.get("align").setEnabled(1<e.getSelectionCount()),this.menus.get("direction").setEnabled(t||a&&e.isLoop(e.view.getState(e.getSelectionCell()))),this.menus.get("navigation").setEnabled(e.foldingEnabled&&(null!=e.view.currentRoot||1==e.getSelectionCount()&&e.isValidRoot(e.getSelectionCell()))),this.actions.get("home").setEnabled(null!=e.view.currentRoot),this.actions.get("exitGroup").setEnabled(null!=e.view.currentRoot);var c=1==e.getSelectionCount()&&e.isValidRoot(e.getSelectionCell());this.actions.get("enterGroup").setEnabled(c),this.actions.get("expand").setEnabled(c),this.actions.get("collapse").setEnabled(c),this.actions.get("editLink").setEnabled(1==e.getSelectionCount()),this.actions.get("openLink").setEnabled(1==e.getSelectionCount()&&null!=e.getLinkForCell(e.getSelectionCell()))});this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,e),e()},EditorUi.prototype.refresh=function(){var e=mxClient.IS_IE&&(null==document.documentMode||5==document.documentMode),n=this.container.clientWidth+390,t=this.container.clientHeight+190;this.container==document.body&&(n=document.body.clientWidth||document.documentElement.clientWidth,t=e&&document.body.clientHeight||document.documentElement.clientHeight);var a=Math.max(0,Math.min(this.hsplitPosition,n-this.splitSize-20)),i=Math.max(0,Math.min(this.vsplitPosition,t-this.menubarHeight-this.toolbarHeight-this.splitSize-1));this.menubarContainer.style.height=this.menubarHeight+"px",this.toolbarContainer.style.top=this.menubarHeight+"px",this.toolbarContainer.style.height=this.toolbarHeight+"px";var s=this.menubarHeight+this.toolbarHeight;if(mxClient.IS_QUIRKS||(s+=1),this.sidebarContainer.style.top=s+"px",this.sidebarContainer.style.width=a+"px",this.outlineContainer.style.width=a+"px",this.outlineContainer.style.height=i+"px",this.diagramContainer.style.left=this.isEditingEnabled()?a+this.splitSize+"px":"0px",this.diagramContainer.style.top=this.sidebarContainer.style.top,this.hsplit.style.top=this.sidebarContainer.style.top,this.hsplit.style.bottom=this.outlineContainer.style.bottom,this.hsplit.style.left=a+"px",this.vsplit.style.width=this.sidebarContainer.style.width,this.vsplit.style.bottom=i+this.footerHeight+"px",e){this.menubarContainer.style.width=n+"px",this.toolbarContainer.style.width=this.menubarContainer.style.width;var o=t-i-this.splitSize-this.menubarHeight-this.toolbarHeight;this.sidebarContainer.style.height=o+"px",this.diagramContainer.style.width=n-a-this.splitSize+"px";var r=t-this.menubarHeight-this.toolbarHeight;this.diagramContainer.style.height=r+"px",this.hsplit.style.height=r+"px"}else this.sidebarContainer.style.bottom=i+this.splitSize+"px",this.diagramContainer.style.bottom=this.outlineContainer.style.bottom},EditorUi.prototype.createDivs=function(){this.menubarContainer=this.createDiv("geMenubarContainer"),this.toolbarContainer=this.createDiv("geToolbarContainer"),this.sidebarContainer=this.createDiv("geSidebarContainer"),this.outlineContainer=this.createDiv("geOutlineContainer"),this.diagramContainer=this.createDiv("geDiagramContainer"),this.footerContainer=this.createDiv("geFooterContainer"),this.hsplit=this.createDiv("geHsplit"),this.vsplit=this.createDiv("geVsplit"),this.menubarContainer.style.top="0px",this.menubarContainer.style.left="0px",this.menubarContainer.style.right="0px",this.toolbarContainer.style.left="0px",this.toolbarContainer.style.right="0px",this.sidebarContainer.style.left="0px",this.outlineContainer.style.bottom="0px",this.outlineContainer.style.left="0px",this.diagramContainer.style.overflow="scroll",this.diagramContainer.style.right="0px",this.footerContainer.style.left="0px",this.footerContainer.style.right="0px",this.footerContainer.style.bottom="0px",this.vsplit.style.left="0px",this.vsplit.style.height=this.splitSize+"px",this.hsplit.style.width=this.splitSize+"px"},EditorUi.prototype.createUi=function(){this.menubar=this.menus.createMenubar(this.createDiv("geMenubar")),this.menubarContainer.appendChild(this.menubar.container),this.toolbar=this.createToolbar(this.createDiv("geToolbar")),this.toolbarContainer.appendChild(this.toolbar.container),this.sidebar=this.createSidebar(this.sidebarContainer),this.footerContainer.appendChild(this.createFooter()),this.statusContainer=this.createStatusContainer(),this.editor.addListener("statusChanged",mxUtils.bind(this,function(){this.setStatusText(this.editor.getStatus())})),this.setStatusText(this.editor.getStatus()),this.menubar.container.appendChild(this.statusContainer),this.isEditingEnabled()&&(this.container.appendChild(this.sidebarContainer),this.container.appendChild(this.hsplit),this.container.appendChild(this.vsplit)),this.container.appendChild(this.diagramContainer),this.container.appendChild(this.menubarContainer),this.container.appendChild(this.toolbarContainer),this.container.appendChild(this.outlineContainer),this.container.appendChild(this.footerContainer),this.addSplitHandler(this.hsplit,!0,0,mxUtils.bind(this,function(e){this.hsplitPosition=e,this.refresh(),this.editor.graph.sizeDidChange(),this.editor.outline.update(!1),this.editor.outline.outline.sizeDidChange()})),this.addSplitHandler(this.vsplit,!1,this.footerHeight,mxUtils.bind(this,function(e){this.vsplitPosition=e,this.refresh(),this.editor.outline.update(!1),this.editor.outline.outline.sizeDidChange()}))},EditorUi.prototype.createStatusContainer=function(){var e=document.createElement("a");return e.className="geItem geStatus",e},EditorUi.prototype.createStatusContainer=function(){var e=document.createElement("a");return e.className="geItem geStatus",e},EditorUi.prototype.setStatusText=function(e){this.statusContainer.innerHTML=e},EditorUi.prototype.createToolbar=function(e){return new Toolbar(this,e)},EditorUi.prototype.createSidebar=function(e){return new Sidebar(this,e)},EditorUi.prototype.createFooter=function(){return this.createDiv("geFooter")},EditorUi.prototype.createDiv=function(e){var n=document.createElement("div");return n.className=e,n},EditorUi.prototype.createHeader=function(e){return document.createElement(e)},EditorUi.prototype.createForm=function(e){var n=document.createElement("form");return n.className=e,n},EditorUi.prototype.addSplitHandler=function(n,t,a,i){var s=null,o=null;function r(e){if(null!=s){var n=new mxPoint(mxEvent.getClientX(e),mxEvent.getClientY(e));i(Math.max(0,o+(t?n.x-s.x:s.y-n.y)-a)),mxEvent.consume(e)}}function e(e){r(e),o=s=null}mxEvent.addGestureListeners(n,function(e){s=new mxPoint(mxEvent.getClientX(e),mxEvent.getClientY(e)),o=parseInt(t?n.style.left:n.style.bottom),mxEvent.consume(e)}),mxEvent.addListener(document,"mousemove",r),mxEvent.addListener(document,"touchmove",r),mxEvent.addListener(document,"mouseup",e),mxEvent.addListener(document,"touchend",e)},EditorUi.prototype.executeLayout=function(e,n,t){var a=this.editor.graph,i=a.getSelectionCell();n=null!=this.animate?this.animate:n,a.getModel().beginUpdate();try{e.execute(a.getDefaultParent(),i)}catch(e){throw e}finally{if(n&&navigator.userAgent.indexOf("Camino")<0){var s=new mxMorphing(a);s.addListener(mxEvent.DONE,mxUtils.bind(this,function(){a.getModel().endUpdate()})),s.startAnimation()}else a.getModel().endUpdate()}},EditorUi.prototype.createKeyHandler=function(e){var a=this.editor.graph,o=new mxKeyHandler(a);function n(e){if(!a.isSelectionEmpty()){var n=0,t=0;37==e?n=-1:38==e?t=-1:39==e?n=1:40==e&&(t=1),a.moveCells(a.getSelectionCells(),n,t),a.scrollCellToVisible(a.getSelectionCell())}}o.isControlDown=function(e){return mxEvent.isControlDown(e)||mxClient.IS_MAC&&e.metaKey};var t=mxUtils.bind(this,function(e,n,t,a){var i=this.actions.get(t);if(null!=i){var s=function(){i.enabled&&i.funct()};n?a?o.bindControlShiftKey(e,s):o.bindControlKey(e,s):a?o.bindShiftKey(e,s):o.bindKey(e,s)}});return o.enter=function(){},o.bindKey(8,function(){a.foldCells(!0)}),o.bindKey(13,function(){a.foldCells(!1)}),o.bindKey(33,function(){a.exitGroup()}),o.bindKey(34,function(){a.enterGroup()}),o.bindKey(36,function(){a.home()}),o.bindKey(35,function(){a.refresh()}),o.bindKey(37,function(){n(37)}),o.bindKey(38,function(){n(38)}),o.bindKey(39,function(){n(39)}),o.bindKey(40,function(){n(40)}),o.bindKey(113,function(){a.startEditingAtCell()}),t(46,!1,"delete"),t(82,!0,"tilt"),t(83,!0,"save"),t(83,!0,"saveAs",!0),t(107,!1,"zoomIn"),t(109,!1,"zoomOut"),t(65,!0,"selectAll"),t(86,!0,"selectVertices",!0),t(69,!0,"selectEdges",!0),t(69,!0,"export"),t(66,!0,"toBack"),t(70,!0,"toFront"),t(68,!0,"duplicate"),t(90,!0,"undo"),t(89,!0,"redo"),t(88,!0,"cut"),t(67,!0,"copy"),t(81,!0,"connect"),t(86,!0,"paste"),t(71,!0,"group"),t(71,!0,"grid",!0),t(85,!0,"ungroup"),t(112,!1,"about"),t(80,!0,"publish",!0),o},EditorUi.prototype.createMultiplicities=function(e,n,t,a){for(var i=0;i<n.length;i++)e.push(new mxMultiplicity(!0,n[i],null,null,t[i][0],t[i][1],null,mxResources.get(n[i])+mxResources.get("musthave")+t[i][0]+mxResources.get("outgoingedge"),null)),e.push(new mxMultiplicity(!1,n[i],null,null,a[i][0],a[i][1],null,mxResources.get(n[i])+mxResources.get("musthave")+a[i][0]+mxResources.get("incomingedge"),null))};var useLocalStorage=(mxClient.IS_TOUCH||"local"==urlParams.storage)&&"undefined"!=typeof localStorage,fileSupport=null!=window.File&&null!=window.FileReader&&null!=window.FileList,touchStyle=mxClient.IS_TOUCH||"1"==urlParams.touch,counter=0;try{for(var op=window;null!=op.opener&&!isNaN(op.opener.counter);)op=op.opener;null!=op&&(op.counter++,counter=op.counter)}catch(e){}function Sidebar(e,n){this.editorUi=e,this.container=n,this.palettes=new Object,this.taglist=new Object,this.showTooltips=!0,this.graph=new Graph(document.createElement("div"),null,null,this.editorUi.editor.graph.getStylesheet()),this.graph.resetViewOnRootChange=!1,this.graph.foldingEnabled=!1,this.graph.setConnectable(!1),this.graph.autoScroll=!1,this.graph.setTooltips(!1),this.graph.setEnabled(!1),this.graph.container.style.visibility="hidden",this.graph.container.style.position="absolute",this.graph.container.style.overflow="hidden",this.graph.container.style.height="1px",this.graph.container.style.width="1px",mxClient.IS_IE||mxClient.IS_IE11||(this.graph.container.style.display="none"),document.body.appendChild(this.graph.container),this.pointerUpHandler=mxUtils.bind(this,function(){this.showTooltips=!0}),mxEvent.addListener(document,mxClient.IS_POINTER?"pointerup":"mouseup",this.pointerUpHandler),this.pointerDownHandler=mxUtils.bind(this,function(){this.showTooltips=!1,this.hideTooltip()}),mxEvent.addListener(document,mxClient.IS_POINTER?"pointerdown":"mousedown",this.pointerDownHandler),this.pointerMoveHandler=mxUtils.bind(this,function(e){for(var n=mxEvent.getSource(e);null!=n;){if(n==this.currentElt)return;n=n.parentNode}this.hideTooltip()}),mxEvent.addListener(document,mxClient.IS_POINTER?"pointermove":"mousemove",this.pointerMoveHandler),this.pointerOutHandler=mxUtils.bind(this,function(e){null==e.toElement&&null==e.relatedTarget&&this.hideTooltip()}),mxEvent.addListener(document,mxClient.IS_POINTER?"pointerout":"mouseout",this.pointerOutHandler),mxEvent.addListener(n,"scroll",mxUtils.bind(this,function(){this.showTooltips=!0})),this.init(),mxClient.IS_SVG||((new Image).src=IMAGE_PATH+"/tooltip.png")}function Actions(e){this.editorUi=e,this.actions=new Object,this.init()}function Action(e,n,t,a,i){mxEventSource.call(this),this.label=e,this.funct=n,this.enabled=null==t||t,this.iconCls=a,this.shortcut=i}function Menubar(e,n){this.editorUi=e,this.container=n,mxEvent.addGestureListeners(document,mxUtils.bind(this,function(e){this.hideMenu()}))}function Menu(e,n){mxEventSource.call(this),this.funct=e,this.enabled=null==n||n}function Toolbar(e,n){this.editorUi=e,this.container=n,this.init(),mxEvent.addGestureListeners(document,mxUtils.bind(this,function(e){this.hideMenu()}))}function createCheckbox(e){var n=document.createElement("input");return n.setAttribute("type","checkbox"),e&&n.setAttribute("checked",!0),n}function createDropdownFromApi(e,t,a,i,n,s,o,r){var l=new XMLHttpRequest;l.open("GET",e,!1),l.setRequestHeader("Authorization","Bearer "+n.editor.data.token),l.send(null);var d=[];200===l.status&&(d=JSON.parse(l.response));var c=document.createElement("select"),m=document.createElement("option");return m.text="-- None --",m.value="-1",c.appendChild(m),d.rows.forEach(function(n){r&&n[a]==r||((m=document.createElement("option")).text=n[a],s&&o?(m.value=o,s.forEach(function(e){m.value=m.value.replace("%"+e+"%",n[e])}),m.selected=m.value==t):(m.value=n[i],m.selected=n[i]==t),c.appendChild(m))}),c.className="form-control select2",c}function createDropdownWithOptgroupFromApi(e,n,t,a,i,s){var o=new XMLHttpRequest;o.open("GET",e,!1),o.setRequestHeader("Authorization","Bearer "+i.editor.data.token),o.send(null);var r=[];200===o.status&&(r=JSON.parse(o.response));var l=document.createElement("select"),d=document.createElement("option");d.text="-- None --",d.value="-1",l.appendChild(d);var c=_.groupBy(r.rows,s);for(var m in c)if(c.hasOwnProperty(m)){var u=document.createElement("optgroup");u.label=_.capitalize(m),c[m].forEach(function(e){(d=document.createElement("option")).text=e[t],d.value=e[a],d.selected=e[a]==n,u.appendChild(d)}),l.appendChild(u)}return l.className="form-control select2",l}function createGroupedDropdownFromApi(e,n,t,a,i,s){var o=new XMLHttpRequest;o.open("GET",e,!1),o.setRequestHeader("Authorization","Bearer "+i.editor.data.token),o.send(null);var r=[];200===o.status&&(r=JSON.parse(o.response));var l=document.createElement("select"),d=document.createElement("option");return d.text="-- None --",d.value="0",l.appendChild(d),r.rows.forEach(function(e){(d=document.createElement("option")).className="select-group-father",d.text=e[t].toUpperCase(),d.value=e[a],d.selected=e[a]==n,l.appendChild(d),e[s].forEach(function(e){(d=document.createElement("option")).className="select-group-son",d.text="-"+_.capitalize(e[t]),d.value=e[a],d.selected=e[a]==n,l.appendChild(d)})}),l.className="form-control select2",l}function createDropdownFromArray(e,n){var t=document.createElement("select");for(var a in e){var i=document.createElement("option");i.text=e[a],i.value=a,(0<n||""!=n)&&(i.selected=n===a),t.appendChild(i)}return t.className="form-control select2",t}function createDropdownFromTigerDialList(e){var n=document.createElement("select"),t=[],a=new XMLHttpRequest;try{if(a.open("POST","/api/rest/list/list",!1),a.send(JSON.stringify({page:1,size:6e5})),200===a.status){var i=JSON.parse(a.response);if(0<i.status){var s=i.response.RMI.rows;for(var o in s)t[s[o].id]=s[o].name}}}catch(e){console.log(e)}for(var r in t){var l=document.createElement("option");l.text=t[r],l.value=r,(0<e||""!=e)&&(l.selected=e===r),n.appendChild(l)}return n.className="form-control select2",n}function Dialog(e,n,t,a,i,s,o){var r=0;mxClient.IS_IE&&9!=document.documentMode&&(r=60),t+=r,a+=r;Math.max(0,Math.round((document.body.scrollWidth-t)/2)),Math.max(0,Math.round((Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)-a)/3));var l=e.createDiv("geDialog");l.className="modal fade in center",l.style.display="block",l.style.paddingRight="12px";var d=e.createDiv("geModalDialog");d.className="modal-dialog",d.appendChild(n),l.appendChild(d),null==this.bg&&(this.bg=e.createDiv("background"),this.bg.className="modal-backdrop fade in",mxClient.IS_QUIRKS&&new mxDivResizer(this.bg)),i&&document.body.appendChild(this.bg),document.body.appendChild(l),this.onDialogClose=o,this.container=l}function ImportDialog(t){var e=t.createDiv("modal-content"),n=t.createDiv("modal-header"),a=t.createDiv("modal-body"),i=t.createDiv("modal-footer"),s=t.createHeader("h4");mxUtils.write(s,mxResources.get("import")+" XML");var o=mxUtils.button("",function(){t.hideDialog()});o.className="close",n.appendChild(o),n.appendChild(s);var r=t.createDiv("row"),l=t.createDiv("col-md-12"),d=document.createElement("textarea");d.style.width="100%",d.style.height="374px";var c=document.createElement("input");c.type="file",c.setAttribute("accept","text/xml"),c.addEventListener("change",function(e){var n=e.target.files[0];if(console.log(n),n)if("text/xml"===n.type){var t=new FileReader;t.onload=function(e){var n=e.target.result;mxUtils.write(d,n)},t.readAsText(n)}else alert("Failed to load format file");else alert("Failed to load file")},!1),l.appendChild(c),l.appendChild(d),r.appendChild(l),a.appendChild(r);var m=mxUtils.button(mxResources.get("import"),mxUtils.bind(this,function(e){var n=mxUtils.parseXml(d.value);t.editor.setGraphXml(n.documentElement),t.hideDialog()}));m.className="btn blue";var u=mxUtils.button(mxResources.get("cancel"),function(){t.hideDialog()});u.className="btn default",i.appendChild(m),i.appendChild(u),e.appendChild(n),e.appendChild(a),e.appendChild(i),this.container=e}function AboutDialog(e){var n=e.createDiv("modal-content"),t=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),s=e.createHeader("h4");mxUtils.write(s,mxResources.get("about")+" Cally Square");var o=mxUtils.button("",function(){e.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);var r=document.createElement("img");r.style.border="0px",r.setAttribute("width","176"),r.setAttribute("width","151"),r.setAttribute("src",IMAGE_PATH+"/logo.png"),a.appendChild(r),mxUtils.br(a),mxUtils.write(a,"Powered by Xenialab "+mxClient.VERSION),mxUtils.br(a);var l=document.createElement("a");l.setAttribute("href","http://www.callysquare.com/"),l.setAttribute("target","_blank"),mxUtils.write(l,"www.callysquare.com"),a.appendChild(l),mxUtils.br(a),mxUtils.br(a);var d=mxUtils.button(mxResources.get("close"),function(){e.hideDialog()});d.className="btn default",i.appendChild(d),n.appendChild(t),n.appendChild(a),n.appendChild(i),this.container=n}function SaveDialog(e){var n=e.createDiv("modal-content"),t=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),s=e.createHeader("h4");mxUtils.write(s,mxResources.get("saveAs"));var o=mxUtils.button("",function(){e.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);var r=e.editor.getOrCreateFilename(),l=e.createDiv("row"),d=e.createDiv("col-md-4"),c=e.createDiv("col-md-8"),m=document.createElement("label");m.className="control-label pull-right",mxUtils.write(m,mxResources.get("name")),d.appendChild(m);var u=document.createElement("input");u.setAttribute("value",r+"_copy"),u.setAttribute("id","_name"),u.className="form-control",c.appendChild(u),l.appendChild(d),l.appendChild(c),a.appendChild(l);var p=mxUtils.button(mxResources.get("save"),function(){e.saveAs(u.value),e.hideDialog()});p.className="btn blue";var g=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});g.className="btn default",i.appendChild(p),i.appendChild(g),n.appendChild(t),n.appendChild(a),n.appendChild(i),this.container=n}function NewDialog(e){var n=e.createDiv("modal-content"),t=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),s=e.createHeader("h4");mxUtils.write(s,mxResources.get("new"));var o=mxUtils.button("",function(){e.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);var r=e.editor.getOrCreateFilename(),l=e.createDiv("row"),d=e.createDiv("col-md-4"),c=e.createDiv("col-md-8"),m=document.createElement("label");m.className="control-label pull-right",mxUtils.write(m,mxResources.get("name")),d.appendChild(m);var u=document.createElement("input");u.setAttribute("value",r+"_new"),u.setAttribute("id","_name"),u.className="form-control",c.appendChild(u),l.appendChild(d),l.appendChild(c),a.appendChild(l);var p=mxUtils.button(mxResources.get("new"),function(){e.new(u.value),e.hideDialog()});p.className="btn blue";var g=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});g.className="btn default",i.appendChild(p),i.appendChild(g),n.appendChild(t),n.appendChild(a),n.appendChild(i),this.container=n}function DescriptionDialog(e){console.log(e.editor.data);var n=e.createDiv("modal-content"),t=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),s=e.createHeader("h4");mxUtils.write(s,mxResources.get("description"));var o=mxUtils.button("",function(){e.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);var r=e.createDiv("form-horizontal form-row-seperated"),l="description",d=e.editor.data.description||"",c=e.createDiv("form-group"),m=document.createElement("label");m.className="col-sm-4 control-label",mxUtils.write(m,mxResources.get(l)),c.appendChild(m);var u=document.createElement("input");u.setAttribute("value",d),u.className="form-control",u.setAttribute("id","_description");var p=e.createDiv("col-sm-8");p.appendChild(u),c.appendChild(p),r.appendChild(c),a.appendChild(r);var g=mxUtils.button(mxResources.get("update"),function(){e.description(u.value),e.hideDialog()});g.className="btn blue";var v=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});v.className="btn default",i.appendChild(g),i.appendChild(v),n.appendChild(t),n.appendChild(a),n.appendChild(i),this.container=n}function VariableDialog(e){var n=e.createDiv("modal-content"),t=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),s=e.createHeader("h4");mxUtils.write(s,mxResources.get("variable"));var o=mxUtils.button("",function(){e.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);var r=e.createDiv("form-horizontal form-row-seperated"),l="name",d="_"+l,c="variable name",m=e.createDiv("form-group"),u=document.createElement("label");u.className="col-sm-4 control-label",mxUtils.write(u,mxResources.get(l)),m.appendChild(u);var p=document.createElement("input");p.setAttribute("value",c),p.className="form-control",p.setAttribute("id",d);var g=e.createDiv("col-sm-8");g.appendChild(p),m.appendChild(g),r.appendChild(m),d="_"+(l="description"),c="variable description",m=e.createDiv("form-group last"),(u=document.createElement("label")).className="col-sm-4 control-label",mxUtils.write(u,mxResources.get(l)),m.appendChild(u);var v=document.createElement("input");v.setAttribute("value",c),v.className="form-control",v.setAttribute("id",d),(g=e.createDiv("col-sm-8")).appendChild(v),m.appendChild(g),r.appendChild(m),a.appendChild(r);var h=mxUtils.button(mxResources.get("new"),function(){e.variable(p.value,v.value),e.hideDialog()});h.className="btn blue";var f=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});f.className="btn default",i.appendChild(h),i.appendChild(f),n.appendChild(t),n.appendChild(a),n.appendChild(i),this.container=n}function OpenDialog(e){var n=e.createDiv("modal-content"),t=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),s=e.createHeader("h4");mxUtils.write(s,mxResources.get("open"));var o=mxUtils.button("",function(){e.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);var r=e.createDiv("row"),l=e.createDiv("col-md-4"),d=e.createDiv("col-md-8"),c=document.createElement("label");c.className="control-label pull-right",mxUtils.write(c,mxResources.get("name")),l.appendChild(c);var m=new XMLHttpRequest;m.open("GET","/api/square/projects",!1),m.setRequestHeader("Authorization","Bearer "+e.editor.data.token),m.send(null);var u=[];200===m.status&&(u=JSON.parse(m.response));for(var p=document.createElement("select"),g=0;g<u.length;g++){var v=document.createElement("option");v.text=u[g].name,v.value=u[g].id,p.appendChild(v)}p.className="form-control",d.appendChild(p),r.appendChild(l),r.appendChild(d),a.appendChild(r);var h=mxUtils.button(mxResources.get("open"),function(){console.log(p),console.log(p.value),window.open("square/project/"+p.value,"_blank"),e.hideDialog()});h.className="btn blue";var f=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});f.className="btn default",i.appendChild(h),i.appendChild(f),n.appendChild(t),n.appendChild(a),n.appendChild(i),this.container=n}function RenameDialog(t){var e=t.createDiv("modal-content"),n=t.createDiv("modal-header"),a=t.createDiv("modal-body"),i=t.createDiv("modal-footer"),s=t.createHeader("h4");mxUtils.write(s,mxResources.get("rename"));var o=mxUtils.button("",function(){t.hideDialog()});o.className="close",n.appendChild(o),n.appendChild(s);var r=t.createDiv("row"),l=t.createDiv("col-md-4"),d=t.createDiv("col-md-8"),c=document.createElement("label");c.className="control-label pull-right",mxUtils.write(c,mxResources.get("name")),l.appendChild(c);var m=t.editor.filename,u=document.createElement("input");u.setAttribute("value",m),u.className="form-control",d.appendChild(u),r.appendChild(l),r.appendChild(d),a.appendChild(r);var p=mxUtils.button(mxResources.get("save"),function(){var n=new XMLHttpRequest;n.open("PUT",SAVE_URL+t.editor.data.id,!0),n.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),n.setRequestHeader("Authorization","Bearer "+t.editor.data.token),n.send("name="+u.value),n.onload=function(e){200===n.status?(t.editor.setStatus("Project successfully renamed"),t.editor.filename=u.value):(console.log(n.response),t.editor.setStatus(JSON.parse(n.response).errors[0].message))},n.onerror=function(e){mxUtils.alert(n.statusText)},t.hideDialog()});p.className="btn blue";var g=mxUtils.button(mxResources.get("cancel"),function(){t.hideDialog()});g.className="btn default",i.appendChild(p),i.appendChild(g),e.appendChild(n),e.appendChild(a),e.appendChild(i),this.container=e}function EditFileDialog(n){var e=n.createDiv("modal-content"),t=n.createDiv("modal-header"),a=n.createDiv("modal-body"),i=n.createDiv("modal-footer"),s=n.createHeader("h4");mxUtils.write(s,mxResources.get("edit"));var o=mxUtils.button("",function(){n.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);var r=n.createDiv("row"),l=n.createDiv("col-md-12"),d=document.createElement("textarea");if(d.style.width="100%",d.style.height="374px",d.value=mxUtils.getPrettyXml(n.editor.getGraphXml()),fileSupport){d.addEventListener("dragover",function(e){e.stopPropagation(),e.preventDefault()},!1),d.addEventListener("drop",function(e){if(e.stopPropagation(),e.preventDefault(),0<e.dataTransfer.files.length){var n=e.dataTransfer.files[0],t=new FileReader;t.onload=function(e){d.value=e.target.result},t.readAsText(n)}},!1)}l.appendChild(d),r.appendChild(l),a.appendChild(r);var c=mxUtils.button(mxResources.get("save"),function(){var e=mxUtils.parseXml(d.value);n.editor.setGraphXml(e.documentElement),n.hideDialog()});c.className="btn blue";var m=mxUtils.button(mxResources.get("cancel"),function(){n.hideDialog()});m.className="btn default",i.appendChild(c),i.appendChild(m),e.appendChild(t),e.appendChild(a),e.appendChild(i),this.container=e}function ExportDialog(n){var e=n.createDiv("modal-content"),t=n.createDiv("modal-header"),a=n.createDiv("modal-body form"),i=n.createDiv("modal-footer"),s=n.createHeader("h4");mxUtils.write(s,mxResources.get("export")+" XML");var o=mxUtils.button("",function(){n.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);var r=n.createDiv("form-horizontal form-row-seperated"),l=n.createDiv("form-group last"),d=document.createElement("label");d.className="col-sm-4 control-label",mxUtils.write(d,mxResources.get("filename"));var c=document.createElement("input");c.setAttribute("value",n.editor.getOrCreateFilename()),c.className="form-control";var m=n.createDiv("col-sm-8");m.appendChild(c),l.appendChild(d),l.appendChild(m),r.appendChild(l),a.appendChild(r);var u=mxUtils.button(mxResources.get("export"),mxUtils.bind(this,function(e){n.save(!1);encodeURIComponent(mxUtils.getXml(n.editor.getGraphXml()));new mxXmlRequest(SAVE_URL+n.editor.data.id+"/download","filename="+c.value,"GET").simulate(document,"_blank"),n.hideDialog()}));u.className="btn blue";var p=mxUtils.button(mxResources.get("cancel"),function(){n.hideDialog()});p.className="btn default",i.appendChild(u),i.appendChild(p),e.appendChild(t),e.appendChild(a),e.appendChild(i),this.container=e}function GeneralDialog(i,s){console.log("general");var o=i.editor.graph,e=i.createDiv("md-dialog"),n=i.createDiv("md-toolbar"),t=i.createDiv("md-dialog-content"),a=i.createDiv("md-dialog-actions"),r=i.createHeader("h4");mxUtils.write(r,mxResources.get("edit")+" "+mxResources.get(s.value.nodeName));var l=mxUtils.button("",function(){i.hideDialog()});l.className="close",n.appendChild(l),n.appendChild(r);for(var d=s.value.attributes.length,c=i.createDiv("form-horizontal form-row-seperated"),m=0;m<d;m++){var u,p=s.value.attributes[m].name,g="_"+p,v=s.value.attributes[m].value,h=i.createDiv(m==d-1?"form-group last":"form-group"),f=document.createElement("label");switch(f.className="col-sm-4 control-label",mxUtils.write(f,mxResources.get(p)),h.appendChild(f),p){case"sip_id":u=createDropdownWithOptgroupFromApi("/api/users/all",v,"fullname","id",i,"role");break;case"queue_id":u=createDropdownFromApi("/api/voice/queues",v,"name","name",i);break;case"trunk_name":u=createDropdownFromApi("/api/trunks",v,"name","name",i);break;case"variable_id":u=createDropdownFromApi("/api/variables",v,"name","id",i);break;case"account_id":u="sendMail"==s.value.nodeName?createDropdownFromApi("/api/mail/servers/out",v,"username","id",i):createDropdownFromApi("/api/sms/accounts",v,"name","id",i);break;case"template_id":u=createDropdownFromApi("/api/templates",v,"name","id",i);break;case"context":u=createDropdownFromApi("/api/voice/contexts",v,"name","name",i);break;case"mailbox":u=createDropdownFromApi("/api/voice/voicemails",v,"mailbox","id",i,["mailbox","context"],"%mailbox%@%context%");break;case"model":u=createDropdownFromArray(ISPEECHASRMODEL,v);break;case"ispeech_asr_language":u=createDropdownFromArray(ISPEECHASRLANG,v);break;case"beep":u=createDropdownFromArray(ISPEECHBEEP,v);break;case"hiddendigitspos":u=createDropdownFromArray(SECRETDIGITSPOS,v);break;case"ispeech_tts_language":u=createDropdownFromArray(ISPEECHLANG,v);break;case"google_tts_language":u=createDropdownFromArray(GOOGLETTSLANG,v);break;case"intKey":u=createDropdownFromArray(ASRINTKEYS,v);break;case"recordingFormat":u=createDropdownFromArray(RECORDINGFORMAT,v);break;case"answer":u=createDropdownFromArray(BOOLSELECT,v);break;case"list_id":u=createDropdownFromTigerDialList(v);break;case"interval_id":u=createGroupedDropdownFromApi("/api/intervals",v,"name","id",i,"SubIntervals");break;case"project_id":u=createDropdownFromApi("/api/square/projects",v,"name","id",i,null,null,i.editor.getOrCreateFilename());break;case"odbc_id":u=createDropdownFromApi("/api/square/odbc",v,"name","id",i);break;case"file_id":u=createDropdownFromApi("/api/sounds",v,"display_name","id",i);break;case"timeout":case"digit":case"mindigit":case"maxdigit":case"response":case"retry":case"speed":(u=document.createElement("input")).setAttribute("type","number"),u.setAttribute("min",0),u.setAttribute("max",1e3),u.setAttribute("value",v),u.className="form-control";break;case"text":case"key":case"query":case"condition":case"command":case"body":(u=document.createElement("textarea")).innerHTML=v,u.className="form-control";break;case"sms_text":(u=document.createElement("textarea")).innerHTML=v,u.className="form-control",u.setAttribute("maxlength","160");break;default:(u=document.createElement("input")).setAttribute("value",v),u.className="form-control"}u.setAttribute("id",g);var b=i.createDiv("col-sm-8");if(b.appendChild(u),mxResources.get("help_"+p)){var A=i.createDiv("p");A.className="help-block",mxUtils.write(A,mxResources.get("help_"+p)),b.appendChild(A)}h.appendChild(b),c.appendChild(h)}t.appendChild(c);var E=mxUtils.button(mxResources.get("save"),mxUtils.bind(this,function(e){for(var n=0;n<s.value.attributes.length;n++){var t="_"+s.value.attributes[n].name,a=s.value.attributes[n].name;s.setAttribute(a,document.getElementById(t).value)}o.refresh(s),i.hideDialog()}));E.className="btn blue";var y=mxUtils.button(mxResources.get("cancel"),function(){i.hideDialog()});y.className="btn default",a.appendChild(E),a.appendChild(y),e.appendChild(n),e.appendChild(t),e.appendChild(a),this.container=e}Editor=function(){mxEventSource.call(this),this.init(),this.initStencilRegistry(),this.graph=new Graph,this.outline=new mxOutline(this.graph),this.outline.updateOnPan=!0,this.undoManager=this.createUndoManager(),this.status="",this.filename=null,this.getOrCreateFilename=function(){return this.filename||mxResources.get("drawing",[counter])+".xml"},this.getFilename=function(){return this.filename},this.setStatus=function(e){this.status=e,this.fireEvent(new mxEventObject("statusChanged"))},this.getStatus=function(){return this.status},this.modified=!1,this.graphChangeListener=function(){this.modified=!0},this.graph.getModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){this.graphChangeListener.apply(this,arguments)})),window.onbeforeunload=mxUtils.bind(this,function(){if(this.modified)return mxResources.get("allChangesLost")}),this.graph.resetViewOnRootChange=!1,this.graph.scrollbars=!0,this.graph.background=null},mxUtils.extend(Editor,mxEventSource),Editor.prototype.gridImage=IMAGE_PATH+"/grid.gif",Editor.prototype.transparentImage=IMAGE_PATH+"/transparent.gif",Editor.prototype.setGraphXml=function(e){var n=new mxCodec(e.ownerDocument);if("mxGraphModel"==e.nodeName){this.graph.view.scale=Number(e.getAttribute("scale")||1),this.graph.gridEnabled="0"!=e.getAttribute("grid"),this.graph.graphHandler.guidesEnabled="0"!=e.getAttribute("guides"),this.graph.setTooltips("0"!=e.getAttribute("tooltips")),this.graph.setConnectable("0"!=e.getAttribute("connect")),this.graph.foldingEnabled="0"!=e.getAttribute("fold"),this.graph.scrollbars="0"!=e.getAttribute("scrollbars"),this.graph.scrollbars||(this.graph.container.scrollLeft=0,this.graph.container.scrollTop=0,this.graph.view.translate.x=Number(e.getAttribute("dx")||0),this.graph.view.translate.y=Number(e.getAttribute("dy")||0)),this.graph.pageVisible="1"==e.getAttribute("page"),this.graph.pageBreaksVisible=this.graph.pageVisible,this.graph.preferPageSize=this.graph.pageBreaksVisible;var t=e.getAttribute("pageScale");this.graph.pageScale=null!=t?t:1.5;var a=e.getAttribute("pageWidth"),i=e.getAttribute("pageHeight");null!=a&&null!=i&&(this.graph.pageFormat=new mxRectangle(0,0,parseFloat(a),parseFloat(i)),this.outline.outline.pageFormat=this.graph.pageFormat);var s=e.getAttribute("background");null!=s&&0<s.length&&(this.graph.background=s),n.decode(e,this.graph.getModel()),this.updateGraphComponents()}},Editor.prototype.getGraphXml=function(){var e=new mxCodec(mxUtils.createXmlDocument()).encode(this.graph.getModel());return 0==this.graph.view.translate.x&&0==this.graph.view.translate.y||(e.setAttribute("dx",Math.round(100*this.graph.view.translate.x)/100),e.setAttribute("dy",Math.round(100*this.graph.view.translate.y)/100)),1!=this.graph.view.scale&&e.setAttribute("scale",Math.round(1e3*this.graph.view.scale)/1e3),e.setAttribute("grid",this.graph.isGridEnabled()?"1":"0"),e.setAttribute("guides",this.graph.graphHandler.guidesEnabled?"1":"0"),e.setAttribute("guides",this.graph.graphHandler.guidesEnabled?"1":"0"),e.setAttribute("tooltips",this.graph.tooltipHandler.isEnabled()?"1":"0"),e.setAttribute("connect",this.graph.connectionHandler.isEnabled()?"1":"0"),e.setAttribute("fold",this.graph.foldingEnabled?"1":"0"),e.setAttribute("page",this.graph.pageVisible?"1":"0"),e.setAttribute("pageScale",this.graph.pageScale),e.setAttribute("pageWidth",this.graph.pageFormat.width),e.setAttribute("pageHeight",this.graph.pageFormat.height),this.graph.scrollbars||e.setAttribute("scrollbars","0"),null!=this.graph.background&&e.setAttribute("background",this.graph.background),e},Editor.prototype.updateGraphComponents=function(){var e=this.graph,n=this.outline;if(null!=e.container&&null!=n.outline.container){null!=e.background?"none"==e.background?e.container.style.backgroundColor="transparent":(null!=e.view.backgroundPageShape&&(e.view.backgroundPageShape.fill=e.background,e.view.backgroundPageShape.reconfigure()),e.container.style.backgroundColor=e.background):e.container.style.backgroundColor="",e.pageVisible?(e.container.style.backgroundColor="#ebebeb",e.container.style.borderStyle="solid",e.container.style.borderColor="#e5e5e5",e.container.style.borderTopWidth="1px",e.container.style.borderLeftWidth="1px",e.container.style.borderRightWidth="0px",e.container.style.borderBottomWidth="0px"):e.container.style.border="",n.outline.container.style.backgroundColor=e.container.style.backgroundColor,n.outline.pageVisible==e.pageVisible&&n.outline.pageScale==e.pageScale||(n.outline.pageScale=e.pageScale,n.outline.pageVisible=e.pageVisible,n.outline.view.validate()),e.scrollbars&&"hidden"==e.container.style.overflow&&!touchStyle?e.container.style.overflow="auto":e.scrollbars&&!touchStyle||(e.container.style.overflow="hidden");var t=mxClient.IS_IE&&9<=document.documentMode?"url("+this.transparentImage+")":"none";e.container.style.backgroundImage=!e.pageVisible&&e.isGridEnabled()?"url("+this.gridImage+")":t,null!=e.view.backgroundPageShape&&(e.view.backgroundPageShape.node.style.backgroundImage=this.graph.isGridEnabled()?"url("+this.gridImage+")":"none")}},Editor.prototype.init=function(){mxClient.IS_IE6&&mxClient.link("stylesheet",CSS_PATH+"/grapheditor-ie6.css"),mxResources.loadDefaultBundle=!1,mxResources.add(RESOURCE_BASE),mxConstants.DEFAULT_HOTSPOT=.3;var e=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var t=e.apply(this,arguments);return t.intersects=mxUtils.bind(this,function(e,n){return!!this.isConnecting()||mxCellMarker.prototype.intersects.apply(t,arguments)}),t},mxConstants.SHADOWCOLOR="#d0d0d0",mxConstants.HANDLE_FILLCOLOR="#99ccff",mxConstants.HANDLE_STROKECOLOR="#0088cf",mxConstants.VERTEX_SELECTION_COLOR="#00a8ff",mxConstants.OUTLINE_COLOR="#00a8ff",mxConstants.OUTLINE_HANDLE_FILLCOLOR="#99ccff",mxConstants.OUTLINE_HANDLE_STROKECOLOR="#00a8ff",mxConstants.CONNECT_HANDLE_FILLCOLOR="#cee7ff",mxConstants.EDGE_SELECTION_COLOR="#00a8ff",mxConstants.DEFAULT_VALID_COLOR="#00a8ff",mxConstants.LABEL_HANDLE_FILLCOLOR="#cee7ff",mxConstants.GUIDE_COLOR="#0088cf",mxGraph.prototype.pageBreakColor="#c0c0c0",mxGraph.prototype.pageScale=1,mxRubberband.prototype.defaultOpacity=30,mxGraphView.prototype.createBackgroundPageShape=function(e){return new mxRectangleShape(e,this.graph.background||"white","#cacaca")},mxGraphView.prototype.getBackgroundPageBounds=function(){var e=this.getGraphBounds(),n=0<e.width?e.x/this.scale-this.translate.x:0,t=0<e.height?e.y/this.scale-this.translate.y:0,a=e.width/this.scale,i=e.height/this.scale,s=this.graph.pageFormat,o=this.graph.pageScale,r=s.width*o,l=s.height*o,d=Math.floor(Math.min(0,n)/r),c=Math.floor(Math.min(0,t)/l),m=Math.ceil(Math.max(1,n+a)/r)-d,u=Math.ceil(Math.max(1,t+i)/l)-c;return new mxRectangle(this.scale*(this.translate.x+d*r),this.scale*(this.translate.y+c*l),this.scale*m*r,this.scale*u*l)};var t=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(e,n){t.apply(this,arguments),this.dialect==mxConstants.DIALECT_SVG||null==this.view.backgroundPageShape||this.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.container)||(this.view.backgroundPageShape.node.style.marginLeft=e+"px",this.view.backgroundPageShape.node.style.marginTop=n+"px")};var a=this;mxGraphView.prototype.validateBackground=function(){var e=this.graph.getBackgroundImage();if(null!=e){if(null==this.backgroundImage||this.backgroundImage.image!=e.src){null!=this.backgroundImage&&this.backgroundImage.destroy();var n=new mxRectangle(0,0,1,1);this.backgroundImage=new mxImageShape(n,e.src),this.backgroundImage.dialect=this.graph.dialect,this.backgroundImage.init(this.backgroundPane),this.backgroundImage.redraw()}this.redrawBackgroundImage(this.backgroundImage,e)}else null!=this.backgroundImage&&(this.backgroundImage.destroy(),this.backgroundImage=null);if(this.graph.pageVisible){n=this.getBackgroundPageBounds();null==this.backgroundPageShape?(this.backgroundPageShape=this.createBackgroundPageShape(n),this.backgroundPageShape.scale=1,this.backgroundPageShape.isShadow=!0,this.backgroundPageShape.dialect=mxConstants.DIALECT_STRICTHTML,this.backgroundPageShape.init(this.graph.container),this.graph.container.firstChild.style.position="absolute",this.graph.container.insertBefore(this.backgroundPageShape.node,this.graph.container.firstChild),this.backgroundPageShape.redraw(),this.backgroundPageShape.node.className="geBackgroundPage",this.backgroundPageShape.node.style.backgroundPosition="-1px -1px",mxEvent.addListener(this.backgroundPageShape.node,"dblclick",mxUtils.bind(this,function(e){this.graph.dblClick(e)})),mxEvent.addGestureListeners(this.backgroundPageShape.node,mxUtils.bind(this,function(e){this.graph.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e))}),mxUtils.bind(this,function(e){null!=this.graph.tooltipHandler&&this.graph.tooltipHandler.isHideOnHover()&&this.graph.tooltipHandler.hide(),this.graph.isMouseDown&&!mxEvent.isConsumed(e)&&this.graph.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e))}),mxUtils.bind(this,function(e){this.graph.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e))}))):(this.backgroundPageShape.scale=1,this.backgroundPageShape.bounds=n,this.backgroundPageShape.redraw()),this.backgroundPageShape.node.style.backgroundImage=this.graph.isGridEnabled()?"url("+a.gridImage+")":"none"}else null!=this.backgroundPageShape&&(this.backgroundPageShape.destroy(),this.backgroundPageShape=null)},mxGraph.prototype.updatePageBreaks=function(e,n,t){var a=this.view.scale,i=this.view.translate,s=this.pageFormat,o=a*this.pageScale,r=this.view.getBackgroundPageBounds();n=r.width,t=r.height;var l=new mxRectangle(a*i.x,a*i.y,s.width*o,s.height*o),d=(e=e&&Math.min(l.width,l.height)>this.minPageBreakDist)?Math.ceil(n/l.width)-1:0,c=e?Math.ceil(t/l.height)-1:0,m=r.x+n,u=r.y+t;if(null==this.horizontalPageBreaks&&0<d&&(this.horizontalPageBreaks=[]),null!=this.horizontalPageBreaks){for(var p=0;p<=d;p++){var g=[new mxPoint(r.x+(p+1)*l.width,r.y),new mxPoint(r.x+(p+1)*l.width,u)];if(null!=this.horizontalPageBreaks[p])this.horizontalPageBreaks[p].scale=1,this.horizontalPageBreaks[p].points=g,this.horizontalPageBreaks[p].redraw();else(v=new mxPolyline(g,this.pageBreakColor,this.scale)).dialect=this.dialect,v.isDashed=this.pageBreakDashed,v.addPipe=!1,v.scale=a,v.init(this.view.backgroundPane),v.redraw(),this.horizontalPageBreaks[p]=v}for(p=d;p<this.horizontalPageBreaks.length;p++)this.horizontalPageBreaks[p].destroy();this.horizontalPageBreaks.splice(d,this.horizontalPageBreaks.length-d)}if(null==this.verticalPageBreaks&&0<c&&(this.verticalPageBreaks=[]),null!=this.verticalPageBreaks){for(p=0;p<=c;p++){var v;g=[new mxPoint(r.x,r.y+(p+1)*l.height),new mxPoint(m,r.y+(p+1)*l.height)];if(null!=this.verticalPageBreaks[p])this.verticalPageBreaks[p].scale=1,this.verticalPageBreaks[p].points=g,this.verticalPageBreaks[p].redraw();else(v=new mxPolyline(g,this.pageBreakColor,a)).dialect=this.dialect,v.isDashed=this.pageBreakDashed,v.addPipe=!1,v.scale=a,v.init(this.view.backgroundPane),v.redraw(),this.verticalPageBreaks[p]=v}for(p=c;p<this.verticalPageBreaks.length;p++)this.verticalPageBreaks[p].destroy();this.verticalPageBreaks.splice(c,this.verticalPageBreaks.length-c)}},mxEdgeHandler.prototype.snapToTerminals=!0,mxGraphHandler.prototype.guidesEnabled=!0;var s=mxGraphHandler.prototype.shouldRemoveCellsFromParent;mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(e,n,t){for(var a=0;a<n.length;a++)if(this.graph.getModel().isVertex(n[a])){var i=this.graph.getCellGeometry(n[a]);if(null!=i&&i.relative)return!1}return s.apply(this,arguments)},mxGuide.prototype.isEnabledForEvent=function(e){return!mxEvent.isAltDown(e)};var r=mxPopupMenu.prototype.addItem;mxPopupMenu.prototype.addItem=function(e,n,t,a,i,s){var o=r.apply(this,arguments);return null==s||s||mxEvent.addListener(o,"mousedown",function(e){mxEvent.consume(e)}),o};var o=mxGraphHandler.prototype.getInitialCellForEvent;mxGraphHandler.prototype.getInitialCellForEvent=function(e){var n=this.graph.getModel(),t=n.getParent(this.graph.getSelectionCell()),a=o.apply(this,arguments),i=n.getParent(a);if(null==t||t!=a&&t!=i)for(;!this.graph.isCellSelected(a)&&!this.graph.isCellSelected(i)&&n.isVertex(i)&&!this.graph.isValidRoot(i);)a=i,i=this.graph.getModel().getParent(a);return a};var l=mxGraphHandler.prototype.isDelayedSelection;mxGraphHandler.prototype.isDelayedSelection=function(e){var n=l.apply(this,arguments),t=this.graph.getModel(),a=t.getParent(this.graph.getSelectionCell()),i=t.getParent(e);return(null==a||a!=e&&a!=i)&&(this.graph.isCellSelected(e)||!t.isVertex(i)||this.graph.isValidRoot(i)||(n=!0)),n},mxGraphHandler.prototype.selectDelayed=function(e){var n=e.getCell();null==n&&(n=this.cell);for(var t=this.graph.getModel(),a=t.getParent(n);this.graph.isCellSelected(n)&&t.isVertex(a)&&!this.graph.isValidRoot(a);)n=a,a=t.getParent(n);this.graph.selectCellForEvent(n,e.getEvent())},mxPanningHandler.prototype.getCellForPopupEvent=function(e){for(var n=e.getCell(),t=this.graph.getModel(),a=t.getParent(n);t.isVertex(a)&&!this.graph.isValidRoot(a);)this.graph.isCellSelected(a)&&(n=a),a=t.getParent(a);return n}},Editor.prototype.createUndoManager=function(){var s=this.graph,t=new mxUndoManager,e=function(e,n){t.undoableEditHappened(n.getProperty("edit"))};s.getModel().addListener(mxEvent.UNDO,e),s.getView().addListener(mxEvent.UNDO,e);var n=function(e,n){for(var t=s.getSelectionCellsForChanges(n.getProperty("edit").changes),a=[],i=1;i<t.length;i++)null!=s.view.getState(t[i])&&a.push(t[i]);s.setSelectionCells(a)};return t.addListener(mxEvent.UNDO,n),t.addListener(mxEvent.REDO,n),t},Editor.prototype.initStencilRegistry=function(){mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/general.xml")},mxStencilRegistry.libraries={},mxStencilRegistry.packages=[],mxStencilRegistry.getStencil=function(e){var n=mxStencilRegistry.stencils[e];if(null==n){var t=mxStencilRegistry.getBasenameForStencil(e);if(null!=t){var a=mxStencilRegistry.libraries[t];if(null!=a){if(null==mxStencilRegistry.packages[t]){mxStencilRegistry.packages[t]=1;for(var i=0;i<a.length;i++){var s=a[i];if(".xml"==s.toLowerCase().substring(s.length-4,s.length))mxStencilRegistry.loadStencilSet(s,null);else if(".js"==s.toLowerCase().substring(s.length-3,s.length)){var o=mxUtils.load(s);null!=o&&eval.call(window,o.getText())}}}}else mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/"+t+".xml",null);n=mxStencilRegistry.stencils[e]}}return n},mxStencilRegistry.getBasenameForStencil=function(e){var n=e.split("."),t=null;if(0<n.length&&"mxgraph"==n[0]){t=n[1];for(var a=2;a<n.length-1;a++)t+="/"+n[a]}return t},mxStencilRegistry.loadStencilSet=function(e,n,t){t=null!=t&&t;var a=mxStencilRegistry.packages[e];if(t||null==a){var i=!1;null==a&&(a=mxUtils.load(e).getXml(),mxStencilRegistry.packages[e]=a,i=!0),mxStencilRegistry.parseStencilSet(a,n,i)}},mxStencilRegistry.parseStencilSet=function(e,n,t){t=null==t||t;var a=e.documentElement,i=a.firstChild,s="",o=a.getAttribute("name");for(null!=o&&(s=o+".");null!=i;){if(i.nodeType==mxConstants.NODETYPE_ELEMENT&&null!=(o=i.getAttribute("name"))){s=s.toLowerCase();var r=o.replace(/ /g,"_");if(t&&mxStencilRegistry.addStencil(s+r.toLowerCase(),new mxStencil(i)),null!=n){var l=i.getAttribute("w"),d=i.getAttribute("h");n(s,r,o,l=null==l?80:parseInt(l,10),d=null==d?80:parseInt(d,10))}}i=i.nextSibling}},OpenFile=function(e){this.producer=null,this.consumer=null,this.done=e},OpenFile.prototype.setConsumer=function(e){this.consumer=e,this.execute()},OpenFile.prototype.setData=function(e,n){this.data=e,this.filename=n,this.execute()},OpenFile.prototype.error=function(e){this.cancel(),mxUtils.alert(e)},OpenFile.prototype.execute=function(){null!=this.consumer&&null!=this.data&&(this.consumer(this.data,this.filename),this.cancel())},OpenFile.prototype.cancel=function(){null!=this.done&&this.done()},Sidebar.prototype.init=function(){var e=STENCIL_PATH;this.addSearchPalette(!0),this.addImagePalette("entry",mxResources.get("entry"),e+"/entry/","_128x128.png",["start","finally","end"],[mxResources.get("start"),mxResources.get("finally"),mxResources.get("end")]),this.addImagePalette("call_management",mxResources.get("call_management"),e+"/call_management/","_128x128.png",["answer","hangup","dial","ext_dial","queue","voicemail","callback"],[mxResources.get("answer"),mxResources.get("hangup"),mxResources.get("dial"),mxResources.get("ext_dial"),mxResources.get("queue"),mxResources.get("voicemail"),mxResources.get("callback")]),this.addImagePalette("agent_management",mxResources.get("agent_management"),e+"/agent_management/","_128x128.png",["login","pause","unpause","logout"],[mxResources.get("login"),mxResources.get("pause"),mxResources.get("unpause"),mxResources.get("logout")]),this.addImagePalette("variable",mxResources.get("variable"),e+"/variable/","_128x128.png",["set","math"],[mxResources.get("set"),mxResources.get("math")]),this.addImagePalette("playback",mxResources.get("playback"),e+"/playback/","_128x128.png",["playback","menu","saydigits","saynumber","sayphonetic","getdigits","getsecretdigits"],[mxResources.get("playback"),mxResources.get("menu"),mxResources.get("saydigits"),mxResources.get("saynumber"),mxResources.get("sayphonetic"),mxResources.get("getdigits"),mxResources.get("getsecretdigits")]),this.addImagePalette("recording",mxResources.get("recording"),e+"/recording/","_128x128.png",["record"],[mxResources.get("record")]),this.addImagePalette("tts","TTS",e+"/tts/","_128x128.png",["google_cloud_tts","tts","ispeechtts","awspolly","lumenvoxtts","sestektts","mrcpsynth"],["Google Cloud TTS","GoogleTTS","ISpeechTTS","AWSPolly","LumenvoxTTS","SestekTTS","MRCPSynth"]),this.addImagePalette("asr","ASR",e+"/asr/","_128x128.png",["googleasr","ispeechasr","lumenvoxasr","tildeasr","sestekasr","mrcprecog"],["GoogleASR","ISpeechASR","LumenvoxASR","TildeASR","SestekASR","MRCPRecog"]),this.addImagePalette("integrationServer",mxResources.get("integrationServer"),e+"/integration_server/","_128x128.png",["database","sendMail","sendSMS","dialogflow","dialogflowV2","awslex","sesteknda","restapi"],[mxResources.get("database"),mxResources.get("sendMail"),mxResources.get("sendSMS"),"Dialogflow","DialogflowV2","AWSLex","SestekNDA","RestAPI"]),this.addImagePalette("callflow",mxResources.get("callflow"),e+"/callflow/","_128x128.png",["gotoc","gotoif","gotoiftime","vswitch"],[mxResources.get("gotoc"),mxResources.get("gotoif"),mxResources.get("gotoiftime"),mxResources.get("vswitch")]),this.addImagePalette("stats",mxResources.get("stats"),e+"/stats/","_128x128.png",["goal"],[mxResources.get("goal")]),this.addImagePalette("general",mxResources.get("general"),e+"/general/","_128x128.png",["noop","system","agi","subproject","custom_app"],[mxResources.get("noop"),mxResources.get("system"),mxResources.get("agi"),mxResources.get("subproject"),mxResources.get("custom_app")])},Sidebar.prototype.collapsedImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhDQANAIABAJmZmf///yH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozNUQyRTJFNjZGNUYxMUU1QjZEOThCNDYxMDQ2MzNCQiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozNUQyRTJFNzZGNUYxMUU1QjZEOThCNDYxMDQ2MzNCQiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjFERjc3MEUxNkY1RjExRTVCNkQ5OEI0NjEwNDYzM0JCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjFERjc3MEUyNkY1RjExRTVCNkQ5OEI0NjEwNDYzM0JCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEAQAAAQAsAAAAAA0ADQAAAhSMj6lrwAjcC1GyahV+dcZJgeIIFgA7":IMAGE_PATH+"/collapsed.gif",Sidebar.prototype.expandedImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhDQANAIABAJmZmf///yH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxREY3NzBERjZGNUYxMUU1QjZEOThCNDYxMDQ2MzNCQiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxREY3NzBFMDZGNUYxMUU1QjZEOThCNDYxMDQ2MzNCQiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjFERjc3MERENkY1RjExRTVCNkQ5OEI0NjEwNDYzM0JCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjFERjc3MERFNkY1RjExRTVCNkQ5OEI0NjEwNDYzM0JCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEAQAAAQAsAAAAAA0ADQAAAhGMj6nL3QAjVHIu6azbvPtWAAA7":IMAGE_PATH+"/expanded.gif",Sidebar.prototype.tooltipImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAbCAMAAAB7jU7LAAAACVBMVEX///+ZmZn///9Y2COLAAAAA3RSTlP//wDXyg1BAAAAOElEQVR42mXQMQ4AMAgDsWv//+iutcJmIQSk+9dJpVKpVCqVSqVSqZTdncWzF8/NeP7FkxWenPEDOnUBiL3jWx0AAAAASUVORK5CYII=":IMAGE_PATH+"/tooltip.png",Sidebar.prototype.searchImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAEaSURBVHjabNGxS5VxFIfxz71XaWuQUJCG/gCHhgTD9VpEETg4aMOlQRp0EoezObgcd220KQiXmpretTAHQRBdojlQEJyukPdt+b1ywfvAGc7wnHP4nlZd1yKijQW8xzNc4Su+ZOYfQ3T6/f4YNvEJYzjELXp4VVXVz263+7cR2niBxAFeZ2YPi3iHR/gYERPDwhpOsd6sz8x/mfkNG3iOlWFhFj8y89J9KvzGXER0GuEaD42mgwHqUtoljbcRsTBCeINpfM/MgZLKPpaxFxGbOCqDXmILN7hoJrTKH+axhxmcYRxP0MIDnOBDZv5q1XUNIuJxifJp+UNV7t7BFM6xeic0RMQ4Bpl5W/ol7GISx/eEUUTECrbx+f8A8xhiZht9zsgAAAAASUVORK5CYII=":IMAGE_PATH+"/search.png",Sidebar.prototype.enableTooltips=!0,Sidebar.prototype.tooltipBorder=16,Sidebar.prototype.tooltipDelay=300,Sidebar.prototype.dropTargetDelay=200,Sidebar.prototype.thumbWidth=36,Sidebar.prototype.thumbHeight=36,Sidebar.prototype.thumbPadding=5<=document.documentMode?0:1,Sidebar.prototype.thumbBorder=2,Sidebar.prototype.sidebarTitleSize=9,Sidebar.prototype.sidebarTitles=!1,Sidebar.prototype.tooltipTitles=!0,Sidebar.prototype.maxTooltipWidth=400,Sidebar.prototype.maxTooltipHeight=400,Sidebar.prototype.addStencilsToIndex=!0,Sidebar.prototype.defaultImageWidth=80,Sidebar.prototype.defaultImageHeight=80,Sidebar.prototype.getOffset=function(e){return{left:(e=e.getBoundingClientRect()).left+window.scrollX,top:e.top+window.scrollY}},Sidebar.prototype.showTooltip=function(c,m,u,p,g,v){if(this.enableTooltips&&this.showTooltips&&this.currentElt!=c){null!=this.thread&&(window.clearTimeout(this.thread),this.thread=null);var e=mxUtils.bind(this,function(){null==this.tooltip&&(this.tooltip=document.createElement("div"),this.tooltip.className="geSidebarTooltip",this.tooltip.style.zIndex=mxPopupMenu.prototype.zIndex-1,document.body.appendChild(this.tooltip),this.graph2=new Graph(this.tooltip,null,null,this.editorUi.editor.graph.getStylesheet()),this.graph2.resetViewOnRootChange=!1,this.graph2.foldingEnabled=!1,this.graph2.gridEnabled=!1,this.graph2.autoScroll=!1,this.graph2.setTooltips(!1),this.graph2.setConnectable(!1),this.graph2.setEnabled(!1),mxClient.IS_SVG||(this.graph2.view.canvas.style.position="relative"),this.tooltipImage=mxUtils.createImage(this.tooltipImage),this.tooltipImage.className="geSidebarTooltipImage",this.tooltipImage.style.zIndex=mxPopupMenu.prototype.zIndex-1,this.tooltipImage.style.position="absolute",this.tooltipImage.style.width="14px",this.tooltipImage.style.height="27px",document.body.appendChild(this.tooltipImage)),this.graph2.model.clear(),this.graph2.view.setTranslate(this.tooltipBorder,this.tooltipBorder),u>this.maxTooltipWidth||p>this.maxTooltipHeight?this.graph2.view.scale=Math.round(100*Math.min(this.maxTooltipWidth/u,this.maxTooltipHeight/p))/100:this.graph2.view.scale=1,this.tooltip.style.display="block",this.graph2.labelsVisible=null==v||v,this.graph2.addCells(m);var e=this.graph2.getGraphBounds(),n=e.width+2*this.tooltipBorder+4,t=e.height+2*this.tooltipBorder;if(mxClient.IS_QUIRKS?(t+=4,this.tooltip.style.overflow="hidden"):this.tooltip.style.overflow="visible",this.tooltipImage.style.visibility="visible",this.tooltip.style.width=n+"px",this.tooltipTitles&&null!=g&&0<g.length){null==this.tooltipTitle?(this.tooltipTitle=document.createElement("div"),this.tooltipTitle.style.borderTop="1px solid gray",this.tooltipTitle.style.textAlign="center",this.tooltipTitle.style.width="100%",this.tooltipTitle.style.overflow="hidden",mxClient.IS_SVG||(this.tooltipTitle.style.position="absolute"),this.tooltipTitle.style.paddingTop="6px",this.tooltip.appendChild(this.tooltipTitle)):this.tooltipTitle.innerHTML="",this.tooltipTitle.style.display="",mxUtils.write(this.tooltipTitle,g);var a=this.tooltipTitle.offsetHeight+10;t+=a,mxClient.IS_SVG?this.tooltipTitle.style.marginTop=2-a+"px":(t-=6,this.tooltipTitle.style.top=t-a+"px")}else null!=this.tooltipTitle&&null!=this.tooltipTitle.parentNode&&(this.tooltipTitle.style.display="none");this.tooltip.style.height=t+"px";var i=-Math.round(e.x-this.tooltipBorder),s=-Math.round(e.y-this.tooltipBorder),o=document.body,r=document.documentElement,l=(o.clientHeight||r.clientHeight,document.getElementById("vertical-navigation").offsetWidth+this.container.clientWidth),d=Math.max(0,this.getOffset(c).top-this.container.scrollTop-t/2+16);mxClient.IS_SVG?0!=i||0!=s?this.graph2.view.canvas.setAttribute("transform","translate("+i+","+s+")"):this.graph2.view.canvas.removeAttribute("transform"):(this.graph2.view.drawPane.style.left=i+"px",this.graph2.view.drawPane.style.top=s+"px"),this.tooltip.style.position="absolute",this.tooltip.style.left=l+"px",this.tooltip.style.top=d+"px",this.tooltipImage.style.left=l-13+"px",this.tooltipImage.style.top=d+t/2-13+"px"});null!=this.tooltip&&"none"!=this.tooltip.style.display?e():this.thread=window.setTimeout(e,this.tooltipDelay),this.currentElt=c}},Sidebar.prototype.hideTooltip=function(){null!=this.thread&&(window.clearTimeout(this.thread),this.thread=null),null!=this.tooltip&&(this.tooltip.style.display="none",this.tooltipImage.style.visibility="hidden",this.currentElt=null)},Sidebar.prototype.addEntry=function(e,n){if(null!=this.taglist&&null!=e&&0<e.length)for(var t=e.toLowerCase().replace(/[\/\,\(\)]/g," ").split(" "),a=0;a<t.length;a++)if(t[a]=t[a].replace(/\.*\d*$/,""),1<t[a].length){var i=this.taglist[t[a]];null==i&&(i={entries:[],dict:new mxDictionary},this.taglist[t[a]]=i),null==i.dict.get(n)&&(i.dict.put(n,n),i.entries.push(n))}return n},Sidebar.prototype.searchEntries=function(e,n,t,a,i){if(null!=this.taglist&&null!=e){for(var s=e.toLowerCase().split(" "),o=new mxDictionary,r=(t+1)*n,l=[],d=0,c=0;c<s.length;c++)if(0<s[c].length){var m=this.taglist[s[c]],u=new mxDictionary;if(null!=m){var p=m.entries;l=[];for(var g=0;g<p.length;g++){m=p[g];if(0==d==(null==o.get(m))&&(u.put(m,m),l.push(m),c==s.length-1&&l.length==r))return void a(l.slice(t*n,r),r,!0)}}else l=[];o=u,d++}var v=l.length;a(l.slice(t*n,(t+1)*n),v,!1)}else a([])},Sidebar.prototype.filterTags=function(e){if(null==e)return null;for(var n=e.split(" "),t=[],a={},i=0;i<n.length;i++)null==a[n[i]]&&(a[n[i]]="1",t.push(n[i]));return t.join(" ")},Sidebar.prototype.cloneCell=function(e,n){var t=e.clone();return null!=n&&(t.value=n),t},Sidebar.prototype.addSearchPalette=function(e){var n=document.createElement("div");n.style.visibility="hidden",this.container.appendChild(n);var r=document.createElement("div");r.className="geSidebar",r.style.boxSizing="border-box",r.style.overflow="hidden",r.style.width="100%",r.style.padding="8px",r.style.paddingTop="14px",r.style.paddingBottom="0px",e||(r.style.display="none");var t=document.createElement("div");t.style.whiteSpace="nowrap",t.style.textOverflow="clip",t.style.paddingBottom="8px",t.style.cursor="default";var a=document.createElement("input");a.setAttribute("placeholder",mxResources.get("searchShapes")),a.setAttribute("type","text"),a.style.fontSize="12px",a.style.overflow="hidden",a.style.boxSizing="border-box",a.style.border="solid 1px #d5d5d5",a.style.borderRadius="4px",a.style.width="100%",a.style.outline="none",a.style.padding="6px",t.appendChild(a);var i,s=document.createElement("img");s.setAttribute("src",Sidebar.prototype.searchImage),s.setAttribute("title",mxResources.get("search")),s.style.position="relative",s.style.left="-18px",mxClient.IS_QUIRKS?(a.style.height="28px",s.style.top="-4px"):s.style.top="2px",s.style.background="url('"+this.editorUi.editor.transparentImage+"')",t.appendChild(s),r.appendChild(t);var l=document.createElement("center"),d=mxUtils.button(mxResources.get("moreResults"),function(){i()});d.style.display="none",d.style.lineHeight="normal",d.style.marginTop="4px",d.style.marginBottom="8px",l.style.paddingTop="4px",l.style.paddingBottom="8px",l.appendChild(d),r.appendChild(l);var c="",m=!1,u=!1,p=0,g=new Object,v=12,h=mxUtils.bind(this,function(){m=!1,this.currentSearch=null;for(var e=r.firstChild;null!=e;){var n=e.nextSibling;e!=t&&e!=l&&e.parentNode.removeChild(e),e=n}});i=mxUtils.bind(this,function(){if(v=4*Math.max(1,Math.floor(this.container.clientWidth/(this.thumbWidth+10))),this.hideTooltip(),""!=a.value){if(null!=l.parentNode&&(c!=a.value&&(h(),c=a.value,g=new Object,u=!1,p=0),!m&&!u)){d.setAttribute("disabled","true"),d.style.display="",d.style.cursor="wait",d.innerHTML=mxResources.get("loading")+"...",m=!0;var o=new Object;this.currentSearch=o,this.searchEntries(c,v,p,mxUtils.bind(this,function(e,n,t){if(this.currentSearch==o){e=null!=e?e:[],m=!1,p++,l.parentNode.removeChild(l);for(var a=0;a<e.length;a++){var i=e[a]();null==g[i.innerHTML]&&(g[i.innerHTML]="1",r.appendChild(e[a]()))}if(t?(d.removeAttribute("disabled"),d.innerHTML=mxResources.get("moreResults")):(d.innerHTML=mxResources.get("reset"),d.style.display="none",u=!0),d.style.cursor="",0==e.length&&1==p){var s=document.createElement("div");s.className="geTitle",s.style.backgroundColor="transparent",s.style.borderColor="transparent",s.style.color="gray",s.style.padding="0px",s.style.margin="0px 8px 0px 8px",s.style.paddingTop="6px",s.style.textAlign="center",s.style.cursor="default",mxUtils.write(s,mxResources.get("noResultsFor",[c])),r.appendChild(s)}r.appendChild(l)}}),mxUtils.bind(this,function(){d.style.cursor=""}))}}else h(),a.value="",c="",g=new Object,d.style.display="none",u=!1,a.focus()}),mxEvent.addListener(a,"keydown",mxUtils.bind(this,function(e){13==e.keyCode&&i()})),mxEvent.addListener(a,"focus",function(){a.style.paddingRight="",s.style.display="none"}),mxEvent.addListener(a,"blur",function(){a.style.paddingRight="20px",s.style.display=""}),a.style.paddingRight="20px",mxEvent.addListener(a,"keyup",mxUtils.bind(this,function(e){""==a.value?(u=!0,d.style.display="none"):a.value!=c?(d.style.display="none",u=!1):m||(d.style.display=u?"none":"")})),mxEvent.addListener(a,"mousedown",function(e){e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0}),mxEvent.addListener(a,"selectstart",function(e){e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0});var o=document.createElement("div");o.appendChild(r),this.container.appendChild(o),this.palettes.search=[n,o]},Sidebar.prototype.createTitle=function(e){var n=document.createElement("a");return n.setAttribute("href","javascript:void(0);"),n.setAttribute("title",mxResources.get("sidebarTooltip")),n.className="geTitle",mxUtils.write(n,e),n},Sidebar.prototype.createThumb=function(e,n,t,a,i,s,o,r,l){this.graph.labelsVisible=null==s||s;var d=mxClient.NO_FO;mxClient.NO_FO=Editor.prototype.originalNoForeignObject,this.graph.view.scaleAndTranslate(1,0,0),this.graph.addCells(e);var c=this.graph.getGraphBounds(),m=Math.floor(100*Math.min((n-2*this.thumbBorder)/c.width,(t-2*this.thumbBorder)/c.height))/100;this.graph.view.scaleAndTranslate(m,Math.floor((n-c.width*m)/2/m-c.x),Math.floor((t-c.height*m)/2/m-c.y));var u=null;if(this.graph.dialect!=mxConstants.DIALECT_SVG||mxClient.NO_FO?(u=this.graph.container.cloneNode(!1)).innerHTML=this.graph.container.innerHTML:u=this.graph.view.getCanvas().ownerSVGElement.cloneNode(!0),this.graph.getModel().clear(),mxClient.NO_FO=d,mxClient.IS_IE6&&(a.style.backgroundImage="url("+this.editorUi.editor.transparentImage+")"),u.style.position="relative",u.style.overflow="hidden",u.style.cursor="move",u.style.left=this.thumbBorder+"px",u.style.top=this.thumbBorder+"px",u.style.width=n+"px",u.style.height=t+"px",u.style.visibility="",u.style.minWidth="",u.style.minHeight="",a.appendChild(u),this.sidebarTitles&&null!=i&&0!=o){var p=mxClient.IS_QUIRKS?2*this.thumbPadding+2:0;a.style.height=this.thumbHeight+p+this.sidebarTitleSize+8+"px";var g=document.createElement("div");g.style.fontSize=this.sidebarTitleSize+"px",g.style.color="#303030",g.style.textAlign="center",g.style.whiteSpace="nowrap",mxClient.IS_IE&&(g.style.height=this.sidebarTitleSize+12+"px"),g.style.paddingTop="4px",mxUtils.write(g,i),a.appendChild(g)}return c},Sidebar.prototype.createItem=function(n,t,a,e,i,s,o){var r=document.createElement("a");r.setAttribute("href","javascript:void(0);"),r.className="geItem",r.style.overflow="hidden";var l=mxClient.IS_QUIRKS?8+2*this.thumbPadding:2*this.thumbBorder;r.style.width=this.thumbWidth+l+"px",r.style.height=this.thumbHeight+l+"px",r.style.padding=this.thumbPadding+"px",mxEvent.addListener(r,"click",function(e){mxEvent.consume(e)}),this.createThumb(n,this.thumbWidth,this.thumbHeight,r,t,a,e,i,s);var d=new mxRectangle(0,0,i,s);if(1<n.length||n[0].vertex){var c=this.createDragSource(r,this.createDropHandler(n,!0,o,d),this.createDragPreview(i,s),n,d);this.addClickHandler(r,c,n),c.isGuidesEnabled=mxUtils.bind(this,function(){return this.editorUi.editor.graph.graphHandler.guidesEnabled})}else if(null!=n[0]&&n[0].edge){c=this.createDragSource(r,this.createDropHandler(n,!1,o,d),this.createDragPreview(i,s),n,d);this.addClickHandler(r,c,n)}return mxClient.IS_IOS||mxEvent.addGestureListeners(r,null,mxUtils.bind(this,function(e){this.showTooltip(r,n,d.width,d.height,t,a)})),r},Sidebar.prototype.createDropHandler=function(g,v,h,f){return h=null==h||h,mxUtils.bind(this,function(e,n,t,a,i){if(e.isEnabled()){if(0<(g=e.getImportableCells(g)).length){e.stopEditing();var s=null!=t&&e.isValidDropTarget(t,g,n),o=null;if(null==t||s||(t=null),!e.isCellLocked(t||e.getDefaultParent())){e.model.beginUpdate();try{if(a=Math.round(a),i=Math.round(i),v&&e.isSplitTarget(t,g,n)){var r=e.cloneCells(g);e.splitEdge(t,r,null,a-f.width/2,i-f.height/2),o=r}else 0<g.length&&(o=e.importCells(g,a,i,t));if(null!=e.layoutManager){var l=e.layoutManager.getLayout(t);if(null!=l)for(var d=e.view.scale,c=e.view.translate,m=(a+c.x)*d,u=(i+c.y)*d,p=0;p<o.length;p++)l.moveCell(o[p],m,u)}h&&e.fireEvent(new mxEventObject("cellsInserted","cells",o))}finally{e.model.endUpdate()}null!=o&&0<o.length&&(e.scrollCellToVisible(o[0]),e.setSelectionCells(o))}}mxEvent.consume(n)}})},Sidebar.prototype.createDragPreview=function(e,n){var t=document.createElement("div");return t.style.border="1px dashed black",t.style.width=e+"px",t.style.height=n+"px",t},Sidebar.prototype.createDragSource=function(e,n,t){var a=mxUtils.makeDraggable(e,this.editorUi.editor.graph,n,t,0,0,this.editorUi.editor.graph.autoscroll,!0,!0);return a.getDropTarget=function(e,n,t){var a=mxDragSource.prototype.getDropTarget.apply(this,arguments);return e.isValidRoot(a)||(a=null),a},a},Sidebar.prototype.addClickHandler=function(e,a){var i=this.editorUi.editor.graph,s=null;mxEvent.addGestureListeners(e,function(e){s=new mxPoint(mxEvent.getClientX(e),mxEvent.getClientY(e))});var o=a.mouseUp;a.mouseUp=function(e){if(!mxEvent.isPopupTrigger(e)&&null==this.currentGraph&&null!=s){var n=i.tolerance;if(Math.abs(s.x-mxEvent.getClientX(e))<=n&&Math.abs(s.y-mxEvent.getClientY(e))<=n){var t=i.getGridSize();a.drop(i,e,null,t,t)}}o.apply(this,arguments),s=null}},Sidebar.prototype.createVertexTemplateEntry=function(e,n,t,a,i,s,o,r){return r=null!=r&&0<r.length?r:i.toLowerCase(),this.addEntry(r,mxUtils.bind(this,function(){return this.createVertexTemplate(e,n,t,a,i,s,o)}))},Sidebar.prototype.createXmlDocument=function(e,n,t,a){var i=mxUtils.createXmlDocument().createElement(e);return i.setAttribute("label",n),t.forEach(function(e,n){i.setAttribute(e,a[n]?a[n]:"")}),i},Sidebar.prototype.createVertexTemplate=function(e,n,t,a,i,s,o,r){var l=[],d=[];switch(a){case"answer":l=["timeout"],d=["0"];break;case"start":l=["answer"],d=["yes"];break;case"googleasr":l=["key","google_asr_language","timeout","intKey","beep"],d=["","it-IT","10","#","BEEP"];break;case"tildeasr":l=["uri","appid","appsecret","timeout","intKey","beep"],d=["wss://runa.tilde.lv/client/ws/speech/LVASR-ONLINE","","","10","#","BEEP"];break;case"ispeechasr":l=["key","model","ispeech_asr_language","timeout","intKey","beep"],d=["","","it-IT","10","#","BEEP"];break;case"playback":l=["file_id","opts"],d=["0"];break;case"background":l=["file_id","response","digit"],d=["0","5","1"];break;case"menu":l=["file_id","response","digit","retry","variable_id"],d=["0","5","1","1","0"];break;case"getdigits":l=["file_id","response","mindigit","maxdigit","retry","variable_id"],d=["0","5","1","10","1","0"];break;case"getsecretdigits":l=["file_id","response","mindigit","maxdigit","retry","hiddendigitsnum","hiddendigitspos","variable_id"],d=["0","5","1","10","1","0","first","0"];break;case"custom_app":l=["application","options"],d=["",""];break;case"set":l=["variable_id","variable_value"],d=["0",""];break;case"database":l=["odbc_id","query","variable_id"],d=["0","",""];break;case"noop":l=["output"],d=[];break;case"gotoc":l=["context","extension","priority"],d=["","","1"];break;case"system":l=["variable_id","command"],d=[];break;case"agi":l=["command","args"],d=[];break;case"gotoif":l=["condition"],d=[];break;case"gotoiftime":l=["interval_id"],d=["0"];break;case"vswitch":l=["variable_id"],d=["0"];break;case"saydigits":l=["digits","escape_digits"],d=["","#"];break;case"saynumber":l=["number","escape_digits"],d=["","#"];break;case"sayphonetic":l=["text","escape_digits"],d=["","#"];break;case"record":l=["file","recordingFormat","timeout","escape_digits"],d=["","wav","-1","#"];break;case"dial":l=["sip_id","timeout","opts","url"],d=["0","60"];break;case"ext_dial":l=["phone","trunk_name","timeout","opts","url"],d=["","-1","60"];break;case"google_cloud_tts":l=["apiKey","google_cloud_tts_text_type","text","languageCode","ssmlGender"],d=["","text","","en-US","FEMALE"];break;case"tts":l=["text","google_tts_language"],d=["","it"];break;case"ispeechtts":l=["text","key","ispeech_tts_language","speed","intKey"],d=["","","euritalianfemale","0","#"];break;case"lumenvoxtts":case"sestektts":l=["text","options"],d=["",""];break;case"lumenvoxasr":l=["grammar","options"],d=["",""];break;case"sestekasr":l=["grammar","options"],d=["/usr/local/unimrcp/data/grammar.xml",""];break;case"awspolly":l=["aws_access_key_id","aws_secret_access_key","aws_polly_region","aws_polly_voice","text","aws_text_type"],d=["","","eu-west-1","Amy","","text"];break;case"awslex":l=["aws_access_key_id","aws_secret_access_key","aws_lex_region","aws_bot_name","text"],d=["","","eu-west-1","",""];break;case"queue":l=["queue_id","opts","url","file_id","timeout","agi","macro","gosub","position"],d=["-1","xX","","","300"];break;case"voicemail":l=["mailbox","options"],d=["",""];break;case"subproject":l=["project_id"],d=["0"];break;case"math":l=["operation","variable_id"],d=["","0"];break;case"queuelog":l=["queuename","agent","queue_event","data1","data2","data3","data4","data5"],d=[];break;case"goal":l=["goalname"],d=[];break;case"callback":l=["name","lastName","phone","list_id","delay","callback_priority"],d=["{CALLERID(name)}","","{CALLERID(num)}","-1","5","2"];break;case"sendSMS":l=["sms_account_id","to","sms_text"],d=["0"];break;case"sendMail":l=["account_id","to","cc","bcc","subject","text"],d=["0"];break;case"sendFax":l=["account_id","to","choose_attachment","attachment_name","attachment_type","attachment_path"],d=["0"];break;case"login":case"unpause":case"logout":l=["findBy"],d=["internal"];break;case"pause":l=["findBy","pause_id"],d=["internal",""];break;case"dialogflow":l=["key","text","dialogflow_language"],d=["","","it"];break;case"sesteknda":l=["ndauth_url","username","password","ndassistant_url","text","project","ndagenerate_audio","custom_action","custom_action_data","ndaactivity_type"],d=["","","","","","",1,"","","message"];break;case"restapi":l=["url","method","timeout","computedVariables","rawHeaders","rawBody","variable_id"],d=["","GET","5","","","",""];break;case"mrcpsynth":l=["text","options"],d=["",""];break;case"mrcprecog":l=["grammar","options"],d=["",""];break;case"dialogflowV2":l=["dialogflowV2_project_id","client_email","private_key","dialogflowV2_language","text"],d=["","","","en",""];break;default:l=[],d=[]}var c=[new mxCell(this.createXmlDocument(a,i,l,d),new mxGeometry(0,0,n,t),e)];return c[0].vertex=!0,this.createVertexTemplateFromCells(c,n,t,i,s,o,r)},Sidebar.prototype.createVertexTemplateFromCells=function(e,n,t,a,i,s,o){return this.createItem(e,a,i,s,n,t,o)},Sidebar.prototype.createEdgeTemplate=function(e,n,t,a,i,s,o){var r=new mxCell(null!=a?a:"",new mxGeometry(0,0,n,t),e);return r.geometry.setTerminalPoint(new mxPoint(0,t),!0),r.geometry.setTerminalPoint(new mxPoint(n,0),!1),r.geometry.relative=!0,r.edge=!0,this.createEdgeTemplateFromCells([r],n,t,i,s,o)},Sidebar.prototype.createEdgeTemplateFromCells=function(e,n,t,a,i,s){return this.createItem(e,a,i,!0,n,t,s)},Sidebar.prototype.addPaletteFunctions=function(e,n,t,a){this.addPalette(e,n,t,mxUtils.bind(this,function(e){for(var n=0;n<a.length;n++)e.appendChild(a[n](e))}))},Sidebar.prototype.addPalette=function(e,n,t,a){var i=this.createTitle(n);this.container.appendChild(i);var s=document.createElement("div");s.className="geSidebar",mxClient.IS_POINTER&&(s.style.touchAction="none"),mxEvent.addListener(s,"mousemove",mxUtils.bind(this,function(e){mxEvent.getSource(e)==s?s.setAttribute("title",mxResources.get("sidebarTooltip")):s.removeAttribute("title")})),t?(a(s),a=null):s.style.display="none",this.addFoldingHandler(i,s,a);var o=document.createElement("div");return o.appendChild(s),this.container.appendChild(o),null!=e&&(this.palettes[e]=[i,o]),s},Sidebar.prototype.addFoldingHandler=function(t,a,i){var s=!1;(!mxClient.IS_IE||8<=document.documentMode)&&(t.style.backgroundImage="none"==a.style.display?"url('"+this.collapsedImage+"')":"url('"+this.expandedImage+"')"),t.style.backgroundRepeat="no-repeat",t.style.backgroundPosition="0% 50%",mxEvent.addListener(t,"click",mxUtils.bind(this,function(e){if("none"==a.style.display){if(s)a.style.display="block";else if(s=!0,null!=i){t.style.cursor="wait";var n=t.innerHTML;t.innerHTML=mxResources.get("loading")+"...",window.setTimeout(function(){var e=mxClient.NO_FO;mxClient.NO_FO=Editor.prototype.originalNoForeignObject,i(a),mxClient.NO_FO=e,a.style.display="block",t.style.cursor="",t.innerHTML=n},0)}else a.style.display="block";t.style.backgroundImage="url('"+this.expandedImage+"')"}else t.style.backgroundImage="url('"+this.collapsedImage+"')",a.style.display="none";mxEvent.consume(e)}))},Sidebar.prototype.addImagePalette=function(e,n,s,o,r,t,a){for(var l=[],d=0;d<r.length;d++)mxUtils.bind(this,function(e,n,t){if(null==t){var a=e.lastIndexOf("/"),i=e.lastIndexOf(".");t=e.substring(0<=a?a+1:0,0<=i?i:e.length).replace(/[-_]/g," ")}l.push(this.createVertexTemplateEntry("image;html=1;image="+s+e+o,this.defaultImageWidth,this.defaultImageHeight,r[d],n,!1,!0,this.filterTags(t)))})(r[d],null!=t?t[d]:null,null!=a?a[r[d]]:null);this.addPaletteFunctions(e,n,!1,l)},"undefined"!=typeof html4&&(html4.ATTRIBS["a::target"]=0),mxConstants.SHADOW_OPACITY=.25,mxConstants.SHADOWCOLOR="#000000",mxConstants.VML_SHADOWCOLOR="#d0d0d0",mxGraph.prototype.pageBreakColor="#c0c0c0",mxGraph.prototype.pageScale=1,function(){try{if(null!=navigator&&null!=navigator.language){var e=navigator.language.toLowerCase();mxGraph.prototype.pageFormat="en-us"===e||"en-ca"===e||"es-mx"===e?mxConstants.PAGE_FORMAT_LETTER_PORTRAIT:mxConstants.PAGE_FORMAT_A4_PORTRAIT}}catch(e){}}(),mxText.prototype.baseSpacingTop=5,mxText.prototype.baseSpacingBottom=1,mxGraphModel.prototype.ignoreRelativeEdgeParent=!1,mxGraphView.prototype.gridImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhCgAKAJEAAAAAAP///8zMzP///yH5BAEAAAMALAAAAAAKAAoAAAIJ1I6py+0Po2wFADs=":IMAGE_PATH+"/grid.gif",mxGraphView.prototype.gridSteps=4,mxGraphView.prototype.minGridSize=4,mxGraphView.prototype.gridColor="#e0e0e0",mxSvgCanvas2D.prototype.foAltText="[Not supported by viewer]",Graph=function(e,n,t,a){mxGraph.call(this,e,n,t,a),this.setConnectable(!0),this.setDropEnabled(!1),this.setPanning(!0),this.setTooltips(!mxClient.IS_TOUCH),this.setAllowLoops(!1),this.setMultigraph(!1),this.allowAutoPanning=!0,this.resetEdgesOnConnect=!1,this.constrainChildren=!1,this.connectionHandler.targetConnectImage=!0,this.setAllowDanglingEdges(!1),this.connectionHandler.setCreateTarget(!1),this.connectionHandler.isValidSource=function(){return mxConnectionHandler.prototype.isValidSource.apply(this,arguments)&&"2"!=urlParams.connect},this.alternateEdgeStyle="vertical",null==a&&this.loadStylesheet();var i=new mxRubberband(this);this.getRubberband=function(){return i},this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.container.style.cursor="pointer"})),this.panningHandler.addListener(mxEvent.PAN_END,mxUtils.bind(this,function(){this.container.style.cursor="default"})),this.isHtmlLabel=function(e){var n=this.view.getState(e),t=null!=n?n.style:this.getCellStyle(e);return"1"==t.html||"wrap"==t.whiteSpace},this.cellRenderer.getLabelValue=function(e){var n=mxCellRenderer.prototype.getLabelValue.apply(this,arguments);return"wrap"==e.style.whiteSpace&&1!=e.style.html&&(n=mxUtils.htmlEntities(n,!1)),n},this.isCellLocked=function(e){return!1},this.connectionHandler.tapAndHoldTolerance=16;var s=this.connectionHandler.tapAndHold;this.connectionHandler.tapAndHold=function(e,n){null==n?this.graph.panningHandler.active||(i.start(e.getGraphX(),e.getGraphY()),this.graph.panningHandler.panningTrigger=!1):tapAndHoldStartsConnection?s.apply(this,arguments):this.graph.isCellSelected(n.cell)&&1<this.graph.getSelectionCount()&&this.graph.removeSelectionCell(n.cell)},touchStyle&&this.initTouch()},mxUtils.extend(Graph,mxGraph),Graph.prototype.minFitScale=null,Graph.prototype.maxFitScale=null,Graph.prototype.loadStylesheet=function(){var e=mxUtils.load(STYLE_PATH+"/default.xml").getDocumentElement();new mxCodec(e.ownerDocument).decode(e,this.getStylesheet())},Graph.prototype.flipEdge=function(e){if(null!=e){var n=this.view.getState(e),t=null!=n?n.style:this.getCellStyle(e);if(null!=t){var a=mxUtils.getValue(t,mxConstants.STYLE_ELBOW,mxConstants.ELBOW_HORIZONTAL)==mxConstants.ELBOW_HORIZONTAL?mxConstants.ELBOW_VERTICAL:mxConstants.ELBOW_HORIZONTAL;this.setCellStyles(mxConstants.STYLE_ELBOW,a,[e])}}},Graph.prototype.setDefaultEdge=function(e){if(null!=e&&this.getModel().isEdge(e)){var n=this.getModel().cloneCells([e])[0];null!=n.geometry&&(n.geometry.points=null);var t=n.getStyle();t=mxUtils.setStyle(t,mxConstants.STYLE_ENTRY_X,null),t=mxUtils.setStyle(t,mxConstants.STYLE_ENTRY_Y,null),t=mxUtils.setStyle(t,mxConstants.STYLE_EXIT_X,null),t=mxUtils.setStyle(t,mxConstants.STYLE_EXIT_Y,null),n.setStyle(t),this.connectionHandler.createEdgeState=function(e){return this.graph.view.createState(n)},this.connectionHandler.factoryMethod=function(){return this.graph.cloneCells([n])[0]}}},Graph.prototype.isCellFoldable=function(e){return this.foldingEnabled&&this.isSwimlane(e)},Graph.prototype.isValidRoot=function(e){return this.isSwimlane(e)},Graph.prototype.createGroupCell=function(){var e=mxGraph.prototype.createGroupCell.apply(this,arguments);return e.setStyle("group"),e},Graph.prototype.getTooltipForCell=function(e){var n="";return this.getModel().isVertex(e)?n+=mxResources.get("description_"+e.value.nodeName)||"":this.getModel().isEdge(e)&&(n=mxGraph.prototype.getTooltipForCell.apply(this,arguments)),n},Graph.prototype.convertValueToString=function(e){return null!=e.value&&"object"==typeof e.value?e.value.getAttribute("label"):mxGraph.prototype.convertValueToString.apply(this,arguments)},Graph.prototype.cellLabelChanged=function(e,n,t){if(null!=e.value&&"object"==typeof e.value){var a=e.value.cloneNode(!0);a.setAttribute("label",n),n=a}mxGraph.prototype.cellLabelChanged.apply(this,arguments)},Graph.prototype.setLinkForCell=function(e,n){var t=null;null!=e.value&&"object"==typeof e.value?t=e.value.cloneNode(!0):(t=mxUtils.createXmlDocument().createElement("UserObject")).setAttribute("label",e.value);null!=n&&0<n.length?t.setAttribute("link",n):t.removeAttribute("link"),this.model.setValue(e,t)},Graph.prototype.getLinkForCell=function(e){return null!=e.value&&"object"==typeof e.value?e.value.getAttribute("link"):null},Graph.prototype.initTouch=function(){this.connectionHandler.marker.isEnabled=function(){return null!=this.graph.connectionHandler.first},this.addListener(mxEvent.START_EDITING,function(e,n){this.panningHandler.hideMenu()});var s=!1,o=null;this.updateMouseEvent=function(e){if(mxGraph.prototype.updateMouseEvent.apply(this,arguments),null==e.getState()){var n=this.getCellAt(e.graphX,e.graphY);this.getModel().isEdge(n)&&(e.state=this.view.getState(n),null!=e.state&&null!=e.state.shape&&(this.container.style.cursor=e.state.shape.node.style.cursor))}null==e.getState()&&(this.container.style.cursor="default")},this.fireMouseEvent=function(e,n,t){if(e==mxEvent.MOUSE_DOWN)this.panningHandler.isMenuShowing()?(s=!1,o=null):(o=n.getCell(),s=null!=o?this.isCellSelected(o):this.isSelectionEmpty());else if(e==mxEvent.MOUSE_UP){if(s&&!this.isEditing()){if(!this.panningHandler.isMenuShowing()){var a=mxEvent.getClientX(n.getEvent()),i=mxEvent.getClientY(n.getEvent());this.panningHandler.popup(a+16,i,o,n.getEvent())}return s=!1,o=null,void n.consume()}s=!1,o=null}mxGraph.prototype.fireMouseEvent.apply(this,arguments),e==mxEvent.MOUSE_MOVE&&n.isConsumed()&&(s=!1,o=null)}},function(){if(mxVertexHandler.prototype.rotationEnabled=!0,mxText.prototype.baseSpacingTop=5,mxText.prototype.baseSpacingBottom=1,touchStyle){mxConstants.HANDLE_SIZE=16,mxConstants.LABEL_HANDLE_SIZE=7,mxClient.IS_TOUCH&&(mxVertexHandler.prototype.tolerance=4,mxEdgeHandler.prototype.tolerance=6,Graph.prototype.tolerance=14,Graph.prototype.gridSize=20,mxPanningHandler.prototype.selectOnPopup=!1,mxPanningHandler.prototype.useLeftButtonForPanning=!0,mxPanningHandler.prototype.isPanningTrigger=function(e){var n=e.getEvent();return this.useLeftButtonForPanning&&(this.ignoreCell||null==e.getState())||mxEvent.isControlDown(n)&&mxEvent.isShiftDown(n)||this.usePopupTrigger&&mxEvent.isPopupTrigger(n)});var t=mxGraphHandler.prototype.mouseDown;mxGraphHandler.prototype.mouseDown=function(e,n){t.apply(this,arguments),this.graph.isCellSelected(n.getCell())&&1<this.graph.getSelectionCount()&&(this.delayedSelection=!1)},Graph.prototype.createHandlers=function(e){this.tooltipHandler=new mxTooltipHandler(this),this.tooltipHandler.setEnabled(!1),this.selectionCellsHandler=new mxSelectionCellsHandler(this),this.panningHandler=new mxPanningHandler(this),this.panningHandler.panningEnabled=!1,this.connectionHandler=new mxConnectionHandler(this),this.connectionHandler.setEnabled(!1),this.graphHandler=new mxGraphHandler(this)},mxConnectionHandler.prototype.selectCells=function(e,n){touchStyle&&null!=n?this.graph.setSelectionCell(n):this.graph.setSelectionCell(e)};var a=mxGraph.prototype.dblClick;Graph.prototype.dblClick=function(e,n){if(null==n){var t=mxUtils.convertPoint(this.container,mxEvent.getClientX(e),mxEvent.getClientY(e));n=this.getCellAt(t.x,t.y)}a.call(this,e,n)};var e=new mxImage(IMAGE_PATH+"/touch-handle.png",16,16);mxVertexHandler.prototype.handleImage=e,mxEdgeHandler.prototype.handleImage=e,mxOutline.prototype.sizerImage=e,(new Image).src=e.src;var n=IMAGE_PATH+"/touch-connector.png",i=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){i.apply(this,arguments),showConnectorImg&&this.graph.connectionHandler.isEnabled()&&this.graph.isCellConnectable(this.state.cell)&&!this.graph.isValidRoot(this.state.cell)&&1==this.graph.getSelectionCount()&&(this.connectorImg=mxUtils.createImage(n),this.connectorImg.style.cursor="pointer",this.connectorImg.style.width="29px",this.connectorImg.style.height="29px",this.connectorImg.style.position="absolute",mxClient.IS_TOUCH||(this.connectorImg.setAttribute("title",mxResources.get("connect")),mxEvent.redirectMouseEvents(this.connectorImg,this.graph,this.state)),this.connectorImg.style.padding="2px",mxEvent.addGestureListeners(this.connectorImg,mxUtils.bind(this,function(e){this.graph.panningHandler.hideMenu();var n=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e));this.graph.connectionHandler.start(this.state,n.x,n.y),this.graph.isMouseDown=!0,mxEvent.consume(e)})),this.graph.container.appendChild(this.connectorImg)),this.redrawTools()};var s=mxVertexHandler.prototype.redraw;mxVertexHandler.prototype.redraw=function(){s.apply(this),this.redrawTools()},mxVertexHandler.prototype.redrawTools=function(){null!=this.state&&null!=this.connectorImg&&(mxVertexHandler.prototype.singleSizer?(this.connectorImg.style.left=this.state.x+this.state.width-this.connectorImg.offsetWidth/2+"px",this.connectorImg.style.top=this.state.y-this.connectorImg.offsetHeight/2+"px"):(this.connectorImg.style.left=this.state.x+this.state.width+mxConstants.HANDLE_SIZE/2+4+"px",this.connectorImg.style.top=this.state.y+(this.state.height-this.connectorImg.offsetHeight)/2+"px"))};var o=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(e,n){o.apply(this,arguments),null!=this.connectorImg&&(this.connectorImg.parentNode.removeChild(this.connectorImg),this.connectorImg=null)},(new Image).src=n}else{var r=new mxImage(IMAGE_PATH+"/connector.png",15,15);if(mxConnectionHandler.prototype.connectImage=r,(new Image).src=r.src,"2"==urlParams.connect){r=new mxImage(IMAGE_PATH+"/connector.png",15,15),i=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){i.apply(this,arguments),showConnectorImg&&this.graph.connectionHandler.isEnabled()&&this.graph.isCellConnectable(this.state.cell)&&!this.graph.isValidRoot(this.state.cell)&&1==this.graph.getSelectionCount()&&(mxClient.IS_IE&&!mxClient.IS_SVG?(this.connectorImg=document.createElement("div"),this.connectorImg.style.backgroundImage="url("+r.src+")",this.connectorImg.style.backgroundPosition="center",this.connectorImg.style.backgroundRepeat="no-repeat",this.connectorImg.style.width=r.width+4+"px",this.connectorImg.style.height=r.height+4+"px",this.connectorImg.style.display=mxClient.IS_QUIRKS?"inline":"inline-block"):(this.connectorImg=mxUtils.createImage(r.src),this.connectorImg.style.width=r.width+"px",this.connectorImg.style.height=r.height+"px"),this.connectorImg.style.cursor="pointer",this.connectorImg.style.position="absolute",this.connectorImg.setAttribute("title",mxResources.get("connect")),mxEvent.redirectMouseEvents(this.connectorImg,this.graph,this.state),this.connectorImg.style.padding="2px",mxEvent.addListener(this.connectorImg,"mousedown",mxUtils.bind(this,function(e){this.graph.panningHandler.hideMenu();var n=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e));this.graph.connectionHandler.start(this.state,n.x,n.y),this.graph.isMouseDown=!0,mxEvent.consume(e)})),this.graph.container.appendChild(this.connectorImg)),this.redrawTools()};s=mxVertexHandler.prototype.redraw;mxVertexHandler.prototype.redraw=function(){s.apply(this),this.redrawTools()},mxVertexHandler.prototype.redrawTools=function(){null!=this.state&&null!=this.connectorImg&&(mxVertexHandler.prototype.singleSizer?(this.connectorImg.style.left=this.state.x+this.state.width-this.connectorImg.offsetWidth/2+"px",this.connectorImg.style.top=this.state.y-this.connectorImg.offsetHeight/2+"px"):(this.connectorImg.style.left=this.state.x+this.state.width+mxConstants.HANDLE_SIZE/2+2+"px",this.connectorImg.style.top=this.state.y+(this.state.height-this.connectorImg.offsetHeight)/2+"px"))};o=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(e,n){o.apply(this,arguments),null!=this.connectorImg&&(this.connectorImg.parentNode.removeChild(this.connectorImg),this.connectorImg=null)}}}}(),Actions.prototype.init=function(){var n=this.editorUi,l=n.editor,d=l.graph;this.addAction("new",function(){n.projectDesignController.newProject()},CRUD_PERMISSIONS.canEdit),this.addAction("open",function(){n.projectDesignController.openProject()},CRUD_PERMISSIONS.canEdit),this.addAction("save",function(){n.projectDesignController.saveOrPublishProject(mxUtils.getPrettyXml(l.getGraphXml())),n.editor.modified=!1},CRUD_PERMISSIONS.canEdit,null,"Ctrl+S"),this.addAction("saveAs",function(){n.projectDesignController.saveProjectAs(mxUtils.getPrettyXml(l.getGraphXml()))},CRUD_PERMISSIONS.canEdit,null,"Ctrl+Shift+S"),this.addAction("publish",function(){n.editor.setStatus(""),null===n.validate()?(n.projectDesignController.saveOrPublishProject(mxUtils.getPrettyXml(l.getGraphXml()),!0),n.editor.modified=!1):(n.editor.setStatus("...Error publishing! Please check the project and try again!"),setTimeout(function(){n.editor.setStatus("")},3e3))},CRUD_PERMISSIONS.canEdit,null,"Ctrl+Shift+P"),this.addAction("variable",function(){n.projectDesignController.newVariable()},CRUD_PERMISSIONS.canEdit),this.addAction("import",function(){n.projectDesignController.importXML(function(e){l.setGraphXml(mxUtils.parseXml(e).documentElement)})},CRUD_PERMISSIONS.canEdit),this.addAction("export",function(){n.exportXML(mxUtils.getPrettyXml(l.getGraphXml()))},null,null,"Ctrl+E"),this.addAction("editFile",function(){n.projectDesignController.editXML(mxUtils.getPrettyXml(l.getGraphXml()),function(e){l.setGraphXml(mxUtils.parseXml(e).documentElement)})},CRUD_PERMISSIONS.canEdit),this.addAction("print",function(){mxUtils.printScreen(d)},null,"sprite-print","Ctrl+P"),this.addAction("preview",function(){mxUtils.show(d,null,10,10)}),this.addAction("undo",function(){l.undoManager.undo()},null,"sprite-undo","Ctrl+Z"),this.addAction("redo",function(){l.undoManager.redo()},null,"sprite-redo","Ctrl+Y"),this.addAction("cut",function(){mxClipboard.cut(d)},null,"sprite-cut","Ctrl+X"),this.addAction("copy",function(){mxClipboard.copy(d)},null,"sprite-copy","Ctrl+C"),this.addAction("paste",function(){mxClipboard.paste(d)},!1,"sprite-paste","Ctrl+V"),this.addAction("delete",function(){d.removeCells()},null,null,"Delete"),this.addAction("duplicate",function(){var e=d.gridSize;d.setSelectionCells(d.moveCells(d.getSelectionCells(),e,e,!0))},null,null,"Ctrl+D"),this.addAction("selectVertices",function(){d.selectVertices()},null,null,"Ctrl+Shift+V"),this.addAction("selectEdges",function(){d.selectEdges()},null,null,"Ctrl+Shift+E"),this.addAction("selectAll",function(){d.selectAll()},null,null,"Ctrl+A"),this.addAction("home",function(){d.home()},null,null,"Home"),this.addAction("exitGroup",function(){d.exitGroup()},null,null,"Page Up"),this.addAction("enterGroup",function(){d.enterGroup()},null,null,"Page Down"),this.addAction("expand",function(){d.foldCells(!1)},null,null,"Enter"),this.addAction("collapse",function(){d.foldCells(!0)},null,null,"Backspace"),this.addAction("toFront",function(){d.orderCells(!1)},null,null,"Ctrl+F"),this.addAction("toBack",function(){d.orderCells(!0)},null,null,"Ctrl+B"),this.addAction("group",function(){d.setSelectionCell(d.groupCells(null,0))},null,null,"Ctrl+G"),this.addAction("ungroup",function(){d.setSelectionCells(d.ungroupCells())},null,null,"Ctrl+U"),this.addAction("removeFromGroup",function(){d.removeCellsFromParent()}),this.addAction("editLink",function(){var e=d.getSelectionCell(),n=d.getLinkForCell(e);null==n&&(n=""),null!=(n=mxUtils.prompt(mxResources.get("enterValue"),n))&&d.setLinkForCell(e,n)}),this.addAction("openLink",function(){var e=d.getSelectionCell(),n=d.getLinkForCell(e);null!=n&&window.open(n)}),this.addAction("autosize",function(){var e=d.getSelectionCells();if(null!=e){d.getModel().beginUpdate();try{for(var n=0;n<e.length;n++){var t=e[n];d.getModel().getChildCount(t)?d.updateGroupBounds([t],20):d.updateCellSize(t)}}finally{d.getModel().endUpdate()}}}),this.addAction("wordWrap",function(){var e=d.getView().getState(d.getSelectionCell()),n="wrap";null!=e&&"wrap"==e.style[mxConstants.STYLE_WHITE_SPACE]&&(n=null),d.setCellStyles(mxConstants.STYLE_WHITE_SPACE,n)}),this.addAction("rotation",function(){var e="0",n=d.getView().getState(d.getSelectionCell());null!=n&&(e=n.style[mxConstants.STYLE_ROTATION]||e),null!=(e=mxUtils.prompt(mxResources.get("enterValue")+" ("+mxResources.get("rotation")+" 0-360)",e))&&d.setCellStyles(mxConstants.STYLE_ROTATION,e)}),this.addAction("tilt",function(){var e=d.getSelectionCells();if(null!=e){d.getModel().beginUpdate();try{for(var n=0;n<e.length;n++){var t=e[n];if(d.getModel().isVertex(t)&&0==d.getModel().getChildCount(t)){var a=d.getCellGeometry(t);if(null!=a){(a=a.clone()).x+=a.width/2-a.height/2,a.y+=a.height/2-a.width/2;var i=a.width;a.width=a.height,a.height=i,d.getModel().setGeometry(t,a);var s=d.view.getState(t);if(null!=s){var o=s.style[mxConstants.STYLE_DIRECTION]||"east";"east"==o?o="south":"south"==o?o="west":"west"==o?o="north":"north"==o&&(o="east"),d.setCellStyles(mxConstants.STYLE_DIRECTION,o,[t])}}}}}finally{d.getModel().endUpdate()}}},null,null,"Ctrl+R"),this.addAction("actualSize",function(){d.zoomTo(1)}),this.addAction("zoomIn",function(){d.zoomIn()},null,null,"Add"),this.addAction("zoomOut",function(){d.zoomOut()},null,null,"Subtract"),this.addAction("fitWindow",function(){d.fit()}),this.addAction("fitPage",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();var e=d.pageFormat,n=d.pageScale,t=d.container.clientWidth-20,a=d.container.clientHeight-20,i=Math.floor(100*Math.min(t/e.width/n,a/e.height/n))/100;d.zoomTo(i),d.container.scrollLeft=Math.round(d.view.translate.x*i-Math.max(10,(d.container.clientWidth-e.width*n*i)/2)),d.container.scrollTop=Math.round(d.view.translate.y*i-Math.max(10,(d.container.clientHeight-e.height*n*i)/2))})),this.addAction("fitPageWidth",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();var e=d.pageFormat,n=d.pageScale,t=d.container.clientWidth-20,a=Math.floor(100*t/e.width/n)/100;d.zoomTo(a),d.container.scrollLeft=Math.round(d.view.translate.x*a-Math.max(10,(d.container.clientWidth-e.width*n*a)/2)),d.container.scrollTop=Math.round(d.view.translate.y*a-Math.max(10,(d.container.clientHeight-e.height*n*a)/2))})),this.put("customZoom",new Action(mxResources.get("custom"),function(){var e=mxUtils.prompt(mxResources.get("enterValue")+" (%)",parseInt(100*d.getView().getScale()));null!=e&&0<e.length&&!isNaN(parseInt(e))&&d.zoomTo(parseInt(e)/100)}));var e=null;(e=this.addAction("grid",function(){d.setGridEnabled(!d.isGridEnabled()),l.updateGraphComponents()},null,null,"Ctrl+Shift+G")).setToggleAction(!0),e.setSelectedCallback(function(){return d.isGridEnabled()}),(e=this.addAction("guides",function(){d.graphHandler.guidesEnabled=!d.graphHandler.guidesEnabled})).setToggleAction(!0),e.setSelectedCallback(function(){return d.graphHandler.guidesEnabled}),(e=this.addAction("tooltips",function(){d.tooltipHandler.setEnabled(!d.tooltipHandler.isEnabled())})).setToggleAction(!0),e.setSelectedCallback(function(){return d.tooltipHandler.isEnabled()}),(e=this.addAction("navigation",function(){d.foldingEnabled=!d.foldingEnabled,d.view.revalidate()})).setToggleAction(!0),e.setSelectedCallback(function(){return d.foldingEnabled}),(e=this.addAction("scrollbars",function(){if(d.scrollbars=!d.scrollbars,l.updateGraphComponents(),d.scrollbars){var e=d.view.translate.x,n=d.view.translate.y;d.view.translate.x=0,d.view.translate.y=0,d.sizeDidChange(),d.container.scrollLeft-=Math.round(e*d.view.scale),d.container.scrollTop-=Math.round(n*d.view.scale)}else{var t=d.view.translate;d.view.setTranslate(t.x-d.container.scrollLeft/d.view.scale,t.y-d.container.scrollTop/d.view.scale),d.container.scrollLeft=0,d.container.scrollTop=0,d.sizeDidChange()}},!mxClient.IS_TOUCH)).setToggleAction(!0),e.setSelectedCallback(function(){return"auto"==d.container.style.overflow}),(e=this.addAction("pageView",mxUtils.bind(this,function(){d.pageVisible=!d.pageVisible,d.pageBreaksVisible=d.pageVisible,d.preferPageSize=d.pageBreaksVisible,d.view.validate(),d.sizeDidChange(),l.updateGraphComponents(),l.outline.update(),mxUtils.hasScrollbars(d.container)&&(d.pageVisible?(d.container.scrollLeft-=20,d.container.scrollTop-=20):(d.container.scrollLeft+=20,d.container.scrollTop+=20))}))).setToggleAction(!0),e.setSelectedCallback(function(){return d.pageVisible}),(e=this.addAction("connect",function(){d.setConnectable(!d.connectionHandler.isEnabled())},null,null,"Ctrl+Q")).setToggleAction(!0),e.setSelectedCallback(function(){return d.connectionHandler.isEnabled()}),(e=this.addAction("copyConnect",function(){d.connectionHandler.setCreateTarget(!d.connectionHandler.isCreateTarget())})).setToggleAction(!0),e.setSelectedCallback(function(){return d.connectionHandler.isCreateTarget()}),this.addAction("help",function(){window.open("https://wiki.xcallymotion.com/display/XMV/Cally+Square")}),this.put("about",new Action(mxResources.get("about")+" Cally Square",function(){window.open("http://callysquare.com/")},null,null,null));var t=mxUtils.bind(this,function(e,n){this.addAction(e,function(){d.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,n)})});t("bold",mxConstants.FONT_BOLD),t("italic",mxConstants.FONT_ITALIC),t("underline",mxConstants.FONT_UNDERLINE),this.addAction("shadow",function(){d.toggleCellStyles(mxConstants.STYLE_SHADOW)}),this.addAction("dashed",function(){d.toggleCellStyles(mxConstants.STYLE_DASHED)}),this.addAction("rounded",function(){d.toggleCellStyles(mxConstants.STYLE_ROUNDED)}),this.addAction("curved",function(){d.toggleCellStyles(mxConstants.STYLE_CURVED)}),this.addAction("style",function(){var e=d.getSelectionCells();if(null!=e&&0<e.length){var n=d.getModel(),t=mxUtils.prompt(mxResources.get("enterValue")+" ("+mxResources.get("style")+")",n.getStyle(e[0])||"");null!=t&&d.setCellStyle(t,e)}}),this.addAction("setAsDefaultEdge",function(){d.setDefaultEdge(d.getSelectionCell())}),this.addAction("addWaypoint",function(){var e=d.getSelectionCell();if(null!=e&&d.getModel().isEdge(e)){var n=l.graph.selectionCellsHandler.getHandler(e);if(n instanceof mxEdgeHandler){var t=d.view.translate,a=d.view.scale,i=t.x,s=t.y,o=d.getModel().getParent(e),r=d.getCellGeometry(o);d.getModel().isVertex(o)&&null!=r&&(i+=r.x,s+=r.y),n.addPointAt(n.state,d.panningHandler.triggerX/a-i,d.panningHandler.triggerY/a-s)}}}),this.addAction("removeWaypoint",function(){var e=n.actions.get("removeWaypoint");null!=e.handler&&e.handler.removePoint(e.handler.state,e.index)}),this.addAction("image",function(){var e="",n=d.getView().getState(d.getSelectionCell());if(null!=n&&(e=n.style[mxConstants.STYLE_IMAGE]||e),null!=(e=mxUtils.prompt(mxResources.get("enterValue")+" ("+mxResources.get("url")+")",e))&&0<e.length){var t=new Image;t.onload=function(){!function(e,n,t){var a=null,i=d.getSelectionCells();d.getModel().beginUpdate();try{if(0==i.length){var s=d.getGridSize();a=i=[d.insertVertex(d.getDefaultParent(),null,"",s,s,n,t)]}if(d.setCellStyles(mxConstants.STYLE_IMAGE,e,i),d.setCellStyles(mxConstants.STYLE_SHAPE,"image",i),1==d.getSelectionCount()&&null!=n&&null!=t){var o=i[0],r=d.getModel().getGeometry(o);null!=r&&((r=r.clone()).width=n,r.height=t,d.getModel().setGeometry(o,r))}}finally{d.getModel().endUpdate()}null!=a&&(d.setSelectionCells(a),d.scrollCellToVisible(a[0]))}(e,t.width,t.height)},t.onerror=function(){mxUtils.alert(mxResources.get("fileNotFound"))},t.src=e}})},Actions.prototype.addAction=function(e,n,t,a,i){return this.put(e,new Action(mxResources.get(e),n,t,a,i))},Actions.prototype.put=function(e,n){return this.actions[e]=n},Actions.prototype.get=function(e){return this.actions[e]},mxUtils.extend(Action,mxEventSource),Action.prototype.setEnabled=function(e){this.enabled!=e&&(this.enabled=e,this.fireEvent(new mxEventObject("stateChanged")))},Action.prototype.setToggleAction=function(e){this.toggleAction=e},Action.prototype.setSelectedCallback=function(e){this.selectedCallback=e},Action.prototype.isSelected=function(){return this.selectedCallback()},Menus=function(e){this.editorUi=e,this.menus=new Object,this.init(),(new Image).src=IMAGE_PATH+"/checkmark.gif"},Menus.prototype.init=function(){var i=this.editorUi.editor.graph;this.put("fontFamily",new Menu(mxUtils.bind(this,function(e,n){for(var t=["Helvetica","Verdana","Times New Roman","Garamond","Comic Sans MS","Courier New","Georgia","Lucida Console","Tahoma"],a=0;a<t.length;a++){this.styleChange(e,t[a],[mxConstants.STYLE_FONTFAMILY],[t[a]],null,n).firstChild.nextSibling.style.fontFamily=t[a]}e.addSeparator(n),this.promptChange(e,mxResources.get("custom"),"",mxConstants.DEFAULT_FONTFAMILY,mxConstants.STYLE_FONTFAMILY,n)}))),this.put("fontSize",new Menu(mxUtils.bind(this,function(e,n){for(var t=[6,8,9,10,11,12,14,18,24,36,48,72],a=0;a<t.length;a++)this.styleChange(e,t[a],[mxConstants.STYLE_FONTSIZE],[t[a]],null,n);e.addSeparator(n),this.promptChange(e,mxResources.get("custom"),"(pt)","12",mxConstants.STYLE_FONTSIZE,n)}))),this.put("linewidth",new Menu(mxUtils.bind(this,function(e,n){for(var t=[1,2,3,4,8,12,16,24],a=0;a<t.length;a++)this.styleChange(e,t[a]+"px",[mxConstants.STYLE_STROKEWIDTH],[t[a]],null,n);e.addSeparator(n),this.promptChange(e,mxResources.get("custom"),"(px)","1",mxConstants.STYLE_STROKEWIDTH,n)}))),this.put("line",new Menu(mxUtils.bind(this,function(e,n){this.styleChange(e,mxResources.get("straight"),[mxConstants.STYLE_EDGE],[null],null,n),this.styleChange(e,mxResources.get("entityRelation"),[mxConstants.STYLE_EDGE],["entityRelationEdgeStyle"],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("horizontal"),[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW],["elbowEdgeStyle","horizontal"],null,n),this.styleChange(e,mxResources.get("vertical"),[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW],["elbowEdgeStyle","vertical"],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("manual"),[mxConstants.STYLE_EDGE],["segmentEdgeStyle"],null,n),this.styleChange(e,mxResources.get("automatic"),[mxConstants.STYLE_EDGE],["orthogonalEdgeStyle"],null,n)}))),this.put("lineend",new Menu(mxUtils.bind(this,function(e,n){this.styleChange(e,mxResources.get("classic"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_CLASSIC],null,n),this.styleChange(e,mxResources.get("openArrow"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_OPEN],null,n),this.styleChange(e,mxResources.get("block"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_BLOCK],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("oval"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_OVAL],null,n),this.styleChange(e,mxResources.get("diamond"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_DIAMOND],null,n),this.styleChange(e,mxResources.get("diamondThin"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_DIAMOND_THIN],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("none"),[mxConstants.STYLE_ENDARROW],[mxConstants.NONE],null,n),e.addSeparator(n),e.addItem(mxResources.get("transparent"),null,function(){i.toggleCellStyles("endFill",!0)},n,null,!0),e.addSeparator(n),this.promptChange(e,mxResources.get("size"),"(px)",mxConstants.DEFAULT_MARKERSIZE,mxConstants.STYLE_ENDSIZE,n)}))),this.put("linestart",new Menu(mxUtils.bind(this,function(e,n){this.styleChange(e,mxResources.get("classic"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_CLASSIC],null,n),this.styleChange(e,mxResources.get("openArrow"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_OPEN],null,n),this.styleChange(e,mxResources.get("block"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_BLOCK],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("oval"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_OVAL],null,n),this.styleChange(e,mxResources.get("diamond"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_DIAMOND],null,n),this.styleChange(e,mxResources.get("diamondThin"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_DIAMOND_THIN],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("none"),[mxConstants.STYLE_STARTARROW],[mxConstants.NONE],null,n),e.addSeparator(n),e.addItem(mxResources.get("transparent"),null,function(){i.toggleCellStyles("startFill",!0)},n,null,!0),e.addSeparator(n),this.promptChange(e,mxResources.get("size"),"(px)",mxConstants.DEFAULT_MARKERSIZE,mxConstants.STYLE_STARTSIZE,n)}))),this.put("spacing",new Menu(mxUtils.bind(this,function(e,n){var t=this.editorUi.actions.get("shadow").enabled,a=this.get("line").enabled;(t||e.showDisabled)&&(this.promptChange(e,mxResources.get("top"),"(px)","0",mxConstants.STYLE_SPACING_TOP,n,t),this.promptChange(e,mxResources.get("right"),"(px)","0",mxConstants.STYLE_SPACING_RIGHT,n,t),this.promptChange(e,mxResources.get("bottom"),"(px)","0",mxConstants.STYLE_SPACING_BOTTOM,n,t),this.promptChange(e,mxResources.get("left"),"(px)","0",mxConstants.STYLE_SPACING_LEFT,n,t),e.addSeparator(n),this.promptChange(e,mxResources.get("global"),"(px)","0",mxConstants.STYLE_SPACING,n,t),this.promptChange(e,mxResources.get("perimeter"),"(px)","0",mxConstants.STYLE_PERIMETER_SPACING,n,t)),(a||e.showDisabled)&&(e.addSeparator(n),this.promptChange(e,mxResources.get("sourceSpacing"),"(px)","0",mxConstants.STYLE_SOURCE_PERIMETER_SPACING,n,a),this.promptChange(e,mxResources.get("targetSpacing"),"(px)","0",mxConstants.STYLE_TARGET_PERIMETER_SPACING,n,a))}))),this.put("format",new Menu(mxUtils.bind(this,function(e,n){this.addMenuItem(e,"style",n)}))),this.put("text",new Menu(mxUtils.bind(this,function(e,n){var t=this.get("text").enabled;e.addSeparator(n),this.addSubmenu("fontFamily",e,n),this.addSubmenu("fontSize",e,n),this.addMenuItems(e,["-","bold","italic","underline","-"],n),this.addSubmenu("alignment",e,n),this.addMenuItem(e,"wordWrap",n),e.addSeparator(n),this.promptChange(e,mxResources.get("textOpacity"),"(%)","100",mxConstants.STYLE_TEXT_OPACITY,n,t),e.addItem(mxResources.get("hide"),null,function(){i.toggleCellStyles(mxConstants.STYLE_NOLABEL,!1)},n,null,t)}))),this.put("alignment",new Menu(mxUtils.bind(this,function(e,n){this.styleChange(e,mxResources.get("leftAlign"),[mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_LEFT],null,n),this.styleChange(e,mxResources.get("center"),[mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_CENTER],null,n),this.styleChange(e,mxResources.get("rightAlign"),[mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_RIGHT],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("topAlign"),[mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_TOP],null,n),this.styleChange(e,mxResources.get("middle"),[mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_MIDDLE],null,n),this.styleChange(e,mxResources.get("bottomAlign"),[mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_BOTTOM],null,n),e.addSeparator(n),this.addSubmenu("position",e,n),this.addSubmenu("spacing",e,n),e.addSeparator(n);var t=this.get("text").enabled;e.addItem(mxResources.get("vertical"),null,function(){i.toggleCellStyles(mxConstants.STYLE_HORIZONTAL,!0)},n,null,t)}))),this.put("position",new Menu(mxUtils.bind(this,function(e,n){this.styleChange(e,mxResources.get("left"),[mxConstants.STYLE_LABEL_POSITION,mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_LEFT,mxConstants.ALIGN_RIGHT],null,n),this.styleChange(e,mxResources.get("center"),[mxConstants.STYLE_LABEL_POSITION,mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_CENTER,mxConstants.ALIGN_CENTER],null,n),this.styleChange(e,mxResources.get("right"),[mxConstants.STYLE_LABEL_POSITION,mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_LEFT],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("top"),[mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_TOP,mxConstants.ALIGN_BOTTOM],null,n),this.styleChange(e,mxResources.get("middle"),[mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_MIDDLE,mxConstants.ALIGN_MIDDLE],null,n),this.styleChange(e,mxResources.get("bottom"),[mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_BOTTOM,mxConstants.ALIGN_TOP],null,n)}))),this.put("direction",new Menu(mxUtils.bind(this,function(e,n){e.addItem(mxResources.get("flipH"),null,function(){i.toggleCellStyles(mxConstants.STYLE_FLIPH,!1)},n),e.addItem(mxResources.get("flipV"),null,function(){i.toggleCellStyles(mxConstants.STYLE_FLIPV,!1)},n),this.addMenuItems(e,["-","tilt","rotation"],n)}))),this.put("align",new Menu(mxUtils.bind(this,function(e,n){e.addItem(mxResources.get("leftAlign"),null,function(){i.alignCells(mxConstants.ALIGN_LEFT)},n),e.addItem(mxResources.get("center"),null,function(){i.alignCells(mxConstants.ALIGN_CENTER)},n),e.addItem(mxResources.get("rightAlign"),null,function(){i.alignCells(mxConstants.ALIGN_RIGHT)},n),e.addSeparator(n),e.addItem(mxResources.get("topAlign"),null,function(){i.alignCells(mxConstants.ALIGN_TOP)},n),e.addItem(mxResources.get("middle"),null,function(){i.alignCells(mxConstants.ALIGN_MIDDLE)},n),e.addItem(mxResources.get("bottomAlign"),null,function(){i.alignCells(mxConstants.ALIGN_BOTTOM)},n)}))),this.put("layout",new Menu(mxUtils.bind(this,function(e,n){e.addItem(mxResources.get("horizontalFlow"),null,mxUtils.bind(this,function(){var e=new mxHierarchicalLayout(i,mxConstants.DIRECTION_WEST);this.editorUi.executeLayout(e,!0,!0)}),n),e.addItem(mxResources.get("verticalFlow"),null,mxUtils.bind(this,function(){var e=new mxHierarchicalLayout(i,mxConstants.DIRECTION_NORTH);this.editorUi.executeLayout(e,!0,!0)}),n)}))),this.put("navigation",new Menu(mxUtils.bind(this,function(e,n){this.addMenuItems(e,["home","-","exitGroup","enterGroup","-","expand","collapse"],n)}))),this.put("arrange",new Menu(mxUtils.bind(this,function(e,n){this.addMenuItems(e,["toFront","toBack","-"],n),this.addSubmenu("layout",e,n),e.addSeparator(n),this.addMenuItems(e,["-","group","ungroup","removeFromGroup"],n)}))),this.put("view",new Menu(mxUtils.bind(this,function(n,t){this.addMenuItems(n,["actualSize"],t),n.addSeparator();for(var e=[.25,.5,.75,1,2,4],a=0;a<e.length;a++)!function(e){n.addItem(100*e+"%",null,function(){i.zoomTo(e)},t)}(e[a]);this.addMenuItems(n,["-","zoomIn","zoomOut","-","fitWindow","customZoom","-","fitPage","fitPageWidth"],t)}))),this.put("file",new Menu(mxUtils.bind(this,function(e,n){this.addMenuItems(e,["new","open","-","save","saveAs","publish","-","variable","-","import","export","-","editFile","description","-","print"],n)}))),this.put("edit",new Menu(mxUtils.bind(this,function(e,n){this.addMenuItems(e,["undo","redo","-","cut","copy","paste","delete","-","duplicate","-","selectVertices","selectEdges","selectAll"])}))),this.put("help",new Menu(mxUtils.bind(this,function(e,n){this.addMenuItems(e,["help","-","about"])})))},Menus.prototype.put=function(e,n){this.menus[e]=n},Menus.prototype.get=function(e){return this.menus[e]},Menus.prototype.addSubmenu=function(e,n,t){var a=this.get(e).enabled;if(n.showDisabled||a){var i=n.addItem(mxResources.get(e),null,null,t,null,a);this.addMenu(e,n,i)}},Menus.prototype.addMenu=function(e,n,t){var a=this.get(e);null!=a&&(n.showDisabled||a.enabled)&&this.get(e).execute(n,t)},Menus.prototype.styleChange=function(e,n,t,a,i,s){return e.addItem(n,null,mxUtils.bind(this,function(){var e=this.editorUi.editor.graph;e.getModel().beginUpdate();try{for(var n=0;n<t.length;n++)e.setCellStyles(t[n],a[n])}finally{e.getModel().endUpdate()}}),s,i)},Menus.prototype.promptChange=function(e,n,a,i,s,t,o){return e.addItem(n,null,mxUtils.bind(this,function(){var e=this.editorUi.editor.graph,n=i,t=e.getView().getState(e.getSelectionCell());null!=t&&(n=t.style[s]||n),null!=(n=mxUtils.prompt(mxResources.get("enterValue")+(0<a.length?" "+a:""),n))&&0<n.length&&e.setCellStyles(s,n)}),t,null,o)},Menus.prototype.addMenuItem=function(e,n,t){var a=this.editorUi.actions.get(n);if(null==a||!e.showDisabled&&!a.enabled)return null;var i=e.addItem(a.label,null,a.funct,t,null,a.enabled);return a.toggleAction&&a.isSelected()&&this.addCheckmark(i),this.addShortcut(i,a),i},Menus.prototype.addShortcut=function(e,n){if(null!=n.shortcut){var t=e.firstChild.nextSibling.nextSibling,a=document.createElement("span");a.style.color="gray",mxUtils.write(a,n.shortcut),t.appendChild(a)}},Menus.prototype.addCheckmark=function(e){var n=e.firstChild.nextSibling;n.style.backgroundImage="url("+IMAGE_PATH+"/checkmark.gif)",n.style.backgroundRepeat="no-repeat",n.style.backgroundPosition="2px 50%"},Menus.prototype.addMenuItems=function(e,n,t){for(var a=0;a<n.length;a++)"-"==n[a]?e.addSeparator(t):this.addMenuItem(e,n[a],t)},Menus.prototype.createPopupMenu=function(e,n,t){var a=this.editorUi.editor.graph;if(e.smartSeparators=!0,a.isSelectionEmpty()?this.addMenuItems(e,["undo","redo","-","paste","-"]):(this.addMenuItems(e,["delete","-","cut","copy","-","duplicate"]),1==a.getSelectionCount()&&a.getModel().isEdge(a.getSelectionCell())&&this.addMenuItems(e,["setAsDefaultEdge"]),e.addSeparator()),0<a.getSelectionCount()){if(this.addMenuItems(e,["toFront","toBack","-"]),a.getModel().isEdge(a.getSelectionCell())){var i=!1;if(null!=(n=a.getSelectionCell())&&a.getModel().isEdge(n)){var s=a.selectionCellsHandler.getHandler(n);if(s instanceof mxEdgeHandler&&null!=s.bends&&2<s.bends.length){var o=s.getHandleForEvent(new mxMouseEvent(t)),r=this.editorUi.actions.get("removeWaypoint");r.handler=s,i=0<(r.index=o)&&o<s.bends.length}}this.addMenuItems(e,["-",i?"removeWaypoint":"addWaypoint"])}else 1<a.getSelectionCount()&&(e.addSeparator(),this.addMenuItems(e,["group"]));if(e.addSeparator(),1==a.getSelectionCount())null!=a.getLinkForCell(a.getSelectionCell())&&this.addMenuItems(e,["openLink"])}else this.addMenuItems(e,["-","selectVertices","selectEdges","-","selectAll"])},Menus.prototype.createMenubar=function(e){var n=new Menubar(this.editorUi,e),t=[];t=CRUD_PERMISSIONS.canEdit?["file","edit","view","format","text","arrange","help"]:["file","view","help"];for(var a=0;a<t.length;a++)n.addMenu(mxResources.get(t[a]),this.get(t[a]).funct);return n},Menubar.prototype.hideMenu=function(){null!=this.currentMenu&&this.currentMenu.hideMenu()},Menubar.prototype.addMenu=function(e,n){var t=document.createElement("a");return t.setAttribute("href","javascript:void(0);"),t.className="geItem",mxUtils.write(t,e),this.addMenuHandler(t,n),this.container.appendChild(t),t},Menubar.prototype.getOffset=function(e){return{left:(e=e.getBoundingClientRect()).left+window.scrollX,top:e.top+window.scrollY}},Menubar.prototype.addMenuHandler=function(i,s){if(null!=s){var o=!0,n=mxUtils.bind(this,function(e){if(o&&null==i.enabled||i.enabled){this.editorUi.editor.graph.panningHandler.hideMenu();var n=new mxPopupMenu(s);n.div.className+=" geMenubarMenu",n.smartSeparators=!0,n.showDisabled=!0,n.autoExpand=!0,n.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(n,arguments),n.destroy(),this.currentMenu=null,this.currentElt=null});var t=this.getOffset(i).left,a=this.getOffset(i).top+i.offsetHeight;n.popup(t,a,null,e),this.currentMenu=n,this.currentElt=i}o=!0,mxEvent.consume(e)});mxEvent.addListener(i,"mousemove",mxUtils.bind(this,function(e){null!=this.currentMenu&&this.currentElt!=i&&(this.hideMenu(),n(e))})),mxEvent.addListener(i,"mousedown",mxUtils.bind(this,function(){o=this.currentElt!=i})),mxEvent.addListener(i,"click",n)}},mxUtils.extend(Menu,mxEventSource),Menu.prototype.setEnabled=function(e){this.enabled!=e&&(this.enabled=e,this.fireEvent(new mxEventObject("stateChanged")))},Menu.prototype.execute=function(e,n){this.funct(e,n)},Toolbar.prototype.init=function(){CRUD_PERMISSIONS.canEdit?this.addItems(["save","publish","-","print","undo","redo","-","copy","cut","paste","delete","-","duplicate","-","actualSize","zoomIn","zoomOut","-"]):this.addItems(["print","actualSize","zoomIn","zoomOut","-"])},Toolbar.prototype.hideMenu=function(){null!=this.currentMenu&&(this.currentMenu.hideMenu(),this.currentMenu.destroy(),this.currentMenu=null)},Toolbar.prototype.addMenu=function(e,n,t,a){var i=this.editorUi.menus.get(a),s=this.addMenuFunction(e,n,t,i.funct);return i.addListener("stateChanged",function(){s.setEnabled(i.enabled)}),s},Toolbar.prototype.addMenuFunction=function(e,n,t,a){var i=t?this.createLabel(e):this.createButton(e);return this.initElement(i,n),this.addMenuHandler(i,t,a),this.container.appendChild(i),i},Toolbar.prototype.addSeparator=function(){var e=document.createElement("div");return e.className="geSeparator",this.container.appendChild(e),e},Toolbar.prototype.addItems=function(e){for(var n=0;n<e.length;n++){var t=e[n];"-"==t?this.addSeparator():this.addItem("geSprite-"+t.toLowerCase(),t)}},Toolbar.prototype.addItem=function(e,n){var t=this.editorUi.actions.get(n),a=null;return null!=t&&((a=this.addButton(e,t.label,t.funct)).setEnabled(t.enabled),t.addListener("stateChanged",function(){a.setEnabled(t.enabled)})),a},Toolbar.prototype.addButton=function(e,n,t){var a=this.createButton(e);return this.initElement(a,n),this.addClickHandler(a,t),this.container.appendChild(a),a},Toolbar.prototype.addSelectionHandler=function(t){var a=this.editorUi.editor.graph,e=function(){for(var e=!a.isSelectionEmpty(),n=0;n<t.length;n++)t[n].setEnabled(e)};a.getSelectionModel().addListener(mxEvent.CHANGE,e),e()},Toolbar.prototype.addEdgeSelectionHandler=function(a){var i=this.editorUi.editor.graph,e=function(){var e=!1;if(!i.isSelectionEmpty())for(var n=i.getSelectionCells(),t=0;t<n.length;t++)if(i.getModel().isEdge(n[t])){e=!0;break}for(t=0;t<a.length;t++)a[t].setEnabled(e)};i.getSelectionModel().addListener(mxEvent.CHANGE,e),e()},Toolbar.prototype.initElement=function(e,n){e.setAttribute("tabindex","0"),null!=n&&e.setAttribute("title",n),this.addEnabledState(e)},Toolbar.prototype.addEnabledState=function(n){var t=n.className;n.setEnabled=function(e){n.enabled=e,n.className=e?t:t+" geDisabled"},n.setEnabled(!0)},Toolbar.prototype.addClickHandler=function(n,t){null!=t&&mxEvent.addListener(n,"click",function(e){n.enabled&&t(e),mxEvent.consume(e)})},Toolbar.prototype.createButton=function(e){var n=document.createElement("a");n.setAttribute("href","javascript:void(0);"),n.className="geButton";var t=document.createElement("div");return t.className="geSprite "+e,n.appendChild(t),n},Toolbar.prototype.createLabel=function(e,n){var t=document.createElement("a");return t.setAttribute("href","javascript:void(0);"),t.className="geLabel",mxUtils.write(t,e),t},Toolbar.prototype.addMenuHandler=function(n,t,a,i){if(null!=a){var s=this.editorUi.editor.graph,o=null;mxEvent.addListener(n,"click",mxUtils.bind(this,function(e){(null==n.enabled||n.enabled)&&(s.panningHandler.hideMenu(),(o=new mxPopupMenu(a)).div.className+=" geToolbarMenu",o.showDisabled=i,o.labels=t,o.autoExpand=!0,o.popup(n.offsetLeft,n.offsetTop+n.offsetHeight+34,null,e),this.currentMenu=o),mxEvent.consume(e)}))}},Dialog.prototype.close=function(){null!=this.onDialogClose&&(this.onDialogClose(),this.onDialogClose=null),this.container.parentNode.removeChild(this.container),this.bg.parentNode.removeChild(this.bg)},angular.module("motion").run(["$templateCache",function(e){"use strict";e.put("app/auth/services/hotdesk/dialog.html",'<md-dialog aria-label="Telephone">\n <form ng-cloak>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div flex>\n <span class="title" translate="LOGIN.TELEPHONES">Telephones</span>\n </div>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <md-select ng-model="vm.name" placeholder="Select a telephone">\n <md-option value="{{telephone.name}}" ng-repeat="telephone in vm.telephones.rows">{{telephone.fullname}}</md-option>\n </md-select>\n </md-dialog-content>\n\n <md-dialog-actions layout="row">\n <md-button ng-click="vm.closeDialog(vm.name)" class="send-button md-accent md-raised" aria-label="call" ng-disabled="!vm.name">\n <span translate="LOGIN.SELECT">SELECT</span>\n </md-button>\n \x3c!-- <md-button ng-click="vm.closeDialog()" class="send-button md-accent md-raised" aria-label="cancel">\n <span translate="LOGIN.CANCEL">Cancel</span>\n </md-button> --\x3e\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/core/dialogs/advanced-search/dialog.html",'<md-dialog class="advanced-search-dialog" aria-label="Advanced search" flex="70" ng-init="vm.onInit()">\n <form ng-cloak>\n <md-toolbar class="advanced-search-dialog-header" ng-class="{{ \'vm.toolbarColor\' }} + \'-bg\'">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div flex>\n <span class="title" translate="DASHBOARDS.ADVANCED_SEARCH"></span>\n </div>\n <div layout="row" layout-align="end center">\n <md-button class="md-icon-button no-margin no-padding" ng-click="vm.minimize()">\n <md-icon class="no-margin" md-font-icon="icon-window-minimize" aria-label="Minimize dialog"></md-icon>\n </md-button>\n <md-button class="md-icon-button no-margin no-padding" ng-click="vm.close()">\n <md-icon class="no-margin" md-font-icon="icon-window-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <ms-advanced-search options="vm.searchOptions" clear-filter="vm.clearConditions()"></ms-advanced-search>\n </md-dialog-content>\n\n <md-dialog-actions layout="row">\n <md-button class="md-primary md-raised" aria-label="Clear" ng-disabled="vm.searchOptions.conditions.length === 0" translate="DASHBOARDS.CLEAR" translate-attr-aria-label="DASHBOARDS.CLEAR" ng-click="vm.clearConditions()"></md-button>\n <md-button class="md-primary md-accent md-raised" aria-label="Apply" ng-disabled="vm.searchOptions.conditions.length === 0" translate="DASHBOARDS.APPLY" translate-attr-aria-label="DASHBOARDS.APPLY" ng-click="vm.applyFilter()"></md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/core/directives/ms-advanced-search/ms-advanced-search.html",'<div layout="column" class="advanced-search-container" flex>\n <div layout-margin>\n <md-radio-group ng-model="vm.options.matchType" class="md-primary" layout="row">\n <md-radio-button value="$and" class="md-primary">{{ \'DASHBOARDS.MEET_ALL_CONDITIONS\' | translate }}\n </md-radio-button>\n <md-radio-button value="$or">{{ \'DASHBOARDS.MEET_ANY_CONDITIONS\' | translate }}</md-radio-button>\n </md-radio-group>\n </div>\n\n \x3c!-- ACTIVE CONDITIONS --\x3e\n <div layout="row" ng-if="vm.options.conditions.length > 0" class="advanced-search-conditions">\n <md-list>\n <md-list-item>\n <md-chips ng-model="vm.options.conditions" class="advanced-search-chips" readonly="true" md-removable="true" md-on-remove="vm.removeCondition()">\n <md-chip-template ms-chip-color="{{ $chip.style }}">\n <md-menu md-offset="50 0" ng-class="{\'no-click\': vm.pendingCondition}">\n <span>\n <p class="filter-text">{{ $chip.name }}</p>\n <em ng-show="$chip.operator" class="text-lowercase">{{ $chip.operator }}</em>\n <strong>{{ $chip.displayValue }}</strong>\n <em ng-show="$chip.displayEndValue" class="text-lowercase">{{ \'DASHBOARDS.AND\' | translate }}</em>\n <strong>{{ $chip.displayEndValue }}</strong>\n </span>\n <md-menu-content width=2 class="md-dense">\n <md-menu-item ng-hide="$chip.disabled">\n <md-button ng-click="vm.editCondition($chip)">Edit\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.setConditionStatus($chip)">\n {{ $chip.disabled ? \'Enable\' : \'Disable\' }}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-chip-template>\n <button type="button" md-chip-remove class="md-primary remove-filter">\n <md-icon md-font-icon="icon-cancel" aria-label="Remove Filter"></md-icon>\n </button>\n </md-chips>\n </md-list-item>\n </md-list>\n </div>\n\n \x3c!-- FILTERS --\x3e\n <div layout="row">\n <div layout="row" class="advanced-search-bar" layout-margin flex>\n \x3c!-- FIELD --\x3e\n <md-input-container flex="35">\n <md-icon md-font-icon="icon-filter-variant"></md-icon>\n <md-select class="font-size-12" ng-model="vm.selectedField" ng-change="vm.onFieldChange()" placeholder="{{ \'DASHBOARDS.SELECT_FIELD\' | translate }}" aria-label="Field">\n <md-option ng-value="field" ng-repeat="field in vm.options.fields">{{ field.name }}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!-- OPERATOR --\x3e\n <md-input-container flex="30">\n <md-icon md-font-icon="icon-format-text"></md-icon>\n <md-select class="font-size-12" ng-model="vm.selectedOperator" ng-change="vm.onOperatorChange(oldValue)" ng-focus="oldValue=vm.selectedOperator" md-selected-text="vm.selectedOperator ? (\'DASHBOARDS.\' + vm.selectedOperator.translate | translate) : (\'DASHBOARDS.SELECT_OPERATOR\' | translate)" ng-disabled="!vm.selectedField" aria-label="Operator">\n <md-option ng-value="operator" ng-repeat="operator in vm.availableOperators" ng-selected="vm.autoSelectOperator">\n <div layout="row" class="operators-list">\n <span class="operator-symbol">\n {{ operator.symbol }}\n </span>\n <span>\n {{ \'DASHBOARDS.\' + operator.translate | translate }}\n </span>\n </div>\n </md-option>\n </md-select>\n </md-input-container>\n\n \x3c!-- TEXT INPUT --\x3e\n <md-input-container ng-if="!vm.selectedField.type || vm.selectedField.type === \'text\'" class="no-errors" flex>\n <md-icon md-font-icon="icon-format-text"></md-icon>\n <input type="text" aria-label="Value" ng-model="vm.value" ng-change="vm.onValueChange()" ng-disabled="!vm.selectedField" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" placeholder="{{ \'DASHBOARDS.VALUE\' | translate }}">\n </md-input-container>\n \x3c!-- NUMERIC INPUT --\x3e\n <div ng-if="vm.selectedField.type === \'number\'" flex layout="row" layout-margin class="no-margin">\n <md-input-container class="no-errors" flex>\n <md-icon md-font-icon="icon-numeric"></md-icon>\n <input type="number" aria-label="Value" ng-model="vm.value" ng-change="vm.onValueChange()" ng-disabled="!vm.selectedField" min="0" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" placeholder="{{ vm.selectedOperator.type === \'$between\' ? \'DASHBOARDS.STARTING_VALUE\' : \'DASHBOARDS.VALUE\' | translate }}">\n </md-input-container>\n <md-input-container class="no-errors" ng-if="vm.selectedOperator.type === \'$between\'" ng-class="{\'md-input-invalid\': !vm.isValidRange}" flex>\n <md-icon md-font-icon=" icon-numeric">\n </md-icon>\n <input class="md-input" type="number" aria-label="Value" ng-model="vm.endRangeValue" ng-change="vm.checkRange()" ng-disabled="!vm.value" min="vm.value" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" placeholder="{{ \'DASHBOARDS.ENDING_VALUE\' | translate }}">\n <div ng-if="!vm.isValidRange" class="md-input-message-animation md-input-messages-animation">\n {{ (\'DASHBOARDS.VALUE_RANGE_CHECK\' | translate) + \' \' + vm.value }}\n </div>\n </md-input-container>\n </div>\n \x3c!-- SELECT --\x3e\n <md-input-container ng-if="vm.selectedField.type === \'select\'" flex>\n <md-icon md-font-icon="icon-format-text"></md-icon>\n <md-select class="font-size-12" ng-model="vm.value" md-on-open="vm.getValues()" ng-change="vm.onValueChange()" ng-model-options="{trackBy: \'$value.id\'}" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" placeholder="{{ \'DASHBOARDS.VALUE\' | translate }}" aria-label="Value">\n <md-option ng-value="item" ng-repeat="item in vm.selectedField.values">{{item.name}}\n </md-option>\n </md-select>\n </md-input-container>\n \x3c!-- MULTISELECT --\x3e\n <md-input-container ng-if="vm.selectedField.type === \'multiselect\'" flex>\n <md-icon md-font-icon="icon-format-text"></md-icon>\n <md-select class="font-size-12" multiple ng-model="vm.value" md-on-open="vm.getValues()" ng-change="vm.onValueChange()" ng-model-options="{trackBy: \'$value.id\'}" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" placeholder="{{ \'DASHBOARDS.VALUE\' | translate }}" aria-label="Value">\n <md-option ng-value="item" ng-repeat="item in vm.selectedField.values">{{item.name}}\n </md-option>\n </md-select>\n </md-input-container>\n \x3c!-- DATE INPUT --\x3e\n <div ng-if="vm.selectedField.type === \'date\'" flex layout="row">\n <mdp-date-picker mdp-open-on-click ng-model="vm.value" ng-change="vm.onValueChange()" mdp-max-date="vm.maxDateRange" mdp-placeholder="{{ vm.selectedOperator.type === \'$between\' ? \'DASHBOARDS.STARTING_DATE\' : \'DASHBOARDS.VALUE\' | translate }}" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" flex>\n </mdp-date-picker>\n <mdp-date-picker mdp-open-on-click ng-if="vm.selectedOperator.type === \'$between\'" ng-change="vm.checkRange()" ng-model="vm.endRangeValue" mdp-min-date="vm.minDateRange" mdp-disabled="!vm.value" mdp-placeholder="{{ \'DASHBOARDS.ENDING_DATE\' | translate }}" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" flex>\n </mdp-date-picker>\n </div>\n \x3c!-- AUTOCOMPLETE --\x3e\n <div layout="row" layout-align="start start" ng-if="vm.selectedField.type === \'autocomplete\' && vm.selectedOperator.type != \'$substring\'" class=" autocomplete-input" flex>\n <md-icon md-font-icon="icon-format-text"></md-icon>\n <md-autocomplete md-selected-item="vm.value" md-selected-item-change="vm.onValueChange()" md-items="item in vm.getValues()" md-search-text="vm.searchText" md-item-text="item.displayValue" md-min-length="4" md-no-cache="true" md-floating-label="{{ \'DASHBOARDS.VALUE\' | translate }}" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" flex>\n <md-item-template>\n <span md-highlight-text="vm.searchText" md-highlight-flags="i">{{item.displayValue}}</span>\n </md-item-template>\n </md-autocomplete>\n </div>\n <md-input-container ng-if="vm.selectedField.type === \'autocomplete\' && vm.selectedOperator.type === \'$substring\'" class="no-errors" flex>\n <md-icon md-font-icon="icon-format-text"></md-icon>\n <input type="text" aria-label="Value" ng-model="vm.value" ng-change="vm.onValueChange()" ng-disabled="!vm.selectedField" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" placeholder="{{ \'DASHBOARDS.VALUE\' | translate }}">\n </md-input-container>\n </div>\n <md-button class="md-fab md-mini md-primary mt-20" ng-if="!vm.pendingCondition" ng-disabled="!vm.isValidCondition" aria-label="Add filter" ng-click="vm.addCondition()" translate-attr-aria-label="DASHBOARDS.ADD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-button class="md-fab md-mini mt-20" ng-if="vm.pendingCondition" ng-disabled="!vm.isValidCondition" aria-label="Update filter" ng-click="vm.updateCondition()" translate-attr-aria-label="DASHBOARDS.UPDATE">\n <md-icon md-font-icon="icon-check"></md-icon>\n </md-button>\n <md-button class="md-fab md-mini md-primary mt-20" ng-if="vm.pendingCondition" aria-label="Cancel filter update" ng-click="vm.cancelUpdateCondition()" translate-attr-aria-label="DASHBOARDS.CANCEL">\n <md-icon md-font-icon="icon-close"></md-icon>\n </md-button>\n </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-1/template-1.html",'<div class="template-1">\n <div class="media">\n <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n </div>\n\n <div class="content pv-24 ph-16">\n <div class="title h1" ng-if="card.title">\n {{card.title}}\n </div>\n\n <div class="subtitle secondary-text" ng-if="card.subtitle">\n {{card.subtitle}}\n </div>\n\n <div class="text pt-16" ng-if="card.text">\n {{card.text}}\n </div>\n </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-10/template-10.html",'<div class="template-10 p-16">\n <div class="pb-16" layout="row" layout-align="space-between center">\n <div class="info">\n <div class="title secondary-text" ng-if="card.title">\n {{card.title}}\n </div>\n\n <div class="subtitle h2" ng-if="card.subtitle">\n {{card.subtitle}}\n </div>\n </div>\n\n <div class="media ml-16">\n <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n </div>\n </div>\n\n <div class="text">\n {{card.text}}\n </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-2/template-2.html",'<div class="template-2">\n <div class="header p-16" layout="row" layout-align="start center">\n <div ng-if="card.avatar">\n <img class="avatar mr-16" ng-src="{{card.avatar.src}}" alt="{{card.avatar.alt}}">\n </div>\n\n <div class="info">\n <div class="title" ng-if="card.title">\n {{card.title}}\n </div>\n\n <div class="subtitle secondary-text" ng-if="card.subtitle">\n {{card.subtitle}}\n </div>\n </div>\n </div>\n\n <div class="media">\n <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n </div>\n\n <div class="text p-16" ng-if="card.text">\n {{card.text}}\n </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-3/template-3.html",'<div class="template-3 p-16 teal-bg white-fg" layout="row" layout-align="space-between">\n <div layout="column" layout-align="space-between">\n <div class="info">\n <div class="title h1" ng-if="card.title">\n {{card.title}}\n </div>\n\n <div class="subtitle h3 secondary-text" ng-if="card.subtitle">\n {{card.subtitle}}\n </div>\n </div>\n\n <div class="cta">\n <md-button class="m-0">{{card.cta}}</md-button>\n </div>\n </div>\n\n <div class="media pl-16">\n <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-4/template-4.html",'<div class="template-4">\n <div class="info white-fg ph-16 pv-24">\n <div class="title h1" ng-if="card.title">\n {{card.title}}\n </div>\n\n <div class="text" ng-if="card.text">\n {{card.text}}\n </div>\n </div>\n\n <div class="media">\n <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-5/template-5.html",'<div class="template-5 p-16" layout="row" layout-align="space-between start">\n <div class="info">\n <div class="title secondary-text" ng-if="card.title">\n {{card.title}}\n </div>\n\n <div class="event h2" ng-if="card.event">\n {{card.event}}\n </div>\n </div>\n\n <div class="media ml-16">\n <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-6/template-6.html",'<div class="template-6">\n <div class="content pv-24 ph-16">\n <div class="subtitle secondary-text" ng-if="card.subtitle">\n {{card.subtitle}}\n </div>\n\n <div class="title h2" ng-if="card.title">\n {{card.title}}\n </div>\n\n <div class="text pt-8" ng-if="card.text">\n {{card.text}}\n </div>\n </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-7/template-7.html",'<div class="template-7" layout="row" layout-align="space-between">\n <div class="info" layout="column" layout-align="space-between" layout-fill flex>\n <div class="p-16">\n <div class="title h1" ng-if="card.title">\n {{card.title}}\n </div>\n\n <div class="subtitle h4 secondary-text" ng-if="card.subtitle">\n {{card.subtitle}}\n </div>\n\n <div class="text h4 pt-8" ng-if="card.text">\n {{card.text}}\n </div>\n </div>\n\n <div>\n <md-divider></md-divider>\n <div class="p-8" layout="row">\n <md-icon md-font-icon="icon-star-outline" class="mh-5"></md-icon>\n <md-icon md-font-icon="icon-star-outline" class="mh-5"></md-icon>\n <md-icon md-font-icon="icon-star-outline" class="mh-5"></md-icon>\n <md-icon md-font-icon="icon-star-outline" class="mh-5"></md-icon>\n <md-icon md-font-icon="icon-star-outline" class="mh-5"></md-icon>\n </div>\n </div>\n </div>\n\n <div class="media">\n <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-8/template-8.html",'<div class="template-8">\n <div class="media">\n <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n </div>\n\n <div class="content pv-24 ph-16">\n <div class="title h1" ng-if="card.title">\n {{card.title}}\n </div>\n\n <div class="subtitle secondary-text" ng-if="card.subtitle">\n {{card.subtitle}}\n </div>\n\n <div class="buttons pt-16">\n <md-button class="m-0">{{card.button1}}</md-button>\n <md-button class="m-0 md-accent">{{card.button2}}</md-button>\n </div>\n\n <div class="text pt-16" ng-if="card.text">\n {{card.text}}\n </div>\n </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-9/template-9.html",'<div class="template-9">\n <div class="header p-16" layout="row" layout-align="start center">\n <div ng-if="card.avatar">\n <img class="avatar mr-16" ng-src="{{card.avatar.src}}" alt="{{card.avatar.alt}}">\n </div>\n\n <div class="info">\n <div class="title" ng-if="card.title">\n {{card.title}}\n </div>\n\n <div class="subtitle secondary-text" ng-if="card.subtitle">\n {{card.subtitle}}\n </div>\n\n </div>\n </div>\n\n <div class="text ph-16 pb-16" ng-if="card.text">\n {{card.text}}\n </div>\n\n <div class="media">\n <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n </div>\n\n <div class="buttons m-8">\n <md-button class="md-icon-button mr-16" aria-label="Favorite">\n <md-icon md-font-icon="icon-heart-outline" class="s24"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Share">\n <md-icon md-font-icon="icon-share" class="s24"></md-icon>\n </md-button>\n </div>\n\n</div>'),e.put("app/core/directives/ms-click-to-call/ms-click-to-call.html",'<section ng-if="type !== \'button\'">\n <span ng-if="!showMenu()" privacy="{{ privacy }}" ng-cloak>{{target}}</span>\n <md-menu ng-if="showMenu()">\n <a aria-label="Target" ng-click="$mdOpenMenu($event)">\n <span ng-if="prefix" privacy="{{ privacy }}" ng-cloak>{{prefix}}-</span>\n <span privacy="{{ privacy }}" ng-cloak>{{target}}</span>\n </a>\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="call(prefix ? prefix + target : target)">\n {{\'DASHBOARDS.CALL_NUMBER\' | translate}} (<span privacy="{{ privacy }}" ng-cloak>{{prefix ? prefix + \'-\' + target : target}}</span>)\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="transfer(prefix ? prefix + target : target)">\n {{\'DASHBOARDS.TRANSFER_NUMBER\' | translate}} (<span privacy="{{ privacy }}" ng-cloak>{{prefix ? prefix + \'-\' + target : target}}</span>)\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n</section>\n<section ng-if="type === \'button\'">\n <md-button ng-if="!showMenu()" ng-disabled="true" class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="NEW CALL" aria-label="NEW CALL">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n <md-menu ng-if="showMenu()">\n <md-button class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="NEW CALL" ng-click="$mdOpenMenu($event)" aria-label="NEW CALL">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="call(prefix ? prefix + target : target)">\n {{\'DASHBOARDS.CALL_NUMBER\' | translate}} (<span privacy="{{ privacy }}" ng-cloak>{{prefix ? prefix + \'-\' + target : target}}</span>)\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="transfer(target)">\n {{\'DASHBOARDS.TRANSFER_NUMBER\' | translate}} (<span privacy="{{ privacy }}" ng-cloak>{{prefix ? prefix + \'-\' + target : target}}</span>)\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n</section>'),e.put("app/core/directives/ms-dual-multiselect/ms-dual-multiselect.html",'<div ng-cloak layout-gt-sm="row" layout="column">\n <div flex-gt-sm="50" flex="45">\n <md-input-container class="md-icon-float md-block margin-0">\n <md-icon md-font-icon="icon-magnify" aria-label="swap"></md-icon>\n <input ng-model="query" type="text" placeholder="{{ \'STAFF.PERMISSIONS_PLACEHOLDER_SEARCH\' | translate }}">\n </md-input-container>\n <md-content class="border h-300">\n <md-list class="md-dense no-padding" layout-fill layout-align="center center">\n <md-list-item class="md-3-line" ng-class="{\'read-only-mode\': vm.readOnly || vm.addDisabled}" ng-disabled="vm.readOnly || vm.addDisabled" ng-repeat="item in availableItems = (vm.options.items | filter: query) | orderBy: vm.options.orderBy" ng-click="vm.canTransfer(item, vm.options, false)">\n <div class="md-list-item-text" layout="column">\n <h3 ng-if="vm.options.line1">{{vm.getLine(item, vm.options.line1)}}</h3>\n <h4 ng-if="vm.options.line2">{{vm.getLine(item, vm.options.line2)}}</h4>\n <p ng-if="vm.options.line3">{{vm.getLine(item, vm.options.line3)}}</p>\n <p class="ms-dual-multiselect-line-xs" ng-if="vm.options.line4">{{vm.getLine(item, vm.options.line4)}}\n </p>\n </div>\n <md-icon ng-hide="vm.readOnly && !vm.addDisabled" ng-class="{\'add-disabled\': vm.addDisabled}" md-font-icon="icon-arrow-right-bold" aria-label="swap">\n </md-icon>\n <md-divider></md-divider>\n </md-list-item>\n </md-list>\n </md-content>\n <div class="margin-10" layout="row">\n <span class="h4" flex>{{vm.options.labelAll || \'All Items\'}} ({{availableItems.length}})</span>\n <md-icon ng-hide="vm.options.showSelectAndDeselectAll === false || vm.readOnly" ng-class="{\'add-disabled\': vm.addDisabled}" ng-disabled="vm.addDisabled" md-font-icon="icon-chevron-double-right" aria-label="swap" ng-click="vm.transfer(vm.options.items, vm.options.selectedItems, -1, false)"></md-icon>\n </div>\n </div>\n\n <div flex="10" layout="row" layout-align="center center">\n <md-icon md-font-icon="icon-swap-horizontal" aria-label="swap"></md-icon>\n </div>\n\n <div flex-gt-sm="50" flex="45">\n <md-input-container class="md-icon-float md-block margin-0">\n <md-icon md-font-icon="icon-magnify" aria-label="swap"></md-icon>\n <input ng-model="selectedQuery" type="text" placeholder="{{ \'STAFF.PERMISSIONS_PLACEHOLDER_SEARCH\' | translate }}">\n </md-input-container>\n <md-content class="border h-300">\n <md-list class="md-dense no-padding" layout-fill layout-align="center center">\n <md-list-item class="md-3-line" ng-class="{\'read-only-mode\': vm.readOnly || !item.isValid}" ng-disabled="vm.readOnly" ng-repeat="item in associatedItems = (vm.options.selectedItems | filter: selectedQuery) | orderBy: vm.options.orderBy" ng-click="vm.canTransfer(item, vm.options, true)">\n <md-icon ng-class="{\'hidden\': vm.readOnly || !item.isValid}" md-font-icon="icon-arrow-left-bold" aria-label="swap"></md-icon>\n <div class="md-list-item-text" layout="column">\n <h3 ng-if="vm.options.line1">{{vm.getLine(item, vm.options.line1)}}</h3>\n <h4 ng-if="vm.options.line2">{{vm.getLine(item, vm.options.line2)}}</h4>\n <p ng-if="vm.options.line3">{{vm.getLine(item, vm.options.line3)}}</p>\n <p class="ms-dual-multiselect-line-xs" ng-if="vm.options.line4">{{vm.getLine(item, vm.options.line4)}}\n </p>\n </div>\n <md-divider></md-divider>\n </md-list-item>\n </md-list>\n </md-content>\n <div class="margin-10" layout="row">\n <md-icon ng-hide="vm.options.showSelectAndDeselectAll === false || vm.readOnly" md-font-icon="icon-chevron-double-left" aria-label="swap" ng-click="vm.transfer(vm.options.selectedItems, vm.options.items, -1, true)"></md-icon>\n <span class="h4 text-right" flex>{{vm.options.labelSelected || \'Selected Items\'}}\n ({{associatedItems.length}})</span>\n </div>\n </div>\n</div>'),e.put("app/core/directives/ms-font-family/ms-font-family.html",'<md-select ng-model="ngModel" class="no-margin">\n <md-option ng-repeat="font in fonts" ng-value="font.value"><span ng-style="{\'font-family\': font.value}">{{font.option}}</span>\n </md-option>\n</md-select>'),e.put("app/core/directives/ms-info-bar/ms-info-bar.html",'<div id="ms-info-bar" layout="row" layout-align="start center" flex>\n <div id="ms-info-bar-message" ng-transclude flex></div>\n <md-button id="ms-info-bar-close" class="md-icon-button" aria-label="Close" ng-click="removeInfoBar()">\n <md-icon md-font-icon="icon-close s20"></md-icon>\n </md-button>\n</div>'),e.put("app/core/directives/ms-material-color-picker/ms-material-color-picker.html",'<md-menu md-position-mode="target-right target">\n\n <div ng-click="$mdOpenMenu($event)">\n <ms-color-picker-button>\n <md-button aria-label="Row Color" md-menu-origin ng-click="$mdOpenMenu($event)" ng-class="vm.selectedColor.class">\n\n <span ng-show="vm.selectedColor.palette">\n {{vm.selectedColor.palette}} {{vm.selectedColor.hue}}\n </span>\n <span ng-show="!vm.selectedColor.palette">\n Select Color\n </span>\n </md-button>\n </ms-color-picker-button>\n </div>\n\n <md-menu-content class="ms-material-color-picker-menu-content" layout-column>\n\n <header ng-class="vm.selectedColor.class || \'md-accent-bg\'" class="md-whiteframe-4dp" layout="row" layout-align="space-between center">\n <md-button md-prevent-menu-close ng-click="vm.activateHueSelection(false,false)" class="md-icon-button" ng-class="{\'hidden\':!vm.selectedPalette}" aria-label="Palette">\n <md-icon md-font-icon="icon-arrow-left" class="s20"></md-icon>\n </md-button>\n\n <span ng-if="vm.selectedColor.palette">\n {{vm.selectedColor.palette}} {{vm.selectedColor.hue}}\n </span>\n\n <span ng-if="!vm.selectedColor.palette">\n Select Color\n </span>\n\n <md-button class="remove-color-button md-icon-button" ng-click="vm.removeColor()" aria-label="Remove Color">\n <md-icon md-font-icon="icon-delete" class="s20"></md-icon>\n </md-button>\n </header>\n\n <div class="colors" ms-scroll>\n <div ng-show="!vm.selectedPalette" layout="row" layout-wrap>\n <div class="color" ng-class="\'md-\'+palette+\'-500-bg\'" ng-repeat="(palette, hues) in vm.palettes" ng-click="vm.activateHueSelection(palette,hues)" layout="row" layout-align="start end" md-prevent-menu-close md-ink-ripple>\n <span class="label">\n {{palette}}\n </span>\n </div>\n </div>\n\n <div ng-show="vm.selectedPalette" layout="row" layout-wrap>\n <div class="color" ng-class="\'md-\'+vm.selectedPalette+\'-\'+hue+\'-bg\'" ng-repeat="(hue, values) in vm.selectedHues" ng-click="vm.selectColor(vm.selectedPalette,hue)" layout="row" layout-align="start end" md-ink-ripple>\n <span class="label">\n {{hue}}\n </span>\n <i ng-if="vm.selectedPalette == vm.selectedColor.palette && hue == vm.selectedColor.hue" class="s16 icon-check">\n </i>\n </div>\n </div>\n\n </div>\n\n </md-menu-content>\n</md-menu>'),e.put("app/core/directives/ms-navigation/templates/horizontal.html",'<div class="navigation-toggle" hide-gt-sm>\n <md-button class="md-icon-button" ng-click="vm.toggleHorizontalMobileMenu()" aria-label="Toggle Mobile Navigation">\n <md-icon md-font-icon="icon-menu"></md-icon>\n </md-button>\n</div>\n\n<ul class="horizontal">\n <li ng-repeat="node in vm.navigation" ms-navigation-horizontal-node="node" ng-class="{\'has-children\': vm.hasChildren}" ng-include="\'navigation-horizontal-nested.html\'"></li>\n</ul>\n\n\x3c!-- Nested horizontal navigation template --\x3e\n<script type="text/ng-template" id="navigation-horizontal-nested.html">\n\n <div ms-navigation-horizontal-item layout="row" ng-if="!vm.isHidden()">\n\n <div class="ms-navigation-horizontal-button" ng-if="!node.uisref && node.title"\n ng-class="{\'active md-accent-bg md-accent-fg\': vm.isActive}">\n <i class="icon s18 {{node.icon}}" ng-if="node.icon"></i>\n <span class="title" translate="{{node.translate}}" flex>{{node.title}}</span>\n <span class="badge white-fg" style="background: {{node.badge.color}}" ng-if="node.badge">{{node.badge.content}}</span>\n <i class="icon-chevron-right s18 arrow" ng-if="vm.hasChildren"></i>\n </div>\n\n <a class="ms-navigation-horizontal-button" ui-sref="{{node.uisref}}" ui-sref-active="active md-accent-bg"\n ng-class="{\'active md-accent-bg md-accent-fg\': vm.isActive}"\n ng-if="node.uisref && node.title">\n <i class="icon s18 {{node.icon}}" ng-if="node.icon"></i>\n <span class="title" translate="{{node.translate}}" flex>{{node.title}}</span>\n <span class="badge white-fg" style="background: {{node.badge.color}}" ng-if="node.badge">{{node.badge.content}}</span>\n <i class="icon-chevron-right s18 arrow" ng-if="vm.hasChildren"></i>\n </a>\n\n </div>\n\n <ul ng-if="vm.hasChildren && !vm.isHidden()">\n <li ng-repeat="node in node.children" ms-navigation-horizontal-node="node"\n ng-class="{\'has-children\': vm.hasChildren}"\n ng-include="\'navigation-horizontal-nested.html\'"></li>\n </ul>\n\n<\/script>\n\x3c!-- / Nested navigation template --\x3e'),e.put("app/core/directives/ms-navigation/templates/vertical.html",'<ul>\n <li ng-repeat="node in vm.navigation" ms-navigation-node="node" ng-class="{\'collapsed\': vm.collapsed, \'has-children\': vm.hasChildren}" ng-include="\'navigation-nested.html\'"></li>\n</ul>\n\n\x3c!-- Nested navigation template --\x3e\n<script type="text/ng-template" id="navigation-nested.html">\n\n <div id="{{ node.id }}" ms-navigation-item layout="row" ng-if="!vm.isHidden()">\n\n <div class="ms-navigation-button" ng-if="!node.uisref && node.title">\n <i class="icon s16 {{node.icon}}" ng-if="node.icon"></i>\n <span class="title" translate="{{node.translate}}" flex>{{node.title}}</span>\n <span class="badge white-fg margin-right-20" ng-style="{\'background\': node.badge.color}" ng-if="node.badge">{{node.badge.content}}</span>\n <i class="icon-chevron-right s16 arrow" ng-if="vm.collapsable && vm.hasChildren"></i>\n </div>\n\n <a class="ms-navigation-button" ui-sref="{{node.uisref}}" ui-sref-active="active md-accent-bg" ng-if="node.uisref && node.title">\n <i class="icon s16 {{node.icon}}" ng-if="node.icon"></i>\n <span class="title" translate="{{node.translate}}" flex>{{node.title}}</span>\n <span class="badge white-fg margin-right-20" ng-style="{\'background\': node.badge.color}" ng-if="node.badge">{{node.badge.content}}</span>\n <i class="icon-chevron-right s16 arrow" ng-if="vm.collapsable && vm.hasChildren"></i>\n </a>\n\n </div>\n\n <ul ng-if="vm.hasChildren && !vm.isHidden()">\n <li ng-repeat="node in node.children" ms-navigation-node="node"\n ng-class="{\'collapsed\': vm.collapsed, \'has-children\': vm.hasChildren}"\n ng-include="\'navigation-nested.html\'"></li>\n </ul>\n\n<\/script>\n\x3c!-- / Nested navigation template --\x3e'),e.put("assets/ms-phonebar/ms-phonebar-dialpad.html",'\x3c!-- Dialpad --\x3e\n<md-content ng-if="vm_pb.showDialpad" class="num-pad" layout="column">\n <section layout="row" layout-align="start center">\n <span><img class="num-pad-logo" layout-padding src="/api/settings/1/logo" alt="logo" /></span>\n <span class="md-subhead">Dialpad</span>\n <div layout="row" layout-align="end center" flex>\n <md-button class="md-icon-button" ng-click="vm_pb.closeDialpad()">\n <md-icon md-font-icon="icon-close"></md-icon>\n </md-button>\n </div>\n </section>\n <md-divider></md-divider>\n <section layout="row">\n <div class="span4" ng-repeat="item in ::[{n: 1, l: []}, {n: 2, l: [\'a\', \'b\', \'c\']}, {n: 3, l: [\'d\', \'e\', \'f\']}]" ng-click="vm_pb.type(item.n, true)">\n <div class="num">\n <div class="txt">\n {{item.n}} <span class="small">\n <p>\n <span ng-repeat="l in ::item.l">{{l | uppercase}}</span>\n </p>\n </span>\n </div>\n </div>\n </div>\n </section>\n <section layout="row">\n <div class="span4" ng-repeat="item in ::[{n: 4, l: [\'g\', \'h\', \'i\']}, {n: 5, l: [\'j\', \'k\', \'l\']}, {n: 6, l: [\'m\', \'n\', \'o\']}]" ng-click="vm_pb.type(item.n, true)">\n <div class="num">\n <div class="txt">\n {{item.n}} <span class="small">\n <p>\n <span ng-repeat="l in ::item.l">{{l | uppercase}}</span>\n </p>\n </span>\n </div>\n </div>\n </div>\n </section>\n <section layout="row">\n <div class="span4" ng-repeat="item in ::[{n: 7, l: [\'p\', \'q\', \'r\', \'s\']}, {n: 8, l: [\'t\', \'u\', \'v\']}, {n: 9, l: [\'w\', \'x\', \'y\', \'z\']}]" ng-click="vm_pb.type(item.n, true)">\n <div class="num">\n <div class="txt">\n {{item.n}} <span class="small">\n <p>\n <span ng-repeat="l in ::item.l">{{l | uppercase}}</span>\n </p>\n </span>\n </div>\n </div>\n </div>\n </section>\n <section layout="row">\n <div class="span4" ng-repeat="item in ::[{n: \'*\', l: []}]" ng-click="vm_pb.type(item.n, true)">\n <div class="num" layout="column" layout-align="center center">\n <div class="txt" layout="column" layout-align="center center">\n {{item.n}}\n </div>\n </div>\n </div>\n <div class="span4" ng-repeat="item in ::[{n: 0, l: [\'+\']}]" ng-click="vm_pb.type(item.n, true)">\n <div class="num">\n <div class="txt">\n {{item.n}} <span class="small">\n <p>\n <span ng-repeat="l in ::item.l">{{l | uppercase}}</span>\n </p>\n </span>\n </div>\n </div>\n </div>\n <div class="span4" ng-repeat="item in ::[{n: \'#\', l: []}]" ng-click="vm_pb.type(item.n, true)">\n <div class="num" layout="column" layout-align="center center">\n <div class="txt" layout="column" layout-align="center center">\n {{item.n}}\n </div>\n </div>\n </div>\n </section>\n</md-content>\n\x3c!-- Dialpad --\x3e\n\n\x3c!-- Input&Media Area --\x3e\n<div layout="row" layout-align="start center">\n <div layout="row" layout-align="center center">\n \x3c!-- START Ringing Tone--\x3e\n <md-button class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Ringing" ng-click="vm_pb.conf.ringingMute = !vm_pb.conf.ringingMute; vm_pb.initDevice(\'ringing\', true)" ng-disabled="!vm_pb.registered">\n <md-icon md-font-icon="{{vm_pb.conf.ringingMute ? \'icon-bell-off\' : \'icon-bell-ring\'}}" class="icon s14" ng-class="vm_pb.conf.ringingMute ? \'red-fg\' : \'grey-fg\'">\n <md-tooltip><span translate="TOOLBAR.RINGING">Ringing</span></md-tooltip>\n </md-icon>\n </md-button>\n \x3c!-- END Ringing Tone --\x3e\n\n \x3c!-- START Speaker --\x3e\n <md-button class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Speaker" ng-click="vm_pb.conf.speakerMute = !vm_pb.conf.speakerMute; vm_pb.initDevice(\'speaker\', true)" ng-disabled="!vm_pb.registered">\n <md-icon md-font-icon="{{vm_pb.conf.speakerMute ? \'icon-volume-off\' : \'icon-volume\'}}" class="icon s14" ng-class="vm_pb.conf.speakerMute ? \'red-fg\' : \'grey-fg\'">\n <md-tooltip><span translate="TOOLBAR.SPEAKER">Speaker</span></md-tooltip>\n </md-icon>\n </md-button>\n \x3c!-- END Speaker --\x3e\n\n \x3c!-- START Microphone --\x3e\n <md-button ng-disabled="(!vm_pb.registered || vm_pb.sessions.length==0)?true:false" class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Microphone" ng-click="vm_pb.conf.microphoneMute = !vm_pb.conf.microphoneMute; vm_pb.initDevice(\'microphone\', true)">\n <md-icon md-font-icon="{{vm_pb.conf.microphoneMute ? \'icon-microphone-off\' : \'icon-microphone\'}}" class="icon s14" ng-class="vm_pb.conf.microphoneMute ? \'red-fg\' : \'grey-fg\'">\n <md-tooltip><span translate="TOOLBAR.MICROPHONE">Microphone</span></md-tooltip>\n </md-icon>\n </md-button>\n \x3c!-- END Microphone --\x3e\n\n \x3c!-- START Registered --\x3e\n <span>\n <span class="quantity-indicator md-red-500-bg" ng-class="vm_pb.registered ? \'md-green-500-bg\' : \'md-red-500-bg\'"></span>\n <md-tooltip><span>{{vm_pb.conf.license ? (vm_pb.registered ? \'TOOLBAR.REGISTERED\' : \'TOOLBAR.NOT_REGISTERED\') : \'TOOLBAR.WEBRTC_LICENSE_NOT_ENABELD\' | translate}}\n <timer ng-if="vm_pb.registered"></timer>\n </span>\n </md-tooltip>\n </span>\n \x3c!-- END Registered --\x3e\n </div>\n <div layout="column" layout-align="center start">\n <div layout="row" layout-align="start center">\n \x3c!-- START Target --\x3e\n <angucomplete-alt id="ms-target-wrap" pause="10" local-data="vm_pb.calls" search-fields="target" title-field="target" minlength="0" input-class="input-number" disable-input="!vm_pb.registered" match-class="highlight" template-url="assets/ms-phonebar/ms-phonebar-input.html" input-changed="vm_pb.targetChanged" selected-object="vm_pb.targetSelected" clear-selected="true" ng-keypress="vm_pb.typeWrapper($event)" focus-first="true" disable-autocomplete="vm_pb.currentUser.privacyEnabled" />\n \x3c!-- END Target --\x3e\n\n \x3c!-- Auto Answer --\x3e\n <div ng-if="vm_pb.conf.autoAnswer" class="red-fg" style="padding-left: 10px;">\n <span class="font-size-20">A<span class="font-size-16">A</span></span>\n </div>\n \x3c!-- Auto Answer --\x3e\n\n <md-button class="md-fab md-mini white-bg width-30 height-30" aria-label="Dialpad" ng-click="vm_pb.toggleDialpad()" ng-disabled="!vm_pb.registered">\n <md-icon md-font-icon="icon-apps" class="icon grey-fg s16"></md-icon>\n </md-button>\n <md-button ng-if="vm_pb.target" class="md-fab md-mini white-bg width-25 height-25" aria-label="Call" style="margin-left: 0px;" ng-click="vm_pb.call()">\n <md-icon md-font-icon="icon-phone" class="icon green-fg s12"></md-icon>\n </md-button>\n </div>\n </div>\n</div>\n\x3c!-- Input&Media Area --\x3e\n\n\x3c!-- START 3WC --\x3e\n<md-button ng-if="vm_pb.canGoInConference" class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="3Way" ng-click="vm_pb.start3WayConf(); $event.stopPropagation();">\n <md-icon md-font-icon="icon-account-multiple-plus" class="icon orange-fg s14"></md-icon>\n <md-tooltip><span translate="TOOLBAR.CONFERENCE">Conference</span></md-tooltip>\n</md-button>\n\x3c!-- END 3Way --\x3e\n\n\n<div class="toolbar-separator"></div>\n\n\x3c!-- Sessions Area --\x3e\n<div class="sessions" layout="row" layout-align="start center" flex>\n <div layout="row" layout-align="center center" ng-if="!vm_pb.conf.license">\n <md-icon md-font-icon="icon-account-alert" class="icon s36 red-fg"></md-icon>\n <span layout-margin translate="TOOLBAR.WEBRTC_LICENSE_NOT_ENABELD"></span>\n </div>\n\n <div id="{{\'div_session_\'+session.id.substr(0,32)}}" ng-repeat="session in vm_pb.sessions" class="session" layout="row" ng-click="(vm_pb.sessions.length > 1) && vm_pb.selectSession(session)">\n <md-button ng-if="vm_pb.conf.recording && session.confirmed" class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Record" ng-click="vm_pb.record(session); $event.stopPropagation();">\n <md-icon md-font-icon="icon-radiobox-marked" class="icon s14" ng-class="session.monitor ? \'red-fg\' : \'grey-fg\'"></md-icon>\n </md-button>\n <div layout="column" layout-align="center start">\n <span class="session-info">\n <span ng-if="session.user == session.name" privacy ng-cloak>{{session.user}}</span>\n <span ng-if="session.user != session.name" privacy ng-cloak>{{session.name}}</span> <span ng-if="session.user != session.name" privacy ng-cloak>{{session.user}}</span>\n </span>\n <span class="session-info" layout="row" layout="start center">\n <timer></timer>\n </span>\n </div>\n\n \x3c!-- START Answer --\x3e\n <md-button ng-if="session.incoming && !session.confirmed" class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Anser" ng-click="vm_pb.answer(session); $event.stopPropagation();">\n <md-icon md-font-icon="icon-phone" class="icon green-fg s12"></md-icon>\n </md-button>\n \x3c!-- END Answer --\x3e\n\n \x3c!-- START Hangup --\x3e\n <md-button class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Terminate" ng-click="vm_pb.terminate(session); $event.stopPropagation();">\n <md-icon md-font-icon="icon-phone-hangup" class="icon red-fg s12"></md-icon>\n </md-button>\n \x3c!-- END Hangup --\x3e\n\n \x3c!-- START Hold/Unhold --\x3e\n <md-button ng-if="session.confirmed && !vm_pb.isInConference" class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Hold" ng-click="(session.localHold ? vm_pb.unhold(session) : vm_pb.hold(session)); $event.stopPropagation();">\n <md-icon md-font-icon="{{session.localHold ? \'icon-play\' : \'icon-pause\'}}" class="icon grey-fg s12"></md-icon>\n </md-button>\n \x3c!-- END Hold/Unhold --\x3e\n\n \x3c!-- START Transfer --\x3e\n <md-button ng-if="session.confirmed && !session.localHold && vm_pb.sessions.length == 1 && !vm_pb.isInConference" class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Refer" ng-click="vm_pb.refer(session); $event.stopPropagation();">\n <md-icon md-font-icon="icon-phone-forward" class="icon purple-fg s12"></md-icon>\n </md-button>\n \x3c!-- END transfer --\x3e\n\n \x3c!-- START Attended Transfer --\x3e\n <md-button ng-if="session.confirmed && !session.localHold && vm_pb.sessions.length>1" class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Refer Attended" ng-click="vm_pb.referAttended(session); $event.stopPropagation();">\n <md-icon md-font-icon="icon-phone-forward" class="icon purple-fg s12"></md-icon>\n </md-button>\n \x3c!-- END Attended Transfer --\x3e\n </div>\n</div>\n\x3c!-- Sessions Area --\x3e'),e.put("assets/ms-phonebar/ms-phonebar-input.html",'<div class="angucomplete-holder" ng-class="{\'angucomplete-dropdown-visible\': showDropdown}">\n <input id="ms-target" ng-model="searchStr" ng-disabled="disableInput" type="text" placeholder="{{placeholder}}" ng-focus="onFocusHandler()" class="{{inputClass}}" ng-focus="resetHideResults()" ng-blur="hideResults($event)" autocapitalize="off" autocorrect="off" autocomplete="off" ng-change="inputChangeHandler(searchStr)" />\n <div class="angucomplete-dropdown" ng-show="showDropdown && !(!searching && (!results || results.length == 0))">\n <div class="angucomplete-row" ng-repeat="result in results" ng-click="selectResult(result)" ng-mouseenter="hoverRow($index)" ng-class="{\'angucomplete-selected-row\': $index == currentIndex}">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="{{result.originalObject.inbound ? \'icon-arrow-bottom-left\' : \'icon-arrow-top-right\'}}" class="icon no-margin s22"></md-icon>\n <span style="margin-left: 8px;">({{result.originalObject.time}}) - <span class="angucomplete-title" ng-if="matchClass" ng-bind-html="result.title" privacy ng-cloak></span></span>\n </div>\n </div>\n </div>\n</div>'),e.put("assets/ms-phonebar/ms-phonebar.html",'<div layout="row" layout-align="start center" flex>\n \x3c!-- Audio stream --\x3e\n <audio id="local-audio" autoplay hidden=true></audio>\n <audio id="remote-audio" autoplay hidden=true></audio>\n \x3c!-- Audio stream --\x3e\n\n \x3c!-- WebRtc PhoneBar --\x3e\n <div class="phonebar-container" ng-include="\'assets/ms-phonebar/ms-phonebar-dialpad.html\'" layout="row" layout-align="start center" flex></div>\n \x3c!-- WebRtc PhoneBar --\x3e\n</div>'),e.put("assets/ms-phonebar/prefix/dialog.html",'<md-dialog aria-label="Prefix">\n <form ng-cloak ng-keypress="vm.keyPress($event)">\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div flex>\n <span class="title" translate="TOOLBAR.PREFIXES">Prefixes</span>\n </div>\n <div layout="row" layout-align="end center">\n <md-button class="md-icon-button no-margin no-padding" ng-click="vm.closeDialog(-1)">\n <md-icon class="no-margin" md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <md-radio-group ng-model="vm.prefix">\n <md-radio-button ng-repeat="prefix in vm.prefixes.rows" value="{{prefix.prefix}}" class="md-primary">{{prefix.name}}</md-radio-button>\n <md-radio-button ng-if="!vm.required" ng-value="null" class="md-primary">no prefix</md-radio-button>\n </md-radio-group>\n </md-dialog-content>\n\n <md-dialog-actions layout="row">\n <md-button ng-click="vm.call()" class="send-button md-accent md-raised" aria-label="call" md-autofocus ng-disabled="!vm.prefix && vm.required">\n <span translate="TOOLBAR.CALL">CALL</span>\n </md-button>\n <md-button ng-click="vm.closeDialog(-1)" class="send-button md-accent md-raised" aria-label="cancel">\n <span translate="TOOLBAR.CANCEL">Cancel</span>\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("assets/ms-phonebar/record/dialog.html",'<md-dialog aria-label="Recording" ng-init="vm.onInit()">\n <form ng-cloak>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div flex>\n <span class="title" translate="TOOLBAR.RECORDING">Recording</span>\n </div>\n <div layout="row" layout-align="end center">\n <md-button class="md-icon-button no-margin no-padding">\n <md-icon class="no-margin" md-font-icon="icon-plus" aria-label="Add" ng-click="vm.addRecording()"></md-icon>\n </md-button>\n <md-button class="md-icon-button no-margin no-padding" ng-click="vm.closeDialog()">\n <md-icon class="no-margin" md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </div>\n </md-toolbar>\n\n <md-table-container>\n <table md-table layout-padding>\n <thead md-head>\n <tr md-row>\n <th md-column><span translate="TOOLBAR.FILENAME">File name</span></th>\n <th md-column><span translate="TOOLBAR.STATUS">Status</span></th>\n <th md-column><span translate="TOOLBAR.ACTIONS">Actions</span></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.session.monitors.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="TOOLBAR.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="monitor in vm.session.monitors">\n <td md-cell>{{monitor.filename}}</td>\n <td md-cell class="no-padding">\n <md-icon md-font-icon="icon-radiobox-marked" class="icon s16" ng-class="(monitor.status == \'rec\') ? \'red-fg ms-blink\' : \'grey-fg\'"></md-icon>\n </td>\n <td md-cell class="no-padding">\n <md-button class="md-fab md-mini white-bg width-35 height-35 margin-5" aria-label="Record" ng-click="(monitor.status == \'rec\') ? vm.stop(monitor) : vm.start(monitor)">\n'+" <md-icon md-font-icon=\"{{monitor.status == 'rec' ? 'icon-stop' : 'icon-play'}}\" class=\"icon s16\" ng-class=\"monitor.status == 'rec' ? 'grey-fg' : 'red-fg'\"></md-icon>\n </md-button>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n </form>\n</md-dialog>"),e.put("assets/ms-phonebar/referAttended/dialog.html",'<md-dialog aria-label="Transfer">\n <form ng-cloak>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div flex>\n <span class="title" translate="TOOLBAR.ATTENDED_TRANSFER">Transfer</span>\n </div>\n <div layout="row" layout-align="end center">\n <md-button class="md-icon-button no-margin no-padding" ng-click="vm.closeDialog()">\n <md-icon class="no-margin" md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <label translate="TOOLBAR.TARGET">Target</label>\n <md-input-container class="md-block">\n <md-select ng-model="vm.target">\n <md-option ng-repeat="session in vm.sessions" ng-value="session.user">\n {{ session.name }}\n </md-option>\n </md-select>\n </md-input-container>\n </md-dialog-content>\n\n <md-dialog-actions layout="row">\n <md-button ng-click="vm.transfer()" class="send-button md-accent md-raised" aria-label="transfer" ng-disabled="!vm.target && !vm.sessionId">\n <span translate="TOOLBAR.TRANSFER">TRANSFER</span>\n </md-button>\n <md-button ng-click="vm.closeDialog()" class="send-button md-accent md-raised" aria-label="cancel">\n <span translate="TOOLBAR.CANCEL">Cancel</span>\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("assets/ms-phonebar/settings/settings.html",'<md-dialog class="md-phonebar-dialog" aria-label="{{vm.name}}">\n <form name="settingsForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="TOOLBAR.SETTINGS">Settings</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content class="no-padding" ms-scroll>\n <md-tabs md-no-pagination md-stretch-tabs="always">\n <md-tab label="{{ \'TOOLBAR.PROFILE\' | translate}}">\n <md-content layout-padding layout="column">\n <span><span translate="TOOLBAR.FULLNAME">Fullname</span>: {{vm.conf.fullname}}</span>\n <span><span translate="TOOLBAR.NAME">Name</span>: {{vm.conf.name}}</span>\n <span><span translate="TOOLBAR.INTERNAL">Internal</span>: {{vm.conf.internal}}</span>\n <span><span translate="TOOLBAR.BROWSER">Browser</span>: {{vm.conf.browserName}} {{vm.conf.browserVersion}}</span>\n <span><span translate="TOOLBAR.OS">OS</span>: {{vm.conf.osName}} {{vm.conf.osVersion}}</span>\n </md-content>\n </md-tab>\n <md-tab label="{{ \'TOOLBAR.SERVICES\' | translate}}">\n <md-content layout-padding>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.conf.autoAnswer" aria-label="Auto Answer">\n <span translate="TOOLBAR.AUTOANSWER">Auto Answer</span>\n <span>{{ vm.conf.autoAnswerDelay }} [s]</span>\n </md-switch>\n </md-input-container>\n </md-content>\n </md-tab>\n <md-tab label="{{ \'TOOLBAR.AUDIO\' | translate}}">\n <md-content layout-padding>\n <div class="border brad-5" layout-margin>\n <md-input-container class="md-block" ng-if="(vm.devices | filter: { kind: \'audiooutput\' }).length">\n <label translate="TOOLBAR.RINGINGDEVICE">Ringing Device</label>\n <md-select name="ringingDevice" ng-model="vm.conf.ringingId" required>\n <md-option ng-value="device.deviceId" ng-repeat="device in vm.devices | filter: { kind: \'audiooutput\' }">{{ device.label || (\'Speaker \' + ($index + 1)) }}</md-option>\n </md-select>\n <div ng-messages="settingsForm[\'ringingDevice\'].$error" ng-show="settingsForm[\'ringingDevice\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLBAR.ERRORS.FIELD_REQUIRED">Field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div layout="row" layout-align="space-between center">\n <md-switch ng-model="vm.conf.ringingMute" aria-label="Mute">\n Mute\n </md-switch>\n\n <md-slider-container flex="80">\n <md-slider flex step="0.1" min="0" max="1" ng-model="vm.conf.ringingVolume" aria-label="volume"></md-slider>\n </md-slider-container>\n </div>\n </div>\n\n <div class="border brad-5" layout-margin>\n <md-input-container class="md-block" ng-if="(vm.devices | filter: { kind: \'audiooutput\' }).length">\n <label translate="TOOLBAR.SPEAKERDEVICE">Speaker Device</label>\n <md-select name="speakerDevice" ng-model="vm.conf.speakerId" required>\n <md-option ng-value="device.deviceId" ng-repeat="device in vm.devices | filter: { kind: \'audiooutput\' }">{{ device.label || (\'Speaker \' + ($index + 1)) }}</md-option>\n </md-select>\n <div ng-messages="settingsForm[\'speakerDevice\'].$error" ng-show="settingsForm[\'speakerDevice\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLBAR.ERRORS.FIELD_REQUIRED">Field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div layout="row" layout-align="space-between cetner">\n <md-switch ng-model="vm.conf.speakerMute" aria-label="Mute">\n Mute\n </md-switch>\n\n <md-slider-container flex="80">\n <md-slider flex step="0.1" min="0" max="1" ng-model="vm.conf.speakerVolume" aria-label="volume"></md-slider>\n </md-slider-container>\n </div>\n </div>\n\n <div class="border brad-5" layout-margin>\n <md-input-container class="md-block" ng-if="(vm.devices | filter: { kind: \'audioinput\' }).length">\n <label translate="TOOLBAR.MICROPHONEDEVICE">Microphone Device</label>\n <md-select name="microphoneDevice" ng-model="vm.conf.microphoneId" required>\n <md-option ng-value="device.deviceId" ng-repeat="device in vm.devices | filter: { kind: \'audioinput\' }">{{ device.label || (\'Microphone \' + ($index + 1))}}</md-option>\n </md-select>\n <div ng-messages="settingsForm[\'microphoneDevice\'].$error" ng-show="settingsForm[\'microphoneDevice\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLBAR.ERRORS.FIELD_REQUIRED">Field is required</span>\n </div>\n </div>\n </md-input-container>\n\n\n <div layout="row" layout-align="space-between center">\n <md-switch ng-disabled="vm.activeSessions.length==0" ng-model="vm.conf.microphoneMute" aria-label="Mute">\n Mute\n </md-switch>\n </div>\n </div>\n </md-content>\n </md-tab>\n <md-tab label="{{ \'TOOLBAR.REQUIREMENTS\' | translate}}">\n <md-content layout-padding>\n <md-list>\n <md-list-item>\n <h3 translate="TOOLBAR.LICENSE">License</h3>\n <md-icon class="md-secondary" ng-class="vm.conf.license ? \'green-fg\' : \'red-fg\'" md-font-icon="{{vm.conf.license ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </md-list-item>\n <md-list-item>\n <h3 translate="TOOLBAR.BROWSER_COMPATIBILITY">Browser Compatibility</h3>\n <md-icon class="md-secondary" ng-class="vm.isCompatibleBrowser() ? \'green-fg\' : \'red-fg\'" md-font-icon="{{vm.isCompatibleBrowser() ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </md-list-item>\n <md-list-item>\n <h3 translate="TOOLBAR.HTTPS">HTTPS</h3>\n <md-icon class="md-secondary" ng-class="vm.conf.protocol === \'https\' ? \'green-fg\' : \'red-fg\'" md-font-icon="{{vm.conf.protocol === \'https\' ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </md-list-item>\n <md-list-item>\n <h3 translate="TOOLBAR.WEBRTCSUPPORT">WebRTC Support</h3>\n <md-icon class="md-secondary" ng-class="vm.conf.isWebRTCSupported ? \'green-fg\' : \'red-fg\'" md-font-icon="{{vm.conf.isWebRTCSupported ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </md-list-item>\n <md-list-item>\n <h3 translate="TOOLBAR.MICROPHONE">Microphone</h3>\n <md-icon class="md-secondary" ng-class="vm.conf.hasMicrophone ? \'green-fg\' : \'red-fg\'" md-font-icon="{{vm.conf.hasMicrophone ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </md-list-item>\n <md-list-item>\n <h3 translate="TOOLBAR.SPEAKER">Speaker</h3>\n <md-icon class="md-secondary" ng-class="vm.conf.hasSpeakers ? \'green-fg\' : \'red-fg\'" md-font-icon="{{vm.conf.hasSpeakers ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </md-list-item>\n </md-list>\n </md-content>\n </md-tab>\n </md-tabs>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.saveSettings()" class="send-button md-accent md-raised" ng-disabled="settingsForm.$invalid || settingsForm.$pristine" aria-label="SAVE" translate="TOOLBAR.SAVE" translate-attr-aria-label="TOOLBAR.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/core/directives/ms-quick-filter/ms-quick-filter.html",'<div ng-cloak layout="row" class="quick-filter-container" flex>\n <div ng-repeat="filter in vm.filters" ng-if="filter.ngIf ? $eval(\'vm.query.\' + filter.ngIf) : true" layout="column" class="padding-horizontal-16">\n <span class="font-size-10" translate="{{ filter.label }}" />\n <md-select ng-if="filter.type === \'select\'" class="font-size-12 no-margin" ng-model="vm.query[filter.key]" ng-change="vm.search()" aria-label="Filter {{ filter.name }}">\n <md-option ng-repeat="option in filter.options" ng-value="filter.ngValue ? option[filter.ngValue] : option.id">\n {{ option.name }}</md-option>\n <md-option ng-repeat="option in filter.customOptions" ng-value="option.value" translate="{{ option.translate }}">\n </md-option>\n </md-select>\n\n <md-select ng-if="filter.type === \'multiselect\'" multiple class="font-size-12 no-margin" ng-init="vm.onMultiselectInit(filter)" ng-model="vm.query[filter.key]" ng-disabled="filter.options.length === 0" ng-change="vm.onMultiselectSelection(filter, isOpened)" md-selected-text="vm.placeholders[filter.key]" aria-label="Filter {{ filter.name }}" md-on-open="isOpened = true" md-on-close="isOpened = false">\n <md-option ng-repeat="option in filter.options" ng-value="filter.ngValue ? option[filter.ngValue] : option.id" ng-disabled="filter.clearAll === false && vm.query[filter.key].length === 1 && vm.query[filter.key][0] === (filter.ngValue ? option[filter.ngValue] : option.id)">\n {{ option.name }}</md-option>\n <md-button ng-if="vm.query[filter.key].length < filter.options.length" ng-click="vm.selectAll(filter)" md-no-ink class="md-primary" layout-fill>\n {{\'DASHBOARDS.SELECT_ALL\' | translate}}</md-button>\n <md-button ng-if="vm.query[filter.key].length === filter.options.length" ng-click="vm.clearSelection(filter)" md-no-ink class="md-primary" layout-fill>\n {{\'DASHBOARDS.CLEAR\' | translate}}</md-button>\n </md-select>\n\n <div ng-if="filter.type === \'date\'" layout="row" layout-align="center center">\n <md-date-range ng-init="vm.onDateRangeInit(filter)" localization-map="vm.localizationMap" ng-model="vm.pickerModels[filter.key]" auto-confirm="true" show-template="true" md-on-select="vm.onDateRangeSelection(filter)" placeholder="{{ \'DASHBOARDS.ALL\' | translate }}">\n </md-date-range>\n <md-button ng-if="vm.pickerModels[filter.key].dateStart" ng-click="vm.clearDate(filter)" class="md-icon-button no-margin no-padding width-20 height-20" aria-label="Clear date filter">\n <md-icon md-font-icon="icon-close" class="quick-filter-date-clear-button s16"></md-icon>\n </md-button>\n </div>\n </div>\n</div>'),e.put("app/core/directives/ms-search-bar/ms-search-bar.html",'<div flex layout="row" layout-align="start center">\n <label>\n <md-button class="ms-search-bar-expander md-icon-button" aria-label="Expand Search Bar" ng-click="vm.expandBar()" ng-if="!vm.resultsLoading || !vm.expanded" ng-class="{\'ms-search-button-expanded\': vm.expanded }">\n <md-icon id="ms-search-bar-icon" md-font-icon="icon-magnify" class="s24" ng-class="{\'{{ vm.iconColor }}\': vm.iconColor && !vm.expanded }"></md-icon>\n </md-button>\n <div class="ms-search-bar-loader" layout="row" layout-align="center center" ng-if="vm.resultsLoading && vm.expanded">\n <md-progress-circular class="md-accent" md-diameter="32" md-mode="indeterminate"></md-progress-circular>\n </div>\n </label>\n <input ng-if="vm.expanded" focus-on="vm.expanded" type="text" placeholder="{{ \'TOOLBAR.SEARCH\' | translate }}" flex ng-model="vm.query.filter" ng-model-options="vm.queryOptions" ng-blur="vm.blurCollapse()" ng-keydown="vm.onKeyDown($event)" />\n <md-button class="ms-search-bar-collapser md-icon-button" ng-click="vm.collapseBar()" aria-label="Collapse Search Bar">\n <md-icon md-font-icon="icon-close" class="icon s24"></md-icon>\n </md-button>\n <div class="ms-search-bar-results" ng-if="vm.results" ms-scroll>\n <div class="no-results" ng-if="vm.results.length === 0">{{ \'DASHBOARDS.NO_RESULTS_AVAILABLE\' | translate }}</div>\n <div class="result" ng-repeat="result in vm.results" ng-click="vm.handleResultClick(result)" ng-mouseenter="vm.handleMouseEnter($index)" ng-mousedown="vm.absorbEvent($event)" ng-class="{\'selected\': $index == vm.selectedResultIndex}" md-ink-ripple>\n <div layout="row" layout-align="start center">\n <div class="icon-container" layout="row" layout-align="center center">\n <i ng-if="result.icon" class="icon {{ result.icon }}"></i>\n <div ng-if="!result.icon" class="square md-accent-bg"></div>\n </div>\n <div>\n <div class="title">{{ result.title }}</div>\n <div class="description" ng-if="result.description">{{ result.description }}</div>\n </div>\n </div>\n </div>\n </div>\n</div>'),e.put("app/core/directives/ms-shortcuts/ms-shortcuts.html",'<div class="shortcuts-container" layout="row" layout-align="space-between center" flex ng-class="{\'mobile-bar-active\': MsShortcuts.mobileBarActive}">\n\n <div class="flex-noshrink" layout="row" layout-align="start center" flex>\n <div class="shortcuts hide show-gt-xs" layout="row" layout-align="start center" ms-scroll ng-if="MsShortcuts.shortcuts.length > 0" ng-sortable="MsShortcuts.sortableOptions">\n <div ng-repeat="shortcut in MsShortcuts.shortcuts" layout="row" layout-align="center center">\n <md-button class="md-icon-button shortcut" aria-label="{{shortcut.title}}" ui-sref="{{shortcut.uisref}}">\n <md-icon ng-if="shortcut.icon" md-font-icon="{{shortcut.icon}}" class="icon s24"></md-icon>\n <div ng-if="!shortcut.icon" class="first-letter">{{shortcut.title.charAt(0)}}</div>\n <md-tooltip md-direction="bottom">{{shortcut.title}}</md-tooltip>\n </md-button>\n </div>\n </div>\n\n \x3c!-- <md-menu md-offset="8 56" class="shortcut-menu hide show-gt-xs">\n <md-button class="md-icon-button add-shortcut-button" aria-label="Add shortcut"\n ng-click="$mdOpenMenu($event)">\n <md-icon md-menu-origin md-font-icon="icon-star" class="icon amber-600-fg s24"></md-icon>\n <md-tooltip md-direction="bottom">Click to add/remove shortcut</md-tooltip>\n </md-button>\n\n <md-menu-content>\n <div id="ms-shortcut-add-menu">\n <div class="shortcut-search" layout="row" layout-align="start center">\n <div class="search-icon" layout="row" layout-align="center center"\n ng-if="!MsShortcuts.resultsLoading">\n <md-icon md-menu-align-target md-font-icon="icon-magnify" class="icon s24"></md-icon>\n </div>\n <div class="shortcut-loader" layout="row" layout-align="center center"\n ng-if="MsShortcuts.resultsLoading">\n <md-progress-circular class="md-accent" md-diameter="20" md-mode="indeterminate">\n </md-progress-circular>\n </div>\n\n <input type="text" placeholder="Search" flex\n ng-model="MsShortcuts.query"\n ng-model-options="MsShortcuts.queryOptions"\n ng-keydown="MsShortcuts.handleKeydown($event)">\n </div>\n\n <div class="results" ng-if="MsShortcuts.results" ms-scroll>\n <div class="no-results" ng-if="MsShortcuts.results.length === 0">No Results!</div>\n\n <div class="result" ng-repeat="result in MsShortcuts.results"\n ng-click="MsShortcuts.handleResultClick(result)"\n ng-mouseenter="MsShortcuts.handleMouseenter($index)"\n ng-mousedown="MsShortcuts.absorbEvent($event)"\n ng-class="{\'selected\': $index == MsShortcuts.selectedResultIndex}"\n md-prevent-menu-close="md-prevent-menu-close"\n md-ink-ripple>\n <div layout="row" layout-align="start space-between">\n <div layout="row" layout-align="start center" flex>\n <div class="icon icon-container" layout="row" layout-align="center center">\n <i ng-if="result.icon" class="{{result.icon}}"></i>\n <div ng-if="!result.icon" class="square md-accent-bg"></div>\n </div>\n <div>\n <div class="title">{{result.title}}</div>\n </div>\n </div>\n <md-icon md-font-icon="icon-pin" class="icon s18"\n ng-class="{\'fade-text\': !result.hasShortcut}"></md-icon>\n </div>\n </div>\n </div>\n </div>\n </md-menu-content>\n </md-menu> --\x3e\n </div>\n\n <md-button class="md-icon-button toggle-mobile-menu hide-gt-xs" aria-label="Add shortcut" ng-click="MsShortcuts.toggleMobileBar()">\n <md-icon md-menu-origin md-font-icon="icon-star" class="icon amber-600-fg s24" ng-hide="MsShortcuts.mobileBarActive"></md-icon>\n <md-icon md-menu-origin md-font-icon="icon-close" class="icon s24" ng-hide="!MsShortcuts.mobileBarActive"></md-icon>\n </md-button>\n</div>'),e.put("app/core/directives/ms-stepper/templates/horizontal/horizontal.html",'<div class="ms-stepper-horizontal">\n <div class="ms-stepper-navigation-wrapper">\n <div class="ms-stepper-navigation" layout="row" layout-align="center center">\n <md-button class="ms-stepper-navigation-item" ng-class="{\'current\': MsStepper.isStepCurrent(step.stepNumber), \'valid\': MsStepper.isStepValid(step.stepNumber), \'disabled\': MsStepper.isStepDisabled(step.stepNumber), \'optional\': MsStepper.isStepOptional(step.stepNumber)}" ng-click="MsStepper.gotoStep(step.stepNumber)" ng-disabled="MsStepper.isStepDisabled(step.stepNumber)" ng-repeat="step in MsStepper.steps | filter:MsStepper.filterHiddenStep" layout="row" layout-align="start center">\n\n <div class="step md-accent-bg" layout="row" layout-align="center center">\n <span ng-if="!MsStepper.isStepValid(step.stepNumber) || MsStepper.isStepOptional(step.stepNumber)">\n {{$index + 1}}\n </span>\n <span ng-if="MsStepper.isStepValid(step.stepNumber) && !MsStepper.isStepOptional(step.stepNumber)">\n <i class="icon icon-check s18"></i>\n </span>\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="title" translate="{{step.stepTitleTranslate}}">{{step.stepTitle}}</div>\n <div class="subtitle" ng-if="MsStepper.isStepOptional(step.stepNumber)">Optional</div>\n </div>\n </md-button>\n </div>\n </div>\n\n <div class="ms-stepper-steps" ng-transclude></div>\n\n <div class="ms-stepper-controls" layout="row" layout-align="center center">\n <md-button class="md-accent md-raised" ng-disabled="MsStepper.isFirstStep()" ng-click="MsStepper.gotoPreviousStep()">\n Back\n </md-button>\n\n <div class="ms-stepper-dots">\n <span ng-repeat="step in MsStepper.steps" ng-hide="MsStepper.isStepHidden(step.stepNumber)" ng-class="{\'selected md-accent-bg\':MsStepper.currentStepNumber === $index + 1}">\n </span>\n </div>\n\n <md-button class="md-accent md-raised" ng-if="!MsStepper.isLastStep()" ng-disabled="!MsStepper.isStepValid(MsStepper.currentStepNumber)" ng-click="MsStepper.gotoNextStep()">\n Next\n </md-button>\n\n <md-button type="submit" class="md-accent md-raised" ng-click="MsStepper.resetForm()" ng-if="MsStepper.isLastStep()" ng-disabled="!MsStepper.isFormValid()">\n Submit\n </md-button>\n </div>\n</div>'),e.put("app/core/directives/ms-stepper/templates/vertical/step/vertical-step.html",'<md-button class="ms-stepper-navigation-item" ng-class="{\'current\': MsStepper.isStepCurrent(stepInfo.stepNumber), \'valid\': MsStepper.isStepValid(stepInfo.stepNumber), \'disabled\': MsStepper.isStepDisabled(stepInfo.stepNumber), \'optional\': MsStepper.isStepOptional(stepInfo.stepNumber)}" ng-click="MsStepper.gotoStep(stepInfo.stepNumber)" ng-disabled="MsStepper.isStepDisabled(stepInfo.stepNumber)" ng-hide="MsStepper.isStepHidden(stepInfo.stepNumber)" aria-label="Stepper navigation button" layout="row" layout-align="start center">\n\n <div class="step" layout="row" layout-align="center center">\n <span ng-if="!MsStepper.isStepValid(stepInfo.stepNumber) || MsStepper.isStepOptional(stepInfo.stepNumber)">\n <i class="icon icon-checkbox-blank-circle-outline s18 md-accent-fg"></i>\n </span>\n <span ng-if="MsStepper.isStepValid(stepInfo.stepNumber) && !MsStepper.isStepOptional(stepInfo.stepNumber)">\n <i class="icon icon-check-circle s18 md-accent-fg"></i>\n </span>\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="title" ng-if="stepInfo.stepTitleTranslate">{{stepInfo.stepTitleTranslate | translate }}</div>\n <div class="title" ng-if="!stepInfo.stepTitleTranslate">{{stepInfo.stepTitle}}</div>\n <div class="subtitle" ng-if="MsStepper.isStepOptional(stepInfo.stepNumber)">Optional</div>\n </div>\n</md-button>\n\n<div class="ms-stepper-step-content" ng-transclude></div>\n\n<div class="ms-stepper-controls" layout="row" layout-align="start center" ng-show="MsStepper.isStepCurrent(stepInfo.stepNumber)">\n <md-button class="md-accent md-raised" ng-disabled="MsStepper.isFirstStep()" ng-click="MsStepper.gotoPreviousStep()">\n Back\n </md-button>\n\n <md-button class="md-accent md-raised" ng-if="!MsStepper.isLastStep()" ng-disabled="!MsStepper.isStepValid(MsStepper.currentStepNumber)" ng-click="MsStepper.gotoNextStep()">\n Next\n </md-button>\n\n <md-button type="submit" class="md-accent md-raised" ng-click="MsStepper.resetForm()" ng-if="MsStepper.isLastStep()" ng-disabled="!MsStepper.isFormValid()">\n Submit\n </md-button>\n</div>'),e.put("app/core/directives/ms-stepper/templates/vertical/vertical.html",'<div class="ms-stepper-vertical">\n <div class="ms-stepper-vertical-line"></div>\n <div class="ms-stepper-steps" ng-transclude></div>\n</div>'),e.put("app/core/directives/ms-tab-scroll/ms-tab-scroll.html",'<div layout="row">\n <md-button class="md-icon-button md-mini width-25 no-margin scroll-arrow" ng-click="vm.onTabScroll(\'left\')" ng-if="vm.canScroll(\'left\') == true">\n <md-icon md-font-icon="icon-chevron-left" class="icon s26"></md-icon>\n </md-button>\n <div id="bar-container" layout="row" class="bar-container">\n <div ng-transclude id="tab-container" layout="row" layout-align="start center" class="scroll-container">\n </div>\n </div>\n <md-button class="md-icon-button md-mini width-25 no-margin scroll-arrow" ng-click="vm.onTabScroll(\'right\')" ng-if="vm.canScroll(\'right\') == true">\n <md-icon md-font-icon="icon-chevron-right" class="icon s26"></md-icon>\n </md-button>\n</div>'),e.put("app/core/directives/ms-timezone/ms-timezone.html",'<md-select ng-model="ngModel" class="no-margin">\n <md-option ng-value="null">NONE</md-option>\n <md-option ng-repeat="t in timezone | orderBy:\'utcOffset\'" value="{{t.name}}">{{t.name}} ({{t.offsetStr}})</md-option>\n</md-select>'),e.put("app/core/directives/ms-widget-engine/ms-widget-engine-counter/ms-widget-engine.counter.html",'<div class="pt-8 pb-32" layout="column" layout-align="center center" layout-fill ng-controller="MsWidgetEngineCounterController as vm">\n <div ng-class="\'font-size-\' + (vm.fontSize * 3)" ng-style="{\'color\': widget.foreground}">\n {{ vm.getCount(widget) }}\n </div>\n <div ng-class="\'font-size-\' + vm.fontSize" ng-style="{\'color\': widget.foreground}">{{ \'TOOLS.\' + widget.attrs[0].value | uppercase | translate }}<span ng-if="vm.filtered">*</span></div>\n</div>'),e.put("app/core/directives/ms-widget-engine/ms-widget-engine-multibar-chart/ms-widget-engine.multibar-chart.html",'<div ng-controller="MsWidgetEngineMultibarChartController as vm" ng-init="vm.getMultiBarChart(widget)" layout="column" layout-fill>\n\n <span ng-show="false">{{ vm.getMultiBarChart(widget)}}</span>\n\n <canvas style="overflow:scroll" id="bar" class="chart-horizontal-bar" chart-data="vm.multiBarChart.data" chart-options="vm.multiBarChart.options" chart-series="vm.multiBarChart.series" chart-labels="vm.multiBarChart.labels">\n </canvas>\n</div>'),e.put("app/core/directives/ms-widget-engine/ms-widget-engine-pie-chart/ms-widget-engine.pie-chart.html",'<div ng-controller="MsWidgetEnginePieChartController as vm" ng-init="vm.getPieChart(widget)" layout="column" layout-fill>\n\n <span ng-show="false">{{ vm.getPieChart(widget)}}</span>\n\n <canvas style="overflow:scroll" id="pie" class="chart-pie" chart-data="vm.pieChart.data" chart-labels="vm.pieChart.labels" chart-options="vm.pieChart.options">\n </canvas>\n</div>'),e.put("app/core/directives/ms-widget-engine/ms-widget-engine-web-report/ms-widget-engine.web-report.html",'<div ng-controller="MsWidgetEngineWebReportController as vm" ng-init="vm.onInit(widget)">\n <dl ng-if="vm.error">\n <dt class="text-bold">Query Error</dt>\n <dd>{{vm.error.sql}}</dd>\n <dt>Message</dt>\n <dd>{{vm.error.msg}}</dd>\n </dl>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm.title}}</span>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm.onInit(widget)" aria-label="refresh">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n <span ng-if="vm.refresh && vm.countDown" class="md-subhead blue-fg">{{vm.countDown}}</span>\n </div>\n </md-toolbar>\n <md-table-container ng-if="!vm.error">\n <table md-table md-progress="vm.promise">\n <thead md-head>\n <tr md-row>\n <th md-column ng-repeat="column in vm.columns">{{column.alias || column.field}}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-repeat="row in vm.results.rows">\n <td md-cell ng-repeat="(key, value) in row">{{ vm.valueReplacer(key, value) }}</td>\n </tr>\n <tr md-row ng-if="!vm.results.rows.length">\n <td md-cell colspan="{{vm.columns.length}}">\n <div layout="row" layout-align="center center">\n <span>No Data</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.results.count}}" md-on-paginate="vm.getResults" md-page-select></md-table-pagination>\n</div>'),e.put("app/core/directives/ms-widget-engine/ms-widget-engine.html",'<div gridster="vm.config">\n <ul>\n <li gridster-item="widget" ng-repeat="widget in vm.config.widgets">\n <md-card layout-fill>\n <md-toolbar class="height-40" ng-style="{\'background-color\': widget.background, \'color\': widget.foreground }">\n <div class="md-toolbar-tools height-40 no-margin" layout="row" layout-align="start center">\n <a ng-href="{{widget.link ? widget.link : \'javascript:void(0)\'}}" ng-style="{\'color\': widget.foreground, \'font-size\': (widget.titleFontSize || 12) }" class="text-truncate" flex>\n {{ widget.title || \'No Title\' }}\n </a>\n <md-button ng-if="!vm.config.preview" class="draggable md-icon-button width-30 no-margin no-padding" aria-label="Move">\n <md-tooltip><span translate="TOOLS.MOVE_WIDGET">Move</span></md-tooltip>\n <md-icon md-font-icon="icon-cursor-move" class="s20" ng-style="{\'color\': widget.foreground}"></md-icon>\n </md-button>\n <md-menu ng-if="!vm.config.preview">\n <md-button ng-click="$mdOpenMenu($event)" class="md-icon-button width-30 no-margin no-padding" aria-label="More">\n <md-icon md-font-icon="icon-dots-vertical" class="s20" ng-style="{\'color\': widget.foreground}"></md-icon>\n </md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-click="vm.onEdit({widget: widget})" translate="TOOLS.EDIT_WIDGET">Edit\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.onDelete({widget: widget})" translate="TOOLS.DELETE_WIDGET">\n Delete</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n\n </div>\n </md-toolbar>\n <md-card-content class="resizable" layout="column" layout-align="center center" flex ng-style="{\'background-color\': widget.background, \'color\': widget.foreground}">\n <div ng-switch="widget.type" layout-fill>\n <iframe ng-switch-when="iframe|custom" ng-switch-when-separator="|" ng-src="{{vm.getTrustedURL(widget.attrs[0].value)}}" frameborder=0 style="border:0px; width:100%; height:100%;"></iframe>\n <ds-widget-clock ng-class="\'font-size-\' + (widget.attrs[2].value || 12)" ng-switch-when="clock" digital-format="widget.attrs[0].value" gmt-offset="widget.attrs[1].value" data-show-digital show-gmt-info></ds-widget-clock>\n <div ng-switch-default layout-fill>\n <div ng-include="widget.templateUrl" layout-fill></div>\n </div>\n </div>\n </md-card-content>\n </md-card>\n </li>\n </ul>\n</div>'),e.put("app/core/layouts/content-only.html",'<div id="layout-content-only" class="template-layout" layout="column" flex>\n <md-content id="content" class="animate-slide-up md-hue-2" ui-view="content" flex></md-content>\n</div>'),e.put("app/core/layouts/content-with-toolbar.html",'<div id="layout-content-with-toolbar" class="template-layout" layout="column" flex>\n <md-toolbar id="toolbar" class="md-menu-toolbar md-whiteframe-1dp" ui-view="toolbar"></md-toolbar>\n <md-content id="content" class="animate-slide-up md-hue-2" ui-view="content" flex></md-content>\n\n <md-sidenav id="quick-panel" class="md-sidenav-right md-whiteframe-4dp" md-component-id="quick-panel" ms-scroll ui-view="quickPanel"></md-sidenav>\n</div>'),e.put("app/core/layouts/horizontal-navigation.html",'<div id="layout-horizontal-navigation" class="template-layout" layout="column" flex>\n\n <div id="toolbar-navigation-container" class="md-whiteframe-1dp" layout="column" layout-align="space-between start">\n <md-toolbar id="toolbar" class="md-menu-toolbar md-whiteframe-1dp" ui-view="toolbar"></md-toolbar>\n <div id="horizontal-navigation" ui-view="navigation" layout="row" layout-align="start end" flex></div>\n </div>\n\n <div id="content-container" flex layout="column">\n <md-content id="content" class="animate-slide-up md-hue-2" ms-scroll ui-view="content" flex></md-content>\n </div>\n\n <md-sidenav id="quick-panel" class="md-sidenav-right md-whiteframe-4dp" md-component-id="quick-panel" ms-scroll ui-view="quickPanel"></md-sidenav>\n\n</div>'),e.put("app/core/layouts/vertical-navigation-fullwidth-toolbar-2.html",'<div id="layout-vertical-navigation-fullwidth-toolbar-2" class="template-layout" layout="column" flex>\n\n <md-toolbar id="toolbar" class="md-menu-toolbar md-whiteframe-1dp md-accent" ui-view="toolbar"></md-toolbar>\n\n <div id="main-container" layout="row" flex>\n <md-sidenav id="vertical-navigation" class="md-primary-bg" md-is-locked-open="$mdMedia(\'gt-sm\')" md-component-id="navigation" ms-scroll ui-view="navigation"></md-sidenav>\n\n <div id="content-container" flex layout="column">\n <md-content id="content" class="animate-slide-up md-hue-2" ms-scroll ui-view="content" flex></md-content>\n </div>\n\n <md-sidenav id="quick-panel" class="md-sidenav-right md-whiteframe-4dp" md-component-id="quick-panel" ms-scroll ui-view="quickPanel"></md-sidenav>\n </div>\n\n\n</div>'),e.put("app/core/layouts/vertical-navigation-fullwidth-toolbar.html",'<div id="layout-vertical-navigation-fullwidth-toolbar" class="template-layout" layout="column" flex>\n\n <md-toolbar id="toolbar" class="md-menu-toolbar md-whiteframe-1dp md-accent" ui-view="toolbar"></md-toolbar>\n\n <div id="main-container" layout="row" flex>\n <md-sidenav id="vertical-navigation" class="md-primary-bg" md-is-locked-open="$mdMedia(\'gt-sm\')" md-component-id="navigation" ms-scroll ui-view="navigation"></md-sidenav>\n\n <div id="content-container" flex layout="column">\n <md-content id="content" class="animate-slide-up md-hue-2" ms-scroll ui-view="content" flex></md-content>\n </div>\n\n <md-sidenav id="quick-panel" class="md-sidenav-right md-whiteframe-4dp" md-component-id="quick-panel" ms-scroll ui-view="quickPanel"></md-sidenav>\n </div>\n\n\n</div>'),e.put("app/core/layouts/vertical-navigation.html",'<div id="header" ui-view="header"></div>\n\n<div id="layout-vertical-navigation" class="template-layout" layout="row" flex>\n\n <md-sidenav id="vertical-navigation" class="md-primary-bg" md-is-locked-open="$mdMedia(\'gt-sm\')" md-component-id="navigation" ms-scroll ui-view="navigation" ng-if="!vm.isAgent()"></md-sidenav>\n\n <div id="content-container" flex layout="column">\n <md-toolbar id="toolbar" class="md-menu-toolbar md-whiteframe-1dp" ui-view="toolbar"></md-toolbar>\n\n <md-content id="content" class="animate-slide-up md-hue-2" ms-scroll ui-view="content" flex></md-content>\n </div>\n\n <md-sidenav id="quick-panel" class="md-sidenav-right md-whiteframe-4dp" md-component-id="quick-panel" ms-scroll ui-view="quickPanel"></md-sidenav>\n\n</div>\n\n<div id="footer" ui-view="footer"></div>'),e.put("app/core/theme-options/theme-options.html",'<div class="ms-theme-options-button md-primary-bg" ng-click="toggleOptionsSidenav()">\n <md-icon md-font-icon="icon-cog" class="white-text"></md-icon>\n</div>\n\n<md-sidenav md-component-id="motion-theme-options" class="md-sidenav-right">\n\n <div class="ms-theme-options-list" layout="column">\n <div class="theme-option layout-options">\n <div class="option-title">Layout Style:</div>\n <md-radio-group layout="row" layout-align="start start" layout-wrap ng-model="vm.layoutStyle" ng-change="vm.updateLayoutStyle()">\n <md-radio-button ng-repeat="layoutStyle in vm.layoutStyles" ng-value="layoutStyle.value">\n <div layout="column" layout-align="center center">\n <img ng-src="{{layoutStyle.figure}}">\n <span class="text-center font-size-12 mt-8">{{layoutStyle.label}}</span>\n </div>\n </md-radio-button>\n </md-radio-group>\n </div>\n\n <md-divider></md-divider>\n\n <div class="theme-option">\n <div class="option-title">Layout Mode:</div>\n <md-radio-group layout="row" layout-align="start center" ng-model="vm.layoutMode" ng-change="vm.updateLayoutMode()">\n <md-radio-button ng-repeat="layoutMode in vm.layoutModes" ng-value="layoutMode.value">\n {{layoutMode.label}}\n </md-radio-button>\n </md-radio-group>\n </div>\n\n <md-divider></md-divider>\n\n <div class="theme-option color-palettes">\n <div class="option-title">Color Palette:</div>\n <div layout="row" layout-align="start start" layout-wrap>\n <md-button ng-repeat="(themeName, theme) in vm.themes.list" class="md-raised theme-button" layout="row" layout-align="center center" aria-label="{{themeName}}" ng-click="vm.setActiveTheme(themeName)" ng-style="{\'background-color\': theme.primary.color,\'border-color\': theme.accent.color,\'color\': theme.primary.contrast1}" ng-class="{active: vm.getActiveTheme().name === themeName}">\n <md-icon ng-style="{\'color\': theme.primary.contrast1}" md-font-icon="icon-palette" class="icon s32"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n</md-sidenav>'),e.put("app/errors/404/error-404.html",'<div id="error-404" layout="column" layout-align="center center">\n <div class="content" layout="column" layout-align="center center">\n <div class="error-code" translate="ERROR404.CODE">404</div>\n\n <div class="message" translate="ERROR404.MESSAGE">Sorry but we couldn’t find the page you are looking for</div>\n <ms-search-bar on-search="vm.search(query)" on-result-click="vm.searchResultClick(item)" debounce="300">Search for anything</ms-search-bar>\n\n \x3c!-- <div class="search md-whiteframe-1dp" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-magnify" class="icon s24"></md-icon>\n <input ng-model="vm.search" type="text" placeholder="Search for anything" translate translate-attr-placeholder="ERROR404.SEARCH" flex>\n </div> --\x3e\n\n <a class="md-button md-raised md-primary back-link" href="/" translate="ERROR404.GO_BACK">Go back to dashboard</a>\n </div>\n</div>'),e.put("app/errors/500/error-500.html",'<div id="error-500" layout="column" layout-align="center center">\n <div ng-if="!vm.send" class="content" layout="column" layout-align="center center">\n <div class="error-code" translate="ERROR500.CODE">500</div>\n <div class="message" translate="ERROR500.MESSAGE">Well, you broke the internet!</div>\n <div class="sub-message" translate="ERROR500.SUBMESSAGE">Just kidding, looks like we have an internal issue, please try again in couple minutes\n </div>\n <a class="md-button md-raised md-primary back-link" href="/" translate="ERROR500.GO_BACK">Go back to dashboard</a>\n <md-button class="md-raised md-warn" ng-click="vm.sendReport()" translate="ERROR500.REPORT">Report this problem</md-button>\n </div>\n <pre ng-if="!vm.send">\n {{vm.error}}\n </pre>\n <div ng-if="vm.send" class="content" layout="column" layout-align="center center">\n <div class="error-code">#{{vm.code}}</div>\n <div class="message" translate="ERROR500.JIRA_MESSAGE">Your request has been received and will be processed shortly.</div>\n <div class="sub-message" translate="ERROR500.JIRA_SUBMESSAGE">Sorry for the inconvenience. If you have any questions or concerns, please do not hesitate to contact us.</div>\n <a class="md-button md-raised md-primary back-link" href="/" translate="ERROR500.GO_BACK">Go back to dashboard</a>\n </div>\n</div>'),e.put("app/footer/layouts/vertical-navigation/footer.html",'<div layout="row" layout-align="start center">\n <ms-info-bar ng-if="!vm.cookieAlertHide" on-close="vm.cookieAlertOnClose()" class="grey-100-bg">\n <div layout="row" layout-align="start center">\n <span translate="FOOTER.COOKIE_LAW" flex class="text-center grey-600-fg"></span>\n </div>\n </ms-info-bar>\n</div>'),e.put("app/forgot/forgot.html",'<div id="forgot-password" class="flex-scrollable" layout="column" ms-scroll ng-init="vm.onInit()">\n <div id="forgot-password-form-wrapper" layout="column" layout-align="center center">\n <div id="forgot-password-form" class="md-whiteframe-8dp">\n\n <img src="/api/settings/1/logo_login" alt="logo_login" class="logo_login" />\n\n <div class="title" translate="FORGOTPASSWORD.TITLE">Recover your password</div>\n\n <form name="forgotPasswordForm" novalidate>\n <md-input-container class="md-block" md-no-float>\n <input type="email" name="email" ng-model="vm.form.email" placeholder="Email address" translate translate-attr-placeholder="FORGOTPASSWORD.EMAIL_ADRESS" ng-pattern="/^.+@.+\\..+$/" required>\n <div ng-messages="forgotPasswordForm.email.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="FORGOTPASSWORD.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="FORGOTPASSWORD.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n\n <md-button type="button" ng-click="vm.forgotPassword()" class="md-raised md-accent submit-button" aria-label="RESET MY PASSWORD" ng-disabled="forgotPasswordForm.$invalid || forgotPasswordForm.$pristine" translate="FORGOTPASSWORD.SEND_RESET_LINK" translate-attr-aria-label="FORGOTPASSWORD.SEND_RESET_LINK">\n SEND RESET LINK\n </md-button>\n </form>\n\n <div class="login" layout="row" layout-align="center center">\n <a class="link" ui-sref="app.login" translate="FORGOTPASSWORD.GO_BACK">Go back to login</a>\n </div>\n </div>\n </div>\n</div>'),e.put("app/header/layouts/vertical-navigation/header.html",'\x3c!-- <div layout="row" layout-align="start center">\n <ms-info-bar ng-if="vm.currentUser.role == \'admin\' && !vm.newsAlertHide" on-close="vm.newsAlertOnClose()" class="green-600-bg white-fg">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-message-text-outline" class="icon margin-right-10 s20"></md-icon>\n <div flex hide-xs translate="HEADER.NEWS"></div>\n </div>\n </ms-info-bar>\n</div> --\x3e'),e.put("app/login/login.html",'<div id="login" class="flex-scrollable" layout="column" ms-scroll>\n <div id="login-form-wrapper" layout="column" layout-align="center center">\n <div id="login-form" class="md-whiteframe-8dp">\n\n <img src="/api/settings/1/logo_login" alt="logo_login" class="logo_login" />\n \x3c!-- <img src="assets/images/logos/login.png" alt="motion_logo_login" /> --\x3e\n\n <div class="md-subhead padding-top-45" translate="LOGIN.TITLE">Log in to your account</div>\n\n <form name="loginForm" novalidate ng-if="!vm.progressLogin">\n <md-input-container class="md-block" md-no-float>\n <input type="input" name="name" ng-model="vm.form.name" autofocus aria-label="username" translate translate-attr-placeholder="LOGIN.USERNAME" required>\n <div ng-messages="loginForm.name.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="LOGIN.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" md-no-float>\n <input type="password" name="password" ng-model="vm.form.password" aria-label="password" translate translate-attr-placeholder="LOGIN.PASSWORD" required>\n <div ng-messages="loginForm.password.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="LOGIN.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="remember-forgot-password" layout="row" layout-xs="column" layout-align="end center">\n \x3c!-- <md-checkbox class="remember-me" ng-model="data.cb1" aria-label="Remember Me">\n <span translate="LOGIN.REMEMBER_ME">Remember Me</span>\n </md-checkbox> --\x3e\n <a ui-sref="app.forgot" class="forgot-password md-accent-color" style="cursor:pointer;" translate="LOGIN.FORGOT_PASSWORD">Forgot Password?</a>\n </div>\n\n <b layout="row" layout-align="center center" class="md-padding" ng-if="vm.message">\n <font color="red">{{vm.message}}</font>\n </b>\n <md-button type="submit" ng-click="vm.login()" class="md-raised md-accent submit-button" aria-label="LOGIN" translate="LOGIN.LOG_IN" translate-attr-aria-label="LOGIN.LOG_IN">\n LOG IN\n </md-button>\n </form>\n\n <md-progress-circular ng-if="vm.progressLogin" md-diameter="96"></md-progress-circular>\n\n <div ng-if="vm.googleSsoEnabled" class="separator">\n <span class="text" translate="LOGIN.OR">OR</span>\n </div>\n\n <md-button ng-if="vm.googleSsoEnabled" ng-click="vm.loginOauth(\'google\')" class="md-raised google">\n <div layout="row" layout-align="center center">\n <span>\n <md-icon md-font-icon="fab fa-google" class="s16"></md-icon>\n <span translate="LOGIN.WITH_GOOGLE">Log in with Google</span>\n </span>\n </div>\n </md-button>\n </div>\n </div>\n</div>'),e.put("app/main/apps/analytics/views/extractedReports/create/dialog.html",'<md-dialog class="extractedReport-dialog" aria-label="New ExtractedReport">\n <form name="extractedReportForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.REPORTNAME">ReportName</label>\n <input type="" name="name" ng-model="vm.extractedReport.name" ng-required="true" autofocus>\n\n <div ng-messages="extractedReportForm[\'name\'].$error" ng-show="extractedReportForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.REPORTNAME_REQUIRED">ReportName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.NAME">Name</label>\n <input type="" name="basename" ng-model="vm.extractedReport.basename" ng-required="true">\n\n <div ng-messages="extractedReportForm[\'basename\'].$error" ng-show="extractedReportForm[\'basename\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newExtractedReport" ng-click="vm.saveExtractedReport()" class="send-button md-accent md-raised" ng-disabled="extractedReportForm.$invalid || extractedReportForm.$pristine" aria-label="SAVE" translate="ANALYTICS.SAVE" translate-attr-aria-label="ANALYTICS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newExtractedReport" ng-click="vm.addNewExtractedReport()" class="send-button md-accent md-raised" ng-disabled="extractedReportForm.$invalid" aria-label="ADD" translate="ANALYTICS.ADD_EXTRACTEDREPORT" translate-attr-aria-label="ANALYTICS.ADD_EXTRACTEDREPORT">\n ADD EXTRACTEDREPORT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newExtractedReport" ng-click="vm.deleteExtractedReport($event)" aria-label="DELETE" translate translate-attr-aria-label="ANALYTICS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="ANALYTICS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/analytics/views/extractedReports/extractedReports.html",'<div id="extractedReports" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-chart-line" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="ANALYTICS.EXTRACTEDREPORTS">ExtractedReports</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="ANALYTICS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedExtractedReports.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedExtractedReports =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="ANALYTICS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-extractedReports-count">\n <span>{{vm.selectedExtractedReports.length}}</span>\n <span translate="ANALYTICS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="ANALYTICS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllExtractedReports()" translate="ANALYTICS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectExtractedReports()" translate="ANALYTICS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedExtractedReports" csv-label="true" filename="extractedReports.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedExtractedReports($event)" aria-label="delete selected" translate translate-attr-label="ANALYTICS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- EXTRACTEDREPORT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedExtractedReports" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getExtractedReports">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'ANALYTICS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'ANALYTICS.REPORTNAME\' | translate }}</th>\n <th md-column md-order-by="basename">{{ \'ANALYTICS.NAME\' | translate }}</th>\n <th md-column md-order-by="type">{{ \'ANALYTICS.TYPE\' | translate }}</th>\n <th md-column md-order-by="startDate">{{ \'ANALYTICS.DATE_RANGE_FROM\' | translate }}</th>\n <th md-column md-order-by="endDate">{{ \'ANALYTICS.DATE_RANGE_TO\' | translate }}</th>\n <th md-column md-order-by="createdAt">{{ \'ANALYTICS.GENERATED_AT\' | translate }}</th>\n <th md-column md-order-by="status">{{ \'ANALYTICS.STATUS\' | translate }}</th>\n <th md-column md-order-by="output">{{ \'ANALYTICS.OUTPUT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.extractedReports.rows.length">\n <td md-cell colspan="10">\n <div layout="row" layout-align="center center">\n <span translate="ANALYTICS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="extractedReport" md-select-id="id" ng-repeat="extractedReport in vm.extractedReports.rows">\n <td md-cell ng-if="extractedReport.userpic"><img class="avatar" alt="{{extractedReport.name}}" ng-src="api/users/{{extractedReport.id}}/avatar" /></td>\n <td md-cell ng-if="!extractedReport.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{extractedReport.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="id ">{{extractedReport.id}}</td>\n <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="name ">{{extractedReport.name}}</td>\n <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="basename ">{{extractedReport.basename}}</td>\n <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="type ">{{extractedReport.type}}</td>\n <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="startDate ">{{extractedReport.startDate | date:\'medium\' }}</td>\n <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="endDate ">{{extractedReport.endDate | date:\'medium\' }}</td>\n <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="createdAt ">{{extractedReport.createdAt | date:\'medium\' }}</td>\n <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="status ">{{extractedReport.status}}</td>\n <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="output ">{{extractedReport.output}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="ANALYTICS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(extractedReport, $event )" translate="ANALYTICS.EDIT_EXTRACTEDREPORT">\n Edit ExtractedReport\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="extractedReport.status == \'Completed\'">\n\n <md-button ng-click="vm.downloadfile2(extractedReport, $event , \'analytics/extracted_reports\' )" translate="ANALYTICS.DOWNLOAD_EXTRACTEDREPORT">\n Download ExtractedReport\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(extractedReport, $event )" translate="ANALYTICS.DELETE_EXTRACTEDREPORT">\n Delete ExtractedReport\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'ANALYTICS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'ANALYTICS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'ANALYTICS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.extractedReports.count}}" md-on-paginate="vm.getExtractedReports" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / EXTRACTEDREPORT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- NO ADD BUTTON BUTTON --\x3e\n</div>'),e.put("app/main/apps/analytics/views/metrics/create/dialog.html",'<md-dialog class="metric-dialog" aria-label="New Metric">\n <form name="metricForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.metric.name" ng-required="true" autofocus>\n\n <div ng-messages="metricForm[\'name\'].$error" ng-show="metricForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.TABLE">Table</label>\n <md-select name="table" ng-model="vm.metric.table" required>\n <md-option ng-value="\'report_agent\'">Agent Report</md-option>\n <md-option ng-value="\'report_call\'">Call Report</md-option>\n <md-option ng-value="\'cdr\'">CDR</md-option>\n <md-option ng-value="\'chat_websites\'">Chat Website</md-option>\n <md-option ng-value="\'chat_interactions\'">Chat Interaction</md-option>\n <md-option ng-value="\'chat_messages\'">Chat Messages</md-option>\n <md-option ng-value="\'chat_offline_messages\'">Chat Offline Messages</md-option>\n <md-option ng-value="\'chat_queues\'">Chat Queues</md-option>\n <md-option ng-value="\'report_chat_queue\'">Chat Report Queue</md-option>\n <md-option ng-value="\'report_chat_transfer\'">Chat Report Transfer</md-option>\n <md-option ng-value="\'cm_companies\'">Companies</md-option>\n <md-option ng-value="\'report_call_transfer\'">Call transfer report</md-option>\n <md-option ng-value="\'cm_contacts\'">Contacts</md-option>\n <md-option ng-value="\'report_square\'">CSquare Report</md-option>\n <md-option ng-value="\'report_square_details\'">CSquare Details Report</md-option>\n <md-option ng-value="\'report_dial\'">Dial Report</md-option>\n <md-option ng-value="\'cm_hopper\'">Dialer Hopper Processing</md-option>\n <md-option ng-value="\'cm_hopper_history\'">Dialer Hopper Logs</md-option>\n <md-option ng-value="\'cm_hopper_final\'">Dialer Hopper Final</md-option>\n <md-option ng-value="\'mail_accounts\'">Email Account</md-option>\n <md-option ng-value="\'mail_interactions\'">Email Interaction</md-option>\n <md-option ng-value="\'mail_messages\'">Email Messages</md-option>\n <md-option ng-value="\'mail_queues\'">Email Queues</md-option>\n <md-option ng-value="\'report_mail_queue\'">Email Report Queue</md-option>\n <md-option ng-value="\'report_mail_transfer\'">Email Report Transfer</md-option>\n <md-option ng-value="\'fax_accounts\'">Fax Account</md-option>\n <md-option ng-value="\'fax_interactions\'">Fax Interaction</md-option>\n <md-option ng-value="\'fax_messages\'">Fax Messages</md-option>\n <md-option ng-value="\'fax_queues\'">Fax Queues</md-option>\n <md-option ng-value="\'report_fax_queue\'">Fax Report Queue</md-option>\n <md-option ng-value="\'report_fax_transfer\'">Fax Report Transfer</md-option>\n <md-option ng-value="\'report_jscripty_sessions\'">Jscripty Sessions</md-option>\n <md-option ng-value="\'report_jscripty_questions\'">Jscripty Questions</md-option>\n <md-option ng-value="\'report_jscripty_answers\'">Jscripty Answers</md-option>\n <md-option ng-value="\'cm_lists\'">Lists</md-option>\n <md-option ng-value="\'report_member\'">Member Report</md-option>\n <md-option ng-value="\'openchannel_accounts\'">Openchannel Account</md-option>\n <md-option ng-value="\'openchannel_interactions\'">Openchannel Interaction</md-option>\n <md-option ng-value="\'openchannel_messages\'">Openchannel Messages</md-option>\n <md-option ng-value="\'openchannel_queues\'">Openchannel Queues</md-option>\n <md-option ng-value="\'report_openchannel_queue\'">Openchannel Report Queue</md-option>\n <md-option ng-value="\'report_openchannel_transfer\'">Openchannel Report Transfer</md-option>\n <md-option ng-value="\'report_queue\'">Queue Report</md-option>\n <md-option ng-value="\'sms_accounts\'">SMS Account</md-option>\n <md-option ng-value="\'sms_interactions\'">SMS Interaction</md-option>\n <md-option ng-value="\'sms_messages\'">SMS Messages</md-option>\n <md-option ng-value="\'sms_queues\'">SMS Queues</md-option>\n <md-option ng-value="\'report_sms_queue\'">SMS Report Queue</md-option>\n <md-option ng-value="\'report_sms_transfer\'">SMS Report Transfer</md-option>\n <md-option ng-value="\'users\'">Users</md-option>\n <md-option ng-value="\'voice_recordings\'">Voice Recordings</md-option>\n <md-option ng-value="\'whatsapp_accounts\'">Whatsapp Account</md-option>\n <md-option ng-value="\'whatsapp_interactions\'">Whatsapp Interaction</md-option>\n <md-option ng-value="\'whatsapp_messages\'">Whatsapp Messages</md-option>\n <md-option ng-value="\'whatsapp_queues\'">Whatsapp Queues</md-option>\n <md-option ng-value="\'report_whatsapp_queue\'">Whatsapp Report Queue</md-option>\n <md-option ng-value="\'report_whatsapp_transfer\'">Whatsapp Report Transfer</md-option>\n </md-select>\n <div ng-messages="metricForm[\'table\'].$error" ng-show="metricForm[\'table\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.TABLE_REQUIRED">Table field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.METRIC">Metric</label>\n <input type="text" name="metric" ng-model="vm.metric.metric" ng-required="true">\n\n <div ng-messages="metricForm[\'metric\'].$error" ng-show="metricForm[\'metric\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.METRIC_REQUIRED">Metric field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.metric.description">\n\n <div ng-messages="metricForm[\'description\'].$error" ng-show="metricForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newMetric" ng-click="vm.saveMetric()" class="send-button md-accent md-raised" ng-disabled="metricForm.$invalid || metricForm.$pristine" aria-label="SAVE" translate="ANALYTICS.SAVE" translate-attr-aria-label="ANALYTICS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newMetric" ng-click="vm.addNewMetric()" class="send-button md-accent md-raised" ng-disabled="metricForm.$invalid" aria-label="ADD" translate="ANALYTICS.ADD_METRIC" translate-attr-aria-label="ANALYTICS.ADD_METRIC">\n ADD METRIC\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newMetric" ng-click="vm.deleteMetric($event)" aria-label="DELETE" translate translate-attr-aria-label="ANALYTICS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="ANALYTICS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/analytics/views/metrics/metrics.html",'<div id="metrics" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-chart-line" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="ANALYTICS.METRICS">Metrics</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="ANALYTICS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedMetrics.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedMetrics =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="ANALYTICS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-metrics-count">\n <span>{{vm.selectedMetrics.length}}</span>\n <span translate="ANALYTICS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="ANALYTICS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllMetrics()" translate="ANALYTICS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectMetrics()" translate="ANALYTICS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedMetrics" csv-label="true" filename="metrics.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedMetrics($event)" aria-label="delete selected" translate translate-attr-label="ANALYTICS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- METRIC TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedMetrics" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getMetrics">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'ANALYTICS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'ANALYTICS.NAME\' | translate }}</th>\n <th md-column md-order-by="table">{{ \'ANALYTICS.TABLE\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'ANALYTICS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.metrics.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="ANALYTICS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="metric" md-select-id="id" ng-repeat="metric in vm.metrics.rows">\n <td md-cell ng-if="metric.userpic"><img class="avatar" alt="{{metric.name}}" ng-src="api/users/{{metric.id}}/avatar" /></td>\n <td md-cell ng-if="!metric.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{metric.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditMetric($event, metric)" md-cell class="id ">{{metric.id}}</td>\n <td ng-click="vm.createOrEditMetric($event, metric)" md-cell class="name ">{{metric.name}}</td>\n <td ng-click="vm.createOrEditMetric($event, metric)" md-cell class="table ">{{ vm.arraytable[metric.table].option }}</td>\n <td ng-click="vm.createOrEditMetric($event, metric)" md-cell class="description ">{{metric.description}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="ANALYTICS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(metric, $event )" translate="ANALYTICS.EDIT_METRIC">\n Edit Metric\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(metric, $event )" translate="ANALYTICS.DELETE_METRIC">\n Delete Metric\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'ANALYTICS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'ANALYTICS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'ANALYTICS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.metrics.count}}" md-on-paginate="vm.getMetrics" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / METRIC TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD METRIC BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-metric-button" ng-click="vm.createOrEditMetric($event)" aria-label="add metric" translate translate-attr-aria-label="ANALYTICS.ADD_METRIC">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD METRIC BUTTON --\x3e\n</div>'),e.put("app/main/apps/analytics/views/reports/copy/dialog.html",'<md-dialog class="report-dialog" aria-label="Run Report">\n <form name="reportForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="ANALYTICS.COPY_REPORT">Copy Report</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.NAME">Name</label>\n <input name="name" ng-model="vm.report.name" required md-autofocus>\n <div ng-messages="reportForm.name.$error" ng-show="reportForm.name.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <div class="md-block">\n <label translate="ANALYTICS.SELECT_NODE">Select Node</label>\n <div js-tree="vm.treeCustomConfig" tree-events-obj="vm.treeCustomEvents" ng-model="vm.treeCustomData" tree="vm.treeCustomInstance"></div>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.copyReport()" class="send-button md-accent md-raised" ng-disabled="!vm.currentNode" aria-label="COPY" translate="ANALYTICS.COPY_REPORT" translate-attr-aria-label="ANALYTICS.COPY_REPORT">\n COPY REPORT\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/analytics/views/reports/create/dialog.html",'<md-dialog class="report-dialog" aria-label="New Report">\n <form name="reportForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.NAME">Name</label>\n <input type="" name="name" ng-model="vm.report.name" required md-autofocus>\n <div ng-messages="reportForm.name.$error" ng-show="reportForm.name.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.newReport">\n <label translate="ANALYTICS.TABLE">Table</label>\n <md-select ng-model="vm.report.table" required>\n <md-option ng-repeat="table in vm.tables | orderBy:\'name\'" ng-value="table.name">{{table.name}}</md-option>\n </md-select>\n <div ng-messages="reportForm.table.$error" ng-show="reportForm.table.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.TABLE_REQUIRED">Table field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.report.description">\n <div ng-messages="reportForm.description.$error" ng-show="reportForm.description.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-autocomplete ng-if="vm.newReport" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-items="table in vm.tables | filter:vm.searchText" md-item-text="table.name" md-min-length="0" md-selected-item-change="vm.selectedTableChange(table)" placeholder="Select the table to Join">\n <md-item-template>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{table.name}}</span>\n </md-item-template>\n <md-not-found>\n No states matching "{{vm.searchText}}" were found.\n </md-not-found>\n </md-autocomplete>\n\n <md-card ng-if="vm.newReport" md-theme="default" md-theme-watch ng-repeat="table in vm.joinTables">\n <md-card-title>\n <md-card-title-text layout="row">\n <div layout="row" flex="50">\n <span class="md-subhead">{{table.name}}</span>\n </div>\n <div layout="row" layout-align="end center" flex>\n <md-button class="md-icon-button" ng-click="vm.removeJoin($index)">\n <md-icon md-font-icon="icon-delete" aria-label="alert error"></md-icon>\n </md-button>\n </div>\n </md-card-title-text>\n </md-card-title>\n <md-card-content>\n <md-select ng-model="table.parentKey" placeholder="Select the parent key" ng-init="table.parentFields = []; vm.getFields(table, \'parentFields\', vm.report.table)" required>\n <md-option ng-repeat="field in table.parentFields" ng-value="field">{{field}}</md-option>\n </md-select>\n <md-select ng-model="table.foreignKey" placeholder="Select the foreign key" ng-init="table.foreignFields = []; vm.getFields(table, \'foreignFields\', table.name)" required>\n <md-option ng-repeat="field in table.foreignFields" ng-value="field">{{field}}</md-option>\n </md-select>\n <md-select ng-model="table.type" placeholder="Select join type" required>\n <md-option ng-repeat="join in vm.joinTypes" ng-value="join.key">{{join.value}}</md-option>\n </md-select>\n </md-card-content>\n </md-card>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-if="!vm.newReport" ng-click="vm.saveReport()" class="send-button md-accent md-raised" ng-disabled="reportForm.$invalid || reportForm.$pristine" aria-label="SAVE" translate="ANALYTICS.SAVE" translate-attr-aria-label="ANALYTICS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newReport" ng-click="vm.addNewReport()" class="send-button md-accent md-raised" ng-disabled="reportForm.$invalid || reportForm.$pristine" aria-label="ADD" translate="ANALYTICS.ADD_REPORT" translate-attr-aria-label="ANALYTICS.ADD_REPORT">\n ADD REPORT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newReport" ng-click="vm.deleteReport($event)" aria-label="DELETE" translate translate-attr-aria-label="ANALYTICS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="ANALYTICS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/analytics/views/reports/edit/condition/group.html",'<md-card class="padding-horizontal-15 padding-top-15">\n <div layout="row" ng-if="vm_rc.crudPermissions.canEdit">\n <md-input-container class="md-block" flex>\n <label translate="ANALYTICS.OPERATOR">Operator</label>\n <md-select ng-model="group.operator" required>\n <md-option value="AND">AND</md-option>\n <md-option value="OR">OR</md-option>\n </md-select>\n <div ng-messages="conditionsForm.operator.$error" ng-show="conditionsForm.operator.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.OPERATOR_REQUIRED">Operator field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-button class="md-raised md-accent" ng-click="vm_rc.addCondition(group.rules)">\n <md-icon md-font-icon="icon-plus"></md-icon> {{\'ANALYTICS.CONDITION\' | translate}}\n </md-button>\n </md-input-container>\n <md-input-container class="md-block">\n <md-button class="md-raised md-accent" ng-click="vm_rc.addGroup(group.rules)">\n <md-icon md-font-icon="icon-plus"></md-icon> {{\'ANALYTICS.GROUP\' | translate}}\n </md-button>\n </md-input-container>\n <div flex></div>\n <md-input-container class="md-block" ng-if="parent">\n <md-button class="md-raised md-warn" ng-click="vm_rc.deleteConfirm(parent, index, $event)">\n <md-icon md-font-icon="icon-delete"></md-icon> {{\'ANALYTICS.GROUP\' | translate}}\n </md-button>\n </md-input-container>\n </div>\n <div layout="column" ng-repeat="rule in group.rules track by $index">\n <div layout="row" ng-if="!rule.group">\n <md-input-container class="md-block" flex>\n <label translate="ANALYTICS.COLUMN">COLUMN</label>\n <md-select name="field" ng-model="rule.field" ng-disabled="!vm_rc.crudPermissions.canEdit" required>\n <md-optgroup label="{{vm_rc.report.table}}">\n <md-option ng-repeat="column in vm_rc.columns" value="{{vm_rc.report.table}}.{{column}}">{{column}}</md-option>\n </md-optgroup>\n <md-optgroup ng-if="vm_rc.report.joins" ng-repeat="join in vm_rc.report.joins" label="{{join.foreignTable}}">\n <md-option ng-repeat="field in join.foreignTableFields" value="{{join.foreignTable}}.{{field}}">{{field}}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="conditionsForm.field.$error" ng-show="conditionsForm.field.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.COLUMN_REQUIRED">Column field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" flex>\n <label translate="ANALYTICS.CONDITION">CONDITION</label>\n <md-select name="condition" ng-model="rule.condition" ng-disabled="!vm_rc.crudPermissions.canEdit" required>\n <md-option ng-repeat="condition in vm_rc.conditions" ng-value="condition">{{condition}}</md-option>\n </md-select>\n <div ng-messages="conditionsForm.condition.$error" ng-show="conditionsForm.condition.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm_rc.isValueByCondition(rule.condition)" class="md-block" flex>\n <label translate="ANALYTICS.VALUE">VALUE</label>\n <input type="text" name="value" ng-model="rule.value" ng-disabled="!vm_rc.crudPermissions.canEdit" required md-autofocus>\n <div ng-messages="conditionsForm.value.$error" ng-show="conditionsForm.value.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm_rc.crudPermissions.canEdit" flex>\n <md-button class="md-fab md-mini md-warn" aria-label="Delete row" ng-click="vm_rc.deleteConfirm(group.rules, $index, $event)">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </md-input-container>\n </div>\n <div ng-if="rule.group" ng-include="\'app/main/apps/analytics/views/reports/edit/condition/group.html\'" ng-init="parent=group.rules;index=$index;group=rule.group"></div>\n </div>\n</md-card>'),e.put("app/main/apps/analytics/views/reports/edit/field/dialog.html",'<md-dialog class="reportField-dialog" aria-label="New Report Field">\n <form name="reportFieldForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{vm.title}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <pre></pre>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.reportField.type" ng-change="vm.reportField.field = undefined" required>\n <md-option value="column">Select a column</md-option>\n <md-option value="metric">Select an existing metric</md-option>\n <md-option value="custom">Write a custom metric</md-option>\n </md-select>\n <div ng-messages="reportForm.type.$error" ng-show="reportForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-switch on="vm.reportField.type">\n <md-input-container class="md-block" ng-switch-when="column">\n <label translate="ANALYTICS.COLUMN">Column Name</label>\n <md-select name="column" ng-model="vm.reportField.field" required>\n <md-optgroup label="{{vm.report.table}}">\n <md-option ng-repeat="column in vm.columns" value="{{vm.report.table}}.{{column}}">{{column}}</md-option>\n \x3c!-- <md-option ng-repeat="column in vm.columns" ng-value="">{{column}}</md-option> --\x3e\n </md-optgroup>\n <md-optgroup ng-if="vm.report.joins" ng-repeat="join in vm.report.joins" label="{{join.foreignTable}}">\n <md-option ng-repeat="field in join.foreignTableFields" value="{{join.foreignTable}}.{{field}}">{{field}}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="reportForm.column.$error" ng-show="reportForm.column.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.COLUMN_REQUIRED">Column field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-switch-when="metric">\n <label translate="ANALYTICS.METRIC_NAME">Metric Name</label>\n <md-select name="metric" ng-model="vm.reportField.MetricId" required>\n <md-option ng-repeat="metric in vm.metrics" ng-value="metric.id">{{metric.name}}</md-option>\n </md-select>\n <div ng-messages="reportForm.metric.$error" ng-show="reportForm.metric.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.METRIC_REQUIRED">Metric field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-switch-when="custom">\n <label translate="ANALYTICS.CUSTOM_METRIC">Custom Metric</label>\n <input type="text" name="field" ng-model="vm.reportField.field" required md-autofocus>\n <div ng-messages="reportFieldForm.field.$error" ng-show="reportFieldForm.field.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.CUSTOM_METRIC_REQUIRED">Custom Metric field is required</span>\n </div>\n </div>\n </md-input-container>\n </div>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.reportField.alias" ng-required="vm.reportField.type === \'custom\' || vm.reportField.type === \'metric\'">\n <div ng-messages="reportFieldForm.alias.$error" ng-show="reportFieldForm.alias.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.reportField.type !== \'metric\'">\n <label translate="ANALYTICS.FUNCTION">Function</label>\n <md-select name="function" ng-model="vm.reportField.function">\n <md-option ng-value="null">No Function</md-option>\n <md-option ng-repeat="function in vm.sqlUtil.getFunctions" ng-value="function.value">{{function.value}}</md-option>\n </md-select>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.reportField.type !== \'metric\'">\n <label translate="ANALYTICS.FORMAT">Format</label>\n <md-select name="format" ng-model="vm.reportField.format">\n <md-option ng-value="null">No Format</md-option>\n <md-option ng-repeat="format in vm.sqlUtil.getFormats" ng-value="format.value">{{format.value}}</md-option>\n </md-select>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.GROUP_BY">Group By</label>\n <md-select name="groupBy" ng-model="vm.reportField.groupBy">\n <md-option ng-repeat="gb in vm.sqlUtil.getGroupBy" ng-value="gb.value">{{gb.value ? \'Yes\' : \'No\'}}</md-option>\n </md-select>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.ORDER_BY">Order By</label>\n <md-select name="orderBy" ng-model="vm.reportField.orderBy">\n <md-option ng-value="null">No Order</md-option>\n <md-option ng-repeat="ob in vm.sqlUtil.getOrderBy" ng-value="ob.value">{{ob.value}}</md-option>\n </md-select>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-if="!vm.newReportField" ng-click="vm.saveReportField()" class="send-button md-accent md-raised" ng-disabled="reportFieldForm.$invalid || reportFieldForm.$pristine" aria-label="SAVE" translate="ANALYTICS.SAVE" translate-attr-aria-label="ANALYTICS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newReportField" ng-click="vm.addNewReportField()" class="send-button md-accent md-raised" ng-disabled="reportFieldForm.$invalid || reportFieldForm.$pristine" aria-label="ADD" translate="ANALYTICS.ADD_REPORTFIELD" translate-attr-aria-label="ANALYTICS.ADD_REPORTFIELD">\n ADD REPORT FIELD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newReportField" ng-click="vm.deleteReportField($event)" aria-label="DELETE" translate translate-attr-aria-label="ANALYTICS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="ANALYTICS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/analytics/views/reports/edit/view.html",'<div id="analytics-report" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-reports-button md-icon-button" aria-label="Go to reports" ng-click="vm.gotoReports()" translate translate-attr-aria-label="ANALYTICS.GO_TO_ANALYTICSQUEUES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="report-image" hide-xs>\n <img ng-src="assets/images/business/reports.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.report.id}} {{vm.report.name}}\n </div>\n <div class="subtitle secondary-text">\n <span translate="ANALYTICS.CREATED_AT"></span> <span>{{vm.report.createdAt | date:\'medium\'}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span>{{vm.report.description}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div>\n <md-button type="submit" ng-click="vm.saveReport()" ng-disabled="generalForm.$pristine && conditionsForm.$pristine" class="send-button md-accent md-raised" translate="ANALYTICS.SAVE" translate-attr-aria-label="ANALYTICS.SAVE">\n SAVE\n </md-button>\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="ANALYTICS.SETTINGS">SETTINGS</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="report-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="ANALYTICS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.NAME">Name</label>\n <input type="text" name="name" ng-disabled="!vm.crudPermissions.canEdit" ng-model="vm.report.name" required md-autofocus>\n <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-disabled="!vm.crudPermissions.canEdit" ng-model="vm.report.description">\n <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="ANALYTICS.FIELDS">FIELDS</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="report-detail-form-container fields md-background-bg md-whiteframe-1dp">\n <div ng-controller="ReportFieldsController as vm_rf" ng-init="vm_rf.init(vm.report, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_rf.selectedReportFields.length">\n <div class="md-toolbar-tools">\n <div layout="row" layout-align="start center">\n <div layout="column" layout-align="start start">\n <div class="md-subhead" translate="ANALYTICS.FIELDS">\n <span translate="ANALYTICS.FIELDS">FIELDS</span>\n </div>\n <div class="h4">\n <span translate="ANALYTICS.TABLE">TABLE</span> <span class="text-bold">{{vm.report.table}}</span>\n </div>\n <div class="h4" ng-if="vm.report.joins && vm.report.joins.length && vm.isArray(vm.report.joins)">\n <span>Join</span> <span class="text-bold">{{ vm.mapArray(vm.report.joins, \'foreignTable\') }}</span>\n </div>\n </div>\n </div>\n <div flex></div>\n <ms-search-bar on-search="vm_rf.query.filter = query" on-collapse="vm_rf.query.filter = undefined" debounce="300"></ms-search-bar>\n <md-button class="md-icon-button" ng-if="vm_rf.crudPermissions.canEdit" ng-click="vm_rf.createOrEditReportField($event)" aria-label="add field" translate translate-attr-label="ANALYTICS.ADD_FIELD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_rf.selectedReportFields.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_rf.selectedReportFields.length}} {{vm_rf.selectedReportFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_rf.deleteSelectedReportFields($event)" aria-label="delete selected" translate translate-attr-label="ANALYTICS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select="vm_rf.crudPermissions.canDelete" multiple ng-model="vm_rf.selectedReportFields" md-progress="vm_rf.promise">\n <thead md-head md-order="vm_rf.query.sort" md-on-reorder="vm_rf.getReportFields">\n <tr md-row>\n <th md-column width="10px" ng-if="vm_rf.crudPermissions.canEdit">\n <md-icon md-font-icon="icon-drag-vertical"></md-icon>\n </th>\n <th md-column>Type</th>\n <th md-column>Column or Metric</th>\n <th md-column>Alias</th>\n <th md-column>Function</th>\n <th md-column>Format</th>\n <th md-column>Group By</th>\n <th md-column>Order By</th>\n <th md-column width="10px" ng-if="vm_rf.crudPermissions.canEdit"></th>\n </tr>\n </thead>\n <tbody md-body ng-sortable="vm_rf.sortableTable">\n <tr md-row md-select="reportField" md-select-id="id" ng-repeat="reportField in vm_rf.reportFields.rows">\n <td md-cell class="handle" ng-if="vm_rf.crudPermissions.canEdit">\n <md-icon md-font-icon="icon-drag-vertical" class="s16"></md-icon>\n </td>\n <td md-cell>\n <div ng-if="reportField.MetricId && !reportField.custom" ng-click="vm_rf.createOrEditReportField($event, reportField)" class="icon icon-shape-plus s16"></div>\n <div ng-if="!reportField.MetricId && reportField.custom" ng-click="vm_rf.createOrEditReportField($event, reportField)" class="icon icon-pencil-box-outline s16"></div>\n <div ng-if="!reportField.MetricId && !reportField.custom" ng-click="vm_rf.createOrEditReportField($event, reportField)" class="icon icon-view-column s16"></div>\n </td>\n <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)">{{reportField.MetricId ? vm_rf.getMetricName(reportField.MetricId) : reportField.field}}</td>\n <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)">{{reportField.alias}}</td>\n <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)"><span class="text-boxed blue-bg white-fg" ng-if="reportField.function">{{reportField.function}}</span><span ng-if="!reportField.function">--</span></td>\n <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)"><span class="text-boxed blue-bg white-fg" ng-if="reportField.format">{{reportField.format}}</span><span ng-if="!reportField.format">--</span></td>\n <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)"><span class="text-boxed blue-bg white-fg" ng-if="reportField.groupBy">YES</span><span ng-if="!reportField.groupBy">--</span></td>\n <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)"><span class="text-boxed blue-bg white-fg" ng-if="reportField.orderBy">{{reportField.orderBy}}</span><span ng-if="!reportField.orderBy">--</span></td>\n <td md-cell class="actions" ng-if="vm_rf.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="ANALYTICS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm_rf.createOrEditReportField($event, reportField)" translate="ANALYTICS.EDIT_REPORTFIELD">\n Edit Field\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm_rf.deleteConfirm(reportField, $event)" translate="ANALYTICS.DELETE_REPORTFIELD">\n Delete Field\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="ANALYTICS.CONDITIONS">CONDITIONS</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="report-detail-form-container conditions md-background-bg md-whiteframe-1dp">\n <div ng-controller="ReportConditionsController as vm_rc" ng-init="vm_rc.init(vm.report, vm.crudPermissions)">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="ANALYTICS.CONDITION">CONDITION</div>\n </div>\n <form name="conditionsForm" novalidate>\n <div ng-if="vm_rc.report.condition.group" ng-include="\'app/main/apps/analytics/views/reports/edit/condition/group.html\'" ng-init="group=vm_rc.report.condition.group"></div>\n </form>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab md-on-select="vm.previewReport()">\n <md-tab-label>\n <span translate="ANALYTICS.PREVIEW">PREVIEW</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="report-detail-form-container result md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div ng-if="vm.error" class="h2 secondary-text" translate="ANALYTICS.ERROR">ERROR</div>\n <div ng-if="!vm.error" class="h2 secondary-text" translate="ANALYTICS.LIMITED_RESULT">LIMITED RESULT</div>\n </div>\n <dl ng-if="vm.error">\n <dt class="text-bold" translate="ANALYTICS.QUERY_ERROR">Query Error</dt>\n <dd>{{vm.error.sql}}</dd>\n <dt translate="ANALYTICS.MESSAGE">Message</dt>\n <dd>{{vm.error.msg}}</dd>\n </dl>\n <md-table-container ng-if="!vm.error">\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th ng-repeat="column in vm.columns">{{column.alias || column.field}}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-repeat="row in vm.rows">\n <td md-cell ng-repeat="(key, value) in row">{{ vm.valueReplacer(key, value) }}</td>\n </tr>\n <tr md-row ng-if="!vm.rows.length">\n <td md-cell colspan="{{vm.columns.length}}"><span translate="ANALYTICS.NO_DATA">NO DATA</span></td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab md-on-select="vm.queryReport()">\n <md-tab-label>\n <span>Query</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="report-detail-form-container result md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div ng-if="vm.error" class="h2 secondary-text" translate="ANALYTICS.ERROR">ERROR</div>\n <div ng-if="!vm.error" class="h2 secondary-text">SQL</div>\n </div>\n <dl ng-if="vm.error">\n <dt class="text-bold" translate="ANALYTICS.QUERY_ERROR">Query Error</dt>\n <dd>{{vm.error.sql}}</dd>\n <dt translate="ANALYTICS.MESSAGE">Message</dt>\n <dd>{{vm.error.msg}}</dd>\n </dl>\n <div ng-if="!vm.error">\n {{vm.queryResult}}\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/analytics/views/reports/preview/dialog.html",'<md-dialog aria-label="Run Report">\n <form name="reportForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="ANALYTICS.PREVIEW_REPORT">Preview Report</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <div class="md-block">\n <div class="pb-16" layout="row" layout-align="start center">\n <div ng-if="vm.error" class="h2 secondary-text" translate="ANALYTICS.ERROR">ERROR</div>\n <div ng-if="!vm.error" class="h2 secondary-text" translate="ANALYTICS.LIMITED_RESULT">LIMITED RESULT</div>\n </div>\n <dl ng-if="vm.error">\n <dt class="text-bold" translate="ANALYTICS.QUERY_ERROR">Query Error</dt>\n <dd>{{vm.error.sql}}</dd>\n <dt translate="ANALYTICS.MESSAGE">Message</dt>\n <dd>{{vm.error.msg}}</dd>\n </dl>\n <md-table-container ng-if="!vm.error">\n <table md-table md-progress="vm.promise">\n <thead md-head>\n <tr md-row>\n <th md-column ng-repeat="column in vm.columns">{{column.alias || column.field}}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-repeat="row in vm.rows">\n <td md-cell ng-repeat="(key, value) in row">{{ vm.valueReplacer(key, value) }}</td>\n </tr>\n <tr md-row ng-if="!vm.rows.length">\n <td md-cell colspan="{{vm.columns.length}}"><span translate="ANALYTICS.NO_DATA">NO DATA</span></td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div flex></div>\n <md-button type="submit" ng-click="vm.closeDialog()" class="md-raised" aria-label="CLOSE" translate="ANALYTICS.CLOSE" translate-attr-aria-label="ANALYTICS.CLOSE">\n CLOSE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/analytics/views/reports/reports.html",'<div id="reports" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-chart-line" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="ANALYTICS.REPORTS">Reports</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedReports.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedReports =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="ANALYTICS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-reports-count">\n <span>{{vm.selectedReports.length}}</span>\n <span translate="ANALYTICS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="ANALYTICS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllReports()" translate="ANALYTICS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectReports()" translate="ANALYTICS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedReports" csv-label="true" filename="reports.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm.crudPermissions.canDelete && vm.currentNode.custom" class="md-icon-button" ng-click="vm.deleteSelectedReports($event)" aria-label="delete selected" translate translate-attr-label="ANALYTICS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div layout="column" flex="30">\n <md-card class="padding-top-5 padding-horizontal-10 padding-bottom-0">\n \x3c!-- SEARCH --\x3e\n <div layout="row" layout-align="start center">\n <label for="searchFolder" class="m-0">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="margin-horizontal-0 margin-bottom-0 margin-top-10" flex>\n <input id="searchFolder" placeholder="Search folder" type="text" ng-model="vm.search" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="ANALYTICS.SEARCH_FOR_FOLDER">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </md-card>\n <md-card class="padding-10 scrollable" ms-scroll>\n <div js-tree="vm.treeDefaultConfig" tree-events-obj="vm.treeDefaultEvents" ng-model="vm.treeDefaultData" tree="vm.treeDefaultInstance"></div>\n </md-card>\n <md-card class="padding-10 scrollable" ms-scroll>\n <div js-tree="vm.treeCustomConfig" tree-events-obj="vm.treeCustomEvents" ng-model="vm.treeCustomData" tree="vm.treeCustomInstance"></div>\n </md-card>\n </div>\n <md-card flex="70">\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="h2 secondary-text">{{vm.currentNode.text}}</span>\n <p ng-if="vm.currentPath">\n <span class="text-boxed">{{vm.currentPath}}</span>\n </p>\n <div flex></div>\n <ms-search-bar on-search="vm.getReports()" query="vm.query" on-collapse="vm.query.filter = undefined" debounce="300"></ms-search-bar>\n <div flow-init flow-file-added="vm.importReport($file, $event, $flow)">\n <md-button ng-if="vm.crudPermissions.canEdit && vm.currentNode.custom" class="md-icon-button" aria-label="import report" translate translate-attr-label="ANALYTICS.IMPORT_REPORT" flow-btn>\n <md-icon md-font-icon="icon-upload"></md-icon>\n </md-button>\n </div>\n <md-button ng-if="vm.crudPermissions.canEdit && vm.currentNode.custom" class="md-icon-button" ng-click="vm.createOrEditReport($event)" aria-label="add report" translate translate-attr-label="ANALYTICS.ADD_REPORT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedReports" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getReports">\n <tr md-row>\n <th md-column md-order-by="id" width="10px">{{ \'ANALYTICS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'ANALYTICS.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'ANALYTICS.DESCRIPTION\' | translate }}</th>\n <th md-column md-order-by="createdAt">{{ \'ANALYTICS.CREATED_AT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.reports.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="ANALYTICS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="report" md-select-id="id" ng-repeat="report in vm.reports.rows">\n <td ng-click="!vm.crudPermissions.canEdit ? vm.currentNode.custom && vm.editstate(report, $event) : vm.currentNode.custom && vm.createOrEditReport($event, report)" md-cell class="id">{{report.id}}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.currentNode.custom && vm.editstate(report, $event) : vm.currentNode.custom && vm.createOrEditReport($event, report)" md-cell class="name">{{report.name}}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.currentNode.custom && vm.editstate(report, $event) : vm.currentNode.custom && vm.createOrEditReport($event, report)" md-cell class="description">{{report.description}}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.currentNode.custom && vm.editstate(report, $event) : vm.currentNode.custom && vm.createOrEditReport($event, report)" md-cell class="createdAt">{{report.createdAt | date:\'medium\'}}</td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="ANALYTICS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.copydialog(report, $event)" translate="ANALYTICS.COPY_REPORT">\n Copy Report\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.previewdialog(report, $event)" translate="ANALYTICS.PREVIEW_REPORT">\n Preview Report\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.rundialog(report, $event)" translate="ANALYTICS.RUN_REPORT">\n Run Report\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.downloadfile(report, $event)" translate="ANALYTICS.DOWNLOAD_JSON_REPORT">\n Download Json Report\n </md-button>\n </md-menu-item>\n <md-menu-divider ng-if="vm.crudPermissions.canEdit && vm.crudPermissions.canDelete && vm.currentNode.custom">\n </md-menu-divider>\n <md-menu-item ng-if="vm.crudPermissions.canEdit && vm.currentNode.custom">\n <md-button ng-click="vm.editstate(report, $event)" translate="ANALYTICS.EDIT_REPORT">\n Edit Report\n </md-button>\n </md-menu-item>\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete && vm.currentNode.custom">\n <md-button ng-click="vm.deleteconfirm(report, $event)" translate="ANALYTICS.DELETE_REPORT">\n Delete Report\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'ANALYTICS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'ANALYTICS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'ANALYTICS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.reports.count}}" md-on-paginate="vm.getReports" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- NO ADD BUTTON BUTTON --\x3e\n</div>'),e.put("app/main/apps/analytics/views/reports/run/dialog.html",'<md-dialog class="report-dialog" aria-label="Run Report">\n <form name="reportForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="ANALYTICS.RUN_REPORT">Run Report</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.NAME">Name</label>\n <input name="name" ng-model="vm.export.name" required md-autofocus>\n <div ng-messages="reportForm.name.$error" ng-show="reportForm.name.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.FORMAT">FORMAT</label>\n <md-select name="format" ng-model="vm.export.output" required>\n <md-option value="csv">CSV</md-option>\n <md-option value="xlsx">Excel (XLSX)</md-option>\n <md-option value="pdf">PDF</md-option>\n <md-option value="web">Web</md-option>\n </md-select>\n <div ng-messages="reportForm.format.$error" ng-show="reportForm.format.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.FORMAT_REQUIRED">Format field is required</span>\n </div>\n </div>\n </md-input-container>\n <div layout="row">\n <div class="md-block" flex>\n <mdp-date-picker mdp-open-on-click required name="dateRangeFrom" mdp-placeholder="Date Range From" mdp-format="YYYY-MM-DD" mdp-max-date="vm.dateRangeTo" ng-model="vm.export.startDate">\n <div ng-messages="reportForm.dateRangeFrom.$error" ng-show="reportForm.dateRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.DATE_RANGE_FROM_REQUIRED">Date Range From field is required</span>\n </div>\n <div ng-message="format">\n <span translate="ANALYTICS.ERRORS.DATE_RANGE_FROM_INVALID">Date Range From field is invalid</span>\n </div>\n <div ng-message="maxDate">\n <span translate="ANALYTICS.ERRORS.DATE_RANGE_FROM_MAX_INVALID">Date Range From Max field is invalid</span>\n </div>\n </div>\n </mdp-date-picker>\n </div>\n <div class="md-block" flex>\n <mdp-date-picker mdp-open-on-click required name="dateRangeTo" mdp-placeholder="Date Range To" mdp-format="YYYY-MM-DD" mdp-min-date="vm.dateRangeFrom" ng-model="vm.export.endDate">\n <div ng-messages="reportForm.dateRangeTo.$error" ng-show="reportForm.dateRangeTo.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.DATE_RANGE_TO_REQUIRED">Date Range From field is required</span>\n </div>\n <div ng-message="format">\n <span translate="ANALYTICS.ERRORS.DATE_RANGE_TO_INVALID">Date Range From field is invalid</span>\n </div>\n <div ng-message="minDate">\n <span translate="ANALYTICS.ERRORS.DATE_RANGE_FROM_MIN_INVALID">Date Range From Min field is invalid</span>\n </div>\n </div>\n </mdp-date-picker>\n </div>\n </div>\n <div layout="row">\n <div class="md-block" flex>\n <mdp-time-picker required name="timeRangeFrom" mdp-placeholder="Time Range From" mdp-format="HH:mm:ss" mdp-auto-switch="true" mdp-max-date="vm.dateRangeTo" ng-model="vm.export.startDate">\n <div ng-messages="reportForm.timeRangeFrom.$error" ng-show="reportForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.TIME_RANGE_FROM_REQUIRED">Time Range From field is required</span>\n </div>\n <div ng-message="format">\n <span translate="ANALYTICS.ERRORS.TIME_RANGE_FROM_INVALID">Time Range From field is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n <div class="md-block" flex>\n <mdp-time-picker required name="timeRangeTo" mdp-placeholder="Time Range To" mdp-format="HH:mm:ss" mdp-auto-switch="true" mdp-min-date="vm.dateRangeFrom" ng-model="vm.export.endDate">\n <div ng-messages="reportForm.timeRangeTo.$error" ng-show="reportForm.timeRangeTo.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range From field is required</span>\n </div>\n <div ng-message="format">\n <span translate="ANALYTICS.ERRORS.TIME_RANGE_TO_INVALID">Time Range From field is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </div>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.runReport($event)" class="send-button md-accent md-raised" ng-disabled="reportForm.$invalid" aria-label="RUN" translate="ANALYTICS.RUN_REPORT" translate-attr-aria-label="ANALYTICS.RUN_REPORT">\n RUN REPORT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-click="vm.refreshDate()" aria-label="REFRESH" translate translate-attr-aria-label="ANALYTICS.REFRESH">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <md-tooltip><span translate="ANALYTICS.REFRESH">REFRESH</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/analytics/views/reports/run/web/dialog.html",'<md-dialog class="web-dialog" aria-label="Show Report">\n <form name="reportForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="ANALYTICS.WEB_REPORT">Web Report</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <div class="md-block">\n <div class="pb-16" layout="row" layout-align="start center">\n <div ng-if="vm.error" class="h2 secondary-text" translate="ANALYTICS.ERROR">ERROR</div>\n </div>\n <dl ng-if="vm.error">\n <dt class="text-bold" translate="ANALYTICS.QUERY_ERROR">Query Error</dt>\n <dd>{{vm.error.sql}}</dd>\n <dt translate="ANALYTICS.MESSAGE">Message</dt>\n <dd>{{vm.error.msg}}</dd>\n </dl>\n <md-table-container ng-if="!vm.error">\n <table md-table md-progress="vm.promise">\n <thead md-head>\n <tr md-row>\n <th md-column ng-repeat="column in vm.columns">{{column.alias || column.field}}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-repeat="row in vm.results.rows">\n <td md-cell ng-repeat="(key, value) in row">{{ vm.valueReplacer(key, value) }}</td>\n </tr>\n <tr md-row ng-if="!vm.results.rows.length">\n <td md-cell colspan="{{vm.columns.length}}">\n <div layout="row" layout-align="center center">\n <span translate="ANALYTICS.NO_DATA">NO DATA</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'ANALYTICS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'ANALYTICS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'ANALYTICS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.results.count}}" md-on-paginate="vm.getResults" md-page-select></md-table-pagination>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div flex></div>\n <md-button type="submit" ng-click="vm.closeDialog()" class="md-raised" aria-label="CLOSE" translate="ANALYTICS.CLOSE" translate-attr-aria-label="ANALYTICS.CLOSE">\n CLOSE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/odbcs/create/dialog.html",'<md-dialog class="odbc-dialog" aria-label="New Odbc">\n <form name="odbcForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CALLYSQUARE.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.odbc.name" ng-required="true" autofocus>\n\n <div ng-messages="odbcForm[\'name\'].$error" ng-show="odbcForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CALLYSQUARE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CALLYSQUARE.DSN">DSN</label>\n <input type="text" name="dsn" ng-model="vm.odbc.dsn" ng-required="true">\n\n <div class="hint"><span translate="CALLYSQUARE.HELP.DSN"></span></div>\n <div ng-messages="odbcForm[\'dsn\'].$error" ng-show="odbcForm[\'dsn\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CALLYSQUARE.ERRORS.DSN_REQUIRED">DSN field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CALLYSQUARE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.odbc.description">\n\n <div ng-messages="odbcForm[\'description\'].$error" ng-show="odbcForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CALLYSQUARE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newOdbc" ng-click="vm.saveOdbc()" class="send-button md-accent md-raised" ng-disabled="odbcForm.$invalid || odbcForm.$pristine" aria-label="SAVE" translate="CALLYSQUARE.SAVE" translate-attr-aria-label="CALLYSQUARE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newOdbc" ng-click="vm.addNewOdbc()" class="send-button md-accent md-raised" ng-disabled="odbcForm.$invalid" aria-label="ADD" translate="CALLYSQUARE.ADD_ODBC" translate-attr-aria-label="CALLYSQUARE.ADD_ODBC">\n ADD ODBC\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newOdbc" ng-click="vm.deleteOdbc($event)" aria-label="DELETE" translate translate-attr-aria-label="CALLYSQUARE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CALLYSQUARE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/odbcs/odbcs.html",'<div id="odbcs" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-sitemap" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="CALLYSQUARE.ODBC">ODBC</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="CALLYSQUARE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedODBC.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedODBC =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="CALLYSQUARE.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-odbcs-count">\n <span>{{vm.selectedODBC.length}}</span>\n <span translate="CALLYSQUARE.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CALLYSQUARE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllODBC()" translate="CALLYSQUARE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectODBC()" translate="CALLYSQUARE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedODBC" csv-label="true" filename="odbcs.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedODBC($event)" aria-label="delete selected" translate translate-attr-label="CALLYSQUARE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- ODBC TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedODBC" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getODBC">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'CALLYSQUARE.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'CALLYSQUARE.NAME\' | translate }}</th>\n <th md-column md-order-by="dsn">{{ \'CALLYSQUARE.DSN\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'CALLYSQUARE.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.odbcs.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="CALLYSQUARE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="odbc" md-select-id="id" ng-repeat="odbc in vm.odbcs.rows">\n <td md-cell ng-if="odbc.userpic"><img class="avatar" alt="{{odbc.name}}" ng-src="api/users/{{odbc.id}}/avatar" /></td>\n <td md-cell ng-if="!odbc.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{odbc.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditOdbc($event, odbc)" md-cell class="id ">{{odbc.id}}</td>\n <td ng-click="vm.createOrEditOdbc($event, odbc)" md-cell class="name ">{{odbc.name}}</td>\n <td ng-click="vm.createOrEditOdbc($event, odbc)" md-cell class="dsn ">{{odbc.dsn}}</td>\n <td ng-click="vm.createOrEditOdbc($event, odbc)" md-cell class="description ">{{odbc.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CALLYSQUARE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(odbc, $event )" translate="CALLYSQUARE.EDIT_ODBC">\n Edit Odbc\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestOdbc(odbc, $event )" translate="CALLYSQUARE.TEST_ODBC">\n Test Odbc\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(odbc, $event )" translate="CALLYSQUARE.DELETE_ODBC">\n Delete Odbc\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CALLYSQUARE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CALLYSQUARE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CALLYSQUARE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.odbcs.count}}" md-on-paginate="vm.getODBC" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / ODBC TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD ODBC BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-odbc-button" ng-click="vm.createOrEditOdbc($event)" aria-label="add odbc" translate translate-attr-aria-label="CALLYSQUARE.ADD_ODBC">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD ODBC BUTTON --\x3e\n</div>'),e.put("app/main/apps/callysquare/views/projects/create/dialog.html",'<md-dialog class="project-dialog" aria-label="New Project">\n <form name="projectForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{vm.title | translate}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CALLYSQUARE.NAME">Name</label>\n <input name="name" ng-model="vm.project.name" required md-autofocus ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-disabled="!vm.newProject">\n <div ng-messages="projectForm.name.$error" ng-show="projectForm.name.$touched" role="alert">\n <div ng-message="required">\n <span translate="CALLYSQUARE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="VOICE.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CALLYSQUARE.DESCRIPTION">Description</label>\n <input name="description" ng-model="vm.project.description">\n <div ng-messages="projectForm.description.$error" ng-show="projectForm.description.$touched" role="alert">\n <div ng-message="required">\n <span translate="CALLYSQUARE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.openFromEditor" class="md-block">\n \x3c!-- Added to check if I\'m opening the dialog directly from the square editor --\x3e\n <md-switch ng-model="vm.newWindow" aria-label="{{\'CALLYSQUARE.OPEN_NEW_WINDOW\' | translate }}"><span translate="CALLYSQUARE.OPEN_NEW_WINDOW"></span></md-switch>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-if="!vm.newProject" ng-click="vm.saveProject()" class="send-button md-accent md-raised" ng-disabled="projectForm.$invalid || projectForm.$pristine" aria-label="SAVE" translate="CALLYSQUARE.SAVE" translate-attr-aria-label="CALLYSQUARE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newProject" ng-click="vm.addNewProject()" class="send-button md-accent md-raised" ng-disabled="projectForm.$invalid || projectForm.$pristine" aria-label="ADD" translate="CALLYSQUARE.ADD_PROJECT" translate-attr-aria-label="CALLYSQUARE.ADD_PROJECT">\n ADD PROJECT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newProject" ng-click="vm.deleteProject($event)" aria-label="DELETE" translate translate-attr-aria-label="CALLYSQUARE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CALLYSQUARE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/dialog/dialog.html",'<md-dialog class="project-dialog" aria-label="New dialog" ng-init="vm.onInit()">\n <form name="dialogForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title"><span translate="CALLYSQUARE.EDIT"></span> <span translate="CALLYSQUARE.{{vm.cellName | uppercase}}"></span></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <md-input-container class="md-block" ng-repeat="attribute in vm.attributes" ng-switch="attribute.name">\n <label translate="CALLYSQUARE.{{attribute.name | uppercase}}">{{attribute.name | ucfirst }}</label>\n\n \x3c!-- START SELECT INPUT --\x3e\n <md-select name="{{attribute.name}}" ng-model="attribute.value" ng-disabled="!vm.crudPermissions.canEdit" ng-switch-when-separator="|" ng-switch-when="answer|trunk_name|trunk_id|queue_id|file_id|variable_id|google_cloud_tts_text_type|google_tts_language|ispeech_tts_language|ispeech_asr_language|google_asr_language|hiddendigitspos|odbc_id|project_id|beep|account_id|interval_id|template_id|list_id|recordingFormat|callback_priority|aws_polly_voice|aws_polly_region|aws_lex_region|sms_account_id|findBy|pause_id|aws_text_type|dialogflow_language|ndagenerate_audio|ndaactivity_type|languageCode|ssmlGender|method|dialogflowV2_language" ng-required="attribute.required">\n <md-option ng-if="attribute.defaultValue" ng-value="\'\'"> - None - </md-option>\n <md-option value="{{v.value}}" ng-repeat="v in vm.values[attribute.name]" ng-disabled="v.canSelect === false">{{v.option}}</md-option>\n <md-option ng-if="!vm.values[attribute.name].length" value="-1">No {{attribute.name}} available!</md-option>\n </md-select>\n \x3c!-- END SELECT INPUT --\x3e\n\n \x3c!-- START SELECT INPUT --\x3e\n <md-select name="{{attribute.name}}" ng-model="attribute.value" ng-disabled="!vm.crudPermissions.canEdit" ng-switch-when-separator="|" ng-switch-when="sip_id" ng-required="attribute.required">\n <md-optgroup label="{{\'CALLYSQUARE.AGENTS\' | translate}}">\n <md-option value="{{v.value}}" ng-repeat="v in vm.values[attribute.name]" ng-if="v.group === \'agent\'" ng-disabled="v.canSelect === false">{{v.option}}</md-option>\n </md-optgroup>\n <md-optgroup label="{{\'CALLYSQUARE.TELEPHONES\' | translate}}">\n <md-option value="{{v.value}}" ng-repeat="v in vm.values[attribute.name]" ng-if="v.group === \'telephone\'" ng-disabled="v.canSelect === false">{{v.option}}</md-option>\n </md-optgroup>\n <md-optgroup label="{{\'CALLYSQUARE.USERS\' | translate}}">\n <md-option value="{{v.value}}" ng-repeat="v in vm.values[attribute.name]" ng-if="v.group === \'admin\' || v.group === \'user\'">{{v.option}}</md-option>\n </md-optgroup>\n <md-option ng-if="!vm.values[attribute.name].length" value="-1">No {{attribute.name}} available!</md-option>\n </md-select>\n \x3c!-- END SELECT INPUT --\x3e\n\n \x3c!-- START NUMBER INPUT --\x3e\n <div ng-switch-when="timeout">\n <div ng-switch="vm.cellName">\n <input ng-switch-when-separator="|" ng-switch-when="answer|ext_dial|dial|queue" type="number" step="any" name="{{attribute.name}}" min="0" ng-model="attribute.value" ng-required="attribute.required" ng-disabled="!vm.crudPermissions.canEdit" string-to-number>\n <input ng-switch-when-separator="|" ng-switch-when="record|ispeechasr|googleasr" type="number" step="any" name="{{attribute.name}}" min="-1" ng-model="attribute.value" ng-required="attribute.required" ng-disabled="!vm.crudPermissions.canEdit" string-to-number>\n <input ng-switch-when-separator="|" ng-switch-when="restapi" type="number" step="any" name="{{attribute.name}}" min="1" ng-model="attribute.value" ng-required="attribute.required" ng-disabled="!vm.crudPermissions.canEdit" string-to-number>\n <input ng-switch-default type="number" step="any" name="{{attribute.name}}" min="0" ng-model="attribute.value" ng-required="attribute.required" ng-disabled="!vm.crudPermissions.canEdit" string-to-number>\n </div>\n </div>\n <input ng-switch-when-separator="|" ng-switch-when="speed" type="number" step="any" name="{{attribute.name}}" min="-10" max="-10" ng-model="attribute.value" ng-required="attribute.required" ng-disabled="!vm.crudPermissions.canEdit" string-to-number>\n <input ng-switch-when-separator="|" ng-switch-when="maxdigit|mindigit|digit" type="number" step="any" name="{{attribute.name}}" min="1" ng-model="attribute.value" ng-required="attribute.required" ng-disabled="!vm.crudPermissions.canEdit" string-to-number>\n <input ng-switch-when-separator="|" ng-switch-when="retry|response|hiddendigitsnum|priority" type="number" step="any" name="{{attribute.name}}" min="1" ng-model="attribute.value" ng-required="attribute.required" ng-disabled="!vm.crudPermissions.canEdit" string-to-number>\n \x3c!-- END NUMBER INPUT --\x3e\n\n \x3c!-- START TEXTAREA INPUT --\x3e\n <textarea name="{{attribute.name}}" ng-model="attribute.value" ng-switch-when-separator="|" ng-switch-when="query|sms_text|condition|text|custom_action_data|headers|body|rawHeaders|rawBody|private_key" ng-required="attribute.required" ng-disabled="!vm.crudPermissions.canEdit"></textarea>\n \x3c!-- END TEXTAREA INPUT --\x3e\n\n \x3c!-- START URL INPUT --\x3e\n <input ng-switch-when-separator="|" ng-switch-when="ndauth_url|ndassistant_url|url" type="url" name="{{attribute.name}}" ng-model="attribute.value" ng-required="attribute.required">\n \x3c!-- END URL INPUT --\x3e\n\n \x3c!-- START TEXT INPUT --\x3e\n <input ng-switch-default name="{{attribute.name}}" ng-model="attribute.value" ng-required="attribute.required" ng-disabled="!vm.crudPermissions.canEdit">\n <div class=\'hint\' ng-if="attribute.name === \'text\' && vm.cellName === \'tts\' ">\n <span translate="CALLYSQUARE.HELP.MAX_TEXT_TTS" class="ng-scope">Max 250 chars are supported</span>\n </div>\n \x3c!-- END TEXT INPUT--\x3e\n\n <div class="hint" ng-if="attribute.help">\n <span translate="CALLYSQUARE.HELP.{{attribute.name | uppercase}}"></span>\n </div>\n <div ng-messages="dialogForm[attribute.name].$error" ng-show="dialogForm[attribute.name].$touched" role="alert">\n <div ng-message="required">\n <span translate="CALLYSQUARE.ERRORS.FIELD_REQUIRED">The field is required</span>\n </div>\n </div>\n </md-input-container>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="vm.crudPermissions.canEdit">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.closeDialog(true)" class="send-button md-accent md-raised" ng-disabled="dialogForm.$invalid || dialogForm.$pristine" aria-label="SAVE" translate="CALLYSQUARE.SAVE" translate-attr-aria-label="CALLYSQUARE.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/edit/edit.html",'<md-dialog class="project-dialog" aria-label="New dialog">\n <form name="editForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title"><span translate="CALLYSQUARE.EDIT_XML"></span></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label>XML</label>\n <textarea name="preproduction" ng-model="vm.project.preproduction"></textarea>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.closeDialog(true)" class="send-button md-accent md-raised" ng-disabled="editForm.$invalid" aria-label="SAVE" translate="CALLYSQUARE.SAVE" translate-attr-aria-label="CALLYSQUARE.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/import/import.html",'<md-dialog class="project-dialog" aria-label="New dialog">\n <form name="importForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title"><span translate="CALLYSQUARE.IMPORT_XML"></span></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <div id="xml-uploader" flow-init="vm.ngFlowOptions" flow-name="vm.ngFlow.flow" flow-file-added="vm.fileAdded($file)" flow-drop flow-drag-enter="vm.dropping=true" flow-drag-leave="vm.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="CALLYSQUARE.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn>\n Upload\n </md-button>\n <span class="secondary-text mt-8" translate="CALLYSQUARE.DROP_TO_UPLOAD_MESSAGE">You can also drop files here to upload. Only XML - Max. 5MB</span>\n </div>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.closeDialog()" class="send-button md-accent md-raised" ng-disabled="importForm.$invalid" aria-label="CLOSE" translate="CALLYSQUARE.CLOSE" translate-attr-aria-label="CALLYSQUARE.CLOSE">\n CLOSE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/info/info.html",'<md-dialog class="project-dialog" aria-label="New dialog">\n <form name="descriptionFrom" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title"><span translate="CALLYSQUARE.UPDATE_INFO"></span></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CALLYSQUARE.DESCRIPTION">Description</label>\n <input name="description" ng-model="vm.project.description" md-autofocus>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CALLYSQUARE.NOTES">Description</label>\n <textarea name="notes" ng-model="vm.project.notes"></textarea>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.save()" class="send-button md-accent md-raised" ng-disabled="descriptionFrom.$invalid" aria-label="SAVE" translate="CALLYSQUARE.UPDATE_INFO" translate-attr-aria-label="CALLYSQUARE.UPDATE">\n UPDATE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/open/open.html",'<md-dialog class="project-dialog" aria-label="New dialog">\n <form name="openForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title"><span translate="CALLYSQUARE.OPEN_PROJECT"></span></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CALLYSQUARE.PROJECT">Project</label>\n <md-select name="id" ng-model="vm.id" required>\n <md-option value="{{p.id}}" ng-repeat="p in vm.projects">{{p.name}}</md-option>\n </md-select>\n <div ng-messages="openForm.id.$error" ng-show="openForm.id.$touched" role="alert">\n <div ng-message="required">\n <span translate="CALLYSQUARE.ERRORS.PROJECT_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.newWindow" aria-label="{{\'CALLYSQUARE.OPEN_NEW_WINDOW\' | translate }}"><span translate="CALLYSQUARE.OPEN_NEW_WINDOW"></span></md-switch>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.closeDialog(true)" class="send-button md-accent md-raised" ng-disabled="openForm.$invalid" aria-label="SAVE" translate="CALLYSQUARE.OPEN_PROJECT" translate-attr-aria-label="CALLYSQUARE.OPEN">\n OPEN\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/permissionadd/permissionadd.html",'<md-dialog class="projects-dialog" aria-label="projects">\n <form name="projectsForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="CALLYSQUARE.PERMISSIONADD_PROJECTS">Add User Permissions</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/saveAs/saveAs.html",'<md-dialog class="project-dialog" aria-label="New dialog">\n <form name="newForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title"><span translate="CALLYSQUARE.COPY_PROJECT"></span></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CALLYSQUARE.NAME">Name</label>\n <input name="name" ng-model="vm.project.name" required md-autofocus>\n <div ng-messages="newForm.name.$error" ng-show="newForm.name.$touched" role="alert">\n <div ng-message="required">\n <span translate="CALLYSQUARE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.newWindow" aria-label="{{\'CALLYSQUARE.OPEN_NEW_WINDOW\' | translate }}"><span translate="CALLYSQUARE.OPEN_NEW_WINDOW"></span></md-switch>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.save()" class="send-button md-accent md-raised" ng-disabled="newForm.$invalid" aria-label="SAVE" translate="CALLYSQUARE.COPY_PROJECT" translate-attr-aria-label="CALLYSQUARE.COPY">\n COPY\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/view.html",'<div id="callysquare-project" class="page-layout simple tabbed" layout="column" ng-init="vm.onInit()">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-projects-button md-icon-button" aria-label="Go to projects" ng-click="vm.gotoProjects()" translate translate-attr-aria-label="CALLYSQUARE.GO_TO_PROJECTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="project-image" hide-xs>\n <img ng-src="assets/images/business/cprojects.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.project.id}} {{vm.project.name}}\n </div>\n <div class="subtitle secondary-text text-truncate">\n <span ng-if="vm.project.description">{{vm.project.description}} - </span><span translate="CALLYSQUARE.CREATED_AT"></span> <span>{{vm.project.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-if="vm.crudPermissions.canEdit" ng-click="vm.updateInfo($event)" class="md-fab md-yellow-700-bg md-icon-button" aria-label="edit">\n <md-icon md-font-icon="icon-tooltip-edit"></md-icon>\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <md-content class="callysquare-content">\n\n <div id="geEditor" class="geEditor"></div>\n\n </md-content>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/callysquare/views/projects/projects.html",'<div id="projects" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-vector-square" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="CALLYSQUARE.PROJECTS">Projects</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="CALLYSQUARE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedProjects.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedProjects =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="CALLYSQUARE.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-projects-count">\n <span>{{vm.selectedProjects.length}}</span>\n <span translate="CALLYSQUARE.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CALLYSQUARE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllProjects()" translate="CALLYSQUARE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectProjects()" translate="CALLYSQUARE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedProjects" csv-label="true" filename="projects.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm.crudPermissions.canDelete" class="md-icon-button" ng-click="vm.deleteSelectedProjects($event)" aria-label="delete selected" translate translate-attr-label="CALLYSQUARE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n \x3c!-- PROJECT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedProjects" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getProjects">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'CALLYSQUARE.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'CALLYSQUARE.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'CALLYSQUARE.DESCRIPTION\' | translate }}</th>\n <th md-column md-order-by="notes">{{ \'CALLYSQUARE.NOTES\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.projects.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="CALLYSQUARE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="project" md-select-id="id" ng-repeat="project in vm.projects.rows">\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="id ">{{project.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="name ">{{project.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="description ">{{project.description}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="notes ">{{project.notes}}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CALLYSQUARE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editstate(project, ev)" translate="CALLYSQUARE.EDIT_PROJECT">\n Edit Project\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteconfirm(project, ev)" translate="CALLYSQUARE.DELETE_PROJECT">\n Delete Project\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CALLYSQUARE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CALLYSQUARE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CALLYSQUARE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.projects.count}}" md-on-paginate="vm.getProjects" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / PROJECT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD PROJECT BUTTON --\x3e\n <md-button class="md-fab md-accent md-icon-button" id="add-project-button" ng-if="vm.crudPermissions.canEdit" ng-click="vm.createOrEditProject($event)" aria-label="add project" translate translate-attr-aria-label="CALLYSQUARE.ADD_PROJECT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD PROJECT BUTTON --\x3e\n\n</div>'),e.put("app/main/apps/callysquare/views/squareRecordings/create/dialog.html",'<md-dialog class="squareRecording-dialog" aria-label="New SquareRecording">\n <form name="squareRecordingForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CALLYSQUARE.FILENAME">Filename</label>\n <input type="" name="filename" ng-model="vm.squareRecording.filename" ng-required="true" autofocus>\n\n <div ng-messages="squareRecordingForm[\'filename\'].$error" ng-show="squareRecordingForm[\'filename\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CALLYSQUARE.ERRORS.FILENAME_REQUIRED">Filename field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newSquareRecording" ng-click="vm.saveSquareRecording()" class="send-button md-accent md-raised" ng-disabled="squareRecordingForm.$invalid || squareRecordingForm.$pristine" aria-label="SAVE" translate="CALLYSQUARE.SAVE" translate-attr-aria-label="CALLYSQUARE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newSquareRecording" ng-click="vm.addNewSquareRecording()" class="send-button md-accent md-raised" ng-disabled="squareRecordingForm.$invalid" aria-label="ADD" translate="CALLYSQUARE.ADD_SQUARERECORDING" translate-attr-aria-label="CALLYSQUARE.ADD_SQUARERECORDING">\n ADD SQUARERECORDING\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newSquareRecording" ng-click="vm.deleteSquareRecording($event)" aria-label="DELETE" translate translate-attr-aria-label="CALLYSQUARE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CALLYSQUARE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/squareRecordings/squareRecordings.html",'<div id="squareRecordings" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-sitemap" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="CALLYSQUARE.SQUARERECORDINGS">SquareRecordings</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="CALLYSQUARE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedSquareRecordings.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedSquareRecordings =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="CALLYSQUARE.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-squareRecordings-count">\n <span>{{vm.selectedSquareRecordings.length}}</span>\n <span translate="CALLYSQUARE.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CALLYSQUARE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllSquareRecordings()" translate="CALLYSQUARE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectSquareRecordings()" translate="CALLYSQUARE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedSquareRecordings" csv-label="true" filename="squareRecordings.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedSquareRecordings($event)" aria-label="delete selected" translate translate-attr-label="CALLYSQUARE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- SQUARERECORDING TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedSquareRecordings" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getSquareRecordings">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="filename">{{ \'CALLYSQUARE.FILENAME\' | translate }}</th>\n <th md-column md-order-by="projectName">{{ \'CALLYSQUARE.PROJECT\' | translate }}</th>\n <th md-column md-order-by="uniqueid">{{ \'CALLYSQUARE.UNIQUEID\' | translate }}</th>\n <th md-column md-order-by="callerid">{{ \'CALLYSQUARE.PHONE\' | translate }}</th>\n <th md-column md-order-by="extension">{{ \'CALLYSQUARE.EXTEN\' | translate }}</th>\n <th md-column>{{ \'CALLYSQUARE.AUDIO\' | translate }}</th>\n <th md-column md-order-by="createdAt">{{ \'CALLYSQUARE.CREATED_AT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.squareRecordings.rows.length">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span translate="CALLYSQUARE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="squareRecording" md-select-id="id" ng-repeat="squareRecording in vm.squareRecordings.rows">\n <td md-cell ng-if="squareRecording.userpic"><img class="avatar" alt="{{squareRecording.name}}" ng-src="api/users/{{squareRecording.id}}/avatar" /></td>\n <td md-cell ng-if="!squareRecording.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{squareRecording.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditSquareRecording($event, squareRecording)" md-cell class="filename ">{{squareRecording.filename}}</td>\n <td ng-click="vm.createOrEditSquareRecording($event, squareRecording)" md-cell class="projectName ">{{squareRecording.projectName}}</td>\n <td ng-click="vm.createOrEditSquareRecording($event, squareRecording)" md-cell class="uniqueid ">{{squareRecording.uniqueid}}</td>\n <td ng-click="vm.createOrEditSquareRecording($event, squareRecording)" md-cell class="callerid ">{{squareRecording.callerid}}</td>\n <td ng-click="vm.createOrEditSquareRecording($event, squareRecording)" md-cell class="extension ">{{squareRecording.extension}}</td>\n <td md-cell class="audio " ng-switch="squareRecording.format">\n \x3c!-- audio recording directive --\x3e\n <ms-recording ng-switch-when=".wav" id="squareRecording.id" model="\'squareRecording\'"></ms-recording>\n \x3c!-- / audio recording directive --\x3e\n <span ng-switch-when=".gsm|.WAV" ng-switch-when-separator="|">\n <em>{{ \'VOICE.CANT_PLAY_GSM_AUDIO_FILES\' | translate }}</em>\n </span>\n </td>\n <td ng-click="vm.createOrEditSquareRecording($event, squareRecording)" md-cell class="createdAt ">{{squareRecording.createdAt | date:\'medium\' }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CALLYSQUARE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.role === \'admin\' || vm.userProfile.downloadCallySquareRecordings">\n\n <md-button ng-click="vm.downloadfile2(squareRecording, $event , \'square/recordings\' )" translate="CALLYSQUARE.DOWNLOAD_SQUARERECORDING">\n Download SquareRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(squareRecording, $event )" translate="CALLYSQUARE.DELETE_SQUARERECORDING">\n Delete SquareRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CALLYSQUARE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CALLYSQUARE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CALLYSQUARE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.squareRecordings.count}}" md-on-paginate="vm.getSquareRecordings" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / SQUARERECORDING TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- NO ADD BUTTON BUTTON --\x3e\n</div>'),e.put("app/main/apps/chat/views/chatQueues/chatQueues.html",'<div id="chatQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-hangouts" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="CHAT.CHATQUEUES">ChatQueues</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="CHAT.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedChatQueues.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedChatQueues =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="CHAT.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-chatQueues-count">\n <span>{{vm.selectedChatQueues.length}}</span>\n <span translate="CHAT.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CHAT.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllChatQueues()" translate="CHAT.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectChatQueues()" translate="CHAT.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedChatQueues" csv-label="true" filename="chatQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedChatQueues($event)" aria-label="delete selected" translate translate-attr-label="CHAT.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- CHATQUEUE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedChatQueues" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getChatQueues">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'CHAT.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'CHAT.NAME\' | translate }}</th>\n <th md-column md-order-by="strategy">{{ \'CHAT.STRATEGY\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.chatQueues.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="CHAT.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="chatQueue" md-select-id="id" ng-repeat="chatQueue in vm.chatQueues.rows">\n <td md-cell ng-if="chatQueue.userpic"><img class="avatar" alt="{{chatQueue.name}}" ng-src="api/users/{{chatQueue.id}}/avatar" /></td>\n <td md-cell ng-if="!chatQueue.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{chatQueue.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatQueue, ev) : vm.createOrEditChatQueue($event, chatQueue)" md-cell class="id ">{{chatQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatQueue, ev) : vm.createOrEditChatQueue($event, chatQueue)" md-cell class="name ">{{chatQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatQueue, ev) : vm.createOrEditChatQueue($event, chatQueue)" md-cell class="strategy ">{{ vm.arraystrategy[chatQueue.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CHAT.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(chatQueue, $event )" translate="CHAT.EDIT_CHATQUEUE">\n Edit ChatQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(chatQueue, $event )" translate="CHAT.TEAMADD_CHATQUEUE">\n teamadd ChatQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(chatQueue, $event )" translate="CHAT.AGENTADD_CHATQUEUE">\n agentadd ChatQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(chatQueue, $event )" translate="CHAT.DELETE_CHATQUEUE">\n Delete ChatQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(chatQueue, $event )" translate="CHAT.GOTOREALTIME_CHATQUEUE">\n goToRealtime ChatQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.chatQueues.count}}" md-on-paginate="vm.getChatQueues" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / CHATQUEUE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD CHATQUEUE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-chatQueue-button" ng-click="vm.createOrEditChatQueue($event)" aria-label="add chatQueue" translate translate-attr-aria-label="CHAT.ADD_CHATQUEUE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD CHATQUEUE BUTTON --\x3e\n</div>'),e.put("app/main/apps/chat/views/chatQueues/create/dialog.html",'<md-dialog class="chatQueue-dialog" aria-label="New ChatQueue">\n <form name="chatQueueForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.chatQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newChatQueue">\n\n <div class="hint"><span translate="CHAT.HELP.NAME"></span></div>\n <div ng-messages="chatQueueForm[\'name\'].$error" ng-show="chatQueueForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="CHAT.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.chatQueue.strategy" required>\n <md-option ng-value="\'beepall\'">Beepall</md-option>\n <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n </md-select>\n <div ng-messages="chatQueueForm[\'strategy\'].$error" ng-show="chatQueueForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.chatQueue.timeout" min="1" max="2147483" value="10" ng-required="true">\n\n <div ng-messages="chatQueueForm[\'timeout\'].$error" ng-show="chatQueueForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.chatQueue.description">\n\n <div ng-messages="chatQueueForm[\'description\'].$error" ng-show="chatQueueForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newChatQueue" ng-click="vm.saveChatQueue()" class="send-button md-accent md-raised" ng-disabled="chatQueueForm.$invalid || chatQueueForm.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newChatQueue" ng-click="vm.addNewChatQueue()" class="send-button md-accent md-raised" ng-disabled="chatQueueForm.$invalid" aria-label="ADD" translate="CHAT.ADD_CHATQUEUE" translate-attr-aria-label="CHAT.ADD_CHATQUEUE">\n ADD CHATQUEUE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newChatQueue" ng-click="vm.deleteChatQueue($event)" aria-label="DELETE" translate translate-attr-aria-label="CHAT.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CHAT.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatQueues/edit/agentadd/agentadd.html",'<md-dialog class="chatQueue-dialog" aria-label="chatQueue" ng-init="vm.onInit()">\n <form name="chatQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="CHAT.AGENTADD_CHATQUEUE">Add Agent to chatQueue</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatQueues/edit/teamadd/teamadd.html",'<md-dialog class="chatQueue-dialog" aria-label="chatQueue" ng-init="vm.onInit()">\n <form name="chatQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="CHAT.TEAMS_ASSOCIATION">Teams Association</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatQueues/edit/view.html",'<div id="chat-chatQueue" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-chatQueues-button md-icon-button" aria-label="Go to chatQueues" ng-click="vm.gotoChatQueues()" translate translate-attr-aria-label="CHAT.GO_TO_CHATQUEUES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="chatQueue-image" hide-xs>\n <img ng-src="assets/images/business/chatQueues.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.chatQueue.id}}\n <span ng-if="vm.chatQueue.name">{{vm.chatQueue.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="CHAT.CREATED_AT"></span> <span>{{vm.chatQueue.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.teamadddialog(vm.chatQueue, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n <md-tooltip><span translate="CHAT.TEAMADD_CHATQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.chatQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="CHAT.AGENTADD_CHATQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-plus"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveChatQueue()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatQueue-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CHAT.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.chatQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="CHAT.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="CHAT.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.chatQueue.strategy" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'beepall\'">Beepall</md-option>\n <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n </md-select>\n <div ng-messages="generalForm[\'strategy\'].$error" ng-show="generalForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.chatQueue.timeout" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'timeout\'].$error" ng-show="generalForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.chatQueue.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/chat/views/chatWebsites/chatWebsites.html",'<div id="chatWebsites" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-hangouts" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="CHAT.CHATWEBSITES">ChatWebsites</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="CHAT.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedChatWebsites.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedChatWebsites =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="CHAT.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-chatWebsites-count">\n <span>{{vm.selectedChatWebsites.length}}</span>\n <span translate="CHAT.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CHAT.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllChatWebsites()" translate="CHAT.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectChatWebsites()" translate="CHAT.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedChatWebsites" csv-label="true" filename="chatWebsites.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedChatWebsites($event)" aria-label="delete selected" translate translate-attr-label="CHAT.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- CHATWEBSITE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedChatWebsites" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getChatWebsites">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'CHAT.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'CHAT.NAME\' | translate }}</th>\n <th md-column md-order-by="key">{{ \'CHAT.KEY\' | translate }}</th>\n <th md-column md-order-by="address">{{ \'CHAT.MOTIONADDRESS\' | translate }}</th>\n <th md-column md-order-by="remote">{{ \'CHAT.MOTIONPROXY\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'CHAT.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.chatWebsites.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="CHAT.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="chatWebsite" md-select-id="id" ng-repeat="chatWebsite in vm.chatWebsites.rows">\n <td md-cell ng-if="chatWebsite.userpic"><img class="avatar" alt="{{chatWebsite.name}}" ng-src="api/users/{{chatWebsite.id}}/avatar" /></td>\n <td md-cell ng-if="!chatWebsite.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{chatWebsite.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatWebsite, ev) : vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="id ">{{chatWebsite.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatWebsite, ev) : vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="name ">{{chatWebsite.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatWebsite, ev) : vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="key ">{{chatWebsite.key}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatWebsite, ev) : vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="address ">{{chatWebsite.address}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatWebsite, ev) : vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="remote ">{{chatWebsite.remote}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatWebsite, ev) : vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="description ">{{chatWebsite.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CHAT.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(chatWebsite, $event )" translate="CHAT.EDIT_CHATWEBSITE">\n Edit ChatWebsite\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.interactionsgoto(chatWebsite, $event )" translate="CHAT.INTERACTIONS_CHATWEBSITE">\n Interactions ChatWebsite\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.offlinemessagesgoto(chatWebsite, $event )" translate="CHAT.OFFLINEMESSAGES_CHATWEBSITE">\n OfflineMessages ChatWebsite\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(chatWebsite, $event )" translate="CHAT.AGENTADD_CHATWEBSITE">\n AgentAdd ChatWebsite\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(chatWebsite, $event )" translate="CHAT.DELETE_CHATWEBSITE">\n Delete ChatWebsite\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.chatWebsites.count}}" md-on-paginate="vm.getChatWebsites" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / CHATWEBSITE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD CHATWEBSITE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-chatWebsite-button" ng-click="vm.createOrEditChatWebsite($event)" aria-label="add chatWebsite" translate translate-attr-aria-label="CHAT.ADD_CHATWEBSITE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD CHATWEBSITE BUTTON --\x3e\n</div>'),e.put("app/main/apps/chat/views/chatWebsites/create/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.chatWebsite.name" ng-required="true" autofocus ng-disabled="!vm.newChatWebsite">\n\n <div ng-messages="chatWebsiteForm[\'name\'].$error" ng-show="chatWebsiteForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.KEY">key</label>\n <input type="text" name="key" ng-model="vm.chatWebsite.key" md-maxlength="5" ng-required="true">\n\n <div ng-messages="chatWebsiteForm[\'key\'].$error" ng-show="chatWebsiteForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.MOTIONADDRESS">MotionAddress</label>\n <input type="url" name="address" ng-model="vm.chatWebsite.address" md-maxlength="255" ng-required="true">\n\n <div ng-messages="chatWebsiteForm[\'address\'].$error" ng-show="chatWebsiteForm[\'address\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MOTIONADDRESS_REQUIRED">MotionAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="CHAT.ERRORS.MOTIONADDRESS_MUST_VALID_URL">MotionAddress must be a valid url http://www.xcally.com</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.MOTIONADDRESS_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionAddress must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.MOTIONPROXY">MotionProxy</label>\n <input type="url" name="remote" ng-model="vm.chatWebsite.remote" md-maxlength="255" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="CHAT.HELP.MOTIONPROXY"></span></div>\n <div ng-messages="chatWebsiteForm[\'remote\'].$error" ng-show="chatWebsiteForm[\'remote\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MOTIONPROXY_REQUIRED">MotionProxy field is required</span>\n </div>\n <div ng-message="url">\n <span translate="CHAT.ERRORS.MOTIONPROXY_MUST_VALID_URL">MotionProxy must be a valid url http://www.xcally.com</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.MOTIONPROXY_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionProxy must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.LIST">List</label>\n <md-select name="ListId" ng-model="vm.chatWebsite.ListId" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="CHAT.HELP.LIST"></span></div>\n <div ng-messages="chatWebsiteForm[\'ListId\'].$error" ng-show="chatWebsiteForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.INTERVAL">Interval</label>\n <md-select name="IntervalId" ng-model="vm.chatWebsite.IntervalId">\n <md-option ng-value="null">Always</md-option>\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval" ng-disabled="IntervalId.canSelect === false">{{ IntervalId.name }}</md-option>\n </md-select>\n <div ng-messages="chatWebsiteForm[\'IntervalId\'].$error" ng-show="chatWebsiteForm[\'IntervalId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.INTERVAL_REQUIRED">Interval field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.chatWebsite.description">\n\n <div ng-messages="chatWebsiteForm[\'description\'].$error" ng-show="chatWebsiteForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newChatWebsite" ng-click="vm.saveChatWebsite()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteForm.$invalid || chatWebsiteForm.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newChatWebsite" ng-click="vm.addNewChatWebsite()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteForm.$invalid" aria-label="ADD" translate="CHAT.ADD_CHATWEBSITE" translate-attr-aria-label="CHAT.ADD_CHATWEBSITE">\n ADD CHATWEBSITE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newChatWebsite" ng-click="vm.deleteChatWebsite($event)" aria-label="DELETE" translate translate-attr-aria-label="CHAT.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CHAT.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/agentadd/agentadd.html",'<md-dialog class="chatWebsite-dialog" aria-label="chatWebsite" ng-init="vm.onInit()">\n <form name="chatWebsiteForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="CHAT.AGENTADD_CHATWEBSITE">Add Agent to chatWebsite</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/agent/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.AGENT">Agent</label>\n <md-select name="agent" ng-model="vm.agent.agent" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents" ng-disabled="agent.canSelect === false">{{ agent.name }}</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'agent\'].$error" ng-show="chatWebsiteFormApp[\'agent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.agent.timeout" min="0" max="2147483" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'timeout\'].$error" ng-show="chatWebsiteFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/amazonlex/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.ACCESSKEYID">accesskeyid</label>\n <input type="text" name="accesskeyid" ng-model="vm.amazonlex.accesskeyid" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'accesskeyid\'].$error" ng-show="chatWebsiteFormApp[\'accesskeyid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.ACCESSKEYID_REQUIRED">accesskeyid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.SECRETACCESSKEY">secretaccesskey</label>\n <input type="text" name="secretaccesskey" ng-model="vm.amazonlex.secretaccesskey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'secretaccesskey\'].$error" ng-show="chatWebsiteFormApp[\'secretaccesskey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SECRETACCESSKEY_REQUIRED">secretaccesskey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.LEXREGION">lexregion</label>\n <md-select name="lexregion" ng-model="vm.amazonlex.lexregion" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'us-east-1\'">US East (N. Virginia)</md-option>\n <md-option ng-value="\'us-west-2\'">US West (Oregon)</md-option>\n <md-option ng-value="\'eu-west-1\'">EU (Ireland)</md-option>\n <md-option ng-value="\'ap-southeast-2\'">Asia Pacific (Sydney)</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'lexregion\'].$error" ng-show="chatWebsiteFormApp[\'lexregion\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.LEXREGION_REQUIRED">lexregion field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.BOTNAME">botname</label>\n <input type="text" name="botname" ng-model="vm.amazonlex.botname" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'botname\'].$error" ng-show="chatWebsiteFormApp[\'botname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.BOTNAME_REQUIRED">botname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.amazonlex.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="CHAT.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="chatWebsiteFormApp[\'welcomemessage\'].$error" ng-show="chatWebsiteFormApp[\'welcomemessage\'].$touched" role="alert">\n\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/autoreply/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.TIMES">times</label>\n <md-select name="times" ng-model="vm.autoreply.times" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="2">One Time</md-option>\n <md-option ng-value="0">Always</md-option>\n <md-option ng-value="1">First Message</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'times\'].$error" ng-show="chatWebsiteFormApp[\'times\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TIMES_REQUIRED">times field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.TEXT">Text</label>\n <textarea name="text" ng-model="vm.autoreply.text" required></textarea>\n\n <div ng-messages="chatWebsiteFormApp[\'text\'].$error" ng-show="chatWebsiteFormApp[\'text\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TEXT_REQUIRED">Text field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/close/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.DISPOSITION">Disposition</label>\n <input type="text" name="disposition" ng-model="vm.close.disposition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'disposition\'].$error" ng-show="chatWebsiteFormApp[\'disposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/dialogflow/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.dialogflow.key" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'key\'].$error" ng-show="chatWebsiteFormApp[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.KEY_REQUIRED">Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflow.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean (South Korea)</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pt\'">Portuguese (European)</md-option>\n <md-option ng-value="\'pt-br\'">Portuguese (Nrazilian)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'sv\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-HK\'">Chinese (Hong Kong)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'language\'].$error" ng-show="chatWebsiteFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.LANGUAGE_REQUIRED">language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflow.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="CHAT.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="chatWebsiteFormApp[\'welcomemessage\'].$error" ng-show="chatWebsiteFormApp[\'welcomemessage\'].$touched" role="alert">\n\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/dialogflowv2/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.PROJECTID">ProjectID</label>\n <input type="text" name="projectId" ng-model="vm.dialogflowv2.projectId" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'projectId\'].$error" ng-show="chatWebsiteFormApp[\'projectId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.PROJECTID_REQUIRED">ProjectID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.CLIENTEMAIL">ClientEmail</label>\n <input type="text" name="clientEmail" ng-model="vm.dialogflowv2.clientEmail" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'clientEmail\'].$error" ng-show="chatWebsiteFormApp[\'clientEmail\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.CLIENTEMAIL_REQUIRED">ClientEmail field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.PRIVATEKEY">PrivateKey</label>\n <textarea name="privateKey" ng-model="vm.dialogflowv2.privateKey" required></textarea>\n\n <div ng-messages="chatWebsiteFormApp[\'privateKey\'].$error" ng-show="chatWebsiteFormApp[\'privateKey\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.PRIVATEKEY_REQUIRED">PrivateKey field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflowv2.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'zh-HK\'">Chinese (Cantonese)</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'en-AU\'">English (Australia)</md-option>\n <md-option ng-value="\'en-CA\'">English (Canada)</md-option>\n <md-option ng-value="\'en-GB\'">English (Great Britain)</md-option>\n <md-option ng-value="\'en-IN\'">English (India)</md-option>\n <md-option ng-value="\'en-US\'">English (US)</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'fr-CA\'">French (Canada)</md-option>\n <md-option ng-value="\'fr-FR\'">\'France (France)</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'hi\'">Hindi</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pl\'">Polish</md-option>\n <md-option ng-value="\'pt-BR\'">Portuguese (Brazil)</md-option>\n <md-option ng-value="\'pt-PT\'">Portuguese (Portugal)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'es-419\'">Spanish (Latin America)</md-option>\n <md-option ng-value="\'es-ES\'">Spanish (Spain)</md-option>\n <md-option ng-value="\'sw\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'tr\'">Turkish</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'language\'].$error" ng-show="chatWebsiteFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.LANGUAGE_REQUIRED">language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflowv2.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="CHAT.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="chatWebsiteFormApp[\'welcomemessage\'].$error" ng-show="chatWebsiteFormApp[\'welcomemessage\'].$touched" role="alert">\n\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/gotoif/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.CONDITION">Condition</label>\n <input type="text" name="condition" ng-model="vm.gotoif.condition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'condition\'].$error" ng-show="chatWebsiteFormApp[\'condition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.TRUEPRIORITY">truepriority</label>\n <input type="number" name="truepriority" ng-model="vm.gotoif.truepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'truepriority\'].$error" ng-show="chatWebsiteFormApp[\'truepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TRUEPRIORITY_REQUIRED">truepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">truepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.FALSEPRIORITY">falsepriority</label>\n <input type="number" name="falsepriority" ng-model="vm.gotoif.falsepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'falsepriority\'].$error" ng-show="chatWebsiteFormApp[\'falsepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.FALSEPRIORITY_REQUIRED">falsepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">falsepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/gotop/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.PRIORITY">Priority</label>\n <input type="number" name="priority" ng-model="vm.gotop.priority" min="0" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'priority\'].$error" ng-show="chatWebsiteFormApp[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Priority must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/interval/dialog.html",'<md-dialog class="interval-dialog" aria-label="New Interval">\n <form name="intervalForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="type" ng-repeat=\'type in vm.types\'>{{ type | ucfirst }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.type === \'list\'">\n <label translate="TOOLS.INTERVALS">Intervals</label>\n <md-select ng-model="vm.interval.IntervalId" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ interval.name }}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!-- TIMERANGE START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.TIME_RANGE">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <div class="md-block" flex>\n <mdp-time-picker name="timeRangeFrom" mdp-placeholder="FROM" ng-model="vm.timeRangeFrom" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <div ng-messages="intervalForm.timeRangeFrom.$error" ng-show="intervalForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_FROM_INVALID">Time Range From field is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n <div class="md-block" flex ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_INVALID">Time Range To field is invalid</span>\n </div>\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </div>\n \x3c!-- TIMERANGE END --\x3e\n\n \x3c!-- DAYSOFWEEK START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.WEEK_DAYS">Week Days</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.dayOfWeekFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex class="md-block" ng-if="vm.dayOfWeekFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="dayOfWeekTo" ng-model="vm.dayOfWeekTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- DAYSOFWEEK END --\x3e\n\n \x3c!-- MONTHDAY START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTH_DAYS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthDayFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthDayFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthDayTo" ng-model="vm.monthDayTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTHDAY END --\x3e\n\n \x3c!-- MONTH START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTHS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthTo" ng-model="vm.monthTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTH END --\x3e\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="!vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n ADD INTERVAL\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/noop/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.noop.value" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'value\'].$error" ng-show="chatWebsiteFormApp[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/queue/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.queue.queue" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues" ng-disabled="queue.canSelect === false">{{ queue.name }}</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'queue\'].$error" ng-show="chatWebsiteFormApp[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'timeout\'].$error" ng-show="chatWebsiteFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/system/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.COMMAND">Command</label>\n <input type="text" name="command" ng-model="vm.system.command" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'command\'].$error" ng-show="chatWebsiteFormApp[\'command\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.COMMAND_REQUIRED">Command field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.system.variable" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables" ng-disabled="variable.canSelect === false">{{ variable.name }}</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'variable\'].$error" ng-show="chatWebsiteFormApp[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VARIABLE_REQUIRED">Variable field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/tag/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.TAG">Tag</label>\n <md-select name="tag" ng-model="vm.tag.tag" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags" ng-disabled="tag.canSelect === false">{{ tag.name }}</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'tag\'].$error" ng-show="chatWebsiteFormApp[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TAG_REQUIRED">Tag field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/tvox/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.SERVICEID">serviceid</label>\n <input type="text" name="serviceid" ng-model="vm.tvox.serviceid" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'serviceid\'].$error" ng-show="chatWebsiteFormApp[\'serviceid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SERVICEID_REQUIRED">serviceid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.CHANNELID">channelid</label>\n <input type="text" name="channelid" ng-model="vm.tvox.channelid" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'channelid\'].$error" ng-show="chatWebsiteFormApp[\'channelid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.CHANNELID_REQUIRED">channelid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.TVOXURL">tvoxurl</label>\n <input type="text" name="tvoxurl" ng-model="vm.tvox.tvoxurl" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'tvoxurl\'].$error" ng-show="chatWebsiteFormApp[\'tvoxurl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TVOXURL_REQUIRED">tvoxurl field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.TVOXLOGINURL">tvoxloginurl</label>\n <input type="text" name="tvoxloginurl" ng-model="vm.tvox.tvoxloginurl" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'tvoxloginurl\'].$error" ng-show="chatWebsiteFormApp[\'tvoxloginurl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TVOXLOGINURL_REQUIRED">tvoxloginurl field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.TVOXSESSIONURL">tvoxsessionurl</label>\n <input type="text" name="tvoxsessionurl" ng-model="vm.tvox.tvoxsessionurl" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'tvoxsessionurl\'].$error" ng-show="chatWebsiteFormApp[\'tvoxsessionurl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TVOXSESSIONURL_REQUIRED">tvoxsessionurl field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.TVOXUSERNAME">tvoxusername</label>\n <input type="text" name="tvoxusername" ng-model="vm.tvox.tvoxusername" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'tvoxusername\'].$error" ng-show="chatWebsiteFormApp[\'tvoxusername\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TVOXUSERNAME_REQUIRED">tvoxusername field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.TVOXPASSWD">tvoxpasswd</label>\n <input type="password" name="tvoxpasswd" ng-model="vm.tvox.tvoxpasswd" placeholder="Password" translate translate-attr-placeholder="CHAT.PASSWORD">\n <div ng-messages="chatWebsiteFormApp[\'tvoxpasswd\'].$error" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="CHAT.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="CHAT.MOTIONURLONRING">motionurlonring</label>\n <input type="text" name="motionurlonring" ng-model="vm.tvox.motionurlonring" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'motionurlonring\'].$error" ng-show="chatWebsiteFormApp[\'motionurlonring\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MOTIONURLONRING_REQUIRED">motionurlonring field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.MOTIONURLONANSWER">motionurlonanswer</label>\n <input type="text" name="motionurlonanswer" ng-model="vm.tvox.motionurlonanswer" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'motionurlonanswer\'].$error" ng-show="chatWebsiteFormApp[\'motionurlonanswer\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MOTIONURLONANSWER_REQUIRED">motionurlonanswer field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.MOTIONTITLE">motiontitle</label>\n <input type="text" name="motiontitle" ng-model="vm.tvox.motiontitle" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'motiontitle\'].$error" ng-show="chatWebsiteFormApp[\'motiontitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MOTIONTITLE_REQUIRED">motiontitle field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.MOTIONURL">motionurl</label>\n <input type="text" name="motionurl" ng-model="vm.tvox.motionurl" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'motionurl\'].$error" ng-show="chatWebsiteFormApp[\'motionurl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MOTIONURL_REQUIRED">motionurl field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/chatCannedAnswers/dialog.html",'<md-dialog class="chatCannedAnswer-dialog" aria-label="New ChatCannedAnswer">\n <form name="chatCannedAnswerForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.KEY">Key</label>\n <input type="" name="key" ng-model="vm.chatCannedAnswer.key" md-maxlength="255" ng-required="true" autofocus>\n\n <div ng-messages="chatCannedAnswerForm[\'key\'].$error" ng-show="chatCannedAnswerForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.KEY_REQUIRED">Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.VALUE">Value</label>\n <textarea name="value" ng-model="vm.chatCannedAnswer.value" required></textarea>\n\n <div ng-messages="chatCannedAnswerForm[\'value\'].$error" ng-show="chatCannedAnswerForm[\'value\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.chatCannedAnswer.description">\n\n <div ng-messages="chatCannedAnswerForm[\'description\'].$error" ng-show="chatCannedAnswerForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newChatCannedAnswer" ng-click="vm.saveChatCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="chatCannedAnswerForm.$invalid || chatCannedAnswerForm.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newChatCannedAnswer" ng-click="vm.addNewChatCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="chatCannedAnswerForm.$invalid" aria-label="ADD" translate="CHAT.ADD_CHATCANNEDANSWER" translate-attr-aria-label="CHAT.ADD_CHATCANNEDANSWER">\n ADD CHATCANNEDANSWER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newChatCannedAnswer" ng-click="vm.deleteChatCannedAnswer($event)" aria-label="DELETE" translate translate-attr-aria-label="CHAT.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CHAT.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/offlineMessages/dialog.html",'<md-dialog class="offlineMessage-dialog" aria-label="New OfflineMessage">\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-content flex layout-padding>\n <pre ng-if="vm.isHtml">{{vm.message.body}}</pre>\n <div ng-if="!vm.isHtml" ng-bind-html-unsafe="vm.message.body"></div>\n\n <span ng-repeat="attachment in vm.attachments">\n <md-button class="md-icon-button no-margin no-padding" ng-click="vm.download(attachment)">\n <md-icon class="no-margin material-icons" aria-label="Attachment">attach_file</md-icon>\n </md-button>\n <span>{{attachment.name}}</span><br />\n </span>\n </md-content>\n\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/proactive/dialog.html",'<md-dialog class="chatProactiveAction-dialog" aria-label="New ChatProactiveAction">\n <form name="chatProactiveActionForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.NAME">Name</label>\n <input type="" name="name" ng-model="vm.chatProactiveAction.name" ng-required="true" autofocus>\n\n <div ng-messages="chatProactiveActionForm[\'name\'].$error" ng-show="chatProactiveActionForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.TYPE">Type</label>\n <md-select name="type" ng-model="vm.chatProactiveAction.type">\n\n <md-option ng-value="\'mouseOver\'"> {{ \'CHAT.MOUSEOVER\' | translate }} </md-option>\n\n <md-option ng-value="\'timeout\'"> {{ \'CHAT.TIMEOUT\' | translate }} </md-option>\n </md-select>\n <div ng-messages="chatProactiveActionForm[\'type\'].$error" ng-show="chatProactiveActionForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatProactiveAction.type === \'mouseOver\'" class="md-block">\n <label translate="CHAT.SELECTOR">Selector</label>\n <input type="" name="selector" ng-model="vm.chatProactiveAction.selector" ng-required="true">\n\n <div ng-messages="chatProactiveActionForm[\'selector\'].$error" ng-show="chatProactiveActionForm[\'selector\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SELECTOR_REQUIRED">Selector field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatProactiveAction.type === \'timeout\'" class="md-block">\n <label translate="CHAT.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.chatProactiveAction.timeout" min="1" ng-required="true">\n\n <div ng-messages="chatProactiveActionForm[\'timeout\'].$error" ng-show="chatProactiveActionForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newChatProactiveAction" ng-click="vm.saveChatProactiveAction()" class="send-button md-accent md-raised" ng-disabled="chatProactiveActionForm.$invalid || chatProactiveActionForm.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newChatProactiveAction" ng-click="vm.addNewChatProactiveAction()" class="send-button md-accent md-raised" ng-disabled="chatProactiveActionForm.$invalid" aria-label="ADD" translate="CHAT.ADD_CHATPROACTIVEACTION" translate-attr-aria-label="CHAT.ADD_CHATPROACTIVEACTION">\n ADD CHATPROACTIVEACTION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newChatProactiveAction" ng-click="vm.deleteChatProactiveAction($event)" aria-label="DELETE" translate translate-attr-aria-label="CHAT.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CHAT.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/view.html",'<div id="chat-chatWebsite" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-chatWebsites-button md-icon-button" aria-label="Go to chatWebsites" ng-click="vm.gotoChatWebsites()" translate translate-attr-aria-label="CHAT.GO_TO_CHATWEBSITES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="chatWebsite-image" hide-xs>\n <img ng-src="assets/images/business/chatWebsites.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.chatWebsite.id}}\n <span ng-if="vm.chatWebsite.name">{{vm.chatWebsite.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="CHAT.CREATED_AT"></span> <span>{{vm.chatWebsite.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.chatWebsite, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="CHAT.AGENTADD_CHATWEBSITE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveChatWebsite()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (scriptForm.$invalid) || (intervalForm.$invalid) || (dispositionForm.$invalid) || (appearanceForm.$invalid) || (onlinestatusForm.$invalid) || (offlinestatusForm.$invalid) || (closingformForm.$invalid) || (unmanagedstatusForm.$invalid) || (interactionForm.$invalid) || (whitelabelForm.$invalid) || (logoForm.$invalid) || (agentAvatarForm.$invalid) || (customerAvatarForm.$invalid) || (systemAvatarForm.$invalid) || (chatFormOnlineForm.$invalid) || (chatFormOfflineForm.$invalid) || (proactiveForm.$invalid) || (chatDispositionsForm.$invalid) || (chatCannedAnswersForm.$invalid) || (vidaooForm.$invalid) || (actionsForm.$invalid) || (interactionsForm.$invalid) || (offlineMessagesForm.$invalid)" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CHAT.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.chatWebsite.name" ng-required="true" autofocus disabled>\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.KEY">key</label>\n <input type="text" name="key" ng-model="vm.chatWebsite.key" md-maxlength="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'key\'].$error" ng-show="generalForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.MOTIONADDRESS">MotionAddress</label>\n <input type="url" name="address" ng-model="vm.chatWebsite.address" md-maxlength="255" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'address\'].$error" ng-show="generalForm[\'address\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MOTIONADDRESS_REQUIRED">MotionAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="CHAT.ERRORS.MOTIONADDRESS_MUST_VALID_URL">MotionAddress must be a valid url http://www.xcally.com</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.MOTIONADDRESS_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionAddress must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.LIST">List</label>\n <md-select name="ListId" ng-model="vm.chatWebsite.ListId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="CHAT.HELP.LIST"></span></div>\n <div ng-messages="generalForm[\'ListId\'].$error" ng-show="generalForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.fidelity" class="md-block">\n <label translate="CHAT.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.chatWebsite.timeout" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'timeout\'].$error" ng-show="generalForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.WAITFORTHEASSIGNEDAGENT">WaitForTheAssignedAgent</label>\n <input type="number" name="waitForTheAssignedAgent" ng-model="vm.chatWebsite.waitForTheAssignedAgent" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'waitForTheAssignedAgent\'].$error" ng-show="generalForm[\'waitForTheAssignedAgent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.WAITFORTHEASSIGNEDAGENT_REQUIRED">WaitForTheAssignedAgent field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.chatWebsite.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container notification md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.NOTIFICATION">NOTIFICATION</div>\n </div>\n <form name="notificationForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.notificationSound" aria-label="notificationSound" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.NOTIFICATIONSOUND">notificationSound</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.notificationShake" aria-label="notificationShake" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.NOTIFICATIONSHAKE">notificationShake</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="CHAT.NOTIFICATIONTEMPLATE">notificationTemplate</label>\n <textarea aria-label="notificationTemplate notificationTemplate" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.chatWebsite.notificationTemplate"></textarea>\n </div>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container transfer md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.TRANSFER">TRANSFER</div>\n </div>\n <form name="transferForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.queueTransfer" aria-label="queueTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.QUEUETRANSFER">queueTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.queueTransfer == true" class="md-block">\n <label translate="CHAT.QUEUETRANSFERTIMEOUT">queueTransferTimeout</label>\n <input type="number" name="queueTransferTimeout" ng-model="vm.chatWebsite.queueTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'queueTransferTimeout\'].$error" ng-show="transferForm[\'queueTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.QUEUETRANSFERTIMEOUT_REQUIRED">queueTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.agentTransfer" aria-label="agentTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.AGENTTRANSFER">agentTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.agentTransfer == true" class="md-block">\n <label translate="CHAT.AGENTTRANSFERTIMEOUT">agentTransferTimeout</label>\n <input type="number" name="agentTransferTimeout" ng-model="vm.chatWebsite.agentTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'agentTransferTimeout\'].$error" ng-show="transferForm[\'agentTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.AGENTTRANSFERTIMEOUT_REQUIRED">agentTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container script md-background-bg md-whiteframe-1dp">\n <form name="scriptForm" flex="100" novalidate>\n <div ng-controller="ChatWebsiteScriptController as vm_ac" ng-init="vm_ac.init(vm.chatWebsite)" class="content" md-background-bg>\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.SCRIPT">SCRIPT</div>\n </div>\n\n\n <md-input-container class="md-block">\n <label translate="CHAT.TOKEN">Token</label>\n <input type="text" name="token" ng-model="vm_ac.chatWebsite.token" autofocus ng-disabled="true">\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.MOTIONPROXY">MotionProxy</label>\n <input type="url" name="remote" ng-model="vm_ac.chatWebsite.remote" required>\n <div class="hint"><span translate="CHAT.HELP.MOTIONPROXY"></span></div>\n <div ng-messages="scriptForm[\'remote\'].$error" ng-show="scriptForm[\'remote\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MOTIONPROXY_REQUIRED">Motion Proxy field is required</span>\n </div>\n <div ng-message="url">\n <span translate="CHAT.ERRORS.MOTIONPROXY_MUST_VALID_URL">Motion Proxy must be a valid url e.g.: http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.WEBSITESCRIPT">WebsiteScript</label>\n <div>\n <pre style="font-size: 13px;">\n {{vm_ac.start}} {{vm_ac.script}} {{vm_ac.end}}\n </pre>\n </div>\n <div class="hint"><span translate="CHAT.HELP.COPYSCRIPTTOCLIPBOARD"></span></div>\n </md-input-container>\n\n </div>\n </form>\n </div>\n <div class="chatWebsite-detail-form-container interval md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.INTERVAL">INTERVAL</div>\n </div>\n <form name="intervalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CHAT.INTERVAL">Interval</label>\n <md-select name="IntervalId" ng-model="vm.chatWebsite.IntervalId" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Always</md-option>\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval" ng-disabled="IntervalId.canSelect === false">{{ IntervalId.name }}</md-option>\n </md-select>\n <div ng-messages="intervalForm[\'IntervalId\'].$error" ng-show="intervalForm[\'IntervalId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.INTERVAL_REQUIRED">Interval field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.TIMEZONE">Timezone</label>\n <ms-timezone name="timezone" ng-model="vm.chatWebsite.timezone" ng-disabled="!vm.crudPermissions.canEdit"></ms-timezone>\n <div class="hint"><span translate="CHAT.HELP.TIMEZONE"></span></div>\n <div ng-messages="intervalForm[\'timezone\'].$error" ng-show="intervalForm[timezone].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TIMEZONE_REQUIRED">Timezone field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container disposition md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.DISPOSITION">DISPOSITION</div>\n </div>\n <form name="dispositionForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.mandatoryDisposition" class="md-block">\n <label translate="CHAT.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.chatWebsite.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="CHAT.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="dispositionForm[\'mandatoryDispositionPauseId\'].$error" ng-show="dispositionForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.SNIPPET">SNIPPET</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container appearance md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.APPEARANCE">APPEARANCE</div>\n </div>\n <form name="appearanceForm" novalidate>\n <div flex md-color-picker ng-model="vm.chatWebsite.color" label="{{\'CHAT.MAINCOLOR\' | translate}}" md-color-hex="true" md-color-rgb="false" md-color-hsl="false" md-color-history="false" md-color-material-palette="false" md-color-alpha-channel="false" open-on-input="true"></div>\n <div flex md-color-picker ng-model="vm.chatWebsite.color_button" label="{{\'CHAT.BUTTONCOLOR\' | translate}}" md-color-hex="true" md-color-rgb="false" md-color-hsl="false" md-color-history="false" md-color-material-palette="false" md-color-alpha-channel="false" open-on-input="true"></div>\n <div flex md-color-picker ng-model="vm.chatWebsite.textColor" label="{{\'CHAT.TEXTCOLOR\' | translate}}" md-color-hex="true" md-color-rgb="false" md-color-hsl="false" md-color-history="false" md-color-material-palette="false" md-color-alpha-channel="false" open-on-input="true"></div>\n <div flex md-color-picker ng-model="vm.chatWebsite.backgroundColor" label="{{\'CHAT.BACKGROUNDCOLOR\' | translate}}" md-color-hex="true" md-color-rgb="false" md-color-hsl="false" md-color-history="false" md-color-material-palette="false" md-color-alpha-channel="false" open-on-input="true"></div>\n <md-input-container class="md-block">\n <label translate="CHAT.FONTSIZE">fontSize</label>\n <input type="number" name="fontSize" ng-model="vm.chatWebsite.fontSize" min="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="appearanceForm[\'fontSize\'].$error" ng-show="appearanceForm[\'fontSize\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.FONTSIZE_REQUIRED">fontSize field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.FONTSIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">fontSize must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.HEADERSHAPE">headershape</label>\n <md-select name="header_shape" ng-model="vm.chatWebsite.header_shape" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'rounded\'"> {{ \'CHAT.ROUNDED\' | translate }} </md-option>\n\n <md-option ng-value="\'squared\'"> {{ \'CHAT.SQUARED\' | translate }} </md-option>\n </md-select>\n <div ng-messages="appearanceForm[\'header_shape\'].$error" ng-show="appearanceForm[\'header_shape\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.HEADERSHAPE_REQUIRED">headershape field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.showAgentAvatar" aria-label="ShowAgentAvatar" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.SHOWAGENTAVATAR">ShowAgentAvatar</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.showCustomerAvatar" aria-label="showCustomerAvatar" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.SHOWCUSTOMERAVATAR">showCustomerAvatar</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.SNIPPETSWIPEOUT">snippetSwipeOut</label>\n <md-select name="alignment" ng-model="vm.chatWebsite.alignment" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'bottom_right\'"> {{ \'CHAT.BOTTOM_RIGHT\' | translate }} </md-option>\n\n <md-option ng-value="\'right\'"> {{ \'CHAT.RIGHT\' | translate }} </md-option>\n\n <md-option ng-value="\'left\'"> {{ \'CHAT.LEFT\' | translate }} </md-option>\n </md-select>\n <div ng-messages="appearanceForm[\'alignment\'].$error" ng-show="appearanceForm[\'alignment\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SNIPPETSWIPEOUT_REQUIRED">snippetSwipeOut field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.alignment !== \'bottom_right\'" class="md-block">\n <label translate="CHAT.VERTICALPOSITION">verticalPosition</label>\n <input type="number" name="verticalAlignment" ng-model="vm.chatWebsite.verticalAlignment" min="0" max="100" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="CHAT.HELP.VERTICALPOSITION"></span></div>\n <div ng-messages="appearanceForm[\'verticalAlignment\'].$error" ng-show="appearanceForm[\'verticalAlignment\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VERTICALPOSITION_REQUIRED">verticalPosition field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.VERTICALPOSITION_MUST_BE_GREATER_THAN_OR_EQUAL_TO">verticalPosition must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.VERTICALPOSITION_MUST_BE_LESS_THAN_OR_EQUAL_TO">verticalPosition must be a valid greater or equal than</span> <span>100</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.MESSAGESALIGNMENT">messagesAlignment</label>\n <md-select name="messagesAlignment" ng-model="vm.chatWebsite.messagesAlignment" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'alternate\'"> {{ \'CHAT.ALTERNATE\' | translate }} </md-option>\n\n <md-option ng-value="\'centered\'"> {{ \'CHAT.CENTERED\' | translate }} </md-option>\n </md-select>\n <div ng-messages="appearanceForm[\'messagesAlignment\'].$error" ng-show="appearanceForm[\'messagesAlignment\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MESSAGESALIGNMENT_REQUIRED">messagesAlignment field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.DEFAULTTITLE">defaultTitle</label>\n <input type="text" name="defaultTitle" ng-model="vm.chatWebsite.defaultTitle" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="appearanceForm[\'defaultTitle\'].$error" ng-show="appearanceForm[\'defaultTitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.DEFAULTTITLE_REQUIRED">defaultTitle field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.DEFAULTTITLE_MAX_LENGTH" translate-values=\'{max: 255}\'>defaultTitle must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container onlinestatus md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.ONLINESTATUS">ONLINESTATUS</div>\n </div>\n <form name="onlinestatusForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CHAT.HEADER_ONLINE">header_online</label>\n <input type="text" name="header_online" ng-model="vm.chatWebsite.header_online" md-maxlength="255" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="onlinestatusForm[\'header_online\'].$error" ng-show="onlinestatusForm[\'header_online\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.HEADER_ONLINE_REQUIRED">header_online field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.HEADER_ONLINE_MAX_LENGTH" translate-values=\'{max: 255}\'>header_online must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.START_CHAT_BUTTON">start_chat_button</label>\n <input type="text" name="start_chat_button" ng-model="vm.chatWebsite.start_chat_button" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="onlinestatusForm[\'start_chat_button\'].$error" ng-show="onlinestatusForm[\'start_chat_button\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.START_CHAT_BUTTON_REQUIRED">start_chat_button field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.START_CHAT_BUTTON_MAX_LENGTH" translate-values=\'{max: 255}\'>start_chat_button must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container offlinestatus md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.OFFLINESTATUS">OFFLINESTATUS</div>\n </div>\n <form name="offlinestatusForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.hideWhenOffline" aria-label="hideWhenOffline" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.HIDEWHENOFFLINE">hideWhenOffline</span></md-switch>\n <div class="hint"><span translate="CHAT.HELP.HIDEWHENOFFLINE"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.HEADER_OFFLINE">header_offline</label>\n <input type="text" name="header_offline" ng-model="vm.chatWebsite.header_offline" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="offlinestatusForm[\'header_offline\'].$error" ng-show="offlinestatusForm[\'header_offline\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.HEADER_OFFLINE_REQUIRED">header_offline field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.HEADER_OFFLINE_MAX_LENGTH" translate-values=\'{max: 255}\'>header_offline must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.OFFLINE_CHAT_BUTTON">offline_chat_button</label>\n <input type="text" name="offline_chat_button" ng-model="vm.chatWebsite.offline_chat_button" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="offlinestatusForm[\'offline_chat_button\'].$error" ng-show="offlinestatusForm[\'offline_chat_button\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.OFFLINE_CHAT_BUTTON_REQUIRED">offline_chat_button field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.OFFLINE_CHAT_BUTTON_MAX_LENGTH" translate-values=\'{max: 255}\'>offline_chat_button must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.OFFLINEMESSAGESUBJECT">offlineMessageSubject</label>\n <input type="text" name="offlineMessageSubject" ng-model="vm.chatWebsite.offlineMessageSubject" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="offlinestatusForm[\'offlineMessageSubject\'].$error" ng-show="offlinestatusForm[\'offlineMessageSubject\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.OFFLINEMESSAGESUBJECT_REQUIRED">offlineMessageSubject field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.OFFLINEMESSAGESUBJECT_MAX_LENGTH" translate-values=\'{max: 255}\'>offlineMessageSubject must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.OFFLINEMESSAGEBODY">offlineMessageBody</label>\n <input type="text" name="offlineMessageBody" ng-model="vm.chatWebsite.offlineMessageBody" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="offlinestatusForm[\'offlineMessageBody\'].$error" ng-show="offlinestatusForm[\'offlineMessageBody\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.OFFLINEMESSAGEBODY_REQUIRED">offlineMessageBody field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.OFFLINEMESSAGEBODY_MAX_LENGTH" translate-values=\'{max: 255}\'>offlineMessageBody must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container closingform md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.CLOSINGFORM">CLOSINGFORM</div>\n </div>\n <form name="closingformForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CHAT.CLOSINGMESSAGE">closingMessage</label>\n <textarea name="closingMessage" ng-model="vm.chatWebsite.closingMessage" md-maxlength="255" required autofocus></textarea>\n\n <div ng-messages="closingformForm[\'closingMessage\'].$error" ng-show="closingformForm[\'closingMessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.CLOSINGMESSAGE_REQUIRED">closingMessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.CLOSINGMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>closingMessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.SKIPMESSAGEBUTTON">skipMessageButton</label>\n <input type="text" name="skipMessageButton" ng-model="vm.chatWebsite.skipMessageButton" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="closingformForm[\'skipMessageButton\'].$error" ng-show="closingformForm[\'skipMessageButton\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SKIPMESSAGEBUTTON_REQUIRED">skipMessageButton field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.SKIPMESSAGEBUTTON_MAX_LENGTH" translate-values=\'{max: 255}\'>skipMessageButton must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableRating" aria-label="enableRating" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.ENABLERATING">enableRating</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.enableRating" class="md-block">\n <label translate="CHAT.RATINGTYPE">ratingType</label>\n <md-select name="ratingType" ng-model="vm.chatWebsite.ratingType" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'star\'">Star</md-option>\n <md-option ng-value="\'thumb\'">Thumb</md-option>\n </md-select>\n <div ng-messages="closingformForm[\'ratingType\'].$error" ng-show="closingformForm[\'ratingType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.RATINGTYPE_REQUIRED">ratingType field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.enableRating && vm.chatWebsite.ratingType === \'star\'" class="md-block">\n <label translate="CHAT.RATINGSTARSNUMBER">ratingStarsNumber</label>\n <input type="number" name="ratingStarsNumber" ng-model="vm.chatWebsite.ratingStarsNumber" min="2" max="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="closingformForm[\'ratingStarsNumber\'].$error" ng-show="closingformForm[\'ratingStarsNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.RATINGSTARSNUMBER_REQUIRED">ratingStarsNumber field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.RATINGSTARSNUMBER_MUST_BE_GREATER_THAN_OR_EQUAL_TO">ratingStarsNumber must be a valid greater or equal than</span> <span>2</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.RATINGSTARSNUMBER_MUST_BE_LESS_THAN_OR_EQUAL_TO">ratingStarsNumber must be a valid greater or equal than</span> <span>5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableFeedback" aria-label="enableFeedback" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.ENABLEFEEDBACK">enableFeedback</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.enableFeedback" class="md-block">\n <label translate="CHAT.FEEDBACKTITLE">feedbackTitle</label>\n <input type="text" name="feedbackTitle" ng-model="vm.chatWebsite.feedbackTitle" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="closingformForm[\'feedbackTitle\'].$error" ng-show="closingformForm[\'feedbackTitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.FEEDBACKTITLE_REQUIRED">feedbackTitle field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.FEEDBACKTITLE_MAX_LENGTH" translate-values=\'{max: 255}\'>feedbackTitle must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.forwardTranscript" aria-label="forwardTranscript" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.FORWARDTRANSCRIPT">forwardTranscript</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.forwardTranscript" class="md-block">\n <label translate="CHAT.FORWARDTRANSCRIPTMESSAGE">forwardTranscriptMessage</label>\n <input type="text" name="forwardTranscriptMessage" ng-model="vm.chatWebsite.forwardTranscriptMessage" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="closingformForm[\'forwardTranscriptMessage\'].$error" ng-show="closingformForm[\'forwardTranscriptMessage\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.FORWARDTRANSCRIPTMESSAGE_REQUIRED">forwardTranscriptMessage field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.FORWARDTRANSCRIPTMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>forwardTranscriptMessage must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.CLOSINGMESSAGEBUTTON">closingMessageButton</label>\n <input type="text" name="closingMessageButton" ng-model="vm.chatWebsite.closingMessageButton" md-maxlength="255" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="closingformForm[\'closingMessageButton\'].$error" ng-show="closingformForm[\'closingMessageButton\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.CLOSINGMESSAGEBUTTON_REQUIRED">closingMessageButton field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.CLOSINGMESSAGEBUTTON_MAX_LENGTH" translate-values=\'{max: 255}\'>closingMessageButton must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container unmanagedstatus md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.UNMANAGEDSTATUS">UNMANAGEDSTATUS</div>\n </div>\n <form name="unmanagedstatusForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.autoclose" aria-label="autoclose" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.AUTOCLOSE">autoclose</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableUnmanagedNote" aria-label="enableUnmanagedNote" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.ENABLEUNMANAGEDNOTE">enableUnmanagedNote</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.UNMANAGEDMESSAGE">unmanagedMessage</label>\n <input type="text" name="unmanagedMessage" ng-model="vm.chatWebsite.unmanagedMessage" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="unmanagedstatusForm[\'unmanagedMessage\'].$error" ng-show="unmanagedstatusForm[\'unmanagedMessage\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.UNMANAGEDMESSAGE_REQUIRED">unmanagedMessage field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.UNMANAGEDMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>unmanagedMessage must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.SKIPUNMANAGED">skipUnmanaged</label>\n <input type="text" name="skipUnmanaged" ng-model="vm.chatWebsite.skipUnmanaged" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="unmanagedstatusForm[\'skipUnmanaged\'].$error" ng-show="unmanagedstatusForm[\'skipUnmanaged\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SKIPUNMANAGED_REQUIRED">skipUnmanaged field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.SKIPUNMANAGED_MAX_LENGTH" translate-values=\'{max: 255}\'>skipUnmanaged must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.enableUnmanagedNote" class="md-block">\n <label translate="CHAT.SENDUNMANAGED">sendUnmanaged</label>\n <input type="text" name="sendUnmanaged" ng-model="vm.chatWebsite.sendUnmanaged" md-maxlength="255" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="unmanagedstatusForm[\'sendUnmanaged\'].$error" ng-show="unmanagedstatusForm[\'sendUnmanaged\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SENDUNMANAGED_REQUIRED">sendUnmanaged field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.SENDUNMANAGED_MAX_LENGTH" translate-values=\'{max: 255}\'>sendUnmanaged must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.enableUnmanagedNote" class="md-block">\n <label translate="CHAT.NOTETITLE">noteTitle</label>\n <input type="text" name="noteTitle" ng-model="vm.chatWebsite.noteTitle" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="unmanagedstatusForm[\'noteTitle\'].$error" ng-show="unmanagedstatusForm[\'noteTitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.NOTETITLE_REQUIRED">noteTitle field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.NOTETITLE_MAX_LENGTH" translate-values=\'{max: 255}\'>noteTitle must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container interaction md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.INTERACTION">INTERACTION</div>\n </div>\n <form name="interactionForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CHAT.AGENTIDENTIFIER">agentIdentifier</label>\n <md-select name="agentIdentifier" ng-model="vm.chatWebsite.agentIdentifier" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'website_alias\'"> {{ \'CHAT.WEBSITEALIAS\' | translate }} </md-option>\n\n <md-option ng-value="\'agent_alias\'"> {{ \'CHAT.AGENTALIAS\' | translate }} </md-option>\n\n <md-option ng-value="\'agent_fullname\'"> {{ \'CHAT.AGENTFULLNAME\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="CHAT.HELP.AGENTIDENTIFIER"></span></div>\n <div ng-messages="interactionForm[\'agentIdentifier\'].$error" ng-show="interactionForm[\'agentIdentifier\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.AGENTIDENTIFIER_REQUIRED">agentIdentifier field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.CUSTOMERALIAS">customerAlias</label>\n <input type="text" name="customerAlias" ng-model="vm.chatWebsite.customerAlias" md-maxlength="255" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="interactionForm[\'customerAlias\'].$error" ng-show="interactionForm[\'customerAlias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.CUSTOMERALIAS_REQUIRED">customerAlias field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.CUSTOMERALIAS_MAX_LENGTH" translate-values=\'{max: 255}\'>customerAlias must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.MESSAGEFONTSIZE">messageFontSize</label>\n <input type="number" name="messageFontSize" ng-model="vm.chatWebsite.messageFontSize" min="0" max="20" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="interactionForm[\'messageFontSize\'].$error" ng-show="interactionForm[\'messageFontSize\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MESSAGEFONTSIZE_REQUIRED">messageFontSize field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.MESSAGEFONTSIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">messageFontSize must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.MESSAGEFONTSIZE_MUST_BE_LESS_THAN_OR_EQUAL_TO">messageFontSize must be a valid greater or equal than</span> <span>20</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.agentIdentifier === \'website_alias\'" class="md-block">\n <label translate="CHAT.WEBSITEALIAS">WebsiteAlias</label>\n <input type="text" name="agentAlias" ng-model="vm.chatWebsite.agentAlias" md-maxlength="255" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="CHAT.HELP.WEBSITEALIAS"></span></div>\n <div ng-messages="interactionForm[\'agentAlias\'].$error" ng-show="interactionForm[\'agentAlias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.WEBSITEALIAS_REQUIRED">WebsiteAlias field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WEBSITEALIAS_MAX_LENGTH" translate-values=\'{max: 255}\'>WebsiteAlias must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.CLOSINGQUESTION">closingQuestion</label>\n <input type="text" name="closingQuestion" ng-model="vm.chatWebsite.closingQuestion" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="interactionForm[\'closingQuestion\'].$error" ng-show="interactionForm[\'closingQuestion\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.CLOSINGQUESTION_REQUIRED">closingQuestion field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.CLOSINGQUESTION_MAX_LENGTH" translate-values=\'{max: 255}\'>closingQuestion must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.FORMSUBMITSUCCESSMESSAGE">formSubmitSuccessMessage</label>\n <input type="text" name="formSubmitSuccessMessage" ng-model="vm.chatWebsite.formSubmitSuccessMessage" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="interactionForm[\'formSubmitSuccessMessage\'].$error" ng-show="interactionForm[\'formSubmitSuccessMessage\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.FORMSUBMITSUCCESSMESSAGE_REQUIRED">formSubmitSuccessMessage field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.FORMSUBMITSUCCESSMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>formSubmitSuccessMessage must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.FORMSUBMITFAILUREMESSAGE">formSubmitFailureMessage</label>\n <input type="text" name="formSubmitFailureMessage" ng-model="vm.chatWebsite.formSubmitFailureMessage" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="interactionForm[\'formSubmitFailureMessage\'].$error" ng-show="interactionForm[\'formSubmitFailureMessage\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.FORMSUBMITFAILUREMESSAGE_REQUIRED">formSubmitFailureMessage field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.FORMSUBMITFAILUREMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>formSubmitFailureMessage must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableCustomerWriting" aria-label="enableCustomerWriting" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.ENABLECUSTOMERWRITING">enableCustomerWriting</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.chatWebsite.enableCustomerWriting" class="md-block">\n <label translate="CHAT.WAITINGTITLE">waitingTitle</label>\n <input type="text" name="waitingTitle" ng-model="vm.chatWebsite.waitingTitle" md-maxlength="255" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="interactionForm[\'waitingTitle\'].$error" ng-show="interactionForm[\'waitingTitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.WAITINGTITLE_REQUIRED">waitingTitle field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WAITINGTITLE_MAX_LENGTH" translate-values=\'{max: 255}\'>waitingTitle must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="!vm.chatWebsite.enableCustomerWriting" class="md-block">\n <label translate="CHAT.WAITINGMESSAGE">waitingMessage</label>\n <textarea name="waitingMessage" ng-model="vm.chatWebsite.waitingMessage" md-maxlength="255" required></textarea>\n\n <div ng-messages="interactionForm[\'waitingMessage\'].$error" ng-show="interactionForm[\'waitingMessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.WAITINGMESSAGE_REQUIRED">waitingMessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WAITINGMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>waitingMessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.PLACEHOLDERMESSAGE">placeholderMessage</label>\n <input type="text" name="placeholderMessage" ng-model="vm.chatWebsite.placeholderMessage" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="interactionForm[\'placeholderMessage\'].$error" ng-show="interactionForm[\'placeholderMessage\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.PLACEHOLDERMESSAGE_REQUIRED">placeholderMessage field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.PLACEHOLDERMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>placeholderMessage must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.download_transcript" aria-label="downloadTranscript" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.DOWNLOADTRANSCRIPT">downloadTranscript</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableCustomerAttachment" aria-label="enableCustomerAttachment" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.ENABLECUSTOMERATTACHMENT">enableCustomerAttachment</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableSendButton" aria-label="enableSendButton" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.ENABLESENDBUTTON">enableSendButton</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableCustomerCheckmarks" aria-label="enableCustomerCheckmarks" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.ENABLECUSTOMERCHECKMARKS">enableCustomerCheckmarks</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.SYSTEMALIAS">systemAlias</label>\n <input type="text" name="systemAlias" ng-model="vm.chatWebsite.systemAlias" md-maxlength="255" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="interactionForm[\'systemAlias\'].$error" ng-show="interactionForm[\'systemAlias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SYSTEMALIAS_REQUIRED">systemAlias field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.SYSTEMALIAS_MAX_LENGTH" translate-values=\'{max: 255}\'>systemAlias must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div ng-if="vm.license.custom" class="chatWebsite-detail-form-container whitelabel md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.WHITELABEL">WHITELABEL</div>\n </div>\n <form name="whitelabelForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.defaultWhiteLabel" aria-label="default" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.DEFAULT">default</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.chatWebsite.defaultWhiteLabel" class="md-block">\n <label translate="CHAT.WHITELABEL">whiteLabel</label>\n <textarea name="whiteLabel" ng-model="vm.chatWebsite.whiteLabel" md-maxlength="255" required></textarea>\n\n <div ng-messages="whitelabelForm[\'whiteLabel\'].$error" ng-show="whitelabelForm[\'whiteLabel\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.WHITELABEL_REQUIRED">whiteLabel field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WHITELABEL_MAX_LENGTH" translate-values=\'{max: 255}\'>whiteLabel must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div ng-if="vm.license.custom" class="chatWebsite-detail-form-container logo md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.LOGO">LOGO</div>\n </div>\n <div ng-controller="ChatWebsitelogoController as vm_ca" ng-init="vm_ca.init(vm.chatWebsite, vm.crudPermissions)" class="chatWebsite-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="chatWebsite-image-uploader" flow-init="vm_ca.ngFlowOptions" flow-name="vm_ca.ngFlow.flow" flow-files-submitted="vm_ca.upload()" flow-file-added="vm_ca.fileAdded($file)" flow-file-success="vm_ca.fileSuccess($file, $message)" flow-complete="vm_ca.uploadComplete()" flow-drop flow-drag-enter="vm_ca.dropping=true" flow-drag-leave="vm_ca.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn ng-disabled="!vm_ca.crudPermissions.canEdit">\n Upload\n </md-button>\n <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG - Max. 8MB</span>\n </div>\n\n <div layout="row" layout-align="start start" layout-wrap>\n <div ng-repeat="logoimage in vm_ca.chatWebsite.images" ng-switch="logoimage.type">\n <div class="chatWebsite-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n <div class="overlay" layout="column" layout-align="center center">\n <md-progress-linear md-mode="determinate" value="{{logoimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="logoimage.file">\n </div>\n\n <div class="chatWebsite-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{logoimage.url}}">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n <div class="chatWebsite-detail-form-container agentavatar md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.AGENTAVATAR">AGENTAVATAR</div>\n </div>\n <div ng-controller="ChatWebsiteagentAvatarController as vm_ca" ng-init="vm_ca.init(vm.chatWebsite, vm.crudPermissions)" class="chatWebsite-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="chatWebsite-image-uploader" flow-init="vm_ca.ngFlowOptions" flow-name="vm_ca.ngFlow.flow" flow-files-submitted="vm_ca.upload()" flow-file-added="vm_ca.fileAdded($file)" flow-file-success="vm_ca.fileSuccess($file, $message)" flow-complete="vm_ca.uploadComplete()" flow-drop flow-drag-enter="vm_ca.dropping=true" flow-drag-leave="vm_ca.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn ng-disabled="!vm_ca.crudPermissions.canEdit">\n Upload\n </md-button>\n <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG - Max. 8MB</span>\n </div>\n\n <div layout="row" layout-align="start start" layout-wrap>\n <div ng-repeat="agentAvatarimage in vm_ca.chatWebsite.images" ng-switch="agentAvatarimage.type">\n <div class="chatWebsite-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n <div class="overlay" layout="column" layout-align="center center">\n <md-progress-linear md-mode="determinate" value="{{agentAvatarimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="agentAvatarimage.file">\n </div>\n\n <div class="chatWebsite-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{agentAvatarimage.url}}">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n <div class="chatWebsite-detail-form-container customeravatar md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.CUSTOMERAVATAR">CUSTOMERAVATAR</div>\n </div>\n <div ng-controller="ChatWebsitecustomerAvatarController as vm_ca" ng-init="vm_ca.init(vm.chatWebsite, vm.crudPermissions)" class="chatWebsite-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="chatWebsite-image-uploader" flow-init="vm_ca.ngFlowOptions" flow-name="vm_ca.ngFlow.flow" flow-files-submitted="vm_ca.upload()" flow-file-added="vm_ca.fileAdded($file)" flow-file-success="vm_ca.fileSuccess($file, $message)" flow-complete="vm_ca.uploadComplete()" flow-drop flow-drag-enter="vm_ca.dropping=true" flow-drag-leave="vm_ca.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn ng-disabled="!vm_ca.crudPermissions.canEdit">\n Upload\n </md-button>\n <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG - Max. 8MB</span>\n </div>\n\n <div layout="row" layout-align="start start" layout-wrap>\n <div ng-repeat="customerAvatarimage in vm_ca.chatWebsite.images" ng-switch="customerAvatarimage.type">\n <div class="chatWebsite-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n <div class="overlay" layout="column" layout-align="center center">\n <md-progress-linear md-mode="determinate" value="{{customerAvatarimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="customerAvatarimage.file">\n </div>\n\n <div class="chatWebsite-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{customerAvatarimage.url}}">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n <div class="chatWebsite-detail-form-container systemavatar md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.SYSTEMAVATAR">SYSTEMAVATAR</div>\n </div>\n <div ng-controller="ChatWebsitesystemAvatarController as vm_ca" ng-init="vm_ca.init(vm.chatWebsite, vm.crudPermissions)" class="chatWebsite-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="chatWebsite-image-uploader" flow-init="vm_ca.ngFlowOptions" flow-name="vm_ca.ngFlow.flow" flow-files-submitted="vm_ca.upload()" flow-file-added="vm_ca.fileAdded($file)" flow-file-success="vm_ca.fileSuccess($file, $message)" flow-complete="vm_ca.uploadComplete()" flow-drop flow-drag-enter="vm_ca.dropping=true" flow-drag-leave="vm_ca.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn ng-disabled="!vm_ca.crudPermissions.canEdit">\n Upload\n </md-button>\n <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG - Max. 8MB</span>\n </div>\n\n <div layout="row" layout-align="start start" layout-wrap>\n <div ng-repeat="systemAvatarimage in vm_ca.chatWebsite.images" ng-switch="systemAvatarimage.type">\n <div class="chatWebsite-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n <div class="overlay" layout="column" layout-align="center center">\n <md-progress-linear md-mode="determinate" value="{{systemAvatarimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="systemAvatarimage.file">\n </div>\n\n <div class="chatWebsite-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{systemAvatarimage.url}}">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.ONLINE">ONLINE</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container chatformonline md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteonlineFormController as vm_fonc" ng-init="vm_fonc.init(vm.chatWebsite)" class="content" md-background-bg layout="column">\n <div flex>\n \x3c!-- START Buttons --\x3e\n <md-button aria-label="comment" class="md-fab md-mini" ng-click="vm_fonc.add(button.type)" ng-repeat="button in vm_fonc.buttons">\n <md-tooltip md-direction="top">{{button.name}}</md-tooltip>\n <md-icon md-font-icon="{{button.icon}}"></md-icon>\n </md-button>\n \x3c!-- END Buttons --\x3e\n </div>\n\n <div layout="row" flex>\n <div flex="50">\n <md-card>\n <md-card-title>\n <md-card-title-text>\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.BUILDER">BUILDER</div>\n </div>\n </md-card-title-text>\n </md-card-title>\n <md-card-content>\n\n <form name="onlineForm" novalidate>\n\n \x3c!-- START MapKey --\x3e\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.onlineForm.items.length">\n <label translate="CHAT.HELP.MAPKEY">MapKey</label>\n <md-select ng-model="vm_fonc.chatWebsite.mapKey">\n <md-option ng-value="null">None</md-option>\n\n <md-optgroup label="standard">\n <md-option ng-repeat="field in vm_fonc.fields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n\n <md-optgroup label="custom" ng-if="vm_fonc.customFields.length">\n <md-option ng-repeat="field in vm_fonc.customFields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n </md-select>\n </md-input-container>\n \x3c!-- END MapKey --\x3e\n\n \x3c!-- START FromKey --\x3e\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.onlineForm.items.length">\n <label translate="CHAT.HELP.FROMKEY">FromKey</label>\n <md-select ng-model="vm_fonc.chatWebsite.onlineForm.fromKey" md-selected-text="vm_fonc.chatWebsite.onlineForm.fromKey != null ? vm_fonc.chatWebsite.onlineForm.items[vm_fonc.chatWebsite.onlineForm.fromKey].props.title : \'None\'">\n <md-option ng-value="null">None</md-option>\n <md-option ng-repeat="item in vm_fonc.chatWebsite.onlineForm.items" ng-if="item.props.title" ng-value="$index">{{ item.props.title }}</md-option>\n </md-select>\n </md-input-container>\n \x3c!-- END FromKey --\x3e\n\n \x3c!-- START EXPANSION PANELS --\x3e\n <md-expansion-panel ng-repeat="item in vm_fonc.chatWebsite.onlineForm.items track by $index" md-component-id="{{\'onlinePanel\' + $index}}">\n <md-expansion-panel-collapsed md-no-sticky="true">\n <md-button class="md-icon-button" aria-label="Down" ng-click="vm_fonc.down(item, $index); $event.stopPropagation()">\n <md-icon md-font-icon="icon-arrow-down-bold-circle-outline"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Up" ng-click="vm_fonc.up(item, $index); $event.stopPropagation()">\n <md-icon md-font-icon="icon-arrow-up-bold-circle-outline"></md-icon>\n </md-button>\n\n <div class="md-title">{{item.props.title || item.type}}</div>\n\n <div flex></div>\n <md-button class="md-icon-button" aria-label="Collapse" ng-click="$panel.collapse()">\n <md-icon md-font-icon="icon-chevron-down"></md-icon>\n </md-button>\n </md-expansion-panel-collapsed>\n\n <md-expansion-panel-expanded>\n <md-expansion-panel-header>\n <md-button class="md-icon-button" aria-label="Down" ng-click="vm_fonc.down(item, $index)">\n <md-icon md-font-icon="icon-arrow-down-bold-circle-outline"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Up" ng-click="vm_fonc.up(item, $index)">\n <md-icon md-font-icon="icon-arrow-up-bold-circle-outline"></md-icon>\n </md-button>\n\n <div class="md-title">{{item.props.title || item.type}}</div>\n\n <div flex></div>\n\n <md-button class="md-icon-button md-warn" aria-label="Remove" ng-click="vm_fonc.remove($index)">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Collapse" ng-click="$panel.collapse()">\n <md-icon md-font-icon="icon-chevron-up"></md-icon>\n </md-button>\n </md-expansion-panel-header>\n\n <md-expansion-panel-content>\n <form-item type="{{item.type}}" item="item" index="$index"></form-item>\n\n <md-input-container class="md-block">\n <label translate="CHAT.VARIABLE">Variable</label>\n <md-select ng-model="item.variable">\n <md-option ng-value="null">None</md-option>\n <md-option ng-repeat="variable in vm_fonc.variables" ng-value="variable.name">{{ variable.name }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="CHAT.CM_FIELD">Contact Manager Field</label>\n <md-select ng-model="item.cmField">\n <md-option ng-value="null">None</md-option>\n\n <md-optgroup label="standard">\n <md-option ng-repeat="field in vm_fonc.fields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n\n <md-optgroup label="custom" ng-if="vm_fonc.customFields.length">\n <md-option ng-repeat="field in vm_fonc.customFields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n </md-select>\n </md-input-container>\n </md-expansion-panel-content>\n\n </md-expansion-panel-expanded>\n </md-expansion-panel>\n \x3c!-- END EXPANSION PANELS --\x3e\n </form>\n </md-card-content>\n </md-card>\n </div>\n <div flex="50">\n <md-card>\n <md-card-title>\n <md-card-title-text>\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.PREVIEW">PREVIEW</div>\n </div>\n </md-card-title-text>\n </md-card-title>\n <md-card-content flex>\n <form-view form="vm_fonc.chatWebsite.onlineForm" flex="100"></form-view>\n </md-card-content>\n </md-card>\n </div>\n </div>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.OFFLINE">OFFLINE</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container chatformoffline md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteofflineFormController as vm_fonc" ng-init="vm_fonc.init(vm.chatWebsite)" class="content" md-background-bg layout="column">\n <div flex>\n \x3c!-- START Buttons --\x3e\n <md-button aria-label="comment" class="md-fab md-mini" ng-click="vm_fonc.add(button.type)" ng-repeat="button in vm_fonc.buttons">\n <md-tooltip md-direction="top">{{button.name}}</md-tooltip>\n <md-icon md-font-icon="{{button.icon}}"></md-icon>\n </md-button>\n \x3c!-- END Buttons --\x3e\n </div>\n\n <div layout="row" flex>\n <div flex="50">\n <md-card>\n <md-card-title>\n <md-card-title-text>\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.BUILDER">BUILDER</div>\n </div>\n </md-card-title-text>\n </md-card-title>\n <md-card-content>\n\n <form name="offlineForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm_fonc.chatWebsite.forwardOffline" aria-label="forwardOffline"><span translate="CHAT.FORWARD_OFFLINE">forwardOffline</span></md-switch>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.forwardOffline">\n <label translate="CHAT.FORWARD_OFFLINE_ADDRESS">FORWARD OFFLINE ADDRESS</label>\n <input type="text" name="forwardOfflineAddress" ng-model="vm_fonc.chatWebsite.forwardOfflineAddress">\n <div class="hint"><span translate="CHAT.HELP.FORWARD_OFFLINE"></span></div>\n <div ng-messages="offlineForm[\'forwardOfflineAddress\'].$error" ng-show="offlineForm[\'forwardOfflineAddress\'].$touched" role="alert">\n <div ng-message="email">\n <span translate="CHAT.ERRORS.EMAIL_MUST_BE_VALID">forwardOffline must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <md-switch ng-model="vm_fonc.chatWebsite.openNewInteraction" aria-label="openNewInteraction">\n <span translate="CHAT.OPEN_NEW_INTERACTION">openNewInteraction</span>\n </md-switch>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.openNewInteraction">\n <label translate="CHAT.EMAIL_ACCOUNT">Email account</label>\n <md-select ng-model="vm_fonc.chatWebsite.MailAccountId" required>\n <md-option ng-repeat="account in vm_fonc.email_accounts" ng-value="account.id">{{ account.name }}</md-option>\n </md-select>\n <div ng-messages="offlineForm[\'MailAccountId\'].$error" ng-show="offlineForm[\'MailAccountId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.EMAIL_ACCOUNT_REQUIRED">Email account field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.openNewInteraction && vm_fonc.chatWebsite.offlineForm.items.length">\n <label translate="CHAT.SUBJECT">Subject</label>\n <md-select ng-model="vm_fonc.chatWebsite.subjectOffline" md-selected-text="vm_fonc.chatWebsite.subjectOffline != null ? vm_fonc.chatWebsite.subjectOffline : \'None\'">\n <md-option ng-value="null">None</md-option>\n <md-option ng-repeat="item in vm_fonc.chatWebsite.offlineForm.items" ng-if="item.props.title" ng-value="item.props.title">{{ item.props.title }}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!-- START MapKey --\x3e\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.offlineForm.items.length">\n <label translate="CHAT.HELP.MAPKEY">MapKey</label>\n <md-select ng-model="vm_fonc.chatWebsite.mapKeyOffline">\n <md-option ng-value="null">None</md-option>\n\n <md-optgroup label="standard">\n <md-option ng-repeat="field in vm_fonc.fields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n\n <md-optgroup label="custom" ng-if="vm_fonc.customFields.length">\n <md-option ng-repeat="field in vm_fonc.customFields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n </md-select>\n </md-input-container>\n \x3c!-- END MapKey --\x3e\n\n \x3c!-- START FromKey --\x3e\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.offlineForm.items.length">\n <label translate="CHAT.HELP.FROMKEY">FromKey</label>\n <md-select ng-model="vm_fonc.chatWebsite.offlineForm.fromKey" md-selected-text="vm_fonc.chatWebsite.offlineForm.fromKey != null ? vm_fonc.chatWebsite.offlineForm.items[vm_fonc.chatWebsite.offlineForm.fromKey].props.title : \'None\'">\n <md-option ng-value="null">None</md-option>\n <md-option ng-repeat="item in vm_fonc.chatWebsite.offlineForm.items" ng-if="item.props.title" ng-value="$index">{{ item.props.title }}</md-option>\n </md-select>\n </md-input-container>\n \x3c!-- END FromKey --\x3e\n\n \x3c!-- START EXPANSION PANELS --\x3e\n <md-expansion-panel ng-repeat="item in vm_fonc.chatWebsite.offlineForm.items track by $index" md-component-id="{{\'offlinePanel\' + $index}}">\n <md-expansion-panel-collapsed md-no-sticky="true">\n <md-button class="md-icon-button" aria-label="Down" ng-click="vm_fonc.down(item, $index); $event.stopPropagation()">\n <md-icon md-font-icon="icon-arrow-down-bold-circle-outline"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Up" ng-click="vm_fonc.up(item, $index); $event.stopPropagation()">\n <md-icon md-font-icon="icon-arrow-up-bold-circle-outline"></md-icon>\n </md-button>\n\n <div class="md-title">{{item.props.title || item.type}}</div>\n\n <div flex></div>\n <md-button class="md-icon-button" aria-label="Collapse" ng-click="$panel.collapse()">\n <md-icon md-font-icon="icon-chevron-down"></md-icon>\n </md-button>\n </md-expansion-panel-collapsed>\n\n <md-expansion-panel-expanded>\n <md-expansion-panel-header>\n <md-button class="md-icon-button" aria-label="Down" ng-click="vm_fonc.down(item, $index)">\n <md-icon md-font-icon="icon-arrow-down-bold-circle-outline"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Up" ng-click="vm_fonc.up(item, $index)">\n <md-icon md-font-icon="icon-arrow-up-bold-circle-outline"></md-icon>\n </md-button>\n\n <div class="md-title">{{item.props.title || item.type}}</div>\n\n <div flex></div>\n\n <md-button class="md-icon-button md-warn" aria-label="Remove" ng-click="vm_fonc.remove($index)">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Collapse" ng-click="$panel.collapse()">\n <md-icon md-font-icon="icon-chevron-up"></md-icon>\n </md-button>\n </md-expansion-panel-header>\n\n <md-expansion-panel-content>\n <form-item type="{{item.type}}" item="item" index="$index"></form-item>\n\n\n <md-input-container class="md-block" ng-if="item.type != \'upload\'">\n <label translate="CHAT.CM_FIELD">Contact Manager Field</label>\n <md-select ng-model="item.cmField">\n <md-option ng-value="null">None</md-option>\n\n <md-optgroup label="standard">\n <md-option ng-repeat="field in vm_fonc.fields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n\n <md-optgroup label="custom" ng-if="vm_fonc.customFields.length">\n <md-option ng-repeat="field in vm_fonc.customFields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n </md-select>\n </md-input-container>\n </md-expansion-panel-content>\n\n </md-expansion-panel-expanded>\n </md-expansion-panel>\n \x3c!-- END EXPANSION PANELS --\x3e\n </form>\n </md-card-content>\n </md-card>\n </div>\n <div flex="50">\n <md-card>\n <md-card-title>\n <md-card-title-text>\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.PREVIEW">PREVIEW</div>\n </div>\n </md-card-title-text>\n </md-card-title>\n <md-card-content flex>\n <form-view form="vm_fonc.chatWebsite.offlineForm" flex="100"></form-view>\n </md-card-content>\n </md-card>\n </div>\n </div>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.PROACTIVEACTIONS">PROACTIVEACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container proactive md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteProactiveActionsController as vm_dc" ng-init="vm_dc.init(vm.chatWebsite, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedChatWebsiteProactiveActions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CHAT.PROACTIVEACTIONS">ProactiveActions</span>\n <ms-search-bar on-search="vm_dc.getChatWebsiteProactiveActions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event)" aria-label="add chatProactiveAction" translate translate-attr-label="CHAT.ADD_CHATPROACTIVEACTION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedChatWebsiteProactiveActions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedChatWebsiteProactiveActions.length}} {{vm_dc.selectedChatWebsiteProactiveActions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedChatWebsiteProactiveActions" csv-label="true" filename="chatWebsites.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedChatWebsiteProactiveActions($event)" aria-label="delete selected" translate translate-attr-label="CHAT.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedChatWebsiteProactiveActions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getChatWebsiteProactiveActions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'CHAT.ID\' | translate }}\n </th>\n <th md-column md-order-by="name">\n {{ \'CHAT.NAME\' | translate }}\n </th>\n <th md-column md-order-by="type">\n {{ \'CHAT.TYPE\' | translate }}\n </th>\n <th md-column md-order-by="selector">\n {{ \'CHAT.SELECTOR\' | translate }}\n </th>\n <th md-column md-order-by="timeout">\n {{ \'CHAT.TIMEOUT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'CHAT.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="chatProactiveAction" md-select-id="id" ng-repeat="chatProactiveAction in vm_dc.chatWebsiteProactiveActions.rows">\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>\n {{chatProactiveAction.id}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>\n {{chatProactiveAction.name}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>\n {{ \'CHAT.\' + vm_dc.arraytype[chatProactiveAction.type].option | uppercase | translate }}\n </td>\n\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>\n {{chatProactiveAction.selector}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>\n {{chatProactiveAction.timeout}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>\n {{ chatProactiveAction.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CHAT.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" translate="CHAT.EDIT_CHATPROACTIVEACTION">\n Edit ChatProactiveAction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(chatProactiveAction, $event)" translate="CHAT.DELETE_CHATPROACTIVEACTION">\n Delete ChatProactiveAction\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.chatWebsiteProactiveActions.rows.length">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="CHAT.NO_CHATPROACTIVEACTION_AVAILABLE">No chatproactiveaction available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.chatWebsiteProactiveActions.count}}" md-on-paginate="vm_dc.getChatWebsiteProactiveActions" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.DISPOSITIONS">DISPOSITIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div ng-controller="ChatWebsiteDispositionsController as vm_dc" ng-init="vm_dc.init(vm.chatWebsite, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="chatWebsite-detail-form-container chatdispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedChatWebsiteDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CHAT.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add chat dispositions" translate translate-attr-label="CHAT.ADD_DISPOSITION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" csv-label="true" filename="chatWebsites.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="CHAT.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_dc.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'CHAT.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'CHAT.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'CHAT.DESCRIPTION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="CHAT.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CHAT.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(disposition, $event)" translate="TOOLS.DELETE_DISPOSITION">\n Delete Disposition\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.CANNEDANSWERS">CANNEDANSWERS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container chatcannedanswers md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteChatCannedAnswersController as vm_dc" ng-init="vm_dc.init(vm.chatWebsite, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedChatWebsiteChatCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CHAT.CHATCANNEDANSWERS">ChatCannedAnswers</span>\n <ms-search-bar on-search="vm_dc.getChatWebsiteChatCannedAnswers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event)" aria-label="add chatCannedAnswer" translate translate-attr-label="CHAT.ADD_CHATCANNEDANSWER">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedChatWebsiteChatCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedChatWebsiteChatCannedAnswers.length}} {{vm_dc.selectedChatWebsiteChatCannedAnswers.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedChatWebsiteChatCannedAnswers" csv-label="true" filename="chatWebsites.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedChatWebsiteChatCannedAnswers($event)" aria-label="delete selected" translate translate-attr-label="CHAT.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedChatWebsiteChatCannedAnswers" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getChatWebsiteChatCannedAnswers">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'CHAT.ID\' | translate }}\n </th>\n <th md-column md-order-by="key">\n {{ \'CHAT.KEY\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'CHAT.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="description">\n {{ \'CHAT.DESCRIPTION\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'CHAT.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="chatCannedAnswer" md-select-id="id" ng-repeat="chatCannedAnswer in vm_dc.chatWebsiteChatCannedAnswers.rows">\n <td ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" md-cell>\n {{chatCannedAnswer.id}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" md-cell>\n {{chatCannedAnswer.key}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" md-cell>\n {{chatCannedAnswer.value}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" md-cell>\n {{chatCannedAnswer.description}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" md-cell>\n {{ chatCannedAnswer.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CHAT.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" translate="CHAT.EDIT_CHATCANNEDANSWER">\n Edit ChatCannedAnswer\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(chatCannedAnswer, $event)" translate="CHAT.DELETE_CHATCANNEDANSWER">\n Delete ChatCannedAnswer\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.chatWebsiteChatCannedAnswers.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="CHAT.NO_CHATCANNEDANSWER_AVAILABLE">No chatcannedanswer available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.chatWebsiteChatCannedAnswers.count}}" md-on-paginate="vm_dc.getChatWebsiteChatCannedAnswers" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.VIDEO">VIDEO</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container vidaoo md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.VIDAOO">VIDAOO</div>\n </div>\n <form name="vidaooForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.vidaooEscalation" aria-label="vidaooEscalation" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.VIDAOOESCALATION">vidaooEscalation</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.vidaooEscalation == true" class="md-block">\n <label translate="CHAT.VIDAOOAPIKEY">vidaooApiKey</label>\n <input type="text" name="vidaooApiKey" ng-model="vm.chatWebsite.vidaooApiKey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="vidaooForm[\'vidaooApiKey\'].$error" ng-show="vidaooForm[\'vidaooApiKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VIDAOOAPIKEY_REQUIRED">vidaooApiKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.vidaooEscalation == true" class="md-block">\n <label translate="CHAT.VIDAOOTOPIC">vidaooTopic</label>\n <input type="text" name="vidaooTopic" ng-model="vm.chatWebsite.vidaooTopic" value="Generated by XCALLY Motion" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="vidaooForm[\'vidaooTopic\'].$error" ng-show="vidaooForm[\'vidaooTopic\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VIDAOOTOPIC_REQUIRED">vidaooTopic field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.vidaooEscalation == true" class="md-block">\n <label translate="CHAT.VIDAOONOTE">vidaooNote</label>\n <input type="text" name="vidaooNote" ng-model="vm.chatWebsite.vidaooNote" value="Meeting generated for interaction #{{interaction.id}} by {{agent.name}}" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="vidaooForm[\'vidaooNote\'].$error" ng-show="vidaooForm[\'vidaooNote\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VIDAOONOTE_REQUIRED">vidaooNote field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.vidaooEscalation == true" class="md-block">\n <label translate="CHAT.VIDAOOMETADATA">vidaooMetadata</label>\n <textarea name="vidaooMetadata" ng-model="vm.chatWebsite.vidaooMetadata"></textarea>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container actions md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteActionsController as vm_ac" ng-init="vm_ac.init(vm.chatWebsite, vm.crudPermissions)" class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- SIDENAV --\x3e\n <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20" ng-if="vm_ac.crudPermissions.canEdit">\n \x3c!-- SIDENAV CONTENT --\x3e\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\n Applications List\n </span>\n </md-subheader>\n </md-list>\n <md-divider></md-divider>\n <md-list ng-sortable="vm_ac.list">\n <md-list-item class="handle" ng-repeat="a in vm_ac.apps">\n <md-icon md-font-icon="{{a.icon}}" class="s16"></md-icon>\n <p class="text-truncate" translate="CHAT.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias || a.appType}}</p>\n </md-list-item>\n </md-list>\n \x3c!-- / SIDENAV CONTENT --\x3e\n </div>\n \x3c!-- / SIDENAV --\x3e\n <div flex></div>\n \x3c!-- MAIN --\x3e\n <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="{{vm_ac.crudPermissions.canEdit ? 75 : 100}}">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_ac.selectedChatWebsiteApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Drag & Drop Routing</span>\n <div flex></div>\n <ms-search-bar on-search="vm_ac.query.filter = query" on-collapse="vm_ac.query.filter = undefined" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_ac.selectedChatWebsiteApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_ac.selectedChatWebsiteApps.length}} {{vm_ac.selectedChatWebsiteApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_ac.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_ac.deleteSelectedChatWebsiteApps($event)" aria-label="delete selected" translate translate-attr-label="CHAT.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n \x3c!-- QUEUES TABLE --\x3e\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_ac.selectedChatWebsiteApps">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column width="10px">\n <span translate="VOICE.PRIORITY">Priority</span>\n </th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </th>\n <th md-column width="10px"></th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body ng-sortable="vm_ac.applications">\n <tr md-row md-select="app" md-select-id="id" ng-repeat="app in vm_ac.chatWebsiteApps.rows | filter: vm_ac.query.filter">\n <td md-cell>\n <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n </td>\n <td md-cell ng-click="vm_ac.editChatWebsiteApp($event, $index)"><span>{{app.priority}}</span></td>\n <td md-cell ng-click="vm_ac.editChatWebsiteApp($event, $index)">{{app.app.toLowerCase() === \'agi\' ? \'Cally-Square\' : app.app | ucfirst}}<span ng-if="app.appType.toLowerCase() === \'custom\'">*</span></td>\n <td md-cell ng-click="vm_ac.editChatWebsiteApp($event, $index)"><span class="text-truncate actionAppData">{{app.appdata}}</span></td>\n <td md-cell ng-click="vm_ac.editInterval($event, $index)">{{app.IntervalId ? \'From List\' : app.interval}}</td>\n <td md-cell>\n <md-button ng-click="vm_ac.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n <md-icon md-font-icon="icon-timer"></md-icon>\n <md-tooltip>\n {{app.IntervalId ? \'From List\' : (app.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n </md-tooltip>\n </md-button>\n </td>\n <td md-cell class="actions" ng-if="!vm_ac.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editChatWebsiteApp($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canDelete">\n <md-button ng-click="vm_ac.deleteConfirm(app, $index, $event)" translate="VOICE.DELETE_APP">\n Delete App\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-hide="vm_ac.chatWebsiteApps.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n \x3c!-- / QUEUES TABLE --\x3e\n\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.INTERACTIONS">INTERACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container interactions md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteInteractionsController as vm_dc" ng-init="vm_dc.init(vm.chatWebsite, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedChatWebsiteInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CHAT.INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm_dc.getChatWebsiteInteractions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_dc.quickFilters" query="vm_dc.query" search="vm_dc.getChatWebsiteInteractions()"></ms-quick-filter>\n <div layout="column">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini md-accent-bg\': vm_dc.query.search }" aria-label="Filter" translate translate-attr-aria-label="DASHBOARDS.FILTER" ng-click="vm_dc.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm_dc.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'blink\': vm_dc.query.search }"></md-icon>\n </md-button>\n </div>\n <md-button class="md-icon-button" ng-click="vm_dc.getChatWebsiteInteractions()" aria-label="refresh Interactions" translate translate-attr-label="CHAT.REFRESH_INTERACTIONS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedChatWebsiteInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedChatWebsiteInteractions.length}} {{vm_dc.selectedChatWebsiteInteractions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedChatWebsiteInteractions" csv-label="true" filename="chatWebsites.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedChatWebsiteInteractions($event)" aria-label="delete selected" translate translate-attr-label="CHAT.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedChatWebsiteInteractions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getChatWebsiteInteractions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'CHAT.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column md-order-by="contactName">\n {{ \'CHAT.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'CHAT.STARTEDAT\' | translate }}\n </th>\n <th md-column md-order-by="lastMsgAt">\n {{ \'CHAT.LASTMESSAGE\' | translate }}\n </th>\n <th md-column md-order-by="closed">\n {{ \'CHAT.STATUS\' | translate }}\n </th>\n <th md-column>\n {{ \'CHAT.AGENT\' | translate }}\n </th>\n <th md-column md-order-by="tag">\n {{ \'CHAT.TAGS\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="interaction" md-select-id="id" ng-repeat="interaction in vm_dc.chatWebsiteInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td md-cell>\n {{interaction.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="user in interaction.Users">{{ user.fullname | translate }}\n <span ng-if="!$last">, </span>\n </span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg md-primary-bg" layout-margin>{{ interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.attach">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'margin-bottom-0\' : interaction.contactInfo}" layout-margin>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text margin-top-0" layout-margin>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td md-cell>\n {{ interaction.createdAt | formatdate }}\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}"></md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="text-truncate">{{ interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n </td>\n <td md-cell>\n <span ng-if="interaction.closed === 0" class="green-fg">\n {{ \'CHAT.OPENED\' | translate }}\n <span ng-if="interaction.substatus">\n - {{ interaction.substatus }}\n </span>\n </span>\n <span ng-if="interaction.closed === 1" class="red-fg">\n {{ \'CHAT.CLOSED\' | translate }}\n <span ng-if="interaction.disposition">\n - {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}\n </span>\n <md-tooltip class="multiline">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n </span>\n </td>\n\n <td md-cell>\n {{interaction.Owner.name}}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CHAT.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm_dc.spychatInteraction($event, interaction)" translate="CHAT.SPYINTERACTION">\n Spy Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || (vm_dc.userProfile.downloadOmnichannelInteractions && vm_dc.userProfile.downloadAttachments)">\n <md-button class="md-primary" ng-click="vm_dc.chatInteractionDownload(interaction, $event, true)" translate="CHAT.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || vm_dc.userProfile.downloadOmnichannelInteractions">\n <md-button class="md-primary" ng-click="vm_dc.chatInteractionDownload(interaction, $event)" translate="CHAT.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(interaction, $event)" translate="CHAT.DELETE_INTERACTION">\n Delete Interaction\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.chatWebsiteInteractions.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="CHAT.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.chatWebsiteInteractions.count}}" md-on-paginate="vm_dc.getChatWebsiteInteractions" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.OFFLINEMESSAGES">OFFLINEMESSAGES</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container offlinemessages md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteOfflineMessagesController as vm_dc" ng-init="vm_dc.init(vm.chatWebsite, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedChatWebsiteOfflineMessages.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CHAT.OFFLINEMESSAGES">OfflineMessages</span>\n <ms-search-bar on-search="vm_dc.getChatWebsiteOfflineMessages()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedChatWebsiteOfflineMessages.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedChatWebsiteOfflineMessages.length}} {{vm_dc.selectedChatWebsiteOfflineMessages.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedChatWebsiteOfflineMessages" csv-label="true" filename="chatWebsites.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedChatWebsiteOfflineMessages($event)" aria-label="delete selected" translate translate-attr-label="CHAT.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedChatWebsiteOfflineMessages" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getChatWebsiteOfflineMessages">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'CHAT.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column>\n {{ \'CHAT.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'CHAT.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="offlineMessage" md-select-id="id" ng-repeat="offlineMessage in vm_dc.chatWebsiteOfflineMessages.rows">\n <td md-cell>\n {{offlineMessage.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="offlineMessage.Attachments.length > 0">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n {{offlineMessage.Contact.firstName}}\n </td>\n <td md-cell>\n {{ offlineMessage.createdAt | formatdate }}\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CHAT.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm_dc.showOfflineMessageChatWebsiteOfflineMessage($event, offlineMessage)" translate="CHAT.SHOW_OFFLINEMESSAGE">\n SHOW OfflineMessage\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(offlineMessage, $event)" translate="CHAT.DELETE_OFFLINEMESSAGE">\n Delete OfflineMessage\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.chatWebsiteOfflineMessages.rows.length">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="CHAT.NO_OFFLINEMESSAGE_AVAILABLE">No offlinemessage available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.chatWebsiteOfflineMessages.count}}" md-on-paginate="vm_dc.getChatWebsiteOfflineMessages" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/chat/views/realtime/queues/view.html",'<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CHAT.QUEUES">Queues</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'CHAT.NAME\' | translate }}</th>\n <th md-column>{{ \'CHAT.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'CHAT.PAUSED\' | translate }}</th>\n <th md-column>{{ \'CHAT.WAITING\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.queues.count > 0">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="CHAT.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="queue" md-select-id="id" ng-repeat="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedIn }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CHAT.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="CHAT.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" translate="CHAT.AGENTSADD_QUEUE">\n Add Agents to queue\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),e.put("app/main/apps/chat/views/realtime/realtime.html",'<div id="realtime" class="page-layout simple tabbed" layout="column" ng-cloak>\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.QUEUES">Queues</span>\n </md-tab-label>\n </md-tab>\n </md-tabs>\n\n <md-card ui-view></md-card>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/contactmanager/views/companies/companies.html",'<div id="companies" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-account-circle" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="CONTACTMANAGER.COMPANIES">Companies</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="CONTACTMANAGER.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedCompanies.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedCompanies =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="CONTACTMANAGER.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-companies-count">\n <span>{{vm.selectedCompanies.length}}</span>\n <span translate="CONTACTMANAGER.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CONTACTMANAGER.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllCompanies()" translate="CONTACTMANAGER.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectCompanies()" translate="CONTACTMANAGER.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedCompanies" csv-label="true" filename="companies.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedCompanies($event)" aria-label="delete selected" translate translate-attr-label="CONTACTMANAGER.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- COMPANY TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedCompanies" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getCompanies">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'CONTACTMANAGER.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'CONTACTMANAGER.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.companies.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="company" md-select-id="id" ng-repeat="company in vm.companies.rows">\n <td md-cell ng-if="company.userpic"><img class="avatar" alt="{{company.name}}" ng-src="api/users/{{company.id}}/avatar" /></td>\n <td md-cell ng-if="!company.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{company.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(company, ev) : vm.createOrEditCompany($event, company)" md-cell class="id ">{{company.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(company, ev) : vm.createOrEditCompany($event, company)" md-cell class="name ">{{company.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(company, ev) : vm.createOrEditCompany($event, company)" md-cell class="description ">{{company.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CONTACTMANAGER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(company, $event )" translate="CONTACTMANAGER.EDIT_COMPANY">\n Edit Company\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotocontactsgoto(company, $event )" translate="CONTACTMANAGER.GOTOCONTACTS_COMPANY">\n goToContacts Company\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(company, $event )" translate="CONTACTMANAGER.DELETE_COMPANY">\n Delete Company\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.companies.count}}" md-on-paginate="vm.getCompanies" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / COMPANY TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD COMPANY BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-company-button" ng-click="vm.createOrEditCompany($event)" aria-label="add company" translate translate-attr-aria-label="CONTACTMANAGER.ADD_COMPANY">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD COMPANY BUTTON --\x3e\n</div>'),e.put("app/main/apps/contactmanager/views/companies/create/dialog.html",'<md-dialog class="company-dialog" aria-label="New Company">\n <form name="companyForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.company.name" ng-required="true" autofocus>\n\n <div ng-messages="companyForm[\'name\'].$error" ng-show="companyForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.company.phone">\n\n <div ng-messages="companyForm[\'phone\'].$error" ng-show="companyForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.VAT">Vat</label>\n <input type="text" name="vat" ng-model="vm.company.vat">\n\n <div ng-messages="companyForm[\'vat\'].$error" ng-show="companyForm[\'vat\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.VAT_REQUIRED">Vat field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.FAX">Fax</label>\n <input type="text" name="fax" ng-model="vm.company.fax">\n\n <div ng-messages="companyForm[\'fax\'].$error" ng-show="companyForm[\'fax\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.FAX_REQUIRED">Fax field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.COMPANYID">CompanyId</label>\n <input type="text" name="companyId" ng-model="vm.company.companyId">\n\n <div ng-messages="companyForm[\'companyId\'].$error" ng-show="companyForm[\'companyId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.COMPANYID_REQUIRED">CompanyId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.TYPE">Type</label>\n <input type="text" name="type" ng-model="vm.company.type">\n\n <div ng-messages="companyForm[\'type\'].$error" ng-show="companyForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.WEBSITE">Website</label>\n <input type="text" name="website" ng-model="vm.company.website" md-maxlength="255">\n\n <div ng-messages="companyForm[\'website\'].$error" ng-show="companyForm[\'website\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.WEBSITE_REQUIRED">Website field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CONTACTMANAGER.ERRORS.WEBSITE_MAX_LENGTH" translate-values=\'{max: 255}\'>Website must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.EMAIL_DOMAIN">Email_Domain</label>\n <input type="text" name="emailDomain" ng-model="vm.company.emailDomain">\n\n <div ng-messages="companyForm[\'emailDomain\'].$error" ng-show="companyForm[\'emailDomain\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.EMAIL_DOMAIN_REQUIRED">Email_Domain field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.company.email">\n\n <div ng-messages="companyForm[\'email\'].$error" ng-show="companyForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="CONTACTMANAGER.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.company.description">\n\n <div ng-messages="companyForm[\'description\'].$error" ng-show="companyForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newCompany" ng-click="vm.saveCompany()" class="send-button md-accent md-raised" ng-disabled="companyForm.$invalid || companyForm.$pristine" aria-label="SAVE" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newCompany" ng-click="vm.addNewCompany()" class="send-button md-accent md-raised" ng-disabled="companyForm.$invalid" aria-label="ADD" translate="CONTACTMANAGER.ADD_COMPANY" translate-attr-aria-label="CONTACTMANAGER.ADD_COMPANY">\n ADD COMPANY\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newCompany" ng-click="vm.deleteCompany($event)" aria-label="DELETE" translate translate-attr-aria-label="CONTACTMANAGER.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/companies/edit/view.html",'<div id="contactmanager-company" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-companies-button md-icon-button" aria-label="Go to companies" ng-click="vm.gotoCompanies()" translate translate-attr-aria-label="CONTACTMANAGER.GO_TO_COMPANIES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="company-image" hide-xs>\n <img ng-src="assets/images/business/companies.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.company.id}}\n <span ng-if="vm.company.name">{{vm.company.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="CONTACTMANAGER.CREATED_AT"></span> <span>{{vm.company.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.company, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="CONTACTMANAGER.GOTO_COMPANY"></span></md-tooltip>\n <md-icon md-font-icon="icon-forward"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveCompany()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (addressForm.$invalid) || (shipmentAddressForm.$invalid)" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="CONTACTMANAGER.GENERAL">GENERAL</span>\n </md-tab-label>\n <md-tab-body>\n <div class="company-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CONTACTMANAGER.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.company.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.company.phone" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'phone\'].$error" ng-show="generalForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.VAT">Vat</label>\n <input type="text" name="vat" ng-model="vm.company.vat" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'vat\'].$error" ng-show="generalForm[\'vat\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.VAT_REQUIRED">Vat field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.FAX">Fax</label>\n <input type="text" name="fax" ng-model="vm.company.fax" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'fax\'].$error" ng-show="generalForm[\'fax\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.FAX_REQUIRED">Fax field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.COMPANYID">CompanyId</label>\n <input type="text" name="companyId" ng-model="vm.company.companyId" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'companyId\'].$error" ng-show="generalForm[\'companyId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.COMPANYID_REQUIRED">CompanyId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.TYPE">Type</label>\n <input type="text" name="type" ng-model="vm.company.type" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'type\'].$error" ng-show="generalForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.WEBSITE">Website</label>\n <input type="text" name="website" ng-model="vm.company.website" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'website\'].$error" ng-show="generalForm[\'website\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.WEBSITE_REQUIRED">Website field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CONTACTMANAGER.ERRORS.WEBSITE_MAX_LENGTH" translate-values=\'{max: 255}\'>Website must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.EMAIL_DOMAIN">Email_Domain</label>\n <input type="text" name="emailDomain" ng-model="vm.company.emailDomain" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'emailDomain\'].$error" ng-show="generalForm[\'emailDomain\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.EMAIL_DOMAIN_REQUIRED">Email_Domain field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.company.email" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'email\'].$error" ng-show="generalForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="CONTACTMANAGER.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.company.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CONTACTMANAGER.ADDRESS">ADDRESS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="company-detail-form-container address md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CONTACTMANAGER.ADDRESS">ADDRESS</div>\n </div>\n <form name="addressForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.STREET">Street</label>\n <input type="text" name="street" ng-model="vm.company.street" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="addressForm[\'street\'].$error" ng-show="addressForm[\'street\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.STREET_REQUIRED">Street field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.POSTAL_CODE">Postal_Code</label>\n <input type="text" name="postalCode" ng-model="vm.company.postalCode" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="addressForm[\'postalCode\'].$error" ng-show="addressForm[\'postalCode\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.POSTAL_CODE_REQUIRED">Postal_Code field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.CITY">City</label>\n <input type="text" name="city" ng-model="vm.company.city" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="addressForm[\'city\'].$error" ng-show="addressForm[\'city\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.CITY_REQUIRED">City field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.COUNTRY">Country</label>\n <input type="text" name="country" ng-model="vm.company.country" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="addressForm[\'country\'].$error" ng-show="addressForm[\'country\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.COUNTRY_REQUIRED">Country field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CONTACTMANAGER.SHIPMENTADDRESS">SHIPMENTADDRESS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="company-detail-form-container shipmentaddress md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CONTACTMANAGER.SHIPMENTADDRESS">SHIPMENTADDRESS</div>\n </div>\n <form name="shipmentAddressForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.STREET">Street</label>\n <input type="text" name="sStreet" ng-model="vm.company.sStreet" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="shipmentAddressForm[\'sStreet\'].$error" ng-show="shipmentAddressForm[\'sStreet\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.STREET_REQUIRED">Street field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.POSTAL_CODE">Postal_Code</label>\n <input type="text" name="sPostalCode" ng-model="vm.company.sPostalCode" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="shipmentAddressForm[\'sPostalCode\'].$error" ng-show="shipmentAddressForm[\'sPostalCode\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.POSTAL_CODE_REQUIRED">Postal_Code field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.CITY">City</label>\n <input type="text" name="sCity" ng-model="vm.company.sCity" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="shipmentAddressForm[\'sCity\'].$error" ng-show="shipmentAddressForm[\'sCity\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.CITY_REQUIRED">City field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.COUNTRY">Country</label>\n <input type="text" name="sCountry" ng-model="vm.company.sCountry" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="shipmentAddressForm[\'sCountry\'].$error" ng-show="shipmentAddressForm[\'sCountry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.COUNTRY_REQUIRED">Country field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/contactmanager/views/contacts/contacts.html",'<div id="contacts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-account-multiple" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="CONTACTMANAGER.CONTACTS">Contacts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="CONTACTMANAGER.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedContacts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n <div class="close-button-wrapper" ng-click="vm.selectedContacts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="CONTACTMANAGER.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n <div>\n <span class="selected-contacts-count">\n <span>{{vm.selectedContacts.length}}</span>\n <span translate="CONTACTMANAGER.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CONTACTS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllContacts()" translate="CONTACTMANAGER.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectContacts()" translate="CONTACTMANAGER.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedContacts" csv-label="true" filename="contacts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm.crudPermissions.canDelete" class="md-icon-button" ng-click="vm.deleteSelectedContacts($event)" aria-label="delete selected" translate translate-attr-label="CONTACTS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n <div layout="row">\n <div class="column" flex="20">\n <md-card>\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm.selectedList = null; vm.selectedCompany = null; vm.selectedTags = []">\n <md-icon md-font-icon="icon-refresh"></md-icon>{{ \'CONTACTMANAGER.ALL_CONTACTS\' | translate }}\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.SELECT_LIST">Select a list</label>\n <md-select placeholder="Select a list" ng-model="vm.selectedList" ng-disabled="vm.lists.count === 0">\n <md-option ng-value="null"><em translate="CONTACTMANAGER.ALL">All</em></md-option>\n <md-option ng-value="list.id" ng-repeat="list in vm.lists.rows">{{list.name}}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.SELECT_COMPANY">Select a company</label>\n <md-select placeholder="Select a company" flex="100" ng-model="vm.selectedCompany" ng-disabled="vm.companies.count === 0">\n <md-option ng-value="null"><em translate="CONTACTMANAGER.ALL">All</em></md-option>\n <md-option ng-value="company.id" ng-repeat="company in vm.companies.rows">{{company.name}}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.SELECT_TAGS">Select one or more tags</label>\n <md-select multiple placeholder="Select one or more tags" flex="100" ng-model="vm.query.tag" ng-change="vm.getContacts()">\n <md-option ng-value="tag.id" ng-repeat="tag in vm.tags.rows">{{tag.name}}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n\n \x3c!-- USER TABLE --\x3e\n <md-card flex="80">\n <md-table-container ng-init="vm.getAssignedCompanies()">\n <table md-table md-row-select multiple ng-model="vm.selectedContacts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getContacts">\n <tr md-row>\n <th md-column md-order-by="id">ID</th>\n <th md-column md-order-by="firstName">{{\'CONTACTMANAGER.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="phone">{{\'CONTACTMANAGER.PHONE\' | translate}}</th>\n <th md-column md-order-by="email">{{\'CONTACTMANAGER.EMAIL\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'CONTACTMANAGER.CREATED_AT\' | translate}}</th>\n <th md-column md-order-by="ListId">{{\'CONTACTMANAGER.LIST\' | translate}}</th>\n <th md-column md-order-by="CompanyId">{{\'CONTACTMANAGER.COMPANY\' | translate}}</th>\n <th md-column md-order-by="tags">{{\'CONTACTMANAGER.TAGS\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.contacts.rows.length">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span translate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="contact" md-select-id="id" ng-repeat="contact in vm.contacts.rows">\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="id">{{contact.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="firstName" privacy ng-cloak>{{contact.firstName}} {{contact.lastName}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="phone" privacy ng-cloak>{{contact.phone}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="email" privacy ng-cloak>{{contact.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="createdAt">{{contact.createdAt | date:\'medium\'}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="list">{{vm.listsMap[contact.ListId]}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="company">{{vm.companiesMap[contact.CompanyId]}}</td>\n <td md-cell class="tag">\n <div ng-if="contact.Tags.length">\n <div ng-if="contact.Tags.length == 1" layout="column" layout-align="center center">\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': contact.Tags[0].color }"></md-icon>\n <span class="text-truncate">{{contact.Tags[0].name}}</span>\n </div>\n <div ng-if="contact.Tags.length > 1" layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in contact.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag"></md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CONTACTMANAGER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editdialog(contact, ev)" translate="CONTACTMANAGER.EDIT_CONTACT">\n Edit Contact\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.mergeContact(ev, contact)" translate="CONTACTMANAGER.MERGE_CONTACT">\n Merge Contact\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.duplicateContact(ev, contact)" translate="CONTACTMANAGER.DUPLICATE_CONTACT">\n Duplicate Contact\n </md-button>\n </md-menu-item>\n <md-menu-divider ng-if="vm.crudPermissions.canEdit && vm.crudPermissions.canDelete">\n </md-menu-divider>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteconfirm(contact, ev)" translate="CONTACTMANAGER.DELETE_CONTACT">\n Delete Contact\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.contacts.count}}" md-on-paginate="vm.getContacts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / USER TABLE --\x3e\n </div>\n </div>\n \x3c!-- / MAIN --\x3e\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD USER BUTTON --\x3e\n <md-fab-speed-dial id="add-contact-button" ng-if="vm.crudPermissions.canEdit" ng-hide="vm.options.hidden" md-direction="up" md-open="vm.options.isOpen" class="md-scale md-fab" ng-class="{ \'md-hover-full\': vm.options.hover }" ng-mouseenter="vm.options.isOpen=true" ng-mouseleave="vm.options.isOpen=false">\n <md-fab-trigger>\n <md-button aria-label="menu" class="md-fab md-accent">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </md-fab-trigger>\n <md-fab-actions>\n <md-button class="md-fab md-mini md-warn" flow-btn flow-init="vm.ngFlowOptions" flow-files-submitted="$flow.upload()" flow-file-success="vm.importContacts($file, $message, $flow)" flow-file-added="vm.fileAdded($file)" aria-label="Select File" translate translate-attr-aria-label="CONTACTMANAGER.IMPORT_CONTACTS">\n <md-tooltip md-direction="left" md-visible="tooltipVisible" md-autohide="false">\n {{\'CONTACTMANAGER.IMPORT_CONTACTS\' | translate}}\n </md-tooltip>\n <md-icon md-font-icon="icon-upload"></md-icon>\n </md-button>\n <md-button class="md-fab md-mini md-accent" ng-click="vm.createOrEditContact($event)" aria-label="add contact" translate translate-attr-aria-label="CONTACTMANAGER.ADD_CONTACT">\n <md-tooltip md-direction="left" md-visible="tooltipVisible" md-autohide="false">\n {{\'CONTACTMANAGER.ADD_CONTACT\' | translate}}\n </md-tooltip>\n <md-icon md-font-icon="icon-account-plus"></md-icon>\n </md-button>\n </md-fab-actions>\n </md-fab-speed-dial>\n \x3c!-- / ADD USER BUTTON --\x3e\n</div>'),e.put("app/main/apps/contactmanager/views/contacts/create/dialog.html",'<md-dialog class="cm-contact-dialog" aria-label="New Contact">\n <form name="contactForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.FIRSTNAME">First name</label>\n <input name="firstName" ng-model="vm.contact.firstName" required md-autofocus privacy="!vm.crudPermissions.canEdit" ng-cloak>\n\n <div ng-messages="contactForm.firstName.$error" ng-show="contactForm.firstName.$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.FIRSTNAME_REQUIRED">First name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.LASTNAME">Last name</label>\n <input name="lastName" ng-model="vm.contact.lastName" privacy="!vm.crudPermissions.canEdit" ng-cloak>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.PHONE">Phone</label>\n <input name="phone" ng-model="vm.contact.phone" privacy="!vm.crudPermissions.canEdit" ng-cloak>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.EMAIL">Email</label>\n <input name="email" type="email" ng-model="vm.contact.email" privacy="!vm.crudPermissions.canEdit" ng-cloak>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.MOBILE">Mobile</label>\n <input name="mobile" ng-model="vm.contact.mobile" privacy="!vm.crudPermissions.canEdit" ng-cloak>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.FAX">Fax</label>\n <input name="fax" ng-model="vm.contact.fax" privacy="!vm.crudPermissions.canEdit" ng-cloak>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.LIST">List</label>\n <md-select name="list" ng-model="vm.contact.ListId" ng-disabled="vm.contact.id && vm.contact.ListId" ng-change="vm.getCustomFields(vm.contact.ListId)" required>\n <md-optgroup label="Lists">\n <md-option ng-value="list.id" ng-repeat="list in vm.lists.rows">{{list.name}}</md-option>\n <md-option ng-value="null"><em translate="CONTACTMANAGER.NONE">None</em></md-option>\n </md-optgroup>\n </md-select>\n\n <div ng-messages="contactForm.list.$error" ng-show="contactForm.list.$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div ng-repeat="customField in vm.customFields.rows" class="md-block" ng-switch="customField.type">\n <div ng-switch-when="datetime">\n <label>{{customField.alias}}</label>\n <div>\n \x3c!-- ng-model="customField.value" --\x3e\n <mdp-date-picker mdp-open-on-click ng-required="customField.required" mdp-format="YYYY-MM-DD" ng-model="vm.contact[\'cf_\' + customField.id]"></mdp-date-picker>\n <mdp-time-picker mdp-open-on-click mdp-placeholder="Time" ng-required="customField.required" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.contact[\'cf_\' + customField.id]">\n </mdp-time-picker>\n </div>\n\n </div>\n\n <div ng-switch-when="select">\n <label>{{customField.alias}}</label>\n\n <md-select ng-model="vm.contact[\'cf_\' + customField.id]" ng-required="customField.required">\n <md-option ng-repeat="value in customField.values" ng-value="value.value">{{value.value}}</md-option>\n <md-option ng-value="null"><em translate="CONTACTMANAGER.NONE">None</em></md-option>\n </md-select>\n </div>\n\n <div ng-switch-when="switch">\n <md-switch aria-label="{{customField.alias}}" ng-model="vm.contact[\'cf_\' + customField.id]" ng-true-value="1" ng-false-value="0">\n {{customField.alias}}\n </md-switch>\n </div>\n\n <md-input-container ng-switch-default>\n <label>{{customField.alias}}</label>\n\n <input type="{{customField.type}}" ng-model="vm.contact[\'cf_\' + customField.id]" ng-required="customField.required">\n </md-input-container>\n </div>\n\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.COMPANY">Company</label>\n <md-select name="company" ng-model="vm.contact.CompanyId">\n <md-option ng-value="company.id" ng-repeat="company in vm.companies.rows" ng-hide="!vm.contact.CompanyId && company.canSelect === false" ng-disabled="company.canSelect === false">\n {{company.name}}</md-option>\n </md-select>\n </md-input-container>\n\n <div ng-if="!vm.allFields" layout="row" layout-align="center center">\n <md-button class="md-accent" ng-click="vm.allFields = true" translate="CONTACTMANAGER.SHOW_ALL_FIELDS">Show All\n Fields</md-button>\n </div>\n\n <md-input-container class="md-block" ng-if="vm.allFields" flex-gt-sm="" ng-init="vm.contact.dateOfBirth = vm.getDateFromString(vm.contact.dateOfBirth)">\n <label translate="CONTACTMANAGER.DATE_OF_BIRTH">Date of Birth</label>\n <mdp-date-picker mdp-open-on-click mdp-format="YYYY-MM-DD" name="dateOfBirth" ng-model="vm.contact.dateOfBirth">\n </mdp-date-picker>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.allFields">\n <label translate="CONTACTMANAGER.COUNTRY">Country</label>\n <input type="text" name="country" ng-model="vm.contact.country">\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.allFields">\n <label translate="CONTACTMANAGER.CITY">City</label>\n <input type="text" name="city" ng-model="vm.contact.city">\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.allFields">\n <label translate="CONTACTMANAGER.STREET">Street</label>\n <input type="text" name="street" ng-model="vm.contact.street">\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.allFields">\n <label translate="CONTACTMANAGER.POSTAL_CODE">Postal Code</label>\n <input type="text" name="postalCode" ng-model="vm.contact.postalCode">\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.allFields">\n <label translate="CONTACTMANAGER.NOTES">Notes</label>\n <input type="text" name="description" ng-model="vm.contact.description">\n </md-input-container>\n\n <div ng-if="vm.allFields" layout="row" layout-align="center center">\n <md-button class="md-accent" ng-click="vm.allFields = false" translate="CONTACTMANAGER.FEWER_FIELDS">Fewer\n Fields</md-button>\n </div>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-if="!vm.newContact" ng-click="vm.saveContact()" class="send-button md-accent md-raised" ng-disabled="contactForm.$invalid || contactForm.$pristine" aria-label="SAVE" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newContact" ng-click="vm.addNewContact()" class="send-button md-accent md-raised" ng-disabled="contactForm.$invalid || contactForm.$pristine" aria-label="ADD" translate="CONTACTMANAGER.ADD_CONTACT" translate-attr-aria-label="CONTACTMANAGER.ADD_CONTACT">\n ADD CONTACT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newContact" ng-click="vm.deleteContact($event)" aria-label="DELETE" translate translate-attr-aria-label="CONTACTMANAGER.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",'<md-dialog class="cm-contact-dialog" aria-label="{{ \'CONTACTMANAGER.DUPLICATE_CONTACT\' | translate }}">\n <form name="contactForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.LIST">List</label>\n <md-select name="list" ng-model="vm.contact.ListId">\n <md-option ng-value="list.id" ng-repeat="list in vm.lists.rows">{{list.name}}</md-option>\n </md-select>\n\n <div ng-messages="contactForm.list.$error" ng-show="contactForm.list.$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.addNewContact()" class="send-button md-accent md-raised" ng-disabled="contactForm.$invalid" aria-label="ADD" translate="CONTACTMANAGER.ADD_CONTACT" translate-attr-aria-label="CONTACTMANAGER.ADD_CONTACT">\n ADD CONTACT\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/contacts/edit/hoppers/dialog.html",'<md-dialog class="hopper-dialog" aria-label="New Hopper">\n <form name="hopperForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <div flex class="md-block">\n <mdp-date-picker mdp-open-on-click name="scheduledatDate" mdp-placeholder="Date" mdp-format="YYYY-MM-DD" ng-model="vm.hopper.scheduledat" ng-init="vm.hopper.scheduledat = vm.getDateFromString(vm.hopper.scheduledat)">\n <div ng-messages="hopperForm.dateRangeFrom.$error" ng-show="hopperForm.dateRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.DATE_REQUIRED">Date is required</span>\n </div>\n <div ng-message="format">\n <span translate="CONTACTMANAGER.ERRORS.DATE_INVALID">Date is invalid</span>\n </div>\n </div>\n </mdp-date-picker>\n </div>\n\n <div flex class="md-block">\n <mdp-time-picker mdp-open-on-click name="scheduledatTime" mdp-placeholder="Time" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.hopper.scheduledat" ng-init="vm.hopper.scheduledat = vm.getDateFromString(vm.hopper.scheduledat)">\n <div ng-messages="hopperForm.timeRangeFrom.$error" ng-show="hopperForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.TIME_REQUIRED">Time is required</span>\n </div>\n <div ng-message="format">\n <span translate="CONTACTMANAGER.ERRORS.TIME_INVALID">Time is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-if="!vm.newHopper" ng-click="vm.saveHopper()" class="send-button md-accent md-raised" ng-disabled="hopperForm.$invalid || hopperForm.$pristine" aria-label="SAVE" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newHopper" ng-click="vm.addNewHopper()" class="send-button md-accent md-raised" ng-disabled="hopperForm.$invalid" aria-label="ADD" translate="CONTACTMANAGER.ADD_HOPPER" translate-attr-aria-label="CONTACTMANAGER.ADD_HOPPER">\n ADD HOPPER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="!vm.newHopper" ng-click="vm.deleteHopper($event)" aria-label="DELETE" translate translate-attr-aria-label="CONTACTMANAGER.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/contacts/edit/view.html",'<div id="cm-contact" class="page-layout simple tabbed" layout="column" ng-init="vm.onInit()">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-contacts-button md-icon-button" aria-label="Go to contacts" ng-click="vm.gotoContacts()" translate translate-attr-aria-label="CONTACTMANAGER.GO_TO_CONTACTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="contact-image" hide-xs>\n <img ng-src="assets/images/business/contacts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.contact.id}} {{vm.contact.firstName}} {{vm.contact.lastName}}\n </div>\n <div class="subtitle secondary-text">\n <span translate="CONTACTMANAGER.CREATED_AT"></span> <span>{{vm.contact.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-if="vm.contact.role && vm.contact.role !== \'admin\'" ng-controller="ContactQueueAddButtonController as vm_contact_qa" ng-cloak>\n <md-fab-speed-dial ng-hide="vm_contact_qa.hidden" md-direction="left" md-open="vm_contact_qa.isOpen" class="md-scale md-fab" ng-class="{ \'md-hover-full\': vm_contact_qa.hover }" ng-mouseenter="vm_contact_qa.isOpen=true" ng-mouseleave="vm_contact_qa.isOpen=false">\n <md-fab-trigger>\n <md-button aria-label="menu" class="md-fab md-primary md-icon-button">\n <md-tooltip md-direction="top" md-visible="tooltipVisible">Channels</md-tooltip>\n <md-icon md-font-icon="icon-eye" aria-label="channels"></md-icon>\n </md-button>\n </md-fab-trigger>\n <md-fab-actions>\n <div ng-repeat="channel in vm_contact_qa.channels">\n <md-button aria-label="{{channel.name}}" class="md-fab md-raised md-icon-button md-mini" ng-click="vm_contact_qa.openDialog($event, vm.contact, channel)">\n <md-tooltip md-direction="{{channel.direction}}" md-visible="tooltipVisible" md-autohide="false">\n {{channel.name}}\n </md-tooltip>\n <md-icon md-font-icon="{{channel.icon}}" aria-label="{{channel.name}}"></md-icon>\n </md-button>\n </div>\n </md-fab-actions>\n </md-fab-speed-dial>\n </div>\n\n <div ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.duplicateContact($event)" class="md-fab md-warn md-icon-button" aria-label="DUPLICATE">\n <md-icon md-font-icon="icon-file-multiple"></md-icon>\n </md-button>\n <md-button type="submit" ng-click="vm.saveContact()" class="send-button md-accent md-raised" ng-disabled="detailForm.$pristine && customFieldsForm.$pristine && socialForm.$pristine" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n SAVE\n </md-button>\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="CONTACTMANAGER.DETAIL">DETAIL</span>\n </md-tab-label>\n\n <md-tab-body>\n <div layout="row">\n <div layout="column" flex="70">\n <md-card class="contact-detail-form-container personal_info md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text text-truncate" translate="CONTACTMANAGER.PERSONAL_INFO">PERSONAL_INFO\n </div>\n </div>\n <form name="detailForm" novalidate>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n \x3c!-- fistName --\x3e\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.FIRSTNAME">First Name</label>\n <md-icon md-font-icon="icon-account" class="firstname"></md-icon>\n <input type="text" name="firstName" ng-model="vm.contact.firstName" class="text-truncate" required ng-disabled="!vm.crudPermissions.canEdit" privacy="!vm.crudPermissions.canEdit" ng-cloak>\n <div ng-messages="detailForm.firstName.$error" ng-show="detailForm.firstName.$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.FIRSTNAME_REQUIRED">First name field is required</span>\n </div>\n </div>\n </md-input-container>\n <div flex="5"></div>\n \x3c!-- lastName --\x3e\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.LASTNAME">Last Name</label>\n <input type="text" name="lastName" ng-model="vm.contact.lastName" class="text-truncate" ng-disabled="!vm.crudPermissions.canEdit" privacy="!vm.crudPermissions.canEdit" ng-cloak>\n </md-input-container>\n\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n \x3c!-- phone --\x3e\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.PHONE">Phone</label>\n <md-icon md-font-icon="icon-phone"></md-icon>\n <input type="text" name="phone" ng-model="vm.contact.phone" class="text-truncate" ng-disabled="!vm.crudPermissions.canEdit" privacy="!vm.crudPermissions.canEdit" ng-cloak>\n </md-input-container>\n <div flex="5"></div>\n \x3c!-- mobile --\x3e\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.MOBILE">Mobile</label>\n <md-icon md-font-icon="icon-cellphone-iphone"></md-icon>\n <input type="text" name="mobile" ng-model="vm.contact.mobile" class="text-truncate" ng-disabled="!vm.crudPermissions.canEdit" privacy="!vm.crudPermissions.canEdit" ng-cloak>\n </md-input-container>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n \x3c!-- email --\x3e\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.EMAIL">Email</label>\n <md-icon md-font-icon="icon-email" class="email"></md-icon>\n <input type="email" name="email" ng-model="vm.contact.email" class="text-truncate" ng-disabled="!vm.crudPermissions.canEdit" privacy="!vm.crudPermissions.canEdit" ng-cloak>\n <div ng-messages="detailForm.firstName.$error" ng-show="detailForm.firstName.$touched" role="alert">\n <div ng-message="email">\n <span translate="CONTACTMANAGER.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail\n address</span>\n </div>\n </div>\n </md-input-container>\n <div flex="5"></div>\n \x3c!-- fax --\x3e\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.FAX">Fax</label>\n <md-icon md-font-icon="icon-deskphone"></md-icon>\n <input type="text" name="fax" ng-model="vm.contact.fax" ng-disabled="!vm.crudPermissions.canEdit" privacy="!vm.crudPermissions.canEdit" ng-cloak>\n </md-input-container>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="" ng-init="vm.contact.dateOfBirth = vm.getDateFromString(vm.contact.dateOfBirth)">\n <label translate="CONTACTMANAGER.DATE_OF_BIRTH">Date of Birth</label>\n <mdp-date-picker mdp-open-on-click mdp-format="YYYY-MM-DD" name="dateOfBirth" ng-model="vm.contact.dateOfBirth" mdp-disabled="!vm.crudPermissions.canEdit"></mdp-date-picker>\n </md-input-container>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container ng-if="vm.companies.rows.length" class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.COMPANY">Company</label>\n <md-icon md-font-icon="icon-domain"></md-icon>\n <md-select name="company" ng-model="vm.contact.CompanyId" ng-disabled="!vm.crudPermissions.canEdit">\n <md-optgroup label="Companies">\n <md-option ng-value="company.id" ng-repeat="company in vm.companies.rows" ng-disabled="company.canSelect === false">{{company.name}}</md-option>\n <md-option ng-value=" null"><em translate="CONTACTMANAGER.NONE">None</em></md-option>\n </md-optgroup>\n </md-select>\n <md-icon class="pointer" ng-show="vm.contact.CompanyId" md-font-icon="icon-information-outline" ng-click="vm.editCompany($event, vm.contact.CompanyId)"></md-icon>\n </md-input-container>\n <section ng-if="!vm.companies.rows.length" flex-gt-sm="">\n <md-icon md-font-icon="icon-briefcase"></md-icon>\n <label translate="CONTACTMANAGER.NO_COMPANIES">No Companies</label>\n </section>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container ng-if="vm.tags.rows.length" class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.TAGS">Tags</label>\n <md-icon md-font-icon="icon-tag"></md-icon>\n <md-select ng-model="vm.Tags" multiple ng-disabled="!vm.crudPermissions.canEdit">\n <md-optgroup label="Tags">\n <md-option ng-value="tag.id" ng-repeat="tag in vm.tags.rows" ng-disabled="tag.canSelect === false">{{tag.name}}</md-option>\n </md-optgroup>\n </md-select>\n </md-input-container>\n <section ng-if="!vm.tags.rows.length" flex-gt-sm="">\n <md-icon md-font-icon="icon-tag"></md-icon>\n <label translate="CONTACTMANAGER.NO_TAG">No Tags</label>\n <md-button class="md-accent" translate="CONTACTMANAGER.ADD_TAG">Add Tag</md-button>\n </section>\n </div>\n\n <div ng-if="!vm.allFields" layout="row" layout-align="center center">\n <md-button class="md-accent" ng-click="vm.allFields = true" translate="CONTACTMANAGER.SHOW_ALL_FIELDS">Show All Fields</md-button>\n </div>\n\n <div ng-if="vm.allFields">\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n \x3c!-- country --\x3e\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.COUNTRY">Country</label>\n <md-icon md-font-icon="icon-home" class="country"></md-icon>\n <input type="text" name="country" ng-model="vm.contact.country" class="text-truncate" ng-disabled="!vm.crudPermissions.canEdit">\n </md-input-container>\n <div flex="5"></div>\n \x3c!-- city --\x3e\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.CITY">City</label>\n <input type="text" name="city" ng-model="vm.contact.city" ng-disabled="!vm.crudPermissions.canEdit">\n </md-input-container>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <div flex="5"></div>\n \x3c!-- street --\x3e\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.STREET">Street</label>\n <input type="text" name="street" ng-model="vm.contact.street" ng-disabled="!vm.crudPermissions.canEdit">\n </md-input-container>\n <div flex="5"></div>\n \x3c!-- postalCode --\x3e\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.POSTALCODE">Postal Code</label>\n <input type="text" name="postalCode" ng-model="vm.contact.postalCode" ng-disabled="!vm.crudPermissions.canEdit">\n </md-input-container>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate translate-attr-placeholder="CONTACTMANAGER.NOTES">Notes</label>\n <md-icon md-font-icon="icon-note"></md-icon>\n <textarea ng-model="vm.contact.description" type="text" max-rows="4" ng-disabled="!vm.crudPermissions.canEdit"></textarea>\n </md-input-container>\n </div>\n\n <div layout="row" layout-align="center center">\n <md-button class="md-accent" ng-click="vm.allFields = false" translate="CONTACTMANAGER.FEWER_FIELDS">Fewer Fields\n </md-button>\n </div>\n\n </div>\n </form>\n </md-card>\n <md-card class="contact-detail-form-container personal_info md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text text-truncate" translate="CONTACTMANAGER.SOCIAL">Social</div>\n </div>\n <form name="socialForm" novalidate>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Facebook</label>\n <md-icon md-font-icon="icon-facebook" class="facebook"></md-icon>\n <input type="text" name="facebook" ng-model="vm.contact.facebook" class="text-truncate" ng-disabled="!vm.crudPermissions.canEdit">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Twitter</label>\n <md-icon md-font-icon="icon-twitter" class="twitter"></md-icon>\n <input type="text" name="twitter" ng-model="vm.contact.twitter" class="text-truncate" ng-disabled="!vm.crudPermissions.canEdit">\n </md-input-container>\n </div>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Line</label>\n <md-icon md-font-icon="fab fa-line"></md-icon>\n <input type="text" name="line" ng-model="vm.contact.line" class="text-truncate">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Viber</label>\n <md-icon md-font-icon="fab fa-viber"></md-icon>\n <input type="text" name="viber" ng-model="vm.contact.viber" class="text-truncate">\n </md-input-container>\n </div>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label>WeChat</label>\n <md-icon md-font-icon="fab fa-weixin"></md-icon>\n <input type="text" name="wechat" ng-model="vm.contact.wechat" class="text-truncate">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Telegram</label>\n <md-icon md-font-icon="icon-telegram"></md-icon>\n <input type="text" name="telegram" ng-model="vm.contact.telegram" class="text-truncate">\n </md-input-container>\n </div>\n </form>\n </md-card>\n </div>\n\n <div flex></div>\n\n <div class="contact-detail-form-container personal_info md-background-bg md-whiteframe-1dp" flex="25">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text text-truncate" translate="CONTACTMANAGER.CUSTOM_FIELDS">CUSTOM FIELDS\n </div>\n </div>\n <form name="customFieldsForm" novalidate>\n <md-input-container class="md-block">\n <label translate translate-attr-placeholder="CONTACTMANAGER.LIST">List</label>\n <md-select name="list" ng-model="vm.contact.ListId" md-on-close="vm.onSelectList($event)" ng-disabled="vm.contact.ListId">\n <md-optgroup label="Lists">\n <md-option ng-value="list.id" ng-repeat="list in vm.lists.rows">#{{list.id}} - {{list.name}}\n </md-option>\n <md-option ng-value="null"><em translate="CONTACTMANAGER.NONE">None</em></md-option>\n </md-optgroup>\n </md-select>\n </md-input-container>\n <div ng-repeat="customField in vm.customFields.rows" ng-switch="customField.type">\n <md-input-container class="md-block" ng-switch-when="datetime">\n <label>{{customField.alias}}</label>\n <div ng-init="vm.contact[\'cf_\' + customField.id] = vm.getDateFromString(vm.contact[\'cf_\' + customField.id])">\n <mdp-date-picker mdp-open-on-click ng-required="customField.required" mdp-format="YYYY-MM-DD" ng-model="vm.contact[\'cf_\' + customField.id]"></mdp-date-picker>\n <mdp-time-picker mdp-open-on-click mdp-placeholder="Time" ng-required="customField.required" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.contact[\'cf_\' + customField.id]">\n </mdp-time-picker>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-switch-when="select">\n <label>{{customField.alias}}</label>\n <md-select ng-model="vm.contact[\'cf_\' + customField.id]" ng-required="customField.required" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-repeat="value in customField.values" ng-value="value.value">{{value.value}}\n </md-option>\n <md-option ng-value="null"><em translate="CONTACTMANAGER.NONE">None</em></md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block" ng-switch-when="switch">\n <md-switch aria-label="{{customField.alias}}" ng-model="vm.contact[\'cf_\' + customField.id]" ng-true-value="1" ng-false-value="0">\n {{customField.alias}}\n </md-switch>\n </md-input-container>\n\n <md-input-container class="md-block" ng-switch-default>\n <label>{{customField.alias}}</label>\n <input type="{{customField.type}}" ng-model="vm.contact[\'cf_\' + customField.id]" ng-required="customField.required" ng-disabled="!vm.crudPermissions.canEdit">\n </md-input-container>\n </div>\n </form>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n\n <md-tab ng-if="vm.license.dialer">\n <md-tab-label>\n <span translate="CONTACTMANAGER.MOTION_BULL">MOTION BULL</span>\n </md-tab-label>\n\n <md-tab-body>\n <div layout="row">\n <div class="contact-detail-form-container personal_info md-background-bg md-whiteframe-1dp" flex>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CONTACTMANAGER.HOPPER">Hopper</span>\n <div flex></div>\n <ms-search-bar on-search="vm.queryHopper.filter = query;" on-collapse="vm.queryHopper.filter = undefined;" debounce="300"></ms-search-bar>\n <md-button class="md-icon-button" ng-click="vm.getHoppers()" aria-label="reload" translate translate-attr-label="CONTACTMANAGER.RELOAD">\n <md-tooltip>{{\'CONTACTMANAGER.RELOAD\' | translate}}</md-tooltip>\n <md-icon md-font-icon="icon-reload"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n \x3c!-- HOPPER TABLE --\x3e\n <md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.queryHopper.sort" md-on-reorder="vm.getHoppers">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | translate }}</th>\n <th md-column md-order-by="phone">{{ \'CONTACTMANAGER.PHONE\' | translate }}</th>\n <th md-column md-order-by="scheduledat">{{ \'CONTACTMANAGER.SCHEDULEDAT\' | translate }}</th>\n <th md-column md-order-by="priority">{{ \'MOTIONDIALER.PRIORITY\' | translate }}</th>\n <th md-column md-order-by="recallme">{{ \'CONTACTMANAGER.RECALLME\' | translate }}</th>\n <th md-column md-order-by="VoiceQueueId">{{ \'CONTACTMANAGER.VOICEQUEUEID\' | translate }}</th>\n <th md-column md-order-by="CampaignId">{{ \'CONTACTMANAGER.CAMPAIGNID\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.hoppers.count">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(id, hopper) in vm.hoppers.rows">\n <td md-cell>{{hopper.id}}</td>\n <td md-cell privacy ng-cloak>{{hopper.phone}}</td>\n <td md-cell>{{hopper.scheduledat | date:\'medium\'}}</td>\n <td md-cell>{{ vm.arraypriority[hopper.priority].option }}</td>\n <td md-cell class="recallme ">\n <md-icon md-colors="{color: {{hopper.recallme ? \'\\\'green\\\'\' : \'\\\'red\\\'\'}}}" md-font-icon="{{hopper.recallme? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td md-cell>{{hopper.VoiceQueueId}}</td>\n <td md-cell>{{hopper.CampaignId}}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CONTACTMANAGER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-if="vm.crudPermissions.canEdit && hopper.VoiceQueueId" ng-click="vm.editHopper($event, hopper)" translate="CONTACTMANAGER.EDIT_HOPPER">\n Edit Hopper\n </md-button>\n <md-button ng-if="vm.crudPermissions.canEdit && hopper.CampaignId" ng-click="vm.createOrEditIvrCampaignHopper($event, hopper)" translate="CONTACTMANAGER.EDIT_HOPPER">\n Edit Hopper\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.crudPermissions.canDelete && vm.deleteconfirm(hopper, $event)" translate="CONTACTMANAGER.DELETE_HOPPER">\n Delete Hopper\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.queryHopper.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.queryHopper.page" md-total="{{vm.hoppers.count}}" md-on-paginate="vm.getHoppers" md-page-select></md-table-pagination>\n \x3c!-- / HOPPER TABLE --\x3e\n </div>\n </div>\n\n <div layout="row">\n <div class="contact-detail-form-container personal_info md-background-bg md-whiteframe-1dp" flex>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CONTACTMANAGER.FINAL">Final</span>\n <div flex></div>\n <ms-search-bar on-search="vm.queryFinal.filter = query;" on-collapse="vm.queryFinal.filter = undefined;" debounce="300"></ms-search-bar>\n <md-button class="md-icon-button" ng-click="vm.getFinals()" aria-label="reload" translate translate-attr-label="CONTACTMANAGER.RELOAD">\n <md-tooltip>{{\'CONTACTMANAGER.RELOAD\' | translate}}</md-tooltip>\n <md-icon md-font-icon="icon-reload"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n \x3c!-- HOPPER TABLE --\x3e\n <md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.queryFinal.sort" md-on-reorder="vm.getFinals">\n <tr md-row>\n <th md-column md-order-by="uniqueid">{{ \'CONTACTMANAGER.UNIQUEID\' | translate }}</th>\n <th md-column md-order-by="calleridnum">{{ \'CONTACTMANAGER.PHONE\' | translate }}</th>\n <th md-column md-order-by="state">{{ \'CONTACTMANAGER.STATE\' | translate }}</th>\n <th md-column md-order-by="starttime">{{ \'CONTACTMANAGER.STARTTIME\' | translate }}</th>\n <th md-column md-order-by="disposition">{{ \'CONTACTMANAGER.DISPOSITION\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.finals.count">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(id, final) in vm.finals.rows">\n <td md-cell>{{final.uniqueid}}</td>\n <td md-cell privacy ng-cloak>{{final.calleridnum}}</td>\n <td md-cell>{{final.statedesc}}</td>\n <td md-cell>{{final.starttime | date:\'medium\'}}</td>\n <td md-cell>{{final.disposition}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.queryFinal.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.queryFinal.page" md-total="{{vm.finals.count}}" md-on-paginate="vm.getFinals" md-page-select></md-table-pagination>\n \x3c!-- / HOPPER TABLE --\x3e\n </div>\n </div>\n\n <div layout="row">\n <div class="contact-detail-form-container personal_info md-background-bg md-whiteframe-1dp" flex>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CONTACTMANAGER.HISTORY">History</span>\n <div flex></div>\n <ms-search-bar on-search="vm.queryHistory.filter = query;" on-collapse="vm.queryHistory.filter = undefined;" debounce="300"></ms-search-bar>\n <md-button class="md-icon-button" ng-click="vm.getHistories()" aria-label="reload" translate translate-attr-label="CONTACTMANAGER.RELOAD">\n <md-tooltip>{{\'CONTACTMANAGER.RELOAD\' | translate}}</md-tooltip>\n <md-icon md-font-icon="icon-reload"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n \x3c!-- HOPPER TABLE --\x3e\n <md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.queryHistory.sort" md-on-reorder="vm.getHistories">\n <tr md-row>\n <th md-column md-order-by="uniqueid">{{ \'CONTACTMANAGER.UNIQUEID\' | translate }}</th>\n <th md-column md-order-by="calleridnum">{{ \'CONTACTMANAGER.PHONE\' | translate }}</th>\n <th md-column md-order-by="state">{{ \'CONTACTMANAGER.STATE\' | translate }}</th>\n <th md-column md-order-by="scheduledat">{{ \'CONTACTMANAGER.SCHEDULEDAT\' | translate }}</th>\n <th md-column md-order-by="starttime">{{ \'CONTACTMANAGER.STARTTIME\' | translate }}</th>\n <th md-column md-order-by="endtime">{{ \'CONTACTMANAGER.ENDTIME\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.histories.count">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(id, history) in vm.histories.rows">\n <td md-cell>{{history.uniqueid}}</td>\n <td md-cell privacy ng-cloak>{{history.calleridnum}}</td>\n <td md-cell>{{history.statedesc}}</td>\n <td md-cell>{{history.scheduledat | date:\'medium\'}}</td>\n <td md-cell>{{history.starttime | date:\'medium\'}}</td>\n <td md-cell>{{history.endtime | date:\'medium\'}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.queryHistory.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.queryHistory.page" md-total="{{vm.histories.count}}" md-on-paginate="vm.getHistories" md-page-select></md-table-pagination>\n \x3c!-- / HOPPER TABLE --\x3e\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n\n <md-tab ng-if="vm.license.jscripty">\n <md-tab-label>\n <span translate="CONTACTMANAGER.JSCRIPTY">JSCRIPTY</span>\n </md-tab-label>\n\n <md-tab-body>\n <div layout="row">\n <div class="contact-detail-form-container personal_info md-background-bg md-whiteframe-1dp" flex>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CONTACTMANAGER.SESSIONS">Sessions</span>\n <div flex></div>\n <ms-search-bar on-search="vm.queryJscriptySession.filter = query;" on-collapse="vm.queryJscriptySession.filter = undefined;" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n\n \x3c!-- SESSION TABLE --\x3e\n <md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.queryJscriptySession.sort" md-on-reorder="vm.getJscriptySessions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | translate }}</th>\n <th md-column md-order-by="starttime">{{ \'CONTACTMANAGER.STARTTIME\' | translate }}</th>\n <th md-column md-order-by="endtime">{{ \'CONTACTMANAGER.ENDTIME\' | translate }}</th>\n <th md-column md-order-by="agent">{{ \'CONTACTMANAGER.AGENT\' | translate }}</th>\n <th md-column md-order-by="project">{{ \'CONTACTMANAGER.PROJECT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.jscriptySessions.count">\n <td md-cell colspan="6">\n <div layout="row" layout-align="center center">\n <span translate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(id, session) in vm.jscriptySessions.rows">\n <td md-cell>{{session.id}}</td>\n <td md-cell>{{session.starttime | date:\'medium\'}}</td>\n <td md-cell>{{session.endtime | date:\'medium\'}}</td>\n <td md-cell>{{session.membername}}</td>\n <td md-cell>{{session.projectname}}</td>\n <td md-cell class="actions"></td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.queryHopper.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.queryHopper.page" md-total="{{vm.hoppers.count}}" md-on-paginate="vm.getHoppers" md-page-select></md-table-pagination>\n \x3c!-- / SESSION TABLE --\x3e\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="CONTACTMANAGER.CUSTOMER_JOURNEY">CUSTOMER JOURNEY</span>\n </md-tab-label>\n\n <md-tab-body>\n <md-content class="md-padding" id="journey-content">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.html\'">\n </div>\n </md-content>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/contactmanager/views/contacts/import/import.html",'<md-dialog class="import-dialog" aria-label="Import contact">\n <form name="importForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="CONTACTMANAGER.IMPORT_CONTACTS">Import Contacts</span>\n <md-button ng-if="vm.result.finish || !vm.processing" class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <div md-background-bg layout="row" layout-align="start start">\n <md-progress-linear ng-disabled="!vm.processing || vm.result.finish" md-mode="indeterminate" class="md-warn"></md-progress-linear>\n </div>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div>\n <md-content ng-show="!vm.processing">\n <div class="form-title" translate="CONTACTMANAGER.CONTACTMANAGER">CONTACT MANAGER</div>\n\n <md-input-container class="md-icon-float md-block" ng-repeat="contactField in vm.contactFields">\n <label>{{\'CONTACTMANAGER.\' + contactField.key | uppercase | translate}}</label>\n <md-select name="{{contactField.key}}" ng-model="vm.binding[contactField.key]" placeholder="{{\'CONTACTMANAGER.\' + contactField.key | uppercase | translate}}" ng-required="contactField.required">\n <md-option ng-value="field" ng-repeat="field in vm.fields">{{ field }}</md-option>\n <md-option ng-value="null" ng-hide="contactField.required">\n <em>{{ \'CONTACTMANAGER.NONE\' | translate }}</em>\n </md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-icon-float md-block">\n <label translate="CONTACTMANAGER.LIST">List</label>\n <md-select name="list" ng-model="vm.ListId" placeholder="Select a list" ng-change="vm.onChangeList()" required>\n <md-option ng-value="list.id" ng-repeat="list in vm.lists.rows">{{list.name}}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-icon-float md-block" ng-repeat="customField in vm.customFields.rows">\n <label>{{customField.alias}}</label>\n <md-select ng-model="vm.binding[\'cf_\' + customField.id]" placeholder="{{customField.alias}}" ng-required="customField.required">\n <md-option ng-value="field" ng-repeat="field in vm.fields">{{ field }}</md-option>\n <md-option ng-value="null" ng-hide="customField.required">\n <em>{{ \'CONTACTMANAGER.NONE\' | translate }}</em>\n </md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-icon-float md-block">\n <label translate="CONTACTMANAGER.COMPANY">Company</label>\n <md-select name="company" ng-model="vm.CompanyId" placeholder="Select a company">\n <md-option ng-value="company.id" ng-repeat="company in vm.companies.rows">{{company.name}}</md-option>\n <md-option ng-value="null">\n <em translate="CONTACTMANAGER.NONE">None</em>\n </md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-icon-float md-block">\n <md-select ng-model="vm.duplicates" placeholder="{{ \'CONTACTMANAGER.CHECK_DUPLICATES\' | translate}}" multiple>\n <md-option ng-value="contactField.key" ng-repeat="contactField in vm.contactFields">{{ \'CONTACTMANAGER.\' + contactField.key | uppercase | translate}}</md-option>\n </md-select>\n </md-input-container>\n\n <div ng-if="vm.license.dialer">\n <div class="form-title" translate="CONTACTMANAGER.MOTIONDIALER">MOTION BULL</div>\n\n <md-input-container class="md-icon-float md-block" ng-repeat="motionBullField in vm.motionBullFields">\n <label>{{\'CONTACTMANAGER.\' + motionBullField.key | uppercase | translate}}</label>\n <md-select name="{{motionBullField.key}}" ng-model="vm.binding[motionBullField.key]" placeholder="{{\'CONTACTMANAGER.\' + motionBullField.key | uppercase | translate}}" ng-required="motionBullField.required">\n <md-option ng-value="field" ng-repeat="field in vm.fields">{{ field }}</md-option>\n <md-option ng-value="null" ng-hide="contactField.required">\n <em>{{ \'CONTACTMANAGER.NONE\' | translate }}</em>\n </md-option>\n </md-select>\n </md-input-container>\n </div>\n\n </md-content>\n\n <div class="error-list" ng-if="vm.result.finish">\n <div class="info" layout="row" layout-align="space-between center">\n <div>\n <div class="message">{{\'CONTACTMANAGER.UPLOAD_COMPLETED\' | translate | uppercase}} ({{vm.result.elapsed}}s)</div>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div layout="row" ng-if="vm.processing">\n \x3c!-- WIDGET PROCESSING --\x3e\n <ms-widget ng-if="!vm.result.finish" class="h-140" flex>\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg">\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8 orange-fg">\n <span ng-bind="vm.result.rows"></span>\n </div>\n <div ng-if="vm.processing" class="font-weight-500 secondary-text">Please wait, we are processing your contacts...</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET PROCESSING --\x3e\n \x3c!-- WIDGET SUCCESS --\x3e\n <ms-widget ng-if="vm.result.finish" class="h-140" flex>\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg">\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8 green-fg">\n <span ng-bind="vm.result.affectedRows"></span>\n </div>\n <div class="font-weight-500 secondary-text" translate="CONTACTMANAGER.SUCCESS">Success</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET SUCCESS --\x3e\n\n \x3c!-- WIDGET FAILURE --\x3e\n <ms-widget ng-if="vm.result.finish" class="h-140" flex>\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg">\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8 red-fg">\n <span ng-bind="vm.result.failedRows"></span>\n </div>\n <div class="font-weight-500 secondary-text" translate="CONTACTMANAGER.FAILURE">Failure</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET FAILURE --\x3e\n\n \x3c!-- WIDGET DUPLICATES --\x3e\n <ms-widget ng-if="vm.result.duplicatedRows && vm.result.finish" class="h-140" flex>\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg">\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8 orange-fg">\n <span ng-bind="vm.result.duplicatedRows"></span>\n </div>\n <div class="font-weight-500 secondary-text" translate="CONTACTMANAGER.DUPLICATES">Duplicates</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET DUPLICATES --\x3e\n </div>\n\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row">\n <md-button ng-if="!vm.processing" ng-disabled="importForm.$invalid || importForm.$pristine" ng-click="vm.uploadCsv()" class="md-accent md-raised" aria-label="UPLOAD" translate="CONTACTMANAGER.UPLOAD" translate-attr-aria-label="CONTACTMANAGER.IMPORT">\n IMPORT\n </md-button>\n <md-button ng-if="vm.processing && !vm.result.finish && !vm.stopping" ng-click="vm.stopUpload()" class="md-accent md-raised" aria-label="Stop Upload" translate="CONTACTMANAGER.STOP" translate-attr-aria-label="CONTACTMANAGER.STOP">\n STOP\n </md-button>\n <md-button ng-if="vm.result.finish && vm.result.errors.length" ng-csv="vm.getArrayErrors()" csv-header="vm.getHeaderErrors()" class="md-accent md-raised" aria-label="Export Errors" filename="contacts_import_errors.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon> {{\'CONTACTMANAGER.EXPORT_ERRORS\' | translate}}\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/contacts/merge/dialog.html",'<md-dialog class="cm-contact-dialog" aria-label="Merge Contact">\n <form name="contactForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <md-input-container class="md-block" flex-gt-sm>\n <label>Filter</label>\n <input ng-model="vm.searchTerm" name="searchTerm" ng-model-options="{ debounce: 300 }" ng-change="vm.change()">\n </md-input-container>\n\n <md-list flex>\n <md-subheader class="md-no-sticky" ng-hide="vm.contacts.length"><em>Filter doesn\'t match any contact</em></md-subheader>\n <md-list-item class="md-3-line" ng-repeat="contact in vm.contacts | filter:{ id: \'!\' + vm.contact.id}" ng-click="vm.showConfirm($event, vm.contact, contact)">\n <img ng-src="assets/images/avatars/profile.png" class="md-avatar" alt="{{contact.who}}" />\n <div class="md-list-item-text" layout="column">\n <h3>#{{ contact.id }} - {{ contact.firstName }} {{ contact.lastName }}</h3>\n <h4>{{ contact.email }}</h4>\n <p>{{ contact.phone }}</p>\n </div>\n </md-list-item>\n </md-list>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/globalCustomFields/create/dialog.html",'<md-dialog class="globalCustomField-dialog" aria-label="New GlobalCustomField">\n <form name="globalCustomFieldForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.ALIAS">Alias</label>\n <input type="" name="alias" ng-model="vm.globalCustomField.alias" ng-required="true" autofocus>\n\n <div ng-messages="globalCustomFieldForm[\'alias\'].$error" ng-show="globalCustomFieldForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.TYPE">Type</label>\n <md-select name="type" ng-model="vm.globalCustomField.type" required ng-disabled="!vm.newGlobalCustomField">\n <md-option ng-value="\'text\'">Text</md-option>\n <md-option ng-value="\'select\'">Select</md-option>\n <md-option ng-value="\'number\'">Number</md-option>\n <md-option ng-value="\'switch\'">Switch</md-option>\n <md-option ng-value="\'datetime\'">Datetime</md-option>\n </md-select>\n <div ng-messages="globalCustomFieldForm[\'type\'].$error" ng-show="globalCustomFieldForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.globalCustomField.type == \'select\'" class="md-block">\n <md-list>\n <md-list-item layout-margin>\n <md-button class="md-fab md-mini md-secondary" ng-click="vm.addItem(vm.globalCustomField.values);">\n <md-tooltip><span translate="CONTACTMANAGER.ADD">ADD</span></md-tooltip>\n <md-icon md-font-icon="icon-plus" aria-label="alert error"></md-icon>\n </md-button>\n <md-button ng-if="vm.globalCustomField.values.length" class="md-fab md-mini md-warn md-secondary" ng-click="vm.removeItems(vm.globalCustomField.values);">\n <md-tooltip><span translate="CONTACTMANAGER.DELETE_ALL">Delete All</span></md-tooltip>\n <md-icon md-font-icon="icon-delete" aria-label="alert error"></md-icon>\n </md-button>\n </md-list-item>\n </md-list>\n <md-list ng-sortable="vm.sortable">\n <md-list-item ng-repeat="item in vm.globalCustomField.values" style="border: 1px solid #ccc!important; border-radius: 7px;" layout-margin>\n <div>\n <md-icon class="s24" style="cursor:move" md-font-icon="icon-drag" aria-label="drag"></md-icon>\n <input type="text" ng-model="item.value" flex>\n </div>\n <md-button class="md-fab md-mini md-warn md-secondary" ng-click="vm.removeItem(vm.globalCustomField.values, $index);">\n <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n <md-icon md-font-icon="icon-delete" aria-label="alert error"></md-icon>\n </md-button>\n </md-list-item>\n </md-list>\n <md-list>\n <md-list-item ng-if="!vm.globalCustomField.values.length" layout="row" layout-align="center center">\n <em translate="CONTACTMANAGER.NO_AVAILABLE_ITEMS">No Available Items</em>\n </md-list-item>\n </md-list>\n </div>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.globalCustomField.required" aria-label="Required"><span translate="CONTACTMANAGER.REQUIRED">Required</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.globalCustomField.type == \'text\'" class="md-block">\n <md-switch ng-model="vm.globalCustomField.clickToAction" aria-label="ClickToAction"><span translate="CONTACTMANAGER.CLICKTOACTION">ClickToAction</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.globalCustomField.clickToAction" class="md-block">\n <label translate="CONTACTMANAGER.ACTIONTYPE">ActionType</label>\n <md-select name="actionType" ng-model="vm.globalCustomField.actionType">\n <md-option ng-value="\'voice\'">Voice</md-option>\n </md-select>\n <div ng-messages="globalCustomFieldForm[\'actionType\'].$error" ng-show="globalCustomFieldForm[\'actionType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.ACTIONTYPE_REQUIRED">ActionType field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newGlobalCustomField" ng-click="vm.saveGlobalCustomField()" class="send-button md-accent md-raised" ng-disabled="globalCustomFieldForm.$invalid || globalCustomFieldForm.$pristine" aria-label="SAVE" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newGlobalCustomField" ng-click="vm.addNewGlobalCustomField()" class="send-button md-accent md-raised" ng-disabled="globalCustomFieldForm.$invalid" aria-label="ADD" translate="CONTACTMANAGER.ADD_GLOBALCUSTOMFIELD" translate-attr-aria-label="CONTACTMANAGER.ADD_GLOBALCUSTOMFIELD">\n ADD GLOBALCUSTOMFIELD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newGlobalCustomField" ng-click="vm.deleteGlobalCustomField($event)" aria-label="DELETE" translate translate-attr-aria-label="CONTACTMANAGER.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/globalCustomFields/globalCustomFields.html",'<div id="globalCustomFields" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-account-circle" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="CONTACTMANAGER.GLOBALCUSTOMFIELDS">GlobalCustomFields</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="CONTACTMANAGER.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedGlobalCustomFields.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedGlobalCustomFields =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="CONTACTMANAGER.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-globalCustomFields-count">\n <span>{{vm.selectedGlobalCustomFields.length}}</span>\n <span translate="CONTACTMANAGER.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CONTACTMANAGER.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllGlobalCustomFields()" translate="CONTACTMANAGER.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectGlobalCustomFields()" translate="CONTACTMANAGER.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedGlobalCustomFields" csv-label="true" filename="globalCustomFields.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedGlobalCustomFields($event)" aria-label="delete selected" translate translate-attr-label="CONTACTMANAGER.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- GLOBALCUSTOMFIELD TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedGlobalCustomFields" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getGlobalCustomFields">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | translate }}</th>\n <th md-column md-order-by="alias">{{ \'CONTACTMANAGER.ALIAS\' | translate }}</th>\n <th md-column md-order-by="type">{{ \'CONTACTMANAGER.TYPE\' | translate }}</th>\n <th md-column md-order-by="required">{{ \'CONTACTMANAGER.REQUIRED\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.globalCustomFields.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="globalCustomField" md-select-id="id" ng-repeat="globalCustomField in vm.globalCustomFields.rows">\n <td md-cell ng-if="globalCustomField.userpic"><img class="avatar" alt="{{globalCustomField.name}}" ng-src="api/users/{{globalCustomField.id}}/avatar" /></td>\n <td md-cell ng-if="!globalCustomField.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{globalCustomField.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditGlobalCustomField($event, globalCustomField)" md-cell class="id ">{{globalCustomField.id}}</td>\n <td ng-click="vm.createOrEditGlobalCustomField($event, globalCustomField)" md-cell class="alias ">{{globalCustomField.alias}}</td>\n <td ng-click="vm.createOrEditGlobalCustomField($event, globalCustomField)" md-cell class="type ">{{ vm.arraytype[globalCustomField.type].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(globalCustomField, ev) : vm.createOrEditGlobalCustomField($event, globalCustomField)" md-cell class="required ">\n <md-icon md-colors="{color: {{globalCustomField.required ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{globalCustomField.required ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CONTACTMANAGER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(globalCustomField, $event )" translate="CONTACTMANAGER.EDIT_GLOBALCUSTOMFIELD">\n Edit GlobalCustomField\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(globalCustomField, $event )" translate="CONTACTMANAGER.DELETE_GLOBALCUSTOMFIELD">\n Delete GlobalCustomField\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.globalCustomFields.count}}" md-on-paginate="vm.getGlobalCustomFields" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / GLOBALCUSTOMFIELD TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD GLOBALCUSTOMFIELD BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-globalCustomField-button" ng-click="vm.createOrEditGlobalCustomField($event)" aria-label="add globalCustomField" translate translate-attr-aria-label="CONTACTMANAGER.ADD_GLOBALCUSTOMFIELD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD GLOBALCUSTOMFIELD BUTTON --\x3e\n</div>'),e.put("app/main/apps/contactmanager/views/lists/create/dialog.html",'<md-dialog class="list-dialog" aria-label="New List">\n <form name="listForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.list.name" ng-required="true" autofocus>\n\n <div ng-messages="listForm[\'name\'].$error" ng-show="listForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.list.description">\n\n <div ng-messages="listForm[\'description\'].$error" ng-show="listForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newList" ng-click="vm.saveList()" class="send-button md-accent md-raised" ng-disabled="listForm.$invalid || listForm.$pristine" aria-label="SAVE" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newList" ng-click="vm.addNewList()" class="send-button md-accent md-raised" ng-disabled="listForm.$invalid" aria-label="ADD" translate="CONTACTMANAGER.ADD_LIST" translate-attr-aria-label="CONTACTMANAGER.ADD_LIST">\n ADD LIST\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newList" ng-click="vm.deleteList($event)" aria-label="DELETE" translate translate-attr-aria-label="CONTACTMANAGER.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/lists/edit/agentadd/agentadd.html",'<md-dialog class="list-dialog" aria-label="list" ng-init="vm.onInit()">\n <form name="listForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="CONTACTMANAGER.AGENTADD_LIST">Add Agent to list</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/lists/edit/customFields/dialog.html",'<md-dialog class="customField-dialog" aria-label="New CustomField">\n <form name="customFieldForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.ALIAS">Alias</label>\n <input type="" name="alias" ng-model="vm.customField.alias" ng-required="true" autofocus>\n\n <div ng-messages="customFieldForm[\'alias\'].$error" ng-show="customFieldForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.TYPE">Type</label>\n <md-select name="type" ng-model="vm.customField.type" required ng-disabled="!vm.newCustomField">\n <md-option ng-value="\'text\'">Text</md-option>\n <md-option ng-value="\'select\'">Select</md-option>\n <md-option ng-value="\'number\'">Number</md-option>\n <md-option ng-value="\'switch\'">Switch</md-option>\n <md-option ng-value="\'datetime\'">Datetime</md-option>\n </md-select>\n <div ng-messages="customFieldForm[\'type\'].$error" ng-show="customFieldForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.customField.type == \'select\'" class="md-block">\n <md-list>\n <md-list-item layout-margin>\n <md-button class="md-fab md-mini md-secondary" ng-click="vm.addItem(vm.customField.values);">\n <md-tooltip><span translate="CONTACTMANAGER.ADD">ADD</span></md-tooltip>\n <md-icon md-font-icon="icon-plus" aria-label="alert error"></md-icon>\n </md-button>\n <md-button ng-if="vm.customField.values.length" class="md-fab md-mini md-warn md-secondary" ng-click="vm.removeItems(vm.customField.values);">\n <md-tooltip><span translate="CONTACTMANAGER.DELETE_ALL">Delete All</span></md-tooltip>\n <md-icon md-font-icon="icon-delete" aria-label="alert error"></md-icon>\n </md-button>\n </md-list-item>\n </md-list>\n <md-list ng-sortable="vm.sortable">\n <md-list-item ng-repeat="item in vm.customField.values" style="border: 1px solid #ccc!important; border-radius: 7px;" layout-margin>\n <div>\n <md-icon class="s24" style="cursor:move" md-font-icon="icon-drag" aria-label="drag"></md-icon>\n <input type="text" ng-model="item.value" flex>\n </div>\n <md-button class="md-fab md-mini md-warn md-secondary" ng-click="vm.removeItem(vm.customField.values, $index);">\n <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n <md-icon md-font-icon="icon-delete" aria-label="alert error"></md-icon>\n </md-button>\n </md-list-item>\n </md-list>\n <md-list>\n <md-list-item ng-if="!vm.customField.values.length" layout="row" layout-align="center center">\n <em translate="CONTACTMANAGER.NO_AVAILABLE_ITEMS">No Available Items</em>\n </md-list-item>\n </md-list>\n </div>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.customField.required" aria-label="Required"><span translate="CONTACTMANAGER.REQUIRED">Required</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.customField.type == \'text\'" class="md-block">\n <md-switch ng-model="vm.customField.clickToAction" aria-label="clickToAction"><span translate="CONTACTMANAGER.CLICKTOACTION">clickToAction</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.customField.clickToAction" class="md-block">\n <label translate="CONTACTMANAGER.ACTIONTYPE">actionType</label>\n <md-select name="actionType" ng-model="vm.customField.actionType">\n <md-option ng-value="\'voice\'">Voice</md-option>\n </md-select>\n <div ng-messages="customFieldForm[\'actionType\'].$error" ng-show="customFieldForm[\'actionType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.ACTIONTYPE_REQUIRED">actionType field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newCustomField" ng-click="vm.saveCustomField()" class="send-button md-accent md-raised" ng-disabled="customFieldForm.$invalid || customFieldForm.$pristine" aria-label="SAVE" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newCustomField" ng-click="vm.addNewCustomField()" class="send-button md-accent md-raised" ng-disabled="customFieldForm.$invalid" aria-label="ADD" translate="CONTACTMANAGER.ADD_CUSTOMFIELD" translate-attr-aria-label="CONTACTMANAGER.ADD_CUSTOMFIELD">\n ADD CUSTOMFIELD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newCustomField" ng-click="vm.deleteCustomField($event)" aria-label="DELETE" translate translate-attr-aria-label="CONTACTMANAGER.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/lists/edit/view.html",'<div id="contactmanager-list" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-lists-button md-icon-button" aria-label="Go to lists" ng-click="vm.gotoLists()" translate translate-attr-aria-label="CONTACTMANAGER.GO_TO_LISTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="list-image" hide-xs>\n <img ng-src="assets/images/business/lists.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.list.id}}\n <span ng-if="vm.list.name">{{vm.list.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="CONTACTMANAGER.CREATED_AT"></span> <span>{{vm.list.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.list, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="CONTACTMANAGER.GOTO_LIST"></span></md-tooltip>\n <md-icon md-font-icon="icon-forward"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.list, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="CONTACTMANAGER.AGENTADD_LIST"></span></md-tooltip>\n <md-icon md-font-icon="icon-eye"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveList()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (customFieldsForm.$invalid) || (voiceDispositionsForm.$invalid)" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="CONTACTMANAGER.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="list-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CONTACTMANAGER.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.list.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.list.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.PREFIX">Prefix</label>\n <input type="text" name="dialPrefix" ng-model="vm.list.dialPrefix" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'dialPrefix\'].$error" ng-show="generalForm[\'dialPrefix\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.PREFIX_REQUIRED">Prefix field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CONTACTMANAGER.CUSTOMFIELDS">CUSTOMFIELDS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="list-detail-form-container customfields md-background-bg md-whiteframe-1dp">\n <div ng-controller="ListCustomFieldsController as vm_dc" ng-init="vm_dc.init(vm.list, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedListCustomFields.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CONTACTMANAGER.CUSTOMFIELDS">CustomFields</span>\n <ms-search-bar on-search="vm_dc.getListCustomFields()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditListCustomField($event)" aria-label="add customField" translate translate-attr-label="CONTACTMANAGER.ADD_CUSTOMFIELD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedListCustomFields.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedListCustomFields.length}} {{vm_dc.selectedListCustomFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedListCustomFields" csv-label="true" filename="lists.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedListCustomFields($event)" aria-label="delete selected" translate translate-attr-label="CONTACTMANAGER.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedListCustomFields" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getListCustomFields">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'CONTACTMANAGER.ID\' | translate }}\n </th>\n <th md-column md-order-by="alias">\n {{ \'CONTACTMANAGER.ALIAS\' | translate }}\n </th>\n <th md-column md-order-by="type">\n {{ \'CONTACTMANAGER.TYPE\' | translate }}\n </th>\n <th md-column md-order-by="required">\n {{ \'CONTACTMANAGER.REQUIRED\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="customField" md-select-id="id" ng-repeat="customField in vm_dc.listCustomFields.rows">\n <td ng-click="vm_dc.createOrEditListCustomField($event, customField)" md-cell>\n {{customField.id}}\n </td>\n <td ng-click="vm_dc.createOrEditListCustomField($event, customField)" md-cell>\n {{customField.alias}}\n </td>\n <td ng-click="vm_dc.createOrEditListCustomField($event, customField)" md-cell>\n {{ vm_dc.arraytype[customField.type].option }} </td>\n\n <td ng-click="vm_dc.createOrEditListCustomField($event, customField)" md-cell class="required ">\n <md-icon md-colors="{color: {{customField.required ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{customField.required? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CONTACTMANAGER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditListCustomField($event, customField)" translate="CONTACTMANAGER.EDIT_CUSTOMFIELD">\n Edit CustomField\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(customField, $event)" translate="CONTACTMANAGER.DELETE_CUSTOMFIELD">\n Delete CustomField\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.listCustomFields.rows.length">\n <td md-cell colspan="9">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="CONTACTMANAGER.NO_CUSTOMFIELD_AVAILABLE">No customfield available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.listCustomFields.count}}" md-on-paginate="vm_dc.getListCustomFields" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CONTACTMANAGER.DISPOSITIONS">DISPOSITIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div ng-controller="ListDispositionsController as vm_dc" ng-init="vm_dc.init(vm.list, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="list-detail-form-container voicedispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedListDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CONTACTMANAGER.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add contactmanager dispositions" translate translate-attr-label="CONTACTMANAGER.ADD_DISPOSITION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" csv-label="true" filename="lists.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="CONTACTMANAGER.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_dc.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'CONTACTMANAGER.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'CONTACTMANAGER.DESCRIPTION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CONTACTMANAGER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(disposition, $event)" translate="TOOLS.DELETE_DISPOSITION">\n Delete Disposition\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/contactmanager/views/lists/lists.html",'<div id="lists" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-account-circle" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="CONTACTMANAGER.LISTS">Lists</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="CONTACTMANAGER.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedLists.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedLists =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="CONTACTMANAGER.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-lists-count">\n <span>{{vm.selectedLists.length}}</span>\n <span translate="CONTACTMANAGER.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CONTACTMANAGER.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllLists()" translate="CONTACTMANAGER.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectLists()" translate="CONTACTMANAGER.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedLists" csv-label="true" filename="lists.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedLists($event)" aria-label="delete selected" translate translate-attr-label="CONTACTMANAGER.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- LIST TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedLists" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getLists">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'CONTACTMANAGER.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'CONTACTMANAGER.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.lists.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="list" md-select-id="id" ng-repeat="list in vm.lists.rows">\n <td md-cell ng-if="list.userpic"><img class="avatar" alt="{{list.name}}" ng-src="api/users/{{list.id}}/avatar" /></td>\n <td md-cell ng-if="!list.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{list.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(list, ev) : vm.createOrEditList($event, list)" md-cell class="id ">{{list.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(list, ev) : vm.createOrEditList($event, list)" md-cell class="name ">{{list.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(list, ev) : vm.createOrEditList($event, list)" md-cell class="description ">{{list.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CONTACTMANAGER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(list, $event )" translate="CONTACTMANAGER.EDIT_LIST">\n Edit List\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotocontactsgoto(list, $event )" translate="CONTACTMANAGER.GOTOCONTACTS_LIST">\n goToContacts List\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.role === \'admin\' || vm.userProfile.downloadContactManagerLists">\n\n <md-button ng-click="vm.exportcsvcontactsexport(list, $event )" translate="CONTACTMANAGER.EXPORTCSVCONTACTS_LIST">\n exportCsvContacts List\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(list, $event )" translate="CONTACTMANAGER.AGENTADD_LIST">\n AgentAdd List\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(list, $event )" translate="CONTACTMANAGER.DELETE_LIST">\n Delete List\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.lists.count}}" md-on-paginate="vm.getLists" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / LIST TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD LIST BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-list-button" ng-click="vm.createOrEditList($event)" aria-label="add list" translate translate-attr-aria-label="CONTACTMANAGER.ADD_LIST">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD LIST BUTTON --\x3e\n</div>'),e.put("app/main/apps/dashboards/views/custom/custom.html",'<div ng-if="!vm.customDashboard">\n <p>Custom Dashboard not available...</p>\n</div>\n<div id="dashboard-custom" ng-if="vm.customDashboard" ng-cloak layout-fill>\n <md-content>\n <md-toolbar class="md-default md-accent filter-header">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm.customDashboard.name}}</span>\n <div flex></div>\n <div layout="column">\n <span class="font-size-10" translate="DASHBOARDS.FILTER_VOICE_QUEUES">Filter Voice Queues</span>\n <md-select placeholder="Select one or more queues" class="font-size-12 no-margin w-200" md-on-close="vm.onChangeVoiceQueues()" ng-model="vm.voiceQueuesSelected" multiple aria-label="voiceQueues">\n <md-option ng-value="voiceQueue.id" ng-repeat="voiceQueue in vm.voiceQueues.rows">{{ voiceQueue.name }}</md-option>\n </md-select>\n </div>\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-icon-button" ng-click="vm.goToEdit()" aria-label="goToEdit">\n <md-tooltip md-direction="top"><span translate="DASHBOARDS.EDIT"></span></md-tooltip>\n <md-icon md-font-icon="icon-table-edit"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <ms-widget-engine config="vm.customDashboard"></ms-widget-engine>\n </md-content>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/agent.general.html",'<div id="agent-general" layout="column">\n <div layout="row" layout-align="start center" class="md-primary-bg">\n <md-button class="md-raised no-margin width-50" style="border-radius: 0px" ng-class="{\'md-primary\': !vm.isActiveTab(0)}" ng-click="vm.onClickTab(0)" aria-label="home">\n <md-tooltip md-direction="bottom" md-delay="500">Home</md-tooltip>\n <md-icon md-font-icon="icon-home" class="icon"></md-icon>\n </md-button>\n\n <ms-tab-scroll style="overflow: hidden;">\n <div layout="column" ng-repeat="(key, tab) in vm.tabs | orderByDate " ng-click="vm.onClickTab(tab.id)" ng-class="{\'grey-50-bg\': vm.isActiveTab(tab.id)}">\n <div style="height: 34px" layout="row" layout-align="space-between center">\n <md-icon md-font-icon="{{tab.icon}}" class="icon s16 margin-horizontal-5" ng-class="tab.color + \'-fg\'">\n </md-icon>\n <span class="text-truncate font-size-12" ng-class="vm.isActiveTab(tab.id) ? \'black-fg\' : \'grey-300-fg\'">\n {{tab.title}}\n <span ng-if="tab.badges" class="badge md-white-fg md-red-bg">{{tab.badges}}</span></span>\n <md-button class="md-icon-button md-mini no-margin" ng-class="vm.isActiveTab(tab.id) ? \'md-primary\' : \'grey-300-fg\'" aria-label="close" ng-click="vm.closeTab(tab); $event.stopPropagation()">\n <md-icon md-font-icon="icon-close-circle-outline" class="icon s16"></md-icon>\n </md-button>\n </div>\n <div style="height: 2px" ng-class="vm.isActiveTab(tab.id) ? tab.color + \'-bg\' : \'\'"></div>\n </div>\n </ms-tab-scroll>\n </div>\n <div layout="row" class="agent-content" ng-if="vm.isActiveTab(0)" ng-style="{\'top\': vm.detectBrowser.browser == \'safari\' ? \'100px\' : \'36px\'}" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.html\'" ng-controller="AgentGeneralHomeController as vm_home" ng-init="vm_home.init(vm.license, vm.setting)"></div>\n <div ng-if="!vm.isActiveTab(0)" ng-repeat="(key, tab) in vm.tabs | orderByDate " ng-switch="tab.type">\n <div ng-switch-when="contact">\n <div class="agent-content" ms-scroll ng-if="vm.isActiveTab(tab.id)" ng-style="{\'top\': vm.detectBrowser.browser == \'safari\' ? \'100px\' : \'36px\'}" ng-include="\'app/main/apps/dashboards/views/general/agent/contact/agent.general.contact.html\'" ng-controller="AgentGeneralContactController as vm" ng-init="vm.init(tab,$parent.vm.license)"></div>\n </div>\n <div ng-switch-when="popup">\n <div ng-if="vm.isActiveTab(tab.id)" ms-scroll ng-include="\'app/main/apps/dashboards/views/general/agent/popup/agent.general.popup.html\'" ng-controller="AgentGeneralPopupController as vm" ng-init="vm.init(tab)"></div>\n </div>\n <div ng-switch-when="jscripty">\n <div class="agent-content" ms-scroll ng-if="vm.isActiveTab(tab.id)" ng-style="{\'top\': vm.detectBrowser.browser == \'safari\' ? \'100px\' : \'36px\'}" ng-include="\'app/main/apps/dashboards/views/general/agent/jscripty/agent.general.jscripty.html\'" ng-controller="AgentGeneralJscriptyController as vm" ng-init="vm.init(tab)"></div>\n </div>\n <div ng-switch-when="bot">\n <div id="interaction-app" ng-if="vm.isActiveTab(tab.id)" class="agent-content" ng-style="{\'top\': vm.detectBrowser.browser == \'safari\' ? \'100px\' : \'36px\'}" ng-include="\'app/main/apps/dashboards/views/general/agent/bot/agent.general.bot.html\'" ng-controller="AgentGeneralBotController as vm" ng-init="vm.init(tab, $parent.vm.setting)"></div>\n </div>\n <div ng-switch-when="interaction">\n <div id="interaction-app" ng-if="vm.isActiveTab(tab.id)" class="agent-content" ng-style="{\'top\': vm.detectBrowser.browser == \'safari\' ? \'100px\' : \'36px\'}" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.html\'" ng-controller="AgentGeneralInteractionController as vm" ng-init="vm.init(tab, $parent.vm.setting)">\n </div>\n </div>\n <div ng-switch-when="iframe">\n <div id="iframe" ng-if="vm.isActiveTab(tab.id)" class="agent-content" ng-style="{\'top\': vm.detectBrowser.browser == \'safari\' ? \'100px\' : \'36px\'}" ng-include="\'app/main/apps/dashboards/views/general/agent/iframe/agent.general.iframe.html\'" ng-controller="AgentGeneralIframeController as vm" ng-init="vm.init(tab, $parent.vm.setting)">\n </div>\n </div>\n </div>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/bot/agent.general.bot.html",'\x3c!-- CONTENT CARD --\x3e\n<md-content class="content-card" layout="row" layout-fill>\n\n <div ng-if="!vm.showInteraction" class="start-point" flex layout="column" layout-align="center center">\n <div class="big-circle md-whiteframe-4dp">\n <md-icon class="s128 md-accent pink-fg" md-font-icon="fas fa-robot"></md-icon>\n </div>\n <span class="app-title" translate="DASHBOARDS.WAITING">Waiting</span>\n <span class="hide show-gt-md secondary-text" translate="DASHBOARDS.LOADING_INTERACTION">We are loading the\n interaction...</span>\n </div>\n\n <div ng-if="vm.showInteraction" flex layout="row">\n <md-card flex="100" class="interaction">\n \x3c!-- TOOLBAR --\x3e\n <md-toolbar class="interaction-toolbar">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <md-icon md-font-icon="fas fa-robot" class="s20 pink-fg"></md-icon>\n <div class="padding-left-10" layout="column" layout-align="center start" flex>\n <div class="font-size-14" layout="row" layout-align="start center" layout-fill>\n <span>#{{vm.tab.data.uniqueid}} - {{vm.tab.title}}</span>\n </div>\n </div>\n <div layout="row" layout-align="end center">\n\n </div>\n </div>\n </md-toolbar>\n \x3c!-- / TOOLBAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <md-content id="interaction-content" name="{{\'interaction-content-\' + vm.tab.id}}" flex ms-scroll layout-wrap>\n <div class="interaction-messages">\n \x3c!-- MESSAGES --\x3e\n <div layout="row" ng-repeat="message in vm.messages.rows" class="md-padding message-row" ng-class="vm.getMessagesAlignment(message)">\n <img ng-if="message.direction ===\'in\'" src="assets/images/avatars/customer.png" class="avatar" />\n <img ng-if="message.direction ===\'out\'" class="avatar" src="assets/images/avatars/robot.png">\n\n <div class="bubble" ng-switch="message.direction">\n <div>\n <div ng-switch-when="in" class="time secondary-text">\n {{vm.tab.title}} - {{message.createdAt | date: \'medium\'}}\n </div>\n <div ng-switch-when="out" class="time secondary-text" layout="row" layout-align="end center">\n <div layout-padding>\n System - {{message.createdAt | date: \'medium\'}}\n </div>\n <div>\n <md-icon class="s18" md-font-icon="icon-check-all md-accent"></md-icon>\n </div>\n </div>\n </div>\n <div ng-bind-html="message.body | embed:vm.emojiOptions" class="message" layout="row" layout-align="end center"></div>\n </div>\n </div>\n \x3c!-- / MESSAGES --\x3e\n </div>\n </md-content>\n \x3c!-- / CONTENT --\x3e\n </md-card>\n </div>\n</md-content>\n\x3c!-- / CONTENT CARD --\x3e'),e.put("app/main/apps/dashboards/views/general/agent/contact/agent.general.contact.html",'<md-tabs md-selected="vm.currentTab" md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="DASHBOARDS.DETAIL">Detail</span>\n </md-tab-label>\n <md-tab-body>\n <md-content>\n <div layout="row" class="pr-10">\n <div layout="row" flex="75" class="flex-scrollable only-x">\n <md-card ng-repeat="call in vm.tab.calls track by call.uniqueid" class="call-info-card">\n <md-progress-linear md-mode="indeterminate" ng-if="vm.checkingCallStatus"></md-progress-linear>\n <md-card-header layout="row" layout-align="space-between">\n <span ng-if="call.answertime" class="text-boxed indigo-100-bg ml-0">\n <timer start-time="call.answertime"></timer>\n <md-tooltip md-direction="bottom">\n {{ \'DASHBOARDS.ELAPSED_ANSWERED\' | translate }}\n </md-tooltip>\n </span>\n <span ng-if="call.disposedAt" class="text-boxed amber-200-bg">\n <timer start-time="call.disposedAt"></timer>\n <md-tooltip md-direction="bottom">\n {{ \'DASHBOARDS.ELAPSED_DISPOSED\' | translate }}\n </md-tooltip>\n </span>\n <md-button class="md-icon-button no-margin reload-button" ng-click="vm.checkCallStatus(call)" ng-disabled="vm.checkingCallStatus">\n <md-icon md-font-icon="icon-reload" class="s22"></md-icon>\n <md-tooltip md-direction="bottom">\n {{ \'DASHBOARDS.RELOAD\' | translate }}\n </md-tooltip>\n </md-button>\n </md-card-header>\n <md-divider></md-divider>\n <md-card-content>\n <div layout="column" layout-align="space-between start" class="word-break-all mr-16">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="{{ call.routeId ? \'icon-phone-outgoing\' : \'icon-phone-incoming\'}}" class="s20 mr-5">\n </md-icon>\n <span class="h2" privacy ng-cloak>{{ call.routeId ? call.destcalleridnum : call.calleridnum }}</span>\n </div>\n\n <div class="subtitle h4 secondary-text" ng-if="call.calleridname && call.calleridname != \'<unknown>\' && !call.routeId">\n <md-icon md-font-icon="icon-account" class="s20"></md-icon>\n Name: <span privacy ng-cloak>{{ call.calleridname }}</span>\n </div>\n\n <div class="text h4 pt-8" ng-if="call.queue">\n <md-icon md-font-icon="icon-stackoverflow" class="s20"></md-icon>\n Queue: {{call.queue}}\n </div>\n <div class="text h4 pt-8" ng-if="call.variables.extravar">\n <md-icon md-font-icon="icon-minus" class="s20"></md-icon>\n Extra: {{call.variables.extravar}}\n </div>\n </div>\n <div layout="row" layout-align="center end" class="mt-8">\n <md-button ng-if="call.disposedAt" type="submit" ng-click="vm.disposeCall($event, call)" class="send-button md-accent md-raised mr-0 mv-0">\n {{ \'DASHBOARDS.DISPOSE\' | translate}}\n </md-button>\n </div>\n </md-card-content>\n </md-card>\n </div>\n <div flex="25" layout="row" layout-md="column" layout-sm="column" layout-align="end center" layout-align-md="center center">\n <md-button type="submit" ng-click="vm.mergeContact($event)" class="send-button md-raised md-accent ng-scope" ng-if="!vm.newContact" ng-disabled="vm.detailForm.$invalid || vm.customFieldsForm.$invalid || vm.socialForm.$invalid" aria-label="merge">\n <md-tooltip md-direction="top"><span translate="DASHBOARDS.MERGE"></span></md-tooltip>\n <md-icon md-font-icon="icon-source-fork"></md-icon>\n </md-button>\n <md-button type="submit" ng-click="vm.duplicateContact($event)" class="send-button md-raised md-accent ng-scope" ng-if="!vm.newContact" ng-disabled="vm.detailForm.$invalid || vm.customFieldsForm.$invalid || vm.socialForm.$invalid" aria-label="duplicate">\n <md-tooltip md-direction="top"><span translate="DASHBOARDS.DUPLICATE"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n <md-button type="submit" ng-click="vm.addNewContact($event)" class="send-button md-accent md-raised" ng-if="vm.newContact" ng-disabled="vm.detailForm.$invalid || vm.customFieldsForm.$invalid || vm.socialForm.$invalid" aria-label="add">\n {{ \'DASHBOARDS.ADD\'| translate }}\n </md-button>\n <md-button type="submit" ng-click="vm.saveContact($event)" class="send-button md-accent md-raised" ng-if="!vm.newContact" ng-disabled="vm.detailForm.$invalid || vm.customFieldsForm.$invalid || vm.socialForm.$invalid" aria-label="save">\n {{ \'DASHBOARDS.SAVE\' | translate }}\n </md-button>\n </div>\n </div>\n <div layout="row">\n <div layout="column" flex="75">\n <md-card layout-padding>\n <div class="h2 secondary-text text-truncate" translate="DASHBOARDS.PERSONAL_INFO">\n PERSONAL_INFO</div>\n <div class="subtitle secondary-text">\n <span translate="CONTACTMANAGER.CREATED_AT"></span>\n <span>{{vm.contact.createdAt | date:\'medium\'}}</span>\n </div>\n\n <form name="vm.detailForm" novalidate>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <div layout="row" flex>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.FIRSTNAME">First Name</label>\n <md-icon md-font-icon="icon-account" class="firstname"></md-icon>\n <input type="text" name="firstName" ng-model="vm.contact.firstName" class="text-truncate" required privacy ng-cloak>\n <div ng-messages="vm.detailForm.firstName.$error" ng-show="vm.detailForm.firstName.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.FIRSTNAME_REQUIRED">First name\n field is required</span>\n </div>\n </div>\n </md-input-container>\n <div>\n <md-menu ng-if="!vm.newContact">\n <md-button ng-disabled="!vm.license.jscripty" class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="JSCRIPTY PROJECTS" ng-click="$mdOpenMenu($event); vm.getJscriptyProjects();" aria-label="jscripty">\n <md-icon md-font-icon="icon-script"></md-icon>\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.loadingJscriptyProjects">\n <md-progress-circular class="md-accent margin-auto" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingJscriptyProjects && vm.jscriptyProjects.count > 0" ng-repeat="project in vm.jscriptyProjects.rows">\n <md-button ng-click="vm.addJscriptyTab(project, $event)">\n <md-icon md-font-icon="icon-script"></md-icon>\n {{project.name}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingJscriptyProjects && (!vm.jscriptyProjects || vm.jscriptyProjects.count === 0)">\n <md-button disabled translate="DASHBOARDS.NO_JSCRIPTY_PROJECTS_AVAILABLE">\n <md-icon md-font-icon="icon-script"></md-icon>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </div>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.LASTNAME">Last Name</label>\n <input type="text" name="lastName" ng-model="vm.contact.lastName" class="text-truncate" privacy ng-cloak>\n </md-input-container>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <div layout="row" flex>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.PHONE">Phone</label>\n <md-icon md-font-icon="icon-phone"></md-icon>\n <input type="text" name="phone" ng-model="vm.contact.phone" class="text-truncate" privacy ng-cloak>\n <div class="hint"><span ng-show="!vm.user.phoneBarRemoteControl || !vm.contact.phone" translate="CONTACTMANAGER.HELP.PHONEBAR_API"></span></div>\n </md-input-container>\n <div>\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="vm.contact.phone" prefix="vm.list ? vm.list.dialPrefix : null" license="vm.license" type="\'button\'"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </div>\n </div>\n <div flex="5"></div>\n <div layout="row" flex>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.MOBILE">Mobile</label>\n <md-icon md-font-icon="icon-cellphone-iphone"></md-icon>\n <input type="text" name="mobile" ng-model="vm.contact.mobile" class="text-truncate" privacy ng-cloak>\n <div class="hint"><span ng-show="!vm.user.phoneBarRemoteControl || !vm.contact.mobile" translate="CONTACTMANAGER.HELP.PHONEBAR_API"></span></div>\n </md-input-container>\n <div>\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="vm.contact.mobile" prefix="vm.list ? vm.list.dialPrefix : null" license="vm.license" type="\'button\'"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </div>\n <div>\n <md-menu ng-if="!vm.newContact">\n <md-button ng-disabled="!vm.license.messaging || !vm.hasPermission(107) || !vm.contact.mobile" class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="NEW SMS" ng-click="$mdOpenMenu($event); vm.getAccounts(\'sms\')" aria-label="sms">\n <md-icon md-font-icon="icon-message-text"></md-icon>\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.loadingAccounts">\n <md-progress-circular class="md-accent margin-auto" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && vm.smsAccounts.count > 0" ng-repeat="account in vm.smsAccounts.rows">\n <md-button ng-click="vm.composeInteraction($event, \'Sms\', account, vm.contact.mobile)">\n <md-icon md-font-icon="icon-message-text"></md-icon>\n {{account.name}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && (!vm.smsAccounts || vm.smsAccounts.count === 0)">\n <md-button disabled translate="DASHBOARDS.NO_SMS_ACCOUNTS_AVAILABLE">\n <md-icon md-font-icon="icon-message-text"></md-icon>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <div>\n <md-menu ng-if="!vm.newContact">\n <md-button ng-disabled="!vm.license.whatsapp || !vm.hasPermission(114) || !vm.contact.mobile" class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="NEW WHATSAPP" ng-click="$mdOpenMenu($event); vm.getAccounts(\'whatsapp\')" aria-label="whatsapp">\n <md-icon md-font-icon="icon-whatsapp"></md-icon>\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.loadingAccounts">\n <md-progress-circular class="md-accent margin-auto" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && vm.whatsappAccounts.count > 0" ng-repeat="account in vm.whatsappAccounts.rows">\n <md-button ng-click="vm.composeInteraction($event, \'Whatsapp\', account, vm.contact.mobile)">\n <md-icon md-font-icon="icon-whatsapp"></md-icon>\n {{account.name}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && (!vm.whatsappAccounts || vm.whatsappAccounts.count === 0)">\n <md-button disabled translate="DASHBOARDS.NO_WHATSAPP_ACCOUNTS_AVAILABLE">\n <md-icon md-font-icon="icon-whatsapp"></md-icon>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </div>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <div layout="row" flex>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.EMAIL">Email</label>\n <md-icon md-font-icon="icon-email" class="email"></md-icon>\n <input type="email" name="email" ng-model="vm.contact.email" class="text-truncate" privacy ng-cloak>\n <div ng-messages="vm.detailForm.firstName.$error" ng-show="vm.detailForm.firstName.$touched" role="alert">\n <div ng-message="email">\n <span translate="DASHBOARDS.ERRORS.EMAIL_MUST_VALID">Email must be a\n valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <div>\n <md-menu ng-if="!vm.newContact">\n <md-button ng-disabled="!vm.license.mail || !vm.hasPermission(106) || !vm.contact.email" class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="NEW EMAIL" ng-click="$mdOpenMenu($event); vm.getAccounts(\'mail\')" aria-label="email">\n <md-icon md-font-icon="icon-email"></md-icon>\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.loadingAccounts">\n <md-progress-circular class="md-accent margin-auto" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && vm.mailAccounts.count > 0" ng-repeat="account in vm.mailAccounts.rows">\n <md-button ng-click="vm.composeInteraction($event, \'Mail\', account, vm.contact.email)">\n <md-icon md-font-icon="icon-email"></md-icon>\n {{account.name}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && (!vm.mailAccounts || vm.mailAccounts.count === 0)">\n <md-button disabled translate="DASHBOARDS.NO_MAIL_ACCOUNTS_AVAILABLE">\n <md-icon md-font-icon="icon-email"></md-icon>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </div>\n <div flex="5"></div>\n <div layout="row" flex>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.FAX">Fax</label>\n <md-icon md-font-icon="icon-deskphone"></md-icon>\n <input type="text" name="fax" ng-model="vm.contact.fax" privacy ng-cloak>\n </md-input-container>\n <div>\n <md-menu ng-if="!vm.newContact">\n <md-button ng-disabled="!vm.license.fax || !vm.hasPermission(109) || !vm.contact.fax" class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="NEW FAX" ng-click="$mdOpenMenu($event); vm.getAccounts(\'fax\')" aria-label="fax">\n <md-icon md-font-icon="icon-deskphone"></md-icon>\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.loadingAccounts">\n <md-progress-circular class="md-accent margin-auto" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && vm.faxAccounts.count > 0" ng-repeat="account in vm.faxAccounts.rows">\n <md-button ng-click="vm.composeInteraction($event, \'Fax\', account, vm.contact.fax)">\n <md-icon md-font-icon="icon-deskphone"></md-icon>\n {{account.name}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && (!vm.faxAccounts || vm.faxAccounts.count === 0)">\n <md-button disabled translate="DASHBOARDS.NO_FAX_ACCOUNTS_AVAILABLE">\n <md-icon md-font-icon="icon-deskphone"></md-icon>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </div>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.DATE_OF_BIRTH">Date of Birth</label>\n <mdp-date-picker mdp-open-on-click mdp-format="YYYY-MM-DD" name="dateOfBirth" ng-model="vm.contact.dateOfBirth"></mdp-date-picker>\n </md-input-container>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.COMPANY">Company</label>\n <md-icon md-font-icon="icon-domain" class="email"></md-icon>\n <md-select name="company" ng-model="vm.contact.CompanyId">\n <md-option ng-value="company.id" ng-repeat="company in vm.tab.companies.rows">{{company.name}}\n </md-option>\n <md-option ng-value="null"><em translate="DASHBOARDS.NONE">None</em>\n </md-option>\n </md-select>\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.TAG">TAG</label>\n <md-icon md-font-icon="icon-tag"></md-icon>\n <md-select ng-model="vm.tab.Tags" multiple>\n <md-option ng-value="tag.id" ng-repeat="tag in vm.tab.tags.rows">\n {{tag.name}}</md-option>\n </md-select>\n </md-input-container>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.COUNTRY">Country</label>\n <md-icon md-font-icon="icon-home" class="country"></md-icon>\n <input type="text" name="country" ng-model="vm.contact.country" class="text-truncate">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.CITY">City</label>\n <input type="text" name="city" ng-model="vm.contact.city">\n </md-input-container>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.STREET">Street</label>\n <input type="text" name="street" ng-model="vm.contact.street">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.POSTALCODE">Postal Code</label>\n <input type="text" name="postalCode" ng-model="vm.contact.postalCode">\n </md-input-container>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate translate-attr-placeholder="DASHBOARDS.NOTES">Notes</label>\n <md-icon md-font-icon="icon-note"></md-icon>\n <textarea ng-model="vm.contact.description" type="text" max-rows="4"></textarea>\n </md-input-container>\n </div>\n </form>\n </md-card>\n <md-card layout-padding>\n <div class="h2 secondary-text text-truncate" translate="DASHBOARDS.SOCIAL">Social</div>\n <form name="vm.socialForm" novalidate>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Facebook</label>\n <md-icon md-font-icon="icon-facebook" class="facebook"></md-icon>\n <input type="text" name="facebook" ng-model="vm.contact.facebook" class="text-truncate">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Twitter</label>\n <md-icon md-font-icon="icon-twitter" class="twitter"></md-icon>\n <input type="text" name="twitter" ng-model="vm.contact.twitter" class="text-truncate">\n </md-input-container>\n </div>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Line</label>\n <md-icon md-font-icon="fab fa-line"></md-icon>\n <input type="text" name="line" ng-model="vm.contact.line" class="text-truncate">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Viber</label>\n <md-icon md-font-icon="fab fa-viber"></md-icon>\n <input type="text" name="viber" ng-model="vm.contact.viber" class="text-truncate">\n </md-input-container>\n </div>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label>WeChat</label>\n <md-icon md-font-icon="fab fa-weixin"></md-icon>\n <input type="text" name="wechat" ng-model="vm.contact.wechat" class="text-truncate">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Telegram</label>\n <md-icon md-font-icon="icon-telegram"></md-icon>\n <input type="text" name="telegram" ng-model="vm.contact.telegram" class="text-truncate">\n </md-input-container>\n </div>\n </form>\n </md-card>\n </div>\n <div flex="25" layout="column" layout-padding>\n <md-card flex="100" layout-padding>\n <div class="h2 secondary-text text-truncate" translate="DASHBOARDS.CUSTOM_FIELDS">CUSTOM\n FIELDS</div>\n <form name="vm.customFieldsForm" novalidate>\n\n \x3c!-- START INPUT LIST --\x3e\n <md-input-container class="md-block">\n <label translate translate-attr-placeholder="DASHBOARDS.LIST">List</label>\n <md-select name="list" ng-disabled="!vm.newContact" ng-model="vm.contact.ListId" ng-change="vm.getCustomFields(vm.contact.ListId)" required>\n <md-optgroup label="Lists">\n <md-option ng-value="list.id" ng-repeat="list in vm.lists.rows">#{{list.id}} - {{list.name}}\n </md-option>\n </md-optgroup>\n </md-select>\n </md-input-container>\n \x3c!-- END INPUT LIST --\x3e\n\n <div ng-repeat="customField in vm.tab.customFields.rows" ng-switch="customField.type">\n <md-input-container class="md-block" ng-switch-when="datetime">\n <label>{{customField.alias}}<span ng-if="customField.required">*</span></label>\n <div ng-init="vm.contact[\'cf_\' + customField.id] = vm.getDateFromString(vm.contact[\'cf_\' + customField.id])">\n <mdp-date-picker mdp-open-on-click ng-required="customField.required" mdp-format="YYYY-MM-DD" ng-model="vm.contact[\'cf_\' + customField.id]">\n </mdp-date-picker>\n <mdp-time-picker mdp-open-on-click mdp-placeholder="Time" ng-required="customField.required" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.contact[\'cf_\' + customField.id]">\n </mdp-time-picker>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-switch-when="select">\n <label>{{customField.alias}}<span ng-if="customField.required">*</span></label>\n <md-select ng-model="vm.contact[\'cf_\' + customField.id]" ng-required="customField.required">\n <md-option ng-repeat="value in customField.values" ng-value="value.value">\n {{value.value}}</md-option>\n <md-option ng-value="null"><em translate="CONTACTMANAGER.NONE">None</em>\n </md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block" ng-switch-when="switch">\n <md-switch aria-label="{{customField.alias}}" ng-model="vm.contact[\'cf_\' + customField.id]" ng-true-value="1" ng-false-value="0">\n {{customField.alias}}<span ng-if="customField.required">*</span>\n </md-switch>\n </md-input-container>\n\n <md-input-container class="md-block" ng-switch-default>\n <div layout-gt-sm="row" class="layout-gt-sm-row"></div>\n <div layout="row" flex>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>{{customField.alias}}<span ng-if="customField.required">*</span></label>\n <input type="{{customField.type}}" ng-model="vm.contact[\'cf_\' + customField.id]" ng-required="customField.required">\n </md-input-container>\n <ms-click-to-call ng-if="customField.clickToAction && customField.actionType === \'voice\'" target="vm.contact[\'cf_\' + customField.id]" prefix="vm.list ? vm.list.dialPrefix : null" license="vm.license" type="\'button\'"></ms-click-to-call>\n </div>\n </md-input-container>\n </div>\n </form>\n </md-card>\n </div>\n </div>\n </md-content>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="DASHBOARDS.CUSTOMER_JOURNEY">Customer Journey</span>\n </md-tab-label>\n <md-tab-body>\n <md-content class="md-padding" id="journey-content">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.html\'">\n </div>\n </md-content>\n </md-tab-body>\n </md-tab>\n</md-tabs>'),e.put("app/main/apps/dashboards/views/general/agent/contact/dispose/dialog.html",'<md-dialog class="agent-dialog" aria-label="agent dispose">\n <form name="disposition" class="md-inline-form" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="DASHBOARDS.DISPOSE"></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" ng-if="!vm.call.mandatoryDisposition">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div ng-if="!vm.isReschedule">\n <md-input-container class="md-block">\n <label translate="DASHBOARDS.DISPOSITION">Disposition</label>\n <md-select name="disposition" ng-model="vm.firstLevelDisposition" ng-change="vm.onDispositionChange(\'first\')" required>\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'first\' } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n <div ng-messages="dispositionForm.disposition.$error" ng-show="dispositionForm.disposition.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.firstLevelDisposition && vm.anySecondLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="DASHBOARDS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</label>\n <md-select name="secondLevelDisposition" ng-model="vm.secondLevelDisposition" ng-change="vm.onDispositionChange(\'second\')">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'second\', ParentId: vm.firstLevelDisposition.id } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.secondLevelDisposition" ng-click="vm.clearDispositionSelection(\'second\')" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear second level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <div ng-if="vm.secondLevelDisposition && vm.anyThirdLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="DASHBOARDS.THIRD_LEVEL_DISPOSITION">Third Level Disposition</label>\n <md-select name="thirdLevelDisposition" ng-model="vm.thirdLevelDisposition" ng-change="vm.onDispositionChange(\'third\')">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'third\', ParentId: vm.secondLevelDisposition.id } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.thirdLevelDisposition" ng-click="vm.clearDispositionSelection(\'third\')" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear third level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <md-input-container class="md-block">\n <label translate="DASHBOARDS.NOTE">Note</label>\n <textarea ng-model="vm.note" md-maxlength="255" max-rows="5" autofocus></textarea>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.availableCalls === 1">\n <md-switch ng-model="vm.autoClose" aria-label="Auto Close">\n <span translate="DASHBOARDS.AUTOCLOSE">Automatically close contact tab after disposal</span>\n </md-switch>\n </md-input-container>\n </div>\n <div ng-if="vm.isReschedule">\n <div layout="row">\n <div flex class="md-block">\n <mdp-date-picker mdp-open-on-click required name="date" mdp-placeholder="Date" mdp-format="YYYY-MM-DD" mdp-min-date="vm.hopper.minDate" ng-model="vm.hopper.dateTime">\n <div ng-messages="disposition.date.$error" ng-show="disposition.date.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.DATE_REQUIRED">Date is required</span>\n </div>\n <div ng-message="format">\n <span translate="DASHBOARDS.ERRORS.DATE_INVALID">Date is invalid</span>\n </div>\n </div>\n </mdp-date-picker>\n </div>\n\n <div flex class="md-block">\n <mdp-time-picker mdp-open-on-click required name="time" mdp-placeholder="Time" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.hopper.dateTime">\n <div ng-messages="disposition.time.$error" ng-show="disposition.time.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.TIME_REQUIRED">Time is required</span>\n </div>\n <div ng-message="format">\n <span translate="DASHBOARDS.ERRORS.TIME_INVALID">Time is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </div>\n <div ng-if="!vm.dialerCall">\n <md-input-container ng-if="vm.recallme && vm.user.selectRecallMeCampaign" class="md-block">\n <label translate="DASHBOARDS.CAMPAIGN">Campaign</label>\n <md-select name="queueCampaign" ng-model="vm.queueCampaign" required>\n <md-option ng-value="queueCampaign" ng-repeat="queueCampaign in vm.queueCampaigns.rows">\n <md-icon md-font-icon="icon-checkbox-blank-circle" ng-class="{\'green-fg\': queueCampaign.dialActive}" aria-label="Status">\n </md-icon>\n {{ queueCampaign.name }}\n </md-option>\n </md-select>\n <div ng-messages="disposition.queueCampaign.$error" ng-show="disposition.queueCampaign.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.CAMPAIGN_REQUIRED">Campaign field is required</span>\n </div>\n </div>\n </md-input-container>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions ng-if="!vm.isReschedule" layout="row">\n <md-button ng-disabled="disposition.$invalid || disposition.$pristine" class="send-button md-raised md-accent" ng-click="vm.saveDisposition()" ms-dialog-spinner>\n {{(vm.selectedDisposition.name ? \'DASHBOARDS.DISPOSE\' : \'DASHBOARDS.SAVE\') | translate}}\n </md-button>\n <md-button class="send-button md-raised md-primary" translate="DASHBOARDS.RESCHEDULE" ng-click="vm.saveDisposition(\'reschedule\')">\n Reschedule\n </md-button>\n <md-button class="send-button md-accent md-raised" translate="DASHBOARDS.RECALLME" ng-click="vm.saveDisposition(\'recallme\')">\n Recall Me\n </md-button>\n <span flex></span>\n <md-button ng-if="vm.hasBlackLists" class="md-raised md-warn" translate="DASHBOARDS.BLACKLIST" ng-click="vm.saveDisposition(\'blacklist\')">\n Blacklist\n </md-button>\n </md-dialog-actions>\n <md-dialog-actions ng-if="vm.isReschedule" layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.saveReschedule()" class="send-button md-accent md-raised" ng-disabled="disposition.$invalid || disposition.$pristine || vm.disable" aria-label="SAVE" translate="DASHBOARDS.SAVE" translate-attr-aria-label="DASHBOARDS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/contact/reschedule/dialog.html",'<md-dialog class="agent-dialog" aria-label="New Agent">\n <form name="dateTime" class="md-inline-form" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div layout="row">\n <div flex class="md-block">\n <mdp-date-picker mdp-open-on-click required name="date" mdp-placeholder="Date" mdp-format="YYYY-MM-DD" mdp-min-date="vm.hopper.minDate" ng-model="vm.hopper.dateTime">\n <div ng-messages="dateTime.date.$error" ng-show="dateTime.date.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.DATE_REQUIRED">Date is required</span>\n </div>\n <div ng-message="format">\n <span translate="DASHBOARDS.ERRORS.DATE_INVALID">Date is invalid</span>\n </div>\n </div>\n </mdp-date-picker>\n </div>\n\n <div flex class="md-block">\n <mdp-time-picker mdp-open-on-click required name="time" mdp-placeholder="Time" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.hopper.dateTime">\n <div ng-messages="dateTime.time.$error" ng-show="dateTime.time.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.TIME_REQUIRED">Time is required</span>\n </div>\n <div ng-message="format">\n <span translate="DASHBOARDS.ERRORS.TIME_INVALID">Time is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-disabled="vm.disable" ng-click="vm.saveDialog()" class="send-button md-accent md-raised" ng-disabled="dateTime.$invalid || dateTime.$pristine" aria-label="SAVE" translate="DASHBOARDS.SAVE" translate-attr-aria-label="DASHBOARDS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/contact/selection/dialog.html",'<md-dialog ng-init="vm.onInit()" class="contact-trigger-dialog" aria-label="Select contact" ng-cloak>\n <md-toolbar class="red-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ \'DASHBOARDS.SELECT_CONTACT\' | translate }}</span>\n </div>\n </md-toolbar>\n <md-dialog-content class="h-400 pv-16" ms-scroll>\n <div layout="row" class="p-10">\n <span class="font-size-16">{{ \'DASHBOARDS.MULTIPLE_CONTACTS_FOUND\' | translate }}<strong> {{ vm.callNumber }}</strong>.</span>\n <span class="font-size-16"> {{ \'DASHBOARDS.WHICH_ONE_TO_USE\' | translate }}</span>\n </div>\n <md-grid-list md-cols-xs="1" md-cols="2" md-row-height="fit" ng-class="vm.paginatedContacts[vm.page - 1].length > 2 ? \'two-rows-layout\' : \'one-row-layout\'" flex>\n <md-grid-tile ng-repeat="contact in vm.paginatedContacts[vm.page - 1]" md-rowspan="1">\n <md-card layout="column" class="contact-info" no-padding no-margin ng-click="vm.selectedContact = contact;" ng-class="{ \'light-blue-50-bg\' : vm.selectedContact && vm.selectedContact.id === contact.id }" flex>\n <md-card-title class="pt-16">\n <md-card-title-text layout-align="center start">\n <span class="font-size-16 text-bold">#{{ contact.id }} -\n <span privacy ng-cloak>{{ contact.firstName }} {{ contact.lastName }}</span>\n </span>\n <em class="font-size-12">{{ \'DASHBOARDS.LAST_UPDATED\' | translate }}: {{ contact.updatedAt }}</em>\n <span class="font-size-12">{{ \'DASHBOARDS.LIST\' | translate }}: {{ vm.lists[contact.ListId] }}</span>\n </md-card-title-text>\n <md-button class="md-icon-button no-margin" aria-label="Selected">\n <md-icon md-font-icon="{{ vm.selectedContact && vm.selectedContact.id === contact.id ? \'icon-checkbox-marked-circle\' : \'icon-checkbox-blank-circle-outline\' }}" ng-class="{ \'green-fg\': vm.selectedContact && vm.selectedContact.id === contact.id }"></md-icon>\n </md-button>\n </md-card-title>\n <md-divider></md-divider>\n <md-card-content layout="row" layout-align="center start" class="p-10">\n <span class="font-size-16">{{ \'DASHBOARDS.MATCHING_FIELD\' | translate }}:\n <strong privacy ng-cloak>{{ contact.matchingField }}</strong>\n </span>\n </md-card-content>\n </md-card>\n </md-grid-tile>\n </md-grid-list>\n </md-dialog-content>\n <md-dialog-actions layout="row">\n <div ng-if="vm.paginatedContacts.length > 1" layout="row" layout-align="center center" flex>\n <md-button ng-click="vm.page = vm.page - 1;" class="md-icon-button no-margin" ng-class="{ \'hidden\': vm.page <= 1 }" aria-label="Previous page">\n <md-icon md-font-icon="icon-chevron-double-left"></md-icon>\n </md-button>\n <span>{{ \'DASHBOARDS.PAGE\' | translate }} {{ vm.page }} {{ \'DASHBOARDS.OF\' | translate }}\n {{ vm.paginatedContacts.length }}</span>\n <md-button ng-click="vm.page = vm.page + 1;" class="md-icon-button no-margin" ng-class="{ \'hidden\': !vm.paginatedContacts[vm.page] }" aria-label="Next page">\n <md-icon md-font-icon="icon-chevron-double-right"></md-icon>\n </md-button>\n </div>\n <md-button ng-click="vm.selectContact()" class="select-button md-accent md-raised" ng-disabled="!vm.selectedContact" aria-label="Select" translate="DASHBOARDS.SELECT" translate-attr-aria-label="DASHBOARDS.SELECT">\n SELECT\n </md-button>\n </md-dialog-actions>\n</md-dialog>vc'),e.put("app/main/apps/dashboards/views/general/agent/home/abandoned/agent.general.abandoned.html",'<div ng-cloak>\n <md-content>\n <md-tabs md-selected="vm.selectedTab" md-dynamic-height md-border-bottom>\n <md-tab ng-if="vm_home.hasPermission(110)" label="{{\'DASHBOARDS.VOICE\' | translate}}">\n <md-content ng-if="vm.selectedTab === 0" ng-include="\'app/main/apps/dashboards/views/general/agent/home/abandoned/voice/agent.general.abandoned.voice.html\'" ng-controller="AgentHomeAbandonedVoiceController as vm_voice">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(110) && vm_home.license.dialer" label="{{\'DASHBOARDS.MOTION_BULL\' | translate}}">\n <md-content ng-if="vm.selectedTab === 1" ng-include="\'app/main/apps/dashboards/views/general/agent/home/abandoned/bull/agent.general.abandoned.bull.html\'" ng-controller="AgentHomeAbandonedBullController as vm_bull">\n </md-content>\n </md-tab>\n </md-tabs>\n </md-content>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/abandoned/bull/agent.general.abandoned.bull.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header blue-bg" ng-class="{\'h-128\' : vm_bull.isSearchBarVisible === true}">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.ABANDONEDQUEUECALLS">ABANDONED QUEUE CALLS</span>\n <ms-search-bar on-search="vm_bull.getAbandonedCalls()" query="vm_bull.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm_bull.isSearchBarVisible"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_bull.quickFilters" query="vm_bull.query" search="vm_bull.getAbandonedCalls()"></ms-quick-filter>\n <md-button class="md-icon-button reload-list" ng-click="vm_bull.refresh && vm_bull.refreshAbandonedCalls($event)" aria-label="Reload" translate translate-attr-label="DASHBOARDS.RELOAD">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip ng-if="vm_bull.showTooltip" md-visible="vm_bull.showTooltip">\n {{\'DASHBOARDS.CLICKRELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_bull.promise">\n <thead md-head md-order="vm_bull.query.sort" md-on-reorder="vm_bull.getAbandonedCalls">\n <tr md-row>\n <th md-column md-order-by="id">{{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column md-order-by="calleridname">{{\'DASHBOARDS.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="calleridnum">{{\'DASHBOARDS.PHONE\' | translate}}</th>\n <th md-column md-order-by="queue">{{\'DASHBOARDS.QUEUE\' | translate}}</th>\n <th md-column md-order-by="queuecallerabandonAt">{{\'DASHBOARDS.ABANDONAT\' | translate}}</th>\n <th md-column md-order-by="queuecallerexitAt">{{\'DASHBOARDS.QUEUECALLEREXITAT\' | translate}}</th>\n <th md-column md-order-by="queuecallerexitreason">{{\'DASHBOARDS.QUEUECALLEREXITREASON\' | translate}}\n </th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="secondDisposition">{{\'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="thirdDisposition">{{\'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.RESERVED\' | translate}}</th>\n <th md-column md-order-by="lastAssignedTo">{{\'DASHBOARDS.LASTASSIGNEDTO\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_bull.abandonedCalls.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="abandonedCall in vm_bull.abandonedCalls.rows">\n <td md-cell class="id">{{abandonedCall.id}}</td>\n <td md-cell class="firstName" privacy ng-cloak>{{abandonedCall.calleridname}}</td>\n <td md-cell class="phone">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="abandonedCall.calleridnum" license="vm_home.license" disabled="abandonedCall.lastAssignedTo !== vm_bull.currentUser.name">\n </ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="list">{{vm_bull.queuesMap[abandonedCall.queue]}}</td>\n <td md-cell class="list">\n {{abandonedCall.queuecallerabandonAt ? (abandonedCall.queuecallerabandonAt | formatdate) : (abandonedCall.queuecallerexitAt | formatdate) }}\n </td>\n <td md-cell class="list">\n {{abandonedCall.queuecallerexitAt ? (abandonedCall.queuecallerexitAt | formatdate) : undefined }}\n </td>\n <td md-cell class="list">{{abandonedCall.queuecallerexitreason}}</td>\n <td md-cell class="list">{{ abandonedCall.disposition }}</td>\n <td md-cell class="list">{{ abandonedCall.secondDisposition }}</td>\n <td md-cell class="list">{{ abandonedCall.thirdDisposition }}</td>\n <td md-cell class="actions">\n <md-switch no-margin ng-if="abandonedCall.lastAssignedTo === vm_bull.currentUser.name || !abandonedCall.lastAssignedTo" ng-disabled="vm_bull.disable[abandonedCall.id]" ng-model="abandonedCall.assigned" aria-label="reserved" ng-change="vm_bull.reserved(abandonedCall)">\n </md-switch>\n </td>\n <td md-cell class="list">{{abandonedCall.lastAssignedTo}}</td>\n <td md-cell class="actions">\n <md-menu ng-if="abandonedCall.lastAssignedTo === vm_bull.currentUser.name">\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="1">\n <md-menu-item>\n <md-button ng-click="vm_bull.dispose(abandonedCall)" class="text-capitalize" translate="DASHBOARDS.DISPOSE">Dispose\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-limit="vm_bull.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_bull.query.page" md-total="{{vm_bull.abandonedCalls.count}}" md-on-paginate="vm_bull.getAbandonedCalls" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/abandoned/dispose/dialog.html",'<md-dialog class="agent-dialog" aria-label="agent dispose">\n <form name="disposition" class="md-inline-form" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="DASHBOARDS.DISPOSE"></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div>\n <md-input-container class="md-block">\n <label translate="DASHBOARDS.DISPOSITION">Disposition</label>\n <md-select name="disposition" ng-model="vm.firstLevelDisposition" ng-change="vm.onDispositionChange(\'first\')" required>\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'first\' } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n <div ng-messages="dispositionForm.disposition.$error" ng-show="dispositionForm.disposition.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.firstLevelDisposition && vm.anySecondLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="DASHBOARDS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</label>\n <md-select name="secondLevelDisposition" ng-model="vm.secondLevelDisposition" ng-change="vm.onDispositionChange(\'second\')">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'second\', ParentId: vm.firstLevelDisposition.id } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.secondLevelDisposition" ng-click="vm.clearDispositionSelection(\'second\')" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear second level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <div ng-if="vm.secondLevelDisposition && vm.anyThirdLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="DASHBOARDS.THIRD_LEVEL_DISPOSITION">Third Level Disposition</label>\n <md-select name="thirdLevelDisposition" ng-model="vm.thirdLevelDisposition" ng-change="vm.onDispositionChange(\'third\')">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'third\', ParentId: vm.secondLevelDisposition.id } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.thirdLevelDisposition" ng-click="vm.clearDispositionSelection(\'third\')" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear third level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <md-input-container class="md-block">\n <label translate="DASHBOARDS.NOTE">Note</label>\n <textarea ng-model="vm.note" md-maxlength="255" max-rows="5" autofocus></textarea>\n </md-input-container>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button ng-disabled="disposition.$invalid || disposition.$pristine" class="send-button md-raised md-accent" ng-click="vm.saveDisposition()">\n'+" {{(vm.selectedDisposition.name ? 'DASHBOARDS.DISPOSE' : 'DASHBOARDS.SAVE') | translate}}\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>"),e.put("app/main/apps/dashboards/views/general/agent/home/abandoned/voice/agent.general.abandoned.voice.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header blue-bg" ng-class="{\'h-128\' : vm_voice.isSearchBarVisible === true}">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.ABANDONEDQUEUECALLS">ABANDONED QUEUE CALLS</span>\n <ms-search-bar on-search="vm_voice.getAbandonedCalls()" query="vm_voice.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm_voice.isSearchBarVisible"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_voice.quickFilters" query="vm_voice.query" search="vm_voice.getAbandonedCalls()"></ms-quick-filter>\n <md-button class="md-icon-button reload-list" ng-click="vm_voice.refresh && vm_voice.refreshAbandonedCalls($event)" aria-label="Reload" translate translate-attr-label="DASHBOARDS.RELOAD">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip ng-if="vm_voice.showTooltip" md-visible="vm_voice.showTooltip">\n {{\'DASHBOARDS.CLICKRELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_voice.promise">\n <thead md-head md-order="vm_voice.query.sort" md-on-reorder="vm_voice.getAbandonedCalls">\n <tr md-row>\n <th md-column md-order-by="id">{{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column md-order-by="calleridname">{{\'DASHBOARDS.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="calleridnum">{{\'DASHBOARDS.PHONE\' | translate}}</th>\n <th md-column md-order-by="queue">{{\'DASHBOARDS.QUEUE\' | translate}}</th>\n <th md-column md-order-by="queuecallerabandonAt">{{\'DASHBOARDS.ABANDONAT\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="secondDisposition">{{\'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="thirdDisposition">{{\'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.RESERVED\' | translate}}</th>\n <th md-column md-order-by="lastAssignedTo">{{\'DASHBOARDS.LASTASSIGNEDTO\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_voice.abandonedCalls.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="abandonedCall in vm_voice.abandonedCalls.rows">\n <td md-cell class="id">{{abandonedCall.id}}</td>\n <td md-cell class="firstName" privacy ng-cloak>{{abandonedCall.calleridname}}</td>\n <td md-cell class="phone">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="abandonedCall.calleridnum" license="vm_home.license" disabled="abandonedCall.lastAssignedTo !== vm_voice.currentUser.name">\n </ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="list">{{vm_voice.queuesMap[abandonedCall.queue]}}</td>\n <td md-cell class="list">\n {{abandonedCall.queuecallerabandonAt ? (abandonedCall.queuecallerabandonAt | formatdate) : (abandonedCall.queuecallerexitAt | formatdate) }}\n </td>\n <td md-cell class="list">{{ abandonedCall.disposition }}</td>\n <td md-cell class="list">{{ abandonedCall.secondDisposition }}</td>\n <td md-cell class="list">{{ abandonedCall.thirdDisposition }}</td>\n <td md-cell class="actions">\n <md-switch no-margin ng-if="abandonedCall.lastAssignedTo === vm_voice.currentUser.name || !abandonedCall.lastAssignedTo" ng-disabled="vm_voice.disable[abandonedCall.id]" ng-model="abandonedCall.assigned" aria-label="reserved" ng-change="vm_voice.reserved(abandonedCall)">\n </md-switch>\n </td>\n <td md-cell class="list">{{abandonedCall.lastAssignedTo}}</td>\n <td md-cell class="actions">\n <md-menu ng-if="abandonedCall.lastAssignedTo === vm_voice.currentUser.name">\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="1">\n <md-menu-item>\n <md-button ng-click="vm_voice.dispose(abandonedCall)" class="text-capitalize" translate="DASHBOARDS.DISPOSE">Dispose\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-limit="vm_voice.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_voice.query.page" md-total="{{vm_voice.abandonedCalls.count}}" md-on-paginate="vm_voice.getAbandonedCalls" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/agent.general.home.html",'<div layout="column" layout-align="start center" class="md-primary-bg width-50" ms-scroll>\n <div ng-repeat="node in vm_home.navigation">\n <div ng-repeat="home in node.children">\n <md-button ng-repeat="button in home.children | orderBy:\'weight\'" ng-if="!button.hidden()" class="md-raised width-50 height-50 no-margin" style="border-radius: 0px" aria-label="{{button.state}}" ng-click="vm_home.changeSidebarTab(button)" ng-class="{\'md-primary\': vm_home.sidebar != button.state}">\n <md-tooltip md-direction="right" md-delay="500"><span translate="{{button.translate}}"></span>\n </md-tooltip>\n <md-icon md-font-icon="{{button.icon}}" ng-class="button.iconClass"></md-icon>\n </md-button>\n </div>\n </div>\n</div>\n<div layout="column" flex>\n <div layout="column" flex>\n <div ng-switch="vm_home.sidebar" style="overflow-y: auto" flex>\n <div ng-switch-when="agentPresence">\n <div ng-if="vm_home.hasPermission(115)" ng-include="\'app/main/apps/dashboards/views/general/agent/home/presence/agent.general.presence.html\'" ng-controller="AgentHomePresenceController as vm"></div>\n <div ng-if="!vm_home.hasPermission(115)" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="contacts">\n <div ng-if="vm_home.hasPermission(102) && vm_home.license.cm" ng-include="\'app/main/apps/dashboards/views/general/agent/home/contacts/agent.general.contacts.html\'" ng-controller="AgentHomeContactsController as vm"></div>\n <div ng-if="!vm_home.hasPermission(102) || !vm_home.license.cm" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="mycontacts">\n <div ng-if="vm_home.hasPermission(103) && vm_home.license.cm" ng-include="\'app/main/apps/dashboards/views/general/agent/home/mycontacts/agent.general.mycontacts.html\'" ng-controller="AgentHomeMyContactsController as vm"></div>\n <div ng-if="!vm_home.hasPermission(103) || !vm_home.license.cm" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="scheduled">\n <div ng-if="vm_home.hasPermission(113) && vm_home.license.dialer" ng-include="\'app/main/apps/dashboards/views/general/agent/home/scheduled/agent.general.scheduled.html\'" ng-controller="AgentHomeScheduledCallsController as vm"></div>\n <div ng-if="!vm_home.hasPermission(113) || !vm_home.license.dialer" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="voice">\n <div ng-if="vm_home.hasPermission(110) && vm_home.license.voice" ng-include="\'app/main/apps/dashboards/views/general/agent/home/voice/agent.general.voice.html\'" ng-controller="AgentHomeVoiceController as vm"></div>\n <div ng-if="!vm_home.hasPermission(110) || !vm_home.license.voice" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="abandoned">\n <div ng-if="vm_home.hasPermission(111) && vm_home.license.voice" ng-include="\'app/main/apps/dashboards/views/general/agent/home/abandoned/agent.general.abandoned.html\'" ng-controller="AgentHomeAbandonedController as vm"></div>\n <div ng-if="!vm_home.hasPermission(111) || !vm_home.license.voice" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="recordings">\n <div ng-if="vm_home.hasPermission(104) && vm_home.license.voice" ng-include="\'app/main/apps/dashboards/views/general/agent/home/recordings/agent.general.recordings.html\'" ng-controller="AgentHomeRecordingsController as vm"></div>\n <div ng-if="!vm_home.hasPermission(104) || !vm_home.license.voice" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="chat">\n <div ng-if="vm_home.hasPermission(105) && vm_home.license.chat" ng-include="\'app/main/apps/dashboards/views/general/agent/home/chat/agent.general.chat.html\'" ng-controller="AgentHomeChatController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting)">\n </div>\n <div ng-if="!vm_home.hasPermission(105) || !vm_home.license.chat" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="mail">\n <div ng-if="vm_home.hasPermission(106) && vm_home.license.mail" ng-include="\'app/main/apps/dashboards/views/general/agent/home/mail/agent.general.mail.html\'" ng-controller="AgentHomeMailController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting)">\n </div>\n <div ng-if="!vm_home.hasPermission(106) || !vm_home.license.mail" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="sms">\n <div ng-if="vm_home.hasPermission(107) && vm_home.license.messaging" ng-include="\'app/main/apps/dashboards/views/general/agent/home/sms/agent.general.sms.html\'" ng-controller="AgentHomeSmsController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting)">\n </div>\n <div ng-if="!vm_home.hasPermission(107) || !vm_home.license.messaging" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="openchannel">\n <div ng-if="vm_home.hasPermission(108) && vm_home.license.openchannel" ng-include="\'app/main/apps/dashboards/views/general/agent/home/openchannel/agent.general.openchannel.html\'" ng-controller="AgentHomeOpenchannelController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting)">\n </div>\n <div ng-if="!vm_home.hasPermission(108) || !vm_home.license.openchannel" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="fax">\n <div ng-if="vm_home.hasPermission(109) && vm_home.license.fax" ng-include="\'app/main/apps/dashboards/views/general/agent/home/fax/agent.general.fax.html\'" ng-controller="AgentHomeFaxController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting)">\n </div>\n <div ng-if="!vm_home.hasPermission(109) || !vm_home.license.fax" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="whatsapp">\n <div ng-if="vm_home.hasPermission(114) && vm_home.license.whatsapp" ng-include="\'app/main/apps/dashboards/views/general/agent/home/whatsapp/agent.general.whatsapp.html\'" ng-controller="AgentHomeWhatsappController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting)">\n </div>\n <div ng-if="!vm_home.hasPermission(114) || !vm_home.license.whatsapp" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="plugin" layout-fill>\n <div ng-if="vm_home.hasPermission(vm_home.pluginId)" ng-include="\'app/main/apps/dashboards/views/general/agent/home/plugins/agent.general.plugins.html\'" ng-controller="AgentHomePluginsController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting, vm_home.plugin)" layout-fill></div>\n <div ng-if="!vm_home.hasPermission(vm_home.pluginId)" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-default>\n <div ng-if="vm_home.hasPermission(101)" ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/agent.general.dashboard.html\'" ng-controller=" AgentHomeDashboardController as vm"></div>\n <div ng-if="!vm_home.hasPermission(101)" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n </div>\n </div>\n <div ng-if="(vm_home.draftManager.drafts | json) != \'{}\'" layout="column" class="draft-manager-bar">\n <ms-tab-scroll>\n <div layout="column" ng-repeat="(key, draft) in vm_home.draftManager.drafts" class="grey-50-bg" ng-click="vm_home.draftManager.open(draft.id)">\n <div class="draft-manager-tab" layout="row" layout-align="space-between center">\n <md-icon md-font-icon="icon-pencil" class="icon s16 margin-horizontal-5 black-fg"></md-icon>\n <span class="text-truncate font-size-12 black-fg">{{draft.title}}</span>\n <md-button class="md-icon-button md-mini no-margin md-primary" aria-label="close" ng-click="vm_home.draftManager.remove(draft.id)">\n <md-icon md-font-icon="icon-close-circle-outline" class="icon s16"></md-icon>\n </md-button>\n </div>\n </div>\n </ms-tab-scroll>\n </div>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html",'<md-content layout="row" layout-align="space-around center" flex layout-padding layout-wrap>\n <div layout="column" layout-align="space-around center" flex="50">\n <span class="font-size-40 text-center">{{ \'DASHBOARDS.WELCOME_TO_MOTION\' | translate }}!</span>\n <span class="font-size-30 text-center" translate="DASHBOARDS.WELCOME_MESSAGE">Use the left sidebar to navigate through available sections.</span>\n </div>\n\n <div layout="column" flex="50">\n <img src="assets/images/avatars/permissions.png" alt="permissions">\n </div>\n</md-content>'),e.put("app/main/apps/dashboards/views/general/agent/home/chat/agent.general.chat.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHAT_INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.getChatInteractions()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getChatInteractions()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getChatInteractions()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n </div>\n </md-toolbar>\n <md-table-container class="interactions-list">\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getChatInteractions">\n <tr md-row>\n <th class="id-header" md-column md-order-by="id">\n {{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column class="no-padding width-5">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding width-5"></th>\n <th md-column class="no-padding width-5"></th>\n <th md-column md-order-by="contactName">{{\'DASHBOARDS.CONTACT\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.STARTEDAT\' | translate}}</th>\n <th md-column md-order-by="lastMsgAt">{{\'DASHBOARDS.LAST_MESSAGE\' | translate}}</th>\n <th md-column md-order-by="closed">{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>\n {{\'DASHBOARDS.WEBSITE\' | translate}}\n </th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.chatInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available\n Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="interaction in vm.chatInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{interaction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in interaction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : u.fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="!interaction.closed && interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" layout-margin>{{interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="interaction.attach" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'no-margin-bottom\' : interaction.contactInfo}" layout-margin privacy ng-cloak>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text no-margin-top" layout-margin privacy ng-cloak>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell>\n <span class="font-size-10 text-truncate">{{interaction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell>\n <div layout="row" ng-if="interaction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}">\n </md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n <span ng-if="!interaction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell>\n <span ng-if="interaction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="interaction.disposition">-\n {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}</span></span>\n <md-tooltip class="multiline" ng-if="interaction.closed">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n <span ng-if="!interaction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="interaction.substatus"> -\n {{interaction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell class="user">\n <span class="font-size-12 text-truncate width-80">{{ vm.getAgentLabel(interaction) }}</span>\n </td>\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell class="chatAccount">\n {{ vm.getChatWebsiteLabel(interaction) }}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <div layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions actions-padding">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.showChatInteraction($event, interaction)" translate="DASHBOARDS.SHOW">\n Show Chat\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions && vm.user.downloadAttachments">\n <md-button ng-click="vm.downloadChatInteraction($event, interaction, true)" translate="CHAT.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions">\n <md-button ng-click="vm.downloadChatInteraction($event, interaction)" translate="CHAT.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!interaction.closed">\n <md-button ng-click="vm.disposeInteraction($event, interaction)" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'DASHBOARDS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'DASHBOARDS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'DASHBOARDS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.chatInteractions.count}}" md-on-paginate="vm.getChatInteractions" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/contacts/agent.general.contacts.html",'<md-card ng-init="vm.onInit()">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.CONTACTS">Contacts</span>\n <ms-search-bar on-search="vm.getContacts()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getContacts()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" ng-click="vm.refreshContacts($event)" aria-label="Reload" translate translate-attr-label="DASHBOARDS.RELOAD">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n <md-button ng-if="vm.lists.rows && vm.lists.rows.length" class="md-icon-button create-new" ng-click="vm.openContact()" aria-label="Add contact" translate translate-attr-label="DASHBOARDS.ADD_CONTACT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getContacts">\n <tr md-row>\n <th md-column md-order-by="id">{{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column md-order-by="firstName">{{\'DASHBOARDS.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="phone">{{\'DASHBOARDS.PHONE\' | translate}}</th>\n <th md-column md-order-by="mobile">{{\'DASHBOARDS.MOBILE\' | translate}}</th>\n <th md-column md-order-by="fax">{{\'DASHBOARDS.FAX\' | translate}}</th>\n <th md-column md-order-by="email">{{\'DASHBOARDS.EMAIL\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.CREATEDAT\' | translate}}</th>\n <th md-column md-order-by="ListId">{{\'DASHBOARDS.LIST\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.contacts.rows.length">\n <td md-cell colspan="10">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="contact in vm.contacts.rows">\n <td ng-click="vm.openContact(contact.id)" md-cell class="id">{{contact.id}}</td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="firstName" privacy ng-cloak>{{contact.firstName}}\n {{contact.lastName}}</td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="phone">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="contact.phone" prefix="vm.listsMap[contact.ListId].dialPrefix" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="mobile">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="contact.mobile" prefix="vm.listsMap[contact.ListId].dialPrefix" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="fax" privacy ng-cloak>{{contact.fax}}</td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="email" privacy ng-cloak>{{contact.email}}</td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="createdAt">{{contact.createdAt | formatdate}}</td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="list">{{vm.listsMap[contact.ListId].name}}\n <td md-cell class="tag">\n <div ng-if="contact.Tags.length">\n <div ng-if="contact.Tags.length == 1" layout="column" layout-align="center center">\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': contact.Tags[0].color }"></md-icon>\n <span class="text-truncate">{{contact.Tags[0].name}}</span>\n </div>\n <div ng-if="contact.Tags.length > 1" layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in contact.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag"></md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.openContact(contact.id)" translate="DASHBOARDS.EDIT">\n Edit Contact\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.mergeContact($event, contact)" translate="DASHBOARDS.MERGE">\n Merge Contact\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.duplicateContact($event, contact)" translate="DASHBOARDS.DUPLICATE">\n Duplicate Contact\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.contacts.count}}" md-on-paginate="vm.getContacts" md-page-select></md-table-pagination>\n\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/agent.general.dashboard.html",'<div ng-cloak>\n <md-content>\n <md-tabs md-dynamic-height md-border-bottom>\n <md-tab ng-if="vm_home.hasPermission(110) && vm_home.license.voice" label="{{\'DASHBOARDS.VOICE\' | translate}}">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/voice/agent.general.dashboard.voice.html\'" ng-controller="AgentHomeDashboardVoiceController as vm_voice" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(110) && vm_home.license.dialer" label="{{\'DASHBOARDS.MOTION_BULL\' | translate}}">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/bull/agent.general.dashboard.bull.html\'" ng-controller="AgentHomeDashboardBullController as vm_bull" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(105) && vm_home.license.chat" label="{{\'DASHBOARDS.CHAT\' | translate}}">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/chat/agent.general.dashboard.chat.html\'" ng-controller="AgentHomeDashboardMultiChannelChatController as vm_chat" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(106) && vm_home.license.mail" label="{{\'DASHBOARDS.MAIL\' | translate}}">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/mail/agent.general.dashboard.mail.html\'" ng-controller="AgentHomeDashboardMultiChannelMailController as vm_mail" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(107) && vm_home.license.messaging" label="{{\'DASHBOARDS.SMS\' | translate}}">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/sms/agent.general.dashboard.sms.html\'" ng-controller="AgentHomeDashboardMultiChannelSmsController as vm_sms" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(108) && vm_home.license.openchannel" label="{{\'DASHBOARDS.OPENCHANNEL\' | translate}}">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/openchannel/agent.general.dashboard.openchannel.html\'" ng-controller="AgentHomeDashboardMultiChannelOpenchannelController as vm_openchannel" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(109) && vm_home.license.fax" label="{{\'DASHBOARDS.FAX\' | translate}}">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/fax/agent.general.dashboard.fax.html\'" ng-controller="AgentHomeDashboardMultiChannelFaxController as vm_fax" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(114) && vm_home.license.whatsapp" label="{{\'DASHBOARDS.WHATSAPP\' | translate}}">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/whatsapp/agent.general.dashboard.whatsapp.html\'" ng-controller="AgentHomeDashboardMultiChannelWhatsappController as vm_whatsapp" class="md-padding">\n </md-content>\n </md-tab>\n </md-tabs>\n </md-content>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/bull/agent.general.dashboard.bull.html",'<div layout="row" ng-cloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header red-900-bg">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_bull.promise">\n <thead md-head md-order="vm_bull.query.sort" md-on-reorder="vm_bull.getVoiceQueues">\n <tr md-row>\n <th md-column>{{ \'VOICE.NAME\' | translate }}</th>\n <th md-column>{{ \'VOICE.TYPE\' | translate }}</th>\n <th md-column>{{ \'VOICE.WAITING\' | translate }}</th>\n <th ng-if="voiceQueue.type === \'outbound\'" md-column>{{ \'VOICE.ACTIVE\' | translate }}</th>\n \x3c!-- <th md-column md-order-by="active">{{ \'VOICE.ACTIVE\' | translate }}</th> --\x3e\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_bull.getSize(vm_bull.voiceQueues)">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, voiceQueue) in vm_bull.voiceQueues">\n <td md-cell class="name">{{voiceQueue.name}}</td>\n <td ng-if="voiceQueue.type === \'outbound\'" md-cell class="waiting">{{voiceQueue.dialMethod}}</td>\n <td md-cell class="waiting">{{voiceQueue.waiting || 0}}</td>\n <td md-cell ng-if="voiceQueue.type === \'outbound\'" class="dialActive ">\n <md-icon md-colors="{color: {{voiceQueue.dialActive ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{voiceQueue.dialActive ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_bull.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_bull.query.page" md-total="{{vm_bull.voiceQueuesTotal}}" md-on-paginate="vm_bull.getVoiceQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header red-900-bg">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.WAITING_TEXT"></span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'VOICE.DID\' | translate }}</th>\n <th md-column>{{ \'VOICE.QUEUE\' | translate }}</th>\n <th md-column>{{ \'VOICE.CALLER\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_bull.getSize(vm_bull.rpcVoiceQueuesChannels)">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, channel) in vm_bull.rpcVoiceQueuesChannels | limitObjectFromTo: vm_bull.queryChannels.limit:(vm_bull.queryChannels.page - 1) * vm_bull.queryChannels.limit">\n <td md-cell>{{channel.exten}}</td>\n <td md-cell>{{channel.queue}}</td>\n <td md-cell privacy ng-cloak>{{channel.calleridnum}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_bull.queryChannels.limit" md-page="vm_bull.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_bull.getSize(vm_bull.rpcVoiceQueuesChannels)}}" md-page-select>\n </md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/chat/agent.general.dashboard.chat.html",'<div layout="row" ng-cloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_chat.getColorByChannel(\'chat\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_chat.promise">\n <thead md-head md-order="vm_chat.query.sort" md-on-reorder="vm_chat.getChatQueues">\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.NAME\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.WAITING\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_chat.getSize(vm_chat.chatQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, queue) in vm_chat.chatQueues">\n <td md-cell class="name">{{queue.name}}</td>\n <td md-cell class="waiting">{{queue.waiting || 0}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_chat.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_chat.query.page" md-total="{{vm_chat.chatQueuesTotal}}" md-on-paginate="vm_chat.getChatQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_chat.getColorByChannel(\'chat\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHANNEL_WAITING_TEXT"></span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.ACCOUNT\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_QUEUE\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_FROM\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_chat.paginatedInteractions.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, interaction) in vm_chat.interactions">\n <td md-cell>{{interaction.account}}</td>\n <td md-cell>{{interaction.queue}}</td>\n <td md-cell>{{interaction.from}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_chat.queryChannels.limit" md-page="vm_chat.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_chat.paginatedInteractions.length}}" md-on-paginate="vm_chat.paginate" md-page-select></md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/fax/agent.general.dashboard.fax.html",'<div layout="row" ng-cloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_fax.getColorByChannel(\'fax\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_fax.promise">\n <thead md-head md-order="vm_fax.query.sort" md-on-reorder="vm_fax.getFaxQueues">\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.NAME\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.WAITING\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_fax.getSize(vm_fax.faxQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, queue) in vm_fax.faxQueues">\n <td md-cell class="name">{{queue.name}}</td>\n <td md-cell class="waiting">{{queue.waiting || 0}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_fax.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_fax.query.page" md-total="{{vm_fax.faxQueuesTotal}}" md-on-paginate="vm_fax.getFaxQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_fax.getColorByChannel(\'fax\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHANNEL_WAITING_TEXT"></span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.ACCOUNT\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_QUEUE\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_FROM\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_fax.paginatedInteractions.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, interaction) in vm_fax.interactions">\n <td md-cell>{{interaction.account}}</td>\n <td md-cell>{{interaction.queue}}</td>\n <td md-cell>{{interaction.from}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_fax.queryChannels.limit" md-page="vm_fax.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_fax.paginatedInteractions.length}}" md-on-paginate="vm_fax.paginate" md-page-select></md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/mail/agent.general.dashboard.mail.html",'<div layout="row" ng-cloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_mail.getColorByChannel(\'mail\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_mail.promise">\n <thead md-head md-order="vm_mail.query.sort" md-on-reorder="vm_mail.getMailQueues">\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.NAME\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.WAITING\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_mail.getSize(vm_mail.mailQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, queue) in vm_mail.mailQueues">\n <td md-cell class="name">{{queue.name}}</td>\n <td md-cell class="waiting">{{queue.waiting || 0}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_mail.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_mail.query.page" md-total="{{vm_mail.mailQueuesTotal}}" md-on-paginate="vm_mail.getMailQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_mail.getColorByChannel(\'mail\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHANNEL_WAITING_TEXT"></span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.ACCOUNT\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_QUEUE\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_FROM\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_mail.paginatedInteractions.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, interaction) in vm_mail.interactions">\n <td md-cell>{{interaction.account}}</td>\n <td md-cell>{{interaction.queue}}</td>\n <td md-cell>{{interaction.from}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_mail.queryChannels.limit" md-page="vm_mail.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_mail.paginatedInteractions.length}}" md-on-paginate="vm_mail.paginate" md-page-select></md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/openchannel/agent.general.dashboard.openchannel.html",'<div layout="row" ng-cloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_openchannel.getColorByChannel(\'openchannel\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_openchannel.promise">\n <thead md-head md-order="vm_openchannel.query.sort" md-on-reorder="vm_openchannel.getOpenchannelQueues">\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.NAME\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.WAITING\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_openchannel.getSize(vm_openchannel.openchannelQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, queue) in vm_openchannel.openchannelQueues">\n <td md-cell class="name">{{queue.name}}</td>\n <td md-cell class="waiting">{{queue.waiting || 0}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_openchannel.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_openchannel.query.page" md-total="{{vm_openchannel.openchannelQueuesTotal}}" md-on-paginate="vm_openchannel.getOpenchannelQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_openchannel.getColorByChannel(\'openchannel\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHANNEL_WAITING_TEXT"></span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.ACCOUNT\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_QUEUE\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_FROM\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_openchannel.paginatedInteractions.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, interaction) in vm_openchannel.interactions">\n <td md-cell>{{interaction.account}}</td>\n <td md-cell>{{interaction.queue}}</td>\n <td md-cell>{{interaction.from}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_openchannel.queryChannels.limit" md-page="vm_openchannel.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_openchannel.paginatedInteractions.length}}" md-on-paginate="vm_openchannel.paginate" md-page-select></md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/sms/agent.general.dashboard.sms.html",'<div layout="row" ng-cloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_sms.getColorByChannel(\'sms\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_sms.promise">\n <thead md-head md-order="vm_sms.query.sort" md-on-reorder="vm_sms.getSmsQueues">\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.NAME\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.WAITING\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_sms.getSize(vm_sms.smsQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, queue) in vm_sms.smsQueues">\n <td md-cell class="name">{{queue.name}}</td>\n <td md-cell class="waiting">{{queue.waiting || 0}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_sms.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_sms.query.page" md-total="{{vm_sms.smsQueuesTotal}}" md-on-paginate="vm_sms.getSmsQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_sms.getColorByChannel(\'sms\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHANNEL_WAITING_TEXT"></span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.ACCOUNT\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_QUEUE\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_FROM\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_sms.paginatedInteractions.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, interaction) in vm_sms.interactions">\n <td md-cell>{{interaction.account}}</td>\n <td md-cell>{{interaction.queue}}</td>\n <td md-cell>{{interaction.from}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_sms.queryChannels.limit" md-page="vm_sms.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_sms.paginatedInteractions.length}}" md-on-paginate="vm_sms.paginate" md-page-select></md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/voice/agent.general.dashboard.voice.html",'<div layout="row" ng-cloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header blue-A700-bg ">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_voice.promise">\n <thead md-head md-order="vm_voice.query.sort" md-on-reorder="vm_voice.getVoiceQueues">\n <tr md-row>\n <th md-column>{{ \'VOICE.NAME\' | translate }}</th>\n <th md-column>{{ \'VOICE.WAITING\' | translate }}</th>\n <th ng-if="voiceQueue.type === \'outbound\'" md-column>{{ \'VOICE.ACTIVE\' | translate }}</th>\n \x3c!-- <th md-column md-order-by="active">{{ \'VOICE.ACTIVE\' | translate }}</th> --\x3e\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_voice.getSize(vm_voice.voiceQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, voiceQueue) in vm_voice.voiceQueues">\n <td md-cell class="name">{{voiceQueue.name}}</td>\n <td ng-if="voiceQueue.type === \'outbound\'" md-cell class="waiting">{{voiceQueue.dialMethod}}</td>\n <td md-cell class="waiting">{{voiceQueue.waiting || 0}}</td>\n <td md-cell ng-if="voiceQueue.type === \'outbound\'" class="dialActive ">\n <md-icon md-colors="{color: {{voiceQueue.dialActive ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{voiceQueue.dialActive ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_voice.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_voice.query.page" md-total="{{vm_voice.voiceQueuesTotal}}" md-on-paginate="vm_voice.getVoiceQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header blue-A700-bg ">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.WAITING_TEXT"></span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'VOICE.DID\' | translate }}</th>\n <th md-column>{{ \'VOICE.QUEUE\' | translate }}</th>\n <th md-column>{{ \'VOICE.CALLER\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_voice.getSize(vm_voice.rpcVoiceQueuesChannels)">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, channel) in vm_voice.rpcVoiceQueuesChannels | limitObjectFromTo: vm_voice.queryChannels.limit:(vm_voice.queryChannels.page - 1) * vm_voice.queryChannels.limit">\n <td md-cell>{{channel.exten}}</td>\n <td md-cell>{{channel.queue}}</td>\n <td md-cell privacy ng-cloak>{{channel.calleridnum}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_voice.queryChannels.limit" md-page="vm_voice.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_voice.getSize(vm_voice.rpcVoiceQueuesChannels)}}" md-page-select>\n </md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/whatsapp/agent.general.dashboard.whatsapp.html",'<div layout="row" ng-cloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_whatsapp.getColorByChannel(\'whatsapp\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_whatsapp.promise">\n <thead md-head md-order="vm_whatsapp.query.sort" md-on-reorder="vm_whatsapp.getWhatsappQueues">\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.NAME\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.WAITING\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_whatsapp.getSize(vm_whatsapp.whatsappQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, queue) in vm_whatsapp.whatsappQueues">\n <td md-cell class="name">{{queue.name}}</td>\n <td md-cell class="waiting">{{queue.waiting || 0}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_whatsapp.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_whatsapp.query.page" md-total="{{vm_whatsapp.whatsappQueuesTotal}}" md-on-paginate="vm_whatsapp.getWhatsappQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_whatsapp.getColorByChannel(\'whatsapp\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHANNEL_WAITING_TEXT"></span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.ACCOUNT\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_QUEUE\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_FROM\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_whatsapp.paginatedInteractions.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, interaction) in vm_whatsapp.interactions">\n <td md-cell>{{interaction.account}}</td>\n <td md-cell>{{interaction.queue}}</td>\n <td md-cell>{{interaction.from}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_whatsapp.queryChannels.limit" md-page="vm_whatsapp.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_whatsapp.paginatedInteractions.length}}" md-on-paginate="vm_whatsapp.paginate" md-page-select></md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/fax/agent.general.fax.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.FAX_INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.getFaxInteractions()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getFaxInteractions()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getFaxInteractions()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n <md-menu ng-if="vm.faxAccounts.rows && vm.faxAccounts.rows.length">\n <md-button class="md-icon-button create-new" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-repeat="faxAccount in vm.faxAccounts.rows">\n <md-button aria-label="compose" ng-click="vm.composeFaxInteraction($event, faxAccount)">\n {{ faxAccount.name }} ({{ faxAccount.key }})</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </md-toolbar>\n <md-table-container class="interactions-list">\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getFaxInteractions">\n <tr md-row>\n <th class="id-header" md-column md-order-by="id">\n {{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column class="no-padding width-5">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding width-5"></th>\n <th md-column class="no-padding width-5"></th>\n <th md-column md-order-by="contactName">{{\'DASHBOARDS.CONTACT\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.STARTEDAT\' | translate}}</th>\n <th md-column md-order-by="lastMsgAt">{{\'DASHBOARDS.LAST_MESSAGE\' | translate}}</th>\n <th md-column md-order-by="closed">{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>\n {{\'DASHBOARDS.ACCOUNT\' | translate}}\n </th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.faxInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available\n Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="interaction in vm.faxInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{interaction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in interaction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : u.fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="!interaction.closed && interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" layout-margin>{{interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="interaction.attach" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'no-margin-bottom\' : interaction.contactInfo}" layout-margin privacy ng-cloak>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text no-margin-top" layout-margin privacy ng-cloak>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell>\n <span class="font-size-10 text-truncate">{{interaction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell>\n <div layout="row" ng-if="interaction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}">\n </md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n <span ng-if="!interaction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell>\n <span ng-if="interaction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="interaction.disposition">-\n {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}</span></span>\n <md-tooltip class="multiline" ng-if="interaction.closed">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n <span ng-if="!interaction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="interaction.substatus"> -\n {{interaction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell class="user">\n <span class="font-size-12 text-truncate width-80">{{ vm.getAgentLabel(interaction) }}</span>\n </td>\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell class="faxAccount">\n {{ vm.getFaxAccountLabel(interaction) }}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <div layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions actions-padding">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.showFaxInteraction($event, interaction)" translate="DASHBOARDS.SHOW">\n Show Fax\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions">\n <md-button ng-click="vm.downloadFaxInteraction($event, interaction)" translate="DASHBOARDS.DOWNLOAD">\n Download Fax\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!interaction.closed">\n <md-button ng-click="vm.disposeInteraction($event, interaction)" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'DASHBOARDS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'DASHBOARDS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'DASHBOARDS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.faxInteractions.count}}" md-on-paginate="vm.getFaxInteractions" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/mail/agent.general.mail.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.MAIL_INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.getMailInteractions()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getMailInteractions()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getMailInteractions()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n <md-menu ng-if="vm.mailAccounts.rows && vm.mailAccounts.rows.length">\n <md-button class="md-icon-button create-new" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-repeat="mailAccount in vm.mailAccounts.rows">\n <md-button aria-label="compose" ng-click="vm.composeMailInteraction($event, mailAccount)">\n {{ mailAccount.name }} ({{ mailAccount.key }})</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </md-toolbar>\n <md-table-container class="interactions-list">\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getMailInteractions">\n <tr md-row>\n <th class="id-header" md-column md-order-by="id">\n {{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column class="no-padding width-5">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding width-5"></th>\n <th md-column class="no-padding width-5"></th>\n <th md-column md-order-by="contactName">{{\'DASHBOARDS.CONTACT\' | translate}}</th>\n <th md-column md-order-by="subject">{{\'DASHBOARDS.SUBJECT\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.STARTEDAT\' | translate}}</th>\n <th md-column md-order-by="lastMsgAt">{{\'DASHBOARDS.LAST_MESSAGE\' | translate}}</th>\n <th md-column md-order-by="closed">{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>\n {{\'DASHBOARDS.ACCOUNT\' | translate}}\n </th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.mailInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available\n Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="interaction in vm.mailInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{interaction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in interaction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : u.fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="!interaction.closed && interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" layout-margin>{{interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="interaction.attach" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'no-margin-bottom\' : interaction.contactInfo}" layout-margin privacy ng-cloak>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text no-margin-top" layout-margin privacy ng-cloak>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell>\n <div ng-if="vm.setting.enableEmailPreview && interaction.lastMsgText" class="tooltip-preview">\n <span class="text-truncate font-size-12 subject-text">{{ interaction.subject }}</span>\n \x3c!-- ng-style="{top: \'-\' + ((($index % 10) + 1) * 18) + \'px\'}" --\x3e\n <md-card class="tooltip-preview-text">\n <md-card-content><span class="email-preview-message">{{ interaction.lastMsgText }}</span>\n </md-card-content>\n </md-card>\n </div>\n <span ng-if="!interaction.lastMsgText || !vm.setting.enableEmailPreview" class="text-truncate font-size-12">{{ interaction.subject }}</span>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell>\n <span class="font-size-10 text-truncate">{{interaction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell>\n <div layout="row" ng-if="interaction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}">\n </md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n <span ng-if="!interaction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell>\n <span ng-if="interaction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="interaction.disposition">-\n {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}</span></span>\n <md-tooltip class="multiline" ng-if="interaction.closed">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n <span ng-if="!interaction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="interaction.substatus"> -\n {{interaction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell class="user">\n <span class="font-size-12 text-truncate width-80">{{ vm.getAgentLabel(interaction) }}</span>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell class="mailAccount">\n {{ vm.getMailAccountLabel(interaction) }}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <div layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions actions-padding">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.showMailInteraction($event, interaction)" translate="DASHBOARDS.SHOW">\n Show Mail\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions && vm.user.downloadAttachments">\n <md-button ng-click="vm.downloadMailInteraction($event, interaction, true)" translate="MAIL.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions">\n <md-button ng-click="vm.downloadMailInteraction($event, interaction)" translate="MAIL.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!interaction.closed">\n <md-button ng-click="vm.disposeInteraction($event, interaction)" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'DASHBOARDS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'DASHBOARDS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'DASHBOARDS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.mailInteractions.count}}" md-on-paginate="vm.getMailInteractions" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/mycontacts/agent.general.mycontacts.html",'<md-card ng-init="vm.onInit()">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.MYCONTACTS">My Contacts</span>\n <ms-search-bar on-search="vm.getContacts()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getContacts()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" ng-click="vm.refreshContacts($event)" aria-label="Reload" translate translate-attr-label="DASHBOARDS.RELOAD">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n <md-button ng-if="vm.lists.rows && vm.lists.rows.length" class="md-icon-button create-new" ng-click="vm.openContact($event)" aria-label="Add contact" translate translate-attr-label="DASHBOARDS.ADD_CONTACT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getContacts">\n <tr md-row>\n <th md-column md-order-by="id">{{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column md-order-by="firstName">{{\'DASHBOARDS.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="phone">{{\'DASHBOARDS.PHONE\' | translate}}</th>\n <th md-column md-order-by="mobile">{{\'DASHBOARDS.MOBILE\' | translate}}</th>\n <th md-column md-order-by="fax">{{\'DASHBOARDS.FAX\' | translate}}</th>\n <th md-column md-order-by="email">{{\'DASHBOARDS.EMAIL\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.CREATEDAT\' | translate}}</th>\n <th md-column md-order-by="ListId">{{\'DASHBOARDS.LIST\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.contacts.rows.length">\n <td md-cell colspan="10">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="contact in vm.contacts.rows">\n <td ng-click="vm.openContact($event, contact)" md-cell class="id">{{contact.id}}</td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="firstName" privacy ng-cloak>\n {{contact.firstName}} {{contact.lastName}}</td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="phone">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="contact.phone" prefix="vm.listsMap[contact.ListId].dialPrefix" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="mobile">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="contact.mobile" prefix="vm.listsMap[contact.ListId].dialPrefix" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="fax" privacy ng-cloak>\n {{contact.fax}}</td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="email" privacy ng-cloak>{{contact.email}}\n </td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="createdAt">{{contact.createdAt |\n formatdate}}</td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="list">\n {{vm.listsMap[contact.ListId].name}}</td>\n <td md-cell class="tag">\n <div ng-if="contact.Tags.length">\n <div ng-if="contact.Tags.length == 1" layout="column" layout-align="center center">\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': contact.Tags[0].color }"></md-icon>\n <span class="text-truncate">{{contact.Tags[0].name}}</span>\n </div>\n <div ng-if="contact.Tags.length > 1" layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in contact.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag"></md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.openContact($event, contact)" translate="DASHBOARDS.EDIT">\n Edit Contact\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.mergeContact($event, contact)" translate="DASHBOARDS.MERGE">\n Merge Contact\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.duplicateContact($event, contact)" translate="DASHBOARDS.DUPLICATE">\n Duplicate Contact\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.contacts.count}}" md-on-paginate="vm.getContacts" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/openchannel/agent.general.openchannel.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.OPENCHANNEL_INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.getOpenchannelInteractions()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getOpenchannelInteractions()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getOpenchannelInteractions()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n <md-menu ng-if="vm.openchannelAccounts.rows && vm.openchannelAccounts.rows.length">\n <md-button class="md-icon-button create-new" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-repeat="openchannelAccount in vm.openchannelAccounts.rows">\n <md-button aria-label="compose" ng-click="vm.composeOpenchannelInteraction($event, openchannelAccount)" ng-disabled="!openchannelAccount.replyUri">\n {{ openchannelAccount.name }} ({{ openchannelAccount.key }})</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </md-toolbar>\n <md-table-container class="interactions-list">\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getOpenchannelInteractions">\n <tr md-row>\n <th class="id-header" md-column md-order-by="id">\n {{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column class="no-padding width-5">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding width-5"></th>\n <th md-column class="no-padding width-5"></th>\n <th md-column md-order-by="contactName">{{\'DASHBOARDS.CONTACT\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.STARTEDAT\' | translate}}</th>\n <th md-column md-order-by="lastMsgAt">{{\'DASHBOARDS.LAST_MESSAGE\' | translate}}</th>\n <th md-column md-order-by="closed">{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>\n {{\'DASHBOARDS.ACCOUNT\' | translate}}\n </th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.openchannelInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available\n Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="interaction in vm.openchannelInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{interaction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in interaction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : u.fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="!interaction.closed && interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" layout-margin>{{interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="interaction.attach" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'no-margin-bottom\' : interaction.contactInfo}" layout-margin privacy ng-cloak>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text no-margin-top" layout-margin privacy ng-cloak>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell>\n <span class="font-size-10 text-truncate">{{interaction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell>\n <div layout="row" ng-if="interaction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}">\n </md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n <span ng-if="!interaction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell>\n <span ng-if="interaction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="interaction.disposition">-\n {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}</span></span>\n <md-tooltip class="multiline" ng-if="interaction.closed">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n <span ng-if="!interaction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="interaction.substatus"> -\n {{interaction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell class="user">\n <span class="font-size-12 text-truncate width-80">{{ vm.getAgentLabel(interaction) }}</span>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell class="openchannelAccount">\n {{ vm.getOpenchannelAccountLabel(interaction) }}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <div layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions actions-padding">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.showOpenchannelInteraction($event, interaction)" translate="DASHBOARDS.SHOW">\n Show Openchannel\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions && vm.user.downloadAttachments">\n <md-button ng-click="vm.downloadOpenchannelInteraction($event, interaction, true)" translate="OPENCHANNEL.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions">\n <md-button ng-click="vm.downloadOpenchannelInteraction($event, interaction)" translate="OPENCHANNEL.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!interaction.closed">\n <md-button ng-click="vm.disposeInteraction($event, interaction)" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'DASHBOARDS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'DASHBOARDS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'DASHBOARDS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.openchannelInteractions.count}}" md-on-paginate="vm.getOpenchannelInteractions" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/plugins/agent.general.plugins.html",'<div id="plugin" ng-if="vm.plugin" ng-cloak layout-fill>\n <iframe ng-src="{{vm.getTrustedURL()}}" frameborder=0 style="border:0px; width:100%; height:100%;"></iframe>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/presence/agent.general.presence.html",'<div ng-cloak>\n <md-content>\n <md-tabs md-selected="vm.selectedTab" md-dynamic-height md-border-bottom>\n <md-tab label="{{\'DASHBOARDS.AGENTS\' | translate}}" md-on-select="vm.onAgentsTabSelection()">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/presence/views/agent.general.presence.agents.html\'">\n </md-content>\n </md-tab>\n <md-tab label="{{\'DASHBOARDS.QUEUES\' | translate}}" md-on-select="vm.onQueuesTabSelection()">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/presence/views/agent.general.presence.queues.html\'">\n </md-content>\n </md-tab>\n </md-tabs>\n </md-content>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/presence/views/agent.general.presence.agents.html",'<md-card ngCloak>\n <md-toolbar class="md-table-toolbar md-default table-header xenialab-violet-light-bg" ng-class="{\'h-128\' : vm.isSearchBarVisible === true}">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.AGENTS"></span>\n <ms-search-bar on-search="vm.getAgents()" query="vm.agentsQuery" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.agentsQuery" search="vm.getAgents()"></ms-quick-filter>\n <md-button class="md-icon-button reload-list" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getAgents()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.agentsQuery.sort" md-on-reorder="vm.getAgents">\n <tr md-row>\n <th md-column md-order-by="id">{{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column md-order-by="name">{{\'DASHBOARDS.NAME\' | translate}}</th>\n <th md-column md-order-by="internal">{{\'VOICE.INTERNAL\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column class="no-padding width-70"></th>\n <th md-column class="width-70"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.agents.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="agent in vm.agents.rows">\n <td md-cell>{{agent.id}}</td>\n <td md-cell>{{agent.name}}</td>\n <td md-cell>{{agent.internal}}</td>\n <td md-cell>\n <div layout="row">\n <div layout="column" layout-align="center center">\n <span class="text-boxed width-70 text-center md-background-bg bl bt padding-5" ng-class="{\'online\':\'lime-300-bg\',\'offline\':\'red-A200-bg\',\'pause\':\'amber-200-bg\',\'busy\':\'indigo-100-bg\'}[agent.status]">{{\n agent.status | uppercase }}</span>\n </div>\n </div>\n </td>\n <td md-cell class="no-padding width-70">\n <md-button ng-if="agent.status !== \'offline\'" ng-click="vm.originateCall(agent.name)" class="md-fab md-mini md-raised" aria-label="Dial">\n <md-icon md-font-icon="icon-phone" class="icon green-fg s20">\n <md-tooltip><span translate="VOICE.DIAL"></span></md-tooltip>\n </md-icon>\n </md-button>\n </td>\n <td md-cell class="width-70">\n <md-button ng-if="agent.status !== \'offline\'" ng-click="vm.transferCall(agent.name)" class="md-fab md-mini md-raised" aria-label="Transfer">\n <md-icon md-font-icon="icon-phone-forward" class="icon purple-fg s20">\n <md-tooltip><span translate="DASHBOARDS.TRANSFER"></span></md-tooltip>\n </md-icon>\n </md-button>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-limit="vm.agentsQuery.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.agentsQuery.page" md-total="{{vm.agents.count}}" md-on-paginate="vm.getAgents" md-page-select>\n </md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/presence/views/agent.general.presence.queues.html",'<md-card ngCloak>\n <md-toolbar class="md-table-toolbar md-default table-header xenialab-violet-light-bg" ng-class="{\'h-128\' : vm.isSearchBarVisible === true}">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES"></span>\n <ms-search-bar on-search="vm.getVoiceQueues()" query="vm.queuesQuery" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible"></ms-search-bar>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.queuesQuery.sort" md-on-reorder="vm.getVoiceQueues">\n <tr md-row>\n <th md-column md-order-by="id">{{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column md-order-by="name">{{\'DASHBOARDS.NAME\' | translate}}</th>\n <th md-column md-order-by="name">{{\'VOICE.CALLS\' | translate}}</th>\n <th md-column class="no-padding width-70"></th>\n <th md-column class="width-70"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.voiceQueues.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="queue in vm.voiceQueues.rows">\n <td md-cell>{{queue.id}}</td>\n <td md-cell>{{queue.name}}</td>\n <td md-cell>{{queue.calls.length || 0}}</td>\n <td md-cell class="no-padding width-70">\n <md-button ng-click="vm.originateCall(queue.name)" class="md-fab md-mini md-raised" aria-label="Dial">\n <md-icon md-font-icon="icon-phone" class="icon green-fg s20">\n <md-tooltip><span translate="VOICE.DIAL"></span></md-tooltip>\n </md-icon>\n </md-button>\n </td>\n <td md-cell class="width-70">\n <md-button ng-click="vm.transferCall(queue.name)" class="md-fab md-mini md-raised" aria-label="Transfer">\n <md-icon md-font-icon="icon-phone-forward" class="icon purple-fg s20">\n <md-tooltip><span translate="DASHBOARDS.TRANSFER"></span></md-tooltip>\n </md-icon>\n </md-button>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-limit="vm.queuesQuery.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.queuesQuery.page" md-total="{{vm.voiceQueues.count}}" md-on-paginate="vm.getVoiceQueues" md-page-select>\n </md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/recordings/agent.general.recordings.html",'<md-card ng-init="vm.onInit()">\n <md-toolbar class="md-table-toolbar md-default table-header indigo-A100-bg" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.RECORDINGS">Recordings</span>\n <ms-search-bar on-search="vm.getVoiceRecordings()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getVoiceRecordings()">\n </ms-quick-filter>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVoiceRecordings">\n <tr md-row>\n <th md-column md-order-by="type">{{ \'VOICE.TYPE\' | translate }}</th>\n <th md-column md-order-by="uniqueid">{{ \'VOICE.UNIQUEID\' | translate }}</th>\n <th md-column md-order-by="calleridnum">{{ \'VOICE.CALLER\' | translate }}</th>\n <th md-column md-order-by="exten">{{ \'VOICE.CALLED\' | translate }}</th>\n <th md-column md-order-by="connectedlinenum">{{ \'VOICE.CONNECTED\' | translate }}</th>\n <th md-column md-order-by="queue">{{ \'VOICE.QUEUE\' | translate }}</th>\n <th md-column md-order-by="rating">{{ \'VOICE.RATING\' | translate }}</th>\n <th md-column>{{ \'VOICE.AUDIO\' | translate }}</th>\n <th md-column md-order-by="createdAt">{{ \'VOICE.DATE\' | translate }}</th>\n <th md-column width="10px" ng-if="vm.currentUser.downloadVoiceRecordings"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.voiceRecordings.rows.length">\n <td md-cell colspan="{{ vm.currentUser.downloadVoiceRecordings ? 10 : 9}}">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="voiceRecording in vm.voiceRecordings.rows">\n <td md-cell class="type">{{voiceRecording.type}}</td>\n <td md-cell class="uniqueid">{{voiceRecording.uniqueid}}</td>\n <td md-cell class="calleridnum">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="voiceRecording.calleridnum" license="vm_home.license">\n </ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="exten">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="voiceRecording.exten" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="connectedlinenum">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="voiceRecording.connectedlinenum" license="vm_home.license">\n </ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="queue">{{voiceRecording.queue}}</td>\n <td md-cell class="rating">\n <md-icon md-font-icon="icon-star" style="color:red" ng-show="voiceRecording.rating" ng-repeat="rating in [1,2,3,4,5] | limitTo:voiceRecording.rating"></md-icon><span ng-hide="voiceRecording.rating" translate="VOICE.NO_RATING">No rating</span>\n </td>\n <td md-cell class="audio" ng-switch="voiceRecording.format">\n \x3c!-- audio recording directive --\x3e\n <ms-recording ng-switch-when=".wav" id="voiceRecording.id"></ms-recording>\n \x3c!-- / audio recording directive --\x3e\n <span ng-switch-when=".gsm">\n <em>{{ \'VOICE.CANT_PLAY_GSM_AUDIO_FILES\' | translate }}</em>\n </span>\n </td>\n <td md-cell class="createdAt ">{{voiceRecording.createdAt | date:\'medium\' }}</td>\n <td md-cell class="actions" ng-if="vm.currentUser.downloadVoiceRecordings">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.downloadfile(voiceRecording, $event)" translate="VOICE.DOWNLOAD_VOICERECORDING">\n Download VoiceRecording\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="voiceRecording.transcribeStatus == \'COMPLETED\'">\n <md-button ng-click="vm.downloadtranscribe(voiceRecording, $event)" translate="VOICE.DOWNLOADTRANSCRIBE_VOICERECORDING">\n Download Transcribe\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.voiceRecordings.count}}" md-on-paginate="vm.getVoiceRecordings" md-page-select>\n </md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/scheduled/agent.general.scheduled.html",'<md-card ng-init="vm.onInit()">\n <md-toolbar class="md-table-toolbar md-default table-header blue-grey-bg" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.SCHEDULED_CALLS">Scheduled Calls</span>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getScheduledCalls()">\n </ms-quick-filter>\n <md-button class="md-icon-button reload-list" ng-click="vm.getScheduledCalls()" aria-label="Refresh scheduled calls" translate translate-attr-label="MOTIONDIALER.REFRESH_SCHEDULED_CALLS">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'MOTIONDIALER.REFRESH_SCHEDULED_CALLS\' | translate}}</md-tooltip>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getScheduledCalls">\n <tr md-row>\n <th md-column>{{\'MOTIONDIALER.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="phone">{{ \'MOTIONDIALER.PHONE\' | translate }}</th>\n <th md-column md-order-by="scheduledat">{{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.PRIORITY\' | translate }}</th>\n <th md-column md-order-by="recallme">{{ \'MOTIONDIALER.RECALLME\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.CAMPAIGN\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.scheduledCalls.rows.length">\n <td md-cell colspan="10">\n <div layout="row" layout-align="center center">\n <span translate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="scheduledCall in vm.scheduledCalls.rows">\n <td md-cell privacy ng-cloak>{{scheduledCall.Contact.firstName}} {{scheduledCall.Contact.lastName}}</td>\n <td md-cell>\n <ms-click-to-call target="scheduledCall.phone" license="vm_home.license"></ms-click-to-call>\n </td>\n <td md-colors="{color: {{ vm.isDateBeforeToday(scheduledCall.scheduledat) ? \'\\\'red\\\'\' : \'\\\'green\\\'\' }}}" md-cell>{{ scheduledCall.scheduledat | date:\'medium\' }}</td>\n <td md-cell>{{ vm.priorities[scheduledCall.priority] }}</td>\n <td md-cell>\n <md-icon md-colors="{color: {{ scheduledCall.recallme && scheduledCall.UserId == vm.currentUser.id ? \'\\\'green\\\'\' : \'\\\'grey\\\'\' }}}" md-font-icon="{{ scheduledCall.recallme && scheduledCall.UserId == vm.currentUser.id ? \'icon-check\' : \'icon-close\' }}">\n </md-icon>\n </td>\n <td md-cell>\n <md-icon md-colors="{color: {{ scheduledCall.Queue.dialActive? \'\\\'green\\\'\' : \'\\\'red\\\'\' }}}" md-font-icon="icon-checkbox-blank-circle"></md-icon> {{scheduledCall.Queue.name}}\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.createOrEditQueueCampaignHopper($event, scheduledCall)" translate="MOTIONDIALER.EDIT_HOPPER">\n Edit Hopper\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deleteConfirm(scheduledCall, $event)" translate="MOTIONDIALER.DELETE_HOPPER">\n Delete Hopper\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.scheduledCalls.count}}" md-on-paginate="vm.getScheduledCalls" md-page-select>\n </md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/sms/agent.general.sms.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.SMS_INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.getSmsInteractions()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getSmsInteractions()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getSmsInteractions()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n <md-menu ng-if="vm.smsAccounts.rows && vm.smsAccounts.rows.length">\n <md-button class="md-icon-button create-new" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-repeat="smsAccount in vm.smsAccounts.rows">\n <md-button aria-label="compose" ng-click="vm.composeSmsInteraction($event, smsAccount)">\n {{ smsAccount.name }} ({{ smsAccount.key }})</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </md-toolbar>\n <md-table-container class="interactions-list">\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getSmsInteractions">\n <tr md-row>\n <th class="id-header" md-column md-order-by="id">\n {{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column class="no-padding width-5">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding width-5"></th>\n <th md-column class="no-padding width-5"></th>\n <th md-column md-order-by="contactName">{{\'DASHBOARDS.CONTACT\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.STARTEDAT\' | translate}}</th>\n <th md-column md-order-by="lastMsgAt">{{\'DASHBOARDS.LAST_MESSAGE\' | translate}}</th>\n <th md-column md-order-by="closed">{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>\n {{\'DASHBOARDS.ACCOUNT\' | translate}}\n </th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.smsInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available\n Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="interaction in vm.smsInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{interaction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in interaction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : u.fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="!interaction.closed && interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" layout-margin>{{interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="interaction.attach" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'no-margin-bottom\' : interaction.contactInfo}" layout-margin privacy ng-cloak>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text no-margin-top" layout-margin privacy ng-cloak>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell>\n <span class="font-size-10 text-truncate">{{interaction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell>\n <div layout="row" ng-if="interaction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}">\n </md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n <span ng-if="!interaction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell>\n <span ng-if="interaction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="interaction.disposition">-\n {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}</span></span>\n <md-tooltip class="multiline" ng-if="interaction.closed">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n <span ng-if="!interaction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="interaction.substatus"> -\n {{interaction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell class="user">\n <span class="font-size-12 text-truncate width-80">{{ vm.getAgentLabel(interaction) }}</span>\n </td>\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell class="smsAccount">\n {{ vm.getSmsAccountLabel(interaction) }}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <div layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions actions-padding">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.showSmsInteraction($event, interaction)" translate="DASHBOARDS.SHOW">\n Show Sms\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions">\n <md-button ng-click="vm.downloadSmsInteraction($event, interaction)" translate="DASHBOARDS.DOWNLOAD">\n Download Sms\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!interaction.closed">\n <md-button ng-click="vm.disposeInteraction($event, interaction)" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'DASHBOARDS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'DASHBOARDS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'DASHBOARDS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.smsInteractions.count}}" md-on-paginate="vm.getSmsInteractions" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/voice/agent.general.voice.html",'<md-card ng-init="vm.onInit()">\n <md-toolbar class="md-table-toolbar md-default table-header blue-A700-bg" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.CALLS">Calls</span>\n <ms-search-bar on-search="vm.getVoiceCalls()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getVoiceCalls()">\n </ms-quick-filter>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVoiceCalls">\n <tr md-row>\n <th md-column md-order-by="id">{{\'VOICE.ID\' | translate}}</th>\n <th md-column md-order-by="type">{{ \'VOICE.TYPE\' | translate }}</th>\n <th md-column md-order-by="source">{{ \'VOICE.SOURCE\' | translate }}</th>\n <th md-column md-order-by="destination">{{ \'VOICE.DESTINATION\' | translate }}</th>\n <th md-column md-order-by="starttime">{{ \'VOICE.STARTEDAT\' | translate }}</th>\n <th md-column md-order-by="endtime">{{ \'VOICE.ENDEDAT\' | translate }}</th>\n <th md-column md-order-by="userDisposition">{{ \'VOICE.DISPOSITION\' | translate }}</th>\n <th md-column md-order-by="userSecondDisposition">{{ \'VOICE.SECOND_LEVEL_DISPOSITION\' | translate }}</th>\n <th md-column md-order-by="userThirdDisposition">{{ \'VOICE.THIRD_LEVEL_DISPOSITION\' | translate }}</th>\n <th md-column>{{ \'VOICE.NOTE\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.voiceCalls.rows.length">\n <td md-cell colspan="10">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="voiceCall in vm.voiceCalls.rows" ng-click="vm.showDetails(voiceCall, $event)">\n <td md-cell class="type">{{voiceCall.id}}</td>\n <td md-cell class="type">{{ \'VOICE.\' + voiceCall.type.toUpperCase() | translate}}</td>\n <td md-cell class="source">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="voiceCall.source" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="destination">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="voiceCall.destination" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="starttime">{{voiceCall.starttime | date:\'medium\' }}</td>\n <td md-cell class="endtime">{{voiceCall.endtime | date:\'medium\' }}</td>\n <td md-cell class="disposition">{{ voiceCall.userDisposition}}</td>\n <td md-cell class="disposition">{{ voiceCall.userSecondDisposition}}</td>\n <td md-cell class="disposition">{{ voiceCall.userThirdDisposition}}</td>\n <td md-cell class="note">\n <md-icon ng-if="voiceCall.note" md-font-icon="icon-clipboard-outline"></md-icon>\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.showDetails(voiceCall, $event)" translate="VOICE.DETAILS">\n Show Details\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.voiceCalls.count}}" md-on-paginate="vm.getVoiceCalls" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/voice/details/dialog.html",'<md-dialog class="details-dialog" aria-label="details">\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span ng-if="!vm.interaction.closed" class="title" translate="VOICE.DETAILS"></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <md-list flex>\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.UNIQUEID">Uniqueid</p>\n <h4>{{vm.call.uniqueid}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.TYPE">Type</p>\n <h4>{{vm.call.type ? vm.call.type : \'no type\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.SOURCE">Source</p>\n <h4 privacy ng-cloak>{{vm.call.source ? vm.call.source : \'unknown\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.DESTINATION">Destination</p>\n <h4 privacy ng-cloak>{{vm.call.destination ? vm.call.destination : \'unknown\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.STARTEDAT">Started At</p>\n <h4>{{vm.call.starttime | date:\'medium\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.ANSWEREDAT">Answered At</p>\n <h4>{{vm.call.answertime ? (vm.call.answertime | date:\'medium\') : \'--\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.ENDEDAT">Ended At</p>\n <h4>{{vm.call.endtime ? (vm.call.endtime | date:\'medium\') : \'--\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.DURATION">Duration</p>\n <h4>{{vm.call.duration ? vm.call.duration : \'--\'}}s</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.BILLABLESECONDS">Billable Seconds</p>\n <h4>{{vm.call.billableseconds ? vm.call.billableseconds : \'--\'}}s</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.DISPOSITION">Disposition</p>\n <h4>{{vm.call.userDisposition ? vm.call.userDisposition : \'--\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</p>\n <h4>{{vm.call.userSecondDisposition ? vm.call.userSecondDisposition : \'--\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.THIRD_LEVEL_DISPOSITION">Third Level Disposition</p>\n <h4>{{vm.call.userThirdDisposition ? vm.call.userThirdDisposition : \'--\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.NOTE">Note</p>\n <h4>{{vm.call.note ? vm.call.note : \'--\'}}</h4>\n </div>\n </md-list-item>\n </md-list>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <md-button type="button" ng-click="vm.closeDialog()" class="send-button md-accent md-raised" aria-label="DISPOSE" translate="VOICE.CLOSE" translate-attr-aria-label="VOICE.DISPOSE">\n CLOSE\n </md-button>\n </md-dialog-actions>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/home/whatsapp/agent.general.whatsapp.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.WHATSAPP_INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.getWhatsappInteractions()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getWhatsappInteractions()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getWhatsappInteractions()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n <md-menu ng-if="vm.whatsappAccounts.rows && vm.whatsappAccounts.rows.length">\n <md-button class="md-icon-button create-new" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-repeat="whatsappAccount in vm.whatsappAccounts.rows">\n <md-button aria-label="compose" ng-click="vm.composeWhatsappInteraction($event, whatsappAccount)">\n {{ whatsappAccount.name }} ({{ whatsappAccount.key }})</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </md-toolbar>\n <md-table-container class="interactions-list">\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getWhatsappInteractions">\n <tr md-row>\n <th class="id-header" md-column md-order-by="id">\n {{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column class="no-padding width-5">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding width-5"></th>\n <th md-column class="no-padding width-5"></th>\n <th md-column md-order-by="contactName">{{\'DASHBOARDS.CONTACT\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.STARTEDAT\' | translate}}</th>\n <th md-column md-order-by="lastMsgAt">{{\'DASHBOARDS.LAST_MESSAGE\' | translate}}</th>\n <th md-column md-order-by="closed">{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>\n {{\'DASHBOARDS.ACCOUNT\' | translate}}\n </th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.whatsappInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available\n Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="interaction in vm.whatsappInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{interaction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in interaction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : u.fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="!interaction.closed && interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" layout-margin>{{interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="interaction.attach" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'no-margin-bottom\' : interaction.contactInfo}" layout-margin privacy ng-cloak>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text no-margin-top" layout-margin privacy ng-cloak>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell>\n <span class="font-size-10 text-truncate">{{interaction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell>\n <div layout="row" ng-if="interaction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}">\n </md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n <span ng-if="!interaction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell>\n <span ng-if="interaction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="interaction.disposition">-\n {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}</span></span>\n <md-tooltip class="multiline" ng-if="interaction.closed">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n <span ng-if="!interaction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="interaction.substatus"> -\n {{interaction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell class="user">\n <span class="font-size-12 text-truncate width-80">{{ vm.getAgentLabel(interaction) }}</span>\n </td>\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell class="whatsappAccount">\n {{ vm.getWhatsappAccountLabel(interaction) }}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <div layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions actions-padding">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.showWhatsappInteraction($event, interaction)" translate="DASHBOARDS.SHOW">\n Show Whatsapp\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions">\n <md-button ng-click="vm.downloadWhatsappInteraction($event, interaction)" translate="DASHBOARDS.DOWNLOAD">\n Download Whatsapp\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!interaction.closed">\n <md-button ng-click="vm.disposeInteraction($event, interaction)" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'DASHBOARDS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'DASHBOARDS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'DASHBOARDS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.whatsappInteractions.count}}" md-on-paginate="vm.getWhatsappInteractions" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/iframe/agent.general.iframe.html",'<md-content layout="row" layout-fill>\n\n <div flex layout="row">\n\n <iframe ng-src="{{vm.getTrustedURL()}}" frameborder=0 style="width: 100%; height: 100%; border:0px;"></iframe>\n\n </div>\n\n</md-content>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",'<md-dialog id="agent-general-dialog" aria-label="Spy Dialog">\n <div id="interaction-app" class="agent-content" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.html\'"></div>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.html",'\x3c!-- CONTENT CARD --\x3e\n<md-content class="content-card" layout="row" layout-fill>\n\n <div ng-if="!vm.showInteraction" class="start-point" flex layout="column" layout-align="center center" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.loading.html\'"></div>\n\n <div ng-if="vm.showInteraction" flex layout="row">\n\n <md-card flex="75" class="interaction">\n\n <md-content class="interaction-agents" layout="row" layout-align="start center" ng-if="!vm.interaction.closed && vm.interaction.Users.length">\n <strong layout-margin translate="DASHBOARDS.CURRENTLY_IN_USE_BY">Currently in use by </strong>\n\n <div ng-repeat="u in vm.interaction.Users">\n <img class="avatar-small" ng-src="api/users/{{u.id}}/avatar">\n <md-tooltip> {{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : vm.usersMap[u.id] | translate }}\n </md-tooltip>\n </div>\n </md-content>\n\n \x3c!-- TOOLBAR --\x3e\n <md-toolbar class="interaction-toolbar" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.html\'">\n </md-toolbar>\n \x3c!-- / TOOLBAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <md-content id="interaction-content" name="{{\'interaction-content-\' + vm.tab.id}}" flex ms-scroll layout-wrap>\n <div class="interaction-messages" ng-switch="vm.tab.channel">\n <div ng-switch-when="mail">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.interaction.mail.html\'">\n </div>\n </div>\n <div ng-switch-default>\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.interaction.html\'">\n </div>\n </div>\n </div>\n </md-content>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- FOOTER --\x3e\n <div ng-if="\n !vm.interaction.closed && ( vm.tab.channel == \'chat\' \n || (vm.tab.channel == \'openchannel\' && vm.account.replyUri) \n || (vm.tab.channel == \'sms\' && !vm.tab.spy) \n || (vm.tab.channel == \'whatsapp\' && !vm.tab.spy) )\n && (vm.user.role !== \'admin\' && vm.user.role !== \'user\')" class="interaction-footer flex-noshrink" layout="row" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.footer.html\'">\n </div>\n \x3c!-- / FOOTER--\x3e\n </md-card>\n\n <md-card layout="column" flex class="info" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.html\'">\n </md-card>\n </div>\n</md-content>\n\x3c!-- / CONTENT CARD --\x3e'),e.put("app/main/apps/dashboards/views/general/agent/interaction/compose/chat/dialog.html",'<md-dialog class="compose-dialog" aria-label="New Message">\n <form class="md-inline-form" name="composeForm" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div layout="row">\n <md-button ng-if="!vm.secret" ng-click="vm.send()" class="md-raised md-blue-bg white-fg" aria-label="Send message">\n <span translate="CHAT.SEND">SEND</span>\n </md-button>\n <md-button ng-if="vm.secret" ng-click="vm.addNote()" class="md-raised md-blue-bg white-fg" aria-label="Add note">\n <span translate="CHAT.ADD_NOTE">Add note</span>\n </md-button>\n </div>\n <span ng-if="!vm.secret" class="title">{{vm.message.from}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" aria-label="Close dialog" tranlate translate-aria-label="CHAT.CLOSE_DIALOG">\n <md-icon md-font-icon="icon-close"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container ng-if="!vm.secret" class="md-block to">\n <label translate="CHAT.TO">To</label>\n <md-chips name="to" ng-model="vm.message.to" md-transform-chip="vm.transformContact($chip)" md-separator-keys="vm.separatorKeys" md-require-match="false" md-max-chips="1" required>\n <md-autocomplete md-search-text="vm.searchTo" md-items="contact in vm.contactSearch(vm.searchTo)" md-item-text="contact.mobile" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n <div ng-messages="composeForm.to.$error" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TO_REQUIRED">To field is required</span>\n </div>\n </div>\n </md-input-container>\n <ms-emoji-area on-reply="vm.reply(event, body)" ctrl-methods="vm.ctrlMethods" ng-model="vm.message.body" placeholder="\'CHAT.INSERT_MESSAGE_HERE\'" picker-position="\'bottom\'"></ms-emoji-area>\n <md-autocomplete ng-if="!vm.secret" class="padding-top-5" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-selected-item-change="vm.selectedItemChange(item)" md-items="item in vm.searchTextChange(vm.searchText)" md-item-text="item.value" md-min-length="1" md-floating-label="{{ \'CHAT.CANNED_ANSWER_SEARCH\' | translate}}" class="input-show-hide no-container-margin">\n <md-item-template>\n <md-icon ng-if="!item.ChatAccountId" md-font-icon="icon-earth" aria-label="alert chat" class="s16"></md-icon>\n <md-icon ng-if="item.ChatAccountId" md-font-icon="icon-message-text" aria-label="alert chat" class="s16 orange-fg"></md-icon>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{item.key}} - {{item.value}}</span>\n </md-item-template>\n\n <md-not-found>\n <span translate="CHAT.CANNED_ANSWER_NOT_FOUND">No canned answers were found</span>\n </md-not-found>\n </md-autocomplete>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/compose/fax/dialog.html",'<md-dialog class="compose-dialog" aria-label="New Message">\n <form class="md-inline-form" name="composeForm" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div layout="row">\n <md-button ng-click="vm.send()" class="md-raised md-blue-bg white-fg" aria-label="Send message">\n <span translate="FAX.SEND">SEND</span>\n </md-button>\n <md-button ng-disabled="vm.message.attachments.length === 1" class="md-fab md-mini md-white-bg" aria-label="attachment" translate-attr-aria-label="DASHBOARDS.ATTACHMENT" flow-btn flow-name="vm.ngFlow.flow" flow-files-submitted="vm.upload()" flow-init="vm.ngFlowOptions" flow-file-added="vm.fileAdded($file)" flow-file-success="vm.fileSuccess($file, $message)">\n <md-icon md-font-icon="icon-paperclip" class="red-fg"></md-icon>\n </md-button>\n </div>\n <span class="title">{{vm.message.from}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" aria-label="Close dialog" tranlate translate-aria-label="FAX.CLOSE_DIALOG">\n <md-icon md-font-icon="icon-close"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <md-input-container class="md-block to">\n <label translate="FAX.TO">To</label>\n <md-chips name="to" ng-model="vm.message.to" md-transform-chip="vm.transformContact($chip)" md-separator-keys="vm.separatorKeys" md-require-match="false" md-max-chips="1" required>\n <md-autocomplete ng-hide="vm.message.to.length === 1" md-search-text="vm.searchTo" md-items="contact in vm.contactSearch(vm.searchTo)" md-item-text="contact.fax" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n <div ng-messages="composeForm.to.$error" ng-if="composeForm.$dirty">\n <div ng-message="required">\n <span translate="FAX.ERRORS.TO_REQUIRED">To field is required</span>\n </div>\n <div ng-message="md-max-chips">You reached the maximum amount of chips</div>\n </div>\n </md-input-container>\n <div class="attachment-list" ng-if="vm.message.attachments.length" layout="row" layout-wrap>\n <div class="attachment" layout="row" layout-align="space-between center" ng-repeat="attachment in vm.message.attachments">\n <div>\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n <span class="filename">{{attachment.name}}</span>\n <span class="size">({{attachment.size | byteFmt: 0}})</span>\n </div>\n <md-button class="md-icon-button" aria-label="Delete attachment" translate translate-attr-aria-label="FAX.DELETE_ATTACHMENT">\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/compose/mail/dialog.html",'<md-dialog class="compose-dialog" aria-label="New Message" ng-class="{\'mail-no-secret\': !vm.secret}" ng-cloak>\n <form class="md-inline-form" name="composeForm" novalidate>\n <md-toolbar ng-class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div layout="row">\n <div ng-if="!vm.secret" class="md-button md-raised blue-bg no-padding">\n <button class="white-fg margin-horizontal-10" aria-label="Send message" ng-disabled="!vm.verifySmtp" ng-click="vm.send($event, false, null)">\n <span>{{ \'MAIL.SEND\' | translate | uppercase }}</span>\n </button>\n <span class="white-fg secondary-text vertical-divider"></span>\n <md-menu>\n <button ng-disabled="!vm.verifySmtp" class="white-fg margin-left-0" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-menu-down" class="icon s24"></md-icon>\n </button>\n <md-menu-content width="2">\n <md-menu-item ng-if="vm.subStatuses.rows.length">\n <md-menu>\n <md-button ng-click="$mdMenu.open()" class="text-capitalize" translate="MAIL.SEND_AS">\n Send as\n </md-button>\n <md-menu-content>\n <md-menu-item ng-repeat="subStatus in vm.subStatuses.rows">\n <md-button ng-click="vm.send($event, false, subStatus.name)">\n {{subStatus.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.send($event, true, null)" translate="MAIL.SEND_AND_CLOSE">\n Send and Close\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <md-button ng-if="!vm.secret" class=" md-button md-raised blue-bg white-fg margin-horizontal-10" aria-label="Save draft" ng-click="vm.saveDraft()">\n <span>{{ (vm.isDraft ? \'DASHBOARDS.UPDATE_DRAFT\' : \'DASHBOARDS.SAVE_AS_DRAFT\') | translate | uppercase }}</span>\n </md-button>\n <md-button ng-if="vm.secret" ng-click="vm.addNote()" class="md-raised md-blue-bg white-fg" aria-label="Send message">\n <span translate="MAIL.ADD_NOTE">Add note</span>\n </md-button>\n <md-button ng-disabled="!vm.verifySmtp" class="md-fab md-mini md-white-bg" aria-label="attachment" translate-attr-aria-label="DASHBOARDS.ATTACHMENT" flow-btn flow-name="vm.ngFlow.flow" flow-files-submitted="vm.upload($files)" flow-init="vm.ngFlowOptions" flow-file-success="vm.fileSuccess($file, $message)" flow-file-added="vm.fileAdded($file)">\n <md-icon md-font-icon="icon-paperclip" class="red-fg"></md-icon>\n </md-button>\n </div>\n <span ng-if="!vm.secret" class="title">{{vm.message.from}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" aria-label="Close dialog" tranlate translate-aria-label="MAIL.CLOSE_DIALOG">\n <md-icon md-font-icon="icon-close"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container ng-if="!vm.secret" class="md-block to" ng-class="{\'hidden-cc\': vm.hiddenCC, \'hidden-bcc\': vm.hiddenBCC}">\n <label translate="MAIL.TO">To</label>\n <md-chips name="to" ng-model="vm.message.to" ng-keypress="vm.keyPress($event)" md-transform-chip="vm.transformContact($chip, vm.message.to)" md-separator-keys="vm.separatorKeys" md-require-match="false" required>\n <md-autocomplete md-search-text="vm.searchTo" md-items="contact in vm.contactSearch(vm.searchTo)" md-item-text="contact.email" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n <div ng-messages="composeForm.to.$error" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.TO_REQUIRED">To field is required</span>\n </div>\n </div>\n <div class="cc-bcc" layout="row" layout-align="start center">\n <div class="show-cc" ng-show="vm.hiddenCC" ng-click="vm.hiddenCC = false">CC</div>\n <div class="show-bcc" ng-show="vm.hiddenBCC" ng-click="vm.hiddenBCC = false">BCC</div>\n </div>\n </md-input-container>\n <md-input-container ng-if="!vm.secret" class="md-block" ng-hide="vm.hiddenCC">\n <label translate="MAIL.CC">Cc</label>\n <md-chips name="cc" ng-model="vm.message.cc" ng-keypress="vm.keyPress($event)" md-transform-chip="vm.transformContact($chip, vm.message.cc)" md-separator-keys="vm.separatorKeys" md-require-match="false" required>\n <md-autocomplete md-search-text="vm.searchCc" md-items="contact in vm.contactSearch(vm.searchCc)" md-item-text="contact.email" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n </md-input-container>\n <md-input-container ng-if="!vm.secret" class="md-block" ng-hide="vm.hiddenBCC">\n <label translate="MAIL.BCC">Bcc</label>\n <md-chips name="bcc" ng-model="vm.message.bcc" ng-keypress="vm.keyPress($event)" md-transform-chip="vm.transformContact($chip, vm.message.bcc)" md-separator-keys="vm.separatorKeys" md-require-match="false" required>\n <md-autocomplete md-search-text="vm.searchBcc" md-items="contact in vm.contactSearch(vm.searchBcc)" md-item-text="contact.email" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n </md-input-container>\n <md-input-container ng-if="!vm.secret" class="md-block no-margin">\n <label translate="MAIL.SUBJECT">Subject</label>\n <input ng-model="vm.message.subject" type="text" ng-keypress="vm.keyPress($event)">\n </md-input-container>\n <div class="attachment-list" ng-if="vm.message.attachments.length" layout="row" layout-wrap>\n <div class="attachment" layout="row" layout-align="space-between center" ng-repeat="attachment in vm.message.attachments">\n <div>\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n <span class="filename">{{attachment.name}}</span>\n <span class="size" ng-if="attachment.size">({{attachment.size | byteFmt: 0}})</span>\n </div>\n <md-button ng-click="vm.removeAttachment(attachment)" class="md-icon-button" aria-label="Delete attachment" translate translate-attr-aria-label="MAIL.DELETE_ATTACHMENT">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <div class="padding-top-5">\n <textarea ckeditor="vm.ckeditor" id="html-area" ng-model="vm.message.body" md-select-on-focus="" ready="vm.onReadyEditor()"></textarea>\n </div>\n <md-switch ng-if="!vm.message.showLastMessage && !vm.secret" ng-model="vm.message.showLastMessage" ng-change="vm.loadLastMessage()" aria-label="load last message"><span translate="MAIL.SHOW_ORIGINAL_MESSAGE">Show original message</span></md-switch>\n <md-autocomplete ng-if="!vm.secret" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-selected-item-change="vm.selectedItemChange(item)" md-items="item in vm.searchTextChange(vm.searchText)" md-item-text="item.value" md-min-length="1" md-floating-label="{{ \'MAIL.CANNED_ANSWER_SEARCH\' | translate}}" class="input-show-hide no-container-margin" ng-keypress="vm.keyPress($event)">\n <md-item-template>\n <md-icon ng-if="!item.MailAccountId" md-font-icon="icon-earth" aria-label="alert email" class="s16">\n </md-icon>\n <md-icon ng-if="item.MailAccountId" md-font-icon="icon-email" aria-label="alert email" class="s16 teal-fg"></md-icon>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{ item.key }} -\n {{ item.value | htmlToPlaintext }}</span>\n </md-item-template>\n <md-not-found>\n <span translate="MAIL.CANNED_ANSWER_NOT_FOUND">No canned answers were found</span>\n </md-not-found>\n </md-autocomplete>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/compose/openchannel/dialog.html",'<md-dialog class="compose-dialog" aria-label="New Message">\n <form class="md-inline-form" name="composeForm" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div layout="row">\n <md-button ng-if="!vm.secret" ng-click="vm.send()" class="md-raised md-blue-bg white-fg" aria-label="Send message">\n <span translate="OPENCHANNEL.SEND">SEND</span>\n </md-button>\n <md-button ng-if="vm.secret" ng-click="vm.addNote()" class="md-raised md-blue-bg white-fg" aria-label="Add note">\n <span translate="OPENCHANNEL.ADD_NOTE">Add note</span>\n </md-button>\n </div>\n <span ng-if="!vm.secret" class="title">{{vm.message.from}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" aria-label="Close dialog" tranlate translate-aria-label="OPENCHANNEL.CLOSE_DIALOG">\n <md-icon md-font-icon="icon-close"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container ng-if="!vm.secret" class="md-block to">\n <label translate="OPENCHANNEL.TO">To</label>\n <md-chips name="to" ng-model="vm.message.to" md-transform-chip="vm.transformContact($chip)" md-separator-keys="vm.separatorKeys" md-require-match="false" md-max-chips="1" required>\n <md-autocomplete md-search-text="vm.searchTo" md-items="contact in vm.contactSearch(vm.searchTo)" md-item-text="contact.mapkey" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n <div ng-messages="composeForm.to.$error" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TO_REQUIRED">To field is required</span>\n </div>\n </div>\n </md-input-container>\n <ms-emoji-area on-reply="vm.reply(event, body)" ctrl-methods="vm.ctrlMethods" ng-model="vm.message.body" placeholder="\'OPENCHANNEL.INSERT_MESSAGE_HERE\'" picker-position="\'bottom\'"></ms-emoji-area>\n <md-autocomplete ng-if="!vm.secret" class="padding-top-5" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-selected-item-change="vm.selectedItemChange(item)" md-items="item in vm.searchTextChange(vm.searchText)" md-item-text="item.value" md-min-length="1" md-floating-label="{{ \'OPENCHANNEL.CANNED_ANSWER_SEARCH\' | translate}}" class="input-show-hide no-container-margin">\n <md-item-template>\n <md-icon ng-if="!item.OpenchannelAccountId" md-font-icon="icon-earth" aria-label="alert openchannel" class="s16"></md-icon>\n <md-icon ng-if="item.OpenchannelAccountId" md-font-icon="icon-message-text" aria-label="alert openchannel" class="s16 orange-fg"></md-icon>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{item.key}} - {{item.value}}</span>\n </md-item-template>\n <md-not-found>\n <span translate="OPENCHANNEL.CANNED_ANSWER_NOT_FOUND">No canned answers were found</span>\n </md-not-found>\n </md-autocomplete>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/compose/sms/dialog.html",'<md-dialog class="compose-dialog" aria-label="New Message">\n <form class="md-inline-form" name="composeForm" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div layout="row">\n <md-button ng-if="!vm.secret" ng-click="vm.send()" class="md-raised md-blue-bg white-fg" aria-label="Send message">\n <span translate="SMS.SEND">SEND</span>\n </md-button>\n <md-button ng-if="vm.secret" ng-click="vm.addNote()" class="md-raised md-blue-bg white-fg" aria-label="Add note">\n <span translate="SMS.ADD_NOTE">Add note</span>\n </md-button>\n </div>\n <span ng-if="!vm.secret" class="title">{{vm.message.from}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" aria-label="Close dialog" tranlate translate-aria-label="SMS.CLOSE_DIALOG">\n <md-icon md-font-icon="icon-close"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container ng-if="!vm.secret" class="md-block to">\n <label translate="SMS.TO">To</label>\n <md-chips name="to" ng-model="vm.message.to" md-transform-chip="vm.transformContact($chip)" md-separator-keys="vm.separatorKeys" md-require-match="false" md-max-chips="1" required>\n <md-autocomplete md-search-text="vm.searchTo" md-items="contact in vm.contactSearch(vm.searchTo)" md-item-text="contact.mobile" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n <div ng-messages="composeForm.to.$error" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TO_REQUIRED">To field is required</span>\n </div>\n </div>\n </md-input-container>\n <ms-emoji-area on-reply="vm.reply(event, body)" ctrl-methods="vm.ctrlMethods" ng-model="vm.message.body" placeholder="\'SMS.INSERT_MESSAGE_HERE\'" picker-position="\'bottom\'"></ms-emoji-area>\n <md-autocomplete ng-if="!vm.secret" class="padding-top-5" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-selected-item-change="vm.selectedItemChange(item)" md-items="item in vm.searchTextChange(vm.searchText)" md-item-text="item.value" md-min-length="1" md-floating-label="{{ \'SMS.CANNED_ANSWER_SEARCH\' | translate}}" class="input-show-hide no-container-margin">\n <md-item-template>\n <md-icon ng-if="!item.SmsAccountId" md-font-icon="icon-earth" aria-label="alert sms" class="s16"></md-icon>\n <md-icon ng-if="item.SmsAccountId" md-font-icon="icon-message-text" aria-label="alert sms" class="s16 orange-fg"></md-icon>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{item.key}} - {{item.value}}</span>\n </md-item-template>\n <md-not-found>\n <span translate="SMS.CANNED_ANSWER_NOT_FOUND">No canned answers were found</span>\n </md-not-found>\n </md-autocomplete>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/compose/whatsapp/dialog.html",'<md-dialog class="compose-dialog" aria-label="New Message">\n <form class="md-inline-form" name="composeForm" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div layout="row">\n <md-button ng-if="!vm.secret" ng-click="vm.send()" class="md-raised md-blue-bg white-fg" aria-label="Send message">\n <span translate="WHATSAPP.SEND">SEND</span>\n </md-button>\n <md-button ng-if="vm.secret" ng-click="vm.addNote()" class="md-raised md-blue-bg white-fg" aria-label="Add note">\n <span translate="WHATSAPP.ADD_NOTE">Add note</span>\n </md-button>\n </div>\n <span ng-if="!vm.secret" class="title">{{vm.message.from}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" aria-label="Close dialog" tranlate translate-aria-label="WHATSAPP.CLOSE_DIALOG">\n <md-icon md-font-icon="icon-close"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container ng-if="!vm.secret" class="md-block to">\n <label translate="WHATSAPP.TO">To</label>\n <md-chips name="to" ng-model="vm.message.to" md-transform-chip="vm.transformContact($chip)" md-separator-keys="vm.separatorKeys" md-require-match="false" md-max-chips="1" required>\n <md-autocomplete md-search-text="vm.searchTo" md-items="contact in vm.contactSearch(vm.searchTo)" md-item-text="contact.mobile" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n <div ng-messages="composeForm.to.$error" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TO_REQUIRED">To field is required</span>\n </div>\n </div>\n </md-input-container>\n <ms-emoji-area on-reply="vm.reply(event, body)" ctrl-methods="vm.ctrlMethods" ng-model="vm.message.body" placeholder="\'WHATSAPP.INSERT_MESSAGE_HERE\'" picker-position="\'bottom\'"></ms-emoji-area>\n <md-autocomplete ng-if="!vm.secret" class="padding-top-5" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-selected-item-change="vm.selectedItemChange(item)" md-items="item in vm.searchTextChange(vm.searchText)" md-item-text="item.value" md-min-length="1" md-floating-label="{{ \'WHATSAPP.CANNED_ANSWER_SEARCH\' | translate}}" class="input-show-hide no-container-margin">\n <md-item-template>\n <md-icon ng-if="!item.WhatsappAccountId" md-font-icon="icon-earth" aria-label="alert whatsapp" class="s16">\n </md-icon>\n <md-icon ng-if="item.WhatsappAccountId" md-font-icon="icon-message-text" aria-label="alert whatsapp" class="s16 orange-fg"></md-icon>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{item.key}} - {{item.value}}</span>\n </md-item-template>\n <md-not-found>\n <span translate="WHATSAPP.CANNED_ANSWER_NOT_FOUND">No canned answers were found</span>\n </md-not-found>\n </md-autocomplete>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",'<md-dialog class="disposition-dialog" aria-label="disposition" ng-init="vm.onInit()">\n <form name="dispositionForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span ng-if="!vm.interaction.closed" class="title" translate="DASHBOARDS.DISPOSE"></span>\n <span ng-if="vm.interaction.closed" class="title" translate="DASHBOARDS.INFO"></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" ng-if="!vm.mandatoryDisposition">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="DASHBOARDS.DISPOSITION">Disposition</label>\n <md-select name="disposition" ng-model="vm.firstLevelDisposition" ng-change="vm.onDispositionChange(\'first\')" required>\n <md-option ng-value="null" ng-if="!vm.mandatoryDisposition">NONE</md-option>\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'first\' } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n <div ng-messages="dispositionForm.disposition.$error" ng-show="dispositionForm.disposition.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.firstLevelDisposition && vm.anySecondLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="DASHBOARDS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</label>\n <md-select name="secondLevelDisposition" ng-model="vm.secondLevelDisposition" ng-change="vm.onDispositionChange(\'second\')">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'second\', ParentId: vm.firstLevelDisposition.id } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.secondLevelDisposition" ng-click="vm.clearDispositionSelection(\'second\')" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear second level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <div ng-if="vm.secondLevelDisposition && vm.anyThirdLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="DASHBOARDS.THIRD_LEVEL_DISPOSITION">Third Level Disposition</label>\n <md-select name="thirdLevelDisposition" ng-model="vm.thirdLevelDisposition">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'third\', ParentId: vm.secondLevelDisposition.id } : true" ng-disabled="disposition.canSelect === false">{{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.thirdLevelDisposition" ng-click="vm.clearDispositionSelection(\'third\')" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear third level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <md-input-container class="md-block">\n <label translate="DASHBOARDS.NOTE">Note</label>\n <textarea ng-model="vm.interaction.note" md-maxlength="255" max-rows="5" autofocus></textarea>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.saveDisposition()" ms-dialog-spinner class="send-button md-accent md-raised" ng-if="!vm.interaction.closed && (vm.firstLevelDisposition || vm.secondLevelDisposition || vm.thirdLevelDisposition)" aria-label="CLOSE_AND_DISPOSE" translate="DASHBOARDS.CLOSE_AND_DISPOSE" translate-attr-aria-label="DASHBOARDS.CLOSE_AND_DISPOSE">\n CLOSE AND DISPOSE\n </md-button>\n <md-button type="submit" ng-click="vm.saveDisposition(false)" ms-dialog-spinner class="send-button md-accent md-raised" ng-if="!vm.interaction.closed && !vm.firstLevelDisposition" ng-disabled="vm.mandatoryDisposition" aria-label="CLOSE_WITHOUT_DISPOSE" translate="DASHBOARDS.CLOSE_WITHOUT_DISPOSE" translate-attr-aria-label="DASHBOARDS.CLOSE_WITHOUT_DISPOSE">\n CLOSE WITHOUT DISPOSE\n </md-button>\n <md-button type="submit" ng-click="vm.saveDisposition()" ms-dialog-spinner class="send-button md-accent md-raised" ng-if="vm.interaction.closed" ng-disabled="vm.mandatoryDisposition && !vm.firstLevelDisposition" aria-label="DISPOSE" translate="DASHBOARDS.DISPOSE" translate-attr-aria-label="DASHBOARDS.DISPOSE">\n DISPOSE\n </md-button>\n <div ng-if="vm.mandatoryDisposition">\n <md-icon md-font-icon="icon-information-outline" aria-label="Mandatory Disposition"></md-icon>\n <span class="no-margin font-size-12 line-height-30" translate="DASHBOARDS.HELP.MANDATORY_DISPOSITION_ENABLED"></span>\n </div>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/tag/dialog.html",'<md-dialog class="tag-dialog" aria-label="tag">\n <form name="tagForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="DASHBOARDS.TAGS"></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <md-chips ng-model="vm.interaction.Tags" md-autocomplete-snap md-require-match="vm.autocompleteRequireMatch">\n <md-autocomplete ng-blur="vm.searchText = \'\'" md-min-length="0" md-selected-item-change="vm.selectedItemChange" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-items="item in vm.tags.rows | filter:{ name: vm.searchText }" md-item-text="item.name" placeholder="Search for a tag">\n <span md-highlight-text="vm.searchText">{{item.name}}</span>\n </md-autocomplete>\n <md-chip-template>\n <span>\n <strong>{{$chip.name}}</strong>\n </span>\n </md-chip-template>\n </md-chips>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.saveTag(false)" ng-disabled="tagForm.$pristine" class="send-button md-accent md-raised" aria-label="TAG" translate="DASHBOARDS.SAVE" translate-attr-aria-label="DASHBOARDS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/transfer/dialog.html",'<md-dialog class="disposition-dialog" aria-label="disposition">\n <form name="transferForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="DASHBOARDS.TRANSFER"></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog(false)">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <md-input-container class="md-block">\n <label translate="DASHBOARDS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.transfer.type">\n <md-option ng-value="\'queue\'" ng-if="vm.account.queueTransfer">Queue</md-option>\n <md-option ng-value="\'agent\'" ng-if="vm.account.agentTransfer">Agent</md-option>\n </md-select>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.transfer.type === \'queue\'">\n <label translate="DASHBOARDS.QUEUES">Queues</label>\n <md-select name="queue" ng-model="vm.transfer.id" required>\n <md-option ng-value="queue.id" ng-repeat="queue in vm.queues.rows">{{ queue.name }}</md-option>\n </md-select>\n <div ng-messages="transferForm.queue.$error" ng-show="transferForm.queue.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.transfer.type === \'agent\'">\n <label translate="DASHBOARDS.AGENTS">Agents</label>\n <md-select name="agent" ng-model="vm.transfer.id" required>\n <md-option ng-value="agent.id" ng-repeat="agent in vm.agents.rows">{{\n agent.name }}</md-option>\n </md-select>\n <div ng-messages="transferForm.agent.$error" ng-show="transferForm.agent.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.onTransfer(true)" ng-disabled="transferForm.$pristine" class="send-button md-accent md-raised" aria-label="DASHBOARDS.TRANSFER" translate="DASHBOARDS.TRANSFER" translate-attr-aria-label="DASHBOARDS.TRANSFER">\n TRANSFER\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.footer.html",'\x3c!-- REPLY FORM --\x3e\n<div ng-show="vm.showFooter" layout="column" layout-align="center center" flex>\n <div layout="row" layout-align="center center" style="flex-grow: 1; align-self: stretch" flex>\n \x3c!-- msEmojyArea directive --\x3e\n <ms-emoji-area ng-if="vm.tab.channel != \'fax\'" on-reply="vm.reply(event, body)" ctrl-methods="vm.ctrlMethods" ng-model="vm.tab.areaText" placeholder="vm.tab.channel.toUpperCase() + \'.INSERT_MESSAGE_HERE\'"></ms-emoji-area>\n \x3c!-- / msEmojyArea directive --\x3e\n\n <div layout="row" layout-align="end center">\n <md-button ng-if="vm.tab.channel != \'fax\'" style="margin:1px;" class="md-icon-button md-mini" ng-click="vm.changeDisplayCannedAnswerInputValue()" aria-label="Search canned answer" translate translate-attr-aria-label="DASHBOARDS.SEND_MESSAGE">\n <md-icon md-font-icon="icon-auto-fix" class="green-fg"></md-icon>\n </md-button>\n\n <md-button ng-if="vm.tab.channel == \'openchannel\' || vm.tab.channel == \'chat\' || vm.tab.channel == \'fax\'" style="margin:1px;" class="md-icon-button md-warn md-mini" aria-label="attachment" translate-attr-aria-label="DASHBOARDS.ATTACHMENT" flow-btn flow-name="vm.ngFlow.flow" flow-files-submitted="vm.upload()" flow-init="vm.ngFlowOptions" flow-file-added="vm.fileAdded($file)" flow-file-success="vm.fileSuccess($file, $message)">\n <md-icon md-font-icon="icon-paperclip"></md-icon>\n </md-button>\n </div>\n </div>\n\n <md-autocomplete ng-hide="!vm.displayCannedAnswerInput" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-selected-item-change="vm.selectedItemChange(item)" md-items="item in vm.searchTextChange(vm.searchText)" md-item-text="item.value" md-min-length="1" placeholder="{{ \'DASHBOARDS.CANNED_ANSWER_SEARCH\' | translate}}" class="cannedarea input-show-hide">\n <md-item-template>\n <md-icon ng-if="!item[vm.tab.channel === \'chat\' ? \'ChatWebsiteId\' : _.capitalize(vm.tab.channel) + \'AccountId\']" md-font-icon="icon-earth" aria-label="alert channel" class="s16"></md-icon>\n <md-icon ng-if="item[vm.tab.channel === \'chat\' ? \'ChatWebsiteId\' : _.capitalize(vm.tab.channel) + \'AccountId\']" md-font-icon="{{vm.getIconByChannel(vm.tab.channel)}}" aria-label="alert channel" class="s16" ng-class="vm.getColorByChannel(vm.tab.channel) + \'-fg\'"></md-icon>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{item.key}} - {{item.value}}</span>\n </md-item-template>\n\n <md-not-found>\n <span translate="DASHBOARDS.CANNED_ANSWER_NOT_FOUND">No canned answers were found</span>\n </md-not-found>\n </md-autocomplete>\n</div>\n\x3c!-- / REPLY FORM --\x3e'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.chat.html",'<div ng-init="item = item || vm.interaction">\n <md-list-item class="md-2-line" ng-if="item.browserName">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.BROWSER_NAME">Browser Name</p>\n <h4>{{ item.browserName }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.osName">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.OS_NAME">OS Name</p>\n <h4>{{ item.osName }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.deviceModel">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.DEVICE_MODEL">Device Model</p>\n <h4>{{ item.deviceModel }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.referer">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.REFERER">Referer</p>\n <h4>{{ item.referer }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.customerIp">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CUSTOMER_IP">Originating IP Address</p>\n <h4>{{ item.customerIp }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.customerPort">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CUSTOMER_PORT">Originating TCP Port</p>\n <h4>{{ item.customerPort }}</h4>\n </div>\n </md-list-item>\n <md-divider ng-if="item.closed && item.ratingValue != null || item.ratingMessage"></md-divider>\n <md-list-item class="md-2-line" ng-if="item.closed && item.ratingValue != null">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.RATING">Rating</p>\n <md-icon md-font-icon="icon-star" style="color:red" ng-show="!item.ratingType || item.ratingType == \'star\'" ng-repeat="ratingValue in [1,2,3,4,5] | limitTo:item.ratingValue"></md-icon>\n <md-icon md-font-icon="icon-thumb-up" style="color:green" ng-show="item.ratingType && item.ratingType == \'thumb\' && item.ratingValue == 1"></md-icon>\n <md-icon md-font-icon="icon-thumb-down" style="color:red" ng-show="item.ratingType && item.ratingType == \'thumb\' && item.ratingValue == 0"></md-icon>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.ratingMessage">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.FEEDBACK">Feedback</p>\n <h4 style="overflow-wrap: break-word; white-space: normal">{{ item.ratingMessage }}</h4>\n </div>\n </md-list-item>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.html",'<md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex>\n <md-tab>\n <md-tab-label>\n <span translate="DASHBOARDS.CONTACT">Contact</span>\n </md-tab-label>\n <md-tab-body>\n <md-content class="md-padding">\n <form name="contactForm" class="md-inline-form" novalidate>\n <md-input-container class="md-block">\n <md-icon md-font-icon="icon-account"></md-icon>\n <label translate="DASHBOARDS.NAME">Name</label>\n <input type="text" name="firstName" ng-model="vm.contact.firstName" disabled privacy ng-cloak>\n </md-input-container>\n\n <md-input-container class="md-block">\n <md-icon md-font-icon="icon-email"></md-icon>\n <label translate="DASHBOARDS.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.contact.email" disabled privacy ng-cloak>\n </md-input-container>\n\n <md-input-container class="md-block">\n <md-icon md-font-icon="icon-phone"></md-icon>\n <label translate="DASHBOARDS.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.contact.phone" disabled privacy ng-cloak>\n </md-input-container>\n\n <md-input-container class="md-block">\n <md-icon md-font-icon="icon-cellphone-iphone"></md-icon>\n <label translate="DASHBOARDS.MOBILE">Mobile</label>\n <input type="text" name="mobile" ng-model="vm.contact.mobile" disabled privacy ng-cloak>\n </md-input-container>\n\n <md-input-container class="md-block">\n <md-icon md-font-icon="icon-deskphone"></md-icon>\n <label translate="DASHBOARDS.FAX">Fax</label>\n <input type="text" name="fax" ng-model="vm.contact.fax" disabled privacy ng-cloak>\n </md-input-container>\n\n <div ng-if="!vm.tab.spy" layout="row" layout-align="center center">\n <md-button class="md-raised md-accent" ng-click="vm.openContact(ev)" translate="DASHBOARDS.MORE">\n More\n </md-button>\n </div>\n </form>\n </md-content>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="DASHBOARDS.INTERACTION">Interaction</span>\n </md-tab-label>\n <md-tab-body>\n <div layout="column" layout-align="space-between center" class="md-padding">\n <md-icon class="s42" md-font-icon="{{vm.getIconByChannel(vm.tab.channel)}}" ng-class="vm.getColorByChannel(vm.tab.channel) + \'-fg\'"></md-icon>\n <span ng-if="vm.interaction.closed" class="md-background-bg red-fg font-size-14">#{{vm.interaction.id}} - <span translate="DASHBOARDS.CLOSED"></span></span>\n <span ng-if="!vm.interaction.closed" class="md-background-bg green-fg font-size-14">#{{vm.interaction.id}} -\n <span translate="DASHBOARDS.OPENED"></span></span>\n <span ng-if="!vm.interaction.closed && vm.interaction.substatus" class="md-background-bg green-fg font-size-14">{{vm.interaction.substatus}}</span>\n </div>\n <md-divider></md-divider>\n <md-list flex>\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.WEBSITE" ng-if="vm.tab.channel == \'chat\'">Website</p>\n <p translate="DASHBOARDS.ACCOUNT" ng-if="vm.tab.channel != \'chat\'">Account</p>\n <h4>{{vm.account.name}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.AGENT">Agent</p>\n <h4>{{vm.agent.fullname || vm.usersMap[vm.interaction.UserId]}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line" ng-if="vm.interaction.externalUrl">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.EXTERNAL_URL">External URL</p>\n <a href="{{vm.interaction.externalUrl}}" target="_blank">\n <h4>{{vm.interaction.externalUrl}}</h4>\n </a>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CREATED_AT">Created At</p>\n <h4>{{vm.interaction.createdAt | date: \'medium\'}}</h4>\n </div>\n </md-list-item>\n\n <div ng-switch="vm.tab.channel">\n <div ng-switch-when="chat">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.chat.html\'">\n </div>\n </div>\n <div ng-switch-when="mail">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.mail.html\'">\n </div>\n </div>\n <div ng-switch-when="openchannel">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.openchannel.html\'">\n </div>\n </div>\n </div>\n\n <md-list-item class="md-2-line" ng-if="vm.interaction.Tags.length">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.TAGS">Tags</p>\n <div class="tags padding-bottom-5" layout="row" layout-align="start center" layout-wrap>\n <div class="tag margin-right-5 margin-top-5 margin-bottom-5" layout="row" layout-align="center center" ng-repeat="tag in vm.interaction.Tags">\n <div class="tag-color" ng-style="{\'background\': tag.color}"></div>\n <div class="tag-label">{{tag.name}}</div>\n </div>\n </div>\n </div>\n </md-list-item>\n\n <md-divider ng-if="vm.interaction.closed"></md-divider>\n\n <md-list-item class="md-2-line" ng-if="vm.interaction.closed">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CLOSED_AT">Closed At</p>\n <h4>{{vm.interaction.closedAt | date: \'medium\'}}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="vm.interaction.closed && vm.interaction.disposition">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.DISPOSITION">Disposition</p>\n <h4>{{ vm.interaction.disposition }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="vm.interaction.closed && vm.interaction.secondDisposition">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</p>\n <h4>{{ vm.interaction.secondDisposition }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="vm.interaction.closed && vm.interaction.thirdDisposition">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.THIRD_LEVEL_DISPOSITION">Third Level Disposition</p>\n <h4>{{ vm.interaction.thirdDisposition }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-3-line md-long-text" ng-if="vm.interaction.closed && vm.interaction.note">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.NOTE">NOTE</p>\n <h4 style="overflow-wrap: break-word; white-space: normal">{{ vm.interaction.note }}</h4>\n </div>\n </md-list-item>\n </md-list>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="DASHBOARDS.CUSTOMER_JOURNEY">Journey</span>\n </md-tab-label>\n <md-tab-body>\n <md-content class="md-padding">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.html\'">\n </div>\n </md-content>\n </md-tab-body>\n </md-tab>\n</md-tabs>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.all.html",'<md-divider></md-divider>\n<md-list flex>\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.AGENT">Agent</p>\n <h4>{{ vm.agent.fullname || vm.usersMap[item.UserId] || \'DASHBOARDS.NOT_ASSIGNED\' | translate }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.externalUrl">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.EXTERNAL_URL">External URL</p>\n <a href="{{ item.externalUrl }}" target="_blank">\n <h4>{{ item.externalUrl }}</h4>\n </a>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CREATED_AT">Created At</p>\n <h4>{{ item.createdAt | date: \'medium\' }}</h4>\n </div>\n </md-list-item>\n <div ng-if="item.channel === \'chat\'">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.chat.html\'">\n </div>\n </div>\n <div ng-if="item.channel === \'mail\'">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.mail.html\'">\n </div>\n </div>\n <md-divider ng-if="item.closed"></md-divider>\n <md-list-item class="md-2-line" ng-if="item.closed">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CLOSED_AT">Closed At</p>\n <h4>{{ item.closedAt | date: \'medium\' }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.closed && item.disposition">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.DISPOSITION">Disposition</p>\n <h4>{{ item.disposition }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.closed && item.secondDisposition">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</p>\n <h4>{{ item.secondDisposition }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.closed && item.thirdDisposition">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.THIRD_LEVEL_DISPOSITION">Third Level Disposition</p>\n <h4>{{ item.thirdDisposition }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-3-line md-long-text" ng-if="item.closed && item.note">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.NOTE">NOTE</p>\n <h4 style="overflow-wrap: break-word; white-space: normal">{{ item.note }}</h4>\n </div>\n </md-list-item>\n <md-list-item ng-if="item.Tags.length">\n <p class="padding-horizontal-15 grey-fg">Tags</p>\n <div class="tags padding-bottom-5" layout="row" layout-align="start center" layout-wrap>\n <div class="tag margin-right-5 margin-top-5 margin-bottom-5" layout="row" layout-align="center center" ng-repeat="tag in item.Tags">\n <div class="tag-color" ng-style="{\'background\': tag.color}"></div>\n <div class="tag-label">{{ tag.name }}</div>\n </div>\n </div>\n </md-list-item>\n</md-list>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.html",'<div layout-margin layout="row" layout-align="center center">\n <ms-quick-filter filters="vm.quickFilters" query="vm.journeyOptions" search="vm.getCustomerJourney()">\n </ms-quick-filter>\n</div>\n\n<md-content id="journey-content" flex ms-scroll layout-wrap>\n <div ng-if="vm.journeyIsLoading" layout="row" layout-align="center center">\n <md-progress-circular class="md-accent" md-diameter="48" md-mode="indeterminate"></md-progress-circular>\n </div>\n <div id="timeline" layout="column" ng-if="vm.journey && vm.journey.length && !vm.journeyIsLoading" ms-timeline="vm.journeyTimelineOptions" ms-timeline-load-more="vm.loadMoreJourney()">\n \x3c!-- TIMELINE ITEM --\x3e\n <div class="ms-timeline-item" layout-align="center center" ng-repeat="item in vm.journey">\n <div class="timeline-card">\n <md-card class="channel" ng-class="{\'md-grey-200-bg\': item.id == vm.interaction.id}">\n <div layout="row" layout-align="space-between center">\n <div class="header p-6" layout="row" layout-align="start center" ng-cloak>\n <md-button class="md-fab md-mini no-click" aria-label="icon-channel" ng-class="{{ \'item.style.color\' }} + \'-bg\'">\n <md-icon md-font-icon="{{ item.style.icon }}"></md-icon>\n </md-button>\n <div class="info" layout="column" ng-init="item.showMore = false">\n <span class="font-size-12 text-truncate" ng-if="item.destination">\n #{{item.id}} - <span privacy ng-cloak>{{ item.destination }}</span>\n </span>\n <span class="font-size-12 text-truncate" ng-if="!item.destination">\n #{{item.id}} - {{ item.Account.key }}\n </span>\n <span class="font-size-10">{{item.createdAt | date: \'medium\'}}</span>\n <span>\n <a class="toggle-details md-accent-color" ng-click="item.showMore = !item.showMore" translate="{{ item.showMore ? \'DASHBOARDS.HIDE_DETAILS\' : \'DASHBOARDS.SHOW_DETAILS\' }}">\n </a>\n </span>\n </div>\n </div>\n <span>\n <img ng-if="item.UserId" class="avatar" ng-src="api/users/{{item.UserId}}/avatar">\n <md-tooltip md-direction="left">{{item.Owner.fullname || item.User.fullname}}</md-tooltip>\n </span>\n </div>\n <div ng-if="item.showMore">\n <div ng-if="item.channel !== \'voice\'" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.all.html\'">\n </div>\n <div ng-if="item.channel === \'voice\'" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.voice.html\'">\n </div>\n </div>\n <md-divider></md-divider>\n <div ng-if="item.id != vm.interaction.id" layout="row" layout-align="space-around center">\n <div ng-if="item.closed && item.channel !== \'voice\'" class="text-truncate text-boxed-light">\n <span class="red-fg" title="{{ \'DASHBOARDS.STATUS\' | translate}} : {{ \'DASHBOARDS.CLOSED\' | translate }} {{ item.dispositionsValues }}">\n {{ \'DASHBOARDS.STATUS\' | translate}} : {{ \'DASHBOARDS.CLOSED\' | translate}} {{ item.dispositionsValues\n }}\n </span>\n </div>\n <span class="text-boxed md-background-bg green-fg" ng-if="!item.closed && item.channel !== \'voice\'" title="{{ \'DASHBOARDS.STATUS\' | translate}}: {{ \'DASHBOARDS.OPENED\' | translate}}">\n {{ \'DASHBOARDS.STATUS\' | translate}}:\n {{ \'DASHBOARDS.OPENED\' | translate}}\n <span ng-if="item.substatus"> - {{ item.substatus }}</span>\n </span>\n <span ng-if="item.channel === \'voice\'" class="text-boxed md-background-bg red-fg" title="{{ item.userDisposition ? (\'DASHBOARDS.DISPOSITION\' | translate) + \':\' : \'\'}} {{ item.userDisposition ?\n item.userDisposition : (\'DASHBOARDS.NO_DISPOSITION_SET\' | translate) }}">\n {{ item.userDisposition ? (\'DASHBOARDS.DISPOSITION\' | translate) + \':\' : \'\'}} {{ item.userDisposition ?\n item.userDisposition : (\'DASHBOARDS.NO_DISPOSITION_SET\' | translate) }}\n </span>\n <span ng-if="item.channel === \'voice\' && item.userSecondDisposition" class="text-boxed md-background-bg red-fg" title="{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}: {{ item.userSecondDisposition }}">\n {{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:\n {{ item.userSecondDisposition }}\n </span>\n <span ng-if="item.channel === \'voice\' && item.userThirdDisposition" class="text-boxed md-background-bg red-fg" title="{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}: {{ item.userThirdDisposition }}">\n {{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:\n {{ item.userThirdDisposition }}\n </span>\n <div flex></div>\n <md-button ng-if="!vm.tab.spy && vm.user.role === \'agent\' && item.canOpen && item.channel !== \'voice\'" class="md-icon-button" aria-label="go" ng-click="vm.openInteraction(item)">\n <md-icon md-font-icon="icon-open-in-new" class="s20"></md-icon>\n </md-button>\n </div>\n </md-card>\n </div>\n </div>\n\n <div ng-if="vm.canLoadMoreJourney" layout="row" layout-align="center center" class="ng-scope layout-align-center-center layout-row keep-on-top">\n <md-button class="md-raised md-accent md-button ng-scope md-default-theme md-ink-ripple" type="button" ng-click="vm.loadMoreJourney()" translate="DASHBOARDS.MORE">\n </md-button>\n </div>\n </div>\n \x3c!-- / TIMELINE ITEM --\x3e\n</md-content>\n\n<div ng-if="!vm.journey || vm.journey.length === 0" layout="row" layout-align="center center">\n <em translate="DASHBOARDS.NO_DATA_AVAILABLE">No data available</em>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.voice.html",'<md-divider></md-divider>\n\n<md-list flex>\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.TYPE">Type</p>\n <h4>{{ item.type ? item.type : \'no type\' }}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.SOURCE">Source</p>\n <h4 privacy ng-cloak>{{ item.source ? item.source : (\'DASHBOARDS.UNKNOWN\' | translate) }}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.DESTINATION">Destination</p>\n <h4 privacy ng-cloak>{{ item.destination ? item.destination : (\'DASHBOARDS.UNKNOWN\' | translate) }}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.UNIQUEID">Uniqueid</p>\n <h4>{{ item.uniqueid ? item.uniqueid : (\'DASHBOARDS.UNKNOWN\' | translate) }}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CALLERID">Caller Id</p>\n <h4 privacy ng-cloak>{{ item.callerid ? item.callerid : (\'DASHBOARDS.UNKNOWN\' | translate) }}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.STARTEDAT">Started At</p>\n <h4>{{ item.starttime | date:\'medium\' }}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.END_AT">End At</p>\n <h4>{{ item.endtime | date:\'medium\' }}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.DURATION">Duration</p>\n <h4>{{ item.duration ? item.duration : \'--\' }}s</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.NOTE">Note</p>\n <h4>{{ item.note ? item.note : \'--\' }}</h4>\n </div>\n </md-list-item>\n</md-list>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.mail.html",'<div ng-init="item = item || vm.interaction">\n <md-list-item class="md-2-line" ng-if="item.subject">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.SUBJECT">Subject</p>\n <h4>{{ item.subject }}</h4>\n </div>\n </md-list-item>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.openchannel.html",'<div ng-init="item = item || vm.interaction">\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.VISIBILITY">Visibility</p>\n <h4 translate="{{ item.threadId ? \'DASHBOARDS.PUBLIC\' : \'DASHBOARDS.PRIVATE\'}}"></h4>\n </div>\n </md-list-item>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.interaction.html",'\x3c!-- MESSAGES --\x3e\n<div layout="row" ng-repeat="message in vm.messages.rows" class="md-padding message-row" ng-class="vm.getMessagesAlignment(message)">\n <img ng-if="message.direction ===\'in\'" src="assets/images/avatars/customer.png" class="avatar" />\n <img ng-if="message.direction ===\'out\' && message.UserId && !message.secret" ng-src="api/users/{{message.UserId}}/avatar" class="avatar" />\n <img ng-if="message.direction ===\'out\' && message.UserId && message.secret" ng-src="api/users/{{message.UserId}}/avatar" class="avatar" />\n <img ng-if="message.direction ===\'out\' && !message.UserId" class="avatar" src="assets/images/avatars/robot.png">\n <md-button ng-if="vm.tab.channel === \'fax\'" class="md-fab md-mini no-margin" aria-label="Download" ng-click="vm.downloadMessage(message)">\n <md-icon md-font-icon="icon-download" class="icon s24"></md-icon>\n </md-button>\n\n <div class="bubble" ng-class="{\'md-yellow-200-bg\': message.secret}" ng-switch="message.direction">\n <div ng-if="message.secret">\n <div class="time secondary-text" layout="row" layout-align="end center">\n <div layout-padding>\n <span privacy ng-cloak>{{ vm.getLabelByMessage(message) }}</span>\n <span> - {{message.createdAt | date: \'medium\'}}</span>\n </div>\n <div ng-if="message.id">\n <md-icon class="s18" md-font-icon="icon-lock"></md-icon>\n </div>\n </div>\n </div>\n <div ng-if="!message.secret">\n <div ng-switch-when="in" class="time secondary-text" ng-click="message.Contact && vm.openContact(ev, message.Contact)">\n <span privacy ng-cloak>{{ vm.getLabelByMessage(message) }}</span>\n <span> - {{message.createdAt | date: \'medium\'}}</span>\n </div>\n <div ng-switch-when="out" class="time secondary-text" layout="row" layout-align="end center">\n <div layout-padding>\n <span privacy ng-cloak>{{ vm.getLabelByMessage(message) }}</span>\n <span> - {{message.createdAt | date: \'medium\'}}</span>\n </div>\n <div ng-if="message.id && vm.tab.channel !== \'fax\'">\n <md-icon ng-if="!message.read" class="s18" md-font-icon="icon-check"></md-icon>\n <md-icon ng-if="message.read" class="s18" md-font-icon="icon-check-all md-accent"></md-icon>\n </div>\n <div ng-if="message.id && vm.tab.channel === \'fax\'">\n <md-icon ng-if="!message.read && !(message.failMessage )" class="s18" md-font-icon="icon-check"></md-icon>\n <md-icon ng-if="message.read" class="s18" md-font-icon="icon-check-all md-accent"></md-icon>\n <span ng-if="!message.read && message.failMessage" class="s18 red-900-fg"> {{ message.failMessage }}</span>\n <md-icon ng-if="!message.read && message.failMessage" class="s18 red-900-fg" md-font-icon="icon-close md-accent"></md-icon>\n </div>\n </div>\n </div>\n <div ng-if="message.AttachmentId" layout="row" layout-align="end center">\n <md-button ng-if="vm.downloadPermissions.attachments" class="md-raised md-accent" ng-click="vm.getAttachment({id: message.AttachmentId, name: vm.htmlToPlaintext(message.body)})">\n <span>{{vm.htmlToPlaintext(message.body)}}</span>\n <md-icon md-font-icon="icon-download"></md-icon>\n </md-button>\n <div ng-if="!vm.downloadPermissions.attachments" class="disabled-button">\n <span>{{vm.htmlToPlaintext(message.body)}}</span>\n <md-icon md-font-icon="icon-download"></md-icon>\n </div>\n </div>\n <div ng-if="!message.AttachmentId" class="message" layout="row" layout-align="end center">\n <span ng-bind-html="message.body | embed: vm.embedOptions"></span>\n </div>\n </div>\n</div>\n\x3c!-- / MESSAGES --\x3e'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.interaction.mail.html",'<div ms-timeline="vm.interactionTimelineOptions" ms-timeline-load-more="vm.loadNextPage()">\n <div ng-repeat="message in vm.messages.rows track by message.id" ng-init="vm.selectedMailShowSystemMessage[message.id] = false">\n <md-card ng-if="message.secret" class="md-padding md-yellow-100-bg" layout="column">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="api/users/{{message.UserId}}/avatar">\n <div layout="column">\n <span class="grey-fg">{{vm.agent.fullname || vm.usersMap[message.UserId]}}</span>\n <span class="grey-fg">{{message.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n <div layout="row" layout-align="center center" layout-fill ng-if="message.attach && vm.downloadPermissions.attachments">\n <div flex>\n <md-divider></md-divider>\n </div>\n <md-menu>\n <md-button aria-label="attachments" class="md-icon-button" ng-click="vm.getAttachments(message); $mdOpenMenu($event);">\n <md-tooltip md-direction="bottom"><span translate="MAIL.ATTACHMENTS">Attachments</span>\n </md-tooltip>\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="icon s24"></md-icon>\n <span>{{message.attach}}</span>\n </div>\n </md-button>\n <md-menu-content width="4">\n <div layout="column" layout-align="center center" ng-if="!message.attachments">\n <md-progress-circular md-mode="indeterminate"></md-progress-circular>\n <span translate="MAIL.ATTACHMENTS">Attachments</span>\n </div>\n <md-menu-item ng-if="message.attachments" ng-repeat="attachment in message.attachments">\n <md-button ng-click="vm.getAttachment(attachment)">\n {{ attachment.name || (\'attachment-\' + $index) }}</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n <div flex>\n <md-divider></md-divider>\n </div>\n </div>\n <div class="padding-top-5" ng-bind-html-unsafe="message.body"></div>\n </md-card>\n <div ng-if="!message.secret">\n <div layout="row" layout-align="center center" ng-if="message.direction == \'out\' && !message.UserId && !vm.selectedMailShowSystemMessage[message.id]">\n <md-button class="md-raised blue-grey-300-bg white-fg" ng-click="vm.selectedMailShowSystemMessage[message.id] = !vm.selectedMailShowSystemMessage[message.id]">\n [{{message.createdAt | date: \'medium\'}}] {{ \'MAIL.SHOW_AUTOREPLY\' | translate }}</md-button>\n </div>\n <md-card layout="column" class="md-padding message-row" ng-if="message.direction == \'in\' || (message.direction == \'out\' && (message.UserId || vm.selectedMailShowSystemMessage[message.id]))">\n <md-content class="mail-content">\n <div class="info" layout="row" layout-align="space-between start">\n <div layout="column" layout-align="start start">\n <div layout="row" layout-align="start start">\n <div layout="column" layout-align="start start">\n <div class="name" ng-click="message.Contact && vm.openContact(ev, message.Contact)">\n <strong privacy ng-cloak>{{message.from}}</strong>\n <md-icon ng-if="message.attach" md-font-icon="icon-paperclip" class="s16">\n </md-icon>\n </div>\n <div class="name">\n <div>{{message.subject}}</div>\n </div>\n <div class="name" layout="row" layout-align="start center"><span translate="MAIL.TO">To</span>: <span class="padding-left-5 subject text-truncate" privacy ng-cloak>{{ message.originTo || message.to\n }}</span>\n </div>\n <div class="name padding-top-10" layout="row" layout-align="start center" ng-if="message.direction == \'in\' && message.originCc && message.originCc.indexOf(vm.account.email) >= 0">\n <em><span class="blue-grey" translate="MAIL.YOU_ARE_REGISTERED_AS_A">You are\n registered as a</span> <span class="blue-grey">CC</span></em>\n </div>\n <div class="name padding-top-10" layout="row" layout-align="start center" ng-if="message.direction == \'in\' && message.bcc && message.bcc.indexOf(vm.account.email) >= 0">\n <em><span class="red-fg" translate="MAIL.YOU_ARE_REGISTERED_AS_A">You are\n registered as a</span> <span class="red-fg">BCC</span></em>\n </div>\n </div>\n </div>\n\n <a class="toggle-details md-accent-color" ng-hide="vm.selectedMailShowDetails[message.id]" ng-click="vm.selectedMailShowDetails[message.id] = !vm.selectedMailShowDetails[message.id]" translate="MAIL.SHOW_DETAILS">\n Show Details\n </a>\n <a class="toggle-details md-accent-color" ng-show="vm.selectedMailShowDetails[message.id]" ng-click="vm.selectedMailShowDetails[message.id] = !vm.selectedMailShowDetails[message.id]" translate="MAIL.HIDE_DETAILS">\n Hide Details\n </a>\n <div ng-show="vm.selectedMailShowDetails[message.id]" class="details" layout="row" layout-align="start start">\n <div layout="column">\n <span class="title" translate="MAIL.DATE">Date:</span>\n <span class="title" translate="MAIL.FROM">From:</span>\n <span class="title" translate="MAIL.TO">To:</span>\n \x3c!-- NOTE: Start retrocompatibility with replyCc 2.0.66 --\x3e\n <span class="title" translate="MAIL.CC" ng-if="message.direction === \'in\' && message.originCc">Cc:</span>\n <span class="title" translate="MAIL.CC" ng-if="message.direction === \'in\' && !message.originCc && !message.originTo && message.cc">Cc:</span>\n <span class="title" translate="MAIL.CC" ng-if="message.direction === \'out\' && message.cc">Cc:</span>\n \x3c!-- End retrocompatibility --\x3e\n <span class="title" translate="MAIL.BCC" ng-if="message.bcc">Bcc:</span>\n <span class="title" translate="MAIL.ACCEPTED" ng-if="message.UserId && message.direction ===\'in\'">Accepted:</span>\n </div>\n\n <div layout="column">\n <span class="detail">{{message.createdAt | date:\'medium\'}}</span>\n <span class="detail" privacy ng-cloak>{{message.from}}</span>\n <span class="detail" privacy ng-cloak>{{message.originTo || message.to}}</span>\n \x3c!-- NOTE: Start retrocompatibility with replyCc 2.0.66 --\x3e\n <span class="detail" ng-if="message.direction === \'in\' && message.originCc" privacy ng-cloak>{{\n message.originCc }}</span>\n <span class="detail" ng-if="message.direction === \'in\' && !message.originCc && !message.originTo && message.cc" privacy ng-cloak>{{ message.cc }}</span>\n <span class="detail" ng-if="message.direction === \'out\' && message.cc" privacy ng-cloak>{{ message.cc\n }}</span>\n \x3c!-- End retrocompatibility --\x3e\n <span class="detail" ng-if="message.bcc" privacy ng-cloak>{{message.bcc}}</span>\n <span class="detail" ng-if="message.UserId && message.direction ===\'in\'">{{vm.usersMap[message.UserId]}}</span>\n </div>\n </div>\n </div>\n\n <div layout="row" layout-align="center center">\n <div layout="column" layout-align="center end" class="md-padding">\n <span class="grey-fg" ng-if="message.direction ===\'in\'" privacy>{{message.from.indexOf(vm.contact.email)\n >= 0 ? vm.contact.firstName + \' \' + vm.contact.lastName : \'*\' + message.from}}</span>\n <span class="grey-fg" ng-if="message.direction ===\'out\' && message.UserId">{{vm.agent.fullname ||\n vm.usersMap[message.UserId]}}</span>\n <span class="grey-fg" ng-if="message.direction ===\'out\' && !message.UserId">System</span>\n <span class="grey-fg">{{message.createdAt | date:\'medium\'}}</span>\n </div>\n <img ng-if="message.direction ===\'in\'" ng-src="assets/images/avatars/customer.png" class="avatar" alt="customer" />\n <img ng-if="message.direction ===\'out\' && message.UserId" class="avatar" ng-src="api/users/{{message.UserId}}/avatar">\n <img ng-if="message.direction ===\'out\' && !message.UserId" class="avatar" src="assets/images/avatars/robot.png">\n </div>\n </div>\n\n <div layout="row" layout-align="center center" layout-fill>\n <div flex>\n <md-divider></md-divider>\n </div>\n <div>\n <div class="interaction-reply-button-container">\n <md-tooltip md-direction="bottom"><span translate="DASHBOARDS.DRAFT">Draft</span>\n </md-tooltip>\n <md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="draft" ng-disabled="!vm.draft" ng-click="vm.openDraft(message.id)">\n <md-icon md-font-icon="icon-pencil-box" class="icon s24"></md-icon>\n </md-button>\n </div>\n <md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="reply" ng-click="vm.composeMailInteraction(\'reply\', message)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.REPLY">Reply</span></md-tooltip>\n <md-icon md-font-icon="icon-reply" class="icon s24"></md-icon>\n </md-button>\n <md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="replyAll" ng-click="vm.composeMailInteraction(\'replyAll\', message)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.REPLY_ALL">Reply All</span>\n </md-tooltip>\n <md-icon md-font-icon="icon-reply-all" class="icon s24"></md-icon>\n </md-button>\n <md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="forward" ng-click="vm.composeMailInteraction(\'forward\', message)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.FORWARD">Forward</span>\n </md-tooltip>\n <md-icon md-font-icon="icon-forward" class="icon s24"></md-icon>\n </md-button>\n <md-button ng-if="!message.attach && vm.downloadPermissions.interactions" class="md-icon-button" aria-label="forward" ng-click="vm.downloadMessage(message)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.DOWNLOAD">Download</span>\n </md-tooltip>\n <md-icon md-font-icon="icon-download" class="icon s24"></md-icon>\n </md-button>\n <md-menu ng-if="message.attach && vm.downloadPermissions.interactions" class="no-margin" md-position-mode="target-right target">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu()" aria-label="download">\n <md-tooltip md-direction="bottom"><span translate="MAIL.DOWNLOAD">Download</span>\n </md-tooltip>\n <md-icon md-font-icon="icon-download"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item ng-if="vm.downloadPermissions.attachments">\n <md-button ng-click="vm.downloadMessage(message, true)" translate="MAIL.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.downloadMessage(message)" translate="MAIL.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n <md-menu ng-if="message.attach && vm.downloadPermissions.attachments">\n <md-button aria-label="attachments" class="md-icon-button" ng-click="vm.getAttachments(message); $mdOpenMenu($event);">\n <md-tooltip md-direction="bottom"><span translate="MAIL.ATTACHMENTS">Attachments</span></md-tooltip>\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="icon s24"></md-icon>\n <span>{{message.attach}}</span>\n </div>\n </md-button>\n <md-menu-content width="4">\n <div layout="column" layout-align="center center" ng-if="!message.attachments">\n <md-progress-circular md-mode="indeterminate"></md-progress-circular>\n <span translate="MAIL.ATTACHMENTS">Attachments</span>\n </div>\n <md-menu-item ng-if="message.attachments" ng-repeat="attachment in message.attachments">\n <md-button ng-click="vm.getAttachment(attachment)">\n {{ attachment.name || (\'attachment-\' + $index) }}</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <div flex>\n <md-divider></md-divider>\n </div>\n </div>\n\n <md-content ng-bind-html-unsafe="message.body"></md-content>\n </md-content>\n </md-card>\n </div>\n <div ng-hide="!(vm.BTNLoadMore > 0)" layout="row" layout-align="center center" class="ng-scope layout-align-center-center layout-row">\n <md-button class="md-raised md-accent md-button ng-scope md-default-theme md-ink-ripple" type="button" ng-disabled="!(vm.BTNLoadMore > 0)" ng-click="vm.loadNextPage()" translate="DASHBOARDS.MORE">\n </md-button>\n </div>\n </div>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.loading.html",'<div class="big-circle md-whiteframe-4dp">\n <md-icon class="s128 md-accent" md-font-icon="{{vm.getIconByChannel(vm.tab.channel)}}" ng-class="vm.getColorByChannel(vm.tab.channel) + \'-fg\'"></md-icon>\n</div>\n<span class="app-title" translate="DASHBOARDS.WAITING">Waiting</span>\n<span class="hide show-gt-md secondary-text" translate="DASHBOARDS.LOADING_INTERACTION">We are loading the\n interaction...</span>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.chat.html",'<md-button class="md-icon-button" aria-label="note" ng-click="vm.composeChatInteraction(\'note\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="CHAT.NOTE">Note</span></md-tooltip>\n <md-icon md-font-icon="icon-note-outline" class="icon s24"></md-icon>\n</md-button>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.fax.html",'<md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="reply" ng-click="vm.composeFaxInteraction(\'new\')">\n <md-tooltip md-direction="bottom"><span translate="FAX.REPLY">Reply</span></md-tooltip>\n <md-icon md-font-icon="icon-reply" class="icon s24"></md-icon>\n</md-button>\n<md-button class="md-icon-button" aria-label="Download" ng-click="vm.downloadInteraction(vm.interaction)" ng-if="vm.downloadPermissions.interactions">\n <md-tooltip md-direction="bottom"><span translate="DASHBOARDS.DOWNLOAD">Download</span></md-tooltip>\n <md-icon md-font-icon="icon-download" class="icon s24"></md-icon>\n</md-button>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.html",'<div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <md-icon md-font-icon="{{vm.getIconByChannel(vm.tab.channel)}}" class="s20" ng-class="vm.getColorByChannel(vm.tab.channel) + \'-fg\'"></md-icon>\n <div class="padding-left-10" layout="column" layout-align="center start" flex>\n <div class="font-size-14" layout="row" layout-align="start center" layout-fill>\n <span>#{{vm.interaction.id}} - {{vm.account.key}}</span>\n <div layout="row" layout-align="center center" class="p-8">\n <md-icon ng-if="vm.tab.channel === \'openchannel\' && vm.interaction.threadId" md-font-icon="fas fa-users" class="s16">\n <md-tooltip><span translate="DASHBOARDS.PUBLIC_INTERACTION">The interaction is public</span></md-tooltip>\n </md-icon>\n <md-icon ng-if="vm.interaction.attach" md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n <span class="red-fg padding-left-25" ng-if="vm.interaction.closed" translate="DASHBOARDS.CLOSED">CLOSED</span>\n <span class="green-fg padding-left-25" ng-if="!vm.interaction.closed"><span translate="DASHBOARDS.OPENED">OPENED</span><span ng-if="vm.interaction.substatus"> -\n {{vm.interaction.substatus}}</span></span>\n <div layout="row" layout-align="center center" class="blue-grey-300-fg padding-left-40" ng-if="!vm.interaction.closed">\n <timer start-time="vm.interaction.createdAt"></timer>\n <md-icon md-font-icon="icon-timelapse" class="s16 padding-left-5"></md-icon>\n </div>\n </div>\n <div class="tags" layout="row" layout-align="start center" ng-if="vm.interaction.Tags.length" ng-class="{\'padding-top-5\': vm.interaction.Tags.length}">\n <div class="tag margin-right-5" layout="row" layout-align="center center" ng-repeat="tag in vm.interaction.Tags">\n <div class="tag-color" ng-style="{\'background\': tag.color}"></div>\n <div class="tag-label">{{tag.name}}</div>\n </div>\n </div>\n </div>\n <div layout="row" layout-align="end center">\n <div ng-switch="vm.tab.channel">\n <div ng-switch-when="mail">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.mail.html\'">\n </div>\n </div>\n <div ng-switch-when="fax">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.fax.html\'">\n </div>\n </div>\n <div ng-switch-when="sms">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.sms.html\'">\n </div>\n </div>\n <div ng-switch-when="whatsapp">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.whatsapp.html\'">\n </div>\n </div>\n <div ng-switch-when="chat">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.chat.html\'">\n </div>\n </div>\n <div ng-switch-when="openchannel">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.openchannel.html\'">\n </div>\n </div>\n </div>\n <md-menu ng-if="[\'fax\', \'sms\', \'whatsapp\'].indexOf(vm.tab.channel) < 0 && vm.downloadPermissions.interactions" class="no-margin" md-position-mode="target-right target">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu()" aria-label="download">\n <md-tooltip md-direction="bottom"><span translate="DASHBOARDS.DOWNLOAD">Download</span></md-tooltip>\n <md-icon md-font-icon="icon-download"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item ng-if="vm.downloadPermissions.attachments">\n <md-button ng-click="vm.downloadInteraction(vm.interaction, true)" translate="DASHBOARDS.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.downloadInteraction(vm.interaction)" translate="DASHBOARDS.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n <md-menu class="no-margin" ng-if="!vm.interaction.disposition" md-position-mode="target-right target">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="2">\n\n <md-menu-item ng-if="vm.tab.channel === \'chat\' && !vm.interaction.closed && !vm.tab.spy && vm.account.vidaooEscalation && vm.account.vidaooApiKey">\n <md-button ng-click="vm.createVidaooSession(vm.interaction)" translate="DASHBOARDS.VIDAOOSESSION">\n Start Video Call\n </md-button>\n </md-menu-item>\n\n <md-menu-item>\n <md-button ng-click="vm.tagInteraction()" translate="DASHBOARDS.TAG">\n Tag\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.account.queueTransfer || vm.account.agentTransfer">\n <md-button ng-click="vm.transferLastMessage()" translate="DASHBOARDS.TRANSFER">\n Transfer\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.interaction.closed && vm.tab.channel == \'mail\' && (vm.subStatuses.rows.length || vm.interaction.substatus != null)">\n <md-menu>\n <md-button ng-click="$mdMenu.open()" class="text-capitalize" translate="DASHBOARDS.SET_AS">\n Set as\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.interaction.substatus != null">\n <md-button ng-click="vm.setAs(null)" translate="DASHBOARDS.NONE">\n None\n </md-button>\n </md-menu-item>\n <md-menu-item ng-repeat="subStatus in vm.subStatuses.rows">\n <md-button ng-click="vm.setAs(subStatus.name)">\n {{subStatus.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item ng-if="!vm.interaction.closed && vm.tab.channel == \'mail\' && vm.account.markAsUnread">\n <md-button ng-click="vm.markAsUnread()" translate="DASHBOARDS.MARK_AS_UNREAD">\n Unread\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.tab.spy && !vm.interaction.closed">\n <md-button ng-click="vm.disposeInteraction()" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.tab.spy && vm.interaction.closed && !vm.interaction.disposition">\n <md-button ng-click="vm.disposeInteraction(ev)" translate="DASHBOARDS.DISPOSE">\n Dispose\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.mail.html",'<div class="interaction-reply-button-container">\n <md-tooltip md-direction="bottom"><span translate="DASHBOARDS.DRAFT">Draft</span></md-tooltip>\n <md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="draft" ng-disabled="!vm.draft" ng-click="vm.openDraft()">\n <md-icon ng-cloak md-font-icon="icon-pencil-box" class="icon s24" ng-class="vm.draft ? \'red-500-fg\' : \'grey-fg\'"></md-icon>\n </md-button>\n</div>\n<md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="reply" ng-click="vm.composeMailInteraction(\'reply\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.REPLY">Reply</span></md-tooltip>\n <md-icon md-font-icon="icon-reply" class="icon s24"></md-icon>\n</md-button>\n<md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="replyAll" ng-click="vm.composeMailInteraction(\'replyAll\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.REPLY_ALL">Reply All</span></md-tooltip>\n <md-icon md-font-icon="icon-reply-all" class="icon s24"></md-icon>\n</md-button>\n<md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="forward" ng-click="vm.composeMailInteraction(\'forward\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.FORWARD">Forward</span></md-tooltip>\n <md-icon md-font-icon="icon-forward" class="icon s24"></md-icon>\n</md-button>\n<md-button class="md-icon-button" aria-label="note" ng-click="vm.composeMailInteraction(\'note\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.NOTE">Note</span></md-tooltip>\n <md-icon md-font-icon="icon-note-outline" class="icon s24"></md-icon>\n</md-button>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.openchannel.html",'<md-button class="md-icon-button" aria-label="note" ng-click="vm.composeOpenchannelInteraction(\'note\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="OPENCHANNEL.NOTE">Note</span></md-tooltip>\n <md-icon md-font-icon="icon-note-outline" class="icon s24"></md-icon>\n</md-button>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.sms.html",'<md-button class="md-icon-button" aria-label="note" ng-click="vm.composeSmsInteraction(\'note\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="SMS.NOTE">Note</span></md-tooltip>\n <md-icon md-font-icon="icon-note-outline" class="icon s24"></md-icon>\n</md-button>\n<md-button class="md-icon-button" aria-label="Download" ng-click="vm.downloadInteraction(vm.interaction)" ng-if="vm.downloadPermissions.interactions">\n <md-tooltip md-direction="bottom"><span translate="DASHBOARDS.DOWNLOAD">Download</span></md-tooltip>\n <md-icon md-font-icon="icon-download" class="icon s24"></md-icon>\n</md-button>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.whatsapp.html",'<md-button class="md-icon-button" aria-label="note" ng-click="vm.composeWhatsappInteraction(\'note\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="WHATSAPP.NOTE">Note</span></md-tooltip>\n <md-icon md-font-icon="icon-note-outline" class="icon s24"></md-icon>\n</md-button>\n<md-button class="md-icon-button" aria-label="Download" ng-click="vm.downloadInteraction(vm.interaction)" ng-if="vm.downloadPermissions.interactions">\n <md-tooltip md-direction="bottom"><span translate="DASHBOARDS.DOWNLOAD">Download</span></md-tooltip>\n <md-icon md-font-icon="icon-download" class="icon s24"></md-icon>\n</md-button>'),e.put("app/main/apps/dashboards/views/general/agent/jscripty/agent.general.jscripty.html",'<md-content class="md-padding" layout="column" layout-align="center center">\n <div layout="row" layout-align="center center">\n <span ng-if="!vm.tab.saved" class="text-boxed md-green-bg">\n <timer start-time="vm.starttime"></timer>\n </span>\n <span ng-if="vm.contact" class="text-boxed md-gray-bg font-weight-900">{{vm.contact.firstName}} {{vm.contact.lastName}} {{vm.contact.phone}}</span>\n <md-button ng-if="vm.showResetButton" ng-click="vm.resetViewer()" md-no-ink class="md-raised md-accent orange-bg">\n <md-icon md-font-icon="icon-rotate-left" class="icon s16"></md-icon> {{\'JSCRIPTY.RESET_SESSION\' | translate}}\n </md-button>\n <md-button ng-if="vm.contact" ng-click="vm.openContact($event, vm.contact)" md-no-ink class="md-raised md-accent" translate="JSCRIPTY.OPEN_CONTACT"></md-button>\n <md-button ng-if="vm.showIncompleteSubmitButton" ng-click="vm.onSubmit($event, true)" md-no-ink class="md-raised md-accent green-bg" translate="JSCRIPTY.SUBMIT"></md-button>\n </div>\n <h1 ng-if="!vm.project.formData"><span translate="JSCRIPTY.PROJECT_NOT_AVAILABLE">Project is not available. Please contact the administrator</span></h1>\n <mw-form-viewer ng-if="vm.project.formData" form-data="vm.project.formData" response-data="vm.project.responseData" on-submit="vm.onSubmit($event)" template-data="call" api="vm.formViewer"></mw-form-viewer>\n</md-content>'),e.put("app/main/apps/dashboards/views/general/agent/notification/dialog.html",'\x3c!-- <md-toast> --\x3e\n<div class="md-padding" layout="column" layout-align="center center">\n <span class="md-title">#{{vm.notification.id}} {{vm.notification.title}}</span>\n <span class="md-subhead" ng-if="vm.notification.queue">{{vm.notification.queue}}</span>\n <div class="padding-top-5" layout="row">\n <md-button class="md-raised md-accent" ng-click="vm.accept($event)" translate="DASHBOARDS.ACCEPT">\n ACCEPT\n </md-button>\n <md-button class="md-raised md-warn" ng-click="vm.reject($event)" translate="DASHBOARDS.REJECT">\n REJECT\n </md-button>\n </div>\n</div>\n\x3c!-- </md-toast> --\x3e'),e.put("app/main/apps/dashboards/views/general/agent/popup/agent.general.popup.html",'<md-content class="md-padding" flex>\n <div ng-if="vm.html" ng-bind-html="vm.html"></div>\n <h1 ng-if="!vm.html">Template is empty. Please contact the administrator</h1>\n</md-content>'),e.put("app/main/apps/dashboards/views/general/user/chat/user.general.chat.html",'\x3c!-- WIDGET INBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-hangouts" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INTERACTIONS_STATS">Today Interactions STATS</div>\n </div>\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-52 line-height-72">\n {{vm.inbound.waiting || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.WAITING\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.WAITING_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.WAITING\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="orange-fg font-size-52 line-height-72">\n {{vm.inbound.talking || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.OPENED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.OPENED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.OPENED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-52 line-height-72">\n {{vm.inbound.answered || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.MANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.MANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.MANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-52 line-height-72">\n {{vm.inbound.abandoned || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.ABANDONED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.ABANDONED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.ABANDONED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.total || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.TOTAL_OFFERED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.TOTAL_OFFERED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.TOTAL_OFFERED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-42 line-height-72">\n {{ vm.inbound.avgHoldTime || \'00:00:00\' }}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.AVG_HOLD_TIME\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.AVG_HOLD_TIME_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.AVG_HOLD_TIME\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="orange-fg font-size-42 line-height-72">\n {{ vm.inbound.avgTalkTime || \'00:00:00\' }}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.AVG_MANAGED_TIME\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.AVG_MANAGED_TIME_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.AVG_MANAGED_TIME\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-42 line-height-72">\n {{ vm.inbound.answerRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.MANAGED_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.MANAGED_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.MANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-42 line-height-72">\n {{ vm.inbound.abandonRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.ABANDONED_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.ABANDONED_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.ABANDONED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.unmanaged || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.UNMANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.UNMANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.UNMANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET INBOUND --\x3e'),e.put("app/main/apps/dashboards/views/general/user/dialer/user.general.dialer.html",'\x3c!-- WIDGET INBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-phone-outgoing" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_MOTION_BULL_STATS">Today Motion Bull STATS</div>\n </div>\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-timelapse"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-52 line-height-72">\n {{vm.inbound.waiting || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_WAITING\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_WAITING_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_WAITING\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone-in-talk"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="orange-fg font-size-52 line-height-72">\n {{(vm.inbound.talking || 0) + (vm.inbound.pTalking || 0)}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_TALKING\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_TALKING_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_TALKING\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-52 line-height-72">\n {{vm.inbound.answered || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_ANSWERED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_ANSWERED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_ANSWERED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone-missed"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-52 line-height-72">\n {{vm.inbound.outboundDropCallsDayCallersExit || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_ABANDONED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_ABANDONED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.ABANDON_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone-outgoing"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.outboundDropCallsDayTimeout || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.DROPPED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.DROPPED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.DROPPED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone-dots"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.originated || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.ORIGINATED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.ORIGINATED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.ORIGINATED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone-in-talk"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="orange-fg font-size-42 line-height-72">\n {{ vm.inbound.avgTalkTime || \'00:00:00\' }}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_AVG_TALK_TIME\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_AVG_TALK_TIME_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_AVG_TALK_TIME\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-percent"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-42 line-height-72">\n {{ vm.inbound.outboundanswerRate || 0 |number : 1}}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_ANSWER_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_ANSWER_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_ANSWER_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-percent"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-42 line-height-72">\n {{ vm.inbound.outboundAbandonRate || 0}}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_ABANDON_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_ABANDON_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_ABANDON_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-percent"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-42 line-height-72">\n {{ vm.inbound.outboundDropRate }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.DROP_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.DROP_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.DROP_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET OUTBOUND --\x3e\n\n\x3c!-- WIDGET INBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-phone-outgoing" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_IVR_CAMPAIGNS_STATS">Today IVR campaigns stats</div>\n </div>\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone-dots"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.ivr.originated || 0}}/{{vm.ivr.limitCalls || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.ORIGINATED\' | translate | uppercase}}/{{\'DASHBOARDS.LIMITED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.LIMITED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.ORIGINATEDLIMITED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET IVR --\x3e'),e.put("app/main/apps/dashboards/views/general/user/fax/user.general.fax.html",'\x3c!-- WIDGET INBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-deskphone" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INTERACTIONS_STATS">Today Interactions STATS</div>\n </div>\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-52 line-height-72">\n {{vm.inbound.waiting || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.WAITING\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.WAITING_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.WAITING\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="orange-fg font-size-52 line-height-72">\n {{vm.inbound.talking || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.OPENED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.OPENED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.OPENED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-52 line-height-72">\n {{vm.inbound.answered || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.MANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.MANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.MANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.unmanaged || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.UNMANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.UNMANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.UNMANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.total || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.TOTAL_OFFERED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.TOTAL_OFFERED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.TOTAL_OFFERED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="50">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-42 line-height-72">\n {{ vm.inbound.avgHoldTime || \'00:00:00\' }}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.AVG_HOLD_TIME\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.AVG_HOLD_TIME_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.AVG_HOLD_TIME\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-42 line-height-72">\n {{ vm.inbound.answerRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.MANAGED_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.MANAGED_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.MANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-42 line-height-72">\n {{ vm.inbound.abandonRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.UNMANAGED_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.UNMANAGED_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.UNMANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET INBOUND --\x3e'),e.put("app/main/apps/dashboards/views/general/user/mail/user.general.mail.html",'\x3c!-- WIDGET INBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-email" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INTERACTIONS_STATS">Today Interactions STATS</div>\n </div>\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-52 line-height-72">\n {{vm.inbound.waiting || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.WAITING\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.WAITING_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.WAITING\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="orange-fg font-size-52 line-height-72">\n {{vm.inbound.talking || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.OPENED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.OPENED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.OPENED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-52 line-height-72">\n {{vm.inbound.answered || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.MANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.MANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.MANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.unmanaged || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.UNMANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.UNMANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.UNMANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.total || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.TOTAL_OFFERED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.TOTAL_OFFERED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.TOTAL_OFFERED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="50">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-42 line-height-72">\n {{ vm.inbound.avgHoldTime || \'00:00:00\' }}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.AVG_HOLD_TIME\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.AVG_HOLD_TIME_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.AVG_HOLD_TIME\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-42 line-height-72">\n {{ vm.inbound.answerRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.MANAGED_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.MANAGED_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.MANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-42 line-height-72">\n {{ vm.inbound.abandonRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.UNMANAGED_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.UNMANAGED_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.UNMANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET INBOUND --\x3e'),e.put("app/main/apps/dashboards/views/general/user/openchannel/user.general.openchannel.html",'\x3c!-- WIDGET INBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-google-earth" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INTERACTIONS_STATS">Today Interactions STATS</div>\n </div>\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-52 line-height-72">\n {{vm.inbound.waiting || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.WAITING\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.WAITING_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.WAITING\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="orange-fg font-size-52 line-height-72">\n {{vm.inbound.talking || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.OPENED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.OPENED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.OPENED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-52 line-height-72">\n {{vm.inbound.answered || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.MANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.MANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.MANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.unmanaged || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.UNMANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.UNMANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.UNMANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.total || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.TOTAL_OFFERED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.TOTAL_OFFERED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.TOTAL_OFFERED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="50">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-42 line-height-72">\n {{ vm.inbound.avgHoldTime || \'00:00:00\' }}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.AVG_HOLD_TIME\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.AVG_HOLD_TIME_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.AVG_HOLD_TIME\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-42 line-height-72">\n {{ vm.inbound.answerRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.MANAGED_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.MANAGED_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.MANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-42 line-height-72">\n {{ vm.inbound.abandonRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.UNMANAGED_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.UNMANAGED_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.UNMANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET INBOUND --\x3e'),e.put("app/main/apps/dashboards/views/general/user/sms/user.general.sms.html",'\x3c!-- WIDGET INBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-message-text" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INTERACTIONS_STATS">Today Interactions STATS</div>\n </div>\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-52 line-height-72">\n {{vm.inbound.waiting || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.WAITING\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.WAITING_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.WAITING\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="orange-fg font-size-52 line-height-72">\n {{vm.inbound.talking || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.OPENED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.OPENED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.OPENED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-52 line-height-72">\n {{vm.inbound.answered || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.MANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.MANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.MANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.unmanaged || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.UNMANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.UNMANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.UNMANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.total || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.TOTAL_OFFERED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.TOTAL_OFFERED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.TOTAL_OFFERED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="50">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-42 line-height-72">\n {{ vm.inbound.avgHoldTime || \'00:00:00\' }}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.AVG_HOLD_TIME\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.AVG_HOLD_TIME_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.AVG_HOLD_TIME\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-42 line-height-72">\n {{ vm.inbound.answerRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.MANAGED_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.MANAGED_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.MANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-42 line-height-72">\n {{ vm.inbound.abandonRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.UNMANAGED_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.UNMANAGED_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.UNMANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET INBOUND --\x3e'),e.put("app/main/apps/dashboards/views/general/user/user.general.html",'<div id="dashboard-general" ng-init="vm.onInit()" class="page-layout simple right-sidenav" layout="row">\n \x3c!-- CENTER --\x3e\n <div class="center" flex ms-scroll>\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs ng-if="vm.hasDashboardPermissions" md-selected="vm.selectedTab" md-dynamic-height>\n <md-tab ng-if="vm.license.voice" label="{{\'DASHBOARDS.VOICE\' | translate}}" ui-sref="app.dashboards.general.voice">\n <div ui-view="voice"></div>\n </md-tab>\n <md-tab ng-if="vm.license.dialer" label="{{\'DASHBOARDS.MOTIONDIALER\' | translate}}" ui-sref="app.dashboards.general.dialer">\n <div ui-view="dialer"></div>\n </md-tab>\n <md-tab ng-if="vm.license.chat" label="{{\'DASHBOARDS.CHAT\' | translate}}" ui-sref="app.dashboards.general.chat">\n <div ui-view="chat"></div>\n </md-tab>\n <md-tab ng-if="vm.license.mail" label="{{\'DASHBOARDS.MAIL\' | translate}}" ui-sref="app.dashboards.general.mail">\n <div ui-view="mail"></div>\n </md-tab>\n <md-tab ng-if="vm.license.messaging" label="{{\'DASHBOARDS.SMS\' | translate}}" ui-sref="app.dashboards.general.sms">\n <div ui-view="sms"></div>\n </md-tab>\n <md-tab ng-if="vm.license.openchannel" label="{{\'DASHBOARDS.OPENCHANNEL\' | translate}}" ui-sref="app.dashboards.general.openchannel">\n <div ui-view="openchannel"></div>\n </md-tab>\n <md-tab ng-if="vm.license.fax" label="{{\'DASHBOARDS.FAX\' | translate}}" ui-sref="app.dashboards.general.fax">\n <div ui-view="fax"></div>\n </md-tab>\n <md-tab ng-if="vm.license.whatsapp" label="{{\'DASHBOARDS.WHATSAPP\' | translate}}" ui-sref="app.dashboards.general.whatsapp">\n <div ui-view="whatsapp"></div>\n </md-tab>\n </md-tabs>\n </div>\n \x3c!-- END CONTENT --\x3e\n\n <md-content ng-if="!vm.hasDashboardPermissions" layout="row" layout-align="space-around center" flex layout-padding layout-wrap>\n <div layout="column" layout-align="space-around center" flex="50">\n <span class="font-size-40 text-center">{{ \'DASHBOARDS.WELCOME_TO_MOTION\' | translate }}!</span>\n <span class="font-size-30 text-center" translate="DASHBOARDS.WELCOME_MESSAGE">Use the left sidebar to\n navigate through available sections.</span>\n </div>\n\n <div layout="column" flex="50">\n <img src="assets/images/avatars/permissions.png" alt="permissions">\n </div>\n </md-content>\n </div>\n</div>'),e.put("app/main/apps/dashboards/views/general/user/voice/user.general.voice.html",'\x3c!-- WIDGET INBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-phone-incoming" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INBOUND_STATS">Today Inbound STATS</div>\n </div>\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-timelapse"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-52 line-height-72">\n {{vm.inbound.waiting || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_WAITING\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_WAITING_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_WAITING\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone-in-talk"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="orange-fg font-size-52 line-height-72">\n {{vm.inbound.talking || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_TALKING\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_TALKING_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_TALKING\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-52 line-height-72">\n {{vm.inbound.answered || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_ANSWERED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_ANSWERED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_ANSWERED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone-missed"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-52 line-height-72">\n {{vm.inbound.abandoned || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_ABANDONED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_ABANDONED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_ABANDONED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone-incoming"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.total || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_TOTAL_OFFERED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_TOTAL_OFFERED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_TOTAL_OFFERED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-timer-sand"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-42 line-height-72">\n {{ vm.inbound.avgHoldTime || \'00:00:00\' }}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_AVG_HOLD_TIME\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_AVG_HOLD_TIME_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_AVG_HOLD_TIME\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone-in-talk"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="orange-fg font-size-42 line-height-72">\n {{ vm.inbound.avgTalkTime || \'00:00:00\' }}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_AVG_TALK_TIME\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_AVG_TALK_TIME_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_AVG_TALK_TIME\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-percent"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-42 line-height-72">\n {{ vm.inbound.answerRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_ANSWER_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_ANSWER_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_ANSWER_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-percent"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-42 line-height-72">\n {{ vm.inbound.abandonRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_ABANDON_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_ABANDON_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.ABANDON_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone-dots"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.unmanaged || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_UNMANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_UNMANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_UNMANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET INBOUND --\x3e\n\n\x3c!-- WIDGET OUTBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-phone-outgoing" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_OUTBOUND_STATS">Today Outbound STATS</div>\n </div>\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone-outgoing"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-52 line-height-72">\n {{vm.outbound.total || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.TOTAL\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.TOTAL_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.TOTAL\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-52 line-height-72">\n {{vm.outbound.answered || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.OUTBOUND_ANSWERED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.OUTBOUND_ANSWERED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.OUTBOUND_ANSWERED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-clock"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="orange-fg font-size-42 line-height-72">\n {{vm.outbound.sumDuration || 0 | secToTime | date:\'HH:mm:ss\'}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.TOT_DURATION\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.TOT_DURATION_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.TOT_DURATION\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-division"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-42 line-height-72">\n {{vm.outbound.total ? ((vm.outbound.sumDuration / vm.outbound.total) | number: 0) : 0 | secToTime | date:\'HH:mm:ss\'}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.AVG_DURATION\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.AVG_DURATION_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.AVG_DURATION\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-percent"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-42 line-height-72">\n {{vm.outbound.total ? (vm.outbound.answered / vm.outbound.total * 100) : 0 | number: 1}}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.OUTBOUND_ANSWER_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.OUTBOUND_ANSWER_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.OUTBOUND_ANSWER_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET OUTBOUND --\x3e'),e.put("app/main/apps/dashboards/views/general/user/whatsapp/user.general.whatsapp.html",'\x3c!-- WIDGET INBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-whatsapp" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INTERACTIONS_STATS">Today Interactions STATS</div>\n </div>\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-52 line-height-72">\n {{vm.inbound.waiting || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.WAITING\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.WAITING_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.WAITING\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="orange-fg font-size-52 line-height-72">\n {{vm.inbound.talking || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.OPENED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.OPENED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.OPENED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-52 line-height-72">\n {{vm.inbound.answered || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.MANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.MANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.MANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.unmanaged || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.UNMANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.UNMANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.UNMANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.total || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.TOTAL_OFFERED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.TOTAL_OFFERED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.TOTAL_OFFERED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="50">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-42 line-height-72">\n {{ vm.inbound.avgHoldTime || \'00:00:00\' }}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.AVG_HOLD_TIME\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.AVG_HOLD_TIME_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.AVG_HOLD_TIME\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-42 line-height-72">\n {{ vm.inbound.answerRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.MANAGED_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.MANAGED_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.MANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-42 line-height-72">\n {{ vm.inbound.abandonRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.UNMANAGED_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.UNMANAGED_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.UNMANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET INBOUND --\x3e'),e.put("app/main/apps/fax/views/faxAccounts/create/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="FAX.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.faxAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="faxAccountForm[\'name\'].$error" ng-show="faxAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.KEY">key</label>\n <input type="text" name="key" ng-model="vm.faxAccount.key" md-maxlength="5" ng-required="true">\n\n <div ng-messages="faxAccountForm[\'key\'].$error" ng-show="faxAccountForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="FAX.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.TRUNK">trunk</label>\n <md-select name="TrunkId" ng-model="vm.faxAccount.TrunkId" required>\n <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks" ng-disabled="TrunkId.canSelect === false">{{ TrunkId.name }}</md-option>\n </md-select>\n <div ng-messages="faxAccountForm[\'TrunkId\'].$error" ng-show="faxAccountForm[\'TrunkId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.TRUNK_REQUIRED">trunk field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.LOCALSTATIONID">localstationid</label>\n <input type="text" name="localstationid" ng-model="vm.faxAccount.localstationid" ng-required="true">\n\n <div class="hint"><span translate="FAX.HELP.LOCALSTATIONID"></span></div>\n <div ng-messages="faxAccountForm[\'localstationid\'].$error" ng-show="faxAccountForm[\'localstationid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.LOCALSTATIONID_REQUIRED">localstationid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.LIST">List</label>\n <md-select name="ListId" ng-model="vm.faxAccount.ListId" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div ng-messages="faxAccountForm[\'ListId\'].$error" ng-show="faxAccountForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.faxAccount.description">\n\n <div ng-messages="faxAccountForm[\'description\'].$error" ng-show="faxAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newFaxAccount" ng-click="vm.saveFaxAccount()" class="send-button md-accent md-raised" ng-disabled="faxAccountForm.$invalid || faxAccountForm.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newFaxAccount" ng-click="vm.addNewFaxAccount()" class="send-button md-accent md-raised" ng-disabled="faxAccountForm.$invalid" aria-label="ADD" translate="FAX.ADD_FAXACCOUNT" translate-attr-aria-label="FAX.ADD_FAXACCOUNT">\n ADD FAXACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newFaxAccount" ng-click="vm.deleteFaxAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="FAX.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="FAX.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/agentadd/agentadd.html",'<md-dialog class="faxAccount-dialog" aria-label="faxAccount" ng-init="vm.onInit()">\n <form name="faxAccountForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="FAX.AGENTADD_FAXACCOUNT">Add Agent to faxAccount</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/agent/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="FAX.AGENT">Agent</label>\n <md-select name="agent" ng-model="vm.agent.agent" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents" ng-disabled="agent.canSelect === false">{{ agent.name }}</md-option>\n </md-select>\n <div ng-messages="faxAccountFormApp[\'agent\'].$error" ng-show="faxAccountFormApp[\'agent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.agent.timeout" min="0" max="2147483" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'timeout\'].$error" ng-show="faxAccountFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/close/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="FAX.DISPOSITION">Disposition</label>\n <input type="text" name="disposition" ng-model="vm.close.disposition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'disposition\'].$error" ng-show="faxAccountFormApp[\'disposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/gotoif/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="FAX.CONDITION">Condition</label>\n <input type="text" name="condition" ng-model="vm.gotoif.condition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'condition\'].$error" ng-show="faxAccountFormApp[\'condition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.TRUEPRIORITY">truepriority</label>\n <input type="number" name="truepriority" ng-model="vm.gotoif.truepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'truepriority\'].$error" ng-show="faxAccountFormApp[\'truepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.TRUEPRIORITY_REQUIRED">truepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">truepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.FALSEPRIORITY">falsepriority</label>\n <input type="number" name="falsepriority" ng-model="vm.gotoif.falsepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'falsepriority\'].$error" ng-show="faxAccountFormApp[\'falsepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.FALSEPRIORITY_REQUIRED">falsepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">falsepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/gotop/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="FAX.PRIORITY">Priority</label>\n <input type="number" name="priority" ng-model="vm.gotop.priority" min="0" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'priority\'].$error" ng-show="faxAccountFormApp[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Priority must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/interval/dialog.html",'<md-dialog class="interval-dialog" aria-label="New Interval">\n <form name="intervalForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="type" ng-repeat=\'type in vm.types\'>{{ type | ucfirst }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.type === \'list\'">\n <label translate="TOOLS.INTERVALS">Intervals</label>\n <md-select ng-model="vm.interval.IntervalId" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ interval.name }}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!-- TIMERANGE START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.TIME_RANGE">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <div class="md-block" flex>\n <mdp-time-picker name="timeRangeFrom" mdp-placeholder="FROM" ng-model="vm.timeRangeFrom" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <div ng-messages="intervalForm.timeRangeFrom.$error" ng-show="intervalForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_FROM_INVALID">Time Range From field is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n <div class="md-block" flex ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_INVALID">Time Range To field is invalid</span>\n </div>\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </div>\n \x3c!-- TIMERANGE END --\x3e\n\n \x3c!-- DAYSOFWEEK START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.WEEK_DAYS">Week Days</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.dayOfWeekFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex class="md-block" ng-if="vm.dayOfWeekFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="dayOfWeekTo" ng-model="vm.dayOfWeekTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- DAYSOFWEEK END --\x3e\n\n \x3c!-- MONTHDAY START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTH_DAYS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthDayFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthDayFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthDayTo" ng-model="vm.monthDayTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTHDAY END --\x3e\n\n \x3c!-- MONTH START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTHS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthTo" ng-model="vm.monthTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTH END --\x3e\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="!vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n ADD INTERVAL\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/noop/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="FAX.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.noop.value" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'value\'].$error" ng-show="faxAccountFormApp[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/queue/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="FAX.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.queue.queue" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues" ng-disabled="queue.canSelect === false">{{ queue.name }}</md-option>\n </md-select>\n <div ng-messages="faxAccountFormApp[\'queue\'].$error" ng-show="faxAccountFormApp[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'timeout\'].$error" ng-show="faxAccountFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/system/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="FAX.COMMAND">Command</label>\n <input type="text" name="command" ng-model="vm.system.command" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'command\'].$error" ng-show="faxAccountFormApp[\'command\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.COMMAND_REQUIRED">Command field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.system.variable" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables" ng-disabled="variable.canSelect === false">{{ variable.name }}</md-option>\n </md-select>\n <div ng-messages="faxAccountFormApp[\'variable\'].$error" ng-show="faxAccountFormApp[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.VARIABLE_REQUIRED">Variable field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/tag/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="FAX.TAG">Tag</label>\n <md-select name="tag" ng-model="vm.tag.tag" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags" ng-disabled="tag.canSelect === false">{{ tag.name }}</md-option>\n </md-select>\n <div ng-messages="faxAccountFormApp[\'tag\'].$error" ng-show="faxAccountFormApp[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.TAG_REQUIRED">Tag field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/view.html",'<div id="fax-faxAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-faxAccounts-button md-icon-button" aria-label="Go to faxAccounts" ng-click="vm.gotoFaxAccounts()" translate translate-attr-aria-label="FAX.GO_TO_FAXACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="faxAccount-image" hide-xs>\n <img ng-src="assets/images/business/faxAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.faxAccount.id}}\n <span ng-if="vm.faxAccount.name">{{vm.faxAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="FAX.CREATED_AT"></span> <span>{{vm.faxAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.faxAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="FAX.GOTO_FAXACCOUNT"></span></md-tooltip>\n <md-icon md-font-icon="icon-cast"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.faxAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="FAX.AGENTADD_FAXACCOUNT"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveFaxAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (advancedForm.$invalid) || (dispositionForm.$invalid) || (faxDispositionsForm.$invalid) || (actionsForm.$invalid) || (interactionsForm.$invalid)" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="faxAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="FAX.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="FAX.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.faxAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.KEY">key</label>\n <input type="text" name="key" ng-model="vm.faxAccount.key" md-maxlength="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'key\'].$error" ng-show="generalForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="FAX.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.HEADERINFO">headerinfo</label>\n <input type="text" name="headerinfo" ng-model="vm.faxAccount.headerinfo" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="FAX.HELP.HEADERINFO"></span></div>\n <div ng-messages="generalForm[\'headerinfo\'].$error" ng-show="generalForm[\'headerinfo\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.HEADERINFO_REQUIRED">headerinfo field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.TRUNK">trunk</label>\n <md-select name="TrunkId" ng-model="vm.faxAccount.TrunkId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks" ng-disabled="TrunkId.canSelect === false">{{ TrunkId.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'TrunkId\'].$error" ng-show="generalForm[\'TrunkId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.TRUNK_REQUIRED">trunk field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.LOCALSTATIONID">localstationid</label>\n <input type="text" name="localstationid" ng-model="vm.faxAccount.localstationid" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="FAX.HELP.LOCALSTATIONID"></span></div>\n <div ng-messages="generalForm[\'localstationid\'].$error" ng-show="generalForm[\'localstationid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.LOCALSTATIONID_REQUIRED">localstationid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.LIST">List</label>\n <md-select name="ListId" ng-model="vm.faxAccount.ListId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'ListId\'].$error" ng-show="generalForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.WAITFORTHEASSIGNEDAGENT">WaitForTheAssignedAgent</label>\n <input type="number" name="waitForTheAssignedAgent" ng-model="vm.faxAccount.waitForTheAssignedAgent" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'waitForTheAssignedAgent\'].$error" ng-show="generalForm[\'waitForTheAssignedAgent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.WAITFORTHEASSIGNEDAGENT_REQUIRED">WaitForTheAssignedAgent field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.faxAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="faxAccount-detail-form-container notification md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="FAX.NOTIFICATION">NOTIFICATION</div>\n </div>\n <form name="notificationForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.faxAccount.notificationSound" aria-label="notificationSound" ng-disabled="!vm.crudPermissions.canEdit"><span translate="FAX.NOTIFICATIONSOUND">notificationSound</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.faxAccount.notificationShake" aria-label="notificationShake" ng-disabled="!vm.crudPermissions.canEdit"><span translate="FAX.NOTIFICATIONSHAKE">notificationShake</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="FAX.NOTIFICATIONTEMPLATE">notificationTemplate</label>\n <textarea aria-label="notificationTemplate notificationTemplate" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.faxAccount.notificationTemplate"></textarea>\n </div>\n\n </form>\n </div>\n <div class="faxAccount-detail-form-container transfer md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="FAX.TRANSFER">TRANSFER</div>\n </div>\n <form name="transferForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.faxAccount.queueTransfer" aria-label="queueTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="FAX.QUEUETRANSFER">queueTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.faxAccount.queueTransfer == true" class="md-block">\n <label translate="FAX.QUEUETRANSFERTIMEOUT">queueTransferTimeout</label>\n <input type="number" name="queueTransferTimeout" ng-model="vm.faxAccount.queueTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'queueTransferTimeout\'].$error" ng-show="transferForm[\'queueTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.QUEUETRANSFERTIMEOUT_REQUIRED">queueTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.faxAccount.agentTransfer" aria-label="agentTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="FAX.AGENTTRANSFER">agentTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.faxAccount.agentTransfer == true" class="md-block">\n <label translate="FAX.AGENTTRANSFERTIMEOUT">agentTransferTimeout</label>\n <input type="number" name="agentTransferTimeout" ng-model="vm.faxAccount.agentTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'agentTransferTimeout\'].$error" ng-show="transferForm[\'agentTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.AGENTTRANSFERTIMEOUT_REQUIRED">agentTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="faxAccount-detail-form-container advanced md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="FAX.ADVANCED">ADVANCED</div>\n </div>\n <form name="advancedForm" novalidate>\n <md-input-container class="md-block">\n <label translate="FAX.ECM">ECM</label>\n <md-select name="ecm" ng-model="vm.faxAccount.ecm" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">yes</md-option>\n <md-option ng-value="\'no\'">no</md-option>\n </md-select>\n <div class="hint"><span translate="FAX.HELP.ECM"></span></div>\n <div ng-messages="advancedForm[\'ecm\'].$error" ng-show="advancedForm[\'ecm\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.ECM_REQUIRED">ECM field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.MINRATE">minrate</label>\n <md-select name="minrate" ng-model="vm.faxAccount.minrate" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'2400\'">2400</md-option>\n <md-option ng-value="\'4800\'">4800</md-option>\n <md-option ng-value="\'7200\'">7200</md-option>\n <md-option ng-value="\'9600\'">9600</md-option>\n <md-option ng-value="\'12000\'">12000</md-option>\n <md-option ng-value="\'14400\'">14400</md-option>\n </md-select>\n <div class="hint"><span translate="FAX.HELP.MINRATE"></span></div>\n <div ng-messages="advancedForm[\'minrate\'].$error" ng-show="advancedForm[\'minrate\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.MINRATE_REQUIRED">minrate field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.MAXRATE">maxrate</label>\n <md-select name="maxrate" ng-model="vm.faxAccount.maxrate" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'2400\'">2400</md-option>\n <md-option ng-value="\'4800\'">4800</md-option>\n <md-option ng-value="\'7200\'">7200</md-option>\n <md-option ng-value="\'9600\'">9600</md-option>\n <md-option ng-value="\'12000\'">12000</md-option>\n <md-option ng-value="\'14400\'">14400</md-option>\n </md-select>\n <div class="hint"><span translate="FAX.HELP.MAXRATE"></span></div>\n <div ng-messages="advancedForm[\'maxrate\'].$error" ng-show="advancedForm[\'maxrate\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.MAXRATE_REQUIRED">maxrate field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.MODEM">modem</label>\n <input type="text" name="modem" ng-model="vm.faxAccount.modem" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="FAX.HELP.MODEM"></span></div>\n <div ng-messages="advancedForm[\'modem\'].$error" ng-show="advancedForm[\'modem\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.MODEM_REQUIRED">modem field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.GATEWAY">gateway</label>\n <input type="text" name="gateway" ng-model="vm.faxAccount.gateway" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="FAX.HELP.GATEWAY"></span></div>\n <div ng-messages="advancedForm[\'gateway\'].$error" ng-show="advancedForm[\'gateway\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.GATEWAY_REQUIRED">gateway field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.FAXDETECT">faxdetect</label>\n <input type="text" name="faxdetect" ng-model="vm.faxAccount.faxdetect" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="FAX.HELP.FAXDETECT"></span></div>\n <div ng-messages="advancedForm[\'faxdetect\'].$error" ng-show="advancedForm[\'faxdetect\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.FAXDETECT_REQUIRED">faxdetect field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.T38TIMEOUT">t38timeout</label>\n <input type="number" name="t38timeout" ng-model="vm.faxAccount.t38timeout" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="FAX.HELP.T38TIMEOUT"></span></div>\n <div ng-messages="advancedForm[\'t38timeout\'].$error" ng-show="advancedForm[\'t38timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.T38TIMEOUT_REQUIRED">t38timeout field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.SIP">SIP</label>\n <md-select name="tech" ng-model="vm.faxAccount.tech" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'SIP\'">SIP</md-option>\n <md-option ng-value="\'IAX\'">IAX</md-option>\n <md-option ng-value="\'DADHI\'">DADHI</md-option>\n <md-option ng-value="\'KHOMP\'">KHOMP</md-option>\n </md-select>\n <div ng-messages="advancedForm[\'tech\'].$error" ng-show="advancedForm[\'tech\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.SIP_REQUIRED">SIP field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="faxAccount-detail-form-container disposition md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="FAX.DISPOSITION">DISPOSITION</div>\n </div>\n <form name="dispositionForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.faxAccount.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="FAX.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.faxAccount.mandatoryDisposition" class="md-block">\n <label translate="FAX.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.faxAccount.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="FAX.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="dispositionForm[\'mandatoryDispositionPauseId\'].$error" ng-show="dispositionForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.DISPOSITIONS">DISPOSITIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div ng-controller="FaxAccountDispositionsController as vm_dc" ng-init="vm_dc.init(vm.faxAccount, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="faxAccount-detail-form-container faxdispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedFaxAccountDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="FAX.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add fax dispositions" translate translate-attr-label="FAX.ADD_DISPOSITION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" csv-label="true" filename="faxAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="FAX.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_dc.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'FAX.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'FAX.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'FAX.DESCRIPTION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="FAX.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="FAX.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(disposition, $event)" translate="TOOLS.DELETE_DISPOSITION">\n Delete Disposition\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="faxAccount-detail-form-container actions md-background-bg md-whiteframe-1dp">\n <div ng-controller="FaxAccountActionsController as vm_ac" ng-init="vm_ac.init(vm.faxAccount, vm.crudPermissions)" class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- SIDENAV --\x3e\n <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20" ng-if="vm_ac.crudPermissions.canEdit">\n \x3c!-- SIDENAV CONTENT --\x3e\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\n Applications List\n </span>\n </md-subheader>\n </md-list>\n <md-divider></md-divider>\n <md-list ng-sortable="vm_ac.list">\n <md-list-item class="handle" ng-repeat="a in vm_ac.apps">\n <md-icon md-font-icon="{{a.icon}}" class="s16"></md-icon>\n <p class="text-truncate" translate="FAX.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias || a.appType}}</p>\n </md-list-item>\n </md-list>\n \x3c!-- / SIDENAV CONTENT --\x3e\n </div>\n \x3c!-- / SIDENAV --\x3e\n <div flex></div>\n \x3c!-- MAIN --\x3e\n <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="{{vm_ac.crudPermissions.canEdit ? 75 : 100}}">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_ac.selectedFaxAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Drag & Drop Routing</span>\n <div flex></div>\n <ms-search-bar on-search="vm_ac.query.filter = query" on-collapse="vm_ac.query.filter = undefined" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_ac.selectedFaxAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_ac.selectedFaxAccountApps.length}} {{vm_ac.selectedFaxAccountApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_ac.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_ac.deleteSelectedFaxAccountApps($event)" aria-label="delete selected" translate translate-attr-label="FAX.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n \x3c!-- QUEUES TABLE --\x3e\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_ac.selectedFaxAccountApps">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column width="10px">\n <span translate="VOICE.PRIORITY">Priority</span>\n </th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </th>\n <th md-column width="10px"></th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body ng-sortable="vm_ac.applications">\n <tr md-row md-select="app" md-select-id="id" ng-repeat="app in vm_ac.faxAccountApps.rows | filter: vm_ac.query.filter">\n <td md-cell>\n <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n </td>\n <td md-cell ng-click="vm_ac.editFaxAccountApp($event, $index)"><span>{{app.priority}}</span></td>\n <td md-cell ng-click="vm_ac.editFaxAccountApp($event, $index)">{{app.app.toLowerCase() === \'agi\' ? \'Cally-Square\' : app.app | ucfirst}}<span ng-if="app.appType.toLowerCase() === \'custom\'">*</span></td>\n <td md-cell ng-click="vm_ac.editFaxAccountApp($event, $index)"><span class="text-truncate actionAppData">{{app.appdata}}</span></td>\n <td md-cell ng-click="vm_ac.editInterval($event, $index)">{{app.IntervalId ? \'From List\' : app.interval}}</td>\n <td md-cell>\n <md-button ng-click="vm_ac.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n <md-icon md-font-icon="icon-timer"></md-icon>\n <md-tooltip>\n {{app.IntervalId ? \'From List\' : (app.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n </md-tooltip>\n </md-button>\n </td>\n <td md-cell class="actions" ng-if="!vm_ac.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editFaxAccountApp($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canDelete">\n <md-button ng-click="vm_ac.deleteConfirm(app, $index, $event)" translate="VOICE.DELETE_APP">\n Delete App\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-hide="vm_ac.faxAccountApps.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n \x3c!-- / QUEUES TABLE --\x3e\n\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.INTERACTIONS">INTERACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="faxAccount-detail-form-container interactions md-background-bg md-whiteframe-1dp">\n <div ng-controller="FaxAccountInteractionsController as vm_dc" ng-init="vm_dc.init(vm.faxAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedFaxAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="FAX.INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm_dc.getFaxAccountInteractions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_dc.quickFilters" query="vm_dc.query" search="vm_dc.getFaxAccountInteractions()"></ms-quick-filter>\n <div layout="column">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini md-accent-bg\': vm_dc.query.search }" aria-label="Filter" translate translate-attr-aria-label="DASHBOARDS.FILTER" ng-click="vm_dc.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm_dc.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'blink\': vm_dc.query.search }"></md-icon>\n </md-button>\n </div>\n <md-button class="md-icon-button" ng-click="vm_dc.getFaxAccountInteractions()" aria-label="refresh Interactions" translate translate-attr-label="FAX.REFRESH_INTERACTIONS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedFaxAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedFaxAccountInteractions.length}} {{vm_dc.selectedFaxAccountInteractions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedFaxAccountInteractions" csv-label="true" filename="faxAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedFaxAccountInteractions($event)" aria-label="delete selected" translate translate-attr-label="FAX.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedFaxAccountInteractions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getFaxAccountInteractions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'FAX.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column md-order-by="contactName">\n {{ \'FAX.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'FAX.STARTEDAT\' | translate }}\n </th>\n <th md-column md-order-by="lastMsgAt">\n {{ \'FAX.LASTMESSAGE\' | translate }}\n </th>\n <th md-column md-order-by="closed">\n {{ \'FAX.STATUS\' | translate }}\n </th>\n <th md-column>\n {{ \'FAX.AGENT\' | translate }}\n </th>\n <th md-column md-order-by="tag">\n {{ \'FAX.TAGS\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="interaction" md-select-id="id" ng-repeat="interaction in vm_dc.faxAccountInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td md-cell>\n {{interaction.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="user in interaction.Users">{{ user.fullname | translate }}\n <span ng-if="!$last">, </span>\n </span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg md-primary-bg" layout-margin>{{ interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.attach">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'margin-bottom-0\' : interaction.contactInfo}" layout-margin>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text margin-top-0" layout-margin>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td md-cell>\n {{ interaction.createdAt | formatdate }}\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}"></md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="text-truncate">{{ interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n </td>\n <td md-cell>\n <span ng-if="interaction.closed === 0" class="green-fg">\n {{ \'FAX.OPENED\' | translate }}\n <span ng-if="interaction.substatus">\n - {{ interaction.substatus }}\n </span>\n </span>\n <span ng-if="interaction.closed === 1" class="red-fg">\n {{ \'FAX.CLOSED\' | translate }}\n <span ng-if="interaction.disposition">\n - {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}\n </span>\n <md-tooltip class="multiline">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n </span>\n </td>\n\n <td md-cell>\n {{interaction.Owner.name}}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="FAX.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm_dc.spyfaxInteraction($event, interaction)" translate="FAX.SPYINTERACTION">\n Spy Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || vm_dc.userProfile.downloadOmnichannelInteractions">\n <md-button class="md-primary" ng-click="vm_dc.faxInteractionDownload(interaction, $event)" translate="FAX.DOWNLOAD_INTERACTION">\n Download\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(interaction, $event)" translate="FAX.DELETE_INTERACTION">\n Delete Interaction\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.faxAccountInteractions.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="FAX.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.faxAccountInteractions.count}}" md-on-paginate="vm_dc.getFaxAccountInteractions" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/fax/views/faxAccounts/faxAccounts.html",'<div id="faxAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-deskphone" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="FAX.FAXACCOUNTS">FaxAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="FAX.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedFaxAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedFaxAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="FAX.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-faxAccounts-count">\n <span>{{vm.selectedFaxAccounts.length}}</span>\n <span translate="FAX.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="FAX.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllFaxAccounts()" translate="FAX.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectFaxAccounts()" translate="FAX.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedFaxAccounts" csv-label="true" filename="faxAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedFaxAccounts($event)" aria-label="delete selected" translate translate-attr-label="FAX.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- FAXACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedFaxAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getFaxAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'FAX.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'FAX.NAME\' | translate }}</th>\n <th md-column md-order-by="key">{{ \'FAX.KEY\' | translate }}</th>\n <th md-column md-order-by="TrunkId">{{ \'FAX.TRUNK\' | translate }}</th>\n <th md-column md-order-by="localstationid">{{ \'FAX.LOCALSTATIONID\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'FAX.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.faxAccounts.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="FAX.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="faxAccount" md-select-id="id" ng-repeat="faxAccount in vm.faxAccounts.rows">\n <td md-cell ng-if="faxAccount.userpic"><img class="avatar" alt="{{faxAccount.name}}" ng-src="api/users/{{faxAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!faxAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{faxAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxAccount, ev) : vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="id ">{{faxAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxAccount, ev) : vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="name ">{{faxAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxAccount, ev) : vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="key ">{{faxAccount.key}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxAccount, ev) : vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="TrunkId ">{{ (vm.trunks | filter : {\'id\':faxAccount.TrunkId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxAccount, ev) : vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="localstationid ">{{faxAccount.localstationid}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxAccount, ev) : vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="description ">{{faxAccount.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="FAX.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(faxAccount, $event )" translate="FAX.EDIT_FAXACCOUNT">\n Edit FaxAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.interactionsgoto(faxAccount, $event )" translate="FAX.INTERACTIONS_FAXACCOUNT">\n Interactions FaxAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(faxAccount, $event )" translate="FAX.GOTOREALTIME_FAXACCOUNT">\n goToRealtime FaxAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(faxAccount, $event )" translate="FAX.AGENTADD_FAXACCOUNT">\n AgentAdd FaxAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(faxAccount, $event )" translate="FAX.DELETE_FAXACCOUNT">\n Delete FaxAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.faxAccounts.count}}" md-on-paginate="vm.getFaxAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / FAXACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD FAXACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-faxAccount-button" ng-click="vm.createOrEditFaxAccount($event)" aria-label="add faxAccount" translate translate-attr-aria-label="FAX.ADD_FAXACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD FAXACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/fax/views/faxQueues/create/dialog.html",'<md-dialog class="faxQueue-dialog" aria-label="New FaxQueue">\n <form name="faxQueueForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="FAX.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.faxQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newFaxQueue">\n\n <div class="hint"><span translate="FAX.HELP.NAME"></span></div>\n <div ng-messages="faxQueueForm[\'name\'].$error" ng-show="faxQueueForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="FAX.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.faxQueue.strategy" required>\n <md-option ng-value="\'beepall\'">Beepall</md-option>\n <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n </md-select>\n <div ng-messages="faxQueueForm[\'strategy\'].$error" ng-show="faxQueueForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.faxQueue.timeout" min="1" max="2147483" value="10" ng-required="true">\n\n <div ng-messages="faxQueueForm[\'timeout\'].$error" ng-show="faxQueueForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.faxQueue.description">\n\n <div ng-messages="faxQueueForm[\'description\'].$error" ng-show="faxQueueForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newFaxQueue" ng-click="vm.saveFaxQueue()" class="send-button md-accent md-raised" ng-disabled="faxQueueForm.$invalid || faxQueueForm.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newFaxQueue" ng-click="vm.addNewFaxQueue()" class="send-button md-accent md-raised" ng-disabled="faxQueueForm.$invalid" aria-label="ADD" translate="FAX.ADD_FAXQUEUE" translate-attr-aria-label="FAX.ADD_FAXQUEUE">\n ADD FAXQUEUE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newFaxQueue" ng-click="vm.deleteFaxQueue($event)" aria-label="DELETE" translate translate-attr-aria-label="FAX.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="FAX.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxQueues/edit/agentadd/agentadd.html",'<md-dialog class="faxQueue-dialog" aria-label="faxQueue" ng-init="vm.onInit()">\n <form name="faxQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="FAX.AGENTADD_FAXQUEUE">Add Agent to faxQueue</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxQueues/edit/teamadd/teamadd.html",'<md-dialog class="faxQueue-dialog" aria-label="faxQueue" ng-init="vm.onInit()">\n <form name="faxQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="FAX.TEAMS_ASSOCIATION">Teams Association</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxQueues/edit/view.html",'<div id="fax-faxQueue" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-faxQueues-button md-icon-button" aria-label="Go to faxQueues" ng-click="vm.gotoFaxQueues()" translate translate-attr-aria-label="FAX.GO_TO_FAXQUEUES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="faxQueue-image" hide-xs>\n <img ng-src="assets/images/business/faxQueues.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.faxQueue.id}}\n <span ng-if="vm.faxQueue.name">{{vm.faxQueue.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="FAX.CREATED_AT"></span> <span>{{vm.faxQueue.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.teamadddialog(vm.faxQueue, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n <md-tooltip><span translate="FAX.TEAMADD_FAXQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.faxQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="FAX.AGENTADD_FAXQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-plus"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveFaxQueue()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="faxQueue-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="FAX.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="FAX.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.faxQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="FAX.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="FAX.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.faxQueue.strategy" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'beepall\'">Beepall</md-option>\n <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n </md-select>\n <div ng-messages="generalForm[\'strategy\'].$error" ng-show="generalForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.faxQueue.timeout" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'timeout\'].$error" ng-show="generalForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.faxQueue.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/fax/views/faxQueues/faxQueues.html",'<div id="faxQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-deskphone" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="FAX.FAXQUEUES">FaxQueues</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="FAX.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedFaxQueues.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedFaxQueues =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="FAX.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-faxQueues-count">\n <span>{{vm.selectedFaxQueues.length}}</span>\n <span translate="FAX.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="FAX.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllFaxQueues()" translate="FAX.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectFaxQueues()" translate="FAX.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedFaxQueues" csv-label="true" filename="faxQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedFaxQueues($event)" aria-label="delete selected" translate translate-attr-label="FAX.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- FAXQUEUE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedFaxQueues" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getFaxQueues">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'FAX.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'FAX.NAME\' | translate }}</th>\n <th md-column md-order-by="strategy">{{ \'FAX.STRATEGY\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.faxQueues.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="FAX.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="faxQueue" md-select-id="id" ng-repeat="faxQueue in vm.faxQueues.rows">\n <td md-cell ng-if="faxQueue.userpic"><img class="avatar" alt="{{faxQueue.name}}" ng-src="api/users/{{faxQueue.id}}/avatar" /></td>\n <td md-cell ng-if="!faxQueue.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{faxQueue.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxQueue, ev) : vm.createOrEditFaxQueue($event, faxQueue)" md-cell class="id ">{{faxQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxQueue, ev) : vm.createOrEditFaxQueue($event, faxQueue)" md-cell class="name ">{{faxQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxQueue, ev) : vm.createOrEditFaxQueue($event, faxQueue)" md-cell class="strategy ">{{ vm.arraystrategy[faxQueue.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="FAX.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(faxQueue, $event )" translate="FAX.EDIT_FAXQUEUE">\n Edit FaxQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(faxQueue, $event )" translate="FAX.TEAMADD_FAXQUEUE">\n teamadd FaxQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(faxQueue, $event )" translate="FAX.AGENTADD_FAXQUEUE">\n agentadd FaxQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(faxQueue, $event )" translate="FAX.DELETE_FAXQUEUE">\n Delete FaxQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(faxQueue, $event )" translate="FAX.GOTOREALTIME_FAXQUEUE">\n goToRealtime FaxQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.faxQueues.count}}" md-on-paginate="vm.getFaxQueues" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / FAXQUEUE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD FAXQUEUE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-faxQueue-button" ng-click="vm.createOrEditFaxQueue($event)" aria-label="add faxQueue" translate translate-attr-aria-label="FAX.ADD_FAXQUEUE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD FAXQUEUE BUTTON --\x3e\n</div>'),e.put("app/main/apps/fax/views/realtime/accounts/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="FAX.ACCOUNTS">Accounts</span>\n <div flex></div>\n <ms-search-bar on-search="vm.vm.getFaxAccounts()" query="vm.query" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n\n\x3c!-- AGENT TABLE --\x3e\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getFaxAccounts">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'FAX.NAME\' | translate}}</th>\n <th md-column>{{\'FAX.KEY\' | translate}}</th>\n <th md-column>{{\'FAX.TOTAL\' | translate}}</th>\n <th md-column>{{\'FAX.IN\' | translate}}</th>\n <th md-column>{{\'FAX.OUT\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.faxAccounts">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="FAX.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="vm.faxAccounts[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td md-cell>{{vm.faxAccounts[value].name}}</td>\n <td md-cell>{{vm.faxAccounts[value].key}}</td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{(vm.faxAccounts[value].in || 0) + (vm.faxAccounts[value].out || 0)}}</span>\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon>\n </span>\n <span class="md-capture blue-fg">{{vm.faxAccounts[value].in || 0}}</span>\n <span class="text-boxed" ng-if="mailAccount.in">{{vm.faxAccounts[value].lastIn ? (vm.faxAccounts[value].lastIn | date: \'shortTime\') : \'\'}}</span>\n </div>\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon>\n </span>\n <span class="md-capture green-fg">{{vm.faxAccounts[value].out || 0}}</span>\n <span class="text-boxed" ng-if="mailAccount.out">{{vm.faxAccounts[value].lastOut ? (vm.faxAccounts[value].lastOut | date: \'shortTime\') : \'\'}}</span>\n </div>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="4">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.goToFaxAccount($event, vm.faxAccounts[value])" translate="FAX.EDIT_ACCOUNT">\n Edit Account\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getFaxAccounts" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/fax/views/realtime/queues/view.html",'<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="FAX.QUEUES">Queues</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'FAX.NAME\' | translate }}</th>\n <th md-column>{{ \'FAX.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'FAX.PAUSED\' | translate }}</th>\n <th md-column>{{ \'FAX.WAITING\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.queues.count > 0">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="FAX.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="queue" md-select-id="id" ng-repeat="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedIn }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="FAX.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="FAX.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" translate="FAX.AGENTSADD_QUEUE">\n Add Agents to queue\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),e.put("app/main/apps/fax/views/realtime/realtime.html",'<div id="realtime" class="page-layout simple tabbed" layout="column" ng-cloak>\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.TRUNKS">Trunks</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.QUEUES">Queues</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.ACCOUNTS">Accounts</span>\n </md-tab-label>\n </md-tab>\n </md-tabs>\n\n <md-card ui-view></md-card>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/fax/views/realtime/trunks/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="FAX.TRUNKS">Telephones</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getTrunks()" query="vm.query" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n\n\x3c!-- TRUNKS TABLE --\x3e\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head>\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTrunks">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'FAX.NAME\' | translate }}</th>\n <th md-column>{{ \'FAX.TRUNK_STATUS\' | translate }}</th>\n <th md-column>{{ \'FAX.REGISTRY\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.trunks">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="FAX.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(id, trunk) in vm.trunks">\n <td md-cell>{{trunk.name}}</td>\n <td md-cell>\n <i ng-class="vm.statusClass[trunk.status.toLowerCase()]">\n <md-tooltip>{{\'FAX.\' + trunk.status | uppercase | translate}}</md-tooltip>\n </i>\n <span ng-if="trunk.status === \'registered\'" class="text-boxed">{{trunk.address}}</span>\n </td>\n <td md-cell>\n <i ng-if="trunk.registry" ng-class="(trunk.stateRegistry.toLowerCase() === \'registered\') ? \'green-300-fg icon-checkbox-marked-circle\' : \'red-300-fg icon-close-circle\'">\n <md-tooltip>{{\'FAX.\' + trunk.stateRegistry | uppercase | translate}}</md-tooltip>\n </i>\n <span ng-if="trunk.registry && trunk.host && trunk.port" class="text-boxed">{{trunk.host}}:{{trunk.port}}</span>\n <span ng-if="!trunk.registry" translate="FAX.NO_REGISTRY">\n No Registry\n </span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="4">\n <md-menu-item>\n <md-button ng-click="vm.goToTrunk($event, trunk)" translate="FAX.EDIT_TRUNK">\n Edit Trunk\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getTrunks" md-page-select></md-table-pagination>\n\x3c!-- / TRUNKS TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/help/views/about/about.html",'<div id="maintenance" class="flex-scrollable" layout="column" ms-scroll>\n <div id="maintenance-form-wrapper" layout="column" layout-align="center center">\n <div id="maintenance-form" class="md-whiteframe-8dp">\n <div>\n <img src="/api/settings/1/logo_login" alt="logo_login" />\n </div>\n\n <br>\n\n <div>\n <div class="info-line">\n <div class="title">Useful pages</div>\n </div>\n <section layout="row" flex layout-sm="column" layout-align="center center" layout-wrap>\n <div layout="column" flex="25" layout-align="center center">\n <a class="md-fab md-mini md-button grey-bg" href="https://wiki.xcallymotion.com/display/XMV" target="_blank">\n <md-icon md-font-icon="icon-wikipedia"></md-icon>\n </a>\n <div class="info"><a href="https://wiki.xcallymotion.com/display/XMV" target="_blank">Wiki</a></div>\n </div>\n\n <div layout="column" flex="25" layout-align="center center">\n <a class="md-fab md-mini md-button md-accent" href="/apidoc" target="_blank">\n <md-icon md-font-icon="icon-apple-mobileme"></md-icon>\n </a>\n <div class="info"><a href="/apidoc" target="_blank">Motion API</a></div>\n </div>\n\n <div layout="column" flex="25" layout-align="center center">\n <a class="md-fab md-mini md-button orange-bg" href="http://www.xcally.com/bar/phonebar/Setup.msi" target="_blank">\n <md-icon md-font-icon="icon-headphones"></md-icon>\n </a>\n <div class="info"><a href="https://www.xcally.com/bar/phonebar/Setup.msi" target="_blank">Phonebar Download</a></div>\n </div>\n\n <div layout="column" flex="25" layout-align="center center">\n <a class="md-fab md-mini md-button green-bg" href="/demo" target="_blank">\n <md-icon md-font-icon="icon-console"></md-icon>\n </a>\n <div class="info"><a href="/demo" target="_blank">Playground</a></div>\n </div>\n\n </section>\n\n <br>\n\n <div class="info-line" ng-if="!vm.license.custom">\n <div class="title">Follow us on</div>\n </div>\n <section ng-if="!vm.license.custom" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n <a class="md-fab md-mini md-button blue-900-bg" href="https://www.facebook.com/xcallymotion" target="_blank">\n <md-icon md-font-icon="icon-facebook"></md-icon>\n </a>\n\n <a class="md-fab md-mini md-button" href="https://twitter.com/xcallymotion" target="_blank">\n <md-icon md-font-icon="icon-twitter"></md-icon>\n </a>\n <a class="md-fab md-mini md-button md-warn" href="https://plus.google.com/+Xcally" target="_blank">\n <md-icon md-font-icon="icon-google-plus"></md-icon>\n </a>\n <a class="md-fab md-mini md-button light-blue-800-bg" href="https://www.linkedin.com/company/xcally" target="_blank">\n <md-icon md-font-icon="icon-linkedin"></md-icon>\n </a>\n </section>\n\n <br ng-if="!vm.license.custom">\n\n <div class="info-line" ng-if="!vm.license.custom">\n <div class="title" translate="HELP.CONTACT_US">Contact Us</div>\n </div>\n <div class="info-line" ng-if="!vm.license.custom">\n <div class="info"><a href="mailto:support@xcally.com" target="_top">support@xcally.com</a></div>\n </div>\n\n <br ng-if="!vm.license.custom">\n\n <div class="info">xCALLY Motion <u>{{vm.info.current}}</u> | <a href="https://wiki.xcallymotion.com/display/XMV/Motion+GUI#MotionGUI-Version{{vm.info.current}}" target="_blank">Changelog</a></div>\n\n <br>\n\n <div class="info" ng-if="!vm.license.custom">xCALLY© 2016 - 2018 | Powered by Xenialab | <a href="http://www.xcally.com/support/eula-xcally-license-en.pdf" target="_blank">EULA</a></div>\n\n <br ng-if="!vm.license.custom">\n\n <div class="info" ng-if="!vm.license.custom"><a href="https://www.xenialab.com/" target="_blank">www.xenialab.com</a> | <a href="https://www.xcallymotion.com/" target="_blank">www.xcallymotion.com</a></div>\n </div>\n </div>\n </div>\n</div>'),e.put("app/main/apps/integrations/views/deskAccounts/create/dialog.html",'<md-dialog class="deskAccount-dialog" aria-label="New DeskAccount">\n <form name="deskAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.deskAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="deskAccountForm[\'name\'].$error" ng-show="deskAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.deskAccount.type" required>\n\n <md-option ng-value="\'integrationTab\'"> {{ \'INTEGRATIONS.INTEGRATION_TAB\' | translate }} </md-option>\n\n <md-option ng-value="\'newTab\'"> {{ \'INTEGRATIONS.NEW_TAB\' | translate }} </md-option>\n </md-select>\n <div ng-messages="deskAccountForm[\'type\'].$error" ng-show="deskAccountForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.deskAccount.remoteUri" ng-required="true">\n\n <div ng-messages="deskAccountForm[\'remoteUri\'].$error" ng-show="deskAccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.AUTHTYPE">AuthType</label>\n <md-select name="authType" ng-model="vm.deskAccount.authType" required>\n <md-option ng-value="\'basic\'">Basic</md-option>\n </md-select>\n <div ng-messages="deskAccountForm[\'authType\'].$error" ng-show="deskAccountForm[\'authType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.AUTHTYPE_REQUIRED">AuthType field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.deskAccount.authType == \'basic\'" class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.deskAccount.username" ng-required="true">\n\n <div ng-messages="deskAccountForm[\'username\'].$error" ng-show="deskAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.deskAccount.authType == \'basic\'">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.deskAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="deskAccountForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.deskAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="deskAccountForm[\'serverUrl\'].$error" ng-show="deskAccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.deskAccount.description">\n\n <div ng-messages="deskAccountForm[\'description\'].$error" ng-show="deskAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newDeskAccount" ng-click="vm.saveDeskAccount()" class="send-button md-accent md-raised" ng-disabled="deskAccountForm.$invalid || deskAccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newDeskAccount" ng-click="vm.addNewDeskAccount()" class="send-button md-accent md-raised" ng-disabled="deskAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_DESKACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_DESKACCOUNT">\n ADD DESKACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newDeskAccount" ng-click="vm.deleteDeskAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/deskAccounts/deskAccounts.html",'<div id="deskAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="INTEGRATIONS.DESKACCOUNTS">DeskAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedDeskAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedDeskAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="INTEGRATIONS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-deskAccounts-count">\n <span>{{vm.selectedDeskAccounts.length}}</span>\n <span translate="INTEGRATIONS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="INTEGRATIONS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllDeskAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectDeskAccounts()" translate="INTEGRATIONS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedDeskAccounts" csv-label="true" filename="deskAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedDeskAccounts($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- DESKACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedDeskAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getDeskAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.URI\' | translate }}</th>\n <th md-column md-order-by="username">{{ \'INTEGRATIONS.USERNAME\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.deskAccounts.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="deskAccount" md-select-id="id" ng-repeat="deskAccount in vm.deskAccounts.rows">\n <td md-cell ng-if="deskAccount.userpic"><img class="avatar" alt="{{deskAccount.name}}" ng-src="api/users/{{deskAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!deskAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{deskAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(deskAccount, ev) : vm.createOrEditDeskAccount($event, deskAccount)" md-cell class="id ">{{deskAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(deskAccount, ev) : vm.createOrEditDeskAccount($event, deskAccount)" md-cell class="name ">{{deskAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(deskAccount, ev) : vm.createOrEditDeskAccount($event, deskAccount)" md-cell class="remoteUri ">{{deskAccount.remoteUri}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(deskAccount, ev) : vm.createOrEditDeskAccount($event, deskAccount)" md-cell class="username ">{{deskAccount.username}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(deskAccount, $event )" translate="INTEGRATIONS.EDIT_DESKACCOUNT">\n Edit DeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(deskAccount, $event )" translate="INTEGRATIONS.TEST_DESKACCOUNT">\n Test DeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(deskAccount, $event )" translate="INTEGRATIONS.DELETE_DESKACCOUNT">\n Delete DeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.deskAccounts.count}}" md-on-paginate="vm.getDeskAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / DESKACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD DESKACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-deskAccount-button" ng-click="vm.createOrEditDeskAccount($event)" aria-label="add deskAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_DESKACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD DESKACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/deskAccounts/edit/configurations/dialog.html",'<md-dialog class="deskConfiguration-dialog" aria-label="New DeskConfiguration">\n <form name="deskConfigurationForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="" name="name" ng-model="vm.deskConfiguration.name" ng-required="true" autofocus>\n\n <div ng-messages="deskConfigurationForm[\'name\'].$error" ng-show="deskConfigurationForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.deskConfiguration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="deskConfigurationForm[\'channel\'].$error" ng-show="deskConfigurationForm[\'channel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.deskConfiguration.type" required>\n\n <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }} </md-option>\n\n <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="deskConfigurationForm[\'type\'].$error" ng-show="deskConfigurationForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newDeskConfiguration" ng-click="vm.saveDeskConfiguration()" class="send-button md-accent md-raised" ng-disabled="deskConfigurationForm.$invalid || deskConfigurationForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newDeskConfiguration" ng-click="vm.addNewDeskConfiguration()" class="send-button md-accent md-raised" ng-disabled="deskConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_DESKCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_DESKCONFIGURATION">\n ADD DESKCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newDeskConfiguration" ng-click="vm.deleteDeskConfiguration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/deskAccounts/edit/item/dialog.html",'<md-dialog class="deskAccount-item-dialog" aria-label="New Item">\n <form name="deskAccountItemForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div ng-switch="vm.type">\n <div ng-switch-when="subject">\n \x3c!-- SUBJECT SECTION --\x3e\n <div ng-include="\'/subject.html\'"></div>\n \x3c!-- / SUBJECT SECTION --\x3e\n </div>\n <div ng-switch-when="description">\n \x3c!-- DESCRIPTION SECTION --\x3e\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="keyValue">Key Value</md-option>\n </md-select>\n <div ng-messages="deskAccountItemForm.type.$error" ng-show="deskAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="deskAccountItemForm.content.$error" ng-show="deskAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.item.type == \'keyValue\'">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n <div ng-messages="deskAccountItemForm.key.$error" ng-show="deskAccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="keyType" ng-model="vm.item.keyType" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="deskAccountItemForm.keyType.$error" ng-show="deskAccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n <div ng-messages="deskAccountItemForm.keyContent.$error" ng-show="deskAccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="deskAccountItemForm.variableName.$error" ng-show="deskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}\n </md-option>\n </md-select>\n </md-input-container>\n </div>\n \x3c!-- / DESCRIPTION SECTION --\x3e\n </div>\n <div ng-switch-when="field">\n \x3c!-- FIELD SECTION --\x3e\n <div ng-if="vm.accountConnected">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.FIELD">FIELD</label>\n \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="deskAccountItemForm.customField.$error" ng-show="deskAccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\n </div>\n <div ng-if="!vm.accountConnected">\n <p>Account is not connected. Please check your configurations!</p>\n </div>\n \x3c!-- / FIELD SECTION --\x3e\n </div>\n <div ng-switch-default>\n <p>No Item</p>\n </div>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="deskAccountItemForm.$invalid || deskAccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="deskAccountItemForm.$invalid || deskAccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n ADD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n <md-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="deskAccountItemForm.type.$error" ng-show="deskAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <md-select name="option" ng-model="vm.item.content" required>\n <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n </md-select>\n\n <div ng-messages="deskAccountItemForm.option.$error" ng-show="deskAccountItemForm.option.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="deskAccountItemForm.content.$error" ng-show="deskAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="deskAccountItemForm.variableName.$error" ng-show="deskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!--/ value --\x3e\n\n<\/script>\n\n<script type="text/ng-template" id="/subject.html">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="deskAccountItemForm.type.$error" ng-show="deskAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n \n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="deskAccountItemForm.content.$error"\n ng-show="deskAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="deskAccountItemForm.variableName.$error"\n ng-show="deskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n <\/script>'),e.put("app/main/apps/integrations/views/deskAccounts/edit/view.html",'<div id="integrations-deskAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-deskAccounts-button md-icon-button" aria-label="Go to deskAccounts" ng-click="vm.gotoDeskAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_DESKACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="deskAccount-image" hide-xs>\n <img ng-src="assets/images/business/deskAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.deskAccount.id}}\n <span ng-if="vm.deskAccount.name">{{vm.deskAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.deskAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveDeskAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (configurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="deskAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.deskAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.deskAccount.type" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'integrationTab\'"> {{ \'INTEGRATIONS.INTEGRATION_TAB\' | translate }} </md-option>\n\n <md-option ng-value="\'newTab\'"> {{ \'INTEGRATIONS.NEW_TAB\' | translate }} </md-option>\n </md-select>\n <div ng-messages="generalForm[\'type\'].$error" ng-show="generalForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.deskAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.AUTHTYPE">AuthType</label>\n <md-select name="authType" ng-model="vm.deskAccount.authType" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'basic\'">Basic</md-option>\n </md-select>\n <div ng-messages="generalForm[\'authType\'].$error" ng-show="generalForm[\'authType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.AUTHTYPE_REQUIRED">AuthType field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.deskAccount.authType == \'basic\'" class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.deskAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.deskAccount.authType == \'basic\'">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.deskAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="generalForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.deskAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.deskAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="deskAccount-detail-form-container configurations md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</div>\n </div>\n <div ng-controller="DeskAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.deskAccount, vm.crudPermissions)" layout="row">\n <md-card class="md-whiteframe-1dp" flex="30">\n <div layout="row" layout-align="center center">\n <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n <md-button flex="25" ng-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditDeskConfiguration($event)" class="md-icon-button" aria-label="create deskConfiguration">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n <md-list>\n <md-list-item layout="row" layout-align="center center" ng-repeat="deskConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedDeskConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getDeskConfiguration($index)">\n <span class="text-truncate" flex="80">{{ deskConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDeskConfiguration($event, deskConfiguration)" translate="INTEGRATIONS.DELETE_DESKCONFIGURATION">\n Delete DeskConfiguration\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-list-item>\n </md-list>\n </md-card>\n <div flex></div>\n <md-card class="md-whiteframe-1dp" flex="65">\n <md-tabs ng-if="vm_cc.configurations.length" md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n <span ng-if="subject.FieldId">{{subject.nameField || subject.idField}}</span>\n <span ng-if="!subject.FieldId">{{subject.type}}</span>\n </td>\n <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n <span ng-switch-when="string">{{subject.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{subject.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{subject.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{subject.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n Edit Subject\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n Delete Subject\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n <span ng-if="description.FieldId">{{description.nameField || description.idField}}</span>\n <span ng-if="!description.FieldId">{{description.type}}</span>\n </td>\n <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n <span ng-switch-when="string">{{description.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{description.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{description.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{description.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n Edit Description\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n Delete Description\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.FIELDS">FIELDS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.field = query" on-collapse="vm_cc.query.field = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditField($event)" aria-label="add field" translate translate-attr-label="INTEGRATIONS.ADD_FIELD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedFields.length}} {{vm_cc.selectedFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedFields($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedFields">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="field" md-select-id="id" ng-repeat="field in vm_cc.fields | filter: vm_cc.query.field">\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="id ">{{field.id}}</td>\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="type ">\n <span ng-if="field.FieldId">{{field.nameField || field.idField}}</span>\n <span ng-if="!field.FieldId">{{field.type}}</span>\n </td>\n <td ng-switch="field.type" ng-click="vm_cc.createOrEditField($event, field)" md-cell>\n <span ng-switch-when="string">{{field.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{field.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{field.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{field.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditField($event, field)" translate="INTEGRATIONS.EDIT_FIELD">\n Edit Field\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteFieldConfirm($event, field)" translate="INTEGRATIONS.DELETE_FIELD">\n Delete Field\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.TAGS">TAGS</span>\n </md-tab-label>\n <md-tab-body>\n <md-table-container class="md-whiteframe-1dp padding-20">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TAGS">Tags</label>\n <md-select ng-model="vm_cc.selectedTags" ng-change="vm_cc.selectTagsChanged($event)" multiple>\n <md-option ng-value="tag.id" ng-repeat="tag in vm_cc.tags">{{ tag.name }}</md-option>\n </md-select>\n </md-input-container>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditDeskConfiguration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n </div>\n </div>\n </md-card>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/dynamics365Accounts/create/dialog.html",'<md-dialog class="dynamics365Account-dialog" aria-label="New Dynamics365Account">\n <form name="dynamics365AccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.dynamics365Account.name" ng-required="true" autofocus>\n\n <div ng-messages="dynamics365AccountForm[\'name\'].$error" ng-show="dynamics365AccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.dynamics365Account.username" ng-required="true">\n\n <div ng-messages="dynamics365AccountForm[\'username\'].$error" ng-show="dynamics365AccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.dynamics365Account.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="dynamics365AccountForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.dynamics365Account.remoteUri" ng-required="true">\n\n <div ng-messages="dynamics365AccountForm[\'remoteUri\'].$error" ng-show="dynamics365AccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TENANTID">TenantId</label>\n <input type="text" name="tenantId" ng-model="vm.dynamics365Account.tenantId" ng-required="true">\n\n <div ng-messages="dynamics365AccountForm[\'tenantId\'].$error" ng-show="dynamics365AccountForm[\'tenantId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TENANTID_REQUIRED">TenantId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTID">ClientId</label>\n <input type="text" name="clientId" ng-model="vm.dynamics365Account.clientId" ng-required="true">\n\n <div ng-messages="dynamics365AccountForm[\'clientId\'].$error" ng-show="dynamics365AccountForm[\'clientId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTID_REQUIRED">ClientId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTSECRET">ClientSecret</label>\n <input type="text" name="clientSecret" ng-model="vm.dynamics365Account.clientSecret" ng-required="true">\n\n <div ng-messages="dynamics365AccountForm[\'clientSecret\'].$error" ng-show="dynamics365AccountForm[\'clientSecret\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTSECRET_REQUIRED">ClientSecret field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.dynamics365Account.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="dynamics365AccountForm[\'serverUrl\'].$error" ng-show="dynamics365AccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.dynamics365Account.description">\n\n <div ng-messages="dynamics365AccountForm[\'description\'].$error" ng-show="dynamics365AccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newDynamics365Account" ng-click="vm.saveDynamics365Account()" class="send-button md-accent md-raised" ng-disabled="dynamics365AccountForm.$invalid || dynamics365AccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newDynamics365Account" ng-click="vm.addNewDynamics365Account()" class="send-button md-accent md-raised" ng-disabled="dynamics365AccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_DYNAMICS365ACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_DYNAMICS365ACCOUNT">\n ADD DYNAMICS365ACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newDynamics365Account" ng-click="vm.deleteDynamics365Account($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/dynamics365Accounts/dynamics365Accounts.html",'<div id="dynamics365Accounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="INTEGRATIONS.DYNAMICS365ACCOUNTS">Dynamics365Accounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedDynamics365Accounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedDynamics365Accounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="INTEGRATIONS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-dynamics365Accounts-count">\n <span>{{vm.selectedDynamics365Accounts.length}}</span>\n <span translate="INTEGRATIONS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="INTEGRATIONS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllDynamics365Accounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectDynamics365Accounts()" translate="INTEGRATIONS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedDynamics365Accounts" csv-label="true" filename="dynamics365Accounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedDynamics365Accounts($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- DYNAMICS365ACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedDynamics365Accounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getDynamics365Accounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n <th md-column md-order-by="username">{{ \'INTEGRATIONS.USERNAME\' | translate }}</th>\n <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.URI\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.dynamics365Accounts.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="dynamics365Account" md-select-id="id" ng-repeat="dynamics365Account in vm.dynamics365Accounts.rows">\n <td md-cell ng-if="dynamics365Account.userpic"><img class="avatar" alt="{{dynamics365Account.name}}" ng-src="api/users/{{dynamics365Account.id}}/avatar" /></td>\n <td md-cell ng-if="!dynamics365Account.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{dynamics365Account.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(dynamics365Account, ev) : vm.createOrEditDynamics365Account($event, dynamics365Account)" md-cell class="id ">{{dynamics365Account.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(dynamics365Account, ev) : vm.createOrEditDynamics365Account($event, dynamics365Account)" md-cell class="name ">{{dynamics365Account.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(dynamics365Account, ev) : vm.createOrEditDynamics365Account($event, dynamics365Account)" md-cell class="username ">{{dynamics365Account.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(dynamics365Account, ev) : vm.createOrEditDynamics365Account($event, dynamics365Account)" md-cell class="remoteUri ">{{dynamics365Account.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(dynamics365Account, $event )" translate="INTEGRATIONS.EDIT_DYNAMICS365ACCOUNT">\n Edit Dynamics365Account\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(dynamics365Account, $event )" translate="INTEGRATIONS.TEST_DYNAMICS365ACCOUNT">\n Test Dynamics365Account\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\n\n <md-button ng-click="vm.deleteconfirm(dynamics365Account, $event )" translate="INTEGRATIONS.DELETE_DYNAMICS365ACCOUNT">\n Delete Dynamics365Account\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.dynamics365Accounts.count}}" md-on-paginate="vm.getDynamics365Accounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / DYNAMICS365ACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD DYNAMICS365ACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-dynamics365Account-button" ng-click="vm.createOrEditDynamics365Account($event)" aria-label="add dynamics365Account" translate translate-attr-aria-label="INTEGRATIONS.ADD_DYNAMICS365ACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD DYNAMICS365ACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/dynamics365Accounts/edit/configurations/dialog.html",'<md-dialog class="dynamics365Configuration-dialog" aria-label="New Dynamics365Configuration">\n <form name="dynamics365ConfigurationForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="" name="name" ng-model="vm.dynamics365Configuration.name" ng-required="true" autofocus>\n\n <div ng-messages="dynamics365ConfigurationForm[\'name\'].$error" ng-show="dynamics365ConfigurationForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.dynamics365Configuration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dynamics365ConfigurationForm[\'channel\'].$error" ng-show="dynamics365ConfigurationForm[\'channel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.dynamics365Configuration.type" required>\n\n <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }} </md-option>\n\n <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dynamics365ConfigurationForm[\'type\'].$error" ng-show="dynamics365ConfigurationForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TICKETTYPE">TicketType</label>\n <md-select name="ticketType" ng-model="vm.dynamics365Configuration.ticketType" required>\n\n <md-option ng-value="\'incident\'"> {{ \'INTEGRATIONS.CASE\' | translate }} </md-option>\n\n <md-option ng-value="\'phonecall\'"> {{ \'INTEGRATIONS.PHONECALL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dynamics365ConfigurationForm[\'ticketType\'].$error" ng-show="dynamics365ConfigurationForm[\'ticketType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TICKETTYPE_REQUIRED">TicketType field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newDynamics365Configuration" ng-click="vm.saveDynamics365Configuration()" class="send-button md-accent md-raised" ng-disabled="dynamics365ConfigurationForm.$invalid || dynamics365ConfigurationForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newDynamics365Configuration" ng-click="vm.addNewDynamics365Configuration()" class="send-button md-accent md-raised" ng-disabled="dynamics365ConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_DYNAMICS365CONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_DYNAMICS365CONFIGURATION">\n ADD DYNAMICS365CONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newDynamics365Configuration" ng-click="vm.deleteDynamics365Configuration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/dynamics365Accounts/edit/item/dialog.html",'<md-dialog class="dynamics365Account-item-dialog" aria-label="New Item">\n <form name="dynamics365AccountItemForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div ng-switch="vm.type">\n <div ng-switch-when="subject">\n \x3c!-- SUBJECT SECTION --\x3e\n <div ng-include="\'/subject.html\'"></div>\n \x3c!-- / SUBJECT SECTION --\x3e\n </div>\n <div ng-switch-when="description">\n \x3c!-- DESCRIPTION SECTION --\x3e\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="keyValue">Key Value</md-option>\n </md-select>\n <div ng-messages="dynamics365AccountItemForm.type.$error" ng-show="dynamics365AccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="dynamics365AccountItemForm.content.$error" ng-show="dynamics365AccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.item.type == \'keyValue\'">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n <div ng-messages="dynamics365AccountItemForm.key.$error" ng-show="dynamics365AccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="keyType" ng-model="vm.item.keyType" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="dynamics365AccountItemForm.keyType.$error" ng-show="dynamics365AccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n <div ng-messages="dynamics365AccountItemForm.keyContent.$error" ng-show="dynamics365AccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="dynamics365AccountItemForm.variableName.$error" ng-show="dynamics365AccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}\n </md-option>\n </md-select>\n </md-input-container>\n </div>\n \x3c!-- / DESCRIPTION SECTION --\x3e\n </div>\n <div ng-switch-when="field">\n \x3c!-- FIELD SECTION --\x3e\n <div ng-if="vm.accountConnected">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.FIELD">FIELD</label>\n \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="dynamics365AccountItemForm.customField.$error" ng-show="dynamics365AccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\n </div>\n <div ng-if="!vm.accountConnected">\n <p>Account is not connected. Please check your configurations!</p>\n </div>\n \x3c!-- / FIELD SECTION --\x3e\n </div>\n <div ng-switch-default>\n <p>No Item</p>\n </div>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="dynamics365AccountItemForm.$invalid || dynamics365AccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="dynamics365AccountItemForm.$invalid || dynamics365AccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n ADD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n <md-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="dynamics365AccountItemForm.type.$error" ng-show="dynamics365AccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <md-select name="option" ng-model="vm.item.content" required>\n <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n </md-select>\n\n <div ng-messages="dynamics365AccountItemForm.option.$error" ng-show="dynamics365AccountItemForm.option.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="dynamics365AccountItemForm.content.$error" ng-show="dynamics365AccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="dynamics365AccountItemForm.variableName.$error" ng-show="dynamics365AccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!--/ value --\x3e\n\n<\/script>\n\n<script type="text/ng-template" id="/subject.html">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="dynamics365AccountItemForm.type.$error" ng-show="dynamics365AccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n \n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="dynamics365AccountItemForm.content.$error"\n ng-show="dynamics365AccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="dynamics365AccountItemForm.variableName.$error"\n ng-show="dynamics365AccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n <\/script>'),e.put("app/main/apps/integrations/views/dynamics365Accounts/edit/view.html",'<div id="integrations-dynamics365Account" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-dynamics365Accounts-button md-icon-button" aria-label="Go to dynamics365Accounts" ng-click="vm.gotoDynamics365Accounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_DYNAMICS365ACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="dynamics365Account-image" hide-xs>\n <img ng-src="assets/images/business/dynamics365Accounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.dynamics365Account.id}}\n <span ng-if="vm.dynamics365Account.name">{{vm.dynamics365Account.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.dynamics365Account.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveDynamics365Account()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (configurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="dynamics365Account-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.dynamics365Account.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.dynamics365Account.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.dynamics365Account.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="generalForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.dynamics365Account.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TENANTID">TenantId</label>\n <input type="text" name="tenantId" ng-model="vm.dynamics365Account.tenantId" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'tenantId\'].$error" ng-show="generalForm[\'tenantId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TENANTID_REQUIRED">TenantId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTID">ClientId</label>\n <input type="text" name="clientId" ng-model="vm.dynamics365Account.clientId" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'clientId\'].$error" ng-show="generalForm[\'clientId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTID_REQUIRED">ClientId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTSECRET">ClientSecret</label>\n <input type="text" name="clientSecret" ng-model="vm.dynamics365Account.clientSecret" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'clientSecret\'].$error" ng-show="generalForm[\'clientSecret\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTSECRET_REQUIRED">ClientSecret field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.dynamics365Account.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.dynamics365Account.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="dynamics365Account-detail-form-container configurations md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</div>\n </div>\n <div ng-controller="Dynamics365AccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.dynamics365Account, vm.crudPermissions)" layout="row">\n <md-card class="md-whiteframe-1dp" flex="30">\n <div layout="row" layout-align="center center">\n <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n <md-button flex="25" ng-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditDynamics365Configuration($event)" class="md-icon-button" aria-label="create dynamics365Configuration">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n <md-list>\n <md-list-item layout="row" layout-align="center center" ng-repeat="dynamics365Configuration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedDynamics365Configuration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getDynamics365Configuration($index)">\n <span class="text-truncate" flex="80">{{ dynamics365Configuration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDynamics365Configuration($event, dynamics365Configuration)" translate="INTEGRATIONS.DELETE_DYNAMICS365CONFIGURATION">\n Delete Dynamics365Configuration\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-list-item>\n </md-list>\n </md-card>\n <div flex></div>\n <md-card class="md-whiteframe-1dp" flex="65">\n <md-tabs ng-if="vm_cc.configurations.length" md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n <span ng-if="subject.FieldId">{{subject.nameField || subject.idField}}</span>\n <span ng-if="!subject.FieldId">{{subject.type}}</span>\n </td>\n <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n <span ng-switch-when="string">{{subject.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{subject.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{subject.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{subject.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n Edit Subject\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n Delete Subject\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n <span ng-if="description.FieldId">{{description.nameField || description.idField}}</span>\n <span ng-if="!description.FieldId">{{description.type}}</span>\n </td>\n <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n <span ng-switch-when="string">{{description.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{description.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{description.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{description.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n Edit Description\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n Delete Description\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.FIELDS">FIELDS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.field = query" on-collapse="vm_cc.query.field = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditField($event)" aria-label="add field" translate translate-attr-label="INTEGRATIONS.ADD_FIELD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedFields.length}} {{vm_cc.selectedFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedFields($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedFields">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="field" md-select-id="id" ng-repeat="field in vm_cc.fields | filter: vm_cc.query.field">\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="id ">{{field.id}}</td>\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="type ">\n <span ng-if="field.FieldId">{{field.nameField || field.idField}}</span>\n <span ng-if="!field.FieldId">{{field.type}}</span>\n </td>\n <td ng-switch="field.type" ng-click="vm_cc.createOrEditField($event, field)" md-cell>\n <span ng-switch-when="string">{{field.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{field.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{field.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{field.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditField($event, field)" translate="INTEGRATIONS.EDIT_FIELD">\n Edit Field\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteFieldConfirm($event, field)" translate="INTEGRATIONS.DELETE_FIELD">\n Delete Field\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="dynamics365Account-detail-form-container general md-background-bg">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.ADVANCED">ADVANCED</div>\n </div>\n <form name="vm_cc.advancedForm" novalidate>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MODULECREATE">Module Create</label>\n <md-select name="type" ng-model="vm_cc.dynamics365Configuration.moduleCreate" required>\n <md-option ng-value="\'contact\'">{{\'INTEGRATIONS.DYNAMIC365CONTACT\' | translate}}</md-option>\n <md-option ng-value="\'nothing\'">{{\'INTEGRATIONS.DYNAMIC365NOTHING\' | translate}}</md-option>\n </md-select>\n <div ng-messages="vm_cc.advancedForm[\'moduleCreate\'].$error" ng-show="vm_cc.advancedForm[\'moduleCreate\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MODULECREATE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <div layout="row" layout-align="end center">\n <md-button type="submit" ng-click="vm_cc.saveDynamics365Configuration()" class="send-button md-accent md-raised" ng-disabled="vm_cc.advancedForm.$invalid || vm_cc.advancedForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n </div>\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditDynamics365Configuration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n </div>\n </div>\n </md-card>\n </div>\n</div>\n\n</md-tab-body>\n</md-tab>\n</md-tabs>\n\n</div>\n\x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/freshdeskAccounts/create/dialog.html",'<md-dialog class="freshdeskAccount-dialog" aria-label="New FreshdeskAccount">\n <form name="freshdeskAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.freshdeskAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="freshdeskAccountForm[\'name\'].$error" ng-show="freshdeskAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.freshdeskAccount.username" ng-required="true">\n\n <div ng-messages="freshdeskAccountForm[\'username\'].$error" ng-show="freshdeskAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.freshdeskAccount.remoteUri" ng-required="true">\n\n <div ng-messages="freshdeskAccountForm[\'remoteUri\'].$error" ng-show="freshdeskAccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.APIKEY">ApiKey</label>\n <input type="text" name="apiKey" ng-model="vm.freshdeskAccount.apiKey" ng-required="true">\n\n <div ng-messages="freshdeskAccountForm[\'apiKey\'].$error" ng-show="freshdeskAccountForm[\'apiKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.APIKEY_REQUIRED">ApiKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.freshdeskAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="freshdeskAccountForm[\'serverUrl\'].$error" ng-show="freshdeskAccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.freshdeskAccount.description">\n\n <div ng-messages="freshdeskAccountForm[\'description\'].$error" ng-show="freshdeskAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newFreshdeskAccount" ng-click="vm.saveFreshdeskAccount()" class="send-button md-accent md-raised" ng-disabled="freshdeskAccountForm.$invalid || freshdeskAccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newFreshdeskAccount" ng-click="vm.addNewFreshdeskAccount()" class="send-button md-accent md-raised" ng-disabled="freshdeskAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_FRESHDESKACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_FRESHDESKACCOUNT">\n ADD FRESHDESKACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newFreshdeskAccount" ng-click="vm.deleteFreshdeskAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/freshdeskAccounts/edit/configurations/dialog.html",'<md-dialog class="freshdeskConfiguration-dialog" aria-label="New FreshdeskConfiguration">\n <form name="freshdeskConfigurationForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="" name="name" ng-model="vm.freshdeskConfiguration.name" ng-required="true" autofocus>\n\n <div ng-messages="freshdeskConfigurationForm[\'name\'].$error" ng-show="freshdeskConfigurationForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.freshdeskConfiguration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="freshdeskConfigurationForm[\'channel\'].$error" ng-show="freshdeskConfigurationForm[\'channel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.freshdeskConfiguration.type" required>\n\n <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }} </md-option>\n\n <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="freshdeskConfigurationForm[\'type\'].$error" ng-show="freshdeskConfigurationForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newFreshdeskConfiguration" ng-click="vm.saveFreshdeskConfiguration()" class="send-button md-accent md-raised" ng-disabled="freshdeskConfigurationForm.$invalid || freshdeskConfigurationForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newFreshdeskConfiguration" ng-click="vm.addNewFreshdeskConfiguration()" class="send-button md-accent md-raised" ng-disabled="freshdeskConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_FRESHDESKCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_FRESHDESKCONFIGURATION">\n ADD FRESHDESKCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newFreshdeskConfiguration" ng-click="vm.deleteFreshdeskConfiguration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/freshdeskAccounts/edit/item/dialog.html",'<md-dialog class="freshdeskAccount-item-dialog" aria-label="New Item">\n <form name="freshdeskAccountItemForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div ng-switch="vm.type">\n <div ng-switch-when="subject">\n \x3c!-- SUBJECT SECTION --\x3e\n <div ng-include="\'/subject.html\'"></div>\n \x3c!-- / SUBJECT SECTION --\x3e\n </div>\n <div ng-switch-when="description">\n \x3c!-- DESCRIPTION SECTION --\x3e\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="keyValue">Key Value</md-option>\n </md-select>\n <div ng-messages="freshdeskAccountItemForm.type.$error" ng-show="freshdeskAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="freshdeskAccountItemForm.content.$error" ng-show="freshdeskAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.item.type == \'keyValue\'">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n <div ng-messages="freshdeskAccountItemForm.key.$error" ng-show="freshdeskAccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="keyType" ng-model="vm.item.keyType" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="freshdeskAccountItemForm.keyType.$error" ng-show="freshdeskAccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n <div ng-messages="freshdeskAccountItemForm.keyContent.$error" ng-show="freshdeskAccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="freshdeskAccountItemForm.variableName.$error" ng-show="freshdeskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}\n </md-option>\n </md-select>\n </md-input-container>\n </div>\n \x3c!-- / DESCRIPTION SECTION --\x3e\n </div>\n <div ng-switch-when="field">\n \x3c!-- FIELD SECTION --\x3e\n <div ng-if="vm.accountConnected">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.FIELD">FIELD</label>\n \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="freshdeskAccountItemForm.customField.$error" ng-show="freshdeskAccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\n </div>\n <div ng-if="!vm.accountConnected">\n <p>Account is not connected. Please check your configurations!</p>\n </div>\n \x3c!-- / FIELD SECTION --\x3e\n </div>\n <div ng-switch-default>\n <p>No Item</p>\n </div>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="freshdeskAccountItemForm.$invalid || freshdeskAccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="freshdeskAccountItemForm.$invalid || freshdeskAccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n ADD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n <md-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="freshdeskAccountItemForm.type.$error" ng-show="freshdeskAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <md-select name="option" ng-model="vm.item.content" required>\n <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n </md-select>\n\n <div ng-messages="freshdeskAccountItemForm.option.$error" ng-show="freshdeskAccountItemForm.option.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="freshdeskAccountItemForm.content.$error" ng-show="freshdeskAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="freshdeskAccountItemForm.variableName.$error" ng-show="freshdeskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!--/ value --\x3e\n\n<\/script>\n\n<script type="text/ng-template" id="/subject.html">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="freshdeskAccountItemForm.type.$error" ng-show="freshdeskAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n \n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="freshdeskAccountItemForm.content.$error"\n ng-show="freshdeskAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="freshdeskAccountItemForm.variableName.$error"\n ng-show="freshdeskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n <\/script>'),e.put("app/main/apps/integrations/views/freshdeskAccounts/edit/view.html",'<div id="integrations-freshdeskAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-freshdeskAccounts-button md-icon-button" aria-label="Go to freshdeskAccounts" ng-click="vm.gotoFreshdeskAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_FRESHDESKACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="freshdeskAccount-image" hide-xs>\n <img ng-src="assets/images/business/freshdeskAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.freshdeskAccount.id}}\n <span ng-if="vm.freshdeskAccount.name">{{vm.freshdeskAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.freshdeskAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveFreshdeskAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (configurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="freshdeskAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.freshdeskAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.freshdeskAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.freshdeskAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.APIKEY">ApiKey</label>\n <input type="text" name="apiKey" ng-model="vm.freshdeskAccount.apiKey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'apiKey\'].$error" ng-show="generalForm[\'apiKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.APIKEY_REQUIRED">ApiKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.freshdeskAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.freshdeskAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="freshdeskAccount-detail-form-container configurations md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</div>\n </div>\n <div ng-controller="FreshdeskAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.freshdeskAccount, vm.crudPermissions)" layout="row">\n <md-card class="md-whiteframe-1dp" flex="30">\n <div layout="row" layout-align="center center">\n <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n <md-button flex="25" ng-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditFreshdeskConfiguration($event)" class="md-icon-button" aria-label="create freshdeskConfiguration">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n <md-list>\n <md-list-item layout="row" layout-align="center center" ng-repeat="freshdeskConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedFreshdeskConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getFreshdeskConfiguration($index)">\n <span class="text-truncate" flex="80">{{ freshdeskConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteFreshdeskConfiguration($event, freshdeskConfiguration)" translate="INTEGRATIONS.DELETE_FRESHDESKCONFIGURATION">\n Delete FreshdeskConfiguration\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-list-item>\n </md-list>\n </md-card>\n <div flex></div>\n <md-card class="md-whiteframe-1dp" flex="65">\n <md-tabs ng-if="vm_cc.configurations.length" md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n <span ng-if="subject.FieldId">{{subject.nameField || subject.idField}}</span>\n <span ng-if="!subject.FieldId">{{subject.type}}</span>\n </td>\n <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n <span ng-switch-when="string">{{subject.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{subject.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{subject.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{subject.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n Edit Subject\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n Delete Subject\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n <span ng-if="description.FieldId">{{description.nameField || description.idField}}</span>\n <span ng-if="!description.FieldId">{{description.type}}</span>\n </td>\n <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n <span ng-switch-when="string">{{description.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{description.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{description.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{description.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n Edit Description\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n Delete Description\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.FIELDS">FIELDS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.field = query" on-collapse="vm_cc.query.field = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditField($event)" aria-label="add field" translate translate-attr-label="INTEGRATIONS.ADD_FIELD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedFields.length}} {{vm_cc.selectedFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedFields($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedFields">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="field" md-select-id="id" ng-repeat="field in vm_cc.fields | filter: vm_cc.query.field">\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="id ">{{field.id}}</td>\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="type ">\n <span ng-if="field.FieldId">{{field.nameField || field.idField}}</span>\n <span ng-if="!field.FieldId">{{field.type}}</span>\n </td>\n <td ng-switch="field.type" ng-click="vm_cc.createOrEditField($event, field)" md-cell>\n <span ng-switch-when="string">{{field.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{field.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{field.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{field.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditField($event, field)" translate="INTEGRATIONS.EDIT_FIELD">\n Edit Field\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteFieldConfirm($event, field)" translate="INTEGRATIONS.DELETE_FIELD">\n Delete Field\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.TAGS">TAGS</span>\n </md-tab-label>\n <md-tab-body>\n <md-table-container class="md-whiteframe-1dp padding-20">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TAGS">Tags</label>\n <md-select ng-model="vm_cc.selectedTags" ng-change="vm_cc.selectTagsChanged($event)" multiple>\n <md-option ng-value="tag.id" ng-repeat="tag in vm_cc.tags">{{ tag.name }}</md-option>\n </md-select>\n </md-input-container>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditFreshdeskConfiguration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n </div>\n </div>\n </md-card>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/freshdeskAccounts/freshdeskAccounts.html",'<div id="freshdeskAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="INTEGRATIONS.FRESHDESKACCOUNTS">FreshdeskAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedFreshdeskAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedFreshdeskAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="INTEGRATIONS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-freshdeskAccounts-count">\n <span>{{vm.selectedFreshdeskAccounts.length}}</span>\n <span translate="INTEGRATIONS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="INTEGRATIONS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllFreshdeskAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectFreshdeskAccounts()" translate="INTEGRATIONS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedFreshdeskAccounts" csv-label="true" filename="freshdeskAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedFreshdeskAccounts($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- FRESHDESKACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedFreshdeskAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getFreshdeskAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n <th md-column md-order-by="username">{{ \'INTEGRATIONS.USERNAME\' | translate }}</th>\n <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.URI\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.freshdeskAccounts.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="freshdeskAccount" md-select-id="id" ng-repeat="freshdeskAccount in vm.freshdeskAccounts.rows">\n <td md-cell ng-if="freshdeskAccount.userpic"><img class="avatar" alt="{{freshdeskAccount.name}}" ng-src="api/users/{{freshdeskAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!freshdeskAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{freshdeskAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshdeskAccount, ev) : vm.createOrEditFreshdeskAccount($event, freshdeskAccount)" md-cell class="id ">{{freshdeskAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshdeskAccount, ev) : vm.createOrEditFreshdeskAccount($event, freshdeskAccount)" md-cell class="name ">{{freshdeskAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshdeskAccount, ev) : vm.createOrEditFreshdeskAccount($event, freshdeskAccount)" md-cell class="username ">{{freshdeskAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshdeskAccount, ev) : vm.createOrEditFreshdeskAccount($event, freshdeskAccount)" md-cell class="remoteUri ">{{freshdeskAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(freshdeskAccount, $event )" translate="INTEGRATIONS.EDIT_FRESHDESKACCOUNT">\n Edit FreshdeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(freshdeskAccount, $event )" translate="INTEGRATIONS.TEST_FRESHDESKACCOUNT">\n Test FreshdeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(freshdeskAccount, $event )" translate="INTEGRATIONS.DELETE_FRESHDESKACCOUNT">\n Delete FreshdeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.freshdeskAccounts.count}}" md-on-paginate="vm.getFreshdeskAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / FRESHDESKACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD FRESHDESKACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-freshdeskAccount-button" ng-click="vm.createOrEditFreshdeskAccount($event)" aria-label="add freshdeskAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_FRESHDESKACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD FRESHDESKACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/freshsalesAccounts/create/dialog.html",'<md-dialog class="freshsalesAccount-dialog" aria-label="New FreshsalesAccount">\n <form name="freshsalesAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.freshsalesAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="freshsalesAccountForm[\'name\'].$error" ng-show="freshsalesAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.freshsalesAccount.username" ng-required="true">\n\n <div ng-messages="freshsalesAccountForm[\'username\'].$error" ng-show="freshsalesAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.freshsalesAccount.remoteUri" ng-required="true">\n\n <div ng-messages="freshsalesAccountForm[\'remoteUri\'].$error" ng-show="freshsalesAccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.APIKEY">ApiKey</label>\n <input type="text" name="apiKey" ng-model="vm.freshsalesAccount.apiKey" ng-required="true">\n\n <div ng-messages="freshsalesAccountForm[\'apiKey\'].$error" ng-show="freshsalesAccountForm[\'apiKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.APIKEY_REQUIRED">ApiKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.freshsalesAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="freshsalesAccountForm[\'serverUrl\'].$error" ng-show="freshsalesAccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.freshsalesAccount.description">\n\n <div ng-messages="freshsalesAccountForm[\'description\'].$error" ng-show="freshsalesAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newFreshsalesAccount" ng-click="vm.saveFreshsalesAccount()" class="send-button md-accent md-raised" ng-disabled="freshsalesAccountForm.$invalid || freshsalesAccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newFreshsalesAccount" ng-click="vm.addNewFreshsalesAccount()" class="send-button md-accent md-raised" ng-disabled="freshsalesAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_FRESHSALESACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_FRESHSALESACCOUNT">\n ADD FRESHSALESACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newFreshsalesAccount" ng-click="vm.deleteFreshsalesAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/freshsalesAccounts/edit/configurations/dialog.html",'<md-dialog class="freshsalesConfiguration-dialog" aria-label="New FreshsalesConfiguration">\n <form name="freshsalesConfigurationForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="" name="name" ng-model="vm.freshsalesConfiguration.name" ng-required="true" autofocus>\n\n <div ng-messages="freshsalesConfigurationForm[\'name\'].$error" ng-show="freshsalesConfigurationForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.freshsalesConfiguration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="freshsalesConfigurationForm[\'channel\'].$error" ng-show="freshsalesConfigurationForm[\'channel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.freshsalesConfiguration.type" required>\n\n <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }} </md-option>\n\n <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="freshsalesConfigurationForm[\'type\'].$error" ng-show="freshsalesConfigurationForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newFreshsalesConfiguration" ng-click="vm.saveFreshsalesConfiguration()" class="send-button md-accent md-raised" ng-disabled="freshsalesConfigurationForm.$invalid || freshsalesConfigurationForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newFreshsalesConfiguration" ng-click="vm.addNewFreshsalesConfiguration()" class="send-button md-accent md-raised" ng-disabled="freshsalesConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_FRESHSALESCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_FRESHSALESCONFIGURATION">\n ADD FRESHSALESCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newFreshsalesConfiguration" ng-click="vm.deleteFreshsalesConfiguration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/freshsalesAccounts/edit/item/dialog.html",'<md-dialog class="freshsalesAccount-item-dialog" aria-label="New Item">\n <form name="freshsalesAccountItemForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div ng-switch="vm.type">\n <div ng-switch-when="subject">\n \x3c!-- SUBJECT SECTION --\x3e\n <div ng-include="\'/subject.html\'"></div>\n \x3c!-- / SUBJECT SECTION --\x3e\n </div>\n <div ng-switch-when="description">\n \x3c!-- DESCRIPTION SECTION --\x3e\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="keyValue">Key Value</md-option>\n </md-select>\n <div ng-messages="freshsalesAccountItemForm.type.$error" ng-show="freshsalesAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="freshsalesAccountItemForm.content.$error" ng-show="freshsalesAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.item.type == \'keyValue\'">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n <div ng-messages="freshsalesAccountItemForm.key.$error" ng-show="freshsalesAccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="keyType" ng-model="vm.item.keyType" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="freshsalesAccountItemForm.keyType.$error" ng-show="freshsalesAccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n <div ng-messages="freshsalesAccountItemForm.keyContent.$error" ng-show="freshsalesAccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="freshsalesAccountItemForm.variableName.$error" ng-show="freshsalesAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}\n </md-option>\n </md-select>\n </md-input-container>\n </div>\n \x3c!-- / DESCRIPTION SECTION --\x3e\n </div>\n <div ng-switch-when="field">\n \x3c!-- FIELD SECTION --\x3e\n <div ng-if="vm.accountConnected">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.FIELD">FIELD</label>\n \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="freshsalesAccountItemForm.customField.$error" ng-show="freshsalesAccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\n </div>\n <div ng-if="!vm.accountConnected">\n <p>Account is not connected. Please check your configurations!</p>\n </div>\n \x3c!-- / FIELD SECTION --\x3e\n </div>\n <div ng-switch-default>\n <p>No Item</p>\n </div>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="freshsalesAccountItemForm.$invalid || freshsalesAccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="freshsalesAccountItemForm.$invalid || freshsalesAccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n ADD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n <md-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="freshsalesAccountItemForm.type.$error" ng-show="freshsalesAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <md-select name="option" ng-model="vm.item.content" required>\n <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n </md-select>\n\n <div ng-messages="freshsalesAccountItemForm.option.$error" ng-show="freshsalesAccountItemForm.option.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="freshsalesAccountItemForm.content.$error" ng-show="freshsalesAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="freshsalesAccountItemForm.variableName.$error" ng-show="freshsalesAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!--/ value --\x3e\n\n<\/script>\n\n<script type="text/ng-template" id="/subject.html">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="freshsalesAccountItemForm.type.$error" ng-show="freshsalesAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n \n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="freshsalesAccountItemForm.content.$error"\n ng-show="freshsalesAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="freshsalesAccountItemForm.variableName.$error"\n ng-show="freshsalesAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n <\/script>'),e.put("app/main/apps/integrations/views/freshsalesAccounts/edit/view.html",'<div id="integrations-freshsalesAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-freshsalesAccounts-button md-icon-button" aria-label="Go to freshsalesAccounts" ng-click="vm.gotoFreshsalesAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_FRESHSALESACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="freshsalesAccount-image" hide-xs>\n <img ng-src="assets/images/business/freshsalesAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.freshsalesAccount.id}}\n <span ng-if="vm.freshsalesAccount.name">{{vm.freshsalesAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.freshsalesAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveFreshsalesAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (configurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="freshsalesAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.freshsalesAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.freshsalesAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.freshsalesAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.APIKEY">ApiKey</label>\n <input type="text" name="apiKey" ng-model="vm.freshsalesAccount.apiKey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'apiKey\'].$error" ng-show="generalForm[\'apiKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.APIKEY_REQUIRED">ApiKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.freshsalesAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.freshsalesAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="freshsalesAccount-detail-form-container configurations md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</div>\n </div>\n <div ng-controller="FreshsalesAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.freshsalesAccount, vm.crudPermissions)" layout="row">\n <md-card class="md-whiteframe-1dp" flex="30">\n <div layout="row" layout-align="center center">\n <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n <md-button flex="25" ng-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditFreshsalesConfiguration($event)" class="md-icon-button" aria-label="create freshsalesConfiguration">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n <md-list>\n <md-list-item layout="row" layout-align="center center" ng-repeat="freshsalesConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedFreshsalesConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getFreshsalesConfiguration($index)">\n <span class="text-truncate" flex="80">{{ freshsalesConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteFreshsalesConfiguration($event, freshsalesConfiguration)" translate="INTEGRATIONS.DELETE_FRESHSALESCONFIGURATION">\n Delete FreshsalesConfiguration\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-list-item>\n </md-list>\n </md-card>\n <div flex></div>\n <md-card class="md-whiteframe-1dp" flex="65">\n <md-tabs ng-if="vm_cc.configurations.length" md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n <span ng-if="subject.FieldId">{{subject.nameField || subject.idField}}</span>\n <span ng-if="!subject.FieldId">{{subject.type}}</span>\n </td>\n <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n <span ng-switch-when="string">{{subject.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{subject.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{subject.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{subject.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n Edit Subject\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n Delete Subject\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n <span ng-if="description.FieldId">{{description.nameField || description.idField}}</span>\n <span ng-if="!description.FieldId">{{description.type}}</span>\n </td>\n <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n <span ng-switch-when="string">{{description.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{description.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{description.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{description.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n Edit Description\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n Delete Description\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditFreshsalesConfiguration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n </div>\n </div>\n </md-card>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/freshsalesAccounts/freshsalesAccounts.html",'<div id="freshsalesAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="INTEGRATIONS.FRESHSALESACCOUNTS">FreshsalesAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedFreshsalesAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedFreshsalesAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="INTEGRATIONS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-freshsalesAccounts-count">\n <span>{{vm.selectedFreshsalesAccounts.length}}</span>\n <span translate="INTEGRATIONS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="INTEGRATIONS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllFreshsalesAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectFreshsalesAccounts()" translate="INTEGRATIONS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedFreshsalesAccounts" csv-label="true" filename="freshsalesAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedFreshsalesAccounts($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- FRESHSALESACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedFreshsalesAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getFreshsalesAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n <th md-column md-order-by="username">{{ \'INTEGRATIONS.USERNAME\' | translate }}</th>\n <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.URI\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.freshsalesAccounts.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="freshsalesAccount" md-select-id="id" ng-repeat="freshsalesAccount in vm.freshsalesAccounts.rows">\n <td md-cell ng-if="freshsalesAccount.userpic"><img class="avatar" alt="{{freshsalesAccount.name}}" ng-src="api/users/{{freshsalesAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!freshsalesAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{freshsalesAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshsalesAccount, ev) : vm.createOrEditFreshsalesAccount($event, freshsalesAccount)" md-cell class="id ">{{freshsalesAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshsalesAccount, ev) : vm.createOrEditFreshsalesAccount($event, freshsalesAccount)" md-cell class="name ">{{freshsalesAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshsalesAccount, ev) : vm.createOrEditFreshsalesAccount($event, freshsalesAccount)" md-cell class="username ">{{freshsalesAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshsalesAccount, ev) : vm.createOrEditFreshsalesAccount($event, freshsalesAccount)" md-cell class="remoteUri ">{{freshsalesAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(freshsalesAccount, $event )" translate="INTEGRATIONS.EDIT_FRESHSALESACCOUNT">\n Edit FreshsalesAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(freshsalesAccount, $event )" translate="INTEGRATIONS.TEST_FRESHSALESACCOUNT">\n Test FreshsalesAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(freshsalesAccount, $event )" translate="INTEGRATIONS.DELETE_FRESHSALESACCOUNT">\n Delete FreshsalesAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.freshsalesAccounts.count}}" md-on-paginate="vm.getFreshsalesAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / FRESHSALESACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD FRESHSALESACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-freshsalesAccount-button" ng-click="vm.createOrEditFreshsalesAccount($event)" aria-label="add freshsalesAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_FRESHSALESACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD FRESHSALESACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/salesforceAccounts/create/dialog.html",'<md-dialog class="salesforceAccount-dialog" aria-label="New SalesforceAccount">\n <form name="salesforceAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.salesforceAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="salesforceAccountForm[\'name\'].$error" ng-show="salesforceAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.salesforceAccount.type" required>\n\n <md-option ng-value="\'integrationTab\'"> {{ \'INTEGRATIONS.INTEGRATION_TAB\' | translate }} </md-option>\n\n <md-option ng-value="\'newTab\'"> {{ \'INTEGRATIONS.NEW_TAB\' | translate }} </md-option>\n </md-select>\n <div ng-messages="salesforceAccountForm[\'type\'].$error" ng-show="salesforceAccountForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.salesforceAccount.username" ng-required="true">\n\n <div ng-messages="salesforceAccountForm[\'username\'].$error" ng-show="salesforceAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.salesforceAccount.remoteUri" ng-required="true">\n\n <div ng-messages="salesforceAccountForm[\'remoteUri\'].$error" ng-show="salesforceAccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.salesforceAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="salesforceAccountForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTID">ClientId</label>\n <input type="text" name="clientId" ng-model="vm.salesforceAccount.clientId" ng-required="true">\n\n <div ng-messages="salesforceAccountForm[\'clientId\'].$error" ng-show="salesforceAccountForm[\'clientId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTID_REQUIRED">ClientId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTSECRET">ClientSecret</label>\n <input type="text" name="clientSecret" ng-model="vm.salesforceAccount.clientSecret" ng-required="true">\n\n <div ng-messages="salesforceAccountForm[\'clientSecret\'].$error" ng-show="salesforceAccountForm[\'clientSecret\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTSECRET_REQUIRED">ClientSecret field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.SECURITYTOKEN">SecurityToken</label>\n <input type="text" name="securityToken" ng-model="vm.salesforceAccount.securityToken" ng-required="true">\n\n <div ng-messages="salesforceAccountForm[\'securityToken\'].$error" ng-show="salesforceAccountForm[\'securityToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.SECURITYTOKEN_REQUIRED">SecurityToken field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.salesforceAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="salesforceAccountForm[\'serverUrl\'].$error" ng-show="salesforceAccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.salesforceAccount.description">\n\n <div ng-messages="salesforceAccountForm[\'description\'].$error" ng-show="salesforceAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newSalesforceAccount" ng-click="vm.saveSalesforceAccount()" class="send-button md-accent md-raised" ng-disabled="salesforceAccountForm.$invalid || salesforceAccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newSalesforceAccount" ng-click="vm.addNewSalesforceAccount()" class="send-button md-accent md-raised" ng-disabled="salesforceAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_SALESFORCEACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_SALESFORCEACCOUNT">\n ADD SALESFORCEACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newSalesforceAccount" ng-click="vm.deleteSalesforceAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/salesforceAccounts/edit/configurations/dialog.html",'<md-dialog class="salesforceConfiguration-dialog" aria-label="New SalesforceConfiguration">\n <form name="salesforceConfigurationForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="" name="name" ng-model="vm.salesforceConfiguration.name" ng-required="true" autofocus>\n\n <div ng-messages="salesforceConfigurationForm[\'name\'].$error" ng-show="salesforceConfigurationForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.salesforceConfiguration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="salesforceConfigurationForm[\'channel\'].$error" ng-show="salesforceConfigurationForm[\'channel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.salesforceConfiguration.type" required>\n\n <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }} </md-option>\n\n <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="salesforceConfigurationForm[\'type\'].$error" ng-show="salesforceConfigurationForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TICKETTYPE">TicketType</label>\n <md-select name="ticketType" ng-model="vm.salesforceConfiguration.ticketType" required>\n\n <md-option ng-value="\'Task\'"> {{ \'INTEGRATIONS.TASK\' | translate }} </md-option>\n\n <md-option ng-value="\'Case\'"> {{ \'INTEGRATIONS.CASE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="salesforceConfigurationForm[\'ticketType\'].$error" ng-show="salesforceConfigurationForm[\'ticketType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TICKETTYPE_REQUIRED">TicketType field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newSalesforceConfiguration" ng-click="vm.saveSalesforceConfiguration()" class="send-button md-accent md-raised" ng-disabled="salesforceConfigurationForm.$invalid || salesforceConfigurationForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newSalesforceConfiguration" ng-click="vm.addNewSalesforceConfiguration()" class="send-button md-accent md-raised" ng-disabled="salesforceConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_SALESFORCECONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_SALESFORCECONFIGURATION">\n ADD SALESFORCECONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newSalesforceConfiguration" ng-click="vm.deleteSalesforceConfiguration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/salesforceAccounts/edit/item/dialog.html",'<md-dialog class="salesforceAccount-item-dialog" aria-label="New Item">\n <form name="salesforceAccountItemForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div ng-switch="vm.type">\n <div ng-switch-when="subject">\n \x3c!-- SUBJECT SECTION --\x3e\n <div ng-include="\'/subject.html\'"></div>\n \x3c!-- / SUBJECT SECTION --\x3e\n </div>\n <div ng-switch-when="description">\n \x3c!-- DESCRIPTION SECTION --\x3e\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="keyValue">Key Value</md-option>\n </md-select>\n <div ng-messages="salesforceAccountItemForm.type.$error" ng-show="salesforceAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="salesforceAccountItemForm.content.$error" ng-show="salesforceAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.item.type == \'keyValue\'">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n <div ng-messages="salesforceAccountItemForm.key.$error" ng-show="salesforceAccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="keyType" ng-model="vm.item.keyType" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="salesforceAccountItemForm.keyType.$error" ng-show="salesforceAccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n <div ng-messages="salesforceAccountItemForm.keyContent.$error" ng-show="salesforceAccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="salesforceAccountItemForm.variableName.$error" ng-show="salesforceAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}\n </md-option>\n </md-select>\n </md-input-container>\n </div>\n \x3c!-- / DESCRIPTION SECTION --\x3e\n </div>\n <div ng-switch-when="field">\n \x3c!-- FIELD SECTION --\x3e\n <div ng-if="vm.accountConnected">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.FIELD">FIELD</label>\n \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="salesforceAccountItemForm.customField.$error" ng-show="salesforceAccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\n </div>\n <div ng-if="!vm.accountConnected">\n <p>Account is not connected. Please check your configurations!</p>\n </div>\n \x3c!-- / FIELD SECTION --\x3e\n </div>\n <div ng-switch-default>\n <p>No Item</p>\n </div>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="salesforceAccountItemForm.$invalid || salesforceAccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="salesforceAccountItemForm.$invalid || salesforceAccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n ADD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n <md-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="salesforceAccountItemForm.type.$error" ng-show="salesforceAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <md-select name="option" ng-model="vm.item.content" required>\n <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n </md-select>\n\n <div ng-messages="salesforceAccountItemForm.option.$error" ng-show="salesforceAccountItemForm.option.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="salesforceAccountItemForm.content.$error" ng-show="salesforceAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="salesforceAccountItemForm.variableName.$error" ng-show="salesforceAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!--/ value --\x3e\n\n<\/script>\n\n<script type="text/ng-template" id="/subject.html">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="salesforceAccountItemForm.type.$error" ng-show="salesforceAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n \n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="salesforceAccountItemForm.content.$error"\n ng-show="salesforceAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="salesforceAccountItemForm.variableName.$error"\n ng-show="salesforceAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n <\/script>'),e.put("app/main/apps/integrations/views/salesforceAccounts/edit/view.html",'<div id="integrations-salesforceAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-salesforceAccounts-button md-icon-button" aria-label="Go to salesforceAccounts" ng-click="vm.gotoSalesforceAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_SALESFORCEACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="salesforceAccount-image" hide-xs>\n <img ng-src="assets/images/business/salesforceAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.salesforceAccount.id}}\n <span ng-if="vm.salesforceAccount.name">{{vm.salesforceAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.salesforceAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveSalesforceAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (configurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="salesforceAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.salesforceAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.salesforceAccount.type" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'integrationTab\'"> {{ \'INTEGRATIONS.INTEGRATION_TAB\' | translate }} </md-option>\n\n <md-option ng-value="\'newTab\'"> {{ \'INTEGRATIONS.NEW_TAB\' | translate }} </md-option>\n </md-select>\n <div ng-messages="generalForm[\'type\'].$error" ng-show="generalForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.salesforceAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.salesforceAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.salesforceAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="generalForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTID">ClientId</label>\n <input type="text" name="clientId" ng-model="vm.salesforceAccount.clientId" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'clientId\'].$error" ng-show="generalForm[\'clientId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTID_REQUIRED">ClientId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTSECRET">ClientSecret</label>\n <input type="text" name="clientSecret" ng-model="vm.salesforceAccount.clientSecret" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'clientSecret\'].$error" ng-show="generalForm[\'clientSecret\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTSECRET_REQUIRED">ClientSecret field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.SECURITYTOKEN">SecurityToken</label>\n <input type="text" name="securityToken" ng-model="vm.salesforceAccount.securityToken" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'securityToken\'].$error" ng-show="generalForm[\'securityToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.SECURITYTOKEN_REQUIRED">SecurityToken field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.salesforceAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.salesforceAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="salesforceAccount-detail-form-container configurations md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</div>\n </div>\n <div ng-controller="SalesforceAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.salesforceAccount, vm.crudPermissions)" layout="row">\n <md-card class="md-whiteframe-1dp" flex="30">\n <div layout="row" layout-align="center center">\n <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n <md-button flex="25" ng-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditSalesforceConfiguration($event)" class="md-icon-button" aria-label="create salesforceConfiguration">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n <md-list>\n <md-list-item layout="row" layout-align="center center" ng-repeat="salesforceConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedSalesforceConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getSalesforceConfiguration($index)">\n <span class="text-truncate" flex="80">{{ salesforceConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteSalesforceConfiguration($event, salesforceConfiguration)" translate="INTEGRATIONS.DELETE_SALESFORCECONFIGURATION">\n Delete SalesforceConfiguration\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-list-item>\n </md-list>\n </md-card>\n <div flex></div>\n <md-card class="md-whiteframe-1dp" flex="65">\n <md-tabs ng-if="vm_cc.configurations.length" md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n <span ng-if="subject.FieldId">{{subject.nameField || subject.idField}}</span>\n <span ng-if="!subject.FieldId">{{subject.type}}</span>\n </td>\n <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n <span ng-switch-when="string">{{subject.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{subject.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{subject.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{subject.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n Edit Subject\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n Delete Subject\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n <span ng-if="description.FieldId">{{description.nameField || description.idField}}</span>\n <span ng-if="!description.FieldId">{{description.type}}</span>\n </td>\n <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n <span ng-switch-when="string">{{description.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{description.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{description.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{description.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n Edit Description\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n Delete Description\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.FIELDS">FIELDS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.field = query" on-collapse="vm_cc.query.field = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditField($event)" aria-label="add field" translate translate-attr-label="INTEGRATIONS.ADD_FIELD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedFields.length}} {{vm_cc.selectedFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedFields($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedFields">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="field" md-select-id="id" ng-repeat="field in vm_cc.fields | filter: vm_cc.query.field">\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="id ">{{field.id}}</td>\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="type ">\n <span ng-if="field.FieldId">{{field.nameField || field.idField}}</span>\n <span ng-if="!field.FieldId">{{field.type}}</span>\n </td>\n <td ng-switch="field.type" ng-click="vm_cc.createOrEditField($event, field)" md-cell>\n <span ng-switch-when="string">{{field.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{field.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{field.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{field.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditField($event, field)" translate="INTEGRATIONS.EDIT_FIELD">\n Edit Field\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteFieldConfirm($event, field)" translate="INTEGRATIONS.DELETE_FIELD">\n Delete Field\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ADVANCED">\n ADVANCED\n </span>\n </md-tab-label>\n <md-tab-body>\n <div layout-margin>\n <label translate="INTEGRATIONS.MODULE_SEARCH"></label>\n <md-select ng-model="vm_cc.salesforceConfiguration.moduleSearch" ng-change="vm_cc.selectChangedAdvanced()" ng-disabled="!vm_cc.crudPermissions.canEdit">\n <md-option ng-value="option.key" ng-repeat="option in [{key: \'account_contact_lead\', value: \'Account & Contact & Lead\'}, {key: \'contact_lead\', value: \'Contact & Lead\'}, {key: \'contact\', value: \'Contact\'}, {key: \'lead\', value: \'Lead\'}, {key: \'account\', value: \'Account\'}]">\n {{ option.value }}</md-option>\n </md-select>\n </div>\n <div layout-margin>\n <label translate="INTEGRATIONS.MODULE_CREATE"></label>\n <md-select ng-model="vm_cc.salesforceConfiguration.moduleCreate" ng-change="vm_cc.selectChangedAdvanced()" ng-disabled="!vm_cc.crudPermissions.canEdit">\n <md-option ng-value="option.key" ng-repeat="option in [{key: \'nothing\', value: \'Nothing\'}, {key: \'contact\', value: \'Contact\'}, {key: \'lead\', value: \'Lead\'}, {key: \'account\', value: \'Account\'}]">\n {{ option.value }}</md-option>\n </md-select>\n </div>\n\n <div layout-margin ng-if="vm_cc.salesforceConfiguration.isLead">\n <label translate="INTEGRATIONS.LEADID"></label>\n <md-input-container class="md-block">\n <input ng-model="vm_cc.salesforceConfiguration.leadId" type="text">\n </md-input-container>\n <div class="hint"><span translate="INTEGRATIONS.HELP.LEADID"></span></div>\n </div>\n\n <div layout-margin ng-if="vm_cc.salesforceConfiguration.isAccountSearch">\n <label translate="INTEGRATIONS.ADDITIONALSEARCHACCOUNT"></label>\n <md-input-container class="md-block">\n <input ng-model="vm_cc.salesforceConfiguration.additionalSearchAccount" type="text">\n </md-input-container>\n <div class="hint"><span translate="INTEGRATIONS.HELP.ADDITIONALSEARCHACCOUNT"></span></div>\n </div>\n\n <div layout-margin ng-if="vm_cc.salesforceConfiguration.isContactSearch">\n <label translate="INTEGRATIONS.ADDITIONALSEARCHCONTACT"></label>\n <md-input-container class="md-block">\n <input ng-model="vm_cc.salesforceConfiguration.additionalSearchContact" type="text">\n </md-input-container>\n <div class="hint"><span translate="INTEGRATIONS.HELP.ADDITIONALSEARCHCONTACT"></span></div>\n </div>\n\n <div layout-margin ng-if="vm_cc.salesforceConfiguration.isLeadSearch">\n <label translate="INTEGRATIONS.ADDITIONALSEARCHLEAD"></label>\n <md-input-container class="md-block">\n <input ng-model="vm_cc.salesforceConfiguration.additionalSearchLead" type="text">\n </md-input-container>\n <div class="hint"><span translate="INTEGRATIONS.HELP.ADDITIONALSEARCHLEAD"></span></div>\n </div>\n\n <md-button type="submit" ng-click="vm_cc.saveSalesforceConfiguration()" ng-disabled="!vm_cc.crudPermissions.canEdit" class="send-button md-accent md-raised" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n </md-tab-body>\n </md-tab>\n\n\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditSalesforceConfiguration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n </div>\n </div>\n </md-card>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/salesforceAccounts/salesforceAccounts.html",'<div id="salesforceAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="INTEGRATIONS.SALESFORCEACCOUNTS">SalesforceAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedSalesforceAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedSalesforceAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="INTEGRATIONS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-salesforceAccounts-count">\n <span>{{vm.selectedSalesforceAccounts.length}}</span>\n <span translate="INTEGRATIONS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="INTEGRATIONS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllSalesforceAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectSalesforceAccounts()" translate="INTEGRATIONS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedSalesforceAccounts" csv-label="true" filename="salesforceAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedSalesforceAccounts($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- SALESFORCEACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedSalesforceAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getSalesforceAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n <th md-column md-order-by="username">{{ \'INTEGRATIONS.USERNAME\' | translate }}</th>\n <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.URI\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.salesforceAccounts.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="salesforceAccount" md-select-id="id" ng-repeat="salesforceAccount in vm.salesforceAccounts.rows">\n <td md-cell ng-if="salesforceAccount.userpic"><img class="avatar" alt="{{salesforceAccount.name}}" ng-src="api/users/{{salesforceAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!salesforceAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{salesforceAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(salesforceAccount, ev) : vm.createOrEditSalesforceAccount($event, salesforceAccount)" md-cell class="id ">{{salesforceAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(salesforceAccount, ev) : vm.createOrEditSalesforceAccount($event, salesforceAccount)" md-cell class="name ">{{salesforceAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(salesforceAccount, ev) : vm.createOrEditSalesforceAccount($event, salesforceAccount)" md-cell class="username ">{{salesforceAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(salesforceAccount, ev) : vm.createOrEditSalesforceAccount($event, salesforceAccount)" md-cell class="remoteUri ">{{salesforceAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(salesforceAccount, $event )" translate="INTEGRATIONS.EDIT_SALESFORCEACCOUNT">\n Edit SalesforceAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(salesforceAccount, $event )" translate="INTEGRATIONS.TEST_SALESFORCEACCOUNT">\n Test SalesforceAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(salesforceAccount, $event )" translate="INTEGRATIONS.DELETE_SALESFORCEACCOUNT">\n Delete SalesforceAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.salesforceAccounts.count}}" md-on-paginate="vm.getSalesforceAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / SALESFORCEACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD SALESFORCEACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-salesforceAccount-button" ng-click="vm.createOrEditSalesforceAccount($event)" aria-label="add salesforceAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_SALESFORCEACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD SALESFORCEACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/servicenowAccounts/create/dialog.html",'<md-dialog class="servicenowAccount-dialog" aria-label="New ServicenowAccount">\n <form name="servicenowAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.servicenowAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="servicenowAccountForm[\'name\'].$error" ng-show="servicenowAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.servicenowAccount.username" ng-required="true">\n\n <div ng-messages="servicenowAccountForm[\'username\'].$error" ng-show="servicenowAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.servicenowAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="servicenowAccountForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.servicenowAccount.email" ng-required="true">\n\n <div ng-messages="servicenowAccountForm[\'email\'].$error" ng-show="servicenowAccountForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="INTEGRATIONS.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.HOST">Host</label>\n <input type="url" name="remoteUri" ng-model="vm.servicenowAccount.remoteUri" ng-required="true">\n\n <div ng-messages="servicenowAccountForm[\'remoteUri\'].$error" ng-show="servicenowAccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.HOST_REQUIRED">Host field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.HOST_MUST_VALID_URL">Host must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.servicenowAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="servicenowAccountForm[\'serverUrl\'].$error" ng-show="servicenowAccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.servicenowAccount.description">\n\n <div ng-messages="servicenowAccountForm[\'description\'].$error" ng-show="servicenowAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newServicenowAccount" ng-click="vm.saveServicenowAccount()" class="send-button md-accent md-raised" ng-disabled="servicenowAccountForm.$invalid || servicenowAccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newServicenowAccount" ng-click="vm.addNewServicenowAccount()" class="send-button md-accent md-raised" ng-disabled="servicenowAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_SERVICENOWACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_SERVICENOWACCOUNT">\n ADD SERVICENOWACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newServicenowAccount" ng-click="vm.deleteServicenowAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/servicenowAccounts/edit/configurations/dialog.html",'<md-dialog class="servicenowConfiguration-dialog" aria-label="New ServicenowConfiguration">\n <form name="servicenowConfigurationForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="" name="name" ng-model="vm.servicenowConfiguration.name" ng-required="true" autofocus>\n\n <div ng-messages="servicenowConfigurationForm[\'name\'].$error" ng-show="servicenowConfigurationForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.servicenowConfiguration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="servicenowConfigurationForm[\'channel\'].$error" ng-show="servicenowConfigurationForm[\'channel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.servicenowConfiguration.type" required>\n\n <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }} </md-option>\n\n <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="servicenowConfigurationForm[\'type\'].$error" ng-show="servicenowConfigurationForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newServicenowConfiguration" ng-click="vm.saveServicenowConfiguration()" class="send-button md-accent md-raised" ng-disabled="servicenowConfigurationForm.$invalid || servicenowConfigurationForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newServicenowConfiguration" ng-click="vm.addNewServicenowConfiguration()" class="send-button md-accent md-raised" ng-disabled="servicenowConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_SERVICENOWCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_SERVICENOWCONFIGURATION">\n ADD SERVICENOWCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newServicenowConfiguration" ng-click="vm.deleteServicenowConfiguration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/servicenowAccounts/edit/item/dialog.html",'<md-dialog class="servicenowAccount-item-dialog" aria-label="New Item">\n <form name="servicenowAccountItemForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div ng-switch="vm.type">\n <div ng-switch-when="subject">\n \x3c!-- SUBJECT SECTION --\x3e\n <div ng-include="\'/subject.html\'"></div>\n \x3c!-- / SUBJECT SECTION --\x3e\n </div>\n <div ng-switch-when="description">\n \x3c!-- DESCRIPTION SECTION --\x3e\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="keyValue">Key Value</md-option>\n </md-select>\n <div ng-messages="servicenowAccountItemForm.type.$error" ng-show="servicenowAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="servicenowAccountItemForm.content.$error" ng-show="servicenowAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.item.type == \'keyValue\'">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n <div ng-messages="servicenowAccountItemForm.key.$error" ng-show="servicenowAccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="keyType" ng-model="vm.item.keyType" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="servicenowAccountItemForm.keyType.$error" ng-show="servicenowAccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n <div ng-messages="servicenowAccountItemForm.keyContent.$error" ng-show="servicenowAccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="servicenowAccountItemForm.variableName.$error" ng-show="servicenowAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}\n </md-option>\n </md-select>\n </md-input-container>\n </div>\n \x3c!-- / DESCRIPTION SECTION --\x3e\n </div>\n <div ng-switch-when="field">\n \x3c!-- FIELD SECTION --\x3e\n <div ng-if="vm.accountConnected">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.FIELD">FIELD</label>\n \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="servicenowAccountItemForm.customField.$error" ng-show="servicenowAccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\n </div>\n <div ng-if="!vm.accountConnected">\n <p>Account is not connected. Please check your configurations!</p>\n </div>\n \x3c!-- / FIELD SECTION --\x3e\n </div>\n <div ng-switch-default>\n <p>No Item</p>\n </div>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="servicenowAccountItemForm.$invalid || servicenowAccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="servicenowAccountItemForm.$invalid || servicenowAccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n ADD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n <md-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="servicenowAccountItemForm.type.$error" ng-show="servicenowAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <md-select name="option" ng-model="vm.item.content" required>\n <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n </md-select>\n\n <div ng-messages="servicenowAccountItemForm.option.$error" ng-show="servicenowAccountItemForm.option.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="servicenowAccountItemForm.content.$error" ng-show="servicenowAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="servicenowAccountItemForm.variableName.$error" ng-show="servicenowAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!--/ value --\x3e\n\n<\/script>\n\n<script type="text/ng-template" id="/subject.html">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="servicenowAccountItemForm.type.$error" ng-show="servicenowAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n \n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="servicenowAccountItemForm.content.$error"\n ng-show="servicenowAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="servicenowAccountItemForm.variableName.$error"\n ng-show="servicenowAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n <\/script>'),e.put("app/main/apps/integrations/views/servicenowAccounts/edit/view.html",'<div id="integrations-servicenowAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-servicenowAccounts-button md-icon-button" aria-label="Go to servicenowAccounts" ng-click="vm.gotoServicenowAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_SERVICENOWACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="servicenowAccount-image" hide-xs>\n <img ng-src="assets/images/business/servicenowAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.servicenowAccount.id}}\n <span ng-if="vm.servicenowAccount.name">{{vm.servicenowAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.servicenowAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveServicenowAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (configurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="servicenowAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.servicenowAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.servicenowAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.servicenowAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="generalForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.servicenowAccount.email" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'email\'].$error" ng-show="generalForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="INTEGRATIONS.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.HOST">Host</label>\n <input type="url" name="remoteUri" ng-model="vm.servicenowAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.HOST_REQUIRED">Host field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.HOST_MUST_VALID_URL">Host must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.servicenowAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.servicenowAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="servicenowAccount-detail-form-container configurations md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</div>\n </div>\n <div ng-controller="ServicenowAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.servicenowAccount, vm.crudPermissions)" layout="row">\n <md-card class="md-whiteframe-1dp" flex="30">\n <div layout="row" layout-align="center center">\n <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n <md-button flex="25" ng-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditServicenowConfiguration($event)" class="md-icon-button" aria-label="create servicenowConfiguration">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n <md-list>\n <md-list-item layout="row" layout-align="center center" ng-repeat="servicenowConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedServicenowConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getServicenowConfiguration($index)">\n <span class="text-truncate" flex="80">{{ servicenowConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteServicenowConfiguration($event, servicenowConfiguration)" translate="INTEGRATIONS.DELETE_SERVICENOWCONFIGURATION">\n Delete ServicenowConfiguration\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-list-item>\n </md-list>\n </md-card>\n <div flex></div>\n <md-card class="md-whiteframe-1dp" flex="65">\n <md-tabs ng-if="vm_cc.configurations.length" md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n <span ng-if="subject.FieldId">{{subject.nameField || subject.idField}}</span>\n <span ng-if="!subject.FieldId">{{subject.type}}</span>\n </td>\n <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n <span ng-switch-when="string">{{subject.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{subject.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{subject.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{subject.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n Edit Subject\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n Delete Subject\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n <span ng-if="description.FieldId">{{description.nameField || description.idField}}</span>\n <span ng-if="!description.FieldId">{{description.type}}</span>\n </td>\n <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n <span ng-switch-when="string">{{description.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{description.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{description.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{description.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n Edit Description\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n Delete Description\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditServicenowConfiguration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n </div>\n </div>\n </md-card>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/servicenowAccounts/servicenowAccounts.html",'<div id="servicenowAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="INTEGRATIONS.SERVICENOWACCOUNTS">ServicenowAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedServicenowAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedServicenowAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="INTEGRATIONS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-servicenowAccounts-count">\n <span>{{vm.selectedServicenowAccounts.length}}</span>\n <span translate="INTEGRATIONS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="INTEGRATIONS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllServicenowAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectServicenowAccounts()" translate="INTEGRATIONS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedServicenowAccounts" csv-label="true" filename="servicenowAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedServicenowAccounts($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- SERVICENOWACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedServicenowAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getServicenowAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n <th md-column md-order-by="username">{{ \'INTEGRATIONS.USERNAME\' | translate }}</th>\n <th md-column md-order-by="email">{{ \'INTEGRATIONS.EMAIL\' | translate }}</th>\n <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.HOST\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.servicenowAccounts.rows.length">\n <td md-cell colspan="6">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="servicenowAccount" md-select-id="id" ng-repeat="servicenowAccount in vm.servicenowAccounts.rows">\n <td md-cell ng-if="servicenowAccount.userpic"><img class="avatar" alt="{{servicenowAccount.name}}" ng-src="api/users/{{servicenowAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!servicenowAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{servicenowAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(servicenowAccount, ev) : vm.createOrEditServicenowAccount($event, servicenowAccount)" md-cell class="id ">{{servicenowAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(servicenowAccount, ev) : vm.createOrEditServicenowAccount($event, servicenowAccount)" md-cell class="name ">{{servicenowAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(servicenowAccount, ev) : vm.createOrEditServicenowAccount($event, servicenowAccount)" md-cell class="username ">{{servicenowAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(servicenowAccount, ev) : vm.createOrEditServicenowAccount($event, servicenowAccount)" md-cell class="email ">{{servicenowAccount.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(servicenowAccount, ev) : vm.createOrEditServicenowAccount($event, servicenowAccount)" md-cell class="remoteUri ">{{servicenowAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(servicenowAccount, $event )" translate="INTEGRATIONS.EDIT_SERVICENOWACCOUNT">\n Edit ServicenowAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(servicenowAccount, $event )" translate="INTEGRATIONS.TEST_SERVICENOWACCOUNT">\n Test ServicenowAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\n\n <md-button ng-click="vm.deleteconfirm(servicenowAccount, $event )" translate="INTEGRATIONS.DELETE_SERVICENOWACCOUNT">\n Delete ServicenowAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.servicenowAccounts.count}}" md-on-paginate="vm.getServicenowAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / SERVICENOWACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD SERVICENOWACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-servicenowAccount-button" ng-click="vm.createOrEditServicenowAccount($event)" aria-label="add servicenowAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_SERVICENOWACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD SERVICENOWACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/sugarcrmAccounts/create/dialog.html",'<md-dialog class="sugarcrmAccount-dialog" aria-label="New SugarcrmAccount">\n <form name="sugarcrmAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.sugarcrmAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="sugarcrmAccountForm[\'name\'].$error" ng-show="sugarcrmAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.sugarcrmAccount.username" ng-required="true">\n\n <div ng-messages="sugarcrmAccountForm[\'username\'].$error" ng-show="sugarcrmAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.sugarcrmAccount.remoteUri" ng-required="true">\n\n <div ng-messages="sugarcrmAccountForm[\'remoteUri\'].$error" ng-show="sugarcrmAccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.sugarcrmAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="sugarcrmAccountForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.sugarcrmAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="sugarcrmAccountForm[\'serverUrl\'].$error" ng-show="sugarcrmAccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.sugarcrmAccount.description">\n\n <div ng-messages="sugarcrmAccountForm[\'description\'].$error" ng-show="sugarcrmAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newSugarcrmAccount" ng-click="vm.saveSugarcrmAccount()" class="send-button md-accent md-raised" ng-disabled="sugarcrmAccountForm.$invalid || sugarcrmAccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newSugarcrmAccount" ng-click="vm.addNewSugarcrmAccount()" class="send-button md-accent md-raised" ng-disabled="sugarcrmAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_SUGARCRMACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_SUGARCRMACCOUNT">\n ADD SUGARCRMACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newSugarcrmAccount" ng-click="vm.deleteSugarcrmAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/sugarcrmAccounts/edit/configurations/dialog.html",'<md-dialog class="sugarcrmConfiguration-dialog" aria-label="New SugarcrmConfiguration">\n <form name="sugarcrmConfigurationForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="" name="name" ng-model="vm.sugarcrmConfiguration.name" ng-required="true" autofocus>\n\n <div ng-messages="sugarcrmConfigurationForm[\'name\'].$error" ng-show="sugarcrmConfigurationForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.sugarcrmConfiguration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="sugarcrmConfigurationForm[\'channel\'].$error" ng-show="sugarcrmConfigurationForm[\'channel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.sugarcrmConfiguration.type" required>\n\n <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }} </md-option>\n\n <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="sugarcrmConfigurationForm[\'type\'].$error" ng-show="sugarcrmConfigurationForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newSugarcrmConfiguration" ng-click="vm.saveSugarcrmConfiguration()" class="send-button md-accent md-raised" ng-disabled="sugarcrmConfigurationForm.$invalid || sugarcrmConfigurationForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newSugarcrmConfiguration" ng-click="vm.addNewSugarcrmConfiguration()" class="send-button md-accent md-raised" ng-disabled="sugarcrmConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_SUGARCRMCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_SUGARCRMCONFIGURATION">\n ADD SUGARCRMCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newSugarcrmConfiguration" ng-click="vm.deleteSugarcrmConfiguration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/sugarcrmAccounts/edit/item/dialog.html",'<md-dialog class="sugarcrmAccount-item-dialog" aria-label="New Item">\n <form name="sugarcrmAccountItemForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div ng-switch="vm.type">\n <div ng-switch-when="subject">\n \x3c!-- SUBJECT SECTION --\x3e\n <div ng-include="\'/subject.html\'"></div>\n \x3c!-- / SUBJECT SECTION --\x3e\n </div>\n <div ng-switch-when="description">\n \x3c!-- DESCRIPTION SECTION --\x3e\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="keyValue">Key Value</md-option>\n </md-select>\n <div ng-messages="sugarcrmAccountItemForm.type.$error" ng-show="sugarcrmAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="sugarcrmAccountItemForm.content.$error" ng-show="sugarcrmAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.item.type == \'keyValue\'">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n <div ng-messages="sugarcrmAccountItemForm.key.$error" ng-show="sugarcrmAccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="keyType" ng-model="vm.item.keyType" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="sugarcrmAccountItemForm.keyType.$error" ng-show="sugarcrmAccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n <div ng-messages="sugarcrmAccountItemForm.keyContent.$error" ng-show="sugarcrmAccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="sugarcrmAccountItemForm.variableName.$error" ng-show="sugarcrmAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}\n </md-option>\n </md-select>\n </md-input-container>\n </div>\n \x3c!-- / DESCRIPTION SECTION --\x3e\n </div>\n <div ng-switch-when="field">\n \x3c!-- FIELD SECTION --\x3e\n <div ng-if="vm.accountConnected">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.FIELD">FIELD</label>\n \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="sugarcrmAccountItemForm.customField.$error" ng-show="sugarcrmAccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\n </div>\n <div ng-if="!vm.accountConnected">\n <p>Account is not connected. Please check your configurations!</p>\n </div>\n \x3c!-- / FIELD SECTION --\x3e\n </div>\n <div ng-switch-default>\n <p>No Item</p>\n </div>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="sugarcrmAccountItemForm.$invalid || sugarcrmAccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="sugarcrmAccountItemForm.$invalid || sugarcrmAccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n ADD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n <md-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="sugarcrmAccountItemForm.type.$error" ng-show="sugarcrmAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <md-select name="option" ng-model="vm.item.content" required>\n <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n </md-select>\n\n <div ng-messages="sugarcrmAccountItemForm.option.$error" ng-show="sugarcrmAccountItemForm.option.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="sugarcrmAccountItemForm.content.$error" ng-show="sugarcrmAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="sugarcrmAccountItemForm.variableName.$error" ng-show="sugarcrmAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!--/ value --\x3e\n\n<\/script>\n\n<script type="text/ng-template" id="/subject.html">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="sugarcrmAccountItemForm.type.$error" ng-show="sugarcrmAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n \n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="sugarcrmAccountItemForm.content.$error"\n ng-show="sugarcrmAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="sugarcrmAccountItemForm.variableName.$error"\n ng-show="sugarcrmAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n <\/script>'),e.put("app/main/apps/integrations/views/sugarcrmAccounts/edit/view.html",'<div id="integrations-sugarcrmAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-sugarcrmAccounts-button md-icon-button" aria-label="Go to sugarcrmAccounts" ng-click="vm.gotoSugarcrmAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_SUGARCRMACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="sugarcrmAccount-image" hide-xs>\n <img ng-src="assets/images/business/sugarcrmAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.sugarcrmAccount.id}}\n <span ng-if="vm.sugarcrmAccount.name">{{vm.sugarcrmAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.sugarcrmAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveSugarcrmAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (configurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="sugarcrmAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.sugarcrmAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.sugarcrmAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.sugarcrmAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.sugarcrmAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="generalForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.sugarcrmAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.sugarcrmAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="sugarcrmAccount-detail-form-container configurations md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</div>\n </div>\n <div ng-controller="SugarcrmAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.sugarcrmAccount, vm.crudPermissions)" layout="row">\n <md-card class="md-whiteframe-1dp" flex="30">\n <div layout="row" layout-align="center center">\n <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n <md-button flex="25" ng-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditSugarcrmConfiguration($event)" class="md-icon-button" aria-label="create sugarcrmConfiguration">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n <md-list>\n <md-list-item layout="row" layout-align="center center" ng-repeat="sugarcrmConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedSugarcrmConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getSugarcrmConfiguration($index)">\n <span class="text-truncate" flex="80">{{ sugarcrmConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteSugarcrmConfiguration($event, sugarcrmConfiguration)" translate="INTEGRATIONS.DELETE_SUGARCRMCONFIGURATION">\n Delete SugarcrmConfiguration\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-list-item>\n </md-list>\n </md-card>\n <div flex></div>\n <md-card class="md-whiteframe-1dp" flex="65">\n <md-tabs ng-if="vm_cc.configurations.length" md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n <span ng-if="subject.FieldId">{{subject.nameField || subject.idField}}</span>\n <span ng-if="!subject.FieldId">{{subject.type}}</span>\n </td>\n <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n <span ng-switch-when="string">{{subject.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{subject.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{subject.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{subject.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n Edit Subject\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n Delete Subject\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n <span ng-if="description.FieldId">{{description.nameField || description.idField}}</span>\n <span ng-if="!description.FieldId">{{description.type}}</span>\n </td>\n <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n <span ng-switch-when="string">{{description.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{description.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{description.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{description.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n Edit Description\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n Delete Description\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.FIELDS">FIELDS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.field = query" on-collapse="vm_cc.query.field = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditField($event)" aria-label="add field" translate translate-attr-label="INTEGRATIONS.ADD_FIELD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedFields.length}} {{vm_cc.selectedFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedFields($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedFields">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="field" md-select-id="id" ng-repeat="field in vm_cc.fields | filter: vm_cc.query.field">\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="id ">{{field.id}}</td>\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="type ">\n <span ng-if="field.FieldId">{{field.nameField || field.idField}}</span>\n <span ng-if="!field.FieldId">{{field.type}}</span>\n </td>\n <td ng-switch="field.type" ng-click="vm_cc.createOrEditField($event, field)" md-cell>\n <span ng-switch-when="string">{{field.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{field.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{field.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{field.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditField($event, field)" translate="INTEGRATIONS.EDIT_FIELD">\n Edit Field\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteFieldConfirm($event, field)" translate="INTEGRATIONS.DELETE_FIELD">\n Delete Field\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditSugarcrmConfiguration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n </div>\n </div>\n </md-card>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/sugarcrmAccounts/sugarcrmAccounts.html",'<div id="sugarcrmAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="INTEGRATIONS.SUGARCRMACCOUNTS">SugarcrmAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedSugarcrmAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedSugarcrmAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="INTEGRATIONS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-sugarcrmAccounts-count">\n <span>{{vm.selectedSugarcrmAccounts.length}}</span>\n <span translate="INTEGRATIONS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="INTEGRATIONS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllSugarcrmAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectSugarcrmAccounts()" translate="INTEGRATIONS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedSugarcrmAccounts" csv-label="true" filename="sugarcrmAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedSugarcrmAccounts($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- SUGARCRMACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedSugarcrmAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getSugarcrmAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n <th md-column md-order-by="username">{{ \'INTEGRATIONS.USERNAME\' | translate }}</th>\n <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.URI\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.sugarcrmAccounts.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="sugarcrmAccount" md-select-id="id" ng-repeat="sugarcrmAccount in vm.sugarcrmAccounts.rows">\n <td md-cell ng-if="sugarcrmAccount.userpic"><img class="avatar" alt="{{sugarcrmAccount.name}}" ng-src="api/users/{{sugarcrmAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!sugarcrmAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{sugarcrmAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(sugarcrmAccount, ev) : vm.createOrEditSugarcrmAccount($event, sugarcrmAccount)" md-cell class="id ">{{sugarcrmAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(sugarcrmAccount, ev) : vm.createOrEditSugarcrmAccount($event, sugarcrmAccount)" md-cell class="name ">{{sugarcrmAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(sugarcrmAccount, ev) : vm.createOrEditSugarcrmAccount($event, sugarcrmAccount)" md-cell class="username ">{{sugarcrmAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(sugarcrmAccount, ev) : vm.createOrEditSugarcrmAccount($event, sugarcrmAccount)" md-cell class="remoteUri ">{{sugarcrmAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(sugarcrmAccount, $event )" translate="INTEGRATIONS.EDIT_SUGARCRMACCOUNT">\n Edit SugarcrmAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(sugarcrmAccount, $event )" translate="INTEGRATIONS.TEST_SUGARCRMACCOUNT">\n Test SugarcrmAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.deleteconfirm(sugarcrmAccount, $event )" translate="INTEGRATIONS.DELETE_SUGARCRMACCOUNT">\n Delete SugarcrmAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.sugarcrmAccounts.count}}" md-on-paginate="vm.getSugarcrmAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / SUGARCRMACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD SUGARCRMACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-sugarcrmAccount-button" ng-click="vm.createOrEditSugarcrmAccount($event)" aria-label="add sugarcrmAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_SUGARCRMACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD SUGARCRMACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/vtigerAccounts/create/dialog.html",'<md-dialog class="vtigerAccount-dialog" aria-label="New VtigerAccount">\n <form name="vtigerAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.vtigerAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="vtigerAccountForm[\'name\'].$error" ng-show="vtigerAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.vtigerAccount.description">\n\n <div ng-messages="vtigerAccountForm[\'description\'].$error" ng-show="vtigerAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.VTIGER_USER_NAME">vTiger_User_Name</label>\n <input type="text" name="username" ng-model="vm.vtigerAccount.username" ng-required="true">\n\n <div ng-messages="vtigerAccountForm[\'username\'].$error" ng-show="vtigerAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VTIGER_USER_NAME_REQUIRED">vTiger_User_Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.ACCESS_KEY">Access_Key</label>\n <input type="text" name="accessKey" ng-model="vm.vtigerAccount.accessKey" ng-required="true">\n\n <div ng-messages="vtigerAccountForm[\'accessKey\'].$error" ng-show="vtigerAccountForm[\'accessKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.ACCESS_KEY_REQUIRED">Access_Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.HOST">Host</label>\n <input type="url" name="remoteUri" ng-model="vm.vtigerAccount.remoteUri" ng-required="true">\n\n <div ng-messages="vtigerAccountForm[\'remoteUri\'].$error" ng-show="vtigerAccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.HOST_REQUIRED">Host field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.HOST_MUST_VALID_URL">Host must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.vtigerAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="vtigerAccountForm[\'serverUrl\'].$error" ng-show="vtigerAccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newVtigerAccount" ng-click="vm.saveVtigerAccount()" class="send-button md-accent md-raised" ng-disabled="vtigerAccountForm.$invalid || vtigerAccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newVtigerAccount" ng-click="vm.addNewVtigerAccount()" class="send-button md-accent md-raised" ng-disabled="vtigerAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_VTIGERACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_VTIGERACCOUNT">\n ADD VTIGERACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newVtigerAccount" ng-click="vm.deleteVtigerAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/vtigerAccounts/edit/configurations/dialog.html",'<md-dialog class="vtigerConfiguration-dialog" aria-label="New VtigerConfiguration">\n <form name="vtigerConfigurationForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="" name="name" ng-model="vm.vtigerConfiguration.name" ng-required="true" autofocus>\n\n <div ng-messages="vtigerConfigurationForm[\'name\'].$error" ng-show="vtigerConfigurationForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.vtigerConfiguration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="vtigerConfigurationForm[\'channel\'].$error" ng-show="vtigerConfigurationForm[\'channel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.vtigerConfiguration.type" required>\n\n <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }} </md-option>\n\n <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="vtigerConfigurationForm[\'type\'].$error" ng-show="vtigerConfigurationForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newVtigerConfiguration" ng-click="vm.saveVtigerConfiguration()" class="send-button md-accent md-raised" ng-disabled="vtigerConfigurationForm.$invalid || vtigerConfigurationForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newVtigerConfiguration" ng-click="vm.addNewVtigerConfiguration()" class="send-button md-accent md-raised" ng-disabled="vtigerConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_VTIGERCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_VTIGERCONFIGURATION">\n ADD VTIGERCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newVtigerConfiguration" ng-click="vm.deleteVtigerConfiguration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/vtigerAccounts/edit/item/dialog.html",'<md-dialog class="vtigerAccount-item-dialog" aria-label="New Item">\n <form name="vtigerAccountItemForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div ng-switch="vm.type">\n <div ng-switch-when="subject">\n \x3c!-- SUBJECT SECTION --\x3e\n <div ng-include="\'/subject.html\'"></div>\n \x3c!-- / SUBJECT SECTION --\x3e\n </div>\n <div ng-switch-when="description">\n \x3c!-- DESCRIPTION SECTION --\x3e\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="keyValue">Key Value</md-option>\n </md-select>\n <div ng-messages="vtigerAccountItemForm.type.$error" ng-show="vtigerAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="vtigerAccountItemForm.content.$error" ng-show="vtigerAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.item.type == \'keyValue\'">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n <div ng-messages="vtigerAccountItemForm.key.$error" ng-show="vtigerAccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="keyType" ng-model="vm.item.keyType" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="vtigerAccountItemForm.keyType.$error" ng-show="vtigerAccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n <div ng-messages="vtigerAccountItemForm.keyContent.$error" ng-show="vtigerAccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="vtigerAccountItemForm.variableName.$error" ng-show="vtigerAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}\n </md-option>\n </md-select>\n </md-input-container>\n </div>\n \x3c!-- / DESCRIPTION SECTION --\x3e\n </div>\n <div ng-switch-when="field">\n \x3c!-- FIELD SECTION --\x3e\n <div ng-if="vm.accountConnected">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.FIELD">FIELD</label>\n \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="vtigerAccountItemForm.customField.$error" ng-show="vtigerAccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\n </div>\n <div ng-if="!vm.accountConnected">\n <p>Account is not connected. Please check your configurations!</p>\n </div>\n \x3c!-- / FIELD SECTION --\x3e\n </div>\n <div ng-switch-default>\n <p>No Item</p>\n </div>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="vtigerAccountItemForm.$invalid || vtigerAccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="vtigerAccountItemForm.$invalid || vtigerAccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n ADD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n <md-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="vtigerAccountItemForm.type.$error" ng-show="vtigerAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <md-select name="option" ng-model="vm.item.content" required>\n <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n </md-select>\n\n <div ng-messages="vtigerAccountItemForm.option.$error" ng-show="vtigerAccountItemForm.option.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="vtigerAccountItemForm.content.$error" ng-show="vtigerAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="vtigerAccountItemForm.variableName.$error" ng-show="vtigerAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!--/ value --\x3e\n\n<\/script>\n\n<script type="text/ng-template" id="/subject.html">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="vtigerAccountItemForm.type.$error" ng-show="vtigerAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n \n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="vtigerAccountItemForm.content.$error"\n ng-show="vtigerAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="vtigerAccountItemForm.variableName.$error"\n ng-show="vtigerAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n <\/script>'),e.put("app/main/apps/integrations/views/vtigerAccounts/edit/view.html",'<div id="integrations-vtigerAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-vtigerAccounts-button md-icon-button" aria-label="Go to vtigerAccounts" ng-click="vm.gotoVtigerAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_VTIGERACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="vtigerAccount-image" hide-xs>\n <img ng-src="assets/images/business/vtigerAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.vtigerAccount.id}}\n <span ng-if="vm.vtigerAccount.name">{{vm.vtigerAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.vtigerAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveVtigerAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (configurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="vtigerAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.vtigerAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.vtigerAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.VTIGER_USER_NAME">vTiger_User_Name</label>\n <input type="text" name="username" ng-model="vm.vtigerAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VTIGER_USER_NAME_REQUIRED">vTiger_User_Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.ACCESS_KEY">Access_Key</label>\n <input type="text" name="accessKey" ng-model="vm.vtigerAccount.accessKey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'accessKey\'].$error" ng-show="generalForm[\'accessKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.ACCESS_KEY_REQUIRED">Access_Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.HOST">Host</label>\n <input type="url" name="remoteUri" ng-model="vm.vtigerAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.HOST_REQUIRED">Host field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.HOST_MUST_VALID_URL">Host must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.vtigerAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="vtigerAccount-detail-form-container configurations md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</div>\n </div>\n <div ng-controller="VtigerAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.vtigerAccount, vm.crudPermissions)" layout="row">\n <md-card class="md-whiteframe-1dp" flex="30">\n <div layout="row" layout-align="center center">\n <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n <md-button flex="25" ng-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditVtigerConfiguration($event)" class="md-icon-button" aria-label="create vtigerConfiguration">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n <md-list>\n <md-list-item layout="row" layout-align="center center" ng-repeat="vtigerConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedVtigerConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getVtigerConfiguration($index)">\n <span class="text-truncate" flex="80">{{ vtigerConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteVtigerConfiguration($event, vtigerConfiguration)" translate="INTEGRATIONS.DELETE_VTIGERCONFIGURATION">\n Delete VtigerConfiguration\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-list-item>\n </md-list>\n </md-card>\n <div flex></div>\n <md-card class="md-whiteframe-1dp" flex="65">\n <md-tabs ng-if="vm_cc.configurations.length" md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n <span ng-if="subject.FieldId">{{subject.nameField || subject.idField}}</span>\n <span ng-if="!subject.FieldId">{{subject.type}}</span>\n </td>\n <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n <span ng-switch-when="string">{{subject.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{subject.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{subject.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{subject.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n Edit Subject\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n Delete Subject\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n <span ng-if="description.FieldId">{{description.nameField || description.idField}}</span>\n <span ng-if="!description.FieldId">{{description.type}}</span>\n </td>\n <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n <span ng-switch-when="string">{{description.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{description.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{description.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{description.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n Edit Description\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n Delete Description\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.FIELDS">FIELDS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.field = query" on-collapse="vm_cc.query.field = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditField($event)" aria-label="add field" translate translate-attr-label="INTEGRATIONS.ADD_FIELD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedFields.length}} {{vm_cc.selectedFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedFields($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedFields">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="field" md-select-id="id" ng-repeat="field in vm_cc.fields | filter: vm_cc.query.field">\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="id ">{{field.id}}</td>\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="type ">\n <span ng-if="field.FieldId">{{field.nameField || field.idField}}</span>\n <span ng-if="!field.FieldId">{{field.type}}</span>\n </td>\n <td ng-switch="field.type" ng-click="vm_cc.createOrEditField($event, field)" md-cell>\n <span ng-switch-when="string">{{field.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{field.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{field.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{field.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditField($event, field)" translate="INTEGRATIONS.EDIT_FIELD">\n Edit Field\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteFieldConfirm($event, field)" translate="INTEGRATIONS.DELETE_FIELD">\n Delete Field\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditVtigerConfiguration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n </div>\n </div>\n </md-card>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/vtigerAccounts/vtigerAccounts.html",'<div id="vtigerAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="INTEGRATIONS.VTIGERACCOUNTS">VtigerAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedVtigerAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedVtigerAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="INTEGRATIONS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-vtigerAccounts-count">\n <span>{{vm.selectedVtigerAccounts.length}}</span>\n <span translate="INTEGRATIONS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="INTEGRATIONS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllVtigerAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectVtigerAccounts()" translate="INTEGRATIONS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedVtigerAccounts" csv-label="true" filename="vtigerAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedVtigerAccounts($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- VTIGERACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedVtigerAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVtigerAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n <th md-column md-order-by="username">{{ \'INTEGRATIONS.VTIGER_USER_NAME\' | translate }}</th>\n <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.HOST\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.vtigerAccounts.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="vtigerAccount" md-select-id="id" ng-repeat="vtigerAccount in vm.vtigerAccounts.rows">\n <td md-cell ng-if="vtigerAccount.userpic"><img class="avatar" alt="{{vtigerAccount.name}}" ng-src="api/users/{{vtigerAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!vtigerAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{vtigerAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(vtigerAccount, ev) : vm.createOrEditVtigerAccount($event, vtigerAccount)" md-cell class="id ">{{vtigerAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(vtigerAccount, ev) : vm.createOrEditVtigerAccount($event, vtigerAccount)" md-cell class="name ">{{vtigerAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(vtigerAccount, ev) : vm.createOrEditVtigerAccount($event, vtigerAccount)" md-cell class="username ">{{vtigerAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(vtigerAccount, ev) : vm.createOrEditVtigerAccount($event, vtigerAccount)" md-cell class="remoteUri ">{{vtigerAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(vtigerAccount, $event )" translate="INTEGRATIONS.EDIT_VTIGERACCOUNT">\n Edit VtigerAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(vtigerAccount, $event )" translate="INTEGRATIONS.TEST_VTIGERACCOUNT">\n Test VtigerAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(vtigerAccount, $event )" translate="INTEGRATIONS.DELETE_VTIGERACCOUNT">\n Delete VtigerAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.vtigerAccounts.count}}" md-on-paginate="vm.getVtigerAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / VTIGERACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD VTIGERACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-vtigerAccount-button" ng-click="vm.createOrEditVtigerAccount($event)" aria-label="add vtigerAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_VTIGERACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD VTIGERACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/zendeskAccounts/create/dialog.html",'<md-dialog class="zendeskAccount-dialog" aria-label="New ZendeskAccount">\n <form name="zendeskAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.zendeskAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="zendeskAccountForm[\'name\'].$error" ng-show="zendeskAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.zendeskAccount.type" required>\n\n <md-option ng-value="\'integrationTab\'"> {{ \'INTEGRATIONS.INTEGRATION_TAB\' | translate }} </md-option>\n\n <md-option ng-value="\'newTab\'"> {{ \'INTEGRATIONS.NEW_TAB\' | translate }} </md-option>\n </md-select>\n <div ng-messages="zendeskAccountForm[\'type\'].$error" ng-show="zendeskAccountForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.zendeskAccount.username" ng-required="true">\n\n <div ng-messages="zendeskAccountForm[\'username\'].$error" ng-show="zendeskAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.zendeskAccount.remoteUri" ng-required="true">\n\n <div ng-messages="zendeskAccountForm[\'remoteUri\'].$error" ng-show="zendeskAccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.AUTHTYPE">AuthType</label>\n <md-select name="authType" ng-model="vm.zendeskAccount.authType" required>\n <md-option ng-value="\'password\'">Password</md-option>\n <md-option ng-value="\'token\'">Token</md-option>\n </md-select>\n <div ng-messages="zendeskAccountForm[\'authType\'].$error" ng-show="zendeskAccountForm[\'authType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.AUTHTYPE_REQUIRED">AuthType field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.zendeskAccount.authType == \'password\'">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.zendeskAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="zendeskAccountForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container ng-if="vm.zendeskAccount.authType == \'token\'" class="md-block">\n <label translate="INTEGRATIONS.TOKEN">Token</label>\n <input type="text" name="token" ng-model="vm.zendeskAccount.token" ng-required="true">\n\n <div ng-messages="zendeskAccountForm[\'token\'].$error" ng-show="zendeskAccountForm[\'token\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TOKEN_REQUIRED">Token field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.zendeskAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="zendeskAccountForm[\'serverUrl\'].$error" ng-show="zendeskAccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.zendeskAccount.description">\n\n <div ng-messages="zendeskAccountForm[\'description\'].$error" ng-show="zendeskAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newZendeskAccount" ng-click="vm.saveZendeskAccount()" class="send-button md-accent md-raised" ng-disabled="zendeskAccountForm.$invalid || zendeskAccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newZendeskAccount" ng-click="vm.addNewZendeskAccount()" class="send-button md-accent md-raised" ng-disabled="zendeskAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_ZENDESKACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_ZENDESKACCOUNT">\n ADD ZENDESKACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newZendeskAccount" ng-click="vm.deleteZendeskAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/zendeskAccounts/edit/item/dialog.html",'<md-dialog class="zendeskAccount-item-dialog" aria-label="New Item">\n <form name="zendeskAccountItemForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div ng-switch="vm.type">\n <div ng-switch-when="subject">\n \x3c!-- SUBJECT SECTION --\x3e\n <div ng-include="\'/subject.html\'"></div>\n \x3c!-- / SUBJECT SECTION --\x3e\n </div>\n <div ng-switch-when="description">\n \x3c!-- DESCRIPTION SECTION --\x3e\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="keyValue">Key Value</md-option>\n </md-select>\n <div ng-messages="zendeskAccountItemForm.type.$error" ng-show="zendeskAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="zendeskAccountItemForm.content.$error" ng-show="zendeskAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.item.type == \'keyValue\'">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n <div ng-messages="zendeskAccountItemForm.key.$error" ng-show="zendeskAccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="keyType" ng-model="vm.item.keyType" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="zendeskAccountItemForm.keyType.$error" ng-show="zendeskAccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n <div ng-messages="zendeskAccountItemForm.keyContent.$error" ng-show="zendeskAccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="zendeskAccountItemForm.variableName.$error" ng-show="zendeskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}\n </md-option>\n </md-select>\n </md-input-container>\n </div>\n \x3c!-- / DESCRIPTION SECTION --\x3e\n </div>\n <div ng-switch-when="field">\n \x3c!-- FIELD SECTION --\x3e\n <div ng-if="vm.accountConnected">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.FIELD">FIELD</label>\n \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="zendeskAccountItemForm.customField.$error" ng-show="zendeskAccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\n </div>\n <div ng-if="!vm.accountConnected">\n <p>Account is not connected. Please check your configurations!</p>\n </div>\n \x3c!-- / FIELD SECTION --\x3e\n </div>\n <div ng-switch-default>\n <p>No Item</p>\n </div>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="zendeskAccountItemForm.$invalid || zendeskAccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="zendeskAccountItemForm.$invalid || zendeskAccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n ADD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n <md-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="zendeskAccountItemForm.type.$error" ng-show="zendeskAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <md-select name="option" ng-model="vm.item.content" required>\n <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n </md-select>\n\n <div ng-messages="zendeskAccountItemForm.option.$error" ng-show="zendeskAccountItemForm.option.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="zendeskAccountItemForm.content.$error" ng-show="zendeskAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="zendeskAccountItemForm.variableName.$error" ng-show="zendeskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!--/ value --\x3e\n\n<\/script>\n\n<script type="text/ng-template" id="/subject.html">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="zendeskAccountItemForm.type.$error" ng-show="zendeskAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n \n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="zendeskAccountItemForm.content.$error"\n ng-show="zendeskAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="zendeskAccountItemForm.variableName.$error"\n ng-show="zendeskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n <\/script>'),e.put("app/main/apps/integrations/views/zendeskAccounts/edit/view.html",'<div id="integrations-zendeskAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-zendeskAccounts-button md-icon-button" aria-label="Go to zendeskAccounts" ng-click="vm.gotoZendeskAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_ZENDESKACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="zendeskAccount-image" hide-xs>\n <img ng-src="assets/images/business/zendeskAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.zendeskAccount.id}}\n <span ng-if="vm.zendeskAccount.name">{{vm.zendeskAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.zendeskAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveZendeskAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (zendeskConfigurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="zendeskAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.zendeskAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.zendeskAccount.type" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'integrationTab\'"> {{ \'INTEGRATIONS.INTEGRATION_TAB\' | translate }} </md-option>\n\n <md-option ng-value="\'newTab\'"> {{ \'INTEGRATIONS.NEW_TAB\' | translate }} </md-option>\n </md-select>\n <div ng-messages="generalForm[\'type\'].$error" ng-show="generalForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.zendeskAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.zendeskAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.AUTHTYPE">AuthType</label>\n <md-select name="authType" ng-model="vm.zendeskAccount.authType" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'password\'">Password</md-option>\n <md-option ng-value="\'token\'">Token</md-option>\n </md-select>\n <div ng-messages="generalForm[\'authType\'].$error" ng-show="generalForm[\'authType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.AUTHTYPE_REQUIRED">AuthType field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.zendeskAccount.authType == \'password\'">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.zendeskAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="generalForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container ng-if="vm.zendeskAccount.authType == \'token\'" class="md-block">\n <label translate="INTEGRATIONS.TOKEN">Token</label>\n <input type="text" name="token" ng-model="vm.zendeskAccount.token" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'token\'].$error" ng-show="generalForm[\'token\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TOKEN_REQUIRED">Token field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.zendeskAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.zendeskAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="zendeskAccount-detail-form-container zendeskconfigurations md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.ZENDESKCONFIGURATIONS">ZENDESKCONFIGURATIONS</div>\n </div>\n <div ng-controller="ZendeskAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.zendeskAccount, vm.crudPermissions)" layout="row">\n <md-card class="md-whiteframe-1dp" flex="30">\n <div layout="row" layout-align="center center">\n <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n <md-button flex="25" ng-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditZendeskConfiguration($event)" class="md-icon-button" aria-label="create zendeskConfiguration">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n <md-list>\n <md-list-item layout="row" layout-align="center center" ng-repeat="zendeskConfiguration in vm_cc.zendeskConfigurations" class="border-top" md-colors="{background: (vm_cc.selectedZendeskConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getZendeskConfiguration($index)">\n <span class="text-truncate" flex="80">{{ zendeskConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteZendeskConfiguration($event, zendeskConfiguration)" translate="INTEGRATIONS.DELETE_ZENDESKCONFIGURATION">\n Delete ZendeskConfiguration\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-list-item>\n </md-list>\n </md-card>\n <div flex></div>\n <md-card class="md-whiteframe-1dp" flex="65">\n <md-tabs ng-if="vm_cc.zendeskConfigurations.length" md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n <span ng-if="subject.FieldId">{{subject.nameField || subject.idField}}</span>\n <span ng-if="!subject.FieldId">{{subject.type}}</span>\n </td>\n <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n <span ng-switch-when="string">{{subject.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{subject.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{subject.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{subject.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n Edit Subject\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n Delete Subject\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n <span ng-if="description.FieldId">{{description.nameField || description.idField}}</span>\n <span ng-if="!description.FieldId">{{description.type}}</span>\n </td>\n <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n <span ng-switch-when="string">{{description.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{description.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{description.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{description.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n Edit Description\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n Delete Description\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.FIELDS">FIELDS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.field = query" on-collapse="vm_cc.query.field = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditField($event)" aria-label="add field" translate translate-attr-label="INTEGRATIONS.ADD_FIELD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedFields.length}} {{vm_cc.selectedFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedFields($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedFields">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="field" md-select-id="id" ng-repeat="field in vm_cc.fields | filter: vm_cc.query.field">\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="id ">{{field.id}}</td>\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="type ">\n <span ng-if="field.FieldId">{{field.nameField || field.idField}}</span>\n <span ng-if="!field.FieldId">{{field.type}}</span>\n </td>\n <td ng-switch="field.type" ng-click="vm_cc.createOrEditField($event, field)" md-cell>\n <span ng-switch-when="string">{{field.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{field.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{field.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{field.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditField($event, field)" translate="INTEGRATIONS.EDIT_FIELD">\n Edit Field\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteFieldConfirm($event, field)" translate="INTEGRATIONS.DELETE_FIELD">\n Delete Field\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.TAGS">TAGS</span>\n </md-tab-label>\n <md-tab-body>\n <md-table-container class="md-whiteframe-1dp padding-20">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TAGS">Tags</label>\n <md-select ng-model="vm_cc.selectedTags" ng-change="vm_cc.selectTagsChanged($event)" multiple>\n <md-option ng-value="tag.id" ng-repeat="tag in vm_cc.tags">{{ tag.name }}</md-option>\n </md-select>\n </md-input-container>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.zendeskConfigurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditZendeskConfiguration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n </div>\n </div>\n </md-card>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/zendeskAccounts/edit/zendeskConfigurations/dialog.html",'<md-dialog class="zendeskConfiguration-dialog" aria-label="New ZendeskConfiguration">\n <form name="zendeskConfigurationForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="" name="name" ng-model="vm.zendeskConfiguration.name" ng-required="true" autofocus>\n\n <div ng-messages="zendeskConfigurationForm[\'name\'].$error" ng-show="zendeskConfigurationForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.zendeskConfiguration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="zendeskConfigurationForm[\'channel\'].$error" ng-show="zendeskConfigurationForm[\'channel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.zendeskConfiguration.type" required>\n\n <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }} </md-option>\n\n <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="zendeskConfigurationForm[\'type\'].$error" ng-show="zendeskConfigurationForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newZendeskConfiguration" ng-click="vm.saveZendeskConfiguration()" class="send-button md-accent md-raised" ng-disabled="zendeskConfigurationForm.$invalid || zendeskConfigurationForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newZendeskConfiguration" ng-click="vm.addNewZendeskConfiguration()" class="send-button md-accent md-raised" ng-disabled="zendeskConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_ZENDESKCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_ZENDESKCONFIGURATION">\n ADD ZENDESKCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newZendeskConfiguration" ng-click="vm.deleteZendeskConfiguration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/zendeskAccounts/zendeskAccounts.html",'<div id="zendeskAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="INTEGRATIONS.ZENDESKACCOUNTS">ZendeskAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedZendeskAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedZendeskAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="INTEGRATIONS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-zendeskAccounts-count">\n <span>{{vm.selectedZendeskAccounts.length}}</span>\n <span translate="INTEGRATIONS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="INTEGRATIONS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllZendeskAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectZendeskAccounts()" translate="INTEGRATIONS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedZendeskAccounts" csv-label="true" filename="zendeskAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedZendeskAccounts($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- ZENDESKACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedZendeskAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getZendeskAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n <th md-column md-order-by="username">{{ \'INTEGRATIONS.USERNAME\' | translate }}</th>\n <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.URI\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.zendeskAccounts.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="zendeskAccount" md-select-id="id" ng-repeat="zendeskAccount in vm.zendeskAccounts.rows">\n <td md-cell ng-if="zendeskAccount.userpic"><img class="avatar" alt="{{zendeskAccount.name}}" ng-src="api/users/{{zendeskAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!zendeskAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{zendeskAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zendeskAccount, ev) : vm.createOrEditZendeskAccount($event, zendeskAccount)" md-cell class="id ">{{zendeskAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zendeskAccount, ev) : vm.createOrEditZendeskAccount($event, zendeskAccount)" md-cell class="name ">{{zendeskAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zendeskAccount, ev) : vm.createOrEditZendeskAccount($event, zendeskAccount)" md-cell class="username ">{{zendeskAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zendeskAccount, ev) : vm.createOrEditZendeskAccount($event, zendeskAccount)" md-cell class="remoteUri ">{{zendeskAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(zendeskAccount, $event )" translate="INTEGRATIONS.EDIT_ZENDESKACCOUNT">\n Edit ZendeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(zendeskAccount, $event )" translate="INTEGRATIONS.TEST_ZENDESKACCOUNT">\n Test ZendeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(zendeskAccount, $event )" translate="INTEGRATIONS.DELETE_ZENDESKACCOUNT">\n Delete ZendeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.zendeskAccounts.count}}" md-on-paginate="vm.getZendeskAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / ZENDESKACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD ZENDESKACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-zendeskAccount-button" ng-click="vm.createOrEditZendeskAccount($event)" aria-label="add zendeskAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_ZENDESKACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD ZENDESKACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/zohoAccounts/create/dialog.html",'<md-dialog class="zohoAccount-dialog" aria-label="New ZohoAccount">\n <form name="zohoAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.zohoAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="zohoAccountForm[\'name\'].$error" ng-show="zohoAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.HOST">Host</label>\n <md-select name="host" ng-model="vm.zohoAccount.host" required>\n <md-option ng-value="\'zoho.com\'">zoho.com</md-option>\n <md-option ng-value="\'zoho.eu\'">zoho.eu</md-option>\n </md-select>\n <div ng-messages="zohoAccountForm[\'host\'].$error" ng-show="zohoAccountForm[\'host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.HOST_REQUIRED">Host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.ZONE">Zone</label>\n <md-select name="zone" ng-model="vm.zohoAccount.zone" required>\n <md-option ng-value="\'US\'">US</md-option>\n <md-option ng-value="\'AU\'">AU</md-option>\n <md-option ng-value="\'EU\'">EU</md-option>\n <md-option ng-value="\'IN\'">IN</md-option>\n <md-option ng-value="\'CN\'">CN</md-option>\n </md-select>\n <div class="hint"><span translate="INTEGRATIONS.HELP.ZONE"></span></div>\n <div ng-messages="zohoAccountForm[\'zone\'].$error" ng-show="zohoAccountForm[\'zone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.ZONE_REQUIRED">Zone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTID">ClientId</label>\n <input type="text" name="clientId" ng-model="vm.zohoAccount.clientId" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.CLIENTID"></span></div>\n <div ng-messages="zohoAccountForm[\'clientId\'].$error" ng-show="zohoAccountForm[\'clientId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTID_REQUIRED">ClientId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTSECRET">ClientSecret</label>\n <input type="text" name="clientSecret" ng-model="vm.zohoAccount.clientSecret" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.CLIENTSECRET"></span></div>\n <div ng-messages="zohoAccountForm[\'clientSecret\'].$error" ng-show="zohoAccountForm[\'clientSecret\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTSECRET_REQUIRED">ClientSecret field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CODE">Code</label>\n <input type="text" name="code" ng-model="vm.zohoAccount.code" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.CODE"></span></div>\n <div ng-messages="zohoAccountForm[\'code\'].$error" ng-show="zohoAccountForm[\'code\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CODE_REQUIRED">Code field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.zohoAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="zohoAccountForm[\'serverUrl\'].$error" ng-show="zohoAccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.zohoAccount.description">\n\n <div ng-messages="zohoAccountForm[\'description\'].$error" ng-show="zohoAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newZohoAccount" ng-click="vm.saveZohoAccount()" class="send-button md-accent md-raised" ng-disabled="zohoAccountForm.$invalid || zohoAccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newZohoAccount" ng-click="vm.addNewZohoAccount()" class="send-button md-accent md-raised" ng-disabled="zohoAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_ZOHOACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_ZOHOACCOUNT">\n ADD ZOHOACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newZohoAccount" ng-click="vm.deleteZohoAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/zohoAccounts/edit/configurations/dialog.html",'<md-dialog class="zohoConfiguration-dialog" aria-label="New ZohoConfiguration">\n <form name="zohoConfigurationForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="" name="name" ng-model="vm.zohoConfiguration.name" ng-required="true" autofocus>\n\n <div ng-messages="zohoConfigurationForm[\'name\'].$error" ng-show="zohoConfigurationForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.zohoConfiguration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="zohoConfigurationForm[\'channel\'].$error" ng-show="zohoConfigurationForm[\'channel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.zohoConfiguration.type" required>\n\n <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }} </md-option>\n\n <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="zohoConfigurationForm[\'type\'].$error" ng-show="zohoConfigurationForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newZohoConfiguration" ng-click="vm.saveZohoConfiguration()" class="send-button md-accent md-raised" ng-disabled="zohoConfigurationForm.$invalid || zohoConfigurationForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newZohoConfiguration" ng-click="vm.addNewZohoConfiguration()" class="send-button md-accent md-raised" ng-disabled="zohoConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_ZOHOCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_ZOHOCONFIGURATION">\n ADD ZOHOCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newZohoConfiguration" ng-click="vm.deleteZohoConfiguration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/zohoAccounts/edit/item/dialog.html",'<md-dialog class="zohoAccount-item-dialog" aria-label="New Item">\n <form name="zohoAccountItemForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div ng-switch="vm.type">\n <div ng-switch-when="subject">\n \x3c!-- SUBJECT SECTION --\x3e\n <div ng-include="\'/subject.html\'"></div>\n \x3c!-- / SUBJECT SECTION --\x3e\n </div>\n <div ng-switch-when="description">\n \x3c!-- DESCRIPTION SECTION --\x3e\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="keyValue">Key Value</md-option>\n </md-select>\n <div ng-messages="zohoAccountItemForm.type.$error" ng-show="zohoAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="zohoAccountItemForm.content.$error" ng-show="zohoAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.item.type == \'keyValue\'">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n <div ng-messages="zohoAccountItemForm.key.$error" ng-show="zohoAccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="keyType" ng-model="vm.item.keyType" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="zohoAccountItemForm.keyType.$error" ng-show="zohoAccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n <div ng-messages="zohoAccountItemForm.keyContent.$error" ng-show="zohoAccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="zohoAccountItemForm.variableName.$error" ng-show="zohoAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}\n </md-option>\n </md-select>\n </md-input-container>\n </div>\n \x3c!-- / DESCRIPTION SECTION --\x3e\n </div>\n <div ng-switch-when="field">\n \x3c!-- FIELD SECTION --\x3e\n <div ng-if="vm.accountConnected">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.FIELD">FIELD</label>\n \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="zohoAccountItemForm.customField.$error" ng-show="zohoAccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\n </div>\n <div ng-if="!vm.accountConnected">\n <p>Account is not connected. Please check your configurations!</p>\n </div>\n \x3c!-- / FIELD SECTION --\x3e\n </div>\n <div ng-switch-default>\n <p>No Item</p>\n </div>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="zohoAccountItemForm.$invalid || zohoAccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="zohoAccountItemForm.$invalid || zohoAccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n ADD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n <md-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="zohoAccountItemForm.type.$error" ng-show="zohoAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <md-select name="option" ng-model="vm.item.content" required>\n <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n </md-select>\n\n <div ng-messages="zohoAccountItemForm.option.$error" ng-show="zohoAccountItemForm.option.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="zohoAccountItemForm.content.$error" ng-show="zohoAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="zohoAccountItemForm.variableName.$error" ng-show="zohoAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!--/ value --\x3e\n\n<\/script>\n\n<script type="text/ng-template" id="/subject.html">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="zohoAccountItemForm.type.$error" ng-show="zohoAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n \n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="zohoAccountItemForm.content.$error"\n ng-show="zohoAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="zohoAccountItemForm.variableName.$error"\n ng-show="zohoAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n <\/script>'),e.put("app/main/apps/integrations/views/zohoAccounts/edit/view.html",'<div id="integrations-zohoAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-zohoAccounts-button md-icon-button" aria-label="Go to zohoAccounts" ng-click="vm.gotoZohoAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_ZOHOACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="zohoAccount-image" hide-xs>\n <img ng-src="assets/images/business/zohoAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.zohoAccount.id}}\n <span ng-if="vm.zohoAccount.name">{{vm.zohoAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.zohoAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveZohoAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (configurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="zohoAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.zohoAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.HOST">Host</label>\n <md-select name="host" ng-model="vm.zohoAccount.host" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'zoho.com\'">zoho.com</md-option>\n <md-option ng-value="\'zoho.eu\'">zoho.eu</md-option>\n </md-select>\n <div ng-messages="generalForm[\'host\'].$error" ng-show="generalForm[\'host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.HOST_REQUIRED">Host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.ZONE">Zone</label>\n <md-select name="zone" ng-model="vm.zohoAccount.zone" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'US\'">US</md-option>\n <md-option ng-value="\'AU\'">AU</md-option>\n <md-option ng-value="\'EU\'">EU</md-option>\n <md-option ng-value="\'IN\'">IN</md-option>\n <md-option ng-value="\'CN\'">CN</md-option>\n </md-select>\n <div class="hint"><span translate="INTEGRATIONS.HELP.ZONE"></span></div>\n <div ng-messages="generalForm[\'zone\'].$error" ng-show="generalForm[\'zone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.ZONE_REQUIRED">Zone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTID">ClientId</label>\n <input type="text" name="clientId" ng-model="vm.zohoAccount.clientId" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.CLIENTID"></span></div>\n <div ng-messages="generalForm[\'clientId\'].$error" ng-show="generalForm[\'clientId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTID_REQUIRED">ClientId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTSECRET">ClientSecret</label>\n <input type="text" name="clientSecret" ng-model="vm.zohoAccount.clientSecret" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.CLIENTSECRET"></span></div>\n <div ng-messages="generalForm[\'clientSecret\'].$error" ng-show="generalForm[\'clientSecret\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTSECRET_REQUIRED">ClientSecret field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CODE">Code</label>\n <input type="text" name="code" ng-model="vm.zohoAccount.code" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.CODE"></span></div>\n <div ng-messages="generalForm[\'code\'].$error" ng-show="generalForm[\'code\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CODE_REQUIRED">Code field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.REFRESHTOKEN">RefreshToken</label>\n <input type="text" name="refreshToken" ng-model="vm.zohoAccount.refreshToken" disabled>\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.REFRESHTOKEN"></span></div>\n <div ng-messages="generalForm[\'refreshToken\'].$error" ng-show="generalForm[\'refreshToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.REFRESHTOKEN_REQUIRED">RefreshToken field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.zohoAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.zohoAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="zohoAccount-detail-form-container configurations md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</div>\n </div>\n <div ng-controller="ZohoAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.zohoAccount, vm.crudPermissions)" layout="row">\n <md-card class="md-whiteframe-1dp" flex="30">\n <div layout="row" layout-align="center center">\n <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n <md-button flex="25" ng-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditZohoConfiguration($event)" class="md-icon-button" aria-label="create zohoConfiguration">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n <md-list>\n <md-list-item layout="row" layout-align="center center" ng-repeat="zohoConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedZohoConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getZohoConfiguration($index)">\n <span class="text-truncate" flex="80">{{ zohoConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteZohoConfiguration($event, zohoConfiguration)" translate="INTEGRATIONS.DELETE_ZOHOCONFIGURATION">\n Delete ZohoConfiguration\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-list-item>\n </md-list>\n </md-card>\n <div flex></div>\n <md-card class="md-whiteframe-1dp" flex="65">\n <md-tabs ng-if="vm_cc.configurations.length" md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n <span ng-if="subject.FieldId">{{subject.nameField || subject.idField}}</span>\n <span ng-if="!subject.FieldId">{{subject.type}}</span>\n </td>\n <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n <span ng-switch-when="string">{{subject.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{subject.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{subject.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{subject.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n Edit Subject\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n Delete Subject\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n <span ng-if="description.FieldId">{{description.nameField || description.idField}}</span>\n <span ng-if="!description.FieldId">{{description.type}}</span>\n </td>\n <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n <span ng-switch-when="string">{{description.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{description.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{description.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{description.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n Edit Description\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n Delete Description\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.FIELDS">FIELDS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.field = query" on-collapse="vm_cc.query.field = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditField($event)" aria-label="add field" translate translate-attr-label="INTEGRATIONS.ADD_FIELD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedFields.length}} {{vm_cc.selectedFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedFields($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedFields">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="field" md-select-id="id" ng-repeat="field in vm_cc.fields | filter: vm_cc.query.field">\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="id ">{{field.id}}</td>\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="type ">\n <span ng-if="field.FieldId">{{field.nameField || field.idField}}</span>\n <span ng-if="!field.FieldId">{{field.type}}</span>\n </td>\n <td ng-switch="field.type" ng-click="vm_cc.createOrEditField($event, field)" md-cell>\n <span ng-switch-when="string">{{field.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{field.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{field.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{field.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditField($event, field)" translate="INTEGRATIONS.EDIT_FIELD">\n Edit Field\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteFieldConfirm($event, field)" translate="INTEGRATIONS.DELETE_FIELD">\n Delete Field\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ADVANCED">\n ADVANCED\n </span>\n </md-tab-label>\n <md-tab-body>\n <div layout-margin>\n <label translate="INTEGRATIONS.MODULE_SEARCH"></label>\n <md-select ng-model="vm_cc.zohoConfiguration.moduleSearch" ng-change="vm_cc.selectChangedAdvanced()" ng-disabled="!vm_cc.crudPermissions.canEdit">\n <md-option ng-value="option.key" ng-repeat="option in [{key: \'contact_lead\', value: \'Contact & Lead\'}, {key: \'contact\', value: \'Contact\'}, {key: \'lead\', value: \'Lead\'}]">\n {{ option.value }}</md-option>\n </md-select>\n </div>\n <div layout-margin>\n <label translate="INTEGRATIONS.MODULE_CREATE"></label>\n <md-select ng-model="vm_cc.zohoConfiguration.moduleCreate" ng-change="vm_cc.selectChangedAdvanced()" ng-disabled="!vm_cc.crudPermissions.canEdit">\n <md-option ng-value="option.key" ng-repeat="option in [{key: \'nothing\', value: \'Nothing\'}, {key: \'contact\', value: \'Contact\'}, {key: \'lead\', value: \'Lead\'}]">\n {{ option.value }}</md-option>\n </md-select>\n </div>\n </md-tab-body>\n </md-tab>\n\n\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditZohoConfiguration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n </div>\n </div>\n </md-card>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/zohoAccounts/zohoAccounts.html",'<div id="zohoAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="INTEGRATIONS.ZOHOACCOUNTS">ZohoAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedZohoAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedZohoAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="INTEGRATIONS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-zohoAccounts-count">\n <span>{{vm.selectedZohoAccounts.length}}</span>\n <span translate="INTEGRATIONS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="INTEGRATIONS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllZohoAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectZohoAccounts()" translate="INTEGRATIONS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedZohoAccounts" csv-label="true" filename="zohoAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedZohoAccounts($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- ZOHOACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedZohoAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getZohoAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n <th md-column md-order-by="host">{{ \'INTEGRATIONS.HOST\' | translate }}</th>\n <th md-column md-order-by="zone">{{ \'INTEGRATIONS.ZONE\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.zohoAccounts.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="zohoAccount" md-select-id="id" ng-repeat="zohoAccount in vm.zohoAccounts.rows">\n <td md-cell ng-if="zohoAccount.userpic"><img class="avatar" alt="{{zohoAccount.name}}" ng-src="api/users/{{zohoAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!zohoAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{zohoAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zohoAccount, ev) : vm.createOrEditZohoAccount($event, zohoAccount)" md-cell class="id ">{{zohoAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zohoAccount, ev) : vm.createOrEditZohoAccount($event, zohoAccount)" md-cell class="name ">{{zohoAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zohoAccount, ev) : vm.createOrEditZohoAccount($event, zohoAccount)" md-cell class="host ">{{ vm.arrayhost[zohoAccount.host].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zohoAccount, ev) : vm.createOrEditZohoAccount($event, zohoAccount)" md-cell class="zone ">{{ vm.arrayzone[zohoAccount.zone].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(zohoAccount, $event )" translate="INTEGRATIONS.EDIT_ZOHOACCOUNT">\n Edit ZohoAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(zohoAccount, $event )" translate="INTEGRATIONS.TEST_ZOHOACCOUNT">\n Test ZohoAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(zohoAccount, $event )" translate="INTEGRATIONS.DELETE_ZOHOACCOUNT">\n Delete ZohoAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.zohoAccounts.count}}" md-on-paginate="vm.getZohoAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / ZOHOACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD ZOHOACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-zohoAccount-button" ng-click="vm.createOrEditZohoAccount($event)" aria-label="add zohoAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_ZOHOACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD ZOHOACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/jscripty/views/projects/create/dialog.html",'<md-dialog class="project-dialog" aria-label="New Project">\n <form name="projectForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="JSCRIPTY.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.project.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newProject">\n\n <div class="hint"><span translate="JSCRIPTY.HELP.NAME"></span></div>\n <div ng-messages="projectForm[\'name\'].$error" ng-show="projectForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="JSCRIPTY.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="JSCRIPTY.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="JSCRIPTY.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.project.description">\n\n <div ng-messages="projectForm[\'description\'].$error" ng-show="projectForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="JSCRIPTY.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newProject" ng-click="vm.saveProject()" class="send-button md-accent md-raised" ng-disabled="projectForm.$invalid || projectForm.$pristine" aria-label="SAVE" translate="JSCRIPTY.SAVE" translate-attr-aria-label="JSCRIPTY.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newProject" ng-click="vm.addNewProject()" class="send-button md-accent md-raised" ng-disabled="projectForm.$invalid" aria-label="ADD" translate="JSCRIPTY.ADD_PROJECT" translate-attr-aria-label="JSCRIPTY.ADD_PROJECT">\n ADD PROJECT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newProject" ng-click="vm.deleteProject($event)" aria-label="DELETE" translate translate-attr-aria-label="JSCRIPTY.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="JSCRIPTY.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/jscripty/views/projects/edit/clone/clone.html",'<md-dialog class="project-dialog" aria-label="Clone Project">\n <form name="projectForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="JSCRIPTY.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.project.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newProject">\n\n <div class="hint"><span translate="JSCRIPTY.HELP.NAME"></span></div>\n <div ng-messages="projectForm[\'name\'].$error" ng-show="projectForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="JSCRIPTY.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="JSCRIPTY.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <md-button type="submit" ng-click="vm.cloneProject()" class="send-button md-accent md-raised" ng-disabled="projectForm.$invalid" aria-label="CLONE" translate="JSCRIPTY.CLONE_PROJECT" translate-attr-aria-label="JSCRIPTY.CLONE_PROJECT">\n CLONE PROJECT\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/jscripty/views/projects/edit/sessions/dialog.html",'<md-dialog class="session-dialog" aria-label="New Session">\n <form name="sessionForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <md-list>\n <md-subheader class="md-no-sticky">\n <div class="margin-bottom-5"><span translate="JSCRIPTY.ANSWERS">Answers</span></div>\n <div class="subtitle secondary-text">\n <span translate="JSCRIPTY.STARTTIME" class="ng-scope font-weight-700">Start Time</span>: <span class="ng-binding">{{vm.session.starttime | date:\'medium\'}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="JSCRIPTY.MEMBERNAME" class="ng-scope font-weight-700">Member Name</span>: <span class="ng-binding">{{vm.session.membername}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="JSCRIPTY.PROJECT" class="ng-scope font-weight-700">Project</span>: <span class="ng-binding">{{vm.project.name}}</span>\n </div>\n </md-subheader>\n <md-list-item ng-if="vm.questions.rows.length" class="md-2-line contact-item" ng-repeat="question in vm.questions.rows">\n <div class="md-list-item-text compact">\n <h3>{{$index+1}}. {{question.question}}</h3>\n <p>{{question.answer}}</p>\n </div>\n <md-divider ng-if="!$last"></md-divider>\n </md-list-item>\n <md-list-item ng-if="!vm.questions.rows.length" class="md-2-line contact-item">\n <div class="md-list-item-text compact">\n <h3><span class="text-boxed-light" translate="JSCRIPTY.NO_RESULTS_AVAILABLE">No results available</span></h3>\n </div>\n </md-list-item>\n </md-list>\n\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/jscripty/views/projects/edit/view.html",'<div id="jscripty-project" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-projects-button md-icon-button" aria-label="Go to projects" ng-click="vm.gotoProjects()" translate translate-attr-aria-label="JSCRIPTY.GO_TO_PROJECTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="project-image" hide-xs>\n <img ng-src="assets/images/business/projects.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.project.id}}\n <span ng-if="vm.project.name">{{vm.project.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="JSCRIPTY.CREATED_AT"></span> <span>{{vm.project.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.clonedialog(vm.project, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="clone">\n <md-tooltip><span translate="JSCRIPTY.CLONE_PROJECT"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveProject()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (builderForm.$invalid) || (previewForm.$invalid) || (sessionsForm.$invalid) || (answersForm.$invalid)" translate="JSCRIPTY.SAVE" translate-attr-aria-label="JSCRIPTY.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="JSCRIPTY.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="project-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="JSCRIPTY.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="JSCRIPTY.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.project.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="JSCRIPTY.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="JSCRIPTY.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="JSCRIPTY.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.project.enableUncompleteSave" aria-label="EnableUncompleteSave" ng-disabled="!vm.crudPermissions.canEdit"><span translate="JSCRIPTY.ENABLEUNCOMPLETESAVE">EnableUncompleteSave</span></md-switch>\n <div class="hint"><span translate="JSCRIPTY.HELP.ENABLEUNCOMPLETESAVE"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.project.sendUnpauseOnSubmit" aria-label="SendUnpauseOnSubmit" ng-disabled="!vm.crudPermissions.canEdit"><span translate="JSCRIPTY.SENDUNPAUSEONSUBMIT">SendUnpauseOnSubmit</span></md-switch>\n <div class="hint"><span translate="JSCRIPTY.HELP.SENDUNPAUSEONSUBMIT"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="JSCRIPTY.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.project.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="JSCRIPTY.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="JSCRIPTY.BUILDER">BUILDER</span>\n </md-tab-label>\n <md-tab-body>\n <div class="project-detail-form-container builder md-background-bg md-whiteframe-1dp">\n <div ng-controller="ProjectBuilderController as vm_bc" ng-init="vm_bc.init(vm.project)">\n <mw-form-builder ng-if="vm_bc.project.formData" form-data="vm_bc.project.formData" options="vm_bc.optionsBuilder" read-only="false"></mw-form-builder>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="JSCRIPTY.PREVIEW">PREVIEW</span>\n </md-tab-label>\n <md-tab-body>\n <div class="project-detail-form-container preview md-background-bg md-whiteframe-1dp">\n <div layout="column" layout-align="center" ng-controller="ProjectViewerController as vm_vc" ng-init="vm_vc.init(vm.project)">\n <div layout="row" layout-align="center">\n <md-button class="md-raised md-accent" aria-label="Reset" ng-click="vm_vc.resetViewer()">\n Reset\n </md-button>\n </div>\n <mw-form-viewer ng-if="vm_vc.project.formData" form-data="vm_vc.project.formData" response-data="vm_vc.responseData" on-submit="vm_vc.onSubmit($event)" api="vm_vc.formViewer"></mw-form-viewer>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="JSCRIPTY.SESSIONS">SESSIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="project-detail-form-container sessions md-background-bg md-whiteframe-1dp">\n <div ng-controller="ProjectSessionsController as vm_dc" ng-init="vm_dc.init(vm.project, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedProjectSessions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="JSCRIPTY.SESSIONS">Sessions</span>\n <ms-search-bar on-search="vm_dc.getProjectSessions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedProjectSessions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedProjectSessions.length}} {{vm_dc.selectedProjectSessions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedProjectSessions" csv-label="true" filename="projects.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedProjectSessions($event)" aria-label="delete selected" translate translate-attr-label="JSCRIPTY.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedProjectSessions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getProjectSessions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'JSCRIPTY.ID\' | translate }}\n </th>\n <th md-column md-order-by="starttime">\n {{ \'JSCRIPTY.STARTTIME\' | translate }}\n </th>\n <th md-column md-order-by="endtime">\n {{ \'JSCRIPTY.ENDTIME\' | translate }}\n </th>\n <th md-column md-order-by="membername">\n {{ \'JSCRIPTY.MEMBERNAME\' | translate }}\n </th>\n <th md-column md-order-by="calleridnum">\n {{ \'JSCRIPTY.CALLERIDNUM\' | translate }}\n </th>\n <th md-column md-order-by="completed">\n {{ \'JSCRIPTY.COMPLETE\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="session" md-select-id="id" ng-repeat="session in vm_dc.projectSessions.rows">\n <td md-cell>\n {{session.id}}\n </td>\n <td md-cell>\n {{ session.starttime | formatdate }}\n </td>\n <td md-cell>\n {{ session.endtime | formatdate }}\n </td>\n <td md-cell>\n {{session.membername}}\n </td>\n <td md-cell>\n {{session.calleridnum}}\n </td>\n <td md-cell class="completed ">\n <md-icon md-colors="{color: {{session.completed ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{session.completed? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="JSCRIPTY.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm_dc.showQuestionsProjectSession($event, session)" translate="JSCRIPTY.SHOW_QUESTIONS_SESSION">\n Results Session\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(session, $event)" translate="JSCRIPTY.DELETE_SESSION">\n Delete Session\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.projectSessions.rows.length">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="JSCRIPTY.NO_SESSION_AVAILABLE">No session available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'JSCRIPTY.PAGE\' | translate}}:\', rowsPerPage: \'{{\'JSCRIPTY.ROWSPERPAGE\' | translate}}:\', of: \'{{\'JSCRIPTY.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.projectSessions.count}}" md-on-paginate="vm_dc.getProjectSessions" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="JSCRIPTY.ANSWERS">ANSWERS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="project-detail-form-container answers md-background-bg md-whiteframe-1dp">\n <div ng-controller="ProjectAnswersController as vm_an" ng-init="vm_an.init(vm.project, vm.userProfile)">\n <div class="pb-16" layout="row">\n <div class="h2 secondary-text" translate="JSCRIPTY.ANSWERS" flex>Answers</div>\n <div layout="row" layout-align="space-between center" flex>\n <md-date-range localization-map="vm_an.localizationMap" ng-model="vm_an.pickerModel" auto-confirm="true" show-template="true" md-on-select="vm_an.getAnswers()" placeholder="{{ \'DASHBOARDS.ALL\' | translate }}"></md-date-range>\n <md-button type="button" ng-if="vm_an.currentUser.role === \'admin\' || vm_an.userProfile.downloadJscriptySessions" ng-disabled="!vm_an.answers" ng-click="vm_an.getSummary($event)" class="md-accent md-raised md-button ng-scope md-default-theme md-ink-ripple md-green-500-bg md-icon-button" title="{{\'JSCRIPTY.EXPORT_TO_CSV\' | translate}}">\n <md-icon md-font-icon="icon-file-excel" class="md-default-theme md-font material-icons icon-file-excel"></md-icon>\n </md-button>\n </div>\n </div>\n <div layout="row">\n <md-card class="md-whiteframe-1dp" ng-if="vm_an.answers && vm_an.hasIdAnswers" flex>\n <md-list>\n <md-list-item class="md-2-line contact-item" ng-repeat="(key, question) in vm_an.answers">\n <div class="md-list-item-text compact" layout-padding>\n <h3>{{question.question}}</h3>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column></th>\n <th md-column>#</th>\n <th md-column>%</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-repeat="(key, value) in question.answers">\n <td md-cell>{{key}}</td>\n <td md-cell width="20px">{{value}}</td>\n <td md-cell width="20px">{{value*100/question.sum | number:1}}</td>\n </tr>\n <tr md-row>\n <td md-cell><b>{{\'JSCRIPTY.TOTAL\' | translate}}</b></td>\n <td md-cell width="20px"><b>{{question.sum}}</b></td>\n <td md-cell width="20px"><b>100</b></td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </div>\n <md-divider ng-if="!$last"></md-divider>\n </md-list-item>\n </md-list>\n </md-card>\n <span ng-if="!vm_an.answers || !vm_an.hasIdAnswers" class="text-boxed-light" translate="JSCRIPTY.NO_ANSWERS_AVAILABLE">No answers available</span>\n </div>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/jscripty/views/projects/projects.html",'<div id="projects" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-script" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="JSCRIPTY.PROJECTS">Projects</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="JSCRIPTY.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedProjects.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedProjects =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="JSCRIPTY.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-projects-count">\n <span>{{vm.selectedProjects.length}}</span>\n <span translate="JSCRIPTY.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="JSCRIPTY.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllProjects()" translate="JSCRIPTY.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectProjects()" translate="JSCRIPTY.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedProjects" csv-label="true" filename="projects.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedProjects($event)" aria-label="delete selected" translate translate-attr-label="JSCRIPTY.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- PROJECT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedProjects" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getProjects">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'JSCRIPTY.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'JSCRIPTY.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'JSCRIPTY.DESCRIPTION\' | translate }}</th>\n <th md-column md-order-by="createdAt">{{ \'JSCRIPTY.CREATED_AT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.projects.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="JSCRIPTY.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="project" md-select-id="id" ng-repeat="project in vm.projects.rows">\n <td md-cell ng-if="project.userpic"><img class="avatar" alt="{{project.name}}" ng-src="api/users/{{project.id}}/avatar" /></td>\n <td md-cell ng-if="!project.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{project.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="id ">{{project.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="name ">{{project.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="description ">{{project.description}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="createdAt ">{{project.createdAt | date:\'medium\' }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="JSCRIPTY.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(project, $event )" translate="JSCRIPTY.EDIT_PROJECT">\n Edit Project\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.clonedialog(project, $event )" translate="JSCRIPTY.CLONE_PROJECT">\n clone Project\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.sessionsgoto(project, $event )" translate="JSCRIPTY.SESSIONS_PROJECT">\n Sessions Project\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.deleteconfirm(project, $event )" translate="JSCRIPTY.DELETE_PROJECT">\n Delete Project\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'JSCRIPTY.PAGE\' | translate}}:\', rowsPerPage: \'{{\'JSCRIPTY.ROWSPERPAGE\' | translate}}:\', of: \'{{\'JSCRIPTY.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.projects.count}}" md-on-paginate="vm.getProjects" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / PROJECT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD PROJECT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-project-button" ng-click="vm.createOrEditProject($event)" aria-label="add project" translate translate-attr-aria-label="JSCRIPTY.ADD_PROJECT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD PROJECT BUTTON --\x3e\n</div>'),e.put("app/main/apps/mail/views/mailAccounts/create/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.mailAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="mailAccountForm[\'name\'].$error" ng-show="mailAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.KEY">key</label>\n <input type="text" name="key" ng-model="vm.mailAccount.key" md-maxlength="5" ng-required="true">\n\n <div ng-messages="mailAccountForm[\'key\'].$error" ng-show="mailAccountForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="MAIL.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.EMAIL_ADDRESS">Email_Address</label>\n <input type="email" name="email" ng-model="vm.mailAccount.email" ng-required="true">\n\n <div ng-messages="mailAccountForm[\'email\'].$error" ng-show="mailAccountForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.EMAIL_ADDRESS_REQUIRED">Email_Address field is required</span>\n </div>\n <div ng-message="email">\n <span translate="MAIL.ERRORS.EMAIL_ADDRESS_MUST_VALID">Email_Address must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.LIST">List</label>\n <md-select name="ListId" ng-model="vm.mailAccount.ListId" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div ng-messages="mailAccountForm[\'ListId\'].$error" ng-show="mailAccountForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.active" aria-label="Active"><span translate="MAIL.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.newMailAccount" class="md-block">\n <label translate="MAIL.SERVICE">Service</label>\n <md-select name="cservice" ng-model="vm.mailAccount.cservice" required>\n <md-option ng-value="null">Custom</md-option>\n <md-option ng-value="\'gmail\'">Gmail</md-option>\n <md-option ng-value="\'hotmail\'">Hotmail</md-option>\n <md-option ng-value="\'yahoo\'">Yahoo</md-option>\n <md-option ng-value="\'outlook365\'">Outlook365</md-option>\n </md-select>\n <div ng-messages="mailAccountForm[\'cservice\'].$error" ng-show="mailAccountForm[\'cservice\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.SERVICE_REQUIRED">Service field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Imap.service == null)" class="md-block">\n <label translate="MAIL.IMAP_HOST">IMAP_Host</label>\n <input type="text" name="Imap.host" ng-model="vm.mailAccount.Imap.host" ng-required="true">\n\n <div ng-messages="mailAccountForm[\'Imap.host\'].$error" ng-show="mailAccountForm[\'Imap.host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.IMAP_HOST_REQUIRED">IMAP_Host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Imap.service == null)" class="md-block">\n <label translate="MAIL.IMAP_PORT">IMAP_Port</label>\n <input type="number" name="Imap.port" ng-model="vm.mailAccount.Imap.port" value="465" ng-required="true">\n\n <div ng-messages="mailAccountForm[\'Imap.port\'].$error" ng-show="mailAccountForm[\'Imap.port\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.IMAP_PORT_REQUIRED">IMAP_Port field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Smtp.service == null)" class="md-block">\n <label translate="MAIL.SMTP_HOST">SMTP_Host</label>\n <input type="text" name="Smtp.host" ng-model="vm.mailAccount.Smtp.host" ng-required="true">\n\n <div ng-messages="mailAccountForm[\'Smtp.host\'].$error" ng-show="mailAccountForm[\'Smtp.host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.SMTP_HOST_REQUIRED">SMTP_Host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Smtp.service == null)" class="md-block">\n <label translate="MAIL.SMTP_PORT">SMTP_Port</label>\n <input type="number" name="Smtp.port" ng-model="vm.mailAccount.Smtp.port" value="465" ng-required="true">\n\n <div ng-messages="mailAccountForm[\'Smtp.port\'].$error" ng-show="mailAccountForm[\'Smtp.port\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.SMTP_PORT_REQUIRED">SMTP_Port field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.cservice !== undefined && vm.mailAccount.cservice == null && vm.newMailAccount" class="md-block">\n <md-switch ng-model="vm.mailAccount.cauthentication" aria-label="Authentication"><span translate="MAIL.AUTHENTICATION">Authentication</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="(vm.mailAccount.cauthentication == true || vm.mailAccount.cservice != null) && vm.newMailAccount" class="md-block">\n <label translate="MAIL.USERNAME">Username</label>\n <input type="text" name="cuser" ng-model="vm.mailAccount.cuser" ng-required="true">\n\n <div class="hint"><span translate="MAIL.HELP.USERNAME"></span></div>\n <div ng-messages="mailAccountForm[\'cuser\'].$error" ng-show="mailAccountForm[\'cuser\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="(vm.mailAccount.cauthentication == true || vm.mailAccount.cservice != null) && vm.newMailAccount">\n <label translate="MAIL.PASSWORD">Password</label>\n <input type="password" name="cpassword" ng-model="vm.mailAccount.cpassword" placeholder="Password" translate translate-attr-placeholder="MAIL.PASSWORD" required>\n <div class="hint"><span translate="MAIL.HELP.PASSWORD"></span></div>\n <div ng-messages="mailAccountForm[\'cpassword\'].$error" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MAIL.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="MAIL.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.mailAccount.description">\n\n <div ng-messages="mailAccountForm[\'description\'].$error" ng-show="mailAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newMailAccount" ng-click="vm.saveMailAccount()" class="send-button md-accent md-raised" ng-disabled="mailAccountForm.$invalid || mailAccountForm.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newMailAccount" ng-click="vm.addNewMailAccount()" class="send-button md-accent md-raised" ng-disabled="mailAccountForm.$invalid" aria-label="ADD" translate="MAIL.ADD_MAILACCOUNT" translate-attr-aria-label="MAIL.ADD_MAILACCOUNT">\n ADD MAILACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newMailAccount" ng-click="vm.deleteMailAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="MAIL.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="MAIL.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/agentadd/agentadd.html",'<md-dialog class="mailAccount-dialog" aria-label="mailAccount" ng-init="vm.onInit()">\n <form name="mailAccountForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MAIL.AGENTADD_MAILACCOUNT">Add Agent to mailAccount</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/agent/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.AGENT">Agent</label>\n <md-select name="agent" ng-model="vm.agent.agent" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents" ng-disabled="agent.canSelect === false">{{ agent.name }}</md-option>\n </md-select>\n <div ng-messages="mailAccountFormApp[\'agent\'].$error" ng-show="mailAccountFormApp[\'agent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.agent.timeout" min="0" max="2147483" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'timeout\'].$error" ng-show="mailAccountFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/autoreply/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.TIMES">times</label>\n <md-select name="times" ng-model="vm.autoreply.times" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="2">One Time</md-option>\n <md-option ng-value="0">Always</md-option>\n <md-option ng-value="1">First Message</md-option>\n </md-select>\n <div ng-messages="mailAccountFormApp[\'times\'].$error" ng-show="mailAccountFormApp[\'times\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.TIMES_REQUIRED">times field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.REPLY_TYPE">Reply_Type</label>\n <md-select name="replyType" ng-model="vm.autoreply.replyType" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="0">Reply</md-option>\n <md-option ng-value="1">Reply All</md-option>\n </md-select>\n <div ng-messages="mailAccountFormApp[\'replyType\'].$error" ng-show="mailAccountFormApp[\'replyType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.REPLY_TYPE_REQUIRED">Reply_Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="MAIL.TEXT">Text</label>\n <textarea aria-label="Text text" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.autoreply.text"></textarea>\n </div>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/close/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.DISPOSITION">Disposition</label>\n <input type="text" name="disposition" ng-model="vm.close.disposition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'disposition\'].$error" ng-show="mailAccountFormApp[\'disposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/gotoif/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.CONDITION">Condition</label>\n <input type="text" name="condition" ng-model="vm.gotoif.condition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'condition\'].$error" ng-show="mailAccountFormApp[\'condition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.TRUEPRIORITY">truepriority</label>\n <input type="number" name="truepriority" ng-model="vm.gotoif.truepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'truepriority\'].$error" ng-show="mailAccountFormApp[\'truepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.TRUEPRIORITY_REQUIRED">truepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">truepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.FALSEPRIORITY">falsepriority</label>\n <input type="number" name="falsepriority" ng-model="vm.gotoif.falsepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'falsepriority\'].$error" ng-show="mailAccountFormApp[\'falsepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.FALSEPRIORITY_REQUIRED">falsepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">falsepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/gotop/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.PRIORITY">Priority</label>\n <input type="number" name="priority" ng-model="vm.gotop.priority" min="0" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'priority\'].$error" ng-show="mailAccountFormApp[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Priority must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/interval/dialog.html",'<md-dialog class="interval-dialog" aria-label="New Interval">\n <form name="intervalForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="type" ng-repeat=\'type in vm.types\'>{{ type | ucfirst }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.type === \'list\'">\n <label translate="TOOLS.INTERVALS">Intervals</label>\n <md-select ng-model="vm.interval.IntervalId" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ interval.name }}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!-- TIMERANGE START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.TIME_RANGE">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <div class="md-block" flex>\n <mdp-time-picker name="timeRangeFrom" mdp-placeholder="FROM" ng-model="vm.timeRangeFrom" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <div ng-messages="intervalForm.timeRangeFrom.$error" ng-show="intervalForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_FROM_INVALID">Time Range From field is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n <div class="md-block" flex ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_INVALID">Time Range To field is invalid</span>\n </div>\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </div>\n \x3c!-- TIMERANGE END --\x3e\n\n \x3c!-- DAYSOFWEEK START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.WEEK_DAYS">Week Days</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.dayOfWeekFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex class="md-block" ng-if="vm.dayOfWeekFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="dayOfWeekTo" ng-model="vm.dayOfWeekTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- DAYSOFWEEK END --\x3e\n\n \x3c!-- MONTHDAY START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTH_DAYS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthDayFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthDayFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthDayTo" ng-model="vm.monthDayTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTHDAY END --\x3e\n\n \x3c!-- MONTH START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTHS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthTo" ng-model="vm.monthTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTH END --\x3e\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="!vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n ADD INTERVAL\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/noop/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.noop.value" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'value\'].$error" ng-show="mailAccountFormApp[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/queue/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.queue.queue" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues" ng-disabled="queue.canSelect === false">{{ queue.name }}</md-option>\n </md-select>\n <div ng-messages="mailAccountFormApp[\'queue\'].$error" ng-show="mailAccountFormApp[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'timeout\'].$error" ng-show="mailAccountFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/system/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.COMMAND">Command</label>\n <input type="text" name="command" ng-model="vm.system.command" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'command\'].$error" ng-show="mailAccountFormApp[\'command\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.COMMAND_REQUIRED">Command field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.system.variable" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables" ng-disabled="variable.canSelect === false">{{ variable.name }}</md-option>\n </md-select>\n <div ng-messages="mailAccountFormApp[\'variable\'].$error" ng-show="mailAccountFormApp[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.VARIABLE_REQUIRED">Variable field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/tag/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.TAG">Tag</label>\n <md-select name="tag" ng-model="vm.tag.tag" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags" ng-disabled="tag.canSelect === false">{{ tag.name }}</md-option>\n </md-select>\n <div ng-messages="mailAccountFormApp[\'tag\'].$error" ng-show="mailAccountFormApp[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.TAG_REQUIRED">Tag field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/mailCannedAnswers/dialog.html",'<md-dialog class="mailCannedAnswer-dialog" aria-label="New MailCannedAnswer">\n <form name="mailCannedAnswerForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.KEY">Key</label>\n <input type="" name="key" ng-model="vm.mailCannedAnswer.key" md-maxlength="255" ng-required="true" autofocus>\n\n <div ng-messages="mailCannedAnswerForm[\'key\'].$error" ng-show="mailCannedAnswerForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.KEY_REQUIRED">Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="MAIL.VALUE">Value</label>\n <textarea aria-label="Value value" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.mailCannedAnswer.value"></textarea>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.mailCannedAnswer.description">\n\n <div ng-messages="mailCannedAnswerForm[\'description\'].$error" ng-show="mailCannedAnswerForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newMailCannedAnswer" ng-click="vm.saveMailCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="mailCannedAnswerForm.$invalid || mailCannedAnswerForm.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newMailCannedAnswer" ng-click="vm.addNewMailCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="mailCannedAnswerForm.$invalid" aria-label="ADD" translate="MAIL.ADD_MAILCANNEDANSWER" translate-attr-aria-label="MAIL.ADD_MAILCANNEDANSWER">\n ADD MAILCANNEDANSWER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newMailCannedAnswer" ng-click="vm.deleteMailCannedAnswer($event)" aria-label="DELETE" translate translate-attr-aria-label="MAIL.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="MAIL.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/view.html",'<div id="mail-mailAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-mailAccounts-button md-icon-button" aria-label="Go to mailAccounts" ng-click="vm.gotoMailAccounts()" translate translate-attr-aria-label="MAIL.GO_TO_MAILACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="mailAccount-image" hide-xs>\n <img ng-src="assets/images/business/mailAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.mailAccount.id}}\n <span ng-if="vm.mailAccount.name">{{vm.mailAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="MAIL.CREATED_AT"></span> <span>{{vm.mailAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.mailAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="MAIL.GOTO_MAILACCOUNT"></span></md-tooltip>\n <md-icon md-font-icon="icon-cast"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.mailAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="MAIL.AGENTADD_MAILACCOUNT"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveMailAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (imapForm.$invalid) || (smtpForm.$invalid) || (dispositionForm.$invalid) || (mailDispositionsForm.$invalid) || (mailCannedAnswersForm.$invalid) || (actionsForm.$invalid) || (interactionsForm.$invalid)" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="mailAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MAIL.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MAIL.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.mailAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.KEY">key</label>\n <input type="text" name="key" ng-model="vm.mailAccount.key" md-maxlength="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'key\'].$error" ng-show="generalForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="MAIL.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.EMAIL_ADDRESS">Email_Address</label>\n <input type="email" name="email" ng-model="vm.mailAccount.email" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'email\'].$error" ng-show="generalForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.EMAIL_ADDRESS_REQUIRED">Email_Address field is required</span>\n </div>\n <div ng-message="email">\n <span translate="MAIL.ERRORS.EMAIL_ADDRESS_MUST_VALID">Email_Address must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.LIST">List</label>\n <md-select name="ListId" ng-model="vm.mailAccount.ListId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'ListId\'].$error" ng-show="generalForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.active" aria-label="Active" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.FONT_FAMILY">Font_Family</label>\n <ms-font-family name="fontFamily" ng-model="vm.mailAccount.fontFamily" required></ms-font-family>\n <div class="hint"><span translate="MAIL.HELP.FONT_FAMILY"></span></div>\n <div ng-messages="generalForm[\'fontFamily\'].$error" ng-show="generalForm[fontFamily].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.FONT_FAMILY_REQUIRED">Font_Family field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.FONT_SIZE">Font_Size</label>\n <input type="number" name="fontSize" ng-model="vm.mailAccount.fontSize" min="8" max="72" value="13" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MAIL.HELP.FONT_SIZE"></span></div>\n <div ng-messages="generalForm[\'fontSize\'].$error" ng-show="generalForm[\'fontSize\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.FONT_SIZE_REQUIRED">Font_Size field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.FONT_SIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Font_Size must be a valid greater or equal than</span> <span>8</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.FONT_SIZE_MUST_BE_LESS_THAN_OR_EQUAL_TO">Font_Size must be a valid greater or equal than</span> <span>72</span>\n </div>\n </div>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="MAIL.TEMPLATE">Template</label>\n <textarea aria-label="Template template" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.mailAccount.template"></textarea>\n </div>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.markAsUnread" aria-label="mark_as_unread" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.MARK_AS_UNREAD">mark_as_unread</span></md-switch>\n <div class="hint"><span translate="MAIL.HELP.MARK_AS_UNREAD"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.WAITFORTHEASSIGNEDAGENT">WaitForTheAssignedAgent</label>\n <input type="number" name="waitForTheAssignedAgent" ng-model="vm.mailAccount.waitForTheAssignedAgent" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'waitForTheAssignedAgent\'].$error" ng-show="generalForm[\'waitForTheAssignedAgent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.WAITFORTHEASSIGNEDAGENT_REQUIRED">WaitForTheAssignedAgent field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.mailAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="mailAccount-detail-form-container notification md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MAIL.NOTIFICATION">NOTIFICATION</div>\n </div>\n <form name="notificationForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.notificationSound" aria-label="notificationSound" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.NOTIFICATIONSOUND">notificationSound</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.notificationShake" aria-label="notificationShake" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.NOTIFICATIONSHAKE">notificationShake</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="MAIL.NOTIFICATIONTEMPLATE">notificationTemplate</label>\n <textarea aria-label="notificationTemplate notificationTemplate" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.mailAccount.notificationTemplate"></textarea>\n </div>\n\n </form>\n </div>\n <div class="mailAccount-detail-form-container transfer md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MAIL.TRANSFER">TRANSFER</div>\n </div>\n <form name="transferForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.queueTransfer" aria-label="queueTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.QUEUETRANSFER">queueTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.queueTransfer == true" class="md-block">\n <label translate="MAIL.QUEUETRANSFERTIMEOUT">queueTransferTimeout</label>\n <input type="number" name="queueTransferTimeout" ng-model="vm.mailAccount.queueTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'queueTransferTimeout\'].$error" ng-show="transferForm[\'queueTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.QUEUETRANSFERTIMEOUT_REQUIRED">queueTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.agentTransfer" aria-label="agentTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.AGENTTRANSFER">agentTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.agentTransfer == true" class="md-block">\n <label translate="MAIL.AGENTTRANSFERTIMEOUT">agentTransferTimeout</label>\n <input type="number" name="agentTransferTimeout" ng-model="vm.mailAccount.agentTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'agentTransferTimeout\'].$error" ng-show="transferForm[\'agentTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.AGENTTRANSFERTIMEOUT_REQUIRED">agentTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.IMAP">IMAP</span>\n </md-tab-label>\n <md-tab-body>\n <div class="mailAccount-detail-form-container imap md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MAIL.IMAP">IMAP</div>\n </div>\n <form name="imapForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MAIL.SERVICE">Service</label>\n <md-select name="Imap.service" ng-model="vm.mailAccount.Imap.service" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Custom</md-option>\n <md-option ng-value="\'gmail\'">Gmail</md-option>\n <md-option ng-value="\'hotmail\'">Hotmail</md-option>\n <md-option ng-value="\'yahoo\'">Yahoo</md-option>\n <md-option ng-value="\'outlook365\'">Outlook365</md-option>\n </md-select>\n <div ng-messages="imapForm[\'Imap.service\'].$error" ng-show="imapForm[\'Imap.service\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.SERVICE_REQUIRED">Service field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Imap.service == null)" class="md-block">\n <label translate="MAIL.IMAP_HOST">IMAP_Host</label>\n <input type="text" name="Imap.host" ng-model="vm.mailAccount.Imap.host" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="imapForm[\'Imap.host\'].$error" ng-show="imapForm[\'Imap.host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.IMAP_HOST_REQUIRED">IMAP_Host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Imap.service == null)" class="md-block">\n <label translate="MAIL.IMAP_PORT">IMAP_Port</label>\n <input type="number" name="Imap.port" ng-model="vm.mailAccount.Imap.port" value="465" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="imapForm[\'Imap.port\'].$error" ng-show="imapForm[\'Imap.port\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.IMAP_PORT_REQUIRED">IMAP_Port field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.Imap.tls" aria-label="ssl" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.SSL">ssl</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.Imap.service == null" class="md-block">\n <md-switch ng-model="vm.mailAccount.Imap.authentication" aria-label="Authentication" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.AUTHENTICATION">Authentication</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.Imap.authentication == true || vm.mailAccount.Imap.service != null" class="md-block">\n <label translate="MAIL.USERNAME">Username</label>\n <input type="text" name="Imap.user" ng-model="vm.mailAccount.Imap.user" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MAIL.HELP.USERNAME"></span></div>\n <div ng-messages="imapForm[\'Imap.user\'].$error" ng-show="imapForm[\'Imap.user\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.mailAccount.Imap.authentication == true || vm.mailAccount.Imap.service != null">\n <label translate="MAIL.PASSWORD">Password</label>\n <input type="password" name="Imap.password" ng-model="vm.mailAccount.Imap.password" placeholder="Password" translate translate-attr-placeholder="MAIL.PASSWORD" required>\n <div class="hint"><span translate="MAIL.HELP.PASSWORD"></span></div>\n <div ng-messages="imapForm[\'Imap.password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MAIL.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="MAIL.MAILBOX">mailbox</label>\n <input type="text" name="Imap.mailbox" ng-model="vm.mailAccount.Imap.mailbox" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="imapForm[\'Imap.mailbox\'].$error" ng-show="imapForm[\'Imap.mailbox\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.MAILBOX_REQUIRED">mailbox field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.CONNTIMEOUT">connTimeout</label>\n <input type="number" name="Imap.connTimeout" ng-model="vm.mailAccount.Imap.connTimeout" min="1" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="imapForm[\'Imap.connTimeout\'].$error" ng-show="imapForm[\'Imap.connTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.CONNTIMEOUT_REQUIRED">connTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.CONNTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">connTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.AUTHTIMEOUT">authTimeout</label>\n <input type="number" name="Imap.authTimeout" ng-model="vm.mailAccount.Imap.authTimeout" min="1" value="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="imapForm[\'Imap.authTimeout\'].$error" ng-show="imapForm[\'Imap.authTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.AUTHTIMEOUT_REQUIRED">authTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.AUTHTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">authTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.SMTP">SMTP</span>\n </md-tab-label>\n <md-tab-body>\n <div class="mailAccount-detail-form-container smtp md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MAIL.SMTP">SMTP</div>\n </div>\n <form name="smtpForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MAIL.SERVICE">Service</label>\n <md-select name="Smtp.service" ng-model="vm.mailAccount.Smtp.service" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Custom</md-option>\n <md-option ng-value="\'gmail\'">Gmail</md-option>\n <md-option ng-value="\'hotmail\'">Hotmail</md-option>\n <md-option ng-value="\'yahoo\'">Yahoo</md-option>\n <md-option ng-value="\'outlook365\'">Outlook365</md-option>\n </md-select>\n <div ng-messages="smtpForm[\'Smtp.service\'].$error" ng-show="smtpForm[\'Smtp.service\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.SERVICE_REQUIRED">Service field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Smtp.service == null)" class="md-block">\n <label translate="MAIL.SMTP_HOST">SMTP_Host</label>\n <input type="text" name="Smtp.host" ng-model="vm.mailAccount.Smtp.host" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smtpForm[\'Smtp.host\'].$error" ng-show="smtpForm[\'Smtp.host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.SMTP_HOST_REQUIRED">SMTP_Host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Smtp.service == null)" class="md-block">\n <label translate="MAIL.SMTP_PORT">SMTP_Port</label>\n <input type="number" name="Smtp.port" ng-model="vm.mailAccount.Smtp.port" value="465" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smtpForm[\'Smtp.port\'].$error" ng-show="smtpForm[\'Smtp.port\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.SMTP_PORT_REQUIRED">SMTP_Port field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.Smtp.service == null" class="md-block">\n <md-switch ng-model="vm.mailAccount.Smtp.secure" aria-label="Secure" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.SECURE">Secure</span></md-switch>\n <div class="hint"><span translate="MAIL.HELP.SECURE"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.Smtp.service == null" class="md-block">\n <md-switch ng-model="vm.mailAccount.Smtp.authentication" aria-label="Authentication" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.AUTHENTICATION">Authentication</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.Smtp.authentication == true || vm.mailAccount.Smtp.service != null" class="md-block">\n <label translate="MAIL.USERNAME">Username</label>\n <input type="text" name="Smtp.user" ng-model="vm.mailAccount.Smtp.user" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MAIL.HELP.USERNAME"></span></div>\n <div ng-messages="smtpForm[\'Smtp.user\'].$error" ng-show="smtpForm[\'Smtp.user\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.mailAccount.Smtp.authentication == true || vm.mailAccount.Smtp.service != null">\n <label translate="MAIL.PASSWORD">Password</label>\n <input type="password" name="Smtp.pass" ng-model="vm.mailAccount.Smtp.pass" placeholder="Password" translate translate-attr-placeholder="MAIL.PASSWORD" required>\n <div class="hint"><span translate="MAIL.HELP.PASSWORD"></span></div>\n <div ng-messages="smtpForm[\'Smtp.pass\'].$error" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MAIL.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="mailAccount-detail-form-container disposition md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MAIL.DISPOSITION">DISPOSITION</div>\n </div>\n <form name="dispositionForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.mandatoryDisposition" class="md-block">\n <label translate="MAIL.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.mailAccount.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MAIL.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="dispositionForm[\'mandatoryDispositionPauseId\'].$error" ng-show="dispositionForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.DISPOSITIONS">DISPOSITIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div ng-controller="MailAccountDispositionsController as vm_dc" ng-init="vm_dc.init(vm.mailAccount, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="mailAccount-detail-form-container maildispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedMailAccountDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MAIL.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add mail dispositions" translate translate-attr-label="MAIL.ADD_DISPOSITION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" csv-label="true" filename="mailAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="MAIL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_dc.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'MAIL.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'MAIL.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'MAIL.DESCRIPTION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="MAIL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MAIL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(disposition, $event)" translate="TOOLS.DELETE_DISPOSITION">\n Delete Disposition\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.CANNEDANSWERS">CANNEDANSWERS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="mailAccount-detail-form-container mailcannedanswers md-background-bg md-whiteframe-1dp">\n <div ng-controller="MailAccountMailCannedAnswersController as vm_dc" ng-init="vm_dc.init(vm.mailAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedMailAccountMailCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MAIL.MAILCANNEDANSWERS">MailCannedAnswers</span>\n <ms-search-bar on-search="vm_dc.getMailAccountMailCannedAnswers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event)" aria-label="add mailCannedAnswer" translate translate-attr-label="MAIL.ADD_MAILCANNEDANSWER">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedMailAccountMailCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedMailAccountMailCannedAnswers.length}} {{vm_dc.selectedMailAccountMailCannedAnswers.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedMailAccountMailCannedAnswers" csv-label="true" filename="mailAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedMailAccountMailCannedAnswers($event)" aria-label="delete selected" translate translate-attr-label="MAIL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedMailAccountMailCannedAnswers" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getMailAccountMailCannedAnswers">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'MAIL.ID\' | translate }}\n </th>\n <th md-column md-order-by="key">\n {{ \'MAIL.KEY\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'MAIL.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="description">\n {{ \'MAIL.DESCRIPTION\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'MAIL.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="mailCannedAnswer" md-select-id="id" ng-repeat="mailCannedAnswer in vm_dc.mailAccountMailCannedAnswers.rows">\n <td ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" md-cell>\n {{mailCannedAnswer.id}}\n </td>\n <td ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" md-cell>\n {{mailCannedAnswer.key}}\n </td>\n <td ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" md-cell>{{mailCannedAnswer.value | htmlToPlaintext }}</td>\n <td ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" md-cell>\n {{mailCannedAnswer.description}}\n </td>\n <td ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" md-cell>\n {{ mailCannedAnswer.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MAIL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" translate="MAIL.EDIT_MAILCANNEDANSWER">\n Edit MailCannedAnswer\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(mailCannedAnswer, $event)" translate="MAIL.DELETE_MAILCANNEDANSWER">\n Delete MailCannedAnswer\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.mailAccountMailCannedAnswers.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MAIL.NO_MAILCANNEDANSWER_AVAILABLE">No mailcannedanswer available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.mailAccountMailCannedAnswers.count}}" md-on-paginate="vm_dc.getMailAccountMailCannedAnswers" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="mailAccount-detail-form-container actions md-background-bg md-whiteframe-1dp">\n <div ng-controller="MailAccountActionsController as vm_ac" ng-init="vm_ac.init(vm.mailAccount, vm.crudPermissions)" class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- SIDENAV --\x3e\n <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20" ng-if="vm_ac.crudPermissions.canEdit">\n \x3c!-- SIDENAV CONTENT --\x3e\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\n Applications List\n </span>\n </md-subheader>\n </md-list>\n <md-divider></md-divider>\n <md-list ng-sortable="vm_ac.list">\n <md-list-item class="handle" ng-repeat="a in vm_ac.apps">\n <md-icon md-font-icon="{{a.icon}}" class="s16"></md-icon>\n <p class="text-truncate" translate="MAIL.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias || a.appType}}</p>\n </md-list-item>\n </md-list>\n \x3c!-- / SIDENAV CONTENT --\x3e\n </div>\n \x3c!-- / SIDENAV --\x3e\n <div flex></div>\n \x3c!-- MAIN --\x3e\n <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="{{vm_ac.crudPermissions.canEdit ? 75 : 100}}">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_ac.selectedMailAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Drag & Drop Routing</span>\n <div flex></div>\n <ms-search-bar on-search="vm_ac.query.filter = query" on-collapse="vm_ac.query.filter = undefined" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_ac.selectedMailAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_ac.selectedMailAccountApps.length}} {{vm_ac.selectedMailAccountApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_ac.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_ac.deleteSelectedMailAccountApps($event)" aria-label="delete selected" translate translate-attr-label="MAIL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n \x3c!-- QUEUES TABLE --\x3e\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_ac.selectedMailAccountApps">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column width="10px">\n <span translate="VOICE.PRIORITY">Priority</span>\n </th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </th>\n <th md-column width="10px"></th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body ng-sortable="vm_ac.applications">\n <tr md-row md-select="app" md-select-id="id" ng-repeat="app in vm_ac.mailAccountApps.rows | filter: vm_ac.query.filter">\n <td md-cell>\n <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n </td>\n <td md-cell ng-click="vm_ac.editMailAccountApp($event, $index)"><span>{{app.priority}}</span></td>\n <td md-cell ng-click="vm_ac.editMailAccountApp($event, $index)">{{app.app.toLowerCase() === \'agi\' ? \'Cally-Square\' : app.app | ucfirst}}<span ng-if="app.appType.toLowerCase() === \'custom\'">*</span></td>\n <td md-cell ng-click="vm_ac.editMailAccountApp($event, $index)"><span class="text-truncate actionAppData">{{app.appdata}}</span></td>\n <td md-cell ng-click="vm_ac.editInterval($event, $index)">{{app.IntervalId ? \'From List\' : app.interval}}</td>\n <td md-cell>\n <md-button ng-click="vm_ac.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n <md-icon md-font-icon="icon-timer"></md-icon>\n <md-tooltip>\n {{app.IntervalId ? \'From List\' : (app.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n </md-tooltip>\n </md-button>\n </td>\n <td md-cell class="actions" ng-if="!vm_ac.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editMailAccountApp($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canDelete">\n <md-button ng-click="vm_ac.deleteConfirm(app, $index, $event)" translate="VOICE.DELETE_APP">\n Delete App\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-hide="vm_ac.mailAccountApps.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n \x3c!-- / QUEUES TABLE --\x3e\n\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.INTERACTIONS">INTERACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="mailAccount-detail-form-container interactions md-background-bg md-whiteframe-1dp">\n <div ng-controller="MailAccountInteractionsController as vm_dc" ng-init="vm_dc.init(vm.mailAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedMailAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MAIL.INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm_dc.getMailAccountInteractions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_dc.quickFilters" query="vm_dc.query" search="vm_dc.getMailAccountInteractions()"></ms-quick-filter>\n <div layout="column">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini md-accent-bg\': vm_dc.query.search }" aria-label="Filter" translate translate-attr-aria-label="DASHBOARDS.FILTER" ng-click="vm_dc.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm_dc.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'blink\': vm_dc.query.search }"></md-icon>\n </md-button>\n </div>\n <md-button class="md-icon-button" ng-click="vm_dc.getMailAccountInteractions()" aria-label="refresh Interactions" translate translate-attr-label="MAIL.REFRESH_INTERACTIONS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedMailAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedMailAccountInteractions.length}} {{vm_dc.selectedMailAccountInteractions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedMailAccountInteractions" csv-label="true" filename="mailAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedMailAccountInteractions($event)" aria-label="delete selected" translate translate-attr-label="MAIL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedMailAccountInteractions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getMailAccountInteractions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'MAIL.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column md-order-by="contactName">\n {{ \'MAIL.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="subject">\n {{ \'MAIL.SUBJECT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'MAIL.STARTEDAT\' | translate }}\n </th>\n <th md-column md-order-by="lastMsgAt">\n {{ \'MAIL.LASTMESSAGE\' | translate }}\n </th>\n <th md-column md-order-by="closed">\n {{ \'MAIL.STATUS\' | translate }}\n </th>\n <th md-column>\n {{ \'MAIL.AGENT\' | translate }}\n </th>\n <th md-column md-order-by="tag">\n {{ \'MAIL.TAGS\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="interaction" md-select-id="id" ng-repeat="interaction in vm_dc.mailAccountInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td md-cell>\n {{interaction.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="user in interaction.Users">{{ user.fullname | translate }}\n <span ng-if="!$last">, </span>\n </span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg md-primary-bg" layout-margin>{{ interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.attach">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'margin-bottom-0\' : interaction.contactInfo}" layout-margin>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text margin-top-0" layout-margin>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td md-cell>\n <div class="width-300">\n <span class="text-truncate font-size-12">\n {{interaction.subject}}\n </span>\n </div>\n </td>\n <td md-cell>\n {{ interaction.createdAt | formatdate }}\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}"></md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="text-truncate">{{ interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n </td>\n <td md-cell>\n <span ng-if="interaction.closed === 0" class="green-fg">\n {{ \'MAIL.OPENED\' | translate }}\n <span ng-if="interaction.substatus">\n - {{ interaction.substatus }}\n </span>\n </span>\n <span ng-if="interaction.closed === 1" class="red-fg">\n {{ \'MAIL.CLOSED\' | translate }}\n <span ng-if="interaction.disposition">\n - {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}\n </span>\n <md-tooltip class="multiline">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n </span>\n </td>\n\n <td md-cell>\n {{interaction.Owner.name}}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MAIL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm_dc.spymailInteraction($event, interaction)" translate="MAIL.SPYINTERACTION">\n Spy Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || (vm_dc.userProfile.downloadOmnichannelInteractions && vm_dc.userProfile.downloadAttachments)">\n <md-button class="md-primary" ng-click="vm_dc.mailInteractionDownload(interaction, $event, true)" translate="MAIL.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || vm_dc.userProfile.downloadOmnichannelInteractions">\n <md-button class="md-primary" ng-click="vm_dc.mailInteractionDownload(interaction, $event)" translate="MAIL.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(interaction, $event)" translate="MAIL.DELETE_INTERACTION">\n Delete Interaction\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.mailAccountInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MAIL.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.mailAccountInteractions.count}}" md-on-paginate="vm_dc.getMailAccountInteractions" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/mail/views/mailAccounts/mailAccounts.html",'<div id="mailAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-email" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="MAIL.MAILACCOUNTS">MailAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="MAIL.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedMailAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedMailAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="MAIL.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-mailAccounts-count">\n <span>{{vm.selectedMailAccounts.length}}</span>\n <span translate="MAIL.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="MAIL.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllMailAccounts()" translate="MAIL.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectMailAccounts()" translate="MAIL.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedMailAccounts" csv-label="true" filename="mailAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedMailAccounts($event)" aria-label="delete selected" translate translate-attr-label="MAIL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- MAILACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedMailAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getMailAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'MAIL.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'MAIL.NAME\' | translate }}</th>\n <th md-column md-order-by="key">{{ \'MAIL.KEY\' | translate }}</th>\n <th md-column md-order-by="email">{{ \'MAIL.EMAIL_ADDRESS\' | translate }}</th>\n <th md-column md-order-by="active">{{ \'MAIL.ACTIVE\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'MAIL.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.mailAccounts.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="MAIL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="mailAccount" md-select-id="id" ng-repeat="mailAccount in vm.mailAccounts.rows">\n <td md-cell ng-if="mailAccount.userpic"><img class="avatar" alt="{{mailAccount.name}}" ng-src="api/users/{{mailAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!mailAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{mailAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailAccount, ev) : vm.createOrEditMailAccount($event, mailAccount)" md-cell class="id ">{{mailAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailAccount, ev) : vm.createOrEditMailAccount($event, mailAccount)" md-cell class="name ">{{mailAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailAccount, ev) : vm.createOrEditMailAccount($event, mailAccount)" md-cell class="key ">{{mailAccount.key}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailAccount, ev) : vm.createOrEditMailAccount($event, mailAccount)" md-cell class="email ">{{mailAccount.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailAccount, ev) : vm.createOrEditMailAccount($event, mailAccount)" md-cell class="active ">\n <md-icon md-colors="{color: {{mailAccount.active ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{mailAccount.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailAccount, ev) : vm.createOrEditMailAccount($event, mailAccount)" md-cell class="description ">{{mailAccount.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MAIL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(mailAccount, $event )" translate="MAIL.EDIT_MAILACCOUNT">\n Edit MailAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.verifysmtpverifysmtp(mailAccount, $event )" translate="MAIL.VERIFYSMTP_MAILACCOUNT">\n verifysmtp MailAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.interactionsgoto(mailAccount, $event )" translate="MAIL.INTERACTIONS_MAILACCOUNT">\n Interactions MailAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(mailAccount, $event )" translate="MAIL.GOTOREALTIME_MAILACCOUNT">\n goToRealtime MailAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(mailAccount, $event )" translate="MAIL.AGENTADD_MAILACCOUNT">\n AgentAdd MailAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(mailAccount, $event )" translate="MAIL.DELETE_MAILACCOUNT">\n Delete MailAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.mailAccounts.count}}" md-on-paginate="vm.getMailAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / MAILACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD MAILACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-mailAccount-button" ng-click="vm.createOrEditMailAccount($event)" aria-label="add mailAccount" translate translate-attr-aria-label="MAIL.ADD_MAILACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD MAILACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/mail/views/mailQueues/create/dialog.html",'<md-dialog class="mailQueue-dialog" aria-label="New MailQueue">\n <form name="mailQueueForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.mailQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newMailQueue">\n\n <div class="hint"><span translate="MAIL.HELP.NAME"></span></div>\n <div ng-messages="mailQueueForm[\'name\'].$error" ng-show="mailQueueForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MAIL.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.mailQueue.strategy" required>\n <md-option ng-value="\'beepall\'">Beepall</md-option>\n <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n </md-select>\n <div ng-messages="mailQueueForm[\'strategy\'].$error" ng-show="mailQueueForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.mailQueue.timeout" min="1" max="2147483" value="10" ng-required="true">\n\n <div ng-messages="mailQueueForm[\'timeout\'].$error" ng-show="mailQueueForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.mailQueue.description">\n\n <div ng-messages="mailQueueForm[\'description\'].$error" ng-show="mailQueueForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newMailQueue" ng-click="vm.saveMailQueue()" class="send-button md-accent md-raised" ng-disabled="mailQueueForm.$invalid || mailQueueForm.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newMailQueue" ng-click="vm.addNewMailQueue()" class="send-button md-accent md-raised" ng-disabled="mailQueueForm.$invalid" aria-label="ADD" translate="MAIL.ADD_MAILQUEUE" translate-attr-aria-label="MAIL.ADD_MAILQUEUE">\n ADD MAILQUEUE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newMailQueue" ng-click="vm.deleteMailQueue($event)" aria-label="DELETE" translate translate-attr-aria-label="MAIL.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="MAIL.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailQueues/edit/agentadd/agentadd.html",'<md-dialog class="mailQueue-dialog" aria-label="mailQueue" ng-init="vm.onInit()">\n <form name="mailQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MAIL.AGENTADD_MAILQUEUE">Add Agent to mailQueue</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailQueues/edit/teamadd/teamadd.html",'<md-dialog class="mailQueue-dialog" aria-label="mailQueue" ng-init="vm.onInit()">\n <form name="mailQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MAIL.TEAMS_ASSOCIATION">Teams Association</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailQueues/edit/view.html",'<div id="mail-mailQueue" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-mailQueues-button md-icon-button" aria-label="Go to mailQueues" ng-click="vm.gotoMailQueues()" translate translate-attr-aria-label="MAIL.GO_TO_MAILQUEUES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="mailQueue-image" hide-xs>\n <img ng-src="assets/images/business/mailQueues.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.mailQueue.id}}\n <span ng-if="vm.mailQueue.name">{{vm.mailQueue.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="MAIL.CREATED_AT"></span> <span>{{vm.mailQueue.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.teamadddialog(vm.mailQueue, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n <md-tooltip><span translate="MAIL.TEAMADD_MAILQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.mailQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="MAIL.AGENTADD_MAILQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-plus"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveMailQueue()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="mailQueue-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MAIL.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MAIL.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.mailQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="MAIL.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MAIL.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.mailQueue.strategy" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'beepall\'">Beepall</md-option>\n <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n </md-select>\n <div ng-messages="generalForm[\'strategy\'].$error" ng-show="generalForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.mailQueue.timeout" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'timeout\'].$error" ng-show="generalForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.mailQueue.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/mail/views/mailQueues/mailQueues.html",'<div id="mailQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-email" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="MAIL.MAILQUEUES">MailQueues</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="MAIL.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedMailQueues.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedMailQueues =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="MAIL.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-mailQueues-count">\n <span>{{vm.selectedMailQueues.length}}</span>\n <span translate="MAIL.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="MAIL.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllMailQueues()" translate="MAIL.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectMailQueues()" translate="MAIL.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedMailQueues" csv-label="true" filename="mailQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedMailQueues($event)" aria-label="delete selected" translate translate-attr-label="MAIL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- MAILQUEUE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedMailQueues" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getMailQueues">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'MAIL.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'MAIL.NAME\' | translate }}</th>\n <th md-column md-order-by="strategy">{{ \'MAIL.STRATEGY\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.mailQueues.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="MAIL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="mailQueue" md-select-id="id" ng-repeat="mailQueue in vm.mailQueues.rows">\n <td md-cell ng-if="mailQueue.userpic"><img class="avatar" alt="{{mailQueue.name}}" ng-src="api/users/{{mailQueue.id}}/avatar" /></td>\n <td md-cell ng-if="!mailQueue.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{mailQueue.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailQueue, ev) : vm.createOrEditMailQueue($event, mailQueue)" md-cell class="id ">{{mailQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailQueue, ev) : vm.createOrEditMailQueue($event, mailQueue)" md-cell class="name ">{{mailQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailQueue, ev) : vm.createOrEditMailQueue($event, mailQueue)" md-cell class="strategy ">{{ vm.arraystrategy[mailQueue.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MAIL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(mailQueue, $event )" translate="MAIL.EDIT_MAILQUEUE">\n Edit MailQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(mailQueue, $event )" translate="MAIL.TEAMADD_MAILQUEUE">\n teamadd MailQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(mailQueue, $event )" translate="MAIL.AGENTADD_MAILQUEUE">\n agentadd MailQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(mailQueue, $event )" translate="MAIL.DELETE_MAILQUEUE">\n Delete MailQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(mailQueue, $event )" translate="MAIL.GOTOREALTIME_MAILQUEUE">\n goToRealtime MailQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.mailQueues.count}}" md-on-paginate="vm.getMailQueues" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / MAILQUEUE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD MAILQUEUE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-mailQueue-button" ng-click="vm.createOrEditMailQueue($event)" aria-label="add mailQueue" translate translate-attr-aria-label="MAIL.ADD_MAILQUEUE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD MAILQUEUE BUTTON --\x3e\n</div>'),e.put("app/main/apps/mail/views/mailSubtatuses/create/dialog.html",'<md-dialog class="mailSubstatus-dialog" aria-label="New MailSubstatus">\n <form name="mailSubstatusForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.mailSubstatus.name" ng-required="true" autofocus>\n\n <div ng-messages="mailSubstatusForm[\'name\'].$error" ng-show="mailSubstatusForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.mailSubstatus.description">\n\n <div ng-messages="mailSubstatusForm[\'description\'].$error" ng-show="mailSubstatusForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newMailSubstatus" ng-click="vm.saveMailSubstatus()" class="send-button md-accent md-raised" ng-disabled="mailSubstatusForm.$invalid || mailSubstatusForm.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newMailSubstatus" ng-click="vm.addNewMailSubstatus()" class="send-button md-accent md-raised" ng-disabled="mailSubstatusForm.$invalid" aria-label="ADD" translate="MAIL.ADD_MAILSUBSTATUS" translate-attr-aria-label="MAIL.ADD_MAILSUBSTATUS">\n ADD MAILSUBSTATUS\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newMailSubstatus" ng-click="vm.deleteMailSubstatus($event)" aria-label="DELETE" translate translate-attr-aria-label="MAIL.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="MAIL.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailSubtatuses/mailSubtatuses.html",'<div id="mailSubtatuses" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-email" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="MAIL.MAILSUBSTATUSES">MailSubstatuses</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="MAIL.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedMailSubstatuses.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedMailSubstatuses =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="MAIL.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-mailSubtatuses-count">\n <span>{{vm.selectedMailSubstatuses.length}}</span>\n <span translate="MAIL.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="MAIL.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllMailSubstatuses()" translate="MAIL.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectMailSubstatuses()" translate="MAIL.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedMailSubstatuses" csv-label="true" filename="mailSubtatuses.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedMailSubstatuses($event)" aria-label="delete selected" translate translate-attr-label="MAIL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- MAILSUBSTATUS TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedMailSubstatuses" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getMailSubstatuses">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'MAIL.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'MAIL.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'MAIL.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.mailSubtatuses.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="MAIL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="mailSubstatus" md-select-id="id" ng-repeat="mailSubstatus in vm.mailSubtatuses.rows">\n <td md-cell ng-if="mailSubstatus.userpic"><img class="avatar" alt="{{mailSubstatus.name}}" ng-src="api/users/{{mailSubstatus.id}}/avatar" /></td>\n <td md-cell ng-if="!mailSubstatus.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{mailSubstatus.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditMailSubstatus($event, mailSubstatus)" md-cell class="id ">{{mailSubstatus.id}}</td>\n <td ng-click="vm.createOrEditMailSubstatus($event, mailSubstatus)" md-cell class="name ">{{mailSubstatus.name}}</td>\n <td ng-click="vm.createOrEditMailSubstatus($event, mailSubstatus)" md-cell class="description ">{{mailSubstatus.description}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MAIL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(mailSubstatus, $event )" translate="MAIL.EDIT_MAILSUBSTATUS">\n Edit MailSubstatus\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(mailSubstatus, $event )" translate="MAIL.DELETE_MAILSUBSTATUS">\n Delete MailSubstatus\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.mailSubtatuses.count}}" md-on-paginate="vm.getMailSubstatuses" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / MAILSUBSTATUS TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD MAILSUBSTATUS BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-mailSubstatus-button" ng-click="vm.createOrEditMailSubstatus($event)" aria-label="add mailSubstatus" translate translate-attr-aria-label="MAIL.ADD_MAILSUBSTATUS">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD MAILSUBSTATUS BUTTON --\x3e\n</div>'),e.put("app/main/apps/mail/views/realtime/accounts/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MAIL.ACCOUNTS">Accounts</span>\n <div flex></div>\n <ms-search-bar on-search="vm.vm.getMailAccounts()" query="vm.query" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n\n\x3c!-- AGENT TABLE --\x3e\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getMailAccounts">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'MAIL.NAME\' | translate}}</th>\n <th md-column>{{\'MAIL.KEY\' | translate}}</th>\n <th md-column>{{\'MAIL.TOTAL\' | translate}}</th>\n <th md-column>{{\'MAIL.IN\' | translate}}</th>\n <th md-column>{{\'MAIL.OUT\' | translate}}</th>\n <th md-column>{{\'MAIL.IMAP_STATUS\' | translate}}</th>\n <th md-column>{{\'MAIL.SMTP_STATUS\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.mailAccounts">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="MAIL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="vm.mailAccounts[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td md-cell>{{vm.mailAccounts[value].name}}</td>\n <td md-cell>{{vm.mailAccounts[value].key}}</td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{(vm.mailAccounts[value].in || 0) + (vm.mailAccounts[value].out || 0)}}</span>\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon>\n </span>\n <span class="md-capture blue-fg">{{vm.mailAccounts[value].in || 0}}</span>\n <span class="text-boxed" ng-if="mailAccount.in">{{vm.mailAccounts[value].lastIn ? (vm.mailAccounts[value].lastIn | date: \'shortTime\') : \'\'}}</span>\n </div>\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon>\n </span>\n <span class="md-capture green-fg">{{vm.mailAccounts[value].out || 0}}</span>\n <span class="text-boxed" ng-if="mailAccount.out">{{vm.mailAccounts[value].lastOut ? (vm.mailAccounts[value].lastOut | date: \'shortTime\') : \'\'}}</span>\n </div>\n </td>\n <td md-cell>\n <div layout="row" layout-align="start center">\n <div layout="column" layout-align="center center">\n <md-button class="md-icon-button" aria-label="Status">\n <md-tooltip>{{vm.mailAccounts[value].Imap.messageStatus}}</md-tooltip>\n <div ng-switch="vm.mailAccounts[value].Imap.status">\n <md-icon ng-switch-when="error" md-font-icon="icon-alert yellow-fg"></md-icon>\n <md-icon ng-switch-when="disabled" md-font-icon="icon-close grey-fg"></md-icon>\n <md-icon ng-switch-default md-font-icon="icon-checkbox-marked-circle-outline green-fg"></md-icon>\n </div>\n </md-button>\n <span class="md-caption grey-fg">{{ (\'MAIL.\' + vm.mailAccounts[value].Imap.status.toUpperCase()) | translate}}</span>\n </div>\n <span class="text-boxed" ng-if="vm.mailAccounts[value].active && (vm.mailAccounts[value].Imap.lastSync && vm.mailAccounts[value].Imap.lastSync != \'\')">{{vm.mailAccounts[value].Imap.lastSync | date: \'shortTime\'}}</span>\n </div>\n </td>\n <td md-cell>\n <div layout="row" layout-align="start center" ng-if="vm.mailAccounts[value].Smtp.status">\n <div layout="column" layout-align="center center">\n <md-button class="md-icon-button" aria-label="Status">\n <md-tooltip>{{vm.mailAccounts[value].Smtp.messageStatus}}</md-tooltip>\n <md-icon md-font-icon="{{ vm.mailAccounts[value].Smtp.status == \'error\' ? \'icon-alert yellow-fg\' : \'icon-checkbox-marked-circle-outline green-fg\'}}"></md-icon>\n </md-button>\n <span class="md-caption grey-fg">{{ (\'MAIL.\' + vm.mailAccounts[value].Smtp.status.toUpperCase()) | translate}}</span>\n </div>\n <span class="text-boxed">{{vm.mailAccounts[value].Smtp.lastSync | date: \'shortTime\'}}</span>\n </div>\n <span class="md-caption grey-fg" ng-if="!vm.mailAccounts[value].Smtp.status">{{ \'MAIL.NEVER_VERIFIED\' | translate }}</span>\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="4">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.goToMailAccount($event, vm.mailAccounts[value])" translate="MAIL.EDIT_ACCOUNT">\n Edit Account\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.verifySmtp($event, vm.mailAccounts[value])" translate="MAIL.VERIFY_SMTP">\n Verify Smtp\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getMailAccounts" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/mail/views/realtime/queues/view.html",'<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MAIL.QUEUES">Queues</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'MAIL.NAME\' | translate }}</th>\n <th md-column>{{ \'MAIL.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'MAIL.PAUSED\' | translate }}</th>\n <th md-column>{{ \'MAIL.WAITING\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.queues.count > 0">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="MAIL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="queue" md-select-id="id" ng-repeat="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedIn }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MAIL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="MAIL.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" translate="MAIL.AGENTSADD_QUEUE">\n Add Agents to queue\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),e.put("app/main/apps/mail/views/realtime/realtime.html",'<div id="realtime" class="page-layout simple tabbed" layout="column" ng-cloak>\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.QUEUES">Queues</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.ACCOUNTS">Accounts</span>\n </md-tab-label>\n </md-tab>\n </md-tabs>\n\n <md-card ui-view></md-card>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/marketplace/views/plugins/create/dialog.html",'<md-dialog class="plugin-dialog" aria-label="New Plugin">\n <form name="pluginForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.plugin.name" ng-required="true" autofocus>\n\n <div ng-messages="pluginForm[\'name\'].$error" ng-show="pluginForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.TYPE">Type</label>\n <input type="text" name="type" ng-model="vm.plugin.type" ng-disabled="!vm.newPlugin">\n\n <div ng-messages="pluginForm[\'type\'].$error" ng-show="pluginForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.plugin.active" aria-label="Active" ng-disabled="!vm.newPlugin"><span translate="MARKETPLACE.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.plugin.description">\n\n <div ng-messages="pluginForm[\'description\'].$error" ng-show="pluginForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.ICON">Icon</label>\n <input type="text" name="icon" ng-model="vm.plugin.icon" ng-required="true">\n\n <div ng-messages="pluginForm[\'icon\'].$error" ng-show="pluginForm[\'icon\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.ICON_REQUIRED">Icon field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.SIDEBAR">Sidebar</label>\n <md-select name="sidebar" ng-model="vm.plugin.sidebar" required>\n <md-option ng-value="\'always\'">Always</md-option>\n <md-option ng-value="\'adminOnly\'">Admin Only</md-option>\n <md-option ng-value="\'agentOnly\'">Agent Only</md-option>\n <md-option ng-value="\'never\'">Never</md-option>\n </md-select>\n <div ng-messages="pluginForm[\'sidebar\'].$error" ng-show="pluginForm[\'sidebar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.SIDEBAR_REQUIRED">Sidebar field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.sidebar === \'always\' || vm.plugin.sidebar === \'adminOnly\'" class="md-block">\n <label translate="MARKETPLACE.ADMINURL">AdminUrl</label>\n <input type="text" name="adminUrl" ng-model="vm.plugin.adminUrl">\n\n <div ng-messages="pluginForm[\'adminUrl\'].$error" ng-show="pluginForm[\'adminUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.ADMINURL_REQUIRED">AdminUrl field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.sidebar === \'always\' || vm.plugin.sidebar === \'agentOnly\'" class="md-block">\n <label translate="MARKETPLACE.AGENTURL">AgentUrl</label>\n <input type="text" name="agentUrl" ng-model="vm.plugin.agentUrl">\n\n <div ng-messages="pluginForm[\'agentUrl\'].$error" ng-show="pluginForm[\'agentUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.AGENTURL_REQUIRED">AgentUrl field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.type === \'script\'" class="md-block">\n <label translate="MARKETPLACE.SCRIPTNAME">ScriptName</label>\n <input type="text" name="scriptName" ng-model="vm.plugin.scriptName" ng-disabled="!vm.newPlugin">\n\n <div ng-messages="pluginForm[\'scriptName\'].$error" ng-show="pluginForm[\'scriptName\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.SCRIPTNAME_REQUIRED">ScriptName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.type === \'script\'" class="md-block">\n <label translate="MARKETPLACE.SCRIPTPATH">ScriptPath</label>\n <input type="text" name="scriptPath" ng-model="vm.plugin.scriptPath" ng-required="true">\n\n <div ng-messages="pluginForm[\'scriptPath\'].$error" ng-show="pluginForm[\'scriptPath\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.SCRIPTPATH_REQUIRED">ScriptPath field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.VERSION">Version</label>\n <input type="text" name="version" ng-model="vm.plugin.version" ng-disabled="!vm.newPlugin">\n\n <div ng-messages="pluginForm[\'version\'].$error" ng-show="pluginForm[\'version\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.VERSION_REQUIRED">Version field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newPlugin" ng-click="vm.savePlugin()" class="send-button md-accent md-raised" ng-disabled="pluginForm.$invalid || pluginForm.$pristine" aria-label="SAVE" translate="MARKETPLACE.SAVE" translate-attr-aria-label="MARKETPLACE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newPlugin" ng-click="vm.addNewPlugin()" class="send-button md-accent md-raised" ng-disabled="pluginForm.$invalid" aria-label="ADD" translate="MARKETPLACE.ADD_PLUGIN" translate-attr-aria-label="MARKETPLACE.ADD_PLUGIN">\n ADD PLUGIN\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newPlugin" ng-click="vm.deletePlugin($event)" aria-label="DELETE" translate translate-attr-aria-label="MARKETPLACE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="MARKETPLACE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/marketplace/views/plugins/edit/view.html",'<div id="marketplace-plugin" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-plugins-button md-icon-button" aria-label="Go to plugins" ng-click="vm.gotoPlugins()" translate translate-attr-aria-label="MARKETPLACE.GO_TO_PLUGINS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="plugin-image" hide-xs>\n <img ng-src="assets/images/business/plugins.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.plugin.id}}\n <span ng-if="vm.plugin.name">{{vm.plugin.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="MARKETPLACE.CREATED_AT"></span> <span>{{vm.plugin.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.savePlugin()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="MARKETPLACE.SAVE" translate-attr-aria-label="MARKETPLACE.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="MARKETPLACE.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="plugin-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MARKETPLACE.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.plugin.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.TYPE">Type</label>\n <input type="text" name="type" ng-model="vm.plugin.type" disabled>\n\n <div ng-messages="generalForm[\'type\'].$error" ng-show="generalForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.plugin.active" aria-label="Active" ng-disabled="true"><span translate="MARKETPLACE.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.plugin.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.ICON">Icon</label>\n <input type="text" name="icon" ng-model="vm.plugin.icon" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'icon\'].$error" ng-show="generalForm[\'icon\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.ICON_REQUIRED">Icon field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.SIDEBAR">Sidebar</label>\n <md-select name="sidebar" ng-model="vm.plugin.sidebar" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'always\'">Always</md-option>\n <md-option ng-value="\'adminOnly\'">Admin Only</md-option>\n <md-option ng-value="\'agentOnly\'">Agent Only</md-option>\n <md-option ng-value="\'never\'">Never</md-option>\n </md-select>\n <div ng-messages="generalForm[\'sidebar\'].$error" ng-show="generalForm[\'sidebar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.SIDEBAR_REQUIRED">Sidebar field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.sidebar === \'always\' || vm.plugin.sidebar === \'adminOnly\'" class="md-block">\n <label translate="MARKETPLACE.ADMINURL">AdminUrl</label>\n <input type="text" name="adminUrl" ng-model="vm.plugin.adminUrl" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'adminUrl\'].$error" ng-show="generalForm[\'adminUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.ADMINURL_REQUIRED">AdminUrl field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.sidebar === \'always\' || vm.plugin.sidebar === \'agentOnly\'" class="md-block">\n <label translate="MARKETPLACE.AGENTURL">AgentUrl</label>\n <input type="text" name="agentUrl" ng-model="vm.plugin.agentUrl" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'agentUrl\'].$error" ng-show="generalForm[\'agentUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.AGENTURL_REQUIRED">AgentUrl field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.type === \'script\'" class="md-block">\n <label translate="MARKETPLACE.SCRIPTNAME">ScriptName</label>\n <input type="text" name="scriptName" ng-model="vm.plugin.scriptName" disabled>\n\n <div ng-messages="generalForm[\'scriptName\'].$error" ng-show="generalForm[\'scriptName\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.SCRIPTNAME_REQUIRED">ScriptName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.type === \'script\'" class="md-block">\n <label translate="MARKETPLACE.SCRIPTPATH">ScriptPath</label>\n <input type="text" name="scriptPath" ng-model="vm.plugin.scriptPath" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'scriptPath\'].$error" ng-show="generalForm[\'scriptPath\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.SCRIPTPATH_REQUIRED">ScriptPath field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.VERSION">Version</label>\n <input type="text" name="version" ng-model="vm.plugin.version" disabled>\n\n <div ng-messages="generalForm[\'version\'].$error" ng-show="generalForm[\'version\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.VERSION_REQUIRED">Version field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/marketplace/views/plugins/plugins.html",'<div id="plugins" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-cart" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="MARKETPLACE.PLUGINS">Plugins</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="MARKETPLACE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedPlugins.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedPlugins =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="MARKETPLACE.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-plugins-count">\n <span>{{vm.selectedPlugins.length}}</span>\n <span translate="MARKETPLACE.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="MARKETPLACE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllPlugins()" translate="MARKETPLACE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectPlugins()" translate="MARKETPLACE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedPlugins" csv-label="true" filename="plugins.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedPlugins($event)" aria-label="delete selected" translate translate-attr-label="MARKETPLACE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n <div ng-if="vm.installing">\n <md-card class="md-whiteframe-1dp padding-20" flex>\n <div layout="column" layout-align="center center">\n <span class="md-title md-accent-fg padding-20 text-bold" translate="MARKETPLACE.INSTALLING">Installing</span>\n <md-progress-linear md-mode="indeterminate" class="md-accent padding-20"></md-progress-linear>\n </div>\n </md-card>\n </div>\n\n \x3c!-- PLUGIN TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedPlugins" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getPlugins">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="name">{{ \'MARKETPLACE.NAME\' | translate }}</th>\n <th md-column md-order-by="type">{{ \'MARKETPLACE.TYPE\' | translate }}</th>\n <th md-column md-order-by="active">{{ \'MARKETPLACE.ACTIVE\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'MARKETPLACE.DESCRIPTION\' | translate }}</th>\n <th md-column md-order-by="version">{{ \'MARKETPLACE.VERSION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.plugins.rows.length">\n <td md-cell colspan="6">\n <div layout="row" layout-align="center center">\n <span translate="MARKETPLACE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="plugin" md-select-id="id" ng-repeat="plugin in vm.plugins.rows">\n <td md-cell ng-if="plugin.userpic"><img class="avatar" alt="{{plugin.name}}" ng-src="api/users/{{plugin.id}}/avatar" /></td>\n <td md-cell ng-if="!plugin.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{plugin.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(plugin, ev) : vm.createOrEditPlugin($event, plugin)" md-cell class="name ">{{plugin.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(plugin, ev) : vm.createOrEditPlugin($event, plugin)" md-cell class="type ">{{plugin.type}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(plugin, ev) : vm.createOrEditPlugin($event, plugin)" md-cell class="active ">\n <md-icon md-colors="{color: {{plugin.active ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{plugin.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(plugin, ev) : vm.createOrEditPlugin($event, plugin)" md-cell class="description ">{{plugin.description}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(plugin, ev) : vm.createOrEditPlugin($event, plugin)" md-cell class="version ">{{plugin.version}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MARKETPLACE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit && !plugin.active">\n\n <md-button ng-click="vm.installplugin(plugin, $event )" translate="MARKETPLACE.INSTALL_PLUGIN">\n Install Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(plugin, $event )" translate="MARKETPLACE.EDIT_PLUGIN">\n Edit Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit && plugin.active && plugin.type == \'script\'">\n\n <md-button ng-click="vm.stopplugin(plugin, $event )" translate="MARKETPLACE.STOP_PLUGIN">\n Stop Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit && plugin.active && plugin.type == \'script\'">\n\n <md-button ng-click="vm.restartplugin(plugin, $event )" translate="MARKETPLACE.RESTART_PLUGIN">\n Restart Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.downloadfile2(plugin, $event , \'plugins\' )" translate="MARKETPLACE.DOWNLOAD_PLUGIN">\n Download Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit && plugin.active">\n\n <md-button ng-click="vm.uninstallplugin(plugin, $event )" translate="MARKETPLACE.UNINSTALL_PLUGIN">\n Uninstall Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(plugin, $event )" translate="MARKETPLACE.DELETE_PLUGIN">\n Delete Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'MARKETPLACE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MARKETPLACE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MARKETPLACE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.plugins.count}}" md-on-paginate="vm.getPlugins" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / PLUGIN TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- UPLOAD PLUGIN BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="upload-plugin-button" ng-click="vm.uploadPlugin($event)" aria-label="upload plugin" translate translate-attr-aria-label="MARKETPLACE.UPLOAD_PLUGIN">\n <md-icon md-font-icon="icon-upload"></md-icon>\n </md-button>\n \x3c!-- / UPLOAD PLUGIN BUTTON --\x3e\n</div>'),e.put("app/main/apps/marketplace/views/plugins/upload/dialog.html",'<md-dialog class="upload-dialog" aria-label="Upload ">\n <form name="uploadForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <div id="plugin-uploader" ng-hide="vm.uploadState == \'uploading\'" flow-init="vm.ngFlowOptions" flow-name="vm.ngFlow.flow" flow-files-submitted="vm.upload()" flow-file-added="vm.fileAdded($file)" flow-file-success="vm.fileSuccess($file, $message)" flow-error="vm.uploadError($file, $message)" flow-complete="vm.uploadComplete()" flow-drop flow-drag-enter="vm.dropping=true" flow-drag-leave="vm.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="MARKETPLACE.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn>\n Upload\n </md-button>\n <span class="secondary-text mt-8" translate="MARKETPLACE.DROP_TO_UPLOAD_MESSAGE">You can also drop your file here to upload.</span>\n </div>\n </div>\n\n <div layout="column" layout-align="space-between center" ng-show="vm.uploadState == \'uploading\'">\n <div>\n <span translate="MARKETPLACE.UPLOADING">Uploading</span>\n <span>{{vm.plugin.file.name}}</span>\n </div>\n <md-progress-linear md-mode="indeterminate"></md-progress-linear>\n </div>\n\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center"></div>\n <div layout="row">\n <md-button ng-click="vm.closeDialog()" ng-hide="vm.uploadState == \'uploading\'" class="md-accent md-raised" aria-label="FINISH" translate="MARKETPLACE.FINISH" translate-attr-aria-label="MARKETPLACE.FINISH">\n FINISH\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/create/dialog.html",'<md-dialog class="ivrCampaign-dialog" aria-label="New IvrCampaign">\n <form name="ivrCampaignForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.ivrCampaign.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newIvrCampaign">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NAME"></span></div>\n <div ng-messages="ivrCampaignForm[\'name\'].$error" ng-show="ivrCampaignForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MOTIONDIALER.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.ivrCampaign.active" aria-label="Active"><span translate="MOTIONDIALER.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.TRUNK">Trunk</label>\n <md-select name="TrunkId" ng-model="vm.ivrCampaign.TrunkId" required>\n <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks" ng-disabled="TrunkId.canSelect === false">{{ TrunkId.name }}</md-option>\n </md-select>\n <div ng-messages="ivrCampaignForm[\'TrunkId\'].$error" ng-show="ivrCampaignForm[\'TrunkId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.TRUNK_REQUIRED">Trunk field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.INTERVAL">Interval</label>\n <md-select name="IntervalId" ng-model="vm.ivrCampaign.IntervalId" required>\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval" ng-disabled="IntervalId.canSelect === false">{{ IntervalId.name }}</md-option>\n </md-select>\n <div ng-messages="ivrCampaignForm[\'IntervalId\'].$error" ng-show="ivrCampaignForm[\'IntervalId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.INTERVAL_REQUIRED">Interval field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CHECKDUPLICATE">CheckDuplicate</label>\n <md-select name="dialCheckDuplicateType" ng-model="vm.ivrCampaign.dialCheckDuplicateType" required>\n\n <md-option ng-value="\'always\'"> {{ \'MOTIONDIALER.ALWAYS\' | translate }} </md-option>\n\n <md-option ng-value="\'never\'"> {{ \'MOTIONDIALER.NEVER\' | translate }} </md-option>\n\n <md-option ng-value="\'onlyIfOpen\'"> {{ \'MOTIONDIALER.ONLY_IF_OPEN\' | translate }} </md-option>\n </md-select>\n <div ng-messages="ivrCampaignForm[\'dialCheckDuplicateType\'].$error" ng-show="ivrCampaignForm[\'dialCheckDuplicateType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CHECKDUPLICATE_REQUIRED">CheckDuplicate field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CALLYSQUAREPROJECT">CallySquareProject</label>\n <md-select name="SquareProjectId" ng-model="vm.ivrCampaign.SquareProjectId" required>\n <md-option ng-value="SquareProjectId.id" ng-repeat="SquareProjectId in vm.projects" ng-disabled="SquareProjectId.canSelect === false">{{ SquareProjectId.name }}</md-option>\n </md-select>\n <div ng-messages="ivrCampaignForm[\'SquareProjectId\'].$error" ng-show="ivrCampaignForm[\'SquareProjectId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECT_REQUIRED">CallySquareProject field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CONCURRENTCALLS">ConcurrentCalls</label>\n <input type="number" name="limitCalls" ng-model="vm.ivrCampaign.limitCalls" min="1" max="200" value="30" ng-required="true">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.CONCURRENTCALLS"></span></div>\n <div ng-messages="ivrCampaignForm[\'limitCalls\'].$error" ng-show="ivrCampaignForm[\'limitCalls\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_REQUIRED">ConcurrentCalls field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">ConcurrentCalls must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_MUST_BE_LESS_THAN_OR_EQUAL_TO">ConcurrentCalls must be a valid greater or equal than</span> <span>200</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.ivrCampaign.description">\n\n <div ng-messages="ivrCampaignForm[\'description\'].$error" ng-show="ivrCampaignForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newIvrCampaign" ng-click="vm.saveIvrCampaign()" class="send-button md-accent md-raised" ng-disabled="ivrCampaignForm.$invalid || ivrCampaignForm.$pristine" aria-label="SAVE" translate="MOTIONDIALER.SAVE" translate-attr-aria-label="MOTIONDIALER.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newIvrCampaign" ng-click="vm.addNewIvrCampaign()" class="send-button md-accent md-raised" ng-disabled="ivrCampaignForm.$invalid" aria-label="ADD" translate="MOTIONDIALER.ADD_IVRCAMPAIGN" translate-attr-aria-label="MOTIONDIALER.ADD_IVRCAMPAIGN">\n ADD IVRCAMPAIGN\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newIvrCampaign" ng-click="vm.deleteIvrCampaign($event)" aria-label="DELETE" translate translate-attr-aria-label="MOTIONDIALER.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="MOTIONDIALER.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/edit/blacklistadd/blacklistadd.html",'<md-dialog class="ivrCampaign-dialog" aria-label="ivrCampaign" ng-init="vm.onInit()">\n <form name="ivrCampaignForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MOTIONDIALER.BLACKLISTADD_IVRCAMPAIGN">Add List in IVRCAMPAIGN</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect ng-hide="vm.loading" options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveLists()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/edit/clone/clone.html",'<md-dialog class="ivrCampaign-dialog" aria-label="Clone IvrCampaign">\n <form name="ivrCampaignForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.ivrCampaign.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newIvrCampaign">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NAME"></span></div>\n <div ng-messages="ivrCampaignForm[\'name\'].$error" ng-show="ivrCampaignForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MOTIONDIALER.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <md-button type="submit" ng-click="vm.cloneIvrCampaign()" class="send-button md-accent md-raised" ng-disabled="ivrCampaignForm.$invalid" aria-label="CLONE" translate="MOTIONDIALER.CLONE_IVRCAMPAIGN" translate-attr-aria-label="MOTIONDIALER.CLONE_IVRCAMPAIGN">\n CLONE IVRCAMPAIGN\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/edit/hoppers/dialog.html",'<md-dialog class="hopper-dialog" aria-label="New Hopper">\n <form name="hopperForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <div class="md-block">\n <label translate="MOTIONDIALER.SCHEDULEDAT">ScheduledAt</label>\n <md-content layout="row" class="md-padding">\n <div flex class="md-block">\n <mdp-date-picker mdp-open-on-click name="scheduledatDate" mdp-placeholder="Date" mdp-format="YYYY-MM-DD" ng-model="vm.hopper.scheduledat" ng-init="vm.hopper.scheduledat = vm.getDateFromString(vm.hopper.scheduledat)">\n <div ng-messages="hopperForm.dateRangeFrom.$error" ng-show="hopperForm.dateRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DATE_REQUIRED">Date is required</span>\n </div>\n <div ng-message="format">\n <span translate="MOTIONDIALER.ERRORS.DATE_INVALID">Date is invalid</span>\n </div>\n </div>\n </mdp-date-picker>\n </div>\n <div flex class="md-block">\n <mdp-time-picker mdp-open-on-click name="scheduledatTime" mdp-placeholder="Time" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.hopper.scheduledat" ng-init="vm.hopper.scheduledat = vm.getDateFromString(vm.hopper.scheduledat)">\n <div ng-messages="hopperForm.timeRangeFrom.$error" ng-show="hopperForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.TIME_REQUIRED">Time is required</span>\n </div>\n <div ng-message="format">\n <span translate="MOTIONDIALER.ERRORS.TIME_INVALID">Time is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </md-content>\n </div>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.PRIORITY">Priority</label>\n <md-select name="priority" ng-model="vm.hopper.priority">\n <md-option ng-value="\'4\'">Highest</md-option>\n <md-option ng-value="\'3\'">High</md-option>\n <md-option ng-value="\'2\'">Medium</md-option>\n <md-option ng-value="\'1\'">Low</md-option>\n <md-option ng-value="\'0\'">Lowest</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PRIORITY"></span></div>\n <div ng-messages="hopperForm[\'priority\'].$error" ng-show="hopperForm[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newHopper" ng-click="vm.saveHopper()" class="send-button md-accent md-raised" ng-disabled="hopperForm.$invalid || hopperForm.$pristine" aria-label="SAVE" translate="MOTIONDIALER.SAVE" translate-attr-aria-label="MOTIONDIALER.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newHopper" ng-click="vm.addNewHopper()" class="send-button md-accent md-raised" ng-disabled="hopperForm.$invalid" aria-label="ADD" translate="MOTIONDIALER.ADD_HOPPER" translate-attr-aria-label="MOTIONDIALER.ADD_HOPPER">\n ADD HOPPER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newHopper" ng-click="vm.deleteHopper($event)" aria-label="DELETE" translate translate-attr-aria-label="MOTIONDIALER.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="MOTIONDIALER.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/edit/listadd/listadd.html",'<md-dialog class="ivrCampaign-dialog" aria-label="ivrCampaign" ng-init="vm.onInit()">\n <form name="ivrCampaignForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MOTIONDIALER.LISTADD_IVRCAMPAIGN">Add List in IVRCAMPAIGN</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect ng-hide="vm.loading" options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveLists()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/edit/resetlist/resetlist.html",'<md-dialog class="queueCampaign-dialog" aria-label="queueCampaign">\n <form name="queueCampaignForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MOTIONDIALER.RESETLIST ">Reset List</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-disabled="vm.loading" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ng-hide="vm.loading">\n <div layout="row" layout-wrap flex>\n <div flex-xs flex="50">\n <md-checkbox aria-label="Select All" ng-checked="vm.isChecked()" md-indeterminate="vm.isIndeterminate()" ng-click="vm.toggleAll()">\n <span ng-if="vm.isChecked()" translate="MOTIONDIALER.UNSELECTALL"></span>\n <span ng-if="!vm.isChecked()" translate="MOTIONDIALER.SELECTALL"></span>\n </md-checkbox>\n </div>\n <div flex-xs flex="50">\n </div>\n <div flex="{{vm.items.length > 10 ? 50 : 100 }}" ng-repeat="item in vm.items">\n <md-checkbox ng-checked="vm.exists(item, vm.selected)" ng-click="vm.toggle(item, vm.selected)">\n {{ item.name | limitTo:40 }}\n </md-checkbox>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions ng-hide="vm.loading" layout="row" layout-align="end center">\n <div>\n </div>\n <md-button type="submit" ng-click="vm.listSelected()" class="send-button md-accent md-raised" ng-disabled="vm.loading" aria-label="RESET" translate="MOTIONDIALER.RESET" translate-attr-aria-label="MOTIONDIALER.RESET">\n SAVE\n </md-button>\n </md-dialog-actions>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/edit/view.html",'<div id="motiondialer-ivrCampaign" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-ivrCampaigns-button md-icon-button" aria-label="Go to ivrCampaigns" ng-click="vm.gotoIvrCampaigns()" translate translate-attr-aria-label="MOTIONDIALER.GO_TO_IVRCAMPAIGNS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="ivrCampaign-image" hide-xs>\n <img ng-src="assets/images/business/ivrCampaigns.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.ivrCampaign.id}}\n <span ng-if="vm.ivrCampaign.name">{{vm.ivrCampaign.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="MOTIONDIALER.CREATED_AT"></span> <span>{{vm.ivrCampaign.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.clonedialog(vm.ivrCampaign, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="clone">\n <md-tooltip><span translate="MOTIONDIALER.CLONE_IVRCAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.listadddialog(vm.ivrCampaign, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="listadd">\n <md-tooltip><span translate="MOTIONDIALER.LISTADD_IVRCAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-format-list-numbers"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.blacklistadddialog(vm.ivrCampaign, $event)" class="md-fab md-warn md-icon-button" aria-label="blacklistadd">\n <md-tooltip><span translate="MOTIONDIALER.BLACKLISTADD_IVRCAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-block-helper"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.resetlistdialog(vm.ivrCampaign, $event)" class="md-fab md-warn md-icon-button" aria-label="resetlist">\n <md-tooltip><span translate="MOTIONDIALER.RESETLIST_IVRCAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-restore"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.ivrCampaign, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="MOTIONDIALER.GOTO_IVRCAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-cast"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveIvrCampaign()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (campaignForm.$invalid) || (originateForm.$invalid) || (globalForm.$invalid) || (congestionForm.$invalid) || (busyForm.$invalid) || (noanswerForm.$invalid) || (nosuchnumberForm.$invalid) || (dropForm.$invalid) || (abandonedForm.$invalid) || (machineForm.$invalid) || (agentrejectForm.$invalid) || (advancedForm.$invalid) || (globalintervalForm.$invalid) || (timezoneForm.$invalid) || (amdForm.$invalid) || (hopperStatisticsForm.$invalid) || (hoppersForm.$invalid) || (hopperHistoriesForm.$invalid) || (hopperFinalsForm.$invalid) || (hopperBlacksForm.$invalid)" translate="MOTIONDIALER.SAVE" translate-attr-aria-label="MOTIONDIALER.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="ivrCampaign-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.ivrCampaign.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MOTIONDIALER.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.ivrCampaign.active" aria-label="Active" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.TRUNK">Trunk</label>\n <md-select name="TrunkId" ng-model="vm.ivrCampaign.TrunkId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks" ng-disabled="TrunkId.canSelect === false">{{ TrunkId.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'TrunkId\'].$error" ng-show="generalForm[\'TrunkId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.TRUNK_REQUIRED">Trunk field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.BACKUPTRUNK">BackupTrunk</label>\n <md-select name="TrunkBackupId" ng-model="vm.ivrCampaign.TrunkBackupId" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="TrunkBackupId.id" ng-repeat="TrunkBackupId in vm.trunks" ng-disabled="TrunkBackupId.canSelect === false">{{ TrunkBackupId.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'TrunkBackupId\'].$error" ng-show="generalForm[\'TrunkBackupId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.BACKUPTRUNK_REQUIRED">BackupTrunk field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.INTERVAL">Interval</label>\n <md-select name="IntervalId" ng-model="vm.ivrCampaign.IntervalId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval" ng-disabled="IntervalId.canSelect === false">{{ IntervalId.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'IntervalId\'].$error" ng-show="generalForm[\'IntervalId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.INTERVAL_REQUIRED">Interval field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CHECKDUPLICATE">CheckDuplicate</label>\n <md-select name="dialCheckDuplicateType" ng-model="vm.ivrCampaign.dialCheckDuplicateType" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'always\'"> {{ \'MOTIONDIALER.ALWAYS\' | translate }} </md-option>\n\n <md-option ng-value="\'never\'"> {{ \'MOTIONDIALER.NEVER\' | translate }} </md-option>\n\n <md-option ng-value="\'onlyIfOpen\'"> {{ \'MOTIONDIALER.ONLY_IF_OPEN\' | translate }} </md-option>\n </md-select>\n <div ng-messages="generalForm[\'dialCheckDuplicateType\'].$error" ng-show="generalForm[\'dialCheckDuplicateType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CHECKDUPLICATE_REQUIRED">CheckDuplicate field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CUTDIGIT">CutDigit</label>\n <input type="number" name="dialCutDigit" ng-model="vm.ivrCampaign.dialCutDigit" min="0" max="15" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'dialCutDigit\'].$error" ng-show="generalForm[\'dialCutDigit\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_REQUIRED">CutDigit field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CutDigit must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_MUST_BE_LESS_THAN_OR_EQUAL_TO">CutDigit must be a valid greater or equal than</span> <span>15</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.ivrCampaign.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.CAMPAIGN">CAMPAIGN</span>\n </md-tab-label>\n <md-tab-body>\n <div class="ivrCampaign-detail-form-container campaign md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.CAMPAIGN">CAMPAIGN</div>\n </div>\n <form name="campaignForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CALLYSQUAREPROJECT">CallySquareProject</label>\n <md-select name="SquareProjectId" ng-model="vm.ivrCampaign.SquareProjectId" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="SquareProjectId.id" ng-repeat="SquareProjectId in vm.projects" ng-disabled="SquareProjectId.canSelect === false">{{ SquareProjectId.name }}</md-option>\n </md-select>\n <div ng-messages="campaignForm[\'SquareProjectId\'].$error" ng-show="campaignForm[\'SquareProjectId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECT_REQUIRED">CallySquareProject field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CONCURRENTCALLS">ConcurrentCalls</label>\n <input type="number" name="limitCalls" ng-model="vm.ivrCampaign.limitCalls" min="1" max="200" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.CONCURRENTCALLS"></span></div>\n <div ng-messages="campaignForm[\'limitCalls\'].$error" ng-show="campaignForm[\'limitCalls\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_REQUIRED">ConcurrentCalls field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">ConcurrentCalls must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_MUST_BE_LESS_THAN_OR_EQUAL_TO">ConcurrentCalls must be a valid greater or equal than</span> <span>200</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container originate md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.ORIGINATE">ORIGINATE</div>\n </div>\n <form name="originateForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ORIGINATECALLERIDNAME">OriginateCallerIdName</label>\n <input type="text" name="dialOriginateCallerIdName" ng-model="vm.ivrCampaign.dialOriginateCallerIdName" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ORIGINATECALLERIDNAME"></span></div>\n <div ng-messages="originateForm[\'dialOriginateCallerIdName\'].$error" ng-show="originateForm[\'dialOriginateCallerIdName\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATECALLERIDNAME_REQUIRED">OriginateCallerIdName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ORIGINATECALLERIDNUMBER">OriginateCallerIdNumber</label>\n <input type="text" name="dialOriginateCallerIdNumber" ng-model="vm.ivrCampaign.dialOriginateCallerIdNumber" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ORIGINATECALLERIDNUMBER"></span></div>\n <div ng-messages="originateForm[\'dialOriginateCallerIdNumber\'].$error" ng-show="originateForm[\'dialOriginateCallerIdNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATECALLERIDNUMBER_REQUIRED">OriginateCallerIdNumber field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.RANDOMLASTDIGITCALLERIDNUMBER">RandomLastDigitCallerIdNumber</label>\n <input type="number" name="dialRandomLastDigitCallerIdNumber" ng-model="vm.ivrCampaign.dialRandomLastDigitCallerIdNumber" min="0" max="15" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.RANDOMLASTDIGITCALLERIDNUMBER"></span></div>\n <div ng-messages="originateForm[\'dialRandomLastDigitCallerIdNumber\'].$error" ng-show="originateForm[\'dialRandomLastDigitCallerIdNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_REQUIRED">RandomLastDigitCallerIdNumber field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_MUST_BE_GREATER_THAN_OR_EQUAL_TO">RandomLastDigitCallerIdNumber must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_MUST_BE_LESS_THAN_OR_EQUAL_TO">RandomLastDigitCallerIdNumber must be a valid greater or equal than</span> <span>15</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ORIGINATETIMEOUT">OriginateTimeout</label>\n <input type="number" name="dialOriginateTimeout" ng-model="vm.ivrCampaign.dialOriginateTimeout" min="1" max="999" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ORIGINATETIMEOUT"></span></div>\n <div ng-messages="originateForm[\'dialOriginateTimeout\'].$error" ng-show="originateForm[\'dialOriginateTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_REQUIRED">OriginateTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">OriginateTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">OriginateTimeout must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.PREFIX">Prefix</label>\n <input type="text" name="dialPrefix" ng-model="vm.ivrCampaign.dialPrefix" ng-pattern="/^\\d+$/" value="" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREFIX"></span></div>\n <div ng-messages="originateForm[\'dialPrefix\'].$error" ng-show="originateForm[\'dialPrefix\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.PREFIX_REQUIRED">Prefix field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MOTIONDIALER.ERRORS.PREFIX_MUST_VALID_PATTERN" translate-values="{ regex: \'/^\\d+$/\' }">Prefix must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.RETRYANDFREQUENCY">RETRYANDFREQUENCY</span>\n </md-tab-label>\n <md-tab-body>\n <div class="ivrCampaign-detail-form-container global md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.GLOBAL">GLOBAL</div>\n </div>\n <form name="globalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.GLOBALMAXRETRY">GlobalMaxRetry</label>\n <input type="number" name="dialGlobalMaxRetry" ng-model="vm.ivrCampaign.dialGlobalMaxRetry" min="1" max="999" value="4" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.GLOBALMAXRETRY"></span></div>\n <div ng-messages="globalForm[\'dialGlobalMaxRetry\'].$error" ng-show="globalForm[\'dialGlobalMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_REQUIRED">GlobalMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">GlobalMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">GlobalMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container congestion md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.CONGESTION">CONGESTION</div>\n </div>\n <form name="congestionForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CONGESTIONMAXRETRY">CongestionMaxRetry</label>\n <input type="number" name="dialCongestionMaxRetry" ng-model="vm.ivrCampaign.dialCongestionMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.CONGESTIONMAXRETRY"></span></div>\n <div ng-messages="congestionForm[\'dialCongestionMaxRetry\'].$error" ng-show="congestionForm[\'dialCongestionMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_REQUIRED">CongestionMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CongestionMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">CongestionMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CONGESTIONRETRYTIME">CongestionRetryTime</label>\n <input type="number" name="dialCongestionRetryFrequency" ng-model="vm.ivrCampaign.dialCongestionRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.CONGESTIONRETRYTIME"></span></div>\n <div ng-messages="congestionForm[\'dialCongestionRetryFrequency\'].$error" ng-show="congestionForm[\'dialCongestionRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_REQUIRED">CongestionRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CongestionRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">CongestionRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container busy md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.BUSY">BUSY</div>\n </div>\n <form name="busyForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.BUSYMAXRETRY">BusyMaxRetry</label>\n <input type="number" name="dialBusyMaxRetry" ng-model="vm.ivrCampaign.dialBusyMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.BUSYMAXRETRY"></span></div>\n <div ng-messages="busyForm[\'dialBusyMaxRetry\'].$error" ng-show="busyForm[\'dialBusyMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_REQUIRED">BusyMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">BusyMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">BusyMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.BUSYRETRYTIME">BusyRetryTime</label>\n <input type="number" name="dialBusyRetryFrequency" ng-model="vm.ivrCampaign.dialBusyRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.BUSYRETRYTIME"></span></div>\n <div ng-messages="busyForm[\'dialBusyRetryFrequency\'].$error" ng-show="busyForm[\'dialBusyRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_REQUIRED">BusyRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">BusyRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">BusyRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container noanswer md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.NOANSWER">NOANSWER</div>\n </div>\n <form name="noanswerForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NOANSWERMAXRETRY">NoAnswerMaxRetry</label>\n <input type="number" name="dialNoAnswerMaxRetry" ng-model="vm.ivrCampaign.dialNoAnswerMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NOANSWERMAXRETRY"></span></div>\n <div ng-messages="noanswerForm[\'dialNoAnswerMaxRetry\'].$error" ng-show="noanswerForm[\'dialNoAnswerMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_REQUIRED">NoAnswerMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoAnswerMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoAnswerMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NOANSWERRETRYTIME">NoAnswerRetryTime</label>\n <input type="number" name="dialNoAnswerRetryFrequency" ng-model="vm.ivrCampaign.dialNoAnswerRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NOANSWERRETRYTIME"></span></div>\n <div ng-messages="noanswerForm[\'dialNoAnswerRetryFrequency\'].$error" ng-show="noanswerForm[\'dialNoAnswerRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_REQUIRED">NoAnswerRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoAnswerRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoAnswerRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container nosuchnumber md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.NOSUCHNUMBER">NOSUCHNUMBER</div>\n </div>\n <form name="nosuchnumberForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NOSUCHNUMBERMAXRETRY">NoSuchNumberMaxRetry</label>\n <input type="number" name="dialNoSuchNumberMaxRetry" ng-model="vm.ivrCampaign.dialNoSuchNumberMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NOSUCHNUMBERMAXRETRY"></span></div>\n <div ng-messages="nosuchnumberForm[\'dialNoSuchNumberMaxRetry\'].$error" ng-show="nosuchnumberForm[\'dialNoSuchNumberMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_REQUIRED">NoSuchNumberMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoSuchNumberMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoSuchNumberMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NOSUCHNUMBERRETRYTIME">NoSuchNumberRetryTime</label>\n <input type="number" name="dialNoSuchNumberRetryFrequency" ng-model="vm.ivrCampaign.dialNoSuchNumberRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NOSUCHNUMBERRETRYTIME"></span></div>\n <div ng-messages="nosuchnumberForm[\'dialNoSuchNumberRetryFrequency\'].$error" ng-show="nosuchnumberForm[\'dialNoSuchNumberRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_REQUIRED">NoSuchNumberRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoSuchNumberRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoSuchNumberRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container drop md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.DROP">DROP</div>\n </div>\n <form name="dropForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DROPMAXRETRY">DropMaxRetry</label>\n <input type="number" name="dialDropMaxRetry" ng-model="vm.ivrCampaign.dialDropMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.DROPMAXRETRY"></span></div>\n <div ng-messages="dropForm[\'dialDropMaxRetry\'].$error" ng-show="dropForm[\'dialDropMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_REQUIRED">DropMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">DropMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">DropMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DROPRETRYTIME">DropRetryTime</label>\n <input type="number" name="dialDropRetryFrequency" ng-model="vm.ivrCampaign.dialDropRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.DROPRETRYTIME"></span></div>\n <div ng-messages="dropForm[\'dialDropRetryFrequency\'].$error" ng-show="dropForm[\'dialDropRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_REQUIRED">DropRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">DropRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">DropRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container abandoned md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.ABANDONED">ABANDONED</div>\n </div>\n <form name="abandonedForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ABANDONEDMAXRETRY">AbandonedMaxRetry</label>\n <input type="number" name="dialAbandonedMaxRetry" ng-model="vm.ivrCampaign.dialAbandonedMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ABANDONEDMAXRETRY"></span></div>\n <div ng-messages="abandonedForm[\'dialAbandonedMaxRetry\'].$error" ng-show="abandonedForm[\'dialAbandonedMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_REQUIRED">AbandonedMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AbandonedMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">AbandonedMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ABANDONEDRETRYTIME">AbandonedRetryTime</label>\n <input type="number" name="dialAbandonedRetryFrequency" ng-model="vm.ivrCampaign.dialAbandonedRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ABANDONEDRETRYTIME"></span></div>\n <div ng-messages="abandonedForm[\'dialAbandonedRetryFrequency\'].$error" ng-show="abandonedForm[\'dialAbandonedRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_REQUIRED">AbandonedRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AbandonedRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">AbandonedRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container machine md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.MACHINE">MACHINE</div>\n </div>\n <form name="machineForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.MACHINEMAXRETRY">MachineMaxRetry</label>\n <input type="number" name="dialMachineMaxRetry" ng-model="vm.ivrCampaign.dialMachineMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.MACHINEMAXRETRY"></span></div>\n <div ng-messages="machineForm[\'dialMachineMaxRetry\'].$error" ng-show="machineForm[\'dialMachineMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_REQUIRED">MachineMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MachineMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">MachineMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.MACHINERETRYTIME">MachineRetryTime</label>\n <input type="number" name="dialMachineRetryFrequency" ng-model="vm.ivrCampaign.dialMachineRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.MACHINERETRYTIME"></span></div>\n <div ng-messages="machineForm[\'dialMachineRetryFrequency\'].$error" ng-show="machineForm[\'dialMachineRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_REQUIRED">MachineRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MachineRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">MachineRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container agentreject md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.AGENTREJECT">AGENTREJECT</div>\n </div>\n <form name="agentrejectForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.AGENTREJECTMAXRETRY">AgentRejectMaxRetry</label>\n <input type="number" name="dialAgentRejectMaxRetry" ng-model="vm.ivrCampaign.dialAgentRejectMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AGENTREJECTMAXRETRY"></span></div>\n <div ng-messages="agentrejectForm[\'dialAgentRejectMaxRetry\'].$error" ng-show="agentrejectForm[\'dialAgentRejectMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_REQUIRED">AgentRejectMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AgentRejectMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">AgentRejectMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.AGENTREJECTRETRYTIME">AgentRejectRetryTime</label>\n <input type="number" name="dialAgentRejectRetryFrequency" ng-model="vm.ivrCampaign.dialAgentRejectRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AGENTREJECTRETRYTIME"></span></div>\n <div ng-messages="agentrejectForm[\'dialAgentRejectRetryFrequency\'].$error" ng-show="agentrejectForm[\'dialAgentRejectRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_REQUIRED">AgentRejectRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AgentRejectRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">AgentRejectRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="ivrCampaign-detail-form-container advanced md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.ADVANCED">ADVANCED</div>\n </div>\n <form name="advancedForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DIALORDERBYSCHEDULEDAT">DialOrderByScheduledAt</label>\n <md-select name="dialOrderByScheduledAt" ng-model="vm.ivrCampaign.dialOrderByScheduledAt" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'DESC\'"> {{ \'MOTIONDIALER.DESC\' | translate }} </md-option>\n\n <md-option ng-value="\'ASC\'"> {{ \'MOTIONDIALER.ASC\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.DIALORDERBYSCHEDULEDAT"></span></div>\n <div ng-messages="advancedForm[\'dialOrderByScheduledAt\'].$error" ng-show="advancedForm[\'dialOrderByScheduledAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DIALORDERBYSCHEDULEDAT_REQUIRED">DialOrderByScheduledAt field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container globalinterval md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.GLOBALINTERVAL">GLOBALINTERVAL</div>\n </div>\n <form name="globalintervalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.GLOBALINTERVAL">GlobalInterval</label>\n <input type="text" name="dialGlobalInterval" ng-model="vm.ivrCampaign.dialGlobalInterval" value="07:00-22:00,*,*,*" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.GLOBALINTERVAL"></span></div>\n <div ng-messages="globalintervalForm[\'dialGlobalInterval\'].$error" ng-show="globalintervalForm[\'dialGlobalInterval\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.GLOBALINTERVAL_REQUIRED">GlobalInterval field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container timezone md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.TIMEZONE">TIMEZONE</div>\n </div>\n <form name="timezoneForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.TIMEZONE">Timezone</label>\n <ms-timezone name="dialTimezone" ng-model="vm.ivrCampaign.dialTimezone" autofocus ng-disabled="!vm.crudPermissions.canEdit"></ms-timezone>\n <div class="hint"><span translate="MOTIONDIALER.HELP.TIMEZONE"></span></div>\n <div ng-messages="timezoneForm[\'dialTimezone\'].$error" ng-show="timezoneForm[dialTimezone].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.TIMEZONE_REQUIRED">Timezone field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container amd md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.AMD">AMD</div>\n </div>\n <form name="amdForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.ivrCampaign.dialAMDActive" aria-label="AMDActive" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.AMDACTIVE">AMDActive</span></md-switch>\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDACTIVE"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDINITIALSILENCE">AMDInitialSilence</label>\n <input type="number" name="dialAMDInitialSilence" ng-model="vm.ivrCampaign.dialAMDInitialSilence" min="0" value="2500" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDINITIALSILENCE"></span></div>\n <div ng-messages="amdForm[\'dialAMDInitialSilence\'].$error" ng-show="amdForm[\'dialAMDInitialSilence\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDINITIALSILENCE_REQUIRED">AMDInitialSilence field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDINITIALSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDInitialSilence must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDGREETING">AMDGreeting</label>\n <input type="number" name="dialAMDGreeting" ng-model="vm.ivrCampaign.dialAMDGreeting" min="0" value="1500" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDGREETING"></span></div>\n <div ng-messages="amdForm[\'dialAMDGreeting\'].$error" ng-show="amdForm[\'dialAMDGreeting\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDGREETING_REQUIRED">AMDGreeting field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDGREETING_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDGreeting must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDAFTERGREETINGSILENCE">AMDAfterGreetingSilence</label>\n <input type="number" name="dialAMDAfterGreetingSilence" ng-model="vm.ivrCampaign.dialAMDAfterGreetingSilence" min="0" value="800" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDAFTERGREETINGSILENCE"></span></div>\n <div ng-messages="amdForm[\'dialAMDAfterGreetingSilence\'].$error" ng-show="amdForm[\'dialAMDAfterGreetingSilence\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDAFTERGREETINGSILENCE_REQUIRED">AMDAfterGreetingSilence field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDAFTERGREETINGSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDAfterGreetingSilence must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDTOTALANALYSISTIME">AMDTotalAnalysisTime</label>\n <input type="number" name="dialAMDTotalAnalysisTime" ng-model="vm.ivrCampaign.dialAMDTotalAnalysisTime" min="0" value="5000" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDTOTALANALYSISTIME"></span></div>\n <div ng-messages="amdForm[\'dialAMDTotalAnalysisTime\'].$error" ng-show="amdForm[\'dialAMDTotalAnalysisTime\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDTOTALANALYSISTIME_REQUIRED">AMDTotalAnalysisTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDTOTALANALYSISTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDTotalAnalysisTime must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDMINWORDLENGTH">AMDMinWordLength</label>\n <input type="number" name="dialAMDMinWordLength" ng-model="vm.ivrCampaign.dialAMDMinWordLength" min="0" value="100" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDMINWORDLENGTH"></span></div>\n <div ng-messages="amdForm[\'dialAMDMinWordLength\'].$error" ng-show="amdForm[\'dialAMDMinWordLength\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDMINWORDLENGTH_REQUIRED">AMDMinWordLength field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDMINWORDLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDMinWordLength must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDBETWEENWORDSSILENCE">AMDBetweenWordsSilence</label>\n <input type="number" name="dialAMDBetweenWordsSilence" ng-model="vm.ivrCampaign.dialAMDBetweenWordsSilence" min="0" value="50" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDBETWEENWORDSSILENCE"></span></div>\n <div ng-messages="amdForm[\'dialAMDBetweenWordsSilence\'].$error" ng-show="amdForm[\'dialAMDBetweenWordsSilence\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDBETWEENWORDSSILENCE_REQUIRED">AMDBetweenWordsSilence field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDBETWEENWORDSSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDBetweenWordsSilence must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDMAXIMUMNUMBEROFWORDS">AMDMaximumNumberOfWords</label>\n <input type="number" name="dialAMDMaximumNumberOfWords" ng-model="vm.ivrCampaign.dialAMDMaximumNumberOfWords" min="0" value="3" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDMAXIMUMNUMBEROFWORDS"></span></div>\n <div ng-messages="amdForm[\'dialAMDMaximumNumberOfWords\'].$error" ng-show="amdForm[\'dialAMDMaximumNumberOfWords\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMNUMBEROFWORDS_REQUIRED">AMDMaximumNumberOfWords field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMNUMBEROFWORDS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDMaximumNumberOfWords must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDSILENCETHRESHOLD">AMDSilenceThreshold</label>\n <input type="number" name="dialAMDSilenceThreshold" ng-model="vm.ivrCampaign.dialAMDSilenceThreshold" min="0" max="32767" value="256" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDSILENCETHRESHOLD"></span></div>\n <div ng-messages="amdForm[\'dialAMDSilenceThreshold\'].$error" ng-show="amdForm[\'dialAMDSilenceThreshold\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_REQUIRED">AMDSilenceThreshold field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDSilenceThreshold must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_MUST_BE_LESS_THAN_OR_EQUAL_TO">AMDSilenceThreshold must be a valid greater or equal than</span> <span>32767</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDMAXIMUMWORDLENGTH">AMDMaximumWordLength</label>\n <input type="number" name="dialAMDMaximumWordLength" ng-model="vm.ivrCampaign.dialAMDMaximumWordLength" min="0" value="5000" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDMAXIMUMWORDLENGTH"></span></div>\n <div ng-messages="amdForm[\'dialAMDMaximumWordLength\'].$error" ng-show="amdForm[\'dialAMDMaximumWordLength\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMWORDLENGTH_REQUIRED">AMDMaximumWordLength field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMWORDLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDMaximumWordLength must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.HOPPERS">HOPPERS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="ivrCampaign-detail-form-container hopperstatistics md-background-bg md-whiteframe-1dp">\n <div ng-controller="IvrCampaignHopperStatisticsController as vm_hs" ng-init="vm_hs.init(vm.ivrCampaign)">\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.HOPPERWIDGET">Hoppers</span>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_hs.init(vm.ivrCampaign)" aria-label="refresh Hopper" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{(vm_hs.total || 0) + (vm_hs.closed || 0)}}</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.TOTAL\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{vm_hs.fresh || 0}} ({{vm_hs.total ? ((((vm_hs.fresh || 0) * 100)/((vm_hs.closed || 0) + (vm_hs.total || 0))) | number: 2) : 0}}%)</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.FRESH\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{vm_hs.total ? (vm_hs.total - (vm_hs.fresh || 0)) : 0}} ({{vm_hs.total ? ((((vm_hs.total - (vm_hs.fresh || 0)) * 100)/((vm_hs.closed || 0) + (vm_hs.total || 0))) | number: 2) : 0}}%)</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.OPEN\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{vm_hs.closed ? (vm_hs.closed || 0) : 0}} ({{vm_hs.closed ? ((((vm_hs.closed) * 100)/(vm_hs.closed + (vm_hs.total || 0))) | number: 2) : 0}}%)</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.CLOSED\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n </div>\n\n </div>\n <div class="ivrCampaign-detail-form-container hoppers md-background-bg md-whiteframe-1dp">\n <div ng-controller="IvrCampaignHoppersController as vm_dc" ng-init="vm_dc.init(vm.ivrCampaign, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedIvrCampaignHoppers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.HOPPERS">Hoppers</span>\n <ms-search-bar on-search="vm_dc.getIvrCampaignHoppers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_dc.getIvrCampaignHoppers()" aria-label="refresh Hoppers" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedIvrCampaignHoppers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedIvrCampaignHoppers.length}} {{vm_dc.selectedIvrCampaignHoppers.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedIvrCampaignHoppers" csv-label="true" filename="ivrCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedIvrCampaignHoppers($event)" aria-label="delete selected" translate translate-attr-label="MOTIONDIALER.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedIvrCampaignHoppers" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getIvrCampaignHoppers">\n <tr md-row>\n <th md-column md-order-by="ContactId">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="phone">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column md-order-by="countcongestionretry">\n {{ \'MOTIONDIALER.CONGESTION\' | translate }}\n </th>\n <th md-column md-order-by="countbusyretry">\n {{ \'MOTIONDIALER.BUSY\' | translate }}\n </th>\n <th md-column md-order-by="countnoanswerretry">\n {{ \'MOTIONDIALER.NOANSWER\' | translate }}\n </th>\n <th md-column md-order-by="countnosuchnumberretry">\n {{ \'MOTIONDIALER.NOSUCHNUMBER\' | translate }}\n </th>\n <th md-column md-order-by="countdropretry">\n {{ \'MOTIONDIALER.DROP\' | translate }}\n </th>\n <th md-column md-order-by="countabandonedretry">\n {{ \'MOTIONDIALER.ABANDONED\' | translate }}\n </th>\n <th md-column md-order-by="countmachineretry">\n {{ \'MOTIONDIALER.MACHINE\' | translate }}\n </th>\n <th md-column md-order-by="countagentrejectretry">\n {{ \'MOTIONDIALER.AGENTREJECT\' | translate }}\n </th>\n <th md-column md-order-by="scheduledat">\n {{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}\n </th>\n <th md-column md-order-by="priority">\n {{ \'MOTIONDIALER.PRIORITY\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="hopper" md-select-id="id" ng-repeat="hopper in vm_dc.ivrCampaignHoppers.rows">\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.ContactId}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell privacy ng-cloak>\n {{hopper.phone}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countcongestionretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countbusyretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countnoanswerretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countnosuchnumberretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countdropretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countabandonedretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countmachineretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countagentrejectretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{ hopper.scheduledat | formatdate }}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{ vm_dc.arraypriority[hopper.priority].option }} </td>\n\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" translate="MOTIONDIALER.EDIT_HOPPER">\n Edit Hopper\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(hopper, $event)" translate="MOTIONDIALER.DELETE_HOPPER">\n Delete Hopper\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.ivrCampaignHoppers.rows.length">\n <td md-cell colspan="15">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPER_AVAILABLE">No hopper available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.ivrCampaignHoppers.count}}" md-on-paginate="vm_dc.getIvrCampaignHoppers" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.HISTORY">HISTORY</span>\n </md-tab-label>\n <md-tab-body>\n <div class="ivrCampaign-detail-form-container hopperhistories md-background-bg md-whiteframe-1dp">\n <div ng-controller="IvrCampaignHopperHistoriesController as vm_dc" ng-init="vm_dc.init(vm.ivrCampaign, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedIvrCampaignHopperHistories.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.HOPPERHISTORIES">HopperHistories</span>\n <ms-search-bar on-search="vm_dc.getIvrCampaignHopperHistories()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_dc.getIvrCampaignHopperHistories()" aria-label="refresh HopperHistories" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERHISTORIES">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedIvrCampaignHopperHistories.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedIvrCampaignHopperHistories.length}} {{vm_dc.selectedIvrCampaignHopperHistories.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedIvrCampaignHopperHistories" csv-label="true" filename="ivrCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedIvrCampaignHopperHistories" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getIvrCampaignHopperHistories">\n <tr md-row>\n <th md-column md-order-by="uniqueid">\n {{ \'MOTIONDIALER.UNIQUEID\' | translate }}\n </th>\n <th md-column md-order-by="ContactId">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="calleridnum">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column md-order-by="calleridname">\n {{ \'MOTIONDIALER.NAME\' | translate }}\n </th>\n <th md-column md-order-by="statedesc">\n {{ \'MOTIONDIALER.STATUS\' | translate }}\n </th>\n <th md-column md-order-by="scheduledat">\n {{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}\n </th>\n <th md-column md-order-by="starttime">\n {{ \'MOTIONDIALER.STARTTIME\' | translate }}\n </th>\n <th md-column md-order-by="endtime">\n {{ \'MOTIONDIALER.ENDTIME\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="hopperHistory" md-select-id="id" ng-repeat="hopperHistory in vm_dc.ivrCampaignHopperHistories.rows">\n <td md-cell>\n {{hopperHistory.uniqueid}}\n </td>\n <td md-cell>\n {{hopperHistory.ContactId}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperHistory.calleridnum}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperHistory.calleridname}}\n </td>\n <td md-cell>\n {{hopperHistory.statedesc}}\n </td>\n <td md-cell>\n {{ hopperHistory.scheduledat | formatdate }}\n </td>\n <td md-cell>\n {{ hopperHistory.starttime | formatdate }}\n </td>\n <td md-cell>\n {{ hopperHistory.endtime | formatdate }}\n </td>\n <td md-cell class="actions">\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.ivrCampaignHopperHistories.rows.length">\n <td md-cell colspan="11">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPERHISTORY_AVAILABLE">No hopperhistory available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.ivrCampaignHopperHistories.count}}" md-on-paginate="vm_dc.getIvrCampaignHopperHistories" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.FINAL">FINAL</span>\n </md-tab-label>\n <md-tab-body>\n <div class="ivrCampaign-detail-form-container hopperfinals md-background-bg md-whiteframe-1dp">\n <div ng-controller="IvrCampaignHopperFinalsController as vm_dc" ng-init="vm_dc.init(vm.ivrCampaign, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedIvrCampaignHopperFinals.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.HOPPERFINALS">HopperFinals</span>\n <ms-search-bar on-search="vm_dc.getIvrCampaignHopperFinals()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_dc.getIvrCampaignHopperFinals()" aria-label="refresh HopperFinals" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERFINALS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="vm_dc.countContactsIvrCampaignHopperFinal(vm_dc.query.id); $mdOpenMenu($event);">\n <md-icon md-font-icon="icon-backup-restore"></md-icon>\n <md-tooltip><span translate="MOTIONDIALER.RESTORECONTACTS"></span></md-tooltip>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(3)">\n <span translate="MOTIONDIALER.NOANSWER ">NoAnswer</span>\n <span class="badge">({{vm_dc.contacts.noAnswerContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(5)">\n <span translate="MOTIONDIALER.BUSY ">Busy</span>\n <span class="badge">({{vm_dc.contacts.busyContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(8)">\n <span translate="MOTIONDIALER.CONGESTION ">Congestion</span>\n <span class="badge">({{vm_dc.contacts.congestionContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(10)">\n <span translate="MOTIONDIALER.DROPPED ">Drop</span>\n <span class="badge">({{vm_dc.contacts.dropContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(11)">\n <span translate="MOTIONDIALER.ABANDONED ">Abandoned</span>\n <span class="badge">({{vm_dc.contacts.abandonedContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(22)">\n <span translate="MOTIONDIALER.RECALLFAILEDTIMEOUT">Recall</span>\n <span class="badge">({{vm_dc.contacts.reCallContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(0)">\n <span translate="MOTIONDIALER.NO_SUCH_NUMBER">NoSuchNumber</span>\n <span class="badge">({{vm_dc.contacts.noSuchContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(19)">\n <span translate="MOTIONDIALER.ANSWERING_MACHINE">AnsweringMachine</span>\n <span class="badge">({{vm_dc.contacts.answeringMachine}})</span>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedIvrCampaignHopperFinals.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedIvrCampaignHopperFinals.length}} {{vm_dc.selectedIvrCampaignHopperFinals.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedIvrCampaignHopperFinals" csv-label="true" filename="ivrCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.moveSelectedIvrCampaignHopperFinals($event)" aria-label="move selected" translate translate-attr-label="MOTIONDIALER.MOVE_SELECTED">\n <md-icon md-font-icon="icon-restore"></md-icon>\n <md-tooltip><span translate="MOTIONDIALER.RESTORECONTACTS"></span></md-tooltip>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedIvrCampaignHopperFinals" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getIvrCampaignHopperFinals">\n <tr md-row>\n <th md-column md-order-by="uniqueid">\n {{ \'MOTIONDIALER.UNIQUEID\' | translate }}\n </th>\n <th md-column md-order-by="ContactId">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="calleridnum">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column md-order-by="calleridname">\n {{ \'MOTIONDIALER.NAME\' | translate }}\n </th>\n <th md-column md-order-by="statedesc">\n {{ \'MOTIONDIALER.STATUS\' | translate }}\n </th>\n <th md-column md-order-by="countcongestionretry">\n {{ \'MOTIONDIALER.CONGESTION\' | translate }}\n </th>\n <th md-column md-order-by="countbusyretry">\n {{ \'MOTIONDIALER.BUSY\' | translate }}\n </th>\n <th md-column md-order-by="countnoanswerretry">\n {{ \'MOTIONDIALER.NOANSWER\' | translate }}\n </th>\n <th md-column md-order-by="countnosuchnumberretry">\n {{ \'MOTIONDIALER.NOSUCHNUMBER\' | translate }}\n </th>\n <th md-column md-order-by="countdropretry">\n {{ \'MOTIONDIALER.DROP\' | translate }}\n </th>\n <th md-column md-order-by="countabandonedretry">\n {{ \'MOTIONDIALER.ABANDONED\' | translate }}\n </th>\n <th md-column md-order-by="countmachineretry">\n {{ \'MOTIONDIALER.MACHINE\' | translate }}\n </th>\n <th md-column md-order-by="countagentrejectretry">\n {{ \'MOTIONDIALER.AGENTREJECT\' | translate }}\n </th>\n <th md-column md-order-by="starttime">\n {{ \'MOTIONDIALER.STARTTIME\' | translate }}\n </th>\n <th md-column md-order-by="endtime">\n {{ \'MOTIONDIALER.ENDTIME\' | translate }}\n </th>\n <th md-column md-order-by="disposition">\n {{ \'MOTIONDIALER.DISPOSITION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="hopperFinal" md-select-id="id" ng-repeat="hopperFinal in vm_dc.ivrCampaignHopperFinals.rows">\n <td md-cell>\n {{hopperFinal.uniqueid}}\n </td>\n <td md-cell>\n {{hopperFinal.ContactId}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperFinal.calleridnum}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperFinal.calleridname}}\n </td>\n <td md-cell>\n {{hopperFinal.statedesc}}\n </td>\n <td md-cell>\n {{hopperFinal.countcongestionretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countbusyretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countnoanswerretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countnosuchnumberretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countdropretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countabandonedretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countmachineretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countagentrejectretry}}\n </td>\n <td md-cell>\n {{ hopperFinal.starttime | formatdate }}\n </td>\n <td md-cell>\n {{ hopperFinal.endtime | formatdate }}\n </td>\n <td md-cell>\n {{hopperFinal.disposition}}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveConfirm(hopperFinal, $event)" translate="MOTIONDIALER.MOVE_HOPPERFINAL">\n Move HopperFinal\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.ivrCampaignHopperFinals.rows.length">\n <td md-cell colspan="28">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPERFINAL_AVAILABLE">No hopperfinal available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.ivrCampaignHopperFinals.count}}" md-on-paginate="vm_dc.getIvrCampaignHopperFinals" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.BLACKLIST">BLACKLIST</span>\n </md-tab-label>\n <md-tab-body>\n <div class="ivrCampaign-detail-form-container hopperblacks md-background-bg md-whiteframe-1dp">\n <div ng-controller="IvrCampaignHopperBlacksController as vm_dc" ng-init="vm_dc.init(vm.ivrCampaign, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedIvrCampaignHopperBlacks.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.HOPPERBLACKS">HopperBlacks</span>\n <ms-search-bar on-search="vm_dc.getIvrCampaignHopperBlacks()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedIvrCampaignHopperBlacks.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedIvrCampaignHopperBlacks.length}} {{vm_dc.selectedIvrCampaignHopperBlacks.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedIvrCampaignHopperBlacks" csv-label="true" filename="ivrCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedIvrCampaignHopperBlacks" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getIvrCampaignHopperBlacks">\n <tr md-row>\n <th md-column md-order-by="ContactId">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="phone">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="hopperBlack" md-select-id="id" ng-repeat="hopperBlack in vm_dc.ivrCampaignHopperBlacks.rows">\n <td md-cell>\n {{hopperBlack.ContactId}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperBlack.phone}}\n </td>\n <td md-cell class="actions">\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.ivrCampaignHopperBlacks.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPERBLACK_AVAILABLE">No hopperblack available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.ivrCampaignHopperBlacks.count}}" md-on-paginate="vm_dc.getIvrCampaignHopperBlacks" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/ivrCampaigns.html",'<div id="ivrCampaigns" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-fire" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="MOTIONDIALER.IVRCAMPAIGNS">IvrCampaigns</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="MOTIONDIALER.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedIvrCampaigns.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedIvrCampaigns =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="MOTIONDIALER.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-ivrCampaigns-count">\n <span>{{vm.selectedIvrCampaigns.length}}</span>\n <span translate="MOTIONDIALER.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="MOTIONDIALER.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllIvrCampaigns()" translate="MOTIONDIALER.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectIvrCampaigns()" translate="MOTIONDIALER.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedIvrCampaigns" csv-label="true" filename="ivrCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedIvrCampaigns($event)" aria-label="delete selected" translate translate-attr-label="MOTIONDIALER.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- IVRCAMPAIGN TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedIvrCampaigns" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getIvrCampaigns">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'MOTIONDIALER.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'MOTIONDIALER.NAME\' | translate }}</th>\n <th md-column md-order-by="active">{{ \'MOTIONDIALER.ACTIVE\' | translate }}</th>\n <th md-column md-order-by="TrunkId">{{ \'MOTIONDIALER.TRUNK\' | translate }}</th>\n <th md-column md-order-by="SquareProjectId">{{ \'MOTIONDIALER.CALLYSQUAREPROJECT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.ivrCampaigns.rows.length">\n <td md-cell colspan="6">\n <div layout="row" layout-align="center center">\n <span translate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="ivrCampaign" md-select-id="id" ng-repeat="ivrCampaign in vm.ivrCampaigns.rows">\n <td md-cell ng-if="ivrCampaign.userpic"><img class="avatar" alt="{{ivrCampaign.name}}" ng-src="api/users/{{ivrCampaign.id}}/avatar" /></td>\n <td md-cell ng-if="!ivrCampaign.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{ivrCampaign.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(ivrCampaign, ev) : vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="id ">{{ivrCampaign.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(ivrCampaign, ev) : vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="name ">{{ivrCampaign.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(ivrCampaign, ev) : vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="active ">\n <md-icon md-colors="{color: {{ivrCampaign.active ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{ivrCampaign.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(ivrCampaign, ev) : vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="TrunkId ">{{ (vm.trunks | filter : {\'id\':ivrCampaign.TrunkId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(ivrCampaign, ev) : vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="SquareProjectId ">{{ (vm.projects | filter : {\'id\':ivrCampaign.SquareProjectId} : true)[0].name }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(ivrCampaign, $event )" translate="MOTIONDIALER.EDIT_IVRCAMPAIGN">\n Edit IvrCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.clonedialog(ivrCampaign, $event )" translate="MOTIONDIALER.CLONE_IVRCAMPAIGN">\n clone IvrCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.listadddialog(ivrCampaign, $event )" translate="MOTIONDIALER.LISTADD_IVRCAMPAIGN">\n listadd IvrCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.blacklistadddialog(ivrCampaign, $event )" translate="MOTIONDIALER.BLACKLISTADD_IVRCAMPAIGN">\n blacklistadd IvrCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(ivrCampaign, $event )" translate="MOTIONDIALER.DELETE_IVRCAMPAIGN">\n Delete IvrCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(ivrCampaign, $event )" translate="MOTIONDIALER.GOTOREALTIME_IVRCAMPAIGN">\n goToRealtime IvrCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.ivrCampaigns.count}}" md-on-paginate="vm.getIvrCampaigns" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / IVRCAMPAIGN TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD IVRCAMPAIGN BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-ivrCampaign-button" ng-click="vm.createOrEditIvrCampaign($event)" aria-label="add ivrCampaign" translate translate-attr-aria-label="MOTIONDIALER.ADD_IVRCAMPAIGN">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD IVRCAMPAIGN BUTTON --\x3e\n</div>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/create/dialog.html",'<md-dialog class="queueCampaign-dialog" aria-label="New QueueCampaign">\n <form name="queueCampaignForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.queueCampaign.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newQueueCampaign">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NAME"></span></div>\n <div ng-messages="queueCampaignForm[\'name\'].$error" ng-show="queueCampaignForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MOTIONDIALER.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.dialActive" aria-label="Active"><span translate="MOTIONDIALER.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.TRUNK">Trunk</label>\n <md-select name="TrunkId" ng-model="vm.queueCampaign.TrunkId" required>\n <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks" ng-disabled="TrunkId.canSelect === false">{{ TrunkId.name }}</md-option>\n </md-select>\n <div ng-messages="queueCampaignForm[\'TrunkId\'].$error" ng-show="queueCampaignForm[\'TrunkId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.TRUNK_REQUIRED">Trunk field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod != \'preview\'" class="md-block">\n <label translate="MOTIONDIALER.INTERVAL">Interval</label>\n <md-select name="IntervalId" ng-model="vm.queueCampaign.IntervalId" required>\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval" ng-disabled="IntervalId.canSelect === false">{{ IntervalId.name }}</md-option>\n </md-select>\n <div ng-messages="queueCampaignForm[\'IntervalId\'].$error" ng-show="queueCampaignForm[\'IntervalId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.INTERVAL_REQUIRED">Interval field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CHECKDUPLICATE">CheckDuplicate</label>\n <md-select name="dialCheckDuplicateType" ng-model="vm.queueCampaign.dialCheckDuplicateType" required>\n\n <md-option ng-value="\'always\'"> {{ \'MOTIONDIALER.ALWAYS\' | translate }} </md-option>\n\n <md-option ng-value="\'never\'"> {{ \'MOTIONDIALER.NEVER\' | translate }} </md-option>\n\n <md-option ng-value="\'onlyIfOpen\'"> {{ \'MOTIONDIALER.ONLY_IF_OPEN\' | translate }} </md-option>\n </md-select>\n <div ng-messages="queueCampaignForm[\'dialCheckDuplicateType\'].$error" ng-show="queueCampaignForm[\'dialCheckDuplicateType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CHECKDUPLICATE_REQUIRED">CheckDuplicate field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.METHOD">Method</label>\n <md-select name="dialMethod" ng-model="vm.queueCampaign.dialMethod" required>\n <md-option ng-value="\'progressive\'">Progressive</md-option>\n <md-option ng-value="\'power\'">PowerDialing</md-option>\n <md-option ng-value="\'predictive\'">Predictive</md-option>\n <md-option ng-value="\'preview\'">Preview</md-option>\n <md-option ng-value="\'booked\'">BookedProgressive</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.METHOD"></span></div>\n <div ng-messages="queueCampaignForm[\'dialMethod\'].$error" ng-show="queueCampaignForm[\'dialMethod\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.METHOD_REQUIRED">Method field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod == \'power\'" class="md-block">\n <span translate="MOTIONDIALER.POWERLEVEL">PowerLevel</span>\n <div class="hint"><span translate="MOTIONDIALER.HELP.POWERLEVEL"></span></div>\n <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPowerLevel" min="1" max="10" step="0.1" class="md-accent"></md-slider>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n <label translate="MOTIONDIALER.PREDICTIVEOPTIMIZATION">PredictiveOptimization</label>\n <md-select name="dialPredictiveOptimization" ng-model="vm.queueCampaign.dialPredictiveOptimization">\n\n <md-option ng-value="\'agentBusyFactor\'"> {{ \'MOTIONDIALER.AGENTBUSYFACTOR\' | translate }} </md-option>\n\n <md-option ng-value="\'dropRate\'"> {{ \'MOTIONDIALER.DROPRATE\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEOPTIMIZATION"></span></div>\n <div ng-messages="queueCampaignForm[\'dialPredictiveOptimization\'].$error" ng-show="queueCampaignForm[\'dialPredictiveOptimization\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.PREDICTIVEOPTIMIZATION_REQUIRED">PredictiveOptimization field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n <span translate="MOTIONDIALER.PREDICTIVEOPTIMIZATIONPERCENTAGE">PredictiveOptimizationPercentage</span>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEOPTIMIZATIONPERCENTAGE"></span></div>\n <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPredictiveOptimizationPercentage" min="1" max="95" step="0.1" class="md-accent"></md-slider>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n <span translate="MOTIONDIALER.PREDICTIVEINTERVAL">PredictiveInterval</span>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEINTERVAL"></span></div>\n <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPredictiveInterval" min="5" max="30" step="1" class="md-accent"></md-slider>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod != \'preview\'" class="md-block">\n <label translate="MOTIONDIALER.MAXCONCURRENTCALLS">MaxConcurrentCalls</label>\n <input type="number" name="dialLimitQueue" ng-model="vm.queueCampaign.dialLimitQueue" min="0" max="9999" value="0" ng-required="true">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.MAXCONCURRENTCALLS"></span></div>\n <div ng-messages="queueCampaignForm[\'dialLimitQueue\'].$error" ng-show="queueCampaignForm[\'dialLimitQueue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_REQUIRED">MaxConcurrentCalls field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MaxConcurrentCalls must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_MUST_BE_LESS_THAN_OR_EQUAL_TO">MaxConcurrentCalls must be a valid greater or equal than</span> <span>9999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.QUEUETIMEOUT">QueueTimeout</label>\n <input type="number" name="dialQueueTimeout" ng-model="vm.queueCampaign.dialQueueTimeout" min="1" max="999" value="3" ng-required="true">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.QUEUETIMEOUT"></span></div>\n <div ng-messages="queueCampaignForm[\'dialQueueTimeout\'].$error" ng-show="queueCampaignForm[\'dialQueueTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.QUEUETIMEOUT_REQUIRED">QueueTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.QUEUETIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">QueueTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.QUEUETIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">QueueTimeout must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.AGENTTIMEOUT">AgentTimeout</label>\n <input type="number" name="timeout" ng-model="vm.queueCampaign.timeout" min="0" value="3" ng-required="true">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AGENTTIMEOUT"></span></div>\n <div ng-messages="queueCampaignForm[\'timeout\'].$error" ng-show="queueCampaignForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AGENTTIMEOUT_REQUIRED">AgentTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AGENTTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AgentTimeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.queueCampaign.description">\n\n <div ng-messages="queueCampaignForm[\'description\'].$error" ng-show="queueCampaignForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newQueueCampaign" ng-click="vm.saveQueueCampaign()" class="send-button md-accent md-raised" ng-disabled="queueCampaignForm.$invalid || queueCampaignForm.$pristine" aria-label="SAVE" translate="MOTIONDIALER.SAVE" translate-attr-aria-label="MOTIONDIALER.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newQueueCampaign" ng-click="vm.addNewQueueCampaign()" class="send-button md-accent md-raised" ng-disabled="queueCampaignForm.$invalid" aria-label="ADD" translate="MOTIONDIALER.ADD_QUEUECAMPAIGN" translate-attr-aria-label="MOTIONDIALER.ADD_QUEUECAMPAIGN">\n ADD QUEUECAMPAIGN\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newQueueCampaign" ng-click="vm.deleteQueueCampaign($event)" aria-label="DELETE" translate translate-attr-aria-label="MOTIONDIALER.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="MOTIONDIALER.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/agentadd/agentadd.html",'<md-dialog class="queueCampaign-dialog" aria-label="queueCampaign" ng-init="vm.onInit()">\n <form name="queueCampaignForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MOTIONDIALER.AGENTADD_QUEUECAMPAIGN">Add Agent to queueCampaign</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <md-input-container flex class="no-margin">\n <label translate="MOTIONDIALER.PENALTY">Penalty</label>\n <input name="penalty" type="number" ng-model="vm.penalty" min="0" placeholder="0" required onkeypress="return event.charCode >= 48 && event.charCode <= 57 && this.value.length < 3">\n <div ng-messages="queueCampaignForm.penalty.$error" role="alert" multiple>\n <div ng-message="required">\n <span>{{ \'VOICE.ERRORS.PENALTY_REQUIRED\' | translate }}</span>\n </div>\n </div>\n </md-input-container>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit" add-disabled="vm.penalty === undefined"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/blacklistadd/blacklistadd.html",'<md-dialog class="queueCampaign-dialog" aria-label="queueCampaign" ng-init="vm.onInit()">\n <form name="queueCampaignForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MOTIONDIALER.BLACKLISTADD_QUEUECAMPAIGN">Add List in QUEUECAMPAIGN</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect ng-hide="vm.loading" options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveLists()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/clone/clone.html",'<md-dialog class="queueCampaign-dialog" aria-label="Clone QueueCampaign">\n <form name="queueCampaignForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.queueCampaign.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newQueueCampaign">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NAME"></span></div>\n <div ng-messages="queueCampaignForm[\'name\'].$error" ng-show="queueCampaignForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MOTIONDIALER.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.dialActive" aria-label="Active"><span translate="MOTIONDIALER.ACTIVE">Active</span></md-switch>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <md-button type="submit" ng-click="vm.cloneQueueCampaign()" class="send-button md-accent md-raised" ng-disabled="queueCampaignForm.$invalid" aria-label="CLONE" translate="MOTIONDIALER.CLONE_QUEUECAMPAIGN" translate-attr-aria-label="MOTIONDIALER.CLONE_QUEUECAMPAIGN">\n CLONE QUEUECAMPAIGN\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/hoppers/dialog.html",'<md-dialog class="hopper-dialog" aria-label="New Hopper">\n <form name="hopperForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <div class="md-block">\n <label translate="MOTIONDIALER.SCHEDULEDAT">ScheduledAt</label>\n <md-content layout="row" class="md-padding">\n <div flex class="md-block">\n <mdp-date-picker mdp-open-on-click name="scheduledatDate" mdp-placeholder="Date" mdp-format="YYYY-MM-DD" ng-model="vm.hopper.scheduledat" ng-init="vm.hopper.scheduledat = vm.getDateFromString(vm.hopper.scheduledat)">\n <div ng-messages="hopperForm.dateRangeFrom.$error" ng-show="hopperForm.dateRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DATE_REQUIRED">Date is required</span>\n </div>\n <div ng-message="format">\n <span translate="MOTIONDIALER.ERRORS.DATE_INVALID">Date is invalid</span>\n </div>\n </div>\n </mdp-date-picker>\n </div>\n <div flex class="md-block">\n <mdp-time-picker mdp-open-on-click name="scheduledatTime" mdp-placeholder="Time" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.hopper.scheduledat" ng-init="vm.hopper.scheduledat = vm.getDateFromString(vm.hopper.scheduledat)">\n <div ng-messages="hopperForm.timeRangeFrom.$error" ng-show="hopperForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.TIME_REQUIRED">Time is required</span>\n </div>\n <div ng-message="format">\n <span translate="MOTIONDIALER.ERRORS.TIME_INVALID">Time is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </md-content>\n </div>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.PRIORITY">Priority</label>\n <md-select name="priority" ng-model="vm.hopper.priority">\n <md-option ng-value="\'4\'">Highest</md-option>\n <md-option ng-value="\'3\'">High</md-option>\n <md-option ng-value="\'2\'">Medium</md-option>\n <md-option ng-value="\'1\'">Low</md-option>\n <md-option ng-value="\'0\'">Lowest</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PRIORITY"></span></div>\n <div ng-messages="hopperForm[\'priority\'].$error" ng-show="hopperForm[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.hopper.recallme" aria-label="RecallAgent"><span translate="MOTIONDIALER.RECALLAGENT">RecallAgent</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.hopper.recallme" class="md-block">\n <label translate="MOTIONDIALER.AGENT">Agent</label>\n <md-select name="UserId" ng-model="vm.hopper.UserId" required>\n <md-option ng-value="UserId.id" ng-repeat="UserId in vm.agents" ng-disabled="UserId.canSelect === false">{{ UserId.name }}</md-option>\n </md-select>\n <div ng-messages="hopperForm[\'UserId\'].$error" ng-show="hopperForm[\'UserId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newHopper" ng-click="vm.saveHopper()" class="send-button md-accent md-raised" ng-disabled="hopperForm.$invalid || hopperForm.$pristine" aria-label="SAVE" translate="MOTIONDIALER.SAVE" translate-attr-aria-label="MOTIONDIALER.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newHopper" ng-click="vm.addNewHopper()" class="send-button md-accent md-raised" ng-disabled="hopperForm.$invalid" aria-label="ADD" translate="MOTIONDIALER.ADD_HOPPER" translate-attr-aria-label="MOTIONDIALER.ADD_HOPPER">\n ADD HOPPER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newHopper" ng-click="vm.deleteHopper($event)" aria-label="DELETE" translate translate-attr-aria-label="MOTIONDIALER.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="MOTIONDIALER.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/listadd/listadd.html",'<md-dialog class="queueCampaign-dialog" aria-label="queueCampaign" ng-init="vm.onInit()">\n <form name="queueCampaignForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MOTIONDIALER.LISTADD_QUEUECAMPAIGN">Add List in QUEUECAMPAIGN</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect ng-hide="vm.loading" options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveLists()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/resetlist/resetlist.html",'<md-dialog class="queueCampaign-dialog" aria-label="queueCampaign">\n <form name="queueCampaignForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MOTIONDIALER.RESETLIST ">Reset List</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-disabled="vm.loading" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ng-hide="vm.loading">\n <div layout="row" layout-wrap flex>\n <div flex-xs flex="50">\n <md-checkbox aria-label="Select All" ng-checked="vm.isChecked()" md-indeterminate="vm.isIndeterminate()" ng-click="vm.toggleAll()">\n <span ng-if="vm.isChecked()" translate="MOTIONDIALER.UNSELECTALL"></span>\n <span ng-if="!vm.isChecked()" translate="MOTIONDIALER.SELECTALL"></span>\n </md-checkbox>\n </div>\n <div flex-xs flex="50">\n </div>\n <div flex="{{vm.items.length > 10 ? 50 : 100 }}" ng-repeat="item in vm.items">\n <md-checkbox ng-checked="vm.exists(item, vm.selected)" ng-click="vm.toggle(item, vm.selected)">\n {{ item.name | limitTo:40 }}\n </md-checkbox>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions ng-hide="vm.loading" layout="row" layout-align="end center">\n <div>\n </div>\n <md-button type="submit" ng-click="vm.listSelected()" class="send-button md-accent md-raised" ng-disabled="vm.loading" aria-label="RESET" translate="MOTIONDIALER.RESET" translate-attr-aria-label="MOTIONDIALER.RESET">\n SAVE\n </md-button>\n </md-dialog-actions>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/teamadd/teamadd.html",'<md-dialog class="queueCampaign-dialog" aria-label="queueCampaign" ng-init="vm.onInit()">\n <form name="queueCampaignForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MOTIONDIALER.TEAMS_ASSOCIATION">Teams Association</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <md-input-container flex class="no-margin">\n <label translate="MOTIONDIALER.PENALTY">Penalty</label>\n <input name="penalty" type="number" ng-model="vm.penalty" min="0" placeholder="0" required onkeypress="return event.charCode >= 48 && event.charCode <= 57 && this.value.length < 3">\n <div ng-messages="queueCampaignForm.penalty.$error" role="alert" multiple>\n <div ng-message="required">\n <span>{{ \'VOICE.ERRORS.PENALTY_REQUIRED\' | translate }}</span>\n </div>\n </div>\n </md-input-container>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit" add-disabled="vm.penalty === undefined"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/view.html",'<div id="motiondialer-queueCampaign" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-queueCampaigns-button md-icon-button" aria-label="Go to queueCampaigns" ng-click="vm.gotoQueueCampaigns()" translate translate-attr-aria-label="MOTIONDIALER.GO_TO_QUEUECAMPAIGNS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="queueCampaign-image" hide-xs>\n <img ng-src="assets/images/business/queueCampaigns.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.queueCampaign.id}}\n <span ng-if="vm.queueCampaign.name">{{vm.queueCampaign.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="MOTIONDIALER.CREATED_AT"></span> <span>{{vm.queueCampaign.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.clonedialog(vm.queueCampaign, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="clone">\n <md-tooltip><span translate="MOTIONDIALER.CLONE_QUEUECAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.listadddialog(vm.queueCampaign, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="listadd">\n <md-tooltip><span translate="MOTIONDIALER.LISTADD_QUEUECAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-format-list-numbers"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.blacklistadddialog(vm.queueCampaign, $event)" class="md-fab md-warn md-icon-button" aria-label="blacklistadd">\n <md-tooltip><span translate="MOTIONDIALER.BLACKLISTADD_QUEUECAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-block-helper"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.teamadddialog(vm.queueCampaign, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n <md-tooltip><span translate="MOTIONDIALER.TEAMADD_QUEUECAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.queueCampaign, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="MOTIONDIALER.AGENTADD_QUEUECAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-plus"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.resetlistdialog(vm.queueCampaign, $event)" class="md-fab md-warn md-icon-button" aria-label="resetlist">\n <md-tooltip><span translate="MOTIONDIALER.RESETLIST_QUEUECAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-restore"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.queueCampaign, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="MOTIONDIALER.GOTO_QUEUECAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-cast"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveQueueCampaign()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (campaignForm.$invalid) || (queueForm.$invalid) || (originateForm.$invalid) || (globalForm.$invalid) || (congestionForm.$invalid) || (busyForm.$invalid) || (noanswerForm.$invalid) || (nosuchnumberForm.$invalid) || (dropForm.$invalid) || (abandonedForm.$invalid) || (machineForm.$invalid) || (agentrejectForm.$invalid) || (advancedForm.$invalid) || (advancedpreviewForm.$invalid) || (thresholdsForm.$invalid) || (recallmeForm.$invalid) || (globalintervalForm.$invalid) || (timezoneForm.$invalid) || (amdForm.$invalid) || (hopperStatisticsForm.$invalid) || (hoppersForm.$invalid) || (hopperHistoriesForm.$invalid) || (hopperFinalsForm.$invalid) || (hopperBlacksForm.$invalid)" translate="MOTIONDIALER.SAVE" translate-attr-aria-label="MOTIONDIALER.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="queueCampaign-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.queueCampaign.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MOTIONDIALER.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.dialActive" aria-label="Active" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.TRUNK">Trunk</label>\n <md-select name="TrunkId" ng-model="vm.queueCampaign.TrunkId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks" ng-disabled="TrunkId.canSelect === false">{{ TrunkId.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'TrunkId\'].$error" ng-show="generalForm[\'TrunkId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.TRUNK_REQUIRED">Trunk field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.BACKUPTRUNK">BackupTrunk</label>\n <md-select name="TrunkBackupId" ng-model="vm.queueCampaign.TrunkBackupId" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="TrunkBackupId.id" ng-repeat="TrunkBackupId in vm.trunks" ng-disabled="TrunkBackupId.canSelect === false">{{ TrunkBackupId.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'TrunkBackupId\'].$error" ng-show="generalForm[\'TrunkBackupId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.BACKUPTRUNK_REQUIRED">BackupTrunk field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod != \'preview\'" class="md-block">\n <label translate="MOTIONDIALER.INTERVAL">Interval</label>\n <md-select name="IntervalId" ng-model="vm.queueCampaign.IntervalId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval" ng-disabled="IntervalId.canSelect === false">{{ IntervalId.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'IntervalId\'].$error" ng-show="generalForm[\'IntervalId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.INTERVAL_REQUIRED">Interval field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CHECKDUPLICATE">CheckDuplicate</label>\n <md-select name="dialCheckDuplicateType" ng-model="vm.queueCampaign.dialCheckDuplicateType" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'always\'"> {{ \'MOTIONDIALER.ALWAYS\' | translate }} </md-option>\n\n <md-option ng-value="\'never\'"> {{ \'MOTIONDIALER.NEVER\' | translate }} </md-option>\n\n <md-option ng-value="\'onlyIfOpen\'"> {{ \'MOTIONDIALER.ONLY_IF_OPEN\' | translate }} </md-option>\n </md-select>\n <div ng-messages="generalForm[\'dialCheckDuplicateType\'].$error" ng-show="generalForm[\'dialCheckDuplicateType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CHECKDUPLICATE_REQUIRED">CheckDuplicate field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CUTDIGIT">CutDigit</label>\n <input type="number" name="dialCutDigit" ng-model="vm.queueCampaign.dialCutDigit" min="0" max="15" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'dialCutDigit\'].$error" ng-show="generalForm[\'dialCutDigit\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_REQUIRED">CutDigit field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CutDigit must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_MUST_BE_LESS_THAN_OR_EQUAL_TO">CutDigit must be a valid greater or equal than</span> <span>15</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.queueCampaign.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.CAMPAIGN">CAMPAIGN</span>\n </md-tab-label>\n <md-tab-body>\n <div class="queueCampaign-detail-form-container campaign md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.CAMPAIGN">CAMPAIGN</div>\n </div>\n <form name="campaignForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.METHOD">Method</label>\n <md-select name="dialMethod" ng-model="vm.queueCampaign.dialMethod" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'progressive\'">Progressive</md-option>\n <md-option ng-value="\'power\'">PowerDialing</md-option>\n <md-option ng-value="\'predictive\'">Predictive</md-option>\n <md-option ng-value="\'preview\'">Preview</md-option>\n <md-option ng-value="\'booked\'">BookedProgressive</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.METHOD"></span></div>\n <div ng-messages="campaignForm[\'dialMethod\'].$error" ng-show="campaignForm[\'dialMethod\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.METHOD_REQUIRED">Method field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod == \'power\'" class="md-block">\n <span translate="MOTIONDIALER.POWERLEVEL">PowerLevel</span>\n <div class="hint"><span translate="MOTIONDIALER.HELP.POWERLEVEL"></span></div>\n <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPowerLevel" min="1" max="10" step="0.1" class="md-accent"></md-slider>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n <label translate="MOTIONDIALER.PREDICTIVEOPTIMIZATION">PredictiveOptimization</label>\n <md-select name="dialPredictiveOptimization" ng-model="vm.queueCampaign.dialPredictiveOptimization" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'agentBusyFactor\'"> {{ \'MOTIONDIALER.AGENTBUSYFACTOR\' | translate }} </md-option>\n\n <md-option ng-value="\'dropRate\'"> {{ \'MOTIONDIALER.DROPRATE\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEOPTIMIZATION"></span></div>\n <div ng-messages="campaignForm[\'dialPredictiveOptimization\'].$error" ng-show="campaignForm[\'dialPredictiveOptimization\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.PREDICTIVEOPTIMIZATION_REQUIRED">PredictiveOptimization field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n <span translate="MOTIONDIALER.PREDICTIVEOPTIMIZATIONPERCENTAGE">PredictiveOptimizationPercentage</span>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEOPTIMIZATIONPERCENTAGE"></span></div>\n <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPredictiveOptimizationPercentage" min="1" max="95" step="0.1" class="md-accent"></md-slider>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n <span translate="MOTIONDIALER.PREDICTIVEINTERVAL">PredictiveInterval</span>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEINTERVAL"></span></div>\n <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPredictiveInterval" min="5" max="30" step="1" class="md-accent"></md-slider>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod != \'preview\'" class="md-block">\n <label translate="MOTIONDIALER.MAXCONCURRENTCALLS">MaxConcurrentCalls</label>\n <input type="number" name="dialLimitQueue" ng-model="vm.queueCampaign.dialLimitQueue" min="0" max="9999" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.MAXCONCURRENTCALLS"></span></div>\n <div ng-messages="campaignForm[\'dialLimitQueue\'].$error" ng-show="campaignForm[\'dialLimitQueue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_REQUIRED">MaxConcurrentCalls field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MaxConcurrentCalls must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_MUST_BE_LESS_THAN_OR_EQUAL_TO">MaxConcurrentCalls must be a valid greater or equal than</span> <span>9999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.AGENTTIMEOUT">AgentTimeout</label>\n <input type="number" name="timeout" ng-model="vm.queueCampaign.timeout" min="0" value="3" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AGENTTIMEOUT"></span></div>\n <div ng-messages="campaignForm[\'timeout\'].$error" ng-show="campaignForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AGENTTIMEOUT_REQUIRED">AgentTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AGENTTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AgentTimeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container queue md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.QUEUE">QUEUE</div>\n </div>\n <form name="queueForm" novalidate>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.QUEUEOPTIONS">QueueOptions</label>\n <input type="text" name="dialQueueOptions" ng-model="vm.queueCampaign.dialQueueOptions" value="tTxX" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="queueForm[\'dialQueueOptions\'].$error" ng-show="queueForm[\'dialQueueOptions\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.QUEUEOPTIONS_REQUIRED">QueueOptions field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.QUEUETIMEOUT">QueueTimeout</label>\n <input type="number" name="dialQueueTimeout" ng-model="vm.queueCampaign.dialQueueTimeout" min="1" max="999" value="3" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.QUEUETIMEOUT"></span></div>\n <div ng-messages="queueForm[\'dialQueueTimeout\'].$error" ng-show="queueForm[\'dialQueueTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.QUEUETIMEOUT_REQUIRED">QueueTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.QUEUETIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">QueueTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.QUEUETIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">QueueTimeout must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'booked\' || vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.queueCampaign.strategy" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'rrmemory\'">Round Robin Memory</md-option>\n <md-option ng-value="\'roundrobin\'" ng-if="vm.queueCampaign.dialMethod === \'booked\'">Round Robin</md-option>\n <md-option ng-value="\'leastrecent\'" ng-if="vm.queueCampaign.dialMethod !== \'booked\'">Least Recent</md-option>\n <md-option ng-value="\'fewestcalls\'" ng-if="vm.queueCampaign.dialMethod !== \'booked\'">Fewest Calls</md-option>\n <md-option ng-value="\'random\'" ng-if="vm.queueCampaign.dialMethod !== \'booked\'">Random</md-option>\n <md-option ng-value="\'linear\'" ng-if="vm.queueCampaign.dialMethod !== \'booked\'">Linear</md-option>\n <md-option ng-value="\'wrandom\'" ng-if="vm.queueCampaign.dialMethod !== \'booked\'">Weight Random</md-option>\n </md-select>\n <div ng-messages="queueForm[\'strategy\'].$error" ng-show="queueForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.RETRY">Retry</label>\n <input type="number" name="retry" ng-model="vm.queueCampaign.retry" min="0" value="3" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.RETRY"></span></div>\n <div ng-messages="queueForm[\'retry\'].$error" ng-show="queueForm[\'retry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.RETRY_REQUIRED">Retry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.RETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Retry must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.WRAPUPTIME">WrapupTime</label>\n <input type="number" name="wrapuptime" ng-model="vm.queueCampaign.wrapuptime" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.WRAPUPTIME"></span></div>\n <div ng-messages="queueForm[\'wrapuptime\'].$error" ng-show="queueForm[\'wrapuptime\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.WRAPUPTIME_REQUIRED">WrapupTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.WRAPUPTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WrapupTime must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.WEIGHT">Weight</label>\n <input type="number" name="weight" ng-model="vm.queueCampaign.weight" min="0" value="1" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.WEIGHT"></span></div>\n <div ng-messages="queueForm[\'weight\'].$error" ng-show="queueForm[\'weight\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.WEIGHT_REQUIRED">Weight field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.WEIGHT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Weight must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.MUSICONHOLD">MusicOnHold</label>\n <md-select name="musiconhold" ng-model="vm.queueCampaign.musiconhold" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="musiconhold.name" ng-repeat="musiconhold in vm.musiconholds" ng-disabled="musiconhold.canSelect === false">{{ musiconhold.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.MUSICONHOLD"></span></div>\n <div ng-messages="queueForm[\'musiconhold\'].$error" ng-show="queueForm[\'musiconhold\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MUSICONHOLD_REQUIRED">MusicOnHold field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.CALLYSQUAREPROJECT">CallySquareProject</label>\n <md-select name="dialQueueProject" ng-model="vm.queueCampaign.dialQueueProject" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="dialQueueProject.name" ng-repeat="dialQueueProject in vm.projects" ng-disabled="dialQueueProject.canSelect === false">{{ dialQueueProject.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.CALLYSQUAREPROJECT"></span></div>\n <div ng-messages="queueForm[\'dialQueueProject\'].$error" ng-show="queueForm[\'dialQueueProject\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECT_REQUIRED">CallySquareProject field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.CALLYSQUAREPROJECT2">CallySquareProject2</label>\n <md-select name="dialQueueProject2" ng-model="vm.queueCampaign.dialQueueProject2" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="dialQueueProject2.name" ng-repeat="dialQueueProject2 in vm.projects" ng-disabled="dialQueueProject2.canSelect === false">{{ dialQueueProject2.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.CALLYSQUAREPROJECT2"></span></div>\n <div ng-messages="queueForm[\'dialQueueProject2\'].$error" ng-show="queueForm[\'dialQueueProject2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECT2_REQUIRED">CallySquareProject2 field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'preview\' || vm.queueCampaign.dialMethod === \'booked\'" class="md-block">\n <label translate="MOTIONDIALER.CALLYSQUAREPROJECTPREVIEW">CallySquareProjectPreview</label>\n <md-select name="dialQueueProject" ng-model="vm.queueCampaign.dialQueueProject" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="dialQueueProject.name" ng-repeat="dialQueueProject in vm.projects" ng-disabled="dialQueueProject.canSelect === false">{{ dialQueueProject.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.CALLYSQUAREPROJECTPREVIEW"></span></div>\n <div ng-messages="queueForm[\'dialQueueProject\'].$error" ng-show="queueForm[\'dialQueueProject\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECTPREVIEW_REQUIRED">CallySquareProjectPreview field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'preview\' || vm.queueCampaign.dialMethod === \'booked\'" class="md-block">\n <label translate="MOTIONDIALER.CALLYSQUAREPROJECTPREVIEW2">CallySquareProjectPreview2</label>\n <md-select name="dialQueueProject2" ng-model="vm.queueCampaign.dialQueueProject2" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="dialQueueProject2.name" ng-repeat="dialQueueProject2 in vm.projects" ng-disabled="dialQueueProject2.canSelect === false">{{ dialQueueProject2.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.CALLYSQUAREPROJECTPREVIEW2"></span></div>\n <div ng-messages="queueForm[\'dialQueueProject2\'].$error" ng-show="queueForm[\'dialQueueProject2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECTPREVIEW2_REQUIRED">CallySquareProjectPreview2 field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialQueueProject2 && (vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\')" class="md-block">\n <md-switch ng-model="vm.queueCampaign.dialAgiAfterHangupAgent" aria-label="RunIfHangupAgent" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.RUNIFHANGUPAGENT">RunIfHangupAgent</span></md-switch>\n <div class="hint"><span translate="MOTIONDIALER.HELP.RUNIFHANGUPAGENT"></span></div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container originate md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.ORIGINATE">ORIGINATE</div>\n </div>\n <form name="originateForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ORIGINATECALLERIDNAME">OriginateCallerIdName</label>\n <input type="text" name="dialOriginateCallerIdName" ng-model="vm.queueCampaign.dialOriginateCallerIdName" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ORIGINATECALLERIDNAME"></span></div>\n <div ng-messages="originateForm[\'dialOriginateCallerIdName\'].$error" ng-show="originateForm[\'dialOriginateCallerIdName\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATECALLERIDNAME_REQUIRED">OriginateCallerIdName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ORIGINATECALLERIDNUMBER">OriginateCallerIdNumber</label>\n <input type="text" name="dialOriginateCallerIdNumber" ng-model="vm.queueCampaign.dialOriginateCallerIdNumber" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ORIGINATECALLERIDNUMBER"></span></div>\n <div ng-messages="originateForm[\'dialOriginateCallerIdNumber\'].$error" ng-show="originateForm[\'dialOriginateCallerIdNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATECALLERIDNUMBER_REQUIRED">OriginateCallerIdNumber field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.RANDOMLASTDIGITCALLERIDNUMBER">RandomLastDigitCallerIdNumber</label>\n <input type="number" name="dialRandomLastDigitCallerIdNumber" ng-model="vm.queueCampaign.dialRandomLastDigitCallerIdNumber" min="0" max="15" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.RANDOMLASTDIGITCALLERIDNUMBER"></span></div>\n <div ng-messages="originateForm[\'dialRandomLastDigitCallerIdNumber\'].$error" ng-show="originateForm[\'dialRandomLastDigitCallerIdNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_REQUIRED">RandomLastDigitCallerIdNumber field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_MUST_BE_GREATER_THAN_OR_EQUAL_TO">RandomLastDigitCallerIdNumber must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_MUST_BE_LESS_THAN_OR_EQUAL_TO">RandomLastDigitCallerIdNumber must be a valid greater or equal than</span> <span>15</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ORIGINATETIMEOUT">OriginateTimeout</label>\n <input type="number" name="dialOriginateTimeout" ng-model="vm.queueCampaign.dialOriginateTimeout" min="1" max="999" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ORIGINATETIMEOUT"></span></div>\n <div ng-messages="originateForm[\'dialOriginateTimeout\'].$error" ng-show="originateForm[\'dialOriginateTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_REQUIRED">OriginateTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">OriginateTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">OriginateTimeout must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.PREFIX">Prefix</label>\n <input type="text" name="dialPrefix" ng-model="vm.queueCampaign.dialPrefix" ng-pattern="/^\\d+$/" value="" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREFIX"></span></div>\n <div ng-messages="originateForm[\'dialPrefix\'].$error" ng-show="originateForm[\'dialPrefix\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.PREFIX_REQUIRED">Prefix field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MOTIONDIALER.ERRORS.PREFIX_MUST_VALID_PATTERN" translate-values="{ regex: \'/^\\d+$/\' }">Prefix must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.RETRYANDFREQUENCY">RETRYANDFREQUENCY</span>\n </md-tab-label>\n <md-tab-body>\n <div class="queueCampaign-detail-form-container global md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.GLOBAL">GLOBAL</div>\n </div>\n <form name="globalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.GLOBALMAXRETRY">GlobalMaxRetry</label>\n <input type="number" name="dialGlobalMaxRetry" ng-model="vm.queueCampaign.dialGlobalMaxRetry" min="1" max="999" value="4" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.GLOBALMAXRETRY"></span></div>\n <div ng-messages="globalForm[\'dialGlobalMaxRetry\'].$error" ng-show="globalForm[\'dialGlobalMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_REQUIRED">GlobalMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">GlobalMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">GlobalMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container congestion md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.CONGESTION">CONGESTION</div>\n </div>\n <form name="congestionForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CONGESTIONMAXRETRY">CongestionMaxRetry</label>\n <input type="number" name="dialCongestionMaxRetry" ng-model="vm.queueCampaign.dialCongestionMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.CONGESTIONMAXRETRY"></span></div>\n <div ng-messages="congestionForm[\'dialCongestionMaxRetry\'].$error" ng-show="congestionForm[\'dialCongestionMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_REQUIRED">CongestionMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CongestionMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">CongestionMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CONGESTIONRETRYTIME">CongestionRetryTime</label>\n <input type="number" name="dialCongestionRetryFrequency" ng-model="vm.queueCampaign.dialCongestionRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.CONGESTIONRETRYTIME"></span></div>\n <div ng-messages="congestionForm[\'dialCongestionRetryFrequency\'].$error" ng-show="congestionForm[\'dialCongestionRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_REQUIRED">CongestionRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CongestionRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">CongestionRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container busy md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.BUSY">BUSY</div>\n </div>\n <form name="busyForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.BUSYMAXRETRY">BusyMaxRetry</label>\n <input type="number" name="dialBusyMaxRetry" ng-model="vm.queueCampaign.dialBusyMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.BUSYMAXRETRY"></span></div>\n <div ng-messages="busyForm[\'dialBusyMaxRetry\'].$error" ng-show="busyForm[\'dialBusyMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_REQUIRED">BusyMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">BusyMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">BusyMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.BUSYRETRYTIME">BusyRetryTime</label>\n <input type="number" name="dialBusyRetryFrequency" ng-model="vm.queueCampaign.dialBusyRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.BUSYRETRYTIME"></span></div>\n <div ng-messages="busyForm[\'dialBusyRetryFrequency\'].$error" ng-show="busyForm[\'dialBusyRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_REQUIRED">BusyRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">BusyRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">BusyRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container noanswer md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.NOANSWER">NOANSWER</div>\n </div>\n <form name="noanswerForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NOANSWERMAXRETRY">NoAnswerMaxRetry</label>\n <input type="number" name="dialNoAnswerMaxRetry" ng-model="vm.queueCampaign.dialNoAnswerMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NOANSWERMAXRETRY"></span></div>\n <div ng-messages="noanswerForm[\'dialNoAnswerMaxRetry\'].$error" ng-show="noanswerForm[\'dialNoAnswerMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_REQUIRED">NoAnswerMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoAnswerMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoAnswerMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NOANSWERRETRYTIME">NoAnswerRetryTime</label>\n <input type="number" name="dialNoAnswerRetryFrequency" ng-model="vm.queueCampaign.dialNoAnswerRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NOANSWERRETRYTIME"></span></div>\n <div ng-messages="noanswerForm[\'dialNoAnswerRetryFrequency\'].$error" ng-show="noanswerForm[\'dialNoAnswerRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_REQUIRED">NoAnswerRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoAnswerRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoAnswerRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container nosuchnumber md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.NOSUCHNUMBER">NOSUCHNUMBER</div>\n </div>\n <form name="nosuchnumberForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NOSUCHNUMBERMAXRETRY">NoSuchNumberMaxRetry</label>\n <input type="number" name="dialNoSuchNumberMaxRetry" ng-model="vm.queueCampaign.dialNoSuchNumberMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NOSUCHNUMBERMAXRETRY"></span></div>\n <div ng-messages="nosuchnumberForm[\'dialNoSuchNumberMaxRetry\'].$error" ng-show="nosuchnumberForm[\'dialNoSuchNumberMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_REQUIRED">NoSuchNumberMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoSuchNumberMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoSuchNumberMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NOSUCHNUMBERRETRYTIME">NoSuchNumberRetryTime</label>\n <input type="number" name="dialNoSuchNumberRetryFrequency" ng-model="vm.queueCampaign.dialNoSuchNumberRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NOSUCHNUMBERRETRYTIME"></span></div>\n <div ng-messages="nosuchnumberForm[\'dialNoSuchNumberRetryFrequency\'].$error" ng-show="nosuchnumberForm[\'dialNoSuchNumberRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_REQUIRED">NoSuchNumberRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoSuchNumberRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoSuchNumberRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container drop md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.DROP">DROP</div>\n </div>\n <form name="dropForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DROPMAXRETRY">DropMaxRetry</label>\n <input type="number" name="dialDropMaxRetry" ng-model="vm.queueCampaign.dialDropMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.DROPMAXRETRY"></span></div>\n <div ng-messages="dropForm[\'dialDropMaxRetry\'].$error" ng-show="dropForm[\'dialDropMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_REQUIRED">DropMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">DropMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">DropMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DROPRETRYTIME">DropRetryTime</label>\n <input type="number" name="dialDropRetryFrequency" ng-model="vm.queueCampaign.dialDropRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.DROPRETRYTIME"></span></div>\n <div ng-messages="dropForm[\'dialDropRetryFrequency\'].$error" ng-show="dropForm[\'dialDropRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_REQUIRED">DropRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">DropRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">DropRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container abandoned md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.ABANDONED">ABANDONED</div>\n </div>\n <form name="abandonedForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ABANDONEDMAXRETRY">AbandonedMaxRetry</label>\n <input type="number" name="dialAbandonedMaxRetry" ng-model="vm.queueCampaign.dialAbandonedMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ABANDONEDMAXRETRY"></span></div>\n <div ng-messages="abandonedForm[\'dialAbandonedMaxRetry\'].$error" ng-show="abandonedForm[\'dialAbandonedMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_REQUIRED">AbandonedMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AbandonedMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">AbandonedMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ABANDONEDRETRYTIME">AbandonedRetryTime</label>\n <input type="number" name="dialAbandonedRetryFrequency" ng-model="vm.queueCampaign.dialAbandonedRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ABANDONEDRETRYTIME"></span></div>\n <div ng-messages="abandonedForm[\'dialAbandonedRetryFrequency\'].$error" ng-show="abandonedForm[\'dialAbandonedRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_REQUIRED">AbandonedRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AbandonedRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">AbandonedRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container machine md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.MACHINE">MACHINE</div>\n </div>\n <form name="machineForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.MACHINEMAXRETRY">MachineMaxRetry</label>\n <input type="number" name="dialMachineMaxRetry" ng-model="vm.queueCampaign.dialMachineMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.MACHINEMAXRETRY"></span></div>\n <div ng-messages="machineForm[\'dialMachineMaxRetry\'].$error" ng-show="machineForm[\'dialMachineMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_REQUIRED">MachineMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MachineMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">MachineMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.MACHINERETRYTIME">MachineRetryTime</label>\n <input type="number" name="dialMachineRetryFrequency" ng-model="vm.queueCampaign.dialMachineRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.MACHINERETRYTIME"></span></div>\n <div ng-messages="machineForm[\'dialMachineRetryFrequency\'].$error" ng-show="machineForm[\'dialMachineRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_REQUIRED">MachineRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MachineRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">MachineRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container agentreject md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.AGENTREJECT">AGENTREJECT</div>\n </div>\n <form name="agentrejectForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.AGENTREJECTMAXRETRY">AgentRejectMaxRetry</label>\n <input type="number" name="dialAgentRejectMaxRetry" ng-model="vm.queueCampaign.dialAgentRejectMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AGENTREJECTMAXRETRY"></span></div>\n <div ng-messages="agentrejectForm[\'dialAgentRejectMaxRetry\'].$error" ng-show="agentrejectForm[\'dialAgentRejectMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_REQUIRED">AgentRejectMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AgentRejectMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">AgentRejectMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.AGENTREJECTRETRYTIME">AgentRejectRetryTime</label>\n <input type="number" name="dialAgentRejectRetryFrequency" ng-model="vm.queueCampaign.dialAgentRejectRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AGENTREJECTRETRYTIME"></span></div>\n <div ng-messages="agentrejectForm[\'dialAgentRejectRetryFrequency\'].$error" ng-show="agentrejectForm[\'dialAgentRejectRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_REQUIRED">AgentRejectRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AgentRejectRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">AgentRejectRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="queueCampaign-detail-form-container advanced md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.ADVANCED">ADVANCED</div>\n </div>\n <form name="advancedForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.acw" aria-label="AfterCallWork" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.AFTERCALLWORK">AfterCallWork</span></md-switch>\n <div class="hint"><span translate="MOTIONDIALER.HELP.AFTERCALLWORK"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.acw" class="md-block">\n <label translate="MOTIONDIALER.AFTERCALLWORKDURATION">AfterCallWorkDuration</label>\n <input type="number" name="acwTimeout" ng-model="vm.queueCampaign.acwTimeout" min="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AFTERCALLWORKDURATION"></span></div>\n <div ng-messages="advancedForm[\'acwTimeout\'].$error" ng-show="advancedForm[\'acwTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AFTERCALLWORKDURATION_REQUIRED">AfterCallWorkDuration field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AFTERCALLWORKDURATION_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AfterCallWorkDuration must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.AUTOPAUSE">AutoPause</label>\n <md-select name="autopause" ng-model="vm.queueCampaign.autopause" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'all\'"> {{ \'MOTIONDIALER.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'MOTIONDIALER.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.AUTOPAUSE"></span></div>\n <div ng-messages="advancedForm[\'autopause\'].$error" ng-show="advancedForm[\'autopause\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AUTOPAUSE_REQUIRED">AutoPause field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.RINGINUSE">RingInUse</label>\n <md-select name="ringinuse" ng-model="vm.queueCampaign.ringinuse" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'MOTIONDIALER.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'MOTIONDIALER.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.RINGINUSE"></span></div>\n <div ng-messages="advancedForm[\'ringinuse\'].$error" ng-show="advancedForm[\'ringinuse\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.RINGINUSE_REQUIRED">RingInUse field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.MEMBERDELAY">MemberDelay</label>\n <input type="number" name="memberdelay" ng-model="vm.queueCampaign.memberdelay" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.MEMBERDELAY"></span></div>\n <div ng-messages="advancedForm[\'memberdelay\'].$error" ng-show="advancedForm[\'memberdelay\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MEMBERDELAY_REQUIRED">MemberDelay field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MEMBERDELAY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MemberDelay must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.TIMEOUTRESTART">TimeoutRestart</label>\n <md-select name="timeoutrestart" ng-model="vm.queueCampaign.timeoutrestart" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'MOTIONDIALER.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'MOTIONDIALER.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.TIMEOUTRESTART"></span></div>\n <div ng-messages="advancedForm[\'timeoutrestart\'].$error" ng-show="advancedForm[\'timeoutrestart\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.TIMEOUTRESTART_REQUIRED">TimeoutRestart field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.MONITORFORMAT">MonitorFormat</label>\n <md-select name="monitor_format" ng-model="vm.queueCampaign.monitor_format" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">Inactive</md-option>\n <md-option ng-value="\'wav\'">wav</md-option>\n <md-option ng-value="\'wav49\'">wav49</md-option>\n <md-option ng-value="\'gsm\'">gsm</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.MONITORFORMAT"></span></div>\n <div ng-messages="advancedForm[\'monitor_format\'].$error" ng-show="advancedForm[\'monitor_format\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MONITORFORMAT_REQUIRED">MonitorFormat field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CONTEXT">Context</label>\n <input type="text" name="context" ng-model="vm.queueCampaign.context" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.CONTEXT"></span></div>\n <div ng-messages="advancedForm[\'context\'].$error" ng-show="advancedForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.SETINTERFACEVARIABLES">SetInterfaceVariables</label>\n <md-select name="setinterfacevar" ng-model="vm.queueCampaign.setinterfacevar" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'MOTIONDIALER.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'MOTIONDIALER.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.SETINTERFACEVARIABLES"></span></div>\n <div ng-messages="advancedForm[\'setinterfacevar\'].$error" ng-show="advancedForm[\'setinterfacevar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.SETINTERFACEVARIABLES_REQUIRED">SetInterfaceVariables field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.SETQUEUEVARIABLES">SetQueueVariables</label>\n <md-select name="setqueuevar" ng-model="vm.queueCampaign.setqueuevar" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'MOTIONDIALER.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'MOTIONDIALER.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.SETQUEUEVARIABLES"></span></div>\n <div ng-messages="advancedForm[\'setqueuevar\'].$error" ng-show="advancedForm[\'setqueuevar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.SETQUEUEVARIABLES_REQUIRED">SetQueueVariables field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.SETQUEUEENTRYVARIABLES">SetQueueEntryVariables</label>\n <md-select name="setqueueentryvar" ng-model="vm.queueCampaign.setqueueentryvar" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'MOTIONDIALER.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'MOTIONDIALER.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.SETQUEUEENTRYVARIABLES"></span></div>\n <div ng-messages="advancedForm[\'setqueueentryvar\'].$error" ng-show="advancedForm[\'setqueueentryvar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.SETQUEUEENTRYVARIABLES_REQUIRED">SetQueueEntryVariables field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DIALORDERBYSCHEDULEDAT">DialOrderByScheduledAt</label>\n <md-select name="dialOrderByScheduledAt" ng-model="vm.queueCampaign.dialOrderByScheduledAt" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'DESC\'"> {{ \'MOTIONDIALER.DESC\' | translate }} </md-option>\n\n <md-option ng-value="\'ASC\'"> {{ \'MOTIONDIALER.ASC\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.DIALORDERBYSCHEDULEDAT"></span></div>\n <div ng-messages="advancedForm[\'dialOrderByScheduledAt\'].$error" ng-show="advancedForm[\'dialOrderByScheduledAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DIALORDERBYSCHEDULEDAT_REQUIRED">DialOrderByScheduledAt field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.mandatoryDisposition" class="md-block">\n <label translate="MOTIONDIALER.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.queueCampaign.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="advancedForm[\'mandatoryDispositionPauseId\'].$error" ng-show="advancedForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div ng-if="vm.queueCampaign.dialMethod === \'preview\' || vm.queueCampaign.dialMethod === \'booked\'" class="queueCampaign-detail-form-container advancedpreview md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.ADVANCEDPREVIEW">ADVANCEDPREVIEW</div>\n </div>\n <form name="advancedpreviewForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.acw" aria-label="AfterCallWork" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.AFTERCALLWORK">AfterCallWork</span></md-switch>\n <div class="hint"><span translate="MOTIONDIALER.HELP.AFTERCALLWORK"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.acw" class="md-block">\n <label translate="MOTIONDIALER.AFTERCALLWORKDURATION">AfterCallWorkDuration</label>\n <input type="number" name="acwTimeout" ng-model="vm.queueCampaign.acwTimeout" min="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AFTERCALLWORKDURATION"></span></div>\n <div ng-messages="advancedpreviewForm[\'acwTimeout\'].$error" ng-show="advancedpreviewForm[\'acwTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AFTERCALLWORKDURATION_REQUIRED">AfterCallWorkDuration field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AFTERCALLWORKDURATION_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AfterCallWorkDuration must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.MONITORFORMAT">MonitorFormat</label>\n <md-select name="monitor_format" ng-model="vm.queueCampaign.monitor_format" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">Inactive</md-option>\n <md-option ng-value="\'wav\'">wav</md-option>\n <md-option ng-value="\'wav49\'">wav49</md-option>\n <md-option ng-value="\'gsm\'">gsm</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.MONITORFORMAT"></span></div>\n <div ng-messages="advancedpreviewForm[\'monitor_format\'].$error" ng-show="advancedpreviewForm[\'monitor_format\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MONITORFORMAT_REQUIRED">MonitorFormat field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DIALORDERBYSCHEDULEDAT">DialOrderByScheduledAt</label>\n <md-select name="dialOrderByScheduledAt" ng-model="vm.queueCampaign.dialOrderByScheduledAt" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'DESC\'"> {{ \'MOTIONDIALER.DESC\' | translate }} </md-option>\n\n <md-option ng-value="\'ASC\'"> {{ \'MOTIONDIALER.ASC\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.DIALORDERBYSCHEDULEDAT"></span></div>\n <div ng-messages="advancedpreviewForm[\'dialOrderByScheduledAt\'].$error" ng-show="advancedpreviewForm[\'dialOrderByScheduledAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DIALORDERBYSCHEDULEDAT_REQUIRED">DialOrderByScheduledAt field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.mandatoryDisposition" class="md-block">\n <label translate="MOTIONDIALER.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.queueCampaign.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="advancedpreviewForm[\'mandatoryDispositionPauseId\'].$error" ng-show="advancedpreviewForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div ng-if="vm.queueCampaign.dialMethod === \'predictive\'" class="queueCampaign-detail-form-container thresholds md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.THRESHOLDS">THRESHOLDS</div>\n </div>\n <form name="thresholdsForm" novalidate>\n <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n <span translate="MOTIONDIALER.PREDICTIVEMAXTHRESHOLD">PredictiveMaxThreshold</span>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEMAXTHRESHOLD"></span></div>\n <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPredictiveIntervalMaxThreshold" min="1" max="100" step="1" class="md-accent"></md-slider>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n <span translate="MOTIONDIALER.PREDICTIVEMINTHRESHOLD">PredictiveMinThreshold</span>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEMINTHRESHOLD"></span></div>\n <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPredictiveIntervalMinThreshold" min="1" max="100" step="1" class="md-accent"></md-slider>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container recallme md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.RECALLME">RECALLME</div>\n </div>\n <form name="recallmeForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DIALRECALLMETIMEOUT">DialRecallMeTimeout</label>\n <input type="number" name="dialRecallMeTimeout" ng-model="vm.queueCampaign.dialRecallMeTimeout" min="1" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.DIALRECALLMETIMEOUT"></span></div>\n <div ng-messages="recallmeForm[\'dialRecallMeTimeout\'].$error" ng-show="recallmeForm[\'dialRecallMeTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DIALRECALLMETIMEOUT_REQUIRED">DialRecallMeTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.DIALRECALLMETIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">DialRecallMeTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.dialRecallInQueue" aria-label="DialRecallInQueue" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.DIALRECALLINQUEUE">DialRecallInQueue</span></md-switch>\n <div class="hint"><span translate="MOTIONDIALER.HELP.DIALRECALLINQUEUE"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod == \'preview\'" class="md-block">\n <md-switch ng-model="vm.queueCampaign.dialPreviewAutoRecallMe" aria-label="Preview_Auto_Recall_Me" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.PREVIEW_AUTO_RECALL_ME">Preview_Auto_Recall_Me</span></md-switch>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREVIEW_AUTO_RECALL_ME"></span></div>\n </md-input-container>\n\n </form>\n </div>\n <div ng-if="vm.queueCampaign.dialMethod != \'preview\'" class="queueCampaign-detail-form-container globalinterval md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.GLOBALINTERVAL">GLOBALINTERVAL</div>\n </div>\n <form name="globalintervalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.GLOBALINTERVAL">GlobalInterval</label>\n <input type="text" name="dialGlobalInterval" ng-model="vm.queueCampaign.dialGlobalInterval" value="07:00-22:00,*,*,*" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.GLOBALINTERVAL"></span></div>\n <div ng-messages="globalintervalForm[\'dialGlobalInterval\'].$error" ng-show="globalintervalForm[\'dialGlobalInterval\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.GLOBALINTERVAL_REQUIRED">GlobalInterval field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div ng-if="vm.queueCampaign.dialMethod != \'preview\'" class="queueCampaign-detail-form-container timezone md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.TIMEZONE">TIMEZONE</div>\n </div>\n <form name="timezoneForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.TIMEZONE">Timezone</label>\n <ms-timezone name="dialTimezone" ng-model="vm.queueCampaign.dialTimezone" autofocus ng-disabled="!vm.crudPermissions.canEdit"></ms-timezone>\n <div class="hint"><span translate="MOTIONDIALER.HELP.TIMEZONE"></span></div>\n <div ng-messages="timezoneForm[\'dialTimezone\'].$error" ng-show="timezoneForm[dialTimezone].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.TIMEZONE_REQUIRED">Timezone field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="queueCampaign-detail-form-container amd md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.AMD">AMD</div>\n </div>\n <form name="amdForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.dialAMDActive" aria-label="AMDActive" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.AMDACTIVE">AMDActive</span></md-switch>\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDACTIVE"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDINITIALSILENCE">AMDInitialSilence</label>\n <input type="number" name="dialAMDInitialSilence" ng-model="vm.queueCampaign.dialAMDInitialSilence" min="0" value="2500" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDINITIALSILENCE"></span></div>\n <div ng-messages="amdForm[\'dialAMDInitialSilence\'].$error" ng-show="amdForm[\'dialAMDInitialSilence\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDINITIALSILENCE_REQUIRED">AMDInitialSilence field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDINITIALSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDInitialSilence must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDGREETING">AMDGreeting</label>\n <input type="number" name="dialAMDGreeting" ng-model="vm.queueCampaign.dialAMDGreeting" min="0" value="1500" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDGREETING"></span></div>\n <div ng-messages="amdForm[\'dialAMDGreeting\'].$error" ng-show="amdForm[\'dialAMDGreeting\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDGREETING_REQUIRED">AMDGreeting field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDGREETING_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDGreeting must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDAFTERGREETINGSILENCE">AMDAfterGreetingSilence</label>\n <input type="number" name="dialAMDAfterGreetingSilence" ng-model="vm.queueCampaign.dialAMDAfterGreetingSilence" min="0" value="800" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDAFTERGREETINGSILENCE"></span></div>\n <div ng-messages="amdForm[\'dialAMDAfterGreetingSilence\'].$error" ng-show="amdForm[\'dialAMDAfterGreetingSilence\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDAFTERGREETINGSILENCE_REQUIRED">AMDAfterGreetingSilence field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDAFTERGREETINGSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDAfterGreetingSilence must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDTOTALANALYSISTIME">AMDTotalAnalysisTime</label>\n <input type="number" name="dialAMDTotalAnalysisTime" ng-model="vm.queueCampaign.dialAMDTotalAnalysisTime" min="0" value="5000" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDTOTALANALYSISTIME"></span></div>\n <div ng-messages="amdForm[\'dialAMDTotalAnalysisTime\'].$error" ng-show="amdForm[\'dialAMDTotalAnalysisTime\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDTOTALANALYSISTIME_REQUIRED">AMDTotalAnalysisTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDTOTALANALYSISTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDTotalAnalysisTime must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDMINWORDLENGTH">AMDMinWordLength</label>\n <input type="number" name="dialAMDMinWordLength" ng-model="vm.queueCampaign.dialAMDMinWordLength" min="0" value="100" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDMINWORDLENGTH"></span></div>\n <div ng-messages="amdForm[\'dialAMDMinWordLength\'].$error" ng-show="amdForm[\'dialAMDMinWordLength\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDMINWORDLENGTH_REQUIRED">AMDMinWordLength field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDMINWORDLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDMinWordLength must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDBETWEENWORDSSILENCE">AMDBetweenWordsSilence</label>\n <input type="number" name="dialAMDBetweenWordsSilence" ng-model="vm.queueCampaign.dialAMDBetweenWordsSilence" min="0" value="50" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDBETWEENWORDSSILENCE"></span></div>\n <div ng-messages="amdForm[\'dialAMDBetweenWordsSilence\'].$error" ng-show="amdForm[\'dialAMDBetweenWordsSilence\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDBETWEENWORDSSILENCE_REQUIRED">AMDBetweenWordsSilence field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDBETWEENWORDSSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDBetweenWordsSilence must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDMAXIMUMNUMBEROFWORDS">AMDMaximumNumberOfWords</label>\n <input type="number" name="dialAMDMaximumNumberOfWords" ng-model="vm.queueCampaign.dialAMDMaximumNumberOfWords" min="0" value="3" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDMAXIMUMNUMBEROFWORDS"></span></div>\n <div ng-messages="amdForm[\'dialAMDMaximumNumberOfWords\'].$error" ng-show="amdForm[\'dialAMDMaximumNumberOfWords\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMNUMBEROFWORDS_REQUIRED">AMDMaximumNumberOfWords field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMNUMBEROFWORDS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDMaximumNumberOfWords must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDSILENCETHRESHOLD">AMDSilenceThreshold</label>\n <input type="number" name="dialAMDSilenceThreshold" ng-model="vm.queueCampaign.dialAMDSilenceThreshold" min="0" max="32767" value="256" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDSILENCETHRESHOLD"></span></div>\n <div ng-messages="amdForm[\'dialAMDSilenceThreshold\'].$error" ng-show="amdForm[\'dialAMDSilenceThreshold\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_REQUIRED">AMDSilenceThreshold field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDSilenceThreshold must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_MUST_BE_LESS_THAN_OR_EQUAL_TO">AMDSilenceThreshold must be a valid greater or equal than</span> <span>32767</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDMAXIMUMWORDLENGTH">AMDMaximumWordLength</label>\n <input type="number" name="dialAMDMaximumWordLength" ng-model="vm.queueCampaign.dialAMDMaximumWordLength" min="0" value="5000" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDMAXIMUMWORDLENGTH"></span></div>\n <div ng-messages="amdForm[\'dialAMDMaximumWordLength\'].$error" ng-show="amdForm[\'dialAMDMaximumWordLength\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMWORDLENGTH_REQUIRED">AMDMaximumWordLength field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMWORDLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDMaximumWordLength must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.HOPPERS">HOPPERS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="queueCampaign-detail-form-container hopperstatistics md-background-bg md-whiteframe-1dp">\n <div ng-controller="QueueCampaignHopperStatisticsController as vm_hs" ng-init="vm_hs.init(vm.queueCampaign)">\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.HOPPERWIDGET">Hoppers</span>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_hs.init(vm.queueCampaign)" aria-label="refresh Hopper" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{(vm_hs.total || 0) + (vm_hs.closed || 0)}}</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.TOTAL\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{vm_hs.fresh || 0}} ({{vm_hs.total ? ((((vm_hs.fresh || 0) * 100)/((vm_hs.closed || 0) + (vm_hs.total || 0))) | number: 2) : 0}}%)</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.FRESH\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{vm_hs.total ? (vm_hs.total - (vm_hs.fresh || 0)) : 0}} ({{vm_hs.total ? ((((vm_hs.total - (vm_hs.fresh || 0)) * 100)/((vm_hs.closed || 0) + (vm_hs.total || 0))) | number: 2) : 0}}%)</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.OPEN\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{vm_hs.closed ? (vm_hs.closed || 0) : 0}} ({{vm_hs.closed ? ((((vm_hs.closed) * 100)/(vm_hs.closed + (vm_hs.total || 0))) | number: 2) : 0}}%)</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.CLOSED\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n </div>\n\n </div>\n <div class="queueCampaign-detail-form-container hoppers md-background-bg md-whiteframe-1dp">\n <div ng-controller="QueueCampaignHoppersController as vm_dc" ng-init="vm_dc.init(vm.queueCampaign, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedQueueCampaignHoppers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.HOPPERS">Hoppers</span>\n <ms-search-bar on-search="vm_dc.getQueueCampaignHoppers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_dc.getQueueCampaignHoppers()" aria-label="refresh Hoppers" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedQueueCampaignHoppers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedQueueCampaignHoppers.length}} {{vm_dc.selectedQueueCampaignHoppers.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedQueueCampaignHoppers" csv-label="true" filename="queueCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedQueueCampaignHoppers($event)" aria-label="delete selected" translate translate-attr-label="MOTIONDIALER.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedQueueCampaignHoppers" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getQueueCampaignHoppers">\n <tr md-row>\n <th md-column md-order-by="ContactId">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="phone">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column md-order-by="countcongestionretry">\n {{ \'MOTIONDIALER.CONGESTION\' | translate }}\n </th>\n <th md-column md-order-by="countbusyretry">\n {{ \'MOTIONDIALER.BUSY\' | translate }}\n </th>\n <th md-column md-order-by="countnoanswerretry">\n {{ \'MOTIONDIALER.NOANSWER\' | translate }}\n </th>\n <th md-column md-order-by="countnosuchnumberretry">\n {{ \'MOTIONDIALER.NOSUCHNUMBER\' | translate }}\n </th>\n <th md-column md-order-by="countdropretry">\n {{ \'MOTIONDIALER.DROP\' | translate }}\n </th>\n <th md-column md-order-by="countabandonedretry">\n {{ \'MOTIONDIALER.ABANDONED\' | translate }}\n </th>\n <th md-column md-order-by="countmachineretry">\n {{ \'MOTIONDIALER.MACHINE\' | translate }}\n </th>\n <th md-column md-order-by="countagentrejectretry">\n {{ \'MOTIONDIALER.AGENTREJECT\' | translate }}\n </th>\n <th md-column md-order-by="scheduledat">\n {{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}\n </th>\n <th md-column md-order-by="priority">\n {{ \'MOTIONDIALER.PRIORITY\' | translate }}\n </th>\n <th md-column md-order-by="recallme">\n {{ \'MOTIONDIALER.RECALLAGENT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="hopper" md-select-id="id" ng-repeat="hopper in vm_dc.queueCampaignHoppers.rows">\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.ContactId}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell privacy ng-cloak>\n {{hopper.phone}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countcongestionretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countbusyretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countnoanswerretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countnosuchnumberretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countdropretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countabandonedretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countmachineretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countagentrejectretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{ hopper.scheduledat | formatdate }}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{ vm_dc.arraypriority[hopper.priority].option }} </td>\n\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell class="recallme ">\n <md-icon md-colors="{color: {{hopper.recallme ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{hopper.recallme? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" translate="MOTIONDIALER.EDIT_HOPPER">\n Edit Hopper\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(hopper, $event)" translate="MOTIONDIALER.DELETE_HOPPER">\n Delete Hopper\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.queueCampaignHoppers.rows.length">\n <td md-cell colspan="17">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPER_AVAILABLE">No hopper available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.queueCampaignHoppers.count}}" md-on-paginate="vm_dc.getQueueCampaignHoppers" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.HISTORY">HISTORY</span>\n </md-tab-label>\n <md-tab-body>\n <div class="queueCampaign-detail-form-container hopperhistories md-background-bg md-whiteframe-1dp">\n <div ng-controller="QueueCampaignHopperHistoriesController as vm_dc" ng-init="vm_dc.init(vm.queueCampaign, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedQueueCampaignHopperHistories.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.HOPPERHISTORIES">HopperHistories</span>\n <ms-search-bar on-search="vm_dc.getQueueCampaignHopperHistories()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_dc.getQueueCampaignHopperHistories()" aria-label="refresh HopperHistories" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERHISTORIES">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedQueueCampaignHopperHistories.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedQueueCampaignHopperHistories.length}} {{vm_dc.selectedQueueCampaignHopperHistories.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedQueueCampaignHopperHistories" csv-label="true" filename="queueCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedQueueCampaignHopperHistories" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getQueueCampaignHopperHistories">\n <tr md-row>\n <th md-column md-order-by="uniqueid">\n {{ \'MOTIONDIALER.UNIQUEID\' | translate }}\n </th>\n <th md-column md-order-by="ContactId">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="calleridnum">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column md-order-by="calleridname">\n {{ \'MOTIONDIALER.NAME\' | translate }}\n </th>\n <th md-column md-order-by="statedesc">\n {{ \'MOTIONDIALER.STATUS\' | translate }}\n </th>\n <th md-column md-order-by="scheduledat">\n {{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}\n </th>\n <th md-column md-order-by="starttime">\n {{ \'MOTIONDIALER.STARTTIME\' | translate }}\n </th>\n <th md-column md-order-by="endtime">\n {{ \'MOTIONDIALER.ENDTIME\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="hopperHistory" md-select-id="id" ng-repeat="hopperHistory in vm_dc.queueCampaignHopperHistories.rows">\n <td md-cell>\n {{hopperHistory.uniqueid}}\n </td>\n <td md-cell>\n {{hopperHistory.ContactId}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperHistory.calleridnum}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperHistory.calleridname}}\n </td>\n <td md-cell>\n {{hopperHistory.statedesc}}\n </td>\n <td md-cell>\n {{ hopperHistory.scheduledat | formatdate }}\n </td>\n <td md-cell>\n {{ hopperHistory.starttime | formatdate }}\n </td>\n <td md-cell>\n {{ hopperHistory.endtime | formatdate }}\n </td>\n <td md-cell class="actions">\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.queueCampaignHopperHistories.rows.length">\n <td md-cell colspan="11">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPERHISTORY_AVAILABLE">No hopperhistory available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.queueCampaignHopperHistories.count}}" md-on-paginate="vm_dc.getQueueCampaignHopperHistories" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.FINAL">FINAL</span>\n </md-tab-label>\n <md-tab-body>\n <div class="queueCampaign-detail-form-container hopperfinals md-background-bg md-whiteframe-1dp">\n <div ng-controller="QueueCampaignHopperFinalsController as vm_dc" ng-init="vm_dc.init(vm.queueCampaign, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedQueueCampaignHopperFinals.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.HOPPERFINALS">HopperFinals</span>\n <ms-search-bar on-search="vm_dc.getQueueCampaignHopperFinals()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_dc.getQueueCampaignHopperFinals()" aria-label="refresh HopperFinals" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERFINALS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="vm_dc.countContactsQueueCampaignHopperFinal(vm_dc.query.id); $mdOpenMenu($event);">\n <md-icon md-font-icon="icon-backup-restore"></md-icon>\n <md-tooltip><span translate="MOTIONDIALER.RESTORECONTACTS"></span></md-tooltip>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(3)">\n <span translate="MOTIONDIALER.NOANSWER ">NoAnswer</span>\n <span class="badge">({{vm_dc.contacts.noAnswerContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(5)">\n <span translate="MOTIONDIALER.BUSY ">Busy</span>\n <span class="badge">({{vm_dc.contacts.busyContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(8)">\n <span translate="MOTIONDIALER.CONGESTION ">Congestion</span>\n <span class="badge">({{vm_dc.contacts.congestionContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(10)">\n <span translate="MOTIONDIALER.DROPPED ">Drop</span>\n <span class="badge">({{vm_dc.contacts.dropContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(11)">\n <span translate="MOTIONDIALER.ABANDONED ">Abandoned</span>\n <span class="badge">({{vm_dc.contacts.abandonedContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(22)">\n <span translate="MOTIONDIALER.RECALLFAILEDTIMEOUT">Recall</span>\n <span class="badge">({{vm_dc.contacts.reCallContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(0)">\n <span translate="MOTIONDIALER.NO_SUCH_NUMBER">NoSuchNumber</span>\n <span class="badge">({{vm_dc.contacts.noSuchContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(19)">\n <span translate="MOTIONDIALER.ANSWERING_MACHINE">AnsweringMachine</span>\n <span class="badge">({{vm_dc.contacts.answeringMachine}})</span>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedQueueCampaignHopperFinals.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedQueueCampaignHopperFinals.length}} {{vm_dc.selectedQueueCampaignHopperFinals.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedQueueCampaignHopperFinals" csv-label="true" filename="queueCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.moveSelectedQueueCampaignHopperFinals($event)" aria-label="move selected" translate translate-attr-label="MOTIONDIALER.MOVE_SELECTED">\n <md-icon md-font-icon="icon-restore"></md-icon>\n <md-tooltip><span translate="MOTIONDIALER.RESTORECONTACTS"></span></md-tooltip>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedQueueCampaignHopperFinals" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getQueueCampaignHopperFinals">\n <tr md-row>\n <th md-column md-order-by="uniqueid">\n {{ \'MOTIONDIALER.UNIQUEID\' | translate }}\n </th>\n <th md-column md-order-by="ContactId">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="calleridnum">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column md-order-by="calleridname">\n {{ \'MOTIONDIALER.NAME\' | translate }}\n </th>\n <th md-column md-order-by="statedesc">\n {{ \'MOTIONDIALER.STATUS\' | translate }}\n </th>\n <th md-column md-order-by="countcongestionretry">\n {{ \'MOTIONDIALER.CONGESTION\' | translate }}\n </th>\n <th md-column md-order-by="countbusyretry">\n {{ \'MOTIONDIALER.BUSY\' | translate }}\n </th>\n <th md-column md-order-by="countnoanswerretry">\n {{ \'MOTIONDIALER.NOANSWER\' | translate }}\n </th>\n <th md-column md-order-by="countnosuchnumberretry">\n {{ \'MOTIONDIALER.NOSUCHNUMBER\' | translate }}\n </th>\n <th md-column md-order-by="countdropretry">\n {{ \'MOTIONDIALER.DROP\' | translate }}\n </th>\n <th md-column md-order-by="countabandonedretry">\n {{ \'MOTIONDIALER.ABANDONED\' | translate }}\n </th>\n <th md-column md-order-by="countmachineretry">\n {{ \'MOTIONDIALER.MACHINE\' | translate }}\n </th>\n <th md-column md-order-by="countagentrejectretry">\n {{ \'MOTIONDIALER.AGENTREJECT\' | translate }}\n </th>\n <th md-column md-order-by="starttime">\n {{ \'MOTIONDIALER.STARTTIME\' | translate }}\n </th>\n <th md-column md-order-by="endtime">\n {{ \'MOTIONDIALER.ENDTIME\' | translate }}\n </th>\n <th md-column md-order-by="disposition">\n {{ \'MOTIONDIALER.DISPOSITION\' | translate }}\n </th>\n <th md-column md-order-by="secondDisposition">\n {{ \'MOTIONDIALER.SECOND_LEVEL_DISPOSITION\' | translate }}\n </th>\n <th md-column md-order-by="thirdDisposition">\n {{ \'MOTIONDIALER.THIRD_LEVEL_DISPOSITION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="hopperFinal" md-select-id="id" ng-repeat="hopperFinal in vm_dc.queueCampaignHopperFinals.rows">\n <td md-cell>\n {{hopperFinal.uniqueid}}\n </td>\n <td md-cell>\n {{hopperFinal.ContactId}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperFinal.calleridnum}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperFinal.calleridname}}\n </td>\n <td md-cell>\n {{hopperFinal.statedesc}}\n </td>\n <td md-cell>\n {{hopperFinal.countcongestionretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countbusyretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countnoanswerretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countnosuchnumberretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countdropretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countabandonedretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countmachineretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countagentrejectretry}}\n </td>\n <td md-cell>\n {{ hopperFinal.starttime | formatdate }}\n </td>\n <td md-cell>\n {{ hopperFinal.endtime | formatdate }}\n </td>\n <td md-cell>\n {{hopperFinal.disposition}}\n </td>\n <td md-cell>\n {{hopperFinal.secondDisposition}}\n </td>\n <td md-cell>\n {{hopperFinal.thirdDisposition}}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveConfirm(hopperFinal, $event)" translate="MOTIONDIALER.MOVE_HOPPERFINAL">\n Move HopperFinal\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.queueCampaignHopperFinals.rows.length">\n <td md-cell colspan="30">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPERFINAL_AVAILABLE">No hopperfinal available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.queueCampaignHopperFinals.count}}" md-on-paginate="vm_dc.getQueueCampaignHopperFinals" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.BLACKLIST">BLACKLIST</span>\n </md-tab-label>\n <md-tab-body>\n <div class="queueCampaign-detail-form-container hopperblacks md-background-bg md-whiteframe-1dp">\n <div ng-controller="QueueCampaignHopperBlacksController as vm_dc" ng-init="vm_dc.init(vm.queueCampaign, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedQueueCampaignHopperBlacks.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.HOPPERBLACKS">HopperBlacks</span>\n <ms-search-bar on-search="vm_dc.getQueueCampaignHopperBlacks()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedQueueCampaignHopperBlacks.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedQueueCampaignHopperBlacks.length}} {{vm_dc.selectedQueueCampaignHopperBlacks.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedQueueCampaignHopperBlacks" csv-label="true" filename="queueCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedQueueCampaignHopperBlacks" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getQueueCampaignHopperBlacks">\n <tr md-row>\n <th md-column md-order-by="ContactId">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="phone">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="hopperBlack" md-select-id="id" ng-repeat="hopperBlack in vm_dc.queueCampaignHopperBlacks.rows">\n <td md-cell>\n {{hopperBlack.ContactId}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperBlack.phone}}\n </td>\n <td md-cell class="actions">\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.queueCampaignHopperBlacks.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPERBLACK_AVAILABLE">No hopperblack available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.queueCampaignHopperBlacks.count}}" md-on-paginate="vm_dc.getQueueCampaignHopperBlacks" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/queueCampaigns.html",'<div id="queueCampaigns" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-fire" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="MOTIONDIALER.QUEUECAMPAIGNS">QueueCampaigns</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="MOTIONDIALER.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedQueueCampaigns.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedQueueCampaigns =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="MOTIONDIALER.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-queueCampaigns-count">\n <span>{{vm.selectedQueueCampaigns.length}}</span>\n <span translate="MOTIONDIALER.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="MOTIONDIALER.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllQueueCampaigns()" translate="MOTIONDIALER.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectQueueCampaigns()" translate="MOTIONDIALER.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedQueueCampaigns" csv-label="true" filename="queueCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedQueueCampaigns($event)" aria-label="delete selected" translate translate-attr-label="MOTIONDIALER.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- QUEUECAMPAIGN TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedQueueCampaigns" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueueCampaigns">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'MOTIONDIALER.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'MOTIONDIALER.NAME\' | translate }}</th>\n <th md-column md-order-by="dialActive">{{ \'MOTIONDIALER.ACTIVE\' | translate }}</th>\n <th md-column md-order-by="TrunkId">{{ \'MOTIONDIALER.TRUNK\' | translate }}</th>\n <th md-column md-order-by="dialMethod">{{ \'MOTIONDIALER.METHOD\' | translate }}</th>\n <th md-column md-order-by="strategy">{{ \'MOTIONDIALER.STRATEGY\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.queueCampaigns.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="queueCampaign" md-select-id="id" ng-repeat="queueCampaign in vm.queueCampaigns.rows">\n <td md-cell ng-if="queueCampaign.userpic"><img class="avatar" alt="{{queueCampaign.name}}" ng-src="api/users/{{queueCampaign.id}}/avatar" /></td>\n <td md-cell ng-if="!queueCampaign.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{queueCampaign.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(queueCampaign, ev) : vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="id ">{{queueCampaign.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(queueCampaign, ev) : vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="name ">{{queueCampaign.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(queueCampaign, ev) : vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="dialActive ">\n <md-icon md-colors="{color: {{queueCampaign.dialActive ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{queueCampaign.dialActive ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(queueCampaign, ev) : vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="TrunkId ">{{ (vm.trunks | filter : {\'id\':queueCampaign.TrunkId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(queueCampaign, ev) : vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="dialMethod ">{{ vm.arraydialMethod[queueCampaign.dialMethod].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(queueCampaign, ev) : vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="strategy ">{{ vm.arraystrategy[queueCampaign.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(queueCampaign, $event )" translate="MOTIONDIALER.EDIT_QUEUECAMPAIGN">\n Edit QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.clonedialog(queueCampaign, $event )" translate="MOTIONDIALER.CLONE_QUEUECAMPAIGN">\n clone QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.listadddialog(queueCampaign, $event )" translate="MOTIONDIALER.LISTADD_QUEUECAMPAIGN">\n listadd QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.blacklistadddialog(queueCampaign, $event )" translate="MOTIONDIALER.BLACKLISTADD_QUEUECAMPAIGN">\n blacklistadd QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(queueCampaign, $event )" translate="MOTIONDIALER.TEAMADD_QUEUECAMPAIGN">\n teamadd QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(queueCampaign, $event )" translate="MOTIONDIALER.AGENTADD_QUEUECAMPAIGN">\n agentadd QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(queueCampaign, $event )" translate="MOTIONDIALER.DELETE_QUEUECAMPAIGN">\n Delete QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(queueCampaign, $event )" translate="MOTIONDIALER.GOTOREALTIME_QUEUECAMPAIGN">\n goToRealtime QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queueCampaigns.count}}" md-on-paginate="vm.getQueueCampaigns" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / QUEUECAMPAIGN TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD QUEUECAMPAIGN BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-queueCampaign-button" ng-click="vm.createOrEditQueueCampaign($event)" aria-label="add queueCampaign" translate translate-attr-aria-label="MOTIONDIALER.ADD_QUEUECAMPAIGN">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD QUEUECAMPAIGN BUTTON --\x3e\n</div>'),e.put("app/main/apps/motiondialer/views/realtime/abandonedcalls/view.html",'<md-toolbar class="md-table-toolbar md-default table-header">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.ABANDONEDQUEUECALLS">ABANDONED QUEUE CALLS</span>\n <ms-search-bar on-search="vm.getAbandonedCalls()" query="vm.query" on-collapse="vm.query.filter = undefined" debounce="300">\n </ms-search-bar>\n <div flex></div>\n\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getAbandonedCalls()"></ms-quick-filter>\n\n <md-button class="md-icon-button" ng-click="vm.refresh && vm.refreshAbandonedCalls($event)" aria-label="Reload" translate translate-attr-label="DASHBOARDS.RELOAD">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip ng-if="vm.showTooltip" md-visible="vm.showTooltip">{{\'DASHBOARDS.CLICKRELOAD\' | translate}}\n </md-tooltip>\n </md-button>\n </div>\n</md-toolbar>\n<md-table-container>\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getAbandonedCalls">\n <tr md-row>\n <th md-column md-order-by="id">ID</th>\n <th md-column md-order-by="calleridname">{{\'DASHBOARDS.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="calleridnum">{{\'DASHBOARDS.PHONE\' | translate}}</th>\n <th md-column md-order-by="queue">{{\'DASHBOARDS.QUEUE\' | translate}}</th>\n <th md-column md-order-by="queuecallerabandonAt">{{\'DASHBOARDS.ABANDONAT\' | translate}}</th>\n <th md-column md-order-by="queuecallerexitAt">{{\'DASHBOARDS.QUEUECALLEREXITAT\' | translate}}</th>\n <th md-column md-order-by="queuecallerexitreason">{{\'DASHBOARDS.QUEUECALLEREXITREASON\' | translate}}</th>\n <th md-column md-order-by="lastAssignedTo">{{\'DASHBOARDS.LASTASSIGNEDTO\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.abandonedCalls.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="call in vm.abandonedCalls.rows">\n <td md-cell class="id">{{call.id}}</td>\n <td md-cell class="firstName" privacy ng-cloak>{{call.calleridname}}</td>\n <td md-cell class="list" privacy ng-cloak>{{call.calleridnum}}</td>\n <td md-cell class="list">{{vm.queuesMap[call.queue]}}</td>\n <td md-cell class="list">\n {{call.queuecallerabandonAt ? (call.queuecallerabandonAt | formatdate) : (call.queuecallerexitAt | formatdate) }}\n </td>\n <td md-cell class="list">{{call.queuecallerexitAt ? (call.queuecallerexitAt | formatdate) : undefined }}\n </td>\n <td md-cell class="list">{{call.queuecallerexitreason}}</td>\n <td md-cell class="list">{{call.lastAssignedTo}}</td>\n <td md-cell class="list">{{ call.disposition }}</td>\n <td md-cell class="list">{{ call.secondDisposition }}</td>\n <td md-cell class="list">{{ call.thirdDisposition }}</td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button ng-click="$mdMenu.open()" class="text-capitalize" translate="DASHBOARDS.ASSIGNTO">\n Assigned\n to</md-button>\n <md-menu-content>\n <md-menu-item ng-if="call.lastAssignedTo">\n <md-button ng-click="vm.assignTo(call)"><em translate="DASHBOARDS.NONE">Not Assigned</em>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.agents.rows.length" ng-repeat="agent in vm.agents.rows">\n <md-button ng-click="vm.assignTo(call,agent)">{{agent.name}}</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.dispose(call)" class="text-capitalize" translate="DASHBOARDS.DISPOSE">\n Dispose\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.abandonedCalls.count}}" md-on-paginate="vm.getAbandonedCalls" md-page-select></md-table-pagination>'),e.put("app/main/apps/motiondialer/views/realtime/ivr_campaigns/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.IVR_CAMPAIGNS">Ivr Campaigns</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getCampaigns()" query="vm.query" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n\n\x3c!-- QUEUE TABLE --\x3e\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getCampaigns">\n <tr md-row>\n <th md-column>{{\'MOTIONDIALER.NAME\' | translate}}</th>\n <th md-column>{{\'MOTIONDIALER.TOTAL\' | translate}}</th>\n <th md-column>{{\'MOTIONDIALER.TOTAL_MANAGED\' | translate}}</th>\n <th md-column>{{\'MOTIONDIALER.LIMITED\' | translate}}</th>\n <th md-column>{{\'MOTIONDIALER.ORIGINATED\' | translate}}</th>\n <th md-column>{{\'MOTIONDIALER.MESSAGE\' | translate}}</th>\n <th md-column>{{\'MOTIONDIALER.CALLYSQUAREPROJECT\' | translate}}</th>\n <th md-column>{{\'MOTIONDIALER.TRUNK\' | translate }}</th>\n <th md-column>{{\'MOTIONDIALER.ACTIVE\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.campaigns">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span translate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(id, campaign) in vm.campaigns">\n <td md-cell>\n <span>{{campaign.name}}</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{campaign.ivrTotalCallsDays || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{campaign.ivrAnswerCallsDay || 0}} ({{(campaign.ivrTotalCallsDays) ? (campaign.ivrAnswerCallsDay || 0) * 100/(campaign.ivrTotalCallsDays ) : 0 | number:1}}%)</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{campaign.limitCalls || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{campaign.originated || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{campaign.message ? (\'MOTIONDIALER.\'+campaign.message | translate) : \'--\'}}</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{campaign.dialQueueProject || \'--\'}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{campaign.Trunk ? campaign.Trunk.name : \'--\'}}</span>\n </td>\n <td md-cell>\n <md-icon md-colors="{color: {{campaign.active ? \'\\\'green\\\'\' : \'\\\'red\\\'\'}}}" md-font-icon="{{campaign.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.createOrEditIvrCampaign($event, campaign)" translate="MOTIONDIALER.EDIT_CAMPAIGN">\n Edit Campaign\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getCampaigns" md-page-select></md-table-pagination>\n\x3c!-- / QUEUE TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/motiondialer/views/realtime/queue_calls/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.QUEUE_CALLS">Queue Calls</span>\n </div>\n</md-toolbar>\n\x3c!-- QUEUES TABLE --\x3e\n<md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column width="30px"></th>\n <th md-column>{{ \'MOTIONDIALER.DID\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.QUEUE\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.CALLER\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.AGENT\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.DURATION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.getSize(vm.rpcVoiceQueuesChannels)">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, channel) in vm.rpcVoiceQueuesChannels | limitObjectFromTo: vm.queryChannels.limit:(vm.queryChannels.page - 1) * vm.queryChannels.limit">\n <td md-cell>\n <md-icon ng-if="channel.queuecallerleaveAt" md-font-icon="icon-phone-in-talk green-fg"></md-icon>\n <md-icon ng-if="!channel.queuecallerleaveAt" md-font-icon="icon-phone-incoming md-accent"></md-icon>\n </td>\n <td md-cell>{{channel.exten}}</td>\n <td md-cell>{{channel.queue}}</td>\n <td md-cell privacy ng-cloak>{{channel.calleridnum}}</td>\n <td md-cell>\n <span ng-if="channel.queuecallerleaveAt">\n {{channel.connectedlinename}}, {{channel.connectedlinenum}}\n <span class="text-boxed">\n <timer start-time="channel.queuecallerleaveAt"></timer>\n </span>\n </span>\n <span ng-if="!channel.queuecallerleaveAt" class="text-boxed">\n {{ \'MOTIONDIALER.WAITING_FOR_AGENT\' | translate }}\n <timer start-time="channel.queuecallerjoinAt"></timer>\n </span>\n </td>\n <td md-cell>\n <span class="text-boxed">\n <timer start-time="channel.queuecallerjoinAt"></timer>\n </span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.hangup(channel.uniqueid)" translate="MOTIONDIALER.HANGUP">\n Hangup\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.redirectToNumber($event, channel.uniqueid)" translate="MOTIONDIALER.REDIRECT_TO_NUMBER">\n Number\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-menu class="no-margin">\n <md-button ng-mouseenter="vm.getAvailableAgents()" translate="MOTIONDIALER.REDIRECT_TO_AGENT">\n Redirect to Agent</md-button>\n <md-menu-content>\n <md-menu-item ng-if="!vm.availableAgents">\n <md-progress-circular class="md-accent auto-margin" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="vm.availableAgents.length > 0" ng-repeat="agent in vm.availableAgents">\n <md-button ng-click="vm.redirectToAgent(channel.uniqueid, agent.name, agent.context)">\n {{agent.name}}</md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.availableAgents.length === 0">\n <span>No agents available</span>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n<md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.queryChannels.limit" md-page="vm.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm.getSize(vm.rpcVoiceQueuesChannels)}}" md-page-select></md-table-pagination>\n\x3c!-- / QUEUES TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/motiondialer/views/realtime/queue_params/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.QUEUE_PARAMETERS">Params</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n\n\x3c!-- QUEUE TABLE --\x3e\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n <tr md-row>\n <th md-column>{{\'\n MOTIONDIALER.NAME\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.TOTAL\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.TOTAL_OFFERED\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.MANAGED\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.ABANDONED\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.DROPPED\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.AVG_HOLD_TIME\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.AVG_DURATION\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.AVG_BILLABLE\' | translate}}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.queues">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span translate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(id, queue) in vm.queues">\n <td md-cell>\n <span>{{queue.name}}</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{(queue.answered + queue.outboundNoAnswerCallsDay + queue.outboundBusyCallsDay + queue.outboundCongestionCallsDay + queue.outboundNoSuchCallsDay + queue.outboundUnknownCallsDay + queue.outboundDropCallsDayTimeout + queue.outboundDropCallsDayCallersExit + queue.outboundBlacklistCallsDay + queue.outboundOriginateFailureCallsDay + queue.outboundAnswerAgiCallsDay + queue.outboundReCallsDay + queue.outboundRejectCallsDay )|| 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{queue.total || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{queue.answered || 0}} ({{(queue.answered) ? (100 - (((queue.outboundDropCallsDayTimeout || 0) * 100/(queue.total)) | number:1 ) - (((queue.outboundDropCallsDayCallersExit || 0) * 100/(queue.total )) | number:1 ) ) : 0 | number:1}}%)</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{queue.outboundDropCallsDayCallersExit || 0}} ({{(queue.outboundDropCallsDayCallersExit) ? (queue.outboundDropCallsDayCallersExit || 0) * 100/(queue.total ) : 0 | number:1}}%)</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{queue.outboundDropCallsDayTimeout || 0}} ({{(queue.outboundDropCallsDayTimeout) ? (queue.outboundDropCallsDayTimeout || 0) * 100/(queue.total) : 0 | number:1}}%)</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{queue.total ? (queue.sumHoldTime / queue.total) : 0 | number: 0 | secToTime | date:\'HH:mm:ss\'}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{queue.total ? (queue.sumDuration / queue.total) : 0 | number: 0 | secToTime | date:\'HH:mm:ss\'}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{queue.answered ? ((queue.sumBillable || 0) / queue.answered) : 0 | number: 0 | secToTime | date:\'HH:mm:ss\'}}</span>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>\n\x3c!-- / QUEUE TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/motiondialer/views/realtime/queues/predictive/dialog.html",'<md-dialog class="predictive-dialog" aria-label="New predictive">\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.queueCampaign.name }} Info</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content class="text-center" ms-scroll>\n <ds-widget-clock data-show-digital></ds-widget-clock>\n <div ng-if="!vm.queueCampaign.startProgressive && !vm.queueCampaign.startPredictive">\n <div class="md-title"><span translate="MOTIONDIALER.PREDICTIVE_IS_NOT_RUNNING">Predictive is not running</span></div>\n </div>\n\n <div ng-if="vm.queueCampaign.startProgressive && !vm.queueCampaign.startPredictive" class="m-10">\n <div layout="row">\n <div flex="" class="column">\n <div class="md-headline"><span translate="MOTIONDIALER.DATA_COLLECTION_IN_PROGRESSIVE">Data collection in progressive</span></div>\n <div class="md-subhead">({{vm.queueCampaign.dialPredictiveInterval}} minutes)</div>\n </div>\n </div>\n\n <div layout="row">\n <div flex="" class="column">\n <div class="md-subhead"><span translate="MOTIONDIALER.STARTTIME">Start Time</span></div>\n <div class="md-headline">{{ vm.setFormatTime(vm.queueCampaign.startProgressive) }}</div>\n </div>\n <div flex="" class="column">\n <div class="md-subhead"><span translate="MOTIONDIALER.ENDTIME">End Time</span></div>\n <div class="md-headline">\n {{ vm.addMinutes(vm.queueCampaign.startProgressive, vm.queueCampaign.dialPredictiveInterval) }}\n </div>\n </div>\n </div>\n <div>\n <span class="text-boxed blue-bg white-fg">\n {{vm.queueCampaign.message ? (\'MOTIONDIALER.\' + vm.queueCampaign.message | translate) : \'--\'}}\n </span>\n </div>\n </div>\n <div ng-if="vm.queueCampaign.startPredictive" class="m-10">\n <div layout="row">\n <div flex="" class="column">\n <div class="md-headline"><span translate="MOTIONDIALER.PREDICTIVE_IS_RUNNING">Predictive is runnning</span></div>\n <div class="md-subhead">({{vm.queueCampaign.dialPredictiveInterval}} minutes)</div>\n </div>\n </div>\n\n <div layout="row">\n <div flex="" class="column">\n <div class="md-subhead"><span translate="MOTIONDIALER.STARTTIME">Start Time</span></div>\n <div class="md-headline">{{ vm.setFormatTime(vm.queueCampaign.startPredictive) }}</div>\n </div>\n <div flex="" class="column">\n <div class="md-subhead"><span translate="MOTIONDIALER.ENDTIME">End Time</span></div>\n <div class="md-headline">\n {{ vm.addMinutes(vm.queueCampaign.startPredictive, vm.queueCampaign.dialPredictiveInterval) }}\n </div>\n </div>\n </div>\n <div>\n <span class="text-boxed blue-bg white-fg">\n {{vm.queueCampaign.message ? (\'MOTIONDIALER.\' + vm.queueCampaign.message | translate) : \'--\'}}\n </span>\n </div>\n <div class="row">\n <md-card>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Predictive - {{ \'MOTIONDIALER.PREVIOUS_INTERVAL\' | translate }}</span>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <tbody md-body>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.TOTAL_CALLS">Total Calls</span></td>\n <td md-cell>{{ vm.queueCampaign.predictiveIntervalTotalCalls }}</td>\n </tr>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.ANSWERED_CALLS">Total Calls</span></td>\n <td md-cell>{{ vm.queueCampaign.predictiveIntervalAnsweredCalls }}</td>\n </tr>\n \x3c!-- Temporaneamente non mostrate perchè contengono anche i dati dell\'intervallo corrente --\x3e\n \x3c!-- <tr md-row>\n <td md-cell>Dropped Calls Timeout</td>\n <td md-cell>{{ vm.queueCampaign.predictiveIntervalDroppedCallsTimeout }}</td>\n </tr>\n <tr md-row>\n <td md-cell>Dropped Calls Caller Exit</td>\n <td md-cell>{{ vm.queueCampaign.predictiveIntervalDroppedCallsCallersExit }}\n </td>\n </tr> --\x3e\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.AVG_HOLD_TIME">AVG Hold Time</span></td>\n <td md-cell>~ {{ vm.queueCampaign.predictiveIntervalAvgHoldtime | number:0 }}s</td>\n </tr>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.AVG_TALK_TIME">AVG Talk Time</span></td>\n <td md-cell>~ {{ vm.queueCampaign.predictiveIntervalAvgTalktime | number:0 }}s</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-card>\n <md-card>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead">ErlangB - {{ \'MOTIONDIALER.CURRENT_INTERVAL\' | translate }}</span>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <tbody md-body>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.SCHEDULED_CALLS">Scheduled Calls</span></td>\n <td md-cell>{{ vm.queueCampaign.erlangCalls }}</td>\n </tr>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.ONE_CALL_EVERY">One call every</span></td>\n <td md-cell>~ {{ vm.queueCampaign.erlangCallToSecond | number:0 }}s</td>\n </tr>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.DROPRATE">Drop Rate</span></td>\n <td md-cell>{{ vm.queueCampaign.erlangAbandonmentRate * 100 | number:2 }}%</td>\n </tr>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.AGENTBUSYFACTOR">Agent Busy Factor</span></td>\n <td md-cell>{{ vm.queueCampaign.erlangBusyFactor * 100 | number:2 }}%</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-card>\n </div>\n </div>\n\n\n </md-dialog-content>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/realtime/queues/view.html",'<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.QUEUES">Queues</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'MOTIONDIALER.NAME\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.PAUSED\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.TALKING\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.BUSY\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.WAITING\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.ORIGINATED_TEXT\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.MESSAGE\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.METHOD\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.TRUNK\' | translate }}</th>\n <th md-column md-order-by="dialActive">{{ \'MOTIONDIALER.ACTIVE\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.queues.count > 0">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span translate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="queue" md-select-id="id" ng-repeat="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedInDb }} ({{ queue.loggedIn }})</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.talking + queue.pTalking}}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedInDb - queue.available - queue.paused - queue.talking - queue.waiting\n }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.originated }}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{ queue.message ? (\'MOTIONDIALER.\'+queue.message | translate) : \'--\'}}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.dialMethod || 0 }}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{ queue.Trunk ? queue.Trunk.name : \'--\' }}</span>\n </td>\n <td md-cell>\n <md-icon md-colors="{color: {{queue.dialActive ? \'\\\'green\\\'\' : \'\\\'red\\\'\'}}}" md-font-icon="{{queue.dialActive ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="MOTIONDIALER.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="queue.dialMethod == \'predictive\'">\n <md-button ng-click="vm.showPredictiveQueueCampaignInfo($event, queue)" translate="MOTIONDIALER.SHOW_PREDICTIVE_QUEUE_CAMPAIGN_INFO">\n Show Predictive Info\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" translate="MOTIONDIALER.AGENTSADD_QUEUE">\n Add Agents to queue\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),e.put("app/main/apps/motiondialer/views/realtime/realtime.html",'<div id="realtime" class="page-layout simple tabbed" layout="column" ng-cloak>\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.QUEUES">Queues</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.QUEUE_CALLS">Queue Calls</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.ABANDONEDCALLS">Abandoned Queue Calls</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.QUEUE_PARAMS">Queue Parameters</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.IVR_CAMPAIGNS">Ivr Campaigns</span>\n </md-tab-label>\n </md-tab>\n </md-tabs>\n\n <md-card ui-view></md-card>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/create/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.openchannelAccount.name" ng-required="true" autofocus ng-disabled="!vm.newOpenchannelAccount">\n\n <div ng-messages="openchannelAccountForm[\'name\'].$error" ng-show="openchannelAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.KEY">key</label>\n <input type="text" name="key" ng-model="vm.openchannelAccount.key" md-maxlength="5" ng-required="true">\n\n <div ng-messages="openchannelAccountForm[\'key\'].$error" ng-show="openchannelAccountForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="OPENCHANNEL.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.REPLYURI">replyUri</label>\n <input type="url" name="replyUri" ng-model="vm.openchannelAccount.replyUri">\n\n <div class="hint"><span translate="OPENCHANNEL.HELP.REPLYURI"></span></div>\n <div ng-messages="openchannelAccountForm[\'replyUri\'].$error" ng-show="openchannelAccountForm[\'replyUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.REPLYURI_REQUIRED">replyUri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="OPENCHANNEL.ERRORS.REPLYURI_MUST_VALID_URL">replyUri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.LIST">List</label>\n <md-select name="ListId" ng-model="vm.openchannelAccount.ListId" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="OPENCHANNEL.HELP.LIST"></span></div>\n <div ng-messages="openchannelAccountForm[\'ListId\'].$error" ng-show="openchannelAccountForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.openchannelAccount.description">\n\n <div ng-messages="openchannelAccountForm[\'description\'].$error" ng-show="openchannelAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newOpenchannelAccount" ng-click="vm.saveOpenchannelAccount()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountForm.$invalid || openchannelAccountForm.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newOpenchannelAccount" ng-click="vm.addNewOpenchannelAccount()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountForm.$invalid" aria-label="ADD" translate="OPENCHANNEL.ADD_OPENCHANNELACCOUNT" translate-attr-aria-label="OPENCHANNEL.ADD_OPENCHANNELACCOUNT">\n ADD OPENCHANNELACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newOpenchannelAccount" ng-click="vm.deleteOpenchannelAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="OPENCHANNEL.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="OPENCHANNEL.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/agentadd/agentadd.html",'<md-dialog class="openchannelAccount-dialog" aria-label="openchannelAccount" ng-init="vm.onInit()">\n <form name="openchannelAccountForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="OPENCHANNEL.AGENTADD_OPENCHANNELACCOUNT">Add Agent to openchannelAccount</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/agent/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.AGENT">Agent</label>\n <md-select name="agent" ng-model="vm.agent.agent" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents" ng-disabled="agent.canSelect === false">{{ agent.name }}</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'agent\'].$error" ng-show="openchannelAccountFormApp[\'agent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.agent.timeout" min="0" max="2147483" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'timeout\'].$error" ng-show="openchannelAccountFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/amazonlex/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.ACCESSKEYID">accesskeyid</label>\n <input type="text" name="accesskeyid" ng-model="vm.amazonlex.accesskeyid" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'accesskeyid\'].$error" ng-show="openchannelAccountFormApp[\'accesskeyid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.ACCESSKEYID_REQUIRED">accesskeyid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.SECRETACCESSKEY">secretaccesskey</label>\n <input type="text" name="secretaccesskey" ng-model="vm.amazonlex.secretaccesskey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'secretaccesskey\'].$error" ng-show="openchannelAccountFormApp[\'secretaccesskey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.SECRETACCESSKEY_REQUIRED">secretaccesskey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.LEXREGION">lexregion</label>\n <md-select name="lexregion" ng-model="vm.amazonlex.lexregion" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'us-east-1\'">US East (N. Virginia)</md-option>\n <md-option ng-value="\'us-west-2\'">US West (Oregon)</md-option>\n <md-option ng-value="\'eu-west-1\'">EU (Ireland)</md-option>\n <md-option ng-value="\'ap-southeast-2\'">Asia Pacific (Sydney)</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'lexregion\'].$error" ng-show="openchannelAccountFormApp[\'lexregion\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.LEXREGION_REQUIRED">lexregion field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.BOTNAME">botname</label>\n <input type="text" name="botname" ng-model="vm.amazonlex.botname" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'botname\'].$error" ng-show="openchannelAccountFormApp[\'botname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.BOTNAME_REQUIRED">botname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.amazonlex.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="OPENCHANNEL.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="openchannelAccountFormApp[\'welcomemessage\'].$error" ng-show="openchannelAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="OPENCHANNEL.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/autoreply/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.TIMES">times</label>\n <md-select name="times" ng-model="vm.autoreply.times" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="2">One Time</md-option>\n <md-option ng-value="0">Always</md-option>\n <md-option ng-value="1">First Message</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'times\'].$error" ng-show="openchannelAccountFormApp[\'times\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TIMES_REQUIRED">times field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.TEXT">Text</label>\n <textarea name="text" ng-model="vm.autoreply.text" required></textarea>\n\n <div ng-messages="openchannelAccountFormApp[\'text\'].$error" ng-show="openchannelAccountFormApp[\'text\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TEXT_REQUIRED">Text field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/close/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.DISPOSITION">Disposition</label>\n <input type="text" name="disposition" ng-model="vm.close.disposition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'disposition\'].$error" ng-show="openchannelAccountFormApp[\'disposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/dialogflow/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.dialogflow.key" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'key\'].$error" ng-show="openchannelAccountFormApp[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.KEY_REQUIRED">Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflow.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean (South Korea)</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pt\'">Portuguese (European)</md-option>\n <md-option ng-value="\'pt-br\'">Portuguese (Nrazilian)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'sv\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-HK\'">Chinese (Hong Kong)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'language\'].$error" ng-show="openchannelAccountFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.LANGUAGE_REQUIRED">language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflow.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="OPENCHANNEL.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="openchannelAccountFormApp[\'welcomemessage\'].$error" ng-show="openchannelAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="OPENCHANNEL.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/dialogflowv2/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.PROJECTID">ProjectID</label>\n <input type="text" name="projectId" ng-model="vm.dialogflowv2.projectId" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'projectId\'].$error" ng-show="openchannelAccountFormApp[\'projectId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.PROJECTID_REQUIRED">ProjectID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.CLIENTEMAIL">ClientEmail</label>\n <input type="text" name="clientEmail" ng-model="vm.dialogflowv2.clientEmail" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'clientEmail\'].$error" ng-show="openchannelAccountFormApp[\'clientEmail\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.CLIENTEMAIL_REQUIRED">ClientEmail field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.PRIVATEKEY">PrivateKey</label>\n <textarea name="privateKey" ng-model="vm.dialogflowv2.privateKey" required></textarea>\n\n <div ng-messages="openchannelAccountFormApp[\'privateKey\'].$error" ng-show="openchannelAccountFormApp[\'privateKey\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.PRIVATEKEY_REQUIRED">PrivateKey field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflowv2.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'zh-HK\'">Chinese (Cantonese)</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'en-AU\'">English (Australia)</md-option>\n <md-option ng-value="\'en-CA\'">English (Canada)</md-option>\n <md-option ng-value="\'en-GB\'">English (Great Britain)</md-option>\n <md-option ng-value="\'en-IN\'">English (India)</md-option>\n <md-option ng-value="\'en-US\'">English (US)</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'fr-CA\'">French (Canada)</md-option>\n <md-option ng-value="\'fr-FR\'">\'France (France)</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'hi\'">Hindi</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pl\'">Polish</md-option>\n <md-option ng-value="\'pt-BR\'">Portuguese (Brazil)</md-option>\n <md-option ng-value="\'pt-PT\'">Portuguese (Portugal)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'es-419\'">Spanish (Latin America)</md-option>\n <md-option ng-value="\'es-ES\'">Spanish (Spain)</md-option>\n <md-option ng-value="\'sw\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'tr\'">Turkish</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'language\'].$error" ng-show="openchannelAccountFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.LANGUAGE_REQUIRED">language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflowv2.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="OPENCHANNEL.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="openchannelAccountFormApp[\'welcomemessage\'].$error" ng-show="openchannelAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n\n <div ng-message="md-maxlength">\n <span translate="OPENCHANNEL.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/gotoif/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.CONDITION">Condition</label>\n <input type="text" name="condition" ng-model="vm.gotoif.condition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'condition\'].$error" ng-show="openchannelAccountFormApp[\'condition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.TRUEPRIORITY">truepriority</label>\n <input type="number" name="truepriority" ng-model="vm.gotoif.truepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'truepriority\'].$error" ng-show="openchannelAccountFormApp[\'truepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TRUEPRIORITY_REQUIRED">truepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">truepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.FALSEPRIORITY">falsepriority</label>\n <input type="number" name="falsepriority" ng-model="vm.gotoif.falsepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'falsepriority\'].$error" ng-show="openchannelAccountFormApp[\'falsepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.FALSEPRIORITY_REQUIRED">falsepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">falsepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/gotop/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.PRIORITY">Priority</label>\n <input type="number" name="priority" ng-model="vm.gotop.priority" min="0" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'priority\'].$error" ng-show="openchannelAccountFormApp[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Priority must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/interval/dialog.html",'<md-dialog class="interval-dialog" aria-label="New Interval">\n <form name="intervalForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="type" ng-repeat=\'type in vm.types\'>{{ type | ucfirst }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.type === \'list\'">\n <label translate="TOOLS.INTERVALS">Intervals</label>\n <md-select ng-model="vm.interval.IntervalId" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ interval.name }}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!-- TIMERANGE START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.TIME_RANGE">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <div class="md-block" flex>\n <mdp-time-picker name="timeRangeFrom" mdp-placeholder="FROM" ng-model="vm.timeRangeFrom" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <div ng-messages="intervalForm.timeRangeFrom.$error" ng-show="intervalForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_FROM_INVALID">Time Range From field is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n <div class="md-block" flex ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_INVALID">Time Range To field is invalid</span>\n </div>\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </div>\n \x3c!-- TIMERANGE END --\x3e\n\n \x3c!-- DAYSOFWEEK START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.WEEK_DAYS">Week Days</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.dayOfWeekFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex class="md-block" ng-if="vm.dayOfWeekFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="dayOfWeekTo" ng-model="vm.dayOfWeekTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- DAYSOFWEEK END --\x3e\n\n \x3c!-- MONTHDAY START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTH_DAYS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthDayFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthDayFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthDayTo" ng-model="vm.monthDayTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTHDAY END --\x3e\n\n \x3c!-- MONTH START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTHS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthTo" ng-model="vm.monthTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTH END --\x3e\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="!vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n ADD INTERVAL\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/noop/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.noop.value" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'value\'].$error" ng-show="openchannelAccountFormApp[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/queue/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.queue.queue" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues" ng-disabled="queue.canSelect === false">{{ queue.name }}</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'queue\'].$error" ng-show="openchannelAccountFormApp[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'timeout\'].$error" ng-show="openchannelAccountFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/system/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.COMMAND">Command</label>\n <input type="text" name="command" ng-model="vm.system.command" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'command\'].$error" ng-show="openchannelAccountFormApp[\'command\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.COMMAND_REQUIRED">Command field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.system.variable" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables" ng-disabled="variable.canSelect === false">{{ variable.name }}</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'variable\'].$error" ng-show="openchannelAccountFormApp[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.VARIABLE_REQUIRED">Variable field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/tag/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.TAG">Tag</label>\n <md-select name="tag" ng-model="vm.tag.tag" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags" ng-disabled="tag.canSelect === false">{{ tag.name }}</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'tag\'].$error" ng-show="openchannelAccountFormApp[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TAG_REQUIRED">Tag field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/openchannelCannedAnswers/dialog.html",'<md-dialog class="openchannelCannedAnswer-dialog" aria-label="New OpenchannelCannedAnswer">\n <form name="openchannelCannedAnswerForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.KEY">Key</label>\n <input type="" name="key" ng-model="vm.openchannelCannedAnswer.key" md-maxlength="255" ng-required="true" autofocus>\n\n <div ng-messages="openchannelCannedAnswerForm[\'key\'].$error" ng-show="openchannelCannedAnswerForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.KEY_REQUIRED">Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.VALUE">Value</label>\n <textarea name="value" ng-model="vm.openchannelCannedAnswer.value" required></textarea>\n\n <div ng-messages="openchannelCannedAnswerForm[\'value\'].$error" ng-show="openchannelCannedAnswerForm[\'value\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.openchannelCannedAnswer.description">\n\n <div ng-messages="openchannelCannedAnswerForm[\'description\'].$error" ng-show="openchannelCannedAnswerForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newOpenchannelCannedAnswer" ng-click="vm.saveOpenchannelCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="openchannelCannedAnswerForm.$invalid || openchannelCannedAnswerForm.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newOpenchannelCannedAnswer" ng-click="vm.addNewOpenchannelCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="openchannelCannedAnswerForm.$invalid" aria-label="ADD" translate="OPENCHANNEL.ADD_OPENCHANNELCANNEDANSWER" translate-attr-aria-label="OPENCHANNEL.ADD_OPENCHANNELCANNEDANSWER">\n ADD OPENCHANNELCANNEDANSWER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newOpenchannelCannedAnswer" ng-click="vm.deleteOpenchannelCannedAnswer($event)" aria-label="DELETE" translate translate-attr-aria-label="OPENCHANNEL.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="OPENCHANNEL.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/view.html",'<div id="openchannel-openchannelAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-openchannelAccounts-button md-icon-button" aria-label="Go to openchannelAccounts" ng-click="vm.gotoOpenchannelAccounts()" translate translate-attr-aria-label="OPENCHANNEL.GO_TO_OPENCHANNELACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="openchannelAccount-image" hide-xs>\n <img ng-src="assets/images/business/openchannelAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.openchannelAccount.id}}\n <span ng-if="vm.openchannelAccount.name">{{vm.openchannelAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="OPENCHANNEL.CREATED_AT"></span> <span>{{vm.openchannelAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.openchannelAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="OPENCHANNEL.AGENTADD_OPENCHANNELACCOUNT"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveOpenchannelAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (proxyForm.$invalid) || (dispositionForm.$invalid) || (openchannelDispositionsForm.$invalid) || (openchannelCannedAnswersForm.$invalid) || (actionsForm.$invalid) || (interactionsForm.$invalid)" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="openchannelAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="OPENCHANNEL.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.openchannelAccount.name" ng-required="true" autofocus disabled>\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.KEY">key</label>\n <input type="text" name="key" ng-model="vm.openchannelAccount.key" md-maxlength="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'key\'].$error" ng-show="generalForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="OPENCHANNEL.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.REPLYURI">replyUri</label>\n <input type="url" name="replyUri" ng-model="vm.openchannelAccount.replyUri" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="OPENCHANNEL.HELP.REPLYURI"></span></div>\n <div ng-messages="generalForm[\'replyUri\'].$error" ng-show="generalForm[\'replyUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.REPLYURI_REQUIRED">replyUri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="OPENCHANNEL.ERRORS.REPLYURI_MUST_VALID_URL">replyUri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.LIST">List</label>\n <md-select name="ListId" ng-model="vm.openchannelAccount.ListId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="OPENCHANNEL.HELP.LIST"></span></div>\n <div ng-messages="generalForm[\'ListId\'].$error" ng-show="generalForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.WAITFORTHEASSIGNEDAGENT">WaitForTheAssignedAgent</label>\n <input type="number" name="waitForTheAssignedAgent" ng-model="vm.openchannelAccount.waitForTheAssignedAgent" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'waitForTheAssignedAgent\'].$error" ng-show="generalForm[\'waitForTheAssignedAgent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.WAITFORTHEASSIGNEDAGENT_REQUIRED">WaitForTheAssignedAgent field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.MAPKEY">MapKey</label>\n <md-select name="mapKey" ng-model="vm.openchannelAccount.mapKey" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-optgroup label="standard">\n <md-option ng-value="mapKey.columnName" ng-repeat="mapKey in vm.fields" ng-if="!mapKey.columnName.toString().startsWith(\'cf_\')" ng-disabled="mapKey.canSelect === false">{{ mapKey.displayName }}</md-option>\n </md-optgroup>\n <md-optgroup label="custom">\n <md-option ng-value="mapKey.columnName" ng-repeat="mapKey in vm.fields" ng-if="mapKey.columnName.toString().startsWith(\'cf_\')" ng-disabled="mapKey.canSelect === false">{{ mapKey.displayName }}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="generalForm[\'mapKey\'].$error" ng-show="generalForm[\'mapKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.MAPKEY_REQUIRED">MapKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.openchannelAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.RECEIVEURI">receiveUri</label>\n <div layout="row" layout-align="center center">\n <button class="md-button md-fab md-mini md-primary" ngclipboard data-clipboard-target="#copytoclipboard-receiveUri" ngclipboard-success="vm.alert({title: \'copied to clipboard\', msg: e.text });" ngclipboard-error="vm.alert({title: \'error\', msg: \'copy to clipboard failed\'});">\n <md-icon md-font-icon="icon-clipboard-text"></md-icon>\n </button>\n <input class="md-input" type="text" id="copytoclipboard-receiveUri" name="receiveUri" ng-value="vm.location + \'/api/openchannel/accounts/\' + vm.openchannelAccount.id + \'/notify\'" ng-readonly="true">\n </div>\n <div class="hint"><span translate="OPENCHANNEL.HELP.RECEIVEURI"></span></div>\n </md-input-container>\n\n </form>\n </div>\n <div class="openchannelAccount-detail-form-container notification md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="OPENCHANNEL.NOTIFICATION">NOTIFICATION</div>\n </div>\n <form name="notificationForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.openchannelAccount.notificationSound" aria-label="notificationSound" ng-disabled="!vm.crudPermissions.canEdit"><span translate="OPENCHANNEL.NOTIFICATIONSOUND">notificationSound</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.openchannelAccount.notificationShake" aria-label="notificationShake" ng-disabled="!vm.crudPermissions.canEdit"><span translate="OPENCHANNEL.NOTIFICATIONSHAKE">notificationShake</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="OPENCHANNEL.NOTIFICATIONTEMPLATE">notificationTemplate</label>\n <textarea aria-label="notificationTemplate notificationTemplate" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.openchannelAccount.notificationTemplate"></textarea>\n </div>\n\n </form>\n </div>\n <div class="openchannelAccount-detail-form-container transfer md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="OPENCHANNEL.TRANSFER">TRANSFER</div>\n </div>\n <form name="transferForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.openchannelAccount.queueTransfer" aria-label="queueTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="OPENCHANNEL.QUEUETRANSFER">queueTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.openchannelAccount.queueTransfer == true" class="md-block">\n <label translate="OPENCHANNEL.QUEUETRANSFERTIMEOUT">queueTransferTimeout</label>\n <input type="number" name="queueTransferTimeout" ng-model="vm.openchannelAccount.queueTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'queueTransferTimeout\'].$error" ng-show="transferForm[\'queueTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.QUEUETRANSFERTIMEOUT_REQUIRED">queueTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.openchannelAccount.agentTransfer" aria-label="agentTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="OPENCHANNEL.AGENTTRANSFER">agentTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.openchannelAccount.agentTransfer == true" class="md-block">\n <label translate="OPENCHANNEL.AGENTTRANSFERTIMEOUT">agentTransferTimeout</label>\n <input type="number" name="agentTransferTimeout" ng-model="vm.openchannelAccount.agentTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'agentTransferTimeout\'].$error" ng-show="transferForm[\'agentTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.AGENTTRANSFERTIMEOUT_REQUIRED">agentTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="openchannelAccount-detail-form-container proxy md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="OPENCHANNEL.PROXY">PROXY</div>\n </div>\n <form name="proxyForm" novalidate>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.TOKEN">token</label>\n <input type="text" name="token" ng-model="vm.openchannelAccount.token" autofocus disabled>\n\n <div class="hint"><span translate="OPENCHANNEL.HELP.TOKEN"></span></div>\n <div ng-messages="proxyForm[\'token\'].$error" ng-show="proxyForm[\'token\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TOKEN_REQUIRED">token field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="openchannelAccount-detail-form-container disposition md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="OPENCHANNEL.DISPOSITION">DISPOSITION</div>\n </div>\n <form name="dispositionForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.openchannelAccount.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="OPENCHANNEL.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.openchannelAccount.mandatoryDisposition" class="md-block">\n <label translate="OPENCHANNEL.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.openchannelAccount.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="OPENCHANNEL.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="dispositionForm[\'mandatoryDispositionPauseId\'].$error" ng-show="dispositionForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.DISPOSITIONS">DISPOSITIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div ng-controller="OpenchannelAccountDispositionsController as vm_dc" ng-init="vm_dc.init(vm.openchannelAccount, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="openchannelAccount-detail-form-container openchanneldispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedOpenchannelAccountDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="OPENCHANNEL.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add openchannel dispositions" translate translate-attr-label="OPENCHANNEL.ADD_DISPOSITION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" csv-label="true" filename="openchannelAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="OPENCHANNEL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_dc.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'OPENCHANNEL.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'OPENCHANNEL.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'OPENCHANNEL.DESCRIPTION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="OPENCHANNEL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="OPENCHANNEL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(disposition, $event)" translate="TOOLS.DELETE_DISPOSITION">\n Delete Disposition\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'OPENCHANNEL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'OPENCHANNEL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'OPENCHANNEL.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.CANNEDANSWERS">CANNEDANSWERS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="openchannelAccount-detail-form-container openchannelcannedanswers md-background-bg md-whiteframe-1dp">\n <div ng-controller="OpenchannelAccountOpenchannelCannedAnswersController as vm_dc" ng-init="vm_dc.init(vm.openchannelAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedOpenchannelAccountOpenchannelCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="OPENCHANNEL.OPENCHANNELCANNEDANSWERS">OpenchannelCannedAnswers</span>\n <ms-search-bar on-search="vm_dc.getOpenchannelAccountOpenchannelCannedAnswers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event)" aria-label="add openchannelCannedAnswer" translate translate-attr-label="OPENCHANNEL.ADD_OPENCHANNELCANNEDANSWER">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedOpenchannelAccountOpenchannelCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedOpenchannelAccountOpenchannelCannedAnswers.length}} {{vm_dc.selectedOpenchannelAccountOpenchannelCannedAnswers.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedOpenchannelAccountOpenchannelCannedAnswers" csv-label="true" filename="openchannelAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedOpenchannelAccountOpenchannelCannedAnswers($event)" aria-label="delete selected" translate translate-attr-label="OPENCHANNEL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedOpenchannelAccountOpenchannelCannedAnswers" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getOpenchannelAccountOpenchannelCannedAnswers">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'OPENCHANNEL.ID\' | translate }}\n </th>\n <th md-column md-order-by="key">\n {{ \'OPENCHANNEL.KEY\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'OPENCHANNEL.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="description">\n {{ \'OPENCHANNEL.DESCRIPTION\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'OPENCHANNEL.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="openchannelCannedAnswer" md-select-id="id" ng-repeat="openchannelCannedAnswer in vm_dc.openchannelAccountOpenchannelCannedAnswers.rows">\n <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" md-cell>\n {{openchannelCannedAnswer.id}}\n </td>\n <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" md-cell>\n {{openchannelCannedAnswer.key}}\n </td>\n <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" md-cell>\n {{openchannelCannedAnswer.value}}\n </td>\n <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" md-cell>\n {{openchannelCannedAnswer.description}}\n </td>\n <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" md-cell>\n {{ openchannelCannedAnswer.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="OPENCHANNEL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" translate="OPENCHANNEL.EDIT_OPENCHANNELCANNEDANSWER">\n Edit OpenchannelCannedAnswer\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(openchannelCannedAnswer, $event)" translate="OPENCHANNEL.DELETE_OPENCHANNELCANNEDANSWER">\n Delete OpenchannelCannedAnswer\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.openchannelAccountOpenchannelCannedAnswers.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="OPENCHANNEL.NO_OPENCHANNELCANNEDANSWER_AVAILABLE">No openchannelcannedanswer available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'OPENCHANNEL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'OPENCHANNEL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'OPENCHANNEL.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.openchannelAccountOpenchannelCannedAnswers.count}}" md-on-paginate="vm_dc.getOpenchannelAccountOpenchannelCannedAnswers" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="openchannelAccount-detail-form-container actions md-background-bg md-whiteframe-1dp">\n <div ng-controller="OpenchannelAccountActionsController as vm_ac" ng-init="vm_ac.init(vm.openchannelAccount, vm.crudPermissions)" class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- SIDENAV --\x3e\n <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20" ng-if="vm_ac.crudPermissions.canEdit">\n \x3c!-- SIDENAV CONTENT --\x3e\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\n Applications List\n </span>\n </md-subheader>\n </md-list>\n <md-divider></md-divider>\n <md-list ng-sortable="vm_ac.list">\n <md-list-item class="handle" ng-repeat="a in vm_ac.apps">\n <md-icon md-font-icon="{{a.icon}}" class="s16"></md-icon>\n <p class="text-truncate" translate="OPENCHANNEL.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias || a.appType}}</p>\n </md-list-item>\n </md-list>\n \x3c!-- / SIDENAV CONTENT --\x3e\n </div>\n \x3c!-- / SIDENAV --\x3e\n <div flex></div>\n \x3c!-- MAIN --\x3e\n <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="{{vm_ac.crudPermissions.canEdit ? 75 : 100}}">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_ac.selectedOpenchannelAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Drag & Drop Routing</span>\n <div flex></div>\n <ms-search-bar on-search="vm_ac.query.filter = query" on-collapse="vm_ac.query.filter = undefined" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_ac.selectedOpenchannelAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_ac.selectedOpenchannelAccountApps.length}} {{vm_ac.selectedOpenchannelAccountApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_ac.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_ac.deleteSelectedOpenchannelAccountApps($event)" aria-label="delete selected" translate translate-attr-label="OPENCHANNEL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n \x3c!-- QUEUES TABLE --\x3e\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_ac.selectedOpenchannelAccountApps">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column width="10px">\n <span translate="VOICE.PRIORITY">Priority</span>\n </th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </th>\n <th md-column width="10px"></th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body ng-sortable="vm_ac.applications">\n <tr md-row md-select="app" md-select-id="id" ng-repeat="app in vm_ac.openchannelAccountApps.rows | filter: vm_ac.query.filter">\n <td md-cell>\n <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n </td>\n <td md-cell ng-click="vm_ac.editOpenchannelAccountApp($event, $index)"><span>{{app.priority}}</span></td>\n <td md-cell ng-click="vm_ac.editOpenchannelAccountApp($event, $index)">{{app.app.toLowerCase() === \'agi\' ? \'Cally-Square\' : app.app | ucfirst}}<span ng-if="app.appType.toLowerCase() === \'custom\'">*</span></td>\n <td md-cell ng-click="vm_ac.editOpenchannelAccountApp($event, $index)"><span class="text-truncate actionAppData">{{app.appdata}}</span></td>\n <td md-cell ng-click="vm_ac.editInterval($event, $index)">{{app.IntervalId ? \'From List\' : app.interval}}</td>\n <td md-cell>\n <md-button ng-click="vm_ac.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n <md-icon md-font-icon="icon-timer"></md-icon>\n <md-tooltip>\n {{app.IntervalId ? \'From List\' : (app.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n </md-tooltip>\n </md-button>\n </td>\n <td md-cell class="actions" ng-if="!vm_ac.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editOpenchannelAccountApp($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canDelete">\n <md-button ng-click="vm_ac.deleteConfirm(app, $index, $event)" translate="VOICE.DELETE_APP">\n Delete App\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-hide="vm_ac.openchannelAccountApps.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n \x3c!-- / QUEUES TABLE --\x3e\n\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.INTERACTIONS">INTERACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="openchannelAccount-detail-form-container interactions md-background-bg md-whiteframe-1dp">\n <div ng-controller="OpenchannelAccountInteractionsController as vm_dc" ng-init="vm_dc.init(vm.openchannelAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedOpenchannelAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="OPENCHANNEL.INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm_dc.getOpenchannelAccountInteractions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_dc.quickFilters" query="vm_dc.query" search="vm_dc.getOpenchannelAccountInteractions()"></ms-quick-filter>\n <div layout="column">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini md-accent-bg\': vm_dc.query.search }" aria-label="Filter" translate translate-attr-aria-label="DASHBOARDS.FILTER" ng-click="vm_dc.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm_dc.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'blink\': vm_dc.query.search }"></md-icon>\n </md-button>\n </div>\n <md-button class="md-icon-button" ng-click="vm_dc.getOpenchannelAccountInteractions()" aria-label="refresh Interactions" translate translate-attr-label="OPENCHANNEL.REFRESH_INTERACTIONS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedOpenchannelAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedOpenchannelAccountInteractions.length}} {{vm_dc.selectedOpenchannelAccountInteractions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedOpenchannelAccountInteractions" csv-label="true" filename="openchannelAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedOpenchannelAccountInteractions($event)" aria-label="delete selected" translate translate-attr-label="OPENCHANNEL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedOpenchannelAccountInteractions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getOpenchannelAccountInteractions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'OPENCHANNEL.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column md-order-by="contactName">\n {{ \'OPENCHANNEL.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'OPENCHANNEL.STARTEDAT\' | translate }}\n </th>\n <th md-column md-order-by="lastMsgAt">\n {{ \'OPENCHANNEL.LASTMESSAGE\' | translate }}\n </th>\n <th md-column md-order-by="closed">\n {{ \'OPENCHANNEL.STATUS\' | translate }}\n </th>\n <th md-column>\n {{ \'OPENCHANNEL.AGENT\' | translate }}\n </th>\n <th md-column md-order-by="tag">\n {{ \'OPENCHANNEL.TAGS\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="interaction" md-select-id="id" ng-repeat="interaction in vm_dc.openchannelAccountInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td md-cell>\n {{interaction.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="user in interaction.Users">{{ user.fullname | translate }}\n <span ng-if="!$last">, </span>\n </span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg md-primary-bg" layout-margin>{{ interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.attach">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'margin-bottom-0\' : interaction.contactInfo}" layout-margin>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text margin-top-0" layout-margin>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td md-cell>\n {{ interaction.createdAt | formatdate }}\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}"></md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="text-truncate">{{ interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n </td>\n <td md-cell>\n <span ng-if="interaction.closed === 0" class="green-fg">\n {{ \'OPENCHANNEL.OPENED\' | translate }}\n <span ng-if="interaction.substatus">\n - {{ interaction.substatus }}\n </span>\n </span>\n <span ng-if="interaction.closed === 1" class="red-fg">\n {{ \'OPENCHANNEL.CLOSED\' | translate }}\n <span ng-if="interaction.disposition">\n - {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}\n </span>\n <md-tooltip class="multiline">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n </span>\n </td>\n\n <td md-cell>\n {{interaction.Owner.name}}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="OPENCHANNEL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm_dc.spyopenchannelInteraction($event, interaction)" translate="OPENCHANNEL.SPYINTERACTION">\n Spy Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || (vm_dc.userProfile.downloadOmnichannelInteractions && vm_dc.userProfile.downloadAttachments)">\n <md-button class="md-primary" ng-click="vm_dc.openchannelInteractionDownload(interaction, $event, true)" translate="OPENCHANNEL.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || vm_dc.userProfile.downloadOmnichannelInteractions">\n <md-button class="md-primary" ng-click="vm_dc.openchannelInteractionDownload(interaction, $event)" translate="OPENCHANNEL.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(interaction, $event)" translate="OPENCHANNEL.DELETE_INTERACTION">\n Delete Interaction\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.openchannelAccountInteractions.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="OPENCHANNEL.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'OPENCHANNEL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'OPENCHANNEL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'OPENCHANNEL.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.openchannelAccountInteractions.count}}" md-on-paginate="vm_dc.getOpenchannelAccountInteractions" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/openchannelAccounts.html",'<div id="openchannelAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-google-earth" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="OPENCHANNEL.OPENCHANNELACCOUNTS">OpenchannelAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="OPENCHANNEL.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedOpenchannelAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedOpenchannelAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="OPENCHANNEL.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-openchannelAccounts-count">\n <span>{{vm.selectedOpenchannelAccounts.length}}</span>\n <span translate="OPENCHANNEL.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="OPENCHANNEL.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllOpenchannelAccounts()" translate="OPENCHANNEL.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectOpenchannelAccounts()" translate="OPENCHANNEL.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedOpenchannelAccounts" csv-label="true" filename="openchannelAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedOpenchannelAccounts($event)" aria-label="delete selected" translate translate-attr-label="OPENCHANNEL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- OPENCHANNELACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedOpenchannelAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getOpenchannelAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'OPENCHANNEL.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'OPENCHANNEL.NAME\' | translate }}</th>\n <th md-column md-order-by="key">{{ \'OPENCHANNEL.KEY\' | translate }}</th>\n <th md-column md-order-by="replyUri">{{ \'OPENCHANNEL.REPLYURI\' | translate }}</th>\n <th md-column md-order-by="ListId">{{ \'OPENCHANNEL.LIST\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'OPENCHANNEL.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.openchannelAccounts.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="OPENCHANNEL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="openchannelAccount" md-select-id="id" ng-repeat="openchannelAccount in vm.openchannelAccounts.rows">\n <td md-cell ng-if="openchannelAccount.userpic"><img class="avatar" alt="{{openchannelAccount.name}}" ng-src="api/users/{{openchannelAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!openchannelAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{openchannelAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelAccount, ev) : vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="id ">{{openchannelAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelAccount, ev) : vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="name ">{{openchannelAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelAccount, ev) : vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="key ">{{openchannelAccount.key}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelAccount, ev) : vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="replyUri ">{{openchannelAccount.replyUri}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelAccount, ev) : vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="ListId ">{{ (vm.lists | filter : {\'id\':openchannelAccount.ListId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelAccount, ev) : vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="description ">{{openchannelAccount.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="OPENCHANNEL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(openchannelAccount, $event )" translate="OPENCHANNEL.EDIT_OPENCHANNELACCOUNT">\n Edit OpenchannelAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.interactionsgoto(openchannelAccount, $event )" translate="OPENCHANNEL.INTERACTIONS_OPENCHANNELACCOUNT">\n Interactions OpenchannelAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(openchannelAccount, $event )" translate="OPENCHANNEL.AGENTADD_OPENCHANNELACCOUNT">\n AgentAdd OpenchannelAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(openchannelAccount, $event )" translate="OPENCHANNEL.DELETE_OPENCHANNELACCOUNT">\n Delete OpenchannelAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'OPENCHANNEL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'OPENCHANNEL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'OPENCHANNEL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.openchannelAccounts.count}}" md-on-paginate="vm.getOpenchannelAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / OPENCHANNELACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD OPENCHANNELACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-openchannelAccount-button" ng-click="vm.createOrEditOpenchannelAccount($event)" aria-label="add openchannelAccount" translate translate-attr-aria-label="OPENCHANNEL.ADD_OPENCHANNELACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD OPENCHANNELACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/openchannel/views/openchannelQueues/create/dialog.html",'<md-dialog class="openchannelQueue-dialog" aria-label="New OpenchannelQueue">\n <form name="openchannelQueueForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.openchannelQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newOpenchannelQueue">\n\n <div class="hint"><span translate="OPENCHANNEL.HELP.NAME"></span></div>\n <div ng-messages="openchannelQueueForm[\'name\'].$error" ng-show="openchannelQueueForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="OPENCHANNEL.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.openchannelQueue.strategy" required>\n <md-option ng-value="\'beepall\'">Beepall</md-option>\n <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n </md-select>\n <div ng-messages="openchannelQueueForm[\'strategy\'].$error" ng-show="openchannelQueueForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.openchannelQueue.timeout" min="1" max="2147483" value="10" ng-required="true">\n\n <div ng-messages="openchannelQueueForm[\'timeout\'].$error" ng-show="openchannelQueueForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.openchannelQueue.description">\n\n <div ng-messages="openchannelQueueForm[\'description\'].$error" ng-show="openchannelQueueForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newOpenchannelQueue" ng-click="vm.saveOpenchannelQueue()" class="send-button md-accent md-raised" ng-disabled="openchannelQueueForm.$invalid || openchannelQueueForm.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newOpenchannelQueue" ng-click="vm.addNewOpenchannelQueue()" class="send-button md-accent md-raised" ng-disabled="openchannelQueueForm.$invalid" aria-label="ADD" translate="OPENCHANNEL.ADD_OPENCHANNELQUEUE" translate-attr-aria-label="OPENCHANNEL.ADD_OPENCHANNELQUEUE">\n ADD OPENCHANNELQUEUE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newOpenchannelQueue" ng-click="vm.deleteOpenchannelQueue($event)" aria-label="DELETE" translate translate-attr-aria-label="OPENCHANNEL.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="OPENCHANNEL.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelQueues/edit/agentadd/agentadd.html",'<md-dialog class="openchannelQueue-dialog" aria-label="openchannelQueue" ng-init="vm.onInit()">\n <form name="openchannelQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="OPENCHANNEL.AGENTADD_OPENCHANNELQUEUE">Add Agent to openchannelQueue</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelQueues/edit/teamadd/teamadd.html",'<md-dialog class="openchannelQueue-dialog" aria-label="openchannelQueue" ng-init="vm.onInit()">\n <form name="openchannelQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="OPENCHANNEL.TEAMS_ASSOCIATION">Teams Association</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelQueues/edit/view.html",'<div id="openchannel-openchannelQueue" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-openchannelQueues-button md-icon-button" aria-label="Go to openchannelQueues" ng-click="vm.gotoOpenchannelQueues()" translate translate-attr-aria-label="OPENCHANNEL.GO_TO_OPENCHANNELQUEUES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="openchannelQueue-image" hide-xs>\n <img ng-src="assets/images/business/openchannelQueues.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.openchannelQueue.id}}\n <span ng-if="vm.openchannelQueue.name">{{vm.openchannelQueue.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="OPENCHANNEL.CREATED_AT"></span> <span>{{vm.openchannelQueue.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.teamadddialog(vm.openchannelQueue, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n <md-tooltip><span translate="OPENCHANNEL.TEAMADD_OPENCHANNELQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.openchannelQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="OPENCHANNEL.AGENTADD_OPENCHANNELQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-plus"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveOpenchannelQueue()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="openchannelQueue-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="OPENCHANNEL.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.openchannelQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="OPENCHANNEL.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="OPENCHANNEL.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.openchannelQueue.strategy" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'beepall\'">Beepall</md-option>\n <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n </md-select>\n <div ng-messages="generalForm[\'strategy\'].$error" ng-show="generalForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.openchannelQueue.timeout" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'timeout\'].$error" ng-show="generalForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.openchannelQueue.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/openchannel/views/openchannelQueues/openchannelQueues.html",'<div id="openchannelQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-google-earth" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="OPENCHANNEL.OPENCHANNELQUEUES">OpenchannelQueues</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="OPENCHANNEL.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedOpenchannelQueues.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedOpenchannelQueues =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="OPENCHANNEL.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-openchannelQueues-count">\n <span>{{vm.selectedOpenchannelQueues.length}}</span>\n <span translate="OPENCHANNEL.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="OPENCHANNEL.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllOpenchannelQueues()" translate="OPENCHANNEL.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectOpenchannelQueues()" translate="OPENCHANNEL.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedOpenchannelQueues" csv-label="true" filename="openchannelQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedOpenchannelQueues($event)" aria-label="delete selected" translate translate-attr-label="OPENCHANNEL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- OPENCHANNELQUEUE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedOpenchannelQueues" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getOpenchannelQueues">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'OPENCHANNEL.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'OPENCHANNEL.NAME\' | translate }}</th>\n <th md-column md-order-by="strategy">{{ \'OPENCHANNEL.STRATEGY\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.openchannelQueues.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="OPENCHANNEL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="openchannelQueue" md-select-id="id" ng-repeat="openchannelQueue in vm.openchannelQueues.rows">\n <td md-cell ng-if="openchannelQueue.userpic"><img class="avatar" alt="{{openchannelQueue.name}}" ng-src="api/users/{{openchannelQueue.id}}/avatar" /></td>\n <td md-cell ng-if="!openchannelQueue.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{openchannelQueue.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelQueue, ev) : vm.createOrEditOpenchannelQueue($event, openchannelQueue)" md-cell class="id ">{{openchannelQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelQueue, ev) : vm.createOrEditOpenchannelQueue($event, openchannelQueue)" md-cell class="name ">{{openchannelQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelQueue, ev) : vm.createOrEditOpenchannelQueue($event, openchannelQueue)" md-cell class="strategy ">{{ vm.arraystrategy[openchannelQueue.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="OPENCHANNEL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(openchannelQueue, $event )" translate="OPENCHANNEL.EDIT_OPENCHANNELQUEUE">\n Edit OpenchannelQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(openchannelQueue, $event )" translate="OPENCHANNEL.TEAMADD_OPENCHANNELQUEUE">\n teamadd OpenchannelQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(openchannelQueue, $event )" translate="OPENCHANNEL.AGENTADD_OPENCHANNELQUEUE">\n agentadd OpenchannelQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(openchannelQueue, $event )" translate="OPENCHANNEL.DELETE_OPENCHANNELQUEUE">\n Delete OpenchannelQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(openchannelQueue, $event )" translate="OPENCHANNEL.GOTOREALTIME_OPENCHANNELQUEUE">\n goToRealtime OpenchannelQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'OPENCHANNEL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'OPENCHANNEL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'OPENCHANNEL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.openchannelQueues.count}}" md-on-paginate="vm.getOpenchannelQueues" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / OPENCHANNELQUEUE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD OPENCHANNELQUEUE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-openchannelQueue-button" ng-click="vm.createOrEditOpenchannelQueue($event)" aria-label="add openchannelQueue" translate translate-attr-aria-label="OPENCHANNEL.ADD_OPENCHANNELQUEUE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD OPENCHANNELQUEUE BUTTON --\x3e\n</div>'),e.put("app/main/apps/openchannel/views/realtime/queues/view.html",'<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="OPENCHANNEL.QUEUES">Queues</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'OPENCHANNEL.NAME\' | translate }}</th>\n <th md-column>{{ \'OPENCHANNEL.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'OPENCHANNEL.PAUSED\' | translate }}</th>\n <th md-column>{{ \'OPENCHANNEL.WAITING\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.queues.count > 0">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="OPENCHANNEL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="queue" md-select-id="id" ng-repeat="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedIn }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="OPENCHANNEL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="OPENCHANNEL.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" translate="OPENCHANNEL.AGENTSADD_QUEUE">\n Add Agents to queue\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'OPENCHANNEL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'OPENCHANNEL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'OPENCHANNEL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),e.put("app/main/apps/openchannel/views/realtime/realtime.html",'<div id="realtime" class="page-layout simple tabbed" layout="column" ng-cloak>\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.QUEUES">Queues</span>\n </md-tab-label>\n </md-tab>\n </md-tabs>\n\n <md-card ui-view></md-card>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/plugins/views/plugin/plugin.html",'<div ng-if="!vm.plugin">\n <p>Plugin not available...</p>\n</div>\n<div id="plugin" ng-if="vm.plugin" ng-cloak layout-fill>\n <iframe ng-src="{{vm.getTrustedURL()}}" frameborder=0 style="border:0px; width:100%; height:100%;"></iframe>\n</div>'),e.put("app/main/apps/realtime/views/agents/view.html",'<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.AGENTS">Agents</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getAgents()" query="vm.query" debounce="300"></ms-search-bar>\n <md-select ng-model="vm.query.globalStatusFilter" class="md-caption" ng-change="vm.query.pauseTypeFilter = \'\'; vm.getAgents()">\n <md-option ng-value="\'\'">{{ \'VOICE.ALL\' | translate }}</md-option>\n <md-option value="pause">{{ \'VOICE.PAUSE\' | translate }}</md-option>\n <md-option value="*pause">{{ \'VOICE.PARTIALPAUSE\' | translate }}</md-option>\n <md-option value="busy">{{ \'VOICE.BUSY\' | translate }}</md-option>\n <md-option value="idle">{{ \'VOICE.IDLE\' | translate }}</md-option>\n </md-select>\n <md-select ng-if="vm.query.globalStatusFilter === \'pause\' || vm.query.globalStatusFilter === \'*pause\'" ng-model="vm.query.pauseTypeFilter" class="md-caption ml-16" ng-change="vm.getAgents()">\n <md-option ng-value="\'\'">All</md-option>\n <md-option value="DEFAULT PAUSE">DEFAULT PAUSE</md-option>\n <md-option value="ACW">ACW</md-option>\n <md-option value="LOGININPAUSE">LOGININPAUSE</md-option>\n <md-option value="Auto-Pause">AUTOPAUSE</md-option>\n <md-option ng-value="pause.name" ng-repeat="pause in vm.pauses.rows">{{pause.name}}</md-option>\n </md-select>\n </div>\n</md-toolbar>\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getAgents">\n <tr md-row>\n <th class="bv text-center" colspan="5">{{ \'VOICE.AGENT\' | translate }}</th>\n <th class="bv bl text-center" colspan="2">{{ \'VOICE.VOICE\' | translate }}</th>\n <th ng-if="vm.license.chat" class="bv bl text-center" colspan="2">{{ \'CHAT.CHAT\' | translate }}</th>\n <th ng-if="vm.license.mail" class="bv bl text-center" colspan="2">{{ \'MAIL.MAIL\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="bv bl text-center" colspan="2">{{ \'SMS.SMS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="bv bl text-center" colspan="2">\n {{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="bv bl text-center" colspan="2">\n {{ \'WHATSAPP.WHATSAPP\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" colspan="2" md-column md-order-by="fullname">\n {{ \'VOICE.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">\n {{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">\n {{ \'VOICE.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">\n {{ \'VOICE.PAUSE_TIME\' | translate }}</th>\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\n <th ng-if="vm.license.chat" class="bl text-center">{{ \'CHAT.STATUS\' | translate }}</th>\n <th ng-if="vm.license.chat" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'CHAT.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.mail" class="bl text-center">{{ \'MAIL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.mail" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'MAIL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.messaging" class="bl text-center">{{ \'SMS.STATUS\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'SMS.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.openchannel" class="bl text-center">{{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'OPENCHANNEL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.fax" class="bl text-center">{{ \'FAX.STATUS\' | translate }}</th>\n <th ng-if="vm.license.fax" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'FAX.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.whatsapp" class="bl text-center">{{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'WHATSAPP.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.agents.count > 0">\n <td md-cell colspan="19">\n <div layout="row" layout-align="center center">\n <span>{{ \'VOICE.NO_AGENT_ONLINE\' | translate }}</span>\n </div>\n </td>\n </tr>\n <tr md-select="agent" md-select-id="id" ng-repeat="agent in vm.agents.rows">\n <td class="bt padding-5">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="{{agent.userpic && \'api/users/\'+ agent.id +\'/avatar\' || \'assets/images/avatars/profile.png\'}}">\n <div layout="column">\n <span>{{agent.fullname}}</span>\n <span>{{agent.internal}}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5">\n <div layout="row" layout-align="start center" ng-if="vm.license.screenrecording && (agent.phoneBarEnableScreenRecordingByAgent || agent.phoneBarEnableAutomaticScreenRecording)">\n <div class="column">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" ng-class="agent.screenrecording ? \'green-fg\' : \'grey-fg\'" aria-hidden="true">\n <md-tooltip>\n {{ agent.screenrecording ? \'VOICE.TOOLTIP_SCREENRECORDING_ON\' : \'VOICE.TOOLTIP_SCREENRECORDING_OFF\'\n | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n </div>\n </td>\n <td class="bt text-center">\n'+" <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','busy':'indigo-100-bg','*pause':'amber-50-bg','pause':'amber-200-bg'}[agent.globalStatus]\">\n {{ agent.globalStatus === 'pause' || agent.globalStatus === '*pause' ? \n ((agent.globalStatusDisplayValue === 'DEFAULT PAUSE' ? ('VOICE.DEFAULT_PAUSE' | translate) : agent.globalStatusDisplayValue) | uppercase) : \n ('VOICE.' + (agent.globalStatusDisplayValue | uppercase) | translate | uppercase)\n }}\n </span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"agent.lastLoginAt\"></timer>\n </td>\n <td class=\"bt custom-column\">\n <timer ng-if=\"agent.globalStatus === 'pause' || agent.globalStatus === '*pause'\" start-time=\"agent.lastPauseAt\"></timer>\n </td>\n <td class=\"bt bl text-center\">\n <span ng-if=\"!agent.onhold\" class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','talking':'indigo-100-bg','ringing':'orange-400-bg','pause':'amber-200-bg'}[agent.voiceStatus]\">\n {{ 'VOICE.' + (agent.voiceStatus | uppercase) | translate | uppercase }}</span>\n <span ng-if=\"agent.onhold\" class=\"text-boxed md-background-bg bl bt padding-5 orange-400-bg\">\n {{ 'VOICE.ONHOLD' | translate | uppercase }}</span>\n </td>\n <td class=\"bt bl\">\n <div layout=\"column\" ng-if=\"agent.voiceStatus === 'talking' || agent.voiceStatus === 'ringing'\">\n <span ng-if=\"agent.queue\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[agent.voiceStatus]\">{{\n agent.queue }}</span>\n <span ng-if=\"agent.destconnectedlinenum\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[agent.voiceStatus]\" privacy ng-cloak>{{\n agent.destconnectedlinenum }}</span>\n <span ng-if=\"agent.routealias\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[agent.voiceStatus]\">{{\n agent.routealias }}</span>\n <span class=\"padding-5\" ng-if=\"agent.queue || agent.destconnectedlinenum\">\n <timer start-time=\"agent.voiceStatusTime\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[agent.voiceStatus]\">\n </timer>\n </span>\n </div>\n </td>\n <td class=\"bt bl text-center\" ng-if=\"vm.license.chat\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[agent.chatStatus]\">\n {{ 'VOICE.' + (agent.chatStatus | uppercase) | translate | uppercase }}</span>\n </td>\n <td md-number class=\"bt text-center font-size-20\" ng-if=\"vm.license.chat\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[agent.chatStatus]\">\n {{ agent.chatCurrentCapacity }}</td>\n <td class=\"bl bt text-center\" ng-if=\"vm.license.mail\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[agent.mailStatus]\">\n {{ 'VOICE.' + (agent.mailStatus | uppercase) | translate | uppercase }}\n </span>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.mail\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[agent.mailStatus]\">\n {{ agent.mailCurrentCapacity }}</td>\n <td class=\"bl bt text-center\" ng-if=\"vm.license.messaging\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[agent.smsStatus]\">\n {{ 'VOICE.' + (agent.smsStatus | uppercase) | translate | uppercase }}\n </span>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.messaging\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[agent.smsStatus]\">\n {{ agent.smsCurrentCapacity }}</td>\n <td class=\"bt bl text-center\" ng-if=\"vm.license.openchannel\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[agent.openchannelStatus]\">\n {{ 'VOICE.' + (agent.openchannelStatus | uppercase) | translate | uppercase }}\n </span>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.openchannel\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[agent.openchannelStatus]\">\n {{ agent.openchannelCurrentCapacity }}</td>\n <td class=\"bt bl text-center\" ng-if=\"vm.license.fax\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[agent.faxStatus]\">\n {{ 'VOICE.' + (agent.faxStatus | uppercase) | translate | uppercase }}\n </span>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.fax\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[agent.faxStatus]\">\n {{ agent.faxCurrentCapacity }}</td>\n <td class=\"bl bt text-center\" ng-if=\"vm.license.whatsapp\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[agent.whatsappStatus]\">\n {{ 'VOICE.' + (agent.whatsappStatus | uppercase) | translate | uppercase }}\n </span>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.whatsapp\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[agent.whatsappStatus]\">\n {{ agent.whatsappCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\" ng-if=\"vm.crudPermissions.canEdit\">\n <md-menu>\n <md-button class=\"md-icon-button\" aria-label=\"More\" translate translate-attr-aria-label=\"STAFF.MORE\" ng-click=\"$mdOpenMenu($event)\">\n <md-icon md-font-icon=\"icon-dots-vertical\"></md-icon>\n </md-button>\n <md-menu-content width=\"4\">\n <md-menu-item>\n <md-button ng-click=\"vm.logout(agent, $event)\" translate=\"VOICE.LOGOUT\">\n Logout\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click=\"vm.addQueue(agent, $event)\" translate=\"{{ vm.channel.toUpperCase() + '.AGENTADD_QUEUE' }}\">\n Add Agent In Queue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.license.screenrecording && agent.phoneBarEnableScreenRecordingByAgent\">\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"VOICE.SCREENRECORDING\">Manage Screen Recording\n </md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-click=\"vm.manageScreenRecording(agent, !agent.screenrecording)\" translate=\"{{ agent.screenrecording ? 'VOICE.STOP_SCREENRECORDING' : 'VOICE.START_SCREENRECORDING' }}\">\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item>\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"VOICE.PAUSE\">Pause</md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-disabled=\"agent.voicePause && 'DEFAULT PAUSE' === agent.pauseType\" ng-click=\"vm.pause(agent)\">\n <em translate=\"VOICE.DEFAULT_PAUSE\">Default Pause</em>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.pauses.rows.length\" ng-repeat=\"pause in vm.pauses.rows\">\n <md-button ng-disabled=\"agent.voicePause && pause.name === agent.pauseType\" ng-click=\"vm.pause(agent, pause.name)\">{{pause.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item ng-if=\"agent.globalStatus === 'pause' || agent.globalStatus === '*pause'\">\n <md-button ng-click=\"vm.unpause(agent)\" translate=\"VOICE.UNPAUSE\">\n Unpause\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n<md-table-pagination md-label=\"{page: '{{'VOICE.PAGE' | translate}}:', rowsPerPage: '{{'VOICE.ROWSPERPAGE' | translate}}:', of: '{{'VOICE.OF' | translate}}'}\" md-limit=\"vm.query.limit\" md-limit-options=\"[10, 15, 20, 50, 100, 250]\" md-page=\"vm.query.page\" md-total=\"{{vm.agents.count}}\" md-on-paginate=\"vm.getAgents\" md-page-select></md-table-pagination>"),e.put("app/main/apps/settings/views/cloudProviders/cloudProviders.html",'<div id="cloudProviders" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="SETTINGS.AITOOLS">AiTools</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="SETTINGS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedAiTools.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedAiTools =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="SETTINGS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-cloudProviders-count">\n <span>{{vm.selectedAiTools.length}}</span>\n <span translate="SETTINGS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="SETTINGS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllAiTools()" translate="SETTINGS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectAiTools()" translate="SETTINGS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedAiTools" csv-label="true" filename="cloudProviders.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-click="vm.deleteSelectedAiTools($event)" aria-label="delete selected" translate translate-attr-label="SETTINGS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- CLOUDPROVIDER TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedAiTools" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getAiTools">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'SETTINGS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'SETTINGS.NAME\' | translate }}</th>\n <th md-column md-order-by="service">{{ \'SETTINGS.SERVICE\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.cloudProviders.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="SETTINGS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="cloudProvider" md-select-id="id" ng-repeat="cloudProvider in vm.cloudProviders.rows">\n <td md-cell ng-if="cloudProvider.userpic"><img class="avatar" alt="{{cloudProvider.name}}" ng-src="api/users/{{cloudProvider.id}}/avatar" /></td>\n <td md-cell ng-if="!cloudProvider.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{cloudProvider.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditCloudProvider($event, cloudProvider)" md-cell class="id ">{{cloudProvider.id}}</td>\n <td ng-click="vm.createOrEditCloudProvider($event, cloudProvider)" md-cell class="name ">{{cloudProvider.name}}</td>\n <td ng-click="vm.createOrEditCloudProvider($event, cloudProvider)" md-cell class="service ">{{ vm.arrayservice[cloudProvider.service].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="SETTINGS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.editdialog(cloudProvider, $event )" translate="SETTINGS.EDIT_CLOUDPROVIDER">\n Edit CloudProvider\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.deleteconfirm(cloudProvider, $event )" translate="SETTINGS.DELETE_CLOUDPROVIDER">\n Delete CloudProvider\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'SETTINGS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SETTINGS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SETTINGS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.cloudProviders.count}}" md-on-paginate="vm.getAiTools" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / CLOUDPROVIDER TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD CLOUDPROVIDER BUTTON --\x3e\n <md-button class="md-fab md-accent" id="add-cloudProvider-button" ng-click="vm.createOrEditCloudProvider($event)" aria-label="add cloudProvider" translate translate-attr-aria-label="SETTINGS.ADD_CLOUDPROVIDER">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD CLOUDPROVIDER BUTTON --\x3e\n</div>'),e.put("app/main/apps/settings/views/cloudProviders/create/dialog.html",'<md-dialog class="cloudProvider-dialog" aria-label="New CloudProvider">\n <form name="cloudProviderForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SETTINGS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.cloudProvider.name" ng-required="true" autofocus>\n\n <div ng-messages="cloudProviderForm[\'name\'].$error" ng-show="cloudProviderForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.SERVICE">Service</label>\n <md-select name="service" ng-model="vm.cloudProvider.service" required ng-disabled="!vm.newCloudProvider">\n <md-option ng-value="\'AmazonAWS\'">AmazonAWS</md-option>\n </md-select>\n <div ng-messages="cloudProviderForm[\'service\'].$error" ng-show="cloudProviderForm[\'service\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SERVICE_REQUIRED">Service field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.cloudProvider.service == \'AmazonAWS\'" class="md-block">\n <label translate="SETTINGS.ACCESSKEY">AccessKey</label>\n <input type="text" name="data2" ng-model="vm.cloudProvider.data2" ng-required="true">\n\n <div ng-messages="cloudProviderForm[\'data2\'].$error" ng-show="cloudProviderForm[\'data2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.ACCESSKEY_REQUIRED">AccessKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.cloudProvider.service == \'AmazonAWS\'" class="md-block">\n <label translate="SETTINGS.SECRETACCESSKEY">SecretAccesskey</label>\n <input type="text" name="data1" ng-model="vm.cloudProvider.data1" ng-required="true">\n\n <div ng-messages="cloudProviderForm[\'data1\'].$error" ng-show="cloudProviderForm[\'data1\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SECRETACCESSKEY_REQUIRED">SecretAccesskey field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="!vm.newCloudProvider" ng-click="vm.saveCloudProvider()" class="send-button md-accent md-raised" ng-disabled="cloudProviderForm.$invalid || cloudProviderForm.$pristine" aria-label="SAVE" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newCloudProvider" ng-click="vm.addNewCloudProvider()" class="send-button md-accent md-raised" ng-disabled="cloudProviderForm.$invalid" aria-label="ADD" translate="SETTINGS.ADD_CLOUDPROVIDER" translate-attr-aria-label="SETTINGS.ADD_CLOUDPROVIDER">\n ADD CLOUDPROVIDER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-click="vm.deleteCloudProvider($event)" aria-label="DELETE" translate translate-attr-aria-label="SETTINGS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="SETTINGS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/settings/views/customizations/create/dialog.html",'<md-dialog class="customization-dialog" aria-label="New Customization">\n <form name="customizationForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.customization.defaultLogo" aria-label="Default_Logo"><span translate="SETTINGS.DEFAULT_LOGO">Default_Logo</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.customization.defaultLoginLogo" aria-label="Default_Login_Logo"><span translate="SETTINGS.DEFAULT_LOGIN_LOGO">Default_Login_Logo</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.customization.defaultFavicon" aria-label="Default_Favicon"><span translate="SETTINGS.DEFAULT_FAVICON">Default_Favicon</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.customization.defaultHeaderWhiteLabel" aria-label="Default_Header_WhiteLabel"><span translate="SETTINGS.DEFAULT_HEADER_WHITELABEL">Default_Header_WhiteLabel</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.customization.defaultHeaderWhiteLabel" class="md-block">\n <label translate="SETTINGS.HEADER_WHITELABEL">Header_WhiteLabel</label>\n <input type="text" name="headerWhiteLabel" ng-model="vm.customization.headerWhiteLabel" ng-required="true">\n\n <div ng-messages="customizationForm[\'headerWhiteLabel\'].$error" ng-show="customizationForm[\'headerWhiteLabel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.HEADER_WHITELABEL_REQUIRED">Header_WhiteLabel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.customization.defaultPageTitle" aria-label="Default_Page_Title"><span translate="SETTINGS.DEFAULT_PAGE_TITLE">Default_Page_Title</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.customization.defaultPageTitle" class="md-block">\n <label translate="SETTINGS.PAGE_TITLE">Page_Title</label>\n <input type="text" name="pageTitle" ng-model="vm.customization.pageTitle" ng-required="true">\n\n <div ng-messages="customizationForm[\'pageTitle\'].$error" ng-show="customizationForm[\'pageTitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PAGE_TITLE_REQUIRED">Page_Title field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.preferred" class="md-block">\n <md-switch ng-model="vm.customization.defaultPreferred" aria-label="Default_Preferred"><span translate="SETTINGS.DEFAULT_PREFERRED">Default_Preferred</span></md-switch>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newCustomization" ng-click="vm.saveCustomization()" class="send-button md-accent md-raised" ng-disabled="customizationForm.$invalid || customizationForm.$pristine" aria-label="SAVE" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newCustomization" ng-click="vm.addNewCustomization()" class="send-button md-accent md-raised" ng-disabled="customizationForm.$invalid" aria-label="ADD" translate="SETTINGS.ADD_CUSTOMIZATION" translate-attr-aria-label="SETTINGS.ADD_CUSTOMIZATION">\n ADD CUSTOMIZATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newCustomization" ng-click="vm.deleteCustomization($event)" aria-label="DELETE" translate translate-attr-aria-label="SETTINGS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="SETTINGS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/settings/views/customizations/customizations.html",'<div id="customizations" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="SETTINGS.CUSTOMIZATIONS">Customizations</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div>\n <md-button type="submit" ng-click="vm.saveCustomization()" ng-disabled="(customizationsForm.$pristine && logoForm.$pristine && logologinForm.$pristine && preferredForm.$pristine && faviconForm.$pristine) || (customizationsForm.$invalid || logoForm.$invalid || logologinForm.$invalid || preferredForm.$invalid || faviconForm.$invalid)" class="send-button md-accent md-raised" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n <div class="customization-detail-form-container customizations md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.CUSTOMIZATIONS">CUSTOMIZATIONS</div>\n </div>\n <form name="customizationsForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.customization.defaultLogo" aria-label="Default_Logo"><span translate="SETTINGS.DEFAULT_LOGO">Default_Logo</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.customization.defaultLoginLogo" aria-label="Default_Login_Logo"><span translate="SETTINGS.DEFAULT_LOGIN_LOGO">Default_Login_Logo</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.customization.defaultFavicon" aria-label="Default_Favicon"><span translate="SETTINGS.DEFAULT_FAVICON">Default_Favicon</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.customization.defaultHeaderWhiteLabel" aria-label="Default_Header_WhiteLabel"><span translate="SETTINGS.DEFAULT_HEADER_WHITELABEL">Default_Header_WhiteLabel</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.customization.defaultHeaderWhiteLabel" class="md-block">\n <label translate="SETTINGS.HEADER_WHITELABEL">Header_WhiteLabel</label>\n <input type="text" name="headerWhiteLabel" ng-model="vm.customization.headerWhiteLabel" ng-required="true">\n\n <div ng-messages="customizationsForm[\'headerWhiteLabel\'].$error" ng-show="customizationsForm[\'headerWhiteLabel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.HEADER_WHITELABEL_REQUIRED">Header_WhiteLabel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.customization.defaultPageTitle" aria-label="Default_Page_Title"><span translate="SETTINGS.DEFAULT_PAGE_TITLE">Default_Page_Title</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.customization.defaultPageTitle" class="md-block">\n <label translate="SETTINGS.PAGE_TITLE">Page_Title</label>\n <input type="text" name="pageTitle" ng-model="vm.customization.pageTitle" ng-required="true">\n\n <div ng-messages="customizationsForm[\'pageTitle\'].$error" ng-show="customizationsForm[\'pageTitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PAGE_TITLE_REQUIRED">Page_Title field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.preferred" class="md-block">\n <md-switch ng-model="vm.customization.defaultPreferred" aria-label="Default_Preferred"><span translate="SETTINGS.DEFAULT_PREFERRED">Default_Preferred</span></md-switch>\n </md-input-container>\n\n </form>\n </div>\n\n <div ng-if="!vm.customization.defaultLogo" class="customization-detail-form-container logo md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.LOGO">LOGO</div>\n </div>\n <div ng-controller="CustomizationlogoController as vm_cl" ng-init="vm_cl.init(vm.customization)" class="customization-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="customization-image-uploader" flow-init="vm_cl.ngFlowOptions" flow-name="vm_cl.ngFlow.flow" flow-files-submitted="vm_cl.upload()" flow-file-added="vm_cl.fileAdded($file)" flow-file-success="vm_cl.fileSuccess($file, $message)" flow-complete="vm_cl.uploadComplete()" flow-drop flow-drag-enter="vm_cl.dropping=true" flow-drag-leave="vm_cl.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn>\n Upload\n </md-button>\n <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG - Max. 8MB</span>\n </div>\n\n <div layout="row" layout-align="start start" layout-wrap>\n <div ng-repeat="logoimage in vm_cl.customization.images" ng-switch="logoimage.type">\n <div class="customization-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n <div class="overlay" layout="column" layout-align="center center">\n <md-progress-linear md-mode="determinate" value="{{logoimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="logoimage.file">\n </div>\n\n <div class="customization-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{logoimage.url}}">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n\n <div ng-if="!vm.customization.defaultLoginLogo" class="customization-detail-form-container logologin md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.LOGOLOGIN">LOGOLOGIN</div>\n </div>\n <div ng-controller="CustomizationlogologinController as vm_cll" ng-init="vm_cll.init(vm.customization)" class="customization-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="customization-image-uploader" flow-init="vm_cll.ngFlowOptions" flow-name="vm_cll.ngFlow.flow" flow-files-submitted="vm_cll.upload()" flow-file-added="vm_cll.fileAdded($file)" flow-file-success="vm_cll.fileSuccess($file, $message)" flow-complete="vm_cll.uploadComplete()" flow-drop flow-drag-enter="vm_cll.dropping=true" flow-drag-leave="vm_cll.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn>\n Upload\n </md-button>\n <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG - Max. 8MB</span>\n </div>\n\n <div layout="row" layout-align="start start" layout-wrap>\n <div ng-repeat="logologinimage in vm_cll.customization.images" ng-switch="logologinimage.type">\n <div class="customization-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n <div class="overlay" layout="column" layout-align="center center">\n <md-progress-linear md-mode="determinate" value="{{logologinimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="logologinimage.file">\n </div>\n\n <div class="customization-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{logologinimage.url}}">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n\n <div ng-if="!vm.customization.defaultPreferred && vm.license.preferred" class="customization-detail-form-container preferred md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.PREFERRED">PREFERRED</div>\n </div>\n <div ng-controller="CustomizationpreferredController as vm_cp" ng-init="vm_cp.init(vm.customization)" class="customization-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="customization-image-uploader" flow-init="vm_cp.ngFlowOptions" flow-name="vm_cp.ngFlow.flow" flow-files-submitted="vm_cp.upload()" flow-file-added="vm_cp.fileAdded($file)" flow-file-success="vm_cp.fileSuccess($file, $message)" flow-complete="vm_cp.uploadComplete()" flow-drop flow-drag-enter="vm_cp.dropping=true" flow-drag-leave="vm_cp.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn>\n Upload\n </md-button>\n <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG - Max. 8MB</span>\n </div>\n\n <div layout="row" layout-align="start start" layout-wrap>\n <div ng-repeat="preferredimage in vm_cp.customization.images" ng-switch="preferredimage.type">\n <div class="customization-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n <div class="overlay" layout="column" layout-align="center center">\n <md-progress-linear md-mode="determinate" value="{{preferredimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="preferredimage.file">\n </div>\n\n <div class="customization-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{preferredimage.url}}">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n\n <div ng-if="!vm.customization.defaultFavicon" class="customization-detail-form-container favicon md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.FAVICON">FAVICON</div>\n </div>\n <div ng-controller="CustomizationfaviconController as vm_cf" ng-init="vm_cf.init(vm.customization)" class="customization-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="customization-image-uploader" flow-init="vm_cf.ngFlowOptions" flow-name="vm_cf.ngFlow.flow" flow-files-submitted="vm_cf.upload()" flow-file-added="vm_cf.fileAdded($file)" flow-file-success="vm_cf.fileSuccess($file, $message)" flow-complete="vm_cf.uploadComplete()" flow-drop flow-drag-enter="vm_cf.dropping=true" flow-drag-leave="vm_cf.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn>\n Upload\n </md-button>\n <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG, ICO - Max. 8MB</span>\n </div>\n\n <div layout="row" layout-align="start start" layout-wrap>\n <div ng-repeat="faviconimage in vm_cf.customization.images" ng-switch="faviconimage.type">\n <div class="customization-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n <div class="overlay" layout="column" layout-align="center center">\n <md-progress-linear md-mode="determinate" value="{{faviconimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="faviconimage.file">\n </div>\n\n <div class="customization-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{faviconimage.url}}">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/settings/views/generals/create/dialog.html",'<md-dialog class="general-dialog" aria-label="New General">\n <form name="generalForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newGeneral" ng-click="vm.saveGeneral()" class="send-button md-accent md-raised" ng-disabled="generalForm.$invalid || generalForm.$pristine" aria-label="SAVE" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newGeneral" ng-click="vm.addNewGeneral()" class="send-button md-accent md-raised" ng-disabled="generalForm.$invalid" aria-label="ADD" translate="SETTINGS.ADD_GENERAL" translate-attr-aria-label="SETTINGS.ADD_GENERAL">\n ADD GENERAL\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newGeneral" ng-click="vm.deleteGeneral($event)" aria-label="DELETE" translate translate-attr-aria-label="SETTINGS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="SETTINGS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/settings/views/generals/generals.html",'<div id="generals" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="SETTINGS.GENERAL">General</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div>\n <md-button type="submit" ng-click="vm.saveGeneral()" ng-disabled="(globalForm.$pristine && motionbarForm.$pristine && reportForm.$pristine && agentOmniDesktopInterfaceForm.$pristine && screenRecordingForm.$pristine && securityForm.$pristine && imapGeneralSettingsForm.$pristine && SSOForm.$pristine && aiToolsForm.$pristine) || (globalForm.$invalid || motionbarForm.$invalid || reportForm.$invalid || agentOmniDesktopInterfaceForm.$invalid || screenRecordingForm.$invalid || securityForm.$invalid || imapGeneralSettingsForm.$invalid || SSOForm.$invalid || aiToolsForm.$invalid)" class="send-button md-accent md-raised" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n <div class="general-detail-form-container global md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.GLOBAL">GLOBAL</div>\n </div>\n <form name="globalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SETTINGS.MIN_INTERNAL">Min_Internal</label>\n <input type="number" name="min_internal" ng-model="vm.general.min_internal" min="0" value="1000" ng-required="true" autofocus>\n\n <div ng-messages="globalForm[\'min_internal\'].$error" ng-show="globalForm[\'min_internal\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.MIN_INTERNAL_REQUIRED">Min_Internal field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.MIN_INTERNAL_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Min_Internal must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.CHATTIMEOUT">chatTimeout</label>\n <input type="number" name="chatTimeout" ng-model="vm.general.chatTimeout" min="0" value="30" ng-required="true">\n\n <div ng-messages="globalForm[\'chatTimeout\'].$error" ng-show="globalForm[\'chatTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.CHATTIMEOUT_REQUIRED">chatTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.CHATTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">chatTimeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.rtlSupport" aria-label="RtlSupport"><span translate="SETTINGS.RTLSUPPORT">RtlSupport</span></md-switch>\n <div class="hint"><span translate="SETTINGS.HELP.RTLSUPPORT"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.stopRecordingOnTransfer" aria-label="Stop_Recording_On_Voice_Call_Transfer"><span translate="SETTINGS.STOP_RECORDING_ON_VOICE_CALL_TRANSFER">Stop_Recording_On_Voice_Call_Transfer</span></md-switch>\n </md-input-container>\n\n </form>\n </div>\n\n <div class="general-detail-form-container motionbar md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.MOTIONBAR">MOTIONBAR</div>\n </div>\n <form name="motionbarForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.phoneBarAutoUpdater" aria-label="MotionbarAutoUpdater"><span translate="SETTINGS.MOTIONBARAUTOUPDATER">MotionbarAutoUpdater</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.general.phoneBarAutoUpdater" class="md-block">\n <label translate="SETTINGS.MOTIONBARAUTOUPDATERURL">MotionbarAutoUpdaterUrl</label>\n <input type="url" name="phoneBarAutoUpdaterUrl" ng-model="vm.general.phoneBarAutoUpdaterUrl" value="https://www.xcally.com/bar/phonebar/autoupdater.xml" ng-required="vm.general.phoneBarAutoUpdater">\n\n <div ng-messages="motionbarForm[\'phoneBarAutoUpdaterUrl\'].$error" ng-show="motionbarForm[\'phoneBarAutoUpdaterUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.MOTIONBARAUTOUPDATERURL_REQUIRED">MotionbarAutoUpdaterUrl field is required</span>\n </div>\n <div ng-message="url">\n <span translate="SETTINGS.ERRORS.MOTIONBARAUTOUPDATERURL_MUST_VALID_URL">MotionbarAutoUpdaterUrl must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.phoneBarRememberMeEnabled" aria-label="MotionbarRememberMe"><span translate="SETTINGS.MOTIONBARREMEMBERME">MotionbarRememberMe</span></md-switch>\n <div class="hint"><span translate="SETTINGS.HELP.MOTIONBARREMEMBERME"></span></div>\n </md-input-container>\n\n </form>\n </div>\n\n <div class="general-detail-form-container report md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.REPORT">REPORT</div>\n </div>\n <form name="reportForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.split" aria-label="Split"><span translate="SETTINGS.SPLIT">Split</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.general.split" class="md-block">\n <label translate="SETTINGS.SPLITSIZECSV">SplitSizeCsv</label>\n <input type="number" name="splitSizeCsv" ng-model="vm.general.splitSizeCsv" value="5000">\n\n <div ng-messages="reportForm[\'splitSizeCsv\'].$error" ng-show="reportForm[\'splitSizeCsv\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SPLITSIZECSV_REQUIRED">SplitSizeCsv field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.general.split" class="md-block">\n <label translate="SETTINGS.SPLITSIZEPDF">SplitSizePdf</label>\n <input type="number" name="splitSizePdf" ng-model="vm.general.splitSizePdf" value="1000">\n\n <div ng-messages="reportForm[\'splitSizePdf\'].$error" ng-show="reportForm[\'splitSizePdf\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SPLITSIZEPDF_REQUIRED">SplitSizePdf field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.general.split" class="md-block">\n <label translate="SETTINGS.SPLITSIZEXLSX">SplitSizeXlsx</label>\n <input type="number" name="splitSizeXlsx" ng-model="vm.general.splitSizeXlsx" value="5000">\n\n <div ng-messages="reportForm[\'splitSizeXlsx\'].$error" ng-show="reportForm[\'splitSizeXlsx\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SPLITSIZEXLSX_REQUIRED">SplitSizeXlsx field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n\n <div class="general-detail-form-container agentomnidesktopinterface md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.AGENTOMNIDESKTOPINTERFACE">AGENTOMNIDESKTOPINTERFACE</div>\n </div>\n <form name="agentOmniDesktopInterfaceForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.enableEmailPreview" aria-label="EnableEmailPreview"><span translate="SETTINGS.ENABLEEMAILPREVIEW">EnableEmailPreview</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.searchOnEnterKey" aria-label="Search_On_Enter_Key"><span translate="SETTINGS.SEARCH_ON_ENTER_KEY">Search_On_Enter_Key</span></md-switch>\n <div class="hint"><span translate="SETTINGS.HELP.SEARCH_ON_ENTER_KEY"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.MESSAGESALIGNMENT">messagesAlignment</label>\n <md-select name="messagesAlignment" ng-model="vm.general.messagesAlignment">\n <md-option ng-value="\'alternate\'">Alternate</md-option>\n <md-option ng-value="\'left\'">Left</md-option>\n <md-option ng-value="\'right\'">Right</md-option>\n </md-select>\n <div ng-messages="agentOmniDesktopInterfaceForm[\'messagesAlignment\'].$error" ng-show="agentOmniDesktopInterfaceForm[\'messagesAlignment\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.MESSAGESALIGNMENT_REQUIRED">messagesAlignment field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.CHAT_INTERACTIONS_RELOAD_TIMEOUT">Chat_Interactions_Reload_Timeout</label>\n <input type="number" name="chatInteractionsReloadTimeout" ng-model="vm.general.chatInteractionsReloadTimeout">\n\n <div class="hint"><span translate="SETTINGS.HELP.INTERACTIONS_RELOAD_TIMEOUT"></span></div>\n <div ng-messages="agentOmniDesktopInterfaceForm[\'chatInteractionsReloadTimeout\'].$error" ng-show="agentOmniDesktopInterfaceForm[\'chatInteractionsReloadTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.CHAT_INTERACTIONS_RELOAD_TIMEOUT_REQUIRED">Chat_Interactions_Reload_Timeout field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.MAIL_INTERACTIONS_RELOAD_TIMEOUT">Mail_Interactions_Reload_Timeout</label>\n <input type="number" name="mailInteractionsReloadTimeout" ng-model="vm.general.mailInteractionsReloadTimeout">\n\n <div class="hint"><span translate="SETTINGS.HELP.INTERACTIONS_RELOAD_TIMEOUT"></span></div>\n <div ng-messages="agentOmniDesktopInterfaceForm[\'mailInteractionsReloadTimeout\'].$error" ng-show="agentOmniDesktopInterfaceForm[\'mailInteractionsReloadTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.MAIL_INTERACTIONS_RELOAD_TIMEOUT_REQUIRED">Mail_Interactions_Reload_Timeout field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.OPENCHANNEL_INTERACTIONS_RELOAD_TIMEOUT">Openchannel_Interactions_Reload_Timeout</label>\n <input type="number" name="openchannelInteractionsReloadTimeout" ng-model="vm.general.openchannelInteractionsReloadTimeout">\n\n <div class="hint"><span translate="SETTINGS.HELP.INTERACTIONS_RELOAD_TIMEOUT"></span></div>\n <div ng-messages="agentOmniDesktopInterfaceForm[\'openchannelInteractionsReloadTimeout\'].$error" ng-show="agentOmniDesktopInterfaceForm[\'openchannelInteractionsReloadTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.OPENCHANNEL_INTERACTIONS_RELOAD_TIMEOUT_REQUIRED">Openchannel_Interactions_Reload_Timeout field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.SMS_INTERACTIONS_RELOAD_TIMEOUT">Sms_Interactions_Reload_Timeout</label>\n <input type="number" name="smsInteractionsReloadTimeout" ng-model="vm.general.smsInteractionsReloadTimeout">\n\n <div class="hint"><span translate="SETTINGS.HELP.INTERACTIONS_RELOAD_TIMEOUT"></span></div>\n <div ng-messages="agentOmniDesktopInterfaceForm[\'smsInteractionsReloadTimeout\'].$error" ng-show="agentOmniDesktopInterfaceForm[\'smsInteractionsReloadTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SMS_INTERACTIONS_RELOAD_TIMEOUT_REQUIRED">Sms_Interactions_Reload_Timeout field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.WHATSAPP_INTERACTIONS_RELOAD_TIMEOUT">Whatsapp_Interactions_Reload_Timeout</label>\n <input type="number" name="whatsappInteractionsReloadTimeout" ng-model="vm.general.whatsappInteractionsReloadTimeout">\n\n <div class="hint"><span translate="SETTINGS.HELP.INTERACTIONS_RELOAD_TIMEOUT"></span></div>\n <div ng-messages="agentOmniDesktopInterfaceForm[\'whatsappInteractionsReloadTimeout\'].$error" ng-show="agentOmniDesktopInterfaceForm[\'whatsappInteractionsReloadTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.WHATSAPP_INTERACTIONS_RELOAD_TIMEOUT_REQUIRED">Whatsapp_Interactions_Reload_Timeout field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n\n <div ng-if="vm.license.screenrecording" class="general-detail-form-container screenrecording md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.SCREENRECORDING">SCREENRECORDING</div>\n </div>\n <form name="screenRecordingForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SETTINGS.DEFAULTSCREENRECORDINGPATH">defaultScreenRecordingPath</label>\n <input type="text" name="defaultScreenRecordingPath" ng-model="vm.general.defaultScreenRecordingPath" autofocus>\n\n <div class="hint"><span translate="SETTINGS.HELP.DEFAULTSCREENRECORDINGPATH"></span></div>\n <div ng-messages="screenRecordingForm[\'defaultScreenRecordingPath\'].$error" ng-show="screenRecordingForm[\'defaultScreenRecordingPath\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.DEFAULTSCREENRECORDINGPATH_REQUIRED">defaultScreenRecordingPath field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n\n <div class="general-detail-form-container security md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.SECURITY">SECURITY</div>\n </div>\n <form name="securityForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.securePassword" aria-label="Security_Suite"><span translate="SETTINGS.SECURITY_SUITE">Security_Suite</span></md-switch>\n <div class="hint"><span translate="SETTINGS.HELP.SECURITY_SUITE"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.callRecordingEncryption" aria-label="Call_Recording_Encryption"><span translate="SETTINGS.CALL_RECORDING_ENCRYPTION">Call_Recording_Encryption</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.ALLOWEDLOGINATTEMPTS">allowedLoginAttempts</label>\n <input type="number" name="allowedLoginAttempts" ng-model="vm.general.allowedLoginAttempts" value="5" ng-required="true">\n\n <div ng-messages="securityForm[\'allowedLoginAttempts\'].$error" ng-show="securityForm[\'allowedLoginAttempts\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.ALLOWEDLOGINATTEMPTS_REQUIRED">allowedLoginAttempts field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.BLOCKDURATION">blockDuration</label>\n <input type="number" name="blockDuration" ng-model="vm.general.blockDuration" value="10" ng-required="true">\n\n <div ng-messages="securityForm[\'blockDuration\'].$error" ng-show="securityForm[\'blockDuration\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.BLOCKDURATION_REQUIRED">blockDuration field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.enforcePasswordHistory" aria-label="Enforce_Password_History"><span translate="SETTINGS.ENFORCE_PASSWORD_HISTORY">Enforce_Password_History</span></md-switch>\n <div class="hint"><span translate="SETTINGS.HELP.ENFORCE_PASSWORD_HISTORY"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.general.enforcePasswordHistory" class="md-block">\n <label translate="SETTINGS.PASSWORD_HISTORY_LIMIT">Password_History_Limit</label>\n <input type="number" name="passwordHistoryLimit" ng-model="vm.general.passwordHistoryLimit" min="2" max="5" value="3">\n\n <div class="hint"><span translate="SETTINGS.HELP.PASSWORD_HISTORY_LIMIT"></span></div>\n <div ng-messages="securityForm[\'passwordHistoryLimit\'].$error" ng-show="securityForm[\'passwordHistoryLimit\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PASSWORD_HISTORY_LIMIT_REQUIRED">Password_History_Limit field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.PASSWORD_HISTORY_LIMIT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Password_History_Limit must be a valid greater or equal than</span> <span>2</span>\n </div>\n <div ng-message="max">\n <span translate="SETTINGS.ERRORS.PASSWORD_HISTORY_LIMIT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Password_History_Limit must be a valid greater or equal than</span> <span>5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block no-margin-bottom">\n <md-switch ng-change="vm.onPrivacyPolicyChange(\'email\')" ng-model="vm.general.enablePrivacyPolicyEmail" aria-label="Privacy_Policy_Email"><span translate="SETTINGS.PRIVACY_POLICY_EMAIL">Privacy_Policy_Email</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.general.enablePrivacyPolicyEmail" class="md-block no-margin-top">\n\n <input type="number" name="privacyPolicyEmail" ng-model="vm.general.privacyPolicyEmail" min="0" value="0" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.PRIVACY_POLICY"></span></div>\n <div ng-messages="securityForm[\'privacyPolicyEmail\'].$error" ng-show="securityForm[\'privacyPolicyEmail\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PRIVACY_POLICY_EMAIL_REQUIRED">Privacy_Policy_Email field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.PRIVACY_POLICY_EMAIL_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Privacy_Policy_Email must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block no-margin-bottom">\n <md-switch ng-change="vm.onPrivacyPolicyChange(\'name\')" ng-model="vm.general.enablePrivacyPolicyName" aria-label="Privacy_Policy_Name"><span translate="SETTINGS.PRIVACY_POLICY_NAME">Privacy_Policy_Name</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.general.enablePrivacyPolicyName" class="md-block no-margin-top">\n\n <input type="number" name="privacyPolicyName" ng-model="vm.general.privacyPolicyName" min="0" value="0" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.PRIVACY_POLICY"></span></div>\n <div ng-messages="securityForm[\'privacyPolicyName\'].$error" ng-show="securityForm[\'privacyPolicyName\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PRIVACY_POLICY_NAME_REQUIRED">Privacy_Policy_Name field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.PRIVACY_POLICY_NAME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Privacy_Policy_Name must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block no-margin-bottom">\n <md-switch ng-change="vm.onPrivacyPolicyChange(\'number\')" ng-model="vm.general.enablePrivacyPolicyNumber" aria-label="Privacy_Policy_Number"><span translate="SETTINGS.PRIVACY_POLICY_NUMBER">Privacy_Policy_Number</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.general.enablePrivacyPolicyNumber" class="md-block no-margin-top">\n\n <input type="number" name="privacyPolicyNumber" ng-model="vm.general.privacyPolicyNumber" min="0" value="0" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.PRIVACY_POLICY"></span></div>\n <div ng-messages="securityForm[\'privacyPolicyNumber\'].$error" ng-show="securityForm[\'privacyPolicyNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PRIVACY_POLICY_NUMBER_REQUIRED">Privacy_Policy_Number field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.PRIVACY_POLICY_NUMBER_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Privacy_Policy_Number must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n\n <div class="general-detail-form-container imapgeneralsettings md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.IMAPGENERALSETTINGS">IMAPGENERALSETTINGS</div>\n </div>\n <form name="imapGeneralSettingsForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SETTINGS.LOGINMAILFREQUENCY">loginMailFrequency</label>\n <input type="number" name="loginMailFrequency" ng-model="vm.general.loginMailFrequency" min="10" value="10" ng-required="true" autofocus>\n\n <div class="hint"><span translate="SETTINGS.HELP.LOGINMAILFREQUENCY"></span></div>\n <div ng-messages="imapGeneralSettingsForm[\'loginMailFrequency\'].$error" ng-show="imapGeneralSettingsForm[\'loginMailFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.LOGINMAILFREQUENCY_REQUIRED">loginMailFrequency field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.LOGINMAILFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">loginMailFrequency must be a valid greater or equal than</span> <span>10</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n\n <div class="general-detail-form-container sso md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.SSO">SSO</div>\n </div>\n <form name="SSOForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.googleSsoEnabled" aria-label="Google_SSO_enabled"><span translate="SETTINGS.GOOGLE_SSO_ENABLED">Google_SSO_enabled</span></md-switch>\n </md-input-container>\n\n </form>\n </div>\n\n <div ng-if="vm.license.ai" class="general-detail-form-container aitools md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.AITOOLS">AITOOLS</div>\n </div>\n <form name="aiToolsForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SETTINGS.LANGUAGE">Language</label>\n <md-select name="language" ng-model="vm.general.language" autofocus required>\n <md-option ng-value="\'en-US\'">US English</md-option>\n <md-option ng-value="\'en-AU\'">Australian English</md-option>\n <md-option ng-value="\'en-GB\'">British English</md-option>\n <md-option ng-value="\'en-AB\'">Scottish English</md-option>\n <md-option ng-value="\'en-WL\'">Welsh English</md-option>\n <md-option ng-value="\'en-IE\'">English (Ireland)</md-option>\n <md-option ng-value="\'en-IN\'">Indian English</md-option>\n <md-option ng-value="\'hi-IN\'">Hindi (India)</md-option>\n <md-option ng-value="\'fr-CA\'">Canadian French</md-option>\n <md-option ng-value="\'fr-FR\'">French</md-option>\n <md-option ng-value="\'de-DE\'">German</md-option>\n <md-option ng-value="\'de-CH\'">German (Switzerland)</md-option>\n <md-option ng-value="\'it-IT\'">Italian</md-option>\n <md-option ng-value="\'es-ES\'">Spanish</md-option>\n <md-option ng-value="\'es-Us\'">US Spanish</md-option>\n <md-option ng-value="\'pt-BR\'">Brazilian Portuguese</md-option>\n <md-option ng-value="\'pt-PT\'">Portuguese(Portugal)</md-option>\n <md-option ng-value="\'ar-SA\'">Modern Standard Arabic</md-option>\n <md-option ng-value="\'ar-AE\'">Arabic</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese Mandarin - Mainland</md-option>\n <md-option ng-value="\'ja-JP\'">Japanese (Japan)</md-option>\n <md-option ng-value="\'ko-KR\'">Korean (Korea)</md-option>\n <md-option ng-value="\'he-IL\'">Hebrew (Israel) - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'ms-MY\'">Malay (Malaysia) - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'fa-IR\'">Farsi (Iran) - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'ru-RU\'">Russian (Russia) - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'te-IN\'">Telugu(India) - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'ta-IN\'">Tamil - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'nl-NL\'">Dutch - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'tr-TR\'">Turkish (Turkey) - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'id-ID\'">Indonesian(Indonesia) - This language is not available for the Sentiment Analysis</md-option>\n </md-select>\n <div ng-messages="aiToolsForm[\'language\'].$error" ng-show="aiToolsForm[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.LANGUAGE_REQUIRED">Language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.BUCKET">Bucket</label>\n <input type="text" name="bucket" ng-model="vm.general.bucket" ng-required="true">\n\n <div ng-messages="aiToolsForm[\'bucket\'].$error" ng-show="aiToolsForm[\'bucket\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.BUCKET_REQUIRED">Bucket field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.transcribe" aria-label="Transcribe"><span translate="SETTINGS.TRANSCRIBE">Transcribe</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.general.transcribe == true" class="md-block">\n <label translate="SETTINGS.TRANSCRIBEREGION">TranscribeRegion</label>\n <md-select name="transcribeRegion" ng-model="vm.general.transcribeRegion" required>\n <md-option ng-value="\'us-east-1\'">US East (N. Virginia)</md-option>\n <md-option ng-value="\'us-east-2\'">US East (Ohio)</md-option>\n <md-option ng-value="\'us-east-2\'">US West (N. California)</md-option>\n <md-option ng-value="\'us-west-2\'">US West (Oregon)</md-option>\n <md-option ng-value="\'ap-south-1\'">Asia Pacific (Mumbai)</md-option>\n <md-option ng-value="\'ap-east-1\'">Asia Pacific (Hong Kong)</md-option>\n <md-option ng-value="\'ap-northeast-2\'">Asia Pacific (Seoul)</md-option>\n <md-option ng-value="\'ap-southeast-1\'">Asia Pacific (Singapore)</md-option>\n <md-option ng-value="\'ap-southeast-2\'">Asia Pacific (Sydney)</md-option>\n <md-option ng-value="\'ap-northeast-1\'">Asia Pacific (Tokyo)</md-option>\n <md-option ng-value="\'ca-central-1\'">Canada (Central)</md-option>\n <md-option ng-value="\'eu-central-1\'">Europe (Frankfurt)</md-option>\n <md-option ng-value="\'eu-west-1\'">Europe (Ireland)</md-option>\n <md-option ng-value="\'eu-west-2\'">Europe (London)</md-option>\n <md-option ng-value="\'eu-west-3\'">Europe (Paris)</md-option>\n <md-option ng-value="\'me-south-1\'">Middle East (Bahrain)</md-option>\n <md-option ng-value="\'sa-east-1\'">South America (São Paulo)</md-option>\n </md-select>\n <div ng-messages="aiToolsForm[\'transcribeRegion\'].$error" ng-show="aiToolsForm[\'transcribeRegion\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.TRANSCRIBEREGION_REQUIRED">TranscribeRegion field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.general.transcribe == true" class="md-block">\n <label translate="SETTINGS.TRANSCRIBEACCOUNT">TranscribeAccount</label>\n <md-select name="transcribeAccountId" ng-model="vm.general.transcribeAccountId" required>\n <md-option ng-value="transcribeAccountId.id" ng-repeat="transcribeAccountId in vm.cloudProviders" ng-disabled="transcribeAccountId.canSelect === false">{{ transcribeAccountId.name }}</md-option>\n </md-select>\n <div ng-messages="aiToolsForm[\'transcribeAccountId\'].$error" ng-show="aiToolsForm[\'transcribeAccountId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.TRANSCRIBEACCOUNT_REQUIRED">TranscribeAccount field is required</span>\n </div>\n </div>\n </md-input-container>\n'+" <md-input-container ng-if=\"vm.general.transcribe == true && vm.general.language != 'he-IL' && vm.general.language != 'ms-MY' && vm.general.language != 'fa-IR' && vm.general.language != 'ru-RU' && vm.general.language != 'te-IN' && vm.general.language != 'ta-IN' && vm.general.language != 'nl-NL' && vm.general.language != 'tr-TR' && vm.general.language != 'id-ID'\" class=\"md-block\">\n <md-switch ng-model=\"vm.general.sentiment\" aria-label=\"SentimentAnalysis\"><span translate=\"SETTINGS.SENTIMENTANALYSIS\">SentimentAnalysis</span></md-switch>\n </md-input-container>\n <md-input-container ng-if=\"vm.general.sentiment == true && vm.general.transcribe == true && vm.general.language != 'he-IL' && vm.general.language != 'ms-MY' && vm.general.language != 'fa-IR' && vm.general.language != 'ru-RU' && vm.general.language != 'te-IN' && vm.general.language != 'ta-IN' && vm.general.language != 'nl-NL' && vm.general.language != 'tr-TR' && vm.general.language != 'id-ID'\" class=\"md-block\">\n <label translate=\"SETTINGS.SENTIMENTREGION\">SentimentRegion</label>\n <md-select name=\"sentimentRegion\" ng-model=\"vm.general.sentimentRegion\" required>\n <md-option ng-value=\"'us-east-1'\">US East (N. Virginia)</md-option>\n <md-option ng-value=\"'us-east-2'\">US East (Ohio)</md-option>\n <md-option ng-value=\"'us-west-2'\">US West (Oregon)</md-option>\n <md-option ng-value=\"'ap-south-1'\">Asia Pacific (Mumbai)</md-option>\n <md-option ng-value=\"'ap-northeast-2'\">Asia Pacific (Seoul)</md-option>\n <md-option ng-value=\"'ap-southeast-1'\">Asia Pacific (Singapore)</md-option>\n <md-option ng-value=\"'ap-southeast-2'\">Asia Pacific (Sydney)</md-option>\n <md-option ng-value=\"'ap-northeast-1'\">Asia Pacific (Tokyo)</md-option>\n <md-option ng-value=\"'ca-central-1'\">Canada (Central)</md-option>\n <md-option ng-value=\"'eu-central-1'\">Europe (Frankfurt)</md-option>\n <md-option ng-value=\"'eu-west-1'\">Europe (Ireland)</md-option>\n <md-option ng-value=\"'eu-west-2'\">Europe (London)</md-option>\n </md-select>\n <div ng-messages=\"aiToolsForm['sentimentRegion'].$error\" ng-show=\"aiToolsForm['sentimentRegion'].$touched\" role=\"alert\">\n <div ng-message=\"required\">\n <span translate=\"SETTINGS.ERRORS.SENTIMENTREGION_REQUIRED\">SentimentRegion field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if=\"vm.general.sentiment == true && vm.general.transcribe == true && vm.general.language != 'he-IL' && vm.general.language != 'ms-MY' && vm.general.language != 'fa-IR' && vm.general.language != 'ru-RU' && vm.general.language != 'te-IN' && vm.general.language != 'ta-IN' && vm.general.language != 'nl-NL' && vm.general.language != 'tr-TR' && vm.general.language != 'id-ID'\" class=\"md-block\">\n <label translate=\"SETTINGS.SENTIMENTACCOUNT\">SentimentAccount</label>\n <md-select name=\"sentimentAccountId\" ng-model=\"vm.general.sentimentAccountId\" required>\n <md-option ng-value=\"sentimentAccountId.id\" ng-repeat=\"sentimentAccountId in vm.cloudProviders\" ng-disabled=\"sentimentAccountId.canSelect === false\">{{ sentimentAccountId.name }}</md-option>\n </md-select>\n <div ng-messages=\"aiToolsForm['sentimentAccountId'].$error\" ng-show=\"aiToolsForm['sentimentAccountId'].$touched\" role=\"alert\">\n <div ng-message=\"required\">\n <span translate=\"SETTINGS.ERRORS.SENTIMENTACCOUNT_REQUIRED\">SentimentAccount field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>"),e.put("app/main/apps/settings/views/license/license.html",'<div id="license" class="page-layout simple fullwidth doc-page">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="SETTINGS.LICENSE">LICENSE</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n \x3c!-- <div>\n <md-button type="submit" ng-click="vm.requestLicense()" class="send-button md-raised" translate="SETTINGS.REQUEST_LICENSE" translate-attr-aria-label="SETTINGS.REQUEST_LICENSE">\n REQUEST LICENSE\n </md-button>\n </div> --\x3e\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n \x3c!-- LICENSE CARD --\x3e\n <div layout="row" flex>\n <md-card class="md-whiteframe-1dp padding-20" flex>\n <div layout="row" layout-align="center">\n <div flex layout="row" layout-align="start center">\n <div ng-if="!vm.license.custom">\n <a href="https://www.xcally.com/plans.html" target="_blank" class="md-button md-fab green-A700-bg" aria-label="Eat cake">\n <md-tooltip><span translate="SETTINGS.PRICES">Prices</span></md-tooltip>\n <md-icon md-font-icon="icon-coin"></md-icon>\n </a>\n </div>\n </div>\n <div flex>\n <div ng-switch="vm.license.months" class="text-center">\n <span ng-switch-when="1" class="md-title md-accent-fg text-bold">{{ \'SETTINGS.PLAN\' | translate }}: <span translate="SETTINGS.MONTH_TO_MONTH">MONTH TO MONTH</span></span>\n <span ng-switch-when="12" class="md-title md-accent-fg text-bold">{{ \'SETTINGS.PLAN\' | translate }}: <span translate="SETTINGS.ANNUALLY">ANNUALLY</span></span>\n <span ng-switch-when="36" class="md-title md-accent-fg text-bold">{{ \'SETTINGS.PLAN\' | translate }}: <span translate="SETTINGS.PERPETUAL">PERPETUAL</span></span>\n </div>\n </div>\n <div flex layout="row" layout-align="end center">\n <div>\n <md-button type="submit" ng-click="vm.updateLicense()" class="md-button md-fab md-accent">\n <md-tooltip><span translate="SETTINGS.UPDATE_LICENSE">License</span></md-tooltip>\n <md-icon md-font-icon="icon-pencil"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n\n <span ng-if="!vm.license.demo && !vm.license.gray && vm.license.months != 36" class="md-subhead md-warn-fg text-center">{{ \'SETTINGS.EXPIRATION_DATE\' | translate }}: {{vm.license.expiration | date: \'longDate\'}}</span>\n <span class="text-center padding-bottom-10"> {{ vm.license.machineUuid !== vm.license.uuid ? \'SETTINGS.OLD_TOKEN\' : \'SETTINGS.TOKEN\' | translate }}: <span class="text-italic text-bold">{{vm.license.uuid}}</span></span>\n\n <div layout="column">\n <span ng-if="vm.license.grayReason == \'changed\'" class="blink md-subhead md-warn-fg text-center">{{ \'SETTINGS.NEW_TOKEN_DETECTED\' | translate }}</span>\n <span ng-if="vm.license.grayReason == \'changed\'" class="text-center padding-bottom-10"> {{\'SETTINGS.NEW_TOKEN\' | translate }}: <span class="text-italic text-bold">{{vm.license.machineUuid}}</span></span>\n <span ng-if="vm.license.gray" class="blink md-subhead md-warn-fg text-center">{{ \'SETTINGS.EXPIRATION_GRAY_PERIOD\' | translate }}: {{vm.license.deadline | date: \'longDate\'}}</span>\n <span ng-if="vm.license.gray" class="text-center padding-bottom-10 text-italic text-bold"> {{\'SETTINGS.EXPIRATION_REASON\' | translate }} </span>\n <span ng-if="vm.license.grayReason == \'disabled\'" class="text-center padding-bottom-10"> {{\'SETTINGS.EXPIRATION_REASON_MESSAGE_DISABLED\' | translate }}</span>\n <span ng-if="vm.license.grayReason == \'changed\'" class="text-center padding-bottom-10"> {{\'SETTINGS.EXPIRATION_REASON_MESSAGE_CHANGED\' | translate }}</span>\n <span ng-if="vm.license.grayReason == \'changed\'" class="text-center padding-bottom-10"> {{\'SETTINGS.EXPIRATION_CHANGED_ADVISE\' | translate }}</span>\n <span ng-if="vm.license.grayReason == \'changed\'" class="text-center padding-bottom-10">{{ \'SETTINGS.SEND_EMAIL_TO\' | translate }}: <a href="mailto:license@xcally.com?subject=New%20token%20detected&body=Hi xCALLY, New Token: {{vm.license.machineUuid}}, Old token: {{vm.license.uuid}}">license@xcally.com</a>.</span>\n <span ng-if="vm.license.grayReason == \'disabled\'" class="text-center padding-bottom-10">{{ \'SETTINGS.SEND_EMAIL_TO\' | translate }}: <a href="mailto:license@xcally.com?subject=License%20disabled&body=Hi xCALLY, My Token: {{vm.license.machineUuid}}">license@xcally.com</a>.</span>\n </div>\n\n <div ng-if="vm.license.demo" layout="column">\n <span class="md-subhead md-warn-fg text-center">{{ \'SETTINGS.TRIAL_VERSION\' | translate }}</span>\n <span class="md-subhead md-warn-fg text-center"><a href="https://www.xcally.com/en/index.html#pricing-table2-h" target="_blank">{{ \'SETTINGS.PRICES\' | translate}}</a></span>\n </div>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.STAFF\' | translate }}</md-subheader>\n <md-divider></md-divider>\n <md-list layout="row">\n <md-list-item class="md-2-line" flex="33">\n <md-icon md-font-icon="icon-account" class="md-avatar-icon"></md-icon>\n <div class="md-list-item-text">\n <h3>{{ vm.license.users || 0 }} <span ng-class="{\'red-fg\': vm.license.users <= vm.users && vm.license.users > 0}">({{vm.license.users >= vm.users ? vm.users : vm.license.users}})</span></h3>\n <p translate="SETTINGS.USERS">Users</p>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" flex="33">\n <md-icon md-font-icon="icon-headphones" class="md-avatar-icon"></md-icon>\n <div class="md-list-item-text">\n <h3>{{ vm.license.agents || 0 }} <span ng-class="{\'red-fg\': (vm.license.agents <= vm.agents && vm.license.agents > 0) }">({{vm.license.agents >= vm.agents ? vm.agents : vm.license.agents}})</span></h3>\n <p translate="SETTINGS.AGENTS">Agents</p>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" flex="33">\n <md-icon md-font-icon="icon-phone" class="md-avatar-icon"></md-icon>\n <div class="md-list-item-text">\n <h3>{{ vm.license.telephones || 0 }} <span ng-class="{\'red-fg\': vm.license.telephones <= vm.telephones && vm.license.telephones > 0}">({{vm.license.telephones >= vm.telephones ? vm.telephones : vm.license.telephones}})</span></h3>\n <p translate="SETTINGS.TELEPHONES">Telephones</p>\n </div>\n </md-list-item>\n </md-list>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.CHANNELS\' | translate }}</md-subheader>\n <md-divider></md-divider>\n <md-list layout="row">\n <md-list-item flex="33" class="md-2-line" ng-repeat="channel in vm.channels | limitTo:3">\n <md-icon md-font-icon="{{channel.icon}}" class="md-avatar-icon" ng-class="vm.license[channel.name] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n <div class="md-list-item-text">\n <h3 translate="SETTINGS.{{channel.name | uppercase}}"></h3>\n <p ng-class="vm.license[channel.name] ? \'green-A700-fg\' : \'red-A700-fg\'">{{ \'SETTINGS.\' + (vm.license[channel.name] ? \'ENABLED\' : \'DISABLED\') | translate }}</p>\n </div>\n </md-list-item>\n </md-list>\n <md-list layout="row">\n <md-list-item flex="33" class="md-2-line" ng-repeat="channel in vm.channels | limitTo:3:3">\n <md-icon md-font-icon="{{channel.icon}}" class="md-avatar-icon" ng-class="vm.license[channel.name] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n <div class="md-list-item-text">\n <h3 translate="SETTINGS.{{channel.name | uppercase}}"></h3>\n <p ng-class="vm.license[channel.name] ? \'green-A700-fg\' : \'red-A700-fg\'">{{ \'SETTINGS.\' + (vm.license[channel.name] ? \'ENABLED\' : \'DISABLED\') | translate }}</p>\n </div>\n </md-list-item>\n </md-list>\n <md-list layout="row">\n <md-list-item flex="33" class="md-2-line" ng-repeat="channel in vm.channels | limitTo:3:6">\n <md-icon md-font-icon="{{channel.icon}}" class="md-avatar-icon" ng-class="vm.license[channel.name] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n <div class="md-list-item-text">\n <h3 translate="SETTINGS.{{channel.name | uppercase}}"></h3>\n <p ng-class="vm.license[channel.name] ? \'green-A700-fg\' : \'red-A700-fg\'">{{ \'SETTINGS.\' + (vm.license[channel.name] ? \'ENABLED\' : \'DISABLED\') | translate }}</p>\n </div>\n </md-list-item>\n </md-list>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.MODULES\' | translate }}</md-subheader>\n <md-divider></md-divider>\n <md-list layout="row">\n <md-list-item class="md-2-line" ng-repeat="module in vm.modules" flex="33">\n <md-icon md-font-icon="{{module.icon}}" class="md-avatar-icon" ng-class="vm.license[module.name] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n <div class="md-list-item-text">\n <h3 translate="SETTINGS.{{module.name | uppercase}}"></h3>\n <p ng-class="vm.license[module.name] ? \'green-A700-fg\' : \'red-A700-fg\'">{{ \'SETTINGS.\' + (vm.license[module.name] ? \'ENABLED\' : \'DISABLED\') | translate }}</p>\n </div>\n </md-list-item>\n </md-list>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.SESSIONS\' | translate }}</md-subheader>\n <md-divider></md-divider>\n <md-list layout="row">\n <div ng-repeat="session in vm.sessions" flex="33">\n <md-list-item class="md-2-line">\n <md-icon md-font-icon="{{session.icon}}" class="md-avatar-icon" ng-class="vm.license[session.enabled] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n <div class="md-list-item-text">\n <div layout="row" layout="start center">\n <h3 translate="SETTINGS.{{session.name | uppercase}}"></h3>\n <button ng-if="session.restart" ng-click="vm.gotoProcess($event)" class="md-mini" aria-label="restart">\n <md-tooltip>Restart</md-tooltip>\n <md-icon md-font-icon="icon-reload"></md-icon>\n </button>\n </div>\n <p ng-if="vm.license[session.name] && vm.license[session.enabled]" class="green-A700-fg">{{vm.license[session.name]}} {{ \'SETTINGS.\' + session.label | uppercase | translate }}</p>\n <p ng-if="!vm.license[session.name] && vm.license[session.enabled]" class="green-A700-fg">UNLIMITED {{ \'SETTINGS.\' + session.label | uppercase | translate }}</p>\n <p ng-if="!vm.license[session.enabled]" class="red-A700-fg">{{ \'SETTINGS.DISABLED\' | translate }}</p>\n </div>\n </md-list-item>\n\n </div>\n </md-list>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.ADDONS\' | translate }}</md-subheader>\n <md-divider></md-divider>\n <md-list layout="row">\n <md-list-item class="md-2-line" ng-repeat="addon in vm.addons | limitTo:3" flex="33">\n <md-icon md-font-icon="{{addon.icon}}" class="md-avatar-icon" ng-class="vm.license[addon.name] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n <div class="md-list-item-text">\n <h3 translate="SETTINGS.{{addon.name | uppercase}}"></h3>\n <p ng-class="vm.license[addon.name] ? \'green-A700-fg\' : \'red-A700-fg\'">{{ \'SETTINGS.\' + (vm.license[addon.name] ? \'ENABLED\' : \'DISABLED\') | translate }}</p>\n </div>\n </md-list-item>\n </md-list>\n <md-list layout="row">\n <md-list-item class="md-2-line" ng-repeat="addon in vm.addons | limitTo:3:3" flex="33">\n <md-icon md-font-icon="{{addon.icon}}" class="md-avatar-icon" ng-class="vm.license[addon.name] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n <div class="md-list-item-text">\n <h3 translate="SETTINGS.{{addon.name | uppercase}}"></h3>\n <p ng-class="vm.license[addon.name] ? \'green-A700-fg\' : \'red-A700-fg\'">{{ \'SETTINGS.\' + (vm.license[addon.name] ? \'ENABLED\' : \'DISABLED\') | translate }}</p>\n </div>\n </md-list-item>\n </md-list>\n\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.OTHERS\' | translate }}</md-subheader>\n <md-divider></md-divider>\n <md-list layout="row">\n <md-list-item class="md-2-line" ng-repeat="other in vm.others | limitTo:3" flex="33">\n <md-icon md-font-icon="{{other.icon}}" class="md-avatar-icon" ng-class="vm.license[other.name] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n <div class="md-list-item-text">\n <h3 translate="SETTINGS.{{other.name | uppercase}}"></h3>\n <p ng-class="vm.license[other.name] ? \'green-A700-fg\' : \'red-A700-fg\'">{{ \'SETTINGS.\' + (vm.license[other.name] ? \'ENABLED\' : \'DISABLED\') | translate }}</p>\n </div>\n </md-list-item>\n </md-list>\n <md-list layout="row">\n <md-list-item class="md-2-line" ng-repeat="other in vm.others | limitTo:3:3" flex="33">\n <md-icon md-font-icon="{{other.icon}}" class="md-avatar-icon" ng-class="vm.license[other.name] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n <div class="md-list-item-text">\n <h3 translate="SETTINGS.{{other.name | uppercase}}"></h3>\n'+" <p ng-class=\"vm.license[other.name] ? 'green-A700-fg' : 'red-A700-fg'\">{{ 'SETTINGS.' + (vm.license[other.name] ? 'ENABLED' : 'DISABLED') | translate }}</p>\n </div>\n </md-list-item>\n </md-list>\n </md-card>\n </div>\n \x3c!-- / LICENSE CARD --\x3e\n\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- NO ADD BUTTON BUTTON --\x3e\n</div>"),e.put("app/main/apps/settings/views/license/request/dialog.html",'<md-dialog class="request-dialog" aria-label="Send Request">\n <form name="requestForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="SETTINGS.REQUEST_LICENSE">Request License</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SETTINGS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.license.name" required>\n <div ng-messages="requestForm.name.$error" ng-show="requestForm.name.$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.NAME_REQUIRED">Address field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.license.email" required>\n <div ng-messages="requestForm.email.$error" ng-show="requestForm.email.$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="SETTINGS.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.PLAN">Plan</label>\n <md-select name="plan" ng-model="vm.license.months" required>\n <md-option ng-value="1"><span translate="SETTINGS.MONTH_TO_MONTH">MONTH TO MONTH</span></md-option>\n <md-option ng-value="12"><span translate="SETTINGS.ANNUALLY">ANNUALLY</span></md-option>\n <md-option ng-value="36"><span translate="SETTINGS.PERPETUAL">PERPETUAL</span></md-option>\n </md-select>\n <div ng-messages="requestForm.plan.$error" ng-show="requestForm.plan.$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PLAN_REQUIRED">Plan field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.STAFF\' | translate }}</md-subheader>\n <div layout="row" layout-align="space-between center">\n <md-input-container class="md-block" flex>\n <label translate="SETTINGS.USERS">Users</label>\n <input type="number" name="users" ng-model="vm.license.users" required>\n <div ng-messages="requestForm.users.$error" ng-show="requestForm.users.$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.USERS_REQUIRED">Users field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" flex>\n <label translate="SETTINGS.AGENTS">Agents</label>\n <input type="number" name="agents" ng-model="vm.license.agents" required>\n <div ng-messages="requestForm.agents.$error" ng-show="requestForm.agents.$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.AGENTS_REQUIRED">Agents field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" flex>\n <label translate="SETTINGS.TELEPHONES">Telephones</label>\n <input type="number" name="telephones" ng-model="vm.license.telephones" required>\n <div ng-messages="requestForm.telephones.$error" ng-show="requestForm.telephones.$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.TELEPHONES_REQUIRED">Telephones field is required</span>\n </div>\n </div>\n </md-input-container>\n </div>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.CHANNELS\' | translate }}</md-subheader>\n <div layout="row" layout-align="space-between center">\n <md-switch ng-model="vm.license[channel.name]" aria-label="{{channel.name}}" ng-repeat="channel in vm.channels | limitTo:3"><span translate="SETTINGS.{{channel.name | uppercase}}"></span></md-switch>\n <md-switch ng-model="vm.license[channel.name]" aria-label="{{channel.name}}" ng-repeat="channel in vm.channels | limitTo:3:3"><span translate="SETTINGS.{{channel.name | uppercase}}"></span></md-switch>\n </div>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.MODULES\' | translate }}</md-subheader>\n <div layout="row" layout-align="space-between center">\n <md-switch ng-model="vm.license[module.name]" aria-label="{{module.name}}" ng-repeat="module in vm.modules"><span translate="SETTINGS.{{module.name | uppercase}}"></span></md-switch>\n </div>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.SESSIONS\' | translate }}</md-subheader>\n <div layout="row">\n <md-input-container ng-repeat="session in vm.sessions" class="md-block" flex="50">\n <label>{{ \'SETTINGS.\' + session.name | uppercase | translate }} ({{ \'SETTINGS.\' + session.label | uppercase | translate }})</label>\n <input type="number" name="{{session.name}}" ng-model="vm.license[session.name]" required>\n <div class="hint"><span>0={{ \'SETTINGS.UNLIMITED_CHANNELS\' | translate }}</span></div>\n <div ng-messages="requestForm[session.name].$error" ng-show="requestForm[session.name].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.CHANNEL_REQUIRED">Mandatory field</span>\n </div>\n </div>\n </md-input-container>\n </div>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.ADDONS\' | translate }}</md-subheader>\n <div layout="row" layout-align="space-between center">\n <md-switch ng-model="vm.license[addon.name]" aria-label="{{module.name}}" ng-repeat="addon in vm.addons"><span translate="SETTINGS.{{addon.name | uppercase}}"></span></md-switch>\n </div>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.OTHERS\' | translate }}</md-subheader>\n <div layout="row" layout-align="space-between center">\n <md-switch ng-model="vm.license[other.name]" aria-label="{{other.name}}" ng-repeat="other in vm.others"><span translate="SETTINGS.{{other.name | uppercase}}"></span></md-switch>\n </div>\n\n <md-input-container class="md-block">\n <label translate="SETTINGS.DESCRIPTION">Description</label>\n <textarea name="description" ng-model="vm.license.description"></textarea>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.sendRequest()" class="send-button md-accent md-raised" ng-disabled="requestForm.$invalid || requestForm.$pristine" aria-label="SEND" translate="SETTINGS.SEND" translate-attr-aria-label="SETTINGS.SEND">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/settings/views/license/update/dialog.html",'<md-dialog class="update-dialog" aria-label="Update License">\n <form name="updateForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="SETTINGS.UPDATE_LICENSE">Update License</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <md-content layout="row">\n <span class="md-title" translate="SETTINGS.UPDATE_LICENSE_MANUALLY">Do you want to update your license manually?</span>\n </md-content>\n <md-input-container class="md-block">\n <label translate="SETTINGS.ENTER_LICENSE">Enter your license</label>\n <textarea name="key" ng-model="vm.licenseKey" required></textarea>\n <div ng-messages="updateForm.name.$error" ng-show="updateForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.LICENSE_REQUIRED">License key field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.updateLicense()" class="send-button md-accent md-raised" ng-disabled="updateForm.$invalid || updateForm.$pristine" aria-label="UPDATE" translate="SETTINGS.UPDATE" translate-attr-aria-label="SETTINGS.UPDATE">\n UPDATE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/settings/views/networks/create/dialog.html",'<md-dialog class="network-dialog" aria-label="New Network">\n <form name="networkForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SETTINGS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.network.type" autofocus required>\n <md-option ng-value="\'localnet\'">LocalNET</md-option>\n <md-option ng-value="\'externip\'">ExternIP</md-option>\n <md-option ng-value="\'turn\'">Turn</md-option>\n <md-option ng-value="\'stun\'">Stun</md-option>\n </md-select>\n <div ng-messages="networkForm[\'type\'].$error" ng-show="networkForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.network.type == \'localnet\'" class="md-block">\n <label translate="SETTINGS.LOCALNETADDRESS">localNetAddress</label>\n <input type="text" name="value" ng-model="vm.network.value" ng-pattern="/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])/(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.LOCALNETADDRESS"></span></div>\n <div ng-messages="networkForm[\'value\'].$error" ng-show="networkForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.LOCALNETADDRESS_REQUIRED">localNetAddress field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SETTINGS.ERRORS.LOCALNETADDRESS_MUST_VALID_PATTERN" translate-values="{ regex: \'/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])/(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/\' }">localNetAddress must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.network.type == \'externip\'" class="md-block">\n <label translate="SETTINGS.ADDRESS">Address</label>\n <input type="text" name="value" ng-model="vm.network.value" ng-pattern="/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.ADDRESS"></span></div>\n <div ng-messages="networkForm[\'value\'].$error" ng-show="networkForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.ADDRESS_REQUIRED">Address field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SETTINGS.ERRORS.ADDRESS_MUST_VALID_PATTERN" translate-values="{ regex: \'/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/\' }">Address must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.network.type == \'turn\' || vm.network.type == \'stun\'" class="md-block">\n <label translate="SETTINGS.ADDRESS">Address</label>\n <input type="text" name="value" ng-model="vm.network.value" ng-required="true">\n\n <div ng-messages="networkForm[\'value\'].$error" ng-show="networkForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.ADDRESS_REQUIRED">Address field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.network.type == \'turn\'" class="md-block">\n <label translate="SETTINGS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.network.username" ng-required="vm.network.type == \'turn\'">\n\n <div class="hint"><span translate="SETTINGS.HELP.USERNAME"></span></div>\n <div ng-messages="networkForm[\'username\'].$error" ng-show="networkForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.network.type == \'turn\'" class="md-block">\n <label translate="SETTINGS.PASSWORD">Password</label>\n <input type="text" name="password" ng-model="vm.network.password" ng-required="vm.network.type == \'turn\'">\n\n <div class="hint"><span translate="SETTINGS.HELP.PASSWORD"></span></div>\n <div ng-messages="networkForm[\'password\'].$error" ng-show="networkForm[\'password\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="!vm.newNetwork" ng-click="vm.saveNetwork()" class="send-button md-accent md-raised" ng-disabled="networkForm.$invalid || networkForm.$pristine" aria-label="SAVE" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newNetwork" ng-click="vm.addNewNetwork()" class="send-button md-accent md-raised" ng-disabled="networkForm.$invalid" aria-label="ADD" translate="SETTINGS.ADD_NETWORK" translate-attr-aria-label="SETTINGS.ADD_NETWORK">\n ADD NETWORK\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-click="vm.deleteNetwork($event)" aria-label="DELETE" translate translate-attr-aria-label="SETTINGS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="SETTINGS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/settings/views/networks/networks.html",'<div id="networks" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="SETTINGS.NETWORKS">Networks</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="SETTINGS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedNetworks.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedNetworks =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="SETTINGS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-networks-count">\n <span>{{vm.selectedNetworks.length}}</span>\n <span translate="SETTINGS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="SETTINGS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllNetworks()" translate="SETTINGS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectNetworks()" translate="SETTINGS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedNetworks" csv-label="true" filename="networks.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-click="vm.deleteSelectedNetworks($event)" aria-label="delete selected" translate translate-attr-label="SETTINGS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- NETWORK TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedNetworks" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getNetworks">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'SETTINGS.ID\' | translate }}</th>\n <th md-column md-order-by="type">{{ \'SETTINGS.TYPE\' | translate }}</th>\n <th md-column md-order-by="value">{{ \'SETTINGS.ADDRESS\' | translate }}</th>\n <th md-column md-order-by="createdAt">{{ \'SETTINGS.CREATED_AT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.networks.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="SETTINGS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="network" md-select-id="id" ng-repeat="network in vm.networks.rows">\n <td md-cell ng-if="network.userpic"><img class="avatar" alt="{{network.name}}" ng-src="api/users/{{network.id}}/avatar" /></td>\n <td md-cell ng-if="!network.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{network.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditNetwork($event, network)" md-cell class="id ">{{network.id}}</td>\n <td ng-click="vm.createOrEditNetwork($event, network)" md-cell class="type ">{{ vm.arraytype[network.type].option }}</td>\n <td ng-click="vm.createOrEditNetwork($event, network)" md-cell class="value ">{{network.value}}</td>\n <td ng-click="vm.createOrEditNetwork($event, network)" md-cell class="createdAt ">{{network.createdAt | date:\'medium\' }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="SETTINGS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.editdialog(network, $event )" translate="SETTINGS.EDIT_NETWORK">\n Edit Network\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.deleteconfirm(network, $event )" translate="SETTINGS.DELETE_NETWORK">\n Delete Network\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'SETTINGS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SETTINGS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SETTINGS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.networks.count}}" md-on-paginate="vm.getNetworks" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / NETWORK TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD NETWORK BUTTON --\x3e\n <md-button class="md-fab md-accent" id="add-network-button" ng-click="vm.createOrEditNetwork($event)" aria-label="add network" translate translate-attr-aria-label="SETTINGS.ADD_NETWORK">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD NETWORK BUTTON --\x3e\n</div>'),e.put("app/main/apps/settings/views/smtps/create/dialog.html",'<md-dialog class="smtp-dialog" aria-label="New Smtp">\n <form name="smtpForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SETTINGS.ACCOUNTNAME">AccountName</label>\n <input type="text" name="name" ng-model="vm.smtp.name" ng-required="true" autofocus>\n\n <div ng-messages="smtpForm[\'name\'].$error" ng-show="smtpForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.ACCOUNTNAME_REQUIRED">AccountName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.EMAILADDRESS">EmailAddress</label>\n <input type="email" name="email" ng-model="vm.smtp.email" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.EMAILADDRESS"></span></div>\n <div ng-messages="smtpForm[\'email\'].$error" ng-show="smtpForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.EMAILADDRESS_REQUIRED">EmailAddress field is required</span>\n </div>\n <div ng-message="email">\n <span translate="SETTINGS.ERRORS.EMAILADDRESS_MUST_VALID">EmailAddress must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.SMTP_SERVICE">SMTP_Service</label>\n <md-select name="Smtp.service" ng-model="vm.smtp.Smtp.service" required>\n <md-option ng-value="null">Custom</md-option>\n <md-option ng-value="\'gmail\'">Gmail</md-option>\n <md-option ng-value="\'hotmail\'">Hotmail</md-option>\n <md-option ng-value="\'yahoo\'">Yahoo</md-option>\n <md-option ng-value="\'outlook365\'">Outlook365</md-option>\n </md-select>\n <div ng-messages="smtpForm[\'Smtp.service\'].$error" ng-show="smtpForm[\'Smtp.service\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SMTP_SERVICE_REQUIRED">SMTP_Service field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smtp.Smtp.service == null" class="md-block">\n <label translate="SETTINGS.SMTP_HOST">SMTP_Host</label>\n <input type="text" name="Smtp.host" ng-model="vm.smtp.Smtp.host" ng-required="true">\n\n <div ng-messages="smtpForm[\'Smtp.host\'].$error" ng-show="smtpForm[\'Smtp.host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SMTP_HOST_REQUIRED">SMTP_Host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smtp.Smtp.service == null" class="md-block">\n <label translate="SETTINGS.SMTP_PORT">SMTP_Port</label>\n <input type="number" name="Smtp.port" ng-model="vm.smtp.Smtp.port" value="465" ng-required="true">\n\n <div ng-messages="smtpForm[\'Smtp.port\'].$error" ng-show="smtpForm[\'Smtp.port\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SMTP_PORT_REQUIRED">SMTP_Port field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smtp.Smtp.service == null" class="md-block">\n <md-switch ng-model="vm.smtp.Smtp.secure" aria-label="SMTP_Secure"><span translate="SETTINGS.SMTP_SECURE">SMTP_Secure</span></md-switch>\n <div class="hint"><span translate="SETTINGS.HELP.SMTP_SECURE"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.smtp.Smtp.service == null" class="md-block">\n <md-switch ng-model="vm.smtp.Smtp.authentication" aria-label="SMTP_Authentication"><span translate="SETTINGS.SMTP_AUTHENTICATION">SMTP_Authentication</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.smtp.Smtp.authentication == true || vm.smtp.Smtp.service != null" class="md-block">\n <label translate="SETTINGS.SMTP_USERNAME">SMTP_Username</label>\n <input type="text" name="Smtp.user" ng-model="vm.smtp.Smtp.user" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.SMTP_USERNAME"></span></div>\n <div ng-messages="smtpForm[\'Smtp.user\'].$error" ng-show="smtpForm[\'Smtp.user\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SMTP_USERNAME_REQUIRED">SMTP_Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.smtp.Smtp.authentication == true || vm.smtp.Smtp.service != null">\n <label translate="SETTINGS.SMTP_PASSWORD">SMTP_Password</label>\n <input type="password" name="Smtp.pass" ng-model="vm.smtp.Smtp.pass" placeholder="Password" translate translate-attr-placeholder="SETTINGS.PASSWORD" required>\n <div class="hint"><span translate="SETTINGS.HELP.SMTP_PASSWORD"></span></div>\n <div ng-messages="smtpForm[\'Smtp.pass\'].$error" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SETTINGS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="SETTINGS.DESCRIPTION">Description</label>\n <input type="" name="description" ng-model="vm.smtp.description">\n\n <div ng-messages="smtpForm[\'description\'].$error" ng-show="smtpForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newSmtp" ng-click="vm.saveSmtp()" class="send-button md-accent md-raised" ng-disabled="smtpForm.$invalid || smtpForm.$pristine" aria-label="SAVE" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newSmtp" ng-click="vm.addNewSmtp()" class="send-button md-accent md-raised" ng-disabled="smtpForm.$invalid" aria-label="ADD" translate="SETTINGS.ADD_SMTP" translate-attr-aria-label="SETTINGS.ADD_SMTP">\n ADD SMTP\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newSmtp" ng-click="vm.deleteSmtp($event)" aria-label="DELETE" translate translate-attr-aria-label="SETTINGS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="SETTINGS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/settings/views/smtps/smtps.html",'<div id="smtps" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="SETTINGS.SMTP">Smtp</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div>\n <md-button type="submit" ng-click="vm.verifySmtp()" ng-disabled="!vm.smtp.id" class="send-button md-accent md-raised" translate="SETTINGS.VERIFY" translate-attr-aria-label="SETTINGS.VERIFY">\n VERIFY\n </md-button>\n <md-button type="submit" ng-click="vm.saveSmtp()" ng-disabled="(generalForm.$pristine) || (generalForm.$invalid)" class="send-button md-accent md-raised" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n <div class="smtp-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SETTINGS.ACCOUNTNAME">AccountName</label>\n <input type="text" name="name" ng-model="vm.smtp.name" ng-required="true" autofocus>\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.ACCOUNTNAME_REQUIRED">AccountName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.EMAILADDRESS">EmailAddress</label>\n <input type="email" name="email" ng-model="vm.smtp.email" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.EMAILADDRESS"></span></div>\n <div ng-messages="generalForm[\'email\'].$error" ng-show="generalForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.EMAILADDRESS_REQUIRED">EmailAddress field is required</span>\n </div>\n <div ng-message="email">\n <span translate="SETTINGS.ERRORS.EMAILADDRESS_MUST_VALID">EmailAddress must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.SMTP_SERVICE">SMTP_Service</label>\n <md-select name="Smtp.service" ng-model="vm.smtp.Smtp.service" required>\n <md-option ng-value="null">Custom</md-option>\n <md-option ng-value="\'gmail\'">Gmail</md-option>\n <md-option ng-value="\'hotmail\'">Hotmail</md-option>\n <md-option ng-value="\'yahoo\'">Yahoo</md-option>\n <md-option ng-value="\'outlook365\'">Outlook365</md-option>\n </md-select>\n <div ng-messages="generalForm[\'Smtp.service\'].$error" ng-show="generalForm[\'Smtp.service\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SMTP_SERVICE_REQUIRED">SMTP_Service field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smtp.Smtp.service == null" class="md-block">\n <label translate="SETTINGS.SMTP_HOST">SMTP_Host</label>\n <input type="text" name="Smtp.host" ng-model="vm.smtp.Smtp.host" ng-required="true">\n\n <div ng-messages="generalForm[\'Smtp.host\'].$error" ng-show="generalForm[\'Smtp.host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SMTP_HOST_REQUIRED">SMTP_Host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smtp.Smtp.service == null" class="md-block">\n <label translate="SETTINGS.SMTP_PORT">SMTP_Port</label>\n <input type="number" name="Smtp.port" ng-model="vm.smtp.Smtp.port" value="465" ng-required="true">\n\n <div ng-messages="generalForm[\'Smtp.port\'].$error" ng-show="generalForm[\'Smtp.port\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SMTP_PORT_REQUIRED">SMTP_Port field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smtp.Smtp.service == null" class="md-block">\n <md-switch ng-model="vm.smtp.Smtp.secure" aria-label="SMTP_Secure"><span translate="SETTINGS.SMTP_SECURE">SMTP_Secure</span></md-switch>\n <div class="hint"><span translate="SETTINGS.HELP.SMTP_SECURE"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.smtp.Smtp.service == null" class="md-block">\n <md-switch ng-model="vm.smtp.Smtp.authentication" aria-label="SMTP_Authentication"><span translate="SETTINGS.SMTP_AUTHENTICATION">SMTP_Authentication</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.smtp.Smtp.authentication == true || vm.smtp.Smtp.service != null" class="md-block">\n <label translate="SETTINGS.SMTP_USERNAME">SMTP_Username</label>\n <input type="text" name="Smtp.user" ng-model="vm.smtp.Smtp.user" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.SMTP_USERNAME"></span></div>\n <div ng-messages="generalForm[\'Smtp.user\'].$error" ng-show="generalForm[\'Smtp.user\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SMTP_USERNAME_REQUIRED">SMTP_Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.smtp.Smtp.authentication == true || vm.smtp.Smtp.service != null">\n <label translate="SETTINGS.SMTP_PASSWORD">SMTP_Password</label>\n <input type="password" name="Smtp.pass" ng-model="vm.smtp.Smtp.pass" placeholder="Password" translate translate-attr-placeholder="SETTINGS.PASSWORD" required>\n <div class="hint"><span translate="SETTINGS.HELP.SMTP_PASSWORD"></span></div>\n <div ng-messages="generalForm[\'Smtp.pass\'].$error" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SETTINGS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="SETTINGS.DESCRIPTION">Description</label>\n <input type="" name="description" ng-model="vm.smtp.description">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/settings/views/system/system.html",'<div id="system" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="SETTINGS.SYSTEM">SYSTEM</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" md-border-bottom flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="SETTINGS.GENERAL">GENERAL</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="system-detail-form-container personal_info md-background-bg md-whiteframe-1dp">\n <md-card class="md-whiteframe-1dp padding-20" layout="row" layout-xs="column" layout-wrap>\n <ms-widget flex="50" flex-xs="100">\n \x3c!-- Front --\x3e\n <ms-widget-front class="white-bg">\n <div class="ph-16 pt-16 pb-8 md-accent-bg">\n <div class="h3">OS</div>\n </div>\n\n <div layout="row" layout-align="start center" layout-wrap>\n <div flex="100" flex-gt-md="100">\n <div class="p-16 pb-32">\n <div class="h4">{{vm.system.system.manufacturer}} {{vm.system.system.model}}</div>\n <div class="h4">{{vm.system.cpu.manufacturer}} {{vm.system.cpu.brand}} - {{vm.system.cpu.speed}} GHz - {{vm.system.cpu.cores}} Cores</div>\n <div class="h4">{{vm.system.os.distro}} - {{vm.system.os.release}} - Kernel: {{vm.system.os.kernel}}</div>\n <div class="h4">Node.js: {{vm.system.node}}</div>\n <div class="h4">Host: {{vm.system.os.hostname}} - Uptime: {{vm.system.time.uptime / 60 | number:0}} m</div>\n <div class="h4">TimeZone: {{vm.system.time.timezone}} ({{vm.system.time.timezoneName}})</div>\n </div>\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n <ms-widget flex="25" flex-xs="100">\n \x3c!-- Front --\x3e\n <ms-widget-front class="white-bg">\n <div class="ph-16 pt-16 pb-8 md-accent-bg md-hue-1">\n <div class="h3">CPU</div>\n </div>\n\n <div layout="row" layout-align="start center" layout-wrap>\n <div flex="100" flex-gt-md="100">\n <div class="p-16 pb-32">\n <div class="pb-8" layout="row" layout-align="space-between start">\n <span class="h3" translate="SETTINGS.AVG_LOAD">AVG Load</span>\n <span class="h3 secondary-text font-weight-500">{{vm.system.currentLoad.avgload * 100 | number:0}}%</span>\n </div>\n <md-progress-linear class="red" md-mode="determinate" value="{{vm.system.currentLoad.avgload * 100 | number:0}}"></md-progress-linear>\n </div>\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n <ms-widget flex="25" flex-xs="100">\n \x3c!-- Front --\x3e\n <ms-widget-front class="white-bg">\n <div class="ph-16 pt-16 pb-8 md-accent-bg md-hue-3">\n <div class="h3">MEM</div>\n </div>\n\n <div layout="row" layout-align="start center" layout-wrap>\n <div flex="100" flex-gt-md="100">\n <div class="p-16 pb-32">\n <div class="h4">{{\'SETTINGS.TOTAL\' | translate}}: {{vm.system.mem.total / 1024 / 1024 / 1024 | number:0}} GB</div>\n <div class="h4">{{\'SETTINGS.FREE\' | translate}}: {{vm.system.mem.available / 1024 / 1024 / 1024 | number:0}} GB</div>\n <div class="h4">{{\'SETTINGS.USED\' | translate}}: {{vm.system.mem.active / 1024 / 1024 / 1024 | number:0}} GB</div>\n </div>\n <div class="p-16 pb-32">\n <div class="pb-8" layout="row" layout-align="space-between start">\n <span class="h3" translate="SETTINGS.USED">Used</span>\n <span class="h3 secondary-text font-weight-500">{{(vm.system.mem.active / vm.system.mem.total) * 100 | number : 0}}%</span>\n </div>\n <md-progress-linear class="md-warn" md-mode="determinate" value="{{(vm.system.mem.active / vm.system.mem.total) * 100 | number : 0 }}"></md-progress-linear>\n\n </div>\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n </md-card>\n\n <md-card class="md-whiteframe-1dp padding-20" layout="row" layout-xs="column" layout-wrap>\n <ms-widget ng-repeat="disk in vm.system.fsSize" flex="25" flex-xs="100">\n \x3c!-- Front --\x3e\n <ms-widget-front class="white-bg">\n <div class="ph-16 pt-16 pb-8 md-accent-bg md-hue-3">\n <div class="h3">DISK {{$index + 1}}</div>\n </div>\n\n <div layout="row" layout-align="start center" layout-wrap>\n <div flex="100" flex-gt-md="100">\n <div class="p-16 pb-32">\n <div class="h4">{{\'SETTINGS.FILE_SYSTEM\' | translate}}: {{disk.fs}}</div>\n <div class="h4">{{\'SETTINGS.MOUNT_POINT\' | translate}}: "{{disk.mount}}"</div>\n <div class="h4">{{\'SETTINGS.TOTAL\' | translate}}: {{disk.size / 1024 / 1024 / 1024 | number:0}} GB</div>\n <div class="h4">{{\'SETTINGS.USED\' | translate}}: {{disk.used / 1024 / 1024 / 1024 | number:0}} GB</div>\n </div>\n <div class="p-16 pb-32">\n <div class="pb-8" layout="row" layout-align="space-between start">\n <span class="h3" translate="SETTINGS.USED">Used</span>\n <span class="h4 secondary-text font-weight-500">{{disk.use | number:0}}%</span>\n </div>\n <md-progress-linear class="red" md-mode="determinate" value="{{disk.use | number:0}}"></md-progress-linear>\n </div>\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n </md-card>\n\n <md-card class="md-whiteframe-1dp padding-20" layout="row" layout-xs="column" layout-wrap>\n <ms-widget ng-repeat="net in vm.system.net" flex="25" flex-xs="100">\n \x3c!-- Front --\x3e\n <ms-widget-front class="white-bg">\n <div class="ph-16 pt-16 pb-8 md-accent-bg md-hue-3">\n <div class="h3">NET {{$index + 1}}</div>\n </div>\n\n <div layout="row" layout-align="start center" layout-wrap>\n <div flex="100" flex-gt-md="100">\n <div class="p-16 pb-32">\n <div class="h4">{{\'SETTINGS.INTERFACE\' | translate}}: {{net.iface}}</div>\n <div class="h4">IPv4: {{net.ip4}}</div>\n <div class="h4">IPv6: {{net.ip6}}</div>\n <div class="h4">MAC: {{net.mac}}</div>\n </div>\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n </md-card>\n\n <md-card class="md-whiteframe-1dp padding-20" layout="row">\n <div flex>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="SETTINGS.TOP_N_PROCESSES" translate-values="{value: vm.processLimit}"></span>\n <div flex></div>\n <ms-search-bar on-search="vm.searchTerm1 = query" on-collapse="vm.searchTerm1 = undefined" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column>pid</th>\n <th md-column>{{\'SETTINGS.NAME\' | translate}}</th>\n <th md-column>{{\'SETTINGS.STATE\' | translate}}</th>\n <th md-column>pmem</th>\n <th md-column>pcpu</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-repeat="process in vm.system.processes.list | limitTo: vm.processLimit | filter: vm.searchTerm1 | orderBy:\'-pcpu\'">\n <td md-cell>{{process.pid}}</td>\n <td md-cell>{{process.command}}</td>\n <td md-cell>\n <span class="text-boxed white-fg" ng-class="{\n \'green-600-bg\': process.state == \'running\',\n \'yellow-600-bg\': process.state == \'sleeping\',\n \'red-600-bg\': process.state == \'blocked\'}">{{process.state | uppercase}}</span>\n </td>\n <td md-cell>{{process.pmem}}%</td>\n <td md-cell>{{process.pcpu}}%</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </div>\n </md-card>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="SETTINGS.PROCESSES">PROCESSES</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="system-detail-form-container general md-background-bg md-whiteframe-1dp">\n <md-card class="md-whiteframe-1dp padding-20" flex>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="SETTINGS.MOTION_PROCESS_MANAGEMENT"></span>\n <div flex></div>\n <ms-search-bar on-search="vm.searchTerm2 = query" on-collapse="vm.searchTerm2 = undefined" debounce="300"></ms-search-bar>\n <md-button ng-click="vm.getProcesses()" class="md-icon-button" aria-label="Reload">\n <md-icon md-font-icon="icon-reload" class="s24"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column>id</th>\n <th md-column>pid</th>\n <th md-column>{{\'SETTINGS.NAME\' | translate}}</th>\n <th md-column>{{\'SETTINGS.STATE\' | translate}}</th>\n <th md-column>MEM</th>\n <th md-column>CPU</th>\n <th md-column width="20px">Actions</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-repeat="process in vm.processes | filter: vm.searchTerm2 | orderBy:\'-monit.cpu\'">\n <td md-cell>{{process.pm_id}}</td>\n <td md-cell>{{process.pid}}</td>\n <td md-cell>{{process.name == \'agi\' ? \'agi (Cally Square IVR)\' : process.name}}</td>\n <td md-cell>\n <span class="text-boxed white-fg" ng-class="{\'green-600-bg\': process.pm2_env.status == \'online\', \'red-600-bg\': process.pm2_env.status == \'stopped\'}">{{process.pm2_env.status | uppercase}}</span>\n </td>\n <td md-cell>{{process.monit.memory / 1024 / 1024 | number:0}} MB</td>\n <td md-cell>{{process.monit.cpu}}%</td>\n <td md-cell>\n <md-button ng-if="process.pm2_env.status !== \'online\'" ng-click="vm.updateProcess($event, process.pm_id, \'online\')" class="md-icon-button" aria-label="Play">\n <md-icon md-font-icon="icon-play" class="s24"></md-icon>\n </md-button>\n <md-button ng-if="process.pm2_env.status === \'online\'" ng-click="vm.updateProcess($event, process.pm_id, \'stopped\')" class="md-icon-button" aria-label="Stop">\n <md-icon md-font-icon="icon-stop" class="s24"></md-icon>\n </md-button>\n </td>\n </tr>\n </tbody>\n <tfoot md-foot>\n <tr md-row>\n <td md-cell></td>\n <td md-cell></td>\n <td md-cell></td>\n <td md-cell></td>\n <td md-cell>{{ (vm.processes | map: \'monit.memory\' | sum) / 1024 / 1024 | number:0 }} MB</td>\n <td md-cell></td>\n <td md-cell></td>\n </tr>\n </tfoot>\n </table>\n </md-table-container>\n </md-card>\n <md-card class="md-whiteframe-1dp padding-20" flex>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="SETTINGS.USEFUL_COMMANDS"></span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column width="30%">{{\'SETTINGS.COMMAND\' | translate}}</th>\n <th md-column>{{\'SETTINGS.DESCRIPTION\' | translate}}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr>\n <td md-cell class="no-border">pm2 list</td>\n <td md-cell class="no-border">{{ \'SETTINGS.PM2_LIST\' | translate}}</td>\n </tr>\n <tr>\n <td md-cell class="no-border">pm2 start <id | name></td>\n <td md-cell class="no-border">{{ \'SETTINGS.PM2_START\' | translate}}</td>\n </tr>\n <tr>\n <td md-cell class="no-border">pm2 stop <id | name | all></td>\n <td md-cell class="no-border">{{ \'SETTINGS.PM2_STOP\' | translate}}</td>\n </tr>\n <tr>\n <td md-cell class="no-border">pm2 restart <id | name></td>\n <td md-cell class="no-border">{{ \'SETTINGS.PM2_RESTART\' | translate}}</td>\n </tr>\n <tr>\n <td md-cell class="no-border">pm2 logs [id | name]</td>\n <td md-cell class="no-border">{{ \'SETTINGS.PM2_LOGS\' | translate}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-card>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/settings/views/updates/update/dialog.html",'<md-dialog aria-label="Update">\n <form name="updateForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n </div>\n </md-toolbar>\n\n <div md-background-bg layout="row" layout-align="start start">\n <md-progress-linear md-mode="determinate" value="{{vm.progress}}" class="md-warn"></md-progress-linear>\n </div>\n\n <md-dialog-content ms-scroll>\n <div layout="row" layout-align="center center">\n <div ng-if="vm.updating" layout="column" layout-align="center center">\n <span class="text-center md-title">Grab a quick coffee and</span>\n <span class="text-center md-title">get back here as soon as completed!</span>\n <span class="text-center md-title">{{vm.output}}</span>\n </div>\n <div ng-if="!vm.updating">\n <div ng-if="vm.success" layout="column" layout-align="center center">\n <span class="text-center md-title">Update Completed! Thank you for your time.</span>\n <span class="text-center md-title">In order to complete the update,</span>\n <span class="text-center md-title">please click on reload button</span>\n </div>\n <div ng-if="!vm.success" layout="column" layout-align="center center">\n <span class="text-center md-title">Update Error!</span>\n <span class="text-center md-title">Please contact your administrator!</span>\n <span class="text-center md-title">{{vm.output}}</span>\n </div>\n </div>\n <img src="assets/images/business/users.jpg" alt="" width="128" height="128" />\n </div>\n </md-dialog-content>\n\n <md-dialog-actions ng-if="!vm.updating" layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.reload()" class="send-button md-warm md-raised" aria-label="RELOAD" translate="SETTINGS.RELOAD" translate-attr-aria-label="SETTINGS.RELOAD">\n RELOAD\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/settings/views/updates/updates.html",'<div id="updates" class="page-layout simple fullwidth doc-page">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="SETTINGS.UPDATES">UPDATES</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n \x3c!-- UPDATE CARD --\x3e\n <div layout="row" ng-if="!vm.updating">\n <md-card class="md-whiteframe-1dp padding-20" flex>\n <div layout="column" layout-align="center center">\n\n <span class="md-title md-accent-fg padding-20 text-bold" translate="SETTINGS.CURRENT_VERSION">CURRENT VERSION</span>\n\n <span class="md-display-3 padding-20">{{vm.version.current}}</span>\n\n <md-button href="https://wiki.xcallymotion.com/display/XMV/Motion+GUI#MotionGUI-Version{{vm.version.current}}" target="_blank" class="md-accent" title="CHANGELOG" aria-label="CHANGELOG" translate="SETTINGS.CHANGELOG" translate-attr-aria-label="SETTINGS.CHANGELOG">\n CHANGELOG\n </md-button>\n </div>\n </md-card>\n <md-card class="md-whiteframe-20dp padding-20" flex ng-if="vm.version.current != vm.version.latest">\n <div layout="column" layout-align="center center">\n\n <span class="md-title md-warn-fg padding-20 text-bold" translate="SETTINGS.NEW_VERSION">NEW VERSION</span>\n\n <span class="md-display-3 padding-20">{{vm.version.latest}}</span>\n\n <md-button href="https://wiki.xcallymotion.com/display/XMV/Motion+GUI#MotionGUI-Version{{vm.version.latest}}" target="_blank" class="md-accent" title="CHANGELOG" aria-label="CHANGELOG" translate="SETTINGS.CHANGELOG" translate-attr-aria-label="SETTINGS.CHANGELOG">\n CHANGELOG\n </md-button>\n <md-button ng-click="vm.updateConfirm($event)" class="md-raised md-warn" aria-label="CHANGELOG" translate="SETTINGS.UPDATE" translate-attr-aria-label="SETTINGS.UPDATE">UPDATE</md-button>\n </div>\n </md-card>\n <md-card class="md-whiteframe-1dp padding-20" flex ng-if="vm.version.current == vm.version.latest">\n <div layout="column" layout-align="center center">\n\n <span class="md-title md-warn-fg padding-20 text-bold" translate="SETTINGS.REMOTE_VERSION">REMOTE VERSION</span>\n\n <span class="md-subhead padding-20" translate="SETTINGS.NO_NEW_VERSION_AVAILABLE">NO NEW VERSION AVAILABLE</span>\n </div>\n </md-card>\n </div>\n \x3c!-- / UPDATE CARD --\x3e\n\n <div ng-if="vm.updating">\n <md-card class="md-whiteframe-1dp padding-20" flex>\n <div layout="column" layout-align="center center">\n <span class="md-title md-accent-fg padding-20 text-bold" translate="SETTINGS.UPDATING">...</span>\n <md-progress-linear md-mode="determinate" class="md-accent padding-20" value="{{vm.progress}}"></md-progress-linear>\n <span class="md-display-1 padding-5 text-center">Grab a quick coffee and</span>\n <span class="md-display-1 padding-5 text-center">get back here as soon as completed</span>\n <img src="assets/images/business/users.jpg" alt="" width="40%" height="40%" />\n </div>\n </md-card>\n </div>\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- NO ADD BUTTON BUTTON --\x3e\n</div>'),e.put("app/main/apps/sms/views/realtime/queues/view.html",'<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="SMS.QUEUES">Queues</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'SMS.NAME\' | translate }}</th>\n <th md-column>{{ \'SMS.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'SMS.PAUSED\' | translate }}</th>\n <th md-column>{{ \'SMS.WAITING\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.queues.count > 0">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="SMS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="queue" md-select-id="id" ng-repeat="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedIn }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="SMS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="SMS.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" translate="SMS.AGENTSADD_QUEUE">\n Add Agents to queue\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'SMS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SMS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SMS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),e.put("app/main/apps/sms/views/realtime/realtime.html",'<div id="realtime" class="page-layout simple tabbed" layout="column" ng-cloak>\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.QUEUES">Queues</span>\n </md-tab-label>\n </md-tab>\n </md-tabs>\n\n <md-card ui-view></md-card>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/sms/views/smsAccounts/create/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.smsAccount.name" ng-required="true" autofocus ng-disabled="!vm.newSmsAccount">\n\n <div ng-messages="smsAccountForm[\'name\'].$error" ng-show="smsAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.KEY">key</label>\n <input type="text" name="key" ng-model="vm.smsAccount.key" md-maxlength="5" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'key\'].$error" ng-show="smsAccountForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.MOTIONPROXY">MotionProxy</label>\n <input type="url" name="remote" ng-model="vm.smsAccount.remote" md-maxlength="255" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="SMS.HELP.MOTIONPROXY"></span></div>\n <div ng-messages="smsAccountForm[\'remote\'].$error" ng-show="smsAccountForm[\'remote\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.MOTIONPROXY_REQUIRED">MotionProxy field is required</span>\n </div>\n <div ng-message="url">\n <span translate="SMS.ERRORS.MOTIONPROXY_MUST_VALID_URL">MotionProxy must be a valid url http://www.xcally.com</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.MOTIONPROXY_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionProxy must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.LIST">List</label>\n <md-select name="ListId" ng-model="vm.smsAccount.ListId" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="SMS.HELP.LIST"></span></div>\n <div ng-messages="smsAccountForm[\'ListId\'].$error" ng-show="smsAccountForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.smsAccount.type" required>\n <md-option ng-value="\'twilio\'">Twilio</md-option>\n <md-option ng-value="\'skebby\'">Skebby</md-option>\n <md-option ng-value="\'connectel\'">Connectel</md-option>\n <md-option ng-value="\'clicksend\'">ClickSend</md-option>\n <md-option ng-value="\'plivo\'">Plivo</md-option>\n <md-option ng-value="\'infobip\'">Infobip</md-option>\n <md-option ng-value="\'clickatell\'">Clickatell</md-option>\n <md-option ng-value="\'bandwidth\'">Bandwidth</md-option>\n <md-option ng-value="\'csc\'">CSCTelecom</md-option>\n <md-option ng-value="\'intelepeer\'">Intelepeer</md-option>\n </md-select>\n <div ng-messages="smsAccountForm[\'type\'].$error" ng-show="smsAccountForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.smsAccount.phone" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'phone\'].$error" ng-show="smsAccountForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'twilio\'" class="md-block">\n <label translate="SMS.ACCOUNTSID">AccountSID</label>\n <input type="text" name="accountSid" ng-model="vm.smsAccount.accountSid" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'accountSid\'].$error" ng-show="smsAccountForm[\'accountSid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.ACCOUNTSID_REQUIRED">AccountSID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'plivo\'" class="md-block">\n <label translate="SMS.AUTHID">AuthID</label>\n <input type="text" name="authId" ng-model="vm.smsAccount.authId" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'authId\'].$error" ng-show="smsAccountForm[\'authId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AUTHID_REQUIRED">AuthID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'twilio\' || vm.smsAccount.type == \'connectel\' || vm.smsAccount.type == \'plivo\'" class="md-block">\n <label translate="SMS.AUTHTOKEN">AuthToken</label>\n <input type="text" name="authToken" ng-model="vm.smsAccount.authToken" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'authToken\'].$error" ng-show="smsAccountForm[\'authToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AUTHTOKEN_REQUIRED">AuthToken field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'skebby\'" class="md-block">\n <label translate="SMS.METHOD">Method</label>\n <md-select name="smsMethod" ng-model="vm.smsAccount.smsMethod" required>\n <md-option ng-value="\'SI\'">Basic</md-option>\n <md-option ng-value="\'TI\'">Classic</md-option>\n <md-option ng-value="\'GP\'">Classic+</md-option>\n </md-select>\n <div ng-messages="smsAccountForm[\'smsMethod\'].$error" ng-show="smsAccountForm[\'smsMethod\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.METHOD_REQUIRED">Method field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'skebby\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'csc\' || vm.smsAccount.type == \'infobip\' || vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.smsAccount.username" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'username\'].$error" ng-show="smsAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.smsAccount.type == \'skebby\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'infobip\' || vm.smsAccount.type == \'bandwidth\'">\n <label translate="SMS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.smsAccount.password" placeholder="Password" translate translate-attr-placeholder="SMS.PASSWORD" required>\n <div ng-messages="smsAccountForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SMS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container ng-if="vm.smsAccount.type == \'infobip\' || vm.smsAccount.type == \'csc\'" class="md-block">\n <label translate="SMS.BASEURL">BaseURL</label>\n <input type="text" name="baseUrl" ng-model="vm.smsAccount.baseUrl" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'baseUrl\'].$error" ng-show="smsAccountForm[\'baseUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.BASEURL_REQUIRED">BaseURL field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'csc\' || vm.smsAccount.type == \'clickatell\' || vm.smsAccount.type == \'intelepeer\'" class="md-block">\n <label translate="SMS.APIKEY">ApiKey</label>\n <input type="text" name="apiKey" ng-model="vm.smsAccount.apiKey" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'apiKey\'].$error" ng-show="smsAccountForm[\'apiKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.APIKEY_REQUIRED">ApiKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.ACCOUNTID">AccountId</label>\n <input type="text" name="accountId" ng-model="vm.smsAccount.accountId" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'accountId\'].$error" ng-show="smsAccountForm[\'accountId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.ACCOUNTID_REQUIRED">AccountId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.APPLICATIONID">ApplicationID</label>\n <input type="text" name="applicationId" ng-model="vm.smsAccount.applicationId" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'applicationId\'].$error" ng-show="smsAccountForm[\'applicationId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.APPLICATIONID_REQUIRED">ApplicationID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.smsAccount.description">\n\n <div ng-messages="smsAccountForm[\'description\'].$error" ng-show="smsAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newSmsAccount" ng-click="vm.saveSmsAccount()" class="send-button md-accent md-raised" ng-disabled="smsAccountForm.$invalid || smsAccountForm.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newSmsAccount" ng-click="vm.addNewSmsAccount()" class="send-button md-accent md-raised" ng-disabled="smsAccountForm.$invalid" aria-label="ADD" translate="SMS.ADD_SMSACCOUNT" translate-attr-aria-label="SMS.ADD_SMSACCOUNT">\n ADD SMSACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newSmsAccount" ng-click="vm.deleteSmsAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="SMS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="SMS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/agentadd/agentadd.html",'<md-dialog class="smsAccount-dialog" aria-label="smsAccount" ng-init="vm.onInit()">\n <form name="smsAccountForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="SMS.AGENTADD_SMSACCOUNT">Add Agent to smsAccount</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/agent/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.AGENT">Agent</label>\n <md-select name="agent" ng-model="vm.agent.agent" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents" ng-disabled="agent.canSelect === false">{{ agent.name }}</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'agent\'].$error" ng-show="smsAccountFormApp[\'agent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.agent.timeout" min="0" max="2147483" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'timeout\'].$error" ng-show="smsAccountFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/amazonlex/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.ACCESSKEYID">accesskeyid</label>\n <input type="text" name="accesskeyid" ng-model="vm.amazonlex.accesskeyid" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'accesskeyid\'].$error" ng-show="smsAccountFormApp[\'accesskeyid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.ACCESSKEYID_REQUIRED">accesskeyid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.SECRETACCESSKEY">secretaccesskey</label>\n <input type="text" name="secretaccesskey" ng-model="vm.amazonlex.secretaccesskey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'secretaccesskey\'].$error" ng-show="smsAccountFormApp[\'secretaccesskey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.SECRETACCESSKEY_REQUIRED">secretaccesskey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.LEXREGION">lexregion</label>\n <md-select name="lexregion" ng-model="vm.amazonlex.lexregion" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'us-east-1\'">US East (N. Virginia)</md-option>\n <md-option ng-value="\'us-west-2\'">US West (Oregon)</md-option>\n <md-option ng-value="\'eu-west-1\'">EU (Ireland)</md-option>\n <md-option ng-value="\'ap-southeast-2\'">Asia Pacific (Sydney)</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'lexregion\'].$error" ng-show="smsAccountFormApp[\'lexregion\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.LEXREGION_REQUIRED">lexregion field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.BOTNAME">botname</label>\n <input type="text" name="botname" ng-model="vm.amazonlex.botname" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'botname\'].$error" ng-show="smsAccountFormApp[\'botname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.BOTNAME_REQUIRED">botname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.amazonlex.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="SMS.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="smsAccountFormApp[\'welcomemessage\'].$error" ng-show="smsAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="SMS.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/autoreply/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.TIMES">times</label>\n <md-select name="times" ng-model="vm.autoreply.times" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="2">One Time</md-option>\n <md-option ng-value="0">Always</md-option>\n <md-option ng-value="1">First Message</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'times\'].$error" ng-show="smsAccountFormApp[\'times\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TIMES_REQUIRED">times field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.TEXT">Text</label>\n <textarea name="text" ng-model="vm.autoreply.text" required></textarea>\n\n <div ng-messages="smsAccountFormApp[\'text\'].$error" ng-show="smsAccountFormApp[\'text\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="SMS.ERRORS.TEXT_REQUIRED">Text field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/close/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.DISPOSITION">Disposition</label>\n <input type="text" name="disposition" ng-model="vm.close.disposition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'disposition\'].$error" ng-show="smsAccountFormApp[\'disposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/dialogflow/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.dialogflow.key" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'key\'].$error" ng-show="smsAccountFormApp[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.KEY_REQUIRED">Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflow.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean (South Korea)</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pt\'">Portuguese (European)</md-option>\n <md-option ng-value="\'pt-br\'">Portuguese (Nrazilian)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'sv\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-HK\'">Chinese (Hong Kong)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'language\'].$error" ng-show="smsAccountFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.LANGUAGE_REQUIRED">language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflow.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="SMS.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="smsAccountFormApp[\'welcomemessage\'].$error" ng-show="smsAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="SMS.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/dialogflowv2/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.PROJECTID">ProjectID</label>\n <input type="text" name="projectId" ng-model="vm.dialogflowv2.projectId" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'projectId\'].$error" ng-show="smsAccountFormApp[\'projectId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.PROJECTID_REQUIRED">ProjectID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.CLIENTEMAIL">ClientEmail</label>\n <input type="text" name="clientEmail" ng-model="vm.dialogflowv2.clientEmail" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'clientEmail\'].$error" ng-show="smsAccountFormApp[\'clientEmail\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.CLIENTEMAIL_REQUIRED">ClientEmail field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.PRIVATEKEY">PrivateKey</label>\n <textarea name="privateKey" ng-model="vm.dialogflowv2.privateKey" required></textarea>\n\n <div ng-messages="smsAccountFormApp[\'privateKey\'].$error" ng-show="smsAccountFormApp[\'privateKey\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="SMS.ERRORS.PRIVATEKEY_REQUIRED">PrivateKey field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflowv2.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'zh-HK\'">Chinese (Cantonese)</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'en-AU\'">English (Australia)</md-option>\n <md-option ng-value="\'en-CA\'">English (Canada)</md-option>\n <md-option ng-value="\'en-GB\'">English (Great Britain)</md-option>\n <md-option ng-value="\'en-IN\'">English (India)</md-option>\n <md-option ng-value="\'en-US\'">English (US)</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'fr-CA\'">French (Canada)</md-option>\n <md-option ng-value="\'fr-FR\'">\'France (France)</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'hi\'">Hindi</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pl\'">Polish</md-option>\n <md-option ng-value="\'pt-BR\'">Portuguese (Brazil)</md-option>\n <md-option ng-value="\'pt-PT\'">Portuguese (Portugal)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'es-419\'">Spanish (Latin America)</md-option>\n <md-option ng-value="\'es-ES\'">Spanish (Spain)</md-option>\n <md-option ng-value="\'sw\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'tr\'">Turkish</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'language\'].$error" ng-show="smsAccountFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.LANGUAGE_REQUIRED">language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflowv2.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="SMS.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="smsAccountFormApp[\'welcomemessage\'].$error" ng-show="smsAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/gotoif/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.CONDITION">Condition</label>\n <input type="text" name="condition" ng-model="vm.gotoif.condition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'condition\'].$error" ng-show="smsAccountFormApp[\'condition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.TRUEPRIORITY">truepriority</label>\n <input type="number" name="truepriority" ng-model="vm.gotoif.truepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'truepriority\'].$error" ng-show="smsAccountFormApp[\'truepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TRUEPRIORITY_REQUIRED">truepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">truepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.FALSEPRIORITY">falsepriority</label>\n <input type="number" name="falsepriority" ng-model="vm.gotoif.falsepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'falsepriority\'].$error" ng-show="smsAccountFormApp[\'falsepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.FALSEPRIORITY_REQUIRED">falsepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">falsepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/gotop/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.PRIORITY">Priority</label>\n <input type="number" name="priority" ng-model="vm.gotop.priority" min="0" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'priority\'].$error" ng-show="smsAccountFormApp[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Priority must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/interval/dialog.html",'<md-dialog class="interval-dialog" aria-label="New Interval">\n <form name="intervalForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="type" ng-repeat=\'type in vm.types\'>{{ type | ucfirst }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.type === \'list\'">\n <label translate="TOOLS.INTERVALS">Intervals</label>\n <md-select ng-model="vm.interval.IntervalId" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ interval.name }}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!-- TIMERANGE START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.TIME_RANGE">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <div class="md-block" flex>\n <mdp-time-picker name="timeRangeFrom" mdp-placeholder="FROM" ng-model="vm.timeRangeFrom" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <div ng-messages="intervalForm.timeRangeFrom.$error" ng-show="intervalForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_FROM_INVALID">Time Range From field is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n <div class="md-block" flex ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_INVALID">Time Range To field is invalid</span>\n </div>\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </div>\n \x3c!-- TIMERANGE END --\x3e\n\n \x3c!-- DAYSOFWEEK START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.WEEK_DAYS">Week Days</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.dayOfWeekFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex class="md-block" ng-if="vm.dayOfWeekFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="dayOfWeekTo" ng-model="vm.dayOfWeekTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- DAYSOFWEEK END --\x3e\n\n \x3c!-- MONTHDAY START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTH_DAYS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthDayFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthDayFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthDayTo" ng-model="vm.monthDayTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTHDAY END --\x3e\n\n \x3c!-- MONTH START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTHS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthTo" ng-model="vm.monthTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTH END --\x3e\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="!vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n ADD INTERVAL\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/noop/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.noop.value" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'value\'].$error" ng-show="smsAccountFormApp[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/queue/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.queue.queue" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues" ng-disabled="queue.canSelect === false">{{ queue.name }}</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'queue\'].$error" ng-show="smsAccountFormApp[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'timeout\'].$error" ng-show="smsAccountFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/system/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.COMMAND">Command</label>\n <input type="text" name="command" ng-model="vm.system.command" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'command\'].$error" ng-show="smsAccountFormApp[\'command\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.COMMAND_REQUIRED">Command field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.system.variable" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables" ng-disabled="variable.canSelect === false">{{ variable.name }}</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'variable\'].$error" ng-show="smsAccountFormApp[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.VARIABLE_REQUIRED">Variable field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/tag/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.TAG">Tag</label>\n <md-select name="tag" ng-model="vm.tag.tag" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags" ng-disabled="tag.canSelect === false">{{ tag.name }}</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'tag\'].$error" ng-show="smsAccountFormApp[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TAG_REQUIRED">Tag field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/smsCannedAnswers/dialog.html",'<md-dialog class="smsCannedAnswer-dialog" aria-label="New SmsCannedAnswer">\n <form name="smsCannedAnswerForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.KEY">Key</label>\n <input type="" name="key" ng-model="vm.smsCannedAnswer.key" md-maxlength="255" ng-required="true" autofocus>\n\n <div ng-messages="smsCannedAnswerForm[\'key\'].$error" ng-show="smsCannedAnswerForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.KEY_REQUIRED">Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.VALUE">Value</label>\n <textarea name="value" ng-model="vm.smsCannedAnswer.value" required></textarea>\n\n <div ng-messages="smsCannedAnswerForm[\'value\'].$error" ng-show="smsCannedAnswerForm[\'value\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="SMS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.smsCannedAnswer.description">\n\n <div ng-messages="smsCannedAnswerForm[\'description\'].$error" ng-show="smsCannedAnswerForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newSmsCannedAnswer" ng-click="vm.saveSmsCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="smsCannedAnswerForm.$invalid || smsCannedAnswerForm.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newSmsCannedAnswer" ng-click="vm.addNewSmsCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="smsCannedAnswerForm.$invalid" aria-label="ADD" translate="SMS.ADD_SMSCANNEDANSWER" translate-attr-aria-label="SMS.ADD_SMSCANNEDANSWER">\n ADD SMSCANNEDANSWER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newSmsCannedAnswer" ng-click="vm.deleteSmsCannedAnswer($event)" aria-label="DELETE" translate translate-attr-aria-label="SMS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="SMS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/view.html",'<div id="sms-smsAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-smsAccounts-button md-icon-button" aria-label="Go to smsAccounts" ng-click="vm.gotoSmsAccounts()" translate translate-attr-aria-label="SMS.GO_TO_SMSACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="smsAccount-image" hide-xs>\n <img ng-src="assets/images/business/smsAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.smsAccount.id}}\n <span ng-if="vm.smsAccount.name">{{vm.smsAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="SMS.CREATED_AT"></span> <span>{{vm.smsAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.smsAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="SMS.AGENTADD_SMSACCOUNT"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveSmsAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (proxyForm.$invalid) || (dispositionForm.$invalid) || (smsDispositionsForm.$invalid) || (smsCannedAnswersForm.$invalid) || (actionsForm.$invalid) || (interactionsForm.$invalid)" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="smsAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SMS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SMS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.smsAccount.name" ng-required="true" autofocus disabled>\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.KEY">key</label>\n <input type="text" name="key" ng-model="vm.smsAccount.key" md-maxlength="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'key\'].$error" ng-show="generalForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.LIST">List</label>\n <md-select name="ListId" ng-model="vm.smsAccount.ListId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="SMS.HELP.LIST"></span></div>\n <div ng-messages="generalForm[\'ListId\'].$error" ng-show="generalForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.smsAccount.type" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'twilio\'">Twilio</md-option>\n <md-option ng-value="\'skebby\'">Skebby</md-option>\n <md-option ng-value="\'connectel\'">Connectel</md-option>\n <md-option ng-value="\'clicksend\'">ClickSend</md-option>\n <md-option ng-value="\'plivo\'">Plivo</md-option>\n <md-option ng-value="\'infobip\'">Infobip</md-option>\n <md-option ng-value="\'clickatell\'">Clickatell</md-option>\n <md-option ng-value="\'bandwidth\'">Bandwidth</md-option>\n <md-option ng-value="\'csc\'">CSCTelecom</md-option>\n <md-option ng-value="\'intelepeer\'">Intelepeer</md-option>\n </md-select>\n <div ng-messages="generalForm[\'type\'].$error" ng-show="generalForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.smsAccount.phone" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'phone\'].$error" ng-show="generalForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'twilio\'" class="md-block">\n <label translate="SMS.ACCOUNTSID">AccountSID</label>\n <input type="text" name="accountSid" ng-model="vm.smsAccount.accountSid" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'accountSid\'].$error" ng-show="generalForm[\'accountSid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.ACCOUNTSID_REQUIRED">AccountSID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'plivo\'" class="md-block">\n <label translate="SMS.AUTHID">AuthID</label>\n <input type="text" name="authId" ng-model="vm.smsAccount.authId" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'authId\'].$error" ng-show="generalForm[\'authId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AUTHID_REQUIRED">AuthID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'twilio\' || vm.smsAccount.type == \'connectel\' || vm.smsAccount.type == \'plivo\'" class="md-block">\n <label translate="SMS.AUTHTOKEN">AuthToken</label>\n <input type="text" name="authToken" ng-model="vm.smsAccount.authToken" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'authToken\'].$error" ng-show="generalForm[\'authToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AUTHTOKEN_REQUIRED">AuthToken field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'skebby\'" class="md-block">\n <label translate="SMS.METHOD">Method</label>\n <md-select name="smsMethod" ng-model="vm.smsAccount.smsMethod" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'SI\'">Basic</md-option>\n <md-option ng-value="\'TI\'">Classic</md-option>\n <md-option ng-value="\'GP\'">Classic+</md-option>\n </md-select>\n <div ng-messages="generalForm[\'smsMethod\'].$error" ng-show="generalForm[\'smsMethod\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.METHOD_REQUIRED">Method field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'skebby\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'csc\' || vm.smsAccount.type == \'infobip\' || vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.smsAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.smsAccount.type == \'skebby\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'infobip\' || vm.smsAccount.type == \'bandwidth\'">\n <label translate="SMS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.smsAccount.password" placeholder="Password" translate translate-attr-placeholder="SMS.PASSWORD" required>\n <div ng-messages="generalForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SMS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container ng-if="vm.smsAccount.type == \'infobip\' || vm.smsAccount.type == \'csc\'" class="md-block">\n <label translate="SMS.BASEURL">BaseURL</label>\n <input type="text" name="baseUrl" ng-model="vm.smsAccount.baseUrl" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'baseUrl\'].$error" ng-show="generalForm[\'baseUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.BASEURL_REQUIRED">BaseURL field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'csc\' || vm.smsAccount.type == \'clickatell\' || vm.smsAccount.type == \'intelepeer\'" class="md-block">\n <label translate="SMS.APIKEY">ApiKey</label>\n <input type="text" name="apiKey" ng-model="vm.smsAccount.apiKey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'apiKey\'].$error" ng-show="generalForm[\'apiKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.APIKEY_REQUIRED">ApiKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.ACCOUNTID">AccountId</label>\n <input type="text" name="accountId" ng-model="vm.smsAccount.accountId" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'accountId\'].$error" ng-show="generalForm[\'accountId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.ACCOUNTID_REQUIRED">AccountId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.APPLICATIONID">ApplicationID</label>\n <input type="text" name="applicationId" ng-model="vm.smsAccount.applicationId" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'applicationId\'].$error" ng-show="generalForm[\'applicationId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.APPLICATIONID_REQUIRED">ApplicationID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'connectel\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'plivo\'|| vm.smsAccount.type == \'csc\'|| vm.smsAccount.type == \'infobip\' || vm.smsAccount.type == \'intelepeer\'" class="md-block">\n <label translate="SMS.SENDERSTRING">SenderString</label>\n <input type="text" name="senderString" ng-model="vm.smsAccount.senderString" md-maxlength="11" ng-pattern="/^[A-Za-z0-9\\.\\s]*$/i" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'senderString\'].$error" ng-show="generalForm[\'senderString\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.SENDERSTRING_REQUIRED">SenderString field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SMS.ERRORS.SENDERSTRING_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\s]*$/i\' }">SenderString must be valid pattern </span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.SENDERSTRING_MAX_LENGTH" translate-values=\'{max: 11}\'>SenderString must have a maximum length equal to 11</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.smsAccount.type == \'skebby\' && vm.smsAccount.smsMethod == \'GP\') || vm.smsAccount.type == \'connectel\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'csc\' || vm.smsAccount.type == \'clickatell\'" class="md-block">\n <md-switch ng-model="vm.smsAccount.deliveryReport" aria-label="deliveryReport" ng-disabled="!vm.crudPermissions.canEdit"><span translate="SMS.DELIVERYREPORT">deliveryReport</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.WAITFORTHEASSIGNEDAGENT">WaitForTheAssignedAgent</label>\n <input type="number" name="waitForTheAssignedAgent" ng-model="vm.smsAccount.waitForTheAssignedAgent" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'waitForTheAssignedAgent\'].$error" ng-show="generalForm[\'waitForTheAssignedAgent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.WAITFORTHEASSIGNEDAGENT_REQUIRED">WaitForTheAssignedAgent field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.smsAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.RECEIVEURL">receiveUrl</label>\n <div layout="row" layout-align="center center">\n <button class="md-button md-fab md-mini md-primary" ngclipboard data-clipboard-target="#copytoclipboard-receiveUrl" ngclipboard-success="vm.alert({title: \'copied to clipboard\', msg: e.text });" ngclipboard-error="vm.alert({title: \'error\', msg: \'copy to clipboard failed\'});">\n <md-icon md-font-icon="icon-clipboard-text"></md-icon>\n </button>\n <input class="md-input" type="text" id="copytoclipboard-receiveUrl" name="receiveUrl" ng-value="vm.smsAccount.remote + \'/api/sms/accounts/\' + vm.smsAccount.id + \'/notify?token=\' + vm.smsAccount.token" ng-readonly="true">\n </div>\n <div class="hint"><span translate="SMS.HELP.RECEIVEURL"></span></div>\n </md-input-container>\n <md-input-container ng-if="( ((vm.smsAccount.type == \'skebby\' && vm.smsAccount.smsMethod == \'GP\') || vm.smsAccount.type == \'connectel\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'csc\' || vm.smsAccount.type == \'clickatell\') && vm.smsAccount.deliveryReport) || vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.DELIVERYREPORTURL">deliveryReportUrl</label>\n <div layout="row" layout-align="center center">\n <button class="md-button md-fab md-mini md-primary" ngclipboard data-clipboard-target="#copytoclipboard-deliveryReportUrl" ngclipboard-success="vm.alert({title: \'copied to clipboard\', msg: e.text });" ngclipboard-error="vm.alert({title: \'error\', msg: \'copy to clipboard failed\'});">\n <md-icon md-font-icon="icon-clipboard-text"></md-icon>\n </button>\n <input class="md-input" type="text" id="copytoclipboard-deliveryReportUrl" name="deliveryReportUrl" ng-value="vm.smsAccount.remote + \'/api/sms/accounts/\' + vm.smsAccount.id + \'/status?token=\' + vm.smsAccount.token + (vm.smsAccount.type == \'csc\' ? \'&message-id={message-id}&state={state}\' : \'\')" ng-readonly="true">\n </div>\n <div class="hint"><span translate="SMS.HELP.DELIVERYREPORTURL"></span></div>\n </md-input-container>\n\n </form>\n </div>\n <div class="smsAccount-detail-form-container notification md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SMS.NOTIFICATION">NOTIFICATION</div>\n </div>\n <form name="notificationForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.smsAccount.notificationSound" aria-label="notificationSound" ng-disabled="!vm.crudPermissions.canEdit"><span translate="SMS.NOTIFICATIONSOUND">notificationSound</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.smsAccount.notificationShake" aria-label="notificationShake" ng-disabled="!vm.crudPermissions.canEdit"><span translate="SMS.NOTIFICATIONSHAKE">notificationShake</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="SMS.NOTIFICATIONTEMPLATE">notificationTemplate</label>\n <textarea aria-label="notificationTemplate notificationTemplate" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.smsAccount.notificationTemplate"></textarea>\n </div>\n\n </form>\n </div>\n <div class="smsAccount-detail-form-container transfer md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SMS.TRANSFER">TRANSFER</div>\n </div>\n <form name="transferForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.smsAccount.queueTransfer" aria-label="queueTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="SMS.QUEUETRANSFER">queueTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.queueTransfer == true" class="md-block">\n <label translate="SMS.QUEUETRANSFERTIMEOUT">queueTransferTimeout</label>\n <input type="number" name="queueTransferTimeout" ng-model="vm.smsAccount.queueTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'queueTransferTimeout\'].$error" ng-show="transferForm[\'queueTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.QUEUETRANSFERTIMEOUT_REQUIRED">queueTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.smsAccount.agentTransfer" aria-label="agentTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="SMS.AGENTTRANSFER">agentTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.agentTransfer == true" class="md-block">\n <label translate="SMS.AGENTTRANSFERTIMEOUT">agentTransferTimeout</label>\n <input type="number" name="agentTransferTimeout" ng-model="vm.smsAccount.agentTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'agentTransferTimeout\'].$error" ng-show="transferForm[\'agentTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AGENTTRANSFERTIMEOUT_REQUIRED">agentTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="smsAccount-detail-form-container proxy md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SMS.PROXY">PROXY</div>\n </div>\n <form name="proxyForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SMS.TOKEN">token</label>\n <input type="text" name="token" ng-model="vm.smsAccount.token" autofocus disabled>\n\n <div ng-messages="proxyForm[\'token\'].$error" ng-show="proxyForm[\'token\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TOKEN_REQUIRED">token field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.MOTIONPROXY">MotionProxy</label>\n <input type="url" name="remote" ng-model="vm.smsAccount.remote" md-maxlength="255" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="SMS.HELP.MOTIONPROXY"></span></div>\n <div ng-messages="proxyForm[\'remote\'].$error" ng-show="proxyForm[\'remote\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.MOTIONPROXY_REQUIRED">MotionProxy field is required</span>\n </div>\n <div ng-message="url">\n <span translate="SMS.ERRORS.MOTIONPROXY_MUST_VALID_URL">MotionProxy must be a valid url http://www.xcally.com</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.MOTIONPROXY_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionProxy must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="smsAccount-detail-form-container disposition md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SMS.DISPOSITION">DISPOSITION</div>\n </div>\n <form name="dispositionForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.smsAccount.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="SMS.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.mandatoryDisposition" class="md-block">\n <label translate="SMS.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.smsAccount.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="SMS.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="dispositionForm[\'mandatoryDispositionPauseId\'].$error" ng-show="dispositionForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.DISPOSITIONS">DISPOSITIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div ng-controller="SmsAccountDispositionsController as vm_dc" ng-init="vm_dc.init(vm.smsAccount, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="smsAccount-detail-form-container smsdispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedSmsAccountDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="SMS.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add sms dispositions" translate translate-attr-label="SMS.ADD_DISPOSITION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" csv-label="true" filename="smsAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="SMS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_dc.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'SMS.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'SMS.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'SMS.DESCRIPTION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="SMS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="SMS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(disposition, $event)" translate="TOOLS.DELETE_DISPOSITION">\n Delete Disposition\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'SMS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SMS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SMS.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.CANNEDANSWERS">CANNEDANSWERS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="smsAccount-detail-form-container smscannedanswers md-background-bg md-whiteframe-1dp">\n <div ng-controller="SmsAccountSmsCannedAnswersController as vm_dc" ng-init="vm_dc.init(vm.smsAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedSmsAccountSmsCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="SMS.SMSCANNEDANSWERS">SmsCannedAnswers</span>\n <ms-search-bar on-search="vm_dc.getSmsAccountSmsCannedAnswers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event)" aria-label="add smsCannedAnswer" translate translate-attr-label="SMS.ADD_SMSCANNEDANSWER">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedSmsAccountSmsCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedSmsAccountSmsCannedAnswers.length}} {{vm_dc.selectedSmsAccountSmsCannedAnswers.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedSmsAccountSmsCannedAnswers" csv-label="true" filename="smsAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedSmsAccountSmsCannedAnswers($event)" aria-label="delete selected" translate translate-attr-label="SMS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedSmsAccountSmsCannedAnswers" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getSmsAccountSmsCannedAnswers">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'SMS.ID\' | translate }}\n </th>\n <th md-column md-order-by="key">\n {{ \'SMS.KEY\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'SMS.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="description">\n {{ \'SMS.DESCRIPTION\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'SMS.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="smsCannedAnswer" md-select-id="id" ng-repeat="smsCannedAnswer in vm_dc.smsAccountSmsCannedAnswers.rows">\n <td ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" md-cell>\n {{smsCannedAnswer.id}}\n </td>\n <td ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" md-cell>\n {{smsCannedAnswer.key}}\n </td>\n <td ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" md-cell>\n {{smsCannedAnswer.value}}\n </td>\n <td ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" md-cell>\n {{smsCannedAnswer.description}}\n </td>\n <td ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" md-cell>\n {{ smsCannedAnswer.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="SMS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" translate="SMS.EDIT_SMSCANNEDANSWER">\n Edit SmsCannedAnswer\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(smsCannedAnswer, $event)" translate="SMS.DELETE_SMSCANNEDANSWER">\n Delete SmsCannedAnswer\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.smsAccountSmsCannedAnswers.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="SMS.NO_SMSCANNEDANSWER_AVAILABLE">No smscannedanswer available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'SMS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SMS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SMS.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.smsAccountSmsCannedAnswers.count}}" md-on-paginate="vm_dc.getSmsAccountSmsCannedAnswers" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="smsAccount-detail-form-container actions md-background-bg md-whiteframe-1dp">\n <div ng-controller="SmsAccountActionsController as vm_ac" ng-init="vm_ac.init(vm.smsAccount, vm.crudPermissions)" class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- SIDENAV --\x3e\n <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20" ng-if="vm_ac.crudPermissions.canEdit">\n \x3c!-- SIDENAV CONTENT --\x3e\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\n Applications List\n </span>\n </md-subheader>\n </md-list>\n <md-divider></md-divider>\n <md-list ng-sortable="vm_ac.list">\n <md-list-item class="handle" ng-repeat="a in vm_ac.apps">\n <md-icon md-font-icon="{{a.icon}}" class="s16"></md-icon>\n <p class="text-truncate" translate="SMS.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias || a.appType}}</p>\n </md-list-item>\n </md-list>\n \x3c!-- / SIDENAV CONTENT --\x3e\n </div>\n \x3c!-- / SIDENAV --\x3e\n <div flex></div>\n \x3c!-- MAIN --\x3e\n <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="{{vm_ac.crudPermissions.canEdit ? 75 : 100}}">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_ac.selectedSmsAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Drag & Drop Routing</span>\n <div flex></div>\n <ms-search-bar on-search="vm_ac.query.filter = query" on-collapse="vm_ac.query.filter = undefined" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_ac.selectedSmsAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_ac.selectedSmsAccountApps.length}} {{vm_ac.selectedSmsAccountApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_ac.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_ac.deleteSelectedSmsAccountApps($event)" aria-label="delete selected" translate translate-attr-label="SMS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n \x3c!-- QUEUES TABLE --\x3e\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_ac.selectedSmsAccountApps">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column width="10px">\n <span translate="VOICE.PRIORITY">Priority</span>\n </th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </th>\n <th md-column width="10px"></th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body ng-sortable="vm_ac.applications">\n <tr md-row md-select="app" md-select-id="id" ng-repeat="app in vm_ac.smsAccountApps.rows | filter: vm_ac.query.filter">\n <td md-cell>\n <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n </td>\n <td md-cell ng-click="vm_ac.editSmsAccountApp($event, $index)"><span>{{app.priority}}</span></td>\n <td md-cell ng-click="vm_ac.editSmsAccountApp($event, $index)">{{app.app.toLowerCase() === \'agi\' ? \'Cally-Square\' : app.app | ucfirst}}<span ng-if="app.appType.toLowerCase() === \'custom\'">*</span></td>\n <td md-cell ng-click="vm_ac.editSmsAccountApp($event, $index)"><span class="text-truncate actionAppData">{{app.appdata}}</span></td>\n <td md-cell ng-click="vm_ac.editInterval($event, $index)">{{app.IntervalId ? \'From List\' : app.interval}}</td>\n <td md-cell>\n <md-button ng-click="vm_ac.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n <md-icon md-font-icon="icon-timer"></md-icon>\n <md-tooltip>\n {{app.IntervalId ? \'From List\' : (app.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n </md-tooltip>\n </md-button>\n </td>\n <td md-cell class="actions" ng-if="!vm_ac.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editSmsAccountApp($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canDelete">\n <md-button ng-click="vm_ac.deleteConfirm(app, $index, $event)" translate="VOICE.DELETE_APP">\n Delete App\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-hide="vm_ac.smsAccountApps.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n \x3c!-- / QUEUES TABLE --\x3e\n\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.INTERACTIONS">INTERACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="smsAccount-detail-form-container interactions md-background-bg md-whiteframe-1dp">\n <div ng-controller="SmsAccountInteractionsController as vm_dc" ng-init="vm_dc.init(vm.smsAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedSmsAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="SMS.INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm_dc.getSmsAccountInteractions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_dc.quickFilters" query="vm_dc.query" search="vm_dc.getSmsAccountInteractions()"></ms-quick-filter>\n <div layout="column">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini md-accent-bg\': vm_dc.query.search }" aria-label="Filter" translate translate-attr-aria-label="DASHBOARDS.FILTER" ng-click="vm_dc.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm_dc.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'blink\': vm_dc.query.search }"></md-icon>\n </md-button>\n </div>\n <md-button class="md-icon-button" ng-click="vm_dc.getSmsAccountInteractions()" aria-label="refresh Interactions" translate translate-attr-label="SMS.REFRESH_INTERACTIONS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedSmsAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedSmsAccountInteractions.length}} {{vm_dc.selectedSmsAccountInteractions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedSmsAccountInteractions" csv-label="true" filename="smsAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedSmsAccountInteractions($event)" aria-label="delete selected" translate translate-attr-label="SMS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedSmsAccountInteractions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getSmsAccountInteractions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'SMS.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column md-order-by="contactName">\n {{ \'SMS.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'SMS.STARTEDAT\' | translate }}\n </th>\n <th md-column md-order-by="lastMsgAt">\n {{ \'SMS.LASTMESSAGE\' | translate }}\n </th>\n <th md-column md-order-by="closed">\n {{ \'SMS.STATUS\' | translate }}\n </th>\n <th md-column>\n {{ \'SMS.AGENT\' | translate }}\n </th>\n <th md-column md-order-by="tag">\n {{ \'SMS.TAGS\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="interaction" md-select-id="id" ng-repeat="interaction in vm_dc.smsAccountInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td md-cell>\n {{interaction.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="user in interaction.Users">{{ user.fullname | translate }}\n <span ng-if="!$last">, </span>\n </span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg md-primary-bg" layout-margin>{{ interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.attach">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'margin-bottom-0\' : interaction.contactInfo}" layout-margin>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text margin-top-0" layout-margin>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td md-cell>\n {{ interaction.createdAt | formatdate }}\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}"></md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="text-truncate">{{ interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n </td>\n <td md-cell>\n <span ng-if="interaction.closed === 0" class="green-fg">\n {{ \'SMS.OPENED\' | translate }}\n <span ng-if="interaction.substatus">\n - {{ interaction.substatus }}\n </span>\n </span>\n <span ng-if="interaction.closed === 1" class="red-fg">\n {{ \'SMS.CLOSED\' | translate }}\n <span ng-if="interaction.disposition">\n - {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}\n </span>\n <md-tooltip class="multiline">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n </span>\n </td>\n\n <td md-cell>\n {{interaction.Owner.name}}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="SMS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm_dc.spysmsInteraction($event, interaction)" translate="SMS.SPYINTERACTION">\n Spy Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || vm_dc.userProfile.downloadOmnichannelInteractions">\n <md-button class="md-primary" ng-click="vm_dc.smsInteractionDownload(interaction, $event)" translate="SMS.DOWNLOAD_INTERACTION">\n Download\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(interaction, $event)" translate="SMS.DELETE_INTERACTION">\n Delete Interaction\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.smsAccountInteractions.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="SMS.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'SMS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SMS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SMS.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.smsAccountInteractions.count}}" md-on-paginate="vm_dc.getSmsAccountInteractions" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/sms/views/smsAccounts/smsAccounts.html",'<div id="smsAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-message-text" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="SMS.SMSACCOUNTS">SmsAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="SMS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedSmsAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedSmsAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="SMS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-smsAccounts-count">\n <span>{{vm.selectedSmsAccounts.length}}</span>\n <span translate="SMS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="SMS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllSmsAccounts()" translate="SMS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectSmsAccounts()" translate="SMS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedSmsAccounts" csv-label="true" filename="smsAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedSmsAccounts($event)" aria-label="delete selected" translate translate-attr-label="SMS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- SMSACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedSmsAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getSmsAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'SMS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'SMS.NAME\' | translate }}</th>\n <th md-column md-order-by="key">{{ \'SMS.KEY\' | translate }}</th>\n <th md-column md-order-by="ListId">{{ \'SMS.LIST\' | translate }}</th>\n <th md-column md-order-by="type">{{ \'SMS.TYPE\' | translate }}</th>\n <th md-column md-order-by="phone">{{ \'SMS.PHONE\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'SMS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.smsAccounts.rows.length">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span translate="SMS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="smsAccount" md-select-id="id" ng-repeat="smsAccount in vm.smsAccounts.rows">\n <td md-cell ng-if="smsAccount.userpic"><img class="avatar" alt="{{smsAccount.name}}" ng-src="api/users/{{smsAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!smsAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{smsAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="id ">{{smsAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="name ">{{smsAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="key ">{{smsAccount.key}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="ListId ">{{ (vm.lists | filter : {\'id\':smsAccount.ListId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="type ">{{ vm.arraytype[smsAccount.type].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="phone ">{{smsAccount.phone}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="description ">{{smsAccount.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="SMS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(smsAccount, $event )" translate="SMS.EDIT_SMSACCOUNT">\n Edit SmsAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.interactionsgoto(smsAccount, $event )" translate="SMS.INTERACTIONS_SMSACCOUNT">\n Interactions SmsAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(smsAccount, $event )" translate="SMS.AGENTADD_SMSACCOUNT">\n AgentAdd SmsAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(smsAccount, $event )" translate="SMS.DELETE_SMSACCOUNT">\n Delete SmsAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'SMS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SMS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SMS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.smsAccounts.count}}" md-on-paginate="vm.getSmsAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / SMSACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD SMSACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-smsAccount-button" ng-click="vm.createOrEditSmsAccount($event)" aria-label="add smsAccount" translate translate-attr-aria-label="SMS.ADD_SMSACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD SMSACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/sms/views/smsQueues/create/dialog.html",'<md-dialog class="smsQueue-dialog" aria-label="New SmsQueue">\n <form name="smsQueueForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.smsQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newSmsQueue">\n\n <div class="hint"><span translate="SMS.HELP.NAME"></span></div>\n <div ng-messages="smsQueueForm[\'name\'].$error" ng-show="smsQueueForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SMS.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.smsQueue.strategy" required>\n <md-option ng-value="\'beepall\'">Beepall</md-option>\n <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n </md-select>\n <div ng-messages="smsQueueForm[\'strategy\'].$error" ng-show="smsQueueForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.smsQueue.timeout" min="1" max="2147483" value="10" ng-required="true">\n\n <div ng-messages="smsQueueForm[\'timeout\'].$error" ng-show="smsQueueForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.smsQueue.description">\n\n <div ng-messages="smsQueueForm[\'description\'].$error" ng-show="smsQueueForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newSmsQueue" ng-click="vm.saveSmsQueue()" class="send-button md-accent md-raised" ng-disabled="smsQueueForm.$invalid || smsQueueForm.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newSmsQueue" ng-click="vm.addNewSmsQueue()" class="send-button md-accent md-raised" ng-disabled="smsQueueForm.$invalid" aria-label="ADD" translate="SMS.ADD_SMSQUEUE" translate-attr-aria-label="SMS.ADD_SMSQUEUE">\n ADD SMSQUEUE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newSmsQueue" ng-click="vm.deleteSmsQueue($event)" aria-label="DELETE" translate translate-attr-aria-label="SMS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="SMS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsQueues/edit/agentadd/agentadd.html",'<md-dialog class="smsQueue-dialog" aria-label="smsQueue" ng-init="vm.onInit()">\n <form name="smsQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="SMS.AGENTADD_SMSQUEUE">Add Agent to smsQueue</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsQueues/edit/teamadd/teamadd.html",'<md-dialog class="smsQueue-dialog" aria-label="smsQueue" ng-init="vm.onInit()">\n <form name="smsQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="SMS.TEAMS_ASSOCIATION">Teams Association</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsQueues/edit/view.html",'<div id="sms-smsQueue" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-smsQueues-button md-icon-button" aria-label="Go to smsQueues" ng-click="vm.gotoSmsQueues()" translate translate-attr-aria-label="SMS.GO_TO_SMSQUEUES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="smsQueue-image" hide-xs>\n <img ng-src="assets/images/business/smsQueues.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.smsQueue.id}}\n <span ng-if="vm.smsQueue.name">{{vm.smsQueue.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="SMS.CREATED_AT"></span> <span>{{vm.smsQueue.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.teamadddialog(vm.smsQueue, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n <md-tooltip><span translate="SMS.TEAMADD_SMSQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.smsQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="SMS.AGENTADD_SMSQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-plus"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveSmsQueue()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="smsQueue-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SMS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SMS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.smsQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="SMS.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SMS.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.smsQueue.strategy" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'beepall\'">Beepall</md-option>\n <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n </md-select>\n <div ng-messages="generalForm[\'strategy\'].$error" ng-show="generalForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.smsQueue.timeout" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'timeout\'].$error" ng-show="generalForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.smsQueue.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/sms/views/smsQueues/smsQueues.html",'<div id="smsQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-message-text" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="SMS.SMSQUEUES">SmsQueues</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="SMS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedSmsQueues.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedSmsQueues =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="SMS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-smsQueues-count">\n <span>{{vm.selectedSmsQueues.length}}</span>\n <span translate="SMS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="SMS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllSmsQueues()" translate="SMS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectSmsQueues()" translate="SMS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedSmsQueues" csv-label="true" filename="smsQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedSmsQueues($event)" aria-label="delete selected" translate translate-attr-label="SMS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- SMSQUEUE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedSmsQueues" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getSmsQueues">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'SMS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'SMS.NAME\' | translate }}</th>\n <th md-column md-order-by="strategy">{{ \'SMS.STRATEGY\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.smsQueues.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="SMS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="smsQueue" md-select-id="id" ng-repeat="smsQueue in vm.smsQueues.rows">\n <td md-cell ng-if="smsQueue.userpic"><img class="avatar" alt="{{smsQueue.name}}" ng-src="api/users/{{smsQueue.id}}/avatar" /></td>\n <td md-cell ng-if="!smsQueue.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{smsQueue.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsQueue, ev) : vm.createOrEditSmsQueue($event, smsQueue)" md-cell class="id ">{{smsQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsQueue, ev) : vm.createOrEditSmsQueue($event, smsQueue)" md-cell class="name ">{{smsQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsQueue, ev) : vm.createOrEditSmsQueue($event, smsQueue)" md-cell class="strategy ">{{ vm.arraystrategy[smsQueue.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="SMS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(smsQueue, $event )" translate="SMS.EDIT_SMSQUEUE">\n Edit SmsQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(smsQueue, $event )" translate="SMS.TEAMADD_SMSQUEUE">\n teamadd SmsQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(smsQueue, $event )" translate="SMS.AGENTADD_SMSQUEUE">\n agentadd SmsQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(smsQueue, $event )" translate="SMS.DELETE_SMSQUEUE">\n Delete SmsQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(smsQueue, $event )" translate="SMS.GOTOREALTIME_SMSQUEUE">\n goToRealtime SmsQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'SMS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SMS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SMS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.smsQueues.count}}" md-on-paginate="vm.getSmsQueues" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / SMSQUEUE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD SMSQUEUE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-smsQueue-button" ng-click="vm.createOrEditSmsQueue($event)" aria-label="add smsQueue" translate translate-attr-aria-label="SMS.ADD_SMSQUEUE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD SMSQUEUE BUTTON --\x3e\n</div>'),e.put("app/main/apps/staff/views/agents/agents.html",'<div id="agents" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-account-multiple" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="STAFF.AGENTS">Agents</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="STAFF.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedAgents.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedAgents =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="STAFF.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-agents-count">\n <span>{{vm.selectedAgents.length}}</span>\n <span translate="STAFF.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="STAFF.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllAgents()" translate="STAFF.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectAgents()" translate="STAFF.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedAgents" csv-label="true" filename="agents.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedAgents($event)" aria-label="delete selected" translate translate-attr-label="STAFF.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- AGENT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedAgents" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getAgents">\n <tr md-row>\n <th md-column width="20px"></th>\n <th md-column md-order-by="fullname">{{ \'STAFF.FULLNAME\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'STAFF.USERNAME\' | translate }}</th>\n <th md-column md-order-by="showWebBar">{{ \'STAFF.SHOWWEBCONTROL\' | translate }}</th>\n <th md-column md-order-by="email">{{ \'STAFF.EMAIL\' | translate }}</th>\n <th md-column md-order-by="phone">{{ \'STAFF.PHONE\' | translate }}</th>\n <th md-column md-order-by="mobile">{{ \'STAFF.MOBILE\' | translate }}</th>\n <th md-column md-order-by="internal">{{ \'STAFF.INTERNAL\' | translate }}</th>\n <th md-column md-order-by="disabled">{{ \'STAFF.DISABLED\' | translate }}</th>\n <th md-column md-order-by="blocked">{{ \'STAFF.BLOCKED\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.agents.rows.length">\n <td md-cell colspan="10">\n <div layout="row" layout-align="center center">\n <span translate="STAFF.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="agent" md-select-id="id" ng-repeat="agent in vm.agents.rows">\n <td md-cell ng-if="agent.userpic"><img class="avatar" alt="{{agent.name}}" ng-src="api/users/{{agent.id}}/avatar" /></td>\n <td md-cell ng-if="!agent.userpic"><img class="avatar" alt="{{agent.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="fullname font-weight-600">{{agent.fullname}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="name">{{agent.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="showWebBar">{{ agent.showWebBar | getOptionByValue: vm.showWebBarOptions }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="email">{{agent.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="phone">{{agent.phone}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="mobile">{{agent.mobile}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="internal">{{agent.internal}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="disabled">\n <md-icon md-colors="{color: {{agent.disabled ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{agent.disabled ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="blocked">\n <md-icon md-colors="{color: {{agent.blocked ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{agent.blocked ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(agent, $event )" translate="STAFF.EDIT_AGENT">\n Edit Agent\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(agent, $event )" translate="STAFF.TEAMADD_AGENT">\n teamadd Agent\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(agent, $event )" translate="STAFF.DELETE_AGENT">\n Delete Agent\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'STAFF.PAGE\' | translate}}:\', rowsPerPage: \'{{\'STAFF.ROWSPERPAGE\' | translate}}:\', of: \'{{\'STAFF.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.agents.count}}" md-on-paginate="vm.getAgents" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / AGENT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD AGENT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-agent-button" ng-click="vm.createOrEditAgent($event)" aria-label="add agent" translate translate-attr-aria-label="STAFF.ADD_AGENT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD AGENT BUTTON --\x3e\n</div>'),e.put("app/main/apps/staff/views/agents/create/dialog.html",'<md-dialog class="agent-dialog" aria-label="New Agent">\n <form name="agentForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="STAFF.FULLNAME">Fullname</label>\n <input type="text" name="fullname" ng-model="vm.agent.fullname" ng-required="true" autofocus>\n\n <div ng-messages="agentForm[\'fullname\'].$error" ng-show="agentForm[\'fullname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.FULLNAME_REQUIRED">Fullname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.USERNAME">Username</label>\n <input type="text" name="name" ng-model="vm.agent.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" ng-disabled="!vm.newAgent">\n\n <div class="hint"><span translate="STAFF.HELP.USERNAME"></span></div>\n <div ng-messages="agentForm[\'name\'].$error" ng-show="agentForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.USERNAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Username must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.agent.alias">\n\n <div ng-messages="agentForm[\'alias\'].$error" ng-show="agentForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.SHOWWEBCONTROL">ShowWebControl</label>\n <md-select name="showWebBar" ng-model="vm.agent.showWebBar">\n <md-option ng-value="0">Phonebar</md-option>\n <md-option ng-value="1">External</md-option>\n <md-option ng-value="2">WebRTC</md-option>\n </md-select>\n <div ng-messages="agentForm[\'showWebBar\'].$error" ng-show="agentForm[\'showWebBar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.SHOWWEBCONTROL_REQUIRED">ShowWebControl field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.agent.email" ng-required="true">\n\n <div ng-messages="agentForm[\'email\'].$error" ng-show="agentForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="STAFF.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.newAgent">\n <label translate="STAFF.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.agent.password" placeholder="Password" ng-pattern="vm.passwordPattern" translate translate-attr-placeholder="STAFF.PASSWORD" required>\n <div ng-messages="agentForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.newAgent && (vm.newAgent)">\n <label translate="STAFF.CONFIRM_PASSWORD">Confirm Password</label>\n <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword" required>\n <div ng-messages="agentForm.confirmPassword.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n </div>\n <div ng-message="passwordMatch">\n <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container ng-if="vm.newAgent" class="md-block">\n <md-switch ng-model="vm.agent.autointernal" aria-label="AutoInternal"><span translate="STAFF.AUTOINTERNAL">AutoInternal</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.agent.autointernal" class="md-block">\n <label translate="STAFF.INTERNAL">Internal</label>\n <input type="text" name="internal" ng-model="vm.agent.internal" ng-required="true" ng-disabled="!vm.newAgent">\n\n <div ng-messages="agentForm[\'internal\'].$error" ng-show="agentForm[\'internal\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.agent.description">\n\n <div ng-messages="agentForm[\'description\'].$error" ng-show="agentForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.newAgent" class="md-block">\n <md-switch ng-model="vm.agent.voicemail" aria-label="Voicemail"><span translate="STAFF.VOICEMAIL">Voicemail</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.showWebBar == 0" class="md-block">\n <md-switch ng-model="vm.agent.phoneBarRemoteControl" aria-label="RemoteControl"><span translate="STAFF.REMOTECONTROL">RemoteControl</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.phoneBarRemoteControl && vm.agent.showWebBar == 0" class="md-block">\n <label translate="STAFF.REMOTECONTROLPORT">RemoteControlPort</label>\n <input type="number" name="phoneBarRemoteControlPort" ng-model="vm.agent.phoneBarRemoteControlPort" value="9888" ng-required="true">\n\n <div ng-messages="agentForm[\'phoneBarRemoteControlPort\'].$error" ng-show="agentForm[\'phoneBarRemoteControlPort\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.REMOTECONTROLPORT_REQUIRED">RemoteControlPort field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.newUser" class="md-block">\n <md-switch ng-model="vm.agent.voicemail" aria-label="Voicemail"><span translate="STAFF.VOICEMAIL">Voicemail</span></md-switch>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newAgent" ng-click="vm.saveAgent()" class="send-button md-accent md-raised" ng-disabled="agentForm.$invalid || agentForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newAgent" ng-click="vm.addNewAgent()" class="send-button md-accent md-raised" ng-disabled="agentForm.$invalid" aria-label="ADD" translate="STAFF.ADD_AGENT" translate-attr-aria-label="STAFF.ADD_AGENT">\n ADD AGENT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newAgent" ng-click="vm.deleteAgent($event)" aria-label="DELETE" translate translate-attr-aria-label="STAFF.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="STAFF.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/agents/edit/changepassword/changepassword.html",'<md-dialog class="agent-dialog" aria-label="{{vm.name}}">\n <form name="agentForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ \'\n STAFF.CHANGE_PASSWORD\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block" ng-if="vm.currentUser.id == vm.agent.id">\n <label translate="STAFF.OLD_PASSWORD">Old Password</label>\n <input type="password" name="oldPassword" ng-model="vm.oldPassword" placeholder="Password" translate translate-attr-placeholder="STAFF.OLD_PASSWORD" required>\n <div ng-messages="agentForm.oldPassword.$error" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.NEW_PASSWORD">New Password</label>\n <input type="password" name="password" ng-model="vm.password" placeholder="Password" translate ng-pattern="vm.passwordPattern" translate-attr-placeholder="STAFF.NEW_PASSWORD" required>\n <div ng-messages="agentForm.password.$error" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is\n required</span>\n </div>\n\n\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.SECURE_PASSWORD_PATTERN">Must contain\n at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric\n character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n <div ng-message="oldPasswordMatch">\n <span translate="STAFF.ERRORS.PASSWORD_OLDPASSWORD_MATCH">New password must be different from old one</span>\n </div>\n\n\n\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CONFIRM_PASSWORD">Confirm Password</label>\n <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n <div ng-messages="agentForm.confirmPassword.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CONFIRM_REQUIRED">Confirm field is\n required</span>\n </div>\n <div ng-message="passwordMatch">\n <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did\n not match</span>\n </div>\n </div>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.savePassword()" class="send-button md-accent md-raised" ng-disabled="agentForm.$invalid || agentForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",'<md-dialog class="agent-dialog" aria-label="agent" ng-init="vm.onInit()">\n <form name="agentForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2>{{vm.title}}</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <md-input-container flex class="no-margin" ng-if="vm.agent.role === \'agent\' && vm.channel === \'voice\'">\n <label translate="STAFF.PENALTY">Penalty</label>\n <input name="penalty" type="number" ng-model="vm.penalty" min="0" placeholder="0" required onkeypress="return event.charCode >= 48 && event.charCode <= 57 && this.value.length < 3">\n <div ng-messages="agentForm.penalty.$error" role="alert" multiple>\n <div ng-message="required">\n <span>{{ \'VOICE.ERRORS.PENALTY_REQUIRED\' | translate }}</span>\n </div>\n </div>\n </md-input-container>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" add-disabled="vm.channel === \'voice\' && vm.penalty === undefined"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveQueues()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/agents/edit/teamadd/teamadd.html",'<md-dialog class="agent-dialog" aria-label="agent" ng-init="vm.onInit()">\n <form name="agentForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="STAFF.TEAMS_ASSOCIATION">Teams Association</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/agents/edit/view.html",'<div id="staff-agent" class="page-layout simple tabbed" layout="column">\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-agents-button md-icon-button" aria-label="Go to agents" ng-click="vm.gotoAgents()" translate translate-attr-aria-label="STAFF.GO_TO_AGENTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="agent-image" hide-xs>\n <img ng-src="assets/images/business/agents.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.agent.id}}\n <span ng-if="vm.agent.name">{{vm.agent.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="STAFF.CREATED_AT"></span> <span>{{vm.agent.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div ng-cloak>\n <md-fab-speed-dial md-direction="left" class="md-scale md-fab">\n <md-fab-trigger>\n <md-button aria-label="menu" class="md-fab md-primary md-icon-button">\n <md-tooltip md-direction="top" md-visible="false"><span translate="STAFF.CHANNELS">Channels</span></md-tooltip>\n <md-icon md-font-icon="icon-stackoverflow" aria-label="queueadd"></md-icon>\n </md-button>\n </md-fab-trigger>\n <md-fab-actions>\n <md-button aria-label="voice" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'voice\', $event, \'inbound\')">\n <md-tooltip md-direction="bottom" md-visible="false"><span translate="VOICE.VOICE">Voice</span></md-tooltip>\n <md-icon md-font-icon="icon-phone" aria-label="voice"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.dialer" aria-label="motion bull" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'voice\', $event, \'outbound\')">\n <md-tooltip md-direction="bottom" md-visible="false"><span translate="MOTIONDIALER.MOTIONDIALER">Motion Bull</span></md-tooltip>\n <md-icon md-font-icon="icon-fire" aria-label="motion bull"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.chat" aria-label="chat" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'chat\', $event)">\n <md-tooltip md-direction="bottom" md-visible="false"><span translate="CHAT.CHAT">Chat</span></md-tooltip>\n <md-icon md-font-icon="icon-hangouts" aria-label="chat"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.mail" aria-label="mail" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'mail\', $event)">\n <md-tooltip md-direction="bottom" md-visible="false"><span translate="MAIL.MAIL">Email</span></md-tooltip>\n <md-icon md-font-icon="icon-email" aria-label="mail"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.messaging" aria-label="sms" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'sms\', $event)">\n <md-tooltip md-direction="bottom" md-visible="false"><span translate="SMS.SMS">Sms</span></md-tooltip>\n <md-icon md-font-icon="icon-message-text" aria-label="sms"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.openchannel" aria-label="openchannel" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'openchannel\', $event)">\n <md-tooltip md-direction="bottom" md-visible="false"><span translate="OPENCHANNEL.OPENCHANNEL">Openchannel</span></md-tooltip>\n <md-icon md-font-icon="icon-google-earth" aria-label="openchannel"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.fax" aria-label="fax" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'fax\', $event)">\n <md-tooltip md-direction="bottom" md-visible="false"><span translate="FAX.FAX">Fax</span></md-tooltip>\n <md-icon md-font-icon="icon-deskphone" aria-label="fax"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.whatsapp" aria-label="whatsapp" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'whatsapp\', $event)">\n <md-tooltip md-direction="bottom" md-visible="false"><span translate="WHATSAPP.WHATSAPP">whatsapp</span></md-tooltip>\n <md-icon md-font-icon="icon-whatsapp" aria-label="whatsapp"></md-icon>\n </md-button>\n </md-fab-actions>\n </md-fab-speed-dial>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.teamadddialog(vm.agent, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n <md-tooltip><span translate="STAFF.TEAMADD_AGENT"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.changepassworddialog(vm.agent, $event)" class="md-fab md-warn md-icon-button" aria-label="changepassword">\n <md-tooltip><span translate="STAFF.CHANGEPASSWORD_AGENT"></span></md-tooltip>\n <md-icon md-font-icon="icon-key-variant"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveAgent()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(personal_infoForm.$invalid) || (security_suiteForm.$invalid) || (change_avatarForm.$invalid) || (generalForm.$invalid) || (capacityForm.$invalid) || (settingsForm.$invalid) || (remote_controlForm.$invalid) || (sipForm.$invalid) || (callforwardingForm.$invalid) || (settings_webrtcForm.$invalid) || (sip_webrtcForm.$invalid) || (general_permissionsForm.$invalid) || (download_permissionsForm.$invalid) || (permissionsForm.$invalid)" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="agent-detail-form-container personal_info md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.PERSONAL_INFO">PERSONAL_INFO</div>\n </div>\n <form name="personal_infoForm" novalidate>\n <md-input-container class="md-block">\n <label translate="STAFF.FULLNAME">Fullname</label>\n <input type="text" name="fullname" ng-model="vm.agent.fullname" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'fullname\'].$error" ng-show="personal_infoForm[\'fullname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.FULLNAME_REQUIRED">Fullname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.USERNAME">Username</label>\n <input type="text" name="name" ng-model="vm.agent.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" disabled>\n\n <div class="hint"><span translate="STAFF.HELP.USERNAME"></span></div>\n <div ng-messages="personal_infoForm[\'name\'].$error" ng-show="personal_infoForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.USERNAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Username must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.agent.alias" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'alias\'].$error" ng-show="personal_infoForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.SHOWWEBCONTROL">ShowWebControl</label>\n <md-select name="showWebBar" ng-model="vm.agent.showWebBar" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="0">Phonebar</md-option>\n <md-option ng-value="1">External</md-option>\n <md-option ng-value="2">WebRTC</md-option>\n </md-select>\n <div ng-messages="personal_infoForm[\'showWebBar\'].$error" ng-show="personal_infoForm[\'showWebBar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.SHOWWEBCONTROL_REQUIRED">ShowWebControl field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.agent.email" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'email\'].$error" ng-show="personal_infoForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="STAFF.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.agent.phone" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'phone\'].$error" ng-show="personal_infoForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.MOBILE">Mobile</label>\n <input type="text" name="mobile" ng-model="vm.agent.mobile" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'mobile\'].$error" ng-show="personal_infoForm[\'mobile\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.MOBILE_REQUIRED">Mobile field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.agent.showWebBar == 1" class="md-block">\n <md-switch ng-model="vm.agent.hotdesk" aria-label="Hotdesk" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.HOTDESK">Hotdesk</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.loginInPause" aria-label="LoginInPause" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.LOGININPAUSE">LoginInPause</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.agent.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'description\'].$error" ng-show="personal_infoForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="agent-detail-form-container security_suite md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.SECURITY_SUITE">SECURITY_SUITE</div>\n </div>\n <form name="security_suiteForm" novalidate>\n <md-input-container ng-if="vm.agent.passwordResetAt != null" class="md-block">\n <label translate="STAFF.LAST_PASSWORD_RESET_AT">Last_Password_Reset_At</label>\n <input type="text" name="passwordResetAt" ng-model="vm.agent.passwordResetAt" autofocus disabled>\n\n <div class="hint"><span translate="STAFF.HELP.LAST_PASSWORD_RESET_AT"></span></div>\n <div ng-messages="security_suiteForm[\'passwordResetAt\'].$error" ng-show="security_suiteForm[\'passwordResetAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.LAST_PASSWORD_RESET_AT_REQUIRED">Last_Password_Reset_At field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.agent.passwordResetAt == null" class="md-block">\n <label translate="STAFF.NO_PASSWORD_CHANGE">No_Password_Change</label>\n <input type="text" name="passwordResetAt" ng-model="vm.agent.passwordResetAt" disabled>\n\n <div ng-messages="security_suiteForm[\'passwordResetAt\'].$error" ng-show="security_suiteForm[\'passwordResetAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NO_PASSWORD_CHANGE_REQUIRED">No_Password_Change field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.disabled" aria-label="Disabled" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.DISABLED">Disabled</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.DISABLED"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.agent.disabled == 0" class="md-block">\n <md-switch ng-model="vm.agent.blocked" aria-label="Blocked" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.BLOCKED">Blocked</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.BLOCKED"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.privacyEnabled" aria-label="Mask_Sensitive_Data" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.MASK_SENSITIVE_DATA">Mask_Sensitive_Data</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.MASK_SENSITIVE_DATA"></span></div>\n </md-input-container>\n\n </form>\n </div>\n <div class="agent-detail-form-container change_avatar md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.CHANGE_AVATAR">CHANGE_AVATAR</div>\n </div>\n <div ng-controller="Agentchange_avatarController as vm_ca" ng-init="vm_ca.init(vm.agent, vm.crudPermissions)" class="agent-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="agent-image-uploader" flow-init="vm_ca.ngFlowOptions" flow-name="vm_ca.ngFlow.flow" flow-files-submitted="vm_ca.upload()" flow-file-added="vm_ca.fileAdded($file)" flow-file-success="vm_ca.fileSuccess($file, $message)" flow-complete="vm_ca.uploadComplete()" flow-drop flow-drag-enter="vm_ca.dropping=true" flow-drag-leave="vm_ca.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn ng-disabled="!vm_ca.crudPermissions.canEdit">\n Upload\n </md-button>\n <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG - Max. 8MB</span>\n </div>\n\n <div layout="row" layout-align="start start" layout-wrap>\n <div ng-repeat="change_avatarimage in vm_ca.agent.images" ng-switch="change_avatarimage.type">\n <div class="agent-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n <div class="overlay" layout="column" layout-align="center center">\n <md-progress-linear md-mode="determinate" value="{{change_avatarimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="change_avatarimage.file">\n </div>\n\n <div class="agent-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{change_avatarimage.url}}">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.VOICE">VOICE</span>\n </md-tab-label>\n <md-tab-body>\n <div class="agent-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container ng-if="!vm.agent.autointernal" class="md-block">\n <label translate="STAFF.INTERNAL">Internal</label>\n <input type="text" name="internal" ng-model="vm.agent.internal" ng-required="true" autofocus disabled>\n\n <div ng-messages="generalForm[\'internal\'].$error" ng-show="generalForm[\'internal\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.agent.showWebBar != 2" class="md-block">\n <label translate="STAFF.TRANSPORT">Transport</label>\n <md-select name="transport" ng-model="vm.agent.transport" multiple ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'udp\'">udp</md-option>\n <md-option ng-value="\'tcp\'">tcp</md-option>\n <md-option ng-value="\'ws\'" ng-if="vm.agent.showWebBar == 1">ws</md-option>\n <md-option ng-value="\'wss\'" ng-if="vm.agent.showWebBar == 1">wss</md-option>\n <md-option ng-value="\'tls\'" ng-if="vm.agent.showWebBar == 1">tls</md-option>\n </md-select>\n <div class="hint"><span translate="STAFF.HELP.TRANSPORT"></span></div>\n <div ng-messages="generalForm[\'transport\'].$error" ng-show="generalForm[\'transport\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.TRANSPORT_REQUIRED">Transport field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.HOST">Host</label>\n <input type="text" name="host" ng-model="vm.agent.host" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.HOST"></span></div>\n <div ng-messages="generalForm[\'host\'].$error" ng-show="generalForm[\'host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.HOST_REQUIRED">Host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.NAT">NAT</label>\n <md-select name="nat" ng-model="vm.agent.nat" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'force_rport\'">force_rport</md-option>\n <md-option ng-value="\'comedia\'">comedia</md-option>\n <md-option ng-value="\'yes\'">yes</md-option>\n <md-option ng-value="\'no\'">no</md-option>\n <md-option ng-value="\'never\'">never</md-option>\n <md-option ng-value="\'route\'">route</md-option>\n </md-select>\n <div class="hint"><span translate="STAFF.HELP.NAT"></span></div>\n <div ng-messages="generalForm[\'nat\'].$error" ng-show="generalForm[\'nat\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NAT_REQUIRED">NAT field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.TYPE">Type</label>\n <md-select name="type" ng-model="vm.agent.type" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'friend\'">Friend</md-option>\n <md-option ng-value="\'user\'">User</md-option>\n <md-option ng-value="\'peer\'">Peer</md-option>\n </md-select>\n <div class="hint"><span translate="STAFF.HELP.TYPE"></span></div>\n <div ng-messages="generalForm[\'type\'].$error" ng-show="generalForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.ALLOWCODECS">AllowCodecs</label>\n <md-select name="allow" ng-model="vm.agent.allow" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'ulaw\'">ulaw</md-option>\n <md-option ng-value="\'alaw\'">alaw</md-option>\n <md-option ng-value="\'gsm\'">gsm</md-option>\n <md-option ng-value="\'g722\'">g722</md-option>\n <md-option ng-value="\'g729\'">g729</md-option>\n <md-option ng-value="\'opus\'">opus</md-option>\n <md-option ng-value="\'h264\'">h264</md-option>\n </md-select>\n <div class="hint"><span translate="STAFF.HELP.ALLOWCODECS"></span></div>\n <div ng-messages="generalForm[\'allow\'].$error" ng-show="generalForm[\'allow\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ALLOWCODECS_REQUIRED">AllowCodecs field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CALLERID">CallerId</label>\n <input type="text" name="callerid" ng-model="vm.agent.callerid" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'callerid\'].$error" ng-show="generalForm[\'callerid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CALLERID_REQUIRED">CallerId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.agent.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts" ng-disabled="context.canSelect === false">{{ context.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'context\'].$error" ng-show="generalForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CALLGROUP">Callgroup</label>\n <input type="text" name="callgroup" ng-model="vm.agent.callgroup" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.CALLGROUP"></span></div>\n <div ng-messages="generalForm[\'callgroup\'].$error" ng-show="generalForm[\'callgroup\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CALLGROUP_REQUIRED">Callgroup field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.PICKUPGROUP">Pickupgroup</label>\n <input type="text" name="pickupgroup" ng-model="vm.agent.pickupgroup" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.PICKUPGROUP"></span></div>\n <div ng-messages="generalForm[\'pickupgroup\'].$error" ng-show="generalForm[\'pickupgroup\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PICKUPGROUP_REQUIRED">Pickupgroup field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.chanspy" aria-label="chanSpy" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.CHANSPY">chanSpy</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.VIDEOSUPPORT">Videosupport</label>\n <md-select name="videosupport" ng-model="vm.agent.videosupport" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">Yes</md-option>\n <md-option ng-value="\'no\'">No</md-option>\n <md-option ng-value="\'always\'">Always</md-option>\n </md-select>\n <div ng-messages="generalForm[\'videosupport\'].$error" ng-show="generalForm[\'videosupport\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.VIDEOSUPPORT_REQUIRED">Videosupport field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.MONITOREXTENSION">MonitorExtension</label>\n <md-select name="extensionMonitor" ng-model="vm.agent.extensionMonitor" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">Inactive</md-option>\n <md-option ng-value="\'wav\'">wav</md-option>\n <md-option ng-value="\'WAV\'">wav49</md-option>\n <md-option ng-value="\'gsm\'">gsm</md-option>\n </md-select>\n <div ng-messages="generalForm[\'extensionMonitor\'].$error" ng-show="generalForm[\'extensionMonitor\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.MONITOREXTENSION_REQUIRED">MonitorExtension field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.OTHER_CHANNELS">OTHER_CHANNELS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="agent-detail-form-container capacity md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.CAPACITY">CAPACITY</div>\n </div>\n <form name="capacityForm" novalidate>\n <md-input-container ng-if="vm.license.chat" class="md-block">\n <label translate="STAFF.CHATCAPACITY">ChatCapacity</label>\n <input type="number" name="chatCapacity" ng-model="vm.agent.chatCapacity" min="0" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.CHATCAPACITY"></span></div>\n <div ng-messages="capacityForm[\'chatCapacity\'].$error" ng-show="capacityForm[\'chatCapacity\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CHATCAPACITY_REQUIRED">ChatCapacity field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.CHATCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">ChatCapacity must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.mail" class="md-block">\n <label translate="STAFF.MAILCAPACITY">MailCapacity</label>\n <input type="number" name="mailCapacity" ng-model="vm.agent.mailCapacity" min="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.MAILCAPACITY"></span></div>\n <div ng-messages="capacityForm[\'mailCapacity\'].$error" ng-show="capacityForm[\'mailCapacity\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.MAILCAPACITY_REQUIRED">MailCapacity field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.MAILCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MailCapacity must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.messaging" class="md-block">\n <label translate="STAFF.SMSCAPACITY">SMSCapacity</label>\n <input type="number" name="smsCapacity" ng-model="vm.agent.smsCapacity" min="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.SMSCAPACITY"></span></div>\n <div ng-messages="capacityForm[\'smsCapacity\'].$error" ng-show="capacityForm[\'smsCapacity\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.SMSCAPACITY_REQUIRED">SMSCapacity field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.SMSCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">SMSCapacity must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.openchannel" class="md-block">\n <label translate="STAFF.OPENCHANNELCAPACITY">OpenchannelCapacity</label>\n <input type="number" name="openchannelCapacity" ng-model="vm.agent.openchannelCapacity" min="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.OPENCHANNELCAPACITY"></span></div>\n <div ng-messages="capacityForm[\'openchannelCapacity\'].$error" ng-show="capacityForm[\'openchannelCapacity\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.OPENCHANNELCAPACITY_REQUIRED">OpenchannelCapacity field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.OPENCHANNELCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">OpenchannelCapacity must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.fax" class="md-block">\n <label translate="STAFF.FAXCAPACITY">FaxCapacity</label>\n <input type="number" name="faxCapacity" ng-model="vm.agent.faxCapacity" min="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.FAXCAPACITY"></span></div>\n <div ng-messages="capacityForm[\'faxCapacity\'].$error" ng-show="capacityForm[\'faxCapacity\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.FAXCAPACITY_REQUIRED">FaxCapacity field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.FAXCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">FaxCapacity must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.whatsapp" class="md-block">\n <label translate="STAFF.WHATSAPPCAPACITY">WhatsappCapacity</label>\n <input type="number" name="whatsappCapacity" ng-model="vm.agent.whatsappCapacity" min="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.WHATSAPPCAPACITY"></span></div>\n <div ng-messages="capacityForm[\'whatsappCapacity\'].$error" ng-show="capacityForm[\'whatsappCapacity\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.WHATSAPPCAPACITY_REQUIRED">WhatsappCapacity field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.WHATSAPPCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WhatsappCapacity must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab ng-if="vm.agent.showWebBar == 0">\n <md-tab-label>\n <span translate="STAFF.MOTIONBAR">MOTIONBAR</span>\n </md-tab-label>\n <md-tab-body>\n <div class="agent-detail-form-container settings md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.SETTINGS">SETTINGS</div>\n </div>\n <form name="settingsForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarEnableSettings" aria-label="EnableSettings" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLESETTINGS">EnableSettings</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarAutoAnswer" aria-label="AutoAnswer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.AUTOANSWER">AutoAnswer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.phoneBarAutoAnswer" class="md-block">\n <label translate="STAFF.AUTOANSWERDELAY">AutoAnswerDelay</label>\n <input type="number" name="phoneBarAutoAnswerDelay" ng-model="vm.agent.phoneBarAutoAnswerDelay" min="0" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="settingsForm[\'phoneBarAutoAnswerDelay\'].$error" ng-show="settingsForm[\'phoneBarAutoAnswerDelay\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.AUTOANSWERDELAY_REQUIRED">AutoAnswerDelay field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.AUTOANSWERDELAY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AutoAnswerDelay must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarRingInUse" aria-label="RingInUse" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.RINGINUSE">RingInUse</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarEnableRecording" aria-label="EnableRecording" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLERECORDING">EnableRecording</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarEnableDtmfTone" aria-label="EnableDtmfTone" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLEDTMFTONE">EnableDtmfTone</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarDnd" aria-label="Dnd" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.DND">Dnd</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarUnansweredCallBadge" aria-label="UnansweredCallBadge" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.UNANSWEREDCALLBADGE">UnansweredCallBadge</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.showWebBar == 0" class="md-block">\n <md-switch ng-model="vm.agent.phoneBarEnableJaws" aria-label="EnableJawsIntegration" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLEJAWSINTEGRATION">EnableJawsIntegration</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.showWebBar == 0 && vm.license.screenrecording" class="md-block">\n <md-switch ng-change="vm.onEnableScreenRecordingByAgentSelection()" ng-model="vm.agent.phoneBarEnableScreenRecordingByAgent" aria-label="EnableScreenRecordingByAgent" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLESCREENRECORDINGBYAGENT">EnableScreenRecordingByAgent</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.showWebBar == 0 && vm.license.screenrecording" class="md-block">\n <md-switch ng-change="vm.onEnableAutomaticScreenRecordingSelection()" ng-model="vm.agent.phoneBarEnableAutomaticScreenRecording" aria-label="EnableAutomaticScreenRecording" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLEAUTOMATICSCREENRECORDING">EnableAutomaticScreenRecording</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.ENABLEAUTOMATICSCREENRECORDING"></span></div>\n </md-input-container>\n </form>\n </div>\n <div class="agent-detail-form-container remote_control md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.REMOTE_CONTROL">REMOTE_CONTROL</div>\n </div>\n <form name="remote_controlForm" novalidate>\n <md-input-container ng-if="vm.agent.showWebBar == 0" class="md-block">\n <md-switch ng-model="vm.agent.phoneBarRemoteControl" aria-label="RemoteControl" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.REMOTECONTROL">RemoteControl</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.phoneBarRemoteControl && vm.agent.showWebBar == 0" class="md-block">\n <label translate="STAFF.REMOTECONTROLPORT">RemoteControlPort</label>\n <input type="number" name="phoneBarRemoteControlPort" ng-model="vm.agent.phoneBarRemoteControlPort" value="9888" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="remote_controlForm[\'phoneBarRemoteControlPort\'].$error" ng-show="remote_controlForm[\'phoneBarRemoteControlPort\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.REMOTECONTROLPORT_REQUIRED">RemoteControlPort field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="agent-detail-form-container sip md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.SIP">SIP</div>\n </div>\n <form name="sipForm" novalidate>\n <md-input-container class="md-block">\n <label translate="STAFF.SIPEXPIRES">SipExpires</label>\n <input type="number" name="phoneBarExpires" ng-model="vm.agent.phoneBarExpires" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.SIPEXPIRES"></span></div>\n <div ng-messages="sipForm[\'phoneBarExpires\'].$error" ng-show="sipForm[\'phoneBarExpires\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.SIPEXPIRES_REQUIRED">SipExpires field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.SIPPORT">SipPort</label>\n <input type="number" name="phoneBarListenPort" ng-model="vm.agent.phoneBarListenPort" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.SIPPORT"></span></div>\n <div ng-messages="sipForm[\'phoneBarListenPort\'].$error" ng-show="sipForm[\'phoneBarListenPort\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.SIPPORT_REQUIRED">SipPort field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="agent-detail-form-container callforwarding md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.CALLFORWARDING">CALLFORWARDING</div>\n </div>\n <form name="callforwardingForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarUnconditional" aria-label="Unconditional" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.UNCONDITIONAL">Unconditional</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.phoneBarUnconditional" class="md-block">\n <label translate="STAFF.UNCONDITIONALNUMBER">UnconditionalNumber</label>\n <input type="text" name="phoneBarUnconditionalNumber" ng-model="vm.agent.phoneBarUnconditionalNumber" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="callforwardingForm[\'phoneBarUnconditionalNumber\'].$error" ng-show="callforwardingForm[\'phoneBarUnconditionalNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.UNCONDITIONALNUMBER_REQUIRED">UnconditionalNumber field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab ng-if="vm.agent.showWebBar == 2">\n <md-tab-label>\n <span translate="STAFF.WEBRTC">WEBRTC</span>\n </md-tab-label>\n <md-tab-body>\n <div class="agent-detail-form-container settings_webrtc md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.SETTINGS_WEBRTC">SETTINGS_WEBRTC</div>\n </div>\n <form name="settings_webrtcForm" novalidate>\n <md-input-container class="md-block">\n <label translate="STAFF.DTLSCERTFILE">dtlscertfile</label>\n <input type="text" name="dtlscertfile" ng-model="vm.agent.dtlscertfile" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.DTLSCERTFILE"></span></div>\n <div ng-messages="settings_webrtcForm[\'dtlscertfile\'].$error" ng-show="settings_webrtcForm[\'dtlscertfile\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DTLSCERTFILE_REQUIRED">dtlscertfile field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.DTLSPRIVATEKEY">dtlsprivatekey</label>\n <input type="text" name="dtlsprivatekey" ng-model="vm.agent.dtlsprivatekey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.DTLSPRIVATEKEY"></span></div>\n <div ng-messages="settings_webrtcForm[\'dtlsprivatekey\'].$error" ng-show="settings_webrtcForm[\'dtlsprivatekey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DTLSPRIVATEKEY_REQUIRED">dtlsprivatekey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.WSS_PORT">WSS_Port</label>\n <input type="number" name="wssPort" ng-model="vm.agent.wssPort" min="0" value="8089" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.WSS_PORT"></span></div>\n <div ng-messages="settings_webrtcForm[\'wssPort\'].$error" ng-show="settings_webrtcForm[\'wssPort\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.WSS_PORT_REQUIRED">WSS_Port field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.WSS_PORT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WSS_Port must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarEnableSettings" aria-label="EnableSettings" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLESETTINGS">EnableSettings</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarAutoAnswer" aria-label="AutoAnswer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.AUTOANSWER">AutoAnswer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.phoneBarAutoAnswer" class="md-block">\n <label translate="STAFF.AUTOANSWERDELAY">AutoAnswerDelay</label>\n <input type="number" name="phoneBarAutoAnswerDelay" ng-model="vm.agent.phoneBarAutoAnswerDelay" min="0" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="settings_webrtcForm[\'phoneBarAutoAnswerDelay\'].$error" ng-show="settings_webrtcForm[\'phoneBarAutoAnswerDelay\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.AUTOANSWERDELAY_REQUIRED">AutoAnswerDelay field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.AUTOANSWERDELAY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AutoAnswerDelay must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarEnableRecording" aria-label="EnableRecording" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLERECORDING">EnableRecording</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarEnableDtmfTone" aria-label="EnableDtmfTone" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLEDTMFTONE">EnableDtmfTone</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarDnd" aria-label="Dnd" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.DND">Dnd</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.ignorePauseForPreviewCalls" aria-label="Ignore agent break status for preview calls" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.IGNORE_AGENT_BREAK_STATUS_FOR_PREVIEW_CALLS">Ignore agent break status for preview calls</span></md-switch>\n </md-input-container>\n </form>\n </div>\n <div class="agent-detail-form-container sip_webrtc md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.SIP_WEBRTC">SIP_WEBRTC</div>\n </div>\n <form name="sip_webrtcForm" novalidate>\n <md-input-container class="md-block">\n <label translate="STAFF.SIPEXPIRES">SipExpires</label>\n <input type="number" name="phoneBarExpires" ng-model="vm.agent.phoneBarExpires" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.SIPEXPIRES"></span></div>\n <div ng-messages="sip_webrtcForm[\'phoneBarExpires\'].$error" ng-show="sip_webrtcForm[\'phoneBarExpires\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.SIPEXPIRES_REQUIRED">SipExpires field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.PERMISSIONS">PERMISSIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="agent-detail-form-container general_permissions md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.GENERAL_PERMISSIONS">GENERAL_PERMISSIONS</div>\n </div>\n <form name="general_permissionsForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.allowmessenger" aria-label="EnableMessenger" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLEMESSENGER">EnableMessenger</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarPrefixRequired" aria-label="PrefixRequired" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.PREFIXREQUIRED">PrefixRequired</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.selectRecallMeCampaign" aria-label="Select_RecallMe_Campaign" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.SELECT_RECALLME_CAMPAIGN">Select_RecallMe_Campaign</span></md-switch>\n </md-input-container>\n\n </form>\n </div>\n <div class="agent-detail-form-container download_permissions md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.DOWNLOAD_PERMISSIONS">DOWNLOAD_PERMISSIONS</div>\n </div>\n <form name="download_permissionsForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.downloadAttachments" aria-label="Attachments" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ATTACHMENTS">Attachments</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.downloadOmnichannelInteractions" aria-label="Omnichannel_Interactions" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.OMNICHANNEL_INTERACTIONS">Omnichannel_Interactions</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.downloadVoiceRecordings" aria-label="Voice_Recordings" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.VOICE_RECORDINGS">Voice_Recordings</span></md-switch>\n </md-input-container>\n\n </form>\n </div>\n <div class="agent-detail-form-container permissions md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.PERMISSIONS">PERMISSIONS</div>\n </div>\n <div ng-controller="AgentPermissionsController as vm_pc" ng-init="vm_pc.init(vm.agent, vm.crudPermissions)" class="agent-detail-form-container">\n <md-list ng-repeat="father in vm_pc.navigation[0].children" ng-include="\'permission-nested.html\'" ng-if="vm_pc.agent.role !== \'admin\' && !father.hidden()"></md-list>\n\n \x3c!-- Nested navigation template --\x3e\n <script type="text/ng-template" id="permission-nested.html">\n <md-list-item>\n <md-icon md-font-icon="{{father.icon}}"></md-icon>\n <p translate="{{father.translate}}">{{ father.title }}</p>\n <md-switch class="md-secondary" ng-model="father.enabled" ng-change="vm_pc.onChange(father)" ng-init="father.enabled = vm_pc.agent.permissions.includes(father.id)" \n ng-disabled="!vm_pc.crudPermissions.canEdit"></md-switch>\n </md-list-item>\n\n <md-divider></md-divider>\n\n <md-list>\n <md-list-item ng-repeat="child in father.children" ng-if="child.id !== 201">\n <md-icon ng-if="child.icon" md-font-icon="{{child.icon}}"></md-icon>\n <p translate="{{child.translate}}">{{ child.title }}</p>\n <md-switch ng-model="child.enabled" ng-change="vm_pc.onChange(father, child)" ng-init="child.enabled = vm_pc.agent.permissions.includes(child.id)"\n ng-disabled="!vm_pc.crudPermissions.canEdit"></md-switch>\n </md-list-item>\n </md-list>\n <\/script>\n \x3c!-- / Nested navigation template --\x3e\n\n <span ng-if="vm_pc.agent.role === \'admin\'" class="md-headline" translate="STAFF.ALL_MODULES_AVAILABLE">All modules are already available.</span>\n\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/staff/views/teams/create/dialog.html",'<md-dialog class="team-dialog" aria-label="New Team">\n <form name="teamForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="STAFF.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.team.name" ng-required="true" autofocus>\n\n <div ng-messages="teamForm[\'name\'].$error" ng-show="teamForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.team.description">\n\n <div ng-messages="teamForm[\'description\'].$error" ng-show="teamForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newTeam" ng-click="vm.saveTeam()" class="send-button md-accent md-raised" ng-disabled="teamForm.$invalid || teamForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newTeam" ng-click="vm.addNewTeam()" class="send-button md-accent md-raised" ng-disabled="teamForm.$invalid" aria-label="ADD" translate="STAFF.ADD_TEAM" translate-attr-aria-label="STAFF.ADD_TEAM">\n ADD TEAM\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newTeam" ng-click="vm.deleteTeam($event)" aria-label="DELETE" translate translate-attr-aria-label="STAFF.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="STAFF.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/teams/edit/agentadd/agentadd.html",'<md-dialog class="team-dialog" aria-label="team" ng-init="vm.onInit()">\n <form name="teamForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="STAFF.AGENTADD_TEAM">Add Agent to team</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/teams/teams.html",'<div id="teams" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-account-multiple" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="STAFF.TEAMS">Teams</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="STAFF.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedTeams.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedTeams =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="STAFF.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-teams-count">\n <span>{{vm.selectedTeams.length}}</span>\n <span translate="STAFF.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="STAFF.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllTeams()" translate="STAFF.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectTeams()" translate="STAFF.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedTeams" csv-label="true" filename="teams.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedTeams($event)" aria-label="delete selected" translate translate-attr-label="STAFF.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- TEAM TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedTeams" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTeams">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'STAFF.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'STAFF.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'STAFF.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.teams.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="STAFF.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="team" md-select-id="id" ng-repeat="team in vm.teams.rows">\n <td md-cell ng-if="team.userpic"><img class="avatar" alt="{{team.name}}" ng-src="api/users/{{team.id}}/avatar" /></td>\n <td md-cell ng-if="!team.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{team.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditTeam($event, team)" md-cell class="id ">{{team.id}}</td>\n <td ng-click="vm.createOrEditTeam($event, team)" md-cell class="name ">{{team.name}}</td>\n <td ng-click="vm.createOrEditTeam($event, team)" md-cell class="description ">{{team.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(team, $event )" translate="STAFF.EDIT_TEAM">\n Edit Team\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(team, $event )" translate="STAFF.AGENTADD_TEAM">\n AgentAdd Team\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(team, $event )" translate="STAFF.DELETE_TEAM">\n Delete Team\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'STAFF.PAGE\' | translate}}:\', rowsPerPage: \'{{\'STAFF.ROWSPERPAGE\' | translate}}:\', of: \'{{\'STAFF.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.teams.count}}" md-on-paginate="vm.getTeams" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / TEAM TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD TEAM BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-team-button" ng-click="vm.createOrEditTeam($event)" aria-label="add team" translate translate-attr-aria-label="STAFF.ADD_TEAM">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD TEAM BUTTON --\x3e\n</div>'),e.put("app/main/apps/staff/views/telephones/create/dialog.html",'<md-dialog class="telephone-dialog" aria-label="New Telephone">\n <form name="telephoneForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="STAFF.ACCOUNTNAME">Accountname</label>\n <input type="text" name="fullname" ng-model="vm.telephone.fullname" ng-required="true" autofocus>\n\n <div ng-messages="telephoneForm[\'fullname\'].$error" ng-show="telephoneForm[\'fullname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ACCOUNTNAME_REQUIRED">Accountname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.USERNAME">Username</label>\n <input type="text" name="name" ng-model="vm.telephone.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" ng-disabled="!vm.newTelephone">\n\n <div class="hint"><span translate="STAFF.HELP.USERNAME"></span></div>\n <div ng-messages="telephoneForm[\'name\'].$error" ng-show="telephoneForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.USERNAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Username must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.telephone.email" ng-required="true">\n\n <div ng-messages="telephoneForm[\'email\'].$error" ng-show="telephoneForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="STAFF.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.newTelephone">\n <label translate="STAFF.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.telephone.password" placeholder="Password" ng-pattern="vm.passwordPattern" translate translate-attr-placeholder="STAFF.PASSWORD" required>\n <div ng-messages="telephoneForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.newTelephone && (vm.newTelephone)">\n <label translate="STAFF.CONFIRM_PASSWORD">Confirm Password</label>\n <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword" required>\n <div ng-messages="telephoneForm.confirmPassword.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n </div>\n <div ng-message="passwordMatch">\n <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.telephone.description">\n\n <div ng-messages="telephoneForm[\'description\'].$error" ng-show="telephoneForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.newTelephone" class="md-block">\n <md-switch ng-model="vm.telephone.autointernal" aria-label="AutoInternal"><span translate="STAFF.AUTOINTERNAL">AutoInternal</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.telephone.autointernal" class="md-block">\n <label translate="STAFF.INTERNAL">Internal</label>\n <input type="text" name="internal" ng-model="vm.telephone.internal" ng-required="true" ng-disabled="!vm.newTelephone">\n\n <div ng-messages="telephoneForm[\'internal\'].$error" ng-show="telephoneForm[\'internal\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.newTelephone" class="md-block">\n <md-switch ng-model="vm.telephone.voicemail" aria-label="Voicemail"><span translate="STAFF.VOICEMAIL">Voicemail</span></md-switch>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newTelephone" ng-click="vm.saveTelephone()" class="send-button md-accent md-raised" ng-disabled="telephoneForm.$invalid || telephoneForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newTelephone" ng-click="vm.addNewTelephone()" class="send-button md-accent md-raised" ng-disabled="telephoneForm.$invalid" aria-label="ADD" translate="STAFF.ADD_TELEPHONE" translate-attr-aria-label="STAFF.ADD_TELEPHONE">\n ADD TELEPHONE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newTelephone" ng-click="vm.deleteTelephone($event)" aria-label="DELETE" translate translate-attr-aria-label="STAFF.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="STAFF.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/telephones/edit/changepassword/changepassword.html",'<md-dialog class="telephone-dialog" aria-label="{{vm.name}}">\n <form name="telephoneForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ \'\n STAFF.CHANGE_PASSWORD\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block" ng-if="vm.currentUser.id == vm.telephone.id">\n <label translate="STAFF.OLD_PASSWORD">Old Password</label>\n <input type="password" name="oldPassword" ng-model="vm.oldPassword" placeholder="Password" translate translate-attr-placeholder="STAFF.OLD_PASSWORD" required>\n <div ng-messages="telephoneForm.oldPassword.$error" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.NEW_PASSWORD">New Password</label>\n <input type="password" name="password" ng-model="vm.password" placeholder="Password" translate ng-pattern="vm.passwordPattern" translate-attr-placeholder="STAFF.NEW_PASSWORD" required>\n <div ng-messages="telephoneForm.password.$error" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is\n required</span>\n </div>\n\n\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.SECURE_PASSWORD_PATTERN">Must contain\n at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric\n character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n <div ng-message="oldPasswordMatch">\n <span translate="STAFF.ERRORS.PASSWORD_OLDPASSWORD_MATCH">New password must be different from old one</span>\n </div>\n\n\n\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CONFIRM_PASSWORD">Confirm Password</label>\n <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n <div ng-messages="telephoneForm.confirmPassword.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CONFIRM_REQUIRED">Confirm field is\n required</span>\n </div>\n <div ng-message="passwordMatch">\n <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did\n not match</span>\n </div>\n </div>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.savePassword()" class="send-button md-accent md-raised" ng-disabled="telephoneForm.$invalid || telephoneForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/telephones/edit/view.html",'<div id="staff-telephone" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-telephones-button md-icon-button" aria-label="Go to telephones" ng-click="vm.gotoTelephones()" translate translate-attr-aria-label="STAFF.GO_TO_TELEPHONES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="telephone-image" hide-xs>\n <img ng-src="assets/images/business/telephones.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.telephone.id}}\n <span ng-if="vm.telephone.name">{{vm.telephone.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="STAFF.CREATED_AT"></span> <span>{{vm.telephone.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.changepassworddialog(vm.telephone, $event)" class="md-fab md-warn md-icon-button" aria-label="changepassword">\n <md-tooltip><span translate="STAFF.CHANGEPASSWORD_TELEPHONE"></span></md-tooltip>\n <md-icon md-font-icon="icon-key-variant"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveTelephone()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(accountForm.$invalid) || (generalForm.$invalid)" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="telephone-detail-form-container account md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.ACCOUNT">ACCOUNT</div>\n </div>\n <form name="accountForm" novalidate>\n <md-input-container class="md-block">\n <label translate="STAFF.ACCOUNTNAME">Accountname</label>\n <input type="text" name="fullname" ng-model="vm.telephone.fullname" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="accountForm[\'fullname\'].$error" ng-show="accountForm[\'fullname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ACCOUNTNAME_REQUIRED">Accountname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.USERNAME">Username</label>\n <input type="text" name="name" ng-model="vm.telephone.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" disabled>\n\n <div class="hint"><span translate="STAFF.HELP.USERNAME"></span></div>\n <div ng-messages="accountForm[\'name\'].$error" ng-show="accountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.USERNAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Username must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.telephone.email" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="accountForm[\'email\'].$error" ng-show="accountForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="STAFF.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.telephone.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="accountForm[\'description\'].$error" ng-show="accountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.telephone.phone" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="accountForm[\'phone\'].$error" ng-show="accountForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.MOBILE">Mobile</label>\n <input type="text" name="mobile" ng-model="vm.telephone.mobile" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="accountForm[\'mobile\'].$error" ng-show="accountForm[\'mobile\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.MOBILE_REQUIRED">Mobile field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.VOICE">VOICE</span>\n </md-tab-label>\n <md-tab-body>\n <div class="telephone-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container ng-if="!vm.telephone.autointernal" class="md-block">\n <label translate="STAFF.INTERNAL">Internal</label>\n <input type="text" name="internal" ng-model="vm.telephone.internal" ng-required="true" autofocus disabled>\n\n <div ng-messages="generalForm[\'internal\'].$error" ng-show="generalForm[\'internal\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.TRANSPORT">Transport</label>\n <md-select name="transport" ng-model="vm.telephone.transport" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'udp\'">udp</md-option>\n <md-option ng-value="\'tcp\'">tcp</md-option>\n <md-option ng-value="\'ws\'">ws</md-option>\n <md-option ng-value="\'wss\'">wss</md-option>\n <md-option ng-value="\'tls\'">tls</md-option>\n </md-select>\n <div class="hint"><span translate="STAFF.HELP.TRANSPORT"></span></div>\n <div ng-messages="generalForm[\'transport\'].$error" ng-show="generalForm[\'transport\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.TRANSPORT_REQUIRED">Transport field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.NAT">NAT</label>\n <md-select name="nat" ng-model="vm.telephone.nat" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'force_rport\'">force_rport</md-option>\n <md-option ng-value="\'comedia\'">comedia</md-option>\n <md-option ng-value="\'yes\'">yes</md-option>\n <md-option ng-value="\'no\'">no</md-option>\n <md-option ng-value="\'never\'">never</md-option>\n <md-option ng-value="\'route\'">route</md-option>\n </md-select>\n <div class="hint"><span translate="STAFF.HELP.NAT"></span></div>\n <div ng-messages="generalForm[\'nat\'].$error" ng-show="generalForm[\'nat\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NAT_REQUIRED">NAT field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.ALLOWCODECS">AllowCodecs</label>\n <md-select name="allow" ng-model="vm.telephone.allow" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'ulaw\'">ulaw</md-option>\n <md-option ng-value="\'alaw\'">alaw</md-option>\n <md-option ng-value="\'gsm\'">gsm</md-option>\n <md-option ng-value="\'g722\'">g722</md-option>\n <md-option ng-value="\'g729\'">g729</md-option>\n <md-option ng-value="\'opus\'">opus</md-option>\n <md-option ng-value="\'h264\'">h264</md-option>\n </md-select>\n <div class="hint"><span translate="STAFF.HELP.ALLOWCODECS"></span></div>\n <div ng-messages="generalForm[\'allow\'].$error" ng-show="generalForm[\'allow\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ALLOWCODECS_REQUIRED">AllowCodecs field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CALLERID">CallerId</label>\n <input type="text" name="callerid" ng-model="vm.telephone.callerid" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'callerid\'].$error" ng-show="generalForm[\'callerid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CALLERID_REQUIRED">CallerId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.telephone.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts" ng-disabled="context.canSelect === false">{{ context.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'context\'].$error" ng-show="generalForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CALLGROUP">Callgroup</label>\n <input type="text" name="callgroup" ng-model="vm.telephone.callgroup" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.CALLGROUP"></span></div>\n <div ng-messages="generalForm[\'callgroup\'].$error" ng-show="generalForm[\'callgroup\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CALLGROUP_REQUIRED">Callgroup field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.PICKUPGROUP">Pickupgroup</label>\n <input type="text" name="pickupgroup" ng-model="vm.telephone.pickupgroup" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.PICKUPGROUP"></span></div>\n <div ng-messages="generalForm[\'pickupgroup\'].$error" ng-show="generalForm[\'pickupgroup\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PICKUPGROUP_REQUIRED">Pickupgroup field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.VIDEOSUPPORT">Videosupport</label>\n <md-select name="videosupport" ng-model="vm.telephone.videosupport" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">Yes</md-option>\n <md-option ng-value="\'no\'">No</md-option>\n <md-option ng-value="\'always\'">Always</md-option>\n </md-select>\n <div ng-messages="generalForm[\'videosupport\'].$error" ng-show="generalForm[\'videosupport\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.VIDEOSUPPORT_REQUIRED">Videosupport field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.ENCRYPTION">Encryption</label>\n <md-select name="encryption" ng-model="vm.telephone.encryption" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">yes</md-option>\n <md-option ng-value="\'no\'">no</md-option>\n </md-select>\n <div class="hint"><span translate="STAFF.HELP.ENCRYPTION"></span></div>\n <div ng-messages="generalForm[\'encryption\'].$error" ng-show="generalForm[\'encryption\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ENCRYPTION_REQUIRED">Encryption field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/staff/views/telephones/telephones.html",'<div id="telephones" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-account-multiple" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="STAFF.TELEPHONES">Telephones</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="STAFF.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedTelephones.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedTelephones =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="STAFF.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-telephones-count">\n <span>{{vm.selectedTelephones.length}}</span>\n <span translate="STAFF.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="STAFF.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllTelephones()" translate="STAFF.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectTelephones()" translate="STAFF.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedTelephones" csv-label="true" filename="telephones.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedTelephones($event)" aria-label="delete selected" translate translate-attr-label="STAFF.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- TELEPHONE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedTelephones" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTelephones">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="fullname">{{ \'STAFF.ACCOUNTNAME\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'STAFF.USERNAME\' | translate }}</th>\n <th md-column md-order-by="email">{{ \'STAFF.EMAIL\' | translate }}</th>\n <th md-column md-order-by="internal">{{ \'STAFF.INTERNAL\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.telephones.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="STAFF.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="telephone" md-select-id="id" ng-repeat="telephone in vm.telephones.rows">\n <td md-cell ng-if="telephone.userpic"><img class="avatar" alt="{{telephone.name}}" ng-src="api/users/{{telephone.id}}/avatar" /></td>\n <td md-cell ng-if="!telephone.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{telephone.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(telephone, ev) : vm.createOrEditTelephone($event, telephone)" md-cell class="fullname font-weight-600">{{telephone.fullname}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(telephone, ev) : vm.createOrEditTelephone($event, telephone)" md-cell class="name ">{{telephone.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(telephone, ev) : vm.createOrEditTelephone($event, telephone)" md-cell class="email ">{{telephone.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(telephone, ev) : vm.createOrEditTelephone($event, telephone)" md-cell class="internal ">{{telephone.internal}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(telephone, $event )" translate="STAFF.EDIT_TELEPHONE">\n Edit Telephone\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(telephone, $event )" translate="STAFF.DELETE_TELEPHONE">\n Delete Telephone\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'STAFF.PAGE\' | translate}}:\', rowsPerPage: \'{{\'STAFF.ROWSPERPAGE\' | translate}}:\', of: \'{{\'STAFF.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.telephones.count}}" md-on-paginate="vm.getTelephones" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / TELEPHONE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD TELEPHONE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-telephone-button" ng-click="vm.createOrEditTelephone($event)" aria-label="add telephone" translate translate-attr-aria-label="STAFF.ADD_TELEPHONE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD TELEPHONE BUTTON --\x3e\n</div>'),e.put("app/main/apps/staff/views/userProfiles/create/dialog.html",'<md-dialog class="userProfile-dialog" aria-label="New UserProfile">\n <form name="userProfileForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="STAFF.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.userProfile.name" ng-required="true" autofocus ng-disabled="!vm.newUserProfile">\n\n <div ng-messages="userProfileForm[\'name\'].$error" ng-show="userProfileForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.userProfile.description">\n\n <div ng-messages="userProfileForm[\'description\'].$error" ng-show="userProfileForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CRUDPERMISSIONS">CrudPermissions</label>\n <md-select name="crudPermissions" ng-model="vm.userProfile.crudPermissions" multiple required>\n\n <md-option ng-value="\'r\'" disabled> {{ \'STAFF.READ_PERMISSION\' | translate }} </md-option>\n\n <md-option ng-value="\'e\'"> {{ \'STAFF.EDIT_PERMISSION\' | translate }} </md-option>\n\n <md-option ng-value="\'d\'"> {{ \'STAFF.DELETE_PERMISSION\' | translate }} </md-option>\n </md-select>\n <div ng-messages="userProfileForm[\'crudPermissions\'].$error" ng-show="userProfileForm[\'crudPermissions\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CRUDPERMISSIONS_REQUIRED">CrudPermissions field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.privacyEnabled" aria-label="Mask_Sensitive_Data"><span translate="STAFF.MASK_SENSITIVE_DATA">Mask_Sensitive_Data</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.MASK_SENSITIVE_DATA"></span></div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newUserProfile" ng-click="vm.saveUserProfile()" class="send-button md-accent md-raised" ng-disabled="userProfileForm.$invalid || userProfileForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newUserProfile" ng-click="vm.addNewUserProfile()" class="send-button md-accent md-raised" ng-disabled="userProfileForm.$invalid" aria-label="ADD" translate="STAFF.ADD_USERPROFILE" translate-attr-aria-label="STAFF.ADD_USERPROFILE">\n ADD USERPROFILE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newUserProfile" ng-click="vm.deleteUserProfile($event)" aria-label="DELETE" translate translate-attr-aria-label="STAFF.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="STAFF.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/userProfiles/edit/clone/clone.html",'<md-dialog class="userProfile-dialog" aria-label="Clone UserProfile">\n <form name="userProfileForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="STAFF.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.userProfile.name" ng-required="true" autofocus ng-disabled="!vm.newUserProfile">\n\n <div ng-messages="userProfileForm[\'name\'].$error" ng-show="userProfileForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.userProfile.description">\n\n <div ng-messages="userProfileForm[\'description\'].$error" ng-show="userProfileForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CRUDPERMISSIONS">CrudPermissions</label>\n <md-select name="crudPermissions" ng-model="vm.userProfile.crudPermissions" multiple required>\n\n <md-option ng-value="\'r\'" disabled> {{ \'STAFF.READ_PERMISSION\' | translate }} </md-option>\n\n <md-option ng-value="\'e\'"> {{ \'STAFF.EDIT_PERMISSION\' | translate }} </md-option>\n\n <md-option ng-value="\'d\'"> {{ \'STAFF.DELETE_PERMISSION\' | translate }} </md-option>\n </md-select>\n <div ng-messages="userProfileForm[\'crudPermissions\'].$error" ng-show="userProfileForm[\'crudPermissions\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CRUDPERMISSIONS_REQUIRED">CrudPermissions field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.privacyEnabled" aria-label="Mask_Sensitive_Data"><span translate="STAFF.MASK_SENSITIVE_DATA">Mask_Sensitive_Data</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.MASK_SENSITIVE_DATA"></span></div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <md-button type="submit" ng-click="vm.cloneUserProfile()" class="send-button md-accent md-raised" ng-disabled="userProfileForm.$invalid" aria-label="CLONE" translate="STAFF.CLONE_USERPROFILE" translate-attr-aria-label="STAFF.CLONE_USERPROFILE">\n CLONE USERPROFILE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/userProfiles/edit/permissionsmanage/permissionsmanage.html",'<md-dialog class="userProfile-dialog" aria-label="userProfile">\n <form name="userProfileForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2>{{vm.title}}</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog($event)">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <div layout="column" class="padding-bottom-10">\n <div layout="row" class="padding-bottom-10">\n <md-input-container flex class="no-margin">\n <label translate="STAFF.SECTIONS">Sections</label>\n <md-select name="sections" ng-model="vm.selectedSection" placeholder="{{\'STAFF.PERMISSIONS_SELECT_SECTION\' | translate}}" ng-change="vm.onChangeSection()" required>\n <md-option ng-value="subsection" ng-repeat="subsection in vm.subsections" ng-selected="{{vm.subsections.length === 1 ? \'true\' : \'false\'}}">{{subsection.translate | translate}}</md-option>\n </md-select>\n </md-input-container>\n <div layout="row" ng-show="vm.selectedSection" class="margin-left-10">\n <md-button ng-switch="vm.selectedSection.enabled" class="md-icon-button md-fab md-mini size-8 padding-10" ng-class="vm.selectedSection.enabled ? \'blue-500-bg\' : \'grey-A400-bg\'" ng-click="vm.onChangeVisibility()" aria-label="Visibility">\n <md-icon ng-switch-when="true" md-font-icon="icon-eye" aria-label="Visible section">\n <md-tooltip>{{\'STAFF.PERMISSIONS_SECTION_HIDE\' | translate}}</md-tooltip>\n </md-icon>\n <md-icon ng-switch-when="false" md-font-icon="icon-eye-off" aria-label="Hidden section">\n <md-tooltip>{{\'STAFF.PERMISSIONS_SECTION_SHOW\' | translate}}</md-tooltip>\n </md-icon>\n </md-button>\n <div>\n <md-button class="md-icon-button md-fab md-mini size-8 green-A700-bg no-margin" ng-disabled="true">\n <md-icon md-font-icon="icon-monitor" class="md-background-fg" aria-label="Read permission">\n <md-tooltip>{{\'STAFF.READ_PERMISSION\' | translate}}</md-tooltip>\n </md-icon>\n </md-button>\n <md-button class="md-icon-button md-fab md-mini size-8 no-margin" ng-class="vm.selectedSection.allowEdit ? \'green-A700-bg\' : \'grey-A400-bg\'" ng-click="vm.setPermission(\'edit\')">\n <md-icon md-font-icon="icon-pencil" aria-label="Edit permission">\n <md-tooltip>{{\'STAFF.EDIT_PERMISSION\' | translate}}</md-tooltip>\n </md-icon>\n </md-button>\n <md-button class="md-icon-button md-fab md-mini size-8 no-margin" ng-class="vm.selectedSection.allowDelete ? \'green-A700-bg\' : \'grey-A400-bg\'" ng-click="vm.setPermission(\'delete\')">\n <md-icon md-font-icon="icon-delete" aria-label="Delete permission">\n <md-tooltip>{{\'STAFF.DELETE_PERMISSION\' | translate}}</md-tooltip>\n </md-icon>\n </md-button>\n </div>\n </div>\n </div>\n <div layout="row" ng-show="vm.selectedSection" class="margin-left-10" ng-if="!vm.selectedSection.permissions || vm.selectedSection.permissions.association">\n <md-switch ng-model="vm.selectedSection.autoAssociation" class="no-margin padding-right-10" aria-label="Auto association" ng-change="vm.onChangeAutoAssociation()">\n </md-switch>\n <p class="no-margin font-size-12 line-height-30">{{\'STAFF.PERMISSIONS_AUTO_ASSOCIATION_INFO\' | translate}}</p>\n </div>\n <div layout="row" ng-show="vm.selectedSection && vm.selectedSection.title === \'Reports\' && !vm.selectedSection.autoAssociation" class="margin-bottom-10 margin-top-30" ng-if="!vm.selectedSection.permissions || vm.selectedSection.permissions.association">\n <md-input-container flex class="no-margin">\n <label translate="STAFF.REPORT_TYPE">Report Type</label>\n <md-select name="type" ng-model="vm.selectedSection.reportType" placeholder="{{\'STAFF.PERMISSIONS_SELECT_REPORT_TYPE\' | translate}}" ng-change="vm.onChangeReportType()" required>\n <md-option ng-value="\'default\'">Default</md-option>\n <md-option ng-value="\'custom\'">Custom</md-option>\n </md-select>\n </md-input-container>\n </div>\n <div ng-show="vm.selectedSection && vm.selectedSection.title === \'Dashboards\'" class="user-profile-section-help margin-bottom-10 margin-top-20">\n <md-icon md-font-icon="icon-help" aria-label="Dashboards help"></md-icon>\n <span class="no-margin font-size-12 line-height-30" translate="STAFF.HELP.CUSTOM_DASHBOARDS_PERMISSIONS"></span>\n </div>\n </div>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" ng-if="!vm.selectedSection.permissions || vm.selectedSection.permissions.association" ng-hide="vm.selectedSection.autoAssociation"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center">\n <div>\n <md-icon md-font-icon="icon-information-outline" aria-label="Delete permission"></md-icon>\n <span class="no-margin font-size-12 line-height-30" translate="STAFF.HELP.SAVE_PERMISSIONS"></span>\n </div>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveSection()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/userProfiles/edit/view.html",'<div id="staff-userProfile" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-userProfiles-button md-icon-button" aria-label="Go to userProfiles" ng-click="vm.gotoUserProfiles()" translate translate-attr-aria-label="STAFF.GO_TO_USERPROFILES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="userProfile-image" hide-xs>\n <img ng-src="assets/images/business/userProfiles.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.userProfile.id}}\n <span ng-if="vm.userProfile.name">{{vm.userProfile.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="STAFF.CREATED_AT"></span> <span>{{vm.userProfile.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.clonedialog(vm.userProfile, $event)" class="md-fab md-amber-500-bg md-icon-button" aria-label="clone">\n <md-tooltip><span translate="STAFF.CLONE_USERPROFILE"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveUserProfile()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (modulesForm.$invalid) || (download_permissionsForm.$invalid)" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="userProfile-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="STAFF.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.userProfile.name" ng-required="true" autofocus disabled>\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.userProfile.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CRUDPERMISSIONS">CrudPermissions</label>\n <md-select name="crudPermissions" ng-model="vm.userProfile.crudPermissions" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'r\'" disabled> {{ \'STAFF.READ_PERMISSION\' | translate }} </md-option>\n\n <md-option ng-value="\'e\'"> {{ \'STAFF.EDIT_PERMISSION\' | translate }} </md-option>\n\n <md-option ng-value="\'d\'"> {{ \'STAFF.DELETE_PERMISSION\' | translate }} </md-option>\n </md-select>\n <div ng-messages="generalForm[\'crudPermissions\'].$error" ng-show="generalForm[\'crudPermissions\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CRUDPERMISSIONS_REQUIRED">CrudPermissions field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.privacyEnabled" aria-label="Mask_Sensitive_Data" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.MASK_SENSITIVE_DATA">Mask_Sensitive_Data</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.MASK_SENSITIVE_DATA"></span></div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.PERMISSIONS">PERMISSIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="userProfile-detail-form-container modules md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.MODULES">MODULES</div>\n </div>\n <div ng-controller="UserProfilePermissionsController as vm_pc" ng-init="vm_pc.init(vm.userProfile, vm.license)" class="userProfile-detail-form-container">\n <md-grid-list flex md-cols-gt-xs="2" md-cols-gt-sm="2" md-cols-gt-md="4" md-cols-gt-lg="6" md-row-height-gt-xs="2:1" md-row-height-gt-sm="3:1" md-row-height-gt-md="3:1" gt-xs-gutter="4px" gt-sm-gutter="4px" gt-md-gutter="16px" gt-lg-gutter="16px">\n <md-grid-tile ng-repeat="father in vm_pc.modules" ng-if="vm_pc.userProfile.role !== \'admin\' && !father.permissions.hidden" md-colspan="2">\n <md-card flex-xs flex-gt-xs="90" layout="column" no-padding no-margin>\n <md-card-header>\n <md-card-avatar>\n <md-icon class="md-avatar-icon auto-size" md-font-icon="{{father.icon}}" ng-class="{ true: father.status.color }[true]">\n <md-tooltip>{{ father.status.info }}</md-tooltip>\n </md-icon>\n </md-card-avatar>\n <md-card-header-text layout-align="center start">\n <span class="md-title" translate="{{father.translate}}">{{ father.title }}</span>\n </md-card-header-text>\n <md-card-actions class="no-margin" layout="row" ng-init="vm_pc.checkSectionResources(father)" ng-if="father.status.tag != \'unlicensed\'">\n <md-switch class="auto-height no-margin" ng-model="father.allResourcesEnabled" ng-change="vm_pc.onChangeEnableAllResources(father)" aria-label="Enable all"></md-switch>\n <md-button class="md-mini auto-width" aria-label="Manage" ng-click="vm_pc.manageResources(father)" ng-hide="father.permissions && !father.permissions.association">\n <md-tooltip>{{\'STAFF.PERMISSIONS_MANAGE\' | translate}}\n </md-tooltip>\n <md-icon md-font-icon="icon-cog"></md-icon>\n </md-button>\n </md-card-actions>\n <md-card-header-text ng-if="father.status.tag === \'unlicensed\'" layout-align="center end">\n <span class="md-subhead red-A700-fg">{{ father.status.name }}</span>\n </md-card-header-text>\n </md-card-header>\n </md-card>\n </md-grid-tile>\n </md-grid-list>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.DOWNLOADS">DOWNLOADS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="userProfile-detail-form-container download_permissions md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.DOWNLOAD_PERMISSIONS">DOWNLOAD_PERMISSIONS</div>\n </div>\n <form name="download_permissionsForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadAttachments" aria-label="Attachments" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ATTACHMENTS">Attachments</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadCallySquareRecordings" aria-label="CallySquare_Recordings" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.CALLYSQUARE_RECORDINGS">CallySquare_Recordings</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadContactManagerLists" aria-label="Contact_Manager_Lists" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.CONTACT_MANAGER_LISTS">Contact_Manager_Lists</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadJscriptySessions" aria-label="Jscripty_Sessions" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.JSCRIPTY_SESSIONS">Jscripty_Sessions</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadOmnichannelInteractions" aria-label="Omnichannel_Interactions" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.OMNICHANNEL_INTERACTIONS">Omnichannel_Interactions</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadScreenRecordings" aria-label="Screen_Recordings" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.SCREEN_RECORDINGS">Screen_Recordings</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadVoiceRecordings" aria-label="Voice_Recordings" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.VOICE_RECORDINGS">Voice_Recordings</span></md-switch>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/staff/views/userProfiles/userProfiles.html",'<div id="userProfiles" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-account-multiple" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="STAFF.USERPROFILES">UserProfiles</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="STAFF.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedUserProfiles.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedUserProfiles =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="STAFF.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-userProfiles-count">\n <span>{{vm.selectedUserProfiles.length}}</span>\n <span translate="STAFF.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="STAFF.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllUserProfiles()" translate="STAFF.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectUserProfiles()" translate="STAFF.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedUserProfiles" csv-label="true" filename="userProfiles.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedUserProfiles($event)" aria-label="delete selected" translate translate-attr-label="STAFF.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- USERPROFILE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedUserProfiles" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getUserProfiles">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'STAFF.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'STAFF.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'STAFF.DESCRIPTION\' | translate }}</th>\n <th md-column md-order-by="crudPermissions">{{ \'STAFF.CRUDPERMISSIONS\' | translate }}</th>\n <th md-column md-order-by="privacyEnabled">{{ \'STAFF.MASK_SENSITIVE_DATA\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.userProfiles.rows.length">\n <td md-cell colspan="6">\n <div layout="row" layout-align="center center">\n <span translate="STAFF.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="userProfile" md-select-id="id" ng-repeat="userProfile in vm.userProfiles.rows">\n <td md-cell ng-if="userProfile.userpic"><img class="avatar" alt="{{userProfile.name}}" ng-src="api/users/{{userProfile.id}}/avatar" /></td>\n <td md-cell ng-if="!userProfile.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{userProfile.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(userProfile, ev) : vm.createOrEditUserProfile($event, userProfile)" md-cell class="id ">{{userProfile.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(userProfile, ev) : vm.createOrEditUserProfile($event, userProfile)" md-cell class="name ">{{userProfile.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(userProfile, ev) : vm.createOrEditUserProfile($event, userProfile)" md-cell class="description ">{{userProfile.description}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(userProfile, ev) : vm.createOrEditUserProfile($event, userProfile)" md-cell class="crudPermissions ">{{userProfile.selectedcrudPermissions}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(userProfile, ev) : vm.createOrEditUserProfile($event, userProfile)" md-cell class="privacyEnabled ">\n <md-icon md-colors="{color: {{userProfile.privacyEnabled ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{userProfile.privacyEnabled ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(userProfile, $event )" translate="STAFF.EDIT_USERPROFILE">\n Edit UserProfile\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.clonedialog(userProfile, $event )" translate="STAFF.CLONE_USERPROFILE">\n clone UserProfile\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.role === \'admin\' && user.id !== vm.currentUser.id">\n\n <md-button ng-click="vm.deleteconfirm(userProfile, $event )" translate="STAFF.DELETE_USERPROFILE">\n Delete UserProfile\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'STAFF.PAGE\' | translate}}:\', rowsPerPage: \'{{\'STAFF.ROWSPERPAGE\' | translate}}:\', of: \'{{\'STAFF.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.userProfiles.count}}" md-on-paginate="vm.getUserProfiles" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / USERPROFILE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD USERPROFILE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-userProfile-button" ng-click="vm.createOrEditUserProfile($event)" aria-label="add userProfile" translate translate-attr-aria-label="STAFF.ADD_USERPROFILE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD USERPROFILE BUTTON --\x3e\n</div>'),e.put("app/main/apps/staff/views/users/create/dialog.html",'<md-dialog class="user-dialog" aria-label="New User">\n <form name="userForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="STAFF.ROLE">Role</label>\n <md-select name="role" ng-model="vm.user.role" autofocus required ng-disabled="!vm.newUser">\n <md-option ng-value="\'admin\'">Admin</md-option>\n <md-option ng-value="\'user\'">User</md-option>\n </md-select>\n <div ng-messages="userForm[\'role\'].$error" ng-show="userForm[\'role\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ROLE_REQUIRED">Role field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.user.role === \'user\'" class="md-block">\n <label translate="STAFF.USERPROFILE">UserProfile</label>\n <md-select name="userProfileId" ng-model="vm.user.userProfileId" required>\n <md-option ng-value="userProfileId.id" ng-repeat="userProfileId in vm.userProfiles" ng-disabled="userProfileId.canSelect === false">{{ userProfileId.name }}</md-option>\n </md-select>\n <div ng-messages="userForm[\'userProfileId\'].$error" ng-show="userForm[\'userProfileId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.USERPROFILE_REQUIRED">UserProfile field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.FULLNAME">Fullname</label>\n <input type="text" name="fullname" ng-model="vm.user.fullname" ng-required="true">\n\n <div ng-messages="userForm[\'fullname\'].$error" ng-show="userForm[\'fullname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.FULLNAME_REQUIRED">Fullname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.USERNAME">Username</label>\n <input type="text" name="name" ng-model="vm.user.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" ng-disabled="!vm.newUser">\n\n <div class="hint"><span translate="STAFF.HELP.USERNAME"></span></div>\n <div ng-messages="userForm[\'name\'].$error" ng-show="userForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.USERNAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Username must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.user.email" ng-required="true">\n\n <div ng-messages="userForm[\'email\'].$error" ng-show="userForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="STAFF.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.newUser">\n <label translate="STAFF.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.user.password" placeholder="Password" ng-pattern="vm.passwordPattern" translate translate-attr-placeholder="STAFF.PASSWORD" required>\n <div ng-messages="userForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.newUser && (vm.newUser)">\n <label translate="STAFF.CONFIRM_PASSWORD">Confirm Password</label>\n <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword" required>\n <div ng-messages="userForm.confirmPassword.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n </div>\n <div ng-message="passwordMatch">\n <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.user.description">\n\n <div ng-messages="userForm[\'description\'].$error" ng-show="userForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.newUser" class="md-block">\n <md-switch ng-model="vm.user.autointernal" aria-label="AutoInternal"><span translate="STAFF.AUTOINTERNAL">AutoInternal</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.user.autointernal" class="md-block">\n <label translate="STAFF.INTERNAL">Internal</label>\n <input type="text" name="internal" ng-model="vm.user.internal" ng-required="true" ng-disabled="!vm.newUser">\n\n <div ng-messages="userForm[\'internal\'].$error" ng-show="userForm[\'internal\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newUser" ng-click="vm.saveUser()" class="send-button md-accent md-raised" ng-disabled="userForm.$invalid || userForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newUser" ng-click="vm.addNewUser()" class="send-button md-accent md-raised" ng-disabled="userForm.$invalid" aria-label="ADD" translate="STAFF.ADD_USER" translate-attr-aria-label="STAFF.ADD_USER">\n ADD USER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newUser" ng-click="vm.deleteUser($event)" aria-label="DELETE" translate translate-attr-aria-label="STAFF.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="STAFF.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/users/edit/apikeymanager/apikeymanager.html",'<md-dialog class="user-dialog" aria-label="{{vm.name}}">\n <form name="userForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ \'\n STAFF.MANAGE_API_KEY\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-card layout-fill layout-padding>\n <textarea class="api-key-area" ng-model="vm.user.apiKey" rows="6" disabled></textarea>\n </md-card>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.generateApiKey()" class="send-button md-accent md-raised" aria-label="Generate" translate="{{ vm.user.apiKey === \'N/A\' ? \'STAFF.GENERATE\' : \'STAFF.REGENERATE\' }}" translate-attr-aria-label="STAFF.GENERATE">\n Generate\n </md-button>\n <md-button type="submit" ng-click="vm.removeApiKey()" class="send-button md-accent md-raised" aria-label="Remove" translate="STAFF.REMOVE" translate-attr-aria-label="STAFF.DELETE">\n Delete\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/users/edit/changepassword/changepassword.html",'<md-dialog class="user-dialog" aria-label="{{vm.name}}">\n <form name="userForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ \'\n STAFF.CHANGE_PASSWORD\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block" ng-if="vm.currentUser.id == vm.user.id">\n <label translate="STAFF.OLD_PASSWORD">Old Password</label>\n <input type="password" name="oldPassword" ng-model="vm.oldPassword" placeholder="Password" translate translate-attr-placeholder="STAFF.OLD_PASSWORD" required>\n <div ng-messages="userForm.oldPassword.$error" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.NEW_PASSWORD">New Password</label>\n <input type="password" name="password" ng-model="vm.password" placeholder="Password" translate ng-pattern="vm.passwordPattern" translate-attr-placeholder="STAFF.NEW_PASSWORD" required>\n <div ng-messages="userForm.password.$error" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is\n required</span>\n </div>\n\n\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.SECURE_PASSWORD_PATTERN">Must contain\n at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric\n character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n <div ng-message="oldPasswordMatch">\n <span translate="STAFF.ERRORS.PASSWORD_OLDPASSWORD_MATCH">New password must be different from old one</span>\n </div>\n\n\n\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CONFIRM_PASSWORD">Confirm Password</label>\n <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n <div ng-messages="userForm.confirmPassword.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CONFIRM_REQUIRED">Confirm field is\n required</span>\n </div>\n <div ng-message="passwordMatch">\n <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did\n not match</span>\n </div>\n </div>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.savePassword()" class="send-button md-accent md-raised" ng-disabled="userForm.$invalid || userForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/users/edit/view.html",'<div id="staff-user" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-users-button md-icon-button" aria-label="Go to users" ng-click="vm.gotoUsers()" translate translate-attr-aria-label="STAFF.GO_TO_USERS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="user-image" hide-xs>\n <img ng-src="assets/images/business/users.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.user.id}}\n <span ng-if="vm.user.name">{{vm.user.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="STAFF.CREATED_AT"></span> <span>{{vm.user.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.apikeymanagerdialog(vm.user, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="apikeymanager">\n <md-tooltip><span translate="STAFF.APIKEYMANAGER_USER"></span></md-tooltip>\n <md-icon md-font-icon="fab fa-hubspot"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.changepassworddialog(vm.user, $event)" class="md-fab md-warn md-icon-button" aria-label="changepassword">\n <md-tooltip><span translate="STAFF.CHANGEPASSWORD_USER"></span></md-tooltip>\n <md-icon md-font-icon="icon-key-variant"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveUser()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(personal_infoForm.$invalid) || (security_suiteForm.$invalid) || (change_avatarForm.$invalid) || (generalForm.$invalid)" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="user-detail-form-container personal_info md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.PERSONAL_INFO">PERSONAL_INFO</div>\n </div>\n <form name="personal_infoForm" novalidate>\n <md-input-container class="md-block">\n <label translate="STAFF.ROLE">Role</label>\n <md-select name="role" ng-model="vm.user.role" autofocus required disabled>\n <md-option ng-value="\'admin\'">Admin</md-option>\n <md-option ng-value="\'user\'">User</md-option>\n </md-select>\n <div ng-messages="personal_infoForm[\'role\'].$error" ng-show="personal_infoForm[\'role\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ROLE_REQUIRED">Role field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.user.role === \'user\'" class="md-block">\n <label translate="STAFF.USERPROFILE">UserProfile</label>\n <md-select name="userProfileId" ng-model="vm.user.userProfileId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="userProfileId.id" ng-repeat="userProfileId in vm.userProfiles" ng-disabled="userProfileId.canSelect === false">{{ userProfileId.name }}</md-option>\n </md-select>\n <div ng-messages="personal_infoForm[\'userProfileId\'].$error" ng-show="personal_infoForm[\'userProfileId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.USERPROFILE_REQUIRED">UserProfile field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.FULLNAME">Fullname</label>\n <input type="text" name="fullname" ng-model="vm.user.fullname" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'fullname\'].$error" ng-show="personal_infoForm[\'fullname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.FULLNAME_REQUIRED">Fullname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.USERNAME">Username</label>\n <input type="text" name="name" ng-model="vm.user.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" disabled>\n\n <div class="hint"><span translate="STAFF.HELP.USERNAME"></span></div>\n <div ng-messages="personal_infoForm[\'name\'].$error" ng-show="personal_infoForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.USERNAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Username must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.user.email" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'email\'].$error" ng-show="personal_infoForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="STAFF.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.user.phone" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'phone\'].$error" ng-show="personal_infoForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.MOBILE">Mobile</label>\n <input type="text" name="mobile" ng-model="vm.user.mobile" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'mobile\'].$error" ng-show="personal_infoForm[\'mobile\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.MOBILE_REQUIRED">Mobile field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.user.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'description\'].$error" ng-show="personal_infoForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="user-detail-form-container security_suite md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.SECURITY_SUITE">SECURITY_SUITE</div>\n </div>\n <form name="security_suiteForm" novalidate>\n <md-input-container ng-if="vm.user.passwordResetAt != null" class="md-block">\n <label translate="STAFF.LAST_PASSWORD_RESET_AT">Last_Password_Reset_At</label>\n <input type="text" name="passwordResetAt" ng-model="vm.user.passwordResetAt" autofocus disabled>\n\n <div class="hint"><span translate="STAFF.HELP.LAST_PASSWORD_RESET_AT"></span></div>\n <div ng-messages="security_suiteForm[\'passwordResetAt\'].$error" ng-show="security_suiteForm[\'passwordResetAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.LAST_PASSWORD_RESET_AT_REQUIRED">Last_Password_Reset_At field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.user.passwordResetAt == null" class="md-block">\n <label translate="STAFF.NO_PASSWORD_CHANGE">No_Password_Change</label>\n <input type="text" name="passwordResetAt" ng-model="vm.user.passwordResetAt" disabled>\n\n <div ng-messages="security_suiteForm[\'passwordResetAt\'].$error" ng-show="security_suiteForm[\'passwordResetAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NO_PASSWORD_CHANGE_REQUIRED">No_Password_Change field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.APIKEY">ApiKey</label>\n <div layout="row" layout-align="center center">\n <button class="md-button md-fab md-mini md-primary" ngclipboard data-clipboard-target="#copytoclipboard-apiKey" ngclipboard-success="vm.alert({title: \'copied to clipboard\', msg: \'API Key copied!\' });" ngclipboard-error="vm.alert({title: \'error\', msg: \'copy to clipboard failed\'});">\n <md-icon md-font-icon="icon-clipboard-text"></md-icon>\n </button>\n <input class="md-input" type="text" id="copytoclipboard-apiKey" name="apiKey" ng-model="vm.user.apiKey" ng-readonly="true">\n </div>\n <div class="hint"><span translate="STAFF.HELP.APIKEY"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.user.id != vm.currentUser.id && vm.currentUser.role == \'admin\'" class="md-block">\n <md-switch ng-model="vm.user.disabled" aria-label="Disabled" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.DISABLED">Disabled</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.DISABLED"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.user.id != vm.currentUser.id && vm.currentUser.role == \'admin\' && vm.user.disabled == 0" class="md-block">\n <md-switch ng-model="vm.user.blocked" aria-label="Blocked" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.BLOCKED">Blocked</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.BLOCKED"></span></div>\n </md-input-container>\n\n </form>\n </div>\n <div class="user-detail-form-container change_avatar md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.CHANGE_AVATAR">CHANGE_AVATAR</div>\n </div>\n <div ng-controller="Userchange_avatarController as vm_ca" ng-init="vm_ca.init(vm.user, vm.crudPermissions)" class="user-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="user-image-uploader" flow-init="vm_ca.ngFlowOptions" flow-name="vm_ca.ngFlow.flow" flow-files-submitted="vm_ca.upload()" flow-file-added="vm_ca.fileAdded($file)" flow-file-success="vm_ca.fileSuccess($file, $message)" flow-complete="vm_ca.uploadComplete()" flow-drop flow-drag-enter="vm_ca.dropping=true" flow-drag-leave="vm_ca.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn ng-disabled="!vm_ca.crudPermissions.canEdit">\n Upload\n </md-button>\n <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG - Max. 8MB</span>\n </div>\n\n <div layout="row" layout-align="start start" layout-wrap>\n <div ng-repeat="change_avatarimage in vm_ca.user.images" ng-switch="change_avatarimage.type">\n <div class="user-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n <div class="overlay" layout="column" layout-align="center center">\n <md-progress-linear md-mode="determinate" value="{{change_avatarimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="change_avatarimage.file">\n </div>\n\n <div class="user-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{change_avatarimage.url}}">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.VOICE">VOICE</span>\n </md-tab-label>\n <md-tab-body>\n <div class="user-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container ng-if="!vm.user.autointernal" class="md-block">\n <label translate="STAFF.INTERNAL">Internal</label>\n <input type="text" name="internal" ng-model="vm.user.internal" ng-required="true" autofocus disabled>\n\n <div ng-messages="generalForm[\'internal\'].$error" ng-show="generalForm[\'internal\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.TRANSPORT">Transport</label>\n <md-select name="transport" ng-model="vm.user.transport" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'udp\'">udp</md-option>\n <md-option ng-value="\'tcp\'">tcp</md-option>\n <md-option ng-value="\'ws\'">ws</md-option>\n <md-option ng-value="\'wss\'">wss</md-option>\n <md-option ng-value="\'tls\'">tls</md-option>\n </md-select>\n <div ng-messages="generalForm[\'transport\'].$error" ng-show="generalForm[\'transport\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.TRANSPORT_REQUIRED">Transport field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.NAT">NAT</label>\n <md-select name="nat" ng-model="vm.user.nat" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'force_rport\'">force_rport</md-option>\n <md-option ng-value="\'comedia\'">comedia</md-option>\n <md-option ng-value="\'yes\'">yes</md-option>\n <md-option ng-value="\'no\'">no</md-option>\n <md-option ng-value="\'never\'">never</md-option>\n <md-option ng-value="\'route\'">route</md-option>\n </md-select>\n <div class="hint"><span translate="STAFF.HELP.NAT"></span></div>\n <div ng-messages="generalForm[\'nat\'].$error" ng-show="generalForm[\'nat\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NAT_REQUIRED">NAT field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.ALLOWCODECS">AllowCodecs</label>\n <md-select name="allow" ng-model="vm.user.allow" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'ulaw\'">ulaw</md-option>\n <md-option ng-value="\'alaw\'">alaw</md-option>\n <md-option ng-value="\'gsm\'">gsm</md-option>\n <md-option ng-value="\'g722\'">g722</md-option>\n <md-option ng-value="\'g729\'">g729</md-option>\n <md-option ng-value="\'opus\'">opus</md-option>\n <md-option ng-value="\'h264\'">h264</md-option>\n </md-select>\n <div class="hint"><span translate="STAFF.HELP.ALLOWCODECS"></span></div>\n <div ng-messages="generalForm[\'allow\'].$error" ng-show="generalForm[\'allow\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ALLOWCODECS_REQUIRED">AllowCodecs field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.user.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts" ng-disabled="context.canSelect === false">{{ context.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'context\'].$error" ng-show="generalForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CALLGROUP">Callgroup</label>\n <input type="text" name="callgroup" ng-model="vm.user.callgroup" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.CALLGROUP"></span></div>\n <div ng-messages="generalForm[\'callgroup\'].$error" ng-show="generalForm[\'callgroup\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CALLGROUP_REQUIRED">Callgroup field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.PICKUPGROUP">Pickupgroup</label>\n <input type="text" name="pickupgroup" ng-model="vm.user.pickupgroup" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.PICKUPGROUP"></span></div>\n <div ng-messages="generalForm[\'pickupgroup\'].$error" ng-show="generalForm[\'pickupgroup\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PICKUPGROUP_REQUIRED">Pickupgroup field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.APIKEY">ApiKey</label>\n <div layout="row" layout-align="center center">\n <button class="md-button md-fab md-mini md-primary" ngclipboard data-clipboard-target="#copytoclipboard-apiKey" ngclipboard-success="vm.alert({title: \'copied to clipboard\', msg: \'API Key copied!\' });" ngclipboard-error="vm.alert({title: \'error\', msg: \'copy to clipboard failed\'});">\n <md-icon md-font-icon="icon-clipboard-text"></md-icon>\n </button>\n <input class="md-input" type="text" id="copytoclipboard-apiKey" name="apiKey" ng-model="vm.user.apiKey" ng-readonly="true">\n </div>\n <div class="hint"><span translate="STAFF.HELP.APIKEY"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.VIDEOSUPPORT">Videosupport</label>\n <md-select name="videosupport" ng-model="vm.user.videosupport" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">Yes</md-option>\n <md-option ng-value="\'no\'">No</md-option>\n <md-option ng-value="\'always\'">Always</md-option>\n </md-select>\n <div ng-messages="generalForm[\'videosupport\'].$error" ng-show="generalForm[\'videosupport\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.VIDEOSUPPORT_REQUIRED">Videosupport field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/staff/views/users/users.html",'<div id="users" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-account-multiple" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="STAFF.USERS">Users</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="STAFF.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedUsers.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedUsers =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="STAFF.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-users-count">\n <span>{{vm.selectedUsers.length}}</span>\n <span translate="STAFF.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="STAFF.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllUsers()" translate="STAFF.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectUsers()" translate="STAFF.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedUsers" csv-label="true" filename="users.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- USER TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedUsers" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getUsers">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="role">{{ \'STAFF.ROLE\' | translate }}</th>\n <th md-column md-order-by="userProfileId">{{ \'STAFF.USERPROFILE\' | translate }}</th>\n <th md-column md-order-by="fullname">{{ \'STAFF.FULLNAME\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'STAFF.USERNAME\' | translate }}</th>\n <th md-column md-order-by="email">{{ \'STAFF.EMAIL\' | translate }}</th>\n <th md-column md-order-by="phone">{{ \'STAFF.PHONE\' | translate }}</th>\n <th md-column md-order-by="mobile">{{ \'STAFF.MOBILE\' | translate }}</th>\n <th md-column md-order-by="internal">{{ \'STAFF.INTERNAL\' | translate }}</th>\n <th md-column md-order-by="disabled">{{ \'STAFF.DISABLED\' | translate }}</th>\n <th md-column md-order-by="blocked">{{ \'STAFF.BLOCKED\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.users.rows.length">\n <td md-cell colspan="11">\n <div layout="row" layout-align="center center">\n <span translate="STAFF.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="user" md-select-id="id" ng-repeat="user in vm.users.rows">\n <td md-cell ng-if="user.userpic"><img class="avatar" alt="{{user.name}}" ng-src="api/users/{{user.id}}/avatar" /></td>\n <td md-cell ng-if="!user.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{user.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="role ">{{ vm.arrayrole[user.role].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="userProfileId font-weight-600">{{ (vm.userProfiles | filter : {\'id\':user.userProfileId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="fullname font-weight-600">{{user.fullname}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="name ">{{user.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="email ">{{user.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="phone ">{{user.phone}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="mobile ">{{user.mobile}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="internal ">{{user.internal}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="disabled ">\n <md-icon md-colors="{color: {{user.disabled ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{user.disabled ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="blocked ">\n <md-icon md-colors="{color: {{user.blocked ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{user.blocked ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(user, $event )" translate="STAFF.EDIT_USER">\n Edit User\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.role === \'admin\' && user.id !== vm.currentUser.id">\n\n <md-button ng-click="vm.deleteconfirm(user, $event )" translate="STAFF.DELETE_USER">\n Delete User\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'STAFF.PAGE\' | translate}}:\', rowsPerPage: \'{{\'STAFF.ROWSPERPAGE\' | translate}}:\', of: \'{{\'STAFF.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.users.count}}" md-on-paginate="vm.getUsers" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / USER TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD USER BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-user-button" ng-click="vm.createOrEditUser($event)" aria-label="add user" translate translate-attr-aria-label="STAFF.ADD_USER">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD USER BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/cannedAnswers/cannedAnswers.html",'<div id="cannedAnswers" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="TOOLS.CANNEDANSWERS">CannedAnswers</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedCannedAnswers.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedCannedAnswers =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="TOOLS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-cannedAnswers-count">\n <span>{{vm.selectedCannedAnswers.length}}</span>\n <span translate="TOOLS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TOOLS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllCannedAnswers()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectCannedAnswers()" translate="TOOLS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedCannedAnswers" csv-label="true" filename="cannedAnswers.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedCannedAnswers($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- CANNEDANSWER TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedCannedAnswers" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getCannedAnswers">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="key">{{ \'TOOLS.KEY\' | translate }}</th>\n <th md-column md-order-by="value">{{ \'TOOLS.VALUE\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.cannedAnswers.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="cannedAnswer" md-select-id="id" ng-repeat="cannedAnswer in vm.cannedAnswers.rows">\n <td md-cell ng-if="cannedAnswer.userpic"><img class="avatar" alt="{{cannedAnswer.name}}" ng-src="api/users/{{cannedAnswer.id}}/avatar" /></td>\n <td md-cell ng-if="!cannedAnswer.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{cannedAnswer.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditCannedAnswer($event, cannedAnswer)" md-cell class="id ">{{cannedAnswer.id}}</td>\n <td ng-click="vm.createOrEditCannedAnswer($event, cannedAnswer)" md-cell class="key ">{{cannedAnswer.key}}</td>\n <td ng-click="vm.createOrEditCannedAnswer($event, cannedAnswer)" md-cell class="value ">{{cannedAnswer.value}}</td>\n <td ng-click="vm.createOrEditCannedAnswer($event, cannedAnswer)" md-cell class="description ">{{cannedAnswer.description}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(cannedAnswer, $event )" translate="TOOLS.EDIT_CANNEDANSWER">\n Edit CannedAnswer\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(cannedAnswer, $event )" translate="TOOLS.DELETE_CANNEDANSWER">\n Delete CannedAnswer\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.cannedAnswers.count}}" md-on-paginate="vm.getCannedAnswers" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / CANNEDANSWER TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD CANNEDANSWER BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-cannedAnswer-button" ng-click="vm.createOrEditCannedAnswer($event)" aria-label="add cannedAnswer" translate translate-attr-aria-label="TOOLS.ADD_CANNEDANSWER">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD CANNEDANSWER BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/cannedAnswers/create/dialog.html",'<md-dialog class="cannedAnswer-dialog" aria-label="New CannedAnswer">\n <form name="cannedAnswerForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.cannedAnswer.key" md-maxlength="255" ng-required="true" autofocus>\n\n <div ng-messages="cannedAnswerForm[\'key\'].$error" ng-show="cannedAnswerForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.KEY_REQUIRED">Key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="TOOLS.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 255}\'>Key must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.VALUE">Value</label>\n <textarea name="value" ng-model="vm.cannedAnswer.value" required></textarea>\n\n <div ng-messages="cannedAnswerForm[\'value\'].$error" ng-show="cannedAnswerForm[\'value\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.cannedAnswer.description">\n\n <div ng-messages="cannedAnswerForm[\'description\'].$error" ng-show="cannedAnswerForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newCannedAnswer" ng-click="vm.saveCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="cannedAnswerForm.$invalid || cannedAnswerForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newCannedAnswer" ng-click="vm.addNewCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="cannedAnswerForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_CANNEDANSWER" translate-attr-aria-label="TOOLS.ADD_CANNEDANSWER">\n ADD CANNEDANSWER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newCannedAnswer" ng-click="vm.deleteCannedAnswer($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/customDashboards/create/dialog.html",'<md-dialog class="customDashboard-dialog" aria-label="New CustomDashboard">\n <form name="customDashboardForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.customDashboard.name" ng-required="true" autofocus>\n\n <div ng-messages="customDashboardForm[\'name\'].$error" ng-show="customDashboardForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.customDashboard.description">\n\n <div ng-messages="customDashboardForm[\'description\'].$error" ng-show="customDashboardForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newCustomDashboard" ng-click="vm.saveCustomDashboard()" class="send-button md-accent md-raised" ng-disabled="customDashboardForm.$invalid || customDashboardForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newCustomDashboard" ng-click="vm.addNewCustomDashboard()" class="send-button md-accent md-raised" ng-disabled="customDashboardForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_CUSTOMDASHBOARD" translate-attr-aria-label="TOOLS.ADD_CUSTOMDASHBOARD">\n ADD CUSTOMDASHBOARD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newCustomDashboard" ng-click="vm.deleteCustomDashboard($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/customDashboards/customDashboards.html",'<div id="customDashboards" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="TOOLS.CUSTOMDASHBOARDS">CustomDashboards</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedCustomDashboards.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedCustomDashboards =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="TOOLS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-customDashboards-count">\n <span>{{vm.selectedCustomDashboards.length}}</span>\n <span translate="TOOLS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TOOLS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllCustomDashboards()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectCustomDashboards()" translate="TOOLS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedCustomDashboards" csv-label="true" filename="customDashboards.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedCustomDashboards($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- CUSTOMDASHBOARD TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedCustomDashboards" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getCustomDashboards">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.customDashboards.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="customDashboard" md-select-id="id" ng-repeat="customDashboard in vm.customDashboards.rows">\n <td md-cell ng-if="customDashboard.userpic"><img class="avatar" alt="{{customDashboard.name}}" ng-src="api/users/{{customDashboard.id}}/avatar" /></td>\n <td md-cell ng-if="!customDashboard.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{customDashboard.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(customDashboard, ev) : vm.createOrEditCustomDashboard($event, customDashboard)" md-cell class="id ">{{customDashboard.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(customDashboard, ev) : vm.createOrEditCustomDashboard($event, customDashboard)" md-cell class="name ">{{customDashboard.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(customDashboard, ev) : vm.createOrEditCustomDashboard($event, customDashboard)" md-cell class="description ">{{customDashboard.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(customDashboard, $event )" translate="TOOLS.EDIT_CUSTOMDASHBOARD">\n Edit CustomDashboard\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.clonedialog(customDashboard, $event )" translate="TOOLS.CLONE_CUSTOMDASHBOARD">\n clone CustomDashboard\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotodashboardgoto(customDashboard, $event )" translate="TOOLS.GOTODASHBOARD_CUSTOMDASHBOARD">\n goToDashboard CustomDashboard\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(customDashboard, $event )" translate="TOOLS.DELETE_CUSTOMDASHBOARD">\n Delete CustomDashboard\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.customDashboards.count}}" md-on-paginate="vm.getCustomDashboards" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / CUSTOMDASHBOARD TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD CUSTOMDASHBOARD BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-customDashboard-button" ng-click="vm.createOrEditCustomDashboard($event)" aria-label="add customDashboard" translate translate-attr-aria-label="TOOLS.ADD_CUSTOMDASHBOARD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD CUSTOMDASHBOARD BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/customDashboards/edit/clone/clone.html",'<md-dialog class="customDashboard-dialog" aria-label="Clone CustomDashboard">\n <form name="customDashboardForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.customDashboard.name" ng-required="true" autofocus>\n\n <div ng-messages="customDashboardForm[\'name\'].$error" ng-show="customDashboardForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <md-button type="submit" ng-click="vm.cloneCustomDashboard()" class="send-button md-accent md-raised" ng-disabled="customDashboardForm.$invalid" aria-label="CLONE" translate="TOOLS.CLONE_CUSTOMDASHBOARD" translate-attr-aria-label="TOOLS.CLONE_CUSTOMDASHBOARD">\n CLONE CUSTOMDASHBOARD\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/customDashboards/edit/dashboard/dialog.html",'<md-dialog class="dashboarditem-dialog" aria-label="New DashboardItem">\n <form name="dashboarditemForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.dashboarditem.type" autofocus ng-disabled="!vm.newDashboardItem">\n\n <md-option ng-value="\'counter\'"> {{ \'TOOLS.COUNTER\' | translate }} </md-option>\n\n <md-option ng-value="\'multibar-chart\'"> {{ \'TOOLS.MULTIBARCHART\' | translate }} </md-option>\n\n <md-option ng-value="\'pie-chart\'"> {{ \'TOOLS.PIECHART\' | translate }} </md-option>\n\n <md-option ng-value="\'web-report\'"> {{ \'TOOLS.WEBREPORT\' | translate }} </md-option>\n\n <md-option ng-value="\'iframe\'"> {{ \'TOOLS.IFRAME\' | translate }} </md-option>\n\n <md-option ng-value="\'clock\'"> {{ \'TOOLS.CLOCK\' | translate }} </md-option>\n\n <md-option ng-value="\'custom\'"> {{ \'TOOLS.CUSTOMTYPE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'type\'].$error" ng-show="dashboarditemForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.TITLE">Title</label>\n <input type="text" name="title" ng-model="vm.dashboarditem.title" md-maxlength="255" ng-required="true">\n\n <div ng-messages="dashboarditemForm[\'title\'].$error" ng-show="dashboarditemForm[\'title\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TITLE_REQUIRED">Title field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="TOOLS.ERRORS.TITLE_MAX_LENGTH" translate-values=\'{max: 255}\'>Title must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.TITLEFONTSIZE">TitleFontSize</label>\n <input type="number" name="titleFontSize" ng-model="vm.dashboarditem.titleFontSize" value="12">\n\n <div ng-messages="dashboarditemForm[\'titleFontSize\'].$error" ng-show="dashboarditemForm[\'titleFontSize\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TITLEFONTSIZE_REQUIRED">TitleFontSize field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'iframe\'" class="md-block">\n <label translate="TOOLS.URL">Url</label>\n <input type="url" name="attrUrl" ng-model="vm.dashboarditem.attrUrl" value="https://" ng-required="true">\n\n <div ng-messages="dashboarditemForm[\'attrUrl\'].$error" ng-show="dashboarditemForm[\'attrUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n <div ng-message="url">\n <span translate="TOOLS.ERRORS.URL_MUST_VALID_URL">Url must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'custom\'" class="md-block">\n <label translate="TOOLS.PATH">Path</label>\n <input type="text" name="attrPath" ng-model="vm.dashboarditem.attrPath" ng-required="true">\n\n <div ng-messages="dashboarditemForm[\'attrPath\'].$error" ng-show="dashboarditemForm[\'attrPath\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.PATH_REQUIRED">Path field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'clock\'" class="md-block">\n <label translate="TOOLS.FORMAT">Format</label>\n <input type="text" name="attrHourFormat" ng-model="vm.dashboarditem.attrHourFormat" value="HH:mm:ss" ng-required="true">\n\n <div ng-messages="dashboarditemForm[\'attrHourFormat\'].$error" ng-show="dashboarditemForm[\'attrHourFormat\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.FORMAT_REQUIRED">Format field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'clock\'" class="md-block">\n <label translate="TOOLS.TIMEZONE">Timezone</label>\n <md-select name="attrTimezone" ng-model="vm.dashboarditem.attrTimezone" required>\n <md-option ng-value="\'-12.00\'">GMT-12.00</md-option>\n <md-option ng-value="\'-11.00\'">GMT-11.00</md-option>\n <md-option ng-value="\'-10.00\'">GMT-10.00</md-option>\n <md-option ng-value="\'-9.00\'">GMT-9.00</md-option>\n <md-option ng-value="\'-8.00\'">GMT-8.00</md-option>\n <md-option ng-value="\'-7.00\'">GMT-7.00</md-option>\n <md-option ng-value="\'-6.00\'">GMT-6.00</md-option>\n <md-option ng-value="\'-5.00\'">GMT-5.00</md-option>\n <md-option ng-value="\'-4.00\'">GMT-4.00</md-option>\n <md-option ng-value="\'-3.30\'">GMT-3.30</md-option>\n <md-option ng-value="\'-3.00\'">GMT-3.00</md-option>\n <md-option ng-value="\'-2.00\'">GMT-2.00</md-option>\n <md-option ng-value="\'-1.00\'">GMT-1.00</md-option>\n <md-option ng-value="\'0.00\'">GMT 0.00</md-option>\n <md-option ng-value="\'1.00\'">GMT+1.00</md-option>\n <md-option ng-value="\'2.00\'">GMT+2.00</md-option>\n <md-option ng-value="\'3.00\'">GMT+3.00</md-option>\n <md-option ng-value="\'3.30\'">GMT+3.30</md-option>\n <md-option ng-value="\'4.00\'">GMT+4.00</md-option>\n <md-option ng-value="\'4.30\'">GMT+4.30</md-option>\n <md-option ng-value="\'5.00\'">GMT+5.00</md-option>\n <md-option ng-value="\'5.30\'">GMT+5.30</md-option>\n <md-option ng-value="\'5.45\'">GMT+5.45</md-option>\n <md-option ng-value="\'6.00\'">GMT+6.00</md-option>\n <md-option ng-value="\'6.30\'">GMT+6.30</md-option>\n <md-option ng-value="\'7.00\'">GMT+7.00</md-option>\n <md-option ng-value="\'8.00\'">GMT+8.00</md-option>\n <md-option ng-value="\'9.00\'">GMT+9.00</md-option>\n <md-option ng-value="\'9.30\'">GMT+9.30</md-option>\n <md-option ng-value="\'10.00\'">GMT+10.00</md-option>\n <md-option ng-value="\'11.00\'">GMT+11.00</md-option>\n <md-option ng-value="\'12.00\'">GMT+12.00</md-option>\n <md-option ng-value="\'13.00\'">GMT+13.00</md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'attrTimezone\'].$error" ng-show="dashboarditemForm[\'attrTimezone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIMEZONE_REQUIRED">Timezone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'counter\'" class="md-block">\n <label translate="TOOLS.METRIC">Metric</label>\n <md-select name="attrMetric" ng-model="vm.dashboarditem.attrMetric" required>\n\n <md-option ng-value="\'total\'"> {{ \'TOOLS.TOTAL\' | translate }} </md-option>\n\n <md-option ng-value="\'abandoned\'"> {{ \'TOOLS.ABANDONED\' | translate }} </md-option>\n\n <md-option ng-value="\'waiting\'"> {{ \'TOOLS.WAITING\' | translate }} </md-option>\n\n <md-option ng-value="\'talking\'"> {{ \'TOOLS.TALKING\' | translate }} </md-option>\n\n <md-option ng-value="\'answered\'"> {{ \'TOOLS.ANSWERED\' | translate }} </md-option>\n\n <md-option ng-value="\'unmanaged\'"> {{ \'TOOLS.UNMANAGED\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'attrMetric\'].$error" ng-show="dashboarditemForm[\'attrMetric\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.METRIC_REQUIRED">Metric field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="[\'multibar-chart\', \'pie-chart\'].includes(vm.dashboarditem.type)" class="md-block">\n <label translate="TOOLS.SERIE1">Serie1</label>\n <md-select name="attrSerie1" ng-model="vm.dashboarditem.attrSerie1" required>\n\n <md-option ng-value="\'total\'"> {{ \'TOOLS.TOTAL\' | translate }} </md-option>\n\n <md-option ng-value="\'abandoned\'"> {{ \'TOOLS.ABANDONED\' | translate }} </md-option>\n\n <md-option ng-value="\'waiting\'"> {{ \'TOOLS.WAITING\' | translate }} </md-option>\n\n <md-option ng-value="\'talking\'"> {{ \'TOOLS.TALKING\' | translate }} </md-option>\n\n <md-option ng-value="\'answered\'"> {{ \'TOOLS.ANSWERED\' | translate }} </md-option>\n\n <md-option ng-value="\'unmanaged\'"> {{ \'TOOLS.UNMANAGED\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'attrSerie1\'].$error" ng-show="dashboarditemForm[\'attrSerie1\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SERIE1_REQUIRED">Serie1 field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="[\'multibar-chart\', \'pie-chart\'].includes(vm.dashboarditem.type)" class="md-block">\n <label translate="TOOLS.SERIE2">Serie2</label>\n <md-select name="attrSerie2" ng-model="vm.dashboarditem.attrSerie2">\n\n <md-option ng-value="\'null\'"> {{ \'TOOLS.NONE\' | translate }} </md-option>\n\n <md-option ng-value="\'total\'"> {{ \'TOOLS.TOTAL\' | translate }} </md-option>\n\n <md-option ng-value="\'abandoned\'"> {{ \'TOOLS.ABANDONED\' | translate }} </md-option>\n\n <md-option ng-value="\'waiting\'"> {{ \'TOOLS.WAITING\' | translate }} </md-option>\n\n <md-option ng-value="\'talking\'"> {{ \'TOOLS.TALKING\' | translate }} </md-option>\n\n <md-option ng-value="\'answered\'"> {{ \'TOOLS.ANSWERED\' | translate }} </md-option>\n\n <md-option ng-value="\'unmanaged\'"> {{ \'TOOLS.UNMANAGED\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'attrSerie2\'].$error" ng-show="dashboarditemForm[\'attrSerie2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SERIE2_REQUIRED">Serie2 field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="[\'multibar-chart\', \'pie-chart\'].includes(vm.dashboarditem.type)" class="md-block">\n <label translate="TOOLS.SERIE3">Serie3</label>\n <md-select name="attrSerie3" ng-model="vm.dashboarditem.attrSerie3">\n\n <md-option ng-value="\'null\'"> {{ \'TOOLS.NONE\' | translate }} </md-option>\n\n <md-option ng-value="\'total\'"> {{ \'TOOLS.TOTAL\' | translate }} </md-option>\n\n <md-option ng-value="\'abandoned\'"> {{ \'TOOLS.ABANDONED\' | translate }} </md-option>\n\n <md-option ng-value="\'waiting\'"> {{ \'TOOLS.WAITING\' | translate }} </md-option>\n\n <md-option ng-value="\'talking\'"> {{ \'TOOLS.TALKING\' | translate }} </md-option>\n\n <md-option ng-value="\'answered\'"> {{ \'TOOLS.ANSWERED\' | translate }} </md-option>\n\n <md-option ng-value="\'unmanaged\'"> {{ \'TOOLS.UNMANAGED\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'attrSerie3\'].$error" ng-show="dashboarditemForm[\'attrSerie3\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SERIE3_REQUIRED">Serie3 field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'web-report\'" class="md-block">\n <label translate="TOOLS.REPORT">Report</label>\n <input type="search" name="report" ng-model="vm.dashboarditem.report" ng-required="true" autocomplete="off" ng-click="vm.searchReport()">\n <md-icon md-font-icon="icon-magnify" ng-click="vm.searchReport()" aria-label="Search Report"></md-icon>\n <div ng-messages="dashboarditemForm[\'report\'].$error" ng-show="dashboarditemForm[\'report\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.REPORT_REQUIRED">Report field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'web-report\'" class="md-block">\n <label translate="TOOLS.REFRESH">Refresh</label>\n <input type="number" name="attrRefresh" ng-model="vm.dashboarditem.attrRefresh" min="5" value="10" ng-required="true">\n\n <div ng-messages="dashboarditemForm[\'attrRefresh\'].$error" ng-show="dashboarditemForm[\'attrRefresh\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.REFRESH_REQUIRED">Refresh field is required</span>\n </div>\n <div ng-message="min">\n <span translate="TOOLS.ERRORS.REFRESH_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Refresh must be a valid greater or equal than</span> <span>5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="[\'multibar-chart\', \'pie-chart\', \'counter\'].includes(vm.dashboarditem.type)" class="md-block">\n <label translate="TOOLS.FILTERVOICEQUEUES">FilterVoiceQueues</label>\n <md-select name="attrVoiceQueues" ng-model="vm.dashboarditem.attrVoiceQueues" multiple>\n <md-option ng-value="attrVoiceQueues.id" ng-repeat="attrVoiceQueues in vm.voiceQueues" ng-disabled="attrVoiceQueues.canSelect === false">{{ attrVoiceQueues.name }}</md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'attrVoiceQueues\'].$error" ng-show="dashboarditemForm[\'attrVoiceQueues\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.FILTERVOICEQUEUES_REQUIRED">FilterVoiceQueues field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="[\'counter\', \'clock\'].includes(vm.dashboarditem.type)" class="md-block">\n <label translate="TOOLS.FONTSIZE">FontSize</label>\n <input type="number" name="attrFontSize" ng-model="vm.dashboarditem.attrFontSize" min="12" max="40" value="20" ng-required="true">\n\n <div ng-messages="dashboarditemForm[\'attrFontSize\'].$error" ng-show="dashboarditemForm[\'attrFontSize\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.FONTSIZE_REQUIRED">FontSize field is required</span>\n </div>\n <div ng-message="min">\n <span translate="TOOLS.ERRORS.FONTSIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">FontSize must be a valid greater or equal than</span> <span>12</span>\n </div>\n <div ng-message="max">\n <span translate="TOOLS.ERRORS.FONTSIZE_MUST_BE_LESS_THAN_OR_EQUAL_TO">FontSize must be a valid greater or equal than</span> <span>40</span>\n </div>\n </div>\n </md-input-container>\n <div flex md-color-picker ng-model="vm.dashboarditem.foreground" label="{{\'TOOLS.FOREGROUND\' | translate}}" md-color-hex="true" md-color-rgb="false" md-color-hsl="false" md-color-history="false" md-color-material-palette="false" md-color-alpha-channel="false" open-on-input="true"></div>\n <div flex md-color-picker ng-model="vm.dashboarditem.background" label="{{\'TOOLS.BACKGROUND\' | translate}}" md-color-hex="true" md-color-rgb="false" md-color-hsl="false" md-color-history="false" md-color-material-palette="false" md-color-alpha-channel="false" open-on-input="true"></div>\n <md-input-container class="md-block">\n <label translate="TOOLS.LINK">link</label>\n <input type="url" name="link" ng-model="vm.dashboarditem.link">\n\n <div ng-messages="dashboarditemForm[\'link\'].$error" ng-show="dashboarditemForm[\'link\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.LINK_REQUIRED">link field is required</span>\n </div>\n <div ng-message="url">\n <span translate="TOOLS.ERRORS.LINK_MUST_VALID_URL">link must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newDashboardItem" ng-click="vm.saveDashboardItem()" class="send-button md-accent md-raised" ng-disabled="dashboarditemForm.$invalid || dashboarditemForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newDashboardItem" ng-click="vm.addNewDashboardItem()" class="send-button md-accent md-raised" ng-disabled="dashboarditemForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_DASHBOARDITEM" translate-attr-aria-label="TOOLS.ADD_DASHBOARDITEM">\n ADD DASHBOARDITEM\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newDashboardItem" ng-click="vm.deleteDashboardItem($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/customDashboards/edit/view.html",'<div id="tools-customDashboard" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-customDashboards-button md-icon-button" aria-label="Go to customDashboards" ng-click="vm.gotoCustomDashboards()" translate translate-attr-aria-label="TOOLS.GO_TO_CUSTOMDASHBOARDS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="customDashboard-image" hide-xs>\n <img ng-src="assets/images/business/customDashboards.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.customDashboard.id}}\n <span ng-if="vm.customDashboard.name">{{vm.customDashboard.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="TOOLS.CREATED_AT"></span> <span>{{vm.customDashboard.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.clonedialog(vm.customDashboard, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="clone">\n <md-tooltip><span translate="TOOLS.CLONE_CUSTOMDASHBOARD"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.customDashboard, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="TOOLS.GOTO_CUSTOMDASHBOARD"></span></md-tooltip>\n <md-icon md-font-icon="icon-forward"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveCustomDashboard()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (dashboardForm.$invalid)" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="TOOLS.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="customDashboard-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="TOOLS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.customDashboard.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.customDashboard.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="TOOLS.DASHBOARD">DASHBOARD</span>\n </md-tab-label>\n <md-tab-body>\n <div class="customDashboard-detail-form-container dashboard md-background-bg md-whiteframe-1dp">\n <div ng-controller="CustomDashboardItemsController as vm_cd" ng-init="vm_cd.init(vm.customDashboard, vm.crudPermissions)" class="customDashboard-detail-form-container no-padding no-margin" layout="column">\n <div ng-if="vm_cd.customDashboard.widgets.length">\n <md-button class="md-fab md-mini md-accent" ng-click="vm_cd.createOrEditWidget()" ng-if="vm_cd.crudPermissions.canEdit" aria-label="add item">\n <md-tooltip>{{ \'TOOLS.ADD_WIDGET\' | translate }}</md-tooltip>\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-content flex>\n <ms-widget-engine config="vm_cd.customDashboard" on-edit="vm_cd.createOrEditWidget(widget)" on-delete="vm_cd.deleteWidget(widget)"></ms-widget-engine>\n </md-content>\n </div>\n <div ng-if="!vm_cd.customDashboard.widgets.length" layout="row" layout-align="center center" flex>\n <md-button class="width-130 height-130 md-accent md-raised" ng-click="vm_cd.createOrEditWidget()" aria-label="add item" layout="column">\n <md-icon md-font-icon="icon-plus-circle" class="s50"></md-icon>\n <span layout-wrap translate="TOOLS.ADD_WIDGET"></span>\n </md-button>\n </div>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/tools/views/customDashboards/partialViews/reports/treeReports.html",'<md-dialog class="report-selection-dialog" aria-label="Report Selection" flex="60">\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2>Select Report</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeReportDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <div class="content" md-background-bg layout="row" layout-align="start start">\n <div layout="column" flex="30">\n <md-card class="padding-10 scrollable" ms-scroll>\n <div js-tree="vm.treeConfig" tree-events-obj="vm.treeDefaultEvents" ng-model="vm.treeDefaultData" tree="vm.treeDefaultInstance"></div>\n </md-card>\n <md-card class="padding-10 scrollable" ms-scroll>\n <div js-tree="vm.treeConfig" tree-events-obj="vm.treeCustomEvents" ng-model="vm.treeCustomData" tree="vm.treeCustomInstance"></div>\n </md-card>\n </div>\n <md-card flex="70">\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="h2 secondary-text">{{vm.currentNode.text}}</span>\n <p ng-if="vm.currentPath">\n <span class="text-boxed">{{vm.currentPath}}</span>\n </p>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select ng-model="vm.selectedReport" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getReports">\n <tr md-row>\n <th md-column md-order-by="id" width="10px">{{ "ANALYTICS.ID" | translate }}</th>\n <th md-column md-order-by="name">{{ "ANALYTICS.NAME" | translate }}</th>\n <th md-column md-order-by="description">{{ "ANALYTICS.DESCRIPTION" | translate }}</th>\n <th md-column md-order-by="createdAt">{{ "ANALYTICS.CREATED_AT" | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.reports.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="ANALYTICS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="report" md-select-id="id" ng-repeat="report in vm.reports.rows">\n <td md-cell class="id">{{ report.id }}</td>\n <td md-cell class="name">{{ report.name }}</td>\n <td md-cell class="description">{{ report.description }}</td>\n <td md-cell class="createdAt">{{ report.createdAt | date: "medium" }}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{ \'ANALYTICS.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'ANALYTICS.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'ANALYTICS.OF\' | translate }}\'}" md-limit="vm.query.limit" md-limit-options="[10]" md-page="vm.query.page" md-total="{{ vm.reports.count }}" md-on-paginate="vm.getReports" md-page-select></md-table-pagination>\n </md-card>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row">\n <span flex></span>\n <md-button class="md-raised" ng-click="vm.closeReportDialog()">CANCEL</md-button>\n <md-button class="md-accent md-raised" ng-click="vm.selectReport()">CONFIRM</md-button>\n </md-dialog-actions>\n</md-dialog>'),e.put("app/main/apps/tools/views/dispositions/create/dialog.html",'<md-dialog ng-init="vm.onInit()" class="disposition-dialog" aria-label="New Disposition">\n <form name="dispositionForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.newDisposition ? \'TOOLS.NEW_DISPOSITION\' : \'TOOLS.EDIT_DISPOSITION\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.disposition.name" md-maxlength="255" required md-autofocus>\n <div ng-messages="dispositionForm[\'name\'].$error" ng-show="dispositionForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="TOOLS.ERRORS.NAME_MAX_LENGTH" translate-values=\'{max: 255}\'>Name must have a maximum length\n equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.disposition.description" md-maxlength="255">\n <div ng-messages="dispositionForm[\'description\'].$error" ng-show="dispositionForm[\'description\'].$touched" role="alert">\n <div ng-message="md-maxlength">\n <span translate="TOOLS.ERRORS.DESCRIPTION_MAX_LENGTH" translate-values=\'{max: 255}\'>Description must have a\n maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.newDisposition && vm.dispositions.length > 0 || vm.disposition.ParentId" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="TOOLS.FIRST_LEVEL_DISPOSITION">First Level Disposition</label>\n <md-select name="firstLevelDisposition" ng-model="vm.firstLevelDisposition" ng-change="vm.onFirstLevelSelection()">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'first\' }" ng-disabled="disposition.canSelect === false">{{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.firstLevelDisposition" ng-click="vm.clearSelection(\'first\'); dispositionForm.$setDirty();" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear first level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <div ng-if="vm.firstLevelDisposition && vm.anySecondLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="TOOLS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</label>\n <md-select name="secondLevelDisposition" ng-model="vm.secondLevelDisposition">\n <md-option ng-value="disposition" ng-if="disposition.id != vm.disposition.id" ng-repeat="disposition in vm.dispositions | filter: { level: \'second\', ParentId: vm.firstLevelDisposition.id }" ng-disabled="disposition.canSelect === false">{{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.secondLevelDisposition" ng-click="vm.clearSelection(\'second\'); dispositionForm.$setDirty();" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear first level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newDisposition" ng-click="vm.saveDisposition()" class="send-button md-accent md-raised" ng-disabled="dispositionForm.$invalid || dispositionForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newDisposition" ng-click="vm.addNewDisposition()" class="send-button md-accent md-raised" ng-disabled="dispositionForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_DISPOSITION" translate-attr-aria-label="TOOLS.ADD_DISPOSITION">\n ADD DISPOSITION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newDisposition" ng-click="vm.deleteDisposition($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/dispositions/dispositions.html",'<div id="dispositions" class="page-layout simple left-sidenav inner-sidenav">\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="TOOLS.DISPOSITIONS">Dispositions</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedDispositions.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n <div class="close-button-wrapper" ng-click="vm.selectedDispositions = []">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="TOOLS.BACK">Back</span>\n </md-button>\n </div>\n <div flex layout="row" layout-align="space-between center">\n <div>\n <span class="selected-dispositions-count">\n <span>{{vm.selectedDispositions.length}}</span>\n <span translate="TOOLS.SELECTED">selected</span>\n </span>\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TOOLS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllDispositions()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectDispositions()" translate="TOOLS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedDispositions" csv-label="true" filename="dispositions.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n <div layout="row">\n <div class="column" flex="20">\n <md-card>\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm.query.level = null; vm.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm.query.level" ng-change="vm.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n \x3c!-- DISPOSITION TABLE --\x3e\n <md-card flex="80">\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedDispositions" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.dispositions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="disposition" md-select-id="id" ng-repeat="disposition in vm.dispositions.rows">\n <td ng-click="vm.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm.levels[disposition.level] }}</td>\n <td ng-click="vm.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteconfirm(disposition, $event)" translate="TOOLS.DELETE_DISPOSITION">\n Delete Disposition\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.dispositions.count}}" md-on-paginate="vm.getDispositions" md-page-select>\n </md-table-pagination>\n </md-card>\n \x3c!-- / DISPOSITION TABLE --\x3e\n </div>\n \x3c!-- NO RESULTS --\x3e\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n </div>\n \x3c!-- / CONTENT --\x3e\n \x3c!-- ADD DISPOSITION BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-disposition-button" ng-click="vm.createOrEditDisposition($event)" aria-label="add disposition" translate translate-attr-aria-label="TOOLS.ADD_DISPOSITION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD DISPOSITION BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/intervals/create/dialog.html",'<md-dialog class="interval-dialog" aria-label="New Interval">\n <form name="intervalForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.interval.name" ng-required="true" autofocus>\n\n <div ng-messages="intervalForm[\'name\'].$error" ng-show="intervalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.interval.description">\n\n <div ng-messages="intervalForm[\'description\'].$error" ng-show="intervalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newInterval" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newInterval" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n ADD INTERVAL\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newInterval" ng-click="vm.deleteInterval($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/intervals/edit/apps/interval/dialog.html",'<md-dialog class="interval-dialog" aria-label="New Interval">\n <form name="intervalForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input ng-model="vm.interval.name" type="text" name="name" placeholder="{{\'TOOLS.NAME\' | translate}}" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" md-autofocus required>\n <div ng-messages="intervalForm.name.$error" ng-show="intervalForm.name.$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="type" ng-repeat=\'type in vm.types\'>{{ type | ucfirst }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.type === \'list\'">\n <label translate="TOOLS.INTERVALS">Intervals</label>\n <md-select ng-model="vm.interval.IntervalId" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ interval.name }}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!-- TIMERANGE START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.TIME_RANGE">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <div class="md-block" flex>\n <mdp-time-picker name="timeRangeFrom" mdp-placeholder="FROM" ng-model="vm.timeRangeFrom" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <div ng-messages="intervalForm.timeRangeFrom.$error" ng-show="intervalForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_FROM_INVALID">Time Range From field is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n <div class="md-block" flex ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_INVALID">Time Range To field is invalid</span>\n </div>\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </div>\n \x3c!-- TIMERANGE END --\x3e\n\n \x3c!-- DAYSOFWEEK START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.WEEK_DAYS">Week Days</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.dayOfWeekFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex class="md-block" ng-if="vm.dayOfWeekFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="dayOfWeekTo" ng-model="vm.dayOfWeekTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- DAYSOFWEEK END --\x3e\n\n \x3c!-- MONTHDAY START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTH_DAYS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthDayFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthDayFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthDayTo" ng-model="vm.monthDayTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTHDAY END --\x3e\n\n \x3c!-- MONTH START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTHS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthTo" ng-model="vm.monthTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTH END --\x3e\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="!vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n ADD INTERVAL\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/intervals/edit/intervals/dialog.html",'<md-dialog class="interval-dialog" aria-label="New Interval">\n <form name="intervalForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="" name="name" ng-model="vm.interval.name" ng-required="true" autofocus>\n\n <div ng-messages="intervalForm[\'name\'].$error" ng-show="intervalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newInterval" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newInterval" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n ADD INTERVAL\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newInterval" ng-click="vm.deleteInterval($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/intervals/edit/view.html",'<div id="tools-interval" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-intervals-button md-icon-button" aria-label="Go to intervals" ng-click="vm.gotoIntervals()" translate translate-attr-aria-label="TOOLS.GO_TO_INTERVALS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="interval-image" hide-xs>\n <img ng-src="assets/images/business/intervals.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.interval.id}}\n <span ng-if="vm.interval.name">{{vm.interval.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="TOOLS.CREATED_AT"></span> <span>{{vm.interval.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveInterval()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (intervalsForm.$invalid)" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="TOOLS.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="interval-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="TOOLS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.interval.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.interval.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="TOOLS.INTERVALS">INTERVALS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="interval-detail-form-container intervals md-background-bg md-whiteframe-1dp">\n <div ng-controller="IntervalIntervalsController as vm_dc" ng-init="vm_dc.init(vm.interval, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedIntervalIntervals.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="TOOLS.INTERVALS">Intervals</span>\n <ms-search-bar on-search="vm_dc.getIntervalIntervals()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditIntervalInterval($event)" aria-label="add interval" translate translate-attr-label="TOOLS.ADD_INTERVAL">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedIntervalIntervals.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedIntervalIntervals.length}} {{vm_dc.selectedIntervalIntervals.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedIntervalIntervals" csv-label="true" filename="intervals.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedIntervalIntervals($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedIntervalIntervals" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getIntervalIntervals">\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column md-order-by="id">\n {{ \'TOOLS.ID\' | translate }}\n </th>\n <th md-column md-order-by="name">\n {{ \'TOOLS.NAME\' | translate }}\n </th>\n <th md-column md-order-by="interval">\n {{ \'TOOLS.INTERVAL\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'TOOLS.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body ng-sortable="vm_dc.sortableTable">\n <tr md-row md-select="interval" md-select-id="id" ng-repeat="interval in vm_dc.intervalIntervals.rows">\n <td md-cell>\n <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n </td>\n <td ng-click="vm_dc.createOrEditIntervalInterval($event, interval)" md-cell>\n {{interval.id}}\n </td>\n <td ng-click="vm_dc.createOrEditIntervalInterval($event, interval)" md-cell>\n {{interval.name}}\n </td>\n <td ng-click="vm_dc.createOrEditIntervalInterval($event, interval)" md-cell>\n {{interval.interval}}\n </td>\n <td ng-click="vm_dc.createOrEditIntervalInterval($event, interval)" md-cell>\n {{ interval.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditIntervalInterval($event, interval)" translate="TOOLS.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(interval, $event)" translate="TOOLS.DELETE_INTERVAL">\n Delete Interval\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.intervalIntervals.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="TOOLS.NO_INTERVALS_AVAILABLE">No intervals available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/tools/views/intervals/intervals.html",'<div id="intervals" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="TOOLS.INTERVALS">Intervals</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedIntervals.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedIntervals =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="TOOLS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-intervals-count">\n <span>{{vm.selectedIntervals.length}}</span>\n <span translate="TOOLS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TOOLS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllIntervals()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectIntervals()" translate="TOOLS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedIntervals" csv-label="true" filename="intervals.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedIntervals($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- INTERVAL TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedIntervals" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getIntervals">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.intervals.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="interval" md-select-id="id" ng-repeat="interval in vm.intervals.rows">\n <td md-cell ng-if="interval.userpic"><img class="avatar" alt="{{interval.name}}" ng-src="api/users/{{interval.id}}/avatar" /></td>\n <td md-cell ng-if="!interval.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{interval.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(interval, ev) : vm.createOrEditInterval($event, interval)" md-cell class="id ">{{interval.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(interval, ev) : vm.createOrEditInterval($event, interval)" md-cell class="name ">{{interval.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(interval, ev) : vm.createOrEditInterval($event, interval)" md-cell class="description ">{{interval.description}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(interval, $event )" translate="TOOLS.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(interval, $event )" translate="TOOLS.DELETE_INTERVAL">\n Delete Interval\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.intervals.count}}" md-on-paginate="vm.getIntervals" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / INTERVAL TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD INTERVAL BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-interval-button" ng-click="vm.createOrEditInterval($event)" aria-label="add interval" translate translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD INTERVAL BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/pauses/create/dialog.html",'<md-dialog class="pause-dialog" aria-label="New Pause">\n <form name="pauseForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.pause.name" ng-required="true" autofocus>\n\n <div ng-messages="pauseForm[\'name\'].$error" ng-show="pauseForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.pause.description">\n\n <div ng-messages="pauseForm[\'description\'].$error" ng-show="pauseForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newPause" ng-click="vm.savePause()" class="send-button md-accent md-raised" ng-disabled="pauseForm.$invalid || pauseForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newPause" ng-click="vm.addNewPause()" class="send-button md-accent md-raised" ng-disabled="pauseForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_PAUSE" translate-attr-aria-label="TOOLS.ADD_PAUSE">\n ADD PAUSE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newPause" ng-click="vm.deletePause($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/pauses/pauses.html",'<div id="pauses" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="TOOLS.PAUSES">Pauses</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedPauses.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedPauses =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="TOOLS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-pauses-count">\n <span>{{vm.selectedPauses.length}}</span>\n <span translate="TOOLS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TOOLS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllPauses()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectPauses()" translate="TOOLS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedPauses" csv-label="true" filename="pauses.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedPauses($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- PAUSE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedPauses" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getPauses">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.pauses.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="pause" md-select-id="id" ng-repeat="pause in vm.pauses.rows">\n <td md-cell ng-if="pause.userpic"><img class="avatar" alt="{{pause.name}}" ng-src="api/users/{{pause.id}}/avatar" /></td>\n <td md-cell ng-if="!pause.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{pause.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditPause($event, pause)" md-cell class="id ">{{pause.id}}</td>\n <td ng-click="vm.createOrEditPause($event, pause)" md-cell class="name ">{{pause.name}}</td>\n <td ng-click="vm.createOrEditPause($event, pause)" md-cell class="description ">{{pause.description}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(pause, $event )" translate="TOOLS.EDIT_PAUSE">\n Edit Pause\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(pause, $event )" translate="TOOLS.DELETE_PAUSE">\n Delete Pause\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.pauses.count}}" md-on-paginate="vm.getPauses" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / PAUSE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD PAUSE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-pause-button" ng-click="vm.createOrEditPause($event)" aria-label="add pause" translate translate-attr-aria-label="TOOLS.ADD_PAUSE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD PAUSE BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/schedules/create/dialog.html",'<md-dialog class="schedule-dialog" aria-label="New Schedule">\n <form name="scheduleForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.schedule.name" ng-required="true" autofocus>\n\n <div ng-messages="scheduleForm[\'name\'].$error" ng-show="scheduleForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.REPORT">Report</label>\n <input type="search" name="report" ng-model="vm.schedule.report" ng-required="true" autocomplete="off" ng-click="vm.searchReport()">\n <md-icon md-font-icon="icon-magnify" ng-click="vm.searchReport()" aria-label="Search Report"></md-icon>\n <div ng-messages="scheduleForm[\'report\'].$error" ng-show="scheduleForm[\'report\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.REPORT_REQUIRED">Report field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.OUTPUT">Output</label>\n <md-select name="output" ng-model="vm.schedule.output" required>\n <md-option ng-value="\'csv\'">CSV</md-option>\n <md-option ng-value="\'pdf\'">PDF</md-option>\n <md-option ng-value="\'xlsx\'">Excel</md-option>\n </md-select>\n <div ng-messages="scheduleForm[\'output\'].$error" ng-show="scheduleForm[\'output\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.OUTPUT_REQUIRED">Output field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.schedule.active" aria-label="Active"><span translate="TOOLS.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label translate="TOOLS.VALIDITYSTART">ValidityStart</label>\n <md-content layout="row" class="md-padding">\n <div flex class="md-block">\n <mdp-date-picker mdp-open-on-click required name="startAtDate" mdp-placeholder="Date" mdp-format="YYYY-MM-DD" ng-model="vm.schedule.startAt" ng-init="vm.schedule.startAt = vm.getDateFromString(vm.schedule.startAt)">\n <div ng-messages="scheduleForm.dateRangeFrom.$error" ng-show="scheduleForm.dateRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DATE_REQUIRED">Date is required</span>\n </div>\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.DATE_INVALID">Date is invalid</span>\n </div>\n </div>\n </mdp-date-picker>\n </div>\n <div flex class="md-block">\n <mdp-time-picker mdp-open-on-click required name="startAtTime" mdp-placeholder="Time" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.schedule.startAt" ng-init="vm.schedule.startAt = vm.getDateFromString(vm.schedule.startAt)">\n <div ng-messages="scheduleForm.timeRangeFrom.$error" ng-show="scheduleForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_REQUIRED">Time is required</span>\n </div>\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_INVALID">Time is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </md-content>\n </div>\n <div class="md-block">\n <label translate="TOOLS.VALIDITYEND">ValidityEnd</label>\n <md-content layout="row" class="md-padding">\n <div flex class="md-block">\n <mdp-date-picker mdp-open-on-click required name="endAtDate" mdp-placeholder="Date" mdp-format="YYYY-MM-DD" ng-model="vm.schedule.endAt" ng-init="vm.schedule.endAt = vm.getDateFromString(vm.schedule.endAt)">\n <div ng-messages="scheduleForm.dateRangeFrom.$error" ng-show="scheduleForm.dateRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DATE_REQUIRED">Date is required</span>\n </div>\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.DATE_INVALID">Date is invalid</span>\n </div>\n </div>\n </mdp-date-picker>\n </div>\n <div flex class="md-block">\n <mdp-time-picker mdp-open-on-click required name="endAtTime" mdp-placeholder="Time" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.schedule.endAt" ng-init="vm.schedule.endAt = vm.getDateFromString(vm.schedule.endAt)">\n <div ng-messages="scheduleForm.timeRangeFrom.$error" ng-show="scheduleForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_REQUIRED">Time is required</span>\n </div>\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_INVALID">Time is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </md-content>\n </div>\n <div flex class="md-block">\n <label> {{ \'TOOLS.CRON\' | translate }} ({{vm.schedule.cron}})</label>\n <cron-selection name="cron" ng-model="vm.schedule.cron" template="assets/angular-cron-jobs/template.html" required></cron-selection>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.LAST">Last</label>\n <input type="number" name="subtractNumber" ng-model="vm.schedule.subtractNumber" value="1" ng-required="true">\n\n <div ng-messages="scheduleForm[\'subtractNumber\'].$error" ng-show="scheduleForm[\'subtractNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.LAST_REQUIRED">Last field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.LASTUNIT">LastUnit</label>\n <md-select name="subtractUnit" ng-model="vm.schedule.subtractUnit" required>\n <md-option ng-value="\'minutes\'">Minutes</md-option>\n <md-option ng-value="\'hours\'">Hours</md-option>\n <md-option ng-value="\'days\'">Days</md-option>\n <md-option ng-value="\'weeks\'">Weeks</md-option>\n <md-option ng-value="\'months\'">Months</md-option>\n <md-option ng-value="\'quarters\'">Quarters</md-option>\n <md-option ng-value="\'years\'">Years</md-option>\n </md-select>\n <div ng-messages="scheduleForm[\'subtractUnit\'].$error" ng-show="scheduleForm[\'subtractUnit\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.LASTUNIT_REQUIRED">LastUnit field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.schedule.sendMail" aria-label="SendMail"><span translate="TOOLS.SENDMAIL">SendMail</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.schedule.sendMail" class="md-block">\n <label translate="TOOLS.MAILACCOUNT">MailAccount</label>\n <md-select name="MailAccountId" ng-model="vm.schedule.MailAccountId" required>\n <md-option ng-value="MailAccountId.id" ng-repeat="MailAccountId in vm.mailAccounts" ng-disabled="MailAccountId.canSelect === false">{{ MailAccountId.name }}</md-option>\n </md-select>\n <div ng-messages="scheduleForm[\'MailAccountId\'].$error" ng-show="scheduleForm[\'MailAccountId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.MAILACCOUNT_REQUIRED">MailAccount field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.schedule.sendMail" class="md-block">\n <label translate="TOOLS.EMAILADDRESS">EmailAddress</label>\n <input type="text" name="email" ng-model="vm.schedule.email" ng-required="true">\n\n <div class="hint"><span translate="TOOLS.HELP.EMAILADDRESS"></span></div>\n <div ng-messages="scheduleForm[\'email\'].$error" ng-show="scheduleForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.EMAILADDRESS_REQUIRED">EmailAddress field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.schedule.sendMail" class="md-block">\n <label translate="TOOLS.EMAILCCADDRESS">EmailCcAddress</label>\n <input type="text" name="cc" ng-model="vm.schedule.cc">\n\n <div class="hint"><span translate="TOOLS.HELP.EMAILCCADDRESS"></span></div>\n <div ng-messages="scheduleForm[\'cc\'].$error" ng-show="scheduleForm[\'cc\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.EMAILCCADDRESS_REQUIRED">EmailCcAddress field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.schedule.sendMail" class="md-block">\n <label translate="TOOLS.EMAILBCCADDRESS">EmailBccAddress</label>\n <input type="text" name="bcc" ng-model="vm.schedule.bcc">\n\n <div class="hint"><span translate="TOOLS.HELP.EMAILBCCADDRESS"></span></div>\n <div ng-messages="scheduleForm[\'bcc\'].$error" ng-show="scheduleForm[\'bcc\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.EMAILBCCADDRESS_REQUIRED">EmailBccAddress field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.schedule.sendMail" class="md-block">\n <md-switch ng-model="vm.schedule.sendIfEmpty" aria-label="SendIfEmpty"><span translate="TOOLS.SENDIFEMPTY">SendIfEmpty</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="" name="description" ng-model="vm.schedule.description">\n\n <div ng-messages="scheduleForm[\'description\'].$error" ng-show="scheduleForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newSchedule" ng-click="vm.saveSchedule()" class="send-button md-accent md-raised" ng-disabled="scheduleForm.$invalid || scheduleForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newSchedule" ng-click="vm.addNewSchedule()" class="send-button md-accent md-raised" ng-disabled="scheduleForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_SCHEDULE" translate-attr-aria-label="TOOLS.ADD_SCHEDULE">\n ADD SCHEDULE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newSchedule" ng-click="vm.deleteSchedule($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/schedules/partialViews/reports/treeReports.html",'<md-dialog class="report-selection-dialog" aria-label="Report Selection" flex="60">\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2>Select Report</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeReportDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <div class="content" md-background-bg layout="row" layout-align="start start">\n <div layout="column" flex="30">\n <md-card class="padding-10 scrollable" ms-scroll>\n <div js-tree="vm.treeConfig" tree-events-obj="vm.treeDefaultEvents" ng-model="vm.treeDefaultData" tree="vm.treeDefaultInstance"></div>\n </md-card>\n <md-card class="padding-10 scrollable" ms-scroll>\n <div js-tree="vm.treeConfig" tree-events-obj="vm.treeCustomEvents" ng-model="vm.treeCustomData" tree="vm.treeCustomInstance"></div>\n </md-card>\n </div>\n <md-card flex="70">\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="h2 secondary-text">{{vm.currentNode.text}}</span>\n <p ng-if="vm.currentPath">\n <span class="text-boxed">{{vm.currentPath}}</span>\n </p>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select ng-model="vm.selectedReport" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getReports">\n <tr md-row>\n <th md-column md-order-by="id" width="10px">{{ "ANALYTICS.ID" | translate }}</th>\n <th md-column md-order-by="name">{{ "ANALYTICS.NAME" | translate }}</th>\n <th md-column md-order-by="description">{{ "ANALYTICS.DESCRIPTION" | translate }}</th>\n <th md-column md-order-by="createdAt">{{ "ANALYTICS.CREATED_AT" | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.reports.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="ANALYTICS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="report" md-select-id="id" ng-repeat="report in vm.reports.rows">\n <td md-cell class="id">{{ report.id }}</td>\n <td md-cell class="name">{{ report.name }}</td>\n <td md-cell class="description">{{ report.description }}</td>\n <td md-cell class="createdAt">{{ report.createdAt | date: "medium" }}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{ \'ANALYTICS.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'ANALYTICS.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'ANALYTICS.OF\' | translate }}\'}" md-limit="vm.query.limit" md-limit-options="[10]" md-page="vm.query.page" md-total="{{ vm.reports.count }}" md-on-paginate="vm.getReports" md-page-select></md-table-pagination>\n </md-card>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row">\n <span flex></span>\n <md-button class="md-raised" ng-click="vm.closeReportDialog()">CANCEL</md-button>\n <md-button class="md-accent md-raised" ng-click="vm.selectReport()">CONFIRM</md-button>\n </md-dialog-actions>\n</md-dialog>'),e.put("app/main/apps/tools/views/schedules/schedules.html",'<div id="schedules" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="TOOLS.SCHEDULER">Scheduler</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedScheduler.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedScheduler =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="TOOLS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-schedules-count">\n <span>{{vm.selectedScheduler.length}}</span>\n <span translate="TOOLS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TOOLS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllScheduler()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectScheduler()" translate="TOOLS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedScheduler" csv-label="true" filename="schedules.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedScheduler($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- SCHEDULE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedScheduler" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getScheduler">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n <th md-column md-order-by="active">{{ \'TOOLS.ACTIVE\' | translate }}</th>\n <th md-column md-order-by="startAt">{{ \'TOOLS.VALIDITYSTART\' | translate }}</th>\n <th md-column md-order-by="endAt">{{ \'TOOLS.VALIDITYEND\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.schedules.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="schedule" md-select-id="id" ng-repeat="schedule in vm.schedules.rows">\n <td md-cell ng-if="schedule.userpic"><img class="avatar" alt="{{schedule.name}}" ng-src="api/users/{{schedule.id}}/avatar" /></td>\n <td md-cell ng-if="!schedule.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{schedule.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditSchedule($event, schedule)" md-cell class="id ">{{schedule.id}}</td>\n <td ng-click="vm.createOrEditSchedule($event, schedule)" md-cell class="name ">{{schedule.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(schedule, ev) : vm.createOrEditSchedule($event, schedule)" md-cell class="active ">\n <md-icon md-colors="{color: {{schedule.active ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{schedule.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.createOrEditSchedule($event, schedule)" md-cell class="startAt ">{{schedule.startAt | date:\'medium\' }}</td>\n <td ng-click="vm.createOrEditSchedule($event, schedule)" md-cell class="endAt ">{{schedule.endAt | date:\'medium\' }}</td>\n <td ng-click="vm.createOrEditSchedule($event, schedule)" md-cell class="description ">{{schedule.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(schedule, $event )" translate="TOOLS.EDIT_SCHEDULE">\n Edit Schedule\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.runconfirm(schedule, $event )" translate="TOOLS.RUN_SCHEDULE">\n Run Schedule\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(schedule, $event )" translate="TOOLS.DELETE_SCHEDULE">\n Delete Schedule\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.schedules.count}}" md-on-paginate="vm.getScheduler" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / SCHEDULE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD SCHEDULE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-schedule-button" ng-click="vm.createOrEditSchedule($event)" aria-label="add schedule" translate translate-attr-aria-label="TOOLS.ADD_SCHEDULE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD SCHEDULE BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/sounds/create/dialog.html",'<md-dialog class="sound-dialog" aria-label="New Sound">\n <form name="soundForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.sound.name" ng-required="true" autofocus>\n\n <div ng-messages="soundForm[\'name\'].$error" ng-show="soundForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.sound.description">\n\n <div ng-messages="soundForm[\'description\'].$error" ng-show="soundForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newSound" ng-click="vm.saveSound()" class="send-button md-accent md-raised" ng-disabled="soundForm.$invalid || soundForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newSound" ng-click="vm.addNewSound()" class="send-button md-accent md-raised" ng-disabled="soundForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_SOUND" translate-attr-aria-label="TOOLS.ADD_SOUND">\n ADD SOUND\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newSound" ng-click="vm.deleteSound($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/sounds/sounds.html",'<div id="sounds" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="TOOLS.SOUNDS">Sounds</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedSounds.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedSounds =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="TOOLS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-sounds-count">\n <span>{{vm.selectedSounds.length}}</span>\n <span translate="TOOLS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TOOLS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllSounds()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectSounds()" translate="TOOLS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedSounds" csv-label="true" filename="sounds.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedSounds($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- SOUND TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedSounds" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getSounds">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n <th md-column md-order-by="audio">{{ \'TOOLS.AUDIO\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.sounds.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="sound" md-select-id="id" ng-repeat="sound in vm.sounds.rows">\n <td md-cell ng-if="sound.userpic"><img class="avatar" alt="{{sound.name}}" ng-src="api/users/{{sound.id}}/avatar" /></td>\n <td md-cell ng-if="!sound.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{sound.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditSound($event, sound)" md-cell class="id ">{{sound.id}}</td>\n <td ng-click="vm.createOrEditSound($event, sound)" md-cell class="name ">{{sound.name}}</td>\n <td md-cell class="audio ">\n \x3c!-- audio recording directive --\x3e\n <ms-recording id="sound.id" model="\'sound\'"></ms-recording>\n \x3c!-- / audio recording directive --\x3e\n </td>\n <td ng-click="vm.createOrEditSound($event, sound)" md-cell class="description ">{{sound.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(sound, $event )" translate="TOOLS.EDIT_SOUND">\n Edit Sound\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.downloadfile2(sound, $event , \'sounds\' )" translate="TOOLS.DOWNLOAD_SOUND">\n Download Sound\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(sound, $event )" translate="TOOLS.DELETE_SOUND">\n Delete Sound\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.sounds.count}}" md-on-paginate="vm.getSounds" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / SOUND TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- UPLOAD SOUND BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="upload-sound-button" ng-click="vm.uploadSound($event)" aria-label="upload sound" translate translate-attr-aria-label="TOOLS.UPLOAD_SOUND">\n <md-icon md-font-icon="icon-upload"></md-icon>\n </md-button>\n \x3c!-- / UPLOAD SOUND BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/sounds/upload/dialog.html",'<md-dialog class="upload-dialog" aria-label="Upload ">\n <form name="uploadForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <div id="sound-uploader" ng-hide="vm.uploadState == \'uploading\'" flow-init="vm.ngFlowOptions" flow-name="vm.ngFlow.flow" flow-files-submitted="vm.upload()" flow-file-added="vm.fileAdded($file)" flow-file-success="vm.fileSuccess($file, $message)" flow-error="vm.uploadError($file, $message)" flow-complete="vm.uploadComplete()" flow-drop flow-drag-enter="vm.dropping=true" flow-drag-leave="vm.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="TOOLS.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn>\n Upload\n </md-button>\n <span class="secondary-text mt-8" translate="TOOLS.DROP_TO_UPLOAD_MESSAGE">You can also drop your file here to upload.</span>\n </div>\n </div>\n\n <div layout="column" layout-align="space-between center" ng-show="vm.uploadState == \'uploading\'">\n <div>\n <span translate="TOOLS.UPLOADING">Uploading</span>\n <span>{{vm.sound.file.name}}</span>\n </div>\n <md-progress-linear md-mode="indeterminate"></md-progress-linear>\n </div>\n\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center"></div>\n <div layout="row">\n <md-button ng-click="vm.closeDialog()" ng-hide="vm.uploadState == \'uploading\'" class="md-accent md-raised" aria-label="FINISH" translate="TOOLS.FINISH" translate-attr-aria-label="TOOLS.FINISH">\n FINISH\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/tags/create/dialog.html",'<md-dialog class="tag-dialog" aria-label="New Tag">\n <form name="tagForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.tag.name" ng-required="true" autofocus>\n\n <div ng-messages="tagForm[\'name\'].$error" ng-show="tagForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.tag.description">\n\n <div ng-messages="tagForm[\'description\'].$error" ng-show="tagForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <div flex md-color-picker ng-model="vm.tag.color" label="{{\'TOOLS.COLOR\' | translate}}" md-color-hex="true" md-color-rgb="false" md-color-hsl="false" md-color-history="false" md-color-material-palette="false" md-color-alpha-channel="false" open-on-input="true"></div>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newTag" ng-click="vm.saveTag()" class="send-button md-accent md-raised" ng-disabled="tagForm.$invalid || tagForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newTag" ng-click="vm.addNewTag()" class="send-button md-accent md-raised" ng-disabled="tagForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_TAG" translate-attr-aria-label="TOOLS.ADD_TAG">\n ADD TAG\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newTag" ng-click="vm.deleteTag($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/tags/tags.html",'<div id="tags" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="TOOLS.TAGS">Tags</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedTags.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedTags =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="TOOLS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-tags-count">\n <span>{{vm.selectedTags.length}}</span>\n <span translate="TOOLS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TOOLS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllTags()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectTags()" translate="TOOLS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedTags" csv-label="true" filename="tags.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedTags($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- TAG TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedTags" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTags">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n <th md-column md-order-by="color">{{ \'TOOLS.COLOR\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.tags.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="tag" md-select-id="id" ng-repeat="tag in vm.tags.rows">\n <td md-cell ng-if="tag.userpic"><img class="avatar" alt="{{tag.name}}" ng-src="api/users/{{tag.id}}/avatar" /></td>\n <td md-cell ng-if="!tag.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{tag.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditTag($event, tag)" md-cell class="id ">{{tag.id}}</td>\n <td ng-click="vm.createOrEditTag($event, tag)" md-cell class="name ">{{tag.name}}</td>\n <td ng-click="vm.createOrEditTag($event, tag)" md-cell class="description ">{{tag.description}}</td>\n <td ng-click="vm.createOrEditTag($event, tag)" md-cell class="color ">{{tag.color}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(tag, $event )" translate="TOOLS.EDIT_TAG">\n Edit Tag\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(tag, $event )" translate="TOOLS.DELETE_TAG">\n Delete Tag\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.tags.count}}" md-on-paginate="vm.getTags" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / TAG TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD TAG BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-tag-button" ng-click="vm.createOrEditTag($event)" aria-label="add tag" translate translate-attr-aria-label="TOOLS.ADD_TAG">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD TAG BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/templates/create/dialog.html",'<md-dialog class="template-dialog" aria-label="New Template">\n <form name="templateForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.template.name" ng-required="true" autofocus>\n\n <div ng-messages="templateForm[\'name\'].$error" ng-show="templateForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="TOOLS.CONTENT">Content</label>\n <textarea aria-label="Content html" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.template.html"></textarea>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.template.description">\n\n <div ng-messages="templateForm[\'description\'].$error" ng-show="templateForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newTemplate" ng-click="vm.saveTemplate()" class="send-button md-accent md-raised" ng-disabled="templateForm.$invalid || templateForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newTemplate" ng-click="vm.addNewTemplate()" class="send-button md-accent md-raised" ng-disabled="templateForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_TEMPLATE" translate-attr-aria-label="TOOLS.ADD_TEMPLATE">\n ADD TEMPLATE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newTemplate" ng-click="vm.deleteTemplate($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/templates/templates.html",'<div id="templates" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="TOOLS.TEMPLATES">Templates</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedTemplates.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedTemplates =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="TOOLS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-templates-count">\n <span>{{vm.selectedTemplates.length}}</span>\n <span translate="TOOLS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TOOLS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllTemplates()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectTemplates()" translate="TOOLS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedTemplates" csv-label="true" filename="templates.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedTemplates($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- TEMPLATE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedTemplates" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTemplates">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.templates.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="template" md-select-id="id" ng-repeat="template in vm.templates.rows">\n <td md-cell ng-if="template.userpic"><img class="avatar" alt="{{template.name}}" ng-src="api/users/{{template.id}}/avatar" /></td>\n <td md-cell ng-if="!template.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{template.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditTemplate($event, template)" md-cell class="id ">{{template.id}}</td>\n <td ng-click="vm.createOrEditTemplate($event, template)" md-cell class="name ">{{template.name}}</td>\n <td ng-click="vm.createOrEditTemplate($event, template)" md-cell class="description ">{{template.description}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(template, $event )" translate="TOOLS.EDIT_TEMPLATE">\n Edit Template\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(template, $event )" translate="TOOLS.DELETE_TEMPLATE">\n Delete Template\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.templates.count}}" md-on-paginate="vm.getTemplates" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / TEMPLATE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD TEMPLATE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-template-button" ng-click="vm.createOrEditTemplate($event)" aria-label="add template" translate translate-attr-aria-label="TOOLS.ADD_TEMPLATE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD TEMPLATE BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/triggers/create/dialog.html",'<md-dialog class="trigger-dialog" aria-label="New Trigger">\n <form name="triggerForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.newTrigger ? \'TOOLS.NEW_TRIGGER\' : \'TOOLS.EDIT_TRIGGER\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.trigger.name" required md-autofocus>\n <div ng-messages="triggerForm[\'name\'].$error" ng-show="triggerForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.trigger.channel" required ng-disabled="!vm.newTrigger">\n <md-option ng-value="\'voice\'"> {{ \'TOOLS.VOICE\' | translate }} </md-option>\n <md-option ng-value="\'openchannel\'" ng-if="vm.license.openchannel"> {{ \'TOOLS.OPENCHANNEL\' | translate }}\n </md-option>\n <md-option ng-value="\'chat\'" ng-if="vm.license.chat"> {{ \'TOOLS.CHAT\' | translate }} </md-option>\n <md-option ng-value="\'mail\'" ng-if="vm.license.mail"> {{ \'TOOLS.MAIL\' | translate }} </md-option>\n <md-option ng-value="\'sms\'" ng-if="vm.license.messaging"> {{ \'TOOLS.SMS\' | translate }} </md-option>\n <md-option ng-value="\'fax\'" ng-if="vm.license.fax"> {{ \'TOOLS.FAX\' | translate }} </md-option>\n <md-option ng-value="\'whatsapp\'" ng-if="vm.license.whatsapp"> {{ \'TOOLS.WHATSAPP\' | translate }} </md-option>\n </md-select>\n <div ng-messages="triggerForm[\'channel\'].$error" ng-show="triggerForm[\'channel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.trigger.status" aria-label="Status"><span translate="TOOLS.STATUS">Status</span>\n </md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.trigger.description">\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{ error.message }}</span>\n <span class="type">({{ error.type }})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newTrigger" ng-click="vm.saveTrigger()" class="send-button md-accent md-raised" ng-disabled="triggerForm.$invalid || triggerForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newTrigger" ng-click="vm.addNewTrigger()" class="send-button md-accent md-raised" ng-disabled="triggerForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_TRIGGER" translate-attr-aria-label="TOOLS.ADD_TRIGGER">\n ADD TRIGGER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newTrigger" ng-click="vm.deleteTrigger($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/triggers/edit/actions/actions.html",'<div ng-controller="TriggerActionsController as vm_dc" ng-init="vm_dc.onInit(vm.trigger, vm.crudPermissions)">\r\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedTriggerActions.length">\r\n <div class="md-toolbar-tools">\r\n <span class="md-subhead" translate="TOOLS.ACTIONS">Actions</span>\r\n <ms-search-bar on-search="vm_dc.getTriggerActions()" query="vm_dc.query" debounce="300" direction="down">\r\n </ms-search-bar>\r\n <div flex></div>\r\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditTriggerAction($event)" aria-label="add action" translate translate-attr-label="TOOLS.ADD_ACTION">\r\n <md-icon md-font-icon="icon-plus"></md-icon>\r\n </md-button>\r\n </div>\r\n </md-toolbar>\r\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedTriggerActions.length">\r\n <div class="md-toolbar-tools">\r\n <span class="md-subhead">{{ vm_dc.selectedTriggerActions.length }}\r\n {{ vm_dc.selectedTriggerActions.length > 1 ? \'items\' : \'item\' }} selected</span>\r\n <div flex></div>\r\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedTriggerActions" csv-label="true" filename="triggers.csv">\r\n <md-icon md-font-icon="icon-file-excel"></md-icon>\r\n </button>\r\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedTriggerActions($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\r\n <md-icon md-font-icon="icon-delete"></md-icon>\r\n </md-button>\r\n </div>\r\n </md-toolbar>\r\n <md-table-container class="font-size-12">\r\n <table md-table md-row-select multiple ng-model="vm_dc.selectedTriggerActions" md-progress="vm_dc.promise">\r\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getTriggerActions">\r\n <tr md-row>\r\n <th md-column md-order-by="id">\r\n {{ \'TOOLS.ID\' | translate }}\r\n </th>\r\n <th md-column md-order-by="action">\r\n {{ \'TOOLS.ACTION\' | translate }}\r\n </th>\r\n <th md-column md-order-by="data1">\r\n {{ \'TOOLS.TYPE\' | translate }}\r\n </th>\r\n <th md-column md-order-by="data2">\r\n {{ \'TOOLS.INFO\' | translate }}\r\n </th>\r\n <th md-column md-order-by="createdAt">\r\n {{ \'TOOLS.CREATED_AT\' | translate }}\r\n </th>\r\n <th md-column width="10px"></th>\r\n </tr>\r\n </thead>\r\n <tbody md-body>\r\n <tr md-row md-select="action" md-select-id="id" ng-repeat="action in vm_dc.triggerActions.rows">\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" md-cell>\r\n {{ action.id }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" md-cell>\r\n {{ \'TOOLS.\' + (action.action | snakecase | uppercase) | translate }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'browser\'" md-cell>\r\n {{ action.data1 === \'1\' ? \'CTI URL\' : \'Popup\' }} </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'contactManager\'" md-cell>\r\n {{ (vm_dc.lists | filter : {\'id\':(action.data1 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'contactManager\'" md-cell>\r\n {{ action.data2 === \'1\' ? \'TOOLS.YES\' : \'TOOLS.NO\' | uppercase | translate }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'urlForward\'" md-cell>\r\n {{ action.data1 }} </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="!action.data1" md-cell>\r\n {{ action.data1 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="!action.data2" md-cell>\r\n {{ action.data2 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'urlForward\'" md-cell>\r\n {{ action.data2 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'script\' && action.data2" md-cell>\r\n {{ action.data2 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'script\' && action.data1" md-cell>\r\n {{ action.data1 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'jscripty\'" md-cell>\r\n {{ (vm_dc.projects | filter : {\'id\':(action.data1 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\'" md-cell>\r\n {{ vm_dc.integrationTypes[action.data1] }} </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'zendesk\'" md-cell>\r\n {{ (vm_dc.zendeskAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'desk\'" md-cell>\r\n {{ (vm_dc.deskAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'zoho\'" md-cell>\r\n {{ (vm_dc.zohoAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'salesforce\'" md-cell>\r\n {{ (vm_dc.salesforceAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'sugarcrm\'" md-cell>\r\n {{ (vm_dc.sugarcrmAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'freshdesk\'" md-cell>\r\n {{ (vm_dc.freshdeskAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'vtiger\'" md-cell>\r\n {{ (vm_dc.vtigerAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'dynamics365\'" md-cell>\r\n {{ (vm_dc.dynamics365Accounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'servicenow\'" md-cell>\r\n {{ (vm_dc.servicenowAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'freshsales\'" md-cell>\r\n {{ (vm_dc.freshsalesAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'motionbar\'" md-cell>\r\n {{ vm_dc.motionBarOptions[action.data1] }} </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'motionbar\' && action.data1 === \'1\'" md-cell>\r\n {{ action.data2 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'motionbar\' && action.data1 === \'2\'" md-cell>\r\n {{ action.data2 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'motionbar\' && action.data1 === \'0\'" md-cell>\r\n {{ (vm_dc.templates | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'browser\' && action.data1 === \'0\'" md-cell>\r\n {{ (vm_dc.templates | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'browser\' && action.data1 === \'1\'" md-cell>\r\n {{ action.data2 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" md-cell>\r\n {{ action.createdAt | formatdate }}\r\n </td>\r\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\r\n <md-menu>\r\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\r\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\r\n </md-button>\r\n <md-menu-content width="3">\r\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\r\n <md-button ng-click="vm_dc.createOrEditTriggerAction($event, action)" translate="TOOLS.EDIT_ACTION">\r\n Edit Action\r\n </md-button>\r\n </md-menu-item>\r\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\r\n <md-button ng-click="vm_dc.deleteConfirm(action, $event)" translate="TOOLS.DELETE_ACTION">\r\n Delete Action\r\n </md-button>\r\n </md-menu-item>\r\n </md-menu-content>\r\n </md-menu>\r\n </td>\r\n </tr>\r\n <tr md-row ng-if="!vm_dc.triggerActions.rows.length">\r\n <td md-cell colspan="5">\r\n <div layout="row" layout-align="center center">\r\n <span class="text-boxed-light" translate="TOOLS.NO_ACTION_AVAILABLE">No action\r\n available</span>\r\n </div>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </md-table-container>\r\n <md-table-pagination md-label="{page: \'{{ \'TOOLS.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'TOOLS.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'TOOLS.OF\' | translate }}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{ vm_dc.triggerActions.count }}" md-on-paginate="vm_dc.getTriggerActions" md-page-select>\r\n </md-table-pagination>\r\n</div>'),e.put("app/main/apps/tools/views/triggers/edit/actions/create/dialog.html",'<md-dialog class="action-dialog" aria-label="New Action">\n <form name="actionForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.newAction ? \'TOOLS.NEW_ACTION\' : \'TOOLS.EDIT_ACTION\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <md-input-container class="md-block">\n <label translate="TOOLS.ACTION">Action</label>\n <md-select name="action" ng-model="vm.action.action" ng-init="vm.onActionInit()" ng-change="vm.onActionSelection()" md-autofocus required ng-disabled="!vm.newAction">\n <md-option ng-value="\'contactManager\'" ng-if="vm.trigger.channel == \'voice\'">\n {{ \'TOOLS.CONTACT_MANAGER\' | translate }} </md-option>\n <md-option ng-value="\'integration\'" ng-if="vm.trigger.channel == \'voice\' && ((vm.newAction && vm.hasIntegrationsPermissions) || !vm.newAction)">\n {{ \'TOOLS.INTEGRATIONS\' | translate }} </md-option>\n <md-option ng-value="\'motionbar\'"> {{ \'TOOLS.MOTIONBAR\' | translate }} </md-option>\n <md-option ng-value="\'jscripty\'"> {{ \'TOOLS.JSCRIPTY\' | translate }} </md-option>\n <md-option ng-value="\'urlForward\'"> {{ \'TOOLS.URL_FORWARD\' | translate }} </md-option>\n <md-option ng-value="\'browser\'"> {{ \'TOOLS.BROWSER\' | translate }} </md-option>\n <md-option ng-value="\'bot\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.BOT\' | translate }} </md-option>\n <md-option ng-value="\'script\'"> {{ \'TOOLS.SCRIPT\' | translate }} </md-option>\n </md-select>\n <div ng-messages="actionForm[\'action\'].$error" ng-show="actionForm[\'action\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.ACTION_REQUIRED">Action field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'jscripty\'" class="md-block">\n <label translate="TOOLS.PROJECT">Project</label>\n <md-select name="data1" ng-model="vm.action.data1" required>\n <md-option ng-value="\'\'+data1.id" ng-repeat="data1 in vm.projects" ng-disabled="data1.canSelect === false">\n {{ data1.name }}</md-option>\n </md-select>\n <div ng-messages="actionForm[\'data1\'].$error" ng-show="actionForm[\'data1\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.PROJECT_REQUIRED">Project field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'browser\'" class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select name="data1" ng-model="vm.action.data1" ng-change="vm.onTypeSelection()" required>\n <md-option ng-value="\'0\'">Popup</md-option>\n <md-option ng-value="\'1\'">CTI URL</md-option>\n </md-select>\n <div ng-messages="actionForm[\'data1\'].$error" ng-show="actionForm[\'data1\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'contactManager\'" class="md-block">\n <label translate="TOOLS.LIST">List</label>\n <md-select name="data1" ng-model="vm.action.data1" ng-change="vm.onListSelection()" required>\n <md-option ng-value="\'\'+data1.id" ng-repeat="data1 in vm.lists" ng-disabled="data1.canSelect === false">\n {{ data1.name }}</md-option>\n </md-select>\n <div ng-messages="actionForm[\'data1\'].$error" ng-show="actionForm[\'data1\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'contactManager\'" class="md-block">\n <label translate="TOOLS.SEARCH_FIELDS">Search fields</label>\n <md-select name="fields" ng-model="vm.action.data3" ng-init="vm.onSearchFieldsInit()" multiple required>\n <md-optgroup label="{{ \'TOOLS.STANDARD\' | translate }}">\n <md-option ng-value="field.columnName" ng-repeat="field in vm.contactFields">\n {{ field.displayName }}</md-option>\n </md-optgroup>\n <md-optgroup label="{{ \'TOOLS.LIST\' | translate }}" ng-if="vm.listFields.length > 0">\n <md-option ng-value="field.columnName" ng-repeat="field in vm.listFields">\n {{ field.name }}</md-option>\n </md-optgroup>\n <md-optgroup label="{{ \'TOOLS.GLOBALS\' | translate }}" ng-if="vm.customFields.length > 0">\n <md-option ng-value="field.columnName" ng-repeat="field in vm.customFields">\n {{ field.displayName }}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="actionForm[\'data3\'].$error" ng-show="actionForm[\'data3\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SEARCH_FIELDS_REQUIRED">Search fields field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'contactManager\'" class="md-block">\n <label translate="TOOLS.AUTOCREATECONTACT">Create contact automatically</label>\n <md-select name="data2" ng-model="vm.action.data2" ng-change="vm.onAutocreateSelection()" required>\n <md-option ng-value="\'1\'"> {{ \'TOOLS.YES\' | translate }} </md-option>\n <md-option ng-value="\'0\'"> {{ \'TOOLS.NO\' | translate }} </md-option>\n </md-select>\n <div ng-messages="actionForm[\'data2\'].$error" ng-show="actionForm[\'data2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.AUTOCREATECONTACT_REQUIRED">AutoCreateContact field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'contactManager\' && vm.action.data2 === \'1\'" class="md-block">\n <label translate="TOOLS.AUTOCREATE_FIELD">Autocreate field</label>\n <md-select name="autocreateField" ng-model="vm.action.data4" ng-required="vm.action.data2 === \'1\'">\n <md-optgroup label="{{ \'TOOLS.STANDARD\' | translate }}">\n <md-option ng-value="field.columnName" ng-repeat="field in vm.contactFields">\n {{ field.displayName }}</md-option>\n </md-optgroup>\n <md-optgroup label="{{ \'TOOLS.LIST\' | translate }}" ng-if="vm.listFields.length > 0">\n <md-option ng-value="field.columnName" ng-repeat="field in vm.listFields">\n {{ field.name }}</md-option>\n </md-optgroup>\n <md-optgroup label="{{ \'TOOLS.GLOBALS\' | translate }}" ng-if="vm.customFields.length > 0">\n <md-option ng-value="field.columnName" ng-repeat="field in vm.customFields">\n {{ field.displayName }}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="actionForm[\'data4\'].$error" ng-show="actionForm[\'data4\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.AUTOCREATE_FIELD_REQUIRED">Autocreate field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'contactManager\'" class="md-block">\n <label translate="TOOLS.IGNOREDIALERCONTACTID">Ignore dialer contact Id</label>\n <md-select name="data5" ng-model="vm.action.data5" required>\n <md-option ng-value="\'1\'"> {{ \'TOOLS.YES\' | translate }} </md-option>\n <md-option ng-value="\'0\'"> {{ \'TOOLS.NO\' | translate }} </md-option>\n </md-select>\n <div ng-messages="actionForm[\'data5\'].$error" ng-show="actionForm[\'data5\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.IGNOREDIALERCONTACTID_REQUIRED">Ignore dialer contact Id field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'urlForward\'" class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select name="data1" ng-model="vm.action.data1" required>\n <md-option ng-value="\'GET\'">GET</md-option>\n <md-option ng-value="\'POST\'">POST</md-option>\n <md-option ng-value="\'PUT\'">PUT</md-option>\n <md-option ng-value="\'DELETE\'">DELETE</md-option>\n </md-select>\n <div ng-messages="actionForm[\'data1\'].$error" ng-show="actionForm[\'data1\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'urlForward\'" class="md-block">\n <label translate="TOOLS.URL">Url</label>\n <input type="url" name="data2" ng-model="vm.action.data2" ng-required="true">\n <div ng-messages="actionForm[\'data2\'].$error" ng-show="actionForm[\'data2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n <div ng-message="url">\n <span translate="TOOLS.ERRORS.URL_MUST_VALID_URL">Url must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'urlForward\'" class="md-block">\n <label translate="TOOLS.TIMEOUT">Timeout</label>\n <input type="number" name="data5" ng-model="vm.action.data5" min="1" max="10" ng-required="true">\n <div class="hint"><span translate="TOOLS.HELP.TIMEOUT"></span></div>\n <div ng-messages="actionForm[\'data5\'].$error" ng-show="actionForm[\'data5\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="TOOLS.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="TOOLS.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>10</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'urlForward\'" class="md-block">\n <label translate="TOOLS.HEADERS">Headers</label>\n <textarea name="data6" ng-model="vm.action.data6"></textarea>\n <div class="hint"><span translate="TOOLS.HELP.HEADERS"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'urlForward\' && (vm.action.data1 == \'POST\' || vm.action.data1 == \'PUT\')" class="md-block">\n <label translate="TOOLS.BODY">Body</label>\n <textarea name="data7" ng-model="vm.action.data7"></textarea>\n <div class="hint"><span translate="TOOLS.HELP.BODY"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'script\'" class="md-block">\n <label translate="TOOLS.SCRIPT_TYPE">Script_Type</label>\n <input type="input" name="data2" ng-model="vm.action.data2">\n <div class="hint"><span translate="TOOLS.HELP.SCRIPT_TYPE"></span></div>\n <div ng-messages="actionForm[\'data2\'].$error" ng-show="actionForm[\'data2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SCRIPT_TYPE_REQUIRED">Script_Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'script\'" class="md-block">\n <label translate="TOOLS.SCRIPT_INFO">Script_Info</label>\n <input type="input" name="data1" ng-model="vm.action.data1">\n <div class="hint"><span translate="TOOLS.HELP.SCRIPT_INFO"></span></div>\n <div ng-messages="actionForm[\'data1\'].$error" ng-show="actionForm[\'data1\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SCRIPT_INFO_REQUIRED">Script_Info field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'script\'" class="md-block">\n <label translate="TOOLS.SCRIPT">Script</label>\n <textarea name="data3" ng-model="vm.action.data3" required></textarea>\n <div class="hint"><span translate="TOOLS.HELP.SCRIPT"></span></div>\n <div ng-messages="actionForm[\'data3\'].$error" ng-show="actionForm[\'data3\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SCRIPT_REQUIRED">Script field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'integration\'" class="md-block">\n <label translate="TOOLS.INTEGRATION">Integration</label>\n <md-select name="data1" ng-model="vm.action.data1" ng-init="vm.onIntegrationInit()" ng-change="vm.onIntegrationSelection()" required>\n <md-option ng-value="\'desk\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1306]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1306])">Desk</md-option>\n <md-option ng-value="\'dynamics365\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1309]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1309])">Dynamics365</md-option>\n <md-option ng-value="\'freshdesk\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1303]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1303])">Freshdesk</md-option>\n <md-option ng-value="\'freshsales\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1304]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1304])">Freshsales</md-option>\n <md-option ng-value="\'salesforce\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1302]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1302])">Salesforce</md-option>\n <md-option ng-value="\'servicenow\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1310]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1310])">ServiceNow</md-option>\n <md-option ng-value="\'sugarcrm\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1305]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1305])">SugarCRM</md-option>\n <md-option ng-value="\'vtiger\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1308]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1308])">vTiger</md-option>\n <md-option ng-value="\'zendesk\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1301]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1301])">Zendesk</md-option>\n <md-option ng-value="\'zoho\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1307]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1307])">Zoho</md-option>\n </md-select>\n <div ng-messages="actionForm[\'data1\'].$error" ng-show="actionForm[\'data1\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.INTEGRATION_REQUIRED">Integration field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'integration\' && vm.action.data1" class="md-block">\n <label translate="TOOLS.ACCOUNT">Account</label>\n <md-select name="data2" ng-model="vm.action.data2" ng-change="vm.onIntegrationAccountSelection()" ng-disabled="vm.action.isIntegrationDisabled" required>\n <md-option ng-value="\'\'+data2.id" ng-repeat="data2 in vm.accounts">{{ data2.name }}</md-option>\n </md-select>\n <div ng-messages="actionForm[\'data2\'].$error" ng-show="actionForm[\'data2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.ACCOUNT_REQUIRED">Account field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'integration\' && vm.action.data1 && vm.action.data2" class="md-block">\n <label translate="TOOLS.CONFIGURATION">Configuration</label>\n <md-select name="data3" ng-model="vm.action.data3" required ng-disabled="vm.action.isIntegrationDisabled">\n <md-option ng-value="\'\'+data3.id" ng-repeat="data3 in vm.configurations | filter : { AccountId: (vm.action.data2 | toInteger) } : true">{{\n data3.name }}</md-option>\n </md-select>\n <div ng-messages="actionForm[\'data3\'].$error" ng-show="actionForm[\'data3\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.CONFIGURATION_REQUIRED">Configuration field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'motionbar\'" class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select name="data1" ng-model="vm.action.data1" ng-change="vm.onTypeSelection()" required>\n <md-option ng-value="\'0\'">Popup</md-option>\n <md-option ng-value="\'1\'">CTI URL</md-option>\n <md-option ng-value="\'2\'">Windows App</md-option>\n </md-select>\n <div ng-messages="actionForm[\'data1\'].$error" ng-show="actionForm[\'data1\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'motionbar\' && vm.action.data1 == \'1\'" class="md-block">\n <label translate="TOOLS.URL">Url</label>\n <input type="url" name="data2" ng-model="vm.action.data2" ng-required="true">\n <div ng-messages="actionForm[\'data2\'].$error" ng-show="actionForm[\'data2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n <div ng-message="url">\n <span translate="TOOLS.ERRORS.URL_MUST_VALID_URL">Url must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'motionbar\' && vm.action.data1 == \'2\'" class="md-block">\n <label translate="TOOLS.APPLICATION">Application</label>\n <input type="text" name="data2" ng-model="vm.action.data2" ng-required="true">\n <div ng-messages="actionForm[\'data2\'].$error" ng-show="actionForm[\'data2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.APPLICATION_REQUIRED">Application field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'motionbar\' && vm.action.data1 == \'2\'" class="md-block">\n <label translate="TOOLS.ARGUMENTS">Arguments</label>\n <input type="text" name="data3" ng-model="vm.action.data3">\n <div ng-messages="actionForm[\'data3\'].$error" ng-show="actionForm[\'data3\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.ARGUMENTS_REQUIRED">Arguments field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'motionbar\' && vm.action.data1 == \'0\'" class="md-block">\n <label translate="TOOLS.TEMPLATE">Template</label>\n <md-select name="data2" ng-model="vm.action.data2" required>\n <md-option ng-value="\'\'+data2.id" ng-repeat="data2 in vm.templates" ng-disabled="data2.canSelect === false">\n {{ data2.name }}</md-option>\n </md-select>\n <div ng-messages="actionForm[\'data2\'].$error" ng-show="actionForm[\'data2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TEMPLATE_REQUIRED">Template field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'browser\' && vm.action.data1 == \'0\'" class="md-block">\n <label translate="TOOLS.TEMPLATE">Template</label>\n <md-select name="data2" ng-model="vm.action.data2" required>\n <md-option ng-value="\'\'+data2.id" ng-repeat="data2 in vm.templates" ng-disabled="data2.canSelect === false">\n {{ data2.name }}</md-option>\n </md-select>\n <div ng-messages="actionForm[\'data2\'].$error" ng-show="actionForm[\'data2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TEMPLATE_REQUIRED">Template field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'browser\' && vm.action.data1 == \'1\'" class="md-block">\n <label translate="TOOLS.URL">Url</label>\n <input type="url" name="data2" ng-model="vm.action.data2" ng-required="true">\n <div ng-messages="actionForm[\'data2\'].$error" ng-show="actionForm[\'data2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n <div ng-message="url">\n <span translate="TOOLS.ERRORS.URL_MUST_VALID_URL">Url must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.action.action == \'motionbar\' || vm.action.action == \'browser\') && vm.action.data1 == \'1\'" class="md-block">\n <label translate="TOOLS.EVENTVARIABLES">EventVariables</label>\n <md-select name="data3" ng-model="vm.action.data3" required>\n <md-option ng-value="\'1\'"> {{ \'TOOLS.YES\' | translate }} </md-option>\n <md-option ng-value="\'0\'"> {{ \'TOOLS.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.EVENTVARIABLES"></span></div>\n <div ng-messages="actionForm[\'data3\'].$error" ng-show="actionForm[\'data3\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.EVENTVARIABLES_REQUIRED">EventVariables field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'browser\' && vm.action.data1 == \'1\'" class="md-block">\n <label translate="TOOLS.LOCATION">Location</label>\n <md-select name="data4" ng-model="vm.action.data4" required ng-change="vm.onActionLocationChange()">\n <md-option ng-value="0"> {{ \'TOOLS.NEW_TAB\' | translate }} </md-option>\n <md-option ng-value="1"> {{ \'TOOLS.NEW_WINDOW\' | translate }} </md-option>\n <md-option ng-value="2"> {{ \'TOOLS.MOTION_TAB\' | translate }} </md-option>\n </md-select>\n <div ng-messages="actionForm[\'data4\'].$error" ng-show="actionForm[\'data4\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.LOCATION_REQUIRED">Location field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'browser\' && vm.action.data4 == \'1\'" class="md-block">\n <label translate="TOOLS.WINDOWWIDTH">WindowWidth</label>\n <input type="text" name="data5" ng-model="vm.action.data5">\n <div ng-messages="actionForm[\'data5\'].$error" ng-show="actionForm[\'data5\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.WINDOWWIDTH_REQUIRED">WindowWidth field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'browser\' && vm.action.data4 == \'1\'" class="md-block">\n <label translate="TOOLS.WINDOWHEIGHT">WindowHeight</label>\n <input type="text" name="data6" ng-model="vm.action.data6">\n <div ng-messages="actionForm[\'data6\'].$error" ng-show="actionForm[\'data6\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.WINDOWHEIGHT_REQUIRED">WindowHeight field is required</span>\n </div>\n </div>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newAction" ng-click="vm.saveAction()" class="send-button md-accent md-raised" ng-disabled="actionForm.$invalid || actionForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newAction" ng-click="vm.addNewAction()" class="send-button md-accent md-raised" ng-disabled="actionForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_ACTION" translate-attr-aria-label="TOOLS.ADD_ACTION">\n ADD ACTION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newAction" ng-click="vm.deleteAction($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/triggers/edit/allconditions/allconditions.html",'<div ng-controller="TriggerAllConditionsController as vm_dc" ng-init="vm_dc.onInit(vm.trigger, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedAllConditions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="TOOLS.ALLCONDITIONS">All Conditions</span>\n <ms-search-bar on-search="vm_dc.getAllConditions()" query="vm_dc.query" debounce="300" direction="down">\n </ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditAllCondition($event)" aria-label="add allCondition" translate translate-attr-label="TOOLS.ADD_ALLCONDITION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedAllConditions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{ vm_dc.selectedAllConditions.length }}\n {{ vm_dc.selectedAllConditions.length > 1 ? \'items\' : \'item\' }} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedAllConditions" csv-label="true" filename="triggers.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedAllConditions($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedAllConditions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getAllConditions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'TOOLS.ID\' | translate }}\n </th>\n <th md-column md-order-by="field">\n {{ \'TOOLS.FIELD\' | translate }}\n </th>\n <th md-column md-order-by="operator">\n {{ \'TOOLS.OPERATOR\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'TOOLS.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'TOOLS.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="allCondition" md-select-id="id" ng-repeat="allCondition in vm_dc.allConditions.rows">\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" md-cell>\n {{ allCondition.id }}\n </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" md-cell>\n {{ \'TOOLS.\' + vm_dc.fields[allCondition.field] | uppercase | translate }}\n </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" md-cell>\n {{ \'TOOLS.\' + allCondition.operator | uppercase | translate }}\n </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="!allCondition.value" md-cell>\n {{ allCondition.value }}\n </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'chat\' && allCondition.field == \'account\'" md-cell>\n {{ (vm_dc.chatWebsites | filter : {\'id\':(allCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'mail\' && allCondition.field == \'account\'" md-cell>\n {{ (vm_dc.mailAccounts | filter : {\'id\':(allCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'sms\' && allCondition.field == \'account\'" md-cell>\n {{ (vm_dc.smsAccounts | filter : {\'id\':(allCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'whatsapp\' && allCondition.field == \'account\'" md-cell>\n {{ (vm_dc.whatsappAccounts | filter : {\'id\': (allCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'fax\' && allCondition.field == \'account\'" md-cell>\n {{ (vm_dc.faxAccounts | filter : {\'id\': (allCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'openchannel\' && allCondition.field == \'account\'" md-cell>\n {{ (vm_dc.openchannelAccounts | filter : {\'id\': (allCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'voice\' && allCondition.field == \'queue\'" md-cell>\n {{ (vm_dc.queues | filter : {\'name\':allCondition.value} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'voice\' && allCondition.field == \'routeId\'" md-cell>\n {{ (vm_dc.outboundRoutes | filter : {\'id\':(allCondition.value | toInteger)} : true)[0].exten }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'voice\' && allCondition.field == \'agent\'" md-cell>\n {{ (vm_dc.agents | filter : {\'name\':allCondition.value} : true)[0].fullname }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'voice\' && allCondition.field == \'lastevent\'" md-cell>\n {{ vm_dc.callStatuses[allCondition.value] }} </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel != \'voice\' && allCondition.field == \'interaction\'" md-cell>\n {{ allCondition.value | capitalize }} </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel != \'voice\' && allCondition.field == \'message\'" md-cell>\n {{ vm_dc.messageStatuses[allCondition.value] }} </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'mail\' && allCondition.field == \'mailSubstatus\'" md-cell>\n {{ allCondition.value === \'null\' ? (\'TOOLS.NONE\' | translate) : (vm_dc.mailSubstatuses | filter : {\'name\': allCondition.value } : true)[0].name }}\n </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" md-cell>\n {{ allCondition.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" translate="TOOLS.EDIT_ALLCONDITION">\n Edit AllCondition\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(allCondition, $event)" translate="TOOLS.DELETE_ALLCONDITION">\n Delete AllCondition\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.allConditions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="TOOLS.NO_ALLCONDITION_AVAILABLE">No condition\n available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{ \'TOOLS.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'TOOLS.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'TOOLS.OF\' | translate }}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{ vm_dc.allConditions.count }}" md-on-paginate="vm_dc.getAllConditions" md-page-select>\n </md-table-pagination>\n</div>'),e.put("app/main/apps/tools/views/triggers/edit/allconditions/create/dialog.html",'<md-dialog class="allCondition-dialog" aria-label="New AllCondition">\n <form name="allConditionForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.newAllCondition ? \'TOOLS.NEW_ALLCONDITION\' : \'TOOLS.EDIT_ALLCONDITION\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <md-input-container class="md-block">\n <label translate="TOOLS.FIELD">Field</label>\n <md-select name="field" ng-model="vm.allCondition.field" ng-change="vm.onFieldSelection()" md-autofocus required>\n <md-option ng-value="\'queue\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.QUEUE\' | translate }}\n </md-option>\n <md-option ng-value="\'lastevent\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.CALL_STATUS\' | translate }}\n </md-option>\n <md-option ng-value="\'routeId\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.OUTBOUNDROUTE\' | translate }}\n </md-option>\n <md-option ng-value="\'agent\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.AGENT\' | translate }}\n </md-option>\n <md-option ng-value="\'account\'" ng-if="vm.trigger.channel != \'voice\'"> {{ \'TOOLS.ACCOUNT\' | translate }}\n </md-option>\n <md-option ng-value="\'interaction\'" ng-if="vm.trigger.channel != \'voice\'">\n {{ \'TOOLS.INTERACTION\' | translate }} </md-option>\n <md-option ng-value="\'message\'" ng-if="vm.trigger.channel != \'voice\'"> {{ \'TOOLS.MESSAGE\' | translate }}\n </md-option>\n <md-option ng-value="\'mailSubstatus\'" ng-if="vm.trigger.channel == \'mail\'"> {{ \'TOOLS.MAIL_SUBSTATUS\' | translate }}\n </md-option>\n </md-select>\n <div ng-messages="allConditionForm[\'field\'].$error" ng-show="allConditionForm[\'field\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.FIELD_REQUIRED">Field field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.OPERATOR">Operator</label>\n <md-select name="operator" ng-model="vm.allCondition.operator" required>\n <md-option ng-value="\'equals\'"> {{ \'TOOLS.EQUALS\' | translate }} </md-option>\n <md-option ng-value="\'not_equals\'"> {{ \'TOOLS.NOT_EQUALS\' | translate }} </md-option>\n </md-select>\n <div ng-messages="allConditionForm[\'operator\'].$error" ng-show="allConditionForm[\'operator\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.OPERATOR_REQUIRED">Operator field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.allCondition.field == \'account\'" class="md-block">\n <label translate="TOOLS.ACCOUNT">Account</label>\n <md-select name="value" ng-model="vm.allCondition.value" required>\n <md-option ng-value="value.id.toString()" ng-repeat="value in vm.accounts" ng-disabled="value.canSelect === false">\n {{ value.name }}</md-option>\n </md-select>\n <div ng-messages="allConditionForm[\'value\'].$error" ng-show="allConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.ACCOUNT_REQUIRED">Account field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.allCondition.field == \'queue\' && vm.trigger.channel == \'voice\'" class="md-block">\n <label translate="TOOLS.QUEUE">Queue</label>\n <md-select name="value" ng-model="vm.allCondition.value" required>\n <md-option ng-value="value.name" ng-repeat="value in vm.queues" ng-disabled="value.canSelect === false">\n {{ value.name }}</md-option>\n </md-select>\n <div ng-messages="allConditionForm[\'value\'].$error" ng-show="allConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.allCondition.field == \'routeId\' && vm.trigger.channel == \'voice\'" class="md-block">\n <label translate="TOOLS.OUTBOUNDROUTE">OutboundRoute</label>\n <md-select name="value" ng-model="vm.allCondition.value" required>\n <md-option ng-value="value.id.toString()" ng-repeat="value in vm.outboundRoutes" ng-disabled="value.canSelect === false">\n {{ value.exten }}</md-option>\n </md-select>\n <div ng-messages="allConditionForm[\'value\'].$error" ng-show="allConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.OUTBOUNDROUTE_REQUIRED">OutboundRoute field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.allCondition.field == \'agent\' && vm.trigger.channel == \'voice\'" class="md-block">\n <label translate="TOOLS.AGENT">Agent</label>\n <md-select name="value" ng-model="vm.allCondition.value" required>\n <md-option ng-value="value.name" ng-repeat="value in vm.agents" ng-disabled="value.canSelect === false">\n {{ value.fullname }}</md-option>\n </md-select>\n <div ng-messages="allConditionForm[\'value\'].$error" ng-show="allConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.allCondition.field == \'lastevent\'" class="md-block">\n <label translate="TOOLS.VALUE">Value</label>\n <md-select name="value" ng-model="vm.allCondition.value" required>\n <md-option ng-value="status.value" ng-repeat="status in vm.callStatuses">\n {{ status.name }}</md-option>\n </md-select>\n <div ng-messages="allConditionForm[\'value\'].$error" ng-show="allConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.allCondition.field == \'mailSubstatus\'" class="md-block">\n <label translate="TOOLS.VALUE">Value</label>\n <md-select name="value" ng-model="vm.allCondition.value" required>\n <md-option ng-value="mailSubstatus.name" ng-repeat="mailSubstatus in vm.mailSubstatuses">\n {{ mailSubstatus.name }}</md-option>\n <md-option ng-value="\'null\'">{{\'TOOLS.NONE\' | translate}}</md-option>\n </md-select>\n <div ng-messages="allConditionForm[\'value\'].$error" ng-show="allConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.allCondition.field == \'interaction\' && vm.trigger.channel != \'voice\'" class="md-block">\n <label translate="TOOLS.VALUE">Value</label>\n <md-select name="value" ng-model="vm.allCondition.value" required>\n <md-option ng-value="\'opened\'">Opened</md-option>\n <md-option ng-value="\'closed\'">Closed</md-option>\n <md-option ng-if="vm.trigger.channel==\'mail\'" ng-value="\'substatus\'">SubStatus</md-option>\n </md-select>\n <div ng-messages="allConditionForm[\'value\'].$error" ng-show="allConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.allCondition.field == \'message\' && vm.trigger.channel != \'voice\'" class="md-block">\n <label translate="TOOLS.VALUE">Value</label>\n <md-select name="value" ng-model="vm.allCondition.value" required>\n <md-option ng-value="\'in\'">Incoming</md-option>\n <md-option ng-value="\'out\'">Outgoing</md-option>\n <md-option ng-value="\'accept\'">Accepted</md-option>\n <md-option ng-value="\'reject\'">Rejected</md-option>\n </md-select>\n <div ng-messages="allConditionForm[\'value\'].$error" ng-show="allConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newAllCondition" ng-click="vm.saveAllCondition()" class="send-button md-accent md-raised" ng-disabled="allConditionForm.$invalid || allConditionForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newAllCondition" ng-click="vm.addNewAllCondition()" class="send-button md-accent md-raised" ng-disabled="allConditionForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_ALLCONDITION" translate-attr-aria-label="TOOLS.ADD_ALLCONDITION">\n ADD ALLCONDITION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newAllCondition" ng-click="vm.deleteAllCondition($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/triggers/edit/anyconditions/anyconditions.html",'<div ng-controller="TriggerAnyConditionsController as vm_dc" ng-init="vm_dc.onInit(vm.trigger, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedAnyConditions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="TOOLS.ANYCONDITIONS">AnyConditions</span>\n <ms-search-bar on-search="vm_dc.getAnyConditions()" query="vm_dc.query" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditAnyCondition($event)" aria-label="add anyCondition" translate translate-attr-label="TOOLS.ADD_ANYCONDITION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedAnyConditions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{ vm_dc.selectedAnyConditions.length }}\n {{ vm_dc.selectedAnyConditions.length > 1 ? \'items\' : \'item\' }} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedAnyConditions" csv-label="true" filename="triggers.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedAnyConditions($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedAnyConditions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getAnyConditions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'TOOLS.ID\' | translate }}\n </th>\n <th md-column md-order-by="field">\n {{ \'TOOLS.FIELD\' | translate }}\n </th>\n <th md-column md-order-by="operator">\n {{ \'TOOLS.OPERATOR\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'TOOLS.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'TOOLS.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="anyCondition" md-select-id="id" ng-repeat="anyCondition in vm_dc.anyConditions.rows">\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" md-cell>\n {{ anyCondition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" md-cell>\n {{ \'TOOLS.\' + vm_dc.fields[anyCondition.field] | uppercase | translate }}\n </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" md-cell>\n {{ \'TOOLS.\' + anyCondition.operator | uppercase | translate }}\n </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="!anyCondition.value" md-cell>\n {{ anyCondition.value }}\n </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'chat\' && anyCondition.field == \'account\'" md-cell>\n {{ (vm_dc.chatWebsites | filter : {\'id\': (anyCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'mail\' && anyCondition.field == \'account\'" md-cell>\n {{ (vm_dc.mailAccounts | filter : {\'id\':(anyCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'sms\' && anyCondition.field == \'account\'" md-cell>\n {{ (vm_dc.smsAccounts | filter : {\'id\': (anyCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, allCondition)" ng-if="vm.trigger.channel == \'whatsapp\' && anyCondition.field == \'account\'" md-cell>\n {{ (vm_dc.whatsappAccounts | filter : {\'id\':(anyCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'fax\' && anyCondition.field == \'account\'" md-cell>\n {{ (vm_dc.faxAccounts | filter : {\'id\': (anyCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'openchannel\' && anyCondition.field == \'account\'" md-cell>\n {{ (vm_dc.openchannelAccounts | filter : {\'id\': (anyCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'voice\' && anyCondition.field == \'queue\'" md-cell>\n {{ (vm_dc.queues | filter : {\'name\':anyCondition.value} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'voice\' && anyCondition.field == \'routeId\'" md-cell>\n {{ (vm_dc.outboundRoutes | filter : {\'id\': (anyCondition.value | toInteger)} : true)[0].exten }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'voice\' && anyCondition.field == \'agent\'" md-cell>\n {{ (vm_dc.agents | filter : {\'name\':anyCondition.value} : true)[0].fullname }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'voice\' && anyCondition.field == \'lastevent\'" md-cell>\n {{ vm_dc.callStatuses[anyCondition.value] }} </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel != \'voice\' && anyCondition.field == \'interaction\'" md-cell>\n {{ anyCondition.value | capitalize }} </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel != \'voice\' && anyCondition.field == \'message\'" md-cell>\n {{ vm_dc.messageStatuses[anyCondition.value] }} </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'mail\' && anyCondition.field == \'mailSubstatus\'" md-cell>\n {{ anyCondition.value === \'null\' ? (\'TOOLS.NONE\' | translate) : (vm_dc.mailSubstatuses | filter : {\'name\': anyCondition.value } : true)[0].name }}\n </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" md-cell>\n {{ anyCondition.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" translate="TOOLS.EDIT_ANYCONDITION">\n Edit AnyCondition\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(anyCondition, $event)" translate="TOOLS.DELETE_ANYCONDITION">\n Delete AnyCondition\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.anyConditions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="TOOLS.NO_ANYCONDITION_AVAILABLE">No anycondition\n available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{ \'TOOLS.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'TOOLS.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'TOOLS.OF\' | translate }}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{ vm_dc.anyConditions.count }}" md-on-paginate="vm_dc.getAnyConditions" md-page-select>\n </md-table-pagination>\n</div>'),e.put("app/main/apps/tools/views/triggers/edit/anyconditions/create/dialog.html",'<md-dialog class="anyCondition-dialog" aria-label="New AnyCondition">\n <form name="anyConditionForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.newAnyCondition ? \'TOOLS.NEW_ANYCONDITION\' : \'TOOLS.EDIT_ANYCONDITION\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <md-input-container class="md-block">\n <label translate="TOOLS.FIELD">Field</label>\n <md-select name="field" ng-model="vm.anyCondition.field" ng-change="vm.onFieldSelection()" md-autofocus required>\n <md-option ng-value="\'queue\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.QUEUE\' | translate }}\n </md-option>\n <md-option ng-value="\'lastevent\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.CALL_STATUS\' | translate }}\n </md-option>\n <md-option ng-value="\'routeId\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.OUTBOUNDROUTE\' | translate }}\n </md-option>\n <md-option ng-value="\'agent\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.AGENT\' | translate }}\n </md-option>\n <md-option ng-value="\'account\'" ng-if="vm.trigger.channel != \'voice\'"> {{ \'TOOLS.ACCOUNT\' | translate }}\n </md-option>\n <md-option ng-value="\'interaction\'" ng-if="vm.trigger.channel != \'voice\'">\n {{ \'TOOLS.INTERACTION\' | translate }} </md-option>\n <md-option ng-value="\'message\'" ng-if="vm.trigger.channel != \'voice\'"> {{ \'TOOLS.MESSAGE\' | translate }}\n </md-option>\n <md-option ng-value="\'mailSubstatus\'" ng-if="vm.trigger.channel == \'mail\'"> {{ \'TOOLS.MAIL_SUBSTATUS\' | translate }}\n </md-option>\n </md-select>\n <div ng-messages="anyConditionForm[\'field\'].$error" ng-show="anyConditionForm[\'field\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.FIELD_REQUIRED">Field field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.OPERATOR">Operator</label>\n <md-select name="operator" ng-model="vm.anyCondition.operator" required>\n <md-option ng-value="\'equals\'"> {{ \'TOOLS.EQUALS\' | translate }} </md-option>\n <md-option ng-value="\'not_equals\'"> {{ \'TOOLS.NOT_EQUALS\' | translate }} </md-option>\n </md-select>\n <div ng-messages="anyConditionForm[\'operator\'].$error" ng-show="anyConditionForm[\'operator\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.OPERATOR_REQUIRED">Operator field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.anyCondition.field == \'account\'" class="md-block">\n <label translate="TOOLS.ACCOUNT">Account</label>\n <md-select name="value" ng-model="vm.anyCondition.value" required>\n <md-option ng-value="value.id.toString()" ng-repeat="value in vm.accounts" ng-disabled="value.canSelect === false">\n {{ value.name }}</md-option>\n </md-select>\n <div ng-messages="anyConditionForm[\'value\'].$error" ng-show="anyConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.ACCOUNT_REQUIRED">Account field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.anyCondition.field == \'queue\' && vm.trigger.channel == \'voice\'" class="md-block">\n <label translate="TOOLS.QUEUE">Queue</label>\n <md-select name="value" ng-model="vm.anyCondition.value" required>\n <md-option ng-value="value.name" ng-repeat="value in vm.queues" ng-disabled="value.canSelect === false">\n {{ value.name }}</md-option>\n </md-select>\n <div ng-messages="anyConditionForm[\'value\'].$error" ng-show="anyConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.anyCondition.field == \'routeId\' && vm.trigger.channel == \'voice\'" class="md-block">\n <label translate="TOOLS.OUTBOUNDROUTE">OutboundRoute</label>\n <md-select name="value" ng-model="vm.anyCondition.value" required>\n <md-option ng-value="value.id.toString()" ng-repeat="value in vm.outboundRoutes" ng-disabled="value.canSelect === false">\n {{ value.exten }}</md-option>\n </md-select>\n <div ng-messages="anyConditionForm[\'value\'].$error" ng-show="anyConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.OUTBOUNDROUTE_REQUIRED">OutboundRoute field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.anyCondition.field == \'agent\' && vm.trigger.channel == \'voice\'" class="md-block">\n <label translate="TOOLS.AGENT">Agent</label>\n <md-select name="value" ng-model="vm.anyCondition.value" required>\n <md-option ng-value="value.name" ng-repeat="value in vm.agents" ng-disabled="value.canSelect === false">\n {{ value.fullname }}</md-option>\n </md-select>\n <div ng-messages="anyConditionForm[\'value\'].$error" ng-show="anyConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.anyCondition.field == \'lastevent\'" class="md-block">\n <label translate="TOOLS.VALUE">Value</label>\n <md-select name="value" ng-model="vm.anyCondition.value" required>\n <md-option ng-value="status.value" ng-repeat="status in vm.callStatuses">\n {{ status.name }}</md-option>\n </md-select>\n <div ng-messages="anyConditionForm[\'value\'].$error" ng-show="anyConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.anyCondition.field == \'mailSubstatus\'" class="md-block">\n <label translate="TOOLS.VALUE">Value</label>\n <md-select name="value" ng-model="vm.anyCondition.value" required>\n <md-option ng-value="mailSubstatus.name" ng-repeat="mailSubstatus in vm.mailSubstatuses">\n {{ mailSubstatus.name }}</md-option>\n <md-option ng-value="\'null\'">{{\'TOOLS.NONE\' | translate}}</md-option>\n </md-select>\n <div ng-messages="anyConditionForm[\'value\'].$error" ng-show="anyConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.anyCondition.field == \'interaction\' && vm.trigger.channel != \'voice\'" class="md-block">\n <label translate="TOOLS.VALUE">Value</label>\n <md-select name="value" ng-model="vm.anyCondition.value" required>\n <md-option ng-value="\'opened\'">Opened</md-option>\n <md-option ng-value="\'closed\'">Closed</md-option>\n <md-option ng-if="vm.trigger.channel==\'mail\'" ng-value="\'substatus\'">SubStatus</md-option>\n </md-select>\n <div ng-messages="anyConditionForm[\'value\'].$error" ng-show="anyConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.anyCondition.field == \'message\' && vm.trigger.channel != \'voice\'" class="md-block">\n <label translate="TOOLS.VALUE">Value</label>\n <md-select name="value" ng-model="vm.anyCondition.value" required>\n <md-option ng-value="\'in\'">Incoming</md-option>\n <md-option ng-value="\'out\'">Outgoing</md-option>\n <md-option ng-value="\'accept\'">Accepted</md-option>\n <md-option ng-value="\'reject\'">Rejected</md-option>\n </md-select>\n <div ng-messages="anyConditionForm[\'value\'].$error" ng-show="anyConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newAnyCondition" ng-click="vm.saveAnyCondition()" class="send-button md-accent md-raised" ng-disabled="anyConditionForm.$invalid || anyConditionForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newAnyCondition" ng-click="vm.addNewAnyCondition()" class="send-button md-accent md-raised" ng-disabled="anyConditionForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_ANYCONDITION" translate-attr-aria-label="TOOLS.ADD_ANYCONDITION">\n ADD ANYCONDITION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newAnyCondition" ng-click="vm.deleteAnyCondition($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/triggers/edit/view.html",'<div id="tools-trigger" class="page-layout simple tabbed" layout="column">\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-triggers-button md-icon-button" aria-label="Go to triggers" ng-click="vm.gotoTriggers()" translate translate-attr-aria-label="TOOLS.GO_TO_TRIGGERS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n <div layout="row" layout-align="start center">\n <div class="trigger-image" hide-xs>\n <img ng-src="assets/images/business/triggers.jpg">\n </div>\n <div layout="column" layout-align="start start">\n <div class="h2">#{{ vm.trigger.id }}\n <span ng-if="vm.trigger.name">{{ vm.trigger.name }}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="TOOLS.CREATED_AT"></span> <span>{{ vm.trigger.createdAt | date:\'medium\' }}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveTrigger()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (allconditionsForm.$invalid) || (anyconditionsForm.$invalid) || (actionsForm.$invalid)" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="TOOLS.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="trigger-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="TOOLS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.trigger.name" required autofocus ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.trigger.channel" required disabled>\n <md-option ng-value="\'voice\'"> {{ \'TOOLS.VOICE\' | translate }} </md-option>\n <md-option ng-value="\'openchannel\'" ng-if="vm.license.openchannel">\n {{ \'TOOLS.OPENCHANNEL\' | translate }} </md-option>\n <md-option ng-value="\'chat\'" ng-if="vm.license.chat"> {{ \'TOOLS.CHAT\' | translate }} </md-option>\n <md-option ng-value="\'mail\'" ng-if="vm.license.mail"> {{ \'TOOLS.MAIL\' | translate }} </md-option>\n <md-option ng-value="\'sms\'" ng-if="vm.license.messaging"> {{ \'TOOLS.SMS\' | translate }} </md-option>\n <md-option ng-value="\'fax\'" ng-if="vm.license.fax"> {{ \'TOOLS.FAX\' | translate }} </md-option>\n <md-option ng-value="\'whatsapp\'" ng-if="vm.license.whatsapp"> {{ \'TOOLS.WHATSAPP\' | translate }}\n </md-option>\n </md-select>\n <div ng-messages="generalForm[\'channel\'].$error" ng-show="generalForm[\'channel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.trigger.status" aria-label="Status" ng-disabled="!vm.crudPermissions.canEdit">\n <span translate="TOOLS.STATUS">Status</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.trigger.description" ng-disabled="!vm.crudPermissions.canEdit">\n </md-input-container>\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="TOOLS.CONDITIONS&ACTIONS">CONDITIONS&ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="trigger-detail-form-container allconditions md-background-bg md-whiteframe-1dp" ng-include="\'app/main/apps/tools/views/triggers/edit/allconditions/allconditions.html\'">\n </div>\n <div class="trigger-detail-form-container anyconditions md-background-bg md-whiteframe-1dp" ng-include="\'app/main/apps/tools/views/triggers/edit/anyconditions/anyconditions.html\'">\n </div>\n <div class="trigger-detail-form-container actions md-background-bg md-whiteframe-1dp" ng-include="\'app/main/apps/tools/views/triggers/edit/actions/actions.html\'">\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/tools/views/triggers/triggers.html",'<div id="triggers" class="page-layout simple left-sidenav inner-sidenav">\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="TOOLS.TRIGGERS">Triggers</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedTriggers.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n <div class="close-button-wrapper" ng-click="vm.selectedTriggers =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="TOOLS.BACK">Back</span>\n </md-button>\n </div>\n <div flex layout="row" layout-align="space-between center">\n <div>\n <span class="selected-triggers-count">\n <span>{{ vm.selectedTriggers.length }}</span>\n <span translate="TOOLS.SELECTED">Selected</span>\n </span>\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TOOLS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllTriggers()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectTriggers()" translate="TOOLS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedTriggers" csv-label="true" filename="triggers.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedTriggers($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n \x3c!-- TRIGGER TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedTriggers" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTriggers">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n <th md-column md-order-by="channel">{{ \'TOOLS.CHANNEL\' | translate }}</th>\n <th md-column md-order-by="status">{{ \'TOOLS.STATUS\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.triggers.rows.length">\n <td md-cell colspan="6">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="trigger" md-select-id="id" ng-repeat="trigger in vm.triggers.rows">\n <td ng-click="vm.createOrEditTrigger($event, trigger)" md-cell class="id ">{{ trigger.id }}</td>\n <td ng-click="vm.createOrEditTrigger($event, trigger)" md-cell class="name ">{{ trigger.name }}</td>\n <td ng-click="vm.createOrEditTrigger($event, trigger)" md-cell class="channel ">\n {{ \'TOOLS.\' + trigger.channel | uppercase | translate }}</td>\n <td ng-click="vm.createOrEditTrigger($event, trigger)" md-cell class="status ">\n <md-icon md-colors="{color: {{ trigger.status ? \'\\\'green\\\'\' : \'\\\'grey\\\'\' }}}" md-font-icon="{{ trigger.status ? \'icon-check\' : \'icon-close\' }}"></md-icon>\n </td>\n <td ng-click="vm.createOrEditTrigger($event, trigger)" md-cell class="description ">\n {{ trigger.description }}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.goToEditState(trigger)" translate="TOOLS.EDIT_TRIGGER">\n Edit Trigger\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteconfirm(trigger, $event)" translate="TOOLS.DELETE_TRIGGER">\n Delete Trigger\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{ \'TOOLS.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'TOOLS.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'TOOLS.OF\' | translate }}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{ vm.triggers.count }}" md-on-paginate="vm.getTriggers" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / TRIGGER TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n </div>\n \x3c!-- / CONTENT --\x3e\n \x3c!-- ADD TRIGGER BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-trigger-button" ng-click="vm.createOrEditTrigger($event)" aria-label="add trigger" translate translate-attr-aria-label="TOOLS.ADD_TRIGGER">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD TRIGGER BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/trunks/create/dialog.html",'<md-dialog class="trunk-dialog" aria-label="New Trunk">\n <form name="trunkForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.trunk.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newTrunk">\n\n <div class="hint"><span translate="TOOLS.HELP.NAME"></span></div>\n <div ng-messages="trunkForm[\'name\'].$error" ng-show="trunkForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="TOOLS.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.trunk.active" aria-label="active"><span translate="TOOLS.ACTIVE">active</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.HOST">host</label>\n <input type="text" name="host" ng-model="vm.trunk.host" ng-required="true">\n\n <div class="hint"><span translate="TOOLS.HELP.HOST"></span></div>\n <div ng-messages="trunkForm[\'host\'].$error" ng-show="trunkForm[\'host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.HOST_REQUIRED">host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.SECRET">secret</label>\n <input type="password" name="secret" ng-model="vm.trunk.secret" placeholder="Password" translate translate-attr-placeholder="TOOLS.PASSWORD">\n <div class="hint"><span translate="TOOLS.HELP.SECRET"></span></div>\n <div ng-messages="trunkForm[\'secret\'].$error" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="TOOLS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="TOOLS.DEFAULTUSER">defaultuser</label>\n <input type="text" name="defaultuser" ng-model="vm.trunk.defaultuser">\n\n <div class="hint"><span translate="TOOLS.HELP.DEFAULTUSER"></span></div>\n <div ng-messages="trunkForm[\'defaultuser\'].$error" ng-show="trunkForm[\'defaultuser\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DEFAULTUSER_REQUIRED">defaultuser field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.REGISTRY">registry</label>\n <input type="text" name="registry" ng-model="vm.trunk.registry">\n\n <div class="hint"><span translate="TOOLS.HELP.REGISTRY"></span></div>\n <div ng-messages="trunkForm[\'registry\'].$error" ng-show="trunkForm[\'registry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.REGISTRY_REQUIRED">registry field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.trunk.description">\n\n <div ng-messages="trunkForm[\'description\'].$error" ng-show="trunkForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newTrunk" ng-click="vm.saveTrunk()" class="send-button md-accent md-raised" ng-disabled="trunkForm.$invalid || trunkForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newTrunk" ng-click="vm.addNewTrunk()" class="send-button md-accent md-raised" ng-disabled="trunkForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_TRUNK" translate-attr-aria-label="TOOLS.ADD_TRUNK">\n ADD TRUNK\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newTrunk" ng-click="vm.deleteTrunk($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/trunks/edit/clone/clone.html",'<md-dialog class="trunk-dialog" aria-label="Clone Trunk">\n <form name="trunkForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.trunk.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newTrunk">\n\n <div class="hint"><span translate="TOOLS.HELP.NAME"></span></div>\n <div ng-messages="trunkForm[\'name\'].$error" ng-show="trunkForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="TOOLS.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.trunk.active" aria-label="active"><span translate="TOOLS.ACTIVE">active</span></md-switch>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <md-button type="submit" ng-click="vm.cloneTrunk()" class="send-button md-accent md-raised" ng-disabled="trunkForm.$invalid" aria-label="CLONE" translate="TOOLS.CLONE_TRUNK" translate-attr-aria-label="TOOLS.CLONE_TRUNK">\n CLONE TRUNK\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/trunks/edit/view.html",'<div id="tools-trunk" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-trunks-button md-icon-button" aria-label="Go to trunks" ng-click="vm.gotoTrunks()" translate translate-attr-aria-label="TOOLS.GO_TO_TRUNKS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="trunk-image" hide-xs>\n <img ng-src="assets/images/business/trunks.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.trunk.id}}\n <span ng-if="vm.trunk.name">{{vm.trunk.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="TOOLS.CREATED_AT"></span> <span>{{vm.trunk.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.trunk, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="TOOLS.GOTO_TRUNK"></span></md-tooltip>\n <md-icon md-font-icon="icon-cast"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.clonedialog(vm.trunk, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="clone">\n <md-tooltip><span translate="TOOLS.CLONE_TRUNK"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveTrunk()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (advancedForm.$invalid) || (otherFieldsForm.$invalid)" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="TOOLS.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="trunk-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="TOOLS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.trunk.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="TOOLS.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="TOOLS.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.trunk.active" aria-label="active" ng-disabled="!vm.crudPermissions.canEdit"><span translate="TOOLS.ACTIVE">active</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.HOST">host</label>\n <input type="text" name="host" ng-model="vm.trunk.host" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.HOST"></span></div>\n <div ng-messages="generalForm[\'host\'].$error" ng-show="generalForm[\'host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.HOST_REQUIRED">host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.SECRET">secret</label>\n <input type="password" name="secret" ng-model="vm.trunk.secret" placeholder="Password" translate translate-attr-placeholder="TOOLS.PASSWORD">\n <div class="hint"><span translate="TOOLS.HELP.SECRET"></span></div>\n <div ng-messages="generalForm[\'secret\'].$error" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="TOOLS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="TOOLS.DEFAULTUSER">defaultuser</label>\n <input type="text" name="defaultuser" ng-model="vm.trunk.defaultuser" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.DEFAULTUSER"></span></div>\n <div ng-messages="generalForm[\'defaultuser\'].$error" ng-show="generalForm[\'defaultuser\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DEFAULTUSER_REQUIRED">defaultuser field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.CONTEXT">context</label>\n <md-select name="context" ng-model="vm.trunk.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts" ng-disabled="context.canSelect === false">{{ context.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.CONTEXT"></span></div>\n <div ng-messages="generalForm[\'context\'].$error" ng-show="generalForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.CONTEXT_REQUIRED">context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.CALLERID">callerid</label>\n <input type="text" name="callerid" ng-model="vm.trunk.callerid" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.CALLERID"></span></div>\n <div ng-messages="generalForm[\'callerid\'].$error" ng-show="generalForm[\'callerid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.CALLERID_REQUIRED">callerid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.trunk.type" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'friend\'">Friend</md-option>\n <md-option ng-value="\'user\'">User</md-option>\n <md-option ng-value="\'peer\'">Peer</md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.TYPE"></span></div>\n <div ng-messages="generalForm[\'type\'].$error" ng-show="generalForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DTMFMODE">dtmfmode</label>\n <md-select name="dtmfmode" ng-model="vm.trunk.dtmfmode" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'rfc2833\'">rfc2833</md-option>\n <md-option ng-value="\'info\'">info</md-option>\n <md-option ng-value="\'shortinfo\'">shortinfo</md-option>\n <md-option ng-value="\'inband\'">inband</md-option>\n <md-option ng-value="\'auto\'">auto</md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.DTMFMODE"></span></div>\n <div ng-messages="generalForm[\'dtmfmode\'].$error" ng-show="generalForm[\'dtmfmode\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DTMFMODE_REQUIRED">dtmfmode field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAT">nat</label>\n <md-select name="nat" ng-model="vm.trunk.nat" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'force_rport\'">force_rport</md-option>\n <md-option ng-value="\'comedia\'">comedia</md-option>\n <md-option ng-value="\'yes\'">yes</md-option>\n <md-option ng-value="\'no\'">no</md-option>\n <md-option ng-value="\'never\'">never</md-option>\n <md-option ng-value="\'route\'">route</md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.NAT"></span></div>\n <div ng-messages="generalForm[\'nat\'].$error" ng-show="generalForm[\'nat\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAT_REQUIRED">nat field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.QUALIFY">qualify</label>\n <md-select name="qualify" ng-model="vm.trunk.qualify" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'TOOLS.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'TOOLS.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.QUALIFY"></span></div>\n <div ng-messages="generalForm[\'qualify\'].$error" ng-show="generalForm[\'qualify\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.QUALIFY_REQUIRED">qualify field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.ALLOWCODECS">AllowCodecs</label>\n <md-select name="allow" ng-model="vm.trunk.allow" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'ulaw\'">ulaw</md-option>\n <md-option ng-value="\'alaw\'">alaw</md-option>\n <md-option ng-value="\'gsm\'">gsm</md-option>\n <md-option ng-value="\'g723\'">g723</md-option>\n <md-option ng-value="\'g726\'">g726</md-option>\n <md-option ng-value="\'g722\'">g722</md-option>\n <md-option ng-value="\'g729\'">g729</md-option>\n <md-option ng-value="\'ilbc\'">ilbc</md-option>\n <md-option ng-value="\'opus\'">opus</md-option>\n <md-option ng-value="\'h264\'">h264</md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.ALLOWCODECS"></span></div>\n <div ng-messages="generalForm[\'allow\'].$error" ng-show="generalForm[\'allow\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.ALLOWCODECS_REQUIRED">AllowCodecs field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.INSECURE">insecure</label>\n <md-select name="insecure" ng-model="vm.trunk.insecure" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'port\'">port</md-option>\n <md-option ng-value="\'invite\'">invite</md-option>\n <md-option ng-value="\'very\'">very</md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.INSECURE"></span></div>\n <div ng-messages="generalForm[\'insecure\'].$error" ng-show="generalForm[\'insecure\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.INSECURE_REQUIRED">insecure field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.CALL_LIMIT">call_limit</label>\n <input type="number" name="call_limit" ng-model="vm.trunk.call_limit" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.CALL_LIMIT"></span></div>\n <div ng-messages="generalForm[\'call_limit\'].$error" ng-show="generalForm[\'call_limit\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.CALL_LIMIT_REQUIRED">call_limit field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.trunk.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="TOOLS.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="trunk-detail-form-container advanced md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="TOOLS.ADVANCED">ADVANCED</div>\n </div>\n <form name="advancedForm" novalidate>\n <md-input-container class="md-block">\n <label translate="TOOLS.REGISTRY">registry</label>\n <input type="text" name="registry" ng-model="vm.trunk.registry" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.REGISTRY"></span></div>\n <div ng-messages="advancedForm[\'registry\'].$error" ng-show="advancedForm[\'registry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.REGISTRY_REQUIRED">registry field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DIRECTMEDIA">directmedia</label>\n <md-select name="directmedia" ng-model="vm.trunk.directmedia" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">yes</md-option>\n <md-option ng-value="\'no\'">no</md-option>\n <md-option ng-value="\'nonat\'">nonat</md-option>\n <md-option ng-value="\'update\'">update</md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.DIRECTMEDIA"></span></div>\n <div ng-messages="advancedForm[\'directmedia\'].$error" ng-show="advancedForm[\'directmedia\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DIRECTMEDIA_REQUIRED">directmedia field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.CALLCOUNTER">callcounter</label>\n <md-select name="callcounter" ng-model="vm.trunk.callcounter" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'TOOLS.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'TOOLS.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.CALLCOUNTER"></span></div>\n <div ng-messages="advancedForm[\'callcounter\'].$error" ng-show="advancedForm[\'callcounter\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.CALLCOUNTER_REQUIRED">callcounter field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.FROMDOMAIN">fromdomain</label>\n <input type="text" name="fromdomain" ng-model="vm.trunk.fromdomain" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.FROMDOMAIN"></span></div>\n <div ng-messages="advancedForm[\'fromdomain\'].$error" ng-show="advancedForm[\'fromdomain\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.FROMDOMAIN_REQUIRED">fromdomain field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.FROMUSER">fromuser</label>\n <input type="text" name="fromuser" ng-model="vm.trunk.fromuser" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.FROMUSER"></span></div>\n <div ng-messages="advancedForm[\'fromuser\'].$error" ng-show="advancedForm[\'fromuser\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.FROMUSER_REQUIRED">fromuser field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.OUTBOUNDPROXY">outboundproxy</label>\n <input type="text" name="outboundproxy" ng-model="vm.trunk.outboundproxy" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.OUTBOUNDPROXY"></span></div>\n <div ng-messages="advancedForm[\'outboundproxy\'].$error" ng-show="advancedForm[\'outboundproxy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.OUTBOUNDPROXY_REQUIRED">outboundproxy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.ADD_PHONE_TO_URI">Add_phone_to_URI</label>\n <md-select name="usereqphone" ng-model="vm.trunk.usereqphone" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'TOOLS.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'TOOLS.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.ADD_PHONE_TO_URI"></span></div>\n <div ng-messages="advancedForm[\'usereqphone\'].$error" ng-show="advancedForm[\'usereqphone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.ADD_PHONE_TO_URI_REQUIRED">Add_phone_to_URI field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.TRUST_REMOTE_PARTY_ID">Trust_Remote_Party_ID</label>\n <md-select name="trustrpid" ng-model="vm.trunk.trustrpid" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'TOOLS.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'TOOLS.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.TRUST_REMOTE_PARTY_ID"></span></div>\n <div ng-messages="advancedForm[\'trustrpid\'].$error" ng-show="advancedForm[\'trustrpid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TRUST_REMOTE_PARTY_ID_REQUIRED">Trust_Remote_Party_ID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.SEND_REMOTE_PARTY_ID_HEADER">Send_Remote_Party_ID_header</label>\n <md-select name="sendrpid" ng-model="vm.trunk.sendrpid" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'TOOLS.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'TOOLS.NO\' | translate }} </md-option>\n\n <md-option ng-value="\'pai\'"> {{ \'TOOLS.PAI\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.SEND_REMOTE_PARTY_ID_HEADER"></span></div>\n <div ng-messages="advancedForm[\'sendrpid\'].$error" ng-show="advancedForm[\'sendrpid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SEND_REMOTE_PARTY_ID_HEADER_REQUIRED">Send_Remote_Party_ID_header field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.ENCRYPTION">encryption</label>\n <md-select name="encryption" ng-model="vm.trunk.encryption" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'TOOLS.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'TOOLS.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.ENCRYPTION"></span></div>\n <div ng-messages="advancedForm[\'encryption\'].$error" ng-show="advancedForm[\'encryption\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.ENCRYPTION_REQUIRED">encryption field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.PORT">port</label>\n <input type="number" name="port" ng-model="vm.trunk.port" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.PORT"></span></div>\n <div ng-messages="advancedForm[\'port\'].$error" ng-show="advancedForm[\'port\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.PORT_REQUIRED">port field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.TRANSPORT">Transport</label>\n <md-select name="transport" ng-model="vm.trunk.transport" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'udp\'">udp</md-option>\n <md-option ng-value="\'tcp\'">tcp</md-option>\n <md-option ng-value="\'ws\'">ws</md-option>\n <md-option ng-value="\'wss\'">wss</md-option>\n <md-option ng-value="\'tls\'">tls</md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.TRANSPORT"></span></div>\n <div ng-messages="advancedForm[\'transport\'].$error" ng-show="advancedForm[\'transport\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TRANSPORT_REQUIRED">Transport field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.T38PT_UDPTL">t38pt_udptl</label>\n <input type="string" name="t38pt_udptl" ng-model="vm.trunk.t38pt_udptl" value="no" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.T38PT_UDPTL"></span></div>\n <div ng-messages="advancedForm[\'t38pt_udptl\'].$error" ng-show="advancedForm[\'t38pt_udptl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.T38PT_UDPTL_REQUIRED">t38pt_udptl field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.VIDEOSUPPORT">Videosupport</label>\n <md-select name="videosupport" ng-model="vm.trunk.videosupport" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">Yes</md-option>\n <md-option ng-value="\'no\'">No</md-option>\n <md-option ng-value="\'always\'">Always</md-option>\n </md-select>\n <div ng-messages="advancedForm[\'videosupport\'].$error" ng-show="advancedForm[\'videosupport\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.VIDEOSUPPORT_REQUIRED">Videosupport field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="TOOLS.OTHERFIELDS">OTHERFIELDS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="trunk-detail-form-container otherfields md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="TOOLS.OTHERFIELDS">OTHERFIELDS</div>\n </div>\n <form name="otherFieldsForm" novalidate>\n <md-input-container class="md-block">\n <label translate="TOOLS.OTHERFIELDS">otherFields</label>\n <textarea name="otherFields" ng-model="vm.trunk.otherFields" autofocus></textarea>\n <div class="hint"><span translate="TOOLS.HELP.OTHERFIELDS"></span></div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/tools/views/trunks/trunks.html",'<div id="trunks" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="TOOLS.TRUNKS">Trunks</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedTrunks.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedTrunks =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="TOOLS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-trunks-count">\n <span>{{vm.selectedTrunks.length}}</span>\n <span translate="TOOLS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TOOLS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllTrunks()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectTrunks()" translate="TOOLS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedTrunks" csv-label="true" filename="trunks.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedTrunks($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- TRUNK TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedTrunks" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTrunks">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n <th md-column md-order-by="active">{{ \'TOOLS.ACTIVE\' | translate }}</th>\n <th md-column md-order-by="host">{{ \'TOOLS.HOST\' | translate }}</th>\n <th md-column md-order-by="registry">{{ \'TOOLS.REGISTRY\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.trunks.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="trunk" md-select-id="id" ng-repeat="trunk in vm.trunks.rows">\n <td md-cell ng-if="trunk.userpic"><img class="avatar" alt="{{trunk.name}}" ng-src="api/users/{{trunk.id}}/avatar" /></td>\n <td md-cell ng-if="!trunk.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{trunk.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)" md-cell class="id ">{{trunk.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)" md-cell class="name ">{{trunk.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)" md-cell class="active ">\n <md-icon md-colors="{color: {{trunk.active ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{trunk.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)" md-cell class="host ">{{trunk.host}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)" md-cell class="registry ">{{trunk.registry}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)" md-cell class="description ">{{trunk.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(trunk, $event )" translate="TOOLS.EDIT_TRUNK">\n Edit Trunk\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.clonedialog(trunk, $event )" translate="TOOLS.CLONE_TRUNK">\n clone Trunk\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(trunk, $event )" translate="TOOLS.GOTOREALTIME_TRUNK">\n goToRealtime Trunk\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(trunk, $event )" translate="TOOLS.DELETE_TRUNK">\n Delete Trunk\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.trunks.count}}" md-on-paginate="vm.getTrunks" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / TRUNK TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD TRUNK BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-trunk-button" ng-click="vm.createOrEditTrunk($event)" aria-label="add trunk" translate translate-attr-aria-label="TOOLS.ADD_TRUNK">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD TRUNK BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/variables/create/dialog.html",'<md-dialog class="variable-dialog" aria-label="New Variable">\n <form name="variableForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.variable.name" ng-required="true" autofocus>\n\n <div ng-messages="variableForm[\'name\'].$error" ng-show="variableForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.variable.description">\n\n <div ng-messages="variableForm[\'description\'].$error" ng-show="variableForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newVariable" ng-click="vm.saveVariable()" class="send-button md-accent md-raised" ng-disabled="variableForm.$invalid || variableForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newVariable" ng-click="vm.addNewVariable()" class="send-button md-accent md-raised" ng-disabled="variableForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_VARIABLE" translate-attr-aria-label="TOOLS.ADD_VARIABLE">\n ADD VARIABLE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newVariable" ng-click="vm.deleteVariable($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/variables/variables.html",'<div id="variables" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="TOOLS.VARIABLES">Variables</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedVariables.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedVariables =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="TOOLS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-variables-count">\n <span>{{vm.selectedVariables.length}}</span>\n <span translate="TOOLS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TOOLS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllVariables()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectVariables()" translate="TOOLS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedVariables" csv-label="true" filename="variables.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedVariables($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- VARIABLE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedVariables" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVariables">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.variables.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="variable" md-select-id="id" ng-repeat="variable in vm.variables.rows">\n <td md-cell ng-if="variable.userpic"><img class="avatar" alt="{{variable.name}}" ng-src="api/users/{{variable.id}}/avatar" /></td>\n <td md-cell ng-if="!variable.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{variable.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditVariable($event, variable)" md-cell class="id ">{{variable.id}}</td>\n <td ng-click="vm.createOrEditVariable($event, variable)" md-cell class="name ">{{variable.name}}</td>\n <td ng-click="vm.createOrEditVariable($event, variable)" md-cell class="description ">{{variable.description}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(variable, $event )" translate="TOOLS.EDIT_VARIABLE">\n Edit Variable\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(variable, $event )" translate="TOOLS.DELETE_VARIABLE">\n Delete Variable\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.variables.count}}" md-on-paginate="vm.getVariables" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / VARIABLE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD VARIABLE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-variable-button" ng-click="vm.createOrEditVariable($event)" aria-label="add variable" translate translate-attr-aria-label="TOOLS.ADD_VARIABLE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD VARIABLE BUTTON --\x3e\n</div>'),e.put("app/main/apps/video/views/screenRecordings/create/dialog.html",'<md-dialog class="screenRecording-dialog" aria-label="New screenRecording">\n <form name="screenRecordingForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="VIDEO.RATING">Rating</label>\n <md-select name="rating" ng-model="vm.screenRecording.rating" autofocus ng-disabled="!vm.newscreenRecording && !vm.crudPermissions.canEdit">\n <md-option ng-value="null">{{\'VIDEO.NO_RATING\' | translate}}</md-option>\n <md-option value="1">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1]"></md-icon>\n </md-option>\n <md-option value="2">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2]"></md-icon>\n </md-option>\n <md-option value="3">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2,3]"></md-icon>\n </md-option>\n <md-option value="4">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2,3,4]"></md-icon>\n </md-option>\n <md-option value="5">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2,3,4,5]"></md-icon>\n </md-option>\n </md-select>\n <div ng-messages="screenRecordingForm[\'rating\'].$error" ng-show="screenRecordingForm[rating].$touched" role="alert">\n <div ng-message="required">\n <span translate="VIDEO.ERRORS.RATING_REQUIRED">Rating field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newscreenRecording" ng-click="vm.savescreenRecording()" class="send-button md-accent md-raised" ng-disabled="screenRecordingForm.$invalid || screenRecordingForm.$pristine" aria-label="SAVE" translate="VIDEO.SAVE" translate-attr-aria-label="VIDEO.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newscreenRecording" ng-click="vm.addNewscreenRecording()" class="send-button md-accent md-raised" ng-disabled="screenRecordingForm.$invalid" aria-label="ADD" translate="VIDEO.ADD_SCREENRECORDING" translate-attr-aria-label="VIDEO.ADD_SCREENRECORDING">\n ADD SCREENRECORDING\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newscreenRecording" ng-click="vm.deletescreenRecording($event)" aria-label="DELETE" translate translate-attr-aria-label="VIDEO.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VIDEO.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/video/views/screenRecordings/partialViews/play.html",'<md-dialog class="play-dialog" aria-label="play">\n <form name="playForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="{{ vm.app.toUpperCase() }}.{{ vm.label.toUpperCase() }}">Play Recording</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-disabled="vm.loading" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ng-hide="vm.loading">\n <div layout="row" layout-sm flex>\n \x3c!-- VIRTUAL field --\x3e\n <md-card>\n\n <md-card-title ng-if="vm.actionOptions.upperTitle">\n <md-card-title-text>\n <span class="md-headline">{{ vm.filename }}</span>\n <span class="md-subhead"><span translate="{{ vm.app.toUpperCase() }}.UPDATEDAT"></span>: {{ vm.recording.updatedAt}}</span>\n </md-card-title-text>\n </md-card-title>\n\n \x3c!-- video recording directive --\x3e\n <ms-dialog-recording ng-if="vm.format" id="vm.recording.id" title="vm.filename" element="vm.element" model="vm.route" path="vm.path" class="md-card-image"></ms-dialog-recording>\n \x3c!-- / video recording directive --\x3e\n\n <span ng-if="!vm.format">\n <em ng-if="vm.found">{{ vm.app.toUpperCase() + \'.CANT_PLAY_THIS_FILE\' | translate }}</em>\n <em ng-if="!vm.found">{{ vm.app.toUpperCase() + \'.FILE_NOT_FOUND\' | translate }}</em>\n </span>\n\n <md-card-title ng-if="vm.actionOptions.lowerTitle">\n <md-card-title-text>\n <span class="md-headline">{{ vm.filename }}</span>\n <span class="md-subhead"><span translate="{{ vm.app.toUpperCase() }}.UPDATEDAT"></span>:{{ vm.recording.updatedAt}}</span>\n <span ng-if="vm.actionOptions.properties" class="md-subhead"><span translate="{{ vm.app.toUpperCase() }}.PROPERTIES"></span>:</span>\n </md-card-title-text>\n </md-card-title>\n\n <md-card-content ng-if="vm.actionOptions.properties">\n <md-list>\n <md-list-item class="md-2-line" ng-repeat="(key,value) in vm.properties" ng-click="null" ng-if="key != \'value\' && key != \'updatedAt\' && key != \'queue\'">\n\n <md-icon ng-if="vm.icon" class="md-avatar-icon" md-font-icon="vm.actionOptions.propertiesIcon" class="s24"></md-icon>\n\n <div class="md-list-item-text" layout="column">\n <p><b><span translate="{{ vm.app.toUpperCase() }}.{{ key.toUpperCase() }}"></span></b></p>\n <p>{{ value }}\n <p>\n </div>\n </md-list-item>\n </md-list>\n </md-card-content>\n\n\n </md-card>\n </div>\n </md-dialog-content>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\n </form>\n</md-dialog>'),e.put("app/main/apps/video/views/screenRecordings/screenRecordings.html",'<div id="screenRecordings" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-video" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="VIDEO.SCREENRECORDINGS">ScreenRecordings</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="VIDEO.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getScreenRecordings()"></ms-quick-filter>\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedScreenRecordings.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedScreenRecordings =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="VIDEO.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-screenRecordings-count">\n <span>{{vm.selectedScreenRecordings.length}}</span>\n <span translate="VIDEO.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VIDEO.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllScreenRecordings()" translate="VIDEO.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectScreenRecordings()" translate="VIDEO.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedScreenRecordings" csv-label="true" filename="screenRecordings.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedScreenRecordings($event)" aria-label="delete selected" translate translate-attr-label="VIDEO.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- SCREENRECORDING TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedScreenRecordings" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getScreenRecordings">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'VIDEO.ID\' | translate }}</th>\n <th md-column md-order-by="rating">{{ \'VIDEO.RATING\' | translate }}</th>\n <th md-column md-order-by="UserId">{{ \'VIDEO.AGENT\' | translate }}</th>\n <th md-column md-order-by="duration">{{ \'VIDEO.DURATION\' | translate }}</th>\n <th md-column md-order-by="startedAt">{{ \'VIDEO.RECORDSTARTTIME\' | translate }}</th>\n <th md-column md-order-by="closedAt">{{ \'VIDEO.RECORDENDTIME\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.screenRecordings.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="VIDEO.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="screenRecording" md-select-id="id" ng-repeat="screenRecording in vm.screenRecordings.rows">\n <td md-cell ng-if="screenRecording.userpic"><img class="avatar" alt="{{screenRecording.name}}" ng-src="api/users/{{screenRecording.id}}/avatar" /></td>\n <td md-cell ng-if="!screenRecording.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{screenRecording.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditscreenRecording($event, screenRecording)" md-cell class="id ">{{screenRecording.id}}</td>\n <td ng-click="vm.createOrEditscreenRecording($event, screenRecording)" md-cell class="rating ">\n <md-icon md-font-icon="icon-star" style="color:red" ng-show="screenRecording.rating" ng-repeat="rating in [1,2,3,4,5] | limitTo:screenRecording.rating"></md-icon><span ng-hide="screenRecording.rating" translate="VIDEO.NO_RATING">No rating</span>\n </td>\n <td ng-click="vm.createOrEditscreenRecording($event, screenRecording)" md-cell class="UserId ">{{ (vm.users | filter : {\'id\':screenRecording.UserId} : true)[0].fullname }}</td>\n <td md-cell><span ng-bind="vm.convertDuration(screenRecording.duration)"></span></td>\n <td ng-click="vm.createOrEditscreenRecording($event, screenRecording)" md-cell class="startedAt ">{{screenRecording.startedAt | date:\'medium\' }}</td>\n <td ng-click="vm.createOrEditscreenRecording($event, screenRecording)" md-cell class="closedAt ">{{screenRecording.closedAt | date:\'medium\' }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VIDEO.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.playrecording(screenRecording, $event , \'value\' , \'play_screenrecording\' , \'video\' )" translate="VIDEO.PLAY_SCREENRECORDING">\n play screenRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.role === \'admin\' || vm.userProfile.downloadScreenRecordings">\n\n <md-button ng-click="vm.downloadfile2(screenRecording, $event , \'screen/recordings\' )" translate="VIDEO.DOWNLOAD_SCREENRECORDING">\n Download screenRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(screenRecording, $event )" translate="VIDEO.DELETE_SCREENRECORDING">\n Delete screenRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'VIDEO.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VIDEO.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VIDEO.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.screenRecordings.count}}" md-on-paginate="vm.getScreenRecordings" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / SCREENRECORDING TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- NO ADD BUTTON BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/routing/dialog.html",'<md-dialog ng-init="vm.init()" class="voice-routing-dialog" aria-label="New routing application">\n <form name="routingAppForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ \'VOICE.EDIT_\' + vm.application.appType | uppercase | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ng-switch="vm.application.appType" ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span>({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <div ng-switch-when="agi">\n <div ng-include="\'app/main/apps/voice/routing/views/agi.html\'"></div>\n </div>\n <div ng-switch-when="custom">\n <div ng-include="\'app/main/apps/voice/routing/views/custom.html\'"></div>\n </div>\n <div ng-switch-when="dial">\n <div ng-include="\'app/main/apps/voice/routing/views/dial.html\'"></div>\n </div>\n <div ng-switch-when="externalDial">\n <div ng-include="\'app/main/apps/voice/routing/views/externalDial.html\'"></div>\n </div>\n <div ng-switch-when="goTo">\n <div ng-include="\'app/main/apps/voice/routing/views/goTo.html\'"></div>\n </div>\n <div ng-switch-when="hangup">\n <div ng-include="\'app/main/apps/voice/routing/views/hangup.html\'"></div>\n </div>\n <div ng-switch-when="internalDial">\n <div ng-include="\'app/main/apps/voice/routing/views/internalDial.html\'"></div>\n </div>\n <div ng-switch-when="outboundDial">\n <div ng-include="\'app/main/apps/voice/routing/views/outboundDial.html\'"></div>\n </div>\n <div ng-switch-when="playback">\n <div ng-include="\'app/main/apps/voice/routing/views/playback.html\'"></div>\n </div>\n <div ng-switch-when="queue">\n <div ng-include="\'app/main/apps/voice/routing/views/queue.html\'"></div>\n </div>\n <div ng-switch-when="ringGroup">\n <div ng-include="\'app/main/apps/voice/routing/views/ringGroup.html\'"></div>\n </div>\n <div ng-switch-when="set">\n <div ng-include="\'app/main/apps/voice/routing/views/set.html\'"></div>\n </div>\n <div ng-switch-when="voicemail">\n <div ng-include="\'app/main/apps/voice/routing/views/voicemail.html\'"></div>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveRoutingApp()" class="send-button md-accent md-raised" ng-disabled="routingAppForm.$invalid || routingAppForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/routing/interval/dialog.html",'<md-dialog ng-init="vm.initialize()" class="interval-dialog" aria-label="Edit Interval">\n <form name="intervalForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ \'TOOLS.EDIT_INTERVAL\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span>({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.crudPermissions.canEdit" ng-change="vm.onTypeChange()">\n <md-option ng-value="type" ng-repeat=\'type in vm.types\'>{{ type | startcase }}</md-option>\n </md-select>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.type === \'list\'">\n <label translate="TOOLS.INTERVALS">Intervals</label>\n <md-select ng-model="vm.interval.IntervalId" ng-disabled="!vm.crudPermissions.canEdit" required>\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals.rows" ng-disabled="interval.canSelect === false">{{ interval.name }}</md-option>\n </md-select>\n </md-input-container>\n \x3c!-- TIMERANGE START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.TIME_RANGE">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <div class="md-block" flex>\n <mdp-time-picker name="timeRangeFrom" mdp-placeholder="FROM" ng-model="vm.timeRangeFrom" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="intervalForm.timeRangeFrom.$error" ng-show="intervalForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_FROM_INVALID">Time Range From field is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n <div class="md-block" flex ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.crudPermissions.canEdit" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_INVALID">Time Range To field is invalid</span>\n </div>\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </div>\n \x3c!-- TIMERANGE END --\x3e\n \x3c!-- DAYSOFWEEK START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.WEEK_DAYS">Week Days</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.dayOfWeekFrom" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | startcase }}</span></md-option>\n </md-select>\n </md-input-container>\n <md-input-container flex class="md-block" ng-if="vm.dayOfWeekFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="dayOfWeekTo" ng-model="vm.dayOfWeekTo" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | startcase }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- DAYSOFWEEK END --\x3e\n \x3c!-- MONTHDAY START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTH_DAYS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthDayFrom" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n </md-input-container>\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthDayFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthDayTo" ng-model="vm.monthDayTo" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTHDAY END --\x3e\n \x3c!-- MONTH START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTHS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthFrom" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | startcase }}</span></md-option>\n </md-select>\n </md-input-container>\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthTo" ng-model="vm.monthTo" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | startcase }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTH END --\x3e\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/routing/views/agi.html",'<md-input-container class="md-block">\n <label translate="VOICE.PROJECT">Project</label>\n <md-select name="project" ng-model="vm.application.project" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'agi://127.0.0.1/square,{{project.name}}\'" ng-repeat="project in vm.projects.rows" ng-disabled="project.canSelect === false">{{ project.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'project\'].$error" ng-show="routingAppForm[\'project\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PROJECT_REQUIRED">Project field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/custom.html",'<md-input-container class="md-block">\n <label translate="VOICE.APPLICATION_NAME">Application_Name</label>\n <input type="text" name="app" ng-model="vm.application.app" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'app\'].$error" ng-show="routingAppForm[\'app\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.APPLICATION_NAME_REQUIRED">Application_Name field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.ARGUMENTS">Arguments</label>\n <input type="text" name="appdata" ng-model="vm.application.appdata" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'appdata\'].$error" ng-show="routingAppForm[\'appdata\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ARGUMENTS_REQUIRED">Arguments field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/dial.html",'<md-input-container class="md-block">\n <label translate="VOICE.TECHNOLOGY/RESOURCE">Technology/Resource</label>\n <input type="text" name="tech" ng-model="vm.application.tech" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'tech\'].$error" ng-show="routingAppForm[\'tech\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TECHNOLOGY/RESOURCE_REQUIRED">Technology/Resource field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.application.timeout" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'timeout\'].$error" ng-show="routingAppForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>0</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.OPTIONS">Options</label>\n <input type="text" name="options" ng-model="vm.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'options\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.URL">Url</label>\n <input type="text" name="url" ng-model="vm.application.url" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'url\'].$error" ng-show="routingAppForm[\'url\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/externalDial.html",'<md-input-container class="md-block">\n <label translate="VOICE.TRUNK">Trunk</label>\n <md-select name="trunk" ng-model="vm.application.trunk" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="trunk.name" ng-repeat="trunk in vm.trunks.rows" ng-disabled="trunk.canSelect === false">{{\n trunk.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'trunk\'].$error" ng-show="routingAppForm[\'trunk\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TRUNK_REQUIRED">Trunk field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.application.phone" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'phone\'].$error" ng-show="routingAppForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.application.timeout" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'timeout\'].$error" ng-show="routingAppForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>0</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.OPTIONS">Options</label>\n <input type="text" name="options" ng-model="vm.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'options\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.URL">Url</label>\n <input type="text" name="url" ng-model="vm.application.url" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'url\'].$error" ng-show="routingAppForm[\'url\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/goTo.html",'<md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.application.context" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{\n context.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'context\'].$error" ng-show="routingAppForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.EXTENSION">Extension</label>\n <input type="text" name="extension" ng-model="vm.application.extension" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'extension\'].$error" ng-show="routingAppForm[\'extension\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.EXTENSION_REQUIRED">Extension field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.PRIORITY">Priority</label>\n <input type="text" name="priority" ng-model="vm.application.priority" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'priority\'].$error" ng-show="routingAppForm[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/hangup.html","<md-input-container class=\"md-block\">\n <label translate=\"VOICE.HANGUP_CAUSE\">Hangup_Cause</label>\n <md-select name=\"appdata\" ng-model=\"vm.application.appdata\" autofocus required ng-disabled=\"!vm.crudPermissions.canEdit\">\n <md-option ng-value=\"'1'\"> {{ 'VOICE.HANGUPCAUSE_1' | translate }} </md-option>\n <md-option ng-value=\"'16'\"> {{ 'VOICE.HANGUPCAUSE_16' | translate }} </md-option>\n <md-option ng-value=\"'17'\"> {{ 'VOICE.HANGUPCAUSE_17' | translate }} </md-option>\n <md-option ng-value=\"'18'\"> {{ 'VOICE.HANGUPCAUSE_18' | translate }} </md-option>\n <md-option ng-value=\"'21'\"> {{ 'VOICE.HANGUPCAUSE_21' | translate }} </md-option>\n <md-option ng-value=\"'22'\"> {{ 'VOICE.HANGUPCAUSE_22' | translate }} </md-option>\n <md-option ng-value=\"'27'\"> {{ 'VOICE.HANGUPCAUSE_27' | translate }} </md-option>\n <md-option ng-value=\"'38'\"> {{ 'VOICE.HANGUPCAUSE_38' | translate }} </md-option>\n <md-option ng-value=\"'41'\"> {{ 'VOICE.HANGUPCAUSE_41' | translate }} </md-option>\n </md-select>\n <div ng-messages=\"routingAppForm['appdata'].$error\" ng-show=\"routingAppForm['appdata'].$touched\" role=\"alert\">\n <div ng-message=\"required\">\n <span translate=\"VOICE.ERRORS.HANGUP_CAUSE_REQUIRED\">Hangup_Cause field is required</span>\n </div>\n </div>\n</md-input-container>"),e.put("app/main/apps/voice/routing/views/internalDial.html",'<md-input-container class="md-block">\n <label translate="VOICE.USER">User</label>\n <md-select name="user" ng-model="vm.application.user" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'SIP/{{user.name}}\'" ng-repeat="user in vm.users.rows" ng-disabled="user.canSelect === false">\n {{ user.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'user\'].$error" ng-show="routingAppForm[\'user\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.USER_REQUIRED">User field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.application.timeout" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'timeout\'].$error" ng-show="routingAppForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>0</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.OPTIONS">Options</label>\n <input type="text" name="options" ng-model="vm.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'options\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.URL">Url</label>\n <input type="text" name="url" ng-model="vm.application.url" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'url\'].$error" ng-show="routingAppForm[\'url\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/outboundDial.html",'<md-input-container class="md-block">\n <label translate="VOICE.TRUNK">Trunk</label>\n <md-select name="trunk" ng-model="vm.application.trunk" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="trunk.name" ng-repeat="trunk in vm.trunks.rows" ng-disabled="trunk.canSelect === false">{{\n trunk.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'trunk\'].$error" ng-show="routingAppForm[\'trunk\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TRUNK_REQUIRED">Trunk field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.CALLER_ID">Caller_ID</label>\n <input type="text" name="callerID" ng-model="vm.application.callerID" ng-disabled="!vm.crudPermissions.canEdit">\n <div class="hint"><span translate="VOICE.HELP.CALLER_ID"></span></div>\n <div ng-messages="routingAppForm[\'callerID\'].$error" ng-show="routingAppForm[\'callerID\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CALLER_ID_REQUIRED">Caller_ID field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.PREFIX">Prefix</label>\n <input type="text" name="prefix" ng-model="vm.application.prefix" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'prefix\'].$error" ng-show="routingAppForm[\'prefix\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PREFIX_REQUIRED">Prefix field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.TAGS">Tags</label>\n <md-select name="tag" ng-model="vm.application.tag" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'--\'">None</md-option>\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags.rows" ng-disabled="tag.canSelect === false">{{ tag.name }}\n </md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'tag\'].$error" ng-show="routingAppForm[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TAGS_REQUIRED">Tags field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.application.timeout" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'timeout\'].$error" ng-show="routingAppForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>0</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.OPTIONS">Options</label>\n <input type="text" name="options" ng-model="vm.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'options\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.URL">Url</label>\n <input type="text" name="url" ng-model="vm.application.url" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'url\'].$error" ng-show="routingAppForm[\'url\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/playback.html",'<md-input-container class="md-block">\n <label translate="VOICE.AUDIO_FILES">Audio_Files</label>\n <md-select name="sound" ng-model="vm.application.appdata" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/{{sound.save_name}}\'" ng-repeat="sound in vm.sounds.rows" ng-disabled="sound.canSelect === false">{{ sound.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'sound\'].$error" ng-show="routingAppForm[\'sound\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.AUDIO_FILES_REQUIRED">Audio_Files field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.OPTIONS">Options</label>\n <input type="text" name="options" ng-model="vm.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'options\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <md-switch ng-model="vm.application.answer" aria-label="Answer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="VOICE.ANSWER">Answer</span></md-switch>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/queue.html",'<md-input-container class="md-block">\n <label translate="VOICE.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.application.queue" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues.rows" ng-disabled="queue.canSelect === false">{{\n queue.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'queue\'].$error" ng-show="routingAppForm[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.OPTIONS">Options</label>\n <input type="text" name="options" ng-model="vm.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'options\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.URL">Url</label>\n <input type="text" name="URL" ng-model="vm.application.URL" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'URL\'].$error" ng-show="routingAppForm[\'URL\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.ANNOUNCE_OVERRIDES">Announce_Overrides</label>\n <md-select name="sound" ng-model="vm.application.sound" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/{{sound.save_name}}\'" ng-repeat="sound in vm.sounds.rows" ng-disabled="sound.canSelect === false">{{ sound.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'sound\'].$error" ng-show="routingAppForm[\'sound\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ANNOUNCE_OVERRIDES_REQUIRED">Announce_Overrides field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.application.timeout" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'timeout\'].$error" ng-show="routingAppForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>0</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.AGI">Agi</label>\n <input type="text" name="agi" ng-model="vm.application.agi" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'agi\'].$error" ng-show="routingAppForm[\'agi\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.AGI_REQUIRED">Agi field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.MACRO">Macro</label>\n <input type="text" name="macro" ng-model="vm.application.macro" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'macro\'].$error" ng-show="routingAppForm[\'macro\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MACRO_REQUIRED">Macro field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.GOSUB">GoSub</label>\n <input type="text" name="gosub" ng-model="vm.application.gosub" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'gosub\'].$error" ng-show="routingAppForm[\'gosub\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.GOSUB_REQUIRED">GoSub field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.RULE">Rule</label>\n <input type="text" name="rule" ng-model="vm.application.rule" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'rule\'].$error" ng-show="routingAppForm[\'rule\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.RULE_REQUIRED">Rule field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.POSITION">Position</label>\n <input type="number" name="position" ng-model="vm.application.position" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'position\'].$error" ng-show="routingAppForm[\'position\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.POSITION_REQUIRED">Position field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.POSITION_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Position must be a valid greater or\n equal than</span> <span>0</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <md-switch ng-model="vm.application.answer" aria-label="Answer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="VOICE.ANSWER">Answer</span></md-switch>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/ringGroup.html",'<md-input-container class="md-block">\n <label translate="VOICE.USER">User</label>\n <md-select name="user" ng-model="vm.application.users" autofocus multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'SIP/{{user.name}}\'" ng-repeat="user in vm.users.rows" ng-disabled="user.canSelect === false">\n {{ user.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'user\'].$error" ng-show="routingAppForm[\'user\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.USER_REQUIRED">User field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.application.timeout" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'timeout\'].$error" ng-show="routingAppForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>0</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.OPTIONS">Options</label>\n <input type="text" name="options" ng-model="vm.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'options\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.URL">Url</label>\n <input type="text" name="url" ng-model="vm.application.url" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'url\'].$error" ng-show="routingAppForm[\'url\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/set.html",'<md-input-container class="md-block">\n <label translate="VOICE.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.application.name" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables.rows" ng-disabled="variable.canSelect === false">{{\n variable.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'variable\'].$error" ng-show="routingAppForm[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.VARIABLE_REQUIRED">Variable field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.application.value" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'value\'].$error" ng-show="routingAppForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/voicemail.html",'<md-input-container class="md-block">\n <label translate="VOICE.MAILBOX@CONTEXT">Mailbox@Context</label>\n <md-select name="voiceMail" ng-model="vm.application.voiceMail" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'{{voiceMail.mailbox}}@from-voicemail\'" ng-repeat="voiceMail in vm.voiceMails.rows" ng-disabled="voiceMail.canSelect === false">{{ voiceMail.mailbox }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'voiceMail\'].$error" ng-show="routingAppForm[\'voiceMail\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MAILBOX@CONTEXT_REQUIRED">Mailbox@Context field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.OPTIONS">Options</label>\n <input type="text" name="options" ng-model="vm.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'options\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/views/chanSpies/chanSpies.html",'<div id="chanSpies" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="VOICE.CHANSPIES">ChanSpies</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedChanSpies.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedChanSpies =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="VOICE.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-chanSpies-count">\n <span>{{vm.selectedChanSpies.length}}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VOICE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllChanSpies()" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectChanSpies()" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedChanSpies" csv-label="true" filename="chanSpies.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedChanSpies($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- CHANSPY TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedChanSpies" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getChanSpies">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'VOICE.NAME\' | translate }}</th>\n <th md-column md-order-by="prefix">{{ \'VOICE.PREFIX\' | translate }}</th>\n <th md-column md-order-by="auth">{{ \'VOICE.AUTH\' | translate }}</th>\n <th md-column md-order-by="record">{{ \'VOICE.RECORD\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'VOICE.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.chanSpies.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="chanSpy" md-select-id="id" ng-repeat="chanSpy in vm.chanSpies.rows">\n <td md-cell ng-if="chanSpy.userpic"><img class="avatar" alt="{{chanSpy.name}}" ng-src="api/users/{{chanSpy.id}}/avatar" /></td>\n <td md-cell ng-if="!chanSpy.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{chanSpy.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditchanSpy($event, chanSpy)" md-cell class="id ">{{chanSpy.id}}</td>\n <td ng-click="vm.createOrEditchanSpy($event, chanSpy)" md-cell class="name ">{{chanSpy.name}}</td>\n <td ng-click="vm.createOrEditchanSpy($event, chanSpy)" md-cell class="prefix ">{{chanSpy.prefix}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chanSpy, ev) : vm.createOrEditchanSpy($event, chanSpy)" md-cell class="auth ">\n <md-icon md-colors="{color: {{chanSpy.auth ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{chanSpy.auth ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chanSpy, ev) : vm.createOrEditchanSpy($event, chanSpy)" md-cell class="record ">\n <md-icon md-colors="{color: {{chanSpy.record ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{chanSpy.record ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.createOrEditchanSpy($event, chanSpy)" md-cell class="description ">{{chanSpy.description}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(chanSpy, $event )" translate="VOICE.EDIT_CHANSPY">\n Edit chanSpy\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(chanSpy, $event )" translate="VOICE.DELETE_CHANSPY">\n Delete chanSpy\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.chanSpies.count}}" md-on-paginate="vm.getChanSpies" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / CHANSPY TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD CHANSPY BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-chanSpy-button" ng-click="vm.createOrEditchanSpy($event)" aria-label="add chanSpy" translate translate-attr-aria-label="VOICE.ADD_CHANSPY">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD CHANSPY BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/views/chanSpies/create/dialog.html",'<md-dialog class="chanSpy-dialog" aria-label="New chanSpy">\n <form name="chanSpyForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="VOICE.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.chanSpy.name" ng-required="true" autofocus>\n\n <div ng-messages="chanSpyForm[\'name\'].$error" ng-show="chanSpyForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.PREFIX">Prefix</label>\n <input type="text" name="prefix" ng-model="vm.chanSpy.prefix" ng-required="true">\n\n <div ng-messages="chanSpyForm[\'prefix\'].$error" ng-show="chanSpyForm[\'prefix\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PREFIX_REQUIRED">Prefix field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.OPTIONS">Options</label>\n <md-select name="options" ng-model="vm.chanSpy.options" multiple required>\n <md-option ng-value="\'b\'">b: Only spy on channels involved in a bridged call.</md-option>\n <md-option ng-value="\'B\'">B: Instead of whispering on a single channel barge in on both channels involved in the call.</md-option>\n <md-option ng-value="\'E\'">E: Exit when the spied-on channel hangs up.</md-option>\n <md-option ng-value="\'o\'">o: Only listen to audio coming from this channel.</md-option>\n <md-option ng-value="\'q\'">q: Don\'t play a beep when beginning to spy on a channel, or speak the selected channel name.</md-option>\n <md-option ng-value="\'s\'">s: Skip the playback of the channel type (i.e. SIP, IAX, etc) when speaking the selected channel name.</md-option>\n <md-option ng-value="\'S\'">S: Stop when no more channels are left to spy on.</md-option>\n <md-option ng-value="\'w\'">w: Enable whisper mode, so the spying channel can talk to the spied-on channel.</md-option>\n <md-option ng-value="\'W\'">W: Enable private whisper mode, so the spying channel can talk to the spied-on channel but cannot listen to that channel.</md-option>\n </md-select>\n <div ng-messages="chanSpyForm[\'options\'].$error" ng-show="chanSpyForm[\'options\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chanSpy.auth" aria-label="Auth"><span translate="VOICE.AUTH">Auth</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.chanSpy.auth">\n <label translate="VOICE.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.chanSpy.password" placeholder="Password" translate translate-attr-placeholder="VOICE.PASSWORD" required>\n <div ng-messages="chanSpyForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="VOICE.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chanSpy.record" aria-label="Record"><span translate="VOICE.RECORD">Record</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chanSpy.record" class="md-block">\n <label translate="VOICE.RECORDINGFORMAT">recordingFormat</label>\n <md-select name="recordingFormat" ng-model="vm.chanSpy.recordingFormat" required>\n <md-option ng-value="\'wav\'">wav</md-option>\n <md-option ng-value="\'gsm\'">gsm</md-option>\n <md-option ng-value="\'WAV\'">wav49</md-option>\n </md-select>\n <div ng-messages="chanSpyForm[\'recordingFormat\'].$error" ng-show="chanSpyForm[\'recordingFormat\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.RECORDINGFORMAT_REQUIRED">recordingFormat field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.chanSpy.description">\n\n <div ng-messages="chanSpyForm[\'description\'].$error" ng-show="chanSpyForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newchanSpy" ng-click="vm.savechanSpy()" class="send-button md-accent md-raised" ng-disabled="chanSpyForm.$invalid || chanSpyForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newchanSpy" ng-click="vm.addNewchanSpy()" class="send-button md-accent md-raised" ng-disabled="chanSpyForm.$invalid" aria-label="ADD" translate="VOICE.ADD_CHANSPY" translate-attr-aria-label="VOICE.ADD_CHANSPY">\n ADD CHANSPY\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newchanSpy" ng-click="vm.deletechanSpy($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/contexts/contexts.html",'<div id="contexts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="VOICE.CONTEXTS">Contexts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedContexts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedContexts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="VOICE.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-contexts-count">\n <span>{{vm.selectedContexts.length}}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VOICE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllContexts()" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectContexts()" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedContexts" csv-label="true" filename="contexts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedContexts($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- CONTEXT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedContexts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getContexts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'VOICE.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'VOICE.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.contexts.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="context" md-select-id="id" ng-repeat="context in vm.contexts.rows">\n <td md-cell ng-if="context.userpic"><img class="avatar" alt="{{context.name}}" ng-src="api/users/{{context.id}}/avatar" /></td>\n <td md-cell ng-if="!context.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{context.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditContext($event, context)" md-cell class="id ">{{context.id}}</td>\n <td ng-click="vm.createOrEditContext($event, context)" md-cell class="name ">{{context.name}}</td>\n <td ng-click="vm.createOrEditContext($event, context)" md-cell class="description ">{{context.description}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(context, $event )" translate="VOICE.EDIT_CONTEXT">\n Edit Context\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(context, $event )" translate="VOICE.DELETE_CONTEXT">\n Delete Context\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.contexts.count}}" md-on-paginate="vm.getContexts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / CONTEXT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD CONTEXT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-context-button" ng-click="vm.createOrEditContext($event)" aria-label="add context" translate translate-attr-aria-label="VOICE.ADD_CONTEXT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD CONTEXT BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/views/contexts/create/dialog.html",'<md-dialog class="context-dialog" aria-label="New Context">\n <form name="contextForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="VOICE.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.context.name" ng-required="true" autofocus>\n\n <div ng-messages="contextForm[\'name\'].$error" ng-show="contextForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.context.description">\n\n <div ng-messages="contextForm[\'description\'].$error" ng-show="contextForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newContext" ng-click="vm.saveContext()" class="send-button md-accent md-raised" ng-disabled="contextForm.$invalid || contextForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newContext" ng-click="vm.addNewContext()" class="send-button md-accent md-raised" ng-disabled="contextForm.$invalid" aria-label="ADD" translate="VOICE.ADD_CONTEXT" translate-attr-aria-label="VOICE.ADD_CONTEXT">\n ADD CONTEXT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newContext" ng-click="vm.deleteContext($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundRoutes/create/dialog.html",'<md-dialog ng-init="vm.initialize()" class="inbound-route-dialog" aria-label="New InboundRoute">\n <form name="inboundrouteForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.newInboundRoute ? \'VOICE.NEW_INBOUNDROUTE\' : \'VOICE.EDIT_INBOUNDROUTE\' | translate\n }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span>({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="VOICE.PHONENUMBER">PhoneNumber</label>\n <input type="text" name="exten" ng-model="vm.inboundRoute.exten" ng-required="true" autofocus>\n <div ng-messages="inboundrouteForm[\'exten\'].$error" ng-show="inboundrouteForm[\'exten\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PHONENUMBER_REQUIRED">PhoneNumber field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.inboundRoute.context" required>\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{ context.name }}</md-option>\n </md-select>\n <div ng-messages="inboundrouteForm[\'context\'].$error" ng-show="inboundrouteForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.inboundRoute.alias" ng-change="vm.getRouting()">\n <div ng-messages="inboundrouteForm[\'alias\'].$error" ng-show="inboundrouteForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.inboundRoute.description">\n <div ng-messages="inboundrouteForm[\'description\'].$error" ng-show="inboundrouteForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newInboundRoute" ng-click="vm.saveInboundRoute()" class="send-button md-accent md-raised" ng-disabled="inboundrouteForm.$invalid || inboundrouteForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newInboundRoute" ng-click="vm.addNewInboundRoute()" class="send-button md-accent md-raised" ng-disabled="inboundrouteForm.$invalid" aria-label="ADD" translate="VOICE.ADD_INBOUNDROUTE" translate-attr-aria-label="VOICE.ADD_INBOUNDROUTE">\n ADD INBOUNDROUTE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newInboundRoute" ng-click="vm.deleteInboundRoute($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundRoutes/edit/view.html",'<div ng-init="vm.onInit()" id="voice-inbound-route" class="page-layout simple tabbed" layout="column">\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-inbound-routes-button md-icon-button" aria-label="Go to inbound routes" ng-click="vm.gotoInboundRoutes()" translate translate-attr-aria-label="VOICE.GO_TO_INBOUNDROUTES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n <div layout="row" layout-align="start center">\n <div class="inbound-route-image" hide-xs>\n <img ng-src="assets/images/business/inboundroutes.jpg">\n </div>\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.inboundRoute.id}}\n <span ng-if="vm.inboundRoute.exten">{{vm.inboundRoute.exten}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="VOICE.CREATED_AT"></span> <span>{{vm.inboundRoute.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveInboundRoute()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (actionsForm.$invalid)" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n </div>\n </div>\n \x3c!-- /HEADER --\x3e\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n \x3c!-- SETTINGS TAB --\x3e\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="inbound-route-detail-form-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="VOICE.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="VOICE.PHONENUMBER">PhoneNumber</label>\n <input type="text" name="exten" ng-model="vm.inboundRoute.exten" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'exten\'].$error" ng-show="generalForm[\'exten\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PHONENUMBER_REQUIRED">PhoneNumber field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.inboundRoute.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{ context.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'context\'].$error" ng-show="generalForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.inboundRoute.alias" ng-change="vm.onActionsTabSelection()" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'alias\'].$error" ng-show="generalForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.inboundRoute.description" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n \x3c!-- /SETTINGS TAB --\x3e\n \x3c!-- ACTIONS TAB --\x3e\n <md-tab md-on-select="vm.onActionsTabSelection()">\n <md-tab-label>\n <span translate="VOICE.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="inbound-route-detail-form-container no-padding no-margin">\n <div class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- APPLICATIONS LIST --\x3e\n <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20" ng-if="vm.crudPermissions.canEdit">\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\n Applications List\n </span>\n </md-subheader>\n </md-list>\n <md-divider class="no-margin"></md-divider>\n <md-list ng-sortable="vm.sortableAppsOptions">\n <md-list-item class="handle" ng-repeat="a in vm.apps">\n <div layout="row">\n <md-icon md-font-icon="icon-apps" class="s16 mr-15"></md-icon>\n <p class="text-truncate" translate="VOICE.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias ||\n a.appType}}</p>\n </div>\n </md-list-item>\n </md-list>\n </div>\n \x3c!-- /APPLICATIONS LIST --\x3e\n <div flex></div>\n \x3c!-- ROUTING --\x3e\n <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="{{vm.crudPermissions.canEdit ? 75 : 100}}">\n <div ng-if="vm.pendingChanges" class="p-10 md-amber-300-bg">\n <md-icon md-font-icon="icon-information-outline" aria-label="Save reminder"></md-icon>\n <span class="no-margin font-size-12 line-height-30" translate="VOICE.HELP.SAVE_ROUTES"></span>\n </div>\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm.selectedApplications.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Drag & Drop Routing</span>\n <div flex></div>\n <ms-search-bar query="vm.query" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm.selectedApplications.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm.selectedApplications.length}}\n {{vm.selectedApplications.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm.crudPermissions.canDelete" class="md-icon-button" ng-click="vm.deleteSelectedApplications($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedApplications">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </th>\n <th md-column width="10px"></th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body ng-sortable="vm.sortableRoutingOptions">\n <tr md-row md-select="a" md-select-id="id" ng-repeat="a in vm.applications.rows | filter:vm.query.filter as results">\n <td md-cell>\n <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n </td>\n <td md-cell ng-click="vm.editApplication($event, $index)">{{a.app.toLowerCase() ===\n \'agi\' ? \'Cally-Square\' : a.app | ucfirst}}<span ng-if="a.appType.toLowerCase() === \'custom\'">*</span></td>\n <td md-cell ng-click="vm.editApplication($event, $index)"><span class="text-truncate actionAppData">{{a.appdata}}</span></td>\n <td md-cell ng-click="vm.editInterval($event, $index)">{{a.IntervalId ? \'From List\' :\n a.interval}}</td>\n <td md-cell>\n <md-button ng-click="vm.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n <md-icon md-font-icon="icon-timer"></md-icon>\n <md-tooltip>\n {{a.IntervalId ? \'From List\' : (a.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n </md-tooltip>\n </md-button>\n </td>\n <td md-cell ng-if="!vm.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editApplication($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteApplication(a, $index, $event)" translate="VOICE.DELETE_APP">\n Delete App\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-class="{ \'ng-cloak\': results.length > 0 }">\n <td md-cell colspan="6">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No applications\n available</span>\n </td>\n </tr>\n </tbody>\n <tfoot md-foot>\n <tr md-row>\n <td md-cell colspan="7">\n <span><em translate="VOICE.LEGEND.CUSTOM_APPLICATION">(*) - Custom application.</em></span>\n </td>\n </tr>\n </tfoot>\n </table>\n </md-table-container>\n </div>\n \x3c!-- /ROUTING --\x3e\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n \x3c!-- /ACTIONS TAB --\x3e\n </md-tabs>\n </div>\n \x3c!-- /CONTENT --\x3e\n</div>'),e.put("app/main/apps/voice/views/inboundRoutes/inboundRoutes.html",'<div id="inbound-routes" class="page-layout simple left-sidenav inner-sidenav">\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="VOICE.INBOUNDROUTES">InboundRoutes</span>\n </div>\n </div>\n <div layout="row">\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n </div>\n </div>\n <div ng-show="vm.selectedInboundRoutes.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n <div class="close-button-wrapper" ng-click="vm.selectedInboundRoutes = []">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="VOICE.BACK">Back</span>\n </md-button>\n </div>\n <div flex layout="row" layout-align="space-between center">\n <div>\n <span class="selected-inbound-routes-count">\n <span>{{ vm.selectedInboundRoutes.length }}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VOICE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectedInboundRoutes = vm.inboundRoutes.rows" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.selectedInboundRoutes = []" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedInboundRoutes" csv-label="true" filename="inbound_routes.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedInboundRoutes($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n <div class="content" md-background-bg layout="row" layout-align="start start">\n <div class="main scrollable" ms-scroll>\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedInboundRoutes" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getInboundRoutes">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n <th md-column md-order-by="exten">{{ \'VOICE.PHONENUMBER\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'VOICE.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.inboundRoutes.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="route" md-select-id="id" ng-repeat="route in vm.inboundRoutes.rows">\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditInboundRoute($event, route)" md-cell class="id ">{{ route.id }}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditInboundRoute($event, route)" md-cell class="exten ">{{ route.exten }}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditInboundRoute($event, route)" md-cell class="description ">{{ route.description }}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editRoute(route)" translate="VOICE.EDIT_INBOUNDROUTE">\n Edit InboundRoute\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteConfirm(route, $event)" translate="VOICE.DELETE_INBOUNDROUTE">\n Delete InboundRoute\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{ \'VOICE.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'VOICE.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'VOICE.OF\' | translate }}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{ vm.inboundRoutes.count }}" md-on-paginate="vm.getInboundRoutes" md-page-select>\n </md-table-pagination>\n </md-card>\n </div>\n </div>\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-inbound-route-button" ng-click="vm.createOrEditInboundRoute($event)" aria-label="add inbound route" translate translate-attr-aria-label="VOICE.ADD_INBOUNDROUTE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n</div>'),e.put("app/main/apps/voice/views/internalRoutes/create/dialog.html",'<md-dialog ng-init="vm.initialize()" class="internal-route-dialog" aria-label="New InternalRoute">\n <form name="internalrouteForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.newInternalRoute ? \'VOICE.NEW_INTERNALROUTE\' : \'VOICE.EDIT_INTERNALROUTE\' | translate\n }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span>({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="VOICE.PHONENUMBER">PhoneNumber</label>\n <input type="text" name="exten" ng-model="vm.internalRoute.exten" ng-required="true" autofocus>\n <div ng-messages="internalrouteForm[\'exten\'].$error" ng-show="internalrouteForm[\'exten\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PHONENUMBER_REQUIRED">PhoneNumber field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.internalRoute.context" required>\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{ context.name }}</md-option>\n </md-select>\n <div ng-messages="internalrouteForm[\'context\'].$error" ng-show="internalrouteForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.internalRoute.alias" ng-change="vm.getRouting()">\n <div ng-messages="internalrouteForm[\'alias\'].$error" ng-show="internalrouteForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.internalRoute.description">\n <div ng-messages="internalrouteForm[\'description\'].$error" ng-show="internalrouteForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newInternalRoute" ng-click="vm.saveInternalRoute()" class="send-button md-accent md-raised" ng-disabled="internalrouteForm.$invalid || internalrouteForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newInternalRoute" ng-click="vm.addNewInternalRoute()" class="send-button md-accent md-raised" ng-disabled="internalrouteForm.$invalid" aria-label="ADD" translate="VOICE.ADD_INTERNALROUTE" translate-attr-aria-label="VOICE.ADD_INTERNALROUTE">\n ADD INTERNALROUTE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newInternalRoute" ng-click="vm.deleteInternalRoute($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/internalRoutes/edit/view.html",'<div ng-init="vm.onInit()" id="voice-internal-route" class="page-layout simple tabbed" layout="column">\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-internal-routes-button md-icon-button" aria-label="Go to internal routes" ng-click="vm.gotoInternalRoutes()" translate translate-attr-aria-label="VOICE.GO_TO_INTERNALROUTES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n <div layout="row" layout-align="start center">\n <div class="internal-route-image" hide-xs>\n <img ng-src="assets/images/business/internalroutes.jpg">\n </div>\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.internalRoute.id}}\n <span ng-if="vm.internalRoute.exten">{{vm.internalRoute.exten}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="VOICE.CREATED_AT"></span> <span>{{vm.internalRoute.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveInternalRoute()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (actionsForm.$invalid)" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n </div>\n </div>\n \x3c!-- /HEADER --\x3e\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n \x3c!-- SETTINGS TAB --\x3e\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="internal-route-detail-form-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="VOICE.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="VOICE.PHONENUMBER">PhoneNumber</label>\n <input type="text" name="exten" ng-model="vm.internalRoute.exten" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'exten\'].$error" ng-show="generalForm[\'exten\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PHONENUMBER_REQUIRED">PhoneNumber field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.internalRoute.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{ context.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'context\'].$error" ng-show="generalForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.internalRoute.alias" ng-change="vm.onActionsTabSelection()" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'alias\'].$error" ng-show="generalForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.internalRoute.description" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n \x3c!-- /SETTINGS TAB --\x3e\n \x3c!-- ACTIONS TAB --\x3e\n <md-tab md-on-select="vm.onActionsTabSelection()">\n <md-tab-label>\n <span translate="VOICE.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="internal-route-detail-form-container no-padding no-margin">\n <div class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- APPLICATIONS LIST --\x3e\n <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20" ng-if="vm.crudPermissions.canEdit">\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\n Applications List\n </span>\n </md-subheader>\n </md-list>\n <md-divider class="no-margin"></md-divider>\n <md-list ng-sortable="vm.sortableAppsOptions">\n <md-list-item class="handle" ng-repeat="a in vm.apps">\n <div layout="row">\n <md-icon md-font-icon="icon-apps" class="s16 mr-15"></md-icon>\n <p class="text-truncate" translate="VOICE.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias ||\n a.appType}}</p>\n </div>\n </md-list-item>\n </md-list>\n </div>\n \x3c!-- /APPLICATIONS LIST --\x3e\n <div flex></div>\n \x3c!-- ROUTING --\x3e\n <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="{{vm.crudPermissions.canEdit ? 75 : 100}}">\n <div ng-if="vm.pendingChanges" class="p-10 md-amber-300-bg">\n <md-icon md-font-icon="icon-information-outline" aria-label="Save reminder"></md-icon>\n <span class="no-margin font-size-12 line-height-30" translate="VOICE.HELP.SAVE_ROUTES"></span>\n </div>\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm.selectedApplications.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Drag & Drop Routing</span>\n <div flex></div>\n <ms-search-bar query="vm.query" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm.selectedApplications.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm.selectedApplications.length}}\n {{vm.selectedApplications.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm.crudPermissions.canDelete" class="md-icon-button" ng-click="vm.deleteSelectedApplications($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedApplications">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </th>\n <th md-column width="10px"></th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body ng-sortable="vm.sortableRoutingOptions">\n <tr md-row md-select="a" md-select-id="id" ng-repeat="a in vm.applications.rows | filter:vm.query.filter as results">\n <td md-cell>\n <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n </td>\n <td md-cell ng-click="vm.editApplication($event, $index)">{{a.app.toLowerCase() ===\n \'agi\' ? \'Cally-Square\' : a.app | ucfirst}}<span ng-if="a.appType.toLowerCase() === \'custom\'">*</span></td>\n <td md-cell ng-click="vm.editApplication($event, $index)"><span class="text-truncate actionAppData">{{a.appdata}}</span></td>\n <td md-cell ng-click="vm.editInterval($event, $index)">{{a.IntervalId ? \'From List\' :\n a.interval}}</td>\n <td md-cell>\n <md-button ng-click="vm.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n <md-icon md-font-icon="icon-timer"></md-icon>\n <md-tooltip>\n {{a.IntervalId ? \'From List\' : (a.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n </md-tooltip>\n </md-button>\n </td>\n <td md-cell ng-if="!vm.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editApplication($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteApplication(a, $index, $event)" translate="VOICE.DELETE_APP">\n Delete App\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-class="{ \'ng-cloak\': results.length > 0 }">\n <td md-cell colspan="6">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No applications\n available</span>\n </td>\n </tr>\n </tbody>\n <tfoot md-foot>\n <tr md-row>\n <td md-cell colspan="7">\n <span><em translate="VOICE.LEGEND.CUSTOM_APPLICATION">(*) - Custom application.</em></span>\n </td>\n </tr>\n </tfoot>\n </table>\n </md-table-container>\n </div>\n \x3c!-- /ROUTING --\x3e\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n \x3c!-- /ACTIONS TAB --\x3e\n </md-tabs>\n </div>\n \x3c!-- /CONTENT --\x3e\n</div>'),e.put("app/main/apps/voice/views/internalRoutes/internalRoutes.html",'<div id="internal-routes" class="page-layout simple left-sidenav inner-sidenav">\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="VOICE.INTERNALROUTES">InternalRoutes</span>\n </div>\n </div>\n <div layout="row">\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n </div>\n </div>\n <div ng-show="vm.selectedInternalRoutes.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n <div class="close-button-wrapper" ng-click="vm.selectedInternalRoutes = []">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="VOICE.BACK">Back</span>\n </md-button>\n </div>\n <div flex layout="row" layout-align="space-between center">\n <div>\n <span class="selected-internal-routes-count">\n <span>{{ vm.selectedInternalRoutes.length }}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VOICE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectedInternalRoutes = vm.internalRoutes.rows" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.selectedInternalRoutes = []" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedInternalRoutes" csv-label="true" filename="internal_routes.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedInternalRoutes($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n <div class="content" md-background-bg layout="row" layout-align="start start">\n <div class="main scrollable" ms-scroll>\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedInternalRoutes" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getInternalRoutes">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n <th md-column md-order-by="exten">{{ \'VOICE.PHONENUMBER\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'VOICE.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.internalRoutes.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="route" md-select-id="id" ng-repeat="route in vm.internalRoutes.rows">\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditInternalRoute($event, route)" md-cell class="id ">{{ route.id }}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditInternalRoute($event, route)" md-cell class="exten ">{{ route.exten }}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditInternalRoute($event, route)" md-cell class="description ">{{ route.description }}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editRoute(route)" translate="VOICE.EDIT_INTERNALROUTE">\n Edit InternalRoute\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteConfirm(route, $event)" translate="VOICE.DELETE_INTERNALROUTE">\n Delete InternalRoute\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{ \'VOICE.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'VOICE.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'VOICE.OF\' | translate }}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{ vm.internalRoutes.count }}" md-on-paginate="vm.getInternalRoutes" md-page-select>\n </md-table-pagination>\n </md-card>\n </div>\n </div>\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-internal-route-button" ng-click="vm.createOrEditInternalRoute($event)" aria-label="add internal route" translate translate-attr-aria-label="VOICE.ADD_INTERNALROUTE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n</div>'),e.put("app/main/apps/voice/views/musiconholds/create/dialog.html",'<md-dialog class="musiconhold-dialog" aria-label="New MusicOnHold">\n <form name="musiconholdForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="VOICE.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.musiconhold.name" ng-required="true" autofocus ng-disabled="!vm.newMusicOnHold">\n\n <div ng-messages="musiconholdForm[\'name\'].$error" ng-show="musiconholdForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MODE">Mode</label>\n <md-select name="mode" ng-model="vm.musiconhold.mode" required ng-disabled="!vm.newMusicOnHold">\n\n <md-option ng-value="\'files\'"> {{ \'VOICE.FILES\' | translate }} </md-option>\n\n <md-option ng-value="\'custom\'"> {{ \'VOICE.CUSTOM\' | translate }} </md-option>\n </md-select>\n <div ng-messages="musiconholdForm[\'mode\'].$error" ng-show="musiconholdForm[\'mode\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MODE_REQUIRED">Mode field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.musiconhold.mode == \'custom\'" class="md-block">\n <label translate="VOICE.DIRECTORY">Directory</label>\n <input type="" name="directory" ng-model="vm.musiconhold.directory">\n\n <div ng-messages="musiconholdForm[\'directory\'].$error" ng-show="musiconholdForm[\'directory\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DIRECTORY_REQUIRED">Directory field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.musiconhold.mode == \'custom\'" class="md-block">\n <label translate="VOICE.APPLICATION">Application</label>\n <input type="text" name="application" ng-model="vm.musiconhold.application" ng-required="true">\n\n <div ng-messages="musiconholdForm[\'application\'].$error" ng-show="musiconholdForm[\'application\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.APPLICATION_REQUIRED">Application field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.musiconhold.mode == \'files\'" class="md-block">\n <label translate="VOICE.SORT">Sort</label>\n <md-select name="sort" ng-model="vm.musiconhold.sort">\n\n <md-option ng-value="\'random\'"> {{ \'VOICE.RANDOM\' | translate }} </md-option>\n\n <md-option ng-value="\'alpha\'"> {{ \'VOICE.ALPHABETICAL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="musiconholdForm[\'sort\'].$error" ng-show="musiconholdForm[\'sort\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.SORT_REQUIRED">Sort field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newMusicOnHold" ng-click="vm.saveMusicOnHold()" class="send-button md-accent md-raised" ng-disabled="musiconholdForm.$invalid || musiconholdForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newMusicOnHold" ng-click="vm.addNewMusicOnHold()" class="send-button md-accent md-raised" ng-disabled="musiconholdForm.$invalid" aria-label="ADD" translate="VOICE.ADD_MUSICONHOLD" translate-attr-aria-label="VOICE.ADD_MUSICONHOLD">\n ADD MUSICONHOLD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newMusicOnHold" ng-click="vm.deleteMusicOnHold($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/musiconholds/edit/mohSounds/dialog.html",'<md-dialog class="mohSound-dialog" aria-label="New MohSound">\n <form name="mohSoundForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="VOICE.FILE">File</label>\n <md-select name="id" ng-model="vm.mohSound.id" autofocus>\n <md-option ng-value="id.id" ng-repeat="id in vm.sounds" ng-disabled="id.canSelect === false">{{ id.name }}</md-option>\n </md-select>\n <div ng-messages="mohSoundForm[\'id\'].$error" ng-show="mohSoundForm[\'id\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.FILE_REQUIRED">File field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newMohSound" ng-click="vm.saveMohSound()" class="send-button md-accent md-raised" ng-disabled="mohSoundForm.$invalid || mohSoundForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newMohSound" ng-click="vm.addNewMohSound()" class="send-button md-accent md-raised" ng-disabled="mohSoundForm.$invalid" aria-label="ADD" translate="VOICE.ADD_MOHSOUND" translate-attr-aria-label="VOICE.ADD_MOHSOUND">\n ADD MOHSOUND\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newMohSound" ng-click="vm.deleteMohSound($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/musiconholds/edit/view.html",'<div id="voice-musiconhold" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-musiconholds-button md-icon-button" aria-label="Go to musiconholds" ng-click="vm.gotoMusicOnHolds()" translate translate-attr-aria-label="VOICE.GO_TO_MUSICONHOLDS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="musiconhold-image" hide-xs>\n <img ng-src="assets/images/business/musiconholds.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.musiconhold.id}}\n <span ng-if="vm.musiconhold.name">{{vm.musiconhold.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="VOICE.CREATED_AT"></span> <span>{{vm.musiconhold.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveMusicOnHold()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (mohSoundsForm.$invalid)" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="musiconhold-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="VOICE.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="VOICE.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.musiconhold.name" ng-required="true" autofocus disabled>\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MODE">Mode</label>\n <md-select name="mode" ng-model="vm.musiconhold.mode" required disabled>\n\n <md-option ng-value="\'files\'"> {{ \'VOICE.FILES\' | translate }} </md-option>\n\n <md-option ng-value="\'custom\'"> {{ \'VOICE.CUSTOM\' | translate }} </md-option>\n </md-select>\n <div ng-messages="generalForm[\'mode\'].$error" ng-show="generalForm[\'mode\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MODE_REQUIRED">Mode field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.musiconhold.mode == \'custom\'" class="md-block">\n <label translate="VOICE.DIRECTORY">Directory</label>\n <input type="" name="directory" ng-model="vm.musiconhold.directory" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'directory\'].$error" ng-show="generalForm[\'directory\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DIRECTORY_REQUIRED">Directory field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.musiconhold.mode == \'custom\'" class="md-block">\n <label translate="VOICE.APPLICATION">Application</label>\n <input type="text" name="application" ng-model="vm.musiconhold.application" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'application\'].$error" ng-show="generalForm[\'application\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.APPLICATION_REQUIRED">Application field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.musiconhold.mode == \'files\'" class="md-block">\n <label translate="VOICE.SORT">Sort</label>\n <md-select name="sort" ng-model="vm.musiconhold.sort" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'random\'"> {{ \'VOICE.RANDOM\' | translate }} </md-option>\n\n <md-option ng-value="\'alpha\'"> {{ \'VOICE.ALPHABETICAL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="generalForm[\'sort\'].$error" ng-show="generalForm[\'sort\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.SORT_REQUIRED">Sort field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.AUDIOFILES">AUDIOFILES</span>\n </md-tab-label>\n <md-tab-body>\n <div class="musiconhold-detail-form-container mohsounds md-background-bg md-whiteframe-1dp">\n <div ng-controller="MusicOnHoldMohSoundsController as vm_dc" ng-init="vm_dc.init(vm.musiconhold, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedMusicOnHoldMohSounds.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.MOHSOUNDS">MohSounds</span>\n <ms-search-bar on-search="vm_dc.getMusicOnHoldMohSounds()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditMusicOnHoldMohSound($event)" aria-label="add mohSound" translate translate-attr-label="VOICE.ADD_MOHSOUND">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedMusicOnHoldMohSounds.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedMusicOnHoldMohSounds.length}} {{vm_dc.selectedMusicOnHoldMohSounds.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedMusicOnHoldMohSounds" csv-label="true" filename="musiconholds.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedMusicOnHoldMohSounds($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedMusicOnHoldMohSounds" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getMusicOnHoldMohSounds">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'VOICE.ID\' | translate }}\n </th>\n <th md-column md-order-by="audio">\n {{ \'VOICE.AUDIO\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'VOICE.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="mohSound" md-select-id="id" ng-repeat="mohSound in vm_dc.musiconholdMohSounds.rows">\n <td md-cell>\n {{mohSound.id}}\n </td>\n <td md-cell>\n \x3c!-- audio recording directive --\x3e\n <ms-recording id="mohSound.id" model="\'sound\'"></ms-recording>\n \x3c!-- / audio recording directive --\x3e\n </td>\n <td md-cell>\n {{ mohSound.createdAt | formatdate }}\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(mohSound, $event)" translate="VOICE.DELETE_MOHSOUND">\n Delete MohSound\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.musiconholdMohSounds.rows.length">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="VOICE.NO_MOHSOUND_AVAILABLE">No mohsound available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.musiconholdMohSounds.count}}" md-on-paginate="vm_dc.getMusicOnHoldMohSounds" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/voice/views/musiconholds/musiconholds.html",'<div id="musiconholds" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="VOICE.MUSICONHOLDS">MusicOnHolds</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedMusicOnHolds.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedMusicOnHolds =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="VOICE.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-musiconholds-count">\n <span>{{vm.selectedMusicOnHolds.length}}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VOICE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllMusicOnHolds()" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectMusicOnHolds()" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedMusicOnHolds" csv-label="true" filename="musiconholds.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedMusicOnHolds($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- MUSICONHOLD TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedMusicOnHolds" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getMusicOnHolds">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'VOICE.NAME\' | translate }}</th>\n <th md-column md-order-by="mode">{{ \'VOICE.MODE\' | translate }}</th>\n <th md-column md-order-by="sort">{{ \'VOICE.SORT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.musiconholds.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="musiconhold" md-select-id="id" ng-repeat="musiconhold in vm.musiconholds.rows">\n <td md-cell ng-if="musiconhold.userpic"><img class="avatar" alt="{{musiconhold.name}}" ng-src="api/users/{{musiconhold.id}}/avatar" /></td>\n <td md-cell ng-if="!musiconhold.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{musiconhold.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(musiconhold, ev) : vm.createOrEditMusicOnHold($event, musiconhold)" md-cell class="id ">{{musiconhold.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(musiconhold, ev) : vm.createOrEditMusicOnHold($event, musiconhold)" md-cell class="name ">{{musiconhold.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(musiconhold, ev) : vm.createOrEditMusicOnHold($event, musiconhold)" md-cell class="mode ">{{ \'VOICE.\' + vm.arraymode[musiconhold.mode].option | uppercase | translate }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(musiconhold, ev) : vm.createOrEditMusicOnHold($event, musiconhold)" md-cell class="sort ">{{ \'VOICE.\' + vm.arraysort[musiconhold.sort].option | uppercase | translate }}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(musiconhold, $event )" translate="VOICE.EDIT_MUSICONHOLD">\n Edit MusicOnHold\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(musiconhold, $event )" translate="VOICE.DELETE_MUSICONHOLD">\n Delete MusicOnHold\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.musiconholds.count}}" md-on-paginate="vm.getMusicOnHolds" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / MUSICONHOLD TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD MUSICONHOLD BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-musiconhold-button" ng-click="vm.createOrEditMusicOnHold($event)" aria-label="add musiconhold" translate translate-attr-aria-label="VOICE.ADD_MUSICONHOLD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD MUSICONHOLD BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/views/outboundRoutes/create/dialog.html",'<md-dialog ng-init="vm.initialize()" class="outbound-route-dialog" aria-label="New OutboundRoute">\n <form name="outboundrouteForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.newOutboundRoute ? \'VOICE.NEW_OUTBOUNDROUTE\' : \'VOICE.EDIT_OUTBOUNDROUTE\' | translate\n }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span>({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="VOICE.PHONENUMBER">PhoneNumber</label>\n <input type="text" name="exten" ng-model="vm.outboundRoute.exten" ng-required="true" autofocus>\n <div ng-messages="outboundrouteForm[\'exten\'].$error" ng-show="outboundrouteForm[\'exten\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PHONENUMBER_REQUIRED">PhoneNumber field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.outboundRoute.context" required>\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{ context.name }}</md-option>\n </md-select>\n <div ng-messages="outboundrouteForm[\'context\'].$error" ng-show="outboundrouteForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.RECORDING">Recording</label>\n <md-select name="recordingFormat" ng-model="vm.outboundRoute.recordingFormat" ng-change="vm.getRouting()" required>\n <md-option ng-value="\'none\'">none</md-option>\n <md-option ng-value="\'wav\'">wav</md-option>\n <md-option ng-value="\'WAV\'">wav49</md-option>\n <md-option ng-value="\'gsm\'">gsm</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.RECORDING"></span></div>\n <div ng-messages="outboundrouteForm[\'recordingFormat\'].$error" ng-show="outboundrouteForm[\'recordingFormat\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.RECORDING_REQUIRED">Recording field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CUTDIGITS">CutDigits</label>\n <input type="number" name="cutdigits" ng-model="vm.outboundRoute.cutdigits" min="0">\n <div ng-messages="outboundrouteForm[\'cutdigits\'].$error" ng-show="outboundrouteForm[\'cutdigits\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CUTDIGITS_REQUIRED">CutDigits field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.CUTDIGITS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CutDigits must be a valid greater\n or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.outboundRoute.alias" ng-change="vm.getRouting()">\n <div ng-messages="outboundrouteForm[\'alias\'].$error" ng-show="outboundrouteForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.outboundRoute.description">\n <div ng-messages="outboundrouteForm[\'description\'].$error" ng-show="outboundrouteForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newOutboundRoute" ng-click="vm.saveOutboundRoute()" class="send-button md-accent md-raised" ng-disabled="outboundrouteForm.$invalid || outboundrouteForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newOutboundRoute" ng-click="vm.addNewOutboundRoute()" class="send-button md-accent md-raised" ng-disabled="outboundrouteForm.$invalid" aria-label="ADD" translate="VOICE.ADD_OUTBOUNDROUTE" translate-attr-aria-label="VOICE.ADD_OUTBOUNDROUTE">\n ADD OUTBOUNDROUTE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newOutboundRoute" ng-click="vm.deleteOutboundRoute($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/outboundRoutes/edit/view.html",'<div ng-init="vm.onInit()" id="voice-outbound-route" class="page-layout simple tabbed" layout="column">\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-outbound-routes-button md-icon-button" aria-label="Go to outbound routes" ng-click="vm.gotoOutboundRoutes()" translate translate-attr-aria-label="VOICE.GO_TO_OUTBOUNDROUTES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n <div layout="row" layout-align="start center">\n <div class="outbound-route-image" hide-xs>\n <img ng-src="assets/images/business/outboundroutes.jpg">\n </div>\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.outboundRoute.id}}\n <span ng-if="vm.outboundRoute.exten">{{vm.outboundRoute.exten}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="VOICE.CREATED_AT"></span> <span>{{vm.outboundRoute.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveOutboundRoute()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (actionsForm.$invalid)" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n </div>\n </div>\n \x3c!-- /HEADER --\x3e\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n \x3c!-- SETTINGS TAB --\x3e\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="outbound-route-detail-form-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="VOICE.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="VOICE.PHONENUMBER">PhoneNumber</label>\n <input type="text" name="exten" ng-model="vm.outboundRoute.exten" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'exten\'].$error" ng-show="generalForm[\'exten\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PHONENUMBER_REQUIRED">PhoneNumber field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.outboundRoute.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{ context.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'context\'].$error" ng-show="generalForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.RECORDING">Recording</label>\n <md-select name="recordingFormat" ng-model="vm.outboundRoute.recordingFormat" ng-change="vm.onActionsTabSelection()" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'none\'">none</md-option>\n <md-option ng-value="\'wav\'">wav</md-option>\n <md-option ng-value="\'WAV\'">wav49</md-option>\n <md-option ng-value="\'gsm\'">gsm</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.RECORDING"></span></div>\n <div ng-messages="generalForm[\'recordingFormat\'].$error" ng-show="generalForm[\'recordingFormat\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.RECORDING_REQUIRED">Recording field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CUTDIGITS">CutDigits</label>\n <input type="number" name="cutdigits" ng-model="vm.outboundRoute.cutdigits" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'cutdigits\'].$error" ng-show="generalForm[\'cutdigits\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CUTDIGITS_REQUIRED">CutDigits field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.CUTDIGITS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CutDigits must be a valid\n greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.outboundRoute.alias" ng-change="vm.onActionsTabSelection()" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'alias\'].$error" ng-show="generalForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.outboundRoute.description" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n \x3c!-- /SETTINGS TAB --\x3e\n \x3c!-- ACTIONS TAB --\x3e\n <md-tab md-on-select="vm.onActionsTabSelection()">\n <md-tab-label>\n <span translate="VOICE.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="outbound-route-detail-form-container no-padding no-margin">\n <div class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- APPLICATIONS LIST --\x3e\n <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20" ng-if="vm.crudPermissions.canEdit">\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\n Applications List\n </span>\n </md-subheader>\n </md-list>\n <md-divider class="no-margin"></md-divider>\n <md-list ng-sortable="vm.sortableAppsOptions">\n <md-list-item class="handle" ng-repeat="a in vm.apps">\n <div layout="row">\n <md-icon md-font-icon="icon-apps" class="s16 mr-15"></md-icon>\n <p class="text-truncate" translate="VOICE.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias ||\n a.appType}}</p>\n </div>\n </md-list-item>\n </md-list>\n </div>\n \x3c!-- /APPLICATIONS LIST --\x3e\n <div flex></div>\n \x3c!-- ROUTING --\x3e\n <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="{{vm.crudPermissions.canEdit ? 75 : 100}}">\n <div ng-if="vm.pendingChanges" class="p-10 md-amber-300-bg">\n <md-icon md-font-icon="icon-information-outline" aria-label="Save reminder"></md-icon>\n <span class="no-margin font-size-12 line-height-30" translate="VOICE.HELP.SAVE_ROUTES"></span>\n </div>\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm.selectedApplications.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Drag & Drop Routing</span>\n <div flex></div>\n <ms-search-bar query="vm.query" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm.selectedApplications.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm.selectedApplications.length}}\n {{vm.selectedApplications.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm.crudPermissions.canDelete" class="md-icon-button" ng-click="vm.deleteSelectedApplications($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedApplications">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </th>\n <th md-column width="10px"></th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body ng-sortable="vm.sortableRoutingOptions">\n <tr md-row md-select="a" md-select-id="id" ng-repeat="a in vm.applications.rows | filter:vm.query.filter as results">\n <td md-cell>\n <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n </td>\n <td md-cell ng-click="vm.editApplication($event, $index)">{{a.app.toLowerCase() ===\n \'agi\' ? \'Cally-Square\' : a.app | ucfirst}}<span ng-if="a.appType.toLowerCase() === \'custom\'">*</span></td>\n <td md-cell ng-click="vm.editApplication($event, $index)"><span class="text-truncate actionAppData">{{a.appdata}}</span></td>\n <td md-cell ng-click="vm.editInterval($event, $index)">{{a.IntervalId ? \'From List\' :\n a.interval}}</td>\n <td md-cell>\n <md-button ng-click="vm.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n <md-icon md-font-icon="icon-timer"></md-icon>\n <md-tooltip>\n {{a.IntervalId ? \'From List\' : (a.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n </md-tooltip>\n </md-button>\n </td>\n <td md-cell ng-if="!vm.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editApplication($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteApplication(a, $index, $event)" translate="VOICE.DELETE_APP">\n Delete App\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-class="{ \'ng-cloak\': results.length > 0 }">\n <td md-cell colspan="6">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No applications\n available</span>\n </td>\n </tr>\n </tbody>\n <tfoot md-foot>\n <tr md-row>\n <td md-cell colspan="7">\n <span><em translate="VOICE.LEGEND.CUSTOM_APPLICATION">(*) - Custom application.</em></span>\n </td>\n </tr>\n </tfoot>\n </table>\n </md-table-container>\n </div>\n \x3c!-- /ROUTING --\x3e\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n \x3c!-- /ACTIONS TAB --\x3e\n </md-tabs>\n </div>\n \x3c!-- /CONTENT --\x3e\n</div>'),e.put("app/main/apps/voice/views/outboundRoutes/outboundRoutes.html",'<div id="outbound-routes" class="page-layout simple left-sidenav inner-sidenav">\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="VOICE.OUTBOUNDROUTES">OutboundRoutes</span>\n </div>\n </div>\n <div layout="row">\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n </div>\n </div>\n <div ng-show="vm.selectedOutboundRoutes.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n <div class="close-button-wrapper" ng-click="vm.selectedOutboundRoutes = []">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="VOICE.BACK">Back</span>\n </md-button>\n </div>\n <div flex layout="row" layout-align="space-between center">\n <div>\n <span class="selected-outbound-routes-count">\n <span>{{ vm.selectedOutboundRoutes.length }}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VOICE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectedOutboundRoutes = vm.outboundRoutes.rows" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.selectedOutboundRoutes = []" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedOutboundRoutes" csv-label="true" filename="outbound_routes.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedOutboundRoutes($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n <div class="content" md-background-bg layout="row" layout-align="start start">\n <div class="main scrollable" ms-scroll>\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedOutboundRoutes" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getOutboundRoutes">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n <th md-column md-order-by="exten">{{ \'VOICE.PHONENUMBER\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'VOICE.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.outboundRoutes.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="route" md-select-id="id" ng-repeat="route in vm.outboundRoutes.rows">\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditOutboundRoute($event, route)" md-cell class="id ">{{ route.id }}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditOutboundRoute($event, route)" md-cell class="exten ">{{ route.exten }}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditOutboundRoute($event, route)" md-cell class="description ">{{ route.description }}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editRoute(route)" translate="VOICE.EDIT_OUTBOUNDROUTE">\n Edit OutboundRoute\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteConfirm(route, $event)" translate="VOICE.DELETE_OUTBOUNDROUTE">\n Delete OutboundRoute\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{ \'VOICE.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'VOICE.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'VOICE.OF\' | translate }}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{ vm.outboundRoutes.count }}" md-on-paginate="vm.getOutboundRoutes" md-page-select>\n </md-table-pagination>\n </md-card>\n </div>\n </div>\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-outbound-route-button" ng-click="vm.createOrEditOutboundRoute($event)" aria-label="add outbound route" translate translate-attr-aria-label="VOICE.ADD_OUTBOUNDROUTE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n</div>'),e.put("app/main/apps/voice/views/realtime/abandonedcalls/view.html",'<md-toolbar class="md-table-toolbar md-default table-header">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.ABANDONEDQUEUECALLS">ABANDONED QUEUE CALLS</span>\n <ms-search-bar on-search="vm.getAbandonedCalls()" query="vm.query" on-collapse="vm.query.filter = undefined" debounce="300">\n </ms-search-bar>\n <div flex></div>\n\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getAbandonedCalls()"></ms-quick-filter>\n\n <md-button class="md-icon-button" ng-click="vm.refresh && vm.refreshAbandonedCalls($event)" aria-label="Reload" translate translate-attr-label="DASHBOARDS.RELOAD">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip ng-if="vm.showTooltip" md-visible="vm.showTooltip">{{\'DASHBOARDS.CLICKRELOAD\' | translate}}\n </md-tooltip>\n </md-button>\n </div>\n</md-toolbar>\n<md-table-container>\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getAbandonedCalls">\n <tr md-row>\n <th md-column md-order-by="id">ID</th>\n <th md-column md-order-by="calleridname">{{\'DASHBOARDS.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="calleridnum">{{\'DASHBOARDS.PHONE\' | translate}}</th>\n <th md-column md-order-by="queue">{{\'DASHBOARDS.QUEUE\' | translate}}</th>\n <th md-column md-order-by="queuecallerabandonAt">{{\'DASHBOARDS.ABANDONAT\' | translate}}</th>\n <th md-column md-order-by="lastAssignedTo">{{\'DASHBOARDS.LASTASSIGNEDTO\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.abandonedCalls.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="call in vm.abandonedCalls.rows">\n <td md-cell class="id">{{call.id}}</td>\n <td md-cell class="firstName" privacy ng-cloak>{{call.calleridname}}</td>\n <td md-cell class="list" privacy ng-cloak>{{call.calleridnum}}</td>\n <td md-cell class="list">{{vm.queuesMap[call.queue]}}</td>\n <td md-cell class="list">\n {{call.queuecallerabandonAt ? (call.queuecallerabandonAt | formatdate) : (call.queuecallerexitAt | formatdate) }}\n </td>\n <td md-cell class="list">{{call.lastAssignedTo}}</td>\n <td md-cell class="list">{{ call.disposition }}</td>\n <td md-cell class="list">{{ call.secondDisposition }}</td>\n <td md-cell class="list">{{ call.thirdDisposition }}</td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button ng-click="$mdMenu.open()" class="text-capitalize" translate="DASHBOARDS.ASSIGNTO">\n Assigned\n to</md-button>\n <md-menu-content>\n <md-menu-item ng-if="call.lastAssignedTo">\n <md-button ng-click="vm.assignTo(call)"><em translate="DASHBOARDS.NONE">Not Assigned</em>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.agents.rows.length" ng-repeat="agent in vm.agents.rows">\n <md-button ng-click="vm.assignTo(call,agent)">{{agent.name}}</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.dispose(call)" class="text-capitalize" translate="DASHBOARDS.DISPOSE">\n Dispose\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.abandonedCalls.count}}" md-on-paginate="vm.getAbandonedCalls" md-page-select></md-table-pagination>'),e.put("app/main/apps/voice/views/realtime/outbound_calls/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.OUTBOUND_CALLS">Ooutbound Calls</span>\n </div>\n</md-toolbar>\n\n\x3c!-- OUTBOUNDS TABLE --\x3e\n<md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column width="30px"></th>\n <th md-column>{{ \'VOICE.SOURCE\' | translate }}</th>\n <th md-column>{{ \'VOICE.DESTINATION\' | translate }}</th>\n <th md-column>{{ \'VOICE.ALIAS\' | translate }}</th>\n <th md-column>{{ \'VOICE.DURATION\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.calls.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="call in vm.calls.rows | filter: vm.query.filter | limitTo: vm.query.limit: (vm.query.page - 1) * vm.query.limit">\n <td md-cell>\n <i ng-class="vm.channelStatus[call.channelstatedesc.toLowerCase()]"></i>\n </td>\n <td md-cell privacy ng-cloak>\n {{call.calleridname}}, {{call.calleridnum}}\n <span class="text-boxed" ng-if="call.answered">\n <timer ng-if="call.answertime" start-time="call.answertime"></timer>\n </span>\n </td>\n <td md-cell privacy ng-cloak>{{call.exten}}</td>\n <td md-cell>{{call.routealias}}</td>\n <td md-cell>\n <span class="text-boxed" ng-if="call.channelstatedesc.toLowerCase() !== \'hangup\'">\n <timer ng-if="call.starttime" start-time="call.starttime"></timer>\n </span>\n <span class="text-boxed" ng-if="call.channelstatedesc.toLowerCase() === \'hangup\'" translate="VOICE.CLOSING">Closing</span>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.calls.count}}"></md-table-pagination>\n\x3c!-- / OUTBOUNDS TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/voice/views/realtime/queue_calls/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.QUEUE_CALLS">Queue Calls</span>\n </div>\n</md-toolbar>\n\x3c!-- QUEUES TABLE --\x3e\n<md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column width="30px"></th>\n <th md-column>{{ \'VOICE.DID\' | translate }}</th>\n <th md-column>{{ \'VOICE.ALIAS\' | translate }}</th>\n <th md-column>{{ \'VOICE.QUEUE\' | translate }}</th>\n <th md-column>{{ \'VOICE.CALLER\' | translate }}</th>\n <th md-column>{{ \'VOICE.AGENT\' | translate }}</th>\n <th md-column>{{ \'VOICE.DURATION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.getSize(vm.rpcVoiceQueuesChannels)">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, channel) in vm.rpcVoiceQueuesChannels | limitObjectFromTo: vm.queryChannels.limit:(vm.queryChannels.page - 1) * vm.queryChannels.limit">\n <td md-cell>\n <md-icon ng-if="channel.queuecallerleaveAt" md-font-icon="icon-phone-in-talk green-fg"></md-icon>\n <md-icon ng-if="!channel.queuecallerleaveAt" md-font-icon="icon-phone-incoming md-accent"></md-icon>\n </td>\n <td md-cell>{{channel.exten}}</td>\n <td md-cell>{{channel.routealias}}</td>\n <td md-cell>{{channel.queue}}</td>\n <td md-cell privacy ng-cloak>{{channel.calleridnum}}</td>\n <td md-cell>\n <span ng-if="channel.queuecallerleaveAt">\n {{channel.connectedlinename}}, {{channel.connectedlinenum}}\n <span class="text-boxed">\n <timer start-time="channel.queuecallerleaveAt"></timer>\n </span>\n </span>\n <span ng-if="!channel.queuecallerleaveAt" class="text-boxed">\n {{ \'VOICE.WAITING_FOR_AGENT\' | translate }}\n <timer start-time="channel.queuecallerjoinAt"></timer>\n </span>\n </td>\n <td md-cell>\n <span class="text-boxed">\n <timer start-time="channel.queuecallerjoinAt"></timer>\n </span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.hangup(channel.uniqueid)" translate="VOICE.HANGUP">\n Hangup\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.redirectToNumber($event, channel.uniqueid)" translate="VOICE.REDIRECT_TO_NUMBER">\n Number\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-menu class="no-margin">\n <md-button ng-mouseenter="vm.getAvailableAgents()" translate="VOICE.REDIRECT_TO_AGENT">\n Redirect to Agent</md-button>\n <md-menu-content>\n <md-menu-item ng-if="!vm.availableAgents">\n <md-progress-circular class="md-accent auto-margin" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="vm.availableAgents.length > 0" ng-repeat="agent in vm.availableAgents">\n <md-button ng-click="vm.redirectToAgent(channel.uniqueid, agent.name, agent.context)">\n {{agent.name}}</md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.availableAgents.length === 0">\n <span>No agents available</span>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n<md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.queryChannels.limit" md-page="vm.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm.getSize(vm.rpcVoiceQueuesChannels)}}" md-page-select></md-table-pagination>\n\x3c!-- / QUEUES TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/voice/views/realtime/queue_params/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.QUEUE_PARAMETERS">Params</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n\n\x3c!-- QUEUE TABLE --\x3e\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n <tr md-row>\n <th md-column>{{\'\n VOICE.NAME\' | translate}}</th>\n <th md-column>{{\'\n VOICE.TOTAL_OFFERED\' | translate}}</th>\n <th md-column>{{\'\n VOICE.ANSWERED\' | translate}}</th>\n <th md-column>{{\'\n VOICE.ABANDONED\' | translate}}</th>\n <th md-column>{{\'\n VOICE.UNMANAGED\' | translate}}</th>\n <th md-column>{{\'\n VOICE.AVG_HOLD_TIME\' | translate}}</th>\n <th md-column>{{\'\n VOICE.AVG_DURATION\' | translate}}</th>\n <th md-column>{{\'\n VOICE.AVG_BILLABLE\' | translate}}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.queues">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span translate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(id, queue) in vm.queues">\n <td md-cell>\n <span>{{queue.name}}</span>\n </td>\n <td md-cell>\n \x3c!-- <span class="font-size-20 grey-fg">{{queue.total || 0}}</span> --\x3e\n <span class="font-size-20 grey-fg">{{ (queue.answered || 0) + (queue.abandoned || 0) + (queue.unmanaged || 0) }}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{queue.answered || 0}} ({{(queue.total) ? (queue.answered || 0) * 100/queue.total : 0 | number:1}}%)</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{queue.abandoned || 0}} ({{(queue.total) ? (queue.abandoned || 0) * 100/queue.total : 0 | number:1}}%)</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{queue.unmanaged || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{queue.total ? ((queue.sumHoldTime || 0) / queue.total) : 0 | number: 0 | secToTime | date:\'HH:mm:ss\'}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{(queue.total ? ((queue.sumDuration || 0) / queue.total) : 0) | number: 0 | secToTime | date:\'HH:mm:ss\'}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{queue.answered ? ((queue.sumBillable || 0) / queue.answered) : 0 | number: 0 | secToTime | date:\'HH:mm:ss\'}}</span>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>\n\x3c!-- / QUEUE TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/voice/views/realtime/queues/view.html",'<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.QUEUES">Queues</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'VOICE.NAME\' | translate }}</th>\n <th md-column>{{ \'VOICE.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'VOICE.PAUSED\' | translate }}</th>\n <th md-column>{{ \'VOICE.TALKING\' | translate }}</th>\n <th md-column>{{ \'VOICE.BUSY\' | translate }}</th>\n <th md-column>{{ \'VOICE.WAITING\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.queues.count > 0">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="queue" md-select-id="id" ng-repeat="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedInDb }} ({{ queue.loggedIn }})</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.talking }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.busy }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="VOICE.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" translate="VOICE.AGENTSADD_QUEUE">\n Add Agents to queue\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),e.put("app/main/apps/voice/views/realtime/realtime.html",'<div id="realtime" class="page-layout simple tabbed" layout="column" ng-cloak>\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.TELEPHONES">Telephones</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.TRUNKS">Trunks</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.QUEUES">Queues</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.QUEUE_CALLS">Queue Calls</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.ABANDONEDCALLS">Abandoned Queue Calls</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.QUEUE_PARAMS">Queue Parameters</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.OUTBOUND_CALLS">Outbound Calls</span>\n </md-tab-label>\n </md-tab>\n </md-tabs>\n\n <md-card ui-view></md-card>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/voice/views/realtime/telephones/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.TELEPHONES">Telephones</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getTelephones()" query="vm.query" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n\n\x3c!-- AGENT TABLE --\x3e\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTelephones">\n <tr md-row>\n <th md-column md-order-by="fullname">{{ \'VOICE.ACCOUNTNAME\' | translate }}</th>\n <th md-column md-order-by="internal">{{ \'VOICE.INTERNAL\' | translate }}</th>\n <th md-column>{{ \'VOICE.PHONE_STATE\' | translate }}</th>\n <th md-column>{{ \'VOICE.PHONE_STATUS\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.telephones">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="telephone" md-select-id="id" ng-repeat="(id, telephone) in vm.telephones">\n <td md-cell>{{telephone.fullname}}</td>\n <td md-cell>{{telephone.internal}}</td>\n <td md-cell>\n <i ng-class="vm.stateClass[telephone.state]">\n <md-tooltip>{{\'VOICE.\' + telephone.state | uppercase | translate}}</md-tooltip>\n </i>\n </td>\n <td md-cell>\n <i ng-class="vm.statusClass[telephone.status]">\n <md-tooltip>{{\'VOICE.\' + telephone.status | uppercase | translate}}</md-tooltip>\n </i>\n <span ng-if="telephone.status === \'registered\'" class="text-boxed">{{telephone.address}}</span>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getTelephones" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/voice/views/realtime/trunks/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.TRUNKS">Telephones</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getTrunks()" query="vm.query" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n\n\x3c!-- TRUNKS TABLE --\x3e\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head>\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTrunks">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'VOICE.NAME\' | translate }}</th>\n <th md-column>{{ \'VOICE.TRUNK_STATUS\' | translate }}</th>\n <th md-column>{{ \'VOICE.REGISTRY\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.trunks">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(id, trunk) in vm.trunks">\n <td md-cell>{{trunk.name}}</td>\n <td md-cell>\n <i ng-class="vm.statusClass[trunk.status.toLowerCase()]">\n <md-tooltip>{{\'VOICE.\' + trunk.status | uppercase | translate}}</md-tooltip>\n </i>\n <span ng-if="trunk.status === \'registered\'" class="text-boxed">{{trunk.address}}</span>\n </td>\n <td md-cell>\n <i ng-if="trunk.registry" ng-class="(trunk.stateRegistry.toLowerCase() === \'registered\') ? \'green-300-fg icon-checkbox-marked-circle\' : \'red-300-fg icon-close-circle\'">\n <md-tooltip>{{\'VOICE.\' + trunk.stateRegistry | uppercase | translate}}</md-tooltip>\n </i>\n <span ng-if="trunk.registry && trunk.host && trunk.port" class="text-boxed">{{trunk.host}}:{{trunk.port}}</span>\n <span ng-if="!trunk.registry" translate="VOICE.NO_REGISTRY">\n No Registry\n </span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="4">\n <md-menu-item>\n <md-button ng-click="vm.goToTrunk($event, trunk)" translate="VOICE.EDIT_TRUNK">\n Edit Trunk\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getTrunks" md-page-select></md-table-pagination>\n\x3c!-- / TRUNKS TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/voice/views/voicemails/create/dialog.html",'<md-dialog class="voicemail-dialog" aria-label="New Voicemail">\n <form name="voicemailForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="VOICE.FULLNAME">FullName</label>\n <input type="text" name="fullname" ng-model="vm.voicemail.fullname" ng-required="true" autofocus>\n\n <div ng-messages="voicemailForm[\'fullname\'].$error" ng-show="voicemailForm[\'fullname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.FULLNAME_REQUIRED">FullName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.voicemail.email" ng-required="vm.voicemail.attach === \'yes\'">\n\n <div ng-messages="voicemailForm[\'email\'].$error" ng-show="voicemailForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="VOICE.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.voicemail.password" placeholder="Password" translate translate-attr-placeholder="VOICE.PASSWORD" required>\n <div ng-messages="voicemailForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="VOICE.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.newVoicemail ">\n <label translate="VOICE.CONFIRM_PASSWORD">Confirm Password</label>\n <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword" required>\n <div ng-messages="voicemailForm.confirmPassword.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n </div>\n <div ng-message="passwordMatch">\n <span translate="VOICE.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="VOICE.MAILBOX">MailBox</label>\n <input type="text" name="mailbox" ng-model="vm.voicemail.mailbox" ng-required="true" ng-disabled="!vm.newVoicemail">\n\n <div ng-messages="voicemailForm[\'mailbox\'].$error" ng-show="voicemailForm[\'mailbox\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MAILBOX_REQUIRED">MailBox field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ATTACH">Attach</label>\n <md-select name="attach" ng-model="vm.voicemail.attach">\n\n <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }} </md-option>\n </md-select>\n <div ng-messages="voicemailForm[\'attach\'].$error" ng-show="voicemailForm[\'attach\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ATTACH_REQUIRED">Attach field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newVoicemail" ng-click="vm.saveVoicemail()" class="send-button md-accent md-raised" ng-disabled="voicemailForm.$invalid || voicemailForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newVoicemail" ng-click="vm.addNewVoicemail()" class="send-button md-accent md-raised" ng-disabled="voicemailForm.$invalid" aria-label="ADD" translate="VOICE.ADD_VOICEMAIL" translate-attr-aria-label="VOICE.ADD_VOICEMAIL">\n ADD VOICEMAIL\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newVoicemail" ng-click="vm.deleteVoicemail($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/voicemails/edit/view.html",'<div id="voice-voicemail" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-voicemails-button md-icon-button" aria-label="Go to voicemails" ng-click="vm.gotoVoicemails()" translate translate-attr-aria-label="VOICE.GO_TO_VOICEMAILS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="voicemail-image" hide-xs>\n <img ng-src="assets/images/business/voicemails.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.voicemail.id}}\n <span ng-if="vm.voicemail.name">{{vm.voicemail.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="VOICE.CREATED_AT"></span> <span>{{vm.voicemail.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveVoicemail()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (advancedForm.$invalid) || (messagesForm.$invalid)" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="voicemail-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="VOICE.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="VOICE.FULLNAME">FullName</label>\n <input type="text" name="fullname" ng-model="vm.voicemail.fullname" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'fullname\'].$error" ng-show="generalForm[\'fullname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.FULLNAME_REQUIRED">FullName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.voicemail.email" ng-required="vm.voicemail.attach === \'yes\'" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'email\'].$error" ng-show="generalForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="VOICE.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.voicemail.password" placeholder="Password" translate translate-attr-placeholder="VOICE.PASSWORD" required>\n <div ng-messages="generalForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="VOICE.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.newVoicemail ">\n <label translate="VOICE.CONFIRM_PASSWORD">Confirm Password</label>\n <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword" required>\n <div ng-messages="generalForm.confirmPassword.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n </div>\n <div ng-message="passwordMatch">\n <span translate="VOICE.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="VOICE.MAILBOX">MailBox</label>\n <input type="text" name="mailbox" ng-model="vm.voicemail.mailbox" ng-required="true" disabled>\n\n <div ng-messages="generalForm[\'mailbox\'].$error" ng-show="generalForm[\'mailbox\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MAILBOX_REQUIRED">MailBox field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.VOICEMAIL_CONTEXT">Voicemail_Context</label>\n <md-select name="context" ng-model="vm.voicemail.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts" ng-disabled="context.canSelect === false">{{ context.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.VOICEMAIL_CONTEXT"></span></div>\n <div ng-messages="generalForm[\'context\'].$error" ng-show="generalForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.VOICEMAIL_CONTEXT_REQUIRED">Voicemail_Context field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="voicemail-detail-form-container advanced md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="VOICE.ADVANCED">ADVANCED</div>\n </div>\n <form name="advancedForm" novalidate>\n <md-input-container class="md-block">\n <label translate="VOICE.TIMEZONE">TimeZone</label>\n <input type="text" name="tz" ng-model="vm.voicemail.tz" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="advancedForm[\'tz\'].$error" ng-show="advancedForm[\'tz\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TIMEZONE_REQUIRED">TimeZone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ATTACH">Attach</label>\n <md-select name="attach" ng-model="vm.voicemail.attach" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }} </md-option>\n </md-select>\n <div ng-messages="advancedForm[\'attach\'].$error" ng-show="advancedForm[\'attach\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ATTACH_REQUIRED">Attach field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ENVELOPE">Envelope</label>\n <md-select name="envelope" ng-model="vm.voicemail.envelope" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }} </md-option>\n </md-select>\n <div ng-messages="advancedForm[\'envelope\'].$error" ng-show="advancedForm[\'envelope\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ENVELOPE_REQUIRED">Envelope field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DELETE">Delete</label>\n <md-select name="delete" ng-model="vm.voicemail.delete" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }} </md-option>\n </md-select>\n <div ng-messages="advancedForm[\'delete\'].$error" ng-show="advancedForm[\'delete\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DELETE_REQUIRED">Delete field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.EMAILBODY">EmailBody</label>\n <input type="text" name="emailbody" ng-model="vm.voicemail.emailbody" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="advancedForm[\'emailbody\'].$error" ng-show="advancedForm[\'emailbody\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.EMAILBODY_REQUIRED">EmailBody field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.EMAILSUBJECT">EmailSubject</label>\n <input type="text" name="emailsubject" ng-model="vm.voicemail.emailsubject" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="advancedForm[\'emailsubject\'].$error" ng-show="advancedForm[\'emailsubject\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.EMAILSUBJECT_REQUIRED">EmailSubject field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MAXSECONDS">MaxSeconds</label>\n <input type="number" name="maxsecs" ng-model="vm.voicemail.maxsecs" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="advancedForm[\'maxsecs\'].$error" ng-show="advancedForm[\'maxsecs\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MAXSECONDS_REQUIRED">MaxSeconds field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.MAXSECONDS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MaxSeconds must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MAXMESSAGES">MaxMessages</label>\n <input type="number" name="maxmsg" ng-model="vm.voicemail.maxmsg" min="0" max="9999" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="advancedForm[\'maxmsg\'].$error" ng-show="advancedForm[\'maxmsg\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MAXMESSAGES_REQUIRED">MaxMessages field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.MAXMESSAGES_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MaxMessages must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="VOICE.ERRORS.MAXMESSAGES_MUST_BE_LESS_THAN_OR_EQUAL_TO">MaxMessages must be a valid greater or equal than</span> <span>9999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.MESSAGES">MESSAGES</span>\n </md-tab-label>\n <md-tab-body>\n <div class="voicemail-detail-form-container messages md-background-bg md-whiteframe-1dp">\n <div ng-controller="VoicemailMessagesController as vm_dc" ng-init="vm_dc.init(vm.voicemail, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedVoicemailMessages.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.MESSAGES">Messages</span>\n <ms-search-bar on-search="vm_dc.getVoicemailMessages()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedVoicemailMessages.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedVoicemailMessages.length}} {{vm_dc.selectedVoicemailMessages.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedVoicemailMessages" csv-label="true" filename="voicemails.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedVoicemailMessages($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedVoicemailMessages" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getVoicemailMessages">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'VOICE.ID\' | translate }}\n </th>\n <th md-column md-order-by="callerid">\n {{ \'VOICE.CALLER_ID\' | translate }}\n </th>\n <th md-column md-order-by="duration">\n {{ \'VOICE.DURATION\' | translate }}\n </th>\n <th md-column md-order-by="audio">\n {{ \'VOICE.AUDIO\' | translate }}\n </th>\n <th md-column md-order-by="stamp">\n {{ \'VOICE.RECEIVED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="message" md-select-id="id" ng-repeat="message in vm_dc.voicemailMessages.rows">\n <td md-cell>\n {{message.id}}\n </td>\n <td md-cell>\n {{message.callerid}}\n </td>\n <td md-cell>\n {{message.duration}}\n </td>\n <td md-cell>\n \x3c!-- audio recording directive --\x3e\n <ms-recording id="message.id" model="\'voiceMailMessage\'"></ms-recording>\n \x3c!-- / audio recording directive --\x3e\n </td>\n <td md-cell>\n {{ message.stamp | formatdate }}\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(message, $event)" translate="VOICE.DELETE_MESSAGE">\n Delete Message\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.voicemailMessages.rows.length">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="VOICE.NO_MESSAGE_AVAILABLE">No message available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.voicemailMessages.count}}" md-on-paginate="vm_dc.getVoicemailMessages" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/voice/views/voicemails/voicemails.html",'<div id="voicemails" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="VOICE.VOICEMAILS">Voicemails</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedVoicemails.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedVoicemails =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="VOICE.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-voicemails-count">\n <span>{{vm.selectedVoicemails.length}}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VOICE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllVoicemails()" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectVoicemails()" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedVoicemails" csv-label="true" filename="voicemails.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedVoicemails($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- VOICEMAIL TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedVoicemails" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVoicemails">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n <th md-column md-order-by="fullname">{{ \'VOICE.FULLNAME\' | translate }}</th>\n <th md-column md-order-by="email">{{ \'VOICE.EMAIL\' | translate }}</th>\n <th md-column md-order-by="mailbox">{{ \'VOICE.MAILBOX\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.voicemails.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="voicemail" md-select-id="id" ng-repeat="voicemail in vm.voicemails.rows">\n <td md-cell ng-if="voicemail.userpic"><img class="avatar" alt="{{voicemail.name}}" ng-src="api/users/{{voicemail.id}}/avatar" /></td>\n <td md-cell ng-if="!voicemail.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{voicemail.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voicemail, ev) : vm.createOrEditVoicemail($event, voicemail)" md-cell class="id ">{{voicemail.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voicemail, ev) : vm.createOrEditVoicemail($event, voicemail)" md-cell class="fullname ">{{voicemail.fullname}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voicemail, ev) : vm.createOrEditVoicemail($event, voicemail)" md-cell class="email ">{{voicemail.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voicemail, ev) : vm.createOrEditVoicemail($event, voicemail)" md-cell class="mailbox ">{{voicemail.mailbox}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(voicemail, $event )" translate="VOICE.EDIT_VOICEMAIL">\n Edit Voicemail\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(voicemail, $event )" translate="VOICE.DELETE_VOICEMAIL">\n Delete Voicemail\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.voicemails.count}}" md-on-paginate="vm.getVoicemails" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / VOICEMAIL TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD VOICEMAIL BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-voicemail-button" ng-click="vm.createOrEditVoicemail($event)" aria-label="add voicemail" translate translate-attr-aria-label="VOICE.ADD_VOICEMAIL">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD VOICEMAIL BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/views/voicePrefixes/create/dialog.html",'<md-dialog class="voicePrefix-dialog" aria-label="New voicePrefix">\n <form name="voicePrefixForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="VOICE.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.voicePrefix.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus>\n\n <div class="hint"><span translate="VOICE.HELP.NAME"></span></div>\n <div ng-messages="voicePrefixForm[\'name\'].$error" ng-show="voicePrefixForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="VOICE.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.OUTBOUNDROUTE">OutboundRoute</label>\n <md-select name="VoiceExtensionId" ng-model="vm.voicePrefix.VoiceExtensionId" required>\n <md-option ng-value="VoiceExtensionId.id" ng-repeat="VoiceExtensionId in vm.outboundRoutes" ng-disabled="VoiceExtensionId.canSelect === false">{{ VoiceExtensionId.exten }}</md-option>\n </md-select>\n <div ng-messages="voicePrefixForm[\'VoiceExtensionId\'].$error" ng-show="voicePrefixForm[\'VoiceExtensionId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OUTBOUNDROUTE_REQUIRED">OutboundRoute field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CALLERIDALL">CallerIdAll</label>\n <input type="text" name="callerIdAll" ng-model="vm.voicePrefix.callerIdAll" ng-pattern="/"(.*)"\\s<(.*?)>$/">\n\n <div class="hint"><span translate="VOICE.HELP.CALLERIDALL"></span></div>\n <div ng-messages="voicePrefixForm[\'callerIdAll\'].$error" ng-show="voicePrefixForm[\'callerIdAll\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CALLERIDALL_REQUIRED">CallerIdAll field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="VOICE.ERRORS.CALLERIDALL_MUST_VALID_PATTERN" translate-values="{ regex: \'/"(.*)"\\s<(.*?)>$/\' }">CallerIdAll must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.voicePrefix.description">\n\n <div ng-messages="voicePrefixForm[\'description\'].$error" ng-show="voicePrefixForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newvoicePrefix" ng-click="vm.savevoicePrefix()" class="send-button md-accent md-raised" ng-disabled="voicePrefixForm.$invalid || voicePrefixForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newvoicePrefix" ng-click="vm.addNewvoicePrefix()" class="send-button md-accent md-raised" ng-disabled="voicePrefixForm.$invalid" aria-label="ADD" translate="VOICE.ADD_VOICEPREFIX" translate-attr-aria-label="VOICE.ADD_VOICEPREFIX">\n ADD VOICEPREFIX\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newvoicePrefix" ng-click="vm.deletevoicePrefix($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/voicePrefixes/edit/agentadd/agentadd.html",'<md-dialog class="voicePrefix-dialog" aria-label="voicePrefix" ng-init="vm.onInit()">\n <form name="voicePrefixForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="VOICE.AGENTADD_VOICEPREFIX">Add Agent to voicePrefix</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/voicePrefixes/edit/teamadd/teamadd.html",'<md-dialog class="voicePrefix-dialog" aria-label="voicePrefix" ng-init="vm.onInit()">\n <form name="voicePrefixForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="VOICE.TEAMS_ASSOCIATION">Teams Association</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/voicePrefixes/voicePrefixes.html",'<div id="voicePrefixes" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="VOICE.VOICEPREFIXES">VoicePrefixes</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedVoicePrefixes.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedVoicePrefixes =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="VOICE.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-voicePrefixes-count">\n <span>{{vm.selectedVoicePrefixes.length}}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VOICE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllVoicePrefixes()" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectVoicePrefixes()" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedVoicePrefixes" csv-label="true" filename="voicePrefixes.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedVoicePrefixes($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- VOICEPREFIX TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedVoicePrefixes" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVoicePrefixes">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'VOICE.NAME\' | translate }}</th>\n <th md-column md-order-by="VoiceExtensionId">{{ \'VOICE.OUTBOUNDROUTE\' | translate }}</th>\n <th md-column md-order-by="callerIdAll">{{ \'VOICE.CALLERIDALL\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'VOICE.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.voicePrefixes.rows.length">\n <td md-cell colspan="6">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="voicePrefix" md-select-id="id" ng-repeat="voicePrefix in vm.voicePrefixes.rows">\n <td md-cell ng-if="voicePrefix.userpic"><img class="avatar" alt="{{voicePrefix.name}}" ng-src="api/users/{{voicePrefix.id}}/avatar" /></td>\n <td md-cell ng-if="!voicePrefix.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{voicePrefix.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditvoicePrefix($event, voicePrefix)" md-cell class="id ">{{voicePrefix.id}}</td>\n <td ng-click="vm.createOrEditvoicePrefix($event, voicePrefix)" md-cell class="name ">{{voicePrefix.name}}</td>\n <td ng-click="vm.createOrEditvoicePrefix($event, voicePrefix)" md-cell class="VoiceExtensionId ">{{ (vm.outboundRoutes | filter : {\'id\':voicePrefix.VoiceExtensionId} : true)[0].exten }}</td>\n <td ng-click="vm.createOrEditvoicePrefix($event, voicePrefix)" md-cell class="callerIdAll ">{{voicePrefix.callerIdAll}}</td>\n <td ng-click="vm.createOrEditvoicePrefix($event, voicePrefix)" md-cell class="description ">{{voicePrefix.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(voicePrefix, $event )" translate="VOICE.EDIT_VOICEPREFIX">\n Edit voicePrefix\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(voicePrefix, $event )" translate="VOICE.AGENTADD_VOICEPREFIX">\n AgentAdd voicePrefix\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(voicePrefix, $event )" translate="VOICE.TEAMADD_VOICEPREFIX">\n teamadd voicePrefix\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(voicePrefix, $event )" translate="VOICE.DELETE_VOICEPREFIX">\n Delete voicePrefix\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.voicePrefixes.count}}" md-on-paginate="vm.getVoicePrefixes" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / VOICEPREFIX TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD VOICEPREFIX BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-voicePrefix-button" ng-click="vm.createOrEditvoicePrefix($event)" aria-label="add voicePrefix" translate translate-attr-aria-label="VOICE.ADD_VOICEPREFIX">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD VOICEPREFIX BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/views/voiceQueues/create/dialog.html",'<md-dialog class="voiceQueue-dialog" aria-label="New VoiceQueue">\n <form name="voiceQueueForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="VOICE.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.voiceQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newVoiceQueue">\n\n <div class="hint"><span translate="VOICE.HELP.NAME"></span></div>\n <div ng-messages="voiceQueueForm[\'name\'].$error" ng-show="voiceQueueForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="VOICE.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.voiceQueue.strategy" required>\n <md-option ng-value="\'ringall\'">Ringall</md-option>\n <md-option ng-value="\'rrmemory\'">Round Robin Memory</md-option>\n <md-option ng-value="\'leastrecent\'">Least Recent</md-option>\n <md-option ng-value="\'fewestcalls\'">Fewest Calls</md-option>\n <md-option ng-value="\'random\'">Random</md-option>\n <md-option ng-value="\'linear\'">Linear</md-option>\n <md-option ng-value="\'wrandom\'">Weight Random</md-option>\n </md-select>\n <div ng-messages="voiceQueueForm[\'strategy\'].$error" ng-show="voiceQueueForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.voiceQueue.description">\n\n <div ng-messages="voiceQueueForm[\'description\'].$error" ng-show="voiceQueueForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newVoiceQueue" ng-click="vm.saveVoiceQueue()" class="send-button md-accent md-raised" ng-disabled="voiceQueueForm.$invalid || voiceQueueForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newVoiceQueue" ng-click="vm.addNewVoiceQueue()" class="send-button md-accent md-raised" ng-disabled="voiceQueueForm.$invalid" aria-label="ADD" translate="VOICE.ADD_VOICEQUEUE" translate-attr-aria-label="VOICE.ADD_VOICEQUEUE">\n ADD VOICEQUEUE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newVoiceQueue" ng-click="vm.deleteVoiceQueue($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/voiceQueues/edit/agentadd/agentadd.html",'<md-dialog class="voiceQueue-dialog" aria-label="voiceQueue" ng-init="vm.onInit()">\n <form name="voiceQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="VOICE.AGENTADD_VOICEQUEUE">Add Agent to voiceQueue</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <md-input-container flex class="no-margin">\n <label translate="VOICE.PENALTY">Penalty</label>\n <input name="penalty" type="number" ng-model="vm.penalty" min="0" placeholder="0" required onkeypress="return event.charCode >= 48 && event.charCode <= 57 && this.value.length < 3">\n <div ng-messages="voiceQueueForm.penalty.$error" role="alert" multiple>\n <div ng-message="required">\n <span>{{ \'VOICE.ERRORS.PENALTY_REQUIRED\' | translate }}</span>\n </div>\n </div>\n </md-input-container>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit" add-disabled="vm.penalty === undefined"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/voiceQueues/edit/teamadd/teamadd.html",'<md-dialog class="voiceQueue-dialog" aria-label="voiceQueue" ng-init="vm.onInit()">\n <form name="voiceQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="VOICE.TEAMS_ASSOCIATION">Teams Association</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <md-input-container flex class="no-margin">\n <label translate="VOICE.PENALTY">Penalty</label>\n <input name="penalty" type="number" ng-model="vm.penalty" min="0" placeholder="0" required onkeypress="return event.charCode >= 48 && event.charCode <= 57 && this.value.length < 3">\n <div ng-messages="voiceQueueForm.penalty.$error" role="alert" multiple>\n <div ng-message="required">\n <span>{{ \'VOICE.ERRORS.PENALTY_REQUIRED\' | translate }}</span>\n </div>\n </div>\n </md-input-container>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit" add-disabled="vm.penalty === undefined"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/voiceQueues/edit/view.html",'<div id="voice-voiceQueue" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-voiceQueues-button md-icon-button" aria-label="Go to voiceQueues" ng-click="vm.gotoVoiceQueues()" translate translate-attr-aria-label="VOICE.GO_TO_VOICEQUEUES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="voiceQueue-image" hide-xs>\n <img ng-src="assets/images/business/voiceQueues.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.voiceQueue.id}}\n <span ng-if="vm.voiceQueue.name">{{vm.voiceQueue.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="VOICE.CREATED_AT"></span> <span>{{vm.voiceQueue.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.teamadddialog(vm.voiceQueue, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n <md-tooltip><span translate="VOICE.TEAMADD_VOICEQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.voiceQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="VOICE.AGENTADD_VOICEQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-plus"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.voiceQueue, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="VOICE.GOTO_VOICEQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-cast"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveVoiceQueue()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (settingsForm.$invalid) || (announcementsForm.$invalid) || (advancedForm.$invalid)" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="voiceQueue-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="VOICE.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="VOICE.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.voiceQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="VOICE.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="VOICE.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.voiceQueue.strategy" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'ringall\'">Ringall</md-option>\n <md-option ng-value="\'rrmemory\'">Round Robin Memory</md-option>\n <md-option ng-value="\'leastrecent\'">Least Recent</md-option>\n <md-option ng-value="\'fewestcalls\'">Fewest Calls</md-option>\n <md-option ng-value="\'random\'">Random</md-option>\n <md-option ng-value="\'linear\'">Linear</md-option>\n <md-option ng-value="\'wrandom\'">Weight Random</md-option>\n </md-select>\n <div ng-messages="generalForm[\'strategy\'].$error" ng-show="generalForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.voiceQueue.timeout" min="0" value="15" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.TIMEOUT"></span></div>\n <div ng-messages="generalForm[\'timeout\'].$error" ng-show="generalForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MAXLENGTH">MaxLength</label>\n <input type="number" name="maxlen" ng-model="vm.voiceQueue.maxlen" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.MAXLENGTH"></span></div>\n <div ng-messages="generalForm[\'maxlen\'].$error" ng-show="generalForm[\'maxlen\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MAXLENGTH_REQUIRED">MaxLength field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.MAXLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MaxLength must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.RETRY">Retry</label>\n <input type="number" name="retry" ng-model="vm.voiceQueue.retry" min="0" value="2" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.RETRY"></span></div>\n <div ng-messages="generalForm[\'retry\'].$error" ng-show="generalForm[\'retry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.RETRY_REQUIRED">Retry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.RETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Retry must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.WRAPUPTIME">WrapupTime</label>\n <input type="number" name="wrapuptime" ng-model="vm.voiceQueue.wrapuptime" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.WRAPUPTIME"></span></div>\n <div ng-messages="generalForm[\'wrapuptime\'].$error" ng-show="generalForm[\'wrapuptime\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.WRAPUPTIME_REQUIRED">WrapupTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.WRAPUPTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WrapupTime must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.WEIGHT">Weight</label>\n <input type="number" name="weight" ng-model="vm.voiceQueue.weight" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.WEIGHT"></span></div>\n <div ng-messages="generalForm[\'weight\'].$error" ng-show="generalForm[\'weight\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.WEIGHT_REQUIRED">Weight field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.WEIGHT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Weight must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.JOINWHENEMPTY">JoinWhenEmpty</label>\n <md-select name="joinempty" ng-model="vm.voiceQueue.joinempty" multiple ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'no\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'no\'">no</md-option>\n <md-option ng-value="\'yes\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'yes\'">yes</md-option>\n <md-option ng-value="\'strict\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'strict\'">strict</md-option>\n <md-option ng-value="\'loose\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'loose\'">loose</md-option>\n <md-option ng-value="\'paused\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'paused\'">paused</md-option>\n <md-option ng-value="\'penalty\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'penalty\'">penalty</md-option>\n <md-option ng-value="\'inuse\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'inuse\'">inuse</md-option>\n <md-option ng-value="\'ringing\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'ringing\'">ringing</md-option>\n <md-option ng-value="\'unavailable\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'unavailable\'">unavailable</md-option>\n <md-option ng-value="\'invalid\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'invalid\'">invalid</md-option>\n <md-option ng-value="\'unknown\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'unknown\'">unknown</md-option>\n <md-option ng-value="\'wrapup\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'wrapup\'">wrapup</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.JOINWHENEMPTY"></span></div>\n <div ng-messages="generalForm[\'joinempty\'].$error" ng-show="generalForm[\'joinempty\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.JOINWHENEMPTY_REQUIRED">JoinWhenEmpty field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.LEAVEWHENEMPTY">LeaveWhenEmpty</label>\n <md-select name="leavewhenempty" ng-model="vm.voiceQueue.leavewhenempty" multiple ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'no\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'no\'">no</md-option>\n <md-option ng-value="\'yes\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'yes\'">yes</md-option>\n <md-option ng-value="\'strict\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'strict\'">strict</md-option>\n <md-option ng-value="\'loose\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'loose\'">loose</md-option>\n <md-option ng-value="\'paused\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'paused\'">paused</md-option>\n <md-option ng-value="\'penalty\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'penalty\'">penalty</md-option>\n <md-option ng-value="\'inuse\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'inuse\'">inuse</md-option>\n <md-option ng-value="\'ringing\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'ringing\'">ringing</md-option>\n <md-option ng-value="\'unavailable\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'unavailable\'">unavailable</md-option>\n <md-option ng-value="\'invalid\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'invalid\'">invalid</md-option>\n <md-option ng-value="\'unknown\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'unknown\'">unknown</md-option>\n <md-option ng-value="\'wrapup\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'wrapup\'">wrapup</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.LEAVEWHENEMPTY"></span></div>\n <div ng-messages="generalForm[\'leavewhenempty\'].$error" ng-show="generalForm[\'leavewhenempty\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.LEAVEWHENEMPTY_REQUIRED">LeaveWhenEmpty field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MUSICONHOLD">MusicOnHold</label>\n <md-select name="musiconhold" ng-model="vm.voiceQueue.musiconhold" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="musiconhold.name" ng-repeat="musiconhold in vm.musiconholds" ng-disabled="musiconhold.canSelect === false">{{ musiconhold.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.MUSICONHOLD"></span></div>\n <div ng-messages="generalForm[\'musiconhold\'].$error" ng-show="generalForm[\'musiconhold\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MUSICONHOLD_REQUIRED">MusicOnHold field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ANNOUNCETOAGENT">AnnounceToAgent</label>\n <md-select name="announce" ng-model="vm.voiceQueue.announce" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'FALSE\'">None</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + announce.save_name" ng-repeat="announce in vm.sounds" ng-disabled="announce.canSelect === false">{{ announce.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.ANNOUNCETOAGENT"></span></div>\n <div ng-messages="generalForm[\'announce\'].$error" ng-show="generalForm[\'announce\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ANNOUNCETOAGENT_REQUIRED">AnnounceToAgent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.voiceQueue.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.ANNOUNCEMENTS">ANNOUNCEMENTS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="voiceQueue-detail-form-container settings md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="VOICE.SETTINGS">SETTINGS</div>\n </div>\n <form name="settingsForm" novalidate>\n <md-input-container class="md-block">\n <label translate="VOICE.ANNOUNCEFREQUENCY">AnnounceFrequency</label>\n <input type="number" name="announce_frequency" ng-model="vm.voiceQueue.announce_frequency" min="0" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.ANNOUNCEFREQUENCY"></span></div>\n <div ng-messages="settingsForm[\'announce_frequency\'].$error" ng-show="settingsForm[\'announce_frequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ANNOUNCEFREQUENCY_REQUIRED">AnnounceFrequency field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.ANNOUNCEFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AnnounceFrequency must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MINANNOUNCEFREQUENCY">MinAnnounceFrequency</label>\n <input type="number" name="min_announce_frequency" ng-model="vm.voiceQueue.min_announce_frequency" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.MINANNOUNCEFREQUENCY"></span></div>\n <div ng-messages="settingsForm[\'min_announce_frequency\'].$error" ng-show="settingsForm[\'min_announce_frequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MINANNOUNCEFREQUENCY_REQUIRED">MinAnnounceFrequency field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.MINANNOUNCEFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MinAnnounceFrequency must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.PERIODICANNOUNCEFREQUENCY">PeriodicAnnounceFrequency</label>\n <input type="number" name="periodic_announce_frequency" ng-model="vm.voiceQueue.periodic_announce_frequency" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.PERIODICANNOUNCEFREQUENCY"></span></div>\n <div ng-messages="settingsForm[\'periodic_announce_frequency\'].$error" ng-show="settingsForm[\'periodic_announce_frequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PERIODICANNOUNCEFREQUENCY_REQUIRED">PeriodicAnnounceFrequency field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.PERIODICANNOUNCEFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">PeriodicAnnounceFrequency must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.RANDOMPERIODICANNOUNCE">RandomPeriodicAnnounce</label>\n <md-select name="random_periodic_announce" ng-model="vm.voiceQueue.random_periodic_announce" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.RANDOMPERIODICANNOUNCE"></span></div>\n <div ng-messages="settingsForm[\'random_periodic_announce\'].$error" ng-show="settingsForm[\'random_periodic_announce\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.RANDOMPERIODICANNOUNCE_REQUIRED">RandomPeriodicAnnounce field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ANNOUNCEHOLDTIME">AnnounceHoldtime</label>\n <md-select name="announce_holdtime" ng-model="vm.voiceQueue.announce_holdtime" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">Yes</md-option>\n <md-option ng-value="\'no\'">No</md-option>\n <md-option ng-value="\'once\'">Once</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.ANNOUNCEHOLDTIME"></span></div>\n <div ng-messages="settingsForm[\'announce_holdtime\'].$error" ng-show="settingsForm[\'announce_holdtime\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ANNOUNCEHOLDTIME_REQUIRED">AnnounceHoldtime field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ANNOUNCECALLERPOSITION">AnnounceCallerPosition</label>\n <md-select name="announce_position" ng-model="vm.voiceQueue.announce_position" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">Yes</md-option>\n <md-option ng-value="\'no\'">No</md-option>\n <md-option ng-value="\'limit\'">Limit</md-option>\n <md-option ng-value="\'more\'">More</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.ANNOUNCECALLERPOSITION"></span></div>\n <div ng-messages="settingsForm[\'announce_position\'].$error" ng-show="settingsForm[\'announce_position\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ANNOUNCECALLERPOSITION_REQUIRED">AnnounceCallerPosition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ANNOUNCEPOSITIONLIMIT">AnnouncePositionLimit</label>\n <input type="number" name="announce_position_limit" ng-model="vm.voiceQueue.announce_position_limit" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.ANNOUNCEPOSITIONLIMIT"></span></div>\n <div ng-messages="settingsForm[\'announce_position_limit\'].$error" ng-show="settingsForm[\'announce_position_limit\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ANNOUNCEPOSITIONLIMIT_REQUIRED">AnnouncePositionLimit field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.REPORTHOLDTIMEAGENT">ReportHoldtimeAgent</label>\n <md-select name="reportholdtime" ng-model="vm.voiceQueue.reportholdtime" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.REPORTHOLDTIMEAGENT"></span></div>\n <div ng-messages="settingsForm[\'reportholdtime\'].$error" ng-show="settingsForm[\'reportholdtime\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.REPORTHOLDTIMEAGENT_REQUIRED">ReportHoldtimeAgent field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="voiceQueue-detail-form-container announcements md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="VOICE.ANNOUNCEMENTS">ANNOUNCEMENTS</div>\n </div>\n <form name="announcementsForm" novalidate>\n <md-input-container class="md-block">\n <label translate="VOICE.PERIODICANNOUNCE">PeriodicAnnounce</label>\n <md-select name="periodic_announce" ng-model="vm.voiceQueue.periodic_announce" autofocus multiple ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">Default</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + periodic_announce.save_name" ng-repeat="periodic_announce in vm.sounds" ng-disabled="periodic_announce.canSelect === false">{{ periodic_announce.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.PERIODICANNOUNCE"></span></div>\n <div ng-messages="announcementsForm[\'periodic_announce\'].$error" ng-show="announcementsForm[\'periodic_announce\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PERIODICANNOUNCE_REQUIRED">PeriodicAnnounce field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.HOLDTIMEANNOUNCE">HoldTimeAnnounce</label>\n <md-select name="queue_reporthold" ng-model="vm.voiceQueue.queue_reporthold" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_reporthold.save_name" ng-repeat="queue_reporthold in vm.sounds" ng-disabled="queue_reporthold.canSelect === false">{{ queue_reporthold.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.HOLDTIMEANNOUNCE"></span></div>\n <div ng-messages="announcementsForm[\'queue_reporthold\'].$error" ng-show="announcementsForm[\'queue_reporthold\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.HOLDTIMEANNOUNCE_REQUIRED">HoldTimeAnnounce field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.YOUARENEXTANNOUNCE">YouareNextAnnounce</label>\n <md-select name="queue_youarenext" ng-model="vm.voiceQueue.queue_youarenext" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_youarenext.save_name" ng-repeat="queue_youarenext in vm.sounds" ng-disabled="queue_youarenext.canSelect === false">{{ queue_youarenext.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.YOUARENEXTANNOUNCE"></span></div>\n <div ng-messages="announcementsForm[\'queue_youarenext\'].$error" ng-show="announcementsForm[\'queue_youarenext\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.YOUARENEXTANNOUNCE_REQUIRED">YouareNextAnnounce field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.THEREAREANNOUNCE">ThereareAnnounce</label>\n <md-select name="queue_thereare" ng-model="vm.voiceQueue.queue_thereare" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_thereare.save_name" ng-repeat="queue_thereare in vm.sounds" ng-disabled="queue_thereare.canSelect === false">{{ queue_thereare.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.THEREAREANNOUNCE"></span></div>\n <div ng-messages="announcementsForm[\'queue_thereare\'].$error" ng-show="announcementsForm[\'queue_thereare\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.THEREAREANNOUNCE_REQUIRED">ThereareAnnounce field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.WAITINGCALLSANNOUNCE">WaitingCallsAnnounce</label>\n <md-select name="queue_callswaiting" ng-model="vm.voiceQueue.queue_callswaiting" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_callswaiting.save_name" ng-repeat="queue_callswaiting in vm.sounds" ng-disabled="queue_callswaiting.canSelect === false">{{ queue_callswaiting.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.WAITINGCALLSANNOUNCE"></span></div>\n <div ng-messages="announcementsForm[\'queue_callswaiting\'].$error" ng-show="announcementsForm[\'queue_callswaiting\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.WAITINGCALLSANNOUNCE_REQUIRED">WaitingCallsAnnounce field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ESTIMATEDHOLDTIMEANNOUNCE">EstimatedHoldTimeAnnounce</label>\n <md-select name="queue_holdtime" ng-model="vm.voiceQueue.queue_holdtime" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_holdtime.save_name" ng-repeat="queue_holdtime in vm.sounds" ng-disabled="queue_holdtime.canSelect === false">{{ queue_holdtime.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.ESTIMATEDHOLDTIMEANNOUNCE"></span></div>\n <div ng-messages="announcementsForm[\'queue_holdtime\'].$error" ng-show="announcementsForm[\'queue_holdtime\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ESTIMATEDHOLDTIMEANNOUNCE_REQUIRED">EstimatedHoldTimeAnnounce field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MINUTESANNOUNCE">MinutesAnnounce</label>\n <md-select name="queue_minutes" ng-model="vm.voiceQueue.queue_minutes" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_minutes.save_name" ng-repeat="queue_minutes in vm.sounds" ng-disabled="queue_minutes.canSelect === false">{{ queue_minutes.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.MINUTESANNOUNCE"></span></div>\n <div ng-messages="announcementsForm[\'queue_minutes\'].$error" ng-show="announcementsForm[\'queue_minutes\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MINUTESANNOUNCE_REQUIRED">MinutesAnnounce field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MINUTEANNOUNCE">MinuteAnnounce</label>\n <md-select name="queue_minute" ng-model="vm.voiceQueue.queue_minute" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_minute.save_name" ng-repeat="queue_minute in vm.sounds" ng-disabled="queue_minute.canSelect === false">{{ queue_minute.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.MINUTEANNOUNCE"></span></div>\n <div ng-messages="announcementsForm[\'queue_minute\'].$error" ng-show="announcementsForm[\'queue_minute\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MINUTEANNOUNCE_REQUIRED">MinuteAnnounce field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.SECONDSANNOUNCE">SecondsAnnounce</label>\n <md-select name="queue_seconds" ng-model="vm.voiceQueue.queue_seconds" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_seconds.save_name" ng-repeat="queue_seconds in vm.sounds" ng-disabled="queue_seconds.canSelect === false">{{ queue_seconds.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.SECONDSANNOUNCE"></span></div>\n <div ng-messages="announcementsForm[\'queue_seconds\'].$error" ng-show="announcementsForm[\'queue_seconds\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.SECONDSANNOUNCE_REQUIRED">SecondsAnnounce field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.THANKYOUANNOUNCE">ThankYouAnnounce</label>\n <md-select name="queue_thankyou" ng-model="vm.voiceQueue.queue_thankyou" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_thankyou.save_name" ng-repeat="queue_thankyou in vm.sounds" ng-disabled="queue_thankyou.canSelect === false">{{ queue_thankyou.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.THANKYOUANNOUNCE"></span></div>\n <div ng-messages="announcementsForm[\'queue_thankyou\'].$error" ng-show="announcementsForm[\'queue_thankyou\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.THANKYOUANNOUNCE_REQUIRED">ThankYouAnnounce field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="voiceQueue-detail-form-container advanced md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="VOICE.ADVANCED">ADVANCED</div>\n </div>\n <form name="advancedForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.voiceQueue.acw" aria-label="AfterCallWork" ng-disabled="!vm.crudPermissions.canEdit"><span translate="VOICE.AFTERCALLWORK">AfterCallWork</span></md-switch>\n <div class="hint"><span translate="VOICE.HELP.AFTERCALLWORK"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.voiceQueue.acw" class="md-block">\n <label translate="VOICE.AFTERCALLWORKDURATION">AfterCallWorkDuration</label>\n <input type="number" name="acwTimeout" ng-model="vm.voiceQueue.acwTimeout" min="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.AFTERCALLWORKDURATION"></span></div>\n <div ng-messages="advancedForm[\'acwTimeout\'].$error" ng-show="advancedForm[\'acwTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.AFTERCALLWORKDURATION_REQUIRED">AfterCallWorkDuration field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.AFTERCALLWORKDURATION_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AfterCallWorkDuration must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.AUTOPAUSE">AutoPause</label>\n <md-select name="autopause" ng-model="vm.voiceQueue.autopause" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'all\'"> {{ \'VOICE.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.AUTOPAUSE"></span></div>\n <div ng-messages="advancedForm[\'autopause\'].$error" ng-show="advancedForm[\'autopause\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.AUTOPAUSE_REQUIRED">AutoPause field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.RINGINUSE">RingInUse</label>\n <md-select name="ringinuse" ng-model="vm.voiceQueue.ringinuse" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.RINGINUSE"></span></div>\n <div ng-messages="advancedForm[\'ringinuse\'].$error" ng-show="advancedForm[\'ringinuse\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.RINGINUSE_REQUIRED">RingInUse field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MEMBERDELAY">MemberDelay</label>\n <input type="number" name="memberdelay" ng-model="vm.voiceQueue.memberdelay" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.MEMBERDELAY"></span></div>\n <div ng-messages="advancedForm[\'memberdelay\'].$error" ng-show="advancedForm[\'memberdelay\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MEMBERDELAY_REQUIRED">MemberDelay field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.MEMBERDELAY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MemberDelay must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.TIMEOUTRESTART">TimeoutRestart</label>\n <md-select name="timeoutrestart" ng-model="vm.voiceQueue.timeoutrestart" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.TIMEOUTRESTART"></span></div>\n <div ng-messages="advancedForm[\'timeoutrestart\'].$error" ng-show="advancedForm[\'timeoutrestart\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TIMEOUTRESTART_REQUIRED">TimeoutRestart field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MONITORFORMAT">MonitorFormat</label>\n <md-select name="monitor_format" ng-model="vm.voiceQueue.monitor_format" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">Inactive</md-option>\n <md-option ng-value="\'wav\'">wav</md-option>\n <md-option ng-value="\'wav49\'">wav49</md-option>\n <md-option ng-value="\'gsm\'">gsm</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.MONITORFORMAT"></span></div>\n <div ng-messages="advancedForm[\'monitor_format\'].$error" ng-show="advancedForm[\'monitor_format\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MONITORFORMAT_REQUIRED">MonitorFormat field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <input type="text" name="context" ng-model="vm.voiceQueue.context" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.CONTEXT"></span></div>\n <div ng-messages="advancedForm[\'context\'].$error" ng-show="advancedForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.SETINTERFACEVARIABLES">SetInterfaceVariables</label>\n <md-select name="setinterfacevar" ng-model="vm.voiceQueue.setinterfacevar" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.SETINTERFACEVARIABLES"></span></div>\n <div ng-messages="advancedForm[\'setinterfacevar\'].$error" ng-show="advancedForm[\'setinterfacevar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.SETINTERFACEVARIABLES_REQUIRED">SetInterfaceVariables field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.SETQUEUEVARIABLES">SetQueueVariables</label>\n <md-select name="setqueuevar" ng-model="vm.voiceQueue.setqueuevar" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.SETQUEUEVARIABLES"></span></div>\n <div ng-messages="advancedForm[\'setqueuevar\'].$error" ng-show="advancedForm[\'setqueuevar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.SETQUEUEVARIABLES_REQUIRED">SetQueueVariables field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.SETQUEUEENTRYVARIABLES">SetQueueEntryVariables</label>\n <md-select name="setqueueentryvar" ng-model="vm.voiceQueue.setqueueentryvar" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.SETQUEUEENTRYVARIABLES"></span></div>\n <div ng-messages="advancedForm[\'setqueueentryvar\'].$error" ng-show="advancedForm[\'setqueueentryvar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.SETQUEUEENTRYVARIABLES_REQUIRED">SetQueueEntryVariables field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.SERVICELEVEL">ServiceLevel</label>\n <input type="number" name="servicelevel" ng-model="vm.voiceQueue.servicelevel" min="0" max="100" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.SERVICELEVEL"></span></div>\n <div ng-messages="advancedForm[\'servicelevel\'].$error" ng-show="advancedForm[\'servicelevel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.SERVICELEVEL_REQUIRED">ServiceLevel field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.SERVICELEVEL_MUST_BE_GREATER_THAN_OR_EQUAL_TO">ServiceLevel must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="VOICE.ERRORS.SERVICELEVEL_MUST_BE_LESS_THAN_OR_EQUAL_TO">ServiceLevel must be a valid greater or equal than</span> <span>100</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.voiceQueue.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="VOICE.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.voiceQueue.mandatoryDisposition" class="md-block">\n <label translate="VOICE.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.voiceQueue.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="advancedForm[\'mandatoryDispositionPauseId\'].$error" ng-show="advancedForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/voice/views/voiceQueues/voiceQueues.html",'<div id="voiceQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="VOICE.VOICEQUEUES">VoiceQueues</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedVoiceQueues.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedVoiceQueues =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="VOICE.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-voiceQueues-count">\n <span>{{vm.selectedVoiceQueues.length}}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VOICE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllVoiceQueues()" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectVoiceQueues()" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedVoiceQueues" csv-label="true" filename="voiceQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedVoiceQueues($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- VOICEQUEUE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedVoiceQueues" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVoiceQueues">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'VOICE.NAME\' | translate }}</th>\n <th md-column md-order-by="strategy">{{ \'VOICE.STRATEGY\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'VOICE.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.voiceQueues.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="voiceQueue" md-select-id="id" ng-repeat="voiceQueue in vm.voiceQueues.rows">\n <td md-cell ng-if="voiceQueue.userpic"><img class="avatar" alt="{{voiceQueue.name}}" ng-src="api/users/{{voiceQueue.id}}/avatar" /></td>\n <td md-cell ng-if="!voiceQueue.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{voiceQueue.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceQueue, ev) : vm.createOrEditVoiceQueue($event, voiceQueue)" md-cell class="id ">{{voiceQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceQueue, ev) : vm.createOrEditVoiceQueue($event, voiceQueue)" md-cell class="name ">{{voiceQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceQueue, ev) : vm.createOrEditVoiceQueue($event, voiceQueue)" md-cell class="strategy ">{{ vm.arraystrategy[voiceQueue.strategy].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceQueue, ev) : vm.createOrEditVoiceQueue($event, voiceQueue)" md-cell class="description ">{{voiceQueue.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(voiceQueue, $event )" translate="VOICE.EDIT_VOICEQUEUE">\n Edit VoiceQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(voiceQueue, $event )" translate="VOICE.TEAMADD_VOICEQUEUE">\n teamadd VoiceQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(voiceQueue, $event )" translate="VOICE.AGENTADD_VOICEQUEUE">\n agentadd VoiceQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(voiceQueue, $event )" translate="VOICE.DELETE_VOICEQUEUE">\n Delete VoiceQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(voiceQueue, $event )" translate="VOICE.GOTOREALTIME_VOICEQUEUE">\n goToRealtime VoiceQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.voiceQueues.count}}" md-on-paginate="vm.getVoiceQueues" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / VOICEQUEUE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD VOICEQUEUE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-voiceQueue-button" ng-click="vm.createOrEditVoiceQueue($event)" aria-label="add voiceQueue" translate translate-attr-aria-label="VOICE.ADD_VOICEQUEUE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD VOICEQUEUE BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/views/voiceRecordings/create/dialog.html",'<md-dialog class="voiceRecording-dialog" aria-label="New VoiceRecording">\n <form name="voiceRecordingForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="VOICE.RATING">Rating</label>\n <md-select name="rating" ng-model="vm.voiceRecording.rating" autofocus ng-disabled="!vm.newVoiceRecording && !vm.crudPermissions.canEdit">\n <md-option ng-value="null">{{\'VOICE.NO_RATING\' | translate}}</md-option>\n <md-option value="1">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1]"></md-icon>\n </md-option>\n <md-option value="2">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2]"></md-icon>\n </md-option>\n <md-option value="3">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2,3]"></md-icon>\n </md-option>\n <md-option value="4">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2,3,4]"></md-icon>\n </md-option>\n <md-option value="5">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2,3,4,5]"></md-icon>\n </md-option>\n </md-select>\n <div ng-messages="voiceRecordingForm[\'rating\'].$error" ng-show="voiceRecordingForm[rating].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.RATING_REQUIRED">Rating field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newVoiceRecording" ng-click="vm.saveVoiceRecording()" class="send-button md-accent md-raised" ng-disabled="voiceRecordingForm.$invalid || voiceRecordingForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newVoiceRecording" ng-click="vm.addNewVoiceRecording()" class="send-button md-accent md-raised" ng-disabled="voiceRecordingForm.$invalid" aria-label="ADD" translate="VOICE.ADD_VOICERECORDING" translate-attr-aria-label="VOICE.ADD_VOICERECORDING">\n ADD VOICERECORDING\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newVoiceRecording" ng-click="vm.deleteVoiceRecording($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/voiceRecordings/edit/view.html",'<div id="voice-voiceRecording" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-voiceRecordings-button md-icon-button" aria-label="Go to voiceRecordings" ng-click="vm.gotoVoiceRecordings()" translate translate-attr-aria-label="VOICE.GO_TO_VOICERECORDINGS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="voiceRecording-image" hide-xs>\n <img ng-src="assets/images/business/voiceRecordings.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.voiceRecording.id}}\n <span ng-if="vm.voiceRecording.name">{{vm.voiceRecording.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="VOICE.CREATED_AT"></span> <span>{{vm.voiceRecording.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveVoiceRecording()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(voiceRecordingsForm.$invalid) || (transcriptForm.$invalid) || (sentimentAnalysisForm.$invalid)" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.GENERAL">GENERAL</span>\n </md-tab-label>\n <md-tab-body>\n <div class="voiceRecording-detail-form-container voicerecordings md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="VOICE.VOICERECORDINGS">VOICERECORDINGS</div>\n </div>\n <form name="voiceRecordingsForm" novalidate>\n <md-input-container class="md-block">\n <label translate="VOICE.TYPE">Type</label>\n <input type="" name="type" ng-model="vm.voiceRecording.type" autofocus disabled>\n\n <div ng-messages="voiceRecordingsForm[\'type\'].$error" ng-show="voiceRecordingsForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.UNIQUEID">UniqueId</label>\n <input type="" name="uniqueid" ng-model="vm.voiceRecording.uniqueid" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'uniqueid\'].$error" ng-show="voiceRecordingsForm[\'uniqueid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.UNIQUEID_REQUIRED">UniqueId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CALLER">Caller</label>\n <input type="" name="calleridnum" ng-model="vm.voiceRecording.calleridnum" privacy="vm.userProfile.privacyEnabled" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'calleridnum\'].$error" ng-show="voiceRecordingsForm[\'calleridnum\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CALLER_REQUIRED">Caller field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CALLED">Called</label>\n <input type="" name="exten" ng-model="vm.voiceRecording.exten" privacy="vm.userProfile.privacyEnabled" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'exten\'].$error" ng-show="voiceRecordingsForm[\'exten\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CALLED_REQUIRED">Called field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONNECTED">Connected</label>\n <input type="" name="connectedlinenum" ng-model="vm.voiceRecording.connectedlinenum" privacy="vm.userProfile.privacyEnabled" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'connectedlinenum\'].$error" ng-show="voiceRecordingsForm[\'connectedlinenum\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CONNECTED_REQUIRED">Connected field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.QUEUE">Queue</label>\n <input type="" name="queue" ng-model="vm.voiceRecording.queue" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'queue\'].$error" ng-show="voiceRecordingsForm[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.AGENT">Agent</label>\n <input type="text" name="membername" ng-model="vm.voiceRecording.membername" privacy="vm.userProfile.privacyEnabled" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'membername\'].$error" ng-show="voiceRecordingsForm[\'membername\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.RATING">Rating</label>\n <md-select name="rating" ng-model="vm.voiceRecording.rating" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">{{\'VOICE.NO_RATING\' | translate}}</md-option>\n <md-option value="1">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1]"></md-icon>\n </md-option>\n <md-option value="2">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2]"></md-icon>\n </md-option>\n <md-option value="3">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2,3]"></md-icon>\n </md-option>\n <md-option value="4">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2,3,4]"></md-icon>\n </md-option>\n <md-option value="5">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2,3,4,5]"></md-icon>\n </md-option>\n </md-select>\n <div ng-messages="voiceRecordingsForm[\'rating\'].$error" ng-show="voiceRecordingsForm[rating].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.RATING_REQUIRED">Rating field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DISPOSITION">Disposition</label>\n <input type="text" name="userDisposition" ng-model="vm.voiceRecording.userDisposition" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'userDisposition\'].$error" ng-show="voiceRecordingsForm[\'userDisposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.SECOND_LEVEL_DISPOSITION">Second_Level_Disposition</label>\n <input type="text" name="userSecondDisposition" ng-model="vm.voiceRecording.userSecondDisposition" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'userSecondDisposition\'].$error" ng-show="voiceRecordingsForm[\'userSecondDisposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.SECOND_LEVEL_DISPOSITION_REQUIRED">Second_Level_Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.THIRD_LEVEL_DISPOSITION">Third_Level_Disposition</label>\n <input type="text" name="userThirdDisposition" ng-model="vm.voiceRecording.userThirdDisposition" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'userThirdDisposition\'].$error" ng-show="voiceRecordingsForm[\'userThirdDisposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.THIRD_LEVEL_DISPOSITION_REQUIRED">Third_Level_Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab ng-if="vm.license.ai">\n <md-tab-label>\n <span translate="VOICE.TRANSCRIPTANALYSIS">TRANSCRIPTANALYSIS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="voiceRecording-detail-form-container transcript md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="VOICE.TRANSCRIPT">TRANSCRIPT</div>\n </div>\n <form name="transcriptForm" novalidate>\n <md-input-container ng-if="vm.voiceRecording.transcribeStatus == \'COMPLETED\'" class="md-block">\n <label translate="VOICE.TEXT">Text</label>\n <textarea name="fileText" ng-model="vm.voiceRecording.fileText" autofocus ng-disabled="true"></textarea>\n </md-input-container>\n <md-input-container ng-if="vm.voiceRecording.transcribeStatus == \'FAILED\'" class="md-block">\n <label translate="VOICE.FAILUREREASON">FailureReason</label>\n <textarea name="failureReason" ng-model="vm.voiceRecording.failureReason" ng-disabled="true"></textarea>\n </md-input-container>\n\n </form>\n </div>\n <div class="voiceRecording-detail-form-container sentimentanalysis md-background-bg md-whiteframe-1dp">\n <div ng-controller="VoiceRecordingSentimentStatisticsController as vm_ss" ng-init="vm_ss.init(vm.voiceRecording)">\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.SENTIMENTANALYSIS" style="width: 50px;">Sentiment Analysis</span>\n <div flex></div>\n </div>\n </md-toolbar>\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8 sentiment" ng-class="vm_ss.voiceRecording.sentiment">\n {{vm_ss.voiceRecording.sentiment}}\n </div>\n <div class="font-weight-500 secondary-text">\n {{ \'VOICE.SENTIMENT\' | translate | uppercase }}\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">\n ({{ (vm_ss.voiceRecording.sPositive || 0) * 100 | number: 2 }}%)\n </div>\n <div class="font-weight-500 secondary-text">\n {{ \'VOICE.SENTIMENT_POSITIVE\' | translate | uppercase }}\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">\n ({{ (vm_ss.voiceRecording.sNegative || 0) * 100 | number: 2 }}%)\n </div>\n <div class="font-weight-500 secondary-text">\n {{ \'VOICE.SENTIMENT_NEGATIVE\' | translate | uppercase }}\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">\n ({{ (vm_ss.voiceRecording.sNeutral || 0) * 100 | number: 2 }}%)\n </div>\n <div class="font-weight-500 secondary-text">\n {{ \'VOICE.SENTIMENT_NEUTRAL\' | translate | uppercase }}\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 5 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">\n ({{ (vm_ss.voiceRecording.sMixed || 0) * 100 | number: 2 }}%)\n </div>\n <div class="font-weight-500 secondary-text">\n {{ \'VOICE.SENTIMENT_MIXED\' | translate | uppercase }}\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET 5 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/voice/views/voiceRecordings/voiceRecordings.html",'<div id="voiceRecordings" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="VOICE.VOICERECORDINGS">VoiceRecordings</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getVoiceRecordings()"></ms-quick-filter>\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedVoiceRecordings.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedVoiceRecordings =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="VOICE.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-voiceRecordings-count">\n <span>{{vm.selectedVoiceRecordings.length}}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VOICE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllVoiceRecordings()" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectVoiceRecordings()" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedVoiceRecordings" csv-label="true" filename="voiceRecordings.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.license.ai" ng-click="vm.runtranscribesentimentSelectedVoiceRecordings($event)" aria-label="transcribesentiment selected" translate translate-attr-label="VOICERECORDINGS.TRANSCRIBESENTIMENT_SELECTED">\n <md-icon md-font-icon="icon-text-to-speech"></md-icon>\n <md-tooltip>{{\'VOICE.RUNTRANSCRIBESENTIMENT_VOICERECORDING\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button" ng-if="vm.license.ai" ng-click="vm.runtranscribeSelectedVoiceRecordings($event)" aria-label="transcribe selected" translate translate-attr-label="VOICERECORDINGS.TRANSCRIBE_SELECTED">\n <md-icon md-font-icon="icon-format-size"></md-icon>\n <md-tooltip>{{\'VOICE.RUNTRANSCRIBE_VOICERECORDING\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button" ng-if="vm.license.ai" ng-click="vm.runsentimentSelectedVoiceRecordings($event)" aria-label="transcribe selected" translate translate-attr-label="VOICERECORDINGS.SENTIMENT_SELECTED">\n <md-icon md-font-icon="icon-heart-outline"></md-icon>\n <md-tooltip>{{\'VOICE.RUNSENTIMENT_VOICERECORDING\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedVoiceRecordings($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- VOICERECORDING TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedVoiceRecordings" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVoiceRecordings">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="type">{{ \'VOICE.TYPE\' | translate }}</th>\n <th md-column md-order-by="uniqueid">{{ \'VOICE.UNIQUEID\' | translate }}</th>\n <th md-column md-order-by="calleridnum">{{ \'VOICE.CALLER\' | translate }}</th>\n <th md-column md-order-by="exten">{{ \'VOICE.CALLED\' | translate }}</th>\n <th md-column md-order-by="connectedlinenum">{{ \'VOICE.CONNECTED\' | translate }}</th>\n <th md-column md-order-by="queue">{{ \'VOICE.QUEUE\' | translate }}</th>\n <th md-column md-order-by="membername">{{ \'VOICE.AGENT\' | translate }}</th>\n <th md-column md-order-by="rating">{{ \'VOICE.RATING\' | translate }}</th>\n <th md-column>{{ \'VOICE.AUDIO\' | translate }}</th>\n <th md-column md-order-by="createdAt">{{ \'VOICE.DATE\' | translate }}</th>\n <th md-column md-order-by="userDisposition">{{ \'VOICE.DISPOSITION\' | translate }}</th>\n <th md-column md-order-by="userSecondDisposition">{{ \'VOICE.SECOND_LEVEL_DISPOSITION\' | translate }}</th>\n <th md-column md-order-by="userThirdDisposition">{{ \'VOICE.THIRD_LEVEL_DISPOSITION\' | translate }}</th>\n <th md-column md-order-by="transcribeStatus" ng-if="vm.license.ai">{{ \'VOICE.TRANSCRIBE\' | translate }}</th>\n <th md-column md-order-by="sentiment" ng-if="vm.license.ai">{{ \'VOICE.SENTIMENTANALYSIS\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.voiceRecordings.rows.length">\n <td md-cell colspan="16">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="voiceRecording" md-select-id="id" ng-repeat="voiceRecording in vm.voiceRecordings.rows">\n <td md-cell ng-if="voiceRecording.userpic"><img class="avatar" alt="{{voiceRecording.name}}" ng-src="api/users/{{voiceRecording.id}}/avatar" /></td>\n <td md-cell ng-if="!voiceRecording.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{voiceRecording.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="type ">{{voiceRecording.type}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="uniqueid ">{{voiceRecording.uniqueid}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="calleridnum " privacy="{{vm.userProfile.privacyEnabled}}" ng-cloak>{{voiceRecording.calleridnum}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="exten " privacy="{{vm.userProfile.privacyEnabled}}" ng-cloak>{{voiceRecording.exten}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="connectedlinenum " privacy="{{vm.userProfile.privacyEnabled}}" ng-cloak>{{voiceRecording.connectedlinenum}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="queue ">{{voiceRecording.queue}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="membername " privacy="{{vm.userProfile.privacyEnabled}}" ng-cloak>{{voiceRecording.membername}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="rating ">\n <md-icon md-font-icon="icon-star" style="color:red" ng-show="voiceRecording.rating" ng-repeat="rating in [1,2,3,4,5] | limitTo:voiceRecording.rating"></md-icon><span ng-hide="voiceRecording.rating" translate="VOICE.NO_RATING">No rating</span>\n </td>\n <td md-cell class="audio " ng-switch="voiceRecording.format">\n \x3c!-- audio recording directive --\x3e\n <ms-recording ng-switch-when=".wav" id="voiceRecording.id" model="\'voiceRecording\'"></ms-recording>\n \x3c!-- / audio recording directive --\x3e\n <span ng-switch-when=".gsm|.WAV" ng-switch-when-separator="|">\n <em>{{ \'VOICE.CANT_PLAY_GSM_AUDIO_FILES\' | translate }}</em>\n </span>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="createdAt ">{{voiceRecording.createdAt | date:\'medium\' }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="userDisposition ">{{voiceRecording.userDisposition}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="userSecondDisposition ">{{voiceRecording.userSecondDisposition}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="userThirdDisposition ">{{voiceRecording.userThirdDisposition}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="transcribeStatus " ng-if="vm.license.ai">{{ \'VOICE.TRANSCRIBESTATUS_\' + voiceRecording.transcribeStatus | translate}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="sentiment " ng-if="vm.license.ai">{{voiceRecording.sentiment}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(voiceRecording, $event )" translate="VOICE.EDIT_VOICERECORDING">\n Edit VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="voiceRecording.transcribeStatus == \'NEW\' && vm.license.ai">\n\n <md-button ng-click="vm.runtranscriberuntranscribesentiment(voiceRecording, $event )" translate="VOICE.RUNTRANSCRIBE_VOICERECORDING">\n RunTranscribe VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="voiceRecording.transcribeStatus == \'NEW\' && vm.license.ai">\n\n <md-button ng-click="vm.runtranscribesentimentruntranscribesentiment(voiceRecording, $event )" translate="VOICE.RUNTRANSCRIBESENTIMENT_VOICERECORDING">\n RunTranscribeSentiment VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="voiceRecording.transcribeStatus == \'COMPLETED\' && voiceRecording.sentiment == null && vm.license.ai">\n\n <md-button ng-click="vm.runsentimentruntranscribesentiment(voiceRecording, $event )" translate="VOICE.RUNSENTIMENT_VOICERECORDING">\n RunSentiment VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="voiceRecording.transcribeStatus == \'COMPLETED\' && vm.license.ai">\n\n <md-button ng-click="vm.downloadtranscribefile2(voiceRecording, $event )" translate="VOICE.DOWNLOADTRANSCRIBE_VOICERECORDING">\n DownloadTranscribe VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.role === \'admin\' || vm.userProfile.downloadVoiceRecordings">\n\n <md-button ng-click="vm.downloadfile2(voiceRecording, $event , \'voice/recordings\' )" translate="VOICE.DOWNLOAD_VOICERECORDING">\n Download VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(voiceRecording, $event )" translate="VOICE.DELETE_VOICERECORDING">\n Delete VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.voiceRecordings.count}}" md-on-paginate="vm.getVoiceRecordings" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / VOICERECORDING TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- NO ADD BUTTON BUTTON --\x3e\n</div>'),e.put("app/main/apps/whatsapp/views/realtime/queues/view.html",'<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="WHATSAPP.QUEUES">Queues</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'WHATSAPP.NAME\' | translate }}</th>\n <th md-column>{{ \'WHATSAPP.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'WHATSAPP.PAUSED\' | translate }}</th>\n <th md-column>{{ \'WHATSAPP.WAITING\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.queues.count > 0">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="WHATSAPP.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="queue" md-select-id="id" ng-repeat="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedIn }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="WHATSAPP.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="WHATSAPP.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" translate="WHATSAPP.AGENTSADD_QUEUE">\n Add Agents to queue\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'WHATSAPP.PAGE\' | translate}}:\', rowsPerPage: \'{{\'WHATSAPP.ROWSPERPAGE\' | translate}}:\', of: \'{{\'WHATSAPP.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),e.put("app/main/apps/whatsapp/views/realtime/realtime.html",'<div id="realtime" class="page-layout simple tabbed" layout="column" ng-cloak>\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="WHATSAPP.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="WHATSAPP.QUEUES">Queues</span>\n </md-tab-label>\n </md-tab>\n </md-tabs>\n\n <md-card ui-view></md-card>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/create/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.whatsappAccount.name" ng-required="true" autofocus ng-disabled="!vm.newWhatsappAccount">\n\n <div class="hint"><span translate="WHATSAPP.HELP.NAME"></span></div>\n <div ng-messages="whatsappAccountForm[\'name\'].$error" ng-show="whatsappAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.KEY">key</label>\n <input type="text" name="key" ng-model="vm.whatsappAccount.key" md-maxlength="5" ng-required="true">\n\n <div ng-messages="whatsappAccountForm[\'key\'].$error" ng-show="whatsappAccountForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.LIST">List</label>\n <md-select name="ListId" ng-model="vm.whatsappAccount.ListId" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="WHATSAPP.HELP.LIST"></span></div>\n <div ng-messages="whatsappAccountForm[\'ListId\'].$error" ng-show="whatsappAccountForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.MOTIONPROXY">MotionProxy</label>\n <input type="url" name="remote" ng-model="vm.whatsappAccount.remote" md-maxlength="255" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="WHATSAPP.HELP.MOTIONPROXY"></span></div>\n <div ng-messages="whatsappAccountForm[\'remote\'].$error" ng-show="whatsappAccountForm[\'remote\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.MOTIONPROXY_REQUIRED">MotionProxy field is required</span>\n </div>\n <div ng-message="url">\n <span translate="WHATSAPP.ERRORS.MOTIONPROXY_MUST_VALID_URL">MotionProxy must be a valid url http://www.xcally.com</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.ERRORS.MOTIONPROXY_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionProxy must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TYPE">Type</label>\n <md-select name="type" ng-model="vm.whatsappAccount.type">\n <md-option ng-value="\'twilio\'">Twilio</md-option>\n <md-option ng-value="\'sinch\'">Sinch</md-option>\n </md-select>\n <div ng-messages="whatsappAccountForm[\'type\'].$error" ng-show="whatsappAccountForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.type == \'twilio\' || vm.whatsappAccount.type == \'sinch\'" class="md-block">\n <label translate="WHATSAPP.ACCOUNTSID">AccountSID</label>\n <input type="text" name="accountSid" ng-model="vm.whatsappAccount.accountSid" ng-required="true">\n\n <div ng-messages="whatsappAccountForm[\'accountSid\'].$error" ng-show="whatsappAccountForm[\'accountSid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.ACCOUNTSID_REQUIRED">AccountSID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.type == \'twilio\' || vm.whatsappAccount.type == \'sinch\'" class="md-block">\n <label translate="WHATSAPP.AUTHTOKEN">AuthToken</label>\n <input type="text" name="authToken" ng-model="vm.whatsappAccount.authToken" ng-required="true">\n\n <div ng-messages="whatsappAccountForm[\'authToken\'].$error" ng-show="whatsappAccountForm[\'authToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.AUTHTOKEN_REQUIRED">AuthToken field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container ng-if="vm.whatsappAccount.type == \'sinch\'" class="md-block">\n <label translate="WHATSAPP.BASEURL">Base URL</label>\n\n \x3c!-- <input type="text" name="baseUrl" ng-model="vm.whatsappAccount.baseUrl" ng-required="true"> --\x3e\n\n <md-select name="baseUrl" ng-model="vm.whatsappAccount.baseUrl" required>\n <md-option ng-value="\'https://us1.whatsapp.api.sinch.com\'">US Production</md-option>\n <md-option ng-value="\'https://eu1.whatsapp.api.sinch.com\'">EU Production</md-option>\n </md-select>\n\n <div ng-messages="whatsappAccountForm[\'authToken\'].$error" ng-show="whatsappAccountForm[\'authToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.AUTHTOKEN_REQUIRED">AuthToken field is required</span>\n </div>\n </div>\n </md-input-container>\n\n\n <md-input-container class="md-block">\n <label translate="WHATSAPP.PHONE">phone</label>\n <input type="text" name="phone" ng-model="vm.whatsappAccount.phone" ng-required="true">\n <div ng-messages="whatsappAccountForm[\'phone\'].$error" ng-show="whatsappAccountForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.PHONE_REQUIRED">phone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.whatsappAccount.description">\n\n <div ng-messages="whatsappAccountForm[\'description\'].$error" ng-show="whatsappAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newWhatsappAccount" ng-click="vm.saveWhatsappAccount()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountForm.$invalid || whatsappAccountForm.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newWhatsappAccount" ng-click="vm.addNewWhatsappAccount()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountForm.$invalid" aria-label="ADD" translate="WHATSAPP.ADD_WHATSAPPACCOUNT" translate-attr-aria-label="WHATSAPP.ADD_WHATSAPPACCOUNT">\n ADD WHATSAPPACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newWhatsappAccount" ng-click="vm.deleteWhatsappAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="WHATSAPP.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="WHATSAPP.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/agentadd/agentadd.html",'<md-dialog class="whatsappAccount-dialog" aria-label="whatsappAccount" ng-init="vm.onInit()">\n <form name="whatsappAccountForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="WHATSAPP.AGENTADD_WHATSAPPACCOUNT">Add Agent to whatsappAccount</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/agent/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.AGENT">Agent</label>\n <md-select name="agent" ng-model="vm.agent.agent" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents" ng-disabled="agent.canSelect === false">{{ agent.name }}</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'agent\'].$error" ng-show="whatsappAccountFormApp[\'agent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.agent.timeout" min="0" max="2147483" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'timeout\'].$error" ng-show="whatsappAccountFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="WHATSAPP.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/amazonlex/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.ACCESSKEYID">accesskeyid</label>\n <input type="text" name="accesskeyid" ng-model="vm.amazonlex.accesskeyid" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'accesskeyid\'].$error" ng-show="whatsappAccountFormApp[\'accesskeyid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.ACCESSKEYID_REQUIRED">accesskeyid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.SECRETACCESSKEY">secretaccesskey</label>\n <input type="text" name="secretaccesskey" ng-model="vm.amazonlex.secretaccesskey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'secretaccesskey\'].$error" ng-show="whatsappAccountFormApp[\'secretaccesskey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.SECRETACCESSKEY_REQUIRED">secretaccesskey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.LEXREGION">lexregion</label>\n <md-select name="lexregion" ng-model="vm.amazonlex.lexregion" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'us-east-1\'">US East (N. Virginia)</md-option>\n <md-option ng-value="\'us-west-2\'">US West (Oregon)</md-option>\n <md-option ng-value="\'eu-west-1\'">EU (Ireland)</md-option>\n <md-option ng-value="\'ap-southeast-2\'">Asia Pacific (Sydney)</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'lexregion\'].$error" ng-show="whatsappAccountFormApp[\'lexregion\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.LEXREGION_REQUIRED">lexregion field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.BOTNAME">botname</label>\n <input type="text" name="botname" ng-model="vm.amazonlex.botname" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'botname\'].$error" ng-show="whatsappAccountFormApp[\'botname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.BOTNAME_REQUIRED">botname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.amazonlex.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="WHATSAPP.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="whatsappAccountFormApp[\'welcomemessage\'].$error" ng-show="whatsappAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/autoreply/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TIMES">times</label>\n <md-select name="times" ng-model="vm.autoreply.times" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="2">One Time</md-option>\n <md-option ng-value="0">Always</md-option>\n <md-option ng-value="1">First Message</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'times\'].$error" ng-show="whatsappAccountFormApp[\'times\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TIMES_REQUIRED">times field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TEXT">Text</label>\n <textarea name="text" ng-model="vm.autoreply.text" required></textarea>\n\n <div ng-messages="whatsappAccountFormApp[\'text\'].$error" ng-show="whatsappAccountFormApp[\'text\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TEXT_REQUIRED">Text field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/close/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.DISPOSITION">Disposition</label>\n <input type="text" name="disposition" ng-model="vm.close.disposition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'disposition\'].$error" ng-show="whatsappAccountFormApp[\'disposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/dialogflow/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.dialogflow.key" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'key\'].$error" ng-show="whatsappAccountFormApp[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.KEY_REQUIRED">Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflow.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean (South Korea)</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pt\'">Portuguese (European)</md-option>\n <md-option ng-value="\'pt-br\'">Portuguese (Nrazilian)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'sv\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-HK\'">Chinese (Hong Kong)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'language\'].$error" ng-show="whatsappAccountFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.LANGUAGE_REQUIRED">language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflow.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="WHATSAPP.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="whatsappAccountFormApp[\'welcomemessage\'].$error" ng-show="whatsappAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/dialogflowv2/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.PROJECTID">ProjectID</label>\n <input type="text" name="projectId" ng-model="vm.dialogflowv2.projectId" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'projectId\'].$error" ng-show="whatsappAccountFormApp[\'projectId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.PROJECTID_REQUIRED">ProjectID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.CLIENTEMAIL">ClientEmail</label>\n <input type="text" name="clientEmail" ng-model="vm.dialogflowv2.clientEmail" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'clientEmail\'].$error" ng-show="whatsappAccountFormApp[\'clientEmail\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.CLIENTEMAIL_REQUIRED">ClientEmail field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.PRIVATEKEY">PrivateKey</label>\n <textarea name="privateKey" ng-model="vm.dialogflowv2.privateKey" required></textarea>\n\n <div ng-messages="whatsappAccountFormApp[\'privateKey\'].$error" ng-show="whatsappAccountFormApp[\'privateKey\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.PRIVATEKEY_REQUIRED">PrivateKey field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflowv2.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'zh-HK\'">Chinese (Cantonese)</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'en-AU\'">English (Australia)</md-option>\n <md-option ng-value="\'en-CA\'">English (Canada)</md-option>\n <md-option ng-value="\'en-GB\'">English (Great Britain)</md-option>\n <md-option ng-value="\'en-IN\'">English (India)</md-option>\n <md-option ng-value="\'en-US\'">English (US)</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'fr-CA\'">French (Canada)</md-option>\n <md-option ng-value="\'fr-FR\'">\'France (France)</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'hi\'">Hindi</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pl\'">Polish</md-option>\n <md-option ng-value="\'pt-BR\'">Portuguese (Brazil)</md-option>\n <md-option ng-value="\'pt-PT\'">Portuguese (Portugal)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'es-419\'">Spanish (Latin America)</md-option>\n <md-option ng-value="\'es-ES\'">Spanish (Spain)</md-option>\n <md-option ng-value="\'sw\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'tr\'">Turkish</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'language\'].$error" ng-show="whatsappAccountFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.LANGUAGE_REQUIRED">language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflowv2.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="WHATSAPP.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="whatsappAccountFormApp[\'welcomemessage\'].$error" ng-show="whatsappAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/gotoif/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.CONDITION">Condition</label>\n <input type="text" name="condition" ng-model="vm.gotoif.condition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'condition\'].$error" ng-show="whatsappAccountFormApp[\'condition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TRUEPRIORITY">truepriority</label>\n <input type="number" name="truepriority" ng-model="vm.gotoif.truepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'truepriority\'].$error" ng-show="whatsappAccountFormApp[\'truepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TRUEPRIORITY_REQUIRED">truepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">truepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.FALSEPRIORITY">falsepriority</label>\n <input type="number" name="falsepriority" ng-model="vm.gotoif.falsepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'falsepriority\'].$error" ng-show="whatsappAccountFormApp[\'falsepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.FALSEPRIORITY_REQUIRED">falsepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">falsepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/gotop/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.PRIORITY">Priority</label>\n <input type="number" name="priority" ng-model="vm.gotop.priority" min="0" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'priority\'].$error" ng-show="whatsappAccountFormApp[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Priority must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/interval/dialog.html",'<md-dialog class="interval-dialog" aria-label="New Interval">\n <form name="intervalForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="type" ng-repeat=\'type in vm.types\'>{{ type | ucfirst }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.type === \'list\'">\n <label translate="TOOLS.INTERVALS">Intervals</label>\n <md-select ng-model="vm.interval.IntervalId" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ interval.name }}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!-- TIMERANGE START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.TIME_RANGE">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <div class="md-block" flex>\n <mdp-time-picker name="timeRangeFrom" mdp-placeholder="FROM" ng-model="vm.timeRangeFrom" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <div ng-messages="intervalForm.timeRangeFrom.$error" ng-show="intervalForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_FROM_INVALID">Time Range From field is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n <div class="md-block" flex ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_INVALID">Time Range To field is invalid</span>\n </div>\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </div>\n \x3c!-- TIMERANGE END --\x3e\n\n \x3c!-- DAYSOFWEEK START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.WEEK_DAYS">Week Days</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.dayOfWeekFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex class="md-block" ng-if="vm.dayOfWeekFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="dayOfWeekTo" ng-model="vm.dayOfWeekTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- DAYSOFWEEK END --\x3e\n\n \x3c!-- MONTHDAY START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTH_DAYS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthDayFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthDayFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthDayTo" ng-model="vm.monthDayTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTHDAY END --\x3e\n\n \x3c!-- MONTH START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTHS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthTo" ng-model="vm.monthTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTH END --\x3e\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="!vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n ADD INTERVAL\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/noop/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.noop.value" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'value\'].$error" ng-show="whatsappAccountFormApp[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/queue/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.queue.queue" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues" ng-disabled="queue.canSelect === false">{{ queue.name }}</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'queue\'].$error" ng-show="whatsappAccountFormApp[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'timeout\'].$error" ng-show="whatsappAccountFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="WHATSAPP.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/system/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.COMMAND">Command</label>\n <input type="text" name="command" ng-model="vm.system.command" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'command\'].$error" ng-show="whatsappAccountFormApp[\'command\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.COMMAND_REQUIRED">Command field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.system.variable" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables" ng-disabled="variable.canSelect === false">{{ variable.name }}</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'variable\'].$error" ng-show="whatsappAccountFormApp[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.VARIABLE_REQUIRED">Variable field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/tag/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TAG">Tag</label>\n <md-select name="tag" ng-model="vm.tag.tag" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags" ng-disabled="tag.canSelect === false">{{ tag.name }}</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'tag\'].$error" ng-show="whatsappAccountFormApp[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TAG_REQUIRED">Tag field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/view.html",'<div id="whatsapp-whatsappAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-whatsappAccounts-button md-icon-button" aria-label="Go to whatsappAccounts" ng-click="vm.gotoWhatsappAccounts()" translate translate-attr-aria-label="WHATSAPP.GO_TO_WHATSAPPACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="whatsappAccount-image" hide-xs>\n <img ng-src="assets/images/business/whatsappAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.whatsappAccount.id}}\n <span ng-if="vm.whatsappAccount.name">{{vm.whatsappAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="WHATSAPP.CREATED_AT"></span> <span>{{vm.whatsappAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.whatsappAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="WHATSAPP.AGENTADD_WHATSAPPACCOUNT"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveWhatsappAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (proxyForm.$invalid) || (dispositionForm.$invalid) || (whatsappDispositionsForm.$invalid) || (whatsappCannedAnswersForm.$invalid) || (actionsForm.$invalid) || (interactionsForm.$invalid)" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="WHATSAPP.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="whatsappAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="WHATSAPP.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.whatsappAccount.name" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="WHATSAPP.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.KEY">key</label>\n <input type="text" name="key" ng-model="vm.whatsappAccount.key" md-maxlength="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'key\'].$error" ng-show="generalForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.LIST">List</label>\n <md-select name="ListId" ng-model="vm.whatsappAccount.ListId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="WHATSAPP.HELP.LIST"></span></div>\n <div ng-messages="generalForm[\'ListId\'].$error" ng-show="generalForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.type == \'twilio\' || vm.whatsappAccount.type == \'sinch\'" class="md-block">\n <label translate="WHATSAPP.ACCOUNTSID">AccountSID</label>\n <input type="text" name="accountSid" ng-model="vm.whatsappAccount.accountSid" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'accountSid\'].$error" ng-show="generalForm[\'accountSid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.ACCOUNTSID_REQUIRED">AccountSID field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container ng-if="vm.whatsappAccount.type == \'twilio\' || vm.whatsappAccount.type == \'sinch\'" class="md-block">\n <label translate="WHATSAPP.AUTHTOKEN">AuthToken</label>\n <input type="text" name="authToken" ng-model="vm.whatsappAccount.authToken" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'authToken\'].$error" ng-show="generalForm[\'authToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.AUTHTOKEN_REQUIRED">AuthToken field is required</span>\n </div>\n </div>\n </md-input-container>\n\n\n\n <md-input-container ng-if="vm.whatsappAccount.type == \'sinch\'" class="md-block">\n <label translate="WHATSAPP.BASEURL">BaseURL</label>\n\n <md-select name="baseUrl" ng-model="vm.whatsappAccount.baseUrl" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryBaseUrl.url" ng-repeat="mandatoryBaseUrl in vm.baseUrl" ng-disabled="mandatoryBaseUrl.canSelect === false">{{ mandatoryBaseUrl.name }}</md-option>\n </md-select>\n\n <div ng-messages="generalForm[\'baseUrl\'].$error" ng-show="generalForm[\'baseUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.BASEURL_REQUIRED">Base URL field is required</span>\n </div>\n </div>\n </md-input-container>\n\n\n\n <md-input-container class="md-block">\n <label translate="WHATSAPP.PHONE">phone</label>\n <input type="text" name="phone" ng-model="vm.whatsappAccount.phone" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'phone\'].$error" ng-show="generalForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.PHONE_REQUIRED">phone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.RECEIVEURL">receiveUrl</label>\n\n <div layout="row" layout-align="center center">\n <button class="md-button md-fab md-mini md-primary" ngclipboard data-clipboard-target="#copytoclipboard-receiveUrl" ngclipboard-success="vm.alert({title: \'copied to clipboard\', msg: e.text });" ngclipboard-error="vm.alert({title: \'error\', msg: \'copy to clipboard failed\'});">\n <md-icon md-font-icon="icon-clipboard-text"></md-icon>\n </button>\n <input class="md-input" type="text" id="copytoclipboard-receiveUrl" name="receiveUrl" ng-value="vm.whatsappAccount.remote + \'/api/whatsapp/accounts/\' + vm.whatsappAccount.id + \'/notify?token=\' + vm.whatsappAccount.token" ng-readonly="true">\n </div>\n <div class="hint"><span translate="WHATSAPP.HELP.RECEIVEURL"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.WAITFORTHEASSIGNEDAGENT">WaitForTheAssignedAgent</label>\n <input type="number" name="waitForTheAssignedAgent" ng-model="vm.whatsappAccount.waitForTheAssignedAgent" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'waitForTheAssignedAgent\'].$error" ng-show="generalForm[\'waitForTheAssignedAgent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.WAITFORTHEASSIGNEDAGENT_REQUIRED">WaitForTheAssignedAgent field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="WHATSAPP.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.whatsappAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="whatsappAccount-detail-form-container notification md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="WHATSAPP.NOTIFICATION">NOTIFICATION</div>\n </div>\n <form name="notificationForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.whatsappAccount.notificationShake" aria-label="notificationShake" ng-disabled="!vm.crudPermissions.canEdit"><span translate="WHATSAPP.NOTIFICATIONSHAKE">notificationShake</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.whatsappAccount.notificationSound" aria-label="notificationSound" ng-disabled="!vm.crudPermissions.canEdit"><span translate="WHATSAPP.NOTIFICATIONSOUND">notificationSound</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="WHATSAPP.NOTIFICATIONTEMPLATE">notificationTemplate</label>\n <textarea aria-label="notificationTemplate notificationTemplate" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.whatsappAccount.notificationTemplate"></textarea>\n </div>\n\n </form>\n </div>\n <div class="whatsappAccount-detail-form-container transfer md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="WHATSAPP.TRANSFER">TRANSFER</div>\n </div>\n <form name="transferForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.whatsappAccount.queueTransfer" aria-label="queueTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="WHATSAPP.QUEUETRANSFER">queueTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.queueTransfer == true" class="md-block">\n <label translate="WHATSAPP.QUEUETRANSFERTIMEOUT">queueTransferTimeout</label>\n <input type="number" name="queueTransferTimeout" ng-model="vm.whatsappAccount.queueTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'queueTransferTimeout\'].$error" ng-show="transferForm[\'queueTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.QUEUETRANSFERTIMEOUT_REQUIRED">queueTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="WHATSAPP.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.whatsappAccount.agentTransfer" aria-label="agentTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="WHATSAPP.AGENTTRANSFER">agentTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.agentTransfer == true" class="md-block">\n <label translate="WHATSAPP.AGENTTRANSFERTIMEOUT">agentTransferTimeout</label>\n <input type="number" name="agentTransferTimeout" ng-model="vm.whatsappAccount.agentTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'agentTransferTimeout\'].$error" ng-show="transferForm[\'agentTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.AGENTTRANSFERTIMEOUT_REQUIRED">agentTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="WHATSAPP.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="WHATSAPP.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="whatsappAccount-detail-form-container proxy md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="WHATSAPP.PROXY">PROXY</div>\n </div>\n <form name="proxyForm" novalidate>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.MOTIONPROXY">MotionProxy</label>\n <input type="url" name="remote" ng-model="vm.whatsappAccount.remote" md-maxlength="255" value="LOCALIP" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="WHATSAPP.HELP.MOTIONPROXY"></span></div>\n <div ng-messages="proxyForm[\'remote\'].$error" ng-show="proxyForm[\'remote\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.MOTIONPROXY_REQUIRED">MotionProxy field is required</span>\n </div>\n <div ng-message="url">\n <span translate="WHATSAPP.ERRORS.MOTIONPROXY_MUST_VALID_URL">MotionProxy must be a valid url http://www.xcally.com</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.ERRORS.MOTIONPROXY_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionProxy must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TOKEN">token</label>\n <input type="text" name="token" ng-model="vm.whatsappAccount.token" disabled>\n\n <div ng-messages="proxyForm[\'token\'].$error" ng-show="proxyForm[\'token\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TOKEN_REQUIRED">token field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="whatsappAccount-detail-form-container disposition md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="WHATSAPP.DISPOSITION">DISPOSITION</div>\n </div>\n <form name="dispositionForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.whatsappAccount.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="WHATSAPP.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.mandatoryDisposition" class="md-block">\n <label translate="WHATSAPP.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.whatsappAccount.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="WHATSAPP.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="dispositionForm[\'mandatoryDispositionPauseId\'].$error" ng-show="dispositionForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="WHATSAPP.DISPOSITIONS">DISPOSITIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div ng-controller="WhatsappAccountDispositionsController as vm_dc" ng-init="vm_dc.init(vm.whatsappAccount, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="whatsappAccount-detail-form-container whatsappdispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedWhatsappAccountDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="WHATSAPP.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add whatsapp dispositions" translate translate-attr-label="WHATSAPP.ADD_DISPOSITION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" csv-label="true" filename="whatsappAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="WHATSAPP.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_dc.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'WHATSAPP.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'WHATSAPP.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'WHATSAPP.DESCRIPTION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="WHATSAPP.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="WHATSAPP.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(disposition, $event)" translate="TOOLS.DELETE_DISPOSITION">\n Delete Disposition\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'WHATSAPP.PAGE\' | translate}}:\', rowsPerPage: \'{{\'WHATSAPP.ROWSPERPAGE\' | translate}}:\', of: \'{{\'WHATSAPP.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="WHATSAPP.CANNEDANSWERS">CANNEDANSWERS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="whatsappAccount-detail-form-container whatsappcannedanswers md-background-bg md-whiteframe-1dp">\n <div ng-controller="WhatsappAccountWhatsappCannedAnswersController as vm_dc" ng-init="vm_dc.init(vm.whatsappAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedWhatsappAccountWhatsappCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="WHATSAPP.WHATSAPPCANNEDANSWERS">WhatsappCannedAnswers</span>\n <ms-search-bar on-search="vm_dc.getWhatsappAccountWhatsappCannedAnswers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event)" aria-label="add whatsappCannedAnswer" translate translate-attr-label="WHATSAPP.ADD_WHATSAPPCANNEDANSWER">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedWhatsappAccountWhatsappCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedWhatsappAccountWhatsappCannedAnswers.length}} {{vm_dc.selectedWhatsappAccountWhatsappCannedAnswers.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedWhatsappAccountWhatsappCannedAnswers" csv-label="true" filename="whatsappAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedWhatsappAccountWhatsappCannedAnswers($event)" aria-label="delete selected" translate translate-attr-label="WHATSAPP.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedWhatsappAccountWhatsappCannedAnswers" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getWhatsappAccountWhatsappCannedAnswers">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'WHATSAPP.ID\' | translate }}\n </th>\n <th md-column md-order-by="key">\n {{ \'WHATSAPP.KEY\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'WHATSAPP.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="description">\n {{ \'WHATSAPP.DESCRIPTION\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'WHATSAPP.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="whatsappCannedAnswer" md-select-id="id" ng-repeat="whatsappCannedAnswer in vm_dc.whatsappAccountWhatsappCannedAnswers.rows">\n <td ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event, whatsappCannedAnswer)" md-cell>\n {{whatsappCannedAnswer.id}}\n </td>\n <td ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event, whatsappCannedAnswer)" md-cell>\n {{whatsappCannedAnswer.key}}\n </td>\n <td ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event, whatsappCannedAnswer)" md-cell>\n {{whatsappCannedAnswer.value}}\n </td>\n <td ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event, whatsappCannedAnswer)" md-cell>\n {{whatsappCannedAnswer.description}}\n </td>\n <td ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event, whatsappCannedAnswer)" md-cell>\n {{ whatsappCannedAnswer.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="WHATSAPP.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event, whatsappCannedAnswer)" translate="WHATSAPP.EDIT_WHATSAPPCANNEDANSWER">\n Edit WhatsappCannedAnswer\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(whatsappCannedAnswer, $event)" translate="WHATSAPP.DELETE_WHATSAPPCANNEDANSWER">\n Delete WhatsappCannedAnswer\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.whatsappAccountWhatsappCannedAnswers.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="WHATSAPP.NO_WHATSAPPCANNEDANSWER_AVAILABLE">No whatsappcannedanswer available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'WHATSAPP.PAGE\' | translate}}:\', rowsPerPage: \'{{\'WHATSAPP.ROWSPERPAGE\' | translate}}:\', of: \'{{\'WHATSAPP.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.whatsappAccountWhatsappCannedAnswers.count}}" md-on-paginate="vm_dc.getWhatsappAccountWhatsappCannedAnswers" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="WHATSAPP.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="whatsappAccount-detail-form-container actions md-background-bg md-whiteframe-1dp">\n <div ng-controller="WhatsappAccountActionsController as vm_ac" ng-init="vm_ac.init(vm.whatsappAccount, vm.crudPermissions)" class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- SIDENAV --\x3e\n <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20" ng-if="vm_ac.crudPermissions.canEdit">\n \x3c!-- SIDENAV CONTENT --\x3e\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\n Applications List\n </span>\n </md-subheader>\n </md-list>\n <md-divider></md-divider>\n <md-list ng-sortable="vm_ac.list">\n <md-list-item class="handle" ng-repeat="a in vm_ac.apps">\n <md-icon md-font-icon="{{a.icon}}" class="s16"></md-icon>\n <p class="text-truncate" translate="WHATSAPP.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias || a.appType}}</p>\n </md-list-item>\n </md-list>\n \x3c!-- / SIDENAV CONTENT --\x3e\n </div>\n \x3c!-- / SIDENAV --\x3e\n <div flex></div>\n \x3c!-- MAIN --\x3e\n <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="{{vm_ac.crudPermissions.canEdit ? 75 : 100}}">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_ac.selectedWhatsappAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Drag & Drop Routing</span>\n <div flex></div>\n <ms-search-bar on-search="vm_ac.query.filter = query" on-collapse="vm_ac.query.filter = undefined" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_ac.selectedWhatsappAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_ac.selectedWhatsappAccountApps.length}} {{vm_ac.selectedWhatsappAccountApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_ac.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_ac.deleteSelectedWhatsappAccountApps($event)" aria-label="delete selected" translate translate-attr-label="WHATSAPP.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n \x3c!-- QUEUES TABLE --\x3e\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_ac.selectedWhatsappAccountApps">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column width="10px">\n <span translate="VOICE.PRIORITY">Priority</span>\n </th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </th>\n <th md-column width="10px"></th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body ng-sortable="vm_ac.applications">\n <tr md-row md-select="app" md-select-id="id" ng-repeat="app in vm_ac.whatsappAccountApps.rows | filter: vm_ac.query.filter">\n <td md-cell>\n <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n </td>\n <td md-cell ng-click="vm_ac.editWhatsappAccountApp($event, $index)"><span>{{app.priority}}</span></td>\n <td md-cell ng-click="vm_ac.editWhatsappAccountApp($event, $index)">{{app.app.toLowerCase() === \'agi\' ? \'Cally-Square\' : app.app | ucfirst}}<span ng-if="app.appType.toLowerCase() === \'custom\'">*</span></td>\n <td md-cell ng-click="vm_ac.editWhatsappAccountApp($event, $index)"><span class="text-truncate actionAppData">{{app.appdata}}</span></td>\n <td md-cell ng-click="vm_ac.editInterval($event, $index)">{{app.IntervalId ? \'From List\' : app.interval}}</td>\n <td md-cell>\n <md-button ng-click="vm_ac.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n <md-icon md-font-icon="icon-timer"></md-icon>\n <md-tooltip>\n {{app.IntervalId ? \'From List\' : (app.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n </md-tooltip>\n </md-button>\n </td>\n <td md-cell class="actions" ng-if="!vm_ac.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editWhatsappAccountApp($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canDelete">\n <md-button ng-click="vm_ac.deleteConfirm(app, $index, $event)" translate="VOICE.DELETE_APP">\n Delete App\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-hide="vm_ac.whatsappAccountApps.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n \x3c!-- / QUEUES TABLE --\x3e\n\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="WHATSAPP.INTERACTIONS">INTERACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="whatsappAccount-detail-form-container interactions md-background-bg md-whiteframe-1dp">\n <div ng-controller="WhatsappAccountInteractionsController as vm_dc" ng-init="vm_dc.init(vm.whatsappAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedWhatsappAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="WHATSAPP.INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm_dc.getWhatsappAccountInteractions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_dc.quickFilters" query="vm_dc.query" search="vm_dc.getWhatsappAccountInteractions()"></ms-quick-filter>\n <div layout="column">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini md-accent-bg\': vm_dc.query.search }" aria-label="Filter" translate translate-attr-aria-label="DASHBOARDS.FILTER" ng-click="vm_dc.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm_dc.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'blink\': vm_dc.query.search }"></md-icon>\n </md-button>\n </div>\n <md-button class="md-icon-button" ng-click="vm_dc.getWhatsappAccountInteractions()" aria-label="refresh Interactions" translate translate-attr-label="WHATSAPP.REFRESH_INTERACTIONS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedWhatsappAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedWhatsappAccountInteractions.length}} {{vm_dc.selectedWhatsappAccountInteractions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedWhatsappAccountInteractions" csv-label="true" filename="whatsappAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedWhatsappAccountInteractions($event)" aria-label="delete selected" translate translate-attr-label="WHATSAPP.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedWhatsappAccountInteractions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getWhatsappAccountInteractions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'WHATSAPP.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column md-order-by="contactName">\n {{ \'WHATSAPP.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'WHATSAPP.STARTEDAT\' | translate }}\n </th>\n <th md-column md-order-by="lastMsgAt">\n {{ \'WHATSAPP.LASTMESSAGE\' | translate }}\n </th>\n <th md-column md-order-by="closed">\n {{ \'WHATSAPP.STATUS\' | translate }}\n </th>\n <th md-column>\n {{ \'WHATSAPP.AGENT\' | translate }}\n </th>\n <th md-column md-order-by="tag">\n {{ \'WHATSAPP.TAGS\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="interaction" md-select-id="id" ng-repeat="interaction in vm_dc.whatsappAccountInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td md-cell>\n {{interaction.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="user in interaction.Users">{{ user.fullname | translate }}\n <span ng-if="!$last">, </span>\n </span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg md-primary-bg" layout-margin>{{ interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.attach">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'margin-bottom-0\' : interaction.contactInfo}" layout-margin>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text margin-top-0" layout-margin>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td md-cell>\n {{ interaction.createdAt | formatdate }}\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}"></md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="text-truncate">{{ interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n </td>\n <td md-cell>\n <span ng-if="interaction.closed === 0" class="green-fg">\n {{ \'WHATSAPP.OPENED\' | translate }}\n <span ng-if="interaction.substatus">\n - {{ interaction.substatus }}\n </span>\n </span>\n <span ng-if="interaction.closed === 1" class="red-fg">\n {{ \'WHATSAPP.CLOSED\' | translate }}\n <span ng-if="interaction.disposition">\n - {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}\n </span>\n <md-tooltip class="multiline">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n </span>\n </td>\n\n <td md-cell>\n {{interaction.Owner.name}}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="WHATSAPP.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm_dc.spywhatsappInteraction($event, interaction)" translate="WHATSAPP.SPYINTERACTION">\n Spy Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || vm_dc.userProfile.downloadOmnichannelInteractions">\n <md-button class="md-primary" ng-click="vm_dc.whatsappInteractionDownload(interaction, $event)" translate="WHATSAPP.DOWNLOAD_INTERACTION">\n Download\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(interaction, $event)" translate="WHATSAPP.DELETE_INTERACTION">\n Delete Interaction\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.whatsappAccountInteractions.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="WHATSAPP.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'WHATSAPP.PAGE\' | translate}}:\', rowsPerPage: \'{{\'WHATSAPP.ROWSPERPAGE\' | translate}}:\', of: \'{{\'WHATSAPP.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.whatsappAccountInteractions.count}}" md-on-paginate="vm_dc.getWhatsappAccountInteractions" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/whatsappCannedAnswers/dialog.html",'<md-dialog class="whatsappCannedAnswer-dialog" aria-label="New WhatsappCannedAnswer">\n <form name="whatsappCannedAnswerForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.KEY">Key</label>\n <input type="" name="key" ng-model="vm.whatsappCannedAnswer.key" md-maxlength="255" ng-required="true" autofocus>\n\n <div ng-messages="whatsappCannedAnswerForm[\'key\'].$error" ng-show="whatsappCannedAnswerForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.KEY_REQUIRED">Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.VALUE">Value</label>\n <textarea name="value" ng-model="vm.whatsappCannedAnswer.value" required></textarea>\n\n <div ng-messages="whatsappCannedAnswerForm[\'value\'].$error" ng-show="whatsappCannedAnswerForm[\'value\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.whatsappCannedAnswer.description">\n\n <div ng-messages="whatsappCannedAnswerForm[\'description\'].$error" ng-show="whatsappCannedAnswerForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newWhatsappCannedAnswer" ng-click="vm.saveWhatsappCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="whatsappCannedAnswerForm.$invalid || whatsappCannedAnswerForm.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newWhatsappCannedAnswer" ng-click="vm.addNewWhatsappCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="whatsappCannedAnswerForm.$invalid" aria-label="ADD" translate="WHATSAPP.ADD_WHATSAPPCANNEDANSWER" translate-attr-aria-label="WHATSAPP.ADD_WHATSAPPCANNEDANSWER">\n ADD WHATSAPPCANNEDANSWER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newWhatsappCannedAnswer" ng-click="vm.deleteWhatsappCannedAnswer($event)" aria-label="DELETE" translate translate-attr-aria-label="WHATSAPP.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="WHATSAPP.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/whatsappAccounts.html",'<div id="whatsappAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-whatsapp" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="WHATSAPP.WHATSAPPACCOUNTS">WhatsappAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="WHATSAPP.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedWhatsappAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedWhatsappAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="WHATSAPP.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-whatsappAccounts-count">\n <span>{{vm.selectedWhatsappAccounts.length}}</span>\n <span translate="WHATSAPP.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="WHATSAPP.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllWhatsappAccounts()" translate="WHATSAPP.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectWhatsappAccounts()" translate="WHATSAPP.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedWhatsappAccounts" csv-label="true" filename="whatsappAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedWhatsappAccounts($event)" aria-label="delete selected" translate translate-attr-label="WHATSAPP.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- WHATSAPPACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedWhatsappAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getWhatsappAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'WHATSAPP.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'WHATSAPP.NAME\' | translate }}</th>\n <th md-column md-order-by="key">{{ \'WHATSAPP.KEY\' | translate }}</th>\n <th md-column md-order-by="ListId">{{ \'WHATSAPP.LIST\' | translate }}</th>\n <th md-column md-order-by="type">{{ \'WHATSAPP.TYPE\' | translate }}</th>\n <th md-column md-order-by="phone">{{ \'WHATSAPP.PHONE\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'WHATSAPP.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.whatsappAccounts.rows.length">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span translate="WHATSAPP.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="whatsappAccount" md-select-id="id" ng-repeat="whatsappAccount in vm.whatsappAccounts.rows">\n <td md-cell ng-if="whatsappAccount.userpic"><img class="avatar" alt="{{whatsappAccount.name}}" ng-src="api/users/{{whatsappAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!whatsappAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{whatsappAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="id ">{{whatsappAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="name ">{{whatsappAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="key ">{{whatsappAccount.key}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="ListId ">{{ (vm.lists | filter : {\'id\':whatsappAccount.ListId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="type ">{{ vm.arraytype[whatsappAccount.type].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="phone ">{{whatsappAccount.phone}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="description ">{{whatsappAccount.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="WHATSAPP.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(whatsappAccount, $event )" translate="WHATSAPP.EDIT_WHATSAPPACCOUNT">\n Edit WhatsappAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.interactionsgoto(whatsappAccount, $event )" translate="WHATSAPP.INTERACTIONS_WHATSAPPACCOUNT">\n Interactions WhatsappAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(whatsappAccount, $event )" translate="WHATSAPP.AGENTADD_WHATSAPPACCOUNT">\n AgentAdd WhatsappAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(whatsappAccount, $event )" translate="WHATSAPP.DELETE_WHATSAPPACCOUNT">\n Delete WhatsappAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'WHATSAPP.PAGE\' | translate}}:\', rowsPerPage: \'{{\'WHATSAPP.ROWSPERPAGE\' | translate}}:\', of: \'{{\'WHATSAPP.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.whatsappAccounts.count}}" md-on-paginate="vm.getWhatsappAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / WHATSAPPACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD WHATSAPPACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-whatsappAccount-button" ng-click="vm.createOrEditWhatsappAccount($event)" aria-label="add whatsappAccount" translate translate-attr-aria-label="WHATSAPP.ADD_WHATSAPPACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD WHATSAPPACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/whatsapp/views/whatsappQueues/create/dialog.html",'<md-dialog class="whatsappQueue-dialog" aria-label="New WhatsappQueue">\n <form name="whatsappQueueForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.whatsappQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newWhatsappQueue">\n\n <div class="hint"><span translate="WHATSAPP.HELP.NAME"></span></div>\n <div ng-messages="whatsappQueueForm[\'name\'].$error" ng-show="whatsappQueueForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="WHATSAPP.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.whatsappQueue.strategy" required>\n <md-option ng-value="\'beepall\'">Beepall</md-option>\n <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n </md-select>\n <div ng-messages="whatsappQueueForm[\'strategy\'].$error" ng-show="whatsappQueueForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.whatsappQueue.timeout" min="1" max="2147483" value="10" ng-required="true">\n\n <div ng-messages="whatsappQueueForm[\'timeout\'].$error" ng-show="whatsappQueueForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="WHATSAPP.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.whatsappQueue.description">\n\n <div ng-messages="whatsappQueueForm[\'description\'].$error" ng-show="whatsappQueueForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newWhatsappQueue" ng-click="vm.saveWhatsappQueue()" class="send-button md-accent md-raised" ng-disabled="whatsappQueueForm.$invalid || whatsappQueueForm.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newWhatsappQueue" ng-click="vm.addNewWhatsappQueue()" class="send-button md-accent md-raised" ng-disabled="whatsappQueueForm.$invalid" aria-label="ADD" translate="WHATSAPP.ADD_WHATSAPPQUEUE" translate-attr-aria-label="WHATSAPP.ADD_WHATSAPPQUEUE">\n ADD WHATSAPPQUEUE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newWhatsappQueue" ng-click="vm.deleteWhatsappQueue($event)" aria-label="DELETE" translate translate-attr-aria-label="WHATSAPP.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="WHATSAPP.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappQueues/edit/agentadd/agentadd.html",'<md-dialog class="whatsappQueue-dialog" aria-label="whatsappQueue" ng-init="vm.onInit()">\n <form name="whatsappQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="WHATSAPP.AGENTADD_WHATSAPPQUEUE">Add Agent to whatsappQueue</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappQueues/edit/teamadd/teamadd.html",'<md-dialog class="whatsappQueue-dialog" aria-label="whatsappQueue" ng-init="vm.onInit()">\n <form name="whatsappQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="WHATSAPP.TEAMS_ASSOCIATION">Teams Association</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappQueues/edit/view.html",'<div id="whatsapp-whatsappQueue" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-whatsappQueues-button md-icon-button" aria-label="Go to whatsappQueues" ng-click="vm.gotoWhatsappQueues()" translate translate-attr-aria-label="WHATSAPP.GO_TO_WHATSAPPQUEUES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="whatsappQueue-image" hide-xs>\n <img ng-src="assets/images/business/whatsappQueues.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.whatsappQueue.id}}\n <span ng-if="vm.whatsappQueue.name">{{vm.whatsappQueue.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="WHATSAPP.CREATED_AT"></span> <span>{{vm.whatsappQueue.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.teamadddialog(vm.whatsappQueue, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n <md-tooltip><span translate="WHATSAPP.TEAMADD_WHATSAPPQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.whatsappQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="WHATSAPP.AGENTADD_WHATSAPPQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-plus"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveWhatsappQueue()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="WHATSAPP.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="whatsappQueue-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="WHATSAPP.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.whatsappQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="WHATSAPP.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="WHATSAPP.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.whatsappQueue.strategy" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'beepall\'">Beepall</md-option>\n <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n </md-select>\n <div ng-messages="generalForm[\'strategy\'].$error" ng-show="generalForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.whatsappQueue.timeout" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'timeout\'].$error" ng-show="generalForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="WHATSAPP.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.whatsappQueue.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/whatsapp/views/whatsappQueues/whatsappQueues.html",'<div id="whatsappQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-whatsapp" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="WHATSAPP.WHATSAPPQUEUES">WhatsappQueues</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="WHATSAPP.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedWhatsappQueues.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedWhatsappQueues =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="WHATSAPP.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-whatsappQueues-count">\n <span>{{vm.selectedWhatsappQueues.length}}</span>\n <span translate="WHATSAPP.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="WHATSAPP.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllWhatsappQueues()" translate="WHATSAPP.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectWhatsappQueues()" translate="WHATSAPP.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedWhatsappQueues" csv-label="true" filename="whatsappQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedWhatsappQueues($event)" aria-label="delete selected" translate translate-attr-label="WHATSAPP.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- WHATSAPPQUEUE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedWhatsappQueues" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getWhatsappQueues">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'WHATSAPP.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'WHATSAPP.NAME\' | translate }}</th>\n <th md-column md-order-by="strategy">{{ \'WHATSAPP.STRATEGY\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.whatsappQueues.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="WHATSAPP.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="whatsappQueue" md-select-id="id" ng-repeat="whatsappQueue in vm.whatsappQueues.rows">\n <td md-cell ng-if="whatsappQueue.userpic"><img class="avatar" alt="{{whatsappQueue.name}}" ng-src="api/users/{{whatsappQueue.id}}/avatar" /></td>\n <td md-cell ng-if="!whatsappQueue.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{whatsappQueue.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappQueue, ev) : vm.createOrEditWhatsappQueue($event, whatsappQueue)" md-cell class="id ">{{whatsappQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappQueue, ev) : vm.createOrEditWhatsappQueue($event, whatsappQueue)" md-cell class="name ">{{whatsappQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappQueue, ev) : vm.createOrEditWhatsappQueue($event, whatsappQueue)" md-cell class="strategy ">{{ vm.arraystrategy[whatsappQueue.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="WHATSAPP.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(whatsappQueue, $event )" translate="WHATSAPP.EDIT_WHATSAPPQUEUE">\n Edit WhatsappQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(whatsappQueue, $event )" translate="WHATSAPP.TEAMADD_WHATSAPPQUEUE">\n teamadd WhatsappQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(whatsappQueue, $event )" translate="WHATSAPP.AGENTADD_WHATSAPPQUEUE">\n agentadd WhatsappQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(whatsappQueue, $event )" translate="WHATSAPP.DELETE_WHATSAPPQUEUE">\n Delete WhatsappQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(whatsappQueue, $event )" translate="WHATSAPP.GOTOREALTIME_WHATSAPPQUEUE">\n goToRealtime WhatsappQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'WHATSAPP.PAGE\' | translate}}:\', rowsPerPage: \'{{\'WHATSAPP.ROWSPERPAGE\' | translate}}:\', of: \'{{\'WHATSAPP.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.whatsappQueues.count}}" md-on-paginate="vm.getWhatsappQueues" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / WHATSAPPQUEUE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD WHATSAPPQUEUE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-whatsappQueue-button" ng-click="vm.createOrEditWhatsappQueue($event)" aria-label="add whatsappQueue" translate translate-attr-aria-label="WHATSAPP.ADD_WHATSAPPQUEUE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD WHATSAPPQUEUE BUTTON --\x3e\n</div>'),e.put("app/navigation/layouts/horizontal-navigation/navigation.html",'<div layout="row" layout-align="start center">\n <ms-navigation-horizontal></ms-navigation-horizontal>\n</div>'),e.put("app/navigation/layouts/vertical-navigation-fullwidth-toolbar-2/navigation.html",'<ms-navigation class="scrollable" folded="vm.folded" ms-scroll="vm.msScrollOptions"></ms-navigation>'),e.put("app/navigation/layouts/vertical-navigation/navigation.html",'<md-toolbar class="navigation-header md-whiteframe-1dp" layout="row" layout-align="space-between center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-image"><img src="/api/settings/1/logo" alt="logo" /></span>\n \x3c!-- <span class="logo-image"><img src="assets/images/logos/whisker_32x32.png" alt="motion_whisker_32x32" /></span> --\x3e\n <span class="logo-text text-truncate">{{vm.getLogo() | uppercase}}</span>\n </div>\n <md-icon class="fold-toggle s18" md-font-icon="icon-backburger" hide show-gt-sm ng-click="vm.toggleMsNavigationFolded()"></md-icon>\n</md-toolbar>\n\n<ms-navigation class="scrollable" folded="vm.folded" ms-scroll="vm.msScrollOptions"></ms-navigation>'),e.put("app/quick-panel/quick-panel.html",'<md-content>\n <md-tabs md-no-pagination md-swipe-content md-stretch-tabs="always">\n <md-tab>\n <md-tab-label>\n <span translate="QUICKPANEL.TODAY">TODAY</span>\n </md-tab-label>\n <md-tab-body>\n <md-content class="today-tab scrollable" ms-scroll ng-include="\'app/quick-panel/tabs/today/today-tab.html\'"></md-content>\n </md-tab-body>\n </md-tab>\n <md-tab ng-if="vm.currentUser.allowmessenger || vm.currentUser.role !== \'agent\'" ng-include="\'app/quick-panel/tabs/chat/chat-tab.html\'" ng-controller="ChatInternalController as vm_ct" ng-init="vm_ct.init(vm.license)" md-on-deselect="vm_ct.user = undefined">\n <md-tab-label>\n <div ng-if="vm.unreadTotalMessages" class="md-accent-bg unread-message-count-chat">{{vm.unreadTotalMessages}}</div>\n <span>MESSENGER</span>\n </md-tab-label>\n <md-tab-body>\n <md-content class="chat-tab scrollable" ms-scroll ng-include="\'app/quick-panel/tabs/chat/chat-tab.html\'"></md-content>\n </md-tab-body>\n </md-tab>\n <md-tab ng-if="vm.currentUser.allowmessenger || vm.currentUser.role !== \'agent\'" ng-include="\'app/quick-panel/tabs/groups/group-tab.html\'" ng-controller="ChatGroupController as vm_cg" ng-init="vm_cg.init(vm.license)" md-on-deselect="vm_cg.group = undefined">\n <md-tab-label>\n <div ng-if="vm.unreadTotalGroupMessages" class="md-accent-bg unread-message-count-chat">{{vm.unreadTotalGroupMessages}}</div>\n <span translate="QUICKPANEL.GROUPS">GROUPS</span>\n </md-tab-label>\n <md-tab-body>\n <md-content class="group-tab scrollable" ms-scroll ng-include="\'app/quick-panel/tabs/groups/group-tab.html\'"></md-content>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n</md-content>'),e.put("app/quick-panel/tabs/activity/activity-tab.html",'<md-list class="friends">\n <md-subheader class="md-no-sticky">\n <span translate="QUICKPANEL.FRIENDS">Friends</span>\n </md-subheader>\n\n <md-list-item class="friend md-3-line" ng-repeat="friend in vm.activities.friends">\n <img ng-src="{{friend.avatar}}" class="md-avatar" alt="{{friend.name}}" />\n\n <div class="status {{friend.status}}"></div>\n\n <div ng-if="contact.unread" class="md-accent-bg unread-message-count">{{contact.unread}}</div>\n\n <div class="md-list-item-text">\n <h3 class="message">{{friend.message}}</h3>\n <p class="time">{{friend.time}}</p>\n </div>\n </md-list-item>\n</md-list>\n\n<md-divider></md-divider>\n\n<md-list class="servers">\n <md-subheader class="md-no-sticky">\n <span translate="QUICKPANEL.APP_SERVERS">Application Servers</span>\n </md-subheader>\n\n <md-list-item class="server md-3-line" ng-repeat="server in vm.activities.servers">\n <md-icon md-font-icon="icon-checkbox-blank-circle" class="s16 status" ng-class="server.status"></md-icon>\n\n <div class="md-list-item-text">\n <h3>{{server.location}}</h3>\n <p>{{server.detail}}</p>\n </div>\n </md-list-item>\n</md-list>\n\n<md-divider></md-divider>\n\n<md-list class="stats">\n <md-subheader class="md-no-sticky">\n <span translate="QUICKPANEL.USER_STATS">User Stats</span>\n </md-subheader>\n\n <md-list-item class="stat md-2-line" ng-repeat="stat in vm.activities.stats">\n <div class="md-list-item-text">\n <span>{{stat.title}} ({{stat.current}} / {{stat.total}})</span>\n <md-progress-linear ng-class="stat.status" md-mode="determinate" value="{{stat.percent}}"></md-progress-linear>\n </div>\n </md-list-item>\n</md-list>'),e.put("app/quick-panel/tabs/chat/chat-tab.html",'<div class="main animate-slide-left" ng-hide="vm_ct.user">\n <md-subheader class="md-no-sticky">\n <div class="search" layout="row" layout-align="space-between center">\n <md-icon md-font-icon="icon-magnify" class="icon search-icon"></md-icon>\n <input class="search-input" ng-model="vm_ct.search.$" type="text" placeholder="Search by fullname.." translate translate-attr-placeholder="QUICKPANEL.SEARCH" flex>\n <md-select ng-model="vm_ct.search.online" class="height-50 no-padding no-margin" aria-label="Chat Tab Search">\n <md-option ng-value="undefined">All</md-option>\n <md-option ng-value="true">\n <md-icon md-font-icon="icon-checkbox-blank-circle" class="s12 green-fg"></md-icon>Online\n </md-option>\n <md-option ng-value="false">\n <md-icon md-font-icon="icon-checkbox-blank-circle" class="s12 red-fg"></md-icon>Offline\n </md-option>\n </md-select>\n </div>\n </md-subheader>\n \x3c!-- <select ng-model="vm_ct.filterOnline" class="height-50 no-padding no-margin">\n <option ng-value="undefined">All</option>\n <option ng-value="true"><md-icon md-font-icon="icon-checkbox-blank-circle" class="s12 green-fg"></md-icon>Online</option>\n <option ng-value="false"><md-icon md-font-icon="icon-checkbox-blank-circle" class="s12 red-fg"></md-icon>Offline</option>\n </select> --\x3e\n <md-divider></md-divider>\n <md-list class="recent">\n <md-list-item class="contact md-3-line" ng-if="user.id != vm_ct.currentUser.id" ng-repeat="user in vm_ct.users.rows | orderBy: \'-lastMessageAt\' | filter:vm_ct.search" ng-click="vm_ct.toggleChat(user)">\n <md-divider></md-divider>\n <img ng-src="{{user.userpic ? \'api/users/\' + user.id + \'/avatar\' : \'assets/images/avatars/profile.png\'}}" class="md-avatar" alt="{{user.fullname}}" />\n <div class="status" ng-class="{true: \'online\', false: \'offline\'}[user.online]"></div>\n <div ng-if="vm_ct.unreadMessage[user.id]" class="md-accent-bg unread-message-count">\n {{vm_ct.unreadMessage[user.id]}}</div>\n <div class="md-list-item-text">\n <div layout="row">\n <h3>{{user.fullname}}</h3>\n <md-icon ng-if="!user.allowmessenger && user.role === \'agent\'" class="s16 margin-left-5" ng-style="{\'color\': \'red\' }" md-font-icon="icon-block-helper"></md-icon>\n </div>\n <p>{{user.name}} <{{user.internal}}></p>\n <div layout="row" layout-align="start center">\n <md-icon ng-if="!user.lastMessage.read && user.lastMessage.FromId === vm_ct.currentUser.id" class="s16 no-margin" md-font-icon="icon-check"></md-icon>\n <md-icon ng-if="user.lastMessage.read && user.lastMessage.FromId === vm_ct.currentUser.id" class="s16 no-margin" md-font-icon="icon-check-all md-accent"></md-icon>\n <p>{{user.lastMessage.body | limitTo:20 }}{{user.lastMessage.body.length > 20 ? \'...\' : \'\' }}</p>\n <span flex></span>\n <p class="last-message" ng-if="user.lastMessageAt != vm_ct.standardDate">\n {{user.lastMessageAt | formatdate}}</p>\n </div>\n </div>\n </md-list-item>\n </md-list>\n</div>\n\n<div class="chat animate-slide-right" ng-show="vm_ct.user" layout="column">\n <md-toolbar class="md-accent">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n\n <div layout="row" layout-align="start center">\n <md-button class="md-icon-button" ng-click="vm_ct.toggleChat()" aria-label="Back" translate translate-attr-aria-label="QUICKPANEL.BACK">\n <md-icon md-font-icon="icon-keyboard-backspace"></md-icon>\n </md-button>\n <h4>\n <span>{{vm_ct.user.fullname}}</span>\n </h4>\n </div>\n\n <div layout="row" layout-align="end center">\n <md-button ng-if="vm_ct.license.webrtc && vm_ct.currentUser.role === \'agent\' && vm_ct.currentUser.showWebBar === 2 && vm_ct.user.role === \'agent\'" class="md-icon-button" aria-label="Call" translate translate-attr-aria-label="QUICKPANEL.CALL" ng-click="vm_ct.webcall(vm_ct.user.name)">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n <md-menu ng-if="vm_ct.currentUser.phoneBarRemoteControl && vm_ct.currentUser.role === \'agent\' && vm_ct.currentUser.showWebBar === 0 && vm_ct.user.role === \'agent\'">\n <md-button class="md-icon-button" aria-label="Call" translate translate-attr-aria-label="QUICKPANEL.CALL" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-disabled="!vm_ct.currentUser.phoneBarRemoteControl">\n <md-button ng-click="vm_ct.call(vm_ct.user.name)">\n {{\'DASHBOARDS.CALL_NUMBER\' | translate}} ({{vm_ct.user.name}})\n </md-button>\n </md-menu-item>\n <md-menu-item ng-disabled="!vm_ct.currentUser.phoneBarRemoteControl">\n <md-button ng-click="vm_ct.transfer(vm_ct.user.name)">\n {{\'DASHBOARDS.TRANSFER_NUMBER\' | translate}} ({{vm_ct.user.name}})\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </div>\n\n </md-toolbar>\n <md-content flex layout-paddings ms-scroll id="chat-dialog">\n <div layout="row" ng-repeat="message in vm_ct.user.messages.rows" class="md-padding message-row" ng-class="message.FromId === vm_ct.currentUser.id ? \'user\' : \'contact\'">\n <img ng-if="message.FromId === vm_ct.user.id" ng-src="{{vm_ct.user.userpic ? \'api/users/\' + vm_ct.user.id + \'/avatar\' : \'assets/images/avatars/profile.png\'}}" class="avatar" alt="{{vm_ct.user.fullname}}" />\n <img ng-if="message.FromId === vm_ct.currentUser.id" class="avatar" ng-src="{{vm_ct.currentUser.userpic ? \'api/users/\' + vm_ct.currentUser.id + \'/avatar\' : \'assets/images/avatars/profile.png\'}}">\n <div class="bubble" flex>\n <span class="message" ng-bind-html="message.body | embed:{linkTarget:\'_blank\',emoji:false,fontSmiley:false}"></span>\n <div layout="row" layout-align="end center">\n <span class="time secondary-text">{{message.createdAt | formatdate }}</span>\n <md-icon ng-if="!message.read && message.FromId === vm_ct.currentUser.id" class="s16 margin-5" md-font-icon="icon-check"></md-icon>\n <md-icon ng-if="message.read && message.FromId === vm_ct.currentUser.id" class="s16 margin-5" md-font-icon="icon-check-all md-accent"></md-icon>\n </div>\n </div>\n </div>\n </md-content>\n\n <form ng-submit="vm_ct.reply()" layout="row" class="reply" layout-align="start center">\n <textarea ng-keyup="$event.keyCode == 13 && !vm_ct.disabled? vm_ct.reply() : null" flex ng-model="vm_ct.replyMessage" placeholder="Type and hit enter to send message" translate translate-attr-placeholder="QUICKPANEL.REPLY_PLACEHOLDER" autofocus></textarea>\n\n <md-button ng-disable="vm_ct.disabled" class="md-fab md-mini" type="submit" aria-label="Send message" translate translate-attr-aria-label="QUICKPANEL.SEND_MESSAGE">\n <md-icon md-font-icon="icon-send"></md-icon>\n </md-button>\n </form>\n</div>'),e.put("app/quick-panel/tabs/groups/create/dialog.html",'<md-dialog class="group-dialog" aria-label="New ChatGroup">\n <form name="groupForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog(null)">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n \x3c!--START Error--\x3e\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n \x3c!--END Error--\x3e\n\n \x3c!--START NAME--\x3e\n <md-input-container class="md-block">\n <label translate="QUICKPANEL.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.group.name" required autofocus>\n <div ng-messages="groupForm[\'name\'].$error" ng-show="groupForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="QUICKPANEL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="QUICKPANEL.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n \x3c!--END NAME--\x3e\n\n \x3c!--START Members--\x3e\n <md-input-container class="md-block">\n <label translate="QUICKPANEL.MEMBERS">Members</label>\n <md-contact-chips ng-model="vm.group.members" md-contacts="vm.querySearch($query)" md-contact-name="name" md-contact-image="image" md-require-match="true" md-highlight-flags="i" placeholder="{{\'QUICKPANEL.MEMBERS\' | translate}}">\n </md-contact-chips>\n <div ng-messages="groupForm[\'strategy\'].$error" ng-show="groupForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="QUICKPANEL.ERRORS.MEMBERS_REQUIRED">Members field is required</span>\n </div>\n </div>\n </md-input-container>\n \x3c!--END Members--\x3e\n\n \x3c!--START Writing--\x3e\n <md-input-container class="md-block">\n <md-switch ng-model="vm.group.write" aria-label="Write">\n {{\'QUICKPANEL.ENABLE_WRITING\' | translate}}\n </md-switch>\n </md-input-container>\n \x3c!--END Writing--\x3e\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.newChatGroup" ng-click="vm.saveChatGroup()" class="send-button md-accent md-raised" ng-disabled="groupForm.$invalid || groupForm.$pristine || (vm.group.members.length < 1)" aria-label="SAVE" translate="QUICKPANEL.SAVE" translate-attr-aria-label="QUICKPANEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/quick-panel/tabs/groups/group-tab.html",'<div class="main animate-slide-left" ng-if="!vm_cg.group">\n <md-subheader>\n <div layout="row">\n \x3c!-- START Search --\x3e\n <div class="search" layout="row" layout-align="start center" flex>\n <md-icon md-font-icon="icon-magnify" class="icon search-icon"></md-icon>\n <input ng-model="vm_cg.search" type="text" translate translate-attr-placeholder="QUICKPANEL.SEARCH" flex>\n </div>\n \x3c!-- END Search --\x3e\n\n \x3c!-- START New Group --\x3e\n <md-button ng-if="vm_cg.currentUser.role !== \'agent\'" class="md-icon-button" aria-label="New" ng-click="vm_cg.addGroup(null, $event)">\n <md-icon md-font-icon="icon-account-multiple-plus" class="icon"></md-icon>\n </md-button>\n \x3c!-- END New Group --\x3e\n </div>\n </md-subheader>\n\n <md-divider></md-divider>\n\n \x3c!-- START Groups --\x3e\n <md-list class="recent no-padding">\n \x3c!-- START Group --\x3e\n <md-list-item class="contact" ng-repeat="group in vm_cg.groupsToArray() | filter:vm_cg.search" ng-click="vm_cg.toggleChat(group)">\n <img src="assets/images/avatars/group.png" class="md-avatar" alt="{{group.name}}" />\n <div ng-if="group.unreadGroupMessages" class="md-accent-bg unread-message-count">{{group.unreadGroupMessages}}</div>\n <div class="md-list-item-text">\n <div layout="row">\n <h3>{{group.name}}</h3>\n </div>\n </div>\n\n <md-button ng-if="vm_cg.currentUser.role !== \'agent\'" class="md-secondary md-icon-button" aria-label="Remove" ng-click="vm_cg.deleteGroup(group, $event)">\n <md-icon md-font-icon="icon-delete" class="icon s18"></md-icon>\n </md-button>\n\n <md-divider ng-if="!$last"></md-divider>\n </md-list-item>\n <md-list-item>\n <div ng-if="!vm_cg.groupsToArray().length" layout="row" layout-align="center center" flex>\n <span>{{\'QUICKPANEL.NO_AVAILABLE_GROUPS\' | translate}}</span>\n </div>\n </md-list-item>\n \x3c!-- END Group --\x3e\n </md-list>\n \x3c!-- END Groups --\x3e\n</div>\n\n<div class="chat animate-slide-right" ng-if="vm_cg.group" layout="column">\n <md-toolbar class="md-accent">\n <div class="md-toolbar-tools " layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="vm_cg.back()" aria-label="Back" translate translate-attr-aria-label="QUICKPANEL.BACK" flex="15">\n <md-icon md-font-icon="icon-keyboard-backspace"></md-icon>\n </md-button>\n <h4 flex layout-align="start center" style="max-height: 100%; overflow-y:auto;">\n <span translate="QUICKPANEL.YOU" translate-values=\'{participants: vm_cg.participants}\'></span>\n </h4>\n\n <div layout="row" layout-align="end center">\n <md-button ng-if="vm_cg.license.webrtc && vm_cg.currentUser.role === \'agent\' && vm_cg.currentUser.showWebBar === 2 && vm_cg.user.role === \'agent\' && vm_cg.user.showWebBar === 2" class="md-icon-button" aria-label="Call" translate translate-attr-aria-label="QUICKPANEL.CALL" ng-click="vm_cg.webcall(vm_cg.user.name)">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n </div>\n </div>\n\n </md-toolbar>\n <md-content flex layout-paddings ms-scroll id="chat-group-dialog">\n <div layout="row" ng-repeat="message in vm_cg.group.messages" class="message-row" ng-class="message.FromId === vm_cg.currentUser.id ? \'user\' : \'contact\'">\n <img ng-if="message.FromId !== vm_cg.currentUser.id" ng-src="{{\'api/users/\' + message.FromId + \'/avatar\'}}" class="avatar" alt="{{vm_cg.user.fullname}}" />\n <img ng-if="message.FromId === vm_cg.currentUser.id" class="avatar" ng-src="{{vm_cg.currentUser.userpic ? \'api/users/\' + vm_cg.currentUser.id + \'/avatar\' : \'assets/images/avatars/profile.png\'}}">\n <div class="bubble" flex>\n <div ng-if="message.FromId !== vm_cg.currentUser.id">\n <span style="font-size: 12px;">{{vm_cg.group.membersByKeys[message.FromId].fullname}}</span>\n </div>\n <span class="message" ng-bind-html="message.body | embed:{linkTarget:\'_blank\',emoji:false,fontSmiley:false}"></span>\n <div layout="row" layout-align="end center">\n <span class="time secondary-text" style="margin-top: 0px;">{{message.createdAt | formatdate }}</span>\n <md-icon ng-if="message.FromId === vm_cg.currentUser.id" class="s16 margin-5" style="cursor: pointer;" md-font-icon="icon-information-outline" ng-click="vm_cg.showMessageInfo($event, message)"></md-icon>\n </div>\n </div>\n </div>\n </md-content>\n\n <form ng-if="(vm_cg.currentUser.role !== \'agent\') || vm_cg.group.write" ng-submit="vm_cg.reply()" layout="row" class="reply" layout-align="start center">\n <textarea ng-keyup="$event.keyCode == 13 ? vm_cg.reply() : null" flex ng-model="vm_cg.replyMessage" placeholder="Type and hit enter to send message" translate translate-attr-placeholder="QUICKPANEL.REPLY_PLACEHOLDER" autofocus></textarea>\n\n <md-button class="md-fab md-mini" type="submit" aria-label="Send message" translate translate-attr-aria-label="QUICKPANEL.SEND_MESSAGE">\n <md-icon md-font-icon="icon-send"></md-icon>\n </md-button>\n </form>\n</div>'),e.put("app/quick-panel/tabs/groups/info/dialog.html",'<md-dialog class="group-dialog" aria-label="New ChatGroup">\n <form name="groupForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog(null)">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div ng-if="vm.data.messages[$index].FromId !== vm.data.messages[$index].ToId" ng-repeat="user in vm.data.users" layout-margin>\n <div layout="row">\n <div layout="row" layout-align="start center">\n <img ng-src="{{user.userpic ? \'api/users/\' + user.id + \'/avatar\' : \'assets/images/avatars/profile.png\'}}" class="avatar" alt="{{user.fullname}}" />\n <span>{{user.fullname}}</span>\n </div>\n <div layout="row" layout-align="end center" flex>\n <md-icon class="s16 margin-5" md-font-icon="{{vm.data.messages[$index].read ? \'icon-check-all md-accent\' : \'icon-check\'}}"></md-icon>\n <span class="time secondary-text">{{vm.data.messages[$index].updatedAt | formatdate }}</span>\n </div>\n </div>\n <div>\n <md-divider ng-if="!$last"></md-divider>\n </div>\n </div>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/quick-panel/tabs/today/today-tab.html",'<md-list class="date">\n <md-subheader class="md-no-sticky"><span translate="QUICKPANEL.TODAY">Today</span></md-subheader>\n <md-list-item class="md-display-1 md-2-line">\n <div class="secondary-text">\n <div translate="QUICKPANEL.{{ (vm.date | date:\'EEEE\').toUpperCase() }}"></div>\n <div layout="row" layout-align="start start">\n <span> {{vm.date | date:\'d\'}}</span>\n <span class="md-subhead">th</span>\n <span translate="QUICKPANEL.{{ (vm.date | date:\'MMMM\').toUpperCase() }}"></span>\n </div>\n </div>\n </md-list-item>\n</md-list>\n\n\x3c!-- <md-divider></md-divider>\n\n<md-list>\n <md-subheader class="md-no-sticky"><span translate="QUICKPANEL.EVENTS">Events</span></md-subheader>\n\n <md-list-item class="md-2-line" ng-repeat="event in vm.events" ng-click="dummyFunction()">\n <div class="md-list-item-text">\n <h3>{{event.title}}</h3>\n\n <p>{{event.detail}}</p>\n </div>\n </md-list-item>\n</md-list>\n\n<md-divider></md-divider>\n\n<md-list>\n <md-subheader class="md-no-sticky"><span translate="QUICKPANEL.NOTES">Notes</span></md-subheader>\n <md-list-item class="md-2-line" ng-repeat="note in vm.notes" ng-click="dummyFunction()">\n <div class="md-list-item-text">\n <h3>{{note.title}}</h3>\n\n <p>{{note.detail}}</p>\n </div>\n </md-list-item>\n</md-list>\n\n<md-divider></md-divider>\n\n<md-list>\n <md-subheader class="md-no-sticky"><span translate="QUICKPANEL.QUICK_SETTINGS">Quick Settings</span></md-subheader>\n\n <md-list-item>\n <h3 translate="QUICKPANEL.NOTIFICATIONS">Notifications</h3>\n <md-switch class="md-secondary" ng-model="vm.settings.notify" aria-label="Notifications" translate\n translate-attr-aria-label="QUICKPANEL.NOTIFICATIONS"></md-switch>\n </md-list-item>\n\n <md-list-item>\n <h3 translate="QUICKPANEL.CLOUD_SYNC">Cloud Sync</h3>\n <md-switch class="md-secondary" ng-model="vm.settings.cloud" aria-label="Cloud Sync" translate\n translate-attr-aria-label="QUICKPANEL.CLOUD_SYNC"></md-switch>\n </md-list-item>\n\n <md-list-item>\n <h3 translate="QUICKPANEL.RETRO_THRUSTERS">Retro Thrusters</h3>\n <md-switch class="md-secondary md-warn" ng-model="vm.settings.retro" aria-label="Retro Thrusters" translate\n translate-attr-aria-label="QUICKPANEL.RETRO_THRUSTERS"></md-switch>\n </md-list-item>\n</md-list> --\x3e'),e.put("app/reset/reset.html",'<div id="reset-password" class="flex-scrollable" layout="column" ng-init="vm.onInit()" ms-scroll>\n <div id="reset-password-form-wrapper" layout="column" layout-align="center center">\n <div id="reset-password-form" class="md-whiteframe-8dp">\n\n <img src="/api/settings/1/logo_login" alt="logo_login" class="logo_login" />\n\n <div class="title" translate="RESETPASSWORD.TITLE">Reset your password</div>\n\n <form name="resetPasswordForm" novalidate>\n\n <md-input-container class="md-block" md-no-float>\n <input type="password" name="password" ng-model="vm.form.password" ng-pattern="vm.passwordPattern" placeholder="Password" translate translate-attr-placeholder="RESETPASSWORD.PASSWORD" required>\n <div ng-messages="resetPasswordForm.password.$error" role="alert">\n <div ng-message="required">\n <span translate="RESETPASSWORD.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="RESETPASSWORD.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" md-no-float>\n <input type="password" name="passwordConfirm" ng-model="vm.form.passwordConfirm" placeholder="Password (Confirm)" match-password="password" translate translate-attr-placeholder="RESETPASSWORD.PASSWORD_CONFIRM">\n <div ng-messages="resetPasswordForm.passwordConfirm.$error" role="alert">\n <div ng-message="passwordMatch">\n <span translate="TOOLBAR.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n </div>\n </div>\n </md-input-container>\n\n <md-button type="button" ng-click="vm.resetPassword()" class="md-raised md-accent submit-button" aria-label="UPDATE MY PASSWORD" ng-disabled="resetPasswordForm.$invalid || resetPasswordForm.$pristine" translate="RESETPASSWORD.UPDATE_PASSWORD" translate-attr-aria-label="RESETPASSWORD.UPDATE_PASSWORD">\n RESET MY PASSWORD\n </md-button>\n </form>\n </div>\n </div>\n</div>'),e.put("app/toolbar/changepassword/changepassword.html",'<md-dialog class="user-dialog" aria-label="{{vm.name}}">\n <form name="changePasswordForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span ng-if="vm.reset" class="title" translate="TOOLBAR.RESETPASSWORD">Reset Password</span>\n <span ng-if="!vm.reset" class="title" translate="TOOLBAR.CHANGEPASSWORD">Change Password</span>\n <md-button ng-if="!vm.reset" class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLBAR.OLD_PASSWORD">Old Password</label>\n <input type="password" name="oldPassword" ng-model="vm.oldPassword" placeholder="Password" translate translate-attr-placeholder="TOOLBAR.OLD_PASSWORD" required>\n <div ng-messages="changePasswordForm.oldPassword.$error" role="alert">\n <div ng-message="required">\n <span translate="TOOLBAR.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLBAR.NEW_PASSWORD">New Password</label>\n <input type="password" name="password" ng-model="vm.password" placeholder="Password" ng-pattern="vm.passwordPattern" translate translate-attr-placeholder="TOOLBAR.NEW_PASSWORD" required>\n <div ng-messages="changePasswordForm.password.$error" role="alert">\n <div ng-message="required">\n <span translate="TOOLBAR.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="TOOLBAR.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n <div ng-message="oldPasswordMatch">\n <span translate="TOOLBAR.ERRORS.PASSWORD_OLDPASSWORD_MATCH">New password must be different from old one</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLBAR.CONFIRM_PASSWORD">Confirm Password</label>\n <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n <div ng-messages="changePasswordForm.confirmPassword.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="TOOLBAR.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n </div>\n <div ng-message="passwordMatch">\n <span translate="TOOLBAR.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n </div>\n </div>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.savePassword()" class="send-button md-accent md-raised" ng-disabled="changePasswordForm.$invalid || changePasswordForm.$pristine" aria-label="SAVE" translate="TOOLBAR.SAVE" translate-attr-aria-label="TOOLBAR.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/toolbar/layouts/vertical-navigation/toolbar.html",'<div layout="row" layout-align="start center">\n <div layout="row" layout-align="start center" flex>\n <md-button id="navigation-toggle" class="md-icon-button" ng-click="vm.toggleSidenav(\'navigation\')" hide-gt-sm aria-label="Toggle navigation" translate translate-attr-aria-label="TOOLBAR.TOGGLE_NAVIGATION">\n <md-icon md-font-icon="icon-menu" class="icon"></md-icon>\n </md-button>\n\n <ms-shortcuts ng-if="!vm.isAgent()"></ms-shortcuts>\n\n <div class="toolbar-separator"></div>\n\n <div ng-if="vm.license.demo" class="blink md-padding">\n <span class="md-warn-fg" translate="TOOLBAR.TRIAL_VERSION">Trial Version</span>\n </div>\n\n <div ng-if="vm.isAgent()" class="logo" layout-padding-left-8 layout="row" layout-align="start center">\n <span class="logo-image"><img src="/api/settings/1/logo" alt="logo" /></span>\n <span ng-show="vm.isAgent() && (vm.user.showWebBar != 2)" class="logo-text text-truncate">{{ vm.getLogo() |\n uppercase }}</span>\n </div>\n\n \x3c!-- phonebar directive WebRtc type--\x3e\n <ms-phonebar class="ms-phonebar" ng-if="vm.isAgent() && (vm.user.showWebBar == 2)" conf="vm.conf" sessions="vm.webRTCSessions" flex></ms-phonebar>\n \x3c!-- phonebar directive --\x3e\n </div>\n\n <div layout="row" layout-align="start center">\n\n <md-progress-circular id="toolbar-progress" ng-if="$root.loadingProgress" class="md-accent" md-diameter="32">\n </md-progress-circular>\n\n \x3c!-- Pause Management --\x3e\n <div ng-if="vm.isAgent() && (vm.user.showWebBar != 0)" layout="row" layout-align="end center">\n <div class="toolbar-separator"></div>\n\n <div class="border brad-5" layout="row" layout-align="center center" layout-margin>\n <md-button ng-if="vm.user.voicePause" class="md-icon-button no-margin" ng-click="vm.unpause()">\n <md-icon md-font-icon="icon-play-circle-outline" class="icon s24"></md-icon>\n <md-tooltip md-direction="bottom">{{\'TOOLBAR.RESUME\' | translate}}</md-tooltip>\n </md-button>\n\n <md-button ng-disabled="vm.user.voicePause && \'DEFAULT PAUSE\' === vm.user.pauseType" class="md-icon-button no-margin" ng-click="vm.pause()">\n <md-icon md-font-icon="icon-pause-circle-outline" class="icon s24"></md-icon>\n <md-tooltip md-direction="bottom">{{\'TOOLBAR.PAUSE\' | translate}}</md-tooltip>\n </md-button>\n\n <md-menu>\n <md-button aria-label="Pauses" class="md-icon-button no-margin" ng-click="$mdOpenMenu($event)">\n <md-icon md-menu-origin md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="4">\n <md-menu-item ng-if="!vm.pauses.length">\n <md-button disabled="disabled">\n <md-icon md-font-icon="icon-pause-octagon" md-menu-align-target></md-icon>\n {{\'TOOLBAR.NO_PAUSES_AVAILABLE\' | translate}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-repeat="pause in vm.pauses">\n <md-button ng-disabled="vm.user.voicePause && pause.name === vm.user.pauseType" ng-click="vm.pause(pause.name)">\n <md-icon md-font-icon="icon-pause-circle" md-menu-align-target></md-icon>\n {{pause.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </div>\n \x3c!-- Pause Management --\x3e\n\n <div class="h5 padding-10" ng-if="vm.isAgent() && (vm.user.showWebBar != 0)">\n <div layout="row" layout-align="space-between center">\n <timer ng-if="vm.user.lastLoginAt" start-time="vm.user.lastLoginAt"></timer>\n <md-tooltip>{{\'TOOLBAR.LOGIN_TIME\' | translate}}</md-tooltip>\n <md-icon md-font-icon="icon-timelapse" class="icon s16"></md-icon>\n </div>\n <div layout="row" layout-align="center center" ng-if="vm.user.voicePause">\n <timer start-time="vm.user.lastPauseAt"></timer>\n <md-tooltip>{{\'TOOLBAR.PAUSE_TIME\' | translate}}</md-tooltip>\n <md-icon md-font-icon="icon-coffee" class="icon s16"></md-icon>\n </div>\n <div ng-if="vm.user.voicePause">\n <span class="blink red-fg">{{vm.user.pauseType || \'default\' | uppercase}}</span>\n </div>\n </div>\n\n <div class="toolbar-separator" ng-if="vm.isAgent() && (vm.user.showWebBar != 0)"></div>\n\n <md-menu-bar id="user-menu">\n <md-menu md-position-mode="left bottom">\n <md-button class="user-button" ng-click="$mdOpenMenu()" aria-label="User settings" translate translate-attr-aria-label="TOOLBAR.USER_SETTINGS">\n <div layout="row" layout-align="space-between center">\n <div class="avatar-wrapper">\n <img md-menu-align-target class="avatar" src="assets/images/avatars/profile.png" ng-if="!vm.user.userpic">\n <img md-menu-align-target class="avatar" ng-src="api/users/{{vm.user.id}}/avatar" ng-if="vm.user.userpic">\n <md-icon md-font-icon ng-class="vm.userStatus.icon" ng-style="{\'color\': vm.userStatus.color }" class="icon status s16"></md-icon>\n </div>\n <div layout="column" layout-align="center center" class="padding-horizontal-5">\n <span class="font-size-14 md-subhead">{{vm.user.fullname}}</span>\n <span class="font-size-12 md-subhead">{{vm.user.name}} <{{vm.user.internal}}></span>\n </div>\n\n <md-icon md-font-icon="icon-chevron-down" class="icon s16" hide-xs></md-icon>\n </div>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm.user.showWebBar == 2 && vm.user.phoneBarEnableSettings" class="md-indent">\n <md-icon md-font-icon="icon-cog" class="icon"></md-icon>\n <md-button ng-click="vm.openSettings($event)" ng-disabled="!vm.license.webrtc"><span translate="TOOLBAR.SETTINGS">SETTINGS</span></md-button>\n </md-menu-item>\n\n <md-menu-item class="md-indent">\n <md-icon md-font-icon="icon-key-variant" class="icon"></md-icon>\n <md-button ng-click="vm.changePassword($event)"><span translate="TOOLBAR.CHANGEPASSWORD">Change\n Password</span></md-button>\n </md-menu-item>\n\n <md-menu-divider></md-menu-divider>\n\n <md-menu-item class="md-indent">\n <md-icon md-font-icon="icon-logout" class="icon"></md-icon>\n <md-button ng-click="vm.logout()">Logout</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-bar>\n\n <div class="toolbar-separator"></div>\n\n <md-button ng-if="vm.user.role === \'agent\' && vm.license.dialer" class="preview-button no-margin" ng-disabled="vm.disable" ng-click="vm.preview($event)" aria-label="Language" md-menu-origin md-menu-align-target>\n <div ng-if="vm.contacts" class="md-accent-bg open-contact-count">{{vm.contacts > 99 ? \'99+\' : vm.contacts}}</div>\n <md-icon md-font-icon="icon-fire" class="icon red-900-fg"></md-icon>\n <md-tooltip><span translate="TOOLBAR.PREVIEW">Preview</span></md-tooltip>\n </md-button>\n\n <ms-search-bar ng-if="vm.user.role !== \'agent\'" on-search="vm.search(query)" on-result-click="vm.searchResultClick(item)" debounce="300" collapse-on-blur="true"></ms-search-bar>\n\n <md-menu id="language-menu" md-offset="0 72" md-position-mode="target-right target" layout="column" layout-align="center center">\n <md-button class="md-icon-button no-margin" ng-click="$mdOpenMenu()" aria-label="Language" md-menu-origin md-menu-align-target>\n <div layout="row" layout-align="center center">\n <img class="flag" ng-src="assets/images/flags/{{vm.selectedLanguage.flag}}.png">\n </div>\n </md-button>\n\n <md-menu-content width="3" id="language-menu-content">\n <md-menu-item ng-repeat="(iso, lang) in vm.languages">\n <md-button ng-click="vm.changeLanguage(lang)" aria-label="{{lang.title}}" translate translate-attr-aria-label="{{lang.title}}">\n <span layout="row" layout-align="start center">\n <img class="flag flag-24" ng-src="assets/images/flags/{{lang.flag}}.png">\n <span>{{ lang.translation | translate | startcase }}</span>\n </span>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n\n <div class="toolbar-separator"></div>\n\n <md-button ng-if="vm.license.gray && vm.user.role !== \'agent\'" class="md-icon-button" ui-sref="app.settings.license" aria-label="Toggle quick panel">\n <md-icon md-font-icon="icon-alert" class="icon md-warn blink"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.gray && vm.user.role === \'agent\'" class="md-icon-button" aria-label="Toggle quick panel">\n <md-icon md-font-icon="icon-alert" class="icon md-warn blink"></md-icon>\n </md-button>\n\n <div ng-if="vm.license.gray" class="toolbar-separator"></div>\n\n <md-button id="quick-panel-toggle" class="md-icon-button" ng-click="vm.toggleSidenav(\'quick-panel\')" aria-label="Toggle quick panel" translate translate-attr-aria-label="TOOLBAR.TOGGLE_QUICK_PANEL">\n <div ng-if="(vm.unreadTotalMessages + vm.unreadTotalGroupMessages)" class="md-accent-bg unread-message-count">\n {{vm.unreadTotalMessages + vm.unreadTotalGroupMessages}}</div>\n <md-icon md-font-icon="icon-format-list-bulleted" class="icon"></md-icon>\n </md-button>\n </div>\n</div>'),e.put("app/toolbar/preview/dialog.html",'<md-dialog class="preview-dialog" aria-label="preview">\n <form name="previewForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ (\'TOOLBAR.PREVIEW\' | translate) + (vm.preview.recallme ? \' - \' +\n (\'CONTACTMANAGER.RECALLME\' | translate | uppercase) : \'\') }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div ng-if="vm.preview">\n <div ng-if="vm.preview.recallme" layout="row" class="recall-me-info">\n <md-icon md-font-icon="icon-information-outline" aria-label="Recall Me"></md-icon>\n <p class="ml-5" translate="TOOLBAR.HELP.PREVIEW_RECALLME" translate-values="{ date: (vm.preview.scheduledat | date:\'short\') }" flex></p>\n </div>\n <div layout="row">\n <div class="md-padding md-margin" layout="column" flex="30">\n <md-input-container ng-if="vm.preview.Contact.id" class="md-block no-margin">\n <label translate="CONTACTMANAGER.ID">ID</label>\n <input type="text" ng-model="vm.preview.Contact.id" disabled="true">\n </md-input-container>\n <md-input-container ng-if="vm.preview.Queue.name" class="md-block no-margin">\n <label translate="VOICE.QUEUE">Queue</label>\n <input type="text" ng-model="vm.preview.Queue.name" disabled="true">\n </md-input-container>\n <md-input-container ng-if="vm.preview.List.name" class="md-block no-margin">\n <label translate="CONTACTMANAGER.LIST">List</label>\n <input type="text" ng-model="vm.preview.List.name" disabled="true">\n </md-input-container>\n <md-input-container ng-if="vm.preview.Contact.tags && vm.preview.Contact.tags.length" class="md-block no-margin">\n <label translate="CONTACTMANAGER.TAGS">Tags</label>\n <input type="text" ng-model="vm.preview.Contact.tags" disabled="true">\n </md-input-container>\n <md-input-container ng-if="vm.preview.Contact.Company && vm.preview.Contact.Company.name" class="md-block no-margin">\n <label translate="CONTACTMANAGER.COMPANY">Company</label>\n <input type="text" ng-model="vm.preview.Contact.Company.name" disabled="true">\n </md-input-container>\n </div>\n <md-divider></md-divider>\n <div class="md-padding md-margin" layout="column" flex="35">\n <md-input-container ng-repeat="(key, value) in vm.preview.Contact" ng-if="!vm.isNil(value) && !vm.isCustomField(key) && !vm.isHiddenField(key)" class="md-block no-margin">\n <label>{{ \'CONTACTMANAGER.\' + key.toUpperCase() | translate}}</label>\n <input type="text" ng-model="value" disabled="true">\n </md-input-container>\n </div>\n <div class="md-padding md-margin" layout="column" flex="35">\n <md-input-container ng-repeat="(key, value) in vm.preview.Contact" ng-if="!vm.isNil(value) && vm.isCustomField(key) && !vm.isHiddenField(key)" class="md-block no-margin">\n <label>{{ vm.customFieldsMap[key] || key }}</label>\n <input type="text" ng-model="value" disabled="true">\n </md-input-container>\n </div>\n </div>\n </div>\n <div layout="row" ng-if="!vm.preview">\n <span>no contacts available</span>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions class="md-dialog-action-center padding-rigth-15">\n <md-button class="md-icon-button md-primary" ng-hide="vm.hopperIds.length <= 1" ng-disabled="vm.disableGetContact" ng-click="vm.previousContact()" aria-label="PREVIOUSCONTACT" translate-attr-aria-label="TOOLS.PREVIOUSCONTACT">\n <md-icon md-font-icon="icon-chevron-left"></md-icon>\n </md-button>\n <md-button class="md-fab green-bg" aria-label="CALL" translate-attr-aria-label="TOOLS.CALL" ng-disabled="vm.disable" ng-click="vm.originatePreview($event)">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n <md-button class="md-icon-button md-primary" ng-disabled="vm.disableGetContact" ng-click="vm.nextContact()" aria-label="NEXTCONTACT" translate-attr-aria-label="TOOLS.NEXTCONTACT">\n <md-icon md-font-icon="icon-chevron-right"></md-icon>\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>')}]);
\ No newline at end of file
+!function(){"use strict";angular.module("app.auth",[])}(),function(){"use strict";angular.module("app.core",["ngAnimate","ngAria","ngCookies","ngMessages","ngResource","ngSanitize","ngMaterial","pascalprecht.translate","ui.router","ui.router.state.events","gridster","ds.clock","angucomplete-alt"])}(),function(){"use strict";function e(e,n){e.state("app.errors_error-404",{url:"/errors/error-404",views:{"main@":{templateUrl:"app/core/layouts/content-only.html",controller:"MainController as vm"},"content@app.errors_error-404":{templateUrl:"app/errors/404/error-404.html",controller:"Error404Controller as vm"}},params:{status:404,statusText:"",data:{},config:{}},bodyClass:"error-404"}),n.addPart("app/errors/404")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.errors.error-404",[]).config(e)}(),function(){"use strict";function e(e,n){e.state("app.errors_error-500",{url:"/errors/error-500",views:{"main@":{templateUrl:"app/core/layouts/content-only.html",controller:"MainController as vm"},"content@app.errors_error-500":{templateUrl:"app/errors/500/error-500.html",controller:"Error500Controller as vm"}},params:{status:500,statusText:"",data:{},config:{}},bodyClass:"error-500"}),n.addPart("app/errors/500")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.errors.error-500",[]).config(e)}(),function(){"use strict";angular.module("app.errors",["app.errors.error-404","app.errors.error-500"])}(),function(){"use strict";function e(e){e.addPart("app/footer")}e.$inject=["$translatePartialLoaderProvider"],angular.module("app.footer",[]).config(e)}(),function(){"use strict";function e(e,n){e.state("app.forgot",{url:"/forgot",views:{"main@":{templateUrl:"app/core/layouts/content-only.html",controller:"MainController as vm"},"content@app.forgot":{templateUrl:"app/forgot/forgot.html",controller:"ForgotPasswordController as vm"}},bodyClass:"forgot"}),n.addPart("app/forgot")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.forgot",[]).config(e)}(),function(){"use strict";function e(e){e.addPart("app/header")}e.$inject=["$translatePartialLoaderProvider"],angular.module("app.header",[]).config(e)}(),function(){"use strict";angular.module("motion",["angular-toasty","app.core","app.auth","app.navigation","app.toolbar","app.quick-panel","app.header","app.footer","app.realtime","app.dashboards","app.staff","app.contactmanager","app.voice","app.chat","app.mail","app.sms","app.openchannel","app.fax","app.tools","app.callysquare","app.analytics","app.integrations","app.settings","app.motiondialer","app.help","app.jscripty","app.marketplace","app.plugins","app.video","app.whatsapp","app.login","app.forgot","app.reset","app.errors"])}(),function(){"use strict";function e(e,n){e.state("app.login",{url:"/login?token&userId",views:{"main@":{templateUrl:"app/core/layouts/content-only.html",controller:"MainController as vm"},"content@app.login":{templateUrl:"app/login/login.html",controller:"LoginController as vm"}},bodyClass:"login"}),n.addPart("app/login")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.login",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.analytics",{abstract:!0,url:"/analytics"}).state("app.analytics.metrics",{url:"/metrics",views:{"content@app":{templateUrl:"app/main/apps/analytics/views/metrics/metrics.html",controller:"MetricsController as vm"}},resolve:{metrics:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("analyticMetric@get",{fields:"createdAt,updatedAt,id,name,table,metric,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Metrics",fields:"createdAt,updatedAt,id,name,table,metric,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1201})}]},authenticate:!0,permissionId:1201,bodyClass:"analytics"}).state("app.analytics.extractedReports",{url:"/extractedReports",views:{"content@app":{templateUrl:"app/main/apps/analytics/views/extractedReports/extractedReports.html",controller:"ExtractedReportsController as vm"}},resolve:{extractedReports:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("analyticExtractedReport@get",{fields:"createdAt,updatedAt,id,name,basename,savename,type,startDate,endDate,status,output,reportId,reportType",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ExtractedReports",fields:"createdAt,updatedAt,id,name,basename,savename,type,startDate,endDate,status,output,reportId,reportType",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1202})}]},authenticate:!0,permissionId:1202,bodyClass:"analytics"}),n.addPart("app/main/apps/analytics")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.analytics",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.analytics.reports"]).config(e)}(),function(){"use strict";function e(e){e.state("app.analytics.reports",{url:"/reports",views:{"content@app":{templateUrl:"app/main/apps/analytics/views/reports/reports.html",controller:"ReportsController as vm"}},resolve:{treeReports:["apiResolver",function(e){return e.resolve("analyticTreeReport@get",{fields:"id,tree",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1203})}]},authenticate:!0,permissionId:1203,bodyClass:"analytics"}).state("app.analytics.reports.edit",{url:"/:id?tab",views:{"content@app":{templateUrl:"app/main/apps/analytics/views/reports/edit/view.html",controller:"ReportController as vm"}},resolve:{report:["apiResolver","$stateParams","$q","describeTable",function(e,n,a,i){var s;return e.resolve("analyticCustomReport@get",{fields:"createdAt,updatedAt,id,name,description,table,conditions,joins",id:n.id}).then(function(e){var n=[];if((s=e).joins)try{s.joins=JSON.parse(s.joins);for(var t=0;t<s.joins.length;t+=1)n.push(i.getColumns(s.joins[t].foreignTable))}catch(e){console.log(e)}return a.all(n)}).then(function(e){for(var n=0;n<e.length;n+=1)s.joins[n].foreignTableFields=_.difference(_.keys(e[n]),["$promise","$resolved"]);return s})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1203})}]},authenticate:!0,permissionId:1203,bodyClass:"analytics"})}e.$inject=["$stateProvider"],angular.module("app.analytics.reports",["ngJsTree"]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.callysquare",{abstract:!0,url:"/callysquare"}).state("app.callysquare.odbcs",{url:"/odbcs",views:{"content@app":{templateUrl:"app/main/apps/callysquare/views/odbcs/odbcs.html",controller:"OdbcsController as vm"}},resolve:{odbcs:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("squareOdbc@get",{fields:"createdAt,updatedAt,id,name,dsn,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ODBC",fields:"createdAt,updatedAt,id,name,dsn,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1101})}]},authenticate:!0,permissionId:1101,bodyClass:"callysquare"}).state("app.callysquare.squareRecordings",{url:"/squareRecordings",views:{"content@app":{templateUrl:"app/main/apps/callysquare/views/squareRecordings/squareRecordings.html",controller:"SquareRecordingsController as vm"}},resolve:{squareRecordings:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("squareRecording@get",{fields:"createdAt,updatedAt,id,filename,projectName,uniqueid,callerid,extension,audio,savePath,format",sort:"-createdAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SquareRecordings",fields:"createdAt,updatedAt,id,filename,projectName,uniqueid,callerid,extension,audio,savePath,format",sort:"-createdAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadCallySquareRecordings",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1102})}]},authenticate:!0,permissionId:1102,bodyClass:"callysquare"}),n.addPart("app/main/apps/callysquare")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.callysquare",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.callysquare.projects"]).config(e)}(),function(){"use strict";function e(e){e.state("app.callysquare.projects",{url:"/projects",views:{"content@app":{templateUrl:"app/main/apps/callysquare/views/projects/projects.html",controller:"ProjectsController as vm"}},resolve:{projects:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("squareProject@get",{fields:"id,name,description,notes",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SquareProjects",fields:"id,name,description,notes",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1103})}]},authenticate:!0,permissionId:1103,bodyClass:"callysquare"}).state("app.callysquare.projects.edit",{url:"/:id",views:{"content@app":{templateUrl:"app/main/apps/callysquare/views/projects/edit/view.html",controller:"ProjectController as vm"}},params:{crudPermissions:void 0},resolve:{project:["apiResolver","$stateParams",function(e,n){return e.resolve("squareProject@get",{id:n.id})}],users:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,fullname,role",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Users",mergeResources:!0,fields:"id,fullname,role",sort:"name",nolimit:!0})}],trunks:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("trunk@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Trunks",fields:"id,name",sort:"name",nolimit:!0})}],queues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"inbound",fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceQueues",type:"inbound",fields:"id,name",sort:"name",nolimit:!0})}],sounds:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("sound@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Sounds",fields:"id,name",sort:"name",nolimit:!0})}],variables:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("variable@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Variables",fields:"id,name",sort:"name",nolimit:!0})}],databases:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("squareOdbc@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ODBC",fields:"id,name",sort:"name",nolimit:!0})}],projects:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("squareProject@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SquareProjects",fields:"id,name",sort:"name",nolimit:!0})}],contexts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceContext@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Contexts",fields:"id,name",sort:"name",nolimit:!0})}],intervals:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("interval@get",{fields:"id,name,IntervalId",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Intervals",fields:"id,name,IntervalId",sort:"name",nolimit:!0})}],mailAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("mailAccount@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"MailAccounts",fields:"id,name",sort:"name",nolimit:!0})}],templates:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("template@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Templates",fields:"id,name",sort:"name",nolimit:!0})}],lists:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Lists",fields:"id,name",sort:"name",nolimit:!0})}],smsAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("smsAccount@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SmsAccounts",fields:"id,name",sort:"name",nolimit:!0})}],pauses:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("pause@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Pauses",fields:"id,name",sort:"name",nolimit:!0})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1103})}]},authenticate:!0,permissionId:1103,bodyClass:"callysquare"})}e.$inject=["$stateProvider"],angular.module("app.callysquare.projects",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.chat",{abstract:!0,url:"/chat"}).state("app.chat.chatQueues",{url:"/chatQueues",views:{"content@app":{templateUrl:"app/main/apps/chat/views/chatQueues/chatQueues.html",controller:"ChatQueuesController as vm"}},resolve:{chatQueues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("chatQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"chat",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ChatQueues",fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"chat",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:501})}]},authenticate:!0,permissionId:501,bodyClass:"chat"}).state("app.chat.chatQueues.edit",{url:"/:id?tab",params:{chatQueue:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/chat/views/chatQueues/edit/view.html",controller:"ChatQueueController as vm"}},resolve:{chatQueue:["apiResolver","$stateParams",function(e,n){return e.resolve("chatQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:501})}]},authenticate:!0,permissionId:501,bodyClass:"chat"}).state("app.chat.chatWebsites",{url:"/chatWebsites",views:{"content@app":{templateUrl:"app/main/apps/chat/views/chatWebsites/chatWebsites.html",controller:"ChatWebsitesController as vm"}},resolve:{chatWebsites:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("chatWebsite@get",{fields:"createdAt,updatedAt,id,token,agentIdentifier,customerAlias,messageFontSize,name,key,address,remote,ListId,fidelity,timeout,agentAlias,closingQuestion,formSubmitSuccessMessage,formSubmitFailureMessage,color,color_focus,color_button,textColor,backgroundColor,fontSize,header_shape,showAgentAvatar,showCustomerAvatar,alignment,verticalAlignment,messagesAlignment,defaultTitle,animation,defaultWhiteLabel,whiteLabel,defaultLogo,conditionAgreement,autoclose,enableUnmanagedNote,unmanagedMessage,skipUnmanaged,sendUnmanaged,enableCustomerWriting,waitingTitle,waitingMessage,closingMessage,noteTitle,placeholderMessage,skipMessageButton,enableRating,ratingType,ratingStarsNumber,enableFeedback,feedbackTitle,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,enableSendButton,enableCustomerCheckmarks,systemAlias,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,name_title,username_placeholder,email_title,email_placeholder,header_online,hideWhenOffline,header_offline,start_chat_button,offline_chat_button,offlineMessageSubject,offlineMessageBody,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,onlineForm,offlineForm,mapKey,mapKeyOffline,forwardOffline,MailAccountId,openNewInteraction,forwardOfflineAddress,subjectOffline,IntervalId,timezone,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout,vidaooEscalation,vidaooApiKey,vidaooTopic,vidaooNote,vidaooMetadata",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ChatWebsites",fields:"createdAt,updatedAt,id,token,agentIdentifier,customerAlias,messageFontSize,name,key,address,remote,ListId,fidelity,timeout,agentAlias,closingQuestion,formSubmitSuccessMessage,formSubmitFailureMessage,color,color_focus,color_button,textColor,backgroundColor,fontSize,header_shape,showAgentAvatar,showCustomerAvatar,alignment,verticalAlignment,messagesAlignment,defaultTitle,animation,defaultWhiteLabel,whiteLabel,defaultLogo,conditionAgreement,autoclose,enableUnmanagedNote,unmanagedMessage,skipUnmanaged,sendUnmanaged,enableCustomerWriting,waitingTitle,waitingMessage,closingMessage,noteTitle,placeholderMessage,skipMessageButton,enableRating,ratingType,ratingStarsNumber,enableFeedback,feedbackTitle,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,enableSendButton,enableCustomerCheckmarks,systemAlias,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,name_title,username_placeholder,email_title,email_placeholder,header_online,hideWhenOffline,header_offline,start_chat_button,offline_chat_button,offlineMessageSubject,offlineMessageBody,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,onlineForm,offlineForm,mapKey,mapKeyOffline,forwardOffline,MailAccountId,openNewInteraction,forwardOfflineAddress,subjectOffline,IntervalId,timezone,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout,vidaooEscalation,vidaooApiKey,vidaooTopic,vidaooNote,vidaooMetadata",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:502})}]},authenticate:!0,permissionId:502,bodyClass:"chat"}).state("app.chat.chatWebsites.edit",{url:"/:id?tab",params:{chatWebsite:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/chat/views/chatWebsites/edit/view.html",controller:"ChatWebsiteController as vm"}},resolve:{chatWebsite:["apiResolver","$stateParams",function(e,n){return e.resolve("chatWebsite@get",{fields:"createdAt,updatedAt,id,token,agentIdentifier,customerAlias,messageFontSize,name,key,address,remote,ListId,fidelity,timeout,agentAlias,closingQuestion,formSubmitSuccessMessage,formSubmitFailureMessage,color,color_focus,color_button,textColor,backgroundColor,fontSize,header_shape,showAgentAvatar,showCustomerAvatar,alignment,verticalAlignment,messagesAlignment,defaultTitle,animation,defaultWhiteLabel,whiteLabel,defaultLogo,conditionAgreement,autoclose,enableUnmanagedNote,unmanagedMessage,skipUnmanaged,sendUnmanaged,enableCustomerWriting,waitingTitle,waitingMessage,closingMessage,noteTitle,placeholderMessage,skipMessageButton,enableRating,ratingType,ratingStarsNumber,enableFeedback,feedbackTitle,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,enableSendButton,enableCustomerCheckmarks,systemAlias,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,name_title,username_placeholder,email_title,email_placeholder,header_online,hideWhenOffline,header_offline,start_chat_button,offline_chat_button,offlineMessageSubject,offlineMessageBody,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,onlineForm,offlineForm,mapKey,mapKeyOffline,forwardOffline,MailAccountId,openNewInteraction,forwardOfflineAddress,subjectOffline,IntervalId,timezone,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout,vidaooEscalation,vidaooApiKey,vidaooTopic,vidaooNote,vidaooMetadata",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadAttachments,downloadOmnichannelInteractions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:502})}]},authenticate:!0,permissionId:502,bodyClass:"chat"}),n.addPart("app/main/apps/chat")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.chat",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.chat.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.chat.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/chat/views/realtime/realtime.html",controller:"ChatRealtimeController as vm"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:510})}]},authenticate:!0,permissionId:510}).state("app.chat.realtime.agents",{url:"/agents",params:{channel:"chat"},controller:"AgentsRealtimeController as vm",templateUrl:"app/main/apps/realtime/views/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getAgents",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}]},authenticate:!0,permissionId:510}).state("app.chat.realtime.queues",{url:"/queues",controller:"QueuesChatRealtimeController as vm",templateUrl:"app/main/apps/chat/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"ChatQueues":void 0,channel:"chat",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:501})}]},authenticate:!0,permissionId:510})}e.$inject=["$stateProvider"],angular.module("app.chat.realtime",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.contactmanager",{abstract:!0,url:"/contactmanager"}).state("app.contactmanager.lists",{url:"/lists",views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/lists/lists.html",controller:"ListsController as vm"}},resolve:{lists:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"createdAt,updatedAt,id,name,description,dialPrefix",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Lists",fields:"createdAt,updatedAt,id,name,description,dialPrefix",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadContactManagerLists",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:301})}]},authenticate:!0,permissionId:301,bodyClass:"contactmanager"}).state("app.contactmanager.lists.edit",{url:"/:id?tab",params:{list:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/lists/edit/view.html",controller:"ListController as vm"}},resolve:{list:["apiResolver","$stateParams",function(e,n){return e.resolve("cmList@get",{fields:"createdAt,updatedAt,id,name,description,dialPrefix",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:301})}]},authenticate:!0,permissionId:301,bodyClass:"contactmanager"}).state("app.contactmanager.companies",{url:"/companies",views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/companies/companies.html",controller:"CompaniesController as vm"}},resolve:{companies:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmCompany@get",{fields:"createdAt,updatedAt,id,name,phone,vat,fax,companyId,type,website,emailDomain,email,description,sStreet,sPostalCode,sCity,sCountry,street,postalCode,city,country",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Companies",fields:"createdAt,updatedAt,id,name,phone,vat,fax,companyId,type,website,emailDomain,email,description,sStreet,sPostalCode,sCity,sCountry,street,postalCode,city,country",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:302})}]},authenticate:!0,permissionId:302,bodyClass:"contactmanager"}).state("app.contactmanager.companies.edit",{url:"/:id?tab",params:{company:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/companies/edit/view.html",controller:"CompanyController as vm"}},resolve:{company:["apiResolver","$stateParams",function(e,n){return e.resolve("cmCompany@get",{fields:"createdAt,updatedAt,id,name,phone,vat,fax,companyId,type,website,emailDomain,email,description,sStreet,sPostalCode,sCity,sCountry,street,postalCode,city,country",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:302})}]},authenticate:!0,permissionId:302,bodyClass:"contactmanager"}).state("app.contactmanager.globalCustomFields",{url:"/globalCustomFields",views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/globalCustomFields/globalCustomFields.html",controller:"GlobalCustomFieldsController as vm"}},resolve:{globalCustomFields:["apiResolver","Auth",function(e,n){return e.resolve("cmCustomField@get",{fields:"createdAt,updatedAt,id,alias,type,values,required,clickToAction,actionType",sort:"-updatedAt",ListId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:304})}]},authenticate:!0,permissionId:304,bodyClass:"contactmanager"}),n.addPart("app/main/apps/contactmanager")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.contactmanager",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.contactmanager.contacts"]).config(e)}(),function(){"use strict";function e(e){e.state("app.contactmanager.contacts",{url:"/contacts?ListId&CompanyId",views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/contacts/contacts.html",controller:"ContactsController as vm"}},resolve:{contacts:["apiResolver","Auth","$stateParams",function(e,n,t){return n.hasRole("admin")?e.resolve("cmContact@get",_.merge({includeAll:!0,sort:"-updatedAt",limit:10,offset:0},t)):e.resolve("userProfile@getResources",_.merge({id:n.getCurrentUser().userProfileId,section:"Contacts",includeAll:!0,sort:"-updatedAt",limit:10,offset:0},t))}],lists:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Lists",fields:"id,name",sort:"-updatedAt",nolimit:!0})}],listsMap:["lists",function(e){for(var n={},t=0;t<e.rows.length;t++)n[e.rows[t].id]=e.rows[t].name;return n}],companies:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmCompany@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Companies",fields:"id,name",sort:"name",nolimit:!0})}],companiesMap:["companies",function(e){for(var n={},t=0;t<e.rows.length;t++)n[e.rows[t].id]=e.rows[t].name;return n}],tags:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("tag@get",{fields:"id,name",sort:"name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Tags",fields:"id,name",sort:"name",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:303})}]},authenticate:!0,permissionId:303,bodyClass:"contactmanager"}).state("app.contactmanager.contacts.edit",{url:"/:id?tab",params:{crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/contactmanager/views/contacts/edit/view.html",controller:"ContactController as vm"}},resolve:{contact:["apiResolver","$stateParams",function(e,n){return e.resolve("cmContact@get",{id:n.id}).then(function(e){return e.dateOfBirth&&(e.dateOfBirth=new Date(e.dateOfBirth)),e}).catch(function(e){console.error(e)})}],hoppers:["apiResolver","$stateParams",function(e,n){return e.resolve("cmContact@getHoppers",{id:n.id,fields:"id,phone,scheduledat,priority,recallme,VoiceQueueId,CampaignId,UserId",sort:"-updatedAt",limit:10,offset:0})}],finals:["apiResolver","$stateParams",function(e,n){return e.resolve("cmContact@getHopperFinals",{id:n.id,fields:"id,uniqueid,calleridnum,statedesc,starttime,disposition",sort:"-updatedAt",limit:10,offset:0})}],histories:["apiResolver","$stateParams",function(e,n){return e.resolve("cmContact@getHopperHistories",{id:n.id,fields:"id,uniqueid,calleridnum,statedesc,scheduledat,starttime,endtime",sort:"-updatedAt",limit:10,offset:0})}],jscriptySessions:["apiResolver","$stateParams",function(e,n){return e.resolve("cmContact@getJscriptySessions",{id:n.id,fields:"id,starttime,endtime,membername,projectname",sort:"-starttime",limit:10,offset:0})}],companies:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmCompany@get"):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Companies"})}],lists:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"id,name",sort:"-updatedAt",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Lists",fields:"id,name",sort:"-updatedAt",nolimit:!0})}],customFields:["apiResolver","contact",function(e,n){return n.ListId?e.resolve("cmList@getCustomFields",{id:n.ListId}):null}],tags:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("tag@get",{sort:"name"}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Tags"})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:303})}]},authenticate:!0,permissionId:303,bodyClass:"contactmanager"})}e.$inject=["$stateProvider"],angular.module("app.contactmanager.contacts",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.dashboards",{abstract:!0,url:"/dashboards"}),n.addPart("app/main/apps/dashboards")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.dashboards",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.dashboards.general","app.dashboards.custom"]).config(e)}(),function(){"use strict";function e(e){e.state("app.dashboards.custom",{url:"/custom/:id",views:{"content@app":{templateUrl:"app/main/apps/dashboards/views/custom/custom.html",controller:"DashboardCustomController as vm"}},resolve:{voiceQueues:["apiResolver","Auth",function(n,e){var a;return(e.hasRole("admin")?n.resolve("voiceQueue@get",{fields:"id,name",nolimit:!0}):n.resolve("userProfile@getResources",{id:e.getCurrentUser().userProfileId,section:"VoiceQueues",mergeResources:!0,fields:"id,name",channel:"voice",nolimit:!0})).then(function(e){return a=e,n.resolve("rpc@getVoiceQueues")}).then(function(e){if(e)for(var n,t=0;t<e.rows.length;t+=1)(n=_.find(a.rows,{id:e.rows[t].id}))&&_.merge(n,_.pick(e.rows[t],["waiting","total","talking","answered","unmanaged","abandoned"]));return a})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:100})}]},authenticate:!0,bodyClass:"dashboards"})}e.$inject=["$stateProvider"],angular.module("app.dashboards.custom",[]).config(e)}(),function(){"use strict";function e(e){e.state("app.dashboards.general",{url:"/general",views:{"content@app":{templateProvider:["$stateParams","$templateFactory","Auth",function(e,n,t){return t.isAgent()?n.fromUrl("app/main/apps/dashboards/views/general/agent/agent.general.html",e):n.fromUrl("app/main/apps/dashboards/views/general/user/user.general.html",e)}],controllerProvider:["Auth",function(e){return e.isAgent()?"AgentDashboardGeneralController as vm":"UserDashboardGeneralController as vm"}]}},resolve:{globalUserLists:["apiResolver","Auth",function(e,n){return e.resolve("user@getLists",{id:n.getCurrentUser().id,sort:"name",nolimit:!0})}],globalLists:["apiResolver",function(e){return e.resolve("cmList@get",{sort:"name",nolimit:!0})}],globalTags:["apiResolver",function(e){return e.resolve("tag@get",{sort:"name",nolimit:!0})}],globalCompanies:["apiResolver",function(e){return e.resolve("cmCompany@get",{sort:"name",nolimit:!0})}]},authenticate:!0,bodyClass:"dashboards"})}e.$inject=["$stateProvider"],angular.module("app.dashboards.general",["ngMaterialDateRangePicker","app.dashboards.general.user"]).config(e)}(),function(){"use strict";function e(e){e.state("app.dashboards.general.voice",{url:"/voice",data:{selectedTab:0},views:{voice:{templateUrl:"app/main/apps/dashboards/views/general/user/voice/user.general.voice.html",controller:"UserVoiceDashboardGeneralController as vm"}},resolve:{rpcQueues:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueues")}],inboundQueues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{fields:"id,name",type:"inbound",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceQueues",fields:"id,name",type:"inbound",channel:"voice",nolimit:!0})}],outbound:["apiResolver",function(e){return e.resolve("rpc@getOutbound")}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.dialer",{url:"/dialer",data:{selectedTab:1},views:{dialer:{templateUrl:"app/main/apps/dashboards/views/general/user/dialer/user.general.dialer.html",controller:"UserVoiceDashboardDialerController as vm"}},resolve:{rpcQueues:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueues")}],outboundQueues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{fields:"id,name",type:"outbound",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"QueueCampaigns",fields:"id,name",type:"outbound",channel:"voice",nolimit:!0})}],rpcCampaigns:["apiResolver",function(e){return e.resolve("rpc@getCampaigns")}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.chat",{url:"/chat",data:{selectedTab:2},views:{chat:{templateUrl:"app/main/apps/dashboards/views/general/user/chat/user.general.chat.html",controller:"UserChatDashboardGeneralController as vm"}},resolve:{chatInteractions:["apiResolver",function(e){return e.resolve("chatInteraction@get",{createdAt:{$gte:moment().startOf("day").utcOffset(0,!0).format(),$lte:moment().endOf("day").utcOffset(0,!0).format()},nolimit:!0})}],chatWebsites:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("chatWebsite@get",{fields:"createdAt,updatedAt,id,token,agentIdentifier,customerAlias,messageFontSize,name,key,address,remote,ListId,fidelity,timeout,agentAlias,closingQuestion,formSubmitSuccessMessage,formSubmitFailureMessage,color,color_focus,color_button,textColor,backgroundColor,fontSize,header_shape,showAgentAvatar,showCustomerAvatar,alignment,verticalAlignment,messagesAlignment,defaultTitle,animation,defaultWhiteLabel,whiteLabel,defaultLogo,conditionAgreement,autoclose,enableUnmanagedNote,unmanagedMessage,skipUnmanaged,sendUnmanaged,enableCustomerWriting,waitingTitle,waitingMessage,closingMessage,noteTitle,placeholderMessage,skipMessageButton,enableRating,ratingType,ratingStarsNumber,enableFeedback,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,systemAlias,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,name_title,username_placeholder,email_title,email_placeholder,header_online,hideWhenOffline,header_offline,start_chat_button,offline_chat_button,offlineMessageSubject,offlineMessageBody,header_offline,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl,onlineForm,offlineForm,mapKey,mapKeyOffline,forwardTranscript,forwardOffline,forwardOfflineAddress,IntervalId,timezone,waitForTheAssignedAgent,description,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ChatWebsites",fields:"createdAt,updatedAt,id,token,agentIdentifier,customerAlias,messageFontSize,name,key,address,remote,ListId,fidelity,timeout,agentAlias,closingQuestion,formSubmitSuccessMessage,formSubmitFailureMessage,color,color_focus,color_button,textColor,backgroundColor,fontSize,header_shape,showAgentAvatar,showCustomerAvatar,alignment,verticalAlignment,messagesAlignment,defaultTitle,animation,defaultWhiteLabel,whiteLabel,defaultLogo,conditionAgreement,autoclose,enableUnmanagedNote,unmanagedMessage,skipUnmanaged,sendUnmanaged,enableCustomerWriting,waitingTitle,waitingMessage,closingMessage,noteTitle,placeholderMessage,skipMessageButton,enableRating,ratingType,ratingStarsNumber,enableFeedback,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,systemAlias,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,name_title,username_placeholder,email_title,email_placeholder,header_online,hideWhenOffline,header_offline,start_chat_button,offline_chat_button,offlineMessageSubject,offlineMessageBody,header_offline,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl,onlineForm,offlineForm,mapKey,mapKeyOffline,forwardTranscript,forwardOffline,forwardOfflineAddress,IntervalId,timezone,waitForTheAssignedAgent,description,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.mail",{url:"/mail",data:{selectedTab:3},views:{mail:{templateUrl:"app/main/apps/dashboards/views/general/user/mail/user.general.mail.html",controller:"UserMailDashboardGeneralController as vm"}},resolve:{mailInteractions:["apiResolver",function(e){return e.resolve("mailInteraction@get",{createdAt:{$gte:moment().startOf("day").utcOffset(0,!0).format(),$lte:moment().endOf("day").utcOffset(0,!0).format()},nolimit:!0})}],mailAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("mailAccount@get",{fields:"createdAt,updatedAt,id,name,key,email,ListId,active,cservice,Imap.service,Imap.host,Imap.port,Imap.tls,Imap.authentication,Imap.user,Imap.password,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,cauthentication,cuser,cpassword,fontFamily,fontSize,template,markAsUnread,waitForTheAssignedAgent,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"MailAccounts",fields:"createdAt,updatedAt,id,name,key,email,ListId,active,cservice,Imap.service,Imap.host,Imap.port,Imap.tls,Imap.authentication,Imap.user,Imap.password,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,cauthentication,cuser,cpassword,fontFamily,fontSize,template,markAsUnread,waitForTheAssignedAgent,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.sms",{url:"/sms",data:{selectedTab:4},views:{sms:{templateUrl:"app/main/apps/dashboards/views/general/user/sms/user.general.sms.html",controller:"UserSmsDashboardGeneralController as vm"}},resolve:{smsInteractions:["apiResolver",function(e){return e.resolve("smsInteraction@get",{createdAt:{$gte:moment().startOf("day").utcOffset(0,!0).format(),$lte:moment().endOf("day").utcOffset(0,!0).format()},nolimit:!0})}],smsAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("smsAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,phone,type,accountSid,authId,authToken,smsMethod,applicationId,accountId,username,password,senderString,deliveryReport,waitForTheAssignedAgent,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SmsAccounts",fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,phone,type,accountSid,authId,authToken,smsMethod,applicationId,accountId,username,password,senderString,deliveryReport,waitForTheAssignedAgent,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.openchannel",{url:"/openchannel",data:{selectedTab:5},views:{openchannel:{templateUrl:"app/main/apps/dashboards/views/general/user/openchannel/user.general.openchannel.html",controller:"UserOpenchannelDashboardGeneralController as vm"}},resolve:{openchannelInteractions:["apiResolver",function(e){return e.resolve("openchannelInteraction@get",{createdAt:{$gte:moment().startOf("day").utcOffset(0,!0).format(),$lte:moment().endOf("day").utcOffset(0,!0).format()},nolimit:!0})}],openchannelAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("openchannelAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,description,receiveUri,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"OpenchannelAccounts",fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,description,receiveUri,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",nolimit:!0})}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.fax",{url:"/fax",data:{selectedTab:6},views:{fax:{templateUrl:"app/main/apps/dashboards/views/general/user/fax/user.general.fax.html",controller:"UserFaxDashboardGeneralController as vm"}},resolve:{faxInteractions:["apiResolver",function(e){return e.resolve("faxInteraction@get",{createdAt:{$gte:moment().startOf("day").utcOffset(0,!0).format(),$lte:moment().endOf("day").utcOffset(0,!0).format()},nolimit:!0})}],faxAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("faxAccount@get",{fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"FaxAccounts",fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,acceptMethod,acceptUrl,rejectMethod,rejectUrl,closeMethod,closeUrl,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,bodyClass:"dashboards"}).state("app.dashboards.general.whatsapp",{url:"/whatsapp",data:{selectedTab:7},views:{whatsapp:{templateUrl:"app/main/apps/dashboards/views/general/user/whatsapp/user.general.whatsapp.html",controller:"UserWhatsappDashboardGeneralController as vm"}},resolve:{whatsappInteractions:["apiResolver",function(e){return e.resolve("whatsappInteraction@get",{createdAt:{$gte:moment().startOf("day").utcOffset(0,!0).format(),$lte:moment().endOf("day").utcOffset(0,!0).format()},nolimit:!0})}],whatsappAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("whatsappAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,phone,type,accountSid,authId,authToken,whatsappMethod,username,password,senderString,deliveryReport,waitForTheAssignedAgent,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"WhatsappAccounts",fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,phone,type,accountSid,authId,authToken,whatsappMethod,username,password,senderString,deliveryReport,waitForTheAssignedAgent,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,bodyClass:"dashboards"})}e.$inject=["$stateProvider"],angular.module("app.dashboards.general.user",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.fax",{abstract:!0,url:"/fax"}).state("app.fax.faxQueues",{url:"/faxQueues",views:{"content@app":{templateUrl:"app/main/apps/fax/views/faxQueues/faxQueues.html",controller:"FaxQueuesController as vm"}},resolve:{faxQueues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("faxQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"fax",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"FaxQueues",fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"fax",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:901})}]},authenticate:!0,permissionId:901,bodyClass:"fax"}).state("app.fax.faxQueues.edit",{url:"/:id?tab",params:{faxQueue:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/fax/views/faxQueues/edit/view.html",controller:"FaxQueueController as vm"}},resolve:{faxQueue:["apiResolver","$stateParams",function(e,n){return e.resolve("faxQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:901})}]},authenticate:!0,permissionId:901,bodyClass:"fax"}).state("app.fax.faxAccounts",{url:"/faxAccounts",views:{"content@app":{templateUrl:"app/main/apps/fax/views/faxAccounts/faxAccounts.html",controller:"FaxAccountsController as vm"}},resolve:{faxAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("faxAccount@get",{fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"FaxAccounts",fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:902})}]},authenticate:!0,permissionId:902,bodyClass:"fax"}).state("app.fax.faxAccounts.edit",{url:"/:id?tab",params:{faxAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/fax/views/faxAccounts/edit/view.html",controller:"FaxAccountController as vm"}},resolve:{faxAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("faxAccount@get",{fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadOmnichannelInteractions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:902})}]},authenticate:!0,permissionId:902,bodyClass:"fax"}),n.addPart("app/main/apps/fax")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.fax",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.fax.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.fax.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/fax/views/realtime/realtime.html",controller:"FaxRealtimeController as vm"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:910})}]},authenticate:!0,permissionId:910}).state("app.fax.realtime.agents",{url:"/agents",params:{channel:"fax"},controller:"AgentsRealtimeController as vm",templateUrl:"app/main/apps/realtime/views/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getAgents",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}]},authenticate:!0,permissionId:910}).state("app.fax.realtime.trunks",{url:"/trunks",controller:"TrunksFaxRealtimeController as vm",templateUrl:"app/main/apps/fax/views/realtime/trunks/view.html",resolve:{trunks:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("trunk@get",{fields:"id,name",active:!0,sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Trunks",fields:"id,name",active:!0,sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1011})}],rpcTrunks:["apiResolver",function(e){return e.resolve("rpc@getTrunks")}]},authenticate:!0,permissionId:910}).state("app.fax.realtime.queues",{url:"/queues",controller:"QueuesFaxRealtimeController as vm",templateUrl:"app/main/apps/fax/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"FaxQueues":void 0,channel:"fax",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:901})}]},authenticate:!0,permissionId:910}).state("app.fax.realtime.accounts",{url:"/accounts",controller:"FaxAccountsRealtimeController as vm",templateUrl:"app/main/apps/fax/views/realtime/accounts/view.html",resolve:{faxAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("faxAccount@get",{sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"FaxAccounts",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:902})}],rpcFaxAccounts:["apiResolver",function(e){return e.resolve("rpc@getFaxAccounts")}]},authenticate:!0,permissionId:910})}e.$inject=["$stateProvider"],angular.module("app.fax.realtime",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.help",{abstract:!0,url:"/help"}),n.addPart("app/main/apps/help")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.help",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.help.about"]).config(e)}(),function(){"use strict";function e(e){e.state("app.help.about",{url:"/about",views:{"content@app":{templateUrl:"app/main/apps/help/views/about/about.html",controller:"AboutController as vm"}},resolve:{info:["apiResolver",function(e){return e.resolve("version@get")}]},authenticate:!0,permissionId:1600,bodyClass:"help"})}e.$inject=["$stateProvider"],angular.module("app.help.about",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.integrations",{abstract:!0,url:"/integrations"}).state("app.integrations.zendeskAccounts",{url:"/zendeskAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/zendeskAccounts/zendeskAccounts.html",controller:"ZendeskAccountsController as vm"}},resolve:{zendeskAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intZendeskAccount@get",{fields:"createdAt,updatedAt,id,name,type,username,remoteUri,authType,password,token,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ZendeskAccounts",fields:"createdAt,updatedAt,id,name,type,username,remoteUri,authType,password,token,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1301})}]},authenticate:!0,permissionId:1301,bodyClass:"integrations"}).state("app.integrations.zendeskAccounts.edit",{url:"/:id?tab",params:{zendeskAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/view.html",controller:"ZendeskAccountController as vm"}},resolve:{zendeskAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("intZendeskAccount@get",{fields:"createdAt,updatedAt,id,name,type,username,remoteUri,authType,password,token,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1301})}]},authenticate:!0,permissionId:1301,bodyClass:"integrations"}).state("app.integrations.salesforceAccounts",{url:"/salesforceAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/salesforceAccounts/salesforceAccounts.html",controller:"SalesforceAccountsController as vm"}},resolve:{salesforceAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intSalesforceAccount@get",{fields:"createdAt,updatedAt,id,name,type,username,remoteUri,password,clientId,clientSecret,securityToken,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SalesforceAccounts",fields:"createdAt,updatedAt,id,name,type,username,remoteUri,password,clientId,clientSecret,securityToken,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1302})}]},authenticate:!0,permissionId:1302,bodyClass:"integrations"}).state("app.integrations.salesforceAccounts.edit",{url:"/:id?tab",params:{salesforceAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/view.html",controller:"SalesforceAccountController as vm"}},resolve:{salesforceAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("intSalesforceAccount@get",{fields:"createdAt,updatedAt,id,name,type,username,remoteUri,password,clientId,clientSecret,securityToken,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1302})}]},authenticate:!0,permissionId:1302,bodyClass:"integrations"}).state("app.integrations.freshdeskAccounts",{url:"/freshdeskAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/freshdeskAccounts.html",controller:"FreshdeskAccountsController as vm"}},resolve:{freshdeskAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intFreshdeskAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"FreshdeskAccounts",fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1303})}]},authenticate:!0,permissionId:1303,bodyClass:"integrations"}).state("app.integrations.freshdeskAccounts.edit",{url:"/:id?tab",params:{freshdeskAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/view.html",controller:"FreshdeskAccountController as vm"}},resolve:{freshdeskAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("intFreshdeskAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1303})}]},authenticate:!0,permissionId:1303,bodyClass:"integrations"}).state("app.integrations.sugarcrmAccounts",{url:"/sugarcrmAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/sugarcrmAccounts.html",controller:"SugarcrmAccountsController as vm"}},resolve:{sugarcrmAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intSugarcrmAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,password,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SugarcrmAccounts",fields:"createdAt,updatedAt,id,name,username,remoteUri,password,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1305})}]},authenticate:!0,permissionId:1305,bodyClass:"integrations"}).state("app.integrations.sugarcrmAccounts.edit",{url:"/:id?tab",params:{sugarcrmAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/view.html",controller:"SugarcrmAccountController as vm"}},resolve:{sugarcrmAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("intSugarcrmAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,password,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1305})}]},authenticate:!0,permissionId:1305,bodyClass:"integrations"}).state("app.integrations.deskAccounts",{url:"/deskAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/deskAccounts/deskAccounts.html",controller:"DeskAccountsController as vm"}},resolve:{deskAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intDeskAccount@get",{fields:"createdAt,updatedAt,id,name,type,remoteUri,authType,username,password,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"DeskAccounts",fields:"createdAt,updatedAt,id,name,type,remoteUri,authType,username,password,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1306})}]},authenticate:!0,permissionId:1306,bodyClass:"integrations"}).state("app.integrations.deskAccounts.edit",{url:"/:id?tab",params:{deskAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/view.html",controller:"DeskAccountController as vm"}},resolve:{deskAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("intDeskAccount@get",{fields:"createdAt,updatedAt,id,name,type,remoteUri,authType,username,password,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1306})}]},authenticate:!0,permissionId:1306,bodyClass:"integrations"}).state("app.integrations.zohoAccounts",{url:"/zohoAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/zohoAccounts/zohoAccounts.html",controller:"ZohoAccountsController as vm"}},resolve:{zohoAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intZohoAccount@get",{fields:"createdAt,updatedAt,id,name,host,zone,clientId,clientSecret,code,refreshToken,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ZohoAccounts",fields:"createdAt,updatedAt,id,name,host,zone,clientId,clientSecret,code,refreshToken,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1307})}]},authenticate:!0,permissionId:1307,bodyClass:"integrations"}).state("app.integrations.zohoAccounts.edit",{url:"/:id?tab",params:{zohoAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/zohoAccounts/edit/view.html",controller:"ZohoAccountController as vm"}},resolve:{zohoAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("intZohoAccount@get",{fields:"createdAt,updatedAt,id,name,host,zone,clientId,clientSecret,code,refreshToken,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1307})}]},authenticate:!0,permissionId:1307,bodyClass:"integrations"}).state("app.integrations.vtigerAccounts",{url:"/vtigerAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/vtigerAccounts/vtigerAccounts.html",controller:"VtigerAccountsController as vm"}},resolve:{vtigerAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intVtigerAccount@get",{fields:"createdAt,updatedAt,id,name,description,username,accessKey,remoteUri,serverUrl",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VtigerAccounts",fields:"createdAt,updatedAt,id,name,description,username,accessKey,remoteUri,serverUrl",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1308})}]},authenticate:!0,permissionId:1308,bodyClass:"integrations"}).state("app.integrations.vtigerAccounts.edit",{url:"/:id?tab",params:{vtigerAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/vtigerAccounts/edit/view.html",controller:"VtigerAccountController as vm"}},resolve:{vtigerAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("intVtigerAccount@get",{fields:"createdAt,updatedAt,id,name,description,username,accessKey,remoteUri,serverUrl",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1308})}]},authenticate:!0,permissionId:1308,bodyClass:"integrations"}).state("app.integrations.dynamics365Accounts",{url:"/dynamics365Accounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/dynamics365Accounts.html",controller:"Dynamics365AccountsController as vm"}},resolve:{dynamics365Accounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intDynamics365Account@get",{fields:"createdAt,updatedAt,id,name,username,password,remoteUri,tenantId,clientId,clientSecret,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Dynamics365Accounts",fields:"createdAt,updatedAt,id,name,username,password,remoteUri,tenantId,clientId,clientSecret,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1309})}]},authenticate:!0,permissionId:1309,bodyClass:"integrations"}).state("app.integrations.dynamics365Accounts.edit",{url:"/:id?tab",params:{dynamics365Account:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/edit/view.html",controller:"Dynamics365AccountController as vm"}},resolve:{dynamics365Account:["apiResolver","$stateParams",function(e,n){return e.resolve("intDynamics365Account@get",{fields:"createdAt,updatedAt,id,name,username,password,remoteUri,tenantId,clientId,clientSecret,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1309})}]},authenticate:!0,permissionId:1309,bodyClass:"integrations"}).state("app.integrations.servicenowAccounts",{url:"/servicenowAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/servicenowAccounts/servicenowAccounts.html",controller:"ServicenowAccountsController as vm"}},resolve:{servicenowAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intServicenowAccount@get",{fields:"createdAt,updatedAt,id,name,username,password,email,remoteUri,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ServicenowAccounts",fields:"createdAt,updatedAt,id,name,username,password,email,remoteUri,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1310})}]},authenticate:!0,permissionId:1310,bodyClass:"integrations"}).state("app.integrations.servicenowAccounts.edit",{url:"/:id?tab",params:{servicenowAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/servicenowAccounts/edit/view.html",controller:"ServicenowAccountController as vm"}},resolve:{servicenowAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("intServicenowAccount@get",{fields:"createdAt,updatedAt,id,name,username,password,email,remoteUri,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1310})}]},authenticate:!0,permissionId:1310,bodyClass:"integrations"}).state("app.integrations.freshsalesAccounts",{url:"/freshsalesAccounts",views:{"content@app":{templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/freshsalesAccounts.html",controller:"FreshsalesAccountsController as vm"}},resolve:{freshsalesAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("intFreshsalesAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"FreshsalesAccounts",fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1304})}]},authenticate:!0,permissionId:1304,bodyClass:"integrations"}).state("app.integrations.freshsalesAccounts.edit",{url:"/:id?tab",params:{freshsalesAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/edit/view.html",controller:"FreshsalesAccountController as vm"}},resolve:{freshsalesAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("intFreshsalesAccount@get",{fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1304})}]},authenticate:!0,permissionId:1304,bodyClass:"integrations"}),n.addPart("app/main/apps/integrations")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.integrations",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter"]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.jscripty",{abstract:!0,url:"/jscripty"}).state("app.jscripty.projects",{url:"/projects",views:{"content@app":{templateUrl:"app/main/apps/jscripty/views/projects/projects.html",controller:"JscriptyProjectsController as vm"}},resolve:{projects:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("jscriptyProject@get",{fields:"createdAt,updatedAt,id,name,enableUncompleteSave,sendUnpauseOnSubmit,description,formData",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Projects",fields:"createdAt,updatedAt,id,name,enableUncompleteSave,sendUnpauseOnSubmit,description,formData",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadJscriptySessions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1701})}]},authenticate:!0,permissionId:1701,bodyClass:"jscripty"}).state("app.jscripty.projects.edit",{url:"/:id?tab",params:{project:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/jscripty/views/projects/edit/view.html",controller:"JscriptyProjectController as vm"}},resolve:{project:["apiResolver","$stateParams",function(e,n){return e.resolve("jscriptyProject@get",{fields:"createdAt,updatedAt,id,name,enableUncompleteSave,sendUnpauseOnSubmit,description,formData",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadJscriptySessions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1701})}]},authenticate:!0,permissionId:1701,bodyClass:"jscripty"}),n.addPart("app/main/apps/jscripty")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.jscripty",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter"]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.mail",{abstract:!0,url:"/mail"}).state("app.mail.mailQueues",{url:"/mailQueues",views:{"content@app":{templateUrl:"app/main/apps/mail/views/mailQueues/mailQueues.html",controller:"MailQueuesController as vm"}},resolve:{mailQueues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("mailQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"mail",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"MailQueues",fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"mail",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:601})}]},authenticate:!0,permissionId:601,bodyClass:"mail"}).state("app.mail.mailQueues.edit",{url:"/:id?tab",params:{mailQueue:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/mail/views/mailQueues/edit/view.html",controller:"MailQueueController as vm"}},resolve:{mailQueue:["apiResolver","$stateParams",function(e,n){return e.resolve("mailQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:601})}]},authenticate:!0,permissionId:601,bodyClass:"mail"}).state("app.mail.mailAccounts",{url:"/mailAccounts",views:{"content@app":{templateUrl:"app/main/apps/mail/views/mailAccounts/mailAccounts.html",controller:"MailAccountsController as vm"}},resolve:{mailAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("mailAccount@get",{fields:"createdAt,updatedAt,id,name,key,email,ListId,active,cservice,Imap.service,Imap.host,Imap.port,Imap.tls,Imap.authentication,Imap.user,Imap.password,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,cauthentication,cuser,cpassword,fontFamily,fontSize,template,markAsUnread,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"MailAccounts",fields:"createdAt,updatedAt,id,name,key,email,ListId,active,cservice,Imap.service,Imap.host,Imap.port,Imap.tls,Imap.authentication,Imap.user,Imap.password,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,cauthentication,cuser,cpassword,fontFamily,fontSize,template,markAsUnread,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:602})}]},authenticate:!0,permissionId:602,bodyClass:"mail"}).state("app.mail.mailAccounts.edit",{url:"/:id?tab",params:{mailAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/mail/views/mailAccounts/edit/view.html",controller:"MailAccountController as vm"}},resolve:{mailAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("mailAccount@get",{fields:"createdAt,updatedAt,id,name,key,email,ListId,active,cservice,Imap.service,Imap.host,Imap.port,Imap.tls,Imap.authentication,Imap.user,Imap.password,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,cauthentication,cuser,cpassword,fontFamily,fontSize,template,markAsUnread,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadAttachments,downloadOmnichannelInteractions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:602})}]},authenticate:!0,permissionId:602,bodyClass:"mail"}).state("app.mail.mailSubtatuses",{url:"/mailSubtatuses",views:{"content@app":{templateUrl:"app/main/apps/mail/views/mailSubtatuses/mailSubtatuses.html",controller:"MailSubstatusesController as vm"}},resolve:{mailSubtatuses:["apiResolver","Auth",function(e,n){return e.resolve("mailSubstatus@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:603})}]},authenticate:!0,permissionId:603,bodyClass:"mail"}),n.addPart("app/main/apps/mail")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.mail",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.mail.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.mail.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/mail/views/realtime/realtime.html",controller:"MailRealtimeController as vm"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:610})}]},authenticate:!0,permissionId:610}).state("app.mail.realtime.agents",{url:"/agents",params:{channel:"mail"},controller:"AgentsRealtimeController as vm",templateUrl:"app/main/apps/realtime/views/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getAgents",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}]},authenticate:!0,permissionId:610}).state("app.mail.realtime.queues",{url:"/queues",controller:"QueuesMailRealtimeController as vm",templateUrl:"app/main/apps/mail/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"MailQueues":void 0,channel:"mail",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:601})}]},authenticate:!0,permissionId:610}).state("app.mail.realtime.accounts",{url:"/accounts",controller:"MailAccountsRealtimeController as vm",templateUrl:"app/main/apps/mail/views/realtime/accounts/view.html",resolve:{mailAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("mailAccount@get",{sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"MailAccounts",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:602})}],rpcMailAccounts:["apiResolver",function(e){return e.resolve("rpc@getMailAccounts")}]},authenticate:!0,permissionId:610})}e.$inject=["$stateProvider"],angular.module("app.mail.realtime",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.marketplace",{abstract:!0,url:"/marketplace"}).state("app.marketplace.plugins",{url:"/plugins",views:{"content@app":{templateUrl:"app/main/apps/marketplace/views/plugins/plugins.html",controller:"MarketplacePluginsController as vm"}},resolve:{plugins:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("plugin@get",{fields:"createdAt,updatedAt,id,name,type,active,description,icon,sidebar,path,adminUrl,agentUrl,scriptName,scriptPath,version",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Plugins",fields:"createdAt,updatedAt,id,name,type,active,description,icon,sidebar,path,adminUrl,agentUrl,scriptName,scriptPath,version",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1801})}]},authenticate:!0,permissionId:1801,bodyClass:"marketplace"}).state("app.marketplace.plugins.edit",{url:"/:id?tab",params:{plugin:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/marketplace/views/plugins/edit/view.html",controller:"MarketplacePluginController as vm"}},resolve:{plugin:["apiResolver","$stateParams",function(e,n){return e.resolve("plugin@get",{fields:"createdAt,updatedAt,id,name,type,active,description,icon,sidebar,path,adminUrl,agentUrl,scriptName,scriptPath,version",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1801})}]},authenticate:!0,permissionId:1801,bodyClass:"marketplace"}),n.addPart("app/main/apps/marketplace")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.marketplace",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter"]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.motiondialer",{abstract:!0,url:"/motiondialer"}).state("app.motiondialer.queueCampaigns",{url:"/queueCampaigns",views:{"content@app":{templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/queueCampaigns.html",controller:"QueueCampaignsController as vm"}},resolve:{queueCampaigns:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{fields:"createdAt,updatedAt,id,name,dialActive,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,dialOrderByScheduledAt,dialRecallMeTimeout,dialRecallInQueue,dialGlobalInterval,dialTimezone,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength,dialMethod,dialPowerLevel,dialPredictiveOptimization,dialPredictiveOptimizationPercentage,dialPredictiveInterval,dialLimitQueue,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialPrefix,dialQueueOptions,dialQueueTimeout,strategy,timeout,retry,wrapuptime,weight,musiconhold,dialQueueProject,dialQueueProject2,dialAgiAfterHangupAgent,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,description,mandatoryDisposition,mandatoryDispositionPauseId,dialPredictiveIntervalMaxThreshold,dialPredictiveIntervalMinThreshold,dialPreviewAutoRecallMe",type:"outbound",sort:"-updatedAt",channel:"voice",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"QueueCampaigns",fields:"createdAt,updatedAt,id,name,dialActive,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,dialOrderByScheduledAt,dialRecallMeTimeout,dialRecallInQueue,dialGlobalInterval,dialTimezone,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength,dialMethod,dialPowerLevel,dialPredictiveOptimization,dialPredictiveOptimizationPercentage,dialPredictiveInterval,dialLimitQueue,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialPrefix,dialQueueOptions,dialQueueTimeout,strategy,timeout,retry,wrapuptime,weight,musiconhold,dialQueueProject,dialQueueProject2,dialAgiAfterHangupAgent,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,description,mandatoryDisposition,mandatoryDispositionPauseId,dialPredictiveIntervalMaxThreshold,dialPredictiveIntervalMinThreshold,dialPreviewAutoRecallMe",type:"outbound",sort:"-updatedAt",channel:"voice",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1501})}]},authenticate:!0,permissionId:1501,bodyClass:"motiondialer"}).state("app.motiondialer.queueCampaigns.edit",{url:"/:id?tab",params:{queueCampaign:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/view.html",controller:"QueueCampaignController as vm"}},resolve:{queueCampaign:["apiResolver","$stateParams",function(e,n){return e.resolve("voiceQueue@get",{fields:"createdAt,updatedAt,id,name,dialActive,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,dialOrderByScheduledAt,dialRecallMeTimeout,dialRecallInQueue,dialGlobalInterval,dialTimezone,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength,dialMethod,dialPowerLevel,dialPredictiveOptimization,dialPredictiveOptimizationPercentage,dialPredictiveInterval,dialLimitQueue,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialPrefix,dialQueueOptions,dialQueueTimeout,strategy,timeout,retry,wrapuptime,weight,musiconhold,dialQueueProject,dialQueueProject2,dialAgiAfterHangupAgent,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,description,mandatoryDisposition,mandatoryDispositionPauseId,dialPredictiveIntervalMaxThreshold,dialPredictiveIntervalMinThreshold,dialPreviewAutoRecallMe",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1501})}]},authenticate:!0,permissionId:1501,bodyClass:"motiondialer"}).state("app.motiondialer.ivrCampaigns",{url:"/ivrCampaigns",views:{"content@app":{templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/ivrCampaigns.html",controller:"IvrCampaignsController as vm"}},resolve:{ivrCampaigns:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("campaign@get",{fields:"createdAt,updatedAt,id,name,active,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,SquareProjectId,limitCalls,description,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,dialOrderByScheduledAt,dialGlobalInterval,dialTimezone,dialPrefix,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength",type:"ivr",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"IvrCampaigns",fields:"createdAt,updatedAt,id,name,active,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,SquareProjectId,limitCalls,description,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,dialOrderByScheduledAt,dialGlobalInterval,dialTimezone,dialPrefix,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength",type:"ivr",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1502})}]},authenticate:!0,permissionId:1502,bodyClass:"motiondialer"}).state("app.motiondialer.ivrCampaigns.edit",{url:"/:id?tab",params:{ivrCampaign:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/view.html",controller:"IvrCampaignController as vm"}},resolve:{ivrCampaign:["apiResolver","$stateParams",function(e,n){return e.resolve("campaign@get",{fields:"createdAt,updatedAt,id,name,active,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,SquareProjectId,limitCalls,description,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,dialOrderByScheduledAt,dialGlobalInterval,dialTimezone,dialPrefix,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1502})}]},authenticate:!0,permissionId:1502,bodyClass:"motiondialer"}),n.addPart("app/main/apps/motiondialer")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.motiondialer",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.motiondialer.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.motiondialer.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/motiondialer/views/realtime/realtime.html",controller:"MotionDialerRealtimeController as vm"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1510})}]},authenticate:!0,permissionId:1510}).state("app.motiondialer.realtime.agents",{url:"/agents",params:{channel:"voice",direction:"outbound"},controller:"AgentsRealtimeController as vm",templateUrl:"app/main/apps/realtime/views/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getAgents",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}]},authenticate:!0,permissionId:1510}).state("app.motiondialer.realtime.queues",{url:"/queues",controller:"QueuesMotionDialerRealtimeController as vm",templateUrl:"app/main/apps/motiondialer/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"QueueCampaigns":void 0,channel:"voice",type:"outbound",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1501})}]},authenticate:!0,permissionId:1510}).state("app.motiondialer.realtime.queue_calls",{url:"/queue_calls",controller:"QueueCallsMotionDialerRealtimeController as vm",templateUrl:"app/main/apps/motiondialer/views/realtime/queue_calls/view.html",resolve:{agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,role,context",role:"agent",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,role,context",role:"agent",nolimit:!0})}],queues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"outbound",sort:"-updatedAt",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"QueueCampaigns",channel:"voice",type:"outbound",sort:"-updatedAt",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1501})}],rpcVoiceQueuesChannels:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueuesChannels")}]},authenticate:!0,permissionId:1510}).state("app.motiondialer.realtime.abandonedcalls",{url:"/abandonedcalls",controller:"AbandonedCallsMotionDialerRealtimeController as vm",templateUrl:"app/main/apps/motiondialer/views/realtime/abandonedcalls/view.html",resolve:{agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,role,context",role:"agent",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,role,context",role:"agent",nolimit:!0})}],queues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"outbound",sort:"-updatedAt",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"QueueCampaigns",channel:"voice",type:"outbound",sort:"-updatedAt",nolimit:!0})}],dispositions:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("disposition@get",{fields:"createdAt,updatedAt,id,name,level,ParentId",sort:"name",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Dispositions",fields:"createdAt,updatedAt,id,name",sort:"name",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1501})}]},authenticate:!0,permissionId:1510}).state("app.motiondialer.realtime.queue_params",{url:"/queue_params",controller:"QueueParamsMotionDialerRealtimeController as vm",templateUrl:"app/main/apps/motiondialer/views/realtime/queue_params/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"outbound",fields:"id,name",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"QueueCampaigns",channel:"voice",type:"outbound",sort:"-updatedAt",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1501})}],rpcQueues:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueues")}]},authenticate:!0,permissionId:1510}).state("app.motiondialer.realtime.ivr_campaigns",{url:"/ivr_campaigns",controller:"IvrCampaignsMotionDialerRealtimeController as vm",templateUrl:"app/main/apps/motiondialer/views/realtime/ivr_campaigns/view.html",resolve:{campaigns:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("campaign@get",{sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"IvrCampaigns",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1502})}],rpcCampaigns:["apiResolver",function(e){return e.resolve("rpc@getCampaigns")}]},authenticate:!0,permissionId:1510})}e.$inject=["$stateProvider"],angular.module("app.motiondialer.realtime",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.openchannel",{abstract:!0,url:"/openchannel"}).state("app.openchannel.openchannelQueues",{url:"/openchannelQueues",views:{"content@app":{templateUrl:"app/main/apps/openchannel/views/openchannelQueues/openchannelQueues.html",controller:"OpenchannelQueuesController as vm"}},resolve:{openchannelQueues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("openchannelQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"openchannel",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"OpenchannelQueues",fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"openchannel",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:801})}]},authenticate:!0,permissionId:801,bodyClass:"openchannel"}).state("app.openchannel.openchannelQueues.edit",{url:"/:id?tab",params:{openchannelQueue:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/view.html",controller:"OpenchannelQueueController as vm"}},resolve:{openchannelQueue:["apiResolver","$stateParams",function(e,n){return e.resolve("openchannelQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:801})}]},authenticate:!0,permissionId:801,bodyClass:"openchannel"}).state("app.openchannel.openchannelAccounts",{url:"/openchannelAccounts",views:{"content@app":{templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/openchannelAccounts.html",controller:"OpenchannelAccountsController as vm"}},resolve:{openchannelAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("openchannelAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUri,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"OpenchannelAccounts",fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUri,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:802})}]},authenticate:!0,permissionId:802,bodyClass:"openchannel"}).state("app.openchannel.openchannelAccounts.edit",{url:"/:id?tab",params:{openchannelAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/view.html",controller:"OpenchannelAccountController as vm"}},resolve:{openchannelAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("openchannelAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUri,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadAttachments,downloadOmnichannelInteractions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:802})}]},authenticate:!0,permissionId:802,bodyClass:"openchannel"}),n.addPart("app/main/apps/openchannel")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.openchannel",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.openchannel.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.openchannel.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/openchannel/views/realtime/realtime.html",controller:"OpenchannelRealtimeController as vm"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:810})}]},authenticate:!0,permissionId:810}).state("app.openchannel.realtime.agents",{url:"/agents",params:{channel:"openchannel"},controller:"AgentsRealtimeController as vm",templateUrl:"app/main/apps/realtime/views/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getAgents",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}]},authenticate:!0,permissionId:810}).state("app.openchannel.realtime.queues",{url:"/queues",controller:"QueuesOpenchannelRealtimeController as vm",templateUrl:"app/main/apps/openchannel/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"OpenchannelQueues":void 0,channel:"openchannel",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:801})}]},authenticate:!0,permissionId:810})}e.$inject=["$stateProvider"],angular.module("app.openchannel.realtime",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.plugins",{abstract:!0,url:"/plugins"}),n.addPart("app/main/apps/plugins")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.plugins",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.plugins.plugin"]).config(e)}(),function(){"use strict";function e(e){e.state("app.plugins.plugin",{url:"/plugin/:id",views:{"content@app":{templateUrl:"app/main/apps/plugins/views/plugin/plugin.html",controller:"PluginController as vm"}},resolve:{},authenticate:!0,bodyClass:"plugins"})}e.$inject=["$stateProvider"],angular.module("app.plugins.plugin",[]).config(e)}(),function(){"use strict";angular.module("app.realtime",[])}(),function(){"use strict";function e(e,n,t,a){e.state("app.settings",{abstract:!0,url:"/settings"}).state("app.settings.generals",{url:"/generals",views:{"content@app":{templateUrl:"app/main/apps/settings/views/generals/generals.html",controller:"GeneralsController as vm"}},resolve:{generals:["apiResolver",function(e){return e.resolve("setting@get",{fields:"createdAt,updatedAt,id,min_internal,securePassword,callRecordingEncryption,chatTimeout,phoneBarAutoUpdater,defaultScreenRecordingPath,phoneBarAutoUpdaterUrl,enableEmailPreview,split,splitSizeCsv,splitSizePdf,splitSizeXlsx,searchOnEnterKey,messagesAlignment,phoneBarRememberMeEnabled,rtlSupport,allowedLoginAttempts,blockDuration,loginMailFrequency,language,bucket,transcribe,transcribeRegion,transcribeAccountId,sentiment,sentimentRegion,sentimentAccountId,googleSsoEnabled,enforcePasswordHistory,passwordHistoryLimit,enablePrivacyPolicyEmail,privacyPolicyEmail,enablePrivacyPolicyName,privacyPolicyName,enablePrivacyPolicyNumber,privacyPolicyNumber,chatInteractionsReloadTimeout,mailInteractionsReloadTimeout,openchannelInteractionsReloadTimeout,smsInteractionsReloadTimeout,whatsappInteractionsReloadTimeout,stopRecordingOnTransfer",limit:10,offset:0})}]},authenticate:!0,permissionId:1400,bodyClass:"settings"}).state("app.settings.smtps",{url:"/smtps",views:{"content@app":{templateUrl:"app/main/apps/settings/views/smtps/smtps.html",controller:"SmtpController as vm"}},resolve:{smtps:["apiResolver",function(e){return e.resolve("mailAccount@get",{fields:"createdAt,updatedAt,id,service,name,email,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,description",service:"1",limit:10,offset:0})}]},authenticate:!0,permissionId:1400,bodyClass:"settings"}).state("app.settings.networks",{url:"/networks",views:{"content@app":{templateUrl:"app/main/apps/settings/views/networks/networks.html",controller:"NetworksController as vm"}},resolve:{networks:["apiResolver",function(e){return e.resolve("network@get",{fields:"createdAt,updatedAt,id,type,value,username,password",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1400,bodyClass:"settings"}).state("app.settings.customizations",{url:"/customizations",views:{"content@app":{templateUrl:"app/main/apps/settings/views/customizations/customizations.html",controller:"CustomizationsController as vm"}},resolve:{customizations:["apiResolver",function(e){return e.resolve("setting@get",{fields:"createdAt,updatedAt,id,defaultLogo,defaultLoginLogo,defaultFavicon,defaultHeaderWhiteLabel,headerWhiteLabel,defaultPageTitle,pageTitle,defaultPreferred",limit:10,offset:0})}]},authenticate:!0,permissionId:1400,bodyClass:"settings"}).state("app.settings.cloudProviders",{url:"/cloudProviders",views:{"content@app":{templateUrl:"app/main/apps/settings/views/cloudProviders/cloudProviders.html",controller:"CloudProvidersController as vm"}},resolve:{cloudProviders:["apiResolver",function(e){return e.resolve("cloudProvider@get",{fields:"createdAt,updatedAt,id,name,service,data2,data1",sort:"-updatedAt",limit:10,offset:0})}]},authenticate:!0,permissionId:1400,bodyClass:"settings"}),n.addPart("app/main/apps/settings")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.settings",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.settings.updates","app.settings.license","app.settings.system"]).config(e)}(),function(){"use strict";function e(e){e.state("app.settings.license",{url:"/license",views:{"content@app":{templateUrl:"app/main/apps/settings/views/license/license.html",controller:"LicenseController as vm"}},authenticate:!0,permissionId:1400,bodyClass:"settings"})}e.$inject=["$stateProvider"],angular.module("app.settings.license",[]).config(e)}(),function(){"use strict";function e(e){e.state("app.settings.system",{url:"/system?tab",views:{"content@app":{templateUrl:"app/main/apps/settings/views/system/system.html",controller:"SystemController as vm"}},resolve:{system:["apiResolver",function(e){return e.resolve("system@get")}],processes:["apiResolver",function(e){return e.resolve("pm2@get")}]},authenticate:!0,permissionId:1400,bodyClass:"settings"})}e.$inject=["$stateProvider"],angular.module("app.settings.system",[]).config(e)}(),function(){"use strict";function e(e){e.state("app.settings.updates",{url:"/updates",views:{"content@app":{templateUrl:"app/main/apps/settings/views/updates/updates.html",controller:"UpdatesController as vm"}},resolve:{version:["apiResolver",function(e){return e.resolve("version@get",{latest:!0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1400})}]},authenticate:!0,permissionId:1400,bodyClass:"settings"})}e.$inject=["$stateProvider"],angular.module("app.settings.updates",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.sms",{abstract:!0,url:"/sms"}).state("app.sms.smsQueues",{url:"/smsQueues",views:{"content@app":{templateUrl:"app/main/apps/sms/views/smsQueues/smsQueues.html",controller:"SmsQueuesController as vm"}},resolve:{smsQueues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("smsQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"sms",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SmsQueues",fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"sms",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:701})}]},authenticate:!0,permissionId:701,bodyClass:"sms"}).state("app.sms.smsQueues.edit",{url:"/:id?tab",params:{smsQueue:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/sms/views/smsQueues/edit/view.html",controller:"SmsQueueController as vm"}},resolve:{smsQueue:["apiResolver","$stateParams",function(e,n){return e.resolve("smsQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:701})}]},authenticate:!0,permissionId:701,bodyClass:"sms"}).state("app.sms.smsAccounts",{url:"/smsAccounts",views:{"content@app":{templateUrl:"app/main/apps/sms/views/smsAccounts/smsAccounts.html",controller:"SmsAccountsController as vm"}},resolve:{smsAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("smsAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,type,phone,accountSid,authId,authToken,smsMethod,username,password,baseUrl,apiKey,accountId,applicationId,senderString,deliveryReport,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"SmsAccounts",fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,type,phone,accountSid,authId,authToken,smsMethod,username,password,baseUrl,apiKey,accountId,applicationId,senderString,deliveryReport,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:702})}]},authenticate:!0,permissionId:702,bodyClass:"sms"}).state("app.sms.smsAccounts.edit",{url:"/:id?tab",params:{smsAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/sms/views/smsAccounts/edit/view.html",controller:"SmsAccountController as vm"}},resolve:{smsAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("smsAccount@get",{fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,type,phone,accountSid,authId,authToken,smsMethod,username,password,baseUrl,apiKey,accountId,applicationId,senderString,deliveryReport,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadOmnichannelInteractions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:702})}]},authenticate:!0,permissionId:702,bodyClass:"sms"}),n.addPart("app/main/apps/sms")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.sms",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.sms.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.sms.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/sms/views/realtime/realtime.html",controller:"SmsRealtimeController as vm"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:710})}]},authenticate:!0,permissionId:710}).state("app.sms.realtime.agents",{url:"/agents",params:{channel:"sms"},controller:"AgentsRealtimeController as vm",templateUrl:"app/main/apps/realtime/views/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getAgents",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}]},authenticate:!0,permissionId:710}).state("app.sms.realtime.queues",{url:"/queues",controller:"QueuesSmsRealtimeController as vm",templateUrl:"app/main/apps/sms/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"SmsQueues":void 0,channel:"sms",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:701})}]},authenticate:!0,permissionId:710})}e.$inject=["$stateProvider"],angular.module("app.sms.realtime",[]).config(e)}(),function(){"use strict";function e(e,n){e.state("app.staff",{abstract:!0,url:"/staff"}).state("app.staff.users",{url:"/users",views:{"content@app":{templateUrl:"app/main/apps/staff/views/users/users.html",controller:"UsersController as vm"}},resolve:{users:["apiResolver",function(e){return e.resolve("user@get",{fields:"createdAt,updatedAt,role,userProfileId,id,fullname,name,email,phone,mobile,userpic,password,description,autointernal,internal,transport,nat,allow,context,callgroup,pickupgroup,passwordResetAt,apiKey,videosupport,disabled,blocked",role:"admin,user",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:201})}]},authenticate:!0,permissionId:201,bodyClass:"staff"}).state("app.staff.users.edit",{url:"/:id?tab",params:{user:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/staff/views/users/edit/view.html",controller:"UserController as vm"}},resolve:{user:["apiResolver","$stateParams",function(e,n){return e.resolve("user@get",{fields:"createdAt,updatedAt,role,userProfileId,id,fullname,name,email,phone,mobile,userpic,password,description,autointernal,internal,transport,nat,allow,context,callgroup,pickupgroup,passwordResetAt,apiKey,videosupport,disabled,blocked",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:201})}]},authenticate:!0,permissionId:201,bodyClass:"staff"}).state("app.staff.agents",{url:"/agents",views:{"content@app":{templateUrl:"app/main/apps/staff/views/agents/agents.html",controller:"AgentsController as vm"}},resolve:{agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"createdAt,updatedAt,id,role,fullname,name,alias,showWebBar,email,phone,mobile,userpic,password,hotdesk,autointernal,internal,loginInPause,description,dtlscertfile,dtlsprivatekey,wssPort,voicemail,transport,host,nat,type,allow,callerid,context,callgroup,pickupgroup,chanspy,videosupport,extensionMonitor,chatCapacity,mailCapacity,smsCapacity,openchannelCapacity,faxCapacity,whatsappCapacity,phoneBarEnableSettings,phoneBarAutoAnswer,phoneBarAutoAnswerDelay,phoneBarRingInUse,phoneBarEnableRecording,phoneBarEnableDtmfTone,phoneBarDnd,phoneBarUnansweredCallBadge,phoneBarEnableJaws,phoneBarOutboundProxy,phoneBarUnconditional,phoneBarUnconditionalNumber,phoneBarRemoteControl,phoneBarRemoteControlPort,phoneBarExpires,phoneBarListenPort,permissions,allowmessenger,phoneBarPrefixRequired,passwordResetAt,disabled,blocked,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording,privacyEnabled,downloadAttachments,downloadOmnichannelInteractions,downloadVoiceRecordings,selectRecallMeCampaign,ignorePauseForPreviewCalls",role:"agent",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"createdAt,updatedAt,id,role,fullname,name,alias,showWebBar,email,phone,mobile,userpic,password,hotdesk,autointernal,internal,loginInPause,description,dtlscertfile,dtlsprivatekey,wssPort,voicemail,transport,host,nat,type,allow,callerid,context,callgroup,pickupgroup,chanspy,videosupport,extensionMonitor,chatCapacity,mailCapacity,smsCapacity,openchannelCapacity,faxCapacity,whatsappCapacity,phoneBarEnableSettings,phoneBarAutoAnswer,phoneBarAutoAnswerDelay,phoneBarRingInUse,phoneBarEnableRecording,phoneBarEnableDtmfTone,phoneBarDnd,phoneBarUnansweredCallBadge,phoneBarEnableJaws,phoneBarOutboundProxy,phoneBarUnconditional,phoneBarUnconditionalNumber,phoneBarRemoteControl,phoneBarRemoteControlPort,phoneBarExpires,phoneBarListenPort,permissions,allowmessenger,phoneBarPrefixRequired,passwordResetAt,disabled,blocked,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording,privacyEnabled,downloadAttachments,downloadOmnichannelInteractions,downloadVoiceRecordings,selectRecallMeCampaign,ignorePauseForPreviewCalls",role:"agent",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}]},authenticate:!0,permissionId:202,bodyClass:"staff"}).state("app.staff.agents.edit",{url:"/:id?tab",params:{agent:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/staff/views/agents/edit/view.html",controller:"AgentController as vm"}},resolve:{agent:["apiResolver","$stateParams",function(e,n){return e.resolve("user@get",{fields:"createdAt,updatedAt,id,role,fullname,name,alias,showWebBar,email,phone,mobile,userpic,password,hotdesk,autointernal,internal,loginInPause,description,dtlscertfile,dtlsprivatekey,wssPort,voicemail,transport,host,nat,type,allow,callerid,context,callgroup,pickupgroup,chanspy,videosupport,extensionMonitor,chatCapacity,mailCapacity,smsCapacity,openchannelCapacity,faxCapacity,whatsappCapacity,phoneBarEnableSettings,phoneBarAutoAnswer,phoneBarAutoAnswerDelay,phoneBarRingInUse,phoneBarEnableRecording,phoneBarEnableDtmfTone,phoneBarDnd,phoneBarUnansweredCallBadge,phoneBarEnableJaws,phoneBarOutboundProxy,phoneBarUnconditional,phoneBarUnconditionalNumber,phoneBarRemoteControl,phoneBarRemoteControlPort,phoneBarExpires,phoneBarListenPort,permissions,allowmessenger,phoneBarPrefixRequired,passwordResetAt,disabled,blocked,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording,privacyEnabled,downloadAttachments,downloadOmnichannelInteractions,downloadVoiceRecordings,selectRecallMeCampaign,ignorePauseForPreviewCalls",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}]},authenticate:!0,permissionId:202,bodyClass:"staff"}).state("app.staff.telephones",{url:"/telephones",views:{"content@app":{templateUrl:"app/main/apps/staff/views/telephones/telephones.html",controller:"TelephonesController as vm"}},resolve:{telephones:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"createdAt,updatedAt,id,role,fullname,name,email,password,description,autointernal,internal,voicemail,transport,nat,allow,callerid,context,callgroup,pickupgroup,videosupport,encryption,phone,mobile",role:"telephone",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Telephones",fields:"createdAt,updatedAt,id,role,fullname,name,email,password,description,autointernal,internal,voicemail,transport,nat,allow,callerid,context,callgroup,pickupgroup,videosupport,encryption,phone,mobile",role:"telephone",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:203})}]},authenticate:!0,permissionId:203,bodyClass:"staff"}).state("app.staff.telephones.edit",{url:"/:id?tab",params:{telephone:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/staff/views/telephones/edit/view.html",controller:"TelephoneController as vm"}},resolve:{telephone:["apiResolver","$stateParams",function(e,n){return e.resolve("user@get",{fields:"createdAt,updatedAt,id,role,fullname,name,email,password,description,autointernal,internal,voicemail,transport,nat,allow,callerid,context,callgroup,pickupgroup,videosupport,encryption,phone,mobile",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:203})}]},authenticate:!0,permissionId:203,bodyClass:"staff"}).state("app.staff.teams",{url:"/teams",views:{"content@app":{templateUrl:"app/main/apps/staff/views/teams/teams.html",controller:"TeamsController as vm"}},resolve:{teams:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("team@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Teams",fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:204})}]},authenticate:!0,permissionId:204,bodyClass:"staff"}).state("app.staff.userProfiles",{url:"/userProfiles",views:{"content@app":{templateUrl:"app/main/apps/staff/views/userProfiles/userProfiles.html",controller:"UserProfilesController as vm"}},resolve:{userProfiles:["apiResolver",function(e){return e.resolve("userProfile@get",{fields:"createdAt,updatedAt,id,name,description,crudPermissions,privacyEnabled,downloadAttachments,downloadCallySquareRecordings,downloadContactManagerLists,downloadJscriptySessions,downloadOmnichannelInteractions,downloadScreenRecordings,downloadVoiceRecordings",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:205})}]},authenticate:!0,permissionId:205,bodyClass:"staff"}).state("app.staff.userProfiles.edit",{url:"/:id?tab",params:{userProfile:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/staff/views/userProfiles/edit/view.html",controller:"UserProfileController as vm"}},resolve:{userProfile:["apiResolver","$stateParams",function(e,n){return e.resolve("userProfile@get",{fields:"createdAt,updatedAt,id,name,description,crudPermissions,privacyEnabled,downloadAttachments,downloadCallySquareRecordings,downloadContactManagerLists,downloadJscriptySessions,downloadOmnichannelInteractions,downloadScreenRecordings,downloadVoiceRecordings",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:205})}]},authenticate:!0,permissionId:205,bodyClass:"staff"}),n.addPart("app/main/apps/staff")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.staff",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter"]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.tools",{abstract:!0,url:"/tools"}).state("app.tools.cannedAnswers",{url:"/cannedAnswers",views:{"content@app":{templateUrl:"app/main/apps/tools/views/cannedAnswers/cannedAnswers.html",controller:"CannedAnswersController as vm"}},resolve:{cannedAnswers:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cannedAnswer@get",{fields:"createdAt,updatedAt,id,key,value,description",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"CannedAnswers",fields:"createdAt,updatedAt,id,key,value,description",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1001})}]},authenticate:!0,permissionId:1001,bodyClass:"tools"}).state("app.tools.customDashboards",{url:"/customDashboards",views:{"content@app":{templateUrl:"app/main/apps/tools/views/customDashboards/customDashboards.html",controller:"CustomDashboardsController as vm"}},resolve:{customDashboards:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("dashboard@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"CustomDashboards",fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1003})}]},authenticate:!0,permissionId:1003,bodyClass:"tools"}).state("app.tools.customDashboards.edit",{url:"/:id?tab",params:{customDashboard:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/tools/views/customDashboards/edit/view.html",controller:"CustomDashboardController as vm"}},resolve:{customDashboard:["apiResolver","$stateParams",function(e,n){return e.resolve("dashboard@get",{fields:"createdAt,updatedAt,id,name,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1003})}]},authenticate:!0,permissionId:1003,bodyClass:"tools"}).state("app.tools.intervals",{url:"/intervals",views:{"content@app":{templateUrl:"app/main/apps/tools/views/intervals/intervals.html",controller:"IntervalsController as vm"}},resolve:{intervals:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("interval@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",IntervalId:"null",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Intervals",fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",IntervalId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1004})}]},authenticate:!0,permissionId:1004,bodyClass:"tools"}).state("app.tools.intervals.edit",{url:"/:id?tab",params:{interval:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/tools/views/intervals/edit/view.html",controller:"IntervalController as vm"}},resolve:{interval:["apiResolver","$stateParams",function(e,n){return e.resolve("interval@get",{fields:"createdAt,updatedAt,id,name,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1004})}]},authenticate:!0,permissionId:1004,bodyClass:"tools"}).state("app.tools.pauses",{url:"/pauses",views:{"content@app":{templateUrl:"app/main/apps/tools/views/pauses/pauses.html",controller:"PausesController as vm"}},resolve:{pauses:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("pause@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Pauses",fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1005})}]},authenticate:!0,permissionId:1005,bodyClass:"tools"}).state("app.tools.schedules",{url:"/schedules",views:{"content@app":{templateUrl:"app/main/apps/tools/views/schedules/schedules.html",controller:"SchedulesController as vm"}},resolve:{schedules:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("schedule@get",{fields:"createdAt,updatedAt,id,name,CustomReportId,DefaultReportId,output,active,startAt,endAt,cron,subtractNumber,subtractUnit,sendMail,MailAccountId,email,cc,bcc,sendIfEmpty,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Scheduler",fields:"createdAt,updatedAt,id,name,CustomReportId,DefaultReportId,output,active,startAt,endAt,cron,subtractNumber,subtractUnit,sendMail,MailAccountId,email,cc,bcc,sendIfEmpty,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1006})}]},authenticate:!0,permissionId:1006,bodyClass:"tools"}).state("app.tools.sounds",{url:"/sounds",views:{"content@app":{templateUrl:"app/main/apps/tools/views/sounds/sounds.html",controller:"SoundsController as vm"}},resolve:{sounds:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("sound@get",{fields:"createdAt,updatedAt,id,save_name,converted_format,name,audio,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Sounds",fields:"createdAt,updatedAt,id,save_name,converted_format,name,audio,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1007})}]},authenticate:!0,permissionId:1007,bodyClass:"tools"}).state("app.tools.tags",{url:"/tags",views:{"content@app":{templateUrl:"app/main/apps/tools/views/tags/tags.html",controller:"TagsController as vm"}},resolve:{tags:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("tag@get",{fields:"createdAt,updatedAt,id,name,description,color",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Tags",fields:"createdAt,updatedAt,id,name,description,color",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1008})}]},authenticate:!0,permissionId:1008,bodyClass:"tools"}).state("app.tools.templates",{url:"/templates",views:{"content@app":{templateUrl:"app/main/apps/tools/views/templates/templates.html",controller:"TemplatesController as vm"}},resolve:{templates:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("template@get",{fields:"createdAt,updatedAt,id,name,html,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Templates",fields:"createdAt,updatedAt,id,name,html,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1009})}]},authenticate:!0,permissionId:1009,bodyClass:"tools"}).state("app.tools.trunks",{url:"/trunks",views:{"content@app":{templateUrl:"app/main/apps/tools/views/trunks/trunks.html",controller:"TrunksController as vm"}},resolve:{trunks:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("trunk@get",{fields:"createdAt,updatedAt,id,name,active,host,secret,defaultuser,context,callerid,type,dtmfmode,nat,qualify,allow,insecure,call_limit,registry,description,directmedia,callcounter,fromdomain,fromuser,outboundproxy,usereqphone,trustrpid,sendrpid,encryption,port,transport,t38pt_udptl,videosupport,otherFields",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Trunks",fields:"createdAt,updatedAt,id,name,active,host,secret,defaultuser,context,callerid,type,dtmfmode,nat,qualify,allow,insecure,call_limit,registry,description,directmedia,callcounter,fromdomain,fromuser,outboundproxy,usereqphone,trustrpid,sendrpid,encryption,port,transport,t38pt_udptl,videosupport,otherFields",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1011})}]},authenticate:!0,permissionId:1011,bodyClass:"tools"}).state("app.tools.trunks.edit",{url:"/:id?tab",params:{trunk:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/tools/views/trunks/edit/view.html",controller:"TrunkController as vm"}},resolve:{trunk:["apiResolver","$stateParams",function(e,n){return e.resolve("trunk@get",{fields:"createdAt,updatedAt,id,name,active,host,secret,defaultuser,context,callerid,type,dtmfmode,nat,qualify,allow,insecure,call_limit,registry,description,directmedia,callcounter,fromdomain,fromuser,outboundproxy,usereqphone,trustrpid,sendrpid,encryption,port,transport,t38pt_udptl,videosupport,otherFields",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1011})}]},authenticate:!0,permissionId:1011,bodyClass:"tools"}).state("app.tools.variables",{url:"/variables",views:{"content@app":{templateUrl:"app/main/apps/tools/views/variables/variables.html",controller:"VariablesController as vm"}},resolve:{variables:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("variable@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Variables",fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1012})}]},authenticate:!0,permissionId:1012,bodyClass:"tools"}),n.addPart("app/main/apps/tools")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.tools",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.tools.dispositions","app.tools.triggers"]).config(e)}(),function(){"use strict";function e(e){e.state("app.tools.dispositions",{url:"/dispositions",views:{"content@app":{templateUrl:"app/main/apps/tools/views/dispositions/dispositions.html",controller:"DispositionsController as vm"}},resolve:{dispositions:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("disposition@get",{fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",WhatsappAccountId:"null",ListId:"null",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Dispositions",fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",WhatsappAccountId:"null",ListId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1002})}]},authenticate:!0,permissionId:1002,bodyClass:"tools"})}e.$inject=["$stateProvider"],angular.module("app.tools.dispositions",[]).config(e)}(),function(){"use strict";function e(e){e.state("app.tools.triggers",{url:"/triggers",views:{"content@app":{templateUrl:"app/main/apps/tools/views/triggers/triggers.html",controller:"TriggersController as vm"}},resolve:{triggers:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("trigger@get",{fields:"createdAt,updatedAt,id,name,channel,status,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Triggers",fields:"createdAt,updatedAt,id,name,channel,status,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1010})}]},authenticate:!0,permissionId:1010,bodyClass:"tools"}).state("app.tools.triggers.edit",{url:"/:id?tab",params:{trigger:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/tools/views/triggers/edit/view.html",controller:"TriggerController as vm"}},resolve:{trigger:["apiResolver","$stateParams",function(e,n){return e.resolve("trigger@get",{fields:"createdAt,updatedAt,id,name,channel,status,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1010})}]},authenticate:!0,permissionId:1010,bodyClass:"tools"})}e.$inject=["$stateProvider"],angular.module("app.tools.triggers",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.video",{abstract:!0,url:"/video"}).state("app.video.screenRecordings",{url:"/screenRecordings",views:{"content@app":{templateUrl:"app/main/apps/video/views/screenRecordings/screenRecordings.html",controller:"ScreenRecordingsController as vm"}},resolve:{screenRecordings:["apiResolver","Auth","msUtils",function(e,n,t){return n.hasRole("admin")?e.resolve("screenRecording@get",{fields:"createdAt,updatedAt,id,interactionid,channel,format,value,rating,UserId,duration,startedAt,closedAt",createdAt:t.firstLastDayMonth(),includeAll:"true",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ScreenRecordings",fields:"createdAt,updatedAt,id,interactionid,channel,format,value,rating,UserId,duration,startedAt,closedAt",createdAt:t.firstLastDayMonth(),includeAll:"true",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadScreenRecordings",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2001})}]},authenticate:!0,permissionId:2001,bodyClass:"video"}),n.addPart("app/main/apps/video")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.video",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter"]).config(e)}(),function(){"use strict";function e(e){e.state("app.voice.inboundRoutes",{url:"/inboundRoutes",views:{"content@app":{templateUrl:"app/main/apps/voice/views/inboundRoutes/inboundRoutes.html",controller:"InboundRoutesController as vm"}},resolve:{inboundRoutes:["apiResolver","Auth",function(e,n){return n.isAdmin()?e.resolve("voiceExtension@get",{fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"inbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"InboundRoutes",fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"inbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:402})}]},authenticate:!0,permissionId:402,bodyClass:"voice"}).state("app.voice.inboundRoutes.edit",{url:"/:id?tab",params:{inboundRoute:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/inboundRoutes/edit/view.html",controller:"InboundRouteController as vm"}},resolve:{inboundRoute:["apiResolver","$stateParams",function(e,n){return e.resolve("voiceExtension@get",{fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",id:n.id})}],contexts:["apiResolver",function(e){return e.resolve("voiceContext@get",{fields:"id,name",sort:"name"})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:402})}]},authenticate:!0,permissionId:402,bodyClass:"voice"})}e.$inject=["$stateProvider"],angular.module("app.voice.inboundRoutes",[]).config(e)}(),function(){"use strict";function e(e){e.state("app.voice.internalRoutes",{url:"/internalRoutes",views:{"content@app":{templateUrl:"app/main/apps/voice/views/internalRoutes/internalRoutes.html",controller:"InternalRoutesController as vm"}},resolve:{internalRoutes:["apiResolver","Auth",function(e,n){return n.isAdmin()?e.resolve("voiceExtension@get",{fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"internal",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"InternalRoutes",fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"internal",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:404})}]},authenticate:!0,permissionId:404,bodyClass:"voice"}).state("app.voice.internalRoutes.edit",{url:"/:id?tab",params:{internalRoute:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/internalRoutes/edit/view.html",controller:"InternalRouteController as vm"}},resolve:{internalRoute:["apiResolver","$stateParams",function(e,n){return e.resolve("voiceExtension@get",{fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",id:n.id})}],contexts:["apiResolver",function(e){return e.resolve("voiceContext@get",{fields:"id,name",sort:"name"})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:404})}]},authenticate:!0,permissionId:404,bodyClass:"voice"})}e.$inject=["$stateProvider"],angular.module("app.voice.internalRoutes",[]).config(e)}(),function(){"use strict";function e(e){e.state("app.voice.outboundRoutes",{url:"/outboundRoutes",views:{"content@app":{templateUrl:"app/main/apps/voice/views/outboundRoutes/outboundRoutes.html",controller:"OutboundRoutesController as vm"}},resolve:{outboundRoutes:["apiResolver","Auth",function(e,n){return n.isAdmin()?e.resolve("voiceExtension@get",{fields:"id,appdata,type,exten,context,recordingFormat,cutdigits,description,alias,createdAt,updatedAt",type:"outbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"OutboundRoutes",fields:"id,appdata,type,exten,context,recordingFormat,cutdigits,description,alias,createdAt,updatedAt",type:"outbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:403})}]},authenticate:!0,permissionId:403,bodyClass:"voice"}).state("app.voice.outboundRoutes.edit",{url:"/:id?tab",params:{outboundRoute:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/outboundRoutes/edit/view.html",controller:"OutboundRouteController as vm"}},resolve:{outboundRoute:["apiResolver","$stateParams",function(e,n){return e.resolve("voiceExtension@get",{fields:"id,appdata,type,exten,context,recordingFormat,cutdigits,description,alias,createdAt,updatedAt",id:n.id})}],contexts:["apiResolver",function(e){return e.resolve("voiceContext@get",{fields:"id,name",sort:"name"})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:403})}]},authenticate:!0,permissionId:403,bodyClass:"voice"})}e.$inject=["$stateProvider"],angular.module("app.voice.outboundRoutes",[]).config(e)}(),function(){"use strict";function e(e){e.state("app.voice.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/voice/views/realtime/realtime.html",controller:"VoiceRealtimeController as vm"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:411})}]},authenticate:!0,permissionId:411}).state("app.voice.realtime.agents",{url:"/agents",params:{channel:"voice",direction:"inbound"},controller:"AgentsRealtimeController as vm",templateUrl:"app/main/apps/realtime/views/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getAgents",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}]},authenticate:!0,permissionId:411}).state("app.voice.realtime.telephones",{url:"/telephones",controller:"TelephonesVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/telephones/view.html",resolve:{telephones:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,fullname,userpic,internal",role:"telephone",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Telephones",fields:"id,fullname,userpic,internal",role:"telephone",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:203})}],rpcTelephones:["apiResolver",function(e){return e.resolve("rpc@getTelephones")}]},authenticate:!0,permissionId:411}).state("app.voice.realtime.trunks",{url:"/trunks",controller:"TrunksVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/trunks/view.html",resolve:{trunks:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("trunk@get",{fields:"id,name",active:!0,sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Trunks",fields:"id,name",active:!0,sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:1011})}],rpcTrunks:["apiResolver",function(e){return e.resolve("rpc@getTrunks")}]},authenticate:!0,permissionId:411}).state("app.voice.realtime.queues",{url:"/queues",controller:"QueuesVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"VoiceQueues":void 0,channel:"voice",type:"inbound",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:401})}]},authenticate:!0,permissionId:411}).state("app.voice.realtime.queue_calls",{url:"/queue_calls",controller:"QueueCallsVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/queue_calls/view.html",resolve:{agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,role,context",role:"agent",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,role,context",role:"agent",nolimit:!0})}],queues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"inbound",sort:"-updatedAt",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceQueues",channel:"voice",type:"inbound",sort:"-updatedAt",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:401})}],rpcVoiceQueuesChannels:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueuesChannels")}]},authenticate:!0,permissionId:411}).state("app.voice.realtime.abandonedcalls",{url:"/abandonedcalls",controller:"AbandonedCallsVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/abandonedcalls/view.html",resolve:{agents:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("user@get",{fields:"id,name,role,context",role:"agent",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Agents",fields:"id,name,role,context",role:"agent",nolimit:!0})}],queues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"inbound",sort:"-updatedAt",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceQueues",channel:"voice",type:"inbound",sort:"-updatedAt",nolimit:!0})}],dispositions:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("disposition@get",{fields:"createdAt,updatedAt,id,name,level,ParentId",sort:"name",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Dispositions",fields:"createdAt,updatedAt,id,name",sort:"name",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:401})}]},authenticate:!0,permissionId:411}).state("app.voice.realtime.queue_params",{url:"/queue_params",controller:"QueueParamsVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/queue_params/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{type:"inbound",fields:"id,name",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceQueues",channel:"voice",type:"inbound",sort:"-updatedAt",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:401})}],rpcQueues:["apiResolver",function(e){return e.resolve("rpc@getVoiceQueues")}]},authenticate:!0,permissionId:411}).state("app.voice.realtime.outbound_calls",{url:"/outbound_calls",controller:"OutboundCallsVoiceRealtimeController as vm",templateUrl:"app/main/apps/voice/views/realtime/outbound_calls/view.html",resolve:{rpcCalls:["apiResolver",function(e){return e.resolve("rpc@getOutboundChannels")}]},authenticate:!0,permissionId:411})}e.$inject=["$stateProvider"],angular.module("app.voice.realtime",[]).config(e)}(),function(){"use strict";function e(e,n){e.state("app.voice",{abstract:!0,url:"/voice"}).state("app.voice.voiceQueues",{url:"/voiceQueues",views:{"content@app":{templateUrl:"app/main/apps/voice/views/voiceQueues/voiceQueues.html",controller:"VoiceQueuesController as vm"}},resolve:{voiceQueues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceQueue@get",{fields:"createdAt,updatedAt,id,name,type,strategy,timeout,maxlen,retry,wrapuptime,weight,joinempty,leavewhenempty,musiconhold,announce,description,periodic_announce,queue_reporthold,queue_youarenext,queue_thereare,queue_callswaiting,queue_holdtime,queue_minutes,queue_minute,queue_seconds,queue_thankyou,announce_frequency,min_announce_frequency,periodic_announce_frequency,random_periodic_announce,announce_holdtime,announce_position,announce_position_limit,reportholdtime,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,servicelevel,mandatoryDisposition,mandatoryDispositionPauseId",type:"inbound",sort:"-updatedAt",channel:"voice",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceQueues",fields:"createdAt,updatedAt,id,name,type,strategy,timeout,maxlen,retry,wrapuptime,weight,joinempty,leavewhenempty,musiconhold,announce,description,periodic_announce,queue_reporthold,queue_youarenext,queue_thereare,queue_callswaiting,queue_holdtime,queue_minutes,queue_minute,queue_seconds,queue_thankyou,announce_frequency,min_announce_frequency,periodic_announce_frequency,random_periodic_announce,announce_holdtime,announce_position,announce_position_limit,reportholdtime,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,servicelevel,mandatoryDisposition,mandatoryDispositionPauseId",type:"inbound",sort:"-updatedAt",channel:"voice",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:401})}]},authenticate:!0,permissionId:401,bodyClass:"voice"}).state("app.voice.voiceQueues.edit",{url:"/:id?tab",params:{voiceQueue:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/voiceQueues/edit/view.html",controller:"VoiceQueueController as vm"}},resolve:{voiceQueue:["apiResolver","$stateParams",function(e,n){return e.resolve("voiceQueue@get",{fields:"createdAt,updatedAt,id,name,type,strategy,timeout,maxlen,retry,wrapuptime,weight,joinempty,leavewhenempty,musiconhold,announce,description,periodic_announce,queue_reporthold,queue_youarenext,queue_thereare,queue_callswaiting,queue_holdtime,queue_minutes,queue_minute,queue_seconds,queue_thankyou,announce_frequency,min_announce_frequency,periodic_announce_frequency,random_periodic_announce,announce_holdtime,announce_position,announce_position_limit,reportholdtime,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,servicelevel,mandatoryDisposition,mandatoryDispositionPauseId",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:401})}]},authenticate:!0,permissionId:401,bodyClass:"voice"}).state("app.voice.contexts",{url:"/contexts",views:{"content@app":{templateUrl:"app/main/apps/voice/views/contexts/contexts.html",controller:"ContextsController as vm"}},resolve:{contexts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceContext@get",{fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",defaultEntry:"false",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Contexts",fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",defaultEntry:"false",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:405})}]},authenticate:!0,permissionId:405,bodyClass:"voice"}).state("app.voice.voicemails",{url:"/voicemails",views:{"content@app":{templateUrl:"app/main/apps/voice/views/voicemails/voicemails.html",controller:"VoicemailsController as vm"}},resolve:{voicemails:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceMail@get",{fields:"createdAt,updatedAt,id,customer_id,fullname,email,password,mailbox,context,tz,attach,envelope,delete,emailbody,emailsubject,maxsecs,maxmsg",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Voicemails",fields:"createdAt,updatedAt,id,customer_id,fullname,email,password,mailbox,context,tz,attach,envelope,delete,emailbody,emailsubject,maxsecs,maxmsg",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:406})}]},authenticate:!0,permissionId:406,bodyClass:"voice"}).state("app.voice.voicemails.edit",{url:"/:id?tab",params:{voicemail:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/voicemails/edit/view.html",controller:"VoicemailController as vm"}},resolve:{voicemail:["apiResolver","$stateParams",function(e,n){return e.resolve("voiceMail@get",{fields:"createdAt,updatedAt,id,customer_id,fullname,email,password,mailbox,context,tz,attach,envelope,delete,emailbody,emailsubject,maxsecs,maxmsg",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:406})}]},authenticate:!0,permissionId:406,bodyClass:"voice"}).state("app.voice.musiconholds",{url:"/musiconholds",views:{"content@app":{templateUrl:"app/main/apps/voice/views/musiconholds/musiconholds.html",controller:"MusicOnHoldsController as vm"}},resolve:{musiconholds:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceMusicOnHold@get",{fields:"createdAt,updatedAt,id,name,mode,directory,application,format,sort",defaultEntry:"false",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"MusicOnHolds",fields:"createdAt,updatedAt,id,name,mode,directory,application,format,sort",defaultEntry:"false",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:407})}]},authenticate:!0,permissionId:407,bodyClass:"voice"}).state("app.voice.musiconholds.edit",{url:"/:id?tab",params:{musiconhold:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/musiconholds/edit/view.html",controller:"MusicOnHoldController as vm"}},resolve:{musiconhold:["apiResolver","$stateParams",function(e,n){return e.resolve("voiceMusicOnHold@get",{fields:"createdAt,updatedAt,id,name,mode,directory,application,format,sort",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:407})}]},authenticate:!0,permissionId:407,bodyClass:"voice"}).state("app.voice.voiceRecordings",{url:"/voiceRecordings",views:{"content@app":{templateUrl:"app/main/apps/voice/views/voiceRecordings/voiceRecordings.html",controller:"VoiceRecordingsController as vm"}},resolve:{voiceRecordings:["apiResolver","Auth","msUtils",function(e,n,t){return n.hasRole("admin")?e.resolve("voiceRecording@get",{fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,membername,rating,audio,userDisposition,userSecondDisposition,userThirdDisposition,transcribeStatus,fileText,failureReason,sentiment,sPositive,sNegative,sNeutral,sMixed",sort:"-createdAt",createdAt:t.firstLastDayMonth(),limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoiceRecordings",fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,membername,rating,audio,userDisposition,userSecondDisposition,userThirdDisposition,transcribeStatus,fileText,failureReason,sentiment,sPositive,sNegative,sNeutral,sMixed",sort:"-createdAt",createdAt:t.firstLastDayMonth(),limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadVoiceRecordings,privacyEnabled",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:408})}]},authenticate:!0,permissionId:408,bodyClass:"voice"}).state("app.voice.voiceRecordings.edit",{url:"/:id?tab",params:{voiceRecording:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/voice/views/voiceRecordings/edit/view.html",controller:"VoiceRecordingController as vm"}},resolve:{voiceRecording:["apiResolver","$stateParams",function(e,n){return e.resolve("voiceRecording@get",{fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,membername,rating,audio,userDisposition,userSecondDisposition,userThirdDisposition,transcribeStatus,fileText,failureReason,sentiment,sPositive,sNegative,sNeutral,sMixed",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadVoiceRecordings,privacyEnabled",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:408})}]},authenticate:!0,permissionId:408,bodyClass:"voice"}).state("app.voice.chanSpies",{url:"/chanSpies",views:{"content@app":{templateUrl:"app/main/apps/voice/views/chanSpies/chanSpies.html",controller:"ChanSpiesController as vm"}},resolve:{chanSpies:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voiceChanSpy@get",{fields:"createdAt,updatedAt,id,name,prefix,options,auth,password,record,recordingFormat,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"ChanSpies",fields:"createdAt,updatedAt,id,name,prefix,options,auth,password,record,recordingFormat,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:409})}]},authenticate:!0,permissionId:409,bodyClass:"voice"}).state("app.voice.voicePrefixes",{url:"/voicePrefixes",views:{"content@app":{templateUrl:"app/main/apps/voice/views/voicePrefixes/voicePrefixes.html",controller:"VoicePrefixesController as vm"}},resolve:{voicePrefixes:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("voicePrefix@get",{fields:"createdAt,updatedAt,id,name,VoiceExtensionId,callerIdAll,description",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"VoicePrefixes",fields:"createdAt,updatedAt,id,name,VoiceExtensionId,callerIdAll,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:410})}]},authenticate:!0,permissionId:410,bodyClass:"voice"}),n.addPart("app/main/apps/voice")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.voice",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.voice.inboundRoutes","app.voice.outboundRoutes","app.voice.internalRoutes","app.voice.realtime"]).config(e)}(),function(){"use strict";function e(e){e.state("app.whatsapp.realtime",{url:"/realtime",views:{"content@app":{templateUrl:"app/main/apps/whatsapp/views/realtime/realtime.html",controller:"WhatsappRealtimeController as vm"}},resolve:{userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2110})}]},authenticate:!0,permissionId:2110}).state("app.whatsapp.realtime.agents",{url:"/agents",params:{channel:"whatsapp"},controller:"AgentsRealtimeController as vm",templateUrl:"app/main/apps/realtime/views/agents/view.html",resolve:{pauses:["apiResolver",function(e){return e.resolve("pause@get",{nolimit:!0})}],agents:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getAgents",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,fields:"id,name,fullname,role,userpic,internal,online,voicePause,openchannelPause,faxPause,chatPause,smsPause,whatsappPause,mailPause,pauseType,lastPauseAt,lastLoginAt,lastPauseAt,chatCapacity,mailCapacity,openchannelCapacity,faxCapacity,smsCapacity,whatsappCapacity,screenrecording,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording",sort:"fullname",nolimit:!0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:202})}]},authenticate:!0,permissionId:2110}).state("app.whatsapp.realtime.queues",{url:"/queues",controller:"QueuesWhatsappRealtimeController as vm",templateUrl:"app/main/apps/whatsapp/views/realtime/queues/view.html",resolve:{queues:["apiResolver","Auth",function(e,n){return e.resolve("realtime@getQueues",{id:n.isUser()?n.getCurrentUser().userProfileId:void 0,section:n.isUser()?"WhatsappQueues":void 0,channel:"whatsapp",sort:"name",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2101})}]},authenticate:!0,permissionId:2110})}e.$inject=["$stateProvider"],angular.module("app.whatsapp.realtime",[]).config(e)}(),function(){"use strict";function e(e,n,t,a){e.state("app.whatsapp",{abstract:!0,url:"/whatsapp"}).state("app.whatsapp.whatsappQueues",{url:"/whatsappQueues",views:{"content@app":{templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/whatsappQueues.html",controller:"WhatsappQueuesController as vm"}},resolve:{whatsappQueues:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("whatsappQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"whatsapp",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"WhatsappQueues",fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"whatsapp",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2101})}]},authenticate:!0,permissionId:2101,bodyClass:"whatsapp"}).state("app.whatsapp.whatsappQueues.edit",{url:"/:id?tab",params:{whatsappQueue:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/edit/view.html",controller:"WhatsappQueueController as vm"}},resolve:{whatsappQueue:["apiResolver","$stateParams",function(e,n){return e.resolve("whatsappQueue@get",{fields:"createdAt,updatedAt,id,name,strategy,timeout,description",id:n.id})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2101})}]},authenticate:!0,permissionId:2101,bodyClass:"whatsapp"}).state("app.whatsapp.whatsappAccounts",{url:"/whatsappAccounts",views:{"content@app":{templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/whatsappAccounts.html",controller:"WhatsappAccountsController as vm"}},resolve:{whatsappAccounts:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("whatsappAccount@get",{fields:"createdAt,updatedAt,id,name,key,ListId,remote,token,type,accountSid,authToken,phone,receiveUrl,deliveryReportUrl,notificationShake,notificationSound,notificationTemplate,queueTransfer,queueTransferTimeout,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,agentTransfer,agentTransferTimeout,description,baseUrl",sort:"-updatedAt",limit:10,offset:0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"WhatsappAccounts",fields:"createdAt,updatedAt,id,name,key,ListId,remote,token,type,accountSid,authToken,phone,receiveUrl,deliveryReportUrl,notificationShake,notificationSound,notificationTemplate,queueTransfer,queueTransferTimeout,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,agentTransfer,agentTransferTimeout,description",sort:"-updatedAt",limit:10,offset:0})}],userProfile:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?null:e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2102})}]},authenticate:!0,permissionId:2102,bodyClass:"whatsapp"}).state("app.whatsapp.whatsappAccounts.edit",{url:"/:id?tab",params:{whatsappAccount:void 0,crudPermissions:void 0},views:{"content@app":{templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/view.html",controller:"WhatsappAccountController as vm"}},resolve:{whatsappAccount:["apiResolver","$stateParams",function(e,n){return e.resolve("whatsappAccount@get",{fields:"createdAt,updatedAt,id,name,key,ListId,remote,token,type,accountSid,authToken,phone,receiveUrl,deliveryReportUrl,notificationShake,notificationSound,notificationTemplate,queueTransfer,queueTransferTimeout,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,agentTransfer,agentTransferTimeout,description,baseUrl",id:n.id})}],userProfile:["apiResolver","Auth",function(e,n){return n.isAdmin()?null:e.resolve("userProfile@get",{fields:"id,name,crudPermissions,downloadOmnichannelInteractions",id:n.getCurrentUser().userProfileId})}],userProfileSection:["apiResolver","Auth",function(e,n){return e.resolve("userProfileSection@get",{fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:n.getCurrentUser().userProfileId,sectionId:2102})}]},authenticate:!0,permissionId:2102,bodyClass:"whatsapp"}),n.addPart("app/main/apps/whatsapp")}e.$inject=["$stateProvider","$translatePartialLoaderProvider","msApiProvider","msNavigationServiceProvider"],angular.module("app.whatsapp",["ngCsv","ngPassword","md.data.table","flow","mdColorPicker","ckeditor","ng-sortable","ngAria","ngAnimate","mdPickers","mwFormBuilder","mwFormViewer","mwFormUtils","ngclipboard","angular-cron-jobs","ngEmbed","angularMaterialFormBuilder","material.components.expansionPanels","chart.js","angular.filter","app.whatsapp.realtime"]).config(e)}(),function(){"use strict";angular.module("app.navigation",[]).config(function(){})}(),function(){"use strict";function e(e,n){e.addPart("app/quick-panel")}e.$inject=["$translatePartialLoaderProvider","msApiProvider"],angular.module("app.quick-panel",[]).config(e)}(),function(){"use strict";function e(e,n){e.state("app.reset",{url:"/reset/:token",views:{"main@":{templateUrl:"app/core/layouts/content-only.html",controller:"MainController as vm"},"content@app.reset":{templateUrl:"app/reset/reset.html",controller:"ResetPasswordController as vm"}},bodyClass:"reset"}),n.addPart("app/reset")}e.$inject=["$stateProvider","$translatePartialLoaderProvider"],angular.module("app.reset",[]).config(e)}(),function(){"use strict";function e(e){e.addPart("app/toolbar")}e.$inject=["$translatePartialLoaderProvider"],angular.module("app.toolbar",[]).config(e)}(),function(){"use strict";function e(e){e.interceptors.push("authInterceptor")}e.$inject=["$httpProvider"],angular.module("app.auth").config(e)}(),function(){"use strict";function e(e){e.onBefore({to:function(e){return!0===e.authenticate}},function(e){var n=e.injector().get("Auth"),t=e.router.stateService;return n.isLoggedIn()?n.retrieveUser().catch(function(){return t.target("app.login",void 0,{reload:!0})}):t.target("app.login",void 0,{reload:!0})}),e.onStart({to:function(e){return"app.login"!==e.name}},function(e){var n=e.injector().get("Auth"),t=e.router.stateService,a=e.$to();if(n.hasRole("agent")&&"app.dashboards.general"!=a.name)return t.target("app.dashboards.general",{redirect:!1},{reload:!0})}),e.onFinish({to:function(e){return"app.help"===e.parent.name}},function(e){var n=e.router.stateService;if("app.help"===e.$to().parent.name){var t=e.injector().get("settingsManager"),a=t?t.get():null;if(!a||!a.viewHelpSection)return n.target("app.dashboards.general",{redirect:!1},{reload:!0})}}),e.onFinish({to:function(e){return e.permissionId}},function(e){var n=e.injector().get("Auth"),t=e.router.stateService,a=e.$to();if(n.hasRole("user")){if(!n.hasPermission(a.permissionId))return t.target("app.dashboards.general",{redirect:!1},{reload:!0});var i=e.params().id?Number(e.params().id):void 0;if(i)return n.hasResourcePermission(a.permissionId,i).catch(function(){return t.target(a.parent.name,{redirect:!1},{reload:!0})})}}),e.onFinish({to:function(e){return"app.dashboards.general"===e.parent.name}},function(e){var n=e.injector().get("Auth"),t=e.router.stateService;e.$to();if(n.hasRole("user")&&!n.hasPermission(100))return t.target("app.dashboards.general",{redirect:!1},{reload:!0})})}e.$inject=["$transitions"],angular.module("app.auth").run(e)}(),function(){"use strict";function e(a,e,o,n,i,r,l,s,d){var c;return{getToken:t,getCurrentUser:function(){return c},getPermissions:b,hasChildrenPermissions:function(e){return!!e&&_.some(e,function(e){return f(e)})},hasModulePermissions:function(i){return o(function(a,n){v()?a(!0):r.userProfileSection.get({userProfileId:c.userProfileId}).$promise.then(function(e){var n=e&&e.rows?e.rows:[];if(_.isEmpty(n))a(!1);else{var t=_.filter(n,function(e){return e.enabled});a(_.some(t,["category",i]))}}).catch(function(e){n(e)})})},hasModulesPermissions:function(s){return o(function(a,n){var i={};v()?(s.forEach(function(e){i[e]=!0}),a(i)):r.userProfileSection.get({userProfileId:c.userProfileId}).$promise.then(function(e){var n=e&&e.rows?e.rows:[];if(_.isEmpty(n))a({});else{var t=_(n).filter(function(e){return e.enabled&&_.includes(s,e.category)}).uniqBy(function(e){return e.category}).map(function(e){return e.category}).value();t.forEach(function(e){i[e]=!0}),a(i)}}).catch(function(e){n(e)})})},hasRole:function(e){return!!c&&c.role===e},hasPermission:f,hasResourcePermission:function(e,s){return o(function(a,i){return r.userProfileSection.get({userProfileId:c.userProfileId,sectionId:e}).$promise.then(function(e){var n=e.rows[0];if(n.autoAssociation)return a();var t=l.getActiveItem().node;return t.permissions&&!1===t.permissions.association?a():r.userProfileResource.get({sectionId:n.id,nolimit:!0}).$promise.then(function(e){var n=e.rows;_.some(n,["resourceId",s])?a():i()})}).catch(function(e){i("Error retrieving user profile permissions",e)})})},hasSectionPermissions:function(a){return o(function(e,n){var t={};return A().then(function(){_.includes(c.permissions,a)&&(t[a]=!0),e(t)}).catch(function(e){n(e)})})},hasSectionsPermissions:function(a){return o(function(e,n){var t={};if(!v())return A().then(function(){a.forEach(function(e){_.includes(c.permissions,e)&&(t[e]=!0)}),e(t)}).catch(function(e){n(e)});a.forEach(function(e){t[e]=!0}),e(t)})},isAgent:g,isAdmin:v,isLoggedIn:function(){return!!t()},isTelephone:function(){return"telephone"===c.role},isUser:h,login:function(e){return o(function(n,t){r.auth.local(e).$promise.then(function(e){return s.get().secureCookieEnabled?d.set("motion.token",e.token,{secure:!0,sameSite:"none"}):d.set("motion.token",e.token),r.user.get({id:e.id}).$promise}).then(function(e){(c=e).lastLoginAt=moment().format("YYYY-MM-DD HH:mm:ss"),E("LOCAL_LOGIN")}).then(function(){if(g()&&1===c.showWebBar&&c.hotdesk)return a.show({controller:"HotDeskDialogController",controllerAs:"vm",templateUrl:"app/auth/services/hotdesk/dialog.html",parent:angular.element(i.body),clickOutsideToClose:!1,resolve:{telephones:["apiResolver",function(e){return e.resolve("user@get",{fields:"id,fullname,name,internal",role:"telephone",nolimit:!0})}]}})}).then(function(e){return g()&&0!==c.showWebBar?m(e):v()||h()?u(!0):void 0}).then(function(e){c=_.assign(c,e),n()}).catch(function(e){t(e)})})},logout:function(t){return o(function(e,n){t?(p(),e()):o.resolve().then(function(){return g()&&0!==c.showWebBar?o(function(e,n){r.user.logout({id:c.id,device:"web"}).$promise.then(function(){e()}).catch(function(e){n(e)})}):v()||h()?u(!1):void 0}).then(function(){p(),e()}).catch(function(e){n(e)})})},parseCrudPermissions:function(e){return v()?{readOnly:!1,canEdit:!0,canDelete:!0}:e?{readOnly:!(!_.includes(e,"r")||1!==e.length),canEdit:!!_.includes(e,"e"),canDelete:!!_.includes(e,"d")}:{readOnly:!0,canEdit:!1,canDelete:!1}},queueLogin:m,reloadPermissions:A,removeCookies:p,retrieveUser:function(){return o(function(n,t){r.user.whoami().$promise.then(function(n){return"user"===n.role?b(n.userProfileId).then(function(e){return n.permissions=e,n}):n}).then(function(e){n(c=e)}).catch(function(e){t(e)})})},setCurrentUser:function(e){c=_.merge(c,e)},getAuthenticationType:function(){return n.localStorage["motion.authenticationtype"]||"NONE"},loginSSO:function(e){return E("SSO_LOGIN"),"/api/auth/"+e}};function t(){return e.get("motion.token")}function m(e){return o(function(n,t){r.user.login({id:c.id,device:"web",intrf:e}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}function u(a){return o(function(n,t){var e={online:a,lastLoginAt:a?moment().format("YYYY-MM-DD HH:mm:ss"):void 0};r.user.update({id:c.id},e).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}function p(){e.remove("motion.token"),c&&(n.localStorage.removeItem("motion.user:"+c.id),n.localStorage.removeItem("motion.authenticationtype"),c=null)}function g(){return"agent"===c.role}function v(){return"admin"===c.role}function h(){return"user"===c.role}function f(e){return!!c&&_.includes(c.permissions,e)}function b(e){var a=[];return o(function(n,t){return e||n(a),r.userProfile.getSections({id:e}).$promise.then(function(e){for(var n=0;n<e.length;n++){var t=e[n];a.push(t.sectionId),t.subsections&&(a=_.concat(a,t.subsections))}return a}).then(function(e){n(e)}).catch(function(e){t("Error retrieving user profile permissions",e)})})}function A(){return o(function(n,t){b(c.userProfileId).then(function(e){c.permissions=e,n()}).catch(function(e){t(e)})})}function E(e){n.localStorage["motion.authenticationtype"]=e}}e.$inject=["$mdDialog","$cookies","$q","$window","$document","api","msNavigationService","settingsManager","jscookie"],angular.module("app.auth").factory("Auth",e)}(),function(){"use strict";function e(n,e){this.telephones=e,this.closeDialog=function(e){n.hide(e)},e.count&&(this.name=e.rows[0].name)}e.$inject=["$mdDialog","telephones"],angular.module("app.auth").controller("HotDeskDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s;return{request:function(e){var n=t.get("motion.token");return e.headers=e.headers||{},i.isSameOrigin(e.url)&&n&&(e.headers.Authorization="Bearer "+n),e},responseError:function(e){switch(e.status){case 401:t.remove("motion.token"),(s||(s=a.get("$state"))).go("app.login")}return n.reject(e)}}}e.$inject=["$rootScope","$q","$cookies","$injector","Util"],angular.module("app.auth").factory("authInterceptor",e)}(),function(){"use strict";function e(n){var t={safeCb:function(e){return angular.isFunction(e)?e:angular.noop},urlParse:function(e){var n=document.createElement("a");return n.href=e,""===n.host&&(n.href=n.href),n},isSameOrigin:function(i,e){return i=t.urlParse(i),(e=(e=e&&[].concat(e)||[]).map(t.urlParse)).push(n.location),1<=(e=e.filter(function(e){var n=i.hostname===e.hostname,t=i.protocol===e.protocol,a=i.port===e.port||""===e.port&&("80"===i.port||"443"===i.port);return n&&t&&a})).length}};return t}e.$inject=["$window"],angular.module("app.auth").factory("Util",e)}(),function(){"use strict";angular.module("app.core").provider("motionConfig",function(){var t={disableCustomScrollbars:!1,disableMdInkRippleOnMobile:!0,disableCustomScrollbarsOnMobile:!0};this.config=function(e){t=angular.extend({},t,e)},this.$get=function(){var e={getConfig:function(e){if(angular.isUndefined(t[e]))return!1;return t[e]},setConfig:function(e,n){t[e]=n}};return e}})}(),function(){"use strict";function e(e,n,t,a){n.debugEnabled(!0),e.config({tabindex:!1}),a.config({disableCustomScrollbars:!1,disableCustomScrollbarsOnMobile:!0,disableMdInkRippleOnMobile:!0}),t.config({wheelPropagation:!0})}e.$inject=["$ariaProvider","$logProvider","msScrollConfigProvider","motionConfigProvider"],angular.module("app.core").config(e)}(),function(){"use strict";function e(e,n,t){(n.generate(),t.getConfig("disableMdInkRippleOnMobile")&&e.isMobile())&&angular.element("body").attr("md-no-ink",!0);e.isMobile()&&angular.element("html").addClass("is-mobile");var a=e.detectBrowser();if(a){var i=a.browser+" "+a.version+" "+a.os;angular.element("html").addClass(i)}}e.$inject=["msUtils","motionGenerator","motionConfig"],angular.module("app.core").run(e)}(),function(){"use strict";function e(n,e,t,a,i,s){var l=this;function o(){var e=_.filter(l.searchOptions.conditions,["disabled",!1]),o=[],r="";if(_(e).groupBy("name").forEach(function(e){var n=e[0],t=1<e.length,a=n.query.column;if(t){var i=_(e).groupBy(function(e){return e.query.operator}).mapValues(function(e){return _.chain(e).map(function(e){return e.query.value}).flattenDeep().value()}).value(),s=[];_.keys(i).forEach(function(e){var n=i[e],t=e;_.includes(["$between","$in","$notIn"],e)?t+="["+n+"]":n.forEach(function(e){t+="["+e+"]"}),s.push(t)}),r+=a+":="+s.join(":=")}else r=a+":="+n.query.operator+"["+n.query.value+"]";o.push(r)}),0!==o.length){var n="["+l.searchOptions.matchType+"]";return n+=o.join("||")}}function r(){var e=n.localStorage.getItem("motion2."+s+":"+l.currentUser.id);return e?JSON.parse(e):{}}function d(e){n.localStorage.setItem("motion2."+s+":"+l.currentUser.id,JSON.stringify(e))}function c(){if(s){var e=r();e.advancedSearch=_.omit(l.searchOptions,"fields"),d(e)}}function m(){return!!r().advancedSearch}l.currentUser=t.getCurrentUser(),l.searchOptions={matchType:"$and",conditions:[],fields:i},l.toolbarColor=a,l.onInit=function(){if(s){var e=r();e.hasOwnProperty("advancedSearch")&&(l.searchOptions=_.merge(l.searchOptions,e.advancedSearch))}},l.applyFilter=function(){c(),e.hide({apply:!0,value:o()})},l.clearConditions=function(){l.searchOptions.conditions=[],function(){if(s){var e=r();delete e.advancedSearch,e.query&&delete e.query.search,d(e)}}()},l.minimize=function(){c(),e.hide({apply:!m(),value:o()||m()?!_.isEmpty(l.searchOptions.conditions):void 0})},l.close=function(){e.hide({apply:!m(),value:o()||m()?!_.isEmpty(l.searchOptions.conditions):void 0})}}e.$inject=["$window","$mdDialog","Auth","color","fields","storagePath"],angular.module("app.core").controller("AdvancedSearchController",e)}(),function(){"use strict";function e(a){return{restrict:"A",link:function(e,n,t){e.$watch(t.focusOn,function(e){a(function(){e?n[0].focus():n[0].blur()})})}}}e.$inject=["$timeout"],angular.module("app.core").directive("focusOn",e)}(),function(){"use strict";function e(o,l,d){return{restrict:"E",compile:function(e,n){var s;return n.code||(s=e.html(),e.empty()),function(t,a,r){r.code&&(s=t.$eval(r.code));var i=t.$eval(r.shouldInterpolate);l.when(s).then(function(e){if(e){i&&(e=d(e)(t));var n=angular.element('<pre><code class="highlight" ng-non-bindable></code></pre>');a.append(n),o(function(){!function(e,n){var t=n.find("code"),a=e.split("\n"),i=(a=a.filter(function(e){return e.trim().length}))[0].match(/^\s*/)[0],s=new RegExp("^"+i);a=a.map(function(e){return e.replace(s,"").replace(/\s+$/,"")});var o=hljs.highlight(r.language||r.lang,a.join("\n"),!0);o.value=o.value.replace(/=<span class="hljs-value">""<\/span>/gi,"").replace("<head>","").replace("<head/>",""),t.append(o.value).addClass("highlight")}(e,n)},34,!1)}})}}}}e.$inject=["$timeout","$q","$interpolate"],angular.module("app.core").directive("hljs",e)}(),function(){"use strict";function e(a,i,s,o){var r=this;function n(){var a=r.selectedField.options&&!_.isEmpty(r.selectedField.options.extraOperators),i=r.selectedField.options&&!_.isEmpty(r.selectedField.options.excludedOperators);r.availableOperators=_.filter(r.operators,function(n){var e=!n.applyTo||_.includes(n.applyTo,r.selectedField.type);n.isExtra=a&&_.some(r.selectedField.options.extraOperators,function(e){return e===n.type});var t=_.includes(n.excludeFrom,r.selectedField.type)||i&&_.includes(r.selectedField.options.excludedOperators,n.type);if((e||n.isExtra)&&!t)return n})}function t(){!r.value||_.isArray(r.value)&&_.isEmpty(r.value)?r.isValidCondition=!1:r.selectedOperator&&"$between"===r.selectedOperator.type?r.isValidCondition=!(!r.endRangeValue||!r.isValidRange):r.isValidCondition=!0}function e(){"number"===r.selectedField.type?_.isNumber(r.endRangeValue)?r.isValidRange=Number(r.endRangeValue)>Number(r.value):r.isValidRange=!0:"date"===r.selectedField.type&&(r.maxDateRange=moment(r.endRangeValue).subtract(1,"day"),r.isValidRange=!0),t()}function l(){var e=c();r.options.conditions.push(e),u()}function d(){var e=c(),n=_.findIndex(r.options.conditions,"style");r.options.conditions.splice(n,1,e),u(),r.pendingCondition.style=null,r.pendingCondition=void 0}function c(){return{name:r.selectedField.name,operator:a.instant("DASHBOARDS."+r.selectedOperator.translate),value:r.value,endValue:r.endRangeValue,displayValue:m(r.value),displayEndValue:m(r.endRangeValue),query:{column:r.selectedField.column,operator:r.selectedOperator.type,value:function(){var e,n=r.value,t=r.endRangeValue;switch(r.selectedField.type){case"date":var a=moment(n).utcOffset(0,!0).format("YYYY-MM-DD");if("$between"===r.selectedOperator.type){var i=moment(t).utcOffset(0,!0).format("YYYY-MM-DD");e=[a,i]}else e=a;break;case"number":e="$between"===r.selectedOperator.type?[n,t]:n;break;case"multiselect":var s=r.selectedField.options.field||"id";e=_.map(n,s);break;case"select":e=n.id;break;case"autocomplete":e=r.selectedOperator.isExtra?n:n.id;break;default:e=n}return e}()},disabled:!1}}function m(e){var n;if(e){switch(r.selectedField.type){case"date":n=moment(e).format("YYYY-MM-DD");break;case"multiselect":var t=_.map(e,function(e){return e.name});n="$eq"===r.selectedOperator.type?t.join(" or "):t.join(" and ");break;case"select":n=e.name;break;case"autocomplete":n=r.selectedOperator.isExtra?e:e.displayValue;break;default:n=e}return n}}function u(){r.value=null,r.endRangeValue=null,r.minDateRange=null,r.maxDateRange=null,r.isValidCondition=!1}r.operators=r.availableOperators=[{type:"$eq",symbol:"=",translate:"EQUALS",excludeFrom:["multiselect"]},{type:"$ne",symbol:"≠",translate:"IS_NOT_EQUAL",excludeFrom:["multiselect"]},{type:"$in",symbol:"∈",translate:"IS_AMONG",applyTo:["multiselect"]},{type:"$notIn",symbol:"∉",translate:"IS_NOT_AMONG",applyTo:["multiselect"]},{type:"$substring",symbol:"⊃",translate:"CONTAINS",applyTo:["text"]},{type:"$startsWith",symbol:"a..",translate:"STARTS_WITH",applyTo:["text"]},{type:"$endsWith",symbol:"..a",translate:"ENDS_WITH",applyTo:["text"]},{type:"$lt",symbol:"<",translate:"IS_LESS_THAN",applyTo:["date","number"]},{type:"$gt",symbol:">",translate:"IS_GREATER_THAN",applyTo:["date","number"]},{type:"$lte",symbol:"≤",translate:"IS_LESS_THAN_OR_EQUAL_TO",applyTo:["date","number"]},{type:"$gte",symbol:"≥",translate:"IS_GREATER_THAN_OR_EQUAL_TO",applyTo:["date","number"]},{type:"$between",symbol:"≬",translate:"IS_BETWEEN",applyTo:["date","number"]}],r.addCondition=l,r.editCondition=function(e){r.pendingCondition=e,r.pendingCondition.style="md-amber-200-bg",r.selectedField=_.find(r.options.fields,["name",r.pendingCondition.name]),n(),r.selectedOperator=_.find(r.availableOperators,["type",r.pendingCondition.query.operator]),"date"===r.selectedField.type&&"string"==typeof r.pendingCondition.value?(r.value=new Date(r.pendingCondition.value),r.minDateRange=moment(r.value).add(1,"day"),r.endRangeValue=r.pendingCondition.endValue?new Date(r.pendingCondition.endValue):void 0):(r.value=r.pendingCondition.value,r.endRangeValue=r.pendingCondition.endValue);r.isValidRange=!0,r.isValidCondition=!0},r.updateCondition=d,r.cancelUpdateCondition=function(){r.pendingCondition.style=null,r.pendingCondition=void 0},r.setConditionStatus=function(e){e.style=e.disabled?void 0:"chip-disabled",e.disabled=!e.disabled},r.removeCondition=function(){_.isEmpty(r.options.conditions)&&r.clearFilter()},r.getValues=function(){var n=angular.copy(r.selectedField.options.route);if("autocomplete"===r.selectedField.type)for(var e=0;e<Object.keys(n.params).length;e++){var t=Object.keys(n.params)[e];"@autocomplete"===n.params[t]&&(n.params[t]=r.searchText)}{if(!r.selectedField.values)return s[n.model][n.action](n.params).$promise.then(function(e){if("autocomplete"!==r.selectedField.type)return r.selectedField.values=e.rows;var n=r.searchText?_.filter(e.rows,function(e){e.displayValue="";for(var n=0;n<r.selectedField.options.searchFields.length;n++){var t=r.selectedField.options.searchFields[n],a=e[t]||"";e.displayValue+=a+" "}return _.trimEnd(e.displayValue),_.includes(e.displayValue.toLowerCase(),r.searchText.toLowerCase())}):[];return i.when(n)}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:n.model.toUpperCase()+"."+n.action.toUpperCase(),msg:e.data?JSON.stringify(e.data.message):e.toString()})});r.selectedField.values.forEach(function(e){e.translate&&(e.name=a.instant(e.translate))})}},r.onFieldChange=function(){r.value=void 0,r.endRangeValue=void 0,r.searchText=void 0,r.isValidCondition=!1,n(),r.autoSelectOperator=1===r.availableOperators.length,r.autoSelectOperator||(r.selectedOperator=void 0)},r.onOperatorChange=function(e){r.isValidRange=!0,r.selectedOperator&&(e?e.applyTo?0<_.difference(r.selectedOperator.applyTo,e.applyTo).length&&(r.value=null):r.selectedOperator.applyTo&&(r.value=null):r.value=null,"between"!=r.selectedOperator.type&&(r.endRangeValue=null),r.selectedField.options&&!_.isEmpty(r.selectedField.options.extraOperators)&&(r.selectedOperator.isExtra=_.some(r.selectedField.options.extraOperators,function(e){return e===r.selectedOperator.type})));t()},r.onValueChange=function(){r.selectedOperator&&"$between"===r.selectedOperator.type?"number"===r.selectedField.type?e():"date"===r.selectedField.type&&(r.minDateRange=moment(r.value).add(1,"day"),t()):t()},r.checkRange=e,r.handleKeyboardAction=function(){r.pendingCondition?d():l()}}e.$inject=["$translate","$q","api","toasty"],angular.module("app.core").directive("msAdvancedSearch",function(){return{restrict:"E",scope:{options:"=",clearFilter:"&"},controller:e,controllerAs:"vm",bindToController:!0,templateUrl:"app/core/directives/ms-advanced-search/ms-advanced-search.html"}})}(),function(){"use strict";angular.module("app.core").directive("msCard",function(){return{restrict:"E",scope:{templatePath:"=template",card:"=ngModel",vm:"=viewModel"},template:'<div class="ms-card-content-wrapper" ng-include="templatePath" onload="cardTemplateLoaded()"></div>',compile:function(e){return e.addClass("ms-card"),function(e,n){e.cardTemplateLoaded=function(){e.$emit("msCard::cardTemplateLoaded",n)}}}}})}(),function(){"use strict";angular.module("app.core").directive("msChipColor",function(){return{restrict:"A",link:function(e,i,n){n.$observe("msChipColor",function(e){var n=i.parent().parent();if(n.hasClass("md-background-bg md-hue-3")||n.addClass("md-background-bg md-hue-3"),_.isEmpty(e)){var t=n[0].className.split(" "),a=t.indexOf("md-hue-3");t.length=a+1,n[0].className=t.join(" ")}else n.addClass(e)})}}})}(),function(){"use strict";angular.module("app.core").directive("msClickToCall",function(){return{restrict:"E",scope:{type:"=",disabled:"=",target:"=",prefix:"=",license:"="},controller:["$scope","$rootScope","$http","$translate","$document","$mdDialog","Auth","toasty","api",function(t,n,a,i,s,o,e,r,l){function d(e){switch(t.currentUser.showWebBar){case 0:return m("http://127.0.0.1:"+(t.currentUser.phoneBarRemoteControlPort||"9888")+"/api/originate/"+c(e));case 2:return n.$broadcast("webrtc::call",{target:c(e)})}}function c(e){return _.isNil(e)?"":e.replace(/[^\w.+#*\-]+/g,"")}function m(e){return a.get(e).success(function(){r.success({title:"Successful call",msg:"Call properly handled!"})}).error(function(e){r.error({title:"PhoneBar API Error",msg:i.instant("CONTACTMANAGER.ERRORS.PHONEBAR_API")})})}t.currentUser=e.getCurrentUser(),t.privacy=t.currentUser.privacyEnabled,t.showMenu=function(){return t.target&&t.target.indexOf("@")<0&&t.target!=t.currentUser.internal&&t.target!=t.currentUser.name&&(0==t.currentUser.showWebBar&&t.currentUser.phoneBarRemoteControl||2==t.currentUser.showWebBar&&t.license.webrtc)&&!t.disabled},t.call=function(e){return 2!==t.currentUser.showWebBar?(n=e,l.user.getVoicePrefixes({id:t.currentUser.id}).$promise.then(function(e){if(e.count)return o.show({controller:"PrefixDialogController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/prefix/dialog.html",parent:angular.element(s.body),clickOutsideToClose:!0,locals:{prefixes:e,required:t.currentUser.phoneBarPrefixRequired}})}).then(function(e){t.currentUser.phoneBarPrefixRequired?e&&-1!==e&&d(e+n):e&&-1!==e?d(e+n):e||d(n)})):d(e);var n},t.transfer=function(e){switch(t.currentUser.showWebBar){case 0:return m("http://127.0.0.1:"+(t.currentUser.phoneBarRemoteControlPort||"9888")+"/api/transfer?number="+c(e));case 2:n.$broadcast("webrtc::transfer",{target:c(e)})}}}],templateUrl:"app/core/directives/ms-click-to-call/ms-click-to-call.html"}})}(),function(){"use strict";function e(i){return{require:"ngModel",priority:1,link:function(e,n,t,a){a.$formatters.push(i.formatter),a.$parsers.push(i.parser)}}}e.$inject=["msDatepickerFixConfig"],angular.module("app.core").provider("msDatepickerFixConfig",function(){var n={formatter:function(e){return e?""===e?e:new Date(e):""},parser:function(e){return e?moment(e).add(moment(e).utcOffset(),"m").toDate():""}};this.config=function(e){n=angular.extend({},n,e)},this.$get=function(){return n}}).directive("msDatepickerFix",e)}(),function(){"use strict";function e(s){return{restrict:"E",scope:{id:"=",model:"=",element:"=",title:"=",path:"="},replace:!0,link:function(n,e){var t=!1,a={};a.id=n.id,_.isNil(n.path)||(a.path=n.path);var i=document.createElement(n.element);i.setAttribute("preload","none"),i.setAttribute("controls","true"),"audio"===n.element&&i.setAttribute("style","width: 265px;"),"video"===n.element&&i.setAttribute("style","max-width: 500px;"),i.setAttribute("title",n.title),i.setAttribute("src"," "),i.onplay=function(e){t||(t=!0,e.preventDefault(),s[n.model].download(a).$promise.then(function(e){var n=[e.buffer],t=new Blob(n,{type:e.type});i.setAttribute("type",e.type),i.setAttribute("src",URL.createObjectURL(t)),i.play()}).catch(function(e){console.error(e)}))},e.append(i)}}}e.$inject=["api"],angular.module("app.core").directive("msDialogRecording",e)}(),function(){"use strict";function e(i){return{restrict:"A",link:function(t,a){a.bind("click",function(e){var n=i('<div layout="row" class="spinner-overlay" layout-sm="column" layout-align="center center" aria-label="wait"><md-progress-circular md-mode="indeterminate"></md-progress-circular></div>')(t);a.closest("md-dialog").prepend(n)})}}}e.$inject=["$compile"],angular.module("app.core").directive("msDialogSpinner",e)}(),function(){"use strict";function e(){var o=this;function a(e,n,t,a){var i=[];if(0<=t)i.push(e[t]),n.push(e[t]),e.splice(t,1);else{for(var s=0;s<e.length;s++)void 0!==e[s].isValid&&e[s].isValid&&n.push(e[s]);for(s=e.length-1;0<=s;s--)e[s].isValid&&e.splice(s,1);i=n}o.options.transferCallback&&o.options.transferCallback(i,a)}o.canTransfer=function(e,n,t){if(void 0!==e.isValid&&e.isValid)return t?a(n.selectedItems,n.items,n.selectedItems.indexOf(e),t):a(n.items,n.selectedItems,n.items.indexOf(e),t)},o.transfer=a,o.getLine=function(e,n){var t="";if(_.isNil(n))return t;{if(_.isArray(n)){for(var a=0;a<n.length;a++)t+=" "+(e[n[a]]?e[n[a]]:"");return t}return e[n]?e[n]:""}}}angular.module("app.core").directive("msDualMultiselect",function(){return{restrict:"E",scope:{options:"=",readOnly:"=",addDisabled:"<"},controller:e,controllerAs:"vm",bindToController:!0,templateUrl:"app/core/directives/ms-dual-multiselect/ms-dual-multiselect.html"}})}(),function(){"use strict";function e(a){return{restrict:"E",replace:!0,scope:{onReply:"&",ngModel:"=",ctrlMethods:"=",pickerPosition:"=",search:"=",recentEmojis:"=",placeholder:"="},template:'<textarea class="emojionearea"></textarea>',link:function(t,e){var n=e.emojioneArea({pickerPosition:t.pickerPosition,search:t.search,recentEmojis:t.recentEmojis,placeholder:a.instant(t.placeholder||"Type a message"),attributes:{spellcheck:!0},events:{keyup:function(e,n){t.ngModel=this.getText(),t.onReply({event:n,body:this.getText()})},emojibtn_click:function(){t.ngModel=this.getText()}}});t.ngModel&&n[0].emojioneArea.setText(t.ngModel),t.internalControl=t.ctrlMethods||{},t.internalControl.setText=function(e){n[0].emojioneArea.setText(e)},t.internalControl.getText=function(){return n[0].emojioneArea.getText()},t.$watch("ngModel",function(e){e||n[0].emojioneArea.setText("")})}}}e.$inject=["$translate"],angular.module("app.core").directive("msEmojiArea",e)}(),function(){"use strict";angular.module("app.core").directive("msFontFamily",function(){return{restrict:"E",scope:{ngModel:"="},controller:["$scope",function(e){e.fonts=[{option:"Arial",value:"Arial,Helvetica,sans-serif"},{option:"Century Gothic",value:"Century Gothic,Futura,Didact Gothic,san-serif"},{option:"Calibri",value:"Calibri, Verdana, Geneva, sans-serif"},{option:"Comic Sans MS",value:"Comic Sans MS,cursive"},{option:"Courier New",value:"Courier New,Courier,monospace"},{option:"Georgia",value:"Georgia,serif"},{option:"Lucida Sans Unicode",value:"Lucida Sans Unicode,Lucida Grande,sans-serif"},{option:"Tahoma",value:"Tahoma,Geneva,sans-serif"},{option:"Times New Roman",value:"Times New Roman,Times,serif"},{option:"Trebuchet MS",value:"Trebuchet MS,Helvetica,sans-serif"},{option:"Verdana",value:"Verdana,Geneva,sans-serif"}]}],templateUrl:"app/core/directives/ms-font-family/ms-font-family.html"}})}(),function(){"use strict";angular.module("app.core").controller("MsFormWizardController",function(){var n=this;function e(){return n.forms.length}function t(){return 0===n.selectedIndex}function a(){return n.selectedIndex===e()-1}n.forms=[],n.selectedIndex=0,n.registerForm=function(e){n.forms.push(e)},n.previousStep=function(){if(t())return;n.selectedIndex--},n.nextStep=function(){if(a())return;n.selectedIndex++},n.firstStep=function(){n.selectedIndex=0},n.lastStep=function(){n.selectedIndex=e()-1},n.totalSteps=e,n.isFirstStep=t,n.isLastStep=a,n.currentStepInvalid=function(){return angular.isDefined(n.forms[n.selectedIndex])&&n.forms[n.selectedIndex].$invalid},n.previousStepInvalid=function(){return 0<n.selectedIndex&&angular.isDefined(n.forms[n.selectedIndex-1])&&n.forms[n.selectedIndex-1].$invalid},n.formsIncomplete=function(){for(var e=0;e<n.forms.length;e++)if(n.forms[e].$invalid)return!0;return!1},n.resetForm=function(){for(var e=n.selectedIndex=0;e<n.forms.length;e++)n.forms[e].$setPristine(),n.forms[e].$setUntouched()}}).directive("msFormWizard",function(){return{restrict:"E",scope:!0,controller:"MsFormWizardController as msWizard",compile:function(e){return e.addClass("ms-form-wizard"),function(){}}}}).directive("msFormWizardForm",function(){return{restrict:"A",require:["form","^msFormWizard"],compile:function(e){return e.addClass("ms-form-wizard-form"),function(e,n,t,a){var i=a[0],s=a[1];s.registerForm(i)}}}})}(),function(){"use strict";function e(i){return{restrict:"E",scope:{onClose:"&"},transclude:!0,templateUrl:"app/core/directives/ms-info-bar/ms-info-bar.html",link:function(e,n){var t=i.find("ms-info-bar-active"),a="ms-info-bar-active";t.addClass(a),e.removeInfoBar=function(){t.removeClass(a),n.remove(),e.onClose&&e.onClose(),e.$destroy()}}}}e.$inject=["$document"],angular.module("app.core").directive("msInfoBar",e)}(),function(){"use strict";function e(r,a,l,e){var d=this,n={columnCount:5,respectItemOrder:!1,reLayoutDebounce:400,responsive:{md:3,sm:2,xs:1}},t=!0;function i(){t&&e.cancel(t),t=e(function(){!function(){d.containerPos=d.container[0].getBoundingClientRect(),function(){d.columnCount=d.options.columnCount,l("gt-md")?d.columnCount=d.options.columnCount:l("md")?d.columnCount=d.columnCount>d.options.responsive.md?d.options.responsive.md:d.columnCount:l("sm")?d.columnCount=d.columnCount>d.options.responsive.sm?d.options.responsive.sm:d.columnCount:d.columnCount=d.options.responsive.xs;d.columnWidth=d.containerPos.width/d.columnCount}(),r.$broadcast("msMasonry:relayoutStarted"),d.items=d.container.find("ms-masonry-item");for(var e=Array.apply(null,new Array(d.columnCount)).map(function(){return 0}),n=0;n<d.items.length;n++){var t,a,i,s,o=d.items[n];(o=angular.element(o)).scope()&&o.scope().$broadcast("msMasonryItem:startReLayout"),o.css({width:d.columnWidth}),d.options.respectItemOrder?(i=n%d.columnCount,s=e[i]):(s=Math.min.apply(Math,e),i=e.indexOf(s)),e[i]=s+o[0].getBoundingClientRect().height,t=Math.round(i*d.columnWidth),a=s,o.css({transform:"translate3d("+t+"px,"+a+"px,0px)"}),o.addClass("placed"),o.scope()&&o.scope().$broadcast("msMasonryItem:finishReLayout")}}(),r.$broadcast("msMasonry:relayoutFinished")},d.options.reLayoutDebounce)}d.options=null,d.container=[],d.containerPos="",d.columnWidth="",d.items=[],d.reLayout=i,d.initialize=function(){d.options=d.options?angular.extend(n,d.options):n,r.$watch(function(){return d.container.width()},function(e,n){e!==n&&i()})},d.waitImagesLoaded=function(e,n){if("undefined"!=typeof imagesLoaded){var t=a.imagesLoaded(e);t.on("done",function(){n()})}else n()},r.$on("msMasonry:relayout",function(){i()})}function n(o){return{restrict:"AEC",controller:"msMasonryController",compile:function(i,s){return{pre:function(e,n,t,a){a.options=angular.fromJson(s.options||"{}"),a.container=i},post:function(e,n,t,a){o(function(){a.initialize()})}}}}}e.$inject=["$scope","$window","$mdMedia","$timeout"],n.$inject=["$timeout"],angular.module("app.core").controller("msMasonryController",e).directive("msMasonry",n).directive("msMasonryItem",function(){return{restrict:"AEC",require:"^msMasonry",priority:1,link:function(e,n,t,a){a.waitImagesLoaded(n,function(){a.reLayout()}),e.$on("msMasonryItem:finishReLayout",function(){e.$watch(function(){return n.height()},function(e,n){e!==n&&a.reLayout()})}),n.on("$destroy",function(){a.reLayout()})}}})}(),function(){"use strict";function e(t,e,a,i){var s=this;function o(e,n){s.selectedPalette=e,s.selectedHues=n}function r(){o(!(s.selectedColor={palette:"",hue:"",class:""}),!1),d()}function l(e,n){s.selectedColor={palette:e,hue:n,class:"md-"+e+"-"+n+"-bg",bgColorValue:i.rgba(s.palettes[e][n].value),fgColorValue:i.rgba(s.palettes[e][n].contrast)},"obj"!==s.msModelType||angular.equals(s.selectedColor,s.modelCtrl.$viewValue)||d(),o(e,s.palettes[e]),t.$selectedColor=s.selectedColor}function d(){"class"===s.msModelType?s.modelCtrl.$setViewValue(s.selectedColor.class):"obj"===s.msModelType&&s.modelCtrl.$setViewValue(s.selectedColor)}s.palettes=e,s.selectedPalette=!1,s.selectedHues=!1,t.$selectedColor={},s.activateHueSelection=o,s.selectColor=function(e,n){l(e,n),d(),a.hide()},s.removeColor=r,t.$watch("ngModel",function(){if(!s.modelCtrl.$viewValue||""===s.modelCtrl.$viewValue)return void r();var e,n;if("class"===s.msModelType){var t=s.modelCtrl.$viewValue.split("-");n=5<=t.length?(e=t[1]+"-"+t[2],t[3]):(e=t[1],t[2])}else"obj"===s.msModelType&&(e=s.modelCtrl.$viewValue.palette,n=s.modelCtrl.$viewValue.hue||500);l(e,n)})}e.$inject=["$scope","$mdColorPalette","$mdMenu","motionGenerator"],angular.module("app.core").controller("msMaterialColorPickerController",e).directive("msMaterialColorPicker",function(){return{require:["msMaterialColorPicker","ngModel"],restrict:"E",scope:{ngModel:"=",msModelType:"@?"},controller:"msMaterialColorPickerController as vm",transclude:!0,templateUrl:"app/core/directives/ms-material-color-picker/ms-material-color-picker.html",link:function(e,n,t,a,i){var s=a[0];s.modelCtrl=a[1],s.msModelType=e.msModelType||"class",i(e,function(e){(e=e.filter(function(e,n){return 1===n.nodeType})).length&&n.find("ms-color-picker-button").replaceWith(e)})}}})}(),function(){"use strict";function e(p,g,v){return{restrict:"A",link:function(e,n,t){var a="true"===t.msNavIsFolded,i=!1,s=angular.element(p[0].body),o=angular.element('<div id="ms-nav-fold-open-overlay"></div>'),r=angular.element('<div id="ms-nav-fold-close-overlay"></div>'),l=n.parent();function d(){s.addClass("ms-nav-folded"),g.$broadcast("msNav::forceCollapse"),n.scrollTop(0),l.append(o),o.on("mouseenter touchstart",function(e){c(e),i=!0})}function c(e){angular.isDefined(e)&&e.preventDefault(),s.addClass("ms-nav-folded-open"),g.$broadcast("msNav::expandMatchingToggles"),l.find(o).remove(),l.parent().append(r),r.on("mouseenter touchstart",function(e){m(e),i=!1})}function m(e){angular.isDefined(e)&&e.preventDefault(),g.$broadcast("msNav::forceCollapse"),n.scrollTop(0),s.removeClass("ms-nav-folded-open"),l.parent().find(r).remove(),l.append(o),o.on("mouseenter touchstart",function(e){c(e),i=!0})}function u(){s.removeClass("ms-nav-folded ms-nav-folded-open"),g.$broadcast("msNav::expandMatchingToggles"),n.off("mouseenter mouseleave")}v.setFoldable(e,n,a),a?d():u(),e.toggleFold=function(){(a=!a)?d():u()},e.openFolded=c,e.closeFolded=m,e.isNavFoldedOpen=function(){return i},e.$on("$destroy",function(){o.off("mouseenter touchstart"),r.off("mouseenter touchstart"),n.off("mouseenter mouseleave")})}}}function n(t,a,i){return{restrict:"E",scope:{},controller:"MsNavController",compile:function(e){return e.addClass("ms-nav"),function(e){t.$broadcast("msNav::expandMatchingToggles");var n=t.$on("$stateChangeSuccess",function(){t.$broadcast("msNav::expandMatchingToggles"),a.when("navigation").then(function(e){e.close(),i.isNavFoldedOpen()&&i.closeFolded()})});e.$on("$destroy",function(){n()})}}}}function t(m,u,p,g){return{restrict:"A",require:"^msNav",scope:!0,compile:function(e,n){return e.addClass("ms-nav-toggle"),angular.isUndefined(n.collapsed)&&(n.collapsed=!0),e.attr("collapsed",n.collapsed),function(a,i,e,t){var s={expanded:"expanded",expandAnimation:"expand-animation",collapseAnimation:"collapse-animation"},n=i.find("a"),o=[],r=/\(.*\)/g;function l(){return"true"===i.attr("collapsed")}function d(){var e=u.defer();if(!l())return e.reject({error:!0}),e.promise;i.attr("collapsed",!1);var n=angular.element(i.find("ms-nav-toggle-items")[0]);n.css({position:"absolute",visibility:"hidden",display:"block",height:"auto"});var t=n[0].offsetHeight;return n.css({position:"",visibility:"",display:"",height:""}),a.$evalAsync(function(){p.animate(n,{display:"block",height:"0px"},{height:t+"px"},s.expandAnimation).then(function(){n.addClass(s.expanded),n.css({height:""}),e.resolve({success:!0})})}),e.promise}function c(){var e=u.defer();if(l())return e.reject({error:!0}),e.promise;i.attr("collapsed",!0);var n=angular.element(i.find("ms-nav-toggle-items")[0]),t=n[0].offsetHeight;return a.$evalAsync(function(){p.animate(n,{height:t+"px"},{height:"0px"},s.collapseAnimation).then(function(){n.removeClass(s.expanded),n.css({display:"",height:""}),e.resolve({success:!0})})}),e.promise}angular.forEach(n,function(e){var n=angular.element(e).attr("ui-sref");angular.isUndefined(n)||(n=n.replace(r,""),o.push(n))}),t.setToggleItem(i,a),i.children(".ms-nav-button").on("click",function(){if(t.isDisabled())return;t.disable(),l()?(t.clearLockedItems(),a.$emit("msNav::pushToLockedList"),m.$broadcast("msNav::collapse"),d().then(function(){t.enable()})):a.$broadcast("msNav::forceCollapse")}),a.$on("$destroy",function(){i.children(".ms-nav-button").off("click")}),a.$on("msNav::collapse",function(){var e=t.getLockedItems(),n=!1;angular.forEach(e,function(e){angular.equals(e.scope,a)&&(n=!0)}),n||c().then(function(){t.enable()})}),a.$on("msNav::forceCollapse",function(){c().then(function(){t.enable()})}),a.$on("msNav::expandMatchingToggles",function(){var n=g.current.name,t=!1;angular.forEach(o,function(e){n===e&&(t=!0)}),t?d():c()}),a.$on("msNav::pushToLockedList",function(){t.setLockedItem(i,a)})}}}}e.$inject=["$document","$rootScope","msNavFoldService"],n.$inject=["$rootScope","$mdComponentRegistry","msNavFoldService"],t.$inject=["$rootScope","$q","$animate","$state"],angular.module("app.core").factory("msNavFoldService",function(){var t={};return{setFoldable:function(e,n){t={scope:e,element:n}},isNavFoldedOpen:function(){return t.scope.isNavFoldedOpen()},toggleFold:function(){t.scope.toggleFold()},openFolded:function(){t.scope.openFolded()},closeFolded:function(){t.scope.closeFolded()}}}).directive("msNavIsFolded",e).controller("MsNavController",function(){var e=this,n=!1,t=[],a=[];e.isDisabled=function(){return n},e.enable=function(){n=!1},e.disable=function(){n=!0},e.setToggleItem=function(e,n){t.push({element:e,scope:n})},e.getLockedItems=function(){return a},e.setLockedItem=function(e,n){a.push({element:e,scope:n})},e.clearLockedItems=function(){a=[]}}).directive("msNav",n).directive("msNavTitle",function(){return{restrict:"A",compile:function(e){return e.addClass("ms-nav-title"),function(){}}}}).directive("msNavButton",function(){return{restrict:"AE",compile:function(e){return e.addClass("ms-nav-button"),function(){}}}}).directive("msNavToggle",t)}(),function(){"use strict";function e(e,n){e.root?this.navigation=n.getNavigation(e.root):this.navigation=n.getNavigation(),this.toggleHorizontalMobileMenu=function(){angular.element("body").toggleClass("ms-navigation-horizontal-mobile-menu-active")},n.sort()}function n(c,m,u,p){return{restrict:"E",scope:{folded:"=",root:"@"},controller:"MsNavigationController as vm",templateUrl:"app/core/directives/ms-navigation/templates/vertical.html",transclude:!0,compile:function(e){return e.addClass("ms-navigation"),function(e,n){var t=angular.element("body"),a=angular.element('<div id="ms-navigation-fold-expander"></div>'),i=angular.element('<div id="ms-navigation-fold-collapser"></div>'),s=u("navigation");function o(e){if(p.setFolded(e),e)c.$broadcast("msNavigation::collapse"),t.addClass("ms-navigation-folded"),r();else{var n=p.getActiveItem();n&&n.scope.$emit("msNavigation::stateMatched"),t.removeClass("ms-navigation-folded ms-navigation-folded-open"),i.remove()}}function r(){n.parent().append(a),m(function(){a.on("mouseenter touchstart",l)})}function l(e){e&&e.preventDefault(),p.setFoldedOpen(!0);var n=p.getActiveItem();n&&n.scope.$emit("msNavigation::stateMatched"),t.addClass("ms-navigation-folded-open"),a.remove(),t.find("#main").append(i),i.on("mouseenter touchstart",d)}function d(e){e&&e.preventDefault(),p.setFoldedOpen(!1),c.$broadcast("msNavigation::collapse"),t.removeClass("ms-navigation-folded-open"),i.remove(),r()}p.setNavigationScope(e),function(){null===p.getFolded()&&p.setFolded(e.folded);p.getFolded()&&(m(function(){c.$broadcast("msNavigation::collapse")}),t.addClass("ms-navigation-folded"),r())}(),e.$watch(function(){return s.isLockedOpen()},function(e,n){if(!angular.isUndefined(e)&&!angular.equals(e,n)&&p.getFolded())if(e)c.$broadcast("msNavigation::collapse");else{var t=p.getActiveItem();t&&t.scope.$emit("msNavigation::stateMatched")}}),e.$watch("folded",function(e,n){angular.isUndefined(e)||angular.equals(e,n)||o(e)}),e.toggleFolded=function(){o(!p.getFolded())},e.$on("$stateChangeStart",function(){s.close()}),e.$on("$destroy",function(){i.off("mouseenter touchstart"),a.off("mouseenter touchstart")})}}}}function t(t,e,a,i,n,s){var o=this;o.element=e,o.node=t.node,o.hasChildren=void 0,o.collapsed=void 0,o.collapsable=void 0,o.group=void 0,o.animateHeightClass="animate-height",o.toggleCollapsed=function(){o.collapsed?o.expand():o.collapse()},o.collapse=function(){var e=o.element.children("ul"),n=e[0].offsetHeight;t.$evalAsync(function(){o.collapsed=!0,o.element.addClass("collapsing"),i.animate(e,{display:"block",height:n+"px"},{height:"0px"},o.animateHeightClass).then(function(){e.css({display:"",height:""}),o.element.removeClass("collapsing")}),t.$broadcast("msNavigation::collapse")})},o.expand=function(){var e=o.element.children("ul");e.css({position:"absolute",visibility:"hidden",display:"block",height:"auto"});var n=e[0].offsetHeight;e.css({position:"",visibility:"",display:"",height:""}),t.$evalAsync(function(){o.collapsed=!1,o.element.addClass("expanding"),i.animate(e,{display:"block",height:"0px"},{height:n+"px"},o.animateHeightClass).then(function(){e.css({height:""}),o.element.removeClass("expanding")}),a.$broadcast("msNavigation::collapse",o.node._path)})},o.getClass=function(){return o.node.class},o.isHidden=function(){if(angular.isDefined(o.node.hidden)&&angular.isFunction(o.node.hidden))return o.node.hidden();return!1},function(){o.hasChildren=0<o.node.children.length,o.group=!(!angular.isDefined(o.node.group)||!0!==o.node.group),!o.hasChildren||o.group?o.collapsable=!1:o.collapsable=!(!angular.isUndefined(o.node.collapsable)&&"boolean"==typeof o.node.collapsable&&!0!==o.node.collapsable);o.collapsable?o.collapsed=!(!angular.isUndefined(o.node.collapsed)&&"boolean"==typeof o.node.collapsed&&!0!==o.node.collapsed):o.collapsed=!1;if(o.node.state===n.current.name||n.includes(o.node.state)){if(angular.isDefined(o.node.stateParams)&&angular.isDefined(n.params)&&!angular.equals(o.node.stateParams,n.params))return;t.$emit("msNavigation::stateMatched"),s.setActiveItem(o.node,t)}t.$on("msNavigation::stateMatched",function(){o.collapsable&&o.collapsed&&t.$evalAsync(function(){o.collapsed=!1})}),t.$on("msNavigation::collapse",function(e,n){if(!o.collapsed&&o.collapsable)if(angular.isUndefined(n))o.collapse();else{var t=n.split("."),a=[],i=s.getActiveItem();if(i&&(a=i.node._path.split(".")),-1<t.indexOf(o.node._id))return;if(-1<a.indexOf(o.node._id))return;o.collapse()}}),t.$on("$stateChangeSuccess",function(){if(o.node.state===n.current.name){if(angular.isDefined(o.node.stateParams)&&angular.isDefined(n.params)&&!angular.equals(o.node.stateParams,n.params))return;s.setActiveItem(o.node,t),a.$broadcast("msNavigation::collapse",o.node._path)}if(n.includes(o.node.state)){if(angular.isDefined(o.node.stateParams)&&angular.isDefined(n.params)&&!angular.equals(o.node.stateParams,n.params))return;t.$emit("msNavigation::stateMatched")}})}()}function a(n){return{restrict:"E",scope:{root:"@"},controller:"MsNavigationController as vm",templateUrl:"app/core/directives/ms-navigation/templates/horizontal.html",transclude:!0,compile:function(e){return e.addClass("ms-navigation-horizontal"),function(e){n.setNavigationScope(e)}}}}function i(t,e,n,a,i){var s=this;s.element=e,s.node=t.node,s.hasChildren=void 0,s.group=void 0,s.getClass=function(){return s.node.class},function(){if(s.isActive=!1,s.hasChildren=0<s.node.children.length,s.group=!(!angular.isDefined(s.node.group)||!0!==s.node.group),s.node.state===a.current.name||a.includes(s.node.state)){if(angular.isDefined(s.node.stateParams)&&angular.isDefined(a.params)&&!angular.equals(s.node.stateParams,a.params))return;t.$emit("msNavigation::stateMatched"),i.setActiveItem(s.node,t)}t.$on("msNavigation::stateMatched",function(){s.hasChildren&&t.$evalAsync(function(){s.isActive=!0})}),t.$on("msNavigation::clearActive",function(){if(s.hasChildren){var e=[],n=i.getActiveItem();n&&(e=n.node._path.split(".")),-1<e.indexOf(s.node._id)?t.$evalAsync(function(){s.isActive=!0}):t.$evalAsync(function(){s.isActive=!1})}}),t.$on("$stateChangeSuccess",function(){if(s.node.state===a.current.name||a.includes(s.node.state)){if(angular.isDefined(s.node.stateParams)&&angular.isDefined(a.params)&&!angular.equals(s.node.stateParams,a.params))return;i.setActiveItem(s.node,t),n.$broadcast("msNavigation::clearActive")}})}()}function s(i){return{restrict:"A",require:"^msNavigationHorizontalNode",compile:function(e){return e.addClass("ms-navigation-horizontal-item"),function(e,n,t,a){n.on("click",function(){if(!a.hasChildren||i("gt-md"))return;n.toggleClass("expanded")}),e.$on("$destroy",function(){n.off("click")})}}}}e.$inject=["$scope","msNavigationService"],n.$inject=["$rootScope","$timeout","$mdSidenav","msNavigationService"],t.$inject=["$scope","$element","$rootScope","$animate","$state","msNavigationService"],a.$inject=["msNavigationService"],i.$inject=["$scope","$element","$rootScope","$state","msNavigationService"],s.$inject=["$mdMedia"],angular.module("app.core").provider("msNavigationService",function(){var r=angular.injector(["ng"]).get("$log"),l=[];function d(e,n){if(angular.isString(e)){for(var t=e.split("."),a=t[t.length-1],i=function(e){var n=l;if(1===e.length)return n;e.pop();for(var t=0;t<e.length;t++){for(var a=e[t],i=!0,s=0;s<n.length;s++)if(n[s]._id===a){n=n[s].children,i=!1;break}if(i){var o={_id:a,_path:e.join("."),title:a,weight:1,children:[]};n.push(o),n=o.children}}return n}(t),s=!1,o=0;o<i.length;o++)if(i[o]._id===a){s=i[o];break}s?(angular.extend(s,n),s.uisref=u(s)):(n.children=[],!angular.isUndefined(n.weight)&&angular.isNumber(n.weight)||(n.weight=1),n._id=a,n._path=e,n.uisref=u(n),i.push(n))}else r.error("path must be a string (eg. `dashboard.project`)")}function c(e){if(angular.isString(e)){for(var n=l,t=e.split("."),a=0;a<t.length;a++)for(var i=t[a],s=0;s<n.length;s++)if(n[s]._id===i){if(n[s]._path===e)return n.splice(s,1),!0;n=n[s].children;break}return!1}r.error("path must be a string (eg. `dashboard.project`)")}function m(e){e||(e=l).sort(a);for(var n=0;n<e.length;n++){var t=e[n].children;1<t.length&&t.sort(a),0<t.length&&m(t)}}function a(e,n){return parseInt(e.weight)-parseInt(n.weight)}function u(e){var n="";return angular.isDefined(e.state)&&(n=e.state,angular.isDefined(e.stateParams)&&angular.isObject(e.stateParams)&&(n=n+"("+angular.toJson(e.stateParams)+")")),n}this.saveItem=d,this.deleteItem=c,this.sortByWeight=m,this.$get=function(){var t=null,n=null,a=null,i=null,e={saveItem:d,deleteItem:c,sort:m,clearNavigation:function(){l=[],n&&(n.vm.navigation=l)},setActiveItem:function(e,n){t={node:e,scope:n}},getActiveItem:function(){return t},getNavigation:s,getFlatNavigation:o,setNavigationScope:function(e){n=e},setFolded:function(e){a=e},getFolded:function(){return a},setFoldedOpen:function(e){i=e},getFoldedOpen:function(){return i},toggleFolded:function(){n.toggleFolded()},getSectionId:function(n,t){var e=o(),a=_.find(e,function(e){return t?e.route===n&&e.title.toLowerCase()===t.toLowerCase():e.route===n});return a?a.id:0}};return e;function s(e){if(e){for(var n=0;n<l.length;n++)if(l[n]._id===e)return[l[n]];return null}return l}function o(e){var n=s(e);return function e(n){var t=[];for(var a=0;a<n.length;a++){var i=angular.copy(n[a]);i.children=[],t.push(i),0<n[a].children.length&&(t=t.concat(e(n[a].children)))}return t}(n)}}}).controller("MsNavigationController",e).directive("msNavigation",n).controller("MsNavigationNodeController",t).directive("msNavigationNode",function(){return{restrict:"A",bindToController:{node:"=msNavigationNode"},controller:"MsNavigationNodeController as vm",compile:function(e){return e.addClass("ms-navigation-node"),function(e,n,t,a){n.addClass(a.getClass()),a.group&&n.addClass("group")}}}}).directive("msNavigationItem",function(){return{restrict:"A",require:"^msNavigationNode",compile:function(e){return e.addClass("ms-navigation-item"),function(e,n,t,a){a.collapsable&&n.on("click",a.toggleCollapsed),e.$on("$destroy",function(){n.off("click")})}}}}).directive("msNavigationHorizontal",a).controller("MsNavigationHorizontalNodeController",i).directive("msNavigationHorizontalNode",function(){return{restrict:"A",bindToController:{node:"=msNavigationHorizontalNode"},controller:"MsNavigationHorizontalNodeController as vm",compile:function(e){return e.addClass("ms-navigation-horizontal-node"),function(e,n,t,a){n.addClass(a.getClass()),a.group&&n.addClass("group")}}}}).directive("msNavigationHorizontalItem",s)}(),function(){"use strict";function e(p,t,g,e,a,i,n,u,s,o,v,h,f,b,r,A){var E=this,l=["ringingId","speakerId","microphoneId","ringingVolume","speakerVolume","microphoneVolume","ringingMute","speakerMute","microphoneMute"],d=JSON.parse(n.localStorage.getItem("motion2.user:"+E.conf.id))||{webrtc:{ringingVolume:.5,speakerVolume:.5,microphoneVolume:1,ringingMute:!1,speakerMute:!1,microphoneMute:!1}};function c(l){var d,c,m;return E.initDeviceInProgress=!0,navigator.mediaDevices.getUserMedia({audio:!0}).then(function(e){return E.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/silence.ogg"),E.soundPlayer.play().catch(function(e){console.log(e.message)}),e.getTracks().forEach(function(e){e.stop()}),navigator.mediaDevices.enumerateDevices()}).then(function(e){var n=_.filter(e,function(e){return"audioinput"===e.kind&&"default"!==e.deviceId&&"communications"!==e.deviceId});if(0<n.length){var t=_.find(e,function(e){return"default"===e.deviceId&&"audioinput"===e.kind});if(m=_.find(n,function(e){return e.groupId===t.groupId}),E.conf.microphoneId&&!l){var a=_.find(n,function(e){return e.deviceId===E.conf.microphoneId});a&&(m=a)}E.conf.microphoneId=m.deviceId}else v.warning({title:u.instant("TOOLBAR.WARNING"),msg:u.instant("TOOLBAR.WEBRTC_MICROPHONE_NOT_AVAILABLE"),clickToClose:!0,showClose:!0,shake:!1,timeout:!1,position:"bottom-right"});E.conf.microphoneId?E.sessionConf.mediaConstraints.audio={deviceId:E.conf.microphoneId}:E.sessionConf.mediaConstraints.audio=!0,R("microphone",!1);var i=_.filter(e,function(e){return"audiooutput"===e.kind&&"default"!==e.deviceId&&"communications"!==e.deviceId});if(0<i.length){var s=_.find(e,function(e){return"default"===e.deviceId&&"audiooutput"===e.kind});if(c=d=_.find(i,function(e){return e.groupId===s.groupId}),E.conf.speakerId&&!l){var o=_.find(i,function(e){return e.deviceId===E.conf.speakerId});o&&(c=o)}if(E.conf.speakerId=c.deviceId,E.conf.ringingId&&!l){var r=_.find(i,function(e){return e.deviceId===E.conf.ringingId});r&&(d=r)}E.conf.ringingId=d.deviceId}else v.warning({title:u.instant("TOOLBAR.WARNING"),msg:u.instant("TOOLBAR.WEBRTC_SPEAKER_NOT_AVAILABLE"),clickToClose:!0,showClose:!0,shake:!1,timeout:!1,position:"bottom-right"});return R("speaker",!1)}).then(function(){return R("ringing",!1)}).then(function(){if(jabra)return jabra.init().then(function(){return E.isJabraInitialized=!0,jabra.getInstallInfo()}).then(function(){return jabra.getUserDeviceMediaExt()}).then(function(e){m&&c&&d&&e&&_.includes([m.groupId,c.groupId,d.groupId],e.deviceInfo.browserGroupId)&&(console.log("Jabra library correctly initialized and device correctly installed"),E.isJabraEnabled=!0,jabra.onHook(),jabra.addEventListener("acceptcall",function(e){var n=_.last(E.sessions);n?"incoming"===n.direction&&n.isInProgress()?E.answer(n):console.error("Unable to find a valid call to answer",e):console.error("Unable to answer the call",e)}.bind(this)),jabra.addEventListener("mute",function(){R("microphone",E.conf.microphoneMute=!0)}.bind(this)),jabra.addEventListener("unmute",function(){E.conf.microphoneMute=!1,R("microphone",!0)}.bind(this)),jabra.addEventListener("flash",function(){E.jabraSession.localHold?E.unhold(E.jabraSession):E.hold(E.jabraSession)}.bind(this)),jabra.addEventListener("endcall",function(){o(function(e){for(var n=null,t=0;t<E.sessions.length;t++)_.has(E.sessions[t],"localHold")&&E.sessions[t].localHold||(n=E.sessions[t]);e(n)}).then(function(e){null!==e&&E.terminate(e)})}.bind(this)))}).catch(function(e){console.warn("Error initializing Jabra integration",e)})}).catch(function(e){console.error("Unable to init media devices",e),"NotFoundError"===e.name&&v.warning({title:u.instant("TOOLBAR.WARNING"),msg:u.instant("TOOLBAR.WEBRTC_AUDIO_DEVICES_NOT_AVAILABLE"),clickToClose:!0,showClose:!0,shake:!1,timeout:!1,position:"bottom-right"})}).finally(function(){E.initDeviceInProgress=!1,y(),DetectRTC.load(function(){E.conf.hasMicrophone=DetectRTC.hasMicrophone,E.conf.hasSpeakers="Chrome"!==DetectRTC.browser.name&&"Edge"!==DetectRTC.browser.name&&"Opera"!==DetectRTC.browser.name||DetectRTC.hasSpeakers,E.conf.isWebRTCSupported=DetectRTC.isWebRTCSupported,E.conf.osName=DetectRTC.osName,E.conf.osVersion=DetectRTC.osVersion,E.conf.browserName=DetectRTC.browser.name,E.conf.browserVersion=DetectRTC.browser.version,E.conf.license&&E.conf.isWebRTCSupported&&E.conf.hasMicrophone&&E.conf.hasSpeakers&&"https"===E.conf.protocol&&("chrome"===E.conf.browserName.toLowerCase()||"opera"===E.conf.browserName.toLowerCase()||"safari"===E.conf.browserName.toLowerCase())?E.register||E.ua.start():E.conf.license||v.warning({title:u.instant("TOOLBAR.WARNING"),msg:u.instant("TOOLBAR.WEBRTC_LICENSE_NOT_ENABELD"),clickToClose:!0,showClose:!0,shake:!1,timeout:!1,position:"bottom-right"})}.bind(this))})}function y(){d.webrtc=_.pick(E.conf,l),n.localStorage.setItem("motion2.user:"+E.conf.id,JSON.stringify(d))}function S(e,n,t){console.debug("addCall -> target, inbound, fullname",e,n,t),E.calls.unshift({target:e,fullname:t||e,inbound:n,time:moment().format("HH:mm")}),50<E.calls.length&&E.calls.pop()}function T(e){console.debug("answer -> session",e),e.notification&&(e.notification.close(),e.notification=null),E.conf.microphoneId?E.sessionConf.mediaConstraints.audio={deviceId:E.conf.microphoneId}:E.sessionConf.mediaConstraints.audio=!0,e.answer(E.sessionConf),E.isJabraEnabled&&(jabra.offHook(),E.jabraSession=e)}function I(e,n){console.debug("terminate -> session",e),e.notification&&(e.notification.close(),e.notification=null);var t={};if(n?t.status_code=n:e.isEstablished()||(t.status_code=603),e.terminate(t),E.isJabraEnabled)if(0===E.sessions.length)e.localHold&&jabra.resume(),jabra.onHook(),E.jabraSession=null;else{var a=_.last(E.sessions);a.localHold?(jabra.onHook(),jabra.hold(),E.jabraSession=a):jabra.offHook()}}function C(t){return console.debug("getVoiceChannels -> session",t),h.rpc.getVoiceChannels().$promise.then(function(e){var n=_.find(e.rows,function(e){return e.sipcalllinkedid===t.call_id?e:e.sipcalluniqueid===t.call_id?e:null});n&&(t.monitor=n.monitor,t.uniqueid=n.uniqueid,t.monitors=n.monitors)})}function O(e){console.debug("onAddstream -> data",e),this.remotePlayer.srcObject=e.stream,this.remotePlayer.play()}function w(){E.canGoInConference=!1,E.isInConference=!1,E.currentconferenceSessions=[]}function R(e,n){switch(e){case"ringing":E.soundPlayer.muted=E.conf.ringingMute,E.conf.ringingId&&E.soundPlayer.setSinkId(E.conf.ringingId).then(function(){E.soundPlayer.volume=E.conf.ringingVolume}).then(function(){n&&y()}).catch(function(e){console.info(e.message,E.conf.ringingId)});break;case"speaker":E.remotePlayer.muted=E.conf.speakerMute,E.conf.speakerId&&E.remotePlayer.setSinkId(E.conf.speakerId).then(function(){E.remotePlayer.volume=E.conf.speakerVolume}).then(function(){n&&y()}).catch(function(e){console.info(e.message,E.conf.speakerId)});break;case"microphone":for(var t=0;t<E.sessions.length;t+=1)E.conf.microphoneMute?E.sessions[t].mute():E.sessions[t].unmute();jabra&&E.isJabraEnabled&&(E.conf.microphoneMute?jabra.mute():jabra.unmute()),n&&y();break;default:console.log("unknown device")}}function m(){E.target="",document.getElementById("ms-target").blur(),document.getElementById("ms-target").value="",p.$broadcast("angucomplete-alt:clearInput","ms-target-wrap")}function x(n){return h.user.getVoicePrefixes({id:E.conf.id}).$promise.then(function(e){if(e.count)return a.show({controller:"PrefixDialogController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/prefix/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{prefixes:e,required:E.conf.phoneBarPrefixRequired}})}).then(function(e){if(E.conf.phoneBarPrefixRequired){if(e&&-1!==e)return e+n}else{if(e&&-1!==e)return e+n;if(!e)return n}})}function N(){if(E.isInConference){var e=E.sessions[0].connection.getReceivers()[0],n=E.sessions[1].connection.getReceivers()[0],t=new MediaStream;t.addTrack(e.track),t.addTrack(n.track);var a=document.getElementById("remote-audio");a.srcObject=t;var i=a.play();void 0!==i&&i.then(function(){}).catch(function(e){console.log(e)})}}function D(e,n,t,a){return console.debug("onReferCallback -> session, textContent, position, delay",e,n,t,a),function(){i.show(i.simple().textContent(n).position(t).hideDelay(a)),I(e)}}function P(n){return console.debug("findSessionBySessionId -> sessionId, vm_pb.sessions",n,E.sessions),_.find(E.sessions,function(e){return e.call_id==n})}function L(e,n){return console.debug("callCallback -> url, params",e,n),s({url:e,method:"GET",params:n})}e(function(){},999),E.currentUser=b.getCurrentUser(),E.direction="right",E.selectedMode="md-scale",E.target="",E.showDialpad=!1,E.soundPlayer=document.getElementById(E.conf.soundPlayerId),E.remotePlayer=document.getElementById(E.conf.remotePlayerId),E.soundPlayer.volume=1,E.sessionConf={mediaConstraints:{audio:!0,video:!1},pcConfig:{iceServers:[]}},E.sessions=[],E.calls=[],E.callbackQueue=[],E.canGoInConference=!1,E.isInConference=!1,E.currentConferenceSessions=[],E.ua=new JsSIP.UA({sockets:[new JsSIP.WebSocketInterface("wss://"+E.conf.host+":"+E.conf.wssPort+"/ws")],uri:new JsSIP.URI("sip",E.conf.name,E.conf.host,5060,null,null).toString(),authorization_user:E.conf.name,ha1:E.conf.ha1,realm:E.conf.realm,user_agent:E.conf.ua,session_timers_refresh_method:"invite",register_expires:E.conf.phoneBarExpires||60,register:!0}),E.conf=_.merge(d.webrtc,E.conf),E.initDeviceInProgress=!1,E.isJabraEnabled=!1,E.isJabraInitialized=!1,E.jabraSession=null,E.jabraClicked=!1,E.buttonClicked=!1,E.originateInProgress=!1,t.bind("keyup",function(e){switch(e.keyCode){case 27:g(function(){E.showDialpad=!1})}}),E.$onInit=function(){c(!1),navigator.mediaDevices.ondevicechange=function(){E.initDeviceInProgress||(E.initDeviceInProgress=!0,jabra&&E.isJabraInitialized?jabra.shutdown().then(function(){E.isJabraInitialized=!1,c(!(E.isJabraEnabled=!1))}).catch(function(e){console.error("Unable to shutdown Jabra library",e)}):c(!0))};var e=[h.network.get({type:"turn",nolimit:!0}).$promise,h.network.get({type:"stun",nolimit:!0}).$promise];o.all(e).then(function(e){var n=e[0].rows,t=e[1].rows,a=[],i=[];t.forEach(function(e){i.push("stun:"+e.value)}),a.push({urls:i}),n.forEach(function(e){var n={urls:"turn:"+e.value};e.username&&(n.username=e.username),e.password&&(n.credential=e.password),a.push(n)}),E.sessionConf.pcConfig={iceServers:a}}),this.ua.on("registered",function(){this.registered=!0}.bind(this)),this.ua.on("unregistered",function(){this.registered=!1}.bind(this)),this.ua.on("newRTCSession",function(e){console.debug("onNewRTCSession -> data",e);var n,t,a,i,s,o=e.session,r=!0,l="",d=0;switch(e.originator){case"local":o.outgoing=!0,o.name=e.request.ruri.user,o.user=e.request.ruri.user,S(o.user,!1),t=e.request.extraHeaders,a="X-callback-url",s=_.find(t,function(e){return _.startsWith(e,a)}),n=!!s&&_.trim(s.replace(a,"").replace(i||":","")),E.isJabraEnabled&&(E.jabraSession&&jabra.resume(),E.jabraSession=o,jabra.offHook());break;case"remote":var c=b.getCurrentUser();c.voicePause&&c.phoneBarDnd&&(r=!1);var m=e.request.getHeader("Call-Type")||"";if(c.ignorePauseForPreviewCalls&&"PREVIEW"===m&&(r=!0),E.originateInProgress&&(r=!1),r&&(o.incoming=!0,o.name=e.request.from.display_name,o.user=e.request.from.uri.user,l=e.request.getHeader("X-Answer-Mode")||"",d=e.request.getHeader("X-Answer-After")||0,function(n){console.debug("getNotification -> session",n);var e=n.name?n.name+" <"+n.user+">":n.user;E.currentUser.privacyEnabled&&(e=A.mask(e)),f.create("Incoming call from: ",e,null,function(){T(n)},function(){I(n)},E.conf.autoAnswer).then(function(e){n.notification=e}).catch(function(e){console.error("Error creating notification for incoming call",e)})}(e.session),S(e.session.user,!0),E.isJabraEnabled&&jabra.ring(),E.conf.autoAnswer&&g(function(){o.isInProgress()&&(o.autoAnswer=!0,T(o))},E.conf.autoAnswerDelay?1e3*E.conf.autoAnswerDelay:0),console.debug("xAnswerMode",l),console.debug("xAnswerAfterSec",d),"auto"==l.toLowerCase())){var u=0==d?500:1e3*d;console.debug("auto answer enabled after:"+u+" ms"),g(function(){o.isInProgress()&&(o.autoAnswer=!0,T(o))},u)}}r?(o.call_id=e.request.call_id,n&&L(E.callbackQueue[o.call_id]=n,{call_id:o.call_id}).then(function(){console.log('callbackurl:"'+n+'" called successfully')}).catch(function(e){console.log('fail callbackurl:"'+n+'" err:',e)}),o.connection&&(o.connection.onaddstream=O.bind(this)),o.iceCandidateTimeout=null,o.on("progress",function(e,n){console.debug("onProgress -> session, data",e,n);var t=!1;switch(n.originator){case"local":this.conf.ringingMute||(this.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/incoming-call.ogg"),t=!0);break;case"remote":this.putOtherCallsOnHold(e),this.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/outgoing-call.ogg"),t=!0}E.originateInProgress&&(E.originateInProgress=!1),t&&(this.soundPlayer.loop="loop",this.soundPlayer.play().catch(function(e){console.log(e.message)})),C(e).then(function(){var n=E.callbackQueue[e.call_id];n&&L(n,{uniqueid:e.uniqueid,call_id:e.call_id,number_called:e.user}).then(function(){console.log('callbackurl:"'+n+'" called successfully')}).catch(function(e){console.log('fail callbackurl:"'+n+'" err:',e)}).finally(function(){delete E.callbackQueue[e.call_id]})}).catch(function(e){console.error("Unable to retrieve voice channels",e)})}.bind(this,o)),o.on("confirmed",function(e,n){console.debug("onConfirmed -> session, data",e,n);var t=document.getElementById("div_session_"+e.id.substr(0,32));t&&$(t).scope().$broadcast("timer-start"),e.confirmed=!0,"remote"===n.originator&&e.connection&&(e.connection.onaddstream=O.bind(this),_.head(e.connection.getRemoteStreams())&&(this.remotePlayer.srcObject=_.head(e.connection.getRemoteStreams()),this.remotePlayer.play())),this.soundPlayer.pause(),this.soundPlayer.loop=null,this.putOtherCallsOnHold(e),e.autoAnswer&&(this.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/beep.ogg"),this.soundPlayer.play().catch(function(e){console.log("Unable to play autoAnswer notification",e)})),E.canGoInConference=2==E.sessions.length,C(e).catch(function(e){console.error("Unable to retrieve voice channels",e)})}.bind(this,o)),o.on("hold",function(e,n){console.debug("onHold -> session, data",e,n),"local"===n.originator&&(e.localHold=!0)}.bind(this,o)),o.on("unhold",function(e,n){console.debug("onUnhold -> session, data",e,n),"local"===n.originator&&(e.localHold=!1)}.bind(this,o)),o.on("ended",function(e,n){if(console.debug("onEnded -> session, data",e,n),E.isInConference&&_.includes(E.currentConferenceSessions,e.id)&&(w(),E.buttonClicked=!0),_.remove(this.sessions,{id:e.id}),2!==E.sessions.length&&(E.canGoInConference=!1),E.isJabraEnabled)if(0===E.sessions.length)e.localHold&&jabra.resume(),jabra.onHook(),E.jabraSession=null;else{var t=_.last(E.sessions);t.localHold?(jabra.onHook(),jabra.hold(),E.jabraSession=t):jabra.offHook()}0===E.sessions.length&&E.currentUser.voicePause&&h.user.pause({id:E.currentUser.id,type:_.startsWith(E.currentUser.pauseType,"#")?E.currentUser.pauseType.substring(1):E.currentUser.pauseType}).$promise.catch(function(e){v.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:PAUSEUSER",msg:e.status?JSON.stringify(e.data):e.toString()})}),E.conf.microphoneMute=!1,E.initDevice("microphone",!0)}.bind(this,o)),o.on("failed",function(e,n){if(console.debug("onFailed -> session, data",e,n),this.soundPlayer.pause(),this.soundPlayer.loop=null,e.notification&&e.notification.close(),E.isInConference&&_.includes(E.currentConferenceSessions,e.id)&&w(),E.originateInProgress&&(E.originateInProgress=!1),_.remove(this.sessions,{id:e.id}),2!==E.sessions.length&&(E.canGoInConference=!1),E.isJabraEnabled)if(0===E.sessions.length)e.localHold&&jabra.resume(),jabra.onHook(),E.jabraSession=null;else{var t=_.last(E.sessions);t.localHold?(jabra.onHook(),jabra.hold(),E.jabraSession=t):jabra.offHook()}}.bind(this,o)),o.on("icecandidate",function(e,n){console.debug("onIcecandidate -> session, data",e,n),null!==e.iceCandidateTimeout&&clearTimeout(e.iceCandidateTimeout),e.iceCandidateTimeout=setTimeout(n.ready,1e3)}.bind(this,o)),E.sessions.push(o),g(function(){p.$apply(),console.debug("onNewRTCSession -> vm_pb.sessions",E.sessions)})):I(o,486)}.bind(this)),r.on("webbar:originate",function(e){console.debug("originateHook -> payload",e);var n=e.callNumber,t=e.callerId,a=e.callbackUrl;E.conf.microphoneId?E.sessionConf.mediaConstraints.audio={deviceId:E.conf.microphoneId}:E.sessionConf.mediaConstraints.audio=!0;var i=n.replace(/ /g,"");if(i=(i=i.replace(/\(/g,"")).replace(/\)/g,"")){var s=angular.copy(E.sessionConf);s.extraHeaders=[],t&&s.extraHeaders.push("X-CID: "+t),a&&s.extraHeaders.push("X-callback-url: "+a),E.originateInProgress=!0,E.ua.call(i,s)}}.bind(this)),r.on("webbar:hangup",function(e){console.debug("hangupHook -> payload",e);var n=E.sessions;if(e.sessionId&&((n=[]).push(P(e.sessionId)),0==n.length))console.warn("call with session Id "+e.sessionId+" not found");else for(var t=0;t<n.length;t++){var a=n[t];console.log("hangupHook -> sessionToHangup",a),E.terminate(a)}}.bind(this)),r.on("webbar:answer",function(e){var n;console.debug("answerHook -> payload",e),n=e.sessionId?P(e.sessionId):_.find(E.sessions,function(e){return e.incoming&&!e.confirmed}),e.sessionId&&!n&&console.warn("call with session Id "+e.sessionId+" not found"),n&&E.answer(n)}.bind(this)),r.on("webbar:hold",function(e){console.debug("holdHook -> payload",e);var n=E.sessions;if(e.sessionId&&((n=[]).push(P(e.sessionId)),0==n.length))console.warn("call with session Id "+e.sessionId+" not found");else for(var t=0;t<n.length;t++){var a=n[t];E.hold(a)}}.bind(this)),r.on("webbar:unhold",function(e){if(console.debug("holdHook -> payload",e),e.sessionId){var n=P(e.sessionId);n?E.unhold(n):console.warn("call with session Id "+e.sessionId+" not found")}else console.error("sessionId required")}.bind(this)),r.on("webbar:transfer",function(e){if(console.debug("transferHook -> payload",e),e.sessionId)if(e.transferNumber){var n=P(e.sessionId);n?n.refer(e.transferNumber,{eventHandlers:{requestSucceeded:D(n,"requestSucceeded","top right",3e3),requestFailed:D(n,"requestFailed","top right",3e3)}}):console.warn("call with session Id "+e.sessionId+" not found")}else console.error("transferNumber required");else console.error("sessionId required")}.bind(this)),r.on("webbar:stopmonitors",function(e){if(e.agentId===E.currentUser.id){var n=_.find(E.sessions,["uniqueid",e.uniqueid]);if(!n)return;n.monitors.forEach(function(e){e.status="pause"}),n.monitor=!1}}.bind(this))}.bind(this),E.type=function(e,n){var t=e;switch(E.target||(E.target=""),n&&(E.target+=e,p.$broadcast("angucomplete-alt:changeInput","ms-target-wrap",E.target)),e){case"*":t="asterisk";break;case"#":t="pound"}E.conf.enableDtmfTone&&(E.soundPlayer.setAttribute("src","assets/ms-phonebar/sounds/dialpad/"+t+".ogg"),E.soundPlayer.play().catch(function(e){console.log(e.message)}));for(var a=0;a<E.sessions.length;a+=1)E.sessions[a].isEstablished()&&!E.sessions[a].isOnHold().local&&E.sessions[a].sendDTMF(e)},E.call=function(){if(E.target&&E.target!==E.conf.name&&E.target!==E.conf.internal){E.conf.microphoneId?E.sessionConf.mediaConstraints.audio={deviceId:E.conf.microphoneId}:E.sessionConf.mediaConstraints.audio=!0;var e=E.target.replace(/ /g,"");return x(e=(e=e.replace(/\(/g,"")).replace(/\)/g,"")).then(function(e){e&&E.ua.call(e,E.sessionConf)}).then(function(){m()})}},E.hold=function(e){console.debug("hold -> session",e),e.hold({useUpdate:!1}),E.isJabraEnabled&&(jabra.hold(),jabra.onHook())},E.refer=function(n){console.debug("refer -> session",n);var e=a.prompt().title("Transfer").textContent("Type the target").placeholder("Target").ariaLabel("Target").ok("Transfer").cancel("Cancel");a.show(e).then(function(e){return x(e.replace(/ /g,"").replace(/\(/g,"").replace(/\)/g,""))}).then(function(e){n.refer(e,{eventHandlers:{requestSucceeded:D(n,"requestSucceeded","top right",3e3),requestFailed:D(n,"requestFailed","top right",3e3)}})})},E.record=function(e){console.debug("record -> session",e),a.show({controller:"RecordDialogController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/record/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{session:e,sessions:E.sessions}})},E.unhold=function(e){console.debug("unhold -> session",e),e.unhold({useUpdate:!1}),E.putOtherCallsOnHold(e),E.isJabraEnabled&&(jabra.offHook(),jabra.resume())},E.answer=T,E.terminate=I,E.selectSession=function(e){console.debug("selectSession -> session",e),E.unhold(e)},E.typeWrapper=function(e){switch(e.key.toLowerCase()){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":case"*":case"#":E.type(e.key);break;case"enter":E.call()}},E.toggleDialpad=function(){E.showDialpad=!E.showDialpad},E.referAttended=function(e){console.debug("referAttended -> session",e),a.show({controller:"ReferAttendedDialogController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/referAttended/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{session:e,sessions:_.reject(E.sessions,{id:e.id}),isJabraEnabled:E.isJabraEnabled}})},E.closeDialpad=function(){E.showDialpad=!1},E.initDevice=R,E.putOtherCallsOnHold=function(e){if(console.debug("putOtherCallsOnHold -> session",e),1<E.sessions.length)for(var n=0;n<E.sessions.length;n+=1)E.sessions[n].id===e.id||E.sessions[n].isOnHold().remote||E.sessions[n].hold({useUpdate:!1})},E.targetChanged=function(e){e?/^(\w|\.|\+|#|\*|\(|\)|\s|-)*$/.test(e)?(E.target=e,p.$broadcast("angucomplete-alt:changeInput","ms-target-wrap",E.target)):E.target?p.$broadcast("angucomplete-alt:changeInput","ms-target-wrap",E.target):m():m()},E.targetSelected=function(e){e&&(E.target=e.originalObject.target,E.call(),m())},E.start3WayConf=function(){E.isInConference=!0,E.canGoInConference=!1,E.currentConferenceSessions.push(E.sessions[0].id),E.currentConferenceSessions.push(E.sessions[1].id);var e=new AudioContext,n=E.sessions[0].connection.getSenders()[0],t=E.sessions[0].connection.getReceivers()[0];t.track.addEventListener("unmute",function(){setTimeout(function(){N()},1e3)},!1);var a=E.sessions[1].connection.getSenders()[0],i=E.sessions[1].connection.getReceivers()[0];i.track.addEventListener("unmute",function(){setTimeout(function(){N()},1e3)},!1),E.sessions[0].unhold({useUpdate:!1}),E.sessions[1].unhold({useUpdate:!1}),t.track.enabled=!0,i.track.enabled=!0;var s=new MediaStream,o=e.createMediaStreamDestination();o=(e=new AudioContext).createMediaStreamDestination();var r=e.createMediaStreamSource(new MediaStream([i.track]));r.connect(o),(r=e.createMediaStreamSource(new MediaStream([n.track]))).connect(o),n.replaceTrack(o.stream.getTracks()[0]).then(function(){}),o=e.createMediaStreamDestination(),(r=e.createMediaStreamSource(new MediaStream([t.track]))).connect(o),(r=e.createMediaStreamSource(new MediaStream([a.track]))).connect(o),a.replaceTrack(o.stream.getTracks()[0]).then(function(){s.addTrack(t.track),s.addTrack(i.track);var e=document.getElementById("remote-audio");e.srcObject=s;var n=e.play();void 0!==n&&n.then(function(){}).catch(function(e){console.log(e)})})},E.patchConference=N,p.$on("webrtc::settings",function(e){a.show({controller:"SettingsController",controllerAs:"vm",templateUrl:"assets/ms-phonebar/settings/settings.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,resolve:{devices:function(){return navigator.mediaDevices.enumerateDevices()}},locals:{conf:E.conf,activeSessions:E.sessions}}).then(function(e){e&&(E.conf=e,E.initDeviceInProgress||(E.initDeviceInProgress=!0,jabra&&E.isJabraInitialized?jabra.shutdown().then(function(){E.isJabraInitialized=!1,c(E.isJabraEnabled=!1)}).catch(function(e){console.error("Unable to shutdown Jabra library",e)}):c(!1)))})}),p.$on("webrtc::logout",function(){E.ua.stop(),jabra&&E.isJabraInitialized&&jabra.shutdown(),navigator.mediaDevices.ondevicechange=function(){}}),p.$on("webrtc::call",function(e,n){console.debug("onRemoteCall -> evt, data",e,n),n.target&&(E.target=n.target,E.call())}),p.$on("webrtc::transfer",function(e,n){if(console.debug("onRemoteTransfer -> evt, data",e,n),n.target)for(var t=0;t<E.sessions.length;t+=1)if(E.sessions[t].isEstablished()&&!E.sessions[t].isOnHold().local)return x(n.target).then(function(e){e&&E.sessions[t].refer(e,{eventHandlers:{requestSucceeded:D(E.sessions[t],"requestSucceeded","top right",3e3),requestFailed:D(E.sessions[t],"requestFailed","top right",3e3)}})})}),p.$on("$destroy",function(){console.debug("$destroy event fired"),r.removeAllListeners("webbar:originate"),r.removeAllListeners("webbar:hangup"),r.removeAllListeners("webbar:answer"),r.removeAllListeners("webbar:hold"),r.removeAllListeners("webbar:unhold"),r.removeAllListeners("webbar:transfer"),r.removeAllListeners("webbar:stopmonitors")})}e.$inject=["$scope","$document","$timeout","$interval","$mdDialog","$mdToast","$window","$translate","$http","$q","toasty","api","motNotification","Auth","socket","privacyManager"],angular.module("app.core").controller("MsPhonebarController",e).directive("msPhonebar",function(){return{restrict:"E",scope:{conf:"=",sessions:"="},require:"msPhonebar",controller:"MsPhonebarController",controllerAs:"vm_pb",bindToController:!0,templateUrl:"assets/ms-phonebar/ms-phonebar.html"}})}(),function(){"use strict";function e(n,e,t){var a=this;a.prefixes=e,a.required=t,a.closeDialog=function(e){n.hide(e)},a.keyPress=function(e){13===e.keyCode&&this.call()},a.call=function(){n.hide(a.prefix)}}e.$inject=["$mdDialog","prefixes","required"],angular.module("app.core").controller("PrefixDialogController",e)}(),function(){"use strict";function e(i){return{restrict:"C",controller:["$scope","$element",function(e,n){function t(){n.css("display","inline"),i(a,1e3)}function a(){n.css("display","none"),i(t,1e3)}t()}],replace:!0}}function n(n,i,s,e,t){var o=this;function a(n,e){console.log("startMonitor");var t=i.defer(),a=(e||n.filename.replace(/^.*[\\\/]/,"")).split(".")[0];return s.rpc.startMonitor({uniqueid:o.session.uniqueid,filename:a,format:"wav"}).$promise.then(function(e){n.filename=a+".wav",n.mixmonitorid=e.mixmonitorid,n.status="rec",o.session.monitor=!0,t.resolve(n)}).catch(function(e){t.reject(e)}),t.promise}o.title="Record",o.sessions=e,o.session=t,o.closeDialog=function(){n.hide()},o.addRecording=function(){var e=n.prompt({skipHide:!0}).title("Start new recording").textContent("Type the file name.").placeholder("File name").ariaLabel("File name").initialValue(function(){function e(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}return e()+e()+"-"+e()+"-"+e()+"-"+e()+"-"+e()+e()+e()}()).ok("Start").cancel("Cancel");n.show(e).then(function(e){return a({},e)}).then(function(e){o.session.monitors.push(e)})},o.stop=function(n){return console.log("stopMonitor"),s.rpc.stopMonitor({uniqueid:o.session.uniqueid,mixmonitorid:n.mixmonitorid}).$promise.then(function(e){n.status="pause",o.session.monitor=_.includes(o.session.monitors,{status:"rec"})}).catch(function(e){console.error(e)})},o.start=a}e.$inject=["$timeout"],n.$inject=["$mdDialog","$q","api","sessions","session"],angular.module("app.core").directive("msBlink",e).controller("RecordDialogController",n)}(),function(){"use strict";function e(n,s,a,i,e){var o=this;function r(e,n,t,a,i){return console.debug("onTransferCallback -> session, textContent, position, delay",e,n,t,a),function(){s.show(s.simple().textContent(n).position(t).hideDelay(a)),e.terminate(),jabra&&i&&jabra.onHook(),l()}}function l(e){n.hide(e)}o.title="Refer Attended",o.sessions=a,o.session=i,o.isJabraEnabled=e,o.sessionTarget=null,a.length&&(o.target=a[0].user),o.closeDialog=l,o.transfer=function(){var e,n,t=_.find(a,function(e){if(e.user===o.target)return e});n=t.outgoing?(e=t,o.session):(e=o.session,t);n.refer(e.user,{replaces:e,eventHandlers:{requestSucceeded:r(i,"requestSucceeded","top right",3e3,o.isJabraEnabled),requestFailed:r(i,"requestFailed","top right",3e3,o.isJabraEnabled)}})}}e.$inject=["$mdDialog","$mdToast","sessions","session","isJabraEnabled"],angular.module("app.core").controller("ReferAttendedDialogController",e)}(),function(){"use strict";function e(e,s,n,t){var a=this;function i(e,n,t){var a;if(s[t]){if(a=_.find(e,function(e){return e.deviceId===s[t]}))return a.deviceId;var i=_.findIndex(e,function(e){return e.kind===n});if(0<=i)return e[i].deviceId}else(a=_.find(e,function(e){return e.kind===n}))&&(s[t]=a.deviceId);return s[t]||null}_.remove(n,function(e){return"audioinput"===e.kind&&("default"===e.deviceId||"communications"===e.deviceId)||"audiooutput"===e.kind&&("default"===e.deviceId||"communications"===e.deviceId)}),s.ringingId=i(n,"audiooutput","ringingId"),s.speakerId=i(n,"audiooutput","speakerId"),s.microphoneId=i(n,"audioinput","microphoneId"),s.ringingVolume=s.ringingVolume||.5,s.speakerVolume=s.speakerVolume||.5,s.microphoneVolume=s.microphoneVolume||1,s.ringingMute=s.ringingMute||!1,s.speakerMute=s.speakerMute||!1,s.microphoneMute=s.microphoneMute||!1,a.conf=angular.copy(s),a.devices=n,a.activeSessions=t,a.saveSettings=function(){e.hide(a.conf)},a.closeDialog=function(){e.hide()},a.isCompatibleBrowser=function(){return"chrome"===a.conf.browserName.toLowerCase()||"opera"===a.conf.browserName.toLowerCase()||"safari"===a.conf.browserName.toLowerCase()}}e.$inject=["$mdDialog","conf","devices","activeSessions"],angular.module("app.toolbar").controller("SettingsController",e)}(),function(){"use strict";function e(t,a){var i=this;function s(e){var n=e.key,t={param:i.query[n],resources:e.options,placeholder:e.placeholder,ngValue:e.ngValue};a.setPlaceholder(t).then(function(e){i.placeholders[n]=e})}i.pickerModels={},i.placeholders={},i.localizationMap=t.localizationMap,i.onMultiselectInit=function(e){s(e)},i.onDateRangeInit=function(e){var n=e.key;i.query[n]?i.pickerModels[n]=t.setSelectedDate(i.query[n]):i.pickerModels[n]={dateStart:null}},i.onMultiselectSelection=function(e,n){n&&(s(e),i.search())},i.onDateRangeSelection=function(e){var n=e.key;i.pickerModels[n].dateStart?!0===e.useFromToKeys?i.query[n]={from:moment(i.pickerModels[n].dateStart).utcOffset(0,!0).format(),to:moment(i.pickerModels[n].dateEnd).utcOffset(0,!0).add(23,"hours").add(59,"minutes").add(59,"seconds").format()}:i.query[n]={$gte:moment(i.pickerModels[n].dateStart).utcOffset(0,!0).format(),$lte:moment(i.pickerModels[n].dateEnd).utcOffset(0,!0).add(23,"hours").add(59,"minutes").add(59,"seconds").format()}:i.query[n]=void 0;i.search()},i.clearDate=function(e){var n=e.key;i.pickerModels[n]={dateStart:null},delete i.query[n],i.search()},i.clearSelection=function(e){var n=e.key,t=e.ngValue||"id";i.query[n]=!1===e.clearAll?[_.head(e.options)[t]]:[],s(e),i.search()},i.selectAll=function(e){var n=e.key,t=e.ngValue||"id";i.query[n]=_.map(e.options,t),s(e),i.search()}}function n(p,e){var g={localizationMap:e,setSelectedDate:function(e){var n=e.$gte?new Date(moment.utc(e.$gte).format("YYYY-MM-DD")):new Date(moment.utc(e.from).format("YYYY-MM-DD")),t=e.$lte?new Date(moment.utc(e.$lte).format("YYYY-MM-DD")):new Date(moment.utc(e.to).format("YYYY-MM-DD")),a={dateStart:new Date(n.getFullYear(),n.getMonth(),n.getDate()),dateEnd:new Date(t.getFullYear(),t.getMonth(),t.getDate())};return a.selectedTemplateName=(i=a,moment(i.dateStart).isSame(i.dateEnd)?(u=i,moment().startOf("day").isSame(u.dateStart)?g.localizationMap.Today:(m=i,moment().subtract(1,"days").startOf("day").isSame(m.dateStart)?g.localizationMap.Yesterday:p("date")(i.dateStart,"dd MMM yyyy"))):(c=i,moment().startOf("isoWeek").isSame(c.dateStart,"day")&&moment().endOf("isoWeek").isSame(c.dateEnd,"day")?g.localizationMap["This Week"]:(d=i,moment().subtract(1,"weeks").startOf("isoWeek").isSame(d.dateStart,"day")&&moment().subtract(1,"weeks").endOf("isoWeek").isSame(d.dateEnd,"day")?g.localizationMap["Last Week"]:(l=i,moment().startOf("month").isSame(l.dateStart,"day")&&moment().endOf("month").isSame(l.dateEnd,"day")?g.localizationMap["This Month"]:(r=i,moment().subtract(1,"months").startOf("month").isSame(r.dateStart,"day")&&moment().subtract(1,"months").endOf("month").isSame(r.dateEnd,"day")?g.localizationMap["Last Month"]:(o=i,moment().startOf("year").isSame(o.dateStart,"day")&&moment().endOf("year").isSame(o.dateEnd,"day")?g.localizationMap["This Year"]:(s=i,moment().subtract(1,"years").startOf("year").isSame(s.dateStart,"day")&&moment().subtract(1,"years").endOf("year").isSame(s.dateEnd,"day")?g.localizationMap["Last Year"]:p("date")(i.dateStart,"dd"+(i.dateStart.getMonth()!==i.dateEnd.getMonth()||i.dateStart.getFullYear()!==i.dateEnd.getFullYear()?" MMM":"")+(i.dateStart.getFullYear()!==i.dateEnd.getFullYear()?" yyyy":""))+" - "+p("date")(i.dateEnd,"dd MMM yyyy")))))))),a;var i,s,o,r,l,d,c,m,u}};return g}n.$inject=["$filter","dateFilterLocalizationFactory"],e.$inject=["dateRangeManager","quickFilterManager"],angular.module("app.core").directive("msQuickFilter",function(){return{restrict:"E",scope:{query:"=",filters:"=",search:"&"},controller:e,controllerAs:"vm",bindToController:!0,templateUrl:"app/core/directives/ms-quick-filter/ms-quick-filter.html"}}).factory("dateRangeManager",n)}(),function(){"use strict";angular.module("app.core").directive("msRandomClass",function(){return{restrict:"A",scope:{msRandomClass:"="},link:function(e,n){var t=e.msRandomClass[Math.floor(Math.random()*e.msRandomClass.length)];n.addClass(t)}}})}(),function(){"use strict";function e(i){return{restrict:"E",scope:{id:"=",model:"=",download:"="},replace:!0,link:function(n,e){var t=!1,a=document.createElement("audio");n.download||a.setAttribute("controlsList","nodownload"),a.setAttribute("preload","none"),a.setAttribute("controls",""),a.setAttribute("style","width: 265px;"),a.setAttribute("src"," "),a.onplay=function(e){t||(t=!0,e.preventDefault(),i[n.model||"voiceRecording"].download({id:n.id}).$promise.then(function(e){var n=[e.buffer],t=new Blob(n,{type:e.type});a.setAttribute("type",e.type),a.setAttribute("src",URL.createObjectURL(t)),a.play()}).catch(function(e){console.error(e)}))},e.append(a)}}}e.$inject=["api"],angular.module("app.core").directive("msRecording",e)}(),function(){"use strict";angular.module("app.core").directive("msResponsiveTable",function(){return{restrict:"A",link:function(e,n){var t=angular.element('<div class="ms-responsive-table-wrapper"></div>');n.after(t),t.append(n)}}})}(),function(){"use strict";function e(s,o,n,t){return{restrict:"AE",compile:function(e){if(!(t.getConfig("disableCustomScrollbars")||t.getConfig("disableCustomScrollbarsOnMobile")&&n.isMobile()))return e.addClass("ms-scroll"),function(e,n,t){var a={};function i(){PerfectScrollbar.update(n[0])}t.msScroll&&(a=e.$eval(t.msScroll)),a=angular.extend({},o.getConfig(),a),s(function(){PerfectScrollbar.initialize(n[0],a)},0),n.on("mouseenter",i),e.$watch(function(){return n.prop("scrollHeight")},function(e,n){angular.isUndefined(e)||angular.equals(e,n)||i()}),e.$watch(function(){return n.prop("scrollWidth")},function(e,n){angular.isUndefined(e)||angular.equals(e,n)||i()}),e.$on("$destroy",function(){n.off("mouseenter"),PerfectScrollbar.destroy(n[0])})}}}}e.$inject=["$timeout","msScrollConfig","msUtils","motionConfig"],angular.module("app.core").provider("msScrollConfig",function(){var n={wheelSpeed:1,wheelPropagation:!1,swipePropagation:!0,minScrollbarLength:null,maxScrollbarLength:null,useBothWheelAxes:!1,useKeyboard:!0,suppressScrollX:!1,suppressScrollY:!1,scrollXMarginOffset:0,scrollYMarginOffset:0,stopPropagationOnClick:!0};this.config=function(e){n=angular.extend({},n,e)},this.$get=function(){var e={getConfig:function(){return n}};return e}}).directive("msScroll",e)}(),function(){"use strict";function e(n,i,s,e){var o=this;function t(){angular.isArray(o.onSearch)?a(o.onSearch):o.onResultClick?(o.resultsLoading=!0,n.$parent.$eval("vm.search(query)",{query:o.query.filter}).then(function(e){a(e)}).catch(function(){a([])}).finally(function(){o.resultsLoading=!1})):o.onSearch()}function a(e){o.expanded&&(void 0===e||angular.isArray(e)||null===e)&&(o.selectedResultIndex=0,o.results=e)}function r(){o.expanded=!0,o.displayOn=!0,n.expand()}function l(e){!1!==e&&(o.query.filter=void 0,o.onResultClick?a(null):t()),o.expanded=!1,n.collapse()}function d(e){o.onResultClick&&o.onResultClick({item:e}),l()}function c(){var e=i.find(".ms-search-bar-results"),n=angular.element(e.find(".result")[o.selectedResultIndex]);if(e&&n){var t=n.position().top-8,a=n.position().top+n.outerHeight()+8;o.ignoreMouseEvents=!0,s.cancel(o.mouseEventIgnoreTimeout),o.mouseEventIgnoreTimeout=s(function(){o.ignoreMouseEvents=!1},250),e.scrollTop()>t&&e.scrollTop(t),a>e.height()+e.scrollTop()&&e.scrollTop(a-e.height())}}o.queryOptions={debounce:o.debounce||0},o.searchOnEnterKey=e.get().searchOnEnterKey||!1,o.resultsLoading=!1,o.results=null,o.selectedResultIndex=0,o.ignoreMouseEvents=!1,o.expandBar=r,o.collapseBar=l,o.blurCollapse=function(){if(!o.collapseOnBlur)return;l()},o.onKeyDown=function(e){var n=e.keyCode;-1<[27,38,40].indexOf(n)&&e.preventDefault();switch(n){case 13:if(!o.onResultClick)return t();if(!o.results)return;d(o.results[o.selectedResultIndex]);break;case 27:l();break;case 38:0<=o.selectedResultIndex-1&&(o.selectedResultIndex--,c());break;case 40:if(!o.results)return;o.selectedResultIndex+1<o.results.length&&(o.selectedResultIndex++,c())}},o.absorbEvent=function(e){e.preventDefault()},o.handleMouseenter=function(e){if(o.ignoreMouseEvents)return;o.selectedResultIndex=e},o.handleResultClick=d,n.$watch("vm.displayOn",function(e){angular.isUndefined(e)||(!0!==e||o.expanded?e||!1===o.expanded||l(!1):r())}),n.$watch("vm.query.filter",function(e,n){if(!angular.isUndefined(e)&&0!==e.length&&!angular.equals(e,n)&&!1!==o.displayOn){if(o.expanded){if(!0===o.searchOnEnterKey&&!o.onResultClick)return;if(o.minChars&&o.minChars>e.length)return}else r();t()}})}function n(a){return{restrict:"E",scope:{query:"=?",debounce:"=?",direction:"@",iconColor:"@",onSearch:"&",onResultClick:"&?",onExpand:"&?",onCollapse:"&?",collapseOnBlur:"<?",minChars:"<?",displayOn:"=?"},controller:e,controllerAs:"vm",bindToController:!0,templateUrl:"app/core/directives/ms-search-bar/ms-search-bar.html",compile:function(e){return e.addClass("ms-search-bar"),{post:function(n,t){n.collapse=function(){if(t.removeClass("expanded"),"down"===n.vm.direction){t.removeClass("down");var e=t.closest("md-toolbar");e&&e.removeClass("h-128")}a.find("body").removeClass("ms-search-bar-expanded")},n.expand=function(){if(t.addClass("expanded"),"down"===n.vm.direction){t.addClass("down");var e=t.closest("md-toolbar");e&&e.addClass("h-128")}a.find("body").addClass("ms-search-bar-expanded")}}}}}}e.$inject=["$scope","$element","$timeout","settingsManager"],n.$inject=["$document"],angular.module("app.core").controller("MsSearchBarController",e).directive("msSearchBar",n)}(),function(){"use strict";function e(e,t,i,o,r,l){var d=this;d.query="",d.queryOptions={debounce:300},d.resultsLoading=!1,d.selectedResultIndex=0,d.ignoreMouseEvents=!1,d.mobileBarActive=!1,d.results=null,d.shortcuts=[],d.sortableOptions={ghostClass:"ghost",forceFallback:!0,fallbackClass:"dragging",onSort:function(){d.saveShortcuts()}},d.populateResults=function(){for(var e=[],n=l.getFlatNavigation(),t=r.defer(),a=0;a<n.length;a++)n[a].uisref&&e.push(n[a]);if(d.query){e=e.filter(function(e){if(-1<angular.lowercase(e.title).search(angular.lowercase(d.query)))return!0});for(var i=0;i<e.length;i++){e[i].hasShortcut=!1;for(var s=0;s<d.shortcuts.length;s++)if(d.shortcuts[s]._id===e[i]._id){e[i].hasShortcut=!0;break}}}else 0<d.shortcuts.length&&(e=d.shortcuts);return d.selectedResultIndex=0,o(function(){t.resolve(e)},250),t.promise},d.loadShortcuts=function(){var e=r.defer(),n=angular.fromJson(t.get("motion.shortcuts"));angular.isUndefined(n)&&(n=[{title:"Agents",icon:"icon-account-multiple",state:"app.staff.agents",weight:5,children:[],uisref:"app.staff.agents",hasShortcut:!0},{title:"License",icon:"icon-cog",state:"app.settings.license",weight:10,children:[],uisref:"app.settings.license",hasShortcut:!0}],t.put("motion.shortcuts",angular.toJson(n)));return e.resolve(n),e.promise},d.saveShortcuts=function(){var e=r.defer();return t.put("motion.shortcuts",angular.toJson(d.shortcuts)),o(function(){e.resolve({success:!0})},250),e.promise},d.addShortcut=function(e){e.hasShortcut=!0,d.shortcuts.push(e),d.saveShortcuts()},d.removeShortcut=function(e){e.hasShortcut=!1;for(var n=0;n<d.shortcuts.length;n++)d.shortcuts[n]._id===e._id&&(d.shortcuts.splice(n,1),d.query||(0===d.shortcuts.length?d.results=null:n>=d.shortcuts.length&&(d.selectedResultIndex=d.shortcuts.length-1)));d.saveShortcuts()},d.handleResultClick=function(e){e.hasShortcut?d.removeShortcut(e):d.addShortcut(e)},d.absorbEvent=function(e){e.preventDefault()},d.handleKeydown=function(e){var n=e.keyCode;-1<[38,40].indexOf(n)&&e.preventDefault();switch(n){case 13:d.handleResultClick(d.results[d.selectedResultIndex]);break;case 38:0<=d.selectedResultIndex-1&&(d.selectedResultIndex--,d.ensureSelectedResultIsVisible());break;case 40:d.selectedResultIndex+1<d.results.length&&(d.selectedResultIndex++,d.ensureSelectedResultIsVisible())}},d.handleMouseenter=function(e){if(d.ignoreMouseEvents)return;d.selectedResultIndex=e},d.temporarilyIgnoreMouseEvents=function(){d.ignoreMouseEvents=!0,o.cancel(d.mouseEventIgnoreTimeout),d.mouseEventIgnoreTimeout=o(function(){d.ignoreMouseEvents=!1},250)},d.ensureSelectedResultIsVisible=function(){var e=i.find("#ms-shortcut-add-menu").find(".results"),n=angular.element(e.find(".result")[d.selectedResultIndex]);if(e&&n){var t=n.position().top-8,a=n.position().top+n.outerHeight()+8;d.temporarilyIgnoreMouseEvents(),e.scrollTop()>t&&e.scrollTop(t),a>e.height()+e.scrollTop()&&e.scrollTop(a-e.height())}},d.toggleMobileBar=function(){d.mobileBarActive=!d.mobileBarActive},d.loadShortcuts().then(function(e){d.shortcuts=e,0<d.shortcuts.length&&(d.results=e)}),e.$watch("MsShortcuts.query",function(e,n){angular.isUndefined(e)||angular.equals(e,n)||(d.resultsLoading=!0,d.populateResults().then(function(e){d.results=e},function(){d.results=[]}).finally(function(){d.resultsLoading=!1}))})}e.$inject=["$scope","$cookies","$document","$timeout","$q","msNavigationService"],angular.module("app.core").controller("MsShortcutsController",e).directive("msShortcuts",function(){return{restrict:"E",scope:{},require:"msShortcuts",controller:"MsShortcutsController as MsShortcuts",bindToController:{},templateUrl:"app/core/directives/ms-shortcuts/ms-shortcuts.html",compile:function(e){return e.addClass("ms-shortcuts"),function(e,n){}}}})}(),function(){"use strict";angular.module("app.core").directive("msSidenavHelper",function(){return{restrict:"A",require:"^mdSidenav",link:function(e,n,t,a){e.$watch(function(){return a.isOpen()&&!a.isLockedOpen()},function(e){angular.isUndefined(e)||(n.parent().toggleClass("full-height",e),angular.element("html").toggleClass("sidenav-open",e))})}}})}(),function(){"use strict";function e(a){return{restrict:"E",link:function(e,n){var t=e.$on("msSplashScreen::remove",function(){a.leave(n).then(function(){t(),e=n=null})})}}}e.$inject=["$animate"],angular.module("app.core").directive("msSplashScreen",e)}(),function(){"use strict";function e(e){var i=this;function n(){i.setCurrentStep(1)}function t(e){return o(e)?i.steps[e-1].scope.optionalStep:null}function a(e){return o(e)?!!i.steps[e-1].scope.hideStep:null}function s(e){return o(e)?!!t(e)||i.steps[e-1].form.$valid:null}function o(e){return!(angular.isUndefined(e)||e<1||e>i.steps.length)}i.mainForm=void 0,i.orientation="horizontal",i.steps=[],i.currentStep=void 0,i.currentStepNumber=1,i.setOrientation=function(e){i.orientation=e||"horizontal"},i.registerMainForm=function(e){i.mainForm=e},i.registerStep=function(e,n,t){var a={element:e,scope:n,form:t,stepNumber:n.step||i.steps.length+1,stepTitle:n.stepTitle,stepTitleTranslate:n.stepTitleTranslate};return i.steps.push(a),i.steps.sort(function(e,n){return e.stepNumber-n.stepNumber}),a},i.setupSteps=function(){i.setCurrentStep(i.currentStepNumber)},i.resetForm=function(){e(function(){for(var e=0;e<i.steps.length;e++)i.steps[e].form.$setPristine(),i.steps[e].form.$setUntouched();i.mainForm.$setPristine(),i.mainForm.$setUntouched(),n()})},i.setCurrentStep=function(e){if(!o(e))return;if(i.currentStepNumber=e,"horizontal"===i.orientation){for(var n=0;n<i.steps.length;n++)i.steps[n].element.hide();i.steps[i.currentStepNumber-1].element.show()}else if("vertical"===i.orientation){for(var t=0;t<i.steps.length;t++)i.steps[t].element.find(".ms-stepper-step-content").hide();i.steps[i.currentStepNumber-1].element.find(".ms-stepper-step-content").show()}},i.gotoStep=function(e){if(a(e))return;i.setCurrentStep(e)},i.gotoPreviousStep=function(){for(var e=i.currentStepNumber-1,n=e;1<=n;n--)if(!a(n)){e=n;break}i.setCurrentStep(e)},i.gotoNextStep=function(){for(var e=i.currentStepNumber+1,n=e;n<=i.steps.length;n++)if(!a(n)){e=n;break}i.setCurrentStep(e)},i.gotoFirstStep=n,i.gotoLastStep=function(){i.setCurrentStep(i.steps.length)},i.isFirstStep=function(){return 1===i.currentStepNumber},i.isLastStep=function(){return i.currentStepNumber===i.steps.length},i.isStepCurrent=function(e){return o(e)?i.currentStepNumber===e:null},i.isStepDisabled=function(e){if(!o(e))return null;for(var n=!1,t=1;t<e;t++)if(!s(t)){n=!0;break}return n},i.isStepOptional=t,i.isStepHidden=a,i.filterHiddenStep=function(e){return!a(e.stepNumber)},i.isStepValid=s,i.isStepNumberValid=o,i.isFormValid=function(){return i.mainForm.$valid}}function n(o){return{restrict:"A",scope:{},require:["form","msVerticalStepper"],priority:1001,controller:"MsStepperController as MsStepper",bindToController:{model:"=ngModel"},transclude:!0,templateUrl:"app/core/directives/ms-stepper/templates/vertical/vertical.html",compile:function(e){return e.addClass("ms-stepper"),function(e,n,t,a){var i=a[0],s=a[1];o(function(){s.setOrientation("vertical"),s.registerMainForm(i),s.setupSteps()})}}}}e.$inject=["$timeout"],n.$inject=["$timeout"],angular.module("app.core").controller("MsStepperController",e).directive("msHorizontalStepper",function(){return{restrict:"A",scope:{},require:["form","msHorizontalStepper"],priority:1001,controller:"MsStepperController as MsStepper",bindToController:{model:"=ngModel"},transclude:!0,templateUrl:"app/core/directives/ms-stepper/templates/horizontal/horizontal.html",compile:function(e){return e.addClass("ms-stepper"),function(e,n,t,a){var i=a[0],s=a[1];s.setOrientation("horizontal"),s.registerMainForm(i),s.setupSteps()}}}}).directive("msHorizontalStepperStep",function(){return{restrict:"E",require:["form","^msHorizontalStepper"],priority:1e3,scope:{step:"=?",stepTitle:"=?",stepTitleTranslate:"=?",optionalStep:"=?",hideStep:"=?"},compile:function(e){return e.addClass("ms-stepper-step"),function(e,n,t,a){var i=a[0],s=a[1];e.optionalStep=angular.isDefined(t.optionalStep),s.registerStep(n,e,i),n.hide()}}}}).directive("msVerticalStepper",n).directive("msVerticalStepperStep",function(){return{restrict:"E",require:["form","^msVerticalStepper"],priority:1e3,scope:{step:"=?",stepTitle:"=?",stepTitleTranslate:"=?",optionalStep:"=?",hideStep:"=?"},transclude:!0,templateUrl:"app/core/directives/ms-stepper/templates/vertical/step/vertical-step.html",compile:function(e){return e.addClass("ms-stepper-step"),function(e,n,t,a){var i=a[0],s=a[1];e.optionalStep=angular.isDefined(t.optionalStep),e.stepInfo=s.registerStep(n,e,i),e.MsStepper=s,n.find(".ms-stepper-step-content").hide()}}}})}(),function(){"use strict";function e(e){return{restrict:"E",scope:{},transclude:!0,controller:"MsTabScrollController",controllerAs:"vm",bindToController:!0,templateUrl:"app/core/directives/ms-tab-scroll/ms-tab-scroll.html",compile:function(e){return e.addClass("ms-tab-scroll"),function(e,n){}}}}e.$inject=["$document"],angular.module("app.core").controller("MsTabScrollController",function(){function n(){var e=document.getElementById("bar-container"),n=document.getElementById("tab-container");return n.scrollWidth>e.scrollWidth&&0==e.scrollLeft&&0==n.scrollLeft?"right":n.scrollWidth>e.scrollWidth&&n.scrollLeft>e.scrollLeft&&e.scrollWidth+n.scrollLeft>=n.scrollWidth?"left":n.scrollWidth>e.scrollWidth&&n.scrollLeft>e.scrollLeft&&e.scrollWidth+n.scrollLeft<n.scrollWidth?"both":"none"}this.onTabScroll=function(e){"left"==e?$("#tab-container").stop().animate({scrollLeft:"-=400"},1e3):$("#tab-container").stop().animate({scrollLeft:"+=400"},1e3)},this.canScroll=function(e){switch(n()){case"both":return!0;case"left":return"left"==e;case"right":return"right"==e;case"none":default:return!1}}}).directive("msTabScroll",e)}(),function(){"use strict";function e(m,u){return{scope:!0,require:"^msTimeline",compile:function(e){return e.addClass("ms-timeline-item").addClass("hidden"),function(e,t,n,a){var i=72,s=!1,o=!1,r=a.getScrollEl();!function(){t.find("ms-card")?e.$on("msCard::cardTemplateLoaded",function(e,n){var t=angular.element(n[0]);d(t).then(function(){m(function(){s=!0})})}):d(t).then(function(){m(function(){s=!0})});r.on("scroll",c),c()}();var l=e.$watch(function(){return s&&o},function(e,n){angular.equals(e,n)||e&&(t.removeClass("hidden").addClass("animate"),l())},!0);function d(e){var n=u.defer(),t=e.find("img");return 0<t.length?t.on("load",function(){n.resolve("Image is loaded")}):n.resolve("No images"),n.promise}function c(){r.scrollTop()+r.height()>t.position().top+i&&(m(function(){o=!0}),r.off("scroll",c))}}}}}e.$inject=["$timeout","$q"],angular.module("app.core").controller("MsTimelineController",function(){var n=this;n.scrollEl=void 0,n.setScrollEl=function(e){n.scrollEl=e},n.getScrollEl=function(){return n.scrollEl}}).directive("msTimeline",function(){return{scope:{msTimeline:"=?",loadMore:"&?msTimelineLoadMore"},controller:"MsTimelineController",compile:function(e){return e.addClass("ms-timeline"),function(e,n,t,a){var i=angular.element('<div class="ms-timeline-loader md-accent-bg md-whiteframe-4dp"><span class="spinner animate-rotate"></span></div>');n.append(i);var s={scrollEl:"#content"};s=angular.extend(s,e.msTimeline,{});var o=angular.element(s.scrollEl);a.setScrollEl(o);var r=144;function l(){o.scrollTop()+o.height()+r>i.position().top&&(i.addClass("show"),c(),e.loadMore&&e.loadMore().then(function(){i.removeClass("show"),d()},function(){i.remove()}))}function d(){o.on("scroll",l)}function c(){o.off("scroll",l)}d(),e.$on("$destroy",function(){c()})}}}}).directive("msTimelineItem",e)}(),function(){"use strict";function e(a,e,n,i,t){var r=this;function s(){!function(){r.millis=l().diff(moment(r.startingTime));var e=moment.duration(r.millis),n=e.seconds(),t=e.minutes(),a=e.hours(),i=e.days(),s=e.months(),o=e.years();r.seconds=n<10?"0"+n:n,r.minutes=t<10?"0"+t:t,r.hours=a<10?"0"+a:a,r.days=i<10?"0"+i:i,r.months=s<10?"0"+s:s,r.years=o<10?"0"+o:o,r.timer=0<r.days?r.days+"d ":r.hours+":"+r.minutes+":"+r.seconds}(),r.timeoutId=setTimeout(function(){s(),a.$digest()},r.interval)}function l(e){var n=(e||moment()).utcOffset(a.serverDateOffset).format("YYYY-MM-DD HH:mm:ss");return moment(n)}function o(){n(function(n,t){try{if(a.serverDateOffset)return void n(l());i.setting.getDate().$promise.then(function(e){a.serverDateOffset=e.offset,n(moment(e.now))})}catch(e){t(e)}}).then(function(e){var n=r.startTime?moment(r.startTime):void 0;r.startTime?n.isAfter(e,"hour")||n.isBefore(e,"hour")?r.startingTime=l(n):r.startingTime=n:r.startingTime=e,s()}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.getDate",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}o(),a.$watch("vm.startTime",function(e,n){angular.isUndefined(e)||0!==e.length&&(angular.equals(e,n)||o())}),a.$on("timer-start",function(){r.startTime=void 0,o()}),e.bind("$destroy",function(){r.timeoutId&&clearTimeout(r.timeoutId)})}e.$inject=["$scope","$element","$q","api","toasty"],angular.module("app.core").directive("timer",function(){return{restrict:"EA",replace:!1,scope:{startTime:"=?",interval:"=?"},template:"<span ng-cloak>{{ vm.timer }}</span>",compile:function(){return{pre:function(e,n,t){e.interval=t.interval||1e3}}},controller:e,controllerAs:"vm",bindToController:!0}})}(),function(){"use strict";angular.module("app.core").directive("msTimezone",function(){return{restrict:"E",scope:{ngModel:"="},controller:["$scope",function(e){e.timezone=[{name:"Europe/Andorra",utcOffset:60,offsetStr:"+01:00",countries:["AD"]},{name:"Asia/Dubai",utcOffset:240,offsetStr:"+04:00",countries:["AE","OM"]},{name:"Asia/Kabul",utcOffset:270,offsetStr:"+04:30",countries:["AF"]},{name:"Europe/Tirane",utcOffset:60,offsetStr:"+01:00",countries:["AL"]},{name:"Asia/Yerevan",utcOffset:240,offsetStr:"+04:00",countries:["AM"]},{name:"Antarctica/Rothera",utcOffset:-180,offsetStr:"-03:00",countries:["AQ"]},{name:"Antarctica/Palmer",utcOffset:-180,offsetStr:"-03:00",countries:["AQ"]},{name:"Antarctica/Mawson",utcOffset:300,offsetStr:"+05:00",countries:["AQ"]},{name:"Antarctica/Davis",utcOffset:420,offsetStr:"+07:00",countries:["AQ"]},{name:"Antarctica/Casey",utcOffset:480,offsetStr:"+08:00",countries:["AQ"]},{name:"Antarctica/Vostok",utcOffset:360,offsetStr:"+06:00",countries:["AQ"]},{name:"Antarctica/DumontDUrville",utcOffset:600,offsetStr:"+10:00",countries:["AQ"]},{name:"Antarctica/Syowa",utcOffset:180,offsetStr:"+03:00",countries:["AQ"]},{name:"Antarctica/Troll",utcOffset:0,offsetStr:"+00:00",countries:["AQ"]},{name:"America/Argentina/Buenos_Aires",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Cordoba",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Salta",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Jujuy",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Tucuman",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Catamarca",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/La_Rioja",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/San_Juan",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Mendoza",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/San_Luis",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Rio_Gallegos",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"America/Argentina/Ushuaia",utcOffset:-180,offsetStr:"-03:00",countries:["AR"]},{name:"Pacific/Pago_Pago",utcOffset:-660,offsetStr:"-11:00",countries:["AS","UM"]},{name:"Europe/Vienna",utcOffset:60,offsetStr:"+01:00",countries:["AT"]},{name:"Australia/Lord_Howe",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Antarctica/Macquarie",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Australia/Hobart",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Australia/Currie",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Australia/Melbourne",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Australia/Sydney",utcOffset:660,offsetStr:"+11:00",countries:["AU"]},{name:"Australia/Broken_Hill",utcOffset:630,offsetStr:"+10:30",countries:["AU"]},{name:"Australia/Brisbane",utcOffset:600,offsetStr:"+10:00",countries:["AU"]},{name:"Australia/Lindeman",utcOffset:600,offsetStr:"+10:00",countries:["AU"]},{name:"Australia/Adelaide",utcOffset:630,offsetStr:"+10:30",countries:["AU"]},{name:"Australia/Darwin",utcOffset:570,offsetStr:"+09:30",countries:["AU"]},{name:"Australia/Perth",utcOffset:480,offsetStr:"+08:00",countries:["AU"]},{name:"Australia/Eucla",utcOffset:525,offsetStr:"+08:45",countries:["AU"]},{name:"Asia/Baku",utcOffset:240,offsetStr:"+04:00",countries:["AZ"]},{name:"America/Barbados",utcOffset:-240,offsetStr:"-04:00",countries:["BB"]},{name:"Asia/Dhaka",utcOffset:360,offsetStr:"+06:00",countries:["BD"]},{name:"Europe/Brussels",utcOffset:60,offsetStr:"+01:00",countries:["BE"]},{name:"Europe/Sofia",utcOffset:120,offsetStr:"+02:00",countries:["BG"]},{name:"Atlantic/Bermuda",utcOffset:-240,offsetStr:"-04:00",countries:["BM"]},{name:"Asia/Brunei",utcOffset:480,offsetStr:"+08:00",countries:["BN"]},{name:"America/La_Paz",utcOffset:-240,offsetStr:"-04:00",countries:["BO"]},{name:"America/Noronha",utcOffset:-120,offsetStr:"-02:00",countries:["BR"]},{name:"America/Belem",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Fortaleza",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Recife",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Araguaina",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Maceio",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Bahia",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Sao_Paulo",utcOffset:-120,offsetStr:"-02:00",countries:["BR"]},{name:"America/Campo_Grande",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Cuiaba",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Santarem",utcOffset:-180,offsetStr:"-03:00",countries:["BR"]},{name:"America/Porto_Velho",utcOffset:-240,offsetStr:"-04:00",countries:["BR"]},{name:"America/Boa_Vista",utcOffset:-240,offsetStr:"-04:00",countries:["BR"]},{name:"America/Manaus",utcOffset:-240,offsetStr:"-04:00",countries:["BR"]},{name:"America/Eirunepe",utcOffset:-300,offsetStr:"-05:00",countries:["BR"]},{name:"America/Rio_Branco",utcOffset:-300,offsetStr:"-05:00",countries:["BR"]},{name:"America/Nassau",utcOffset:-300,offsetStr:"-05:00",countries:["BS"]},{name:"Asia/Thimphu",utcOffset:360,offsetStr:"+06:00",countries:["BT"]},{name:"Europe/Minsk",utcOffset:180,offsetStr:"+03:00",countries:["BY"]},{name:"America/Belize",utcOffset:-360,offsetStr:"-06:00",countries:["BZ"]},{name:"America/St_Johns",utcOffset:-210,offsetStr:"-03:30",countries:["CA"]},{name:"America/Halifax",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},{name:"America/Glace_Bay",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},{name:"America/Moncton",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},{name:"America/Goose_Bay",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},{name:"America/Blanc-Sablon",utcOffset:-240,offsetStr:"-04:00",countries:["CA"]},{name:"America/Toronto",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Nipigon",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Thunder_Bay",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Iqaluit",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Pangnirtung",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Resolute",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Atikokan",utcOffset:-300,offsetStr:"-05:00",countries:["CA"]},{name:"America/Rankin_Inlet",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Winnipeg",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Rainy_River",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Regina",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Swift_Current",utcOffset:-360,offsetStr:"-06:00",countries:["CA"]},{name:"America/Edmonton",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Cambridge_Bay",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Yellowknife",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Inuvik",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Creston",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Dawson_Creek",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Fort_Nelson",utcOffset:-420,offsetStr:"-07:00",countries:["CA"]},{name:"America/Vancouver",utcOffset:-480,offsetStr:"-08:00",countries:["CA"]},{name:"America/Whitehorse",utcOffset:-480,offsetStr:"-08:00",countries:["CA"]},{name:"America/Dawson",utcOffset:-480,offsetStr:"-08:00",countries:["CA"]},{name:"Indian/Cocos",utcOffset:390,offsetStr:"+06:30",countries:["CC"]},{name:"Europe/Zurich",utcOffset:60,offsetStr:"+01:00",countries:["CH","DE","LI"]},{name:"Africa/Abidjan",utcOffset:0,offsetStr:"+00:00",countries:["CI","BF","GM","GN","ML","MR","SH","SL","SN","ST","TG"]},{name:"Pacific/Rarotonga",utcOffset:-600,offsetStr:"-10:00",countries:["CK"]},{name:"America/Santiago",utcOffset:-180,offsetStr:"-03:00",countries:["CL"]},{name:"Pacific/Easter",utcOffset:-300,offsetStr:"-05:00",countries:["CL"]},{name:"Asia/Shanghai",utcOffset:480,offsetStr:"+08:00",countries:["CN"]},{name:"Asia/Urumqi",utcOffset:360,offsetStr:"+06:00",countries:["CN"]},{name:"America/Bogota",utcOffset:-300,offsetStr:"-05:00",countries:["CO"]},{name:"America/Costa_Rica",utcOffset:-360,offsetStr:"-06:00",countries:["CR"]},{name:"America/Havana",utcOffset:-300,offsetStr:"-05:00",countries:["CU"]},{name:"Atlantic/Cape_Verde",utcOffset:-60,offsetStr:"-01:00",countries:["CV"]},{name:"America/Curacao",utcOffset:-240,offsetStr:"-04:00",countries:["CW","AW","BQ","SX"]},{name:"Indian/Christmas",utcOffset:420,offsetStr:"+07:00",countries:["CX"]},{name:"Asia/Nicosia",utcOffset:120,offsetStr:"+02:00",countries:["CY"]},{name:"Europe/Prague",utcOffset:60,offsetStr:"+01:00",countries:["CZ","SK"]},{name:"Europe/Berlin",utcOffset:60,offsetStr:"+01:00",countries:["DE"]},{name:"Europe/Copenhagen",utcOffset:60,offsetStr:"+01:00",countries:["DK"]},{name:"America/Santo_Domingo",utcOffset:-240,offsetStr:"-04:00",countries:["DO"]},{name:"Africa/Algiers",utcOffset:60,offsetStr:"+01:00",countries:["DZ"]},{name:"America/Guayaquil",utcOffset:-300,offsetStr:"-05:00",countries:["EC"]},{name:"Pacific/Galapagos",utcOffset:-360,offsetStr:"-06:00",countries:["EC"]},{name:"Europe/Tallinn",utcOffset:120,offsetStr:"+02:00",countries:["EE"]},{name:"Africa/Cairo",utcOffset:120,offsetStr:"+02:00",countries:["EG"]},{name:"Africa/El_Aaiun",utcOffset:0,offsetStr:"+00:00",countries:["EH"]},{name:"Europe/Madrid",utcOffset:60,offsetStr:"+01:00",countries:["ES"]},{name:"Africa/Ceuta",utcOffset:60,offsetStr:"+01:00",countries:["ES"]},{name:"Atlantic/Canary",utcOffset:0,offsetStr:"+00:00",countries:["ES"]},{name:"Europe/Helsinki",utcOffset:120,offsetStr:"+02:00",countries:["FI","AX"]},{name:"Pacific/Fiji",utcOffset:720,offsetStr:"+12:00",countries:["FJ"]},{name:"Atlantic/Stanley",utcOffset:-180,offsetStr:"-03:00",countries:["FK"]},{name:"Pacific/Chuuk",utcOffset:600,offsetStr:"+10:00",countries:["FM"]},{name:"Pacific/Pohnpei",utcOffset:660,offsetStr:"+11:00",countries:["FM"]},{name:"Pacific/Kosrae",utcOffset:660,offsetStr:"+11:00",countries:["FM"]},{name:"Atlantic/Faroe",utcOffset:0,offsetStr:"+00:00",countries:["FO"]},{name:"Europe/Paris",utcOffset:60,offsetStr:"+01:00",countries:["FR"]},{name:"Europe/London",utcOffset:0,offsetStr:"+00:00",countries:["GB","GG","IM","JE"]},{name:"Asia/Tbilisi",utcOffset:240,offsetStr:"+04:00",countries:["GE"]},{name:"America/Cayenne",utcOffset:-180,offsetStr:"-03:00",countries:["GF"]},{name:"Africa/Accra",utcOffset:0,offsetStr:"+00:00",countries:["GH"]},{name:"Europe/Gibraltar",utcOffset:60,offsetStr:"+01:00",countries:["GI"]},{name:"America/Godthab",utcOffset:-180,offsetStr:"-03:00",countries:["GL"]},{name:"America/Danmarkshavn",utcOffset:0,offsetStr:"+00:00",countries:["GL"]},{name:"America/Scoresbysund",utcOffset:-60,offsetStr:"-01:00",countries:["GL"]},{name:"America/Thule",utcOffset:-240,offsetStr:"-04:00",countries:["GL"]},{name:"Europe/Athens",utcOffset:120,offsetStr:"+02:00",countries:["GR"]},{name:"Atlantic/South_Georgia",utcOffset:-120,offsetStr:"-02:00",countries:["GS"]},{name:"America/Guatemala",utcOffset:-360,offsetStr:"-06:00",countries:["GT"]},{name:"Pacific/Guam",utcOffset:600,offsetStr:"+10:00",countries:["GU","MP"]},{name:"Africa/Bissau",utcOffset:0,offsetStr:"+00:00",countries:["GW"]},{name:"America/Guyana",utcOffset:-240,offsetStr:"-04:00",countries:["GY"]},{name:"Asia/Hong_Kong",utcOffset:480,offsetStr:"+08:00",countries:["HK"]},{name:"America/Tegucigalpa",utcOffset:-360,offsetStr:"-06:00",countries:["HN"]},{name:"America/Port-au-Prince",utcOffset:-300,offsetStr:"-05:00",countries:["HT"]},{name:"Europe/Budapest",utcOffset:60,offsetStr:"+01:00",countries:["HU"]},{name:"Asia/Jakarta",utcOffset:420,offsetStr:"+07:00",countries:["ID"]},{name:"Asia/Pontianak",utcOffset:420,offsetStr:"+07:00",countries:["ID"]},{name:"Asia/Makassar",utcOffset:480,offsetStr:"+08:00",countries:["ID"]},{name:"Asia/Jayapura",utcOffset:540,offsetStr:"+09:00",countries:["ID"]},{name:"Europe/Dublin",utcOffset:0,offsetStr:"+00:00",countries:["IE"]},{name:"Asia/Jerusalem",utcOffset:120,offsetStr:"+02:00",countries:["IL"]},{name:"Asia/Kolkata",utcOffset:330,offsetStr:"+05:30",countries:["IN"]},{name:"Indian/Chagos",utcOffset:360,offsetStr:"+06:00",countries:["IO"]},{name:"Asia/Baghdad",utcOffset:180,offsetStr:"+03:00",countries:["IQ"]},{name:"Asia/Tehran",utcOffset:210,offsetStr:"+03:30",countries:["IR"]},{name:"Atlantic/Reykjavik",utcOffset:0,offsetStr:"+00:00",countries:["IS"]},{name:"Europe/Rome",utcOffset:60,offsetStr:"+01:00",countries:["IT","SM","VA"]},{name:"America/Jamaica",utcOffset:-300,offsetStr:"-05:00",countries:["JM"]},{name:"Asia/Amman",utcOffset:120,offsetStr:"+02:00",countries:["JO"]},{name:"Asia/Tokyo",utcOffset:540,offsetStr:"+09:00",countries:["JP"]},{name:"Africa/Nairobi",utcOffset:180,offsetStr:"+03:00",countries:["KE","DJ","ER","ET","KM","MG","SO","TZ","UG","YT"]},{name:"Asia/Bishkek",utcOffset:360,offsetStr:"+06:00",countries:["KG"]},{name:"Pacific/Tarawa",utcOffset:720,offsetStr:"+12:00",countries:["KI"]},{name:"Pacific/Enderbury",utcOffset:780,offsetStr:"+13:00",countries:["KI"]},{name:"Pacific/Kiritimati",utcOffset:840,offsetStr:"+14:00",countries:["KI"]},{name:"Asia/Pyongyang",utcOffset:510,offsetStr:"+08:30",countries:["KP"]},{name:"Asia/Seoul",utcOffset:540,offsetStr:"+09:00",countries:["KR"]},{name:"America/Cayman",utcOffset:-300,offsetStr:"-05:00",countries:["KY"]},{name:"Asia/Almaty",utcOffset:360,offsetStr:"+06:00",countries:["KZ"]},{name:"Asia/Qyzylorda",utcOffset:360,offsetStr:"+06:00",countries:["KZ"]},{name:"Asia/Aqtobe",utcOffset:300,offsetStr:"+05:00",countries:["KZ"]},{name:"Asia/Aqtau",utcOffset:300,offsetStr:"+05:00",countries:["KZ"]},{name:"Asia/Oral",utcOffset:300,offsetStr:"+05:00",countries:["KZ"]},{name:"Asia/Beirut",utcOffset:120,offsetStr:"+02:00",countries:["LB"]},{name:"Asia/Colombo",utcOffset:330,offsetStr:"+05:30",countries:["LK"]},{name:"Africa/Monrovia",utcOffset:0,offsetStr:"+00:00",countries:["LR"]},{name:"Europe/Vilnius",utcOffset:120,offsetStr:"+02:00",countries:["LT"]},{name:"Europe/Luxembourg",utcOffset:60,offsetStr:"+01:00",countries:["LU"]},{name:"Europe/Riga",utcOffset:120,offsetStr:"+02:00",countries:["LV"]},{name:"Africa/Tripoli",utcOffset:120,offsetStr:"+02:00",countries:["LY"]},{name:"Africa/Casablanca",utcOffset:0,offsetStr:"+00:00",countries:["MA"]},{name:"Europe/Monaco",utcOffset:60,offsetStr:"+01:00",countries:["MC"]},{name:"Europe/Chisinau",utcOffset:120,offsetStr:"+02:00",countries:["MD"]},{name:"Pacific/Majuro",utcOffset:720,offsetStr:"+12:00",countries:["MH"]},{name:"Pacific/Kwajalein",utcOffset:720,offsetStr:"+12:00",countries:["MH"]},{name:"Asia/Rangoon",utcOffset:390,offsetStr:"+06:30",countries:["MM"]},{name:"Asia/Ulaanbaatar",utcOffset:480,offsetStr:"+08:00",countries:["MN"]},{name:"Asia/Hovd",utcOffset:420,offsetStr:"+07:00",countries:["MN"]},{name:"Asia/Choibalsan",utcOffset:480,offsetStr:"+08:00",countries:["MN"]},{name:"Asia/Macau",utcOffset:480,offsetStr:"+08:00",countries:["MO"]},{name:"America/Martinique",utcOffset:-240,offsetStr:"-04:00",countries:["MQ"]},{name:"Europe/Malta",utcOffset:60,offsetStr:"+01:00",countries:["MT"]},{name:"Indian/Mauritius",utcOffset:240,offsetStr:"+04:00",countries:["MU"]},{name:"Indian/Maldives",utcOffset:300,offsetStr:"+05:00",countries:["MV"]},{name:"America/Mexico_City",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},{name:"America/Cancun",utcOffset:-300,offsetStr:"-05:00",countries:["MX"]},{name:"America/Merida",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},{name:"America/Monterrey",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},{name:"America/Matamoros",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},{name:"America/Mazatlan",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},{name:"America/Chihuahua",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},{name:"America/Ojinaga",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},{name:"America/Hermosillo",utcOffset:-420,offsetStr:"-07:00",countries:["MX"]},{name:"America/Tijuana",utcOffset:-480,offsetStr:"-08:00",countries:["MX"]},{name:"America/Santa_Isabel",utcOffset:-480,offsetStr:"-08:00",countries:["MX"]},{name:"America/Bahia_Banderas",utcOffset:-360,offsetStr:"-06:00",countries:["MX"]},{name:"Asia/Kuala_Lumpur",utcOffset:480,offsetStr:"+08:00",countries:["MY"]},{name:"Asia/Kuching",utcOffset:480,offsetStr:"+08:00",countries:["MY"]},{name:"Africa/Maputo",utcOffset:120,offsetStr:"+02:00",countries:["MZ","BI","BW","CD","MW","RW","ZM","ZW"]},{name:"Africa/Windhoek",utcOffset:120,offsetStr:"+02:00",countries:["NA"]},{name:"Pacific/Noumea",utcOffset:660,offsetStr:"+11:00",countries:["NC"]},{name:"Pacific/Norfolk",utcOffset:660,offsetStr:"+11:00",countries:["NF"]},{name:"Africa/Lagos",utcOffset:60,offsetStr:"+01:00",countries:["NG","AO","BJ","CD","CF","CG","CM","GA","GQ","NE"]},{name:"America/Managua",utcOffset:-360,offsetStr:"-06:00",countries:["NI"]},{name:"Europe/Amsterdam",utcOffset:60,offsetStr:"+01:00",countries:["NL"]},{name:"Europe/Oslo",utcOffset:60,offsetStr:"+01:00",countries:["NO","SJ"]},{name:"Asia/Kathmandu",utcOffset:345,offsetStr:"+05:45",countries:["NP"]},{name:"Pacific/Nauru",utcOffset:720,offsetStr:"+12:00",countries:["NR"]},{name:"Pacific/Niue",utcOffset:-660,offsetStr:"-11:00",countries:["NU"]},{name:"Pacific/Auckland",utcOffset:780,offsetStr:"+13:00",countries:["NZ","AQ"]},{name:"Pacific/Chatham",utcOffset:825,offsetStr:"+13:45",countries:["NZ"]},{name:"America/Panama",utcOffset:-300,offsetStr:"-05:00",countries:["PA"]},{name:"America/Lima",utcOffset:-300,offsetStr:"-05:00",countries:["PE"]},{name:"Pacific/Tahiti",utcOffset:-600,offsetStr:"-10:00",countries:["PF"]},{name:"Pacific/Marquesas",utcOffset:-570,offsetStr:"-09:30",countries:["PF"]},{name:"Pacific/Gambier",utcOffset:-540,offsetStr:"-09:00",countries:["PF"]},{name:"Pacific/Port_Moresby",utcOffset:600,offsetStr:"+10:00",countries:["PG"]},{name:"Pacific/Bougainville",utcOffset:660,offsetStr:"+11:00",countries:["PG"]},{name:"Asia/Manila",utcOffset:480,offsetStr:"+08:00",countries:["PH"]},{name:"Asia/Karachi",utcOffset:300,offsetStr:"+05:00",countries:["PK"]},{name:"Europe/Warsaw",utcOffset:60,offsetStr:"+01:00",countries:["PL"]},{name:"America/Miquelon",utcOffset:-180,offsetStr:"-03:00",countries:["PM"]},{name:"Pacific/Pitcairn",utcOffset:-480,offsetStr:"-08:00",countries:["PN"]},{name:"America/Puerto_Rico",utcOffset:-240,offsetStr:"-04:00",countries:["PR"]},{name:"Asia/Gaza",utcOffset:120,offsetStr:"+02:00",countries:["PS"]},{name:"Asia/Hebron",utcOffset:120,offsetStr:"+02:00",countries:["PS"]},{name:"Europe/Lisbon",utcOffset:0,offsetStr:"+00:00",countries:["PT"]},{name:"Atlantic/Madeira",utcOffset:0,offsetStr:"+00:00",countries:["PT"]},{name:"Atlantic/Azores",utcOffset:-60,offsetStr:"-01:00",countries:["PT"]},{name:"Pacific/Palau",utcOffset:540,offsetStr:"+09:00",countries:["PW"]},{name:"America/Asuncion",utcOffset:-180,offsetStr:"-03:00",countries:["PY"]},{name:"Asia/Qatar",utcOffset:180,offsetStr:"+03:00",countries:["QA","BH"]},{name:"Indian/Reunion",utcOffset:240,offsetStr:"+04:00",countries:["RE","TF"]},{name:"Europe/Bucharest",utcOffset:120,offsetStr:"+02:00",countries:["RO"]},{name:"Europe/Belgrade",utcOffset:60,offsetStr:"+01:00",countries:["RS","BA","HR","ME","MK","SI"]},{name:"Europe/Kaliningrad",utcOffset:120,offsetStr:"+02:00",countries:["RU"]},{name:"Europe/Moscow",utcOffset:180,offsetStr:"+03:00",countries:["RU"]},{name:"Europe/Simferopol",utcOffset:180,offsetStr:"+03:00",countries:["RU"]},{name:"Europe/Volgograd",utcOffset:180,offsetStr:"+03:00",countries:["RU"]},{name:"Europe/Samara",utcOffset:240,offsetStr:"+04:00",countries:["RU"]},{name:"Asia/Yekaterinburg",utcOffset:300,offsetStr:"+05:00",countries:["RU"]},{name:"Asia/Omsk",utcOffset:360,offsetStr:"+06:00",countries:["RU"]},{name:"Asia/Novosibirsk",utcOffset:360,offsetStr:"+06:00",countries:["RU"]},{name:"Asia/Novokuznetsk",utcOffset:420,offsetStr:"+07:00",countries:["RU"]},{name:"Asia/Krasnoyarsk",utcOffset:420,offsetStr:"+07:00",countries:["RU"]},{name:"Asia/Irkutsk",utcOffset:480,offsetStr:"+08:00",countries:["RU"]},{name:"Asia/Chita",utcOffset:480,offsetStr:"+08:00",countries:["RU"]},{name:"Asia/Yakutsk",utcOffset:540,offsetStr:"+09:00",countries:["RU"]},{name:"Asia/Khandyga",utcOffset:540,offsetStr:"+09:00",countries:["RU"]},{name:"Asia/Vladivostok",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},{name:"Asia/Sakhalin",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},{name:"Asia/Ust-Nera",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},{name:"Asia/Magadan",utcOffset:600,offsetStr:"+10:00",countries:["RU"]},{name:"Asia/Srednekolymsk",utcOffset:660,offsetStr:"+11:00",countries:["RU"]},{name:"Asia/Kamchatka",utcOffset:720,offsetStr:"+12:00",countries:["RU"]},{name:"Asia/Anadyr",utcOffset:720,offsetStr:"+12:00",countries:["RU"]},{name:"Asia/Riyadh",utcOffset:180,offsetStr:"+03:00",countries:["SA","KW","YE"]},{name:"Pacific/Guadalcanal",utcOffset:660,offsetStr:"+11:00",countries:["SB"]},{name:"Indian/Mahe",utcOffset:240,offsetStr:"+04:00",countries:["SC"]},{name:"Africa/Khartoum",utcOffset:180,offsetStr:"+03:00",countries:["SD","SS"]},{name:"Europe/Stockholm",utcOffset:60,offsetStr:"+01:00",countries:["SE"]},{name:"Asia/Singapore",utcOffset:480,offsetStr:"+08:00",countries:["SG"]},{name:"America/Paramaribo",utcOffset:-180,offsetStr:"-03:00",countries:["SR"]},{name:"America/El_Salvador",utcOffset:-360,offsetStr:"-06:00",countries:["SV"]},{name:"Asia/Damascus",utcOffset:120,offsetStr:"+02:00",countries:["SY"]},{name:"America/Grand_Turk",utcOffset:-240,offsetStr:"-04:00",countries:["TC"]},{name:"Africa/Ndjamena",utcOffset:60,offsetStr:"+01:00",countries:["TD"]},{name:"Indian/Kerguelen",utcOffset:300,offsetStr:"+05:00",countries:["TF"]},{name:"Asia/Bangkok",utcOffset:420,offsetStr:"+07:00",countries:["TH","KH","LA","VN"]},{name:"Asia/Dushanbe",utcOffset:300,offsetStr:"+05:00",countries:["TJ"]},{name:"Pacific/Fakaofo",utcOffset:780,offsetStr:"+13:00",countries:["TK"]},{name:"Asia/Dili",utcOffset:540,offsetStr:"+09:00",countries:["TL"]},{name:"Asia/Ashgabat",utcOffset:300,offsetStr:"+05:00",countries:["TM"]},{name:"Africa/Tunis",utcOffset:60,offsetStr:"+01:00",countries:["TN"]},{name:"Pacific/Tongatapu",utcOffset:780,offsetStr:"+13:00",countries:["TO"]},{name:"Europe/Istanbul",utcOffset:120,offsetStr:"+02:00",countries:["TR"]},{name:"America/Port_of_Spain",utcOffset:-240,offsetStr:"-04:00",countries:["TT","AG","AI","BL","DM","GD","GP","KN","LC","MF","MS","VC","VG","VI"]},{name:"Pacific/Funafuti",utcOffset:720,offsetStr:"+12:00",countries:["TV"]},{name:"Asia/Taipei",utcOffset:480,offsetStr:"+08:00",countries:["TW"]},{name:"Europe/Kiev",utcOffset:120,offsetStr:"+02:00",countries:["UA"]},{name:"Europe/Uzhgorod",utcOffset:120,offsetStr:"+02:00",countries:["UA"]},{name:"Europe/Zaporozhye",utcOffset:120,offsetStr:"+02:00",countries:["UA"]},{name:"Pacific/Wake",utcOffset:720,offsetStr:"+12:00",countries:["UM"]},{name:"America/New_York",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Detroit",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Kentucky/Louisville",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Kentucky/Monticello",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Indianapolis",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Vincennes",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Winamac",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Marengo",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Petersburg",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Indiana/Vevay",utcOffset:-300,offsetStr:"-05:00",countries:["US"]},{name:"America/Chicago",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/Indiana/Tell_City",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/Indiana/Knox",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/Menominee",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/North_Dakota/Center",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/North_Dakota/New_Salem",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/North_Dakota/Beulah",utcOffset:-360,offsetStr:"-06:00",countries:["US"]},{name:"America/Denver",utcOffset:-420,offsetStr:"-07:00",countries:["US"]},{name:"America/Boise",utcOffset:-420,offsetStr:"-07:00",countries:["US"]},{name:"America/Phoenix",utcOffset:-420,offsetStr:"-07:00",countries:["US"]},{name:"America/Los_Angeles",utcOffset:-480,offsetStr:"-08:00",countries:["US"]},{name:"America/Metlakatla",utcOffset:-480,offsetStr:"-08:00",countries:["US"]},{name:"America/Anchorage",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},{name:"America/Juneau",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},{name:"America/Sitka",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},{name:"America/Yakutat",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},{name:"America/Nome",utcOffset:-540,offsetStr:"-09:00",countries:["US"]},{name:"America/Adak",utcOffset:-600,offsetStr:"-10:00",countries:["US"]},{name:"Pacific/Honolulu",utcOffset:-600,offsetStr:"-10:00",countries:["US","UM"]},{name:"America/Montevideo",utcOffset:-180,offsetStr:"-03:00",countries:["UY"]},{name:"Asia/Samarkand",utcOffset:300,offsetStr:"+05:00",countries:["UZ"]},{name:"Asia/Tashkent",utcOffset:300,offsetStr:"+05:00",countries:["UZ"]},{name:"America/Caracas",utcOffset:-270,offsetStr:"-04:30",countries:["VE"]},{name:"Asia/Ho_Chi_Minh",utcOffset:420,offsetStr:"+07:00",countries:["VN"]},{name:"Pacific/Efate",utcOffset:660,offsetStr:"+11:00",countries:["VU"]},{name:"Pacific/Wallis",utcOffset:720,offsetStr:"+12:00",countries:["WF"]},{name:"Pacific/Apia",utcOffset:840,offsetStr:"+14:00",countries:["WS"]},{name:"Africa/Johannesburg",utcOffset:120,offsetStr:"+02:00",countries:["ZA","LS","SZ"]}]}],templateUrl:"app/core/directives/ms-timezone/ms-timezone.html"}})}(),function(){"use strict";angular.module("app.core").controller("MsWidgetEngineCounterController",function(){var a=this;a.filter=[],a.filtered=!1,a.fontSize=20,a.getCount=function(e){var n=0;if(e){a.fontSize=e.attrs[2]&&e.attrs[2].value?parseInt(e.attrs[2].value)-parseInt(e.attrs[2].value)%2:20,e.attrs[1].value&&e.attrs[1].value.length?(a.filtered=!0,a.filter=_.intersection(e.voiceQueuesSelected,e.attrs[1].value)):(a.filtered=!1,a.filter=e.voiceQueuesSelected);for(var t=0;t<e.voiceQueues.rows.length;t+=1)_.includes(a.filter,e.voiceQueues.rows[t].id)&&(n+=e.voiceQueues.rows[t][e.attrs[0].value]?parseInt(e.voiceQueues.rows[t][e.attrs[0].value]):0)}return n}})}(),function(){"use strict";function e(o,e){var r=this;r.filter=[],r.filtered=!1,r.properties=[],r.multiBarChart={labels:["QUEUE_NAME"],series:["TOTAL"],data:[[50]],options:{responsive:!0,legend:{display:!0,fontColor:"#2196f3"},scales:{xAxes:[{gridLines:{display:!0},ticks:{fontColor:"#2196f3",stepSize:1,beginAtZero:!0}}],yAxes:[{gridLines:{display:!1},ticks:{fontColor:"#2196f3"}}]}}},r.getMultiBarChart=function(e){e&&(e.attrs&&function(e){r.properties=_.map(_.filter(e.attrs,function(e){return e.name&&0<=e.name.indexOf("attrSerie")&&e.value&&"null"!==e.value}),"value"),e.attrs[3].value&&e.attrs[3].value.length?(r.filtered=!0,r.filter=_.intersection(e.voiceQueuesSelected,e.attrs[3].value)):(r.filtered=!1,r.filter=e.voiceQueuesSelected);if(r.multiBarChart.series.length>r.properties.length){var n=r.multiBarChart.series.length-r.properties.length;r.multiBarChart.series.splice(0,n),r.multiBarChart.data.splice(0,n)}for(var t=0;t<r.properties.length;t+=1){if(r.multiBarChart.series[t]=o.instant("TOOLS."+r.properties[t].toUpperCase()),_.isNil(r.multiBarChart.data[t])&&(r.multiBarChart.data[t]=[]),r.multiBarChart.labels.length>r.filter.length){var a=r.multiBarChart.labels.length-r.filter.length;r.multiBarChart.labels.splice(0,a),r.multiBarChart.data[t].splice(0,a)}for(var i=0,s=0;i<e.voiceQueues.rows.length;i+=1)_.includes(r.filter,e.voiceQueues.rows[i].id)&&(r.multiBarChart.labels[s]=e.voiceQueues.rows[i].name,r.multiBarChart.data[t][s]=e.voiceQueues.rows[i][r.properties[t]]?parseInt(e.voiceQueues.rows[i][r.properties[t]]):0,s+=1)}}(e),e.foreground&&function(e){r.multiBarChart.options.legend.fontColor=e.foreground;for(var n=0;n<r.multiBarChart.options.scales.xAxes.length;n+=1)r.multiBarChart.options.scales.xAxes[n].ticks.fontColor=e.foreground;for(var t=0;t<r.multiBarChart.options.scales.yAxes.length;t+=1)r.multiBarChart.options.scales.yAxes[t].ticks.fontColor=e.foreground}(e))}}e.$inject=["$translate","socket"],angular.module("app.core").controller("MsWidgetEngineMultibarChartController",e)}(),function(){"use strict";function e(s){var o=this;o.filter=[],o.filtered=!1,o.properties=[],o.pieChart={labels:["ANSWERED"],data:[30],options:{responsive:!0,legend:{display:!0}}},o.getPieChart=function(e){e&&(e.attrs&&function(e){o.properties=_.map(_.filter(e.attrs,function(e){return e.name&&0<=e.name.indexOf("attrSerie")&&e.value&&"null"!==e.value}),"value"),e.attrs[3].value&&e.attrs[3].value.length?(o.filtered=!0,o.filter=_.intersection(e.voiceQueuesSelected,e.attrs[3].value)):(o.filtered=!1,o.filter=e.voiceQueuesSelected);if(o.pieChart.labels.length>o.properties.length){var n=o.pieChart.labels.length-o.properties.length;o.pieChart.labels.splice(0,n),o.pieChart.data.splice(0,n)}for(var t=0,a=0;t<o.properties.length;t+=1){o.pieChart.labels[t]=s.instant("TOOLS."+o.properties[t].toUpperCase());for(var i=0;i<e.voiceQueues.rows.length;i+=1)_.includes(o.filter,e.voiceQueues.rows[i].id)&&(a+=e.voiceQueues.rows[i][o.properties[t]]?parseInt(e.voiceQueues.rows[i][o.properties[t]]):0);o.pieChart.data[t]=a,a=0}}(e),e.foreground&&(n=e,o.pieChart.options.legend.fontColor=n.foreground));var n}}e.$inject=["$translate"],angular.module("app.core").controller("MsWidgetEnginePieChartController",e)}(),function(){"use strict";function e(e,t,a,i){var s=this;function n(e){s.results=e||{count:0,rows:[]}}function o(){s.query.offset=(s.query.page-1)*s.query.limit,s.promise=i[s.reportRoute].run(s.query,n).$promise}s.countDown=0,s.refresh=0,s.title="",s.columns=[],s.results={rows:[],count:0},s.query={limit:10,page:1,startDate:moment().startOf("day").format("YYYY-MM-DD HH:mm:ss"),endDate:moment().endOf("day").format("YYYY-MM-DD HH:mm:ss"),output:"web"},s.onInit=function e(n){n&&n.attrs&&(n.attrs[0]&&n.attrs[0].value&&(s.query.id=n.attrs[0].value,i.analyticFieldReport.get({fields:"field,alias",nolimit:!0,DefaultReportId:"default"===n.attrs[0].type?n.attrs[0].value:void 0,CustomReportId:"custom"===n.attrs[0].type?n.attrs[0].value:void 0}).$promise.then(function(e){switch(e&&e.rows&&(s.columns=e.rows),n.attrs[0].type){case"default":s.reportRoute="analyticDefaultReport";break;case"custom":s.reportRoute="analyticCustomReport"}return i[s.reportRoute].get({id:n.attrs[0].value,fields:"id,name"}).$promise}).then(function(e){e&&e.name&&(s.title=e.name),o()}).catch(function(e){console.log(e)})),n.attrs[1]&&n.attrs[1].value&&(s.refresh=parseInt(n.attrs[1].value),!_.isNaN(s.refresh)&&0<s.refresh?(s.countDown=parseInt(n.attrs[1].value),s.interval=a(function(){s.countDown-=1},1e3,0),s.timeout=t(function(){s.interval&&a.cancel(s.interval),e(n)},1e3*s.refresh)):(s.interval&&a.cancel(s.interval),s.timeout&&t.cancel(s.timeout))))},s.getResults=o,s.valueReplacer=function(e,n){moment(n,"YYYY-MM-DDTHH:mm:ssZ",!0).isValid()&&(n=moment(n,"").format("YYYY-MM-DD HH:mm:ss"));return n},e.$on("$destroy",function(){s.interval&&a.cancel(s.interval),s.timeout&&t.cancel(s.timeout)})}e.$inject=["$scope","$timeout","$interval","api"],angular.module("app.core").controller("MsWidgetEngineWebReportController",e)}(),function(){"use strict";function e(e,n){this.getTrustedURL=function(e){return n.trustAsResourceUrl(e)}}function n(e){return{restrict:"E",scope:{config:"=?",onEdit:"&?",onDelete:"&?"},require:"msWidgetEngine",controller:"MsWidgetEngineController",controllerAs:"vm",bindToController:!0,templateUrl:"app/core/directives/ms-widget-engine/ms-widget-engine.html"}}e.$inject=["$mdDialog","$sce"],n.$inject=["$document"],angular.module("app.core").controller("MsWidgetEngineController",e).directive("msWidgetEngine",n)}(),function(){"use strict";function e(e,n){var t=this;t.flipped=!1,t.flip=function(){if(!angular.isDefined(e.flippable)||!0!==e.flippable)return;t.flipped=!t.flipped,n.toggleClass("flipped",t.flipped)}}e.$inject=["$scope","$element"],angular.module("app.core").controller("MsWidgetController",e).directive("msWidget",function(){return{restrict:"E",scope:{flippable:"=?"},controller:"MsWidgetController",transclude:!0,compile:function(e){return e.addClass("ms-widget"),function(e,n,t,a,i){i(function(e){n.empty(),n.append(e)})}}}}).directive("msWidgetFront",function(){return{restrict:"E",require:"^msWidget",transclude:!0,compile:function(e){return e.addClass("ms-widget-front"),function(e,n,t,a,i){i(function(e){n.empty(),n.append(e)}),e.flipWidget=a.flip}}}}).directive("msWidgetBack",function(){return{restrict:"E",require:"^msWidget",transclude:!0,compile:function(e){return e.addClass("ms-widget-back"),function(e,n,t,a,i){i(function(e){n.empty(),n.append(e)}),e.flipWidget=a.flip}}}})}(),function(){"use strict";function e(s,n,o,r){return{restrict:"A",require:"?ngModel",link:function(t,a,e,i){o.isAdmin()||o.isTelephone()||(""!==e.privacy||o.getCurrentUser().privacyEnabled)&&!1!==t.$eval(e.privacy)&&(i?(i.$formatters.push(function(e){if(!e)return e;var n=r.mask(e);return i.$setViewValue(n),i.$render(),i.$viewValue}),i.$parsers.push(function(){return i.$modelValue}),a[0].disabled=!0):n(function(){s(a.contents())(t);var e=a.text();if(e){var n=r.mask(e);a.text(n)}}))}}}e.$inject=["$compile","$timeout","Auth","privacyManager"],angular.module("app.core").directive("privacy",e)}(),function(){"use strict";function e(o,r,i,l,d){var e={get:function(s,a){return o(function(n,t){0===a.offset&&(s=void 0);var e=_.merge({},a);i.cmContact.getJourney(e).$promise.then(function(e){var a,n=_(e.rows).uniqBy(function(e){return e.channel}).map("channel").value();return(a=n,o(function(e,n){var t=a.map(function(n){if("voice"!==n){var e="get"+_.startCase(n)+("chat"===n?"Websites":"Accounts");return i.user[e]({id:l.getCurrentUser().id,attributes:["id","name"],nolimit:!0}).$promise.then(function(e){c[n]=e.rows})}});return o.all(t).then(function(){e()}).catch(function(e){n(e)})})).then(function(){return e.rows.forEach(function(e){var n;e.canOpen=function(e){switch(e.channel){case"chat":return!!c.chat&&_.some(c.chat,["id",e.ChatWebsiteId]);case"fax":return!!c.fax&&_.some(c.fax,["id",e.FaxAccountId]);case"mail":return!!c.mail&&_.some(c.mail,["id",e.MailAccountId]);case"openchannel":return!!c.openchannel&&_.some(c.openchannel,["id",e.OpenchannelAccountId]);case"sms":return!!c.sms&&_.some(c.sms,["id",e.SmsAccountId]);case"voice":return!0;case"whatsapp":return!!c.whatsapp&&_.some(c.whatsapp,["id",e.WhatsappAccountId]);default:return!1}}(e),e.dispositionsValues=(n=e).disposition?"("+_.compact([n.disposition,n.secondDisposition,n.thirdDisposition]).join(" - ")+")":"("+r.instant("DASHBOARDS.NO_DISPOSITION_SET")+")",e.style=function(e){switch(e.channel){case"chat":return{color:"green-A700",icon:"icon-hangouts"};case"fax":return{color:"blue-grey-A200",icon:"icon-deskphone"};case"mail":return{color:"teal",icon:"icon-email"};case"openchannel":return{color:"amber-A200",icon:"icon-google-earth"};case"sms":return{color:"orange",icon:"icon-message-text"};case"voice":return{color:"blue-A700",icon:"icon-phone"};case"whatsapp":return{color:"lime-A700",icon:"icon-whatsapp"}}}(e)}),a=s,i=e,o(function(e,n){try{var t={journey:a?_.union(a,i.rows):i.rows};t.loadMore=0<i.count-t.journey.length,e(t)}catch(e){n(e)}});var a,i})}).then(function(e){n(e)}).catch(function(e){d.error({title:r.instant("CONTACTMANAGER.CUSTOMER_JOURNEY"),msg:r.instant("CONTACTMANAGER.NOTIFICATIONS.NO_DATA_ERROR")}),t(e)})})},getQuery:function(){return{range:{from:moment().subtract(3,"M").startOf("month").format("YYYY-MM-DD HH:mm:ss"),to:moment().endOf("month").format("YYYY-MM-DD HH:mm:ss")},limit:10,offset:0}},getQuickFilters:function(){return[{name:"Channel",key:"channel",type:"select",label:"INTEGRATIONS.CHANNEL",customOptions:[{value:void 0,translate:"DASHBOARDS.ALL"},{value:"voice",translate:"DASHBOARDS.VOICE"},{value:"chat",translate:"DASHBOARDS.CHAT"},{value:"mail",translate:"DASHBOARDS.MAIL"},{value:"sms",translate:"DASHBOARDS.SMS"},{value:"fax",translate:"DASHBOARDS.FAX"},{value:"openchannel",translate:"DASHBOARDS.OPENCHANNEL"},{value:"whatsapp",translate:"DASHBOARDS.WHATSAPP"}]},{name:"Start Date",key:"range",type:"date",label:"DASHBOARDS.SELECT_DATE",useFromToKeys:!0}]}},c={};return e}e.$inject=["$q","$translate","api","Auth","toasty"],angular.module("app.core").factory("customerJourneyManager",e)}(),function(){"use strict";function e(t,a,n,i,s){var o={},r={},l={},d={};function c(){r=i.getCurrentUser();var e=n.localStorage.getItem("motion2.home:"+r.id);if(l=e?JSON.parse(e).currentSidebarTab:"dashboard",d=n.localStorage.getItem("motion2.home."+l+":"+r.id)){var a=JSON.parse(d);a.drafts?r.privacyEnabled&&Object.keys(a.drafts).forEach(function(e){var n=a.drafts[e].title,t=n.split(/-(.+)/)[1].trim();a.drafts[e].title=n.replace(t,s.mask(t))}):a.drafts={},d=a}else d={drafts:{}};return d.drafts}function m(){_.isEmpty(o.drafts)?delete d.drafts:d.drafts=o.drafts,n.localStorage.setItem("motion2.home."+l+":"+r.id,JSON.stringify(d))}return o.init=function(){o.drafts=c()},o.getByInteraction=function(n){return o.drafts=c(),_.find(_.values(o.drafts),function(e){return e.interaction&&e.interaction.id===n})},o.removeByInteraction=function(n){o.drafts=c();var e=_.find(_.values(o.drafts),function(e){return e.interaction&&e.interaction.id===n});e&&(delete o.drafts[e.id],m())},o.add=function(e){o.drafts=c();var n=a.instant("DASHBOARDS.UNTITLED");e.contact?n=e.contact.firstName||e.contact.email:_.isEmpty(e.message.subject)||(n=e.message.subject);var t={type:"draft",title:e.account.key+" - "+n,channel:e.channel,content:e.message,account:e.account,interaction:e.interaction,id:_.random(1e10),openedAt:new Date,saved:!1};o.drafts[t.id]=t,m()},o.update=function(e){o.drafts=c();var n=o.drafts[e.id];n&&(n.content=e.message,o.drafts[e.id]=n,m())},o.open=function(e){o.drafts=c();var n=o.drafts[e];n&&t.$broadcast("open"+_.startCase(l)+"Draft",n)},o.remove=function(e){o.drafts=c(),o.drafts[e]&&(delete o.drafts[e],m())},o}e.$inject=["$rootScope","$translate","$window","Auth","privacyManager"],angular.module("app.core").factory("draftManager",e)}(),function(){"use strict";function e(i){function s(e,n){var t=i.localStorage.getItem(e),a=t?JSON.parse(t):{};return n?a[n]:a}function o(e,n){return i.localStorage.setItem(e,JSON.stringify(n))}return{get:s,set:o,update:function(e,n,t){var a=s(e);t?a[t]=n:a=n;return o(e,a)}}}e.$inject=["$window"],angular.module("app.core").factory("localStorageManager",e)}(),function(){"use strict";function e(i){function s(e,n){var t=i.get(),a=0;if(t)switch(n){case"email":a=t.privacyPolicyEmail;break;case"number":a=t.privacyPolicyNumber;break;default:a=t.privacyPolicyName}return _.isNil(a)?e:0===a||a>e.length?e.replace(/./g,"*"):e.substring(0,e.length-a).padEnd(e.length,"*")}function o(e){return _.startsWith(e,"<")&&_.endsWith(e,">")&&(e=e.substring(1,e.length-1)),/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e)}function r(e){if(_.startsWith(e,"<")&&_.endsWith(e,">")){var n=!0;e=e.substring(1,e.length-1)}var t=e.split("@")[0],a=e.split("@")[1],i="";return n&&(i+="<"),i+=s(t,"email"),i+="@",i+=s(a,"email"),n&&(i+=">"),i}return{mask:function n(e){t=e,e=t.replace(/\s\s+/g," ").trim();var t;{if(o(e))return r(e);if(/^[+]?[0-9|.|\-|\s]*$/.test(e))return s(e,"number");var a=[],i=e.split(" ");return 1===i.length?s(e):(i.forEach(function(e){a.push(n(e))}),a.join(" "))}}}}e.$inject=["settingsManager"],angular.module("app.core").factory("privacyManager",e)}(),function(){"use strict";function e(e,s){return{setPlaceholder:function(a){var i;return e(function(n,e){try{if(_.isEmpty(a.resources))i=s.instant("DASHBOARDS.NONE");else if(_.isEmpty(a.param))i=a.placeholder?s.instant(a.placeholder):s.instant("DASHBOARDS.CHOOSE");else if(a.param.length===a.resources.length)i=s.instant("DASHBOARDS.ALL");else{var t=a.ngValue||"id";i=_(a.resources).filter(function(e){return _.includes(a.param,e[t])}).map("name").value().join(", ")}n(i)}catch(e){console.log("QuickFilterManager::setPlaceholder",e),n(null)}})}}}e.$inject=["$q","$translate"],angular.module("app.core").factory("quickFilterManager",e)}(),function(){"use strict";function e(t){var e={getAgentStatus:function(e){var n="unknown";n=o(e)?"pause":o(e,!0)?"*pause":function(e){if("idle"!==e.voiceStatus&&e.voicePause)return!(e.voiceStatus="pause");return _.every([e.chatStatus,e.faxStatus,e.mailStatus,e.openchannelStatus,e.smsStatus,e.voiceStatus,e.whatsappStatus],r)}(e)?"idle":"busy";return n},setAgentStatusDisplayValue:function(e){var n=e.globalStatus;"pause"===e.globalStatus?n=e.pauseType||t.instant("VOICE.DEFAULT_PAUSE"):"*pause"===e.globalStatus&&(n="*"+(e.pauseType||t.instant("VOICE.DEFAULT_PAUSE")));e.globalStatusDisplayValue=n},updateBusyCounter:s,updateQueue:function(e,n,t,a){var i=t.paused;!1===e.online?(t.online=!1,n.loggedInDb-=1,t.paused?(t.paused=!1,n.paused-=1):n.available-=1):t.online?!e[a+"Pause"]||t.paused||o(e,!0)?!e[a+"Pause"]&&t.paused?(t.paused=!1,t.talking||t.busy||(n.paused-=1,n.available+=1)):e[a+"Pause"]&&t.paused&&(t.talking||t.busy||(n.busy-=1,i||(n.paused+=1))):(t.paused=!0,t.talking||t.busy||(i||(n.paused+=1),0<n.available&&(n.available-=1))):(t.online=!0,n.loggedInDb+=1,n.available+=1);s(n)},updateVoiceQueue:function(e,n){e.loggedIn===e.available&&0<e.waiting&&(e.available-=e.waiting);var t=e.loggedIn-e.available-e.talking-e.waiting-n.paused;t<0?(n.paused-=Math.abs(t),n.waitingOrTalking=!0):0<t&&n.waitingOrTalking&&(n.paused+=1,delete n.waitingOrTalking);_.merge(n,_.pick(e,"inbound"===n.type?a:i)),"outbound"===n.type&&_.isNil(e.startPredictive)&&(n.startPredictive=void 0);s(n)}},a=["loggedIn","available","waiting","talking","paused"],i=["loggedIn","available","waiting","talking","pTalking","originated","message","dialActive","dialMethod","Trunk","paused","startPredictive","startProgressive","erlangCalls","erlangCallToSecond","erlangAbandonmentRate","erlangBusyFactor","dialPredictiveInterval","dialPredictiveIntervalMaxThreshold","dialPredictiveIntervalMinThreshold","predictiveIntervalAvailable","predictiveIntervalTotalCalls","predictiveIntervalAnsweredCalls","predictiveIntervalDroppedCallsTimeout","predictiveIntervalDroppedCallsCallersExit","predictiveIntervalAvgHoldtime","predictiveIntervalAvgTalktime"];function s(e){var n=_.filter(e.agents,["busy",!0]).length,t=e.loggedInDb-e.available-e.paused-e.talking-e.waiting;t<0&&(t=0),e.busy=t<n?n:t}function o(e,n){var t=[e.chatPause,e.faxPause,e.mailPause,e.openchannelPause,e.smsPause,e.voicePause,e.whatsappPause];if(!n)return _.every(t);var a=_.filter(t);return 0<a.length&&a.length<t.length}function r(e){if(_.isNil(e))return!0;return _.includes(["idle","unknown","unavailable","ringing"],e)}return e}e.$inject=["$translate"],angular.module("app.core").factory("realtimeManager",e)}(),function(){"use strict";angular.module("app.core").factory("settingsManager",function(){var n={};return{get:function(){return n},set:function(e){e&&(n=e.toJSON())}}})}(),function(){"use strict";function e(c,m){function u(e,n,t){if(_.isEmpty(n))return t;for(var a=0;a<n.length;a++){var i=n[a].key,s=_.find(e,function(e){return e[i]===n[a].value});s&&(_.some(t,["id",s.id])||(s.canSelect=!1,t.push(s)))}return t}return{getResources:function(a,i,s,o,r,l,d){return c(function(t,n){o||(o={}),d||(d="get"),a[s][d](o).$promise.then(function(e){var t=e.rows;if("admin"===i.role)return t;var n=m.getSectionId(s,l);return a.userProfileSection.get({userProfileId:i.userProfileId,sectionId:n}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?t:a.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(t,{id:e.resourceId})});return u(t,r,n)}):c.resolve().then(function(){return e=s,_.includes(["voiceContext"],e)?(o.defaultEntry=1,a[s][d](o).$promise.then(function(e){return e.rows})):[];var e}).then(function(e){return u(t,r,e)})})}).then(function(e){var n={rows:_.orderBy(e,[o.sort]),count:e.length};t(n)}).catch(function(e){n(e)})})}}}e.$inject=["$q","msNavigationService"],angular.module("app.core").factory("userProfileManager",e)}(),function(){"use strict";angular.module("app.core").filter("altDate",function(){return function(e){var n=Date.now()-new Date(e);return n<36e5?moment(e).fromNow():n<864e5?moment(e).format("HH:mm"):n<6048e5?moment(e).format("dddd"):moment(e).calendar()}})}(),function(){"use strict";function e(n){return function(e){return n.trustAsHtml(e)}}e.$inject=["$sce"],angular.module("app.core").filter("toTrusted",e).filter("htmlToPlaintext",function(){return function(e){return String(e).replace(/<[^>]+>/gm,"")}}).filter("nospace",function(){return function(e){return e?e.replace(/ /g,""):""}}).filter("humanizeDoc",function(){return function(e){if(e)return"directive"===e.type?e.name.replace(/([A-Z])/g,function(e){return"-"+e.toLowerCase()}):e.label||e.name}})}(),function(){"use strict";angular.module("app.core").filter("capitalize",function(){return function(e){return e?_.capitalize(e):""}})}(),function(){"use strict";angular.module("app.core").filter("filterByIds",function(){return function(e,n){if(0===e.length||!n)return e;if(0===n.length)return[];for(var t=[],a=0;a<e.length;a++){for(var i=e[a],s=!1,o=0;o<n.length;o++){var r=n[o];if(i.id===r){s=!0;break}}s&&t.push(i)}return t}})}(),function(){"use strict";angular.module("app.core").filter("filterByPropIds",function(){return function(e,n,t){if(0===e.length||!t||0===t.length)return e;for(var a=[],i=0;i<e.length;i++){for(var s=e[i],o=!1,r=0;r<t.length;r++){var l=t[r];if(-1<s[n].indexOf(l)){o=!0;break}}o&&a.push(s)}return a}})}(),function(){"use strict";angular.module("app.core").filter("getOptionByValue",function(){return function(e,n,t){if(void 0===e)return"";if(!n)return"";t||(t="option");var a=_.find(n,["value",e]);return a?a[t]:""}})}(),function(){"use strict";angular.module("app.core").filter("orderByDate",function(){return function(e){var n=[];return angular.forEach(e,function(e){n.push(e)}),n.sort(function(e,n){return e.hasOwnProperty("openedAt")&&n.hasOwnProperty("openedAt")?e.openedAt>n.openedAt?1:-1:1}),n}})}(),function(){"use strict";angular.module("app.core").filter("secToTime",function(){return function(e){e&&(e=e.toString().replace(",",""));var n=Math.floor(e/86400),t=e%86400,a=new Date(1e3*t).toISOString().substring(11,19);return a.replace(/^(\d+)/,function(e){return(""+(Number(e)+24*n)).padStart(2,"0")})}})}(),function(){"use strict";angular.module("app.core").filter("snakecase",function(){return function(e){return e?_.snakeCase(e):""}})}(),function(){"use strict";angular.module("app.core").filter("startcase",function(){return function(e){return e?_.startCase(e):""}})}(),function(){"use strict";angular.module("app.core").filter("filterByTags",function(){return function(e,t){if(0===e.length||0===t.length)return e;var a=[];return e.forEach(function(e){var n=t.every(function(n){var t=!1;return e.tags.forEach(function(e){e.name!==n.name||(t=!0)}),t});n&&a.push(e)}),a}}).filter("filterSingleByTags",function(){return function(e,n){if(0!==e.length&&0!==n.length){if(e.length<n.length)return[];var t=[],a=n.every(function(n){var t=!1;return e.forEach(function(e){e.name!==n.name||(t=!0)}),t});return a&&t.push(e),t}}})}(),function(){"use strict";angular.module("app.core").filter("toInteger",function(){return function(e){if(e&&"string"==typeof e)return parseInt(e)}})}(),function(){"use strict";function m(e,n,t,a){this.id=Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15),this.title=e,this.body=n,this.accept=t,this.reject=a,this.close=i}function u(){return/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor)}function i(){var t=this;navigator.serviceWorker.ready.then(function(e){e.getNotifications().then(function(e){var n=_.find(e,function(e){return e.data.id===t.id});n&&n.close()})})}angular.module("app.dashboards").provider("motNotification",function(){return{$get:[function(){var d,t,c=[];"serviceWorker"in navigator&&u()?navigator.serviceWorker.register("notification.js").then(function(e){(d=e).update(),d.installing?t=d.installing:d.waiting?t=d.waiting:d.active&&(t=d.active)}).catch(function(e){console.error("Service worker registration failed",e)}):console.error("Service Worker is not supported");return navigator.serviceWorker.addEventListener("message",function(e){if(e.source===t){var n=_.find(c,{id:e.data.id});if(n)switch(e.data.action){case"accept":n.accept&&n.accept();break;case"reject":n.reject&&n.reject()}}}),{create:function(e,i,s,o,r,l){return new Promise(function(t,n){var a;u()&&(window.document.hidden||window.document.mozHidden||window.document.webkitHidden)?(a=new m(e||"MyTitle",i||"MyBody",o,r),c.push(a),a?window.Notification.requestPermission().then(function(e){if("granted"===e)return d.showNotification(a.title,{body:a.body,requireInteraction:!0,icon:s||"assets/images/business/queueCampaigns.jpg",data:{id:a.id},actions:[{action:"accept",title:"Accept"},{action:"reject",title:"Reject"}]})}).then(function(e){if(l){for(var n=0;n<c.length;n++)c[n].close();t()}else t(a)}).catch(function(e){n(e)}):n(new Error("Notification creating error"))):t()})}}}]}})}(),function(){"use strict";function e(l,d,c){return{resolve:function(e,n){var t=e.split("@"),a=t[0],i=t[1],s=n||{};if(!a||!i)return d.error("apiResolver.resolve requires correct action parameter (ResourceName@methodName)"),!1;var o=l.defer(),r=function(e){for(var n=e.split("."),t=c,a=0;a<n.length;a++){if(angular.isUndefined(t[n[a]])){d.error('Resource part "'+n[a]+'" is not defined!'),t=!1;break}t=t[n[a]]}return t||!1}(a);r?r[i](s,function(e){o.resolve(e)},function(e){o.reject(e)}):(d.error('Resource "'+a+'" is not defined in the api service!'),o.reject('Resource "'+a+'" is not defined in the api service!'));return o.promise}}}e.$inject=["$q","$log","api"],angular.module("app.core").factory("apiResolver",e)}(),function(){"use strict";function e(e){return{showLoadingIndicator:function(){e.loadingProgress=!0},hideLoadingIndicator:function(){e.loadingProgress=!1}}}e.$inject=["$rootScope"],angular.module("app.core").factory("LoadingIndicatorService",e)}(),function(){"use strict";angular.module("app.core").provider("msApi",function(){var t=angular.injector(["ng"]).get("$log"),a="",v=[];function n(e){a=e}function i(){return a}function s(e,n){angular.isString(e)?angular.isArray(n)?v[e]={url:a+(n[0]||""),paramDefaults:n[1]||[],actions:n[2]||[],options:n[3]||{}}:t.error('"resource" must be an array and it must follow $resource definition'):t.error('"path" must be a string (eg. `dashboard.project`)')}this.setBaseUrl=n,this.getBaseUrl=i,this.getApiObject=function(){return v},this.register=s,this.$get=["$log","$q","$resource","$rootScope",function(m,u,p,g){var e={setBaseUrl:n,getBaseUrl:i,register:s,resolve:function(e,n){g.$broadcast("msApi::resolveStart");var t=e.split("@"),a=t[0],i=t[1],s=n||{};if(!a||!i)return m.error("msApi.resolve requires correct action parameter (resourceName@methodName)"),!1;var o=u.defer(),r=v[a];if(r){var l=p(r.url,r.paramDefaults,r.actions,r.options);l[i](s,function(e){o.resolve(e),g.$broadcast("msApi::resolveSuccess")},function(e){o.reject(e),g.$broadcast("msApi::resolveError")})}else m.error('Resource "'+a+'" is not defined in the api service!'),o.reject('Resource "'+a+'" is not defined in the api service!');return o.promise},request:function(e,n,t,a){g.$broadcast("msApi::requestStart");var i=e.split("@"),s=i[0],o=i[1],r=n||{};if(!s||!o)return m.error("msApi.resolve requires correct action parameter (resourceName@methodName)"),!1;var l=u.defer(),d=v[s];if(d){var c=p(d.url,d.paramDefaults,d.actions,d.options);c[o](r,function(e){g.$broadcast("msApi::requestSuccess"),l.resolve(e),angular.isDefined(t)&&angular.isFunction(t)&&t(e)},function(e){g.$broadcast("msApi::requestError"),l.reject(e),angular.isDefined(a)&&angular.isFunction(a)&&a(e)})}else m.error('Resource "'+s+'" is not defined in the api service!'),l.reject('Resource "'+s+'" is not defined in the api service!');return l.promise}};return e}]})}(),function(){"use strict";function e(l){var e=new MobileDetect(l.navigator.userAgent),d=null;return{exists:function(e,n){return-1<n.indexOf(e)},detectBrowser:function(){if(d)return d;var e=[{string:l.navigator.userAgent,subString:"Edge",versionSearch:"Edge",identity:"Edge"},{string:l.navigator.userAgent,subString:"Chrome",identity:"Chrome"},{string:l.navigator.userAgent,subString:"OmniWeb",versionSearch:"OmniWeb/",identity:"OmniWeb"},{string:l.navigator.vendor,subString:"Apple",versionSearch:"Version",identity:"Safari"},{prop:l.opera,identity:"Opera"},{string:l.navigator.vendor,subString:"iCab",identity:"iCab"},{string:l.navigator.vendor,subString:"KDE",identity:"Konqueror"},{string:l.navigator.userAgent,subString:"Firefox",identity:"Firefox"},{string:l.navigator.vendor,subString:"Camino",identity:"Camino"},{string:l.navigator.userAgent,subString:"Netscape",identity:"Netscape"},{string:l.navigator.userAgent,subString:"MSIE",identity:"Explorer",versionSearch:"MSIE"},{string:l.navigator.userAgent,subString:"Trident/7",identity:"Explorer",versionSearch:"rv"},{string:l.navigator.userAgent,subString:"Gecko",identity:"Mozilla",versionSearch:"rv"},{string:l.navigator.userAgent,subString:"Mozilla",identity:"Netscape",versionSearch:"Mozilla"}],n=[{string:l.navigator.platform,subString:"Win",identity:"Windows"},{string:l.navigator.platform,subString:"Mac",identity:"Mac"},{string:l.navigator.platform,subString:"Linux",identity:"Linux"},{string:l.navigator.platform,subString:"iPhone",identity:"iPhone"},{string:l.navigator.platform,subString:"iPod",identity:"iPod"},{string:l.navigator.platform,subString:"iPad",identity:"iPad"},{string:l.navigator.platform,subString:"Android",identity:"Android"}],i="";function t(e){for(var n=0;n<e.length;n++){var t=e[n].string,a=e[n].prop;if(i=e[n].versionSearch||e[n].identity,t){if(-1!==t.indexOf(e[n].subString))return e[n].identity}else if(a)return e[n].identity}}function a(e){var n=e.indexOf(i);if(-1!==n)return parseInt(e.substring(n+i.length+1))}var s=t(e)||"unknown-browser",o=a(l.navigator.userAgent)||a(l.navigator.appVersion)||"unknown-version",r=t(n)||"unknown-os";return s=s.toLowerCase(),o=s+"-"+o,r=r.toLowerCase(),d={browser:s,version:o,os:r}},guidGenerator:function(){var e=function(){return(65536*(1+Math.random())||0).toString(16).substring(1)};return e()+e()+e()+e()+e()+e()},isMobile:function(){return e.mobile()},toggleInArray:function(e,n){-1===n.indexOf(e)?n.push(e):n.splice(n.indexOf(e),1)},firstLastDayMonth:function(){return{$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()}}}}e.$inject=["$window"],angular.module("app.core").factory("msUtils",e)}(),function(){"use strict";function e(e,n){var t=this;t.themes=n.themes,t.layoutModes=[{label:"Boxed",value:"boxed"},{label:"Wide",value:"wide"}],t.layoutStyles=[{label:"Vertical Navigation",value:"verticalNavigation",figure:"/assets/images/theme-options/vertical-nav.jpg"},{label:"Vertical Navigation with Fullwidth Toolbar",value:"verticalNavigationFullwidthToolbar",figure:"/assets/images/theme-options/vertical-nav-with-full-toolbar.jpg"},{label:"Vertical Navigation with Fullwidth Toolbar 2",value:"verticalNavigationFullwidthToolbar2",figure:"/assets/images/theme-options/vertical-nav-with-full-toolbar-2.jpg"},{label:"Horizontal Navigation",value:"horizontalNavigation",figure:"/assets/images/theme-options/horizontal-nav.jpg"},{label:"Content with Toolbar",value:"contentWithToolbar",figure:"/assets/images/theme-options/content-with-toolbar.jpg"},{label:"Content Only",value:"contentOnly",figure:"/assets/images/theme-options/content-only.jpg"}],t.layoutMode="wide",t.layoutStyle=e.get("motion.layoutStyle")||"verticalNavigation",t.setActiveTheme=function(e){n.setActiveTheme(e)},t.getActiveTheme=function(){return n.themes.active},t.updateLayoutMode=function(){angular.element("body").toggleClass("boxed","boxed"===t.layoutMode)},t.updateLayoutStyle=function(){e.put("motion.layoutStyle",t.layoutStyle),location.reload()}}function n(n){return{restrict:"E",scope:{},controller:"MsThemeOptionsController as vm",templateUrl:"app/core/theme-options/theme-options.html",compile:function(e){return e.addClass("ms-theme-options"),function(e){e.toggleOptionsSidenav=function(){n("motion-theme-options").toggle()}}}}}e.$inject=["$cookies","motionTheming"],n.$inject=["$mdSidenav"],angular.module("app.core").controller("MsThemeOptionsController",e).directive("msThemeOptions",n)}(),function(){"use strict";function e(i,a,s){var o={};return{generate:function(){var e=angular.copy(s.getRegisteredThemes()),a=angular.copy(s.getRegisteredPalettes());angular.forEach(e,function(t){o[t.name]={},angular.forEach(t.colors,function(e,n){o[t.name][n]={name:e.name,levels:{default:{color:l(a[e.name][e.hues.default].value),contrast1:l(a[e.name][e.hues.default].contrast,1),contrast2:l(a[e.name][e.hues.default].contrast,2),contrast3:l(a[e.name][e.hues.default].contrast,3),contrast4:l(a[e.name][e.hues.default].contrast,4)},hue1:{color:l(a[e.name][e.hues["hue-1"]].value),contrast1:l(a[e.name][e.hues["hue-1"]].contrast,1),contrast2:l(a[e.name][e.hues["hue-1"]].contrast,2),contrast3:l(a[e.name][e.hues["hue-1"]].contrast,3),contrast4:l(a[e.name][e.hues["hue-1"]].contrast,4)},hue2:{color:l(a[e.name][e.hues["hue-2"]].value),contrast1:l(a[e.name][e.hues["hue-2"]].contrast,1),contrast2:l(a[e.name][e.hues["hue-2"]].contrast,2),contrast3:l(a[e.name][e.hues["hue-2"]].contrast,3),contrast4:l(a[e.name][e.hues["hue-2"]].contrast,4)},hue3:{color:l(a[e.name][e.hues["hue-3"]].value),contrast1:l(a[e.name][e.hues["hue-3"]].contrast,1),contrast2:l(a[e.name][e.hues["hue-3"]].contrast,2),contrast3:l(a[e.name][e.hues["hue-3"]].contrast,3),contrast4:l(a[e.name][e.hues["hue-3"]].contrast,4)}}}})}),function(e){var n=angular.copy(e);angular.forEach(n,function(t){angular.forEach(t,function(e,n){t[n]=e.levels,t[n].color=e.levels.default.color,t[n].contrast1=e.levels.default.contrast1,t[n].contrast2=e.levels.default.contrast2,t[n].contrast3=e.levels.default.contrast3,t[n].contrast4=e.levels.default.contrast4,delete t[n].default})}),s.setThemesList(n);var t=i.get("motion.selectedTheme");t?s.setActiveTheme(t):s.setActiveTheme("default")}(o);var r={};angular.forEach(o,function(e,n){var t,a,i,s,o;(r={})["@themeName"]=n,angular.forEach(e,function(e,a){angular.forEach(e.levels,function(e,t){angular.forEach(e,function(e,n){r["@"+a+d(t)+d(n)]=e})})}),t=r,a=new RegExp(Object.keys(t).join("|"),"gi"),i='/* Content hack because they wont fix */\n/* https://github.com/angular/material/pull/8067 */\n[md-theme="@themeName"] md-content.md-hue-1,\nmd-content.md-@themeName-theme.md-hue-1 {\n color: @backgroundHue1Contrast1;\n background-color: @backgroundHue1Color;\n}\n\n[md-theme="@themeName"] md-content.md-hue-2,\nmd-content.md-@themeName-theme.md-hue-2 {\n color: @backgroundHue2Contrast1;\n background-color: @backgroundHue2Color;\n}\n\n[md-theme="@themeName"] md-content.md-hue-3,\n md-content.md-@themeName-theme.md-hue-3 {\n color: @backgroundHue3Contrast1;\n background-color: @backgroundHue3Color;\n}\n\n/* Text Colors */\n[md-theme="@themeName"] a {\n color: @accentDefaultColor;\n}\n\n[md-theme="@themeName"] .secondary-text,\n[md-theme="@themeName"] .icon {\n color: @backgroundDefaultContrast2;\n}\n\n[md-theme="@themeName"] .hint-text,\n[md-theme="@themeName"] .disabled-text {\n color: @backgroundDefaultContrast3;\n}\n\n[md-theme="@themeName"] .fade-text,\n[md-theme="@themeName"] .divider {\n color: @backgroundDefaultContrast4;\n}\n\n/* Primary */\n[md-theme="@themeName"] .md-primary-bg {\n background-color: @primaryDefaultColor;\n color: @primaryDefaultContrast1;\n}\n\n[md-theme="@themeName"] .md-primary-bg .secondary-text,\n[md-theme="@themeName"] .md-primary-bg .icon {\n color: @primaryDefaultContrast2;\n}\n\n[md-theme="@themeName"] .md-primary-bg .hint-text,\n[md-theme="@themeName"] .md-primary-bg .disabled-text {\n color: @primaryDefaultContrast3;\n}\n\n[md-theme="@themeName"] .md-primary-bg .fade-text,\n[md-theme="@themeName"] .md-primary-bg .divider {\n color: @primaryDefaultContrast4;\n}\n\n/* Primary, Hue-1 */\n[md-theme="@themeName"] .md-primary-bg.md-hue-1 {\n background-color: @primaryHue1Color;\n color: @primaryHue1Contrast1;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-1 .secondary-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-1 .icon {\n color: @primaryHue1Contrast2;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-1 .hint-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-1 .disabled-text {\n color: @primaryHue1Contrast3;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-1 .fade-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-1 .divider {\n color: @primaryHue1Contrast4;\n}\n\n/* Primary, Hue-2 */\n[md-theme="@themeName"] .md-primary-bg.md-hue-2 {\n background-color: @primaryHue2Color;\n color: @primaryHue2Contrast1;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-2 .secondary-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-2 .icon {\n color: @primaryHue2Contrast2;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-2 .hint-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-2 .disabled-text {\n color: @primaryHue2Contrast3;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-2 .fade-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-2 .divider {\n color: @primaryHue2Contrast4;\n}\n\n/* Primary, Hue-3 */\n[md-theme="@themeName"] .md-primary-bg.md-hue-3 {\n background-color: @primaryHue3Color;\n color: @primaryHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-3 .secondary-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-3 .icon {\n color: @primaryHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-3 .hint-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-3 .disabled-text {\n color: @primaryHue3Contrast3;\n}\n\n[md-theme="@themeName"] .md-primary-bg.md-hue-3 .fade-text,\n[md-theme="@themeName"] .md-primary-bg.md-hue-3 .divider {\n color: @primaryHue3Contrast4;\n}\n\n/* Primary foreground */\n[md-theme="@themeName"] .md-primary-fg {\n color: @primaryDefaultColor !important;\n}\n\n/* Primary foreground, Hue-1 */\n[md-theme="@themeName"] .md-primary-fg.md-hue-1 {\n color: @primaryHue1Color !important;\n}\n\n/* Primary foreground, Hue-2 */\n[md-theme="@themeName"] .md-primary-fg.md-hue-2 {\n color: @primaryHue2Color !important;\n}\n\n/* Primary foreground, Hue-3 */\n[md-theme="@themeName"] .md-primary-fg.md-hue-3 {\n color: @primaryHue3Color !important;\n}\n\n/* Accent */\n[md-theme="@themeName"] .md-accent-bg {\n background-color: @accentDefaultColor;\n color: @accentDefaultContrast1;\n}\n\n[md-theme="@themeName"] .md-accent-bg .secondary-text,\n[md-theme="@themeName"] .md-accent-bg .icon {\n color: @accentDefaultContrast2;\n}\n\n[md-theme="@themeName"] .md-accent-bg .hint-text,\n[md-theme="@themeName"] .md-accent-bg .disabled-text {\n color: @accentDefaultContrast3;\n}\n\n[md-theme="@themeName"] .md-accent-bg .fade-text,\n[md-theme="@themeName"] .md-accent-bg .divider {\n color: @accentDefaultContrast4;\n}\n\n/* Accent, Hue-1 */\n[md-theme="@themeName"] .md-accent-bg.md-hue-1 {\n background-color: @accentHue1Color;\n color: @accentHue1Contrast1;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-1 .secondary-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-1 .icon {\n color: @accentHue1Contrast2;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-1 .hint-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-1 .disabled-text {\n color: @accentHue1Contrast3;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-1 .fade-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-1 .divider {\n color: @accentHue1Contrast4;\n}\n\n/* Accent, Hue-2 */\n[md-theme="@themeName"] .md-accent-bg.md-hue-2 {\n background-color: @accentHue2Color;\n color: @accentHue2Contrast1;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-2 .secondary-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-2 .icon {\n color: @accentHue2Contrast2;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-2 .hint-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-2 .disabled-text {\n color: @accentHue2Contrast3;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-2 .fade-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-2 .divider {\n color: @accentHue2Contrast4;\n}\n\n/* Accent, Hue-3 */\n[md-theme="@themeName"] .md-accent-bg.md-hue-3 {\n background-color: @accentHue3Color;\n color: @accentHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-3 .secondary-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-3 .icon {\n color: @accentHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-3 .hint-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-3 .disabled-text {\n color: @accentHue3Contrast3;\n}\n\n[md-theme="@themeName"] .md-accent-bg.md-hue-3 .fade-text,\n[md-theme="@themeName"] .md-accent-bg.md-hue-3 .divider {\n color: @accentHue3Contrast4;\n}\n\n/* Accent foreground */\n[md-theme="@themeName"] .md-accent-fg {\n color: @accentDefaultColor !important;\n}\n\n/* Accent foreground, Hue-1 */\n[md-theme="@themeName"] .md-accent-fg.md-hue-1 {\n color: @accentHue1Color !important;\n}\n\n/* Accent foreground, Hue-2 */\n[md-theme="@themeName"] .md-accent-fg.md-hue-2 {\n color: @accentHue2Color !important;\n}\n\n/* Accent foreground, Hue-3 */\n[md-theme="@themeName"] .md-accent-fg.md-hue-3 {\n color: @accentHue3Color !important;\n}\n\n/* Warn */\n[md-theme="@themeName"] .md-warn-bg {\n background-color: @warnDefaultColor;\n color: @warnDefaultContrast1;\n}\n\n[md-theme="@themeName"] .md-warn-bg .secondary-text,\n[md-theme="@themeName"] .md-warn-bg .icon {\n color: @warnDefaultContrast2;\n}\n\n[md-theme="@themeName"] .md-warn-bg .hint-text,\n[md-theme="@themeName"] .md-warn-bg .disabled-text {\n color: @warnDefaultContrast3;\n}\n\n[md-theme="@themeName"] .md-warn-bg .fade-text,\n[md-theme="@themeName"] .md-warn-bg .divider {\n color: @warnDefaultContrast4;\n}\n\n/* Warn, Hue-1 */\n[md-theme="@themeName"] .md-warn-bg.md-hue-1 {\n background-color: @warnHue1Color;\n color: @warnHue1Contrast1;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-1 .secondary-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-1 .icon {\n color: @warnHue1Contrast2;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-1 .hint-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-1 .disabled-text {\n color: @warnHue1Contrast3;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-1 .fade-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-1 .divider {\n color: @warnHue1Contrast4;\n}\n\n/* Warn, Hue-2 */\n[md-theme="@themeName"] .md-warn-bg.md-hue-2 {\n background-color: @warnHue2Color;\n color: @warnHue2Contrast1;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-2 .secondary-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-2 .icon {\n color: @warnHue2Contrast2;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-2 .hint-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-2 .disabled-text {\n color: @warnHue2Contrast3;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-2 .fade-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-2 .divider {\n color: @warnHue2Contrast4;\n}\n\n/* Warn, Hue-3 */\n[md-theme="@themeName"] .md-warn-bg.md-hue-3 {\n background-color: @warnHue3Color;\n color: @warnHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-3 .secondary-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-3 .icon {\n color: @warnHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-3 .hint-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-3 .disabled-text {\n color: @warnHue3Contrast3;\n}\n\n[md-theme="@themeName"] .md-warn-bg.md-hue-3 .fade-text,\n[md-theme="@themeName"] .md-warn-bg.md-hue-3 .divider {\n color: @warnHue3Contrast4;\n}\n\n/* Warn foreground */\n[md-theme="@themeName"] .md-warn-fg {\n color: @warnDefaultColor !important;\n}\n\n/* Warn foreground, Hue-1 */\n[md-theme="@themeName"] .md-warn-fg.md-hue-1 {\n color: @warnHue1Color !important;\n}\n\n/* Warn foreground, Hue-2 */\n[md-theme="@themeName"] .md-warn-fg.md-hue-2 {\n color: @warnHue2Color !important;\n}\n\n/* Warn foreground, Hue-3 */\n[md-theme="@themeName"] .md-warn-fg.md-hue-3 {\n color: @warnHue3Color !important;\n}\n\n/* Background */\n[md-theme="@themeName"] .md-background-bg {\n background-color: @backgroundDefaultColor;\n color: @backgroundDefaultContrast1;\n}\n\n[md-theme="@themeName"] .md-background-bg .secondary-text,\n[md-theme="@themeName"] .md-background-bg .icon {\n color: @backgroundDefaultContrast2;\n}\n\n[md-theme="@themeName"] .md-background-bg .hint-text,\n[md-theme="@themeName"] .md-background-bg .disabled-text {\n color: @backgroundDefaultContrast3;\n}\n\n[md-theme="@themeName"] .md-background-bg .fade-text,\n[md-theme="@themeName"] .md-background-bg .divider {\n color: @backgroundDefaultContrast4;\n}\n\n/* Background, Hue-1 */\n[md-theme="@themeName"] .md-background-bg.md-hue-1 {\n background-color: @backgroundHue1Color;\n color: @backgroundHue1Contrast1;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-1 .secondary-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-1 .icon {\n color: @backgroundHue1Contrast2;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-1 .hint-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-1 .disabled-text {\n color: @backgroundHue1Contrast3;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-1 .fade-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-1 .divider {\n color: @backgroundHue1Contrast4;\n}\n\n/* Background, Hue-2 */\n[md-theme="@themeName"] .md-background-bg.md-hue-2 {\n background-color: @backgroundHue2Color;\n color: @backgroundHue2Contrast1;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-2 .secondary-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-2 .icon {\n color: @backgroundHue2Contrast2;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-2 .hint-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-2 .disabled-text {\n color: @backgroundHue2Contrast3;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-2 .fade-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-2 .divider {\n color: @backgroundHue2Contrast4;\n}\n\n/* Background, Hue-3 */\n[md-theme="@themeName"] .md-background-bg.md-hue-3 {\n background-color: @backgroundHue3Color;\n color: @backgroundHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-3 .secondary-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-3 .icon {\n color: @backgroundHue3Contrast1;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-3 .hint-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-3 .disabled-text {\n color: @backgroundHue3Contrast3;\n}\n\n[md-theme="@themeName"] .md-background-bg.md-hue-3 .fade-text,\n[md-theme="@themeName"] .md-background-bg.md-hue-3 .divider {\n color: @backgroundHue3Contrast4;\n}\n\n/* Background foreground */\n[md-theme="@themeName"] .md-background-fg {\n color: @backgroundDefaultColor !important;\n}\n\n/* Background foreground, Hue-1 */\n[md-theme="@themeName"] .md-background-fg.md-hue-1 {\n color: @backgroundHue1Color !important;\n}\n\n/* Background foreground, Hue-2 */\n[md-theme="@themeName"] .md-background-fg.md-hue-2 {\n color: @backgroundHue2Color !important;\n}\n\n/* Background foreground, Hue-3 */\n[md-theme="@themeName"] .md-background-fg.md-hue-3 {\n color: @backgroundHue3Color !important;\n}'.replace(a,function(e){return t[e]}),s=angular.element("head"),(o=angular.element('<style type="text/css"></style>')).html(i),s.append(o)})},rgba:l};function l(e,n){var t=n||!1;return 4===e.length&&255===e[0]&&255===e[1]&&255===e[2]&&e.splice(3,4),t&&(e=function(e,n){var t={white:{1:"1",2:"0.7",3:"0.3",4:"0.12"},black:{1:"0.87",2:"0.54",3:"0.26",4:"0.12"}};255===e[0]&&255===e[1]&&255===e[2]?e[3]=t.white[n]:0===e[0]&&0===e[1]&&0===e[2]&&(e[3]=t.black[n]);return e}(e,t)),3===e.length?"rgb("+e.join(",")+")":4===e.length?"rgba("+e.join(",")+")":void a.error("Invalid number of arguments supplied in the color array: "+e.length+"\nThe array must have 3 or 4 colors.")}function d(e){return e.charAt(0).toUpperCase()+e.slice(1)}}e.$inject=["$cookies","$log","motionTheming"],angular.module("app.core").factory("motionGenerator",e)}(),function(){"use strict";angular.module("app.core").constant("motionPalettes",[{name:"motion-blue",options:{50:"#ebf1fa",100:"#c2d4ef",200:"#9ab8e5",300:"#78a0dc",400:"#5688d3",500:"#3470ca",600:"#2e62b1",700:"#275498",800:"#21467e",900:"#1a3865",A100:"#c2d4ef",A200:"#9ab8e5",A400:"#5688d3",A700:"#275498",contrastDefaultColor:"light",contrastDarkColors:"50 100 200 A100",contrastStrongLightColors:"300 400"}},{name:"motion-paleblue",options:{50:"#ececee",100:"#c5c6cb",200:"#9ea1a9",300:"#7d818c",400:"#5c616f",500:"#3c4252",600:"#353a48",700:"#2d323e",800:"#262933",900:"#1e2129",A100:"#c5c6cb",A200:"#9ea1a9",A400:"#5c616f",A700:"#2d323e",contrastDefaultColor:"light",contrastDarkColors:"50 100 200 A100",contrastStrongLightColors:"300 400"}}])}(),function(){"use strict";angular.module("app.core").constant("motionThemes",{default:{primary:{name:"motion-paleblue",hues:{default:"700","hue-1":"500","hue-2":"600","hue-3":"400"}},accent:{name:"light-blue",hues:{default:"600","hue-1":"400","hue-2":"700","hue-3":"A100"}},warn:{name:"red"},background:{name:"grey",hues:{default:"A100","hue-1":"A100","hue-2":"100","hue-3":"300"}}},pinkTheme:{primary:{name:"blue-grey",hues:{default:"800","hue-1":"600","hue-2":"400","hue-3":"A100"}},accent:{name:"pink",hues:{default:"400","hue-1":"300","hue-2":"600","hue-3":"A100"}},warn:{name:"blue"},background:{name:"grey",hues:{default:"A100","hue-1":"A100","hue-2":"100","hue-3":"300"}}},tealTheme:{primary:{name:"motion-blue",hues:{default:"900","hue-1":"600","hue-2":"500","hue-3":"A100"}},accent:{name:"teal",hues:{default:"500","hue-1":"400","hue-2":"600","hue-3":"A100"}},warn:{name:"deep-orange"},background:{name:"grey",hues:{default:"A100","hue-1":"A100","hue-2":"100","hue-3":"300"}}}})}(),function(){"use strict";function e(t,e,n){var a;angular.injector(["ngCookies"]).invoke(["$cookies",function(e){a=e}]);var i=a.getObject("motion.customTheme");i&&(n.custom=i),t.alwaysWatchTheme(!0),angular.forEach(e,function(e){t.definePalette(e.name,e.options)}),angular.forEach(n,function(e,n){t.theme(n).primaryPalette(e.primary.name,e.primary.hues).accentPalette(e.accent.name,e.accent.hues).warnPalette(e.warn.name,e.warn.hues).backgroundPalette(e.background.name,e.background.hues)})}e.$inject=["$mdThemingProvider","motionPalettes","motionThemes"],angular.module("app.core").config(e)}(),function(){"use strict";function e(n,t,e){var a={getRegisteredPalettes:function(){return e.PALETTES},getRegisteredThemes:function(){return e.THEMES},setActiveTheme:function(e){if(angular.isUndefined(a.themes.list[e]))return angular.isUndefined(a.themes.list.default)?void t.error('You must have at least one theme named "default"'):(t.warn('The theme "'+e+'" does not exist! Falling back to the "default" theme.'),a.themes.active.name="default",a.themes.active.theme=a.themes.list.default,void n.put("motion.selectedTheme",a.themes.active.name));a.themes.active.name=e,a.themes.active.theme=a.themes.list[e],n.put("motion.selectedTheme",e)},setThemesList:function(e){a.themes.list=e},themes:{list:{},active:{name:"",theme:{}}}};return a}e.$inject=["$cookies","$log","$mdTheming"],angular.module("app.core").service("motionTheming",e)}(),function(){"use strict";function e(n,s,o,r){this.search=function(n){for(var e=[],t=r.getFlatNavigation(),a=o.defer(),i=0;i<t.length;i+=1)t[i].uisref&&e.push(t[i]);n&&(e=e.filter(function(e){if(-1<angular.lowercase(e.title).search(angular.lowercase(n)))return!0}));return s(function(){a.resolve(e)},1e3),a.promise},this.searchResultClick=function(e){e.uisref&&(e.stateParams?n.go(e.state,e.stateParams):n.go(e.state))}}e.$inject=["$state","$timeout","$q","msNavigationService"],angular.module("app.errors.error-404").controller("Error404Controller",e)}(),function(){"use strict";function e(e,n){var t=this;t.code="",t.send=!1,t.error=e.params,t.sendReport=function(){n.post("/api/jira",t.error).then(function(e){t.send=!0,e.data&&(t.code=e.data.id)},function(e){t.send=!1})}}e.$inject=["$state","$http"],angular.module("app.errors.error-500").controller("Error500Controller",e)}(),function(){"use strict";function e(e,n){var t=this;t.currentUser=e.getCurrentUser(),t.cookieAlertHide=n.get("motion.cookieAlertHide:"+t.currentUser.id)||!1,t.cookieAlertOnClose=function(){n.put("motion.cookieAlertHide:"+t.currentUser.id,!0)}}e.$inject=["Auth","$cookies"],angular.module("app.footer").controller("FooterController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;s.form={},s.forgotPassword=function(){return i.auth.forgot(s.form).$promise.then(function(){n.success({title:t.instant("FORGOTPASSWORD.LINK_SENT"),msg:t.instant("FORGOTPASSWORD.LINNK_SENT_MESSAGE")})}).catch(function(e){e&&n.error({title:t.instant("FORGOTPASSWORD.PASSWORD_RESET_ERROR"),msg:e.data?e.data.message||e.message||e:e.message||e})})},s.onInit=function(){e.isLoggedIn()&&a.go("app.dashboards.general")}}e.$inject=["Auth","toasty","$translate","$state","api"],angular.module("app.forgot").controller("ForgotPasswordController",e)}(),function(){"use strict";function e(e,n){var t=this;t.currentUser=e.getCurrentUser(),t.newsAlertHide=n.get("motion.newsAlertHide:"+t.currentUser.id)||!1,t.newsAlertOnClose=function(){n.put("motion.newsAlertHide:"+t.currentUser.id,!0)}}e.$inject=["Auth","$cookies"],angular.module("app.header").controller("HeaderController",e)}(),function(){"use strict";function e(e,o){var r={getResourcesByRole:function(e,n,t,a,i,s){return o.getResources(r,e,n,t,a,i,s)}};return r.baseUrl="api/",r.auth=e(r.baseUrl+"auth/local",{},{local:{method:"post",url:r.baseUrl+"auth/local"},forgot:{method:"post",url:r.baseUrl+"auth/local/forgot"},reset:{method:"post",url:r.baseUrl+"auth/local/reset/:token",params:{token:"@token"}},user:{method:"get",url:r.baseUrl+"auth/local/user/:token",params:{token:"@token"}},google:{method:"post",url:r.baseUrl+"auth/google"}}),r.jira=e(r.baseUrl+"jira"),r.rpc=e(r.baseUrl+"rpc",{},{startMonitor:{method:"get",url:r.baseUrl+"rpc/voice/channels/:uniqueid/mixmonitor",params:{uniqueid:"@uniqueid"}},stopMonitor:{method:"get",url:r.baseUrl+"rpc/voice/channels/:uniqueid/stopmixmonitor",params:{uniqueid:"@uniqueid"}},getVoiceChannels:{method:"get",url:r.baseUrl+"rpc/voice/channels"},getVoiceQueues:{method:"get",url:r.baseUrl+"rpc/voice/queues"},getChatQueues:{method:"get",url:r.baseUrl+"rpc/chat/queues"},getMailQueues:{method:"get",url:r.baseUrl+"rpc/mail/queues"},getSmsQueues:{method:"get",url:r.baseUrl+"rpc/sms/queues"},getWhatsappQueues:{method:"get",url:r.baseUrl+"rpc/whatsapp/queues"},getOpenchannelQueues:{method:"get",url:r.baseUrl+"rpc/openchannel/queues"},getFaxQueues:{method:"get",url:r.baseUrl+"rpc/fax/queues"},getVoiceQueuesPreview:{method:"get",url:r.baseUrl+"rpc/voice/queues/preview/:id"},getVoiceQueuesChannels:{method:"get",url:r.baseUrl+"rpc/voice/queues/channels"},getVoiceQueuesChannel:{method:"get",url:r.baseUrl+"rpc/voice/queues/channels/:uniqueid"},getVoiceQueuesChannelHangup:{method:"get",url:r.baseUrl+"rpc/voice/queues/channels/:uniqueid/hangup"},getVoiceQueuesChannelRedirect:{method:"get",url:r.baseUrl+"rpc/voice/queues/channels/:uniqueid/redirect/:exten"},getOutbound:{method:"get",url:r.baseUrl+"rpc/outbound"},getOutboundChannels:{method:"get",url:r.baseUrl+"rpc/outbound/channels"},getAgents:{method:"get",url:r.baseUrl+"rpc/agents"},setAgentCapacity:{method:"put",url:r.baseUrl+"rpc/agents/:id/capacity",params:{id:"@id"}},getTelephones:{method:"get",url:r.baseUrl+"rpc/telephones"},getTrunks:{method:"get",url:r.baseUrl+"rpc/trunks"},getCampaigns:{method:"get",url:r.baseUrl+"rpc/campaigns"},getMailAccounts:{method:"get",url:r.baseUrl+"rpc/mail/accounts"},getFaxAccounts:{method:"get",url:r.baseUrl+"rpc/fax/accounts"},getChatQueuesWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/chat/queues/waitinginteractions"},getMailQueuesWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/mail/queues/waitinginteractions"},getOpenchannelQueuesWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/openchannel/queues/waitinginteractions"},getOpenchannelQueuesIdWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/openchannel/queues/:id/waitinginteractions"},getSmsQueuesWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/sms/queues/waitinginteractions"},getFaxQueuesWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/fax/queues/waitinginteractions"},getWhatsappQueuesWaitingInteractions:{method:"get",url:r.baseUrl+"rpc/whatsapp/queues/waitinginteractions"},mailQueueNotify:{method:"post",url:r.baseUrl+"rpc/mail/queues/:id/notify",params:{id:"@id"}},chatQueueNotify:{method:"post",url:r.baseUrl+"rpc/chat/queues/:id/notify",params:{id:"@id"}},faxQueueNotify:{method:"post",url:r.baseUrl+"rpc/fax/queues/:id/notify",params:{id:"@id"}},smsQueueNotify:{method:"post",url:r.baseUrl+"rpc/sms/queues/:id/notify",params:{id:"@id"}},openchannelQueueNotify:{method:"post",url:r.baseUrl+"rpc/openchannel/queues/:id/notify",params:{id:"@id"}},agentNotify:{method:"post",url:r.baseUrl+"rpc/agents/:id/notify",params:{id:"@id"}}}),r.version=e(r.baseUrl+"version",{},{fetch:{method:"get",url:r.baseUrl+"version/fetch"},reset:{method:"get",url:r.baseUrl+"version/reset"},pull:{method:"get",url:r.baseUrl+"version/pull"},restart:{method:"get",url:r.baseUrl+"version/restart"},migrations:{method:"get",url:r.baseUrl+"version/migrations"}}),r.system=e(r.baseUrl+"system",{},{killProcess:{method:"get",url:r.baseUrl+"system/process/:pid/kill",params:{pid:"@pid"}}}),r.pm2=e(r.baseUrl+"pm2/:id",{id:"@id"},{update:{method:"put",isArray:!0}}),r.user=e(r.baseUrl+"users/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"users/describe"},clone:{method:"post",url:r.baseUrl+"users/:id/clone",params:{includeAll:"@includeAll"}},addContacts:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/contacts"},bulkCreate:{isArray:!1,method:"post",url:r.baseUrl+"users/create_many"},changePassword:{isArray:!1,method:"put",url:r.baseUrl+"users/:id/password"},addQueues:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/queues"},removeQueues:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/queues"},addAvatar:{isArray:!1,method:"post",url:r.baseUrl+"users/:id/avatar"},getAvatar:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/avatar"},getOpenTabs:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/open_tabs"},getContacts:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/contacts"},getQueues:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/queues"},getVoiceQueuesRt:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/queues_rt"},getGroups:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/groups"},getRecordings:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/recordings"},getScreenRecordings:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/screen_recordings"},getChatInteractions:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/chat/interactions"},getOpenchannelInteractions:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/openchannel/interactions"},getMailInteractions:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/mail/interactions"},getSmsInteractions:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/sms/interactions"},getFaxInteractions:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/fax/interactions"},getWhatsappInteractions:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/whatsapp/interactions"},login:{isArray:!1,method:"post",url:r.baseUrl+"users/:id/login"},logout:{isArray:!1,method:"post",url:r.baseUrl+"users/:id/logout"},pause:{isArray:!1,method:"post",url:r.baseUrl+"users/:id/pause"},unpause:{isArray:!1,method:"post",url:r.baseUrl+"users/:id/unpause"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/teams"},getLists:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/lists"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/agents"},addChatInteractions:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/chat_interactions"},removeChatInteractions:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/chat_interactions"},addMailInteractions:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/mail_interactions"},removeMailInteractions:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/mail_interactions"},addFaxInteractions:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/fax_interactions"},removeFaxInteractions:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/fax_interactions"},addSmsInteractions:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/sms_interactions"},removeSmsInteractions:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/sms_interactions"},addOpenchannelInteractions:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/openchannel_interactions"},removeOpenchannelInteractions:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/openchannel_interactions"},addWhatsappInteractions:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/whatsapp_interactions"},removeWhatsappInteractions:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/whatsapp_interactions"},getVoicePrefixes:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/prefixes"},getFaxAccounts:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/fax_accounts"},addFaxAccounts:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/fax_accounts"},removeFaxAccounts:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/fax_accounts"},getMailAccounts:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/mail_accounts"},addMailAccounts:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/mail_accounts"},removeMailAccounts:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/mail_accounts"},getOpenchannelAccounts:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/openchannel_accounts"},addOpenchannelAccounts:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/openchannel_accounts"},removeOpenchannelAccounts:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/openchannel_accounts"},getSmsAccounts:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/sms_accounts"},addSmsAccounts:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/sms_accounts"},removeSmsAccounts:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/sms_accounts"},getChatWebsites:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/chat_websites"},addChatWebsites:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/chat_websites"},removeChatWebsites:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/chat_websites"},getWhatsappAccounts:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/whatsapp_accounts"},addWhatsappAccounts:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/whatsapp_accounts"},removeWhatsappAccounts:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/whatsapp_accounts"},getSquareProjects:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/square_projects"},addSquareProjects:{isArray:!0,method:"post",url:r.baseUrl+"users/:id/square_projects"},removeSquareProjects:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/square_projects"},getScheduledCalls:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/scheduled_calls"},getApiKey:{isArray:!1,method:"get",url:r.baseUrl+"users/:id/api_key"},createApiKey:{isArray:!1,method:"post",url:r.baseUrl+"users/:id/api_key"},removeApiKey:{isArray:!1,method:"delete",url:r.baseUrl+"users/:id/api_key"},whoami:{isArray:!1,method:"get",url:r.baseUrl+"users/whoami"},getPresence:{isArray:!1,method:"get",url:r.baseUrl+"users/presence"}}),r.voiceChanSpy=e(r.baseUrl+"voice/chanspy/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/chanspy/describe"},clone:{method:"post",url:r.baseUrl+"voice/chanspy/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceContext=e(r.baseUrl+"voice/contexts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/contexts/describe"},clone:{method:"post",url:r.baseUrl+"voice/contexts/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceExtension=e(r.baseUrl+"voice/extensions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/extensions/describe"},clone:{method:"post",url:r.baseUrl+"voice/extensions/:id/clone",params:{includeAll:"@includeAll"}},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"voice/extensions/:id/applications"}}),r.voiceMusicOnHold=e(r.baseUrl+"voice/mohs/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/mohs/describe"},clone:{method:"post",url:r.baseUrl+"voice/mohs/:id/clone",params:{includeAll:"@includeAll"}},addSound:{isArray:!1,method:"post",url:r.baseUrl+"voice/mohs/:id/sounds"},removeSound:{isArray:!1,method:"delete",url:r.baseUrl+"voice/mohs/:id/sounds/:id2"},getSounds:{isArray:!1,method:"get",url:r.baseUrl+"voice/mohs/:id/sounds"}}),r.voiceQueue=e(r.baseUrl+"voice/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/queues/describe"},clone:{method:"post",url:r.baseUrl+"voice/queues/:id/clone",params:{includeAll:"@includeAll"}},getHoppers:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/hoppers"},getHopperHistories:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/hopper_histories"},getHopperFinals:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/hopper_finals"},getHopperBlacks:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/hopper_black"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"voice/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"voice/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"voice/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"voice/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/users"},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/members"},getLists:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/lists"},addLists:{isArray:!0,method:"post",url:r.baseUrl+"voice/queues/:id/lists"},removeLists:{isArray:!0,method:"delete",url:r.baseUrl+"voice/queues/:id/lists"},getBlackLists:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/:id/blacklists"},addBlackLists:{isArray:!0,method:"post",url:r.baseUrl+"voice/queues/:id/blacklists"},removeBlackLists:{isArray:!0,method:"delete",url:r.baseUrl+"voice/queues/:id/blacklists"}}),r.voiceRecording=e(r.baseUrl+"voice/recordings/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/recordings/describe"},clone:{method:"post",url:r.baseUrl+"voice/recordings/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"voice/recordings/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}},downloads:{isArray:!1,method:"get",url:r.baseUrl+"voice/recordings/:id/downloads"},runTranscribe:{isArray:!1,method:"post",url:r.baseUrl+"voice/recordings/:id/transcribe"},downloadTranscribe:{isArray:!1,method:"get",url:r.baseUrl+"voice/recordings/:id/transcribe",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.screenRecording=e(r.baseUrl+"screen/recordings/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"screen/recordings/describe"},clone:{method:"post",url:r.baseUrl+"screen/recordings/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"screen/recordings/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.voiceMail=e(r.baseUrl+"voice/mails/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/mails/describe"},clone:{method:"post",url:r.baseUrl+"voice/mails/:id/clone",params:{includeAll:"@includeAll"}},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"voice/mails/:id/messages"}}),r.voiceMailMessage=e(r.baseUrl+"voice/mails/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/mails/messages/describe"},clone:{method:"post",url:r.baseUrl+"voice/mails/messages/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"voice/mails/messages/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.voiceCallReport=e(r.baseUrl+"voice/calls/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/calls/reports/describe"},clone:{method:"post",url:r.baseUrl+"voice/calls/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceDialReport=e(r.baseUrl+"voice/dials/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/dials/reports/describe"},clone:{method:"post",url:r.baseUrl+"voice/dials/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceAgentReport=e(r.baseUrl+"voice/agents/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/agents/reports/describe"},clone:{method:"post",url:r.baseUrl+"voice/agents/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceQueueReport=e(r.baseUrl+"voice/queues/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/queues/reports/describe"},clone:{method:"post",url:r.baseUrl+"voice/queues/reports/:id/clone",params:{includeAll:"@includeAll"}},getVoiceQueuesReport:{isArray:!1,method:"get",url:r.baseUrl+"voice/queues/reports/index"}}),r.memberReport=e(r.baseUrl+"members/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"members/reports/describe"},clone:{method:"post",url:r.baseUrl+"members/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.trunk=e(r.baseUrl+"trunks/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"trunks/describe"},clone:{method:"post",url:r.baseUrl+"trunks/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceTransferReport=e(r.baseUrl+"voice/transfers/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/transfers/reports/describe"},clone:{method:"post",url:r.baseUrl+"voice/transfers/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.mailServerOut=e(r.baseUrl+"mail/out_servers/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/out_servers/describe"},clone:{method:"post",url:r.baseUrl+"mail/out_servers/:id/clone",params:{includeAll:"@includeAll"}}}),r.mailAccount=e(r.baseUrl+"mail/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/accounts/describe"},clone:{method:"post",url:r.baseUrl+"mail/accounts/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"mail/accounts/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:r.baseUrl+"mail/accounts/:id/canned_answers"},getImap:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/in_servers"},addImap:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/in_servers"},removeImap:{isArray:!1,method:"delete",url:r.baseUrl+"mail/accounts/:id/in_servers"},getSmtp:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/out_servers"},addSmtp:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/out_servers"},removeSmtp:{isArray:!1,method:"delete",url:r.baseUrl+"mail/accounts/:id/out_servers"},addInteraction:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/interactions"},getInteractions:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/interactions"},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/applications"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/messages"},send:{isArray:!1,method:"post",url:r.baseUrl+"mail/accounts/:id/send"},verifySmtp:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/verify"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"mail/accounts/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"mail/accounts/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"mail/accounts/:id/users"}}),r.mailQueue=e(r.baseUrl+"mail/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/queues/describe"},clone:{method:"post",url:r.baseUrl+"mail/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"mail/queues/:id/members"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"mail/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"mail/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"mail/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"mail/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"mail/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"mail/queues/:id/users"}}),r.mailSubstatus=e(r.baseUrl+"mail/substatuses/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/substatuses/describe"},clone:{method:"post",url:r.baseUrl+"mail/substatuses/:id/clone",params:{includeAll:"@includeAll"}}}),r.mailInteraction=e(r.baseUrl+"mail/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/interactions/describe"},clone:{method:"post",url:r.baseUrl+"mail/interactions/:id/clone",params:{includeAll:"@includeAll"}},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"mail/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"mail/interactions/:id/messages"},addTags:{isArray:!1,method:"post",url:r.baseUrl+"mail/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:r.baseUrl+"mail/interactions/:id/tags"},download:{isArray:!1,method:"get",url:r.baseUrl+"mail/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.mailMessage=e(r.baseUrl+"mail/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/messages/describe"},clone:{method:"post",url:r.baseUrl+"mail/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:r.baseUrl+"mail/messages/:id/accept"},reject:{isArray:!1,method:"put",url:r.baseUrl+"mail/messages/:id/reject"},download:{isArray:!1,method:"get",url:r.baseUrl+"mail/messages/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.mailApplication=e(r.baseUrl+"mail/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/applications/describe"},clone:{method:"post",url:r.baseUrl+"mail/applications/:id/clone",params:{includeAll:"@includeAll"}}}),r.mailQueueReport=e(r.baseUrl+"mail/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/reports/queue/describe"},clone:{method:"post",url:r.baseUrl+"mail/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),r.dashboard=e(r.baseUrl+"dashboards/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"dashboards/describe"},clone:{method:"post",url:r.baseUrl+"dashboards/:id/clone",params:{includeAll:"@includeAll"}},addItem:{isArray:!1,method:"post",url:r.baseUrl+"dashboards/:id/items"},getItems:{isArray:!1,method:"get",url:r.baseUrl+"dashboards/:id/items"}}),r.dashboardItem=e(r.baseUrl+"dashboards/items/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"dashboards/items/describe"},clone:{method:"post",url:r.baseUrl+"dashboards/items/:id/clone",params:{includeAll:"@includeAll"}}}),r.faxAccount=e(r.baseUrl+"fax/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/accounts/describe"},clone:{method:"post",url:r.baseUrl+"fax/accounts/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"fax/accounts/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"fax/accounts/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"fax/accounts/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:r.baseUrl+"fax/accounts/:id/canned_answers"},addInteraction:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/:id/interactions"},getInteractions:{isArray:!1,method:"get",url:r.baseUrl+"fax/accounts/:id/interactions"},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:r.baseUrl+"fax/accounts/:id/applications"},addAccountApplications:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/addaccountapplications"},updateAccountApplications:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/updateaccountapplications"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"fax/accounts/:id/messages"},send:{isArray:!1,method:"post",url:r.baseUrl+"fax/accounts/:id/send"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"fax/accounts/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"fax/accounts/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"fax/accounts/:id/users"}}),r.faxApplication=e(r.baseUrl+"fax/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/applications/describe"},clone:{method:"post",url:r.baseUrl+"fax/applications/:id/clone",params:{includeAll:"@includeAll"}}}),r.faxInteraction=e(r.baseUrl+"fax/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/interactions/describe"},clone:{method:"post",url:r.baseUrl+"fax/interactions/:id/clone",params:{includeAll:"@includeAll"}},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"fax/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"fax/interactions/:id/messages"},addTags:{isArray:!1,method:"post",url:r.baseUrl+"fax/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:r.baseUrl+"fax/interactions/:id/tags"},download:{isArray:!1,method:"get",url:r.baseUrl+"fax/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.faxMessage=e(r.baseUrl+"fax/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/messages/describe"},clone:{method:"post",url:r.baseUrl+"fax/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:r.baseUrl+"fax/messages/:id/accept"},reject:{isArray:!1,method:"put",url:r.baseUrl+"fax/messages/:id/reject"},download:{isArray:!1,method:"get",url:r.baseUrl+"fax/messages/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.faxQueue=e(r.baseUrl+"fax/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/queues/describe"},clone:{method:"post",url:r.baseUrl+"fax/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"fax/queues/:id/members"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"fax/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"fax/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"fax/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"fax/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"fax/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"fax/queues/:id/users"}}),r.faxQueueReport=e(r.baseUrl+"fax/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/reports/queue/describe"},clone:{method:"post",url:r.baseUrl+"fax/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),r.smsAccount=e(r.baseUrl+"sms/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/accounts/describe"},clone:{method:"post",url:r.baseUrl+"sms/accounts/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"sms/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"sms/accounts/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"sms/accounts/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:r.baseUrl+"sms/accounts/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"sms/accounts/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:r.baseUrl+"sms/accounts/:id/canned_answers"},notify:{isArray:!1,method:"post",url:r.baseUrl+"sms/accounts/:id/notify"},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"sms/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:r.baseUrl+"sms/accounts/:id/applications"},getInteractions:{isArray:!1,method:"get",url:r.baseUrl+"sms/accounts/:id/interactions"},send:{isArray:!1,method:"post",url:r.baseUrl+"sms/accounts/:id/send"},status:{isArray:!1,method:"post",url:r.baseUrl+"sms/accounts/:id/status"},statusGet:{isArray:!1,method:"get",url:r.baseUrl+"sms/accounts/:id/status"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"sms/accounts/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"sms/accounts/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"sms/accounts/:id/users"}}),r.smsApplication=e(r.baseUrl+"sms/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/applications/describe"},clone:{method:"post",url:r.baseUrl+"sms/applications/:id/clone",params:{includeAll:"@includeAll"}}}),r.smsInteraction=e(r.baseUrl+"sms/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/interactions/describe"},clone:{method:"post",url:r.baseUrl+"sms/interactions/:id/clone",params:{includeAll:"@includeAll"}},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"sms/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"sms/interactions/:id/messages"},addTags:{isArray:!1,method:"post",url:r.baseUrl+"sms/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:r.baseUrl+"sms/interactions/:id/tags"},download:{isArray:!1,method:"get",url:r.baseUrl+"sms/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.smsMessage=e(r.baseUrl+"sms/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/messages/describe"},clone:{method:"post",url:r.baseUrl+"sms/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:r.baseUrl+"sms/messages/:id/accept"},reject:{isArray:!1,method:"put",url:r.baseUrl+"sms/messages/:id/reject"},status:{isArray:!1,method:"post",url:r.baseUrl+"sms/messages/:id/status"}}),r.smsQueue=e(r.baseUrl+"sms/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/queues/describe"},clone:{method:"post",url:r.baseUrl+"sms/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"sms/queues/:id/members"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"sms/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"sms/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"sms/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"sms/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"sms/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"sms/queues/:id/users"}}),r.openchannelAccount=e(r.baseUrl+"openchannel/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/accounts/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/accounts/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/accounts/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"openchannel/accounts/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/accounts/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/accounts/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:r.baseUrl+"openchannel/accounts/:id/canned_answers"},notify:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/accounts/:id/notify"},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/accounts/:id/applications"},getInteractions:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/accounts/:id/interactions"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"openchannel/accounts/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"openchannel/accounts/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/accounts/:id/users"},send:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/accounts/:id/send"}}),r.openchannelApplication=e(r.baseUrl+"openchannel/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/applications/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/applications/:id/clone",params:{includeAll:"@includeAll"}}}),r.openchannelInteraction=e(r.baseUrl+"openchannel/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/interactions/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/interactions/:id/clone",params:{includeAll:"@includeAll"}},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/interactions/:id/messages"},addTags:{isArray:!1,method:"post",url:r.baseUrl+"openchannel/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:r.baseUrl+"openchannel/interactions/:id/tags"},download:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.openchannelMessage=e(r.baseUrl+"openchannel/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/messages/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:r.baseUrl+"openchannel/messages/:id/accept"},reject:{isArray:!1,method:"put",url:r.baseUrl+"openchannel/messages/:id/reject"}}),r.openchannelQueue=e(r.baseUrl+"openchannel/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/queues/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/queues/:id/members"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"openchannel/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"openchannel/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"openchannel/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"openchannel/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"openchannel/queues/:id/users"}}),r.chatWebsite=e(r.baseUrl+"chat/websites/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/websites/describe"},clone:{method:"post",url:r.baseUrl+"chat/websites/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"chat/websites/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:r.baseUrl+"chat/websites/:id/canned_answers"},addLogo:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/logo"},addAvatar:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/avatar"},addCustomerAvatar:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/customer_avatar"},addSystemAvatar:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/system_avatar"},getLogo:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/logo"},getAvatar:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/avatar"},getCustomerAvatar:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/customer_avatar"},getSystemAvatar:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/system_avatar"},notify:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/notify"},offline:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/offline"},addInteraction:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/interactions"},getInteractions:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/interactions"},getSnippet:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/snippet"},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/applications"},getApplications:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/applications"},addProactiveActions:{isArray:!1,method:"post",url:r.baseUrl+"chat/websites/:id/proactive_actions"},getProactiveActions:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/proactive_actions"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/fields"},getOfflineMessages:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/offline_messages"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"chat/websites/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"chat/websites/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"chat/websites/:id/users"}}),r.openchannelQueueReport=e(r.baseUrl+"openchannel/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/reports/queue/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),r.chatApplication=e(r.baseUrl+"chat/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/applications/describe"},clone:{method:"post",url:r.baseUrl+"chat/applications/:id/clone",params:{includeAll:"@includeAll"}}}),r.chatInteraction=e(r.baseUrl+"chat/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/interactions/describe"},clone:{method:"post",url:r.baseUrl+"chat/interactions/:id/clone",params:{includeAll:"@includeAll"}},createVidaooSession:{isArray:!1,method:"post",url:r.baseUrl+"chat/interactions/:id/vidaoo"},customUpdate:{isArray:!1,method:"put",url:r.baseUrl+"chat/interactions/:id/custom_update"},abandon:{isArray:!1,method:"put",url:r.baseUrl+"chat/interactions/:id/abandon"},attachmentUpload:{isArray:!1,method:"post",url:r.baseUrl+"chat/interactions/:id/attachment_upload"},attachmentDownload:{isArray:!1,method:"get",url:r.baseUrl+"chat/interactions/:id/attachment_download"},close:{isArray:!1,method:"put",url:r.baseUrl+"chat/interactions/:id/close"},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"chat/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"chat/interactions/:id/messages"},getMyMessages:{isArray:!1,method:"get",url:r.baseUrl+"chat/interactions/:id/my_messages"},addTags:{isArray:!1,method:"post",url:r.baseUrl+"chat/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:r.baseUrl+"chat/interactions/:id/tags"},download:{isArray:!1,method:"get",url:r.baseUrl+"chat/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.chatMessage=e(r.baseUrl+"chat/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/messages/describe"},clone:{method:"post",url:r.baseUrl+"chat/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:r.baseUrl+"chat/messages/:id/accept"},reject:{isArray:!1,method:"put",url:r.baseUrl+"chat/messages/:id/reject"}}),r.chatOfflineMessage=e(r.baseUrl+"chat/offline_messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/offline_messages/describe"},clone:{method:"post",url:r.baseUrl+"chat/offline_messages/:id/clone",params:{includeAll:"@includeAll"}}}),r.chatQueue=e(r.baseUrl+"chat/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/queues/describe"},clone:{method:"post",url:r.baseUrl+"chat/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"chat/queues/:id/members"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"chat/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"chat/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"chat/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"chat/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"chat/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"chat/queues/:id/users"}}),r.chatGroup=e(r.baseUrl+"chat/groups/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/groups/describe"},clone:{method:"post",url:r.baseUrl+"chat/groups/:id/clone",params:{includeAll:"@includeAll"}},getUnread:{isArray:!1,method:"get",url:r.baseUrl+"chat/groups/:id/unread"},addMembers:{isArray:!0,method:"post",url:r.baseUrl+"chat/groups/:id/members"},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"chat/groups/:id/members"},removeMembers:{isArray:!1,method:"delete",url:r.baseUrl+"chat/groups/:id/members"},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"chat/groups/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"chat/groups/:id/messages"}}),r.chatProactiveAction=e(r.baseUrl+"chat/proactive_actions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/proactive_actions/describe"},clone:{method:"post",url:r.baseUrl+"chat/proactive_actions/:id/clone",params:{includeAll:"@includeAll"}}}),r.cmCompany=e(r.baseUrl+"cm/companies/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/companies/describe"},clone:{method:"post",url:r.baseUrl+"cm/companies/:id/clone",params:{includeAll:"@includeAll"}},addContacts:{isArray:!1,method:"post",url:r.baseUrl+"cm/companies/:id/contacts"},getContacts:{isArray:!1,method:"get",url:r.baseUrl+"cm/companies/:id/contacts"}}),r.cmContact=e(r.baseUrl+"cm/contacts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/contacts/describe"},clone:{method:"post",url:r.baseUrl+"cm/contacts/:id/clone",params:{includeAll:"@includeAll"}},merge:{isArray:!1,method:"post",url:r.baseUrl+"cm/contacts/merge"},bulkCreate:{isArray:!1,method:"post",url:r.baseUrl+"cm/contacts/create_many"},getTags:{isArray:!1,method:"get",url:r.baseUrl+"cm/contacts/:id/tags"},setTags:{isArray:!0,method:"post",url:r.baseUrl+"cm/contacts/:id/tags"},getHoppers:{isArray:!1,method:"get",url:r.baseUrl+"cm/contacts/:id/hoppers"},getHopperHistories:{isArray:!1,method:"get",url:r.baseUrl+"cm/contacts/:id/hopper_histories"},getHopperFinals:{isArray:!1,method:"get",url:r.baseUrl+"cm/contacts/:id/hopper_finals"},getJscriptySessions:{isArray:!1,method:"get",url:r.baseUrl+"cm/contacts/:id/jscripty_sessions"},uploadCsv:{isArray:!1,method:"post",url:r.baseUrl+"cm/contacts/csv"},upload:{isArray:!1,method:"post",url:r.baseUrl+"cm/contacts/upload"},import:{isArray:!1,method:"post",url:r.baseUrl+"cm/contacts/upload/:id"},getJourney:{isArray:!1,method:"get",url:r.baseUrl+"cm/contacts/:id/journey"}}),r.cmHopper=e(r.baseUrl+"cm/hopper/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/hopper/describe"},clone:{method:"post",url:r.baseUrl+"cm/hopper/:id/clone",params:{includeAll:"@includeAll"}},getPreview:{isArray:!1,method:"post",url:r.baseUrl+"cm/hopper/preview"},getOpenContacts:{isArray:!1,method:"get",url:r.baseUrl+"cm/hopper/opencontacts"}}),r.cmHopperBlack=e(r.baseUrl+"cm/hopper_black/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/hopper_black/describe"},clone:{method:"post",url:r.baseUrl+"cm/hopper_black/:id/clone",params:{includeAll:"@includeAll"}}}),r.cmHopperFinal=e(r.baseUrl+"cm/hopper_final/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/hopper_final/describe"},clone:{method:"post",url:r.baseUrl+"cm/hopper_final/:id/clone",params:{includeAll:"@includeAll"}},countContactsQueueCampaignHopperFinal:{isArray:!0,method:"get",url:r.baseUrl+"cm/hopper_final/voice/queue/countAttributes/:id"},countContactsIvrCampaignHopperFinal:{isArray:!0,method:"get",url:r.baseUrl+"cm/hopper_final/campaign/countAttributes/:id"},moveContactsQueueCampaignHopperFinal:{isArray:!0,method:"post",url:r.baseUrl+"cm/hopper_final/voice/queue/moveContacts/:id"},moveContactsIvrCampaignHopperFinal:{isArray:!0,method:"post",url:r.baseUrl+"cm/hopper_final/voice/campaign/moveContacts/:id"},checkContactHopper:{isArray:!1,method:"post",url:r.baseUrl+"cm/hopper_final/checkContactHopper"}}),r.cmHopperHistory=e(r.baseUrl+"cm/hopper_history/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/hopper_history/describe"},clone:{method:"post",url:r.baseUrl+"cm/hopper_history/:id/clone",params:{includeAll:"@includeAll"}}}),r.cmCustomField=e(r.baseUrl+"cm/custom_fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/custom_fields/describe"},clone:{method:"post",url:r.baseUrl+"cm/custom_fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.action=e(r.baseUrl+"actions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"actions/describe"},clone:{method:"post",url:r.baseUrl+"actions/:id/clone",params:{includeAll:"@includeAll"}}}),r.automation=e(r.baseUrl+"automations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"automations/describe"},clone:{method:"post",url:r.baseUrl+"automations/:id/clone",params:{includeAll:"@includeAll"}},addConditions:{isArray:!1,method:"post",url:r.baseUrl+"automations/:id/conditions"},getConditions:{isArray:!1,method:"get",url:r.baseUrl+"automations/:id/conditions"},addActions:{isArray:!1,method:"post",url:r.baseUrl+"automations/:id/actions"},getActions:{isArray:!1,method:"get",url:r.baseUrl+"automations/:id/actions"}}),r.cannedAnswer=e(r.baseUrl+"canned_answers/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"canned_answers/describe"},clone:{method:"post",url:r.baseUrl+"canned_answers/:id/clone",params:{includeAll:"@includeAll"}}}),r.disposition=e(r.baseUrl+"dispositions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"dispositions/describe"},clone:{method:"post",url:r.baseUrl+"dispositions/:id/clone",params:{includeAll:"@includeAll"}}}),r.condition=e(r.baseUrl+"conditions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"conditions/describe"},clone:{method:"post",url:r.baseUrl+"conditions/:id/clone",params:{includeAll:"@includeAll"}}}),r.interval=e(r.baseUrl+"intervals/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"intervals/describe"},clone:{method:"post",url:r.baseUrl+"intervals/:id/clone",params:{includeAll:"@includeAll"}},addInterval:{isArray:!1,method:"post",url:r.baseUrl+"intervals/:id/sub_intervals"},getIntervals:{isArray:!1,method:"get",url:r.baseUrl+"intervals/:id/sub_intervals"},addIntervals:{isArray:!0,method:"post",url:r.baseUrl+"intervals/:id/sub_intervals/create_many"}}),r.pause=e(r.baseUrl+"pauses/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"pauses/describe"},clone:{method:"post",url:r.baseUrl+"pauses/:id/clone",params:{includeAll:"@includeAll"}}}),r.cdr=e(r.baseUrl+"cdr/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cdr/describe"},clone:{method:"post",url:r.baseUrl+"cdr/:id/clone",params:{includeAll:"@includeAll"}}}),r.voiceQueuesLog=e(r.baseUrl+"voiceQueuesLog/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voiceQueuesLog/describe"},clone:{method:"post",url:r.baseUrl+"voiceQueuesLog/:id/clone",params:{includeAll:"@includeAll"}}}),r.schedule=e(r.baseUrl+"schedules/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"schedules/describe"},clone:{method:"post",url:r.baseUrl+"schedules/:id/clone",params:{includeAll:"@includeAll"}},run:{isArray:!1,method:"get",url:r.baseUrl+"schedules/:id/run"}}),r.sound=e(r.baseUrl+"sounds/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sounds/describe"},clone:{method:"post",url:r.baseUrl+"sounds/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"sounds/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}},delete:{isArray:!1,method:"delete",url:r.baseUrl+"sounds/:id"}}),r.tag=e(r.baseUrl+"tags/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"tags/describe"},clone:{method:"post",url:r.baseUrl+"tags/:id/clone",params:{includeAll:"@includeAll"}}}),r.template=e(r.baseUrl+"templates/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"templates/describe"},clone:{method:"post",url:r.baseUrl+"templates/:id/clone",params:{includeAll:"@includeAll"}}}),r.trigger=e(r.baseUrl+"triggers/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"triggers/describe"},clone:{method:"post",url:r.baseUrl+"triggers/:id/clone",params:{includeAll:"@includeAll"}},addAllCondition:{isArray:!1,method:"post",url:r.baseUrl+"triggers/:id/all_conditions"},addAnyCondition:{isArray:!1,method:"post",url:r.baseUrl+"triggers/:id/any_conditions"},getAllConditions:{isArray:!1,method:"get",url:r.baseUrl+"triggers/:id/all_conditions"},getAnyConditions:{isArray:!1,method:"get",url:r.baseUrl+"triggers/:id/any_conditions"},addAction:{isArray:!1,method:"post",url:r.baseUrl+"triggers/:id/actions"},getActions:{isArray:!1,method:"get",url:r.baseUrl+"triggers/:id/actions"}}),r.variable=e(r.baseUrl+"variables/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"variables/describe"},clone:{method:"post",url:r.baseUrl+"variables/:id/clone",params:{includeAll:"@includeAll"}}}),r.integration=e(r.baseUrl+"integrations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/:id/clone",params:{includeAll:"@includeAll"}}}),r.integrationReport=e(r.baseUrl+"integrations/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/reports/describe"},clone:{method:"post",url:r.baseUrl+"integrations/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.analyticCustomReport=e(r.baseUrl+"analytics/custom_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"analytics/custom_reports/describe"},clone:{method:"post",url:r.baseUrl+"analytics/custom_reports/:id/clone",params:{includeAll:"@includeAll"}},preview:{isArray:!0,method:"get",url:r.baseUrl+"analytics/custom_reports/:id/preview"},run:{isArray:!1,method:"get",url:r.baseUrl+"analytics/custom_reports/:id/run"},query:{isArray:!1,method:"get",url:r.baseUrl+"analytics/custom_reports/:id/query"}}),r.analyticDefaultReport=e(r.baseUrl+"analytics/default_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"analytics/default_reports/describe"},clone:{method:"post",url:r.baseUrl+"analytics/default_reports/:id/clone",params:{includeAll:"@includeAll"}},preview:{isArray:!0,method:"get",url:r.baseUrl+"analytics/default_reports/:id/preview"},run:{isArray:!1,method:"get",url:r.baseUrl+"analytics/default_reports/:id/run"},query:{isArray:!1,method:"get",url:r.baseUrl+"analytics/default_reports/:id/query"}}),r.analyticExtractedReport=e(r.baseUrl+"analytics/extracted_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"analytics/extracted_reports/describe"},clone:{method:"post",url:r.baseUrl+"analytics/extracted_reports/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"analytics/extracted_reports/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.analyticMetric=e(r.baseUrl+"analytics/metrics/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"analytics/metrics/describe"},clone:{method:"post",url:r.baseUrl+"analytics/metrics/:id/clone",params:{includeAll:"@includeAll"}}}),r.analyticFieldReport=e(r.baseUrl+"analytics/field_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"analytics/field_reports/describe"},clone:{method:"post",url:r.baseUrl+"analytics/field_reports/:id/clone",params:{includeAll:"@includeAll"}},bulkCreate:{method:"post",url:r.baseUrl+"analytics/field_reports/create_many",isArray:!0},bulkDestroy:{method:"delete",url:r.baseUrl+"analytics/field_reports/destroy_many",isArray:!0},addFields:{isArray:!0,method:"post",url:r.baseUrl+"analytics/field_reports/:id/create_many"}}),r.analyticTreeReport=e(r.baseUrl+"analytics/tree_reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"analytics/tree_reports/describe"},clone:{method:"post",url:r.baseUrl+"analytics/tree_reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.intSalesforceAccount=e(r.baseUrl+"integrations/salesforce/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/salesforce/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/salesforce/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/salesforce/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/salesforce/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/salesforce/accounts/:id/fields"}}),r.intSalesforceConfiguration=e(r.baseUrl+"integrations/salesforce/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/salesforce/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/salesforce/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/salesforce/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/salesforce/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/salesforce/configurations/:id/descriptions"}}),r.intSalesforceField=e(r.baseUrl+"integrations/salesforce/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/salesforce/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/salesforce/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intSugarcrmAccount=e(r.baseUrl+"integrations/sugarcrm/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/sugarcrm/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/sugarcrm/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/sugarcrm/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/sugarcrm/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/sugarcrm/accounts/:id/fields"}}),r.intSugarcrmConfiguration=e(r.baseUrl+"integrations/sugarcrm/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/sugarcrm/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/sugarcrm/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/sugarcrm/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/sugarcrm/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/sugarcrm/configurations/:id/descriptions"}}),r.intSugarcrmField=e(r.baseUrl+"integrations/sugarcrm/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/sugarcrm/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/sugarcrm/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intDeskAccount=e(r.baseUrl+"integrations/desk/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/desk/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/desk/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/desk/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/desk/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/desk/accounts/:id/fields"}}),r.intDeskConfiguration=e(r.baseUrl+"integrations/desk/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/desk/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/desk/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/desk/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/desk/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/desk/configurations/:id/descriptions"},getTags:{isArray:!1,method:"get",url:r.baseUrl+"integrations/desk/configurations/:id/tags"},setTags:{isArray:!0,method:"post",url:r.baseUrl+"integrations/desk/configurations/:id/tags"}}),r.intDeskField=e(r.baseUrl+"integrations/desk/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/desk/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/desk/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intZohoAccount=e(r.baseUrl+"integrations/zoho/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/zoho/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/zoho/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zoho/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/zoho/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zoho/accounts/:id/fields"}}),r.intZohoConfiguration=e(r.baseUrl+"integrations/zoho/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/zoho/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/zoho/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zoho/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zoho/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zoho/configurations/:id/descriptions"}}),r.intZohoField=e(r.baseUrl+"integrations/zoho/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/zoho/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/zoho/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intZendeskAccount=e(r.baseUrl+"integrations/zendesk/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/zendesk/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/zendesk/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zendesk/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/zendesk/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zendesk/accounts/:id/fields"}}),r.intZendeskConfiguration=e(r.baseUrl+"integrations/zendesk/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/zendesk/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/zendesk/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zendesk/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zendesk/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zendesk/configurations/:id/descriptions"},getTags:{isArray:!1,method:"get",url:r.baseUrl+"integrations/zendesk/configurations/:id/tags"},setTags:{isArray:!0,method:"post",url:r.baseUrl+"integrations/zendesk/configurations/:id/tags"}}),r.intZendeskField=e(r.baseUrl+"integrations/zendesk/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/zendesk/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/zendesk/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intFreshdeskAccount=e(r.baseUrl+"integrations/freshdesk/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/freshdesk/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/freshdesk/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshdesk/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/freshdesk/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshdesk/accounts/:id/fields"}}),r.intFreshdeskConfiguration=e(r.baseUrl+"integrations/freshdesk/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/freshdesk/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/freshdesk/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshdesk/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshdesk/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshdesk/configurations/:id/descriptions"},getTags:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshdesk/configurations/:id/tags"},setTags:{isArray:!0,method:"post",url:r.baseUrl+"integrations/freshdesk/configurations/:id/tags"}}),r.intFreshdeskField=e(r.baseUrl+"integrations/freshdesk/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/freshdesk/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/freshdesk/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intVtigerAccount=e(r.baseUrl+"integrations/vtiger/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/vtiger/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/vtiger/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/vtiger/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/vtiger/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/vtiger/accounts/:id/fields"}}),r.intVtigerConfiguration=e(r.baseUrl+"integrations/vtiger/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/vtiger/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/vtiger/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/vtiger/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/vtiger/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/vtiger/configurations/:id/descriptions"}}),r.intVtigerField=e(r.baseUrl+"integrations/vtiger/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/vtiger/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/vtiger/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intServicenowAccount=e(r.baseUrl+"integrations/servicenow/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/servicenow/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/servicenow/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/servicenow/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/servicenow/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/servicenow/accounts/:id/fields"}}),r.intServicenowConfiguration=e(r.baseUrl+"integrations/servicenow/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/servicenow/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/servicenow/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/servicenow/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/servicenow/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/servicenow/configurations/:id/descriptions"}}),r.intServicenowField=e(r.baseUrl+"integrations/servicenow/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/servicenow/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/servicenow/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intDynamics365Account=e(r.baseUrl+"integrations/dynamics365/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/dynamics365/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/dynamics365/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/dynamics365/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/dynamics365/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/dynamics365/accounts/:id/fields"}}),r.intDynamics365Configuration=e(r.baseUrl+"integrations/dynamics365/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/dynamics365/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/dynamics365/configurations/:id/clone",params:{includeAll:"@includeAll"}},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/dynamics365/configurations/:id/fields"},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/dynamics365/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/dynamics365/configurations/:id/descriptions"}}),r.intDynamics365Field=e(r.baseUrl+"integrations/dynamics365/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/dynamics365/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/dynamics365/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.intFreshsalesAccount=e(r.baseUrl+"integrations/freshsales/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/freshsales/accounts/describe"},clone:{method:"post",url:r.baseUrl+"integrations/freshsales/accounts/:id/clone",params:{includeAll:"@includeAll"}},getConfigurations:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshsales/accounts/:id/configurations"},addConfiguration:{isArray:!1,method:"post",url:r.baseUrl+"integrations/freshsales/accounts/:id/configurations"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshsales/accounts/:id/fields"}}),r.intFreshsalesConfiguration=e(r.baseUrl+"integrations/freshsales/configurations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/freshsales/configurations/describe"},clone:{method:"post",url:r.baseUrl+"integrations/freshsales/configurations/:id/clone",params:{includeAll:"@includeAll"}},getSubjects:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshsales/configurations/:id/subjects"},getDescriptions:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshsales/configurations/:id/descriptions"},getFields:{isArray:!1,method:"get",url:r.baseUrl+"integrations/freshsales/configurations/:id/fields"}}),r.intFreshsalesField=e(r.baseUrl+"integrations/freshsales/fields/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"integrations/freshsales/fields/describe"},clone:{method:"post",url:r.baseUrl+"integrations/freshsales/fields/:id/clone",params:{includeAll:"@includeAll"}}}),r.network=e(r.baseUrl+"networks/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"networks/describe"},clone:{method:"post",url:r.baseUrl+"networks/:id/clone",params:{includeAll:"@includeAll"}}}),r.chatQueueReport=e(r.baseUrl+"chat/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/reports/queue/describe"},clone:{method:"post",url:r.baseUrl+"chat/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),r.chatInternalMessage=e(r.baseUrl+"chat/internal/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/internal/messages/describe"},clone:{method:"post",url:r.baseUrl+"chat/internal/messages/:id/clone",params:{includeAll:"@includeAll"}},getUsers:{isArray:!1,method:"get",url:r.baseUrl+"chat/internal/messages/users"}}),r.jscriptyAnswerReport=e(r.baseUrl+"jscripty/answers/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"jscripty/answers/reports/describe"},clone:{method:"post",url:r.baseUrl+"jscripty/answers/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.jscriptyQuestionReport=e(r.baseUrl+"jscripty/questions/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"jscripty/questions/reports/describe"},clone:{method:"post",url:r.baseUrl+"jscripty/questions/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.jscriptySessionReport=e(r.baseUrl+"jscripty/sessions/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"jscripty/sessions/reports/describe"},clone:{method:"post",url:r.baseUrl+"jscripty/sessions/reports/:id/clone",params:{includeAll:"@includeAll"}},getQuestions:{isArray:!1,method:"get",url:r.baseUrl+"jscripty/sessions/reports/:id/questions"}}),r.smsQueueReport=e(r.baseUrl+"sms/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/reports/queue/describe"},clone:{method:"post",url:r.baseUrl+"sms/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),r.squareReport=e(r.baseUrl+"square/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"square/reports/describe"},clone:{method:"post",url:r.baseUrl+"square/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.squareReportDetail=e(r.baseUrl+"square/details/reports/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"square/details/reports/describe"},clone:{method:"post",url:r.baseUrl+"square/details/reports/:id/clone",params:{includeAll:"@includeAll"}}}),r.jscriptyProject=e(r.baseUrl+"jscripty/projects/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"jscripty/projects/describe"},clone:{method:"post",url:r.baseUrl+"jscripty/projects/:id/clone",params:{includeAll:"@includeAll"}},getSessions:{isArray:!1,method:"get",url:r.baseUrl+"jscripty/projects/:id/sessions"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"jscripty/projects/:id/answers"},getSummary:{isArray:!1,method:"get",url:r.baseUrl+"jscripty/projects/:id/summary",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.setting=e(r.baseUrl+"settings/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"settings/describe"},clone:{method:"post",url:r.baseUrl+"settings/:id/clone",params:{includeAll:"@includeAll"}},addLogo:{isArray:!1,method:"post",url:r.baseUrl+"settings/:id/logo"},addLogoLogin:{isArray:!1,method:"post",url:r.baseUrl+"settings/:id/logo_login"},getLogo:{isArray:!1,method:"get",url:r.baseUrl+"settings/:id/logo"},getLogoLogin:{isArray:!1,method:"get",url:r.baseUrl+"settings/:id/logo_login"},gdpr:{isArray:!1,method:"get",url:r.baseUrl+"settings/:id/gdpr"},addPreferred:{isArray:!1,method:"post",url:r.baseUrl+"settings/:id/preferred"},getPreferred:{isArray:!1,method:"get",url:r.baseUrl+"settings/:id/preferred"},addFavicon:{isArray:!1,method:"post",url:r.baseUrl+"settings/:id/favicon"},getFavicon:{isArray:!1,method:"get",url:r.baseUrl+"settings/:id/favicon"},getDate:{isArray:!1,method:"get",url:r.baseUrl+"settings/now"}}),r.squareOdbc=e(r.baseUrl+"square/odbc/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"square/odbc/describe"},clone:{method:"post",url:r.baseUrl+"square/odbc/:id/clone",params:{includeAll:"@includeAll"}},test:{isArray:!1,method:"get",url:r.baseUrl+"square/odbc/:id/test"}}),r.squareProject=e(r.baseUrl+"square/projects/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"square/projects/describe"},clone:{method:"post",url:r.baseUrl+"square/projects/:id/clone",params:{includeAll:"@includeAll"}},addUsers:{isArray:!0,method:"post",url:r.baseUrl+"square/projects/:id/users"},removeUsers:{isArray:!1,method:"delete",url:r.baseUrl+"square/projects/:id/users"},getUsers:{isArray:!1,method:"get",url:r.baseUrl+"square/projects/:id/users"}}),r.squareRecording=e(r.baseUrl+"square/recordings/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"square/recordings/describe"},clone:{method:"post",url:r.baseUrl+"square/recordings/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"square/recordings/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.squareMessage=e(r.baseUrl+"square/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"square/messages/describe"},clone:{method:"post",url:r.baseUrl+"square/messages/:id/clone",params:{includeAll:"@includeAll"}}}),r.team=e(r.baseUrl+"teams/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"teams/describe"},clone:{method:"post",url:r.baseUrl+"teams/:id/clone",params:{includeAll:"@includeAll"}},getQueues:{isArray:!0,method:"get",url:r.baseUrl+"teams/:id/queues"},addQueues:{isArray:!0,method:"post",url:r.baseUrl+"teams/:id/queues"},removeQueues:{isArray:!1,method:"delete",url:r.baseUrl+"teams/:id/queues"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"teams/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"teams/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"teams/:id/users"}}),r.license=e(r.baseUrl+"license/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"license/describe"},clone:{method:"post",url:r.baseUrl+"license/:id/clone",params:{includeAll:"@includeAll"}}}),r.campaign=e(r.baseUrl+"campaigns/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"campaigns/describe"},clone:{method:"post",url:r.baseUrl+"campaigns/:id/clone",params:{includeAll:"@includeAll"}},getHoppers:{isArray:!1,method:"get",url:r.baseUrl+"campaigns/:id/hoppers"},getHopperHistories:{isArray:!1,method:"get",url:r.baseUrl+"campaigns/:id/hopper_histories"},getHopperFinals:{isArray:!1,method:"get",url:r.baseUrl+"campaigns/:id/hopper_finals"},getHopperBlacks:{isArray:!1,method:"get",url:r.baseUrl+"campaigns/:id/hopper_black"},getLists:{isArray:!1,method:"get",url:r.baseUrl+"campaigns/:id/lists"},addLists:{isArray:!0,method:"post",url:r.baseUrl+"campaigns/:id/lists"},removeLists:{isArray:!0,method:"delete",url:r.baseUrl+"campaigns/:id/lists"},getBlackLists:{isArray:!1,method:"get",url:r.baseUrl+"campaigns/:id/blacklists"},addBlackLists:{isArray:!0,method:"post",url:r.baseUrl+"campaigns/:id/blacklists"},removeBlackLists:{isArray:!0,method:"delete",url:r.baseUrl+"campaigns/:id/blacklists"}}),r.migration=e(r.baseUrl+"migrations/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"migrations/describe"},clone:{method:"post",url:r.baseUrl+"migrations/:id/clone",params:{includeAll:"@includeAll"}}}),r.attachment=e(r.baseUrl+"attachments/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"attachments/describe"},clone:{method:"post",url:r.baseUrl+"attachments/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"attachments/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.plugin=e(r.baseUrl+"plugins/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"plugins/describe"},clone:{method:"post",url:r.baseUrl+"plugins/:id/clone",params:{includeAll:"@includeAll"}},download:{isArray:!1,method:"get",url:r.baseUrl+"plugins/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}},upload:{isArray:!1,method:"post",url:r.baseUrl+"plugins/"},delete:{isArray:!1,method:"delete",url:r.baseUrl+"plugins/:id"},webhookGet:{isArray:!1,method:"get",url:r.baseUrl+"plugins/webhook"},webhookPost:{isArray:!1,method:"post",url:r.baseUrl+"plugins/webhook"}}),r.mailTransferReport=e(r.baseUrl+"mail/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"mail/reports/transfer/describe"},clone:{method:"post",url:r.baseUrl+"mail/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),r.chatTransferReport=e(r.baseUrl+"chat/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"chat/reports/transfer/describe"},clone:{method:"post",url:r.baseUrl+"chat/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),r.faxTransferReport=e(r.baseUrl+"fax/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"fax/reports/transfer/describe"},clone:{method:"post",url:r.baseUrl+"fax/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),r.openchannelTransferReport=e(r.baseUrl+"openchannel/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"openchannel/reports/transfer/describe"},clone:{method:"post",url:r.baseUrl+"openchannel/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),r.smsTransferReport=e(r.baseUrl+"sms/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"sms/reports/transfer/describe"},clone:{method:"post",url:r.baseUrl+"sms/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),r.cmList=e(r.baseUrl+"cm/lists/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cm/lists/describe"},clone:{method:"post",url:r.baseUrl+"cm/lists/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"cm/lists/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"cm/lists/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"cm/lists/:id/dispositions"},addContacts:{isArray:!1,method:"post",url:r.baseUrl+"cm/lists/:id/contacts"},getContacts:{isArray:!0,method:"get",url:r.baseUrl+"cm/lists/:id/contacts"},getContactsCsv:{isArray:!1,method:"get",url:r.baseUrl+"cm/lists/:id/contacts/csv",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}},addCustomField:{isArray:!1,method:"post",url:r.baseUrl+"cm/lists/:id/fields"},getCustomFields:{isArray:!1,method:"get",url:r.baseUrl+"cm/lists/:id/fields"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"cm/lists/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"cm/lists/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"cm/lists/:id/users"}}),r.voicePrefix=e(r.baseUrl+"voice/prefixes/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"voice/prefixes/describe"},clone:{method:"post",url:r.baseUrl+"voice/prefixes/:id/clone",params:{includeAll:"@includeAll"}},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"voice/prefixes/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"voice/prefixes/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"voice/prefixes/:id/users"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"voice/prefixes/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"voice/prefixes/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"voice/prefixes/:id/teams"}}),r.userProfile=e(r.baseUrl+"userProfiles/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"userProfiles/describe"},clone:{method:"post",url:r.baseUrl+"userProfiles/:id/clone",params:{includeAll:"@includeAll"}},addSections:{isArray:!0,method:"post",url:r.baseUrl+"userProfiles/:id/sections"},removeSections:{isArray:!1,method:"delete",url:r.baseUrl+"userProfiles/:id/sections"},getSections:{isArray:!0,method:"get",url:r.baseUrl+"userProfiles/:id/sections"},addResources:{isArray:!0,method:"post",url:r.baseUrl+"userProfiles/:id/resources"},removeResources:{isArray:!1,method:"delete",url:r.baseUrl+"userProfiles/:id/resources"},getResources:{isArray:!1,method:"get",url:r.baseUrl+"userProfiles/:id/resources"}}),r.userProfileSection=e(r.baseUrl+"userProfile/sections/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"userProfile/sections/describe"},clone:{method:"post",url:r.baseUrl+"userProfile/sections/:id/clone",params:{includeAll:"@includeAll"}}}),r.userProfileResource=e(r.baseUrl+"userProfile/resources/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"userProfile/resources/describe"},clone:{method:"post",url:r.baseUrl+"userProfile/resources/:id/clone",params:{includeAll:"@includeAll"}}}),r.userNotification=e(r.baseUrl+"userNotifications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"userNotifications/describe"},clone:{method:"post",url:r.baseUrl+"userNotifications/:id/clone",params:{includeAll:"@includeAll"}},sendUserNotification:{isArray:!1,method:"post",url:r.baseUrl+"userNotifications/"}}),r.whatsappAccount=e(r.baseUrl+"whatsapp/accounts/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/accounts/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/accounts/:id/clone",params:{includeAll:"@includeAll"}},addDisposition:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/accounts/:id/dispositions"},getDispositions:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/accounts/:id/dispositions"},removeDispositions:{isArray:!1,method:"delete",url:r.baseUrl+"whatsapp/accounts/:id/dispositions"},addAnswer:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/accounts/:id/canned_answers"},getAnswers:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/accounts/:id/canned_answers"},removeAnswers:{isArray:!1,method:"delete",url:r.baseUrl+"whatsapp/accounts/:id/canned_answers"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"whatsapp/accounts/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"whatsapp/accounts/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/accounts/:id/users"},addApplications:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/accounts/:id/applications"},getApplications:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/accounts/:id/applications"},notify:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/accounts/:id/notify"},send:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/accounts/:id/send"}}),r.whatsappApplication=e(r.baseUrl+"whatsapp/applications/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/applications/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/applications/:id/clone",params:{includeAll:"@includeAll"}}}),r.whatsappInteraction=e(r.baseUrl+"whatsapp/interactions/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/interactions/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/interactions/:id/clone",params:{includeAll:"@includeAll"}},addMessage:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/interactions/:id/messages"},getMessages:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/interactions/:id/messages"},addTags:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/interactions/:id/tags"},removeTags:{isArray:!1,method:"delete",url:r.baseUrl+"whatsapp/interactions/:id/tags"},download:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/interactions/:id/download",responseType:"arraybuffer",cache:!1,transformResponse:function(e,n){var t=n();return{type:t["content-type"],length:t["content-length"],buffer:e}}}}),r.whatsappMessage=e(r.baseUrl+"whatsapp/messages/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/messages/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/messages/:id/clone",params:{includeAll:"@includeAll"}},accept:{isArray:!1,method:"put",url:r.baseUrl+"whatsapp/messages/:id/accept"},reject:{isArray:!1,method:"put",url:r.baseUrl+"whatsapp/messages/:id/reject"},status:{isArray:!1,method:"post",url:r.baseUrl+"whatsapp/messages/:id/status"}}),r.whatsappQueueReport=e(r.baseUrl+"whatsapp/reports/queue/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/reports/queue/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/reports/queue/:id/clone",params:{includeAll:"@includeAll"}}}),r.whatsappTransferReport=e(r.baseUrl+"whatsapp/reports/transfer/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/reports/transfer/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/reports/transfer/:id/clone",params:{includeAll:"@includeAll"}}}),r.whatsappQueue=e(r.baseUrl+"whatsapp/queues/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"whatsapp/queues/describe"},clone:{method:"post",url:r.baseUrl+"whatsapp/queues/:id/clone",params:{includeAll:"@includeAll"}},getMembers:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/queues/:id/members"},getTeams:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/queues/:id/teams"},addTeams:{isArray:!0,method:"post",url:r.baseUrl+"whatsapp/queues/:id/teams"},removeTeams:{isArray:!1,method:"delete",url:r.baseUrl+"whatsapp/queues/:id/teams"},addAgents:{isArray:!0,method:"post",url:r.baseUrl+"whatsapp/queues/:id/users"},removeAgents:{isArray:!1,method:"delete",url:r.baseUrl+"whatsapp/queues/:id/users"},getAgents:{isArray:!1,method:"get",url:r.baseUrl+"whatsapp/queues/:id/users"}}),r.cloudProvider=e(r.baseUrl+"cloudProviders/:id",{id:"@id"},{update:{method:"put"},describe:{method:"get",url:r.baseUrl+"cloudProviders/describe"},clone:{method:"post",url:r.baseUrl+"cloudProviders/:id/clone",params:{includeAll:"@includeAll"}}}),r.realtime=e(r.baseUrl+"realtime",{},{getAgents:{isArray:!1,method:"get",url:r.baseUrl+"realtime/agents"},getQueues:{isArray:!1,method:"get",url:r.baseUrl+"realtime/queues"}}),r}e.$inject=["$resource","userProfileManager"],angular.module("motion").factory("api",e)}(),function(){"use strict";function e(e,n){n.setConfig({position:"top-right",sound:!1,html:!0,theme:"material"}),e.useLoader("$translatePartialLoader",{urlTemplate:"{part}/i18n/{lang}.json"}),e.preferredLanguage("en"),e.fallbackLanguage("en"),e.useSanitizeValueStrategy(null)}e.$inject=["$translateProvider","toastyConfigProvider"],angular.module("motion").config(e)}(),function(){"use strict";angular.module("motion")}(),function(){"use strict";function e(e,n,t,a){var i=this;i.themes=e.themes,i.direction="ltr";var s=t.get("motion.language");s&&(n.use(s),0<=["ar","fa","he"].indexOf(s)&&a.setting.get({id:1}).$promise.then(function(e){e&&e.rtlSupport&&(i.direction="rtl")}).catch(function(e){e&&toasty.error({title:"Error",msg:e.data?e.data.message||e.message||e:e.message||e})}))}e.$inject=["motionTheming","$translate","$cookies","api"],angular.module("motion").controller("IndexController",e)}(),function(){"use strict";function e(a,i){return function(e){var n=new Date,t=new Date(e);return t.getDate()===n.getDate()&&t.getMonth()===n.getMonth()&&t.getFullYear()===n.getFullYear()?a("date")(t.getTime(),"shortTime"):t.getDate()===n.getDate()-1&&t.getMonth()===n.getMonth()&&t.getFullYear()===n.getFullYear()?i.instant("DASHBOARDS.YESTERDAY")+" "+a("date")(t.getTime(),"shortTime"):a("date")(t.getTime(),"MMM d, y h:mm a")}}function n(e){return{Today:e.instant("DASHBOARDS.TODAY"),Yesterday:e.instant("DASHBOARDS.YESTERDAY"),"This Week":e.instant("DASHBOARDS.THIS_WEEK"),"Last Week":e.instant("DASHBOARDS.LAST_WEEK"),"This Month":e.instant("DASHBOARDS.THIS_MONTH"),"Last Month":e.instant("DASHBOARDS.LAST_MONTH"),"This Year":e.instant("DASHBOARDS.THIS_YEAR"),"Last Year":e.instant("DASHBOARDS.LAST_YEAR"),January:e.instant("DASHBOARDS.JANUARY"),February:e.instant("DASHBOARDS.FEBRUARY"),March:e.instant("DASHBOARDS.MARCH"),April:e.instant("DASHBOARDS.APRIL"),May:e.instant("DASHBOARDS.MAY"),June:e.instant("DASHBOARDS.JUNE"),July:e.instant("DASHBOARDS.JULY"),August:e.instant("DASHBOARDS.AUGUST"),September:e.instant("DASHBOARDS.SEPTEMBER"),October:e.instant("DASHBOARDS.OCTOBER"),November:e.instant("DASHBOARDS.NOVEMBER"),December:e.instant("DASHBOARDS.DECEMBER"),Mon:e.instant("DASHBOARDS.MON"),Tue:e.instant("DASHBOARDS.TUE"),Wed:e.instant("DASHBOARDS.WED"),Thu:e.instant("DASHBOARDS.THU"),Fri:e.instant("DASHBOARDS.FRI"),Sat:e.instant("DASHBOARDS.SAT"),Sun:e.instant("DASHBOARDS.SUN")}}e.$inject=["$filter","$translate"],n.$inject=["$translate"],angular.module("motion").filter("limitObjectFromTo",function(){return function(e,n,t){var a,i={},s=0;for(a in e)if(t<=s&&(i[a]=e[a]),++s===t+n)break;return i}}).filter("formatdate",e).factory("IndexFactory",function(){var e=[{value:"jan"},{value:"feb"},{value:"mar"},{value:"apr"},{value:"may"},{value:"jun"},{value:"jul"},{value:"aug"},{value:"sep"},{value:"oct"},{value:"nov"},{value:"dec"}],n=[{value:"1"},{value:"2"},{value:"3"},{value:"4"},{value:"5"},{value:"6"},{value:"7"},{value:"8"},{value:"9"},{value:"10"},{value:"11"},{value:"12"}],t=[{value:"mon"},{value:"tue"},{value:"wed"},{value:"thu"},{value:"fri"},{value:"sat"},{value:"sun"}],a=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31];return{getMonthName:function(){return e},getMonthNumber:function(){return n},getDaysOfWeek:function(){return t},getDaysOfMonth:function(){return a}}}).factory("dateFilterLocalizationFactory",n).factory("jscookie",function(){return Cookies}).factory("Sequence",function(){return{enqueue:function(e){this.tail=this.tail?this.tail.finally(e):e()}}})}(),function(){"use strict";function e(e,n,t){var a;t.html5Mode(!0),n.otherwise("/dashboards/general"),angular.injector(["ngCookies"]).invoke(["$cookies",function(e){a=e}]);var i=a.get("motion.layoutStyle")||"verticalNavigation",s={verticalNavigation:{main:"app/core/layouts/vertical-navigation.html",toolbar:"app/toolbar/layouts/vertical-navigation/toolbar.html",navigation:"app/navigation/layouts/vertical-navigation/navigation.html",header:"app/header/layouts/vertical-navigation/header.html",footer:"app/footer/layouts/vertical-navigation/footer.html"},verticalNavigationFullwidthToolbar:{main:"app/core/layouts/vertical-navigation-fullwidth-toolbar.html",toolbar:"app/toolbar/layouts/vertical-navigation-fullwidth-toolbar/toolbar.html",navigation:"app/navigation/layouts/vertical-navigation/navigation.html"},verticalNavigationFullwidthToolbar2:{main:"app/core/layouts/vertical-navigation-fullwidth-toolbar-2.html",toolbar:"app/toolbar/layouts/vertical-navigation-fullwidth-toolbar-2/toolbar.html",navigation:"app/navigation/layouts/vertical-navigation-fullwidth-toolbar-2/navigation.html"},horizontalNavigation:{main:"app/core/layouts/horizontal-navigation.html",toolbar:"app/toolbar/layouts/horizontal-navigation/toolbar.html",navigation:"app/navigation/layouts/horizontal-navigation/navigation.html"},contentOnly:{main:"app/core/layouts/content-only.html",toolbar:"",navigation:""},contentWithToolbar:{main:"app/core/layouts/content-with-toolbar.html",toolbar:"app/toolbar/layouts/content-with-toolbar/toolbar.html",navigation:""}};e.state("app",{abstract:!0,views:{"main@":{templateUrl:s[i].main,controller:"MainController as vm"},"toolbar@app":{templateUrl:s[i].toolbar,controller:"ToolbarController as vm"},"navigation@app":{templateUrl:s[i].navigation,controller:"NavigationController as vm"},"quickPanel@app":{templateUrl:"app/quick-panel/quick-panel.html",controller:"QuickPanelController as vm"},"header@app":{templateUrl:s[i].header,controller:"HeaderController as vm"},"footer@app":{templateUrl:s[i].footer,controller:"FooterController as vm"}},resolve:{license:["apiResolver",function(e){return e.resolve("license@get")}],setting:["apiResolver","settingsManager",function(e,n){return e.resolve("setting@get",{id:1}).then(function(e){return n.set(e),e})}]}})}e.$inject=["$stateProvider","$urlRouterProvider","$locationProvider"],angular.module("motion").config(e)}(),function(){"use strict";function e(e,n){e.onStart({},n.showLoadingIndicator),e.onFinish({},n.hideLoadingIndicator)}e.$inject=["$transitions","LoadingIndicatorService"],angular.module("motion").run(e)}(),function(){"use strict";function e(a,e){var i,o={};function s(){a.$broadcast("socket:connect"),i&&i.connected||(i=io({query:e.getCurrentUser()?"id="+e.getCurrentUser().id:void 0,transports:["websocket","polling"]})).once("disconnect",n)}function n(e){i.once("connect",s),"logout"===e?i.removeAllListeners():a.$broadcast("socket:disconnect"),i&&i.connected&&i.disconnect()}function r(e,n,t){o[e]||(o[e]=[]),o[e].push({wrapper:n,fn:t})}return{connect:s,disconnect:n,getListeners:function(e){return e?o[e]:o},on:function(e,n){n=n||angular.noop,i||s();var t=function(){var e=arguments;a.$applyAsync(function(){n.apply(i,e)})};r(e,t,n),i.on(e,t)},onWithoutApply:function(e,n){n=n||angular.noop,i||s();var t=function(){n.apply(i,arguments)};r(e,t,n),i.on(e,t)},emit:function(e,n,t){t=t||angular.noop,i||s(),i.emit(e,n,function(){var e=arguments;a.$applyAsync(function(){t.apply(i,e)})})},removeAllListeners:function(e){var n;i||s(),i.removeAllListeners(e),n=e,_.isEmpty(o[n])||delete o[n]},removeListener:function(e,n){i||s();var t=function(e,n){var t=o[e];if(!_.isEmpty(t))for(var a=0;a<t.length;a++){var i=t[a];if(i.fn===n){var s=i.wrapper;return t.splice(a,1),s}}}(e,n);i.removeListener(e,t)}}}e.$inject=["$rootScope","Auth"],angular.module("motion").factory("socket",e)}(),function(){"use strict";function e(n,t,e,a,i,s,o,r){var l=this;l.progresslogin=!1,l.googleSsoEnabled=!1,l.login=function(){return l.progresslogin=!0,l.message="",s.login(l.form).then(function(){return n.go("app.dashboards.general")}).catch(function(e){l.message=e.data?e.data.message:e.message}).finally(function(){l.progresslogin=!1})},l.loginOauth=function(e){l.message="",t.location.href=s.loginSSO(e)},l.onInit=function(){{if(n.params.token&&n.params.userId)return s.removeCookies(),l.progresslogin=!0,o.secureCookieEnabled?r.set("motion.token",n.params.token,{secure:!0,sameSite:"none"}):r.set("motion.token",n.params.token),i.user.get({id:n.params.userId}).$promise.then(function(e){e&&(s.setCurrentUser(e),n.go("app.dashboards.general"))}).finally(function(){l.progresslogin=!1});s.isLoggedIn()&&n.go("app.dashboards.general")}l.googleSsoEnabled=o.googleSsoEnabled},l.onInit()}e.$inject=["$state","$window","$cookies","$timeout","api","Auth","setting","jscookie"],angular.module("app.login").controller("LoginController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="ANALYTICS.EDIT_EXTRACTEDREPORT",g.extractedReport=angular.copy(l),g.extractedReports=r,g.newExtractedReport=!1,g.extractedReport||(g.extractedReport={},g.title="ANALYTICS.NEW_EXTRACTEDREPORT",g.newExtractedReport=!0),g.addNewExtractedReport=function(){g.errors=[],d.analyticExtractedReport.save(g.extractedReport).$promise.then(function(e){g.extractedReports.unshift(e.toJSON()),o.success({title:"ExtractedReport properly created",msg:g.extractedReport.name?g.extractedReport.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticExtractedReport.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticExtractedReport.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveExtractedReport=function(){g.errors=[],d.analyticExtractedReport.update({id:g.extractedReport.id},g.extractedReport).$promise.then(function(e){var n=_.find(g.extractedReports,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ExtractedReport properly saved!",msg:g.extractedReport.name?g.extractedReport.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticExtractedReport.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticExtractedReport.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteExtractedReport=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The extractedReport will be deleted.").ariaLabel("Delete ExtractedReport").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.analyticExtractedReport.delete({id:g.extractedReport.id}).$promise.then(function(){_.remove(g.extractedReports,{id:g.extractedReport.id}),o.success({title:"ExtractedReport properly deleted!",msg:(g.extractedReport.name||"extractedReport")+" has been deleted!"}),v(g.extractedReport)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticExtractedReport.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticExtractedReport.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","extractedReports","extractedReport","api","Auth","license","setting","crudPermissions"],angular.module("app.analytics").controller("CreateOrEditExtractedReportDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.extractedReports=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="extractedReports",f.listOrder="",f.listOrderAsc=null,f.selectedExtractedReports=[],f.query={fields:"createdAt,updatedAt,id,name,basename,savename,type,startDate,endDate,status,output,reportId,reportType",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditExtractedReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/extractedReports/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{extractedReport:e,extractedReports:f.extractedReports.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.downloadfile2=function(s,e){return m.analyticExtractedReport.download({id:s.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s.savename;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticExtractedReport.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("extractedReport")+"?").htmlContent("<b>"+(e.name||"extractedReport")+"</b> will be deleted.").ariaLabel("delete extractedReport").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getExtractedReports=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.analyticExtractedReport.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ExtractedReports",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditExtractedReport=function(e,n){i.show({controller:"CreateOrEditExtractedReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/extractedReports/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{extractedReport:n,extractedReports:f.extractedReports.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteExtractedReport=y,f.exportSelectedExtractedReports=function(){var e=angular.copy(f.selectedExtractedReports);return f.selectedExtractedReports=[],e},f.deleteSelectedExtractedReports=function(e){var n=i.confirm().title("Are you sure want to delete the selected extractedReports?").htmlContent("<b>"+f.selectedExtractedReports.length+" selected</b> will be deleted.").ariaLabel("delete ExtractedReports").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedExtractedReports.forEach(function(e){y(e)}),f.selectedExtractedReports=[]})},f.deselectExtractedReports=function(){f.selectedExtractedReports=[]},f.selectAllExtractedReports=function(){f.selectedExtractedReports=f.extractedReports.rows};var b=!0,A=1;function E(e){f.extractedReports=e||{count:0,rows:[]}}function y(e){m.analyticExtractedReport.delete({id:e.id}).$promise.then(function(){_.remove(f.extractedReports.rows,{id:e.id}),f.extractedReports.count-=1,f.extractedReports.rows.length||f.getExtractedReports(),p.success({title:_.startCase("ExtractedReport")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEanalyticExtractedReport"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEanalyticExtractedReport",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getExtractedReports())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","extractedReports","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.analytics").controller("ExtractedReportsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="ANALYTICS.EDIT_METRIC",g.metric=angular.copy(l),g.metrics=r,g.newMetric=!1,g.metric||(g.metric={table:"report_agent"},g.title="ANALYTICS.NEW_METRIC",g.newMetric=!0),g.addNewMetric=function(){g.errors=[],d.analyticMetric.save(g.metric).$promise.then(function(e){g.metrics.unshift(e.toJSON()),o.success({title:"Metric properly created",msg:g.metric.name?g.metric.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticMetric.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticMetric.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveMetric=function(){g.errors=[],d.analyticMetric.update({id:g.metric.id},g.metric).$promise.then(function(e){var n=_.find(g.metrics,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Metric properly saved!",msg:g.metric.name?g.metric.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticMetric.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticMetric.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteMetric=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The metric will be deleted.").ariaLabel("Delete Metric").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.analyticMetric.delete({id:g.metric.id}).$promise.then(function(){_.remove(g.metrics,{id:g.metric.id}),o.success({title:"Metric properly deleted!",msg:(g.metric.name||"metric")+" has been deleted!"}),v(g.metric)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.analyticMetric.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticMetric.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","metrics","metric","api","Auth","license","setting","crudPermissions"],angular.module("app.analytics").controller("CreateOrEditMetricDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.metrics=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="metrics",f.listOrder="",f.listOrderAsc=null,f.selectedMetrics=[],f.query={fields:"createdAt,updatedAt,id,name,table,metric,description",sort:"-updatedAt",limit:10,page:1},f.arraytable=_.keyBy([{option:"Agent Report",value:"'report_agent'"},{option:"Call Report",value:"'report_call'"},{option:"CDR",value:"'cdr'"},{option:"Chat Website",value:"'chat_websites'"},{option:"Chat Interaction",value:"'chat_interactions'"},{option:"Chat Messages",value:"'chat_messages'"},{option:"Chat Offline Messages",value:"'chat_offline_messages'"},{option:"Chat Queues",value:"'chat_queues'"},{option:"Chat Report Queue",value:"'report_chat_queue'"},{option:"Chat Report Transfer",value:"'report_chat_transfer'"},{option:"Companies",value:"'cm_companies'"},{option:"Call transfer report",value:"'report_call_transfer'"},{option:"Contacts",value:"'cm_contacts'"},{option:"CSquare Report",value:"'report_square'"},{option:"CSquare Details Report",value:"'report_square_details'"},{option:"Dial Report",value:"'report_dial'"},{option:"Dialer Hopper Processing",value:"'cm_hopper'"},{option:"Dialer Hopper Logs",value:"'cm_hopper_history'"},{option:"Dialer Hopper Final",value:"'cm_hopper_final'"},{option:"Email Account",value:"'mail_accounts'"},{option:"Email Interaction",value:"'mail_interactions'"},{option:"Email Messages",value:"'mail_messages'"},{option:"Email Queues",value:"'mail_queues'"},{option:"Email Report Queue",value:"'report_mail_queue'"},{option:"Email Report Transfer",value:"'report_mail_transfer'"},{option:"Fax Account",value:"'fax_accounts'"},{option:"Fax Interaction",value:"'fax_interactions'"},{option:"Fax Messages",value:"'fax_messages'"},{option:"Fax Queues",value:"'fax_queues'"},{option:"Fax Report Queue",value:"'report_fax_queue'"},{option:"Fax Report Transfer",value:"'report_fax_transfer'"},{option:"Jscripty Sessions",value:"'report_jscripty_sessions'"},{option:"Jscripty Questions",value:"'report_jscripty_questions'"},{option:"Jscripty Answers",value:"'report_jscripty_answers'"},{option:"Lists",value:"'cm_lists'"},{option:"Member Report",value:"'report_member'"},{option:"Openchannel Account",value:"'openchannel_accounts'"},{option:"Openchannel Interaction",value:"'openchannel_interactions'"},{option:"Openchannel Messages",value:"'openchannel_messages'"},{option:"Openchannel Queues",value:"'openchannel_queues'"},{option:"Openchannel Report Queue",value:"'report_openchannel_queue'"},{option:"Openchannel Report Transfer",value:"'report_openchannel_transfer'"},{option:"Queue Report",value:"'report_queue'"},{option:"SMS Account",value:"'sms_accounts'"},{option:"SMS Interaction",value:"'sms_interactions'"},{option:"SMS Messages",value:"'sms_messages'"},{option:"SMS Queues",value:"'sms_queues'"},{option:"SMS Report Queue",value:"'report_sms_queue'"},{option:"SMS Report Transfer",value:"'report_sms_transfer'"},{option:"Users",value:"'users'"},{option:"Voice Recordings",value:"'voice_recordings'"},{option:"Whatsapp Account",value:"'whatsapp_accounts'"},{option:"Whatsapp Interaction",value:"'whatsapp_interactions'"},{option:"Whatsapp Messages",value:"'whatsapp_messages'"},{option:"Whatsapp Queues",value:"'whatsapp_queues'"},{option:"Whatsapp Report Queue",value:"'report_whatsapp_queue'"},{option:"Whatsapp Report Transfer",value:"'report_whatsapp_transfer'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editdialog=function(e,n){i.show({controller:"CreateOrEditMetricDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/metrics/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{metric:e,metrics:f.metrics.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("metric")+"?").htmlContent("<b>"+(e.name||"metric")+"</b> will be deleted.").ariaLabel("delete metric").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getMetrics=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.analyticMetric.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Metrics",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditMetric=function(e,n){i.show({controller:"CreateOrEditMetricDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/metrics/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{metric:n,metrics:f.metrics.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteMetric=y,f.exportSelectedMetrics=function(){var e=angular.copy(f.selectedMetrics);return f.selectedMetrics=[],e},f.deleteSelectedMetrics=function(e){var n=i.confirm().title("Are you sure want to delete the selected metrics?").htmlContent("<b>"+f.selectedMetrics.length+" selected</b> will be deleted.").ariaLabel("delete Metrics").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedMetrics.forEach(function(e){y(e)}),f.selectedMetrics=[]})},f.deselectMetrics=function(){f.selectedMetrics=[]},f.selectAllMetrics=function(){f.selectedMetrics=f.metrics.rows};var b=!0,A=1;function E(e){f.metrics=e||{count:0,rows:[]}}function y(e){m.analyticMetric.delete({id:e.id}).$promise.then(function(){_.remove(f.metrics.rows,{id:e.id}),f.metrics.count-=1,f.metrics.rows.length||f.getMetrics(),p.success({title:_.startCase("Metric")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEanalyticMetric"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEanalyticMetric",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getMetrics())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","metrics","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.analytics").controller("MetricsController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o){var r=this;function l(){n.hide()}r.errors=[],r.report=angular.copy(t),r.report.name+="-copy",r.treeCustomData=o,r.treeCustomConfig={core:{multiple:!1,animation:!0,error:function(e){console.error("treeCtrl: error from js tree - "+angular.toJson(e))},check_callback:!0,worker:!0},version:1,plugins:["wholerow"]},r.treeCustomEvents={select_node:function(e,n){r.currentNode=n.node}},r.copyReport=function(){var t;r.errors=[],i.analyticCustomReport.save({name:r.report.name,description:r.report.description,table:r.report.table,conditions:r.report.conditions,joins:r.report.joins,parent:r.currentNode.id}).$promise.then(function(e){t=e,a.success({title:"Report properly copied!",msg:r.report.name?r.report.name+" has been copied!":""});var n={fields:"field,alias,function,format,groupBy,orderBy,custom,MetricId",nolimit:!0};return n["analyticCustomReport"===s?"CustomReportId":"DefaultReportId"]=r.report.id,i.analyticFieldReport.get(n).$promise}).then(function(e){var e=_.map(e.rows,function(e){return _.extend({},e,{CustomReportId:t.id})});return i.analyticFieldReport.bulkCreate(e).$promise}).then(function(){a.success({title:"Fields copied!",msg:"Fields has been copied!"}),l()}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:COPYREPORT",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$location","$mdDialog","toasty","report","api","apiName","treeCustomData"],angular.module("app.analytics").controller("CopyReportDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;function m(){n.hide()}c.errors=[],c.joinTables=[],c.title="ANALYTICS.EDIT_REPORT",c.crudPermissions=d,c.report=angular.copy(i),c.reports=a,c.newReport=!1,c.tables=l.getMap(),c.joinTypes=[{key:"join",value:"Join"},{key:"left_join",value:"Left Join"},{key:"right_join",value:"Right Join"},{key:"cross_join",value:"Cross Join"}],c.report||(c.report={name:"",table:"report_agent",description:"",parent:r.id},c.title="ANALYTICS.NEW_REPORT",c.newReport=!0),c.addNewReport=function(){c.errors=[],c.report.joins=_.map(c.joinTables||[],function(e){return{parentKey:e.parentKey,foreignTable:e.name,foreignKey:e.foreignKey,type:e.type.toLowerCase()}}),c.report.joins=JSON.stringify(c.report.joins),s[o].save(c.report).$promise.then(function(e){c.reports.unshift(e),t.success({title:"Report properly created",msg:c.report.name?c.report.name+" has been created!":""}),m()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.analyticReport.save"}];for(var n=0;n<e.data.errors.length;n++)t.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticReport.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.saveReport=function(){c.errors=[],s[o].update({id:c.report.id},c.report).$promise.then(function(e){var n=_.find(c.reports,{id:e.id});n&&_.merge(n,e),t.success({title:"Report properly saved!",msg:c.report.name?c.report.name+" has been saved!":""}),m()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.analyticReport.update"}];for(var n=0;n<e.data.errors.length;n++)t.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticReport.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.deleteReport=function(){c.errors=[];var e=n.confirm().title("Are you sure?").content("The report will be deleted.").ariaLabel("Delete Report").ok("Delete").cancel("Cancel").targetEvent(event);n.show(e).then(function(){s[o].delete({id:c.report.id}).$promise.then(function(){_.remove(c.reports,{id:c.report.id}),t.success({title:"Report properly deleted!",msg:c.report.name?c.report.name+" has been deleted!":""}),m()}).catch(function(e){c.errors=e.data.errors||[{message:e.toString(),type:"api.analyticReport.delete"}]})},function(){})},c.closeDialog=m,c.selectedTableChange=function(e){e&&(delete c.selectedItem,c.joinTables.push(e))},c.removeJoin=function(e){c.joinTables.splice(e,1)},c.getFields=function(n,t,e){var a=_.find(c.tables,{name:e});a&&a.api&&s[a.api].describe().$promise.then(function(e){n[t]=_.difference(_.keys(e),["$promise","$resolved"])}).catch(function(e){console.error(e)})}}e.$inject=["$location","$mdDialog","toasty","reports","report","api","apiName","currentNode","describeTable","crudPermissions"],angular.module("app.analytics").controller("CreateOrEditReportDialogController",e)}(),function(){"use strict";function e(i,s,o,e){var r=this;r.report={},r.conditions=e.getConditions,r.init=function(e,n){r.report=e,r.report.condition=angular.fromJson(e.conditions)||{group:{operator:"AND",rules:[]}},r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1};for(var t=0;t<r.report.condition.group.rules.length;t++)if(r.report.condition.group.rules[t].field){var a=r.report.condition.group.rules[t].field.split(".");1===a.length&&(r.report.condition.group.rules[t].field=r.report.table+"."+r.report.condition.group.rules[t].field)}s.getColumns(r.report.table).then(function(e){r.columns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt"])}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DESCRIBE",msg:e.data?JSON.stringify(e.data):e.toString()})})},r.addCondition=function(e){e.unshift({condition:"=",field:"",value:""})},r.addGroup=function(e){e.push({group:{operator:"AND",rules:[]}})},r.deleteConfirm=function(e,n,t){var a=i.confirm().title("Are you sure want to delete the item?").htmlContent("The item will be deleted.").ariaLabel("delete item").targetEvent(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){e.splice(n,1)},function(){console.log("CANCEL")})},r.isValueByCondition=function(e){return!_.includes(["IS NULL","IS NOT NULL","IS EMPTY","IS NOT EMPTY"],e)}}e.$inject=["$mdDialog","describeTable","toasty","sqlUtil"],angular.module("app.analytics").controller("ReportConditionsController",e)}(),function(){"use strict";function e(a){var i={report_call_transfer:"voiceTransferReport",cm_companies:"cmCompany",cm_contacts:"cmContact",cm_hopper:"cmHopper",cm_hopper_final:"cmHopperFinal",cm_hopper_history:"cmHopperHistory",cm_lists:"cmList",chat_websites:"chatWebsite",chat_queues:"chatQueue",chat_interactions:"chatInteraction",chat_messages:"chatMessage",chat_offline_messages:"chatOfflineMessage",report_chat_queue:"chatQueueReport",report_chat_transfer:"chatTransferReport",mail_accounts:"mailAccount",mail_queues:"mailQueue",mail_interactions:"mailInteraction",mail_messages:"mailMessage",report_mail_queue:"mailQueueReport",report_mail_transfer:"mailTransferReport",openchannel_accounts:"openchannelAccount",openchannel_queues:"openchannelQueue",openchannel_interactions:"openchannelInteraction",openchannel_messages:"openchannelMessage",report_openchannel_queue:"openchannelQueueReport",report_openchannel_transfer:"openchannelTransferReport",sms_accounts:"smsAccount",sms_queues:"smsQueue",sms_interactions:"smsInteraction",sms_messages:"smsMessage",report_sms_queue:"smsQueueReport",report_sms_transfer:"smsTransferReport",fax_accounts:"faxAccount",fax_queues:"faxQueue",fax_interactions:"faxInteraction",fax_messages:"faxMessage",report_fax_transfer:"faxTransferReport",report_fax_queue:"faxQueueReport",report_call:"voiceCallReport",report_agent:"voiceAgentReport",report_square:"squareReport",report_member:"memberReport",report_queue:"voiceQueueReport",report_square_details:"squareReportDetail",report_dial:"voiceDialReport",report_jscripty_sessions:"jscriptySessionReport",report_jscripty_questions:"jscriptyQuestionReport",report_jscripty_answers:"jscriptyAnswerReport",users:"user",voice_recordings:"voiceRecording",cdr:"cdr",whatsapp_accounts:"whatsappAccount",whatsapp_queues:"whatsappQueue",whatsapp_interactions:"whatsappInteraction",whatsapp_messages:"whatsappMessage",report_whatsapp_queue:"whatsappQueueReport",report_whatsapp_transfer:"whatsappTransferReport"};return{getMap:function(){var t=[];return _.forIn(i,function(e,n){t.push({name:n,api:e})}),t},getColumns:function(e){var n=i[e],t={};return"cm_contacts"===e&&(t.analytics=!0),a[n].describe(t).$promise}}}e.$inject=["api"],angular.module("app.analytics").factory("describeTable",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;(u.errors=[],u.title="Edit Report Field",u.report=i,u.reportField=angular.copy(o),u.reportFields=s,u.metrics=r,u.columns=l,u.sqlUtil=d,u.newReportField=!1,u.crudPermissions=m,u.reportField)?(u.reportField.type=u.reportField.custom?"custom":u.reportField.MetricId?"metric":"column",u.reportField.field&&!u.reportField.custom&&_.isNil(u.reportField.MetricId)&&1===u.reportField.field.split(".").length&&(u.reportField.field=u.report.table+"."+u.reportField.field)):(u.reportField={type:"column",function:null,format:null,groupBy:!1,orderBy:null},u.title="New Report Field",u.newReportField=!0);function p(){t.hide()}u.addNewReportField=function(){u.errors=[],u.reportField.custom="custom"===u.reportField.type,u.reportField.MetricId="metric"===u.reportField.type?u.reportField.MetricId:null,u.reportField.CustomReportId=u.report.id,c.analyticFieldReport.save(u.reportField).$promise.then(function(e){u.reportFields.push(e),a.success({title:"Report field properly created",msg:u.reportField.field?u.reportField.field+" has been created!":u.reportField.type+" has been created!"}),p()}).catch(function(e){u.errors=e.data.errors||[{message:e.toString(),type:"api.analyticFieldReport.save"}]})},u.saveReportField=function(){u.errors=[],u.reportField.custom="custom"===u.reportField.type,u.reportField.MetricId="metric"===u.reportField.type?u.reportField.MetricId:null,c.analyticFieldReport.update({id:u.reportField.id},u.reportField).$promise.then(function(e){var n=_.find(u.reportFields,{id:e.id});n&&_.merge(n,e),a.success({title:"Report Field properly saved!",msg:u.reportField.field?u.reportField.field+" has been saved!":""}),p()}).catch(function(e){u.errors=e.data.errors||[{message:e.toString(),type:"api.analyticFieldReport.update"}]})},u.deleteReportField=function(e){u.errors=[];var n=t.confirm().title("Are you sure?").content("The field will be deleted.").ariaLabel("Delete Report").ok("Delete").cancel("Cancel").targetEvent(e);t.show(n).then(function(){c.analyticFieldReport.delete({id:u.reportField.id}).$promise.then(function(){_.remove(u.reportFields,{id:u.reportField.id}),a.success({title:"Report Field properly deleted!",msg:u.reportField.field?u.reportField.field+" has been deleted!":""}),p()}).catch(function(e){u.errors=e.data.errors||[{message:e.toString(),type:"api.analyticReportField.delete"}]})},function(){})},u.closeDialog=p}e.$inject=["$scope","$location","$mdDialog","toasty","report","reportFields","reportField","metrics","columns","sqlUtil","api","crudPermissions"],angular.module("app.analytics").controller("CreateOrEditReportFieldDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;c.report={},c.reportFields={count:0,rows:[]},c.functions=_.keyBy(l.getFunctions,"value"),c.formats=_.keyBy(l.getFormats,"value"),c.groupBy=_.keyBy(l.getGroupBy,"value"),c.orderBy=_.keyBy(l.getOrderBy,"value"),c.selectedReportFields=[],c.query={fields:"createdAt,updatedAt,id,field,alias,function,format,groupBy,orderBy,custom,MetricId",nolimit:!0},c.sortableTable={animation:100,onSort:function(e){o.analyticFieldReport.addFields({id:c.report.id},e.models).$promise.then(function(e){c.reportFields.rows=e}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ADDFIELDS"})})}},c.init=function(e,n){c.report=e,c.query.CustomReportId=c.report.id,c.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},c.sortableTable.disabled=!c.crudPermissions.canEdit,r.getColumns(c.report.table).then(function(e){return c.columns=_.difference(_.keys(e),["$promise","$resolved"]),o.analyticMetric.get({fields:"id,name,metric,table",nolimit:!0}).$promise}).then(function(e){c.metrics=e.rows}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DESCRIBE",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.getReportFields()},c.deleteConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>"+e.field+"</b> will be deleted.").ariaLabel("delete field").targetEvent(n).ok("OK").cancel("CANCEL");a.show(t).then(function(){p(e)},function(){console.log("CANCEL")})},c.success=u,c.getReportFields=function(){c.promise=o.analyticFieldReport.get(c.query,u).$promise},c.createOrEditReportField=function(e,n){a.show({controller:"CreateOrEditReportFieldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/edit/field/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{report:c.report,reportField:n,reportFields:c.reportFields.rows,metrics:c.metrics,columns:c.columns,setting:null,crudPermissions:c.crudPermissions}})},c.deleteReportField=p,c.deleteSelectedReportFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+c.selectedReportFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){c.selectedReportFields.forEach(function(e){p(e)}),c.selectedReportFields=[]})},c.getMetricName=function(e){var n=_.find(c.metrics,{id:e});return n?n.name:d.instant("ANALYTICS.NO_METRIC_FOUND")},c.getMetricValue=function(e){var n=_.find(c.metrics,{id:e});return n?n.metric:d.instant("ANALYTICS.NO_METRIC_FOUND")};var m=!0;function u(e){c.reportFields=e||{count:0,rows:[]}}function p(e){o.analyticFieldReport.delete({id:e.id}).$promise.then(function(){c.selectedReportFields=[],_.remove(c.reportFields.rows,{id:e.id}),c.reportFields.count-=1,c.reportFields.rows.length||c.getReportFields(),s.success({title:"Field deleted!",msg:e.field?e.field+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}n.$watch("vm_rf.query.filter",function(e,n){m?t(function(){m=!1}):c.getReportFields()})}e.$inject=["$cookies","$scope","$timeout","$mdDialog","$document","toasty","api","describeTable","sqlUtil","$translate"],angular.module("app.analytics").controller("ReportFieldsController",e)}(),function(){"use strict";angular.module("app.analytics").factory("sqlUtil",function(){return{getFunctions:[{value:"SUM",option:function(e){return"SUM ("+e+")"}},{value:"COUNT",option:function(e){return"COUNT ("+e+")"}},{value:"COUNT DISTINCT",option:function(e){return"COUNT (DISTINCT "+e+")"}},{value:"MAX",option:function(e){return"MAX ("+e+")"}},{value:"MIN",option:function(e){return"MIN ("+e+")"}},{value:"AVG",option:function(e){return"AVG ("+e+")"}},{value:"GROUP_CONCAT",option:function(e){return"GROUP_CONCAT ("+e+")"}},{value:"GROUP_CONCAT ASC",option:function(e){return"GROUP_CONCAT ("+e+" ORDER BY "+e+" ASC)"}},{value:"GROUP_CONCAT DESC",option:function(e){return"GROUP_CONCAT ("+e+" ORDER BY "+e+" DESC)"}}],getFormats:[{value:"SEC_TO_TIME",option:function(e){return"SEC_TO_TIME ("+e+")"}},{value:"DATE",option:function(e){return"DATE ("+e+")"}},{value:"HOUR",option:function(e){return"HOUR ("+e+")"}},{value:"ROUND",option:function(e){return"ROUND ("+e+")"}},{value:"UNIX_TIMESTAMP",option:function(e){return"UNIX_TIMESTAMP ("+e+")"}}],getGroupBy:[{value:!1,option:function(){return"No"}},{value:!0,option:function(e){return"GROUP BY "+e}}],getOrderBy:[{value:"ASC",option:function(e){return"ORDER BY "+e+" ASC"}},{value:"DESC",option:function(e){return"ORDER BY "+e+" DESC"}}],getConditions:["=","!=","<","<=",">",">=","LIKE","NOT LIKE","IS NULL","IS NOT NULL","IS EMPTY","IS NOT EMPTY"]}})}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this;function r(e){return _.isArray(e)}o.report=a||{},o.userProfileSection=s&&1==s.count?s.rows[0]:null,o.crudPermissions=i.parseCrudPermissions(o.userProfileSection?o.userProfileSection.crudPermissions:null),o.selectedTab=e.params.tab||0,o.gotoReports=function(){e.go("app.analytics.reports",{},{reload:"app.analytics.reports"})},o.saveReport=function(){o.report.conditions=angular.toJson(o.report.condition),t.analyticCustomReport.update({id:o.report.id},_.omit(o.report,"joins")).$promise.then(function(){n.success({title:"Report updated!",msg:o.report.name?o.report.name+" has been updated!":""})}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETreport",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.previewReport=function(){o.columns=[],o.rows=[],o.error=!1,t.analyticFieldReport.get({fields:"field,alias",nolimit:!0,CustomReportId:o.report.id}).$promise.then(function(e){return o.columns=e?e.rows:[],t.analyticCustomReport.preview({id:o.report.id}).$promise}).then(function(e){o.rows=e}).catch(function(e){console.log(e),o.error={title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:analyticFieldReport",msg:e.data?e.data.message:e.toString(),sql:e.data&&e.data.parent?e.data.parent.sql:"NO QUERY"},n.error(o.error)})},o.queryReport=function(){return o.queryResult="Loading...",t.analyticCustomReport.query({id:o.report.id}).$promise.then(function(e){o.queryResult=e.sql}).catch(function(e){o.queryResult="",console.log(e),o.error={title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:analyticFieldReport",msg:e.data?e.data.message:e.toString(),sql:e.data&&e.data.parent?e.data.parent.sql:"NO QUERY"},n.error(o.error)})},o.mapArray=function(e,n){if(r(e))return _.map(e,n).join(",");return""},o.isArray=r,o.valueReplacer=function(e,n){moment(n,"YYYY-MM-DDTHH:mm:ssZ",!0).isValid()&&(n=moment(n,"").format("YYYY-MM-DD HH:mm:ss"));return n}}e.$inject=["$state","toasty","api","report","Auth","userProfileSection"],angular.module("app.analytics").controller("ReportController",e)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this;o.errors=[],o.report=angular.copy(a),o.valueReplacer=function(e,n){moment(n,"YYYY-MM-DDTHH:mm:ssZ",!0).isValid()&&(n=moment(n,"").format("YYYY-MM-DD HH:mm:ss"));return n},o.closeDialog=function(){n.hide()},function(){o.columns=[],o.rows=[],o.error=!1;var e={fields:"field,alias",nolimit:!0};e["analyticCustomReport"===s?"CustomReportId":"DefaultReportId"]=o.report.id,o.promise=i.analyticFieldReport.get(e).$promise.then(function(e){return o.columns=e?e.rows:[],i[s].preview({id:o.report.id}).$promise}).then(function(e){o.rows=e}).catch(function(e){console.log(e),o.error={title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:analyticFieldReport",msg:e.data?e.data.message:e.toString(),sql:e.data&&e.data.parent?e.data.parent.sql:"NO QUERY"},t.error(o.error)})}()}e.$inject=["$location","$mdDialog","toasty","report","api","apiName"],angular.module("app.analytics").controller("PreviewReportDialogController",e)}(),function(){"use strict";function e(e,t,a,i,s,o,n,r,l,d,c,m,u){var p=this;p.currentUser=u.getCurrentUser(),p.reports={count:0,rows:[]},p.userProfile=r,p.userProfileSection=l&&1==l.count?l.rows[0]:null,p.crudPermissions=u.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.selectedReports=[],p.query={fields:"createdAt,updatedAt,id,name,description,table,parent,conditions,joins",limit:10,page:1,sort:"-updatedAt"},p.apiName=null,p.currentPath="",p.customTree=!0,p.editstate=function(e,n){s.go("app.analytics.reports.edit",{id:e.id,crudPermissions:p.crudPermissions})},p.copydialog=function(e,n){i.show({controller:"CopyReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/copy/dialog.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{report:e,apiName:p.apiName,treeCustomData:p.treeCustomInstance.jstree(!0).get_json("#")}}).finally(function(){})},p.previewdialog=function(e,n){i.show({controller:"PreviewReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/preview/dialog.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{report:e,apiName:p.apiName}})},p.rundialog=function(e,n){i.show({controller:"RunReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/run/dialog.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{report:e,apiName:p.apiName,currentPath:p.currentPath}})},p.downloadfile=function(a,e){var i;d.analyticMetric.get({fields:"id,name,metric,table",nolimit:!0}).$promise.then(function(e){i=_.keyBy(e.rows,"id");var n={fields:"field,alias,function,format,groupBy,orderBy,custom,MetricId",nolimit:!0};return n["analyticCustomReport"===p.apiName?"CustomReportId":"DefaultReportId"]=a.id,d.analyticFieldReport.get(n).$promise}).then(function(e){for(var n=0;n<e.rows.length;n+=1)e.rows[n].MetricId&&(e.rows[n].field=i[e.rows[n].MetricId].metric,e.rows[n].custom=!0),delete e.rows[n].MetricId;var t=o.document.createElement("a");t.href="data:text/json;charset=utf-8,"+o.encodeURIComponent(angular.toJson({name:a.name,description:a.description,table:a.table,conditions:a.conditions,joins:a.joins,fields:e.rows})),t.download=a.name+".json",t.target="_self",t.click(),m.success({title:"Report downloaded!",msg:a.name?a.name+" has been downloaded!":""})}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DOWNLOADJSON",msg:e.data?JSON.stringify(e.data):e.toString()})})},p.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the report?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete report").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){b(e)},function(){console.log("CANCEL")})},p.success=h,p.getReports=f,p.createOrEditReport=function(e,n){i.show({controller:"CreateOrEditReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{report:n,reports:p.reports.rows,apiName:p.apiName,currentNode:p.currentNode,setting:null,crudPermissions:p.crudPermissions}})},p.importReport=function(e,n,t){if("application/json"===e.file.type){var a=new FileReader;a.onload=function(e){console.log(e.target.result);try{var t=atob(e.target.result.split(",")[1]);t=angular.fromJson(t),d.analyticCustomReport.save({name:t.name,description:t.description,table:t.table,conditions:t.conditions,joins:t.joins,parent:p.currentNode.id}).$promise.then(function(n){p.reports.rows.unshift(n),m.success({title:"Report saved!",msg:n.name?n.name+" has been saved!":""});var e=_.map(t.fields,function(e){return _.extend({},e,{CustomReportId:n.id})});return d.analyticFieldReport.bulkCreate(e).$promise}).then(function(e){m.success({title:"Fields saved!",msg:"Fields has been saved!"})}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETanalyticReport",msg:e.data?JSON.stringify(e.data):e.toString()})})}catch(e){console.error(e),m.error({title:"Decode File Error",msg:e.toString()})}},a.readAsDataURL(e.file)}else m.error({title:"Format Error",msg:"Please use only json files"})},p.deleteReport=b,p.exportSelectedReports=function(){var e=angular.copy(p.selectedReports);return p.selectedReports=[],e},p.deleteSelectedReports=function(e){var n=i.confirm().title("Are you sure want to delete the selected reports?").htmlContent("<b>"+p.selectedReports.length+" selected</b> will be deleted.").ariaLabel("delete Reports").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){p.selectedReports.forEach(function(e){b(e)}),p.selectedReports=[]})},p.deselectReports=function(){p.selectedReports=[]},p.selectAllReports=function(){p.selectedReports=p.reports.rows},p.treeDefaultData=c.rows[0]?angular.fromJson(c.rows[0].tree):[],p.treeCustomData=c.rows[1]?angular.fromJson(c.rows[1].tree):[],p.treeDefaultConfig=S(!1),p.treeCustomConfig=S(!0),p.treeDefaultEvents=T(!1),p.treeCustomEvents=T(!0);var g=!0,v=1;function h(e){p.reports=e||{count:0,rows:[]}}function f(){if(p.query.offset=(p.query.page-1)*p.query.limit,p.apiName)if("admin"===p.currentUser.role||p.userProfileSection.autoAssociation)p.promise=d[p.apiName].get(p.query,h).$promise;else{var a=[];p.promise=d[p.apiName].get(p.query).$promise.then(function(e){return 0<(a=e&&e.rows?e.rows:[]).length?d.userProfileResource.get({sectionId:p.userProfileSection.id,type:"analyticDefaultReport"===p.apiName?"DefaultReports":"CustomReports"}).$promise.then(function(e){var n=e&&e.rows?e.rows:[];if(0<n.length){var t=[];return a.forEach(function(e){_.find(n,["resourceId",e.id])&&t.push(e)}),h({count:t.length,rows:t})}return h(null)}):h(null)})}}function b(e){p.apiName&&d[p.apiName].delete({id:e.id}).$promise.then(function(){_.remove(p.reports.rows,{id:e.id}),p.reports.count-=1,p.reports.rows.length||p.getReports(),m.success({title:"Report deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.analyticreport.delete"}];for(var n=0;n<e.data.errors.length;n++)m.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.analyticreport.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function A(e,n){p.treeDefaultInstance.jstree(!0).deselect_all(),p.treeDefaultInstance.jstree(!0).close_all(),p.currentNode=n.node,p.currentNode.custom=!0,p.currentPath=p.treeCustomInstance.jstree(!0).get_path(p.currentNode).join("/ "),p.apiName="analyticCustomReport",p.query.parent=n.node.id,f()}function E(e,n){p.treeCustomInstance.jstree(!0).deselect_all(),p.treeCustomInstance.jstree(!0).close_all(),p.currentNode=n.node,p.currentNode.custom=!1,p.currentPath=p.treeDefaultInstance.jstree(!0).get_path(p.currentNode).join("/ "),p.apiName="analyticDefaultReport",p.query.parent=n.node.id,f()}function y(e,n){var t,a,i;"rename_node"===e.type&&(a=(t=n).node.id,i="","custom"===t.node.parent?t.node.id.includes("custom_report_")||(i="custom_report_"+t.text):i=t.node.parent+"_"+t.text,p.treeCustomInstance.jstree(!0).set_id(t.node,"custom_report_"+i.toLowerCase()),t.node.a_attr.id=t.node.a_attr.id.replace(a,t.node.id),t.node.li_attr.id=t.node.id);var s=angular.toJson(p.treeCustomInstance.jstree(!0).get_json("#"));d.analyticTreeReport.update({id:2,tree:s}).$promise.then(function(){c.rows[1]&&(c.rows[1].tree=s),m.success({title:"Node Updated",msg:n.node.text?n.node.text+" has been updated!":"Node has been updated!"})}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEanalyticTreeReport",msg:e.data?JSON.stringify(e.data):e.toString()})})}function S(e){return{core:{multiple:!1,animation:!0,error:function(e){console.error("treeCtrl: error from js tree - "+angular.toJson(e))},check_callback:!0,worker:!0},version:1,plugins:e?["contextmenu","dnd","search","state","wholerow"]:["search","state","wholerow"],contextmenu:{items:function(t){var e={};return p.crudPermissions.canEdit&&_.assign(e,{create:{label:n.instant("ANALYTICS.CREATE"),action:function(){t=p.treeCustomInstance.jstree(!0).create_node(t),p.treeCustomInstance.jstree(!0).edit(t)}},rename:{_disabled:"#"===t.parent,label:n.instant("ANALYTICS.RENAME"),action:function(){p.treeCustomInstance.jstree(!0).edit(t)}}}),p.crudPermissions.canDelete&&_.assign(e,{remove:{_disabled:"#"===t.parent,label:n.instant("ANALYTICS.REMOVE"),action:function(){var e=i.confirm().title("Are you sure want to delete the node?").htmlContent("<b>"+(t.text?t.text:"Node")+"</b> and its subnode will be deleted.").ariaLabel("delete node").ok("OK").cancel("CANCEL");i.show(e).then(function(){var e,n=p.treeCustomInstance.jstree(!0).get_parent(t);n=p.treeCustomInstance.jstree(!0).get_node(n),p.treeCustomInstance.jstree(!0).delete_node(t),e=[t.id].concat(t.children_d||[]),d.analyticCustomReport.get({parent:e.join(","),fields:"id,name"}).$promise.then(function(e){e&&e.rows&&e.rows.forEach(function(e){b(e)})}).catch(function(e){m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEreportsByParents",msg:e.data?JSON.stringify(e.data):e.toString()})}),p.treeCustomInstance.jstree(!0).select_node(n)})}}}),e}}}}function T(e){return e?{create_node:y,rename_node:y,move_node:y,delete_node:y,select_node:A}:{select_node:E}}e.$watch("vm.query.filter",function(e,n){g?t(function(){g=!1}):(n||(v=p.query.page),e!==n&&(p.query.page=1),e||(p.query.page=v),p.getReports())}),e.$watch("vm.search",function(e,n){p.treeDefaultInstance&&p.treeDefaultInstance.jstree(!0).search(e),p.treeCustomInstance&&p.treeCustomInstance.jstree(!0).search(e)})}e.$inject=["$scope","$timeout","$document","$mdDialog","$state","$window","$translate","userProfile","userProfileSection","api","treeReports","toasty","Auth"],angular.module("app.analytics").controller("ReportsController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r){var l=this;function d(){l.export={id:l.report.id,name:l.report.name,startDate:new Date(moment().startOf("day")),endDate:new Date(moment().endOf("day")),output:"xlsx",fullPath:r?r+"/"+l.report.name:l.report.name}}function c(){t.hide()}l.errors=[],l.report=angular.copy(n),l.export={},l.runReport=function(n){l.errors=[],l.exportDate=_.assign({},l.export,{startDate:moment(l.export.startDate).format("YYYY-MM-DD HH:mm:ss"),endDate:moment(l.export.endDate).format("YYYY-MM-DD HH:mm:ss")}),i[s].run(l.exportDate).$promise.then(function(e){"web"===l.export.output?t.show({controller:"WebReportDialogController",controllerAs:"vm",templateUrl:"app/main/apps/analytics/views/reports/run/web/dialog.html",parent:angular.element(o.body),targetEvent:n,skipHide:!0,locals:{apiName:s,exportDate:l.exportDate,results:e},resolve:{columns:["apiResolver",function(e){var n={fields:"field,alias",nolimit:!0};return n["analyticCustomReport"===s?"CustomReportId":"DefaultReportId"]=l.report.id,e.resolve("analyticFieldReport@get",n)}]}}):(a.success({title:"Report properly run!",msg:l.report.name?l.report.name+" has been run!":""}),c())}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DESCRIBE",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},l.closeDialog=c,(l.refreshDate=d)()}e.$inject=["$location","$mdDialog","toasty","report","api","apiName","$document","currentPath"],angular.module("app.analytics").controller("RunReportDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o){var r=this;function l(e){r.results=e||{count:0,rows:[]}}r.errors=[],r.columns=a?a.rows:[],r.results=i||{rows:[],count:0},r.query={limit:10,page:1},r.closeDialog=function(){e.hide()},r.getResults=function(){o.offset=(r.query.page-1)*r.query.limit,o.limit=r.query.limit,r.promise=t[s].run(o,l).$promise},r.valueReplacer=function(e,n){moment(n,"YYYY-MM-DDTHH:mm:ssZ",!0).isValid()&&(n=moment(n,"").format("YYYY-MM-DD HH:mm:ss"));return n}}e.$inject=["$mdDialog","toasty","api","columns","results","apiName","exportDate"],angular.module("app.analytics").controller("WebReportDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CALLYSQUARE.EDIT_ODBC",g.odbc=angular.copy(l),g.odbcs=r,g.newOdbc=!1,g.odbc||(g.odbc={},g.title="CALLYSQUARE.NEW_ODBC",g.newOdbc=!0),g.addNewOdbc=function(){g.errors=[],d.squareOdbc.save(g.odbc).$promise.then(function(e){g.odbcs.unshift(e.toJSON()),o.success({title:"Odbc properly created",msg:g.odbc.name?g.odbc.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.squareOdbc.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareOdbc.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveOdbc=function(){g.errors=[],d.squareOdbc.update({id:g.odbc.id},g.odbc).$promise.then(function(e){var n=_.find(g.odbcs,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Odbc properly saved!",msg:g.odbc.name?g.odbc.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.squareOdbc.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareOdbc.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteOdbc=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The odbc will be deleted.").ariaLabel("Delete Odbc").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.squareOdbc.delete({id:g.odbc.id}).$promise.then(function(){_.remove(g.odbcs,{id:g.odbc.id}),o.success({title:"Odbc properly deleted!",msg:(g.odbc.name||"odbc")+" has been deleted!"}),v(g.odbc)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.squareOdbc.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareOdbc.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","odbcs","odbc","api","Auth","license","setting","crudPermissions"],angular.module("app.callysquare").controller("CreateOrEditOdbcDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.odbcs=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="odbcs",f.listOrder="",f.listOrderAsc=null,f.selectedODBC=[],f.query={fields:"createdAt,updatedAt,id,name,dsn,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditOdbcDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/odbcs/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{odbc:e,odbcs:f.odbcs.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.testtestOdbc=function(e,n){return m.squareOdbc.test({id:e.id}).$promise.then(function(){p.success({title:"Square ODBC properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"Square ODBC properly tested",msg:e.data?JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("odbc")+"?").htmlContent("<b>"+(e.name||"odbc")+"</b> will be deleted.").ariaLabel("delete odbc").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getODBC=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.squareOdbc.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ODBC",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditOdbc=function(e,n){i.show({controller:"CreateOrEditOdbcDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/odbcs/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{odbc:n,odbcs:f.odbcs.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteOdbc=y,f.exportSelectedODBC=function(){var e=angular.copy(f.selectedODBC);return f.selectedODBC=[],e},f.deleteSelectedODBC=function(e){var n=i.confirm().title("Are you sure want to delete the selected odbcs?").htmlContent("<b>"+f.selectedODBC.length+" selected</b> will be deleted.").ariaLabel("delete Odbcs").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedODBC.forEach(function(e){y(e)}),f.selectedODBC=[]})},f.deselectODBC=function(){f.selectedODBC=[]},f.selectAllODBC=function(){f.selectedODBC=f.odbcs.rows};var b=!0,A=1;function E(e){f.odbcs=e||{count:0,rows:[]}}function y(e){m.squareOdbc.delete({id:e.id}).$promise.then(function(){_.remove(f.odbcs.rows,{id:e.id}),f.odbcs.count-=1,f.odbcs.rows.length||f.getODBC(),p.success({title:_.startCase("Odbc")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsquareOdbc"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEsquareOdbc",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getODBC())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","odbcs","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.callysquare").controller("OdbcsController",e)}(),function(){"use strict";function e(n,t,a,i,s,e,o,r,l,d){var c=this;function m(e){n.hide(e)}c.errors=[],c.title="CALLYSQUARE.EDIT_PROJECT",c.crudPermissions=d,c.project=angular.copy(o),c.newWindow=!0,c.projects=e,c.newProject=!1,c.openFromEditor=l,c.project||(c.project={name:"",description:""},c.title="CALLYSQUARE.NEW_PROJECT",c.newProject=!0),c.addNewProject=function(){c.errors=[],r.squareProject.save(c.project).$promise.then(function(e){return r.user.addSquareProjects({id:i.getCurrentUser().id,ids:[e.id]}).$promise,e}).then(function(e){c.projects.unshift(e),s.success({title:"Project properly created",msg:c.project.name?c.project.name+" has been created!":""}),m(e),c.openFromEditor&&(c.newWindow?t.open("/callysquare/projects/"+e.id,"_blank"):a.go("app.callysquare.projects.edit",{id:e.id}))}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.save"}];for(var n=0;n<e.data.errors.length;n++)s.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareProject.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.saveProject=function(){c.errors=[],r.squareProject.update({id:c.project.id},c.project).$promise.then(function(e){var n=_.find(c.projects,{id:e.id});n&&_.merge(n,e),s.success({title:"Project properly saved!",msg:c.project.name?c.project.name+" has been saved!":""}),m(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.update"}];for(var n=0;n<e.data.errors.length;n++)s.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareProject.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.deleteProject=function(){c.errors=[];var e=n.confirm().title("Are you sure?").content("The project will be deleted.").ariaLabel("Delete Project").ok("Delete").cancel("Cancel").targetEvent(event);n.show(e).then(function(){r.squareProject.delete({id:c.project.id}).$promise.then(function(){return r.squareProject.getUsers({id:c.project.id}).$promise}).then(function(e){for(var n=[],t=e.rows,a=0;a<t.length;a++)n.push(r.user.removeSquareProjects({id:i.getCurrentUser().id,ids:[c.project.id]}).$promise);return $q.all(n)}).then(function(){_.remove(c.projects,{id:c.project.id}),s.success({title:"Project properly deleted!",msg:c.project.name?c.project.name+" has been deleted!":""}),m(c.project)}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.delete"}]})},function(){})},c.closeDialog=m}e.$inject=["$mdDialog","$window","$state","Auth","toasty","projects","project","api","openFromEditor","crudPermissions"],angular.module("app.callysquare").controller("CreateOrEditSquareProjectDialogController",e)}(),function(){"use strict";function e(n,t,a,e,i,s,o,r,l,d,c,m,u,p,g,v,h,f,b,A,E,y,S,T,I,C,O,w,R,x,N,D){var P=this,L={playback:["file_id"],answer:["timeout"],menu:["file_id","digit","response","retry"],getdigits:["file_id","variable_id","mindigit","maxdigit","retry"],getsecretdigits:["file_id","variable_id","mindigit","maxdigit","hiddendigitsnum","retry"],vswitch:["variable_id"],database:["odbc_id","query"],ext_dial:["trunk_name","phone","timeout"],set:["variable_id"],math:["variable_id"],gotoc:["context","extension","priority"],system:["command"],agi:["command"],gotoif:["condition"],saydigits:["digits"],saynumber:["number"],sayphonetic:["text"],record:["file","timeout"],goal:["goalname"],dial:["sip_id","timeout"],queue:["queue_id","timeout"],callback:["list_id","name","phone","delay"],gotoiftime:["interval_id"],voicemail:["mailbox"],subproject:["project_id"],sendSMS:["sms_account_id","to","sms_text"],sendMail:["account_id","to"],sendFax:["account_id","to","attachment_path"],google_cloud_tts:["apiKey","google_cloud_tts_text_type","text"],tts:["text"],ispeechtts:["text","key","speed"],ispeechasr:["key","timeout"],custom_app:["application"],googleasr:["key","timeout"],awspolly:["aws_access_key_id","aws_secret_access_key","text","aws_text_type"],lumenvoxtts:["text"],sestektts:["text"],lumenvoxasr:["grammar"],sestekasr:["grammar"],tildeasr:["appid","appsecret","uri"],login:["findBy"],pause:["findBy","pause_id"],unpause:["findBy"],logout:["findBy"],dialogflow:["key","text","dialogflow_language"],awslex:["aws_access_key_id","aws_secret_access_key","aws_lex_region","aws_bot_name","text"],sesteknda:["text","ndauth_url","username","password","ndassistant_url"],restapi:["url","method"],mrcpsynth:["text"],mrcprecog:["grammar"],dialogflowV2:["dialogflowV2_project_id","client_email","private_key","dialogflowV2_language","text"]},k={queue:["file_id"],database:["variable_id"],pause:["pause_id"]},M={sendMail:["to","cc","bcc"],voicemail:["mailbox"]};function U(e,n,t,a){return _.map(e,function(e){return{value:e[n],option:e[t],group:a?e[a]:void 0,canSelect:void 0===e.canSelect||e.canSelect}})}function F(){var e=Number(_.find(P.attributes,{name:"sip_id"}).value);if(!_.some(d,{id:e})&&0<e)return t.user.get({id:e,fields:"id,fullname,role"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,d.push(n),P.values.sip_id=U(d,"id","fullname","role")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_USER",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.sip_id=U(d,"id","fullname","role")}function $(){var e=Number(_.find(P.attributes,{name:"list_id"}).value);if(!_.some(E,{id:e})&&0<e)return t.cmList.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,E.push(n),P.values.list_id=U(E,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_LIST",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.list_id=U(E,"id","name")}function q(){var e=Number(_.find(P.attributes,{name:"trunk_id"}).value);if(!_.some(c,{id:e})&&0<e)return t.trunk.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,c.push(n),P.values.trunk_id=U(c,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_TRUNK",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.trunk_id=U(c,"id","name")}function G(){var e=_.find(P.attributes,{name:"trunk_name"}).value;if(!_.some(c,{name:e})&&e)return t.trunk.get({name:e,fields:"id,name"}).$promise.then(function(e){if(0<e.count&&0<e.rows.length){var n=e.rows[0];n.canSelect=!1,c.push(n),P.values.trunk_name=U(c,"name","name")}}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_TRUNK",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.trunk_name=U(c,"name","name")}function H(){var e=Number(_.find(P.attributes,{name:"queue_id"}).value);if(!_.some(m,{id:e})&&0<e)return t.voiceQueue.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,m.push(n),P.values.queue_id=U(m,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_QUEUE",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.queue_id=U(m,"id","name")}function V(){var e=Number(_.find(P.attributes,{name:"file_id"}).value);if(!_.some(u,{id:e})&&0<e)return t.sound.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,u.push(n),P.values.file_id=U(u,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_SOUND",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.file_id=U(u,"id","name")}function B(){var e=Number(_.find(P.attributes,{name:"variable_id"}).value);if(!_.some(p,{id:e})&&0<e)return t.variable.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,p.push(n),P.values.variable_id=U(p,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_VARIABLE",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.variable_id=U(p,"id","name")}function Q(){var e=Number(_.find(P.attributes,{name:"odbc_id"}).value);if(!_.some(g,{id:e})&&0<e)return t.squareOdbc.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,g.push(n),P.values.odbc_id=U(g,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_ODBC",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.odbc_id=U(g,"id","name")}function W(){var e=Number(_.find(P.attributes,{name:"project_id"}).value);if(!_.some(v,{id:e})&&0<e)return t.squareProject.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,v.push(n),P.values.project_id=U(v,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_PROJECT",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.project_id=U(v,"id","name")}function j(){var e=Number(_.find(P.attributes,{name:"context"}).value);if(!_.some(h,{id:e})&&0<e)return t.voiceContext.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,h.push(n),P.values.context=U(h,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_CONTEXT",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.context=U(h,"id","name")}function Y(){var e=Number(_.find(P.attributes,{name:"interval_id"}).value);if(!_.some(f,{id:e})&&0<e)return t.interval.get({id:e,fields:"id,name,IntervalId"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,f.push(n),P.values.interval_id=U(f,"id","name","IntervalId")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_INTERVAL",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.interval_id=U(f,"id","name","IntervalId")}function z(){var e=Number(_.find(P.attributes,{name:"account_id"}).value);if(!_.some(b,{id:e})&&0<e)return t.mailAccount.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,b.push(n),P.values.account_id=U(b,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_MAIL_ACCOUNT",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.account_id=U(b,"id","name")}function J(){var e=Number(_.find(P.attributes,{name:"sms_account_id"}).value);if(!_.some(C,{id:e})&&0<e)return t.smsAccount.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,C.push(n),P.values.sms_account_id=U(C,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_SMS_ACCOUNT",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.sms_account_id=U(C,"id","name")}function K(){var e=Number(_.find(P.attributes,{name:"template_id"}).value);if(!_.some(A,{id:e})&&0<e)return t.template.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,A.push(n),P.values.template_id=U(A,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_TEMPLATE",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.template_id=U(A,"id","name")}function X(){var e=Number(_.find(P.attributes,{name:"pause_id"}).value);if(!_.some(O,{id:e})&&0<e)return t.pause.get({id:e,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,O.push(n),P.values.pause_id=U(O,"id","name")}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_PAUSE",msg:e.data?JSON.stringify(e.data.message):e.toString()})});P.values.pause_id=U(O,"id","name")}P.cellName=y.tagName,P.attributes=_.map(y.attributes,function(e){return{name:e.name,value:e.value,defaultValue:k[P.cellName]&&_.includes(k[P.cellName],e.name),required:L[P.cellName]&&_.includes(L[P.cellName],e.name),help:M[P.cellName]&&_.includes(M[P.cellName],e.name)}}),P.values={authMethod:[{value:"noauth",option:"NO AUTH"},{value:"hmac",option:"HMAC"}],answer:[{value:"yes",option:"Yes"},{value:"no",option:"No"}],ndagenerate_audio:[{value:1,option:"Yes"},{value:0,option:"No"}],ndaactivity_type:[{value:"message",option:"Message"},{value:"conversationUpdate",option:"Conversation Update"},{value:"contactRelationUpdate",option:"Contact Relation Update"},{value:"endOfConversation",option:"End of Conversation"}],hiddendigitspos:[{value:"first",option:"First"},{value:"last",option:"Last"}],recordingFormat:[{value:"wav",option:"Wav"},{value:"gsm",option:"Gsm"}],intkey:[{value:"#",option:"#"},{value:"*",option:"*"}],beep:[{value:"BEEP",option:"Yes"},{value:"NOBEEP",option:"No"}],model:e,ispeech_asr_language:i,ispeech_tts_language:o,languageCode:r,ssmlGender:[{value:"FEMALE",option:"Female"},{value:"MALE",option:"Male"}],google_tts_language:l,google_asr_language:s,google_cloud_tts_text_type:[{value:"text",option:"Text"},{value:"ssml",option:"SSML"}],aws_polly_region:I,aws_polly_voice:T,aws_text_type:[{value:"text",option:"Text"},{value:"ssml",option:"SSML"}],callback_priority:[{option:"Highest",value:4},{option:"High",value:3},{option:"Medium",value:2},{option:"Low",value:1},{option:"Lowest",value:0}],findBy:[{value:"internal",option:"Internal"},{value:"phone",option:"Phone"},{value:"mobile",option:"Mobile"}],dialogflow_language:w,dialogflowV2_language:R,aws_lex_region:x,method:[{value:"GET",option:"GET"},{value:"POST",option:"POST"},{value:"PUT",option:"PUT"},{value:"DELETE",option:"DELETE"}]},P.crudPermissions=D,P.onInit=function(){N.hasRole("admin")?(e={sip_id:U(d,"id","fullname","role"),trunk_name:U(c,"name","name"),trunk_id:U(c,"id","name"),queue_id:U(m,"id","name"),file_id:U(u,"id","name"),variable_id:U(p,"id","name"),odbc_id:U(g,"id","name"),project_id:U(v,"id","name"),context:U(h,"id","name"),interval_id:(t=f,a="id",i="name",s="IntervalId",o=_.filter(t,function(e){return null===e[s]}),r=[],_.forEach(o,function(n){r.push({value:n[a],option:n[i]});var e=_.filter(t,function(e){return e[s]===n.id});_.forEach(e,function(e){r.push({value:e[a],option:" - "+e[i]})})}),r),account_id:U(b,"id","name"),template_id:U(A,"id","name"),list_id:U(E,"id","name"),sms_account_id:U(C,"id","name"),pause_id:U(O,"id","name")},n=_.merge(P.values,e),P.values=n):function(){for(var e=["sip_id","trunk_name","trunk_id","queue_id","file_id","variable_id","odbc_id","project_id","context","interval_id","account_id","template_id","list_id","sms_account_id","pause_id"],n=0;n<P.attributes.length;n++)if(_.includes(e,P.attributes[n].name))switch(P.attributes[n].name){case"sip_id":F();break;case"trunk_name":G();break;case"trunk_id":q();break;case"queue_id":H();break;case"file_id":V();break;case"variable_id":B();break;case"odbc_id":Q();break;case"project_id":W();break;case"context":j();break;case"interval_id":Y();break;case"account_id":z();break;case"template_id":K();break;case"list_id":$();break;case"sms_account_id":J();break;case"pause_id":X()}}();var e,n,t,a,i,s,o,r},P.closeDialog=function(e){e&&S(P.attributes),n.hide()},P.getMap=U}e.$inject=["$mdDialog","api","toasty","ispeechAsrModel","ispeechAsrLanguage","googleAsrLanguage","ispeechTtsLanguage","googleCloudTtslanguageCode","googleTtsLanguage","users","trunks","queues","sounds","variables","databases","projects","contexts","intervals","mailAccounts","templates","lists","cell","saveCallback","awsPollyVoice","awsPollyRegion","smsAccounts","pauses","dialogFlowLanguage","dialogFlowV2Language","awsLexRegion","Auth","crudPermissions"],angular.module("app.callysquare").controller("MxGraphDialogController",e)}(),function(){"use strict";angular.module("app.callysquare").directive("stringToNumber",function(){return{require:"ngModel",link:function(e,n,t,a){a.$parsers.push(function(e){return""+e}),a.$formatters.push(function(e){return parseFloat(e)})}}})}(),function(){"use strict";angular.module("app.callysquare").factory("ispeechAsrModel",function(){return[{value:"0",option:"Default"},{value:"date",option:"Date"},{value:"usmoney",option:"US Money"},{value:"numbersto9",option:"Numbers to 9"},{value:"numbersto99",option:"Numbers to 99"},{value:"numbersto999",option:"Numbers to 999"},{value:"time",option:"Time"},{value:"phonenumber",option:"Phone number"},{value:"streets",option:"Streets"},{value:"citystate",option:"US City/States"}]}).factory("ispeechAsrLanguage",function(){return[{value:"en-US",option:"English (US)"},{value:"en-CA",option:"English (Canada)"},{value:"en-GB",option:"English (UK)"},{value:"en-AU",option:"English (Australia)"},{value:"es-ES",option:"Spanish (Spain)"},{value:"es-MX",option:"Spanish (Mexico)"},{value:"it-IT",option:"Italian (Italy) / Finnish (Finland)"},{value:"fr-FR",option:"German (Germany)"},{value:"fr-CA",option:"French (Canada)"},{value:"pl-PL",option:"Polish (Poland)"},{value:"pt-PT",option:"Portuguese (Portugal)"},{value:"ca-ES",option:"Catalan (Catalan)"},{value:"zh-TW",option:"Chinese (Taiwan)"},{value:"da-DK",option:"Danish (Denmark)"},{value:"ja-JP",option:"Japanese (Japan)"},{value:"ko-KR",option:"Korean (Korea)"},{value:"nl-NL",option:"Dutch (Netherlands)"},{value:"nb-NO",option:"Norwegian (Norway)"},{value:"pt-BR",option:"Portuguese (Brazil)"},{value:"ru-RU",option:"Russian (Russia)"},{value:"sv-SE",option:"Swedish (Sweden)"},{value:"zh-CN",option:"Chinese (China)"},{value:"zh-HK",option:"Chinese (Hong Kong)"}]}).factory("ispeechTtsLanguage",function(){return[{value:"usenglishfemale",option:"US English Female"},{value:"usenglishmale",option:"US English Male"},{value:"ukenglishfemale",option:"UK English Female"},{value:"ukenglishmale",option:"UK English Male"},{value:"auenglishfemale",option:"Australian English"},{value:"usspanishfemale",option:"US Spanish Female"},{value:"usspanishmale",option:"US Spanish Male"},{value:"chchinesefemale",option:"Chinese Female"},{value:"chchinesemale",option:"Chinese Male"},{value:"hkchinesefemale",option:"Hong Kong Cantonese Female"},{value:"twchinesefemale",option:"Taiwan Chinese Female"},{value:"jpjapanesefemale",option:"Japanese Female"},{value:"jpjapanesemale",option:"Japanese Male"},{value:"krkoreanfemale",option:"Korean Female"},{value:"krkoreanmale",option:"Korean Male"},{value:"caenglishfemale",option:"Canadian English Female"},{value:"huhungarianfemale",option:"Hungarian Female"},{value:"brportuguesefemale",option:"Brazilian Portuguese Female"},{value:"eurportuguesefemale",option:"European Portuguese Female"},{value:"eurportuguesemale",option:"European Portuguese Male"},{value:"eurspanishfemale",option:"European Spanish Female"},{value:"eurspanishmale",option:"European Spanish Male"},{value:"eurcatalanfemale",option:"European Catalan Female"},{value:"eurczechfemale",option:"European Czech Female"},{value:"eurdanishfemale",option:"European Danish Female"},{value:"eurfinnishfemale",option:"European Finnish Female"},{value:"eurfrenchfemale",option:"European French Female"},{value:"eurfrenchmale",option:"European French Male"},{value:"eurnorwegianfemale",option:"European Norwegian Female"},{value:"eurdutchfemale",option:"European Dutch Female"},{value:"eurpolishfemale",option:"European Polish Female"},{value:"euritalianfemale",option:"European Italian Female"},{value:"euritalianmale",option:"European Italian Male"},{value:"eurturkishfemale",option:"European Turkish Female"},{value:"eurturkishmale",option:"European Turkish Male"},{value:"eurgermanfemale",option:"European German Female"},{value:"eurgermanmale",option:"European German Male"},{value:"rurussianfemale",option:"Russian Female"},{value:"rurussianmale",option:"Russian Male"},{value:"swswedishfemale",option:"Swedish Female"},{value:"cafrenchfemale",option:"Canadian French Female"},{value:"cafrenchmale",option:"Canadian French Male"}]}).factory("googleCloudTtslanguageCode",function(){return[{value:"af-ZA",option:"Afrikaans (South Africa)"},{value:"ar-XA",option:"Arabic"},{value:"bn-IN",option:"Bengali (India)"},{value:"bg-BG",option:"Bulgarian (Bulgaria)"},{value:"ca-ES",option:"Catalan (Spain)"},{value:"yue-HK",option:"Chinese (Hong Kong)"},{value:"cs-CZ",option:"Czech (Czech Republic)"},{value:"da-DK",option:"Danish (Denmark)"},{value:"nl-BE",option:"Dutch (Belgium)"},{value:"nl-NL",option:"Dutch (Netherlands)"},{value:"en-AU",option:"English (Australian)"},{value:"en-IN",option:"English (India)"},{value:"en-GB",option:"English (UK)"},{value:"en-US",option:"English (US)"},{value:"fi-FI",option:"Finnish (Finland)"},{value:"fil-PH",option:"Filipino (Philippines)"},{value:"fr-CA",option:"French (Canada)"},{value:"fr-FR",option:"French (France)"},{value:"de-DE",option:"German (Germany)"},{value:"el-GR",option:"Greek (Greece)"},{value:"gu-IN",option:"Gujarati (India)"},{value:"hi-IN",option:"Hindi (India)"},{value:"hu-HU",option:"Hungarian (Hungary)"},{value:"is-IS",option:"Icelandic (Iceland)"},{value:"id-ID",option:"Indonesian (Indonesia)"},{value:"it-IT",option:"Italian (Italy)"},{value:"ja-JP",option:"Japanese (Japan)"},{value:"kn-IN",option:"Kannada (India)"},{value:"ko-KR",option:"Korean (South Korea)"},{value:"lv-LV",option:"Latvian (Latvia)"},{value:"ms-MY",option:"Malay (Malaysia)"},{value:"ml-IN",option:"Malayalam (India)"},{value:"cmn-CN",option:"Mandarin Chinese"},{value:"nb-NO",option:"Norwegian (Norway)"},{value:"pl-PL",option:"Polish (Poland)"},{value:"pt-BR",option:"Portuguese (Brazil)"},{value:"pt-PT",option:"Portuguese (Portugal)"},{value:"ro-RO",option:"Romanian (Romania)"},{value:"ru-RU",option:"Russian (Russia)"},{value:"sr-RS",option:"Serbian (Cyrillic)"},{value:"sk-SK",option:"Slovak (Slovakia)"},{value:"es-ES",option:"Spanish (Spain)"},{value:"es-US",option:"Spanish (US)"},{value:"sv-SE",option:"Swedish (Sweden)"},{value:"ta-IN",option:"Tamil (India)"},{value:"te-IN",option:"Telugu (India)\t"},{value:"th-TH",option:"Thai (Thailand)"},{value:"tr-TR",option:"Turkish (Turkey)"},{value:"uk-UA",option:"Ukrainian (Ukraine)"},{value:"vi-VN",option:"Vietnamese (Vietnam)"}]}).factory("googleTtsLanguage",function(){return[{value:"af",option:"Afrikaans"},{value:"sq",option:"Albanian"},{value:"am",option:"Amharic"},{value:"ar",option:"Arabic"},{value:"hy",option:"Armenian"},{value:"az",option:"Azerbaijani"},{value:"eu",option:"Basque"},{value:"be",option:"Belarusian"},{value:"bn",option:"Bengali"},{value:"bh",option:"Bihari"},{value:"bs",option:"Bosnian"},{value:"br",option:"Breton"},{value:"bg",option:"Bulgarian"},{value:"km",option:"Cambodian"},{value:"ca",option:"Catalan"},{value:"zh-CN",option:"Chinese (Simplified)"},{value:"zh-TW",option:"Chinese (Traditional)"},{value:"co",option:"Corsican"},{value:"hr",option:"Croatian"},{value:"cs",option:"Czech"},{value:"da",option:"Danish"},{value:"nl",option:"Dutch"},{value:"en",option:"English"},{value:"eo",option:"Esperanto"},{value:"et",option:"Estonian"},{value:"fo",option:"Faroese"},{value:"tl",option:"Filipino"},{value:"fi",option:"Finnish"},{value:"fr",option:"French"},{value:"fy",option:"Frisian"},{value:"gl",option:"Galician"},{value:"ka",option:"Georgian"},{value:"de",option:"German"},{value:"el",option:"Greek"},{value:"gn",option:"Guarani"},{value:"gu",option:"Gujarati"},{value:"xx-hacker",option:"Hacker"},{value:"ha",option:"Hausa"},{value:"iw",option:"Hebrew"},{value:"hi",option:"Hindi"},{value:"hu",option:"Hungarian"},{value:"is",option:"Icelandic"},{value:"id",option:"Indonesian"},{value:"ia",option:"Interlingua"},{value:"ga",option:"Irish"},{value:"it",option:"Italian"},{value:"jw",option:"Javanese"},{value:"ja",option:"Japanese"},{value:"kn",option:"Kannada"},{value:"kk",option:"Kazakh"},{value:"rw",option:"Kinyarwanda"},{value:"rn",option:"Kirundi"},{value:"xx-klingon",option:"Klingon"},{value:"ku",option:"Kurdish"},{value:"ko",option:"Korean"},{value:"ky",option:"Kyrgyz"},{value:"lo",option:"Laothian"},{value:"la",option:"Latin"},{value:"lv",option:"Latvian"},{value:"ln",option:"Lingala"},{value:"lt",option:"Lithuanian"},{value:"mk",option:"Macedonian"},{value:"mg",option:"Malagasy"},{value:"ml",option:"Malayalam"},{value:"mt",option:"Maltese"},{value:"mi",option:"Maori"},{value:"mr",option:"Marathi"},{value:"mo",option:"Moldavian"},{value:"mn",option:"Mongolian"},{value:"sr-ME",option:"Montenegrin"},{value:"ne",option:"Nepali"},{value:"no",option:"Norwegian"},{value:"nn",option:"Norwegian (Nynorsk)"},{value:"oc",option:"Occitan"},{value:"or",option:"Oriya"},{value:"om",option:"Oromo"},{value:"ps",option:"Pashto"},{value:"fa",option:"Persian"},{value:"xx-pirate",option:"Pirate"},{value:"pl",option:"Polish"},{value:"pt-BR",option:"Portuguese (Brazil)"},{value:"pt-PT",option:"Portuguese (Portugal)"},{value:"pa",option:"Punjabi"},{value:"qu",option:"Quechua"},{value:"ro",option:"Romanian"},{value:"rm",option:"Romansh"},{value:"ru",option:"Russian"},{value:"gd",option:"Scots Gaelic"},{value:"sr",option:"Serbian"},{value:"sh",option:"Serbo-Croatian"},{value:"st",option:"Sesotho"},{value:"sn",option:"Shona"},{value:"sd",option:"Sindhi"},{value:"si",option:"Sinhalese"},{value:"sk",option:"Slovak"},{value:"sl",option:"Slovenian"},{value:"so",option:"Somali"},{value:"es",option:"Spanish"},{value:"su",option:"Sundanese"},{value:"sw",option:"Swahili"},{value:"sv",option:"Swedish"},{value:"tg",option:"Tajik"},{value:"ta",option:"Tamil"},{value:"tt",option:"Tatar"},{value:"te",option:"Telugu"},{value:"th",option:"Thai"},{value:"ti",option:"Tigrinya"},{value:"to",option:"Tonga"},{value:"tr",option:"Turkish"},{value:"tk",option:"Turkmen"},{value:"tw",option:"Twi"},{value:"ug",option:"Uighur"},{value:"uk",option:"Ukrainian"},{value:"ur",option:"Urdu"},{value:"uz",option:"Uzbek"},{value:"vi",option:"Vietnamese"},{value:"cy",option:"Welsh"},{value:"xh",option:"Xhosa"},{value:"yi",option:"Yiddish"},{value:"yo",option:"Yoruba"},{value:"zu",option:"Zulu"}]}).factory("googleAsrLanguage",function(){return[{option:"Afrikaans (South Africa)",value:"af-ZA"},{option:"Albanian (Albania)",value:"sq-AL"},{option:"Amharic (Ethiopia)",value:"am-ET"},{option:"Arabic (Algeria)",value:"ar-DZ"},{option:"Arabic (Bahrain)",value:"ar-BH"},{option:"Arabic (Egypt)",value:"ar-EG"},{option:"Arabic (Iraq)",value:"ar-IQ"},{option:"Arabic (Israel)",value:"ar-IL"},{option:"Arabic (Jordan)",value:"ar-JO"},{option:"Arabic (Kuwait)",value:"ar-KW"},{option:"Arabic (Lebanon)",value:"ar-LB"},{option:"Arabic (Morocco)",value:"ar-MA"},{option:"Arabic (Oman)",value:"ar-OM"},{option:"Arabic (Qatar)",value:"ar-QA"},{option:"Arabic (Saudi Arabia)",value:"ar-SA"},{option:"Arabic (State of Palestine)",value:"ar-PS"},{option:"Arabic (Tunisia)",value:"ar-TN"},{option:"Arabic (United Arab Emirates)",value:"ar-AE"},{option:"Arabic (Yemen)",value:"ar-YE"},{option:"Armenian (Armenia)",value:"hy-AM"},{option:"Azerbaijani (Azerbaijan)",value:"az-AZ"},{option:"Basque (Spain)",value:"eu-ES"},{option:"Bengali (Bangladesh)",value:"bn-BD"},{option:"Bengali (India)",value:"bn-IN"},{option:"Bosnian (Bosnia and Herzegovina)",value:"bs-BA"},{option:"Bulgarian (Bulgaria)",value:"bg-BG"},{option:"Burmese (Myanmar)",value:"my-MM"},{option:"Catalan (Spain)",value:"ca-ES"},{option:"Chinese, Cantonese (Traditional Hong Kong)",value:"yue-Hant-HK"},{option:"Chinese, Mandarin (Simplified, China)",value:"cmn-Hans-CN"},{option:"Croatian (Croatia)",value:"hr-HR"},{option:"Czech (Czech Republic)",value:"cs-CZ"},{option:"Danish (Denmark)",value:"da-DK"},{option:"Dutch (Belgium)",value:"nl-BE"},{option:"Dutch (Netherlands)",value:"nl-NL"},{option:"English (Australia)",value:"en-AU"},{option:"English (Canada)",value:"en-CA"},{option:"English (Ghana)",value:"en-GH"},{option:"English (Hong Kong)",value:"en-HK"},{option:"English (India)",value:"en-IN"},{option:"English (Ireland)",value:"en-IE"},{option:"English (Kenya)",value:"en-KE"},{option:"English (New Zealand)",value:"en-NZ"},{option:"English (Nigeria)",value:"en-NG"},{option:"English (Pakistan)",value:"en-PK"},{option:"English (Philippines)",value:"en-PH"},{option:"English (Singapore)",value:"en-SG"},{option:"English (South Africa)",value:"en-ZA"},{option:"English (Tanzania)",value:"en-TZ"},{option:"English (United Kingdom)",value:"en-GB"},{option:"English (United States)",value:"en-US"},{option:"Estonian (Estonia)",value:"et-EE"},{option:"Filipino (Philippines)",value:"fil-PH"},{option:"Finnish (Finland)",value:"fi-FI"},{option:"French (Belgium)",value:"fr-BE"},{option:"French (Canada)",value:"fr-CA"},{option:"French (France)",value:"fr-FR"},{option:"French (Switzerland)",value:"fr-CH"},{option:"Galician (Spain)",value:"gl-ES"},{option:"Georgian (Georgia)",value:"ka-GE"},{option:"German (Austria)",value:"de-AT"},{option:"German (Germany)",value:"de-DE"},{option:"German (Switzerland)",value:"de-CH"},{option:"Greek (Greece)",value:"el-GR"},{option:"Gujarati (India)",value:"gu-IN"},{option:"Hebrew (Israel)",value:"iw-IL"},{option:"Hindi (India)",value:"hi-IN"},{option:"Hungarian (Hungary)",value:"hu-HU"},{option:"Icelandic (Iceland)",value:"is-IS"},{option:"Indonesian (Indonesia)",value:"id-ID"},{option:"Italian (Italy)",value:"it-IT"},{option:"Italian (Switzerland)",value:"it-CH"},{option:"Japanese (Japan)",value:"ja-JP"},{option:"Javanese (Indonesia)",value:"jv-ID"},{option:"Kannada (India)",value:"kn-IN"},{option:"Kazakh (Kazakhstan)",value:"kk-KZ"},{option:"Khmer (Cambodia)",value:"km-KH"},{option:"Korean (South Korea)",value:"ko-KR"},{option:"Lao (Laos)",value:"lo-LA"},{option:"Latvian (Latvia)",value:"lv-LV"},{option:"Lithuanian (Lithuania)",value:"lt-LT"},{option:"Macedonian (North Macedonia)",value:"mk-MK"},{option:"Malay (Malaysia)",value:"ms-MY"},{option:"Malayalam (India)",value:"ml-IN"},{option:"Marathi (India)",value:"mr-IN"},{option:"Mongolian (Mongolia)",value:"mn-MN"},{option:"Nepali (Nepal)",value:"ne-NP"},{option:"Norwegian Bokmål (Norway)",value:"no-NO"},{option:"Persian (Iran)",value:"fa-IR"},{option:"Polish (Poland)",value:"pl-PL"},{option:"Portuguese (Brazil)",value:"pt-BR"},{option:"Portuguese (Portugal)",value:"pt-PT"},{option:"Punjabi (Gurmukhi India)",value:"pa-Guru-IN"},{option:"Romanian (Romania)",value:"ro-RO"},{option:"Russian (Russia)",value:"ru-RU"},{option:"Serbian (Serbia)",value:"sr-RS"},{option:"Sinhala (Sri Lanka)",value:"si-LK"},{option:"Slovak (Slovakia)",value:"sk-SK"},{option:"Slovenian (Slovenia)",value:"sl-SI"},{option:"Spanish (Argentina)",value:"es-AR"},{option:"Spanish (Bolivia)",value:"es-BO"},{option:"Spanish (Chile)",value:"es-CL"},{option:"Spanish (Colombia)",value:"es-CO"},{option:"Spanish (Costa Rica)",value:"es-CR"},{option:"Spanish (Dominican Republic)",value:"es-DO"},{option:"Spanish (Ecuador)",value:"es-EC"},{option:"Spanish (El Salvador)",value:"es-SV"},{option:"Spanish (Guatemala)",value:"es-GT"},{option:"Spanish (Honduras)",value:"es-HN"},{option:"Spanish (Mexico)",value:"es-MX"},{option:"Spanish (Nicaragua)",value:"es-NI"},{option:"Spanish (Panama)",value:"es-PA"},{option:"Spanish (Paraguay)",value:"es-PY"},{option:"Spanish (Peru)",value:"es-PE"},{option:"Spanish (Puerto Rico)",value:"es-PR"},{option:"Spanish (Spain)",value:"es-ES"},{option:"Spanish (United States)",value:"es-US"},{option:"Spanish (Uruguay)",value:"es-UY"},{option:"Spanish (Venezuela)",value:"es-VE"},{option:"Sundanese (Indonesia)",value:"su-ID"},{option:"Swahili (Kenya)",value:"sw-KE"},{option:"Swahili (Tanzania)",value:"sw-TZ"},{option:"Swedish (Sweden)",value:"sv-SE"},{option:"Tamil (India)",value:"ta-IN"},{option:"Tamil (Malaysia)",value:"ta-MY"},{option:"Tamil (Singapore)",value:"ta-SG"},{option:"Tamil (Sri Lanka)",value:"ta-LK"},{option:"Telugu (India)",value:"te-IN"},{option:"Thai (Thailand)",value:"th-TH"},{option:"Turkish (Turkey)",value:"tr-TR"},{option:"Ukrainian (Ukraine)",value:"uk-UA"},{option:"Urdu (India)",value:"ur-IN"},{option:"Urdu (Pakistan)",value:"ur-PK"},{option:"Uzbek (Uzbekistan)",value:"uz-UZ"},{option:"Vietnamese (Vietnam)",value:"vi-VN"},{option:"Zulu (South Africa)",value:"zu-ZA"}]}).factory("awsPollyVoice",function(){return[{value:"Amy",option:"Amy (English, British, Female)"},{value:"Astrid",option:"Astrid (Swedish, Female)"},{value:"Brian",option:"Brian (English, British, Male)"},{value:"Carla",option:"Carla (Italian, Female)"},{value:"Carmen",option:"Carmen (Romanian, Female)"},{value:"Celine",option:"Celine (French, Female)"},{value:"Chantal",option:"Chantal (French, Canadian, Female)"},{value:"Conchita",option:"Conchita (Spanish, Castilian, Female)"},{value:"Cristiano",option:"Cristiano (Portuguese, Male)"},{value:"Dora",option:"Dora (Icelandic, Female)"},{value:"Emma",option:"Emma (English, British, Female)"},{value:"Enrique",option:"Enrique (Spanish, Castilian, Male)"},{value:"Ewa",option:"Ewa (Polish, Female)"},{value:"Filiz",option:"Filiz (Turkish, Female)"},{value:"Geraint",option:"Geraint (English, Welsh, Male)"},{value:"Giorgio",option:"Giorgio (Italian, Male)"},{value:"Gwineth",option:"Gwineth (Welsh, Female)"},{value:"Hans",option:"Hans (German, Male)"},{value:"Ines",option:"Ines (Portuguese, Female)"},{value:"Ivy",option:"Ivy (English, US, Female)"},{value:"Jacek",option:"Jacek (Polish, Male)"},{value:"Jan",option:"Jan (Polish, Male)"},{value:"Joanna",option:"Joanna (English, US, Female)"},{value:"Joey",option:"Joey (English, US, Male)"},{value:"Justin",option:"Justin (English, US, Male)"},{value:"Karl",option:"Karl (Icelandic, Male)"},{value:"Kendra",option:"Kendra (English, US, Female)"},{value:"Kimberly",option:"Kimberly (English, US, Female)"},{value:"Liv",option:"Liv (Norwegian, Female)"},{value:"Lotte",option:"Lotte (Dutch, Female)"},{value:"Mads",option:"Mads (Danish, Male)"},{value:"Maja",option:"Maja (Polish, Female)"},{value:"Marlene",option:"Marlene (German, Female)"},{value:"Mathieu",option:"Mathieu (French, Male)"},{value:"Maxim",option:"Maxim (Russian, Male)"},{value:"Miguel",option:"Miguel (Spanish, US, Male)"},{value:"Mizuki",option:"Mizuki (Japanese, Female)"},{value:"Naja",option:"Naja (Danish, Female)"},{value:"Nicole",option:"Nicole (English, Austrialian, Female)"},{value:"Penelope",option:"Penelope (Spanish, US, Female)"},{value:"Raveena",option:"Raveena (English, Indian, Female)"},{value:"Ricardo",option:"Ricardo (Portuguese, Brazilian, Male)"},{value:"Ruben",option:"Ruben (Dutch, Male)"},{value:"Russell",option:"Russell (English, Austrialian, Male)"},{value:"Salli",option:"Salli (English, US, Female)"},{value:"Tatyana",option:"Tatyana (Russian, Female)"},{value:"Vitoria",option:"Vitoria (Portuguese, Brazilian, Female)"}]}).factory("awsPollyRegion",function(){return[{value:"us-east-1",option:"US East (N. Virginia)"},{value:"us-east-2",option:"US East (Ohio)"},{value:"us-west-1",option:"US West (N. California)"},{value:"us-west-2",option:"US West (Oregon)"},{value:"ca-central-1",option:"Canada (Central)"},{value:"eu-west-1",option:"EU (Ireland)"},{value:"eu-central-1",option:"EU (Frankfurt)"},{value:"eu-west-2",option:"EU (London)"},{value:"eu-west-3",option:"EU (Paris)"},{value:"ap-southeast-1",option:"Asia Pacific (Singapore)"},{value:"ap-southeast-2",option:"Asia Pacific (Sydney)"},{value:"ap-northeast-2",option:"Asia Pacific (Seoul)"},{value:"ap-northeast-1",option:"Asia Pacific (Tokyo)"},{value:"ap-south-1",option:"Asia Pacific (Mumbai)"},{value:"sa-east-1",option:"South America (São Paulo)"}]}).factory("awsLexRegion",function(){return[{value:"us-east-1",option:"US East (N. Virginia)"},{value:"us-west-2",option:"US West (Oregon)"},{value:"eu-west-1",option:"EU (Ireland)"},{value:"ap-southeast-2",option:"Asia Pacific (Sydney)"}]}).factory("dialogFlowLanguage",function(){return[{value:"da",option:"Danish"},{value:"en",option:"English"},{value:"de",option:"German"},{value:"it",option:"Italian"},{value:"es",option:"Spanish"},{value:"fr",option:"French"},{value:"id",option:"Indonesian"},{value:"ja",option:"Japanese"},{value:"ko",option:"Korean (South Korea)"},{value:"nl",option:"Dutch"},{value:"no",option:"Norwegian"},{value:"pt",option:"Portuguese (European)"},{value:"pt-br",option:"Portuguese (Nrazilian)"},{value:"ru",option:"Russian"},{value:"sv",option:"Swedish"},{value:"th",option:"Thai"},{value:"uk",option:"Ukrainian"},{value:"zh-CN",option:"Chinese (Simplified)"},{value:"zh-HK",option:"Chinese (Hong Kong)"},{value:"zh-TW",option:"Chinese (Traditional)"}]}).factory("dialogFlowV2Language",function(){return[{value:"zh-HK",option:"Chinese (Cantonese)"},{value:"zh-CN",option:"Chinese (Simplified)"},{value:"zh-TW",option:"Chinese (Traditional)"},{value:"da",option:"Danish"},{value:"nl",option:"Dutch"},{value:"en",option:"English"},{value:"en-AU",option:"English (Australia)"},{value:"en-CA",option:"English (Canada)"},{value:"en-GB",option:"English (Great Britain)"},{value:"en-IN",option:"English (India)"},{value:"en-US",option:"English (US)"},{value:"fr",option:"French"},{value:"fr-CA",option:"French (Canada)"},{value:"fr-FR",option:"France (France)"},{value:"de",option:"German"},{value:"hi",option:"Hindi"},{value:"id",option:"Indonesian"},{value:"it",option:"Italian"},{value:"ja",option:"Japanese"},{value:"ko",option:"Korean"},{value:"no",option:"Norwegian"},{value:"pl",option:"Polish"},{value:"pt-BR",option:"Portuguese (Brazil)"},{value:"pt-PT",option:"Portuguese (Portugal)"},{value:"ru",option:"Russian"},{value:"es",option:"Spanish"},{value:"es-419",option:"Spanish (Latin America)"},{value:"es-ES",option:"Spanish (Spain)"},{value:"sw",option:"Swedish"},{value:"th",option:"Thai"},{value:"tr",option:"Turkish"},{value:"uk",option:"Ukrainian"}]})}(),function(){"use strict";function e(n,e,t,a){var i=this;i.project={preproduction:t},i.closeDialog=function(e){e?(a(i.project.preproduction),n.hide(i.project.preproduction)):n.hide()}}e.$inject=["$mdDialog","toasty","currentXML","saveCallback"],angular.module("app.callysquare").controller("MxGraphEditXMLController",e)}(),function(){"use strict";function e(n,t){var a=this;function i(e){e?(t(e),n.hide(e)):n.hide()}a.errors=[],a.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:5242880,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},a.ngFlow={flow:{}},a.dropping=!1,a.closeDialog=i,a.fileAdded=function(e){a.errors=[];_.includes(["xml"],e.getExtension())||a.errors.push({message:"The extension "+e.getExtension()+" is not supported!"});5242880<e.size&&a.errors.push({message:"The file is too big. The max allowed size is 5MB"});if(!a.errors.length){var n=new FileReader;n.onload=function(e){i(e.target.result)},n.readAsText(e.file)}}}e.$inject=["$mdDialog","saveCallback"],angular.module("app.callysquare").controller("MxGraphImportXMLController",e)}(),function(){"use strict";function e(n,t,e,a){var i=this;i.project=_.clone(e),i.closeDialog=function(){n.hide()},i.save=function(){i.errors=[],a.squareProject.update({id:i.project.id},{notes:i.project.notes,description:i.project.description}).$promise.then(function(e){t.success({title:"Project updated!",msg:i.project.name?i.project.name+" has been updated!":""}),n.hide(e)}).catch(function(e){console.error(e),i.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.update"}]})}}e.$inject=["$mdDialog","toasty","project","api"],angular.module("app.callysquare").controller("MxGraphUpdateInfoController",e)}(),function(){"use strict";function e(n,e,t,a,i){var s=this;s.projects=t,s.id="",s.newWindow=!0,s.closeDialog=function(e){s.errors=[],e?(n.hide(),s.newWindow?a.open("/callysquare/projects/"+s.id,"_blank"):i.go("app.callysquare.projects.edit",{id:s.id})):n.hide()}}e.$inject=["$mdDialog","toasty","projects","$window","$state"],angular.module("app.callysquare").controller("MxGraphOpenProjectController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o){var r=this;function l(){return a.squareProject.getUsers({id:r.project.id,fields:"id,name,fullname,internal",nolimit:!0,role:"user"}).$promise.then(function(e){return r.selectedItems=e.rows?_.map(e.rows,function(e){return e}):[],r.dualMultiselectOptions.selectedItems=r.selectedItems,a.user.get({fields:"id,fullname,name,internal",role:"user",nolimit:!0}).$promise}).then(function(e){r.items=e.rows?_.map(e.rows,function(e){return e}):[],r.dualMultiselectOptions.items=_.differenceBy(r.items,r.selectedItems,"id")}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETUSERS",msg:e.status?JSON.stringify(e.data):e.toString()})})}r.project=n,r.penalty=0,r.items=[],r.selectedItems=[],r.closeDialog=function(){e.hide()},r.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("CALLYSQUARE.ALL_USERS"),labelSelected:s.instant("CALLYSQUARE.SELECTED_USERS"),transferCallback:function(e,n){a.squareProject[n?"removeUsers":"addUsers"]({id:r.project.id,ids:_.map(e,"id"),penalty:r.penalty||0}).$promise.then(function(){t.success({title:"Project properly "+(n?"removed":"added"),msg:"Project has been "+(n?"removed":"added")+"!"}),n||l()}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:squareProjects.ADDUSERS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},l()}e.$inject=["$mdDialog","toasty","api","project","projects","$translate","Auth"],angular.module("app.callysquare").controller("ProjectspermissionaddController",e)}(),function(){"use strict";function e(n,t,e,a,i,s,o){var r=this;r.project=angular.copy(e),r.project.name+="_new",r.project.preproduction=a,r.newWindow=!0,r.closeDialog=function(){n.hide()},r.save=function(){delete r.project.id,i.squareProject.save(r.project).$promise.then(function(e){t.success({title:"Project properly created",msg:r.project.name?r.project.name+" has been created!":""}),n.hide(e),r.newWindow?s.open("/callysquare/projects/"+e.id,"_blank"):o.go("app.callysquare.projects.edit",{id:e.id})}).catch(function(e){console.error(e),r.errors=e.data.errors||[{message:e.toString(),type:"api.squareProject.save"}]})}}e.$inject=["$mdDialog","toasty","project","currentXML","api","$window","$state"],angular.module("app.callysquare").controller("MxGraphSaveProjectAsController",e)}(),function(){"use strict";function e(e,t,a,i,s,o,r,n,l,d,c,m,u,p,g,v,h,f,b,A,E,y,S,T){var I=this;I.currentUser=T.getCurrentUser(),I.project=n||{},I.userProfileSection=S&&1==S.count?S.rows[0]:null,I.crudPermissions=T.parseCrudPermissions(I.userProfileSection?I.userProfileSection.crudPermissions:null),I.onInit=function(){new EditorUi(I,new Editor,document.getElementById("geEditor")).openString(I.project.preproduction,I.project.name,I.project)},I.saveOrPublishProject=function(e,n){var t={preproduction:e};n&&(t.production=e);r.squareProject.update({id:I.project.id},t).$promise.then(function(e){o.success({title:"Project "+(n?"published":"saved")+"!",msg:I.project.name?I.project.name+" has been "+(n?"published":"saved")+"!":""}),I.project.preproduction=e.preproduction}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsquareProject",msg:e.data?JSON.stringify(e.data):e.toString()})})},I.openDialog=function(e,n){a.show({controller:"MxGraphDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/dialog/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{users:l.rows||[],trunks:d.rows||[],queues:c.rows||[],sounds:m.rows||[],variables:u.rows||[],databases:p.rows||[],contexts:g.rows||[],projects:v.rows||[],intervals:h.rows||[],mailAccounts:f.rows||[],smsAccounts:E.rows||[],pauses:y.rows||[],templates:b.rows||[],lists:A.rows||[],cell:e,saveCallback:n,crudPermissions:I.crudPermissions}})},I.newProject=function(e){a.show({controller:"CreateOrEditSquareProjectDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/create/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{project:e,projects:v.rows,openFromEditor:!0,license:null,setting:null,crudPermissions:I.crudPermissions}})},I.openProject=function(){a.show({controller:"MxGraphOpenProjectController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/open/open.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{projects:v.rows||[]}})},I.saveProjectAs=function(e){a.show({controller:"MxGraphSaveProjectAsController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/saveAs/saveAs.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{project:I.project,currentXML:e}}).then(function(e){e&&v.rows.push(e)})},I.newVariable=function(n){return i(function(a,n){return r.userProfileSection.get({userProfileId:I.currentUser.userProfileId,sectionId:1012}).$promise.then(function(e){var n=e.rows?e.rows[0]:null,t=T.parseCrudPermissions(n?n.crudPermissions:null);a(t)}).catch(function(e){n(e)})}).then(function(e){e.canEdit?a.show({controller:"CreateOrEditVariableDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/variables/create/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{variable:n,variables:u.rows,license:null,setting:null,crudPermissions:e}}):o.info({title:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_CREATION_MESSAGE")})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"API:NEW_VARIABLE",msg:e.data?JSON.stringify(e.data):e.toString()})})},I.updateInfo=function(e){a.show({controller:"MxGraphUpdateInfoController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/info/info.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{project:I.project}}).then(function(e){e&&_.merge(I.project,e)})},I.editXML=function(e,n){a.show({controller:"MxGraphEditXMLController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/edit/edit.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{currentXML:e,saveCallback:n}}).then(function(e){e&&(I.project.preproduction=e)})},I.importXML=function(e){a.show({controller:"MxGraphImportXMLController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/edit/import/import.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{saveCallback:e}}).then(function(e){e&&(I.project.preproduction=e)})},I.gotoProjects=function(){e.go("app.callysquare.projects",{},{reload:"app.callysquare.projects"})}}e.$inject=["$state","$document","$mdDialog","$q","$translate","toasty","api","project","users","trunks","queues","sounds","variables","databases","contexts","projects","intervals","mailAccounts","templates","lists","smsAccounts","pauses","userProfileSection","Auth"],angular.module("app.callysquare").controller("ProjectController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m,u){var p=this;p.currentUser=u.getCurrentUser(),p.projects=a||{count:0,rows:[]},p.userProfile=i,p.userProfileSection=s&&1==s.count?s.rows[0]:null,p.crudPermissions=u.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.listOrder="",p.listOrderAsc=null,p.selectedProjects=[],p.query={fields:"id,name,description,notes",sort:"-updatedAt",limit:10,page:1},p.editstate=function(e,n){t.go("app.callysquare.projects.edit",{id:e.id,crudPermissions:p.crudPermissions})},p.deleteconfirm=function(e,n){var t=l.confirm().title("Are you sure want to delete the project?").htmlContent("<b>"+e.name+"</b> will be deleted.").ariaLabel("delete project").targetEvent(n).ok("OK").cancel("CANCEL");l.show(t).then(function(){f(e)},function(){console.log("CANCEL")})},p.success=h,p.getProjects=function(){p.query.offset=(p.query.page-1)*p.query.limit,u.hasRole("admin")?p.promise=o.squareProject.get(p.query,h).$promise:(p.query.id=p.userProfile.id,p.query.section="SquareProjects",p.promise=o.userProfile.getResources(p.query,h).$promise)},p.createOrEditProject=function(e,n){l.show({controller:"CreateOrEditSquareProjectDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/projects/create/dialog.html",parent:angular.element(d.body),targetEvent:e,clickOutsideToClose:!0,locals:{project:n,projects:p.projects.rows,openFromEditor:null,setting:null,crudPermissions:p.crudPermissions}})},p.deleteProject=f,p.exportSelectedProjects=function(){var e=angular.copy(p.selectedProjects);return p.selectedProjects=[],e},p.deleteSelectedProjects=function(e){var n=l.confirm().title("Are you sure want to delete the selected projects?").htmlContent("<b>"+p.selectedProjects.length+" selected</b> will be deleted.").ariaLabel("delete Projects").targetEvent(e).ok("OK").cancel("CANCEL");l.show(n).then(function(){p.selectedProjects.forEach(function(e){f(e)}),p.selectedProjects=[]})},p.deselectProjects=function(){p.selectedProjects=[]},p.selectAllProjects=function(){p.selectedProjects=p.projects.rows};var g=!0,v=1;function h(e){p.projects=e||{count:0,rows:[]}}function f(e){o.squareProject.delete({id:e.id}).$promise.then(function(){_.remove(p.projects.rows,{id:e.id}),p.projects.count-=1,p.projects.rows.length||p.getProjects(),m.success({title:"Project deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.project.delete"}];for(var n=0;n<e.data.errors.length;n++)m.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.project.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){g?c(function(){g=!1}):(n||(v=p.query.page),e!==n&&(p.query.page=1),e||(p.query.page=v),p.getProjects())})}e.$inject=["$scope","$state","$mdSidenav","projects","userProfile","userProfileSection","api","msUtils","$mdDialog","$document","$timeout","toasty","Auth"],angular.module("app.callysquare").controller("ProjectsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CALLYSQUARE.EDIT_SQUARERECORDING",g.squareRecording=angular.copy(l),g.squareRecordings=r,g.newSquareRecording=!1,g.squareRecording||(g.squareRecording={},g.title="CALLYSQUARE.NEW_SQUARERECORDING",g.newSquareRecording=!0),g.addNewSquareRecording=function(){g.errors=[],d.squareRecording.save(g.squareRecording).$promise.then(function(e){g.squareRecordings.unshift(e.toJSON()),o.success({title:"SquareRecording properly created",msg:g.squareRecording.name?g.squareRecording.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.squareRecording.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSquareRecording=function(){g.errors=[],d.squareRecording.update({id:g.squareRecording.id},g.squareRecording).$promise.then(function(e){var n=_.find(g.squareRecordings,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"SquareRecording properly saved!",msg:g.squareRecording.name?g.squareRecording.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.squareRecording.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareRecording.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSquareRecording=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The squareRecording will be deleted.").ariaLabel("Delete SquareRecording").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.squareRecording.delete({id:g.squareRecording.id}).$promise.then(function(){_.remove(g.squareRecordings,{id:g.squareRecording.id}),o.success({title:"SquareRecording properly deleted!",msg:(g.squareRecording.name||"squareRecording")+" has been deleted!"}),v(g.squareRecording)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.squareRecording.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareRecording.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","squareRecordings","squareRecording","api","Auth","license","setting","crudPermissions"],angular.module("app.callysquare").controller("CreateOrEditSquareRecordingDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.squareRecordings=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="squareRecordings",f.listOrder="",f.listOrderAsc=null,f.selectedSquareRecordings=[],f.query={fields:"createdAt,updatedAt,id,filename,projectName,uniqueid,callerid,extension,audio,savePath,format",sort:"-createdAt",limit:10,page:1},f.downloadfile2=function(s,e){return m.squareRecording.download({id:s.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s.uniqueid+s.format;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.squareRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("squareRecording")+"?").htmlContent("<b>"+(e.name||"squareRecording")+"</b> will be deleted.").ariaLabel("delete squareRecording").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getSquareRecordings=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.squareRecording.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="SquareRecordings",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSquareRecording=function(e,n){i.show({controller:"CreateOrEditSquareRecordingDialogController",controllerAs:"vm",templateUrl:"app/main/apps/callysquare/views/squareRecordings/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{squareRecording:n,squareRecordings:f.squareRecordings.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSquareRecording=y,f.exportSelectedSquareRecordings=function(){var e=angular.copy(f.selectedSquareRecordings);return f.selectedSquareRecordings=[],e},f.deleteSelectedSquareRecordings=function(e){var n=i.confirm().title("Are you sure want to delete the selected squareRecordings?").htmlContent("<b>"+f.selectedSquareRecordings.length+" selected</b> will be deleted.").ariaLabel("delete SquareRecordings").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedSquareRecordings.forEach(function(e){y(e)}),f.selectedSquareRecordings=[]})},f.deselectSquareRecordings=function(){f.selectedSquareRecordings=[]},f.selectAllSquareRecordings=function(){f.selectedSquareRecordings=f.squareRecordings.rows};var b=!0,A=1;function E(e){f.squareRecordings=e||{count:0,rows:[]}}function y(e){m.squareRecording.delete({id:e.id}).$promise.then(function(){_.remove(f.squareRecordings.rows,{id:e.id}),f.squareRecordings.count-=1,f.squareRecordings.rows.length||f.getSquareRecordings(),p.success({title:_.startCase("SquareRecording")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsquareRecording"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEsquareRecording",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getSquareRecordings())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","squareRecordings","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.callysquare").controller("SquareRecordingsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.chatQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="chatQueues",f.listOrder="",f.listOrderAsc=null,f.selectedChatQueues=[],f.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"chat",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.chat.chatQueues.edit",{id:e.id,chatQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"ChatQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:f.chatQueues?f.chatQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"ChatQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:f.chatQueues?f.chatQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("chatQueue")+"?").htmlContent("<b>"+(e.name||"chatQueue")+"</b> will be deleted.").ariaLabel("delete chatQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:510}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.chat.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.chat.realtime.queues",{})}},f.success=E,f.getChatQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.chatQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ChatQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditChatQueue=function(e,n){i.show({controller:"CreateOrEditChatQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatQueue:n,chatQueues:f.chatQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteChatQueue=y,f.exportSelectedChatQueues=function(){var e=angular.copy(f.selectedChatQueues);return f.selectedChatQueues=[],e},f.deleteSelectedChatQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected chatQueues?").htmlContent("<b>"+f.selectedChatQueues.length+" selected</b> will be deleted.").ariaLabel("delete ChatQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedChatQueues.forEach(function(e){y(e)}),f.selectedChatQueues=[]})},f.deselectChatQueues=function(){f.selectedChatQueues=[]},f.selectAllChatQueues=function(){f.selectedChatQueues=f.chatQueues.rows};var b=!0,A=1;function E(e){f.chatQueues=e||{count:0,rows:[]}}function y(e){m.chatQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.chatQueues.rows,{id:e.id}),f.chatQueues.count-=1,f.chatQueues.rows.length||f.getChatQueues(),p.success({title:_.startCase("ChatQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEchatQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEchatQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getChatQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","chatQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.chat").controller("ChatQueuesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CHAT.EDIT_CHATQUEUE",g.chatQueue=angular.copy(l),g.chatQueues=r,g.newChatQueue=!1,g.chatQueue||(g.chatQueue={strategy:"beepall",timeout:10},g.title="CHAT.NEW_CHATQUEUE",g.newChatQueue=!0),g.addNewChatQueue=function(){g.errors=[],d.chatQueue.save(g.chatQueue).$promise.then(function(e){g.chatQueues.unshift(e.toJSON()),o.success({title:"ChatQueue properly created",msg:g.chatQueue.name?g.chatQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveChatQueue=function(){g.errors=[],d.chatQueue.update({id:g.chatQueue.id},g.chatQueue).$promise.then(function(e){var n=_.find(g.chatQueues,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ChatQueue properly saved!",msg:g.chatQueue.name?g.chatQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteChatQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The chatQueue will be deleted.").ariaLabel("Delete ChatQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.chatQueue.delete({id:g.chatQueue.id}).$promise.then(function(){_.remove(g.chatQueues,{id:g.chatQueue.id}),o.success({title:"ChatQueue properly deleted!",msg:(g.chatQueue.name||"chatQueue")+" has been deleted!"}),v(g.chatQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","chatQueues","chatQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.chat").controller("CreateOrEditChatQueueDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.chatQueue.getAgents({id:c.chatQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserChatQueue?"penalty "+e.UserChatQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.chatQueue=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.chatQueue.removeAgents({id:c.chatQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.chatQueue.addAgents({id:c.chatQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("CHAT.ALL_AGENTS"),labelSelected:r.instant("CHAT.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","chatQueue","chatQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.chat").controller("ChatQueueagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.chatQueue.getTeams({id:l.chatQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.chatQueue=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("CHAT.ALL_TEAMS"),labelSelected:t.instant("CHAT.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.chatQueue.removeTeams({id:l.chatQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.chatQueue.addTeams({id:l.chatQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","chatQueue","$translate","Auth","crudPermissions"],angular.module("app.chat").controller("ChatQueueteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.chatQueue=c||e.params.chatQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.teamadddialog=function(e,n){t.show({controller:"ChatQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:u.chatQueues?u.chatQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){t.show({controller:"ChatQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatQueue:e,chatQueues:u.chatQueues?u.chatQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoChatQueues=function(){e.go("app.chat.chatQueues",{},{reload:"app.chat.chatQueues"})},u.saveChatQueue=function(){r.chatQueue.update({id:u.chatQueue.id},u.chatQueue).$promise.then(function(){l.success({title:"ChatQueue updated!",msg:u.chatQueue.name?u.chatQueue.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","chatQueue","userProfileSection"],angular.module("app.chat").controller("ChatQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.chatWebsites=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="chatWebsites",f.listOrder="",f.listOrderAsc=null,f.selectedChatWebsites=[],f.query={fields:"createdAt,updatedAt,id,token,agentIdentifier,customerAlias,messageFontSize,name,key,address,remote,ListId,fidelity,timeout,agentAlias,closingQuestion,formSubmitSuccessMessage,formSubmitFailureMessage,color,color_focus,color_button,textColor,backgroundColor,fontSize,header_shape,showAgentAvatar,showCustomerAvatar,alignment,verticalAlignment,messagesAlignment,defaultTitle,animation,defaultWhiteLabel,whiteLabel,defaultLogo,conditionAgreement,autoclose,enableUnmanagedNote,unmanagedMessage,skipUnmanaged,sendUnmanaged,enableCustomerWriting,waitingTitle,waitingMessage,closingMessage,noteTitle,placeholderMessage,skipMessageButton,enableRating,ratingType,ratingStarsNumber,enableFeedback,feedbackTitle,forwardTranscript,forwardTranscriptMessage,closingMessageButton,download_transcript,enableCustomerAttachment,enableSendButton,enableCustomerCheckmarks,systemAlias,enquiry_enable,enquiry_forwarding,enquiry_forwarding_address,name_title,username_placeholder,email_title,email_placeholder,header_online,hideWhenOffline,header_offline,start_chat_button,offline_chat_button,offlineMessageSubject,offlineMessageBody,offline_message,message_title,enquiry_message_placeholder,enquiry_button,rating_message,rating_send,rating_skip,onlineForm,offlineForm,mapKey,mapKeyOffline,forwardOffline,MailAccountId,openNewInteraction,forwardOfflineAddress,subjectOffline,IntervalId,timezone,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout,vidaooEscalation,vidaooApiKey,vidaooTopic,vidaooNote,vidaooMetadata",sort:"-updatedAt",limit:10,page:1},f.arrayagentIdentifier=_.keyBy([{option:"WebsiteAlias",value:"'website_alias'"},{option:"AgentAlias",value:"'agent_alias'"},{option:"AgentFullname",value:"'agent_fullname'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayheader_shape=_.keyBy([{option:"Rounded",value:"'rounded'"},{option:"Squared",value:"'squared'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayalignment=_.keyBy([{option:"bottom_right",value:"'bottom_right'"},{option:"right",value:"'right'"},{option:"left",value:"'left'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraymessagesAlignment=_.keyBy([{option:"alternate",value:"'alternate'"},{option:"centered",value:"'centered'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayratingType=_.keyBy([{option:"Star",value:"'star'"},{option:"Thumb",value:"'thumb'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.chat.chatWebsites.edit",{id:e.id,chatWebsite:e,crudPermissions:f.crudPermissions})},f.interactionsgoto=function(e,n){t.go("app.chat.chatWebsites.edit",{id:e.id,tab:10})},f.offlinemessagesgoto=function(e,n){t.go("app.chat.chatWebsites.edit",{id:e.id,tab:11})},f.agentadddialog=function(e,n){i.show({controller:"ChatWebsiteagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatWebsite:e,chatWebsites:f.chatWebsites?f.chatWebsites.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("chatWebsite")+"?").htmlContent("<b>"+(e.name||"chatWebsite")+"</b> will be deleted.").ariaLabel("delete chatWebsite").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getChatWebsites=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.chatWebsite.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ChatWebsites",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditChatWebsite=function(e,n){i.show({controller:"CreateOrEditChatWebsiteDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:n,chatWebsites:f.chatWebsites.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteChatWebsite=y,f.exportSelectedChatWebsites=function(){var e=angular.copy(f.selectedChatWebsites);return f.selectedChatWebsites=[],e},f.deleteSelectedChatWebsites=function(e){var n=i.confirm().title("Are you sure want to delete the selected chatWebsites?").htmlContent("<b>"+f.selectedChatWebsites.length+" selected</b> will be deleted.").ariaLabel("delete ChatWebsites").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedChatWebsites.forEach(function(e){y(e)}),f.selectedChatWebsites=[]})},f.deselectChatWebsites=function(){f.selectedChatWebsites=[]},f.selectAllChatWebsites=function(){f.selectedChatWebsites=f.chatWebsites.rows},g.hasRole("admin")?m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.lists,{id:e.resourceId})}),t=null;if(f.chatWebsite&&(t=_.find(f.lists,{id:Number(f.chatWebsite.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.lists,{id:t.id});a.canSelect=!1,n.push(a)}f.lists=n})}else{var t=[],a=null;f.chatWebsite&&(a=_.find(f.lists,{id:Number(f.chatWebsite.ListId)}));for(var i=0;i<f.lists.length;i++)a&&f.lists[i].id===a.id&&(f.lists[i].canSelect=!1,t.push(f.lists[i]));f.lists=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){f.interval=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){f.interval=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.interval,{id:e.resourceId})}),t=null;if(f.chatWebsite&&(t=_.find(f.interval,{id:Number(f.chatWebsite.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.interval,{id:t.id});a.canSelect=!1,n.push(a)}f.interval=n})}else{var t=[],a=null;f.chatWebsite&&(a=_.find(f.interval,{id:Number(f.chatWebsite.IntervalId)}));for(var i=0;i<f.interval.length;i++)a&&f.interval[i].id===a.id&&(f.interval[i].canSelect=!1,t.push(f.interval[i]));f.interval=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.chatWebsites=e||{count:0,rows:[]}}function y(e){m.chatWebsite.delete({id:e.id}).$promise.then(function(){_.remove(f.chatWebsites.rows,{id:e.id}),f.chatWebsites.count-=1,f.chatWebsites.rows.length||f.getChatWebsites(),p.success({title:_.startCase("ChatWebsite")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEchatWebsite"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEchatWebsite",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getChatWebsites())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","chatWebsites","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.chat").controller("ChatWebsitesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CHAT.EDIT_CHATWEBSITE",g.chatWebsite=angular.copy(l),g.chatWebsites=r,g.newChatWebsite=!1,g.chatWebsite||(g.chatWebsite={remote:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():""),header_shape:"rounded",alignment:"bottom_right",verticalAlignment:30,messagesAlignment:"alternate",IntervalId:"null",timezone:"null",waitForTheAssignedAgent:10,notificationSound:!0,queueTransferTimeout:300,agentTransferTimeout:300,vidaooTopic:"Generated by XCALLY Motion",vidaooNote:"Meeting generated for interaction #{{interaction.id}} by {{agent.name}}"},g.title="CHAT.NEW_CHATWEBSITE",g.newChatWebsite=!0),n.params.id&&(g.chatWebsite.ChatWebsiteId=n.params.id),g.addNewChatWebsite=function(){g.errors=[],d.chatWebsite.save(g.chatWebsite).$promise.then(function(e){g.chatWebsites.unshift(e.toJSON()),o.success({title:"ChatWebsite properly created",msg:g.chatWebsite.name?g.chatWebsite.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatWebsite.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatWebsite.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveChatWebsite=function(){g.errors=[],d.chatWebsite.update({id:g.chatWebsite.id},g.chatWebsite).$promise.then(function(e){var n=_.find(g.chatWebsites,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ChatWebsite properly saved!",msg:g.chatWebsite.name?g.chatWebsite.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatWebsite.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatWebsite.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteChatWebsite=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The chatWebsite will be deleted.").ariaLabel("Delete ChatWebsite").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.chatWebsite.delete({id:g.chatWebsite.id}).$promise.then(function(){_.remove(g.chatWebsites,{id:g.chatWebsite.id}),o.success({title:"ChatWebsite properly deleted!",msg:(g.chatWebsite.name||"chatWebsite")+" has been deleted!"}),v(g.chatWebsite)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatWebsite.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatWebsite.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.lists,{id:e.resourceId})}),t=null;if(g.chatWebsite&&(t=_.find(g.lists,{id:Number(g.chatWebsite.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.lists,{id:t.id});a.canSelect=!1,n.push(a)}g.lists=n})}else{var t=[],a=null;g.chatWebsite&&(a=_.find(g.lists,{id:Number(g.chatWebsite.ListId)}));for(var i=0;i<g.lists.length;i++)a&&g.lists[i].id===a.id&&(g.lists[i].canSelect=!1,t.push(g.lists[i]));g.lists=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){g.interval=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){g.interval=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.interval,{id:e.resourceId})}),t=null;if(g.chatWebsite&&(t=_.find(g.interval,{id:Number(g.chatWebsite.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.interval,{id:t.id});a.canSelect=!1,n.push(a)}g.interval=n})}else{var t=[],a=null;g.chatWebsite&&(a=_.find(g.interval,{id:Number(g.chatWebsite.IntervalId)}));for(var i=0;i<g.interval.length;i++)a&&g.interval[i].id===a.id&&(g.interval[i].canSelect=!1,t.push(g.interval[i]));g.interval=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","chatWebsites","chatWebsite","api","Auth","license","setting","crudPermissions"],angular.module("app.chat").controller("CreateOrEditChatWebsiteDialogController",e)}(),function(){"use strict";function e(o,i,a,s,e){var r=this;function n(e,n){if(r.chatWebsiteApps.rows.length){var t=r.chatWebsiteApps.rows[n]?r.chatWebsiteApps.rows[n]:r.chatWebsiteApps.rows[0];i.show({controller:"EditChatWebsiteApp"+(t.appType||t.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/apps/"+(t.appType||t.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsiteApp:t,chatWebsite:r.chatWebsite,crudPermissions:r.crudPermissions}}).then(function(e){e&&(e.id?r.chatWebsiteApps.rows[n]=e:r.chatWebsiteApps.rows.splice(n,0,e),l())}).catch(function(e){e&&s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function l(){for(var e=1,n=[],t=0;t<r.chatWebsiteApps.rows.length;t++,0){var a=r.chatWebsiteApps.rows[t],i=[],s=[];a.intervals="*,*,*,*"!==a.interval?[a.interval]:a.IntervalId?_.map(_.filter(r.intervals.rows,{IntervalId:a.IntervalId}),"interval"):[],a.context=r.chatWebsite.context,a.exten=r.chatWebsite.exten,a.type&&(a.type=a.type.toLowerCase()),a.priority=i.length?_.last(i).priority+1:e,e=(s.length?_.last(s).priority:a.priority)+1,n=_.concat(n,i,[a],s)}o.chatWebsite.addApplications({id:r.chatWebsite.id},_.sortBy(n,"priority")).$promise.then(function(e){r.chatWebsiteApps.rows=e.rows}).catch(function(e){console.error(e)})}function t(e){r.chatWebsiteApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.chatWebsite={},r.chatWebsiteApps={count:0,rows:[]},r.selectedChatWebsiteApps=[],r.crudPermissions,r.query={sort:"priority"},r.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"noop",appType:"noop",type:"noop",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,fields:[{title:"Value",name:"value",type:"text",param:0}]},{app:"system",appType:"system",type:"system",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,extraApi:[{name:"variables",field:{name:"variable",key:"name"},route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1012}}],fields:[{title:"Command",name:"command",type:"text",required:!0,param:0},{title:"Variable",name:"variable",type:"apiselect",values:"variables",value:"variable.name",option:"variable.name",defaultValues:[{value:"''",option:"None"}],defaultValue:"''",param:1}]},{app:"gotop",appType:"gotop",type:"goto",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Priority",name:"priority",type:"number",required:!0,min:0,param:0}]},{app:"gotoif",appType:"gotoif",type:"gotoif",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Condition",name:"condition",type:"text",required:!0,param:0},{title:"truepriority",name:"truepriority",type:"number",min:1,required:!0,param:1},{title:"falsepriority",name:"falsepriority",type:"number",min:1,required:!0,param:2}]},{app:"queue",appType:"queue",foreignKey:"ChatQueueId",type:"queue",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"queues",field:{name:"queue",key:"name"},route:"chatQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0},permissions:{section:501}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",defaultValue:300,required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:300,param:1}]},{app:"agent",appType:"agent",type:"agent",foreignKey:"UserId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"agents",field:{name:"agent",key:"name"},route:"user",filters:{fields:"id,name",role:"agent",sort:"name",nolimit:!0},permissions:{section:202}}],fields:[{title:"Agent",name:"agent",type:"apiselect",values:"agents",value:"agent.name",option:"agent.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:30,param:1}]},{app:"close",appType:"close",type:"close",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Disposition",name:"disposition",type:"text",required:!0,param:0}]},{app:"autoreply",appType:"autoreply",type:"autoreply",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"times",name:"times",type:"select",defaultValue:"1",values:[{option:"One Time",value:"2"},{option:"Always",value:"0"},{option:"First Message",value:"1"}],required:!0,param:0},{title:"Text",name:"text",type:"textarea",required:!0,param:1}]},{app:"tag",appType:"tag",type:"tag",foreignKey:"TagId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"tags",field:{name:"tag",key:"name"},route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1008}}],fields:[{title:"Tag",name:"tag",type:"apiselect",values:"tags",value:"tag.name",option:"tag.name",required:!0,param:0}]},{app:"dialogflow",appType:"dialogflow",type:"dialogflow",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Key",name:"key",type:"text",required:!0,param:0},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{option:"Danish",value:"'da'"},{option:"English",value:"'en'"},{option:"German",value:"'de'"},{option:"Italian",value:"'it'"},{option:"Spanish",value:"'es'"},{option:"French",value:"'fr'"},{option:"Indonesian",value:"'id'"},{option:"Japanese",value:"'ja'"},{option:"Korean (South Korea)",value:"'ko'"},{option:"Dutch",value:"'nl'"},{option:"Norwegian",value:"'no'"},{option:"Portuguese (European)",value:"'pt'"},{option:"Portuguese (Nrazilian)",value:"'pt-br'"},{option:"Russian",value:"'ru'"},{option:"Swedish",value:"'sv'"},{option:"Thai",value:"'th'"},{option:"Ukrainian",value:"'uk'"},{option:"Chinese (Simplified)",value:"'zh-CN'"},{option:"Chinese (Hong Kong)",value:"'zh-HK'"},{option:"Chinese (Traditional)",value:"'zh-TW'"}],required:!0,param:1},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,param:2,help:!0}]},{app:"dialogflowV2",appType:"dialogflowv2",type:"dialogflowv2",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"ProjectID",name:"projectId",type:"text",required:!0,param:0},{title:"ClientEmail",name:"clientEmail",type:"text",required:!0,param:1},{title:"PrivateKey",name:"privateKey",type:"textarea",required:!0,param:2},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{value:"'zh-HK'",option:"Chinese (Cantonese)"},{value:"'zh-CN'",option:"Chinese (Simplified)"},{value:"'zh-TW'",option:"Chinese (Traditional)"},{value:"'da'",option:"Danish"},{value:"'nl'",option:"Dutch"},{value:"'en'",option:"English"},{value:"'en-AU'",option:"English (Australia)"},{value:"'en-CA'",option:"English (Canada)"},{value:"'en-GB'",option:"English (Great Britain)"},{value:"'en-IN'",option:"English (India)"},{value:"'en-US'",option:"English (US)"},{value:"'fr'",option:"French"},{value:"'fr-CA'",option:"French (Canada)"},{value:"'fr-FR'",option:"'France (France)"},{value:"'de'",option:"German"},{value:"'hi'",option:"Hindi"},{value:"'id'",option:"Indonesian"},{value:"'it'",option:"Italian"},{value:"'ja'",option:"Japanese"},{value:"'ko'",option:"Korean"},{value:"'no'",option:"Norwegian"},{value:"'pl'",option:"Polish"},{value:"'pt-BR'",option:"Portuguese (Brazil)"},{value:"'pt-PT'",option:"Portuguese (Portugal)"},{value:"'ru'",option:"Russian"},{value:"'es'",option:"Spanish"},{value:"'es-419'",option:"Spanish (Latin America)"},{value:"'es-ES'",option:"Spanish (Spain)"},{value:"'sw'",option:"Swedish"},{value:"'th'",option:"Thai"},{value:"'tr'",option:"Turkish"},{value:"'uk'",option:"Ukrainian"}],required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,param:4,help:!0}]},{app:"amazonlex",appType:"amazonlex",type:"amazonlex",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"accesskeyid",name:"accesskeyid",type:"text",required:!0,param:0},{title:"secretaccesskey",name:"secretaccesskey",type:"text",required:!0,param:1},{title:"lexregion",name:"lexregion",type:"select",defaultValue:"'us-east-1'",values:[{option:"US East (N. Virginia)",value:"'us-east-1'"},{option:"US West (Oregon)",value:"'us-west-2'"},{option:"EU (Ireland)",value:"'eu-west-1'"},{option:"Asia Pacific (Sydney)",value:"'ap-southeast-2'"}],required:!0,param:2},{title:"botname",name:"botname",type:"text",required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,param:4,help:!0}]},{app:"tvox",appType:"tvox",type:"tvox",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"serviceid",name:"serviceid",type:"text",param:0},{title:"channelid",name:"channelid",type:"text",param:1},{title:"tvoxurl",name:"tvoxurl",type:"text",param:2},{title:"tvoxloginurl",name:"tvoxloginurl",type:"text",param:3},{title:"tvoxsessionurl",name:"tvoxsessionurl",type:"text",param:4},{title:"tvoxusername",name:"tvoxusername",type:"text",param:5},{title:"tvoxpasswd",name:"tvoxpasswd",type:"password",param:6},{title:"motionurlonring",name:"motionurlonring",type:"text",param:7},{title:"motionurlonanswer",name:"motionurlonanswer",type:"text",param:8},{title:"motiontitle",name:"motiontitle",type:"text",param:9},{title:"motionurl",name:"motionurl",type:"text",param:10}]}],["app"]),{isApp:!1}),r.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},r.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){n(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e,n){r.chatWebsite=e,r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},r.applications.disabled=!r.crudPermissions.canEdit,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getChatWebsiteApps(),r.getIntervals()},r.deleteConfirm=function(e,n,t){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.chatWebsiteApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})},r.getChatWebsiteApps=function(){r.promise=o.chatWebsite.getApplications(r.query,t).$promise},r.editChatWebsiteApp=n,r.editInterval=function(e,n){if(r.chatWebsiteApps.rows.length){var t=r.chatWebsiteApps.rows[n]?r.chatWebsiteApps.rows[n]:r.chatWebsiteApps.rows[0];i.show({controller:"EditChatWebsiteAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:[],crudPermissions:r.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,l())})}},r.deleteChatWebsiteApp=function(e){_.remove(r.chatWebsiteApps.rows,{id:e.id}),l(),s.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedChatWebsiteApps=function(e){var n=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+r.selectedChatWebsiteApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){r.selectedChatWebsiteApps.forEach(function(e){_.remove(r.chatWebsiteApps.rows,{id:e.id})}),r.selectedChatWebsiteApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return o.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){r.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.chat").controller("ChatWebsiteActionsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.chatWebsite.getAgents({id:c.chatWebsite.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserChatWebsite?"penalty "+e.UserChatWebsite.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.chatWebsite=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.chatWebsite.removeAgents({id:c.chatWebsite.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.chatWebsite.addAgents({id:c.chatWebsite.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("CHAT.ALL_AGENTS"),labelSelected:r.instant("CHAT.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","chatWebsite","chatWebsites","realtime","$translate","Auth","crudPermissions"],angular.module("app.chat").controller("ChatWebsiteagentaddController",e)}(),function(){"use strict";function e(e,a){var i=this;i.chatWebsite={},i.crudPermissions,i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.chatWebsite.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.chatWebsite.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e,n){i.chatWebsite=angular.copy(e),i.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.ngFlowOptions.target="/api/chat/websites/:id/avatar".replace(":id",i.chatWebsite.id),i.chatWebsite.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.chat").controller("ChatWebsiteagentAvatarController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.agent=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.agent.appdata)switch(l.agent.appType?l.agent.appType.toLowerCase():l.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.agent.appdata.split(",");l.agent.key=d[0],l.agent.language=d[1],l.agent.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.agent.appdata.split(",");l.agent.projectId=d[0],l.agent.clientEmail=d[1],l.agent.privateKey=d[2],l.agent.language=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.agent.appdata.split(",");l.agent.accesskeyid=d[0],l.agent.secretaccesskey=d[1],l.agent.lexregion=d[2],l.agent.botname=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.agent.appdata.split(",");l.agent.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.agent.text=d.slice(1,d.length).join(",");break;case"message":l.agent.text=l.agent.appdata;break;case"set":l.agent.name=l.agent.appdata.split("=")[0],l.agent.value=l.agent.appdata.split("=")[1];break;case"agi":l.agent.project=l.agent.appdata;break;default:var c=l.agent.appdata.split(",");l.agent.agent=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.agent.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.agent.timeout=30;function m(e){n.hide(e)}l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outbounddial"===l.agent.appType.toLowerCase()&&(l.agent.prefix=l.agent.phone?l.agent.phone.split("$")[0]:void 0,l.agent.callerId=l.agent.callerID?"CALLERID(all)="+l.agent.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outboundDial"===l.agent.appType&&(l.agent.phone=i.cutdigits?(l.agent.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.agent.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.agent.options+="U(xcally-mixmonitor-context)"):l.agent.options=l.agent.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.agents,{name:l.agent.agent});n&&(l.agent.UserId=n.id);if(l.agent.appType&&"custom"===l.agent.appType);else switch((l.agent.app||l.agent.appType).toLowerCase()){case"set":l.agent.appdata=l.agent.name+"="+l.agent.value;break;case"custom":break;default:e[0]=l.agent.agent,e[1]=l.agent.timeout,l.agent.appdata=e.join(",")}m(l.agent)},l.closeDialog=m,o.hasRole("admin")?s.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){l.agents=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){l.agents=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.agents,{id:e.resourceId})}),t=null;if(l.agent&&(t=_.find(l.agents,{name:l.agent.agent})),t&&!_.some(n,["id",t.id])){var a=_.find(l.agents,{id:t.id});a.canSelect=!1,n.push(a)}l.agents=n})}else{var t=[],a=null;l.agent&&(a=_.find(l.agents,{name:l.agent.agent}));for(var i=0;i<l.agents.length;i++)a&&l.agents[i].id===a.id&&(l.agents[i].canSelect=!1,t.push(l.agents[i]));l.agents=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppagentDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.amazonlex=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.amazonlex.appdata)switch(l.amazonlex.appType?l.amazonlex.appType.toLowerCase():l.amazonlex.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.amazonlex.appdata.split(",");l.amazonlex.key=d[0],l.amazonlex.language=d[1],l.amazonlex.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.amazonlex.appdata.split(",");l.amazonlex.projectId=d[0],l.amazonlex.clientEmail=d[1],l.amazonlex.privateKey=d[2],l.amazonlex.language=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=d[0],l.amazonlex.secretaccesskey=d[1],l.amazonlex.lexregion=d[2],l.amazonlex.botname=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.amazonlex.appdata.split(",");l.amazonlex.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.amazonlex.text=d.slice(1,d.length).join(",");break;case"message":l.amazonlex.text=l.amazonlex.appdata;break;case"set":l.amazonlex.name=l.amazonlex.appdata.split("=")[0],l.amazonlex.value=l.amazonlex.appdata.split("=")[1];break;case"agi":l.amazonlex.project=l.amazonlex.appdata;break;default:var c=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.amazonlex.secretaccesskey=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.amazonlex.lexregion=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.amazonlex.botname=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.amazonlex.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.amazonlex.lexregion="us-east-1";function m(e){n.hide(e)}l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outbounddial"===l.amazonlex.appType.toLowerCase()&&(l.amazonlex.prefix=l.amazonlex.phone?l.amazonlex.phone.split("$")[0]:void 0,l.amazonlex.callerId=l.amazonlex.callerID?"CALLERID(all)="+l.amazonlex.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outboundDial"===l.amazonlex.appType&&(l.amazonlex.phone=i.cutdigits?(l.amazonlex.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.amazonlex.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.amazonlex.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.amazonlex.options+="U(xcally-mixmonitor-context)"):l.amazonlex.options=l.amazonlex.options.replace("U(xcally-mixmonitor-context)",""));if(l.amazonlex.appType&&"custom"===l.amazonlex.appType);else switch((l.amazonlex.app||l.amazonlex.appType).toLowerCase()){case"set":l.amazonlex.appdata=l.amazonlex.name+"="+l.amazonlex.value;break;case"custom":break;default:e[0]=l.amazonlex.accesskeyid,e[1]=l.amazonlex.secretaccesskey,e[2]=l.amazonlex.lexregion,e[3]=l.amazonlex.botname,e[4]=l.amazonlex.welcomemessage,l.amazonlex.appdata=e.join(",")}m(l.amazonlex)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppamazonlexDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.autoreply=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.autoreply.appdata)switch(l.autoreply.appType?l.autoreply.appType.toLowerCase():l.autoreply.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.autoreply.appdata.split(",");l.autoreply.key=d[0],l.autoreply.language=d[1],l.autoreply.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.autoreply.appdata.split(",");l.autoreply.projectId=d[0],l.autoreply.clientEmail=d[1],l.autoreply.privateKey=d[2],l.autoreply.language=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.autoreply.appdata.split(",");l.autoreply.accesskeyid=d[0],l.autoreply.secretaccesskey=d[1],l.autoreply.lexregion=d[2],l.autoreply.botname=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.autoreply.appdata.split(",");l.autoreply.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.autoreply.text=d.slice(1,d.length).join(",");break;case"message":l.autoreply.text=l.autoreply.appdata;break;case"set":l.autoreply.name=l.autoreply.appdata.split("=")[0],l.autoreply.value=l.autoreply.appdata.split("=")[1];break;case"agi":l.autoreply.project=l.autoreply.appdata;break;default:var c=l.autoreply.appdata.split(",");l.autoreply.times=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.autoreply.text=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.autoreply.times=1;function m(e){n.hide(e)}l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outbounddial"===l.autoreply.appType.toLowerCase()&&(l.autoreply.prefix=l.autoreply.phone?l.autoreply.phone.split("$")[0]:void 0,l.autoreply.callerId=l.autoreply.callerID?"CALLERID(all)="+l.autoreply.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outboundDial"===l.autoreply.appType&&(l.autoreply.phone=i.cutdigits?(l.autoreply.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.autoreply.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.autoreply.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.autoreply.options+="U(xcally-mixmonitor-context)"):l.autoreply.options=l.autoreply.options.replace("U(xcally-mixmonitor-context)",""));if(l.autoreply.appType&&"custom"===l.autoreply.appType);else switch((l.autoreply.app||l.autoreply.appType).toLowerCase()){case"set":l.autoreply.appdata=l.autoreply.name+"="+l.autoreply.value;break;case"custom":break;default:e[0]=l.autoreply.times,e[1]=l.autoreply.text,l.autoreply.appdata=e.join(",")}m(l.autoreply)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppautoreplyDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.close=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.close.appdata)switch(l.close.appType?l.close.appType.toLowerCase():l.close.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.close.appdata.split(",");l.close.key=d[0],l.close.language=d[1],l.close.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.close.appdata.split(",");l.close.projectId=d[0],l.close.clientEmail=d[1],l.close.privateKey=d[2],l.close.language=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.close.appdata.split(",");l.close.accesskeyid=d[0],l.close.secretaccesskey=d[1],l.close.lexregion=d[2],l.close.botname=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.close.appdata.split(",");l.close.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.close.text=d.slice(1,d.length).join(",");break;case"message":l.close.text=l.close.appdata;break;case"set":l.close.name=l.close.appdata.split("=")[0],l.close.value=l.close.appdata.split("=")[1];break;case"agi":l.close.project=l.close.appdata;break;default:var c=l.close.appdata.split(",");l.close.disposition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outbounddial"===l.close.appType.toLowerCase()&&(l.close.prefix=l.close.phone?l.close.phone.split("$")[0]:void 0,l.close.callerId=l.close.callerID?"CALLERID(all)="+l.close.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outboundDial"===l.close.appType&&(l.close.phone=i.cutdigits?(l.close.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.close.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.close.options+="U(xcally-mixmonitor-context)"):l.close.options=l.close.options.replace("U(xcally-mixmonitor-context)",""));if(l.close.appType&&"custom"===l.close.appType);else switch((l.close.app||l.close.appType).toLowerCase()){case"set":l.close.appdata=l.close.name+"="+l.close.value;break;case"custom":break;default:e[0]=l.close.disposition,l.close.appdata=e.join(",")}m(l.close)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppcloseDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflow=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflow.appdata)switch(l.dialogflow.appType?l.dialogflow.appType.toLowerCase():l.dialogflow.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflow.appdata.split(",");l.dialogflow.key=d[0],l.dialogflow.language=d[1],l.dialogflow.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflow.appdata.split(",");l.dialogflow.projectId=d[0],l.dialogflow.clientEmail=d[1],l.dialogflow.privateKey=d[2],l.dialogflow.language=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflow.appdata.split(",");l.dialogflow.accesskeyid=d[0],l.dialogflow.secretaccesskey=d[1],l.dialogflow.lexregion=d[2],l.dialogflow.botname=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflow.appdata.split(",");l.dialogflow.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflow.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflow.text=l.dialogflow.appdata;break;case"set":l.dialogflow.name=l.dialogflow.appdata.split("=")[0],l.dialogflow.value=l.dialogflow.appdata.split("=")[1];break;case"agi":l.dialogflow.project=l.dialogflow.appdata;break;default:var c=l.dialogflow.appdata.split(",");l.dialogflow.key=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflow.language=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflow.welcomemessage=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}else l.dialogflow.language="en";function m(e){n.hide(e)}l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outbounddial"===l.dialogflow.appType.toLowerCase()&&(l.dialogflow.prefix=l.dialogflow.phone?l.dialogflow.phone.split("$")[0]:void 0,l.dialogflow.callerId=l.dialogflow.callerID?"CALLERID(all)="+l.dialogflow.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outboundDial"===l.dialogflow.appType&&(l.dialogflow.phone=i.cutdigits?(l.dialogflow.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflow.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflow.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflow.options+="U(xcally-mixmonitor-context)"):l.dialogflow.options=l.dialogflow.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflow.appType&&"custom"===l.dialogflow.appType);else switch((l.dialogflow.app||l.dialogflow.appType).toLowerCase()){case"set":l.dialogflow.appdata=l.dialogflow.name+"="+l.dialogflow.value;break;case"custom":break;default:e[0]=l.dialogflow.key,e[1]=l.dialogflow.language,e[2]=l.dialogflow.welcomemessage,l.dialogflow.appdata=e.join(",")}m(l.dialogflow)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppdialogflowDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflowv2=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflowv2.appdata)switch(l.dialogflowv2.appType?l.dialogflowv2.appType.toLowerCase():l.dialogflowv2.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.key=d[0],l.dialogflowv2.language=d[1],l.dialogflowv2.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=d[0],l.dialogflowv2.clientEmail=d[1],l.dialogflowv2.privateKey=d[2],l.dialogflowv2.language=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.accesskeyid=d[0],l.dialogflowv2.secretaccesskey=d[1],l.dialogflowv2.lexregion=d[2],l.dialogflowv2.botname=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflowv2.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflowv2.text=l.dialogflowv2.appdata;break;case"set":l.dialogflowv2.name=l.dialogflowv2.appdata.split("=")[0],l.dialogflowv2.value=l.dialogflowv2.appdata.split("=")[1];break;case"agi":l.dialogflowv2.project=l.dialogflowv2.appdata;break;default:var c=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflowv2.clientEmail=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflowv2.privateKey=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.dialogflowv2.language=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.dialogflowv2.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.dialogflowv2.language="en";function m(e){n.hide(e)}l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outbounddial"===l.dialogflowv2.appType.toLowerCase()&&(l.dialogflowv2.prefix=l.dialogflowv2.phone?l.dialogflowv2.phone.split("$")[0]:void 0,l.dialogflowv2.callerId=l.dialogflowv2.callerID?"CALLERID(all)="+l.dialogflowv2.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outboundDial"===l.dialogflowv2.appType&&(l.dialogflowv2.phone=i.cutdigits?(l.dialogflowv2.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflowv2.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflowv2.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflowv2.options+="U(xcally-mixmonitor-context)"):l.dialogflowv2.options=l.dialogflowv2.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflowv2.appType&&"custom"===l.dialogflowv2.appType);else switch((l.dialogflowv2.app||l.dialogflowv2.appType).toLowerCase()){case"set":l.dialogflowv2.appdata=l.dialogflowv2.name+"="+l.dialogflowv2.value;break;case"custom":break;default:e[0]=l.dialogflowv2.projectId,e[1]=l.dialogflowv2.clientEmail,e[2]=l.dialogflowv2.privateKey,e[3]=l.dialogflowv2.language,e[4]=l.dialogflowv2.welcomemessage,l.dialogflowv2.appdata=e.join(",")}m(l.dialogflowv2)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppdialogflowv2DialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotoif=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotoif.appdata)switch(l.gotoif.appType?l.gotoif.appType.toLowerCase():l.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotoif.appdata.split(",");l.gotoif.key=d[0],l.gotoif.language=d[1],l.gotoif.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotoif.appdata.split(",");l.gotoif.projectId=d[0],l.gotoif.clientEmail=d[1],l.gotoif.privateKey=d[2],l.gotoif.language=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotoif.appdata.split(",");l.gotoif.accesskeyid=d[0],l.gotoif.secretaccesskey=d[1],l.gotoif.lexregion=d[2],l.gotoif.botname=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotoif.appdata.split(",");l.gotoif.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotoif.text=d.slice(1,d.length).join(",");break;case"message":l.gotoif.text=l.gotoif.appdata;break;case"set":l.gotoif.name=l.gotoif.appdata.split("=")[0],l.gotoif.value=l.gotoif.appdata.split("=")[1];break;case"agi":l.gotoif.project=l.gotoif.appdata;break;default:var c=l.gotoif.appdata.split(",");l.gotoif.condition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.gotoif.truepriority=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.gotoif.falsepriority=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}function m(e){n.hide(e)}l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outbounddial"===l.gotoif.appType.toLowerCase()&&(l.gotoif.prefix=l.gotoif.phone?l.gotoif.phone.split("$")[0]:void 0,l.gotoif.callerId=l.gotoif.callerID?"CALLERID(all)="+l.gotoif.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outboundDial"===l.gotoif.appType&&(l.gotoif.phone=i.cutdigits?(l.gotoif.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotoif.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotoif.options+="U(xcally-mixmonitor-context)"):l.gotoif.options=l.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotoif.appType&&"custom"===l.gotoif.appType);else switch((l.gotoif.app||l.gotoif.appType).toLowerCase()){case"set":l.gotoif.appdata=l.gotoif.name+"="+l.gotoif.value;break;case"custom":break;default:e[0]=l.gotoif.condition,e[1]=l.gotoif.truepriority,e[2]=l.gotoif.falsepriority,l.gotoif.appdata=e.join(",")}m(l.gotoif)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppgotoifDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotop.appdata)switch(l.gotop.appType?l.gotop.appType.toLowerCase():l.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotop.appdata.split(",");l.gotop.key=d[0],l.gotop.language=d[1],l.gotop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotop.appdata.split(",");l.gotop.projectId=d[0],l.gotop.clientEmail=d[1],l.gotop.privateKey=d[2],l.gotop.language=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotop.appdata.split(",");l.gotop.accesskeyid=d[0],l.gotop.secretaccesskey=d[1],l.gotop.lexregion=d[2],l.gotop.botname=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotop.appdata.split(",");l.gotop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotop.text=d.slice(1,d.length).join(",");break;case"message":l.gotop.text=l.gotop.appdata;break;case"set":l.gotop.name=l.gotop.appdata.split("=")[0],l.gotop.value=l.gotop.appdata.split("=")[1];break;case"agi":l.gotop.project=l.gotop.appdata;break;default:var c=l.gotop.appdata.split(",");l.gotop.priority=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outbounddial"===l.gotop.appType.toLowerCase()&&(l.gotop.prefix=l.gotop.phone?l.gotop.phone.split("$")[0]:void 0,l.gotop.callerId=l.gotop.callerID?"CALLERID(all)="+l.gotop.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outboundDial"===l.gotop.appType&&(l.gotop.phone=i.cutdigits?(l.gotop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotop.options+="U(xcally-mixmonitor-context)"):l.gotop.options=l.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotop.appType&&"custom"===l.gotop.appType);else switch((l.gotop.app||l.gotop.appType).toLowerCase()){case"set":l.gotop.appdata=l.gotop.name+"="+l.gotop.value;break;case"custom":break;default:e[0]=l.gotop.priority,l.gotop.appdata=e.join(",")}m(l.gotop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppgotopDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom","list"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditChatWebsiteAppintervalDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.noop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.noop.appdata)switch(l.noop.appType?l.noop.appType.toLowerCase():l.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.noop.appdata.split(",");l.noop.key=d[0],l.noop.language=d[1],l.noop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.noop.appdata.split(",");l.noop.projectId=d[0],l.noop.clientEmail=d[1],l.noop.privateKey=d[2],l.noop.language=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.noop.appdata.split(",");l.noop.accesskeyid=d[0],l.noop.secretaccesskey=d[1],l.noop.lexregion=d[2],l.noop.botname=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.noop.appdata.split(",");l.noop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.noop.text=d.slice(1,d.length).join(",");break;case"message":l.noop.text=l.noop.appdata;break;case"set":l.noop.name=l.noop.appdata.split("=")[0],l.noop.value=l.noop.appdata.split("=")[1];break;case"agi":l.noop.project=l.noop.appdata;break;default:var c=l.noop.appdata.split(",");l.noop.value=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outbounddial"===l.noop.appType.toLowerCase()&&(l.noop.prefix=l.noop.phone?l.noop.phone.split("$")[0]:void 0,l.noop.callerId=l.noop.callerID?"CALLERID(all)="+l.noop.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outboundDial"===l.noop.appType&&(l.noop.phone=i.cutdigits?(l.noop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.noop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.noop.options+="U(xcally-mixmonitor-context)"):l.noop.options=l.noop.options.replace("U(xcally-mixmonitor-context)",""));if(l.noop.appType&&"custom"===l.noop.appType);else switch((l.noop.app||l.noop.appType).toLowerCase()){case"set":l.noop.appdata=l.noop.name+"="+l.noop.value;break;case"custom":break;default:e[0]=l.noop.value,l.noop.appdata=e.join(",")}m(l.noop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppnoopDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.queue=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.queue.appdata)switch(l.queue.appType?l.queue.appType.toLowerCase():l.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.queue.appdata.split(",");l.queue.key=d[0],l.queue.language=d[1],l.queue.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.queue.appdata.split(",");l.queue.projectId=d[0],l.queue.clientEmail=d[1],l.queue.privateKey=d[2],l.queue.language=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.queue.appdata.split(",");l.queue.accesskeyid=d[0],l.queue.secretaccesskey=d[1],l.queue.lexregion=d[2],l.queue.botname=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.queue.appdata.split(",");l.queue.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.queue.text=d.slice(1,d.length).join(",");break;case"message":l.queue.text=l.queue.appdata;break;case"set":l.queue.name=l.queue.appdata.split("=")[0],l.queue.value=l.queue.appdata.split("=")[1];break;case"agi":l.queue.project=l.queue.appdata;break;default:var c=l.queue.appdata.split(",");l.queue.queue=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.queue.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.queue.queue=300,l.queue.timeout=300;function m(e){n.hide(e)}l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outbounddial"===l.queue.appType.toLowerCase()&&(l.queue.prefix=l.queue.phone?l.queue.phone.split("$")[0]:void 0,l.queue.callerId=l.queue.callerID?"CALLERID(all)="+l.queue.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outboundDial"===l.queue.appType&&(l.queue.phone=i.cutdigits?(l.queue.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.queue.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.queue.options+="U(xcally-mixmonitor-context)"):l.queue.options=l.queue.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.queues,{name:l.queue.queue});n&&(l.queue[_.capitalize("chat")+"QueueId"]=n.id);if(l.queue.appType&&"custom"===l.queue.appType);else switch((l.queue.app||l.queue.appType).toLowerCase()){case"set":l.queue.appdata=l.queue.name+"="+l.queue.value;break;case"custom":break;default:e[0]=l.queue.queue,e[1]=l.queue.timeout,l.queue.appdata=e.join(",")}m(l.queue)},l.closeDialog=m,o.hasRole("admin")?s.chatQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.chatQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:501}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.queues,{id:e.resourceId})}),t=null;if(l.queue&&(t=_.find(l.queues,{name:l.queue.queue})),t&&!_.some(n,["id",t.id])){var a=_.find(l.queues,{id:t.id});a.canSelect=!1,n.push(a)}l.queues=n})}else{var t=[],a=null;l.queue&&(a=_.find(l.queues,{name:l.queue.queue}));for(var i=0;i<l.queues.length;i++)a&&l.queues[i].id===a.id&&(l.queues[i].canSelect=!1,t.push(l.queues[i]));l.queues=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppqueueDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.system=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.system.appdata)switch(l.system.appType?l.system.appType.toLowerCase():l.system.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.system.appdata.split(",");l.system.key=d[0],l.system.language=d[1],l.system.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.system.appdata.split(",");l.system.projectId=d[0],l.system.clientEmail=d[1],l.system.privateKey=d[2],l.system.language=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.system.appdata.split(",");l.system.accesskeyid=d[0],l.system.secretaccesskey=d[1],l.system.lexregion=d[2],l.system.botname=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.system.appdata.split(",");l.system.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.system.text=d.slice(1,d.length).join(",");break;case"message":l.system.text=l.system.appdata;break;case"set":l.system.name=l.system.appdata.split("=")[0],l.system.value=l.system.appdata.split("=")[1];break;case"agi":l.system.project=l.system.appdata;break;default:var c=l.system.appdata.split(",");l.system.command=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.system.variable=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.system.variable="";function m(e){n.hide(e)}l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outbounddial"===l.system.appType.toLowerCase()&&(l.system.prefix=l.system.phone?l.system.phone.split("$")[0]:void 0,l.system.callerId=l.system.callerID?"CALLERID(all)="+l.system.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outboundDial"===l.system.appType&&(l.system.phone=i.cutdigits?(l.system.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.system.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.system.options+="U(xcally-mixmonitor-context)"):l.system.options=l.system.options.replace("U(xcally-mixmonitor-context)",""));if(l.system.appType&&"custom"===l.system.appType);else switch((l.system.app||l.system.appType).toLowerCase()){case"set":l.system.appdata=l.system.name+"="+l.system.value;break;case"custom":break;default:e[0]=l.system.command,e[1]=l.system.variable,l.system.appdata=e.join(",")}m(l.system)},l.closeDialog=m,o.hasRole("admin")?s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1012}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.variables,{id:e.resourceId})}),t=null;if(l.system&&(t=_.find(l.variables,{name:l.system.variable})),t&&!_.some(n,["id",t.id])){var a=_.find(l.variables,{id:t.id});a.canSelect=!1,n.push(a)}l.variables=n})}else{var t=[],a=null;l.system&&(a=_.find(l.variables,{name:l.system.variable}));for(var i=0;i<l.variables.length;i++)a&&l.variables[i].id===a.id&&(l.variables[i].canSelect=!1,t.push(l.variables[i]));l.variables=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteAppsystemDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.tag=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.tag.appdata)switch(l.tag.appType?l.tag.appType.toLowerCase():l.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.tag.appdata.split(",");l.tag.key=d[0],l.tag.language=d[1],l.tag.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.tag.appdata.split(",");l.tag.projectId=d[0],l.tag.clientEmail=d[1],l.tag.privateKey=d[2],l.tag.language=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.tag.appdata.split(",");l.tag.accesskeyid=d[0],l.tag.secretaccesskey=d[1],l.tag.lexregion=d[2],l.tag.botname=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.tag.appdata.split(",");l.tag.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.tag.text=d.slice(1,d.length).join(",");break;case"message":l.tag.text=l.tag.appdata;break;case"set":l.tag.name=l.tag.appdata.split("=")[0],l.tag.value=l.tag.appdata.split("=")[1];break;case"agi":l.tag.project=l.tag.appdata;break;default:var c=l.tag.appdata.split(",");l.tag.tag=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outbounddial"===l.tag.appType.toLowerCase()&&(l.tag.prefix=l.tag.phone?l.tag.phone.split("$")[0]:void 0,l.tag.callerId=l.tag.callerID?"CALLERID(all)="+l.tag.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outboundDial"===l.tag.appType&&(l.tag.phone=i.cutdigits?(l.tag.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.tag.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.tag.options+="U(xcally-mixmonitor-context)"):l.tag.options=l.tag.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.tags,{name:l.tag.tag});n&&(l.tag.TagId=n.id);if(l.tag.appType&&"custom"===l.tag.appType);else switch((l.tag.app||l.tag.appType).toLowerCase()){case"set":l.tag.appdata=l.tag.name+"="+l.tag.value;break;case"custom":break;default:e[0]=l.tag.tag,l.tag.appdata=e.join(",")}m(l.tag)},l.closeDialog=m,o.hasRole("admin")?s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1008}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.tags,{id:e.resourceId})}),t=null;if(l.tag&&(t=_.find(l.tags,{name:l.tag.tag})),t&&!_.some(n,["id",t.id])){var a=_.find(l.tags,{id:t.id});a.canSelect=!1,n.push(a)}l.tags=n})}else{var t=[],a=null;l.tag&&(a=_.find(l.tags,{name:l.tag.tag}));for(var i=0;i<l.tags.length;i++)a&&l.tags[i].id===a.id&&(l.tags[i].canSelect=!1,t.push(l.tags[i]));l.tags=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtags",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteApptagDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="CHAT.EDIT_"+(a.appType||a.app).toUpperCase(),l.tvox=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.tvox.appdata)switch(l.tvox.appType?l.tvox.appType.toLowerCase():l.tvox.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.tvox.appdata.split(",");l.tvox.key=d[0],l.tvox.language=d[1],l.tvox.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.tvox.appdata.split(",");l.tvox.projectId=d[0],l.tvox.clientEmail=d[1],l.tvox.privateKey=d[2],l.tvox.language=d[3],l.tvox.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.tvox.appdata.split(",");l.tvox.accesskeyid=d[0],l.tvox.secretaccesskey=d[1],l.tvox.lexregion=d[2],l.tvox.botname=d[3],l.tvox.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.tvox.appdata.split(",");l.tvox.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.tvox.text=d.slice(1,d.length).join(",");break;case"message":l.tvox.text=l.tvox.appdata;break;case"set":l.tvox.name=l.tvox.appdata.split("=")[0],l.tvox.value=l.tvox.appdata.split("=")[1];break;case"agi":l.tvox.project=l.tvox.appdata;break;default:var c=l.tvox.appdata.split(",");l.tvox.serviceid=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.tvox.channelid=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.tvox.tvoxurl=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.tvox.tvoxloginurl=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.tvox.tvoxsessionurl=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10),l.tvox.tvoxusername=_.isEmpty(c[5])?c[5]:isNaN(c[5])?c[5]:parseInt(c[5],10),l.tvox.tvoxpasswd=_.isEmpty(c[6])?c[6]:isNaN(c[6])?c[6]:parseInt(c[6],10),l.tvox.motionurlonring=_.isEmpty(c[7])?c[7]:isNaN(c[7])?c[7]:parseInt(c[7],10),l.tvox.motionurlonanswer=_.isEmpty(c[8])?c[8]:isNaN(c[8])?c[8]:parseInt(c[8],10),l.tvox.motiontitle=_.isEmpty(c[9])?c[9]:isNaN(c[9])?c[9]:parseInt(c[9],10),l.tvox.motionurl=_.isEmpty(c[10])?c[10]:isNaN(c[10])?c[10]:parseInt(c[10],10)}function m(e){n.hide(e)}l.tvox.type&&"outbound"===l.tvox.type.toLowerCase()&&"outbounddial"===l.tvox.appType.toLowerCase()&&(l.tvox.prefix=l.tvox.phone?l.tvox.phone.split("$")[0]:void 0,l.tvox.callerId=l.tvox.callerID?"CALLERID(all)="+l.tvox.callerID:void 0),l.saveChatWebsiteApp=function(){l.errors=[];var e=[];l.tvox.type&&"outbound"===l.tvox.type.toLowerCase()&&"outboundDial"===l.tvox.appType&&(l.tvox.phone=i.cutdigits?(l.tvox.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.tvox.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.tvox.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.tvox.options+="U(xcally-mixmonitor-context)"):l.tvox.options=l.tvox.options.replace("U(xcally-mixmonitor-context)",""));if(l.tvox.appType&&"custom"===l.tvox.appType);else switch((l.tvox.app||l.tvox.appType).toLowerCase()){case"set":l.tvox.appdata=l.tvox.name+"="+l.tvox.value;break;case"custom":break;default:e[0]=l.tvox.serviceid,e[1]=l.tvox.channelid,e[2]=l.tvox.tvoxurl,e[3]=l.tvox.tvoxloginurl,e[4]=l.tvox.tvoxsessionurl,e[5]=l.tvox.tvoxusername,e[6]=l.tvox.tvoxpasswd,e[7]=l.tvox.motionurlonring,e[8]=l.tvox.motionurlonanswer,e[9]=l.tvox.motiontitle,e[10]=l.tvox.motionurl,l.tvox.appdata=e.join(",")}m(l.tvox)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","chatWebsiteApp","chatWebsite","api","Auth","crudPermissions"],angular.module("app.chat").controller("EditChatWebsiteApptvoxDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.chatWebsiteChatCannedAnswers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.chatWebsite.getAnswers(m.query,u).$promise}function g(e){d.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(m.chatWebsiteChatCannedAnswers.rows,{id:e.id}),m.chatWebsiteChatCannedAnswers.count-=1,m.chatWebsiteChatCannedAnswers.rows.length||p(),l.success({title:"ChatCannedAnswer deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETchatWebsite"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.chatWebsite={},m.chatWebsiteChatCannedAnswers={count:0,rows:[]},m.selectedChatWebsiteChatCannedAnswers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,key,value,description",limit:10,page:1},m.init=function(e,n,t){m.chatWebsite=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.ChatWebsiteId=m.chatWebsite.id,m.query.id=m.chatWebsite.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the chatCannedAnswer?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("chatCannedAnswer #")+e.id||"chatCannedAnswer")+"</b> will be deleted.").ariaLabel("delete chatCannedAnswer").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getChatWebsiteChatCannedAnswers=p,m.createOrEditChatWebsiteChatCannedAnswer=function(e,n){o.show({controller:"CreateOrEditChatCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/chatCannedAnswers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:m.chatWebsite,chatCannedAnswer:n,chatCannedAnswers:m.chatWebsiteChatCannedAnswers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedChatWebsiteChatCannedAnswers=function(){var e=angular.copy(m.selectedChatWebsiteChatCannedAnswers);return m.selectedChatWebsiteChatCannedAnswers=[],e},m.deleteChatWebsiteChatCannedAnswer=g,m.deleteSelectedChatWebsiteChatCannedAnswers=function(e){var n=o.confirm().title("Are you sure want to delete the selected chatCannedAnswers?").htmlContent("<b>"+m.selectedChatWebsiteChatCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete chatCannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedChatWebsiteChatCannedAnswers.forEach(function(e){g(e)}),m.selectedChatWebsiteChatCannedAnswers=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.chat").controller("ChatWebsiteChatCannedAnswersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CHAT.EDIT_CHATCANNEDANSWER",g.chatCannedAnswer=angular.copy(l),g.chatCannedAnswers=r,g.newChatCannedAnswer=!1,g.chatCannedAnswer||(g.chatCannedAnswer={},g.title="CHAT.NEW_CHATCANNEDANSWER",g.newChatCannedAnswer=!0),n.params.id&&(g.chatCannedAnswer.ChatWebsiteId=n.params.id),g.addNewChatCannedAnswer=function(){g.errors=[],d.cannedAnswer.save(g.chatCannedAnswer).$promise.then(function(e){g.chatCannedAnswers.unshift(e.toJSON()),o.success({title:"ChatCannedAnswer properly created",msg:g.chatCannedAnswer.name?g.chatCannedAnswer.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveChatCannedAnswer=function(){g.errors=[],d.cannedAnswer.update({id:g.chatCannedAnswer.id},g.chatCannedAnswer).$promise.then(function(e){var n=_.find(g.chatCannedAnswers,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ChatCannedAnswer properly saved!",msg:g.chatCannedAnswer.name?g.chatCannedAnswer.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteChatCannedAnswer=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The chatCannedAnswer will be deleted.").ariaLabel("Delete ChatCannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cannedAnswer.delete({id:g.chatCannedAnswer.id}).$promise.then(function(){_.remove(g.chatCannedAnswers,{id:g.chatCannedAnswer.id}),o.success({title:"ChatCannedAnswer properly deleted!",msg:(g.chatCannedAnswer.name||"chatCannedAnswer")+" has been deleted!"}),v(g.chatCannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","chatCannedAnswers","chatCannedAnswer","api","Auth","license","setting","crudPermissions"],angular.module("app.chat").controller("CreateOrEditChatCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.chatWebsite.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.chatWebsite=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.ChatWebsiteId=m.chatWebsite.id,m.query.id=m.chatWebsite.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.chatWebsite.id,field:"ChatWebsiteId",route:"chatWebsite"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.chat").controller("ChatWebsiteDispositionsController",e)}(),function(){"use strict";function e(t,e,a){var i=this;i.chatWebsite={},i.offlineForm={},i.buttons=[{type:"label",name:"Label",icon:"icon-label"},{type:"chooseFromList",name:"Select",icon:"icon-playlist-plus"},{type:"input",name:"Input",icon:"icon-keyboard"},{type:"textarea",name:"Textarea",icon:"icon-format-text"},{type:"multipleChoices",name:"Radio Buttons",icon:"icon-radiobox-marked"},{type:"checkboxes",name:"Checkboxes",icon:"icon-checkbox-multiple-marked-outline"},{type:"agreement",name:"Agreement",icon:"icon-checkbox-marked-outline"},{type:"upload",name:"Upload",icon:"icon-upload"}],i.init=function(e){i.fields=[],i.customFields=[],i.uselessFields=["id","createdAt","updatedAt","ListId","CompanyId","$promise","$resolved"],i.chatWebsite=e,_.isEmpty(i.chatWebsite.offlineForm)&&(i.chatWebsite.offlineForm={items:[],fromKey:null});a.cmList.getCustomFields({id:i.chatWebsite.ListId}).$promise.then(function(e){for(var n=0;n<e.rows.length;n++)i.customFields.push({key:"cf_"+e.rows[n].id,value:e.rows[n].alias});return a.cmContact.describe().$promise}).then(function(e){for(var n=_.keys(e),t=0;t<n.length;t++)_.includes(i.uselessFields,n[t])||_.startsWith(n[t],"cf_")||i.fields.unshift({key:n[t],value:n[t]});return a.variable.get().$promise}).then(function(e){return i.variables=e.rows,a.mailAccount.get({fields:"id,name",raw:!0}).$promise.then(function(e){i.email_accounts=e.rows})}).catch(function(e){console.error(e)})},i.up=function(e,n){if(0!==n){var t=i.chatWebsite.offlineForm.items[n-1];i.chatWebsite.offlineForm.items[n]=t,i.chatWebsite.offlineForm.items[n-1]=angular.copy(e),i.chatWebsite.offlineForm.fromKey===n?i.chatWebsite.offlineForm.fromKey--:i.chatWebsite.offlineForm.fromKey===n-1&&i.chatWebsite.offlineForm.fromKey++}},i.down=function(e,n){if(n!==i.chatWebsite.offlineForm.items.length-1){var t=i.chatWebsite.offlineForm.items[n+1];i.chatWebsite.offlineForm.items[n]=t,i.chatWebsite.offlineForm.items[n+1]=angular.copy(e),i.chatWebsite.offlineForm.fromKey===n?i.chatWebsite.offlineForm.fromKey++:i.chatWebsite.offlineForm.fromKey===n+1&&i.chatWebsite.offlineForm.fromKey--}},i.add=function(e){i.chatWebsite.offlineForm.items.push({type:e,cmField:null,variable:null})},i.remove=function(e){var n=t.confirm().title("The component will be deleted.").textContent("Are you sure?").ariaLabel("Lucky day").ok("Ok").cancel("Cancel");t.show(n).then(function(){i.chatWebsite.offlineForm.items.splice(e,1)})},i.card_type="offline",i.email_accounts=[]}e.$inject=["$mdDialog","$document","api"],angular.module("app.chat").controller("ChatWebsiteofflineFormController",e)}(),function(){"use strict";function e(t,e,a){var i=this;i.chatWebsite={},i.onlineForm={},i.buttons=[{type:"label",name:"Label",icon:"icon-label"},{type:"chooseFromList",name:"Select",icon:"icon-playlist-plus"},{type:"input",name:"Input",icon:"icon-keyboard"},{type:"textarea",name:"Textarea",icon:"icon-format-text"},{type:"multipleChoices",name:"Radio Buttons",icon:"icon-radiobox-marked"},{type:"checkboxes",name:"Checkboxes",icon:"icon-checkbox-multiple-marked-outline"},{type:"agreement",name:"Agreement",icon:"icon-checkbox-marked-outline"}],i.init=function(e){i.fields=[],i.customFields=[],i.uselessFields=["id","createdAt","updatedAt","ListId","CompanyId","$promise","$resolved"],i.chatWebsite=e,_.isEmpty(i.chatWebsite.onlineForm)&&(i.chatWebsite.onlineForm={items:[],fromKey:null});a.cmList.getCustomFields({id:i.chatWebsite.ListId}).$promise.then(function(e){for(var n=0;n<e.rows.length;n++)i.customFields.push({key:"cf_"+e.rows[n].id,value:e.rows[n].alias});return a.cmContact.describe().$promise}).then(function(e){for(var n=_.keys(e),t=0;t<n.length;t++)_.includes(i.uselessFields,n[t])||_.startsWith(n[t],"cf_")||i.fields.unshift({key:n[t],value:n[t]});return a.variable.get().$promise}).then(function(e){return i.variables=e.rows,a.mailAccount.get({fields:"id,name",raw:!0}).$promise.then(function(e){i.email_accounts=e.rows})}).catch(function(e){console.error(e)})},i.up=function(e,n){if(0!==n){var t=i.chatWebsite.onlineForm.items[n-1];i.chatWebsite.onlineForm.items[n]=t,i.chatWebsite.onlineForm.items[n-1]=angular.copy(e),i.chatWebsite.onlineForm.fromKey===n?i.chatWebsite.onlineForm.fromKey--:i.chatWebsite.onlineForm.fromKey===n-1&&i.chatWebsite.onlineForm.fromKey++}},i.down=function(e,n){if(n!==i.chatWebsite.onlineForm.items.length-1){var t=i.chatWebsite.onlineForm.items[n+1];i.chatWebsite.onlineForm.items[n]=t,i.chatWebsite.onlineForm.items[n+1]=angular.copy(e),i.chatWebsite.onlineForm.fromKey===n?i.chatWebsite.onlineForm.fromKey++:i.chatWebsite.onlineForm.fromKey===n+1&&i.chatWebsite.onlineForm.fromKey--}},i.add=function(e){i.chatWebsite.onlineForm.items.push({type:e,cmField:null,variable:null})},i.remove=function(e){var n=t.confirm().title("The component will be deleted.").textContent("Are you sure?").ariaLabel("Lucky day").ok("Ok").cancel("Cancel");t.show(n).then(function(){i.chatWebsite.onlineForm.fromKey===e&&(i.chatWebsite.onlineForm.fromKey=null),i.chatWebsite.onlineForm.items.splice(e,1),i.chatWebsite.onlineForm.items.length||(i.chatWebsite.onlineForm.fromKey=null)})},i.card_type="online",i.email_accounts=[]}e.$inject=["$mdDialog","$document","api"],angular.module("app.chat").controller("ChatWebsiteonlineFormController",e)}(),function(){"use strict";function e(e,a){var i=this;i.chatWebsite={},i.crudPermissions,i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.chatWebsite.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.chatWebsite.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e,n){i.chatWebsite=angular.copy(e),i.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.ngFlowOptions.target="/api/chat/websites/:id/customer_avatar".replace(":id",i.chatWebsite.id),i.chatWebsite.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.chat").controller("ChatWebsitecustomerAvatarController",e)}(),function(){"use strict";function e(e,a,n,t,i,s,o,r,l,d,c){var m=this;function u(e){m.chatWebsiteInteractions=e||{count:0,rows:[]};for(var n=0;n<m.chatWebsiteInteractions.rows.length;n+=1){var t=m.chatWebsiteInteractions.rows[n];v(t),t.Owner.name=h(t)}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.chatInteraction.get(m.query,u).$promise}function g(e){d.chatInteraction.delete({id:e.id}).$promise.then(function(){_.remove(m.chatWebsiteInteractions.rows,{id:e.id}),m.chatWebsiteInteractions.count-=1,m.chatWebsiteInteractions.rows.length||p(),l.success({title:"Interaction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETchatWebsite"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(e){e.Contact?e.contactName=(e.Contact.firstName||"")+" "+(e.Contact.lastName||""):e.contactName=i.instant("DASHBOARDS.UNKNOWN")}function h(e){return e.UserId?e.UserId===m.currentUser.id?i.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">":i.instant("DASHBOARDS.NOT_ASSIGNED")}m.currentUser=c.getCurrentUser(),m.chatWebsite={},m.chatWebsiteInteractions={count:0,rows:[]},m.selectedChatWebsiteInteractions=[],m.crudPermissions,m.query={read:"null",closed:"null",sort:"-createdAt",includeAll:"true",limit:10,page:1},m.init=function(e,n,t){m.chatWebsite=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.ChatWebsiteId=m.chatWebsite.id,m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Customer Ip",column:"customerIp",type:"text",options:{excludedOperators:["$eq","$ne","$startsWith","$endsWith"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},d.tag.get({sort:"name"}).$promise.then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]})},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interaction #")+e.id||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.chatInteractionDownload=function(s,e,n){return d.chatInteraction.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="interaction"+s.id,a=new Blob(n,{type:e.type});t="chat-interaction"+s.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatWebsite.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getChatWebsiteInteractions=p,m.createOrEditChatWebsiteInteraction=function(e,n){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/interactions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:m.chatWebsite,interaction:n,interactions:m.chatWebsiteInteractions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.spychatInteraction=function(e,t){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,n){e.vm.init({id:1,channel:"chat",interaction:t,spy:!0},a.$parent.vm.setting)}})},m.openAdvancedSearch=function(){o.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,locals:{fields:m.advancedSearch.fields,color:void 0,storagePath:"chat.chatWebsites"},fullscreen:!0}).then(function(e){if(m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply){var n="";n+="||ChatWebsiteId:=$eq["+m.chatWebsite.id+"]",m.query.search=e.value?e.value+=n:e.value,p()}}).catch(function(e){l.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.exportSelectedChatWebsiteInteractions=function(){var e=angular.copy(m.selectedChatWebsiteInteractions);return m.selectedChatWebsiteInteractions=[],e},m.deleteChatWebsiteInteraction=g,m.deleteSelectedChatWebsiteInteractions=function(e){var n=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+m.selectedChatWebsiteInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedChatWebsiteInteractions.forEach(function(e){g(e)}),m.selectedChatWebsiteInteractions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.chat").controller("ChatWebsiteInteractionsController",e)}(),function(){"use strict";function e(e,a){var i=this;i.chatWebsite={},i.crudPermissions,i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.chatWebsite.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.chatWebsite.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e,n){i.chatWebsite=angular.copy(e),i.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.ngFlowOptions.target="/api/chat/websites/:id/logo".replace(":id",i.chatWebsite.id),i.chatWebsite.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.chat").controller("ChatWebsitelogoController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.chatWebsiteOfflineMessages=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.chatWebsite.getOfflineMessages(m.query,u).$promise}function g(e){d.chatOfflineMessage.delete({id:e.id}).$promise.then(function(){_.remove(m.chatWebsiteOfflineMessages.rows,{id:e.id}),m.chatWebsiteOfflineMessages.count-=1,m.chatWebsiteOfflineMessages.rows.length||p(),l.success({title:"OfflineMessage deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETchatWebsite"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.chatWebsite={},m.chatWebsiteOfflineMessages={count:0,rows:[]},m.selectedChatWebsiteOfflineMessages=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,attachments,Contact.firstName,ContactId,ChatWebsiteId",sort:"-createdAt",limit:10,page:1},m.init=function(e,n,t){m.chatWebsite=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.id=m.chatWebsite.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the offlineMessage?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("offlineMessage #")+e.id||"offlineMessage")+"</b> will be deleted.").ariaLabel("delete offlineMessage").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getChatWebsiteOfflineMessages=p,m.createOrEditChatWebsiteOfflineMessage=function(e,n){o.show({controller:"CreateOrEditOfflineMessageDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/offlineMessages/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:m.chatWebsite,offlineMessage:n,offlineMessages:m.chatWebsiteOfflineMessages.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.showOfflineMessageChatWebsiteOfflineMessage=function(e,t){o.show({controller:"ShowOfflineMessageOfflineMessageDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/offlineMessages/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,resolve:{message:["apiResolver","$stateParams",function(e,n){return e.resolve("chatOfflineMessage@get",{fields:"id,body",id:t.id})}],attachments:["apiResolver","$stateParams",function(e,n){return e.resolve("attachment@get",{fields:"id,name",ChatOfflineMessageId:t.id})}]}})},m.exportSelectedChatWebsiteOfflineMessages=function(){var e=angular.copy(m.selectedChatWebsiteOfflineMessages);return m.selectedChatWebsiteOfflineMessages=[],e},m.deleteChatWebsiteOfflineMessage=g,m.deleteSelectedChatWebsiteOfflineMessages=function(e){var n=o.confirm().title("Are you sure want to delete the selected offlineMessages?").htmlContent("<b>"+m.selectedChatWebsiteOfflineMessages.length+" selected</b> will be deleted.").ariaLabel("delete offlineMessages").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedChatWebsiteOfflineMessages.forEach(function(e){g(e)}),m.selectedChatWebsiteOfflineMessages=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.chat").controller("ChatWebsiteOfflineMessagesController",e)}(),function(){"use strict";function e(n,e,t,a,i){var s=this;s.title="CHAT.OFFLINE_MESSAGE",s.message=a,s.attachments=i.rows,s.closeDialog=function(e){n.hide(e)},s.download=function(i){return e.attachment.download({id:i.id}).$promise.then(function(e){if(e){var n=new Blob([e.buffer],{type:e.type}),t=document.createElement("a"),a=window.URL.createObjectURL(n);t.href=a,t.target="_self",t.download=i.name,document.body.appendChild(t),t.click(),setTimeout(function(){document.body.removeChild(t),window.URL.revokeObjectURL(a)},100)}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"ATTACHMENTS:GET",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.isHtml=_.isNil(s.message.body.match(/\s?<!doctype html>|(<html\b[^>]*>|<body\b[^>]*>|<x-[^>]+>)+/i))}e.$inject=["$mdDialog","api","toasty","message","attachments"],angular.module("app.chat").controller("ShowOfflineMessageOfflineMessageDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.chatWebsiteProactiveActions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.chatWebsite.getProactiveActions(m.query,u).$promise}function g(e){d.chatProactiveAction.delete({id:e.id}).$promise.then(function(){_.remove(m.chatWebsiteProactiveActions.rows,{id:e.id}),m.chatWebsiteProactiveActions.count-=1,m.chatWebsiteProactiveActions.rows.length||p(),l.success({title:"ChatProactiveAction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETchatWebsite"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.chatWebsite={},m.chatWebsiteProactiveActions={count:0,rows:[]},m.selectedChatWebsiteProactiveActions=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,name,type,selector,timeout",limit:10,page:1},m.arraytype=_.keyBy([{option:"MouseOver",value:"'mouseOver'"},{option:"Timeout",value:"'timeout'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),m.init=function(e,n,t){m.chatWebsite=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.ChatWebsiteId=m.chatWebsite.id,m.query.id=m.chatWebsite.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the chatProactiveAction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("chatProactiveAction #")+e.id||"chatProactiveAction")+"</b> will be deleted.").ariaLabel("delete chatProactiveAction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getChatWebsiteProactiveActions=p,m.createOrEditChatWebsiteChatProactiveAction=function(e,n){o.show({controller:"CreateOrEditChatProactiveActionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/proactive/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatWebsite:m.chatWebsite,chatProactiveAction:n,proactive:m.chatWebsiteProactiveActions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedChatWebsiteProactiveActions=function(){var e=angular.copy(m.selectedChatWebsiteProactiveActions);return m.selectedChatWebsiteProactiveActions=[],e},m.deleteChatWebsiteChatProactiveAction=g,m.deleteSelectedChatWebsiteProactiveActions=function(e){var n=o.confirm().title("Are you sure want to delete the selected proactive?").htmlContent("<b>"+m.selectedChatWebsiteProactiveActions.length+" selected</b> will be deleted.").ariaLabel("delete proactive").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedChatWebsiteProactiveActions.forEach(function(e){g(e)}),m.selectedChatWebsiteProactiveActions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.chat").controller("ChatWebsiteProactiveActionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CHAT.EDIT_CHATPROACTIVEACTION",g.chatProactiveAction=angular.copy(l),g.proactive=r,g.newChatProactiveAction=!1,g.chatProactiveAction||(g.chatProactiveAction={type:"mouseOver"},g.title="CHAT.NEW_CHATPROACTIVEACTION",g.newChatProactiveAction=!0),n.params.id&&(g.chatProactiveAction.ChatWebsiteId=n.params.id),g.addNewChatProactiveAction=function(){g.errors=[],d.chatProactiveAction.save(g.chatProactiveAction).$promise.then(function(e){g.proactive.unshift(e.toJSON()),o.success({title:"ChatProactiveAction properly created",msg:g.chatProactiveAction.name?g.chatProactiveAction.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatProactiveAction.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatProactiveAction.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveChatProactiveAction=function(){g.errors=[],d.chatProactiveAction.update({id:g.chatProactiveAction.id},g.chatProactiveAction).$promise.then(function(e){var n=_.find(g.proactive,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ChatProactiveAction properly saved!",msg:g.chatProactiveAction.name?g.chatProactiveAction.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatProactiveAction.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatProactiveAction.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteChatProactiveAction=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The chatProactiveAction will be deleted.").ariaLabel("Delete ChatProactiveAction").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.chatProactiveAction.delete({id:g.chatProactiveAction.id}).$promise.then(function(){_.remove(g.proactive,{id:g.chatProactiveAction.id}),o.success({title:"ChatProactiveAction properly deleted!",msg:(g.chatProactiveAction.name||"chatProactiveAction")+" has been deleted!"}),v(g.chatProactiveAction)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.chatProactiveAction.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatProactiveAction.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","proactive","chatProactiveAction","api","Auth","license","setting","crudPermissions"],angular.module("app.chat").controller("CreateOrEditChatProactiveActionDialogController",e)}(),function(){"use strict";function e(e){var n=this;n.chatWebsite={},n.init=function(e){n.chatWebsite=e,n.start="\n\x3c!-- START Motion Chat Script --\x3e",n.script='\n <script src="'+n.chatWebsite.remote+"/api/chat/websites/"+n.chatWebsite.id+"/snippet?token="+n.chatWebsite.token+'"><\/script>',n.end="\n\x3c!-- START Motion Chat Script --\x3e"},n.info={},e.$watch("vm_ac.chatWebsite.remote",function(e){n.script='\n <script src="'+n.chatWebsite.remote+"/api/chat/websites/"+n.chatWebsite.id+"/snippet?token="+n.chatWebsite.token+'"><\/script>'})}e.$inject=["$scope"],angular.module("app.chat").controller("ChatWebsiteScriptController",e)}(),function(){"use strict";function e(e,a){var i=this;i.chatWebsite={},i.crudPermissions,i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.chatWebsite.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.chatWebsite.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e,n){i.chatWebsite=angular.copy(e),i.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.ngFlowOptions.target="/api/chat/websites/:id/system_avatar".replace(":id",i.chatWebsite.id),i.chatWebsite.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.chat").controller("ChatWebsitesystemAvatarController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=s,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=n.protocol()+"://"+n.host(),p.chatWebsite=c||e.params.chatWebsite||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=e.params.tab||0,p.agentadddialog=function(e,n){t.show({controller:"ChatWebsiteagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatWebsites/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{chatWebsite:e,chatWebsites:p.chatWebsites?p.chatWebsites.rows:[],crudPermissions:p.crudPermissions,realtime:!1}})},p.alert=l.info,p.gotoChatWebsites=function(){e.go("app.chat.chatWebsites",{},{reload:"app.chat.chatWebsites"})},p.saveChatWebsite=function(){r.chatWebsite.update({id:p.chatWebsite.id},p.chatWebsite).$promise.then(function(){l.success({title:"ChatWebsite updated!",msg:p.chatWebsite.name?p.chatWebsite.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETchatWebsite",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.lists,{id:e.resourceId})}),t=null;if(p.chatWebsite&&(t=_.find(p.lists,{id:Number(p.chatWebsite.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.lists,{id:t.id});a.canSelect=!1,n.push(a)}p.lists=n})}else{var t=[],a=null;p.chatWebsite&&(a=_.find(p.lists,{id:Number(p.chatWebsite.ListId)}));for(var i=0;i<p.lists.length;i++)a&&p.lists[i].id===a.id&&(p.lists[i].canSelect=!1,t.push(p.lists[i]));p.lists=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){p.interval=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){p.interval=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.interval,{id:e.resourceId})}),t=null;if(p.chatWebsite&&(t=_.find(p.interval,{id:Number(p.chatWebsite.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.interval,{id:t.id});a.canSelect=!1,n.push(a)}p.interval=n})}else{var t=[],a=null;p.chatWebsite&&(a=_.find(p.interval,{id:Number(p.chatWebsite.IntervalId)}));for(var i=0;i<p.interval.length;i++)a&&p.interval[i].id===a.id&&(p.interval[i].canSelect=!1,t.push(p.interval[i]));p.interval=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.pauses,{id:e.resourceId})});p.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),p.pauses=n})}else p.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","chatWebsite","userProfile","userProfileSection"],angular.module("app.chat").controller("ChatWebsiteController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c,m){var u=this,p=["loggedIn","available","waiting","paused"],g=n(function(){},999);u.currentUser=c.getCurrentUser(),u.queues=s,u.userProfileSection=d&&1==d.count?d.rows[0]:null,u.crudPermissions=c.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.query={id:c.isUser()?u.currentUser.id:void 0,section:c.isUser()?"ChatQueues":void 0,channel:"chat",sort:"name",limit:10,page:1},u.getQueues=function(){u.query.offset=(u.query.page-1)*u.query.limit,o.realtime.getQueues(u.query).$promise.then(function(e){u.queues=e}).catch(function(e){l.error({title:i.instant("CHAT.CHATQUEUES"),msg:e.status?JSON.stringify(e.data):e.toString()})})},u.editQueue=function(e,n){t.show({controller:"CreateOrEditChatQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatQueue:n,chatQueues:u.queues.rows,license:null,setting:null,crudPermissions:u.crudPermissions}})},u.addAgent=function(e,n){t.show({controller:"ChatQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/chat/views/chatQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{chatQueue:n,chatQueues:u.queues.rows,realtime:!1,crudPermissions:u.crudPermissions}})},r.on("chat_queue:save",function(e){var n=_.find(u.queues.rows,["id",e.id]);n&&_.merge(n,_.pick(e,p))}),r.on("userChatQueue:save",function(e){var n=_.find(u.queues.rows,["id",e.ChatQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),r.on("userChatQueue:remove",function(e){var n=_.find(u.queues.rows,["id",e.ChatQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),r.on("user:update",function(t){u.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&m.updateQueue(t,e,n,"chat")})}),e.$on("$destroy",function(){r.removeAllListeners("chat_queue:save"),r.removeAllListeners("userChatQueue:remove"),r.removeAllListeners("userChatQueue:save"),r.removeAllListeners("user:update"),g&&n.cancel(g)})}e.$inject=["$scope","$mdDialog","$document","$interval","$translate","queues","api","socket","toasty","userProfileSection","Auth","realtimeManager"],angular.module("app.chat").controller("QueuesChatRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){return{status:{registered:"green-300-fg icon-checkbox-marked-circle",unregistered:"red-300-fg icon-close-circle",lagged:"red-300-fg icon-close-circle",reachable:"green-300-fg icon-checkbox-marked-circle",unreachable:"red-300-fg icon-close-circle",unknown:"grey-fg icon-minus-circle"},state:{unknown:"grey-fg icon-phone-hangup",not_inuse:"green-300-fg icon-phone-hangup",inuse:"red-300-fg icon-phone-in-talk",busy:"red-300-fg icon-phone-locked",invalid:"grey-fg icon-phone-hangup",unavailable:"grey-fg icon-phone-hangup",ringing:"blue-300-fg icon-phone-incoming",ringinuse:"blue-300-fg icon-phone-incoming",onhold:"blue-300-fg icon-phone-paused"},channelStatus:{ring:"blue-300-fg icon-phone-incoming",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"},channelStatusOut:{ring:"blue-300-fg icon-phone-outgoing",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"}}})}(),function(){"use strict";function e(e,t,n){switch(this.selectedTab=0,t.current.name){case"app.chat.realtime.agents":this.selectedTab=0;break;case"app.chat.realtime.queues":this.selectedTab=1;break;default:this.selectedTab=0,t.go("app.chat.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.chat.realtime.agents");break;case 1:t.go("app.chat.realtime.queues");break;default:t.go("app.chat.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.chat").controller("ChatRealtimeController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.companies=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="companies",f.listOrder="",f.listOrderAsc=null,f.selectedCompanies=[],f.query={fields:"createdAt,updatedAt,id,name,phone,vat,fax,companyId,type,website,emailDomain,email,description,sStreet,sPostalCode,sCity,sCountry,street,postalCode,city,country",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){a.go("app.contactmanager.companies.edit",{id:e.id,company:e,crudPermissions:f.crudPermissions})},f.gotocontactsgoto=function(t,e){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:303}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?a.go("app.contactmanager.contacts",{CompanyId:t.id}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});a.go("app.contactmanager.contacts",{CompanyId:t.id})}},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("company")+"?").htmlContent("<b>"+(e.name||"company")+"</b> will be deleted.").ariaLabel("delete company").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getCompanies=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.cmCompany.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Companies",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditCompany=function(e,n){i.show({controller:"CreateOrEditCompanyDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/companies/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{company:n,companies:f.companies.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteCompany=y,f.exportSelectedCompanies=function(){var e=angular.copy(f.selectedCompanies);return f.selectedCompanies=[],e},f.deleteSelectedCompanies=function(e){var n=i.confirm().title("Are you sure want to delete the selected companies?").htmlContent("<b>"+f.selectedCompanies.length+" selected</b> will be deleted.").ariaLabel("delete Companys").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedCompanies.forEach(function(e){y(e)}),f.selectedCompanies=[]})},f.deselectCompanies=function(){f.selectedCompanies=[]},f.selectAllCompanies=function(){f.selectedCompanies=f.companies.rows};var b=!0,A=1;function E(e){f.companies=e||{count:0,rows:[]}}function y(e){m.cmCompany.delete({id:e.id}).$promise.then(function(){_.remove(f.companies.rows,{id:e.id}),f.companies.count-=1,f.companies.rows.length||f.getCompanies(),p.success({title:_.startCase("Company")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcmCompany"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEcmCompany",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getCompanies())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","companies","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.contactmanager").controller("CompaniesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CONTACTMANAGER.EDIT_COMPANY",g.company=angular.copy(l),g.companies=r,g.newCompany=!1,g.company||(g.company={},g.title="CONTACTMANAGER.NEW_COMPANY",g.newCompany=!0),g.addNewCompany=function(){g.errors=[],d.cmCompany.save(g.company).$promise.then(function(e){g.companies.unshift(e.toJSON()),o.success({title:"Company properly created",msg:g.company.name?g.company.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCompany.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCompany.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveCompany=function(){g.errors=[],d.cmCompany.update({id:g.company.id},g.company).$promise.then(function(e){var n=_.find(g.companies,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Company properly saved!",msg:g.company.name?g.company.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCompany.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCompany.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteCompany=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The company will be deleted.").ariaLabel("Delete Company").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cmCompany.delete({id:g.company.id}).$promise.then(function(){_.remove(g.companies,{id:g.company.id}),o.success({title:"Company properly deleted!",msg:(g.company.name||"company")+" has been deleted!"}),v(g.company)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCompany.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCompany.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","companies","company","api","Auth","license","setting","crudPermissions"],angular.module("app.contactmanager").controller("CreateOrEditCompanyDialogController",e)}(),function(){"use strict";function e(a,e,n,t,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.company=c||a.params.company||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=a.params.tab||0,u.gotogoto=function(t,e){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:303}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?a.go("app.contactmanager.contacts",{CompanyId:t.id}):l.info({title:i.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:i.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});a.go("app.contactmanager.contacts",{CompanyId:t.id})}},u.alert=l.info,u.gotoCompanies=function(){a.go("app.contactmanager.companies",{},{reload:"app.contactmanager.companies"})},u.saveCompany=function(){r.cmCompany.update({id:u.company.id},u.company).$promise.then(function(){l.success({title:"Company updated!",msg:u.company.name?u.company.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmCompany",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","company","userProfileSection"],angular.module("app.contactmanager").controller("CompanyController",e)}(),function(){"use strict";function e(n,i,t,a,e,s,o,r,l,d,c,m,u,p,g,v,h,f,b){var A=this;A.currentUser=f.getCurrentUser(),A.license=b,A.userProfile=r,A.userProfileSection=l&&1==l.count?l.rows[0]:null,A.crudPermissions=f.parseCrudPermissions(A.userProfileSection?A.userProfileSection.crudPermissions:null);var E=60,y=1024*E*1024;A.ngFlowOptions={target:"api/cm/contacts/upload",singleFile:!0,maxChunkRetries:1,chunkSize:y,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},A.contacts=c||{count:0,rows:[]},A.options={hidden:!1,hover:!1,isOpen:!1},A.table="cm_contacts",A.selectedContacts=[],A.lists=m||{rows:[],count:0},A.companies=p||{rows:[],count:0},A.tags=v||{rows:[],count:0},A.listsMap=u,A.companiesMap=g,A.selectedTags=[],A.selectedList=null,A.selectedCompany=null,A.query=_.merge({includeAll:!0,sort:"-updatedAt",limit:10,offset:0,page:1},e),A.editdialog=function(e,n){a.go("app.contactmanager.contacts.edit",{id:e.id,crudPermissions:A.crudPermissions})},A.deleteconfirm=function(e,n){var t=s.confirm().title("Are you sure want to delete the contact?").htmlContent("<b>"+(e.firstName||e.email||e.phone||"Contact")+"</b> will be deleted.").ariaLabel("delete contact").targetEvent(n).ok("OK").cancel("CANCEL");s.show(t).then(function(){C(e)})},A.success=I,A.getContacts=function(){A.query.offset=(A.query.page-1)*A.query.limit,f.hasRole("admin")?A.promise=d.cmContact.get(A.query,I).$promise:(A.query.id=A.userProfile.id,A.query.ListId=A.query.ListId?A.query.ListId:_.map(A.lists.rows,"id"),A.query.CompanyId=A.query.CompanyId?A.query.CompanyId:_(A.companies.rows).filter({canSelect:void 0}).map("id").value(),A.query.section="Contacts",A.promise=d.userProfile.getResources(A.query,I).$promise)},A.getAssignedCompanies=function(){if(!f.hasRole("admin")){var e=_(A.contacts.rows).map(function(e){return{id:e.CompanyId}}).uniqBy("id").filter(function(e){return e.id&&0<e.id}).pullAllBy(A.companies.rows,"id").value();if(!_.isEmpty(e)){var n=[];e.forEach(function(e){n.push(d.cmCompany.get({id:e.id,fields:"id,name"}).$promise)}),o.all(n).then(function(e){e.forEach(function(e){var n=e.toJSON();n.canSelect=!1,A.companies.rows.push(n);var t={};t[n.id]=n.name,A.companiesMap=_.assignIn(A.companiesMap,t)})}).catch(function(e){h.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_COMPANY",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}}},A.mergeContact=function(e,n){s.show({controller:"MergeContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/merge/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"id,name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Lists",fields:"id,name",nolimit:!0})}]},locals:{contacts:A.contacts.rows}})},A.duplicateContact=function(e,n){s.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"id,name",nolimit:!0}):e.resolve("userProfile@getResources",{id:n.getCurrentUser().userProfileId,section:"Lists",fields:"id,name",nolimit:!0})}]},locals:{contacts:A.contacts.rows}})},A.createOrEditContact=function(e,n){n&&n.dateOfBirth&&(n.dateOfBirth=new Date(n.dateOfBirth));s.show({controller:"CreateOrEditContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/create/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{ListId:A.query.ListId||a.params.ListId,CompanyId:A.query.CompanyId||a.params.CompanyId,contact:n,contacts:A.contacts.rows,companies:A.companies,lists:A.lists,setting:null,crudPermissions:A.crudPermissions}})},A.deleteContact=C,A.exportSelectedContacts=function(){var e=angular.copy(A.selectedContacts);return A.selectedContacts=[],e},A.deleteSelectedContacts=function(e){var n=s.confirm().title("Are you sure want to delete the selected contacts?").htmlContent("<b>"+A.selectedContacts.length+" selected</b> will be deleted.").ariaLabel("delete Contacts").targetEvent(e).ok("OK").cancel("CANCEL");s.show(n).then(function(){A.selectedContacts.forEach(function(e){C(e)}),A.selectedContacts=[]})},A.deselectContacts=function(){A.selectedContacts=[]},A.selectAllContacts=function(){A.selectedContacts=A.contacts.rows},A.createTag=function(e){var n=s.prompt().title("What would you name your tag?").placeholder("Tag name").ariaLabel("Tag name").targetEvent(e).ok("Ok").cancel("Cancel");return s.show(n).then(function(e){if(e)return d.tag.save({name:e});h.error({title:"Error creating tag!",msg:"Invalid tag name."})}).then(function(e){e&&(A.tags.rows.push(e),h.success({title:"Tag properly created!",msg:e.tag?e.name+" has been created!":""}))})},A.createList=function(e){var n=s.prompt().title("What would you name your list?").placeholder("List name").ariaLabel("List name").targetEvent(e).ok("Ok").cancel("Cancel");return s.show(n).then(function(e){if(e)return d.cmList.save({name:e});h.error({title:"Error creating list!",msg:"Invalid list name."})}).then(function(e){e&&(A.lists.rows.push(e),h.success({title:"List properly created!",msg:e.name?e.name+" has been created!":""}))})},A.createCompany=function(e){var n=s.prompt().title("What would you name your company?").placeholder("Company name").ariaLabel("Company name").targetEvent(e).ok("Ok").cancel("Cancel");return s.show(n).then(function(e){if(e)return d.cmCompany.save({name:e});h.error({title:"Error creating company!",msg:"Invalid company name."})}).then(function(e){e&&(A.companies.rows.push(e),h.success({title:"Company properly created!",msg:e.name?e.name+" has been created!":""}))})},A.importContacts=function(e,n,t){var a=JSON.parse(n);s.show({controller:"ImportContactsDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/import/import.html",parent:angular.element(i.body),clickOutsideToClose:!1,locals:{lists:m,companies:p,file:a.file,fields:a.fields,license:A.license}}).then(function(){A.getContacts()}).catch(function(e){console.error()})},A.hasPermission=function(){return f.hasPermission(303)||f.hasRole("admin")},A.fileAdded=function(e){var n=["csv"];if(!_.includes(n,e.getExtension()))return h.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(e.size>y)return h.error({title:"File too big",msg:"The max allowed size is "+E+"MB"}),!1;return!0},a.params.ListId&&(A.selectedList=a.params.ListId),a.params.CompanyId&&(A.selectedCompany=a.params.CompanyId),n.$watch("vm.options.isOpen",function(e){e?t(function(){n.tooltipVisible=A.options.isOpen},600):n.tooltipVisible=A.options.isOpen});var S=!0,T=1;function I(e){A.contacts=e||{count:0,rows:[]}}function C(e){d.cmContact.delete({id:e.id}).$promise.then(function(){_.remove(A.contacts.rows,{id:e.id}),A.contacts.count-=1,A.contacts.rows.length||A.getContacts(),h.success({title:"Contact deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){A.errors=e.data.errors||[{message:e.toString(),type:"api.contact.delete"}];for(var n=0;n<e.data.errors.length;n++)h.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else h.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}n.$watch("vm.query.filter",function(e,n){S?t(function(){S=!1}):(n||(T=A.query.page),e!==n&&(A.query.page=1),e||(A.query.page=T),A.getContacts())},!0),n.$watch("vm.selectedList",function(e,n){e!==n&&(A.query.ListId=A.selectedList||void 0,A.getContacts())}),n.$watch("vm.selectedCompany",function(e,n){e!==n&&(A.query.CompanyId=A.selectedCompany||void 0,A.getContacts())}),n.$watch("vm.selectedTags",function(e,n){(e.length||n.length)&&A.getContacts()})}e.$inject=["$scope","$document","$timeout","$state","$stateParams","$mdDialog","$q","userProfile","userProfileSection","api","contacts","lists","listsMap","companies","companiesMap","tags","toasty","Auth","license"],angular.module("app.contactmanager").controller("ContactsController",e)}(),function(){"use strict";function e(t,a,e,n,i,s,o,r,l,d){var c=this;function m(e){if(e)return l.cmList.getCustomFields({id:e}).$promise.then(function(e){if(e){c.customFields=e;var n=_.map(c.customFields.rows,function(e){return"cf_"+e.id});return l.cmContact.get({id:c.contact.id,attributes:n,raw:!0}).$promise.then(function(e){c.contact=_.merge(c.contact,e)})}}).then(function(){c.customFields.rows.forEach(function(e){"datetime"===e.type&&c.contact["cf_"+e.id]&&(c.contact["cf_"+e.id]=u(c.contact["cf_"+e.id]))}),Object.keys(c.contact).forEach(function(e){if(_.startsWith(e,"cf_")){var n=e.split("_")[1];_.some(c.customFields.rows,["id",Number(n)])||delete c.contact["cf_"+n]}})}).catch(function(e){console.error(e)});c.customFields={rows:[],count:0}}function u(e){return null===e?void 0:new Date(e)}function p(){t.hide()}c.errors=[],c.title="CONTACTMANAGER.EDIT_CONTACT",c.crudPermissions=d,c.contact=angular.copy(s),c.contacts=e||{rows:[],count:0},c.lists=n||{rows:[],count:0},c.companies=i||{rows:[],count:0},c.customFields={rows:[],count:0},c.newContact=!1,c.contact?(delete c.contact.List,m(c.contact.ListId)):(c.contact={ListId:o?parseInt(o,10):void 0,CompanyId:r?parseInt(r,10):void 0},c.title="CONTACTMANAGER.NEW_CONTACT",c.newContact=!0),c.addNewContact=function(){c.errors=[],l.cmContact.save(c.contact).$promise.then(function(e){c.contacts.unshift(e),a.success({title:"Contact properly created",msg:c.contact.name?c.contact.name+" has been created!":""}),p()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.user.save"}];for(var n=0;n<e.data.errors.length;n++)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contacts.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.saveContact=function(){c.errors=[],l.cmContact.update({id:c.contact.id},c.contact).$promise.then(function(e){var n=_.find(c.contacts,{id:e.id});n&&_.merge(n,e),a.success({title:"Contact properly saved!",msg:c.contact.name?c.contact.name+" has been saved!":""}),p()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.contact.update"}];for(var n=0;n<e.data.errors.length;n++)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.deleteContact=function(e){c.errors=[];var n=t.confirm().title("Are you sure?").content("The contact will be deleted.").ariaLabel("Delete Contact").ok("Delete").cancel("Cancel").targetEvent(e);t.show(n).then(function(){l.cmContact.delete({id:c.contact.id}).$promise.then(function(){_.remove(c.contacts,{id:c.contact.id}),a.success({title:"Contact properly deleted!",msg:c.contact.name?c.contact.name+" has been deleted!":""}),p()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.contact.delete"}]})},function(){})},c.closeDialog=p,c.getCustomFields=m,c.getDateFromString=u}e.$inject=["$mdDialog","toasty","contacts","lists","companies","contact","ListId","CompanyId","api","crudPermissions"],angular.module("app.tools").controller("CreateOrEditContactDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this;function r(){e.hide()}o.errors=[],o.title="CONTACTMANAGER.COPY_CONTACT",o.contact=angular.copy(t),o.lists=i||{rows:[],count:0},o.addNewContact=function(){o.errors=[],delete o.contact.id,o.contact.tags&&!o.contact.tags.length&&delete o.contact.tags;s.cmContact.save(o.contact).$promise.then(function(e){a.unshift(e),n.success({title:"Contact properly created",msg:o.contact.name?o.contact.name+" has been created!":""}),r()}).catch(function(e){console.error(e),o.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}]})},o.closeDialog=r}e.$inject=["$mdDialog","toasty","contact","contacts","lists","api"],angular.module("app.tools").controller("DuplicateContactDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){var d=this;function c(e){a.hide(e)}d.errors=[],d.title="CONTACTMANAGER.EDIT_HOPPER",d.hopper=angular.copy(o),d.hoppers=s,d.newHopper=!1,d.crudPermissions=l,d.hopper||(d.hopper={},d.title="CONTACTMANAGER.NEW_HOPPER",d.newHopper=!0),d.saveHopper=function(){d.errors=[],r.cmHopper.update({id:d.hopper.id},d.hopper).$promise.then(function(e){var n=_.find(d.hoppers,{id:e.id});n&&_.merge(n,e),i.success({title:"Hopper properly saved!",msg:d.hopper.name?d.hopper.name+" has been saved!":""}),c(e)}).catch(function(e){console.error(e),d.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.update"}]})},d.getDateFromString=function(e){return null===e?void 0:new Date(e)},d.closeDialog=c}e.$inject=["$scope","$state","$location","$mdDialog","toasty","hoppers","hopper","api","crudPermissions"],angular.module("app.contactmanager.contacts").controller("EditHopperDialogController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m,u,p,g,v,h,f,b,A,E,y){var S=this;function T(n){return function(e){S[n]=e||{count:0,rows:[]}}}function I(){S.queryHopper.offset=(S.queryHopper.page-1)*S.queryHopper.limit,S.queryHopper.id=S.contact.id,S.promise=r.cmContact.getHoppers(S.queryHopper,T("hoppers")).$promise}function C(){S.queryFinal.offset=(S.queryFinal.page-1)*S.queryFinal.limit,S.queryFinal.id=S.contact.id,S.promise=r.cmContact.getHopperFinals(S.queryFinal,T("finals")).$promise}function O(){S.queryHistory.offset=(S.queryHistory.page-1)*S.queryHistory.limit,S.queryHistory.id=S.contact.id,S.promise=r.cmContact.getHopperHistories(S.queryHistory,T("histories")).$promise}function w(e){S.journeyIsLoading=!0;var n=_.merge(S.journeyOptions,{id:S.contact.id,offset:e||0});return y.get(S.journey,n).then(function(e){S.journey=e.journey,S.canLoadMoreJourney=e.loadMore}).finally(function(){S.journeyIsLoading=!1})}S.currentUser=A.getCurrentUser(),S.license=b,S.journey=[],S.contact=l||{},S.hoppers=d||{rows:[],count:0},S.finals=c||{rows:[],count:0},S.histories=m||{rows:[],count:0},S.companies=p||{rows:[],count:0},S.lists=g||{rows:[],count:0},S.customFields=v||{rows:[],count:0},S.tags=h||{rows:[],count:0},S.jscriptySessions=f||{rows:[],count:0},S.journeyOptions=y.getQuery(),S.quickFilters=y.getQuickFilters(),S.journeyTimelineOptions={scrollEl:"#journey-content"},S.userProfileSection=E&&1==E.count?E.rows[0]:null,S.crudPermissions=A.parseCrudPermissions(S.userProfileSection?S.userProfileSection.crudPermissions:null),S.arraypriority=_.keyBy([{option:"Highest",value:"'4'"},{option:"High",value:"'3'"},{option:"Medium",value:"'2'"},{option:"Low",value:"'1'"},{option:"Lowest",value:"'0'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),S.queryHopper={fields:"id,phone,scheduledat,priority,recallme,VoiceQueueId,CampaignId,UserId",sort:"-updatedAt",limit:10,page:1},S.queryFinal={fields:"id,uniqueid,calleridnum,statedesc,starttime,disposition",sort:"-id",limit:10,page:1},S.queryHistory={fields:"id,uniqueid,calleridnum,statedesc,scheduledat,starttime,endtime",sort:"-id",limit:10,page:1},S.queryJscriptySession={fields:"id,starttime,endtime,membername,projectname",sort:"-starttime",limit:10,page:1},S.selectedTab=n.params.tab||0,S.onInit=function(){A.hasRole("admin")||(function(){if(!_.some(S.companies.rows,{id:S.contact.CompanyId}))r.cmCompany.get({id:S.contact.CompanyId,fields:"id,name"}).$promise.then(function(e){var n=e.toJSON();n.canSelect=!1,S.companies.rows.push(n)}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"GET_COMPANY",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}(),function(){var e=_.map(S.contact.Tags,function(e){return{id:e.id,name:e.name}});if(!_.isEmpty(e))for(var n=0;n<e.length;n++)_.some(S.tags.rows,{id:e.id})||(e[n].canSelect=!1,S.tags.rows.push(e[n]))}());return r.user.get({fields:"id,fullname",nolimit:!0}).$promise.then(function(e){S.users=e||{count:0,rows:[]},S.usersMap=_.mapValues(_.keyBy(S.users.rows,"id"),"fullname"),S.Tags=_.map(S.contact.Tags,"id")}).finally(function(){S.contact&&w()})},S.gotoContacts=function(){n.go("app.contactmanager.contacts",{},{reload:!0,notify:!0})},S.duplicateContact=function(e){i.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,resolve:{lists:["apiResolver","Auth",function(e,n){return n.hasRole("admin")?e.resolve("cmList@get",{fields:"id,name"}):e.resolve("userProfile@getResources",{id:S.currentUser.userProfileId,section:"Lists",fields:"id,name"})}]},locals:{contacts:u.rows,contact:l}})},S.saveContact=function(){r.cmContact.update({id:S.contact.id},S.contact).$promise.then(function(){o.success({title:"Contact updated!",msg:S.contact.name?S.contact.name+" has been updated!":""})}).then(function(){return r.cmContact.setTags({id:S.contact.id,ids:S.Tags}).$promise}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEcontact",msg:e.data?JSON.stringify(e.data):e.toString()})})},S.editCompany=function(e,n){var t=_.find(S.companies.rows,{id:n});i.show({controller:"CreateOrEditCompanyDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/companies/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{companies:[],license:null,setting:null,crudPermissions:!1===t.canSelect?{readOnly:!0,canEdit:!1,canDelete:!1}:r.userProfileSection.get({userProfileId:S.currentUser.userProfileId,sectionId:302}).$promise.then(function(e){var n=e.rows?e.rows[0]:null;return A.parseCrudPermissions(n?n.crudPermissions:null)}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"API:GET_COMPANY_SECTION",msg:e.data?JSON.stringify(e.data):e.toString()})})},resolve:{company:["apiResolver",function(e){return e.resolve("cmCompany@get",{id:n})}]}})},S.onSelectList=function(e){if(S.contact.ListId){var n=i.confirm().title("You are selecting the list number: "+S.contact.ListId).textContent("Warning! You won't select a different list for the contact "+S.contact.firstName||S.contact.lastName||S.contact.id).targetEvent(e).ok("Ok").cancel("Cancel");return i.show(n).then(S.onSelectListSuccess).catch(function(){S.contact.ListId=null})}},S.onSelectListSuccess=function(){return r.cmList.getCustomFields({id:S.contact.ListId}).$promise.then(function(e){S.customFields=e||{rows:[],count:0}}).catch(function(e){console.error(e)})},S.getDateFromString=function(e){return null===e?void 0:new Date(e)},S.getHoppers=I,S.getFinals=C,S.getHistories=O,S.getJscriptySessions=function(){S.queryJscriptySession.offset=(S.queryJscriptySession.page-1)*S.queryJscriptySession.limit,S.queryJscriptySession.id=S.contact.id,S.promise=r.cmContact.getJscriptySessions(S.queryJscriptySession,T("jscriptySessions")).$promise},S.deleteconfirm=function(n,e){var t=i.confirm().title("Are you sure want to delete the agent?").htmlContent("<b>"+(n.phone||"hopper")+"</b> will be deleted.").ariaLabel("delete hopper").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){var e;e=n,r.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(S.hoppers.rows,{id:e.id}),S.hoppers.count--,S.hoppers.rows.length||S.getHoppers(),o.success({title:"Hopper deleted!",msg:e.phone?e.phone+" has been deleted!":""})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEhopper",msg:e.data?JSON.stringify(e.data):e.toString()})})},function(){console.log("CANCEL")})},S.editHopper=function(e,n){i.show({controller:"CreateOrEditHopperVoiceQueueIdDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hoppers/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{hopper:n,hoppers:S.hoppers.rows,license:null,setting:null,crudPermissions:S.crudPermissions}})},S.createOrEditIvrCampaignHopper=function(e,n){i.show({controller:"CreateOrEditHopperCampaignIdDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hoppers/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{hopper:n,hoppers:S.hoppers.rows,license:null,setting:null,crudPermissions:S.crudPermissions}})},S.getCustomerJourney=w,S.loadMoreJourney=function(){return s(function(e,n){var t=S.journey.length;return e(w(t))})};var R=!0,x=1;e.$watch("vm.queryHopper.filter",function(e,n){R?t(function(){R=!1}):(n||(x=S.queryHopper.page),e!==n&&(S.queryHopper.page=1),e||(S.queryHopper.page=x),I())}),e.$watch("vm.queryFinal.filter",function(e,n){R?t(function(){R=!1}):(n||(x=S.queryFinal.page),e!==n&&(S.queryFinal.page=1),e||(S.queryFinal.page=x),C())}),e.$watch("vm.queryHistory.filter",function(e,n){R?t(function(){R=!1}):(n||(x=S.queryHistory.page),e!==n&&(S.queryHistory.page=1),e||(S.queryHistory.page=x),O())})}e.$inject=["$scope","$timeout","$state","$document","$mdDialog","$q","toasty","api","contact","hoppers","finals","histories","contacts","companies","lists","customFields","tags","jscriptySessions","license","Auth","userProfileSection","customerJourneyManager"],angular.module("app.contactmanager.contacts").controller("ContactController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;g.processing=!1,g.stopping=!0,g.license=p,g.pid=0,g.result={finish:!1,rows:0,affectedRows:0,failedRows:0,duplicatedRows:0,errors:[]},g.contactFields=[{key:"firstName",required:!0},{key:"lastName",required:!1},{key:"phone",required:!0},{key:"mobile",required:!1},{key:"email",required:!1},{key:"dateOfBirth",required:!1},{key:"country",required:!1},{key:"city",required:!1},{key:"street",required:!1},{key:"postalCode",required:!1},{key:"fax",required:!1}],g.motionBullFields=[{key:"UserId",required:!1},{key:"scheduledat",required:!1},{key:"priority",required:!1}],g.binding={},g.duplicate=[],g.lists=s||{rows:[],count:0},g.companies=o||{rows:[],count:0},g.customFields={rows:[],count:0},g.fields=u||[],g.closeDialog=function(){d.removeAllListeners("contact:import:"+v),n.hide()},g.onChangeList=function(){return l.cmList.getCustomFields({id:g.ListId}).$promise.then(function(e){g.customFields=e}).catch(function(e){console.error(e)})},g.uploadCsv=function(){g.processing=moment(),l.cmContact.import({id:m.filename,binding:g.binding,ListId:g.ListId,CompanyId:g.CompanyId,duplicates:g.duplicates,socket_timestamp:v}).$promise.then(function(e){g.stopping=!1,e&&e.pid&&(g.pid=e.pid)}).catch(function(e){g.processing=!1,r.error({title:"Import process failed!",msg:"Please retry with a new file"})})},g.getHeaderErrors=function(){var e=u;return e.push("contact_import_error"),e},g.getArrayErrors=function(){for(var e=[],n=0;n<g.result.errors.length;n+=1){var t=g.result.errors[n].row;t.contact_import_error=g.result.errors[n].message,e.push(t)}return e},g.stopUpload=function(){if(g.stopping=!0,g.pid)return l.system.killProcess({pid:g.pid}).$promise.then(function(e){r.success({title:"CSV import process stopped!",msg:"Import has been stopped!"})}).catch(function(e){r.error({title:"CSV stop import process failed!",msg:"pid is unknown"})})};var v=moment().unix();d.on("contact:import:"+v,function(t){i(function(){if(g.result.rows=t.rows,t.errors)for(var e=0;e<t.errors.length;e++)g.result.errors.push(t.errors[e]);if(t.finish){g.result.finish=!0,g.result.affectedRows=t.affectedRows,g.result.failedRows=g.result.errors.length;var n=g.result.rows-g.result.affectedRows-g.result.errors.length;n&&0<n&&(g.duplicates.length?g.result.duplicatedRows=n:g.result.failedRows+=n),g.result.elapsed=moment().diff(g.processing,"seconds")}})}),c.$on("$destroy",function(){d.removeAllListeners("contact:import:"+v)})}e.$inject=["$cookies","$mdDialog","$interval","$q","$timeout","lists","companies","toasty","api","socket","$scope","file","fields","license"],angular.module("app.tools").controller("ImportContactsDialogController",e)}(),function(){"use strict";function e(i,e,s,n,o,t,r){var a=this;a.errors=[],a.title="CONTACTMANAGER.MERGE_CONTACT",a.contact=angular.copy(n),a.lists=t||[],a.change=function(){a.searchTerm?r.cmContact.get({fields:"id,firstName,lastName,phone,email",filter:a.searchTerm,ListId:n.ListId}).$promise.then(function(e){a.contacts=e.rows}).catch(function(e){console.error(e)}):a.contacts=[]},a.showConfirm=function(e,n,t){var a=i.confirm({skipHide:!0}).title("Would you like to merge your contacs?").textContent("All unfilled values of the contact #"+t.id+" will be overwritten by the fields of the contact #"+n.id+".").targetEvent(e).ok("Ok").cancel("Cancel");i.show(a).then(function(){return r.cmContact.merge({to:t.id,from:n.id}).$promise}).then(function(e){i.hide({new:e,to:t,from:n}),_.remove(o,{id:t.id}),_.remove(o,{id:n.id}),o.unshift(e)}).then(function(){s.success({title:"Contact properly merged!"})}).catch(function(e){e&&e.status&&s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:MERGE_CONTACT",msg:e.data?JSON.stringify(e.data):e.toString()})})},a.closeDialog=function(){i.hide()}}e.$inject=["$mdDialog","$scope","toasty","contact","contacts","lists","api"],angular.module("app.tools").controller("MergeContactDialogController",e)}(),function(){"use strict";function e(a,e,n,t,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){t.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CONTACTMANAGER.EDIT_GLOBALCUSTOMFIELD",g.sortable={animation:800,sort:!0,onSort:function(e){a.globalCustomFieldForm.$pristine=!1}},g.globalCustomField=l,g.globalCustomFields=r,g.newGlobalCustomField=!1,g.globalCustomField||(g.globalCustomField={type:"text",actionType:"voice"},g.title="CONTACTMANAGER.NEW_GLOBALCUSTOMFIELD",g.newGlobalCustomField=!0),a.$watch("vm.globalCustomField.type",function(e,n){if(e!==n)switch(e){case"text":g.globalCustomField.values="";break;case"select":g.globalCustomField.values=[]}}),g.addNewGlobalCustomField=function(){g.errors=[],d.cmCustomField.save(g.globalCustomField).$promise.then(function(e){g.globalCustomFields.unshift(e.toJSON()),o.success({title:"GlobalCustomField properly created",msg:g.globalCustomField.name?g.globalCustomField.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCustomField.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveGlobalCustomField=function(){g.errors=[],d.cmCustomField.update({id:g.globalCustomField.id},g.globalCustomField).$promise.then(function(e){var n=_.find(g.globalCustomFields,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"GlobalCustomField properly saved!",msg:g.globalCustomField.name?g.globalCustomField.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCustomField.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteGlobalCustomField=function(e){g.errors=[];var n=t.confirm().title("Are you sure?").content("The globalCustomField will be deleted.").ariaLabel("Delete GlobalCustomField").ok("Delete").cancel("Cancel").targetEvent(e);t.show(n).then(function(){d.cmCustomField.delete({id:g.globalCustomField.id}).$promise.then(function(){_.remove(g.globalCustomFields,{id:g.globalCustomField.id}),o.success({title:"GlobalCustomField properly deleted!",msg:(g.globalCustomField.name||"globalCustomField")+" has been deleted!"}),v(g.globalCustomField)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCustomField.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.addItem=function(e){e.push({value:"New Item"}),a.globalCustomFieldForm.$pristine=!1},g.removeItem=function(e,n){e.splice(n,1),a.globalCustomFieldForm.$pristine=!1},g.removeItems=function(e){for(var n=e.length,t=0;t<n;t++)e.splice(0,1);a.globalCustomFieldForm.$pristine=!1},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","globalCustomFields","globalCustomField","api","Auth","license","setting","crudPermissions"],angular.module("app.contactmanager").controller("CreateOrEditGlobalCustomFieldDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.globalCustomFields=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="globalCustomFields",f.listOrder="",f.listOrderAsc=null,f.selectedGlobalCustomFields=[],f.query={fields:"createdAt,updatedAt,id,alias,type,values,required,clickToAction,actionType",sort:"-updatedAt",ListId:"null",limit:10,page:1},f.arraytype=_.keyBy([{option:"Text",value:"'text'"},{option:"Select",value:"'select'"},{option:"Number",value:"'number'"},{option:"Switch",value:"'switch'"},{option:"Datetime",value:"'datetime'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayactionType=_.keyBy([{option:"Voice",value:"'voice'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editdialog=function(e,n){i.show({controller:"CreateOrEditGlobalCustomFieldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/globalCustomFields/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{globalCustomField:e,globalCustomFields:f.globalCustomFields.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("globalCustomField")+"?").htmlContent("<b>"+(e.name||"globalCustomField")+"</b> will be deleted.").ariaLabel("delete globalCustomField").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getGlobalCustomFields=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.cmCustomField.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="GlobalCustomFields",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditGlobalCustomField=function(e,n){i.show({controller:"CreateOrEditGlobalCustomFieldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/globalCustomFields/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{globalCustomField:n,globalCustomFields:f.globalCustomFields.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteGlobalCustomField=y,f.exportSelectedGlobalCustomFields=function(){var e=angular.copy(f.selectedGlobalCustomFields);return f.selectedGlobalCustomFields=[],e},f.deleteSelectedGlobalCustomFields=function(e){var n=i.confirm().title("Are you sure want to delete the selected globalCustomFields?").htmlContent("<b>"+f.selectedGlobalCustomFields.length+" selected</b> will be deleted.").ariaLabel("delete GlobalCustomFields").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedGlobalCustomFields.forEach(function(e){y(e)}),f.selectedGlobalCustomFields=[]})},f.deselectGlobalCustomFields=function(){f.selectedGlobalCustomFields=[]},f.selectAllGlobalCustomFields=function(){f.selectedGlobalCustomFields=f.globalCustomFields.rows};var b=!0,A=1;function E(e){f.globalCustomFields=e||{count:0,rows:[]}}function y(e){m.cmCustomField.delete({id:e.id}).$promise.then(function(){_.remove(f.globalCustomFields.rows,{id:e.id}),f.globalCustomFields.count-=1,f.globalCustomFields.rows.length||f.getGlobalCustomFields(),p.success({title:_.startCase("GlobalCustomField")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcmCustomField"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEcmCustomField",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getGlobalCustomFields())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","globalCustomFields","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.contactmanager").controller("GlobalCustomFieldsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CONTACTMANAGER.EDIT_LIST",g.list=angular.copy(l),g.lists=r,g.newList=!1,g.list||(g.list={},g.title="CONTACTMANAGER.NEW_LIST",g.newList=!0),g.addNewList=function(){g.errors=[],d.cmList.save(g.list).$promise.then(function(e){g.lists.unshift(e.toJSON()),o.success({title:"List properly created",msg:g.list.name?g.list.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmList.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmList.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveList=function(){g.errors=[],d.cmList.update({id:g.list.id},g.list).$promise.then(function(e){var n=_.find(g.lists,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"List properly saved!",msg:g.list.name?g.list.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmList.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmList.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteList=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The list will be deleted.").ariaLabel("Delete List").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cmList.delete({id:g.list.id}).$promise.then(function(){_.remove(g.lists,{id:g.list.id}),o.success({title:"List properly deleted!",msg:(g.list.name||"list")+" has been deleted!"}),v(g.list)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmList.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmList.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","lists","list","api","Auth","license","setting","crudPermissions"],angular.module("app.contactmanager").controller("CreateOrEditListDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.cmList.getAgents({id:c.list.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserList?"penalty "+e.UserList.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.list=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.cmList.removeAgents({id:c.list.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.cmList.addAgents({id:c.list.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("CONTACTMANAGER.ALL_AGENTS"),labelSelected:r.instant("CONTACTMANAGER.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","list","lists","realtime","$translate","Auth","crudPermissions"],angular.module("app.contactmanager").controller("ListagentaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.listCustomFields=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.cmList.getCustomFields(m.query,u).$promise}function g(e){d.cmCustomField.delete({id:e.id}).$promise.then(function(){_.remove(m.listCustomFields.rows,{id:e.id}),m.listCustomFields.count-=1,m.listCustomFields.rows.length||p(),l.success({title:"CustomField deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcmList"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmList",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.list={},m.listCustomFields={count:0,rows:[]},m.selectedListCustomFields=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,alias,type,values,required,clickToAction,actionType",limit:10,page:1},m.arraytype=_.keyBy([{option:"Text",value:"'text'"},{option:"Select",value:"'select'"},{option:"Number",value:"'number'"},{option:"Switch",value:"'switch'"},{option:"Datetime",value:"'datetime'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),m.arrayactionType=_.keyBy([{option:"Voice",value:"'voice'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),m.init=function(e,n){m.list=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.ListId=m.list.id,m.query.id=m.list.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the customField?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("customField #")+e.id||"customField")+"</b> will be deleted.").ariaLabel("delete customField").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getListCustomFields=p,m.createOrEditListCustomField=function(e,n){o.show({controller:"CreateOrEditCustomFieldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/edit/customFields/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{list:m.list,customField:n,customFields:m.listCustomFields.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedListCustomFields=function(){var e=angular.copy(m.selectedListCustomFields);return m.selectedListCustomFields=[],e},m.deleteListCustomField=g,m.deleteSelectedListCustomFields=function(e){var n=o.confirm().title("Are you sure want to delete the selected customFields?").htmlContent("<b>"+m.selectedListCustomFields.length+" selected</b> will be deleted.").ariaLabel("delete customFields").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedListCustomFields.forEach(function(e){g(e)}),m.selectedListCustomFields=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.contactmanager").controller("ListCustomFieldsController",e)}(),function(){"use strict";function e(a,e,n,t,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){t.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="CONTACTMANAGER.EDIT_CUSTOMFIELD",g.sortable={animation:800,sort:!0,onSort:function(e){a.customFieldForm.$pristine=!1}},g.customField=l,g.customFields=r,g.newCustomField=!1,g.customField||(g.customField={type:"text",actionType:"voice"},g.title="CONTACTMANAGER.NEW_CUSTOMFIELD",g.newCustomField=!0),e.params.id&&(g.customField.ListId=e.params.id),a.$watch("vm.customField.type",function(e,n){if(e!==n)switch(e){case"text":g.customField.values="";break;case"select":g.customField.values=[]}}),g.addNewCustomField=function(){g.errors=[],d.cmList.addCustomField({id:e.params.id},g.customField).$promise.then(function(e){g.customFields.unshift(e.toJSON()),o.success({title:"CustomField properly created",msg:g.customField.name?g.customField.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCustomField.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveCustomField=function(){g.errors=[],d.cmCustomField.update({id:g.customField.id},g.customField).$promise.then(function(e){var n=_.find(g.customFields,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"CustomField properly saved!",msg:g.customField.name?g.customField.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCustomField.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteCustomField=function(e){g.errors=[];var n=t.confirm().title("Are you sure?").content("The customField will be deleted.").ariaLabel("Delete CustomField").ok("Delete").cancel("Cancel").targetEvent(e);t.show(n).then(function(){d.cmCustomField.delete({id:g.customField.id}).$promise.then(function(){_.remove(g.customFields,{id:g.customField.id}),o.success({title:"CustomField properly deleted!",msg:(g.customField.name||"customField")+" has been deleted!"}),v(g.customField)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmCustomField.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmCustomField.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.addItem=function(e){e.push({value:"New Item"}),a.customFieldForm.$pristine=!1},g.removeItem=function(e,n){e.splice(n,1),a.customFieldForm.$pristine=!1},g.removeItems=function(e){for(var n=e.length,t=0;t<n;t++)e.splice(0,1);a.customFieldForm.$pristine=!1},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","customFields","customField","api","Auth","license","setting","crudPermissions"],angular.module("app.contactmanager").controller("CreateOrEditCustomFieldDialogController",e)}(),function(){"use strict";function e(a,e,t,i,s,n,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=n,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.list=c||a.params.list||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=a.params.tab||0,u.gotogoto=function(t,e){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:303}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?a.go("app.contactmanager.contacts",{ListId:t.id}):l.info({title:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});a.go("app.contactmanager.contacts",{ListId:t.id})}},u.agentadddialog=function(e,n){t.show({controller:"ListagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{list:e,lists:u.lists?u.lists.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoLists=function(){a.go("app.contactmanager.lists",{},{reload:"app.contactmanager.lists"})},u.saveList=function(){r.cmList.update({id:u.list.id},u.list).$promise.then(function(){l.success({title:"List updated!",msg:u.list.name?u.list.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmList",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","list","userProfileSection"],angular.module("app.contactmanager").controller("ListController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.cmList.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.list=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.ListId=m.list.id,m.query.id=m.list.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.list.id,field:"ListId",route:"cmList"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.contactmanager").controller("ListDispositionsController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.lists=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="lists",f.listOrder="",f.listOrderAsc=null,f.selectedLists=[],f.query={fields:"createdAt,updatedAt,id,name,description,dialPrefix",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){a.go("app.contactmanager.lists.edit",{id:e.id,list:e,crudPermissions:f.crudPermissions})},f.gotocontactsgoto=function(t,e){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:303}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?a.go("app.contactmanager.contacts",{ListId:t.id}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});a.go("app.contactmanager.contacts",{ListId:t.id})}},f.exportcsvcontactsexport=function(i,e){return m.cmList.getContactsCsv({id:i.id,nolimit:!0}).$promise.then(function(e){if(void 0!==e.length){var n=[e.buffer],t=new Blob(n,{type:e.type}),a=window.document.createElement("a");a.setAttribute("href",URL.createObjectURL(t)),a.setAttribute("download","exportContacts_"+i.id+".csv"),a.click()}else p.info({title:"EXPORT",msg:"The list is empty"})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcmList",msg:e.data?JSON.stringify(e.data):e.toString()})})},f.agentadddialog=function(e,n){i.show({controller:"ListagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{list:e,lists:f.lists?f.lists.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("list")+"?").htmlContent("<b>"+(e.name||"list")+"</b> will be deleted.").ariaLabel("delete list").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getLists=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.cmList.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Lists",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditList=function(e,n){i.show({controller:"CreateOrEditListDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/lists/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{list:n,lists:f.lists.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteList=y,f.exportSelectedLists=function(){var e=angular.copy(f.selectedLists);return f.selectedLists=[],e},f.deleteSelectedLists=function(e){var n=i.confirm().title("Are you sure want to delete the selected lists?").htmlContent("<b>"+f.selectedLists.length+" selected</b> will be deleted.").ariaLabel("delete Lists").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedLists.forEach(function(e){y(e)}),f.selectedLists=[]})},f.deselectLists=function(){f.selectedLists=[]},f.selectAllLists=function(){f.selectedLists=f.lists.rows};var b=!0,A=1;function E(e){f.lists=e||{count:0,rows:[]}}function y(e){m.cmList.delete({id:e.id}).$promise.then(function(){_.remove(f.lists.rows,{id:e.id}),f.lists.count-=1,f.lists.rows.length||f.getLists(),p.success({title:_.startCase("List")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcmList"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEcmList",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getLists())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","lists","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.contactmanager").controller("ListsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){var d=this;d.currentUser=s.getCurrentUser(),d.userProfile=r,d.userProfileSection=l&&1==l.count?l.rows[0]:null,d.crudPermissions=s.parseCrudPermissions(d.userProfileSection?d.userProfileSection.crudPermissions:null),d.customDashboard={},d.voiceQueues=o&&o.count?o:{count:0,rows:[]},d.voiceQueuesSelected=o&&o.count?_.map(o.rows,"id"):[],d.interval=n(function(){},1e3),d.onChangeVoiceQueues=function(){for(var e=0;e<d.customDashboard.widgets.length;e+=1)d.customDashboard.widgets[e].voiceQueuesSelected=d.voiceQueuesSelected},d.goToEdit=function(){e.go("app.tools.customDashboards.edit",{id:d.customDashboard.id,tab:1})},i.onWithoutApply("voice_queue:save",function(e){var n=_.find(d.voiceQueues.rows,{id:e.id});n&&_.merge(n,_.pick(e,_.keys(n)))}),a.dashboard.get({id:e.params.id}).$promise.then(function(e){if(e)return d.customDashboard=e,d.customDashboard.widgets=[],d.customDashboard.preview=!0,d.customDashboard.draggable={enabled:!1},d.customDashboard.resizable={enabled:!1},a.dashboard.getItems({id:d.customDashboard.id}).$promise}).then(function(e){if(e&&e.count&&e.rows)for(var n=0;n<e.rows.length;n+=1)e.rows[n].templateUrl="app/core/directives/ms-widget-engine/ms-widget-engine-"+e.rows[n].type+"/ms-widget-engine."+e.rows[n].type+".html",e.rows[n].voiceQueues=d.voiceQueues,e.rows[n].voiceQueuesSelected=d.voiceQueuesSelected,d.customDashboard.widgets.push(e.rows[n])}).catch(function(e){d.customDashboard=void 0}),t.$on("$destroy",function(){i.removeAllListeners("voice_queue:save"),d.interval&&n.cancel(d.interval)})}e.$inject=["$state","$interval","$scope","api","socket","Auth","voiceQueues","userProfile","userProfileSection"],angular.module("app.dashboards.custom").controller("DashboardCustomController",e)}(),function(){"use strict";function e(e,i,s,o,r,l,n,d,t,a,c,m,u,p,g,v,h,f,b){var A=this;function E(e){var n={};for(var t in A.tabs)A.tabs.hasOwnProperty(t)&&(n[t]=_.pick(A.tabs[t],["type","title","channel","icon","color","autoCreate","id","saved","badges","openedAt"]),_.isNil(A.tabs[t].contact)||(n[t].contact=_.pick(A.tabs[t].contact,["id","ListId"])),_.isNil(A.tabs[t].calls)||(n[t].calls=A.tabs[t].calls),A.tabs[t].interaction&&(n[t].interaction=_.pick(A.tabs[t].interaction,["id","OpenchannelAccountId","MailAccountId","ChatWebsiteId","FaxAccountId","SmsAccountId","WhatsappAccountId","closed","draft"])));var a=JSON.parse(s.localStorage.getItem("motion2.user:"+A.user.id));a?(a.tabs=n,a.currentTab=A.currentTab,a.autoClose=A.autoClose):a={tabs:n,currentTab:A.currentTab,autoClose:A.autoClose},s.localStorage.setItem("motion2.user:"+A.user.id,JSON.stringify(a)),e&&y(e)}function y(e){if(_.isNil(e)||e&&"interaction"===e.type){var n={id:A.user.id,online:!0,capacity:{mail:0,fax:0,sms:0,whatsapp:0,openchannel:0,chat:0},interaction:{mail:[],fax:[],sms:[],whatsapp:[],openchannel:[],chat:[]}};for(var t in A.tabs)A.tabs.hasOwnProperty(t)&&n.capacity.hasOwnProperty(A.tabs[t].channel)&&A.tabs[t].interaction&&!A.tabs[t].interaction.closed&&(n.capacity[A.tabs[t].channel]+=1,n.interaction[A.tabs[t].channel].push(A.tabs[t].interaction.id));if(!_.isEqual(A.agentCapacity,n.capacity))return A.agentCapacity=n.capacity,d.rpc.setAgentCapacity(n)}}function S(e){A.tabs[e.id]&&(!function(e){if(e.channel&&e.interaction)d.user["remove"+_.upperFirst(e.channel)+"Interactions"]({id:A.user.id,ids:[e.interaction.id]}).$promise.catch(function(e){console.error(e)})}(A.tabs[e.id]),delete A.tabs[e.id],A.currentTab=0,E(e))}function T(e){e.id=_.random(1e10),e.openedAt=(new Date).toISOString(),e.saved=!1,e.badges=0,A.tabs[e.id]=e,A.currentTab=e.id,E(e)}function I(n){return _.find(A.tabs,function(e){return"interaction"===e.type&&e.interaction&&e.interaction.id==n.interactionId&&e.channel==n.channel})}function C(n,t){var e,a,i={type:"contact",title:n?(e=n,a="",e&&(e.firstName||e.lastName?(e.firstName&&(a+=e.firstName+" "),e.lastName&&(a+=e.lastName)):e.phone&&(a=e.phone)),a=A.user.privacyEnabled?b.mask(a):a):o.instant("DASHBOARDS.NEW_CONTACT"),icon:"icon-account-circle",color:"red",contact:n,calls:t?[t]:[],autoCreate:t?t.autoCreate:0};if(t&&(t.answertime||(t.answertime=t.agentconnectAt),(t.agentcompleteAt||t.endtime)&&N(t)),n){var s=_.find(A.tabs,function(e){return e.contact&&e.contact.id?"contact"===e.type&&e.contact&&e.contact.id==n.id:"contact"===e.type&&e.contact&&e.contact.phone==n.phone});if(s){if(t)return d.voiceCallReport.get({uniqueid:t.uniqueid}).$promise.then(function(e){(e&&0<e.rows.length&&(t.disposedAt=_.first(e.rows).endtime),s.calls)?_.find(s.calls,function(e){return e.uniqueid===t.uniqueid})||s.calls.push(t):s.calls=[t];A.currentTab=s.id})}else{if(n.ListId)return d.disposition.get({ListId:n.ListId,nolimit:!0}).$promise.then(function(e){return i.dispositions=e,d.cmList.getCustomFields({id:n.ListId,nolimit:!0}).$promise}).then(function(e){i.customFields=e}).catch(D()).finally(function(){T(i)});T(i)}}else T(i)}function O(n,t){var e=_.find(A.tabs,function(e){return"interaction"===e.type&&e.interaction&&e.interaction.id===t.id&&e.channel===n});e?(e.isDraft=t.isDraft||!1,A.currentTab=e.id):T(e={type:"interaction",title:n?n.toUpperCase():"openchannel",icon:function(e){switch(e){case"chat":return"icon-hangouts";case"mail":return"icon-email";case"sms":return"icon-message-text";case"openchannel":return"icon-google-earth";case"fax":return"icon-deskphone";case"whatsapp":return"icon-whatsapp";default:return"icon-hangouts"}}(n),color:function(e){switch(e){case"chat":return"green-A700";case"mail":return"teal";case"sms":return"orange";case"openchannel":return"amber-A200";case"fax":return"blue-grey-A200";case"whatsapp":return"lime-A700";default:return"grey"}}(n),channel:n,interaction:t,isDraft:t.isDraft||!1})}function w(e){e&&e.uniqueid&&A.notifications[e.uniqueid]&&(a.clear(A.notifications[e.uniqueid]),delete A.notifications[e.uniqueid])}function R(n){var t=n.uniqueid;for(var e in console.debug("onVoiceChannelRemove -> evt",n),A.tabs)if(A.tabs.hasOwnProperty(e)){var a=A.tabs[e];if(a.calls){console.debug("onVoiceChannelRemove -> key, tab, tab.calls",e,a,a.calls);var i=_.findIndex(a.calls,function(e){return e.uniqueid===t});i<0&&0<=(i=_.findIndex(a.calls,function(e){return e.uniqueid===n.linkedid}))&&(t=n.linkedid),0<=i&&!a.calls[i].disposedAt?(console.debug("Allowing disposition for call %s",a.calls[i].uniqueid),N(a.calls[i])):console.debug("Call %s not found or already completed",a.calls[i].uniqueid),a.contact&&a.contact.id&&l(x(t,a.contact.id,a),1e3)}}E()}function x(n,e,t){return function(){if(_.find(t.calls,function(e){return e.uniqueid===n}))return d.voiceCallReport.update({id:n,ContactId:e}).$promise.catch(function(e){console.error(e)})}}function N(e){e.disposedAt=new Date}function D(){return function(e){if(404===e.status)a.warning({title:o.instant("DASHBOARDS.ATTENTION"),msg:o.instant("DASHBOARDS.ACCEPT_ELSEWHERE")});else if(e.data&&e.data.errors&&e.data.errors.length){A.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelMessage.accept"}];for(var n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelMessage.accept",msg:e.data?JSON.stringify(e.data.message):e.toString()})}}A.license=g,A.setting=v,A.detectBrowser=f.detectBrowser(),A.user=n.getCurrentUser(),A.currentTab=0,A.notifications={},A.tabs={},A.agentCapacity={},A.autoClose=!1,A.globalUserLists=c||{count:0,rows:[]},A.globalLists=m||{count:0,rows:[]},A.globalCompanies=u||{count:0,rows:[]},A.globalTags=p||{count:0,rows:[]},A.onClickTab=function(e){A.currentTab=e,E(A.tabs[e])},A.isActiveTab=function(e){return e===A.currentTab},A.alreadyExistsTab=I,A.addContactTab=C,A.addInteractionTab=O,A.addTab=T,A.removeTab=S,A.updateLocalStorage=E,A.closeTab=function(e){var n=i.confirm().title("interaction"===e.type?"Do you want to close the interaction?":"Are you sure want to close the "+e.type+"?").textContent("interaction"===e.type?"":"The "+e.type+" has been modified. Closing will lose all changes!").ariaLabel("Close Contact").ok("interaction"===e.type?"YES":"OK").cancel("interaction"===e.type?"NO":"CANCEL");{if(!e.saved){var t=A.user.voicePause||A.user.chatPause||A.user.mailPause||A.user.openchannelPause||A.user.faxPause,a=!1;return"interaction"===e.type&&(a=e.interaction.Account.mandatoryDisposition),i.show(n).then(function(){"interaction"===e.type&&i.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(r.body),onRemoving:function(e,n){A.user&&a&&!t&&d.user.unpause({id:A.user.id}).$promise.catch(function(e){console.error(e)})},clickOutsideToClose:!a,escapeToClose:!a,locals:{user:A.user,channel:e.channel,interaction:e.interaction}}),S(e)}).catch(function(){"interaction"===e.type&&S(e)})}var a=!1;if(_.forEach(e.calls,function(e){e.mandatoryDisposition&&(a=!0)}),"contact"===e.type&&0<e.calls.length){if(!a)return n._options.textContent="There is a call that hasn't been disposed yet.",i.show(n).then(function(){S(e)});alert=i.alert().title("Warning").textContent("There is a call that hasn't been disposed yet.").ok("OK"),i.show(alert).finally(function(){alert=void 0})}else S(e)}},t.on("trigger:contactmanager",function(n){if(!_.isNil(n.contacts)&&1===n.contacts.length)return void C(n.contact,n.evt);i.show({controller:"ContactSelectionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/contact/selection/dialog.html",parent:angular.element(r.body),locals:{contacts:n.contacts,callNumber:n.evt.routeId?n.evt.destcalleridnum:n.evt.calleridnum}}).then(function(e){C(e,n.evt)})}),t.on("trigger:jscripty",function(t){return d.jscriptyProject.get({id:t.ProjectId}).$promise.then(function(n){if(n){if(!_.isUndefined(t["xmd-contactid"]))return d.cmContact.get({id:t["xmd-contactid"]}).$promise.then(function(e){try{n.formData=Mustache.render(n.formData,_.merge(t,{user:A.user,contact:e}))}catch(e){console.error(e)}T({type:"jscripty",title:n.name,icon:"icon-script",color:"grey",project:n,call:t,contact:e})}).catch(D());try{n.formData=Mustache.render(n.formData,_.merge(t,{user:A.user}))}catch(e){console.error(e)}T({type:"jscripty",title:n.name,icon:"icon-script",color:"grey",project:n,call:t})}}).catch(D())}),t.on("trigger:bot",function(n){var t=n.calleridname&&"<unknown>"!==n.calleridname?n.calleridname:n.calleridnum,a=n.calleridnum;return d.squareMessage.get({fields:"id",limit:1,offset:0,uniqueid:n.uniqueid}).$promise.then(function(e){e.count&&T({type:"bot",title:t+" <"+a+">",icon:"fas fa-robot",color:"pink",data:{uniqueid:n.uniqueid}})})}),t.on("trigger:browser:url",function(e){if(e&&e.uri)if(e.uri=_.replace(e.uri,"<%3B",""),e.uri=_.replace(e.uri,"=>%3B=",""),e.uriLocation)switch(e.uriLocation){case"0":s.open(e.uri);break;case"1":s.open(e.uri,"_blank","width="+(e.windowWidth||"800")+",height="+e.windowHeight||"600");break;case"2":var n={type:"iframe",title:e.uri,icon:"icon-google-earth",color:"blue",src:e.uri};T(n);break;default:s.open(e.uri)}else s.open(e.uri)}),t.on("trigger:browser:popup",function(e){e&&e.html&&T({type:"popup",title:e.calleridnum||"popup",icon:"icon-tablet",color:"grey",html:e.html})}),t.on("notification:save",function(e){if(e&&e.uniqueid){t=e,h.isSupported()?h.requestPermission().then(function(){var e,n;n={autoClose:!0,duration:10,showOnPageHidden:!0,icon:"../../../../../../../assets/images/avatars/customer.png",body:(e=t).queue?"Queue: "+e.queue:"",focusOnclick:!0,closeOnClick:!0},h.show(e.title,n)},function(e){console.error("Please enable browser notifications!",e)}):console.error("Browser notifications are not supported by the browser. Normal notifications will be used.");var n=I(e);if(n){if(d[e.channel+"Message"])return A.currentTab!==n.id&&(n.badges+=1),d[e.channel+"Message"].accept({id:e.id,UserId:A.user.id}).$promise.catch(D())}else a.wait({title:e.title,msg:e.msg||"",showClose:!1,clickToClose:!1,timeout:!1,sound:e.sound,html:!0,shake:e.shake||!1,onAdd:function(){A.notifications[e.uniqueid]=this.id},onAccept:function(){if(w(e),d[e.channel+"Message"])return d[e.channel+"Message"].accept({id:e.id,UserId:A.user.id,manual:!0}).$promise.then(function(e){O(e.channel,e.interaction),a.success({title:"Message properly accepted!",msg:"Message has been accepted!"})}).catch(D())},onReject:function(){if(w(e),d[e.channel+"Message"])return d[e.channel+"Message"].reject({id:e.id,UserId:A.user.id}).$promise.then(function(e){a.success({title:"Message properly rejected!",msg:"Message has been rejected!"})}).catch(D())}})}var t}),t.on("notification:remove",w),t.on("voice_queue_channel:remove",R),t.on("voice_outbound_channel:remove",R),function(){var e=s.localStorage.getItem("motion2.user:"+A.user.id);if(e)try{e=JSON.parse(e),A.tabs=e.tabs?e.tabs:{},A.currentTab=e.currentTab?e.currentTab:0,A.autoClose=!!e.autoClose&&e.autoClose,y(A.tabs[A.currentTab])}catch(e){console.error(e)}}(),e.$on("$destroy",function(){for(var e in A.notifications)A.notifications.hasOwnProperty(e)&&w({uniqueid:e});t.removeAllListeners("trigger:contactmanager"),t.removeAllListeners("trigger:jscripty"),t.removeAllListeners("trigger:browser:url"),t.removeAllListeners("trigger:browser:popup"),t.removeAllListeners("notification:save"),t.removeAllListeners("notification:remove"),t.removeAllListeners("voice_queue_channel:remove"),t.removeAllListeners("voice_outbound_channel:remove")})}e.$inject=["$scope","$mdDialog","$window","$translate","$document","$timeout","Auth","api","socket","toasty","globalUserLists","globalLists","globalCompanies","globalTags","license","setting","desktopNotification","msUtils","privacyManager"],angular.module("app.dashboards").controller("AgentDashboardGeneralController",e)}(),function(){"use strict";angular.module("app.dashboards").provider("desktopNotification",function(){var f={autoClose:!0,duration:5,showOnPageHidden:!1};return{config:function(e){for(var n in e)f.hasOwnProperty(n)&&null!=e[n]&&(f[n]=e[n])},$get:["$q","$timeout","$window","PERMISSIONS",function(e,u,n,p){var g=n.Notification||n.mozNotification||n.webkitNotification;return{isSupported:v,currentPermission:h,requestPermission:function(){if(!v())return e.reject("Notification API not supported");var t=e.defer();Promise.resolve(g.requestPermission)==g.requestPermission?g.requestPermission().then(function(e){p.GRANTED===e?t.resolve(e):t.reject(e)}):g.requestPermission(function(e,n){p.GRANTED===e?t.resolve(e):t.reject(e)});return t.promise},show:function(e,n){if(n=n||{},!v()||(t=e,a=n,i=angular.isString(t),s=!a.onClick||angular.isFunction(a.onClick),!i||!s)||function(e){if(e||f.showOnPageHidden)return!(window.document.hidden||window.document.mozHidden||window.document.webkitHidden)}(n.showOnPageHidden)||h()!==p.GRANTED)return;var t,a,i,s;var o=new g(e,n),r=n.duration||f.duration,l=void 0===n.autoClose?f.autoClose:n.autoClose;o.onclick=function(){n.onClick&&n.onClick(),n.focusOnclick&&window.focus(),n.closeOnClick&&o.close()},l&&(d=o,c=r,m=1e3*c,u(d.close.bind(d),m,!1));var d,c,m;return o},permissions:{default:p.DEFAULT,granted:p.GRANTED,denied:p.DENIED}};function v(){return!(void 0===g)}function h(){return(g||{}).permission}}]}}).provider("msNavigationAgentService",function(){var r=angular.injector(["ng"]).get("$log"),l=[];function n(e,n){if(angular.isString(e)){for(var t=e.split("."),a=t[t.length-1],i=function(e){var n=l;if(1===e.length)return n;e.pop();for(var t=0;t<e.length;t++){for(var a=e[t],i=!0,s=0;s<n.length;s++)if(n[s]._id===a){n=n[s].children,i=!1;break}if(i){var o={_id:a,_path:e.join("."),title:a,weight:1,children:[]};n.push(o),n=o.children}}return n}(t),s=!1,o=0;o<i.length;o++)if(i[o]._id===a){s=i[o];break}s?(angular.extend(s,n),s.uisref=d(s)):(n.children=[],!angular.isUndefined(n.weight)&&angular.isNumber(n.weight)||(n.weight=1),n._id=a,n._path=e,n.uisref=d(n),i.push(n))}else r.error("path must be a string (eg. `dashboard.project`)")}function d(e){var n="";return angular.isDefined(e.state)&&(n=e.state,angular.isDefined(e.stateParams)&&angular.isObject(e.stateParams)&&(n=n+"("+angular.toJson(e.stateParams)+")")),n}this.saveItem=n,this.deleteItem=function(e){if(!angular.isString(e))return void r.error("path must be a string (eg. `dashboard.project`)");for(var n=l,t=e.split("."),a=0;a<t.length;a++)for(var i=t[a],s=0;s<n.length;s++)if(n[s]._id===i){if(n[s]._path===e)return n.splice(s,1),!0;n=n[s].children;break}return!1},this.$get=function(){var e={saveItem:n,getNavigation:function(e){if(e){for(var n=0;n<l.length;n++)if(l[n]._id===e)return[l[n]];return null}return l}};return e}}).constant("PERMISSIONS",{DEFAULT:"default",GRANTED:"granted",DENIED:"denied"})}(),function(){"use strict";function e(t){var a=this;a.setting={},a.messages={count:0,rows:[]},a.showInteraction=!1,a.init=function(e,n){{if(a.setting=n,a.tab=e,a.tab.saved=!0,a.tab&&a.tab.data&&a.tab.data.uniqueid)return t.squareMessage.get({uniqueid:a.tab.data.uniqueid}).$promise.then(function(e){a.messages=e}).finally(function(){a.showInteraction=!0});a.showInteraction=!0}},a.getMessagesAlignment=function(e){switch(a.setting.messagesAlignment){case"left":return"in"==e.direction?e.direction:"out-left-aligned";case"right":return"in"==e.direction?"in-right-aligned":e.direction;default:return e.direction}}}e.$inject=["api"],angular.module("app.dashboards").controller("AgentGeneralBotController",e)}(),function(){"use strict";function e(a,d,c,t,m,i,u,p,s,o,e,r,n,l){var g=this;function v(){g.errors=[],u.cmContact.save(g.contact).$promise.then(function(e){g.contact.id=e.id,g.newContact=!1;var n=e.firstName||e.phone;return g.tab.title=g.user.privacyEnabled?l.mask(n):n,g.tab.contact=g.contact,u.user.addContacts({id:s.getCurrentUser().id,ids:[e.id]})}).then(function(){g.detailForm.$pristine=!0,g.customFieldsForm.$pristine=!0,p.success({title:"Contact properly created",msg:g.contact.firstName?g.contact.firstName+" has been created!":""})}).then(function(){return u.cmContact.setTags({id:g.contact.id,ids:g.tab.Tags}).$promise}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}];for(var n=0;n<e.data.errors.length;n+=1)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}function h(n){return function(e){g[n]=e||{count:0,rows:[]}}}function f(){g.contact&&g.contact.id&&(g.queryHopper.ContactId=g.contact.id,g.queryHopper.offset=(g.queryHopper.page-1)*g.queryHopper.limit,g.promise=u.cmHopper.get(g.queryHopper,h("hoppers")).$promise)}function b(){g.contact&&g.contact.id&&(g.queryFinal.ContactId=g.contact.id,g.queryFinal.offset=(g.queryFinal.page-1)*g.queryFinal.limit,g.promise=u.cmHopperFinal.get(g.queryFinal,h("finals")).$promise)}function A(){g.contact&&g.contact.id&&(g.queryHistory.ContactId=g.contact.id,g.queryHistory.offset=(g.queryHistory.page-1)*g.queryHistory.limit,g.promise=u.cmHopperHistory.get(g.queryHistory,h("histories")).$promise)}function E(e){return null===e?void 0:new Date(e)}function y(e){g.journeyIsLoading=!0;var n=_.merge(g.journeyOptions,{id:g.contact.id,offset:e||0});return r.get(g.journey,n).then(function(e){g.journey=e.journey,g.canLoadMoreJourney=e.loadMore}).finally(function(){g.journeyIsLoading=!1})}g.user=s.getCurrentUser(),g.detectBrowser=e.detectBrowser(),g.journey=[],g.queryHopper={fields:"id,phone,scheduledat",sort:"-updatedAt",limit:10,page:1},g.queryFinal={fields:"uniqueid,calleridnum,statedesc,starttime,disposition,secondDisposition,thirdDisposition",sort:"-updatedAt",limit:10,page:1},g.queryHistory={fields:"uniqueid,calleridnum,statedesc,scheduledat,starttime,endtime",sort:"-updatedAt",limit:10,page:1},g.hoppers={rows:[],count:0},g.finals={rows:[],count:0},g.histories={rows:[],count:0},g.journeyOptions=r.getQuery(),g.quickFilters=r.getQuickFilters(),g.addNewContact=v,g.saveContact=function(){g.errors=[],u.cmContact.update({id:g.contact.id},g.contact).$promise.then(function(e){var n=e.firstName||e.phone;return g.tab.title=g.user.privacyEnabled?l.mask(n):n,g.tab.contact=g.contact,m.$parent.vm.updateLocalStorage(),u.user.addContacts({id:s.getCurrentUser().id,ids:[e.id]})}).then(function(){return u.cmContact.setTags({id:g.contact.id,ids:g.tab.Tags}).$promise}).then(function(){g.detailForm.$pristine=!0,g.customFieldsForm.$pristine=!0,p.success({title:"Contact properly updated!",msg:g.contact.name?g.contact.name+" has been updated!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}];for(var n=0;n<e.data.errors.length;n+=1)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.getCustomFields=function(e){return u.cmList.getCustomFields({id:e}).$promise.then(function(e){g.tab.customFields=e}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"LIST:GETCustomFields",msg:e.data?JSON.stringify(e.data):e.toString()})})},g.call=m.$parent.vm.call,g.disposeCall=function(e,i){if(g.newContact)return void p.error({title:"ATTENTION",msg:"Please save the contact before disposing!"});d.show({controller:"DisposeCallDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/contact/dispose/dialog.html",parent:angular.element(c.body),targetEvent:i,clickOutsideToClose:!i.mandatoryDisposition,escapeToClose:!i.mandatoryDisposition,resolve:{globalDispositions:["apiResolver",function(e){return e.resolve("disposition@get",{MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0})}]},onRemoving:function(e,n){g.user&&i.mandatoryDisposition&&u.user.unpause({id:g.user.id}).$promise.catch(function(e){console.error(e)})},locals:{dispositions:g.tab.dispositions,contact:g.contact,call:i,availableCalls:g.tab.calls.length,autoClose:m.$parent.vm.autoClose}}).then(function(e){var n=e[0];for(var t in m.$parent.vm.autoClose=e[1],n&&("BLACKLIST"===n?p.success({title:o.instant("DASHBOARDS.INFO"),msg:o.instant("DASHBOARDS.CALL_DISPOSED")+" "+n}):"RECALLME"===n||"RESCHEDULE"===n||p.success({title:o.instant("DASHBOARDS.INFO"),msg:o.instant("DASHBOARDS.CALL_SAVED")})),m.$parent.$parent.$parent.vm.tabs)if(m.$parent.$parent.$parent.vm.tabs.hasOwnProperty(t)){var a=m.$parent.$parent.$parent.vm.tabs[t];_.remove(a.calls,function(e){return e.uniqueid===i.uniqueid})}0===g.tab.calls.length&&m.$parent.vm.autoClose&&m.$parent.vm.removeTab(g.tab),m.$parent.vm.updateLocalStorage()})},g.checkCallStatus=function(n){return g.checkingCallStatus=!0,u.voiceCallReport.get({uniqueid:n.uniqueid}).$promise.then(function(e){e&&0<e.rows.length&&(n.disposedAt=_.first(e.rows).endtime)}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"VOICE_CALL_REPORT:GET",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){g.checkingCallStatus=!1})},g.duplicateContact=function(e){d.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(c.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:g.contact.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:s.getCurrentUser().id,fields:"id,name"})}]},locals:{contacts:[]}})},g.mergeContact=function(e){d.show({controller:"MergeContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/merge/dialog.html",parent:angular.element(c.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:g.contact.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:s.getCurrentUser().id,fields:"id,name"})}]},locals:{contacts:[]}}).then(function(e){if(e){for(var n in m.$parent.$parent.$parent.vm.tabs)if(m.$parent.$parent.$parent.vm.tabs.hasOwnProperty(n)){var t=m.$parent.$parent.$parent.vm.tabs[n];t&&t.contact&&(e.from&&e.from.id&&e.from.id===t.contact.id&&m.$parent.$parent.$parent.vm.removeTab(t),e.to&&e.to.id&&e.to.id===t.contact.id&&m.$parent.$parent.$parent.vm.removeTab(t))}e.new&&m.$parent.$parent.$parent.vm.addContactTab(e.new)}})},g.getDateFromString=E,g.addJscriptyTab=function(e){try{e.formData=Mustache.render(e.formData,{contact:g.contact,user:g.user})}catch(e){console.error(e)}try{m.$parent.$parent.$parent.vm.addTab({type:"jscripty",title:e.name,icon:"icon-script",color:"grey",project:e,contact:g.contact})}catch(e){p.error({title:"ERROR OPENING JSCRIPTY PROJECT",msg:"The project cannot be started"+JSON.stringify(e)})}},g.getHoppers=f,g.getFinals=b,g.getHistories=A,g.getJscriptyProjects=function(){if(g.jscriptyProjects)return;return g.loadingJscriptyProjects=!0,u.jscriptyProject.get({fields:"createdAt,updatedAt,id,name,description,createdAt,formData,enableUncompleteSave",sort:"-updatedAt",nolimit:!0}).$promise.then(function(e){g.jscriptyProjects=e||{count:0,rows:[]}}).catch(function(){p.error({title:o.instant("JSCRIPTY.JSCRIPTY"),msg:o.instant("CONTACTMANAGER.NOTIFICATIONS.JSCRIPTY_GET_ERROR")})}).finally(function(){g.loadingJscriptyProjects=!1})},g.getAccounts=function(n){if(g[n+"Accounts"])return;var e="get"+_.startCase(n)+"Accounts";return g.loadingAccounts=!0,u.user[e]({id:g.user.id,attributes:["id","name"],nolimit:!0}).$promise.then(function(e){g[n+"Accounts"]=e||{count:0,rows:[]}}).catch(function(){p.error({title:o.instant(n.toUpperCase()+"."+n.toUpperCase()+"ACCOUNTS"),msg:o.instant("CONTACTMANAGER.NOTIFICATIONS.ACCOUNTS_GET_ERROR",{channel:o.instant("DASHBOARDS."+n.toUpperCase())})})}).finally(function(){g.loadingAccounts=!1})},g.composeInteraction=function(e,o,r,n){var l=o.toLowerCase();d.show({controller:"Compose"+o+"InteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/"+o.toLowerCase()+"/dialog.html",parent:angular.element(c.body),clickOutsideToClose:!1,locals:{account:r,message:{to:"mail"==l?n:n.split(",")},type:"new",interaction:{Contact:g.contact}},fullscreen:!0}).then(function(s){if(!s||_.isNil(s.message)||!s.message.savedAsDraft)return u[l+"Account"].send({id:r.id},s).$promise.then(function(e){if("Mail"===o){var n=e;if(n&&n.Messages&&n.Messages.length){if(s.attachments&&s.attachments.length)for(var t=0;t<s.attachments.length;t+=1)u.attachment.update({id:s.attachments[t].id},{MailMessageId:_.head(n.Messages).id});if(p.success({title:"Message properly sent!",msg:"Message has been sent!"}),n.closed){n.disposition=null;var a=!r.mandatoryDisposition,i=g.user.voicePause||g.user.chatPause||g.user.mailPause||g.user.openchannelPause||g.user.faxPause;d.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(c.body),onRemoving:function(e,n){g.user&&r.mandatoryDisposition&&!i&&u.user.unpause({id:g.user.id}).$promise.catch(function(e){console.error(e)})},clickOutsideToClose:a,escapeToClose:a,locals:{user:g.user,channel:"mail",interaction:n}})}else m.$parent.vm.addInteractionTab("mail",n)}}else p.success({title:"Message properly sent!",msg:"Message has been sent!"}),m.$parent.vm.addInteractionTab(l,e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else"fax"===l?p.error({title:"FAX:SEND",msg:e.data?JSON.stringify(e.data):e.message||e.toString()}):p.error({title:e.status?"API:"+e.status+" - "+e.statusText:o.toUpperCase()+"ACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})});var e={type:"draft",channel:"mail",account:r,contact:g.contact,id:g.tab.id,openedAt:new Date,saved:!1,title:r.key+" - Untitled",content:s.message},n=a.localStorage.getItem("motion2.home.mail:"+g.user.id);if(n){var t=JSON.parse(n);t.drafts||(t.drafts={}),n=t}else n={drafts:{}};n.drafts[g.tab.id]=e,a.localStorage.setItem("motion2.home.mail:"+g.user.id,JSON.stringify(n))})},g.init=function(n,e){return g.tab=n,m.$watchGroup(["vm.detailForm.$pristine","vm.customFieldsForm.$pristine"],function(e){g.tab.saved=e[0]&&e[1]}),g.license=e,g.contact=g.tab.contact,g.newContact=!1,g.currentTab=0,u.user.get({fields:"id,fullname",nolimit:!0}).$promise.then(function(e){g.users=e||{count:0,rows:[]},g.usersMap=_.mapValues(_.keyBy(g.users.rows,"id"),"fullname")}).then(function(){for(var e=[],n=0;n<g.tab.calls.length;n++){var t=g.tab.calls[n];e.push(u.voiceCallReport.get({uniqueid:t.uniqueid}).$promise.then(function(e){e&&0<e.rows.length&&(t.disposedAt=_.first(e.rows).endtime)}))}return i.all(e)}).then(function(){return u.user.getLists({id:g.user.id,nolimit:!0}).$promise}).then(function(e){if(g.lists=e||{count:0,rows:[]},g.contact&&g.contact.ListId){if(g.list=_.find(g.lists.rows,{id:g.contact.ListId}),g.list)return;return u.cmList.get({id:g.contact.ListId}).$promise.then(function(e){e&&(g.list=e,g.lists.rows=_.unionBy(g.lists.rows,[g.list]))})}}).then(function(){if(g.contact&&g.contact.id){var e={id:g.contact.id,ListId:g.contact.ListId,limit:1,offset:0,sort:"-updatedAt"};return u.cmContact.get(e).$promise.then(function(e){return g.contact=e,g.tab.contact=e,u.user.addContacts({id:g.user.id,ids:[g.contact.id]})}).then(function(){if(g.contact.ListId)return u.disposition.get({ListId:g.contact.ListId,nolimit:!0}).$promise.then(function(e){return g.tab.dispositions=e,u.cmList.getCustomFields({id:g.contact.ListId,nolimit:!0}).$promise}).then(function(e){g.tab.customFields=e})}).then(function(){try{g.tab.companies=m.$parent.$parent.$parent.vm.globalCompanies,g.tab.tags=m.$parent.$parent.$parent.vm.globalTags,g.tab.autoCreate=0}catch(e){}f(),b(),A()}).then(function(){return u.cmContact.getTags({id:g.contact.id}).$promise.then(function(e){g.tab.Tags=_.map(e.rows,"id")})})}return g.newContact=!0,n.autoCreate?v():void 0}).finally(function(){g.contact&&g.contact.id&&(y(),g.contact.dateOfBirth=E(g.contact.dateOfBirth))})},g.hasPermission=function(e){return s.hasPermission(e)},g.openInteraction=function(e){try{return m.$parent.$parent.$parent.vm.addInteractionTab(e.channel,e)}catch(e){p.error({title:o.instant("CONTACTMANAGER.CUSTOMER_JOURNEY"),msg:o.instant("CONTACTMANAGER.NOTIFICATIONS.INTERACTION_OPEN_ERROR")})}},g.getCustomerJourney=y,g.loadMoreJourney=function(){return i(function(e,n){var t=g.journey.length;return e(y(t))})},m.$on("$destroy",function(){}),m.$watch("currentTab",function(e,n){1===g.currentTab&&(f(),b(),A())});var S=!0,T=1;m.$watch("queryHopper.filter",function(e,n){S?t(function(){S=!1}):(n||(T=g.queryHopper.page),e!==n&&(g.queryHopper.page=1),e||(g.queryHopper.page=T),f())}),m.$watch("queryFinal.filter",function(e,n){S?t(function(){S=!1}):(n||(T=g.queryFinal.page),e!==n&&(g.queryFinal.page=1),e||(g.queryFinal.page=T),b())}),m.$watch("queryHistory.filter",function(e,n){S?t(function(){S=!1}):(n||(T=g.queryHistory.page),e!==n&&(g.queryHistory.page=1),e||(g.queryHistory.page=T),A())})}e.$inject=["$window","$mdDialog","$document","$timeout","$scope","$q","api","toasty","Auth","$translate","msUtils","customerJourneyManager","draftManager","privacyManager"],angular.module("app.dashboards").controller("AgentGeneralContactController",e)}(),function(){"use strict";function e(n,t,i,s,o,e,a,r,l,d,c,m,u){var p=this;function g(){return i(function(n,e){o.user.getQueues({id:d.getCurrentUser().id,fields:"id,name,dialActive,dialMethod",channel:"voice",type:"outbound",nolimit:!0}).$promise.then(function(e){p.queueCampaigns=e||{count:0,rows:[]},n()}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.getBlackLists",msg:e.data?JSON.stringify(e.data):e.toString()})})})}function v(){var e=p.selectedDisposition?p.selectedDisposition.name.toLowerCase():void 0;return{id:p.call.uniqueid,disposition:p.firstLevelDisposition?p.firstLevelDisposition.name:null,secondDisposition:p.secondLevelDisposition?p.secondLevelDisposition.name:null,thirdDisposition:p.thirdLevelDisposition?p.thirdLevelDisposition.name:null,dispositionat:moment(),amd:"amd"===e,fax:"fax"===e,blacklist:"blacklist"===e,recallme:"recallme"===e,UserId:"recallme"===e?d.getCurrentUser().id:null,OwnerId:d.getCurrentUser().id}}function h(e){t.hide([e,p.autoClose])}p.user=d.getCurrentUser(),p.isReschedule=!1,p.recallme=!1,p.queueCampaign=void 0,p.queueCampaigns={count:0,rows:[]},p.dispositions=_.orderBy(_.concat([],e.rows,a.rows),["name"],["asc"]),p.contact=l,p.call=r,p.note=p.call.note||void 0,p.dialerCall=!1,p.hasBlackLists=!1,p.availableCalls=m,p.autoClose=u,p.hopper={minDate:new Date,dateTime:new Date},p.call&&p.call.variables&&p.call.variables["xmd-voicequeueid"]?(p.dialerCall=!0,o.voiceQueue.getBlackLists({id:p.call.variables["xmd-voicequeueid"]}).$promise.then(function(e){e&&e.rows&&0<e.rows.length&&(p.hasBlackLists=!0)}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.getBlackLists",msg:e.data?JSON.stringify(e.data):e.toString()})})):g(),p.onDispositionChange=function(e){switch(e){case"first":p.selectedDisposition=p.firstLevelDisposition,p.anySecondLevelDisposition=_.some(p.dispositions,["ParentId",p.firstLevelDisposition.id]),p.secondLevelDisposition=void 0,p.thirdLevelDisposition=void 0,p.anyThirdLevelDisposition=!1;break;case"second":p.selectedDisposition=p.secondLevelDisposition,p.anyThirdLevelDisposition=_.some(p.dispositions,["ParentId",p.secondLevelDisposition.id]);break;case"third":p.selectedDisposition=p.thirdLevelDisposition}},p.clearDispositionSelection=function(e){"second"===e?(p.secondLevelDisposition=void 0,p.thirdLevelDisposition=void 0,p.selectedDisposition=p.firstLevelDisposition):"third"===e&&(p.thirdLevelDisposition=void 0,p.selectedDisposition=p.secondLevelDisposition)},p.saveDisposition=function(e){p.selectedDisposition=_.isNil(e)?p.selectedDisposition:{name:e},e&&(p.firstLevelDisposition=p.selectedDisposition);p.call.note=p.note,o.voiceCallReport.update({id:p.call.uniqueid,userDisposition:p.firstLevelDisposition?p.firstLevelDisposition.name:null,userSecondDisposition:p.secondLevelDisposition?p.secondLevelDisposition.name:null,userThirdDisposition:p.thirdLevelDisposition?p.thirdLevelDisposition.name:null,note:p.note,UserId:d.getCurrentUser().id,ContactId:p.contact.id}).$promise.catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEVOICECALLREPORT",msg:e.data?JSON.stringify(e.data):e.toString()})}),o.voiceRecording.get({uniqueid:p.call.uniqueid}).$promise.then(function(e){if(e)for(var n=0;n<e.rows.length;n+=1)o.voiceRecording.update({id:e.rows[n].id,userDisposition:p.firstLevelDisposition?p.firstLevelDisposition.name:null,userSecondDisposition:p.secondLevelDisposition?p.secondLevelDisposition.name:null,userThirdDisposition:p.thirdLevelDisposition?p.thirdLevelDisposition.name:null}).$promise.catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEVOICERECORDING",msg:e.data?JSON.stringify(e.data):e.toString()})})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEVOICERECORDING",msg:e.data?JSON.stringify(e.data):e.toString()})}),p.dialerCall&&(o.cmHopperFinal.update(v()).$promise.catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECMHOPPERFINAL",msg:e.data?JSON.stringify(e.data):e.toString()})}),o.cmHopperHistory.update(v()).$promise.catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECMHOPPERHISTORY",msg:e.data?JSON.stringify(e.data):e.toString()})}));if(_.isNil(p.selectedDisposition))h(p.selectedDisposition?p.selectedDisposition.name.toUpperCase():"");else switch(p.selectedDisposition.name.toLowerCase()){case"blacklist":p.call&&p.call.variables&&p.call.variables["xmd-voicequeueid"]&&function(e){if(e)o.voiceQueue.getBlackLists({id:e,type:"outbound",fields:"id"}).$promise.then(function(e){var n=[];if(e&&0<e.count){for(var t=0;t<e.rows.length;t+=1){var a=angular.copy(p.contact);delete a.id,a.ListId=e.rows[t].id,n.push(o.cmContact.save(a).$promise)}return i.all(n)}s.success({title:c.instant("DASHBOARDS.INFO"),msg:c.instant("DASHBOARDS.NOTAVAILABLE")+" "+p.selectedDisposition}),p.selectedDisposition=void 0}).then(function(e){e&&h(p.selectedDisposition?p.selectedDisposition.name.toUpperCase():"")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATEBLACKLIST",msg:e.data?JSON.stringify(e.data):e.toString()}),h(p.selectedDisposition?p.selectedDisposition.name.toUpperCase():"")})}(p.call.variables["xmd-voicequeueid"]);break;case"reschedule":p.isReschedule=!0,p.recallme=!1;break;case"recallme":p.isReschedule=!0,p.recallme=!0,p.user.selectRecallMeCampaign&&g().then(function(){p.originalCampaign=_.find(p.queueCampaigns.rows,["id",p.call.variables["xmd-voicequeueid"]]);var e=JSON.parse(n.localStorage.getItem("motion2.user:"+p.user.id));p.queueCampaign=e.previewCampaignId?_.find(p.queueCampaigns.rows,["id",Number(e.previewCampaignId)]):p.originalCampaign});break;default:h(p.selectedDisposition?p.selectedDisposition.name.toUpperCase():"")}},p.closeDialog=function(){t.cancel()},p.saveReschedule=function(){p.disable=!0;var e=p.queueCampaign?p.queueCampaign.id:null;p.dialerCall&&(e=p.queueCampaign&&"preview"===p.originalCampaign.dialMethod?p.queueCampaign.id:Number(p.call["xmd-voicequeueid"]));return o.cmHopper.save({phone:p.contact.phone,UserId:p.recallme?d.getCurrentUser().id:null,ContactId:p.contact.id,ListId:p.contact.ListId,VoiceQueueId:e,scheduledat:moment(p.hopper.dateTime).format("YYYY-MM-DD HH:mm:ss"),priority:3,recallme:p.recallme,OwnerId:d.getCurrentUser().id}).$promise.then(function(){if(p.dialerCall&&(o.cmHopperFinal.update({id:p.call.uniqueid,rescheduled:!0,rescheduledat:moment(p.hopper.dateTime).format("YYYY-MM-DD HH:mm:ss"),recallme:p.recallme}).$promise.catch(function(e){console.log(e)}),p.user.selectRecallMeCampaign&&"preview"===p.originalCampaign.dialMethod)){var e=JSON.parse(n.localStorage.getItem("motion2.user:"+p.user.id));e.previewCampaignId=p.queueCampaign.id,n.localStorage.setItem("motion2.user:"+p.user.id,JSON.stringify(e))}}).then(function(){s.success({title:c.instant("DASHBOARDS.INFO"),msg:c.instant("DASHBOARDS.CALL_DISPOSED")+" "+(p.recallme?c.instant("DASHBOARDS.RECALLME"):c.instant("DASHBOARDS.RESCHEDULE"))})}).catch(function(e){h(p.selectedDisposition?p.selectedDisposition.name.toUpperCase():"")}).finally(function(){p.disable=!1,h(p.selectedDisposition?p.selectedDisposition.name.toUpperCase():"")})}}e.$inject=["$window","$mdDialog","$q","toasty","api","dispositions","globalDispositions","call","contact","Auth","$translate","availableCalls","autoClose"],angular.module("app.staff").controller("DisposeCallDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.call=l,u.contact=r,u.hopper={minDate:new Date,dateTime:new Date},u.closeDialog=function(){a.cancel()},u.saveDialog=function(){return u.disable=!0,o.cmHopper.save({phone:u.contact.phone,UserId:c?d.getCurrentUser().id:null,ContactId:u.contact.id,ListId:u.contact.ListId,VoiceQueueId:Number(u.call["xmd-voicequeueid"]),scheduledat:moment(u.hopper.dateTime).format("YYYY-MM-DD HH:mm:ss"),priority:3,recallme:c,OwnerId:d.getCurrentUser().id}).$promise.then(function(){o.cmHopperFinal.update({id:u.call.uniqueid,rescheduled:!0,rescheduledat:moment(u.hopper.dateTime).format("YYYY-MM-DD HH:mm:ss"),recallme:c}).$promise}).then(function(){s.success({title:m.instant("DASHBOARDS.INFO"),msg:m.instant("DASHBOARDS.CALL_DISPOSED")+" "+(c?m.instant("DASHBOARDS.RECALLME"):m.instant("DASHBOARDS.RESCHEDULE"))}),a.hide()}).catch(function(e){a.cancel(e)}).finally(function(){u.disable=!1})}}e.$inject=["$scope","$state","$location","$mdDialog","$timeout","toasty","api","contact","call","Auth","recallme","$translate"],angular.module("app.staff").controller("RescheduleCallDialogController",e)}(),function(){"use strict";function e(e,a,n,t,i,s){var o=this;o.callNumber=i,o.page=1,o.onInit=function(){n.cmList.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){o.lists=_.chain(e.rows).keyBy("id").mapValues("name").value(),n.cmCustomField.get({fields:"id,alias",nolimit:!0}).$promise.then(function(e){o.customFields=e.rows,o.contacts=_.map(t,function(t){return Object.keys(t).forEach(function(e){if(Number(t[e])===Number(o.callNumber))if(e.startsWith("cf_")){var n=_.find(o.customFields,["id",Number(_.trimStart(e,"cf_"))]);t.matchingField=n?n.alias:a.instant("DASHBOARDS.UNKNOWN")}else t.matchingField=e}),t})})}).then(function(){o.paginatedContacts=_.chunk(t,4)}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmList.get",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},o.selectContact=function(){e.hide(o.selectedContact)}}e.$inject=["$mdDialog","$translate","api","contacts","callNumber","toasty"],angular.module("app.dashboards").controller("ContactSelectionController",e)}(),function(){"use strict";function e(e,n){var t=n(function(){},999);e.$on("$destroy",function(){t&&(n.cancel(t),t=null)})}e.$inject=["$scope","$interval"],angular.module("app.dashboards").controller("AgentHomeAbandonedController",e)}(),function(){"use strict";function e(e,n,a,i,t,s,o,r,l,d){var c=this;function m(){return o.disposition.get({fields:"createdAt,updatedAt,id,name,level,ParentId",sort:"name",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0}).$promise.then(function(e){return c.dispositions=e?e.rows:[],o.user.getQueues({id:r.getCurrentUser().id,fields:"id,name",channel:"voice",type:"outbound",nolimit:!0}).$promise}).then(function(e){c.queues=e||{count:0,rows:[]},c.queuesMap=_.mapValues(_.keyBy(c.queues.rows,"name"),"name"),c.defaultQueues=c.queues.rows?_.map(c.queues.rows,"name").join(","):void 0}).then(function(){c.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Agent",key:"lastAssignedTo",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:c.currentUser.name,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}],ngValue:"name"},{name:"Campaign",key:"queue",type:"multiselect",label:"DASHBOARDS.SELECT_CAMPAIGN",options:c.queues.rows,ngValue:"name",clearAll:!1}]}).catch(function(e){console.log(e)}).finally(function(){var e=t.localStorage.getItem("motion2.home.abandoned.bull.calls:"+c.currentUser.id);if(e)(e=JSON.parse(e)).query&&(c.query=_.merge(e.query,c.query));else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};c.query.createdAt=n}c.isSearchBarVisible=!!c.query.filter,u()})}function u(){c.query.queue=c.query.queue||c.defaultQueues.split(","),c.query.offset=(c.query.page-1)*c.query.limit;var e={query:c.query};t.localStorage.setItem("motion2.home.abandoned.bull.calls:"+c.currentUser.id,JSON.stringify(e)),c.promise=o.voiceQueueReport.getVoiceQueuesReport(c.query,p).$promise}function p(e){c.abandonedCalls=e||{count:0,rows:[]},c.refresh=!0}c.showTooltip=!1,c.refresh=!0,c.disable=[],c.dispositions={count:0,rows:[]},c.currentUser=r.getCurrentUser(),c.queues={},c.abandonedCalls={count:0,rows:[]},c.query={fields:"id,type,calleridnum,calleridname,queue,queuecallerabandonAt,queuecallerexitAt,queuecallerexitreason,assigned,lastAssignedTo,updatedAt,disposition,secondDisposition,thirdDisposition",type:"outbound",queuecallerexitreason:"TIMEOUT,ABANDONED",sort:"-updatedAt",limit:10,page:1},c.getAbandonedCalls=u,c.refreshAbandonedCalls=function(){c.showTooltip=!1,u()},c.onInit=m,c.reserved=function(e){e&&(c.disable[e.id]=!0,o.voiceQueueReport.update({id:e.id,lastAssignedTo:e.assigned?c.currentUser.name:null,assigned:e.assigned}).$promise.catch(function(e){console.log(e)}).finally(function(){c.disable[e.id]=!1,e.lastAssignedTo=e.assigned?c.currentUser.name:null}))},c.dispose=function(t){a.show({controller:"DisposeAbandonedCallDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/home/abandoned/dispose/dialog.html",parent:angular.element(i.body),targetEvent:t,locals:{dispositions:c.dispositions,call:t}}).then(function(e){if(e){c.disable[t.id]=!0;var n={id:t.id,lastAssignedTo:t.assigned?c.currentUser.name:null,assigned:t.assigned,disposition:e.firstLevel||null,secondDisposition:e.secondLevel||null,thirdDisposition:e.thirdLevel||null};o.voiceQueueReport.update(n).$promise.catch(function(e){console.log(e)}).finally(function(){c.disable[t.id]=!1,t.disposition=e.firstLevel,t.secondDisposition=e.secondLevel,t.thirdDisposition=e.thirdLevel})}})},c.call=e.$parent.$parent.$parent.$parent.vm.call,c.transfer=e.$parent.$parent.$parent.$parent.vm.transfer,c.webcall=e.$parent.$parent.$parent.$parent.vm.webcall,c.webtransfer=e.$parent.$parent.$parent.$parent.vm.webtransfer,l.onWithoutApply("voiceQueueReport:save",function(e){c.queuesMap&&"outbound"===e.type&&c.queuesMap[e.queue]&&(c.showTooltip=!0)}),l.onWithoutApply("voiceQueueReport:update",function(e){if(e){var n=_.findIndex(c.abandonedCalls.rows,["id",e.id]);0<=n&&_.merge(c.abandonedCalls.rows[n],e)}}),m(),e.$on("$destroy",function(){l.removeAllListeners("voiceQueueReport:save"),l.removeAllListeners("voiceQueueReport:update")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeAbandonedBullController",e)}(),function(){"use strict";function e(n,e,t){var a=this;a.dispositions=e,a.call=t,a.note=a.call.note||void 0,a.onDispositionChange=function(e){switch(e){case"first":a.selectedDisposition=a.firstLevelDisposition,a.anySecondLevelDisposition=_.some(a.dispositions,["ParentId",a.firstLevelDisposition.id]),a.secondLevelDisposition=void 0,a.thirdLevelDisposition=void 0,a.anyThirdLevelDisposition=!1;break;case"second":a.selectedDisposition=a.secondLevelDisposition,a.anyThirdLevelDisposition=_.some(a.dispositions,["ParentId",a.secondLevelDisposition.id]);break;case"third":a.selectedDisposition=a.thirdLevelDisposition}},a.clearDispositionSelection=function(e){"second"===e?(a.secondLevelDisposition=void 0,a.thirdLevelDisposition=void 0,a.selectedDisposition=a.firstLevelDisposition):"third"===e&&(a.thirdLevelDisposition=void 0,a.selectedDisposition=a.secondLevelDisposition)},a.saveDisposition=function(){a.call.note=a.note;var e={firstLevel:a.firstLevelDisposition?a.firstLevelDisposition.name:void 0,secondLevel:a.secondLevelDisposition?a.secondLevelDisposition.name:void 0,thirdLevel:a.thirdLevelDisposition?a.thirdLevelDisposition.name:void 0};n.hide(e)},a.closeDialog=function(){n.cancel()}}e.$inject=["$mdDialog","dispositions","call"],angular.module("app.dashboards").controller("DisposeAbandonedCallDialogController",e)}(),function(){"use strict";function e(e,n,a,i,t,s,o,r,l,d){var c=this;function m(){return o.disposition.get({fields:"createdAt,updatedAt,id,name,level,ParentId",sort:"name",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0}).$promise.then(function(e){return c.dispositions=e?e.rows:[],o.user.getQueues({id:r.getCurrentUser().id,fields:"id,name",channel:"voice",type:"inbound",nolimit:!0}).$promise}).then(function(e){c.queues=e||{count:0,rows:[]},c.queuesMap=_.mapValues(_.keyBy(c.queues.rows,"name"),"name"),c.defaultQueues=c.queues.rows?_.map(c.queues.rows,"name").join(","):void 0}).then(function(){c.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Agent",key:"lastAssignedTo",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:c.currentUser.name,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}],ngValue:"name"},{name:"Campaign",key:"queue",type:"multiselect",label:"DASHBOARDS.SELECT_QUEUE",options:c.queues.rows,ngValue:"name",clearAll:!1}]}).catch(function(e){console.log(e)}).finally(function(){var e=t.localStorage.getItem("motion2.home.abandoned.voice.calls:"+c.currentUser.id);if(e)(e=JSON.parse(e)).query&&(c.query=_.merge(e.query,c.query));else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};c.query.createdAt=n}c.isSearchBarVisible=!!c.query.filter,u()})}function u(){c.query.queue=c.query.queue||c.defaultQueues.split(","),c.query.offset=(c.query.page-1)*c.query.limit;var e={query:c.query};t.localStorage.setItem("motion2.home.abandoned.voice.calls:"+c.currentUser.id,JSON.stringify(e)),c.promise=o.voiceQueueReport.getVoiceQueuesReport(c.query,p).$promise}function p(e){c.abandonedCalls=e||{count:0,rows:[]},c.refresh=!0}c.showTooltip=!1,c.refresh=!0,c.disable=[],c.dispositions={count:0,rows:[]},c.currentUser=r.getCurrentUser(),c.queues={},c.abandonedCalls={count:0,rows:[]},c.query={fields:"id,type,calleridnum,calleridname,queue,queuecallerabandonAt,queuecallerexitAt,queuecallerexitreason,assigned,lastAssignedTo,updatedAt,disposition,secondDisposition,thirdDisposition",type:"inbound",queuecallerexitreason:"TIMEOUT,ABANDONED",sort:"-updatedAt",limit:10,page:1},c.getAbandonedCalls=u,c.refreshAbandonedCalls=function(){c.showTooltip=!1,u()},c.onInit=m,c.reserved=function(e){e&&(c.disable[e.id]=!0,o.voiceQueueReport.update({id:e.id,lastAssignedTo:e.assigned?c.currentUser.name:null,assigned:e.assigned}).$promise.catch(function(e){console.log(e)}).finally(function(){c.disable[e.id]=!1,e.lastAssignedTo=e.assigned?c.currentUser.name:null}))},c.dispose=function(t){a.show({controller:"DisposeAbandonedCallDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/home/abandoned/dispose/dialog.html",parent:angular.element(i.body),targetEvent:t,locals:{dispositions:c.dispositions,call:t}}).then(function(e){if(e){c.disable[t.id]=!0;var n={id:t.id,lastAssignedTo:t.assigned?c.currentUser.name:null,assigned:t.assigned,disposition:e.firstLevel||null,secondDisposition:e.secondLevel||null,thirdDisposition:e.thirdLevel||null};o.voiceQueueReport.update(n).$promise.catch(function(e){console.log(e)}).finally(function(){c.disable[t.id]=!1,t.disposition=e.firstLevel,t.secondDisposition=e.secondLevel,t.thirdDisposition=e.thirdLevel})}})},c.call=e.$parent.$parent.$parent.$parent.vm.call,c.transfer=e.$parent.$parent.$parent.$parent.vm.transfer,c.webcall=e.$parent.$parent.$parent.$parent.vm.webcall,c.webtransfer=e.$parent.$parent.$parent.$parent.vm.webtransfer,l.onWithoutApply("voiceQueueReport:save",function(e){c.queuesMap&&"inbound"===e.type&&c.queuesMap[e.queue]&&(c.showTooltip=!0)}),l.onWithoutApply("voiceQueueReport:update",function(e){if(e){var n=_.findIndex(c.abandonedCalls.rows,["id",e.id]);0<=n&&_.merge(c.abandonedCalls.rows[n],e)}}),m(),e.$on("$destroy",function(){l.removeAllListeners("voiceQueueReport:save"),l.removeAllListeners("voiceQueueReport:update")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeAbandonedVoiceController",e)}(),function(){"use strict";function e(n,a,t,e,i){var s=this;s.user=t.getCurrentUser(),s.license={},s.plugin={},s.setting={},s.sidebar="dashboard",s.draftManager=i,s.navigation=e.getNavigation(),s.addContactTab=n.$parent.vm.addContactTab,s.addInteractionTab=n.$parent.vm.addInteractionTab,s.init=function(e,n){s.license=e,s.setting=n;var t=a.localStorage.getItem("motion2.home:"+s.user.id);if(t){try{t=JSON.parse(t),s.sidebar=t.currentSidebarTab?t.currentSidebarTab:"dashboard"}catch(e){console.error(e),s.sidebar="dashboard"}"mail"===s.sidebar&&s.draftManager.init()}},s.changeSidebarTab=function(e){s.sidebar=e.view,"plugin"===s.sidebar&&(s.plugin=e.stateParams,s.pluginId=e.id,n.$broadcast("pluginUpdated",{plugin:s.plugin}));a.localStorage.setItem("motion2.home:"+s.user.id,JSON.stringify({currentSidebarTab:e.view}))},s.hasPermission=function(e){return t.hasPermission(e)},n.$watch("vm_home.sidebar",function(e,n){"mail"===e?s.draftManager.init():s.draftManager.drafts={}})}e.$inject=["$scope","$window","Auth","msNavigationAgentService","draftManager"],angular.module("app.dashboards").controller("AgentGeneralHomeController",e)}(),function(){"use strict";function e(t,n,i,s,a,o,r,e,l,d){var c=this;function m(e){!c.reloadingInteractions&&0<c.setting.chatInteractionsReloadTimeout&&A(!0),c.searchInProgress=!1,c.reloadingInteractions=!1,c.chatInteractions=e||{count:0,rows:[]};for(var n=0;n<c.chatInteractions.rows.length;n+=1)p(c.chatInteractions.rows[n])}function u(e,n){c.searchInProgress=!0,e||(c.query.page=1),c.query.offset=(c.query.page-1)*c.query.limit;var t=a.localStorage.getItem("motion2.home.chat:"+c.user.id);(t=t?JSON.parse(t):{}).query=c.query,a.localStorage.setItem("motion2.home.chat:"+c.user.id,JSON.stringify(t)),c.promise=r.chatInteraction.get(c.query,m).$promise}function p(e){"Unknown"===e.contactName&&(e.contactName=o.instant("DASHBOARDS.UNKNOWN"))}function g(e){var n=_.find(c.chatInteractions.rows,{id:e.ChatInteractionId});n&&n.Users&&(_.find(n.Users,{id:e.UserId})||n.Users.push({id:e.UserId}))}function v(e){var n=_.find(c.chatInteractions.rows,{id:e.ChatInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function h(e){if(e){var n=_.find(c.chatInteractions.rows,{id:e.id});if(n){if(n.Users=[],e.closed&&(n.unreadMessages=0),c.query.sort){var t=_.startsWith(c.query.sort,"-")?"desc":"asc";c.chatInteractions.rows=_.orderBy(c.chatInteractions.rows,_.trimStart(c.query.sort,"-"),t)}_.merge(n,_.pick(e,_.keys(n)))}else 0===c.setting.chatInteractionsReloadTimeout&&u(c.query.page)}}function f(e){if(e){var n=_.find(c.chatInteractions.rows,{id:e.id});n&&(n.Tags=e.tags||[],_.merge(n,_.pick(e,_.keys(n))))}}function b(e){if(e&&!e.secret){var n=_.find(c.chatInteractions.rows,{id:e.ChatInteractionId});if(n){var t=_.find(n.Messages,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):(_.isNil(n.Messages)&&(n.Messages={count:0}),e.read||(n.Messages.count+=1))}}}function A(e){e&&c.interactionsInterval&&n.cancel(c.interactionsInterval),c.interactionsInterval=n(function(){c.reloadingInteractions=!0,c.searchInProgress||u()},1e3*c.setting.chatInteractionsReloadTimeout)}c.user=e.getCurrentUser(),c.license={},c.setting={},c.tags={count:0,rows:[]},c.chatInteractions={count:0,rows:[]},c.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1,read:null,closed:null},c.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Customer Ip",column:"customerIp",type:"text",options:{excludedOperators:["$eq","$ne","$startsWith","$endsWith"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Website",column:"ChatWebsiteId",type:"multiselect",options:{route:{model:"user",action:"getChatWebsites",params:{id:c.user.id,nolimit:!0}}}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},c.sectionColor="green-A700",c.onInit=function(e,n){return c.license=e,c.setting=n,r.user["get"+_.upperFirst("ChatWebsites")]({id:c.user.id,nolimit:!0}).$promise.then(function(e){return c.chatAccounts=e||{count:0,rows:[]},r.tag.get({sort:"name"}).$promise}).then(function(e){c.tags=e||{count:0,rows:[]}}).then(function(){c.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Website",key:"ChatWebsiteId",type:"multiselect",label:"DASHBOARDS.SELECT_ACCOUNT",options:c.chatAccounts.rows,clearAll:!1},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:c.user.id,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:c.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=a.localStorage.getItem("motion2.home.chat:"+c.user.id);if(e)try{(e=JSON.parse(e)).query&&(c.query=_.merge(c.query,e.query),_.isEmpty(c.chatAccounts.rows)?c.query.ChatWebsiteId=[]:_.isEmpty(c.query.ChatWebsiteId)&&(c.query.ChatWebsiteId=_(c.chatAccounts.rows).map("id").take().value()),c.query.sort&&0<=c.query.sort.indexOf("lastMessage")&&(c.query=_.omit(c.query,"sort")),c.query.includeAll=!0,c.isSearchBarVisible=!(c.query.search||!c.query.filter))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()},t={ChatWebsiteId:_.map(c.chatAccounts.rows,"id"),createdAt:n};c.query=_.merge(c.query,t)}l.on("chatInteraction:save",h),l.on("chatInteraction:update",h),l.on("chatInteractionTags:save",f),l.on("chatMessage:save",b),l.on("chatMessage:update",b),l.on("user_has_chat_interactions:save",g),l.on("user_has_chat_interactions:remove",v),u(c.query.page),0<c.setting.chatInteractionsReloadTimeout&&A()})},c.success=m,c.getChatInteractions=u,c.showChatInteraction=function(e,n){t.$parent.vm.addInteractionTab("chat",n)},c.downloadChatInteraction=function(e,s,n){r.chatInteraction.download({id:s.id,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="chat-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadChatInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.disposeInteraction=function(e,t){var a=c.user.voicePause||c.user.chatPause||c.user.mailPause||c.user.openchannelPause||c.user.faxPause,n=!t.Account.mandatoryDisposition;i.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(s.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(e,n){c.user&&t.Account.mandatoryDisposition&&!a&&r.user.unpause({id:c.user.id}).$promise.catch(function(e){console.error(e)})},locals:{user:c.user,channel:"chat",interaction:t}})},c.getContactLabel=p,c.getAgentLabel=function(e){if(e.UserId)return e.UserId===c.user.id?o.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">";return o.instant("DASHBOARDS.NOT_ASSIGNED")},c.getChatWebsiteLabel=function(e){if(e.Account)return e.Account.key;return o.instant("DASHBOARDS.UNKNOWN")},c.openAdvancedSearch=function(){i.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(s.body),clickOutsideToClose:!1,locals:{color:c.sectionColor,fields:c.advancedSearch.fields,storagePath:"home.chat"},fullscreen:!0}).then(function(e){c.isSearchBarVisible=!(e.value||!c.query.filter),e.apply&&(c.query.search=e.value,u())}).catch(function(e){d.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},t.$on("$destroy",function(){l.removeAllListeners("chatMessage:save"),l.removeAllListeners("chatMessage:update"),l.removeAllListeners("chatInteraction:save"),l.removeAllListeners("chatInteractionTags:save"),l.removeAllListeners("chatInteraction:update"),l.removeAllListeners("user_has_chat_interactions:save"),l.removeAllListeners("user_has_chat_interactions:remove"),c.interactionsInterval&&n.cancel(c.interactionsInterval)})}e.$inject=["$scope","$interval","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeChatController",e)}(),function(){"use strict";function e(t,n,e,a,i,s,o,r){var l=this;function d(e){l.searchInProgress=!1,l.contacts=e||{count:0,rows:[]}}function c(e,n){l.searchInProgress=!0,o.cmContact.describe({id:l.query.ListId}).$promise.then(function(e){return _(e.toJSON()).omit("UserId").values().map(function(e){return function(e){var n={name:_.startCase(e.displayName),column:e.columnName,options:{}};if(e.custom)switch(e.custom.type){case"text":n.type="text";break;case"select":n.type="multiselect",n.values=_.map(JSON.parse(e.custom.values),function(e,n){return{id:n,name:e.value,value:e.value}}),n.options.field="name";break;case"switch":n.type="select",n.values=[{id:1,translate:"DASHBOARDS.ENABLED"},{id:0,translate:"DASHBOARDS.DISABLED"}],n.options.excludedOperators=["$ne"];break;case"number":n.type="number";break;case"datetime":n.type="date"}else switch(e.columnName){case"dateOfBirth":n.type="date";break;case"CompanyId":n.name="Company",n.type="autocomplete",n.options.route={model:"cmCompany",action:"get",params:{fields:"id,name",nolimit:!0}},n.options.searchFields=["name"],n.options.excludedOperators=["$ne"];break;case"ListId":n.name="List",n.type="autocomplete",n.options.route={model:"user",action:"getLists",params:{id:l.currentUser.id,fields:"id,name",nolimit:!0}},n.options.searchFields=["name"],n.options.excludedOperators=["$ne"];break;default:_.includes(e.type.toLowerCase(),"int")?n.type="number":_.includes(e.type.toLowerCase(),"date")?n.type="date":n.type="text"}return n}(e)}).value()}).then(function(e){l.advancedSearch.fields=e;var n=_.findIndex(e,function(e){return _.startsWith(e.column,"cf_")})||e.length-1;n<0&&(n=e.length),l.advancedSearch.fields.splice(n,0,{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"DESCRIBE_CM_CONTACTS",msg:e.data?JSON.stringify(e.data.message):e.toString()})}),e||(l.query.page=1),l.query.offset=(l.query.page-1)*l.query.limit;var t=i.localStorage.getItem("motion2.home.contacts:"+l.currentUser.id);(t=t?JSON.parse(t):{}).query=l.query,i.localStorage.setItem("motion2.home.contacts:"+l.currentUser.id,JSON.stringify(t)),l.promise=o.cmContact.get(l.query,d).$promise}l.currentUser=s.getCurrentUser(),l.lists={},l.contacts={count:0,rows:[]},l.tags={count:0,rows:[]},l.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1},l.advancedSearch={fields:[]},l.sectionColor="red",l.getContacts=c,l.refreshContacts=function(){c()},l.mergeContact=function(e,n){a.show({controller:"MergeContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/merge/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:l.currentUser.id,fields:"id,name"})}]},locals:{contacts:l.contacts.rows}})},l.duplicateContact=function(e,n){a.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:l.currentUser.id,fields:"id,name"})}]},locals:{contacts:l.contacts.rows}})},l.openContact=function(e){return o.cmContact.get({id:e}).$promise.then(function(e){n.$parent.vm.addContactTab(e)})},l.call=n.$parent.vm.call,l.onInit=function(){o.user.getLists({id:l.currentUser.id,fields:"id,name,dialPrefix",sort:"name",nolimit:!0}).$promise.then(function(e){return l.lists=e||{count:0,rows:[]},l.listsMap=_.keyBy(l.lists.rows,"id"),o.tag.get({sort:"name"}).$promise}).then(function(e){l.tags=e||{count:0,rows:[]}}).then(function(){l.quickFilters=[{name:"List",key:"ListId",type:"multiselect",label:"CONTACTMANAGER.SELECT_LIST",options:l.lists.rows,clearAll:!1},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:l.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=i.localStorage.getItem("motion2.home.contacts:"+l.currentUser.id);if(e)try{(e=JSON.parse(e)).query&&(l.query=_.merge(l.query,e.query),_.isEmpty(l.lists.rows)?l.query.ListId=[]:_.isEmpty(l.query.ListId)&&(l.query.ListId=_(l.lists.rows).map("id").take().value()))}catch(e){console.log(e)}else l.query.ListId=_.map(l.lists.rows,"id");l.isSearchBarVisible=!(l.query.search||!l.query.filter),c()})},l.openAdvancedSearch=function(){a.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{color:l.sectionColor,fields:l.advancedSearch.fields,storagePath:"home.contacts"},fullscreen:!0}).then(function(e){l.isSearchBarVisible=!(e.value||!l.query.filter),e.apply&&(l.query.search=e.value,c())}).catch(function(e){r.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}}e.$inject=["$document","$scope","$timeout","$mdDialog","$window","Auth","api","toasty"],angular.module("app.dashboards").controller("AgentHomeContactsController",e)}(),function(){"use strict";function e(e,n){var t=n(function(){},999);e.$on("$destroy",function(){t&&(n.cancel(t),t=null)})}e.$inject=["$scope","$interval"],angular.module("app.dashboards").controller("AgentHomeDashboardController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["type","waiting","dialMethod","dialActive"];function u(e){c.voiceQueuesTotal=e.count?e.count:0,c.voiceQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.voiceQueues,function(e,n){c.rpcVoiceQueues[n]&&(c.voiceQueues[n].waiting=c.rpcVoiceQueues[n].waiting||0)})}c.voiceQueues={},c.voiceQueuesTotal=0,c.rpcVoiceQueues={},c.getVoiceQueues={},c.rpcVoiceQueuesChannels={},c.addVoiceQueuesChannels={},c.deleteVoiceQueuesChannels=[],c.load=!0,c.query={id:r.getCurrentUser().id,fields:"id,name,type,dialMethod,dialActive",channel:"voice",type:"outbound",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=u,c.getVoiceQueues=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.user.getQueues(c.query,u).$promise},c.getSize=function(e){return _.size(e)},c.onSaveQueue=function(e){c.voiceQueues[e.id]&&c.rpcVoiceQueues[e.id]&&(c.rpcVoiceQueues[e.id]=e,_.merge(c.voiceQueues[e.id],_.pick(e,m)))},c.onSaveChannel=function(e){"outbound"===e.type&&(e.queuecallerleaveAt?(delete c.rpcVoiceQueuesChannels[e.uniqueid],c.load&&c.deleteVoiceQueuesChannels.push(e.uniqueid)):(c.rpcVoiceQueuesChannels[e.uniqueid]=e,c.load&&(c.addVoiceQueuesChannels[e.uniqueid]=e)))},c.onUserVoiceQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getVoiceQueues()},c.onSaveVoiceQueue=function(e){_.isNil(e)||(c.rpcVoiceQueues[e.id]=_.pick(e,m))},c.onUpdateVoiceQueue=function(e){_.isNil(e)||(c.rpcVoiceQueues[e.id]&&_.merge(c.rpcVoiceQueues[e.id],_.pick(e,m)),c.voiceQueues[e.id]&&_.merge(c.voiceQueues[e.id],_.pick(e,m)))},c.onRemoveVoiceQueue=function(e){_.isNil(e)||(delete c.rpcVoiceQueues[e.id],delete c.voiceQueues[e.id])},l.onWithoutApply("voice_queue:save",c.onSaveQueue),l.onWithoutApply("voice_queue_channel:save",c.onSaveChannel),l.onWithoutApply("userVoiceQueue:save",c.onUserVoiceQueue),l.onWithoutApply("userVoiceQueue:remove",c.onUserVoiceQueue),l.onWithoutApply("voiceQueue:save",c.onSaveVoiceQueue),l.onWithoutApply("voiceQueue:remove",c.onRemoveVoiceQueue),l.onWithoutApply("voiceQueue:update",c.onUpdateVoiceQueue),o.rpc.getVoiceQueues().$promise.then(function(e){return c.rpcVoiceQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},o.rpc.getVoiceQueuesChannels().$promise}).then(function(e){c.rpcVoiceQueuesChannels=e?_.keyBy(e.rows?_.filter(e.rows,{type:"outbound",queuecallerleaveAt:null}):[],"uniqueid"):{}}).catch(function(e){console.error(e)}).finally(function(){_.merge(c.rpcVoiceQueuesChannels,c.addVoiceQueuesChannels);for(var e=0;e<c.deleteVoiceQueuesChannels.length;e+=1)delete c.rpcVoiceQueuesChannels[c.deleteVoiceQueuesChannels[e]];c.load=!1,c.addVoiceQueuesChannels={},c.deleteVoiceQueuesChannels=[],c.getVoiceQueues()});var p=!0,g=1;e.$watch("vm_dc.query.filter",function(e,n){p?t(function(){p=!1}):(n||(g=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=g),c.getVoiceQueues())}),e.$on("$destroy",function(){l.removeAllListeners("voice_queue:save"),l.removeAllListeners("voice_queue_channel:save"),l.removeAllListeners("userVoiceQueue:save"),l.removeAllListeners("userVoiceQueue:remove"),l.removeAllListeners("voiceQueue:save"),l.removeAllListeners("voiceQueue:update"),l.removeAllListeners("voiceQueue:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardBullController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["id","name","mapAgentsId","waiting"],u=!0;function p(){var e=(c.queryChannels.page-1)*c.queryChannels.limit;c.paginatedInteractions=_.orderBy(c.rpcChatQueuesWaitingInteractions,["joinAt"],["desc"]),c.interactions=_.drop(c.paginatedInteractions,e).slice(0,c.queryChannels.limit)}function g(e){c.chatQueuesTotal=e.count?e.count:0,c.chatQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.chatQueues,function(e,n){c.rpcChatQueues[n]&&(c.chatQueues[n].waiting=c.rpcChatQueues[n].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.user.getQueues(c.query,g).$promise}c.chatQueues={},c.chatQueuesTotal=0,c.rpcChatQueues={},c.paginatedInteractions=[],c.deleteChatQueuesWaitingInteractions=[],c.rpcChatQueuesWaitingInteractions={},c.query={id:r.getCurrentUser().id,channel:"chat",fields:"id,name,mapAgentsId,waiting",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=g,c.getChatQueues=v,c.getSize=function(e){return _.size(e)},c.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"whatsapp":return"lime-A700-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},c.paginate=p,c.onSaveQueue=function(e){c.chatQueues[e.id]&&c.rpcChatQueues[e.id]&&(_.merge(c.rpcChatQueues[e.id],_.pick(e,m)),_.merge(c.chatQueues[e.id],_.pick(e,m)))},c.onSaveChatQueue=function(e){_.isNil(e)||(c.rpcChatQueues[e.id]=_.pick(e,m))},c.onUpdateChatQueue=function(e){_.isNil(e)||(c.rpcChatQueues[e.id]&&_.merge(c.rpcChatQueues[e.id],_.pick(e,m)),c.chatQueues[e.id]&&_.merge(c.chatQueues[e.id],_.pick(e,m)))},c.onRemoveChatQueue=function(e){_.isNil(e)||(delete c.rpcChatQueues[e.id],delete c.chatQueues[e.id])},c.onSaveUserChatQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getChatQueues()},c.onRemoveUserChatQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getChatQueues()},c.onSaveChatQueueChannel=function(e){c.chatQueues[e.queue_id]&&(c.rpcChatQueuesWaitingInteractions[e.id]=e,p())},c.onRemoveChatQueueChannel=function(e){delete c.rpcChatQueuesWaitingInteractions[e.id],u&&c.deleteChatQueuesWaitingInteractions.push(e.id);p()},l.onWithoutApply("chat_queue:save",c.onSaveQueue),l.onWithoutApply("chatQueue:save",c.onSaveChatQueue),l.onWithoutApply("chatQueue:update",c.onUpdateChatQueue),l.onWithoutApply("chatQueue:remove",c.onRemoveChatQueue),l.onWithoutApply("userChatQueue:save",c.onSaveUserChatQueue),l.onWithoutApply("userChatQueue:remove",c.onRemoveUserChatQueue),l.onWithoutApply("chat_queue_waiting_interaction:save",c.onSaveChatQueueChannel),l.onWithoutApply("chat_queue_waiting_interaction:remove",c.onRemoveChatQueueChannel),o.rpc.getChatQueues().$promise.then(function(e){c.rpcChatQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return o.user.getQueues({id:r.getCurrentUser().id,channel:"chat"}).$promise}).then(function(e){return c.myQueues=e.rows,o.rpc.getChatQueuesWaitingInteractions().$promise}).then(function(e){var n=_.filter(e.rows,function(e){return _.find(c.myQueues,{id:e.queue_id})});e.rows=n,e.count=n.length,_.merge(c.rpcChatQueuesWaitingInteractions,e?_.keyBy(e.rows?e.rows:[],"id"):{})}).catch(function(e){console.error(e)}).finally(function(){for(var e=0;e<c.deleteChatQueuesWaitingInteractions.length;e+=1)delete c.rpcChatQueuesWaitingInteractions[c.deleteChatQueuesWaitingInteractions[e]];u=!1,c.deleteChatQueuesWaitingInteractions=[],v(),p()});var h=!0,f=1;e.$watch("vm_dc.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=f),c.getChatQueues())}),e.$on("$destroy",function(){l.removeAllListeners("chat_queue:save"),l.removeAllListeners("chatQueue:save"),l.removeAllListeners("chatQueue:update"),l.removeAllListeners("chatQueue:remove"),l.removeAllListeners("userChatQueue:save"),l.removeAllListeners("userChatQueue:remove"),l.removeAllListeners("chat_queue_waiting_interaction:save"),l.removeAllListeners("chat_queue_waiting_interaction:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardMultiChannelChatController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["id","name","mapAgentsId","waiting"],u=!0;function p(){var e=(c.queryChannels.page-1)*c.queryChannels.limit;c.paginatedInteractions=_.orderBy(c.rpcFaxQueuesWaitingInteractions,["joinAt"],["desc"]),c.interactions=_.drop(c.paginatedInteractions,e).slice(0,c.queryChannels.limit)}function g(e){c.faxQueuesTotal=e.count?e.count:0,c.faxQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.faxQueues,function(e,n){c.rpcFaxQueues[n]&&(c.faxQueues[n].waiting=c.rpcFaxQueues[n].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.user.getQueues(c.query,g).$promise}c.faxQueues={},c.faxQueuesTotal=0,c.rpcFaxQueues={},c.paginatedInteractions=[],c.deleteFaxQueuesWaitingInteractions=[],c.rpcFaxQueuesWaitingInteractions={},c.query={id:r.getCurrentUser().id,channel:"fax",fields:"id,name,mapAgentsId,waiting",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=g,c.getFaxQueues=v,c.getSize=function(e){return _.size(e)},c.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"whatsapp":return"lime-A700-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},c.paginate=p,c.onSaveQueue=function(e){c.faxQueues[e.id]&&c.rpcFaxQueues[e.id]&&(_.merge(c.rpcFaxQueues[e.id],_.pick(e,m)),_.merge(c.faxQueues[e.id],_.pick(e,m)))},c.onSaveFaxQueue=function(e){_.isNil(e)||(c.rpcFaxQueues[e.id]=_.pick(e,m))},c.onUpdateFaxQueue=function(e){_.isNil(e)||(c.rpcFaxQueues[e.id]&&_.merge(c.rpcFaxQueues[e.id],_.pick(e,m)),c.faxQueues[e.id]&&_.merge(c.faxQueues[e.id],_.pick(e,m)))},c.onRemoveFaxQueue=function(e){_.isNil(e)||(delete c.rpcFaxQueues[e.id],delete c.faxQueues[e.id])},c.onSaveUserFaxQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getFaxQueues()},c.onRemoveUserFaxQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getFaxQueues()},c.onSaveFaxQueueChannel=function(e){c.faxQueues[e.queue_id]&&(c.rpcFaxQueuesWaitingInteractions[e.id]=e,p())},c.onRemoveFaxQueueChannel=function(e){delete c.rpcFaxQueuesWaitingInteractions[e.id],u&&c.deleteFaxQueuesWaitingInteractions.push(e.id);p()},l.onWithoutApply("fax_queue:save",c.onSaveQueue),l.onWithoutApply("faxQueue:save",c.onSaveFaxQueue),l.onWithoutApply("faxQueue:update",c.onUpdateFaxQueue),l.onWithoutApply("faxQueue:remove",c.onRemoveFaxQueue),l.onWithoutApply("userFaxQueue:save",c.onSaveUserFaxQueue),l.onWithoutApply("userFaxQueue:remove",c.onRemoveUserFaxQueue),l.onWithoutApply("fax_queue_waiting_interaction:save",c.onSaveFaxQueueChannel),l.onWithoutApply("fax_queue_waiting_interaction:remove",c.onRemoveFaxQueueChannel),o.rpc.getFaxQueues().$promise.then(function(e){c.rpcFaxQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return o.user.getQueues({id:r.getCurrentUser().id,channel:"fax"}).$promise}).then(function(e){return c.myQueues=e.rows,o.rpc.getFaxQueuesWaitingInteractions().$promise}).then(function(e){var n=_.filter(e.rows,function(e){return _.find(c.myQueues,{id:e.queue_id})});e.rows=n,e.count=n.length,_.merge(c.rpcFaxQueuesWaitingInteractions,e?_.keyBy(e.rows?e.rows:[],"id"):{})}).catch(function(e){console.error(e)}).finally(function(){for(var e=0;e<c.deleteFaxQueuesWaitingInteractions.length;e+=1)delete c.rpcFaxQueuesWaitingInteractions[c.deleteFaxQueuesWaitingInteractions[e]];u=!1,c.deleteFaxQueuesWaitingInteractions=[],v(),p()});var h=!0,f=1;e.$watch("vm_dc.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=f),c.getFaxQueues())}),e.$on("$destroy",function(){l.removeAllListeners("fax_queue:save"),l.removeAllListeners("faxQueue:save"),l.removeAllListeners("faxQueue:update"),l.removeAllListeners("faxQueue:remove"),l.removeAllListeners("userFaxQueue:save"),l.removeAllListeners("userFaxQueue:remove"),l.removeAllListeners("fax_queue_waiting_interaction:save"),l.removeAllListeners("fax_queue_waiting_interaction:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardMultiChannelFaxController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["id","name","mapAgentsId","waiting"],u=!0;function p(){var e=(c.queryChannels.page-1)*c.queryChannels.limit;c.paginatedInteractions=_.orderBy(c.rpcMailQueuesWaitingInteractions,["joinAt"],["desc"]),c.interactions=_.drop(c.paginatedInteractions,e).slice(0,c.queryChannels.limit)}function g(e){c.mailQueuesTotal=e.count?e.count:0,c.mailQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.mailQueues,function(e,n){c.rpcMailQueues[n]&&(c.mailQueues[n].waiting=c.rpcMailQueues[n].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.user.getQueues(c.query,g).$promise}c.mailQueues={},c.mailQueuesTotal=0,c.rpcMailQueues={},c.paginatedInteractions=[],c.deleteMailQueuesWaitingInteractions=[],c.rpcMailQueuesWaitingInteractions={},c.query={id:r.getCurrentUser().id,channel:"mail",fields:"id,name,mapAgentsId,waiting",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=g,c.getMailQueues=v,c.getSize=function(e){return _.size(e)},c.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"whatsapp":return"lime-A700-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},c.paginate=p,c.onSaveQueue=function(e){c.mailQueues[e.id]&&c.rpcMailQueues[e.id]&&(_.merge(c.rpcMailQueues[e.id],_.pick(e,m)),_.merge(c.mailQueues[e.id],_.pick(e,m)))},c.onSaveMailQueue=function(e){_.isNil(e)||(c.rpcMailQueues[e.id]=_.pick(e,m))},c.onUpdateMailQueue=function(e){_.isNil(e)||(c.rpcMailQueues[e.id]&&_.merge(c.rpcMailQueues[e.id],_.pick(e,m)),c.mailQueues[e.id]&&_.merge(c.mailQueues[e.id],_.pick(e,m)))},c.onRemoveMailQueue=function(e){_.isNil(e)||(delete c.rpcMailQueues[e.id],delete c.mailQueues[e.id])},c.onSaveUserMailQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getMailQueues()},c.onRemoveUserMailQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getMailQueues()},c.onSaveMailQueueChannel=function(e){c.mailQueues[e.queue_id]&&(c.rpcMailQueuesWaitingInteractions[e.id]=e,p())},c.onRemoveMailQueueChannel=function(e){delete c.rpcMailQueuesWaitingInteractions[e.id],u&&c.deleteMailQueuesWaitingInteractions.push(e.id);p()},l.onWithoutApply("mail_queue:save",c.onSaveQueue),l.onWithoutApply("mailQueue:save",c.onSaveMailQueue),l.onWithoutApply("mailQueue:update",c.onUpdateMailQueue),l.onWithoutApply("mailQueue:remove",c.onRemoveMailQueue),l.onWithoutApply("userMailQueue:save",c.onSaveUserMailQueue),l.onWithoutApply("userMailQueue:remove",c.onRemoveUserMailQueue),l.onWithoutApply("mail_queue_waiting_interaction:save",c.onSaveMailQueueChannel),l.onWithoutApply("mail_queue_waiting_interaction:remove",c.onRemoveMailQueueChannel),o.rpc.getMailQueues().$promise.then(function(e){c.rpcMailQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return o.user.getQueues({id:r.getCurrentUser().id,channel:"mail"}).$promise}).then(function(e){return c.myQueues=e.rows,o.rpc.getMailQueuesWaitingInteractions().$promise}).then(function(e){var n=_.filter(e.rows,function(e){return _.find(c.myQueues,{id:e.queue_id})});e.rows=n,e.count=n.length,_.merge(c.rpcMailQueuesWaitingInteractions,e?_.keyBy(e.rows?e.rows:[],"id"):{})}).catch(function(e){console.error(e)}).finally(function(){for(var e=0;e<c.deleteMailQueuesWaitingInteractions.length;e+=1)delete c.rpcMailQueuesWaitingInteractions[c.deleteMailQueuesWaitingInteractions[e]];u=!1,c.deleteMailQueuesWaitingInteractions=[],v(),p()});var h=!0,f=1;e.$watch("vm_dc.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=f),c.getMailQueues())}),e.$on("$destroy",function(){l.removeAllListeners("mail_queue:save"),l.removeAllListeners("mailQueue:save"),l.removeAllListeners("mailQueue:update"),l.removeAllListeners("mailQueue:remove"),l.removeAllListeners("userMailQueue:save"),l.removeAllListeners("userMailQueue:remove"),l.removeAllListeners("mail_queue_waiting_interaction:save"),l.removeAllListeners("mail_queue_waiting_interaction:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardMultiChannelMailController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["id","name","mapAgentsId","waiting"],u=!0;function p(){var e=(c.queryChannels.page-1)*c.queryChannels.limit;c.paginatedInteractions=_.orderBy(c.rpcOpenchannelQueuesWaitingInteractions,["joinAt"],["desc"]),c.interactions=_.drop(c.paginatedInteractions,e).slice(0,c.queryChannels.limit)}function g(e){c.openchannelQueuesTotal=e.count?e.count:0,c.openchannelQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.openchannelQueues,function(e,n){c.rpcOpenchannelQueues[n]&&(c.openchannelQueues[n].waiting=c.rpcOpenchannelQueues[n].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.user.getQueues(c.query,g).$promise}c.openchannelQueues={},c.openchannelQueuesTotal=0,c.rpcOpenchannelQueues={},c.paginatedInteractions=[],c.deleteOpenchannelQueuesWaitingInteractions=[],c.rpcOpenchannelQueuesWaitingInteractions={},c.query={id:r.getCurrentUser().id,channel:"openchannel",fields:"id,name,mapAgentsId,waiting",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=g,c.getOpenchannelQueues=v,c.getSize=function(e){return _.size(e)},c.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"whatsapp":return"lime-A700-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},c.paginate=p,c.onSaveQueue=function(e){c.openchannelQueues[e.id]&&c.rpcOpenchannelQueues[e.id]&&(_.merge(c.rpcOpenchannelQueues[e.id],_.pick(e,m)),_.merge(c.openchannelQueues[e.id],_.pick(e,m)))},c.onSaveOpenchannelQueue=function(e){_.isNil(e)||(c.rpcOpenchannelQueues[e.id]=_.pick(e,m))},c.onUpdateOpenchannelQueue=function(e){_.isNil(e)||(c.rpcOpenchannelQueues[e.id]&&_.merge(c.rpcOpenchannelQueues[e.id],_.pick(e,m)),c.openchannelQueues[e.id]&&_.merge(c.openchannelQueues[e.id],_.pick(e,m)))},c.onRemoveOpenchannelQueue=function(e){_.isNil(e)||(delete c.rpcOpenchannelQueues[e.id],delete c.openchannelQueues[e.id])},c.onSaveUserOpenchannelQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getOpenchannelQueues()},c.onRemoveUserOpenchannelQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getOpenchannelQueues()},c.onSaveOpenchannelQueueChannel=function(e){c.openchannelQueues[e.queue_id]&&(c.rpcOpenchannelQueuesWaitingInteractions[e.id]=e,p())},c.onRemoveOpenchannelQueueChannel=function(e){delete c.rpcOpenchannelQueuesWaitingInteractions[e.id],u&&c.deleteOpenchannelQueuesWaitingInteractions.push(e.id);p()},l.onWithoutApply("openchannel_queue:save",c.onSaveQueue),l.onWithoutApply("openchannelQueue:save",c.onSaveOpenchannelQueue),l.onWithoutApply("openchannelQueue:update",c.onUpdateOpenchannelQueue),l.onWithoutApply("openchannelQueue:remove",c.onRemoveOpenchannelQueue),l.onWithoutApply("userOpenchannelQueue:save",c.onSaveUserOpenchannelQueue),l.onWithoutApply("userOpenchannelQueue:remove",c.onRemoveUserOpenchannelQueue),l.onWithoutApply("openchannel_queue_waiting_interaction:save",c.onSaveOpenchannelQueueChannel),l.onWithoutApply("openchannel_queue_waiting_interaction:remove",c.onRemoveOpenchannelQueueChannel),o.rpc.getOpenchannelQueues().$promise.then(function(e){c.rpcOpenchannelQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return o.user.getQueues({id:r.getCurrentUser().id,channel:"openchannel"}).$promise}).then(function(e){return c.myQueues=e.rows,o.rpc.getOpenchannelQueuesWaitingInteractions().$promise}).then(function(e){var n=_.filter(e.rows,function(e){return _.find(c.myQueues,{id:e.queue_id})});e.rows=n,e.count=n.length,_.merge(c.rpcOpenchannelQueuesWaitingInteractions,e?_.keyBy(e.rows?e.rows:[],"id"):{})}).catch(function(e){console.error(e)}).finally(function(){for(var e=0;e<c.deleteOpenchannelQueuesWaitingInteractions.length;e+=1)delete c.rpcOpenchannelQueuesWaitingInteractions[c.deleteOpenchannelQueuesWaitingInteractions[e]];u=!1,c.deleteOpenchannelQueuesWaitingInteractions=[],v(),p()});var h=!0,f=1;e.$watch("vm_dc.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=f),c.getOpenchannelQueues())}),e.$on("$destroy",function(){l.removeAllListeners("openchannel_queue:save"),l.removeAllListeners("openchannelQueue:save"),l.removeAllListeners("openchannelQueue:update"),l.removeAllListeners("openchannelQueue:remove"),l.removeAllListeners("userOpenchannelQueue:save"),l.removeAllListeners("userOpenchannelQueue:remove"),l.removeAllListeners("openchannel_queue_waiting_interaction:save"),l.removeAllListeners("openchannel_queue_waiting_interaction:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardMultiChannelOpenchannelController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["id","name","mapAgentsId","waiting"],u=!0;function p(){var e=(c.queryChannels.page-1)*c.queryChannels.limit;c.paginatedInteractions=_.orderBy(c.rpcSmsQueuesWaitingInteractions,["joinAt"],["desc"]),c.interactions=_.drop(c.paginatedInteractions,e).slice(0,c.queryChannels.limit)}function g(e){c.smsQueuesTotal=e.count?e.count:0,c.smsQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.smsQueues,function(e,n){c.rpcSmsQueues[n]&&(c.smsQueues[n].waiting=c.rpcSmsQueues[n].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.user.getQueues(c.query,g).$promise}c.smsQueues={},c.smsQueuesTotal=0,c.rpcSmsQueues={},c.paginatedInteractions=[],c.deleteSmsQueuesWaitingInteractions=[],c.rpcSmsQueuesWaitingInteractions={},c.query={id:r.getCurrentUser().id,channel:"sms",fields:"id,name,mapAgentsId,waiting",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=g,c.getSmsQueues=v,c.getSize=function(e){return _.size(e)},c.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"whatsapp":return"lime-A700-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},c.paginate=p,c.onSaveQueue=function(e){c.smsQueues[e.id]&&c.rpcSmsQueues[e.id]&&(_.merge(c.rpcSmsQueues[e.id],_.pick(e,m)),_.merge(c.smsQueues[e.id],_.pick(e,m)))},c.onSaveSmsQueue=function(e){_.isNil(e)||(c.rpcSmsQueues[e.id]=_.pick(e,m))},c.onUpdateSmsQueue=function(e){_.isNil(e)||(c.rpcSmsQueues[e.id]&&_.merge(c.rpcSmsQueues[e.id],_.pick(e,m)),c.smsQueues[e.id]&&_.merge(c.smsQueues[e.id],_.pick(e,m)))},c.onRemoveSmsQueue=function(e){_.isNil(e)||(delete c.rpcSmsQueues[e.id],delete c.smsQueues[e.id])},c.onSaveUserSmsQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getSmsQueues()},c.onRemoveUserSmsQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getSmsQueues()},c.onSaveSmsQueueChannel=function(e){c.smsQueues[e.queue_id]&&(c.rpcSmsQueuesWaitingInteractions[e.id]=e,p())},c.onRemoveSmsQueueChannel=function(e){delete c.rpcSmsQueuesWaitingInteractions[e.id],u&&c.deleteSmsQueuesWaitingInteractions.push(e.id);p()},l.onWithoutApply("sms_queue:save",c.onSaveQueue),l.onWithoutApply("smsQueue:save",c.onSaveSmsQueue),l.onWithoutApply("smsQueue:update",c.onUpdateSmsQueue),l.onWithoutApply("smsQueue:remove",c.onRemoveSmsQueue),l.onWithoutApply("userSmsQueue:save",c.onSaveUserSmsQueue),l.onWithoutApply("userSmsQueue:remove",c.onRemoveUserSmsQueue),l.onWithoutApply("sms_queue_waiting_interaction:save",c.onSaveSmsQueueChannel),l.onWithoutApply("sms_queue_waiting_interaction:remove",c.onRemoveSmsQueueChannel),o.rpc.getSmsQueues().$promise.then(function(e){c.rpcSmsQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return o.user.getQueues({id:r.getCurrentUser().id,channel:"sms"}).$promise}).then(function(e){return c.myQueues=e.rows,o.rpc.getSmsQueuesWaitingInteractions().$promise}).then(function(e){var n=_.filter(e.rows,function(e){return _.find(c.myQueues,{id:e.queue_id})});e.rows=n,e.count=n.length,_.merge(c.rpcSmsQueuesWaitingInteractions,e?_.keyBy(e.rows?e.rows:[],"id"):{})}).catch(function(e){console.error(e)}).finally(function(){for(var e=0;e<c.deleteSmsQueuesWaitingInteractions.length;e+=1)delete c.rpcSmsQueuesWaitingInteractions[c.deleteSmsQueuesWaitingInteractions[e]];u=!1,c.deleteSmsQueuesWaitingInteractions=[],v(),p()});var h=!0,f=1;e.$watch("vm_dc.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=f),c.getSmsQueues())}),e.$on("$destroy",function(){l.removeAllListeners("sms_queue:save"),l.removeAllListeners("smsQueue:save"),l.removeAllListeners("smsQueue:update"),l.removeAllListeners("smsQueue:remove"),l.removeAllListeners("userSmsQueue:save"),l.removeAllListeners("userSmsQueue:remove"),l.removeAllListeners("sms_queue_waiting_interaction:save"),l.removeAllListeners("sms_queue_waiting_interaction:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardMultiChannelSmsController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["type","waiting","dialMethod","dialActive"];function u(e){c.voiceQueuesTotal=e.count?e.count:0,c.voiceQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.voiceQueues,function(e,n){c.rpcVoiceQueues[n]&&(c.voiceQueues[n].waiting=c.rpcVoiceQueues[n].waiting||0)})}c.voiceQueues={},c.voiceQueuesTotal=0,c.rpcVoiceQueues={},c.getVoiceQueues={},c.rpcVoiceQueuesChannels={},c.addVoiceQueuesChannels={},c.deleteVoiceQueuesChannels=[],c.load=!0,c.query={id:r.getCurrentUser().id,fields:"id,name,type,dialMethod,dialActive",channel:"voice",type:"inbound",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=u,c.getVoiceQueues=function(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.user.getQueues(c.query,u).$promise},c.getSize=function(e){return _.size(e)},c.onSaveQueue=function(e){c.voiceQueues[e.id]&&c.rpcVoiceQueues[e.id]&&(c.rpcVoiceQueues[e.id]=e,_.merge(c.voiceQueues[e.id],_.pick(e,m)))},c.onSaveChannel=function(e){"inbound"===e.type&&(e.queuecallerleaveAt?(delete c.rpcVoiceQueuesChannels[e.uniqueid],c.load&&c.deleteVoiceQueuesChannels.push(e.uniqueid)):(c.rpcVoiceQueuesChannels[e.uniqueid]=e,c.load&&(c.addVoiceQueuesChannels[e.uniqueid]=e)))},c.onUserVoiceQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getVoiceQueues()},c.onSaveVoiceQueue=function(e){_.isNil(e)||(c.rpcVoiceQueues[e.id]=_.pick(e,m))},c.onUpdateVoiceQueue=function(e){_.isNil(e)||(c.rpcVoiceQueues[e.id]&&_.merge(c.rpcVoiceQueues[e.id],_.pick(e,m)),c.voiceQueues[e.id]&&_.merge(c.voiceQueues[e.id],_.pick(e,m)))},c.onRemoveVoiceQueue=function(e){_.isNil(e)||(delete c.rpcVoiceQueues[e.id],delete c.voiceQueues[e.id])},l.onWithoutApply("voice_queue:save",c.onSaveQueue),l.onWithoutApply("voice_queue_channel:save",c.onSaveChannel),l.onWithoutApply("userVoiceQueue:save",c.onUserVoiceQueue),l.onWithoutApply("userVoiceQueue:remove",c.onUserVoiceQueue),l.onWithoutApply("voiceQueue:save",c.onSaveVoiceQueue),l.onWithoutApply("voiceQueue:remove",c.onRemoveVoiceQueue),l.onWithoutApply("voiceQueue:update",c.onUpdateVoiceQueue),o.user.getQueues(c.query).$promise.then(function(e){return c.myQueues=e,o.rpc.getVoiceQueues().$promise}).then(function(e){for(var n=e.rows,t=_.keyBy(n,"id"),a=0;a<c.myQueues.count;a++){var i=c.myQueues.rows[a];c.rpcVoiceQueues[i.id]=t[i.id]}return o.rpc.getVoiceQueuesChannels().$promise}).then(function(e){c.rpcVoiceQueuesChannels=e?_.keyBy(e.rows?_.filter(e.rows,function(e){return!("inbound"!==e.type||e.queuecallerleaveAt||!_.find(c.myQueues.rows,{name:e.queue}))}):[],"uniqueid"):{}}).catch(function(e){console.error(e)}).finally(function(){_.merge(c.rpcVoiceQueuesChannels,c.addVoiceQueuesChannels);for(var e=0;e<c.deleteVoiceQueuesChannels.length;e+=1)delete c.rpcVoiceQueuesChannels[c.deleteVoiceQueuesChannels[e]];c.load=!1,c.addVoiceQueuesChannels={},c.deleteVoiceQueuesChannels=[],c.getVoiceQueues()});var p=!0,g=1;e.$watch("vm_dc.query.filter",function(e,n){p?t(function(){p=!1}):(n||(g=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=g),c.getVoiceQueues())}),e.$on("$destroy",function(){l.removeAllListeners("voice_queue:save"),l.removeAllListeners("voice_queue_channel:save"),l.removeAllListeners("userVoiceQueue:save"),l.removeAllListeners("userVoiceQueue:remove"),l.removeAllListeners("voiceQueue:save"),l.removeAllListeners("voiceQueue:update"),l.removeAllListeners("voiceQueue:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardVoiceController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["id","name","mapAgentsId","waiting"],u=!0;function p(){var e=(c.queryChannels.page-1)*c.queryChannels.limit;c.paginatedInteractions=_.orderBy(c.rpcWhatsappQueuesWaitingInteractions,["joinAt"],["desc"]),c.interactions=_.drop(c.paginatedInteractions,e).slice(0,c.queryChannels.limit)}function g(e){c.whatsappQueuesTotal=e.count?e.count:0,c.whatsappQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{},_.forIn(c.whatsappQueues,function(e,n){c.rpcWhatsappQueues[n]&&(c.whatsappQueues[n].waiting=c.rpcWhatsappQueues[n].waiting||0)})}function v(){c.query.offset=(c.query.page-1)*c.query.limit,c.promise=o.user.getQueues(c.query,g).$promise}c.whatsappQueues={},c.whatsappQueuesTotal=0,c.rpcWhatsappQueues={},c.paginatedInteractions=[],c.deleteWhatsappQueuesWaitingInteractions=[],c.rpcWhatsappQueuesWaitingInteractions={},c.query={id:r.getCurrentUser().id,channel:"whatsapp",fields:"id,name,mapAgentsId,waiting",limit:10,page:1},c.queryChannels={limit:10,page:1},c.success=g,c.getWhatsappQueues=v,c.getSize=function(e){return _.size(e)},c.getColorByChannel=function(e){switch(e){case"chat":return"green-A700-bg";case"mail":return"teal-bg";case"sms":return"orange-bg";case"whatsapp":return"lime-A700-bg";case"openchannel":return"amber-A200-bg";case"fax":return"blue-grey-A200-bg";default:return"white-bg"}},c.paginate=p,c.onSaveQueue=function(e){c.whatsappQueues[e.id]&&c.rpcWhatsappQueues[e.id]&&(_.merge(c.rpcWhatsappQueues[e.id],_.pick(e,m)),_.merge(c.whatsappQueues[e.id],_.pick(e,m)))},c.onSaveWhatsappQueue=function(e){_.isNil(e)||(c.rpcWhatsappQueues[e.id]=_.pick(e,m))},c.onUpdateWhatsappQueue=function(e){_.isNil(e)||(c.rpcWhatsappQueues[e.id]&&_.merge(c.rpcWhatsappQueues[e.id],_.pick(e,m)),c.whatsappQueues[e.id]&&_.merge(c.whatsappQueues[e.id],_.pick(e,m)))},c.onRemoveWhatsappQueue=function(e){_.isNil(e)||(delete c.rpcWhatsappQueues[e.id],delete c.whatsappQueues[e.id])},c.onSaveUserWhatsappQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getWhatsappQueues()},c.onRemoveUserWhatsappQueue=function(e){_.toInteger(e.UserId)===r.getCurrentUser().id&&c.getWhatsappQueues()},c.onSaveWhatsappQueueChannel=function(e){c.whatsappQueues[e.queue_id]&&(c.rpcWhatsappQueuesWaitingInteractions[e.id]=e,p())},c.onRemoveWhatsappQueueChannel=function(e){delete c.rpcWhatsappQueuesWaitingInteractions[e.id],u&&c.deleteWhatsappQueuesWaitingInteractions.push(e.id);p()},l.onWithoutApply("whatsapp_queue:save",c.onSaveQueue),l.onWithoutApply("whatsappQueue:save",c.onSaveWhatsappQueue),l.onWithoutApply("whatsappQueue:update",c.onUpdateWhatsappQueue),l.onWithoutApply("whatsappQueue:remove",c.onRemoveWhatsappQueue),l.onWithoutApply("userWhatsappQueue:save",c.onSaveUserWhatsappQueue),l.onWithoutApply("userWhatsappQueue:remove",c.onRemoveUserWhatsappQueue),l.onWithoutApply("whatsapp_queue_waiting_interaction:save",c.onSaveWhatsappQueueChannel),l.onWithoutApply("whatsapp_queue_waiting_interaction:remove",c.onRemoveWhatsappQueueChannel),o.rpc.getWhatsappQueues().$promise.then(function(e){c.rpcWhatsappQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}).then(function(e){return o.user.getQueues({id:r.getCurrentUser().id,channel:"whatsapp"}).$promise}).then(function(e){return c.myQueues=e.rows,o.rpc.getWhatsappQueuesWaitingInteractions().$promise}).then(function(e){var n=_.filter(e.rows,function(e){return _.find(c.myQueues,{id:e.queue_id})});e.rows=n,e.count=n.length,_.merge(c.rpcWhatsappQueuesWaitingInteractions,e?_.keyBy(e.rows?e.rows:[],"id"):{})}).catch(function(e){console.error(e)}).finally(function(){for(var e=0;e<c.deleteWhatsappQueuesWaitingInteractions.length;e+=1)delete c.rpcWhatsappQueuesWaitingInteractions[c.deleteWhatsappQueuesWaitingInteractions[e]];u=!1,c.deleteWhatsappQueuesWaitingInteractions=[],v(),p()});var h=!0,f=1;e.$watch("vm_dc.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=f),c.getWhatsappQueues())}),e.$on("$destroy",function(){l.removeAllListeners("whatsapp_queue:save"),l.removeAllListeners("whatsappQueue:save"),l.removeAllListeners("whatsappQueue:update"),l.removeAllListeners("whatsappQueue:remove"),l.removeAllListeners("userWhatsappQueue:save"),l.removeAllListeners("userWhatsappQueue:remove"),l.removeAllListeners("whatsapp_queue_waiting_interaction:save"),l.removeAllListeners("whatsapp_queue_waiting_interaction:remove")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty"],angular.module("app.dashboards").controller("AgentHomeDashboardMultiChannelWhatsappController",e)}(),function(){"use strict";function e(i,t,s,o,a,n,r,e,l,d,c){var m=this;function u(e){!m.reloadingInteractions&&0<m.setting.faxInteractionsReloadTimeout&&function(e){e&&m.interactionsInterval&&t.cancel(m.interactionsInterval);m.interactionsInterval=t(function(){m.reloadingInteractions=!0,m.searchInProgress||p()},1e3*m.setting.faxInteractionsReloadTimeout)}(!0),m.searchInProgress=!1,m.reloadingInteractions=!1,m.faxInteractions=e||{count:0,rows:[]};for(var n=0;n<m.faxInteractions.rows.length;n+=1)g(m.faxInteractions.rows[n])}function p(e,n){m.searchInProgress=!0,e||(m.query.page=1),m.query.offset=(m.query.page-1)*m.query.limit;var t=a.localStorage.getItem("motion2.home.fax:"+m.user.id);(t=t?JSON.parse(t):{}).query=m.query,a.localStorage.setItem("motion2.home.fax:"+m.user.id,JSON.stringify(t)),m.promise=r.faxInteraction.get(m.query,u).$promise}function g(e){e.contactInfo=e.Contact?e.Contact.fax:void 0,"Unknown"===e.contactName&&(e.contactName=n.instant("DASHBOARDS.UNKNOWN"))}function v(e){var n=_.find(m.faxInteractions.rows,{id:e.FaxInteractionId});n&&n.Users&&(_.find(n.Users,{id:e.UserId})||n.Users.push({id:e.UserId}))}function h(e){var n=_.find(m.faxInteractions.rows,{id:e.FaxInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function f(e){if(e){var n=_.find(m.faxInteractions.rows,{id:e.id});if(n){if(n.Users=[],e.closed&&(n.unreadMessages=0),m.query.sort){var t=_.startsWith(m.query.sort,"-")?"desc":"asc";m.faxInteractions.rows=_.orderBy(m.faxInteractions.rows,_.trimStart(m.query.sort,"-"),t)}_.merge(n,_.pick(e,_.keys(n)))}else p(m.query.page)}}function b(e){if(e){var n=_.find(m.faxInteractions.rows,{id:e.id});n&&(n.Tags=e.tags||[],_.merge(n,_.pick(e,_.keys(n))))}}function A(e){if(e&&!e.secret){var n=_.find(m.faxInteractions.rows,{id:e.FaxInteractionId});if(n){var t=_.find(n.Messages,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):(_.isNil(n.Messages)&&(n.Messages={count:0}),e.read||(n.Messages.count+=1))}}}m.user=e.getCurrentUser(),m.license={},m.setting={},m.tags={count:0,rows:[]},m.faxInteractions={count:0,rows:[]},m.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1,read:null,closed:null},m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Account",column:"FaxAccountId",type:"multiselect",options:{route:{model:"user",action:"getFaxAccounts",params:{id:m.user.id,nolimit:!0}}}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},m.sectionColor="blue-grey",m.onInit=function(e,n){return m.license=e,m.setting=n,r.user["get"+_.upperFirst("faxAccounts")]({id:m.user.id,nolimit:!0}).$promise.then(function(e){return m.faxAccounts=e||{count:0,rows:[]},r.tag.get({sort:"name"}).$promise}).then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Account",key:"FaxAccountId",type:"multiselect",label:"DASHBOARDS.SELECT_ACCOUNT",options:m.faxAccounts.rows,clearAll:!1},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:m.user.id,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=a.localStorage.getItem("motion2.home.fax:"+m.user.id);if(e)try{(e=JSON.parse(e)).query&&(m.query=_.merge(m.query,e.query),_.isEmpty(m.faxAccounts.rows)?m.query.FaxAccountId=[]:_.isEmpty(m.query.FaxAccountId)&&(m.query.FaxAccountId=_(m.faxAccounts.rows).map("id").take().value()),m.query.sort&&0<=m.query.sort.indexOf("lastMessage")&&(m.query=_.omit(m.query,"sort")),m.query.includeAll=!0,m.isSearchBarVisible=!(m.query.search||!m.query.filter))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()},t={FaxAccountId:_.map(m.faxAccounts.rows,"id"),createdAt:n};m.query=_.merge(m.query,t)}l.on("faxInteraction:save",f),l.on("faxInteraction:update",f),l.on("faxInteractionTags:save",b),l.on("faxMessage:save",A),l.on("faxMessage:update",A),l.on("user_has_fax_interactions:save",v),l.on("user_has_fax_interactions:remove",h),p(m.query.page)})},m.success=u,m.getFaxInteractions=p,m.showFaxInteraction=function(e,n){i.$parent.vm.addInteractionTab("fax",n)},m.downloadFaxInteraction=function(e,s,n){r.faxInteraction.download({id:s.id,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="fax-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadFaxInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.disposeInteraction=function(e,t){var a=m.user.voicePause||m.user.chatPause||m.user.mailPause||m.user.openchannelPause||m.user.faxPause,n=!t.Account.mandatoryDisposition;s.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(o.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(e,n){m.user&&t.Account.mandatoryDisposition&&!a&&r.user.unpause({id:m.user.id}).$promise.catch(function(e){console.error(e)})},locals:{user:m.user,channel:"fax",interaction:t}})},m.getContactLabel=g,m.getAgentLabel=function(e){if(e.UserId)return e.UserId===m.user.id?n.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">";return n.instant("DASHBOARDS.NOT_ASSIGNED")},m.getFaxAccountLabel=function(e){if(e.Account)return e.Account.key;return n.instant("DASHBOARDS.UNKNOWN")},m.composeFaxInteraction=function(e,a){s.show({controller:"ComposeFaxInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/fax/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{account:a,message:{},type:"new",interaction:{}},fullscreen:!0}).then(function(e){if(e){if(!e.message||!e.message.savedAsDraft){var n=e;return r.faxAccount.send({id:a.id},n).$promise.then(function(e){d.success({title:"Message properly sent!",msg:"Message has been sent!"}),i.$parent.vm.addInteractionTab("fax",e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:"FAX:SEND",msg:e.data?JSON.stringify(e.data):e.message||e.toString()})})}var t={channel:"fax",account:a,message:e.message,contact:e.contact};c.add(t)}})},m.openAdvancedSearch=function(){s.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{color:m.sectionColor,fields:m.advancedSearch.fields,storagePath:"home.fax"},fullscreen:!0}).then(function(e){m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply&&(m.query.search=e.value,p())}).catch(function(e){d.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},i.$on("$destroy",function(){l.removeAllListeners("faxMessage:save"),l.removeAllListeners("faxMessage:update"),l.removeAllListeners("faxInteraction:save"),l.removeAllListeners("faxInteractionTags:save"),l.removeAllListeners("faxInteraction:update"),l.removeAllListeners("user_has_fax_interactions:save"),l.removeAllListeners("user_has_fax_interactions:remove"),m.interactionsInterval&&t.cancel(m.interactionsInterval)})}e.$inject=["$scope","$interval","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty","draftManager"],angular.module("app.dashboards").controller("AgentHomeFaxController",e)}(),function(){"use strict";function e(o,n,r,l,a,t,d,e,i,c,m){var u=this;function s(e){!u.reloadingInteractions&&0<u.setting.mailInteractionsReloadTimeout&&y(!0),u.searchInProgress=!1,u.reloadingInteractions=!1,u.mailInteractions=e||{count:0,rows:[]};for(var n=0;n<u.mailInteractions.rows.length;n+=1)v(u.mailInteractions.rows[n])}function p(e,n){u.searchInProgress=!0,e||(u.query.page=1),(void 0===u.query.closed||null===u.query.closed||u.query.closed)&&delete u.query.substatus,u.query.offset=(u.query.page-1)*u.query.limit;var t=a.localStorage.getItem("motion2.home.mail:"+u.user.id);(t=t?JSON.parse(t):{}).query=u.query,a.localStorage.setItem("motion2.home.mail:"+u.user.id,JSON.stringify(t)),u.promise=d.mailInteraction.get(u.query,s).$promise}function g(e,n){o.$parent.vm.addInteractionTab("mail",n)}function v(e){_.isEmpty(e.to)||!e.Account||_.includes(e.to,e.Account.email)?e.contactInfo=e.Contact?e.Contact.email:void 0:e.contactInfo=e.to.split("<").pop().split(">")[0],"Unknown"===e.contactName&&(e.contactName=t.instant("DASHBOARDS.UNKNOWN"))}function h(e){var n=_.find(u.mailInteractions.rows,{id:e.MailInteractionId});n&&n.Users&&(_.find(n.Users,{id:e.UserId})||n.Users.push({id:e.UserId}))}function f(e){var n=_.find(u.mailInteractions.rows,{id:e.MailInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function b(e){if(e){var n=_.find(u.mailInteractions.rows,{id:e.id});if(n){if(n.Users=[],e.closed&&(n.unreadMessages=0),u.query.sort){var t=_.startsWith(u.query.sort,"-")?"desc":"asc";u.mailInteractions.rows=_.orderBy(u.mailInteractions.rows,_.trimStart(u.query.sort,"-"),t)}_.merge(n,_.pick(e,_.keys(n)))}else 0===u.setting.mailInteractionsReloadTimeout&&p(u.query.page)}}function A(e){if(e){var n=_.find(u.mailInteractions.rows,{id:e.id});n&&(n.Tags=e.tags||[],_.merge(n,_.pick(e,_.keys(n))))}}function E(e){if(e&&!e.secret){var n=_.find(u.mailInteractions.rows,{id:e.MailInteractionId});if(n){var t=_.find(n.Messages,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):(_.isNil(n.Messages)&&(n.Messages={count:0}),e.read||(n.Messages.count+=1))}}}function y(e){e&&u.interactionsInterval&&n.cancel(u.interactionsInterval),u.interactionsInterval=n(function(){u.reloadingInteractions=!0,u.searchInProgress||p()},1e3*u.setting.mailInteractionsReloadTimeout)}u.user=e.getCurrentUser(),u.license={},u.setting={},u.tags={count:0,rows:[]},u.mailInteractions={count:0,rows:[]},u.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1,read:null,closed:null},u.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Subject",column:"subject",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Body",column:"plainBody",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Substatus",column:"substatus",type:"multiselect",options:{field:"name",route:{model:"mailSubstatus",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Account",column:"MailAccountId",type:"multiselect",options:{route:{model:"user",action:"getMailAccounts",params:{id:u.user.id,nolimit:!0}}}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},u.sectionColor="teal",u.onInit=function(e,n){return u.license=e,u.setting=n,d.user["get"+_.upperFirst("mailAccounts")]({id:u.user.id,nolimit:!0}).$promise.then(function(e){return u.mailAccounts=e||{count:0,rows:[]},d.tag.get({sort:"name"}).$promise}).then(function(e){u.tags=e||{count:0,rows:[]}}).then(function(){return d.mailSubstatus.get({nolimit:!0}).$promise}).then(function(e){u.subStatuses=e||{count:0,rows:[]}}).then(function(){u.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Substatus",key:"substatus",type:"select",label:"DASHBOARDS.SELECT_SUBSTATUS",options:u.subStatuses.rows,customOptions:[{value:"null",translate:"DASHBOARDS.NONE"},{value:void 0,translate:"DASHBOARDS.ALL"}],ngValue:"name",ngIf:"closed === 0"},{name:"Account",key:"MailAccountId",type:"multiselect",label:"DASHBOARDS.SELECT_ACCOUNT",options:u.mailAccounts.rows,clearAll:!1},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:u.user.id,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:u.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=a.localStorage.getItem("motion2.home.mail:"+u.user.id);if(e)try{(e=JSON.parse(e)).query&&(u.query=_.merge(u.query,e.query),_.isEmpty(u.mailAccounts.rows)?u.query.MailAccountId=[]:_.isEmpty(u.query.MailAccountId)&&(u.query.MailAccountId=_(u.mailAccounts.rows).map("id").take().value()),u.query.sort&&0<=u.query.sort.indexOf("lastMessage")&&(u.query=_.omit(u.query,"sort")),u.query.includeAll=!0,u.isSearchBarVisible=!(u.query.search||!u.query.filter))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()},t={MailAccountId:_.map(u.mailAccounts.rows,"id"),createdAt:n};u.query=_.merge(u.query,t)}i.on("mailInteraction:save",b),i.on("mailInteraction:update",b),i.on("mailInteractionTags:save",A),i.on("mailMessage:save",E),i.on("mailMessage:update",E),i.on("user_has_mail_interactions:save",h),i.on("user_has_mail_interactions:remove",f),p(u.query.page),0<u.setting.mailInteractionsReloadTimeout&&y()})},u.success=s,u.getMailInteractions=p,u.showMailInteraction=g,u.downloadMailInteraction=function(e,s,n){d.mailInteraction.download({id:s.id,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="mail-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadMailInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.disposeInteraction=function(e,t){var a=u.user.voicePause||u.user.chatPause||u.user.mailPause||u.user.openchannelPause||u.user.faxPause,n=!t.Account.mandatoryDisposition;r.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(l.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(e,n){u.user&&t.Account.mandatoryDisposition&&!a&&d.user.unpause({id:u.user.id}).$promise.catch(function(e){console.error(e)})},locals:{user:u.user,channel:"mail",interaction:t}})},u.getContactLabel=v,u.getAgentLabel=function(e){if(e.UserId)return e.UserId===u.user.id?t.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">";return t.instant("DASHBOARDS.NOT_ASSIGNED")},u.getMailAccountLabel=function(e){if(e.Account)return e.Account.key;return t.instant("DASHBOARDS.UNKNOWN")},u.composeMailInteraction=function(e,s){r.show({controller:"ComposeMailInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/mail/dialog.html",parent:angular.element(l.body),clickOutsideToClose:!1,locals:{account:s,message:{},type:"new",interaction:{}},fullscreen:!0}).then(function(e){if(e){if(!e.message||!e.message.savedAsDraft){var i=e;return d.mailAccount.send({id:s.id},i).$promise.then(function(e){if(e&&e.Messages&&e.Messages.length){if(i.attachments&&i.attachments.length)for(var n=0;n<i.attachments.length;n+=1)d.attachment.update({id:i.attachments[n].id},{MailMessageId:_.head(e.Messages).id});if(c.success({title:"Message properly sent!",msg:"Message has been sent!"}),e.closed){e.disposition=null;var t=!s.mandatoryDisposition,a=u.user.voicePause||u.user.chatPause||u.user.mailPause||u.user.openchannelPause||u.user.faxPause;r.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(l.body),onRemoving:function(e,n){u.user&&s.mandatoryDisposition&&!a&&d.user.unpause({id:u.user.id}).$promise.catch(function(e){console.error(e)})},clickOutsideToClose:t,escapeToClose:t,locals:{user:u.user,channel:"mail",interaction:e}})}else o.$parent.vm.addInteractionTab("mail",e)}}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"MAILACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}var n={channel:"mail",account:s,message:e.message,contact:e.contact};m.add(n)}})},u.openAdvancedSearch=function(){r.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(l.body),clickOutsideToClose:!1,locals:{color:u.sectionColor,fields:u.advancedSearch.fields,storagePath:"home.mail"},fullscreen:!0}).then(function(e){u.isSearchBarVisible=!(e.value||!u.query.filter),e.apply&&(u.query.search=e.value,p())}).catch(function(e){c.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},o.$on("openMailDraft",function(e,s){s.interaction?(s.interaction.isDraft=!0,g(null,s.interaction)):r.show({controller:"ComposeMailInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/mail/dialog.html",parent:angular.element(l.body),clickOutsideToClose:!1,locals:{account:s.account,message:s.content,type:"draft",interaction:{}},fullscreen:!0}).then(function(e){if(e){if(!e.message||!e.message.savedAsDraft){var i=e;return d.mailAccount.send({id:s.account.id},i).$promise.then(function(e){if(m.remove(s.id),e&&e.Messages&&e.Messages.length){if(i.attachments&&i.attachments.length)for(var n=0;n<i.attachments.length;n+=1)d.attachment.update({id:i.attachments[n].id},{MailMessageId:_.head(e.Messages).id});if(c.success({title:"Message properly sent!",msg:"Message has been sent!"}),e.closed){e.disposition=null;var t=!s.account.mandatoryDisposition,a=u.user.voicePause||u.user.chatPause||u.user.mailPause||u.user.openchannelPause||u.user.faxPause;r.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(l.body),onRemoving:function(e,n){u.user&&s.account.mandatoryDisposition&&!a&&d.user.unpause({id:u.user.id}).$promise.catch(function(e){console.error(e)})},clickOutsideToClose:t,escapeToClose:t,locals:{user:u.user,channel:"mail",interaction:e}})}else o.$parent.vm.addInteractionTab("mail",e)}}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"MAILACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}var n={id:s.id,channel:"mail",account:e.account,message:e.message};m.update(n)}})}),o.$on("$destroy",function(){i.removeAllListeners("mailMessage:save"),i.removeAllListeners("mailMessage:update"),i.removeAllListeners("mailInteraction:save"),i.removeAllListeners("mailInteractionTags:save"),i.removeAllListeners("mailInteraction:update"),i.removeAllListeners("user_has_mail_interactions:save"),i.removeAllListeners("user_has_mail_interactions:remove"),u.interactionsInterval&&n.cancel(u.interactionsInterval)})}e.$inject=["$scope","$interval","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty","draftManager"],angular.module("app.dashboards").controller("AgentHomeMailController",e)}(),function(){"use strict";function e(t,a,e,i,n,s,o,r){var l=this;function d(e){l.searchInProgress=!1,l.contacts=e||{count:0,rows:[]}}function c(e,n){l.searchInProgress=!0,s.cmContact.describe({id:l.query.ListId}).$promise.then(function(e){return _(e.toJSON()).omit("UserId").values().map(function(e){return function(e){var n={name:_.startCase(e.displayName),column:e.columnName,options:{}};if(e.custom)switch(e.custom.type){case"text":n.type="text";break;case"select":n.type="multiselect",n.values=_.map(JSON.parse(e.custom.values),function(e,n){return{id:n,name:e.value,value:e.value}}),n.options.field="name";break;case"switch":n.type="select",n.values=[{id:1,translate:"DASHBOARDS.ENABLED"},{id:0,translate:"DASHBOARDS.DISABLED"}],n.options.excludedOperators=["$ne"];break;case"number":n.type="number";break;case"datetime":n.type="date"}else switch(e.columnName){case"dateOfBirth":n.type="date";break;case"CompanyId":n.name="Company",n.type="autocomplete",n.options.route={model:"cmCompany",action:"get",params:{fields:"id,name",nolimit:!0}},n.options.searchFields=["name"],n.options.excludedOperators=["$ne"];break;case"ListId":n.name="List",n.type="autocomplete",n.options.route={model:"user",action:"getLists",params:{id:l.currentUser.id,fields:"id,name",nolimit:!0}},n.options.searchFields=["name"],n.options.excludedOperators=["$ne"];break;default:_.includes(e.type.toLowerCase(),"int")?n.type="number":_.includes(e.type.toLowerCase(),"date")?n.type="date":n.type="text"}return n}(e)}).value()}).then(function(e){l.advancedSearch.fields=e;var n=_.findIndex(e,function(e){return _.startsWith(e.column,"cf_")})||e.length-1;n<0&&(n=e.length),l.advancedSearch.fields.splice(n,0,{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"DESCRIBE_CM_CONTACTS",msg:e.data?JSON.stringify(e.data.message):e.toString()})}),e||(l.query.page=1),l.query.offset=(l.query.page-1)*l.query.limit;var t=o.localStorage.getItem("motion2.home.mycontacts:"+l.currentUser.id);(t=t?JSON.parse(t):{}).query=l.query,o.localStorage.setItem("motion2.home.mycontacts:"+l.currentUser.id,JSON.stringify(t)),l.query.search&&(l.advancedQuery=_.omit(l.query,"id")),l.promise=l.query.search?s.cmContact.get(l.advancedQuery,d).$promise:s.user.getContacts(l.query,d).$promise}l.currentUser=n.getCurrentUser(),l.lists={},l.contacts={count:0,rows:[]},l.tags={count:0,rows:[]},l.query={includeAll:!0,id:l.currentUser.id,sort:"-updatedAt",limit:10,page:1},l.advancedSearch={fields:[]},l.sectionColor="red",l.getContacts=c,l.refreshContacts=function(){c()},l.mergeContact=function(e,n){i.show({controller:"MergeContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/merge/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:l.currentUser.id,fields:"id,name"})}]},locals:{contacts:l.contacts.rows}})},l.duplicateContact=function(e,n){i.show({controller:"DuplicateContactDialogController",controllerAs:"vm",templateUrl:"app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,resolve:{contact:["apiResolver",function(e){return e.resolve("cmContact@get",{id:n.id})}],lists:["apiResolver",function(e){return e.resolve("user@getLists",{id:l.currentUser.id,fields:"id,name"})}]},locals:{contacts:l.contacts.rows}})},l.openContact=function(e,n){a.$parent.vm.addContactTab(n)},l.call=a.$parent.vm.call,l.onInit=function(){s.cmList.get({fields:"id,name,dialPrefix",sort:"name",nolimit:!0}).$promise.then(function(e){return l.lists=e||{count:0,rows:[]},l.listsMap=_.keyBy(l.lists.rows,"id"),s.tag.get({sort:"name"}).$promise}).then(function(e){l.tags=e||{count:0,rows:[]}}).then(function(){l.quickFilters=[{name:"List",key:"ListId",type:"multiselect",label:"CONTACTMANAGER.SELECT_LIST",options:l.lists.rows,clearAll:!1},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:l.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=o.localStorage.getItem("motion2.home.mycontacts:"+l.currentUser.id);if(e)try{(e=JSON.parse(e)).query&&(l.query=_.merge(l.query,e.query),_.isEmpty(l.lists.rows)?l.query.ListId=[]:_.isEmpty(l.query.ListId)&&(l.query.ListId=_(l.lists.rows).map("id").take().value()))}catch(e){console.error(e)}else l.query.ListId=_.map(l.lists.rows,"id");l.isSearchBarVisible=!(l.query.search||!l.query.filter),c()})},l.openAdvancedSearch=function(){i.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{color:l.sectionColor,fields:l.advancedSearch.fields,storagePath:"home.mycontacts"},fullscreen:!0}).then(function(e){l.isSearchBarVisible=!(e.value||!l.query.filter),e.apply&&(l.query.search=e.value?e.value+="||User:=$eq["+l.currentUser.id+"]":e.value,c())}).catch(function(e){r.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}}e.$inject=["$document","$scope","$timeout","$mdDialog","Auth","api","$window","toasty"],angular.module("app.dashboards").controller("AgentHomeMyContactsController",e)}(),function(){"use strict";function e(i,n,s,o,a,t,r,e,l,d,c){var m=this;function u(e){!m.reloadingInteractions&&0<m.setting.openchannelInteractionsReloadTimeout&&E(!0),m.searchInProgress=!1,m.reloadingInteractions=!1,m.openchannelInteractions=e||{count:0,rows:[]};for(var n=0;n<m.openchannelInteractions.rows.length;n+=1)g(m.openchannelInteractions.rows[n])}function p(e,n){m.searchInProgress=!0,e||(m.query.page=1),m.query.offset=(m.query.page-1)*m.query.limit;var t=a.localStorage.getItem("motion2.home.openchannel:"+m.user.id);(t=t?JSON.parse(t):{}).query=m.query,a.localStorage.setItem("motion2.home.openchannel:"+m.user.id,JSON.stringify(t)),m.promise=r.openchannelInteraction.get(m.query,u).$promise}function g(e){"Unknown"===e.contactName&&(e.contactName=t.instant("DASHBOARDS.UNKNOWN"))}function v(e){var n=_.find(m.openchannelInteractions.rows,{id:e.OpenchannelInteractionId});n&&n.Users&&(_.find(n.Users,{id:e.UserId})||n.Users.push({id:e.UserId}))}function h(e){var n=_.find(m.openchannelInteractions.rows,{id:e.OpenchannelInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function f(e){if(e){var n=_.find(m.openchannelInteractions.rows,{id:e.id});if(n){if(n.Users=[],e.closed&&(n.unreadMessages=0),m.query.sort){var t=_.startsWith(m.query.sort,"-")?"desc":"asc";m.openchannelInteractions.rows=_.orderBy(m.openchannelInteractions.rows,_.trimStart(m.query.sort,"-"),t)}_.merge(n,_.pick(e,_.keys(n)))}else 0===m.setting.openchannelInteractionsReloadTimeout&&p(m.query.page)}}function b(e){if(e){var n=_.find(m.openchannelInteractions.rows,{id:e.id});n&&(n.Tags=e.tags||[],_.merge(n,_.pick(e,_.keys(n))))}}function A(e){if(e&&!e.secret){var n=_.find(m.openchannelInteractions.rows,{id:e.OpenchannelInteractionId});if(n){var t=_.find(n.Messages,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):(_.isNil(n.Messages)&&(n.Messages={count:0}),e.read||(n.Messages.count+=1))}}}function E(e){e&&m.interactionsInterval&&n.cancel(m.interactionsInterval),m.interactionsInterval=n(function(){m.reloadingInteractions=!0,m.searchInProgress||p()},1e3*m.setting.openchannelInteractionsReloadTimeout)}m.user=e.getCurrentUser(),m.license={},m.setting={},m.tags={count:0,rows:[]},m.openchannelInteractions={count:0,rows:[]},m.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1,read:null,closed:null},m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Account",column:"OpenchannelAccountId",type:"multiselect",options:{route:{model:"user",action:"getOpenchannelAccounts",params:{id:m.user.id,nolimit:!0}}}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},m.sectionColor="amber",m.onInit=function(e,n){return m.license=e,m.setting=n,r.user["get"+_.upperFirst("openchannelAccounts")]({id:m.user.id,nolimit:!0}).$promise.then(function(e){return m.openchannelAccounts=e||{count:0,rows:[]},r.tag.get({sort:"name"}).$promise}).then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Account",key:"OpenchannelAccountId",type:"multiselect",label:"DASHBOARDS.SELECT_ACCOUNT",options:m.openchannelAccounts.rows,clearAll:!1},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:m.user.id,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=a.localStorage.getItem("motion2.home.openchannel:"+m.user.id);if(e)try{(e=JSON.parse(e)).query&&(m.query=_.merge(m.query,e.query),_.isEmpty(m.openchannelAccounts.rows)?m.query.OpenchannelAccountId=[]:_.isEmpty(m.query.OpenchannelAccountId)&&(m.query.OpenchannelAccountId=_(m.openchannelAccounts.rows).map("id").take().value()),m.query.sort&&0<=m.query.sort.indexOf("lastMessage")&&(m.query=_.omit(m.query,"sort")),m.query.includeAll=!0,m.isSearchBarVisible=!(m.query.search||!m.query.filter))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()},t={OpenchannelAccountId:_.map(m.openchannelAccounts.rows,"id"),createdAt:n};m.query=_.merge(m.query,t)}l.on("openchannelInteraction:save",f),l.on("openchannelInteraction:update",f),l.on("openchannelInteractionTags:save",b),l.on("openchannelMessage:save",A),l.on("openchannelMessage:update",A),l.on("user_has_openchannel_interactions:save",v),l.on("user_has_openchannel_interactions:remove",h),p(m.query.page),0<m.setting.openchannelInteractionsReloadTimeout&&E()})},m.success=u,m.getOpenchannelInteractions=p,m.showOpenchannelInteraction=function(e,n){i.$parent.vm.addInteractionTab("openchannel",n)},m.downloadOpenchannelInteraction=function(e,s,n){r.openchannelInteraction.download({id:s.id,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="openchannel-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadOpenchannelInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.disposeInteraction=function(e,t){var a=m.user.voicePause||m.user.chatPause||m.user.mailPause||m.user.openchannelPause||m.user.faxPause,n=!t.Account.mandatoryDisposition;s.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(o.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(e,n){m.user&&t.Account.mandatoryDisposition&&!a&&r.user.unpause({id:m.user.id}).$promise.catch(function(e){console.error(e)})},locals:{user:m.user,channel:"openchannel",interaction:t}})},m.getContactLabel=g,m.getAgentLabel=function(e){if(e.UserId)return e.UserId===m.user.id?t.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">";return t.instant("DASHBOARDS.NOT_ASSIGNED")},m.getOpenchannelAccountLabel=function(e){if(e.Account)return e.Account.key;return t.instant("DASHBOARDS.UNKNOWN")},m.composeOpenchannelInteraction=function(e,a){s.show({controller:"ComposeOpenchannelInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/openchannel/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{account:a,message:{},type:"new",interaction:{}},fullscreen:!0}).then(function(e){if(e){if(!e.message||!e.message.savedAsDraft){var n=e;return r.openchannelAccount.send({id:a.id},n).$promise.then(function(e){d.success({title:"Message properly sent!",msg:"Message has been sent!"}),i.$parent.vm.addInteractionTab("openchannel",e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"OPENCHANNELACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}var t={channel:"openchannel",account:a,message:e.message,contact:e.contact};c.add(t)}})},m.openAdvancedSearch=function(){s.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{color:m.sectionColor,fields:m.advancedSearch.fields,storagePath:"home.openchannel"},fullscreen:!0}).then(function(e){m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply&&(m.query.search=e.value,p())}).catch(function(e){d.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},i.$on("$destroy",function(){l.removeAllListeners("openchannelMessage:save"),l.removeAllListeners("openchannelMessage:update"),l.removeAllListeners("openchannelInteraction:save"),l.removeAllListeners("openchannelInteractionTags:save"),l.removeAllListeners("openchannelInteraction:update"),l.removeAllListeners("user_has_openchannel_interactions:save"),l.removeAllListeners("user_has_openchannel_interactions:remove"),m.interactionsInterval&&n.cancel(m.interactionsInterval)})}e.$inject=["$scope","$interval","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty","draftManager"],angular.module("app.dashboards").controller("AgentHomeOpenchannelController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){var d=this;function c(e,n,t){d.license=e,d.setting=n,d.plugin=t}d.currentUser=o.getCurrentUser(),d.plugin={},d.onInit=c,d.getTrustedURL=function(){return s.trustAsResourceUrl(d.plugin.agentUrl)},c(),n.$on("pluginUpdated",function(e,n){d.plugin=n.plugin})}e.$inject=["$document","$scope","$timeout","$mdDialog","$stateParams","$sce","Auth","api","$window"],angular.module("app.dashboards").controller("AgentHomePluginsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){var d=this;function c(){d.agentsQuery.offset=(d.agentsQuery.page-1)*d.agentsQuery.limit,l.update("motion2.home.presence.agents:"+d.currentUser.id,d.agentsQuery,"query"),i.user.getPresence(d.agentsQuery).$promise.then(function(e){d.agents={count:e.count,rows:_.filter(e.rows,function(e){return e.id!==d.currentUser.id})}}).catch(function(){r.error({title:t.instant("DASHBOARDS.AGENT_PRESENCE"),msg:t.instant("CONTACTMANAGER.NOTIFICATIONS.NO_DATA_ERROR")})})}function m(){d.queuesQuery.offset=(d.queuesQuery.page-1)*d.queuesQuery.limit,l.update("motion2.home.presence.queues:"+d.currentUser.id,d.queuesQuery,"query"),i.voiceQueue.get(d.queuesQuery).$promise.then(function(e){return d.voiceQueues=e||{rows:[],count:0},i.rpc.getVoiceQueuesChannels().$promise.then(function(e){e.rows.forEach(function(e){var n=_.find(d.voiceQueues.rows,["name",e.name]);n&&(n.calls||(n.calls=[]),n.calls.push(e))})})}).catch(function(){r.error({title:t.instant("VOICE.VOICEQUEUES"),msg:t.instant("CONTACTMANAGER.NOTIFICATIONS.NO_DATA_ERROR")})})}function u(e){return 0===d.selectedTab?e:"xcallyQueueExtension"+e}function p(e,n,t,a){var i=_.find(d.agents.rows,["id",e]);i&&(i.status=!1===n?"offline":a?"pause":"unavailable"===t?t:_.includes(["idle","unknown","ringing",null,void 0],t)?"online":"busy")}function g(e){e.id!==d.currentUser.id&&p(e.id,e.online,e.voiceStatus,e.voicePause)}d.currentUser=s.getCurrentUser(),d.agents={count:0,rows:[]},d.agentsQuery={fields:"id,name,internal,online",role:"agent",sort:"name",limit:10,page:1},d.queuesQuery={fields:"id,name",type:"inbound",sort:"name",limit:10,page:1},d.onAgentsTabSelection=function(){if(d.agentsQuery.filter||d.agentsQuery.teams||d.agentsQuery.queues)return;_.merge(d.agentsQuery,l.get("motion2.home.presence.agents:"+d.currentUser.id,"query")),d.isSearchBarVisible=!!d.agentsQuery.filter,a.all([a(function(n,e){i.team.get({fields:"id,name",sort:"name",nolimit:!0}).$promise.then(function(e){d.teams=e||{rows:[],count:0},n()}).catch(function(){r.error({title:t.instant("STAFF.TEAMS"),msg:t.instant("CONTACTMANAGER.NOTIFICATIONS.NO_DATA_ERROR")}),e()})}),a(function(n,e){i.voiceQueue.get({fields:"id,name",type:"inbound",sort:"name",nolimit:!0}).$promise.then(function(e){d.queues=e||{rows:[],count:0},n()}).catch(function(){r.error({title:t.instant("VOICE.VOICEQUEUES"),msg:t.instant("CONTACTMANAGER.NOTIFICATIONS.NO_DATA_ERROR")}),e()})})]).then(function(){d.quickFilters=[{name:"Team",key:"teams",type:"multiselect",label:"DASHBOARDS.SELECT_TEAM",options:d.teams.rows},{name:"Queue",key:"queues",type:"multiselect",label:"DASHBOARDS.SELECT_QUEUE",options:d.queues.rows}],c()}).catch(function(){r.error({title:t.instant("DASHBOARDS.AGENT_PRESENCE"),msg:t.instant("DASHBOARDS.ERRORS.FAILED_INITIALIZATION")})})},d.onQueuesTabSelection=function(){if(d.queuesQuery.filter)return;_.merge(d.queuesQuery,l.get("motion2.home.presence.queues:"+d.currentUser.id,"query")),d.isSearchBarVisible=!!d.queuesQuery.filter,m()},d.getAgents=c,d.getVoiceQueues=m,d.originateCall=function(e){n.$broadcast("webrtc::call",{target:u(e)})},d.transferCall=function(e){n.$broadcast("webrtc::transfer",{target:u(e)})},o.on("user:presence",function(e){if(e.id===d.currentUser.id)return;p(e.id,e.online,e.voiceStatus,e.voicePause)}),o.on("user:update",g),o.on("voice_queue_presence:save",function(e){if(!d.voiceQueues&&d.voiceQueues.rows)return;var n=_.find(d.voiceQueues.rows,["name",e.name]);if(!n)return;n.calls||(n.calls=[]);if(_.some(n.calls,["uniqueid",e.uniqueid]))return;n.calls.push(e)}),o.on("voice_queue_presence:remove",function(e){var n=_.find(d.voiceQueues.rows,["name",e.name]);if(!n)return;_.remove(n.calls,["uniqueid",e.uniqueid])}),e.$on("$destroy",function(){o.removeListener("user:update",g),o.removeAllListeners("user:presence"),o.removeAllListeners("voice_queue_presence:save"),o.removeAllListeners("voice_queue_presence:remove")})}e.$inject=["$scope","$rootScope","$translate","$q","api","Auth","socket","toasty","localStorageManager"],angular.module("app.dashboards").controller("AgentHomePresenceController",e)}(),function(){"use strict";function e(e,t,n,a,o,i){var s=this;function r(e){s.searchInProgress=!1,s.voiceRecordings=e||{count:0,rows:[]}}function l(){s.searchInProgress=!0,s.query.offset=(s.query.page-1)*s.query.limit;var e={query:s.query};t.localStorage.setItem("motion2.home.recordings:"+s.currentUser.id,JSON.stringify(e)),s.promise=a.voiceRecording.get(s.query,r).$promise}s.currentUser=i.getCurrentUser(),s.voiceRecordings={},s.table="voiceRecordings",s.query={UserId:s.currentUser.id,fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,rating,audio,transcribeStatus,UserId",sort:"-updatedAt",limit:10,page:1,type:null},s.downloadfile=function(i,e){return a.voiceRecording.download({id:i.id,exists:!0}).$promise.then(function(e){var n=[e.buffer],t=new Blob(n,{type:e.type}),a=window.document.createElement("a");a.setAttribute("href",URL.createObjectURL(t)),a.setAttribute("download",i.uniqueid+i.format),a.click()}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceRecording",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.downloadtranscribe=function(s,e){return a.voiceRecording.downloadTranscribe({id:s.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s.uniqueid;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceRecording",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.success=r,s.getVoiceRecordings=l,s.onInit=function(){s.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Type",key:"type",type:"select",label:"VOICE.SELECT_TYPE",customOptions:[{value:"internal",translate:"VOICE.INTERNAL"},{value:"inbound",translate:"VOICE.INBOUND"},{value:"outbound",translate:"VOICE.OUTBOUND"},{value:"dialer",translate:"VOICE.DIALER"},{value:null,translate:"VOICE.ALL"}]}];var e=t.localStorage.getItem("motion2.home.recordings:"+s.currentUser.id);if(e)try{(e=JSON.parse(e)).query&&(s.query=_.merge(s.query,e.query))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};s.query.createdAt=n}s.isSearchBarVisible=!!s.query.filter,l()}}e.$inject=["$scope","$window","$timeout","api","toasty","Auth"],angular.module("app.dashboards").controller("AgentHomeRecordingsController",e)}(),function(){"use strict";function e(e,t,a,i,s,o,r,n){var l=this;function d(e){l.searchInProgress=!1,l.scheduledCalls=e||{count:0,rows:[]}}l.currentUser=n.getCurrentUser(),l.priorities=["Lowest","Low","Medium","High","Highest"],l.crudPermissions={readOnly:!1,canEdit:!0,canDelete:!0},l.scheduledCalls={},l.query={id:l.currentUser.id,fields:"id,phone,scheduledat,recallme,priority,UserId,OwnerId",sort:"scheduledat",limit:10,page:1},l.queueCampaigns={rows:[],count:0},l.success=d,l.getScheduledCalls=function(){l.searchInProgress=!0,l.query.id=l.currentUser.id,l.query.includeAll=!0,l.query.offset=(l.query.page-1)*l.query.limit;var e={query:l.query};t.localStorage.setItem("motion2.home.scheduled:"+l.currentUser.id,JSON.stringify(e)),l.promise=r.user.getScheduledCalls(l.query,d).$promise},l.onInit=function(){r.user.getQueues({id:n.getCurrentUser().id,fields:"id,name",channel:"voice",type:"outbound",nolimit:!0}).$promise.then(function(e){l.queueCampaigns=e||{count:0,rows:[]}}).then(function(){l.quickFilters=[{name:"Start Date",key:"scheduledat",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Campaigns",key:"VoiceQueueId",type:"multiselect",label:"MOTIONDIALER.SELECT_CAMPAIGN",options:l.queueCampaigns.rows}]}).catch(function(e){console.error(e)}).finally(function(){var e=t.localStorage.getItem("motion2.home.scheduled:"+l.currentUser.id);if(e)try{(e=JSON.parse(e)).query&&(l.query=_.omit(e.query,["filter"]))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};l.query.scheduledat=n}l.getScheduledCalls()})},l.isDateBeforeToday=function(e){return moment(e).isBefore(moment())},l.createOrEditQueueCampaignHopper=function(e,n){i.show({controller:"CreateOrEditHopperVoiceQueueIdDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hoppers/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:null,hopper:n,hoppers:l.scheduledCalls.rows,license:null,setting:null,crudPermissions:l.crudPermissions}})},l.deleteConfirm=function(n,e){var t=i.confirm().title("Are you sure want to delete the scheduled call?").htmlContent("<b>Scheduled call</b> will be deleted.").ariaLabel("delete scheduled call").targetEvent(e).ok("OK").cancel("CANCEL");i.show(t).then(function(){var e;e=n,r.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(l.scheduledCalls.rows,{id:e.id}),l.scheduledCalls.count-=1,l.scheduledCalls.rows.length||l.getScheduledCalls(),o.success({title:"Scheduled call deleted!",msg:e.name?"Scheduled call has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){l.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETE_HOPPER"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETE_HOPPER",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){console.log("CANCEL")})};var c=!0,m=1;e.$watch("vm.query.filter",function(e,n){c?a(function(){c=!1}):(n||(m=l.query.page),e!==n&&(l.query.page=1),e||(l.query.page=m),l.getScheduledCalls())})}e.$inject=["$scope","$window","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.dashboards").controller("AgentHomeScheduledCallsController",e)}(),function(){"use strict";function e(i,n,s,o,a,t,r,e,l,d,c){var m=this;function u(e){!m.reloadingInteractions&&0<m.setting.smsInteractionsReloadTimeout&&E(!0),m.searchInProgress=!1,m.reloadingInteractions=!1,m.smsInteractions=e||{count:0,rows:[]};for(var n=0;n<m.smsInteractions.rows.length;n+=1)g(m.smsInteractions.rows[n])}function p(e,n){m.searchInProgress=!0,e||(m.query.page=1),m.query.offset=(m.query.page-1)*m.query.limit;var t=a.localStorage.getItem("motion2.home.sms:"+m.user.id);(t=t?JSON.parse(t):{}).query=m.query,a.localStorage.setItem("motion2.home.sms:"+m.user.id,JSON.stringify(t)),m.promise=r.smsInteraction.get(m.query,u).$promise}function g(e){e.contactInfo=e.Contact?e.Contact.mobile:void 0,"Unknown"===e.contactName&&(e.contactName=t.instant("DASHBOARDS.UNKNOWN"))}function v(e){var n=_.find(m.smsInteractions.rows,{id:e.SmsInteractionId});n&&n.Users&&(_.find(n.Users,{id:e.UserId})||n.Users.push({id:e.UserId}))}function h(e){var n=_.find(m.smsInteractions.rows,{id:e.SmsInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function f(e){if(e){var n=_.find(m.smsInteractions.rows,{id:e.id});if(n){if(n.Users=[],e.closed&&(n.unreadMessages=0),m.query.sort){var t=_.startsWith(m.query.sort,"-")?"desc":"asc";m.smsInteractions.rows=_.orderBy(m.smsInteractions.rows,_.trimStart(m.query.sort,"-"),t)}_.merge(n,_.pick(e,_.keys(n)))}else 0===m.setting.smsInteractionsReloadTimeout&&p(m.query.page)}}function b(e){if(e){var n=_.find(m.smsInteractions.rows,{id:e.id});n&&(n.Tags=e.tags||[],_.merge(n,_.pick(e,_.keys(n))))}}function A(e){if(e&&!e.secret){var n=_.find(m.smsInteractions.rows,{id:e.SmsInteractionId});if(n){var t=_.find(n.Messages,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):(_.isNil(n.Messages)&&(n.Messages={count:0}),e.read||(n.Messages.count+=1))}}}function E(e){e&&m.interactionsInterval&&n.cancel(m.interactionsInterval),m.interactionsInterval=n(function(){m.reloadingInteractions=!0,m.searchInProgress||p()},1e3*m.setting.smsInteractionsReloadTimeout)}m.user=e.getCurrentUser(),m.license={},m.setting={},m.tags={count:0,rows:[]},m.smsInteractions={count:0,rows:[]},m.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1,read:null,closed:null},m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Account",column:"SmsAccountId",type:"multiselect",options:{route:{model:"user",action:"getSmsAccounts",params:{id:m.user.id,nolimit:!0}}}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},m.sectionColor="orange",m.onInit=function(e,n){return m.license=e,m.setting=n,r.user["get"+_.upperFirst("smsAccounts")]({id:m.user.id,nolimit:!0}).$promise.then(function(e){return m.smsAccounts=e||{count:0,rows:[]},r.tag.get({sort:"name"}).$promise}).then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Account",key:"SmsAccountId",type:"multiselect",label:"DASHBOARDS.SELECT_ACCOUNT",options:m.smsAccounts.rows,clearAll:!1},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:m.user.id,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=a.localStorage.getItem("motion2.home.sms:"+m.user.id);if(e)try{(e=JSON.parse(e)).query&&(m.query=_.merge(m.query,e.query),_.isEmpty(m.smsAccounts.rows)?m.query.SmsAccountId=[]:_.isEmpty(m.query.SmsAccountId)&&(m.query.SmsAccountId=_(m.smsAccounts.rows).map("id").take().value()),m.query.sort&&0<=m.query.sort.indexOf("lastMessage")&&(m.query=_.omit(m.query,"sort")),m.query.includeAll=!0,m.isSearchBarVisible=!(m.query.search||!m.query.filter))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()},t={SmsAccountId:_.map(m.smsAccounts.rows,"id"),createdAt:n};m.query=_.merge(m.query,t)}l.on("smsInteraction:save",f),l.on("smsInteraction:update",f),l.on("smsInteractionTags:save",b),l.on("smsMessage:save",A),l.on("smsMessage:update",A),l.on("user_has_sms_interactions:save",v),l.on("user_has_sms_interactions:remove",h),p(m.query.page),0<m.setting.smsInteractionsReloadTimeout&&E()})},m.success=u,m.getSmsInteractions=p,m.showSmsInteraction=function(e,n){i.$parent.vm.addInteractionTab("sms",n)},m.downloadSmsInteraction=function(e,s,n){r.smsInteraction.download({id:s.id,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="sms-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadSmsInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.disposeInteraction=function(e,t){var a=m.user.voicePause||m.user.chatPause||m.user.mailPause||m.user.openchannelPause||m.user.faxPause,n=!t.Account.mandatoryDisposition;s.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(o.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(e,n){m.user&&t.Account.mandatoryDisposition&&!a&&r.user.unpause({id:m.user.id}).$promise.catch(function(e){console.error(e)})},locals:{user:m.user,channel:"sms",interaction:t}})},m.getContactLabel=g,m.getAgentLabel=function(e){if(e.UserId)return e.UserId===m.user.id?t.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">";return t.instant("DASHBOARDS.NOT_ASSIGNED")},m.getSmsAccountLabel=function(e){if(e.Account)return e.Account.key;return t.instant("DASHBOARDS.UNKNOWN")},m.composeSmsInteraction=function(e,a){s.show({controller:"ComposeSmsInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/sms/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{account:a,message:{},type:"new",interaction:{}},fullscreen:!0}).then(function(e){if(e){if(!e.message||!e.message.savedAsDraft){var n=e;return r.smsAccount.send({id:a.id},n).$promise.then(function(e){d.success({title:"Message properly sent!",msg:"Message has been sent!"}),i.$parent.vm.addInteractionTab("sms",e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SMSACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}var t={channel:"sms",account:a,message:e.message,contact:e.contact};c.add(t)}})},m.openAdvancedSearch=function(){s.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{color:m.sectionColor,fields:m.advancedSearch.fields,storagePath:"home.sms"},fullscreen:!0}).then(function(e){m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply&&(m.query.search=e.value,p())}).catch(function(e){d.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},i.$on("$destroy",function(){l.removeAllListeners("smsMessage:save"),l.removeAllListeners("smsMessage:update"),l.removeAllListeners("smsInteraction:save"),l.removeAllListeners("smsInteractionTags:save"),l.removeAllListeners("smsInteraction:update"),l.removeAllListeners("user_has_sms_interactions:save"),l.removeAllListeners("user_has_sms_interactions:remove"),m.interactionsInterval&&n.cancel(m.interactionsInterval)})}e.$inject=["$scope","$interval","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty","draftManager"],angular.module("app.dashboards").controller("AgentHomeSmsController",e)}(),function(){"use strict";function e(n,t,a,i,e,s,o,r){var l=this;function d(e){l.searchInProgress=!1,l.voiceCalls=e||{count:0,rows:[]}}function c(){l.searchInProgress=!0,l.query.offset=(l.query.page-1)*l.query.limit;var e={query:l.query};s.localStorage.setItem("motion2.home.voice:"+l.currentUser.id,JSON.stringify(e)),l.promise=a.voiceCallReport.get(l.query,d).$promise}l.currentUser=e.getCurrentUser(),l.voiceCalls={},l.table="voiceCalls",l.query={UserId:l.currentUser.id,fields:"id,type,uniqueid,tag,starttime,endtime,source,destination,userDisposition,userSecondDisposition,userThirdDisposition,note,duration,billableseconds,answertime",sort:"-updatedAt",limit:10,page:1,type:null},l.success=d,l.getVoiceCalls=c,l.onInit=function(){return a.tag.get({sort:"name"}).$promise.then(function(e){l.tags=e||{count:0,rows:[]}}).then(function(){l.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Type",key:"type",type:"select",label:"VOICE.SELECT_TYPE",customOptions:[{value:"internal",translate:"VOICE.INTERNAL"},{value:"inbound",translate:"VOICE.INBOUND"},{value:"outbound",translate:"VOICE.OUTBOUND"},{value:"dialer",translate:"VOICE.DIALER"},{value:null,translate:"VOICE.ALL"}]}]}).catch(function(e){i.error({title:"Init error",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()}),l.tags={count:0,rows:[]}}).finally(function(){var e=s.localStorage.getItem("motion2.home.voice:"+l.currentUser.id);if(e)try{(e=JSON.parse(e)).query&&(l.query=_.merge(l.query,e.query))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};l.query.createdAt=n}l.isSearchBarVisible=!!l.query.filter,c()})},l.showDetails=function(e){n.show({controller:"AgentHomeVoiceDetailsController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/home/voice/details/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,locals:{call:e}})}}e.$inject=["$mdDialog","$document","api","toasty","Auth","$window","$scope","$timeout"],angular.module("app.dashboards").controller("AgentHomeVoiceController",e)}(),function(){"use strict";function e(e,n){this.call=n,this.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","call"],angular.module("app.dashboards").controller("AgentHomeVoiceDetailsController",e)}(),function(){"use strict";function e(i,n,s,o,a,t,r,e,l,d,c){var m=this;function u(e){!m.reloadingInteractions&&0<m.setting.whatsappInteractionsReloadTimeout&&E(!0),m.searchInProgress=!1,m.reloadingInteractions=!1,m.whatsappInteractions=e||{count:0,rows:[]};for(var n=0;n<m.whatsappInteractions.rows.length;n+=1)g(m.whatsappInteractions.rows[n])}function p(e,n){m.searchInProgress=!0,e||(m.query.page=1),m.query.offset=(m.query.page-1)*m.query.limit;var t=a.localStorage.getItem("motion2.home.whatsapp:"+m.user.id);(t=t?JSON.parse(t):{}).query=m.query,a.localStorage.setItem("motion2.home.whatsapp:"+m.user.id,JSON.stringify(t)),m.promise=r.whatsappInteraction.get(m.query,u).$promise}function g(e){e.contactInfo=e.Contact?e.Contact.mobile:void 0,"Unknown"===e.contactName&&(e.contactName=t.instant("DASHBOARDS.UNKNOWN"))}function v(e){var n=_.find(m.whatsappInteractions.rows,{id:e.WhatsappInteractionId});n&&n.Users&&(_.find(n.Users,{id:e.UserId})||n.Users.push({id:e.UserId}))}function h(e){var n=_.find(m.whatsappInteractions.rows,{id:e.WhatsappInteractionId});n&&n.Users&&_.remove(n.Users,{id:e.UserId})}function f(e){if(e){var n=_.find(m.whatsappInteractions.rows,{id:e.id});if(n){if(n.Users=[],e.closed&&(n.unreadMessages=0),m.query.sort){var t=_.startsWith(m.query.sort,"-")?"desc":"asc";m.whatsappInteractions.rows=_.orderBy(m.whatsappInteractions.rows,_.trimStart(m.query.sort,"-"),t)}_.merge(n,_.pick(e,_.keys(n)))}else 0===m.setting.whatsappInteractionsReloadTimeout&&p(m.query.page)}}function b(e){if(e){var n=_.find(m.whatsappInteractions.rows,{id:e.id});n&&(n.Tags=e.tags||[],_.merge(n,_.pick(e,_.keys(n))))}}function A(e){if(e&&!e.secret){var n=_.find(m.whatsappInteractions.rows,{id:e.WhatsappInteractionId});if(n){var t=_.find(n.Messages,{id:e.id});t?_.merge(t,_.pick(e,_.keys(t))):(_.isNil(n.Messages)&&(n.Messages={count:0}),e.read||(n.Messages.count+=1))}}}function E(e){e&&m.interactionsInterval&&n.cancel(m.interactionsInterval),m.interactionsInterval=n(function(){m.reloadingInteractions=!0,m.searchInProgress||p()},1e3*m.setting.whatsappInteractionsReloadTimeout)}m.user=e.getCurrentUser(),m.license={},m.setting={},m.tags={count:0,rows:[]},m.whatsappInteractions={count:0,rows:[]},m.query={includeAll:!0,sort:"-updatedAt",limit:10,page:1,read:null,closed:null},m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Account",column:"WhatsappAccountId",type:"multiselect",options:{route:{model:"user",action:"getWhatsappAccounts",params:{id:m.user.id,nolimit:!0}}}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},m.sectionColor="lime-A700",m.onInit=function(e,n){return m.license=e,m.setting=n,r.user["get"+_.upperFirst("whatsappAccounts")]({id:m.user.id,nolimit:!0}).$promise.then(function(e){return m.whatsappAccounts=e||{count:0,rows:[]},r.tag.get({sort:"name"}).$promise}).then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Account",key:"WhatsappAccountId",type:"multiselect",label:"DASHBOARDS.SELECT_ACCOUNT",options:m.whatsappAccounts.rows,clearAll:!1},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:m.user.id,translate:"DASHBOARDS.ME"},{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]}).catch(function(e){console.error(e)}).finally(function(){var e=a.localStorage.getItem("motion2.home.whatsapp:"+m.user.id);if(e)try{(e=JSON.parse(e)).query&&(m.query=_.merge(m.query,e.query),_.isEmpty(m.whatsappAccounts.rows)?m.query.WhatsappAccountId=[]:_.isEmpty(m.query.WhatsappAccountId)&&(m.query.WhatsappAccountId=_(m.whatsappAccounts.rows).map("id").take().value()),m.query.sort&&0<=m.query.sort.indexOf("lastMessage")&&(m.query=_.omit(m.query,"sort")),m.query.includeAll=!0,m.isSearchBarVisible=!(m.query.search||!m.query.filter))}catch(e){console.error(e)}else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()},t={WhatsappAccountId:_.map(m.whatsappAccounts.rows,"id"),createdAt:n};m.query=_.merge(m.query,t)}l.on("whatsappInteraction:save",f),l.on("whatsappInteraction:update",f),l.on("whatsappInteractionTags:save",b),l.on("whatsappMessage:save",A),l.on("whatsappMessage:update",A),l.on("user_has_whatsapp_interactions:save",v),l.on("user_has_whatsapp_interactions:remove",h),p(m.query.page),0<m.setting.whatsappInteractionsReloadTimeout&&E()})},m.success=u,m.getWhatsappInteractions=p,m.showWhatsappInteraction=function(e,n){i.$parent.vm.addInteractionTab("whatsapp",n)},m.downloadWhatsappInteraction=function(e,s,n){r.whatsappInteraction.download({id:s.id,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="whatsapp-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"downloadWhatsappInteraction",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.disposeInteraction=function(e,t){var a=m.user.voicePause||m.user.chatPause||m.user.mailPause||m.user.openchannelPause||m.user.faxPause,n=!t.Account.mandatoryDisposition;s.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(o.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(e,n){m.user&&t.Account.mandatoryDisposition&&!a&&r.user.unpause({id:m.user.id}).$promise.catch(function(e){console.error(e)})},locals:{user:m.user,channel:"whatsapp",interaction:t}})},m.getContactLabel=g,m.getAgentLabel=function(e){if(e.UserId)return e.UserId===m.user.id?t.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">";return t.instant("DASHBOARDS.NOT_ASSIGNED")},m.getWhatsappAccountLabel=function(e){if(e.Account)return e.Account.key;return t.instant("DASHBOARDS.UNKNOWN")},m.composeWhatsappInteraction=function(e,a){s.show({controller:"ComposeWhatsappInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/whatsapp/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{account:a,message:{},type:"new",interaction:{}},fullscreen:!0}).then(function(e){if(e){if(!e.message||!e.message.savedAsDraft){var n=e;return r.whatsappAccount.send({id:a.id},n).$promise.then(function(e){d.success({title:"Message properly sent!",msg:"Message has been sent!"}),i.$parent.vm.addInteractionTab("whatsapp",e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"WHATSAPPACCOUNT:SEND",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}var t={channel:"whatsapp",account:a,message:e.message,contact:e.contact};c.add(t)}})},m.openAdvancedSearch=function(){s.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(o.body),clickOutsideToClose:!1,locals:{color:m.sectionColor,fields:m.advancedSearch.fields,storagePath:"home.whatsapp"},fullscreen:!0}).then(function(e){m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply&&(m.query.search=e.value,p())}).catch(function(e){d.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},i.$on("$destroy",function(){l.removeAllListeners("whatsappMessage:save"),l.removeAllListeners("whatsappMessage:update"),l.removeAllListeners("whatsappInteraction:save"),l.removeAllListeners("whatsappInteractionTags:save"),l.removeAllListeners("whatsappInteraction:update"),l.removeAllListeners("user_has_whatsapp_interactions:save"),l.removeAllListeners("user_has_whatsapp_interactions:remove"),m.interactionsInterval&&n.cancel(m.interactionsInterval)})}e.$inject=["$scope","$interval","$mdDialog","$document","$window","$translate","api","Auth","socket","toasty","draftManager"],angular.module("app.dashboards").controller("AgentHomeWhatsappController",e)}(),function(){"use strict";function e(e,n){var t=this;t.setting={},t.messages={count:0,rows:[]},t.showInteraction=!1,t.init=function(e,n){t.setting=n,t.tab=e,t.tab.saved=!0},t.getTrustedURL=function(){return n.trustAsResourceUrl(t.tab.src)}}e.$inject=["$scope","$sce"],angular.module("app.dashboards").controller("AgentGeneralIframeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v){var h=this,f=25,b=1024*f*1024;function A(){var e=h.user.voicePause||h.user.chatPause||h.user.mailPause||h.user.openchannelPause||h.user.faxPause,n=!h.tab.interaction.Account.mandatoryDisposition;i.show({controller:"DisposeInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",parent:angular.element(t.body),clickOutsideToClose:n,escapeToClose:n,onRemoving:function(){h.user&&h.interaction.Account.mandatoryDisposition&&!e&&l.user.unpause({id:h.user.id}).$promise.catch(function(e){d.error(e.data?e.data.message:e.toString())})},locals:{user:h.user,channel:h.tab.channel,interaction:h.tab.interaction}}).then(function(e){h.tab.saved=Boolean(e),e&&a.$parent.$parent.$parent.vm.closeTab(h.tab)})}function E(e,n){h.tab.message=n,i.show({controller:"ComposeMailInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/mail/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,message:h.tab.message,type:e,interaction:h.interaction},fullscreen:!0,skipHide:Boolean(h.tab.spy)}).then(function(e){if(e)if(e.message&&e.message.savedAsDraft)h.draft?p.update({id:h.draft.id,channel:"mail",account:h.account,message:e.message,contact:h.contact,interaction:h.interaction}):p.add({channel:"mail",account:h.account,message:e.message,contact:h.contact,interaction:h.interaction}),h.draft=p.getByInteraction(h.tab.interaction.id);else{var n=e;n&&S(n),n.Interaction&&h.interaction&&h.interaction.id&&(n.Interaction.id=h.interaction.id,l.mailInteraction.update(n.Interaction).$promise.then(function(e){e&&e.closed?(h.tab.saved=!0,h.interaction.closed=!0,A()):null!==n.Interaction.substatus&&(h.tab.saved=!0,h.tab.interaction.substatus=n.Interaction.substatus,a.$parent.$parent.$parent.vm.closeTab(h.tab))}).catch(function(e){d.error(e.data?e.data.message:e.toString())}))}}).finally(function(){h.tab.isDraft=!1})}function y(){"mail"!==h.tab.channel&&n(function(){var e=angular.element(t.find("md-content[name*='interaction-content-"+h.tab.id+"']"));e&&e[0]&&(e[0].scrollTop=e[0].scrollHeight)},0)}function S(i){if(i)return i["chat"===h.tab.channel?"ChatWebsiteId":_.capitalize(h.tab.channel)+"AccountId"]=h.interaction["chat"===h.tab.channel?"ChatWebsiteId":_.capitalize(h.tab.channel)+"AccountId"],i[_.capitalize(h.tab.channel)+"InteractionId"]=h.interaction.id,i.UserId=h.user.id,i.ContactId=h.interaction.ContactId,i.direction="out",i.secret=Boolean(h.tab.spy||i.secret),l[h.tab.channel+"Message"].save(i).$promise.then(function(e){if(e&&e.id&&!_.isEmpty(i.attachments)){for(var n=[],t=0;t<i.attachments.length;t++){var a=i.attachments[t];a.MailMessageId?n.push(l.attachment.clone({id:a.id},{name:a.name,basename:a.basename,type:a.type,MailMessageId:e.id}).$promise):n.push(l.attachment.update({id:a.id},{MailMessageId:e.id}).$promise)}return s.all(n)}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:SENDMESSAGE",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){"mail"===h.tab.channel&&i.isDraft&&(p.removeByInteraction(h.interaction.id),h.draft=null),h.tab.areaText="",y()})}function T(e){switch(h.tab.channel){case"mail":h.draft.content.originalMessage=e?_.find(h.interaction.Messages,["id",e]):h.interaction.Messages[h.interaction.Messages.length-1],E(h.draft.type,h.draft.content)}}function I(e){h.journeyIsLoading=!0;var n=_.merge(h.journeyOptions,{id:h.contact.id,offset:e||0});return g.get(h.journey,n).then(function(e){h.journey=e.journey,h.canLoadMoreJourney=e.loadMore}).finally(function(){h.journeyIsLoading=!1})}h.showFooter=!1,h.BTNLoadMore=0,h.showInteraction=!1,h.user=c.getCurrentUser(),h.detectBrowser=u.detectBrowser(),h.journey=[],h.acceptedMessages=[],h.ngFlowOptions={target:"api/attachments",singleFile:!0,maxChunkRetries:1,chunkSize:b,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},h.ngFlow={flow:{}},h.selectedMailShowDetails={},h.selectedMailShowSystemMessage={},h.setting={},h.ctrlMethods={},h.embedOptions={fontSmiley:!0,sanitizeHtml:!0,emoji:!0,link:!0,linkTarget:"_blank"},h.journeyOptions=g.getQuery(),h.quickFilters=g.getQuickFilters(),h.init=function(e,n){h.tab=e,h.tab.saved=!0,h.tab.badges=0,h.setting=n||{},h.tab&&h.tab.channel&&h.tab.interaction&&(h.interaction=h.tab.interaction,l[h.tab.channel+"Interaction"].get({id:h.tab.interaction.id,includeAll:!0}).$promise.then(function(e){return e&&(h.interaction=e,h.tab.interaction=e),h.tab.saved=h.interaction.closed,h.queryMessage={id:h.interaction.id,includeAll:!0},"mail"===h.tab.channel?(h.queryMessage.sort="-id",h.queryMessage.offset=0,h.queryMessage.limit=3,h.queryMessage.inlineCss=!0):(h.queryMessage.sort="id",h.queryMessage.nolimit=!0),l[h.tab.channel+"Interaction"].getMessages(h.queryMessage).$promise}).then(function(e){return e&&(h.BTNLoadMore=e.count-h.queryMessage.limit),h.messages=e||{count:0,rows:[]},l["chat"===h.tab.channel?"chatWebsite":h.tab.channel+"Account"].get({id:h.interaction["chat"===h.tab.channel?"ChatWebsiteId":_.capitalize(h.tab.channel)+"AccountId"]}).$promise}).then(function(e){if(h.account=e,h.tab.title=h.account.key||h.account.name,h.interaction.ContactId)return l.cmContact.get({id:h.interaction.ContactId}).$promise}).then(function(e){return e&&(h.contact=e),h.showInteraction=!0,h.contact?h.tab.title+=" - "+(h.user.privacyEnabled?v.mask(h.contact.firstName):h.contact.firstName):h.tab.title+=" - "+r.instant(h.tab.channel.toUpperCase()+".UNKNOWN"),l.user.get({fields:"id,fullname",nolimit:!0}).$promise}).then(function(e){h.users=e||{count:0,rows:[]},h.usersMap=_.mapValues(_.keyBy(h.users.rows,"id"),"fullname")}).then(function(){if(h.tab.channel&&h.interaction)return l.user["add"+_.upperFirst(h.tab.channel)+"Interactions"]({id:h.user.id,ids:[h.interaction.id]})}).then(function(){return l.mailSubstatus.get({sort:"name",nolimit:!0}).$promise}).then(function(e){h.subStatuses=e||{count:0,rows:[]}}).catch(function(){h.showInteraction=!0}).finally(function(){h.contact&&I(),function(){switch(h.user.role){case"admin":return h.downloadPermissions={attachments:!0,interactions:!0};case"agent":return h.downloadPermissions={attachments:h.user.downloadAttachments,interactions:h.user.downloadOmnichannelInteractions};case"user":l.userProfile.get({id:h.user.userProfileId,fields:"downloadAttachments,downloadOmnichannelInteractions"}).$promise.then(function(e){h.downloadPermissions={attachments:e.downloadAttachments,interactions:e.downloadOmnichannelInteractions}}).catch(function(){h.downloadPermissions={attachments:!1,interactions:!1}})}}(),function(){if(!h.tab.spy&&!h.interaction.closed){var t=[];if(h.messages.rows.forEach(function(e){if("in"===e.direction&&!e.read){var n=0===t.length;t.push(l[h.tab.channel+"Message"].accept({id:e.id,UserId:h.user.id,manual:n}).$promise),h.acceptedMessages.push(e.id)}}),"mail"===h.tab.channel){var e=_(h.interaction.Messages).filter({read:!1,direction:"in"}).differenceBy(h.messages.rows,"id").value();e.forEach(function(e){t.push(l.mailMessage.accept({id:e.id,UserId:h.user.id}).$promise),h.acceptedMessages.push(e.id)})}s.all(t)}}(),y(),m.on(h.tab.channel+"Message:save",h.onMessageSave),m.on(h.tab.channel+"Message:update",h.onMessageSave),m.on(h.tab.channel+"Interaction:save",h.onInteractionSave),m.on(h.tab.channel+"Interaction:update",h.onInteractionSave),m.on("user_has_"+h.tab.channel+"_interactions:save",h.onInteractionOpen),m.on("user_has_"+h.tab.channel+"_interactions:remove",h.onInteractionClose),h.tab.areaText=h.tab.areaText?h.tab.areaText:"",h.showFooter=!0,"mail"===h.tab.channel&&(h.draft=p.getByInteraction(h.tab.interaction.id),h.tab.isDraft&&(h.tab.interaction.closed?(p.removeByInteraction(h.tab.interaction.id),h.draft=null):T()))}))},h.getLabelByMessage=function(e){var n="loading...";if(e)return"in"===e.direction?e.Contact?e.Contact.firstName||"Anonymous":n:e.UserId?h.usersMap?h.usersMap[e.UserId]:n:"System"},h.openContact=function(e,n){try{h.tab&&!h.tab.spy&&a.$parent.$parent.$parent.vm.addContactTab(n||h.contact)}catch(e){d.error({title:"ERROR OPEN CONTACT",msg:"Unable to open the contact"})}},h.openInteraction=function(e){try{if(e.MailAccountId)return a.$parent.$parent.$parent.vm.addInteractionTab("mail",e);if(e.ChatWebsiteId)return a.$parent.$parent.$parent.vm.addInteractionTab("chat",e);if(e.SmsAccountId)return a.$parent.$parent.$parent.vm.addInteractionTab("sms",e);if(e.WhatsappAccountId)return a.$parent.$parent.$parent.vm.addInteractionTab("whatsapp",e);if(e.OpenchannelAccountId)return a.$parent.$parent.$parent.vm.addInteractionTab("openchannel",e);if(e.FaxAccountId)return a.$parent.$parent.$parent.vm.addInteractionTab("fax",e)}catch(e){d.error({title:"ERROR OPEN INTERACTION",msg:"Customer Journey can't open the interaction"})}},h.disposeInteraction=A,h.tagInteraction=function(){i.show({controller:"TagInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/tag/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!0,skipHide:Boolean(h.tab.spy),resolve:{tags:["apiResolver",function(e){return e.resolve("tag@get",{sort:"name",nolimit:!0,fields:"id,name,color"})}]},locals:{channel:h.tab.channel,interaction:h.tab.interaction}})},h.composeMailInteraction=function(n,e){if(e.inReplyTo){var t=_.find(h.messages.rows,{messageId:e.inReplyTo});if(!t)return l.mailMessage.get({messageId:e.inReplyTo}).$promise.then(function(e){E(n,e&&e.count?e.rows[0]:void 0)}).catch(function(e){d.error(e.data?e.data.message:e.toString()),E(n,void 0)});E(n,t)}else E(n,e)},h.composeFaxInteraction=function(e){var n={to:[]};n.to.push(h.contact.fax),i.show({controller:"ComposeFaxInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/fax/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,message:n,type:e},fullscreen:!0}).then(function(e){return l.faxAccount.send({id:h.account.id},e).$promise.then(function(e){d.success({title:"Message properly sent!",msg:"Message has been sent!"}),a.$parent.vm.addInteractionTab("fax",e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:"FAX:SEND",msg:e.data?JSON.stringify(e.data):e.message||e.toString()})})})},h.composeSmsInteraction=function(e,n){i.show({controller:"ComposeSmsInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/sms/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,message:n,type:e},fullscreen:!0,skipHide:Boolean(h.tab.spy)}).then(function(e){e&&S(e)})},h.composeWhatsappInteraction=function(e,n){i.show({controller:"ComposeWhatsappInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/whatsapp/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,message:n,type:e},fullscreen:!0,skipHide:Boolean(h.tab.spy)}).then(function(e){e&&S(e)})},h.composeChatInteraction=function(e,n){i.show({controller:"ComposeChatInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/chat/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,message:n,type:e},fullscreen:!0,skipHide:Boolean(h.tab.spy)}).then(function(e){e&&S(e)})},h.composeOpenchannelInteraction=function(e,n){i.show({controller:"ComposeOpenchannelInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/compose/openchannel/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,message:n,type:e},fullscreen:!0,skipHide:Boolean(h.tab.spy)}).then(function(e){e&&S(e)})},h.transferLastMessage=function(){if(h.interaction){var e=_.findLast(h.messages.rows,function(e){return"in"===e.direction});e?i.show({controller:"TransferMessageDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/transfer/dialog.html",parent:angular.element(t.body),clickOutsideToClose:!1,locals:{account:h.account,interaction:h.interaction,message:e,channel:h.tab.channel},resolve:{agents:["apiResolver",function(e){var n={fields:"id,name",$id:{ne:h.user.id},role:"agent",online:!0,sort:"name",nolimit:!0};return n[h.tab.channel+"Pause"]=!1,e.resolve("user@get",n)}],queues:["apiResolver",function(e){return e.resolve(h.tab.channel+"Queue@get",{fields:"id,name",sort:"name",nolimit:!0})}]}}).then(function(e){h.tab.saved=Boolean(e),e&&a.$parent.$parent.$parent.vm.closeTab(h.tab)}):d.error({title:"Invalid transfer",msg:"Message not found!"})}},h.downloadMessage=function(s,e){h.tab.channel&&s.id&&l[h.tab.channel+"Message"].download({id:s.id,attachments:e}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=h.tab.channel+"-message"+s.id+".eml";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.downloadMessage.get",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.downloadInteraction=function(s,e){h.tab.channel&&s.id&&l[h.tab.channel+"Interaction"].download({id:s.id,attachments:e}).$promise.then(function(e){var n=[e.buffer],t=h.tab.channel+"-interaction"+s.id+".zip",a=new Blob(n,{type:e.type}),i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.inteactionMessage.get",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},h.openDraft=T,h.createVidaooSession=function(e){var n={id:e.id,account:e.Account,contact:e.Contact};return l.chatInteraction.createVidaooSession(n).$promise.then(function(){d.success({title:"Start Video Call",msg:"Session properly created."})}).catch(function(){d.error({title:"Start Video Call",msg:"Unable to create session!"})})},h.reply=function(e,n){if(e&&13===e.keyCode&&e.shiftKey)return;if(e&&13!==e.keyCode)return;if(""===n.trim())return;S(function(e){var n={},t="chat"===h.tab.channel?"ChatWebsiteId":_.capitalize(h.tab.channel)+"AccountId";n[t]=h.interaction[t].toString(),n[_.capitalize(h.tab.channel)+"InteractionId"]=h.interaction.id,("sms"===h.tab.channel||"whatsapp"===h.tab.channel)&&(n.phone=h.interaction.phone);e&&(n.UserId=h.user.id,n.ContactId=h.interaction.ContactId,n.body=e);return n}(n.replace(/\n$/,"")))},h.upload=function(){h.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},h.ngFlow.flow.upload()},h.fileAdded=function(e){if(e.size>b)return d.error({title:"File too big",msg:"The max allowed size is "+f+"MB"}),!1;return!0},h.fileSuccess=function(e,n){var t=JSON.parse(n),a=t.name;"chat"===h.tab.channel&&(a='<a href="'+(h.account.remote?h.account.remote:o.protocol()+"://"+o.host())+"/api/chat/interactions/"+h.interaction.id+"/attachment_download?attachId="+t.id+"&token="+h.account.token+'" target="_self">'+t.name+"</a>");S({body:a,AttachmentId:t.id})},h.onMessageSave=function(e){if(e&&h.interaction.id!=e[_.capitalize(h.tab.channel)+"InteractionId"])return;var n=!1;h.messages?n=_.find(h.messages.rows,{id:e.id}):h.messages={rows:[],count:0};n?_.merge(n,e):("mail"===h.tab.channel?h.messages.rows.unshift(e):h.messages.rows.push(e),y())},h.onInteractionSave=function(e){if(e&&h.interaction.id!==e.id)return;e.closed&&(h.tab.saved=!0);_.merge(h.interaction,e)},h.searchTextChange=function(n){var t=s.defer(),a=[],e={},i="chat"===h.tab.channel?"ChatWebsiteId":_.capitalize(h.tab.channel)+"AccountId";return e.filter=n,e[i]=h.account.id,l.cannedAnswer.get(e).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:n}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.WhatsappAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),t.resolve(a)}).catch(function(e){t.reject(e)}),t.promise},h.selectedItemChange=function(n){if(n){try{_.templateSettings.interpolate=/{{([\s\S]+?)}}/g;var e=_.template(n.value),t={user:h.user,account:h.account,interaction:h.interaction,contact:h.interaction&&h.interaction.Contact?h.interaction.Contact:{}};""!==h.tab.areaText&&(h.tab.areaText+=" "),h.tab.areaText+=e(t),h.ctrlMethods.setText(h.tab.areaText)}catch(e){""!==h.tab.areaText&&(h.tab.areaText+=" "),h.tab.areaText+=n.value,h.ctrlMethods.setText(h.tab.areaText)}h.selectedItem=null,h.changeDisplayCannedAnswerInputValue()}},h.getMessagesAlignment=function(e){if(e.secret&&h.user.id!=e.UserId)return"in";switch(h.setting.messagesAlignment){case"left":return"in"==e.direction?e.direction:"out-left-aligned";case"right":return"in"==e.direction?"in-right-aligned":e.direction;default:return e.direction}},h.displayCannedAnswerInput=!1,h.changeDisplayCannedAnswerInputValue=function(){h.displayCannedAnswerInput=!h.displayCannedAnswerInput},h.setAs=function(e){h.tab.channel&&h.interaction&&h.interaction.id&&l[h.tab.channel+"Interaction"].update({id:h.interaction.id,substatus:e}).$promise.catch(function(e){d.error(e.data?e.data.message:e.toString())})},h.markAsUnread=function(){if(h.tab.channel&&h.interaction&&h.interaction.id)if(h.acceptedMessages.length)for(var e=0;e<h.acceptedMessages.length;e+=1)l[h.tab.channel+"Message"].update({id:h.acceptedMessages[e],read:!1,UserId:null});else for(var n=0;n<h.messages.rows.length;n+=1)if("in"===h.messages.rows[n].direction){h.messages.rows[n].UserId===h.user.id?l[h.tab.channel+"Message"].update({id:h.messages.rows[n].id,read:!1,UserId:null}):d.error({title:"You can't mark as unread",msg:"You are not the owner of the last message!"});break}h.tab.saved=!0,a.$parent.$parent.$parent.vm.closeTab(h.tab)},h.getAttachments=function(n){return l.attachment.get({MailMessageId:n.id}).$promise.then(function(e){e&&e.rows&&(n.attachments=e.rows)}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"ATTACHMENTS:GET",msg:e.data?JSON.stringify(e.data):e.toString()})})},h.getAttachment=function(i){return l.attachment.download({id:i.id}).$promise.then(function(e){if(e){var n=new Blob([e.buffer],{type:e.type}),t=document.createElement("a"),a=window.URL.createObjectURL(n);t.href=a,t.target="_self",t.download=i.name,document.body.appendChild(t),t.click(),setTimeout(function(){document.body.removeChild(t),window.URL.revokeObjectURL(a)},100)}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"ATTACHMENTS:GET",msg:e.data?JSON.stringify(e.data):e.toString()})})},h.htmlToPlaintext=function(e){return e?String(e).replace(/<[^>]+>/gm,""):""},h.onInteractionOpen=function(e){var n;h.interaction.id==e[_.upperFirst(h.tab.channel)+"InteractionId"]&&(h.interaction.Users&&(n=_.find(h.interaction.Users,{id:e.UserId})),n||h.interaction.Users.push({id:e.UserId}))},h.onInteractionClose=function(e){h.interaction.id==e[_.upperFirst(h.tab.channel)+"InteractionId"]&&h.interaction.Users&&_.remove(h.interaction.Users,{id:e.UserId})},h.getCustomerJourney=I,h.loadNextPage=function(){var t=s.defer();if(h.queryMessage)return h.queryMessage.offset=h.messages.rows.length,l[h.tab.channel+"Interaction"].getMessages(h.queryMessage).$promise.then(function(e){for(var n=0;n<e.rows.length;n+=1)h.messages.rows.push(e.rows[n]),h.interaction.closed||"in"!==e.rows[n].direction||e.rows[n].read||(l[h.tab.channel+"Message"].accept({id:e.rows[n].id,UserId:h.user.id}),h.acceptedMessages.push(e.rows[n].id));return 0<e.rows.length&&(h.BTNLoadMore=h.BTNLoadMore-e.rows.length),t.resolve(e)}).catch(function(e){return t.reject(e)});return t.reject()},h.interactionTimelineOptions={scrollEl:"#interaction-content"},h.loadMoreJourney=function(){return s(function(e){var n=h.journey.length;return e(I(n))})},h.journeyTimelineOptions={scrollEl:"#journey-content"},a.$on("$destroy",function(){m.removeAllListeners(h.tab.channel+"Message:save"),m.removeAllListeners(h.tab.channel+"Message:update"),m.removeAllListeners(h.tab.channel+"Interaction:save"),m.removeAllListeners(h.tab.channel+"Interaction:update"),m.removeAllListeners("user_has_"+h.tab.channel+"_interactions:save"),m.removeAllListeners("user_has_"+h.tab.channel+"_interactions:remove")})}function n(a){return{scope:{ngBindHtmlUnsafe:"="},template:"<div ng-bind-html='trustedHtml'></div>",link:function(t){t.updateView=function(){var e,n=_.replace(t.ngBindHtmlUnsafe,'<div id="xm-mail-content"','<a style="cursor:pointer" class="toggle-details md-accent-color" onclick="document.getElementById(\''+(e="xm-mail-content-"+Math.floor(9999*Math.random()+1))+"').style.display='block'; this.parentNode.removeChild(this)\">See More</a><div id=\""+e+'" style="display:none"');t.trustedHtml=a.trustAsHtml(n)},t.$watch("ngBindHtmlUnsafe",function(e){t.updateView(e)})}}}e.$inject=["$cookies","$timeout","$document","$scope","$mdDialog","$q","$location","$translate","api","toasty","Auth","socket","msUtils","draftManager","customerJourneyManager","privacyManager"],n.$inject=["$sce"],angular.module("app.dashboards").directive("ngBindHtmlUnsafe",n).controller("AgentGeneralInteractionController",e)}(),function(){"use strict";angular.module("app.dashboards").factory("Emojis",function(){return{watchEmbedData:!1,sanitizeHtml:!1,fontSmiley:!1,emoji:!0,link:!0,linkTarget:"_blank",pdf:{embed:!0},image:{embed:!0},audio:{embed:!0},basicVideo:!1,gdevAuth:"xxxxxxxx",video:{embed:!1,width:null,height:null,ytTheme:"dark",details:!1,thumbnailQuality:"medium",autoPlay:!0},twitchtvEmbed:!0,dailymotionEmbed:!0,tedEmbed:!0,dotsubEmbed:!0,liveleakEmbed:!0,ustreamEmbed:!0,soundCloudEmbed:!0,soundCloudOptions:{height:160,themeColor:"f50000",autoPlay:!1,hideRelated:!1,showComments:!0,showUser:!0,showReposts:!1,visual:!1,download:!1},spotifyEmbed:!0,tweetEmbed:!0,tweetOptions:{maxWidth:550,hideMedia:!1,hideThread:!1,align:"none",lang:"en"},code:{highlight:!0,lineNumbers:!1},codepenEmbed:!0,codepenHeight:300,jsfiddleEmbed:!0,jsfiddleHeight:300,jsbinEmbed:!0,jsbinHeight:300,plunkerEmbed:!0,githubgistEmbed:!0,ideoneEmbed:!0,ideoneHeight:300}})}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;switch(p.currentUser=u.getCurrentUser(),p.errors=[],p.separatorKeys=[i.KEY_CODE.ENTER,i.KEY_CODE.COMMA,i.KEY_CODE.TAB],p.searchTextChange=function(n){var t=c.defer(),a=[];return l.cannedAnswer.get({filter:n,ChatAccountId:s.id}).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:n}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.WhatsappAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),t.resolve(a)}).catch(function(e){t.reject(e)}),t.promise},p.selectedItemChange=function(n){if(n){try{_.templateSettings.interpolate=/{{([\s\S]+?)}}/g;var e=_.template(n.value),t={user:p.currentUser,account:s};p.message.body+=" "+e(t),p.ctrlMethods.setText(p.message.body)}catch(e){p.message.body+=" "+n.value,p.ctrlMethods.setText(p.message.body)}p.selectedItem=null}},p.note=function(){p.secret=!0},p.addNote=function(){p.message.body&&a.hide({secret:!0,body:p.message.body})},p.ctrlMethods={},p.message={from:s.phone,to:_.isNil(o.to)||_.isEmpty(o.to)?[]:o.to,body:""},p.send=function(e){p.message.to&&p.message.body&&(p.message.to.length?(n=p.message.body,a.hide({to:p.message.to.join(","),body:n})):d.error("To is mandatory"));var n},p.getContact=function(e){var n="";e.firstName&&e.firstName!==e.mobile&&(n+=e.firstName+" ");e.lastName&&e.lastName!==e.mobile&&(n+=e.lastName+" ");return n+="<"+e.mobile+">"},p.closeDialog=function(){a.cancel()},p.contactSearch=function(e){if(s&&s.ListId)return l.cmContact.get({ListId:s.ListId,nolimit:!0,filter:e,fields:"firstName,lastName,mobile"}).$promise.then(function(e){return e.rows});return[]},p.transformContact=function(e){var n=e;if(_.isObject(n))return e.mobile;if(t=n,/^(\+|\d)[0-9]{7,16}$/.test(t))return n;var t;return d.error("Mobile "+n+" is not valid"),null},r){case"note":p.note()}}e.$inject=["$cookies","$timeout","$window","$mdDialog","$mdConstant","account","message","type","api","toasty","$q","$translate","Auth"],angular.module("app.dashboards").controller("ComposeChatInteractionDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this,m=25,u=1024*m*1024;c.separatorKeys=[a.KEY_CODE.ENTER,a.KEY_CODE.COMMA,a.KEY_CODE.TAB],c.message={from:i.localstationid,to:_.isNil(s.to)||_.isEmpty(s.to)?[]:s.to,attachments:[]},c.ngFlowOptions={target:"api/attachments",singleFile:!0,maxChunkRetries:1,chunkSize:u,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},c.ngFlow={flow:{}},c.send=function(e){1===c.message.attachments.length?c.message.to.length?(s.draft=void 0,t.hide({from:c.message.from,to:c.message.to,attach:c.message.attachments.length,attachments:c.message.attachments})):l.error("To is mandatory"):l.error("Attachment is mandatory")},c.upload=function(){c.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},c.ngFlow.flow.upload()},c.fileSuccess=function(e,n){try{(n=JSON.parse(n)).size=e.size,c.message.attachments.push(n)}catch(e){console.error(e)}},c.fileAdded=function(e){var n=["pdf","tif"];if(!_.includes(n,e.getExtension()))return l.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extensions: "+n.join()}),!1;if(e.size>u)return l.error({title:"File too big",msg:"The max allowed size is "+m+"MB"}),!1;return!0},c.getContact=function(e){var n="";e.firstName&&e.firstName!==e.fax&&(n+=e.firstName+" ");e.lastName&&e.lastName!==e.fax&&(n+=e.lastName+" ");return n+="<"+e.fax+">"},c.contactSearch=function(e){return i&&i.ListId?r.cmContact.get({ListId:i.ListId,nolimit:!0,filter:e,fields:"firstName,lastName,fax"}).$promise.then(function(e){return e.rows}):[]},c.transformContact=function(e){var n=e;if(_.isObject(e))return e.fax;if(t=n,!/[&\/\\#,()$~%.'":;*?<>{}\s\\|a-zA-Z\pS!òàùè…_§°çéì-]/.test(t))return n;var t;return l.error("Fax "+n+" is not valid"),null},c.closeDialog=function(){s.draft=c.message,t.cancel()}}e.$inject=["$cookies","$window","$mdDialog","$mdConstant","account","message","type","api","toasty","$q"],angular.module("app.dashboards").controller("ComposeFaxInteractionDialogController",e)}(),function(){"use strict";function e(n,e,i,t,a,s,o,r,l,d,c,m,u,p){var g=this,v=25,h=1024*v*1024;g.currentUser=m.getCurrentUser(),g.secret="note"===r,g.hiddenCC=!0,g.hiddenBCC=!0,g.verifySmtp=!0,g.errors=[],g.separatorKeys=[t.KEY_CODE.ENTER,t.KEY_CODE.COMMA,t.KEY_CODE.TAB],g.searchTextChange=function(n){var t=c.defer(),a=[];return l.cannedAnswer.get({filter:n,MailAccountId:s.id}).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:n}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.WhatsappAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),t.resolve(a)}).catch(function(e){t.reject(e)}),t.promise},g.selectedItemChange=function(n){if(n&&n.value&&g.ckEditorInstance)try{var e=_.template(n.value),t={user:g.currentUser,account:s,interaction:u,contact:u&&u.Contact?u.Contact:{}};g.ckEditorInstance.insertHtml(e(t))}catch(e){console.error(e),g.ckEditorInstance.insertHtml(n.value)}document.getElementById("html-area").focus(),g.selectedItem=null},g.onReadyEditor=function(e){try{g.ckEditorInstance=CKEDITOR.instances["html-area"]}catch(e){console.error("Unable to get Html Editor instance",e)}},_.templateSettings.interpolate=/{{([\s\S]+?)}}/g,g.fromTemplate=_.template("{{ name }} <{{ email }}>"),g.replyTemplate=_.template("On {{ date }}, at {{ time }}, {{ from }} wrote:"),g.forwardTemplate=_.template("Begin forwarded message:<br><br><strong>From:</strong> {{ from }}<br><strong>Subject:</strong> {{ subject }}<br><strong>Date:</strong> {{ date }}, at {{ time }}<br><strong>To:</strong> {{ to }}"),g.message={from:g.fromTemplate({name:s.name,email:s.email||s.Smtp.user}),to:[],cc:[],bcc:[],body:S(),type:r,attachments:[],showLastMessage:!0},g.draft=null,g.ckeditor={skin:"office2013",startupFocus:!0,language:"en",allowedContent:!0,extraPlugins:"font,colorbutton,autogrow,autoembed,autocorrect,googlethisterm,pastebase64",toolbarGroups:[{name:"styles",groups:["styles"]},{name:"clipboard",groups:["undo"]},{name:"colors",groups:["colors"]},{name:"basicstyles",groups:["basicstyles"]},{name:"paragraph",groups:["list","indent","align"]}],autoGrow_onStartup:!0,autoGrow_minHeight:g.secret?160:300,autoGrow_maxHeight:e.innerHeight-400,autocorrect_enabled:!0,disableNativeSpellChecker:!1,enterMode:CKEDITOR.ENTER_BR,font_defaultLabel:s.fontFamily?s.fontFamily.split(",")[0]:"Arial",fontSize_defaultLabel:s.fontSize||"12",removePlugins:"magicline"};for(var f=[],b=8;b<=72;b++)f.push(b+"/"+b+"pt");g.ckeditor.fontSize_sizes=f.join(";"),g.ngFlowOptions={target:"api/attachments",singleFile:!0,maxChunkRetries:1,chunkSize:h,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},g.ngFlow={flow:{}},g.reply=function(e){angular.isDefined(o)&&(g.message.type="reply",g.message.to="in"===o.direction?o.from.split(","):o.to.split(","),g.message.subject=_.startsWith(o.subject,"Re:")?o.subject:"Re: "+o.subject,g.message.inReplyTo=o.messageId,g.message.body=S(),g.message.attachments=[],e&&o.cc&&(g.hiddenCC=!1,g.message.cc=o.cc.split(",")),g.message.showLastMessage=!1)},g.newMail=function(){angular.isDefined(o)&&(g.message.type="new",g.message.to=o.to?o.to.split(","):[])},g.forward=function(){if(angular.isDefined(o)){if(g.message.type="forward",g.message.subject=_.startsWith(o.subject,"Fwd:")?o.subject:"Fwd: "+o.subject,g.message.body=S(),o.Attachments&&o.Attachments.length)for(var e=0;e<o.Attachments.length;e++)g.message.attachments.push(o.Attachments[e]);g.message.showLastMessage=!1}},g.editDraft=function(){g.isDraft=!0,angular.isDefined(o)&&(o.savedAsDraft=!1,g.message=angular.copy(o),_.isEmpty(g.message.cc)||(g.hiddenCC=!1),_.isEmpty(g.message.bcc)||(g.hiddenBCC=!1))},g.send=function(e,n,t){if(!A&&g.message.to&&g.message.body)if(g.message.to.length)if(_.isEmpty(g.message.subject)){var a=i.confirm({skipHide:!0}).title("Warning").textContent("This message has no subject. Are you sure you want to send it?").ariaLabel("Warning").targetEvent(e).ok("Send Anyway").cancel("Cancel");i.show(a).then(function(){E(n,t)})}else E(n,t);else d.error("To is mandatory");A=!1},g.note=function(){g.type="note",g.secret=!0,g.message.body='<div style="font-family:'+s.fontFamily+";font-size:"+s.fontSize+'pt"><p></p></div>'},g.addNote=function(){g.message.body&&i.hide({secret:!0,body:g.message.body,attach:g.message.attachments.length,attachments:g.message.attachments})},g.upload=function(e){g.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+n.get("motion.token")},g.ngFlow.flow.upload()},g.fileSuccess=function(e,n){try{(n=JSON.parse(n)).size=e.size,g.message.attachments.push(n)}catch(e){console.error(e)}},g.removeAttachment=function(e){g.message.attachments=_.reject(g.message.attachments,{id:e.id}),e.MailMessageId||l.attachment.delete({id:e.id}).$promise.catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.attachment.delete",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.fileAdded=function(e){if(e.size>h)return d.error({title:"File too big",msg:"The max allowed size is "+v+"MB"}),!1;return!0},g.getContact=function(e){var n="";e.firstName&&e.firstName!==e.email&&(n+=e.firstName+" ");e.lastName&&e.lastName!==e.email&&(n+=e.lastName+" ");return n+="<"+e.email+">"},g.contactSearch=function(e){return s&&s.ListId?l.cmContact.get({ListId:s.ListId,nolimit:!0,filter:e,fields:"firstName,lastName,email"}).$promise.then(function(e){return e.rows}):[]},g.transformContact=function(e,n){if(_.isObject(e))return(g.contact=e).email;if(_.isString(e)){if(y(e))return g.contact={email:e},e;for(var t=e.split(","),a=0;a<t.length;a+=1)y(t[a])?_.isArray(n)&&_.indexOf(n,t[a])<0&&n.push(t[a]):d.error("Email "+t[a]+" is not valid");return g.contact={email:e.split(",")[0]},null}return d.error("Email field is not valid"),null},g.saveDraft=function(){g.message.savedAsDraft=!0,g.draft=p.getByInteraction(u.id);var e={account:s,message:g.message,contact:g.contact,interaction:u};if(g.draft&&!g.isDraft){var n=i.confirm({skipHide:!0}).title(a.instant("DASHBOARDS.DRAFT_SAVE_WARNING_TITLE")).content(a.instant("DASHBOARDS.DRAFT_SAVE_WARNING_MESSAGE")).ariaLabel("Save draft").ok(a.instant("DASHBOARDS.OVERWRITE")).cancel(a.instant("DASHBOARDS.CANCEL"));i.show(n).then(function(){i.hide(e)})}else i.hide(e)},g.closeDialog=function(){i.cancel()},g.loadLastMessage=function(){g.message.body+=T(g.message.type)};var A=!(g.keyPress=function(e){13===e.keyCode&&(A=!0)});switch(r){case"reply":g.reply(!1);break;case"replyAll":g.reply(!0);break;case"forward":g.forward();break;case"draft":g.editDraft();break;case"new":g.newMail();break;case"note":g.note()}function E(e,n){var t={from:g.message.from,to:g.message.to.join(","),cc:g.message.cc.join(","),bcc:g.message.bcc.join(","),subject:g.message.subject,body:g.message.showLastMessage?g.message.body:g.message.body+T(g.message.type),inReplyTo:g.message.inReplyTo,attach:g.message.attachments.length,attachments:g.message.attachments,Interaction:{lastMsgDirection:"out",substatus:n},isDraft:g.isDraft};t.html='<div id="xm-mail-content">'+_.replace(t.body,'<div id="xm-mail-content"',"<div")+"</div>",e&&(t.Interaction.closed=!0),i.hide(t)}function y(e){return/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(e)}function S(){return'<div style="font-family:'+s.fontFamily+";font-size:"+s.fontSize+'pt">'+function(){if(_.isNil(s.template))return"";try{return _.template(s.template)({user:g.currentUser,account:s,interaction:u,contact:u&&u.Contact?u.Contact:{}})}catch(e){return console.error(e),""}}()+"</div>"}function T(e){var n='<div id="xm-mail-content"><blockquote type="cite">';switch(e){case"reply":case"replyAll":n+=g.replyTemplate({date:moment(o.createdAt).format("D MMM YYYY")||"",time:moment(o.createdAt).format("HH:mm")||"",from:_.escape(o.from)||""});break;case"forward":n+=g.forwardTemplate({date:moment(o.createdAt).format("D MMM YYYY")||"",time:moment(o.createdAt).format("HH:mm")||"",from:_.escape(o.from)||"",to:_.escape(o.to)||"",subject:_.escape(o.subject)||""})}var t,a,i=g.message.showLastMessage&&o.originalMessage?o.originalMessage.body:o.body;return n+="<br><br>",n+=(t=i?_.replace(i,'<div id="xm-mail-content"',"<div"):"",(a=t.match(/\<body[^>]*\>([^]*)\<\/body/m))?a[1]:t),n+="</blockquote></div>",e?n:""}l.mailSubstatus.get({nolimit:!0}).$promise.then(function(e){g.subStatuses=e||{count:0,rows:[]}}).catch(function(e){console.error(e)}),g.secret||l.mailAccount.verifySmtp({id:s.id}).$promise.catch(function(e){g.verifySmtp=!1,g.errors.push({message:e.data,type:e.status}),g.errors.push({message:"You can't reply or send an email. Please contact the administrator!",type:"500"})})}e.$inject=["$cookies","$window","$mdDialog","$mdConstant","$translate","account","message","type","api","toasty","$q","Auth","interaction","draftManager"],angular.module("app.dashboards").controller("ComposeMailInteractionDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;switch(p.currentUser=u.getCurrentUser(),p.errors=[],p.separatorKeys=[i.KEY_CODE.ENTER,i.KEY_CODE.COMMA,i.KEY_CODE.TAB],p.searchTextChange=function(n){var t=c.defer(),a=[];return l.cannedAnswer.get({filter:n,OpenchannelAccountId:s.id}).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:n}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.WhatsappAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),t.resolve(a)}).catch(function(e){t.reject(e)}),t.promise},p.selectedItemChange=function(n){if(n){try{_.templateSettings.interpolate=/{{([\s\S]+?)}}/g;var e=_.template(n.value),t={user:p.currentUser,account:s};p.message.body+=" "+e(t),p.ctrlMethods.setText(p.message.body)}catch(e){p.message.body+=" "+n.value,p.ctrlMethods.setText(p.message.body)}p.selectedItem=null}},p.note=function(){p.secret=!0},p.addNote=function(){p.message.body&&a.hide({secret:!0,body:p.message.body})},p.ctrlMethods={},p.message={from:s.phone,to:_.isNil(o.to)||_.isEmpty(o.to)?[]:o.to,body:""},p.send=function(e){p.message.to&&p.message.body&&(p.message.to.length?(n=p.message.body,a.hide({to:p.message.to.join(","),body:n})):d.error("To is mandatory"));var n},p.getContact=function(e){var n="";e.firstName&&e.firstName!==e[s.mapKey]&&(n+=e.firstName+" ");e.lastName&&e.lastName!==e[s.mapKey]&&(n+=e.lastName+" ");return n+="<"+e[s.mapKey]+">"},p.closeDialog=function(){a.cancel()},p.contactSearch=function(e){if(s&&s.ListId){var n="firstName,lastName,phone,mobile";return s.mapKey&&(n+=","+s.mapKey),l.cmContact.get({ListId:s.ListId,nolimit:!0,filter:e,fields:n}).$promise.then(function(e){return e.rows})}return[]},p.transformContact=function(e){var n=e;if(_.isObject(n))return e[s.mapKey];return n},r){case"note":p.note()}}e.$inject=["$cookies","$timeout","$window","$mdDialog","$mdConstant","account","message","type","api","toasty","$q","$translate","Auth"],angular.module("app.dashboards").controller("ComposeOpenchannelInteractionDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;switch(p.currentUser=u.getCurrentUser(),p.errors=[],p.separatorKeys=[i.KEY_CODE.ENTER,i.KEY_CODE.COMMA,i.KEY_CODE.TAB],p.searchTextChange=function(n){var t=c.defer(),a=[];return l.cannedAnswer.get({filter:n,SmsAccountId:s.id}).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:n}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.WhatsappAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),t.resolve(a)}).catch(function(e){t.reject(e)}),t.promise},p.selectedItemChange=function(n){if(n){try{_.templateSettings.interpolate=/{{([\s\S]+?)}}/g;var e=_.template(n.value),t={user:p.currentUser,account:s};p.message.body+=" "+e(t),p.ctrlMethods.setText(p.message.body)}catch(e){p.message.body+=" "+n.value,p.ctrlMethods.setText(p.message.body)}p.selectedItem=null}},p.note=function(){p.secret=!0},p.addNote=function(){p.message.body&&a.hide({secret:!0,body:p.message.body})},p.ctrlMethods={},p.message={from:s.phone,to:_.isNil(o.to)||_.isEmpty(o.to)?[]:o.to,body:""},p.send=function(e){p.message.to&&p.message.body&&(p.message.to.length?(n=p.message.body,a.hide({to:p.message.to.join(","),body:n})):d.error("To is mandatory"));var n},p.getContact=function(e){var n="";e.firstName&&e.firstName!==e.mobile&&(n+=e.firstName+" ");e.lastName&&e.lastName!==e.mobile&&(n+=e.lastName+" ");return n+="<"+e.mobile+">"},p.closeDialog=function(){a.cancel()},p.contactSearch=function(e){if(s&&s.ListId)return l.cmContact.get({ListId:s.ListId,nolimit:!0,filter:e,fields:"firstName,lastName,mobile"}).$promise.then(function(e){return e.rows});return[]},p.transformContact=function(e){var n=e;if(_.isObject(n))return e.mobile;if(t=n,/^(\+|\d)[0-9]{7,16}$/.test(t))return n;var t;return d.error("Mobile "+n+" is not valid"),null},r){case"note":p.note()}}e.$inject=["$cookies","$timeout","$window","$mdDialog","$mdConstant","account","message","type","api","toasty","$q","$translate","Auth"],angular.module("app.dashboards").controller("ComposeSmsInteractionDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;switch(p.currentUser=u.getCurrentUser(),p.errors=[],p.separatorKeys=[i.KEY_CODE.ENTER,i.KEY_CODE.COMMA,i.KEY_CODE.TAB],p.searchTextChange=function(n){var t=c.defer(),a=[];return l.cannedAnswer.get({filter:n,WhatsappAccountId:s.id}).$promise.then(function(e){return a=_.concat(a,e.rows),l.cannedAnswer.get({filter:n}).$promise}).then(function(e){a=_.concat(a,_.filter(e.rows,function(e){return!(e.MailAccountId||e.FaxAccountId||e.SmsAccountId||e.WhatsappAccountId||e.OpenchannelAccountId||e.ChatWebsiteId)})),t.resolve(a)}).catch(function(e){t.reject(e)}),t.promise},p.selectedItemChange=function(n){if(n){try{_.templateSettings.interpolate=/{{([\s\S]+?)}}/g;var e=_.template(n.value),t={user:p.currentUser,account:s};p.message.body+=" "+e(t),p.ctrlMethods.setText(p.message.body)}catch(e){p.message.body+=" "+n.value,p.ctrlMethods.setText(p.message.body)}p.selectedItem=null}},p.note=function(){p.secret=!0},p.addNote=function(){p.message.body&&a.hide({secret:!0,body:p.message.body})},p.ctrlMethods={},p.message={from:s.phone,to:_.isNil(o.to)||_.isEmpty(o.to)?[]:o.to,body:""},p.send=function(e){p.message.to&&p.message.body&&(p.message.to.length?(n=p.message.body,a.hide({to:p.message.to.join(","),body:n})):d.error("To is mandatory"));var n},p.getContact=function(e){var n="";e.firstName&&e.firstName!==e.mobile&&(n+=e.firstName+" ");e.lastName&&e.lastName!==e.mobile&&(n+=e.lastName+" ");return n+="<"+e.mobile+">"},p.closeDialog=function(){a.cancel()},p.contactSearch=function(e){if(s&&s.ListId)return l.cmContact.get({ListId:s.ListId,nolimit:!0,filter:e,fields:"firstName,lastName,mobile"}).$promise.then(function(e){return e.rows});return[]},p.transformContact=function(e){var n=e;if(_.isObject(n))return e.mobile;if(t=n,/^(\+|\d)[0-9]{7,16}$/.test(t))return n;var t;return d.error("Mobile "+n+" is not valid"),null},r){case"note":p.note()}}e.$inject=["$cookies","$timeout","$window","$mdDialog","$mdConstant","account","message","type","api","toasty","$q","$translate","Auth"],angular.module("app.dashboards").controller("ComposeWhatsappInteractionDialogController",e)}(),function(){"use strict";function e(n,t,a,e,i,s,o){var r=this;function l(e){n.hide(e)}r.errors=[],r.dispositions=[],r.interaction=angular.copy(e),r.interaction.disposition||(r.interaction.disposition=null),r.channel=i,r.apiRoute=r.channel+"Interaction",r.apiAccountRoute=r.channel+("chat"===r.channel?"Website":"Account"),r.accountProperty=_.capitalize(r.channel)+("chat"===r.channel?"Website":"Account")+"Id",r.firstLevelDisposition=null,r.mandatoryDisposition=!1,r.mandatoryDispositionPause="",r.wasUserInPause=s.voicePause||s.chatPause||s.mailPause||s.openchannelPause||s.faxPause,r.onInit=function(){var n=[],t={fields:"id,name,level,ParentId",sort:"name",nolimit:!0};t[r.accountProperty]=e[r.accountProperty],a[r.apiAccountRoute].get({id:e[r.accountProperty]}).$promise.then(function(e){return r.mandatoryDisposition=e.mandatoryDisposition,r.mandatoryDisposition&&(r.mandatoryDispositionPause=e.mandatoryDispositionPause.name),a.disposition.get(t).$promise}).then(function(e){return e.rows.length&&(n=_.concat(n,e.rows)),a.disposition.get({MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",WhatsappAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",ListId:"null",nolimit:!0}).$promise}).then(function(e){e.rows.length&&(n=_.concat(n,e.rows))}).catch(function(e){console.error(e)}).finally(function(){r.dispositions=_.orderBy(n,["name"],["asc"]),r.mandatoryDisposition&&!r.wasUserInPause&&a.user.pause({id:s.id,type:r.mandatoryDispositionPause||"DEFAULT PAUSE"}).$promise.then(function(e){}).catch(function(e){console.error(e)})})},r.onDispositionChange=function(e){"first"===e?(r.anySecondLevelDisposition=!!r.firstLevelDisposition&&_.some(r.dispositions,["ParentId",r.firstLevelDisposition.id]),r.firstLevelDisposition||(r.secondLevelDisposition=void 0)):"second"===e&&(r.anyThirdLevelDisposition=_.some(r.dispositions,["ParentId",r.secondLevelDisposition.id]))},r.clearDispositionSelection=function(e){"second"===e?(r.secondLevelDisposition=void 0,r.thirdLevelDisposition=void 0):"third"===e&&(r.thirdLevelDisposition=void 0)},r.saveDisposition=function(){r.errors=[],r.interaction.UserId=s.id,r.interaction.closed=!0,r.interaction.closeReason="agent",r.interaction.disposition=r.firstLevelDisposition?r.firstLevelDisposition.name:null,r.interaction.secondDisposition=r.secondLevelDisposition?r.secondLevelDisposition.name:void 0,r.interaction.thirdDisposition=r.thirdLevelDisposition?r.thirdLevelDisposition.name:void 0,a[r.apiRoute]?a[r.apiRoute].update(_.pick(r.interaction,["MailAccountId","FaxAccountId","SmsAccountId","WhatsappAccountId","ChatWebsiteId","OpenchannelAccountId","closed","closeReason","disposition","secondDisposition","thirdDisposition","id","note","UserId"])).$promise.then(function(e){r.interaction=e,"mail"===r.channel&&o.removeByInteraction(r.interaction.id),t.success({title:"Interaction properly closed!",msg:"Interaction has been closed!"})}).then(function(){l(!0)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.variable.update"}];for(var n=0;n<e.data.errors.length;n++)t.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.variable.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})}):l(!1)},r.closeDialog=l}e.$inject=["$mdDialog","toasty","api","interaction","channel","user","draftManager"],angular.module("app.dashboards").controller("DisposeInteractionDialogController",e)}(),function(){"use strict";function e(n,t,e,a,i,s){var o=this;function r(e){n.hide(e)}o.errors=[],o.tags=s,o.interaction=angular.copy(a),o.interaction.Tags=_.map(o.interaction.Tags,function(e){return{id:e.id,name:e.name,color:e.color}}),o.channel=i,o.autocompleteRequireMatch=!0,o.saveTag=function(){{if(o.errors=[],e[o.apiRoute])return e[o.apiRoute].addTags({id:o.interaction.id,ids:_.map(o.interaction.Tags,"id")}).$promise.then(function(){t.success({title:"Interaction properly tagged!",msg:"Interaction has been tagged!"}),a.Tags=o.interaction.Tags,r(!0)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)t.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.variable.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})});r(!1)}},o.closeDialog=r,o.apiRoute=o.channel+"Interaction"}e.$inject=["$mdDialog","toasty","api","interaction","channel","tags"],angular.module("app.dashboards").controller("TagInteractionDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r,l,d){var c=this;function m(e){n.hide(e)}c.channel=s.toLowerCase(),c.message=o,c.account=r,c.agents=l,c.queues=d,c.transfer={id:0,type:c.account.queueTransfer?"queue":"agent"},c.onTransfer=function(){m(!0),e(function(){var e="agent"===c.transfer.type?"agentNotify":c.channel+"QueueNotify";return a.rpc[e]({id:c.transfer.id,messageId:c.message.id,channel:c.channel}).$promise.then(function(){i.success({title:t.instant("DASHBOARDS.INFO"),msg:"queue"===c.transfer.type?t.instant("DASHBOARDS.NOTIFICATIONS.TRANSFER_QUEUE_EXECUTED"):t.instant("DASHBOARDS.NOTIFICATIONS.TRANSFER_AGENT_EXECUTED")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.rpc.notify"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.rpc.notify",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},5e3)},c.closeDialog=m}e.$inject=["$mdDialog","$timeout","$translate","api","toasty","channel","message","account","agents","queues"],angular.module("app.dashboards").controller("TransferMessageDialogController",e)}(),function(){"use strict";function e(i,m,s,e,u,o,r,t,n,a,l){var p=this;function d(){try{i.$parent.$parent.$parent.vm.updateLocalStorage()}catch(e){o.error({title:"ERROR UPDATE LOCAL TABS",msg:"Error updating locally stored tabs"})}}function c(t,e){var n,a,l=[],d=[],c=r.getCurrentUser();(n=c,a=m.defer(),p.project.sendUnpauseOnSubmit?u.user.unpause({id:n.id}).$promise.then(function(e){a.resolve()}).catch(function(e){console.log("err"),a.resolve()}):a.resolve(),a.promise).then(function(){return u.jscriptySessionReport.save({starttime:p.starttime,membername:p.call&&p.call.membername?p.call.membername:c.name,calleridname:p.call&&p.call.calleridname?p.call.calleridname:void 0,calleridnum:p.call&&p.call.calleridnum?p.call.calleridnum:void 0,queue:p.call&&p.call.queue?p.call.queue:void 0,uniqueid:p.call&&p.call.uniqueid?p.call.uniqueid:void 0,VoiceQueueId:p.call&&p.call["xmd-voicequeueid"]?p.call["xmd-voicequeueid"]:void 0,ProjectId:p.project&&p.project.id?p.project.id:void 0,projectname:p.project&&p.project.name?p.project.name:void 0,ContactId:p.contact&&p.contact.id?p.contact.id:void 0,completed:e}).$promise}).then(function(e){if(e)for(var n=p.getResponseSheetHeaders(),t=p.getResponseSheetRow(),a=p.getQuestionWithResponseList(),i=0;i<n.length;i+=1)if(!_.isEmpty(String(t[i]))){try{l.push(u.jscriptyQuestionReport.save({question:n[i],answer:"date"===a[i].type?moment(String(t[i])).format("YYYY-MM-DD"):"time"===a[i].type?moment(String(t[i])).format("HH:mm"):String(t[i]),questionId:a[i].id,membername:p.call&&p.call.membername?p.call.membername:c.name,calleridname:p.call&&p.call.calleridname?p.call.calleridname:void 0,calleridnum:p.call&&p.call.calleridnum?p.call.calleridnum:void 0,queue:p.call&&p.call.queue?p.call.queue:void 0,uniqueid:p.call&&p.call.uniqueid?p.call.uniqueid:void 0,SessionId:e.id,ProjectId:p.project.id,projectname:p.project.name}))}catch(e){console.error("Unable to convert question",e)}for(var s=String(t[i]).split(";"),o=0;o<s.length;o+=1){var r=s[o].trim();try{d.push(u.jscriptyAnswerReport.save({question:n[i],questionId:a[i].id,answer:"date"===a[i].type?moment(r).format("YYYY-MM-DD"):"time"===a[i].type?moment(r).format("HH:mm"):r,membername:p.call&&p.call.membername?p.call.membername:c.name,calleridname:p.call&&p.call.calleridname?p.call.calleridname:void 0,calleridnum:p.call&&p.call.calleridnum?p.call.calleridnum:void 0,queue:p.call&&p.call.queue?p.call.queue:void 0,uniqueid:p.call&&p.call.uniqueid?p.call.uniqueid:void 0,SessionId:e.id,ProjectId:p.project.id,projectname:p.project.name}))}catch(e){console.error("Unable to convert answer",e)}}}return m.all(l).then(function(){return m.all(d).then(function(){return e})})}).then(function(e){e?t.resolve(!0):t.reject()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.contact.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.contact.save",msg:e.data?JSON.stringify(e.data.message):e.toString()});t.reject()})}p.formViewer={},p.showResetButton=!0,p.showIncompleteSubmitButton=!1,p.detectBrowser=l.detectBrowser(),p.onSubmit=function(e,n){var t=m.defer();if(n){var a=s.confirm().title("Would you like to save your survey?").textContent("").ariaLabel("survey").targetEvent(e).ok("YES").cancel("NO");s.show(a).then(function(){c(t,!1)},function(){t.resolve()})}else c(t,!0);return t.promise.then(function(e){e&&(o.success({title:"Session saved",msg:"Your survey session has been properly saved!"}),function(e){try{i.$parent.$parent.$parent.vm.removeTab(e)}catch(e){o.error({title:"ERROR REMOVE TAB",msg:"Error while removing tab"})}}(p.tab))}).catch(function(e){o.error({title:"Session save error",msg:"There has been an error while trying to save your survey session!"})})},p.openContact=function(e,n){try{i.$parent.$parent.$parent.vm.addContactTab(n)}catch(e){o.error({title:"ERROR OPEN CONTACT",msg:"Jscripty can't open the contact"})}},p.isJsonString=function(e){if(_.isNil(e))return!1;try{JSON.parse(e)}catch(e){return!1}return!0},p.getResponseSheet=function(){return e.getResponseSheet(p.project.formData,p.project.responseData,!1)},p.getResponseSheetRow=function(){return e.getResponseSheetRow(p.project.formData,p.project.responseData)},p.getResponseSheetHeaders=function(){return e.getResponseSheetHeaders(p.project.formData,!1)},p.getQuestionWithResponseList=function(){return e.getQuestionWithResponseList(p.project.formData,p.project.responseData)},p.init=function(e){p.tab=e,p.tab&&(p.call=p.tab.call,p.starttime=p.tab.openedAt,p.contact=p.tab.contact,p.project=p.tab.project,p.project&&(_.isObjectLike(p.project.formData)?p.project.formData=p.project.formData:p.isJsonString(p.project.formData)?p.project.formData=JSON.parse(p.project.formData):p.project.formData=void 0,p.project.responseData=p.project.responseData||{},void 0!==p.project.currentPage&&a(function(){n.$broadcast("mwForm.pageEvents.changePage",{page:p.project.currentPage})}),i.$on("mwForm.pageEvents.pageCurrentChanged",function(e,n){if(n.currentPage&&(p.project.currentPage=n.currentPage.number-1,d(),p.project.enableUncompleteSave&&(1<=n.currentPage.number&&n.currentPage.number<p.project.formData.pages.length?p.showIncompleteSubmitButton=!0:p.showIncompleteSubmitButton=!1),p.project.formData&&p.project.formData.pages))for(var t=0,a=p.project.formData.pages.length;t<a;t++)if(n.currentPage.number<t+1&&p.project.formData.pages[t].elements)for(var i=0,s=p.project.formData.pages[t].elements.length;i<s;i++)"question"===p.project.formData.pages[t].elements[i].type&&p.project.formData.pages[t].elements[i].question&&delete p.project.responseData[p.project.formData.pages[t].elements[i].question.id]})))},p.resetViewer=function(e){if(p.formViewer.reset){var n=s.confirm().title(t.instant("JSCRIPTY.DO_YOU_WANT_TO_RESET_SESSION")).content(t.instant("JSCRIPTY.ALL_SURVEY_DATA_WILL_BE_LOST")).textContent("").ariaLabel("survey").targetEvent(e).ok(t.instant("JSCRIPTY.YES")).cancel(t.instant("JSCRIPTY.NO"));s.show(n).then(function(){p.showIncompleteSubmitButton=!1,p.project.currentPage=void 0,d(),p.formViewer.reset()})}}}e.$inject=["$scope","$q","$mdDialog","mwFormResponseUtils","api","toasty","Auth","$translate","$rootScope","$timeout","msUtils"],angular.module("app.dashboards").controller("AgentGeneralJscriptyController",e)}(),function(){"use strict";function e(t,a,e,n,i){var s=this;function o(){return function(e){if(404===e.status)a.info({title:t.instant("DASHBOARDS.ATTENTION"),msg:t.instant("DASHBOARDS.ACCEPT_ELSEWHERE")});else if(e.data&&e.data.errors&&e.data.errors.length){s.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelMessage.accept"}];for(var n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelMessage.accept",msg:e.data?JSON.stringify(e.data.message):e.toString()})}}s.notification=e,s.user=i.getCurrentUser(),s.accept=function(e){{if(n[s.notification.channel+"Message"])return n[s.notification.channel+"Message"].accept({id:s.notification.id,UserId:s.user.id,manual:!0}).$promise.then(function(e){a.success({title:"Message properly accepted!",msg:"Message has been accepted!"})}).catch(o());a.error({title:"API:ERROR",msg:"API accept message not found: "+s.notification.channel+"Message"})}},s.reject=function(e){{if(n[s.notification.channel+"Message"])return n[s.notification.channel+"Message"].reject({id:s.notification.id,UserId:s.user.id}).$promise.then(function(e){a.success({title:"Message properly rejected!",msg:"Message has been rejected!"})}).catch(o());a.error({title:"API:ERROR",msg:"API reject message not found: "+s.notification.channel+"Message"})}}}e.$inject=["$translate","toasty","notification","api","Auth"],angular.module("app.dashboards").controller("NotificationController",e)}(),function(){"use strict";angular.module("app.dashboards").controller("AgentGeneralPopupController",function(){var n=this;n.init=function(e){n.tab=e,n.tab&&(n.tab.saved=!0,n.html=n.tab.html)}})}(),function(){"use strict";function e(e,n,t,a){var i=this,s=[];function o(e,n){e.closed||e.UserId||!n||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(s,e.id)||(i.inbound.talking+=1,s.push(e.id),!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),e.closed&&"abandoned"===e.disposition?(i.inbound.abandoned+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)):e.closed&&!e.UserId&&e.disposition?(i.inbound.unmanaged+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)):e.closed&&e.UserId&&(i.inbound.sumBillable+=moment(e.closedAt).diff(moment(e.read1stAt),i.config.unit),i.inbound.sumHoldTime+=moment(e.read1stAt).diff(moment(e.createdAt),i.config.unit),i.inbound.answered+=1,!n&&i.inbound.talking&&(i.inbound.talking-=1)),n&&(i.inbound.total+=1)}function r(){i.inbound.abandonRate=Math.round((i.inbound.abandoned+i.inbound.unmanaged)/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.answerRate=Math.round(i.inbound.answered/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.avgHoldTime=moment.duration(Math.round(i.inbound.sumHoldTime/i.inbound.answered),i.config.unit).format(i.config.format,i.config),i.inbound.avgTalkTime=moment.duration(Math.round(i.inbound.sumBillable/i.inbound.answered),i.config.unit).format(i.config.format,i.config)}function l(e){return!!_.some(i.chatWebsites,{id:_.toNumber(e.ChatWebsiteId)})}function d(e){var n=moment().utcOffset(0,!0).startOf("day"),t=moment().utcOffset(0,!0).endOf("day");return moment(e).utcOffset(0,!0).isBetween(n,t)}i.config={format:"hh:mm:ss",unit:"seconds",trim:!1},i.inbound={waiting:0,talking:0,answered:0,abandoned:0,unmanaged:0,sumHoldTime:0,sumBillable:0,total:0,avgHoldTime:"00:00:00",avgTalkTime:"00:00:00",answerRate:0,abandonRate:0},i.chatWebsites=a?_.keyBy(a.rows?a.rows:[],"id"):{},i.onSaveChatInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!0),r())},i.onUpdateChatInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!1),r())},n.on("chatInteraction:save",i.onSaveChatInteraction),n.on("chatInteraction:update",i.onUpdateChatInteraction),function(){if(0<Object.keys(i.chatWebsites).length)for(var e=0;e<t.rows.length;e+=1)if(l(t.rows[e])){var n=t.rows[e];o(n,!0),r()}}(),e.$on("$destroy",function(){n.removeAllListeners("chatInteraction:save"),n.removeAllListeners("chatInteraction:update")})}e.$inject=["$scope","socket","chatInteractions","chatWebsites"],angular.module("app.dashboards").controller("UserChatDashboardGeneralController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r){var l=this;function d(){s({queues:l.outboundQueues,rpcQueues:l.rpcQueues}).then(function(e){l.inbound=e})}function c(){o({rpcCampaigns:l.rpcCampaigns}).then(function(e){l.ivr=e})}l.outboundQueues=a?_.keyBy(a.rows?a.rows:[],"id"):{},l.rpcQueues=i?_.keyBy(i.rows?i.rows:[],"id"):{},l.rpcCampaigns=r?_.keyBy(r.rows?r.rows:[],"id"):{},l.ivr={originated:0,limitCalls:0},l.inbound={waiting:0,talking:0,pTalking:0,answered:0,abandoned:0,unmanaged:0,sumHoldTime:0,sumBillable:0,total:0,avgHoldTime:"00:00:00",avgTalkTime:"00:00:00",answerRate:0,abandonRate:0,outboundDropCallsDayCallersExit:0,outboundDropCallsDayTimeout:0},l.onSaveQueue=function(e){l.outboundQueues[e.id]&&l.rpcQueues[e.id]&&(l.rpcQueues[e.id]=e)},l.onSaveCampaign=function(e){l.rpcCampaigns[e.id]&&(l.rpcCampaigns[e.id]=e)},t.onWithoutApply("voice_queue:save",l.onSaveQueue),l.interval=n(function(){d(),c()},999),t.onWithoutApply("campaign:save",l.onSaveCampaign),d(),c(),e.$on("$destroy",function(){t.removeListener("voice_queue:save",l.onSaveQueue),t.removeAllListeners("campaign:save"),l.interval&&n.cancel(l.interval)})}e.$inject=["$scope","$interval","socket","outboundQueues","rpcQueues","initializeRealtimeQueue","initializeRealtimeCampaign","rpcCampaigns"],angular.module("app.dashboards").controller("UserVoiceDashboardDialerController",e)}(),function(){"use strict";function e(e,n,t,a){var i=this,s=[];function o(e,n){e.closed||e.UserId||!n||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(s,e.id)||(i.inbound.talking+=1,s.push(e.id),!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),e.closed&&e.UserId&&(i.inbound.sumBillable+=moment(e.closedAt).diff(moment(e.read1stAt),i.config.unit),i.inbound.sumHoldTime+=moment(e.read1stAt).diff(moment(e.createdAt),i.config.unit),i.inbound.answered+=1,!n&&i.inbound.talking&&(i.inbound.talking-=1)),e.closed&&!e.UserId&&(i.inbound.unmanaged+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),n&&(i.inbound.total+=1)}function r(){i.inbound.abandonRate=Math.round((i.inbound.abandoned+i.inbound.unmanaged)/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.answerRate=Math.round(i.inbound.answered/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.avgHoldTime=moment.duration(Math.round(i.inbound.sumHoldTime/i.inbound.answered),i.config.unit).format(i.config.format,i.config),i.inbound.avgTalkTime=moment.duration(Math.round(i.inbound.sumBillable/i.inbound.answered),i.config.unit).format(i.config.format,i.config)}function l(e){return!!_.some(i.faxAccounts,{id:_.toNumber(e.FaxAccountId)})}function d(e){var n=moment().utcOffset(0,!0).startOf("day"),t=moment().utcOffset(0,!0).endOf("day");return moment(e).utcOffset(0,!0).isBetween(n,t)}i.config={format:"hh:mm:ss",unit:"seconds",trim:!1},i.inbound={waiting:0,talking:0,answered:0,abandoned:0,unmanaged:0,sumHoldTime:0,sumBillable:0,total:0,avgHoldTime:"00:00:00",avgTalkTime:"00:00:00",answerRate:0,abandonRate:0},i.faxAccounts=a?_.keyBy(a.rows?a.rows:[],"id"):{},i.onSaveFaxInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!0),r())},i.onUpdateFaxInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!1),r())},n.on("faxInteraction:save",i.onSaveFaxInteraction),n.on("faxInteraction:update",i.onUpdateFaxInteraction),function(){if(0<Object.keys(i.faxAccounts).length)for(var e=0;e<t.rows.length;e+=1)if(l(t.rows[e])){var n=t.rows[e];o(n,!0),r()}}(),e.$on("$destroy",function(){n.removeAllListeners("faxInteraction:save"),n.removeAllListeners("faxInteraction:update")})}e.$inject=["$scope","socket","faxInteractions","faxAccounts"],angular.module("app.dashboards").controller("UserFaxDashboardGeneralController",e)}(),function(){"use strict";function e(e,n,t,a){var i=this,s=[];function o(e,n){e.closed||e.UserId||!n||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(s,e.id)||(i.inbound.talking+=1,s.push(e.id),!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),e.closed&&e.UserId&&(i.inbound.sumBillable+=moment(e.closedAt).diff(moment(e.read1stAt),i.config.unit),i.inbound.sumHoldTime+=moment(e.read1stAt).diff(moment(e.createdAt),i.config.unit),i.inbound.answered+=1,!n&&i.inbound.talking&&(i.inbound.talking-=1)),e.closed&&!e.UserId&&(i.inbound.unmanaged+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),n&&(i.inbound.total+=1)}function r(){i.inbound.abandonRate=Math.round((i.inbound.abandoned+i.inbound.unmanaged)/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.answerRate=Math.round(i.inbound.answered/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.avgHoldTime=moment.duration(Math.round(i.inbound.sumHoldTime/i.inbound.answered),i.config.unit).format(i.config.format,i.config),i.inbound.avgTalkTime=moment.duration(Math.round(i.inbound.sumBillable/i.inbound.answered),i.config.unit).format(i.config.format,i.config)}function l(e){return!!_.some(i.mailAccounts,{id:_.toNumber(e.MailAccountId)})}function d(e){var n=moment().utcOffset(0,!0).startOf("day"),t=moment().utcOffset(0,!0).endOf("day");return moment(e).utcOffset(0,!0).isBetween(n,t)}i.config={format:"hh:mm:ss",unit:"seconds",trim:!1},i.inbound={waiting:0,talking:0,answered:0,abandoned:0,unmanaged:0,sumHoldTime:0,sumBillable:0,total:0,avgHoldTime:"00:00:00",avgTalkTime:"00:00:00",answerRate:0,abandonRate:0},i.mailAccounts=a?_.keyBy(a.rows?a.rows:[],"id"):{},i.onSaveMailInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!0),r())},i.onUpdateMailInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!1),r())},n.on("mailInteraction:save",i.onSaveMailInteraction),n.on("mailInteraction:update",i.onUpdateMailInteraction),function(){if(0<Object.keys(i.mailAccounts).length)for(var e=0;e<t.rows.length;e+=1)if(l(t.rows[e])){var n=t.rows[e];o(n,!0),r()}}(),e.$on("$destroy",function(){n.removeAllListeners("mailInteraction:save"),n.removeAllListeners("mailInteraction:update")})}e.$inject=["$scope","socket","mailInteractions","mailAccounts"],angular.module("app.dashboards").controller("UserMailDashboardGeneralController",e)}(),function(){"use strict";function e(e,n,t,a){var i=this,s=[];function o(e,n){e.closed||e.UserId||!n||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(s,e.id)||(i.inbound.talking+=1,s.push(e.id),!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),e.closed&&e.UserId&&(i.inbound.sumBillable+=moment(e.closedAt).diff(moment(e.read1stAt),i.config.unit),i.inbound.sumHoldTime+=moment(e.read1stAt).diff(moment(e.createdAt),i.config.unit),i.inbound.answered+=1,!n&&i.inbound.talking&&(i.inbound.talking-=1)),e.closed&&!e.UserId&&(i.inbound.unmanaged+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),n&&(i.inbound.total+=1)}function r(){i.inbound.abandonRate=Math.round((i.inbound.abandoned+i.inbound.unmanaged)/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.answerRate=Math.round(i.inbound.answered/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.avgHoldTime=moment.duration(Math.round(i.inbound.sumHoldTime/i.inbound.answered),i.config.unit).format(i.config.format,i.config),i.inbound.avgTalkTime=moment.duration(Math.round(i.inbound.sumBillable/i.inbound.answered),i.config.unit).format(i.config.format,i.config)}function l(e){return!!_.some(i.openchannelAccounts,{id:_.toNumber(e.OpenchannelAccountId)})}function d(e){var n=moment().utcOffset(0,!0).startOf("day"),t=moment().utcOffset(0,!0).endOf("day");return moment(e).utcOffset(0,!0).isBetween(n,t)}i.config={format:"hh:mm:ss",unit:"seconds",trim:!1},i.inbound={waiting:0,talking:0,answered:0,abandoned:0,unmanaged:0,sumHoldTime:0,sumBillable:0,total:0,avgHoldTime:"00:00:00",avgTalkTime:"00:00:00",answerRate:0,abandonRate:0},i.openchannelAccounts=a?_.keyBy(a.rows?a.rows:[],"id"):{},i.onSaveOpenchannelInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!0),r())},i.onUpdateOpenchannelInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!1),r())},n.on("openchannelInteraction:save",i.onSaveOpenchannelInteraction),n.on("openchannelInteraction:update",i.onUpdateOpenchannelInteraction),function(){if(0<Object.keys(i.openchannelAccounts).length)for(var e=0;e<t.rows.length;e+=1)if(l(t.rows[e])){var n=t.rows[e];o(n,!0),r()}}(),e.$on("$destroy",function(){n.removeAllListeners("openchannelInteraction:save"),n.removeAllListeners("openchannelInteraction:update")})}e.$inject=["$scope","socket","openchannelInteractions","openchannelAccounts"],angular.module("app.dashboards").controller("UserOpenchannelDashboardGeneralController",e)}(),function(){"use strict";function e(e,n,t,a){var i=this,s=[];function o(e,n){e.closed||e.UserId||!n||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(s,e.id)||(i.inbound.talking+=1,s.push(e.id),!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),e.closed&&e.UserId&&(i.inbound.sumBillable+=moment(e.closedAt).diff(moment(e.read1stAt),i.config.unit),i.inbound.sumHoldTime+=moment(e.read1stAt).diff(moment(e.createdAt),i.config.unit),i.inbound.answered+=1,!n&&i.inbound.talking&&(i.inbound.talking-=1)),e.closed&&!e.UserId&&(i.inbound.unmanaged+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),n&&(i.inbound.total+=1)}function r(){i.inbound.abandonRate=Math.round((i.inbound.abandoned+i.inbound.unmanaged)/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.answerRate=Math.round(i.inbound.answered/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.avgHoldTime=moment.duration(Math.round(i.inbound.sumHoldTime/i.inbound.answered),i.config.unit).format(i.config.format,i.config),i.inbound.avgTalkTime=moment.duration(Math.round(i.inbound.sumBillable/i.inbound.answered),i.config.unit).format(i.config.format,i.config)}function l(e){return!!_.some(i.smsAccounts,{id:_.toNumber(e.SmsAccountId)})}function d(e){var n=moment().utcOffset(0,!0).startOf("day"),t=moment().utcOffset(0,!0).endOf("day");return moment(e).utcOffset(0,!0).isBetween(n,t)}i.config={format:"hh:mm:ss",unit:"seconds",trim:!1},i.inbound={waiting:0,talking:0,answered:0,abandoned:0,unmanaged:0,sumHoldTime:0,sumBillable:0,total:0,avgHoldTime:"00:00:00",avgTalkTime:"00:00:00",answerRate:0,abandonRate:0},i.smsAccounts=a?_.keyBy(a.rows?a.rows:[],"id"):{},i.onSaveSmsInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!0),r())},i.onUpdateSmsInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!1),r())},n.on("smsInteraction:save",i.onSaveSmsInteraction),n.on("smsInteraction:update",i.onUpdateSmsInteraction),function(){if(0<Object.keys(i.smsAccounts).length)for(var e=0;e<t.rows.length;e+=1)if(l(t.rows[e])){var n=t.rows[e];o(n,!0),r()}}(),e.$on("$destroy",function(){n.removeAllListeners("smsInteraction:save"),n.removeAllListeners("smsInteraction:update")})}e.$inject=["$scope","socket","smsInteractions","smsAccounts"],angular.module("app.dashboards").controller("UserSmsDashboardGeneralController",e)}(),function(){"use strict";function e(t){var i=[],s=function(){var t=i[0],a={waiting:0,talking:0,pTalking:0,answered:0,abandoned:0,unmanaged:0,sumHoldTime:0,sumBillable:0,total:0,avgHoldTime:"00:00:00",avgTalkTime:"00:00:00",answerRate:0,abandonRate:0,originated:0,outboundDropCallsDayCallersExit:0,outboundDropCallsDayTimeout:0};_.forIn(t.queues,function(e,n){t.rpcQueues[n]&&(a.waiting+=t.rpcQueues[n].waiting||0,a.talking+=(t.rpcQueues[n].talking||0)+(t.rpcQueues[n].pTalking||0),a.answered+=t.rpcQueues[n].answered||0,a.abandoned+=t.rpcQueues[n].abandoned||0,a.sumHoldTime+=t.rpcQueues[n].sumHoldTime||0,a.sumBillable+=t.rpcQueues[n].sumBillable||0,a.total+=t.rpcQueues[n].total||0,a.originated+=t.rpcQueues[n].originated||0,a.outboundDropCallsDayCallersExit+=t.rpcQueues[n].outboundDropCallsDayCallersExit||0,a.outboundDropCallsDayTimeout+=t.rpcQueues[n].outboundDropCallsDayTimeout||0)});var e=a.total-a.answered-a.abandoned;a.unmanaged=0<e?e:0,a.avgHoldTime=Math.round(0<a.total?a.sumHoldTime/a.total:0),a.avgHoldTime=new Date(1e3*a.avgHoldTime).toISOString().substr(11,8),a.avgTalkTime=Math.round(0<a.answered?a.sumBillable/a.answered:0),a.avgTalkTime=new Date(1e3*a.avgTalkTime).toISOString().substr(11,8),a.answerRate=Math.round((0<a.total?a.answered/a.total*100:0)*Math.pow(10,1))/Math.pow(10,1),a.abandonRate=Math.round((0<a.total?a.abandoned/a.total*100:0)*Math.pow(10,1))/Math.pow(10,1),a.outboundDropRate=Math.round((0<a.total?a.outboundDropCallsDayTimeout/a.total*100:0)*Math.pow(10,1))/Math.pow(10,1),a.outboundAbandonRate=Math.round((0<a.total?a.outboundDropCallsDayCallersExit/a.total*100:0)*Math.pow(10,1))/Math.pow(10,1),a.outboundanswerRate=0<100-a.outboundDropRate-a.outboundAbandonRate&&a.total?100-a.outboundDropRate-a.outboundAbandonRate:0,i.shift(),t.defer.resolve(a),0<i.length&&s()};return function(e){var n=t.defer();return i.push({queues:e.queues,rpcQueues:e.rpcQueues,defer:n}),1===i.length&&s(),n.promise}}function n(t){var i=[],s=function(){var t=i[0],a={originated:0,limitCalls:0};_.forIn(t.rpcCampaigns,function(e,n){t.rpcCampaigns[n]&&(a.originated+=t.rpcCampaigns[n].originated||0,a.limitCalls+=t.rpcCampaigns[n].limitCalls||0)}),i.shift(),t.defer.resolve(a),0<i.length&&s()};return function(e){var n=t.defer();return i.push({rpcCampaigns:e.rpcCampaigns,defer:n}),1===i.length&&s(),n.promise}}function t(t,a,e){var i=this;i.license=e,i.onInit=function(){if(i.hasDashboardPermissions=!a.hasRole("user")||a.hasPermission(101),i.hasDashboardPermissions){var e=t.current.name;switch(e){case"app.dashboards.general":n=[],i.license.voice&&n.push("app.dashboards.general.voice"),i.license.dialer&&n.push("app.dashboards.general.dialer"),i.license.chat&&n.push("app.dashboards.general.chat"),i.license.mail&&n.push("app.dashboards.general.mail"),i.license.messaging&&n.push("app.dashboards.general.sms"),i.license.openchannel&&n.push("app.dashboards.general.openchannel"),i.license.fax&&n.push("app.dashboards.general.fax"),i.license.whatsapp&&n.push("app.dashboards.general.whatsapp"),0<n.length&&t.go(_.first(n));break;case"app.dashboards.general.voice":i.selectedTab=0;break;case"app.dashboards.general.dialer":i.selectedTab=1;break;case"app.dashboards.general.chat":i.selectedTab=2;break;case"app.dashboards.general.mail":i.selectedTab=3;break;case"app.dashboards.general.sms":i.selectedTab=4;break;case"app.dashboards.general.openchannel":i.selectedTab=5;break;case"app.dashboards.general.fax":i.selectedTab=6;break;case"app.dashboards.general.whatsapp":i.selectedTab=7}}var n}}e.$inject=["$q"],n.$inject=["$q"],t.$inject=["$state","Auth","license"],angular.module("app.dashboards").factory("initializeRealtimeQueue",e).factory("initializeRealtimeCampaign",n).controller("UserDashboardGeneralController",t)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this;function r(){s({queues:o.inboundQueues,rpcQueues:o.rpcQueues}).then(function(e){o.inbound=e})}o.inboundQueues=t?_.keyBy(t.rows?t.rows:[],"id"):{},o.rpcQueues=a?_.keyBy(a.rows?a.rows:[],"id"):{},o.inbound={waiting:0,talking:0,answered:0,abandoned:0,unmanaged:0,sumHoldTime:0,sumBillable:0,total:0,avgHoldTime:"00:00:00",avgTalkTime:"00:00:00",answerRate:0,abandonRate:0},o.outbound=i||{answered:0,sumBillable:0,sumDuration:0,sumHoldTime:0,total:0},o.onSaveQueue=function(e){o.inboundQueues[e.id]&&o.rpcQueues[e.id]&&(o.rpcQueues[e.id]=e,r())},o.onSaveOutbound=function(e){o.outbound=e},n.on("voice_queue:save",o.onSaveQueue),n.on("voice_outbound:save",o.onSaveOutbound),r(),e.$on("$destroy",function(){n.removeListener("voice_queue:save",o.onSaveQueue),n.removeAllListeners("voice_outbound:save")})}e.$inject=["$scope","socket","inboundQueues","rpcQueues","outbound","initializeRealtimeQueue"],angular.module("app.dashboards").controller("UserVoiceDashboardGeneralController",e)}(),function(){"use strict";function e(e,n,t,a){var i=this,s=[];function o(e,n){e.closed||e.UserId||!n||(i.inbound.waiting+=1),e.closed||!e.UserId||_.includes(s,e.id)||(i.inbound.talking+=1,s.push(e.id),!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),e.closed&&e.UserId&&(i.inbound.sumBillable+=moment(e.closedAt).diff(moment(e.read1stAt),i.config.unit),i.inbound.sumHoldTime+=moment(e.read1stAt).diff(moment(e.createdAt),i.config.unit),i.inbound.answered+=1,!n&&i.inbound.talking&&(i.inbound.talking-=1)),e.closed&&!e.UserId&&(i.inbound.unmanaged+=1,!n&&i.inbound.waiting&&(i.inbound.waiting-=1)),n&&(i.inbound.total+=1)}function r(){i.inbound.abandonRate=Math.round((i.inbound.abandoned+i.inbound.unmanaged)/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.answerRate=Math.round(i.inbound.answered/(i.inbound.total-i.inbound.talking-i.inbound.waiting)*100,-2),i.inbound.avgHoldTime=moment.duration(Math.round(i.inbound.sumHoldTime/i.inbound.answered),i.config.unit).format(i.config.format,i.config),i.inbound.avgTalkTime=moment.duration(Math.round(i.inbound.sumBillable/i.inbound.answered),i.config.unit).format(i.config.format,i.config)}function l(e){return!!_.some(i.whatsappAccounts,{id:_.toNumber(e.WhatsappAccountId)})}function d(e){var n=moment().utcOffset(0,!0).startOf("day"),t=moment().utcOffset(0,!0).endOf("day");return moment(e).utcOffset(0,!0).isBetween(n,t)}i.config={format:"hh:mm:ss",unit:"seconds",trim:!1},i.inbound={waiting:0,talking:0,answered:0,abandoned:0,unmanaged:0,sumHoldTime:0,sumBillable:0,total:0,avgHoldTime:"00:00:00",avgTalkTime:"00:00:00",answerRate:0,abandonRate:0},i.whatsappAccounts=a?_.keyBy(a.rows?a.rows:[],"id"):{},i.onSaveWhatsappInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!0),r())},i.onUpdateWhatsappInteraction=function(e){l(e)&&d(e.createdAt)&&(o(e,!1),r())},n.on("whatsappInteraction:save",i.onSaveWhatsappInteraction),n.on("whatsappInteraction:update",i.onUpdateWhatsappInteraction),function(){if(0<Object.keys(i.whatsappAccounts).length)for(var e=0;e<t.rows.length;e+=1)if(l(t.rows[e])){var n=t.rows[e];o(n,!0),r()}}(),e.$on("$destroy",function(){n.removeAllListeners("whatsappInteraction:save"),n.removeAllListeners("whatsappInteraction:update")})}e.$inject=["$scope","socket","whatsappInteractions","whatsappAccounts"],angular.module("app.dashboards").controller("UserWhatsappDashboardGeneralController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="FAX.EDIT_FAXACCOUNT",g.faxAccount=angular.copy(l),g.faxAccounts=r,g.newFaxAccount=!1,g.faxAccount||(g.faxAccount={waitForTheAssignedAgent:10,notificationSound:!0,queueTransferTimeout:300,agentTransferTimeout:300},g.title="FAX.NEW_FAXACCOUNT",g.newFaxAccount=!0),n.params.id&&(g.faxAccount.FaxAccountId=n.params.id),g.addNewFaxAccount=function(){g.errors=[],d.faxAccount.addAccountApplications(g.faxAccount).$promise.then(function(e){g.faxAccounts.unshift(e.toJSON()),o.success({title:"FaxAccount properly created",msg:g.faxAccount.name?g.faxAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.faxAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveFaxAccount=function(){g.errors=[],d.faxAccount.updateAccountApplications(g.faxAccount).$promise.then(function(e){var n=_.find(g.faxAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"FaxAccount properly saved!",msg:g.faxAccount.name?g.faxAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.faxAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteFaxAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The faxAccount will be deleted.").ariaLabel("Delete FaxAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.faxAccount.delete({id:g.faxAccount.id}).$promise.then(function(){_.remove(g.faxAccounts,{id:g.faxAccount.id}),o.success({title:"FaxAccount properly deleted!",msg:(g.faxAccount.name||"faxAccount")+" has been deleted!"}),v(g.faxAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.faxAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.trunks=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.trunks=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.trunks,{id:e.resourceId})}),t=null;if(g.faxAccount&&(t=_.find(g.trunks,{id:Number(g.faxAccount.TrunkId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.trunks,{id:t.id});a.canSelect=!1,n.push(a)}g.trunks=n})}else{var t=[],a=null;g.faxAccount&&(a=_.find(g.trunks,{id:Number(g.faxAccount.TrunkId)}));for(var i=0;i<g.trunks.length;i++)a&&g.trunks[i].id===a.id&&(g.trunks[i].canSelect=!1,t.push(g.trunks[i]));g.trunks=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.lists,{id:e.resourceId})}),t=null;if(g.faxAccount&&(t=_.find(g.lists,{id:Number(g.faxAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.lists,{id:t.id});a.canSelect=!1,n.push(a)}g.lists=n})}else{var t=[],a=null;g.faxAccount&&(a=_.find(g.lists,{id:Number(g.faxAccount.ListId)}));for(var i=0;i<g.lists.length;i++)a&&g.lists[i].id===a.id&&(g.lists[i].canSelect=!1,t.push(g.lists[i]));g.lists=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","faxAccounts","faxAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.fax").controller("CreateOrEditFaxAccountDialogController",e)}(),function(){"use strict";function e(o,i,a,s,e){var r=this;function n(e,n){if(r.faxAccountApps.rows.length){var t=r.faxAccountApps.rows[n]?r.faxAccountApps.rows[n]:r.faxAccountApps.rows[0];i.show({controller:"EditFaxAccountApp"+(t.appType||t.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/apps/"+(t.appType||t.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxAccountApp:t,faxAccount:r.faxAccount,crudPermissions:r.crudPermissions}}).then(function(e){e&&(e.id?r.faxAccountApps.rows[n]=e:r.faxAccountApps.rows.splice(n,0,e),l())}).catch(function(e){e&&s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function l(){for(var e=1,n=[],t=0;t<r.faxAccountApps.rows.length;t++,0){var a=r.faxAccountApps.rows[t],i=[],s=[];a.intervals="*,*,*,*"!==a.interval?[a.interval]:a.IntervalId?_.map(_.filter(r.intervals.rows,{IntervalId:a.IntervalId}),"interval"):[],a.context=r.faxAccount.context,a.exten=r.faxAccount.exten,a.type&&(a.type=a.type.toLowerCase()),a.priority=i.length?_.last(i).priority+1:e,e=(s.length?_.last(s).priority:a.priority)+1,n=_.concat(n,i,[a],s)}o.faxAccount.addApplications({id:r.faxAccount.id},_.sortBy(n,"priority")).$promise.then(function(e){r.faxAccountApps.rows=e.rows}).catch(function(e){console.error(e)})}function t(e){r.faxAccountApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.faxAccount={},r.faxAccountApps={count:0,rows:[]},r.selectedFaxAccountApps=[],r.crudPermissions,r.query={sort:"priority"},r.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"noop",appType:"noop",type:"noop",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,fields:[{title:"Value",name:"value",type:"text",param:0}]},{app:"system",appType:"system",type:"system",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,extraApi:[{name:"variables",field:{name:"variable",key:"name"},route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1012}}],fields:[{title:"Command",name:"command",type:"text",required:!0,param:0},{title:"Variable",name:"variable",type:"apiselect",values:"variables",value:"variable.name",option:"variable.name",defaultValues:[{value:"''",option:"None"}],defaultValue:"''",param:1}]},{app:"gotop",appType:"gotop",type:"goto",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Priority",name:"priority",type:"number",required:!0,min:0,param:0}]},{app:"gotoif",appType:"gotoif",type:"gotoif",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Condition",name:"condition",type:"text",required:!0,param:0},{title:"truepriority",name:"truepriority",type:"number",min:1,required:!0,param:1},{title:"falsepriority",name:"falsepriority",type:"number",min:1,required:!0,param:2}]},{app:"queue",appType:"queue",foreignKey:"FaxQueueId",type:"queue",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"queues",field:{name:"queue",key:"name"},route:"faxQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0},permissions:{section:901}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",defaultValue:300,required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,defaultValue:300,required:!0,param:1}]},{app:"agent",appType:"agent",type:"agent",foreignKey:"UserId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"agents",field:{name:"agent",key:"name"},route:"user",filters:{fields:"id,name",sort:"name",role:"agent",nolimit:!0},permissions:{section:202}}],fields:[{title:"Agent",name:"agent",type:"apiselect",values:"agents",value:"agent.name",option:"agent.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:30,param:1}]},{app:"close",appType:"close",type:"close",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Disposition",name:"disposition",type:"text",required:!0,param:0}]},{app:"tag",appType:"tag",type:"tag",foreignKey:"TagId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"tags",field:{name:"tag",key:"name"},route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1008}}],fields:[{title:"Tag",name:"tag",type:"apiselect",values:"tags",value:"tag.name",option:"tag.name",required:!0,param:0}]}],["app"]),{isApp:!1}),r.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},r.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){n(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e,n){r.faxAccount=e,r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},r.applications.disabled=!r.crudPermissions.canEdit,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getFaxAccountApps(),r.getIntervals()},r.deleteConfirm=function(e,n,t){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.faxAccountApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})},r.getFaxAccountApps=function(){r.promise=o.faxAccount.getApplications(r.query,t).$promise},r.editFaxAccountApp=n,r.editInterval=function(e,n){if(r.faxAccountApps.rows.length){var t=r.faxAccountApps.rows[n]?r.faxAccountApps.rows[n]:r.faxAccountApps.rows[0];i.show({controller:"EditFaxAccountAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:[],crudPermissions:r.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,l())})}},r.deleteFaxAccountApp=function(e){_.remove(r.faxAccountApps.rows,{id:e.id}),l(),s.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedFaxAccountApps=function(e){var n=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+r.selectedFaxAccountApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){r.selectedFaxAccountApps.forEach(function(e){_.remove(r.faxAccountApps.rows,{id:e.id})}),r.selectedFaxAccountApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return o.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){r.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.fax").controller("FaxAccountActionsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.faxAccount.getAgents({id:c.faxAccount.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserFaxAccount?"penalty "+e.UserFaxAccount.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.faxAccount=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.faxAccount.removeAgents({id:c.faxAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.faxAccount.addAgents({id:c.faxAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("FAX.ALL_AGENTS"),labelSelected:r.instant("FAX.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","faxAccount","faxAccounts","realtime","$translate","Auth","crudPermissions"],angular.module("app.fax").controller("FaxAccountagentaddController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.agent=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.agent.appdata)switch(l.agent.appType?l.agent.appType.toLowerCase():l.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.agent.appdata.split(",");l.agent.key=d[0],l.agent.language=d[1],l.agent.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.agent.appdata.split(",");l.agent.projectId=d[0],l.agent.clientEmail=d[1],l.agent.privateKey=d[2],l.agent.language=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.agent.appdata.split(",");l.agent.accesskeyid=d[0],l.agent.secretaccesskey=d[1],l.agent.lexregion=d[2],l.agent.botname=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.agent.appdata.split(",");l.agent.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.agent.text=d.slice(1,d.length).join(",");break;case"message":l.agent.text=l.agent.appdata;break;case"set":l.agent.name=l.agent.appdata.split("=")[0],l.agent.value=l.agent.appdata.split("=")[1];break;case"agi":l.agent.project=l.agent.appdata;break;default:var c=l.agent.appdata.split(",");l.agent.agent=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.agent.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.agent.timeout=30;function m(e){n.hide(e)}l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outbounddial"===l.agent.appType.toLowerCase()&&(l.agent.prefix=l.agent.phone?l.agent.phone.split("$")[0]:void 0,l.agent.callerId=l.agent.callerID?"CALLERID(all)="+l.agent.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outboundDial"===l.agent.appType&&(l.agent.phone=i.cutdigits?(l.agent.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.agent.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.agent.options+="U(xcally-mixmonitor-context)"):l.agent.options=l.agent.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.agents,{name:l.agent.agent});n&&(l.agent.UserId=n.id);if(l.agent.appType&&"custom"===l.agent.appType);else switch((l.agent.app||l.agent.appType).toLowerCase()){case"set":l.agent.appdata=l.agent.name+"="+l.agent.value;break;case"custom":break;default:e[0]=l.agent.agent,e[1]=l.agent.timeout,l.agent.appdata=e.join(",")}m(l.agent)},l.closeDialog=m,o.hasRole("admin")?s.user.get({fields:"id,name",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){l.agents=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.user.get({fields:"id,name",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){l.agents=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.agents,{id:e.resourceId})}),t=null;if(l.agent&&(t=_.find(l.agents,{name:l.agent.agent})),t&&!_.some(n,["id",t.id])){var a=_.find(l.agents,{id:t.id});a.canSelect=!1,n.push(a)}l.agents=n})}else{var t=[],a=null;l.agent&&(a=_.find(l.agents,{name:l.agent.agent}));for(var i=0;i<l.agents.length;i++)a&&l.agents[i].id===a.id&&(l.agents[i].canSelect=!1,t.push(l.agents[i]));l.agents=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppagentDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.close=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.close.appdata)switch(l.close.appType?l.close.appType.toLowerCase():l.close.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.close.appdata.split(",");l.close.key=d[0],l.close.language=d[1],l.close.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.close.appdata.split(",");l.close.projectId=d[0],l.close.clientEmail=d[1],l.close.privateKey=d[2],l.close.language=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.close.appdata.split(",");l.close.accesskeyid=d[0],l.close.secretaccesskey=d[1],l.close.lexregion=d[2],l.close.botname=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.close.appdata.split(",");l.close.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.close.text=d.slice(1,d.length).join(",");break;case"message":l.close.text=l.close.appdata;break;case"set":l.close.name=l.close.appdata.split("=")[0],l.close.value=l.close.appdata.split("=")[1];break;case"agi":l.close.project=l.close.appdata;break;default:var c=l.close.appdata.split(",");l.close.disposition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outbounddial"===l.close.appType.toLowerCase()&&(l.close.prefix=l.close.phone?l.close.phone.split("$")[0]:void 0,l.close.callerId=l.close.callerID?"CALLERID(all)="+l.close.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outboundDial"===l.close.appType&&(l.close.phone=i.cutdigits?(l.close.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.close.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.close.options+="U(xcally-mixmonitor-context)"):l.close.options=l.close.options.replace("U(xcally-mixmonitor-context)",""));if(l.close.appType&&"custom"===l.close.appType);else switch((l.close.app||l.close.appType).toLowerCase()){case"set":l.close.appdata=l.close.name+"="+l.close.value;break;case"custom":break;default:e[0]=l.close.disposition,l.close.appdata=e.join(",")}m(l.close)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppcloseDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotoif=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotoif.appdata)switch(l.gotoif.appType?l.gotoif.appType.toLowerCase():l.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotoif.appdata.split(",");l.gotoif.key=d[0],l.gotoif.language=d[1],l.gotoif.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotoif.appdata.split(",");l.gotoif.projectId=d[0],l.gotoif.clientEmail=d[1],l.gotoif.privateKey=d[2],l.gotoif.language=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotoif.appdata.split(",");l.gotoif.accesskeyid=d[0],l.gotoif.secretaccesskey=d[1],l.gotoif.lexregion=d[2],l.gotoif.botname=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotoif.appdata.split(",");l.gotoif.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotoif.text=d.slice(1,d.length).join(",");break;case"message":l.gotoif.text=l.gotoif.appdata;break;case"set":l.gotoif.name=l.gotoif.appdata.split("=")[0],l.gotoif.value=l.gotoif.appdata.split("=")[1];break;case"agi":l.gotoif.project=l.gotoif.appdata;break;default:var c=l.gotoif.appdata.split(",");l.gotoif.condition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.gotoif.truepriority=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.gotoif.falsepriority=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}function m(e){n.hide(e)}l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outbounddial"===l.gotoif.appType.toLowerCase()&&(l.gotoif.prefix=l.gotoif.phone?l.gotoif.phone.split("$")[0]:void 0,l.gotoif.callerId=l.gotoif.callerID?"CALLERID(all)="+l.gotoif.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outboundDial"===l.gotoif.appType&&(l.gotoif.phone=i.cutdigits?(l.gotoif.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotoif.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotoif.options+="U(xcally-mixmonitor-context)"):l.gotoif.options=l.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotoif.appType&&"custom"===l.gotoif.appType);else switch((l.gotoif.app||l.gotoif.appType).toLowerCase()){case"set":l.gotoif.appdata=l.gotoif.name+"="+l.gotoif.value;break;case"custom":break;default:e[0]=l.gotoif.condition,e[1]=l.gotoif.truepriority,e[2]=l.gotoif.falsepriority,l.gotoif.appdata=e.join(",")}m(l.gotoif)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppgotoifDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotop.appdata)switch(l.gotop.appType?l.gotop.appType.toLowerCase():l.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotop.appdata.split(",");l.gotop.key=d[0],l.gotop.language=d[1],l.gotop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotop.appdata.split(",");l.gotop.projectId=d[0],l.gotop.clientEmail=d[1],l.gotop.privateKey=d[2],l.gotop.language=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotop.appdata.split(",");l.gotop.accesskeyid=d[0],l.gotop.secretaccesskey=d[1],l.gotop.lexregion=d[2],l.gotop.botname=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotop.appdata.split(",");l.gotop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotop.text=d.slice(1,d.length).join(",");break;case"message":l.gotop.text=l.gotop.appdata;break;case"set":l.gotop.name=l.gotop.appdata.split("=")[0],l.gotop.value=l.gotop.appdata.split("=")[1];break;case"agi":l.gotop.project=l.gotop.appdata;break;default:var c=l.gotop.appdata.split(",");l.gotop.priority=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outbounddial"===l.gotop.appType.toLowerCase()&&(l.gotop.prefix=l.gotop.phone?l.gotop.phone.split("$")[0]:void 0,l.gotop.callerId=l.gotop.callerID?"CALLERID(all)="+l.gotop.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outboundDial"===l.gotop.appType&&(l.gotop.phone=i.cutdigits?(l.gotop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotop.options+="U(xcally-mixmonitor-context)"):l.gotop.options=l.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotop.appType&&"custom"===l.gotop.appType);else switch((l.gotop.app||l.gotop.appType).toLowerCase()){case"set":l.gotop.appdata=l.gotop.name+"="+l.gotop.value;break;case"custom":break;default:e[0]=l.gotop.priority,l.gotop.appdata=e.join(",")}m(l.gotop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppgotopDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom","list"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditFaxAccountAppintervalDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.noop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.noop.appdata)switch(l.noop.appType?l.noop.appType.toLowerCase():l.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.noop.appdata.split(",");l.noop.key=d[0],l.noop.language=d[1],l.noop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.noop.appdata.split(",");l.noop.projectId=d[0],l.noop.clientEmail=d[1],l.noop.privateKey=d[2],l.noop.language=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.noop.appdata.split(",");l.noop.accesskeyid=d[0],l.noop.secretaccesskey=d[1],l.noop.lexregion=d[2],l.noop.botname=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.noop.appdata.split(",");l.noop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.noop.text=d.slice(1,d.length).join(",");break;case"message":l.noop.text=l.noop.appdata;break;case"set":l.noop.name=l.noop.appdata.split("=")[0],l.noop.value=l.noop.appdata.split("=")[1];break;case"agi":l.noop.project=l.noop.appdata;break;default:var c=l.noop.appdata.split(",");l.noop.value=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outbounddial"===l.noop.appType.toLowerCase()&&(l.noop.prefix=l.noop.phone?l.noop.phone.split("$")[0]:void 0,l.noop.callerId=l.noop.callerID?"CALLERID(all)="+l.noop.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outboundDial"===l.noop.appType&&(l.noop.phone=i.cutdigits?(l.noop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.noop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.noop.options+="U(xcally-mixmonitor-context)"):l.noop.options=l.noop.options.replace("U(xcally-mixmonitor-context)",""));if(l.noop.appType&&"custom"===l.noop.appType);else switch((l.noop.app||l.noop.appType).toLowerCase()){case"set":l.noop.appdata=l.noop.name+"="+l.noop.value;break;case"custom":break;default:e[0]=l.noop.value,l.noop.appdata=e.join(",")}m(l.noop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppnoopDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.queue=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.queue.appdata)switch(l.queue.appType?l.queue.appType.toLowerCase():l.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.queue.appdata.split(",");l.queue.key=d[0],l.queue.language=d[1],l.queue.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.queue.appdata.split(",");l.queue.projectId=d[0],l.queue.clientEmail=d[1],l.queue.privateKey=d[2],l.queue.language=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.queue.appdata.split(",");l.queue.accesskeyid=d[0],l.queue.secretaccesskey=d[1],l.queue.lexregion=d[2],l.queue.botname=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.queue.appdata.split(",");l.queue.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.queue.text=d.slice(1,d.length).join(",");break;case"message":l.queue.text=l.queue.appdata;break;case"set":l.queue.name=l.queue.appdata.split("=")[0],l.queue.value=l.queue.appdata.split("=")[1];break;case"agi":l.queue.project=l.queue.appdata;break;default:var c=l.queue.appdata.split(",");l.queue.queue=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.queue.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.queue.queue=300,l.queue.timeout=300;function m(e){n.hide(e)}l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outbounddial"===l.queue.appType.toLowerCase()&&(l.queue.prefix=l.queue.phone?l.queue.phone.split("$")[0]:void 0,l.queue.callerId=l.queue.callerID?"CALLERID(all)="+l.queue.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outboundDial"===l.queue.appType&&(l.queue.phone=i.cutdigits?(l.queue.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.queue.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.queue.options+="U(xcally-mixmonitor-context)"):l.queue.options=l.queue.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.queues,{name:l.queue.queue});n&&(l.queue[_.capitalize("fax")+"QueueId"]=n.id);if(l.queue.appType&&"custom"===l.queue.appType);else switch((l.queue.app||l.queue.appType).toLowerCase()){case"set":l.queue.appdata=l.queue.name+"="+l.queue.value;break;case"custom":break;default:e[0]=l.queue.queue,e[1]=l.queue.timeout,l.queue.appdata=e.join(",")}m(l.queue)},l.closeDialog=m,o.hasRole("admin")?s.faxQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.faxQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:901}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.queues,{id:e.resourceId})}),t=null;if(l.queue&&(t=_.find(l.queues,{name:l.queue.queue})),t&&!_.some(n,["id",t.id])){var a=_.find(l.queues,{id:t.id});a.canSelect=!1,n.push(a)}l.queues=n})}else{var t=[],a=null;l.queue&&(a=_.find(l.queues,{name:l.queue.queue}));for(var i=0;i<l.queues.length;i++)a&&l.queues[i].id===a.id&&(l.queues[i].canSelect=!1,t.push(l.queues[i]));l.queues=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppqueueDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.system=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.system.appdata)switch(l.system.appType?l.system.appType.toLowerCase():l.system.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.system.appdata.split(",");l.system.key=d[0],l.system.language=d[1],l.system.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.system.appdata.split(",");l.system.projectId=d[0],l.system.clientEmail=d[1],l.system.privateKey=d[2],l.system.language=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.system.appdata.split(",");l.system.accesskeyid=d[0],l.system.secretaccesskey=d[1],l.system.lexregion=d[2],l.system.botname=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.system.appdata.split(",");l.system.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.system.text=d.slice(1,d.length).join(",");break;case"message":l.system.text=l.system.appdata;break;case"set":l.system.name=l.system.appdata.split("=")[0],l.system.value=l.system.appdata.split("=")[1];break;case"agi":l.system.project=l.system.appdata;break;default:var c=l.system.appdata.split(",");l.system.command=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.system.variable=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.system.variable="";function m(e){n.hide(e)}l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outbounddial"===l.system.appType.toLowerCase()&&(l.system.prefix=l.system.phone?l.system.phone.split("$")[0]:void 0,l.system.callerId=l.system.callerID?"CALLERID(all)="+l.system.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outboundDial"===l.system.appType&&(l.system.phone=i.cutdigits?(l.system.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.system.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.system.options+="U(xcally-mixmonitor-context)"):l.system.options=l.system.options.replace("U(xcally-mixmonitor-context)",""));if(l.system.appType&&"custom"===l.system.appType);else switch((l.system.app||l.system.appType).toLowerCase()){case"set":l.system.appdata=l.system.name+"="+l.system.value;break;case"custom":break;default:e[0]=l.system.command,e[1]=l.system.variable,l.system.appdata=e.join(",")}m(l.system)},l.closeDialog=m,o.hasRole("admin")?s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1012}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.variables,{id:e.resourceId})}),t=null;if(l.system&&(t=_.find(l.variables,{name:l.system.variable})),t&&!_.some(n,["id",t.id])){var a=_.find(l.variables,{id:t.id});a.canSelect=!1,n.push(a)}l.variables=n})}else{var t=[],a=null;l.system&&(a=_.find(l.variables,{name:l.system.variable}));for(var i=0;i<l.variables.length;i++)a&&l.variables[i].id===a.id&&(l.variables[i].canSelect=!1,t.push(l.variables[i]));l.variables=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountAppsystemDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="FAX.EDIT_"+(a.appType||a.app).toUpperCase(),l.tag=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.tag.appdata)switch(l.tag.appType?l.tag.appType.toLowerCase():l.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.tag.appdata.split(",");l.tag.key=d[0],l.tag.language=d[1],l.tag.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.tag.appdata.split(",");l.tag.projectId=d[0],l.tag.clientEmail=d[1],l.tag.privateKey=d[2],l.tag.language=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.tag.appdata.split(",");l.tag.accesskeyid=d[0],l.tag.secretaccesskey=d[1],l.tag.lexregion=d[2],l.tag.botname=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.tag.appdata.split(",");l.tag.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.tag.text=d.slice(1,d.length).join(",");break;case"message":l.tag.text=l.tag.appdata;break;case"set":l.tag.name=l.tag.appdata.split("=")[0],l.tag.value=l.tag.appdata.split("=")[1];break;case"agi":l.tag.project=l.tag.appdata;break;default:var c=l.tag.appdata.split(",");l.tag.tag=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outbounddial"===l.tag.appType.toLowerCase()&&(l.tag.prefix=l.tag.phone?l.tag.phone.split("$")[0]:void 0,l.tag.callerId=l.tag.callerID?"CALLERID(all)="+l.tag.callerID:void 0),l.saveFaxAccountApp=function(){l.errors=[];var e=[];l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outboundDial"===l.tag.appType&&(l.tag.phone=i.cutdigits?(l.tag.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.tag.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.tag.options+="U(xcally-mixmonitor-context)"):l.tag.options=l.tag.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.tags,{name:l.tag.tag});n&&(l.tag.TagId=n.id);if(l.tag.appType&&"custom"===l.tag.appType);else switch((l.tag.app||l.tag.appType).toLowerCase()){case"set":l.tag.appdata=l.tag.name+"="+l.tag.value;break;case"custom":break;default:e[0]=l.tag.tag,l.tag.appdata=e.join(",")}m(l.tag)},l.closeDialog=m,o.hasRole("admin")?s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1008}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.tags,{id:e.resourceId})}),t=null;if(l.tag&&(t=_.find(l.tags,{name:l.tag.tag})),t&&!_.some(n,["id",t.id])){var a=_.find(l.tags,{id:t.id});a.canSelect=!1,n.push(a)}l.tags=n})}else{var t=[],a=null;l.tag&&(a=_.find(l.tags,{name:l.tag.tag}));for(var i=0;i<l.tags.length;i++)a&&l.tags[i].id===a.id&&(l.tags[i].canSelect=!1,t.push(l.tags[i]));l.tags=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtags",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","faxAccountApp","faxAccount","api","Auth","crudPermissions"],angular.module("app.fax").controller("EditFaxAccountApptagDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.faxAccount.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.faxAccount=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.FaxAccountId=m.faxAccount.id,m.query.id=m.faxAccount.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.faxAccount.id,field:"FaxAccountId",route:"faxAccount"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.fax").controller("FaxAccountDispositionsController",e)}(),function(){"use strict";function e(e,a,n,t,i,s,o,r,l,d,c){var m=this;function u(e){m.faxAccountInteractions=e||{count:0,rows:[]};for(var n=0;n<m.faxAccountInteractions.rows.length;n+=1){var t=m.faxAccountInteractions.rows[n];v(t),t.Owner.name=h(t)}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.faxInteraction.get(m.query,u).$promise}function g(e){d.faxInteraction.delete({id:e.id}).$promise.then(function(){_.remove(m.faxAccountInteractions.rows,{id:e.id}),m.faxAccountInteractions.count-=1,m.faxAccountInteractions.rows.length||p(),l.success({title:"Interaction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETfaxAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(e){e.Contact?(e.contactName=(e.Contact.firstName||"")+" "+(e.Contact.lastName||""),e.contactInfo=e.Contact.fax):e.contactName=i.instant("DASHBOARDS.UNKNOWN")}function h(e){return e.UserId?e.UserId===m.currentUser.id?i.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">":i.instant("DASHBOARDS.NOT_ASSIGNED")}m.currentUser=c.getCurrentUser(),m.faxAccount={},m.faxAccountInteractions={count:0,rows:[]},m.selectedFaxAccountInteractions=[],m.crudPermissions,m.query={read:"null",closed:"null",sort:"-createdAt",includeAll:"true",limit:10,page:1},m.init=function(e,n,t){m.faxAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.FaxAccountId=m.faxAccount.id,m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Subject",column:"subject",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},d.tag.get({sort:"name"}).$promise.then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]})},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interaction #")+e.id||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.faxInteractionDownload=function(s,e,n){return d.faxInteraction.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="interaction"+s.id,a=new Blob(n,{type:e.type});t="fax-interaction"+s.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getFaxAccountInteractions=p,m.createOrEditFaxAccountInteraction=function(e,n){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/interactions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxAccount:m.faxAccount,interaction:n,interactions:m.faxAccountInteractions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.spyfaxInteraction=function(e,t){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,n){e.vm.init({id:1,channel:"fax",interaction:t,spy:!0},a.$parent.vm.setting)}})},m.openAdvancedSearch=function(){o.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,locals:{fields:m.advancedSearch.fields,color:void 0,storagePath:"fax.faxAccounts"},fullscreen:!0}).then(function(e){if(m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply){var n="";n+="||FaxAccountId:=$eq["+m.faxAccount.id+"]",m.query.search=e.value?e.value+=n:e.value,p()}}).catch(function(e){l.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.exportSelectedFaxAccountInteractions=function(){var e=angular.copy(m.selectedFaxAccountInteractions);return m.selectedFaxAccountInteractions=[],e},m.deleteFaxAccountInteraction=g,m.deleteSelectedFaxAccountInteractions=function(e){var n=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+m.selectedFaxAccountInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedFaxAccountInteractions.forEach(function(e){g(e)}),m.selectedFaxAccountInteractions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.fax").controller("FaxAccountInteractionsController",e)}(),function(){"use strict";function e(t,e,a,i,s,n,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=n,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=e.protocol()+"://"+e.host(),p.faxAccount=c||t.params.faxAccount||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=t.params.tab||0,p.gotogoto=function(e,n){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:910}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.fax.realtime.accounts",{}):l.info({title:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.fax.realtime.accounts",{})}},p.agentadddialog=function(e,n){a.show({controller:"FaxAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{faxAccount:e,faxAccounts:p.faxAccounts?p.faxAccounts.rows:[],crudPermissions:p.crudPermissions,realtime:!1}})},p.alert=l.info,p.gotoFaxAccounts=function(){t.go("app.fax.faxAccounts",{},{reload:"app.fax.faxAccounts"})},p.saveFaxAccount=function(){r.faxAccount.updateAccountApplications(p.faxAccount).$promise.then(function(){l.success({title:"FaxAccount updated!",msg:p.faxAccount.name?p.faxAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.trunks=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.trunks=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.trunks,{id:e.resourceId})}),t=null;if(p.faxAccount&&(t=_.find(p.trunks,{id:Number(p.faxAccount.TrunkId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.trunks,{id:t.id});a.canSelect=!1,n.push(a)}p.trunks=n})}else{var t=[],a=null;p.faxAccount&&(a=_.find(p.trunks,{id:Number(p.faxAccount.TrunkId)}));for(var i=0;i<p.trunks.length;i++)a&&p.trunks[i].id===a.id&&(p.trunks[i].canSelect=!1,t.push(p.trunks[i]));p.trunks=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.lists,{id:e.resourceId})}),t=null;if(p.faxAccount&&(t=_.find(p.lists,{id:Number(p.faxAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.lists,{id:t.id});a.canSelect=!1,n.push(a)}p.lists=n})}else{var t=[],a=null;p.faxAccount&&(a=_.find(p.lists,{id:Number(p.faxAccount.ListId)}));for(var i=0;i<p.lists.length;i++)a&&p.lists[i].id===a.id&&(p.lists[i].canSelect=!1,t.push(p.lists[i]));p.lists=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.pauses,{id:e.resourceId})});p.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),p.pauses=n})}else p.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","faxAccount","userProfile","userProfileSection"],angular.module("app.fax").controller("FaxAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.faxAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="faxAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedFaxAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,key,headerinfo,TrunkId,localstationid,ListId,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,ecm,minrate,maxrate,modem,gateway,faxdetect,t38timeout,tech,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,page:1},f.arrayecm=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayminrate=_.keyBy([{option:"2400",value:"'2400'"},{option:"4800",value:"'4800'"},{option:"7200",value:"'7200'"},{option:"9600",value:"'9600'"},{option:"12000",value:"'12000'"},{option:"14400",value:"'14400'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraymaxrate=_.keyBy([{option:"2400",value:"'2400'"},{option:"4800",value:"'4800'"},{option:"7200",value:"'7200'"},{option:"9600",value:"'9600'"},{option:"12000",value:"'12000'"},{option:"14400",value:"'14400'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraytech=_.keyBy([{option:"SIP",value:"'SIP'"},{option:"IAX",value:"'IAX'"},{option:"DADHI",value:"'DADHI'"},{option:"KHOMP",value:"'KHOMP'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.fax.faxAccounts.edit",{id:e.id,faxAccount:e,crudPermissions:f.crudPermissions})},f.interactionsgoto=function(e,n){t.go("app.fax.faxAccounts.edit",{id:e.id,tab:5})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:910}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.fax.realtime.accounts",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.fax.realtime.accounts",{})}},f.agentadddialog=function(e,n){i.show({controller:"FaxAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{faxAccount:e,faxAccounts:f.faxAccounts?f.faxAccounts.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("faxAccount")+"?").htmlContent("<b>"+(e.name||"faxAccount")+"</b> will be deleted.").ariaLabel("delete faxAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getFaxAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.faxAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="FaxAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditFaxAccount=function(e,n){i.show({controller:"CreateOrEditFaxAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxAccount:n,faxAccounts:f.faxAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteFaxAccount=y,f.exportSelectedFaxAccounts=function(){var e=angular.copy(f.selectedFaxAccounts);return f.selectedFaxAccounts=[],e},f.deleteSelectedFaxAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected faxAccounts?").htmlContent("<b>"+f.selectedFaxAccounts.length+" selected</b> will be deleted.").ariaLabel("delete FaxAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedFaxAccounts.forEach(function(e){y(e)}),f.selectedFaxAccounts=[]})},f.deselectFaxAccounts=function(){f.selectedFaxAccounts=[]},f.selectAllFaxAccounts=function(){f.selectedFaxAccounts=f.faxAccounts.rows},g.hasRole("admin")?m.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.trunks=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.trunks=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(f.trunks,{id:e.resourceId})}),a=null;a=[],f.faxAccounts.rows.forEach(function(e){var n=_.find(f.trunks,{id:Number(e.TrunkId)});a.push(n)}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(f.trunks,{id:e.id});n.canSelect=!1,t.push(n)}}),f.trunks=t})}else{var t=[],a=[];f.faxAccounts.rows.forEach(function(e){var n=_.find(f.trunks,{id:Number(e.TrunkId)});a.push(n)});for(var i=0;i<f.trunks.length;i++){_.some(a,{id:f.trunks[i].id})&&(f.trunks[i].canSelect=!1,t.push(f.trunks[i]))}f.trunks=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.lists,{id:e.resourceId})}),t=null;if(f.faxAccount&&(t=_.find(f.lists,{id:Number(f.faxAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.lists,{id:t.id});a.canSelect=!1,n.push(a)}f.lists=n})}else{var t=[],a=null;f.faxAccount&&(a=_.find(f.lists,{id:Number(f.faxAccount.ListId)}));for(var i=0;i<f.lists.length;i++)a&&f.lists[i].id===a.id&&(f.lists[i].canSelect=!1,t.push(f.lists[i]));f.lists=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.faxAccounts=e||{count:0,rows:[]}}function y(e){m.faxAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.faxAccounts.rows,{id:e.id}),f.faxAccounts.count-=1,f.faxAccounts.rows.length||f.getFaxAccounts(),p.success({title:_.startCase("FaxAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEfaxAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEfaxAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getFaxAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","faxAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.fax").controller("FaxAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="FAX.EDIT_FAXQUEUE",g.faxQueue=angular.copy(l),g.faxQueues=r,g.newFaxQueue=!1,g.faxQueue||(g.faxQueue={strategy:"beepall",timeout:10},g.title="FAX.NEW_FAXQUEUE",g.newFaxQueue=!0),g.addNewFaxQueue=function(){g.errors=[],d.faxQueue.save(g.faxQueue).$promise.then(function(e){g.faxQueues.unshift(e.toJSON()),o.success({title:"FaxQueue properly created",msg:g.faxQueue.name?g.faxQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.faxQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveFaxQueue=function(){g.errors=[],d.faxQueue.update({id:g.faxQueue.id},g.faxQueue).$promise.then(function(e){var n=_.find(g.faxQueues,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"FaxQueue properly saved!",msg:g.faxQueue.name?g.faxQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.faxQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteFaxQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The faxQueue will be deleted.").ariaLabel("Delete FaxQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.faxQueue.delete({id:g.faxQueue.id}).$promise.then(function(){_.remove(g.faxQueues,{id:g.faxQueue.id}),o.success({title:"FaxQueue properly deleted!",msg:(g.faxQueue.name||"faxQueue")+" has been deleted!"}),v(g.faxQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.faxQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.faxQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","faxQueues","faxQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.fax").controller("CreateOrEditFaxQueueDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.faxQueue.getAgents({id:c.faxQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserFaxQueue?"penalty "+e.UserFaxQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.faxQueue=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.faxQueue.removeAgents({id:c.faxQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.faxQueue.addAgents({id:c.faxQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("FAX.ALL_AGENTS"),labelSelected:r.instant("FAX.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","faxQueue","faxQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.fax").controller("FaxQueueagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.faxQueue.getTeams({id:l.faxQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.faxQueue=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("FAX.ALL_TEAMS"),labelSelected:t.instant("FAX.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.faxQueue.removeTeams({id:l.faxQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.faxQueue.addTeams({id:l.faxQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","faxQueue","$translate","Auth","crudPermissions"],angular.module("app.fax").controller("FaxQueueteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.faxQueue=c||e.params.faxQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.teamadddialog=function(e,n){t.show({controller:"FaxQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{faxQueue:e,faxQueues:u.faxQueues?u.faxQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){t.show({controller:"FaxQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{faxQueue:e,faxQueues:u.faxQueues?u.faxQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoFaxQueues=function(){e.go("app.fax.faxQueues",{},{reload:"app.fax.faxQueues"})},u.saveFaxQueue=function(){r.faxQueue.update({id:u.faxQueue.id},u.faxQueue).$promise.then(function(){l.success({title:"FaxQueue updated!",msg:u.faxQueue.name?u.faxQueue.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETfaxQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","faxQueue","userProfileSection"],angular.module("app.fax").controller("FaxQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.faxQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="faxQueues",f.listOrder="",f.listOrderAsc=null,f.selectedFaxQueues=[],f.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"fax",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.fax.faxQueues.edit",{id:e.id,faxQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"FaxQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{faxQueue:e,faxQueues:f.faxQueues?f.faxQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"FaxQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{faxQueue:e,faxQueues:f.faxQueues?f.faxQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("faxQueue")+"?").htmlContent("<b>"+(e.name||"faxQueue")+"</b> will be deleted.").ariaLabel("delete faxQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:910}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.fax.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.fax.realtime.queues",{})}},f.success=E,f.getFaxQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.faxQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="FaxQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditFaxQueue=function(e,n){i.show({controller:"CreateOrEditFaxQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxQueue:n,faxQueues:f.faxQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteFaxQueue=y,f.exportSelectedFaxQueues=function(){var e=angular.copy(f.selectedFaxQueues);return f.selectedFaxQueues=[],e},f.deleteSelectedFaxQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected faxQueues?").htmlContent("<b>"+f.selectedFaxQueues.length+" selected</b> will be deleted.").ariaLabel("delete FaxQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedFaxQueues.forEach(function(e){y(e)}),f.selectedFaxQueues=[]})},f.deselectFaxQueues=function(){f.selectedFaxQueues=[]},f.selectAllFaxQueues=function(){f.selectedFaxQueues=f.faxQueues.rows};var b=!0,A=1;function E(e){f.faxQueues=e||{count:0,rows:[]}}function y(e){m.faxQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.faxQueues.rows,{id:e.id}),f.faxQueues.count-=1,f.faxQueues.rows.length||f.getFaxQueues(),p.success({title:_.startCase("FaxQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEfaxQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEfaxQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getFaxQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","faxQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.fax").controller("FaxQueuesController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){_.forIn(p.faxAccounts,function(e,n){p.rpcFaxAccounts[n]&&_.merge(e,p.rpcFaxAccounts[n])}),_.forIn(p.faxAccounts,function(n,e){var t={id:e,sort:"-id",direction:"in",limit:1,offset:0,$gte:"createdAt,"+moment().startOf("day").format("YYYY-MM-DD HH:mm:ss"),fields:"id,createdAt"};s.faxAccount.getMessages(t).$promise.then(function(e){return e&&(n.in=e.count||0,n.lastIn=e.rows&&e.rows.length?e.rows[0].createdAt:void 0),t.direction="out",s.faxAccount.getMessages(t).$promise}).then(function(e){e&&(n.out=e.count||0,n.lastOut=e.rows&&e.rows.length?e.rows[0].createdAt:void 0)}).catch(function(e){console.log(e)})})}p.currentUser=u.getCurrentUser(),p.count=l&&l.count?l.count:0,p.faxAccounts=l?_.keyBy(l.rows?l.rows:[],"id"):{},p.rpcFaxAccounts=d?_.keyBy(d.rows?d.rows:[],"id"):{},p.userProfile=c,p.userProfileSection=m&&1==m.count?m.rows[0]:null,p.crudPermissions=u.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.query={sort:"-name",limit:10,page:1},p.success=f,p.$onInit=g,p.getFaxAccounts=function(){p.query.offset=(p.query.page-1)*p.query.limit,u.hasRole("admin")?p.promise=s.faxAccount.get(p.query,f).$promise:(p.query.id=p.userProfile.id,p.query.section="FaxAccounts",p.promise=s.userProfile.getResources(p.query,f).$promise)},p.onSave=function(e){p.faxAccounts[e.id]&&_.merge(p.faxAccounts[e.id],e)},p.onFaxMessageSave=function(e){p.faxAccounts[e.FaxAccountId]&&("in"==e.direction?(p.faxAccounts[e.FaxAccountId].in+=1,p.faxAccounts[e.FaxAccountId].lastIn=e.createdAt):(p.faxAccounts[e.FaxAccountId].out+=1,p.faxAccounts[e.FaxAccountId].lastOut=e.createdAt))},p.goToFaxAccount=function(e,n){i.go("app.fax.faxAccounts.edit",{id:n.id,faxAccount:n})},p.order=[],_.forIn(p.faxAccounts,function(e,n){p.order.push(e.id)}),o.on("faxAccount:save",p.onSave),o.on("faxAccount:update",p.onSave),o.on("faxMessage:save",p.onFaxMessageSave);var v=!0,h=1;function f(e){if(p.faxAccounts=e?_.keyBy(e.rows?e.rows:[],"id"):{},e.rows){p.order=[];for(var n=0;n<e.rows.length;n++)p.order.push(e.rows[n].id)}g()}e.$watch("vm.query.filter",function(e,n){v?t(function(){v=!1}):(n||(h=p.query.page),e!==n&&(p.query.page=1),e||(p.query.page=h),p.getFaxAccounts())}),e.$on("$destroy",function(){o.removeAllListeners("faxAccount:save"),o.removeAllListeners("faxAccount:update"),o.removeAllListeners("faxMessage:save")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$state","api","socket","toasty","faxAccounts","rpcFaxAccounts","userProfile","userProfileSection","Auth"],angular.module("app.fax").controller("FaxAccountsRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c,m){var u=this,p=["loggedIn","available","waiting","paused"],g=n(function(){},999);u.currentUser=c.getCurrentUser(),u.queues=s,u.userProfileSection=d&&1==d.count?d.rows[0]:null,u.crudPermissions=c.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.query={id:c.isUser()?u.currentUser.id:void 0,section:c.isUser()?"FaxQueues":void 0,channel:"fax",sort:"name",limit:10,page:1},u.getQueues=function(){u.query.offset=(u.query.page-1)*u.query.limit,o.realtime.getQueues(u.query).$promise.then(function(e){u.queues=e}).catch(function(e){l.error({title:i.instant("FAX.FAXQUEUES"),msg:e.status?JSON.stringify(e.data):e.toString()})})},u.editQueue=function(e,n){t.show({controller:"CreateOrEditFaxQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxQueue:n,faxQueues:u.queues.rows,license:null,setting:null,crudPermissions:u.crudPermissions}})},u.addAgent=function(e,n){t.show({controller:"FaxQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/fax/views/faxQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{faxQueue:n,faxQueues:u.queues.rows,realtime:!1,crudPermissions:u.crudPermissions}})},r.on("fax_queue:save",function(e){var n=_.find(u.queues.rows,["id",e.id]);n&&_.merge(n,_.pick(e,p))}),r.on("userFaxQueue:save",function(e){var n=_.find(u.queues.rows,["id",e.FaxQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),r.on("userFaxQueue:remove",function(e){var n=_.find(u.queues.rows,["id",e.FaxQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),r.on("user:update",function(t){u.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&m.updateQueue(t,e,n,"fax")})}),e.$on("$destroy",function(){r.removeAllListeners("fax_queue:save"),r.removeAllListeners("userFaxQueue:remove"),r.removeAllListeners("userFaxQueue:save"),r.removeAllListeners("user:update"),g&&n.cancel(g)})}e.$inject=["$scope","$mdDialog","$document","$interval","$translate","queues","api","socket","toasty","userProfileSection","Auth","realtimeManager"],angular.module("app.fax").controller("QueuesFaxRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){return{status:{registered:"green-300-fg icon-checkbox-marked-circle",unregistered:"red-300-fg icon-close-circle",lagged:"red-300-fg icon-close-circle",reachable:"green-300-fg icon-checkbox-marked-circle",unreachable:"red-300-fg icon-close-circle",unknown:"grey-fg icon-minus-circle"},state:{unknown:"grey-fg icon-phone-hangup",not_inuse:"green-300-fg icon-phone-hangup",inuse:"red-300-fg icon-phone-in-talk",busy:"red-300-fg icon-phone-locked",invalid:"grey-fg icon-phone-hangup",unavailable:"grey-fg icon-phone-hangup",ringing:"blue-300-fg icon-phone-incoming",ringinuse:"blue-300-fg icon-phone-incoming",onhold:"blue-300-fg icon-phone-paused"},channelStatus:{ring:"blue-300-fg icon-phone-incoming",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"},channelStatusOut:{ring:"blue-300-fg icon-phone-outgoing",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"}}})}(),function(){"use strict";function e(e,t,n){switch(this.selectedTab=0,t.current.name){case"app.fax.realtime.agents":this.selectedTab=0;break;case"app.fax.realtime.trunks":this.selectedTab=1;break;case"app.fax.realtime.queues":this.selectedTab=2;break;case"app.fax.realtime.accounts":this.selectedTab=3;break;default:this.selectedTab=0,t.go("app.fax.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.fax.realtime.agents");break;case 1:t.go("app.fax.realtime.trunks");break;case 2:t.go("app.fax.realtime.queues");break;case 3:t.go("app.fax.realtime.accounts");break;default:t.go("app.fax.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.fax").controller("FaxRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m){var u=this,p=["status","stateRegistry","registry","host","port","internal","state","status"];function g(){for(var e,n=0;n<u.trunks.length;n+=1)0<=(e=_.findIndex(u.rpcTrunks,["id",u.trunks[n].id]))&&_.merge(u.trunks[n],_.pick(u.rpcTrunks[e],p))}function v(e,n,t){0<=n&&_.merge(e[n],_.pick(t,p))}u.currentUser=m.getCurrentUser(),u.count=a.count,u.trunks=a?a.rows:[],u.rpcTrunks=i&&i.rows?i.rows:[],u.query={fields:"id,name",active:!0,sort:"-updatedAt",limit:10,page:1},u.statusClass=r.status,u.stateClass=r.state,u.userProfile=d,u.userProfileSection=c&&1==c.count?c.rows[0]:null,u.crudPermissions=m.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.success=b,u.$onInit=g,u.showInfo=function(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},u.getTrunks=function(){u.query.offset=(u.query.page-1)*u.query.limit,m.hasRole("admin")?u.promise=s.trunk.get(u.query,b).$promise:(u.query.id=u.userProfile.id,u.query.section="Trunks",u.promise=s.userProfile.getResources(u.query,b).$promise)},u.goToTrunk=function(e,n){l.go("app.tools.trunks.edit",{id:n.id})},u.onSave=function(e){var n=_.findIndex(u.trunks,["id",e.id]),t=_.findIndex(u.rpcTrunks,["id",e.id]);v(u.trunks,n,e),v(u.rpcTrunks,t,e)},o.on("trunk:save",u.onSave);var h=!0,f=1;function b(e){u.count=e.count,u.trunks=e&&e.rows?e.rows:[],g()}e.$watch("vm.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=u.query.page),e!==n&&(u.query.page=1),e||(u.query.page=f),u.getTrunks())}),e.$on("$destroy",function(){o.removeAllListeners("trunk:save")})}e.$inject=["$scope","$timeout","$mdDialog","trunks","rpcTrunks","api","socket","helperClasses","$state","userProfile","userProfileSection","Auth"],angular.module("app.fax").controller("TrunksFaxRealtimeController",e)}(),function(){"use strict";function e(e,n){this.info=e,this.license=n}e.$inject=["info","license"],angular.module("app.help.about").controller("AboutController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_DESKACCOUNT",g.deskAccount=angular.copy(l),g.deskAccounts=r,g.newDeskAccount=!1,g.deskAccount||(g.deskAccount={type:"integrationTab",authType:"basic",serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_DESKACCOUNT",g.newDeskAccount=!0),g.addNewDeskAccount=function(){g.errors=[],d.intDeskAccount.save(g.deskAccount).$promise.then(function(e){g.deskAccounts.unshift(e.toJSON()),o.success({title:"DeskAccount properly created",msg:g.deskAccount.name?g.deskAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDeskAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveDeskAccount=function(){g.errors=[],d.intDeskAccount.update({id:g.deskAccount.id},g.deskAccount).$promise.then(function(e){var n=_.find(g.deskAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"DeskAccount properly saved!",msg:g.deskAccount.name?g.deskAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDeskAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteDeskAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The deskAccount will be deleted.").ariaLabel("Delete DeskAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intDeskAccount.delete({id:g.deskAccount.id}).$promise.then(function(){_.remove(g.deskAccounts,{id:g.deskAccount.id}),o.success({title:"DeskAccount properly deleted!",msg:(g.deskAccount.name||"deskAccount")+" has been deleted!"}),v(g.deskAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDeskAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","deskAccounts","deskAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditDeskAccountDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.deskAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="deskAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedDeskAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,type,remoteUri,authType,username,password,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.arraytype=_.keyBy([{option:"Integration_Tab",value:"'integrationTab'"},{option:"New_Tab",value:"'newTab'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayauthType=_.keyBy([{option:"Basic",value:"'basic'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.integrations.deskAccounts.edit",{id:e.id,deskAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intDeskAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"DeskAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"DeskAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("deskAccount")+"?").htmlContent("<b>"+(e.name||"deskAccount")+"</b> will be deleted.").ariaLabel("delete deskAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getDeskAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intDeskAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="DeskAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditDeskAccount=function(e,n){i.show({controller:"CreateOrEditDeskAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{deskAccount:n,deskAccounts:f.deskAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteDeskAccount=y,f.exportSelectedDeskAccounts=function(){var e=angular.copy(f.selectedDeskAccounts);return f.selectedDeskAccounts=[],e},f.deleteSelectedDeskAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected deskAccounts?").htmlContent("<b>"+f.selectedDeskAccounts.length+" selected</b> will be deleted.").ariaLabel("delete DeskAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedDeskAccounts.forEach(function(e){y(e)}),f.selectedDeskAccounts=[]})},f.deselectDeskAccounts=function(){f.selectedDeskAccounts=[]},f.selectAllDeskAccounts=function(){f.selectedDeskAccounts=f.deskAccounts.rows};var b=!0,A=1;function E(e){f.deskAccounts=e||{count:0,rows:[]}}function y(e){m.intDeskAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.deskAccounts.rows,{id:e.id}),f.deskAccounts.count-=1,f.deskAccounts.rows.length||f.getDeskAccounts(),p.success({title:_.startCase("DeskAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintDeskAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintDeskAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getDeskAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","deskAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("DeskAccountsController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intDeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intDeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intDeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.deskAccount={},o.deskConfiguration={},o.configurations=[],o.selectedDeskConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.deskAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intDeskAccount.getConfigurations({id:o.deskAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getDeskConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getDeskConfiguration=function(e){o.deskConfiguration=o.configurations[e],o.selectedDeskConfiguration=e,i.intDeskConfiguration.getSubjects({id:o.deskConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intDeskConfiguration.getDescriptions({id:o.deskConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intDeskConfiguration.getFields({id:o.deskConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.intDeskConfiguration.getTags({id:o.deskConfiguration.id}).$promise.then(function(e){o.selectedTags=e.rows?_.map(e.rows,"id"):[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditDeskConfiguration=function(e,n){a.show({controller:"CreateOrEditDeskConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{deskConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getDeskConfiguration(0)})},o.deleteDeskConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the deskConfiguration?").htmlContent("<b>"+(n.name||"deskConfiguration")+"</b> will be deleted.").ariaLabel("delete deskConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intDeskConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"DeskConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getDeskConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedTags=[],o.selectTagsChanged=function(e){i.intDeskConfiguration.setTags({id:o.deskConfiguration.id,ids:o.selectedTags}).$promise.then(function(){s.success({title:"Tags set!",msg:"Tags has been set!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ADDTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},i.tag.get({nolimit:!0,sort:"name"}).$promise.then(function(e){o.tags=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}),o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditDeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.deskConfiguration,account:o.deskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditDeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.deskConfiguration,account:o.deskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditDeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/deskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.deskConfiguration,account:o.deskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("DeskAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_DESKCONFIGURATION",g.deskConfiguration=angular.copy(l),g.configurations=r,g.newDeskConfiguration=!1,g.deskConfiguration||(g.deskConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_DESKCONFIGURATION",g.newDeskConfiguration=!0),g.addNewDeskConfiguration=function(){g.errors=[],d.intDeskAccount.addConfiguration({id:n.params.id},g.deskConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"DeskConfiguration properly created",msg:g.deskConfiguration.name?g.deskConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDeskConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveDeskConfiguration=function(){g.errors=[],d.intDeskConfiguration.update({id:g.deskConfiguration.id},g.deskConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"DeskConfiguration properly saved!",msg:g.deskConfiguration.name?g.deskConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDeskConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteDeskConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The deskConfiguration will be deleted.").ariaLabel("Delete DeskConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intDeskConfiguration.delete({id:g.deskConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.deskConfiguration.id}),o.success({title:"DeskConfiguration properly deleted!",msg:(g.deskConfiguration.name||"deskConfiguration")+" has been deleted!"}),v(g.deskConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDeskConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDeskConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","deskConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditDeskConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intDeskField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intDeskField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intDeskField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intDeskAccount.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditDeskAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.deskAccount=c||e.params.deskAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoDeskAccounts=function(){e.go("app.integrations.deskAccounts",{},{reload:"app.integrations.deskAccounts"})},u.saveDeskAccount=function(){r.intDeskAccount.update({id:u.deskAccount.id},u.deskAccount).$promise.then(function(){l.success({title:"DeskAccount updated!",msg:u.deskAccount.name?u.deskAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintDeskAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","deskAccount","userProfileSection"],angular.module("app.integrations").controller("DeskAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_DYNAMICS365ACCOUNT",g.dynamics365Account=angular.copy(l),g.dynamics365Accounts=r,g.newDynamics365Account=!1,g.dynamics365Account||(g.dynamics365Account={serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_DYNAMICS365ACCOUNT",g.newDynamics365Account=!0),g.addNewDynamics365Account=function(){g.errors=[],d.intDynamics365Account.save(g.dynamics365Account).$promise.then(function(e){g.dynamics365Accounts.unshift(e.toJSON()),o.success({title:"Dynamics365Account properly created",msg:g.dynamics365Account.name?g.dynamics365Account.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDynamics365Account.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDynamics365Account.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveDynamics365Account=function(){g.errors=[],d.intDynamics365Account.update({id:g.dynamics365Account.id},g.dynamics365Account).$promise.then(function(e){var n=_.find(g.dynamics365Accounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Dynamics365Account properly saved!",msg:g.dynamics365Account.name?g.dynamics365Account.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDynamics365Account.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDynamics365Account.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteDynamics365Account=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The dynamics365Account will be deleted.").ariaLabel("Delete Dynamics365Account").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intDynamics365Account.delete({id:g.dynamics365Account.id}).$promise.then(function(){_.remove(g.dynamics365Accounts,{id:g.dynamics365Account.id}),o.success({title:"Dynamics365Account properly deleted!",msg:(g.dynamics365Account.name||"dynamics365Account")+" has been deleted!"}),v(g.dynamics365Account)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDynamics365Account.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDynamics365Account.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","dynamics365Accounts","dynamics365Account","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditDynamics365AccountDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.dynamics365Accounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="dynamics365Accounts",f.listOrder="",f.listOrderAsc=null,f.selectedDynamics365Accounts=[],f.query={fields:"createdAt,updatedAt,id,name,username,password,remoteUri,tenantId,clientId,clientSecret,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.integrations.dynamics365Accounts.edit",{id:e.id,dynamics365Account:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intDynamics365Account.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"Dynamics365Account properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"Dynamics365Account properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("dynamics365Account")+"?").htmlContent("<b>"+(e.name||"dynamics365Account")+"</b> will be deleted.").ariaLabel("delete dynamics365Account").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getDynamics365Accounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intDynamics365Account.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Dynamics365Accounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditDynamics365Account=function(e,n){i.show({controller:"CreateOrEditDynamics365AccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{dynamics365Account:n,dynamics365Accounts:f.dynamics365Accounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteDynamics365Account=y,f.exportSelectedDynamics365Accounts=function(){var e=angular.copy(f.selectedDynamics365Accounts);return f.selectedDynamics365Accounts=[],e},f.deleteSelectedDynamics365Accounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected dynamics365Accounts?").htmlContent("<b>"+f.selectedDynamics365Accounts.length+" selected</b> will be deleted.").ariaLabel("delete Dynamics365Accounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedDynamics365Accounts.forEach(function(e){y(e)}),f.selectedDynamics365Accounts=[]})},f.deselectDynamics365Accounts=function(){f.selectedDynamics365Accounts=[]},f.selectAllDynamics365Accounts=function(){f.selectedDynamics365Accounts=f.dynamics365Accounts.rows};var b=!0,A=1;function E(e){f.dynamics365Accounts=e||{count:0,rows:[]}}function y(e){m.intDynamics365Account.delete({id:e.id}).$promise.then(function(){_.remove(f.dynamics365Accounts.rows,{id:e.id}),f.dynamics365Accounts.count-=1,f.dynamics365Accounts.rows.length||f.getDynamics365Accounts(),p.success({title:_.startCase("Dynamics365Account")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintDynamics365Account"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintDynamics365Account",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getDynamics365Accounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","dynamics365Accounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("Dynamics365AccountsController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intDynamics365Field.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intDynamics365Field.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intDynamics365Field.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.dynamics365Account={},o.dynamics365Configuration={},o.configurations=[],o.selectedDynamics365Configuration=-1,o.crudPermissions,o.init=function(e,n){o.dynamics365Account=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intDynamics365Account.getConfigurations({id:o.dynamics365Account.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getDynamics365Configuration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getDynamics365Configuration=function(e){o.dynamics365Configuration=o.configurations[e],o.selectedDynamics365Configuration=e,i.intDynamics365Configuration.getSubjects({id:o.dynamics365Configuration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intDynamics365Configuration.getDescriptions({id:o.dynamics365Configuration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intDynamics365Configuration.getFields({id:o.dynamics365Configuration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditDynamics365Configuration=function(e,n){a.show({controller:"CreateOrEditDynamics365ConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{dynamics365Configuration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getDynamics365Configuration(0)})},o.deleteDynamics365Configuration=function(e,n){var t=a.confirm().title("Are you sure want to delete the dynamics365Configuration?").htmlContent("<b>"+(n.name||"dynamics365Configuration")+"</b> will be deleted.").ariaLabel("delete dynamics365Configuration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intDynamics365Configuration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"Dynamics365Configuration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getDynamics365Configuration(0)})},function(){console.log("CANCEL")})},o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditDynamics365AccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.dynamics365Configuration,account:o.dynamics365Account,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditDynamics365AccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.dynamics365Configuration,account:o.dynamics365Account,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditDynamics365AccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/dynamics365Accounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.dynamics365Configuration,account:o.dynamics365Account,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("Dynamics365AccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_DYNAMICS365CONFIGURATION",g.dynamics365Configuration=angular.copy(l),g.configurations=r,g.newDynamics365Configuration=!1,g.dynamics365Configuration||(g.dynamics365Configuration={channel:"voice",type:"inbound",ticketType:"incident"},g.title="INTEGRATIONS.NEW_DYNAMICS365CONFIGURATION",g.newDynamics365Configuration=!0),g.addNewDynamics365Configuration=function(){g.errors=[],d.intDynamics365Account.addConfiguration({id:n.params.id},g.dynamics365Configuration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"Dynamics365Configuration properly created",msg:g.dynamics365Configuration.name?g.dynamics365Configuration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDynamics365Configuration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDynamics365Configuration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveDynamics365Configuration=function(){g.errors=[],d.intDynamics365Configuration.update({id:g.dynamics365Configuration.id},g.dynamics365Configuration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Dynamics365Configuration properly saved!",msg:g.dynamics365Configuration.name?g.dynamics365Configuration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDynamics365Configuration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDynamics365Configuration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteDynamics365Configuration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The dynamics365Configuration will be deleted.").ariaLabel("Delete Dynamics365Configuration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intDynamics365Configuration.delete({id:g.dynamics365Configuration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.dynamics365Configuration.id}),o.success({title:"Dynamics365Configuration properly deleted!",msg:(g.dynamics365Configuration.name||"dynamics365Configuration")+" has been deleted!"}),v(g.dynamics365Configuration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intDynamics365Configuration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intDynamics365Configuration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","dynamics365Configuration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditDynamics365ConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intDynamics365Field.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intDynamics365Field.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intDynamics365Field.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intDynamics365Account.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditDynamics365AccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.dynamics365Account=c||e.params.dynamics365Account||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoDynamics365Accounts=function(){e.go("app.integrations.dynamics365Accounts",{},{reload:"app.integrations.dynamics365Accounts"})},u.saveDynamics365Account=function(){r.intDynamics365Account.update({id:u.dynamics365Account.id},u.dynamics365Account).$promise.then(function(){l.success({title:"Dynamics365Account updated!",msg:u.dynamics365Account.name?u.dynamics365Account.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintDynamics365Account",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","dynamics365Account","userProfileSection"],angular.module("app.integrations").controller("Dynamics365AccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_FRESHDESKACCOUNT",g.freshdeskAccount=angular.copy(l),g.freshdeskAccounts=r,g.newFreshdeskAccount=!1,g.freshdeskAccount||(g.freshdeskAccount={serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_FRESHDESKACCOUNT",g.newFreshdeskAccount=!0),g.addNewFreshdeskAccount=function(){g.errors=[],d.intFreshdeskAccount.save(g.freshdeskAccount).$promise.then(function(e){g.freshdeskAccounts.unshift(e.toJSON()),o.success({title:"FreshdeskAccount properly created",msg:g.freshdeskAccount.name?g.freshdeskAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshdeskAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveFreshdeskAccount=function(){g.errors=[],d.intFreshdeskAccount.update({id:g.freshdeskAccount.id},g.freshdeskAccount).$promise.then(function(e){var n=_.find(g.freshdeskAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"FreshdeskAccount properly saved!",msg:g.freshdeskAccount.name?g.freshdeskAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshdeskAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteFreshdeskAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The freshdeskAccount will be deleted.").ariaLabel("Delete FreshdeskAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intFreshdeskAccount.delete({id:g.freshdeskAccount.id}).$promise.then(function(){_.remove(g.freshdeskAccounts,{id:g.freshdeskAccount.id}),o.success({title:"FreshdeskAccount properly deleted!",msg:(g.freshdeskAccount.name||"freshdeskAccount")+" has been deleted!"}),v(g.freshdeskAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshdeskAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","freshdeskAccounts","freshdeskAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditFreshdeskAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intFreshdeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intFreshdeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intFreshdeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.freshdeskAccount={},o.freshdeskConfiguration={},o.configurations=[],o.selectedFreshdeskConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.freshdeskAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intFreshdeskAccount.getConfigurations({id:o.freshdeskAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getFreshdeskConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getFreshdeskConfiguration=function(e){o.freshdeskConfiguration=o.configurations[e],o.selectedFreshdeskConfiguration=e,i.intFreshdeskConfiguration.getSubjects({id:o.freshdeskConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intFreshdeskConfiguration.getDescriptions({id:o.freshdeskConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intFreshdeskConfiguration.getFields({id:o.freshdeskConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.intFreshdeskConfiguration.getTags({id:o.freshdeskConfiguration.id}).$promise.then(function(e){o.selectedTags=e.rows?_.map(e.rows,"id"):[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditFreshdeskConfiguration=function(e,n){a.show({controller:"CreateOrEditFreshdeskConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{freshdeskConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getFreshdeskConfiguration(0)})},o.deleteFreshdeskConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the freshdeskConfiguration?").htmlContent("<b>"+(n.name||"freshdeskConfiguration")+"</b> will be deleted.").ariaLabel("delete freshdeskConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intFreshdeskConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"FreshdeskConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getFreshdeskConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedTags=[],o.selectTagsChanged=function(e){i.intFreshdeskConfiguration.setTags({id:o.freshdeskConfiguration.id,ids:o.selectedTags}).$promise.then(function(){s.success({title:"Tags set!",msg:"Tags has been set!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ADDTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},i.tag.get({nolimit:!0,sort:"name"}).$promise.then(function(e){o.tags=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}),o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditFreshdeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.freshdeskConfiguration,account:o.freshdeskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditFreshdeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.freshdeskConfiguration,account:o.freshdeskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditFreshdeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.freshdeskConfiguration,account:o.freshdeskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("FreshdeskAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_FRESHDESKCONFIGURATION",g.freshdeskConfiguration=angular.copy(l),g.configurations=r,g.newFreshdeskConfiguration=!1,g.freshdeskConfiguration||(g.freshdeskConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_FRESHDESKCONFIGURATION",g.newFreshdeskConfiguration=!0),g.addNewFreshdeskConfiguration=function(){g.errors=[],d.intFreshdeskAccount.addConfiguration({id:n.params.id},g.freshdeskConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"FreshdeskConfiguration properly created",msg:g.freshdeskConfiguration.name?g.freshdeskConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshdeskConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveFreshdeskConfiguration=function(){g.errors=[],d.intFreshdeskConfiguration.update({id:g.freshdeskConfiguration.id},g.freshdeskConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"FreshdeskConfiguration properly saved!",msg:g.freshdeskConfiguration.name?g.freshdeskConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshdeskConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteFreshdeskConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The freshdeskConfiguration will be deleted.").ariaLabel("Delete FreshdeskConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intFreshdeskConfiguration.delete({id:g.freshdeskConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.freshdeskConfiguration.id}),o.success({title:"FreshdeskConfiguration properly deleted!",msg:(g.freshdeskConfiguration.name||"freshdeskConfiguration")+" has been deleted!"}),v(g.freshdeskConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshdeskConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshdeskConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","freshdeskConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditFreshdeskConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intFreshdeskField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intFreshdeskField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intFreshdeskField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intFreshdeskAccount.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditFreshdeskAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.freshdeskAccount=c||e.params.freshdeskAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoFreshdeskAccounts=function(){e.go("app.integrations.freshdeskAccounts",{},{reload:"app.integrations.freshdeskAccounts"})},u.saveFreshdeskAccount=function(){r.intFreshdeskAccount.update({id:u.freshdeskAccount.id},u.freshdeskAccount).$promise.then(function(){l.success({title:"FreshdeskAccount updated!",msg:u.freshdeskAccount.name?u.freshdeskAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintFreshdeskAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","freshdeskAccount","userProfileSection"],angular.module("app.integrations").controller("FreshdeskAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.freshdeskAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="freshdeskAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedFreshdeskAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.integrations.freshdeskAccounts.edit",{id:e.id,freshdeskAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intFreshdeskAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"FreshdeskAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"FreshdeskAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("freshdeskAccount")+"?").htmlContent("<b>"+(e.name||"freshdeskAccount")+"</b> will be deleted.").ariaLabel("delete freshdeskAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getFreshdeskAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intFreshdeskAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="FreshdeskAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditFreshdeskAccount=function(e,n){i.show({controller:"CreateOrEditFreshdeskAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshdeskAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{freshdeskAccount:n,freshdeskAccounts:f.freshdeskAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteFreshdeskAccount=y,f.exportSelectedFreshdeskAccounts=function(){var e=angular.copy(f.selectedFreshdeskAccounts);return f.selectedFreshdeskAccounts=[],e},f.deleteSelectedFreshdeskAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected freshdeskAccounts?").htmlContent("<b>"+f.selectedFreshdeskAccounts.length+" selected</b> will be deleted.").ariaLabel("delete FreshdeskAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedFreshdeskAccounts.forEach(function(e){y(e)}),f.selectedFreshdeskAccounts=[]})},f.deselectFreshdeskAccounts=function(){f.selectedFreshdeskAccounts=[]},f.selectAllFreshdeskAccounts=function(){f.selectedFreshdeskAccounts=f.freshdeskAccounts.rows};var b=!0,A=1;function E(e){f.freshdeskAccounts=e||{count:0,rows:[]}}function y(e){m.intFreshdeskAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.freshdeskAccounts.rows,{id:e.id}),f.freshdeskAccounts.count-=1,f.freshdeskAccounts.rows.length||f.getFreshdeskAccounts(),p.success({title:_.startCase("FreshdeskAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintFreshdeskAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintFreshdeskAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getFreshdeskAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","freshdeskAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("FreshdeskAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_FRESHSALESACCOUNT",g.freshsalesAccount=angular.copy(l),g.freshsalesAccounts=r,g.newFreshsalesAccount=!1,g.freshsalesAccount||(g.freshsalesAccount={serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_FRESHSALESACCOUNT",g.newFreshsalesAccount=!0),g.addNewFreshsalesAccount=function(){g.errors=[],d.intFreshsalesAccount.save(g.freshsalesAccount).$promise.then(function(e){g.freshsalesAccounts.unshift(e.toJSON()),o.success({title:"FreshsalesAccount properly created",msg:g.freshsalesAccount.name?g.freshsalesAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshsalesAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshsalesAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveFreshsalesAccount=function(){g.errors=[],d.intFreshsalesAccount.update({id:g.freshsalesAccount.id},g.freshsalesAccount).$promise.then(function(e){var n=_.find(g.freshsalesAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"FreshsalesAccount properly saved!",msg:g.freshsalesAccount.name?g.freshsalesAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshsalesAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshsalesAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteFreshsalesAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The freshsalesAccount will be deleted.").ariaLabel("Delete FreshsalesAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intFreshsalesAccount.delete({id:g.freshsalesAccount.id}).$promise.then(function(){_.remove(g.freshsalesAccounts,{id:g.freshsalesAccount.id}),o.success({title:"FreshsalesAccount properly deleted!",msg:(g.freshsalesAccount.name||"freshsalesAccount")+" has been deleted!"}),v(g.freshsalesAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshsalesAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshsalesAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","freshsalesAccounts","freshsalesAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditFreshsalesAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intFreshsalesField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intFreshsalesField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intFreshsalesField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.freshsalesAccount={},o.freshsalesConfiguration={},o.configurations=[],o.selectedFreshsalesConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.freshsalesAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intFreshsalesAccount.getConfigurations({id:o.freshsalesAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getFreshsalesConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getFreshsalesConfiguration=function(e){o.freshsalesConfiguration=o.configurations[e],o.selectedFreshsalesConfiguration=e,i.intFreshsalesConfiguration.getSubjects({id:o.freshsalesConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intFreshsalesConfiguration.getDescriptions({id:o.freshsalesConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intFreshsalesConfiguration.getFields({id:o.freshsalesConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditFreshsalesConfiguration=function(e,n){a.show({controller:"CreateOrEditFreshsalesConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{freshsalesConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getFreshsalesConfiguration(0)})},o.deleteFreshsalesConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the freshsalesConfiguration?").htmlContent("<b>"+(n.name||"freshsalesConfiguration")+"</b> will be deleted.").ariaLabel("delete freshsalesConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intFreshsalesConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"FreshsalesConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getFreshsalesConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditFreshsalesAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.freshsalesConfiguration,account:o.freshsalesAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditFreshsalesAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.freshsalesConfiguration,account:o.freshsalesAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditFreshsalesAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.freshsalesConfiguration,account:o.freshsalesAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("FreshsalesAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_FRESHSALESCONFIGURATION",g.freshsalesConfiguration=angular.copy(l),g.configurations=r,g.newFreshsalesConfiguration=!1,g.freshsalesConfiguration||(g.freshsalesConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_FRESHSALESCONFIGURATION",g.newFreshsalesConfiguration=!0),g.addNewFreshsalesConfiguration=function(){g.errors=[],d.intFreshsalesAccount.addConfiguration({id:n.params.id},g.freshsalesConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"FreshsalesConfiguration properly created",msg:g.freshsalesConfiguration.name?g.freshsalesConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshsalesConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshsalesConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveFreshsalesConfiguration=function(){g.errors=[],d.intFreshsalesConfiguration.update({id:g.freshsalesConfiguration.id},g.freshsalesConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"FreshsalesConfiguration properly saved!",msg:g.freshsalesConfiguration.name?g.freshsalesConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshsalesConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshsalesConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteFreshsalesConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The freshsalesConfiguration will be deleted.").ariaLabel("Delete FreshsalesConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intFreshsalesConfiguration.delete({id:g.freshsalesConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.freshsalesConfiguration.id}),o.success({title:"FreshsalesConfiguration properly deleted!",msg:(g.freshsalesConfiguration.name||"freshsalesConfiguration")+" has been deleted!"}),v(g.freshsalesConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intFreshsalesConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intFreshsalesConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","freshsalesConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditFreshsalesConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intFreshsalesField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intFreshsalesField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intFreshsalesField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intFreshsalesAccount.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditFreshsalesAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.freshsalesAccount=c||e.params.freshsalesAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoFreshsalesAccounts=function(){e.go("app.integrations.freshsalesAccounts",{},{reload:"app.integrations.freshsalesAccounts"})},u.saveFreshsalesAccount=function(){r.intFreshsalesAccount.update({id:u.freshsalesAccount.id},u.freshsalesAccount).$promise.then(function(){l.success({title:"FreshsalesAccount updated!",msg:u.freshsalesAccount.name?u.freshsalesAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintFreshsalesAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","freshsalesAccount","userProfileSection"],angular.module("app.integrations").controller("FreshsalesAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.freshsalesAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="freshsalesAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedFreshsalesAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,username,remoteUri,apiKey,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.integrations.freshsalesAccounts.edit",{id:e.id,freshsalesAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intFreshsalesAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"FreshsalesAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"FreshsalesAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("freshsalesAccount")+"?").htmlContent("<b>"+(e.name||"freshsalesAccount")+"</b> will be deleted.").ariaLabel("delete freshsalesAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getFreshsalesAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intFreshsalesAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="FreshsalesAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditFreshsalesAccount=function(e,n){i.show({controller:"CreateOrEditFreshsalesAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/freshsalesAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{freshsalesAccount:n,freshsalesAccounts:f.freshsalesAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteFreshsalesAccount=y,f.exportSelectedFreshsalesAccounts=function(){var e=angular.copy(f.selectedFreshsalesAccounts);return f.selectedFreshsalesAccounts=[],e},f.deleteSelectedFreshsalesAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected freshsalesAccounts?").htmlContent("<b>"+f.selectedFreshsalesAccounts.length+" selected</b> will be deleted.").ariaLabel("delete FreshsalesAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedFreshsalesAccounts.forEach(function(e){y(e)}),f.selectedFreshsalesAccounts=[]})},f.deselectFreshsalesAccounts=function(){f.selectedFreshsalesAccounts=[]},f.selectAllFreshsalesAccounts=function(){f.selectedFreshsalesAccounts=f.freshsalesAccounts.rows};var b=!0,A=1;function E(e){f.freshsalesAccounts=e||{count:0,rows:[]}}function y(e){m.intFreshsalesAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.freshsalesAccounts.rows,{id:e.id}),f.freshsalesAccounts.count-=1,f.freshsalesAccounts.rows.length||f.getFreshsalesAccounts(),p.success({title:_.startCase("FreshsalesAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintFreshsalesAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintFreshsalesAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getFreshsalesAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","freshsalesAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("FreshsalesAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_SALESFORCEACCOUNT",g.salesforceAccount=angular.copy(l),g.salesforceAccounts=r,g.newSalesforceAccount=!1,g.salesforceAccount||(g.salesforceAccount={type:"integrationTab",serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_SALESFORCEACCOUNT",g.newSalesforceAccount=!0),g.addNewSalesforceAccount=function(){g.errors=[],d.intSalesforceAccount.save(g.salesforceAccount).$promise.then(function(e){g.salesforceAccounts.unshift(e.toJSON()),o.success({title:"SalesforceAccount properly created",msg:g.salesforceAccount.name?g.salesforceAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSalesforceAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSalesforceAccount=function(){g.errors=[],d.intSalesforceAccount.update({id:g.salesforceAccount.id},g.salesforceAccount).$promise.then(function(e){var n=_.find(g.salesforceAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"SalesforceAccount properly saved!",msg:g.salesforceAccount.name?g.salesforceAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSalesforceAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSalesforceAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The salesforceAccount will be deleted.").ariaLabel("Delete SalesforceAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intSalesforceAccount.delete({id:g.salesforceAccount.id}).$promise.then(function(){_.remove(g.salesforceAccounts,{id:g.salesforceAccount.id}),o.success({title:"SalesforceAccount properly deleted!",msg:(g.salesforceAccount.name||"salesforceAccount")+" has been deleted!"}),v(g.salesforceAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSalesforceAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","salesforceAccounts","salesforceAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditSalesforceAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function n(){return"Case"===o.salesforceConfiguration.ticketType&&("lead"===o.salesforceConfiguration.moduleCreate||_.includes(["lead","contact_lead","account_contact_lead"],o.salesforceConfiguration.moduleSearch))}function r(){return _.includes(["lead","contact_lead","account_contact_lead"],o.salesforceConfiguration.moduleSearch)}function l(){return _.includes(["contact","contact_lead","account_contact_lead"],o.salesforceConfiguration.moduleSearch)}function d(){return _.includes(["account","account_contact_lead"],o.salesforceConfiguration.moduleSearch)}function c(){return i.intSalesforceConfiguration.update({id:o.salesforceConfiguration.id},o.salesforceConfiguration).$promise.then(function(){s.success({title:"Module updated!",msg:"Module has been updated!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function m(e){i.intSalesforceField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function u(e){i.intSalesforceField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function p(e){i.intSalesforceField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.salesforceAccount={},o.salesforceConfiguration={},o.configurations=[],o.selectedSalesforceConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.salesforceAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intSalesforceAccount.getConfigurations({id:o.salesforceAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getSalesforceConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getSalesforceConfiguration=function(e){o.salesforceConfiguration=o.configurations[e],o.salesforceConfiguration.isLead=n(),o.salesforceConfiguration.isLeadSearch=r(),o.salesforceConfiguration.isContactSearch=l(),o.salesforceConfiguration.isAccountSearch=d(),o.selectedSalesforceConfiguration=e,i.intSalesforceConfiguration.getSubjects({id:o.salesforceConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intSalesforceConfiguration.getDescriptions({id:o.salesforceConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intSalesforceConfiguration.getFields({id:o.salesforceConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditSalesforceConfiguration=function(e,n){a.show({controller:"CreateOrEditSalesforceConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{salesforceConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getSalesforceConfiguration(0)})},o.deleteSalesforceConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the salesforceConfiguration?").htmlContent("<b>"+(n.name||"salesforceConfiguration")+"</b> will be deleted.").ariaLabel("delete salesforceConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intSalesforceConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"SalesforceConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getSalesforceConfiguration(0)})},function(){console.log("CANCEL")})},o.selectChangedAdvanced=function(){o.salesforceConfiguration.isLead=n(),o.salesforceConfiguration.isLeadSearch=r(),o.salesforceConfiguration.isContactSearch=l(),o.salesforceConfiguration.isAccountSearch=d(),c()},o.salesforceConfiguration.isLead=!1,o.salesforceConfiguration.isLeadSearch=!1,o.salesforceConfiguration.isContactSearch=!1,o.salesforceConfiguration.isAccountSearch=!1,o.checkIsLead=n,o.checkIsLeadSearch=r,o.checkIsContactSearch=l,o.checkIsAccountSearch=d,o.saveSalesforceConfiguration=c,o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditSalesforceAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.salesforceConfiguration,account:o.salesforceAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){m(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){m(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditSalesforceAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.salesforceConfiguration,account:o.salesforceAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){u(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){u(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditSalesforceAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.salesforceConfiguration,account:o.salesforceAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){p(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){p(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("SalesforceAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_SALESFORCECONFIGURATION",g.salesforceConfiguration=angular.copy(l),g.configurations=r,g.newSalesforceConfiguration=!1,g.salesforceConfiguration||(g.salesforceConfiguration={channel:"voice",type:"inbound",ticketType:"Task"},g.title="INTEGRATIONS.NEW_SALESFORCECONFIGURATION",g.newSalesforceConfiguration=!0),g.addNewSalesforceConfiguration=function(){g.errors=[],d.intSalesforceAccount.addConfiguration({id:n.params.id},g.salesforceConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"SalesforceConfiguration properly created",msg:g.salesforceConfiguration.name?g.salesforceConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSalesforceConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSalesforceConfiguration=function(){g.errors=[],d.intSalesforceConfiguration.update({id:g.salesforceConfiguration.id},g.salesforceConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"SalesforceConfiguration properly saved!",msg:g.salesforceConfiguration.name?g.salesforceConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSalesforceConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSalesforceConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The salesforceConfiguration will be deleted.").ariaLabel("Delete SalesforceConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intSalesforceConfiguration.delete({id:g.salesforceConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.salesforceConfiguration.id}),o.success({title:"SalesforceConfiguration properly deleted!",msg:(g.salesforceConfiguration.name||"salesforceConfiguration")+" has been deleted!"}),v(g.salesforceConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSalesforceConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSalesforceConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","salesforceConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditSalesforceConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intSalesforceField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intSalesforceField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intSalesforceField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intSalesforceAccount.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditSalesforceAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.salesforceAccount=c||e.params.salesforceAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoSalesforceAccounts=function(){e.go("app.integrations.salesforceAccounts",{},{reload:"app.integrations.salesforceAccounts"})},u.saveSalesforceAccount=function(){r.intSalesforceAccount.update({id:u.salesforceAccount.id},u.salesforceAccount).$promise.then(function(){l.success({title:"SalesforceAccount updated!",msg:u.salesforceAccount.name?u.salesforceAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintSalesforceAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","salesforceAccount","userProfileSection"],angular.module("app.integrations").controller("SalesforceAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.salesforceAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="salesforceAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedSalesforceAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,type,username,remoteUri,password,clientId,clientSecret,securityToken,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.arraytype=_.keyBy([{option:"Integration_Tab",value:"'integrationTab'"},{option:"New_Tab",value:"'newTab'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.integrations.salesforceAccounts.edit",{id:e.id,salesforceAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intSalesforceAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"SalesforceAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"SalesforceAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("salesforceAccount")+"?").htmlContent("<b>"+(e.name||"salesforceAccount")+"</b> will be deleted.").ariaLabel("delete salesforceAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getSalesforceAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intSalesforceAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="SalesforceAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSalesforceAccount=function(e,n){i.show({controller:"CreateOrEditSalesforceAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/salesforceAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{salesforceAccount:n,salesforceAccounts:f.salesforceAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSalesforceAccount=y,f.exportSelectedSalesforceAccounts=function(){var e=angular.copy(f.selectedSalesforceAccounts);return f.selectedSalesforceAccounts=[],e},f.deleteSelectedSalesforceAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected salesforceAccounts?").htmlContent("<b>"+f.selectedSalesforceAccounts.length+" selected</b> will be deleted.").ariaLabel("delete SalesforceAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedSalesforceAccounts.forEach(function(e){y(e)}),f.selectedSalesforceAccounts=[]})},f.deselectSalesforceAccounts=function(){f.selectedSalesforceAccounts=[]},f.selectAllSalesforceAccounts=function(){f.selectedSalesforceAccounts=f.salesforceAccounts.rows};var b=!0,A=1;function E(e){f.salesforceAccounts=e||{count:0,rows:[]}}function y(e){m.intSalesforceAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.salesforceAccounts.rows,{id:e.id}),f.salesforceAccounts.count-=1,f.salesforceAccounts.rows.length||f.getSalesforceAccounts(),p.success({title:_.startCase("SalesforceAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintSalesforceAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintSalesforceAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getSalesforceAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","salesforceAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("SalesforceAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_SERVICENOWACCOUNT",g.servicenowAccount=angular.copy(l),g.servicenowAccounts=r,g.newServicenowAccount=!1,g.servicenowAccount||(g.servicenowAccount={serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_SERVICENOWACCOUNT",g.newServicenowAccount=!0),g.addNewServicenowAccount=function(){g.errors=[],d.intServicenowAccount.save(g.servicenowAccount).$promise.then(function(e){g.servicenowAccounts.unshift(e.toJSON()),o.success({title:"ServicenowAccount properly created",msg:g.servicenowAccount.name?g.servicenowAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intServicenowAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intServicenowAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveServicenowAccount=function(){g.errors=[],d.intServicenowAccount.update({id:g.servicenowAccount.id},g.servicenowAccount).$promise.then(function(e){var n=_.find(g.servicenowAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ServicenowAccount properly saved!",msg:g.servicenowAccount.name?g.servicenowAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intServicenowAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intServicenowAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteServicenowAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The servicenowAccount will be deleted.").ariaLabel("Delete ServicenowAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intServicenowAccount.delete({id:g.servicenowAccount.id}).$promise.then(function(){_.remove(g.servicenowAccounts,{id:g.servicenowAccount.id}),o.success({title:"ServicenowAccount properly deleted!",msg:(g.servicenowAccount.name||"servicenowAccount")+" has been deleted!"}),v(g.servicenowAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intServicenowAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intServicenowAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","servicenowAccounts","servicenowAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditServicenowAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intServicenowField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intServicenowField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intServicenowField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.servicenowAccount={},o.servicenowConfiguration={},o.configurations=[],o.selectedServicenowConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.servicenowAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intServicenowAccount.getConfigurations({id:o.servicenowAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getServicenowConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getServicenowConfiguration=function(e){o.servicenowConfiguration=o.configurations[e],o.selectedServicenowConfiguration=e,i.intServicenowConfiguration.getSubjects({id:o.servicenowConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intServicenowConfiguration.getDescriptions({id:o.servicenowConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intServicenowConfiguration.getFields({id:o.servicenowConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditServicenowConfiguration=function(e,n){a.show({controller:"CreateOrEditServicenowConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/servicenowAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{servicenowConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getServicenowConfiguration(0)})},o.deleteServicenowConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the servicenowConfiguration?").htmlContent("<b>"+(n.name||"servicenowConfiguration")+"</b> will be deleted.").ariaLabel("delete servicenowConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intServicenowConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"ServicenowConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getServicenowConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditServicenowAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/servicenowAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.servicenowConfiguration,account:o.servicenowAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditServicenowAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/servicenowAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.servicenowConfiguration,account:o.servicenowAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditServicenowAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/servicenowAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.servicenowConfiguration,account:o.servicenowAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("ServicenowAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_SERVICENOWCONFIGURATION",g.servicenowConfiguration=angular.copy(l),g.configurations=r,g.newServicenowConfiguration=!1,g.servicenowConfiguration||(g.servicenowConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_SERVICENOWCONFIGURATION",g.newServicenowConfiguration=!0),g.addNewServicenowConfiguration=function(){g.errors=[],d.intServicenowAccount.addConfiguration({id:n.params.id},g.servicenowConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"ServicenowConfiguration properly created",msg:g.servicenowConfiguration.name?g.servicenowConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intServicenowConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intServicenowConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveServicenowConfiguration=function(){g.errors=[],d.intServicenowConfiguration.update({id:g.servicenowConfiguration.id},g.servicenowConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ServicenowConfiguration properly saved!",msg:g.servicenowConfiguration.name?g.servicenowConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intServicenowConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intServicenowConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteServicenowConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The servicenowConfiguration will be deleted.").ariaLabel("Delete ServicenowConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intServicenowConfiguration.delete({id:g.servicenowConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.servicenowConfiguration.id}),o.success({title:"ServicenowConfiguration properly deleted!",msg:(g.servicenowConfiguration.name||"servicenowConfiguration")+" has been deleted!"}),v(g.servicenowConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intServicenowConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intServicenowConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","servicenowConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditServicenowConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intServicenowField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intServicenowField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intServicenowField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intServicenowAccount.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditServicenowAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.servicenowAccount=c||e.params.servicenowAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoServicenowAccounts=function(){e.go("app.integrations.servicenowAccounts",{},{reload:"app.integrations.servicenowAccounts"})},u.saveServicenowAccount=function(){r.intServicenowAccount.update({id:u.servicenowAccount.id},u.servicenowAccount).$promise.then(function(){l.success({title:"ServicenowAccount updated!",msg:u.servicenowAccount.name?u.servicenowAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintServicenowAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","servicenowAccount","userProfileSection"],angular.module("app.integrations").controller("ServicenowAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.servicenowAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="servicenowAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedServicenowAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,username,password,email,remoteUri,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.integrations.servicenowAccounts.edit",{id:e.id,servicenowAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intServicenowAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"ServicenowAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"ServicenowAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("servicenowAccount")+"?").htmlContent("<b>"+(e.name||"servicenowAccount")+"</b> will be deleted.").ariaLabel("delete servicenowAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getServicenowAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intServicenowAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ServicenowAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditServicenowAccount=function(e,n){i.show({controller:"CreateOrEditServicenowAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/servicenowAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{servicenowAccount:n,servicenowAccounts:f.servicenowAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteServicenowAccount=y,f.exportSelectedServicenowAccounts=function(){var e=angular.copy(f.selectedServicenowAccounts);return f.selectedServicenowAccounts=[],e},f.deleteSelectedServicenowAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected servicenowAccounts?").htmlContent("<b>"+f.selectedServicenowAccounts.length+" selected</b> will be deleted.").ariaLabel("delete ServicenowAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedServicenowAccounts.forEach(function(e){y(e)}),f.selectedServicenowAccounts=[]})},f.deselectServicenowAccounts=function(){f.selectedServicenowAccounts=[]},f.selectAllServicenowAccounts=function(){f.selectedServicenowAccounts=f.servicenowAccounts.rows};var b=!0,A=1;function E(e){f.servicenowAccounts=e||{count:0,rows:[]}}function y(e){m.intServicenowAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.servicenowAccounts.rows,{id:e.id}),f.servicenowAccounts.count-=1,f.servicenowAccounts.rows.length||f.getServicenowAccounts(),p.success({title:_.startCase("ServicenowAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintServicenowAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintServicenowAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getServicenowAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","servicenowAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("ServicenowAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_SUGARCRMACCOUNT",g.sugarcrmAccount=angular.copy(l),g.sugarcrmAccounts=r,g.newSugarcrmAccount=!1,g.sugarcrmAccount||(g.sugarcrmAccount={serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_SUGARCRMACCOUNT",g.newSugarcrmAccount=!0),g.addNewSugarcrmAccount=function(){g.errors=[],d.intSugarcrmAccount.save(g.sugarcrmAccount).$promise.then(function(e){g.sugarcrmAccounts.unshift(e.toJSON()),o.success({title:"SugarcrmAccount properly created",msg:g.sugarcrmAccount.name?g.sugarcrmAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSugarcrmAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSugarcrmAccount=function(){g.errors=[],d.intSugarcrmAccount.update({id:g.sugarcrmAccount.id},g.sugarcrmAccount).$promise.then(function(e){var n=_.find(g.sugarcrmAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"SugarcrmAccount properly saved!",msg:g.sugarcrmAccount.name?g.sugarcrmAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSugarcrmAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSugarcrmAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The sugarcrmAccount will be deleted.").ariaLabel("Delete SugarcrmAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intSugarcrmAccount.delete({id:g.sugarcrmAccount.id}).$promise.then(function(){_.remove(g.sugarcrmAccounts,{id:g.sugarcrmAccount.id}),o.success({title:"SugarcrmAccount properly deleted!",msg:(g.sugarcrmAccount.name||"sugarcrmAccount")+" has been deleted!"}),v(g.sugarcrmAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSugarcrmAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","sugarcrmAccounts","sugarcrmAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditSugarcrmAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intSugarcrmField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intSugarcrmField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intSugarcrmField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.sugarcrmAccount={},o.sugarcrmConfiguration={},o.configurations=[],o.selectedSugarcrmConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.sugarcrmAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intSugarcrmAccount.getConfigurations({id:o.sugarcrmAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getSugarcrmConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getSugarcrmConfiguration=function(e){o.sugarcrmConfiguration=o.configurations[e],o.selectedSugarcrmConfiguration=e,i.intSugarcrmConfiguration.getSubjects({id:o.sugarcrmConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intSugarcrmConfiguration.getDescriptions({id:o.sugarcrmConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intSugarcrmConfiguration.getFields({id:o.sugarcrmConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditSugarcrmConfiguration=function(e,n){a.show({controller:"CreateOrEditSugarcrmConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{sugarcrmConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getSugarcrmConfiguration(0)})},o.deleteSugarcrmConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the sugarcrmConfiguration?").htmlContent("<b>"+(n.name||"sugarcrmConfiguration")+"</b> will be deleted.").ariaLabel("delete sugarcrmConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intSugarcrmConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"SugarcrmConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getSugarcrmConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditSugarcrmAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.sugarcrmConfiguration,account:o.sugarcrmAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditSugarcrmAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.sugarcrmConfiguration,account:o.sugarcrmAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditSugarcrmAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.sugarcrmConfiguration,account:o.sugarcrmAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("SugarcrmAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_SUGARCRMCONFIGURATION",g.sugarcrmConfiguration=angular.copy(l),g.configurations=r,g.newSugarcrmConfiguration=!1,g.sugarcrmConfiguration||(g.sugarcrmConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_SUGARCRMCONFIGURATION",g.newSugarcrmConfiguration=!0),g.addNewSugarcrmConfiguration=function(){g.errors=[],d.intSugarcrmAccount.addConfiguration({id:n.params.id},g.sugarcrmConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"SugarcrmConfiguration properly created",msg:g.sugarcrmConfiguration.name?g.sugarcrmConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSugarcrmConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSugarcrmConfiguration=function(){g.errors=[],d.intSugarcrmConfiguration.update({id:g.sugarcrmConfiguration.id},g.sugarcrmConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"SugarcrmConfiguration properly saved!",msg:g.sugarcrmConfiguration.name?g.sugarcrmConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSugarcrmConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSugarcrmConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The sugarcrmConfiguration will be deleted.").ariaLabel("Delete SugarcrmConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intSugarcrmConfiguration.delete({id:g.sugarcrmConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.sugarcrmConfiguration.id}),o.success({title:"SugarcrmConfiguration properly deleted!",msg:(g.sugarcrmConfiguration.name||"sugarcrmConfiguration")+" has been deleted!"}),v(g.sugarcrmConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intSugarcrmConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intSugarcrmConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","sugarcrmConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditSugarcrmConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intSugarcrmField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intSugarcrmField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intSugarcrmField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intSugarcrmAccount.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditSugarcrmAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.sugarcrmAccount=c||e.params.sugarcrmAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoSugarcrmAccounts=function(){e.go("app.integrations.sugarcrmAccounts",{},{reload:"app.integrations.sugarcrmAccounts"})},u.saveSugarcrmAccount=function(){r.intSugarcrmAccount.update({id:u.sugarcrmAccount.id},u.sugarcrmAccount).$promise.then(function(){l.success({title:"SugarcrmAccount updated!",msg:u.sugarcrmAccount.name?u.sugarcrmAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintSugarcrmAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","sugarcrmAccount","userProfileSection"],angular.module("app.integrations").controller("SugarcrmAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.sugarcrmAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="sugarcrmAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedSugarcrmAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,username,remoteUri,password,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.integrations.sugarcrmAccounts.edit",{id:e.id,sugarcrmAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intSugarcrmAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"SugarcrmAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"SugarcrmAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("sugarcrmAccount")+"?").htmlContent("<b>"+(e.name||"sugarcrmAccount")+"</b> will be deleted.").ariaLabel("delete sugarcrmAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getSugarcrmAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intSugarcrmAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="SugarcrmAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSugarcrmAccount=function(e,n){i.show({controller:"CreateOrEditSugarcrmAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/sugarcrmAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{sugarcrmAccount:n,sugarcrmAccounts:f.sugarcrmAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSugarcrmAccount=y,f.exportSelectedSugarcrmAccounts=function(){var e=angular.copy(f.selectedSugarcrmAccounts);return f.selectedSugarcrmAccounts=[],e},f.deleteSelectedSugarcrmAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected sugarcrmAccounts?").htmlContent("<b>"+f.selectedSugarcrmAccounts.length+" selected</b> will be deleted.").ariaLabel("delete SugarcrmAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedSugarcrmAccounts.forEach(function(e){y(e)}),f.selectedSugarcrmAccounts=[]})},f.deselectSugarcrmAccounts=function(){f.selectedSugarcrmAccounts=[]},f.selectAllSugarcrmAccounts=function(){f.selectedSugarcrmAccounts=f.sugarcrmAccounts.rows};var b=!0,A=1;function E(e){f.sugarcrmAccounts=e||{count:0,rows:[]}}function y(e){m.intSugarcrmAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.sugarcrmAccounts.rows,{id:e.id}),f.sugarcrmAccounts.count-=1,f.sugarcrmAccounts.rows.length||f.getSugarcrmAccounts(),p.success({title:_.startCase("SugarcrmAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintSugarcrmAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintSugarcrmAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getSugarcrmAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","sugarcrmAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("SugarcrmAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_VTIGERACCOUNT",g.vtigerAccount=angular.copy(l),g.vtigerAccounts=r,g.newVtigerAccount=!1,g.vtigerAccount||(g.vtigerAccount={serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_VTIGERACCOUNT",g.newVtigerAccount=!0),g.addNewVtigerAccount=function(){g.errors=[],d.intVtigerAccount.save(g.vtigerAccount).$promise.then(function(e){g.vtigerAccounts.unshift(e.toJSON()),o.success({title:"VtigerAccount properly created",msg:g.vtigerAccount.name?g.vtigerAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intVtigerAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveVtigerAccount=function(){g.errors=[],d.intVtigerAccount.update({id:g.vtigerAccount.id},g.vtigerAccount).$promise.then(function(e){var n=_.find(g.vtigerAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"VtigerAccount properly saved!",msg:g.vtigerAccount.name?g.vtigerAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intVtigerAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteVtigerAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The vtigerAccount will be deleted.").ariaLabel("Delete VtigerAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intVtigerAccount.delete({id:g.vtigerAccount.id}).$promise.then(function(){_.remove(g.vtigerAccounts,{id:g.vtigerAccount.id}),o.success({title:"VtigerAccount properly deleted!",msg:(g.vtigerAccount.name||"vtigerAccount")+" has been deleted!"}),v(g.vtigerAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intVtigerAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","vtigerAccounts","vtigerAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditVtigerAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intVtigerField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intVtigerField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intVtigerField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.vtigerAccount={},o.vtigerConfiguration={},o.configurations=[],o.selectedVtigerConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.vtigerAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intVtigerAccount.getConfigurations({id:o.vtigerAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getVtigerConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getVtigerConfiguration=function(e){o.vtigerConfiguration=o.configurations[e],o.selectedVtigerConfiguration=e,i.intVtigerConfiguration.getSubjects({id:o.vtigerConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intVtigerConfiguration.getDescriptions({id:o.vtigerConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intVtigerConfiguration.getFields({id:o.vtigerConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditVtigerConfiguration=function(e,n){a.show({controller:"CreateOrEditVtigerConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/vtigerAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{vtigerConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getVtigerConfiguration(0)})},o.deleteVtigerConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the vtigerConfiguration?").htmlContent("<b>"+(n.name||"vtigerConfiguration")+"</b> will be deleted.").ariaLabel("delete vtigerConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intVtigerConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"VtigerConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getVtigerConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditVtigerAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/vtigerAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.vtigerConfiguration,account:o.vtigerAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditVtigerAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/vtigerAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.vtigerConfiguration,account:o.vtigerAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditVtigerAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/vtigerAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.vtigerConfiguration,account:o.vtigerAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("VtigerAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_VTIGERCONFIGURATION",g.vtigerConfiguration=angular.copy(l),g.configurations=r,g.newVtigerConfiguration=!1,g.vtigerConfiguration||(g.vtigerConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_VTIGERCONFIGURATION",g.newVtigerConfiguration=!0),g.addNewVtigerConfiguration=function(){g.errors=[],d.intVtigerAccount.addConfiguration({id:n.params.id},g.vtigerConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"VtigerConfiguration properly created",msg:g.vtigerConfiguration.name?g.vtigerConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intVtigerConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveVtigerConfiguration=function(){g.errors=[],d.intVtigerConfiguration.update({id:g.vtigerConfiguration.id},g.vtigerConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"VtigerConfiguration properly saved!",msg:g.vtigerConfiguration.name?g.vtigerConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intVtigerConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteVtigerConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The vtigerConfiguration will be deleted.").ariaLabel("Delete VtigerConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intVtigerConfiguration.delete({id:g.vtigerConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.vtigerConfiguration.id}),o.success({title:"VtigerConfiguration properly deleted!",msg:(g.vtigerConfiguration.name||"vtigerConfiguration")+" has been deleted!"}),v(g.vtigerConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intVtigerConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intVtigerConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","vtigerConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditVtigerConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intVtigerField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intVtigerField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intVtigerField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intVtigerAccount.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditVtigerAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.vtigerAccount=c||e.params.vtigerAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoVtigerAccounts=function(){e.go("app.integrations.vtigerAccounts",{},{reload:"app.integrations.vtigerAccounts"})},u.saveVtigerAccount=function(){r.intVtigerAccount.update({id:u.vtigerAccount.id},u.vtigerAccount).$promise.then(function(){l.success({title:"VtigerAccount updated!",msg:u.vtigerAccount.name?u.vtigerAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintVtigerAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","vtigerAccount","userProfileSection"],angular.module("app.integrations").controller("VtigerAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.vtigerAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="vtigerAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedVtigerAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,description,username,accessKey,remoteUri,serverUrl",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.integrations.vtigerAccounts.edit",{id:e.id,vtigerAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intVtigerAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"VtigerAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"VtigerAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("vtigerAccount")+"?").htmlContent("<b>"+(e.name||"vtigerAccount")+"</b> will be deleted.").ariaLabel("delete vtigerAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getVtigerAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intVtigerAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="VtigerAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditVtigerAccount=function(e,n){i.show({controller:"CreateOrEditVtigerAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/vtigerAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{vtigerAccount:n,vtigerAccounts:f.vtigerAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteVtigerAccount=y,f.exportSelectedVtigerAccounts=function(){var e=angular.copy(f.selectedVtigerAccounts);return f.selectedVtigerAccounts=[],e},f.deleteSelectedVtigerAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected vtigerAccounts?").htmlContent("<b>"+f.selectedVtigerAccounts.length+" selected</b> will be deleted.").ariaLabel("delete VtigerAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedVtigerAccounts.forEach(function(e){y(e)}),f.selectedVtigerAccounts=[]})},f.deselectVtigerAccounts=function(){f.selectedVtigerAccounts=[]},f.selectAllVtigerAccounts=function(){f.selectedVtigerAccounts=f.vtigerAccounts.rows};var b=!0,A=1;function E(e){f.vtigerAccounts=e||{count:0,rows:[]}}function y(e){m.intVtigerAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.vtigerAccounts.rows,{id:e.id}),f.vtigerAccounts.count-=1,f.vtigerAccounts.rows.length||f.getVtigerAccounts(),p.success({title:_.startCase("VtigerAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintVtigerAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintVtigerAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getVtigerAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","vtigerAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("VtigerAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_ZENDESKACCOUNT",g.zendeskAccount=angular.copy(l),g.zendeskAccounts=r,g.newZendeskAccount=!1,g.zendeskAccount||(g.zendeskAccount={type:"integrationTab",authType:"password",serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_ZENDESKACCOUNT",g.newZendeskAccount=!0),g.addNewZendeskAccount=function(){g.errors=[],d.intZendeskAccount.save(g.zendeskAccount).$promise.then(function(e){g.zendeskAccounts.unshift(e.toJSON()),o.success({title:"ZendeskAccount properly created",msg:g.zendeskAccount.name?g.zendeskAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZendeskAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveZendeskAccount=function(){g.errors=[],d.intZendeskAccount.update({id:g.zendeskAccount.id},g.zendeskAccount).$promise.then(function(e){var n=_.find(g.zendeskAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ZendeskAccount properly saved!",msg:g.zendeskAccount.name?g.zendeskAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZendeskAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteZendeskAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The zendeskAccount will be deleted.").ariaLabel("Delete ZendeskAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intZendeskAccount.delete({id:g.zendeskAccount.id}).$promise.then(function(){_.remove(g.zendeskAccounts,{id:g.zendeskAccount.id}),o.success({title:"ZendeskAccount properly deleted!",msg:(g.zendeskAccount.name||"zendeskAccount")+" has been deleted!"}),v(g.zendeskAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZendeskAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","zendeskAccounts","zendeskAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditZendeskAccountDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intZendeskField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intZendeskField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intZendeskField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intZendeskAccount.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditZendeskAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.zendeskAccount=c||e.params.zendeskAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoZendeskAccounts=function(){e.go("app.integrations.zendeskAccounts",{},{reload:"app.integrations.zendeskAccounts"})},u.saveZendeskAccount=function(){r.intZendeskAccount.update({id:u.zendeskAccount.id},u.zendeskAccount).$promise.then(function(){l.success({title:"ZendeskAccount updated!",msg:u.zendeskAccount.name?u.zendeskAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintZendeskAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","zendeskAccount","userProfileSection"],angular.module("app.integrations").controller("ZendeskAccountController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intZendeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intZendeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intZendeskField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.zendeskAccount={},o.zendeskConfiguration={},o.zendeskConfigurations=[],o.selectedZendeskConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.zendeskAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intZendeskAccount.getConfigurations({id:o.zendeskAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.zendeskConfigurations=e.rows?e.rows:[],o.zendeskConfigurations.length&&o.getZendeskConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getZendeskConfiguration=function(e){o.zendeskConfiguration=o.zendeskConfigurations[e],o.selectedZendeskConfiguration=e,i.intZendeskConfiguration.getSubjects({id:o.zendeskConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intZendeskConfiguration.getDescriptions({id:o.zendeskConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intZendeskConfiguration.getFields({id:o.zendeskConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})}),i.intZendeskConfiguration.getTags({id:o.zendeskConfiguration.id}).$promise.then(function(e){o.selectedTags=e.rows?_.map(e.rows,"id"):[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditZendeskConfiguration=function(e,n){a.show({controller:"CreateOrEditZendeskConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/zendeskConfigurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{zendeskConfiguration:n,zendeskConfigurations:o.zendeskConfigurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getZendeskConfiguration(0)})},o.deleteZendeskConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the zendeskConfiguration?").htmlContent("<b>"+(n.name||"zendeskConfiguration")+"</b> will be deleted.").ariaLabel("delete zendeskConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intZendeskConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.zendeskConfigurations,{id:n.id}),s.success({title:"ZendeskConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getZendeskConfiguration(0)})},function(){console.log("CANCEL")})},o.selectedTags=[],o.selectTagsChanged=function(e){i.intZendeskConfiguration.setTags({id:o.zendeskConfiguration.id,ids:o.selectedTags}).$promise.then(function(){s.success({title:"Tags set!",msg:"Tags has been set!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ADDTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})},i.tag.get({nolimit:!0,sort:"name"}).$promise.then(function(e){o.tags=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}),o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditZendeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.zendeskConfiguration,account:o.zendeskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditZendeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.zendeskConfiguration,account:o.zendeskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditZendeskAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.zendeskConfiguration,account:o.zendeskAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("ZendeskAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_ZENDESKCONFIGURATION",g.zendeskConfiguration=angular.copy(l),g.zendeskConfigurations=r,g.newZendeskConfiguration=!1,g.zendeskConfiguration||(g.zendeskConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_ZENDESKCONFIGURATION",g.newZendeskConfiguration=!0),g.addNewZendeskConfiguration=function(){g.errors=[],d.intZendeskAccount.addConfiguration({id:n.params.id},g.zendeskConfiguration).$promise.then(function(e){g.zendeskConfigurations.unshift(e.toJSON()),o.success({title:"ZendeskConfiguration properly created",msg:g.zendeskConfiguration.name?g.zendeskConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZendeskConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveZendeskConfiguration=function(){g.errors=[],d.intZendeskConfiguration.update({id:g.zendeskConfiguration.id},g.zendeskConfiguration).$promise.then(function(e){var n=_.find(g.zendeskConfigurations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ZendeskConfiguration properly saved!",msg:g.zendeskConfiguration.name?g.zendeskConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZendeskConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteZendeskConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The zendeskConfiguration will be deleted.").ariaLabel("Delete ZendeskConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intZendeskConfiguration.delete({id:g.zendeskConfiguration.id}).$promise.then(function(){_.remove(g.zendeskConfigurations,{id:g.zendeskConfiguration.id}),o.success({title:"ZendeskConfiguration properly deleted!",msg:(g.zendeskConfiguration.name||"zendeskConfiguration")+" has been deleted!"}),v(g.zendeskConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZendeskConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZendeskConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","zendeskConfigurations","zendeskConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditZendeskConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.zendeskAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="zendeskAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedZendeskAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,type,username,remoteUri,authType,password,token,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.arraytype=_.keyBy([{option:"Integration_Tab",value:"'integrationTab'"},{option:"New_Tab",value:"'newTab'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayauthType=_.keyBy([{option:"Password",value:"'password'"},{option:"Token",value:"'token'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.integrations.zendeskAccounts.edit",{id:e.id,zendeskAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intZendeskAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"ZendeskAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"ZendeskAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("zendeskAccount")+"?").htmlContent("<b>"+(e.name||"zendeskAccount")+"</b> will be deleted.").ariaLabel("delete zendeskAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getZendeskAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intZendeskAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ZendeskAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditZendeskAccount=function(e,n){i.show({controller:"CreateOrEditZendeskAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zendeskAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{zendeskAccount:n,zendeskAccounts:f.zendeskAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteZendeskAccount=y,f.exportSelectedZendeskAccounts=function(){var e=angular.copy(f.selectedZendeskAccounts);return f.selectedZendeskAccounts=[],e},f.deleteSelectedZendeskAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected zendeskAccounts?").htmlContent("<b>"+f.selectedZendeskAccounts.length+" selected</b> will be deleted.").ariaLabel("delete ZendeskAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedZendeskAccounts.forEach(function(e){y(e)}),f.selectedZendeskAccounts=[]})},f.deselectZendeskAccounts=function(){f.selectedZendeskAccounts=[]},f.selectAllZendeskAccounts=function(){f.selectedZendeskAccounts=f.zendeskAccounts.rows};var b=!0,A=1;function E(e){f.zendeskAccounts=e||{count:0,rows:[]}}function y(e){m.intZendeskAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.zendeskAccounts.rows,{id:e.id}),f.zendeskAccounts.count-=1,f.zendeskAccounts.rows.length||f.getZendeskAccounts(),p.success({title:_.startCase("ZendeskAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintZendeskAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintZendeskAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getZendeskAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","zendeskAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("ZendeskAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_ZOHOACCOUNT",g.zohoAccount=angular.copy(l),g.zohoAccounts=r,g.newZohoAccount=!1,g.zohoAccount||(g.zohoAccount={host:"zoho.com",zone:"EU",serverUrl:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():"")},g.title="INTEGRATIONS.NEW_ZOHOACCOUNT",g.newZohoAccount=!0),g.addNewZohoAccount=function(){g.errors=[],d.intZohoAccount.save(g.zohoAccount).$promise.then(function(e){g.zohoAccounts.unshift(e.toJSON()),o.success({title:"ZohoAccount properly created",msg:g.zohoAccount.name?g.zohoAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZohoAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveZohoAccount=function(){g.errors=[],d.intZohoAccount.update({id:g.zohoAccount.id},g.zohoAccount).$promise.then(function(e){var n=_.find(g.zohoAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ZohoAccount properly saved!",msg:g.zohoAccount.name?g.zohoAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZohoAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteZohoAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The zohoAccount will be deleted.").ariaLabel("Delete ZohoAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intZohoAccount.delete({id:g.zohoAccount.id}).$promise.then(function(){_.remove(g.zohoAccounts,{id:g.zohoAccount.id}),o.success({title:"ZohoAccount properly deleted!",msg:(g.zohoAccount.name||"zohoAccount")+" has been deleted!"}),v(g.zohoAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZohoAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","zohoAccounts","zohoAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditZohoAccountDialogController",e)}(),function(){"use strict";function e(a,t,i,s,e){var o=this;function r(e){i.intZohoField.delete({id:e.id}).$promise.then(function(){_.remove(o.subjects,{id:e.id}),s.success({title:"Subject deleted!",msg:"Subject has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function l(e){i.intZohoField.delete({id:e.id}).$promise.then(function(){_.remove(o.descriptions,{id:e.id}),s.success({title:"Description deleted!",msg:"Description has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}function d(e){i.intZohoField.delete({id:e.id}).$promise.then(function(){_.remove(o.fields,{id:e.id}),s.success({title:"Field deleted!",msg:"Field has been deleted!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})}o.currentUser=e.getCurrentUser(),o.zohoAccount={},o.zohoConfiguration={},o.configurations=[],o.selectedZohoConfiguration=-1,o.crudPermissions,o.init=function(e,n){o.zohoAccount=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.intZohoAccount.getConfigurations({id:o.zohoAccount.id,sort:"-updatedAt"}).$promise.then(function(e){return o.configurations=e.rows?e.rows:[],o.configurations.length&&o.getZohoConfiguration(0),i.variable.get({nolimit:!0,sort:"name"}).$promise}).then(function(e){o.variables=e.rows?e.rows:[],o.variablesById=_.keyBy(o.variables,"id")}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETCONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.getZohoConfiguration=function(e){o.zohoConfiguration=o.configurations[e],o.selectedZohoConfiguration=e,i.intZohoConfiguration.getSubjects({id:o.zohoConfiguration.id}).$promise.then(function(e){return o.subjects=e.rows?e.rows:[],i.intZohoConfiguration.getDescriptions({id:o.zohoConfiguration.id}).$promise}).then(function(e){return o.descriptions=e.rows?e.rows:[],i.intZohoConfiguration.getFields({id:o.zohoConfiguration.id}).$promise}).then(function(e){o.fields=e.rows?e.rows:[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETConfigurations",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.createOrEditZohoConfiguration=function(e,n){a.show({controller:"CreateOrEditZohoConfigurationDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/edit/configurations/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{zohoConfiguration:n,configurations:o.configurations,license:null,setting:null,crudPermissions:o.crudPermissions}}).finally(function(){o.getZohoConfiguration(0)})},o.deleteZohoConfiguration=function(e,n){var t=a.confirm().title("Are you sure want to delete the zohoConfiguration?").htmlContent("<b>"+(n.name||"zohoConfiguration")+"</b> will be deleted.").ariaLabel("delete zohoConfiguration").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){i.intZohoConfiguration.delete({id:n.id}).$promise.then(function(){_.remove(o.configurations,{id:n.id}),s.success({title:"ZohoConfiguration deleted!",msg:n.name?n.name+" has been deleted!":""})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETECONFIGURATION",msg:e.data?JSON.stringify(e.data):e.toString()})}).finally(function(){o.getZohoConfiguration(0)})},function(){console.log("CANCEL")})},o.selectChangedAdvanced=function(){i.intZohoConfiguration.update({id:o.zohoConfiguration.id},o.zohoConfiguration).$promise.then(function(){s.success({title:"Module updated!",msg:"Module has been updated!"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATECONFIGURATIONFIELD",msg:e.data?JSON.stringify(e.data):e.toString()})})},o.selectedSubjects=[],o.createOrEditSubject=function(e,n){a.show({controller:"CreateOrEditZohoAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"subject",item:n,items:o.subjects,configuration:o.zohoConfiguration,account:o.zohoAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteSubjectConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the subject?").htmlContent("<b>Subject</b> will be deleted.").ariaLabel("delete subject").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){r(n)},function(){console.log("CANCEL")})},o.deleteSelectedSubjects=function(e){var n=a.confirm().title("Are you sure want to delete the selected subjects?").htmlContent("<b>"+o.selectedSubjects.length+" selected</b> will be deleted.").ariaLabel("delete subjects").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedSubjects.forEach(function(e){r(e)}),o.selectedSubjects=[]})},o.selectedDescriptions=[],o.createOrEditDescription=function(e,n){a.show({controller:"CreateOrEditZohoAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"description",item:n,items:o.descriptions,configuration:o.zohoConfiguration,account:o.zohoAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteDescriptionConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the description?").htmlContent("<b>Description</b> will be deleted.").ariaLabel("delete description").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){l(n)},function(){console.log("CANCEL")})},o.deleteSelectedDescriptions=function(e){var n=a.confirm().title("Are you sure want to delete the selected descriptions?").htmlContent("<b>"+o.selectedDescriptions.length+" selected</b> will be deleted.").ariaLabel("delete descriptions").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedDescriptions.forEach(function(e){l(e)}),o.selectedDescriptions=[]})},o.selectedFields=[],o.createOrEditField=function(e,n){a.show({controller:"CreateOrEditZohoAccountItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/edit/item/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{type:"field",item:n,items:o.fields,configuration:o.zohoConfiguration,account:o.zohoAccount,license:null,setting:null,crudPermissions:o.crudPermissions}})},o.deleteFieldConfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the field?").htmlContent("<b>Field</b> will be deleted.").ariaLabel("delete field").targetEvent(e).ok("OK").cancel("CANCEL");a.show(t).then(function(){d(n)},function(){console.log("CANCEL")})},o.deleteSelectedFields=function(e){var n=a.confirm().title("Are you sure want to delete the selected fields?").htmlContent("<b>"+o.selectedFields.length+" selected</b> will be deleted.").ariaLabel("delete fields").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){o.selectedFields.forEach(function(e){d(e)}),o.selectedFields=[]})}}e.$inject=["$mdDialog","$document","api","toasty","Auth"],angular.module("app.integrations").controller("ZohoAccountConfigurationsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="INTEGRATIONS.EDIT_ZOHOCONFIGURATION",g.zohoConfiguration=angular.copy(l),g.configurations=r,g.newZohoConfiguration=!1,g.zohoConfiguration||(g.zohoConfiguration={channel:"voice",type:"inbound"},g.title="INTEGRATIONS.NEW_ZOHOCONFIGURATION",g.newZohoConfiguration=!0),g.addNewZohoConfiguration=function(){g.errors=[],d.intZohoAccount.addConfiguration({id:n.params.id},g.zohoConfiguration).$promise.then(function(e){g.configurations.unshift(e.toJSON()),o.success({title:"ZohoConfiguration properly created",msg:g.zohoConfiguration.name?g.zohoConfiguration.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoConfiguration.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZohoConfiguration.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveZohoConfiguration=function(){g.errors=[],d.intZohoConfiguration.update({id:g.zohoConfiguration.id},g.zohoConfiguration).$promise.then(function(e){var n=_.find(g.configurations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"ZohoConfiguration properly saved!",msg:g.zohoConfiguration.name?g.zohoConfiguration.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoConfiguration.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZohoConfiguration.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteZohoConfiguration=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The zohoConfiguration will be deleted.").ariaLabel("Delete ZohoConfiguration").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.intZohoConfiguration.delete({id:g.zohoConfiguration.id}).$promise.then(function(){_.remove(g.configurations,{id:g.zohoConfiguration.id}),o.success({title:"ZohoConfiguration properly deleted!",msg:(g.zohoConfiguration.name||"zohoConfiguration")+" has been deleted!"}),v(g.zohoConfiguration)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.intZohoConfiguration.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.intZohoConfiguration.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","configurations","zohoConfiguration","api","Auth","license","setting","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditZohoConfigurationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){a.hide()}p.currentUser=m.getCurrentUser(),p.errors=[],p.title="INTEGRATIONS.EDIT_"+_.toUpper(d),p.item=angular.copy(r),p.items=o,p.type=d,p.crudPermissions=u,p.newItem=!1,p.item||(p.item={type:"string"},p.item[_.capitalize(d)+"Id"]=s.id,p.title="INTEGRATIONS.NEW_"+_.toUpper(d),p.newItem=!0),p.addNewItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intZohoField.save(p.item).$promise.then(function(e){p.items.unshift(e),i.success({title:_.capitalize(d)+" properly created",msg:_.capitalize(d)+" has been created!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.save"}]})},p.saveItem=function(){p.errors=[],p.customField&&(p.item.idField=p.customField.id,p.item.nameField=p.customField.name,p.item.customField=p.customField.custom);c.intZohoField.update({id:p.item.id},p.item).$promise.then(function(e){var n=_.find(p.items,{id:e.id});n&&_.merge(n,e),i.success({title:_.capitalize(d)+" properly saved!",msg:_.capitalize(d)+" has been saved!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.intItem.update"}]})},p.deleteItem=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The "+d+" will be deleted.").ariaLabel("Delete "+_.capitalize(d)).ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){c.intZohoField.delete({id:p.item.id}).$promise.then(function(){_.remove(p.items,{id:p.item.id}),i.success({title:_.capitalize(d)+" properly deleted!",msg:_.capitalize(d)+" has been deleted!"}),g()}).catch(function(e){console.error(e),p.errors=e.data.errors||[{message:e.toString(),type:"api.item.delete"}]})},function(){})},p.getSelectedVariable=function(){return void 0!==p.item.variableName?p.item.variableName:"Please select a variable"},p.closeDialog=g,c.variable.get({nolimit:!0}).$promise.then(function(e){return p.variables=e.rows?e.rows:[],c.voiceAgentReport.describe().$promise}).then(function(e){return p.voiceAgentReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceAgentReportColumns.push("recordingURL"),c.voiceDialReport.describe().$promise}).then(function(e){p.voiceDialReportColumns=_.difference(_.keys(e),["$promise","$resolved","createdAt","updatedAt","sourceid"]),p.voiceDialReportColumns.push("recordingURL")}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETVARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.intZohoAccount.getFields({id:l.id,ticketType:s.ticketType?s.ticketType:void 0}).$promise.then(function(e){p.accountConnected=!0,p.fields=e.rows?e.rows:[],p.item.idField&&(p.customField=_.find(p.fields,{id:p.item.idField}))}).catch(function(e){p.accountConnected=!1,console.error(e)})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","configuration","items","item","account","type","api","Auth","crudPermissions"],angular.module("app.integrations").controller("CreateOrEditZohoAccountItemDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.zohoAccount=c||e.params.zohoAccount||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoZohoAccounts=function(){e.go("app.integrations.zohoAccounts",{},{reload:"app.integrations.zohoAccounts"})},u.saveZohoAccount=function(){r.intZohoAccount.update({id:u.zohoAccount.id},u.zohoAccount).$promise.then(function(){l.success({title:"ZohoAccount updated!",msg:u.zohoAccount.name?u.zohoAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETintZohoAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","zohoAccount","userProfileSection"],angular.module("app.integrations").controller("ZohoAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.zohoAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="zohoAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedZohoAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,host,zone,clientId,clientSecret,code,refreshToken,serverUrl,description",sort:"-updatedAt",limit:10,page:1},f.arrayhost=_.keyBy([{option:"zoho.com",value:"'zoho.com'"},{option:"zoho.eu",value:"'zoho.eu'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayzone=_.keyBy([{option:"US",value:"'US'"},{option:"AU",value:"'AU'"},{option:"EU",value:"'EU'"},{option:"IN",value:"'IN'"},{option:"CN",value:"'CN'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.integrations.zohoAccounts.edit",{id:e.id,zohoAccount:e,crudPermissions:f.crudPermissions})},f.testtestintegrationaccount=function(e,n){return m.intZohoAccount.getFields({id:e.id,test:!0}).$promise.then(function(){p.success({title:"ZohoAccount properly tested",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"ZohoAccount properly tested",msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("zohoAccount")+"?").htmlContent("<b>"+(e.name||"zohoAccount")+"</b> will be deleted.").ariaLabel("delete zohoAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getZohoAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.intZohoAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ZohoAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditZohoAccount=function(e,n){i.show({controller:"CreateOrEditZohoAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/integrations/views/zohoAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{zohoAccount:n,zohoAccounts:f.zohoAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteZohoAccount=y,f.exportSelectedZohoAccounts=function(){var e=angular.copy(f.selectedZohoAccounts);return f.selectedZohoAccounts=[],e},f.deleteSelectedZohoAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected zohoAccounts?").htmlContent("<b>"+f.selectedZohoAccounts.length+" selected</b> will be deleted.").ariaLabel("delete ZohoAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedZohoAccounts.forEach(function(e){y(e)}),f.selectedZohoAccounts=[]})},f.deselectZohoAccounts=function(){f.selectedZohoAccounts=[]},f.selectAllZohoAccounts=function(){f.selectedZohoAccounts=f.zohoAccounts.rows};var b=!0,A=1;function E(e){f.zohoAccounts=e||{count:0,rows:[]}}function y(e){m.intZohoAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.zohoAccounts.rows,{id:e.id}),f.zohoAccounts.count-=1,f.zohoAccounts.rows.length||f.getZohoAccounts(),p.success({title:_.startCase("ZohoAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEintZohoAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEintZohoAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getZohoAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","zohoAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.integrations").controller("ZohoAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="JSCRIPTY.EDIT_PROJECT",g.project=angular.copy(l),g.projects=r,g.newProject=!1,g.project||(g.project={enableUncompleteSave:!0,sendUnpauseOnSubmit:!0},g.title="JSCRIPTY.NEW_PROJECT",g.newProject=!0),g.addNewProject=function(){g.errors=[],d.jscriptyProject.save(g.project).$promise.then(function(e){g.projects.unshift(e.toJSON()),o.success({title:"Project properly created",msg:g.project.name?g.project.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.jscriptyProject.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.jscriptyProject.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveProject=function(){g.errors=[],d.jscriptyProject.update({id:g.project.id},g.project).$promise.then(function(e){var n=_.find(g.projects,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Project properly saved!",msg:g.project.name?g.project.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.jscriptyProject.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.jscriptyProject.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteProject=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The project will be deleted.").ariaLabel("Delete Project").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.jscriptyProject.delete({id:g.project.id}).$promise.then(function(){_.remove(g.projects,{id:g.project.id}),o.success({title:"Project properly deleted!",msg:(g.project.name||"project")+" has been deleted!"}),v(g.project)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.jscriptyProject.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.jscriptyProject.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","projects","project","api","Auth","license","setting","crudPermissions"],angular.module("app.jscripty").controller("CreateOrEditProjectDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o){var r=this;r.currentUser=i.getCurrentUser(),r.project={},r.localizationMap=o;var l=new Date;r.pickerModel={dateStart:new Date(l.getFullYear(),l.getMonth(),1),dateEnd:new Date(l.getFullYear(),l.getMonth()+1,0),selectedTemplate:"TM"},r.init=function(e,n){r.project=e,r.userProfile=n,r.getAnswers()},r.getSummary=function(){return a.jscriptyProject.getSummary({id:r.project.id,startTime:{$gte:r.pickerModel.dateStart,$lte:moment(r.pickerModel.dateEnd).add(23,"hours").add(59,"minutes").add(59,"seconds").format()},nolimit:!0}).$promise.then(function(e){if(void 0!==e.length){var n=[e.buffer],t=new Blob(n,{type:e.type}),a=window.document.createElement("a");a.setAttribute("href",URL.createObjectURL(t)),a.setAttribute("download","jscriptyProjectSummary_"+r.project.id+".csv"),a.click()}else s.info({title:"EXPORT",msg:"No answers available"})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.jscriptyProject.getSummary",msg:e.data?JSON.stringify(e.data):e.toString()})})},r.getAnswers=function(){return r.hasIdAnswers=!1,a.jscriptyProject.getAnswers({id:r.project.id,sort:"-createdAt,questionId",createdAt:{$gte:moment(r.pickerModel.dateStart).add(0,"hours").add(0,"minutes").add(0,"seconds").utcOffset(0,!0).format(),$lte:moment(r.pickerModel.dateEnd).add(23,"hours").add(59,"minutes").add(59,"seconds").utcOffset(0,!0).format()},nolimit:!0}).$promise.then(function(e){if(e&&e.rows&&e.hasOwnProperty("count")){r.answers={};for(var n=0,t=e.count;n<t;n++)e.rows[n].questionId&&(r.hasIdAnswers=!0,r.answers.hasOwnProperty(e.rows[n].questionId)||(r.answers[e.rows[n].questionId]={question:e.rows[n].question,answers:{},sum:0}),""===e.rows[n].answer&&(e.rows[n].answer="NO_ANSWER"),r.answers[e.rows[n].questionId].answers[e.rows[n].answer]?r.answers[e.rows[n].questionId].answers[e.rows[n].answer]+=1:r.answers[e.rows[n].questionId].answers[e.rows[n].answer]=1,r.answers[e.rows[n].questionId].sum+=1)}}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETANSWERS",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$mdDialog","$document","$window","api","Auth","toasty","dateFilterLocalizationFactory"],angular.module("app.jscripty").controller("ProjectAnswersController",e)}(),function(){"use strict";angular.module("app.jscripty").controller("ProjectBuilderController",function(){var n=this;n.project={},n.optionsBuilder={questionTypes:["text","textarea","radio","checkbox","select","number","date","time","email","range","url"],elementTypes:["question","paragraph"]},n.init=function(e){n.project=e,_.isObjectLike(e.formData)?n.project.formData=e.formData:n.isJsonString(e.formData)?n.project.formData=JSON.parse(e.formData):n.project.formData={}},n.isJsonString=function(e){if(_.isNil(e))return!1;try{JSON.parse(e)}catch(e){return!1}return!0}})}(),function(){"use strict";function e(n,t,a,e,i,s,o){var r=this;function l(e){n.hide(e)}r.newProject=!0,r.project=angular.copy(i),r.projects=s,r.title=o.instant("JSCRIPTY.CLONE_PROJECT"),i&&i.name&&(r.title+=": "+i.name),r.cloneProject=function(){return e.jscriptyProject.clone({id:i.id},r.project).$promise.then(function(e){r.projects.unshift(e.toJSON()),a.success({title:"Project properly cloned",msg:r.project.name?r.project.name+" has been cloned!":""}),t.go("app.jscripty.projects.edit",{id:e.id}),l(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.jscriptyProject.clone"}];for(var n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.jscriptyProject.clone",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$mdDialog","$state","toasty","api","project","projects","$translate"],angular.module("app.jscripty").controller("ProjectcloneController",e)}(),function(){"use strict";function e(a,i,n){var o=this;o.project={},o.responseData={},o.formViewer={},o.init=function(e){o.project=e,n.$on("mwForm.pageEvents.pageCurrentChanged",function(e,n){if(n.currentPage&&o.project.formData&&o.project.formData.pages)for(var t=0,a=o.project.formData.pages.length;t<a;t++)if(n.currentPage.number<t+1&&o.project.formData.pages[t].elements)for(var i=0,s=o.project.formData.pages[t].elements.length;i<s;i++)"question"===o.project.formData.pages[t].elements[i].type&&o.project.formData.pages[t].elements[i].question&&delete o.responseData[o.project.formData.pages[t].elements[i].question.id]})},o.onSubmit=function(e){var n=a.defer(),t=i.confirm().title("Would you like to save your survey?").textContent("").ariaLabel("survey").targetEvent(e).ok("SAVE").cancel("CANCEL");return i.show(t).then(function(){n.resolve(!0)},function(){n.reject()}),n.promise},o.resetViewer=function(){o.formViewer.reset&&o.formViewer.reset()}}e.$inject=["$q","$mdDialog","$scope"],angular.module("app.jscripty").controller("ProjectViewerController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.projectSessions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.jscriptyProject.getSessions(m.query,u).$promise}function g(e){d.jscriptySessionReport.delete({id:e.id}).$promise.then(function(){_.remove(m.projectSessions.rows,{id:e.id}),m.projectSessions.count-=1,m.projectSessions.rows.length||p(),l.success({title:"Session deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETjscriptyProject"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETjscriptyProject",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.project={},m.projectSessions={count:0,rows:[]},m.selectedProjectSessions=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,starttime,endtime,membername,calleridnum,completed",sort:"-starttime",limit:10,page:1},m.init=function(e,n,t){m.project=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.id=m.project.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the session?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("session #")+e.id||"session")+"</b> will be deleted.").ariaLabel("delete session").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getProjectSessions=p,m.createOrEditProjectSession=function(e,n){o.show({controller:"CreateOrEditSessionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/edit/sessions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{project:m.project,session:n,sessions:m.projectSessions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.showQuestionsProjectSession=function(e,t){o.show({controller:"ShowQuestionsSessionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/edit/sessions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,resolve:{questions:["apiResolver","$stateParams",function(e,n){return e.resolve("jscriptySessionReport@getQuestions",{fields:"question,answer",sort:"id",id:t.id})}]},locals:{project:m.project,session:t}})},m.exportSelectedProjectSessions=function(){var e=angular.copy(m.selectedProjectSessions);return m.selectedProjectSessions=[],e},m.deleteProjectSession=g,m.deleteSelectedProjectSessions=function(e){var n=o.confirm().title("Are you sure want to delete the selected sessions?").htmlContent("<b>"+m.selectedProjectSessions.length+" selected</b> will be deleted.").ariaLabel("delete sessions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedProjectSessions.forEach(function(e){g(e)}),m.selectedProjectSessions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.jscripty").controller("ProjectSessionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){this.title="JSCRIPTY.SESSION_RESULTS",this.session=s,this.questions=o,this.project=r,this.closeDialog=function(e){a.hide(e)}}e.$inject=["$scope","$state","$location","$mdDialog","toasty","session","questions","project","api"],angular.module("app.jscripty").controller("ShowQuestionsSessionDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=s,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=n.protocol()+"://"+n.host(),p.project=c||e.params.project||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=e.params.tab||0,p.clonedialog=function(e,n){t.show({controller:"ProjectcloneController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/edit/clone/clone.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{project:e,projects:p.projects?p.projects.rows:[],crudPermissions:p.crudPermissions}})},p.alert=l.info,p.gotoProjects=function(){e.go("app.jscripty.projects",{},{reload:"app.jscripty.projects"})},p.saveProject=function(){r.jscriptyProject.update({id:p.project.id},p.project).$promise.then(function(){l.success({title:"Project updated!",msg:p.project.name?p.project.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETjscriptyProject",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","project","userProfile","userProfileSection"],angular.module("app.jscripty").controller("JscriptyProjectController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.projects=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="projects",f.listOrder="",f.listOrderAsc=null,f.selectedProjects=[],f.query={fields:"createdAt,updatedAt,id,name,enableUncompleteSave,sendUnpauseOnSubmit,description,formData",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.jscripty.projects.edit",{id:e.id,project:e,crudPermissions:f.crudPermissions})},f.clonedialog=function(e,n){i.show({controller:"ProjectcloneController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{project:e,projects:f.projects?f.projects.rows:[],crudPermissions:f.crudPermissions}})},f.sessionsgoto=function(e,n){t.go("app.jscripty.projects.edit",{id:e.id,tab:3})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("project")+"?").htmlContent("<b>"+(e.name||"project")+"</b> will be deleted.").ariaLabel("delete project").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getProjects=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.jscriptyProject.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Projects",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditProject=function(e,n){i.show({controller:"CreateOrEditProjectDialogController",controllerAs:"vm",templateUrl:"app/main/apps/jscripty/views/projects/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{project:n,projects:f.projects.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteProject=y,f.exportSelectedProjects=function(){var e=angular.copy(f.selectedProjects);return f.selectedProjects=[],e},f.deleteSelectedProjects=function(e){var n=i.confirm().title("Are you sure want to delete the selected projects?").htmlContent("<b>"+f.selectedProjects.length+" selected</b> will be deleted.").ariaLabel("delete Projects").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedProjects.forEach(function(e){y(e)}),f.selectedProjects=[]})},f.deselectProjects=function(){f.selectedProjects=[]},f.selectAllProjects=function(){f.selectedProjects=f.projects.rows};var b=!0,A=1;function E(e){f.projects=e||{count:0,rows:[]}}function y(e){m.jscriptyProject.delete({id:e.id}).$promise.then(function(){_.remove(f.projects.rows,{id:e.id}),f.projects.count-=1,f.projects.rows.length||f.getProjects(),p.success({title:_.startCase("Project")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEjscriptyProject"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEjscriptyProject",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getProjects())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","projects","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.jscripty").controller("JscriptyProjectsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MAIL.EDIT_MAILACCOUNT",g.mailAccount=angular.copy(l),g.mailAccounts=r,g.newMailAccount=!1,g.mailAccount||(g.mailAccount={active:!0,cservice:"null",cauthentication:!0,fontSize:13,waitForTheAssignedAgent:10,notificationSound:!0,queueTransferTimeout:300,agentTransferTimeout:300},g.title="MAIL.NEW_MAILACCOUNT",g.newMailAccount=!0),n.params.id&&(g.mailAccount.MailAccountId=n.params.id),g.addNewMailAccount=function(){g.errors=[],d.mailAccount.save(g.mailAccount).$promise.then(function(e){g.mailAccounts.unshift(e.toJSON()),o.success({title:"MailAccount properly created",msg:g.mailAccount.name?g.mailAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveMailAccount=function(){g.errors=[],d.mailAccount.update({id:g.mailAccount.id},g.mailAccount).$promise.then(function(e){var n=_.find(g.mailAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"MailAccount properly saved!",msg:g.mailAccount.name?g.mailAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteMailAccount=function(e){if(g.mailAccount.service)return o.error({title:"Mail Account not deleted!",msg:"You can't remove service account"});g.errors=[];var n=a.confirm().title("Are you sure?").content("The mailAccount will be deleted.").ariaLabel("Delete MailAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.mailAccount.delete({id:g.mailAccount.id}).$promise.then(function(){_.remove(g.mailAccounts,{id:g.mailAccount.id}),o.success({title:"MailAccount properly deleted!",msg:(g.mailAccount.name||"mailAccount")+" has been deleted!"}),v(g.mailAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.lists,{id:e.resourceId})}),t=null;if(g.mailAccount&&(t=_.find(g.lists,{id:Number(g.mailAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.lists,{id:t.id});a.canSelect=!1,n.push(a)}g.lists=n})}else{var t=[],a=null;g.mailAccount&&(a=_.find(g.lists,{id:Number(g.mailAccount.ListId)}));for(var i=0;i<g.lists.length;i++)a&&g.lists[i].id===a.id&&(g.lists[i].canSelect=!1,t.push(g.lists[i]));g.lists=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","mailAccounts","mailAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.mail").controller("CreateOrEditMailAccountDialogController",e)}(),function(){"use strict";function e(o,i,a,s,e){var r=this;function n(e,n){if(r.mailAccountApps.rows.length){var t=r.mailAccountApps.rows[n]?r.mailAccountApps.rows[n]:r.mailAccountApps.rows[0];i.show({controller:"EditMailAccountApp"+(t.appType||t.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/apps/"+(t.appType||t.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailAccountApp:t,mailAccount:r.mailAccount,crudPermissions:r.crudPermissions}}).then(function(e){e&&(e.id?r.mailAccountApps.rows[n]=e:r.mailAccountApps.rows.splice(n,0,e),l())}).catch(function(e){e&&s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function l(){for(var e=1,n=[],t=0;t<r.mailAccountApps.rows.length;t++,0){var a=r.mailAccountApps.rows[t],i=[],s=[];a.intervals="*,*,*,*"!==a.interval?[a.interval]:a.IntervalId?_.map(_.filter(r.intervals.rows,{IntervalId:a.IntervalId}),"interval"):[],a.context=r.mailAccount.context,a.exten=r.mailAccount.exten,a.type&&(a.type=a.type.toLowerCase()),a.priority=i.length?_.last(i).priority+1:e,e=(s.length?_.last(s).priority:a.priority)+1,n=_.concat(n,i,[a],s)}o.mailAccount.addApplications({id:r.mailAccount.id},_.sortBy(n,"priority")).$promise.then(function(e){r.mailAccountApps.rows=e.rows}).catch(function(e){console.error(e)})}function t(e){r.mailAccountApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.mailAccount={},r.mailAccountApps={count:0,rows:[]},r.selectedMailAccountApps=[],r.crudPermissions,r.query={sort:"priority"},r.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"noop",appType:"noop",type:"noop",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,fields:[{title:"Value",name:"value",type:"text",param:0}]},{app:"system",appType:"system",type:"system",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,extraApi:[{name:"variables",field:{name:"variable",key:"name"},route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1012}}],fields:[{title:"Command",name:"command",type:"text",required:!0,param:0},{title:"Variable",name:"variable",type:"apiselect",values:"variables",value:"variable.name",option:"variable.name",defaultValues:[{value:"''",option:"None"}],defaultValue:"''",param:1}]},{app:"gotop",appType:"gotop",type:"goto",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Priority",name:"priority",type:"number",required:!0,min:0,param:0}]},{app:"gotoif",appType:"gotoif",type:"gotoif",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Condition",name:"condition",type:"text",required:!0,param:0},{title:"truepriority",name:"truepriority",type:"number",min:1,required:!0,param:1},{title:"falsepriority",name:"falsepriority",type:"number",min:1,required:!0,param:2}]},{app:"queue",appType:"queue",foreignKey:"MailQueueId",type:"queue",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"queues",field:{name:"queue",key:"name"},route:"mailQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0},permissions:{section:601}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",defaultValue:300,required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:300,param:1}]},{app:"agent",appType:"agent",type:"agent",foreignKey:"UserId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"agents",field:{name:"agent",key:"name"},route:"user",filters:{fields:"id,name",sort:"name",nolimit:!0,role:"agent"},permissions:{section:202}}],fields:[{title:"Agent",name:"agent",type:"apiselect",values:"agents",value:"agent.name",option:"agent.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:30,param:1}]},{app:"autoreply",appType:"autoreply",type:"autoreply",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"times",name:"times",type:"select",defaultValue:"1",values:[{option:"One Time",value:"2"},{option:"Always",value:"0"},{option:"First Message",value:"1"}],required:!0,param:0},{title:"Reply_Type",name:"replyType",type:"select",defaultValue:"1",values:[{option:"Reply",value:"0"},{option:"Reply All",value:"1"}],required:!0,param:1},{title:"Text",name:"text",type:"html",required:!0,param:2}]},{app:"close",appType:"close",type:"close",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Disposition",name:"disposition",type:"text",required:!0,param:0}]},{app:"tag",appType:"tag",type:"tag",foreignKey:"TagId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"tags",field:{name:"tag",key:"name"},route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1008}}],fields:[{title:"Tag",name:"tag",type:"apiselect",values:"tags",value:"tag.name",option:"tag.name",required:!0,param:0}]}],["app"]),{isApp:!1}),r.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},r.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){n(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e,n){r.mailAccount=e,r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},r.applications.disabled=!r.crudPermissions.canEdit,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getMailAccountApps(),r.getIntervals()},r.deleteConfirm=function(e,n,t){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.mailAccountApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})},r.getMailAccountApps=function(){r.promise=o.mailAccount.getApplications(r.query,t).$promise},r.editMailAccountApp=n,r.editInterval=function(e,n){if(r.mailAccountApps.rows.length){var t=r.mailAccountApps.rows[n]?r.mailAccountApps.rows[n]:r.mailAccountApps.rows[0];i.show({controller:"EditMailAccountAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:[],crudPermissions:r.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,l())})}},r.deleteMailAccountApp=function(e){_.remove(r.mailAccountApps.rows,{id:e.id}),l(),s.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedMailAccountApps=function(e){var n=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+r.selectedMailAccountApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){r.selectedMailAccountApps.forEach(function(e){_.remove(r.mailAccountApps.rows,{id:e.id})}),r.selectedMailAccountApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return o.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){r.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.mail").controller("MailAccountActionsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.mailAccount.getAgents({id:c.mailAccount.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserMailAccount?"penalty "+e.UserMailAccount.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.mailAccount=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.mailAccount.removeAgents({id:c.mailAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.mailAccount.addAgents({id:c.mailAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("MAIL.ALL_AGENTS"),labelSelected:r.instant("MAIL.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","mailAccount","mailAccounts","realtime","$translate","Auth","crudPermissions"],angular.module("app.mail").controller("MailAccountagentaddController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.agent=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.agent.appdata)switch(l.agent.appType?l.agent.appType.toLowerCase():l.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.agent.appdata.split(",");l.agent.key=d[0],l.agent.language=d[1],l.agent.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.agent.appdata.split(",");l.agent.projectId=d[0],l.agent.clientEmail=d[1],l.agent.privateKey=d[2],l.agent.language=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.agent.appdata.split(",");l.agent.accesskeyid=d[0],l.agent.secretaccesskey=d[1],l.agent.lexregion=d[2],l.agent.botname=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.agent.appdata.split(",");l.agent.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.agent.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.agent.text=d.slice(2,d.length).join(",");break;case"message":l.agent.text=l.agent.appdata;break;case"set":l.agent.name=l.agent.appdata.split("=")[0],l.agent.value=l.agent.appdata.split("=")[1];break;case"agi":l.agent.project=l.agent.appdata;break;default:var c=l.agent.appdata.split(",");l.agent.agent=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.agent.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.agent.timeout=30;function m(e){n.hide(e)}l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outbounddial"===l.agent.appType.toLowerCase()&&(l.agent.prefix=l.agent.phone?l.agent.phone.split("$")[0]:void 0,l.agent.callerId=l.agent.callerID?"CALLERID(all)="+l.agent.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outboundDial"===l.agent.appType&&(l.agent.phone=i.cutdigits?(l.agent.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.agent.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.agent.options+="U(xcally-mixmonitor-context)"):l.agent.options=l.agent.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.agents,{name:l.agent.agent});n&&(l.agent.UserId=n.id);if(l.agent.appType&&"custom"===l.agent.appType);else switch((l.agent.app||l.agent.appType).toLowerCase()){case"set":l.agent.appdata=l.agent.name+"="+l.agent.value;break;case"custom":break;default:e[0]=l.agent.agent,e[1]=l.agent.timeout,l.agent.appdata=e.join(",")}m(l.agent)},l.closeDialog=m,o.hasRole("admin")?s.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){l.agents=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){l.agents=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.agents,{id:e.resourceId})}),t=null;if(l.agent&&(t=_.find(l.agents,{name:l.agent.agent})),t&&!_.some(n,["id",t.id])){var a=_.find(l.agents,{id:t.id});a.canSelect=!1,n.push(a)}l.agents=n})}else{var t=[],a=null;l.agent&&(a=_.find(l.agents,{name:l.agent.agent}));for(var i=0;i<l.agents.length;i++)a&&l.agents[i].id===a.id&&(l.agents[i].canSelect=!1,t.push(l.agents[i]));l.agents=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppagentDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.autoreply=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.autoreply.appdata)switch(l.autoreply.appType?l.autoreply.appType.toLowerCase():l.autoreply.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.autoreply.appdata.split(",");l.autoreply.key=d[0],l.autoreply.language=d[1],l.autoreply.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.autoreply.appdata.split(",");l.autoreply.projectId=d[0],l.autoreply.clientEmail=d[1],l.autoreply.privateKey=d[2],l.autoreply.language=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.autoreply.appdata.split(",");l.autoreply.accesskeyid=d[0],l.autoreply.secretaccesskey=d[1],l.autoreply.lexregion=d[2],l.autoreply.botname=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.autoreply.appdata.split(",");l.autoreply.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.autoreply.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.autoreply.text=d.slice(2,d.length).join(",");break;case"message":l.autoreply.text=l.autoreply.appdata;break;case"set":l.autoreply.name=l.autoreply.appdata.split("=")[0],l.autoreply.value=l.autoreply.appdata.split("=")[1];break;case"agi":l.autoreply.project=l.autoreply.appdata;break;default:var c=l.autoreply.appdata.split(",");l.autoreply.times=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.autoreply.replyType=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.autoreply.text=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}else l.autoreply.times=1,l.autoreply.replyType=1;function m(e){n.hide(e)}l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outbounddial"===l.autoreply.appType.toLowerCase()&&(l.autoreply.prefix=l.autoreply.phone?l.autoreply.phone.split("$")[0]:void 0,l.autoreply.callerId=l.autoreply.callerID?"CALLERID(all)="+l.autoreply.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outboundDial"===l.autoreply.appType&&(l.autoreply.phone=i.cutdigits?(l.autoreply.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.autoreply.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.autoreply.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.autoreply.options+="U(xcally-mixmonitor-context)"):l.autoreply.options=l.autoreply.options.replace("U(xcally-mixmonitor-context)",""));if(l.autoreply.appType&&"custom"===l.autoreply.appType);else switch((l.autoreply.app||l.autoreply.appType).toLowerCase()){case"set":l.autoreply.appdata=l.autoreply.name+"="+l.autoreply.value;break;case"custom":break;default:e[0]=l.autoreply.times,e[1]=l.autoreply.replyType,e[2]=l.autoreply.text,l.autoreply.appdata=e.join(",")}m(l.autoreply)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppautoreplyDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.close=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.close.appdata)switch(l.close.appType?l.close.appType.toLowerCase():l.close.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.close.appdata.split(",");l.close.key=d[0],l.close.language=d[1],l.close.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.close.appdata.split(",");l.close.projectId=d[0],l.close.clientEmail=d[1],l.close.privateKey=d[2],l.close.language=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.close.appdata.split(",");l.close.accesskeyid=d[0],l.close.secretaccesskey=d[1],l.close.lexregion=d[2],l.close.botname=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.close.appdata.split(",");l.close.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.close.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.close.text=d.slice(2,d.length).join(",");break;case"message":l.close.text=l.close.appdata;break;case"set":l.close.name=l.close.appdata.split("=")[0],l.close.value=l.close.appdata.split("=")[1];break;case"agi":l.close.project=l.close.appdata;break;default:var c=l.close.appdata.split(",");l.close.disposition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outbounddial"===l.close.appType.toLowerCase()&&(l.close.prefix=l.close.phone?l.close.phone.split("$")[0]:void 0,l.close.callerId=l.close.callerID?"CALLERID(all)="+l.close.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outboundDial"===l.close.appType&&(l.close.phone=i.cutdigits?(l.close.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.close.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.close.options+="U(xcally-mixmonitor-context)"):l.close.options=l.close.options.replace("U(xcally-mixmonitor-context)",""));if(l.close.appType&&"custom"===l.close.appType);else switch((l.close.app||l.close.appType).toLowerCase()){case"set":l.close.appdata=l.close.name+"="+l.close.value;break;case"custom":break;default:e[0]=l.close.disposition,l.close.appdata=e.join(",")}m(l.close)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppcloseDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotoif=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotoif.appdata)switch(l.gotoif.appType?l.gotoif.appType.toLowerCase():l.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotoif.appdata.split(",");l.gotoif.key=d[0],l.gotoif.language=d[1],l.gotoif.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotoif.appdata.split(",");l.gotoif.projectId=d[0],l.gotoif.clientEmail=d[1],l.gotoif.privateKey=d[2],l.gotoif.language=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotoif.appdata.split(",");l.gotoif.accesskeyid=d[0],l.gotoif.secretaccesskey=d[1],l.gotoif.lexregion=d[2],l.gotoif.botname=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotoif.appdata.split(",");l.gotoif.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotoif.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.gotoif.text=d.slice(2,d.length).join(",");break;case"message":l.gotoif.text=l.gotoif.appdata;break;case"set":l.gotoif.name=l.gotoif.appdata.split("=")[0],l.gotoif.value=l.gotoif.appdata.split("=")[1];break;case"agi":l.gotoif.project=l.gotoif.appdata;break;default:var c=l.gotoif.appdata.split(",");l.gotoif.condition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.gotoif.truepriority=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.gotoif.falsepriority=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}function m(e){n.hide(e)}l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outbounddial"===l.gotoif.appType.toLowerCase()&&(l.gotoif.prefix=l.gotoif.phone?l.gotoif.phone.split("$")[0]:void 0,l.gotoif.callerId=l.gotoif.callerID?"CALLERID(all)="+l.gotoif.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outboundDial"===l.gotoif.appType&&(l.gotoif.phone=i.cutdigits?(l.gotoif.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotoif.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotoif.options+="U(xcally-mixmonitor-context)"):l.gotoif.options=l.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotoif.appType&&"custom"===l.gotoif.appType);else switch((l.gotoif.app||l.gotoif.appType).toLowerCase()){case"set":l.gotoif.appdata=l.gotoif.name+"="+l.gotoif.value;break;case"custom":break;default:e[0]=l.gotoif.condition,e[1]=l.gotoif.truepriority,e[2]=l.gotoif.falsepriority,l.gotoif.appdata=e.join(",")}m(l.gotoif)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppgotoifDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotop.appdata)switch(l.gotop.appType?l.gotop.appType.toLowerCase():l.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotop.appdata.split(",");l.gotop.key=d[0],l.gotop.language=d[1],l.gotop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotop.appdata.split(",");l.gotop.projectId=d[0],l.gotop.clientEmail=d[1],l.gotop.privateKey=d[2],l.gotop.language=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotop.appdata.split(",");l.gotop.accesskeyid=d[0],l.gotop.secretaccesskey=d[1],l.gotop.lexregion=d[2],l.gotop.botname=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotop.appdata.split(",");l.gotop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotop.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.gotop.text=d.slice(2,d.length).join(",");break;case"message":l.gotop.text=l.gotop.appdata;break;case"set":l.gotop.name=l.gotop.appdata.split("=")[0],l.gotop.value=l.gotop.appdata.split("=")[1];break;case"agi":l.gotop.project=l.gotop.appdata;break;default:var c=l.gotop.appdata.split(",");l.gotop.priority=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outbounddial"===l.gotop.appType.toLowerCase()&&(l.gotop.prefix=l.gotop.phone?l.gotop.phone.split("$")[0]:void 0,l.gotop.callerId=l.gotop.callerID?"CALLERID(all)="+l.gotop.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outboundDial"===l.gotop.appType&&(l.gotop.phone=i.cutdigits?(l.gotop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotop.options+="U(xcally-mixmonitor-context)"):l.gotop.options=l.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotop.appType&&"custom"===l.gotop.appType);else switch((l.gotop.app||l.gotop.appType).toLowerCase()){case"set":l.gotop.appdata=l.gotop.name+"="+l.gotop.value;break;case"custom":break;default:e[0]=l.gotop.priority,l.gotop.appdata=e.join(",")}m(l.gotop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppgotopDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom","list"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditMailAccountAppintervalDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.noop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.noop.appdata)switch(l.noop.appType?l.noop.appType.toLowerCase():l.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.noop.appdata.split(",");l.noop.key=d[0],l.noop.language=d[1],l.noop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.noop.appdata.split(",");l.noop.projectId=d[0],l.noop.clientEmail=d[1],l.noop.privateKey=d[2],l.noop.language=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.noop.appdata.split(",");l.noop.accesskeyid=d[0],l.noop.secretaccesskey=d[1],l.noop.lexregion=d[2],l.noop.botname=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.noop.appdata.split(",");l.noop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.noop.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.noop.text=d.slice(2,d.length).join(",");break;case"message":l.noop.text=l.noop.appdata;break;case"set":l.noop.name=l.noop.appdata.split("=")[0],l.noop.value=l.noop.appdata.split("=")[1];break;case"agi":l.noop.project=l.noop.appdata;break;default:var c=l.noop.appdata.split(",");l.noop.value=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outbounddial"===l.noop.appType.toLowerCase()&&(l.noop.prefix=l.noop.phone?l.noop.phone.split("$")[0]:void 0,l.noop.callerId=l.noop.callerID?"CALLERID(all)="+l.noop.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outboundDial"===l.noop.appType&&(l.noop.phone=i.cutdigits?(l.noop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.noop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.noop.options+="U(xcally-mixmonitor-context)"):l.noop.options=l.noop.options.replace("U(xcally-mixmonitor-context)",""));if(l.noop.appType&&"custom"===l.noop.appType);else switch((l.noop.app||l.noop.appType).toLowerCase()){case"set":l.noop.appdata=l.noop.name+"="+l.noop.value;break;case"custom":break;default:e[0]=l.noop.value,l.noop.appdata=e.join(",")}m(l.noop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppnoopDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.queue=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.queue.appdata)switch(l.queue.appType?l.queue.appType.toLowerCase():l.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.queue.appdata.split(",");l.queue.key=d[0],l.queue.language=d[1],l.queue.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.queue.appdata.split(",");l.queue.projectId=d[0],l.queue.clientEmail=d[1],l.queue.privateKey=d[2],l.queue.language=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.queue.appdata.split(",");l.queue.accesskeyid=d[0],l.queue.secretaccesskey=d[1],l.queue.lexregion=d[2],l.queue.botname=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.queue.appdata.split(",");l.queue.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.queue.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.queue.text=d.slice(2,d.length).join(",");break;case"message":l.queue.text=l.queue.appdata;break;case"set":l.queue.name=l.queue.appdata.split("=")[0],l.queue.value=l.queue.appdata.split("=")[1];break;case"agi":l.queue.project=l.queue.appdata;break;default:var c=l.queue.appdata.split(",");l.queue.queue=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.queue.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.queue.queue=300,l.queue.timeout=300;function m(e){n.hide(e)}l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outbounddial"===l.queue.appType.toLowerCase()&&(l.queue.prefix=l.queue.phone?l.queue.phone.split("$")[0]:void 0,l.queue.callerId=l.queue.callerID?"CALLERID(all)="+l.queue.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outboundDial"===l.queue.appType&&(l.queue.phone=i.cutdigits?(l.queue.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.queue.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.queue.options+="U(xcally-mixmonitor-context)"):l.queue.options=l.queue.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.queues,{name:l.queue.queue});n&&(l.queue[_.capitalize("mail")+"QueueId"]=n.id);if(l.queue.appType&&"custom"===l.queue.appType);else switch((l.queue.app||l.queue.appType).toLowerCase()){case"set":l.queue.appdata=l.queue.name+"="+l.queue.value;break;case"custom":break;default:e[0]=l.queue.queue,e[1]=l.queue.timeout,l.queue.appdata=e.join(",")}m(l.queue)},l.closeDialog=m,o.hasRole("admin")?s.mailQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.mailQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:601}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.queues,{id:e.resourceId})}),t=null;if(l.queue&&(t=_.find(l.queues,{name:l.queue.queue})),t&&!_.some(n,["id",t.id])){var a=_.find(l.queues,{id:t.id});a.canSelect=!1,n.push(a)}l.queues=n})}else{var t=[],a=null;l.queue&&(a=_.find(l.queues,{name:l.queue.queue}));for(var i=0;i<l.queues.length;i++)a&&l.queues[i].id===a.id&&(l.queues[i].canSelect=!1,t.push(l.queues[i]));l.queues=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppqueueDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.system=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.system.appdata)switch(l.system.appType?l.system.appType.toLowerCase():l.system.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.system.appdata.split(",");l.system.key=d[0],l.system.language=d[1],l.system.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.system.appdata.split(",");l.system.projectId=d[0],l.system.clientEmail=d[1],l.system.privateKey=d[2],l.system.language=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.system.appdata.split(",");l.system.accesskeyid=d[0],l.system.secretaccesskey=d[1],l.system.lexregion=d[2],l.system.botname=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.system.appdata.split(",");l.system.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.system.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.system.text=d.slice(2,d.length).join(",");break;case"message":l.system.text=l.system.appdata;break;case"set":l.system.name=l.system.appdata.split("=")[0],l.system.value=l.system.appdata.split("=")[1];break;case"agi":l.system.project=l.system.appdata;break;default:var c=l.system.appdata.split(",");l.system.command=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.system.variable=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.system.variable="";function m(e){n.hide(e)}l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outbounddial"===l.system.appType.toLowerCase()&&(l.system.prefix=l.system.phone?l.system.phone.split("$")[0]:void 0,l.system.callerId=l.system.callerID?"CALLERID(all)="+l.system.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outboundDial"===l.system.appType&&(l.system.phone=i.cutdigits?(l.system.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.system.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.system.options+="U(xcally-mixmonitor-context)"):l.system.options=l.system.options.replace("U(xcally-mixmonitor-context)",""));if(l.system.appType&&"custom"===l.system.appType);else switch((l.system.app||l.system.appType).toLowerCase()){case"set":l.system.appdata=l.system.name+"="+l.system.value;break;case"custom":break;default:e[0]=l.system.command,e[1]=l.system.variable,l.system.appdata=e.join(",")}m(l.system)},l.closeDialog=m,o.hasRole("admin")?s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1012}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.variables,{id:e.resourceId})}),t=null;if(l.system&&(t=_.find(l.variables,{name:l.system.variable})),t&&!_.some(n,["id",t.id])){var a=_.find(l.variables,{id:t.id});a.canSelect=!1,n.push(a)}l.variables=n})}else{var t=[],a=null;l.system&&(a=_.find(l.variables,{name:l.system.variable}));for(var i=0;i<l.variables.length;i++)a&&l.variables[i].id===a.id&&(l.variables[i].canSelect=!1,t.push(l.variables[i]));l.variables=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountAppsystemDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="MAIL.EDIT_"+(a.appType||a.app).toUpperCase(),l.tag=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.tag.appdata)switch(l.tag.appType?l.tag.appType.toLowerCase():l.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.tag.appdata.split(",");l.tag.key=d[0],l.tag.language=d[1],l.tag.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.tag.appdata.split(",");l.tag.projectId=d[0],l.tag.clientEmail=d[1],l.tag.privateKey=d[2],l.tag.language=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.tag.appdata.split(",");l.tag.accesskeyid=d[0],l.tag.secretaccesskey=d[1],l.tag.lexregion=d[2],l.tag.botname=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.tag.appdata.split(",");l.tag.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.tag.replyType=isNaN(d[1])?d[1]:parseInt(d[1],10),l.tag.text=d.slice(2,d.length).join(",");break;case"message":l.tag.text=l.tag.appdata;break;case"set":l.tag.name=l.tag.appdata.split("=")[0],l.tag.value=l.tag.appdata.split("=")[1];break;case"agi":l.tag.project=l.tag.appdata;break;default:var c=l.tag.appdata.split(",");l.tag.tag=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outbounddial"===l.tag.appType.toLowerCase()&&(l.tag.prefix=l.tag.phone?l.tag.phone.split("$")[0]:void 0,l.tag.callerId=l.tag.callerID?"CALLERID(all)="+l.tag.callerID:void 0),l.saveMailAccountApp=function(){l.errors=[];var e=[];l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outboundDial"===l.tag.appType&&(l.tag.phone=i.cutdigits?(l.tag.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.tag.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.tag.options+="U(xcally-mixmonitor-context)"):l.tag.options=l.tag.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.tags,{name:l.tag.tag});n&&(l.tag.TagId=n.id);if(l.tag.appType&&"custom"===l.tag.appType);else switch((l.tag.app||l.tag.appType).toLowerCase()){case"set":l.tag.appdata=l.tag.name+"="+l.tag.value;break;case"custom":break;default:e[0]=l.tag.tag,l.tag.appdata=e.join(",")}m(l.tag)},l.closeDialog=m,o.hasRole("admin")?s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1008}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.tags,{id:e.resourceId})}),t=null;if(l.tag&&(t=_.find(l.tags,{name:l.tag.tag})),t&&!_.some(n,["id",t.id])){var a=_.find(l.tags,{id:t.id});a.canSelect=!1,n.push(a)}l.tags=n})}else{var t=[],a=null;l.tag&&(a=_.find(l.tags,{name:l.tag.tag}));for(var i=0;i<l.tags.length;i++)a&&l.tags[i].id===a.id&&(l.tags[i].canSelect=!1,t.push(l.tags[i]));l.tags=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtags",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","mailAccountApp","mailAccount","api","Auth","crudPermissions"],angular.module("app.mail").controller("EditMailAccountApptagDialogController",e)}(),function(){"use strict";function e(e,a,n,t,i,s,o,r,l,d,c){var m=this;function u(e){m.mailAccountInteractions=e||{count:0,rows:[]};for(var n=0;n<m.mailAccountInteractions.rows.length;n+=1){var t=m.mailAccountInteractions.rows[n];v(t),t.Owner.name=h(t)}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,(void 0===m.query.closed||null===m.query.closed||m.query.closed)&&delete m.query.substatus,m.promise=d.mailInteraction.get(m.query,u).$promise}function g(e){d.mailInteraction.delete({id:e.id}).$promise.then(function(){_.remove(m.mailAccountInteractions.rows,{id:e.id}),m.mailAccountInteractions.count-=1,m.mailAccountInteractions.rows.length||p(),l.success({title:"Interaction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETmailAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(e){_.isEmpty(e.to)||_.includes(e.to,m.mailAccount.email)?e.Contact?(e.contactName=(e.Contact.firstName||"")+" "+(e.Contact.lastName||""),e.contactInfo=e.Contact.email||""):e.contactName=i.instant("MAIL.UNKNOWN"):(e.contactName=e.to.split(" <")[0],e.contactInfo=e.to.split("<").pop().split(">")[0])}function h(e){return e.UserId?e.UserId===m.currentUser.id?i.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">":i.instant("DASHBOARDS.NOT_ASSIGNED")}m.currentUser=c.getCurrentUser(),m.mailAccount={},m.mailAccountInteractions={count:0,rows:[]},m.selectedMailAccountInteractions=[],m.crudPermissions,m.query={read:"null",closed:"null",sort:"-createdAt",includeAll:"true",limit:10,page:1},m.init=function(e,n,t){m.mailAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.MailAccountId=m.mailAccount.id,m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Subject",column:"subject",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Body",column:"plainBody",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Substatus",column:"substatus",type:"multiselect",options:{field:"name",route:{model:"mailSubstatus",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},d.tag.get({sort:"name"}).$promise.then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){return d.mailSubstatus.get({nolimit:!0}).$promise.then(function(e){m.subStatuses=e||{count:0,rows:[]}})}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Substatus",key:"substatus",type:"select",label:"DASHBOARDS.SELECT_SUBSTATUS",options:m.subStatuses.rows,customOptions:[{value:"null",translate:"DASHBOARDS.NONE"},{value:void 0,translate:"DASHBOARDS.ALL"}],ngValue:"name",ngIf:"closed === 0"},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]})},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interaction #")+e.id||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.mailInteractionDownload=function(s,e,n){return d.mailInteraction.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="interaction"+s.id,a=new Blob(n,{type:e.type});t="mail-interaction"+s.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getMailAccountInteractions=p,m.createOrEditMailAccountInteraction=function(e,n){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/interactions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailAccount:m.mailAccount,interaction:n,interactions:m.mailAccountInteractions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.spymailInteraction=function(e,t){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,n){e.vm.init({id:1,channel:"mail",interaction:t,spy:!0},a.$parent.vm.setting)}})},m.openAdvancedSearch=function(){o.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,locals:{fields:m.advancedSearch.fields,color:void 0,storagePath:"mail.mailAccounts"},fullscreen:!0}).then(function(e){if(m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply){var n="";n+="||MailAccountId:=$eq["+m.mailAccount.id+"]",m.query.search=e.value?e.value+=n:e.value,p()}}).catch(function(e){l.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.exportSelectedMailAccountInteractions=function(){var e=angular.copy(m.selectedMailAccountInteractions);return m.selectedMailAccountInteractions=[],e},m.deleteMailAccountInteraction=g,m.deleteSelectedMailAccountInteractions=function(e){var n=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+m.selectedMailAccountInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedMailAccountInteractions.forEach(function(e){g(e)}),m.selectedMailAccountInteractions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.mail").controller("MailAccountInteractionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.mailAccountMailCannedAnswers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.mailAccount.getAnswers(m.query,u).$promise}function g(e){d.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(m.mailAccountMailCannedAnswers.rows,{id:e.id}),m.mailAccountMailCannedAnswers.count-=1,m.mailAccountMailCannedAnswers.rows.length||p(),l.success({title:"MailCannedAnswer deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETmailAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.mailAccount={},m.mailAccountMailCannedAnswers={count:0,rows:[]},m.selectedMailAccountMailCannedAnswers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,key,value,description",limit:10,page:1},m.init=function(e,n,t){m.mailAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.MailAccountId=m.mailAccount.id,m.query.id=m.mailAccount.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the mailCannedAnswer?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("mailCannedAnswer #")+e.id||"mailCannedAnswer")+"</b> will be deleted.").ariaLabel("delete mailCannedAnswer").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getMailAccountMailCannedAnswers=p,m.createOrEditMailAccountMailCannedAnswer=function(e,n){o.show({controller:"CreateOrEditMailCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/mailCannedAnswers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailAccount:m.mailAccount,mailCannedAnswer:n,mailCannedAnswers:m.mailAccountMailCannedAnswers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedMailAccountMailCannedAnswers=function(){var e=angular.copy(m.selectedMailAccountMailCannedAnswers);return m.selectedMailAccountMailCannedAnswers=[],e},m.deleteMailAccountMailCannedAnswer=g,m.deleteSelectedMailAccountMailCannedAnswers=function(e){var n=o.confirm().title("Are you sure want to delete the selected mailCannedAnswers?").htmlContent("<b>"+m.selectedMailAccountMailCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete mailCannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedMailAccountMailCannedAnswers.forEach(function(e){g(e)}),m.selectedMailAccountMailCannedAnswers=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.mail").controller("MailAccountMailCannedAnswersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MAIL.EDIT_MAILCANNEDANSWER",g.mailCannedAnswer=angular.copy(l),g.mailCannedAnswers=r,g.newMailCannedAnswer=!1,g.mailCannedAnswer||(g.mailCannedAnswer={},g.title="MAIL.NEW_MAILCANNEDANSWER",g.newMailCannedAnswer=!0),n.params.id&&(g.mailCannedAnswer.MailAccountId=n.params.id),g.addNewMailCannedAnswer=function(){g.errors=[],d.cannedAnswer.save(g.mailCannedAnswer).$promise.then(function(e){g.mailCannedAnswers.unshift(e.toJSON()),o.success({title:"MailCannedAnswer properly created",msg:g.mailCannedAnswer.name?g.mailCannedAnswer.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveMailCannedAnswer=function(){g.errors=[],d.cannedAnswer.update({id:g.mailCannedAnswer.id},g.mailCannedAnswer).$promise.then(function(e){var n=_.find(g.mailCannedAnswers,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"MailCannedAnswer properly saved!",msg:g.mailCannedAnswer.name?g.mailCannedAnswer.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteMailCannedAnswer=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The mailCannedAnswer will be deleted.").ariaLabel("Delete MailCannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cannedAnswer.delete({id:g.mailCannedAnswer.id}).$promise.then(function(){_.remove(g.mailCannedAnswers,{id:g.mailCannedAnswer.id}),o.success({title:"MailCannedAnswer properly deleted!",msg:(g.mailCannedAnswer.name||"mailCannedAnswer")+" has been deleted!"}),v(g.mailCannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","mailCannedAnswers","mailCannedAnswer","api","Auth","license","setting","crudPermissions"],angular.module("app.mail").controller("CreateOrEditMailCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.mailAccount.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.mailAccount=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.MailAccountId=m.mailAccount.id,m.query.id=m.mailAccount.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.mailAccount.id,field:"MailAccountId",route:"mailAccount"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.mail").controller("MailAccountDispositionsController",e)}(),function(){"use strict";function e(t,e,a,i,s,n,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=n,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=e.protocol()+"://"+e.host(),p.mailAccount=c||t.params.mailAccount||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=t.params.tab||0,p.gotogoto=function(e,n){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:610}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.mail.realtime.accounts",{}):l.info({title:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.mail.realtime.accounts",{})}},p.agentadddialog=function(e,n){a.show({controller:"MailAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailAccount:e,mailAccounts:p.mailAccounts?p.mailAccounts.rows:[],crudPermissions:p.crudPermissions,realtime:!1}})},p.alert=l.info,p.gotoMailAccounts=function(){t.go("app.mail.mailAccounts",{},{reload:"app.mail.mailAccounts"})},p.saveMailAccount=function(){r.mailAccount.update({id:p.mailAccount.id},p.mailAccount).$promise.then(function(){l.success({title:"MailAccount updated!",msg:p.mailAccount.name?p.mailAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.lists,{id:e.resourceId})}),t=null;if(p.mailAccount&&(t=_.find(p.lists,{id:Number(p.mailAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.lists,{id:t.id});a.canSelect=!1,n.push(a)}p.lists=n})}else{var t=[],a=null;p.mailAccount&&(a=_.find(p.lists,{id:Number(p.mailAccount.ListId)}));for(var i=0;i<p.lists.length;i++)a&&p.lists[i].id===a.id&&(p.lists[i].canSelect=!1,t.push(p.lists[i]));p.lists=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.pauses,{id:e.resourceId})});p.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),p.pauses=n})}else p.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","mailAccount","userProfile","userProfileSection"],angular.module("app.mail").controller("MailAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.mailAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="mailAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedMailAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,key,email,ListId,active,cservice,Imap.service,Imap.host,Imap.port,Imap.tls,Imap.authentication,Imap.user,Imap.password,Imap.mailbox,Imap.connTimeout,Imap.authTimeout,Smtp.service,Smtp.host,Smtp.port,Smtp.secure,Smtp.authentication,Smtp.user,Smtp.pass,cauthentication,cuser,cpassword,fontFamily,fontSize,template,markAsUnread,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,page:1},f.arraycservice=_.keyBy([{option:"Custom",value:"null"},{option:"Gmail",value:"'gmail'"},{option:"Hotmail",value:"'hotmail'"},{option:"Yahoo",value:"'yahoo'"},{option:"Outlook365",value:"'outlook365'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f["arrayImap.service"]=_.keyBy([{option:"Custom",value:"null"},{option:"Gmail",value:"'gmail'"},{option:"Hotmail",value:"'hotmail'"},{option:"Yahoo",value:"'yahoo'"},{option:"Outlook365",value:"'outlook365'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f["arraySmtp.service"]=_.keyBy([{option:"Custom",value:"null"},{option:"Gmail",value:"'gmail'"},{option:"Hotmail",value:"'hotmail'"},{option:"Yahoo",value:"'yahoo'"},{option:"Outlook365",value:"'outlook365'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.mail.mailAccounts.edit",{id:e.id,mailAccount:e,crudPermissions:f.crudPermissions})},f.verifysmtpverifysmtp=function(e,n){{if(e&&e.id)return m.mailAccount.verifySmtp({id:e.id}).$promise.then(function(){p.success({title:"Smtp properly verified",msg:"Connection succeded!"})}).catch(function(e){p.error({title:"Smtp properly verified",msg:e.data?JSON.stringify(e.data):e.toString()})});p.error({title:"Smtp properly verified",msg:"Smpt id unknown"})}},f.interactionsgoto=function(e,n){t.go("app.mail.mailAccounts.edit",{id:e.id,tab:7})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:610}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.mail.realtime.accounts",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.mail.realtime.accounts",{})}},f.agentadddialog=function(e,n){i.show({controller:"MailAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailAccount:e,mailAccounts:f.mailAccounts?f.mailAccounts.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("mailAccount")+"?").htmlContent("<b>"+(e.name||"mailAccount")+"</b> will be deleted.").ariaLabel("delete mailAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getMailAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.mailAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="MailAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditMailAccount=function(e,n){i.show({controller:"CreateOrEditMailAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailAccount:n,mailAccounts:f.mailAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteMailAccount=y,f.exportSelectedMailAccounts=function(){var e=angular.copy(f.selectedMailAccounts);return f.selectedMailAccounts=[],e},f.deleteSelectedMailAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected mailAccounts?").htmlContent("<b>"+f.selectedMailAccounts.length+" selected</b> will be deleted.").ariaLabel("delete MailAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedMailAccounts.forEach(function(e){y(e)}),f.selectedMailAccounts=[]})},f.deselectMailAccounts=function(){f.selectedMailAccounts=[]},f.selectAllMailAccounts=function(){f.selectedMailAccounts=f.mailAccounts.rows},g.hasRole("admin")?m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.lists,{id:e.resourceId})}),t=null;if(f.mailAccount&&(t=_.find(f.lists,{id:Number(f.mailAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.lists,{id:t.id});a.canSelect=!1,n.push(a)}f.lists=n})}else{var t=[],a=null;f.mailAccount&&(a=_.find(f.lists,{id:Number(f.mailAccount.ListId)}));for(var i=0;i<f.lists.length;i++)a&&f.lists[i].id===a.id&&(f.lists[i].canSelect=!1,t.push(f.lists[i]));f.lists=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.mailAccounts=e||{count:0,rows:[]}}function y(e){if(e.service)return p.error({title:"Mail Account not deleted!",msg:"You can't remove service account"});m.mailAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.mailAccounts.rows,{id:e.id}),f.mailAccounts.count-=1,f.mailAccounts.rows.length||f.getMailAccounts(),p.success({title:_.startCase("MailAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEmailAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEmailAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getMailAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","mailAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.mail").controller("MailAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MAIL.EDIT_MAILQUEUE",g.mailQueue=angular.copy(l),g.mailQueues=r,g.newMailQueue=!1,g.mailQueue||(g.mailQueue={strategy:"beepall",timeout:10},g.title="MAIL.NEW_MAILQUEUE",g.newMailQueue=!0),g.addNewMailQueue=function(){g.errors=[],d.mailQueue.save(g.mailQueue).$promise.then(function(e){g.mailQueues.unshift(e.toJSON()),o.success({title:"MailQueue properly created",msg:g.mailQueue.name?g.mailQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveMailQueue=function(){g.errors=[],d.mailQueue.update({id:g.mailQueue.id},g.mailQueue).$promise.then(function(e){var n=_.find(g.mailQueues,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"MailQueue properly saved!",msg:g.mailQueue.name?g.mailQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteMailQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The mailQueue will be deleted.").ariaLabel("Delete MailQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.mailQueue.delete({id:g.mailQueue.id}).$promise.then(function(){_.remove(g.mailQueues,{id:g.mailQueue.id}),o.success({title:"MailQueue properly deleted!",msg:(g.mailQueue.name||"mailQueue")+" has been deleted!"}),v(g.mailQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","mailQueues","mailQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.mail").controller("CreateOrEditMailQueueDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.mailQueue.getAgents({id:c.mailQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserMailQueue?"penalty "+e.UserMailQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.mailQueue=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.mailQueue.removeAgents({id:c.mailQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.mailQueue.addAgents({id:c.mailQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("MAIL.ALL_AGENTS"),labelSelected:r.instant("MAIL.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","mailQueue","mailQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.mail").controller("MailQueueagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.mailQueue.getTeams({id:l.mailQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.mailQueue=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("MAIL.ALL_TEAMS"),labelSelected:t.instant("MAIL.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.mailQueue.removeTeams({id:l.mailQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.mailQueue.addTeams({id:l.mailQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","mailQueue","$translate","Auth","crudPermissions"],angular.module("app.mail").controller("MailQueueteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.mailQueue=c||e.params.mailQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.teamadddialog=function(e,n){t.show({controller:"MailQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailQueue:e,mailQueues:u.mailQueues?u.mailQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){t.show({controller:"MailQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailQueue:e,mailQueues:u.mailQueues?u.mailQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoMailQueues=function(){e.go("app.mail.mailQueues",{},{reload:"app.mail.mailQueues"})},u.saveMailQueue=function(){r.mailQueue.update({id:u.mailQueue.id},u.mailQueue).$promise.then(function(){l.success({title:"MailQueue updated!",msg:u.mailQueue.name?u.mailQueue.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","mailQueue","userProfileSection"],angular.module("app.mail").controller("MailQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.mailQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="mailQueues",f.listOrder="",f.listOrderAsc=null,f.selectedMailQueues=[],f.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"mail",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.mail.mailQueues.edit",{id:e.id,mailQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"MailQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailQueue:e,mailQueues:f.mailQueues?f.mailQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"MailQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailQueue:e,mailQueues:f.mailQueues?f.mailQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("mailQueue")+"?").htmlContent("<b>"+(e.name||"mailQueue")+"</b> will be deleted.").ariaLabel("delete mailQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:610}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.mail.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.mail.realtime.queues",{})}},f.success=E,f.getMailQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.mailQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="MailQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditMailQueue=function(e,n){i.show({controller:"CreateOrEditMailQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailQueue:n,mailQueues:f.mailQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteMailQueue=y,f.exportSelectedMailQueues=function(){var e=angular.copy(f.selectedMailQueues);return f.selectedMailQueues=[],e},f.deleteSelectedMailQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected mailQueues?").htmlContent("<b>"+f.selectedMailQueues.length+" selected</b> will be deleted.").ariaLabel("delete MailQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedMailQueues.forEach(function(e){y(e)}),f.selectedMailQueues=[]})},f.deselectMailQueues=function(){f.selectedMailQueues=[]},f.selectAllMailQueues=function(){f.selectedMailQueues=f.mailQueues.rows};var b=!0,A=1;function E(e){f.mailQueues=e||{count:0,rows:[]}}function y(e){m.mailQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.mailQueues.rows,{id:e.id}),f.mailQueues.count-=1,f.mailQueues.rows.length||f.getMailQueues(),p.success({title:_.startCase("MailQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEmailQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEmailQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getMailQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","mailQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.mail").controller("MailQueuesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MAIL.EDIT_MAILSUBSTATUS",g.mailSubstatus=angular.copy(l),g.mailSubtatuses=r,g.newMailSubstatus=!1,g.mailSubstatus||(g.mailSubstatus={},g.title="MAIL.NEW_MAILSUBSTATUS",g.newMailSubstatus=!0),g.addNewMailSubstatus=function(){g.errors=[],d.mailSubstatus.save(g.mailSubstatus).$promise.then(function(e){g.mailSubtatuses.unshift(e.toJSON()),o.success({title:"MailSubstatus properly created",msg:g.mailSubstatus.name?g.mailSubstatus.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailSubstatus.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailSubstatus.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveMailSubstatus=function(){g.errors=[],d.mailSubstatus.update({id:g.mailSubstatus.id},g.mailSubstatus).$promise.then(function(e){var n=_.find(g.mailSubtatuses,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"MailSubstatus properly saved!",msg:g.mailSubstatus.name?g.mailSubstatus.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailSubstatus.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailSubstatus.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteMailSubstatus=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The mailSubstatus will be deleted.").ariaLabel("Delete MailSubstatus").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.mailSubstatus.delete({id:g.mailSubstatus.id}).$promise.then(function(){_.remove(g.mailSubtatuses,{id:g.mailSubstatus.id}),o.success({title:"MailSubstatus properly deleted!",msg:(g.mailSubstatus.name||"mailSubstatus")+" has been deleted!"}),v(g.mailSubstatus)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailSubstatus.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailSubstatus.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","mailSubtatuses","mailSubstatus","api","Auth","license","setting","crudPermissions"],angular.module("app.mail").controller("CreateOrEditMailSubstatusDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.mailSubtatuses=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="mailSubtatuses",f.listOrder="",f.listOrderAsc=null,f.selectedMailSubstatuses=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditMailSubstatusDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailSubtatuses/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{mailSubstatus:e,mailSubtatuses:f.mailSubtatuses.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("mailSubstatus")+"?").htmlContent("<b>"+(e.name||"mailSubstatus")+"</b> will be deleted.").ariaLabel("delete mailSubstatus").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getMailSubstatuses=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.mailSubstatus.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="MailSubstatuses",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditMailSubstatus=function(e,n){i.show({controller:"CreateOrEditMailSubstatusDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailSubtatuses/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailSubstatus:n,mailSubtatuses:f.mailSubtatuses.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteMailSubstatus=y,f.exportSelectedMailSubstatuses=function(){var e=angular.copy(f.selectedMailSubstatuses);return f.selectedMailSubstatuses=[],e},f.deleteSelectedMailSubstatuses=function(e){var n=i.confirm().title("Are you sure want to delete the selected mailSubtatuses?").htmlContent("<b>"+f.selectedMailSubstatuses.length+" selected</b> will be deleted.").ariaLabel("delete MailSubstatuss").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedMailSubstatuses.forEach(function(e){y(e)}),f.selectedMailSubstatuses=[]})},f.deselectMailSubstatuses=function(){f.selectedMailSubstatuses=[]},f.selectAllMailSubstatuses=function(){f.selectedMailSubstatuses=f.mailSubtatuses.rows};var b=!0,A=1;function E(e){f.mailSubtatuses=e||{count:0,rows:[]}}function y(e){m.mailSubstatus.delete({id:e.id}).$promise.then(function(){_.remove(f.mailSubtatuses.rows,{id:e.id}),f.mailSubtatuses.count-=1,f.mailSubtatuses.rows.length||f.getMailSubstatuses(),p.success({title:_.startCase("MailSubstatus")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEmailSubstatus"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEmailSubstatus",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getMailSubstatuses())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","mailSubtatuses","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.mail").controller("MailSubstatusesController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m,u){var p=this;function g(){_.forIn(p.mailAccounts,function(e,n){p.rpcMailAccounts[n]&&_.merge(e,p.rpcMailAccounts[n])}),_.forIn(p.mailAccounts,function(n,e){var t={id:e,sort:"-id",direction:"in",limit:1,offset:0,$gte:"createdAt,"+moment().startOf("day").format("YYYY-MM-DD HH:mm:ss"),fields:"id,createdAt"};s.mailAccount.getMessages(t).$promise.then(function(e){return e&&(n.in=e.count||0,n.lastIn=e.rows&&e.rows.length?e.rows[0].createdAt:void 0),t.direction="out",s.mailAccount.getMessages(t).$promise}).then(function(e){e&&(n.out=e.count||0,n.lastOut=e.rows&&e.rows.length?e.rows[0].createdAt:void 0)}).catch(function(e){console.log(e)})})}p.currentUser=u.getCurrentUser(),p.count=l&&l.count?l.count:0,p.mailAccounts=l?_.keyBy(l.rows?l.rows:[],"id"):{},p.rpcMailAccounts=d?_.keyBy(d.rows?d.rows:[],"id"):{},p.userProfile=c,p.userProfileSection=m&&1==m.count?m.rows[0]:null,p.crudPermissions=u.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.query={sort:"-name",limit:10,page:1},p.success=f,p.$onInit=g,p.getMailAccounts=function(){p.query.offset=(p.query.page-1)*p.query.limit,u.hasRole("admin")?p.promise=s.mailAccount.get(p.query,f).$promise:(p.query.id=p.userProfile.id,p.query.section="MailAccounts",p.promise=s.userProfile.getResources(p.query,f).$promise)},p.onSave=function(e){p.mailAccounts[e.id]&&_.merge(p.mailAccounts[e.id],e)},p.onMailMessageSave=function(e){p.mailAccounts[e.MailAccountId]&&("in"==e.direction?(p.mailAccounts[e.MailAccountId].in+=1,p.mailAccounts[e.MailAccountId].lastIn=e.createdAt):(p.mailAccounts[e.MailAccountId].out+=1,p.mailAccounts[e.MailAccountId].lastOut=e.createdAt))},p.goToMailAccount=function(e,n){i.go("app.mail.mailAccounts.edit",{id:n.id,mailAccount:n})},p.verifySmtp=function(e,n){{if(n&&n.id)return s.mailAccount.verifySmtp({id:n.id}).$promise.then(function(){r.success({title:"Smtp properly verified",msg:"Connection succeded!"})}).catch(function(e){r.error({title:"Smtp properly verified",msg:e.data?JSON.stringify(e.data):e.toString()})});r.error({title:"Smtp properly verified",msg:"Smpt id unknown"})}},p.order=[],_.forIn(p.mailAccounts,function(e,n){p.order.push(e.id)}),o.on("mailAccount:save",p.onSave),o.on("mailAccount:update",p.onSave),o.on("mailMessage:save",p.onMailMessageSave);var v=!0,h=1;function f(e){if(p.mailAccounts=e?_.keyBy(e.rows?e.rows:[],"id"):{},e.rows){p.order=[];for(var n=0;n<e.rows.length;n++)p.order.push(e.rows[n].id)}g()}e.$watch("vm.query.filter",function(e,n){v?t(function(){v=!1}):(n||(h=p.query.page),e!==n&&(p.query.page=1),e||(p.query.page=h),p.getMailAccounts())}),e.$on("$destroy",function(){o.removeAllListeners("mailAccount:save"),o.removeAllListeners("mailAccount:update"),o.removeAllListeners("mailMessage:save")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$state","api","socket","toasty","mailAccounts","rpcMailAccounts","userProfile","userProfileSection","Auth"],angular.module("app.mail").controller("MailAccountsRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c,m){var u=this,p=["loggedIn","available","waiting","paused"],g=n(function(){},999);u.currentUser=c.getCurrentUser(),u.queues=s,u.userProfileSection=d&&1==d.count?d.rows[0]:null,u.crudPermissions=c.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.query={id:c.isUser()?u.currentUser.id:void 0,section:c.isUser()?"MailQueues":void 0,channel:"mail",sort:"name",limit:10,page:1},u.getQueues=function(){u.query.offset=(u.query.page-1)*u.query.limit,o.realtime.getQueues(u.query).$promise.then(function(e){u.queues=e}).catch(function(e){l.error({title:i.instant("MAIL.MAILQUEUES"),msg:e.status?JSON.stringify(e.data):e.toString()})})},u.editQueue=function(e,n){t.show({controller:"CreateOrEditMailQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailQueue:n,mailQueues:u.queues.rows,license:null,setting:null,crudPermissions:u.crudPermissions}})},u.addAgent=function(e,n){t.show({controller:"MailQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/mail/views/mailQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{mailQueue:n,mailQueues:u.queues.rows,realtime:!1,crudPermissions:u.crudPermissions}})},r.on("mail_queue:save",function(e){var n=_.find(u.queues.rows,["id",e.id]);n&&_.merge(n,_.pick(e,p))}),r.on("userMailQueue:save",function(e){var n=_.find(u.queues.rows,["id",e.MailQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),r.on("userMailQueue:remove",function(e){var n=_.find(u.queues.rows,["id",e.MailQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),r.on("user:update",function(t){u.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&m.updateQueue(t,e,n,"mail")})}),e.$on("$destroy",function(){r.removeAllListeners("mail_queue:save"),r.removeAllListeners("userMailQueue:remove"),r.removeAllListeners("userMailQueue:save"),r.removeAllListeners("user:update"),g&&n.cancel(g)})}e.$inject=["$scope","$mdDialog","$document","$interval","$translate","queues","api","socket","toasty","userProfileSection","Auth","realtimeManager"],angular.module("app.mail").controller("QueuesMailRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){return{status:{registered:"green-300-fg icon-checkbox-marked-circle",unregistered:"red-300-fg icon-close-circle",lagged:"red-300-fg icon-close-circle",reachable:"green-300-fg icon-checkbox-marked-circle",unreachable:"red-300-fg icon-close-circle",unknown:"grey-fg icon-minus-circle"},state:{unknown:"grey-fg icon-phone-hangup",not_inuse:"green-300-fg icon-phone-hangup",inuse:"red-300-fg icon-phone-in-talk",busy:"red-300-fg icon-phone-locked",invalid:"grey-fg icon-phone-hangup",unavailable:"grey-fg icon-phone-hangup",ringing:"blue-300-fg icon-phone-incoming",ringinuse:"blue-300-fg icon-phone-incoming",onhold:"blue-300-fg icon-phone-paused"},channelStatus:{ring:"blue-300-fg icon-phone-incoming",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"},channelStatusOut:{ring:"blue-300-fg icon-phone-outgoing",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"}}})}(),function(){"use strict";function e(e,t,n){switch(this.selectedTab=0,t.current.name){case"app.mail.realtime.agents":this.selectedTab=0;break;case"app.mail.realtime.queues":this.selectedTab=1;break;case"app.mail.realtime.accounts":this.selectedTab=2;break;default:this.selectedTab=0,t.go("app.mail.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.mail.realtime.agents");break;case 1:t.go("app.mail.realtime.queues");break;case 2:t.go("app.mail.realtime.accounts");break;default:t.go("app.mail.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.mail").controller("MailRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MARKETPLACE.EDIT_PLUGIN",g.plugin=angular.copy(l),g.plugins=r,g.newPlugin=!1,g.plugin||(g.plugin={},g.title="MARKETPLACE.NEW_PLUGIN",g.newPlugin=!0),g.addNewPlugin=function(){g.errors=[],d.plugin.save(g.plugin).$promise.then(function(e){g.plugins.unshift(e.toJSON()),o.success({title:"Plugin properly created",msg:g.plugin.name?g.plugin.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.plugin.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.plugin.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.savePlugin=function(){g.errors=[],d.plugin.update({id:g.plugin.id},g.plugin).$promise.then(function(e){var n=_.find(g.plugins,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Plugin properly saved!",msg:g.plugin.name?g.plugin.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.plugin.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.plugin.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deletePlugin=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The plugin will be deleted.").ariaLabel("Delete Plugin").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.plugin.delete({id:g.plugin.id}).$promise.then(function(){_.remove(g.plugins,{id:g.plugin.id}),o.success({title:"Plugin properly deleted!",msg:(g.plugin.name||"plugin")+" has been deleted!"}),v(g.plugin)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.plugin.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.plugin.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","plugins","plugin","api","Auth","license","setting","crudPermissions"],angular.module("app.marketplace").controller("CreateOrEditPluginDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.plugin=c||e.params.plugin||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoPlugins=function(){e.go("app.marketplace.plugins",{},{reload:"app.marketplace.plugins"})},u.savePlugin=function(){r.plugin.update({id:u.plugin.id},u.plugin).$promise.then(function(){l.success({title:"Plugin updated!",msg:u.plugin.name?u.plugin.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETplugin",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","plugin","userProfileSection"],angular.module("app.marketplace").controller("MarketplacePluginController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.plugins=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="plugins",f.listOrder="",f.listOrderAsc=null,f.selectedPlugins=[],f.query={fields:"createdAt,updatedAt,id,name,type,active,description,icon,sidebar,path,adminUrl,agentUrl,scriptName,scriptPath,version",sort:"-updatedAt",limit:10,page:1},f.installing=!1,f.arraysidebar=_.keyBy([{option:"Always",value:"'always'"},{option:"Admin Only",value:"'adminOnly'"},{option:"Agent Only",value:"'agentOnly'"},{option:"Never",value:"'never'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.installplugin=function(e){{if("script"!==e.type)return e.active=!0,m.plugin.update({id:e.id},e).$promise.then(function(){p.success({title:"Plugin installed!",msg:e.name?e.name+" has been installed!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"api.plugin.update"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.plugin.update",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})});f.installing=!0,m.pm2.save({name:e.scriptName,script:e.path+"/"+e.scriptPath}).$promise.then(function(){return e.active=!0,m.plugin.update({id:e.id},e).$promise}).then(function(){f.installing=!1,p.success({title:"Plugin installed!",msg:e.name?e.name+" has been installed!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"api.pm2.save"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pm2.save",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}},f.editstate=function(e,n){t.go("app.marketplace.plugins.edit",{id:e.id,plugin:e,crudPermissions:f.crudPermissions})},f.stopplugin=function(e,n){var t=i.confirm().title("Are you sure want to stop the plugin attached process?").htmlContent("<b>"+(e.name||"plugin")+"</b> attached process will be stoppped.").ariaLabel("stop plugin process").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){var t;t=e,m.pm2.get().$promise.then(function(e){if(!e||!e.rows)throw new Error("Failed to retrieve pm2 processes");var n=_.find(e.rows,{name:t.scriptName});if(!n)throw new Error("No corresponding process found");m.pm2.update({id:n.pm_id,status:"stopped"}).$promise.then(function(){p.success({title:"Process stopped!",msg:"Attached pm2 process successfully stopped"})})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"api.pm2.update"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pm2.update",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){console.log("CANCEL")})},f.restartplugin=function(e,n){var t=i.confirm().title("Are you sure want to restart the plugin attached process?").htmlContent("<b>"+(e.name||"plugin")+"</b> attached process will be restarted.").ariaLabel("restart plugin process").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){var t;t=e,m.pm2.get().$promise.then(function(e){if(!e||!e.rows)throw new Error("Failed to retrieve pm2 processes");var n=_.find(e.rows,{name:t.scriptName});if(!n)throw new Error("No corresponding process found");m.pm2.update({id:n.pm_id,status:"online"}).$promise.then(function(){p.success({title:"Process restarted!",msg:"Attached pm2 process successfully restarted"})})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"api.pm2.update"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pm2.update",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){console.log("CANCEL")})},f.downloadfile2=function(s,e){return m.plugin.download({id:s.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s.name.replace(" ","_").toLowerCase()+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.plugin.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.uninstallplugin=function(e,n){var t=i.confirm().title("Are you sure want to uninstall the plugin?").htmlContent("<b>"+(e.name||"plugin")+"</b> will be uninstalled.").ariaLabel("uninstall plugin").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){!function(t){"script"===t.type&&m.pm2.get().$promise.then(function(e){if(!e||!e.rows)throw new Error("Failed to retrieve pm2 processes");var n=_.find(e.rows,{name:t.scriptName});if(!n)throw new Error("No corresponding process found");m.pm2.delete({id:n.pm_id,name:t.scriptName}).$promise}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pm2.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})});t.active=!1,m.plugin.update({id:t.id},t).$promise.then(function(){p.success({title:"Plugin uninstalled!",msg:t.name?t.name+" has been uninstalled!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"api.plugin.update"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.plugin.update",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}(e)},function(){console.log("CANCEL")})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("plugin")+"?").htmlContent("<b>"+(e.name||"plugin")+"</b> will be deleted.").ariaLabel("delete plugin").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getPlugins=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.plugin.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Plugins",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditPlugin=function(e,n){i.show({controller:"CreateOrEditPluginDialogController",controllerAs:"vm",templateUrl:"app/main/apps/marketplace/views/plugins/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{plugin:n,plugins:f.plugins.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deletePlugin=y,f.exportSelectedPlugins=function(){var e=angular.copy(f.selectedPlugins);return f.selectedPlugins=[],e},f.deleteSelectedPlugins=function(e){var n=i.confirm().title("Are you sure want to delete the selected plugins?").htmlContent("<b>"+f.selectedPlugins.length+" selected</b> will be deleted.").ariaLabel("delete Plugins").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedPlugins.forEach(function(e){y(e)}),f.selectedPlugins=[]})},f.deselectPlugins=function(){f.selectedPlugins=[]},f.selectAllPlugins=function(){f.selectedPlugins=f.plugins.rows},f.uploadPlugin=function(e){i.show({controller:"UploadPluginDialogController",controllerAs:"vm",templateUrl:"app/main/apps/marketplace/views/plugins/upload/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{plugins:f.plugins.rows}})};var b=!0,A=1;function E(e){f.plugins=e||{count:0,rows:[]}}function y(t){t.active&&"script"==t.type&&m.pm2.get().$promise.then(function(e){if(!e||!e.rows)return p.error({title:"Plugin not deleted!",msg:"Failed to retrieve pm2 processes"});var n=_.find(e.rows,{name:t.scriptName});n?m.pm2.delete({id:n.pm_id,name:t.scriptName}).$promise:console.log("No '%s' process found",t.scriptName)}).catch(function(e){return p.error({title:"PM2 process not found!",msg:"Failed to delete the attached pm2 process"})}),m.plugin.delete({id:t.id}).$promise.then(function(){_.remove(f.plugins.rows,{id:t.id}),f.plugins.count-=1,f.plugins.rows.length||f.getPlugins(),p.success({title:_.startCase("Plugin")+" deleted!",msg:t.name?t.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEplugin"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEplugin",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getPlugins())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","plugins","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.marketplace").controller("MarketplacePluginsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this,r=4,l=1024*r*1024;o.currentUser=s.getCurrentUser(),o.errors=[],o.title="MARKETPLACE.UPLOAD_PLUGIN",o.plugins=a,o.uploadPlugins=[],o.uploadState="none",o.plugin={},o.ngFlowOptions={maxChunkRetries:1,chunkSize:l,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0,target:"api/plugins"},o.ngFlow={flow:{}},o.dropping=!1,o.fileAdded=function(e){var n=["zip"];if(!_.includes(n,e.getExtension()))return t.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(e.size>l)return t.error({title:"File too big",msg:"The max allowed size is "+r+"MB"}),!1;return o.plugin={id:e.uniqueIdentifier,file:e},o.uploadPlugins.unshift(o.plugin),!0},o.upload=function(){o.uploadState="uploading",o.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},o.ngFlow.flow.opts.query={role:o.currentUser.role,userProfileId:o.currentUser.userProfileId},o.ngFlow.flow.upload()},o.fileSuccess=function(a,e){o.plugins.unshift(JSON.parse(e)),angular.forEach(o.uploadPlugins,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result}}})},o.uploadError=function(e,n){o.ngFlow.flow.cancel(),t.error({title:"Upload error",msg:"Cannot upload the plugin"}),o.uploadState="failed"},o.uploadComplete=function(){"failed"!==o.uploadState&&(o.uploadState="completed",t.success({title:"Upload completed",msg:o.plugin.file.name+" uploaded successfully"}))},o.closeDialog=function(){n.hide()}}e.$inject=["$cookies","$mdDialog","toasty","plugins","api","Auth"],angular.module("app.marketplace").controller("UploadPluginDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MOTIONDIALER.EDIT_IVRCAMPAIGN",g.ivrCampaign=angular.copy(l),g.ivrCampaigns=r,g.newIvrCampaign=!1,g.ivrCampaign||(g.ivrCampaign={active:!0,type:"ivr",dialCheckDuplicateType:"always",dialCutDigit:0,limitCalls:30,dialRandomLastDigitCallerIdNumber:0,dialOriginateTimeout:30,dialGlobalMaxRetry:4,dialCongestionMaxRetry:3,dialCongestionRetryFrequency:150,dialBusyMaxRetry:3,dialBusyRetryFrequency:150,dialNoAnswerMaxRetry:3,dialNoAnswerRetryFrequency:150,dialNoSuchNumberMaxRetry:3,dialNoSuchNumberRetryFrequency:150,dialDropMaxRetry:3,dialDropRetryFrequency:150,dialAbandonedMaxRetry:3,dialAbandonedRetryFrequency:150,dialMachineMaxRetry:3,dialMachineRetryFrequency:150,dialAgentRejectMaxRetry:3,dialAgentRejectRetryFrequency:150,dialOrderByScheduledAt:"ASC",dialGlobalInterval:"07:00-22:00,*,*,*",dialAMDInitialSilence:2500,dialAMDGreeting:1500,dialAMDAfterGreetingSilence:800,dialAMDTotalAnalysisTime:5e3,dialAMDMinWordLength:100,dialAMDBetweenWordsSilence:50,dialAMDMaximumNumberOfWords:3,dialAMDSilenceThreshold:256,dialAMDMaximumWordLength:5e3},g.title="MOTIONDIALER.NEW_IVRCAMPAIGN",g.newIvrCampaign=!0),g.addNewIvrCampaign=function(){g.errors=[],d.campaign.save(g.ivrCampaign).$promise.then(function(e){g.ivrCampaigns.unshift(e.toJSON()),o.success({title:"IvrCampaign properly created",msg:g.ivrCampaign.name?g.ivrCampaign.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.campaign.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.campaign.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveIvrCampaign=function(){g.errors=[],d.campaign.update({id:g.ivrCampaign.id},g.ivrCampaign).$promise.then(function(e){var n=_.find(g.ivrCampaigns,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"IvrCampaign properly saved!",msg:g.ivrCampaign.name?g.ivrCampaign.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.campaign.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.campaign.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteIvrCampaign=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The ivrCampaign will be deleted.").ariaLabel("Delete IvrCampaign").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.campaign.delete({id:g.ivrCampaign.id}).$promise.then(function(){_.remove(g.ivrCampaigns,{id:g.ivrCampaign.id}),o.success({title:"IvrCampaign properly deleted!",msg:(g.ivrCampaign.name||"ivrCampaign")+" has been deleted!"}),v(g.ivrCampaign)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.campaign.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.campaign.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.trunk.get({fields:"id,name",sort:"name",table:"true"}).$promise.then(function(e){g.trunks=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.trunk.get({fields:"id,name",sort:"name",table:"true"}).$promise.then(function(e){g.trunks=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.trunks,{id:e.resourceId})});g.trunks.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),g.trunks=n})}else g.trunks=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.projects=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PROJECTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.projects=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1103}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.projects,{id:e.resourceId})}),t=null;if(g.ivrCampaign&&(t=_.find(g.projects,{id:Number(g.ivrCampaign.SquareProjectId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.projects,{id:t.id});a.canSelect=!1,n.push(a)}g.projects=n})}else{var t=[],a=null;g.ivrCampaign&&(a=_.find(g.projects,{id:Number(g.ivrCampaign.SquareProjectId)}));for(var i=0;i<g.projects.length;i++)a&&g.projects[i].id===a.id&&(g.projects[i].canSelect=!1,t.push(g.projects[i]));g.projects=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){g.interval=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){g.interval=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.interval,{id:e.resourceId})}),t=null;if(g.ivrCampaign&&(t=_.find(g.interval,{id:Number(g.ivrCampaign.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.interval,{id:t.id});a.canSelect=!1,n.push(a)}g.interval=n})}else{var t=[],a=null;g.ivrCampaign&&(a=_.find(g.interval,{id:Number(g.ivrCampaign.IntervalId)}));for(var i=0;i<g.interval.length;i++)a&&g.interval[i].id===a.id&&(g.interval[i].canSelect=!1,t.push(g.interval[i]));g.interval=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","ivrCampaigns","ivrCampaign","api","Auth","license","setting","crudPermissions"],angular.module("app.motiondialer").controller("CreateOrEditIvrCampaignDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l){var d=this;function c(){return a(function(t,n){return a(function(n,t){return s.cmList.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return d.items=e.rows?e.rows:[],r.hasRole("admin")?e:d.section?d.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:d.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return d.allowedItems=_.map(n,function(e){return _.find(d.items,{id:r.hasRole("admin")||d.section.autoAssociation?e.id:e.resourceId})}),d.startingAllowedItems=angular.copy(d.allowedItems),d.items.forEach(function(e){var n=_.find(d.allowedItems,{id:e.id});"admin"===d.currentUser.role?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s[d.apiRoute][d.getApi]({id:d.ivrCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];d.selectedItems=_.map(n,function(e){return _.find(d.items,{id:e.id})}),d.startingSelectedItems=angular.copy(d.selectedItems),d.dualMultiselectOptions.selectedItems=d.selectedItems,d.dualMultiselectOptions.items=_.differenceBy(d.allowedItems,d.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}d.currentUser=r.getCurrentUser(),d.ivrCampaign=n,d.crudPermissions=l,d.apiRoute="campaign",d.getApi="getBlackLists",d.addApi="addBlackLists",d.removeApi="removeBlackLists",d.items=[],d.allowedItems=[],d.selectedItems=[],d.startingAllowedItems=[],d.startingSelectedItems=[],d.pendingChanges=!1,d.loading=!1,d.dualMultiselectOptions={allowedItems:[],selectedItems:[],showSelectAndDeselectAll:!1,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:t.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,n){var t=_.xorBy(d.startingSelectedItems,d.selectedItems,"id");d.pendingChanges=!_.isEmpty(t)}},d.onInit=function(){return r.hasRole("admin")?c().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:d.currentUser.userProfileId,name:"Lists"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return d.section=e,c()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},d.saveLists=function(){d.loading=!0;var e=_.differenceBy(d.startingSelectedItems,d.selectedItems,"id"),n=_.differenceBy(d.selectedItems,d.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.removeApi]({id:d.ivrCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.addApi]({id:d.ivrCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){d.pendingChanges=!1,d.startingAllowedItems=angular.copy(d.allowedItems),d.startingSelectedItems=angular.copy(d.selectedItems),i.success({title:"SUCCESS",msg:"Lists association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})}).finally(function(){d.loading=!1});var t},d.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","ivrCampaign","$translate","$timeout","Auth","crudPermissions"],angular.module("app.motiondialer").controller("IvrCampaignblacklistaddController",e)}(),function(){"use strict";function e(n,t,a,e,i,s,o){var r=this;function l(e){n.hide(e)}r.newIvrCampaign=!0,r.ivrCampaign=angular.copy(i),r.ivrCampaigns=s,r.title=o.instant("MOTIONDIALER.CLONE_IVRCAMPAIGN"),i&&i.name&&(r.title+=": "+i.name),r.cloneIvrCampaign=function(){return e.campaign.clone({id:i.id},r.ivrCampaign).$promise.then(function(e){r.ivrCampaigns.unshift(e.toJSON()),a.success({title:"IvrCampaign properly cloned",msg:r.ivrCampaign.name?r.ivrCampaign.name+" has been cloned!":""}),t.go("app.motiondialer.ivrCampaigns.edit",{id:e.id}),l(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.campaign.clone"}];for(var n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.campaign.clone",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$mdDialog","$state","toasty","api","ivrCampaign","ivrCampaigns","$translate"],angular.module("app.motiondialer").controller("IvrCampaigncloneController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.ivrCampaignHopperBlacks=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.campaign.getHopperBlacks(m.query,u).$promise}function g(e){d.hopperBlack.delete({id:e.id}).$promise.then(function(){_.remove(m.ivrCampaignHopperBlacks.rows,{id:e.id}),m.ivrCampaignHopperBlacks.count-=1,m.ivrCampaignHopperBlacks.rows.length||p(),l.success({title:"HopperBlack deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcampaign"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.ivrCampaign={},m.ivrCampaignHopperBlacks={count:0,rows:[]},m.selectedIvrCampaignHopperBlacks=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,ContactId,phone",sort:"-id",limit:10,page:1},m.init=function(e,n){m.ivrCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.CampaignId=m.ivrCampaign.id,m.query.id=m.ivrCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopperBlack?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopperBlack #")+e.id||"hopperBlack")+"</b> will be deleted.").ariaLabel("delete hopperBlack").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getIvrCampaignHopperBlacks=p,m.createOrEditIvrCampaignHopperBlack=function(e,n){o.show({controller:"CreateOrEditHopperBlackDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hopperBlacks/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:m.ivrCampaign,hopperBlack:n,hopperBlacks:m.ivrCampaignHopperBlacks.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedIvrCampaignHopperBlacks=function(){var e=angular.copy(m.selectedIvrCampaignHopperBlacks);return m.selectedIvrCampaignHopperBlacks=[],e},m.deleteIvrCampaignHopperBlack=g,m.deleteSelectedIvrCampaignHopperBlacks=function(e){var n=o.confirm().title("Are you sure want to delete the selected hopperBlacks?").htmlContent("<b>"+m.selectedIvrCampaignHopperBlacks.length+" selected</b> will be deleted.").ariaLabel("delete hopperBlacks").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedIvrCampaignHopperBlacks.forEach(function(e){g(e)}),m.selectedIvrCampaignHopperBlacks=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("IvrCampaignHopperBlacksController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.ivrCampaignHopperFinals=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.campaign.getHopperFinals(m.query,u).$promise}function g(e){d.hopperFinal.delete({id:e.id}).$promise.then(function(){_.remove(m.ivrCampaignHopperFinals.rows,{id:e.id}),m.ivrCampaignHopperFinals.count-=1,m.ivrCampaignHopperFinals.rows.length||p(),l.success({title:"HopperFinal deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcampaign"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(a){d.cmHopperFinal.checkContactHopper(a).$promise.then(function(e){l.info({title:"The contact is in the hopper",msg:"Contact ID "+e.ContactId})}).catch(function(e){var n,t;"Not Found"===e.data?d.cmHopper.save((n=a,t={},t.phone=n.calleridnum,t.scheduledat=moment().format("YYYY-MM-DD HH:mm:ss"),t.countbusyretry=0,t.countcongestionretry=0,t.countnoanswerretry=0,t.countglobal=0,t.ContactId=n.ContactId,t.ListId=n.ListId,t.UserId=n.deleted?null:n.UserId,t.VoiceQueueId=n.VoiceQueueId,t.CampaignId=n.CampaignId,t.priority=n.recallme?3:2,t.recallme=!!n.recallme,t)).$promise.then(function(e){var n,t;l.info({title:"Restored Contact",msg:"Contact ID "+e.ContactId}),e.ContactId&&d.cmHopperHistory.save(((t={}).calleridnum=(n=a).calleridnum,t.calleridname=n.calleridname,t.scheduledat=moment().format("YYYY-MM-DD HH:mm:ss"),t.countbusyretry=n.countbusyretry,t.countcongestionretry=n.countcongestionretry,t.countnoanswerretry=n.countnoanswerretry,t.countglobal=n.countglobal,t.ContactId=n.ContactId,t.ListId=n.ListId,t.UserId=c.getCurrentUser().id,t.VoiceQueueId=n.VoiceQueueId,t.CampaignId=n.CampaignId,t.editedat=moment().format("YYYY-MM-DD HH:mm:ss"),t.edited=!0,t.state=25,t.statedesc="Restored",t.campaign=n.campaign,t.campaigntype=n.VoiceQueueId?"queue":"ivr",t))}).catch(function(e){_.isNil(e.data)||"Validation error"!==e.data.message?l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()}):l.info({title:"The contact is in the hopper",msg:"Contact ID "+a.ContactId})}):l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.contacts={},m.ivrCampaign={},m.ivrCampaignHopperFinals={count:0,rows:[]},m.selectedIvrCampaignHopperFinals=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,uniqueid,ContactId,calleridnum,calleridname,statedesc,countcongestionretry,countbusyretry,countnoanswerretry,countnosuchnumberretry,countdropretry,countabandonedretry,countmachineretry,countagentrejectretry,countglobal,scheduledat,starttime,responsetime,endtime,disposition,ListId,UserId,VoiceQueueId,CampaignId,recallme,deleted,campaign",sort:"-id",limit:10,page:1},m.init=function(e,n){m.ivrCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.CampaignId=m.ivrCampaign.id,m.query.id=m.ivrCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopperFinal?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopperFinal #")+e.id||"hopperFinal")+"</b> will be deleted.").ariaLabel("delete hopperFinal").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getIvrCampaignHopperFinals=p,m.createOrEditIvrCampaignHopperFinal=function(e,n){o.show({controller:"CreateOrEditHopperFinalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hopperFinals/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:m.ivrCampaign,hopperFinal:n,hopperFinals:m.ivrCampaignHopperFinals.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedIvrCampaignHopperFinals=function(){var e=angular.copy(m.selectedIvrCampaignHopperFinals);return m.selectedIvrCampaignHopperFinals=[],e},m.deleteIvrCampaignHopperFinal=g,m.deleteSelectedIvrCampaignHopperFinals=function(e){var n=o.confirm().title("Are you sure want to delete the selected hopperFinals?").htmlContent("<b>"+m.selectedIvrCampaignHopperFinals.length+" selected</b> will be deleted.").ariaLabel("delete hopperFinals").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedIvrCampaignHopperFinals.forEach(function(e){g(e)}),m.selectedIvrCampaignHopperFinals=[]})},m.moveIvrCampaignHopperFinal=v,m.moveContactsIvrCampaignHopperFinal=function(e){d.cmHopperFinal.moveContactsIvrCampaignHopperFinal({id:m.query.id,state:e}).$promise.then(function(e){_.isNil(e)&&_.isNil(e[0])?l.info({title:"Restored Contacts",msg:"0"}):l.info({title:"Restored Contacts",msg:JSON.stringify(e[0].affectedRows)})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},m.countContactsIvrCampaignHopperFinal=function(e){d.cmHopperFinal.countContactsIvrCampaignHopperFinal({id:e}).$promise.then(function(e){_.merge(m.contacts,e[0])}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},m.moveConfirm=function(e,n){var t=o.confirm().title("Are you sure want to restore the contact?").htmlContent("<b>Contact</b> will be restored.").ariaLabel("Restore Contact").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){v(e)},function(){console.log("CANCEL")})},m.moveSelectedIvrCampaignHopperFinals=function(e){var n=o.confirm().title("Are you sure want to restore the selected contacts?").htmlContent("<b> Contacts selected</b> will be restored.").ariaLabel("Restore Contacts").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedIvrCampaignHopperFinals.forEach(function(e){v(e)}),m.selectedIvrCampaignHopperFinals=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("IvrCampaignHopperFinalsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.ivrCampaignHopperHistories=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.campaign.getHopperHistories(m.query,u).$promise}function g(e){d.hopperHistory.delete({id:e.id}).$promise.then(function(){_.remove(m.ivrCampaignHopperHistories.rows,{id:e.id}),m.ivrCampaignHopperHistories.count-=1,m.ivrCampaignHopperHistories.rows.length||p(),l.success({title:"HopperHistory deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcampaign"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.ivrCampaign={},m.ivrCampaignHopperHistories={count:0,rows:[]},m.selectedIvrCampaignHopperHistories=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,uniqueid,ContactId,calleridnum,calleridname,statedesc,scheduledat,starttime,responsetime,endtime",sort:"-id",limit:10,page:1},m.init=function(e,n){m.ivrCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.CampaignId=m.ivrCampaign.id,m.query.id=m.ivrCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopperHistory?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopperHistory #")+e.id||"hopperHistory")+"</b> will be deleted.").ariaLabel("delete hopperHistory").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getIvrCampaignHopperHistories=p,m.createOrEditIvrCampaignHopperHistory=function(e,n){o.show({controller:"CreateOrEditHopperHistoryDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hopperHistories/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:m.ivrCampaign,hopperHistory:n,hopperHistories:m.ivrCampaignHopperHistories.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedIvrCampaignHopperHistories=function(){var e=angular.copy(m.selectedIvrCampaignHopperHistories);return m.selectedIvrCampaignHopperHistories=[],e},m.deleteIvrCampaignHopperHistory=g,m.deleteSelectedIvrCampaignHopperHistories=function(e){var n=o.confirm().title("Are you sure want to delete the selected hopperHistories?").htmlContent("<b>"+m.selectedIvrCampaignHopperHistories.length+" selected</b> will be deleted.").ariaLabel("delete hopperHistories").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedIvrCampaignHopperHistories.forEach(function(e){g(e)}),m.selectedIvrCampaignHopperHistories=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("IvrCampaignHopperHistoriesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.ivrCampaignHoppers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.campaign.getHoppers(m.query,u).$promise}function g(e){d.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(m.ivrCampaignHoppers.rows,{id:e.id}),m.ivrCampaignHoppers.count-=1,m.ivrCampaignHoppers.rows.length||p(),l.success({title:"Hopper deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETcampaign"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.ivrCampaign={},m.ivrCampaignHoppers={count:0,rows:[]},m.selectedIvrCampaignHoppers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,ContactId,phone,countcongestionretry,countbusyretry,countnoanswerretry,countnosuchnumberretry,countdropretry,countabandonedretry,countmachineretry,countagentrejectretry,scheduledat,priority",sort:"-updatedAt",limit:10,page:1},m.arraypriority=_.keyBy([{option:"Highest",value:"'4'"},{option:"High",value:"'3'"},{option:"Medium",value:"'2'"},{option:"Low",value:"'1'"},{option:"Lowest",value:"'0'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),m.init=function(e,n){m.ivrCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.CampaignId=m.ivrCampaign.id,m.query.id=m.ivrCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopper?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopper #")+e.id||"hopper")+"</b> will be deleted.").ariaLabel("delete hopper").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getIvrCampaignHoppers=p,m.createOrEditIvrCampaignHopper=function(e,n){o.show({controller:"CreateOrEditHopperCampaignIdDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/hoppers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:m.ivrCampaign,hopper:n,hoppers:m.ivrCampaignHoppers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedIvrCampaignHoppers=function(){var e=angular.copy(m.selectedIvrCampaignHoppers);return m.selectedIvrCampaignHoppers=[],e},m.deleteIvrCampaignHopper=g,m.deleteSelectedIvrCampaignHoppers=function(e){var n=o.confirm().title("Are you sure want to delete the selected hoppers?").htmlContent("<b>"+m.selectedIvrCampaignHoppers.length+" selected</b> will be deleted.").ariaLabel("delete hoppers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedIvrCampaignHoppers.forEach(function(e){g(e)}),m.selectedIvrCampaignHoppers=[]})},c.hasRole("admin")?d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){m.agents=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){m.agents=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:m.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(m.agents,{id:e.resourceId})});m.agents.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),m.agents=n})}else m.agents=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("IvrCampaignHoppersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MOTIONDIALER.EDIT_HOPPER",g.hopper=angular.copy(l),g.hoppers=r,g.newHopper=!1,g.hopper||(g.hopper={},g.title="MOTIONDIALER.NEW_HOPPER",g.newHopper=!0),n.params.id&&(g.hopper.CampaignId=n.params.id),g.addNewHopper=function(){g.errors=[],d.cmHopper.save(g.hopper).$promise.then(function(e){g.hoppers.unshift(e.toJSON()),o.success({title:"Hopper properly created",msg:g.hopper.name?g.hopper.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveHopper=function(){var t,a,i,s;g.errors=[],g.hopper.UserId=g.hopper.recallme?g.hopper.UserId:null,g.hopper.OwnerId=c.getCurrentUser().id,d.cmHopper.get({id:g.hopper.id,attributes:["scheduledat"]}).$promise.then(function(e){t=_.isNil(e)||_.isEmpty(e)?moment().format("YYYY-MM-DD HH:mm:ss"):e.scheduledat}).finally(function(){d.cmHopper.update({id:g.hopper.id},_.omit(g.hopper,["VoiceQueueId","CampaignId","ContactId","ListId"])).$promise.then(function(e){a=e,d.cmContact.get({id:a.ContactId,attributes:["firstName","lastName"]}).$promise.then(function(e){_.isNil(e)||_.isNil(e.firstName)||(i=e.firstName,_.isNil(e.lastName)||(i+=" "+e.lastName))}).catch(function(){i=void 0}).finally(function(){d.campaign.get({raw:!1,id:a.CampaignId,attributes:["name"]}).$promise.then(function(e){s=e.name}).catch(function(e){s=void 0}).finally(function(){d.cmHopperHistory.save({state:24,statedesc:"Edited",scheduledat:t,calleridnum:a.phone,calleridname:i,campaigntype:a.VoiceQueueId?"queue":"ivr",campaign:s,editedat:moment().format("YYYY-MM-DD HH:mm:ss"),edited:!0,ListId:a.ListId,UserId:c.getCurrentUser().id,VoiceQueueId:a.VoiceQueueId,CampaignId:a.CampaignId,ContactId:a.ContactId,callback:a.callback,callbackuniqueid:a.callbackuniqueid,countbusyretry:a.countbusyretry,countcongestionretry:a.countcongestionretry,countglobal:a.countglobal,countnoanswerretry:a.countnoanswerretry,followuptime:a.followuptime,recallme:a.recallme})})});var n=_.find(g.hoppers,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Hopper properly saved!",msg:g.hopper.name?g.hopper.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})})},g.deleteHopper=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The hopper will be deleted.").ariaLabel("Delete Hopper").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cmHopper.delete({id:g.hopper.id}).$promise.then(function(){_.remove(g.hoppers,{id:g.hopper.id}),o.success({title:"Hopper properly deleted!",msg:(g.hopper.name||"hopper")+" has been deleted!"}),v(g.hopper)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){g.agents=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){g.agents=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.agents,{id:e.resourceId})});g.agents.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),g.agents=n})}else g.agents=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","hoppers","hopper","api","Auth","license","setting","crudPermissions"],angular.module("app.motiondialer").controller("CreateOrEditHopperCampaignIdDialogController",e)}(),function(){"use strict";function e(t,a){var i=this;i.ivrCampaign={},i.init=function(n){i.ivrCampaign=n,t.cmHopper.get({limit:0,CampaignId:n.id}).$promise.then(function(e){return i.total=e.count||0,t.cmHopper.get({limit:0,CampaignId:n.id,active:!1,countbusyretry:0,countcongestionretry:0,countnoanswerretry:0,countnosuchnumberretry:0,countdropretry:0,countabandonedretry:0,countmachineretry:0,countagentrejectretry:0}).$promise}).then(function(e){return i.fresh=e.count||0,t.cmHopperFinal.get({limit:0,CampaignId:n.id}).$promise}).then(function(e){i.closed=e.count||0}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["api","toasty"],angular.module("app.motiondialer").controller("IvrCampaignHopperStatisticsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l){var d=this;function c(){return a(function(t,n){return a(function(n,t){return s.cmList.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return d.items=e.rows?e.rows:[],r.hasRole("admin")?e:d.section?d.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:d.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return d.allowedItems=_.map(n,function(e){return _.find(d.items,{id:r.hasRole("admin")||d.section.autoAssociation?e.id:e.resourceId})}),d.startingAllowedItems=angular.copy(d.allowedItems),d.items.forEach(function(e){var n=_.find(d.allowedItems,{id:e.id});"admin"===d.currentUser.role?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s[d.apiRoute][d.getApi]({id:d.ivrCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];d.selectedItems=_.map(n,function(e){return _.find(d.items,{id:e.id})}),d.startingSelectedItems=angular.copy(d.selectedItems),d.dualMultiselectOptions.selectedItems=d.selectedItems,d.dualMultiselectOptions.items=_.differenceBy(d.allowedItems,d.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}d.currentUser=r.getCurrentUser(),d.ivrCampaign=n,d.crudPermissions=l,d.apiRoute="campaign",d.getApi="getLists",d.addApi="addLists",d.removeApi="removeLists",d.items=[],d.allowedItems=[],d.selectedItems=[],d.startingAllowedItems=[],d.startingSelectedItems=[],d.pendingChanges=!1,d.loading=!1,d.dualMultiselectOptions={allowedItems:[],selectedItems:[],showSelectAndDeselectAll:!1,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:t.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,n){var t=_.xorBy(d.startingSelectedItems,d.selectedItems,"id");d.pendingChanges=!_.isEmpty(t)}},d.onInit=function(){return r.hasRole("admin")?c().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:d.currentUser.userProfileId,name:"Lists"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return d.section=e,c()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},d.saveLists=function(){d.loading=!0;var e=_.differenceBy(d.startingSelectedItems,d.selectedItems,"id"),n=_.differenceBy(d.selectedItems,d.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.removeApi]({id:d.ivrCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.addApi]({id:d.ivrCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){d.pendingChanges=!1,d.startingAllowedItems=angular.copy(d.allowedItems),d.startingSelectedItems=angular.copy(d.selectedItems),i.success({title:"SUCCESS",msg:"Lists association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})}).finally(function(){d.loading=!1});var t},d.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","ivrCampaign","$translate","$timeout","Auth","crudPermissions"],angular.module("app.motiondialer").controller("IvrCampaignlistaddController",e)}(),function(){"use strict";function e(e,n,a,i,s,t,o,r){var l=this;function d(){n.hide()}function c(e,n){var t=n.id;o.enqueue(function(){return i.campaign.removeLists({id:e,ids:t}).$promise.then(function(){return i.campaign.addLists({id:e,ids:t,dialCheckDuplicateType:"never"}).$promise}).then(function(){a.success({title:"Reset Succesfull",msg:"List "+n.name+" has been reset"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:queueCampaign.RESETLIST",msg:e.status?JSON.stringify(e.data):e.toString()})})})}l.selected=[],l.items=t||[],l.loading=!1,l.closeDialog=d,l.exists=function(e,n){return-1<n.indexOf(e)},l.toggle=function(e,n){var t=n.indexOf(e);-1<t?n.splice(t,1):n.push(e)},l.isIndeterminate=function(){return 0!==l.selected.length&&l.selected.length!==l.items.length},l.isChecked=function(){return l.selected.length===l.items.length},l.toggleAll=function(){l.selected.length===l.items.length?l.selected=[]:(0===l.selected.length||0<l.selected.length)&&(l.selected=l.items.slice(0))},l.listSelected=function(){l.loading=!0,r(function(e,n){for(var t=0;t<l.selected.length;t+=1)c(s.id,l.selected[t]);var a;a=e,o.enqueue(function(){return a()})}).finally(function(){l.loading=!1,d()})}}e.$inject=["$scope","$mdDialog","toasty","api","ivrCampaign","listsCampaign","Sequence","$q"],angular.module("app.motiondialer").controller("IvrCampaignresetlistController",e)}(),function(){"use strict";function e(t,e,i,s,a,n,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=n,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.ivrCampaign=c||t.params.ivrCampaign||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=t.params.tab||0,u.clonedialog=function(e,n){i.show({controller:"IvrCampaigncloneController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:u.ivrCampaigns?u.ivrCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.listadddialog=function(e,n){i.show({controller:"IvrCampaignlistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/listadd/listadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:u.ivrCampaigns?u.ivrCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.blacklistadddialog=function(e,n){i.show({controller:"IvrCampaignblacklistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/blacklistadd/blacklistadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:u.ivrCampaigns?u.ivrCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.resetlistdialog=function(n,t){r.campaign.getLists({id:n.id,fields:"id,name",nolimit:!0}).$promise.then(function(a){if(_.isNil(a.rows)||_.isEmpty(a.rows))l.info({title:"Campaign Without Lists"});else if(1===a.rows.length){var e=i.confirm().title("Are you sure want to reset the list "+a.rows[0].name+" ?").htmlContent("<b>"+a.rows[0].name+"</b> will be reset.").ariaLabel("Reset List").targetEvent(t).ok("OK").cancel("CANCEL");i.show(e).then(function(){var e,n,t;e=u.ivrCampaign.id,n=a.rows[0],t=n.id,r.campaign.removeLists({id:e,ids:t}).$promise.then(function(){return r.campaign.addLists({id:e,ids:t,dialCheckDuplicateType:"never"}).$promise}).then(function(){l.success({title:"Reset Succesfull",msg:"List "+n.name+" has been reset"})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:ivrCampaign.REMOVELIST",msg:e.status?JSON.stringify(e.data):e.toString()})})})}else i.show({controller:"IvrCampaignresetlistController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/resetlist/resetlist.html",parent:angular.element(s.body),targetEvent:t,clickOutsideToClose:!1,locals:{ivrCampaign:n,listsCampaign:a?a.rows:[]}})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:RESETLIST",msg:e.status?JSON.stringify(e.data):e.toString()})})},u.gotogoto=function(e,n){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:1510}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.motiondialer.realtime.ivr_campaigns",{}):l.info({title:a.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:a.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.motiondialer.realtime.ivr_campaigns",{})}},u.alert=l.info,u.gotoIvrCampaigns=function(){t.go("app.motiondialer.ivrCampaigns",{},{reload:"app.motiondialer.ivrCampaigns"})},u.saveIvrCampaign=function(){r.campaign.update({id:u.ivrCampaign.id},u.ivrCampaign).$promise.then(function(){l.success({title:"IvrCampaign updated!",msg:u.ivrCampaign.name?u.ivrCampaign.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcampaign",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.trunks=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.trunks=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.trunks,{id:e.resourceId})});u.trunks.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),u.trunks=n})}else u.trunks=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.projects=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PROJECTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.projects=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1103}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.projects,{id:e.resourceId})}),t=null;if(u.ivrCampaign&&(t=_.find(u.projects,{id:Number(u.ivrCampaign.SquareProjectId)})),t&&!_.some(n,["id",t.id])){var a=_.find(u.projects,{id:t.id});a.canSelect=!1,n.push(a)}u.projects=n})}else{var t=[],a=null;u.ivrCampaign&&(a=_.find(u.projects,{id:Number(u.ivrCampaign.SquareProjectId)}));for(var i=0;i<u.projects.length;i++)a&&u.projects[i].id===a.id&&(u.projects[i].canSelect=!1,t.push(u.projects[i]));u.projects=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){u.interval=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){u.interval=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.interval,{id:e.resourceId})}),t=null;if(u.ivrCampaign&&(t=_.find(u.interval,{id:Number(u.ivrCampaign.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(u.interval,{id:t.id});a.canSelect=!1,n.push(a)}u.interval=n})}else{var t=[],a=null;u.ivrCampaign&&(a=_.find(u.interval,{id:Number(u.ivrCampaign.IntervalId)}));for(var i=0;i<u.interval.length;i++)a&&u.interval[i].id===a.id&&(u.interval[i].canSelect=!1,t.push(u.interval[i]));u.interval=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","ivrCampaign","userProfileSection"],angular.module("app.motiondialer").controller("IvrCampaignController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.ivrCampaigns=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="ivrCampaigns",f.listOrder="",f.listOrderAsc=null,f.selectedIvrCampaigns=[],f.query={fields:"createdAt,updatedAt,id,name,active,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,SquareProjectId,limitCalls,description,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,dialOrderByScheduledAt,dialGlobalInterval,dialTimezone,dialPrefix,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength",type:"ivr",sort:"-updatedAt",limit:10,page:1},f.arraydialCheckDuplicateType=_.keyBy([{option:"ALWAYS",value:"'always'"},{option:"NEVER",value:"'never'"},{option:"ONLY_IF_OPEN",value:"'onlyIfOpen'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraydialOrderByScheduledAt=_.keyBy([{option:"DESC",value:"'DESC'"},{option:"ASC",value:"'ASC'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.motiondialer.ivrCampaigns.edit",{id:e.id,ivrCampaign:e,crudPermissions:f.crudPermissions})},f.clonedialog=function(e,n){i.show({controller:"IvrCampaigncloneController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:f.ivrCampaigns?f.ivrCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.listadddialog=function(e,n){i.show({controller:"IvrCampaignlistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/listadd/listadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:f.ivrCampaigns?f.ivrCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.blacklistadddialog=function(e,n){i.show({controller:"IvrCampaignblacklistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/edit/blacklistadd/blacklistadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{ivrCampaign:e,ivrCampaigns:f.ivrCampaigns?f.ivrCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("ivrCampaign")+"?").htmlContent("<b>"+(e.name||"ivrCampaign")+"</b> will be deleted.").ariaLabel("delete ivrCampaign").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:1510}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.motiondialer.realtime.ivr_campaigns",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.motiondialer.realtime.ivr_campaigns",{})}},f.success=E,f.getIvrCampaigns=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.campaign.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="IvrCampaigns",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditIvrCampaign=function(e,n){i.show({controller:"CreateOrEditIvrCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:n,ivrCampaigns:f.ivrCampaigns.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteIvrCampaign=y,f.exportSelectedIvrCampaigns=function(){var e=angular.copy(f.selectedIvrCampaigns);return f.selectedIvrCampaigns=[],e},f.deleteSelectedIvrCampaigns=function(e){var n=i.confirm().title("Are you sure want to delete the selected ivrCampaigns?").htmlContent("<b>"+f.selectedIvrCampaigns.length+" selected</b> will be deleted.").ariaLabel("delete IvrCampaigns").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedIvrCampaigns.forEach(function(e){y(e)}),f.selectedIvrCampaigns=[]})},f.deselectIvrCampaigns=function(){f.selectedIvrCampaigns=[]},f.selectAllIvrCampaigns=function(){f.selectedIvrCampaigns=f.ivrCampaigns.rows},g.hasRole("admin")?m.trunk.get({fields:"id,name",sort:"name",table:"true"}).$promise.then(function(e){f.trunks=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.trunk.get({fields:"id,name",sort:"name",table:"true"}).$promise.then(function(e){f.trunks=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.trunks,{id:e.resourceId})});f.trunks.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),f.trunks=n})}else f.trunks=[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.projects=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PROJECTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.projects=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1103}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(f.projects,{id:e.resourceId})}),a=null;a=[],f.ivrCampaigns.rows.forEach(function(e){var n=_.find(f.projects,{id:Number(e.SquareProjectId)});a.push(n)}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(f.projects,{id:e.id});n.canSelect=!1,t.push(n)}}),f.projects=t})}else{var t=[],a=[];f.ivrCampaigns.rows.forEach(function(e){var n=_.find(f.projects,{id:Number(e.SquareProjectId)});a.push(n)});for(var i=0;i<f.projects.length;i++){_.some(a,{id:f.projects[i].id})&&(f.projects[i].canSelect=!1,t.push(f.projects[i]))}f.projects=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){f.interval=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){f.interval=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.interval,{id:e.resourceId})}),t=null;if(f.ivrCampaign&&(t=_.find(f.interval,{id:Number(f.ivrCampaign.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.interval,{id:t.id});a.canSelect=!1,n.push(a)}f.interval=n})}else{var t=[],a=null;f.ivrCampaign&&(a=_.find(f.interval,{id:Number(f.ivrCampaign.IntervalId)}));for(var i=0;i<f.interval.length;i++)a&&f.interval[i].id===a.id&&(f.interval[i].canSelect=!1,t.push(f.interval[i]));f.interval=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.ivrCampaigns=e||{count:0,rows:[]}}function y(e){m.campaign.delete({id:e.id}).$promise.then(function(){_.remove(f.ivrCampaigns.rows,{id:e.id}),f.ivrCampaigns.count-=1,f.ivrCampaigns.rows.length||f.getIvrCampaigns(),p.success({title:_.startCase("IvrCampaign")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcampaign"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEcampaign",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getIvrCampaigns())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","ivrCampaigns","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.motiondialer").controller("IvrCampaignsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MOTIONDIALER.EDIT_QUEUECAMPAIGN",g.queueCampaign=angular.copy(l),g.queueCampaigns=r,g.newQueueCampaign=!1,g.queueCampaign||(g.queueCampaign={dialActive:!0,type:"outbound",dialCheckDuplicateType:"always",dialCutDigit:0,autopause:"no",ringinuse:"no",timeoutrestart:"no",setinterfacevar:"no",setqueuevar:"no",setqueueentryvar:"no",dialOrderByScheduledAt:"ASC",dialGlobalInterval:"07:00-22:00,*,*,*",dialAMDInitialSilence:2500,dialAMDGreeting:1500,dialAMDAfterGreetingSilence:800,dialAMDTotalAnalysisTime:5e3,dialAMDMinWordLength:100,dialAMDBetweenWordsSilence:50,dialAMDMaximumNumberOfWords:3,dialAMDSilenceThreshold:256,dialAMDMaximumWordLength:5e3,dialMethod:"progressive",dialPowerLevel:1,dialPredictiveOptimization:"dropRate",dialPredictiveOptimizationPercentage:3,dialPredictiveInterval:10,dialLimitQueue:0,dialRandomLastDigitCallerIdNumber:0,dialOriginateTimeout:30,dialQueueOptions:"tTxX",dialQueueTimeout:3,strategy:"rrmemory",timeout:3,retry:3,weight:1,dialGlobalMaxRetry:4,dialCongestionMaxRetry:3,dialCongestionRetryFrequency:150,dialBusyMaxRetry:3,dialBusyRetryFrequency:150,dialNoAnswerMaxRetry:3,dialNoAnswerRetryFrequency:150,dialNoSuchNumberMaxRetry:3,dialNoSuchNumberRetryFrequency:150,dialDropMaxRetry:3,dialDropRetryFrequency:150,dialAbandonedMaxRetry:3,dialAbandonedRetryFrequency:150,dialMachineMaxRetry:3,dialMachineRetryFrequency:150,dialAgentRejectMaxRetry:3,dialAgentRejectRetryFrequency:150,dialPredictiveIntervalMaxThreshold:20,dialPredictiveIntervalMinThreshold:10},g.title="MOTIONDIALER.NEW_QUEUECAMPAIGN",g.newQueueCampaign=!0),g.addNewQueueCampaign=function(){g.errors=[],d.voiceQueue.save(g.queueCampaign).$promise.then(function(e){g.queueCampaigns.unshift(e.toJSON()),o.success({title:"QueueCampaign properly created",msg:g.queueCampaign.name?g.queueCampaign.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveQueueCampaign=function(){g.errors=[],d.voiceQueue.update({id:g.queueCampaign.id},g.queueCampaign).$promise.then(function(e){var n=_.find(g.queueCampaigns,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"QueueCampaign properly saved!",msg:g.queueCampaign.name?g.queueCampaign.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteQueueCampaign=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The queueCampaign will be deleted.").ariaLabel("Delete QueueCampaign").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceQueue.delete({id:g.queueCampaign.id}).$promise.then(function(){_.remove(g.queueCampaigns,{id:g.queueCampaign.id}),o.success({title:"QueueCampaign properly deleted!",msg:(g.queueCampaign.name||"queueCampaign")+" has been deleted!"}),v(g.queueCampaign)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.trunks=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.trunks=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.trunks,{id:e.resourceId})}),t=null;if(g.queueCampaign&&(t=_.find(g.trunks,{id:Number(g.queueCampaign.TrunkId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.trunks,{id:t.id});a.canSelect=!1,n.push(a)}g.trunks=n})}else{var t=[],a=null;g.queueCampaign&&(a=_.find(g.trunks,{id:Number(g.queueCampaign.TrunkId)}));for(var i=0;i<g.trunks.length;i++)a&&g.trunks[i].id===a.id&&(g.trunks[i].canSelect=!1,t.push(g.trunks[i]));g.trunks=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){g.interval=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){g.interval=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.interval,{id:e.resourceId})}),t=null;if(g.queueCampaign&&(t=_.find(g.interval,{id:Number(g.queueCampaign.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.interval,{id:t.id});a.canSelect=!1,n.push(a)}g.interval=n})}else{var t=[],a=null;g.queueCampaign&&(a=_.find(g.interval,{id:Number(g.queueCampaign.IntervalId)}));for(var i=0;i<g.interval.length;i++)a&&g.interval[i].id===a.id&&(g.interval[i].canSelect=!1,t.push(g.interval[i]));g.interval=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","queueCampaigns","queueCampaign","api","Auth","license","setting","crudPermissions"],angular.module("app.motiondialer").controller("CreateOrEditQueueCampaignDialogController",e)}(),function(){"use strict";function e(e,l,a,d,n,t,i,s,o,r){var c=this;function m(){return l(function(t,n){return l(function(n,t){return d.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],o.hasRole("admin")?e:c.section?c.section.autoAssociation?e:l(function(n,t){return d.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:o.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),l(function(n,t){return d.voiceQueue.getAgents({id:c.queueCampaign.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserVoiceQueue?"penalty "+e.UserVoiceQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=o.getCurrentUser(),c.queueCampaign=n,c.crudPermissions=r,c.penalty=0,c.realtime=i,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return o.hasRole("admin")?m().catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):l(function(t,n){d.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceWith(c.selectedItems,c.startingSelectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});return(t=e,l(function(e,n){_.isEmpty(t)?e():d.voiceQueue.removeAgents({id:c.queueCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return r=n,l(function(e,n){if(_.isEmpty(r))e();else{for(var t=[],a=_.groupBy(r,"penalty"),i=0;i<Object.keys(a).length;i++){var s=Object.keys(a)[i],o=_.filter(r,["penalty",s]);t.push(d.voiceQueue.addAgents({id:c.queueCampaign.id,ids:_.map(o,"id"),penalty:_.trim(s,"penalty "),realtime:c.realtime||!1}).$promise)}l.all(t).then(function(){e()}).catch(function(e){n(e)})}});var r}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),a.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("MOTIONDIALER.ALL_AGENTS"),labelSelected:s.instant("MOTIONDIALER.SELECTED_AGENTS"),transferCallback:function(e,n){n?e.forEach(function(e){e.penalty=void 0}):e.forEach(function(e){e.penalty="penalty "+c.penalty});var t=_.xorWith(c.startingSelectedItems,c.selectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","queueCampaign","queueCampaigns","realtime","$translate","Auth","crudPermissions"],angular.module("app.motiondialer").controller("QueueCampaignagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l){var d=this;function c(){return a(function(t,n){return a(function(n,t){return s.cmList.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return d.items=e.rows?e.rows:[],r.hasRole("admin")?e:d.section?d.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:d.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return d.allowedItems=_.map(n,function(e){return _.find(d.items,{id:r.hasRole("admin")||d.section.autoAssociation?e.id:e.resourceId})}),d.startingAllowedItems=angular.copy(d.allowedItems),d.items.forEach(function(e){var n=_.find(d.allowedItems,{id:e.id});"admin"===d.currentUser.role?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s[d.apiRoute][d.getApi]({id:d.queueCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];d.selectedItems=_.map(n,function(e){return _.find(d.items,{id:e.id})}),d.startingSelectedItems=angular.copy(d.selectedItems),d.dualMultiselectOptions.selectedItems=d.selectedItems,d.dualMultiselectOptions.items=_.differenceBy(d.allowedItems,d.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}d.currentUser=r.getCurrentUser(),d.queueCampaign=n,d.crudPermissions=l,d.apiRoute="voiceQueue",d.getApi="getBlackLists",d.addApi="addBlackLists",d.removeApi="removeBlackLists",d.items=[],d.allowedItems=[],d.selectedItems=[],d.startingAllowedItems=[],d.startingSelectedItems=[],d.pendingChanges=!1,d.loading=!1,d.dualMultiselectOptions={allowedItems:[],selectedItems:[],showSelectAndDeselectAll:!1,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:t.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,n){var t=_.xorBy(d.startingSelectedItems,d.selectedItems,"id");d.pendingChanges=!_.isEmpty(t)}},d.onInit=function(){return r.hasRole("admin")?c().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:d.currentUser.userProfileId,name:"Lists"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return d.section=e,c()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},d.saveLists=function(){d.loading=!0;var e=_.differenceBy(d.startingSelectedItems,d.selectedItems,"id"),n=_.differenceBy(d.selectedItems,d.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.removeApi]({id:d.queueCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.addApi]({id:d.queueCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){d.pendingChanges=!1,d.startingAllowedItems=angular.copy(d.allowedItems),d.startingSelectedItems=angular.copy(d.selectedItems),i.success({title:"SUCCESS",msg:"Lists association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})}).finally(function(){d.loading=!1});var t},d.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","queueCampaign","$translate","$timeout","Auth","crudPermissions"],angular.module("app.motiondialer").controller("QueueCampaignblacklistaddController",e)}(),function(){"use strict";function e(n,t,a,e,i,s,o){var r=this;function l(e){n.hide(e)}r.newQueueCampaign=!0,r.queueCampaign=angular.copy(i),r.queueCampaigns=s,r.title=o.instant("MOTIONDIALER.CLONE_QUEUECAMPAIGN"),i&&i.name&&(r.title+=": "+i.name),r.cloneQueueCampaign=function(){return e.voiceQueue.clone({id:i.id},r.queueCampaign).$promise.then(function(e){r.queueCampaigns.unshift(e.toJSON()),a.success({title:"QueueCampaign properly cloned",msg:r.queueCampaign.name?r.queueCampaign.name+" has been cloned!":""}),t.go("app.motiondialer.queueCampaigns.edit",{id:e.id}),l(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.clone"}];for(var n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.clone",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$mdDialog","$state","toasty","api","queueCampaign","queueCampaigns","$translate"],angular.module("app.motiondialer").controller("QueueCampaigncloneController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.queueCampaignHopperBlacks=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.voiceQueue.getHopperBlacks(m.query,u).$promise}function g(e){d.hopperBlack.delete({id:e.id}).$promise.then(function(){_.remove(m.queueCampaignHopperBlacks.rows,{id:e.id}),m.queueCampaignHopperBlacks.count-=1,m.queueCampaignHopperBlacks.rows.length||p(),l.success({title:"HopperBlack deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceQueue"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.queueCampaign={},m.queueCampaignHopperBlacks={count:0,rows:[]},m.selectedQueueCampaignHopperBlacks=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,ContactId,phone",sort:"-id",limit:10,page:1},m.init=function(e,n){m.queueCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.VoiceQueueId=m.queueCampaign.id,m.query.id=m.queueCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopperBlack?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopperBlack #")+e.id||"hopperBlack")+"</b> will be deleted.").ariaLabel("delete hopperBlack").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getQueueCampaignHopperBlacks=p,m.createOrEditQueueCampaignHopperBlack=function(e,n){o.show({controller:"CreateOrEditHopperBlackDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hopperBlacks/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:m.queueCampaign,hopperBlack:n,hopperBlacks:m.queueCampaignHopperBlacks.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedQueueCampaignHopperBlacks=function(){var e=angular.copy(m.selectedQueueCampaignHopperBlacks);return m.selectedQueueCampaignHopperBlacks=[],e},m.deleteQueueCampaignHopperBlack=g,m.deleteSelectedQueueCampaignHopperBlacks=function(e){var n=o.confirm().title("Are you sure want to delete the selected hopperBlacks?").htmlContent("<b>"+m.selectedQueueCampaignHopperBlacks.length+" selected</b> will be deleted.").ariaLabel("delete hopperBlacks").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedQueueCampaignHopperBlacks.forEach(function(e){g(e)}),m.selectedQueueCampaignHopperBlacks=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("QueueCampaignHopperBlacksController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.queueCampaignHopperFinals=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.voiceQueue.getHopperFinals(m.query,u).$promise}function g(e){d.hopperFinal.delete({id:e.id}).$promise.then(function(){_.remove(m.queueCampaignHopperFinals.rows,{id:e.id}),m.queueCampaignHopperFinals.count-=1,m.queueCampaignHopperFinals.rows.length||p(),l.success({title:"HopperFinal deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceQueue"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(a){d.cmHopperFinal.checkContactHopper(a).$promise.then(function(e){l.info({title:"The contact is in the hopper",msg:"Contact ID "+e.ContactId})}).catch(function(e){var n,t;"Not Found"===e.data?d.cmHopper.save((n=a,t={},t.phone=n.calleridnum,t.scheduledat=moment().format("YYYY-MM-DD HH:mm:ss"),t.countbusyretry=0,t.countcongestionretry=0,t.countnoanswerretry=0,t.countglobal=0,t.ContactId=n.ContactId,t.ListId=n.ListId,t.UserId=n.deleted?null:n.UserId,t.VoiceQueueId=n.VoiceQueueId,t.CampaignId=n.CampaignId,t.priority=n.recallme?3:2,t.recallme=!!n.recallme,t)).$promise.then(function(e){var n,t;l.info({title:"Restored Contact",msg:"Contact ID "+e.ContactId}),e.ContactId&&d.cmHopperHistory.save(((t={}).calleridnum=(n=a).calleridnum,t.calleridname=n.calleridname,t.scheduledat=moment().format("YYYY-MM-DD HH:mm:ss"),t.countbusyretry=n.countbusyretry,t.countcongestionretry=n.countcongestionretry,t.countnoanswerretry=n.countnoanswerretry,t.countglobal=n.countglobal,t.ContactId=n.ContactId,t.ListId=n.ListId,t.UserId=c.getCurrentUser().id,t.VoiceQueueId=n.VoiceQueueId,t.CampaignId=n.CampaignId,t.editedat=moment().format("YYYY-MM-DD HH:mm:ss"),t.edited=!0,t.state=25,t.statedesc="Restored",t.campaign=n.campaign,t.campaigntype=n.VoiceQueueId?"queue":"ivr",t))}).catch(function(e){_.isNil(e.data)||"Validation error"!==e.data.message?l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()}):l.info({title:"The contact is in the hopper",msg:"Contact ID "+a.ContactId})}):l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.contacts={},m.queueCampaign={},m.queueCampaignHopperFinals={count:0,rows:[]},m.selectedQueueCampaignHopperFinals=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,uniqueid,ContactId,calleridnum,calleridname,statedesc,countcongestionretry,countbusyretry,countnoanswerretry,countnosuchnumberretry,countdropretry,countabandonedretry,countmachineretry,countagentrejectretry,countglobal,scheduledat,starttime,responsetime,endtime,disposition,secondDisposition,thirdDisposition,ListId,UserId,VoiceQueueId,CampaignId,recallme,deleted,campaign",sort:"-id",limit:10,page:1},m.init=function(e,n){m.queueCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.VoiceQueueId=m.queueCampaign.id,m.query.id=m.queueCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopperFinal?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopperFinal #")+e.id||"hopperFinal")+"</b> will be deleted.").ariaLabel("delete hopperFinal").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getQueueCampaignHopperFinals=p,m.createOrEditQueueCampaignHopperFinal=function(e,n){o.show({controller:"CreateOrEditHopperFinalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hopperFinals/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:m.queueCampaign,hopperFinal:n,hopperFinals:m.queueCampaignHopperFinals.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedQueueCampaignHopperFinals=function(){var e=angular.copy(m.selectedQueueCampaignHopperFinals);return m.selectedQueueCampaignHopperFinals=[],e},m.deleteQueueCampaignHopperFinal=g,m.deleteSelectedQueueCampaignHopperFinals=function(e){var n=o.confirm().title("Are you sure want to delete the selected hopperFinals?").htmlContent("<b>"+m.selectedQueueCampaignHopperFinals.length+" selected</b> will be deleted.").ariaLabel("delete hopperFinals").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedQueueCampaignHopperFinals.forEach(function(e){g(e)}),m.selectedQueueCampaignHopperFinals=[]})},m.moveQueueCampaignHopperFinal=v,m.moveContactsQueueCampaignHopperFinal=function(e){d.cmHopperFinal.moveContactsQueueCampaignHopperFinal({id:m.query.id,state:e}).$promise.then(function(e){_.isNil(e)&&_.isNil(e[0])?l.info({title:"Restored Contacts",msg:"0"}):l.info({title:"Restored Contacts",msg:JSON.stringify(e[0].affectedRows)})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},m.countContactsQueueCampaignHopperFinal=function(e){d.cmHopperFinal.countContactsQueueCampaignHopperFinal({id:e}).$promise.then(function(e){_.merge(m.contacts,e[0])}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},m.moveConfirm=function(e,n){var t=o.confirm().title("Are you sure want to restore the contact?").htmlContent("<b>Contact</b> will be restored.").ariaLabel("Restore Contact").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){v(e)},function(){console.log("CANCEL")})},m.moveSelectedQueueCampaignHopperFinals=function(e){var n=o.confirm().title("Are you sure want to restore the selected contacts?").htmlContent("<b> Contacts selected</b> will be restored.").ariaLabel("Restore Contacts").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedQueueCampaignHopperFinals.forEach(function(e){v(e)}),m.selectedQueueCampaignHopperFinals=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("QueueCampaignHopperFinalsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.queueCampaignHopperHistories=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.voiceQueue.getHopperHistories(m.query,u).$promise}function g(e){d.hopperHistory.delete({id:e.id}).$promise.then(function(){_.remove(m.queueCampaignHopperHistories.rows,{id:e.id}),m.queueCampaignHopperHistories.count-=1,m.queueCampaignHopperHistories.rows.length||p(),l.success({title:"HopperHistory deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceQueue"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.queueCampaign={},m.queueCampaignHopperHistories={count:0,rows:[]},m.selectedQueueCampaignHopperHistories=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,uniqueid,ContactId,calleridnum,calleridname,statedesc,scheduledat,starttime,responsetime,endtime",sort:"-id",limit:10,page:1},m.init=function(e,n){m.queueCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.VoiceQueueId=m.queueCampaign.id,m.query.id=m.queueCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopperHistory?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopperHistory #")+e.id||"hopperHistory")+"</b> will be deleted.").ariaLabel("delete hopperHistory").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getQueueCampaignHopperHistories=p,m.createOrEditQueueCampaignHopperHistory=function(e,n){o.show({controller:"CreateOrEditHopperHistoryDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hopperHistories/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:m.queueCampaign,hopperHistory:n,hopperHistories:m.queueCampaignHopperHistories.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedQueueCampaignHopperHistories=function(){var e=angular.copy(m.selectedQueueCampaignHopperHistories);return m.selectedQueueCampaignHopperHistories=[],e},m.deleteQueueCampaignHopperHistory=g,m.deleteSelectedQueueCampaignHopperHistories=function(e){var n=o.confirm().title("Are you sure want to delete the selected hopperHistories?").htmlContent("<b>"+m.selectedQueueCampaignHopperHistories.length+" selected</b> will be deleted.").ariaLabel("delete hopperHistories").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedQueueCampaignHopperHistories.forEach(function(e){g(e)}),m.selectedQueueCampaignHopperHistories=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("QueueCampaignHopperHistoriesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.queueCampaignHoppers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.voiceQueue.getHoppers(m.query,u).$promise}function g(e){d.cmHopper.delete({id:e.id}).$promise.then(function(){_.remove(m.queueCampaignHoppers.rows,{id:e.id}),m.queueCampaignHoppers.count-=1,m.queueCampaignHoppers.rows.length||p(),l.success({title:"Hopper deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceQueue"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.queueCampaign={},m.queueCampaignHoppers={count:0,rows:[]},m.selectedQueueCampaignHoppers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,ContactId,phone,countcongestionretry,countbusyretry,countnoanswerretry,countnosuchnumberretry,countdropretry,countabandonedretry,countmachineretry,countagentrejectretry,scheduledat,priority,recallme,UserId",sort:"-updatedAt",limit:10,page:1},m.arraypriority=_.keyBy([{option:"Highest",value:"'4'"},{option:"High",value:"'3'"},{option:"Medium",value:"'2'"},{option:"Low",value:"'1'"},{option:"Lowest",value:"'0'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),m.init=function(e,n){m.queueCampaign=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.VoiceQueueId=m.queueCampaign.id,m.query.id=m.queueCampaign.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the hopper?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("hopper #")+e.id||"hopper")+"</b> will be deleted.").ariaLabel("delete hopper").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getQueueCampaignHoppers=p,m.createOrEditQueueCampaignHopper=function(e,n){o.show({controller:"CreateOrEditHopperVoiceQueueIdDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/hoppers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:m.queueCampaign,hopper:n,hoppers:m.queueCampaignHoppers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedQueueCampaignHoppers=function(){var e=angular.copy(m.selectedQueueCampaignHoppers);return m.selectedQueueCampaignHoppers=[],e},m.deleteQueueCampaignHopper=g,m.deleteSelectedQueueCampaignHoppers=function(e){var n=o.confirm().title("Are you sure want to delete the selected hoppers?").htmlContent("<b>"+m.selectedQueueCampaignHoppers.length+" selected</b> will be deleted.").ariaLabel("delete hoppers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedQueueCampaignHoppers.forEach(function(e){g(e)}),m.selectedQueueCampaignHoppers=[]})},c.hasRole("admin")?d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){m.agents=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){m.agents=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:m.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(m.agents,{id:e.resourceId})}),t=null;if(m.queueCampaign&&(t=_.find(m.agents,{id:Number(m.queueCampaign.UserId)})),t&&!_.some(n,["id",t.id])){var a=_.find(m.agents,{id:t.id});a.canSelect=!1,n.push(a)}m.agents=n})}else{var t=[],a=null;m.queueCampaign&&(a=_.find(m.agents,{id:Number(m.queueCampaign.UserId)}));for(var i=0;i<m.agents.length;i++)a&&m.agents[i].id===a.id&&(m.agents[i].canSelect=!1,t.push(m.agents[i]));m.agents=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.motiondialer").controller("QueueCampaignHoppersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="MOTIONDIALER.EDIT_HOPPER",g.hopper=angular.copy(l),g.hoppers=r,g.newHopper=!1,g.hopper||(g.hopper={},g.title="MOTIONDIALER.NEW_HOPPER",g.newHopper=!0),n.params.id&&(g.hopper.VoiceQueueId=n.params.id),g.addNewHopper=function(){g.errors=[],d.cmHopper.save(g.hopper).$promise.then(function(e){g.hoppers.unshift(e.toJSON()),o.success({title:"Hopper properly created",msg:g.hopper.name?g.hopper.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveHopper=function(){var t,a,i,s;g.errors=[],g.hopper.UserId=g.hopper.recallme?g.hopper.UserId:null,g.hopper.OwnerId=c.getCurrentUser().id,d.cmHopper.get({id:g.hopper.id,attributes:["scheduledat"]}).$promise.then(function(e){t=_.isNil(e)||_.isEmpty(e)?moment().format("YYYY-MM-DD HH:mm:ss"):e.scheduledat}).finally(function(){d.cmHopper.update({id:g.hopper.id},_.omit(g.hopper,["VoiceQueueId","CampaignId","ContactId","ListId"])).$promise.then(function(e){a=e,d.cmContact.get({id:a.ContactId,attributes:["firstName","lastName"]}).$promise.then(function(e){_.isNil(e)||_.isNil(e.firstName)||(i=e.firstName,_.isNil(e.lastName)||(i+=" "+e.lastName))}).catch(function(){i=void 0}).finally(function(){d.voiceQueue.get({raw:!1,id:a.VoiceQueueId,attributes:["name"]}).$promise.then(function(e){s=e.name}).catch(function(e){s=void 0}).finally(function(){d.cmHopperHistory.save({state:24,statedesc:"Edited",scheduledat:t,calleridnum:a.phone,calleridname:i,campaigntype:a.VoiceQueueId?"queue":"ivr",campaign:s,editedat:moment().format("YYYY-MM-DD HH:mm:ss"),edited:!0,ListId:a.ListId,UserId:c.getCurrentUser().id,VoiceQueueId:a.VoiceQueueId,CampaignId:a.CampaignId,ContactId:a.ContactId,callback:a.callback,callbackuniqueid:a.callbackuniqueid,countbusyretry:a.countbusyretry,countcongestionretry:a.countcongestionretry,countglobal:a.countglobal,countnoanswerretry:a.countnoanswerretry,followuptime:a.followuptime,recallme:a.recallme})})});var n=_.find(g.hoppers,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Hopper properly saved!",msg:g.hopper.name?g.hopper.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})})},g.deleteHopper=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The hopper will be deleted.").ariaLabel("Delete Hopper").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cmHopper.delete({id:g.hopper.id}).$promise.then(function(){_.remove(g.hoppers,{id:g.hopper.id}),o.success({title:"Hopper properly deleted!",msg:(g.hopper.name||"hopper")+" has been deleted!"}),v(g.hopper)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cmHopper.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cmHopper.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){g.agents=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.user.get({fields:"id,name",role:"agent",sort:"name",nolimit:"true"}).$promise.then(function(e){g.agents=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.agents,{id:e.resourceId})}),t=null;if(g.hopper&&(t=_.find(g.agents,{id:Number(g.hopper.UserId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.agents,{id:t.id});a.canSelect=!1,n.push(a)}g.agents=n})}else{var t=[],a=null;g.hopper&&(a=_.find(g.agents,{id:Number(g.hopper.UserId)}));for(var i=0;i<g.agents.length;i++)a&&g.agents[i].id===a.id&&(g.agents[i].canSelect=!1,t.push(g.agents[i]));g.agents=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","hoppers","hopper","api","Auth","license","setting","crudPermissions"],angular.module("app.motiondialer").controller("CreateOrEditHopperVoiceQueueIdDialogController",e)}(),function(){"use strict";function e(t,a){var i=this;i.queueCampaign={},i.init=function(n){i.queueCampaign=n,t.cmHopper.get({limit:0,VoiceQueueId:n.id}).$promise.then(function(e){return i.total=e.count||0,t.cmHopper.get({limit:0,VoiceQueueId:n.id,active:!1,countbusyretry:0,countcongestionretry:0,countnoanswerretry:0,countnosuchnumberretry:0,countdropretry:0,countabandonedretry:0,countmachineretry:0,countagentrejectretry:0}).$promise}).then(function(e){return i.fresh=e.count||0,t.cmHopperFinal.get({limit:0,VoiceQueueId:n.id}).$promise}).then(function(e){i.closed=e.count||0}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETTAGS",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["api","toasty"],angular.module("app.motiondialer").controller("QueueCampaignHopperStatisticsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l){var d=this;function c(){return a(function(t,n){return a(function(n,t){return s.cmList.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return d.items=e.rows?e.rows:[],r.hasRole("admin")?e:d.section?d.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:d.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return d.allowedItems=_.map(n,function(e){return _.find(d.items,{id:r.hasRole("admin")||d.section.autoAssociation?e.id:e.resourceId})}),d.startingAllowedItems=angular.copy(d.allowedItems),d.items.forEach(function(e){var n=_.find(d.allowedItems,{id:e.id});"admin"===d.currentUser.role?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s[d.apiRoute][d.getApi]({id:d.queueCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];d.selectedItems=_.map(n,function(e){return _.find(d.items,{id:e.id})}),d.startingSelectedItems=angular.copy(d.selectedItems),d.dualMultiselectOptions.selectedItems=d.selectedItems,d.dualMultiselectOptions.items=_.differenceBy(d.allowedItems,d.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}d.currentUser=r.getCurrentUser(),d.queueCampaign=n,d.crudPermissions=l,d.apiRoute="voiceQueue",d.getApi="getLists",d.addApi="addLists",d.removeApi="removeLists",d.items=[],d.allowedItems=[],d.selectedItems=[],d.startingAllowedItems=[],d.startingSelectedItems=[],d.pendingChanges=!1,d.loading=!1,d.dualMultiselectOptions={allowedItems:[],selectedItems:[],showSelectAndDeselectAll:!1,orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("MOTIONDIALER.ALL_LISTS"),labelSelected:t.instant("MOTIONDIALER.SELECTED_LISTS"),transferCallback:function(e,n){var t=_.xorBy(d.startingSelectedItems,d.selectedItems,"id");d.pendingChanges=!_.isEmpty(t)}},d.onInit=function(){return r.hasRole("admin")?c().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:d.currentUser.userProfileId,name:"Lists"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return d.section=e,c()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETLISTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},d.saveLists=function(){d.loading=!0;var e=_.differenceBy(d.startingSelectedItems,d.selectedItems,"id"),n=_.differenceBy(d.selectedItems,d.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.removeApi]({id:d.queueCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s[d.apiRoute][d.addApi]({id:d.queueCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){d.pendingChanges=!1,d.startingAllowedItems=angular.copy(d.allowedItems),d.startingSelectedItems=angular.copy(d.selectedItems),i.success({title:"SUCCESS",msg:"Lists association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})}).finally(function(){d.loading=!1});var t},d.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","queueCampaign","$translate","$timeout","Auth","crudPermissions"],angular.module("app.motiondialer").controller("QueueCampaignlistaddController",e)}(),function(){"use strict";function e(e,n,a,i,s,t,o,r){var l=this;function d(){n.hide()}function c(e,n){var t=n.id;o.enqueue(function(){return i.voiceQueue.removeLists({id:e,ids:t}).$promise.then(function(){return i.voiceQueue.addLists({id:e,ids:t,dialCheckDuplicateType:"never"}).$promise}).then(function(){a.success({title:"Reset Succesfull",msg:"List "+n.name+" has been reset"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:queueCampaign.RESETLIST",msg:e.status?JSON.stringify(e.data):e.toString()})})})}l.selected=[],l.items=t||[],l.loading=!1,l.closeDialog=d,l.exists=function(e,n){return-1<n.indexOf(e)},l.toggle=function(e,n){var t=n.indexOf(e);-1<t?n.splice(t,1):n.push(e)},l.isIndeterminate=function(){return 0!==l.selected.length&&l.selected.length!==l.items.length},l.isChecked=function(){return l.selected.length===l.items.length},l.toggleAll=function(){l.selected.length===l.items.length?l.selected=[]:(0===l.selected.length||0<l.selected.length)&&(l.selected=l.items.slice(0))},l.listSelected=function(){l.loading=!0,r(function(e,n){for(var t=0;t<l.selected.length;t+=1)c(s.id,l.selected[t]);var a;a=e,o.enqueue(function(){return a()})}).finally(function(){l.loading=!1,d()})}}e.$inject=["$scope","$mdDialog","toasty","api","queueCampaign","listsCampaign","Sequence","$q"],angular.module("app.motiondialer").controller("QueueCampaignresetlistController",e)}(),function(){"use strict";function e(e,i,a,s,n,t,o,r){var l=this;function d(){return i(function(t,n){return i(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:i(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),i(function(n,t){return s.voiceQueue.getTeams({id:l.queueCampaign.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.queueCampaign=n,l.crudPermissions=r,l.penalty=0,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"penalty",labelAll:t.instant("MOTIONDIALER.ALL_TEAMS"),labelSelected:t.instant("MOTIONDIALER.SELECTED_TEAMS"),transferCallback:function(e,n){n?e.forEach(function(e){e.penalty=void 0}):e.forEach(function(e){e.penalty="penalty "+l.penalty});var t=_.xorWith(l.startingSelectedItems,l.selectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):i(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceWith(l.selectedItems,l.startingSelectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});return(t=e,i(function(e,n){_.isEmpty(t)?e():s.voiceQueue.removeTeams({id:l.queueCampaign.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return a=n,i(function(e,n){if(!_.isEmpty(a)){var t=_.map(a,function(e){return{id:e.id,penalty:_.trim(e.penalty,"penalty ")}});return s.voiceQueue.addTeams({id:l.queueCampaign.id,teams:t}).$promise.then(function(){e()}).catch(function(e){n(e)})}e()});var a}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),a.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","queueCampaign","$translate","Auth","crudPermissions"],angular.module("app.motiondialer").controller("QueueCampaignteamaddController",e)}(),function(){"use strict";function e(t,e,i,s,a,n,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=n,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.queueCampaign=c||t.params.queueCampaign||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=t.params.tab||0,u.clonedialog=function(e,n){i.show({controller:"QueueCampaigncloneController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.listadddialog=function(e,n){i.show({controller:"QueueCampaignlistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/listadd/listadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.blacklistadddialog=function(e,n){i.show({controller:"QueueCampaignblacklistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/blacklistadd/blacklistadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.teamadddialog=function(e,n){i.show({controller:"QueueCampaignteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){i.show({controller:"QueueCampaignagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:u.queueCampaigns?u.queueCampaigns.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.resetlistdialog=function(n,t){r.voiceQueue.getLists({id:n.id,fields:"id,name",nolimit:!0}).$promise.then(function(a){if(_.isNil(a.rows)||_.isEmpty(a.rows))l.info({title:"Campaign Without Lists"});else if(1===a.rows.length){var e=i.confirm().title("Are you sure want to reset the list "+a.rows[0].name+" ?").htmlContent("<b>"+a.rows[0].name+"</b> will be reset.").ariaLabel("Reset List").targetEvent(t).ok("OK").cancel("CANCEL");i.show(e).then(function(){var e,n,t;e=u.queueCampaign.id,n=a.rows[0],t=n.id,r.voiceQueue.removeLists({id:e,ids:t}).$promise.then(function(){return r.voiceQueue.addLists({id:e,ids:t,dialCheckDuplicateType:"never"}).$promise}).then(function(){l.success({title:"Reset Succesfull",msg:"List "+n.name+" has been reset"})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:queueCampaign.REMOVELIST",msg:e.status?JSON.stringify(e.data):e.toString()})})})}else i.show({controller:"QueueCampaignresetlistController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/resetlist/resetlist.html",parent:angular.element(s.body),targetEvent:t,clickOutsideToClose:!1,locals:{queueCampaign:n,listsCampaign:a?a.rows:[]}})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:RESETLIST",msg:e.status?JSON.stringify(e.data):e.toString()})})},u.gotogoto=function(e,n){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:1510}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.motiondialer.realtime.queues",{}):l.info({title:a.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:a.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.motiondialer.realtime.queues",{})}},u.alert=l.info,u.gotoQueueCampaigns=function(){t.go("app.motiondialer.queueCampaigns",{},{reload:"app.motiondialer.queueCampaigns"})},u.saveQueueCampaign=function(){r.voiceQueue.update({id:u.queueCampaign.id},u.queueCampaign).$promise.then(function(){l.success({title:"QueueCampaign updated!",msg:u.queueCampaign.name?u.queueCampaign.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.voiceMusicOnHold.get({fields:"id,name",nolimit:"true"}).$promise.then(function(e){u.musiconholds=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_MUSICONHOLDS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.voiceMusicOnHold.get({fields:"id,name",nolimit:"true"}).$promise.then(function(e){u.musiconholds=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:407}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?void 0:r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.musiconholds,{id:e.resourceId})}),t=null;if(u.queueCampaign&&(t=_.find(u.musiconholds,{name:u.queueCampaign.musiconhold})),t&&!_.some(n,["id",t.id])){var a=_.find(u.musiconholds,{id:t.id});a.canSelect=!1,n.push(a)}u.musiconholds=n}):r.voiceMusicOnHold.get({fields:"id,name",nolimit:"true",defaultEntry:1}).$promise.then(function(e){u.musiconholds=e.rows||[]})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmusiconholds",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.trunks=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.trunks=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.trunks,{id:e.resourceId})}),t=null;if(u.queueCampaign&&(t=_.find(u.trunks,{id:Number(u.queueCampaign.TrunkId)})),t&&!_.some(n,["id",t.id])){var a=_.find(u.trunks,{id:t.id});a.canSelect=!1,n.push(a)}u.trunks=n})}else{var t=[],a=null;u.queueCampaign&&(a=_.find(u.trunks,{id:Number(u.queueCampaign.TrunkId)}));for(var i=0;i<u.trunks.length;i++)a&&u.trunks[i].id===a.id&&(u.trunks[i].canSelect=!1,t.push(u.trunks[i]));u.trunks=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.projects=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PROJECTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.squareProject.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.projects=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1103}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.projects,{id:e.resourceId})}),t=null;if(u.queueCampaign&&(t=_.find(u.projects,{name:u.queueCampaign.dialQueueProject})),t&&!_.some(n,["id",t.id])){var a=_.find(u.projects,{id:t.id});a.canSelect=!1,n.push(a)}u.projects=n})}else{var t=[],a=null;u.queueCampaign&&(a=_.find(u.projects,{name:u.queueCampaign.dialQueueProject}));for(var i=0;i<u.projects.length;i++)a&&u.projects[i].id===a.id&&(u.projects[i].canSelect=!1,t.push(u.projects[i]));u.projects=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){u.interval=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){u.interval=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.interval,{id:e.resourceId})}),t=null;if(u.queueCampaign&&(t=_.find(u.interval,{id:Number(u.queueCampaign.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(u.interval,{id:t.id});a.canSelect=!1,n.push(a)}u.interval=n})}else{var t=[],a=null;u.queueCampaign&&(a=_.find(u.interval,{id:Number(u.queueCampaign.IntervalId)}));for(var i=0;i<u.interval.length;i++)a&&u.interval[i].id===a.id&&(u.interval[i].canSelect=!1,t.push(u.interval[i]));u.interval=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){u.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){u.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.pauses,{id:e.resourceId})});u.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),u.pauses=n})}else u.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","queueCampaign","userProfileSection"],angular.module("app.motiondialer").controller("QueueCampaignController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.queueCampaigns=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="queueCampaigns",f.listOrder="",f.listOrderAsc=null,f.selectedQueueCampaigns=[],f.query={fields:"createdAt,updatedAt,id,name,dialActive,TrunkId,TrunkBackupId,type,IntervalId,dialCheckDuplicateType,dialCutDigit,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,dialOrderByScheduledAt,dialRecallMeTimeout,dialRecallInQueue,dialGlobalInterval,dialTimezone,dialAMDActive,dialAMDInitialSilence,dialAMDGreeting,dialAMDAfterGreetingSilence,dialAMDTotalAnalysisTime,dialAMDMinWordLength,dialAMDBetweenWordsSilence,dialAMDMaximumNumberOfWords,dialAMDSilenceThreshold,dialAMDMaximumWordLength,dialMethod,dialPowerLevel,dialPredictiveOptimization,dialPredictiveOptimizationPercentage,dialPredictiveInterval,dialLimitQueue,dialOriginateCallerIdName,dialOriginateCallerIdNumber,dialRandomLastDigitCallerIdNumber,dialOriginateTimeout,dialPrefix,dialQueueOptions,dialQueueTimeout,strategy,timeout,retry,wrapuptime,weight,musiconhold,dialQueueProject,dialQueueProject2,dialAgiAfterHangupAgent,dialGlobalMaxRetry,dialCongestionMaxRetry,dialCongestionRetryFrequency,dialBusyMaxRetry,dialBusyRetryFrequency,dialNoAnswerMaxRetry,dialNoAnswerRetryFrequency,dialNoSuchNumberMaxRetry,dialNoSuchNumberRetryFrequency,dialDropMaxRetry,dialDropRetryFrequency,dialAbandonedMaxRetry,dialAbandonedRetryFrequency,dialMachineMaxRetry,dialMachineRetryFrequency,dialAgentRejectMaxRetry,dialAgentRejectRetryFrequency,description,mandatoryDisposition,mandatoryDispositionPauseId,dialPredictiveIntervalMaxThreshold,dialPredictiveIntervalMinThreshold,dialPreviewAutoRecallMe",type:"outbound",sort:"-updatedAt",channel:"voice",limit:10,page:1},f.arraydialCheckDuplicateType=_.keyBy([{option:"ALWAYS",value:"'always'"},{option:"NEVER",value:"'never'"},{option:"ONLY_IF_OPEN",value:"'onlyIfOpen'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayautopause=_.keyBy([{option:"Yes",value:"'all'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayringinuse=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraytimeoutrestart=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraymonitor_format=_.keyBy([{option:"Inactive",value:"''"},{option:"wav",value:"'wav'"},{option:"wav49",value:"'wav49'"},{option:"gsm",value:"'gsm'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysetinterfacevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysetqueuevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysetqueueentryvar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraydialOrderByScheduledAt=_.keyBy([{option:"DESC",value:"'DESC'"},{option:"ASC",value:"'ASC'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraydialMethod=_.keyBy([{option:"Progressive",value:"'progressive'"},{option:"PowerDialing",value:"'power'"},{option:"Predictive",value:"'predictive'"},{option:"Preview",value:"'preview'"},{option:"BookedProgressive",value:"'booked'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraydialPredictiveOptimization=_.keyBy([{option:"AgentBusyFactor",value:"'agentBusyFactor'"},{option:"DropRate",value:"'dropRate'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraystrategy=_.keyBy([{option:"Round Robin Memory",value:"'rrmemory'"},{option:"Round Robin",value:"'roundrobin'",ngIf:"vm.queueCampaign.dialMethod === 'booked'"},{option:"Least Recent",value:"'leastrecent'",ngIf:"vm.queueCampaign.dialMethod !== 'booked'"},{option:"Fewest Calls",value:"'fewestcalls'",ngIf:"vm.queueCampaign.dialMethod !== 'booked'"},{option:"Random",value:"'random'",ngIf:"vm.queueCampaign.dialMethod !== 'booked'"},{option:"Linear",value:"'linear'",ngIf:"vm.queueCampaign.dialMethod !== 'booked'"},{option:"Weight Random",value:"'wrandom'",ngIf:"vm.queueCampaign.dialMethod !== 'booked'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.motiondialer.queueCampaigns.edit",{id:e.id,queueCampaign:e,crudPermissions:f.crudPermissions})},f.clonedialog=function(e,n){i.show({controller:"QueueCampaigncloneController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:f.queueCampaigns?f.queueCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.listadddialog=function(e,n){i.show({controller:"QueueCampaignlistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/listadd/listadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:f.queueCampaigns?f.queueCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.blacklistadddialog=function(e,n){i.show({controller:"QueueCampaignblacklistaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/blacklistadd/blacklistadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:f.queueCampaigns?f.queueCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.teamadddialog=function(e,n){i.show({controller:"QueueCampaignteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:f.queueCampaigns?f.queueCampaigns.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"QueueCampaignagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{queueCampaign:e,queueCampaigns:f.queueCampaigns?f.queueCampaigns.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("queueCampaign")+"?").htmlContent("<b>"+(e.name||"queueCampaign")+"</b> will be deleted.").ariaLabel("delete queueCampaign").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:1510}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.motiondialer.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.motiondialer.realtime.queues",{})}},f.success=E,f.getQueueCampaigns=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="QueueCampaigns",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditQueueCampaign=function(e,n){i.show({controller:"CreateOrEditQueueCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:n,queueCampaigns:f.queueCampaigns.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteQueueCampaign=y,f.exportSelectedQueueCampaigns=function(){var e=angular.copy(f.selectedQueueCampaigns);return f.selectedQueueCampaigns=[],e},f.deleteSelectedQueueCampaigns=function(e){var n=i.confirm().title("Are you sure want to delete the selected queueCampaigns?").htmlContent("<b>"+f.selectedQueueCampaigns.length+" selected</b> will be deleted.").ariaLabel("delete QueueCampaigns").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedQueueCampaigns.forEach(function(e){y(e)}),f.selectedQueueCampaigns=[]})},f.deselectQueueCampaigns=function(){f.selectedQueueCampaigns=[]},f.selectAllQueueCampaigns=function(){f.selectedQueueCampaigns=f.queueCampaigns.rows},g.hasRole("admin")?m.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.trunks=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TRUNKS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.trunk.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.trunks=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1011}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(f.trunks,{id:e.resourceId})}),a=null;a=[],f.queueCampaigns.rows.forEach(function(e){var n=_.find(f.trunks,{id:Number(e.TrunkId)});a.push(n)}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(f.trunks,{id:e.id});n.canSelect=!1,t.push(n)}}),f.trunks=t})}else{var t=[],a=[];f.queueCampaigns.rows.forEach(function(e){var n=_.find(f.trunks,{id:Number(e.TrunkId)});a.push(n)});for(var i=0;i<f.trunks.length;i++){_.some(a,{id:f.trunks[i].id})&&(f.trunks[i].canSelect=!1,t.push(f.trunks[i]))}f.trunks=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunks",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){f.interval=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVAL",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.interval.get({fields:"id,name",sort:"name",IntervalId:"null"}).$promise.then(function(e){f.interval=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.interval,{id:e.resourceId})}),t=null;if(f.queueCampaign&&(t=_.find(f.interval,{id:Number(f.queueCampaign.IntervalId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.interval,{id:t.id});a.canSelect=!1,n.push(a)}f.interval=n})}else{var t=[],a=null;f.queueCampaign&&(a=_.find(f.interval,{id:Number(f.queueCampaign.IntervalId)}));for(var i=0;i<f.interval.length;i++)a&&f.interval[i].id===a.id&&(f.interval[i].canSelect=!1,t.push(f.interval[i]));f.interval=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.queueCampaigns=e||{count:0,rows:[]}}function y(e){m.voiceQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.queueCampaigns.rows,{id:e.id}),f.queueCampaigns.count-=1,f.queueCampaigns.rows.length||f.getQueueCampaigns(),p.success({title:_.startCase("QueueCampaign")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getQueueCampaigns())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","queueCampaigns","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.motiondialer").controller("QueueCampaignsController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(){return[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Agent",key:"lastAssignedTo",type:"select",label:"DASHBOARDS.SELECT_AGENT",options:g.agents.rows,customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}],ngValue:"name"},{name:"Campaign",key:"queue",type:"multiselect",label:"DASHBOARDS.SELECT_CAMPAIGN",options:g.queues.rows,ngValue:"name"}]}function h(){return g.refresh=!1,0===g.queues.count?f(null):(g.query.queue=1===g.queues.count?g.queues.rows[0].name:g.query.queue,void 0===g.query.queue&&(g.query.queue=_.map(g.queues.rows,"name")),_.isEmpty(g.query.queue)?f(null):(g.query.offset=(g.query.page-1)*g.query.limit,i.localStorage.setItem("motion2.realtime.abandoned.bull.abandonedCalls:"+g.currentUser.id,JSON.stringify({query:_.omit(g.query,"queue")})),void(g.promise=o.voiceQueueReport.getVoiceQueuesReport(g.query,f).$promise)))}function f(e){g.abandonedCalls=e||{count:0,rows:[]},!1,g.refresh=!0}g.currentUser=d.getCurrentUser(),g.agents=u||[],g.dispositions=p.rows,g.abandonedCalls={count:0,rows:[]},g.showTooltip=!1,g.refresh=!0,g.userProfile=r,g.userProfileSection=l&&1==l.count?l.rows[0]:null,g.crudPermissions=d.parseCrudPermissions(g.userProfileSection?g.userProfileSection.crudPermissions:null),g.query={fields:"id,type,calleridnum,calleridname,queue,queuecallerabandonAt,queuecallerexitAt,queuecallerexitreason,assigned,lastAssignedTo,updatedAt,disposition,secondDisposition,thirdDisposition",type:"outbound",queuecallerexitreason:"TIMEOUT,ABANDONED",sort:"-updatedAt",limit:10,page:1},g.getAbandonedCalls=h,g.refreshAbandonedCalls=function(){g.showTooltip=!1,h()},g.assignTo=function(e,n){e&&o.voiceQueueReport.update({id:e.id,lastAssignedTo:n?n.name:null,assigned:!!n}).$promise.catch(function(e){console.log(e)})},g.dispose=function(t){n.show({controller:"DisposeAbandonedCallDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/home/abandoned/dispose/dialog.html",parent:angular.element(a.body),targetEvent:t,locals:{dispositions:g.dispositions,call:t}}).then(function(e){if(e){var n={id:t.id,disposition:e.firstLevel||null,secondDisposition:e.secondLevel||null,thirdDisposition:e.thirdLevel||null};o.voiceQueueReport.update(n).$promise.catch(function(e){console.log(e)})}})},g.onSaveVoiceQueueReport=function(e){e&&g.queuesMap&&"outbound"===queue.type&&g.queuesMap[e.queue]&&(g.showTooltip=!0)},g.onUpdateVoiceQueueReport=function(e){if(e){var n=_.findIndex(g.abandonedCalls.rows,["id",e.id]);0<=n&&_.merge(g.abandonedCalls.rows[n],e)}},c.onWithoutApply("voiceQueueReport:save",g.onSaveVoiceQueueReport),c.on("voiceQueueReport:update",g.onUpdateVoiceQueueReport),function(){var e=i.localStorage.getItem("motion2.realtime.abandoned.bull.abandonedCalls:"+g.currentUser.id);if(e)(e=JSON.parse(e))&&e.query&&(g.query=_.merge(e.query,_.omit(g.query,["sort","limit","page"])),g.query=_.omit(g.query,"filter"));else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};g.query.createdAt=n}d.hasRole("admin")?o.user.getQueues({id:d.getCurrentUser().id,fields:"id,name",channel:"voice",type:"outbound",nolimit:!0}).$promise.then(function(e){g.queues=e||{count:0,rows:[]},g.queuesMap=_.mapValues(_.keyBy(g.queues.rows,"name"),"name")}).catch(function(e){console.error(e)}).finally(function(){g.quickFilters=v(),h()}):o.userProfile.getResources({id:g.currentUser.userProfileId,section:"QueueCampaigns",channel:"voice",type:"outbound",sort:"-updatedAt",nolimit:!0}).$promise.then(function(e){g.queues=e||{count:0,rows:[]},g.queuesMap=_.mapValues(_.keyBy(g.queues.rows,"name"),"name")}).catch(function(e){console.error(e)}).finally(function(){g.quickFilters=v(),h()})}();var b=!0,A=1;e.$watch("vm.query.filter",function(e,n){b?t(function(){b=!1}):(n||(A=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=A),h())}),e.$on("$destroy",function(){c.removeAllListeners("voiceQueueReport:save"),c.removeAllListeners("voiceQueueReport:update")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","userProfile","userProfileSection","Auth","socket","toasty","agents","dispositions"],angular.module("app.motiondialer").controller("AbandonedCallsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,t,a,i,n,s,o,r,l,d,c,m){var u=this,p=["name","active","limitCalls","message","originated","IntervalId","SquareProjectId","Trunk","TrunkId","ivrAnswerCallsDay","dialQueueProject","ivrTotalCallsDays","description"];function g(){_.forIn(u.campaigns,function(e,n){u.rpcCampaigns[n]&&_.merge(e,_.pick(u.rpcCampaigns[n],p))})}u.currentUser=m.getCurrentUser(),u.count=o.count,u.campaigns=o?_.keyBy(o.rows?o.rows:[],"id"):{},u.rpcCampaigns=s?_.keyBy(s.rows?s.rows:[],"id"):{},u.userProfile=d,u.userProfileSection=c&&1==c.count?c.rows[0]:null,u.crudPermissions=m.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.query={sort:"-updatedAt",limit:10,page:1},u.success=f,u.getCampaigns=function(){u.query.offset=(u.query.page-1)*u.query.limit,m.hasRole("admin")?u.promise=r.campaign.get(u.query,f).$promise:(u.query.id=u.userProfile.id,u.query.section="IvrCampaigns",u.promise=r.userProfile.getResources(u.query,f).$promise)},u.onSave=function(e){u.campaigns[e.id]&&(_.merge(u.campaigns[e.id],_.pick(e,p)),_.merge(u.rpcCampaigns[e.id],_.pick(e,p)))},u.$onInit=g,u.createOrEditIvrCampaign=function(e,n){a.show({controller:"CreateOrEditIvrCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/ivrCampaigns/create/dialog.html",parent:angular.element(i.body),targetEvent:e,clickOutsideToClose:!0,locals:{ivrCampaign:n,ivrCampaigns:_.values(u.campaigns),license:null,setting:null,crudPermissions:u.crudPermissions}})},l.onWithoutApply("campaign:save",u.onSave),u.interval=n(function(){},999);var v=!0,h=1;function f(e){u.count=e.count,u.campaigns=e?_.keyBy(e.rows?e.rows:[],"id"):{},g()}e.$watch("vm.query.filter",function(e,n){v?t(function(){v=!1}):(n||(h=u.query.page),e!==n&&(u.query.page=1),e||(u.query.page=h),u.getCampaigns())}),e.$on("$destroy",function(){l.removeAllListeners("campaign:save"),u.interval&&n.cancel(u.interval)})}e.$inject=["$scope","$timeout","$mdDialog","$document","$interval","rpcCampaigns","campaigns","api","socket","userProfile","userProfileSection","Auth"],angular.module("app.motiondialer").controller("IvrCampaignsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,n,a,o,t,i,s,r,l,d,c,m,u){var p=this;p.currentUser=u.getCurrentUser(),p.queues=t?_.keyBy(t.rows?t.rows:[],"name"):{},p.rpcVoiceQueuesChannelsTmp=i?_.keyBy(i.rows?_.filter(i.rows,{type:"outbound"}):[],"uniqueid"):{},p.rpcVoiceQueuesChannels={},p.userProfile=c,p.userProfileSection=m&&1==m.count?m.rows[0]:null,p.crudPermissions=u.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.queryChannels={limit:10,page:1},p.getAvailableAgents=function(){p.availableAgents=null,s.rpc.getAgents().$promise.then(function(e){for(var n=[],t=e?e.rows:[],a=_.filter(t,{online:!0,voicePause:!1,voiceStatus:"idle"}),i=0;i<a.length;i++){var s=_.find(o.rows,["id",a[i].id]);s&&n.push(s)}p.availableAgents=n}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},p.getSize=function(e){return _.size(e)},p.$onInit=function(){_.forIn(p.rpcVoiceQueuesChannelsTmp,function(e,n){_.find(p.queues,{name:e.name})&&(p.rpcVoiceQueuesChannels[n]=e)})},p.onSave=function(e){"outbound"===e.type&&_.find(p.queues,{name:e.name})&&(p.rpcVoiceQueuesChannels[e.uniqueid]=e)},p.onRemove=function(e){p.rpcVoiceQueuesChannels[e.uniqueid]&&delete p.rpcVoiceQueuesChannels[e.uniqueid]},p.hangup=function(n){return s.rpc.getVoiceQueuesChannelHangup({uniqueid:n}).$promise.then(function(e){d.success({title:"Channel "+n+" properly hangup!",msg:e.message||""})}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},p.redirectToAgent=function(n,e,t){return s.rpc.getVoiceQueuesChannelRedirect({uniqueid:n,exten:e,context:t}).$promise.then(function(e){d.success({title:"Channel "+n+" properly redirect!",msg:e.message||""})}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},p.redirectToNumber=function(e,n){var t=a.prompt().title("Which number do you want transfer the call to?").placeholder("Number").targetEvent(e).ok("Ok").cancel("Cancel");return a.show(t).then(function(e){return s.rpc.getVoiceQueuesChannelRedirect({uniqueid:n,exten:e}).$promise}).then(function(e){d.success({title:"Channel "+n+" properly redirect!",msg:e.message||""})}).catch(function(e){e&&d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},r.on("voice_queue_channel:save",p.onSave),r.on("voice_queue_channel:remove",p.onRemove),e.$on("$destroy",function(){r.removeAllListeners("voice_queue_channel:save"),r.removeAllListeners("voice_queue_channel:remove")})}e.$inject=["$scope","$timeout","$mdDialog","agents","queues","rpcVoiceQueuesChannels","api","socket","helperClasses","toasty","userProfile","userProfileSection","Auth"],angular.module("app.motiondialer").controller("QueueCallsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["total","answered","sumHoldTime","sumDuration","sumBillable","outboundNoAnswerCallsDay","outboundBusyCallsDay","outboundCongestionCallsDay","outboundNoSuchCallsDay","outboundUnknownCallsDay","outboundDropCallsDayTimeout","outboundDropCallsDayCallersExit","outboundBlacklistCallsDay","outboundOriginateFailureCallsDay","outboundAnswerAgiCallsDay","outboundReCallsDay","outboundRejectCallsDay"];function u(){_.forIn(c.queues,function(e,n){c.rpcQueues[n]&&_.merge(e,_.pick(c.rpcQueues[n],m))})}c.count=a.count,c.queues=a?_.keyBy(a.rows?a.rows:[],"id"):{},c.rpcQueues=i?_.keyBy(i.rows?i.rows:[],"id"):{},c.userProfile=r,c.userProfileSection=l&&1==l.count?l.rows[0]:null,c.crudPermissions=d.parseCrudPermissions(c.userProfileSection?c.userProfileSection.crudPermissions:null),d.hasRole("admin")?c.query={type:"outbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1}:c.query={id:d.getCurrentUser().id,channel:"voice",type:"outbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1},c.success=v,c.getQueues=function(){c.query.offset=(c.query.page-1)*c.query.limit,d.hasRole("admin")?c.promise=s.voiceQueue.get(c.query,v).$promise:(c.query.id=c.userProfile.id,c.query.section="QueueCampaigns",c.promise=s.userProfile.getResources(c.query,v).$promise)},c.onSave=function(e){c.queues[e.id]&&_.merge(c.queues[e.id],_.pick(e,m))},c.$onInit=u,o.onWithoutApply("voice_queue:save",c.onSave),c.interval=n(function(){},999);var p=!0,g=1;function v(e){c.count=e.count,c.queues=e?_.keyBy(e.rows?e.rows:[],"id"):{},u()}e.$watch("vm.query.filter",function(e,n){p?t(function(){p=!1}):(n||(g=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=g),c.getQueues())}),e.$on("$destroy",function(){o.removeAllListeners("voice_queue:save"),c.interval&&n.cancel(c.interval)})}e.$inject=["$scope","$timeout","$interval","queues","rpcQueues","api","socket","userProfile","userProfileSection","Auth"],angular.module("app.motiondialer").controller("QueueParamsMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c,m){var u=this,p=n(function(){},999);u.currentUser=c.getCurrentUser(),u.queues=s,u.userProfileSection=d&&1==d.count?d.rows[0]:null,u.crudPermissions=c.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.query={id:c.isUser()?u.currentUser.id:void 0,section:c.isUser()?"QueueCampaigns":void 0,channel:"voice",type:"outbound",sort:"name",limit:10,page:1},u.getQueues=function(){u.query.offset=(u.query.page-1)*u.query.limit,o.realtime.getQueues(u.query).$promise.then(function(e){u.queues=e}).catch(function(e){l.error({title:i.instant("VOICE.VOICEQUEUES"),msg:e.status?JSON.stringify(e.data):e.toString()})})},u.editQueue=function(e,n){t.show({controller:"CreateOrEditQueueCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:n,queueCampaigns:u.queues.rows,license:null,setting:null,crudPermissions:u.crudPermissions}})},u.addAgent=function(e,n){t.show({controller:"QueueCampaignagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/queueCampaigns/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:n,queueCampaigns:u.queues.rows,realtime:!0,crudPermissions:u.crudPermissions}})},u.showPredictiveQueueCampaignInfo=function(e,n){t.show({controller:"PredictiveQueueCampaignDialogController",controllerAs:"vm",templateUrl:"app/main/apps/motiondialer/views/realtime/queues/predictive/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{queueCampaign:n}})},r.onWithoutApply("voice_queue:save",function(e){var n=_.find(u.queues.rows,["id",e.id]);n&&m.updateVoiceQueue(e,n)}),r.on("userVoiceQueueRt:save",function(e){var n=_.find(u.queues.rows,["id",e.MotionDialerQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),r.on("user:agentconnect",function(t){u.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);if(n){if(!t.agentconnected)return;t.queue?n.talking=!0:n.busy=!0,m.updateBusyCounter(e)}})}),r.on("user:agentcomplete",function(t){u.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(n.talking?n.talking=!1:n.busy&&(n.busy=!1),m.updateBusyCounter(e))})}),r.on("user:update",function(t){u.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&m.updateQueue(t,e,n,"voice")})}),e.$on("$destroy",function(){r.removeAllListeners("voice_queue:save"),r.removeAllListeners("userVoiceQueueRt:save"),r.removeAllListeners("user:agentconnect"),r.removeAllListeners("user:agentcomplete"),r.removeAllListeners("user:update"),p&&n.cancel(p)})}e.$inject=["$scope","$mdDialog","$document","$interval","$translate","queues","api","socket","toasty","userProfileSection","Auth","realtimeManager"],angular.module("app.motiondialer").controller("QueuesMotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,n,t){this.queueCampaign=t,this.addMinutes=function(e,n){return moment(e).add("m",n).format("HH:mm:ss")},this.setFormatTime=function(e){return moment(e).format("HH:mm:ss")},this.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$interval","queueCampaign"],angular.module("app.motiondialer").controller("PredictiveQueueCampaignDialogController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){return{status:{registered:"green-300-fg icon-checkbox-marked-circle",unregistered:"red-300-fg icon-close-circle",lagged:"red-300-fg icon-close-circle",reachable:"green-300-fg icon-checkbox-marked-circle",unreachable:"red-300-fg icon-close-circle",unknown:"grey-fg icon-minus-circle"},state:{unknown:"grey-fg icon-phone-hangup",not_inuse:"green-300-fg icon-phone-hangup",inuse:"red-300-fg icon-phone-in-talk",busy:"red-300-fg icon-phone-locked",invalid:"grey-fg icon-phone-hangup",unavailable:"grey-fg icon-phone-hangup",ringing:"blue-300-fg icon-phone-incoming",ringinuse:"blue-300-fg icon-phone-incoming",onhold:"blue-300-fg icon-phone-paused"},channelStatus:{ring:"blue-300-fg icon-phone-incoming",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"},channelStatusOut:{ring:"blue-300-fg icon-phone-outgoing",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"}}})}(),function(){"use strict";function e(e,t,n){switch(this.selectedTab=0,t.current.name){case"app.motiondialer.realtime.agents":this.selectedTab=0;break;case"app.motiondialer.realtime.queues":this.selectedTab=1;break;case"app.motiondialer.realtime.queue_calls":this.selectedTab=2;break;case"app.motiondialer.realtime.abandonedcalls":this.selectedTab=3;break;case"app.motiondialer.realtime.queue_params":this.selectedTab=4;break;case"app.motiondialer.realtime.ivr_campaigns":this.selectedTab=5;break;default:this.selectedTab=0,t.go("app.motiondialer.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.motiondialer.realtime.agents");break;case 1:t.go("app.motiondialer.realtime.queues");break;case 2:t.go("app.motiondialer.realtime.queue_calls");break;case 3:t.go("app.motiondialer.realtime.abandonedcalls");break;case 4:t.go("app.motiondialer.realtime.queue_params");break;case 5:t.go("app.motiondialer.realtime.ivr_campaigns");break;default:t.go("app.motiondialer.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.motiondialer").controller("MotionDialerRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="OPENCHANNEL.EDIT_OPENCHANNELACCOUNT",g.openchannelAccount=angular.copy(l),g.openchannelAccounts=r,g.newOpenchannelAccount=!1,g.openchannelAccount||(g.openchannelAccount={waitForTheAssignedAgent:10,notificationSound:!0,queueTransferTimeout:300,agentTransferTimeout:300},g.title="OPENCHANNEL.NEW_OPENCHANNELACCOUNT",g.newOpenchannelAccount=!0),n.params.id&&(g.openchannelAccount.OpenchannelAccountId=n.params.id),g.addNewOpenchannelAccount=function(){g.errors=[],d.openchannelAccount.save(g.openchannelAccount).$promise.then(function(e){g.openchannelAccounts.unshift(e.toJSON()),o.success({title:"OpenchannelAccount properly created",msg:g.openchannelAccount.name?g.openchannelAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveOpenchannelAccount=function(){g.errors=[],d.openchannelAccount.update({id:g.openchannelAccount.id},g.openchannelAccount).$promise.then(function(e){var n=_.find(g.openchannelAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"OpenchannelAccount properly saved!",msg:g.openchannelAccount.name?g.openchannelAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteOpenchannelAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The openchannelAccount will be deleted.").ariaLabel("Delete OpenchannelAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.openchannelAccount.delete({id:g.openchannelAccount.id}).$promise.then(function(){_.remove(g.openchannelAccounts,{id:g.openchannelAccount.id}),o.success({title:"OpenchannelAccount properly deleted!",msg:(g.openchannelAccount.name||"openchannelAccount")+" has been deleted!"}),v(g.openchannelAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.lists,{id:e.resourceId})}),t=null;if(g.openchannelAccount&&(t=_.find(g.lists,{id:Number(g.openchannelAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.lists,{id:t.id});a.canSelect=!1,n.push(a)}g.lists=n})}else{var t=[],a=null;g.openchannelAccount&&(a=_.find(g.lists,{id:Number(g.openchannelAccount.ListId)}));for(var i=0;i<g.lists.length;i++)a&&g.lists[i].id===a.id&&(g.lists[i].canSelect=!1,t.push(g.lists[i]));g.lists=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","openchannelAccounts","openchannelAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.openchannel").controller("CreateOrEditOpenchannelAccountDialogController",e)}(),function(){"use strict";function e(o,i,a,s,e){var r=this;function n(e,n){if(r.openchannelAccountApps.rows.length){var t=r.openchannelAccountApps.rows[n]?r.openchannelAccountApps.rows[n]:r.openchannelAccountApps.rows[0];i.show({controller:"EditOpenchannelAccountApp"+(t.appType||t.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/apps/"+(t.appType||t.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelAccountApp:t,openchannelAccount:r.openchannelAccount,crudPermissions:r.crudPermissions}}).then(function(e){e&&(e.id?r.openchannelAccountApps.rows[n]=e:r.openchannelAccountApps.rows.splice(n,0,e),l())}).catch(function(e){e&&s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function l(){for(var e=1,n=[],t=0;t<r.openchannelAccountApps.rows.length;t++,0){var a=r.openchannelAccountApps.rows[t],i=[],s=[];a.intervals="*,*,*,*"!==a.interval?[a.interval]:a.IntervalId?_.map(_.filter(r.intervals.rows,{IntervalId:a.IntervalId}),"interval"):[],a.context=r.openchannelAccount.context,a.exten=r.openchannelAccount.exten,a.type&&(a.type=a.type.toLowerCase()),a.priority=i.length?_.last(i).priority+1:e,e=(s.length?_.last(s).priority:a.priority)+1,n=_.concat(n,i,[a],s)}o.openchannelAccount.addApplications({id:r.openchannelAccount.id},_.sortBy(n,"priority")).$promise.then(function(e){r.openchannelAccountApps.rows=e.rows}).catch(function(e){console.error(e)})}function t(e){r.openchannelAccountApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.openchannelAccount={},r.openchannelAccountApps={count:0,rows:[]},r.selectedOpenchannelAccountApps=[],r.crudPermissions,r.query={sort:"priority"},r.apps=_.reject(_.sortBy([{app:"dialogflow",appType:"dialogflow",type:"dialogflow",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Key",name:"key",type:"text",required:!0,param:0},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{option:"Danish",value:"'da'"},{option:"English",value:"'en'"},{option:"German",value:"'de'"},{option:"Italian",value:"'it'"},{option:"Spanish",value:"'es'"},{option:"French",value:"'fr'"},{option:"Indonesian",value:"'id'"},{option:"Japanese",value:"'ja'"},{option:"Korean (South Korea)",value:"'ko'"},{option:"Dutch",value:"'nl'"},{option:"Norwegian",value:"'no'"},{option:"Portuguese (European)",value:"'pt'"},{option:"Portuguese (Nrazilian)",value:"'pt-br'"},{option:"Russian",value:"'ru'"},{option:"Swedish",value:"'sv'"},{option:"Thai",value:"'th'"},{option:"Ukrainian",value:"'uk'"},{option:"Chinese (Simplified)",value:"'zh-CN'"},{option:"Chinese (Hong Kong)",value:"'zh-HK'"},{option:"Chinese (Traditional)",value:"'zh-TW'"}],required:!0,param:1},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,required:!1,param:2,help:!0}]},{app:"dialogflowV2",appType:"dialogflowv2",type:"dialogflowv2",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"ProjectID",name:"projectId",type:"text",required:!0,param:0},{title:"ClientEmail",name:"clientEmail",type:"text",required:!0,param:1},{title:"PrivateKey",name:"privateKey",type:"textarea",required:!0,param:2},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{value:"'zh-HK'",option:"Chinese (Cantonese)"},{value:"'zh-CN'",option:"Chinese (Simplified)"},{value:"'zh-TW'",option:"Chinese (Traditional)"},{value:"'da'",option:"Danish"},{value:"'nl'",option:"Dutch"},{value:"'en'",option:"English"},{value:"'en-AU'",option:"English (Australia)"},{value:"'en-CA'",option:"English (Canada)"},{value:"'en-GB'",option:"English (Great Britain)"},{value:"'en-IN'",option:"English (India)"},{value:"'en-US'",option:"English (US)"},{value:"'fr'",option:"French"},{value:"'fr-CA'",option:"French (Canada)"},{value:"'fr-FR'",option:"'France (France)"},{value:"'de'",option:"German"},{value:"'hi'",option:"Hindi"},{value:"'id'",option:"Indonesian"},{value:"'it'",option:"Italian"},{value:"'ja'",option:"Japanese"},{value:"'ko'",option:"Korean"},{value:"'no'",option:"Norwegian"},{value:"'pl'",option:"Polish"},{value:"'pt-BR'",option:"Portuguese (Brazil)"},{value:"'pt-PT'",option:"Portuguese (Portugal)"},{value:"'ru'",option:"Russian"},{value:"'es'",option:"Spanish"},{value:"'es-419'",option:"Spanish (Latin America)"},{value:"'es-ES'",option:"Spanish (Spain)"},{value:"'sw'",option:"Swedish"},{value:"'th'",option:"Thai"},{value:"'tr'",option:"Turkish"},{value:"'uk'",option:"Ukrainian"}],required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,param:4,help:!0}]},{app:"amazonlex",appType:"amazonlex",type:"amazonlex",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"accesskeyid",name:"accesskeyid",type:"text",required:!0,param:0},{title:"secretaccesskey",name:"secretaccesskey",type:"text",required:!0,param:1},{title:"lexregion",name:"lexregion",type:"select",defaultValue:"'us-east-1'",values:[{option:"US East (N. Virginia)",value:"'us-east-1'"},{option:"US West (Oregon)",value:"'us-west-2'"},{option:"EU (Ireland)",value:"'eu-west-1'"},{option:"Asia Pacific (Sydney)",value:"'ap-southeast-2'"}],required:!0,param:2},{title:"botname",name:"botname",type:"text",required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,required:!1,param:4,help:!0}]},{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"noop",appType:"noop",type:"noop",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,fields:[{title:"Value",name:"value",type:"text",param:0}]},{app:"system",appType:"system",type:"system",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,extraApi:[{name:"variables",field:{name:"variable",key:"name"},route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1012}}],fields:[{title:"Command",name:"command",type:"text",required:!0,param:0},{title:"Variable",name:"variable",type:"apiselect",values:"variables",value:"variable.name",option:"variable.name",defaultValues:[{value:"''",option:"None"}],defaultValue:"''",param:1}]},{app:"gotop",appType:"gotop",type:"goto",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Priority",name:"priority",type:"number",required:!0,min:0,param:0}]},{app:"gotoif",appType:"gotoif",type:"gotoif",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Condition",name:"condition",type:"text",required:!0,param:0},{title:"truepriority",name:"truepriority",type:"number",min:1,required:!0,param:1},{title:"falsepriority",name:"falsepriority",type:"number",min:1,required:!0,param:2}]},{app:"queue",appType:"queue",foreignKey:"OpenchannelQueueId",type:"queue",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"queues",field:{name:"queue",key:"name"},route:"openchannelQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0},permissions:{section:801}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",defaultValue:300,required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,defaultValue:300,required:!0,param:1}]},{app:"agent",appType:"agent",type:"agent",foreignKey:"UserId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"agents",field:{name:"agent",key:"name"},route:"user",filters:{fields:"id,name",sort:"name",role:"agent",nolimit:!0},permissions:{section:202}}],fields:[{title:"Agent",name:"agent",type:"apiselect",values:"agents",value:"agent.name",option:"agent.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:30,param:1}]},{app:"autoreply",appType:"autoreply",type:"autoreply",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"times",name:"times",type:"select",defaultValue:"1",values:[{option:"One Time",value:"2"},{option:"Always",value:"0"},{option:"First Message",value:"1"}],required:!0,param:0},{title:"Text",name:"text",type:"textarea",required:!0,param:1}]},{app:"close",appType:"close",type:"close",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Disposition",name:"disposition",type:"text",required:!0,param:0}]},{app:"tag",appType:"tag",type:"tag",foreignKey:"TagId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"tags",field:{name:"tag",key:"name"},route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1008}}],fields:[{title:"Tag",name:"tag",type:"apiselect",values:"tags",value:"tag.name",option:"tag.name",required:!0,param:0}]}],["app"]),{isApp:!1}),r.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},r.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){n(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e,n){r.openchannelAccount=e,r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},r.applications.disabled=!r.crudPermissions.canEdit,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getOpenchannelAccountApps(),r.getIntervals()},r.deleteConfirm=function(e,n,t){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.openchannelAccountApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})},r.getOpenchannelAccountApps=function(){r.promise=o.openchannelAccount.getApplications(r.query,t).$promise},r.editOpenchannelAccountApp=n,r.editInterval=function(e,n){if(r.openchannelAccountApps.rows.length){var t=r.openchannelAccountApps.rows[n]?r.openchannelAccountApps.rows[n]:r.openchannelAccountApps.rows[0];i.show({controller:"EditOpenchannelAccountAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:[],crudPermissions:r.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,l())})}},r.deleteOpenchannelAccountApp=function(e){_.remove(r.openchannelAccountApps.rows,{id:e.id}),l(),s.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedOpenchannelAccountApps=function(e){var n=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+r.selectedOpenchannelAccountApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){r.selectedOpenchannelAccountApps.forEach(function(e){_.remove(r.openchannelAccountApps.rows,{id:e.id})}),r.selectedOpenchannelAccountApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return o.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){r.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.openchannel").controller("OpenchannelAccountActionsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.openchannelAccount.getAgents({id:c.openchannelAccount.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserOpenchannelAccount?"penalty "+e.UserOpenchannelAccount.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.openchannelAccount=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.openchannelAccount.removeAgents({id:c.openchannelAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.openchannelAccount.addAgents({id:c.openchannelAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("OPENCHANNEL.ALL_AGENTS"),labelSelected:r.instant("OPENCHANNEL.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","openchannelAccount","openchannelAccounts","realtime","$translate","Auth","crudPermissions"],angular.module("app.openchannel").controller("OpenchannelAccountagentaddController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.agent=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.agent.appdata)switch(l.agent.appType?l.agent.appType.toLowerCase():l.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.agent.appdata.split(",");l.agent.key=d[0],l.agent.language=d[1],l.agent.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.agent.appdata.split(",");l.agent.projectId=d[0],l.agent.clientEmail=d[1],l.agent.privateKey=d[2],l.agent.language=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.agent.appdata.split(",");l.agent.accesskeyid=d[0],l.agent.secretaccesskey=d[1],l.agent.lexregion=d[2],l.agent.botname=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.agent.appdata.split(",");l.agent.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.agent.text=d.slice(1,d.length).join(",");break;case"message":l.agent.text=l.agent.appdata;break;case"set":l.agent.name=l.agent.appdata.split("=")[0],l.agent.value=l.agent.appdata.split("=")[1];break;case"agi":l.agent.project=l.agent.appdata;break;default:var c=l.agent.appdata.split(",");l.agent.agent=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.agent.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.agent.timeout=30;function m(e){n.hide(e)}l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outbounddial"===l.agent.appType.toLowerCase()&&(l.agent.prefix=l.agent.phone?l.agent.phone.split("$")[0]:void 0,l.agent.callerId=l.agent.callerID?"CALLERID(all)="+l.agent.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outboundDial"===l.agent.appType&&(l.agent.phone=i.cutdigits?(l.agent.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.agent.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.agent.options+="U(xcally-mixmonitor-context)"):l.agent.options=l.agent.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.agents,{name:l.agent.agent});n&&(l.agent.UserId=n.id);if(l.agent.appType&&"custom"===l.agent.appType);else switch((l.agent.app||l.agent.appType).toLowerCase()){case"set":l.agent.appdata=l.agent.name+"="+l.agent.value;break;case"custom":break;default:e[0]=l.agent.agent,e[1]=l.agent.timeout,l.agent.appdata=e.join(",")}m(l.agent)},l.closeDialog=m,o.hasRole("admin")?s.user.get({fields:"id,name",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){l.agents=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.user.get({fields:"id,name",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){l.agents=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.agents,{id:e.resourceId})}),t=null;if(l.agent&&(t=_.find(l.agents,{name:l.agent.agent})),t&&!_.some(n,["id",t.id])){var a=_.find(l.agents,{id:t.id});a.canSelect=!1,n.push(a)}l.agents=n})}else{var t=[],a=null;l.agent&&(a=_.find(l.agents,{name:l.agent.agent}));for(var i=0;i<l.agents.length;i++)a&&l.agents[i].id===a.id&&(l.agents[i].canSelect=!1,t.push(l.agents[i]));l.agents=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppagentDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.amazonlex=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.amazonlex.appdata)switch(l.amazonlex.appType?l.amazonlex.appType.toLowerCase():l.amazonlex.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.amazonlex.appdata.split(",");l.amazonlex.key=d[0],l.amazonlex.language=d[1],l.amazonlex.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.amazonlex.appdata.split(",");l.amazonlex.projectId=d[0],l.amazonlex.clientEmail=d[1],l.amazonlex.privateKey=d[2],l.amazonlex.language=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=d[0],l.amazonlex.secretaccesskey=d[1],l.amazonlex.lexregion=d[2],l.amazonlex.botname=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.amazonlex.appdata.split(",");l.amazonlex.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.amazonlex.text=d.slice(1,d.length).join(",");break;case"message":l.amazonlex.text=l.amazonlex.appdata;break;case"set":l.amazonlex.name=l.amazonlex.appdata.split("=")[0],l.amazonlex.value=l.amazonlex.appdata.split("=")[1];break;case"agi":l.amazonlex.project=l.amazonlex.appdata;break;default:var c=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.amazonlex.secretaccesskey=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.amazonlex.lexregion=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.amazonlex.botname=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.amazonlex.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.amazonlex.lexregion="us-east-1";function m(e){n.hide(e)}l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outbounddial"===l.amazonlex.appType.toLowerCase()&&(l.amazonlex.prefix=l.amazonlex.phone?l.amazonlex.phone.split("$")[0]:void 0,l.amazonlex.callerId=l.amazonlex.callerID?"CALLERID(all)="+l.amazonlex.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outboundDial"===l.amazonlex.appType&&(l.amazonlex.phone=i.cutdigits?(l.amazonlex.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.amazonlex.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.amazonlex.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.amazonlex.options+="U(xcally-mixmonitor-context)"):l.amazonlex.options=l.amazonlex.options.replace("U(xcally-mixmonitor-context)",""));if(l.amazonlex.appType&&"custom"===l.amazonlex.appType);else switch((l.amazonlex.app||l.amazonlex.appType).toLowerCase()){case"set":l.amazonlex.appdata=l.amazonlex.name+"="+l.amazonlex.value;break;case"custom":break;default:e[0]=l.amazonlex.accesskeyid,e[1]=l.amazonlex.secretaccesskey,e[2]=l.amazonlex.lexregion,e[3]=l.amazonlex.botname,e[4]=l.amazonlex.welcomemessage,l.amazonlex.appdata=e.join(",")}m(l.amazonlex)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppamazonlexDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.autoreply=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.autoreply.appdata)switch(l.autoreply.appType?l.autoreply.appType.toLowerCase():l.autoreply.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.autoreply.appdata.split(",");l.autoreply.key=d[0],l.autoreply.language=d[1],l.autoreply.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.autoreply.appdata.split(",");l.autoreply.projectId=d[0],l.autoreply.clientEmail=d[1],l.autoreply.privateKey=d[2],l.autoreply.language=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.autoreply.appdata.split(",");l.autoreply.accesskeyid=d[0],l.autoreply.secretaccesskey=d[1],l.autoreply.lexregion=d[2],l.autoreply.botname=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.autoreply.appdata.split(",");l.autoreply.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.autoreply.text=d.slice(1,d.length).join(",");break;case"message":l.autoreply.text=l.autoreply.appdata;break;case"set":l.autoreply.name=l.autoreply.appdata.split("=")[0],l.autoreply.value=l.autoreply.appdata.split("=")[1];break;case"agi":l.autoreply.project=l.autoreply.appdata;break;default:var c=l.autoreply.appdata.split(",");l.autoreply.times=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.autoreply.text=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.autoreply.times=1;function m(e){n.hide(e)}l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outbounddial"===l.autoreply.appType.toLowerCase()&&(l.autoreply.prefix=l.autoreply.phone?l.autoreply.phone.split("$")[0]:void 0,l.autoreply.callerId=l.autoreply.callerID?"CALLERID(all)="+l.autoreply.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outboundDial"===l.autoreply.appType&&(l.autoreply.phone=i.cutdigits?(l.autoreply.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.autoreply.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.autoreply.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.autoreply.options+="U(xcally-mixmonitor-context)"):l.autoreply.options=l.autoreply.options.replace("U(xcally-mixmonitor-context)",""));if(l.autoreply.appType&&"custom"===l.autoreply.appType);else switch((l.autoreply.app||l.autoreply.appType).toLowerCase()){case"set":l.autoreply.appdata=l.autoreply.name+"="+l.autoreply.value;break;case"custom":break;default:e[0]=l.autoreply.times,e[1]=l.autoreply.text,l.autoreply.appdata=e.join(",")}m(l.autoreply)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppautoreplyDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.close=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.close.appdata)switch(l.close.appType?l.close.appType.toLowerCase():l.close.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.close.appdata.split(",");l.close.key=d[0],l.close.language=d[1],l.close.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.close.appdata.split(",");l.close.projectId=d[0],l.close.clientEmail=d[1],l.close.privateKey=d[2],l.close.language=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.close.appdata.split(",");l.close.accesskeyid=d[0],l.close.secretaccesskey=d[1],l.close.lexregion=d[2],l.close.botname=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.close.appdata.split(",");l.close.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.close.text=d.slice(1,d.length).join(",");break;case"message":l.close.text=l.close.appdata;break;case"set":l.close.name=l.close.appdata.split("=")[0],l.close.value=l.close.appdata.split("=")[1];break;case"agi":l.close.project=l.close.appdata;break;default:var c=l.close.appdata.split(",");l.close.disposition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outbounddial"===l.close.appType.toLowerCase()&&(l.close.prefix=l.close.phone?l.close.phone.split("$")[0]:void 0,l.close.callerId=l.close.callerID?"CALLERID(all)="+l.close.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outboundDial"===l.close.appType&&(l.close.phone=i.cutdigits?(l.close.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.close.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.close.options+="U(xcally-mixmonitor-context)"):l.close.options=l.close.options.replace("U(xcally-mixmonitor-context)",""));if(l.close.appType&&"custom"===l.close.appType);else switch((l.close.app||l.close.appType).toLowerCase()){case"set":l.close.appdata=l.close.name+"="+l.close.value;break;case"custom":break;default:e[0]=l.close.disposition,l.close.appdata=e.join(",")}m(l.close)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppcloseDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflow=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflow.appdata)switch(l.dialogflow.appType?l.dialogflow.appType.toLowerCase():l.dialogflow.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflow.appdata.split(",");l.dialogflow.key=d[0],l.dialogflow.language=d[1],l.dialogflow.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflow.appdata.split(",");l.dialogflow.projectId=d[0],l.dialogflow.clientEmail=d[1],l.dialogflow.privateKey=d[2],l.dialogflow.language=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflow.appdata.split(",");l.dialogflow.accesskeyid=d[0],l.dialogflow.secretaccesskey=d[1],l.dialogflow.lexregion=d[2],l.dialogflow.botname=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflow.appdata.split(",");l.dialogflow.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflow.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflow.text=l.dialogflow.appdata;break;case"set":l.dialogflow.name=l.dialogflow.appdata.split("=")[0],l.dialogflow.value=l.dialogflow.appdata.split("=")[1];break;case"agi":l.dialogflow.project=l.dialogflow.appdata;break;default:var c=l.dialogflow.appdata.split(",");l.dialogflow.key=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflow.language=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflow.welcomemessage=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}else l.dialogflow.language="en";function m(e){n.hide(e)}l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outbounddial"===l.dialogflow.appType.toLowerCase()&&(l.dialogflow.prefix=l.dialogflow.phone?l.dialogflow.phone.split("$")[0]:void 0,l.dialogflow.callerId=l.dialogflow.callerID?"CALLERID(all)="+l.dialogflow.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outboundDial"===l.dialogflow.appType&&(l.dialogflow.phone=i.cutdigits?(l.dialogflow.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflow.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflow.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflow.options+="U(xcally-mixmonitor-context)"):l.dialogflow.options=l.dialogflow.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflow.appType&&"custom"===l.dialogflow.appType);else switch((l.dialogflow.app||l.dialogflow.appType).toLowerCase()){case"set":l.dialogflow.appdata=l.dialogflow.name+"="+l.dialogflow.value;break;case"custom":break;default:e[0]=l.dialogflow.key,e[1]=l.dialogflow.language,e[2]=l.dialogflow.welcomemessage,l.dialogflow.appdata=e.join(",")}m(l.dialogflow)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppdialogflowDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflowv2=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflowv2.appdata)switch(l.dialogflowv2.appType?l.dialogflowv2.appType.toLowerCase():l.dialogflowv2.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.key=d[0],l.dialogflowv2.language=d[1],l.dialogflowv2.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=d[0],l.dialogflowv2.clientEmail=d[1],l.dialogflowv2.privateKey=d[2],l.dialogflowv2.language=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.accesskeyid=d[0],l.dialogflowv2.secretaccesskey=d[1],l.dialogflowv2.lexregion=d[2],l.dialogflowv2.botname=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflowv2.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflowv2.text=l.dialogflowv2.appdata;break;case"set":l.dialogflowv2.name=l.dialogflowv2.appdata.split("=")[0],l.dialogflowv2.value=l.dialogflowv2.appdata.split("=")[1];break;case"agi":l.dialogflowv2.project=l.dialogflowv2.appdata;break;default:var c=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflowv2.clientEmail=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflowv2.privateKey=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.dialogflowv2.language=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.dialogflowv2.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.dialogflowv2.language="en";function m(e){n.hide(e)}l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outbounddial"===l.dialogflowv2.appType.toLowerCase()&&(l.dialogflowv2.prefix=l.dialogflowv2.phone?l.dialogflowv2.phone.split("$")[0]:void 0,l.dialogflowv2.callerId=l.dialogflowv2.callerID?"CALLERID(all)="+l.dialogflowv2.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outboundDial"===l.dialogflowv2.appType&&(l.dialogflowv2.phone=i.cutdigits?(l.dialogflowv2.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflowv2.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflowv2.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflowv2.options+="U(xcally-mixmonitor-context)"):l.dialogflowv2.options=l.dialogflowv2.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflowv2.appType&&"custom"===l.dialogflowv2.appType);else switch((l.dialogflowv2.app||l.dialogflowv2.appType).toLowerCase()){case"set":l.dialogflowv2.appdata=l.dialogflowv2.name+"="+l.dialogflowv2.value;break;case"custom":break;default:e[0]=l.dialogflowv2.projectId,e[1]=l.dialogflowv2.clientEmail,e[2]=l.dialogflowv2.privateKey,e[3]=l.dialogflowv2.language,e[4]=l.dialogflowv2.welcomemessage,l.dialogflowv2.appdata=e.join(",")}m(l.dialogflowv2)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppdialogflowv2DialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotoif=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotoif.appdata)switch(l.gotoif.appType?l.gotoif.appType.toLowerCase():l.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotoif.appdata.split(",");l.gotoif.key=d[0],l.gotoif.language=d[1],l.gotoif.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotoif.appdata.split(",");l.gotoif.projectId=d[0],l.gotoif.clientEmail=d[1],l.gotoif.privateKey=d[2],l.gotoif.language=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotoif.appdata.split(",");l.gotoif.accesskeyid=d[0],l.gotoif.secretaccesskey=d[1],l.gotoif.lexregion=d[2],l.gotoif.botname=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotoif.appdata.split(",");l.gotoif.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotoif.text=d.slice(1,d.length).join(",");break;case"message":l.gotoif.text=l.gotoif.appdata;break;case"set":l.gotoif.name=l.gotoif.appdata.split("=")[0],l.gotoif.value=l.gotoif.appdata.split("=")[1];break;case"agi":l.gotoif.project=l.gotoif.appdata;break;default:var c=l.gotoif.appdata.split(",");l.gotoif.condition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.gotoif.truepriority=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.gotoif.falsepriority=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}function m(e){n.hide(e)}l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outbounddial"===l.gotoif.appType.toLowerCase()&&(l.gotoif.prefix=l.gotoif.phone?l.gotoif.phone.split("$")[0]:void 0,l.gotoif.callerId=l.gotoif.callerID?"CALLERID(all)="+l.gotoif.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outboundDial"===l.gotoif.appType&&(l.gotoif.phone=i.cutdigits?(l.gotoif.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotoif.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotoif.options+="U(xcally-mixmonitor-context)"):l.gotoif.options=l.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotoif.appType&&"custom"===l.gotoif.appType);else switch((l.gotoif.app||l.gotoif.appType).toLowerCase()){case"set":l.gotoif.appdata=l.gotoif.name+"="+l.gotoif.value;break;case"custom":break;default:e[0]=l.gotoif.condition,e[1]=l.gotoif.truepriority,e[2]=l.gotoif.falsepriority,l.gotoif.appdata=e.join(",")}m(l.gotoif)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppgotoifDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotop.appdata)switch(l.gotop.appType?l.gotop.appType.toLowerCase():l.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotop.appdata.split(",");l.gotop.key=d[0],l.gotop.language=d[1],l.gotop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotop.appdata.split(",");l.gotop.projectId=d[0],l.gotop.clientEmail=d[1],l.gotop.privateKey=d[2],l.gotop.language=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotop.appdata.split(",");l.gotop.accesskeyid=d[0],l.gotop.secretaccesskey=d[1],l.gotop.lexregion=d[2],l.gotop.botname=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotop.appdata.split(",");l.gotop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotop.text=d.slice(1,d.length).join(",");break;case"message":l.gotop.text=l.gotop.appdata;break;case"set":l.gotop.name=l.gotop.appdata.split("=")[0],l.gotop.value=l.gotop.appdata.split("=")[1];break;case"agi":l.gotop.project=l.gotop.appdata;break;default:var c=l.gotop.appdata.split(",");l.gotop.priority=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outbounddial"===l.gotop.appType.toLowerCase()&&(l.gotop.prefix=l.gotop.phone?l.gotop.phone.split("$")[0]:void 0,l.gotop.callerId=l.gotop.callerID?"CALLERID(all)="+l.gotop.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outboundDial"===l.gotop.appType&&(l.gotop.phone=i.cutdigits?(l.gotop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotop.options+="U(xcally-mixmonitor-context)"):l.gotop.options=l.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotop.appType&&"custom"===l.gotop.appType);else switch((l.gotop.app||l.gotop.appType).toLowerCase()){case"set":l.gotop.appdata=l.gotop.name+"="+l.gotop.value;break;case"custom":break;default:e[0]=l.gotop.priority,l.gotop.appdata=e.join(",")}m(l.gotop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppgotopDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom","list"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditOpenchannelAccountAppintervalDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.noop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.noop.appdata)switch(l.noop.appType?l.noop.appType.toLowerCase():l.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.noop.appdata.split(",");l.noop.key=d[0],l.noop.language=d[1],l.noop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.noop.appdata.split(",");l.noop.projectId=d[0],l.noop.clientEmail=d[1],l.noop.privateKey=d[2],l.noop.language=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.noop.appdata.split(",");l.noop.accesskeyid=d[0],l.noop.secretaccesskey=d[1],l.noop.lexregion=d[2],l.noop.botname=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.noop.appdata.split(",");l.noop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.noop.text=d.slice(1,d.length).join(",");break;case"message":l.noop.text=l.noop.appdata;break;case"set":l.noop.name=l.noop.appdata.split("=")[0],l.noop.value=l.noop.appdata.split("=")[1];break;case"agi":l.noop.project=l.noop.appdata;break;default:var c=l.noop.appdata.split(",");l.noop.value=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outbounddial"===l.noop.appType.toLowerCase()&&(l.noop.prefix=l.noop.phone?l.noop.phone.split("$")[0]:void 0,l.noop.callerId=l.noop.callerID?"CALLERID(all)="+l.noop.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outboundDial"===l.noop.appType&&(l.noop.phone=i.cutdigits?(l.noop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.noop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.noop.options+="U(xcally-mixmonitor-context)"):l.noop.options=l.noop.options.replace("U(xcally-mixmonitor-context)",""));if(l.noop.appType&&"custom"===l.noop.appType);else switch((l.noop.app||l.noop.appType).toLowerCase()){case"set":l.noop.appdata=l.noop.name+"="+l.noop.value;break;case"custom":break;default:e[0]=l.noop.value,l.noop.appdata=e.join(",")}m(l.noop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppnoopDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.queue=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.queue.appdata)switch(l.queue.appType?l.queue.appType.toLowerCase():l.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.queue.appdata.split(",");l.queue.key=d[0],l.queue.language=d[1],l.queue.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.queue.appdata.split(",");l.queue.projectId=d[0],l.queue.clientEmail=d[1],l.queue.privateKey=d[2],l.queue.language=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.queue.appdata.split(",");l.queue.accesskeyid=d[0],l.queue.secretaccesskey=d[1],l.queue.lexregion=d[2],l.queue.botname=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.queue.appdata.split(",");l.queue.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.queue.text=d.slice(1,d.length).join(",");break;case"message":l.queue.text=l.queue.appdata;break;case"set":l.queue.name=l.queue.appdata.split("=")[0],l.queue.value=l.queue.appdata.split("=")[1];break;case"agi":l.queue.project=l.queue.appdata;break;default:var c=l.queue.appdata.split(",");l.queue.queue=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.queue.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.queue.queue=300,l.queue.timeout=300;function m(e){n.hide(e)}l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outbounddial"===l.queue.appType.toLowerCase()&&(l.queue.prefix=l.queue.phone?l.queue.phone.split("$")[0]:void 0,l.queue.callerId=l.queue.callerID?"CALLERID(all)="+l.queue.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outboundDial"===l.queue.appType&&(l.queue.phone=i.cutdigits?(l.queue.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.queue.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.queue.options+="U(xcally-mixmonitor-context)"):l.queue.options=l.queue.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.queues,{name:l.queue.queue});n&&(l.queue[_.capitalize("openChannel")+"QueueId"]=n.id);if(l.queue.appType&&"custom"===l.queue.appType);else switch((l.queue.app||l.queue.appType).toLowerCase()){case"set":l.queue.appdata=l.queue.name+"="+l.queue.value;break;case"custom":break;default:e[0]=l.queue.queue,e[1]=l.queue.timeout,l.queue.appdata=e.join(",")}m(l.queue)},l.closeDialog=m,o.hasRole("admin")?s.openchannelQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.openchannelQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:801}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.queues,{id:e.resourceId})}),t=null;if(l.queue&&(t=_.find(l.queues,{name:l.queue.queue})),t&&!_.some(n,["id",t.id])){var a=_.find(l.queues,{id:t.id});a.canSelect=!1,n.push(a)}l.queues=n})}else{var t=[],a=null;l.queue&&(a=_.find(l.queues,{name:l.queue.queue}));for(var i=0;i<l.queues.length;i++)a&&l.queues[i].id===a.id&&(l.queues[i].canSelect=!1,t.push(l.queues[i]));l.queues=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppqueueDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.system=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.system.appdata)switch(l.system.appType?l.system.appType.toLowerCase():l.system.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.system.appdata.split(",");l.system.key=d[0],l.system.language=d[1],l.system.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.system.appdata.split(",");l.system.projectId=d[0],l.system.clientEmail=d[1],l.system.privateKey=d[2],l.system.language=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.system.appdata.split(",");l.system.accesskeyid=d[0],l.system.secretaccesskey=d[1],l.system.lexregion=d[2],l.system.botname=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.system.appdata.split(",");l.system.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.system.text=d.slice(1,d.length).join(",");break;case"message":l.system.text=l.system.appdata;break;case"set":l.system.name=l.system.appdata.split("=")[0],l.system.value=l.system.appdata.split("=")[1];break;case"agi":l.system.project=l.system.appdata;break;default:var c=l.system.appdata.split(",");l.system.command=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.system.variable=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.system.variable="";function m(e){n.hide(e)}l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outbounddial"===l.system.appType.toLowerCase()&&(l.system.prefix=l.system.phone?l.system.phone.split("$")[0]:void 0,l.system.callerId=l.system.callerID?"CALLERID(all)="+l.system.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outboundDial"===l.system.appType&&(l.system.phone=i.cutdigits?(l.system.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.system.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.system.options+="U(xcally-mixmonitor-context)"):l.system.options=l.system.options.replace("U(xcally-mixmonitor-context)",""));if(l.system.appType&&"custom"===l.system.appType);else switch((l.system.app||l.system.appType).toLowerCase()){case"set":l.system.appdata=l.system.name+"="+l.system.value;break;case"custom":break;default:e[0]=l.system.command,e[1]=l.system.variable,l.system.appdata=e.join(",")}m(l.system)},l.closeDialog=m,o.hasRole("admin")?s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1012}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.variables,{id:e.resourceId})}),t=null;if(l.system&&(t=_.find(l.variables,{name:l.system.variable})),t&&!_.some(n,["id",t.id])){var a=_.find(l.variables,{id:t.id});a.canSelect=!1,n.push(a)}l.variables=n})}else{var t=[],a=null;l.system&&(a=_.find(l.variables,{name:l.system.variable}));for(var i=0;i<l.variables.length;i++)a&&l.variables[i].id===a.id&&(l.variables[i].canSelect=!1,t.push(l.variables[i]));l.variables=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountAppsystemDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="OPENCHANNEL.EDIT_"+(a.appType||a.app).toUpperCase(),l.tag=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.tag.appdata)switch(l.tag.appType?l.tag.appType.toLowerCase():l.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.tag.appdata.split(",");l.tag.key=d[0],l.tag.language=d[1],l.tag.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.tag.appdata.split(",");l.tag.projectId=d[0],l.tag.clientEmail=d[1],l.tag.privateKey=d[2],l.tag.language=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.tag.appdata.split(",");l.tag.accesskeyid=d[0],l.tag.secretaccesskey=d[1],l.tag.lexregion=d[2],l.tag.botname=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.tag.appdata.split(",");l.tag.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.tag.text=d.slice(1,d.length).join(",");break;case"message":l.tag.text=l.tag.appdata;break;case"set":l.tag.name=l.tag.appdata.split("=")[0],l.tag.value=l.tag.appdata.split("=")[1];break;case"agi":l.tag.project=l.tag.appdata;break;default:var c=l.tag.appdata.split(",");l.tag.tag=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outbounddial"===l.tag.appType.toLowerCase()&&(l.tag.prefix=l.tag.phone?l.tag.phone.split("$")[0]:void 0,l.tag.callerId=l.tag.callerID?"CALLERID(all)="+l.tag.callerID:void 0),l.saveOpenchannelAccountApp=function(){l.errors=[];var e=[];l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outboundDial"===l.tag.appType&&(l.tag.phone=i.cutdigits?(l.tag.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.tag.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.tag.options+="U(xcally-mixmonitor-context)"):l.tag.options=l.tag.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.tags,{name:l.tag.tag});n&&(l.tag.TagId=n.id);if(l.tag.appType&&"custom"===l.tag.appType);else switch((l.tag.app||l.tag.appType).toLowerCase()){case"set":l.tag.appdata=l.tag.name+"="+l.tag.value;break;case"custom":break;default:e[0]=l.tag.tag,l.tag.appdata=e.join(",")}m(l.tag)},l.closeDialog=m,o.hasRole("admin")?s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1008}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.tags,{id:e.resourceId})}),t=null;if(l.tag&&(t=_.find(l.tags,{name:l.tag.tag})),t&&!_.some(n,["id",t.id])){var a=_.find(l.tags,{id:t.id});a.canSelect=!1,n.push(a)}l.tags=n})}else{var t=[],a=null;l.tag&&(a=_.find(l.tags,{name:l.tag.tag}));for(var i=0;i<l.tags.length;i++)a&&l.tags[i].id===a.id&&(l.tags[i].canSelect=!1,t.push(l.tags[i]));l.tags=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtags",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","openchannelAccountApp","openchannelAccount","api","Auth","crudPermissions"],angular.module("app.openchannel").controller("EditOpenchannelAccountApptagDialogController",e)}(),function(){"use strict";function e(e,a,n,t,i,s,o,r,l,d,c){var m=this;function u(e){m.openchannelAccountInteractions=e||{count:0,rows:[]};for(var n=0;n<m.openchannelAccountInteractions.rows.length;n+=1){var t=m.openchannelAccountInteractions.rows[n];v(t),t.Owner.name=h(t)}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.openchannelInteraction.get(m.query,u).$promise}function g(e){d.openchannelInteraction.delete({id:e.id}).$promise.then(function(){_.remove(m.openchannelAccountInteractions.rows,{id:e.id}),m.openchannelAccountInteractions.count-=1,m.openchannelAccountInteractions.rows.length||p(),l.success({title:"Interaction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETopenchannelAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(e){e.from?e.contactName=e.from:e.Contact?e.contactName=(e.Contact.firstName||"")+" "+(e.Contact.lastName||""):e.contactName=i.instant("OPENCHANNEL.UNKNOWN")}function h(e){return e.UserId?e.UserId===m.currentUser.id?i.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">":i.instant("DASHBOARDS.NOT_ASSIGNED")}m.currentUser=c.getCurrentUser(),m.openchannelAccount={},m.openchannelAccountInteractions={count:0,rows:[]},m.selectedOpenchannelAccountInteractions=[],m.crudPermissions,m.query={read:"null",closed:"null",sort:"-createdAt",includeAll:"true",limit:10,page:1},m.init=function(e,n,t){m.openchannelAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.OpenchannelAccountId=m.openchannelAccount.id,m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Subject",column:"subject",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},d.tag.get({sort:"name"}).$promise.then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]})},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interaction #")+e.id||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.openchannelInteractionDownload=function(s,e,n){return d.openchannelInteraction.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="interaction"+s.id,a=new Blob(n,{type:e.type});t="openchannel-interaction"+s.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getOpenchannelAccountInteractions=p,m.createOrEditOpenchannelAccountInteraction=function(e,n){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/interactions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelAccount:m.openchannelAccount,interaction:n,interactions:m.openchannelAccountInteractions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.spyopenchannelInteraction=function(e,t){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,n){e.vm.init({id:1,channel:"openchannel",interaction:t,spy:!0},a.$parent.vm.setting)}})},m.openAdvancedSearch=function(){o.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,locals:{fields:m.advancedSearch.fields,color:void 0,storagePath:"openchannel.openchannelAccounts"},fullscreen:!0}).then(function(e){if(m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply){var n="";n+="||OpenchannelAccountId:=$eq["+m.openchannelAccount.id+"]",m.query.search=e.value?e.value+=n:e.value,p()}}).catch(function(e){l.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.exportSelectedOpenchannelAccountInteractions=function(){var e=angular.copy(m.selectedOpenchannelAccountInteractions);return m.selectedOpenchannelAccountInteractions=[],e},m.deleteOpenchannelAccountInteraction=g,m.deleteSelectedOpenchannelAccountInteractions=function(e){var n=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+m.selectedOpenchannelAccountInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedOpenchannelAccountInteractions.forEach(function(e){g(e)}),m.selectedOpenchannelAccountInteractions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.openchannel").controller("OpenchannelAccountInteractionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.openchannelAccountOpenchannelCannedAnswers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.openchannelAccount.getAnswers(m.query,u).$promise}function g(e){d.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(m.openchannelAccountOpenchannelCannedAnswers.rows,{id:e.id}),m.openchannelAccountOpenchannelCannedAnswers.count-=1,m.openchannelAccountOpenchannelCannedAnswers.rows.length||p(),l.success({title:"OpenchannelCannedAnswer deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETopenchannelAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.openchannelAccount={},m.openchannelAccountOpenchannelCannedAnswers={count:0,rows:[]},m.selectedOpenchannelAccountOpenchannelCannedAnswers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,key,value,description",limit:10,page:1},m.init=function(e,n,t){m.openchannelAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.OpenchannelAccountId=m.openchannelAccount.id,m.query.id=m.openchannelAccount.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the openchannelCannedAnswer?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("openchannelCannedAnswer #")+e.id||"openchannelCannedAnswer")+"</b> will be deleted.").ariaLabel("delete openchannelCannedAnswer").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getOpenchannelAccountOpenchannelCannedAnswers=p,m.createOrEditOpenchannelAccountOpenchannelCannedAnswer=function(e,n){o.show({controller:"CreateOrEditOpenchannelCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/openchannelCannedAnswers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelAccount:m.openchannelAccount,openchannelCannedAnswer:n,openchannelCannedAnswers:m.openchannelAccountOpenchannelCannedAnswers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedOpenchannelAccountOpenchannelCannedAnswers=function(){var e=angular.copy(m.selectedOpenchannelAccountOpenchannelCannedAnswers);return m.selectedOpenchannelAccountOpenchannelCannedAnswers=[],e},m.deleteOpenchannelAccountOpenchannelCannedAnswer=g,m.deleteSelectedOpenchannelAccountOpenchannelCannedAnswers=function(e){var n=o.confirm().title("Are you sure want to delete the selected openchannelCannedAnswers?").htmlContent("<b>"+m.selectedOpenchannelAccountOpenchannelCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete openchannelCannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedOpenchannelAccountOpenchannelCannedAnswers.forEach(function(e){g(e)}),m.selectedOpenchannelAccountOpenchannelCannedAnswers=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.openchannel").controller("OpenchannelAccountOpenchannelCannedAnswersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="OPENCHANNEL.EDIT_OPENCHANNELCANNEDANSWER",g.openchannelCannedAnswer=angular.copy(l),g.openchannelCannedAnswers=r,g.newOpenchannelCannedAnswer=!1,g.openchannelCannedAnswer||(g.openchannelCannedAnswer={},g.title="OPENCHANNEL.NEW_OPENCHANNELCANNEDANSWER",g.newOpenchannelCannedAnswer=!0),n.params.id&&(g.openchannelCannedAnswer.OpenchannelAccountId=n.params.id),g.addNewOpenchannelCannedAnswer=function(){g.errors=[],d.cannedAnswer.save(g.openchannelCannedAnswer).$promise.then(function(e){g.openchannelCannedAnswers.unshift(e.toJSON()),o.success({title:"OpenchannelCannedAnswer properly created",msg:g.openchannelCannedAnswer.name?g.openchannelCannedAnswer.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveOpenchannelCannedAnswer=function(){g.errors=[],d.cannedAnswer.update({id:g.openchannelCannedAnswer.id},g.openchannelCannedAnswer).$promise.then(function(e){var n=_.find(g.openchannelCannedAnswers,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"OpenchannelCannedAnswer properly saved!",msg:g.openchannelCannedAnswer.name?g.openchannelCannedAnswer.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteOpenchannelCannedAnswer=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The openchannelCannedAnswer will be deleted.").ariaLabel("Delete OpenchannelCannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cannedAnswer.delete({id:g.openchannelCannedAnswer.id}).$promise.then(function(){_.remove(g.openchannelCannedAnswers,{id:g.openchannelCannedAnswer.id}),o.success({title:"OpenchannelCannedAnswer properly deleted!",msg:(g.openchannelCannedAnswer.name||"openchannelCannedAnswer")+" has been deleted!"}),v(g.openchannelCannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","openchannelCannedAnswers","openchannelCannedAnswer","api","Auth","license","setting","crudPermissions"],angular.module("app.openchannel").controller("CreateOrEditOpenchannelCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.openchannelAccount.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.openchannelAccount=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.OpenchannelAccountId=m.openchannelAccount.id,m.query.id=m.openchannelAccount.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.openchannelAccount.id,field:"OpenchannelAccountId",route:"openchannelAccount"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.openchannel").controller("OpenchannelAccountDispositionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=s,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=n.protocol()+"://"+n.host(),p.openchannelAccount=c||e.params.openchannelAccount||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=e.params.tab||0,p.agentadddialog=function(e,n){t.show({controller:"OpenchannelAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{openchannelAccount:e,openchannelAccounts:p.openchannelAccounts?p.openchannelAccounts.rows:[],crudPermissions:p.crudPermissions,realtime:!1}})},p.alert=l.info,p.gotoOpenchannelAccounts=function(){e.go("app.openchannel.openchannelAccounts",{},{reload:"app.openchannel.openchannelAccounts"})},p.saveOpenchannelAccount=function(){r.openchannelAccount.update({id:p.openchannelAccount.id},p.openchannelAccount).$promise.then(function(){l.success({title:"OpenchannelAccount updated!",msg:p.openchannelAccount.name?p.openchannelAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.lists,{id:e.resourceId})}),t=null;if(p.openchannelAccount&&(t=_.find(p.lists,{id:Number(p.openchannelAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.lists,{id:t.id});a.canSelect=!1,n.push(a)}p.lists=n})}else{var t=[],a=null;p.openchannelAccount&&(a=_.find(p.lists,{id:Number(p.openchannelAccount.ListId)}));for(var i=0;i<p.lists.length;i++)a&&p.lists[i].id===a.id&&(p.lists[i].canSelect=!1,t.push(p.lists[i]));p.lists=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.cmContact.describe({id:p.openchannelAccount.ListId}).$promise.then(function(e){p.fields=[];e=_.values(e.toJSON());for(var n=["id","createdAt","updatedAt","deletedAt","scheduledat","ListId","CompanyId"],t=0;t<e.length;t++)_.includes(n,e[t].columnName)||p.fields.push(e[t])}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_FIELDS",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.pauses,{id:e.resourceId})});p.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),p.pauses=n})}else p.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","openchannelAccount","userProfile","userProfileSection"],angular.module("app.openchannel").controller("OpenchannelAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.openchannelAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="openchannelAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedOpenchannelAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,key,token,replyUri,ListId,waitForTheAssignedAgent,mapKey,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUri,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.openchannel.openchannelAccounts.edit",{id:e.id,openchannelAccount:e,crudPermissions:f.crudPermissions})},f.interactionsgoto=function(e,n){t.go("app.openchannel.openchannelAccounts.edit",{id:e.id,tab:5})},f.agentadddialog=function(e,n){i.show({controller:"OpenchannelAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{openchannelAccount:e,openchannelAccounts:f.openchannelAccounts?f.openchannelAccounts.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("openchannelAccount")+"?").htmlContent("<b>"+(e.name||"openchannelAccount")+"</b> will be deleted.").ariaLabel("delete openchannelAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getOpenchannelAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.openchannelAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="OpenchannelAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditOpenchannelAccount=function(e,n){i.show({controller:"CreateOrEditOpenchannelAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelAccount:n,openchannelAccounts:f.openchannelAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteOpenchannelAccount=y,f.exportSelectedOpenchannelAccounts=function(){var e=angular.copy(f.selectedOpenchannelAccounts);return f.selectedOpenchannelAccounts=[],e},f.deleteSelectedOpenchannelAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected openchannelAccounts?").htmlContent("<b>"+f.selectedOpenchannelAccounts.length+" selected</b> will be deleted.").ariaLabel("delete OpenchannelAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedOpenchannelAccounts.forEach(function(e){y(e)}),f.selectedOpenchannelAccounts=[]})},f.deselectOpenchannelAccounts=function(){f.selectedOpenchannelAccounts=[]},f.selectAllOpenchannelAccounts=function(){f.selectedOpenchannelAccounts=f.openchannelAccounts.rows},g.hasRole("admin")?m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.lists,{id:e.resourceId})}),t=null;if(f.openchannelAccount&&(t=_.find(f.lists,{id:Number(f.openchannelAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.lists,{id:t.id});a.canSelect=!1,n.push(a)}f.lists=n})}else{var t=[],a=null;f.openchannelAccount&&(a=_.find(f.lists,{id:Number(f.openchannelAccount.ListId)}));for(var i=0;i<f.lists.length;i++)a&&f.lists[i].id===a.id&&(f.lists[i].canSelect=!1,t.push(f.lists[i]));f.lists=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.openchannelAccounts=e||{count:0,rows:[]}}function y(e){m.openchannelAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.openchannelAccounts.rows,{id:e.id}),f.openchannelAccounts.count-=1,f.openchannelAccounts.rows.length||f.getOpenchannelAccounts(),p.success({title:_.startCase("OpenchannelAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEopenchannelAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEopenchannelAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getOpenchannelAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","openchannelAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.openchannel").controller("OpenchannelAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="OPENCHANNEL.EDIT_OPENCHANNELQUEUE",g.openchannelQueue=angular.copy(l),g.openchannelQueues=r,g.newOpenchannelQueue=!1,g.openchannelQueue||(g.openchannelQueue={strategy:"beepall",timeout:10},g.title="OPENCHANNEL.NEW_OPENCHANNELQUEUE",g.newOpenchannelQueue=!0),g.addNewOpenchannelQueue=function(){g.errors=[],d.openchannelQueue.save(g.openchannelQueue).$promise.then(function(e){g.openchannelQueues.unshift(e.toJSON()),o.success({title:"OpenchannelQueue properly created",msg:g.openchannelQueue.name?g.openchannelQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveOpenchannelQueue=function(){g.errors=[],d.openchannelQueue.update({id:g.openchannelQueue.id},g.openchannelQueue).$promise.then(function(e){var n=_.find(g.openchannelQueues,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"OpenchannelQueue properly saved!",msg:g.openchannelQueue.name?g.openchannelQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteOpenchannelQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The openchannelQueue will be deleted.").ariaLabel("Delete OpenchannelQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.openchannelQueue.delete({id:g.openchannelQueue.id}).$promise.then(function(){_.remove(g.openchannelQueues,{id:g.openchannelQueue.id}),o.success({title:"OpenchannelQueue properly deleted!",msg:(g.openchannelQueue.name||"openchannelQueue")+" has been deleted!"}),v(g.openchannelQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","openchannelQueues","openchannelQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.openchannel").controller("CreateOrEditOpenchannelQueueDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.openchannelQueue.getAgents({id:c.openchannelQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserOpenchannelQueue?"penalty "+e.UserOpenchannelQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.openchannelQueue=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.openchannelQueue.removeAgents({id:c.openchannelQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.openchannelQueue.addAgents({id:c.openchannelQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("OPENCHANNEL.ALL_AGENTS"),labelSelected:r.instant("OPENCHANNEL.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","openchannelQueue","openchannelQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.openchannel").controller("OpenchannelQueueagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.openchannelQueue.getTeams({id:l.openchannelQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.openchannelQueue=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("OPENCHANNEL.ALL_TEAMS"),labelSelected:t.instant("OPENCHANNEL.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.openchannelQueue.removeTeams({id:l.openchannelQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.openchannelQueue.addTeams({id:l.openchannelQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","openchannelQueue","$translate","Auth","crudPermissions"],angular.module("app.openchannel").controller("OpenchannelQueueteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.openchannelQueue=c||e.params.openchannelQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.teamadddialog=function(e,n){t.show({controller:"OpenchannelQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{openchannelQueue:e,openchannelQueues:u.openchannelQueues?u.openchannelQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){t.show({controller:"OpenchannelQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{openchannelQueue:e,openchannelQueues:u.openchannelQueues?u.openchannelQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoOpenchannelQueues=function(){e.go("app.openchannel.openchannelQueues",{},{reload:"app.openchannel.openchannelQueues"})},u.saveOpenchannelQueue=function(){r.openchannelQueue.update({id:u.openchannelQueue.id},u.openchannelQueue).$promise.then(function(){l.success({title:"OpenchannelQueue updated!",msg:u.openchannelQueue.name?u.openchannelQueue.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETopenchannelQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","openchannelQueue","userProfileSection"],angular.module("app.openchannel").controller("OpenchannelQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.openchannelQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="openchannelQueues",f.listOrder="",f.listOrderAsc=null,f.selectedOpenchannelQueues=[],f.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"openchannel",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.openchannel.openchannelQueues.edit",{id:e.id,openchannelQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"OpenchannelQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{openchannelQueue:e,openchannelQueues:f.openchannelQueues?f.openchannelQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"OpenchannelQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{openchannelQueue:e,openchannelQueues:f.openchannelQueues?f.openchannelQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("openchannelQueue")+"?").htmlContent("<b>"+(e.name||"openchannelQueue")+"</b> will be deleted.").ariaLabel("delete openchannelQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:810}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.openchannel.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.openchannel.realtime.queues",{})}},f.success=E,f.getOpenchannelQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.openchannelQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="OpenchannelQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditOpenchannelQueue=function(e,n){i.show({controller:"CreateOrEditOpenchannelQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelQueue:n,openchannelQueues:f.openchannelQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteOpenchannelQueue=y,f.exportSelectedOpenchannelQueues=function(){var e=angular.copy(f.selectedOpenchannelQueues);return f.selectedOpenchannelQueues=[],e},f.deleteSelectedOpenchannelQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected openchannelQueues?").htmlContent("<b>"+f.selectedOpenchannelQueues.length+" selected</b> will be deleted.").ariaLabel("delete OpenchannelQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedOpenchannelQueues.forEach(function(e){y(e)}),f.selectedOpenchannelQueues=[]})},f.deselectOpenchannelQueues=function(){f.selectedOpenchannelQueues=[]},f.selectAllOpenchannelQueues=function(){f.selectedOpenchannelQueues=f.openchannelQueues.rows};var b=!0,A=1;function E(e){f.openchannelQueues=e||{count:0,rows:[]}}function y(e){m.openchannelQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.openchannelQueues.rows,{id:e.id}),f.openchannelQueues.count-=1,f.openchannelQueues.rows.length||f.getOpenchannelQueues(),p.success({title:_.startCase("OpenchannelQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEopenchannelQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEopenchannelQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getOpenchannelQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","openchannelQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.openchannel").controller("OpenchannelQueuesController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c,m){var u=this,p=["loggedIn","available","waiting","paused"],g=n(function(){},999);u.currentUser=c.getCurrentUser(),u.queues=s,u.userProfileSection=d&&1==d.count?d.rows[0]:null,u.crudPermissions=c.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.query={id:c.isUser()?u.currentUser.id:void 0,section:c.isUser()?"OpenchannelQueues":void 0,channel:"openchannel",sort:"name",limit:10,page:1},u.getQueues=function(){u.query.offset=(u.query.page-1)*u.query.limit,o.realtime.getQueues(u.query).$promise.then(function(e){u.queues=e}).catch(function(e){l.error({title:i.instant("OPENCHANNEL.OPENCHANNELQUEUES"),msg:e.status?JSON.stringify(e.data):e.toString()})})},u.editQueue=function(e,n){t.show({controller:"CreateOrEditOpenchannelQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelQueue:n,openchannelQueues:u.queues.rows,license:null,setting:null,crudPermissions:u.crudPermissions}})},u.addAgent=function(e,n){t.show({controller:"OpenchannelQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/openchannel/views/openchannelQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{openchannelQueue:n,openchannelQueues:u.queues.rows,realtime:!1,crudPermissions:u.crudPermissions}})},r.on("openchannel_queue:save",function(e){var n=_.find(u.queues.rows,["id",e.id]);n&&_.merge(n,_.pick(e,p))}),r.on("userOpenchannelQueue:save",function(e){var n=_.find(u.queues.rows,["id",e.OpenchannelQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),r.on("userOpenchannelQueue:remove",function(e){var n=_.find(u.queues.rows,["id",e.OpenchannelQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),r.on("user:update",function(t){u.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&m.updateQueue(t,e,n,"openchannel")})}),e.$on("$destroy",function(){r.removeAllListeners("openchannel_queue:save"),r.removeAllListeners("userOpenchannelQueue:remove"),r.removeAllListeners("userOpenchannelQueue:save"),r.removeAllListeners("user:update"),g&&n.cancel(g)})}e.$inject=["$scope","$mdDialog","$document","$interval","$translate","queues","api","socket","toasty","userProfileSection","Auth","realtimeManager"],angular.module("app.openchannel").controller("QueuesOpenchannelRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){return{status:{registered:"green-300-fg icon-checkbox-marked-circle",unregistered:"red-300-fg icon-close-circle",lagged:"red-300-fg icon-close-circle",reachable:"green-300-fg icon-checkbox-marked-circle",unreachable:"red-300-fg icon-close-circle",unknown:"grey-fg icon-minus-circle"},state:{unknown:"grey-fg icon-phone-hangup",not_inuse:"green-300-fg icon-phone-hangup",inuse:"red-300-fg icon-phone-in-talk",busy:"red-300-fg icon-phone-locked",invalid:"grey-fg icon-phone-hangup",unavailable:"grey-fg icon-phone-hangup",ringing:"blue-300-fg icon-phone-incoming",ringinuse:"blue-300-fg icon-phone-incoming",onhold:"blue-300-fg icon-phone-paused"},channelStatus:{ring:"blue-300-fg icon-phone-incoming",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"},channelStatusOut:{ring:"blue-300-fg icon-phone-outgoing",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"}}})}(),function(){"use strict";function e(e,t,n){switch(this.selectedTab=0,t.current.name){case"app.openchannel.realtime.agents":this.selectedTab=0;break;case"app.openchannel.realtime.queues":this.selectedTab=1;break;default:this.selectedTab=0,t.go("app.openchannel.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.openchannel.realtime.agents");break;case 1:t.go("app.openchannel.realtime.queues");break;default:t.go("app.openchannel.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.openchannel").controller("OpenchannelRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this;o.currentUser=s.getCurrentUser(),o.plugin={},o.getTrustedURL=function(){return t.trustAsResourceUrl(o.plugin.adminUrl)},a.plugin.get({id:e.params.id}).$promise.then(function(e){if(e)return o.plugin=e,a.plugin.get({id:o.plugin.id}).$promise}).catch(function(e){o.plugin=void 0})}e.$inject=["$state","$scope","$sce","api","socket","Auth"],angular.module("app.plugins.plugin").controller("PluginController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g){var v=this,h=t(function(){},999);function f(){v.agents.rows.forEach(function(e){g.setAgentStatusDisplayValue(e)})}function b(){v.query.offset=(v.query.page-1)*v.query.limit,v.promise=l.realtime.getAgents(v.query).$promise.then(function(e){v.agents=e,f()}).catch(function(e){c.error({title:s.instant("VOICE.AGENTS"),msg:e.status?JSON.stringify(e.data):e.toString()})})}function A(e){_.remove(v.agents.rows,["id",e.id])}v.currentUser=u.getCurrentUser(),v.channel=n.params.channel,v.queueType=n.params.direction,v.agents=o,v.pauses=r||{count:0,rows:[]},v.license=p,v.userProfileSection=m&&1==m.count?m.rows[0]:null,v.crudPermissions=u.parseCrudPermissions(v.userProfileSection?v.userProfileSection.crudPermissions:null),v.query={limit:10,page:1,order:"fullname",globalStatusFilter:"",pauseTypeFilter:""},v.getAgents=b,v.logout=function(e){return l.user.logout({id:e.id,device:"realtime",agent_id:e.id,agent_name:e.name}).$promise.then(function(){A(e),c.success({title:"Agent logout",msg:e.fullname+" properly logout"})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:s.instant("VOICE.LOGOUT"),msg:e.data?JSON.stringify(e.data.message):e.toString()})})},v.addQueue=function(e,n){a.show({controller:"AgentQueueAddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,channel:v.channel,direction:v.queueType,crudPermissions:v.crudPermissions}})},v.pause=function(e,n){return l.user.pause({id:e.id,type:n}).$promise.catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:s.instant("VOICE.PAUSE"),msg:e.data?JSON.stringify(e.data.message):e.toString()})})},v.unpause=function(e){return l.user.unpause({id:e.id}).$promise.catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:s.instant("VOICE.UNPAUSE"),msg:e.data?JSON.stringify(e.data.message):e.toString()})})},v.manageScreenRecording=function(e,n){return l.user.update({id:e.id},{screenrecording:n}).$promise.catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:s.instant("VOICE.SCREENRECORDING"),msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.on("user:save",function(e){var n=_.find(v.agents.rows,["id",e.id]);n&&(_.merge(n,e),n.globalStatus=g.getAgentStatus(n),g.setAgentStatusDisplayValue(n))}),d.on("user:update",function(e){var n=_.find(v.agents.rows,["id",e.id]);if(n){if(!1===e.online)return A(n);_.merge(n,e),n.globalStatus=g.getAgentStatus(n),g.setAgentStatusDisplayValue(n)}else e.online&&b()}),d.on("user:agentconnect",function(e){var n=_.find(v.agents.rows,["id",e.id]);if(n){if(!e.agentconnected)return;_.merge(n,_.pick(e,["queue","destconnectedlinenum","routealias"]))}}),d.on("user:agentcomplete",function(e){if("ATTENDED"===e.transfer)return;var n=_.find(v.agents.rows,["id",e.id]);n&&(delete n.queue,delete n.destconnectedlinenum,delete n.routealias)}),f(),e.$on("$destroy",function(){d.removeAllListeners("user:save"),d.removeAllListeners("user:update"),d.removeAllListeners("user:agentconnect"),d.removeAllListeners("user:agentcomplete"),h&&t.cancel(h)})}e.$inject=["$scope","$state","$interval","$mdDialog","$document","$translate","agents","pauses","api","socket","toasty","userProfileSection","Auth","license","realtimeManager"],angular.module("app.realtime").controller("AgentsRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g){var v=this;v.license=p,v.setting=g,v.currentUser=u.getCurrentUser(),v.cloudProviders=l||{count:0,rows:[]},v.table="cloudProviders",v.listOrder="",v.listOrderAsc=null,v.selectedAiTools=[],v.query={fields:"createdAt,updatedAt,id,name,service,data2,data1",sort:"-updatedAt",limit:10,page:1},v.arrayservice=_.keyBy([{option:"AmazonAWS",value:"'AmazonAWS'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editdialog=function(e,n){i.show({controller:"CreateOrEditCloudProviderDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/cloudProviders/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{cloudProvider:e,cloudProviders:v.cloudProviders.rows,license:v.license,setting:null,crudPermissions:v.crudPermissions}})},v.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("cloudProvider")+"?").htmlContent("<b>"+(e.name||"cloudProvider")+"</b> will be deleted.").ariaLabel("delete cloudProvider").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){A(e)},function(){console.log("CANCEL")})},v.success=b,v.getAiTools=function(){v.query.offset=(v.query.page-1)*v.query.limit,u.hasRole("admin")?v.promise=d.cloudProvider.get(v.query,b).$promise:(v.query.id=v.userProfile.id,v.query.section="AiTools",v.promise=d.userProfile.getResources(v.query,b).$promise)},v.createOrEditCloudProvider=function(e,n){i.show({controller:"CreateOrEditCloudProviderDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/cloudProviders/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{cloudProvider:n,cloudProviders:v.cloudProviders.rows,license:v.license,setting:v.setting,crudPermissions:v.crudPermissions}})},v.deleteCloudProvider=A,v.exportSelectedAiTools=function(){var e=angular.copy(v.selectedAiTools);return v.selectedAiTools=[],e},v.deleteSelectedAiTools=function(e){var n=i.confirm().title("Are you sure want to delete the selected cloudProviders?").htmlContent("<b>"+v.selectedAiTools.length+" selected</b> will be deleted.").ariaLabel("delete CloudProviders").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){v.selectedAiTools.forEach(function(e){A(e)}),v.selectedAiTools=[]})},v.deselectAiTools=function(){v.selectedAiTools=[]},v.selectAllAiTools=function(){v.selectedAiTools=v.cloudProviders.rows};var h=!0,f=1;function b(e){v.cloudProviders=e||{count:0,rows:[]}}function A(e){d.cloudProvider.delete({id:e.id}).$promise.then(function(){_.remove(v.cloudProviders.rows,{id:e.id}),v.cloudProviders.count-=1,v.cloudProviders.rows.length||v.getAiTools(),m.success({title:_.startCase("CloudProvider")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcloudProvider"}];for(var n=0;n<e.data.errors.length;n++)m.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEcloudProvider",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){h?o(function(){h=!1}):(n||(f=v.query.page),e!==n&&(v.query.page=1),e||(v.query.page=f),v.getAiTools())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","cloudProviders","api","msUtils","toasty","Auth","license","setting"],angular.module("app.settings").controller("CloudProvidersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(e){a.hide(e)}p.currentUser=c.getCurrentUser(),p.errors=[],p.setting=u,p.license=m,p.hasModulePermissions={},p.passwordPattern=p.setting&&p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.title="SETTINGS.EDIT_CLOUDPROVIDER",p.cloudProvider=angular.copy(l),p.cloudProviders=r,p.newCloudProvider=!1,p.cloudProvider||(p.cloudProvider={},p.title="SETTINGS.NEW_CLOUDPROVIDER",p.newCloudProvider=!0),p.addNewCloudProvider=function(){p.errors=[],d.cloudProvider.save(p.cloudProvider).$promise.then(function(e){p.cloudProviders.unshift(e.toJSON()),o.success({title:"CloudProvider properly created",msg:p.cloudProvider.name?p.cloudProvider.name+" has been created!":""}),g(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cloudProvider.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cloudProvider.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.saveCloudProvider=function(){p.errors=[],d.cloudProvider.update({id:p.cloudProvider.id},p.cloudProvider).$promise.then(function(e){var n=_.find(p.cloudProviders,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"CloudProvider properly saved!",msg:p.cloudProvider.name?p.cloudProvider.name+" has been saved!":""}),g(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cloudProvider.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cloudProvider.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.deleteCloudProvider=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The cloudProvider will be deleted.").ariaLabel("Delete CloudProvider").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cloudProvider.delete({id:p.cloudProvider.id}).$promise.then(function(){_.remove(p.cloudProviders,{id:p.cloudProvider.id}),o.success({title:"CloudProvider properly deleted!",msg:(p.cloudProvider.name||"cloudProvider")+" has been deleted!"}),g(p.cloudProvider)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.cloudProvider.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cloudProvider.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},p.getDateFromString=function(e){return null===e?void 0:new Date(e)},p.closeDialog=g}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","cloudProviders","cloudProvider","api","Auth","license","setting"],angular.module("app.settings").controller("CreateOrEditCloudProviderDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="SETTINGS.EDIT_CUSTOMIZATION",g.customization=angular.copy(l),g.customizations=r,g.newCustomization=!1,g.customization||(g.customization={},g.title="SETTINGS.NEW_CUSTOMIZATION",g.newCustomization=!0),g.addNewCustomization=function(){g.errors=[],d.setting.save(g.customization).$promise.then(function(e){g.customizations.unshift(e.toJSON()),o.success({title:"Customization properly created",msg:g.customization.name?g.customization.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.setting.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveCustomization=function(){g.errors=[],d.setting.update({id:g.customization.id},g.customization).$promise.then(function(e){var n=_.find(g.customizations,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Customization properly saved!",msg:g.customization.name?g.customization.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.setting.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteCustomization=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The customization will be deleted.").ariaLabel("Delete Customization").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.setting.delete({id:g.customization.id}).$promise.then(function(){_.remove(g.customizations,{id:g.customization.id}),o.success({title:"Customization properly deleted!",msg:(g.customization.name||"customization")+" has been deleted!"}),v(g.customization)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.setting.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","customizations","customization","api","Auth","license","setting","crudPermissions"],angular.module("app.settings").controller("CreateOrEditCustomizationDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;s.currentUser=i.getCurrentUser(),s.license=a,s.customizations=e,s.customization={},s.customizations&&s.customizations.rows&&s.customizations.rows.length&&(s.customization=s.customizations.rows[0]),s.saveCustomization=function(){s.customization.id?n.setting.update({id:s.customization.id},s.customization).$promise.then(function(){t.success({title:"Customization updated!",msg:s.customization.name?s.customization.name+" has been updated!":""})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsetting",msg:e.data?JSON.stringify(e.data):e.toString()})}):n.setting.save(s.customization).$promise.then(function(e){_.merge(s.customization,e),t.success({title:"Customization updated!",msg:s.customization.name?s.customization.name+" has been updated!":""})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsetting",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["customizations","api","toasty","license","Auth"],angular.module("app.settings").controller("CustomizationsController",e)}(),function(){"use strict";function e(e,a){var i=this;i.customization={},i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg","ico"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.customization.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.customization.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e){i.customization=angular.copy(e),i.ngFlowOptions.target="/api/settings/1/favicon".replace(":id",i.customization.id),i.customization.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.settings").controller("CustomizationfaviconController",e)}(),function(){"use strict";function e(e,a){var i=this;i.customization={},i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.customization.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.customization.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e){i.customization=angular.copy(e),i.ngFlowOptions.target="/api/settings/1/logo".replace(":id",i.customization.id),i.customization.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.settings").controller("CustomizationlogoController",e)}(),function(){"use strict";function e(e,a){var i=this;i.customization={},i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.customization.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.customization.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e){i.customization=angular.copy(e),i.ngFlowOptions.target="/api/settings/1/logo_login".replace(":id",i.customization.id),i.customization.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.settings").controller("CustomizationlogologinController",e)}(),function(){"use strict";function e(e,a){var i=this;i.customization={},i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.customization.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.customization.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e){i.customization=angular.copy(e),i.ngFlowOptions.target="/api/settings/1/preferred".replace(":id",i.customization.id),i.customization.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.settings").controller("CustomizationpreferredController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="SETTINGS.EDIT_GENERAL",g.general=angular.copy(l),g.generals=r,g.newGeneral=!1,g.general||(g.general={min_internal:1e3,chatTimeout:30,phoneBarAutoUpdater:!0,phoneBarAutoUpdaterUrl:"https://www.xcally.com/bar/phonebar/autoupdater.xml",splitSizeCsv:5e3,splitSizePdf:1e3,splitSizeXlsx:5e3,messagesAlignment:"alternate",phoneBarRememberMeEnabled:!0,allowedLoginAttempts:5,blockDuration:10,loginMailFrequency:10,enforcePasswordHistory:!0,passwordHistoryLimit:3},g.title="SETTINGS.NEW_GENERAL",g.newGeneral=!0),g.addNewGeneral=function(){g.errors=[],d.setting.save(g.general).$promise.then(function(e){g.generals.unshift(e.toJSON()),o.success({title:"General properly created",msg:g.general.name?g.general.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.setting.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveGeneral=function(){g.errors=[],d.setting.update({id:g.general.id},g.general).$promise.then(function(e){var n=_.find(g.generals,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"General properly saved!",msg:g.general.name?g.general.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.setting.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteGeneral=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The general will be deleted.").ariaLabel("Delete General").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.setting.delete({id:g.general.id}).$promise.then(function(){_.remove(g.generals,{id:g.general.id}),o.success({title:"General properly deleted!",msg:(g.general.name||"general")+" has been deleted!"}),v(g.general)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.setting.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.setting.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,d.cloudProvider.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){g.cloudProviders=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CLOUDPROVIDERS",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","generals","general","api","Auth","license","setting","crudPermissions"],angular.module("app.settings").controller("CreateOrEditGeneralDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;s.currentUser=i.getCurrentUser(),s.license=a,s.generals=e,s.general={},s.generals&&s.generals.rows&&s.generals.rows.length&&(s.general=s.generals.rows[0]),_.isNil(s.general.privacyPolicyEmail)||(s.general.enablePrivacyPolicyEmail=!0),_.isNil(s.general.privacyPolicyName)||(s.general.enablePrivacyPolicyName=!0),_.isNil(s.general.privacyPolicyNumber)||(s.general.enablePrivacyPolicyNumber=!0),n.cloudProvider.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){s.cloudProviders=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CLOUDPROVIDERS",msg:e.data?JSON.stringify(e.data):e.toString()})}),s.saveGeneral=function(){s.general.enablePrivacyPolicyEmail||(s.general.privacyPolicyEmail=null),s.general.enablePrivacyPolicyNumber||(s.general.privacyPolicyNumber=null),s.general.enablePrivacyPolicyName||(s.general.privacyPolicyName=null),s.general.id?n.setting.update({id:s.general.id},s.general).$promise.then(function(){t.success({title:"General updated!",msg:s.general.name?s.general.name+" has been updated!":""})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsetting",msg:e.data?JSON.stringify(e.data):e.toString()})}):n.setting.save(s.general).$promise.then(function(e){_.merge(s.general,e),t.success({title:"General updated!",msg:s.general.name?s.general.name+" has been updated!":""})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsetting",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.onPrivacyPolicyChange=function(e){switch(e){case"email":s.general.enablePrivacyPolicyEmail&&!s.general.privacyPolicyEmail&&(s.general.privacyPolicyEmail=0);break;case"name":s.general.enablePrivacyPolicyName&&!s.general.privacyPolicyName&&(s.general.privacyPolicyName=0);break;case"number":s.general.enablePrivacyPolicyNumber&&!s.general.privacyPolicyNumber&&(s.general.privacyPolicyNumber=0)}}}e.$inject=["generals","api","toasty","license","Auth"],angular.module("app.settings").controller("GeneralsController",e)}(),function(){"use strict";function e(n,t,a,i,e,s){var o=this;o.license=i||{},o.agents=0,o.users=0,o.telephones=0,o.channels=[{name:"voice",icon:"icon-phone"},{name:"chat",icon:"icon-hangouts"},{name:"mail",icon:"icon-email"},{name:"messaging",icon:"icon-message-text"},{name:"fax",icon:"icon-deskphone"},{name:"openchannel",icon:"icon-google-earth"},{name:"whatsapp",icon:"icon-whatsapp"}],o.modules=[{name:"cm",icon:"icon-account-circle"},{name:"dialer",icon:"icon-crosshairs"},{name:"jscripty",icon:"icon-console"}],o.addons=[{name:"webrtc",icon:"icon-server-plus"},{name:"jaws",icon:"icon-fish"},{name:"custom",icon:"icon-table-edit"},{name:"screenrecording",icon:"icon-video"},{name:"ai",icon:"icon-text-to-speech"}],o.sessions=[{name:"callysquare",icon:"icon-sitemap",restart:!0,label:"channels",enabled:"voice"},{name:"virtual",icon:"icon-dots-horizontal",restart:!1,label:"sessions",enabled:"chat"}],o.others=[{name:"update",icon:"icon-cloud-download"}],o.requestLicense=function(e){t.show({controller:"RequestLicenseDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/license/request/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{license:i,channels:o.channels,modules:o.modules,addons:o.addons,sessions:o.sessions,others:o.others}})},o.updateLicense=function(e){t.show({controller:"UpdateLicenseDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/license/update/dialog.html",parent:angular.element(n.body),targetEvent:e,clickOutsideToClose:!0,locals:{license:i}})},o.gotoProcess=function(e){a.go("app.settings.system",{tab:1})},s.user.get({fields:"id",role:"agent",online:!0}).$promise.then(function(e){return o.agents=e&&e.count?e.count:0,s.user.get({fields:"id",role:"user,admin"}).$promise}).then(function(e){return o.users=e&&e.count?e.count:0,s.user.get({fields:"id",role:"telephone"}).$promise}).then(function(e){o.telephones=e&&e.count?e.count:0}).catch(function(e){console.log(e)})}e.$inject=["$document","$mdDialog","$state","license","toasty","api"],angular.module("app.settings.license").controller("LicenseController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(){e.hide()}m.errors=[],m.user=d.getCurrentUser(),m.license=angular.copy(t),m.channels=a,m.modules=i,m.addons=s,m.sessions=o,m.others=r,m.license.name=m.user.fullname,m.license.email=m.user.email,m.sendRequest=function(){for(var e in m.errors=[],m.table="||FIELD||OLD||NEW||\n",m.license)m.license.hasOwnProperty(e)&&!_.includes(["$promise","$resolved"],e)&&(t[e]===m.license[e]?m.table+="|"+e+"|"+(void 0!==t[e]?t[e]:"")+"|"+m.license[e]+"|\n":m.table+="|"+e+"|{color:red}"+(void 0!==t[e]?t[e]:"")+"{color}|*"+m.license[e]+"*|\n");l.jira.save({key:"MOTLICENSE",summary:"Motion License Request",description:m.table,issuetype:"License Request"}).$promise.then(function(e){n.success({title:"Request sent!",msg:c.instant("SETTINGS.LICENSE_REQUEST_SENT"),timeout:15e3}),u()}).catch(function(e){console.error(e),m.errors=[{message:c.instant("SETTINGS.JIRA_ERROR_MESSAGE"),type:"api.jira"}]})},m.closeDialog=u}e.$inject=["$mdDialog","toasty","license","channels","modules","addons","sessions","others","api","Auth","$translate"],angular.module("app.settings.license").controller("RequestLicenseDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;s.errors=[],s.license=angular.copy(t),s.licenseKey,s.updateLicense=function(){return a.license.update({id:1,key:s.licenseKey}).$promise.then(function(e){e&&(e.demo?n.error({title:"License update failed!",msg:"Invalid license key"}):n.success({title:"License properly updated!",msg:"The license has been updated!"}))}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UPDATElicense",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","toasty","license","api","$translate"],angular.module("app.settings.license").controller("UpdateLicenseDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;function g(e){a.hide(e)}p.currentUser=c.getCurrentUser(),p.errors=[],p.setting=u,p.license=m,p.hasModulePermissions={},p.passwordPattern=p.setting&&p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.title="SETTINGS.EDIT_NETWORK",p.network=angular.copy(l),p.networks=r,p.newNetwork=!1,p.network||(p.network={type:"localnet"},p.title="SETTINGS.NEW_NETWORK",p.newNetwork=!0),p.addNewNetwork=function(){p.errors=[],d.network.save(p.network).$promise.then(function(e){p.networks.unshift(e.toJSON()),o.success({title:"Network properly created",msg:p.network.name?p.network.name+" has been created!":""}),g(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.network.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.network.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.saveNetwork=function(){p.errors=[],d.network.update({id:p.network.id},p.network).$promise.then(function(e){var n=_.find(p.networks,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Network properly saved!",msg:p.network.name?p.network.name+" has been saved!":""}),g(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.network.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.network.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.deleteNetwork=function(e){p.errors=[];var n=a.confirm().title("Are you sure?").content("The network will be deleted.").ariaLabel("Delete Network").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.network.delete({id:p.network.id}).$promise.then(function(){_.remove(p.networks,{id:p.network.id}),o.success({title:"Network properly deleted!",msg:(p.network.name||"network")+" has been deleted!"}),g(p.network)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.network.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.network.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},p.getDateFromString=function(e){return null===e?void 0:new Date(e)},p.closeDialog=g}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","networks","network","api","Auth","license","setting"],angular.module("app.settings").controller("CreateOrEditNetworkDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g){var v=this;v.license=p,v.setting=g,v.currentUser=u.getCurrentUser(),v.networks=l||{count:0,rows:[]},v.table="networks",v.listOrder="",v.listOrderAsc=null,v.selectedNetworks=[],v.query={fields:"createdAt,updatedAt,id,type,value,username,password",sort:"-updatedAt",limit:10,page:1},v.arraytype=_.keyBy([{option:"LocalNET",value:"'localnet'"},{option:"ExternIP",value:"'externip'"},{option:"Turn",value:"'turn'"},{option:"Stun",value:"'stun'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),v.editdialog=function(e,n){i.show({controller:"CreateOrEditNetworkDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/networks/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{network:e,networks:v.networks.rows,license:v.license,setting:null,crudPermissions:v.crudPermissions}})},v.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("network")+"?").htmlContent("<b>"+(e.name||"network")+"</b> will be deleted.").ariaLabel("delete network").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){A(e)},function(){console.log("CANCEL")})},v.success=b,v.getNetworks=function(){v.query.offset=(v.query.page-1)*v.query.limit,u.hasRole("admin")?v.promise=d.network.get(v.query,b).$promise:(v.query.id=v.userProfile.id,v.query.section="Networks",v.promise=d.userProfile.getResources(v.query,b).$promise)},v.createOrEditNetwork=function(e,n){i.show({controller:"CreateOrEditNetworkDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/networks/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{network:n,networks:v.networks.rows,license:v.license,setting:v.setting,crudPermissions:v.crudPermissions}})},v.deleteNetwork=A,v.exportSelectedNetworks=function(){var e=angular.copy(v.selectedNetworks);return v.selectedNetworks=[],e},v.deleteSelectedNetworks=function(e){var n=i.confirm().title("Are you sure want to delete the selected networks?").htmlContent("<b>"+v.selectedNetworks.length+" selected</b> will be deleted.").ariaLabel("delete Networks").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){v.selectedNetworks.forEach(function(e){A(e)}),v.selectedNetworks=[]})},v.deselectNetworks=function(){v.selectedNetworks=[]},v.selectAllNetworks=function(){v.selectedNetworks=v.networks.rows};var h=!0,f=1;function b(e){v.networks=e||{count:0,rows:[]}}function A(e){d.network.delete({id:e.id}).$promise.then(function(){_.remove(v.networks.rows,{id:e.id}),v.networks.count-=1,v.networks.rows.length||v.getNetworks(),m.success({title:_.startCase("Network")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){v.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEnetwork"}];for(var n=0;n<e.data.errors.length;n++)m.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else m.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEnetwork",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){h?o(function(){h=!1}):(n||(f=v.query.page),e!==n&&(v.query.page=1),e||(v.query.page=f),v.getNetworks())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","networks","api","msUtils","toasty","Auth","license","setting"],angular.module("app.settings").controller("NetworksController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="SETTINGS.EDIT_SMTP",g.smtp=angular.copy(l),g.smtps=r,g.newSmtp=!1,g.smtp||(g.smtp={service:!0},g.title="SETTINGS.NEW_SMTP",g.newSmtp=!0),g.addNewSmtp=function(){g.errors=[],d.mailAccount.save(g.smtp).$promise.then(function(e){g.smtps.unshift(e.toJSON()),o.success({title:"Smtp properly created",msg:g.smtp.name?g.smtp.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSmtp=function(){g.errors=[],d.mailAccount.update({id:g.smtp.id},g.smtp).$promise.then(function(e){var n=_.find(g.smtps,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Smtp properly saved!",msg:g.smtp.name?g.smtp.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSmtp=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The smtp will be deleted.").ariaLabel("Delete Smtp").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.mailAccount.delete({id:g.smtp.id}).$promise.then(function(){_.remove(g.smtps,{id:g.smtp.id}),o.success({title:"Smtp properly deleted!",msg:(g.smtp.name||"smtp")+" has been deleted!"}),v(g.smtp)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.mailAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.mailAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","smtps","smtp","api","Auth","license","setting","crudPermissions"],angular.module("app.settings").controller("CreateOrEditSmtpDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;s.currentUser=i.getCurrentUser(),s.license=a,s.smtps=e,s.smtp={},s.smtps&&s.smtps.rows&&s.smtps.rows.length?s.smtp=s.smtps.rows[0]:s.smtp={service:!0,Smtp:{service:null}},s.saveSmtp=function(){s.smtp.id?n.mailAccount.update({id:s.smtp.id},s.smtp).$promise.then(function(){t.success({title:"Smtp updated!",msg:s.smtp.name?s.smtp.name+" has been updated!":""})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data):e.toString()})}):n.mailAccount.save(s.smtp).$promise.then(function(e){_.merge(s.smtp,e),t.success({title:"Smtp updated!",msg:s.smtp.name?s.smtp.name+" has been updated!":""})}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},s.verifySmtp=function(){s.smtp.id&&n.mailAccount.verifySmtp({id:s.smtp.id}).$promise.then(function(){t.success({title:"Smtp verified!",msg:s.smtp.name?s.smtp.name+" has been verified!":""})}).catch(function(e){t.error({title:"Smtp not verified! Remember to save before to verify!",msg:e.data?JSON.stringify(e.data):e.toString(),timeout:1e4})})}}e.$inject=["smtps","api","toasty","license","Auth"],angular.module("app.settings").controller("SmtpController",e)}(),function(){"use strict";function e(e,i,s,n,t,a,o,r){var l,d=this;d.system=t||{},d.processes=a?a.rows:[],d.processLimit=7,d.selectedTab=n.params.tab||0,d.getInfo=function(){return r.system.get().$promise.then(function(e){_.merge(d.system,e)}).catch(d.cancelInterval)},d.getProcesses=function(){return r.pm2.get().$promise.then(function(e){_.merge(d.processes,e?e.rows:[])}).catch(d.cancelInterval)},d.cancelInterval=function(e){i.cancel(l)},d.updateProcess=function(e,n,t){var a=s.confirm().title("Would you like to change the status of the process #"+n+"?").textContent("The status will be changed to: "+t.toUpperCase()).ariaLabel("Lucky day").targetEvent(e).ok("Ok").cancel("Cancel");s.show(a).then(function(){return r.pm2.update({id:n,status:t})}).then(function(){i(d.getProcesses,1e3,1)}).then(function(){o.success({title:"Process updated!",msg:"Status properly changed to: "+t})})},l=i(d.getInfo,5e3),e.$on("$destroy",function(){d.cancelInterval()})}e.$inject=["$scope","$interval","$mdDialog","$state","system","processes","toasty","api"],angular.module("app.settings.system").controller("SystemController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;s.title="SETTINGS.UPDATE",s.progress=0,s.updating=!0,s.output="Waiting...",s.success=!0,s.interval=n(function(){s.progress<90&&(s.progress+=1)},1e3),s.closeDialog=function(){e.hide()},s.reload=function(){t.location.reload()},s.stopInterval=function(){angular.isDefined(s.interval)&&(n.cancel(s.interval),s.interval=void 0);s.progress=100,s.updating=!1},i.version.fetch().$promise.then(function(e){return s.output=e.output+"...",i.version.reset().$promise}).then(function(e){return s.output=e.output+"...",i.version.pull().$promise}).then(function(e){return s.output=e.output+"...",i.version.migrations().$promise}).then(function(e){return s.output=e.output+"...",i.version.restart().$promise}).then(function(e){s.output="Waiting to restart motion...",a(function(){s.stopInterval()},3e4)}).catch(function(e){s.success=!1,s.stopInterval(),s.output=JSON.stringify(e)})}e.$inject=["$mdDialog","$interval","$window","$timeout","api"],angular.module("app.settings").controller("UpdateDialogController",e)}(),function(){"use strict";function e(t,e,a,n,i){this.version=n||{},this.updateConfirm=function(e){var n=t.confirm().title("Would you like to update your system?").htmlContent('The system request time for the update should be below 1 minute.<br><br>Do you agree the terms of this <a href="http://www.xcally.com/support/eula-xcally-license-en.pdf" target="_blank">End User License Agreement<a>?').ariaLabel("").targetEvent(e).clickOutsideToClose(!0).parent(angular.element(a.body)).ok("I agree").cancel("Disagree");t.show(n).then(function(){t.show({controller:"UpdateDialogController",controllerAs:"vm",templateUrl:"app/main/apps/settings/views/updates/update/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!1})})}}e.$inject=["$mdDialog","$interval","$document","version","toasty"],angular.module("app.settings").controller("UpdatesController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c,m){var u=this,p=["loggedIn","available","waiting","paused"],g=n(function(){},999);u.currentUser=c.getCurrentUser(),u.queues=s,u.userProfileSection=d&&1==d.count?d.rows[0]:null,u.crudPermissions=c.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.query={id:c.isUser()?u.currentUser.id:void 0,section:c.isUser()?"SmsQueues":void 0,channel:"sms",sort:"name",limit:10,page:1},u.getQueues=function(){u.query.offset=(u.query.page-1)*u.query.limit,o.realtime.getQueues(u.query).$promise.then(function(e){u.queues=e}).catch(function(e){l.error({title:i.instant("SMS.SMSQUEUES"),msg:e.status?JSON.stringify(e.data):e.toString()})})},u.editQueue=function(e,n){t.show({controller:"CreateOrEditSmsQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsQueue:n,smsQueues:u.queues.rows,license:null,setting:null,crudPermissions:u.crudPermissions}})},u.addAgent=function(e,n){t.show({controller:"SmsQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsQueue:n,smsQueues:u.queues.rows,realtime:!1,crudPermissions:u.crudPermissions}})},r.on("sms_queue:save",function(e){var n=_.find(u.queues.rows,["id",e.id]);n&&_.merge(n,_.pick(e,p))}),r.on("userSmsQueue:save",function(e){var n=_.find(u.queues.rows,["id",e.SmsQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),r.on("userSmsQueue:remove",function(e){var n=_.find(u.queues.rows,["id",e.SmsQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),r.on("user:update",function(t){u.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&m.updateQueue(t,e,n,"sms")})}),e.$on("$destroy",function(){r.removeAllListeners("sms_queue:save"),r.removeAllListeners("userSmsQueue:remove"),r.removeAllListeners("userSmsQueue:save"),r.removeAllListeners("user:update"),g&&n.cancel(g)})}e.$inject=["$scope","$mdDialog","$document","$interval","$translate","queues","api","socket","toasty","userProfileSection","Auth","realtimeManager"],angular.module("app.sms").controller("QueuesSmsRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){return{status:{registered:"green-300-fg icon-checkbox-marked-circle",unregistered:"red-300-fg icon-close-circle",lagged:"red-300-fg icon-close-circle",reachable:"green-300-fg icon-checkbox-marked-circle",unreachable:"red-300-fg icon-close-circle",unknown:"grey-fg icon-minus-circle"},state:{unknown:"grey-fg icon-phone-hangup",not_inuse:"green-300-fg icon-phone-hangup",inuse:"red-300-fg icon-phone-in-talk",busy:"red-300-fg icon-phone-locked",invalid:"grey-fg icon-phone-hangup",unavailable:"grey-fg icon-phone-hangup",ringing:"blue-300-fg icon-phone-incoming",ringinuse:"blue-300-fg icon-phone-incoming",onhold:"blue-300-fg icon-phone-paused"},channelStatus:{ring:"blue-300-fg icon-phone-incoming",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"},channelStatusOut:{ring:"blue-300-fg icon-phone-outgoing",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"}}})}(),function(){"use strict";function e(e,t,n){switch(this.selectedTab=0,t.current.name){case"app.sms.realtime.agents":this.selectedTab=0;break;case"app.sms.realtime.queues":this.selectedTab=1;break;default:this.selectedTab=0,t.go("app.sms.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.sms.realtime.agents");break;case 1:t.go("app.sms.realtime.queues");break;default:t.go("app.sms.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.sms").controller("SmsRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="SMS.EDIT_SMSACCOUNT",g.smsAccount=angular.copy(l),g.smsAccounts=r,g.newSmsAccount=!1,g.smsAccount||(g.smsAccount={remote:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():""),type:"twilio",waitForTheAssignedAgent:10,notificationSound:!0,queueTransferTimeout:300,agentTransferTimeout:300},g.title="SMS.NEW_SMSACCOUNT",g.newSmsAccount=!0),n.params.id&&(g.smsAccount.SmsAccountId=n.params.id),g.addNewSmsAccount=function(){g.errors=[],d.smsAccount.save(g.smsAccount).$promise.then(function(e){g.smsAccounts.unshift(e.toJSON()),o.success({title:"SmsAccount properly created",msg:g.smsAccount.name?g.smsAccount.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.smsAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSmsAccount=function(){g.errors=[],d.smsAccount.update({id:g.smsAccount.id},g.smsAccount).$promise.then(function(e){var n=_.find(g.smsAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"SmsAccount properly saved!",msg:g.smsAccount.name?g.smsAccount.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.smsAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSmsAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The smsAccount will be deleted.").ariaLabel("Delete SmsAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.smsAccount.delete({id:g.smsAccount.id}).$promise.then(function(){_.remove(g.smsAccounts,{id:g.smsAccount.id}),o.success({title:"SmsAccount properly deleted!",msg:(g.smsAccount.name||"smsAccount")+" has been deleted!"}),v(g.smsAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.smsAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.lists,{id:e.resourceId})}),t=null;if(g.smsAccount&&(t=_.find(g.lists,{id:Number(g.smsAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.lists,{id:t.id});a.canSelect=!1,n.push(a)}g.lists=n})}else{var t=[],a=null;g.smsAccount&&(a=_.find(g.lists,{id:Number(g.smsAccount.ListId)}));for(var i=0;i<g.lists.length;i++)a&&g.lists[i].id===a.id&&(g.lists[i].canSelect=!1,t.push(g.lists[i]));g.lists=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","smsAccounts","smsAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.sms").controller("CreateOrEditSmsAccountDialogController",e)}(),function(){"use strict";function e(o,i,a,s,e){var r=this;function n(e,n){if(r.smsAccountApps.rows.length){var t=r.smsAccountApps.rows[n]?r.smsAccountApps.rows[n]:r.smsAccountApps.rows[0];i.show({controller:"EditSmsAccountApp"+(t.appType||t.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/apps/"+(t.appType||t.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsAccountApp:t,smsAccount:r.smsAccount,crudPermissions:r.crudPermissions}}).then(function(e){e&&(e.id?r.smsAccountApps.rows[n]=e:r.smsAccountApps.rows.splice(n,0,e),l())}).catch(function(e){e&&s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function l(){for(var e=1,n=[],t=0;t<r.smsAccountApps.rows.length;t++,0){var a=r.smsAccountApps.rows[t],i=[],s=[];a.intervals="*,*,*,*"!==a.interval?[a.interval]:a.IntervalId?_.map(_.filter(r.intervals.rows,{IntervalId:a.IntervalId}),"interval"):[],a.context=r.smsAccount.context,a.exten=r.smsAccount.exten,a.type&&(a.type=a.type.toLowerCase()),a.priority=i.length?_.last(i).priority+1:e,e=(s.length?_.last(s).priority:a.priority)+1,n=_.concat(n,i,[a],s)}o.smsAccount.addApplications({id:r.smsAccount.id},_.sortBy(n,"priority")).$promise.then(function(e){r.smsAccountApps.rows=e.rows}).catch(function(e){console.error(e)})}function t(e){r.smsAccountApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.smsAccount={},r.smsAccountApps={count:0,rows:[]},r.selectedSmsAccountApps=[],r.crudPermissions,r.query={sort:"priority"},r.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"noop",appType:"noop",type:"noop",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,fields:[{title:"Value",name:"value",type:"text",param:0}]},{app:"system",appType:"system",type:"system",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,extraApi:[{name:"variables",field:{name:"variable",key:"name"},route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1012}}],fields:[{title:"Command",name:"command",type:"text",required:!0,param:0},{title:"Variable",name:"variable",type:"apiselect",values:"variables",value:"variable.name",option:"variable.name",defaultValues:[{value:"''",option:"None"}],defaultValue:"''",param:1}]},{app:"gotop",appType:"gotop",type:"goto",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Priority",name:"priority",type:"number",required:!0,min:0,param:0}]},{app:"gotoif",appType:"gotoif",type:"gotoif",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Condition",name:"condition",type:"text",required:!0,param:0},{title:"truepriority",name:"truepriority",type:"number",min:1,required:!0,param:1},{title:"falsepriority",name:"falsepriority",type:"number",min:1,required:!0,param:2}]},{app:"queue",appType:"queue",foreignKey:"SmsQueueId",type:"queue",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"queues",field:{name:"queue",key:"name"},route:"smsQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0},permissions:{section:701}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",defaultValue:300,required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:300,param:1}]},{app:"agent",appType:"agent",type:"agent",foreignKey:"UserId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"agents",field:{name:"agent",key:"name"},route:"user",filters:{fields:"id,name",sort:"name",nolimit:!0,role:"agent"},permissions:{section:202}}],fields:[{title:"Agent",name:"agent",type:"apiselect",values:"agents",value:"agent.name",option:"agent.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:30,param:1}]},{app:"autoreply",appType:"autoreply",type:"autoreply",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"times",name:"times",type:"select",defaultValue:"1",values:[{option:"One Time",value:"2"},{option:"Always",value:"0"},{option:"First Message",value:"1"}],required:!0,param:0},{title:"Text",name:"text",type:"textarea",required:!0,param:1}]},{app:"close",appType:"close",type:"close",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Disposition",name:"disposition",type:"text",required:!0,param:0}]},{app:"tag",appType:"tag",type:"tag",foreignKey:"TagId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"tags",field:{name:"tag",key:"name"},route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1008}}],fields:[{title:"Tag",name:"tag",type:"apiselect",values:"tags",value:"tag.name",option:"tag.name",required:!0,param:0}]},{app:"dialogflow",appType:"dialogflow",type:"dialogflow",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Key",name:"key",type:"text",required:!0,param:0},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{option:"Danish",value:"'da'"},{option:"English",value:"'en'"},{option:"German",value:"'de'"},{option:"Italian",value:"'it'"},{option:"Spanish",value:"'es'"},{option:"French",value:"'fr'"},{option:"Indonesian",value:"'id'"},{option:"Japanese",value:"'ja'"},{option:"Korean (South Korea)",value:"'ko'"},{option:"Dutch",value:"'nl'"},{option:"Norwegian",value:"'no'"},{option:"Portuguese (European)",value:"'pt'"},{option:"Portuguese (Nrazilian)",value:"'pt-br'"},{option:"Russian",value:"'ru'"},{option:"Swedish",value:"'sv'"},{option:"Thai",value:"'th'"},{option:"Ukrainian",value:"'uk'"},{option:"Chinese (Simplified)",value:"'zh-CN'"},{option:"Chinese (Hong Kong)",value:"'zh-HK'"},{option:"Chinese (Traditional)",value:"'zh-TW'"}],required:!0,param:1},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,required:!1,param:2,help:!0}]},{app:"dialogflowV2",appType:"dialogflowv2",type:"dialogflowv2",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"ProjectID",name:"projectId",type:"text",required:!0,param:0},{title:"ClientEmail",name:"clientEmail",type:"text",required:!0,param:1},{title:"PrivateKey",name:"privateKey",type:"textarea",required:!0,param:2},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{value:"'zh-HK'",option:"Chinese (Cantonese)"},{value:"'zh-CN'",option:"Chinese (Simplified)"},{value:"'zh-TW'",option:"Chinese (Traditional)"},{value:"'da'",option:"Danish"},{value:"'nl'",option:"Dutch"},{value:"'en'",option:"English"},{value:"'en-AU'",option:"English (Australia)"},{value:"'en-CA'",option:"English (Canada)"},{value:"'en-GB'",option:"English (Great Britain)"},{value:"'en-IN'",option:"English (India)"},{value:"'en-US'",option:"English (US)"},{value:"'fr'",option:"French"},{value:"'fr-CA'",option:"French (Canada)"},{value:"'fr-FR'",option:"'France (France)"},{value:"'de'",option:"German"},{value:"'hi'",option:"Hindi"},{value:"'id'",option:"Indonesian"},{value:"'it'",option:"Italian"},{value:"'ja'",option:"Japanese"},{value:"'ko'",option:"Korean"},{value:"'no'",option:"Norwegian"},{value:"'pl'",option:"Polish"},{value:"'pt-BR'",option:"Portuguese (Brazil)"},{value:"'pt-PT'",option:"Portuguese (Portugal)"},{value:"'ru'",option:"Russian"},{value:"'es'",option:"Spanish"},{value:"'es-419'",option:"Spanish (Latin America)"},{value:"'es-ES'",option:"Spanish (Spain)"},{value:"'sw'",option:"Swedish"},{value:"'th'",option:"Thai"},{value:"'tr'",option:"Turkish"},{value:"'uk'",option:"Ukrainian"}],required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,param:4,help:!0}]},{app:"amazonlex",appType:"amazonlex",type:"amazonlex",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"accesskeyid",name:"accesskeyid",type:"text",required:!0,param:0},{title:"secretaccesskey",name:"secretaccesskey",type:"text",required:!0,param:1},{title:"lexregion",name:"lexregion",type:"select",defaultValue:"'us-east-1'",values:[{option:"US East (N. Virginia)",value:"'us-east-1'"},{option:"US West (Oregon)",value:"'us-west-2'"},{option:"EU (Ireland)",value:"'eu-west-1'"},{option:"Asia Pacific (Sydney)",value:"'ap-southeast-2'"}],required:!0,param:2},{title:"botname",name:"botname",type:"text",required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,required:!1,param:4,help:!0}]}],["app"]),{isApp:!1}),r.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},r.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){n(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e,n){r.smsAccount=e,r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},r.applications.disabled=!r.crudPermissions.canEdit,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getSmsAccountApps(),r.getIntervals()},r.deleteConfirm=function(e,n,t){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.smsAccountApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})},r.getSmsAccountApps=function(){r.promise=o.smsAccount.getApplications(r.query,t).$promise},r.editSmsAccountApp=n,r.editInterval=function(e,n){if(r.smsAccountApps.rows.length){var t=r.smsAccountApps.rows[n]?r.smsAccountApps.rows[n]:r.smsAccountApps.rows[0];i.show({controller:"EditSmsAccountAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:[],crudPermissions:r.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,l())})}},r.deleteSmsAccountApp=function(e){_.remove(r.smsAccountApps.rows,{id:e.id}),l(),s.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedSmsAccountApps=function(e){var n=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+r.selectedSmsAccountApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){r.selectedSmsAccountApps.forEach(function(e){_.remove(r.smsAccountApps.rows,{id:e.id})}),r.selectedSmsAccountApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return o.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){r.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.sms").controller("SmsAccountActionsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.smsAccount.getAgents({id:c.smsAccount.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserSmsAccount?"penalty "+e.UserSmsAccount.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.smsAccount=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.smsAccount.removeAgents({id:c.smsAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.smsAccount.addAgents({id:c.smsAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("SMS.ALL_AGENTS"),labelSelected:r.instant("SMS.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","smsAccount","smsAccounts","realtime","$translate","Auth","crudPermissions"],angular.module("app.sms").controller("SmsAccountagentaddController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.agent=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.agent.appdata)switch(l.agent.appType?l.agent.appType.toLowerCase():l.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.agent.appdata.split(",");l.agent.key=d[0],l.agent.language=d[1],l.agent.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.agent.appdata.split(",");l.agent.projectId=d[0],l.agent.clientEmail=d[1],l.agent.privateKey=d[2],l.agent.language=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.agent.appdata.split(",");l.agent.accesskeyid=d[0],l.agent.secretaccesskey=d[1],l.agent.lexregion=d[2],l.agent.botname=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.agent.appdata.split(",");l.agent.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.agent.text=d.slice(1,d.length).join(",");break;case"message":l.agent.text=l.agent.appdata;break;case"set":l.agent.name=l.agent.appdata.split("=")[0],l.agent.value=l.agent.appdata.split("=")[1];break;case"agi":l.agent.project=l.agent.appdata;break;default:var c=l.agent.appdata.split(",");l.agent.agent=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.agent.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.agent.timeout=30;function m(e){n.hide(e)}l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outbounddial"===l.agent.appType.toLowerCase()&&(l.agent.prefix=l.agent.phone?l.agent.phone.split("$")[0]:void 0,l.agent.callerId=l.agent.callerID?"CALLERID(all)="+l.agent.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outboundDial"===l.agent.appType&&(l.agent.phone=i.cutdigits?(l.agent.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.agent.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.agent.options+="U(xcally-mixmonitor-context)"):l.agent.options=l.agent.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.agents,{name:l.agent.agent});n&&(l.agent.UserId=n.id);if(l.agent.appType&&"custom"===l.agent.appType);else switch((l.agent.app||l.agent.appType).toLowerCase()){case"set":l.agent.appdata=l.agent.name+"="+l.agent.value;break;case"custom":break;default:e[0]=l.agent.agent,e[1]=l.agent.timeout,l.agent.appdata=e.join(",")}m(l.agent)},l.closeDialog=m,o.hasRole("admin")?s.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){l.agents=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){l.agents=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.agents,{id:e.resourceId})}),t=null;if(l.agent&&(t=_.find(l.agents,{name:l.agent.agent})),t&&!_.some(n,["id",t.id])){var a=_.find(l.agents,{id:t.id});a.canSelect=!1,n.push(a)}l.agents=n})}else{var t=[],a=null;l.agent&&(a=_.find(l.agents,{name:l.agent.agent}));for(var i=0;i<l.agents.length;i++)a&&l.agents[i].id===a.id&&(l.agents[i].canSelect=!1,t.push(l.agents[i]));l.agents=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppagentDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.amazonlex=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.amazonlex.appdata)switch(l.amazonlex.appType?l.amazonlex.appType.toLowerCase():l.amazonlex.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.amazonlex.appdata.split(",");l.amazonlex.key=d[0],l.amazonlex.language=d[1],l.amazonlex.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.amazonlex.appdata.split(",");l.amazonlex.projectId=d[0],l.amazonlex.clientEmail=d[1],l.amazonlex.privateKey=d[2],l.amazonlex.language=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=d[0],l.amazonlex.secretaccesskey=d[1],l.amazonlex.lexregion=d[2],l.amazonlex.botname=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.amazonlex.appdata.split(",");l.amazonlex.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.amazonlex.text=d.slice(1,d.length).join(",");break;case"message":l.amazonlex.text=l.amazonlex.appdata;break;case"set":l.amazonlex.name=l.amazonlex.appdata.split("=")[0],l.amazonlex.value=l.amazonlex.appdata.split("=")[1];break;case"agi":l.amazonlex.project=l.amazonlex.appdata;break;default:var c=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.amazonlex.secretaccesskey=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.amazonlex.lexregion=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.amazonlex.botname=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.amazonlex.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.amazonlex.lexregion="us-east-1";function m(e){n.hide(e)}l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outbounddial"===l.amazonlex.appType.toLowerCase()&&(l.amazonlex.prefix=l.amazonlex.phone?l.amazonlex.phone.split("$")[0]:void 0,l.amazonlex.callerId=l.amazonlex.callerID?"CALLERID(all)="+l.amazonlex.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outboundDial"===l.amazonlex.appType&&(l.amazonlex.phone=i.cutdigits?(l.amazonlex.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.amazonlex.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.amazonlex.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.amazonlex.options+="U(xcally-mixmonitor-context)"):l.amazonlex.options=l.amazonlex.options.replace("U(xcally-mixmonitor-context)",""));if(l.amazonlex.appType&&"custom"===l.amazonlex.appType);else switch((l.amazonlex.app||l.amazonlex.appType).toLowerCase()){case"set":l.amazonlex.appdata=l.amazonlex.name+"="+l.amazonlex.value;break;case"custom":break;default:e[0]=l.amazonlex.accesskeyid,e[1]=l.amazonlex.secretaccesskey,e[2]=l.amazonlex.lexregion,e[3]=l.amazonlex.botname,e[4]=l.amazonlex.welcomemessage,l.amazonlex.appdata=e.join(",")}m(l.amazonlex)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppamazonlexDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.autoreply=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.autoreply.appdata)switch(l.autoreply.appType?l.autoreply.appType.toLowerCase():l.autoreply.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.autoreply.appdata.split(",");l.autoreply.key=d[0],l.autoreply.language=d[1],l.autoreply.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.autoreply.appdata.split(",");l.autoreply.projectId=d[0],l.autoreply.clientEmail=d[1],l.autoreply.privateKey=d[2],l.autoreply.language=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.autoreply.appdata.split(",");l.autoreply.accesskeyid=d[0],l.autoreply.secretaccesskey=d[1],l.autoreply.lexregion=d[2],l.autoreply.botname=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.autoreply.appdata.split(",");l.autoreply.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.autoreply.text=d.slice(1,d.length).join(",");break;case"message":l.autoreply.text=l.autoreply.appdata;break;case"set":l.autoreply.name=l.autoreply.appdata.split("=")[0],l.autoreply.value=l.autoreply.appdata.split("=")[1];break;case"agi":l.autoreply.project=l.autoreply.appdata;break;default:var c=l.autoreply.appdata.split(",");l.autoreply.times=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.autoreply.text=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.autoreply.times=1;function m(e){n.hide(e)}l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outbounddial"===l.autoreply.appType.toLowerCase()&&(l.autoreply.prefix=l.autoreply.phone?l.autoreply.phone.split("$")[0]:void 0,l.autoreply.callerId=l.autoreply.callerID?"CALLERID(all)="+l.autoreply.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outboundDial"===l.autoreply.appType&&(l.autoreply.phone=i.cutdigits?(l.autoreply.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.autoreply.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.autoreply.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.autoreply.options+="U(xcally-mixmonitor-context)"):l.autoreply.options=l.autoreply.options.replace("U(xcally-mixmonitor-context)",""));if(l.autoreply.appType&&"custom"===l.autoreply.appType);else switch((l.autoreply.app||l.autoreply.appType).toLowerCase()){case"set":l.autoreply.appdata=l.autoreply.name+"="+l.autoreply.value;break;case"custom":break;default:e[0]=l.autoreply.times,e[1]=l.autoreply.text,l.autoreply.appdata=e.join(",")}m(l.autoreply)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppautoreplyDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.close=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.close.appdata)switch(l.close.appType?l.close.appType.toLowerCase():l.close.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.close.appdata.split(",");l.close.key=d[0],l.close.language=d[1],l.close.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.close.appdata.split(",");l.close.projectId=d[0],l.close.clientEmail=d[1],l.close.privateKey=d[2],l.close.language=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.close.appdata.split(",");l.close.accesskeyid=d[0],l.close.secretaccesskey=d[1],l.close.lexregion=d[2],l.close.botname=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.close.appdata.split(",");l.close.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.close.text=d.slice(1,d.length).join(",");break;case"message":l.close.text=l.close.appdata;break;case"set":l.close.name=l.close.appdata.split("=")[0],l.close.value=l.close.appdata.split("=")[1];break;case"agi":l.close.project=l.close.appdata;break;default:var c=l.close.appdata.split(",");l.close.disposition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outbounddial"===l.close.appType.toLowerCase()&&(l.close.prefix=l.close.phone?l.close.phone.split("$")[0]:void 0,l.close.callerId=l.close.callerID?"CALLERID(all)="+l.close.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outboundDial"===l.close.appType&&(l.close.phone=i.cutdigits?(l.close.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.close.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.close.options+="U(xcally-mixmonitor-context)"):l.close.options=l.close.options.replace("U(xcally-mixmonitor-context)",""));if(l.close.appType&&"custom"===l.close.appType);else switch((l.close.app||l.close.appType).toLowerCase()){case"set":l.close.appdata=l.close.name+"="+l.close.value;break;case"custom":break;default:e[0]=l.close.disposition,l.close.appdata=e.join(",")}m(l.close)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppcloseDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflow=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflow.appdata)switch(l.dialogflow.appType?l.dialogflow.appType.toLowerCase():l.dialogflow.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflow.appdata.split(",");l.dialogflow.key=d[0],l.dialogflow.language=d[1],l.dialogflow.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflow.appdata.split(",");l.dialogflow.projectId=d[0],l.dialogflow.clientEmail=d[1],l.dialogflow.privateKey=d[2],l.dialogflow.language=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflow.appdata.split(",");l.dialogflow.accesskeyid=d[0],l.dialogflow.secretaccesskey=d[1],l.dialogflow.lexregion=d[2],l.dialogflow.botname=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflow.appdata.split(",");l.dialogflow.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflow.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflow.text=l.dialogflow.appdata;break;case"set":l.dialogflow.name=l.dialogflow.appdata.split("=")[0],l.dialogflow.value=l.dialogflow.appdata.split("=")[1];break;case"agi":l.dialogflow.project=l.dialogflow.appdata;break;default:var c=l.dialogflow.appdata.split(",");l.dialogflow.key=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflow.language=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflow.welcomemessage=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}else l.dialogflow.language="en";function m(e){n.hide(e)}l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outbounddial"===l.dialogflow.appType.toLowerCase()&&(l.dialogflow.prefix=l.dialogflow.phone?l.dialogflow.phone.split("$")[0]:void 0,l.dialogflow.callerId=l.dialogflow.callerID?"CALLERID(all)="+l.dialogflow.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outboundDial"===l.dialogflow.appType&&(l.dialogflow.phone=i.cutdigits?(l.dialogflow.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflow.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflow.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflow.options+="U(xcally-mixmonitor-context)"):l.dialogflow.options=l.dialogflow.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflow.appType&&"custom"===l.dialogflow.appType);else switch((l.dialogflow.app||l.dialogflow.appType).toLowerCase()){case"set":l.dialogflow.appdata=l.dialogflow.name+"="+l.dialogflow.value;break;case"custom":break;default:e[0]=l.dialogflow.key,e[1]=l.dialogflow.language,e[2]=l.dialogflow.welcomemessage,l.dialogflow.appdata=e.join(",")}m(l.dialogflow)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppdialogflowDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflowv2=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflowv2.appdata)switch(l.dialogflowv2.appType?l.dialogflowv2.appType.toLowerCase():l.dialogflowv2.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.key=d[0],l.dialogflowv2.language=d[1],l.dialogflowv2.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=d[0],l.dialogflowv2.clientEmail=d[1],l.dialogflowv2.privateKey=d[2],l.dialogflowv2.language=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.accesskeyid=d[0],l.dialogflowv2.secretaccesskey=d[1],l.dialogflowv2.lexregion=d[2],l.dialogflowv2.botname=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflowv2.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflowv2.text=l.dialogflowv2.appdata;break;case"set":l.dialogflowv2.name=l.dialogflowv2.appdata.split("=")[0],l.dialogflowv2.value=l.dialogflowv2.appdata.split("=")[1];break;case"agi":l.dialogflowv2.project=l.dialogflowv2.appdata;break;default:var c=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflowv2.clientEmail=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflowv2.privateKey=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.dialogflowv2.language=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.dialogflowv2.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.dialogflowv2.language="en";function m(e){n.hide(e)}l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outbounddial"===l.dialogflowv2.appType.toLowerCase()&&(l.dialogflowv2.prefix=l.dialogflowv2.phone?l.dialogflowv2.phone.split("$")[0]:void 0,l.dialogflowv2.callerId=l.dialogflowv2.callerID?"CALLERID(all)="+l.dialogflowv2.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outboundDial"===l.dialogflowv2.appType&&(l.dialogflowv2.phone=i.cutdigits?(l.dialogflowv2.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflowv2.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflowv2.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflowv2.options+="U(xcally-mixmonitor-context)"):l.dialogflowv2.options=l.dialogflowv2.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflowv2.appType&&"custom"===l.dialogflowv2.appType);else switch((l.dialogflowv2.app||l.dialogflowv2.appType).toLowerCase()){case"set":l.dialogflowv2.appdata=l.dialogflowv2.name+"="+l.dialogflowv2.value;break;case"custom":break;default:e[0]=l.dialogflowv2.projectId,e[1]=l.dialogflowv2.clientEmail,e[2]=l.dialogflowv2.privateKey,e[3]=l.dialogflowv2.language,e[4]=l.dialogflowv2.welcomemessage,l.dialogflowv2.appdata=e.join(",")}m(l.dialogflowv2)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppdialogflowv2DialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotoif=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotoif.appdata)switch(l.gotoif.appType?l.gotoif.appType.toLowerCase():l.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotoif.appdata.split(",");l.gotoif.key=d[0],l.gotoif.language=d[1],l.gotoif.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotoif.appdata.split(",");l.gotoif.projectId=d[0],l.gotoif.clientEmail=d[1],l.gotoif.privateKey=d[2],l.gotoif.language=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotoif.appdata.split(",");l.gotoif.accesskeyid=d[0],l.gotoif.secretaccesskey=d[1],l.gotoif.lexregion=d[2],l.gotoif.botname=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotoif.appdata.split(",");l.gotoif.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotoif.text=d.slice(1,d.length).join(",");break;case"message":l.gotoif.text=l.gotoif.appdata;break;case"set":l.gotoif.name=l.gotoif.appdata.split("=")[0],l.gotoif.value=l.gotoif.appdata.split("=")[1];break;case"agi":l.gotoif.project=l.gotoif.appdata;break;default:var c=l.gotoif.appdata.split(",");l.gotoif.condition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.gotoif.truepriority=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.gotoif.falsepriority=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}function m(e){n.hide(e)}l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outbounddial"===l.gotoif.appType.toLowerCase()&&(l.gotoif.prefix=l.gotoif.phone?l.gotoif.phone.split("$")[0]:void 0,l.gotoif.callerId=l.gotoif.callerID?"CALLERID(all)="+l.gotoif.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outboundDial"===l.gotoif.appType&&(l.gotoif.phone=i.cutdigits?(l.gotoif.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotoif.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotoif.options+="U(xcally-mixmonitor-context)"):l.gotoif.options=l.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotoif.appType&&"custom"===l.gotoif.appType);else switch((l.gotoif.app||l.gotoif.appType).toLowerCase()){case"set":l.gotoif.appdata=l.gotoif.name+"="+l.gotoif.value;break;case"custom":break;default:e[0]=l.gotoif.condition,e[1]=l.gotoif.truepriority,e[2]=l.gotoif.falsepriority,l.gotoif.appdata=e.join(",")}m(l.gotoif)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppgotoifDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotop.appdata)switch(l.gotop.appType?l.gotop.appType.toLowerCase():l.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotop.appdata.split(",");l.gotop.key=d[0],l.gotop.language=d[1],l.gotop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotop.appdata.split(",");l.gotop.projectId=d[0],l.gotop.clientEmail=d[1],l.gotop.privateKey=d[2],l.gotop.language=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotop.appdata.split(",");l.gotop.accesskeyid=d[0],l.gotop.secretaccesskey=d[1],l.gotop.lexregion=d[2],l.gotop.botname=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotop.appdata.split(",");l.gotop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotop.text=d.slice(1,d.length).join(",");break;case"message":l.gotop.text=l.gotop.appdata;break;case"set":l.gotop.name=l.gotop.appdata.split("=")[0],l.gotop.value=l.gotop.appdata.split("=")[1];break;case"agi":l.gotop.project=l.gotop.appdata;break;default:var c=l.gotop.appdata.split(",");l.gotop.priority=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outbounddial"===l.gotop.appType.toLowerCase()&&(l.gotop.prefix=l.gotop.phone?l.gotop.phone.split("$")[0]:void 0,l.gotop.callerId=l.gotop.callerID?"CALLERID(all)="+l.gotop.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outboundDial"===l.gotop.appType&&(l.gotop.phone=i.cutdigits?(l.gotop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotop.options+="U(xcally-mixmonitor-context)"):l.gotop.options=l.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotop.appType&&"custom"===l.gotop.appType);else switch((l.gotop.app||l.gotop.appType).toLowerCase()){case"set":l.gotop.appdata=l.gotop.name+"="+l.gotop.value;break;case"custom":break;default:e[0]=l.gotop.priority,l.gotop.appdata=e.join(",")}m(l.gotop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppgotopDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom","list"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditSmsAccountAppintervalDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.noop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.noop.appdata)switch(l.noop.appType?l.noop.appType.toLowerCase():l.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.noop.appdata.split(",");l.noop.key=d[0],l.noop.language=d[1],l.noop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.noop.appdata.split(",");l.noop.projectId=d[0],l.noop.clientEmail=d[1],l.noop.privateKey=d[2],l.noop.language=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.noop.appdata.split(",");l.noop.accesskeyid=d[0],l.noop.secretaccesskey=d[1],l.noop.lexregion=d[2],l.noop.botname=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.noop.appdata.split(",");l.noop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.noop.text=d.slice(1,d.length).join(",");break;case"message":l.noop.text=l.noop.appdata;break;case"set":l.noop.name=l.noop.appdata.split("=")[0],l.noop.value=l.noop.appdata.split("=")[1];break;case"agi":l.noop.project=l.noop.appdata;break;default:var c=l.noop.appdata.split(",");l.noop.value=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outbounddial"===l.noop.appType.toLowerCase()&&(l.noop.prefix=l.noop.phone?l.noop.phone.split("$")[0]:void 0,l.noop.callerId=l.noop.callerID?"CALLERID(all)="+l.noop.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outboundDial"===l.noop.appType&&(l.noop.phone=i.cutdigits?(l.noop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.noop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.noop.options+="U(xcally-mixmonitor-context)"):l.noop.options=l.noop.options.replace("U(xcally-mixmonitor-context)",""));if(l.noop.appType&&"custom"===l.noop.appType);else switch((l.noop.app||l.noop.appType).toLowerCase()){case"set":l.noop.appdata=l.noop.name+"="+l.noop.value;break;case"custom":break;default:e[0]=l.noop.value,l.noop.appdata=e.join(",")}m(l.noop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppnoopDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.queue=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.queue.appdata)switch(l.queue.appType?l.queue.appType.toLowerCase():l.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.queue.appdata.split(",");l.queue.key=d[0],l.queue.language=d[1],l.queue.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.queue.appdata.split(",");l.queue.projectId=d[0],l.queue.clientEmail=d[1],l.queue.privateKey=d[2],l.queue.language=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.queue.appdata.split(",");l.queue.accesskeyid=d[0],l.queue.secretaccesskey=d[1],l.queue.lexregion=d[2],l.queue.botname=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.queue.appdata.split(",");l.queue.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.queue.text=d.slice(1,d.length).join(",");break;case"message":l.queue.text=l.queue.appdata;break;case"set":l.queue.name=l.queue.appdata.split("=")[0],l.queue.value=l.queue.appdata.split("=")[1];break;case"agi":l.queue.project=l.queue.appdata;break;default:var c=l.queue.appdata.split(",");l.queue.queue=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.queue.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.queue.queue=300,l.queue.timeout=300;function m(e){n.hide(e)}l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outbounddial"===l.queue.appType.toLowerCase()&&(l.queue.prefix=l.queue.phone?l.queue.phone.split("$")[0]:void 0,l.queue.callerId=l.queue.callerID?"CALLERID(all)="+l.queue.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outboundDial"===l.queue.appType&&(l.queue.phone=i.cutdigits?(l.queue.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.queue.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.queue.options+="U(xcally-mixmonitor-context)"):l.queue.options=l.queue.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.queues,{name:l.queue.queue});n&&(l.queue[_.capitalize("sms")+"QueueId"]=n.id);if(l.queue.appType&&"custom"===l.queue.appType);else switch((l.queue.app||l.queue.appType).toLowerCase()){case"set":l.queue.appdata=l.queue.name+"="+l.queue.value;break;case"custom":break;default:e[0]=l.queue.queue,e[1]=l.queue.timeout,l.queue.appdata=e.join(",")}m(l.queue)},l.closeDialog=m,o.hasRole("admin")?s.smsQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.smsQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:701}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.queues,{id:e.resourceId})}),t=null;if(l.queue&&(t=_.find(l.queues,{name:l.queue.queue})),t&&!_.some(n,["id",t.id])){var a=_.find(l.queues,{id:t.id});a.canSelect=!1,n.push(a)}l.queues=n})}else{var t=[],a=null;l.queue&&(a=_.find(l.queues,{name:l.queue.queue}));for(var i=0;i<l.queues.length;i++)a&&l.queues[i].id===a.id&&(l.queues[i].canSelect=!1,t.push(l.queues[i]));l.queues=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppqueueDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.system=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.system.appdata)switch(l.system.appType?l.system.appType.toLowerCase():l.system.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.system.appdata.split(",");l.system.key=d[0],l.system.language=d[1],l.system.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.system.appdata.split(",");l.system.projectId=d[0],l.system.clientEmail=d[1],l.system.privateKey=d[2],l.system.language=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.system.appdata.split(",");l.system.accesskeyid=d[0],l.system.secretaccesskey=d[1],l.system.lexregion=d[2],l.system.botname=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.system.appdata.split(",");l.system.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.system.text=d.slice(1,d.length).join(",");break;case"message":l.system.text=l.system.appdata;break;case"set":l.system.name=l.system.appdata.split("=")[0],l.system.value=l.system.appdata.split("=")[1];break;case"agi":l.system.project=l.system.appdata;break;default:var c=l.system.appdata.split(",");l.system.command=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.system.variable=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.system.variable="";function m(e){n.hide(e)}l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outbounddial"===l.system.appType.toLowerCase()&&(l.system.prefix=l.system.phone?l.system.phone.split("$")[0]:void 0,l.system.callerId=l.system.callerID?"CALLERID(all)="+l.system.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outboundDial"===l.system.appType&&(l.system.phone=i.cutdigits?(l.system.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.system.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.system.options+="U(xcally-mixmonitor-context)"):l.system.options=l.system.options.replace("U(xcally-mixmonitor-context)",""));if(l.system.appType&&"custom"===l.system.appType);else switch((l.system.app||l.system.appType).toLowerCase()){case"set":l.system.appdata=l.system.name+"="+l.system.value;break;case"custom":break;default:e[0]=l.system.command,e[1]=l.system.variable,l.system.appdata=e.join(",")}m(l.system)},l.closeDialog=m,o.hasRole("admin")?s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1012}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.variables,{id:e.resourceId})}),t=null;if(l.system&&(t=_.find(l.variables,{name:l.system.variable})),t&&!_.some(n,["id",t.id])){var a=_.find(l.variables,{id:t.id});a.canSelect=!1,n.push(a)}l.variables=n})}else{var t=[],a=null;l.system&&(a=_.find(l.variables,{name:l.system.variable}));for(var i=0;i<l.variables.length;i++)a&&l.variables[i].id===a.id&&(l.variables[i].canSelect=!1,t.push(l.variables[i]));l.variables=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountAppsystemDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="SMS.EDIT_"+(a.appType||a.app).toUpperCase(),l.tag=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.tag.appdata)switch(l.tag.appType?l.tag.appType.toLowerCase():l.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.tag.appdata.split(",");l.tag.key=d[0],l.tag.language=d[1],l.tag.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.tag.appdata.split(",");l.tag.projectId=d[0],l.tag.clientEmail=d[1],l.tag.privateKey=d[2],l.tag.language=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.tag.appdata.split(",");l.tag.accesskeyid=d[0],l.tag.secretaccesskey=d[1],l.tag.lexregion=d[2],l.tag.botname=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.tag.appdata.split(",");l.tag.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.tag.text=d.slice(1,d.length).join(",");break;case"message":l.tag.text=l.tag.appdata;break;case"set":l.tag.name=l.tag.appdata.split("=")[0],l.tag.value=l.tag.appdata.split("=")[1];break;case"agi":l.tag.project=l.tag.appdata;break;default:var c=l.tag.appdata.split(",");l.tag.tag=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outbounddial"===l.tag.appType.toLowerCase()&&(l.tag.prefix=l.tag.phone?l.tag.phone.split("$")[0]:void 0,l.tag.callerId=l.tag.callerID?"CALLERID(all)="+l.tag.callerID:void 0),l.saveSmsAccountApp=function(){l.errors=[];var e=[];l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outboundDial"===l.tag.appType&&(l.tag.phone=i.cutdigits?(l.tag.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.tag.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.tag.options+="U(xcally-mixmonitor-context)"):l.tag.options=l.tag.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.tags,{name:l.tag.tag});n&&(l.tag.TagId=n.id);if(l.tag.appType&&"custom"===l.tag.appType);else switch((l.tag.app||l.tag.appType).toLowerCase()){case"set":l.tag.appdata=l.tag.name+"="+l.tag.value;break;case"custom":break;default:e[0]=l.tag.tag,l.tag.appdata=e.join(",")}m(l.tag)},l.closeDialog=m,o.hasRole("admin")?s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1008}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.tags,{id:e.resourceId})}),t=null;if(l.tag&&(t=_.find(l.tags,{name:l.tag.tag})),t&&!_.some(n,["id",t.id])){var a=_.find(l.tags,{id:t.id});a.canSelect=!1,n.push(a)}l.tags=n})}else{var t=[],a=null;l.tag&&(a=_.find(l.tags,{name:l.tag.tag}));for(var i=0;i<l.tags.length;i++)a&&l.tags[i].id===a.id&&(l.tags[i].canSelect=!1,t.push(l.tags[i]));l.tags=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtags",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","smsAccountApp","smsAccount","api","Auth","crudPermissions"],angular.module("app.sms").controller("EditSmsAccountApptagDialogController",e)}(),function(){"use strict";function e(e,a,n,t,i,s,o,r,l,d,c){var m=this;function u(e){m.smsAccountInteractions=e||{count:0,rows:[]};for(var n=0;n<m.smsAccountInteractions.rows.length;n+=1){var t=m.smsAccountInteractions.rows[n];v(t),t.Owner.name=h(t)}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.smsInteraction.get(m.query,u).$promise}function g(e){d.smsInteraction.delete({id:e.id}).$promise.then(function(){_.remove(m.smsAccountInteractions.rows,{id:e.id}),m.smsAccountInteractions.count-=1,m.smsAccountInteractions.rows.length||p(),l.success({title:"Interaction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETsmsAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(e){e.Contact?(e.contactName=(e.Contact.firstName||"")+" "+(e.Contact.lastName||""),e.contactInfo=e.Contact.mobile):e.contactName=i.instant("DASHBOARDS.UNKNOWN")}function h(e){return e.UserId?e.UserId===m.currentUser.id?i.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">":i.instant("DASHBOARDS.NOT_ASSIGNED")}m.currentUser=c.getCurrentUser(),m.smsAccount={},m.smsAccountInteractions={count:0,rows:[]},m.selectedSmsAccountInteractions=[],m.crudPermissions,m.query={read:"null",closed:"null",sort:"-createdAt",includeAll:"true",limit:10,page:1},m.init=function(e,n,t){m.smsAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.SmsAccountId=m.smsAccount.id,m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Subject",column:"subject",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},d.tag.get({sort:"name"}).$promise.then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]})},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interaction #")+e.id||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.smsInteractionDownload=function(s,e,n){return d.smsInteraction.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="interaction"+s.id,a=new Blob(n,{type:e.type});t="sms-interaction"+s.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getSmsAccountInteractions=p,m.createOrEditSmsAccountInteraction=function(e,n){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/interactions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsAccount:m.smsAccount,interaction:n,interactions:m.smsAccountInteractions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.spysmsInteraction=function(e,t){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,n){e.vm.init({id:1,channel:"sms",interaction:t,spy:!0},a.$parent.vm.setting)}})},m.openAdvancedSearch=function(){o.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,locals:{fields:m.advancedSearch.fields,color:void 0,storagePath:"sms.smsAccounts"},fullscreen:!0}).then(function(e){if(m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply){var n="";n+="||SmsAccountId:=$eq["+m.smsAccount.id+"]",m.query.search=e.value?e.value+=n:e.value,p()}}).catch(function(e){l.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.exportSelectedSmsAccountInteractions=function(){var e=angular.copy(m.selectedSmsAccountInteractions);return m.selectedSmsAccountInteractions=[],e},m.deleteSmsAccountInteraction=g,m.deleteSelectedSmsAccountInteractions=function(e){var n=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+m.selectedSmsAccountInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedSmsAccountInteractions.forEach(function(e){g(e)}),m.selectedSmsAccountInteractions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.sms").controller("SmsAccountInteractionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.smsAccountSmsCannedAnswers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.smsAccount.getAnswers(m.query,u).$promise}function g(e){d.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(m.smsAccountSmsCannedAnswers.rows,{id:e.id}),m.smsAccountSmsCannedAnswers.count-=1,m.smsAccountSmsCannedAnswers.rows.length||p(),l.success({title:"SmsCannedAnswer deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETsmsAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.smsAccount={},m.smsAccountSmsCannedAnswers={count:0,rows:[]},m.selectedSmsAccountSmsCannedAnswers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,key,value,description",limit:10,page:1},m.init=function(e,n,t){m.smsAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.SmsAccountId=m.smsAccount.id,m.query.id=m.smsAccount.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the smsCannedAnswer?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("smsCannedAnswer #")+e.id||"smsCannedAnswer")+"</b> will be deleted.").ariaLabel("delete smsCannedAnswer").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getSmsAccountSmsCannedAnswers=p,m.createOrEditSmsAccountSmsCannedAnswer=function(e,n){o.show({controller:"CreateOrEditSmsCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/smsCannedAnswers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsAccount:m.smsAccount,smsCannedAnswer:n,smsCannedAnswers:m.smsAccountSmsCannedAnswers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedSmsAccountSmsCannedAnswers=function(){var e=angular.copy(m.selectedSmsAccountSmsCannedAnswers);return m.selectedSmsAccountSmsCannedAnswers=[],e},m.deleteSmsAccountSmsCannedAnswer=g,m.deleteSelectedSmsAccountSmsCannedAnswers=function(e){var n=o.confirm().title("Are you sure want to delete the selected smsCannedAnswers?").htmlContent("<b>"+m.selectedSmsAccountSmsCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete smsCannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedSmsAccountSmsCannedAnswers.forEach(function(e){g(e)}),m.selectedSmsAccountSmsCannedAnswers=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.sms").controller("SmsAccountSmsCannedAnswersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="SMS.EDIT_SMSCANNEDANSWER",g.smsCannedAnswer=angular.copy(l),g.smsCannedAnswers=r,g.newSmsCannedAnswer=!1,g.smsCannedAnswer||(g.smsCannedAnswer={},g.title="SMS.NEW_SMSCANNEDANSWER",g.newSmsCannedAnswer=!0),n.params.id&&(g.smsCannedAnswer.SmsAccountId=n.params.id),g.addNewSmsCannedAnswer=function(){g.errors=[],d.cannedAnswer.save(g.smsCannedAnswer).$promise.then(function(e){g.smsCannedAnswers.unshift(e.toJSON()),o.success({title:"SmsCannedAnswer properly created",msg:g.smsCannedAnswer.name?g.smsCannedAnswer.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSmsCannedAnswer=function(){g.errors=[],d.cannedAnswer.update({id:g.smsCannedAnswer.id},g.smsCannedAnswer).$promise.then(function(e){var n=_.find(g.smsCannedAnswers,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"SmsCannedAnswer properly saved!",msg:g.smsCannedAnswer.name?g.smsCannedAnswer.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSmsCannedAnswer=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The smsCannedAnswer will be deleted.").ariaLabel("Delete SmsCannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cannedAnswer.delete({id:g.smsCannedAnswer.id}).$promise.then(function(){_.remove(g.smsCannedAnswers,{id:g.smsCannedAnswer.id}),o.success({title:"SmsCannedAnswer properly deleted!",msg:(g.smsCannedAnswer.name||"smsCannedAnswer")+" has been deleted!"}),v(g.smsCannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","smsCannedAnswers","smsCannedAnswer","api","Auth","license","setting","crudPermissions"],angular.module("app.sms").controller("CreateOrEditSmsCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.smsAccount.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.smsAccount=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.SmsAccountId=m.smsAccount.id,m.query.id=m.smsAccount.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.smsAccount.id,field:"SmsAccountId",route:"smsAccount"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.sms").controller("SmsAccountDispositionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=s,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=n.protocol()+"://"+n.host(),p.smsAccount=c||e.params.smsAccount||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=e.params.tab||0,p.agentadddialog=function(e,n){t.show({controller:"SmsAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{smsAccount:e,smsAccounts:p.smsAccounts?p.smsAccounts.rows:[],crudPermissions:p.crudPermissions,realtime:!1}})},p.alert=l.info,p.gotoSmsAccounts=function(){e.go("app.sms.smsAccounts",{},{reload:"app.sms.smsAccounts"})},p.saveSmsAccount=function(){r.smsAccount.update({id:p.smsAccount.id},p.smsAccount).$promise.then(function(){l.success({title:"SmsAccount updated!",msg:p.smsAccount.name?p.smsAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.lists,{id:e.resourceId})}),t=null;if(p.smsAccount&&(t=_.find(p.lists,{id:Number(p.smsAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.lists,{id:t.id});a.canSelect=!1,n.push(a)}p.lists=n})}else{var t=[],a=null;p.smsAccount&&(a=_.find(p.lists,{id:Number(p.smsAccount.ListId)}));for(var i=0;i<p.lists.length;i++)a&&p.lists[i].id===a.id&&(p.lists[i].canSelect=!1,t.push(p.lists[i]));p.lists=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.pauses,{id:e.resourceId})});p.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),p.pauses=n})}else p.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","smsAccount","userProfile","userProfileSection"],angular.module("app.sms").controller("SmsAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.smsAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="smsAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedSmsAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,key,token,remote,ListId,type,phone,accountSid,authId,authToken,smsMethod,username,password,baseUrl,apiKey,accountId,applicationId,senderString,deliveryReport,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,description,receiveUrl,deliveryReportUrl,notificationSound,notificationShake,notificationTemplate,queueTransfer,queueTransferTimeout,agentTransfer,agentTransferTimeout",sort:"-updatedAt",limit:10,page:1},f.arraytype=_.keyBy([{option:"Twilio",value:"'twilio'"},{option:"Skebby",value:"'skebby'"},{option:"Connectel",value:"'connectel'"},{option:"ClickSend",value:"'clicksend'"},{option:"Plivo",value:"'plivo'"},{option:"Infobip",value:"'infobip'"},{option:"Clickatell",value:"'clickatell'"},{option:"Bandwidth",value:"'bandwidth'"},{option:"CSCTelecom",value:"'csc'"},{option:"Intelepeer",value:"'intelepeer'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysmsMethod=_.keyBy([{option:"Basic",value:"'SI'"},{option:"Classic",value:"'TI'"},{option:"Classic+",value:"'GP'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.sms.smsAccounts.edit",{id:e.id,smsAccount:e,crudPermissions:f.crudPermissions})},f.interactionsgoto=function(e,n){t.go("app.sms.smsAccounts.edit",{id:e.id,tab:5})},f.agentadddialog=function(e,n){i.show({controller:"SmsAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{smsAccount:e,smsAccounts:f.smsAccounts?f.smsAccounts.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("smsAccount")+"?").htmlContent("<b>"+(e.name||"smsAccount")+"</b> will be deleted.").ariaLabel("delete smsAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getSmsAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.smsAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="SmsAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSmsAccount=function(e,n){i.show({controller:"CreateOrEditSmsAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsAccount:n,smsAccounts:f.smsAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSmsAccount=y,f.exportSelectedSmsAccounts=function(){var e=angular.copy(f.selectedSmsAccounts);return f.selectedSmsAccounts=[],e},f.deleteSelectedSmsAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected smsAccounts?").htmlContent("<b>"+f.selectedSmsAccounts.length+" selected</b> will be deleted.").ariaLabel("delete SmsAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedSmsAccounts.forEach(function(e){y(e)}),f.selectedSmsAccounts=[]})},f.deselectSmsAccounts=function(){f.selectedSmsAccounts=[]},f.selectAllSmsAccounts=function(){f.selectedSmsAccounts=f.smsAccounts.rows},g.hasRole("admin")?m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.lists,{id:e.resourceId})}),t=null;if(f.smsAccount&&(t=_.find(f.lists,{id:Number(f.smsAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.lists,{id:t.id});a.canSelect=!1,n.push(a)}f.lists=n})}else{var t=[],a=null;f.smsAccount&&(a=_.find(f.lists,{id:Number(f.smsAccount.ListId)}));for(var i=0;i<f.lists.length;i++)a&&f.lists[i].id===a.id&&(f.lists[i].canSelect=!1,t.push(f.lists[i]));f.lists=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.smsAccounts=e||{count:0,rows:[]}}function y(e){m.smsAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.smsAccounts.rows,{id:e.id}),f.smsAccounts.count-=1,f.smsAccounts.rows.length||f.getSmsAccounts(),p.success({title:_.startCase("SmsAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsmsAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEsmsAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getSmsAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","smsAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.sms").controller("SmsAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="SMS.EDIT_SMSQUEUE",g.smsQueue=angular.copy(l),g.smsQueues=r,g.newSmsQueue=!1,g.smsQueue||(g.smsQueue={strategy:"beepall",timeout:10},g.title="SMS.NEW_SMSQUEUE",g.newSmsQueue=!0),g.addNewSmsQueue=function(){g.errors=[],d.smsQueue.save(g.smsQueue).$promise.then(function(e){g.smsQueues.unshift(e.toJSON()),o.success({title:"SmsQueue properly created",msg:g.smsQueue.name?g.smsQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.smsQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSmsQueue=function(){g.errors=[],d.smsQueue.update({id:g.smsQueue.id},g.smsQueue).$promise.then(function(e){var n=_.find(g.smsQueues,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"SmsQueue properly saved!",msg:g.smsQueue.name?g.smsQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.smsQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSmsQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The smsQueue will be deleted.").ariaLabel("Delete SmsQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.smsQueue.delete({id:g.smsQueue.id}).$promise.then(function(){_.remove(g.smsQueues,{id:g.smsQueue.id}),o.success({title:"SmsQueue properly deleted!",msg:(g.smsQueue.name||"smsQueue")+" has been deleted!"}),v(g.smsQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.smsQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.smsQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","smsQueues","smsQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.sms").controller("CreateOrEditSmsQueueDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.smsQueue.getAgents({id:c.smsQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserSmsQueue?"penalty "+e.UserSmsQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.smsQueue=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.smsQueue.removeAgents({id:c.smsQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.smsQueue.addAgents({id:c.smsQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("SMS.ALL_AGENTS"),labelSelected:r.instant("SMS.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","smsQueue","smsQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.sms").controller("SmsQueueagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.smsQueue.getTeams({id:l.smsQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.smsQueue=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("SMS.ALL_TEAMS"),labelSelected:t.instant("SMS.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.smsQueue.removeTeams({id:l.smsQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.smsQueue.addTeams({id:l.smsQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","smsQueue","$translate","Auth","crudPermissions"],angular.module("app.sms").controller("SmsQueueteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.smsQueue=c||e.params.smsQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.teamadddialog=function(e,n){t.show({controller:"SmsQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{smsQueue:e,smsQueues:u.smsQueues?u.smsQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){t.show({controller:"SmsQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{smsQueue:e,smsQueues:u.smsQueues?u.smsQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoSmsQueues=function(){e.go("app.sms.smsQueues",{},{reload:"app.sms.smsQueues"})},u.saveSmsQueue=function(){r.smsQueue.update({id:u.smsQueue.id},u.smsQueue).$promise.then(function(){l.success({title:"SmsQueue updated!",msg:u.smsQueue.name?u.smsQueue.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsmsQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","smsQueue","userProfileSection"],angular.module("app.sms").controller("SmsQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.smsQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="smsQueues",f.listOrder="",f.listOrderAsc=null,f.selectedSmsQueues=[],f.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"sms",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.sms.smsQueues.edit",{id:e.id,smsQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"SmsQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{smsQueue:e,smsQueues:f.smsQueues?f.smsQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"SmsQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{smsQueue:e,smsQueues:f.smsQueues?f.smsQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("smsQueue")+"?").htmlContent("<b>"+(e.name||"smsQueue")+"</b> will be deleted.").ariaLabel("delete smsQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:710}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.sms.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.sms.realtime.queues",{})}},f.success=E,f.getSmsQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.smsQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="SmsQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSmsQueue=function(e,n){i.show({controller:"CreateOrEditSmsQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/sms/views/smsQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{smsQueue:n,smsQueues:f.smsQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSmsQueue=y,f.exportSelectedSmsQueues=function(){var e=angular.copy(f.selectedSmsQueues);return f.selectedSmsQueues=[],e},f.deleteSelectedSmsQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected smsQueues?").htmlContent("<b>"+f.selectedSmsQueues.length+" selected</b> will be deleted.").ariaLabel("delete SmsQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedSmsQueues.forEach(function(e){y(e)}),f.selectedSmsQueues=[]})},f.deselectSmsQueues=function(){f.selectedSmsQueues=[]},f.selectAllSmsQueues=function(){f.selectedSmsQueues=f.smsQueues.rows};var b=!0,A=1;function E(e){f.smsQueues=e||{count:0,rows:[]}}function y(e){m.smsQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.smsQueues.rows,{id:e.id}),f.smsQueues.count-=1,f.smsQueues.rows.length||f.getSmsQueues(),p.success({title:_.startCase("SmsQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsmsQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEsmsQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getSmsQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","smsQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.sms").controller("SmsQueuesController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o,r,l,d,c,m,u){var p=this;function g(e){p.agents=e||{count:0,rows:[]}}function v(e){l.user.delete({id:e.id}).$promise.then(function(){_.remove(p.agents.rows,{id:e.id}),p.agents.count-=1,p.agents.rows.length||p.getAgents(),d.success({title:_.startCase("Agent")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEuser"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEuser",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}p.license=m,p.setting=u,p.currentUser=c.getCurrentUser(),p.agents=s||{count:0,rows:[]},p.userProfile=o,p.userProfileSection=r&&1==r.count?r.rows[0]:null,p.crudPermissions=c.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.selectedAgents=[],p.query={fields:"createdAt,updatedAt,id,role,fullname,name,alias,showWebBar,email,phone,mobile,userpic,password,hotdesk,autointernal,internal,loginInPause,description,dtlscertfile,dtlsprivatekey,wssPort,voicemail,transport,host,nat,type,allow,callerid,context,callgroup,pickupgroup,chanspy,videosupport,extensionMonitor,chatCapacity,mailCapacity,smsCapacity,openchannelCapacity,faxCapacity,whatsappCapacity,phoneBarEnableSettings,phoneBarAutoAnswer,phoneBarAutoAnswerDelay,phoneBarRingInUse,phoneBarEnableRecording,phoneBarEnableDtmfTone,phoneBarDnd,phoneBarUnansweredCallBadge,phoneBarEnableJaws,phoneBarOutboundProxy,phoneBarUnconditional,phoneBarUnconditionalNumber,phoneBarRemoteControl,phoneBarRemoteControlPort,phoneBarExpires,phoneBarListenPort,permissions,allowmessenger,phoneBarPrefixRequired,passwordResetAt,disabled,blocked,phoneBarEnableScreenRecordingByAgent,phoneBarEnableAutomaticScreenRecording,privacyEnabled,downloadAttachments,downloadOmnichannelInteractions,downloadVoiceRecordings,selectRecallMeCampaign,ignorePauseForPreviewCalls",role:"agent",sort:"-updatedAt",limit:10,page:1},p.showWebBarOptions=[{option:"Phonebar",value:0},{option:"External",value:1},{option:"WebRTC",value:2}],p.editstate=function(e){n.go("app.staff.agents.edit",{id:e.id,agent:e,crudPermissions:p.crudPermissions})},p.teamadddialog=function(e,n){a.show({controller:"AgentteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/teamadd/teamadd.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:p.agents?p.agents.rows:[],crudPermissions:p.crudPermissions}})},p.deleteconfirm=function(e,n){var t=a.confirm().title("Are you sure want to delete the "+_.startCase("agent")+"?").htmlContent("<b>"+(e.name||"agent")+"</b> will be deleted.").ariaLabel("delete agent").targetEvent(n).ok("OK").cancel("CANCEL");a.show(t).then(function(){v(e)})},p.success=g,p.getAgents=function(){p.query.offset=(p.query.page-1)*p.query.limit,c.hasRole("admin")?p.promise=l.user.get(p.query,g).$promise:(p.query.id=p.userProfile.id,p.query.section="Agents",p.promise=l.userProfile.getResources(p.query,g).$promise)},p.createOrEditAgent=function(e,n){a.show({controller:"CreateOrEditAgentDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{agent:n,agents:p.agents.rows,license:p.license,setting:p.setting,crudPermissions:p.crudPermissions}})},p.deleteAgent=v,p.exportSelectedAgents=function(){var e=angular.copy(p.selectedAgents);return p.selectedAgents=[],e},p.deleteSelectedAgents=function(e){var n=a.confirm().title("Are you sure want to delete the selected agents?").htmlContent("<b>"+p.selectedAgents.length+" selected</b> will be deleted.").ariaLabel("delete Agents").targetEvent(e).ok("OK").cancel("CANCEL");a.show(n).then(function(){p.selectedAgents.forEach(function(e){v(e)}),p.selectedAgents=[]})},p.deselectAgents=function(){p.selectedAgents=[]},p.selectAllAgents=function(){p.selectedAgents=p.agents.rows};var h=!0,f=1;e.$watch("vm.query.filter",function(e,n){h?i(function(){h=!1}):(n||(f=p.query.page),e!==n&&(p.query.page=1),e||(p.query.page=f),p.getAgents())})}e.$inject=["$scope","$state","$mdDialog","$document","$timeout","agents","userProfile","userProfileSection","api","toasty","Auth","license","setting"],angular.module("app.staff").controller("AgentsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="STAFF.EDIT_AGENT",g.agent=angular.copy(l),g.agents=r,g.newAgent=!1,g.agent||(g.agent={role:"agent",showWebBar:"0",autointernal:!0,wssPort:8089,type:"friend",context:"from-sip",phoneBarRemoteControl:!0,phoneBarRemoteControlPort:9888,allowmessenger:!0,downloadAttachments:!0,downloadOmnichannelInteractions:!0,downloadVoiceRecordings:!0},g.title="STAFF.NEW_AGENT",g.newAgent=!0),g.addNewAgent=function(){g.errors=[],d.user.save(g.agent).$promise.then(function(e){g.agents.unshift(e.toJSON()),o.success({title:"Agent properly created",msg:g.agent.name?g.agent.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveAgent=function(){g.errors=[],d.user.update({id:g.agent.id},g.agent).$promise.then(function(e){var n=_.find(g.agents,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Agent properly saved!",msg:g.agent.name?g.agent.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteAgent=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The agent will be deleted.").ariaLabel("Delete Agent").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.user.delete({id:g.agent.id}).$promise.then(function(){_.remove(g.agents,{id:g.agent.id}),o.success({title:"Agent properly deleted!",msg:(g.agent.name||"agent")+" has been deleted!"}),v(g.agent)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","agents","agent","api","Auth","license","setting","crudPermissions"],angular.module("app.staff").controller("CreateOrEditAgentDialogController",e)}(),function(){"use strict";function e(e,a){var i=this;i.agent={},i.crudPermissions,i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.agent.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.agent.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e,n){i.agent=angular.copy(e),i.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.ngFlowOptions.target="api/users/"+i.agent.id+"/avatar",i.agent.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.staff").controller("Agentchange_avatarController",e)}(),function(){"use strict";function e(t,e,n,a,i,s,o){var r=this;function l(){e.hide()}r.currentUser=o.getCurrentUser(),r.errors=[],r.setting=s,r.passwordPattern=r.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",r.agent=i,r.password="",r.oldPassword="",r.savePassword=function(){r.errors=[];var e={id:r.agent.id,newPassword:r.password};r.currentUser.id==r.agent.id&&(e.oldPassword=r.oldPassword);a.user.changePassword(e).$promise.then(function(){n.success({title:"Agent password properly updated!"}),l()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.agent.save",msg:e.data?JSON.stringify(e.data.message):e.toString()}),r.errors=e.data.errors||[{message:e.toString(),type:"api.agent.changePassword"}]})},r.closeDialog=l,t.$watch("vm.password",function(e,n){_.isNil(r.oldPassword)||(e===r.oldPassword?t.agentForm.password.$setValidity("oldPasswordMatch",!1):t.agentForm.password.$setValidity("oldPasswordMatch",!0))})}e.$inject=["$scope","$mdDialog","toasty","api","agent","setting","Auth"],angular.module("app.staff").controller("AgentchangepasswordController",e)}(),function(){"use strict";function e(e,n,i,t,s){var o=this;o.agent={},o.navigation=t.getNavigation(),o.crudPermissions,o.init=function(e,n){o.agent=e,o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1}},o.onChange=function(n,t){if((t||n).enabled){if(t)t.enabled=!0,o.agent.permissions.push(t.id);else for(var e=0;e<n.children.length;e++)n.children[e].enabled=!0,o.agent.permissions.push(n.children[e].id);n.enabled=!0,o.agent.permissions.push(n.id)}else if(t)t.enabled=!1,_.remove(o.agent.permissions,function(e){return t.id===e}),_.filter(n.children,{enabled:!1}).length===n.children.length&&(n.enabled=!1,_.remove(o.agent.permissions,function(e){return n.id===e}));else{n.enabled=!1,_.remove(o.agent.permissions,function(e){return n.id===e});for(var a=0;a<n.children.length;a++)n.children[a].enabled=!1,_.remove(o.agent.permissions,function(e){return n.children[a].id===e})}return i.user.update({id:o.agent.id,permissions:_.uniq(o.agent.permissions)}).$promise.then(function(){s.success({title:"agent updated!",msg:o.agent.name?o.agent.name+" has been updated!":""})}).catch(function(e){console.error(e)})}}e.$inject=["$document","$mdDialog","api","msNavigationAgentService","toasty"],angular.module("app.staff").controller("AgentPermissionsController",e)}(),function(){"use strict";function e(e,l,a,d,n,t,i,s,o,r){var c=this;function m(){return l(function(t,n){return l(function(n,t){return d[c.apiName].get({fields:"id,name,strategy,type",channel:c.channel,type:"voice"===c.channel?c.direction:void 0,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],o.hasRole("admin")?e:c.section?c.section.autoAssociation?e:l(function(n,t){return d.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:o.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),l(function(n,t){return d.user.getQueues({id:c.agent.id,fields:"id,name,strategy,type,penalty",nolimit:!0,type:"voice"===c.channel?c.direction:void 0,channel:c.channel}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return"voice"===c.channel&&(n.penalty=void 0!==n&&void 0!==e.UserVoiceQueue?"penalty "+e.UserVoiceQueue.penalty:"penalty 0"),n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=o.getCurrentUser(),c.agent=n,c.crudPermissions=r,c.penalty=0,c.channel=t,c.direction=i,c.apiName=c.channel+"Queue",c.title=s.instant("STAFF.ADD_AGENT_TO_"+("outbound"===c.direction?"QUEUE_CAMPAIGNS":c.channel.toUpperCase()+"_QUEUES")),c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"type",line3:"voice"===c.channel?"penalty":"",labelAll:s.instant("STAFF.ALL_"+("outbound"===c.direction?"QUEUE_CAMPAIGNS":c.channel.toUpperCase()+"_QUEUES")),labelSelected:s.instant("STAFF.SELECTED_"+("outbound"===c.direction?"QUEUE_CAMPAIGNS":c.channel.toUpperCase()+"_QUEUES")),transferCallback:function(e,n){n?e.forEach(function(e){e.penalty=void 0}):e.forEach(function(e){e.penalty="penalty "+c.penalty});var t=_.xorWith(c.startingSelectedItems,c.selectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});c.pendingChanges=!_.isEmpty(t)}},c.onInit=function(){return o.hasRole("admin")?m().catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.status?JSON.stringify(e.data):e.toString()})}):l(function(t,n){var e;switch(c.channel){case"voice":switch(c.direction){case"inbound":e="VoiceQueues";break;case"outbound":e="QueueCampaigns"}break;case"chat":e="ChatQueues";break;case"mail":e="MailQueues";break;case"sms":e="SmsQueues";break;case"openchannel":e="OpenchannelQueues";break;case"fax":e="FaxQueues"}d.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:e}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveQueues=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceWith(c.selectedItems,c.startingSelectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});return(t=e,l(function(e,n){_.isEmpty(t)?e():d.user.removeQueues({id:c.agent.id,ids:_.map(t,"id"),channel:c.channel}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return r=n,l(function(e,n){if(_.isEmpty(r))e();else if("voice"===c.channel){for(var t=[],a=_.groupBy(r,"penalty"),i=0;i<Object.keys(a).length;i++){var s=Object.keys(a)[i],o=_.filter(r,["penalty",s]);t.push(d.user.addQueues({id:c.agent.id,ids:_.map(o,"id"),channel:c.channel,penalty:_.trim(s,"penalty ")}).$promise)}l.all(t).then(function(){e()}).catch(function(e){n(e)})}else d.user.addQueues({id:c.agent.id,ids:_.map(r,"id"),channel:c.channel}).$promise.then(function(){e()}).catch(function(e){n(e)})});var r}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),a.success({title:"SUCCESS",msg:"Queues association has been updated!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:QUEUES_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","agent","channel","direction","$translate","Auth","crudPermissions"],angular.module("app.staff").controller("AgentQueueAddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.user.getTeams({id:l.agent.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.agent=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("STAFF.ALL_TEAMS"),labelSelected:t.instant("STAFF.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.user.removeTeams({id:l.agent.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.user.addTeams({id:l.agent.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","agent","$translate","Auth","crudPermissions"],angular.module("app.staff").controller("AgentteamaddController",e)}(),function(){"use strict";function e(e,n,i,s,t,a,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=a,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.agent=c||e.params.agent||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.queueaddchannel=function(e,n,t,a){i.show({controller:"AgentQueueAddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",parent:angular.element(s.body),targetEvent:t,clickOutsideToClose:!0,locals:{agent:e,agents:u.agents?u.agents.rows:[],channel:n,direction:a||"inbound",crudPermissions:u.crudPermissions}})},u.teamadddialog=function(e,n){i.show({controller:"AgentteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,agents:u.agents?u.agents.rows:[],crudPermissions:u.crudPermissions}})},u.changepassworddialog=function(e,n){i.show({controller:"AgentchangepasswordController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/agents/edit/changepassword/changepassword.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{agent:e,setting:o,agents:u.agents?u.agents.rows:[],crudPermissions:u.crudPermissions}})},u.onEnableScreenRecordingByAgentSelection=function(){["phoneBarEnableAutomaticScreenRecording"].forEach(function(e){u.agent.phoneBarEnableScreenRecordingByAgent&&(u.agent[e]=!u.agent.phoneBarEnableScreenRecordingByAgent)})},u.onEnableAutomaticScreenRecordingSelection=function(){["phoneBarEnableScreenRecordingByAgent"].forEach(function(e){u.agent.phoneBarEnableAutomaticScreenRecording&&(u.agent[e]=!u.agent.phoneBarEnableAutomaticScreenRecording)})},u.alert=l.info,u.gotoAgents=function(){e.go("app.staff.agents",{},{reload:"app.staff.agents"})},u.saveAgent=function(){u.agent=_.omit(u.agent,"userpic"),r.user.update({id:u.agent.id},u.agent).$promise.then(function(){l.success({title:"Agent updated!",msg:u.agent.name?u.agent.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CONTEXTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:405}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?void 0:r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.contexts,{id:e.resourceId})}),t=null;if(u.agent&&(t=_.find(u.contexts,{name:u.agent.context})),t&&!_.some(n,["id",t.id])){var a=_.find(u.contexts,{id:t.id});a.canSelect=!1,n.push(a)}u.contexts=n}):r.voiceContext.get({fields:"id,name",sort:"name",defaultEntry:1}).$promise.then(function(e){u.contexts=e.rows||[]})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","agent","userProfileSection"],angular.module("app.staff").controller("AgentController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="STAFF.EDIT_TEAM",g.team=angular.copy(l),g.teams=r,g.newTeam=!1,g.team||(g.team={},g.title="STAFF.NEW_TEAM",g.newTeam=!0),g.addNewTeam=function(){g.errors=[],d.team.save(g.team).$promise.then(function(e){g.teams.unshift(e.toJSON()),o.success({title:"Team properly created",msg:g.team.name?g.team.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.team.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.team.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveTeam=function(){g.errors=[],d.team.update({id:g.team.id},g.team).$promise.then(function(e){var n=_.find(g.teams,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Team properly saved!",msg:g.team.name?g.team.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.team.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.team.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteTeam=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The team will be deleted.").ariaLabel("Delete Team").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.team.delete({id:g.team.id}).$promise.then(function(){_.remove(g.teams,{id:g.team.id}),o.success({title:"Team properly deleted!",msg:(g.team.name||"team")+" has been deleted!"}),v(g.team)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.team.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.team.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","teams","team","api","Auth","license","setting","crudPermissions"],angular.module("app.staff").controller("CreateOrEditTeamDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.team.getAgents({id:c.team.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserTeam?"penalty "+e.UserTeam.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.team=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.team.removeAgents({id:c.team.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.team.addAgents({id:c.team.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("STAFF.ALL_AGENTS"),labelSelected:r.instant("STAFF.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","team","teams","realtime","$translate","Auth","crudPermissions"],angular.module("app.staff").controller("TeamagentaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.teams=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="teams",f.listOrder="",f.listOrderAsc=null,f.selectedTeams=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditTeamDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/teams/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{team:e,teams:f.teams.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"TeamagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/teams/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{team:e,teams:f.teams?f.teams.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("team")+"?").htmlContent("<b>"+(e.name||"team")+"</b> will be deleted.").ariaLabel("delete team").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getTeams=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.team.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Teams",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditTeam=function(e,n){i.show({controller:"CreateOrEditTeamDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/teams/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{team:n,teams:f.teams.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteTeam=y,f.exportSelectedTeams=function(){var e=angular.copy(f.selectedTeams);return f.selectedTeams=[],e},f.deleteSelectedTeams=function(e){var n=i.confirm().title("Are you sure want to delete the selected teams?").htmlContent("<b>"+f.selectedTeams.length+" selected</b> will be deleted.").ariaLabel("delete Teams").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedTeams.forEach(function(e){y(e)}),f.selectedTeams=[]})},f.deselectTeams=function(){f.selectedTeams=[]},f.selectAllTeams=function(){f.selectedTeams=f.teams.rows};var b=!0,A=1;function E(e){f.teams=e||{count:0,rows:[]}}function y(e){m.team.delete({id:e.id}).$promise.then(function(){_.remove(f.teams.rows,{id:e.id}),f.teams.count-=1,f.teams.rows.length||f.getTeams(),p.success({title:_.startCase("Team")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEteam"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEteam",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getTeams())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","teams","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.staff").controller("TeamsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="STAFF.EDIT_TELEPHONE",g.telephone=angular.copy(l),g.telephones=r,g.newTelephone=!1,g.telephone||(g.telephone={role:"telephone",autointernal:!0,context:"from-sip"},g.title="STAFF.NEW_TELEPHONE",g.newTelephone=!0),g.addNewTelephone=function(){g.errors=[],d.user.save(g.telephone).$promise.then(function(e){g.telephones.unshift(e.toJSON()),o.success({title:"Telephone properly created",msg:g.telephone.name?g.telephone.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveTelephone=function(){g.errors=[],d.user.update({id:g.telephone.id},g.telephone).$promise.then(function(e){var n=_.find(g.telephones,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Telephone properly saved!",msg:g.telephone.name?g.telephone.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteTelephone=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The telephone will be deleted.").ariaLabel("Delete Telephone").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.user.delete({id:g.telephone.id}).$promise.then(function(){_.remove(g.telephones,{id:g.telephone.id}),o.success({title:"Telephone properly deleted!",msg:(g.telephone.name||"telephone")+" has been deleted!"}),v(g.telephone)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","telephones","telephone","api","Auth","license","setting","crudPermissions"],angular.module("app.staff").controller("CreateOrEditTelephoneDialogController",e)}(),function(){"use strict";function e(t,e,n,a,i,s,o){var r=this;function l(){e.hide()}r.currentUser=o.getCurrentUser(),r.errors=[],r.setting=s,r.passwordPattern=r.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",r.telephone=i,r.password="",r.oldPassword="",r.savePassword=function(){r.errors=[];var e={id:r.telephone.id,newPassword:r.password};r.currentUser.id==r.telephone.id&&(e.oldPassword=r.oldPassword);a.user.changePassword(e).$promise.then(function(){n.success({title:"Telephone password properly updated!"}),l()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.telephone.save",msg:e.data?JSON.stringify(e.data.message):e.toString()}),r.errors=e.data.errors||[{message:e.toString(),type:"api.telephone.changePassword"}]})},r.closeDialog=l,t.$watch("vm.password",function(e,n){_.isNil(r.oldPassword)||(e===r.oldPassword?t.telephoneForm.password.$setValidity("oldPasswordMatch",!1):t.telephoneForm.password.$setValidity("oldPasswordMatch",!0))})}e.$inject=["$scope","$mdDialog","toasty","api","telephone","setting","Auth"],angular.module("app.staff").controller("TelephonechangepasswordController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.telephone=c||e.params.telephone||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.changepassworddialog=function(e,n){t.show({controller:"TelephonechangepasswordController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/telephones/edit/changepassword/changepassword.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{telephone:e,setting:o,telephones:u.telephones?u.telephones.rows:[],crudPermissions:u.crudPermissions}})},u.alert=l.info,u.gotoTelephones=function(){e.go("app.staff.telephones",{},{reload:"app.staff.telephones"})},u.saveTelephone=function(){r.user.update({id:u.telephone.id},u.telephone).$promise.then(function(){l.success({title:"Telephone updated!",msg:u.telephone.name?u.telephone.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CONTEXTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:405}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?void 0:r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.contexts,{id:e.resourceId})}),t=null;if(u.telephone&&(t=_.find(u.contexts,{name:u.telephone.context})),t&&!_.some(n,["id",t.id])){var a=_.find(u.contexts,{id:t.id});a.canSelect=!1,n.push(a)}u.contexts=n}):r.voiceContext.get({fields:"id,name",sort:"name",defaultEntry:1}).$promise.then(function(e){u.contexts=e.rows||[]})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","telephone","userProfileSection"],angular.module("app.staff").controller("TelephoneController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.telephones=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="telephones",f.listOrder="",f.listOrderAsc=null,f.selectedTelephones=[],f.query={fields:"createdAt,updatedAt,id,role,fullname,name,email,password,description,autointernal,internal,voicemail,transport,nat,allow,callerid,context,callgroup,pickupgroup,videosupport,encryption,phone,mobile",role:"telephone",sort:"-updatedAt",limit:10,page:1},f.arraytransport=_.keyBy([{option:"udp",value:"'udp'"},{option:"tcp",value:"'tcp'"},{option:"ws",value:"'ws'"},{option:"wss",value:"'wss'"},{option:"tls",value:"'tls'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraynat=_.keyBy([{option:"force_rport",value:"'force_rport'"},{option:"comedia",value:"'comedia'"},{option:"yes",value:"'yes'"},{option:"no",value:"'no'"},{option:"never",value:"'never'"},{option:"route",value:"'route'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayallow=_.keyBy([{option:"ulaw",value:"'ulaw'"},{option:"alaw",value:"'alaw'"},{option:"gsm",value:"'gsm'"},{option:"g722",value:"'g722'"},{option:"g729",value:"'g729'"},{option:"opus",value:"'opus'"},{option:"h264",value:"'h264'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayvideosupport=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Always",value:"'always'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayencryption=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.staff.telephones.edit",{id:e.id,telephone:e,crudPermissions:f.crudPermissions})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("telephone")+"?").htmlContent("<b>"+(e.name||"telephone")+"</b> will be deleted.").ariaLabel("delete telephone").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getTelephones=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.user.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Telephones",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditTelephone=function(e,n){i.show({controller:"CreateOrEditTelephoneDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/telephones/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{telephone:n,telephones:f.telephones.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteTelephone=y,f.exportSelectedTelephones=function(){var e=angular.copy(f.selectedTelephones);return f.selectedTelephones=[],e},f.deleteSelectedTelephones=function(e){var n=i.confirm().title("Are you sure want to delete the selected telephones?").htmlContent("<b>"+f.selectedTelephones.length+" selected</b> will be deleted.").ariaLabel("delete Telephones").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedTelephones.forEach(function(e){y(e)}),f.selectedTelephones=[]})},f.deselectTelephones=function(){f.selectedTelephones=[]},f.selectAllTelephones=function(){f.selectedTelephones=f.telephones.rows};var b=!0,A=1;function E(e){f.telephones=e||{count:0,rows:[]}}function y(e){m.user.delete({id:e.id}).$promise.then(function(){_.remove(f.telephones.rows,{id:e.id}),f.telephones.count-=1,f.telephones.rows.length||f.getTelephones(),p.success({title:_.startCase("Telephone")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEuser"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEuser",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getTelephones())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","telephones","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.staff").controller("TelephonesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="STAFF.EDIT_USERPROFILE",g.userProfile=angular.copy(l),g.userProfiles=r,g.newUserProfile=!1,g.userProfile||(g.userProfile={crudPermissions:["r"],downloadAttachments:!0,downloadCallySquareRecordings:!0,downloadContactManagerLists:!0,downloadJscriptySessions:!0,downloadOmnichannelInteractions:!0,downloadScreenRecordings:!0,downloadVoiceRecordings:!0},g.title="STAFF.NEW_USERPROFILE",g.newUserProfile=!0),g.addNewUserProfile=function(){g.errors=[],d.userProfile.save(g.userProfile).$promise.then(function(e){var n,t;t=[],(n=e).crudPermissions.forEach(function(e){var n;switch(e){case"r":n="READ_PERMISSION";break;case"e":n="EDIT_PERMISSION";break;case"d":n="DELETE_PERMISSION"}t.push(s.instant("STAFF."+n))}),n.selectedcrudPermissions=t.join(", "),g.userProfiles.unshift(e.toJSON()),o.success({title:"UserProfile properly created",msg:g.userProfile.name?g.userProfile.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.userProfile.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.userProfile.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveUserProfile=function(){g.errors=[],d.userProfile.update({id:g.userProfile.id},g.userProfile).$promise.then(function(e){var n=_.find(g.userProfiles,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"UserProfile properly saved!",msg:g.userProfile.name?g.userProfile.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.userProfile.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.userProfile.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteUserProfile=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The userProfile will be deleted.").ariaLabel("Delete UserProfile").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.userProfile.delete({id:g.userProfile.id}).$promise.then(function(){_.remove(g.userProfiles,{id:g.userProfile.id}),o.success({title:"UserProfile properly deleted!",msg:(g.userProfile.name||"userProfile")+" has been deleted!"}),v(g.userProfile)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.userProfile.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.userProfile.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","userProfiles","userProfile","api","Auth","license","setting","crudPermissions"],angular.module("app.staff").controller("CreateOrEditUserProfileDialogController",e)}(),function(){"use strict";function e(n,a,i,e,t,s,o){var r=this;function l(e){n.hide(e)}r.newUserProfile=!0,r.userProfile=angular.copy(t),r.userProfiles=s,r.title=o.instant("STAFF.CLONE_USERPROFILE"),t&&t.name&&(r.title+=": "+t.name),r.cloneUserProfile=function(){return e.userProfile.clone({id:t.id},r.userProfile).$promise.then(function(e){var n,t;t=[],(n=e).crudPermissions.forEach(function(e){var n;switch(e){case"r":n="READ_PERMISSION";break;case"e":n="EDIT_PERMISSION";break;case"d":n="DELETE_PERMISSION"}t.push(o.instant("STAFF."+n))}),n.selectedcrudPermissions=t.join(", "),r.userProfiles.unshift(e.toJSON()),i.success({title:"UserProfile properly cloned",msg:r.userProfile.name?r.userProfile.name+" has been cloned!":""}),a.go("app.staff.userProfiles.edit",{id:e.id}),l(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.userProfile.clone"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.userProfile.clone",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$mdDialog","$state","toasty","api","userProfile","userProfiles","$translate"],angular.module("app.staff").controller("UserProfilecloneController",e)}(),function(){"use strict";function e(t,o,r,l,d,e,n,c){var m=this;function u(e,n){switch(e.allResourcesEnabled="full"===n,n){case"full":return _.find(m.statusList,["tag","full"]);case"partial":return _.find(m.statusList,["tag","partial"]);case"disabled":return _.find(m.statusList,["tag","disabled"]);case"unlicensed":return _.find(m.statusList,["tag","unlicensed"]);case"unknown":default:return _.find(m.statusList,["tag","unknown"])}}function p(e){return l(function(n,t){var o,a;void 0!==e.channel&&_.includes(e.route,"Queue")?(a=e,l(function(n,t){var e=void 0!==a.channel&&"bull"===a.channel?"outbound":"inbound";return d[a.route].get({fields:"id,name,strategy,type",channel:"bull"===a.channel?"voice":a.channel,type:e,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})).then(function(e){n(e)}).catch(function(e){t(e)}):(o=e,l(function(a,n){switch(o.route){case"voiceExtension":var e;switch(o.title){case"InboundRoutes":e="inbound";break;case"OutboundRoutes":e="outbound";break;case"InternalRoutes":e="internal"}break;case"interval":var t=!0;break;case"disposition":var i=!0;break;case"user":var s;switch(o.title){case"Agents":s="agent";break;case"Telephones":s="telephone";break;case"Users":s="user"}}if("Reports"===o.title){if(!o.reportType)return d.analyticDefaultReport.get({nolimit:!0}).$promise.then(function(t){d.analyticCustomReport.get({nolimit:!0}).$promise.then(function(e){var n=_.union(t.rows,e.rows);a({count:n.length,rows:n.rows})})}).catch(function(e){n(e)});switch(o.reportType){case"default":o.route="analyticDefaultReport";break;case"custom":o.route="analyticCustomReport"}}return d[o.route].get({role:s||void 0,type:e||void 0,VoiceExtensionId:e?"null":void 0,IntervalId:t?"null":void 0,MailAccountId:i?"null":void 0,FaxAccountId:i?"null":void 0,SmsAccountId:i?"null":void 0,OpenchannelAccountId:i?"null":void 0,ChatWebsiteId:i?"null":void 0,WhatsappAccountId:i?"null":void 0,ListId:i?"null":void 0,nolimit:!0}).$promise.then(function(e){a(e)}).catch(function(e){n(e)})})).then(function(e){n(e)}).catch(function(e){t(e)})})}function g(e,n,t){var a=e&&0<e.length?e[0]:null;if(!a)return t;var i,s,o=_.find(n,["sectionId",a.id]);return o?(n=_.remove(n,["sectionId",a.id]),(i=a,s=o.id,l(function(n,t){d.userProfileResource.get({sectionId:s}).$promise.then(function(n){return p(i).then(function(e){return _.differenceBy(n.rows,e.rows,"id")})}).then(function(e){_.isEmpty(e)?n():t()}).catch(function(e){t(e)})})).then(function(){return t="full",g(e.shift(),n,t)}).catch(function(e){return l.reject(e)})):void 0}function a(a){var t="Marketplace"===a.title?"AppZone":a.title;m.license?void 0===a.permissions||a.permissions.association?void 0===a.license||m.license[a.license]?d.userProfileSection.get({userProfileId:m.userProfile.id,category:t}).$promise.then(function(e){var n=e&&e.rows&&0<e.rows.length?e.rows:[];if("Dashboards"===a.title)return _.isEmpty(n)?"disabled":n[0].autoAssociation?"full":d.userProfileResource.get({sectionId:n[0].id,resourceId:101}).$promise.then(function(e){return(e&&e.rows?e.rows[0]:null)?"full":"partial"});var t=_.filter(a.children,function(e){return void 0!==e.permissions&&e.permissions.hidden?void 0:e});return n.length!==t.length?0===n.length?"disabled":"partial":_.every(n,["autoAssociation",!0])?"full":g(_.filter(t,function(e){return void 0===e.permissions||e.permissions.association?e:void 0}),n,"partial")}).then(function(e){a.status=u(a,e)}).catch(function(e){var n=e?"unknown":"partial";a.status=u(a,n),e&&c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GETRESOURCES("+t.toUpperCase()+")",msg:e.status?JSON.stringify(e.data):e.toString()})}):a.status=u(a,"unlicensed"):d.userProfileSection.get({userProfileId:m.userProfile.id,sectionId:a.id}).$promise.then(function(e){var n=(e&&1===e.rows.length?e.rows[0]:null)?"full":"disabled";a.status=u(a,n)}):a.status=u(a,"unknown")}m.userProfile={},m.license={},m.navigation=e.getNavigation(),m.modules=m.navigation[0].children,m.statusList=[{id:0,name:"Fully Enabled",color:"green-A700-bg",info:"All resources enabled",tag:"full"},{id:1,name:"Partially Enabled",color:"orange-A700-bg",info:"Some resources enabled",tag:"partial"},{id:2,name:"Disabled",color:"grey-A400-bg",info:"No resources enabled",tag:"disabled"},{id:3,name:"Unlicensed",color:"red-A700-bg",info:"Module not included in the license",tag:"unlicensed"},{id:4,name:"Unknown",color:"grey-A700-bg",info:"Unknown status",tag:"unknown"}],m.dashboardSections=[{title:"Dashboards",translate:"DASHBOARDS.DASHBOARDS",id:100}],m.init=function(e,n){m.userProfile=e,m.license=n},m.onChangeEnableAllResources=function(n){var e=void 0!==n.permissions&&!n.permissions.association,a="Marketplace"===n.title?"AppZone":n.title;if("Fully Enabled"!==n.status.name){var i=[];if(e)return i.push({category:a,sectionId:n.id,name:a,enabled:!0,crudPermissions:"red"}),d.userProfile.addSections({id:m.userProfile.id},i).$promise.then(function(){n.status=u(n,"full"),c.success({title:r.instant("STAFF.NOTIFICATIONS.PERMISSIONS_ENABLED_ALL_SUCCESS_TITLE",{sectionName:r.instant(n.translate),userProfileName:m.userProfile.name}),msg:r.instant("STAFF.NOTIFICATIONS.PERMISSIONS_ENABLED_ALL_SUCCESS_MESSAGE_NO_RESOURCES",{sectionName:r.instant(n.translate),userProfileName:m.userProfile.name})})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:USERPROFILE.ADDSECTIONS",msg:e.status?JSON.stringify(e.data):e.toString()})});var t=o.confirm({skipHide:!0}).title("Warning").textContent(r.instant("STAFF.PERMISSIONS_WARNING_ENABLE_ALL",{sectionName:r.instant(n.translate)})).ariaLabel("Warning").ok(r.instant("STAFF.CONFIRM")).cancel(r.instant("STAFF.CANCEL"));o.show(t).then(function(){switch(a){case"Dashboards":_.map(m.dashboardSections,function(e){i.push({category:a,sectionId:e.id,name:e.title,enabled:!0,autoAssociation:!0,crudPermissions:_.map(m.userProfile.crudPermissions).join("")})});break;default:_.map(n.children,function(e){var n=!(void 0===e.permissions||!e.permissions.hidden);if(!n){var t=e.title;switch(a){case"CallySquare":t="Projects"===t?"SquareProjects":t}i.push({category:a,sectionId:e.id,name:t,enabled:!0,autoAssociation:!0,crudPermissions:_.map(m.userProfile.crudPermissions).join("")})}})}return d.userProfile.addSections({id:m.userProfile.id},i).$promise.then(function(){n.status=u(n,"full"),c.success({title:r.instant("STAFF.NOTIFICATIONS.PERMISSIONS_ENABLED_ALL_SUCCESS_TITLE",{sectionName:r.instant(n.translate),userProfileName:m.userProfile.name}),msg:r.instant("STAFF.NOTIFICATIONS.PERMISSIONS_ENABLED_ALL_SUCCESS_MESSAGE",{sectionName:r.instant(n.translate),userProfileName:m.userProfile.name})})})}).catch(function(e){e?c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:USERPROFILE.ADDSECTIONS",msg:e.status?JSON.stringify(e.data):e.toString()}):n.status=u(n,n.status.tag)})}else if("Fully Enabled"===n.status.name){n.status=u(n,"disabled");var s=[];switch(a){case"Settings":case"Help":s=[n.id];break;case"Dashboards":s=_.map(m.dashboardSections,function(e){return e.id});break;default:s=_.map(n.children,function(e){return e.id})}return d.userProfile.removeSections({id:m.userProfile.id,ids:s}).$promise.then(function(){c.success({title:r.instant("STAFF.NOTIFICATIONS.PERMISSIONS_DISABLED_ALL_SUCCESS_TITLE",{sectionName:r.instant(n.translate),userProfileName:m.userProfile.name}),msg:r.instant("STAFF.NOTIFICATIONS.PERMISSIONS_DISABLED_ALL_SUCCESS_MESSAGE",{sectionName:r.instant(n.translate),userProfileName:m.userProfile.name})})}).catch(function(e){c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:USERPROFILE.REMOVESECTIONS",msg:e.status?JSON.stringify(e.data):e.toString()})})}},m.manageResources=function(e,n){o.show({controller:"UserProfilepermissionsmanageController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/userProfiles/edit/permissionsmanage/permissionsmanage.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!1,locals:{userProfile:m.userProfile,userProfiles:[],section:e}}).then(function(){a(e)})},m.checkSectionResources=a}e.$inject=["$document","$mdDialog","$translate","$q","api","msNavigationService","Auth","toasty"],angular.module("app.staff").controller("UserProfilePermissionsController",e)}(),function(){"use strict";function e(n,t,i,o,r,e,a,l,s,d){var c=this;function m(){var a=void 0!==c.selectedSection.pending&&c.selectedSection.pending;return i(function(t,n){r.userProfileSection.get({userProfileId:c.userProfile.id,sectionId:c.selectedSection.id}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;a||(c.selectedSection.enabled=!!n&&!!n.enabled,c.selectedSection.autoAssociation=!!n&&!!n.autoAssociation,c.selectedSection.crudPermissions=v(n?n.crudPermissions:c.userProfile.crudPermissions)),t(n)}).catch(function(e){n(e)})})}function u(){return i(function(n,t){c.loadedSection?r.userProfileResource.get({sectionId:c.loadedSection.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)}):n(null)})}function p(){return i(function(n,t){void 0!==c.selectedSection.channel&&_.includes(c.selectedSection.route,"Queue")?i(function(n,t){var e=void 0!==c.selectedSection.channel&&"bull"===c.selectedSection.channel?"outbound":"inbound";return r[c.selectedSection.route].get({fields:"id,name,strategy,type",channel:"bull"===c.selectedSection.channel?"voice":c.selectedSection.channel,type:e,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){n(e)}).catch(function(e){t(e)}):i(function(n,t){var e,a;if("voiceExtension"===c.selectedSection.route)switch(c.selectedSection.title){case"InboundRoutes":e="inbound";break;case"OutboundRoutes":e="outbound";break;case"InternalRoutes":e="internal"}if("user"===c.selectedSection.route)switch(c.selectedSection.title){case"Agents":a="agent";break;case"Telephones":a="telephone";break;case"Users":a="user"}if("interval"===c.selectedSection.route)var i=!0;if("disposition"===c.selectedSection.route)var s=!0;if("Reports"===c.selectedSection.title&&(c.selectedSection.route="default"===c.selectedSection.reportType?"analyticDefaultReport":"analyticCustomReport"),"Dashboards"!==c.selectedSection.title)return r[c.selectedSection.route].get({role:a||void 0,type:e||void 0,VoiceExtensionId:e?"null":void 0,IntervalId:i?"null":void 0,MailAccountId:s?"null":void 0,FaxAccountId:s?"null":void 0,SmsAccountId:s?"null":void 0,OpenchannelAccountId:s?"null":void 0,ChatWebsiteId:s?"null":void 0,WhatsappAccountId:s?"null":void 0,ListId:s?"null":void 0,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)});n({count:1,rows:[{id:101,name:l.instant("DASHBOARDS.GENERAL")}]})}).then(function(e){n(e)}).catch(function(e){t(e)})})}function g(){var i=void 0!==c.selectedSection.pending&&c.selectedSection.pending,s=[];return u().then(function(e){var n;return s=e&&e.rows?e.rows:[],"Reports"===c.selectedSection.title&&(c.associatedReports=c.associatedReports?c.associatedReports:s,n=c.associatedReports,s=_.filter(n,{type:"default"===c.selectedSection.reportType?"DefaultReports":"CustomReports"})),void 0===c.selectedSection.permissions||c.selectedSection.permissions.association?p():{rows:[]}}).then(function(e){c.items=e.rows?_.map(e.rows,function(e){var n,t;return"Reports"===c.selectedSection.title&&(e.fullPath=(n=e.parent,t=c.treeStructure[0].text,t=function e(n,t,a){if(!a||_.isEmpty(a.children))return n;var a=_.find(a.children,function(e){return _.includes(t,e.id)?e:void 0});return n+=a?"/"+a.text:"",e(n,t,a)}(t,n,c.treeStructure[0])).replace(" ","_")),e.isValid=!0,e}):[],i||(c.selectedSection.selectedItems=_.map(s,function(e){return _.find(c.items,{id:e.resourceId})}));var n,t=_.differenceBy(c.selectedSection.selectedItems,c.items,"id");switch(_.isEmpty(t)||(c.selectedSection.selectedItems=_.pullAllBy(c.selectedSection.selectedItems,t,"id")),c.selectedSection.title){case"Contexts":c.selectedSection.selectedItems=_.filter(c.items,function(e){return e.defaultEntry?(e.isValid=!1,e):void 0!==_.find(s,{resourceId:e.id})?(e.isValid=!0,e):void 0});break;case"MusicOnHolds":c.selectedSection.selectedItems=_.filter(c.items,function(e){return e.defaultEntry?(e.isValid=!1,e):void 0!==_.find(s,{resourceId:e.id})?(e.isValid=!0,e):void 0});break;case"Reports":var a=(n=c.allReportsSelected,_.filter(n,function(e){return _.startsWith(e.parent,"default"===c.selectedSection.reportType?"motion":"custom")}));c.selectedSection.selectedItems=b(c.selectedSection.selectedItems),c.selectedSection.selectedItems=_.unionBy(c.selectedSection.selectedItems,a,"id")}c.dualMultiselectOptions.selectedItems=c.selectedSection.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.items,c.dualMultiselectOptions.selectedItems,"id")}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET"+c.selectedSection.title.toUpperCase(),msg:e.status?JSON.stringify(e.data):e.toString()})})}function v(e){return e&&(c.selectedSection.allowEdit=!!_.includes(e,"e"),c.selectedSection.allowDelete=!!_.includes(e,"d")),function(){var e=["r"];if(c.selectedSection.allowEdit)e.push("e");else{var n=_.indexOf(e,["e"]);0<n&&c.selectedSection.crudPermissions.replace("e","")}if(c.selectedSection.allowDelete)e.push("d");else{var n=_.indexOf(e,["d"]);0<n&&c.selectedSection.crudPermissions.replace("d","")}return e}()}function h(e){var n=_.findIndex(c.subsections,function(e){return e.id==c.selectedSection.id});c.subsections[n].pending=e,f()}function f(){return c.pendingChanges=_.some(c.subsections,["pending",!0])}function b(e){return _.remove(e,function(e){return _.startsWith(e.parent,"default"===c.selectedSection.reportType?"motion":"custom")})}function A(){_.isEmpty(c.selectedSection.selectedItems)?c.allReportsSelected=_.remove(c.allReportsSelected,function(e){return e.type===("default"===c.selectedSection.reportType?"CustomReports":"DefaultReports")}):c.selectedSection.selectedItems.forEach(function(e){_.some(c.allReportsSelected,{id:e.id,parent:e.parent})||c.allReportsSelected.push(e)})}c.userProfile=e,c.penalty=0,c.section=angular.copy(d),c.title=l.instant("STAFF.PERMISSIONS_SECTION_TITLE",{sectionName:l.instant(c.section.translate)}),c.items=[],c.selectedItems=[],c.subsections=_.filter(c.section.children,function(e){return void 0!==e.permissions&&e.permissions.hidden?void 0:e}),c.dashboardSections=[{title:"Dashboards",translate:"DASHBOARDS.DASHBOARDS",id:100}],c.dashboardItems=[],"Dashboards"===c.section.title&&(c.dashboardItems=c.subsections,c.subsections=c.dashboardSections),c.selectedSection=null,c.loadedSection=null,c.allReportsSelected=[],c.closeDialog=function(e){if(c.pendingChanges){var n=t.confirm({skipHide:!0}).title("Warning").textContent(l.instant("STAFF.PERMISSIONS_WARNING_CLOSE")).ariaLabel("Warning").targetEvent(e).ok(l.instant("STAFF.CLOSE")).cancel(l.instant("STAFF.CANCEL"));t.show(n).then(function(){t.hide()})}else t.hide()},c.onChangeSection=function(){return m().then(function(e){if(c.loadedSection=e,"Reports"===c.selectedSection.title)return i(function(n,t){r.analyticTreeReport.get({}).$promise.then(function(e){c.treeReports=e.rows||[],n(c.treeReports)}).catch(function(e){t(e)})}).then(function(){if(!c.selectedSection.reportType)return u().then(function(e){c.allReportsSelected=e?_.map(e.rows,function(e){return{id:e.resourceId,name:e.name,type:e.type}}):[]})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TREE_REPORT_STRUCTURE",msg:e.data?JSON.stringify(e.data):e.toString()})});g()}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET"+c.selectedSection.title.toUpperCase(),msg:e.status?JSON.stringify(e.data):e.toString()})})},c.onChangeVisibility=function(){c.selectedSection.enabled=!c.selectedSection.enabled,h(!0)},c.onChangeAutoAssociation=function(){if(!c.selectedSection.autoAssociation){for(var e=[],n=0;n<c.dualMultiselectOptions.items.length;n++)e.push(c.dualMultiselectOptions.items[n]),c.dualMultiselectOptions.selectedItems.push(c.dualMultiselectOptions.items[n]);c.dualMultiselectOptions.items=[],c.dualMultiselectOptions.transferCallback(e,!1)}h(!0)},c.onChangeReportType=function(){c.treeStructure="default"===c.selectedSection.reportType?c.treeReports[0]?angular.fromJson(c.treeReports[0].tree):[]:c.treeReports[1]?angular.fromJson(c.treeReports[1].tree):[],c.selectedSection.selectedItems&&(c.allReportsSelected=b(c.allReportsSelected),A());g()},c.setPermission=function(e){"edit"===e?c.selectedSection.allowEdit=!c.selectedSection.allowEdit:"delete"===e&&(c.selectedSection.allowDelete=!c.selectedSection.allowDelete);c.selectedSection.crudPermissions=v(),h(!0)},c.saveSection=function(){var a="Marketplace"===c.section.title?"AppZone":c.section.title,e=_(c.subsections).filter({pending:!0}).map(function(e){var n="CallySquare"===a&&"Projects"===e.title?"SquareProjects":e.title,t="Reports"===n?c.allReportsSelected:e.selectedItems;return"Integrations"===a&&(e.autoAssociation=!0),{category:a,sectionId:e.id,name:n,enabled:e.enabled,autoAssociation:e.autoAssociation,crudPermissions:_.map(e.crudPermissions).join(""),Resources:_.map(t,function(e){return{name:e.name,resourceId:e.id,type:function(e,n){if("Reports"!==e)return e;{if(n.parent){var t=_.startsWith(n.parent,"motion")?"Default":"Custom";return t+e}return n.type}}(n,e)}})}}).value();return r.userProfile.addSections({id:c.userProfile.id},e).$promise.then(function(){c.subsections.forEach(function(e){e.pending=void 0}),c.associatedReports=null,f(),"Reports"!==c.selectedSection.title||c.selectedSection.reportType||n.userProfileForm.$setPristine(),o.success({title:l.instant("STAFF.NOTIFICATIONS.PERMISSIONS_SAVED_SUCCESS_TITLE",{sectionName:l.instant(a.translate)}),msg:l.instant("STAFF.NOTIFICATIONS.PERMISSIONS_SAVED_SUCCESS_MESSAGE")})}).then(function(){return m().then(function(e){c.loadedSection=e})}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:USERPROFILE.ADDSECTIONS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",line4:"fullPath",labelAll:l.instant("STAFF.PERMISSIONS_ALL_RESOURCES"),labelSelected:l.instant("STAFF.PERMISSIONS_SELECTED_RESOURCES"),transferCallback:function(e,n){h(!0),n?(c.selectedSection.selectedItems=_.pullAllBy(c.selectedSection.selectedItems,e,"id"),c.selectedSection.autoAssociation=!1):c.selectedSection.selectedItems=_.unionBy(c.selectedSection.selectedItems,e,"id"),"Reports"===c.selectedSection.title&&A()}}}e.$inject=["$scope","$mdDialog","$q","toasty","api","userProfile","userProfiles","$translate","Auth","section"],angular.module("app.staff").controller("UserProfilepermissionsmanageController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.userProfile=c||e.params.userProfile||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.permissionsmanagedialog=function(e,n){t.show({controller:"UserProfilepermissionsmanageController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/userProfiles/edit/permissionsmanage/permissionsmanage.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{userProfile:e,userProfiles:u.userProfiles?u.userProfiles.rows:[],crudPermissions:u.crudPermissions}})},u.clonedialog=function(e,n){t.show({controller:"UserProfilecloneController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/userProfiles/edit/clone/clone.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{userProfile:e,userProfiles:u.userProfiles?u.userProfiles.rows:[],crudPermissions:u.crudPermissions}})},u.alert=l.info,u.gotoUserProfiles=function(){e.go("app.staff.userProfiles",{},{reload:"app.staff.userProfiles"})},u.saveUserProfile=function(){r.userProfile.update({id:u.userProfile.id},u.userProfile).$promise.then(function(){l.success({title:"UserProfile updated!",msg:u.userProfile.name?u.userProfile.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuserProfile",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","userProfile","userProfileSection"],angular.module("app.staff").controller("UserProfileController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.userProfiles=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="userProfiles",f.listOrder="",f.listOrderAsc=null,f.selectedUserProfiles=[],f.query={fields:"createdAt,updatedAt,id,name,description,crudPermissions,privacyEnabled,downloadAttachments,downloadCallySquareRecordings,downloadContactManagerLists,downloadJscriptySessions,downloadOmnichannelInteractions,downloadScreenRecordings,downloadVoiceRecordings",sort:"-updatedAt",limit:10,page:1},f.arraycrudPermissions=_.keyBy([{option:"Read_permission",value:"'r'",disabled:!0},{option:"Edit_permission",value:"'e'"},{option:"Delete_permission",value:"'d'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.userProfiles&&0<f.userProfiles.count&&f.userProfiles.rows.forEach(function(e){var n=[];e.crudPermissions.forEach(function(e){n.push(f.arraycrudPermissions[e].option)});var t=[];n.forEach(function(e){t.push(r.instant("STAFF."+e.toUpperCase()))}),e.selectedcrudPermissions=t.join(", ")}),f.editstate=function(e,n){t.go("app.staff.userProfiles.edit",{id:e.id,userProfile:e,crudPermissions:f.crudPermissions})},f.clonedialog=function(e,n){i.show({controller:"UserProfilecloneController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/userProfiles/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{userProfile:e,userProfiles:f.userProfiles?f.userProfiles.rows:[],crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("userProfile")+"?").htmlContent("<b>"+(e.name||"userProfile")+"</b> will be deleted.").ariaLabel("delete userProfile").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getUserProfiles=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.userProfile.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="UserProfiles",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditUserProfile=function(e,n){i.show({controller:"CreateOrEditUserProfileDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/userProfiles/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{userProfile:n,userProfiles:f.userProfiles.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteUserProfile=y,f.exportSelectedUserProfiles=function(){var e=angular.copy(f.selectedUserProfiles);return f.selectedUserProfiles=[],e},f.deleteSelectedUserProfiles=function(e){var n=i.confirm().title("Are you sure want to delete the selected userProfiles?").htmlContent("<b>"+f.selectedUserProfiles.length+" selected</b> will be deleted.").ariaLabel("delete UserProfiles").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedUserProfiles.forEach(function(e){y(e)}),f.selectedUserProfiles=[]})},f.deselectUserProfiles=function(){f.selectedUserProfiles=[]},f.selectAllUserProfiles=function(){f.selectedUserProfiles=f.userProfiles.rows};var b=!0,A=1;function E(e){f.userProfiles=e||{count:0,rows:[]}}function y(e){m.userProfile.delete({id:e.id}).$promise.then(function(){_.remove(f.userProfiles.rows,{id:e.id}),f.userProfiles.count-=1,f.userProfiles.rows.length||f.getUserProfiles(),p.success({title:_.startCase("UserProfile")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEuserProfile"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEuserProfile",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getUserProfiles())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","userProfiles","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.staff").controller("UserProfilesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="STAFF.EDIT_USER",g.user=angular.copy(l),g.users=r,g.newUser=!1,g.user||(g.user={role:"user",autointernal:!0,context:"from-sip"},g.title="STAFF.NEW_USER",g.newUser=!0),g.addNewUser=function(){g.errors=[],d.user.save(g.user).$promise.then(function(e){g.users.unshift(e.toJSON()),o.success({title:"User properly created",msg:g.user.name?g.user.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveUser=function(){g.errors=[],d.user.update({id:g.user.id},g.user).$promise.then(function(e){var n=_.find(g.users,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"User properly saved!",msg:g.user.name?g.user.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteUser=function(e){if(c.getCurrentUser().id===g.user.id)return o.error({title:"User not deleted!",msg:"You can't remove yourself"});g.errors=[];var n=a.confirm().title("Are you sure?").content("The user will be deleted.").ariaLabel("Delete User").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.user.delete({id:g.user.id}).$promise.then(function(){_.remove(g.users,{id:g.user.id}),o.success({title:"User properly deleted!",msg:(g.user.name||"user")+" has been deleted!"}),v(g.user)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.user.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,d.userProfile.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.userProfiles=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_USERPROFILES",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","users","user","api","Auth","license","setting","crudPermissions"],angular.module("app.staff").controller("CreateOrEditUserDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i){var s=this;function o(){e.hide()}s.currentUser=i.getCurrentUser(),s.errors=[],s.user=a,s.generateApiKey=function(){s.errors=[],t.user.createApiKey({id:s.user.id}).$promise.then(function(e){s.user.apiKey=e.api_key||"N/A",n.success({title:"User API key updated!"}),o()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.createApiKey",msg:e.data?JSON.stringify(e.data.message):e.toString()}),s.errors=e.data.errors||[{message:e.toString(),type:"api.user.createApiKey"}]})},s.removeApiKey=function(){s.errors=[],t.user.removeApiKey({id:s.user.id}).$promise.then(function(){s.user.apiKey="N/A",n.success({title:"User API key removed!"}),o()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.removeApiKey",msg:e.data?JSON.stringify(e.data.message):e.toString()}),s.errors=e.data.errors||[{message:e.toString(),type:"api.user.removeApiKey"}]})},s.closeDialog=o}e.$inject=["$mdDialog","toasty","api","user","Auth"],angular.module("app.staff").controller("UserapikeymanagerController",e)}(),function(){"use strict";function e(e,a){var i=this;i.user={},i.crudPermissions,i.ngFlowOptions={singleFile:!0,maxChunkRetries:1,chunkSize:8388608,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0},i.ngFlow={flow:{}},i.dropping=!1,i.fileAdded=function(e){var n=["png","jpg"];if(!_.includes(n,e.getExtension()))return a.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(8388608<e.size)return a.error({title:"File too big",msg:"The max allowed size is 8MB"}),!1;var t={id:e.uniqueIdentifier,file:e,type:"uploading"};return i.user.images.unshift(t),!0},i.upload=function(){i.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},i.ngFlow.flow.upload()},i.fileSuccess=function(a,e){angular.forEach(i.user.images,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result},n.type="image"}})},i.init=function(e,n){i.user=angular.copy(e),i.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},i.ngFlowOptions.target="api/users/"+i.user.id+"/avatar",i.user.images=[]}}e.$inject=["$cookies","toasty"],angular.module("app.staff").controller("Userchange_avatarController",e)}(),function(){"use strict";function e(t,e,n,a,i,s,o){var r=this;function l(){e.hide()}r.currentUser=o.getCurrentUser(),r.errors=[],r.setting=s,r.passwordPattern=r.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",r.user=i,r.password="",r.oldPassword="",r.savePassword=function(){r.errors=[];var e={id:r.user.id,newPassword:r.password};r.currentUser.id==r.user.id&&(e.oldPassword=r.oldPassword);a.user.changePassword(e).$promise.then(function(){n.success({title:"User password properly updated!"}),l()}).catch(function(e){n.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.user.save",msg:e.data?JSON.stringify(e.data.message):e.toString()}),r.errors=e.data.errors||[{message:e.toString(),type:"api.user.changePassword"}]})},r.closeDialog=l,t.$watch("vm.password",function(e,n){_.isNil(r.oldPassword)||(e===r.oldPassword?t.userForm.password.$setValidity("oldPasswordMatch",!1):t.userForm.password.$setValidity("oldPasswordMatch",!0))})}e.$inject=["$scope","$mdDialog","toasty","api","user","setting","Auth"],angular.module("app.staff").controller("UserchangepasswordController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.user=c||e.params.user||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.apikeymanagerdialog=function(e,n){t.show({controller:"UserapikeymanagerController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/users/edit/apikeymanager/apikeymanager.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{user:e,users:u.users?u.users.rows:[],crudPermissions:u.crudPermissions}})},u.changepassworddialog=function(e,n){t.show({controller:"UserchangepasswordController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/users/edit/changepassword/changepassword.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{user:e,setting:o,users:u.users?u.users.rows:[],crudPermissions:u.crudPermissions}})},u.alert=l.info,u.gotoUsers=function(){e.go("app.staff.users",{},{reload:"app.staff.users"})},u.saveUser=function(){u.user=_.omit(u.user,"userpic"),r.user.update({id:u.user.id},u.user).$promise.then(function(){l.success({title:"User updated!",msg:u.user.name?u.user.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETuser",msg:e.data?JSON.stringify(e.data):e.toString()})})},r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CONTEXTS",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.userProfile.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.userProfiles=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_USERPROFILES",msg:e.data?JSON.stringify(e.data):e.toString()})}),r.user.getApiKey({id:u.user.id}).$promise.then(function(e){u.user.apiKey=e.api_key?e.api_key:"N/A"}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_APIKEY",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","user","userProfileSection"],angular.module("app.staff").controller("UserController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.users=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="users",f.listOrder="",f.listOrderAsc=null,f.selectedUsers=[],f.query={fields:"createdAt,updatedAt,role,userProfileId,id,fullname,name,email,phone,mobile,userpic,password,description,autointernal,internal,transport,nat,allow,context,callgroup,pickupgroup,passwordResetAt,apiKey,videosupport,disabled,blocked",role:"admin,user",sort:"-updatedAt",limit:10,page:1},f.arrayrole=_.keyBy([{option:"Admin",value:"'admin'"},{option:"User",value:"'user'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraytransport=_.keyBy([{option:"udp",value:"'udp'"},{option:"tcp",value:"'tcp'"},{option:"ws",value:"'ws'"},{option:"wss",value:"'wss'"},{option:"tls",value:"'tls'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraynat=_.keyBy([{option:"force_rport",value:"'force_rport'"},{option:"comedia",value:"'comedia'"},{option:"yes",value:"'yes'"},{option:"no",value:"'no'"},{option:"never",value:"'never'"},{option:"route",value:"'route'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayallow=_.keyBy([{option:"ulaw",value:"'ulaw'"},{option:"alaw",value:"'alaw'"},{option:"gsm",value:"'gsm'"},{option:"g722",value:"'g722'"},{option:"g729",value:"'g729'"},{option:"opus",value:"'opus'"},{option:"h264",value:"'h264'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayvideosupport=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Always",value:"'always'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.staff.users.edit",{id:e.id,user:e,crudPermissions:f.crudPermissions})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("user")+"?").htmlContent("<b>"+(e.name||"user")+"</b> will be deleted.").ariaLabel("delete user").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getUsers=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.user.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Users",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditUser=function(e,n){i.show({controller:"CreateOrEditUserDialogController",controllerAs:"vm",templateUrl:"app/main/apps/staff/views/users/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{user:n,users:f.users.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteUser=y,f.exportSelectedUsers=function(){var e=angular.copy(f.selectedUsers);return f.selectedUsers=[],e},f.deleteSelectedUsers=function(e){var n=i.confirm().title("Are you sure want to delete the selected users?").htmlContent("<b>"+f.selectedUsers.length+" selected</b> will be deleted.").ariaLabel("delete Users").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedUsers.forEach(function(e){y(e)}),f.selectedUsers=[]})},f.deselectUsers=function(){f.selectedUsers=[]},f.selectAllUsers=function(){f.selectedUsers=f.users.rows},m.userProfile.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.userProfiles=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_USERPROFILES",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.users=e||{count:0,rows:[]}}function y(e){m.user.delete({id:e.id}).$promise.then(function(){_.remove(f.users.rows,{id:e.id}),f.users.count-=1,f.users.rows.length||f.getUsers(),p.success({title:_.startCase("User")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEuser"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEuser",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getUsers())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","users","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.staff").controller("UsersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.cannedAnswers=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="cannedAnswers",f.listOrder="",f.listOrderAsc=null,f.selectedCannedAnswers=[],f.query={fields:"createdAt,updatedAt,id,key,value,description",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/cannedAnswers/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{cannedAnswer:e,cannedAnswers:f.cannedAnswers.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("cannedAnswer")+"?").htmlContent("<b>"+(e.name||"cannedAnswer")+"</b> will be deleted.").ariaLabel("delete cannedAnswer").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getCannedAnswers=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.cannedAnswer.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="CannedAnswers",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditCannedAnswer=function(e,n){i.show({controller:"CreateOrEditCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/cannedAnswers/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{cannedAnswer:n,cannedAnswers:f.cannedAnswers.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteCannedAnswer=y,f.exportSelectedCannedAnswers=function(){var e=angular.copy(f.selectedCannedAnswers);return f.selectedCannedAnswers=[],e},f.deleteSelectedCannedAnswers=function(e){var n=i.confirm().title("Are you sure want to delete the selected cannedAnswers?").htmlContent("<b>"+f.selectedCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete CannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedCannedAnswers.forEach(function(e){y(e)}),f.selectedCannedAnswers=[]})},f.deselectCannedAnswers=function(){f.selectedCannedAnswers=[]},f.selectAllCannedAnswers=function(){f.selectedCannedAnswers=f.cannedAnswers.rows};var b=!0,A=1;function E(e){f.cannedAnswers=e||{count:0,rows:[]}}function y(e){m.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(f.cannedAnswers.rows,{id:e.id}),f.cannedAnswers.count-=1,f.cannedAnswers.rows.length||f.getCannedAnswers(),p.success({title:_.startCase("CannedAnswer")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEcannedAnswer"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEcannedAnswer",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getCannedAnswers())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","cannedAnswers","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("CannedAnswersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_CANNEDANSWER",g.cannedAnswer=angular.copy(l),g.cannedAnswers=r,g.newCannedAnswer=!1,g.cannedAnswer||(g.cannedAnswer={},g.title="TOOLS.NEW_CANNEDANSWER",g.newCannedAnswer=!0),g.addNewCannedAnswer=function(){g.errors=[],d.cannedAnswer.save(g.cannedAnswer).$promise.then(function(e){g.cannedAnswers.unshift(e.toJSON()),o.success({title:"CannedAnswer properly created",msg:g.cannedAnswer.name?g.cannedAnswer.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveCannedAnswer=function(){g.errors=[],d.cannedAnswer.update({id:g.cannedAnswer.id},g.cannedAnswer).$promise.then(function(e){var n=_.find(g.cannedAnswers,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"CannedAnswer properly saved!",msg:g.cannedAnswer.name?g.cannedAnswer.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteCannedAnswer=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The cannedAnswer will be deleted.").ariaLabel("Delete CannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cannedAnswer.delete({id:g.cannedAnswer.id}).$promise.then(function(){_.remove(g.cannedAnswers,{id:g.cannedAnswer.id}),o.success({title:"CannedAnswer properly deleted!",msg:(g.cannedAnswer.name||"cannedAnswer")+" has been deleted!"}),v(g.cannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","cannedAnswers","cannedAnswer","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_CUSTOMDASHBOARD",g.customDashboard=angular.copy(l),g.customDashboards=r,g.newCustomDashboard=!1,g.customDashboard||(g.customDashboard={},g.title="TOOLS.NEW_CUSTOMDASHBOARD",g.newCustomDashboard=!0),g.addNewCustomDashboard=function(){g.errors=[],d.dashboard.save(g.customDashboard).$promise.then(function(e){g.customDashboards.unshift(e.toJSON()),o.success({title:"CustomDashboard properly created",msg:g.customDashboard.name?g.customDashboard.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.dashboard.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboard.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveCustomDashboard=function(){g.errors=[],d.dashboard.update({id:g.customDashboard.id},g.customDashboard).$promise.then(function(e){var n=_.find(g.customDashboards,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"CustomDashboard properly saved!",msg:g.customDashboard.name?g.customDashboard.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.dashboard.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboard.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteCustomDashboard=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The customDashboard will be deleted.").ariaLabel("Delete CustomDashboard").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.dashboard.delete({id:g.customDashboard.id}).$promise.then(function(){_.remove(g.customDashboards,{id:g.customDashboard.id}),o.success({title:"CustomDashboard properly deleted!",msg:(g.customDashboard.name||"customDashboard")+" has been deleted!"}),v(g.customDashboard)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.dashboard.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboard.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","customDashboards","customDashboard","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditCustomDashboardDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.customDashboards=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="customDashboards",f.listOrder="",f.listOrderAsc=null,f.selectedCustomDashboards=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},f.editstate=function(e,n){t.go("app.tools.customDashboards.edit",{id:e.id,customDashboard:e,crudPermissions:f.crudPermissions})},f.clonedialog=function(e,n){i.show({controller:"CustomDashboardcloneController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{customDashboard:e,customDashboards:f.customDashboards?f.customDashboards.rows:[],crudPermissions:f.crudPermissions}})},f.gotodashboardgoto=function(e,n){t.go("app.dashboards.custom",{id:e.id})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("customDashboard")+"?").htmlContent("<b>"+(e.name||"customDashboard")+"</b> will be deleted.").ariaLabel("delete customDashboard").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getCustomDashboards=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.dashboard.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="CustomDashboards",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditCustomDashboard=function(e,n){i.show({controller:"CreateOrEditCustomDashboardDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{customDashboard:n,customDashboards:f.customDashboards.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteCustomDashboard=y,f.exportSelectedCustomDashboards=function(){var e=angular.copy(f.selectedCustomDashboards);return f.selectedCustomDashboards=[],e},f.deleteSelectedCustomDashboards=function(e){var n=i.confirm().title("Are you sure want to delete the selected customDashboards?").htmlContent("<b>"+f.selectedCustomDashboards.length+" selected</b> will be deleted.").ariaLabel("delete CustomDashboards").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedCustomDashboards.forEach(function(e){y(e)}),f.selectedCustomDashboards=[]})},f.deselectCustomDashboards=function(){f.selectedCustomDashboards=[]},f.selectAllCustomDashboards=function(){f.selectedCustomDashboards=f.customDashboards.rows};var b=!0,A=1;function E(e){f.customDashboards=e||{count:0,rows:[]}}function y(e){m.dashboard.delete({id:e.id}).$promise.then(function(){_.remove(f.customDashboards.rows,{id:e.id}),f.customDashboards.count-=1,f.customDashboards.rows.length||f.getCustomDashboards(),p.success({title:_.startCase("CustomDashboard")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdashboard"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdashboard",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getCustomDashboards())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","customDashboards","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("CustomDashboardsController",e)}(),function(){"use strict";function e(n,t,a,e,i,s,o){var r=this;function l(e){n.hide(e)}r.newCustomDashboard=!0,r.customDashboard=angular.copy(i),r.customDashboards=s,r.title=o.instant("TOOLS.CLONE_CUSTOMDASHBOARD"),i&&i.name&&(r.title+=": "+i.name),r.cloneCustomDashboard=function(){return e.dashboard.clone({id:i.id,includeAll:!0},r.customDashboard).$promise.then(function(e){r.customDashboards.unshift(e.toJSON()),a.success({title:"CustomDashboard properly cloned",msg:r.customDashboard.name?r.customDashboard.name+" has been cloned!":""}),t.go("app.tools.customDashboards.edit",{id:e.id}),l(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.dashboard.clone"}];for(var n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboard.clone",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$mdDialog","$state","toasty","api","customDashboard","customDashboards","$translate"],angular.module("app.tools").controller("CustomDashboardcloneController",e)}(),function(){"use strict";function e(t,a,e,i,s){var o=this;function r(e,n,t){return s.dashboardItem.update(t).$promise.catch(function(e){console.error(e)})}o.customDashboard={},o.voiceQueues=s.rpc.getVoiceQueues({fields:"id,name"}),o.init=function(e,n){return o.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},o.customDashboard=e,o.customDashboard.draggable={enabled:!0,handle:".draggable",stop:r},o.customDashboard.resizable={enabled:!0,handle:".resizable",stop:r},o.customDashboard.widgets=[],s.dashboard.getItems({id:e.id}).$promise.then(function(e){if(e&&e.count&&e.rows)for(var n=0;n<e.rows.length;n+=1)e.rows[n].voiceQueues=o.voiceQueues,e.rows[n].voiceQueuesSelected=_.map(o.voiceQueues.rows,"id"),e.rows[n].templateUrl="app/core/directives/ms-widget-engine/ms-widget-engine-"+e.rows[n].type+"/ms-widget-engine."+e.rows[n].type+".html",o.customDashboard.widgets.push(e.rows[n])}).catch(function(e){console.error(e)})},o.createOrEditWidget=function(e){if(e&&e.attrs)for(var n=0;n<e.attrs.length;n+=1)"attrReport"===e.attrs[n].name&&(e.reportType=e.attrs[n].type),e[e.attrs[n].name]=e.attrs[n].value;t.show({controller:"CreateOrEditDashboardItemDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/edit/dashboard/dialog.html",parent:angular.element(a.body),clickOutsideToClose:!0,locals:{dashboarditem:e,dashboard:o.customDashboard.widgets,license:null,setting:null,crudPermissions:o.crudPermissions}}).then(function(e){if(e)for(var n=0;n<o.customDashboard.widgets.length;n+=1)o.customDashboard.widgets[n].id===e.id&&(o.customDashboard.widgets[n].attrs=e.attrs,o.customDashboard.widgets[n].voiceQueues=o.voiceQueues,o.customDashboard.widgets[n].voiceQueuesSelected=_.map(o.voiceQueues.rows,"id"),o.customDashboard.widgets[n].templateUrl="app/core/directives/ms-widget-engine/ms-widget-engine-"+o.customDashboard.widgets[n].type+"/ms-widget-engine."+o.customDashboard.widgets[n].type+".html")})},o.deleteWidget=function(n){var e=t.confirm().title("Would you like to delete "+n.title+"?").textContent("").ariaLabel("Delete Widget").ok("YES").cancel("NO");t.show(e).then(function(){return s.dashboardItem.delete({id:n.id}).$promise.then(function(e){_.remove(o.customDashboard.widgets,{id:n.id}),i.success({title:"Widget deleted!",msg:n.name?n.name+" has been deleted!":"Widget has been deleted!"})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){o.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETE.customDashboard"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdashboard",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()});console.error(e)})})}}e.$inject=["$mdDialog","$document","socket","toasty","api"],angular.module("app.tools").controller("CustomDashboardItemsController",e)}(),function(){"use strict";function e(n,e,t,a,o,i,s,r,l,d,c,m,u,p){var g=this;g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_DASHBOARDITEM",g.dashboarditem=angular.copy(l),g.dashboard=r,g.newDashboardItem=!1,g.selectedReport=[],g.query={fields:"createdAt,updatedAt,id,name,description,table,parent,conditions,joins",limit:10,page:1,sort:"-updatedAt"},g.dashboarditem?"web-report"==g.dashboarditem.type&&(g.apiName="custom"===g.dashboarditem.reportType?"analyticCustomReport":"analyticDefaultReport",d[g.apiName].get({fields:"id,name,parent"}).$promise.then(function(e){g.currentReport=_.find(e.rows,{id:g.dashboarditem.attrReport}),g.dashboarditem.report=g.currentReport.name,g.query.parent=g.currentReport.parent})):(g.dashboarditem={type:"counter",titleFontSize:12,attrUrl:"https://",attrHourFormat:"HH:mm:ss",attrTimezone:"0.00",attrMetric:"total",attrSerie1:"total",attrSerie2:"null",attrSerie3:"null",attrRefresh:10,attrFontSize:20,foreground:"#2196f3",background:"#ffffff"},g.title="TOOLS.NEW_DASHBOARDITEM",g.newDashboardItem=!0),g.addNewDashboardItem=function(){g.errors=[],d.dashboard.addItem({id:e.params.id},g.dashboarditem).$promise.then(function(e){g.dashboard.unshift(e.toJSON()),s.success({title:"DashboardItem properly created",msg:g.dashboarditem.name?g.dashboarditem.name+" has been created!":""}),I(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.dashboardItem.save"}];for(var n=0;n<e.data.errors.length;n+=1)s.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboardItem.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveDashboardItem=function(){g.errors=[],d.dashboardItem.update({id:g.dashboarditem.id},g.dashboarditem).$promise.then(function(e){var n=_.find(g.dashboard,{id:e.id});n&&_.merge(n,e.toJSON()),s.success({title:"DashboardItem properly saved!",msg:g.dashboarditem.name?g.dashboarditem.name+" has been saved!":""}),I(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.dashboardItem.update"}];for(var n=0;n<e.data.errors.length;n++)s.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboardItem.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteDashboardItem=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The dashboarditem will be deleted.").ariaLabel("Delete DashboardItem").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.dashboardItem.delete({id:g.dashboarditem.id}).$promise.then(function(){_.remove(g.dashboard,{id:g.dashboarditem.id}),s.success({title:"DashboardItem properly deleted!",msg:(g.dashboarditem.name||"dashboarditem")+" has been deleted!"}),I(g.dashboarditem)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.dashboardItem.delete"}];for(var n=0;n<e.data.errors.length;n++)s.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.dashboardItem.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.getReports=S,g.selectReport=function(){if(g.dashboarditem.report=g.selectedReport[0].name,g.dashboarditem.attrReport=g.selectedReport[0].id,g.dashboarditem.reportType=g.currentNode.custom?"custom":"default",!g.newDashboardItem){var e={name:"attrReport",type:g.dashboarditem.reportType,value:g.selectedReport[0].id};g.dashboarditem.attrs.splice(_.findIndex(g.dashboarditem.attrs,1,e))}n.dashboarditemForm.report.$setDirty(),a.hide()},g.closeReportDialog=function(){a.hide()},g.searchReport=function(){g.treeDefaultData=g.treeReports[0]?angular.fromJson(g.treeReports[0].tree):[],g.treeCustomData=g.treeReports[1]?angular.fromJson(g.treeReports[1].tree):[],g.treeConfig=(n={core:{multiple:!1,animation:!0,error:function(e){console.error("treeCtrl: error from js tree - "+angular.toJson(e))},check_callback:!0,worker:!0},version:1,plugins:["wholerow"]},"admin"!==g.currentUser.role?d.userProfileSection.get({fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:g.currentUser.userProfileId,sectionId:1203}).$promise.then(function(e){return g.userProfileSection=e&&1==e.count?e.rows[0]:null,n}).catch(function(e){s.error({title:"ERROR",msg:e.message})}):n),g.treeDefaultEvents=f(!1),g.treeCustomEvents=f(!0),a.show({controller:function(){return g},controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/partialViews/reports/treeReports.html",autoWrap:!0,skipHide:!0});var n},g.closeDialog=I,d.analyticTreeReport.get({}).$promise.then(function(e){g.treeReports=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TREEREPORTS",msg:e.data?JSON.stringify(e.data):e.toString()})});var v=[{id:401,type:"inbound"},{id:1501,type:"outbound"}],h=null;function f(e){return e?{loaded:E,select_node:b}:{loaded:y,select_node:A}}function b(e,n){g.treeDefaultInstance.jstree(!0).deselect_all(),g.treeDefaultInstance.jstree(!0).close_all(),g.currentNode=n.node,g.currentNode.custom=!0,g.currentPath=g.treeCustomInstance.jstree(!0).get_path(g.currentNode).join("/ "),g.apiName="analyticCustomReport",g.query.parent=n.node.id,S()}function A(e,n){g.treeCustomInstance.jstree(!0).deselect_all(),g.treeCustomInstance.jstree(!0).close_all(),g.currentNode=n.node,g.currentNode.custom=!1,g.currentPath=g.treeDefaultInstance.jstree(!0).get_path(g.currentNode).join("/ "),g.apiName="analyticDefaultReport",g.query.parent=n.node.id,S()}function E(){if(!g.newDashboardItem&&"analyticCustomReport"===g.apiName){var e=g.treeCustomInstance.jstree(!0).get_node(g.query.parent);b(0,{node:e,selected:e.id})}}function y(){if(!g.newDashboardItem&&"analyticDefaultReport"===g.apiName){var e=g.treeDefaultInstance.jstree(!0).get_node(g.query.parent);A(0,{node:e,selected:e.id})}}function S(){if(g.query.offset=(g.query.page-1)*g.query.limit,g.apiName)if("admin"===g.currentUser.role)g.promise=d[g.apiName].get(g.query,T).$promise;else{if(!g.userProfileSection)return T(null);if(g.userProfileSection.autoAssociation)g.promise=d[g.apiName].get(g.query,T).$promise;else{var a=[];g.promise=d[g.apiName].get(g.query).$promise.then(function(e){return 0<(a=e&&e.rows?e.rows:[]).length?d.userProfileResource.get({sectionId:g.userProfileSection.id,type:"analyticDefaultReport"===g.apiName?"DefaultReports":"CustomReports"}).$promise.then(function(e){var n=e&&e.rows?e.rows:[];if(0<n.length){var t=[];return a.forEach(function(e){_.find(n,["resourceId",e.id])&&t.push(e)}),T({count:t.length,rows:t})}return T(null)}):T(null)}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_REPORTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}}}function T(e){g.reports=e||{count:0,rows:[]},g.newDashboardItem||g.selectedReport.push(_.find(g.reports.rows,{id:g.currentReport.id}))}function I(e){a.hide(e)}c.hasRole("admin")?d.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){g.voiceQueues=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VOICEQUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){h=e.rows||[]}).then(function(){for(var e=[],n=0;n<v.length;n++)e.push(d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:v[n].id}).$promise);return o.all(e)}).then(function(e){for(var n=_.map(e,function(e){return e&&e.rows?e.rows[0]:null}),t=[],a=0;a<v.length;a++){var i=_.find(n,["sectionId",v[a].id]);if(i)if(i.autoAssociation){var s=[];h.forEach(function(e){e.type===v[a].type&&s.push(e)}),t.push({rows:s,count:s.length})}else t.push(d.userProfileResource.get({sectionId:i.id}).$promise)}return o.all(t)}).then(function(e){var n=[],t=null;g.dashboarditem&&(t=_.find(h,{id:Number(g.dashboarditem.attrVoiceQueues)}));for(var a=0;a<e.length;a++){(e[a].rows||[]).forEach(function(e){n.push(e)})}t&&!_.some(n,["resourceId",t.id])&&h.forEach(function(e){e.id===t.id&&(e.canSelect=!1,n.push(e))}),g.voiceQueues=n}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","dashboard","dashboarditem","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditDashboardItemDialogController",e)}(),function(){"use strict";function e(t,e,a,i,n,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.customDashboard=c||t.params.customDashboard||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=t.params.tab||0,u.clonedialog=function(e,n){a.show({controller:"CustomDashboardcloneController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/customDashboards/edit/clone/clone.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{customDashboard:e,customDashboards:u.customDashboards?u.customDashboards.rows:[],crudPermissions:u.crudPermissions}})},u.gotogoto=function(e,n){t.go("app.dashboards.custom",{id:e.id})},u.alert=l.info,u.gotoCustomDashboards=function(){t.go("app.tools.customDashboards",{},{reload:"app.tools.customDashboards"})},u.saveCustomDashboard=function(){r.dashboard.update({id:u.customDashboard.id},u.customDashboard).$promise.then(function(){l.success({title:"CustomDashboard updated!",msg:u.customDashboard.name?u.customDashboard.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETdashboard",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","customDashboard","userProfileSection"],angular.module("app.tools").controller("CustomDashboardController",e)}(),function(){"use strict";function e(a,i,o,r,e,l,d,n,t,s,c){var m=this;if(m.currentUser=n.getCurrentUser(),m.disposition=angular.copy(e),m.setting=c,m.license=s,m.crudPermissions=t,m.newDisposition=!1,m.errors=[],m.disposition||(m.disposition={level:"first"},m.newDisposition=!0),l){var u=l.field;m.disposition[u]=l.id}function p(){return o(function(t,n){d.disposition.get({fields:"id,name,level,ParentId",sort:"id",nolimit:"true"}).$promise.then(function(e){var n=e.rows||[];return t(n)}).catch(function(e){n(e)})})}function g(e){"first"===e.level?m.firstLevelDisposition=e:(m.anySecondLevelDisposition=!0,m.secondLevelDisposition=e,m.firstLevelDisposition=_.find(m.dispositions,["id",m.secondLevelDisposition.ParentId]),m.firstLevelDisposition||p().then(function(){m.firstLevelDisposition=_.find(m.allDispositions,["id",m.secondLevelDisposition.ParentId]),m.firstLevelDisposition.canSelect=!1,m.dispositions.push(m.firstLevelDisposition)}))}function v(e){a.hide(e)}m.onInit=function(){var n="disposition";l?n=l.route:"user"===m.currentUser.role&&(n="userProfile");var t="get";l?t="getDispositions":"user"===m.currentUser.role&&(t="getResources");var e={fields:"id,name,level,ParentId",id:l?l.id:void 0,section:"user"===m.currentUser.role?"Dispositions":void 0,MailAccountId:l?void 0:"null",FaxAccountId:l?void 0:"null",SmsAccountId:l?void 0:"null",OpenchannelAccountId:l?void 0:"null",ChatWebsiteId:l?void 0:"null",WhatsappAccountId:l?void 0:"null",ListId:l?void 0:"null",sort:"id",nolimit:"true"};(a=n,i=t,s=e,o(function(t,n){d[a][i](s).$promise.then(function(e){var n=e.rows||[];return t(n)}).catch(function(e){n(e)})})).then(function(e){m.dispositions=angular.copy(e),m.newDisposition||function(){if("first"===m.disposition.level)return;if(m.parentDisposition=_.find(m.dispositions,["id",m.disposition.ParentId]),!m.parentDisposition)return p().then(function(e){m.allDispositions=e;for(var n=0;n<m.allDispositions.length;n++){var t=m.allDispositions[n];if(t.id===m.disposition.ParentId){g(t),t.canSelect=!1,m.dispositions.push(t);break}}});g(m.parentDisposition)}()}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:["api",n,t].join(":"),msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})});var a,i,s},m.onFirstLevelSelection=function(){m.secondLevelDisposition=void 0,m.anySecondLevelDisposition=_.some(m.dispositions,function(e){return e.ParentId===m.firstLevelDisposition.id&&e.id!=m.disposition.id})},m.addNewDisposition=function(){m.errors=[],m.secondLevelDisposition?(m.disposition.ParentId=m.secondLevelDisposition.id,m.disposition.level="third"):m.firstLevelDisposition&&(m.disposition.ParentId=m.firstLevelDisposition.id,m.disposition.level="second");d.disposition.save(m.disposition).$promise.then(function(e){m.dispositions.unshift(e.toJSON()),r.success({title:i.instant("TOOLS.NOTIFICATIONS.DISPOSITION_CREATED_SUCCESS_TITLE")}),v(!0)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.save"}];for(var n=0;n<e.data.errors.length;n+=1)r.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.disposition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.saveDisposition=function(){m.errors=[],m.secondLevelDisposition?(m.disposition.ParentId=m.secondLevelDisposition.id,m.disposition.level="third"):m.firstLevelDisposition&&(m.disposition.ParentId=m.firstLevelDisposition.id,m.disposition.level="second");d.disposition.update({id:m.disposition.id},m.disposition).$promise.then(function(e){var n=_.find(m.dispositions,{id:e.id});n&&_.merge(n,e.toJSON()),r.success({title:i.instant("TOOLS.NOTIFICATIONS.DISPOSITION_SAVED_SUCCESS_TITLE")}),v(!0)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.update"}];for(var n=0;n<e.data.errors.length;n++)r.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.disposition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.deleteDisposition=function(e){m.errors=[];var n=_.some(m.dispositions,["ParentId",m.disposition.id]),t=a.confirm({skipHide:!0}).title(i.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(i.instant("TOOLS.NOTIFICATIONS."+(n?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:m.disposition.name})).ariaLabel("Delete disposition").ok(i.instant("TOOLS.DELETE")).cancel(i.instant("TOOLS.CANCEL")).targetEvent(e);a.show(t).then(function(){d.disposition.delete({id:m.disposition.id}).$promise.then(function(){r.success({title:i.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")}),v(!0)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"api.disposition.delete"}];for(var n=0;n<e.data.errors.length;n++)r.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.disposition.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})})},m.clearSelection=function(e){"first"===e?(m.firstLevelDisposition=void 0,m.secondLevelDisposition=void 0,m.anySecondLevelDisposition=!1):m.secondLevelDisposition=void 0},m.closeDialog=v}e.$inject=["$mdDialog","$translate","$q","toasty","disposition","model","api","Auth","crudPermissions","license","setting"],angular.module("app.tools").controller("CreateOrEditDispositionDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v){var h=this;function f(e){h.dispositions=e||{count:0,rows:[]}}function b(){h.query.offset=(h.query.page-1)*h.query.limit,p.isAdmin()?h.promise=m.disposition.get(h.query,f).$promise:(h.query.id=h.userProfile.id,h.query.section="Dispositions",h.promise=m.userProfile.getResources(h.query,f).$promise)}function A(e){m.disposition.delete({id:e.id}).$promise.then(function(){b(),u.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){h.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)u.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else u.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}h.license=g,h.setting=v,h.currentUser=p.getCurrentUser(),h.dispositions=l||{count:0,rows:[]},h.userProfile=d,h.userProfileSection=c&&1==c.count?c.rows[0]:null,h.crudPermissions=p.parseCrudPermissions(h.userProfileSection?h.userProfileSection.crudPermissions:null),h.selectedDispositions=[],h.levels={first:"1st",second:"2nd",third:"3rd"},h.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",MailAccountId:"null",FaxAccountId:"null",SmsAccountId:"null",OpenchannelAccountId:"null",ChatWebsiteId:"null",WhatsappAccountId:"null",ListId:"null",limit:10,page:1},h.deleteconfirm=function(e,n){var t=_.some(h.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){A(e)})},h.success=f,h.getDispositions=b,h.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:null,license:h.license,setting:h.setting,crudPermissions:h.crudPermissions}}).then(function(e){!0===e&&b()})},h.deleteDisposition=A,h.exportSelectedDispositions=function(){var e=angular.copy(h.selectedDispositions);return h.selectedDispositions=[],e},h.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:h.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){h.selectedDispositions.forEach(function(e){A(e)}),h.selectedDispositions=[]})},h.deselectDispositions=function(){h.selectedDispositions=[]},h.selectAllDispositions=function(){h.selectedDispositions=h.dispositions.rows};var E=!0,y=1;e.$watch("vm.query.filter",function(e,n){E?o(function(){E=!1}):(n||(y=h.query.page),e!==n&&(h.query.page=1),e||(h.query.page=y),b())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","dispositions","userProfile","userProfileSection","api","toasty","Auth","license","setting"],angular.module("app.tools").controller("DispositionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_INTERVAL",g.interval=angular.copy(l),g.intervals=r,g.newInterval=!1,g.interval||(g.interval={},g.title="TOOLS.NEW_INTERVAL",g.newInterval=!0),g.addNewInterval=function(){g.errors=[],d.interval.save(g.interval).$promise.then(function(e){g.intervals.unshift(e.toJSON()),o.success({title:"Interval properly created",msg:g.interval.name?g.interval.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.interval.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveInterval=function(){g.errors=[],d.interval.update({id:g.interval.id},g.interval).$promise.then(function(e){var n=_.find(g.intervals,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Interval properly saved!",msg:g.interval.name?g.interval.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.interval.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteInterval=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The interval will be deleted.").ariaLabel("Delete Interval").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.interval.delete({id:g.interval.id}).$promise.then(function(){_.remove(g.intervals,{id:g.interval.id}),o.success({title:"Interval properly deleted!",msg:(g.interval.name||"interval")+" has been deleted!"}),v(g.interval)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.interval.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.interval.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","intervals","interval","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditIntervalDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditAppintervalDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.intervalIntervals=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.interval.getIntervals(m.query,u).$promise}function g(e){d.interval.delete({id:e.id}).$promise.then(function(){_.remove(m.intervalIntervals.rows,{id:e.id}),m.intervalIntervals.count-=1,m.intervalIntervals.rows.length||p(),l.success({title:"Interval deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETinterval"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.interval={},m.intervalIntervals={count:0,rows:[]},m.selectedIntervalIntervals=[],m.crudPermissions,m.sortableTable={animation:100,onSort:function(e){d.interval.addIntervals({id:m.interval.id},e.models).$promise.then(function(e){m.intervalIntervals.rows=e}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:SORTABLETABLE",msg:e.data?JSON.stringify(e.data):e.toString()})})}},m.query={fields:"createdAt,updatedAt,id,name,interval",nolimit:"true",limit:10,page:1},m.init=function(e,n){m.interval=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.sortableTable.disabled=!m.crudPermissions.canEdit,m.query.id=m.interval.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interval?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interval #")+e.id||"interval")+"</b> will be deleted.").ariaLabel("delete interval").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getIntervalIntervals=p,m.createOrEditIntervalInterval=function(e,n){o.show({controller:"EditAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/intervals/edit/apps/interval/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:m.interval,interval:n,intervals:m.intervalIntervals.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedIntervalIntervals=function(){var e=angular.copy(m.selectedIntervalIntervals);return m.selectedIntervalIntervals=[],e},m.deleteIntervalInterval=g,m.deleteSelectedIntervalIntervals=function(e){var n=o.confirm().title("Are you sure want to delete the selected intervals?").htmlContent("<b>"+m.selectedIntervalIntervals.length+" selected</b> will be deleted.").ariaLabel("delete intervals").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedIntervalIntervals.forEach(function(e){g(e)}),m.selectedIntervalIntervals=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.tools").controller("IntervalIntervalsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_INTERVAL",g.interval=angular.copy(l),g.intervals=r,g.newInterval=!1,g.interval||(g.interval={},g.title="TOOLS.NEW_INTERVAL",g.newInterval=!0),g.addNewInterval=function(){g.errors=[],d.interval.save(g.interval).$promise.then(function(e){g.intervals.unshift(e.toJSON()),o.success({title:"Interval properly created",msg:g.interval.name?g.interval.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.interval.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveInterval=function(){g.errors=[],d.interval.update({id:g.interval.id},g.interval).$promise.then(function(e){var n=_.find(g.intervals,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Interval properly saved!",msg:g.interval.name?g.interval.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.interval.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteInterval=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The interval will be deleted.").ariaLabel("Delete Interval").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.interval.delete({id:g.interval.id}).$promise.then(function(){_.remove(g.intervals,{id:g.interval.id}),o.success({title:"Interval properly deleted!",msg:(g.interval.name||"interval")+" has been deleted!"}),v(g.interval)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.interval.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.interval.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","intervals","interval","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditIntervalDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.interval=c||e.params.interval||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoIntervals=function(){e.go("app.tools.intervals",{},{reload:"app.tools.intervals"})},u.saveInterval=function(){r.interval.update({id:u.interval.id},u.interval).$promise.then(function(){l.success({title:"Interval updated!",msg:u.interval.name?u.interval.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETinterval",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","interval","userProfileSection"],angular.module("app.tools").controller("IntervalController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.intervals=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="intervals",f.listOrder="",f.listOrderAsc=null,f.selectedIntervals=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",IntervalId:"null",limit:10,page:1},f.editstate=function(e,n){t.go("app.tools.intervals.edit",{id:e.id,interval:e,crudPermissions:f.crudPermissions})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("interval")+"?").htmlContent("<b>"+(e.name||"interval")+"</b> will be deleted.").ariaLabel("delete interval").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getIntervals=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.interval.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Intervals",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditInterval=function(e,n){i.show({controller:"CreateOrEditIntervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/intervals/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:n,intervals:f.intervals.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteInterval=y,f.exportSelectedIntervals=function(){var e=angular.copy(f.selectedIntervals);return f.selectedIntervals=[],e},f.deleteSelectedIntervals=function(e){var n=i.confirm().title("Are you sure want to delete the selected intervals?").htmlContent("<b>"+f.selectedIntervals.length+" selected</b> will be deleted.").ariaLabel("delete Intervals").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedIntervals.forEach(function(e){y(e)}),f.selectedIntervals=[]})},f.deselectIntervals=function(){f.selectedIntervals=[]},f.selectAllIntervals=function(){f.selectedIntervals=f.intervals.rows};var b=!0,A=1;function E(e){f.intervals=e||{count:0,rows:[]}}function y(e){m.interval.delete({id:e.id}).$promise.then(function(){_.remove(f.intervals.rows,{id:e.id}),f.intervals.count-=1,f.intervals.rows.length||f.getIntervals(),p.success({title:_.startCase("Interval")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEinterval"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEinterval",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getIntervals())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","intervals","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("IntervalsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_PAUSE",g.pause=angular.copy(l),g.pauses=r,g.newPause=!1,g.pause||(g.pause={},g.title="TOOLS.NEW_PAUSE",g.newPause=!0),g.addNewPause=function(){g.errors=[],d.pause.save(g.pause).$promise.then(function(e){g.pauses.unshift(e.toJSON()),o.success({title:"Pause properly created",msg:g.pause.name?g.pause.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.pause.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pause.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.savePause=function(){g.errors=[],d.pause.update({id:g.pause.id},g.pause).$promise.then(function(e){var n=_.find(g.pauses,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Pause properly saved!",msg:g.pause.name?g.pause.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.pause.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pause.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deletePause=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The pause will be deleted.").ariaLabel("Delete Pause").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.pause.delete({id:g.pause.id}).$promise.then(function(){_.remove(g.pauses,{id:g.pause.id}),o.success({title:"Pause properly deleted!",msg:(g.pause.name||"pause")+" has been deleted!"}),v(g.pause)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.pause.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.pause.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","pauses","pause","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditPauseDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.pauses=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="pauses",f.listOrder="",f.listOrderAsc=null,f.selectedPauses=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditPauseDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/pauses/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{pause:e,pauses:f.pauses.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("pause")+"?").htmlContent("<b>"+(e.name||"pause")+"</b> will be deleted.").ariaLabel("delete pause").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getPauses=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.pause.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Pauses",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditPause=function(e,n){i.show({controller:"CreateOrEditPauseDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/pauses/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{pause:n,pauses:f.pauses.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deletePause=y,f.exportSelectedPauses=function(){var e=angular.copy(f.selectedPauses);return f.selectedPauses=[],e},f.deleteSelectedPauses=function(e){var n=i.confirm().title("Are you sure want to delete the selected pauses?").htmlContent("<b>"+f.selectedPauses.length+" selected</b> will be deleted.").ariaLabel("delete Pauses").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedPauses.forEach(function(e){y(e)}),f.selectedPauses=[]})},f.deselectPauses=function(){f.selectedPauses=[]},f.selectAllPauses=function(){f.selectedPauses=f.pauses.rows};var b=!0,A=1;function E(e){f.pauses=e||{count:0,rows:[]}}function y(e){m.pause.delete({id:e.id}).$promise.then(function(){_.remove(f.pauses.rows,{id:e.id}),f.pauses.count-=1,f.pauses.rows.length||f.getPauses(),p.success({title:_.startCase("Pause")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEpause"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEpause",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getPauses())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","pauses","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("PausesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;if(g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_SCHEDULE",g.schedule=angular.copy(l),g.schedules=r,g.newSchedule=!1,g.selectedReport=[],g.query={fields:"createdAt,updatedAt,id,name,description,table,parent,conditions,joins",limit:10,page:1,sort:"-updatedAt"},g.schedule){g.apiName=g.schedule.DefaultReportId?"analyticDefaultReport":"analyticCustomReport";var v=g.schedule.DefaultReportId?g.schedule.DefaultReportId:g.schedule.CustomReportId;d[g.apiName].get({fields:"id,name,parent"}).$promise.then(function(e){g.currentReport=_.find(e.rows,{id:v}),g.schedule.report=g.currentReport.name,g.query.parent=g.currentReport.parent})}else g.schedule={output:"xlsx",active:!0,startAt:new Date,endAt:new Date(Date.now()+2592e6),cron:"0 0 * * *",subtractNumber:1,subtractUnit:"days",sendMail:!1,sendIfEmpty:!0},g.title="TOOLS.NEW_SCHEDULE",g.newSchedule=!0;function h(e){return e?{loaded:A,select_node:f}:{loaded:E,select_node:b}}function f(e,n){g.treeDefaultInstance.jstree(!0).deselect_all(),g.treeDefaultInstance.jstree(!0).close_all(),g.currentNode=n.node,g.currentNode.custom=!0,g.currentPath=g.treeCustomInstance.jstree(!0).get_path(g.currentNode).join("/ "),g.apiName="analyticCustomReport",g.query.parent=n.node.id,y()}function b(e,n){g.treeCustomInstance.jstree(!0).deselect_all(),g.treeCustomInstance.jstree(!0).close_all(),g.currentNode=n.node,g.currentNode.custom=!1,g.currentPath=g.treeDefaultInstance.jstree(!0).get_path(g.currentNode).join("/ "),g.apiName="analyticDefaultReport",g.query.parent=n.node.id,y()}function A(){if(!g.newSchedule&&"analyticCustomReport"===g.apiName){var e=g.treeCustomInstance.jstree(!0).get_node(g.query.parent);f(0,{node:e,selected:e.id})}}function E(){if(!g.newSchedule&&"analyticDefaultReport"===g.apiName){var e=g.treeDefaultInstance.jstree(!0).get_node(g.query.parent);b(0,{node:e,selected:e.id})}}function y(){if(g.query.offset=(g.query.page-1)*g.query.limit,g.apiName)if("admin"===g.currentUser.role)g.promise=d[g.apiName].get(g.query,S).$promise;else{if(!g.userProfileSection)return S(null);if(g.userProfileSection.autoAssociation)g.promise=d[g.apiName].get(g.query,S).$promise;else{var a=[];g.promise=d[g.apiName].get(g.query).$promise.then(function(e){return 0<(a=e&&e.rows?e.rows:[]).length?d.userProfileResource.get({sectionId:g.userProfileSection.id,type:"analyticDefaultReport"===g.apiName?"DefaultReports":"CustomReports"}).$promise.then(function(e){var n=e&&e.rows?e.rows:[];if(0<n.length){var t=[];return a.forEach(function(e){_.find(n,["resourceId",e.id])&&t.push(e)}),S({count:t.length,rows:t})}return S(null)}):S(null)}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_REPORTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}}}function S(e){g.reports=e||{count:0,rows:[]},g.newSchedule||g.selectedReport.push(_.find(g.reports.rows,{id:g.currentReport.id}))}function T(e){a.hide(e)}g.addNewSchedule=function(){g.errors=[],d.schedule.save(g.schedule).$promise.then(function(e){g.schedules.unshift(e.toJSON()),o.success({title:"Schedule properly created",msg:g.schedule.name?g.schedule.name+" has been created!":""}),T(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.schedule.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.schedule.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSchedule=function(){g.errors=[],d.schedule.update({id:g.schedule.id},g.schedule).$promise.then(function(e){var n=_.find(g.schedules,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Schedule properly saved!",msg:g.schedule.name?g.schedule.name+" has been saved!":""}),T(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.schedule.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.schedule.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSchedule=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The schedule will be deleted.").ariaLabel("Delete Schedule").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.schedule.delete({id:g.schedule.id}).$promise.then(function(){_.remove(g.schedules,{id:g.schedule.id}),o.success({title:"Schedule properly deleted!",msg:(g.schedule.name||"schedule")+" has been deleted!"}),T(g.schedule)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.schedule.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.schedule.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.getReports=y,g.selectReport=function(){g.schedule.report=g.selectedReport[0].name,g.currentNode.custom?(g.schedule.CustomReportId=g.selectedReport[0].id,delete g.schedule.DefaultReportId):(g.schedule.DefaultReportId=g.selectedReport[0].id,delete g.schedule.CustomReportId);e.scheduleForm.report.$setDirty(),a.hide()},g.closeReportDialog=function(){a.hide()},g.searchReport=function(){g.treeDefaultData=g.treeReports[0]?angular.fromJson(g.treeReports[0].tree):[],g.treeCustomData=g.treeReports[1]?angular.fromJson(g.treeReports[1].tree):[],g.treeConfig=(n={core:{multiple:!1,animation:!0,error:function(e){console.error("treeCtrl: error from js tree - "+angular.toJson(e))},check_callback:!0,worker:!0},version:1,plugins:["wholerow"]},"admin"!==g.currentUser.role?d.userProfileSection.get({fields:"id,name,enabled,includeAll,autoAssociation,crudPermissions",userProfileId:g.currentUser.userProfileId,sectionId:1203}).$promise.then(function(e){return g.userProfileSection=e&&1==e.count?e.rows[0]:null,n}).catch(function(e){o.error({title:"ERROR",msg:e.message})}):n),g.treeDefaultEvents=h(!1),g.treeCustomEvents=h(!0),a.show({controller:function(){return g},controllerAs:"vm",templateUrl:"app/main/apps/tools/views/schedules/partialViews/reports/treeReports.html",autoWrap:!0,skipHide:!0});var n},g.closeDialog=T,d.analyticTreeReport.get({}).$promise.then(function(e){g.treeReports=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TREEREPORTS",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.mailAccount.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.mailAccounts=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_MAILACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.mailAccount.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.mailAccounts=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:602}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.mailAccounts,{id:e.resourceId})}),t=null;if(g.schedule&&(t=_.find(g.mailAccounts,{id:Number(g.schedule.MailAccountId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.mailAccounts,{id:t.id});a.canSelect=!1,n.push(a)}g.mailAccounts=n})}else{var t=[],a=null;g.schedule&&(a=_.find(g.mailAccounts,{id:Number(g.schedule.MailAccountId)}));for(var i=0;i<g.mailAccounts.length;i++)a&&g.mailAccounts[i].id===a.id&&(g.mailAccounts[i].canSelect=!1,t.push(g.mailAccounts[i]));g.mailAccounts=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","schedules","schedule","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditScheduleDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.schedules=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="schedules",f.listOrder="",f.listOrderAsc=null,f.selectedScheduler=[],f.query={fields:"createdAt,updatedAt,id,name,CustomReportId,DefaultReportId,output,active,startAt,endAt,cron,subtractNumber,subtractUnit,sendMail,MailAccountId,email,cc,bcc,sendIfEmpty,description",sort:"-updatedAt",limit:10,page:1},f.arrayoutput=_.keyBy([{option:"CSV",value:"'csv'"},{option:"PDF",value:"'pdf'"},{option:"Excel",value:"'xlsx'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysubtractUnit=_.keyBy([{option:"Minutes",value:"'minutes'"},{option:"Hours",value:"'hours'"},{option:"Days",value:"'days'"},{option:"Weeks",value:"'weeks'"},{option:"Months",value:"'months'"},{option:"Quarters",value:"'quarters'"},{option:"Years",value:"'years'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editdialog=function(e,n){i.show({controller:"CreateOrEditScheduleDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/schedules/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{schedule:e,schedules:f.schedules.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.runconfirm=function(e,n){var t=i.confirm().title("Are you sure want to run the schedule?").htmlContent("<b>"+(e.name||"schedule")+"</b> will be run.").ariaLabel("delete schedule").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){return m.schedule.run({id:e.id}).$promise},function(){console.log("CANCEL")})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("schedule")+"?").htmlContent("<b>"+(e.name||"schedule")+"</b> will be deleted.").ariaLabel("delete schedule").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getScheduler=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.schedule.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Scheduler",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSchedule=function(e,n){i.show({controller:"CreateOrEditScheduleDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/schedules/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{schedule:n,schedules:f.schedules.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSchedule=y,f.exportSelectedScheduler=function(){var e=angular.copy(f.selectedScheduler);return f.selectedScheduler=[],e},f.deleteSelectedScheduler=function(e){var n=i.confirm().title("Are you sure want to delete the selected schedules?").htmlContent("<b>"+f.selectedScheduler.length+" selected</b> will be deleted.").ariaLabel("delete Schedules").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedScheduler.forEach(function(e){y(e)}),f.selectedScheduler=[]})},f.deselectScheduler=function(){f.selectedScheduler=[]},f.selectAllScheduler=function(){f.selectedScheduler=f.schedules.rows},m.analyticTreeReport.get({}).$promise.then(function(e){f.treeReports=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TREEREPORTS",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.mailAccount.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.mailAccounts=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_MAILACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.mailAccount.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.mailAccounts=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:602}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.mailAccounts,{id:e.resourceId})}),t=null;if(f.schedule&&(t=_.find(f.mailAccounts,{id:Number(f.schedule.MailAccountId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.mailAccounts,{id:t.id});a.canSelect=!1,n.push(a)}f.mailAccounts=n})}else{var t=[],a=null;f.schedule&&(a=_.find(f.mailAccounts,{id:Number(f.schedule.MailAccountId)}));for(var i=0;i<f.mailAccounts.length;i++)a&&f.mailAccounts[i].id===a.id&&(f.mailAccounts[i].canSelect=!1,t.push(f.mailAccounts[i]));f.mailAccounts=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmailAccounts",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.schedules=e||{count:0,rows:[]}}function y(e){m.schedule.delete({id:e.id}).$promise.then(function(){_.remove(f.schedules.rows,{id:e.id}),f.schedules.count-=1,f.schedules.rows.length||f.getScheduler(),p.success({title:_.startCase("Schedule")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEschedule"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEschedule",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getScheduler())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","schedules","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("SchedulesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_SOUND",g.sound=angular.copy(l),g.sounds=r,g.newSound=!1,g.sound||(g.sound={},g.title="TOOLS.NEW_SOUND",g.newSound=!0),g.addNewSound=function(){g.errors=[],d.sound.save(g.sound).$promise.then(function(e){g.sounds.unshift(e.toJSON()),o.success({title:"Sound properly created",msg:g.sound.name?g.sound.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.sound.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.sound.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveSound=function(){g.errors=[],d.sound.update({id:g.sound.id},g.sound).$promise.then(function(e){var n=_.find(g.sounds,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Sound properly saved!",msg:g.sound.name?g.sound.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.sound.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.sound.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteSound=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The sound will be deleted.").ariaLabel("Delete Sound").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.sound.delete({id:g.sound.id}).$promise.then(function(){_.remove(g.sounds,{id:g.sound.id}),o.success({title:"Sound properly deleted!",msg:(g.sound.name||"sound")+" has been deleted!"}),v(g.sound)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.sound.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.sound.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","sounds","sound","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditSoundDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.sounds=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="sounds",f.listOrder="",f.listOrderAsc=null,f.selectedSounds=[],f.query={fields:"createdAt,updatedAt,id,save_name,converted_format,name,audio,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditSoundDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/sounds/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{sound:e,sounds:f.sounds.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.downloadfile2=function(s,e){return m.sound.download({id:s.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s.converted_format?s.save_name+"."+s.converted_format:s.save_name;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.sound.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("sound")+"?").htmlContent("<b>"+(e.name||"sound")+"</b> will be deleted.").ariaLabel("delete sound").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getSounds=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.sound.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Sounds",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditSound=function(e,n){i.show({controller:"CreateOrEditSoundDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/sounds/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{sound:n,sounds:f.sounds.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteSound=y,f.exportSelectedSounds=function(){var e=angular.copy(f.selectedSounds);return f.selectedSounds=[],e},f.deleteSelectedSounds=function(e){var n=i.confirm().title("Are you sure want to delete the selected sounds?").htmlContent("<b>"+f.selectedSounds.length+" selected</b> will be deleted.").ariaLabel("delete Sounds").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedSounds.forEach(function(e){y(e)}),f.selectedSounds=[]})},f.deselectSounds=function(){f.selectedSounds=[]},f.selectAllSounds=function(){f.selectedSounds=f.sounds.rows},f.uploadSound=function(e){i.show({controller:"UploadSoundDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/sounds/upload/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{sounds:f.sounds.rows}})};var b=!0,A=1;function E(e){f.sounds=e||{count:0,rows:[]}}function y(e){m.sound.delete({id:e.id}).$promise.then(function(){_.remove(f.sounds.rows,{id:e.id}),f.sounds.count-=1,f.sounds.rows.length||f.getSounds(),p.success({title:_.startCase("Sound")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEsound"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEsound",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getSounds())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","sounds","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("SoundsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this,r=15,l=1024*r*1024;o.currentUser=s.getCurrentUser(),o.errors=[],o.title="TOOLS.UPLOAD_SOUND",o.sounds=a,o.uploadSounds=[],o.uploadState="none",o.sound={},o.ngFlowOptions={maxChunkRetries:1,chunkSize:l,simultaneousUploads:1,testChunks:!1,progressCallbacksInterval:1e3,allowDuplicateUploads:!0,target:"api/sounds"},o.ngFlow={flow:{}},o.dropping=!1,o.fileAdded=function(e){var n=["wav","mp3","gsm"];if(!_.includes(n,e.getExtension()))return t.error({title:"Invalid extension: "+e.getExtension(),msg:"Supported extension: "+n.join()}),!1;if(e.size>l)return t.error({title:"File too big",msg:"The max allowed size is "+r+"MB"}),!1;return o.sound={id:e.uniqueIdentifier,file:e},o.uploadSounds.unshift(o.sound),!0},o.upload=function(){o.uploadState="uploading",o.ngFlow.flow.opts.headers={"X-Requested-With":"XMLHttpRequest",Authorization:"Bearer "+e.get("motion.token")},o.ngFlow.flow.opts.query={role:o.currentUser.role,userProfileId:o.currentUser.userProfileId},o.ngFlow.flow.upload()},o.fileSuccess=function(a,e){o.sounds.unshift(JSON.parse(e)),angular.forEach(o.uploadSounds,function(n,e){if(n.id===a.uniqueIdentifier){var t=new FileReader;t.readAsDataURL(n.file.file),t.onload=function(e){n.url=e.target.result}}})},o.uploadError=function(e,n){o.ngFlow.flow.cancel(),t.error({title:"Upload error",msg:"Cannot upload the sound"}),o.uploadState="failed"},o.uploadComplete=function(){"failed"!==o.uploadState&&(o.uploadState="completed",t.success({title:"Upload completed",msg:o.sound.file.name+" uploaded successfully"}))},o.closeDialog=function(){n.hide()}}e.$inject=["$cookies","$mdDialog","toasty","sounds","api","Auth"],angular.module("app.tools").controller("UploadSoundDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_TAG",g.tag=angular.copy(l),g.tags=r,g.newTag=!1,g.tag||(g.tag={},g.title="TOOLS.NEW_TAG",g.newTag=!0),g.addNewTag=function(){g.errors=[],d.tag.save(g.tag).$promise.then(function(e){g.tags.unshift(e.toJSON()),o.success({title:"Tag properly created",msg:g.tag.name?g.tag.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.tag.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.tag.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveTag=function(){g.errors=[],d.tag.update({id:g.tag.id},g.tag).$promise.then(function(e){var n=_.find(g.tags,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Tag properly saved!",msg:g.tag.name?g.tag.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.tag.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.tag.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteTag=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The tag will be deleted.").ariaLabel("Delete Tag").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.tag.delete({id:g.tag.id}).$promise.then(function(){_.remove(g.tags,{id:g.tag.id}),o.success({title:"Tag properly deleted!",msg:(g.tag.name||"tag")+" has been deleted!"}),v(g.tag)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.tag.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.tag.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","tags","tag","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditTagDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.tags=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="tags",f.listOrder="",f.listOrderAsc=null,f.selectedTags=[],f.query={fields:"createdAt,updatedAt,id,name,description,color",sort:"name,-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditTagDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/tags/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{tag:e,tags:f.tags.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("tag")+"?").htmlContent("<b>"+(e.name||"tag")+"</b> will be deleted.").ariaLabel("delete tag").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getTags=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.tag.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Tags",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditTag=function(e,n){i.show({controller:"CreateOrEditTagDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/tags/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{tag:n,tags:f.tags.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteTag=y,f.exportSelectedTags=function(){var e=angular.copy(f.selectedTags);return f.selectedTags=[],e},f.deleteSelectedTags=function(e){var n=i.confirm().title("Are you sure want to delete the selected tags?").htmlContent("<b>"+f.selectedTags.length+" selected</b> will be deleted.").ariaLabel("delete Tags").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedTags.forEach(function(e){y(e)}),f.selectedTags=[]})},f.deselectTags=function(){f.selectedTags=[]},f.selectAllTags=function(){f.selectedTags=f.tags.rows};var b=!0,A=1;function E(e){f.tags=e||{count:0,rows:[]}}function y(e){m.tag.delete({id:e.id}).$promise.then(function(){_.remove(f.tags.rows,{id:e.id}),f.tags.count-=1,f.tags.rows.length||f.getTags(),p.success({title:_.startCase("Tag")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEtag"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEtag",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getTags())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","tags","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("TagsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_TEMPLATE",g.template=angular.copy(l),g.templates=r,g.newTemplate=!1,g.template||(g.template={},g.title="TOOLS.NEW_TEMPLATE",g.newTemplate=!0),g.addNewTemplate=function(){g.errors=[],d.template.save(g.template).$promise.then(function(e){g.templates.unshift(e.toJSON()),o.success({title:"Template properly created",msg:g.template.name?g.template.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.template.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.template.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveTemplate=function(){g.errors=[],d.template.update({id:g.template.id},g.template).$promise.then(function(e){var n=_.find(g.templates,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Template properly saved!",msg:g.template.name?g.template.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.template.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.template.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteTemplate=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The template will be deleted.").ariaLabel("Delete Template").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.template.delete({id:g.template.id}).$promise.then(function(){_.remove(g.templates,{id:g.template.id}),o.success({title:"Template properly deleted!",msg:(g.template.name||"template")+" has been deleted!"}),v(g.template)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.template.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.template.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","templates","template","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditTemplateDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.templates=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="templates",f.listOrder="",f.listOrderAsc=null,f.selectedTemplates=[],f.query={fields:"createdAt,updatedAt,id,name,html,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditTemplateDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/templates/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{template:e,templates:f.templates.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("template")+"?").htmlContent("<b>"+(e.name||"template")+"</b> will be deleted.").ariaLabel("delete template").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getTemplates=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.template.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Templates",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditTemplate=function(e,n){i.show({controller:"CreateOrEditTemplateDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/templates/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{template:n,templates:f.templates.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteTemplate=y,f.exportSelectedTemplates=function(){var e=angular.copy(f.selectedTemplates);return f.selectedTemplates=[],e},f.deleteSelectedTemplates=function(e){var n=i.confirm().title("Are you sure want to delete the selected templates?").htmlContent("<b>"+f.selectedTemplates.length+" selected</b> will be deleted.").ariaLabel("delete Templates").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedTemplates.forEach(function(e){y(e)}),f.selectedTemplates=[]})},f.deselectTemplates=function(){f.selectedTemplates=[]},f.selectAllTemplates=function(){f.selectedTemplates=f.templates.rows};var b=!0,A=1;function E(e){f.templates=e||{count:0,rows:[]}}function y(e){m.template.delete({id:e.id}).$promise.then(function(){_.remove(f.templates.rows,{id:e.id}),f.templates.count-=1,f.templates.rows.length||f.getTemplates(),p.success({title:_.startCase("Template")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEtemplate"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEtemplate",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getTemplates())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","templates","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("TemplatesController",e)}(),function(){"use strict";function e(t,a,i,e,n,s,o,r,l,d){var c=this;function m(e){t.hide(e)}c.currentUser=o.getCurrentUser(),c.trigger=angular.copy(n),c.triggers=angular.copy(e),c.setting=l,c.license=r,c.crudPermissions=d,c.newTrigger=!1,c.errors=[],c.trigger||(c.trigger={channel:"voice"},c.newTrigger=!0),c.addNewTrigger=function(){c.errors=[],s.trigger.save(c.trigger).$promise.then(function(e){c.triggers.unshift(e.toJSON()),i.success({title:a.instant("TOOLS.NOTIFICATIONS.TRIGGER_CREATED_SUCCESS_TITLE")}),m(c.triggers)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.trigger.save"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trigger.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.saveTrigger=function(){c.errors=[],s.trigger.update({id:c.trigger.id},c.trigger).$promise.then(function(){c.triggers=_.map(c.triggers,function(e){return e.id===c.trigger.id?c.trigger:e}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.TRIGGER_SAVED_SUCCESS_TITLE")}),m(c.triggers)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.trigger.update"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trigger.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.deleteTrigger=function(e){c.errors=[];var n=t.confirm({skipHide:!0}).title(a.instant("TOOLS.NOTIFICATIONS.TRIGGER_DELETE_TITLE")).content(a.instant("TOOLS.NOTIFICATIONS.TRIGGER_DELETE_MESSAGE",{name:c.trigger.name})).ariaLabel("Delete trigger").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){s.trigger.delete({id:c.trigger.id}).$promise.then(function(){c.triggers=_.filter(c.triggers,function(e){return e.id!==c.trigger.id}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.TRIGGER_DELETED_SUCCESS_TITLE")}),m(c.triggers)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){c.errors=e.data.errors||[{message:e.toString(),type:"api.trigger.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trigger.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},c.closeDialog=m}e.$inject=["$mdDialog","$translate","toasty","triggers","trigger","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditTriggerDialogController",e)}(),function(){"use strict";function e(e,a,n,i,t,s,o,r){var l=this;function d(){_.some(l.triggerActions.rows,["action","contactManager"])&&(l.lists||(r.isAdmin()?o.cmList.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.lists=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):o.cmList.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.lists=e.rows||[]}).then(function(){return o.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return o.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(l.lists,{id:e.resourceId})}),a=null;a=[],l.triggerActions.rows.forEach(function(e){if("contactManager"===e.action){var n=_.find(l.lists,{id:Number(e.data1)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(l.lists,{id:e.id});n.canSelect=!1,t.push(n)}}),l.lists=t})}else{var t=[],a=[];l.triggerActions.rows.forEach(function(e){if("contactManager"===e.action){var n=_.find(l.lists,{id:Number(e.data1)});a.push(n)}});for(var i=0;i<l.lists.length;i++)_.some(a,{id:l.lists[i].id})&&(l.lists[i].canSelect=!1,t.push(l.lists[i]));l.lists=t}}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}))),_.some(l.triggerActions.rows,["action","integration"])&&_(l.triggerActions.rows).map(function(e){return"integration"===e.action?e.data1:void 0}).compact().uniq().value().forEach(function(e){var n=e+"Accounts";if(!l[n]){var t="int"+_.startCase(e)+"Account";o[t.replace(/\s+/g,"")].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){l[n]=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+n.toUpperCase()+"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}}),_.some(l.triggerActions.rows,function(e){return _.includes(["motionbar","browser"],e.action)})&&(l.templates||(r.isAdmin()?o.template.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){l.templates=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEMPLATES",msg:e.data?JSON.stringify(e.data):e.toString()})}):o.template.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){l.templates=e.rows||[]}).then(function(){return o.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1009}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return o.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(l.templates,{id:e.resourceId})}),a=null;a=[],l.triggerActions.rows.forEach(function(e){if(_.includes(["motionbar","browser"],e.action)){var n=_.find(l.templates,{id:Number(e.data2)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(l.templates,{id:e.id});n.canSelect=!1,t.push(n)}}),l.templates=t})}else{var t=[],a=[];l.triggerActions.rows.forEach(function(e){if(_.includes(["motionbar","browser"],e.action)){var n=_.find(l.templates,{id:Number(e.data2)});a.push(n)}});for(var i=0;i<l.templates.length;i++)_.some(a,{id:l.templates[i].id})&&(l.templates[i].canSelect=!1,t.push(l.templates[i]));l.templates=t}}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEMPLATES",msg:e.data?JSON.stringify(e.data):e.toString()})}))),_.some(l.triggerActions.rows,["action","jscripty"])&&(l.projects||(r.isAdmin()?o.jscriptyProject.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.projects=e.rows||[]}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PROJECTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):o.jscriptyProject.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.projects=e.rows||[]}).then(function(){return o.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1701}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return o.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(l.projects,{id:e.resourceId})}),a=null;a=[],l.triggerActions.rows.forEach(function(e){if("jscripty"===e.action){var n=_.find(l.projects,{id:Number(e.data1)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(l.projects,{id:e.id});n.canSelect=!1,t.push(n)}}),l.projects=t})}else{var t=[],a=[];l.triggerActions.rows.forEach(function(e){if("jscripty"===e.action){var n=_.find(l.projects,{id:Number(e.data1)});a.push(n)}});for(var i=0;i<l.projects.length;i++)_.some(a,{id:l.projects[i].id})&&(l.projects[i].canSelect=!1,t.push(l.projects[i]));l.projects=t}}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})})))}function c(e){l.triggerActions=e||{count:0,rows:[]},d()}function m(){l.query.offset=(l.query.page-1)*l.query.limit,l.promise=o.trigger.getActions(l.query,c).$promise}function u(e,n){o.action.delete({id:e.id}).$promise.then(function(){m(),n&&s.success({title:a.instant("TOOLS.NOTIFICATIONS.ACTION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){l.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETtrigger"}];for(var n=0;n<e.data.errors.length;n++)s.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}l.currentUser=r.getCurrentUser(),l.trigger={},l.triggerActions={count:0,rows:[]},l.selectedTriggerActions=[],l.query={fields:"id,action,contact,data1,data2,data3,data4,data5,data6,data7,createdAt,updatedAt",limit:10,page:1},l.integrationTypes={zendesk:"Zendesk",salesforce:"Salesforce",sugarcrm:"SugarCRM",freshdesk:"Freshdesk",desk:"Desk",zoho:"Zoho",vtiger:"vTiger",dynamics365:"Dynamics365",servicenow:"ServiceNow",freshsales:"Freshsales"},l.motionBarOptions={0:"Popup",1:"CTI URL",2:"Windows App"},l.onInit=function(e,n){l.trigger=e,l.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},l.query.ActionId=l.trigger.id,l.query.id=l.trigger.id,m()},l.success=c,l.getTriggerActions=m,l.createOrEditTriggerAction=function(e,n){i.show({controller:"CreateOrEditActionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/edit/actions/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{trigger:l.trigger,action:n,actions:l.triggerActions.rows,license:null,setting:null,crudPermissions:l.crudPermissions}}).then(function(e){e&&(l.triggerActions={count:e.length,rows:e},d())})},l.exportSelectedTriggerActions=function(){var e=angular.copy(l.selectedTriggerActions);return l.selectedTriggerActions=[],e},l.deleteConfirm=function(e,n){var t=i.confirm().title(a.instant("TOOLS.NOTIFICATIONS.ACTION_DELETE_TITLE")).ariaLabel("Delete action").targetEvent(n).ok("OK").cancel(a.instant("TOOLS.CANCEL"));i.show(t).then(function(){u(e,!0)})},l.deleteSelectedTriggerActions=function(e){var n=i.confirm().title(a.instant("TOOLS.NOTIFICATIONS.ACTIONS_DELETE_TITLE")).content(a.instant("TOOLS.NOTIFICATIONS.ACTIONS_DELETE_MESSAGE",{total:l.selectedTriggerActions.length})).ariaLabel("Delete actions").targetEvent(e).ok("OK").cancel(a.instant("TOOLS.CANCEL"));i.show(n).then(function(){l.selectedTriggerActions.forEach(function(e){u(e)}),l.selectedTriggerActions=[],s.success({title:a.instant("TOOLS.NOTIFICATIONS.ACTIONS_DELETED_SUCCESS_TITLE")})})}}e.$inject=["$scope","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.tools").controller("TriggerActionsController",e)}(),function(){"use strict";function e(n,t,a,i,e,s,o,r,l,d,c,m){var u=this;function p(){return new Promise(function(n,t){l.hasSectionsPermissions([1301,1302,1303,1304,1305,1306,1307,1308,1309,1310]).then(function(e){u.hasSectionPermissions=_.merge(u.hasSectionPermissions,e),n(u.hasSectionPermissions)}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_SECTIONS_PERMISSIONS",msg:e.data?JSON.stringify(e.data):e.toString()}),t()})})}function g(){r.cmList.getCustomFields({id:u.action.data1,ListId:u.action.data1}).$promise.then(function(e){u.listFields=_.filter(e.rows,["type","text"]),u.listFields.forEach(function(e){e.columnName="cf_"+e.id})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LIST_CUSTOM_FIELDS",msg:e.data?JSON.stringify(e.data):e.toString()})})}function v(){l.isAdmin()?r.template.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u.templates=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEMPLATES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.template.get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u.templates=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1009}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.templates,{id:e.resourceId})}),a=null;a=[],u.actions.forEach(function(e){if(_.includes(["motionbar","browser"],e.action)){var n=_.find(u.templates,{id:Number(e.data2)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.templates,{id:e.id});n.canSelect=!1,t.push(n)}}),u.templates=t})}else{var t=[],a=[];u.actions.forEach(function(e){if(_.includes(["motionbar","browser"],e.action)){var n=_.find(u.templates,{id:Number(e.data2)});a.push(n)}});for(var i=0;i<u.templates.length;i++){_.some(a,{id:u.templates[i].id})&&(u.templates[i].canSelect=!1,t.push(u.templates[i]))}u.templates=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEMPLATES",msg:e.data?JSON.stringify(e.data):e.toString()})})}function h(){switch(u.action.action){case"contactManager":u.lists||(l.isAdmin()?r.cmList.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.lists=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.lists,{id:e.resourceId})}),a=null;a=[],u.actions.forEach(function(e){if("contactManager"===e.action){var n=_.find(u.lists,{id:Number(e.data1)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.lists,{id:e.id});n.canSelect=!1,t.push(n)}}),u.lists=t})}else{var t=[],a=[];u.actions.forEach(function(e){if("contactManager"===e.action){var n=_.find(u.lists,{id:Number(e.data1)});a.push(n)}});for(var i=0;i<u.lists.length;i++)_.some(a,{id:u.lists[i].id})&&(u.lists[i].canSelect=!1,t.push(u.lists[i]));u.lists=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})})),u.contactFields||r.cmContact.describe({}).$promise.then(function(e){u.contactFields=[],u.customFields=[];for(var n=_.values(e.toJSON()),t=0;t<n.length;t++)_.includes(u.allowedStandardFields,n[t].columnName)?u.contactFields.push(n[t]):_.startsWith(n[t].columnName,"cf_")&&"text"===n[t].custom.type&&u.customFields.push(n[t])}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DESCRIBE_CM_CONTACT",msg:e.data?JSON.stringify(e.data):e.toString()})}),u.action.data3=u.action.data3?u.action.data3.split(","):["phone"],"1"!==u.action.data2||u.action.data4||(u.action.data4="phone");break;case"jscripty":u.projects||(l.isAdmin()?r.jscriptyProject.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.projects=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PROJECTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.jscriptyProject.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.projects=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1701}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.projects,{id:e.resourceId})}),a=null;a=[],u.actions.forEach(function(e){if("jscripty"===e.action){var n=_.find(u.projects,{id:Number(e.data1)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.projects,{id:e.id});n.canSelect=!1,t.push(n)}}),u.projects=t})}else{var t=[],a=[];u.actions.forEach(function(e){if("jscripty"===e.action){var n=_.find(u.projects,{id:Number(e.data1)});a.push(n)}});for(var i=0;i<u.projects.length;i++)_.some(a,{id:u.projects[i].id})&&(u.projects[i].canSelect=!1,t.push(u.projects[i]));u.projects=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETprojects",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"urlForward":u.action.data5||(u.action.data5=5)}}function f(){u.editAccount||(u.action.data2=void 0,u.action.data3=void 0),u.action.isIntegrationDisabled=!u.newAction&&!function(){switch(u.action.data1){case"zendesk":return u.hasSectionPermissions[1301];case"salesforce":return u.hasSectionPermissions[1302];case"sugarcrm":return u.hasSectionPermissions[1305];case"freshdesk":return u.hasSectionPermissions[1303];case"desk":return u.hasSectionPermissions[1306];case"zoho":return u.hasSectionPermissions[1307];case"vtiger":return u.hasSectionPermissions[1308];case"dynamics365":return u.hasSectionPermissions[1309];case"servicenow":return u.hasSectionPermissions[1310];case"freshsales":return u.hasSectionPermissions[1304]}}();var e="int"+_.capitalize(u.action.data1)+"Account";r[e].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u.accounts=e.rows||[],u.editAccount=!1}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+u.action.data1.toUpperCase()+"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}function b(){u.action.data3=u.action.data3?u.action.data3:void 0;var e="int"+_.capitalize(u.action.data1)+"Configuration";r[e].get({fields:"id,name,AccountId",sort:"id",nolimit:"true"}).$promise.then(function(e){u.configurations=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+u.action.data1.toUpperCase()+"CONFIGURATIONS",msg:e.data?JSON.stringify(e.data):e.toString()})})}function A(){var e=angular.copy(u.action);return _.isArray(e.data3)&&(e.data3=u.action.data3.join(",")),e}function E(e){t.hide(e)}u.currentUser=l.getCurrentUser(),void 0!==s&&"urlForward"===s.action&&s.data5&&(s.data5=parseInt(s.data5)),u.action=angular.copy(s),u.actions=angular.copy(e),u.setting=c,u.license=d,u.crudPermissions=m,u.newAction=!1,u.errors=[],u.trigger=angular.copy(o),u.action?function(){switch(u.editAccount=!0,u.action.action){case"integration":return new Promise(function(e){e(p())}).then(function(){return u.editAccount||(u.action.data2=void 0,u.action.data3=void 0,h()),f()}).then(function(){return b()});case"motionbar":case"browser":v()}u.editAccount=!1}():(u.action={},u.newAction=!0),u.action.ActionId=n.params.id||void 0,u.allowedStandardFields=["phone","mobile","fax"],u.addNewAction=function(){u.errors=[];var e=A();r.trigger.addAction({id:n.params.id},e).$promise.then(function(e){u.actions.unshift(e.toJSON()),i.success({title:a.instant("TOOLS.NOTIFICATIONS.ACTION_CREATED_SUCCESS_TITLE")}),E(u.actions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.action.save"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.action.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.saveAction=function(){u.errors=[];var n=A();r.action.update({id:n.id},n).$promise.then(function(){u.actions=_.map(u.actions,function(e){return e.id===n.id?n:e}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.ACTION_SAVED_SUCCESS_TITLE")}),E(u.actions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.action.update"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.action.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},u.deleteAction=function(e){u.errors=[];var n=t.confirm({skipHide:!0}).title(a.instant("TOOLS.NOTIFICATIONS.ACTION_DELETE_TITLE")).ariaLabel("Delete action").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){r.action.delete({id:u.action.id}).$promise.then(function(){u.actions=_.filter(u.actions,function(e){return e.id!==u.action.id}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.ACTION_DELETED_SUCCESS_TITLE")}),E(u.actions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"api.action.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.action.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},u.onActionInit=function(){l.hasModulePermissions("Integrations").then(function(e){u.hasIntegrationsPermissions=e}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_MODULE_PERMISSIONS",msg:e.data?JSON.stringify(e.data):e.toString()})}),u.action.action&&h()},u.onIntegrationInit=p,u.onSearchFieldsInit=function(){u.newAction||g()},u.onActionSelection=function(){u.newAction&&(u.action.data1=void 0,u.action.data2=void 0,u.action.data3=void 0,u.action.data4=void 0,u.action.data5="urlForward"===u.action.action?5:void 0,h())},u.onIntegrationSelection=f,u.onListSelection=function(){g()},u.onTypeSelection=function(){"0"!==u.action.data1||u.templates?(u.action.data2=void 0,u.action.data4="1"===u.action.data1?0:void 0):v()},u.onAutocreateSelection=function(){"0"===u.action.data2&&(u.action.data4=void 0);u.action.data4||"1"!==u.action.data2||(u.action.data4="phone")},u.onIntegrationAccountSelection=b,u.closeDialog=E,u.onActionLocationChange=function(){u.editAccount||(u.action.data5=void 0,u.action.data6=void 0)}}e.$inject=["$state","$mdDialog","$translate","toasty","actions","action","trigger","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditActionDialogController",e)}(),function(){"use strict";function e(e,l,a,n,i,t,d,c,m){var u=this;function s(){var o,r;"voice"===u.trigger.channel?(_.some(u.allConditions.rows,["field","queue"])&&(u.queues||(o=[{id:401,type:"inbound"},{id:1501,type:"outbound"}],r=null,m.isAdmin()?c.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){u.queues=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VOICEQUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):c.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){r=e.rows||[]}).then(function(){for(var e=[],n=0;n<o.length;n++)e.push(c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:o[n].id}).$promise);return l.all(e)}).then(function(e){for(var n=_.map(e,function(e){return e&&e.rows?e.rows[0]:null}),t=[],a=0;a<o.length;a++){var i=_.find(n,["sectionId",o[a].id]);if(i)if(i.autoAssociation){var s=[];r.forEach(function(e){e.type===o[a].type&&s.push(e)}),t.push({rows:s,count:s.length})}else t.push(c.userProfileResource.get({sectionId:i.id}).$promise.then(function(e){return{count:e.count,rows:_.map(e.rows,function(e){return e.id=e.resourceId,delete e.resourceId,e})}}))}return l.all(t)}).then(function(e){var t=[],a=[];u.allConditions.rows.forEach(function(e){if("queue"===e.field){var n=_.find(r,{name:e.value});a.push(n)}});for(var n=0;n<e.length;n++)(e[n].rows||[]).forEach(function(e){t.push(e)});_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(r,{id:e.id});n.canSelect=!1,t.push(n)}}),u.queues=t}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}))),_.some(u.allConditions.rows,["field","routeId"])&&(u.outboundRoutes||(m.isAdmin()?c.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){u.outboundRoutes=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}):c.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){u.outboundRoutes=e.rows||[]}).then(function(){return c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:403}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return c.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.outboundRoutes,{id:e.resourceId})}),a=null;a=[],u.triggerAllConditions.rows.forEach(function(e){if("routeId"===e.field){var n=_.find(u.outboundRoutes,{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.outboundRoutes,{id:e.id});n.canSelect=!1,t.push(n)}}),u.outboundRoutes=t})}else{var t=[],a=[];u.allConditions.rows.forEach(function(e){if("routeId"===e.field){var n=_.find(u.outboundRoutes,{id:Number(e.value)});a.push(n)}});for(var i=0;i<u.outboundRoutes.length;i++)_.some(a,{id:u.outboundRoutes[i].id})&&(u.outboundRoutes[i].canSelect=!1,t.push(u.outboundRoutes[i]));u.outboundRoutes=t}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}))),_.some(u.allConditions.rows,["field","agent"])&&(u.agents||(m.isAdmin()?c.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){u.agents=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):c.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){u.agents=e.rows||[]}).then(function(){return c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return c.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.agents,{id:e.resourceId})}),a=null;a=[],u.triggerAllConditions.rows.forEach(function(e){if("agent"===e.field){var n=_.find(u.agents,{name:e.value});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.agents,{id:e.id});n.canSelect=!1,t.push(n)}}),u.agents=t})}else{var t=[],a=[];u.allConditions.rows.forEach(function(e){if("agent"===e.field){var n=_.find(u.agents,{name:e.value});a.push(n)}});for(var i=0;i<u.agents.length;i++)_.some(a,{id:u.agents[i].id})&&(u.agents[i].canSelect=!1,t.push(u.agents[i]));u.agents=t}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})})))):("mail"===u.trigger.channel&&c.mailSubstatus.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.mailSubstatuses=e.rows||[]}).catch(function(){d.error({title:a.instant("MAIL.SUBSTATUSES"),msg:a.instant("MAIL.NOTIFICATIONS.SUBSTATUSES_GET_ERROR")})}),function(){var e,s=u.trigger.channel+("chat"===u.trigger.channel?"Websites":"Accounts"),n=u.trigger.channel+("chat"===u.trigger.channel?"Website":"Account");switch(u.trigger.channel){case"chat":e=502;break;case"fax":e=902;break;case"mail":e=602;break;case"openchannel":e=802;break;case"sms":e=702;break;case"whatsapp":e=2102}m.isAdmin()?c[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u[s]=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+u.trigger.channel.toUpperCase()+u.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):c[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u[s]=e.rows||[]}).then(function(){return c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:e}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return c.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u[s],{id:e.resourceId})}),a=null;a=[],u.allConditions.rows.forEach(function(e){if("account"===e.field){var n=_.find(u[s],{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u[s],{id:e.id});n.canSelect=!1,t.push(n)}}),u[s]=t})}else{var t=[],a=[];u.allConditions.rows.forEach(function(e){if("account"===e.field){var n=_.find(u[s],{id:Number(e.value)});a.push(n)}});for(var i=0;i<u[s].length;i++)_.some(a,{id:u[s][i].id})&&(u[s][i].canSelect=!1,t.push(u[s][i]));u[s]=t}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+u.trigger.channel.toUpperCase()+u.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}())}function o(e){u.allConditions=e||{count:0,rows:[]},s()}function r(){u.query.offset=(u.query.page-1)*u.query.limit,u.promise=c.trigger.getAllConditions(u.query,o).$promise}function p(e,n){c.condition.delete({id:e.id}).$promise.then(function(){r(),n&&d.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETtrigger"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}u.currentUser=m.getCurrentUser(),u.trigger={},u.allConditions={count:0,rows:[]},u.selectedAllConditions=[],u.query={fields:"id,field,operator,value,createdAt,updatedAt",limit:10,page:1},u.fields={queue:"Queue",lastevent:"Call_Status",routeId:"OutboundRoute",agent:"Agent",account:"Account",interaction:"Interaction",message:"Message",mailSubstatus:"Mail_Substatus"},u.callStatuses={abandoned:"Abandon",timeout:"Timeout",complete:"Hangup",rejected:"Reject",called:"Ring",connect:"Answer",nosuchnumber:"NoSuchNumber",busy:"Busy",noanswer:"NoAnswer",congestion:"Congestion",agentreject:"AgentReject",amd:"AMD"},u.messageStatuses={in:"Incoming",out:"Outgoing",accept:"Accepted",reject:"Rejected"},u.onInit=function(e,n){u.trigger=e,u.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},u.query.TriggerAllId=u.trigger.id,u.query.id=u.trigger.id,r()},u.success=o,u.getAllConditions=r,u.createOrEditAllCondition=function(e,n){i.show({controller:"CreateOrEditAllConditionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/edit/allconditions/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{trigger:u.trigger,allCondition:n,allConditions:u.allConditions.rows,license:null,setting:null,crudPermissions:u.crudPermissions}}).then(function(e){e&&(u.allConditions={count:e.length,rows:e},s())})},u.exportSelectedAllConditions=function(){var e=angular.copy(u.selectedAllConditions);return u.selectedAllConditions=[],e},u.deleteConfirm=function(e,n){var t=i.confirm().title(a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETE_TITLE")).ariaLabel("Delete condition").targetEvent(n).ok("OK").cancel(a.instant("TOOLS.CANCEL"));i.show(t).then(function(){p(e,!0)})},u.deleteSelectedAllConditions=function(e){var n=i.confirm().title(a.instant("TOOLS.NOTIFICATIONS.CONDITIONS_DELETE_TITLE")).content(a.instant("TOOLS.NOTIFICATIONS.CONDITIONS_DELETE_MESSAGE",{total:u.selectedAllConditions.length})).ariaLabel("Delete conditions").targetEvent(e).ok("OK").cancel(a.instant("TOOLS.CANCEL"));i.show(n).then(function(){u.selectedAllConditions.forEach(function(e){p(e)}),u.selectedAllConditions=[],d.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITIONS_DELETED_SUCCESS_TITLE")})})}}e.$inject=["$scope","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.tools").controller("TriggerAllConditionsController",e)}(),function(){"use strict";function e(e,t,l,a,i,n,s,o,d,c,r,m,u){var p=this;function g(){switch(p.allCondition.field){case"queue":p.queues||(o=[{id:401,type:"inbound"},{id:1501,type:"outbound"}],r=null,c.isAdmin()?d.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){p.queues=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VOICEQUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){r=e.rows||[]}).then(function(){for(var e=[],n=0;n<o.length;n++)e.push(d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:o[n].id}).$promise);return l.all(e)}).then(function(e){for(var n=_.map(e,function(e){return e&&e.rows?e.rows[0]:null}),t=[],a=0;a<o.length;a++){var i=_.find(n,["sectionId",o[a].id]);if(i)if(i.autoAssociation){var s=[];r.forEach(function(e){e.type===o[a].type&&s.push(e)}),t.push({rows:s,count:s.length})}else t.push(d.userProfileResource.get({sectionId:i.id}).$promise.then(function(e){return{count:e.count,rows:_.map(e.rows,function(e){return e.id=e.resourceId,delete e.resourceId,e})}}))}return l.all(t)}).then(function(e){var t=[],a=[];p.allConditions.forEach(function(e){if("queue"===e.field){var n=_.find(r,{name:e.value});a.push(n)}});for(var n=0;n<e.length;n++)(e[n].rows||[]).forEach(function(e){t.push(e)});_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(r,{id:e.id});n.canSelect=!1,t.push(n)}}),p.queues=t}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"routeId":p.outboundRoutes||(c.isAdmin()?d.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){p.outboundRoutes=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){p.outboundRoutes=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:403}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(p.outboundRoutes,{id:e.resourceId})}),a=null;a=[],p.allConditions.forEach(function(e){if("routeId"===e.field){var n=_.find(p.outboundRoutes,{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(p.outboundRoutes,{id:e.id});n.canSelect=!1,t.push(n)}}),p.outboundRoutes=t})}else{var t=[],a=[];p.allConditions.forEach(function(e){if("routeId"===e.field){var n=_.find(p.outboundRoutes,{id:Number(e.value)});a.push(n)}});for(var i=0;i<p.outboundRoutes.length;i++)_.some(a,{id:p.outboundRoutes[i].id})&&(p.outboundRoutes[i].canSelect=!1,t.push(p.outboundRoutes[i]));p.outboundRoutes=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"agent":p.agents||(c.isAdmin()?d.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){p.agents=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){p.agents=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(p.agents,{id:e.resourceId})}),a=null;a=[],p.allConditions.forEach(function(e){if("agent"===e.field){var n=_.find(p.agents,{name:e.value});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(p.agents,{id:e.id});n.canSelect=!1,t.push(n)}}),p.agents=t})}else{var t=[],a=[];p.allConditions.forEach(function(e){if("agent"===e.field){var n=_.find(p.agents,{name:e.value});a.push(n)}});for(var i=0;i<p.agents.length;i++)_.some(a,{id:p.agents[i].id})&&(p.agents[i].canSelect=!1,t.push(p.agents[i]));p.agents=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"account":!function(){var e,n=p.trigger.channel+("chat"===p.trigger.channel?"Website":"Account");switch(p.trigger.channel){case"chat":e=502;break;case"fax":e=902;break;case"mail":e=602;break;case"openchannel":e=802;break;case"sms":e=702;break;case"whatsapp":e=2102}c.isAdmin()?d[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.accounts=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+p.trigger.channel.toUpperCase()+p.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.accounts=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:e}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(p.accounts,{id:e.resourceId})}),a=null;a=[],p.allConditions.forEach(function(e){if("account"===e.field){var n=_.find(p.accounts,{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(p.accounts,{id:e.id});n.canSelect=!1,t.push(n)}}),p.accounts=t})}else{var t=[],a=[];p.allConditions.forEach(function(e){if("account"===e.field){var n=_.find(p.accounts,{id:Number(e.value)});a.push(n)}});for(var i=0;i<p.accounts.length;i++)_.some(a,{id:p.accounts[i].id})&&(p.accounts[i].canSelect=!1,t.push(p.accounts[i]));p.accounts=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+p.trigger.channel.toUpperCase()+p.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}();break;case"mailSubstatus":d.mailSubstatus.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){p.mailSubstatuses=e.rows||[]}).catch(function(){i.error({title:a.instant("MAIL.SUBSTATUSES"),msg:a.instant("MAIL.NOTIFICATIONS.SUBSTATUSES_GET_ERROR")})})}var o,r}function v(e){t.hide(e)}p.currentUser=c.getCurrentUser(),p.allCondition=angular.copy(s),p.allConditions=angular.copy(n),p.setting=m,p.license=r,p.crudPermissions=u,p.hasModulePermissions={},p.newAllCondition=!1,p.errors=[],p.trigger=angular.copy(o),p.allCondition?g():(p.allCondition={operator:"equals"},p.newAllCondition=!0),p.allCondition.TriggerAllId=e.params.id||void 0,p.callStatuses=[{name:"Abandon",value:"abandoned"},{name:"Timeout",value:"timeout"},{name:"Hangup",value:"complete"},{name:"Reject",value:"rejected"},{name:"Ring",value:"called"},{name:"Answer",value:"connect"},{name:"NoSuchNumber",value:"nosuchnumber"},{name:"Busy",value:"busy"},{name:"NoAnswer",value:"noanswer"},{name:"Congestion",value:"congestion"},{name:"AgentReject",value:"agentreject"},{name:"AMD",value:"amd"}],p.onFieldSelection=function(){p.allCondition.value=void 0,g()},p.addNewAllCondition=function(){p.errors=[],d.trigger.addAllCondition({id:e.params.id},p.allCondition).$promise.then(function(e){p.allConditions.unshift(e.toJSON()),i.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_CREATED_SUCCESS_TITLE")}),v(p.allConditions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.save"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.condition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.saveAllCondition=function(){p.errors=[],d.condition.update({id:p.allCondition.id},p.allCondition).$promise.then(function(){p.allConditions=_.map(p.allConditions,function(e){return e.id===p.allCondition.id?p.allCondition:e}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_SAVED_SUCCESS_TITLE")}),v(p.allConditions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.update"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.condition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.deleteAllCondition=function(e){p.errors=[];var n=t.confirm({skipHide:!0}).title(a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETE_TITLE")).ariaLabel("Delete condition").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){d.condition.delete({id:p.allCondition.id}).$promise.then(function(){p.allConditions=_.filter(p.allConditions,function(e){return e.id!==p.allCondition.id}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETED_SUCCESS_TITLE")}),v(p.allConditions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.condition.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},p.closeDialog=v}e.$inject=["$state","$mdDialog","$q","$translate","toasty","allConditions","allCondition","trigger","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditAllConditionDialogController",e)}(),function(){"use strict";function e(e,l,a,n,i,t,d,c,m){var u=this;function s(){var o,r;"voice"===u.trigger.channel?(_.some(u.anyConditions.rows,["field","queue"])&&(u.queues||(o=[{id:401,type:"inbound"},{id:1501,type:"outbound"}],r=null,m.isAdmin()?c.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){u.queues=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VOICEQUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):c.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){r=e.rows||[]}).then(function(){for(var e=[],n=0;n<o.length;n++)e.push(c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:o[n].id}).$promise);return l.all(e)}).then(function(e){for(var n=_.map(e,function(e){return e&&e.rows?e.rows[0]:null}),t=[],a=0;a<o.length;a++){var i=_.find(n,["sectionId",o[a].id]);if(i)if(i.autoAssociation){var s=[];r.forEach(function(e){e.type===o[a].type&&s.push(e)}),t.push({rows:s,count:s.length})}else t.push(c.userProfileResource.get({sectionId:i.id}).$promise.then(function(e){return{count:e.count,rows:_.map(e.rows,function(e){return e.id=e.resourceId,delete e.resourceId,e})}}))}return l.all(t)}).then(function(e){var t=[],a=[];u.anyConditions.rows.forEach(function(e){if("queue"===e.field){var n=_.find(r,{name:e.value});a.push(n)}});for(var n=0;n<e.length;n++)(e[n].rows||[]).forEach(function(e){t.push(e)});_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(r,{id:e.id});n.canSelect=!1,t.push(n)}}),u.queues=t}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}))),_.some(u.anyConditions.rows,["field","routeId"])&&(u.outboundRoutes||(m.isAdmin()?c.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){u.outboundRoutes=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}):c.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){u.outboundRoutes=e.rows||[]}).then(function(){return c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:403}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return c.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.outboundRoutes,{id:e.resourceId})}),a=null;a=[],u.anyConditions.rows.forEach(function(e){if("routeId"===e.field){var n=_.find(u.outboundRoutes,{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.outboundRoutes,{id:e.id});n.canSelect=!1,t.push(n)}}),u.outboundRoutes=t})}else{var t=[],a=[];u.anyConditions.rows.forEach(function(e){if("routeId"===e.field){var n=_.find(u.outboundRoutes,{id:Number(e.value)});a.push(n)}});for(var i=0;i<u.outboundRoutes.length;i++)_.some(a,{id:u.outboundRoutes[i].id})&&(u.outboundRoutes[i].canSelect=!1,t.push(u.outboundRoutes[i]));u.outboundRoutes=t}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}))),_.some(u.anyConditions.rows,["field","agent"])&&(u.agents||(m.isAdmin()?c.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){u.agents=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):c.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){u.agents=e.rows||[]}).then(function(){return c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return c.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u.agents,{id:e.resourceId})}),a=null;a=[],u.anyConditions.rows.forEach(function(e){if("agent"===e.field){var n=_.find(u.agents,{name:e.value});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u.agents,{id:e.id});n.canSelect=!1,t.push(n)}}),u.agents=t})}else{var t=[],a=[];u.anyConditions.rows.forEach(function(e){if("agent"===e.field){var n=_.find(u.agents,{name:e.value});a.push(n)}});for(var i=0;i<u.agents.length;i++)_.some(a,{id:u.agents[i].id})&&(u.agents[i].canSelect=!1,t.push(u.agents[i]));u.agents=t}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})})))):("mail"===u.trigger.channel&&c.mailSubstatus.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.mailSubstatuses=e.rows||[]}).catch(function(){d.error({title:a.instant("MAIL.SUBSTATUSES"),msg:a.instant("MAIL.NOTIFICATIONS.SUBSTATUSES_GET_ERROR")})}),function(){var e,s=u.trigger.channel+("chat"===u.trigger.channel?"Websites":"Accounts"),n=u.trigger.channel+("chat"===u.trigger.channel?"Website":"Account");switch(u.trigger.channel){case"chat":e=502;break;case"fax":e=902;break;case"mail":e=602;break;case"openchannel":e=802;break;case"sms":e=702;break;case"whatsapp":e=2102}m.isAdmin()?c[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u[s]=e.rows||[]}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+u.trigger.channel.toUpperCase()+u.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):c[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){u[s]=e.rows||[]}).then(function(){return c.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:e}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return c.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(u[s],{id:e.resourceId})}),a=null;a=[],u.anyConditions.rows.forEach(function(e){if("account"===e.field){var n=_.find(u[s],{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(u[s],{id:e.id});n.canSelect=!1,t.push(n)}}),u[s]=t})}else{var t=[],a=[];u.anyConditions.rows.forEach(function(e){if("account"===e.field){var n=_.find(u[s],{id:Number(e.value)});a.push(n)}});for(var i=0;i<u[s].length;i++)_.some(a,{id:u[s][i].id})&&(u[s][i].canSelect=!1,t.push(u[s][i]));u[s]=t}}).catch(function(e){d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+u.trigger.channel.toUpperCase()+u.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}())}function o(e){u.anyConditions=e||{count:0,rows:[]},s()}function r(){u.query.offset=(u.query.page-1)*u.query.limit,u.promise=c.trigger.getAnyConditions(u.query,o).$promise}function p(e,n){c.condition.delete({id:e.id}).$promise.then(function(){r(),n&&d.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){u.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETtrigger"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}u.currentUser=m.getCurrentUser(),u.trigger={},u.anyConditions={count:0,rows:[]},u.selectedAnyConditions=[],u.query={fields:"id,field,operator,value,createdAt,updatedAt",limit:10,page:1},u.fields={queue:"Queue",lastevent:"Call_Status",routeId:"OutboundRoute",agent:"Agent",account:"Account",interaction:"Interaction",message:"Message",mailSubstatus:"Mail_Substatus"},u.callStatuses={abandoned:"Abandon",timeout:"Timeout",complete:"Hangup",rejected:"Reject",called:"Ring",connect:"Answer",nosuchnumber:"NoSuchNumber",busy:"Busy",noanswer:"NoAnswer",congestion:"Congestion",agentreject:"AgentReject",amd:"AMD"},u.messageStatuses={in:"Incoming",out:"Outgoing",accept:"Accepted",reject:"Rejected"},u.onInit=function(e,n){u.trigger=e,u.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},u.query.TriggerAnyId=u.trigger.id,u.query.id=u.trigger.id,r()},u.success=o,u.getAnyConditions=r,u.createOrEditAnyCondition=function(e,n){i.show({controller:"CreateOrEditAnyConditionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/edit/anyconditions/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{trigger:u.trigger,anyCondition:n,anyConditions:u.anyConditions.rows,license:null,setting:null,crudPermissions:u.crudPermissions}}).then(function(e){e&&(u.anyConditions={count:e.length,rows:e},s())})},u.exportSelectedAnyConditions=function(){var e=angular.copy(u.selectedAnyConditions);return u.selectedAnyConditions=[],e},u.deleteConfirm=function(e,n){var t=i.confirm().title(a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETE_TITLE")).ariaLabel("Delete condition").targetEvent(n).ok("OK").cancel(a.instant("TOOLS.CANCEL"));i.show(t).then(function(){p(e,!0)})},u.deleteAnyCondition=p,u.deleteSelectedAnyConditions=function(e){var n=i.confirm().title(a.instant("TOOLS.NOTIFICATIONS.CONDITIONS_DELETE_TITLE")).content(a.instant("TOOLS.NOTIFICATIONS.CONDITIONS_DELETE_MESSAGE",{total:u.selectedAnyConditions.length})).ariaLabel("Delete conditions").targetEvent(e).ok("OK").cancel(a.instant("TOOLS.CANCEL"));i.show(n).then(function(){u.selectedAnyConditions.forEach(function(e){p(e)}),u.selectedAnyConditions=[],d.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITIONS_DELETED_SUCCESS_TITLE")})})}}e.$inject=["$scope","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.tools").controller("TriggerAnyConditionsController",e)}(),function(){"use strict";function e(e,t,l,a,i,n,s,o,d,c,r,m,u){var p=this;function g(){switch(p.anyCondition.field){case"queue":p.queues||(o=[{id:401,type:"inbound"},{id:1501,type:"outbound"}],r=null,c.isAdmin()?d.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){p.queues=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VOICEQUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.voiceQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){r=e.rows||[]}).then(function(){for(var e=[],n=0;n<o.length;n++)e.push(d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:o[n].id}).$promise);return l.all(e)}).then(function(e){for(var n=_.map(e,function(e){return e&&e.rows?e.rows[0]:null}),t=[],a=0;a<o.length;a++){var i=_.find(n,["sectionId",o[a].id]);if(i)if(i.autoAssociation){var s=[];r.forEach(function(e){e.type===o[a].type&&s.push(e)}),t.push({rows:s,count:s.length})}else t.push(d.userProfileResource.get({sectionId:i.id}).$promise.then(function(e){return{count:e.count,rows:_.map(e.rows,function(e){return e.id=e.resourceId,delete e.resourceId,e})}}))}return l.all(t)}).then(function(e){var t=[],a=[];p.anyConditions.forEach(function(e){if("queue"===e.field){var n=_.find(r,{name:e.value});a.push(n)}});for(var n=0;n<e.length;n++)(e[n].rows||[]).forEach(function(e){t.push(e)});_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(r,{id:e.id});n.canSelect=!1,t.push(n)}}),p.queues=t}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"routeId":p.outboundRoutes||(c.isAdmin()?d.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){p.outboundRoutes=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){p.outboundRoutes=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:403}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(p.outboundRoutes,{id:e.resourceId})}),a=null;a=[],p.anyConditions.forEach(function(e){if("routeId"===e.field){var n=_.find(p.outboundRoutes,{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(p.outboundRoutes,{id:e.id});n.canSelect=!1,t.push(n)}}),p.outboundRoutes=t})}else{var t=[],a=[];p.anyConditions.forEach(function(e){if("routeId"===e.field){var n=_.find(p.outboundRoutes,{id:Number(e.value)});a.push(n)}});for(var i=0;i<p.outboundRoutes.length;i++)_.some(a,{id:p.outboundRoutes[i].id})&&(p.outboundRoutes[i].canSelect=!1,t.push(p.outboundRoutes[i]));p.outboundRoutes=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"agent":p.agents||(c.isAdmin()?d.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){p.agents=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.user.get({fields:"id,name,fullname",sort:"name",role:"agent",nolimit:"true"}).$promise.then(function(e){p.agents=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(p.agents,{id:e.resourceId})}),a=null;a=[],p.anyConditions.forEach(function(e){if("agent"===e.field){var n=_.find(p.agents,{name:e.value});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(p.agents,{id:e.id});n.canSelect=!1,t.push(n)}}),p.agents=t})}else{var t=[],a=[];p.anyConditions.forEach(function(e){if("agent"===e.field){var n=_.find(p.agents,{name:e.value});a.push(n)}});for(var i=0;i<p.agents.length;i++)_.some(a,{id:p.agents[i].id})&&(p.agents[i].canSelect=!1,t.push(p.agents[i]));p.agents=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}));break;case"account":!function(){var e,n=p.trigger.channel+("chat"===p.trigger.channel?"Website":"Account");switch(p.trigger.channel){case"chat":e=502;break;case"fax":e=902;break;case"mail":e=602;break;case"openchannel":e=802;break;case"sms":e=702;break;case"whatsapp":e=2102}c.isAdmin()?d[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.accounts=e.rows||[]}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+p.trigger.channel.toUpperCase()+p.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d[n].get({fields:"id,name",sort:"id",nolimit:"true"}).$promise.then(function(e){p.accounts=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:e}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var t=_.map(e.rows,function(e){return _.find(p.accounts,{id:e.resourceId})}),a=null;a=[],p.anyConditions.forEach(function(e){if("account"===e.field){var n=_.find(p.accounts,{id:Number(e.value)});a.push(n)}}),_.isEmpty(a)||a.forEach(function(e){if(!_.some(t,["id",e.id])){var n=_.find(p.accounts,{id:e.id});n.canSelect=!1,t.push(n)}}),p.accounts=t})}else{var t=[],a=[];p.anyConditions.forEach(function(e){if("account"===e.field){var n=_.find(p.accounts,{id:Number(e.value)});a.push(n)}});for(var i=0;i<p.accounts.length;i++)_.some(a,{id:p.accounts[i].id})&&(p.accounts[i].canSelect=!1,t.push(p.accounts[i]));p.accounts=t}}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_"+p.trigger.channel.toUpperCase()+p.trigger.channel=="chat"?"WEBSITES":"ACCOUNTS",msg:e.data?JSON.stringify(e.data):e.toString()})})}();break;case"mailSubstatus":d.mailSubstatus.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){p.mailSubstatuses=e.rows||[]}).catch(function(){i.error({title:a.instant("MAIL.SUBSTATUSES"),msg:a.instant("MAIL.NOTIFICATIONS.SUBSTATUSES_GET_ERROR")})})}var o,r}function v(e){t.hide(e)}p.currentUser=c.getCurrentUser(),p.anyCondition=angular.copy(s),p.anyConditions=angular.copy(n),p.setting=m,p.license=r,p.crudPermissions=u,p.hasModulePermissions={},p.newAnyCondition=!1,p.errors=[],p.trigger=angular.copy(o),p.anyCondition?g():(p.anyCondition={operator:"equals"},p.newAnyCondition=!0),p.anyCondition.TriggerAnyId=e.params.id||void 0,p.callStatuses=[{name:"Abandon",value:"abandoned"},{name:"Timeout",value:"timeout"},{name:"Hangup",value:"complete"},{name:"Reject",value:"rejected"},{name:"Ring",value:"called"},{name:"Answer",value:"connect"},{name:"NoSuchNumber",value:"nosuchnumber"},{name:"Busy",value:"busy"},{name:"NoAnswer",value:"noanswer"},{name:"Congestion",value:"congestion"},{name:"AgentReject",value:"agentreject"},{name:"AMD",value:"amd"}],p.onFieldSelection=function(){p.anyCondition.value=void 0,g()},p.addNewAnyCondition=function(){p.errors=[],d.trigger.addAnyCondition({id:e.params.id},p.anyCondition).$promise.then(function(e){p.anyConditions.unshift(e.toJSON()),i.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_CREATED_SUCCESS_TITLE")}),v(p.anyConditions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.save"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.condition.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.saveAnyCondition=function(){p.errors=[],d.condition.update({id:p.anyCondition.id},p.anyCondition).$promise.then(function(){p.anyConditions=_.map(p.anyConditions,function(e){return e.id===p.anyCondition.id?p.anyCondition:e}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_SAVED_SUCCESS_TITLE")}),v(p.anyConditions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.update"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.condition.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},p.deleteAnyCondition=function(e){p.errors=[];var n=t.confirm({skipHide:!0}).title(a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETE_TITLE")).ariaLabel("Delete condition").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){d.condition.delete({id:p.anyCondition.id}).$promise.then(function(){p.anyConditions=_.filter(p.anyConditions,function(e){return e.id!==p.allCondition.id}),i.success({title:a.instant("TOOLS.NOTIFICATIONS.CONDITION_DELETED_SUCCESS_TITLE")}),v(p.anyConditions)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){p.errors=e.data.errors||[{message:e.toString(),type:"api.condition.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.condition.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},p.closeDialog=v}e.$inject=["$state","$mdDialog","$q","$translate","toasty","anyConditions","anyCondition","trigger","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditAnyConditionDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){var d=this;d.currentUser=o.getCurrentUser(),d.license=t,d.setting=a,d.trigger=r||e.params.trigger||{},d.selectedTab=e.params.tab||0,e.params.crudPermissions?d.crudPermissions=e.params.crudPermissions:(d.userProfileSection=l&&1==l.count?l.rows[0]:null,d.crudPermissions=o.parseCrudPermissions(d.userProfileSection?d.userProfileSection.crudPermissions:null)),d.gotoTriggers=function(){e.go("app.tools.triggers",{},{reload:"app.tools.triggers"})},d.saveTrigger=function(){i.trigger.update({id:d.trigger.id},d.trigger).$promise.then(function(){s.success({title:n.instant("TOOLS.NOTIFICATIONS.TRIGGER_SAVED_SUCCESS_TITLE")})}).catch(function(e){s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrigger",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$translate","license","setting","api","toasty","Auth","trigger","userProfileSection"],angular.module("app.tools").controller("TriggerController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){n.go("app.tools.triggers.edit",{id:e.id,trigger:e,crudPermissions:g.crudPermissions})}function h(e){g.triggers=e||{count:0,rows:[]}}function f(){g.query.offset=(g.query.page-1)*g.query.limit,m.isAdmin()?g.promise=d.trigger.get(g.query,h).$promise:(g.query.id=g.userProfile.id,g.query.section="Triggers",g.promise=d.userProfile.getResources(g.query,h).$promise)}function b(e,n){d.trigger.delete({id:e.id}).$promise.then(function(){f(),n&&c.success({title:s.instant("TOOLS.NOTIFICATIONS.TRIGGER_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEtrigger"}];for(var n=0;n<e.data.errors.length;n++)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEtrigger",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}g.license=u,g.setting=p,g.currentUser=m.getCurrentUser(),g.triggers=o||{count:0,rows:[]},g.userProfile=r,g.userProfileSection=l&&1==l.count?l.rows[0]:null,g.crudPermissions=m.parseCrudPermissions(g.userProfileSection?g.userProfileSection.crudPermissions:null),g.selectedTriggers=[],g.query={fields:"id,name,channel,status,description,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},g.goToEditState=v,g.createOrEditTrigger=function(e,n){if(g.crudPermissions.readOnly||g.crudPermissions.canDelete&&!g.crudPermissions.canEdit)return void v(n);a.show({controller:"CreateOrEditTriggerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/triggers/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{trigger:n,triggers:g.triggers.rows,license:g.license,setting:g.setting,crudPermissions:g.crudPermissions}}).then(function(e){e&&(g.triggers={count:e.length,rows:e})})},g.success=h,g.getTriggers=f,g.deleteconfirm=function(e,n){var t=a.confirm().title(s.instant("TOOLS.NOTIFICATIONS.TRIGGER_DELETE_TITLE")).content(s.instant("TOOLS.NOTIFICATIONS.TRIGGER_DELETE_MESSAGE",{name:e.name})).ariaLabel("Delete trigger").targetEvent(n).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(t).then(function(){b(e,!0)})},g.exportSelectedTriggers=function(){var e=angular.copy(g.selectedTriggers);return g.selectedTriggers=[],e},g.deleteSelectedTriggers=function(e){var n=a.confirm().title(s.instant("TOOLS.NOTIFICATIONS.TRIGGERS_DELETE_TITLE")).content(s.instant("TOOLS.NOTIFICATIONS.TRIGGERS_DELETE_MESSAGE",{total:g.selectedTriggers.length})).ariaLabel("Delete triggers").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(n).then(function(){g.selectedTriggers.forEach(function(e){b(e)}),g.selectedTriggers=[],c.success({title:s.instant("TOOLS.NOTIFICATIONS.TRIGGERS_DELETED_SUCCESS_TITLE")})})},g.deselectTriggers=function(){g.selectedTriggers=[]},g.selectAllTriggers=function(){g.selectedTriggers=g.triggers.rows};var A=!0,E=1;e.$watch("vm.query.filter",function(e,n){A?i(function(){A=!1}):(n||(E=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=E),f())})}e.$inject=["$scope","$state","$mdDialog","$document","$timeout","$translate","triggers","userProfile","userProfileSection","api","toasty","Auth","license","setting"],angular.module("app.tools").controller("TriggersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_TRUNK",g.trunk=angular.copy(l),g.trunks=r,g.newTrunk=!1,g.trunk||(g.trunk={active:!0,type:"friend",dtmfmode:"rfc2833",qualify:"yes",t38pt_udptl:"no"},g.title="TOOLS.NEW_TRUNK",g.newTrunk=!0),g.addNewTrunk=function(){g.errors=[],d.trunk.save(g.trunk).$promise.then(function(e){g.trunks.unshift(e.toJSON()),o.success({title:"Trunk properly created",msg:g.trunk.name?g.trunk.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.trunk.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trunk.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveTrunk=function(){g.errors=[],d.trunk.update({id:g.trunk.id},g.trunk).$promise.then(function(e){var n=_.find(g.trunks,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Trunk properly saved!",msg:g.trunk.name?g.trunk.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.trunk.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trunk.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteTrunk=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The trunk will be deleted.").ariaLabel("Delete Trunk").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.trunk.delete({id:g.trunk.id}).$promise.then(function(){_.remove(g.trunks,{id:g.trunk.id}),o.success({title:"Trunk properly deleted!",msg:(g.trunk.name||"trunk")+" has been deleted!"}),v(g.trunk)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.trunk.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trunk.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","trunks","trunk","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditTrunkDialogController",e)}(),function(){"use strict";function e(n,t,a,e,i,s,o){var r=this;function l(e){n.hide(e)}r.newTrunk=!0,r.trunk=angular.copy(i),r.trunks=s,r.title=o.instant("TOOLS.CLONE_TRUNK"),i&&i.name&&(r.title+=": "+i.name),r.cloneTrunk=function(){return e.trunk.clone({id:i.id},r.trunk).$promise.then(function(e){r.trunks.unshift(e.toJSON()),a.success({title:"Trunk properly cloned",msg:r.trunk.name?r.trunk.name+" has been cloned!":""}),t.go("app.tools.trunks.edit",{id:e.id}),l(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){r.errors=e.data.errors||[{message:e.toString(),type:"api.trunk.clone"}];for(var n=0;n<e.data.errors.length;n+=1)a.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.trunk.clone",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},r.closeDialog=l}e.$inject=["$mdDialog","$state","toasty","api","trunk","trunks","$translate"],angular.module("app.tools").controller("TrunkcloneController",e)}(),function(){"use strict";function e(t,e,a,i,s,n,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=n,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.trunk=c||t.params.trunk||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=t.params.tab||0,u.gotogoto=function(e,n){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:411}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.voice.realtime.trunks",{}):l.info({title:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.voice.realtime.trunks",{})}},u.clonedialog=function(e,n){a.show({controller:"TrunkcloneController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/trunks/edit/clone/clone.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{trunk:e,trunks:u.trunks?u.trunks.rows:[],crudPermissions:u.crudPermissions}})},u.alert=l.info,u.gotoTrunks=function(){t.go("app.tools.trunks",{},{reload:"app.tools.trunks"})},u.saveTrunk=function(){r.trunk.update({id:u.trunk.id},u.trunk).$promise.then(function(){l.success({title:"Trunk updated!",msg:u.trunk.name?u.trunk.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtrunk",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CONTEXTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:405}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?void 0:r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.contexts,{id:e.resourceId})}),t=null;if(u.trunk&&(t=_.find(u.contexts,{name:u.trunk.context})),t&&!_.some(n,["id",t.id])){var a=_.find(u.contexts,{id:t.id});a.canSelect=!1,n.push(a)}u.contexts=n}):r.voiceContext.get({fields:"id,name",sort:"name",defaultEntry:1}).$promise.then(function(e){u.contexts=e.rows||[]})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","trunk","userProfileSection"],angular.module("app.tools").controller("TrunkController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.trunks=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="trunks",f.listOrder="",f.listOrderAsc=null,f.selectedTrunks=[],f.query={fields:"createdAt,updatedAt,id,name,active,host,secret,defaultuser,context,callerid,type,dtmfmode,nat,qualify,allow,insecure,call_limit,registry,description,directmedia,callcounter,fromdomain,fromuser,outboundproxy,usereqphone,trustrpid,sendrpid,encryption,port,transport,t38pt_udptl,videosupport,otherFields",sort:"-updatedAt",limit:10,page:1},f.arraytype=_.keyBy([{option:"Friend",value:"'friend'"},{option:"User",value:"'user'"},{option:"Peer",value:"'peer'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraydtmfmode=_.keyBy([{option:"rfc2833",value:"'rfc2833'"},{option:"info",value:"'info'"},{option:"shortinfo",value:"'shortinfo'"},{option:"inband",value:"'inband'"},{option:"auto",value:"'auto'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraynat=_.keyBy([{option:"force_rport",value:"'force_rport'"},{option:"comedia",value:"'comedia'"},{option:"yes",value:"'yes'"},{option:"no",value:"'no'"},{option:"never",value:"'never'"},{option:"route",value:"'route'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayqualify=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayallow=_.keyBy([{option:"ulaw",value:"'ulaw'"},{option:"alaw",value:"'alaw'"},{option:"gsm",value:"'gsm'"},{option:"g723",value:"'g723'"},{option:"g726",value:"'g726'"},{option:"g722",value:"'g722'"},{option:"g729",value:"'g729'"},{option:"ilbc",value:"'ilbc'"},{option:"opus",value:"'opus'"},{option:"h264",value:"'h264'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayinsecure=_.keyBy([{option:"port",value:"'port'"},{option:"invite",value:"'invite'"},{option:"very",value:"'very'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraydirectmedia=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"},{option:"nonat",value:"'nonat'"},{option:"update",value:"'update'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraycallcounter=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayusereqphone=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraytrustrpid=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysendrpid=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"},{option:"pai",value:"'pai'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayencryption=_.keyBy([{option:"yes",value:"'yes'"},{option:"no",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraytransport=_.keyBy([{option:"udp",value:"'udp'"},{option:"tcp",value:"'tcp'"},{option:"ws",value:"'ws'"},{option:"wss",value:"'wss'"},{option:"tls",value:"'tls'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayvideosupport=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Always",value:"'always'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.tools.trunks.edit",{id:e.id,trunk:e,crudPermissions:f.crudPermissions})},f.clonedialog=function(e,n){i.show({controller:"TrunkcloneController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/trunks/edit/clone/clone.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{trunk:e,trunks:f.trunks?f.trunks.rows:[],crudPermissions:f.crudPermissions}})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:411}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.voice.realtime.trunks",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.voice.realtime.trunks",{})}},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("trunk")+"?").htmlContent("<b>"+(e.name||"trunk")+"</b> will be deleted.").ariaLabel("delete trunk").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getTrunks=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.trunk.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Trunks",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditTrunk=function(e,n){i.show({controller:"CreateOrEditTrunkDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/trunks/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{trunk:n,trunks:f.trunks.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteTrunk=y,f.exportSelectedTrunks=function(){var e=angular.copy(f.selectedTrunks);return f.selectedTrunks=[],e},f.deleteSelectedTrunks=function(e){var n=i.confirm().title("Are you sure want to delete the selected trunks?").htmlContent("<b>"+f.selectedTrunks.length+" selected</b> will be deleted.").ariaLabel("delete Trunks").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedTrunks.forEach(function(e){y(e)}),f.selectedTrunks=[]})},f.deselectTrunks=function(){f.selectedTrunks=[]},f.selectAllTrunks=function(){f.selectedTrunks=f.trunks.rows};var b=!0,A=1;function E(e){f.trunks=e||{count:0,rows:[]}}function y(e){m.trunk.delete({id:e.id}).$promise.then(function(){_.remove(f.trunks.rows,{id:e.id}),f.trunks.count-=1,f.trunks.rows.length||f.getTrunks(),p.success({title:_.startCase("Trunk")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEtrunk"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEtrunk",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getTrunks())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","trunks","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("TrunksController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="TOOLS.EDIT_VARIABLE",g.variable=angular.copy(l),g.variables=r,g.newVariable=!1,g.variable||(g.variable={},g.title="TOOLS.NEW_VARIABLE",g.newVariable=!0),g.addNewVariable=function(){g.errors=[],d.variable.save(g.variable).$promise.then(function(e){g.variables.unshift(e.toJSON()),o.success({title:"Variable properly created",msg:g.variable.name?g.variable.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.variable.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.variable.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveVariable=function(){g.errors=[],d.variable.update({id:g.variable.id},g.variable).$promise.then(function(e){var n=_.find(g.variables,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Variable properly saved!",msg:g.variable.name?g.variable.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.variable.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.variable.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteVariable=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The variable will be deleted.").ariaLabel("Delete Variable").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.variable.delete({id:g.variable.id}).$promise.then(function(){_.remove(g.variables,{id:g.variable.id}),o.success({title:"Variable properly deleted!",msg:(g.variable.name||"variable")+" has been deleted!"}),v(g.variable)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.variable.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.variable.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","variables","variable","api","Auth","license","setting","crudPermissions"],angular.module("app.tools").controller("CreateOrEditVariableDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.variables=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="variables",f.listOrder="",f.listOrderAsc=null,f.selectedVariables=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditVariableDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/variables/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{variable:e,variables:f.variables.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("variable")+"?").htmlContent("<b>"+(e.name||"variable")+"</b> will be deleted.").ariaLabel("delete variable").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getVariables=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.variable.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Variables",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditVariable=function(e,n){i.show({controller:"CreateOrEditVariableDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/variables/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{variable:n,variables:f.variables.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteVariable=y,f.exportSelectedVariables=function(){var e=angular.copy(f.selectedVariables);return f.selectedVariables=[],e},f.deleteSelectedVariables=function(e){var n=i.confirm().title("Are you sure want to delete the selected variables?").htmlContent("<b>"+f.selectedVariables.length+" selected</b> will be deleted.").ariaLabel("delete Variables").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedVariables.forEach(function(e){y(e)}),f.selectedVariables=[]})},f.deselectVariables=function(){f.selectedVariables=[]},f.selectAllVariables=function(){f.selectedVariables=f.variables.rows};var b=!0,A=1;function E(e){f.variables=e||{count:0,rows:[]}}function y(e){m.variable.delete({id:e.id}).$promise.then(function(){_.remove(f.variables.rows,{id:e.id}),f.variables.count-=1,f.variables.rows.length||f.getVariables(),p.success({title:_.startCase("Variable")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvariable"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvariable",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getVariables())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","variables","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.tools").controller("VariablesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VIDEO.EDIT_SCREENRECORDING",g.screenRecording=angular.copy(l),g.screenRecordings=r,g.newscreenRecording=!1,g.screenRecording||(g.screenRecording={},g.title="VIDEO.NEW_SCREENRECORDING",g.newscreenRecording=!0),g.addNewscreenRecording=function(){g.errors=[],d.screenRecording.save(g.screenRecording).$promise.then(function(e){g.screenRecordings.unshift(e.toJSON()),o.success({title:"screenRecording properly created",msg:g.screenRecording.name?g.screenRecording.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.screenRecording.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.screenRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.savescreenRecording=function(){g.errors=[],d.screenRecording.update({id:g.screenRecording.id},g.screenRecording).$promise.then(function(e){var n=_.find(g.screenRecordings,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"screenRecording properly saved!",msg:g.screenRecording.name?g.screenRecording.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.screenRecording.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.screenRecording.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deletescreenRecording=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The screenRecording will be deleted.").ariaLabel("Delete screenRecording").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.screenRecording.delete({id:g.screenRecording.id}).$promise.then(function(){_.remove(g.screenRecordings,{id:g.screenRecording.id}),o.success({title:"screenRecording properly deleted!",msg:(g.screenRecording.name||"screenRecording")+" has been deleted!"}),v(g.screenRecording)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.screenRecording.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.screenRecording.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,d.user.get({fields:"id,name,fullname",sort:"name",nolimit:"true"}).$promise.then(function(e){g.users=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_USERS",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","screenRecordings","screenRecording","api","Auth","license","setting","crudPermissions"],angular.module("app.video").controller("CreateOrEditscreenRecordingDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c,m=this;if(m.loading=!1,m.recording=Object.assign({},i),m.route="screenRecording",m.element=l,m.actionOptions=Object.assign({},s),m.path=r,m.label=o,m.app="video",m.model="screenRecording",console.log("TCL: vm.path",m.path),console.log("TCL: vm.recording[vm.path]",m.recording[m.path]),m.filename=-1<m.recording[m.path].indexOf("/")?m.recording[m.path].substring(m.recording[m.path].lastIndexOf("/")+1):-1<m.recording[m.path].indexOf("\\")?m.recording[m.path].substring(m.recording[m.path].lastIndexOf("\\")+1):m.recording[m.path],m.format=!1,_.isNil(m.recording.format)&&(m.recording.format=m.filename.slice(m.filename.lastIndexOf("."))),(".wav"===m.recording.format&&"audio"===m.element||".mp4"===m.recording.format&&"video"===m.element)&&(m.format=!0),m.found=!0,m.format&&(c=d.defer(),a.screenRecording.download({id:m.recording.id,path:String(m.path)}).$promise.then(function(e){m.format=!0,m.found=!0,c.resolve()}).catch(function(e){console.log("err"),m.format=!1,m.found=!1,c.resolve()}),c.promise),!_.isNil(s.properties)&&s.properties){if(m.properties=Object.assign({},i),Object.keys(i).forEach(function(e){String(e[0].toUpperCase())===String(e[0])&&delete m.properties[e]}),m.propertiesDefault={},!_.isNil(s.propertiesList)&&0<s.propertiesList.length){m.propertiesDefault=Object.assign({},i);var u=s.propertiesList,p=Object.keys(i),g=!0;p.forEach(function(n){g=!0,u.forEach(function(e){String(n)===String(e)&&(g=!1)}),g&&delete m.propertiesDefault[n]}),m.properties=m.propertiesDefault}if(!_.isNil(s.extraData)&&0<s.extraData.length){m.propertiesExtra={};for(var v=s.extraData,h=0;h<v.length;h++)for(var f=v[h].values,b=v[h].model,A=0;A<f.length;A++)m.propertiesExtra[f[A].text]=i[b][f[A].key];m.properties=Object.assign({},m.propertiesDefault,m.propertiesExtra)}}m.closeDialog=function(){n.hide()}}e.$inject=["$scope","$mdDialog","toasty","api","recording","actionOptions","label","varPath","elementTag","$q"],angular.module("app.video").controller("screenRecordingplayController",e)}(),function(){"use strict";function e(e,n,t,a,r,l,i,o,s,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.screenRecordings=s||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="screenRecordings",f.listOrder="",f.listOrderAsc=null,f.selectedScreenRecordings=[],f.query={fields:"createdAt,updatedAt,id,interactionid,channel,format,value,rating,UserId,duration,startedAt,closedAt",createdAt:"@msUtils.firstLastDayMonth()",includeAll:"true",sort:"-updatedAt",limit:10,page:1},f.query.createdAt=u.firstLastDayMonth(),f.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE_RANGE"}],f.playrecording=function(e,n,t,a,i){var s={route:"screenRecording",name:"screenRecordings",model:"screenRecording",singular:"screenRecording"},a=String(a),o=String(t);console.log("TCL: path",String(t)),r.show({controller:"screenRecordingplayController",controllerAs:"vm",templateUrl:"app/main/apps/video/views/screenRecordings/partialViews/play.html",parent:angular.element(l.body),targetEvent:n,clickOutsideToClose:!0,locals:{recording:e,recordings:f.screenRecordings.rows,license:f.license,setting:null,item:s,actionOptions:{upperTitle:!1,lowerTitle:!0,properties:!0,propertiesIcon:"icon-video",propertiesList:["format","interactionid","duration","startedAt","closedAt","createdAt"],extraData:[{model:"User",values:[{key:"name",text:"agentname"}]}]},label:a,varPath:o,elementTag:String(i)}})},f.downloadfile2=function(e,n){var t=!1,a=_.isNil(e.format)?e.value.substring(e.value.lastIndexOf(".")):e.format;t=".mp4"===a;var s=-1<e.value.lastIndexOf("/")?e.value.substring(e.value.lastIndexOf("/")+1):-1<e.value.lastIndexOf("\\")?e.value.substring(e.value.lastIndexOf("\\")+1):e.value;return m.screenRecording.download({id:e.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else"404"===String(e.status)&&!1===t?p.info({title:o.instant("VIDEO.CANT_DOWNLOAD_THIS_FILE"),msg:o.instant("VIDEO.WRONG_EXTENSION")}):"404"===String(e.status)?p.info({title:o.instant("VIDEO.CANT_DOWNLOAD_THIS_FILE"),msg:o.instant("VIDEO.FILE_NOT_FOUND")}):p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.screenRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},f.deleteconfirm=function(e,n){var t=r.confirm().title("Are you sure want to delete the "+_.startCase("screenRecording")+"?").htmlContent("<b>"+(e.name||"screenRecording")+"</b> will be deleted.").ariaLabel("delete screenRecording").targetEvent(n).ok("OK").cancel("CANCEL");r.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getScreenRecordings=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.screenRecording.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ScreenRecordings",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditscreenRecording=function(e,n){r.show({controller:"CreateOrEditscreenRecordingDialogController",controllerAs:"vm",templateUrl:"app/main/apps/video/views/screenRecordings/create/dialog.html",parent:angular.element(l.body),targetEvent:e,clickOutsideToClose:!0,locals:{screenRecording:n,screenRecordings:f.screenRecordings.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deletescreenRecording=y,f.exportSelectedScreenRecordings=function(){var e=angular.copy(f.selectedScreenRecordings);return f.selectedScreenRecordings=[],e},f.deleteSelectedScreenRecordings=function(e){var n=r.confirm().title("Are you sure want to delete the selected screenRecordings?").htmlContent("<b>"+f.selectedScreenRecordings.length+" selected</b> will be deleted.").ariaLabel("delete screenRecordings").targetEvent(e).ok("OK").cancel("CANCEL");r.show(n).then(function(){f.selectedScreenRecordings.forEach(function(e){y(e)}),f.selectedScreenRecordings=[]})},f.deselectScreenRecordings=function(){f.selectedScreenRecordings=[]},f.selectAllScreenRecordings=function(){f.selectedScreenRecordings=f.screenRecordings.rows},f.convertDuration=function(e){var n=Math.floor(e/1e3%60),t=Math.floor(e/6e4%60),a=Math.floor(e/36e5%24),i=a<10?"0"+String(a):String(a),s=t<10?"0"+String(t):String(t),o=n<10?"0"+String(n):String(n);return i+":"+s+":"+o},m.user.get({fields:"id,name,fullname",sort:"name",nolimit:"true"}).$promise.then(function(e){f.users=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_USERS",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.screenRecordings=e||{count:0,rows:[]}}function y(e){m.screenRecording.delete({id:e.id}).$promise.then(function(){_.remove(f.screenRecordings.rows,{id:e.id}),f.screenRecordings.count-=1,f.screenRecordings.rows.length||f.getScreenRecordings(),p.success({title:_.startCase("screenRecording")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEscreenRecording"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEscreenRecording",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?i(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getScreenRecordings())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","screenRecordings","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.video").controller("ScreenRecordingsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l){var d=this;function c(e){return _.isEmpty(e)||isNaN(e)?e:parseInt(e,10)}function m(e){switch(e){case"sound":if(!d.application.appdata)return;return[{key:"save_name",value:d.application.appdata.split("/").pop()}];case"squareProject":if(!d.application.project)return;return[{key:"name",value:d.application.project.split(",")[1]}];case"tag":if(!d.application.tag)return;return[{key:"name",value:d.application.tag}];case"trunk":if(!d.application.trunk)return;return[{key:"name",value:d.application.trunk}];case"user":if(!d.application.user&&!d.application.users)return;return d.application.user?[{key:"name",value:d.application.user.split("/")[1]}]:_.map(d.application.users,function(e){return{key:"name",value:e.split("/")[1]}});case"variable":if(!d.application.name)return;return[{key:"name",value:d.application.name}];case"voiceContext":if(!d.application.context)return;return[{key:"name",value:d.application.context}];case"voiceMail":if(!d.application.voiceMail)return;return[{key:"mailbox",value:d.application.voiceMail.split("@")[0]}];case"voiceQueue":if(!d.application.queue)return;return[{key:"name",value:d.application.queue}]}}function u(){o.getResourcesByRole(d.currentUser,"trunk",{fields:"id,name",sort:"name",nolimit:"true"},m("trunk")).then(function(e){d.trunks=e}).catch(function(){s.error({title:i.instant("TOOLS.TRUNKS"),msg:i.instant("VOICE.NOTIFICATIONS.TRUNKS_GET_ERROR")})})}function p(){o.getResourcesByRole(d.currentUser,"sound",{fields:"id,name,save_name",sort:"name",nolimit:"true"},m("sound")).then(function(e){d.sounds=e}).catch(function(){s.error({title:i.instant("TOOLS.SOUNDS"),msg:i.instant("VOICE.NOTIFICATIONS.SOUNDS_GET_ERROR")})})}function g(){var e={fields:"id,name,role",sort:"name",nolimit:"true"},n=m("user"),t=[o.getResourcesByRole(d.currentUser,"user",_.merge(e,{role:"agent"}),n,"Agents"),o.getResourcesByRole(d.currentUser,"user",_.merge(e,{role:"telephone"}),n,"Telephones")];a.all(t).then(function(e){var n=_(e).flatMap(function(e){return e.rows}).orderBy([function(e){return e.name.toLowerCase()}]).value();d.users={rows:n,count:n.length}}).catch(function(){s.error({title:i.instant("STAFF.USERS"),msg:i.instant("VOICE.NOTIFICATIONS.USERS_GET_ERROR")})})}function v(){(d.application.appdata||"custom"===d.application.appType)&&e.hide(d.application),e.hide()}d.currentUser=r.getCurrentUser(),d.application=angular.copy(n),d.crudPermissions=l,d.errors=[],d.init=function(){d.application.appdata&&function(){var e=[];switch(d.application.appType){case"agi":d.application.project=d.application.appdata;break;case"dial":e=d.application.appdata.split(","),d.application.tech=c(e[0]),d.application.timeout=c(e[1]),d.application.options=c(e[2]),d.application.url=c(e[3]);break;case"externalDial":e=d.application.appdata.split(","),d.application.trunk=e[0].split("/")[1],d.application.phone=e[0].split("/")[2],d.application.timeout=c(e[1]),d.application.options=c(e[2]),d.application.url=c(e[3]);break;case"goTo":e=d.application.appdata.split(","),d.application.context=c(e[0]),d.application.extension=c(e[1]),d.application.priority=c(e[2]);break;case"internalDial":e=d.application.appdata.split(","),d.application.user=c(e[0]),d.application.timeout=c(e[1]),d.application.options=c(e[2]),d.application.url=c(e[3]);break;case"outboundDial":e=d.application.appdata.split(","),d.application.trunk=e[0].split("/")[1],d.application.phone=e[0].split("/")[2],d.application.timeout=c(e[1]),d.application.options=c(e[2]),d.application.url=c(e[3]),d.application.prefix=d.application.phone?d.application.phone.split("$")[0]:void 0,d.application.callerId=d.application.callerID?"CALLERID(all)="+d.application.callerID:void 0;break;case"playback":e=d.application.appdata.split(","),d.application.appdata=c(e[0]),d.application.options=c(e[1]);break;case"queue":e=d.application.appdata.split(","),d.application.queue=c(e[0]),d.application.options=c(e[1]),d.application.URL=c(e[2]),d.application.sound=c(e[3]),d.application.timeout=c(e[4]),d.application.agi=c(e[5]),d.application.macro=c(e[6]),d.application.gosub=c(e[7]),d.application.rule=c(e[8]),d.application.position=c(e[9]);break;case"ringGroup":e=d.application.appdata.split(","),d.application.users=e[0].split("&"),d.application.timeout=c(e[1]),d.application.options=c(e[2]),d.application.url=c(e[3]);break;case"set":e=d.application.appdata.split("="),d.application.name=e[0],d.application.value=e[1];break;case"voicemail":e=d.application.appdata.split(","),d.application.voiceMail=c(e[0]),d.application.options=c(e[1])}}();switch(d.application.appType){case"agi":o.getResourcesByRole(d.currentUser,"squareProject",{fields:"id,name",sort:"name",nolimit:"true"},m("squareProject")).then(function(e){d.projects=e}).catch(function(){s.error({title:i.instant("CALLYSQUARE.CALLYSQUARE")+" "+i.instant("CALLYSQUARE.PROJECTS"),msg:i.instant("VOICE.NOTIFICATIONS.CALLYSQUARE_PROJECTS_GET_ERROR")})});break;case"externalDial":u();break;case"goTo":o.getResourcesByRole(d.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:"true"},m("voiceContext")).then(function(e){d.contexts=e}).catch(function(){s.error({title:i.instant("VOICE.CONTEXTS"),msg:i.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});break;case"internalDial":g();break;case"outboundDial":o.getResourcesByRole(d.currentUser,"tag",{fields:"id,name",sort:"name",nolimit:"true"},m("tag")).then(function(e){d.tags=e}).catch(function(){s.error({title:i.instant("TOOLS.TAGS"),msg:i.instant("VOICE.NOTIFICATIONS.TAGS_GET_ERROR")})}),u();break;case"playback":p();break;case"queue":p(),o.getResourcesByRole(d.currentUser,"voiceQueue",{type:"inbound",fields:"id,name,type",sort:"name",nolimit:"true"},m("voiceQueue")).then(function(e){d.queues=e}).catch(function(){s.error({title:i.instant("VOICE.VOICEQUEUES"),msg:i.instant("VOICE.NOTIFICATIONS.QUEUES_GET_ERROR")})});break;case"ringGroup":g();break;case"set":o.getResourcesByRole(d.currentUser,"variable",{fields:"id,name",sort:"name",nolimit:"true"},m("variable")).then(function(e){d.variables=e}).catch(function(){s.error({title:i.instant("TOOLS.VARIABLES"),msg:i.instant("VOICE.NOTIFICATIONS.VARIABLES_GET_ERROR")})});break;case"voicemail":o.getResourcesByRole(d.currentUser,"voiceMail",{fields:"id,mailbox",sort:"mailbox",nolimit:"true"},m("voiceMail")).then(function(e){d.voiceMails=e}).catch(function(){s.error({title:i.instant("VOICE.VOICEMAILS"),msg:i.instant("VOICE.NOTIFICATIONS.VOICEMAILS_GET_ERROR")})})}},d.saveRoutingApp=function(){d.errors=[],function(){var e=[];switch(d.application.appType){case"agi":d.application.appdata=d.application.project;break;case"dial":e[0]=d.application.tech,e[1]=d.application.timeout,e[2]=d.application.options,e[3]=d.application.url,d.application.appdata=e.join(",");break;case"externalDial":e[0]=["SIP",d.application.trunk,d.application.phone].join("/"),e[1]=d.application.timeout,e[2]=d.application.options,e[3]=d.application.url,d.application.appdata=e.join(",");break;case"goTo":e[0]=d.application.context,e[1]=d.application.extension,e[2]=d.application.priority,d.application.appdata=e.join(",");break;case"internalDial":e[0]=d.application.user,e[1]=d.application.timeout,e[2]=d.application.options,e[3]=d.application.url,d.application.appdata=e.join(",");break;case"outboundDial":d.application.phone=t.cutdigits?(d.application.prefix||"")+"${EXTEN:"+t.cutdigits+"}":(d.application.prefix||"")+"${EXTEN}","none"===t.recordingFormat?d.application.options=d.application.options.replace("U(xcally-mixmonitor-context)",""):d.application.options.indexOf("U(xcally-mixmonitor-context)")<0&&(d.application.options+="U(xcally-mixmonitor-context)"),e[0]=["SIP",d.application.trunk,d.application.phone].join("/"),e[1]=d.application.timeout,e[2]=d.application.options,e[3]=d.application.url,d.application.appdata=e.join(",");break;case"playback":e[0]=d.application.appdata,e[1]=d.application.options,d.application.appdata=e.join(",");break;case"queue":e[0]=d.application.queue,e[1]=d.application.options,e[2]=d.application.URL,e[3]=d.application.sound,e[4]=d.application.timeout,e[5]=d.application.agi,e[6]=d.application.macro,e[7]=d.application.gosub,e[8]=d.application.rule,e[9]=d.application.position,d.application.appdata=e.join(",");break;case"ringGroup":e[0]=d.application.users.join("&"),e[1]=d.application.timeout,e[2]=d.application.options,e[3]=d.application.url,d.application.appdata=e.join(",");break;case"set":e[0]=d.application.name,e[1]=d.application.value,d.application.appdata=e.join("=");break;case"voicemail":e[0]=d.application.voiceMail,e[1]=d.application.options,d.application.appdata=e.join(",")}}(),v()},d.closeDialog=v}e.$inject=["$mdDialog","$q","$translate","toasty","application","route","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditRoutingAppDialogController",e)}(),function(){"use strict";function e(n,t,e,a,i,s,o,r,l){var d=this;function c(){var e=[{key:"name",value:d.interval.IntervalId}];s.getResourcesByRole(d.currentUser,"interval",{fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0},e).then(function(e){d.intervals=e}).catch(function(){i.error({title:t.instant("TOOLS.INTERVALS"),msg:t.instant("VOICE.NOTIFICATIONS.INTERVALS_GET_ERROR")})})}function m(e){n.hide(e)}d.currentUser=o.getCurrentUser(),d.interval=angular.copy(e),d.intervals=a||{rows:[],count:0},d.types=["always","custom","list"],d.crudPermissions=r,d.errors=[],d.daysOfWeek=l.getDaysOfWeek(),d.monthNumber=l.getMonthNumber(),d.monthName=l.getMonthName(),d.daysOfMonth=l.getDaysOfMonth(),d.initialize=function(){if("*,*,*,*"===d.interval.interval)return d.type=d.interval.IntervalId&&d.interval.application?"list":"always",void("list"===d.type&&c());d.type="custom";var e=d.interval.interval.split(","),n=e[0],t=e[1],a=e[2],i=e[3];if("*"!==n){var s,o=n.split("-")[0],r=n.split("-")[1];(s=new Date).setHours(Number(o.split(":")[0])),s.setMinutes(Number(o.split(":")[1])),d.timeRangeFrom=s,(s=new Date).setHours(Number(r.split(":")[0])),s.setMinutes(Number(r.split(":")[1])),d.timeRangeTo=s}"*"!==t&&(d.dayOfWeekFrom=t.split("-")[0],d.dayOfWeekTo=t.split("-")[1]);"*"!==a&&(d.monthDayFrom=a.split("-")[0],d.monthDayTo=a.split("-")[1]);"*"!==i&&(d.monthFrom=i.split("-")[0],d.monthTo=i.split("-")[1])},d.onTypeChange=function(){"list"===d.type&&0===d.intervals.count&&c()},d.saveInterval=function(){d.errors=[],d.interval.interval=function(){if(["always","list"].includes(d.type))return"*,*,*,*";var e=[];if("*"!==d.timeRangeFrom&&d.timeRangeFrom&&d.timeRangeTo){var n=(d.timeRangeFrom.getHours()<10?"0":"")+d.timeRangeFrom.getHours()+":"+(d.timeRangeFrom.getMinutes()<10?"0":"")+d.timeRangeFrom.getMinutes(),t=(d.timeRangeTo.getHours()<10?"0":"")+d.timeRangeTo.getHours()+":"+(d.timeRangeTo.getMinutes()<10?"0":"")+d.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return d.dayOfWeekFrom?d.dayOfWeekTo?e.push(d.dayOfWeekFrom+"-"+d.dayOfWeekTo):e.push(d.dayOfWeekFrom):e.push("*"),d.monthDayFrom?d.monthDayTo?e.push(d.monthDayFrom+"-"+d.monthDayTo):e.push(d.monthDayFrom):e.push("*"),d.monthFrom?d.monthTo?e.push(d.monthFrom+"-"+d.monthTo):e.push(d.monthFrom):e.push("*"),e.join()}(),"list"!==d.type&&(d.interval.IntervalId=null);m(d.interval)},d.closeDialog=m}e.$inject=["$mdDialog","$translate","interval","intervals","toasty","api","Auth","crudPermissions","IndexFactory"],angular.module("app.voice").controller("EditRoutingIntervalDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.chanSpies=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="chanSpies",f.listOrder="",f.listOrderAsc=null,f.selectedChanSpies=[],f.query={fields:"createdAt,updatedAt,id,name,prefix,options,auth,password,record,recordingFormat,description",sort:"-updatedAt",limit:10,page:1},f.arrayoptions=_.keyBy([{option:"b: Only spy on channels involved in a bridged call.",value:"'b'"},{option:"B: Instead of whispering on a single channel barge in on both channels involved in the call.",value:"'B'"},{option:"E: Exit when the spied-on channel hangs up.",value:"'E'"},{option:"o: Only listen to audio coming from this channel.",value:"'o'"},{option:"q: Don't play a beep when beginning to spy on a channel, or speak the selected channel name.",value:"'q'"},{option:"s: Skip the playback of the channel type (i.e. SIP, IAX, etc) when speaking the selected channel name.",value:"'s'"},{option:"S: Stop when no more channels are left to spy on.",value:"'S'"},{option:"w: Enable whisper mode, so the spying channel can talk to the spied-on channel.",value:"'w'"},{option:"W: Enable private whisper mode, so the spying channel can talk to the spied-on channel but cannot listen to that channel.",value:"'W'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayrecordingFormat=_.keyBy([{option:"wav",value:"'wav'"},{option:"gsm",value:"'gsm'"},{option:"wav49",value:"'WAV'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editdialog=function(e,n){i.show({controller:"CreateOrEditchanSpyDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/chanSpies/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{chanSpy:e,chanSpies:f.chanSpies.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("chanSpy")+"?").htmlContent("<b>"+(e.name||"chanSpy")+"</b> will be deleted.").ariaLabel("delete chanSpy").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getChanSpies=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceChanSpy.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="ChanSpies",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditchanSpy=function(e,n){i.show({controller:"CreateOrEditchanSpyDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/chanSpies/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{chanSpy:n,chanSpies:f.chanSpies.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deletechanSpy=y,f.exportSelectedChanSpies=function(){var e=angular.copy(f.selectedChanSpies);return f.selectedChanSpies=[],e},f.deleteSelectedChanSpies=function(e){var n=i.confirm().title("Are you sure want to delete the selected chanSpies?").htmlContent("<b>"+f.selectedChanSpies.length+" selected</b> will be deleted.").ariaLabel("delete chanSpys").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedChanSpies.forEach(function(e){y(e)}),f.selectedChanSpies=[]})},f.deselectChanSpies=function(){f.selectedChanSpies=[]},f.selectAllChanSpies=function(){f.selectedChanSpies=f.chanSpies.rows};var b=!0,A=1;function E(e){f.chanSpies=e||{count:0,rows:[]}}function y(e){m.voiceChanSpy.delete({id:e.id}).$promise.then(function(){_.remove(f.chanSpies.rows,{id:e.id}),f.chanSpies.count-=1,f.chanSpies.rows.length||f.getChanSpies(),p.success({title:_.startCase("chanSpy")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceChanSpy"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceChanSpy",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getChanSpies())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","chanSpies","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("ChanSpiesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_CHANSPY",g.chanSpy=angular.copy(l),g.chanSpies=r,g.newchanSpy=!1,g.chanSpy||(g.chanSpy={recordingFormat:"wav"},g.title="VOICE.NEW_CHANSPY",g.newchanSpy=!0),g.addNewchanSpy=function(){g.errors=[],d.voiceChanSpy.save(g.chanSpy).$promise.then(function(e){g.chanSpies.unshift(e.toJSON()),o.success({title:"chanSpy properly created",msg:g.chanSpy.name?g.chanSpy.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceChanSpy.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceChanSpy.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.savechanSpy=function(){g.errors=[],d.voiceChanSpy.update({id:g.chanSpy.id},g.chanSpy).$promise.then(function(e){var n=_.find(g.chanSpies,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"chanSpy properly saved!",msg:g.chanSpy.name?g.chanSpy.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceChanSpy.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceChanSpy.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deletechanSpy=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The chanSpy will be deleted.").ariaLabel("Delete chanSpy").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceChanSpy.delete({id:g.chanSpy.id}).$promise.then(function(){_.remove(g.chanSpies,{id:g.chanSpy.id}),o.success({title:"chanSpy properly deleted!",msg:(g.chanSpy.name||"chanSpy")+" has been deleted!"}),v(g.chanSpy)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceChanSpy.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceChanSpy.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","chanSpies","chanSpy","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditchanSpyDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.contexts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="contexts",f.listOrder="",f.listOrderAsc=null,f.selectedContexts=[],f.query={fields:"createdAt,updatedAt,id,name,description",sort:"-updatedAt",defaultEntry:"false",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditContextDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/contexts/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{context:e,contexts:f.contexts.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("context")+"?").htmlContent("<b>"+(e.name||"context")+"</b> will be deleted.").ariaLabel("delete context").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getContexts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceContext.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Contexts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditContext=function(e,n){i.show({controller:"CreateOrEditContextDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/contexts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{context:n,contexts:f.contexts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteContext=y,f.exportSelectedContexts=function(){var e=angular.copy(f.selectedContexts);return f.selectedContexts=[],e},f.deleteSelectedContexts=function(e){var n=i.confirm().title("Are you sure want to delete the selected contexts?").htmlContent("<b>"+f.selectedContexts.length+" selected</b> will be deleted.").ariaLabel("delete Contexts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedContexts.forEach(function(e){y(e)}),f.selectedContexts=[]})},f.deselectContexts=function(){f.selectedContexts=[]},f.selectAllContexts=function(){f.selectedContexts=f.contexts.rows};var b=!0,A=1;function E(e){f.contexts=e||{count:0,rows:[]}}function y(e){m.voiceContext.delete({id:e.id}).$promise.then(function(){_.remove(f.contexts.rows,{id:e.id}),f.contexts.count-=1,f.contexts.rows.length||f.getContexts(),p.success({title:_.startCase("Context")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceContext"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceContext",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getContexts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","contexts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("ContextsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_CONTEXT",g.context=angular.copy(l),g.contexts=r,g.newContext=!1,g.context||(g.context={},g.title="VOICE.NEW_CONTEXT",g.newContext=!0),g.addNewContext=function(){g.errors=[],d.voiceContext.save(g.context).$promise.then(function(e){g.contexts.unshift(e.toJSON()),o.success({title:"Context properly created",msg:g.context.name?g.context.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceContext.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceContext.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveContext=function(){g.errors=[],d.voiceContext.update({id:g.context.id},g.context).$promise.then(function(e){var n=_.find(g.contexts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Context properly saved!",msg:g.context.name?g.context.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceContext.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceContext.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteContext=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The context will be deleted.").ariaLabel("Delete Context").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceContext.delete({id:g.context.id}).$promise.then(function(){_.remove(g.contexts,{id:g.context.id}),o.success({title:"Context properly deleted!",msg:(g.context.name||"context")+" has been deleted!"}),v(g.context)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceContext.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceContext.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","contexts","context","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditContextDialogController",e)}(),function(){"use strict";function e(t,e,a,i,n,s,o,r,l){var d=this;function c(t){return e(function(e,n){o.voiceExtension.addApplications({id:t},d.applications?d.applications.rows:[]).$promise.then(function(){e()}).catch(function(e){n(e)})})}function m(e){t.hide(e)}d.currentUser=r.getCurrentUser(),d.crudPermissions=l,d.inboundRoute=angular.copy(s),d.inboundRoutes=n,d.newInboundRoute=!1,d.hasModulePermissions={},d.errors=[],d.initialize=function(){d.inboundRoute||(d.inboundRoute={appdata:"Inbound Call",type:"inbound",context:"from-sip"},d.newInboundRoute=!0);e=[{key:"name",value:d.inboundRoute.context}],o.getResourcesByRole(d.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:!0},e).then(function(e){d.contexts=e}).catch(function(){i.error({title:a.instant("VOICE.CONTEXTS"),msg:a.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});var e},d.getRouting=function(){if(d.newinboundRoute)return;var e={sort:"priority",VoiceExtensionId:d.inboundRoute.id,isApp:!0,nolimit:!0};o.voiceExtension.get(e).$promise.then(function(e){d.applications=e||{count:0,rows:[]}})},d.addNewInboundRoute=function(){d.errors=[],o.voiceExtension.save(d.inboundRoute).$promise.then(function(e){c(e.id).then(function(){d.inboundRoutes.unshift(e.toJSON()),i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_CREATED_SUCCESS_TITLE")}),m(e)})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.save"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.saveInboundRoute=function(){d.errors=[],o.voiceExtension.update({id:d.inboundRoute.id},d.inboundRoute).$promise.then(function(e){var n=_.find(d.inboundRoutes,{id:e.id});if(n&&_.merge(n,e.toJSON()),d.applications)return c(d.inboundRoute.id)}).then(function(){i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_SAVED_SUCCESS_TITLE")}),m(s)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.update"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.deleteInboundRoute=function(e){d.errors=[];var n=t.confirm().title(a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_TITLE")).content(a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_MESSAGE",{name:d.inboundRoute.exten})).ariaLabel("Delete inbound route").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){o.voiceExtension.delete({id:d.inboundRoute.id}).$promise.then(function(){_.remove(d.inboundRoutes,{id:d.inboundRoute.id}),i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETED_SUCCESS_TITLE")}),m(d.inboundRoute)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})})},d.closeDialog=m}e.$inject=["$mdDialog","$q","$translate","toasty","inboundRoutes","inboundRoute","api","Auth","crudPermissions"],angular.module("app.voice").controller("CreateOrEditInboundRouteDialogController",e)}(),function(){"use strict";function e(e,i,a,n,s,o,r,t,l,d,c){var m=this;function u(e,n){1===m.applications.rows.length&&1===n&&(n=0);var t=m.applications.rows[n];i.show({controller:"EditRoutingAppDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/routing/dialog.html",parent:angular.element(a.body),targetEvent:e,locals:{application:t,route:m.inboundRoute,crudPermissions:m.crudPermissions}}).then(function(e){e?(m.applications.rows[n].appdata===e.appdata&&"custom"!==e.appType||p(),m.applications.rows[n]=e):t.id||m.applications.rows.splice(n,1)}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}function p(){m.pendingChanges=!0}m.currentUser=t.getCurrentUser(),m.inboundRoute=l||e.params.inboundRoute||{},m.contexts=d,m.userProfileSection=c&&1==c.count?c.rows[0]:null,m.crudPermissions=t.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={sort:"priority",VoiceExtensionId:m.inboundRoute.id,isApp:!0,nolimit:!0},m.apps=[{app:"AGI",appAlias:"CallySquare",appType:"agi",context:"from-sip",type:"Inbound",interval:"*,*,*,*"},{app:"Dial",appType:"dial",context:"from-sip",type:"Inbound",options:"xX",interval:"*,*,*,*"},{app:"Dial",appType:"internalDial",context:"from-sip",type:"Inbound",options:"xX",interval:"*,*,*,*"},{app:"Dial",appType:"externalDial",context:"from-sip",type:"Inbound",interval:"*,*,*,*",options:"xX"},{app:"Dial",appType:"ringGroup",context:"from-sip",type:"Inbound",interval:"*,*,*,*",options:"xX"},{app:"Playback",appType:"playback",context:"from-sip",type:"Inbound",interval:"*,*,*,*",answer:!0},{app:"Queue",appType:"queue",context:"from-sip",type:"Inbound",options:"xX",appdata:",xX,,,300,,,,,",interval:"*,*,*,*",answer:!0},{app:"Set",appType:"set",context:"from-sip",type:"Inbound",separator:"=",interval:"*,*,*,*"},{app:"Voicemail",appType:"voicemail",context:"from-sip",type:"Inbound",interval:"*,*,*,*"},{app:"goto",appType:"goTo",context:"from-sip",type:"Inbound",interval:"*,*,*,*"},{app:"hangup",appType:"hangup",context:"from-sip",type:"Inbound",interval:"*,*,*,*"},{app:null,appType:"custom",type:"Inbound",interval:"*,*,*,*"}],m.sortableAppsOptions={group:{name:"apps",pull:"clone",put:!1},animation:100,sort:!1},m.sortableRoutingOptions={group:{name:"apps",put:!0},animation:100,disabled:!m.crudPermissions.canEdit,onAdd:function(e){u(e,e.newIndex)},onUpdate:function(){p()}},m.selectedApplications=[],m.onInit=function(){if(t.isAdmin())return;e=[{key:"name",value:m.inboundRoute.context}],o.getResourcesByRole(m.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:!0},e).then(function(e){m.contexts=e}).catch(function(){r.error({title:s.instant("VOICE.CONTEXTS"),msg:s.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});var e},m.onActionsTabSelection=function(){m.applications||o.voiceExtension.get(m.query).$promise.then(function(e){m.applications=e||{count:0,rows:[]}})},m.gotoInboundRoutes=function(){e.go("app.voice.inboundRoutes",{},{reload:"app.voice.inboundRoutes"})},m.saveInboundRoute=function(){o.voiceExtension.update({id:m.inboundRoute.id},m.inboundRoute).$promise.then(function(){n(function(n,t){if(!m.applications)return n();o.voiceExtension.addApplications({id:m.inboundRoute.id},m.applications.rows).$promise.then(function(e){m.applications.rows=e.rows,n()}).catch(function(e){t(e)})}).then(function(){m.pendingChanges=!1,r.success({title:s.instant("VOICE.NOTIFICATIONS.EXTENSION_SAVED_SUCCESS_TITLE")})})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})},m.editApplication=u,m.editInterval=function(e,n){var t=m.applications.rows[n];i.show({controller:"EditRoutingIntervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/routing/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:void 0,crudPermissions:m.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,p())})},m.deleteApplication=function(e,n,t){var a=i.confirm().title(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATION_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATION_DELETE_MESSAGE",{name:e.app})).ariaLabel("Delete application").targetEvent(t).ok("OK").cancel(s.instant("TOOLS.CANCEL"));i.show(a).then(function(){m.applications.rows.splice(n,1),p()})},m.deleteSelectedApplications=function(e){var n=i.confirm().title(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATIONS_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATIONS_DELETE_MESSAGE",{total:m.selectedApplications.length})).ariaLabel("Delete applications").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedApplications.forEach(function(e){_.remove(m.applications.rows,{id:e.id})}),m.selectedApplications=[],p()})}}e.$inject=["$state","$mdDialog","$document","$q","$translate","api","toasty","Auth","inboundRoute","contexts","userProfileSection"],angular.module("app.voice").controller("InboundRouteController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){g.inboundRoutes=e||{count:0,rows:[]}}function h(){g.query.offset=(g.query.page-1)*g.query.limit,m.isAdmin()?g.promise=d.voiceExtension.get(g.query,v).$promise:(g.query.id=g.userProfile.id,g.query.section="InboundRoutes",g.promise=d.userProfile.getResources(g.query,v).$promise)}function f(e){d.voiceExtension.delete({id:e.id}).$promise.then(function(){_.remove(g.inboundRoutes.rows,{id:e.id}),g.inboundRoutes.count-=1,g.inboundRoutes.rows.length||h(),c.success({title:s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceExtension"}];for(var n=0;n<e.data.errors.length;n++)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceExtension",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}g.license=u,g.setting=p,g.currentUser=m.getCurrentUser(),g.inboundRoutes=o,g.userProfile=r,g.userProfileSection=l&&1==l.count?l.rows[0]:null,g.crudPermissions=m.parseCrudPermissions(g.userProfileSection?g.userProfileSection.crudPermissions:null),g.selectedInboundRoutes=[],g.query={fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"inbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,page:1},g.editRoute=function(e){n.go("app.voice.inboundRoutes.edit",{id:e.id,inboundRoute:e,crudPermissions:g.crudPermissions})},g.createOrEditInboundRoute=function(e,n){a.show({controller:"CreateOrEditInboundRouteDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/inboundRoutes/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{inboundRoute:n,inboundRoutes:g.inboundRoutes.rows,crudPermissions:g.crudPermissions}})},g.success=v,g.getInboundRoutes=h,g.deleteConfirm=function(e,n){var t=a.confirm().title(s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_MESSAGE",{name:e.exten})).ariaLabel("Delete extension").targetEvent(n).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(t).then(function(){f(e)})},g.exportSelectedInboundRoutes=function(){var e=angular.copy(g.selectedInboundRoutes);return g.selectedInboundRoutes=[],e},g.deleteSelectedInboundRoutes=function(e){var n=a.confirm().title(s.instant("VOICE.NOTIFICATIONS.EXTENSIONS_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.EXTENSIONS_DELETE_MESSAGE",{total:g.selectedInboundRoutes.length})).ariaLabel("Delete extensions").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(n).then(function(){g.selectedInboundRoutes.forEach(function(e){f(e)}),g.selectedInboundRoutes=[]})};var b=!0,A=1;e.$watch("vm.query.filter",function(e,n){b?i(function(){b=!1}):(n||(A=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=A),h())})}e.$inject=["$scope","$state","$mdDialog","$document","$timeout","$translate","inboundRoutes","userProfile","userProfileSection","api","toasty","Auth","license","setting"],angular.module("app.voice").controller("InboundRoutesController",e)}(),function(){"use strict";function e(t,e,a,i,n,s,o,r,l){var d=this;function c(t){return e(function(e,n){o.voiceExtension.addApplications({id:t},d.applications?d.applications.rows:[]).$promise.then(function(){e()}).catch(function(e){n(e)})})}function m(e){t.hide(e)}d.currentUser=r.getCurrentUser(),d.crudPermissions=l,d.internalRoute=angular.copy(s),d.internalRoutes=n,d.newInternalRoute=!1,d.hasModulePermissions={},d.errors=[],d.initialize=function(){d.internalRoute||(d.internalRoute={appdata:"Internal Call",type:"internal",context:"from-sip"},d.newInternalRoute=!0);e=[{key:"name",value:d.internalRoute.context}],o.getResourcesByRole(d.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:!0},e).then(function(e){d.contexts=e}).catch(function(){i.error({title:a.instant("VOICE.CONTEXTS"),msg:a.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});var e},d.getRouting=function(){if(d.newInternalRoute)return;var e={sort:"priority",VoiceExtensionId:d.internalRoute.id,isApp:!0,nolimit:!0};o.voiceExtension.get(e).$promise.then(function(e){d.applications=e||{count:0,rows:[]}})},d.addNewInternalRoute=function(){d.errors=[],o.voiceExtension.save(d.internalRoute).$promise.then(function(e){c(e.id).then(function(){d.internalRoutes.unshift(e.toJSON()),i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_CREATED_SUCCESS_TITLE")}),m(e)})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.save"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.saveInternalRoute=function(){d.errors=[],o.voiceExtension.update({id:d.internalRoute.id},d.internalRoute).$promise.then(function(e){var n=_.find(d.internalRoutes,{id:e.id});if(n&&_.merge(n,e.toJSON()),d.applications)return c(d.internalRoute.id)}).then(function(){i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_SAVED_SUCCESS_TITLE")}),m(s)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.update"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.deleteInternalRoute=function(e){d.errors=[];var n=t.confirm().title(a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_TITLE")).content(a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_MESSAGE",{name:d.internalRoute.exten})).ariaLabel("Delete internal route").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){o.voiceExtension.delete({id:d.internalRoute.id}).$promise.then(function(){_.remove(d.internalRoutes,{id:d.internalRoute.id}),i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETED_SUCCESS_TITLE")}),m(d.internalRoute)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})})},d.closeDialog=m}e.$inject=["$mdDialog","$q","$translate","toasty","internalRoutes","internalRoute","api","Auth","crudPermissions"],angular.module("app.voice").controller("CreateOrEditInternalRouteDialogController",e)}(),function(){"use strict";function e(e,i,a,n,s,o,r,t,l,d,c){var m=this;function u(e,n){1===m.applications.rows.length&&1===n&&(n=0);var t=m.applications.rows[n];i.show({controller:"EditRoutingAppDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/routing/dialog.html",parent:angular.element(a.body),targetEvent:e,locals:{application:t,route:m.internalRoute,crudPermissions:m.crudPermissions}}).then(function(e){e?(m.applications.rows[n].appdata===e.appdata&&"custom"!==e.appType||p(),m.applications.rows[n]=e):t.id||m.applications.rows.splice(n,1)}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}function p(){m.pendingChanges=!0}m.currentUser=t.getCurrentUser(),m.internalRoute=l||e.params.internalRoute||{},m.contexts=d,m.userProfileSection=c&&1==c.count?c.rows[0]:null,m.crudPermissions=t.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={sort:"priority",VoiceExtensionId:m.internalRoute.id,isApp:!0,nolimit:!0},m.apps=[{app:"AGI",appAlias:"CallySquare",appType:"agi",context:"from-sip",type:"Internal",interval:"*,*,*,*"},{app:"Dial",appType:"dial",context:"from-sip",type:"Internal",options:"xX",interval:"*,*,*,*"},{app:"Dial",appType:"internalDial",context:"from-sip",type:"Internal",options:"xX",interval:"*,*,*,*"},{app:"Dial",appType:"externalDial",context:"from-sip",type:"Internal",interval:"*,*,*,*",options:"xX"},{app:"Dial",appType:"ringGroup",context:"from-sip",type:"Internal",interval:"*,*,*,*",options:"xX"},{app:"Playback",appType:"playback",context:"from-sip",type:"Internal",interval:"*,*,*,*",answer:!0},{app:"Queue",appType:"queue",context:"from-sip",type:"Internal",options:"xX",appdata:",xX,,,300,,,,,",interval:"*,*,*,*",answer:!0},{app:"Set",appType:"set",context:"from-sip",type:"Internal",separator:"=",interval:"*,*,*,*"},{app:"Voicemail",appType:"voicemail",context:"from-sip",type:"Internal",interval:"*,*,*,*"},{app:"goto",appType:"goTo",context:"from-sip",type:"Internal",interval:"*,*,*,*"},{app:"hangup",appType:"hangup",context:"from-sip",type:"Internal",interval:"*,*,*,*"},{app:null,appType:"custom",type:"Internal",interval:"*,*,*,*"}],m.sortableAppsOptions={group:{name:"apps",pull:"clone",put:!1},animation:100,sort:!1},m.sortableRoutingOptions={group:{name:"apps",put:!0},animation:100,disabled:!m.crudPermissions.canEdit,onAdd:function(e){u(e,e.newIndex)},onUpdate:function(){p()}},m.selectedApplications=[],m.onInit=function(){if(t.isAdmin())return;e=[{key:"name",value:m.internalRoute.context}],o.getResourcesByRole(m.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:!0},e).then(function(e){m.contexts=e}).catch(function(){r.error({title:s.instant("VOICE.CONTEXTS"),msg:s.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});var e},m.onActionsTabSelection=function(){m.applications||o.voiceExtension.get(m.query).$promise.then(function(e){m.applications=e||{count:0,rows:[]}})},m.gotoInternalRoutes=function(){e.go("app.voice.internalRoutes",{},{reload:"app.voice.internalRoutes"})},m.saveInternalRoute=function(){o.voiceExtension.update({id:m.internalRoute.id},m.internalRoute).$promise.then(function(){n(function(n,t){if(!m.applications)return n();o.voiceExtension.addApplications({id:m.internalRoute.id},m.applications.rows).$promise.then(function(e){m.applications.rows=e.rows,n()}).catch(function(e){t(e)})}).then(function(){m.pendingChanges=!1,r.success({title:s.instant("VOICE.NOTIFICATIONS.EXTENSION_SAVED_SUCCESS_TITLE")})})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})},m.editApplication=u,m.editInterval=function(e,n){var t=m.applications.rows[n];i.show({controller:"EditRoutingIntervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/routing/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:void 0,crudPermissions:m.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,p())})},m.deleteApplication=function(e,n,t){var a=i.confirm().title(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATION_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATION_DELETE_MESSAGE",{name:e.app})).ariaLabel("Delete application").targetEvent(t).ok("OK").cancel(s.instant("TOOLS.CANCEL"));i.show(a).then(function(){m.applications.rows.splice(n,1),p()})},m.deleteSelectedApplications=function(e){var n=i.confirm().title(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATIONS_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATIONS_DELETE_MESSAGE",{total:m.selectedApplications.length})).ariaLabel("Delete applications").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedApplications.forEach(function(e){_.remove(m.applications.rows,{id:e.id})}),m.selectedApplications=[],p()})}}e.$inject=["$state","$mdDialog","$document","$q","$translate","api","toasty","Auth","internalRoute","contexts","userProfileSection"],angular.module("app.voice").controller("InternalRouteController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){g.internalRoutes=e||{count:0,rows:[]}}function h(){g.query.offset=(g.query.page-1)*g.query.limit,m.isAdmin()?g.promise=d.voiceExtension.get(g.query,v).$promise:(g.query.id=g.userProfile.id,g.query.section="InternalRoutes",g.promise=d.userProfile.getResources(g.query,v).$promise)}function f(e){d.voiceExtension.delete({id:e.id}).$promise.then(function(){_.remove(g.internalRoutes.rows,{id:e.id}),g.internalRoutes.count-=1,g.internalRoutes.rows.length||h(),c.success({title:s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceExtension"}];for(var n=0;n<e.data.errors.length;n++)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceExtension",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}g.license=u,g.setting=p,g.currentUser=m.getCurrentUser(),g.internalRoutes=o,g.userProfile=r,g.userProfileSection=l&&1==l.count?l.rows[0]:null,g.crudPermissions=m.parseCrudPermissions(g.userProfileSection?g.userProfileSection.crudPermissions:null),g.selectedInternalRoutes=[],g.query={fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"internal",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,page:1},g.editRoute=function(e){n.go("app.voice.internalRoutes.edit",{id:e.id,internalRoute:e,crudPermissions:g.crudPermissions})},g.createOrEditInternalRoute=function(e,n){a.show({controller:"CreateOrEditInternalRouteDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/internalRoutes/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{internalRoute:n,internalRoutes:g.internalRoutes.rows,crudPermissions:g.crudPermissions}})},g.success=v,g.getInternalRoutes=h,g.deleteConfirm=function(e,n){var t=a.confirm().title(s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_MESSAGE",{name:e.exten})).ariaLabel("Delete extension").targetEvent(n).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(t).then(function(){f(e)})},g.exportSelectedInternalRoutes=function(){var e=angular.copy(g.selectedInternalRoutes);return g.selectedInternalRoutes=[],e},g.deleteSelectedInternalRoutes=function(e){var n=a.confirm().title(s.instant("VOICE.NOTIFICATIONS.EXTENSIONS_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.EXTENSIONS_DELETE_MESSAGE",{total:g.selectedInternalRoutes.length})).ariaLabel("Delete extensions").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(n).then(function(){g.selectedInternalRoutes.forEach(function(e){f(e)}),g.selectedInternalRoutes=[]})};var b=!0,A=1;e.$watch("vm.query.filter",function(e,n){b?i(function(){b=!1}):(n||(A=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=A),h())})}e.$inject=["$scope","$state","$mdDialog","$document","$timeout","$translate","internalRoutes","userProfile","userProfileSection","api","toasty","Auth","license","setting"],angular.module("app.voice").controller("InternalRoutesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_MUSICONHOLD",g.musiconhold=angular.copy(l),g.musiconholds=r,g.newMusicOnHold=!1,g.musiconhold||(g.musiconhold={mode:"files"},g.title="VOICE.NEW_MUSICONHOLD",g.newMusicOnHold=!0),g.addNewMusicOnHold=function(){g.errors=[],d.voiceMusicOnHold.save(g.musiconhold).$promise.then(function(e){g.musiconholds.unshift(e.toJSON()),o.success({title:"MusicOnHold properly created",msg:g.musiconhold.name?g.musiconhold.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveMusicOnHold=function(){g.errors=[],d.voiceMusicOnHold.update({id:g.musiconhold.id},g.musiconhold).$promise.then(function(e){var n=_.find(g.musiconholds,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"MusicOnHold properly saved!",msg:g.musiconhold.name?g.musiconhold.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteMusicOnHold=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The musiconhold will be deleted.").ariaLabel("Delete MusicOnHold").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceMusicOnHold.delete({id:g.musiconhold.id}).$promise.then(function(){_.remove(g.musiconholds,{id:g.musiconhold.id}),o.success({title:"MusicOnHold properly deleted!",msg:(g.musiconhold.name||"musiconhold")+" has been deleted!"}),v(g.musiconhold)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","musiconholds","musiconhold","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditMusicOnHoldDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.musiconholdMohSounds=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.voiceMusicOnHold.getSounds(m.query,u).$promise}function g(e){d.voiceMusicOnHold.removeSound({id:t.params.id,id2:e.id}).$promise.then(function(){_.remove(m.musiconholdMohSounds.rows,{id:e.id}),m.musiconholdMohSounds.count-=1,m.musiconholdMohSounds.rows.length||p(),l.success({title:"MohSound deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceMusicOnHold"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMusicOnHold",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.musiconhold={},m.musiconholdMohSounds={count:0,rows:[]},m.selectedMusicOnHoldMohSounds=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,save_name,converted_format,audio",limit:10,page:1},m.init=function(e,n){m.musiconhold=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.VoiceMusicOnHoldId=m.musiconhold.id,m.query.id=m.musiconhold.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the mohSound?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("mohSound #")+e.id||"mohSound")+"</b> will be deleted.").ariaLabel("delete mohSound").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.voiceMusicOnHoldDownload=function(s,e,n){return d.sound.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="mohSound"+s.id,a=new Blob(n,{type:e.type});t=s.converted_format?s.save_name+"."+s.converted_format:s.save_name;var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getMusicOnHoldMohSounds=p,m.createOrEditMusicOnHoldMohSound=function(e,n){o.show({controller:"CreateOrEditMohSoundDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/musiconholds/edit/mohSounds/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{musiconhold:m.musiconhold,mohSound:n,mohSounds:m.musiconholdMohSounds.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedMusicOnHoldMohSounds=function(){var e=angular.copy(m.selectedMusicOnHoldMohSounds);return m.selectedMusicOnHoldMohSounds=[],e},m.deleteMusicOnHoldMohSound=g,m.deleteSelectedMusicOnHoldMohSounds=function(e){var n=o.confirm().title("Are you sure want to delete the selected mohSounds?").htmlContent("<b>"+m.selectedMusicOnHoldMohSounds.length+" selected</b> will be deleted.").ariaLabel("delete mohSounds").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedMusicOnHoldMohSounds.forEach(function(e){g(e)}),m.selectedMusicOnHoldMohSounds=[]})},c.hasRole("admin")?d.sound.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){m.sounds=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_SOUNDS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.sound.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){m.sounds=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:m.currentUser.userProfileId,sectionId:1007}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(m.sounds,{id:e.resourceId})}),t=null;if(m.musiconhold&&(t=_.find(m.sounds,{id:Number(m.musiconhold.id)})),t&&!_.some(n,["id",t.id])){var a=_.find(m.sounds,{id:t.id});a.canSelect=!1,n.push(a)}m.sounds=n})}else{var t=[],a=null;m.musiconhold&&(a=_.find(m.sounds,{id:Number(m.musiconhold.id)}));for(var i=0;i<m.sounds.length;i++)a&&m.sounds[i].id===a.id&&(m.sounds[i].canSelect=!1,t.push(m.sounds[i]));m.sounds=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.voice").controller("MusicOnHoldMohSoundsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_MOHSOUND",g.mohSound=angular.copy(l),g.mohSounds=r,g.newMohSound=!1,g.mohSound||(g.mohSound={},g.title="VOICE.NEW_MOHSOUND",g.newMohSound=!0),n.params.id&&(g.mohSound.VoiceMusicOnHoldId=n.params.id),g.addNewMohSound=function(){g.errors=[],d.voiceMusicOnHold.addSound({id:n.params.id},g.mohSound).$promise.then(function(e){g.mohSounds.unshift(e.toJSON()),o.success({title:"MohSound properly created",msg:g.mohSound.name?g.mohSound.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveMohSound=function(){g.errors=[],d.voiceMusicOnHold.update({id:g.mohSound.id},g.mohSound).$promise.then(function(e){var n=_.find(g.mohSounds,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"MohSound properly saved!",msg:g.mohSound.name?g.mohSound.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteMohSound=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The mohSound will be deleted.").ariaLabel("Delete MohSound").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceMusicOnHold.delete({id:g.mohSound.id}).$promise.then(function(){_.remove(g.mohSounds,{id:g.mohSound.id}),o.success({title:"MohSound properly deleted!",msg:(g.mohSound.name||"mohSound")+" has been deleted!"}),v(g.mohSound)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMusicOnHold.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMusicOnHold.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.sound.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){g.sounds=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_SOUNDS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.sound.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){g.sounds=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1007}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.sounds,{id:e.resourceId})}),t=null;if(g.mohSound&&(t=_.find(g.sounds,{id:Number(g.mohSound.id)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.sounds,{id:t.id});a.canSelect=!1,n.push(a)}g.sounds=n})}else{var t=[],a=null;g.mohSound&&(a=_.find(g.sounds,{id:Number(g.mohSound.id)}));for(var i=0;i<g.sounds.length;i++)a&&g.sounds[i].id===a.id&&(g.sounds[i].canSelect=!1,t.push(g.sounds[i]));g.sounds=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","mohSounds","mohSound","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditMohSoundDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.musiconhold=c||e.params.musiconhold||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoMusicOnHolds=function(){e.go("app.voice.musiconholds",{},{reload:"app.voice.musiconholds"})},u.saveMusicOnHold=function(){r.voiceMusicOnHold.update({id:u.musiconhold.id},u.musiconhold).$promise.then(function(){l.success({title:"MusicOnHold updated!",msg:u.musiconhold.name?u.musiconhold.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMusicOnHold",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","musiconhold","userProfileSection"],angular.module("app.voice").controller("MusicOnHoldController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.musiconholds=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="musiconholds",f.listOrder="",f.listOrderAsc=null,f.selectedMusicOnHolds=[],f.query={fields:"createdAt,updatedAt,id,name,mode,directory,application,format,sort",defaultEntry:"false",limit:10,page:1},f.arraymode=_.keyBy([{option:"Files",value:"'files'"},{option:"Custom",value:"'custom'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysort=_.keyBy([{option:"Random",value:"'random'"},{option:"Alphabetical",value:"'alpha'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.voice.musiconholds.edit",{id:e.id,musiconhold:e,crudPermissions:f.crudPermissions})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("musiconhold")+"?").htmlContent("<b>"+(e.name||"musiconhold")+"</b> will be deleted.").ariaLabel("delete musiconhold").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getMusicOnHolds=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceMusicOnHold.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="MusicOnHolds",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditMusicOnHold=function(e,n){i.show({controller:"CreateOrEditMusicOnHoldDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/musiconholds/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{musiconhold:n,musiconholds:f.musiconholds.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteMusicOnHold=y,f.exportSelectedMusicOnHolds=function(){var e=angular.copy(f.selectedMusicOnHolds);return f.selectedMusicOnHolds=[],e},f.deleteSelectedMusicOnHolds=function(e){var n=i.confirm().title("Are you sure want to delete the selected musiconholds?").htmlContent("<b>"+f.selectedMusicOnHolds.length+" selected</b> will be deleted.").ariaLabel("delete MusicOnHolds").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedMusicOnHolds.forEach(function(e){y(e)}),f.selectedMusicOnHolds=[]})},f.deselectMusicOnHolds=function(){f.selectedMusicOnHolds=[]},f.selectAllMusicOnHolds=function(){f.selectedMusicOnHolds=f.musiconholds.rows};var b=!0,A=1;function E(e){f.musiconholds=e||{count:0,rows:[]}}function y(e){m.voiceMusicOnHold.delete({id:e.id}).$promise.then(function(){_.remove(f.musiconholds.rows,{id:e.id}),f.musiconholds.count-=1,f.musiconholds.rows.length||f.getMusicOnHolds(),p.success({title:_.startCase("MusicOnHold")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceMusicOnHold"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceMusicOnHold",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getMusicOnHolds())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","musiconholds","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("MusicOnHoldsController",e)}(),function(){"use strict";function e(t,e,a,i,n,s,o,r,l){var d=this;function c(t){return e(function(e,n){o.voiceExtension.addApplications({id:t},d.applications?d.applications.rows:[]).$promise.then(function(){e()}).catch(function(e){n(e)})})}function m(e){t.hide(e)}d.currentUser=r.getCurrentUser(),d.crudPermissions=l,d.outboundRoute=angular.copy(s),d.outboundRoutes=n,d.newOutboundRoute=!1,d.hasModulePermissions={},d.errors=[],d.initialize=function(){d.outboundRoute||(d.outboundRoute={appdata:"Outbound Call",type:"outbound",context:"from-sip",recordingFormat:"none"},d.newOutboundRoute=!0);e=[{key:"name",value:d.outboundRoute.context}],o.getResourcesByRole(d.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:!0},e).then(function(e){d.contexts=e}).catch(function(){i.error({title:a.instant("VOICE.CONTEXTS"),msg:a.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});var e},d.getRouting=function(){if(d.newOutboundRoute)return;var e={sort:"priority",VoiceExtensionId:d.outboundRoute.id,isApp:!0,nolimit:!0};o.voiceExtension.get(e).$promise.then(function(e){d.applications=e||{count:0,rows:[]}})},d.addNewOutboundRoute=function(){d.errors=[],o.voiceExtension.save(d.outboundRoute).$promise.then(function(e){c(e.id).then(function(){d.outboundRoutes.unshift(e.toJSON()),i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_CREATED_SUCCESS_TITLE")}),m(e)})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.save"}];for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.saveOutboundRoute=function(){d.errors=[],o.voiceExtension.update({id:d.outboundRoute.id},d.outboundRoute).$promise.then(function(e){var n=_.find(d.outboundRoutes,{id:e.id});if(n&&_.merge(n,e.toJSON()),d.applications)return c(d.outboundRoute.id)}).then(function(){i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_SAVED_SUCCESS_TITLE")}),m(s)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.update"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.deleteOutboundRoute=function(e){d.errors=[];var n=t.confirm().title(a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_TITLE")).content(a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_MESSAGE",{name:d.outboundRoute.exten})).ariaLabel("Delete outbound route").ok(a.instant("TOOLS.DELETE")).cancel(a.instant("TOOLS.CANCEL")).targetEvent(e);t.show(n).then(function(){o.voiceExtension.delete({id:d.outboundRoute.id}).$promise.then(function(){_.remove(d.outboundRoutes,{id:d.outboundRoute.id}),i.success({title:a.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETED_SUCCESS_TITLE")}),m(d.outboundRoute)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){d.errors=e.data.errors||[{message:e.toString(),type:"api.voiceExtension.delete"}];for(var n=0;n<e.data.errors.length;n++)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceExtension.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})})},d.closeDialog=m}e.$inject=["$mdDialog","$q","$translate","toasty","outboundRoutes","outboundRoute","api","Auth","crudPermissions"],angular.module("app.voice").controller("CreateOrEditOutboundRouteDialogController",e)}(),function(){"use strict";function e(e,i,a,n,s,o,r,t,l,d,c){var m=this;function u(e,n){1===m.applications.rows.length&&1===n&&(n=0);var t=m.applications.rows[n];i.show({controller:"EditRoutingAppDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/routing/dialog.html",parent:angular.element(a.body),targetEvent:e,locals:{application:t,route:m.outboundRoute,crudPermissions:m.crudPermissions}}).then(function(e){e?(m.applications.rows[n].appdata===e.appdata&&"custom"!==e.appType||p(),m.applications.rows[n]=e):t.id||m.applications.rows.splice(n,1)}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}function p(){m.pendingChanges=!0}m.currentUser=t.getCurrentUser(),m.outboundRoute=l||e.params.outboundRoute||{},m.contexts=d,m.userProfileSection=c&&1==c.count?c.rows[0]:null,m.crudPermissions=t.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={sort:"priority",VoiceExtensionId:m.outboundRoute.id,isApp:!0,nolimit:!0},m.apps=[{app:"Dial",appType:"outboundDial",context:"from-sip",type:"Outbound",options:"xX",interval:"*,*,*,*"},{app:null,appType:"custom",type:"Outbound",interval:"*,*,*,*"}],m.sortableAppsOptions={group:{name:"apps",pull:"clone",put:!1},animation:100,sort:!1},m.sortableRoutingOptions={group:{name:"apps",put:!0},animation:100,disabled:!m.crudPermissions.canEdit,onAdd:function(e){u(e,e.newIndex)},onUpdate:function(){p()}},m.selectedApplications=[],m.onInit=function(){if(t.isAdmin())return;e=[{key:"name",value:m.outboundRoute.context}],o.getResourcesByRole(m.currentUser,"voiceContext",{fields:"id,name",sort:"name",nolimit:!0},e).then(function(e){m.contexts=e}).catch(function(){r.error({title:s.instant("VOICE.CONTEXTS"),msg:s.instant("VOICE.NOTIFICATIONS.VOICE_CONTEXTS_GET_ERROR")})});var e},m.onActionsTabSelection=function(){m.applications||o.voiceExtension.get(m.query).$promise.then(function(e){m.applications=e||{count:0,rows:[]}})},m.gotoOutboundRoutes=function(){e.go("app.voice.outboundRoutes",{},{reload:"app.voice.outboundRoutes"})},m.saveOutboundRoute=function(){o.voiceExtension.update({id:m.outboundRoute.id},m.outboundRoute).$promise.then(function(){n(function(n,t){if(!m.applications)return n();o.voiceExtension.addApplications({id:m.outboundRoute.id},m.applications.rows).$promise.then(function(e){m.applications.rows=e.rows,n()}).catch(function(e){t(e)})}).then(function(){m.pendingChanges=!1,r.success({title:s.instant("VOICE.NOTIFICATIONS.EXTENSION_SAVED_SUCCESS_TITLE")})})}).catch(function(e){r.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceExtension",msg:e.data?JSON.stringify(e.data):e.toString()})})},m.editApplication=u,m.editInterval=function(e,n){var t=m.applications.rows[n];i.show({controller:"EditRoutingIntervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/routing/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:void 0,crudPermissions:m.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,p())})},m.deleteApplication=function(e,n,t){var a=i.confirm().title(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATION_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATION_DELETE_MESSAGE",{name:e.app})).ariaLabel("Delete application").targetEvent(t).ok("OK").cancel(s.instant("TOOLS.CANCEL"));i.show(a).then(function(){m.applications.rows.splice(n,1),p()})},m.deleteSelectedApplications=function(e){var n=i.confirm().title(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATIONS_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.ROUTING_APPLICATIONS_DELETE_MESSAGE",{total:m.selectedApplications.length})).ariaLabel("Delete applications").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedApplications.forEach(function(e){_.remove(m.applications.rows,{id:e.id})}),m.selectedApplications=[],p()})}}e.$inject=["$state","$mdDialog","$document","$q","$translate","api","toasty","Auth","outboundRoute","contexts","userProfileSection"],angular.module("app.voice").controller("OutboundRouteController",e)}(),function(){"use strict";function e(e,n,a,t,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){g.outboundRoutes=e||{count:0,rows:[]}}function h(){g.query.offset=(g.query.page-1)*g.query.limit,m.isAdmin()?g.promise=d.voiceExtension.get(g.query,v).$promise:(g.query.id=g.userProfile.id,g.query.section="OutboundRoutes",g.promise=d.userProfile.getResources(g.query,v).$promise)}function f(e){d.voiceExtension.delete({id:e.id}).$promise.then(function(){_.remove(g.outboundRoutes.rows,{id:e.id}),g.outboundRoutes.count-=1,g.outboundRoutes.rows.length||h(),c.success({title:s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceExtension"}];for(var n=0;n<e.data.errors.length;n++)c.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else c.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceExtension",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}g.license=u,g.setting=p,g.currentUser=m.getCurrentUser(),g.outboundRoutes=o,g.userProfile=r,g.userProfileSection=l&&1==l.count?l.rows[0]:null,g.crudPermissions=m.parseCrudPermissions(g.userProfileSection?g.userProfileSection.crudPermissions:null),g.selectedOutboundRoutes=[],g.query={fields:"id,appdata,type,exten,context,description,alias,createdAt,updatedAt",type:"outbound",sort:"-updatedAt",VoiceExtensionId:"null",limit:10,page:1},g.editRoute=function(e){n.go("app.voice.outboundRoutes.edit",{id:e.id,outboundRoute:e,crudPermissions:g.crudPermissions})},g.createOrEditOutboundRoute=function(e,n){a.show({controller:"CreateOrEditOutboundRouteDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/outboundRoutes/create/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{outboundRoute:n,outboundRoutes:g.outboundRoutes.rows,crudPermissions:g.crudPermissions}})},g.success=v,g.getOutboundRoutes=h,g.deleteConfirm=function(e,n){var t=a.confirm().title(s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.EXTENSION_DELETE_MESSAGE",{name:e.exten})).ariaLabel("Delete extension").targetEvent(n).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(t).then(function(){f(e)})},g.exportSelectedOutboundRoutes=function(){var e=angular.copy(g.selectedOutboundRoutes);return g.selectedOutboundRoutes=[],e},g.deleteSelectedOutboundRoutes=function(e){var n=a.confirm().title(s.instant("VOICE.NOTIFICATIONS.EXTENSIONS_DELETE_TITLE")).content(s.instant("VOICE.NOTIFICATIONS.EXTENSIONS_DELETE_MESSAGE",{total:g.selectedOutboundRoutes.length})).ariaLabel("Delete extensions").targetEvent(e).ok("OK").cancel(s.instant("TOOLS.CANCEL"));a.show(n).then(function(){g.selectedOutboundRoutes.forEach(function(e){f(e)}),g.selectedOutboundRoutes=[]})};var b=!0,A=1;e.$watch("vm.query.filter",function(e,n){b?i(function(){b=!1}):(n||(A=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=A),h())})}e.$inject=["$scope","$state","$mdDialog","$document","$timeout","$translate","outboundRoutes","userProfile","userProfileSection","api","toasty","Auth","license","setting"],angular.module("app.voice").controller("OutboundRoutesController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(){return[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Agent",key:"lastAssignedTo",type:"select",label:"DASHBOARDS.SELECT_AGENT",options:g.agents.rows,customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}],ngValue:"name"},{name:"Campaign",key:"queue",type:"multiselect",label:"DASHBOARDS.SELECT_CAMPAIGN",options:g.queues.rows,ngValue:"name"}]}function h(){return g.refresh=!1,0===g.queues.count?f(null):(g.query.queue=1===g.queues.count?g.queues.rows[0].name:g.query.queue,void 0===g.query.queue&&(g.query.queue=_.map(g.queues.rows,"name")),_.isEmpty(g.query.queue)?f(null):(g.query.offset=(g.query.page-1)*g.query.limit,i.localStorage.setItem("motion2.realtime.abandoned.voice.abandonedCalls:"+g.currentUser.id,JSON.stringify({query:_.omit(g.query,"queue")})),void(g.promise=o.voiceQueueReport.getVoiceQueuesReport(g.query,f).$promise)))}function f(e){g.abandonedCalls=e||{count:0,rows:[]},!1,g.refresh=!0}g.currentUser=d.getCurrentUser(),g.agents=u||[],g.dispositions=p.rows,g.abandonedCalls={count:0,rows:[]},g.showTooltip=!1,g.refresh=!0,g.userProfile=r,g.userProfileSection=l&&1==l.count?l.rows[0]:null,g.crudPermissions=d.parseCrudPermissions(g.userProfileSection?g.userProfileSection.crudPermissions:null),g.query={fields:"id,type,calleridnum,calleridname,queue,queuecallerabandonAt,queuecallerexitAt,queuecallerexitreason,assigned,lastAssignedTo,updatedAt,disposition,secondDisposition,thirdDisposition",type:"inbound",queuecallerexitreason:"TIMEOUT,ABANDONED",sort:"-updatedAt",limit:10,page:1},g.getAbandonedCalls=h,g.refreshAbandonedCalls=function(){g.showTooltip=!1,h()},g.assignTo=function(e,n){e&&o.voiceQueueReport.update({id:e.id,lastAssignedTo:n?n.name:null,assigned:!!n}).$promise.catch(function(e){console.log(e)})},g.dispose=function(t){n.show({controller:"DisposeAbandonedCallDialogController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/home/abandoned/dispose/dialog.html",parent:angular.element(a.body),targetEvent:t,locals:{dispositions:g.dispositions,call:t}}).then(function(e){if(e){var n={id:t.id,disposition:e.firstLevel||null,secondDisposition:e.secondLevel||null,thirdDisposition:e.thirdLevel||null};o.voiceQueueReport.update(n).$promise.catch(function(e){console.log(e)})}})},g.onSaveVoiceQueueReport=function(e){e&&g.queuesMap&&"inbound"===queue.type&&g.queuesMap[e.queue]&&(g.showTooltip=!0)},g.onUpdateVoiceQueueReport=function(e){if(e){var n=_.findIndex(g.abandonedCalls.rows,["id",e.id]);0<=n&&_.merge(g.abandonedCalls.rows[n],e)}},c.onWithoutApply("voiceQueueReport:save",g.onSaveVoiceQueueReport),c.on("voiceQueueReport:update",g.onUpdateVoiceQueueReport),function(){var e=i.localStorage.getItem("motion2.realtime.abandoned.voice.abandonedCalls:"+g.currentUser.id);if(e)(e=JSON.parse(e))&&e.query&&(g.query=_.merge(e.query,_.omit(g.query,["sort","limit","page"])),g.query=_.omit(g.query,"filter"));else{var n={$gte:moment().startOf("month").utcOffset(0,!0).format(),$lte:moment().endOf("month").utcOffset(0,!0).format()};g.query.createdAt=n}d.hasRole("admin")?o.user.getQueues({id:d.getCurrentUser().id,fields:"id,name",channel:"voice",type:"inbound",nolimit:!0}).$promise.then(function(e){g.queues=e||{count:0,rows:[]},g.queuesMap=_.mapValues(_.keyBy(g.queues.rows,"name"),"name")}).catch(function(e){console.error(e)}).finally(function(){g.quickFilters=v(),h()}):o.userProfile.getResources({id:g.currentUser.userProfileId,section:"VoiceQueues",channel:"voice",type:"inbound",sort:"-updatedAt",nolimit:!0}).$promise.then(function(e){g.queues=e||{count:0,rows:[]},g.queuesMap=_.mapValues(_.keyBy(g.queues.rows,"name"),"name")}).catch(function(e){console.error(e)}).finally(function(){g.quickFilters=v(),h()})}();var b=!0,A=1;e.$watch("vm.query.filter",function(e,n){b?t(function(){b=!1}):(n||(A=g.query.page),e!==n&&(g.query.page=1),e||(g.query.page=A),h())}),e.$on("$destroy",function(){c.removeAllListeners("voiceQueueReport:save"),c.removeAllListeners("voiceQueueReport:update")})}e.$inject=["$scope","$timeout","$mdDialog","$document","$window","$translate","api","userProfile","userProfileSection","Auth","socket","toasty","agents","dispositions"],angular.module("app.voice").controller("AbandonedCallsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,s){var o=this;o.calls=i||{rows:[],count:0},o.query={limit:10,page:1},o.channelStatus=s.channelStatusOut,o.onSave=function(e){var n=_.find(o.calls.rows,{channel:e.channel});e.channelstatedesc=e.dialstatus?"up":"ring",n?_.merge(n,e):e.channel&&o.calls.rows.push(e)},o.onRemove=function(e){var n=_.findIndex(o.calls.rows,{channel:e.channel});0<=n&&(o.calls.rows[n].status="hangup");t(function(){o.calls.rows.splice(n,1)},5e3)},a.on("voice_outbound_channel:save",o.onSave),a.on("voice_outbound_channel:remove",o.onRemove),e.$on("$destroy",function(){a.removeAllListeners("voice_outbound_channel:save"),a.removeAllListeners("voice_outbound_channel:remove")})}e.$inject=["$scope","$timeout","api","socket","rpcCalls","helperClasses"],angular.module("app.voice").controller("OutboundCallsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,n,a,o,t,i,s,r,l,d,c,m,u){var p=this;p.currentUser=u.getCurrentUser(),p.queues=t?_.keyBy(t.rows?t.rows:[],"name"):{},p.rpcVoiceQueuesChannelsTmp=i?_.keyBy(i.rows?_.filter(i.rows,{type:"inbound"}):[],"uniqueid"):{},p.rpcVoiceQueuesChannels={},p.userProfile=c,p.userProfileSection=m&&1==m.count?m.rows[0]:null,p.crudPermissions=u.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.queryChannels={limit:10,page:1},p.getAvailableAgents=function(){p.availableAgents=null,s.rpc.getAgents().$promise.then(function(e){for(var n=[],t=e?e.rows:[],a=_.filter(t,{online:!0,voicePause:!1,voiceStatus:"idle"}),i=0;i<a.length;i++){var s=_.find(o.rows,["id",a[i].id]);s&&n.push(s)}p.availableAgents=n}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},p.getSize=function(e){return _.size(e)},p.$onInit=function(){_.forIn(p.rpcVoiceQueuesChannelsTmp,function(e,n){_.find(p.queues,{name:e.name})&&(p.rpcVoiceQueuesChannels[n]=e)})},p.onSave=function(e){"inbound"===e.type&&_.find(p.queues,{name:e.name})&&(p.rpcVoiceQueuesChannels[e.uniqueid]=e)},p.onRemove=function(e){p.rpcVoiceQueuesChannels[e.uniqueid]&&delete p.rpcVoiceQueuesChannels[e.uniqueid]},p.hangup=function(n){return s.rpc.getVoiceQueuesChannelHangup({uniqueid:n}).$promise.then(function(e){d.success({title:"Channel "+n+" properly hangup!",msg:e.message||""})}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},p.redirectToAgent=function(n,e,t){return s.rpc.getVoiceQueuesChannelRedirect({uniqueid:n,exten:e,context:t}).$promise.then(function(e){d.success({title:"Channel "+n+" properly redirect!",msg:e.message||""})}).catch(function(e){d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},p.redirectToNumber=function(e,n){var t=a.prompt().title("Which number do you want transfer the call to?").placeholder("Number").targetEvent(e).ok("Ok").cancel("Cancel");return a.show(t).then(function(e){return s.rpc.getVoiceQueuesChannelRedirect({uniqueid:n,exten:e}).$promise}).then(function(e){d.success({title:"Channel "+n+" properly redirect!",msg:e.message||""})}).catch(function(e){e&&d.error({title:e.status+" - "+e.statusText,msg:JSON.stringify(e.data)||e.message.join(" ")})})},r.on("voice_queue_channel:save",p.onSave),r.on("voice_queue_channel:remove",p.onRemove),e.$on("$destroy",function(){r.removeAllListeners("voice_queue_channel:save"),r.removeAllListeners("voice_queue_channel:remove")})}e.$inject=["$scope","$timeout","$mdDialog","agents","queues","rpcVoiceQueuesChannels","api","socket","helperClasses","toasty","userProfile","userProfileSection","Auth"],angular.module("app.voice").controller("QueueCallsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d){var c=this,m=["total","answered","unmanaged","abandoned","sumHoldTime","sumDuration","sumBillable"];function u(){_.forIn(c.queues,function(e,n){c.rpcQueues[n]&&_.merge(e,_.pick(c.rpcQueues[n],m))})}c.count=a.count,c.queues=a?_.keyBy(a.rows?a.rows:[],"id"):{},c.rpcQueues=i?_.keyBy(i.rows?i.rows:[],"id"):{},c.userProfile=r,c.userProfileSection=l&&1==l.count?l.rows[0]:null,c.crudPermissions=d.parseCrudPermissions(c.userProfileSection?c.userProfileSection.crudPermissions:null),d.hasRole("admin")?c.query={type:"inbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1}:c.query={id:d.getCurrentUser().id,channel:"voice",type:"inbound",fields:"id,name",sort:"-updatedAt",limit:10,page:1},c.success=v,c.getQueues=function(){c.query.offset=(c.query.page-1)*c.query.limit,d.hasRole("admin")?c.promise=s.voiceQueue.get(c.query,v).$promise:(c.query.id=c.userProfile.id,c.query.section="VoiceQueues",c.promise=s.userProfile.getResources(c.query,v).$promise)},c.onSave=function(e){c.queues[e.id]&&_.merge(c.queues[e.id],_.pick(e,m))},c.$onInit=u,o.onWithoutApply("voice_queue:save",c.onSave),c.interval=n(function(){},999);var p=!0,g=1;function v(e){c.count=e.count,c.queues=e?_.keyBy(e.rows?e.rows:[],"id"):{},u()}e.$watch("vm.query.filter",function(e,n){p?t(function(){p=!1}):(n||(g=c.query.page),e!==n&&(c.query.page=1),e||(c.query.page=g),c.getQueues())}),e.$on("$destroy",function(){o.removeAllListeners("voice_queue:save"),c.interval&&n.cancel(c.interval)})}e.$inject=["$scope","$timeout","$interval","queues","rpcQueues","api","socket","userProfile","userProfileSection","Auth"],angular.module("app.voice").controller("QueueParamsVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c,m){var u=this,p=n(function(){},999);u.currentUser=c.getCurrentUser(),u.queues=s,u.userProfileSection=d&&1==d.count?d.rows[0]:null,u.crudPermissions=c.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.query={id:c.isUser()?u.currentUser.id:void 0,section:c.isUser()?"VoiceQueues":void 0,channel:"voice",type:"inbound",sort:"name",limit:10,page:1},u.getQueues=function(){u.query.offset=(u.query.page-1)*u.query.limit,o.realtime.getQueues(u.query).$promise.then(function(e){u.queues=e}).catch(function(e){l.error({title:i.instant("VOICE.VOICEQUEUES"),msg:e.status?JSON.stringify(e.data):e.toString()})})},u.editQueue=function(e,n){t.show({controller:"CreateOrEditVoiceQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceQueue:n,voiceQueues:u.queues.rows,license:null,setting:null,crudPermissions:u.crudPermissions}})},u.addAgent=function(e,n){t.show({controller:"VoiceQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceQueue:n,voiceQueues:u.queues.rows,realtime:!0,crudPermissions:u.crudPermissions}})},r.onWithoutApply("voice_queue:save",function(e){var n=_.find(u.queues.rows,["id",e.id]);n&&m.updateVoiceQueue(e,n)}),r.on("userVoiceQueue:save",function(e){var n=_.find(u.queues.rows,["id",e.VoiceQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),r.on("userVoiceQueue:remove",function(e){var n=_.find(u.queues.rows,["id",e.VoiceQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),r.on("user:agentconnect",function(t){u.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);if(n){if(!t.agentconnected)return;t.queue?n.talking=!0:n.busy=!0,m.updateBusyCounter(e)}})}),r.on("user:agentcomplete",function(t){u.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&(n.talking?n.talking=!1:n.busy&&(n.busy=!1),m.updateBusyCounter(e))})}),r.on("user:update",function(t){u.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&m.updateQueue(t,e,n,"voice")})}),e.$on("$destroy",function(){r.removeAllListeners("voice_queue:save"),r.removeAllListeners("userVoiceQueue:remove"),r.removeAllListeners("userVoiceQueue:save"),r.removeAllListeners("user:agentconnect"),r.removeAllListeners("user:agentcomplete"),r.removeAllListeners("user:update"),p&&n.cancel(p)})}e.$inject=["$scope","$mdDialog","$document","$interval","$translate","queues","api","socket","toasty","userProfileSection","Auth","realtimeManager"],angular.module("app.voice").controller("QueuesVoiceRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){return{status:{registered:"green-300-fg icon-checkbox-marked-circle",unregistered:"red-300-fg icon-close-circle",lagged:"red-300-fg icon-close-circle",reachable:"green-300-fg icon-checkbox-marked-circle",unreachable:"red-300-fg icon-close-circle",unknown:"grey-fg icon-minus-circle"},state:{unknown:"grey-fg icon-phone-hangup",not_inuse:"green-300-fg icon-phone-hangup",inuse:"red-300-fg icon-phone-in-talk",busy:"red-300-fg icon-phone-locked",invalid:"grey-fg icon-phone-hangup",unavailable:"grey-fg icon-phone-hangup",ringing:"blue-300-fg icon-phone-incoming",ringinuse:"blue-300-fg icon-phone-incoming",onhold:"blue-300-fg icon-phone-paused"},channelStatus:{ring:"blue-300-fg icon-phone-incoming",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"},channelStatusOut:{ring:"blue-300-fg icon-phone-outgoing",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"}}})}(),function(){"use strict";function e(e,t,n){var a=this;switch(a.selectedTab=0,t.current.name){case"app.voice.realtime.agents":a.selectedTab=0;break;case"app.voice.realtime.telephones":a.selectedTab=1;break;case"app.voice.realtime.trunks":a.selectedTab=2;break;case"app.voice.realtime.queues":a.selectedTab=3;break;case"app.voice.realtime.queue_calls":a.selectedTab=4;break;case"app.voice.realtime.abandonedcalls":a.selectedTab=5;break;case"app.voice.realtime.queue_params":a.selectedTab=6;break;case"app.voice.realtime.outbound_calls":a.selectedTab=7;break;default:a.selectedTab=0,t.go("app.voice.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.voice.realtime.agents");break;case 1:t.go("app.voice.realtime.telephones");break;case 2:t.go("app.voice.realtime.trunks");break;case 3:t.go("app.voice.realtime.queues");break;case 4:t.go("app.voice.realtime.queue_calls");break;case 5:t.go("app.voice.realtime.abandonedcalls");break;case 6:t.go("app.voice.realtime.queue_params");break;case 7:t.go("app.voice.realtime.outbound_calls");break;default:t.go("app.voice.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.voice").controller("VoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c){var m=this,u=["fullname","internal","state","status"];function p(){_.forIn(m.telephones,function(e,n){m.rpcTelephones[n]&&_.merge(e,_.pick(m.rpcTelephones[n],u))})}m.count=a.count,m.attributes=["fullname","internal","state","status","address"],m.telephones=a?_.keyBy(a.rows?a.rows:[],"id"):{},m.rpcTelephones=i?_.keyBy(i.rows?i.rows:[],"id"):{},m.userProfile=l,m.userProfileSection=d&&1==d.count?d.rows[0]:null,m.crudPermissions=c.parseCrudPermissions(m.userProfileSection?m.userProfileSection.crudPermissions:null),m.query={fields:"id,fullname,internal",role:"telephone",sort:"-updatedAt",limit:10,page:1},m.statusClass=r.status,m.stateClass=r.state,m.success=h,m.$onInit=p,m.showInfo=function(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},m.getTelephones=function(){m.query.offset=(m.query.page-1)*m.query.limit,c.hasRole("admin")?m.promise=s.user.get(m.query,h).$promise:(m.query.id=m.userProfile.id,m.query.section="Telephones",m.promise=s.userProfile.getResources(m.query,h).$promise)},m.onSave=function(e){m.telephones[e.id]&&_.merge(m.telephones[e.id],_.pick(e,u))},o.on("telephone:save",m.onSave);var g=!0,v=1;function h(e){m.telephones=e?_.keyBy(e.rows?e.rows:[],"id"):{},p()}e.$watch("vm.query.filter",function(e,n){g?t(function(){g=!1}):(n||(v=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=v),m.getTelephones())}),e.$on("$destroy",function(){o.removeAllListeners("telephone:save")})}e.$inject=["$scope","$timeout","$mdDialog","telephones","rpcTelephones","api","socket","helperClasses","userProfile","userProfileSection","Auth"],angular.module("app.voice").controller("TelephonesVoiceRealtimeController",e)}(),function(){"use strict";function e(e,t,n,a,i,s,o,r,l,d,c,m){var u=this,p=["status","stateRegistry","registry","host","port","internal","state","status"];function g(){for(var e,n=0;n<u.trunks.length;n+=1)0<=(e=_.findIndex(u.rpcTrunks,["id",u.trunks[n].id]))&&_.merge(u.trunks[n],_.pick(u.rpcTrunks[e],p))}function v(e,n,t){0<=n&&_.merge(e[n],_.pick(t,p))}u.currentUser=m.getCurrentUser(),u.count=a.count,u.trunks=a?a.rows:[],u.rpcTrunks=i&&i.rows?i.rows:[],u.query={fields:"id,name",active:!0,sort:"-updatedAt",limit:10,page:1},u.statusClass=r.status,u.stateClass=r.state,u.userProfile=d,u.userProfileSection=c&&1==c.count?c.rows[0]:null,u.crudPermissions=m.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.success=b,u.$onInit=g,u.showInfo=function(e){n.show(n.alert().clickOutsideToClose(!0).title("Legend").htmlContent("<div>TODO legend status + state</div>").ok("Ok").targetEvent(e))},u.getTrunks=function(){u.query.offset=(u.query.page-1)*u.query.limit,m.hasRole("admin")?u.promise=s.trunk.get(u.query,b).$promise:(u.query.id=u.userProfile.id,u.query.section="Trunks",u.promise=s.userProfile.getResources(u.query,b).$promise)},u.goToTrunk=function(e,n){l.go("app.tools.trunks.edit",{id:n.id})},u.onSave=function(e){var n=_.findIndex(u.trunks,["id",e.id]),t=_.findIndex(u.rpcTrunks,["id",e.id]);v(u.trunks,n,e),v(u.rpcTrunks,t,e)},o.on("trunk:save",u.onSave);var h=!0,f=1;function b(e){u.count=e.count,u.trunks=e&&e.rows?e.rows:[],g()}e.$watch("vm.query.filter",function(e,n){h?t(function(){h=!1}):(n||(f=u.query.page),e!==n&&(u.query.page=1),e||(u.query.page=f),u.getTrunks())}),e.$on("$destroy",function(){o.removeAllListeners("trunk:save")})}e.$inject=["$scope","$timeout","$mdDialog","trunks","rpcTrunks","api","socket","helperClasses","$state","userProfile","userProfileSection","Auth"],angular.module("app.voice").controller("TrunksVoiceRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_VOICEMAIL",g.voicemail=angular.copy(l),g.voicemails=r,g.newVoicemail=!1,g.voicemail||(g.voicemail={attach:"no"},g.title="VOICE.NEW_VOICEMAIL",g.newVoicemail=!0),g.addNewVoicemail=function(){g.errors=[],d.voiceMail.save(g.voicemail).$promise.then(function(e){g.voicemails.unshift(e.toJSON()),o.success({title:"Voicemail properly created",msg:g.voicemail.name?g.voicemail.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMail.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMail.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveVoicemail=function(){g.errors=[],d.voiceMail.update({id:g.voicemail.id},g.voicemail).$promise.then(function(e){var n=_.find(g.voicemails,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"Voicemail properly saved!",msg:g.voicemail.name?g.voicemail.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMail.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMail.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteVoicemail=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The voicemail will be deleted.").ariaLabel("Delete Voicemail").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceMail.delete({id:g.voicemail.id}).$promise.then(function(){_.remove(g.voicemails,{id:g.voicemail.id}),o.success({title:"Voicemail properly deleted!",msg:(g.voicemail.name||"voicemail")+" has been deleted!"}),v(g.voicemail)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceMail.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMail.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","voicemails","voicemail","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditVoicemailDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.voicemailMessages=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.voiceMail.getMessages(m.query,u).$promise}function g(e){d.voiceMailMessage.delete({id:e.id}).$promise.then(function(){_.remove(m.voicemailMessages.rows,{id:e.id}),m.voicemailMessages.count-=1,m.voicemailMessages.rows.length||p(),l.success({title:"Message deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETvoiceMail"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMail",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.voicemail={},m.voicemailMessages={count:0,rows:[]},m.selectedVoicemailMessages=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,callerid,duration,audio,stamp,msg_id",sort:"-stamp",limit:10,page:1},m.init=function(e,n){m.voicemail=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.id=m.voicemail.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the message?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("message #")+e.id||"message")+"</b> will be deleted.").ariaLabel("delete message").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.voiceMailMessageDownload=function(s,e,n){return d.voiceMailMessage.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="message"+s.id,a=new Blob(n,{type:e.type});t=s.msg_id+".wav";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceMail.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getVoicemailMessages=p,m.createOrEditVoicemailMessage=function(e,n){o.show({controller:"CreateOrEditMessageDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicemails/edit/messages/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{voicemail:m.voicemail,message:n,messages:m.voicemailMessages.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedVoicemailMessages=function(){var e=angular.copy(m.selectedVoicemailMessages);return m.selectedVoicemailMessages=[],e},m.deleteVoicemailMessage=g,m.deleteSelectedVoicemailMessages=function(e){var n=o.confirm().title("Are you sure want to delete the selected messages?").htmlContent("<b>"+m.selectedVoicemailMessages.length+" selected</b> will be deleted.").ariaLabel("delete messages").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedVoicemailMessages.forEach(function(e){g(e)}),m.selectedVoicemailMessages=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.voice").controller("VoicemailMessagesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.voicemail=c||e.params.voicemail||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.alert=l.info,u.gotoVoicemails=function(){e.go("app.voice.voicemails",{},{reload:"app.voice.voicemails"})},u.saveVoicemail=function(){r.voiceMail.update({id:u.voicemail.id},u.voicemail).$promise.then(function(){l.success({title:"Voicemail updated!",msg:u.voicemail.name?u.voicemail.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceMail",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_CONTEXTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.voiceContext.get({fields:"id,name",sort:"name"}).$promise.then(function(e){u.contexts=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:405}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?void 0:r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.contexts,{id:e.resourceId})}),t=null;if(u.voicemail&&(t=_.find(u.contexts,{name:u.voicemail.context})),t&&!_.some(n,["id",t.id])){var a=_.find(u.contexts,{id:t.id});a.canSelect=!1,n.push(a)}u.contexts=n}):r.voiceContext.get({fields:"id,name",sort:"name",defaultEntry:1}).$promise.then(function(e){u.contexts=e.rows||[]})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETcontexts",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","voicemail","userProfileSection"],angular.module("app.voice").controller("VoicemailController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.voicemails=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="voicemails",f.listOrder="",f.listOrderAsc=null,f.selectedVoicemails=[],f.query={fields:"createdAt,updatedAt,id,customer_id,fullname,email,password,mailbox,context,tz,attach,envelope,delete,emailbody,emailsubject,maxsecs,maxmsg",sort:"-updatedAt",limit:10,page:1},f.arrayattach=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayenvelope=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraydelete=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.voice.voicemails.edit",{id:e.id,voicemail:e,crudPermissions:f.crudPermissions})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("voicemail")+"?").htmlContent("<b>"+(e.name||"voicemail")+"</b> will be deleted.").ariaLabel("delete voicemail").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getVoicemails=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceMail.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="Voicemails",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditVoicemail=function(e,n){i.show({controller:"CreateOrEditVoicemailDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicemails/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{voicemail:n,voicemails:f.voicemails.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteVoicemail=y,f.exportSelectedVoicemails=function(){var e=angular.copy(f.selectedVoicemails);return f.selectedVoicemails=[],e},f.deleteSelectedVoicemails=function(e){var n=i.confirm().title("Are you sure want to delete the selected voicemails?").htmlContent("<b>"+f.selectedVoicemails.length+" selected</b> will be deleted.").ariaLabel("delete Voicemails").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedVoicemails.forEach(function(e){y(e)}),f.selectedVoicemails=[]})},f.deselectVoicemails=function(){f.selectedVoicemails=[]},f.selectAllVoicemails=function(){f.selectedVoicemails=f.voicemails.rows};var b=!0,A=1;function E(e){f.voicemails=e||{count:0,rows:[]}}function y(e){m.voiceMail.delete({id:e.id}).$promise.then(function(){_.remove(f.voicemails.rows,{id:e.id}),f.voicemails.count-=1,f.voicemails.rows.length||f.getVoicemails(),p.success({title:_.startCase("Voicemail")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceMail"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceMail",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getVoicemails())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","voicemails","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("VoicemailsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_VOICEPREFIX",g.voicePrefix=angular.copy(l),g.voicePrefixes=r,g.newvoicePrefix=!1,g.voicePrefix||(g.voicePrefix={},g.title="VOICE.NEW_VOICEPREFIX",g.newvoicePrefix=!0),g.addNewvoicePrefix=function(){g.errors=[],d.voicePrefix.save(g.voicePrefix).$promise.then(function(e){g.voicePrefixes.unshift(e.toJSON()),o.success({title:"voicePrefix properly created",msg:g.voicePrefix.name?g.voicePrefix.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voicePrefix.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voicePrefix.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.savevoicePrefix=function(){g.errors=[],d.voicePrefix.update({id:g.voicePrefix.id},g.voicePrefix).$promise.then(function(e){var n=_.find(g.voicePrefixes,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"voicePrefix properly saved!",msg:g.voicePrefix.name?g.voicePrefix.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voicePrefix.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voicePrefix.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deletevoicePrefix=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The voicePrefix will be deleted.").ariaLabel("Delete voicePrefix").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voicePrefix.delete({id:g.voicePrefix.id}).$promise.then(function(){_.remove(g.voicePrefixes,{id:g.voicePrefix.id}),o.success({title:"voicePrefix properly deleted!",msg:(g.voicePrefix.name||"voicePrefix")+" has been deleted!"}),v(g.voicePrefix)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voicePrefix.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voicePrefix.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v,c.hasRole("admin")?d.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){g.outboundRoutes=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){g.outboundRoutes=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:403}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.outboundRoutes,{id:e.resourceId})}),t=null;if(g.voicePrefix&&(t=_.find(g.outboundRoutes,{id:Number(g.voicePrefix.VoiceExtensionId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.outboundRoutes,{id:t.id});a.canSelect=!1,n.push(a)}g.outboundRoutes=n})}else{var t=[],a=null;g.voicePrefix&&(a=_.find(g.outboundRoutes,{id:Number(g.voicePrefix.VoiceExtensionId)}));for(var i=0;i<g.outboundRoutes.length;i++)a&&g.outboundRoutes[i].id===a.id&&(g.outboundRoutes[i].canSelect=!1,t.push(g.outboundRoutes[i]));g.outboundRoutes=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GEToutboundRoutes",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","voicePrefixes","voicePrefix","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditvoicePrefixDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.voicePrefix.getAgents({id:c.voicePrefix.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UservoicePrefix?"penalty "+e.UservoicePrefix.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.voicePrefix=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.voicePrefix.removeAgents({id:c.voicePrefix.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.voicePrefix.addAgents({id:c.voicePrefix.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("VOICE.ALL_AGENTS"),labelSelected:r.instant("VOICE.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","voicePrefix","voicePrefixes","realtime","$translate","Auth","crudPermissions"],angular.module("app.voice").controller("voicePrefixagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.voicePrefix.getTeams({id:l.voicePrefix.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.voicePrefix=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("VOICE.ALL_TEAMS"),labelSelected:t.instant("VOICE.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.voicePrefix.removeTeams({id:l.voicePrefix.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.voicePrefix.addTeams({id:l.voicePrefix.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","voicePrefix","$translate","Auth","crudPermissions"],angular.module("app.voice").controller("voicePrefixteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.voicePrefixes=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="voicePrefixes",f.listOrder="",f.listOrderAsc=null,f.selectedVoicePrefixes=[],f.query={fields:"createdAt,updatedAt,id,name,VoiceExtensionId,callerIdAll,description",sort:"-updatedAt",limit:10,page:1},f.editdialog=function(e,n){i.show({controller:"CreateOrEditvoicePrefixDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicePrefixes/create/dialog.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{voicePrefix:e,voicePrefixes:f.voicePrefixes.rows,license:f.license,setting:null,crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"voicePrefixagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicePrefixes/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{voicePrefix:e,voicePrefixes:f.voicePrefixes?f.voicePrefixes.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.teamadddialog=function(e,n){i.show({controller:"voicePrefixteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicePrefixes/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{voicePrefix:e,voicePrefixes:f.voicePrefixes?f.voicePrefixes.rows:[],crudPermissions:f.crudPermissions}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("voicePrefix")+"?").htmlContent("<b>"+(e.name||"voicePrefix")+"</b> will be deleted.").ariaLabel("delete voicePrefix").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getVoicePrefixes=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voicePrefix.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="VoicePrefixes",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditvoicePrefix=function(e,n){i.show({controller:"CreateOrEditvoicePrefixDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voicePrefixes/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{voicePrefix:n,voicePrefixes:f.voicePrefixes.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deletevoicePrefix=y,f.exportSelectedVoicePrefixes=function(){var e=angular.copy(f.selectedVoicePrefixes);return f.selectedVoicePrefixes=[],e},f.deleteSelectedVoicePrefixes=function(e){var n=i.confirm().title("Are you sure want to delete the selected voicePrefixes?").htmlContent("<b>"+f.selectedVoicePrefixes.length+" selected</b> will be deleted.").ariaLabel("delete voicePrefixs").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedVoicePrefixes.forEach(function(e){y(e)}),f.selectedVoicePrefixes=[]})},f.deselectVoicePrefixes=function(){f.selectedVoicePrefixes=[]},f.selectAllVoicePrefixes=function(){f.selectedVoicePrefixes=f.voicePrefixes.rows},g.hasRole("admin")?m.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){f.outboundRoutes=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_OUTBOUNDROUTES",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.voiceExtension.get({fields:"id,exten",type:"outbound",VoiceExtensionId:"null",nolimit:"true"}).$promise.then(function(e){f.outboundRoutes=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:403}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.outboundRoutes,{id:e.resourceId})}),t=null;if(f.voicePrefix&&(t=_.find(f.outboundRoutes,{id:Number(f.voicePrefix.VoiceExtensionId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.outboundRoutes,{id:t.id});a.canSelect=!1,n.push(a)}f.outboundRoutes=n})}else{var t=[],a=null;f.voicePrefix&&(a=_.find(f.outboundRoutes,{id:Number(f.voicePrefix.VoiceExtensionId)}));for(var i=0;i<f.outboundRoutes.length;i++)a&&f.outboundRoutes[i].id===a.id&&(f.outboundRoutes[i].canSelect=!1,t.push(f.outboundRoutes[i]));f.outboundRoutes=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GEToutboundRoutes",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.voicePrefixes=e||{count:0,rows:[]}}function y(e){m.voicePrefix.delete({id:e.id}).$promise.then(function(){_.remove(f.voicePrefixes.rows,{id:e.id}),f.voicePrefixes.count-=1,f.voicePrefixes.rows.length||f.getVoicePrefixes(),p.success({title:_.startCase("voicePrefix")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoicePrefix"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoicePrefix",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getVoicePrefixes())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","voicePrefixes","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("VoicePrefixesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_VOICEQUEUE",g.voiceQueue=angular.copy(l),g.voiceQueues=r,g.newVoiceQueue=!1,g.voiceQueue||(g.voiceQueue={type:"inbound",strategy:"ringall",timeout:15,retry:2,random_periodic_announce:"no",announce_holdtime:"no",announce_position:"no",reportholdtime:"no",autopause:"no",ringinuse:"no",timeoutrestart:"no",setinterfacevar:"no",setqueuevar:"no",setqueueentryvar:"no"},g.title="VOICE.NEW_VOICEQUEUE",g.newVoiceQueue=!0),g.addNewVoiceQueue=function(){g.errors=[],d.voiceQueue.save(g.voiceQueue).$promise.then(function(e){g.voiceQueues.unshift(e.toJSON()),o.success({title:"VoiceQueue properly created",msg:g.voiceQueue.name?g.voiceQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveVoiceQueue=function(){g.errors=[],d.voiceQueue.update({id:g.voiceQueue.id},g.voiceQueue).$promise.then(function(e){var n=_.find(g.voiceQueues,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"VoiceQueue properly saved!",msg:g.voiceQueue.name?g.voiceQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteVoiceQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The voiceQueue will be deleted.").ariaLabel("Delete VoiceQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceQueue.delete({id:g.voiceQueue.id}).$promise.then(function(){_.remove(g.voiceQueues,{id:g.voiceQueue.id}),o.success({title:"VoiceQueue properly deleted!",msg:(g.voiceQueue.name||"voiceQueue")+" has been deleted!"}),v(g.voiceQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","voiceQueues","voiceQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditVoiceQueueDialogController",e)}(),function(){"use strict";function e(e,l,a,d,n,t,i,s,o,r){var c=this;function m(){return l(function(t,n){return l(function(n,t){return d.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],o.hasRole("admin")?e:c.section?c.section.autoAssociation?e:l(function(n,t){return d.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:o.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),l(function(n,t){return d.voiceQueue.getAgents({id:c.voiceQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserVoiceQueue?"penalty "+e.UserVoiceQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=o.getCurrentUser(),c.voiceQueue=n,c.crudPermissions=r,c.penalty=0,c.realtime=i,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return o.hasRole("admin")?m().catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):l(function(t,n){d.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceWith(c.selectedItems,c.startingSelectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});return(t=e,l(function(e,n){_.isEmpty(t)?e():d.voiceQueue.removeAgents({id:c.voiceQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return r=n,l(function(e,n){if(_.isEmpty(r))e();else{for(var t=[],a=_.groupBy(r,"penalty"),i=0;i<Object.keys(a).length;i++){var s=Object.keys(a)[i],o=_.filter(r,["penalty",s]);t.push(d.voiceQueue.addAgents({id:c.voiceQueue.id,ids:_.map(o,"id"),penalty:_.trim(s,"penalty "),realtime:c.realtime||!1}).$promise)}l.all(t).then(function(){e()}).catch(function(e){n(e)})}});var r}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),a.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"penalty",labelAll:s.instant("VOICE.ALL_AGENTS"),labelSelected:s.instant("VOICE.SELECTED_AGENTS"),transferCallback:function(e,n){n?e.forEach(function(e){e.penalty=void 0}):e.forEach(function(e){e.penalty="penalty "+c.penalty});var t=_.xorWith(c.startingSelectedItems,c.selectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","voiceQueue","voiceQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.voice").controller("VoiceQueueagentaddController",e)}(),function(){"use strict";function e(e,i,a,s,n,t,o,r){var l=this;function d(){return i(function(t,n){return i(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:i(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),i(function(n,t){return s.voiceQueue.getTeams({id:l.voiceQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.voiceQueue=n,l.crudPermissions=r,l.penalty=0,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"penalty",labelAll:t.instant("VOICE.ALL_TEAMS"),labelSelected:t.instant("VOICE.SELECTED_TEAMS"),transferCallback:function(e,n){n?e.forEach(function(e){e.penalty=void 0}):e.forEach(function(e){e.penalty="penalty "+l.penalty});var t=_.xorWith(l.startingSelectedItems,l.selectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):i(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceWith(l.selectedItems,l.startingSelectedItems,function(e,n){return e.id===n.id&&e.penalty===n.penalty});return(t=e,i(function(e,n){_.isEmpty(t)?e():s.voiceQueue.removeTeams({id:l.voiceQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return a=n,i(function(e,n){if(!_.isEmpty(a)){var t=_.map(a,function(e){return{id:e.id,penalty:_.trim(e.penalty,"penalty ")}});return s.voiceQueue.addTeams({id:l.voiceQueue.id,teams:t}).$promise.then(function(){e()}).catch(function(e){n(e)})}e()});var a}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),a.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){a.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","voiceQueue","$translate","Auth","crudPermissions"],angular.module("app.voice").controller("VoiceQueueteamaddController",e)}(),function(){"use strict";function e(t,e,a,i,s,n,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=n,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=e.protocol()+"://"+e.host(),u.voiceQueue=c||t.params.voiceQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=t.params.tab||0,u.teamadddialog=function(e,n){a.show({controller:"VoiceQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/teamadd/teamadd.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:u.voiceQueues?u.voiceQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){a.show({controller:"VoiceQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/agentadd/agentadd.html",parent:angular.element(i.body),targetEvent:n,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:u.voiceQueues?u.voiceQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.gotogoto=function(e,n){{if(!d.hasRole("admin"))return r.userProfileSection.get({userProfileId:d.getCurrentUser().userProfileId,sectionId:411}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.voice.realtime.queues",{}):l.info({title:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:s.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.voice.realtime.queues",{})}},u.alert=l.info,u.gotoVoiceQueues=function(){t.go("app.voice.voiceQueues",{},{reload:"app.voice.voiceQueues"})},u.saveVoiceQueue=function(){r.voiceQueue.update({id:u.voiceQueue.id},u.voiceQueue).$promise.then(function(){l.success({title:"VoiceQueue updated!",msg:u.voiceQueue.name?u.voiceQueue.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.voiceMusicOnHold.get({fields:"id,name",nolimit:"true"}).$promise.then(function(e){u.musiconholds=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_MUSICONHOLDS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.voiceMusicOnHold.get({fields:"id,name",nolimit:"true"}).$promise.then(function(e){u.musiconholds=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:407}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;return n?n.autoAssociation?void 0:r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.musiconholds,{id:e.resourceId})}),t=null;if(u.voiceQueue&&(t=_.find(u.musiconholds,{name:u.voiceQueue.musiconhold})),t&&!_.some(n,["id",t.id])){var a=_.find(u.musiconholds,{id:t.id});a.canSelect=!1,n.push(a)}u.musiconholds=n}):r.voiceMusicOnHold.get({fields:"id,name",nolimit:"true",defaultEntry:1}).$promise.then(function(e){u.musiconholds=e.rows||[]})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETmusiconholds",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.sound.get({fields:"id,name,save_name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.sounds=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_SOUNDS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.sound.get({fields:"id,name,save_name",sort:"name",nolimit:"true"}).$promise.then(function(e){u.sounds=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1007}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.sounds,{id:e.resourceId})});u.sounds.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),u.sounds=n})}else u.sounds=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETsounds",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){u.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){u.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:u.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(u.pauses,{id:e.resourceId})});u.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),u.pauses=n})}else u.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","voiceQueue","userProfileSection"],angular.module("app.voice").controller("VoiceQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.voiceQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="voiceQueues",f.listOrder="",f.listOrderAsc=null,f.selectedVoiceQueues=[],f.query={fields:"createdAt,updatedAt,id,name,type,strategy,timeout,maxlen,retry,wrapuptime,weight,joinempty,leavewhenempty,musiconhold,announce,description,periodic_announce,queue_reporthold,queue_youarenext,queue_thereare,queue_callswaiting,queue_holdtime,queue_minutes,queue_minute,queue_seconds,queue_thankyou,announce_frequency,min_announce_frequency,periodic_announce_frequency,random_periodic_announce,announce_holdtime,announce_position,announce_position_limit,reportholdtime,acw,acwTimeout,autopause,ringinuse,memberdelay,timeoutrestart,monitor_format,context,setinterfacevar,setqueuevar,setqueueentryvar,servicelevel,mandatoryDisposition,mandatoryDispositionPauseId",type:"inbound",sort:"-updatedAt",channel:"voice",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Ringall",value:"'ringall'"},{option:"Round Robin Memory",value:"'rrmemory'"},{option:"Least Recent",value:"'leastrecent'"},{option:"Fewest Calls",value:"'fewestcalls'"},{option:"Random",value:"'random'"},{option:"Linear",value:"'linear'"},{option:"Weight Random",value:"'wrandom'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayjoinempty=_.keyBy([{option:"no",value:"'no'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'no'"},{option:"yes",value:"'yes'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'yes'"},{option:"strict",value:"'strict'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'strict'"},{option:"loose",value:"'loose'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'loose'"},{option:"paused",value:"'paused'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'paused'"},{option:"penalty",value:"'penalty'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'penalty'"},{option:"inuse",value:"'inuse'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'inuse'"},{option:"ringing",value:"'ringing'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'ringing'"},{option:"unavailable",value:"'unavailable'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'unavailable'"},{option:"invalid",value:"'invalid'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'invalid'"},{option:"unknown",value:"'unknown'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'unknown'"},{option:"wrapup",value:"'wrapup'",disabled:"vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === 'wrapup'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayleavewhenempty=_.keyBy([{option:"no",value:"'no'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'no'"},{option:"yes",value:"'yes'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'yes'"},{option:"strict",value:"'strict'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'strict'"},{option:"loose",value:"'loose'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'loose'"},{option:"paused",value:"'paused'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'paused'"},{option:"penalty",value:"'penalty'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'penalty'"},{option:"inuse",value:"'inuse'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'inuse'"},{option:"ringing",value:"'ringing'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'ringing'"},{option:"unavailable",value:"'unavailable'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'unavailable'"},{option:"invalid",value:"'invalid'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'invalid'"},{option:"unknown",value:"'unknown'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'unknown'"},{option:"wrapup",value:"'wrapup'",disabled:"vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === 'wrapup'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayrandom_periodic_announce=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayannounce_holdtime=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Once",value:"'once'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayannounce_position=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"},{option:"Limit",value:"'limit'"},{option:"More",value:"'more'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayreportholdtime=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayautopause=_.keyBy([{option:"Yes",value:"'all'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arrayringinuse=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraytimeoutrestart=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraymonitor_format=_.keyBy([{option:"Inactive",value:"''"},{option:"wav",value:"'wav'"},{option:"wav49",value:"'wav49'"},{option:"gsm",value:"'gsm'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysetinterfacevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysetqueuevar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.arraysetqueueentryvar=_.keyBy([{option:"Yes",value:"'yes'"},{option:"No",value:"'no'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.voice.voiceQueues.edit",{id:e.id,voiceQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"VoiceQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:f.voiceQueues?f.voiceQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"VoiceQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{voiceQueue:e,voiceQueues:f.voiceQueues?f.voiceQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("voiceQueue")+"?").htmlContent("<b>"+(e.name||"voiceQueue")+"</b> will be deleted.").ariaLabel("delete voiceQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:411}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.voice.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.voice.realtime.queues",{})}},f.success=E,f.getVoiceQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.voiceQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="VoiceQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditVoiceQueue=function(e,n){i.show({controller:"CreateOrEditVoiceQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceQueue:n,voiceQueues:f.voiceQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteVoiceQueue=y,f.exportSelectedVoiceQueues=function(){var e=angular.copy(f.selectedVoiceQueues);return f.selectedVoiceQueues=[],e},f.deleteSelectedVoiceQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected voiceQueues?").htmlContent("<b>"+f.selectedVoiceQueues.length+" selected</b> will be deleted.").ariaLabel("delete VoiceQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedVoiceQueues.forEach(function(e){y(e)}),f.selectedVoiceQueues=[]})},f.deselectVoiceQueues=function(){f.selectedVoiceQueues=[]},f.selectAllVoiceQueues=function(){f.selectedVoiceQueues=f.voiceQueues.rows};var b=!0,A=1;function E(e){f.voiceQueues=e||{count:0,rows:[]}}function y(e){m.voiceQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.voiceQueues.rows,{id:e.id}),f.voiceQueues.count-=1,f.voiceQueues.rows.length||f.getVoiceQueues(),p.success({title:_.startCase("VoiceQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getVoiceQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","voiceQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.voice").controller("VoiceQueuesController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="VOICE.EDIT_VOICERECORDING",g.voiceRecording=angular.copy(l),g.voiceRecordings=r,g.newVoiceRecording=!1,g.voiceRecording||(g.voiceRecording={},g.title="VOICE.NEW_VOICERECORDING",g.newVoiceRecording=!0),g.addNewVoiceRecording=function(){g.errors=[],d.voiceRecording.save(g.voiceRecording).$promise.then(function(e){g.voiceRecordings.unshift(e.toJSON()),o.success({title:"VoiceRecording properly created",msg:g.voiceRecording.name?g.voiceRecording.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceRecording.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveVoiceRecording=function(){g.errors=[],d.voiceRecording.update({id:g.voiceRecording.id},g.voiceRecording).$promise.then(function(e){var n=_.find(g.voiceRecordings,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"VoiceRecording properly saved!",msg:g.voiceRecording.name?g.voiceRecording.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceRecording.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceRecording.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteVoiceRecording=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The voiceRecording will be deleted.").ariaLabel("Delete VoiceRecording").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.voiceRecording.delete({id:g.voiceRecording.id}).$promise.then(function(){_.remove(g.voiceRecordings,{id:g.voiceRecording.id}),o.success({title:"VoiceRecording properly deleted!",msg:(g.voiceRecording.name||"voiceRecording")+" has been deleted!"}),v(g.voiceRecording)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.voiceRecording.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceRecording.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","voiceRecordings","voiceRecording","api","Auth","license","setting","crudPermissions"],angular.module("app.voice").controller("CreateOrEditVoiceRecordingDialogController",e)}(),function(){"use strict";function e(e,n){var t=this;t.voiceRecording={},t.init=function(e){t.voiceRecording=e}}e.$inject=["api","toasty"],angular.module("app.voice").controller("VoiceRecordingSentimentStatisticsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=s,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=n.protocol()+"://"+n.host(),p.voiceRecording=c||e.params.voiceRecording||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=e.params.tab||0,p.alert=l.info,p.gotoVoiceRecordings=function(){e.go("app.voice.voiceRecordings",{},{reload:"app.voice.voiceRecordings"})},p.saveVoiceRecording=function(){r.voiceRecording.update({id:p.voiceRecording.id},p.voiceRecording).$promise.then(function(){l.success({title:"VoiceRecording updated!",msg:p.voiceRecording.name?p.voiceRecording.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvoiceRecording",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","voiceRecording","userProfile","userProfileSection"],angular.module("app.voice").controller("VoiceRecordingController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,l,r,d,c,m,u,p,g,v,h,f){var b=this;function A(n,e){return m.voiceRecording.runTranscribe({id:n.id,runSentiment:!1}).$promise.then(function(e){p.success({title:l.instant("VOICE.RUNTRANSCRIBE_VOICERECORDING"),msg:l.instant("VOICE.RUNTRANSCRIBE_VOICERECORDING")+" succeded!"}),n.transcribeStatus=e.transcribeStatus}).catch(function(e){p.error({title:l.instant("VOICE.RUNTRANSCRIBE_VOICERECORDING"),msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})}function E(n,e){return m.voiceRecording.runTranscribe({id:n.id,runSentiment:!0}).$promise.then(function(e){p.success({title:l.instant("VOICE.RUNTRANSCRIBESENTIMENT_VOICERECORDING"),msg:l.instant("VOICE.RUNTRANSCRIBESENTIMENT_VOICERECORDING")+" succeded!"}),n.transcribeStatus=e.transcribeStatus}).catch(function(e){p.error({title:l.instant("VOICE.RUNTRANSCRIBESENTIMENT_VOICERECORDING"),msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})}function y(e,n){return m.voiceRecording.runTranscribe({id:e.id,runSentiment:!0}).$promise.then(function(e){p.success({title:l.instant("VOICE.RUNSENTIMENT_VOICERECORDING"),msg:l.instant("VOICE.RUNSENTIMENT_VOICERECORDING")+" succeded!"})}).catch(function(e){p.error({title:l.instant("VOICE.RUNSENTIMENT_VOICERECORDING"),msg:e.data?e.data.message?e.data.message:JSON.stringify(e.data):e.toString()})})}b.license=v,b.setting=h,b.currentUser=g.getCurrentUser(),b.voiceRecordings=r||{count:0,rows:[]},b.userProfile=d,b.userProfileSection=c&&1==c.count?c.rows[0]:null,b.crudPermissions=g.parseCrudPermissions(b.userProfileSection?b.userProfileSection.crudPermissions:null),b.table="voiceRecordings",b.listOrder="",b.listOrderAsc=null,b.selectedVoiceRecordings=[],b.query={fields:"createdAt,updatedAt,id,format,value,type,uniqueid,calleridnum,exten,connectedlinenum,queue,membername,rating,audio,userDisposition,userSecondDisposition,userThirdDisposition,transcribeStatus,fileText,failureReason,sentiment,sPositive,sNegative,sNeutral,sMixed",sort:"-createdAt",createdAt:"@msUtils.firstLastDayMonth()",limit:10,page:1},b.query.createdAt=u.firstLastDayMonth(),b.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE_RANGE"}],b.editstate=function(e,n){t.go("app.voice.voiceRecordings.edit",{id:e.id,voiceRecording:e,crudPermissions:b.crudPermissions})},b.runtranscriberuntranscribesentiment=A,b.runtranscribesentimentruntranscribesentiment=E,b.runsentimentruntranscribesentiment=y,b.downloadtranscribefile2=function(s,e){var t=!1,n=_.isNil(s.format)?s.value.substring(s.value.lastIndexOf(".")):s.format;t=".mp4"===n;-1<s.value.lastIndexOf("/")?s.value.substring(s.value.lastIndexOf("/")+1):-1<s.value.lastIndexOf("\\")?s.value.substring(s.value.lastIndexOf("\\")+1):s.value;return m.voiceRecording.downloadTranscribe({id:s.id}).$promise.then(function(e){var n=[e.buffer],t="download",a=new Blob(n,{type:e.type});t=s.uniqueid+".txt";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else"404"===String(e.status)&&!1===t?p.info({title:l.instant("VOICE.CANT_DOWNLOAD_THIS_FILE"),msg:l.instant("VOICE.WRONG_EXTENSION")}):"404"===String(e.status)?p.info({title:l.instant("VOICE.CANT_DOWNLOAD_THIS_FILE"),msg:l.instant("VOICE.FILE_NOT_FOUND")}):p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.downloadfile2=function(r,e){var t=!1,n=_.isNil(r.format)?r.value.substring(r.value.lastIndexOf(".")):r.format;t=".mp4"===n;-1<r.value.lastIndexOf("/")?r.value.substring(r.value.lastIndexOf("/")+1):-1<r.value.lastIndexOf("\\")?r.value.substring(r.value.lastIndexOf("\\")+1):r.value;return m.voiceRecording.download({id:r.id}).$promise.then(function(e){var n,t,a=[e.buffer],i="download",s=new Blob(a,{type:e.type});n=r.value,t=-1<n.lastIndexOf("/")?n.substring(n.lastIndexOf("/")+1):-1<n.lastIndexOf("\\")?n.substring(n.lastIndexOf("\\")+1):n,i=(t=t.substring(0,t.lastIndexOf(".")))+r.format;var o=window.document.createElement("a");o.setAttribute("href",URL.createObjectURL(s)),o.setAttribute("download",i),document.body.appendChild(o),o.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else"404"===String(e.status)&&!1===t?p.info({title:l.instant("VOICE.CANT_DOWNLOAD_THIS_FILE"),msg:l.instant("VOICE.WRONG_EXTENSION")}):"404"===String(e.status)?p.info({title:l.instant("VOICE.CANT_DOWNLOAD_THIS_FILE"),msg:l.instant("VOICE.FILE_NOT_FOUND")}):p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.voiceRecording.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},b.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("voiceRecording")+"?").htmlContent("<b>"+(e.name||"voiceRecording")+"</b> will be deleted.").ariaLabel("delete voiceRecording").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){C(e)},function(){console.log("CANCEL")})},b.success=I,b.getVoiceRecordings=function(){b.query.offset=(b.query.page-1)*b.query.limit,g.hasRole("admin")?b.promise=m.voiceRecording.get(b.query,I).$promise:(b.query.id=b.userProfile.id,b.query.section="VoiceRecordings",b.promise=m.userProfile.getResources(b.query,I).$promise)},b.createOrEditVoiceRecording=function(e,n){i.show({controller:"CreateOrEditVoiceRecordingDialogController",controllerAs:"vm",templateUrl:"app/main/apps/voice/views/voiceRecordings/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{voiceRecording:n,voiceRecordings:b.voiceRecordings.rows,license:b.license,setting:b.setting,crudPermissions:b.crudPermissions}})},b.deleteVoiceRecording=C,b.exportSelectedVoiceRecordings=function(){var e=angular.copy(b.selectedVoiceRecordings);b.selectedVoiceRecordings=[],b.userProfile.privacyEnabled&&_.forEach(e,function(e){e.calleridnum=f.mask(e.calleridnum),e.exten=f.mask(e.exten),e.connectedlinenum=f.mask(e.connectedlinenum),e.membername=f.mask(e.membername)});return e},b.deleteSelectedVoiceRecordings=function(e){var n=i.confirm().title("Are you sure want to delete the selected voiceRecordings?").htmlContent("<b>"+b.selectedVoiceRecordings.length+" selected</b> will be deleted.").ariaLabel("delete VoiceRecordings").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){b.selectedVoiceRecordings.forEach(function(e){C(e)}),b.selectedVoiceRecordings=[]})},b.deselectVoiceRecordings=function(){b.selectedVoiceRecordings=[]},b.selectAllVoiceRecordings=function(){b.selectedVoiceRecordings=b.voiceRecordings.rows},b.runtranscribeSelectedVoiceRecordings=function(n){b.selectedVoiceRecordings.forEach(function(e){A(e,n)}),b.selectedVoiceRecordings=[]},b.runtranscribesentimentSelectedVoiceRecordings=function(n){b.selectedVoiceRecordings.forEach(function(e){E(e,n)}),b.selectedVoiceRecordings=[]},b.runsentimentSelectedVoiceRecordings=function(n){b.selectedVoiceRecordings.forEach(function(e){y(e,n)}),b.selectedVoiceRecordings=[]};var S=!0,T=1;function I(e){b.voiceRecordings=e||{count:0,rows:[]}}function C(e){m.voiceRecording.delete({id:e.id}).$promise.then(function(){_.remove(b.voiceRecordings.rows,{id:e.id}),b.voiceRecordings.count-=1,b.voiceRecordings.rows.length||b.getVoiceRecordings(),p.success({title:_.startCase("VoiceRecording")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){b.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEvoiceRecording"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEvoiceRecording",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){S?o(function(){S=!1}):(n||(T=b.query.page),e!==n&&(b.query.page=1),e||(b.query.page=T),b.getVoiceRecordings())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","voiceRecordings","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting","privacyManager"],angular.module("app.voice").controller("VoiceRecordingsController",e)}(),function(){"use strict";function e(e,t,a,n,i,s,o,r,l,d,c,m){var u=this,p=["loggedIn","available","waiting","paused"],g=n(function(){},999);u.currentUser=c.getCurrentUser(),u.queues=s,u.userProfileSection=d&&1==d.count?d.rows[0]:null,u.crudPermissions=c.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.query={id:c.isUser()?u.currentUser.id:void 0,section:c.isUser()?"WhatsappQueues":void 0,channel:"whatsapp",sort:"name",limit:10,page:1},u.getQueues=function(){u.query.offset=(u.query.page-1)*u.query.limit,o.realtime.getQueues(u.query).$promise.then(function(e){u.queues=e}).catch(function(e){l.error({title:i.instant("WHATSAPP.WHATSAPPQUEUES"),msg:e.status?JSON.stringify(e.data):e.toString()})})},u.editQueue=function(e,n){t.show({controller:"CreateOrEditWhatsappQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/create/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappQueue:n,whatsappQueues:u.queues.rows,license:null,setting:null,crudPermissions:u.crudPermissions}})},u.addAgent=function(e,n){t.show({controller:"WhatsappQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappQueue:n,whatsappQueues:u.queues.rows,realtime:!1,crudPermissions:u.crudPermissions}})},r.on("whatsapp_queue:save",function(e){var n=_.find(u.queues.rows,["id",e.id]);n&&_.merge(n,_.pick(e,p))}),r.on("userWhatsappQueue:save",function(e){var n=_.find(u.queues.rows,["id",e.WhatsappQueueId]);n&&(n.loggedInDb++,n.agents.push({id:e.UserId}))}),r.on("userWhatsappQueue:remove",function(e){var n=_.find(u.queues.rows,["id",e.WhatsappQueueId]);n&&(0<n.loggedInDb&&n.loggedInDb--,_.remove(n.agents,["id",e.UserId]))}),r.on("user:update",function(t){u.queues.rows.forEach(function(e){var n=_.find(e.agents,["id",t.id]);n&&m.updateQueue(t,e,n,"whatsapp")})}),e.$on("$destroy",function(){r.removeAllListeners("whatsapp_queue:save"),r.removeAllListeners("userWhatsappQueue:remove"),r.removeAllListeners("userWhatsappQueue:save"),r.removeAllListeners("user:update"),g&&n.cancel(g)})}e.$inject=["$scope","$mdDialog","$document","$interval","$translate","queues","api","socket","toasty","userProfileSection","Auth","realtimeManager"],angular.module("app.whatsapp").controller("QueuesWhatsappRealtimeController",e)}(),function(){"use strict";angular.module("app.auth").factory("helperClasses",function(){return{status:{registered:"green-300-fg icon-checkbox-marked-circle",unregistered:"red-300-fg icon-close-circle",lagged:"red-300-fg icon-close-circle",reachable:"green-300-fg icon-checkbox-marked-circle",unreachable:"red-300-fg icon-close-circle",unknown:"grey-fg icon-minus-circle"},state:{unknown:"grey-fg icon-phone-hangup",not_inuse:"green-300-fg icon-phone-hangup",inuse:"red-300-fg icon-phone-in-talk",busy:"red-300-fg icon-phone-locked",invalid:"grey-fg icon-phone-hangup",unavailable:"grey-fg icon-phone-hangup",ringing:"blue-300-fg icon-phone-incoming",ringinuse:"blue-300-fg icon-phone-incoming",onhold:"blue-300-fg icon-phone-paused"},channelStatus:{ring:"blue-300-fg icon-phone-incoming",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"},channelStatusOut:{ring:"blue-300-fg icon-phone-outgoing",up:"green-300-fg icon-phone-in-talk",hangup:"red-300-fg icon-phone-hangup"}}})}(),function(){"use strict";function e(e,t,n){switch(this.selectedTab=0,t.current.name){case"app.whatsapp.realtime.agents":this.selectedTab=0;break;case"app.whatsapp.realtime.queues":this.selectedTab=1;break;default:this.selectedTab=0,t.go("app.whatsapp.realtime.agents")}e.$watch("vm.selectedTab",function(e,n){if(e!==n)switch(e){case 0:t.go("app.whatsapp.realtime.agents");break;case 1:t.go("app.whatsapp.realtime.queues");break;default:t.go("app.whatsapp.realtime.agents")}})}e.$inject=["$scope","$state","socket"],angular.module("app.whatsapp").controller("WhatsappRealtimeController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(){"twilio"===g.whatsappAccount.type&&(g.whatsappAccount.baseUrl=null)}function h(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="WHATSAPP.EDIT_WHATSAPPACCOUNT",g.whatsappAccount=angular.copy(l),g.whatsappAccounts=r,g.newWhatsappAccount=!1,g.whatsappAccount||(g.whatsappAccount={remote:t.protocol()+"://"+t.host()+(t.port()?":"+t.port():""),type:"twilio",notificationSound:!0,queueTransferTimeout:300,waitForTheAssignedAgent:10,agentTransferTimeout:300},g.title="WHATSAPP.NEW_WHATSAPPACCOUNT",g.newWhatsappAccount=!0),n.params.id&&(g.whatsappAccount.WhatsappAccountId=n.params.id),g.addNewWhatsappAccount=function(){g.errors=[],v(),d.whatsappAccount.save(g.whatsappAccount).$promise.then(function(e){g.whatsappAccounts.unshift(e.toJSON()),o.success({title:"WhatsappAccount properly created",msg:g.whatsappAccount.name?g.whatsappAccount.name+" has been created!":""}),h(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.whatsappAccount.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveWhatsappAccount=function(){g.errors=[],v(),d.whatsappAccount.update({id:g.whatsappAccount.id},g.whatsappAccount).$promise.then(function(e){var n=_.find(g.whatsappAccounts,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"WhatsappAccount properly saved!",msg:g.whatsappAccount.name?g.whatsappAccount.name+" has been saved!":""}),h(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.whatsappAccount.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappAccount.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteWhatsappAccount=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The whatsappAccount will be deleted.").ariaLabel("Delete WhatsappAccount").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.whatsappAccount.delete({id:g.whatsappAccount.id}).$promise.then(function(){_.remove(g.whatsappAccounts,{id:g.whatsappAccount.id}),o.success({title:"WhatsappAccount properly deleted!",msg:(g.whatsappAccount.name||"whatsappAccount")+" has been deleted!"}),h(g.whatsappAccount)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.whatsappAccount.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappAccount.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=h,c.hasRole("admin")?d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){g.lists=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.lists,{id:e.resourceId})}),t=null;if(g.whatsappAccount&&(t=_.find(g.lists,{id:Number(g.whatsappAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(g.lists,{id:t.id});a.canSelect=!1,n.push(a)}g.lists=n})}else{var t=[],a=null;g.whatsappAccount&&(a=_.find(g.lists,{id:Number(g.whatsappAccount.ListId)}));for(var i=0;i<g.lists.length;i++)a&&g.lists[i].id===a.id&&(g.lists[i].canSelect=!1,t.push(g.lists[i]));g.lists=t}}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),c.hasRole("admin")?d.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){g.pauses=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):d.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){g.pauses=e.rows||[]}).then(function(){return d.userProfileSection.get({userProfileId:g.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return d.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(g.pauses,{id:e.resourceId})});g.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),g.pauses=n})}else g.pauses=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","whatsappAccounts","whatsappAccount","api","Auth","license","setting","crudPermissions"],angular.module("app.whatsapp").controller("CreateOrEditWhatsappAccountDialogController",e)}(),function(){"use strict";function e(o,i,a,s,e){var r=this;function n(e,n){if(r.whatsappAccountApps.rows.length){var t=r.whatsappAccountApps.rows[n]?r.whatsappAccountApps.rows[n]:r.whatsappAccountApps.rows[0];i.show({controller:"EditWhatsappAccountApp"+(t.appType||t.app).toLowerCase()+"DialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/"+(t.appType||t.app).toLowerCase()+"/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappAccountApp:t,whatsappAccount:r.whatsappAccount,crudPermissions:r.crudPermissions}}).then(function(e){e&&(e.id?r.whatsappAccountApps.rows[n]=e:r.whatsappAccountApps.rows.splice(n,0,e),l())}).catch(function(e){e&&s.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:EDITMODALSHOW",msg:e.data?JSON.stringify(e.data):e.toString()})})}}function l(){for(var e=1,n=[],t=0;t<r.whatsappAccountApps.rows.length;t++,0){var a=r.whatsappAccountApps.rows[t],i=[],s=[];a.intervals="*,*,*,*"!==a.interval?[a.interval]:a.IntervalId?_.map(_.filter(r.intervals.rows,{IntervalId:a.IntervalId}),"interval"):[],a.context=r.whatsappAccount.context,a.exten=r.whatsappAccount.exten,a.type&&(a.type=a.type.toLowerCase()),a.priority=i.length?_.last(i).priority+1:e,e=(s.length?_.last(s).priority:a.priority)+1,n=_.concat(n,i,[a],s)}o.whatsappAccount.addApplications({id:r.whatsappAccount.id},_.sortBy(n,"priority")).$promise.then(function(e){r.whatsappAccountApps.rows=e.rows}).catch(function(e){console.error(e)})}function t(e){r.whatsappAccountApps=e||{count:0,rows:[]}}r.currentUser=e.getCurrentUser(),r.whatsappAccount={},r.whatsappAccountApps={count:0,rows:[]},r.selectedWhatsappAccountApps=[],r.crudPermissions,r.query={sort:"priority"},r.apps=_.reject(_.sortBy([{app:"Interval",appType:"interval",types:["always","custom","list"],fields:[],isApp:!1},{app:"noop",appType:"noop",type:"noop",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,fields:[{title:"Value",name:"value",type:"text",param:0}]},{app:"system",appType:"system",type:"system",icon:"icon-apps",interval:"*,*,*,*",required:!0,isApp:!0,extraApi:[{name:"variables",field:{name:"variable",key:"name"},route:"variable",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1012}}],fields:[{title:"Command",name:"command",type:"text",required:!0,param:0},{title:"Variable",name:"variable",type:"apiselect",values:"variables",value:"variable.name",option:"variable.name",defaultValues:[{value:"''",option:"None"}],defaultValue:"''",param:1}]},{app:"gotop",appType:"gotop",type:"goto",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Priority",name:"priority",type:"number",required:!0,min:0,param:0}]},{app:"gotoif",appType:"gotoif",type:"gotoif",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Condition",name:"condition",type:"text",required:!0,param:0},{title:"truepriority",name:"truepriority",type:"number",min:1,required:!0,param:1},{title:"falsepriority",name:"falsepriority",type:"number",min:1,required:!0,param:2}]},{app:"queue",appType:"queue",foreignKey:"WhatsappQueueId",type:"queue",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"queues",field:{name:"queue",key:"name"},route:"whatsappQueue",filters:{fields:"id,name,type",sort:"name",nolimit:!0},permissions:{section:2102}}],fields:[{title:"Queue",name:"queue",type:"apiselect",values:"queues",value:"queue.name",option:"queue.name",defaultValue:300,required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:300,param:1}]},{app:"agent",appType:"agent",type:"agent",foreignKey:"UserId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"agents",field:{name:"agent",key:"name"},route:"user",filters:{fields:"id,name",sort:"name",nolimit:!0,role:"agent"},permissions:{section:202}}],fields:[{title:"Agent",name:"agent",type:"apiselect",values:"agents",value:"agent.name",option:"agent.name",required:!0,param:0},{title:"Timeout",name:"timeout",type:"number",max:2147483,min:0,required:!0,defaultValue:30,param:1}]},{app:"autoreply",appType:"autoreply",type:"autoreply",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"times",name:"times",type:"select",defaultValue:"1",values:[{option:"One Time",value:"2"},{option:"Always",value:"0"},{option:"First Message",value:"1"}],required:!0,param:0},{title:"Text",name:"text",type:"textarea",required:!0,param:1}]},{app:"close",appType:"close",type:"close",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Disposition",name:"disposition",type:"text",required:!0,param:0}]},{app:"tag",appType:"tag",type:"tag",foreignKey:"TagId",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,extraApi:[{name:"tags",field:{name:"tag",key:"name"},route:"tag",filters:{fields:"id,name",sort:"name",nolimit:!0},permissions:{section:1008}}],fields:[{title:"Tag",name:"tag",type:"apiselect",values:"tags",value:"tag.name",option:"tag.name",required:!0,param:0}]},{app:"dialogflow",appType:"dialogflow",type:"dialogflow",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"Key",name:"key",type:"text",required:!0,param:0},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{option:"Danish",value:"'da'"},{option:"English",value:"'en'"},{option:"German",value:"'de'"},{option:"Italian",value:"'it'"},{option:"Spanish",value:"'es'"},{option:"French",value:"'fr'"},{option:"Indonesian",value:"'id'"},{option:"Japanese",value:"'ja'"},{option:"Korean (South Korea)",value:"'ko'"},{option:"Dutch",value:"'nl'"},{option:"Norwegian",value:"'no'"},{option:"Portuguese (European)",value:"'pt'"},{option:"Portuguese (Nrazilian)",value:"'pt-br'"},{option:"Russian",value:"'ru'"},{option:"Swedish",value:"'sv'"},{option:"Thai",value:"'th'"},{option:"Ukrainian",value:"'uk'"},{option:"Chinese (Simplified)",value:"'zh-CN'"},{option:"Chinese (Hong Kong)",value:"'zh-HK'"},{option:"Chinese (Traditional)",value:"'zh-TW'"}],required:!0,param:1},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,required:!1,param:2,help:!0}]},{app:"dialogflowV2",appType:"dialogflowv2",type:"dialogflowv2",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"ProjectID",name:"projectId",type:"text",required:!0,param:0},{title:"ClientEmail",name:"clientEmail",type:"text",required:!0,param:1},{title:"PrivateKey",name:"privateKey",type:"textarea",required:!0,param:2},{title:"language",name:"language",type:"select",defaultValue:"'en'",values:[{value:"'zh-HK'",option:"Chinese (Cantonese)"},{value:"'zh-CN'",option:"Chinese (Simplified)"},{value:"'zh-TW'",option:"Chinese (Traditional)"},{value:"'da'",option:"Danish"},{value:"'nl'",option:"Dutch"},{value:"'en'",option:"English"},{value:"'en-AU'",option:"English (Australia)"},{value:"'en-CA'",option:"English (Canada)"},{value:"'en-GB'",option:"English (Great Britain)"},{value:"'en-IN'",option:"English (India)"},{value:"'en-US'",option:"English (US)"},{value:"'fr'",option:"French"},{value:"'fr-CA'",option:"French (Canada)"},{value:"'fr-FR'",option:"'France (France)"},{value:"'de'",option:"German"},{value:"'hi'",option:"Hindi"},{value:"'id'",option:"Indonesian"},{value:"'it'",option:"Italian"},{value:"'ja'",option:"Japanese"},{value:"'ko'",option:"Korean"},{value:"'no'",option:"Norwegian"},{value:"'pl'",option:"Polish"},{value:"'pt-BR'",option:"Portuguese (Brazil)"},{value:"'pt-PT'",option:"Portuguese (Portugal)"},{value:"'ru'",option:"Russian"},{value:"'es'",option:"Spanish"},{value:"'es-419'",option:"Spanish (Latin America)"},{value:"'es-ES'",option:"Spanish (Spain)"},{value:"'sw'",option:"Swedish"},{value:"'th'",option:"Thai"},{value:"'tr'",option:"Turkish"},{value:"'uk'",option:"Ukrainian"}],required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,param:4,help:!0}]},{app:"amazonlex",appType:"amazonlex",type:"amazonlex",icon:"icon-apps",interval:"*,*,*,*",isApp:!0,fields:[{title:"accesskeyid",name:"accesskeyid",type:"text",required:!0,param:0},{title:"secretaccesskey",name:"secretaccesskey",type:"text",required:!0,param:1},{title:"lexregion",name:"lexregion",type:"select",defaultValue:"'us-east-1'",values:[{option:"US East (N. Virginia)",value:"'us-east-1'"},{option:"US West (Oregon)",value:"'us-west-2'"},{option:"EU (Ireland)",value:"'eu-west-1'"},{option:"Asia Pacific (Sydney)",value:"'ap-southeast-2'"}],required:!0,param:2},{title:"botname",name:"botname",type:"text",required:!0,param:3},{title:"welcomemessage",name:"welcomemessage",type:"textarea",maxlength:255,required:!1,param:4,help:!0}]}],["app"]),{isApp:!1}),r.list={group:{name:"opt1",pull:"clone"},animation:100,sort:!1},r.applications={group:{name:"opt2",put:"opt1"},animation:100,onAdd:function(e){n(e,e.newIndex)},onSort:function(e){l()}},r.init=function(e,n){r.whatsappAccount=e,r.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},r.applications.disabled=!r.crudPermissions.canEdit,r.query.id=e.id,r.query.isApp=!0,r.query.nolimit=!0,r.getWhatsappAccountApps(),r.getIntervals()},r.deleteConfirm=function(e,n,t){var a=i.confirm().title("Are you sure want to delete the application?").htmlContent("<b>"+e.app+"</b> will be deleted.").ariaLabel("delete application").targetEvent(t).ok("OK").cancel("CANCEL");i.show(a).then(function(){r.whatsappAccountApps.rows.splice(n,1),l()},function(){console.log("CANCEL")})},r.getWhatsappAccountApps=function(){r.promise=o.whatsappAccount.getApplications(r.query,t).$promise},r.editWhatsappAccountApp=n,r.editInterval=function(e,n){if(r.whatsappAccountApps.rows.length){var t=r.whatsappAccountApps.rows[n]?r.whatsappAccountApps.rows[n]:r.whatsappAccountApps.rows[0];i.show({controller:"EditWhatsappAccountAppintervalDialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/interval/dialog.html",parent:angular.element(a.body),targetEvent:e,clickOutsideToClose:!0,locals:{interval:{interval:t.interval,IntervalId:t.IntervalId,application:!0},intervals:[],crudPermissions:r.crudPermissions}}).then(function(e){e&&(t.interval=e.interval||"*,*,*,*",t.IntervalId=e.IntervalId||null,l())})}},r.deleteWhatsappAccountApp=function(e){_.remove(r.whatsappAccountApps.rows,{id:e.id}),l(),s.success({title:"App deleted!",msg:e.app?e.app+" has been deleted!":""})},r.deleteSelectedWhatsappAccountApps=function(e){var n=i.confirm().title("Are you sure want to delete the selected applications?").htmlContent("<b>"+r.selectedWhatsappAccountApps.length+" selected</b> will be deleted.").ariaLabel("delete applications").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){r.selectedWhatsappAccountApps.forEach(function(e){_.remove(r.whatsappAccountApps.rows,{id:e.id})}),r.selectedWhatsappAccountApps=[],l()})},r.rewriteRouting=l,r.getIntervals=function(){return o.interval.get({fields:"id,interval,IntervalId"}).$promise.then(function(e){r.intervals=e}).catch(function(e){console.error(e)})}}e.$inject=["api","$mdDialog","$document","toasty","Auth"],angular.module("app.whatsapp").controller("WhatsappAccountActionsController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.whatsappAccount.getAgents({id:c.whatsappAccount.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserWhatsappAccount?"penalty "+e.UserWhatsappAccount.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.whatsappAccount=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.whatsappAccount.removeAgents({id:c.whatsappAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.whatsappAccount.addAgents({id:c.whatsappAccount.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("WHATSAPP.ALL_AGENTS"),labelSelected:r.instant("WHATSAPP.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","whatsappAccount","whatsappAccounts","realtime","$translate","Auth","crudPermissions"],angular.module("app.whatsapp").controller("WhatsappAccountagentaddController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.agent=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.agent.appdata)switch(l.agent.appType?l.agent.appType.toLowerCase():l.agent.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.agent.appdata.split(",");l.agent.key=d[0],l.agent.language=d[1],l.agent.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.agent.appdata.split(",");l.agent.projectId=d[0],l.agent.clientEmail=d[1],l.agent.privateKey=d[2],l.agent.language=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.agent.appdata.split(",");l.agent.accesskeyid=d[0],l.agent.secretaccesskey=d[1],l.agent.lexregion=d[2],l.agent.botname=d[3],l.agent.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.agent.appdata.split(",");l.agent.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.agent.text=d.slice(1,d.length).join(",");break;case"message":l.agent.text=l.agent.appdata;break;case"set":l.agent.name=l.agent.appdata.split("=")[0],l.agent.value=l.agent.appdata.split("=")[1];break;case"agi":l.agent.project=l.agent.appdata;break;default:var c=l.agent.appdata.split(",");l.agent.agent=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.agent.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.agent.timeout=30;function m(e){n.hide(e)}l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outbounddial"===l.agent.appType.toLowerCase()&&(l.agent.prefix=l.agent.phone?l.agent.phone.split("$")[0]:void 0,l.agent.callerId=l.agent.callerID?"CALLERID(all)="+l.agent.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.agent.type&&"outbound"===l.agent.type.toLowerCase()&&"outboundDial"===l.agent.appType&&(l.agent.phone=i.cutdigits?(l.agent.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.agent.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.agent.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.agent.options+="U(xcally-mixmonitor-context)"):l.agent.options=l.agent.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.agents,{name:l.agent.agent});n&&(l.agent.UserId=n.id);if(l.agent.appType&&"custom"===l.agent.appType);else switch((l.agent.app||l.agent.appType).toLowerCase()){case"set":l.agent.appdata=l.agent.name+"="+l.agent.value;break;case"custom":break;default:e[0]=l.agent.agent,e[1]=l.agent.timeout,l.agent.appdata=e.join(",")}m(l.agent)},l.closeDialog=m,o.hasRole("admin")?s.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){l.agents=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.user.get({fields:"id,name",sort:"name",nolimit:"true",role:"agent"}).$promise.then(function(e){l.agents=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:202}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.agents,{id:e.resourceId})}),t=null;if(l.agent&&(t=_.find(l.agents,{name:l.agent.agent})),t&&!_.some(n,["id",t.id])){var a=_.find(l.agents,{id:t.id});a.canSelect=!1,n.push(a)}l.agents=n})}else{var t=[],a=null;l.agent&&(a=_.find(l.agents,{name:l.agent.agent}));for(var i=0;i<l.agents.length;i++)a&&l.agents[i].id===a.id&&(l.agents[i].canSelect=!1,t.push(l.agents[i]));l.agents=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETagents",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppagentDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.amazonlex=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.amazonlex.appdata)switch(l.amazonlex.appType?l.amazonlex.appType.toLowerCase():l.amazonlex.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.amazonlex.appdata.split(",");l.amazonlex.key=d[0],l.amazonlex.language=d[1],l.amazonlex.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.amazonlex.appdata.split(",");l.amazonlex.projectId=d[0],l.amazonlex.clientEmail=d[1],l.amazonlex.privateKey=d[2],l.amazonlex.language=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=d[0],l.amazonlex.secretaccesskey=d[1],l.amazonlex.lexregion=d[2],l.amazonlex.botname=d[3],l.amazonlex.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.amazonlex.appdata.split(",");l.amazonlex.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.amazonlex.text=d.slice(1,d.length).join(",");break;case"message":l.amazonlex.text=l.amazonlex.appdata;break;case"set":l.amazonlex.name=l.amazonlex.appdata.split("=")[0],l.amazonlex.value=l.amazonlex.appdata.split("=")[1];break;case"agi":l.amazonlex.project=l.amazonlex.appdata;break;default:var c=l.amazonlex.appdata.split(",");l.amazonlex.accesskeyid=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.amazonlex.secretaccesskey=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.amazonlex.lexregion=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.amazonlex.botname=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.amazonlex.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.amazonlex.lexregion="us-east-1";function m(e){n.hide(e)}l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outbounddial"===l.amazonlex.appType.toLowerCase()&&(l.amazonlex.prefix=l.amazonlex.phone?l.amazonlex.phone.split("$")[0]:void 0,l.amazonlex.callerId=l.amazonlex.callerID?"CALLERID(all)="+l.amazonlex.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.amazonlex.type&&"outbound"===l.amazonlex.type.toLowerCase()&&"outboundDial"===l.amazonlex.appType&&(l.amazonlex.phone=i.cutdigits?(l.amazonlex.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.amazonlex.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.amazonlex.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.amazonlex.options+="U(xcally-mixmonitor-context)"):l.amazonlex.options=l.amazonlex.options.replace("U(xcally-mixmonitor-context)",""));if(l.amazonlex.appType&&"custom"===l.amazonlex.appType);else switch((l.amazonlex.app||l.amazonlex.appType).toLowerCase()){case"set":l.amazonlex.appdata=l.amazonlex.name+"="+l.amazonlex.value;break;case"custom":break;default:e[0]=l.amazonlex.accesskeyid,e[1]=l.amazonlex.secretaccesskey,e[2]=l.amazonlex.lexregion,e[3]=l.amazonlex.botname,e[4]=l.amazonlex.welcomemessage,l.amazonlex.appdata=e.join(",")}m(l.amazonlex)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppamazonlexDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.autoreply=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.autoreply.appdata)switch(l.autoreply.appType?l.autoreply.appType.toLowerCase():l.autoreply.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.autoreply.appdata.split(",");l.autoreply.key=d[0],l.autoreply.language=d[1],l.autoreply.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.autoreply.appdata.split(",");l.autoreply.projectId=d[0],l.autoreply.clientEmail=d[1],l.autoreply.privateKey=d[2],l.autoreply.language=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.autoreply.appdata.split(",");l.autoreply.accesskeyid=d[0],l.autoreply.secretaccesskey=d[1],l.autoreply.lexregion=d[2],l.autoreply.botname=d[3],l.autoreply.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.autoreply.appdata.split(",");l.autoreply.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.autoreply.text=d.slice(1,d.length).join(",");break;case"message":l.autoreply.text=l.autoreply.appdata;break;case"set":l.autoreply.name=l.autoreply.appdata.split("=")[0],l.autoreply.value=l.autoreply.appdata.split("=")[1];break;case"agi":l.autoreply.project=l.autoreply.appdata;break;default:var c=l.autoreply.appdata.split(",");l.autoreply.times=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.autoreply.text=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.autoreply.times=1;function m(e){n.hide(e)}l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outbounddial"===l.autoreply.appType.toLowerCase()&&(l.autoreply.prefix=l.autoreply.phone?l.autoreply.phone.split("$")[0]:void 0,l.autoreply.callerId=l.autoreply.callerID?"CALLERID(all)="+l.autoreply.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.autoreply.type&&"outbound"===l.autoreply.type.toLowerCase()&&"outboundDial"===l.autoreply.appType&&(l.autoreply.phone=i.cutdigits?(l.autoreply.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.autoreply.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.autoreply.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.autoreply.options+="U(xcally-mixmonitor-context)"):l.autoreply.options=l.autoreply.options.replace("U(xcally-mixmonitor-context)",""));if(l.autoreply.appType&&"custom"===l.autoreply.appType);else switch((l.autoreply.app||l.autoreply.appType).toLowerCase()){case"set":l.autoreply.appdata=l.autoreply.name+"="+l.autoreply.value;break;case"custom":break;default:e[0]=l.autoreply.times,e[1]=l.autoreply.text,l.autoreply.appdata=e.join(",")}m(l.autoreply)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppautoreplyDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.close=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.close.appdata)switch(l.close.appType?l.close.appType.toLowerCase():l.close.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.close.appdata.split(",");l.close.key=d[0],l.close.language=d[1],l.close.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.close.appdata.split(",");l.close.projectId=d[0],l.close.clientEmail=d[1],l.close.privateKey=d[2],l.close.language=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.close.appdata.split(",");l.close.accesskeyid=d[0],l.close.secretaccesskey=d[1],l.close.lexregion=d[2],l.close.botname=d[3],l.close.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.close.appdata.split(",");l.close.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.close.text=d.slice(1,d.length).join(",");break;case"message":l.close.text=l.close.appdata;break;case"set":l.close.name=l.close.appdata.split("=")[0],l.close.value=l.close.appdata.split("=")[1];break;case"agi":l.close.project=l.close.appdata;break;default:var c=l.close.appdata.split(",");l.close.disposition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outbounddial"===l.close.appType.toLowerCase()&&(l.close.prefix=l.close.phone?l.close.phone.split("$")[0]:void 0,l.close.callerId=l.close.callerID?"CALLERID(all)="+l.close.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.close.type&&"outbound"===l.close.type.toLowerCase()&&"outboundDial"===l.close.appType&&(l.close.phone=i.cutdigits?(l.close.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.close.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.close.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.close.options+="U(xcally-mixmonitor-context)"):l.close.options=l.close.options.replace("U(xcally-mixmonitor-context)",""));if(l.close.appType&&"custom"===l.close.appType);else switch((l.close.app||l.close.appType).toLowerCase()){case"set":l.close.appdata=l.close.name+"="+l.close.value;break;case"custom":break;default:e[0]=l.close.disposition,l.close.appdata=e.join(",")}m(l.close)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppcloseDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflow=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflow.appdata)switch(l.dialogflow.appType?l.dialogflow.appType.toLowerCase():l.dialogflow.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflow.appdata.split(",");l.dialogflow.key=d[0],l.dialogflow.language=d[1],l.dialogflow.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflow.appdata.split(",");l.dialogflow.projectId=d[0],l.dialogflow.clientEmail=d[1],l.dialogflow.privateKey=d[2],l.dialogflow.language=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflow.appdata.split(",");l.dialogflow.accesskeyid=d[0],l.dialogflow.secretaccesskey=d[1],l.dialogflow.lexregion=d[2],l.dialogflow.botname=d[3],l.dialogflow.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflow.appdata.split(",");l.dialogflow.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflow.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflow.text=l.dialogflow.appdata;break;case"set":l.dialogflow.name=l.dialogflow.appdata.split("=")[0],l.dialogflow.value=l.dialogflow.appdata.split("=")[1];break;case"agi":l.dialogflow.project=l.dialogflow.appdata;break;default:var c=l.dialogflow.appdata.split(",");l.dialogflow.key=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflow.language=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflow.welcomemessage=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}else l.dialogflow.language="en";function m(e){n.hide(e)}l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outbounddial"===l.dialogflow.appType.toLowerCase()&&(l.dialogflow.prefix=l.dialogflow.phone?l.dialogflow.phone.split("$")[0]:void 0,l.dialogflow.callerId=l.dialogflow.callerID?"CALLERID(all)="+l.dialogflow.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.dialogflow.type&&"outbound"===l.dialogflow.type.toLowerCase()&&"outboundDial"===l.dialogflow.appType&&(l.dialogflow.phone=i.cutdigits?(l.dialogflow.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflow.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflow.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflow.options+="U(xcally-mixmonitor-context)"):l.dialogflow.options=l.dialogflow.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflow.appType&&"custom"===l.dialogflow.appType);else switch((l.dialogflow.app||l.dialogflow.appType).toLowerCase()){case"set":l.dialogflow.appdata=l.dialogflow.name+"="+l.dialogflow.value;break;case"custom":break;default:e[0]=l.dialogflow.key,e[1]=l.dialogflow.language,e[2]=l.dialogflow.welcomemessage,l.dialogflow.appdata=e.join(",")}m(l.dialogflow)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppdialogflowDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.dialogflowv2=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.dialogflowv2.appdata)switch(l.dialogflowv2.appType?l.dialogflowv2.appType.toLowerCase():l.dialogflowv2.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.key=d[0],l.dialogflowv2.language=d[1],l.dialogflowv2.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=d[0],l.dialogflowv2.clientEmail=d[1],l.dialogflowv2.privateKey=d[2],l.dialogflowv2.language=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.accesskeyid=d[0],l.dialogflowv2.secretaccesskey=d[1],l.dialogflowv2.lexregion=d[2],l.dialogflowv2.botname=d[3],l.dialogflowv2.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.dialogflowv2.appdata.split(",");l.dialogflowv2.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.dialogflowv2.text=d.slice(1,d.length).join(",");break;case"message":l.dialogflowv2.text=l.dialogflowv2.appdata;break;case"set":l.dialogflowv2.name=l.dialogflowv2.appdata.split("=")[0],l.dialogflowv2.value=l.dialogflowv2.appdata.split("=")[1];break;case"agi":l.dialogflowv2.project=l.dialogflowv2.appdata;break;default:var c=l.dialogflowv2.appdata.split(",");l.dialogflowv2.projectId=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.dialogflowv2.clientEmail=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.dialogflowv2.privateKey=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10),l.dialogflowv2.language=_.isEmpty(c[3])?c[3]:isNaN(c[3])?c[3]:parseInt(c[3],10),l.dialogflowv2.welcomemessage=_.isEmpty(c[4])?c[4]:isNaN(c[4])?c[4]:parseInt(c[4],10)}else l.dialogflowv2.language="en";function m(e){n.hide(e)}l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outbounddial"===l.dialogflowv2.appType.toLowerCase()&&(l.dialogflowv2.prefix=l.dialogflowv2.phone?l.dialogflowv2.phone.split("$")[0]:void 0,l.dialogflowv2.callerId=l.dialogflowv2.callerID?"CALLERID(all)="+l.dialogflowv2.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.dialogflowv2.type&&"outbound"===l.dialogflowv2.type.toLowerCase()&&"outboundDial"===l.dialogflowv2.appType&&(l.dialogflowv2.phone=i.cutdigits?(l.dialogflowv2.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.dialogflowv2.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.dialogflowv2.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.dialogflowv2.options+="U(xcally-mixmonitor-context)"):l.dialogflowv2.options=l.dialogflowv2.options.replace("U(xcally-mixmonitor-context)",""));if(l.dialogflowv2.appType&&"custom"===l.dialogflowv2.appType);else switch((l.dialogflowv2.app||l.dialogflowv2.appType).toLowerCase()){case"set":l.dialogflowv2.appdata=l.dialogflowv2.name+"="+l.dialogflowv2.value;break;case"custom":break;default:e[0]=l.dialogflowv2.projectId,e[1]=l.dialogflowv2.clientEmail,e[2]=l.dialogflowv2.privateKey,e[3]=l.dialogflowv2.language,e[4]=l.dialogflowv2.welcomemessage,l.dialogflowv2.appdata=e.join(",")}m(l.dialogflowv2)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppdialogflowv2DialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotoif=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotoif.appdata)switch(l.gotoif.appType?l.gotoif.appType.toLowerCase():l.gotoif.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotoif.appdata.split(",");l.gotoif.key=d[0],l.gotoif.language=d[1],l.gotoif.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotoif.appdata.split(",");l.gotoif.projectId=d[0],l.gotoif.clientEmail=d[1],l.gotoif.privateKey=d[2],l.gotoif.language=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotoif.appdata.split(",");l.gotoif.accesskeyid=d[0],l.gotoif.secretaccesskey=d[1],l.gotoif.lexregion=d[2],l.gotoif.botname=d[3],l.gotoif.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotoif.appdata.split(",");l.gotoif.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotoif.text=d.slice(1,d.length).join(",");break;case"message":l.gotoif.text=l.gotoif.appdata;break;case"set":l.gotoif.name=l.gotoif.appdata.split("=")[0],l.gotoif.value=l.gotoif.appdata.split("=")[1];break;case"agi":l.gotoif.project=l.gotoif.appdata;break;default:var c=l.gotoif.appdata.split(",");l.gotoif.condition=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.gotoif.truepriority=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10),l.gotoif.falsepriority=_.isEmpty(c[2])?c[2]:isNaN(c[2])?c[2]:parseInt(c[2],10)}function m(e){n.hide(e)}l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outbounddial"===l.gotoif.appType.toLowerCase()&&(l.gotoif.prefix=l.gotoif.phone?l.gotoif.phone.split("$")[0]:void 0,l.gotoif.callerId=l.gotoif.callerID?"CALLERID(all)="+l.gotoif.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.gotoif.type&&"outbound"===l.gotoif.type.toLowerCase()&&"outboundDial"===l.gotoif.appType&&(l.gotoif.phone=i.cutdigits?(l.gotoif.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotoif.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotoif.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotoif.options+="U(xcally-mixmonitor-context)"):l.gotoif.options=l.gotoif.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotoif.appType&&"custom"===l.gotoif.appType);else switch((l.gotoif.app||l.gotoif.appType).toLowerCase()){case"set":l.gotoif.appdata=l.gotoif.name+"="+l.gotoif.value;break;case"custom":break;default:e[0]=l.gotoif.condition,e[1]=l.gotoif.truepriority,e[2]=l.gotoif.falsepriority,l.gotoif.appdata=e.join(",")}m(l.gotoif)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppgotoifDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.gotop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.gotop.appdata)switch(l.gotop.appType?l.gotop.appType.toLowerCase():l.gotop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.gotop.appdata.split(",");l.gotop.key=d[0],l.gotop.language=d[1],l.gotop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.gotop.appdata.split(",");l.gotop.projectId=d[0],l.gotop.clientEmail=d[1],l.gotop.privateKey=d[2],l.gotop.language=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.gotop.appdata.split(",");l.gotop.accesskeyid=d[0],l.gotop.secretaccesskey=d[1],l.gotop.lexregion=d[2],l.gotop.botname=d[3],l.gotop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.gotop.appdata.split(",");l.gotop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.gotop.text=d.slice(1,d.length).join(",");break;case"message":l.gotop.text=l.gotop.appdata;break;case"set":l.gotop.name=l.gotop.appdata.split("=")[0],l.gotop.value=l.gotop.appdata.split("=")[1];break;case"agi":l.gotop.project=l.gotop.appdata;break;default:var c=l.gotop.appdata.split(",");l.gotop.priority=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outbounddial"===l.gotop.appType.toLowerCase()&&(l.gotop.prefix=l.gotop.phone?l.gotop.phone.split("$")[0]:void 0,l.gotop.callerId=l.gotop.callerID?"CALLERID(all)="+l.gotop.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.gotop.type&&"outbound"===l.gotop.type.toLowerCase()&&"outboundDial"===l.gotop.appType&&(l.gotop.phone=i.cutdigits?(l.gotop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.gotop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.gotop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.gotop.options+="U(xcally-mixmonitor-context)"):l.gotop.options=l.gotop.options.replace("U(xcally-mixmonitor-context)",""));if(l.gotop.appType&&"custom"===l.gotop.appType);else switch((l.gotop.app||l.gotop.appType).toLowerCase()){case"set":l.gotop.appdata=l.gotop.name+"="+l.gotop.value;break;case"custom":break;default:e[0]=l.gotop.priority,l.gotop.appdata=e.join(",")}m(l.gotop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppgotopDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d){var c=this;if(c.currentUser=l.getCurrentUser(),c.errors=[],c.title="TOOLS.EDIT_INTERVAL",c.interval=angular.copy(i),c.intervals=s,c.newInterval=!1,c.types=["always","custom","list"],c.crudPermissions=d,c.daysOfWeek=a.getDaysOfWeek(),c.monthNumber=a.getMonthNumber(),c.monthName=a.getMonthName(),c.daysOfMonth=a.getDaysOfMonth(),c.interval)if("*,*,*,*"!==c.interval.interval){c.type="custom";var m=c.interval.interval.split(","),u=m[0],p=m[1],g=m[2],v=m[3];if("*"!==u){var h,f=u.split("-")[0],b=u.split("-")[1];(h=new Date).setHours(Number(f.split(":")[0])),h.setMinutes(Number(f.split(":")[1])),c.timeRangeFrom=h,(h=new Date).setHours(Number(b.split(":")[0])),h.setMinutes(Number(b.split(":")[1])),c.timeRangeTo=h}"*"!==p&&(c.dayOfWeekFrom=p.split("-")[0],c.dayOfWeekTo=p.split("-")[1]),"*"!==g&&(c.monthDayFrom=g.split("-")[0],c.monthDayTo=g.split("-")[1]),"*"!==v&&(c.monthFrom=v.split("-")[0],c.monthTo=v.split("-")[1])}else c.type="always";else c.interval={interval:"*,*,*,*"},c.type="always",c.title="TOOLS.NEW_INTERVAL",c.newInterval=!0;function A(){switch(c.type){case"always":case"list":return"*,*,*,*";case"custom":var e=[];if("*"!==c.timeRangeFrom&&c.timeRangeFrom&&c.timeRangeTo){var n=(c.timeRangeFrom.getHours()<10?"0":"")+c.timeRangeFrom.getHours()+":"+(c.timeRangeFrom.getMinutes()<10?"0":"")+c.timeRangeFrom.getMinutes(),t=(c.timeRangeTo.getHours()<10?"0":"")+c.timeRangeTo.getHours()+":"+(c.timeRangeTo.getMinutes()<10?"0":"")+c.timeRangeTo.getMinutes();e.push(n+"-"+t)}else e.push("*");return c.dayOfWeekFrom?c.dayOfWeekTo?e.push(c.dayOfWeekFrom+"-"+c.dayOfWeekTo):e.push(c.dayOfWeekFrom):e.push("*"),c.monthDayFrom?c.monthDayTo?e.push(c.monthDayFrom+"-"+c.monthDayTo):e.push(c.monthDayFrom):e.push("*"),c.monthFrom?c.monthTo?e.push(c.monthFrom+"-"+c.monthTo):e.push(c.monthFrom):e.push("*"),e.join()}}function E(e){n.hide(e)}e.params.id&&!c.interval.application&&(c.interval.IntervalId=e.params.id),c.interval.IntervalId&&c.interval.application&&(c.type="list"),c.addNewInterval=function(){c.errors=[],c.interval.interval=A(),r.interval.save(c.interval).$promise.then(function(e){c.intervals.push(e),o.success({title:"Interval properly created",msg:c.interval.name?c.interval.name+" has been created!":""}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.save"}]})},c.saveInterval=function(){c.errors=[],c.interval.interval=A(),c.interval.application?("list"!==c.type&&(c.interval.IntervalId=null),E(c.interval)):r.interval.update({id:c.interval.id},c.interval).$promise.then(function(e){var n=_.find(c.intervals,{id:e.id});n&&_.merge(n,e),o.success({title:"Interval properly saved!",msg:"Interval has been saved!"}),E()}).catch(function(e){console.error(e),c.errors=e.data.errors||[{message:e.toString(),type:"api.interval.update"}]})},c.closeDialog=E,c.interval.application&&(l.hasRole("admin")?r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.interval.get({fields:"id,name,interval,IntervalId",IntervalId:"null",nolimit:!0}).$promise.then(function(e){c.intervals=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:c.currentUser.userProfileId,sectionId:1004}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=e&&e.rows?e.rows:[],t=[],a=null;c.interval&&(a=_.find(c.intervals,{name:c.interval.IntervalId})),a&&!_.some(n,["resourceId",a.id])&&c.intervals.forEach(function(e){e.id===a.id&&(e.canSelect=!1,t.push(e))}),c.intervals=t})}else c.intervals=[]}).catch(function(e){o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_INTERVALS",msg:e.data?JSON.stringify(e.data):e.toString()})}))}e.$inject=["$state","$mdDialog","$mdToast","IndexFactory","interval","intervals","toasty","api","Auth","crudPermissions"],angular.module("app.voice").controller("EditWhatsappAccountAppintervalDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.noop=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.noop.appdata)switch(l.noop.appType?l.noop.appType.toLowerCase():l.noop.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.noop.appdata.split(",");l.noop.key=d[0],l.noop.language=d[1],l.noop.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.noop.appdata.split(",");l.noop.projectId=d[0],l.noop.clientEmail=d[1],l.noop.privateKey=d[2],l.noop.language=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.noop.appdata.split(",");l.noop.accesskeyid=d[0],l.noop.secretaccesskey=d[1],l.noop.lexregion=d[2],l.noop.botname=d[3],l.noop.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.noop.appdata.split(",");l.noop.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.noop.text=d.slice(1,d.length).join(",");break;case"message":l.noop.text=l.noop.appdata;break;case"set":l.noop.name=l.noop.appdata.split("=")[0],l.noop.value=l.noop.appdata.split("=")[1];break;case"agi":l.noop.project=l.noop.appdata;break;default:var c=l.noop.appdata.split(",");l.noop.value=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outbounddial"===l.noop.appType.toLowerCase()&&(l.noop.prefix=l.noop.phone?l.noop.phone.split("$")[0]:void 0,l.noop.callerId=l.noop.callerID?"CALLERID(all)="+l.noop.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.noop.type&&"outbound"===l.noop.type.toLowerCase()&&"outboundDial"===l.noop.appType&&(l.noop.phone=i.cutdigits?(l.noop.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.noop.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.noop.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.noop.options+="U(xcally-mixmonitor-context)"):l.noop.options=l.noop.options.replace("U(xcally-mixmonitor-context)",""));if(l.noop.appType&&"custom"===l.noop.appType);else switch((l.noop.app||l.noop.appType).toLowerCase()){case"set":l.noop.appdata=l.noop.name+"="+l.noop.value;break;case"custom":break;default:e[0]=l.noop.value,l.noop.appdata=e.join(",")}m(l.noop)},l.closeDialog=m}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppnoopDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.queue=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.queue.appdata)switch(l.queue.appType?l.queue.appType.toLowerCase():l.queue.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.queue.appdata.split(",");l.queue.key=d[0],l.queue.language=d[1],l.queue.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.queue.appdata.split(",");l.queue.projectId=d[0],l.queue.clientEmail=d[1],l.queue.privateKey=d[2],l.queue.language=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.queue.appdata.split(",");l.queue.accesskeyid=d[0],l.queue.secretaccesskey=d[1],l.queue.lexregion=d[2],l.queue.botname=d[3],l.queue.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.queue.appdata.split(",");l.queue.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.queue.text=d.slice(1,d.length).join(",");break;case"message":l.queue.text=l.queue.appdata;break;case"set":l.queue.name=l.queue.appdata.split("=")[0],l.queue.value=l.queue.appdata.split("=")[1];break;case"agi":l.queue.project=l.queue.appdata;break;default:var c=l.queue.appdata.split(",");l.queue.queue=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.queue.timeout=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.queue.queue=300,l.queue.timeout=300;function m(e){n.hide(e)}l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outbounddial"===l.queue.appType.toLowerCase()&&(l.queue.prefix=l.queue.phone?l.queue.phone.split("$")[0]:void 0,l.queue.callerId=l.queue.callerID?"CALLERID(all)="+l.queue.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.queue.type&&"outbound"===l.queue.type.toLowerCase()&&"outboundDial"===l.queue.appType&&(l.queue.phone=i.cutdigits?(l.queue.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.queue.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.queue.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.queue.options+="U(xcally-mixmonitor-context)"):l.queue.options=l.queue.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.queues,{name:l.queue.queue});n&&(l.queue[_.capitalize("whatsapp")+"QueueId"]=n.id);if(l.queue.appType&&"custom"===l.queue.appType);else switch((l.queue.app||l.queue.appType).toLowerCase()){case"set":l.queue.appdata=l.queue.name+"="+l.queue.value;break;case"custom":break;default:e[0]=l.queue.queue,e[1]=l.queue.timeout,l.queue.appdata=e.join(",")}m(l.queue)},l.closeDialog=m,o.hasRole("admin")?s.whatsappQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_QUEUES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.whatsappQueue.get({fields:"id,name,type",sort:"name",nolimit:"true"}).$promise.then(function(e){l.queues=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:2102}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.queues,{id:e.resourceId})}),t=null;if(l.queue&&(t=_.find(l.queues,{name:l.queue.queue})),t&&!_.some(n,["id",t.id])){var a=_.find(l.queues,{id:t.id});a.canSelect=!1,n.push(a)}l.queues=n})}else{var t=[],a=null;l.queue&&(a=_.find(l.queues,{name:l.queue.queue}));for(var i=0;i<l.queues.length;i++)a&&l.queues[i].id===a.id&&(l.queues[i].canSelect=!1,t.push(l.queues[i]));l.queues=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETqueues",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppqueueDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.system=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.system.appdata)switch(l.system.appType?l.system.appType.toLowerCase():l.system.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.system.appdata.split(",");l.system.key=d[0],l.system.language=d[1],l.system.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.system.appdata.split(",");l.system.projectId=d[0],l.system.clientEmail=d[1],l.system.privateKey=d[2],l.system.language=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.system.appdata.split(",");l.system.accesskeyid=d[0],l.system.secretaccesskey=d[1],l.system.lexregion=d[2],l.system.botname=d[3],l.system.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.system.appdata.split(",");l.system.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.system.text=d.slice(1,d.length).join(",");break;case"message":l.system.text=l.system.appdata;break;case"set":l.system.name=l.system.appdata.split("=")[0],l.system.value=l.system.appdata.split("=")[1];break;case"agi":l.system.project=l.system.appdata;break;default:var c=l.system.appdata.split(",");l.system.command=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10),l.system.variable=_.isEmpty(c[1])?c[1]:isNaN(c[1])?c[1]:parseInt(c[1],10)}else l.system.variable="";function m(e){n.hide(e)}l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outbounddial"===l.system.appType.toLowerCase()&&(l.system.prefix=l.system.phone?l.system.phone.split("$")[0]:void 0,l.system.callerId=l.system.callerID?"CALLERID(all)="+l.system.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.system.type&&"outbound"===l.system.type.toLowerCase()&&"outboundDial"===l.system.appType&&(l.system.phone=i.cutdigits?(l.system.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.system.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.system.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.system.options+="U(xcally-mixmonitor-context)"):l.system.options=l.system.options.replace("U(xcally-mixmonitor-context)",""));if(l.system.appType&&"custom"===l.system.appType);else switch((l.system.app||l.system.appType).toLowerCase()){case"set":l.system.appdata=l.system.name+"="+l.system.value;break;case"custom":break;default:e[0]=l.system.command,e[1]=l.system.variable,l.system.appdata=e.join(",")}m(l.system)},l.closeDialog=m,o.hasRole("admin")?s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_VARIABLES",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.variable.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.variables=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1012}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.variables,{id:e.resourceId})}),t=null;if(l.system&&(t=_.find(l.variables,{name:l.system.variable})),t&&!_.some(n,["id",t.id])){var a=_.find(l.variables,{id:t.id});a.canSelect=!1,n.push(a)}l.variables=n})}else{var t=[],a=null;l.system&&(a=_.find(l.variables,{name:l.system.variable}));for(var i=0;i<l.variables.length;i++)a&&l.variables[i].id===a.id&&(l.variables[i].canSelect=!1,t.push(l.variables[i]));l.variables=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETvariables",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountAppsystemDialogController",e)}(),function(){"use strict";function e(n,e,t,a,i,s,o,r){var l=this;if(l.currentUser=o.getCurrentUser(),l.errors=[],l.title="WHATSAPP.EDIT_"+(a.appType||a.app).toUpperCase(),l.tag=angular.copy(a),l.crudPermissions=r,l.hasModulePermissions={},l.tag.appdata)switch(l.tag.appType?l.tag.appType.toLowerCase():l.tag.app.toLowerCase()){case"custom":break;case"dialogflow":var d=l.tag.appdata.split(",");l.tag.key=d[0],l.tag.language=d[1],l.tag.welcomemessage=d.slice(2,d.length).join(",");break;case"dialogflowv2":d=l.tag.appdata.split(",");l.tag.projectId=d[0],l.tag.clientEmail=d[1],l.tag.privateKey=d[2],l.tag.language=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"amazonlex":d=l.tag.appdata.split(",");l.tag.accesskeyid=d[0],l.tag.secretaccesskey=d[1],l.tag.lexregion=d[2],l.tag.botname=d[3],l.tag.welcomemessage=d.slice(4,d.length).join(",");break;case"autoreply":d=l.tag.appdata.split(",");l.tag.times=isNaN(d[0])?d[0]:parseInt(d[0],10),l.tag.text=d.slice(1,d.length).join(",");break;case"message":l.tag.text=l.tag.appdata;break;case"set":l.tag.name=l.tag.appdata.split("=")[0],l.tag.value=l.tag.appdata.split("=")[1];break;case"agi":l.tag.project=l.tag.appdata;break;default:var c=l.tag.appdata.split(",");l.tag.tag=_.isEmpty(c[0])?c[0]:isNaN(c[0])?c[0]:parseInt(c[0],10)}function m(e){n.hide(e)}l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outbounddial"===l.tag.appType.toLowerCase()&&(l.tag.prefix=l.tag.phone?l.tag.phone.split("$")[0]:void 0,l.tag.callerId=l.tag.callerID?"CALLERID(all)="+l.tag.callerID:void 0),l.saveWhatsappAccountApp=function(){l.errors=[];var e=[];l.tag.type&&"outbound"===l.tag.type.toLowerCase()&&"outboundDial"===l.tag.appType&&(l.tag.phone=i.cutdigits?(l.tag.prefix||"")+"${EXTEN:"+i.cutdigits+"}":(l.tag.prefix||"")+"${EXTEN}","none"!==i.recordingFormat?l.tag.options.indexOf("U(xcally-mixmonitor-context)")<0&&(l.tag.options+="U(xcally-mixmonitor-context)"):l.tag.options=l.tag.options.replace("U(xcally-mixmonitor-context)",""));var n=_.find(l.tags,{name:l.tag.tag});n&&(l.tag.TagId=n.id);if(l.tag.appType&&"custom"===l.tag.appType);else switch((l.tag.app||l.tag.appType).toLowerCase()){case"set":l.tag.appdata=l.tag.name+"="+l.tag.value;break;case"custom":break;default:e[0]=l.tag.tag,l.tag.appdata=e.join(",")}m(l.tag)},l.closeDialog=m,o.hasRole("admin")?s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TAGS",msg:e.data?JSON.stringify(e.data):e.toString()})}):s.tag.get({fields:"id,name",sort:"name",nolimit:"true"}).$promise.then(function(e){l.tags=e.rows||[]}).then(function(){return s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,sectionId:1008}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return s.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(l.tags,{id:e.resourceId})}),t=null;if(l.tag&&(t=_.find(l.tags,{name:l.tag.tag})),t&&!_.some(n,["id",t.id])){var a=_.find(l.tags,{id:t.id});a.canSelect=!1,n.push(a)}l.tags=n})}else{var t=[],a=null;l.tag&&(a=_.find(l.tags,{name:l.tag.tag}));for(var i=0;i<l.tags.length;i++)a&&l.tags[i].id===a.id&&(l.tags[i].canSelect=!1,t.push(l.tags[i]));l.tags=t}}).catch(function(e){t.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETtags",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$mdDialog","$q","toasty","whatsappAccountApp","whatsappAccount","api","Auth","crudPermissions"],angular.module("app.whatsapp").controller("EditWhatsappAccountApptagDialogController",e)}(),function(){"use strict";function e(e,a,n,t,i,s,o,r,l,d,c){var m=this;function u(e){m.whatsappAccountInteractions=e||{count:0,rows:[]};for(var n=0;n<m.whatsappAccountInteractions.rows.length;n+=1){var t=m.whatsappAccountInteractions.rows[n];v(t),t.Owner.name=h(t)}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.whatsappInteraction.get(m.query,u).$promise}function g(e){d.whatsappInteraction.delete({id:e.id}).$promise.then(function(){_.remove(m.whatsappAccountInteractions.rows,{id:e.id}),m.whatsappAccountInteractions.count-=1,m.whatsappAccountInteractions.rows.length||p(),l.success({title:"Interaction deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETwhatsappAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETwhatsappAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}function v(e){e.Contact?e.contactName=(e.Contact.firstName||"")+" "+(e.Contact.lastName||""):e.contactName=i.instant("DASHBOARDS.UNKNOWN")}function h(e){return e.UserId?e.UserId===m.currentUser.id?i.instant("DASHBOARDS.ME"):e.Owner.fullname+" <"+e.Owner.internal+">":i.instant("DASHBOARDS.NOT_ASSIGNED")}m.currentUser=c.getCurrentUser(),m.whatsappAccount={},m.whatsappAccountInteractions={count:0,rows:[]},m.selectedWhatsappAccountInteractions=[],m.crudPermissions,m.query={read:"null",closed:"null",sort:"-createdAt",includeAll:"true",limit:10,page:1},m.init=function(e,n,t){m.whatsappAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.WhatsappAccountId=m.whatsappAccount.id,m.advancedSearch={fields:[{name:"Id",column:"id",type:"number"},{name:"Contact",column:"Contact",type:"autocomplete",options:{searchFields:["firstName","lastName","email"],route:{model:"cmContact",action:"get",params:{fields:"id,firstName,lastName,email",Contact:"@autocomplete",nolimit:!0}},extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Subject",column:"subject",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Body",column:"body",type:"text",options:{excludedOperators:["$eq","$ne"]}},{name:"Status",column:"closed",type:"select",values:[{id:0,translate:"DASHBOARDS.OPENED"},{id:1,translate:"DASHBOARDS.CLOSED"}],options:{excludedOperators:["$ne"]}},{name:"Agent",column:"User",type:"autocomplete",options:{table:"i",route:{model:"user",action:"get",params:{role:"agent",fields:"id,name,fullname",nolimit:!0}},searchFields:["fullname","name"],extraOperators:["$substring"],excludedOperators:["$ne"]}},{name:"Tags",column:"Tag",type:"multiselect",options:{route:{model:"tag",action:"get",params:{nolimit:!0}},excludedOperators:["$notIn"]}},{name:"Start Date",column:"createdAt",type:"date",options:{excludedOperators:["$ne"]}},{name:"Read",column:"unreadMessages",type:"select",values:[{id:1,translate:"DASHBOARDS.READ"},{id:0,translate:"DASHBOARDS.UNREAD"}],options:{excludedOperators:["$ne"]}}]},d.tag.get({sort:"name"}).$promise.then(function(e){m.tags=e||{count:0,rows:[]}}).then(function(){m.quickFilters=[{name:"Start Date",key:"createdAt",type:"date",label:"DASHBOARDS.SELECT_DATE"},{name:"Messages",key:"read",type:"select",label:"DASHBOARDS.SELECT_READ_UNREAD",customOptions:[{value:0,translate:"DASHBOARDS.UNREAD"},{value:1,translate:"DASHBOARDS.READ"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Status",key:"closed",type:"select",label:"DASHBOARDS.SELECT_STATUS",customOptions:[{value:0,translate:"DASHBOARDS.OPENED"},{value:1,translate:"DASHBOARDS.CLOSED"},{value:null,translate:"DASHBOARDS.ALL"}]},{name:"Agent",key:"UserId",type:"select",label:"DASHBOARDS.SELECT_AGENT",customOptions:[{value:"null",translate:"DASHBOARDS.NOT_ASSIGNED"},{value:void 0,translate:"DASHBOARDS.ALL"}]},{name:"Tag",key:"tag",type:"multiselect",label:"DASHBOARDS.SELECT_TAG",options:m.tags.rows,placeholder:"DASHBOARDS.TAGS"}]})},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the interaction?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("interaction #")+e.id||"interaction")+"</b> will be deleted.").ariaLabel("delete interaction").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.whatsappInteractionDownload=function(s,e,n){return d.whatsappInteraction.download({id:s.id,exists:!0,attachments:n}).$promise.then(function(e){var n=[e.buffer],t="interaction"+s.id,a=new Blob(n,{type:e.type});t="whatsapp-interaction"+s.id+".zip";var i=window.document.createElement("a");i.setAttribute("href",URL.createObjectURL(a)),i.setAttribute("download",t),document.body.appendChild(i),i.click()}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappAccount.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.success=u,m.getWhatsappAccountInteractions=p,m.createOrEditWhatsappAccountInteraction=function(e,n){o.show({controller:"CreateOrEditInteractionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/interactions/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappAccount:m.whatsappAccount,interaction:n,interactions:m.whatsappAccountInteractions.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.spywhatsappInteraction=function(e,t){o.show({controller:"AgentGeneralInteractionController",controllerAs:"vm",templateUrl:"app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,onShowing:function(e,n){e.vm.init({id:1,channel:"whatsapp",interaction:t,spy:!0},a.$parent.vm.setting)}})},m.openAdvancedSearch=function(){o.show({controller:"AdvancedSearchController",controllerAs:"vm",templateUrl:"app/core/dialogs/advanced-search/dialog.html",parent:angular.element(r.body),clickOutsideToClose:!1,locals:{fields:m.advancedSearch.fields,color:void 0,storagePath:"whatsapp.whatsappAccounts"},fullscreen:!0}).then(function(e){if(m.isSearchBarVisible=!(e.value||!m.query.filter),e.apply){var n="";n+="||WhatsappAccountId:=$eq["+m.whatsappAccount.id+"]",m.query.search=e.value?e.value+=n:e.value,p()}}).catch(function(e){l.error({title:"ERROR",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},m.exportSelectedWhatsappAccountInteractions=function(){var e=angular.copy(m.selectedWhatsappAccountInteractions);return m.selectedWhatsappAccountInteractions=[],e},m.deleteWhatsappAccountInteraction=g,m.deleteSelectedWhatsappAccountInteractions=function(e){var n=o.confirm().title("Are you sure want to delete the selected interactions?").htmlContent("<b>"+m.selectedWhatsappAccountInteractions.length+" selected</b> will be deleted.").ariaLabel("delete interactions").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedWhatsappAccountInteractions.forEach(function(e){g(e)}),m.selectedWhatsappAccountInteractions=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.whatsapp").controller("WhatsappAccountInteractionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u){var p=this;p.currentUser=d.getCurrentUser(),p.license=s,p.setting=o,p.passwordPattern=p.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",p.location=n.protocol()+"://"+n.host(),p.whatsappAccount=c||e.params.whatsappAccount||{},p.userProfile=m,p.userProfileSection=u&&1==u.count?u.rows[0]:null,p.crudPermissions=d.parseCrudPermissions(p.userProfileSection?p.userProfileSection.crudPermissions:null),p.hasModulePermissions={},p.selectedTab=e.params.tab||0,p.baseUrl=[{name:"US Production",url:"https://us1.whatsapp.api.sinch.com"},{name:"EU Production",url:"https://eu1.whatsapp.api.sinch.com"}],p.agentadddialog=function(e,n){t.show({controller:"WhatsappAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{whatsappAccount:e,whatsappAccounts:p.whatsappAccounts?p.whatsappAccounts.rows:[],crudPermissions:p.crudPermissions,realtime:!1}})},p.alert=l.info,p.gotoWhatsappAccounts=function(){e.go("app.whatsapp.whatsappAccounts",{},{reload:"app.whatsapp.whatsappAccounts"})},p.saveWhatsappAccount=function(){"twilio"===p.whatsappAccount.type&&(p.whatsappAccount.baseUrl=null);r.whatsappAccount.update({id:p.whatsappAccount.id},p.whatsappAccount).$promise.then(function(){l.success({title:"WhatsappAccount updated!",msg:p.whatsappAccount.name?p.whatsappAccount.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETwhatsappAccount",msg:e.data?JSON.stringify(e.data):e.toString()})})},d.hasRole("admin")?r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){p.lists=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.lists,{id:e.resourceId})}),t=null;if(p.whatsappAccount&&(t=_.find(p.lists,{id:Number(p.whatsappAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(p.lists,{id:t.id});a.canSelect=!1,n.push(a)}p.lists=n})}else{var t=[],a=null;p.whatsappAccount&&(a=_.find(p.lists,{id:Number(p.whatsappAccount.ListId)}));for(var i=0;i<p.lists.length;i++)a&&p.lists[i].id===a.id&&(p.lists[i].canSelect=!1,t.push(p.lists[i]));p.lists=t}}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),d.hasRole("admin")?r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):r.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){p.pauses=e.rows||[]}).then(function(){return r.userProfileSection.get({userProfileId:p.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return r.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(p.pauses,{id:e.resourceId})});p.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),p.pauses=n})}else p.pauses=[]}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})})}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","whatsappAccount","userProfile","userProfileSection"],angular.module("app.whatsapp").controller("WhatsappAccountController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.whatsappAccountWhatsappCannedAnswers=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=d.whatsappAccount.getAnswers(m.query,u).$promise}function g(e){d.cannedAnswer.delete({id:e.id}).$promise.then(function(){_.remove(m.whatsappAccountWhatsappCannedAnswers.rows,{id:e.id}),m.whatsappAccountWhatsappCannedAnswers.count-=1,m.whatsappAccountWhatsappCannedAnswers.rows.length||p(),l.success({title:"WhatsappCannedAnswer deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:GETwhatsappAccount"}];for(var n=0;n<e.data.errors.length;n++)l.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETwhatsappAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.whatsappAccount={},m.whatsappAccountWhatsappCannedAnswers={count:0,rows:[]},m.selectedWhatsappAccountWhatsappCannedAnswers=[],m.crudPermissions,m.query={fields:"createdAt,updatedAt,id,key,value,description",limit:10,page:1},m.init=function(e,n,t){m.whatsappAccount=e,m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.userProfile=t,m.query.WhatsappAccountId=m.whatsappAccount.id,m.query.id=m.whatsappAccount.id,p()},m.deleteConfirm=function(e,n){var t=o.confirm().title("Are you sure want to delete the whatsappCannedAnswer?").htmlContent("<b>"+(e.name||e.id&&_.upperFirst("whatsappCannedAnswer #")+e.id||"whatsappCannedAnswer")+"</b> will be deleted.").ariaLabel("delete whatsappCannedAnswer").targetEvent(n).ok("OK").cancel("CANCEL");o.show(t).then(function(){g(e)},function(){console.log("CANCEL")})},m.success=u,m.getWhatsappAccountWhatsappCannedAnswers=p,m.createOrEditWhatsappAccountWhatsappCannedAnswer=function(e,n){o.show({controller:"CreateOrEditWhatsappCannedAnswerDialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/whatsappCannedAnswers/dialog.html",parent:angular.element(r.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappAccount:m.whatsappAccount,whatsappCannedAnswer:n,whatsappCannedAnswers:m.whatsappAccountWhatsappCannedAnswers.rows,license:null,setting:null,crudPermissions:m.crudPermissions}})},m.exportSelectedWhatsappAccountWhatsappCannedAnswers=function(){var e=angular.copy(m.selectedWhatsappAccountWhatsappCannedAnswers);return m.selectedWhatsappAccountWhatsappCannedAnswers=[],e},m.deleteWhatsappAccountWhatsappCannedAnswer=g,m.deleteSelectedWhatsappAccountWhatsappCannedAnswers=function(e){var n=o.confirm().title("Are you sure want to delete the selected whatsappCannedAnswers?").htmlContent("<b>"+m.selectedWhatsappAccountWhatsappCannedAnswers.length+" selected</b> will be deleted.").ariaLabel("delete whatsappCannedAnswers").targetEvent(e).ok("OK").cancel("CANCEL");o.show(n).then(function(){m.selectedWhatsappAccountWhatsappCannedAnswers.forEach(function(e){g(e)}),m.selectedWhatsappAccountWhatsappCannedAnswers=[]})}}e.$inject=["$cookies","$scope","$state","$q","$translate","$timeout","$mdDialog","$document","toasty","api","Auth"],angular.module("app.whatsapp").controller("WhatsappAccountWhatsappCannedAnswersController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="WHATSAPP.EDIT_WHATSAPPCANNEDANSWER",g.whatsappCannedAnswer=angular.copy(l),g.whatsappCannedAnswers=r,g.newWhatsappCannedAnswer=!1,g.whatsappCannedAnswer||(g.whatsappCannedAnswer={},g.title="WHATSAPP.NEW_WHATSAPPCANNEDANSWER",g.newWhatsappCannedAnswer=!0),n.params.id&&(g.whatsappCannedAnswer.WhatsappAccountId=n.params.id),g.addNewWhatsappCannedAnswer=function(){g.errors=[],d.cannedAnswer.save(g.whatsappCannedAnswer).$promise.then(function(e){g.whatsappCannedAnswers.unshift(e.toJSON()),o.success({title:"WhatsappCannedAnswer properly created",msg:g.whatsappCannedAnswer.name?g.whatsappCannedAnswer.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveWhatsappCannedAnswer=function(){g.errors=[],d.cannedAnswer.update({id:g.whatsappCannedAnswer.id},g.whatsappCannedAnswer).$promise.then(function(e){var n=_.find(g.whatsappCannedAnswers,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"WhatsappCannedAnswer properly saved!",msg:g.whatsappCannedAnswer.name?g.whatsappCannedAnswer.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteWhatsappCannedAnswer=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The whatsappCannedAnswer will be deleted.").ariaLabel("Delete WhatsappCannedAnswer").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.cannedAnswer.delete({id:g.whatsappCannedAnswer.id}).$promise.then(function(){_.remove(g.whatsappCannedAnswers,{id:g.whatsappCannedAnswer.id}),o.success({title:"WhatsappCannedAnswer properly deleted!",msg:(g.whatsappCannedAnswer.name||"whatsappCannedAnswer")+" has been deleted!"}),v(g.whatsappCannedAnswer)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.cannedAnswer.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.cannedAnswer.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","whatsappCannedAnswers","whatsappCannedAnswer","api","Auth","license","setting","crudPermissions"],angular.module("app.whatsapp").controller("CreateOrEditWhatsappCannedAnswerDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c){var m=this;function u(e){m.dispositions=e||{count:0,rows:[]}}function p(){m.query.offset=(m.query.page-1)*m.query.limit,m.promise=l.whatsappAccount.getDispositions(m.query,u).$promise}function g(e){l.disposition.delete({id:e.id}).$promise.then(function(){p(),d.success({title:r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETED_SUCCESS_TITLE")})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){m.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEdisposition"}];for(var n=0;n<e.data.errors.length;n++)d.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEdisposition",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}m.currentUser=c.getCurrentUser(),m.dispositions={count:0,rows:[]},m.selectedDispositions=[],m.crudPermissions,m.levels={first:"1st",second:"2nd",third:"3rd"},m.query={fields:"id,level,name,description,ParentId,createdAt,updatedAt",sort:"-updatedAt",limit:10,page:1},m.init=function(e,n){m.whatsappAccount=e||{},m.crudPermissions=void 0!==n?n:{readOnly:!0,canEdit:!1,canDelete:!1},m.query.WhatsappAccountId=m.whatsappAccount.id,m.query.id=m.whatsappAccount.id,p()},m.deleteConfirm=function(e,n){var t=_.some(m.dispositions.rows,["ParentId",e.id]),a=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITION_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS."+(t?"DISPOSITION_DELETE_MESSAGE_CHILDREN":"DISPOSITION_DELETE_MESSAGE"),{name:e.name})).ariaLabel("Delete disposition").targetEvent(n).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(a).then(function(){g(e)})},m.success=u,m.getDispositions=p,m.createOrEditDisposition=function(e,n){i.show({controller:"CreateOrEditDispositionDialogController",controllerAs:"vm",templateUrl:"app/main/apps/tools/views/dispositions/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{disposition:n,model:{id:m.whatsappAccount.id,field:"WhatsappAccountId",route:"whatsappAccount"},license:null,setting:null,crudPermissions:m.crudPermissions}}).then(function(e){e&&p()})},m.deleteDisposition=g,m.exportSelectedDispositions=function(){var e=angular.copy(m.selectedDispositions);return m.selectedDispositions=[],e},m.deleteSelectedDispositions=function(e){var n=i.confirm().title(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_TITLE")).content(r.instant("TOOLS.NOTIFICATIONS.DISPOSITIONS_DELETE_MESSAGE",{total:m.selectedDispositions.length})).ariaLabel("Delete dispositions").targetEvent(e).ok("OK").cancel(r.instant("TOOLS.CANCEL"));i.show(n).then(function(){m.selectedDispositions.forEach(function(e){g(e)}),m.selectedDispositions=[]})},m.deselectDispositions=function(){m.selectedDispositions=[]},m.selectAllDispositions=function(){m.selectedDispositions=m.dispositions.rows};var v=!0,h=1;e.$watch("vm_dc.query.filter",function(e,n){v?o(function(){v=!1}):(n||(h=m.query.page),e!==n&&(m.query.page=1),e||(m.query.page=h),p())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","api","toasty","Auth"],angular.module("app.whatsapp").controller("WhatsappAccountDispositionsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.whatsappAccounts=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="whatsappAccounts",f.listOrder="",f.listOrderAsc=null,f.selectedWhatsappAccounts=[],f.query={fields:"createdAt,updatedAt,id,name,key,ListId,remote,token,type,accountSid,authToken,phone,receiveUrl,deliveryReportUrl,notificationShake,notificationSound,notificationTemplate,queueTransfer,queueTransferTimeout,waitForTheAssignedAgent,mandatoryDisposition,mandatoryDispositionPauseId,agentTransfer,agentTransferTimeout,description,baseUrl",sort:"-updatedAt",limit:10,page:1},f.arraytype=_.keyBy([{option:"Twilio",value:"'twilio'"},{option:"Sinch",value:"'sinch'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.whatsapp.whatsappAccounts.edit",{id:e.id,whatsappAccount:e,crudPermissions:f.crudPermissions})},f.interactionsgoto=function(e,n){t.go("app.whatsapp.whatsappAccounts.edit",{id:e.id,tab:5})},f.agentadddialog=function(e,n){i.show({controller:"WhatsappAccountagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{whatsappAccount:e,whatsappAccounts:f.whatsappAccounts?f.whatsappAccounts.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("whatsappAccount")+"?").htmlContent("<b>"+(e.name||"whatsappAccount")+"</b> will be deleted.").ariaLabel("delete whatsappAccount").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.success=E,f.getWhatsappAccounts=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.whatsappAccount.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="WhatsappAccounts",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditWhatsappAccount=function(e,n){i.show({controller:"CreateOrEditWhatsappAccountDialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappAccounts/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappAccount:n,whatsappAccounts:f.whatsappAccounts.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteWhatsappAccount=y,f.exportSelectedWhatsappAccounts=function(){var e=angular.copy(f.selectedWhatsappAccounts);return f.selectedWhatsappAccounts=[],e},f.deleteSelectedWhatsappAccounts=function(e){var n=i.confirm().title("Are you sure want to delete the selected whatsappAccounts?").htmlContent("<b>"+f.selectedWhatsappAccounts.length+" selected</b> will be deleted.").ariaLabel("delete WhatsappAccounts").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedWhatsappAccounts.forEach(function(e){y(e)}),f.selectedWhatsappAccounts=[]})},f.deselectWhatsappAccounts=function(){f.selectedWhatsappAccounts=[]},f.selectAllWhatsappAccounts=function(){f.selectedWhatsappAccounts=f.whatsappAccounts.rows},g.hasRole("admin")?m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_LISTS",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.cmList.get({fields:"id,name",sort:"name"}).$promise.then(function(e){f.lists=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:301}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.lists,{id:e.resourceId})}),t=null;if(f.whatsappAccount&&(t=_.find(f.lists,{id:Number(f.whatsappAccount.ListId)})),t&&!_.some(n,["id",t.id])){var a=_.find(f.lists,{id:t.id});a.canSelect=!1,n.push(a)}f.lists=n})}else{var t=[],a=null;f.whatsappAccount&&(a=_.find(f.lists,{id:Number(f.whatsappAccount.ListId)}));for(var i=0;i<f.lists.length;i++)a&&f.lists[i].id===a.id&&(f.lists[i].canSelect=!1,t.push(f.lists[i]));f.lists=t}}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETlists",msg:e.data?JSON.stringify(e.data):e.toString()})}),g.hasRole("admin")?m.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){f.pauses=e.rows||[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_PAUSES",msg:e.data?JSON.stringify(e.data):e.toString()})}):m.pause.get({fields:"name,id",sort:"name",nolimit:"true"}).$promise.then(function(e){f.pauses=e.rows||[]}).then(function(){return m.userProfileSection.get({userProfileId:f.currentUser.userProfileId,sectionId:1005}).$promise}).then(function(e){var n=e&&e.rows?e.rows[0]:null;if(n){if(!n.autoAssociation)return m.userProfileResource.get({sectionId:n.id}).$promise.then(function(e){var n=_.map(e.rows,function(e){return _.find(f.pauses,{id:e.resourceId})});f.pauses.forEach(function(e){_.some(n,["id",e.id])||(e.canSelect=!1),n.push(e)}),f.pauses=n})}else f.pauses=[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETpauses",msg:e.data?JSON.stringify(e.data):e.toString()})});var b=!0,A=1;function E(e){f.whatsappAccounts=e||{count:0,rows:[]}}function y(e){m.whatsappAccount.delete({id:e.id}).$promise.then(function(){_.remove(f.whatsappAccounts.rows,{id:e.id}),f.whatsappAccounts.count-=1,f.whatsappAccounts.rows.length||f.getWhatsappAccounts(),p.success({title:_.startCase("WhatsappAccount")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEwhatsappAccount"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEwhatsappAccount",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getWhatsappAccounts())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","whatsappAccounts","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.whatsapp").controller("WhatsappAccountsController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p){var g=this;function v(e){a.hide(e)}g.currentUser=c.getCurrentUser(),g.errors=[],g.setting=u,g.license=m,g.crudPermissions=p,g.hasModulePermissions={},g.passwordPattern=g.setting&&g.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",g.title="WHATSAPP.EDIT_WHATSAPPQUEUE",g.whatsappQueue=angular.copy(l),g.whatsappQueues=r,g.newWhatsappQueue=!1,g.whatsappQueue||(g.whatsappQueue={strategy:"beepall",timeout:10},g.title="WHATSAPP.NEW_WHATSAPPQUEUE",g.newWhatsappQueue=!0),g.addNewWhatsappQueue=function(){g.errors=[],d.whatsappQueue.save(g.whatsappQueue).$promise.then(function(e){g.whatsappQueues.unshift(e.toJSON()),o.success({title:"WhatsappQueue properly created",msg:g.whatsappQueue.name?g.whatsappQueue.name+" has been created!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.whatsappQueue.save"}];for(var n=0;n<e.data.errors.length;n+=1)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappQueue.save",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.saveWhatsappQueue=function(){g.errors=[],d.whatsappQueue.update({id:g.whatsappQueue.id},g.whatsappQueue).$promise.then(function(e){var n=_.find(g.whatsappQueues,{id:e.id});n&&_.merge(n,e.toJSON()),o.success({title:"WhatsappQueue properly saved!",msg:g.whatsappQueue.name?g.whatsappQueue.name+" has been saved!":""}),v(e)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.whatsappQueue.update"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},g.deleteWhatsappQueue=function(e){g.errors=[];var n=a.confirm().title("Are you sure?").content("The whatsappQueue will be deleted.").ariaLabel("Delete WhatsappQueue").ok("Delete").cancel("Cancel").targetEvent(e);a.show(n).then(function(){d.whatsappQueue.delete({id:g.whatsappQueue.id}).$promise.then(function(){_.remove(g.whatsappQueues,{id:g.whatsappQueue.id}),o.success({title:"WhatsappQueue properly deleted!",msg:(g.whatsappQueue.name||"whatsappQueue")+" has been deleted!"}),v(g.whatsappQueue)}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){g.errors=e.data.errors||[{message:e.toString(),type:"api.whatsappQueue.delete"}];for(var n=0;n<e.data.errors.length;n++)o.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else o.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.whatsappQueue.delete",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})},function(){})},g.getDateFromString=function(e){return null===e?void 0:new Date(e)},g.closeDialog=v}e.$inject=["$scope","$state","$location","$mdDialog","$q","$translate","toasty","whatsappQueues","whatsappQueue","api","Auth","license","setting","crudPermissions"],angular.module("app.whatsapp").controller("CreateOrEditWhatsappQueueDialogController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r,l,d){var c=this;function m(){return a(function(t,n){return a(function(n,t){return s.user.get({fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return c.items=e.rows?e.rows:[],l.hasRole("admin")?e:c.section?c.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:c.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return c.allowedItems=_.map(n,function(e){return _.find(c.items,{id:l.hasRole("admin")||c.section.autoAssociation?e.id:e.resourceId})}),c.startingAllowedItems=angular.copy(c.allowedItems),c.items.forEach(function(e){var n=_.find(c.allowedItems,{id:e.id});l.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.whatsappQueue.getAgents({id:c.whatsappQueue.id,fields:"id,name,internal,fullname",nolimit:!0,role:"agent"}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];c.selectedItems=_.map(n,function(e){var n=_.find(c.items,{id:e.id});return n.penalty=e.UserWhatsappQueue?"penalty "+e.UserWhatsappQueue.penalty:"",n.internal=e.hasOwnProperty("internal")?"<"+e.internal+">":"",n}),c.startingSelectedItems=angular.copy(c.selectedItems),c.dualMultiselectOptions.selectedItems=c.selectedItems,c.dualMultiselectOptions.items=_.differenceBy(c.allowedItems,c.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}c.currentUser=l.getCurrentUser(),c.whatsappQueue=n,c.crudPermissions=d,c.realtime=o,c.items=[],c.allowedItems=[],c.selectedItems=[],c.startingAllowedItems=[],c.startingSelectedItems=[],c.pendingChanges=!1,c.onInit=function(){return l.hasRole("admin")?m().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:c.currentUser.userProfileId,name:"Agents"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return c.section=e,m()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_AGENTS",msg:e.status?JSON.stringify(e.data):e.toString()})})},c.saveAgents=function(){var e=_.differenceBy(c.startingSelectedItems,c.selectedItems,"id"),n=_.differenceBy(c.selectedItems,c.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.whatsappQueue.removeAgents({id:c.whatsappQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.whatsappQueue.addAgents({id:c.whatsappQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){c.pendingChanges=!1,c.startingAllowedItems=angular.copy(c.allowedItems),c.startingSelectedItems=angular.copy(c.selectedItems),i.success({title:"SUCCESS",msg:"Agents association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},c.closeDialog=function(){e.hide()},c.dualMultiselectOptions={items:[],selectedItems:[],orderBy:"name",line1:"fullname",line2:["name","internal"],line3:"",labelAll:r.instant("WHATSAPP.ALL_AGENTS"),labelSelected:r.instant("WHATSAPP.SELECTED_AGENTS"),transferCallback:function(e,n){var t=_.xorBy(c.startingSelectedItems,c.selectedItems,"id");c.pendingChanges=!_.isEmpty(t)}}}e.$inject=["$mdDialog","$q","toasty","api","whatsappQueue","whatsappQueues","realtime","$translate","Auth","crudPermissions"],angular.module("app.whatsapp").controller("WhatsappQueueagentaddController",e)}(),function(){"use strict";function e(e,a,i,s,n,t,o,r){var l=this;function d(){return a(function(t,n){return a(function(n,t){return s.team.get({fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}).then(function(e){return l.items=e.rows?e.rows:[],o.hasRole("admin")?e:l.section?l.section.autoAssociation?e:a(function(n,t){return s.userProfileResource.get({sectionId:l.section.id,nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})}):null}).then(function(e){var n=e&&e.rows?e.rows:[];return l.allowedItems=_.map(n,function(e){return _.find(l.items,{id:o.hasRole("admin")||l.section.autoAssociation?e.id:e.resourceId})}),l.items.forEach(function(e){var n=_.find(l.allowedItems,{id:e.id});o.hasRole("admin")?e.isValid=!0:e.isValid=void 0!==n}),a(function(n,t){return s.whatsappQueue.getTeams({id:l.whatsappQueue.id,fields:"id,name",nolimit:!0}).$promise.then(function(e){n(e)}).catch(function(e){t(e)})})}).then(function(e){var n=e&&e.rows?e.rows:[];l.selectedItems=_.map(n,function(e){var n=_.find(l.items,{id:e.id});return n.penalty=e.TeamVoiceQueue?"penalty "+e.TeamVoiceQueue.penalty:"",n}),l.startingSelectedItems=angular.copy(l.selectedItems),l.dualMultiselectOptions.selectedItems=l.selectedItems,l.dualMultiselectOptions.items=_.differenceBy(l.allowedItems,l.dualMultiselectOptions.selectedItems,"id"),t()}).catch(function(e){n(e)})})}l.currentUser=o.getCurrentUser(),l.whatsappQueue=n,l.crudPermissions=r,l.items=[],l.allowedItems=[],l.selectedItems=[],l.startingAllowedItems=[],l.startingSelectedItems=[],l.pendingChanges=!1,l.dualMultiselectOptions={allowedItems:[],selectedItems:[],orderBy:"name",line1:"name",line2:"",line3:"",labelAll:t.instant("WHATSAPP.ALL_TEAMS"),labelSelected:t.instant("WHATSAPP.SELECTED_TEAMS"),transferCallback:function(e,n){var t=_.xorBy(l.startingSelectedItems,l.selectedItems,"id");l.pendingChanges=!_.isEmpty(t)}},l.onInit=function(){return o.hasRole("admin")?d().catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})}):a(function(t,n){s.userProfileSection.get({userProfileId:l.currentUser.userProfileId,name:"Teams"}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;t(n)}).catch(function(e){n(e)})}).then(function(e){return l.section=e,d()}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GET_TEAMS",msg:e.status?JSON.stringify(e.data):e.toString()})})},l.saveTeams=function(){var e=_.differenceBy(l.startingSelectedItems,l.selectedItems,"id"),n=_.differenceBy(l.selectedItems,l.startingSelectedItems,"id");return(t=e,a(function(e,n){_.isEmpty(t)?e():s.whatsappQueue.removeTeams({id:l.whatsappQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})})).then(function(){return t=n,a(function(e,n){_.isEmpty(t)?e():s.whatsappQueue.addTeams({id:l.whatsappQueue.id,ids:_.map(t,"id")}).$promise.then(function(){e()}).catch(function(e){n(e)})});var t}).then(function(){l.pendingChanges=!1,l.startingAllowedItems=angular.copy(l.allowedItems),l.startingSelectedItems=angular.copy(l.selectedItems),i.success({title:"SUCCESS",msg:"Teams association has been updated!"})}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:LISTS_ASSOCIATION",msg:e.status?JSON.stringify(e.data):e.toString()})});var t},l.closeDialog=function(){e.hide()}}e.$inject=["$mdDialog","$q","toasty","api","whatsappQueue","$translate","Auth","crudPermissions"],angular.module("app.whatsapp").controller("WhatsappQueueteamaddController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;u.currentUser=d.getCurrentUser(),u.license=s,u.setting=o,u.passwordPattern=u.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",u.location=n.protocol()+"://"+n.host(),u.whatsappQueue=c||e.params.whatsappQueue||{},u.userProfileSection=m&&1==m.count?m.rows[0]:null,u.crudPermissions=d.parseCrudPermissions(u.userProfileSection?u.userProfileSection.crudPermissions:null),u.hasModulePermissions={},u.selectedTab=e.params.tab||0,u.teamadddialog=function(e,n){t.show({controller:"WhatsappQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/edit/teamadd/teamadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{whatsappQueue:e,whatsappQueues:u.whatsappQueues?u.whatsappQueues.rows:[],crudPermissions:u.crudPermissions}})},u.agentadddialog=function(e,n){t.show({controller:"WhatsappQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/edit/agentadd/agentadd.html",parent:angular.element(a.body),targetEvent:n,clickOutsideToClose:!0,locals:{whatsappQueue:e,whatsappQueues:u.whatsappQueues?u.whatsappQueues.rows:[],crudPermissions:u.crudPermissions,realtime:!1}})},u.alert=l.info,u.gotoWhatsappQueues=function(){e.go("app.whatsapp.whatsappQueues",{},{reload:"app.whatsapp.whatsappQueues"})},u.saveWhatsappQueue=function(){r.whatsappQueue.update({id:u.whatsappQueue.id},u.whatsappQueue).$promise.then(function(){l.success({title:"WhatsappQueue updated!",msg:u.whatsappQueue.name?u.whatsappQueue.name+" has been updated!":""})}).catch(function(e){l.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETwhatsappQueue",msg:e.data?JSON.stringify(e.data):e.toString()})})}}e.$inject=["$state","$location","$mdDialog","$document","$translate","license","setting","api","toasty","Auth","whatsappQueue","userProfileSection"],angular.module("app.whatsapp").controller("WhatsappQueueController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h){var f=this;f.license=v,f.setting=h,f.currentUser=g.getCurrentUser(),f.whatsappQueues=l||{count:0,rows:[]},f.userProfile=d,f.userProfileSection=c&&1==c.count?c.rows[0]:null,f.crudPermissions=g.parseCrudPermissions(f.userProfileSection?f.userProfileSection.crudPermissions:null),f.table="whatsappQueues",f.listOrder="",f.listOrderAsc=null,f.selectedWhatsappQueues=[],f.query={fields:"createdAt,updatedAt,id,name,strategy,timeout,description",sort:"-updatedAt",channel:"whatsapp",limit:10,page:1},f.arraystrategy=_.keyBy([{option:"Beepall",value:"'beepall'"},{option:"RR Memory",value:"'rrmemory'"}],function(e){return _.replace(e.value,new RegExp("'","g"),"")}),f.editstate=function(e,n){t.go("app.whatsapp.whatsappQueues.edit",{id:e.id,whatsappQueue:e,crudPermissions:f.crudPermissions})},f.teamadddialog=function(e,n){i.show({controller:"WhatsappQueueteamaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/edit/teamadd/teamadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{whatsappQueue:e,whatsappQueues:f.whatsappQueues?f.whatsappQueues.rows:[],crudPermissions:f.crudPermissions}})},f.agentadddialog=function(e,n){i.show({controller:"WhatsappQueueagentaddController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/edit/agentadd/agentadd.html",parent:angular.element(s.body),targetEvent:n,clickOutsideToClose:!0,locals:{whatsappQueue:e,whatsappQueues:f.whatsappQueues?f.whatsappQueues.rows:[],crudPermissions:f.crudPermissions,realtime:!1}})},f.deleteconfirm=function(e,n){var t=i.confirm().title("Are you sure want to delete the "+_.startCase("whatsappQueue")+"?").htmlContent("<b>"+(e.name||"whatsappQueue")+"</b> will be deleted.").ariaLabel("delete whatsappQueue").targetEvent(n).ok("OK").cancel("CANCEL");i.show(t).then(function(){y(e)},function(){console.log("CANCEL")})},f.gotorealtimegoto=function(e,n){{if(!g.hasRole("admin"))return m.userProfileSection.get({userProfileId:g.getCurrentUser().userProfileId,sectionId:2110}).$promise.then(function(e){var n=e&&e.rows?e.rows[0]:null;n&&n.enabled?t.go("app.whatsapp.realtime.queues",{}):p.info({title:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_TITLE"),msg:r.instant("STAFF.PERMISSIONS_UNAUTHORIZED_REDIRECT_MESSAGE")})}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"USERPROFILE:GET_SECTION",msg:e.status?JSON.stringify(e.data):e.toString()})});t.go("app.whatsapp.realtime.queues",{})}},f.success=E,f.getWhatsappQueues=function(){f.query.offset=(f.query.page-1)*f.query.limit,g.hasRole("admin")?f.promise=m.whatsappQueue.get(f.query,E).$promise:(f.query.id=f.userProfile.id,f.query.section="WhatsappQueues",f.promise=m.userProfile.getResources(f.query,E).$promise)},f.createOrEditWhatsappQueue=function(e,n){i.show({controller:"CreateOrEditWhatsappQueueDialogController",controllerAs:"vm",templateUrl:"app/main/apps/whatsapp/views/whatsappQueues/create/dialog.html",parent:angular.element(s.body),targetEvent:e,clickOutsideToClose:!0,locals:{whatsappQueue:n,whatsappQueues:f.whatsappQueues.rows,license:f.license,setting:f.setting,crudPermissions:f.crudPermissions}})},f.deleteWhatsappQueue=y,f.exportSelectedWhatsappQueues=function(){var e=angular.copy(f.selectedWhatsappQueues);return f.selectedWhatsappQueues=[],e},f.deleteSelectedWhatsappQueues=function(e){var n=i.confirm().title("Are you sure want to delete the selected whatsappQueues?").htmlContent("<b>"+f.selectedWhatsappQueues.length+" selected</b> will be deleted.").ariaLabel("delete WhatsappQueues").targetEvent(e).ok("OK").cancel("CANCEL");i.show(n).then(function(){f.selectedWhatsappQueues.forEach(function(e){y(e)}),f.selectedWhatsappQueues=[]})},f.deselectWhatsappQueues=function(){f.selectedWhatsappQueues=[]},f.selectAllWhatsappQueues=function(){f.selectedWhatsappQueues=f.whatsappQueues.rows};var b=!0,A=1;function E(e){f.whatsappQueues=e||{count:0,rows:[]}}function y(e){m.whatsappQueue.delete({id:e.id}).$promise.then(function(){_.remove(f.whatsappQueues.rows,{id:e.id}),f.whatsappQueues.count-=1,f.whatsappQueues.rows.length||f.getWhatsappQueues(),p.success({title:_.startCase("WhatsappQueue")+" deleted!",msg:e.name?e.name+" has been deleted!":""})}).catch(function(e){if(e.data&&e.data.errors&&e.data.errors.length){f.errors=e.data.errors||[{message:e.toString(),type:"SYSTEM:DELETEwhatsappQueue"}];for(var n=0;n<e.data.errors.length;n++)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:DELETEwhatsappQueue",msg:e.data?JSON.stringify(e.data.message):e.message||e.toString()})})}e.$watch("vm.query.filter",function(e,n){b?o(function(){b=!1}):(n||(A=f.query.page),e!==n&&(f.query.page=1),e||(f.query.page=A),f.getWhatsappQueues())})}e.$inject=["$scope","$window","$state","$mdSidenav","$mdDialog","$document","$timeout","$translate","whatsappQueues","userProfile","userProfileSection","api","msUtils","toasty","Auth","license","setting"],angular.module("app.whatsapp").controller("WhatsappQueuesController",e)}(),function(){"use strict";function e(n,t,e,s,a,i,o,r,l,d,c){var m=this;function u(e,n){return{id:e,title:n.name||"NONAME",state:"app.dashboards.custom",stateParams:n,weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(e)&&!o.hasRole("admin")}}}function p(e,n){return{id:e,title:n.name||"NONAME",state:"app.plugins.plugin",stateParams:n,weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(e)&&!o.hasRole("admin")}}}function g(e,n){var t={user:_.pick(o.getCurrentUser(),["id","name","fullname","email","role","internal","interface"])};n.agentUrl=Mustache.render(n.agentUrl,t),a.saveItem("apps.home.plugin_"+e,{id:e,title:n.name,translate:n.name,state:"plugin_"+n.id,stateParams:n,view:"plugin",icon:n.icon,weight:12,hidden:function(){return!o.hasPermission(e)}})}function v(e){return _.map(e.children,function(e){return e.id})}i.clear(),m.isAgent=function(){return o.getCurrentUser()&&o.hasRole("agent")},s.saveItem("apps",{title:"APPS",group:!0,weight:1,hidden:function(){return o.hasRole("agent")}}),l.version.get().$promise.then(function(e){m.version=e&&e.current?e.current:"UNKNOWN"}).catch(function(e){m.version="UNKNOWN"}).finally(function(){s.saveItem("version",{title:"VERSION "+m.version,group:!0,weight:2,hidden:function(){return o.hasRole("agent")}})}),o.isLoggedIn()&&(r.gray&&i.warning({msg:e.instant("DASHBOARDS.LICENSE_EXPIRE_REMAINING_DAYS"),showClose:!0,timeout:!1}),l.dashboard.get().$promise.then(function(e){for(var n=0,t=0;t<e.rows.length;t+=1)n=99999+e.rows[t].id,s.saveItem("apps.dashboards.custom_"+n,u(n,e.rows[t]))}),l.plugin.get({active:!0}).$promise.then(function(e){var n=0;if(e.count){var t=_.filter(e.rows,function(e){return"never"!=e.sidebar&&"agentOnly"!=e.sidebar});if(0<t.length){s.saveItem("apps.plugins",{id:1900,title:"Plugins",translate:"PLUGINS.PLUGINS",icon:"icon-apps",permissions:{hidden:!0},weight:17,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}});for(var a=0;a<t.length;a+=1)n=88888+t[a].id,s.saveItem("apps.plugins.plugin_"+n,p(n,t[a]));s.sort()}var i=_.filter(e.rows,function(e){return"never"!=e.sidebar&&"adminOnly"!=e.sidebar});if(0<i.length)for(a=0;a<i.length;a+=1)g(n=88888+i[a].id,i[a])}})),r.custom&&!d.defaultPageTitle&&d.pageTitle&&angular.element("#pageTitle").html(d.pageTitle),s.saveItem("apps.dashboards",{id:100,title:"Dashboards",translate:"DASHBOARDS.DASHBOARDS",icon:"icon-tile-four",weight:2,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.dashboards.general",{id:101,title:"General",route:"",translate:"DASHBOARDS.GENERAL",state:"app.dashboards.general",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(101)&&!o.hasRole("admin")}}),s.saveItem("apps.staff",{id:200,title:"Staff",translate:"STAFF.STAFF",icon:"icon-account-multiple",weight:3,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.staff.users",{id:201,title:"Users",route:"user",translate:"STAFF.USERS",state:"app.staff.users",permissions:{hidden:!0},weight:1,hidden:function(){return o.hasRole("agent")||o.hasRole("user")||!o.hasPermission(201)&&!o.hasRole("admin")}}),s.saveItem("apps.staff.agents",{id:202,title:"Agents",route:"user",translate:"STAFF.AGENTS",state:"app.staff.agents",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(202)&&!o.hasRole("admin")}}),s.saveItem("apps.staff.telephones",{id:203,title:"Telephones",route:"user",translate:"STAFF.TELEPHONES",state:"app.staff.telephones",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(203)&&!o.hasRole("admin")}}),s.saveItem("apps.staff.teams",{id:204,title:"Teams",route:"team",translate:"STAFF.TEAMS",state:"app.staff.teams",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(204)&&!o.hasRole("admin")}}),s.saveItem("apps.staff.userProfiles",{id:205,title:"UserProfiles",route:"userProfile",translate:"STAFF.USERPROFILES",state:"app.staff.userProfiles",permissions:{hidden:!0},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(205)&&!o.hasRole("admin")}}),s.saveItem("apps.contactmanager",{id:300,title:"ContactManager",translate:"CONTACTMANAGER.CONTACTMANAGER",icon:"icon-account-circle",license:"cm",weight:4,hidden:function(){return!r.cm||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.contactmanager.lists",{id:301,title:"Lists",route:"cmList",translate:"CONTACTMANAGER.LISTS",state:"app.contactmanager.lists",weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(301)&&!o.hasRole("admin")}}),s.saveItem("apps.contactmanager.companies",{id:302,title:"Companies",route:"cmCompany",translate:"CONTACTMANAGER.COMPANIES",state:"app.contactmanager.companies",weight:3,hidden:function(){return o.hasRole("agent")||!o.hasPermission(302)&&!o.hasRole("admin")}}),s.saveItem("apps.contactmanager.globalCustomFields",{id:304,title:"GlobalCustomFields",route:"cmCustomField",translate:"CONTACTMANAGER.GLOBALCUSTOMFIELDS",state:"app.contactmanager.globalCustomFields",permissions:{association:!1},weight:4,hidden:function(){return o.hasRole("agent")||!o.hasPermission(304)&&!o.hasRole("admin")}}),s.saveItem("apps.contactmanager.contacts",{id:303,title:"Contacts",route:"",translate:"CONTACTMANAGER.CONTACTS",state:"app.contactmanager.contacts",permissions:{association:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(303)&&!o.hasRole("admin")}}),s.saveItem("apps.voice",{id:400,title:"Voice",translate:"VOICE.VOICE",icon:"icon-phone",license:"voice",weight:5,hidden:function(){return!r.voice||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.voice.voiceQueues",{id:401,title:"VoiceQueues",route:"voiceQueue",channel:"voice",translate:"VOICE.VOICEQUEUES",state:"app.voice.voiceQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(401)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.contexts",{id:405,title:"Contexts",route:"voiceContext",translate:"VOICE.CONTEXTS",state:"app.voice.contexts",weight:5,hidden:function(){return o.hasRole("agent")||!o.hasPermission(405)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.voicemails",{id:406,title:"Voicemails",route:"voiceMail",translate:"VOICE.VOICEMAILS",state:"app.voice.voicemails",weight:6,hidden:function(){return o.hasRole("agent")||!o.hasPermission(406)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.musiconholds",{id:407,title:"MusicOnHolds",route:"voiceMusicOnHold",translate:"VOICE.MUSICONHOLDS",state:"app.voice.musiconholds",weight:7,hidden:function(){return o.hasRole("agent")||!o.hasPermission(407)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.voiceRecordings",{id:408,title:"VoiceRecordings",route:"voiceRecording",translate:"VOICE.VOICERECORDINGS",state:"app.voice.voiceRecordings",permissions:{association:!1,loading:!0},weight:8,hidden:function(){return o.hasRole("agent")||!o.hasPermission(408)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.chanSpies",{id:409,title:"ChanSpies",route:"voiceChanSpy",translate:"VOICE.CHANSPIES",state:"app.voice.chanSpies",weight:9,hidden:function(){return o.hasRole("agent")||!o.hasPermission(409)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.voicePrefixes",{id:410,title:"VoicePrefixes",route:"voicePrefix",translate:"VOICE.VOICEPREFIXES",state:"app.voice.voicePrefixes",weight:10,hidden:function(){return o.hasRole("agent")||!o.hasPermission(410)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.inboundRoutes",{id:402,title:"InboundRoutes",route:"voiceExtension",translate:"VOICE.INBOUNDROUTES",state:"app.voice.inboundRoutes",weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(402)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.outboundRoutes",{id:403,title:"OutboundRoutes",route:"voiceExtension",translate:"VOICE.OUTBOUNDROUTES",state:"app.voice.outboundRoutes",weight:3,hidden:function(){return o.hasRole("agent")||!o.hasPermission(403)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.internalRoutes",{id:404,title:"InternalRoutes",route:"voiceExtension",translate:"VOICE.INTERNALROUTES",state:"app.voice.internalRoutes",weight:4,hidden:function(){return o.hasRole("agent")||!o.hasPermission(404)&&!o.hasRole("admin")}}),s.saveItem("apps.voice.realtime",{id:411,title:"Realtime",route:"",translate:"VOICE.REALTIME",state:"app.voice.realtime",permissions:{association:!1,crud:!1},weight:11,hidden:function(){return o.hasRole("agent")||!o.hasPermission(411)&&!o.hasRole("admin")}}),s.saveItem("apps.chat",{id:500,title:"Chat",translate:"CHAT.CHAT",icon:"icon-hangouts",license:"chat",weight:6,hidden:function(){return!r.chat||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.chat.chatQueues",{id:501,title:"ChatQueues",route:"chatQueue",channel:"chat",translate:"CHAT.CHATQUEUES",state:"app.chat.chatQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(501)&&!o.hasRole("admin")}}),s.saveItem("apps.chat.chatWebsites",{id:502,title:"ChatWebsites",route:"chatWebsite",channel:"chat",translate:"CHAT.CHATWEBSITES",state:"app.chat.chatWebsites",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(502)&&!o.hasRole("admin")}}),s.saveItem("apps.chat.realtime",{id:510,title:"Realtime",route:"",translate:"CHAT.REALTIME",state:"app.chat.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(510)&&!o.hasRole("admin")}}),s.saveItem("apps.mail",{id:600,title:"Mail",translate:"MAIL.MAIL",icon:"icon-email",license:"mail",weight:7,hidden:function(){return!r.mail||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.mail.mailQueues",{id:601,title:"MailQueues",route:"mailQueue",channel:"mail",translate:"MAIL.MAILQUEUES",state:"app.mail.mailQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(601)&&!o.hasRole("admin")}}),s.saveItem("apps.mail.mailAccounts",{id:602,title:"MailAccounts",route:"mailAccount",channel:"mail",translate:"MAIL.MAILACCOUNTS",state:"app.mail.mailAccounts",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(602)&&!o.hasRole("admin")}}),s.saveItem("apps.mail.mailSubtatuses",{id:603,title:"MailSubstatuses",route:"mailSubstatus",channel:"mail",translate:"MAIL.MAILSUBSTATUSES",state:"app.mail.mailSubtatuses",permissions:{association:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(603)&&!o.hasRole("admin")}}),s.saveItem("apps.mail.realtime",{id:610,title:"Realtime",route:"",translate:"MAIL.REALTIME",state:"app.mail.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(610)&&!o.hasRole("admin")}}),s.saveItem("apps.sms",{id:700,title:"Sms",translate:"SMS.SMS",icon:"icon-message-text",license:"messaging",weight:8,hidden:function(){return!r.messaging||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.sms.smsQueues",{id:701,title:"SmsQueues",route:"smsQueue",channel:"sms",translate:"SMS.SMSQUEUES",state:"app.sms.smsQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(701)&&!o.hasRole("admin")}}),s.saveItem("apps.sms.smsAccounts",{id:702,title:"SmsAccounts",route:"smsAccount",channel:"sms",translate:"SMS.SMSACCOUNTS",state:"app.sms.smsAccounts",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(702)&&!o.hasRole("admin")}}),s.saveItem("apps.sms.realtime",{id:710,title:"Realtime",route:"",translate:"SMS.REALTIME",state:"app.sms.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(710)&&!o.hasRole("admin")}}),s.saveItem("apps.openchannel",{id:800,title:"Openchannel",translate:"OPENCHANNEL.OPENCHANNEL",icon:"icon-google-earth",license:"openchannel",weight:9,hidden:function(){return!r.openchannel||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.openchannel.openchannelQueues",{id:801,title:"OpenchannelQueues",route:"openchannelQueue",channel:"openChannel",translate:"OPENCHANNEL.OPENCHANNELQUEUES",state:"app.openchannel.openchannelQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(801)&&!o.hasRole("admin")}}),s.saveItem("apps.openchannel.openchannelAccounts",{id:802,title:"OpenchannelAccounts",route:"openchannelAccount",channel:"openChannel",translate:"OPENCHANNEL.OPENCHANNELACCOUNTS",state:"app.openchannel.openchannelAccounts",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(802)&&!o.hasRole("admin")}}),s.saveItem("apps.openchannel.realtime",{id:810,title:"Realtime",route:"",translate:"OPENCHANNEL.REALTIME",state:"app.openchannel.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(810)&&!o.hasRole("admin")}}),s.saveItem("apps.fax",{id:900,title:"Fax",translate:"FAX.FAX",icon:"icon-deskphone",license:"fax",weight:10,hidden:function(){return!r.fax||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.fax.faxQueues",{id:901,title:"FaxQueues",route:"faxQueue",channel:"fax",translate:"FAX.FAXQUEUES",state:"app.fax.faxQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(901)&&!o.hasRole("admin")}}),s.saveItem("apps.fax.faxAccounts",{id:902,title:"FaxAccounts",route:"faxAccount",channel:"fax",translate:"FAX.FAXACCOUNTS",state:"app.fax.faxAccounts",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(902)&&!o.hasRole("admin")}}),s.saveItem("apps.fax.realtime",{id:910,title:"Realtime",route:"",translate:"FAX.REALTIME",state:"app.fax.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(910)&&!o.hasRole("admin")}}),s.saveItem("apps.tools",{id:1e3,title:"Tools",translate:"TOOLS.TOOLS",icon:"icon-auto-fix",weight:15,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.tools.cannedAnswers",{id:1001,title:"CannedAnswers",route:"cannedAnswer",translate:"TOOLS.CANNEDANSWERS",state:"app.tools.cannedAnswers",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1001)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.customDashboards",{id:1003,title:"CustomDashboards",route:"dashboard",translate:"TOOLS.CUSTOMDASHBOARDS",state:"app.tools.customDashboards",weight:3,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1003)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.intervals",{id:1004,title:"Intervals",route:"interval",translate:"TOOLS.INTERVALS",state:"app.tools.intervals",weight:4,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1004)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.pauses",{id:1005,title:"Pauses",route:"pause",translate:"TOOLS.PAUSES",state:"app.tools.pauses",weight:5,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1005)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.schedules",{id:1006,title:"Scheduler",route:"schedule",translate:"TOOLS.SCHEDULER",state:"app.tools.schedules",weight:6,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1006)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.sounds",{id:1007,title:"Sounds",route:"sound",translate:"TOOLS.SOUNDS",state:"app.tools.sounds",weight:7,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1007)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.tags",{id:1008,title:"Tags",route:"tag",translate:"TOOLS.TAGS",state:"app.tools.tags",weight:8,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1008)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.templates",{id:1009,title:"Templates",route:"template",translate:"TOOLS.TEMPLATES",state:"app.tools.templates",weight:9,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1009)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.trunks",{id:1011,title:"Trunks",route:"trunk",translate:"TOOLS.TRUNKS",state:"app.tools.trunks",weight:11,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1011)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.variables",{id:1012,title:"Variables",route:"variable",translate:"TOOLS.VARIABLES",state:"app.tools.variables",weight:12,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1012)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.dispositions",{id:1002,title:"Dispositions",route:"disposition",translate:"TOOLS.DISPOSITIONS",state:"app.tools.dispositions",weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1002)&&!o.hasRole("admin")}}),s.saveItem("apps.tools.triggers",{id:1010,title:"Triggers",route:"trigger",translate:"TOOLS.TRIGGERS",state:"app.tools.triggers",weight:10,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1010)&&!o.hasRole("admin")}}),s.saveItem("apps.callysquare",{id:1100,title:"CallySquare",translate:"CALLYSQUARE.CALLYSQUARE",icon:"icon-sitemap",license:"voice",weight:13,hidden:function(){return!r.voice||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.callysquare.odbcs",{id:1101,title:"ODBC",route:"squareOdbc",translate:"CALLYSQUARE.ODBC",state:"app.callysquare.odbcs",weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1101)&&!o.hasRole("admin")}}),s.saveItem("apps.callysquare.squareRecordings",{id:1102,title:"SquareRecordings",route:"squareRecording",translate:"CALLYSQUARE.SQUARERECORDINGS",state:"app.callysquare.squareRecordings",permissions:{association:!1,loading:!0},weight:3,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1102)&&!o.hasRole("admin")}}),s.saveItem("apps.callysquare.projects",{id:1103,title:"Projects",route:"squareProject",translate:"CALLYSQUARE.PROJECTS",state:"app.callysquare.projects",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1103)&&!o.hasRole("admin")}}),s.saveItem("apps.analytics",{id:1200,title:"Analytics",translate:"ANALYTICS.ANALYTICS",icon:"icon-chart-line",weight:16,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.analytics.metrics",{id:1201,title:"Metrics",route:"analyticMetric",translate:"ANALYTICS.METRICS",state:"app.analytics.metrics",weight:3,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1201)&&!o.hasRole("admin")}}),s.saveItem("apps.analytics.extractedReports",{id:1202,title:"ExtractedReports",route:"analyticExtractedReport",translate:"ANALYTICS.EXTRACTEDREPORTS",state:"app.analytics.extractedReports",permissions:{association:!1,loading:!0},weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1202)&&!o.hasRole("admin")}}),s.saveItem("apps.analytics.reports",{id:1203,title:"Reports",route:"",translate:"ANALYTICS.REPORTS",state:"app.analytics.reports",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1203)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations",{id:1300,title:"Integrations",translate:"INTEGRATIONS.INTEGRATIONS",icon:"icon-heart",weight:17,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.zendeskAccounts",{id:1301,title:"ZendeskAccounts",route:"intZendeskAccount",translate:"INTEGRATIONS.ZENDESKACCOUNTS",state:"app.integrations.zendeskAccounts",permissions:{association:!1,loading:!0},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1301)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.salesforceAccounts",{id:1302,title:"SalesforceAccounts",route:"intSalesforceAccount",translate:"INTEGRATIONS.SALESFORCEACCOUNTS",state:"app.integrations.salesforceAccounts",permissions:{association:!1,loading:!0},weight:2,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1302)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.freshdeskAccounts",{id:1303,title:"FreshdeskAccounts",route:"intFreshdeskAccount",translate:"INTEGRATIONS.FRESHDESKACCOUNTS",state:"app.integrations.freshdeskAccounts",permissions:{association:!1,loading:!0},weight:3,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1303)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.sugarcrmAccounts",{id:1305,title:"SugarcrmAccounts",route:"intSugarcrmAccount",translate:"INTEGRATIONS.SUGARCRMACCOUNTS",state:"app.integrations.sugarcrmAccounts",permissions:{association:!1,loading:!0},weight:4,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1305)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.deskAccounts",{id:1306,title:"DeskAccounts",route:"intDeskAccount",translate:"INTEGRATIONS.DESKACCOUNTS",state:"app.integrations.deskAccounts",permissions:{association:!1,loading:!0},weight:5,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1306)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.zohoAccounts",{id:1307,title:"ZohoAccounts",route:"intZohoAccount",translate:"INTEGRATIONS.ZOHOACCOUNTS",state:"app.integrations.zohoAccounts",permissions:{association:!1,loading:!0},weight:6,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1307)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.vtigerAccounts",{id:1308,title:"VtigerAccounts",route:"intVtigerAccount",translate:"INTEGRATIONS.VTIGERACCOUNTS",state:"app.integrations.vtigerAccounts",permissions:{association:!1,loading:!0},weight:7,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1308)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.dynamics365Accounts",{id:1309,title:"Dynamics365Accounts",route:"intDynamics365Account",translate:"INTEGRATIONS.DYNAMICS365ACCOUNTS",state:"app.integrations.dynamics365Accounts",permissions:{association:!1,loading:!0},weight:8,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1309)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.servicenowAccounts",{id:1310,title:"ServicenowAccounts",route:"intServicenowAccount",translate:"INTEGRATIONS.SERVICENOWACCOUNTS",state:"app.integrations.servicenowAccounts",permissions:{association:!1,loading:!0},weight:9,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1310)&&!o.hasRole("admin")}}),s.saveItem("apps.integrations.freshsalesAccounts",{id:1304,title:"FreshsalesAccounts",route:"intFreshsalesAccount",translate:"INTEGRATIONS.FRESHSALESACCOUNTS",state:"app.integrations.freshsalesAccounts",permissions:{association:!1,loading:!0},weight:10,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1304)&&!o.hasRole("admin")}}),s.saveItem("apps.settings",{id:1400,title:"Settings",translate:"SETTINGS.SETTINGS",icon:"icon-cog",permissions:{hidden:!0},weight:20,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")||o.hasRole("admin")&&!o.getCurrentUser().settingsEnabled}}),s.saveItem("apps.settings.generals",{id:1401,title:"General",route:"setting",translate:"SETTINGS.GENERAL",state:"app.settings.generals",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.smtps",{id:1402,title:"Smtp",route:"mailAccount",translate:"SETTINGS.SMTP",state:"app.settings.smtps",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.networks",{id:1403,title:"Networks",route:"network",translate:"SETTINGS.NETWORKS",state:"app.settings.networks",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.customizations",{id:1407,title:"Customizations",route:"setting",translate:"SETTINGS.CUSTOMIZATIONS",state:"app.settings.customizations",weight:1,hidden:function(){return!r.custom||o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.cloudProviders",{id:1408,title:"AiTools",route:"cloudProvider",translate:"SETTINGS.AITOOLS",state:"app.settings.cloudProviders",weight:1,hidden:function(){return!r.ai||o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.updates",{id:1404,title:"Updates",route:"",translate:"SETTINGS.UPDATES",state:"app.settings.updates",weight:1,hidden:function(){return!r.update||o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.license",{id:1405,title:"License",route:"",translate:"SETTINGS.LICENSE",state:"app.settings.license",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.settings.system",{id:1406,title:"System",route:"",translate:"SETTINGS.SYSTEM",state:"app.settings.system",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1400)&&!o.hasRole("admin")}}),s.saveItem("apps.motiondialer",{id:1500,title:"MotionDialer",translate:"MOTIONDIALER.MOTIONDIALER",icon:"icon-fire",license:"dialer",weight:5,hidden:function(){return!r.dialer||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.motiondialer.queueCampaigns",{id:1501,title:"QueueCampaigns",route:"voiceQueue",channel:"bull",translate:"MOTIONDIALER.QUEUECAMPAIGNS",state:"app.motiondialer.queueCampaigns",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1501)&&!o.hasRole("admin")}}),s.saveItem("apps.motiondialer.ivrCampaigns",{id:1502,title:"IvrCampaigns",route:"campaign",translate:"MOTIONDIALER.IVRCAMPAIGNS",state:"app.motiondialer.ivrCampaigns",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1502)&&!o.hasRole("admin")}}),s.saveItem("apps.motiondialer.realtime",{id:1510,title:"Realtime",route:"",translate:"MOTIONDIALER.REALTIME",state:"app.motiondialer.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1510)&&!o.hasRole("admin")}}),s.saveItem("apps.help",{id:1600,title:"Help",translate:"HELP.HELP",icon:"icon-help",permissions:{association:!1},weight:21,hidden:function(){return!d.viewHelpSection||o.hasRole("agent")||!o.hasPermission(1600)&&!o.hasRole("admin")}}),s.saveItem("apps.help.about",{id:1601,title:"About",route:"",translate:"HELP.ABOUT",state:"app.help.about",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1600)&&!o.hasRole("admin")}}),s.saveItem("apps.jscripty",{id:1700,title:"jscripty",translate:"JSCRIPTY.JSCRIPTY",icon:"icon-script",license:"jscripty",weight:14,hidden:function(){return!r.jscripty||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.jscripty.projects",{id:1701,title:"Projects",route:"jscriptyProject",translate:"JSCRIPTY.PROJECTS",state:"app.jscripty.projects",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1701)&&!o.hasRole("admin")}}),s.saveItem("apps.marketplace",{id:1800,title:"Marketplace",translate:"MARKETPLACE.MARKETPLACE",icon:"icon-cart",weight:18,hidden:function(){return o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.marketplace.plugins",{id:1801,title:"Plugins",route:"plugin",translate:"MARKETPLACE.PLUGINS",state:"app.marketplace.plugins",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(1801)&&!o.hasRole("admin")}}),s.saveItem("apps.video",{id:2e3,title:"Video",translate:"VIDEO.VIDEO",icon:"icon-video",license:"screenrecording",weight:12,hidden:function(){return!r.screenrecording||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.video.screenRecordings",{id:2001,title:"ScreenRecordings",route:"screenRecording",translate:"VIDEO.SCREENRECORDINGS",state:"app.video.screenRecordings",permissions:{association:!1,loading:!0},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(2001)&&!o.hasRole("admin")}}),s.saveItem("apps.whatsapp",{id:2100,title:"Whatsapp",translate:"WHATSAPP.WHATSAPP",icon:"icon-whatsapp",license:"whatsapp",weight:11,hidden:function(){return!r.whatsapp||o.hasRole("agent")||!o.hasChildrenPermissions(v(this))&&!o.hasRole("admin")}}),s.saveItem("apps.whatsapp.whatsappQueues",{id:2101,title:"WhatsappQueues",route:"whatsappQueue",channel:"whatsapp",translate:"WHATSAPP.WHATSAPPQUEUES",state:"app.whatsapp.whatsappQueues",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(2101)&&!o.hasRole("admin")}}),s.saveItem("apps.whatsapp.whatsappAccounts",{id:2102,title:"WhatsappAccounts",route:"whatsappAccount",channel:"whatsapp",translate:"WHATSAPP.WHATSAPPACCOUNTS",state:"app.whatsapp.whatsappAccounts",weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(2102)&&!o.hasRole("admin")}}),s.saveItem("apps.whatsapp.realtime",{id:2110,title:"Realtime",route:"",translate:"WHATSAPP.REALTIME",state:"app.whatsapp.realtime",permissions:{association:!1,crud:!1},weight:1,hidden:function(){return o.hasRole("agent")||!o.hasPermission(2110)&&!o.hasRole("admin")}}),s.sort(),a.saveItem("apps",{title:"APPS",group:!0,weight:1}),a.saveItem("apps.home",{id:100,title:"Home",translate:"DASHBOARDS.HOME",icon:"icon-home",weight:1}),a.saveItem("apps.home.dashboard",{id:101,title:"Dashboard",translate:"DASHBOARDS.DASHBOARD",state:"dashboard",view:"dashboard",icon:"icon-tile-four",iconClass:"cyan-500-fg",weight:1,hidden:function(){return!o.hasPermission(101)}}),a.saveItem("apps.home.agentPresence",{id:115,title:"AgentPresence",translate:"DASHBOARDS.AGENT_PRESENCE",state:"agentPresence",view:"agentPresence",icon:"icon-webcam",iconClass:"xenialab-violet-light-fg",weight:2,hidden:function(){return!o.hasPermission(115)}}),a.saveItem("apps.home.contacts",{id:102,title:"Contacts",translate:"DASHBOARDS.CONTACTS",state:"contacts",view:"contacts",icon:"icon-account-circle",iconClass:"red-fg",weight:3,hidden:function(){return!r.cm||!o.hasPermission(102)}}),a.saveItem("apps.home.mycontacts",{id:103,title:"Contacts",translate:"DASHBOARDS.MYCONTACTS",state:"mycontacts",view:"mycontacts",icon:"icon-account-multiple",iconClass:"red-fg",weight:4,hidden:function(){return!r.cm||!o.hasPermission(103)}}),a.saveItem("apps.home.scheduled",{id:113,title:"Scheduled Calls",translate:"DASHBOARDS.SCHEDULED_CALLS",state:"scheduled",view:"scheduled",icon:"icon-calendar-clock",iconClass:"blue-grey-fg",weight:5,hidden:function(){return!r.dialer||!o.hasPermission(113)}}),a.saveItem("apps.home.voice",{id:110,title:"Voice",translate:"DASHBOARDS.VOICE",state:"voice",view:"voice",icon:"icon-phone",iconClass:"blue-A700-fg",weight:6,hidden:function(){return!r.voice||!o.hasPermission(110)}}),a.saveItem("apps.home.abandoned",{id:111,title:"Abandoned",translate:"DASHBOARDS.ABANDONED",state:"abandoned",view:"abandoned",icon:"icon-phone-missed",iconClass:"blue-fg",weight:7,hidden:function(){return!r.voice||!o.hasPermission(111)}}),a.saveItem("apps.home.recordings",{id:104,title:"Recordings",translate:"DASHBOARDS.RECORDINGS",state:"recordings",view:"recordings",icon:"icon-audiobook",iconClass:"indigo-A100-fg",weight:8,hidden:function(){return!r.voice||!o.hasPermission(104)}}),a.saveItem("apps.home.chat",{id:105,title:"Chat",translate:"DASHBOARDS.CHAT",state:"chat",view:"chat",icon:"icon-hangouts",iconClass:"green-A700-fg",weight:9,hidden:function(){return!r.chat||!o.hasPermission(105)}}),a.saveItem("apps.home.mail",{id:106,title:"Mail",translate:"DASHBOARDS.MAIL",state:"mail",view:"mail",icon:"icon-email",iconClass:"teal-fg",weight:10,hidden:function(){return!r.mail||!o.hasPermission(106)}}),a.saveItem("apps.home.sms",{id:107,title:"Sms",translate:"DASHBOARDS.SMS",state:"sms",view:"sms",icon:"icon-message-text",iconClass:"orange-fg",weight:11,hidden:function(){return!r.messaging||!o.hasPermission(107)}}),a.saveItem("apps.home.openchannel",{id:108,title:"Openchannel",translate:"DASHBOARDS.OPENCHANNEL",state:"openchannel",view:"openchannel",icon:"icon-google-earth",iconClass:"amber-fg",weight:12,hidden:function(){return!r.openchannel||!o.hasPermission(108)}}),a.saveItem("apps.home.fax",{id:109,title:"Fax",translate:"DASHBOARDS.FAX",state:"fax",view:"fax",icon:"icon-deskphone",iconClass:"blue-grey-A200-fg",weight:13,hidden:function(){return!r.fax||!o.hasPermission(109)}}),a.saveItem("apps.home.whatsapp",{id:114,title:"Whatsapp",translate:"DASHBOARDS.WHATSAPP",state:"whatsapp",view:"whatsapp",icon:"icon-whatsapp",iconClass:"lime-A700-fg",weight:14,hidden:function(){return!r.whatsapp||!o.hasPermission(114)}}),n.$on("$viewContentAnimationEnded",function(e){e.targetScope.$id===n.$id&&t.$broadcast("msSplashScreen::remove")}),n.$on("socket:connect",function(){t.toastySocketLost&&(i.clear(t.toastySocketLost),t.toastySocketLost=void 0)}),n.$on("socket:disconnect",function(){t.toastySocketLost||i.warning({title:e.instant("TOOLBAR.WARNING"),msg:e.instant("DASHBOARDS.LOST_CONNECTION"),timeout:!1,onAdd:function(){t.toastySocketLost=this.id}})})}e.$inject=["$scope","$rootScope","$translate","msNavigationService","msNavigationAgentService","toasty","Auth","license","api","setting","socket"],angular.module("motion").controller("MainController",e)}(),function(){"use strict";function e(e,n,t,a,o,r){var i=this;function s(e){if(e&&e.id){var n=99999+e.id;o.saveItem("apps.dashboards.custom_"+n,{id:n,title:e.name||"NONAME",state:"app.dashboards.custom",stateParams:e,weight:2,hidden:function(){return r.hasRole("agent")||!r.hasPermission(n)&&!r.hasRole("admin")}})}}function l(e){if(e&&e.id&&"never"!=e.sidebar)if(e.active){if("always"==e.sidebar||"adminOnly"==e.sidebar){o.saveItem("apps.plugins",{id:1900,title:"Plugins",translate:"PLUGINS.PLUGINS",icon:"icon-apps",weight:17,hidden:function(){return r.hasRole("agent")||!r.hasPermission(1900)&&!r.hasRole("admin")}});var n=88888+e.id;o.saveItem("apps.plugins.plugin_"+n,{id:n,title:e.name||"NONAME",state:"app.plugins.plugin",stateParams:e,weight:2,hidden:function(){return r.hasRole("agent")||!r.hasPermission(n)&&!r.hasRole("admin")}}),o.sort()}}else{n=88888+e.id;t=1900,a=n,i=o.getNavigation(),(s=_.find(i[0].children,{id:t}))&&_.some(s.children,{id:a})&&("always"==e.sidebar||"adminOnly"==e.sidebar)&&(o.deleteItem("apps.plugins.plugin_"+n),d(1900)||o.saveItem("apps.plugins",{id:1900,title:"Plugins",translate:"PLUGINS.PLUGINS",icon:"icon-apps",weight:17,hidden:function(){return!0}}))}var t,a,i,s}function d(e){var n=o.getNavigation(),t=_.find(n[0].children,{id:e});return!!(t&&0<t.children.length)}i.bodyEl=angular.element("body"),i.msScrollOptions={suppressScrollX:!0},i.setting=t,i.$onInit=function(){i.folded="true"===n.get("motion.folded")||!1},i.toggleMsNavigationFolded=function(){i.folded=!i.folded,n.put("motion.folded",i.folded)},i.getLogo=function(){return i.setting.defaultHeaderWhiteLabel?"xCALLY Motion":i.setting.headerWhiteLabel},a.on("dashboard:save",s),a.on("dashboard:update",s),a.on("dashboard:remove",function(e){if(e&&e.id){var n=99999+e.id;o.deleteItem("apps.dashboards.custom_"+n)}}),a.on("plugin:save",l),a.on("plugin:update",l),a.on("plugin:remove",function(e){if(e&&e.id&&"never"!=e.sidebar){var n=88888+e.id;"always"!=e.sidebar&&"adminOnly"!=e.sidebar||(o.deleteItem("apps.plugins.plugin_"+n),d(1900)||o.saveItem("apps.plugins",{id:1900,title:"Plugins",translate:"PLUGINS.PLUGINS",icon:"icon-apps",weight:17,hidden:function(){return!0}}))}}),e.$on("$stateChangeSuccess",function(){i.bodyEl.removeClass("ms-navigation-horizontal-mobile-menu-active")})}e.$inject=["$scope","$cookies","setting","socket","msNavigationService","Auth"],angular.module("app.navigation").controller("NavigationController",e)}(),function(){"use strict";function e(e,a,i,n,t,s,o,r){var l=this;function d(t){o.isSupported()?o.requestPermission().then(function(){var e,n;n={autoClose:!0,duration:10,showOnPageHidden:!0,icon:"api/users/"+(e=t).FromId+"/avatar",body:e.body||"",focusOnclick:!0,closeOnClick:!0},o.show(a.instant("QUICKPANEL.NEW_INTERNAL_MESSAGE"),n)},function(e){console.error("Please enable browser notifications!",e)}):console.error("Browser notifications are not supported by the browser. Normal notifications will be used.")}l.date=moment().format(),l.currentUser=n.getCurrentUser(),l.license=r,l.unreadTotalMessages=0,l.unreadTotalGroupMessages=0,l.userIsNotPhonebar=function(){return"admin"===l.currentUser.role||"user"===l.currentUser.role||"agent"===l.currentUser.role&&0!==l.currentUser.showWebBar},l.onMessageSave=function(e){e.ToId===l.currentUser.id&&e.FromId!==l.currentUser.id&&!e.read&&e.ChatGroupId&&(l.unreadTotalGroupMessages++,d(e));e.ToId!==l.currentUser.id||e.ChatGroupId||(l.unreadTotalMessages+=1,d(e))},l.onMessageUpdate=function(e){e.ToId===l.currentUser.id&&e.read&&0<l.unreadTotalMessages&&!e.ChatGroupId&&(l.unreadTotalMessages-=1);e.ToId==l.currentUser.id&&e.FromId!==l.currentUser.id&&e.ChatGroupId&&e.read&&0<l.unreadTotalGroupMessages&&l.unreadTotalGroupMessages--},t.on("chatInternalMessage:save",l.onMessageSave),t.on("chatInternalMessage:update",l.onMessageUpdate),s.chatInternalMessage.get({fields:"FromId",ToId:l.currentUser.id,read:!1,nolimit:!0,ChatGroupId:"null"}).$promise.then(function(e){return e&&e.count&&(l.unreadTotalMessages=e.count),s.user.getGroups({id:l.currentUser.id}).$promise}).then(function(e){for(var n=[],t=e.rows,a=0;a<t.length;a++)n.push(s.chatGroup.getUnread({id:t[a].id}).$promise);return i.all(n)}).then(function(e){for(var n=0;n<e.length;n++)l.unreadTotalGroupMessages+=e[n].count}).catch(function(e){console.error(e)}),e.$on("$destroy",function(){t.removeAllListeners("chatInternalMessage:save"),t.removeAllListeners("chatInternalMessage:update")})}e.$inject=["$scope","$translate","$q","Auth","socket","api","desktopNotification","license"],angular.module("app.quick-panel").controller("QuickPanelController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l,d,c,m){var u=this;function p(e){var n=angular.element("#chat-dialog");a(function(){n.animate({scrollTop:n[0].scrollHeight},e)},0)}function g(e){return _.isNil(e)?"":e.replace(/[^\w.+#*\-]+/g,"")}function v(e){return m.get(e).success(function(){n.success({title:"Successful call",msg:"Call properly handled!"})}).error(function(e){n.error({title:"PhoneBar API Error",msg:d.instant("CONTACTMANAGER.ERRORS.PHONEBAR_API")})})}u.currentUser=i.getCurrentUser(),u.user=void 0,u.users={count:0,rows:[]},u.standardDate=moment(0).format("YYYY-MM-DD HH:mm:ss"),u.unreadMessage={},u.replyMessage="",u.disabled=!1,u.init=function(e){u.license=e},u.toggleChat=function(e){if(e){if(!e.allowmessenger&&"agent"===e.role)return n.warning({title:d.instant("QUICKPANEL.WARNING"),msg:d.instant("QUICKPANEL.MESSENGER_DISABLED")}),void(u.user=void 0);u.user=e,u.replyMessage="",t.chatInternalMessage.get({sort:"createdAt",FromId:u.currentUser.id+","+e.id,ToId:u.currentUser.id+","+e.id,ChatGroupId:"null"}).$promise.then(function(e){if(e&&e.rows){u.user.messages=e;for(var n=0;n<u.user.messages.rows.length;n+=1)!1===u.user.messages.rows[n].read&&u.user.messages.rows[n].ToId===u.currentUser.id&&t.chatInternalMessage.update({id:u.user.messages.rows[n].id,read:!0})}}).finally(function(){p(0)})}else u.user=void 0},u.reply=function(){u.disabled=!0;Date.now();if(""===u.replyMessage)return void(u.disabled=!1);var e={FromId:u.currentUser.id,ToId:u.user.id,body:u.replyMessage,read:!1};u.replyMessage="",t.chatInternalMessage.save(e).$promise.then(function(e){u.user.messages.rows.push(e),u.user.lastMessageAt=e.createdAt,u.user.lastMessage=e,p(400)}).catch(function(e){}).finally(function(){u.disabled=!1})},u.onMessageSave=function(e){if(e.ToId===u.currentUser.id&&!e.ChatGroupId){u.user&&u.user.id===e.FromId?(u.user.messages.rows.push(e),p(0),t.chatInternalMessage.update({id:e.id,read:!0})):u.unreadMessage[e.FromId]=u.unreadMessage[e.FromId]?u.unreadMessage[e.FromId]+1:1;var n=_.find(u.users.rows,{id:e.FromId});n&&(n.lastMessageAt=e.createdAt,n.lastMessage=e)}},u.onMessageUpdate=function(e){if((e.FromId===u.currentUser.id||e.ToId===u.currentUser.id)&&!e.ChatGroupId){if(u.user){var n=_.find(u.user.messages.rows,{id:e.id});n&&_.merge(n,e)}var t=_.find(u.users.rows,{id:u.currentUser.id===e.FromId?e.ToId:e.FromId});t&&t.lastMessage&&_.merge(t.lastMessage,e),e.ToId===u.currentUser.id&&e.read&&0<u.unreadMessage[e.FromId]&&(u.unreadMessage[e.FromId]-=1)}},u.onUserUpdate=function(e){var n=_.find(u.users.rows,{id:e.id});n&&(_.isNil(e.online)||n.online===e.online||(n.online=e.online),_.isNil(e.allowmessenger)||n.allowmessenger===e.allowmessenger||(n.allowmessenger=e.allowmessenger))},u.webcall=function(e){c.$broadcast("webrtc::call",{target:g(e)})},u.call=function(e){return v("http://127.0.0.1:"+(u.user.phoneBarRemoteControlPort||"9888")+"/api/originate/"+g(e))},u.transfer=function(e){return v("http://127.0.0.1:"+(u.user.phoneBarRemoteControlPort||"9888")+"/api/transfer?number="+g(e))},s.on("chatInternalMessage:save",u.onMessageSave),s.on("chatInternalMessage:update",u.onMessageUpdate),s.on("user:update",u.onUserUpdate),o("quick-panel").onClose(function(){u.user=void 0}),t.chatInternalMessage.get({fields:"FromId",ToId:u.currentUser.id,read:!1,nolimit:!0,ChatGroupId:"null"}).$promise.then(function(e){u.unreadMessage=_.countBy(e.rows,"FromId")}).catch(function(e){}),t.chatInternalMessage.getUsers().$promise.then(function(e){u.users=e}).catch(function(e){console.error(e)}),e.$on("$destroy",function(){s.removeAllListeners("chatInternalMessage:save"),s.removeAllListeners("chatInternalMessage:update"),s.removeAllListeners("user:update")})}e.$inject=["$scope","toasty","api","$timeout","Auth","socket","$mdSidenav","$q","$interval","$translate","$rootScope","$http"],angular.module("app.quick-panel").controller("ChatInternalController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r,l){var d=this;function c(e){a.hide(e)}d.errors=[],d.title="QUICKPANEL.EDIT_CHATGROUP",d.group=angular.copy(r),d.currentUser=o.getCurrentUser(),d.members=l,d.newChatGroup=!0,d.group||(d.group={write:!0,members:[]},d.title="QUICKPANEL.NEW_CHATGROUP"),d.saveChatGroup=function(){var t;return d.errors=[],s.chatGroup.save({name:d.group.name,write:d.group.write}).$promise.then(function(e){var n=_.map(d.group.members,"id");return n.unshift(d.currentUser.id),t=e,s.chatGroup.addMembers({id:t.id,ids:n}).$promise}).then(function(){i.success({title:"Group properly saved!",msg:t.name+" has been saved!"}),c(t)}).catch(function(e){i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatQueue.update",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},d.closeDialog=c,d.querySearch=function(e){return e?d.members.rows.filter((n=e,t=angular.lowercase(n),function(e){var n=e.name.toLowerCase();return-1!=n.indexOf(t)})):[];var n,t}}e.$inject=["$scope","$state","$location","$mdDialog","toasty","api","Auth","group","members"],angular.module("app.quick-panel").controller("CreateOrEditChatGroupDialogController",e)}(),function(){"use strict";function e(e,t,a,s,n,o,i,r,l,d){var c=this;function m(){delete c.group}function u(e){var n=angular.element("#chat-group-dialog");a(function(){n.animate({scrollTop:n[0].scrollHeight},e)},0)}c.currentUser=i.getCurrentUser(),c.unreadGroupMessages={},c.groups={},c.participants,c.group,c.init=function(e){return c.license=e,r.user.getGroups({id:c.currentUser.id}).$promise.then(function(e){for(var n=0,t=[];n<e.rows.length;n++)e.rows[n].unreadGroupMessages=0,c.groups[e.rows[n].id]=e.rows[n],t.push(r.chatGroup.getUnread({id:e.rows[n].id}).$promise);return o.all(t)}).then(function(e){for(var n=0;n<e.length;n++)c.groups[e[n].id].unreadGroupMessages+=e[n].count}).catch(function(e){console.error(e)})},c.back=m,c.addGroup=function(e,n){s.show({controller:"CreateOrEditChatGroupDialogController",controllerAs:"vm",templateUrl:"app/quick-panel/tabs/groups/create/dialog.html",parent:angular.element(t.body),targetEvent:n,clickOutsideToClose:!0,locals:{group:e,me:c.currentUser,license:null,setting:null},resolve:{members:function(){return i.hasRole("admin")?r.user.get({role:"agent"}).$promise:r.userProfile.getResources({id:i.getCurrentUser().userProfileId,section:"Agents",role:"agent"}).$promise}}}).then(function(e){e&&(c.groups[e.id]=e)}).catch(function(e){e&&console.error(e.message)})},c.deleteGroup=function(e,n){var t=s.confirm().title("Are you sure want to delete the selected group?").htmlContent("Group <b>"+e.name+"</b> will be deleted.").ariaLabel("delete Group").targetEvent(n).ok("OK").cancel("CANCEL");s.show(t).then(function(){return r.chatGroup.delete({id:e.id}).$promise}).then(function(){delete c.groups[e.id],d.success({title:"Group properly deleted!",msg:e.name+" has been deleted!"})}).catch(function(e){e&&d.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.chatGroup.delete",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},c.groupsToArray=function(){return _.values(c.groups)},c.showMessageInfo=function(e,i){s.show({controller:"ShowMessageInfoDialogController",controllerAs:"vm",templateUrl:"app/quick-panel/tabs/groups/info/dialog.html",parent:angular.element(t.body),targetEvent:e,clickOutsideToClose:!0,locals:{message:i},resolve:{data:function(){var a={messages:[]};return r.chatInternalMessage.get({ChatInternalMessageId:i.id}).$promise.then(function(e){var n=[];a.messages=e.rows,a.messages.unshift(i);for(var t=0;t<a.messages.length;t++)n.push(r.user.get({id:a.messages[t].ToId,fields:"id,name,fullname,userpic"}).$promise);return o.all(n)}).then(function(e){return a.users=e,a}).catch(function(e){e&&console.error(e)})}}}).then(function(){}).catch(function(e){e&&console.error(e.message)})},c.toggleChat=function(n){c.group={id:n.id,write:n.write,messages:{}},r.chatGroup.getMembers({id:n.id,fields:"id,name,fullname"}).$promise.then(function(e){return c.group.membersByKeys=_.keyBy(e.rows,"id"),c.group.members=_.differenceBy(e.rows,[{id:c.currentUser.id}],"id"),c.participants=_.map(c.group.members,"fullname").join(", "),r.chatGroup.getMessages({id:n.id,nolimit:!0}).$promise}).then(function(e){for(var n,t=0,a=[];t<e.count;t++)e.rows[t].ToId===c.currentUser.id&&(n=e.rows[t],c.group.messages[n.id]=n,e.rows[t].ToId!=c.currentUser.id||e.rows[t].FromId===c.currentUser.id||n.read||a.push(r.chatInternalMessage.update({id:n.id,read:!0})));return o.all(a)}).then(function(){u(400)}).catch(function(e){console.error(e.message)})},c.reply=function(){if(!c.replyMessage)return;var t={id:c.group.id,FromId:c.currentUser.id,ToId:c.currentUser.id,body:c.replyMessage,read:!0},a=[];c.replyMessage="",r.chatGroup.addMessage(t).$promise.then(function(e){t.read=!1,t.ChatInternalMessageId=e.id;for(var n=0;n<c.group.members.length;n++)c.group.members[n].id!==c.currentUser.id&&(t.ToId=c.group.members[n].id,a.push(r.chatGroup.addMessage(angular.copy(t)).$promise));return o.all(a)}).catch(function(e){console.log(e)})},l.on("chatInternalMessage:save",function(n){if(!c.group&&n.ToId===c.currentUser.id&&n.FromId!==c.currentUser.id&&!n.read&&n.ChatGroupId){var e=c.groups[n.ChatGroupId];if(!e)return r.chatGroup.get({id:n.ChatGroupId}).$promise.then(function(e){e.unreadGroupMessages=1,c.groups[e.id]=e});e.unreadGroupMessages||(e.unreadGroupMessages=0),e.unreadGroupMessages++}c.group&&n.ChatGroupId===c.group.id&&n.ToId===c.currentUser.id&&r.chatInternalMessage.update({id:n.id,read:!0}).$promise.then(function(){var e;e=n,c.group.messages[e.id]=e,u(400)})}),l.on("chatInternalMessage:update",function(e){e.ToId==c.currentUser.id&&e.FromId!==c.currentUser.id&&e.ChatGroupId&&e.read&&(0<c.groups[e.ChatGroupId].unreadGroupMessages&&c.groups[e.ChatGroupId].unreadGroupMessages--,c.group.messages[e.id]&&(c.group.messages[e.id].read=!0))}),l.on("chatGroup:remove",function(e){c.groups[e.id]&&delete c.groups[e.id]}),n("quick-panel").onClose(m),e.$on("$destroy",function(){l.removeAllListeners("chatInternalMessage:save"),l.removeAllListeners("chatInternalMessage:update"),l.removeAllListeners("chatGroup:remove")})}e.$inject=["$scope","$document","$timeout","$mdDialog","$mdSidenav","$q","Auth","api","socket","toasty"],angular.module("app.quick-panel").controller("ChatGroupController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r){this.data=r,this.title="QUICKPANEL.INFO",this.closeDialog=function(){a.hide()}}e.$inject=["$scope","$state","$location","$mdDialog","toasty","api","Auth","data"],angular.module("app.quick-panel").controller("ShowMessageInfoDialogController",e)}(),function(){"use strict";function e(e,n,t,a,i,s){var o=this;o.form={token:s.token},o.setting={},o.resetPassword=function(){return i.auth.reset(o.form).$promise.then(function(){n.success({title:t.instant("RESETPASSWORD.PASSWORD_RESET"),msg:t.instant("RESETPASSWORD.PASSWORD_RESET_MESSAGE")}),a.go("app.login")}).catch(function(e){e&&n.error({title:t.instant("RESETPASSWORD.PASSWORD_RESET_ERROR"),msg:e.data?e.data.message||e.message||e:e.message||e})})},o.onInit=function(){e.isLoggedIn()&&a.go("app.dashboards.general");return i.setting.gdpr({id:1}).$promise.then(function(e){o.setting=e,o.passwordPattern=o.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:""}).catch(function(e){e&&n.error({title:"Error",msg:e.data?e.data.message||e.message||e:e.message||e})})}}e.$inject=["Auth","toasty","$translate","$state","api","$stateParams"],angular.module("app.reset").controller("ResetPasswordController",e)}(),function(){"use strict";function e(t,e,n,a,i,s,o){var r=this;function l(){e.hide()}r.errors=[],r.user=i,r.setting=s,r.reset=o,r.passwordPattern=r.setting.securePassword?/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/:"",r.savePassword=function(){r.errors=[],a.user.changePassword({id:r.user.id},{oldPassword:r.oldPassword,newPassword:r.password}).$promise.then(function(){n.show(n.simple().textContent("Your password properly updated").position("top right").hideDelay(5e3)),l()}).catch(function(e){console.error(e),r.errors=e.data.errors&&e.data.errors.length?e.data.errors:[{message:e.data.message||"Authorization error",type:"api.user.changePassword"}]})},r.closeDialog=l,t.$watch("vm.password",function(e,n){_.isNil(r.oldPassword)||(e===r.oldPassword?t.changePasswordForm.password.$setValidity("oldPasswordMatch",!1):t.changePasswordForm.password.$setValidity("oldPasswordMatch",!0))})}e.$inject=["$scope","$mdDialog","$mdToast","api","user","setting","reset"],angular.module("app.toolbar").controller("ChangePasswordController",e)}(),function(){"use strict";function e(e,n,t,a,i,s,o,r){var l=this;function d(e){_.isNil(e)&&s.cmHopper.update({id:l.preview.id,UserId:null}),a.hide()}l.customFieldsMap=r&&r.rows?_.mapValues(_.keyBy(r.rows,function(e){return"cf_"+e.id}),"name"):{},l.errors=[],l.hopperIds=[],l.preview=o,l.originated=!1,l.disable=!1,l.disableGetContact=!1,l.hopperIds.push(l.preview.id),l.originatePreview=function(){l.originated=!0,l.disable=!0,_.isEmpty(l.preview)?(i.error({title:"Message",msg:"Contact not available"}),l.disable=!1,l.hopperIds=[],d(!0)):s.rpc.getVoiceQueuesPreview({id:l.preview.id}).$promise.then(function(e){d(!0)}).catch(function(e){i.error({title:"Message",msg:e.data}),d(!0)}).finally(function(){l.disable=!1,l.hopperIds=[]})},l.closeDialog=d,l.nextContact=function(){return l.disableGetContact=!0,s.cmHopper.getPreview({hopperIds:l.hopperIds,direction:"next"}).$promise.then(function(e){l.disableGetContact=!1,_.isNil(e)||_.isNil(e.Queue)||!e.Queue.dialActive?(l.hopperIds=[],a.hide(),i.info({title:"PREVIEW",msg:"CAMPAIGN NOT ACTIVE"})):(l.originated||s.cmHopper.update({id:l.preview.id,UserId:null}),l.preview=e,l.hopperIds.push(l.preview.id))}).catch(function(e){if(l.disableGetContact=!1,l.hopperIds=[],404===e.status)l.getFirstAvailableContact();else if(e.data&&e.data.errors&&e.data.errors.length){a.hide();for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else a.hide(),i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api preview",msg:e.data?JSON.stringify(e.data.message):e.toString()})})},l.previousContact=function(){if(l.disableGetContact=!0,1<l.hopperIds.length){var e=_.without(l.hopperIds,l.preview.id);return s.cmHopper.getPreview({hopperIds:e,direction:"prev"}).$promise.then(function(e){l.disableGetContact=!1,_.isNil(e)||_.isNil(e.Queue)||!e.Queue.dialActive?(l.hopperIds=[],a.hide(),i.info({title:"PREVIEW",msg:"CAMPAIGN NOT ACTIVE"})):(_.remove(l.hopperIds,function(e){return e==l.preview.id}),l.originated||s.cmHopper.update({id:l.preview.id,UserId:null}),l.preview=e)}).catch(function(e){if(404===e.status)l.hopperIds=[l.preview.id],i.info({title:"PREVIEW",msg:"PREVIOUS CONTACTS NOT AVAILABLE"});else if(e.data&&e.data.errors&&e.data.errors.length){l.hopperIds=[],a.hide();for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else l.hopperIds=[],a.hide(),i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api preview",msg:e.data?JSON.stringify(e.data.message):e.toString()})})}},l.getFirstAvailableContact=function(){return l.disableGetContact=!0,i.info({title:"PREVIEW",msg:"CONTACTS NOT AVAILABLE. REWINDING THE LIST"}),s.cmHopper.getPreview({hopperIds:[l.preview.id],direction:"next"}).$promise.then(function(e){_.isNil(e)||_.isNil(e.Queue)||!e.Queue.dialActive?(a.hide(),i.info({title:"PREVIEW",msg:"CAMPAIGN NOT ACTIVE"})):(l.originated||s.cmHopper.update({id:l.preview.id,UserId:null}),l.preview=e,l.hopperIds.push(l.preview.id))}).catch(function(e){if(a.hide(),404===e.status)i.info({title:"PREVIEW",msg:"CONTACTS NOT AVAILABLE"});else if(e.data&&e.data.errors&&e.data.errors.length)for(var n=0;n<e.data.errors.length;n+=1)i.error({title:e.data.errors[n].type,msg:e.data.errors[n].message});else i.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api preview",msg:e.data?JSON.stringify(e.data.message):e.toString()})}).finally(function(){l.disableGetContact=!1})},l.isCustomField=function(e){return _.startsWith(e,"cf_")},l.isHiddenField=function(e){return _.includes(["Company","CompanyId","ListId","UserId","createdAt","deletedAt","id","priority","scheduledat","tags","updatedAt","facebook","twitter","skype","wechat","teams","viber","line","telegram"],e)},l.isNil=function(e){return _.isNil(e)},e.$on("$destroy",function(){l.originated||s.cmHopper.update({id:l.preview.id,UserId:null})})}e.$inject=["$scope","$state","$location","$mdDialog","toasty","api","preview","customFields"],angular.module("app.toolbar").controller("PreviewDialogController",e)}(),function(){"use strict";function e(n,t,s,a,o,e,i,r,l,d,c,m,u,p,g,v,h,f,b,A,E,y){var S,T=this;T.voiceQueues={},T.polling=!0,t.global={search:""},T.pauses=[],T.license=b,T.currentUser=v.getCurrentUser(),T.unreadTotalMessages=0,T.unreadTotalGroupMessages=0,T.contacts=0,"agent"===T.currentUser.role&&(S=E(function(){_.some(T.voiceQueues,{dialMethod:"preview",dialActive:!0})&&T.license.dialer&&T.polling?(T.polling=!1,f.cmHopper.getOpenContacts().$promise.then(function(e){e&&_.isNumber(e.contacts)&&(T.contacts=e.contacts)}).finally(function(){T.polling=!0})):T.contacts=0},14999)),T.setting=A,T.bodyEl=angular.element("body"),T.conf={realm:"asterisk",host:e.host(),protocol:e.protocol(),soundPlayerId:"local-audio",remotePlayerId:"remote-audio",ua:"Motion WebRTC Bar 0.2.0",license:T.license.webrtc,phoneBarExpires:T.currentUser.phoneBarExpires,phoneBarPrefixRequired:T.currentUser.phoneBarPrefixRequired,wssPort:T.currentUser.wssPort},T.webRTCSessions=[],T.query={id:v.getCurrentUser().id,fields:"id,name,type,dialMethod,dialActive",channel:"voice",nolimit:!0},T.userStatusOptions=[{title:"Online",icon:"icon-checkbox-marked-circle",color:"#4CAF50"},{title:"Away",icon:"icon-clock",color:"#FFC107"},{title:"Do not Disturb",icon:"icon-minus-circle",color:"#F44336"},{title:"Invisible",icon:"icon-checkbox-blank-circle-outline",color:"#BDBDBD"},{title:"Offline",icon:"icon-checkbox-blank-circle-outline",color:"#616161"}],T.languages={ar:{title:"Arabic",translation:"TOOLBAR.ARABIC",code:"ar",flag:"ar"},cs:{title:"Czech",translation:"TOOLBAR.CZECH",code:"cs",flag:"cs"},da:{title:"Danish",translation:"TOOLBAR.DANISH",code:"da",flag:"da"},de:{title:"German",translation:"TOOLBAR.GERMAN",code:"de",flag:"de"},en:{title:"English",translation:"TOOLBAR.ENGLISH",code:"en",flag:"us"},es:{title:"Spanish",translation:"TOOLBAR.SPANISH",code:"es",flag:"es"},fa:{title:"Persian",translation:"TOOLBAR.PERSIAN",code:"fa",flag:"fa"},fi:{title:"Finnish",translation:"TOOLBAR.FINNISH",code:"fi",flag:"fi"},fr:{title:"French",translation:"TOOLBAR.FRENCH",code:"fr",flag:"fr"},he:{title:"Hebrew",translation:"TOOLBAR.HEBREW",code:"he",flag:"he"},hi:{title:"Hindi",translation:"TOOLBAR.HINDI",code:"hi",flag:"hi"},hu:{title:"Hungarian",translation:"TOOLBAR.HUNGARIAN",code:"hu",flag:"hu"},id:{title:"Indonesian",translation:"TOOLBAR.INDONESIAN",code:"id",flag:"id"},it:{title:"Italian",translation:"TOOLBAR.ITALIAN",code:"it",flag:"it"},ja:{title:"Japanese",translation:"TOOLBAR.JAPANESE",code:"ja",flag:"ja"},ko:{title:"Korean",translation:"TOOLBAR.KOREAN",code:"ko",flag:"ko"},lv:{title:"Latvian",translation:"TOOLBAR.LATVIAN",code:"lv",flag:"lv"},nl:{title:"Dutch",translation:"TOOLBAR.DUTCH",code:"nl",flag:"nl"},no:{title:"Norwegian",translation:"TOOLBAR.NORWEGIAN",code:"no",flag:"no"},pl:{title:"Polish",translation:"TOOLBAR.POLISH",code:"pl",flag:"pl"},"pt-BR":{title:"Brazilian",translation:"TOOLBAR.BRAZILIAN",code:"pt-BR",flag:"pt-BR"},"pt-PT":{title:"Portuguese",translation:"TOOLBAR.PORTUGUESE",code:"pt-PT",flag:"pt-PT"},ru:{title:"Russian",translation:"TOOLBAR.RUSSIAN",code:"ru",flag:"ru"},sv:{title:"Swedish",translation:"TOOLBAR.SWEDISH",code:"sv",flag:"sv"},tr:{title:"Turkish",translation:"TOOLBAR.TURKISH",code:"tr",flag:"tr"},"zh-CN":{title:"ChineseSimplified",translation:"TOOLBAR.CHINESESIMPLIFIED",code:"zh-CN",flag:"zh-CN"},"zh-TW":{title:"ChineseTraditional",translation:"TOOLBAR.CHINESETRADITIONAL",code:"zh-TW",flag:"zh-TW"}};var I=["ar","fa","he"];function C(){h.connect(),h.on("user:update",T.onUserUpdate),h.on("user:called",T.onUserCalled),h.on("chatInternalMessage:save",T.onInternalMessageSave),h.on("chatInternalMessage:update",T.onInternalMessageUpdate),h.on("userVoiceQueue:save",T.onUserVoiceQueue),h.on("voiceQueue:save",T.onVoiceQueue),h.on("userVoiceQueue:remove",T.onUserVoiceQueue),h.on("voiceQueue:remove",T.onVoiceQueue),h.on("voiceQueue:update",T.onVoiceQueue),h.on("user:forcelogout",D),h.on("userNotification:send",P)}function O(){h.disconnect("logout")}function w(e){T.voiceQueues=e?_.keyBy(e.rows?e.rows:[],"id"):{}}function R(){T.promise=f.user.getQueues(T.query,w).$promise}function x(e){return O(),v.logout(e).then(function(){return t.$broadcast("webrtc::logout"),a.go("app.login")}).catch(function(e){console.error(e)})}function N(e,n){c.show({controller:"ChangePasswordController",controllerAs:"vm",templateUrl:"app/toolbar/changepassword/changepassword.html",parent:angular.element(m.body),targetEvent:e,clickOutsideToClose:!n,escapeToClose:!n,locals:{user:T.user,setting:A,reset:n}})}function D(e){if(console.debug("onForceLogout -> data",e),e.user.id===T.user.id&&0!==T.user.showWebBar)return O(),v.logout(!0).then(function(){t.$broadcast("webrtc::logout"),c.show(c.alert().parent(angular.element(m.body)).clickOutsideToClose(!1).escapeToClose(!1).title(r.instant("TOOLBAR.WARNING")).textContent(r.instant("TOOLBAR.USER_FORCE_LOGOUT",{ip:e.ip})).ok("OK")).then(function(){return a.go("app.login")})}).catch(function(e){console.error(e)})}function P(e){var n=e;if(T.currentUser.id===n.recipient){var t=r.instant("TOOLBAR.NOTIFICATION_TITLE",{sender:n.sender}),a=n.description?r.instant("TOOLBAR.NOTIFICATION_TITLE_RECIPIENT",{recipient:n.description}):null;p.wait({title:a?t+" "+a:t,msg:n.content,clickToClose:!1,timeout:!1,sound:n.beep,html:!0})}}T.toggleSidenav=function(e){i(e).toggle()},T.logout=x,T.changeLanguage=function(e){if(!T.languages.hasOwnProperty(e.code)){return void l.show({template:'<md-toast id="language-message" layout="column" layout-align="center start"><div class="md-toast-content">Motion supports multiple translations through angular-translate module, but currently we do not support the selected language. If you want to help us, send us a message.</div></md-toast>',hideDelay:7e3,position:"top right",parent:"#content"})}T.selectedLanguage=e,u.put("motion.language",e.code),r.use(e.code),"app.callysquare.projects.edit"===a.current.name&&d.location.reload();0<=I.indexOf(e.code)?p.info({title:r.instant("TOOLBAR.CHANGE_LANGUAGE_TITLE"),msg:r.instant("TOOLBAR.CHANGE_LANGUAGE_MESSAGE")}):n.$parent.$parent.vm.direction="ltr"},T.setUserStatus=function(e){T.userStatus=e},T.toggleHorizontalMobileMenu=function(){T.bodyEl.toggleClass("ms-navigation-horizontal-mobile-menu-active")},T.toggleMsNavigationFolded=function(){g.toggleFolded()},T.search=function(n){for(var e=[],t=g.getFlatNavigation(),a=s.defer(),i=0;i<t.length;i++)t[i].uisref&&e.push(t[i]);n&&(e=e.filter(function(e){if(-1<angular.lowercase(e.title).search(angular.lowercase(n)))return!0}));return o(function(){a.resolve(e)},1e3),a.promise},T.searchResultClick=function(e){e.uisref&&(e.stateParams?a.go(e.state,e.stateParams):a.go(e.state))},T.openSettings=function(e){t.$broadcast("webrtc::settings")},T.changePassword=N,T.isAgent=function(){return v.getCurrentUser()&&v.hasRole("agent")},T.onUserUpdate=function(e){if(e.id===T.user.id)if("agent"===e.role&&_.isBoolean(e.online)&&!e.online)if(0!==T.user.showWebBar){var t;O();var n=c.confirm({title:r.instant("TOOLBAR.WARNING")+"!",htmlContent:"<span>"+r.instant("TOOLBAR.SOMEONE_LOGGED_YOU_OUT")+"</span><br><span>"+r.instant("TOOLBAR.SESSION_TIMEOUT")+"</span>",ariaLabel:r.instant("TOOLBAR.WARNING")+"!",ok:r.instant("TOOLBAR.STAY_LOGGED"),cancel:r.instant("TOOLBAR.LOGOUT"),onComplete:function(e,n){t=setTimeout(function(){c.cancel()},6e4)}});c.show(n).then(function(){return clearTimeout(t),v.queueLogin().then(function(){C(),_.merge(T.user,e),v.setCurrentUser(T.user)})}).catch(function(e){clearTimeout(t),x(!0)})}else x(!0);else _.merge(T.user,e),v.setCurrentUser(T.user)},T.onUserCalled=function(e){if(2===T.currentUser.showWebBar&&"agent"===T.currentUser.role){var n=T.currentUser.privacyEnabled?y.mask(e.calleridnum):e.calleridnum;p.info({title:"WebRTC Popup",msg:"<div> <span>Call from: "+n+"</span><br> <span>Queue: "+e.queue+"</span><br> <span>Extra: "+(e.variables&&e.variables.extravar?e.variables.extravar:"Not defined")+"</span><br> </div>",showClose:!0,timeout:1e4,html:!0})}},T.pause=function(e){var n=e||"DEFAULT PAUSE";_.some(T.webRTCSessions,["confirmed",!0])&&(n="#"+n);return f.user.pause({id:T.user.id,type:n}).$promise.catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:PAUSEUSER",msg:e.status?JSON.stringify(e.data):e.toString()})})},T.unpause=function(){return f.user.unpause({id:T.user.id}).$promise.catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:UNPAUSEUSER",msg:e.status?JSON.stringify(e.data):e.toString()})})},T.preview=function(n){return T.disable=!0,f.cmHopper.getPreview().$promise.then(function(e){_.isNil(e)||_.isNil(e.Queue)||!e.Queue.dialActive?p.info({title:"PREVIEW",msg:"CAMPAIGN NOT ACTIVE"}):c.show({controller:"PreviewDialogController",controllerAs:"vm",templateUrl:"app/toolbar/preview/dialog.html",parent:angular.element(m.body),targetEvent:n,clickOutsideToClose:!0,locals:{preview:e,currentUser:T.currentUser},resolve:{customFields:["apiResolver",function(e){return e.resolve("cmCustomField@get",{nolimit:!0})}]}})}).catch(function(e){if(404===e.status)p.info({title:"PREVIEW",msg:"CONTACT NOT AVAILABLE"});else if(e.data&&e.data.errors&&e.data.errors.length){T.errors=e.data.errors||[{message:e.toString(),type:"api.openchannelMessage.accept"}];for(var n=0;n<e.data.errors.length;n+=1)p.error({title:e.data.errors[n].type,msg:e.data.errors[n].message})}else p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"api.openchannelMessage.accept",msg:e.data?JSON.stringify(e.data.message):e.toString()})}).finally(function(){T.disable=!1})},T.getLogo=function(){return T.setting.defaultHeaderWhiteLabel?"xCALLY Motion":T.setting.headerWhiteLabel},T.userIsNotPhonebar=function(){return"admin"===T.currentUser.role||"user"===T.currentUser.role||"agent"===T.currentUser.role&&0!==T.currentUser.showWebBar},T.onInternalMessageSave=function(e){e.ToId!==T.currentUser.id||e.ChatGroupId||(T.unreadTotalMessages+=1);e.ToId===T.currentUser.id&&e.FromId!==T.currentUser.id&&!e.read&&e.ChatGroupId&&T.unreadTotalGroupMessages++},T.onInternalMessageUpdate=function(e){e.ToId===T.currentUser.id&&e.read&&0<T.unreadTotalMessages&&!e.ChatGroupId&&(T.unreadTotalMessages-=1);e.ToId===T.currentUser.id&&e.read&&e.ChatGroupId&&0<T.unreadTotalGroupMessages&&T.unreadTotalGroupMessages--},T.onUserVoiceQueue=function(e){_.toInteger(e.UserId)===v.getCurrentUser().id&&R()},T.onVoiceQueue=function(e){R()},function(){T.user=v.getCurrentUser(),T.conf.ha1=T.user.md5secret,T.conf.id=T.user.id,T.conf.name=T.user.name,T.conf.fullname=T.user.fullname,T.conf.internal=T.user.internal,T.conf.recording=T.user.phoneBarEnableRecording,T.conf.autoAnswer=T.user.phoneBarAutoAnswer,T.conf.enableSettings=T.user.phoneBarEnableSettings,T.conf.enableDtmfTone=T.user.phoneBarEnableDtmfTone,T.conf.autoAnswerDelay=T.user.phoneBarAutoAnswerDelay,T.userStatus=T.userStatusOptions[0];var e=u.get("motion.language");e&&T.languages.hasOwnProperty(e)?T.selectedLanguage=T.languages[e]:T.selectedLanguage=T.languages[r.preferredLanguage()];if(f.pause.get({fields:"name",nolimit:!0}).$promise.then(function(e){T.pauses=e.rows?e.rows:[]}).catch(function(e){p.error({title:e.status?"API:"+e.status+" - "+e.statusText:"SYSTEM:GETPAUSES",msg:e.status?JSON.stringify(e.data):e.toString()})}),"LOCAL_LOGIN"==v.getAuthenticationType()&&T.setting.securePassword)if(T.user.passwordResetAt){var n=moment(T.user.passwordResetAt).add(T.setting.passwordExpiresDays||90,"day");moment().isAfter(n)?N(null,!0):moment().add(15,"day").isAfter(n)&&p.warning({title:r.instant("TOOLBAR.WARNING")+"!",msg:r.instant("TOOLBAR.PASSWORD_EXPIRE_REMAINING_DAYS")+": "+Math.ceil(n.diff(moment(),"days",!0)),timeout:2e4})}else N(null,!0)}(),R(),C(),f.chatInternalMessage.get({fields:"FromId",ToId:T.currentUser.id,read:!1,nolimit:!0}).$promise.then(function(e){T.unreadTotalMessages=e.rows.length}),n.$on("$destroy",function(){h.removeAllListeners("user:called"),h.removeAllListeners("user:update"),h.removeAllListeners("chatInternalMessage:save"),h.removeAllListeners("chatInternalMessage:update"),h.removeAllListeners("userVoiceQueue:save"),h.removeAllListeners("voiceQueue:save"),h.removeAllListeners("userVoiceQueue:remove"),h.removeAllListeners("voiceQueue:remove"),h.removeAllListeners("voiceQueue:update"),h.removeAllListeners("user:forcelogout"),h.removeAllListeners("userNotification:send"),S&&(E.cancel(S),S=null)})}e.$inject=["$scope","$rootScope","$q","$state","$timeout","$location","$mdSidenav","$translate","$mdToast","$window","$mdDialog","$document","$cookies","toasty","msNavigationService","Auth","socket","api","license","setting","$interval","privacyManager"],angular.module("app.toolbar").controller("ToolbarController",e)}();var urlParams=function(e){var n=new Object,t=e.lastIndexOf("?");if(0<t)for(var a=e.substring(t+1).split("&"),i=0;i<a.length;i++)0<(t=a[i].indexOf("="))&&(n[a[i].substring(0,t)]=a[i].substring(t+1));return n}(window.location.href),t0=new Date,MAX_REQUEST_SIZE=10485760,MAX_WIDTH=12e3,MAX_HEIGHT=12e3,EXPORT_URL="http://exp.draw.io/ImageExport2/export",SHARE_HOST="http://localhost:3000",SAVE_URL="api/square/projects/",VARIABLE_URL="/api/variables",STENCIL_PATH="/assets/plugins/square/stencils",SHAPES_PATH="/assets/plugins/square/shapes",IMAGE_PATH="/assets/plugins/square/images",STYLE_PATH="/assets/plugins/square/styles",CSS_PATH="/assets/plugins/square/styles",OPEN_FORM="api/square/projects/open",TEMPLATE_PATH="/assets/plugins/square/templates",RESOURCES_PATH="/assets/plugins/square/resources",RESOURCE_BASE=RESOURCES_PATH+"/grapheditor",CRUD_PERMISSIONS={readOnly:!1,canEdit:!1,canDelete:!1},tapAndHoldStartsConnection=!0,showConnectorImg=!0,mxLoadResources=!1,mxLanguages=["it","fr","ko","es","sv","ru","de","ja","zh-CN","zh-TW","nl","fi","da","pt-BR","pt-PT","no","hi","tr","fa"],mxLanguage="en",match=document.cookie.match(new RegExp("(^| )motion.language=([^;]+)"));match&&mxLanguages.includes(match[2])&&(mxLanguage=match[2]);var mxBasePath="assets/plugins/mxgraph",mxClient={VERSION:"2.0.0.0",IS_IE:0<=navigator.userAgent.indexOf("MSIE"),IS_IE6:0<=navigator.userAgent.indexOf("MSIE 6"),IS_QUIRKS:0<=navigator.userAgent.indexOf("MSIE")&&(null==document.documentMode||5==document.documentMode),VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:0<=navigator.userAgent.indexOf("Mozilla/")&&navigator.userAgent.indexOf("MSIE")<0,IS_OP:0<=navigator.userAgent.indexOf("Opera/"),IS_OT:navigator.userAgent.indexOf("Presto/2.4.")<0&&navigator.userAgent.indexOf("Presto/2.3.")<0&&navigator.userAgent.indexOf("Presto/2.2.")<0&&navigator.userAgent.indexOf("Presto/2.1.")<0&&navigator.userAgent.indexOf("Presto/2.0.")<0&&navigator.userAgent.indexOf("Presto/1.")<0,IS_SF:0<=navigator.userAgent.indexOf("AppleWebKit/")&&navigator.userAgent.indexOf("Chrome/")<0,IS_GC:0<=navigator.userAgent.indexOf("Chrome/"),IS_MT:0<=navigator.userAgent.indexOf("Firefox/")&&navigator.userAgent.indexOf("Firefox/1.")<0&&navigator.userAgent.indexOf("Firefox/2.")<0||0<=navigator.userAgent.indexOf("Iceweasel/")&&navigator.userAgent.indexOf("Iceweasel/1.")<0&&navigator.userAgent.indexOf("Iceweasel/2.")<0||0<=navigator.userAgent.indexOf("SeaMonkey/")&&navigator.userAgent.indexOf("SeaMonkey/1.")<0||0<=navigator.userAgent.indexOf("Iceape/")&&navigator.userAgent.indexOf("Iceape/1.")<0,IS_SVG:0<=navigator.userAgent.indexOf("Firefox/")||0<=navigator.userAgent.indexOf("Iceweasel/")||0<=navigator.userAgent.indexOf("Seamonkey/")||0<=navigator.userAgent.indexOf("Iceape/")||0<=navigator.userAgent.indexOf("Galeon/")||0<=navigator.userAgent.indexOf("Epiphany/")||0<=navigator.userAgent.indexOf("AppleWebKit/")||0<=navigator.userAgent.indexOf("Gecko/")||0<=navigator.userAgent.indexOf("Opera/"),NO_FO:0<=navigator.userAgent.indexOf("Firefox/1.")||0<=navigator.userAgent.indexOf("Iceweasel/1.")||0<=navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/2.")||0<=navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/1.")||0<=navigator.userAgent.indexOf("Camino/1.")||0<=navigator.userAgent.indexOf("Epiphany/2.")||0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("MSIE")||0<=navigator.userAgent.indexOf("Mozilla/2."),IS_VML:"MICROSOFT INTERNET EXPLORER"==navigator.appName.toUpperCase(),IS_MAC:0<navigator.userAgent.toUpperCase().indexOf("MACINTOSH"),IS_TOUCH:0<navigator.userAgent.toUpperCase().indexOf("IPAD")||0<navigator.userAgent.toUpperCase().indexOf("IPOD")||0<navigator.userAgent.toUpperCase().indexOf("IPHONE")||0<navigator.userAgent.toUpperCase().indexOf("ANDROID"),IS_LOCAL:document.location.href.indexOf("http://")<0&&document.location.href.indexOf("https://")<0,isBrowserSupported:function(){return mxClient.IS_VML||mxClient.IS_SVG},link:function(e,n,t){if(t=t||document,mxClient.IS_IE6)t.write('<link rel="'+e+'" href="'+n+'" charset="ISO-8859-1" type="text/css"/>');else{var a=t.createElement("link");a.setAttribute("rel",e),a.setAttribute("href",n),a.setAttribute("charset","ISO-8859-1"),a.setAttribute("type","text/css"),t.getElementsByTagName("head")[0].appendChild(a)}},include:function(e){document.write('<script src="'+e+'"><\/script>')},dispose:function(){for(var e=0;e<mxEvent.objects.length;e++)null!=mxEvent.objects[e].mxListenerList&&mxEvent.removeAllListeners(mxEvent.objects[e])}};if(mxClient.IS_OP&&mxClient.IS_OT?mxClient.CSS_PREFIX="O":mxClient.IS_SF||mxClient.IS_GC?mxClient.CSS_PREFIX="Webkit":mxClient.IS_MT?mxClient.CSS_PREFIX="Moz":mxClient.IS_IE&&9<=document.documentMode&&(mxClient.CSS_PREFIX="ms"),void 0===mxLoadResources&&(mxLoadResources=!0),"undefined"==typeof mxResourceExtension&&(mxResourceExtension=".txt"),"undefined"==typeof mxLoadStylesheets&&(mxLoadStylesheets=!0),void 0!==mxBasePath&&0<mxBasePath.length?("/"==mxBasePath.substring(mxBasePath.length-1)&&(mxBasePath=mxBasePath.substring(0,mxBasePath.length-1)),mxClient.basePath=mxBasePath):mxClient.basePath=".","undefined"!=typeof mxImageBasePath&&0<mxImageBasePath.length?("/"==mxImageBasePath.substring(mxImageBasePath.length-1)&&(mxImageBasePath=mxImageBasePath.substring(0,mxImageBasePath.length-1)),mxClient.imageBasePath=mxImageBasePath):mxClient.imageBasePath=mxClient.basePath+"/images",mxClient.language=void 0!==mxLanguage?mxLanguage:mxClient.IS_IE?navigator.userLanguage:navigator.language,mxClient.defaultLanguage="undefined"!=typeof mxDefaultLanguage?mxDefaultLanguage:"en",mxLoadStylesheets&&mxClient.link("stylesheet",mxClient.basePath+"/css/common.css"),void 0!==mxLanguages&&(mxClient.languages=mxLanguages),mxClient.IS_IE){if(9<=document.documentMode)mxClient.IS_VML=!1,mxClient.IS_SVG=!0;else{8==document.documentMode?(document.namespaces.add(mxClient.VML_PREFIX,"urn:schemas-microsoft-com:vml","#default#VML"),document.namespaces.add(mxClient.OFFICE_PREFIX,"urn:schemas-microsoft-com:office:office","#default#VML")):(document.namespaces.add(mxClient.VML_PREFIX,"urn:schemas-microsoft-com:vml"),document.namespaces.add(mxClient.OFFICE_PREFIX,"urn:schemas-microsoft-com:office:office"));var ss=document.createStyleSheet();ss.cssText="v\\:*{behavior:url(#default#VML)}o\\:*{behavior:url(#default#VML)}",mxLoadStylesheets&&mxClient.link("stylesheet",mxClient.basePath+"/css/explorer.css")}window.attachEvent("onunload",mxClient.dispose)}var mxLog={consoleName:"Console",TRACE:!1,DEBUG:!0,WARN:!0,buffer:"",init:function(){if(null==mxLog.window&&null!=document.body){var e=mxLog.consoleName+" - mxGraph "+mxClient.VERSION,n=document.createElement("table");n.setAttribute("width","100%"),n.setAttribute("height","100%");var t=document.createElement("tbody"),a=document.createElement("tr"),i=document.createElement("td");if(i.style.verticalAlign="top",mxLog.textarea=document.createElement("textarea"),mxLog.textarea.setAttribute("readOnly","true"),mxLog.textarea.style.height="100%",mxLog.textarea.style.resize="none",mxLog.textarea.value=mxLog.buffer,mxLog.textarea.style.width=mxClient.IS_NS&&"BackCompat"!=document.compatMode?"99%":"100%",i.appendChild(mxLog.textarea),a.appendChild(i),t.appendChild(a),a=document.createElement("tr"),mxLog.td=document.createElement("td"),mxLog.td.style.verticalAlign="top",mxLog.td.setAttribute("height","30px"),a.appendChild(mxLog.td),t.appendChild(a),n.appendChild(t),mxLog.addButton("Info",function(e){mxLog.info()}),mxLog.addButton("DOM",function(e){e=mxUtils.getInnerHtml(document.body),mxLog.debug(e)}),mxLog.addButton("Trace",function(e){mxLog.TRACE=!mxLog.TRACE,mxLog.TRACE?mxLog.debug("Tracing enabled"):mxLog.debug("Tracing disabled")}),mxLog.addButton("Copy",function(e){try{mxUtils.copy(mxLog.textarea.value)}catch(e){mxUtils.alert(e)}}),mxLog.addButton("Show",function(e){try{mxUtils.popup(mxLog.textarea.value)}catch(e){mxUtils.alert(e)}}),mxLog.addButton("Clear",function(e){mxLog.textarea.value=""}),a=t=0,a="number"==typeof window.innerWidth?(t=window.innerHeight,window.innerWidth):(t=document.documentElement.clientHeight||document.body.clientHeight,document.body.clientWidth),mxLog.window=new mxWindow(e,n,Math.max(0,a-320),Math.max(0,t-210),300,160),mxLog.window.setMaximizable(!0),mxLog.window.setScrollable(!1),mxLog.window.setResizable(!0),mxLog.window.setClosable(!0),mxLog.window.destroyOnClose=!1,(mxClient.IS_NS||mxClient.IS_IE)&&!mxClient.IS_GC&&!mxClient.IS_SF&&"BackCompat"!=document.compatMode){var s=mxLog.window.getElement();e=function(e,n){mxLog.textarea.style.height=Math.max(0,s.offsetHeight-70)+"px"};mxLog.window.addListener(mxEvent.RESIZE_END,e),mxLog.window.addListener(mxEvent.MAXIMIZE,e),mxLog.window.addListener(mxEvent.NORMALIZE,e),mxLog.textarea.style.height="92px"}}},info:function(){mxLog.writeln(mxUtils.toString(navigator))},addButton:function(e,n){var t=document.createElement("button");mxUtils.write(t,e),mxEvent.addListener(t,"click",n),mxLog.td.appendChild(t)},isVisible:function(){return null!=mxLog.window&&mxLog.window.isVisible()},show:function(){mxLog.setVisible(!0)},setVisible:function(e){null==mxLog.window&&mxLog.init(),null!=mxLog.window&&mxLog.window.setVisible(e)},enter:function(e){if(mxLog.TRACE)return mxLog.writeln("Entering "+e),(new Date).getTime()},leave:function(e,n){if(mxLog.TRACE){var t=0!=n?" ("+((new Date).getTime()-n)+" ms)":"";mxLog.writeln("Leaving "+e+t)}},debug:function(){mxLog.DEBUG&&mxLog.writeln.apply(this,arguments)},warn:function(){mxLog.WARN&&mxLog.writeln.apply(this,arguments)},write:function(){for(var e="",n=0;n<arguments.length;n++)e+=arguments[n],n<arguments.length-1&&(e+=" ");null!=mxLog.textarea?(mxLog.textarea.value+=e,0<=navigator.userAgent.indexOf("Presto/2.5")&&(mxLog.textarea.style.visibility="hidden",mxLog.textarea.style.visibility="visible"),mxLog.textarea.scrollTop=mxLog.textarea.scrollHeight):mxLog.buffer+=e},writeln:function(){for(var e="",n=0;n<arguments.length;n++)e+=arguments[n],n<arguments.length-1&&(e+=" ");mxLog.write(e+"\n")}},mxObjectIdentity={FIELD_NAME:"mxObjectId",counter:0,get:function(e){if("object"==typeof e&&null==e[mxObjectIdentity.FIELD_NAME]){var n=mxUtils.getFunctionName(e.constructor);e[mxObjectIdentity.FIELD_NAME]=n+"#"+mxObjectIdentity.counter++}return e[mxObjectIdentity.FIELD_NAME]},clear:function(e){"object"==typeof e&&delete e[mxObjectIdentity.FIELD_NAME]}};function mxDictionary(){this.clear()}mxDictionary.prototype.map=null,mxDictionary.prototype.clear=function(){this.map={}},mxDictionary.prototype.get=function(e){return e=mxObjectIdentity.get(e),this.map[e]},mxDictionary.prototype.put=function(e,n){var t=mxObjectIdentity.get(e),a=this.map[t];return this.map[t]=n,a},mxDictionary.prototype.remove=function(e){e=mxObjectIdentity.get(e);var n=this.map[e];return delete this.map[e],n},mxDictionary.prototype.getKeys=function(){var e,n=[];for(e in this.map)n.push(e);return n},mxDictionary.prototype.getValues=function(){var e,n=[];for(e in this.map)n.push(this.map[e]);return n},mxDictionary.prototype.visit=function(e){for(var n in this.map)e(n,this.map[n])};var mxResources={resources:[],extension:mxResourceExtension,resourcesEncoded:!1,loadDefaultBundle:!0,loadSpecialBundle:!0,isLanguageSupported:function(e){return null==mxClient.languages||0<=mxUtils.indexOf(mxClient.languages,e)},getDefaultBundle:function(e,n){return mxResources.loadDefaultBundle||!mxResources.isLanguageSupported(n)?e+mxResources.extension:null},getSpecialBundle:function(e,n){if(null==mxClient.languages||!this.isLanguageSupported(n)){var t=n.indexOf("-");0<t&&(n=n.substring(0,t))}return mxResources.loadSpecialBundle&&mxResources.isLanguageSupported(n)&&n!=mxClient.defaultLanguage?e+"_"+n+mxResources.extension:null},add:function(e,n){if((n=null!=n?n:mxClient.language)!=mxConstants.NONE){var t=mxResources.getDefaultBundle(e,n);if(null!=t)try{var a=mxUtils.load(t);a.isReady()&&mxResources.parse(a.getText())}catch(e){}if(null!=(t=mxResources.getSpecialBundle(e,n)))try{(a=mxUtils.load(t)).isReady()&&mxResources.parse(a.getText())}catch(e){}}},parse:function(e){if(null!=e){e=e.split("\n");for(var n=0;n<e.length;n++)if("#"!=e[n].charAt(0)){var t=e[n].indexOf("=");if(0<t){var a=e[n].substring(0,t),i=e[n].length;13==e[n].charCodeAt(i-1)&&i--,t=e[n].substring(t+1,i),this.resourcesEncoded?(t=t.replace(/\\(?=u[a-fA-F\d]{4})/g,"%"),mxResources.resources[a]=unescape(t)):mxResources.resources[a]=t}}}},get:function(e,n,t){if(null==(e=mxResources.resources[e])&&(e=t),null!=e&&null!=n){t=[];for(var a=null,i=0;i<e.length;i++){var s=e.charAt(i);"{"==s?a="":null!=a&&"}"==s?(0<=(a=parseInt(a)-1)&&a<n.length&&t.push(n[a]),a=null):null!=a?a+=s:t.push(s)}e=t.join("")}return e}};function mxPoint(e,n){this.x=null!=e?e:0,this.y=null!=n?n:0}function mxRectangle(e,n,t,a){mxPoint.call(this,e,n),this.width=null!=t?t:0,this.height=null!=a?a:0}mxPoint.prototype.x=null,mxPoint.prototype.y=null,mxPoint.prototype.equals=function(e){return e.x==this.x&&e.y==this.y},mxPoint.prototype.clone=function(){return mxUtils.clone(this)},mxRectangle.prototype=new mxPoint,mxRectangle.prototype.constructor=mxRectangle,mxRectangle.prototype.width=null,mxRectangle.prototype.height=null,mxRectangle.prototype.setRect=function(e,n,t,a){this.x=e,this.y=n,this.width=t,this.height=a},mxRectangle.prototype.getCenterX=function(){return this.x+this.width/2},mxRectangle.prototype.getCenterY=function(){return this.y+this.height/2},mxRectangle.prototype.add=function(e){if(null!=e){var n=Math.min(this.x,e.x),t=Math.min(this.y,e.y),a=Math.max(this.x+this.width,e.x+e.width);e=Math.max(this.y+this.height,e.y+e.height),this.x=n,this.y=t,this.width=a-n,this.height=e-t}},mxRectangle.prototype.grow=function(e){this.x-=e,this.y-=e,this.width+=2*e,this.height+=2*e},mxRectangle.prototype.getPoint=function(){return new mxPoint(this.x,this.y)},mxRectangle.prototype.equals=function(e){return e.x==this.x&&e.y==this.y&&e.width==this.width&&e.height==this.height};var mxEffects={animateChanges:function(l,d,c){var m=0,u=function(){for(var e=!1,n=0;n<d.length;n++){var t=d[n];if(t instanceof mxGeometryChange||t instanceof mxTerminalChange||t instanceof mxValueChange||t instanceof mxChildChange||t instanceof mxStyleChange){var a=l.getView().getState(t.cell||t.child,!1);if(null!=a)if(e=!0,t.constructor!=mxGeometryChange||l.model.isEdge(t.cell))mxUtils.setOpacity(a.shape.node,100*m/10);else{var i=l.getView().scale,s=(t.geometry.x-t.previous.x)*i,o=(t.geometry.y-t.previous.y)*i,r=(t.geometry.width-t.previous.width)*i;i=(t.geometry.height-t.previous.height)*i;0==m?(a.x-=s,a.y-=o,a.width-=r,a.height-=i):(a.x+=s/10,a.y+=o/10,a.width+=r/10,a.height+=i/10),l.cellRenderer.redraw(a),mxEffects.cascadeOpacity(l,t.cell,100*m/10)}}}m<10&&e?(m++,window.setTimeout(u,p)):null!=c&&c()},p=30;u()},cascadeOpacity:function(e,n,t){for(var a=e.model.getChildCount(n),i=0;i<a;i++){var s=e.model.getChildAt(n,i),o=e.getView().getState(s);null!=o&&(mxUtils.setOpacity(o.shape.node,t),mxEffects.cascadeOpacity(e,s,t))}if(null!=(n=e.model.getEdges(n)))for(i=0;i<n.length;i++)null!=(a=e.getView().getState(n[i]))&&mxUtils.setOpacity(a.shape.node,t)},fadeOut:function(e,n,t,a,i,s){a=a||40,i=i||30;var o=n||100;if(mxUtils.setOpacity(e,o),s||null==s){var r=function(){o=Math.max(o-a,0),mxUtils.setOpacity(e,o),0<o?window.setTimeout(r,i):(e.style.visibility="hidden",t&&e.parentNode&&e.parentNode.removeChild(e))};window.setTimeout(r,i)}else e.style.visibility="hidden",t&&e.parentNode&&e.parentNode.removeChild(e)}},mxUtils={errorResource:"none"!=mxClient.language?"error":"",closeResource:"none"!=mxClient.language?"close":"",errorImage:mxClient.imageBasePath+"/error.gif",removeCursors:function(e){if(null!=e.style&&(e.style.cursor=""),null!=(e=e.childNodes))for(var n=e.length,t=0;t<n;t+=1)mxUtils.removeCursors(e[t])},getCurrentStyle:mxClient.IS_IE?function(e){return null!=e?e.currentStyle:null}:function(e){return null!=e?window.getComputedStyle(e,""):null},hasScrollbars:function(e){return null!=(e=mxUtils.getCurrentStyle(e))&&("scroll"==e.overflow||"auto"==e.overflow)},bind:function(e,n){return function(){return n.apply(e,arguments)}},eval:function(a){var b=null;if(0<=a.indexOf("function"))try{eval("var _mxJavaScriptExpression="+a),b=_mxJavaScriptExpression,_mxJavaScriptExpression=null}catch(e){mxLog.warn(e.message+" while evaluating "+a)}else try{b=eval(a)}catch(e){mxLog.warn(e.message+" while evaluating "+a)}return b},findNode:function(e,n,t){var a=e.getAttribute(n);if(null!=a&&a==t)return e;for(e=e.firstChild;null!=e;){if(null!=(a=mxUtils.findNode(e,n,t)))return a;e=e.nextSibling}return null},findNodeByAttribute:9<=document.documentMode?function(e,n,t){var a=null;if(null!=e)if(e.nodeType==mxConstants.NODETYPE_ELEMENT&&e.getAttribute(n)==t)a=e;else for(e=e.firstChild;null!=e&&null==a;)a=mxUtils.findNodeByAttribute(e,n,t),e=e.nextSibling;return a}:mxClient.IS_IE?function(e,n,t){return null==e?null:e.ownerDocument.selectSingleNode("//*[@"+n+"='"+t+"']")}:function(e,n,t){return null==e?null:e.ownerDocument.evaluate("//*[@"+n+"='"+t+"']",e.ownerDocument,null,XPathResult.ANY_TYPE,null).iterateNext()},getFunctionName:function(e){var n=null;if(null!=e)if(null!=e.name)n=e.name;else{for(e=e.toString(),n=9;" "==e.charAt(n);)n++;var t=e.indexOf("(",n);n=e.substring(n,t)}return n},indexOf:function(e,n){if(null!=e&&null!=n)for(var t=0;t<e.length;t++)if(e[t]==n)return t;return-1},remove:function(e,n){var t=null;if("object"==typeof n)for(var a=mxUtils.indexOf(n,e);0<=a;)n.splice(a,1),t=e,a=mxUtils.indexOf(n,e);for(var i in n)n[i]==e&&(delete n[i],t=e);return t},isNode:function(e,n,t,a){return!(null==e||isNaN(e.nodeType)||null!=n&&e.nodeName.toLowerCase()!=n.toLowerCase())&&(null==t||e.getAttribute(t)==a)},getChildNodes:function(e,n){n=n||mxConstants.NODETYPE_ELEMENT;for(var t=[],a=e.firstChild;null!=a;)a.nodeType==n&&t.push(a),a=a.nextSibling;return t},createXmlDocument:function(){var e=null;return document.implementation&&document.implementation.createDocument?e=document.implementation.createDocument("","",null):window.ActiveXObject&&(e=new ActiveXObject("Microsoft.XMLDOM")),e},parseXml:mxClient.IS_IE&&(void 0===document.documentMode||document.documentMode<9)?function(e){var n=mxUtils.createXmlDocument();return n.async="false",n.loadXML(e),n}:function(e){return(new DOMParser).parseFromString(e,"text/xml")},clearSelection:document.selection?function(){document.selection.empty()}:window.getSelection?function(){window.getSelection().removeAllRanges()}:void 0,getPrettyXml:function(e,n,t){var a=[];if(null!=e)if(n=n||" ",t=t||"",e.nodeType==mxConstants.NODETYPE_TEXT)a.push(e.nodeValue);else{a.push(t+"<"+e.nodeName);var i=e.attributes;if(null!=i)for(var s=0;s<i.length;s++){var o=mxUtils.htmlEntities(i[s].nodeValue);a.push(" "+i[s].nodeName+'="'+o+'"')}if(null!=(i=e.firstChild)){for(a.push(">\n");null!=i;)a.push(mxUtils.getPrettyXml(i,n,t+n)),i=i.nextSibling;a.push(t+"</"+e.nodeName+">\n")}else a.push("/>\n")}return a.join("")},removeWhitespace:function(e,n){for(var t=n?e.previousSibling:e.nextSibling;null!=t&&t.nodeType==mxConstants.NODETYPE_TEXT;){var a=n?t.previousSibling:t.nextSibling,i=mxUtils.getTextContent(t);0==mxUtils.trim(i).length&&t.parentNode.removeChild(t),t=a}},htmlEntities:function(e,n){return e=(e=(e=(e=(e=(e||"").replace(/&/g,"&")).replace(/"/g,""")).replace(/\'/g,"'")).replace(/</g,"<")).replace(/>/g,">"),(null==n||n)&&(e=e.replace(/\n/g,"
")),e},isVml:function(e){return null!=e&&"urn:schemas-microsoft-com:vml"==e.tagUrn},getXml:function(e,n){var t="";return null!=e&&(t=null==(t=e.xml)?e.innerHTML?e.innerHTML:(new XMLSerializer).serializeToString(e):t.replace(/\r\n\t[\t]*/g,"").replace(/>\r\n/g,">").replace(/\r\n/g,"\n")),t.replace(/\n/g,n||"
")},getTextContent:function(e){var n="";return null!=e&&(null!=e.firstChild&&(e=e.firstChild),n=e.nodeValue||""),n},getInnerHtml:mxClient.IS_IE?function(e){return null!=e?e.innerHTML:""}:function(e){return null!=e?(new XMLSerializer).serializeToString(e):""},getOuterHtml:mxClient.IS_IE?function(e){if(null==e)return"";if(null!=e.outerHTML)return e.outerHTML;var n=[];n.push("<"+e.nodeName);var t=e.attributes;if(null!=t)for(var a=0;a<t.length;a++){var i=t[a].nodeValue;null!=i&&0<i.length&&(n.push(" "),n.push(t[a].nodeName),n.push('="'),n.push(i),n.push('"'))}return 0==e.innerHTML.length?n.push("/>"):(n.push(">"),n.push(e.innerHTML),n.push("</"+e.nodeName+">")),n.join("")}:function(e){return null!=e?(new XMLSerializer).serializeToString(e):""},write:function(e,n){var t=e.ownerDocument.createTextNode(n);return null!=e&&e.appendChild(t),t},writeln:function(e,n){var t=e.ownerDocument.createTextNode(n);return null!=e&&(e.appendChild(t),e.appendChild(document.createElement("br"))),t},br:function(e,n){n=n||1;for(var t=null,a=0;a<n;a++)null!=e&&(t=e.ownerDocument.createElement("br"),e.appendChild(t));return t},button:function(e,n,t){return t=(t=null!=t?t:document).createElement("button"),mxUtils.write(t,e),mxEvent.addListener(t,"click",function(e){n(e)}),t},para:function(e,n){var t=document.createElement("p");return mxUtils.write(t,n),null!=e&&e.appendChild(t),t},addTransparentBackgroundFilter:function(e){e.style.filter+="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+mxClient.imageBasePath+"/transparent.gif', sizingMethod='scale')"},linkAction:function(e,n,t,a,i){return mxUtils.link(e,n,function(){t.execute(a)},i)},linkInvoke:function(e,n,t,a,i,s){return mxUtils.link(e,n,function(){t[a](i)},s)},link:function(e,n,t,a){var i=document.createElement("span");return i.style.color="blue",i.style.textDecoration="underline",i.style.cursor="pointer",null!=a&&(i.style.paddingLeft=a+"px"),mxEvent.addListener(i,"click",t),mxUtils.write(i,n),null!=e&&e.appendChild(i),i},fit:function(e){var n=parseInt(e.offsetLeft),t=parseInt(e.offsetWidth),a=document.body,i=document.documentElement,s=(a.scrollLeft||i.scrollLeft)+(a.clientWidth||i.clientWidth);s<n+t&&(e.style.left=Math.max(a.scrollLeft||i.scrollLeft,s-t)+"px"),n=parseInt(e.offsetTop),t=parseInt(e.offsetHeight),(s=(a.scrollTop||i.scrollTop)+Math.max(a.clientHeight||0,i.clientHeight))<n+t&&(e.style.top=Math.max(a.scrollTop||i.scrollTop,s-t)+"px")},open:function(e){if(mxClient.IS_NS){try{netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect")}catch(e){return mxUtils.alert("Permission to read file denied."),""}var n=Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);return n.initWithPath(e),n.exists()?((e=Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance(Components.interfaces.nsIFileInputStream)).init(n,1,4,null),(n=Components.classes["@mozilla.org/scriptableinputstream;1"].createInstance(Components.interfaces.nsIScriptableInputStream)).init(e),n.read(n.available())):(mxUtils.alert("File not found."),"")}return e=(n=new ActiveXObject("Scripting.FileSystemObject").OpenTextFile(e,1)).readAll(),n.close(),e},save:function(e,n){if(mxClient.IS_NS){try{netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect")}catch(e){return void mxUtils.alert("Permission to write file denied.")}var t=Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);t.initWithPath(e),t.exists()||t.create(0,420);var a=Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream);a.init(t,34,4,null),a.write(n,n.length),a.flush(),a.close()}else(t=new ActiveXObject("Scripting.FileSystemObject").CreateTextFile(e,!0)).Write(n),t.Close()},saveAs:function(e){var n=document.createElement("iframe");n.setAttribute("src",""),n.style.visibility="hidden",document.body.appendChild(n);try{if(mxClient.IS_NS){var t=n.contentDocument;t.open(),t.write(e),t.close();try{netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"),n.focus(),saveDocument(t)}catch(e){mxUtils.alert("Permission to save document denied.")}}else(t=n.contentWindow.document).write(e),t.execCommand("SaveAs",!1,document.location)}finally{document.body.removeChild(n)}},copy:function(e){if(window.clipboardData)window.clipboardData.setData("Text",e);else{netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");var n=Components.classes["@mozilla.org/widget/clipboard;1"].createInstance(Components.interfaces.nsIClipboard);if(n){var t=Components.classes["@mozilla.org/widget/transferable;1"].createInstance(Components.interfaces.nsITransferable);if(t){t.addDataFlavor("text/unicode");var a=Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);a.data=e,t.setTransferData("text/unicode",a,2*e.length),n.setData(t,null,Components.interfaces.nsIClipboard.kGlobalClipboard)}}}},load:function(e){return(e=new mxXmlRequest(e,null,"GET",!1)).send(),e},get:function(e,n,t){return new mxXmlRequest(e,null,"GET").send(n,t)},post:function(e,n,t,a){return new mxXmlRequest(e,n).send(t,a)},submit:function(e,n,t,a){return new mxXmlRequest(e,n).simulate(t,a)},loadInto:function(e,n,t){mxClient.IS_IE?n.onreadystatechange=function(){4==n.readyState&&t()}:n.addEventListener("load",t,!1),n.load(e)},getValue:function(e,n,t){return null==(e=null!=e?e[n]:null)&&(e=t),e},getNumber:function(e,n,t){return null==(e=null!=e?e[n]:null)&&(e=t||0),Number(e)},getColor:function(e,n,t){return null==(e=null!=e?e[n]:null)?e=t:e==mxConstants.NONE&&(e=null),e},clone:function(e,n,t){t=null!=t&&t;var a=null;if(null!=e&&"function"==typeof e.constructor){var i;a=new e.constructor;for(i in e)i!=mxObjectIdentity.FIELD_NAME&&(null==n||mxUtils.indexOf(n,i)<0)&&(a[i]=t||"object"!=typeof e[i]?e[i]:mxUtils.clone(e[i]))}return a},equalPoints:function(e,n){if(null==e&&null!=n||null!=e&&null==n||null!=e&&null!=n&&e.length!=n.length)return!1;if(null!=e&&null!=n)for(var t=0;t<e.length;t++)if(e[t]==n[t]||null!=e[t]&&!e[t].equals(n[t]))return!1;return!0},equalEntries:function(e,n){if(null==e&&null!=n||null!=e&&null==n||null!=e&&null!=n&&e.length!=n.length)return!1;if(null!=e&&null!=n)for(var t in e)if(e[t]!=n[t])return!1;return!0},extend:function(e,n){var t=function(){};t.prototype=n.prototype,e.prototype=new t,e.prototype.constructor=e},toString:function(e){var n,t="";for(n in e)try{if(null==e[n])t+=n+" = [null]\n";else if("function"==typeof e[n])t+=n+" => [Function]\n";else if("object"==typeof e[n])t=t+(n+" => [")+mxUtils.getFunctionName(e[n].constructor)+"]\n";else t+=n+" = "+e[n]+"\n"}catch(e){t+=n+"="+e.message}return t},toRadians:function(e){return Math.PI*e/180},arcToCurves:function(e,n,t,a,i,s,o,r,l){if(r-=e,l-=n,0===t||0===a)return h;t=Math.abs(t),a=Math.abs(a);var d=-r/2,c=-l/2,m=Math.cos(i*Math.PI/180);i=m*d+(h=Math.sin(i*Math.PI/180))*c;d=-1*h*d+m*c;r=m*(c=(s=1<(v=(c=i*i)/(g=t*t)+(p=d*d)/(A=a*a))?(t*=Math.sqrt(v),a*=Math.sqrt(v),0):(v=1,s===o&&(v=-1),v*Math.sqrt((g*A-g*p-A*c)/(g*p+A*c))))*t*d/a)-h*(p=-1*s*a*i/t)+r/2,l=h*c+m*p+l/2,s=0<=(g=Math.atan2((d-p)/a,(i-c)/t)-Math.atan2(0,1))?g:2*Math.PI+g,i=0<=(g=Math.atan2((-d-p)/a,(-i-c)/t)-Math.atan2((d-p)/a,(i-c)/t))?g:2*Math.PI+g,0==o&&0<i?i-=2*Math.PI:0!=o&&i<0&&(i+=2*Math.PI),o=2*i/Math.PI,i/=o=Math.ceil(o<0?-1*o:o),d=8/3*Math.sin(i/4)*Math.sin(i/4)/Math.sin(i/2),c=m*t,m*=a,t*=h,a*=h;for(var u=Math.cos(s),p=-d*(c*(b=Math.sin(s))+a*u),g=-d*(t*b-m*u),v=A=0,h=[],f=0;f<o;++f){s+=i;var b,A=c*(u=Math.cos(s))-a*(b=Math.sin(s))+r,E=(v=t*u+m*b+l,-d*(c*b+a*u));u=-d*(t*b-m*u);h[b=6*f]=Number(p+e),h[b+1]=Number(g+n),h[b+2]=Number(A-E+e),h[b+3]=Number(v-u+n),h[b+4]=Number(A+e),h[b+5]=Number(v+n),p=A+E,g=v+u}return h},getBoundingBox:function(e,n){var t=null;if(null!=e&&null!=n&&0!=n){var a=mxUtils.toRadians(n),i=(t=Math.cos(a),Math.sin(a)),s=new mxPoint(e.x+e.width/2,e.y+e.height/2),o=new mxPoint(e.x,e.y),r=new mxPoint((a=new mxPoint(e.x+e.width,e.y)).x,e.y+e.height),l=new mxPoint(e.x,r.y);o=mxUtils.getRotatedPoint(o,t,i,s),a=mxUtils.getRotatedPoint(a,t,i,s),r=mxUtils.getRotatedPoint(r,t,i,s),l=mxUtils.getRotatedPoint(l,t,i,s);(t=new mxRectangle(o.x,o.y,0,0)).add(new mxRectangle(a.x,a.y,0,0)),t.add(new mxRectangle(r.x,r.y,0,0)),t.add(new mxRectangle(l.x,l.y,0,0))}return t},getRotatedPoint:function(e,n,t,a){a=null!=a?a:new mxPoint;var i=e.x-a.x;return new mxPoint(i*n-(e=e.y-a.y)*t+a.x,e*n+i*t+a.y)},getPortConstraints:function(e,n,t,a){return null==(e=mxUtils.getValue(e.style,mxConstants.STYLE_PORT_CONSTRAINT,null))?a:(a=e.toString(),e=mxConstants.DIRECTION_MASK_NONE,0<=a.indexOf(mxConstants.DIRECTION_NORTH)&&(e|=mxConstants.DIRECTION_MASK_NORTH),0<=a.indexOf(mxConstants.DIRECTION_WEST)&&(e|=mxConstants.DIRECTION_MASK_WEST),0<=a.indexOf(mxConstants.DIRECTION_SOUTH)&&(e|=mxConstants.DIRECTION_MASK_SOUTH),0<=a.indexOf(mxConstants.DIRECTION_EAST)&&(e|=mxConstants.DIRECTION_MASK_EAST),e)},reversePortConstraints:function(e){return(e&mxConstants.DIRECTION_MASK_WEST)<<3|(e&mxConstants.DIRECTION_MASK_NORTH)<<1|(e&mxConstants.DIRECTION_MASK_SOUTH)>>1|(e&mxConstants.DIRECTION_MASK_EAST)>>3},findNearestSegment:function(e,n,t){var a=-1;if(0<e.absolutePoints.length)for(var i=e.absolutePoints[0],s=null,o=1;o<e.absolutePoints.length;o++){var r=e.absolutePoints[o];i=mxUtils.ptSegDistSq(i.x,i.y,r.x,r.y,n,t);(null==s||i<s)&&(s=i,a=o-1),i=r}return a},rectangleIntersectsSegment:function(e,n,t){var a=e.y,i=e.x,s=a+e.height,o=i+e.width;e=n.x;var r=t.x;if(n.x>t.x&&(e=t.x,r=n.x),o<r&&(r=o),e<i&&(e=i),r<e)return!1;i=n.y,o=t.y;var l=t.x-n.x;return 1e-7<Math.abs(l)&&(i=(t=(t.y-n.y)/l)*e+(n=n.y-t*n.x),o=t*r+n),o<i&&(n=o,o=i,i=n),s<o&&(o=s),i<a&&(i=a),!(o<i)},contains:function(e,n,t){return e.x<=n&&e.x+e.width>=n&&e.y<=t&&e.y+e.height>=t},intersects:function(e,n){var t=e.width,a=e.height,i=n.width,s=n.height;if(i<=0||s<=0||t<=0||a<=0)return!1;var o=e.x,r=e.y,l=n.x,d=n.y;s+=d,t+=o,a+=r;return((i=i+l)<l||o<i)&&(s<d||r<s)&&(t<o||l<t)&&(a<r||d<a)},intersectsHotspot:function(e,n,t,a,i,s){if(i=null!=i?i:0,s=null!=s?s:0,0<(a=null!=a?a:1)){var o=e.getCenterX(),r=e.getCenterY(),l=e.width,d=e.height,c=mxUtils.getValue(e.style,mxConstants.STYLE_STARTSIZE)*e.view.scale;return 0<c&&(mxUtils.getValue(e.style,mxConstants.STYLE_HORIZONTAL,!0)?(r=e.y+c/2,d=c):(o=e.x+c/2,l=c)),l=Math.max(i,l*a),d=Math.max(i,d*a),0<s&&(l=Math.min(l,s),d=Math.min(d,s)),a=new mxRectangle(o-l/2,r-d/2,l,d),0!=(o=mxUtils.toRadians(mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION)||0))&&(i=Math.cos(-o),s=Math.sin(-o),o=new mxPoint(e.getCenterX(),e.getCenterY()),n=(e=mxUtils.getRotatedPoint(new mxPoint(n,t),i,s,o)).x,t=e.y),mxUtils.contains(a,n,t)}return!0},getOffset:function(e,n){var t=0,a=0;if(null!=n&&n){var i=document.body,s=document.documentElement;t=t+(i.scrollLeft||s.scrollLeft),a=a+(i.scrollTop||s.scrollTop)}for(;e.offsetParent;)t+=e.offsetLeft,a+=e.offsetTop,e=e.offsetParent;return new mxPoint(t,a)},getScrollOrigin:function(e){for(var n=document.body,t=document.documentElement,a=new mxPoint(n.scrollLeft||t.scrollLeft,n.scrollTop||t.scrollTop);null!=e&&e!=n&&e!=t;)!isNaN(e.scrollLeft)&&!isNaN(e.scrollTop)&&(a.x+=e.scrollLeft,a.y+=e.scrollTop),e=e.parentNode;return a},convertPoint:function(e,n,t){var a=mxUtils.getScrollOrigin(e);return(e=mxUtils.getOffset(e)).x-=a.x,e.y-=a.y,new mxPoint(n-e.x,t-e.y)},ltrim:function(e,n){return e.replace(RegExp("^["+(n||"\\s")+"]+","g"),"")},rtrim:function(e,n){return e.replace(RegExp("["+(n||"\\s")+"]+$","g"),"")},trim:function(e,n){return mxUtils.ltrim(mxUtils.rtrim(e,n),n)},isNumeric:function(e){return null!=e&&(null==e.length||0<e.length&&e.indexOf("0x")<0&&e.indexOf("0X")<0)&&!isNaN(e)},mod:function(e,n){return(e%n+n)%n},intersection:function(e,n,t,a,i,s,o,r){var l=(r-s)*(t-e)-(o-i)*(a-n);return o=((o-i)*(n-s)-(r-s)*(e-i))/l,i=((t-e)*(n-s)-(a-n)*(e-i))/l,0<=o&&o<=1&&0<=i&&i<=1?new mxPoint(e+o*(t-e),n+o*(a-n)):null},ptSegDistSq:function(e,n,t,a,i,s){return t=(i-=e)*(t-=e)+(s-=n)*(a-=n)<=0?0:(e=(i=t-i)*t+(s=a-s)*a)<=0?0:e*e/(t*t+a*a),(i=i*i+s*s-t)<0&&(i=0),i},relativeCcw:function(e,n,t,a,i,s){return 0==(e=(i-=e)*(a-=n)-(s-=n)*(t-=e))&&(0<(e=i*t+s*a)&&((e=(i-t)*t+(s-a)*a)<0&&(e=0))),e<0?-1:0<e?1:0},animateChanges:function(e,n){mxEffects.animateChanges.apply(this,arguments)},cascadeOpacity:function(e,n,t){mxEffects.cascadeOpacity.apply(this,arguments)},fadeOut:function(e,n,t,a,i,s){mxEffects.fadeOut.apply(this,arguments)},setOpacity:function(e,n){mxUtils.isVml(e)?e.style.filter=100<=n?null:"alpha(opacity="+n/5+")":mxClient.IS_IE&&(void 0===document.documentMode||document.documentMode<9)?e.style.filter=100<=n?null:"alpha(opacity="+n+")":e.style.opacity=n/100},createImage:function(e){var n=null;return mxClient.IS_IE6&&"CSS1Compat"!=document.compatMode?((n=document.createElement(mxClient.VML_PREFIX+":image")).setAttribute("src",e),n.style.borderStyle="none"):((n=document.createElement("img")).setAttribute("src",e),n.setAttribute("border","0")),n},sortCells:function(e,i){i=null==i||i;var s=new mxDictionary;return e.sort(function(e,n){var t=s.get(e);null==t&&(t=mxCellPath.create(e).split(mxCellPath.PATH_SEPARATOR),s.put(e,t));var a=s.get(n);return null==a&&(a=mxCellPath.create(n).split(mxCellPath.PATH_SEPARATOR),s.put(n,a)),0==(t=mxCellPath.compare(t,a))?0:0<t==i?1:-1}),e},getStylename:function(e){return null!=e&&(e=e.split(";")[0]).indexOf("=")<0?e:""},getStylenames:function(e){var n=[];if(null!=e){e=e.split(";");for(var t=0;t<e.length;t++)e[t].indexOf("=")<0&&n.push(e[t])}return n},indexOfStylename:function(e,n){if(null!=e&&null!=n)for(var t=e.split(";"),a=0,i=0;i<t.length;i++){if(t[i]==n)return a;a+=t[i].length+1}return-1},addStylename:function(e,n){return mxUtils.indexOfStylename(e,n)<0&&(null==e?e="":0<e.length&&";"!=e.charAt(e.length-1)&&(e+=";"),e+=n),e},removeStylename:function(e,n){var t=[];if(null!=e)for(var a=e.split(";"),i=0;i<a.length;i++)a[i]!=n&&t.push(a[i]);return t.join(";")},removeAllStylenames:function(e){var n=[];if(null!=e){e=e.split(";");for(var t=0;t<e.length;t++)0<=e[t].indexOf("=")&&n.push(e[t])}return n.join(";")},setCellStyles:function(e,n,t,a){if(null!=n&&0<n.length){e.beginUpdate();try{for(var i=0;i<n.length;i++)if(null!=n[i]){var s=mxUtils.setStyle(e.getStyle(n[i]),t,a);e.setStyle(n[i],s)}}finally{e.endUpdate()}}},setStyle:function(e,n,t){var a=null!=t&&(void 0===t.length||0<t.length);if(null==e||0==e.length)a&&(e=n+"="+t);else{var i=e.indexOf(n+"=");i<0?a&&(a=";"==e.charAt(e.length-1)?"":";",e=e+a+n+"="+t):(n=a?n+"="+t:"",t=e.indexOf(";",i),a||t++,e=e.substring(0,i)+n+(i<t?e.substring(t):""))}return e},setCellStyleFlags:function(e,n,t,a,i){if(null!=n&&0<n.length){e.beginUpdate();try{for(var s=0;s<n.length;s++)if(null!=n[s]){var o=mxUtils.setStyleFlag(e.getStyle(n[s]),t,a,i);e.setStyle(n[s],o)}}finally{e.endUpdate()}}},setStyleFlag:function(e,n,t,a){if(null==e||0==e.length)e=a||null==a?n+"="+t:n+"=0";else{var i=e.indexOf(n+"=");if(i<0)i=";"==e.charAt(e.length-1)?"":";",e=a||null==a?e+i+n+"="+t:e+i+n+"=0";else{var s=e.indexOf(";",i),o="";o=s<0?e.substring(i+n.length+1):e.substring(i+n.length+1,s),o=null==a?parseInt(o)^t:a?parseInt(o)|t:parseInt(o)&~t;e=e.substring(0,i)+n+"="+o+(0<=s?e.substring(s):"")}}return e},getAlignmentAsPoint:function(e,n){var t=0,a=0;return e==mxConstants.ALIGN_CENTER?t=-.5:e==mxConstants.ALIGN_RIGHT&&(t=-1),n==mxConstants.ALIGN_MIDDLE?a=-.5:n==mxConstants.ALIGN_BOTTOM&&(a=-1),new mxPoint(t,a)},getSizeForString:function(e,n,t){n=null!=n?n:mxConstants.DEFAULT_FONTSIZE,t=null!=t?t:mxConstants.DEFAULT_FONTFAMILY;var a=document.createElement("div");return a.style.fontFamily=t,a.style.fontSize=Math.round(n)+"px",a.style.lineHeight=Math.round(n*mxConstants.LINE_HEIGHT)+"px",a.style.position="absolute",a.style.whiteSpace="nowrap",a.style.visibility="hidden",a.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",a.style.zoom="1",a.innerHTML=e,document.body.appendChild(a),e=new mxRectangle(0,0,a.offsetWidth,a.offsetHeight),document.body.removeChild(a),e},getViewXml:function(e,n,t,a,i){a=null!=a?a:0,i=null!=i?i:0,n=null!=n?n:1,null==t&&(t=[e.getModel().getRoot()]);var s=e.getView(),o=null,r=s.isEventsEnabled();s.setEventsEnabled(!1);var l=s.drawPane,d=s.overlayPane;e.dialect==mxConstants.DIALECT_SVG?(s.drawPane=document.createElementNS(mxConstants.NS_SVG,"g"),s.canvas.appendChild(s.drawPane),s.overlayPane=document.createElementNS(mxConstants.NS_SVG,"g")):(s.drawPane=s.drawPane.cloneNode(!1),s.canvas.appendChild(s.drawPane),s.overlayPane=s.overlayPane.cloneNode(!1)),s.canvas.appendChild(s.overlayPane);var c=s.getTranslate();s.translate=new mxPoint(a,i),n=new mxTemporaryCellStates(e.getView(),n,t);try{o=(new mxCodec).encode(e.getView())}finally{n.destroy(),s.translate=c,s.canvas.removeChild(s.drawPane),s.canvas.removeChild(s.overlayPane),s.drawPane=l,s.overlayPane=d,s.setEventsEnabled(r)}return o},getScaleForPageCount:function(e,n,t,a){if(e<1)return 1;a=null!=a?a:0;var i=(t=null!=t?t:mxConstants.PAGE_FORMAT_A4_PORTRAIT).width-2*a;t=t.height-2*a,a=n.getGraphBounds().clone(),n=n.getView().getScale(),a.width/=n,a.height/=n,t=(n=a.width)/a.height/(i/t),a=Math.sqrt(e);var s=Math.sqrt(t);if(t=a*s,a/=s,t<1&&e<a){var o=a/e;a=e,t/=o}for(a<1&&e<t&&(o=t/e,t=e,a/=o),o=Math.ceil(t)*Math.ceil(a),s=0;e<o;){o=Math.floor(t)/t;var r=Math.floor(a)/a;if(1==o&&(o=Math.floor(t-1)/t),1==r&&(r=Math.floor(a-1)/a),t*=o=r<o?o:r,a*=o,o=Math.ceil(t)*Math.ceil(a),10<++s)break}return i*t/n*.99999},show:function(e,n,t,a){if(t=null!=t?t:0,a=null!=a?a:0,null==n?n=window.open().document:n.open(),t=-(i=e.getGraphBounds()).x+t,a=-i.y+a,mxClient.IS_IE){for(var i="<html><head>",s=document.getElementsByTagName("base"),o=0;o<s.length;o++)i+=s[o].outerHTML;for(i+="<style>",o=0;o<document.styleSheets.length;o++)try{i+=document.styleSheets(o).cssText}catch(e){}i+="</style></head>",i+="<body>",i+=e.container.innerHTML,i+="</body>",i+="<html>",n.writeln(i),n.close(),null!=(e=n.body.getElementsByTagName("DIV")[0])&&(e.style.position="absolute",e.style.left=t+"px",e.style.top=a+"px")}else{for(n.writeln("<html"),n.writeln("<head>"),s=document.getElementsByTagName("base"),o=0;o<s.length;o++)n.writeln(mxUtils.getOuterHtml(s[o]));for(s=document.getElementsByTagName("link"),o=0;o<s.length;o++)n.writeln(mxUtils.getOuterHtml(s[o]));for(s=document.getElementsByTagName("style"),o=0;o<s.length;o++)n.writeln(mxUtils.getOuterHtml(s[o]));for(n.writeln("</head>"),n.writeln("</html>"),n.close(),null==n.body&&n.documentElement.appendChild(n.createElement("body")),n.body.style.overflow="auto",e=e.container.firstChild;null!=e;)o=e.cloneNode(!0),n.body.appendChild(o),e=e.nextSibling;null!=(e=n.getElementsByTagName("g")[0])&&(e.setAttribute("transform","translate("+t+","+a+")"),(t=e.ownerSVGElement).setAttribute("width",i.width+Math.max(i.x,0)+3),t.setAttribute("height",i.height+Math.max(i.y,0)+3))}return mxUtils.removeCursors(n.body),n},printScreen:function(e){var n=window.open();mxUtils.show(e,n.document),e=function(){n.focus(),n.print(),n.close()},mxClient.IS_GC?n.setTimeout(e,500):e()},popup:function(e,n){if(n){var t=document.createElement("div");t.style.overflow="scroll",t.style.width="636px",t.style.height="460px";var a=document.createElement("pre");a.innerHTML=mxUtils.htmlEntities(e,!1).replace(/\n/g,"<br>").replace(/ /g," "),t.appendChild(a),(t=new mxWindow("Popup Window",t,document.body.clientWidth/2-320,(document.body.clientHeight||document.documentElement.clientHeight)/2-240,640,480,!1,!0)).setClosable(!0),t.setVisible(!0)}else mxClient.IS_NS?((t=window.open()).document.writeln("<pre>"+mxUtils.htmlEntities(e)+"</pre"),t.document.close()):((a=(t=window.open()).document.createElement("pre")).innerHTML=mxUtils.htmlEntities(e,!1).replace(/\n/g,"<br>").replace(/ /g," "),t.document.body.appendChild(a))},alert:function(e){alert(e)},prompt:function(e,n){return prompt(e,n)},confirm:function(e){return confirm(e)},error:function(e,n,t,a){var i=document.createElement("div");i.style.padding="20px";var s=document.createElement("img");s.setAttribute("src",a||mxUtils.errorImage),s.setAttribute("valign","bottom"),s.style.verticalAlign="middle",i.appendChild(s),i.appendChild(document.createTextNode(" ")),i.appendChild(document.createTextNode(" ")),i.appendChild(document.createTextNode(" ")),mxUtils.write(i,e),e=document.body.clientWidth,a=document.body.clientHeight||document.documentElement.clientHeight;var o=new mxWindow(mxResources.get(mxUtils.errorResource)||mxUtils.errorResource,i,(e-n)/2,a/4,n,null,!1,!0);return t&&(mxUtils.br(i),n=document.createElement("p"),t=document.createElement("button"),mxClient.IS_IE?t.style.cssText="float:right":t.setAttribute("style","float:right"),mxEvent.addListener(t,"click",function(e){o.destroy()}),mxUtils.write(t,mxResources.get(mxUtils.closeResource)||mxUtils.closeResource),n.appendChild(t),i.appendChild(n),mxUtils.br(i),o.setClosable(!0)),o.setVisible(!0),o},makeDraggable:function(e,n,t,i,a,s,o,r,l,d){return(e=new mxDragSource(e,t)).dragOffset=new mxPoint(null!=a?a:0,null!=s?s:mxConstants.TOOLTIP_VERTICAL_OFFSET),e.autoscroll=o,e.setGuidesEnabled(!1),null!=l&&(e.highlightDropTargets=l),null!=d&&(e.getDropTarget=d),e.getGraphForEvent=function(e){return"function"==typeof n?n(e):n},null!=i&&(e.createDragElement=function(){return i.cloneNode(!0)},r&&(e.createPreviewElement=function(e){var n=i.cloneNode(!0),t=parseInt(n.style.width),a=parseInt(n.style.height);return n.style.width=Math.round(t*e.view.scale)+"px",n.style.height=Math.round(a*e.view.scale)+"px",n})),e}},mxConstants={DEFAULT_HOTSPOT:.3,MIN_HOTSPOT_SIZE:8,MAX_HOTSPOT_SIZE:0,RENDERING_HINT_EXACT:"exact",RENDERING_HINT_FASTER:"faster",RENDERING_HINT_FASTEST:"fastest",DIALECT_SVG:"svg",DIALECT_VML:"vml",DIALECT_MIXEDHTML:"mixedHtml",DIALECT_PREFERHTML:"preferHtml",DIALECT_STRICTHTML:"strictHtml",NS_SVG:"http://www.w3.org/2000/svg",NS_XHTML:"http://www.w3.org/1999/xhtml",NS_XLINK:"http://www.w3.org/1999/xlink",SHADOWCOLOR:"gray",SHADOW_OFFSET_X:2,SHADOW_OFFSET_Y:3,SHADOW_OPACITY:1,NODETYPE_ELEMENT:1,NODETYPE_ATTRIBUTE:2,NODETYPE_TEXT:3,NODETYPE_CDATA:4,NODETYPE_ENTITY_REFERENCE:5,NODETYPE_ENTITY:6,NODETYPE_PROCESSING_INSTRUCTION:7,NODETYPE_COMMENT:8,NODETYPE_DOCUMENT:9,NODETYPE_DOCUMENTTYPE:10,NODETYPE_DOCUMENT_FRAGMENT:11,NODETYPE_NOTATION:12,TOOLTIP_VERTICAL_OFFSET:16,DEFAULT_VALID_COLOR:"#00FF00",DEFAULT_INVALID_COLOR:"#FF0000",HIGHLIGHT_STROKEWIDTH:3,CURSOR_MOVABLE_VERTEX:"move",CURSOR_MOVABLE_EDGE:"move",CURSOR_LABEL_HANDLE:"default",CURSOR_BEND_HANDLE:"pointer",CURSOR_CONNECT:"pointer",HIGHLIGHT_COLOR:"#00FF00",CONNECT_TARGET_COLOR:"#0000FF",INVALID_CONNECT_TARGET_COLOR:"#FF0000",DROP_TARGET_COLOR:"#0000FF",VALID_COLOR:"#00FF00",INVALID_COLOR:"#FF0000",EDGE_SELECTION_COLOR:"#00FF00",VERTEX_SELECTION_COLOR:"#00FF00",VERTEX_SELECTION_STROKEWIDTH:1,EDGE_SELECTION_STROKEWIDTH:1,VERTEX_SELECTION_DASHED:!0,EDGE_SELECTION_DASHED:!0,GUIDE_COLOR:"#FF0000",GUIDE_STROKEWIDTH:1,OUTLINE_COLOR:"#0099FF",OUTLINE_STROKEWIDTH:mxClient.IS_IE?2:3,HANDLE_SIZE:7,LABEL_HANDLE_SIZE:4,HANDLE_FILLCOLOR:"#00FF00",HANDLE_STROKECOLOR:"black",LABEL_HANDLE_FILLCOLOR:"yellow",CONNECT_HANDLE_FILLCOLOR:"#0000FF",LOCKED_HANDLE_FILLCOLOR:"#FF0000",OUTLINE_HANDLE_FILLCOLOR:"#00FFFF",OUTLINE_HANDLE_STROKECOLOR:"#0033FF",DEFAULT_FONTFAMILY:"Arial,Helvetica",DEFAULT_FONTSIZE:11,LINE_HEIGHT:1.2,DEFAULT_FONTSTYLE:0,DEFAULT_STARTSIZE:40,DEFAULT_MARKERSIZE:6,DEFAULT_IMAGESIZE:24,ENTITY_SEGMENT:30,RECTANGLE_ROUNDING_FACTOR:.15,LINE_ARCSIZE:20,ARROW_SPACING:10,ARROW_WIDTH:30,ARROW_SIZE:30,PAGE_FORMAT_A4_PORTRAIT:new mxRectangle(0,0,826,1169),PAGE_FORMAT_A4_LANDSCAPE:new mxRectangle(0,0,1169,826),PAGE_FORMAT_LETTER_PORTRAIT:new mxRectangle(0,0,850,1100),PAGE_FORMAT_LETTER_LANDSCAPE:new mxRectangle(0,0,1100,850),NONE:"none",STYLE_PERIMETER:"perimeter",STYLE_SOURCE_PORT:"sourcePort",STYLE_TARGET_PORT:"targetPort",STYLE_PORT_CONSTRAINT:"portConstraint",STYLE_OPACITY:"opacity",STYLE_TEXT_OPACITY:"textOpacity",STYLE_OVERFLOW:"overflow",STYLE_ORTHOGONAL:"orthogonal",STYLE_EXIT_X:"exitX",STYLE_EXIT_Y:"exitY",STYLE_EXIT_PERIMETER:"exitPerimeter",STYLE_ENTRY_X:"entryX",STYLE_ENTRY_Y:"entryY",STYLE_ENTRY_PERIMETER:"entryPerimeter",STYLE_WHITE_SPACE:"whiteSpace",STYLE_ROTATION:"rotation",STYLE_FILLCOLOR:"fillColor",STYLE_SWIMLANE_FILLCOLOR:"swimlaneFillColor",STYLE_GRADIENTCOLOR:"gradientColor",STYLE_GRADIENT_DIRECTION:"gradientDirection",STYLE_STROKECOLOR:"strokeColor",STYLE_SEPARATORCOLOR:"separatorColor",STYLE_STROKEWIDTH:"strokeWidth",STYLE_ALIGN:"align",STYLE_VERTICAL_ALIGN:"verticalAlign",STYLE_LABEL_POSITION:"labelPosition",STYLE_VERTICAL_LABEL_POSITION:"verticalLabelPosition",STYLE_IMAGE_ASPECT:"imageAspect",STYLE_IMAGE_ALIGN:"imageAlign",STYLE_IMAGE_VERTICAL_ALIGN:"imageVerticalAlign",STYLE_GLASS:"glass",STYLE_IMAGE:"image",STYLE_IMAGE_WIDTH:"imageWidth",STYLE_IMAGE_HEIGHT:"imageHeight",STYLE_IMAGE_BACKGROUND:"imageBackground",STYLE_IMAGE_BORDER:"imageBorder",STYLE_FLIPH:"flipH",STYLE_FLIPV:"flipV",STYLE_NOLABEL:"noLabel",STYLE_NOEDGESTYLE:"noEdgeStyle",STYLE_LABEL_BACKGROUNDCOLOR:"labelBackgroundColor",STYLE_LABEL_BORDERCOLOR:"labelBorderColor",STYLE_LABEL_PADDING:"labelPadding",STYLE_INDICATOR_SHAPE:"indicatorShape",STYLE_INDICATOR_IMAGE:"indicatorImage",STYLE_INDICATOR_COLOR:"indicatorColor",STYLE_INDICATOR_STROKECOLOR:"indicatorStrokeColor",STYLE_INDICATOR_GRADIENTCOLOR:"indicatorGradientColor",STYLE_INDICATOR_SPACING:"indicatorSpacing",STYLE_INDICATOR_WIDTH:"indicatorWidth",STYLE_INDICATOR_HEIGHT:"indicatorHeight",STYLE_INDICATOR_DIRECTION:"indicatorDirection",STYLE_SHADOW:"shadow",STYLE_SEGMENT:"segment",STYLE_ENDARROW:"endArrow",STYLE_STARTARROW:"startArrow",STYLE_ENDSIZE:"endSize",STYLE_STARTSIZE:"startSize",STYLE_SWIMLANE_LINE:"swimlaneLine",STYLE_ENDFILL:"endFill",STYLE_STARTFILL:"startFill",STYLE_DASHED:"dashed",STYLE_DASH_PATTERN:"dashPattern",STYLE_ROUNDED:"rounded",STYLE_CURVED:"curved",STYLE_ARCSIZE:"arcSize",STYLE_SMOOTH:"smooth",STYLE_SOURCE_PERIMETER_SPACING:"sourcePerimeterSpacing",STYLE_TARGET_PERIMETER_SPACING:"targetPerimeterSpacing",STYLE_PERIMETER_SPACING:"perimeterSpacing",STYLE_SPACING:"spacing",STYLE_SPACING_TOP:"spacingTop",STYLE_SPACING_LEFT:"spacingLeft",STYLE_SPACING_BOTTOM:"spacingBottom",STYLE_SPACING_RIGHT:"spacingRight",STYLE_HORIZONTAL:"horizontal",STYLE_DIRECTION:"direction",STYLE_ELBOW:"elbow",STYLE_FONTCOLOR:"fontColor",STYLE_FONTFAMILY:"fontFamily",STYLE_FONTSIZE:"fontSize",STYLE_FONTSTYLE:"fontStyle",STYLE_AUTOSIZE:"autosize",STYLE_FOLDABLE:"foldable",STYLE_EDITABLE:"editable",STYLE_BENDABLE:"bendable",STYLE_MOVABLE:"movable",STYLE_RESIZABLE:"resizable",STYLE_CLONEABLE:"cloneable",STYLE_DELETABLE:"deletable",STYLE_SHAPE:"shape",STYLE_EDGE:"edgeStyle",STYLE_LOOP:"loopStyle",STYLE_ROUTING_CENTER_X:"routingCenterX",STYLE_ROUTING_CENTER_Y:"routingCenterY",FONT_BOLD:1,FONT_ITALIC:2,FONT_UNDERLINE:4,FONT_SHADOW:8,SHAPE_RECTANGLE:"rectangle",SHAPE_ELLIPSE:"ellipse",SHAPE_DOUBLE_ELLIPSE:"doubleEllipse",SHAPE_RHOMBUS:"rhombus",SHAPE_LINE:"line",SHAPE_IMAGE:"image",SHAPE_ARROW:"arrow",SHAPE_LABEL:"label",SHAPE_CYLINDER:"cylinder",SHAPE_SWIMLANE:"swimlane",SHAPE_CONNECTOR:"connector",SHAPE_ACTOR:"actor",SHAPE_CLOUD:"cloud",SHAPE_TRIANGLE:"triangle",SHAPE_HEXAGON:"hexagon",ARROW_CLASSIC:"classic",ARROW_BLOCK:"block",ARROW_OPEN:"open",ARROW_OVAL:"oval",ARROW_DIAMOND:"diamond",ARROW_DIAMOND_THIN:"diamondThin",ALIGN_LEFT:"left",ALIGN_CENTER:"center",ALIGN_RIGHT:"right",ALIGN_TOP:"top",ALIGN_MIDDLE:"middle",ALIGN_BOTTOM:"bottom",DIRECTION_NORTH:"north",DIRECTION_SOUTH:"south",DIRECTION_EAST:"east",DIRECTION_WEST:"west",DIRECTION_MASK_NONE:0,DIRECTION_MASK_WEST:1,DIRECTION_MASK_NORTH:2,DIRECTION_MASK_SOUTH:4,DIRECTION_MASK_EAST:8,DIRECTION_MASK_ALL:15,ELBOW_VERTICAL:"vertical",ELBOW_HORIZONTAL:"horizontal",EDGESTYLE_ELBOW:"elbowEdgeStyle",EDGESTYLE_ENTITY_RELATION:"entityRelationEdgeStyle",EDGESTYLE_LOOP:"loopEdgeStyle",EDGESTYLE_SIDETOSIDE:"sideToSideEdgeStyle",EDGESTYLE_TOPTOBOTTOM:"topToBottomEdgeStyle",EDGESTYLE_ORTHOGONAL:"orthogonalEdgeStyle",EDGESTYLE_SEGMENT:"segmentEdgeStyle",PERIMETER_ELLIPSE:"ellipsePerimeter",PERIMETER_RECTANGLE:"rectanglePerimeter",PERIMETER_RHOMBUS:"rhombusPerimeter",PERIMETER_TRIANGLE:"trianglePerimeter"};function mxEventObject(e){this.name=e,this.properties=[];for(var n=1;n<arguments.length;n+=2)null!=arguments[n+1]&&(this.properties[arguments[n]]=arguments[n+1])}function mxMouseEvent(e,n){this.evt=e,this.state=n}function mxEventSource(e){this.setEventSource(e)}mxEventObject.prototype.name=null,mxEventObject.prototype.properties=null,mxEventObject.prototype.consumed=!1,mxEventObject.prototype.getName=function(){return this.name},mxEventObject.prototype.getProperties=function(){return this.properties},mxEventObject.prototype.getProperty=function(e){return this.properties[e]},mxEventObject.prototype.isConsumed=function(){return this.consumed},mxEventObject.prototype.consume=function(){this.consumed=!0},mxMouseEvent.prototype.consumed=!1,mxMouseEvent.prototype.evt=null,mxMouseEvent.prototype.graphX=null,mxMouseEvent.prototype.graphY=null,mxMouseEvent.prototype.state=null,mxMouseEvent.prototype.getEvent=function(){return this.evt},mxMouseEvent.prototype.getSource=function(){return mxEvent.getSource(this.evt)},mxMouseEvent.prototype.isSource=function(e){if(null!=e)for(var n=this.getSource();null!=n;){if(n==e.node)return!0;n=n.parentNode}return!1},mxMouseEvent.prototype.getX=function(){return mxEvent.getClientX(this.getEvent())},mxMouseEvent.prototype.getY=function(){return mxEvent.getClientY(this.getEvent())},mxMouseEvent.prototype.getGraphX=function(){return this.graphX},mxMouseEvent.prototype.getGraphY=function(){return this.graphY},mxMouseEvent.prototype.getState=function(){return this.state},mxMouseEvent.prototype.getCell=function(){var e=this.getState();return null!=e?e.cell:null},mxMouseEvent.prototype.isPopupTrigger=function(){return mxEvent.isPopupTrigger(this.getEvent())},mxMouseEvent.prototype.isConsumed=function(){return this.consumed},mxMouseEvent.prototype.consume=function(e){(null==e||e)&&this.evt.preventDefault&&this.evt.preventDefault(),this.evt.returnValue=!1,this.consumed=!0},mxEventSource.prototype.eventListeners=null,mxEventSource.prototype.eventsEnabled=!0,mxEventSource.prototype.eventSource=null,mxEventSource.prototype.isEventsEnabled=function(){return this.eventsEnabled},mxEventSource.prototype.setEventsEnabled=function(e){this.eventsEnabled=e},mxEventSource.prototype.getEventSource=function(){return this.eventSource},mxEventSource.prototype.setEventSource=function(e){this.eventSource=e},mxEventSource.prototype.addListener=function(e,n){null==this.eventListeners&&(this.eventListeners=[]),this.eventListeners.push(e),this.eventListeners.push(n)},mxEventSource.prototype.removeListener=function(e){if(null!=this.eventListeners)for(var n=0;n<this.eventListeners.length;)this.eventListeners[n+1]==e?this.eventListeners.splice(n,2):n+=2},mxEventSource.prototype.fireEvent=function(e,n){if(null!=this.eventListeners&&this.isEventsEnabled()){null==e&&(e=new mxEventObject),null==n&&(n=this.getEventSource()),null==n&&(n=this);for(var t=[n,e],a=0;a<this.eventListeners.length;a+=2){var i=this.eventListeners[a];(null==i||i==e.getName())&&this.eventListeners[a+1].apply(this,t)}}};var mxEvent={objects:[],addListener:function(){var a=function(e,n,t){null==e.mxListenerList&&(e.mxListenerList=[],mxEvent.objects.push(e)),e.mxListenerList.push({name:n,f:t})};return window.addEventListener?function(e,n,t){e.addEventListener(n,t,!1),a(e,n,t)}:function(e,n,t){e.attachEvent("on"+n,t),a(e,n,t)}}(),removeListener:function(){var a=function(e,n,t){if(null!=e.mxListenerList){n=e.mxListenerList.length;for(var a=0;a<n;a++)if(e.mxListenerList[a].f==t){e.mxListenerList.splice(a,1);break}0==e.mxListenerList.length&&(e.mxListenerList=null)}};return window.removeEventListener?function(e,n,t){e.removeEventListener(n,t,!1),a(e,n,t)}:function(e,n,t){e.detachEvent("on"+n,t),a(e,n,t)}}(),removeAllListeners:function(e){var n=e.mxListenerList;if(null!=n)for(;0<n.length;){var t=n[0];mxEvent.removeListener(e,t.name,t.f)}},addGestureListeners:function(e,n,t,a){null!=n&&mxEvent.addListener(e,"mousedown",n),null!=t&&mxEvent.addListener(e,"mousemove",t),null!=a&&mxEvent.addListener(e,"mouseup",a),mxClient.IS_TOUCH&&(null!=n&&mxEvent.addListener(e,"touchstart",n),null!=t&&mxEvent.addListener(e,"touchmove",t),null!=a&&mxEvent.addListener(e,"touchend",a))},removeGestureListeners:function(e,n,t,a){null!=n&&mxEvent.removeListener(e,"mousedown",n),null!=t&&mxEvent.removeListener(e,"mousemove",t),null!=a&&mxEvent.removeListener(e,"mouseup",a),mxClient.IS_TOUCH&&(null!=n&&mxEvent.removeListener(e,"touchstart",n),null!=t&&mxEvent.removeListener(e,"touchmove",t),null!=a&&mxEvent.removeListener(e,"touchend",a))},redirectMouseEvents:function(e,t,n,a,i,s,o){var r=function(e){return"function"==typeof n?n(e):n};mxEvent.addGestureListeners(e,function(e){null!=a?a(e):mxEvent.isConsumed(e)||t.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,r(e)))},function(e){null!=i?i(e):mxEvent.isConsumed(e)||t.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,r(e)))},function(e){null!=s?s(e):mxEvent.isConsumed(e)||t.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e,r(e)))}),mxEvent.addListener(e,"dblclick",function(e){if(null!=o)o(e);else if(!mxEvent.isConsumed(e)){var n=r(e);t.dblClick(e,null!=n?n.cell:null)}})},release:function(e){if(null!=e&&(mxEvent.removeAllListeners(e),null!=(e=e.childNodes)))for(var n=e.length,t=0;t<n;t+=1)mxEvent.release(e[t])},addMouseWheelListener:function(t){if(null!=t){var e=function(e){null==e&&(e=window.event);var n=0;0!=(n=!mxClient.IS_NS||mxClient.IS_SF||mxClient.IS_GC?e.wheelDelta/120:-e.detail/2)&&t(e,0<n)};mxClient.IS_NS?mxEvent.addListener(window,mxClient.IS_SF||mxClient.IS_GC?"mousewheel":"DOMMouseScroll",e):mxEvent.addListener(document,"mousewheel",e)}},disableContextMenu:mxClient.IS_IE&&(void 0===document.documentMode||document.documentMode<9)?function(e){mxEvent.addListener(e,"contextmenu",function(){return!1})}:function(e){e.setAttribute("oncontextmenu","return false;")},getSource:function(e){return null!=e.srcElement?e.srcElement:e.target},isConsumed:function(e){return null!=e.isConsumed&&e.isConsumed},isLeftMouseButton:function(e){return e.button==(mxClient.IS_IE&&(void 0===document.documentMode||document.documentMode<9)?1:0)},isRightMouseButton:function(e){return 2==e.button},isPopupTrigger:function(e){return mxEvent.isRightMouseButton(e)||mxEvent.isShiftDown(e)&&!mxEvent.isControlDown(e)},isShiftDown:function(e){return null!=e&&e.shiftKey},isAltDown:function(e){return null!=e&&e.altKey},isControlDown:function(e){return null!=e&&e.ctrlKey},isMetaDown:function(e){return null!=e&&e.metaKey},getMainEvent:function(e){return"touchstart"!=e.type&&"touchmove"!=e.type||null==e.touches||null==e.touches[0]?"touchend"==e.type&&null!=e.changedTouches&&null!=e.changedTouches[0]&&(e=e.changedTouches[0]):e=e.touches[0],e},getClientX:function(e){return mxEvent.getMainEvent(e).clientX},getClientY:function(e){return mxEvent.getMainEvent(e).clientY},consume:function(e,n,t){t=null==t||t,(null==n||n)&&(e.preventDefault?(t&&e.stopPropagation(),e.preventDefault()):t&&(e.cancelBubble=!0)),e.isConsumed=!0,e.returnValue=!1},LABEL_HANDLE:-1,ROTATION_HANDLE:-2,MOUSE_DOWN:"mouseDown",MOUSE_MOVE:"mouseMove",MOUSE_UP:"mouseUp",ACTIVATE:"activate",RESIZE_START:"resizeStart",RESIZE:"resize",RESIZE_END:"resizeEnd",MOVE_START:"moveStart",MOVE:"move",MOVE_END:"moveEnd",PAN_START:"panStart",PAN:"pan",PAN_END:"panEnd",MINIMIZE:"minimize",NORMALIZE:"normalize",MAXIMIZE:"maximize",HIDE:"hide",SHOW:"show",CLOSE:"close",DESTROY:"destroy",REFRESH:"refresh",SIZE:"size",SELECT:"select",FIRED:"fired",GET:"get",RECEIVE:"receive",CONNECT:"connect",DISCONNECT:"disconnect",SUSPEND:"suspend",RESUME:"resume",MARK:"mark",SESSION:"session",ROOT:"root",POST:"post",OPEN:"open",SAVE:"save",BEFORE_ADD_VERTEX:"beforeAddVertex",ADD_VERTEX:"addVertex",AFTER_ADD_VERTEX:"afterAddVertex",DONE:"done",EXECUTE:"execute",EXECUTED:"executed",BEGIN_UPDATE:"beginUpdate",START_EDIT:"startEdit",END_UPDATE:"endUpdate",END_EDIT:"endEdit",BEFORE_UNDO:"beforeUndo",UNDO:"undo",REDO:"redo",CHANGE:"change",NOTIFY:"notify",LAYOUT_CELLS:"layoutCells",CLICK:"click",SCALE:"scale",TRANSLATE:"translate",SCALE_AND_TRANSLATE:"scaleAndTranslate",UP:"up",DOWN:"down",ADD:"add",REMOVE:"remove",CLEAR:"clear",ADD_CELLS:"addCells",CELLS_ADDED:"cellsAdded",MOVE_CELLS:"moveCells",CELLS_MOVED:"cellsMoved",RESIZE_CELLS:"resizeCells",CELLS_RESIZED:"cellsResized",TOGGLE_CELLS:"toggleCells",CELLS_TOGGLED:"cellsToggled",ORDER_CELLS:"orderCells",CELLS_ORDERED:"cellsOrdered",REMOVE_CELLS:"removeCells",CELLS_REMOVED:"cellsRemoved",GROUP_CELLS:"groupCells",UNGROUP_CELLS:"ungroupCells",REMOVE_CELLS_FROM_PARENT:"removeCellsFromParent",FOLD_CELLS:"foldCells",CELLS_FOLDED:"cellsFolded",ALIGN_CELLS:"alignCells",LABEL_CHANGED:"labelChanged",CONNECT_CELL:"connectCell",CELL_CONNECTED:"cellConnected",SPLIT_EDGE:"splitEdge",FLIP_EDGE:"flipEdge",START_EDITING:"startEditing",ADD_OVERLAY:"addOverlay",REMOVE_OVERLAY:"removeOverlay",UPDATE_CELL_SIZE:"updateCellSize",ESCAPE:"escape",CLICK:"click",DOUBLE_CLICK:"doubleClick",START:"start",RESET:"reset"};function mxXmlRequest(e,n,t,a,i,s){this.url=e,this.params=n,this.method=t||"POST",this.async=null==a||a,this.username=i,this.password=s}mxXmlRequest.prototype.url=null,mxXmlRequest.prototype.params=null,mxXmlRequest.prototype.method=null,mxXmlRequest.prototype.async=null,mxXmlRequest.prototype.binary=!1,mxXmlRequest.prototype.username=null,mxXmlRequest.prototype.password=null,mxXmlRequest.prototype.request=null,mxXmlRequest.prototype.isBinary=function(){return this.binary},mxXmlRequest.prototype.setBinary=function(e){this.binary=e},mxXmlRequest.prototype.getText=function(){return this.request.responseText},mxXmlRequest.prototype.isReady=function(){return 4==this.request.readyState},mxXmlRequest.prototype.getDocumentElement=function(){var e=this.getXml();return null!=e?e.documentElement:null},mxXmlRequest.prototype.getXml=function(){var e=this.request.responseXML;return(9<=document.documentMode||null==e||null==e.documentElement)&&(e=mxUtils.parseXml(this.request.responseText)),e},mxXmlRequest.prototype.getText=function(){return this.request.responseText},mxXmlRequest.prototype.getStatus=function(){return this.request.status},mxXmlRequest.prototype.create=window.XMLHttpRequest?function(){var e=new XMLHttpRequest;return this.isBinary()&&e.overrideMimeType&&e.overrideMimeType("text/plain; charset=x-user-defined"),e}:"undefined"!=typeof ActiveXObject?function(){return new ActiveXObject("Microsoft.XMLHTTP")}:void 0,mxXmlRequest.prototype.send=function(e,n){this.request=this.create(),null!=this.request&&(null!=e&&(this.request.onreadystatechange=mxUtils.bind(this,function(){this.isReady()&&(e(this),this.onreadystatechaange=null)})),this.request.open(this.method,this.url,this.async,this.username,this.password),this.setRequestHeaders(this.request,this.params),this.request.send(this.params))},mxXmlRequest.prototype.setRequestHeaders=function(e,n){null!=n&&e.setRequestHeader("Content-Type","application/x-www-form-urlencoded")},mxXmlRequest.prototype.simulate=function(e,n){var t=null;(e=e||document)==document&&(t=window.onbeforeunload,window.onbeforeunload=null);var a=e.createElement("form");a.setAttribute("method",this.method),a.setAttribute("action",this.url),null!=n&&a.setAttribute("target",n),a.style.display="none",a.style.visibility="hidden";for(var i=0<this.params.indexOf("&")?this.params.split("&"):this.params.split(),s=0;s<i.length;s++){if(0<(o=i[s].indexOf("="))){var o,r=i[s].substring(0,o),l=i[s].substring(o+1);(o=e.createElement("textarea")).setAttribute("name",r),l=l.replace(/\n/g,"
"),r=e.createTextNode(l),o.appendChild(r),a.appendChild(o)}}e.body.appendChild(a),a.submit(),e.body.removeChild(a),null!=t&&(window.onbeforeunload=t)};var mxClipboard={STEPSIZE:10,insertCount:1,cells:null,isEmpty:function(){return null==mxClipboard.cells},cut:function(e,n){return n=mxClipboard.copy(e,n),mxClipboard.insertCount=0,mxClipboard.removeCells(e,n),n},removeCells:function(e,n){e.removeCells(n)},copy:function(e,n){n=n||e.getSelectionCells();var t=e.getExportableCells(n);return mxClipboard.insertCount=1,mxClipboard.cells=e.cloneCells(t),t},paste:function(e){if(null!=mxClipboard.cells){var n=e.getImportableCells(mxClipboard.cells),t=mxClipboard.insertCount*mxClipboard.STEPSIZE,a=e.getDefaultParent();n=e.importCells(n,t,t,a);mxClipboard.insertCount++,e.setSelectionCells(n)}}};function mxWindow(e,n,t,a,i,s,o,r,l,d){null!=n&&(o=null==o||o,this.content=n,this.init(t,a,i,s,d),this.installMaximizeHandler(),this.installMinimizeHandler(),this.installCloseHandler(),this.setMinimizable(o),this.setTitle(e),(null==r||r)&&this.installMoveHandler(),null!=l&&null!=l.parentNode?l.parentNode.replaceChild(this.div,l):document.body.appendChild(this.div))}function mxForm(e){this.table=document.createElement("table"),this.table.className=e,this.body=document.createElement("tbody"),this.table.appendChild(this.body)}function mxImage(e,n,t){this.src=e,this.width=n,this.height=t}function mxDivResizer(e,n){if("div"==e.nodeName.toLowerCase()){null==n&&(n=window),this.div=e;var t=mxUtils.getCurrentStyle(e);null!=t&&(this.resizeWidth="auto"==t.width,this.resizeHeight="auto"==t.height),mxEvent.addListener(n,"resize",mxUtils.bind(this,function(e){this.handlingResize||(this.handlingResize=!0,this.resize(),this.handlingResize=!1)})),this.resize()}}function mxDragSource(e,n){this.element=e,this.dropHandler=n,mxEvent.addGestureListeners(e,mxUtils.bind(this,this.mouseDown))}function mxToolbar(e){this.container=e}function mxSession(n,e,t,a){this.model=n,this.urlInit=e,this.urlPoll=t,this.urlNotify=a,null!=n&&(this.codec=new mxCodec,this.codec.lookup=function(e){return n.getCell(e)}),n.addListener(mxEvent.NOTIFY,mxUtils.bind(this,function(e,n){var t=n.getProperty("edit");(null!=t&&this.debug||this.connected&&!this.suspended)&&this.notify("<edit>"+this.encodeChanges(t.changes,t.undone)+"</edit>")}))}function mxUndoableEdit(e,n){this.source=e,this.changes=[],this.significant=null==n||n}function mxUndoManager(e){this.size=null!=e?e:100,this.clear()}mxWindow.prototype=new mxEventSource,mxWindow.prototype.constructor=mxWindow,mxWindow.prototype.closeImage=mxClient.imageBasePath+"/close.gif",mxWindow.prototype.minimizeImage=mxClient.imageBasePath+"/minimize.gif",mxWindow.prototype.normalizeImage=mxClient.imageBasePath+"/normalize.gif",mxWindow.prototype.maximizeImage=mxClient.imageBasePath+"/maximize.gif",mxWindow.prototype.resizeImage=mxClient.imageBasePath+"/resize.gif",mxWindow.prototype.visible=!1,mxWindow.prototype.content=!1,mxWindow.prototype.minimumSize=new mxRectangle(0,0,50,40),mxWindow.prototype.title=!1,mxWindow.prototype.content=!1,mxWindow.prototype.destroyOnClose=!0,mxWindow.prototype.init=function(e,n,t,a,i){i=null!=i?i:"mxWindow",this.div=document.createElement("div"),this.div.className=i,this.div.style.left=e+"px",this.div.style.top=n+"px",this.table=document.createElement("table"),this.table.className=i,null!=t&&(mxClient.IS_IE||(this.div.style.width=t+"px"),this.table.style.width=t+"px"),null!=a&&(mxClient.IS_IE||(this.div.style.height=a+"px"),this.table.style.height=a+"px"),e=document.createElement("tbody"),n=document.createElement("tr"),this.title=document.createElement("td"),this.title.className=i+"Title",n.appendChild(this.title),e.appendChild(n),n=document.createElement("tr"),this.td=document.createElement("td"),this.td.className=i+"Pane",this.contentWrapper=document.createElement("div"),this.contentWrapper.className=i+"Pane",this.contentWrapper.style.width="100%",this.contentWrapper.appendChild(this.content),(mxClient.IS_IE||"DIV"!=this.content.nodeName.toUpperCase())&&(this.contentWrapper.style.height="100%"),this.td.appendChild(this.contentWrapper),n.appendChild(this.td),e.appendChild(n),this.table.appendChild(e),this.div.appendChild(this.table),i=mxUtils.bind(this,function(e){this.activate()}),mxEvent.addListener(this.title,"mousedown",i),mxEvent.addListener(this.table,"mousedown",i),mxClient.IS_TOUCH&&(mxEvent.addListener(this.title,"touchstart",i),mxEvent.addListener(this.table,"touchstart",i)),this.hide()},mxWindow.prototype.setTitle=function(e){for(var n=this.title.firstChild;null!=n;){var t=n.nextSibling;n.nodeType==mxConstants.NODETYPE_TEXT&&n.parentNode.removeChild(n),n=t}mxUtils.write(this.title,e||"")},mxWindow.prototype.setScrollable=function(e){navigator.userAgent.indexOf("Presto/2.5")<0&&(this.contentWrapper.style.overflow=e?"auto":"hidden")},mxWindow.prototype.activate=function(){if(mxWindow.activeWindow!=this){var e=null!=(e=mxUtils.getCurrentStyle(this.getElement()))?e.zIndex:3;if(mxWindow.activeWindow){var n=mxWindow.activeWindow.getElement();null!=n&&null!=n.style&&(n.style.zIndex=e)}n=mxWindow.activeWindow,this.getElement().style.zIndex=parseInt(e)+1,(mxWindow.activeWindow=this).fireEvent(new mxEventObject(mxEvent.ACTIVATE,"previousWindow",n))}},mxWindow.prototype.getElement=function(){return this.div},mxWindow.prototype.fit=function(){mxUtils.fit(this.div)},mxWindow.prototype.isResizable=function(){return null!=this.resize&&"none"!=this.resize.style.display},mxWindow.prototype.setResizable=function(e){e?null==this.resize?(this.resize=document.createElement("img"),this.resize.style.position="absolute",this.resize.style.bottom="2px",this.resize.style.right="2px",this.resize.setAttribute("src",mxClient.imageBasePath+"/resize.gif"),this.resize.style.cursor="nw-resize",mxEvent.addGestureListeners(this.resize,mxUtils.bind(this,function(e){this.activate();var a=mxEvent.getClientX(e),i=mxEvent.getClientY(e),s=this.div.offsetWidth,o=this.div.offsetHeight,n=mxUtils.bind(this,function(e){var n=mxEvent.getClientX(e)-a,t=mxEvent.getClientY(e)-i;this.setSize(s+n,o+t),this.fireEvent(new mxEventObject(mxEvent.RESIZE,"event",e)),mxEvent.consume(e)}),t=mxUtils.bind(this,function(e){mxEvent.removeGestureListeners(document,null,n,t),this.fireEvent(new mxEventObject(mxEvent.RESIZE_END,"event",e)),mxEvent.consume(e)});mxEvent.addGestureListeners(document,null,n,t),this.fireEvent(new mxEventObject(mxEvent.RESIZE_START,"event",e)),mxEvent.consume(e)}),null,null),this.div.appendChild(this.resize)):this.resize.style.display="inline":null!=this.resize&&(this.resize.style.display="none")},mxWindow.prototype.setSize=function(e,n){e=Math.max(this.minimumSize.width,e),n=Math.max(this.minimumSize.height,n),mxClient.IS_IE||(this.div.style.width=e+"px",this.div.style.height=n+"px"),this.table.style.width=e+"px",this.table.style.height=n+"px",mxClient.IS_IE||(this.contentWrapper.style.height=this.div.offsetHeight-this.title.offsetHeight-2+"px")},mxWindow.prototype.setMinimizable=function(e){this.minimize.style.display=e?"":"none"},mxWindow.prototype.getMinimumSize=function(){return new mxRectangle(0,0,0,this.title.offsetHeight)},mxWindow.prototype.installMinimizeHandler=function(){this.minimize=document.createElement("img"),this.minimize.setAttribute("src",this.minimizeImage),this.minimize.setAttribute("align","right"),this.minimize.setAttribute("title","Minimize"),this.minimize.style.cursor="pointer",this.minimize.style.marginRight="1px",this.minimize.style.display="none",this.title.appendChild(this.minimize);var t=!1,a=null,i=null,e=mxUtils.bind(this,function(e){if(this.activate(),t)t=!1,this.minimize.setAttribute("src",this.minimizeImage),this.minimize.setAttribute("title","Minimize"),this.contentWrapper.style.display="",this.maximize.style.display=a,mxClient.IS_IE||(this.div.style.height=i),this.table.style.height=i,null!=this.resize&&(this.resize.style.visibility=""),this.fireEvent(new mxEventObject(mxEvent.NORMALIZE,"event",e));else{t=!0,this.minimize.setAttribute("src",this.normalizeImage),this.minimize.setAttribute("title","Normalize"),this.contentWrapper.style.display="none",a=this.maximize.style.display,this.maximize.style.display="none",i=this.table.style.height;var n=this.getMinimumSize();0<n.height&&(mxClient.IS_IE||(this.div.style.height=n.height+"px"),this.table.style.height=n.height+"px"),0<n.width&&(mxClient.IS_IE||(this.div.style.width=n.width+"px"),this.table.style.width=n.width+"px"),null!=this.resize&&(this.resize.style.visibility="hidden"),this.fireEvent(new mxEventObject(mxEvent.MINIMIZE,"event",e))}mxEvent.consume(e)});mxEvent.addListener(this.minimize,"mousedown",e),mxClient.IS_TOUCH&&mxEvent.addListener(this.minimize,"touchstart",e)},mxWindow.prototype.setMaximizable=function(e){this.maximize.style.display=e?"":"none"},mxWindow.prototype.installMaximizeHandler=function(){this.maximize=document.createElement("img"),this.maximize.setAttribute("src",this.maximizeImage),this.maximize.setAttribute("align","right"),this.maximize.setAttribute("title","Maximize"),this.maximize.style.cursor="default",this.maximize.style.marginLeft="1px",this.maximize.style.cursor="pointer",this.maximize.style.display="none",this.title.appendChild(this.maximize);var t=!1,a=null,i=null,s=null,o=null,e=mxUtils.bind(this,function(e){if(this.activate(),"none"!=this.maximize.style.display){if(t)t=!1,this.maximize.setAttribute("src",this.maximizeImage),this.maximize.setAttribute("title","Maximize"),this.contentWrapper.style.display="",this.minimize.style.visibility="",this.div.style.left=a+"px",this.div.style.top=i+"px",mxClient.IS_IE||(this.div.style.height=s,this.div.style.width=o,"auto"!=(n=mxUtils.getCurrentStyle(this.contentWrapper)).overflow&&null==this.resize)||(this.contentWrapper.style.height=this.div.offsetHeight-this.title.offsetHeight-2+"px"),this.table.style.height=s,this.table.style.width=o,null!=this.resize&&(this.resize.style.visibility=""),this.fireEvent(new mxEventObject(mxEvent.NORMALIZE,"event",e));else{if(t=!0,this.maximize.setAttribute("src",this.normalizeImage),this.maximize.setAttribute("title","Normalize"),this.contentWrapper.style.display="",this.minimize.style.visibility="hidden",a=parseInt(this.div.style.left),i=parseInt(this.div.style.top),s=this.table.style.height,o=this.table.style.width,this.div.style.left="0px",this.div.style.top="0px",mxClient.IS_IE||(this.div.style.height=document.body.clientHeight-2+"px",this.div.style.width=document.body.clientWidth-2+"px"),this.table.style.width=document.body.clientWidth-2+"px",this.table.style.height=document.body.clientHeight-2+"px",null!=this.resize&&(this.resize.style.visibility="hidden"),!mxClient.IS_IE){var n=mxUtils.getCurrentStyle(this.contentWrapper);"auto"!=n.overflow&&null==this.resize||(this.contentWrapper.style.height=this.div.offsetHeight-this.title.offsetHeight-2+"px")}this.fireEvent(new mxEventObject(mxEvent.MAXIMIZE,"event",e))}mxEvent.consume(e)}});mxEvent.addGestureListeners(this.maximize,e),mxEvent.addListener(this.title,"dblclick",e)},mxWindow.prototype.installMoveHandler=function(){this.title.style.cursor="move",mxEvent.addGestureListeners(this.title,mxUtils.bind(this,function(e){var a=mxEvent.getClientX(e),i=mxEvent.getClientY(e),s=this.getX(),o=this.getY(),n=mxUtils.bind(this,function(e){var n=mxEvent.getClientX(e)-a,t=mxEvent.getClientY(e)-i;this.setLocation(s+n,o+t),this.fireEvent(new mxEventObject(mxEvent.MOVE,"event",e)),mxEvent.consume(e)}),t=mxUtils.bind(this,function(e){mxEvent.removeGestureListeners(document,null,n,t),this.fireEvent(new mxEventObject(mxEvent.MOVE_END,"event",e)),mxEvent.consume(e)});mxEvent.addGestureListeners(document,null,n,t),this.fireEvent(new mxEventObject(mxEvent.MOVE_START,"event",e)),mxEvent.consume(e)}))},mxWindow.prototype.setLocation=function(e,n){this.div.style.left=e+"px",this.div.style.top=n+"px"},mxWindow.prototype.getX=function(){return parseInt(this.div.style.left)},mxWindow.prototype.getY=function(){return parseInt(this.div.style.top)},mxWindow.prototype.installCloseHandler=function(){this.closeImg=document.createElement("img"),this.closeImg.setAttribute("src",this.closeImage),this.closeImg.setAttribute("align","right"),this.closeImg.setAttribute("title","Close"),this.closeImg.style.marginLeft="2px",this.closeImg.style.cursor="pointer",this.closeImg.style.display="none",this.title.insertBefore(this.closeImg,this.title.firstChild),mxEvent.addGestureListeners(this.closeImg,mxUtils.bind(this,function(e){this.fireEvent(new mxEventObject(mxEvent.CLOSE,"event",e)),this.destroyOnClose?this.destroy():this.setVisible(!1),mxEvent.consume(e)}))},mxWindow.prototype.setImage=function(e){this.image=document.createElement("img"),this.image.setAttribute("src",e),this.image.setAttribute("align","left"),this.image.style.marginRight="4px",this.image.style.marginLeft="0px",this.image.style.marginTop="-2px",this.title.insertBefore(this.image,this.title.firstChild)},mxWindow.prototype.setClosable=function(e){this.closeImg.style.display=e?"":"none"},mxWindow.prototype.isVisible=function(){return null!=this.div&&"hidden"!=this.div.style.visibility},mxWindow.prototype.setVisible=function(e){null!=this.div&&this.isVisible()!=e&&(e?this.show():this.hide())},mxWindow.prototype.show=function(){this.div.style.visibility="",this.activate();var e=mxUtils.getCurrentStyle(this.contentWrapper);mxClient.IS_IE||"auto"!=e.overflow&&null==this.resize||(this.contentWrapper.style.height=this.div.offsetHeight-this.title.offsetHeight-2+"px"),this.fireEvent(new mxEventObject(mxEvent.SHOW))},mxWindow.prototype.hide=function(){this.div.style.visibility="hidden",this.fireEvent(new mxEventObject(mxEvent.HIDE))},mxWindow.prototype.destroy=function(){this.fireEvent(new mxEventObject(mxEvent.DESTROY)),null!=this.div&&(mxEvent.release(this.div),this.div.parentNode.removeChild(this.div),this.div=null),this.contentWrapper=this.content=this.title=null},mxForm.prototype.table=null,mxForm.prototype.body=!1,mxForm.prototype.getTable=function(){return this.table},mxForm.prototype.addButtons=function(e,n){var t=document.createElement("tr"),a=document.createElement("td");t.appendChild(a);a=document.createElement("td");var i=document.createElement("button");mxUtils.write(i,mxResources.get("ok")||"OK"),a.appendChild(i),mxEvent.addListener(i,"click",function(){e()}),i=document.createElement("button"),mxUtils.write(i,mxResources.get("cancel")||"Cancel"),a.appendChild(i),mxEvent.addListener(i,"click",function(){n()}),t.appendChild(a),this.body.appendChild(t)},mxForm.prototype.addText=function(e,n){var t=document.createElement("input");return t.setAttribute("type","text"),t.value=n,this.addField(e,t)},mxForm.prototype.addCheckbox=function(e,n){var t=document.createElement("input");return t.setAttribute("type","checkbox"),this.addField(e,t),n&&(t.checked=!0),t},mxForm.prototype.addTextarea=function(e,n,t){var a=document.createElement("textarea");return mxClient.IS_NS&&t--,a.setAttribute("rows",t||2),a.value=n,this.addField(e,a)},mxForm.prototype.addCombo=function(e,n,t){var a=document.createElement("select");return null!=t&&a.setAttribute("size",t),n&&a.setAttribute("multiple","true"),this.addField(e,a)},mxForm.prototype.addOption=function(e,n,t,a){var i=document.createElement("option");mxUtils.writeln(i,n),i.setAttribute("value",t),a&&i.setAttribute("selected",a),e.appendChild(i)},mxForm.prototype.addField=function(e,n){var t=document.createElement("tr"),a=document.createElement("td");return mxUtils.write(a,e),t.appendChild(a),(a=document.createElement("td")).appendChild(n),t.appendChild(a),this.body.appendChild(t),n},mxImage.prototype.src=null,mxImage.prototype.width=null,mxImage.prototype.height=null,mxDivResizer.prototype.resizeWidth=!0,mxDivResizer.prototype.resizeHeight=!0,mxDivResizer.prototype.handlingResize=!1,mxDivResizer.prototype.resize=function(){var e=this.getDocumentWidth(),n=this.getDocumentHeight(),t=parseInt(this.div.style.left),a=parseInt(this.div.style.right),i=parseInt(this.div.style.top),s=parseInt(this.div.style.bottom);this.resizeWidth&&!isNaN(t)&&!isNaN(a)&&0<=t&&0<=a&&0<e-a-t&&(this.div.style.width=e-a-t+"px"),this.resizeHeight&&!isNaN(i)&&!isNaN(s)&&0<=i&&0<=s&&0<n-i-s&&(this.div.style.height=n-i-s+"px")},mxDivResizer.prototype.getDocumentWidth=function(){return document.body.clientWidth},mxDivResizer.prototype.getDocumentHeight=function(){return document.body.clientHeight},mxDragSource.prototype.element=null,mxDragSource.prototype.dropHandler=null,mxDragSource.prototype.dragOffset=null,mxDragSource.prototype.dragElement=null,mxDragSource.prototype.previewElement=null,mxDragSource.prototype.enabled=!0,mxDragSource.prototype.currentGraph=null,mxDragSource.prototype.currentDropTarget=null,mxDragSource.prototype.currentPoint=null,mxDragSource.prototype.currentGuide=null,mxDragSource.prototype.currentHighlight=null,mxDragSource.prototype.autoscroll=!0,mxDragSource.prototype.guidesEnabled=!0,mxDragSource.prototype.gridEnabled=!0,mxDragSource.prototype.highlightDropTargets=!0,mxDragSource.prototype.dragElementZIndex=100,mxDragSource.prototype.dragElementOpacity=70,mxDragSource.prototype.isEnabled=function(){return this.enabled},mxDragSource.prototype.setEnabled=function(e){this.enabled=e},mxDragSource.prototype.isGuidesEnabled=function(){return this.guidesEnabled},mxDragSource.prototype.setGuidesEnabled=function(e){this.guidesEnabled=e},mxDragSource.prototype.isGridEnabled=function(){return this.gridEnabled},mxDragSource.prototype.setGridEnabled=function(e){this.gridEnabled=e},mxDragSource.prototype.getGraphForEvent=function(e){return null},mxDragSource.prototype.getDropTarget=function(e,n,t){return e.getCellAt(n,t)},mxDragSource.prototype.createDragElement=function(e){return this.element.cloneNode(!0)},mxDragSource.prototype.createPreviewElement=function(e){return null},mxDragSource.prototype.mouseDown=function(e){this.enabled&&!mxEvent.isConsumed(e)&&null==this.mouseMoveHandler&&(this.startDrag(e),this.mouseMoveHandler=mxUtils.bind(this,this.mouseMove),this.mouseUpHandler=mxUtils.bind(this,this.mouseUp),mxEvent.addGestureListeners(document,null,this.mouseMoveHandler,this.mouseUpHandler),mxEvent.consume(e,!0,!1))},mxDragSource.prototype.startDrag=function(e){this.dragElement=this.createDragElement(e),this.dragElement.style.position="absolute",this.dragElement.style.zIndex=this.dragElementZIndex,mxUtils.setOpacity(this.dragElement,this.dragElementOpacity)},mxDragSource.prototype.stopDrag=function(e){null!=this.dragElement&&(null!=this.dragElement.parentNode&&this.dragElement.parentNode.removeChild(this.dragElement),this.dragElement=null)},mxDragSource.prototype.graphContainsEvent=function(e,n){var t=mxEvent.getClientX(n),a=mxEvent.getClientY(n),i=mxUtils.getOffset(e.container),s=mxUtils.getScrollOrigin();return t>=i.x-s.x&&a>=i.y-s.y&&t<=i.x-s.x+e.container.offsetWidth&&a<=i.y-s.y+e.container.offsetHeight},mxDragSource.prototype.mouseMove=function(e){if(null!=(n=this.getGraphForEvent(e))&&!this.graphContainsEvent(n,e)&&(n=null),n!=this.currentGraph&&(null!=this.currentGraph&&this.dragExit(this.currentGraph),this.currentGraph=n,null!=this.currentGraph&&this.dragEnter(this.currentGraph)),null!=this.currentGraph&&this.dragOver(this.currentGraph,e),null==this.dragElement||null!=this.previewElement&&"visible"==this.previewElement.style.visibility)null!=this.dragElement&&(this.dragElement.style.visibility="hidden");else{var n=mxEvent.getClientX(e),t=mxEvent.getClientY(e);null==this.dragElement.parentNode&&document.body.appendChild(this.dragElement),this.dragElement.style.visibility="visible",null!=this.dragOffset&&(n+=this.dragOffset.x,t+=this.dragOffset.y),n+=document.body.scrollLeft||document.documentElement.scrollLeft,t+=document.body.scrollTop||document.documentElement.scrollTop,this.dragElement.style.left=n+"px",this.dragElement.style.top=t+"px"}mxEvent.consume(e)},mxDragSource.prototype.mouseUp=function(e){if(null!=this.currentGraph){if(null!=this.currentPoint&&(null==this.previewElement||"hidden"!=this.previewElement.style.visibility)){var n=this.currentGraph.view.scale,t=this.currentGraph.view.translate;this.drop(this.currentGraph,e,this.currentDropTarget,this.currentPoint.x/n-t.x,this.currentPoint.y/n-t.y)}this.dragExit(this.currentGraph)}this.stopDrag(e),mxEvent.removeGestureListeners(document,null,this.mouseMoveHandler,this.mouseUpHandler),this.currentGraph=this.mouseUpHandler=this.mouseMoveHandler=null,mxEvent.consume(e)},mxDragSource.prototype.dragEnter=function(e){e.isMouseDown=!0,this.previewElement=this.createPreviewElement(e),this.isGuidesEnabled()&&null!=this.previewElement&&(this.currentGuide=new mxGuide(e,e.graphHandler.getGuideStates())),this.highlightDropTargets&&(this.currentHighlight=new mxCellHighlight(e,mxConstants.DROP_TARGET_COLOR))},mxDragSource.prototype.dragExit=function(e){this.currentPoint=this.currentDropTarget=null,e.isMouseDown=!1,null!=this.previewElement&&(null!=this.previewElement.parentNode&&this.previewElement.parentNode.removeChild(this.previewElement),this.previewElement=null),null!=this.currentGuide&&(this.currentGuide.destroy(),this.currentGuide=null),null!=this.currentHighlight&&(this.currentHighlight.destroy(),this.currentHighlight=null)},mxDragSource.prototype.dragOver=function(e,n){var t=mxUtils.getOffset(e.container),a=mxUtils.getScrollOrigin(e.container),i=mxEvent.getClientX(n)-t.x+a.x;t=mxEvent.getClientY(n)-t.y+a.y;if(e.autoScroll&&(null==this.autoscroll||this.autoscroll)&&e.scrollPointToVisible(i,t,e.autoExtend),null!=this.currentHighlight&&e.isDropEnabled()&&(this.currentDropTarget=this.getDropTarget(e,i,t),a=e.getView().getState(this.currentDropTarget),this.currentHighlight.highlight(a)),null!=this.previewElement){null==this.previewElement.parentNode&&(e.container.appendChild(this.previewElement),this.previewElement.style.zIndex="3",this.previewElement.style.position="absolute");a=this.isGridEnabled()&&e.isGridEnabledEvent(n);var s=!0;if(null!=this.currentGuide&&this.currentGuide.isEnabledForEvent(n))s=new mxRectangle(0,0,s=parseInt(this.previewElement.style.width),o=parseInt(this.previewElement.style.height)),t=new mxPoint(i,t),t=this.currentGuide.move(s,t,a),s=!1,i=t.x,t=t.y;else if(a){a=e.view.scale;var o=e.view.translate,r=e.gridSize/2;i=(e.snap(i/a-o.x-r)+o.x)*a,t=(e.snap(t/a-o.y-r)+o.y)*a}null!=this.currentGuide&&s&&this.currentGuide.hide(),null!=this.previewOffset&&(i+=this.previewOffset.x,t+=this.previewOffset.y),this.previewElement.style.left=Math.round(i)+"px",this.previewElement.style.top=Math.round(t)+"px",this.previewElement.style.visibility="visible"}this.currentPoint=new mxPoint(i,t)},mxDragSource.prototype.drop=function(e,n,t,a,i){this.dropHandler(e,n,t,a,i),e.container.focus()},mxToolbar.prototype=new mxEventSource,mxToolbar.prototype.constructor=mxToolbar,mxToolbar.prototype.container=null,mxToolbar.prototype.enabled=!0,mxToolbar.prototype.noReset=!1,mxToolbar.prototype.updateDefaultMode=!0,mxToolbar.prototype.addItem=function(e,n,t,a,i,s){var o=document.createElement(null!=n?"img":"button"),r=i||(null!=s?"mxToolbarMode":"mxToolbarItem");return o.className=r,o.setAttribute("src",n),null!=e&&(null!=n?o.setAttribute("title",e):mxUtils.write(o,e)),this.container.appendChild(o),null!=t&&(mxEvent.addListener(o,"click",t),mxClient.IS_TOUCH&&mxEvent.addListener(o,"touchend",t)),e=mxUtils.bind(this,function(e){null!=a?o.setAttribute("src",n):o.style.backgroundColor=""}),mxEvent.addGestureListeners(o,mxUtils.bind(this,function(e){if(null!=a?o.setAttribute("src",a):o.style.backgroundColor="gray",null!=s){null==this.menu&&(this.menu=new mxPopupMenu,this.menu.init());var n=this.currentImg;this.menu.isMenuShowing()&&this.menu.hideMenu(),n!=o&&(this.currentImg=o,this.menu.factoryMethod=s,n=new mxPoint(o.offsetLeft,o.offsetTop+o.offsetHeight),this.menu.popup(n.x,n.y,null,e),this.menu.isMenuShowing()&&(o.className=r+"Selected",this.menu.hideMenu=function(){mxPopupMenu.prototype.hideMenu.apply(this),o.className=r,this.currentImg=null}))}}),null,e),mxEvent.addListener(o,"mouseout",e),o},mxToolbar.prototype.addCombo=function(e){var n=document.createElement("div");n.style.display="inline",n.className="mxToolbarComboContainer";var t=document.createElement("select");return t.className=e||"mxToolbarCombo",n.appendChild(t),this.container.appendChild(n),t},mxToolbar.prototype.addActionCombo=function(e,n){var t=document.createElement("select");return t.className=n||"mxToolbarCombo",this.addOption(t,e,null),mxEvent.addListener(t,"change",function(e){var n=t.options[t.selectedIndex];t.selectedIndex=0,null!=n.funct&&n.funct(e)}),this.container.appendChild(t),t},mxToolbar.prototype.addOption=function(e,n,t){var a=document.createElement("option");return mxUtils.writeln(a,n),"function"==typeof t?a.funct=t:a.setAttribute("value",t),e.appendChild(a),a},mxToolbar.prototype.addSwitchMode=function(e,n,t,a,i){var s=document.createElement("img");return s.initialClassName=i||"mxToolbarMode",s.className=s.initialClassName,s.setAttribute("src",n),s.altIcon=a,null!=e&&s.setAttribute("title",e),mxEvent.addListener(s,"click",mxUtils.bind(this,function(e){null!=(e=this.selectedMode.altIcon)?(this.selectedMode.altIcon=this.selectedMode.getAttribute("src"),this.selectedMode.setAttribute("src",e)):this.selectedMode.className=this.selectedMode.initialClassName,this.updateDefaultMode&&(this.defaultMode=s),null!=(e=(this.selectedMode=s).altIcon)?(s.altIcon=s.getAttribute("src"),s.setAttribute("src",e)):s.className=s.initialClassName+"Selected",this.fireEvent(new mxEventObject(mxEvent.SELECT)),t()})),this.container.appendChild(s),null==this.defaultMode&&(this.defaultMode=s,this.selectMode(s),t()),s},mxToolbar.prototype.addMode=function(e,n,t,a,i,s){s=null==s||s;var o=document.createElement(null!=n?"img":"button");return o.initialClassName=i||"mxToolbarMode",o.className=o.initialClassName,o.setAttribute("src",n),o.altIcon=a,null!=e&&o.setAttribute("title",e),this.enabled&&s&&(mxEvent.addListener(o,"click",mxUtils.bind(this,function(e){this.selectMode(o,t),this.noReset=!1})),mxEvent.addListener(o,"dblclick",mxUtils.bind(this,function(e){this.selectMode(o,t),this.noReset=!0})),null==this.defaultMode&&(this.defaultMode=o,this.defaultFunction=t,this.selectMode(o,t))),this.container.appendChild(o),o},mxToolbar.prototype.selectMode=function(e,n){if(this.selectedMode!=e){if(null!=this.selectedMode){var t=this.selectedMode.altIcon;null!=t?(this.selectedMode.altIcon=this.selectedMode.getAttribute("src"),this.selectedMode.setAttribute("src",t)):this.selectedMode.className=this.selectedMode.initialClassName}this.selectedMode=e,null!=(t=this.selectedMode.altIcon)?(this.selectedMode.altIcon=this.selectedMode.getAttribute("src"),this.selectedMode.setAttribute("src",t)):this.selectedMode.className=this.selectedMode.initialClassName+"Selected",this.fireEvent(new mxEventObject(mxEvent.SELECT,"function",n))}},mxToolbar.prototype.resetMode=function(e){(e||!this.noReset)&&this.selectedMode!=this.defaultMode&&this.selectMode(this.defaultMode,this.defaultFunction)},mxToolbar.prototype.addSeparator=function(e){return this.addItem(null,e,null)},mxToolbar.prototype.addBreak=function(){mxUtils.br(this.container)},mxToolbar.prototype.addLine=function(){var e=document.createElement("hr");e.style.marginRight="6px",e.setAttribute("size","1"),this.container.appendChild(e)},mxToolbar.prototype.destroy=function(){mxEvent.release(this.container),this.selectedMode=this.defaultFunction=this.defaultMode=this.container=null,null!=this.menu&&this.menu.destroy()},mxSession.prototype=new mxEventSource,mxSession.prototype.constructor=mxSession,mxSession.prototype.model=null,mxSession.prototype.urlInit=null,mxSession.prototype.urlPoll=null,mxSession.prototype.urlNotify=null,mxSession.prototype.codec=null,mxSession.prototype.linefeed="
",mxSession.prototype.escapePostData=!0,mxSession.prototype.significantRemoteChanges=!0,mxSession.prototype.sent=0,mxSession.prototype.received=0,mxSession.prototype.debug=!1,mxSession.prototype.connected=!1,mxSession.prototype.suspended=!1,mxSession.prototype.polling=!1,mxSession.prototype.start=function(){this.debug?(this.connected=!0,this.fireEvent(new mxEventObject(mxEvent.CONNECT))):this.connected||this.get(this.urlInit,mxUtils.bind(this,function(e){this.connected=!0,this.fireEvent(new mxEventObject(mxEvent.CONNECT)),this.poll()}))},mxSession.prototype.suspend=function(){this.connected&&!this.suspended&&(this.suspended=!0,this.fireEvent(new mxEventObject(mxEvent.SUSPEND)))},mxSession.prototype.resume=function(e,n,t){this.connected&&this.suspended&&(this.suspended=!1,this.fireEvent(new mxEventObject(mxEvent.RESUME)),this.polling||this.poll())},mxSession.prototype.stop=function(e){this.connected&&(this.connected=!1),this.fireEvent(new mxEventObject(mxEvent.DISCONNECT,"reason",e))},mxSession.prototype.poll=function(){this.connected&&!this.suspended&&null!=this.urlPoll?(this.polling=!0,this.get(this.urlPoll,mxUtils.bind(this,function(){this.poll()}))):this.polling=!1},mxSession.prototype.notify=function(e,n,t){null!=e&&0<e.length&&(null!=this.urlNotify&&(this.debug?(mxLog.show(),mxLog.debug("mxSession.notify: "+this.urlNotify+" xml="+e)):(e="<message><delta>"+e+"</delta></message>",this.escapePostData&&(e=encodeURIComponent(e)),mxUtils.post(this.urlNotify,"xml="+e,n,t))),this.sent+=e.length,this.fireEvent(new mxEventObject(mxEvent.NOTIFY,"url",this.urlNotify,"xml",e)))},mxSession.prototype.get=function(t,a,n){if(void 0!==mxUtils){var i=mxUtils.bind(this,function(e){null!=n?n(e):this.stop(e)});mxUtils.get(t,mxUtils.bind(this,function(e){if(void 0!==mxUtils)if(e.isReady()&&404!=e.getStatus()){if(this.received+=e.getText().length,this.fireEvent(new mxEventObject(mxEvent.GET,"url",t,"request",e)),this.isValidResponse(e)){if(0<e.getText().length){var n=e.getDocumentElement();null==n?i("Invalid response: "+e.getText()):this.receive(n)}null!=a&&a(e)}}else i("Response not ready")}),function(e){i("Transmission error")})}},mxSession.prototype.isValidResponse=function(e){return e.getText().indexOf("<?php")<0},mxSession.prototype.encodeChanges=function(e,n){for(var t="",a=n?-1:1,i=n?e.length-1:0;0<=i&&i<e.length;i+=a){var s=this.codec.encode(e[i]);t=t+mxUtils.getXml(s,this.linefeed)}return t},mxSession.prototype.receive=function(e){if(null!=e&&e.nodeType==mxConstants.NODETYPE_ELEMENT){var n=e.getAttribute("namespace");for(null!=n&&(this.model.prefix=n+"-"),n=e.firstChild;null!=n;){var t=n.nodeName.toLowerCase();"state"==t?this.processState(n):"delta"==t&&this.processDelta(n),n=n.nextSibling}this.fireEvent(new mxEventObject(mxEvent.RECEIVE,"node",e))}},mxSession.prototype.processState=function(e){new mxCodec(e.ownerDocument).decode(e.firstChild,this.model)},mxSession.prototype.processDelta=function(e){for(e=e.firstChild;null!=e;)"edit"==e.nodeName&&this.processEdit(e),e=e.nextSibling},mxSession.prototype.processEdit=function(e){if(0<(e=this.decodeChanges(e)).length){var n=this.createUndoableEdit(e);this.model.fireEvent(new mxEventObject(mxEvent.CHANGE,"edit",n,"changes",e)),this.model.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",n)),this.fireEvent(new mxEventObject(mxEvent.FIRED,"edit",n))}},mxSession.prototype.createUndoableEdit=function(e){var n=new mxUndoableEdit(this.model,this.significantRemoteChanges);return n.changes=e,n.notify=function(){n.source.fireEvent(new mxEventObject(mxEvent.CHANGE,"edit",n,"changes",n.changes)),n.source.fireEvent(new mxEventObject(mxEvent.NOTIFY,"edit",n,"changes",n.changes))},n},mxSession.prototype.decodeChanges=function(e){this.codec.document=e.ownerDocument;var n=[];for(e=e.firstChild;null!=e;){var t=this.decodeChange(e);null!=t&&n.push(t),e=e.nextSibling}return n},mxSession.prototype.decodeChange=function(e){var n=null;return e.nodeType==mxConstants.NODETYPE_ELEMENT&&(null!=(n="mxRootChange"==e.nodeName?new mxCodec(e.ownerDocument).decode(e):this.codec.decode(e))&&(n.model=this.model,n.execute(),"mxChildChange"==e.nodeName&&null==n.parent&&this.cellRemoved(n.child))),n},mxSession.prototype.cellRemoved=function(e,n){this.codec.putObject(e.getId(),e);for(var t=this.model.getChildCount(e),a=0;a<t;a++)this.cellRemoved(this.model.getChildAt(e,a))},mxUndoableEdit.prototype.source=null,mxUndoableEdit.prototype.changes=null,mxUndoableEdit.prototype.significant=null,mxUndoableEdit.prototype.undone=!1,mxUndoableEdit.prototype.redone=!1,mxUndoableEdit.prototype.isEmpty=function(){return 0==this.changes.length},mxUndoableEdit.prototype.isSignificant=function(){return this.significant},mxUndoableEdit.prototype.add=function(e){this.changes.push(e)},mxUndoableEdit.prototype.notify=function(){},mxUndoableEdit.prototype.die=function(){},mxUndoableEdit.prototype.undo=function(){if(!this.undone){this.source.fireEvent(new mxEventObject(mxEvent.START_EDIT));for(var e=this.changes.length-1;0<=e;e--){var n=this.changes[e];null!=n.execute?n.execute():null!=n.undo&&n.undo(),this.source.fireEvent(new mxEventObject(mxEvent.EXECUTED,"change",n))}this.undone=!0,this.redone=!1,this.source.fireEvent(new mxEventObject(mxEvent.END_EDIT))}this.notify()},mxUndoableEdit.prototype.redo=function(){if(!this.redone){this.source.fireEvent(new mxEventObject(mxEvent.START_EDIT));for(var e=this.changes.length,n=0;n<e;n++){var t=this.changes[n];null!=t.execute?t.execute():null!=t.redo&&t.redo(),this.source.fireEvent(new mxEventObject(mxEvent.EXECUTED,"change",t))}this.undone=!1,this.redone=!0,this.source.fireEvent(new mxEventObject(mxEvent.END_EDIT))}this.notify()},mxUndoManager.prototype=new mxEventSource,mxUndoManager.prototype.constructor=mxUndoManager,mxUndoManager.prototype.size=null,mxUndoManager.prototype.history=null,mxUndoManager.prototype.indexOfNextAdd=0,mxUndoManager.prototype.isEmpty=function(){return 0==this.history.length},mxUndoManager.prototype.clear=function(){this.history=[],this.indexOfNextAdd=0,this.fireEvent(new mxEventObject(mxEvent.CLEAR))},mxUndoManager.prototype.canUndo=function(){return 0<this.indexOfNextAdd},mxUndoManager.prototype.undo=function(){for(;0<this.indexOfNextAdd;){var e=this.history[--this.indexOfNextAdd];if(e.undo(),e.isSignificant()){this.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",e));break}}},mxUndoManager.prototype.canRedo=function(){return this.indexOfNextAdd<this.history.length},mxUndoManager.prototype.redo=function(){for(var e=this.history.length;this.indexOfNextAdd<e;){var n=this.history[this.indexOfNextAdd++];if(n.redo(),n.isSignificant()){this.fireEvent(new mxEventObject(mxEvent.REDO,"edit",n));break}}},mxUndoManager.prototype.undoableEditHappened=function(e){this.trim(),0<this.size&&this.size==this.history.length&&this.history.shift(),this.history.push(e),this.indexOfNextAdd=this.history.length,this.fireEvent(new mxEventObject(mxEvent.ADD,"edit",e))},mxUndoManager.prototype.trim=function(){if(this.history.length>this.indexOfNextAdd)for(var e=this.history.splice(this.indexOfNextAdd,this.history.length-this.indexOfNextAdd),n=0;n<e.length;n++)e[n].die()};var mxUrlConverter=function(e){var t=!0,a=null,i=null;return{isEnabled:function(){return t},setEnabled:function(e){t=e},getBaseUrl:function(){return a},setBaseUrl:function(e){a=e},getBaseDomain:function(){return a},setBaseDomain:function(e){a=e},isRelativeUrl:function(e){return"http://"!=e.substring(0,7)&&"https://"!=e.substring(0,8)&&"data:image"!=e.substring(0,10)},convert:function(e){if(t&&this.isRelativeUrl(e)){if(null==a){i=location.protocol+"//"+location.host;var n=(a=i+location.pathname).lastIndexOf("/");0<n&&(a=a.substring(0,n+1))}e="/"==e.charAt(0)?i+e:a+e}return e}}};function mxPanningManager(s){this.thread=null,this.active=!1,this.dy=this.dx=this.t0y=this.t0x=this.tdy=this.tdx=0,this.scrollbars=!1,this.scrollTop=this.scrollLeft=0,this.mouseListener={mouseDown:function(e,n){},mouseMove:function(e,n){},mouseUp:mxUtils.bind(this,function(e,n){this.active&&this.stop()})},s.addMouseListener(this.mouseListener),mxEvent.addListener(document,"mouseup",mxUtils.bind(this,function(){this.active&&this.stop()}));var o=mxUtils.bind(this,function(){return this.scrollbars=mxUtils.hasScrollbars(s.container),this.scrollLeft=s.container.scrollLeft,this.scrollTop=s.container.scrollTop,window.setInterval(mxUtils.bind(this,function(){if(this.tdx-=this.dx,this.tdy-=this.dy,this.scrollbars){var e=-s.container.scrollLeft-Math.ceil(this.dx),n=-s.container.scrollTop-Math.ceil(this.dy);s.panGraph(e,n),s.panDx=this.scrollLeft-s.container.scrollLeft,s.panDy=this.scrollTop-s.container.scrollTop,s.fireEvent(new mxEventObject(mxEvent.PAN))}else s.panGraph(this.getDx(),this.getDy())}),this.delay)});this.isActive=function(){return active},this.getDx=function(){return Math.round(this.tdx)},this.getDy=function(){return Math.round(this.tdy)},this.start=function(){this.t0x=s.view.translate.x,this.t0y=s.view.translate.y,this.active=!0},this.panTo=function(e,n,t,a){this.active||this.start(),this.scrollLeft=s.container.scrollLeft,this.scrollTop=s.container.scrollTop,a=null!=a?a:0;var i=s.container;this.dx=e+(null!=t?t:0)-i.scrollLeft-i.clientWidth,this.dx<0&&Math.abs(this.dx)<this.border?this.dx=this.border+this.dx:this.dx=this.handleMouseOut?Math.max(this.dx,0):0,0==this.dx&&(this.dx=e-i.scrollLeft,this.dx=0<this.dx&&this.dx<this.border?this.dx-this.border:this.handleMouseOut?Math.min(0,this.dx):0),this.dy=n+a-i.scrollTop-i.clientHeight,this.dy<0&&Math.abs(this.dy)<this.border?this.dy=this.border+this.dy:this.dy=this.handleMouseOut?Math.max(this.dy,0):0,0==this.dy&&(this.dy=n-i.scrollTop,this.dy=0<this.dy&&this.dy<this.border?this.dy-this.border:this.handleMouseOut?Math.min(0,this.dy):0),0!=this.dx||0!=this.dy?(this.dx*=this.damper,this.dy*=this.damper,null==this.thread&&(this.thread=o())):null!=this.thread&&(window.clearInterval(this.thread),this.thread=null)},this.stop=function(){if(this.active)if(this.active=!1,null!=this.thread&&(window.clearInterval(this.thread),this.thread=null),this.tdy=this.tdx=0,this.scrollbars)s.panDx=0,s.panDy=0,s.fireEvent(new mxEventObject(mxEvent.PAN));else{var e=s.panDx,n=s.panDy;0==e&&0==n||(s.panGraph(0,0),s.view.setTranslate(this.t0x+e/s.view.scale,this.t0y+n/s.view.scale))}},this.destroy=function(){s.removeMouseListener(this.mouseListener)}}function mxPopupMenu(e){null!=(this.factoryMethod=e)&&this.init()}function mxAutoSaveManager(e){this.changeHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.graphModelChanged(n.getProperty("edit").changes)}),this.setGraph(e)}function mxAnimation(e){this.delay=null!=e?e:20}function mxMorphing(e,n,t,a){mxAnimation.call(this,a),this.graph=e,this.steps=null!=n?n:6,this.ease=null!=t?t:1.5}function mxImageBundle(e){this.images=[],this.alt=null!=e&&e}function mxImageExport(){}function mxAbstractCanvas2D(){this.converter=this.createUrlConverter(),this.reset()}function mxXmlCanvas2D(e){mxAbstractCanvas2D.call(this),this.root=e,this.writeDefaults()}function mxSvgCanvas2D(e,n){mxAbstractCanvas2D.call(this),this.root=e,this.gradients=[],this.defs=null,this.styleEnabled=null!=n&&n;var t=null;if(e.ownerDocument!=document)for(t=e;null!=t&&"svg"!=t.nodeName;)t=t.parentNode;null!=t&&(0<t.getElementsByTagName("defs").length&&(this.defs=t.getElementsByTagName("defs")[0]),null==this.defs&&(this.defs=this.createElement("defs"),null!=t.firstChild?t.insertBefore(this.defs,t.firstChild):t.appendChild(this.defs)),this.styleEnabled&&this.defs.appendChild(this.createStyle()))}mxPanningManager.prototype.damper=1/6,mxPanningManager.prototype.delay=10,mxPanningManager.prototype.handleMouseOut=!0,mxPanningManager.prototype.border=0,mxPopupMenu.prototype=new mxEventSource,mxPopupMenu.prototype.constructor=mxPopupMenu,mxPopupMenu.prototype.submenuImage=mxClient.imageBasePath+"/submenu.gif",mxPopupMenu.prototype.zIndex=10006,mxPopupMenu.prototype.factoryMethod=null,mxPopupMenu.prototype.useLeftButtonForPopup=!1,mxPopupMenu.prototype.enabled=!0,mxPopupMenu.prototype.itemCount=0,mxPopupMenu.prototype.autoExpand=!1,mxPopupMenu.prototype.smartSeparators=!1,mxPopupMenu.prototype.labels=!0,mxPopupMenu.prototype.init=function(){this.table=document.createElement("table"),this.table.className="mxPopupMenu",this.tbody=document.createElement("tbody"),this.table.appendChild(this.tbody),this.div=document.createElement("div"),this.div.className="mxPopupMenu",this.div.style.display="inline",this.div.style.zIndex=this.zIndex,this.div.appendChild(this.table),mxEvent.disableContextMenu(this.div)},mxPopupMenu.prototype.isEnabled=function(){return this.enabled},mxPopupMenu.prototype.setEnabled=function(e){this.enabled=e},mxPopupMenu.prototype.isPopupTrigger=function(e){return e.isPopupTrigger()||this.useLeftButtonForPopup&&mxEvent.isLeftMouseButton(e.getEvent())},mxPopupMenu.prototype.addItem=function(e,n,t,a,i,s){a=a||this,this.itemCount++,a.willAddSeparator&&(a.containsItems&&this.addSeparator(a,!0),a.willAddSeparator=!1),a.containsItems=!0;var o=document.createElement("tr");o.className="mxPopupMenuItem";var r=document.createElement("td");return r.className="mxPopupMenuIcon",null!=n?((i=document.createElement("img")).src=n,r.appendChild(i)):null!=i&&((n=document.createElement("div")).className=i,r.appendChild(n)),o.appendChild(r),this.labels&&((r=document.createElement("td")).className="mxPopupMenuItem"+(null==s||s?"":" disabled"),mxUtils.write(r,e),r.align="left",o.appendChild(r),(e=document.createElement("td")).className="mxPopupMenuItem"+(null==s||s?"":" disabled"),e.style.paddingRight="6px",e.style.textAlign="right",o.appendChild(e),null==a.div&&this.createSubmenu(a)),a.tbody.appendChild(o),(null==s||s)&&(mxEvent.addGestureListeners(o,mxUtils.bind(this,function(e){this.eventReceiver=o,a.activeRow!=o&&a.activeRow!=a&&(null!=a.activeRow&&null!=a.activeRow.div.parentNode&&this.hideSubmenu(a),null!=o.div&&(this.showSubmenu(a,o),a.activeRow=o)),mxEvent.consume(e)}),mxUtils.bind(this,function(e){a.activeRow!=o&&a.activeRow!=a&&(null!=a.activeRow&&null!=a.activeRow.div.parentNode&&this.hideSubmenu(a),this.autoExpand&&null!=o.div&&(this.showSubmenu(a,o),a.activeRow=o)),o.className="mxPopupMenuItemHover"}),mxUtils.bind(this,function(e){this.eventReceiver==o&&(a.activeRow!=o&&this.hideMenu(),null!=t&&t(e)),this.eventReceiver=null,mxEvent.consume(e)})),mxEvent.addListener(o,"mouseout",mxUtils.bind(this,function(e){o.className="mxPopupMenuItem"}))),o},mxPopupMenu.prototype.createSubmenu=function(e){e.table=document.createElement("table"),e.table.className="mxPopupMenu",e.tbody=document.createElement("tbody"),e.table.appendChild(e.tbody),e.div=document.createElement("div"),e.div.className="mxPopupMenu",e.div.style.position="absolute",e.div.style.display="inline",e.div.style.zIndex=this.zIndex,e.div.appendChild(e.table);var n=document.createElement("img");n.setAttribute("src",this.submenuImage),td=e.firstChild.nextSibling.nextSibling,td.appendChild(n)},mxPopupMenu.prototype.showSubmenu=function(e,n){if(null!=n.div){n.div.style.left=e.div.offsetLeft+n.offsetLeft+n.offsetWidth-1+"px",n.div.style.top=e.div.offsetTop+n.offsetTop+"px",document.body.appendChild(n.div);var t=parseInt(n.div.offsetLeft),a=parseInt(n.div.offsetWidth),i=document.body,s=document.documentElement;t+a>(i.scrollLeft||s.scrollLeft)+(i.clientWidth||s.clientWidth)&&(n.div.style.left=e.div.offsetLeft-a+(mxClient.IS_IE?6:-6)+"px"),mxUtils.fit(n.div)}},mxPopupMenu.prototype.addSeparator=function(e,n){if(e=e||this,this.smartSeparators&&!n)e.willAddSeparator=!0;else if(null!=e.tbody){e.willAddSeparator=!1;var t=document.createElement("tr"),a=document.createElement("td");a.className="mxPopupMenuIcon",a.style.padding="0 0 0 0px",t.appendChild(a),(a=document.createElement("td")).style.padding="0 0 0 0px",a.setAttribute("colSpan","2");var i=document.createElement("hr");i.setAttribute("size","1"),a.appendChild(i),t.appendChild(a),e.tbody.appendChild(t)}},mxPopupMenu.prototype.popup=function(e,n,t,a){if(null!=this.div&&null!=this.tbody&&null!=this.factoryMethod){for(this.div.style.left=e+"px",this.div.style.top=n+"px";null!=this.tbody.firstChild;)mxEvent.release(this.tbody.firstChild),this.tbody.removeChild(this.tbody.firstChild);this.itemCount=0,this.factoryMethod(this,t,a),0<this.itemCount&&(this.showMenu(),this.fireEvent(new mxEventObject(mxEvent.SHOW)))}},mxPopupMenu.prototype.isMenuShowing=function(){return null!=this.div&&this.div.parentNode==document.body},mxPopupMenu.prototype.showMenu=function(){9<=document.documentMode&&(this.div.style.filter="none"),document.body.appendChild(this.div),mxUtils.fit(this.div)},mxPopupMenu.prototype.hideMenu=function(){null!=this.div&&(null!=this.div.parentNode&&this.div.parentNode.removeChild(this.div),this.hideSubmenu(this),this.containsItems=!1)},mxPopupMenu.prototype.hideSubmenu=function(e){null!=e.activeRow&&(this.hideSubmenu(e.activeRow),null!=e.activeRow.div.parentNode&&e.activeRow.div.parentNode.removeChild(e.activeRow.div),e.activeRow=null)},mxPopupMenu.prototype.destroy=function(){null!=this.div&&(mxEvent.release(this.div),null!=this.div.parentNode&&this.div.parentNode.removeChild(this.div),this.div=null)},mxAutoSaveManager.prototype=new mxEventSource,mxAutoSaveManager.prototype.constructor=mxAutoSaveManager,mxAutoSaveManager.prototype.graph=null,mxAutoSaveManager.prototype.autoSaveDelay=10,mxAutoSaveManager.prototype.autoSaveThrottle=2,mxAutoSaveManager.prototype.autoSaveThreshold=5,mxAutoSaveManager.prototype.ignoredChanges=0,mxAutoSaveManager.prototype.lastSnapshot=0,mxAutoSaveManager.prototype.enabled=!0,mxAutoSaveManager.prototype.changeHandler=null,mxAutoSaveManager.prototype.isEnabled=function(){return this.enabled},mxAutoSaveManager.prototype.setEnabled=function(e){this.enabled=e},mxAutoSaveManager.prototype.setGraph=function(e){null!=this.graph&&this.graph.getModel().removeListener(this.changeHandler),this.graph=e,null!=this.graph&&this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler)},mxAutoSaveManager.prototype.save=function(){},mxAutoSaveManager.prototype.graphModelChanged=function(e){(e=((new Date).getTime()-this.lastSnapshot)/1e3)>this.autoSaveDelay||this.ignoredChanges>=this.autoSaveThreshold&&e>this.autoSaveThrottle?(this.save(),this.reset()):this.ignoredChanges++},mxAutoSaveManager.prototype.reset=function(){this.lastSnapshot=(new Date).getTime(),this.ignoredChanges=0},mxAutoSaveManager.prototype.destroy=function(){this.setGraph(null)},mxAnimation.prototype=new mxEventSource,mxAnimation.prototype.constructor=mxAnimation,mxAnimation.prototype.delay=null,mxAnimation.prototype.thread=null,mxAnimation.prototype.startAnimation=function(){null==this.thread&&(this.thread=window.setInterval(mxUtils.bind(this,this.updateAnimation),this.delay))},mxAnimation.prototype.updateAnimation=function(){this.fireEvent(new mxEventObject(mxEvent.EXECUTE))},mxAnimation.prototype.stopAnimation=function(){null!=this.thread&&(window.clearInterval(this.thread),this.thread=null,this.fireEvent(new mxEventObject(mxEvent.DONE)))},mxMorphing.prototype=new mxAnimation,mxMorphing.prototype.constructor=mxMorphing,mxMorphing.prototype.graph=null,mxMorphing.prototype.steps=null,mxMorphing.prototype.step=0,mxMorphing.prototype.ease=null,mxMorphing.prototype.cells=null,mxMorphing.prototype.updateAnimation=function(){var e=new mxCellStatePreview(this.graph);if(null!=this.cells)for(var n=0;n<this.cells.length;n++)this.animateCell(cells[n],e,!1);else this.animateCell(this.graph.getModel().getRoot(),e,!0);this.show(e),(e.isEmpty()||this.step++>=this.steps)&&this.stopAnimation()},mxMorphing.prototype.show=function(e){e.show()},mxMorphing.prototype.animateCell=function(e,n,t){var a=this.graph.getView().getState(e),i=null;if(null!=a&&(i=this.getDelta(a),this.graph.getModel().isVertex(e)&&(0!=i.x||0!=i.y))){var s=this.graph.view.getTranslate(),o=this.graph.view.getScale();i.x+=s.x*o,i.y+=s.y*o,n.moveState(a,-i.x/this.ease,-i.y/this.ease)}if(t&&!this.stopRecursion(a,i))for(a=this.graph.getModel().getChildCount(e),i=0;i<a;i++)this.animateCell(this.graph.getModel().getChildAt(e,i),n,t)},mxMorphing.prototype.stopRecursion=function(e,n){return null!=n&&(0!=n.x||0!=n.y)},mxMorphing.prototype.getDelta=function(e){var n=this.getOriginForCell(e.cell),t=this.graph.getView().getTranslate(),a=this.graph.getView().getScale();return e=new mxPoint(e.x/a-t.x,e.y/a-t.y),new mxPoint((n.x-e.x)*a,(n.y-e.y)*a)},mxMorphing.prototype.getOriginForCell=function(e){var n=null;return null!=e&&(n=this.getOriginForCell(this.graph.getModel().getParent(e)),null!=(e=this.graph.getCellGeometry(e))&&(n.x+=e.x,n.y+=e.y)),null==n&&(n=new mxPoint(-(n=this.graph.view.getTranslate()).x,-n.y)),n},mxImageBundle.prototype.images=null,mxImageBundle.prototype.images=null,mxImageBundle.prototype.putImage=function(e,n,t){this.images[e]={value:n,fallback:t}},mxImageBundle.prototype.getImage=function(e){var n=null;return null!=e&&(null!=(e=this.images[e])&&(n=this.alt?e.fallback:e.value)),n},mxImageExport.prototype.includeOverlays=!1,mxImageExport.prototype.drawState=function(e,n){null!=e&&(this.visitStatesRecursive(e,n,this.drawCellState),this.includeOverlays&&this.visitStatesRecursive(e,n,this.drawOverlays))},mxImageExport.prototype.visitStatesRecursive=function(e,n,t){if(null!=e){t(e,n);for(var a=e.view.graph,i=a.model.getChildCount(e.cell),s=0;s<i;s++){var o=a.view.getState(a.model.getChildAt(e.cell,s));this.visitStatesRecursive(o,n,t)}}},mxImageExport.prototype.drawCellState=function(e,n){e.shape instanceof mxShape&&(n.save(),e.shape.paint(n),n.restore()),null!=e.text&&(n.save(),e.text.paint(n),n.restore())},mxImageExport.prototype.drawOverlays=function(e,t){null!=e.overlays&&e.overlays.visit(function(e,n){n instanceof mxShape&&n.paint(t)})},mxAbstractCanvas2D.prototype.state=null,mxAbstractCanvas2D.prototype.states=null,mxAbstractCanvas2D.prototype.path=null,mxAbstractCanvas2D.prototype.rotateHtml=!0,mxAbstractCanvas2D.prototype.lastX=0,mxAbstractCanvas2D.prototype.lastY=0,mxAbstractCanvas2D.prototype.moveOp="M",mxAbstractCanvas2D.prototype.lineOp="L",mxAbstractCanvas2D.prototype.quadOp="Q",mxAbstractCanvas2D.prototype.curveOp="C",mxAbstractCanvas2D.prototype.closeOp="Z",mxAbstractCanvas2D.prototype.pointerEvents=!1,mxAbstractCanvas2D.prototype.createUrlConverter=function(){return new mxUrlConverter},mxAbstractCanvas2D.prototype.reset=function(){this.state=this.createState(),this.states=[]},mxAbstractCanvas2D.prototype.createState=function(){return{dx:0,dy:0,scale:1,alpha:1,fillColor:null,fillAlpha:1,gradientColor:null,gradientAlpha:1,gradientDirection:null,strokeColor:null,strokeWidth:1,dashed:!1,dashPattern:"3 3",lineCap:"flat",lineJoin:"miter",miterLimit:10,fontColor:"#000000",fontBackgroundColor:null,fontBorderColor:null,fontSize:mxConstants.DEFAULT_FONTSIZE,fontFamily:mxConstants.DEFAULT_FONTFAMILY,fontStyle:0,shadow:!1,shadowColor:mxConstants.SHADOWCOLOR,shadowAlpha:mxConstants.SHADOW_OPACITY,shadowDx:mxConstants.SHADOW_OFFSET_X,shadowDy:mxConstants.SHADOW_OFFSET_Y,rotation:0,rotationCx:0,rotationCy:0}},mxAbstractCanvas2D.prototype.format=function(e){return Math.round(parseFloat(e))},mxAbstractCanvas2D.prototype.addOp=function(){if(null!=this.path&&(this.path.push(arguments[0]),2<arguments.length))for(var e=this.state,n=2;n<arguments.length;n+=2)this.lastX=arguments[n-1],this.lastY=arguments[n],this.path.push(this.format((this.lastX+e.dx)*e.scale)),this.path.push(this.format((this.lastY+e.dy)*e.scale))},mxAbstractCanvas2D.prototype.rotatePoint=function(e,n,t,a,i){return t*=Math.PI/180,mxUtils.getRotatedPoint(new mxPoint(e,n),Math.cos(t),Math.sin(t),new mxPoint(a,i))},mxAbstractCanvas2D.prototype.save=function(){this.states.push(this.state),this.state=mxUtils.clone(this.state)},mxAbstractCanvas2D.prototype.restore=function(){this.state=this.states.pop()},mxAbstractCanvas2D.prototype.scale=function(e){this.state.scale*=e,this.state.strokeWidth*=e},mxAbstractCanvas2D.prototype.translate=function(e,n){this.state.dx+=e,this.state.dy+=n},mxAbstractCanvas2D.prototype.setAlpha=function(e){this.state.alpha=e},mxAbstractCanvas2D.prototype.setFillColor=function(e){e==mxConstants.NONE&&(e=null),this.state.fillColor=e,this.state.gradientColor=null},mxAbstractCanvas2D.prototype.setGradient=function(e,n,t,a,i,s,o,r,l){(t=this.state).fillColor=e,t.fillAlpha=null!=r?r:1,t.gradientColor=n,t.gradientAlpha=null!=l?l:1,t.gradientDirection=o},mxAbstractCanvas2D.prototype.setStrokeColor=function(e){e==mxConstants.NONE&&(e=null),this.state.strokeColor=e},mxAbstractCanvas2D.prototype.setStrokeWidth=function(e){this.state.strokeWidth=e},mxAbstractCanvas2D.prototype.setDashed=function(e){this.state.dashed=e},mxAbstractCanvas2D.prototype.setDashPattern=function(e){this.state.dashPattern=e},mxAbstractCanvas2D.prototype.setLineCap=function(e){this.state.lineCap=e},mxAbstractCanvas2D.prototype.setLineJoin=function(e){this.state.lineJoin=e},mxAbstractCanvas2D.prototype.setMiterLimit=function(e){this.state.miterLimit=e},mxAbstractCanvas2D.prototype.setFontColor=function(e){e==mxConstants.NONE&&(e=null),this.state.fontColor=e},mxAbstractCanvas2D.prototype.setFontBackgroundColor=function(e){e==mxConstants.NONE&&(e=null),this.state.fontBackgroundColor=e},mxAbstractCanvas2D.prototype.setFontBorderColor=function(e){e==mxConstants.NONE&&(e=null),this.state.fontBorderColor=e},mxAbstractCanvas2D.prototype.setFontSize=function(e){this.state.fontSize=e},mxAbstractCanvas2D.prototype.setFontFamily=function(e){this.state.fontFamily=e},mxAbstractCanvas2D.prototype.setFontStyle=function(e){null==e&&(e=0),this.state.fontStyle=e},mxAbstractCanvas2D.prototype.setShadow=function(e){this.state.shadow=e},mxAbstractCanvas2D.prototype.setShadowColor=function(e){e==mxConstants.NONE&&(e=null),this.state.shadowColor=e},mxAbstractCanvas2D.prototype.setShadowAlpha=function(e){this.state.shadowAlpha=e},mxAbstractCanvas2D.prototype.setShadowOffset=function(e,n){this.state.shadowDx=e,this.state.shadowDy=n},mxAbstractCanvas2D.prototype.begin=function(){this.lastY=this.lastX=0,this.path=[]},mxAbstractCanvas2D.prototype.moveTo=function(e,n){this.addOp(this.moveOp,e,n)},mxAbstractCanvas2D.prototype.lineTo=function(e,n){this.addOp(this.lineOp,e,n)},mxAbstractCanvas2D.prototype.quadTo=function(e,n,t,a){this.addOp(this.quadOp,e,n,t,a)},mxAbstractCanvas2D.prototype.curveTo=function(e,n,t,a,i,s){this.addOp(this.curveOp,e,n,t,a,i,s)},mxAbstractCanvas2D.prototype.arcTo=function(e,n,t,a,i,s,o){for(e=mxUtils.arcToCurves(this.lastX,this.lastY,e,n,t,a,i,s,o),n=0;n<e.length;n+=6)this.curveTo(e[n],e[n+1],e[n+2],e[n+3],e[n+4],e[n+5])},mxAbstractCanvas2D.prototype.close=function(e,n,t,a,i,s){this.addOp(this.closeOp)},mxAbstractCanvas2D.prototype.end=function(){},mxUtils.extend(mxXmlCanvas2D,mxAbstractCanvas2D),mxXmlCanvas2D.prototype.textEnabled=!0,mxXmlCanvas2D.prototype.compressed=!0,mxXmlCanvas2D.prototype.writeDefaults=function(){var e;(e=this.createElement("fontfamily")).setAttribute("family",mxConstants.DEFAULT_FONTFAMILY),this.root.appendChild(e),(e=this.createElement("fontsize")).setAttribute("size",mxConstants.DEFAULT_FONTSIZE),this.root.appendChild(e),(e=this.createElement("shadowcolor")).setAttribute("color",mxConstants.SHADOWCOLOR),this.root.appendChild(e),(e=this.createElement("shadowalpha")).setAttribute("alpha",mxConstants.SHADOW_OPACITY),this.root.appendChild(e),(e=this.createElement("shadowoffset")).setAttribute("dx",mxConstants.SHADOW_OFFSET_X),e.setAttribute("dy",mxConstants.SHADOW_OFFSET_Y),this.root.appendChild(e)},mxXmlCanvas2D.prototype.format=function(e){return parseFloat(parseFloat(e).toFixed(2))},mxXmlCanvas2D.prototype.createElement=function(e){return this.root.ownerDocument.createElement(e)},mxXmlCanvas2D.prototype.save=function(){this.compressed&&mxAbstractCanvas2D.prototype.save.apply(this,arguments),this.root.appendChild(this.createElement("save"))},mxXmlCanvas2D.prototype.restore=function(){this.compressed&&mxAbstractCanvas2D.prototype.restore.apply(this,arguments),this.root.appendChild(this.createElement("restore"))},mxXmlCanvas2D.prototype.scale=function(e){if(this.compressed){if(this.state.scale==e)return;mxAbstractCanvas2D.prototype.setAlpha.apply(this,arguments)}var n=this.createElement("scale");n.setAttribute("scale",e),this.root.appendChild(n)},mxXmlCanvas2D.prototype.translate=function(e,n){var t=this.createElement("translate");t.setAttribute("dx",this.format(e)),t.setAttribute("dy",this.format(n)),this.root.appendChild(t)},mxXmlCanvas2D.prototype.rotate=function(e,n,t,a,i){var s=this.createElement("rotate");(0!=e||n||t)&&(s.setAttribute("theta",this.format(e)),s.setAttribute("flipH",n?"1":"0"),s.setAttribute("flipV",t?"1":"0"),s.setAttribute("cx",this.format(a)),s.setAttribute("cy",this.format(i)),this.root.appendChild(s))},mxXmlCanvas2D.prototype.setAlpha=function(e){if(this.compressed){if(this.state.alpha==e)return;mxAbstractCanvas2D.prototype.setAlpha.apply(this,arguments)}var n=this.createElement("alpha");n.setAttribute("alpha",this.format(e)),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setFillColor=function(e){if(e==mxConstants.NONE&&(e=null),this.compressed){if(this.state.fillColor==e)return;mxAbstractCanvas2D.prototype.setFillColor.apply(this,arguments)}var n=this.createElement("fillcolor");n.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setGradient=function(e,n,t,a,i,s,o,r,l){if(null!=e&&null!=n){mxAbstractCanvas2D.prototype.setGradient.apply(this,arguments);var d=this.createElement("gradient");d.setAttribute("c1",e),d.setAttribute("c2",n),d.setAttribute("x",this.format(t)),d.setAttribute("y",this.format(a)),d.setAttribute("w",this.format(i)),d.setAttribute("h",this.format(s)),null!=o&&d.setAttribute("direction",o),null!=r&&d.setAttribute("alpha1",r),null!=l&&d.setAttribute("alpha2",l),this.root.appendChild(d)}},mxXmlCanvas2D.prototype.setStrokeColor=function(e){if(e==mxConstants.NONE&&(e=null),this.compressed){if(this.state.strokeColor==e)return;mxAbstractCanvas2D.prototype.setStrokeColor.apply(this,arguments)}var n=this.createElement("strokecolor");n.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setStrokeWidth=function(e){if(this.compressed){if(this.state.strokeWidth==e)return;mxAbstractCanvas2D.prototype.setStrokeWidth.apply(this,arguments)}var n=this.createElement("strokewidth");n.setAttribute("width",this.format(e)),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setDashed=function(e){if(this.compressed){if(this.state.dashed==e)return;mxAbstractCanvas2D.prototype.setDashed.apply(this,arguments)}var n=this.createElement("dashed");n.setAttribute("dashed",e?"1":"0"),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setDashPattern=function(e){if(this.compressed){if(this.state.dashPattern==e)return;mxAbstractCanvas2D.prototype.setDashPattern.apply(this,arguments)}var n=this.createElement("dashpattern");n.setAttribute("pattern",e),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setLineCap=function(e){if(this.compressed){if(this.state.lineCap==e)return;mxAbstractCanvas2D.prototype.setLineCap.apply(this,arguments)}var n=this.createElement("linecap");n.setAttribute("cap",e),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setLineJoin=function(e){if(this.compressed){if(this.state.lineJoin==e)return;mxAbstractCanvas2D.prototype.setLineJoin.apply(this,arguments)}var n=this.createElement("linejoin");n.setAttribute("join",e),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setMiterLimit=function(e){if(this.compressed){if(this.state.miterLimit==e)return;mxAbstractCanvas2D.prototype.setMiterLimit.apply(this,arguments)}var n=this.createElement("miterlimit");n.setAttribute("limit",e),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setFontColor=function(e){if(this.textEnabled){if(e==mxConstants.NONE&&(e=null),this.compressed){if(this.state.fontColor==e)return;mxAbstractCanvas2D.prototype.setFontColor.apply(this,arguments)}var n=this.createElement("fontcolor");n.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(n)}},mxXmlCanvas2D.prototype.setFontBackgroundColor=function(e){if(this.textEnabled){if(e==mxConstants.NONE&&(e=null),this.compressed){if(this.state.fontBackgroundColor==e)return;mxAbstractCanvas2D.prototype.setFontBackgroundColor.apply(this,arguments)}var n=this.createElement("fontbackgroundcolor");n.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(n)}},mxXmlCanvas2D.prototype.setFontBorderColor=function(e){if(this.textEnabled){if(e==mxConstants.NONE&&(e=null),this.compressed){if(this.state.fontBorderColor==e)return;mxAbstractCanvas2D.prototype.setFontBorderColor.apply(this,arguments)}var n=this.createElement("fontbordercolor");n.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(n)}},mxXmlCanvas2D.prototype.setFontSize=function(e){if(this.textEnabled){if(this.compressed){if(this.state.fontSize==e)return;mxAbstractCanvas2D.prototype.setFontSize.apply(this,arguments)}var n=this.createElement("fontsize");n.setAttribute("size",e),this.root.appendChild(n)}},mxXmlCanvas2D.prototype.setFontFamily=function(e){if(this.textEnabled){if(this.compressed){if(this.state.fontFamily==e)return;mxAbstractCanvas2D.prototype.setFontFamily.apply(this,arguments)}var n=this.createElement("fontfamily");n.setAttribute("family",e),this.root.appendChild(n)}},mxXmlCanvas2D.prototype.setFontStyle=function(e){if(this.textEnabled){if(null==e&&(e=0),this.compressed){if(this.state.fontStyle==e)return;mxAbstractCanvas2D.prototype.setFontStyle.apply(this,arguments)}var n=this.createElement("fontstyle");n.setAttribute("style",e),this.root.appendChild(n)}},mxXmlCanvas2D.prototype.setShadow=function(e){if(this.compressed){if(this.state.shadow==e)return;mxAbstractCanvas2D.prototype.setShadow.apply(this,arguments)}var n=this.createElement("shadow");n.setAttribute("enabled",e?"1":"0"),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setShadowColor=function(e){if(this.compressed){if(e==mxConstants.NONE&&(e=null),this.state.shadowColor==e)return;mxAbstractCanvas2D.prototype.setShadowColor.apply(this,arguments)}var n=this.createElement("shadowcolor");n.setAttribute("color",null!=e?e:mxConstants.NONE),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setShadowAlpha=function(e){if(this.compressed){if(this.state.shadowAlpha==e)return;mxAbstractCanvas2D.prototype.setShadowAlpha.apply(this,arguments)}var n=this.createElement("shadowalpha");n.setAttribute("alpha",e),this.root.appendChild(n)},mxXmlCanvas2D.prototype.setShadowOffset=function(e,n){if(this.compressed){if(this.state.shadowDx==e&&this.state.shadowDy==n)return;mxAbstractCanvas2D.prototype.setShadowOffset.apply(this,arguments)}var t=this.createElement("shadowoffset");t.setAttribute("dx",e),t.setAttribute("dy",n),this.root.appendChild(t)},mxXmlCanvas2D.prototype.rect=function(e,n,t,a){var i=this.createElement("rect");i.setAttribute("x",this.format(e)),i.setAttribute("y",this.format(n)),i.setAttribute("w",this.format(t)),i.setAttribute("h",this.format(a)),this.root.appendChild(i)},mxXmlCanvas2D.prototype.roundrect=function(e,n,t,a,i,s){var o=this.createElement("roundrect");o.setAttribute("x",this.format(e)),o.setAttribute("y",this.format(n)),o.setAttribute("w",this.format(t)),o.setAttribute("h",this.format(a)),o.setAttribute("dx",this.format(i)),o.setAttribute("dy",this.format(s)),this.root.appendChild(o)},mxXmlCanvas2D.prototype.ellipse=function(e,n,t,a){var i=this.createElement("ellipse");i.setAttribute("x",this.format(e)),i.setAttribute("y",this.format(n)),i.setAttribute("w",this.format(t)),i.setAttribute("h",this.format(a)),this.root.appendChild(i)},mxXmlCanvas2D.prototype.image=function(e,n,t,a,i,s,o,r){i=this.converter.convert(i);var l=this.createElement("image");l.setAttribute("x",this.format(e)),l.setAttribute("y",this.format(n)),l.setAttribute("w",this.format(t)),l.setAttribute("h",this.format(a)),l.setAttribute("src",i),l.setAttribute("aspect",s?"1":"0"),l.setAttribute("flipH",o?"1":"0"),l.setAttribute("flipV",r?"1":"0"),this.root.appendChild(l)},mxXmlCanvas2D.prototype.begin=function(){this.root.appendChild(this.createElement("begin")),this.lastY=this.lastX=0},mxXmlCanvas2D.prototype.moveTo=function(e,n){var t=this.createElement("move");t.setAttribute("x",this.format(e)),t.setAttribute("y",this.format(n)),this.root.appendChild(t),this.lastX=e,this.lastY=n},mxXmlCanvas2D.prototype.lineTo=function(e,n){var t=this.createElement("line");t.setAttribute("x",this.format(e)),t.setAttribute("y",this.format(n)),this.root.appendChild(t),this.lastX=e,this.lastY=n},mxXmlCanvas2D.prototype.quadTo=function(e,n,t,a){var i=this.createElement("quad");i.setAttribute("x1",this.format(e)),i.setAttribute("y1",this.format(n)),i.setAttribute("x2",this.format(t)),i.setAttribute("y2",this.format(a)),this.root.appendChild(i),this.lastX=t,this.lastY=a},mxXmlCanvas2D.prototype.curveTo=function(e,n,t,a,i,s){var o=this.createElement("curve");o.setAttribute("x1",this.format(e)),o.setAttribute("y1",this.format(n)),o.setAttribute("x2",this.format(t)),o.setAttribute("y2",this.format(a)),o.setAttribute("x3",this.format(i)),o.setAttribute("y3",this.format(s)),this.root.appendChild(o),this.lastX=i,this.lastY=s},mxXmlCanvas2D.prototype.close=function(){this.root.appendChild(this.createElement("close"))},mxXmlCanvas2D.prototype.text=function(e,n,t,a,i,s,o,r,l,d,c,m){if(this.textEnabled&&null!=i){mxUtils.isNode(i)&&(i=mxUtils.getOuterHtml(i));var u=this.createElement("text");u.setAttribute("x",this.format(e)),u.setAttribute("y",this.format(n)),u.setAttribute("w",this.format(t)),u.setAttribute("h",this.format(a)),u.setAttribute("str",i),null!=s&&u.setAttribute("align",s),null!=o&&u.setAttribute("valign",o),u.setAttribute("wrap",r?"1":"0"),null==l&&(l=""),u.setAttribute("format",l),null!=d&&u.setAttribute("fill",d?"1":"0"),null!=c&&u.setAttribute("clip",c?"1":"0"),null!=m&&u.setAttribute("rotation",m),this.root.appendChild(u)}},mxXmlCanvas2D.prototype.stroke=function(){this.root.appendChild(this.createElement("stroke"))},mxXmlCanvas2D.prototype.fill=function(){this.root.appendChild(this.createElement("fill"))},mxXmlCanvas2D.prototype.fillAndStroke=function(){this.root.appendChild(this.createElement("fillstroke"))},mxUtils.extend(mxSvgCanvas2D,mxAbstractCanvas2D),mxSvgCanvas2D.prototype.node=null,mxSvgCanvas2D.prototype.matchHtmlAlignment=!0,mxSvgCanvas2D.prototype.textEnabled=!0,mxSvgCanvas2D.prototype.foEnabled=!0,mxSvgCanvas2D.prototype.strokeTolerance=0,mxSvgCanvas2D.prototype.refCount=0,mxSvgCanvas2D.prototype.blockImagePointerEvents=!1,mxSvgCanvas2D.prototype.reset=function(){mxAbstractCanvas2D.prototype.reset.apply(this,arguments),this.gradients=[]},mxSvgCanvas2D.prototype.createStyle=function(e){return(e=this.createElement("style")).setAttribute("type","text/css"),mxUtils.write(e,"svg{font-family:"+mxConstants.DEFAULT_FONTFAMILY+";font-size:"+mxConstants.DEFAULT_FONTSIZE+";fill:none;stroke-miterlimit:10}"),e},mxSvgCanvas2D.prototype.createElement=function(e,n){if(null!=this.root.ownerDocument.createElementNS)return this.root.ownerDocument.createElementNS(n||mxConstants.NS_SVG,e);var t=this.root.ownerDocument.createElement(e);return null!=n&&t.setAttribute("xmlns",n),t},mxSvgCanvas2D.prototype.createGradientId=function(e,n,t,a,i){return"#"==e.charAt(0)&&(e=e.substring(1)),"#"==n.charAt(0)&&(n=n.substring(1)),e=e.toLowerCase()+"-"+t,n=n.toLowerCase()+"-"+a,(t=null)==i||i==mxConstants.DIRECTION_SOUTH?t="s":i==mxConstants.DIRECTION_EAST?t="e":(a=e,e=n,n=a,i==mxConstants.DIRECTION_NORTH?t="s":i==mxConstants.DIRECTION_WEST&&(t="e")),"mx-gradient-"+e+"-"+n+"-"+t},mxSvgCanvas2D.prototype.getSvgGradient=function(e,n,t,a,i){var s=this.createGradientId(e,n,t,a,i),o=this.gradients[s];if(null==o){var r=this.root.ownerSVGElement,l=0,d=s+"-"+l;if(null!=r)for(o=r.ownerDocument.getElementById(d);null!=o&&o.ownerSVGElement!=r;)d=s+"-"+l++,o=r.ownerDocument.getElementById(d);else d="id"+ ++this.refCount;null==o&&((o=this.createSvgGradient(e,n,t,a,i)).setAttribute("id",d),null!=this.defs?this.defs.appendChild(o):r.appendChild(o)),this.gradients[s]=o}return o.getAttribute("id")},mxSvgCanvas2D.prototype.createSvgGradient=function(e,n,t,a,i){var s=this.createElement("linearGradient");return s.setAttribute("x1","0%"),s.setAttribute("y1","0%"),s.setAttribute("x2","0%"),s.setAttribute("y2","0%"),null==i||i==mxConstants.DIRECTION_SOUTH?s.setAttribute("y2","100%"):i==mxConstants.DIRECTION_EAST?s.setAttribute("x2","100%"):i==mxConstants.DIRECTION_NORTH?s.setAttribute("y1","100%"):i==mxConstants.DIRECTION_WEST&&s.setAttribute("x1","100%"),t=t<1?";stop-opacity:"+t:"",(i=this.createElement("stop")).setAttribute("offset","0%"),i.setAttribute("style","stop-color:"+e+t),s.appendChild(i),t=a<1?";stop-opacity:"+a:"",(i=this.createElement("stop")).setAttribute("offset","100%"),i.setAttribute("style","stop-color:"+n+t),s.appendChild(i),s},mxSvgCanvas2D.prototype.addNode=function(e,n){var t=this.node,a=this.state;if(null!=t){if("path"==t.nodeName){if(!(null!=this.path&&0<this.path.length))return;t.setAttribute("d",this.path.join(" "))}e&&null!=a.fillColor?this.updateFill():this.styleEnabled||("ellipse"!=t.nodeName||!mxClient.IS_NS||mxClient.IS_GC||mxClient.IS_SF?t.setAttribute("fill","none"):t.setAttribute("fill","transparent"),e=!1),n&&null!=a.strokeColor?this.updateStroke():this.styleEnabled||t.setAttribute("stroke","none"),null!=a.transform&&0<a.transform.length&&t.setAttribute("transform",a.transform),a.shadow&&this.root.appendChild(this.createShadow(t)),0<this.strokeTolerance&&!e&&this.root.appendChild(this.createTolerance(t)),this.pointerEvents&&("path"!=t.nodeName||this.path[this.path.length-1]==this.closeOp)&&t.setAttribute("pointer-events","all"),this.root.appendChild(t)}},mxSvgCanvas2D.prototype.updateFill=function(){var e=this.state;e.alpha<1&&this.node.setAttribute("fill-opacity",e.alpha),null!=e.fillColor&&(null!=e.gradientColor?(e=this.getSvgGradient(e.fillColor,e.gradientColor,e.fillAlpha,e.gradientAlpha,e.gradientDirection),this.node.setAttribute("fill","url(#"+e+")")):this.node.setAttribute("fill",e.fillColor.toLowerCase()))},mxSvgCanvas2D.prototype.updateStroke=function(){var e=this.state;this.node.setAttribute("stroke",e.strokeColor.toLowerCase()),e.alpha<1&&this.node.setAttribute("stroke-opacity",e.alpha);var n=Math.max(1,this.format(e.strokeWidth*e.scale));1!=n&&this.node.setAttribute("stroke-width",n),"path"==this.node.nodeName&&this.updateStrokeAttributes(),e.dashed&&this.node.setAttribute("stroke-dasharray",this.createDashPattern(n))},mxSvgCanvas2D.prototype.updateStrokeAttributes=function(){var e=this.state;if(null!=e.lineJoin&&"miter"!=e.lineJoin&&this.node.setAttribute("stroke-linejoin",e.lineJoin),null!=e.lineCap){var n=e.lineCap;"flat"==n&&(n="butt"),"butt"!=n&&this.node.setAttribute("stroke-linecap",n)}null!=e.miterLimit&&(!this.styleEnabled||10!=e.miterLimit)&&this.node.setAttribute("stroke-miterlimit",e.miterLimit)},mxSvgCanvas2D.prototype.createDashPattern=function(e){var n=this.state.dashPattern.split(" "),t=[];if(0<n.length)for(var a=0;a<n.length;a++)t[a]=Number(n[a])*e;return t.join(" ")},mxSvgCanvas2D.prototype.createTolerance=function(e){e=e.cloneNode(!0);var n=parseFloat(e.getAttribute("stroke-width")||1)+this.strokeTolerance;return e.setAttribute("pointer-events","stroke"),e.setAttribute("visibility","hidden"),e.removeAttribute("stroke-dasharray"),e.setAttribute("stroke-width",n),e.setAttribute("fill","none"),e.setAttribute("stroke",mxClient.IS_OP?"none":"white"),e},mxSvgCanvas2D.prototype.createShadow=function(e){e=e.cloneNode(!0);var n=this.state;return"none"!=e.getAttribute("fill")&&e.setAttribute("fill",n.shadowColor),"none"!=e.getAttribute("stroke")&&e.setAttribute("stroke",n.shadowColor),e.setAttribute("transform","translate("+this.format(n.shadowDx*n.scale)+","+this.format(n.shadowDy*n.scale)+")"+(n.transform||"")),e.setAttribute("opacity",n.shadowAlpha),e},mxSvgCanvas2D.prototype.rotate=function(e,n,t,a,i){if(0!=e||n||t){var s=this.state;if(a+=s.dx,i+=s.dy,a*=s.scale,i*=s.scale,s.transform=s.transform||"",n&&t)e+=180;else if(n^t){var o=n?a:0,r=n?-1:1,l=t?i:0,d=t?-1:1;s.transform+="translate("+this.format(o)+","+this.format(l)+")scale("+this.format(r)+","+this.format(d)+")translate("+this.format(-o)+","+this.format(-l)+")"}(n?!t:t)&&(e*=-1),0!=e&&(s.transform+="rotate("+this.format(e)+","+this.format(a)+","+this.format(i)+")"),s.rotation+=e,s.rotationCx=a,s.rotationCy=i}},mxSvgCanvas2D.prototype.begin=function(){mxAbstractCanvas2D.prototype.begin.apply(this,arguments),this.node=this.createElement("path")},mxSvgCanvas2D.prototype.rect=function(e,n,t,a){var i=this.state,s=this.createElement("rect");s.setAttribute("x",this.format((e+i.dx)*i.scale)),s.setAttribute("y",this.format((n+i.dy)*i.scale)),s.setAttribute("width",this.format(t*i.scale)),s.setAttribute("height",this.format(a*i.scale)),this.node=s},mxSvgCanvas2D.prototype.roundrect=function(e,n,t,a,i,s){this.rect(e,n,t,a),0<i&&this.node.setAttribute("rx",this.format(i*this.state.scale)),0<s&&this.node.setAttribute("ry",this.format(s*this.state.scale))},mxSvgCanvas2D.prototype.ellipse=function(e,n,t,a){var i=this.state,s=this.createElement("ellipse");s.setAttribute("cx",Math.round((e+t/2+i.dx)*i.scale)),s.setAttribute("cy",Math.round((n+a/2+i.dy)*i.scale)),s.setAttribute("rx",t/2*i.scale),s.setAttribute("ry",a/2*i.scale),this.node=s},mxSvgCanvas2D.prototype.image=function(e,n,t,a,i,s,o,r){i=this.converter.convert(i),s=null==s||s,o=null!=o&&o,r=null!=r&&r;var l=this.state;e+=l.dx,n+=l.dy;var d=this.createElement("image");if(d.setAttribute("x",this.format(e*l.scale)),d.setAttribute("y",this.format(n*l.scale)),d.setAttribute("width",this.format(t*l.scale)),d.setAttribute("height",this.format(a*l.scale)),null==d.setAttributeNS?d.setAttribute("xlink:href",i):d.setAttributeNS(mxConstants.NS_XLINK,"href",i),s||d.setAttribute("preserveAspectRatio","none"),l.alpha<1&&d.setAttribute("opacity",l.alpha),i=this.state.transform||"",o||r){var c=s=1,m=0,u=0;o&&(s=-1,m=-t-2*e),r&&(c=-1,u=-a-2*n),i+="scale("+s+","+c+")translate("+m+","+u+")"}0<i.length&&d.setAttribute("transform",i),this.root.appendChild(d),this.blockImagePointerEvents&&(d.setAttribute("style","pointer-events:none"),(d=this.createElement("rect")).setAttribute("visibility","hidden"),d.setAttribute("pointer-events","fill"),d.setAttribute("x",this.format(e*l.scale)),d.setAttribute("y",this.format(n*l.scale)),d.setAttribute("width",this.format(t*l.scale)),d.setAttribute("height",this.format(a*l.scale)),this.root.appendChild(d))},mxSvgCanvas2D.prototype.createDiv=function(e,n,t,a,i){return t=this.state,a="display:inline-block;font-size:"+Math.round(t.fontSize)+"px;font-family:"+t.fontFamily+";color:"+t.fontColor+";line-height:"+Math.round(t.fontSize*mxConstants.LINE_HEIGHT)+"px;"+a,(t.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(a+="font-weight:bold;"),(t.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(a+="font-style:italic;"),(t.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&(a+="font-decoration:underline;"),n==mxConstants.ALIGN_CENTER?a+="text-align:center;":n==mxConstants.ALIGN_RIGHT&&(a+="text-align:right;"),n="",null!=t.fontBackgroundColor&&(n+="background-color:"+t.fontBackgroundColor+";"),null!=t.fontBorderColor&&(n+="border:1px solid "+t.fontBorderColor+";"),mxUtils.isNode(e)||((t=document.createElement("textarea")).innerHTML=e.replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/</g,"<").replace(/>/g,">"),e=t.value,i?a+=n:0<n.length&&(e='<div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;'+n+'">'+e+"</div>")),!mxClient.IS_IE&&document.createElementNS?((i=document.createElementNS("http://www.w3.org/1999/xhtml","div")).setAttribute("style",a),mxUtils.isNode(e)?this.root.ownerDocument!=document?i.appendChild(e.cloneNode(!0)):i.appendChild(e):i.innerHTML=e,i):(mxUtils.isNode(e)&&this.root.ownerDocument!=document&&(e=e.outerHTML),e=e.replace(/<br>/g,"<br />").replace(/<hr>/g,"<hr />"),mxUtils.parseXml('<div xmlns="http://www.w3.org/1999/xhtml" style="'+a+'">'+e+"</div>").documentElement)},mxSvgCanvas2D.prototype.text=function(e,n,t,a,i,s,o,r,l,d,c,m){if(this.textEnabled&&null!=i){m=null!=m?m:0;var u=this.state;if(e+=u.dx,n+=u.dy,this.foEnabled&&"html"==l){var p="vertical-align:top;";if(c?(p+="overflow:hidden;",0<a&&(p+="max-height:"+Math.round(a)+"px;"),0<t&&(p+="width:"+Math.round(t)+"px;")):d&&(p+="width:"+Math.round(t)+"px;",0<a&&(p+="max-height:"+Math.round(a)+"px;")),r?(!c&&0<t&&(p+="width:"+Math.round(t)+"px;"),p+="white-space:normal;"):p+="white-space:nowrap;",r=this.createElement("g"),u.alpha<1&&r.setAttribute("opacity",u.alpha),(l=this.createElement("foreignObject")).setAttribute("pointer-events","all"),null!=(p=this.createDiv(i,s,o,p,d))){r.appendChild(l),this.root.appendChild(r);var g=0;if(mxClient.IS_IE&&!mxClient.IS_SVG){var v=document.createElement("div");v.style.cssText=p.getAttribute("style"),v.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",v.style.visibility="hidden",v.innerHTML=mxUtils.isNode(i)?i.outerHTML:i,document.body.appendChild(v),g=v.offsetWidth,a=mxClient.IS_QUIRKS&&0<a&&c?Math.min(a,v.offsetHeight+2):v.offsetHeight,v.parentNode.removeChild(v),l.appendChild(p)}else this.root.ownerDocument!=document?(p.style.visibility="hidden",document.body.appendChild(p),g=p.offsetWidth,a=p.offsetHeight,l.appendChild(p),p.style.visibility=""):(l.appendChild(p),g=p.offsetWidth,a=p.offsetHeight);t=d?Math.max(t,g):g,u.alpha<1&&r.setAttribute("opacity",u.alpha),d=i=0,s==mxConstants.ALIGN_CENTER?i-=t/2:s==mxConstants.ALIGN_RIGHT&&(i-=t),e+=i,o==mxConstants.ALIGN_MIDDLE?d-=a/2:o==mxConstants.ALIGN_BOTTOM&&(d-=a),n+=d,s=1!=u.scale?"scale("+u.scale+")":"",0!=u.rotation&&this.rotateHtml?(s+="rotate("+u.rotation+","+t/2+","+a/2+")",e=(n=this.rotatePoint((e+t/2)*u.scale,(n+a/2)*u.scale,u.rotation,u.rotationCx,u.rotationCy)).x-t*u.scale/2,n=n.y-a*u.scale/2):(e*=u.scale,n*=u.scale),0!=m&&(s+="rotate("+m+","+-i+","+-d+")"),r.setAttribute("transform","translate("+Math.round(e)+","+Math.round(n)+")"+s),l.setAttribute("width",Math.round(Math.max(1,t))),l.setAttribute("height",Math.round(Math.max(1,a)))}}else this.plainText(e,n,t,a,i,s,o,r,d,c,m)}},mxSvgCanvas2D.prototype.createClip=function(e,n,t,a){for(var i="mx-clip-"+(e=Math.round(e))+"-"+(n=Math.round(n))+"-"+(t=Math.round(t))+"-"+(a=Math.round(a)),s=0,o=i+"-"+s;null!=document.getElementById(o);)o=i+"-"+ ++s;return clip=this.createElement("clipPath"),clip.setAttribute("id",o),(i=this.createElement("rect")).setAttribute("x",e),i.setAttribute("y",n),i.setAttribute("width",t),i.setAttribute("height",a),clip.appendChild(i),clip},mxSvgCanvas2D.prototype.plainText=function(e,n,t,a,i,s,o,r,l,d,c){c=null!=c?c:0,r=this.state;var m=Math.round(r.fontSize),u=this.createElement("g"),p=r.transform||"";if(0!=c&&(p+="rotate("+c+","+this.format(e*r.scale)+","+this.format(n*r.scale)+")"),d&&0<t&&0<a){var g=e;c=n,s==mxConstants.ALIGN_CENTER?g-=t/2:s==mxConstants.ALIGN_RIGHT&&(g-=t),o==mxConstants.ALIGN_MIDDLE?c-=a/2:o==mxConstants.ALIGN_BOTTOM&&(c-=a),c=this.createClip(g*r.scale-2,c*r.scale-2,t*r.scale+4,a*r.scale+4),null!=this.defs?this.defs.appendChild(c):this.root.appendChild(c),u.setAttribute("clip-path","url(#"+c.getAttribute("id")+")")}this.updateFont(u,s),"start"!=(c=s==mxConstants.ALIGN_RIGHT?"end":s==mxConstants.ALIGN_CENTER?"middle":"start")&&u.setAttribute("text-anchor",c),(!this.styleEnabled||m!=mxConstants.DEFAULT_FONTSIZE)&&u.setAttribute("font-size",Math.round(m*r.scale)+"px"),0<p.length&&u.setAttribute("transform",p),r.alpha<1&&u.setAttribute("opacity",r.alpha);p=i.split("\n"),g=Math.round(m*mxConstants.LINE_HEIGHT);var v=m+(p.length-1)*g;for(c=n+m-1,o==mxConstants.ALIGN_MIDDLE?c-=(a=(this.matchHtmlAlignment&&d&&0<a?Math.min(v,a):v)/2)+1:o==mxConstants.ALIGN_BOTTOM&&(c-=(a=this.matchHtmlAlignment&&d&&0<a?Math.min(v,a):v)+2),a=0;a<p.length;a++)0<p[a].length&&0<mxUtils.trim(p[a]).length&&((d=this.createElement("text")).setAttribute("x",this.format(e*r.scale)),d.setAttribute("y",this.format(c*r.scale)),mxUtils.write(d,p[a]),u.appendChild(d)),c+=g;this.root.appendChild(u),this.addTextBackground(u,i,e,n,t,v,s,o,l)},mxSvgCanvas2D.prototype.updateFont=function(e){var n=this.state;e.setAttribute("fill",n.fontColor),(!this.styleEnabled||n.fontFamily!=mxConstants.DEFAULT_FONTFAMILY)&&e.setAttribute("font-family",n.fontFamily),(n.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&e.setAttribute("font-weight","bold"),(n.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&e.setAttribute("font-style","italic"),(n.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&e.setAttribute("text-decoration","underline")},mxSvgCanvas2D.prototype.addTextBackground=function(e,n,t,a,i,s,o,r,l){var d=this.state;if(null!=d.fontBackgroundColor||null!=d.fontBorderColor){var c=null;null!=(c=l?(o==mxConstants.ALIGN_CENTER?t-=i/2:o==mxConstants.ALIGN_RIGHT&&(t-=i),r==mxConstants.ALIGN_MIDDLE?a-=s/2:r==mxConstants.ALIGN_BOTTOM&&(a-=s),new mxRectangle((t+1)*d.scale,a*d.scale,(i-2)*d.scale,(s+2)*d.scale)):null!=e.getBBox&&this.root.ownerDocument==document?(c=e.getBBox(),n=mxClient.IS_IE&&mxClient.IS_SVG,new mxRectangle(c.x,c.y+(n?0:1),c.width,c.height+(n?1:0))):((c=document.createElement("div")).style.lineHeight=Math.round(d.fontSize*mxConstants.LINE_HEIGHT)+"px",c.style.fontSize=Math.round(d.fontSize)+"px",c.style.fontFamily=d.fontFamily,c.style.whiteSpace="nowrap",c.style.position="absolute",c.style.visibility="hidden",c.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",c.style.zoom="1",(d.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(c.style.fontWeight="bold"),(d.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(c.style.fontStyle="italic"),n=mxUtils.htmlEntities(n,!1),c.innerHTML=n.replace(/\n/g,"<br/>"),document.body.appendChild(c),i=c.offsetWidth,s=c.offsetHeight,c.parentNode.removeChild(c),o==mxConstants.ALIGN_CENTER?t-=i/2:o==mxConstants.ALIGN_RIGHT&&(t-=i),r==mxConstants.ALIGN_MIDDLE?a-=s/2:r==mxConstants.ALIGN_BOTTOM&&(a-=s),new mxRectangle((t+1)*d.scale,(a+2)*d.scale,i*d.scale,(s+1)*d.scale)))&&((n=this.createElement("rect")).setAttribute("fill",d.fontBackgroundColor||"none"),n.setAttribute("stroke",d.fontBorderColor||"none"),n.setAttribute("x",Math.floor(c.x-1)),n.setAttribute("y",Math.floor(c.y-1)),n.setAttribute("width",Math.ceil(c.width+2)),n.setAttribute("height",Math.ceil(c.height)),d=null!=d.fontBorderColor?Math.max(1,this.format(d.scale)):0,n.setAttribute("stroke-width",d),this.root.ownerDocument==document&&1==mxUtils.mod(d,2)&&n.setAttribute("transform","translate(0.5, 0.5)"),e.insertBefore(n,e.firstChild))}},mxSvgCanvas2D.prototype.stroke=function(){this.addNode(!1,!0)},mxSvgCanvas2D.prototype.fill=function(){this.addNode(!0,!1)},mxSvgCanvas2D.prototype.fillAndStroke=function(){this.addNode(!0,!0)};var mxVmlCanvas2D=function(e){mxAbstractCanvas2D.call(this),this.root=e};function mxGuide(e,n){this.graph=e,this.setStates(n)}function mxStencil(e){this.desc=e,this.parseDescription(),this.parseConstraints()}function mxShape(e){this.stencil=e,this.strokewidth=1,this.rotation=0,this.opacity=100,this.flipV=this.flipH=!1}mxUtils.extend(mxVmlCanvas2D,mxAbstractCanvas2D),mxVmlCanvas2D.prototype.node=null,mxVmlCanvas2D.prototype.textEnabled=!0,mxVmlCanvas2D.prototype.moveOp="m",mxVmlCanvas2D.prototype.lineOp="l",mxVmlCanvas2D.prototype.curveOp="c",mxVmlCanvas2D.prototype.closeOp="x",mxVmlCanvas2D.prototype.rotatedHtmlBackground="",mxVmlCanvas2D.prototype.vmlScale=1,mxVmlCanvas2D.prototype.addNode=function(e,n){var t=this.node,a=this.state;if(null!=t){if("shape"==t.nodeName){if(!(null!=this.path&&0<this.path.length))return;t.path=this.path.join(" ")+" e",t.style.width=this.root.style.width,t.style.height=this.root.style.height,t.coordsize=parseInt(t.style.width)+" "+parseInt(t.style.height)}t.strokeweight=this.format(Math.max(1,a.strokeWidth*a.scale/this.vmlScale))+"px",a.shadow&&this.root.appendChild(this.createShadow(t,e&&null!=a.fillColor,n&&null!=a.strokeColor)),n&&null!=a.strokeColor?(t.stroked="true",t.strokecolor=a.strokeColor):t.stroked="false",t.appendChild(this.createStroke()),e&&null!=a.fillColor?t.appendChild(this.createFill()):!this.pointerEvents||"shape"==t.nodeName&&this.path[this.path.length-1]!=this.closeOp?t.filled="false":t.appendChild(this.createTransparentFill()),this.root.appendChild(t)}},mxVmlCanvas2D.prototype.createTransparentFill=function(){var e=document.createElement(mxClient.VML_PREFIX+":fill");return e.src=mxClient.imageBasePath+"/transparent.gif",e.type="tile",e},mxVmlCanvas2D.prototype.createFill=function(){var e=this.state,n=document.createElement(mxClient.VML_PREFIX+":fill");if(n.color=e.fillColor,null!=e.gradientColor){n.type="gradient",n.method="none",n.color2=e.gradientColor;var t=180-e.rotation;t=e.gradientDirection==mxConstants.DIRECTION_WEST?t-(90+("x"==this.root.style.flip?180:0)):e.gradientDirection==mxConstants.DIRECTION_EAST?t+(90+("x"==this.root.style.flip?180:0)):e.gradientDirection==mxConstants.DIRECTION_NORTH?t-(180+("y"==this.root.style.flip?-180:0)):t+("y"==this.root.style.flip?-180:0);"x"!=this.root.style.flip&&"y"!=this.root.style.flip||(t*=-1),n.angle=mxUtils.mod(t,360),n.opacity=100*e.alpha*e.fillAlpha+"%",n.setAttribute(mxClient.OFFICE_PREFIX+":opacity2",100*e.alpha*e.gradientAlpha+"%")}else e.alpha<1&&(n.opacity=100*e.alpha+"%");return n},mxVmlCanvas2D.prototype.createStroke=function(){var e=this.state,n=document.createElement(mxClient.VML_PREFIX+":stroke");return n.endcap=e.lineCap||"flat",n.joinstyle=e.lineJoin||"miter",n.miterlimit=e.miterLimit||"10",e.alpha<1&&(n.opacity=100*e.alpha+"%"),e.dashed&&(n.dashstyle=this.getVmlDashStyle()),n},mxVmlCanvas2D.prototype.getVmlDashStyle=function(){var e="dash";if(null!=this.state.dashPattern){var n=this.state.dashPattern.split(" ");0<n.length&&1==n[0]&&(e="0 2")}return e},mxVmlCanvas2D.prototype.createShadow=function(e,n,t){var a=this.state,i=-a.rotation*(Math.PI/180),s=Math.cos(i),o=(i=Math.sin(i),a.shadowDx*a.scale),r=a.shadowDy*a.scale;"x"==this.root.style.flip?o*=-1:"y"==this.root.style.flip&&(r*=-1);var l=e.cloneNode(!0);return l.style.marginLeft=Math.round(o*s-r*i)+"px",l.style.marginTop=Math.round(o*i+r*s)+"px",8==document.documentMode&&(l.strokeweight=e.strokeweight,"shape"==e.nodeName&&(l.path=this.path.join(" ")+" e",l.style.width=this.root.style.width,l.style.height=this.root.style.height,l.coordsize=parseInt(e.style.width)+" "+parseInt(e.style.height))),t?(l.strokecolor=a.shadowColor,l.appendChild(this.createShadowStroke())):l.stroked="false",n?l.appendChild(this.createShadowFill()):l.filled="false",l},mxVmlCanvas2D.prototype.createShadowFill=function(){var e=document.createElement(mxClient.VML_PREFIX+":fill");return e.color=this.state.shadowColor,e.opacity=100*this.state.alpha*this.state.shadowAlpha+"%",e},mxVmlCanvas2D.prototype.createShadowStroke=function(){var e=this.createStroke();return e.opacity=100*this.state.alpha*this.state.shadowAlpha+"%",e},mxVmlCanvas2D.prototype.rotate=function(e,n,t,a,i){n&&t?e+=180:n?this.root.style.flip="x":t&&(this.root.style.flip="y"),(n?!t:t)&&(e*=-1),this.root.style.rotation=e,this.state.rotation+=e,this.state.rotationCx=a,this.state.rotationCy=i},mxVmlCanvas2D.prototype.begin=function(){mxAbstractCanvas2D.prototype.begin.apply(this,arguments),this.node=document.createElement(mxClient.VML_PREFIX+":shape"),this.node.style.position="absolute"},mxVmlCanvas2D.prototype.quadTo=function(e,n,t,a){var i=this.state,s=(this.lastX+i.dx)*i.scale,o=(this.lastY+i.dy)*i.scale;e=(e+i.dx)*i.scale;o+=2/3*((n=(n+i.dy)*i.scale)-o);var r=(t=(t+i.dx)*i.scale)+2/3*(e-t);n=(a=(a+i.dy)*i.scale)+2/3*(n-a),this.path.push("c "+this.format(s+2/3*(e-s))+" "+this.format(o)+" "+this.format(r)+" "+this.format(n)+" "+this.format(t)+" "+this.format(a)),this.lastX=t/i.scale-i.dx,this.lastY=a/i.scale-i.dy},mxVmlCanvas2D.prototype.createRect=function(e,n,t,a,i){var s=this.state;return(e=document.createElement(e)).style.position="absolute",e.style.left=this.format((n+s.dx)*s.scale)+"px",e.style.top=this.format((t+s.dy)*s.scale)+"px",e.style.width=this.format(a*s.scale)+"px",e.style.height=this.format(i*s.scale)+"px",e},mxVmlCanvas2D.prototype.rect=function(e,n,t,a){this.node=this.createRect(mxClient.VML_PREFIX+":rect",e,n,t,a)},mxVmlCanvas2D.prototype.roundrect=function(e,n,t,a,i,s){this.node=this.createRect(mxClient.VML_PREFIX+":roundrect",e,n,t,a),this.node.setAttribute("arcsize",Math.max(100*i/t,100*s/a)+"%")},mxVmlCanvas2D.prototype.ellipse=function(e,n,t,a){this.node=this.createRect(mxClient.VML_PREFIX+":oval",e,n,t,a)},mxVmlCanvas2D.prototype.image=function(e,n,t,a,i,s,o,r){var l=null;s?((l=this.createRect(mxClient.VML_PREFIX+":rect",e,n,t,a)).stroked="false",(e=document.createElement(mxClient.VML_PREFIX+":fill")).aspect=s?"atmost":"ignore",e.rotate="true",e.type="frame",e.src=i,l.appendChild(e)):(l=this.createRect(mxClient.VML_PREFIX+":image",e,n,t,a)).src=i,o&&r?l.style.rotation="180":o?l.style.flip="x":r&&(l.style.flip="y"),this.state.alpha<1&&(l.style.filter+="alpha(opacity="+100*this.state.alpha+")"),this.root.appendChild(l)},mxVmlCanvas2D.prototype.createDiv=function(e,n,t,a){t=document.createElement("div");var i=this.state,s="";return null!=i.fontBackgroundColor&&(s+="background-color:"+i.fontBackgroundColor+";"),null!=i.fontBorderColor&&(s+="border:1px solid "+i.fontBorderColor+";"),mxUtils.isNode(e)?t.appendChild(e):0<s.length&&!a?((a=document.createElement("div")).style.cssText=s,a.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",a.style.zoom="1",a.innerHTML=e,t.appendChild(a)):(t.style.cssText=s,t.innerHTML=e),(e=t.style).fontSize=Math.round(i.fontSize/this.vmlScale)+"px",e.fontFamily=i.fontFamily,e.color=i.fontColor,e.verticalAlign="top",e.textAlign=n||"left",e.lineHeight=Math.round(i.fontSize*mxConstants.LINE_HEIGHT/this.vmlScale)+"px",(i.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(e.fontWeight="bold"),(i.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(e.fontStyle="italic"),(i.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&(e.fontDecoration="underline"),t},mxVmlCanvas2D.prototype.text=function(e,n,t,a,i,s,o,r,l,d,c,m){if(this.textEnabled&&null!=i){var u=this.state;if("html"==l){null!=u.rotation&&(e=(n=this.rotatePoint(e,n,u.rotation,u.rotationCx,u.rotationCy)).x,n=n.y),8==document.documentMode?(e+=u.dx,n+=u.dy):(e*=u.scale,n*=u.scale),(l=8==document.documentMode?document.createElement(mxClient.VML_PREFIX+":group"):document.createElement("div")).style.position="absolute",l.style.display="inline",l.style.left=this.format(e)+"px",l.style.top=this.format(n)+"px",l.style.zoom=u.scale;var p=document.createElement("div");p.style.position="relative",p.style.display="inline";var g=(v=mxUtils.getAlignmentAsPoint(s,o)).x,v=v.y;if(i=this.createDiv(i,s,o,d),s=document.createElement("div"),r?(!c&&0<t&&(i.style.width=Math.round(t)+"px"),i.style.whiteSpace="normal"):i.style.whiteSpace="nowrap",r=u.rotation+(m||0),this.rotateHtml&&0!=r?(s.style.display="inline",s.style.zoom="1",s.appendChild(i),8==document.documentMode&&"DIV"!=this.root.nodeName?(p.appendChild(s),l.appendChild(p)):l.appendChild(s)):8==document.documentMode?(p.appendChild(i),l.appendChild(p)):(i.style.display="inline",l.appendChild(i)),"DIV"!=this.root.nodeName?((m=document.createElement(mxClient.VML_PREFIX+":rect")).stroked="false",m.filled="false",m.appendChild(l),this.root.appendChild(m)):this.root.appendChild(l),c?(i.style.overflow="hidden",0<t&&(i.style.width=Math.round(t)+"px"),0<a&&8==document.documentMode&&(i.style.maxHeight=Math.round(a)+"px")):d&&(i.style.width=t+"px",0<a&&(i.style.maxHeight=Math.round(a)+"px")),this.rotateHtml&&0!=r){t=r*(Math.PI/180),r=parseFloat(parseFloat(Math.cos(t)).toFixed(8)),m=parseFloat(parseFloat(Math.sin(-t)).toFixed(8)),(t%=2*Math.PI)<0&&(t+=2*Math.PI),(t%=Math.PI)>Math.PI/2&&(t=Math.PI-t),o=Math.cos(t);var h=Math.sin(t);8==document.documentMode&&(i.style.display="inline-block",s.style.display="inline-block",p.style.display="inline-block"),i.style.visibility="hidden",document.body.appendChild(i),t=i.offsetWidth,p=i.offsetHeight,mxClient.IS_QUIRKS&&(c||d)&&a<p&&(p=a,i.style.height=p+"px"),c=((a=p)-a*o+t*-h)/2-m*t*(g+.5)+r*a*(v+.5),d=(t-t*o+a*-h)/2+r*t*(g+.5)+m*a*(v+.5),"group"==l.nodeName&&"DIV"==this.root.nodeName?((g=document.createElement("div")).style.display="inline-block",g.style.position="absolute",g.style.left=this.format(e+(d-t/2)*u.scale)+"px",g.style.top=this.format(n+(c-a/2)*u.scale)+"px",l.parentNode.appendChild(g),g.appendChild(l)):(u=8==document.documentMode?1:u.scale,l.style.left=this.format(e+(d-t/2)*u)+"px",l.style.top=this.format(n+(c-a/2)*u)+"px"),s.style.filter="progid:DXImageTransform.Microsoft.Matrix(M11="+r+", M12="+m+", M21="+-m+", M22="+r+", sizingMethod='auto expand')",s.style.backgroundColor=this.rotatedHtmlBackground,this.state.alpha<1&&(s.style.filter+="alpha(opacity="+100*this.state.alpha+")"),i.style.visibility="",s.appendChild(i)}else 8!=document.documentMode?(i.style.verticalAlign="top",this.state.alpha<1&&(l.style.filter="alpha(opacity="+100*this.state.alpha+")"),u=i.parentNode,i.style.visibility="hidden",document.body.appendChild(i),t=i.offsetWidth,p=i.offsetHeight,mxClient.IS_QUIRKS&&c&&a<p&&(p=a,i.style.height=p+"px"),a=p,i.style.visibility="",u.appendChild(i),l.style.left=this.format(e+t*g*this.state.scale)+"px",l.style.top=this.format(n+a*v*this.state.scale)+"px"):(this.state.alpha<1&&(i.style.filter="alpha(opacity="+100*this.state.alpha+")"),p.style.left=100*g+"%",p.style.top=100*v+"%")}else this.plainText(e,n,t,a,mxUtils.htmlEntities(i,!1),s,o,r,l,d,c,m)}},mxVmlCanvas2D.prototype.plainText=function(e,n,t,a,i,s,o,r,l,d,c,m){e=(e+(a=this.state).dx)*a.scale,n=(n+a.dy)*a.scale,(t=document.createElement(mxClient.VML_PREFIX+":shape")).style.width="1px",t.style.height="1px",t.stroked="false",(d=document.createElement(mxClient.VML_PREFIX+":fill")).color=a.fontColor,d.opacity=100*a.alpha+"%",t.appendChild(d),(d=document.createElement(mxClient.VML_PREFIX+":path")).textpathok="true",d.v="m "+this.format(0)+" "+this.format(0)+" l "+this.format(1)+" "+this.format(0),t.appendChild(d),(d=document.createElement(mxClient.VML_PREFIX+":textpath")).style.cssText="v-text-align:"+s,d.style.align=s,d.style.fontFamily=a.fontFamily,d.string=i,d.on="true",s=Math.round(a.fontSize*a.scale/this.vmlScale),d.style.fontSize=s+"px",(a.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(d.style.fontWeight="bold"),(a.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(d.style.fontStyle="italic"),(a.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&(d.style.textDecoration="underline"),a=s+((i=i.split("\n")).length-1)*s*mxConstants.LINE_HEIGHT,s=i=0,o==mxConstants.ALIGN_BOTTOM?s=-a/2:o!=mxConstants.ALIGN_MIDDLE&&(s=a/2),null!=m&&(o=(t.style.rotation=m)*(Math.PI/180),i=Math.sin(o)*s,s*=Math.cos(o)),t.appendChild(d),t.style.left=this.format(e-i)+"px",t.style.top=this.format(n+s)+"px",this.root.appendChild(t)},mxVmlCanvas2D.prototype.stroke=function(){this.addNode(!1,!0)},mxVmlCanvas2D.prototype.fill=function(){this.addNode(!0,!1)},mxVmlCanvas2D.prototype.fillAndStroke=function(){this.addNode(!0,!0)},mxGuide.prototype.graph=null,mxGuide.prototype.states=null,mxGuide.prototype.horizontal=!0,mxGuide.prototype.vertical=!0,mxGuide.prototype.guideX=null,mxGuide.prototype.guideY=null,mxGuide.prototype.setStates=function(e){this.states=e},mxGuide.prototype.isEnabledForEvent=function(e){return!0},mxGuide.prototype.getGuideTolerance=function(){return this.graph.gridSize*this.graph.view.scale/2},mxGuide.prototype.createGuideShape=function(e){return(e=new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH)).isDashed=!0,e},mxGuide.prototype.move=function(a,e,n){if(null!=this.states&&(this.horizontal||this.vertical)&&null!=a&&null!=e){var t=this.graph.getView().translate,i=this.graph.getView().scale,s=e.x,o=e.y,r=!1,l=!1,d=f=this.getGuideTolerance(),c=f;(f=a.clone()).x+=e.x,f.y+=e.y;var m=f.x,u=f.x+f.width,p=f.getCenterX(),g=f.y,v=f.y+f.height,h=f.getCenterY();e=function(e){e+=this.graph.panDx;var n=!1;if(Math.abs(e-p)<d?(s=e-a.getCenterX(),d=Math.abs(e-p),n=!0):Math.abs(e-m)<d?(s=e-a.x,d=Math.abs(e-m),n=!0):Math.abs(e-u)<d&&(s=e-a.x-a.width,d=Math.abs(e-u),n=!0),n){null==this.guideX&&(this.guideX=this.createGuideShape(!0),this.guideX.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.guideX.pointerEvents=!1,this.guideX.init(this.graph.getView().getOverlayPane()));var t=this.graph.container;e-=this.graph.panDx,this.guideX.points=[new mxPoint(e,-this.graph.panDy),new mxPoint(e,t.scrollHeight-3-this.graph.panDy)]}r=r||n};for(var f=function(e){e+=this.graph.panDy;var n=!1;if(Math.abs(e-h)<c?(o=e-a.getCenterY(),c=Math.abs(e-h),n=!0):Math.abs(e-g)<c?(o=e-a.y,c=Math.abs(e-g),n=!0):Math.abs(e-v)<c&&(o=e-a.y-a.height,c=Math.abs(e-v),n=!0),n){null==this.guideY&&(this.guideY=this.createGuideShape(!1),this.guideY.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.guideY.pointerEvents=!1,this.guideY.init(this.graph.getView().getOverlayPane()));var t=this.graph.container;e-=this.graph.panDy,this.guideY.points=[new mxPoint(-this.graph.panDx,e),new mxPoint(t.scrollWidth-3-this.graph.panDx,e)]}l=l||n},b=0;b<this.states.length;b++){var A=this.states[b];null!=A&&(this.horizontal&&(e.call(this,A.getCenterX()),e.call(this,A.x),e.call(this,A.x+A.width)),this.vertical&&(f.call(this,A.getCenterY()),f.call(this,A.y),f.call(this,A.y+A.height)))}r||null==this.guideX?null!=this.guideX&&(this.guideX.node.style.visibility="visible",this.guideX.redraw()):this.guideX.node.style.visibility="hidden",l||null==this.guideY?null!=this.guideY&&(this.guideY.node.style.visibility="visible",this.guideY.redraw()):this.guideY.node.style.visibility="hidden",n&&(r||(n=a.x-(this.graph.snap(a.x/i-t.x)+t.x)*i,s=this.graph.snap(s/i)*i-n),l||(t=a.y-(this.graph.snap(a.y/i-t.y)+t.y)*i,o=this.graph.snap(o/i)*i-t)),e=new mxPoint(s,o)}return e},mxGuide.prototype.hide=function(){null!=this.guideX&&(this.guideX.node.style.visibility="hidden"),null!=this.guideY&&(this.guideY.node.style.visibility="hidden")},mxGuide.prototype.destroy=function(){null!=this.guideX&&(this.guideX.destroy(),this.guideX=null),null!=this.guideY&&(this.guideY.destroy(),this.guideY=null)},mxStencil.defaultLocalized=!1,mxStencil.prototype.desc=null,mxStencil.prototype.constraints=null,mxStencil.prototype.aspect=null,mxStencil.prototype.w0=null,mxStencil.prototype.h0=null,mxStencil.prototype.bgNode=null,mxStencil.prototype.fgNode=null,mxStencil.prototype.strokewidth=null,mxStencil.prototype.parseDescription=function(){this.fgNode=this.desc.getElementsByTagName("foreground")[0],this.bgNode=this.desc.getElementsByTagName("background")[0],this.w0=Number(this.desc.getAttribute("w")||100),this.h0=Number(this.desc.getAttribute("h")||100);var e=this.desc.getAttribute("aspect");this.aspect=null!=e?e:"variable",e=this.desc.getAttribute("strokewidth"),this.strokewidth=null!=e?e:"1"},mxStencil.prototype.parseConstraints=function(){var e=this.desc.getElementsByTagName("connections")[0];if(null!=e&&(null!=(e=mxUtils.getChildNodes(e))&&0<e.length)){this.constraints=[];for(var n=0;n<e.length;n++)this.constraints.push(this.parseConstraint(e[n]))}},mxStencil.prototype.parseConstraint=function(e){var n=Number(e.getAttribute("x")),t=Number(e.getAttribute("y"));return e="1"==e.getAttribute("perimeter"),new mxConnectionConstraint(new mxPoint(n,t),e)},mxStencil.prototype.evaluateTextAttribute=function(e,n,t){return n=this.evaluateAttribute(e,n,t),e=e.getAttribute("localized"),(mxStencil.defaultLocalized&&null==e||"1"==e)&&(n=mxResources.get(n)),n},mxStencil.prototype.evaluateAttribute=function(e,n,t){return null==(n=e.getAttribute(n))&&(null!=(e=mxUtils.getTextContent(e))&&("function"==typeof(e=mxUtils.eval(e))&&(n=e(t)))),n},mxStencil.prototype.drawShape=function(e,n,t,a,i,s){this.drawChildren(e,n,t,a,i,s,this.bgNode,!1),this.drawChildren(e,n,t,a,i,s,this.fgNode,!0)},mxStencil.prototype.drawChildren=function(e,n,t,a,i,s,o,r){if(null!=o){var l=mxUtils.getValue(n.style,mxConstants.STYLE_DIRECTION,null);for(t=this.computeAspect(n.style,t,a,i,s,l),a=Math.min(t.width,t.height),a="inherit"==this.strokewidth?Number(mxUtils.getNumber(n.style,mxConstants.STYLE_STROKEWIDTH,1)):Number(this.strokewidth)*a,e.setStrokeWidth(a),o=o.firstChild;null!=o;)o.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(e,n,o,t,r),o=o.nextSibling}},mxStencil.prototype.computeAspect=function(e,n,t,a,i,s){e=n,n=a/this.w0;var o=i/this.h0;if(s="north"==s||"south"==s){o=a/this.h0,n=i/this.w0;var r=(a-i)/2;e+=r,t-=r}return"fixed"==this.aspect&&(n=o=Math.min(n,o),s?(e+=(i-this.w0*n)/2,t+=(a-this.h0*o)/2):(e+=(a-this.w0*n)/2,t+=(i-this.h0*o)/2)),new mxRectangle(e,t,n,o)},mxStencil.prototype.drawNode=function(e,n,t,a,i){var s=t.nodeName,o=a.x,r=a.y,l=a.width,d=a.height,c=Math.min(l,d);if("save"==s)e.save();else if("restore"==s)e.restore();else if("path"==s)for(e.begin(),t=t.firstChild;null!=t;)t.nodeType==mxConstants.NODETYPE_ELEMENT&&this.drawNode(e,n,t,a,i),t=t.nextSibling;else if("close"==s)e.close();else if("move"==s)e.moveTo(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d);else if("line"==s)e.lineTo(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d);else if("quad"==s)e.quadTo(o+Number(t.getAttribute("x1"))*l,r+Number(t.getAttribute("y1"))*d,o+Number(t.getAttribute("x2"))*l,r+Number(t.getAttribute("y2"))*d);else if("curve"==s)e.curveTo(o+Number(t.getAttribute("x1"))*l,r+Number(t.getAttribute("y1"))*d,o+Number(t.getAttribute("x2"))*l,r+Number(t.getAttribute("y2"))*d,o+Number(t.getAttribute("x3"))*l,r+Number(t.getAttribute("y3"))*d);else if("arc"==s)e.arcTo(Number(t.getAttribute("rx"))*l,Number(t.getAttribute("ry"))*d,Number(t.getAttribute("x-axis-rotation")),Number(t.getAttribute("large-arc-flag")),Number(t.getAttribute("sweep-flag")),o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d);else if("rect"==s)e.rect(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d,Number(t.getAttribute("w"))*l,Number(t.getAttribute("h"))*d);else if("roundrect"==s)0==(n=t.getAttribute("arcsize"))&&(n=100*mxConstants.RECTANGLE_ROUNDING_FACTOR),c=Number(t.getAttribute("w"))*l,a=Number(t.getAttribute("h"))*d,n=Number(n)/100,n=Math.min(c*n,a*n),e.roundrect(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d,c,a,n,n);else if("ellipse"==s)e.ellipse(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d,Number(t.getAttribute("w"))*l,Number(t.getAttribute("h"))*d);else if("image"==s)n=this.evaluateAttribute(t,"src",n),e.image(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d,Number(t.getAttribute("w"))*l,Number(t.getAttribute("h"))*d,n,!1,"1"==t.getAttribute("flipH"),"1"==t.getAttribute("flipV"));else if("text"==s){if(c=this.evaluateTextAttribute(t,"str",n),a="1"==t.getAttribute("vertical")?-90:0,"0"==t.getAttribute("align-shape")){var m=n.rotation,u=1==mxUtils.getValue(n.style,mxConstants.STYLE_FLIPH,0);n=1==mxUtils.getValue(n.style,mxConstants.STYLE_FLIPV,0),a=u&&n?a-m:u||n?a+m:a-m}a-=t.getAttribute("rotation"),e.text(o+Number(t.getAttribute("x"))*l,r+Number(t.getAttribute("y"))*d,0,0,c,t.getAttribute("align")||"left",t.getAttribute("valign")||"top",!1,"",!1,!1,a)}else if("include-shape"==s)null!=(m=mxStencilRegistry.getStencil(t.getAttribute("name")))&&(o+=Number(t.getAttribute("x"))*l,r+=Number(t.getAttribute("y"))*d,c=Number(t.getAttribute("w"))*l,a=Number(t.getAttribute("h"))*d,m.drawShape(e,n,o,r,c,a));else if("fillstroke"==s)e.fillAndStroke();else if("fill"==s)e.fill();else if("stroke"==s)e.stroke();else if("strokewidth"==s)e.setStrokeWidth(Number(t.getAttribute("width"))*c);else if("dashed"==s)e.setDashed("1"==t.getAttribute("dashed"));else if("dashpattern"==s){if(null!=(t=t.getAttribute("pattern"))){for(t=t.split(" "),l=[],d=0;d<t.length;d++)0<t[d].length&&l.push(Number(t[d])*c);t=l.join(" "),e.setDashPattern(t)}}else"strokecolor"==s?e.setStrokeColor(t.getAttribute("color")):"linecap"==s?e.setLineCap(t.getAttribute("cap")):"linejoin"==s?e.setLineJoin(t.getAttribute("join")):"miterlimit"==s?e.setMiterLimit(Number(t.getAttribute("limit"))):"fillcolor"==s?e.setFillColor(t.getAttribute("color")):"alpha"==s?e.setAlpha(t.getAttribute("alpha")):"fontcolor"==s?e.setFontColor(t.getAttribute("color")):"fontstyle"==s?e.setFontStyle(t.getAttribute("style")):"fontfamily"==s?e.setFontFamily(t.getAttribute("family")):"fontsize"==s&&e.setFontSize(Number(t.getAttribute("size"))*c);i&&("fillstroke"==s||"fill"==s||"stroke"==s)&&e.setShadow(!1)},mxShape.prototype.dialect=null,mxShape.prototype.scale=1,mxShape.prototype.bounds=null,mxShape.prototype.points=null,mxShape.prototype.node=null,mxShape.prototype.style=null,mxShape.prototype.style=null,mxShape.prototype.boundingBox=null,mxShape.prototype.stencil=null,mxShape.prototype.svgStrokeTolerance=6,mxShape.prototype.pointerEvents=!0,mxShape.prototype.stencilPointerEvents=!1,mxShape.prototype.vmlScale=1,mxShape.prototype.init=function(e){null==this.node&&(this.node=this.create(e),null!=e&&e.appendChild(this.node))},mxShape.prototype.isParseVml=function(){return!0},mxShape.prototype.isHtmlAllowed=function(){return!1},mxShape.prototype.getSvgScreenOffset=function(){return 1==mxUtils.mod(Math.max(1,Math.round(this.strokewidth*this.scale)),2)?.5:0},mxShape.prototype.create=function(e){return null!=e.ownerSVGElement?this.createSvg(e):8==document.documentMode||this.dialect==mxConstants.DIALECT_SVG||this.dialect!=mxConstants.DIALECT_VML&&this.isHtmlAllowed()?this.createHtml(e):this.createVml(e)},mxShape.prototype.createSvg=function(){return document.createElementNS(mxConstants.NS_SVG,"g")},mxShape.prototype.createVml=function(){var e=document.createElement(mxClient.VML_PREFIX+":group");return e.style.position="absolute",e},mxShape.prototype.createHtml=function(){var e=document.createElement("div");return e.style.position="absolute",e},mxShape.prototype.reconfigure=function(){this.redraw()},mxShape.prototype.redraw=function(){this.updateBoundsFromPoints(),this.checkBounds()?(this.node.style.visibility="","DIV"==this.node.nodeName&&this.isHtmlAllowed()?this.redrawHtmlShape():this.redrawShape(),this.updateBoundingBox()):(this.node.style.visibility="hidden",this.boundingBox=null)},mxShape.prototype.updateBoundsFromPoints=function(){var e=this.points;if(null!=e&&0<e.length&&null!=e[0]){this.bounds=new mxRectangle(Number(e[0].x),Number(e[0].y),1,1);for(var n=1;n<this.points.length;n++)null!=e[n]&&this.bounds.add(new mxRectangle(Number(e[n].x),Number(e[n].y),1,1))}},mxShape.prototype.checkBounds=function(){return null!=this.bounds&&!isNaN(this.bounds.x)&&!isNaN(this.bounds.y)&&!isNaN(this.bounds.width)&&!isNaN(this.bounds.height)&&0<this.bounds.width&&0<this.bounds.height},mxShape.prototype.createVmlGroup=function(){var e=document.createElement(mxClient.VML_PREFIX+":group");return e.style.position="absolute",e.style.width=this.node.style.width,e.style.height=this.node.style.height,e},mxShape.prototype.redrawShape=function(){var e=this.createCanvas();for(e.pointerEvents=this.pointerEvents;this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild);this.paint(e),this.node!=e.root&&this.node.insertAdjacentHTML("beforeend",e.root.outerHTML),"DIV"==this.node.nodeName&&8==document.documentMode&&(this.node.style.filter="",(null==this.stencil||!this.stencilPointerEvents)&&mxUtils.addTransparentBackgroundFilter(this.node)),this.destroyCanvas(e)},mxShape.prototype.createCanvas=function(){var e=null,n=null;if(null!=this.node.ownerSVGElement)(e=new mxSvgCanvas2D(this.node,!1)).strokeTolerance=this.svgStrokeTolerance,e.blockImagePointerEvents=mxClient.IS_NS&&!mxClient.IS_SF&&!mxClient.IS_GC,0!=(n=this.getSvgScreenOffset())?this.node.setAttribute("transform","translate("+n+","+n+")"):this.node.removeAttribute("transform");else{this.updateVmlContainer();var t=Math.max(1,Math.round(this.bounds.width)),a=Math.max(1,Math.round(this.bounds.height));n=8==document.documentMode&&this.isParseVml()?this.createVmlGroup():this.node,e=new mxVmlCanvas2D(n,!1);""!=n.tagUrn&&(n.coordsize=t*this.vmlScale+","+a*this.vmlScale,e.scale(this.vmlScale),e.vmlScale=this.vmlScale),n=this.scale,e.translate(-Math.round(this.bounds.x/n),-Math.round(this.bounds.y/n))}return e},mxShape.prototype.updateVmlContainer=function(){this.node.style.left=Math.round(this.bounds.x)+"px",this.node.style.top=Math.round(this.bounds.y)+"px";var e=Math.max(1,Math.round(this.bounds.width)),n=Math.max(1,Math.round(this.bounds.height));this.node.style.width=e+"px",this.node.style.height=n+"px",this.node.style.overflow="visible"},mxShape.prototype.destroyCanvas=function(e){if(e instanceof mxSvgCanvas2D){for(var n in e.gradients){var t=e.gradients[n];t.mxRefCount=(t.mxRefCount||0)+1}this.releaseSvgGradients(this.oldGradients),this.oldGradients=e.gradients}},mxShape.prototype.paint=function(e){var n=this.scale,t=this.bounds.x/n,a=this.bounds.y/n,i=this.bounds.width/n,s=this.bounds.height/n;if(this.isPaintBoundsInverted()){t=t+(o=(i-s)/2),a=a-o;var o=i;i=s,s=o}if(this.updateTransform(e,t,a,i,s),this.configureCanvas(e,t,a,i,s),null!=this.stencil)this.paintStencilShape(e,t,a,i,s);else if(e.setStrokeWidth(this.strokewidth),null!=this.points){for(t=[],a=0;a<this.points.length;a++)t.push(new mxPoint(this.points[a].x/n,this.points[a].y/n));this.paintEdgeShape(e,t)}else this.paintVertexShape(e,t,a,i,s)},mxShape.prototype.configureCanvas=function(e,n,t,a,i){var s=null;null!=this.style&&(s=this.style.dashPattern),e.setAlpha(this.opacity/100),null!=this.isShadow&&e.setShadow(this.isShadow),null!=this.isDashed&&e.setDashed(this.isDashed),null!=s&&e.setDashPattern(s),null!=this.gradient?(n=this.getGradientBounds(e,n,t,a,i),e.setGradient(this.fill,this.gradient,n.x,n.y,n.width,n.height,this.gradientDirection)):e.setFillColor(this.fill),e.setStrokeColor(this.stroke)},mxShape.prototype.getGradientBounds=function(e,n,t,a,i){return new mxRectangle(n,t,a,i)},mxShape.prototype.updateTransform=function(e,n,t,a,i){e.scale(this.scale),e.rotate(this.getShapeRotation(),this.flipH,this.flipV,n+a/2,t+i/2)},mxShape.prototype.paintStencilShape=function(e,n,t,a,i){this.stencilPointerEvents&&(this.dialect==mxConstants.DIALECT_SVG?this.addTransparentBackgroundRectangle(this.node,n,t,a,i):8!=document.documentMode&&this.setTransparentBackgroundImage(this.node)),this.stencil.drawShape(e,this,n,t,a,i)},mxShape.prototype.paintVertexShape=function(e,n,t,a,i){this.paintBackground(e,n,t,a,i),e.setShadow(!1),this.paintForeground(e,n,t,a,i)},mxShape.prototype.paintBackground=function(e,n,t,a,i){},mxShape.prototype.paintForeground=function(e,n,t,a,i){},mxShape.prototype.paintEdgeShape=function(e,n){},mxShape.prototype.getArcSize=function(e,n){var t=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100;return Math.min(e*t,n*t)},mxShape.prototype.paintGlassEffect=function(e,n,t,a,i,s){var o=Math.ceil(this.strokewidth/2);e.setGradient("#ffffff","#ffffff",n,t,a,.6*i,"south",.9,.1),e.begin(),s+=2*o,this.isRounded?(e.moveTo(n-o+s,t-o),e.quadTo(n-o,t-o,n-o,t-o+s),e.lineTo(n-o,t+.4*i),e.quadTo(n+.5*a,t+.7*i,n+a+o,t+.4*i),e.lineTo(n+a+o,t-o+s),e.quadTo(n+a+o,t-o,n+a+o-s,t-o)):(e.moveTo(n-o,t-o),e.lineTo(n-o,t+.4*i),e.quadTo(n+.5*a,t+.7*i,n+a+o,t+.4*i),e.lineTo(n+a+o,t-o)),e.close(),e.fill()},mxShape.prototype.apply=function(e){this.state=e,this.style=e.style,null!=this.style&&(this.fill=mxUtils.getValue(this.style,mxConstants.STYLE_FILLCOLOR,this.fill),this.gradient=mxUtils.getValue(this.style,mxConstants.STYLE_GRADIENTCOLOR,this.gradient),this.gradientDirection=mxUtils.getValue(this.style,mxConstants.STYLE_GRADIENT_DIRECTION,this.gradientDirection),this.opacity=mxUtils.getValue(this.style,mxConstants.STYLE_OPACITY,this.opacity),this.stroke=mxUtils.getValue(this.style,mxConstants.STYLE_STROKECOLOR,this.stroke),this.strokewidth=mxUtils.getNumber(this.style,mxConstants.STYLE_STROKEWIDTH,this.strokewidth),this.spacing=mxUtils.getValue(this.style,mxConstants.STYLE_SPACING,this.spacing),this.startSize=mxUtils.getNumber(this.style,mxConstants.STYLE_STARTSIZE,this.startSize),this.endSize=mxUtils.getNumber(this.style,mxConstants.STYLE_ENDSIZE,this.endSize),this.startArrow=mxUtils.getValue(this.style,mxConstants.STYLE_STARTARROW,this.startArrow),this.endArrow=mxUtils.getValue(this.style,mxConstants.STYLE_ENDARROW,this.endArrow),this.rotation=mxUtils.getValue(this.style,mxConstants.STYLE_ROTATION,this.rotation),this.direction=mxUtils.getValue(this.style,mxConstants.STYLE_DIRECTION,this.direction),this.flipH=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPH,0),this.flipV=1==mxUtils.getValue(this.style,mxConstants.STYLE_FLIPV,0),null!=this.stencil&&(this.flipH=1==mxUtils.getValue(this.style,"stencilFlipH",0)||this.flipH,this.flipV=1==mxUtils.getValue(this.style,"stencilFlipV",0)||this.flipV),"north"!=this.direction&&"south"!=this.direction||(e=this.flipH,this.flipH=this.flipV,this.flipV=e),this.isShadow=1==mxUtils.getValue(this.style,mxConstants.STYLE_SHADOW,this.isShadow),this.isDashed=1==mxUtils.getValue(this.style,mxConstants.STYLE_DASHED,this.isDashed),this.isRounded=1==mxUtils.getValue(this.style,mxConstants.STYLE_ROUNDED,this.isRounded),this.glass=1==mxUtils.getValue(this.style,mxConstants.STYLE_GLASS,this.glass),"none"==this.fill&&(this.fill=null),"none"==this.gradient&&(this.gradient=null),"none"==this.stroke&&(this.stroke=null))},mxShape.prototype.setCursor=function(e){null==e&&(e=""),this.cursor=e,null!=this.node&&(this.node.style.cursor=e)},mxShape.prototype.getCursor=function(){return this.cursor},mxShape.prototype.updateBoundingBox=function(){if(null!=this.bounds){var e=this.createBoundingBox();if(null!=e){this.augmentBoundingBox(e);var n=this.getShapeRotation();0!=n&&(e=mxUtils.getBoundingBox(e,n)),e.x=Math.floor(e.x),e.y=Math.floor(e.y),e.width=Math.ceil(e.width),e.height=Math.ceil(e.height)}this.boundingBox=e}},mxShape.prototype.createBoundingBox=function(){var e=this.bounds.clone();if(this.isPaintBoundsInverted()){var n=(e.width-e.height)/2;e.x+=n,e.y-=n,n=e.width,e.width=e.height,e.height=n}return e},mxShape.prototype.augmentBoundingBox=function(e){this.isShadow&&(e.width+=Math.ceil(mxConstants.SHADOW_OFFSET_X*this.scale),e.height+=Math.ceil(mxConstants.SHADOW_OFFSET_Y*this.scale));var n=Math.ceil(this.strokewidth*this.scale);e.grow(Math.ceil(n/2))},mxShape.prototype.isPaintBoundsInverted=function(){return null==this.stencil&&("north"==this.direction||"south"==this.direction)},mxShape.prototype.getRotation=function(){return null!=this.rotation?this.rotation:0},mxShape.prototype.getTextRotation=function(){var e=this.getRotation();return 1!=mxUtils.getValue(this.style,mxConstants.STYLE_HORIZONTAL,1)&&(e+=mxText.prototype.verticalTextRotation),e},mxShape.prototype.getShapeRotation=function(){var e=this.getRotation();return null!=this.direction&&("north"==this.direction?e+=270:"west"==this.direction?e+=180:"south"==this.direction&&(e+=90)),e},mxShape.prototype.addTransparentBackgroundRectangle=function(e,n,t,a,i){(e=document.createElementNS(mxConstants.NS_SVG,"rect")).setAttribute("x",n),e.setAttribute("y",t),e.setAttribute("width",a),e.setAttribute("height",i),e.setAttribute("fill","none"),e.setAttribute("stroke","none"),e.setAttribute("pointer-events","all"),this.node.appendChild(e)},mxShape.prototype.setTransparentBackgroundImage=function(e){e.style.backgroundImage="url('"+mxClient.imageBasePath+"/transparent.gif')"},mxShape.prototype.releaseSvgGradients=function(e){if(null!=e)for(var n in e){var t=e[n];t.mxRefCount=(t.mxRefCount||0)-1,0==t.mxRefCount&&null!=t.parentNode&&t.parentNode.removeChild(t)}},mxShape.prototype.destroy=function(){null!=this.node&&(mxEvent.release(this.node),null!=this.node.parentNode&&this.node.parentNode.removeChild(this.node),this.node=null),this.releaseSvgGradients(this.oldGradients),this.oldGradients=null};var mxStencilRegistry={stencils:[],addStencil:function(e,n){mxStencilRegistry.stencils[e]=n},getStencil:function(e){return mxStencilRegistry.stencils[e]}},mxMarker={markers:[],addMarker:function(e,n){mxMarker.markers[e]=n},createMarker:function(e,n,t,a,i,s,o,r,l,d){var c=mxMarker.markers[t];return null!=c?c(e,n,t,a,i,s,o,r,l,d):null}};function mxActor(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxCloud(e,n,t,a){mxActor.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxRectangleShape(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxEllipse(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxDoubleEllipse(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxRhombus(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxPolyline(e,n,t){mxShape.call(this),this.points=e,this.stroke=n,this.strokewidth=null!=t?t:1}function mxArrow(e,n,t,a,i,s,o){mxShape.call(this),this.points=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1,this.arrowWidth=null!=i?i:mxConstants.ARROW_WIDTH,this.spacing=null!=s?s:mxConstants.ARROW_SPACING,this.endSize=null!=o?o:mxConstants.ARROW_SIZE}function mxText(e,n,t,a,i,s,o,r,l,d,c,m,u,p,g,v,h,f,b,A){mxShape.call(this),this.value=e,this.bounds=n,this.color=null!=i?i:"black",this.align=null!=t?t:"",this.valign=null!=a?a:"",this.family=null!=s?s:mxConstants.DEFAULT_FONTFAMILY,this.size=null!=o?o:mxConstants.DEFAULT_FONTSIZE,this.fontStyle=null!=r?r:mxConstants.DEFAULT_FONTSTYLE,this.spacing=parseInt(l||2),this.spacingTop=this.spacing+parseInt(d||0),this.spacingRight=this.spacing+parseInt(c||0),this.spacingBottom=this.spacing+parseInt(m||0),this.spacingLeft=this.spacing+parseInt(u||0),this.horizontal=null==p||p,this.background=g,this.border=v,this.wrap=null!=h&&h,this.clipped=null!=f&&f,this.overflow=null!=b?b:"visible",this.labelPadding=null!=A?A:0,this.rotation=0}function mxTriangle(){mxActor.call(this)}function mxHexagon(){mxActor.call(this)}function mxLine(e,n,t){mxShape.call(this),this.bounds=e,this.stroke=n,this.strokewidth=null!=t?t:1}function mxImageShape(e,n,t,a,i){mxShape.call(this),this.bounds=e,this.image=n,this.fill=t,this.stroke=a,this.strokewidth=null!=i?i:1,this.shadow=!1}function mxLabel(e,n,t,a){mxRectangleShape.call(this,e,n,t,a)}function mxCylinder(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxConnector(e,n,t){mxPolyline.call(this,e,n,t)}function mxSwimlane(e,n,t,a){mxShape.call(this),this.bounds=e,this.fill=n,this.stroke=t,this.strokewidth=null!=a?a:1}function mxGraphLayout(e){this.graph=e}function mxStackLayout(e,n,t,a,i,s){mxGraphLayout.call(this,e),this.horizontal=null==n||n,this.spacing=null!=t?t:0,this.x0=null!=a?a:0,this.y0=null!=i?i:0,this.border=null!=s?s:0}function mxPartitionLayout(e,n,t,a){mxGraphLayout.call(this,e),this.horizontal=null==n||n,this.spacing=t||0,this.border=a||0}function mxCompactTreeLayout(e,n,t){mxGraphLayout.call(this,e),this.horizontal=null==n||n,this.invert=null!=t&&t}function WeightedCellSorter(e,n){this.cell=e,this.weightedValue=n}function mxFastOrganicLayout(e){mxGraphLayout.call(this,e)}function mxCircleLayout(e,n){mxGraphLayout.call(this,e),this.radius=null!=n?n:100}function mxParallelEdgeLayout(e){mxGraphLayout.call(this,e)}function mxCompositeLayout(e,n,t){mxGraphLayout.call(this,e),this.layouts=n,this.master=t}function mxEdgeLabelLayout(e,n){mxGraphLayout.call(this,e)}function mxGraphAbstractHierarchyCell(){this.x=[],this.y=[],this.temp=[]}function mxGraphHierarchyNode(e){mxGraphAbstractHierarchyCell.apply(this,arguments),this.cell=e}function mxGraphHierarchyEdge(e){mxGraphAbstractHierarchyCell.apply(this,arguments),this.edges=e}function mxGraphHierarchyModel(e,n,t,a,i){for(e.getGraph(),this.tightenToSource=i,this.roots=t,this.parent=a,this.vertexMapper={},this.edgeMapper={},this.maxRank=0,t=[],null==n&&(n=this.graph.getChildVertices(a)),this.maxRank=this.SOURCESCANSTARTRANK,this.createInternalCells(e,n,t),a=0;a<n.length;a++){i=t[a].connectsAsSource;for(var s=0;s<i.length;s++){var o=i[s];if(null!=(r=o.edges)&&0<r.length){var r=r[0],l=e.getVisibleTerminal(r,!1);l=mxCellPath.create(l),l=this.vertexMapper[l];t[a]==l&&(l=e.getVisibleTerminal(r,!0),l=mxCellPath.create(l),l=this.vertexMapper[l]),null!=l&&t[a]!=l&&(0==(o.target=l).connectsAsTarget.length&&(l.connectsAsTarget=[]),mxUtils.indexOf(l.connectsAsTarget,o)<0&&l.connectsAsTarget.push(o))}}t[a].temp[0]=1}}function mxHierarchicalLayoutStage(){}function mxMedianHybridCrossingReduction(e){this.layout=e}function MedianCellSorter(){}function mxMinimumCycleRemover(e){this.layout=e}function mxCoordinateAssignment(e,n,t,a,i,s){this.layout=e,this.intraCellSpacing=n,this.interRankCellSpacing=t,this.orientation=a,this.initialX=i,this.parallelEdgeSpacing=s}!function(){function e(e,n,t,a,i,s,o,r,l,d){n=1.118*i*l,r=1.118*s*l,i*=o+l,s*=o+l;var c=a.clone();return c.x-=n,c.y-=r,o=t!=mxConstants.ARROW_CLASSIC?1:.75,a.x+=-i*o-n,a.y+=-s*o-r,function(){e.begin(),e.moveTo(c.x,c.y),e.lineTo(c.x-i-s/2,c.y-s+i/2),t==mxConstants.ARROW_CLASSIC&&e.lineTo(c.x-3*i/4,c.y-3*s/4),e.lineTo(c.x+s/2-i,c.y-s-i/2),e.close(),d?e.fillAndStroke():e.stroke()}}function n(e,n,t,a,i,s,o,r,l,d){r=t==mxConstants.ARROW_DIAMOND?.7071:.9862,n=i*l*r,r*=s*l,i*=o+l,s*=o+l;var c=a.clone();c.x-=n,c.y-=r,a.x+=-i-n,a.y+=-s-r;var m=t==mxConstants.ARROW_DIAMOND?2:3.4;return function(){e.begin(),e.moveTo(c.x,c.y),e.lineTo(c.x-i/2-s/m,c.y+i/m-s/2),e.lineTo(c.x-i,c.y-s),e.lineTo(c.x-i/2+s/m,c.y-s/2-i/m),e.close(),d?e.fillAndStroke():e.stroke()}}mxMarker.addMarker("classic",e),mxMarker.addMarker("block",e),mxMarker.addMarker("open",function(e,n,t,a,i,s,o,r,l,d){n=1.118*i*l,t=1.118*s*l,i*=o+l,s*=o+l;var c=a.clone();return c.x-=n,c.y-=t,a.x+=2*-n,a.y+=2*-t,function(){e.begin(),e.moveTo(c.x-i-s/2,c.y-s+i/2),e.lineTo(c.x,c.y),e.lineTo(c.x+s/2-i,c.y-s-i/2),e.stroke()}}),mxMarker.addMarker("oval",function(e,n,t,a,i,s,o,r,l,d){var c=o/2,m=a.clone();return a.x-=i*c,a.y-=s*c,function(){e.ellipse(m.x-c,m.y-c,o,o),d?e.fillAndStroke():e.stroke()}}),mxMarker.addMarker("diamond",n),mxMarker.addMarker("diamondThin",n)}(),mxUtils.extend(mxActor,mxShape),mxActor.prototype.paintVertexShape=function(e,n,t,a,i){e.translate(n,t),e.begin(),this.redrawPath(e,n,t,a,i),e.fillAndStroke()},mxActor.prototype.redrawPath=function(e,n,t,a,i){n=a/3,e.moveTo(0,i),e.curveTo(0,3*i/5,0,2*i/5,a/2,2*i/5),e.curveTo(a/2-n,2*i/5,a/2-n,0,a/2,0),e.curveTo(a/2+n,0,a/2+n,2*i/5,a/2,2*i/5),e.curveTo(a,2*i/5,a,3*i/5,a,i),e.close()},mxUtils.extend(mxCloud,mxActor),mxCloud.prototype.redrawPath=function(e,n,t,a,i){e.moveTo(.25*a,.25*i),e.curveTo(.05*a,.25*i,0,.5*i,.16*a,.55*i),e.curveTo(0,.66*i,.18*a,.9*i,.31*a,.8*i),e.curveTo(.4*a,i,.7*a,i,.8*a,.8*i),e.curveTo(a,.8*i,a,.6*i,.875*a,.5*i),e.curveTo(a,.3*i,.8*a,.1*i,.625*a,.2*i),e.curveTo(.5*a,.05*i,.3*a,.05*i,.25*a,.25*i),e.close()},mxUtils.extend(mxRectangleShape,mxShape),mxRectangleShape.prototype.isHtmlAllowed=function(){return!this.isRounded&&!this.glass&&0==this.rotation},mxRectangleShape.prototype.paintBackground=function(e,n,t,a,i){if(this.isRounded){var s=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100;s=Math.min(a*s,i*s);e.roundrect(n,t,a,i,s,s)}else e.rect(n,t,a,i);e.fillAndStroke()},mxRectangleShape.prototype.paintForeground=function(e,n,t,a,i){this.glass&&this.paintGlassEffect(e,n,t,a,i,this.getArcSize(a+this.strokewidth,i+this.strokewidth))},mxRectangleShape.prototype.redrawHtmlShape=function(){this.updateHtmlBounds(this.node),this.updateHtmlFilters(this.node),this.updateHtmlColors(this.node)},mxRectangleShape.prototype.updateHtmlBounds=function(e){var n=9<=document.documentMode?0:Math.ceil(this.strokewidth*this.scale);e.style.borderWidth=Math.max(1,n)+"px",e.style.overflow="hidden",e.style.left=Math.round(this.bounds.x-n/2)+"px",e.style.top=Math.round(this.bounds.y-n/2)+"px","CSS1Compat"==document.compatMode&&(n=-n),e.style.width=Math.round(Math.max(0,this.bounds.width+n))+"px",e.style.height=Math.round(Math.max(0,this.bounds.height+n))+"px"},mxRectangleShape.prototype.updateHtmlColors=function(e){var n=this.stroke;null!=n&&n!=mxConstants.NONE?(e.style.borderColor=n,this.isDashed?e.style.borderStyle="dashed":0<this.strokewidth&&(e.style.borderStyle="solid"),e.style.borderWidth=Math.max(1,Math.ceil(this.strokewidth*this.scale))+"px"):e.style.borderWidth="0px",null!=(n=this.fill)&&n!=mxConstants.NONE?(e.style.backgroundColor=n,e.style.backgroundImage="none"):this.pointerEvents?e.style.backgroundColor="transparent":8==document.documentMode?mxUtils.addTransparentBackgroundFilter(e):this.setTransparentBackgroundImage(e)},mxRectangleShape.prototype.updateHtmlFilters=function(e){var n="";if(this.opacity<100&&(n+="alpha(opacity="+this.opacity+")"),this.isShadow&&(n+="progid:DXImageTransform.Microsoft.dropShadow (OffX='"+Math.round(mxConstants.SHADOW_OFFSET_X*this.scale)+"', OffY='"+Math.round(mxConstants.SHADOW_OFFSET_Y*this.scale)+"', Color='"+mxConstants.SHADOWCOLOR+"')"),this.gradient){var t=this.fill,a=this.gradient,i="0",s={east:0,south:1,west:2,north:3},o=null!=this.direction?s[this.direction]:0;null!=this.gradientDirection&&(o=mxUtils.mod(o+s[this.gradientDirection]-1,4)),1==o?(i="1",s=t,t=a,a=s):2==o?(s=t,t=a,a=s):3==o&&(i="1"),n+="progid:DXImageTransform.Microsoft.gradient(startColorStr='"+t+"', endColorStr='"+a+"', gradientType='"+i+"')"}e.style.filter=n},mxUtils.extend(mxEllipse,mxShape),mxEllipse.prototype.paintVertexShape=function(e,n,t,a,i){e.ellipse(n,t,a,i),e.fillAndStroke()},mxUtils.extend(mxDoubleEllipse,mxShape),mxDoubleEllipse.prototype.vmlScale=10,mxDoubleEllipse.prototype.paintBackground=function(e,n,t,a,i){e.ellipse(n,t,a,i),e.fillAndStroke()},mxDoubleEllipse.prototype.paintForeground=function(e,n,t,a,i){var s=Math.min(4,Math.min(a/5,i/5));i-=2*s,0<(a-=2*s)&&0<i&&e.ellipse(n+s,t+s,a,i),e.stroke()},mxUtils.extend(mxRhombus,mxShape),mxRhombus.prototype.paintVertexShape=function(e,n,t,a,i){var s=a/2,o=i/2;e.begin(),e.moveTo(n+s,t),e.lineTo(n+a,t+o),e.lineTo(n+s,t+i),e.lineTo(n,t+o),e.close(),e.fillAndStroke()},mxUtils.extend(mxPolyline,mxShape),mxPolyline.prototype.getRotation=function(){return 0},mxPolyline.prototype.paintEdgeShape=function(e,n){this.paintLine(e,n,this.isRounded)},mxPolyline.prototype.paintLine=function(e,n,t){var a=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2,i=n[0],s=n[n.length-1];e.begin(),e.moveTo(i.x,i.y);for(var o=1;o<n.length-1;o++){var r=n[o],l=i.x-r.x;i=i.y-r.y;if(t&&o<n.length-1&&(0!=l||0!=i)){var d=Math.sqrt(l*l+i*i);l=l*Math.min(a,d/2)/d,i=i*Math.min(a,d/2)/d;e.lineTo(r.x+l,r.y+i),l=(i=n[o+1]).x-r.x,i=i.y-r.y,d=Math.max(1,Math.sqrt(l*l+i*i)),l=l*Math.min(a,d/2)/d,i=i*Math.min(a,d/2)/d,l=r.x+l,i=r.y+i,e.quadTo(r.x,r.y,l,i),r=new mxPoint(l,i)}else e.lineTo(r.x,r.y);i=r}e.lineTo(s.x,s.y),e.stroke()},mxUtils.extend(mxArrow,mxShape),mxArrow.prototype.paintEdgeShape=function(e,n){var t=mxConstants.ARROW_SPACING,a=mxConstants.ARROW_WIDTH,i=mxConstants.ARROW_SIZE,s=n[0],o=n[n.length-1],r=o.x-s.x,l=o.y-s.y,d=(c=Math.sqrt(r*r+l*l))-2*t-i,c=(r=r/c,a*(l=l/c)/3),m=(a=-a*r/3,(i=s.x-c/2+t*r)+c),u=(s=s.y-a/2+t*l)+a,p=m+d*r,g=p+c,v=(d=u+d*l)+a,h=g-3*c,f=v-3*a;e.begin(),e.moveTo(i,s),e.lineTo(m,u),e.lineTo(p,d),e.lineTo(g,v),e.lineTo(o.x-t*r,o.y-t*l),e.lineTo(h,f),e.lineTo(h+c,f+a),e.close(),e.fillAndStroke()},mxUtils.extend(mxText,mxShape),mxText.prototype.baseSpacingTop=0,mxText.prototype.baseSpacingBottom=0,mxText.prototype.baseSpacingLeft=0,mxText.prototype.baseSpacingRight=0,mxText.prototype.replaceLinefeeds=!0,mxText.prototype.verticalTextRotation=-90,mxText.prototype.ignoreClippedStringSize=!0,mxText.prototype.ignoreStringSize=!1,mxText.prototype.isParseVml=function(){return!1},mxText.prototype.isHtmlAllowed=function(){return 8!=document.documentMode},mxText.prototype.getSvgScreenOffset=function(){return 0},mxText.prototype.checkBounds=function(){return!(null==this.bounds||isNaN(this.bounds.x)||isNaN(this.bounds.y)||isNaN(this.bounds.width)||isNaN(this.bounds.height))},mxText.prototype.updateBoundingBox=function(){var e=this.node;8==document.documentMode&&null!=e.firstChild&&(null!=(e=e.firstChild).firstChild&&(e=e.firstChild)),this.boundingBox=this.bounds.clone();var n=this.getTextRotation();if(this.ignoreStringSize||null==e||"fill"==this.overflow||this.clipped&&this.ignoreClippedStringSize)this.boundingBox.x+=this.margin.x*this.boundingBox.width,this.boundingBox.y+=this.margin.y*this.boundingBox.height;else{var t=null,a=null;if(null!=e.ownerSVGElement)if(null!=e.firstChild&&null!=e.firstChild.firstChild&&"foreignObject"==e.firstChild.firstChild.nodeName)e=e.firstChild.firstChild,t=this.wrap?this.bounds.width:parseInt(e.getAttribute("width"))*this.scale,a=parseInt(e.getAttribute("height"))*this.scale;else{if(0==(n=e.getBBox()).width&&0==n.height)return;this.boundingBox=new mxRectangle(n.x,n.y,n.width,n.height),n=0}else a=this.state.view.textDiv,a=null!=this.offsetWidth&&null!=this.offsetHeight?(t=this.wrap?this.bounds.width:this.offsetWidth*this.scale,this.offsetHeight*this.scale):null!=a?(this.updateFont(a),this.updateSize(a),mxUtils.isNode(this.value)?a.innerHTML=this.value.outerHTML:(t=this.replaceLinefeeds?this.value.replace(/\n/g,"<br/>"):this.value,a.innerHTML=t),t=this.wrap?this.bounds.width:a.offsetWidth*this.scale,a.offsetHeight*this.scale):(t=this.wrap?this.bounds.width:e.offsetWidth*this.scale,e.offsetHeight*this.scale);null!=t&&null!=a&&(this.boundingBox=new mxRectangle(this.bounds.x+this.margin.x*t,this.bounds.y+this.margin.y*a,t,a))}null!=this.boundingBox&&(0!=n&&(n=mxUtils.getBoundingBox(this.boundingBox,n),this.boundingBox.x=n.x,this.boundingBox.y=n.y,mxClient.IS_QUIRKS||(this.boundingBox.width=n.width,this.boundingBox.height=n.height)),this.boundingBox.x=Math.floor(this.boundingBox.x),this.boundingBox.y=Math.floor(this.boundingBox.y),this.boundingBox.width=Math.ceil(this.boundingBox.width),this.boundingBox.height=Math.ceil(this.boundingBox.height))},mxText.prototype.getShapeRotation=function(){return 0},mxText.prototype.getTextRotation=function(){return null!=this.state&&null!=this.state.shape?this.state.shape.getTextRotation():0},mxText.prototype.isPaintBoundsInverted=function(){return!this.horizontal&&null!=this.state&&this.state.view.graph.model.isVertex(this.state.cell)},mxText.prototype.configureCanvas=function(e,n,t,a,i){mxShape.prototype.configureCanvas.apply(this,arguments),e.setFontColor(this.color),e.setFontBackgroundColor(this.background),e.setFontBorderColor(this.border),e.setFontFamily(this.family),e.setFontSize(this.size),e.setFontStyle(this.fontStyle)},mxText.prototype.updateVmlContainer=function(){this.node.style.left=Math.round(this.bounds.x)+"px",this.node.style.top=Math.round(this.bounds.y)+"px",this.node.style.width="1px",this.node.style.height="1px",this.node.style.overflow="visible"},mxText.prototype.paint=function(e){var n=this.scale,t=this.bounds.x/n,a=this.bounds.y/n,i=this.bounds.width/n;n=this.bounds.height/n;this.updateTransform(e,t,a,i,n),this.configureCanvas(e,t,a,i,n);var s=mxUtils.isNode(this.value)||this.dialect==mxConstants.DIALECT_STRICTHTML,o=s||e instanceof mxVmlCanvas2D?"html":"",r=this.value;!s&&"html"==o&&(r=mxUtils.htmlEntities(r,!1)),r=!mxUtils.isNode(this.value)&&this.replaceLinefeeds&&"html"==o?r.replace(/\n/g,"<br/>"):r,e.text(t,a,i,n,r,this.align,this.valign,this.wrap,o,"fill"==this.overflow,this.clipped,this.getTextRotation())},mxText.prototype.redrawHtmlShape=function(){var e=this.node.style;e.opacity=this.opacity<1?this.opacity:"",e.overflow="",e.width="",e.height="",this.updateFont(this.node),this.updateSize(this.node),this.updateValue(),this.offsetHeight=this.offsetWidth=null,null!=mxClient.CSS_PREFIX?this.updateHtmlTransform():this.updateHtmlFilter()},mxText.prototype.updateHtmlTransform=function(){var e=this.getTextRotation(),n=this.node.style,t=this.margin.x,a=this.margin.y;0!=e?(n[mxClient.CSS_PREFIX+"TransformOrigin"]=100*-t+"% "+100*-a+"%",n[mxClient.CSS_PREFIX+"Transform"]="translate("+100*t+"%,"+100*a+"%)scale("+this.scale+") rotate("+e+"deg)"):(n[mxClient.CSS_PREFIX+"TransformOrigin"]="0% 0%",n[mxClient.CSS_PREFIX+"Transform"]="scale("+this.scale+")translate("+100*t+"%,"+100*a+"%)"),n.left=Math.round(this.bounds.x)+"px",n.top=Math.round(this.bounds.y)+"px"},mxText.prototype.updateHtmlFilter=function(){var e=this.node.style,n=this.margin.x,t=this.margin.y,a=this.scale;e.filter="";var i=0,s=0;if(null!=(r=null!=this.state?this.state.view.textDiv:null)){if(r.style.overflow="",r.style.height="",r.style.width="",this.updateFont(r),this.updateSize(r),mxUtils.isNode(this.value))r.innerHTML=this.value.outerHTML;else{var o=this.value;this.dialect!=mxConstants.DIALECT_STRICTHTML&&(o=mxUtils.htmlEntities(o,!1)),o=this.replaceLinefeeds?o.replace(/\n/g,"<br/>"):o,r.innerHTML=o}i=r.offsetWidth+2,s=r.offsetHeight+2}else i=this.node.offsetWidth,s=this.node.offsetHeight+1;this.offsetWidth=i,this.offsetHeight=s,r=this.bounds.width/a,o=this.bounds.height/a,mxClient.IS_QUIRKS&&(this.clipped||"fill"==this.overflow)&&0<o?(o=Math.min(o,s),e.height=Math.round(o+1)+"px"):o=s,"fill"!=this.overflow&&(mxClient.IS_QUIRKS&&(this.clipped||this.wrap)&&0<r?(r=Math.min(r,i),e.width=Math.round(r)+"px"):r=i);o*=a;var r=r*a,l=(i=this.getTextRotation()*(Math.PI/180),s=parseFloat(parseFloat(Math.cos(i)).toFixed(8)),parseFloat(parseFloat(Math.sin(-i)).toFixed(8)));(i=i%(2*Math.PI))<0&&(i+=2*Math.PI),(i%=Math.PI)>Math.PI/2&&(i=Math.PI-i);var d=Math.cos(i),c=Math.sin(-i),m=(o-o*d+r*c)/2+l*(n=r*-(n+.5))-s*(t=o*-(t+.5));0!=i&&(e.filter="progid:DXImageTransform.Microsoft.Matrix(M11="+s+", M12="+l+", M21="+-l+", M22="+s+", sizingMethod='auto expand')"),e.zoom=a,e.left=Math.round(this.bounds.x+((r-r*d+o*c)/2-s*n-l*t)-r/2)+"px",e.top=Math.round(this.bounds.y+m-o/2)+"px"},mxText.prototype.updateValue=function(){if(mxUtils.isNode(this.value))this.node.innerHTML="",this.node.appendChild(this.value);else{var e=this.value;this.dialect!=mxConstants.DIALECT_STRICTHTML&&(e=mxUtils.htmlEntities(e,!1));e=this.replaceLinefeeds?e.replace(/\n/g,"<br/>"):e;var n=null!=this.background&&this.background!=mxConstants.NONE?this.background:null,t=null!=this.border&&this.border!=mxConstants.NONE?this.border:null;if(null!=n||null!=t)if("fill"==this.overflow)null!=n&&(this.node.style.backgroundColor=n),null!=t&&(this.node.style.border="1px solid "+t);else{var a="";null!=n&&(a+="background-color:"+n+";"),null!=t&&(a+="border:1px solid "+t+";"),e='<div style="zoom:1;'+a+"display:inline-block;_display:inline;padding-bottom:1px;padding-right:1px;line-height:"+this.node.style.lineHeight+'">'+e+"</div>",this.node.style.lineHeight=""}this.node.innerHTML=e}},mxText.prototype.updateFont=function(e){(e=e.style).lineHeight=Math.round(this.size*mxConstants.LINE_HEIGHT)+"px",e.fontSize=Math.round(this.size)+"px",e.fontFamily=this.family,e.verticalAlign="top",e.color=this.color,e.fontWeight=(this.fontStyle&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD?"bold":"",e.fontStyle=(this.fontStyle&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC?"italic":"",e.fontDecoration=(this.fontStyle&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE?"underline":"",e.textAlign=this.align==mxConstants.ALIGN_CENTER?"center":this.align==mxConstants.ALIGN_RIGHT?"right":"left"},mxText.prototype.updateSize=function(e){var n=Math.round(this.bounds.width/this.scale),t=Math.round(this.bounds.height/this.scale);e=e.style,this.clipped?(e.overflow="hidden",0<t&&(e.maxHeight=t+"px"),0<n&&(e.width=n+"px")):"fill"==this.overflow&&(e.width=n+"px",0<t&&(e.maxHeight=t+"px")),this.wrap?(!this.clipped&&0<n&&(e.width=n+"px"),e.whiteSpace="normal"):e.whiteSpace="nowrap"},mxText.prototype.updateMargin=function(){this.margin=mxUtils.getAlignmentAsPoint(this.align,this.valign)},mxText.prototype.getSpacing=function(){return new mxPoint(this.align==mxConstants.ALIGN_CENTER?(this.spacingLeft-this.spacingRight)/2:this.align==mxConstants.ALIGN_RIGHT?-this.spacingRight-this.baseSpacingRight:this.spacingLeft+this.baseSpacingLeft,this.valign==mxConstants.ALIGN_MIDDLE?(this.spacingTop-this.spacingBottom)/2:this.valign==mxConstants.ALIGN_BOTTOM?-this.spacingBottom-this.baseSpacingBottom:this.spacingTop+this.baseSpacingTop)},mxUtils.extend(mxTriangle,mxActor),mxTriangle.prototype.redrawPath=function(e,n,t,a,i){e.moveTo(0,0),e.lineTo(a,.5*i),e.lineTo(0,i),e.close()},mxUtils.extend(mxHexagon,mxActor),mxHexagon.prototype.redrawPath=function(e,n,t,a,i){e.moveTo(.25*a,0),e.lineTo(.75*a,0),e.lineTo(a,.5*i),e.lineTo(.75*a,i),e.lineTo(.25*a,i),e.lineTo(0,.5*i),e.close()},mxUtils.extend(mxLine,mxShape),mxLine.prototype.paintVertexShape=function(e,n,t,a,i){t+=i/2,e.begin(),e.moveTo(n,t),e.lineTo(n+a,t),e.stroke()},mxUtils.extend(mxImageShape,mxRectangleShape),mxImageShape.prototype.preserveImageAspect=!0,mxImageShape.prototype.getSvgScreenOffset=function(){return mxClient.IS_IE?0:.5},mxImageShape.prototype.apply=function(e){mxShape.prototype.apply.apply(this,arguments),this.gradient=this.stroke=this.fill=null,null!=this.style&&(this.fill=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BACKGROUND),this.stroke=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BORDER),this.preserveImageAspect=1==mxUtils.getNumber(this.style,mxConstants.STYLE_IMAGE_ASPECT,1),this.flipH=this.flipH||1==mxUtils.getValue(this.style,"imageFlipH",0),this.flipV=this.flipV||1==mxUtils.getValue(this.style,"imageFlipV",0))},mxImageShape.prototype.isHtmlAllowed=function(){return!this.preserveImageAspect},mxImageShape.prototype.createHtml=function(){var e=document.createElement("div");return e.style.position="absolute",e},mxImageShape.prototype.paintVertexShape=function(e,n,t,a,i){if(null!=this.image){var s=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BACKGROUND,null),o=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_BORDER,null);null==s&&null==o||(e.setFillColor(s),e.setStrokeColor(o),e.rect(n,t,a,i),e.fillAndStroke()),e.image(n,t,a,i,this.image,this.preserveImageAspect,!1,!1)}else mxRectangleShape.prototype.paintBackground.apply(this,arguments)},mxImageShape.prototype.redrawHtmlShape=function(){if(this.node.style.left=Math.round(this.bounds.x)+"px",this.node.style.top=Math.round(this.bounds.y)+"px",this.node.style.width=Math.max(0,Math.round(this.bounds.width))+"px",this.node.style.height=Math.max(0,Math.round(this.bounds.height))+"px",this.node.style.backgroundColor=this.fill||"",this.node.style.borderColor=this.stroke||"",this.node.innerHTML="",null!=this.image){var e=document.createElement(mxClient.IS_IE6||null==mxClient.CSS_PREFIX&&0!=this.rotation?mxClient.VML_PREFIX+":image":"img");e.style.position="absolute",e.src=this.image;var n=this.opacity<100?"alpha(opacity="+this.opacity+")":"";this.node.style.filter=n,this.flipH&&this.flipV?n+="progid:DXImageTransform.Microsoft.BasicImage(rotation=2)":this.flipH?n+="progid:DXImageTransform.Microsoft.BasicImage(mirror=1)":this.flipV&&(n+="progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"),e.style.filter!=n&&(e.style.filter=n),"image"==e.nodeName?e.style.rotation=this.rotation:e.style[mxClient.CSS_PREFIX+"Transform"]="rotate("+this.rotation+"deg)",e.style.width=this.node.style.width,e.style.height=this.node.style.height,this.node.style.backgroundImage="",this.node.appendChild(e)}else this.setTransparentBackgroundImage(this.node)},mxUtils.extend(mxLabel,mxRectangleShape),mxLabel.prototype.imageSize=mxConstants.DEFAULT_IMAGESIZE,mxLabel.prototype.spacing=2,mxLabel.prototype.indicatorSize=10,mxLabel.prototype.indicatorSpacing=2,mxLabel.prototype.init=function(e){mxShape.prototype.init.apply(this,arguments),null!=this.indicatorColor&&null!=this.indicatorShape&&(this.indicator=new this.indicatorShape,this.indicator.dialect=this.dialect,this.indicator.bounds=this.bounds,this.indicator.fill=this.indicatorColor,this.indicator.stroke=this.indicatorColor,this.indicator.gradient=this.indicatorGradientColor,this.indicator.direction=this.indicatorDirection,this.indicator.init(this.node))},mxLabel.prototype.redraw=function(){null!=this.indicator&&(this.indicator.fill=this.indicatorColor,this.indicator.stroke=this.indicatorColor,this.indicator.gradient=this.indicatorGradientColor,this.indicator.direction=this.indicatorDirection),mxShape.prototype.redraw.apply(this,arguments)},mxLabel.prototype.isHtmlAllowed=function(){return mxRectangleShape.prototype.isHtmlAllowed.apply(this,arguments)&&null==this.indicatorColor&&null==this.indicatorShape},mxLabel.prototype.paintForeground=function(e,n,t,a,i){this.paintImage(e,n,t,a,i),this.paintIndicator(e,n,t,a,i),mxRectangleShape.prototype.paintForeground.apply(this,arguments)},mxLabel.prototype.paintImage=function(e,n,t,a,i){null!=this.image&&(n=this.getImageBounds(n,t,a,i),e.image(n.x,n.y,n.width,n.height,this.image,!1,!1,!1))},mxLabel.prototype.getImageBounds=function(e,n,t,a){var i=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_ALIGN,mxConstants.ALIGN_LEFT),s=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE),o=mxUtils.getNumber(this.style,mxConstants.STYLE_IMAGE_WIDTH,mxConstants.DEFAULT_IMAGESIZE),r=mxUtils.getNumber(this.style,mxConstants.STYLE_IMAGE_HEIGHT,mxConstants.DEFAULT_IMAGESIZE),l=mxUtils.getNumber(this.style,mxConstants.STYLE_SPACING,this.spacing)+5;return new mxRectangle(e=i==mxConstants.ALIGN_CENTER?e+(t-o)/2:i==mxConstants.ALIGN_RIGHT?e+(t-o-l):e+l,n=s==mxConstants.ALIGN_TOP?n+l:s==mxConstants.ALIGN_BOTTOM?n+(a-r-l):n+(a-r)/2,o,r)},mxLabel.prototype.paintIndicator=function(e,n,t,a,i){null!=this.indicator?(this.indicator.bounds=this.getIndicatorBounds(n,t,a,i),this.indicator.paint(e)):null!=this.indicatorImage&&(n=this.getIndicatorBounds(n,t,a,i),e.image(n.x,n.y,n.width,n.height,this.indicatorImage,!1,!1,!1))},mxLabel.prototype.getIndicatorBounds=function(e,n,t,a){var i=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_ALIGN,mxConstants.ALIGN_LEFT),s=mxUtils.getValue(this.style,mxConstants.STYLE_IMAGE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE),o=mxUtils.getNumber(this.style,mxConstants.STYLE_INDICATOR_WIDTH,this.indicatorSize),r=mxUtils.getNumber(this.style,mxConstants.STYLE_INDICATOR_HEIGHT,this.indicatorSize),l=this.spacing+5;return new mxRectangle(e=i==mxConstants.ALIGN_RIGHT?e+(t-o-l):i==mxConstants.ALIGN_CENTER?e+(t-o)/2:e+l,n=s==mxConstants.ALIGN_BOTTOM?n+(a-r-l):s==mxConstants.ALIGN_TOP?n+l:n+(a-r)/2,o,r)},mxLabel.prototype.redrawHtmlShape=function(){for(mxRectangleShape.prototype.redrawHtmlShape.apply(this,arguments);this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild);if(null!=this.image){var e=document.createElement("img");e.style.position="relative",e.setAttribute("border","0");var n=this.getImageBounds(this.bounds.x,this.bounds.y,this.bounds.width,this.bounds.height);n.x-=this.bounds.x,n.y-=this.bounds.y,e.style.left=Math.round(n.x)+"px",e.style.top=Math.round(n.y)+"px",e.style.width=Math.round(n.width)+"px",e.style.height=Math.round(n.height)+"px",e.src=this.image,this.node.appendChild(e)}},mxUtils.extend(mxCylinder,mxShape),mxCylinder.prototype.maxHeight=40,mxCylinder.prototype.svgStrokeTolerance=0,mxCylinder.prototype.paintVertexShape=function(e,n,t,a,i){e.translate(n,t),e.begin(),this.redrawPath(e,n,t,a,i,!1),e.fillAndStroke(),e.setShadow(!1),e.begin(),this.redrawPath(e,n,t,a,i,!0),e.stroke()},mxCylinder.prototype.redrawPath=function(e,n,t,a,i,s){n=Math.min(this.maxHeight,Math.round(i/5)),(s&&null!=this.fill||!s&&null==this.fill)&&(e.moveTo(0,n),e.curveTo(0,2*n,a,2*n,a,n),s||(e.stroke(),e.begin())),s||(e.moveTo(0,n),e.curveTo(0,-n/3,a,-n/3,a,n),e.lineTo(a,i-n),e.curveTo(a,i+n/3,0,i+n/3,0,i-n),e.close())},mxUtils.extend(mxConnector,mxPolyline),mxConnector.prototype.paintEdgeShape=function(e,n){var t=this.createMarker(e,n,!0),a=this.createMarker(e,n,!1);null==this.style||1!=this.style[mxConstants.STYLE_CURVED]?this.paintLine(e,n,this.isRounded):this.paintCurvedLine(e,n),e.setFillColor(this.stroke),e.setShadow(!1),e.setDashed(!1),null!=t&&t(),null!=a&&a()},mxConnector.prototype.paintCurvedLine=function(e,n){e.begin();var t=n[0],a=n.length;for(e.moveTo(t.x,t.y),t=1;t<a-2;t++){var i=n[t],s=n[t+1];e.quadTo(i.x,i.y,(i.x+s.x)/2,(i.y+s.y)/2)}i=n[a-2],s=n[a-1],e.quadTo(i.x,i.y,s.x,s.y),e.stroke()},mxConnector.prototype.createMarker=function(e,n,t){var a=n.length,i=t?n[1]:n[a-2],s=(a=(n=t?n[0]:n[a-1]).x-i.x,n.y-i.y),o=(i=a/(o=Math.max(1,Math.sqrt(a*a+s*s))),a=s/o,s=mxUtils.getNumber(this.style,t?mxConstants.STYLE_STARTSIZE:mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE),mxUtils.getValue(this.style,t?mxConstants.STYLE_STARTARROW:mxConstants.STYLE_ENDARROW));return mxMarker.createMarker(e,this,o,n,i,a,s,t,this.strokewidth,0!=this.style[t?mxConstants.STYLE_STARTFILL:mxConstants.STYLE_ENDFILL])},mxConnector.prototype.augmentBoundingBox=function(e){mxShape.prototype.augmentBoundingBox.apply(this,arguments);var n=0;mxUtils.getValue(this.style,mxConstants.STYLE_STARTARROW,mxConstants.NONE)!=mxConstants.NONE&&(n=mxUtils.getNumber(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_MARKERSIZE)+1),mxUtils.getValue(this.style,mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE&&(n=Math.max(n,mxUtils.getNumber(this.style,mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE))+1),e.grow(Math.ceil(n*this.scale))},mxUtils.extend(mxSwimlane,mxShape),mxSwimlane.prototype.imageSize=16,mxSwimlane.prototype.getGradientBounds=function(e,n,t,a,i){return new mxRectangle(n,t,a,Math.min(i,mxUtils.getValue(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE)))},mxSwimlane.prototype.getRotation=function(){var e=mxShape.prototype.getRotation.apply(this,arguments);return 1!=mxUtils.getValue(this.style,mxConstants.STYLE_HORIZONTAL,1)&&(e+=mxText.prototype.verticalTextRotation),e},mxSwimlane.prototype.getTextRotation=function(){return this.getRotation()},mxSwimlane.prototype.isPaintBoundsInverted=function(){return mxShape.prototype.isPaintBoundsInverted.apply(this,arguments)||1!=mxUtils.getValue(this.style,mxConstants.STYLE_HORIZONTAL,1)},mxSwimlane.prototype.getArcSize=function(e,n,t){return 3*t*(mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,100*mxConstants.RECTANGLE_ROUNDING_FACTOR)/100)},mxSwimlane.prototype.paintVertexShape=function(e,n,t,a,i){var s=Math.min(i,mxUtils.getValue(this.style,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE)),o=mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_FILLCOLOR,mxConstants.NONE),r=1==mxUtils.getValue(this.style,mxConstants.STYLE_SWIMLANE_LINE,1),l=0;e.translate(n,t),this.isRounded?(l=this.getArcSize(a,i,s),this.paintRoundedSwimlane(e,n,t,a,i,s,l,o,r)):this.paintSwimlane(e,n,t,a,i,s,o,r),o=mxUtils.getValue(this.style,mxConstants.STYLE_SEPARATORCOLOR,mxConstants.NONE),this.paintSeparator(e,a,s,i,o),null!=this.image&&(i=this.getImageBounds(n,s,a,i),e.image(i.x-n,i.y-t,i.width,i.height,this.image,!1,!1,!1)),this.glass&&(e.setShadow(!1),this.paintGlassEffect(e,0,0,a,s,l))},mxSwimlane.prototype.paintSwimlane=function(e,n,t,a,i,s,o,r){o!=mxConstants.NONE&&(e.save(),e.setFillColor(o),e.rect(0,0,a,i),e.fillAndStroke(),e.restore(),e.setShadow(!1)),e.begin(),e.moveTo(0,s),e.lineTo(0,0),e.lineTo(a,0),e.lineTo(a,s),r&&e.close(),e.fillAndStroke(),s<i&&o==mxConstants.NONE&&(e.pointerEvents=!1,e.begin(),e.moveTo(0,s),e.lineTo(0,i),e.lineTo(a,i),e.lineTo(a,s),e.stroke())},mxSwimlane.prototype.paintRoundedSwimlane=function(e,n,t,a,i,s,o,r,l){r!=mxConstants.NONE&&(e.save(),e.setFillColor(r),e.roundrect(0,0,a,i,o,o),e.fillAndStroke(),e.restore(),e.setShadow(!1)),e.begin(),e.moveTo(a,s),e.lineTo(a,o),e.quadTo(a,0,a-Math.min(a/2,o),0),e.lineTo(Math.min(a/2,o),0),e.quadTo(0,0,0,o),e.lineTo(0,s),l&&e.close(),e.fillAndStroke(),s<i&&r==mxConstants.NONE&&(e.pointerEvents=!1,e.begin(),e.moveTo(0,s),e.lineTo(0,i-o),e.quadTo(0,i,Math.min(a/2,o),i),e.lineTo(a-Math.min(a/2,o),i),e.quadTo(a,i,a,i-o),e.lineTo(a,s),e.stroke())},mxSwimlane.prototype.paintSeparator=function(e,n,t,a,i){i!=mxConstants.NONE&&(e.setStrokeColor(i),e.setDashed(!0),e.begin(),e.moveTo(n,t),e.lineTo(n,a),e.stroke(),e.setDashed(!1))},mxSwimlane.prototype.getImageBounds=function(e,n,t,a){return new mxRectangle(e+t-this.imageSize,n,this.imageSize,this.imageSize)},mxGraphLayout.prototype.graph=null,mxGraphLayout.prototype.useBoundingBox=!0,mxGraphLayout.prototype.parent=null,mxGraphLayout.prototype.moveCell=function(e,n,t){},mxGraphLayout.prototype.execute=function(e){},mxGraphLayout.prototype.getGraph=function(){return this.graph},mxGraphLayout.prototype.getConstraint=function(e,n,t,a){return null!=(n=null!=(t=this.graph.view.getState(n))?t.style:this.graph.getCellStyle(n))?n[e]:null},mxGraphLayout.traverse=function(e,n,t,a,i){if(null!=t&&null!=e){n=null==n||n,i=i||[];var s=mxCellPath.create(e);if(null==i[s]&&(null==(a=t(i[s]=e,a))||a)&&0<(a=this.graph.model.getEdgeCount(e)))for(s=0;s<a;s++){var o=this.graph.model.getEdgeAt(e,s),r=this.graph.model.getTerminal(o,!0)==e;n&&!r||(r=this.graph.view.getVisibleTerminal(o,!r),this.traverse(r,n,t,o,i))}}},mxGraphLayout.prototype.isVertexMovable=function(e){return this.graph.isCellMovable(e)},mxGraphLayout.prototype.isVertexIgnored=function(e){return!this.graph.getModel().isVertex(e)||!this.graph.isCellVisible(e)},mxGraphLayout.prototype.isEdgeIgnored=function(e){var n=this.graph.getModel();return!n.isEdge(e)||!this.graph.isCellVisible(e)||null==n.getTerminal(e,!0)||null==n.getTerminal(e,!1)},mxGraphLayout.prototype.setEdgeStyleEnabled=function(e,n){this.graph.setCellStyles(mxConstants.STYLE_NOEDGESTYLE,n?"0":"1",[e])},mxGraphLayout.prototype.setOrthogonalEdge=function(e,n){this.graph.setCellStyles(mxConstants.STYLE_ORTHOGONAL,n?"1":"0",[e])},mxGraphLayout.prototype.getParentOffset=function(e){var n=new mxPoint;if(null!=e&&e!=this.parent){var t=this.graph.getModel();if(t.isAncestor(this.parent,e))for(var a=t.getGeometry(e);e!=this.parent;)n.x+=a.x,n.y+=a.y,e=t.getParent(e),a=t.getGeometry(e)}return n},mxGraphLayout.prototype.setEdgePoints=function(e,n){if(null!=e){var t=this.graph.model,a=t.getGeometry(e);if(null==a?(a=new mxGeometry).setRelative(!0):a=a.clone(),null!=this.parent&&null!=n)for(var i=t.getParent(e),s=(i=this.getParentOffset(i),0);s<n.length;s++)n[s].x-=i.x,n[s].y-=i.y;a.points=n,t.setGeometry(e,a)}},mxGraphLayout.prototype.setVertexLocation=function(e,n,t){var a=this.graph.getModel(),i=a.getGeometry(e),s=null;if(null!=i){if(s=new mxRectangle(n,t,i.width,i.height),this.useBoundingBox){var o=this.graph.getView().getState(e);if(null!=o&&null!=o.text&&null!=o.text.boundingBox){var r=this.graph.getView().scale,l=o.text.boundingBox;o.text.boundingBox.x<o.x&&(n+=(o.x-l.x)/r,s.width=l.width),o.text.boundingBox.y<o.y&&(t+=(o.y-l.y)/r,s.height=l.height)}}null!=this.parent&&(null!=(o=a.getParent(e))&&o!=this.parent&&(n-=(o=this.getParentOffset(o)).x,t-=o.y)),i.x==n&&i.y==t||((i=i.clone()).x=n,i.y=t,a.setGeometry(e,i))}return s},mxGraphLayout.prototype.getVertexBounds=function(e){var n=this.graph.getModel().getGeometry(e);if(this.useBoundingBox&&(null!=(r=this.graph.getView().getState(e))&&null!=r.text&&null!=r.text.boundingBox)){var t=this.graph.getView().scale,a=r.text.boundingBox,i=Math.max(r.x-a.x,0)/t,s=Math.max(r.y-a.y,0)/t,o=Math.max(a.x+a.width-(r.x+r.width),0)/t,r=Math.max(a.y+a.height-(r.y+r.height),0)/t;n=new mxRectangle(n.x-i,n.y-s,n.width+i+o,n.height+s+r)}return null!=this.parent&&(e=this.graph.getModel().getParent(e),n=n.clone(),null!=e&&e!=this.parent&&(e=this.getParentOffset(e),n.x+=e.x,n.y+=e.y)),new mxRectangle(n.x,n.y,n.width,n.height)},mxGraphLayout.prototype.arrangeGroups=function(e,n){this.graph.getModel().beginUpdate();try{for(var t=e.length-1;0<=t;t--){var a=e[t],i=this.graph.getChildVertices(a),s=this.graph.getBoundingBoxFromGeometry(i),o=this.graph.getCellGeometry(a),r=0,l=0;if(this.graph.isSwimlane(a)){var d=this.graph.getStartSize(a);r=d.width,l=d.height}null!=s&&null!=o&&((o=o.clone()).x=o.x+s.x-n-r,o.y=o.y+s.y-n-l,o.width=s.width+2*n+r,o.height=s.height+2*n+l,this.graph.getModel().setGeometry(a,o),this.graph.moveCells(i,n+r-s.x,n+l-s.y))}}finally{this.graph.getModel().endUpdate()}},mxStackLayout.prototype=new mxGraphLayout,mxStackLayout.prototype.constructor=mxStackLayout,mxStackLayout.prototype.horizontal=null,mxStackLayout.prototype.spacing=null,mxStackLayout.prototype.x0=null,mxStackLayout.prototype.y0=null,mxStackLayout.prototype.border=0,mxStackLayout.prototype.keepFirstLocation=!1,mxStackLayout.prototype.fill=!1,mxStackLayout.prototype.resizeParent=!1,mxStackLayout.prototype.resizeLast=!1,mxStackLayout.prototype.wrap=null,mxStackLayout.prototype.isHorizontal=function(){return this.horizontal},mxStackLayout.prototype.moveCell=function(e,n,t){var a=this.graph.getModel(),i=a.getParent(e),s=this.isHorizontal();if(null!=e&&null!=i){var o=0,r=0,l=a.getChildCount(i);for(n=s?n:t,null!=(o=this.graph.getView().getState(i))&&(n-=s?o.x:o.y),o=0;o<l;o++)if((t=a.getChildAt(i,o))!=e&&null!=(t=a.getGeometry(t))){if(t=s?t.x+t.width/2:t.y+t.height/2,r<n&&n<t)break;r=t}s=i.getIndex(e),s=Math.max(0,o-(s<o?1:0)),a.add(i,e,s)}},mxStackLayout.prototype.getParentSize=function(e){var n=this.graph.getModel(),t=n.getGeometry(e);return null!=this.graph.container&&(null==t&&n.isLayer(e)||e==this.graph.getView().currentRoot)&&(t=new mxRectangle(0,0,this.graph.container.offsetWidth-1,this.graph.container.offsetHeight-1)),t},mxStackLayout.prototype.execute=function(e){if(null!=e){var n=this.isHorizontal(),t=this.graph.getModel(),a=this.getParentSize(e),i=0;null!=a&&(i=n?a.height:a.width);i=i-(2*this.spacing+2*this.border);var s=this.x0+this.border,o=this.y0+this.border;if(this.graph.isSwimlane(e)){var r=this.graph.getCellStyle(e),l=mxUtils.getValue(r,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE);n==(r=mxUtils.getValue(r,mxConstants.STYLE_HORIZONTAL,!0))&&(i-=l),n?o+=l:s+=l}t.beginUpdate();try{l=0,r=null;for(var d=t.getChildCount(e),c=0;c<d;c++){var m=t.getChildAt(e,c);if(!this.isVertexIgnored(m)&&this.isVertexMovable(m)){var u=t.getGeometry(m);null!=u&&(u=u.clone(),null!=this.wrap&&null!=r&&(n&&r.x+r.width+u.width+2*this.spacing>this.wrap||!n&&r.y+r.height+u.height+2*this.spacing>this.wrap)&&(r=null,n?o+=l+this.spacing:s+=l+this.spacing,l=0),l=Math.max(l,n?u.height:u.width),null!=r?n?u.x=r.x+r.width+this.spacing:u.y=r.y+r.height+this.spacing:this.keepFirstLocation||(n?u.x=s:u.y=o),n?u.y=o:u.x=s,this.fill&&0<i&&(n?u.height=i:u.width=i),t.setGeometry(m,u),r=u)}}this.resizeParent&&null!=a&&null!=r&&!this.graph.isCellCollapsed(e)?(a=a.clone(),n?a.width=r.x+r.width+this.spacing:a.height=r.y+r.height+this.spacing,t.setGeometry(e,a)):this.resizeLast&&null!=a&&null!=r&&(n?r.width=a.width-r.x-this.spacing:r.height=a.height-r.y-this.spacing)}finally{t.endUpdate()}}},mxPartitionLayout.prototype=new mxGraphLayout,mxPartitionLayout.prototype.constructor=mxPartitionLayout,mxPartitionLayout.prototype.horizontal=null,mxPartitionLayout.prototype.spacing=null,mxPartitionLayout.prototype.border=null,mxPartitionLayout.prototype.resizeVertices=!0,mxPartitionLayout.prototype.isHorizontal=function(){return this.horizontal},mxPartitionLayout.prototype.moveCell=function(e,n,t){var a=(t=this.graph.getModel()).getParent(e);if(null!=e&&null!=a){var i=0,s=0,o=t.getChildCount(a);for(i=0;i<o;i++){var r=t.getChildAt(a,i);if(null!=(r=this.getVertexBounds(r))){if(r=r.x+r.width/2,s<n&&n<r)break;s=r}}n=a.getIndex(e),n=Math.max(0,i-(n<i?1:0)),t.add(a,e,n)}},mxPartitionLayout.prototype.execute=function(e){var n=this.isHorizontal(),t=this.graph.getModel(),a=t.getGeometry(e);if(null!=this.graph.container&&(null==a&&t.isLayer(e)||e==this.graph.getView().currentRoot)&&(a=new mxRectangle(0,0,this.graph.container.offsetWidth-1,this.graph.container.offsetHeight-1)),null!=a){for(var i=[],s=t.getChildCount(e),o=0;o<s;o++){var r=t.getChildAt(e,o);!this.isVertexIgnored(r)&&this.isVertexMovable(r)&&i.push(r)}if(0<(s=i.length)){var l=this.border,d=this.border,c=(c=n?a.height:a.width)-2*this.border;if(e=this.graph.isSwimlane(e)?this.graph.getStartSize(e):new mxRectangle,c-=n?e.height:e.width,l+=e.width,d+=e.height,e=this.border+(s-1)*this.spacing,0<(a=n?(a.width-l-e)/s:(a.height-d-e)/s)){t.beginUpdate();try{for(o=0;o<s;o++){r=i[o];var m=t.getGeometry(r);null!=m&&((m=m.clone()).x=l,m.y=d,n?(this.resizeVertices&&(m.width=a,m.height=c),l+=a+this.spacing):(this.resizeVertices&&(m.height=a,m.width=c),d+=a+this.spacing),t.setGeometry(r,m))}}finally{t.endUpdate()}}}}},mxCompactTreeLayout.prototype=new mxGraphLayout,mxCompactTreeLayout.prototype.constructor=mxCompactTreeLayout,mxCompactTreeLayout.prototype.horizontal=null,mxCompactTreeLayout.prototype.invert=null,mxCompactTreeLayout.prototype.resizeParent=!0,mxCompactTreeLayout.prototype.groupPadding=10,mxCompactTreeLayout.prototype.parentsChanged=null,mxCompactTreeLayout.prototype.moveTree=!1,mxCompactTreeLayout.prototype.levelDistance=10,mxCompactTreeLayout.prototype.nodeDistance=20,mxCompactTreeLayout.prototype.resetEdges=!0,mxCompactTreeLayout.prototype.prefHozEdgeSep=5,mxCompactTreeLayout.prototype.prefVertEdgeOff=4,mxCompactTreeLayout.prototype.minEdgeJetty=8,mxCompactTreeLayout.prototype.channelBuffer=4,mxCompactTreeLayout.prototype.edgeRouting=!0,mxCompactTreeLayout.prototype.isVertexIgnored=function(e){return mxGraphLayout.prototype.isVertexIgnored.apply(this,arguments)||0==this.graph.getConnections(e).length},mxCompactTreeLayout.prototype.isHorizontal=function(){return this.horizontal},mxCompactTreeLayout.prototype.execute=function(e,n){this.parent=e;var t=this.graph.getModel();if(null==n)if(0<this.graph.getEdges(e,t.getParent(e),this.invert,!this.invert,!1).length)n=e;else{if(0<(o=this.graph.findTreeRoots(e,!0,this.invert)).length)for(var a=0;a<o.length;a++)if(!this.isVertexIgnored(o[a])&&0<this.graph.getEdges(o[a],null,this.invert,!this.invert,!1).length){n=o[a];break}}if(null!=n){this.parentsChanged=this.resizeParent?{}:null,t.beginUpdate();try{var i=this.dfs(n,e);if(null!=i){this.layout(i);var s=this.graph.gridSize,o=s;if(!this.moveTree){var r=this.getVertexBounds(n);null!=r&&(s=r.x,o=r.y)}if((r=null)!=(r=this.isHorizontal()?this.horizontalLayout(i,s,o):this.verticalLayout(i,null,s,o))){var l=a=0;r.x<0&&(a=Math.abs(s-r.x)),r.y<0&&(l=Math.abs(o-r.y)),(0!=a||0!=l)&&this.moveNode(i,a,l),this.resizeParent&&this.adjustParents(),this.edgeRouting&&this.localEdgeProcessing(i)}}}finally{t.endUpdate()}}},mxCompactTreeLayout.prototype.moveNode=function(e,n,t){for(e.x+=n,e.y+=t,this.apply(e),e=e.child;null!=e;)this.moveNode(e,n,t),e=e.next},mxCompactTreeLayout.prototype.dfs=function(e,n,t){t=null!=t?t:[];var a=mxCellPath.create(e),i=null;if(null!=e&&null==t[a]&&!this.isVertexIgnored(e)){t[a]=e;i=this.createNode(e),a=this.graph.getModel();var s=null;e=this.graph.getEdges(e,n,this.invert,!this.invert,!1,!0);for(var o=this.graph.getView(),r=0;r<e.length;r++){var l=e[r];if(!this.isEdgeIgnored(l)){this.resetEdges&&this.setEdgePoints(l,null),this.edgeRouting&&(this.setEdgeStyleEnabled(l,!1),this.setEdgePoints(l,null));var d;l=null!=(d=o.getState(l))?d.getVisibleTerminal(this.invert):o.getVisibleTerminal(l,this.invert);null!=(d=this.dfs(l,n,t))&&null!=a.getGeometry(l)&&(null==s?i.child=d:s.next=d,s=d)}}}return i},mxCompactTreeLayout.prototype.layout=function(e){if(null!=e){for(var n=e.child;null!=n;)this.layout(n),n=n.next;null!=e.child?this.attachParent(e,this.join(e)):this.layoutLeaf(e)}},mxCompactTreeLayout.prototype.horizontalLayout=function(e,n,t,a){if(e.x+=n+e.offsetX,e.y+=t+e.offsetY,a=this.apply(e,a),null!=(n=e.child)){a=this.horizontalLayout(n,e.x,e.y,a),t=e.y+n.offsetY;for(var i=n.next;null!=i;)a=this.horizontalLayout(i,e.x+n.offsetX,t,a),t+=i.offsetY,i=i.next}return a},mxCompactTreeLayout.prototype.verticalLayout=function(e,n,t,a,i){if(e.x+=t+e.offsetY,e.y+=a+e.offsetX,i=this.apply(e,i),null!=(n=e.child))for(i=this.verticalLayout(n,e,e.x,e.y,i),t=e.x+n.offsetY,a=n.next;null!=a;)i=this.verticalLayout(a,e,t,e.y+n.offsetX,i),t+=a.offsetY,a=a.next;return i},mxCompactTreeLayout.prototype.attachParent=function(e,n){var t=this.nodeDistance+this.levelDistance,a=(n-e.width)/2-this.nodeDistance,i=a+e.width+2*this.nodeDistance-n;e.child.offsetX=t+e.height,e.child.offsetY=i,e.contour.upperHead=this.createLine(e.height,0,this.createLine(t,i,e.contour.upperHead)),e.contour.lowerHead=this.createLine(e.height,0,this.createLine(t,a,e.contour.lowerHead))},mxCompactTreeLayout.prototype.layoutLeaf=function(e){var n=2*this.nodeDistance;e.contour.upperTail=this.createLine(e.height+n,0),e.contour.upperHead=e.contour.upperTail,e.contour.lowerTail=this.createLine(0,-e.width-n),e.contour.lowerHead=this.createLine(e.height+n,0,e.contour.lowerTail)},mxCompactTreeLayout.prototype.join=function(e){var n=2*this.nodeDistance,t=e.child;e.contour=t.contour;var a=t.width+n,i=a;for(t=t.next;null!=t;){var s=this.merge(e.contour,t.contour);t.offsetY=s+a,t.offsetX=0,i+=s+(a=t.width+n),t=t.next}return i},mxCompactTreeLayout.prototype.merge=function(e,n){for(var t=0,a=0,i=0,s=e.lowerHead,o=n.upperHead;null!=o&&null!=s;){var r=this.offset(t,a,o.dx,o.dy,s.dx,s.dy);a=a+r,i=i+r;t+o.dx<=s.dx?(t+=o.dx,a+=o.dy,o=o.next):(t-=s.dx,a-=s.dy,s=s.next)}return null!=o?(t=this.bridge(e.upperTail,0,0,o,t,a),e.upperTail=null!=t.next?n.upperTail:t,e.lowerTail=n.lowerTail):null==(t=this.bridge(n.lowerTail,t,a,s,0,0)).next&&(e.lowerTail=t),e.lowerHead=n.lowerHead,i},mxCompactTreeLayout.prototype.offset=function(e,n,t,a,i,s){var o;return i<=e||e+t<=0?0:0<(o=0<i*a-t*s?e<0?e*a/t-n:0<e?e*s/i-n:-n:i<e+t?s-(n+(i-e)*a/t):e+t<i?(t+e)*s/i-(n+a):s-(n+a))?o:0},mxCompactTreeLayout.prototype.bridge=function(e,n,t,a,i,s){return n=i+a.dx-n,i=i=0,0==a.dx?i=a.dy:(i=n*a.dy,i/=a.dx),n=this.createLine(n,i,a.next),e.next=this.createLine(0,s+a.dy-i-t,n),n},mxCompactTreeLayout.prototype.createNode=function(e){var n={};return n.cell=e,n.x=0,n.y=0,n.width=0,n.height=0,null!=(e=this.getVertexBounds(e))&&(this.isHorizontal()?(n.width=e.height,n.height=e.width):(n.width=e.width,n.height=e.height)),n.offsetX=0,n.offsetY=0,n.contour={},n},mxCompactTreeLayout.prototype.apply=function(e,n){var t=this.graph.getModel(),a=e.cell,i=t.getGeometry(a);return null!=a&&null!=i&&(this.isVertexMovable(a)&&(i=this.setVertexLocation(a,e.x,e.y),this.resizeParent&&(t=t.getParent(a),a=mxCellPath.create(t),null==this.parentsChanged[a]&&(this.parentsChanged[a]=t))),n=null==n?new mxRectangle(i.x,i.y,i.width,i.height):new mxRectangle(Math.min(n.x,i.x),Math.min(n.y,i.y),Math.max(n.x+n.width,i.x+i.width),Math.max(n.y+n.height,i.y+i.height))),n},mxCompactTreeLayout.prototype.createLine=function(e,n,t){var a={};return a.dx=e,a.dy=n,a.next=t,a},mxCompactTreeLayout.prototype.adjustParents=function(){var e,n=[];for(e in this.parentsChanged)n.push(this.parentsChanged[e]);this.arrangeGroups(mxUtils.sortCells(n,!0),this.groupPadding)},mxCompactTreeLayout.prototype.localEdgeProcessing=function(e){for(this.processNodeOutgoing(e),e=e.child;null!=e;)this.localEdgeProcessing(e),e=e.next},mxCompactTreeLayout.prototype.processNodeOutgoing=function(e){for(var n=e.child,t=e.cell,a=0,i=[];null!=n;){a++;var s=n.x;this.horizontal&&(s=n.y),i.push(new WeightedCellSorter(n,s)),n=n.next}i.sort(WeightedCellSorter.prototype.compare),(s=e.width)>(o=(a+1)*this.prefHozEdgeSep)+2*this.prefHozEdgeSep&&(s-=2*this.prefHozEdgeSep),n=(e=s/a)/2,s>o+2*this.prefHozEdgeSep&&(n+=this.prefHozEdgeSep);s=this.minEdgeJetty-this.prefVertEdgeOff;for(var o=0,r=this.getVertexBounds(t),l=0;l<i.length;l++){for(var d=i[l].cell.cell,c=this.getVertexBounds(d),m=(d=this.graph.getEdgesBetween(t,d,!1),[]),u=0,p=0,g=0;g<d.length;g++)this.horizontal?(u=r.x+r.width,p=r.y+n,m.push(new mxPoint(u,p)),u=r.x+r.width+s,m.push(new mxPoint(u,p)),p=c.y+c.height/2):(u=r.x+n,p=r.y+r.height,m.push(new mxPoint(u,p)),p=r.y+r.height+s,m.push(new mxPoint(u,p)),u=c.x+c.width/2),m.push(new mxPoint(u,p)),this.setEdgePoints(d[g],m);l<a/2?s+=this.prefVertEdgeOff:a/2<l&&(s-=this.prefVertEdgeOff),n+=e,o=Math.max(o,s)}},WeightedCellSorter.prototype.weightedValue=0,WeightedCellSorter.prototype.nudge=!1,WeightedCellSorter.prototype.visited=!1,WeightedCellSorter.prototype.rankIndex=null,WeightedCellSorter.prototype.cell=null,WeightedCellSorter.prototype.compare=function(e,n){return null!=e&&null!=n?n.weightedValue>e.weightedValue?1:n.weightedValue<e.weightedValue?-1:n.nudge?1:-1:0},mxFastOrganicLayout.prototype=new mxGraphLayout,mxFastOrganicLayout.prototype.constructor=mxFastOrganicLayout,mxFastOrganicLayout.prototype.useInputOrigin=!0,mxFastOrganicLayout.prototype.resetEdges=!0,mxFastOrganicLayout.prototype.disableEdgeStyle=!0,mxFastOrganicLayout.prototype.forceConstant=50,mxFastOrganicLayout.prototype.forceConstantSquared=0,mxFastOrganicLayout.prototype.minDistanceLimit=2,mxFastOrganicLayout.prototype.maxDistanceLimit=500,mxFastOrganicLayout.prototype.minDistanceLimitSquared=4,mxFastOrganicLayout.prototype.initialTemp=200,mxFastOrganicLayout.prototype.temperature=0,mxFastOrganicLayout.prototype.maxIterations=0,mxFastOrganicLayout.prototype.iteration=0,mxFastOrganicLayout.prototype.allowedToRun=!0,mxFastOrganicLayout.prototype.isVertexIgnored=function(e){return mxGraphLayout.prototype.isVertexIgnored.apply(this,arguments)||0==this.graph.getConnections(e).length},mxFastOrganicLayout.prototype.execute=function(e){var n=this.graph.getModel();this.vertexArray=[];for(var t=this.graph.getChildVertices(e),a=0;a<t.length;a++)this.isVertexIgnored(t[a])||this.vertexArray.push(t[a]);var i=this.useInputOrigin?this.graph.view.getBounds(this.vertexArray):null,s=this.vertexArray.length;for(this.indices=[],this.dispX=[],this.dispY=[],this.cellLocation=[],this.isMoveable=[],this.neighbours=[],this.radius=[],this.radiusSquared=[],this.forceConstant<.001&&(this.forceConstant=.001),this.forceConstantSquared=this.forceConstant*this.forceConstant,a=0;a<this.vertexArray.length;a++){var o=this.vertexArray[a];this.cellLocation[a]=[];var r=mxCellPath.create(o);this.indices[r]=a;var l=this.getVertexBounds(o),d=l.width,c=l.height,m=l.x,u=l.y;this.cellLocation[a][0]=m+d/2,this.cellLocation[a][1]=u+c/2,this.radius[a]=Math.min(d,c),this.radiusSquared[a]=this.radius[a]*this.radius[a]}n.beginUpdate();try{for(a=0;a<s;a++){this.dispX[a]=0,this.dispY[a]=0,this.isMoveable[a]=this.isVertexMovable(this.vertexArray[a]);var p=this.graph.getConnections(this.vertexArray[a],e);t=this.graph.getOpposites(p,this.vertexArray[a]);for(this.neighbours[a]=[],d=0;d<t.length;d++){this.resetEdges&&this.graph.resetEdge(p[d]),this.disableEdgeStyle&&this.setEdgeStyleEnabled(p[d],!1);r=mxCellPath.create(t[d]);var g=this.indices[r];this.neighbours[a][d]=null!=g?g:a}}for(this.temperature=this.initialTemp,0==this.maxIterations&&(this.maxIterations=20*Math.sqrt(s)),this.iteration=0;this.iteration<this.maxIterations;this.iteration++){if(!this.allowedToRun)return;this.calcRepulsion(),this.calcAttraction(),this.calcPositions(),this.reduceTemperature()}for(e=t=null,a=0;a<this.vertexArray.length;a++)o=this.vertexArray[a],this.isVertexMovable(o)&&(null!=(l=this.getVertexBounds(o))&&(this.cellLocation[a][0]-=l.width/2,this.cellLocation[a][1]-=l.height/2,m=this.graph.snap(this.cellLocation[a][0]),u=this.graph.snap(this.cellLocation[a][1]),this.setVertexLocation(o,m,u),t=null==t?m:Math.min(t,m),e=null==e?u:Math.min(e,u)));a=1-(t||0),o=1-(e||0),null!=i&&(a+=i.x,o+=i.y),this.graph.moveCells(this.vertexArray,a,o)}finally{n.endUpdate()}},mxFastOrganicLayout.prototype.calcPositions=function(){for(var e=0;e<this.vertexArray.length;e++)if(this.isMoveable[e]){(t=Math.sqrt(this.dispX[e]*this.dispX[e]+this.dispY[e]*this.dispY[e]))<.001&&(t=.001);var n=this.dispX[e]/t*Math.min(t,this.temperature),t=this.dispY[e]/t*Math.min(t,this.temperature);this.dispX[e]=0,this.dispY[e]=0,this.cellLocation[e][0]+=n,this.cellLocation[e][1]+=t}},mxFastOrganicLayout.prototype.calcAttraction=function(){for(var e=0;e<this.vertexArray.length;e++)for(var n=0;n<this.neighbours[e].length;n++){var t=this.neighbours[e][n];if(e!=t&&this.isMoveable[e]&&this.isMoveable[t]){(a=(s=this.cellLocation[e][0]-this.cellLocation[t][0])*s+(o=this.cellLocation[e][1]-this.cellLocation[t][1])*o-this.radiusSquared[e]-this.radiusSquared[t])<this.minDistanceLimitSquared&&(a=this.minDistanceLimitSquared);var a,i=Math.sqrt(a),s=s/i*(a=a/this.forceConstant),o=o/i*a;this.dispX[e]-=s,this.dispY[e]-=o,this.dispX[t]+=s,this.dispY[t]+=o}}},mxFastOrganicLayout.prototype.calcRepulsion=function(){for(var e=this.vertexArray.length,n=0;n<e;n++)for(var t=n;t<e;t++){if(!this.allowedToRun)return;if(t!=n&&this.isMoveable[n]&&this.isMoveable[t]){var a=this.cellLocation[n][0]-this.cellLocation[t][0],i=this.cellLocation[n][1]-this.cellLocation[t][1];0==a&&(a=.01+Math.random()),0==i&&(i=.01+Math.random());var s=Math.sqrt(a*a+i*i),o=s-this.radius[n]-this.radius[t];o>this.maxDistanceLimit||(o<this.minDistanceLimit&&(o=this.minDistanceLimit),a=a/s*(o=this.forceConstantSquared/o),i=i/s*o,this.dispX[n]+=a,this.dispY[n]+=i,this.dispX[t]-=a,this.dispY[t]-=i)}}},mxFastOrganicLayout.prototype.reduceTemperature=function(){this.temperature=this.initialTemp*(1-this.iteration/this.maxIterations)},mxCircleLayout.prototype=new mxGraphLayout,mxCircleLayout.prototype.constructor=mxCircleLayout,mxCircleLayout.prototype.radius=null,mxCircleLayout.prototype.moveCircle=!1,mxCircleLayout.prototype.x0=0,mxCircleLayout.prototype.y0=0,mxCircleLayout.prototype.resetEdges=!0,mxCircleLayout.prototype.disableEdgeStyle=!0,mxCircleLayout.prototype.execute=function(e){var n=this.graph.getModel();n.beginUpdate();try{for(var t=0,a=null,i=null,s=[],o=n.getChildCount(e),r=0;r<o;r++){var l=n.getChildAt(e,r);if(this.isVertexIgnored(l))this.isEdgeIgnored(l)||(this.resetEdges&&this.graph.resetEdge(l),this.disableEdgeStyle&&this.setEdgeStyleEnabled(l,!1));else{s.push(l);var d=this.getVertexBounds(l);a=null==a?d.y:Math.min(a,d.y),i=null==i?d.x:Math.min(i,d.x),t=Math.max(t,Math.max(d.width,d.height))}}var c=this.getRadius(s.length,t);this.moveCircle&&(i=this.x0,a=this.y0),this.circle(s,c,i,a)}finally{n.endUpdate()}},mxCircleLayout.prototype.getRadius=function(e,n){return Math.max(e*n/Math.PI,this.radius)},mxCircleLayout.prototype.circle=function(e,n,t,a){for(var i=e.length,s=2*Math.PI/i,o=0;o<i;o++)this.isVertexMovable(e[o])&&this.setVertexLocation(e[o],t+n+n*Math.sin(o*s),a+n+n*Math.cos(o*s))},mxParallelEdgeLayout.prototype=new mxGraphLayout,mxParallelEdgeLayout.prototype.constructor=mxParallelEdgeLayout,mxParallelEdgeLayout.prototype.spacing=20,mxParallelEdgeLayout.prototype.execute=function(e){e=this.findParallels(e),this.graph.model.beginUpdate();try{for(var n in e){var t=e[n];1<t.length&&this.layout(t)}}finally{this.graph.model.endUpdate()}},mxParallelEdgeLayout.prototype.findParallels=function(e){for(var n=this.graph.getModel(),t=[],a=n.getChildCount(e),i=0;i<a;i++){var s=n.getChildAt(e,i);if(!this.isEdgeIgnored(s)){var o=this.getEdgeId(s);null!=o&&(null==t[o]&&(t[o]=[]),t[o].push(s))}}return t},mxParallelEdgeLayout.prototype.getEdgeId=function(e){var n=this.graph.getView(),t=n.getState(e),a=null!=t?t.getVisibleTerminal(!0):n.getVisibleTerminal(e,!0);return e=null!=t?t.getVisibleTerminal(!1):n.getVisibleTerminal(e,!1),null!=a&&null!=e?(a=mxCellPath.create(a),(e=mxCellPath.create(e))<a?e+"-"+a:a+"-"+e):null},mxParallelEdgeLayout.prototype.layout=function(e){var n=e[0];if((o=(t=this.graph.getModel()).getGeometry(t.getTerminal(n,!0)))==(s=t.getGeometry(t.getTerminal(n,!1)))){n=o.x+o.width+this.spacing;for(var t=o.y+o.height/2,a=0;a<e.length;a++)this.route(e[a],n,t),n+=this.spacing}else if(null!=o&&null!=s){n=o.x+o.width/2,t=o.y+o.height/2,a=s.x+s.width/2-n;var i=s.y+s.height/2-t,s=Math.sqrt(a*a+i*i),o=i*this.spacing/s;for(s=a*this.spacing/s,n=n+a/2+o*(e.length-1)/2,t=t+i/2-s*(e.length-1)/2,a=0;a<e.length;a++)this.route(e[a],n,t),n-=o,t+=s}},mxParallelEdgeLayout.prototype.route=function(e,n,t){this.graph.isCellMovable(e)&&this.setEdgePoints(e,[new mxPoint(n,t)])},mxCompositeLayout.prototype=new mxGraphLayout,mxCompositeLayout.prototype.constructor=mxCompositeLayout,mxCompositeLayout.prototype.layouts=null,mxCompositeLayout.prototype.master=null,mxCompositeLayout.prototype.moveCell=function(e,n,t){null!=this.master?this.master.move.apply(this.master,arguments):this.layouts[0].move.apply(this.layouts[0],arguments)},mxCompositeLayout.prototype.execute=function(e){var n=this.graph.getModel();n.beginUpdate();try{for(var t=0;t<this.layouts.length;t++)this.layouts[t].execute.apply(this.layouts[t],arguments)}finally{n.endUpdate()}},mxEdgeLabelLayout.prototype=new mxGraphLayout,mxEdgeLabelLayout.prototype.constructor=mxEdgeLabelLayout,mxEdgeLabelLayout.prototype.execute=function(e){for(var n=this.graph.view,t=this.graph.getModel(),a=[],i=[],s=t.getChildCount(e),o=0;o<s;o++){var r=t.getChildAt(e,o),l=n.getState(r);null!=l&&(this.isVertexIgnored(r)?this.isEdgeIgnored(r)||a.push(l):i.push(l))}this.placeLabels(i,a)},mxEdgeLabelLayout.prototype.placeLabels=function(e,n){var t=this.graph.getModel();t.beginUpdate();try{for(var a=0;a<n.length;a++){var i=n[a];if(null!=i&&null!=i.text&&null!=i.text.boundingBox)for(var s=0;s<e.length;s++){var o=e[s];null!=o&&this.avoid(i,o)}}}finally{t.endUpdate()}},mxEdgeLabelLayout.prototype.avoid=function(e,n){var t=this.graph.getModel(),a=e.text.boundingBox;if(mxUtils.intersects(a,n)){var i=-a.y-a.height+n.y,s=-a.y+n.y+n.height;i=Math.abs(i)<Math.abs(s)?i:s,s=-a.x-a.width+n.x,a=-a.x+n.x+n.width,a=Math.abs(s)<Math.abs(a)?s:a;Math.abs(a)<Math.abs(i)?i=0:a=0,null!=(s=t.getGeometry(e.cell))&&(null!=(s=s.clone()).offset?(s.offset.x+=a,s.offset.y+=i):s.offset=new mxPoint(a,i),t.setGeometry(e.cell,s))}},mxGraphAbstractHierarchyCell.prototype.maxRank=-1,mxGraphAbstractHierarchyCell.prototype.minRank=-1,mxGraphAbstractHierarchyCell.prototype.x=null,mxGraphAbstractHierarchyCell.prototype.y=null,mxGraphAbstractHierarchyCell.prototype.width=0,mxGraphAbstractHierarchyCell.prototype.height=0,mxGraphAbstractHierarchyCell.prototype.nextLayerConnectedCells=null,mxGraphAbstractHierarchyCell.prototype.previousLayerConnectedCells=null,mxGraphAbstractHierarchyCell.prototype.temp=null,mxGraphAbstractHierarchyCell.prototype.getNextLayerConnectedCells=function(e){return null},mxGraphAbstractHierarchyCell.prototype.getPreviousLayerConnectedCells=function(e){return null},mxGraphAbstractHierarchyCell.prototype.isEdge=function(){return!1},mxGraphAbstractHierarchyCell.prototype.isVertex=function(){return!1},mxGraphAbstractHierarchyCell.prototype.getGeneralPurposeVariable=function(e){return null},mxGraphAbstractHierarchyCell.prototype.setGeneralPurposeVariable=function(e,n){return null},mxGraphAbstractHierarchyCell.prototype.setX=function(e,n){this.isVertex()?this.x[0]=n:this.isEdge()&&(this.x[e-this.minRank-1]=n)},mxGraphAbstractHierarchyCell.prototype.getX=function(e){return this.isVertex()?this.x[0]:this.isEdge()?this.x[e-this.minRank-1]:0},mxGraphAbstractHierarchyCell.prototype.setY=function(e,n){this.isVertex()?this.y[0]=n:this.isEdge()&&(this.y[e-this.minRank-1]=n)},mxGraphHierarchyNode.prototype=new mxGraphAbstractHierarchyCell,mxGraphHierarchyNode.prototype.constructor=mxGraphHierarchyNode,mxGraphHierarchyNode.prototype.cell=null,mxGraphHierarchyNode.prototype.connectsAsTarget=[],mxGraphHierarchyNode.prototype.connectsAsSource=[],mxGraphHierarchyNode.prototype.hashCode=!1,mxGraphHierarchyNode.prototype.getRankValue=function(e){return this.maxRank},mxGraphHierarchyNode.prototype.getNextLayerConnectedCells=function(e){if(null==this.nextLayerConnectedCells){this.nextLayerConnectedCells=[],this.nextLayerConnectedCells[0]=[];for(var n=0;n<this.connectsAsTarget.length;n++){var t=this.connectsAsTarget[n];-1==t.maxRank||t.maxRank==e+1?this.nextLayerConnectedCells[0].push(t.source):this.nextLayerConnectedCells[0].push(t)}}return this.nextLayerConnectedCells[0]},mxGraphHierarchyNode.prototype.getPreviousLayerConnectedCells=function(e){if(null==this.previousLayerConnectedCells){this.previousLayerConnectedCells=[],this.previousLayerConnectedCells[0]=[];for(var n=0;n<this.connectsAsSource.length;n++){var t=this.connectsAsSource[n];-1==t.minRank||t.minRank==e-1?this.previousLayerConnectedCells[0].push(t.target):this.previousLayerConnectedCells[0].push(t)}}return this.previousLayerConnectedCells[0]},mxGraphHierarchyNode.prototype.isVertex=function(){return!0},mxGraphHierarchyNode.prototype.getGeneralPurposeVariable=function(e){return this.temp[0]},mxGraphHierarchyNode.prototype.setGeneralPurposeVariable=function(e,n){this.temp[0]=n},mxGraphHierarchyNode.prototype.isAncestor=function(e){if(null!=e&&null!=this.hashCode&&null!=e.hashCode&&this.hashCode.length<e.hashCode.length){if(this.hashCode==e.hashCode)return!0;if(null==this.hashCode||null==this.hashCode)return!1;for(var n=0;n<this.hashCode.length;n++)if(this.hashCode[n]!=e.hashCode[n])return!1;return!0}return!1},mxGraphHierarchyNode.prototype.getCoreCell=function(){return this.cell},mxGraphHierarchyEdge.prototype=new mxGraphAbstractHierarchyCell,mxGraphHierarchyEdge.prototype.constructor=mxGraphHierarchyEdge,mxGraphHierarchyEdge.prototype.edges=null,mxGraphHierarchyEdge.prototype.source=null,mxGraphHierarchyEdge.prototype.target=null,mxGraphHierarchyEdge.prototype.isReversed=!1,mxGraphHierarchyEdge.prototype.invert=function(e){e=this.source,this.source=this.target,this.target=e,this.isReversed=!this.isReversed},mxGraphHierarchyEdge.prototype.getNextLayerConnectedCells=function(e){if(null==this.nextLayerConnectedCells){this.nextLayerConnectedCells=[];for(var n=0;n<this.temp.length;n++)this.nextLayerConnectedCells[n]=[],n==this.temp.length-1?this.nextLayerConnectedCells[n].push(this.source):this.nextLayerConnectedCells[n].push(this)}return this.nextLayerConnectedCells[e-this.minRank-1]},mxGraphHierarchyEdge.prototype.getPreviousLayerConnectedCells=function(e){if(null==this.previousLayerConnectedCells){this.previousLayerConnectedCells=[];for(var n=0;n<this.temp.length;n++)this.previousLayerConnectedCells[n]=[],0==n?this.previousLayerConnectedCells[n].push(this.target):this.previousLayerConnectedCells[n].push(this)}return this.previousLayerConnectedCells[e-this.minRank-1]},mxGraphHierarchyEdge.prototype.isEdge=function(){return!0},mxGraphHierarchyEdge.prototype.getGeneralPurposeVariable=function(e){return this.temp[e-this.minRank-1]},mxGraphHierarchyEdge.prototype.setGeneralPurposeVariable=function(e,n){this.temp[e-this.minRank-1]=n},mxGraphHierarchyEdge.prototype.getCoreCell=function(){return null!=this.edges&&0<this.edges.length?this.edges[0]:null},mxGraphHierarchyModel.prototype.maxRank=null,mxGraphHierarchyModel.prototype.vertexMapper=null,mxGraphHierarchyModel.prototype.edgeMapper=null,mxGraphHierarchyModel.prototype.ranks=null,mxGraphHierarchyModel.prototype.roots=null,mxGraphHierarchyModel.prototype.parent=null,mxGraphHierarchyModel.prototype.dfsCount=0,mxGraphHierarchyModel.prototype.SOURCESCANSTARTRANK=1e8,mxGraphHierarchyModel.prototype.tightenToSource=!1,mxGraphHierarchyModel.prototype.createInternalCells=function(e,n,t){for(var a=e.getGraph(),i=0;i<n.length;i++){t[i]=new mxGraphHierarchyNode(n[i]);var s=mxCellPath.create(n[i]);this.vertexMapper[s]=t[i],s=e.getEdges(n[i]),t[i].connectsAsSource=[];for(var o=0;o<s.length;o++){if((d=e.getVisibleTerminal(s[o],!1))!=n[i]&&d!=n[i]&&e.graph.model.isVertex(d)&&!e.isVertexIgnored(d)){var r=e.getEdgesBetween(n[i],d,!1),l=e.getEdgesBetween(n[i],d,!0),d=mxCellPath.create(r[0]);if(null!=r&&0<r.length&&null==this.edgeMapper[d]&&2*l.length>=r.length){l=new mxGraphHierarchyEdge(r);for(var c=0;c<r.length;c++){var m=r[c];d=mxCellPath.create(m);this.edgeMapper[d]=l,a.resetEdge(m),e.disableEdgeStyle&&(e.setEdgeStyleEnabled(m,!1),e.setOrthogonalEdge(m,!0))}l.source=t[i],mxUtils.indexOf(t[i].connectsAsSource,l)<0&&t[i].connectsAsSource.push(l)}}}t[i].temp[0]=0}},mxGraphHierarchyModel.prototype.initialRank=function(){var e=[];if(null!=this.roots)for(var n=0;n<this.roots.length;n++){var t=mxCellPath.create(this.roots[n]);null!=(t=this.vertexMapper[t])&&e.push(t)}for(var a in this.vertexMapper)(t=this.vertexMapper[a]).temp[0]=-1;for(var i=e.slice();0<e.length;){var s,o;s=(t=e[0]).connectsAsTarget,o=t.connectsAsSource;var r=!0,l=this.SOURCESCANSTARTRANK;for(n=0;n<s.length;n++){var d=s[n];if(5270620!=d.temp[0]){r=!1;break}d=d.source,l=Math.min(l,d.temp[0]-1)}if(r){if(t.temp[0]=l,this.maxRank=Math.min(this.maxRank,l),null!=o)for(n=0;n<o.length;n++)(d=o[n]).temp[0]=5270620,-1==(d=d.target).temp[0]&&(e.push(d),d.temp[0]=-2);e.shift()}else if(n=e.shift(),e.push(t),n==t&&1==e.length)break}for(a in this.vertexMapper)(t=this.vertexMapper[a]).temp[0]-=this.maxRank;for(n=0;n<i.length;n++)for(e=0,s=(t=i[n]).connectsAsSource,a=0;a<s.length;a++)d=(d=s[a]).target,t.temp[0]=Math.max(e,d.temp[0]+1),e=t.temp[0];this.maxRank=this.SOURCESCANSTARTRANK-this.maxRank},mxGraphHierarchyModel.prototype.fixRanks=function(){var s=[];this.ranks=[];for(var e=0;e<this.maxRank+1;e++)s[e]=[],this.ranks[e]=s[e];var n=null;if(null!=this.roots){var t=this.roots;for(n=[],e=0;e<t.length;e++){var a=mxCellPath.create(t[e]);n[e]=this.vertexMapper[a]}}this.visit(function(e,n,t,a,i){if(0==i&&n.maxRank<0&&n.minRank<0&&(s[n.temp[0]].push(n),n.maxRank=n.temp[0],n.minRank=n.temp[0],n.temp[0]=s[n.maxRank].length-1),null!=e&&null!=t&&1<e.maxRank-n.maxRank)for(t.maxRank=e.maxRank,t.minRank=n.maxRank,t.temp=[],t.x=[],t.y=[],e=t.minRank+1;e<t.maxRank;e++)s[e].push(t),t.setGeneralPurposeVariable(e,s[e].length-1)},n,!1,null)},mxGraphHierarchyModel.prototype.visit=function(e,n,t,a){if(null!=n){for(var i=0;i<n.length;i++){var s=n[i];null!=s&&(null==a&&(a={}),t?(s.hashCode=[],s.hashCode[0]=this.dfsCount,s.hashCode[1]=i,this.extendedDfs(null,s,null,e,a,s.hashCode,i,0)):this.dfs(null,s,null,e,a,0))}this.dfsCount++}},mxGraphHierarchyModel.prototype.dfs=function(e,n,t,a,i,s){if(null!=n){var o=mxCellPath.create(n.cell);if(null==i[o])for(a(e,i[o]=n,t,s,0),e=n.connectsAsSource.slice(),t=0;t<e.length;t++)o=e[t],this.dfs(n,o.target,o,a,i,s+1);else a(e,n,t,s,1)}},mxGraphHierarchyModel.prototype.extendedDfs=function(e,n,t,a,i,s,o,r){if(null!=n)if(null==e||null!=n.hashCode&&n.hashCode[0]==e.hashCode[0]||(s=e.hashCode.length+1,n.hashCode=e.hashCode.slice(),n.hashCode[s-1]=o),null==i[o=mxCellPath.create(n.cell)])for(a(e,i[o]=n,t,r,0),e=n.connectsAsSource.slice(),t=0;t<e.length;t++)o=e[t],this.extendedDfs(n,o.target,o,a,i,n.hashCode,t,r+1);else a(e,n,t,r,1)},mxHierarchicalLayoutStage.prototype.execute=function(e){},mxMedianHybridCrossingReduction.prototype=new mxHierarchicalLayoutStage,mxMedianHybridCrossingReduction.prototype.constructor=mxMedianHybridCrossingReduction,mxMedianHybridCrossingReduction.prototype.layout=null,mxMedianHybridCrossingReduction.prototype.maxIterations=24,mxMedianHybridCrossingReduction.prototype.nestedBestRanks=null,mxMedianHybridCrossingReduction.prototype.currentBestCrossings=0,mxMedianHybridCrossingReduction.prototype.iterationsWithoutImprovement=0,mxMedianHybridCrossingReduction.prototype.maxNoImprovementIterations=2,mxMedianHybridCrossingReduction.prototype.execute=function(e){e=this.layout.getModel(),this.nestedBestRanks=[];for(var n=0;n<e.ranks.length;n++)this.nestedBestRanks[n]=e.ranks[n].slice();var t=0,a=this.calculateCrossings(e);for(n=0;n<this.maxIterations&&t<this.maxNoImprovementIterations;n++){this.weightedMedian(n,e),this.transpose(n,e);var i=this.calculateCrossings(e);if(i<a)for(a=i,i=t=0;i<this.nestedBestRanks.length;i++)for(var s=e.ranks[i],o=0;o<s.length;o++){var r=s[o];this.nestedBestRanks[i][r.getGeneralPurposeVariable(i)]=r}else for(t++,i=0;i<this.nestedBestRanks.length;i++)for(s=e.ranks[i],o=0;o<s.length;o++)(r=s[o]).setGeneralPurposeVariable(i,o);if(0==a)break}for(t=[],a=[],n=0;n<e.maxRank+1;n++)a[n]=[],t[n]=a[n];for(n=0;n<this.nestedBestRanks.length;n++)for(i=0;i<this.nestedBestRanks[n].length;i++)a[n].push(this.nestedBestRanks[n][i]);e.ranks=t},mxMedianHybridCrossingReduction.prototype.calculateCrossings=function(e){for(var n=e.ranks.length,t=0,a=1;a<n;a++)t+=this.calculateRankCrossing(a,e);return t},mxMedianHybridCrossingReduction.prototype.calculateRankCrossing=function(e,n){for(var t=0,a=n.ranks[e],i=a.length,s=n.ranks[e-1].length,o=[],r=0;r<i;r++)o[r]=[];for(r=0;r<a.length;r++)for(var l=(c=a[r]).getGeneralPurposeVariable(e),d=c.getPreviousLayerConnectedCells(e),c=0;c<d.length;c++){var m=d[c].getGeneralPurposeVariable(e-1);o[l][m]=201207}for(r=0;r<i;r++)for(c=0;c<s;c++)if(201207==o[r][c]){for(a=r+1;a<i;a++)for(l=0;l<c;l++)201207==o[a][l]&&t++;for(a=0;a<r;a++)for(l=c+1;l<s;l++)201207==o[a][l]&&t++}return t/2},mxMedianHybridCrossingReduction.prototype.transpose=function(e,n){for(var t=!0,a=0;t&&a++<10;)for(var i=1==e%2&&1==a%2,s=(t=!1,0);s<n.ranks.length;s++){for(var o=n.ranks[s],r=[],l=0;l<o.length;l++){(b=(f=o[l]).getGeneralPurposeVariable(s))<0&&(b=l),r[b]=f}var d=b=f=null,c=null,m=null,u=null,p=null,g=null,v=null,h=null;for(l=0;l<o.length-1;l++){if(0==l){for(var f=(v=r[l]).getNextLayerConnectedCells(s),b=v.getPreviousLayerConnectedCells(s),A=(m=[],u=[],0);A<f.length;A++)m[A]=f[A].getGeneralPurposeVariable(s+1);for(A=0;A<b.length;A++)u[A]=b[A].getGeneralPurposeVariable(s-1)}else f=d,b=c,m=p,u=g,v=h;for(d=(h=r[l+1]).getNextLayerConnectedCells(s),c=h.getPreviousLayerConnectedCells(s),p=[],g=[],A=0;A<d.length;A++)p[A]=d[A].getGeneralPurposeVariable(s+1);for(A=0;A<c.length;A++)g[A]=c[A].getGeneralPurposeVariable(s-1);var E=0,y=0;for(A=0;A<m.length;A++)for(var S=0;S<p.length;S++)m[A]>p[S]&&E++,m[A]<p[S]&&y++;for(A=0;A<u.length;A++)for(S=0;S<g.length;S++)u[A]>g[S]&&E++,u[A]<g[S]&&y++;(y<E||y==E&&i)&&(d=v.getGeneralPurposeVariable(s),v.setGeneralPurposeVariable(s,h.getGeneralPurposeVariable(s)),h.setGeneralPurposeVariable(s,d),d=f,c=b,p=m,g=u,h=v,i||(t=!0))}}},mxMedianHybridCrossingReduction.prototype.weightedMedian=function(e,n){var t=0==e%2;if(t)for(var a=n.maxRank-1;0<=a;a--)this.medianRank(a,t);else for(a=1;a<n.maxRank;a++)this.medianRank(a,t)},mxMedianHybridCrossingReduction.prototype.medianRank=function(e,n){for(var t=this.nestedBestRanks[e].length,a=[],i=[],s=0;s<t;s++){var o,r,l=this.nestedBestRanks[e][s],d=new MedianCellSorter;d.cell=l,r=n?e+1:e-1,null!=(o=n?l.getNextLayerConnectedCells(e):l.getPreviousLayerConnectedCells(e))&&0!=o.length?(d.medianValue=this.medianValue(o,r),a.push(d)):i[l.getGeneralPurposeVariable(e)]=!0}for(a.sort(MedianCellSorter.prototype.compare),s=0;s<t;s++)null==i[s]&&(l=a.shift().cell).setGeneralPurposeVariable(e,s)},mxMedianHybridCrossingReduction.prototype.medianValue=function(e,n){for(var t=[],a=0,i=0;i<e.length;i++){var s=e[i];t[a++]=s.getGeneralPurposeVariable(n)}return t.sort(function(e,n){return e-n}),1==a%2?t[Math.floor(a/2)]:2==a?(t[0]+t[1])/2:(s=t[(i=a/2)-1]-t[0],a=t[a-1]-t[i],(t[i-1]*a+t[i]*s)/(s+a))},MedianCellSorter.prototype.medianValue=0,MedianCellSorter.prototype.cell=!1,MedianCellSorter.prototype.compare=function(e,n){return null!=e&&null!=n?n.medianValue>e.medianValue?-1:n.medianValue<e.medianValue?1:0:0},mxMinimumCycleRemover.prototype=new mxHierarchicalLayoutStage,mxMinimumCycleRemover.prototype.constructor=mxMinimumCycleRemover,mxMinimumCycleRemover.prototype.layout=null,mxMinimumCycleRemover.prototype.execute=function(e){var n=this.layout.getModel(),s={},o=mxUtils.clone(n.vertexMapper,null,!0),t=null;if(null!=n.roots){var a=n.roots;t=[];for(e=0;e<a.length;e++){var i=mxCellPath.create(a[e]);t[e]=n.vertexMapper[i]}}if(n.visit(function(e,n,t,a,i){n.isAncestor(e)&&(t.invert(),mxUtils.remove(t,e.connectsAsSource),e.connectsAsTarget.push(t),mxUtils.remove(t,n.connectsAsTarget),n.connectsAsSource.push(t)),e=mxCellPath.create(n.cell),s[e]=n,delete o[e]},t,!0,null),t=null,0<o.lenth&&(t=mxUtils.clone(o,null,!0)),e=mxUtils.clone(s,null,!0),n.visit(function(e,n,t,a,i){n.isAncestor(e)&&(t.invert(),mxUtils.remove(t,e.connectsAsSource),n.connectsAsSource.push(t),e.connectsAsTarget.push(t),mxUtils.remove(t,n.connectsAsTarget)),e=mxCellPath.create(n.cell),s[e]=n,delete o[e]},o,!0,e),a=this.layout.getGraph(),null!=t&&0<t.length)for(n=n.roots,e=0;e<t.length;e++)i=t[e].cell,0==a.getIncomingEdges(i).length&&n.push(i)};var mxHierarchicalEdgeStyle={ORTHOGONAL:1,POLYLINE:2,STRAIGHT:3,CURVE:4};function WeightedCellSorter(e,n){this.cell=e,this.weightedValue=n}function mxHierarchicalLayout(e,n,t){mxGraphLayout.call(this,e),this.orientation=null!=n?n:mxConstants.DIRECTION_NORTH,this.deterministic=null==t||t}function mxGraphModel(e){this.currentEdit=this.createUndoableEdit(),null!=e?this.setRoot(e):this.clear()}function mxRootChange(e,n){this.model=e,this.previous=this.root=n}function mxChildChange(e,n,t,a){this.model=e,this.previous=this.parent=n,this.child=t,this.previousIndex=this.index=a}function mxTerminalChange(e,n,t,a){this.model=e,this.cell=n,this.previous=this.terminal=t,this.source=a}function mxValueChange(e,n,t){this.model=e,this.cell=n,this.previous=this.value=t}function mxStyleChange(e,n,t){this.model=e,this.cell=n,this.previous=this.style=t}function mxGeometryChange(e,n,t){this.model=e,this.cell=n,this.previous=this.geometry=t}function mxCollapseChange(e,n,t){this.model=e,this.cell=n,this.previous=this.collapsed=t}function mxVisibleChange(e,n,t){this.model=e,this.cell=n,this.previous=this.visible=t}function mxCellAttributeChange(e,n,t){this.cell=e,this.attribute=n,this.previous=this.value=t}function mxCell(e,n,t){this.value=e,this.setGeometry(n),this.setStyle(t),null!=this.onInit&&this.onInit()}function mxGeometry(e,n,t,a){mxRectangle.call(this,e,n,t,a)}mxCoordinateAssignment.prototype=new mxHierarchicalLayoutStage,mxCoordinateAssignment.prototype.constructor=mxCoordinateAssignment,mxCoordinateAssignment.prototype.layout=null,mxCoordinateAssignment.prototype.intraCellSpacing=30,mxCoordinateAssignment.prototype.interRankCellSpacing=100,mxCoordinateAssignment.prototype.parallelEdgeSpacing=10,mxCoordinateAssignment.prototype.maxIterations=8,mxCoordinateAssignment.prototype.prefHozEdgeSep=5,mxCoordinateAssignment.prototype.prefVertEdgeOff=2,mxCoordinateAssignment.prototype.minEdgeJetty=12,mxCoordinateAssignment.prototype.channelBuffer=4,mxCoordinateAssignment.prototype.jettyPositions=null,mxCoordinateAssignment.prototype.orientation=mxConstants.DIRECTION_NORTH,mxCoordinateAssignment.prototype.initialX=null,mxCoordinateAssignment.prototype.limitX=null,mxCoordinateAssignment.prototype.currentXDelta=null,mxCoordinateAssignment.prototype.widestRank=null,mxCoordinateAssignment.prototype.rankTopY=null,mxCoordinateAssignment.prototype.rankBottomY=null,mxCoordinateAssignment.prototype.widestRankValue=null,mxCoordinateAssignment.prototype.rankWidths=null,mxCoordinateAssignment.prototype.rankY=null,mxCoordinateAssignment.prototype.fineTuning=!0,mxCoordinateAssignment.prototype.edgeStyle=mxHierarchicalEdgeStyle.POLYLINE,mxCoordinateAssignment.prototype.nextLayerConnectedCache=null,mxCoordinateAssignment.prototype.previousLayerConnectedCache=null,mxCoordinateAssignment.prototype.groupPadding=10,mxCoordinateAssignment.prototype.printStatus=function(){var e=this.layout.getModel();mxLog.show(),mxLog.writeln("======Coord assignment debug=======");for(var n=0;n<e.ranks.length;n++){mxLog.write("Rank ",n," : ");for(var t=e.ranks[n],a=0;a<t.length;a++)mxLog.write(t[a].getGeneralPurposeVariable(n)," ");mxLog.writeln()}mxLog.writeln("====================================")},mxCoordinateAssignment.prototype.execute=function(e){this.jettyPositions=[],e=this.layout.getModel(),this.currentXDelta=0,this.initialCoords(this.layout.getGraph(),e),this.fineTuning&&this.minNode(e);var n=1e8;if(this.fineTuning)for(var t=0;t<this.maxIterations;t++){if(0!=t&&(this.medianPos(t,e),this.minNode(e)),this.currentXDelta<n){for(var a=0;a<e.ranks.length;a++)for(var i=e.ranks[a],s=0;s<i.length;s++){var o=i[s];o.setX(a,o.getGeneralPurposeVariable(a))}n=this.currentXDelta}else for(a=0;a<e.ranks.length;a++)for(i=e.ranks[a],s=0;s<i.length;s++)(o=i[s]).setGeneralPurposeVariable(a,o.getX(a));this.minPath(this.layout.getGraph(),e),this.currentXDelta=0}this.setCellLocations(this.layout.getGraph(),e)},mxCoordinateAssignment.prototype.minNode=function(e){for(var n=[],t=[],a=[],i=0;i<=e.maxRank;i++){a[i]=e.ranks[i];for(var s=0;s<a[i].length;s++){var o=a[i][s];(r=new WeightedCellSorter(o,i)).rankIndex=s,r.visited=!0,n.push(r),t[o=mxCellPath.create(o.getCoreCell())]=r}}for(e=10*n.length,s=0;0<n.length&&s<=e;){i=(r=n.shift()).cell;var r,l=r.weightedValue,d=parseInt(r.rankIndex),c=(o=i.getNextLayerConnectedCells(l),i.getPreviousLayerConnectedCells(l)),m=o.length,u=c.length,p=this.medianXValue(o,l+1),g=this.medianXValue(c,l-1),v=m+u,h=i.getGeneralPurposeVariable(l),f=h;if(0<v&&(f=(p*m+g*u)/v),m=!1,f<h-1?0==d?(i.setGeneralPurposeVariable(l,f),m=!0):(h=(h=(d=a[l][d-1]).getGeneralPurposeVariable(l))+d.width/2+this.intraCellSpacing+i.width/2)<f?(i.setGeneralPurposeVariable(l,f),m=!0):h<i.getGeneralPurposeVariable(l)-1&&(i.setGeneralPurposeVariable(l,h),m=!0):h+1<f&&(d==a[l].length-1?(i.setGeneralPurposeVariable(l,f),m=!0):f<(h=(h=(d=a[l][d+1]).getGeneralPurposeVariable(l))-d.width/2-this.intraCellSpacing-i.width/2)?(i.setGeneralPurposeVariable(l,f),m=!0):h>i.getGeneralPurposeVariable(l)+1&&(i.setGeneralPurposeVariable(l,h),m=!0)),m){for(i=0;i<o.length;i++)l=o[i],null!=(l=t[l=mxCellPath.create(l.getCoreCell())])&&0==l.visited&&(l.visited=!0,n.push(l));for(i=0;i<c.length;i++)l=c[i],null!=(l=t[l=mxCellPath.create(l.getCoreCell())])&&0==l.visited&&(l.visited=!0,n.push(l))}r.visited=!1,s++}},mxCoordinateAssignment.prototype.medianPos=function(e,n){if(0==e%2)for(var t=n.maxRank;0<t;t--)this.rankMedianPosition(t-1,n,t);else for(t=0;t<n.maxRank-1;t++)this.rankMedianPosition(t+1,n,t)},mxCoordinateAssignment.prototype.rankMedianPosition=function(e,n,t){n=n.ranks[e];for(var a=[],i=[],s=0;s<n.length;s++){var o=n[s];a[s]=new WeightedCellSorter,a[s].cell=o,a[s].rankIndex=s;var r=mxCellPath.create(o.getCoreCell());i[r]=a[s];var l=null;l=t<e?o.getPreviousLayerConnectedCells(e):o.getNextLayerConnectedCells(e);a[s].weightedValue=this.calculatedWeightedValue(o,l)}for(a.sort(WeightedCellSorter.prototype.compare),s=0;s<a.length;s++){r=0,o=a[s].cell,r=0,null!=(l=t<e?o.getPreviousLayerConnectedCells(e).slice():o.getNextLayerConnectedCells(e).slice())&&(r=0<(r=l.length)?this.medianXValue(l,t):o.getGeneralPurposeVariable(e));for(var d=0,c=(l=-1e8,a[s].rankIndex-1);0<=c;){var m;if(null!=(m=i[m=mxCellPath.create(n[c].getCoreCell())])){var u=m.cell;m.visited?(l=u.getGeneralPurposeVariable(e)+u.width/2+this.intraCellSpacing+d+o.width/2,c=-1):(d+=u.width+this.intraCellSpacing,c--)}}for(d=0,u=1e8,c=a[s].rankIndex+1;c<a.length;)if(null!=(m=i[m=mxCellPath.create(n[c].getCoreCell())])){var p=m.cell;m.visited?(u=p.getGeneralPurposeVariable(e)-p.width/2-this.intraCellSpacing-d-o.width/2,c=a.length):(d+=p.width+this.intraCellSpacing,c++)}l<=r&&r<=u?o.setGeneralPurposeVariable(e,r):r<l?(o.setGeneralPurposeVariable(e,l),this.currentXDelta+=l-r):u<r&&(o.setGeneralPurposeVariable(e,u),this.currentXDelta+=r-u),a[s].visited=!0}},mxCoordinateAssignment.prototype.calculatedWeightedValue=function(e,n){for(var t=0,a=0;a<n.length;a++){var i=n[a];e.isVertex()&&i.isVertex()?t++:t=e.isEdge()&&i.isEdge()?t+8:t+2}return t},mxCoordinateAssignment.prototype.medianXValue=function(e,n){if(0==e.length)return 0;for(var t=[],a=0;a<e.length;a++)t[a]=e[a].getGeneralPurposeVariable(n);return t.sort(function(e,n){return e-n}),1==e.length%2?t[Math.floor(e.length/2)]:(t[(a=e.length/2)-1]+t[a])/2},mxCoordinateAssignment.prototype.initialCoords=function(e,n){this.calculateWidestRank(e,n);for(var t=this.widestRank;0<=t;t--)t<n.maxRank&&this.rankCoordinates(t,e,n);for(t=this.widestRank+1;t<=n.maxRank;t++)0<t&&this.rankCoordinates(t,e,n)},mxCoordinateAssignment.prototype.rankCoordinates=function(e,n,t){n=t.ranks[e],t=0;for(var a=this.initialX+(this.widestRankValue-this.rankWidths[e])/2,i=!1,s=0;s<n.length;s++){var o=n[s];if(o.isVertex()){var r=this.layout.getVertexBounds(o.cell);null!=r?this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(o.width=r.width,o.height=r.height):(o.width=r.height,o.height=r.width):i=!0,t=Math.max(t,o.height)}else o.isEdge()&&(r=1,null!=o.edges?r=o.edges.length:mxLog.warn("edge.edges is null"),o.width=(r-1)*this.parallelEdgeSpacing);a+=o.width/2,o.setX(e,a),o.setGeneralPurposeVariable(e,a),a+=o.width/2,a+=this.intraCellSpacing}1==i&&mxLog.warn("At least one cell has no bounds")},mxCoordinateAssignment.prototype.calculateWidestRank=function(e,n){var t=-this.interRankCellSpacing,a=0;this.rankWidths=[],this.rankY=[];for(var i=n.maxRank;0<=i;i--){for(var s=0,o=n.ranks[i],r=this.initialX,l=!1,d=0;d<o.length;d++){var c=o[d];if(c.isVertex()){var m=this.layout.getVertexBounds(c.cell);null!=m?this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(c.width=m.width,c.height=m.height):(c.width=m.height,c.height=m.width):l=!0,s=Math.max(s,c.height)}else c.isEdge()&&(m=1,null!=c.edges?m=c.edges.length:mxLog.warn("edge.edges is null"),c.width=(m-1)*this.parallelEdgeSpacing);r+=c.width/2,c.setX(i,r),c.setGeneralPurposeVariable(i,r),r+=c.width/2,(r+=this.intraCellSpacing)>this.widestRankValue&&(this.widestRankValue=r,this.widestRank=i),this.rankWidths[i]=r}for(1==l&&mxLog.warn("At least one cell has no bounds"),this.rankY[i]=t,r=s/2+a/2+this.interRankCellSpacing,a=s,t=this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_WEST?t+r:t-r,d=0;d<o.length;d++)o[d].setY(i,t)}},mxCoordinateAssignment.prototype.minPath=function(e,n){var t,a=n.edgeMapper;for(t in a){var i=a[t];if(!(i.maxRank-i.minRank-1<1)){for(var s=i.getGeneralPurposeVariable(i.minRank+1),o=!0,r=0,l=i.minRank+2;l<i.maxRank;l++){s!=(d=i.getGeneralPurposeVariable(l))?(o=!1,s=d):r++}if(!o){o=s=0;var d=[],c=[],m=i.getGeneralPurposeVariable(i.minRank+1);for(l=i.minRank+1;l<i.maxRank-1;l++){var u=i.getX(l+1);m==u?(d[l-i.minRank-1]=m,s++):this.repositionValid(n,i,l+1,m)?(d[l-i.minRank-1]=m,s++):m=d[l-i.minRank-1]=u}for(m=i.getX(l),l=i.maxRank-1;l>i.minRank+1;l--)m==(u=i.getX(l-1))?(c[l-i.minRank-2]=m,o++):this.repositionValid(n,i,l-1,m)?(c[l-i.minRank-2]=m,o++):(c[l-i.minRank-2]=i.getX(l-1),m=u);if(r<o||r<s)if(s<=o)for(l=i.maxRank-2;l>i.minRank;l--)i.setX(l,c[l-i.minRank-1]);else if(o<s)for(l=i.minRank+2;l<i.maxRank;l++)i.setX(l,d[l-i.minRank-2])}}}},mxCoordinateAssignment.prototype.repositionValid=function(e,n,t,a){e=e.ranks[t];for(var i=-1,s=0;s<e.length;s++)if(n==e[s]){i=s;break}if(i<0)return!1;if(a<(s=n.getGeneralPurposeVariable(t))){if(0==i)return!0;if(!((t=(t=(e=e[i-1]).getGeneralPurposeVariable(t))+e.width/2+this.intraCellSpacing+n.width/2)<=a))return!1}else if(s<a){if(i==e.length-1)return!0;if(!(a<=(t=(t=(e=e[i+1]).getGeneralPurposeVariable(t))-e.width/2-this.intraCellSpacing-n.width/2)))return!1}return!0},mxCoordinateAssignment.prototype.setCellLocations=function(e,n){this.rankTopY=[],this.rankBottomY=[];for(var t=0;t<n.ranks.length;t++)this.rankTopY[t]=Number.MAX_VALUE,this.rankBottomY[t]=0;t=null,this.layout.resizeParent&&(t={});var a,i=n.edgeMapper,s=n.vertexMapper;for(a in s){var o=s[a];if(this.setVertexLocation(o),this.layout.resizeParent){o=e.model.getParent(o.cell);var r=mxCellPath.create(o);null==t[r]&&(t[r]=o)}}for(a in this.layout.resizeParent&&null!=t&&this.adjustParents(t),(this.edgeStyle==mxHierarchicalEdgeStyle.ORTHOGONAL||this.edgeStyle==mxHierarchicalEdgeStyle.POLYLINE||this.edgeStyle==mxHierarchicalEdgeStyle.CURVE)&&this.localEdgeProcessing(n),i)this.setEdgePosition(i[a])},mxCoordinateAssignment.prototype.adjustParents=function(e){var n,t=[];for(n in e)t.push(e[n]);this.layout.arrangeGroups(mxUtils.sortCells(t,!0),this.groupPadding)},mxCoordinateAssignment.prototype.localEdgeProcessing=function(e){for(var n=0;n<e.ranks.length;n++)for(var t=e.ranks[n],a=0;a<t.length;a++){var i=t[a];if(i.isVertex())for(var s=i.getPreviousLayerConnectedCells(n),o=n-1,r=0;r<2;r++){if(-1<o&&o<e.ranks.length&&null!=s&&0<s.length){for(var l=[],d=0;d<s.length;d++){var c=new WeightedCellSorter(s[d],s[d].getX(o));l.push(c)}l.sort(WeightedCellSorter.prototype.compare);var m=(c=i.x[0]-i.width/2)+i.width,u=s=0;for(o=[],d=0;d<l.length;d++){var p,g=l[d].cell;if(g.isVertex()){p=0==r?i.connectsAsSource:i.connectsAsTarget;for(var v=0;v<p.length;v++)p[v].source!=g&&p[v].target!=g||(s+=p[v].edges.length,u++,o.push(p[v]))}else s+=g.edges.length,u++,o.push(g)}for(i.width>(s+1)*this.prefHozEdgeSep+2*this.prefHozEdgeSep&&(c+=this.prefHozEdgeSep,m-=this.prefHozEdgeSep),c+=(l=(m-c)/s)/2,m=this.minEdgeJetty-this.prefVertEdgeOff,d=u=0;d<o.length;d++){for(g=o[d].edges.length,v=mxCellPath.create(o[d].edges[0]),null==(p=this.jettyPositions[v])&&(p=[],this.jettyPositions[v]=p),d<s/2?m+=this.prefVertEdgeOff:s/2<d&&(m-=this.prefVertEdgeOff),v=0;v<g;v++)p[4*v+2*r]=c,c+=l,p[4*v+2*r+1]=m;u=Math.max(u,m)}}s=i.getNextLayerConnectedCells(n),o=n+1}}},mxCoordinateAssignment.prototype.setEdgePosition=function(e){var n=0;if(101207!=e.temp[0]){var t=e.maxRank,a=e.minRank;t==a&&(t=e.source.maxRank,a=e.target.minRank);for(var i=0,s=mxCellPath.create(e.edges[0]),o=(s=this.jettyPositions[s],e.isReversed?e.target.cell:e.source.cell),r=this.layout.graph,l=0;l<e.edges.length;l++){var d=e.edges[l],c=this.layout.getVisibleTerminal(d,!0),m=r.model.getTerminal(d,!0),u=[],p=e.isReversed;if(c!=o&&(p=!p),null!=s){var g=p?2:0,v=p?this.rankTopY[a]:this.rankBottomY[t],h=s[4*i+1+g];p&&(h=-h),v+=h,g=s[4*i+g],m=r.model.getTerminal(d,!0),this.layout.isPort(m)&&r.model.getParent(m)==c&&(g=null!=(g=r.view.getState(m))?g.x:c.geometry.x+e.source.width*m.geometry.x),this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(u.push(new mxPoint(g,v)),this.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&u.push(new mxPoint(g,v+h))):(u.push(new mxPoint(v,g)),this.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&u.push(new mxPoint(v+h,g)))}for(g=e.x.length-1,v=h=-1,c=e.maxRank-1,p&&(g=0,h=e.x.length,v=1,c=e.minRank+1);e.maxRank!=e.minRank&&g!=h;g+=v){m=e.x[g]+n;var f=(this.rankTopY[c]+this.rankBottomY[c+1])/2,b=(this.rankTopY[c-1]+this.rankBottomY[c])/2;if(p){var A=f;f=b,b=A}this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(u.push(new mxPoint(m,f)),u.push(new mxPoint(m,b))):(u.push(new mxPoint(f,m)),u.push(new mxPoint(b,m))),this.limitX=Math.max(this.limitX,m),c+=v}null!=s&&(g=p?2:0,v=p?this.rankBottomY[t]:this.rankTopY[a],h=s[4*i+3-g],p&&(h=-h),v-=h,g=s[4*i+2-g],p=r.model.getTerminal(d,!1),c=this.layout.getVisibleTerminal(d,!1),this.layout.isPort(p)&&r.model.getParent(p)==c&&(g=null!=(g=r.view.getState(p))?g.x:c.geometry.x+e.target.width*p.geometry.x),this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?(this.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&u.push(new mxPoint(g,v-h)),u.push(new mxPoint(g,v))):(this.edgeStyle==mxHierarchicalEdgeStyle.CURVE&&u.push(new mxPoint(v-h,g)),u.push(new mxPoint(v,g)))),e.isReversed&&this.processReversedEdge(e,d),this.layout.setEdgePoints(d,u),n=0==n?this.parallelEdgeSpacing:0<n?-n:-n+this.parallelEdgeSpacing,i++}e.temp[0]=101207}},mxCoordinateAssignment.prototype.setVertexLocation=function(e){var n=e.cell,t=e.x[0]-e.width/2,a=e.y[0]-e.height/2;this.rankTopY[e.minRank]=Math.min(this.rankTopY[e.minRank],a),this.rankBottomY[e.minRank]=Math.max(this.rankBottomY[e.minRank],a+e.height),this.orientation==mxConstants.DIRECTION_NORTH||this.orientation==mxConstants.DIRECTION_SOUTH?this.layout.setVertexLocation(n,t,a):this.layout.setVertexLocation(n,a,t),this.limitX=Math.max(this.limitX,t+e.width)},mxCoordinateAssignment.prototype.processReversedEdge=function(e,n){},WeightedCellSorter.prototype.weightedValue=0,WeightedCellSorter.prototype.nudge=!1,WeightedCellSorter.prototype.visited=!1,WeightedCellSorter.prototype.rankIndex=null,WeightedCellSorter.prototype.cell=null,WeightedCellSorter.prototype.compare=function(e,n){return null!=e&&null!=n?n.weightedValue>e.weightedValue?-1:n.weightedValue<e.weightedValue?1:n.nudge?-1:1:0},mxHierarchicalLayout.prototype=new mxGraphLayout,mxHierarchicalLayout.prototype.constructor=mxHierarchicalLayout,mxHierarchicalLayout.prototype.roots=null,mxHierarchicalLayout.prototype.resizeParent=!1,mxHierarchicalLayout.prototype.moveParent=!1,mxHierarchicalLayout.prototype.parentBorder=0,mxHierarchicalLayout.prototype.intraCellSpacing=30,mxHierarchicalLayout.prototype.interRankCellSpacing=100,mxHierarchicalLayout.prototype.interHierarchySpacing=60,mxHierarchicalLayout.prototype.parallelEdgeSpacing=10,mxHierarchicalLayout.prototype.orientation=mxConstants.DIRECTION_NORTH,mxHierarchicalLayout.prototype.fineTuning=!0,mxHierarchicalLayout.prototype.tightenToSource=!0,mxHierarchicalLayout.prototype.disableEdgeStyle=!0,mxHierarchicalLayout.prototype.traverseAncestors=!0,mxHierarchicalLayout.prototype.model=null,mxHierarchicalLayout.prototype.edgesCache=null,mxHierarchicalLayout.prototype.getModel=function(){return this.model},mxHierarchicalLayout.prototype.execute=function(e,n){this.parent=e;var t=this.graph.model;if(this.edgesCache={},null!=n||null!=e){if(null!=n&&null!=e){for(var a=[],i=0;i<n.length;i++)t.isAncestor(e,n[i])&&a.push(n[i]);this.roots=a}else this.roots=n;t.beginUpdate();try{this.run(e),this.resizeParent&&!this.graph.isCellCollapsed(e)&&this.graph.updateGroupBounds([e],this.parentBorder,this.moveParent)}finally{t.endUpdate()}}},mxHierarchicalLayout.prototype.findRoots=function(e,n){var t=[];if(null!=e&&null!=n){var a,i=this.graph.model,s=null,o=-1e5;for(a in n){var r=n[a];if(i.isVertex(r)&&this.graph.isCellVisible(r)){for(var l=this.getEdges(r),d=0,c=0,m=0;m<l.length;m++)this.getVisibleTerminal(l[m],!0)==r?d++:c++;0==c&&0<d&&t.push(r),o<(l=d-c)&&(o=l,s=r)}}0==t.length&&null!=s&&t.push(s)}return t},mxHierarchicalLayout.prototype.getEdges=function(e){var n=mxCellPath.create(e);if(null!=this.edgesCache[n])return this.edgesCache[n];for(var t=this.graph.model,a=[],i=this.graph.isCellCollapsed(e),s=t.getChildCount(e),o=0;o<s;o++){var r=t.getChildAt(e,o);this.isPort(r)?a=a.concat(t.getEdges(r,!0,!0)):!i&&this.graph.isCellVisible(r)||(a=a.concat(t.getEdges(r,!0,!0)))}for(a=a.concat(t.getEdges(e,!0,!0)),t=[],o=0;o<a.length;o++)((i=this.getVisibleTerminal(a[o],!0))==(s=this.getVisibleTerminal(a[o],!1))||i!=s&&(s==e&&(null==this.parent||this.graph.isValidAncestor(i,this.parent,this.traverseAncestors))||i==e&&(null==this.parent||this.graph.isValidAncestor(s,this.parent,this.traverseAncestors))))&&t.push(a[o]);return this.edgesCache[n]=t},mxHierarchicalLayout.prototype.getVisibleTerminal=function(e,n){var t=null!=(t=this.graph.view.getState(e))?t.getVisibleTerminal(n):this.graph.view.getVisibleTerminal(e,n);return this.isPort(t)&&(t=this.graph.model.getParent(t)),t},mxHierarchicalLayout.prototype.run=function(e){var n=[],t=[];if(null==this.roots&&null!=e){var a={};this.filterDescendants(e,a),this.roots=[];var i,s=!0;for(i in a)if(null!=a[i]){s=!1;break}for(;!s;){var o=this.findRoots(e,a);for(s=0;s<o.length;s++){var r=[];n.push(r),this.traverse(o[s],!0,null,t,r,n,a)}for(s=0;s<o.length;s++)this.roots.push(o[s]);for(i in s=!0,a)if(null!=a[i]){s=!1;break}}}else for(s=0;s<roots.length;s++)r=[],n.push(r),traverse(roots.get(s),!0,null,t,r,n,null);for(s=t=0;s<n.length;s++){for(i in a=[],r=n[s])a.push(r[i]);this.model=new mxGraphHierarchyModel(this,a,this.roots,e,this.tightenToSource),this.cycleStage(e),this.layeringStage(),this.crossingStage(e),t=this.placementStage(t,e)}},mxHierarchicalLayout.prototype.filterDescendants=function(e,n){var t=this.graph.model;if(t.isVertex(e)&&e!=this.parent&&this.graph.isCellVisible(e)&&(n[mxCellPath.create(e)]=e),this.traverseAncestors||e==this.parent&&this.graph.isCellVisible(e))for(var a=t.getChildCount(e),i=0;i<a;i++){var s=t.getChildAt(e,i);this.isPort(s)||this.filterDescendants(s,n)}},mxHierarchicalLayout.prototype.isPort=function(e){return!!e.geometry.relative},mxHierarchicalLayout.prototype.getEdgesBetween=function(e,n,t){t=null!=t&&t;for(var a=this.getEdges(e),i=[],s=0;s<a.length;s++){var o=this.getVisibleTerminal(a[s],!0),r=this.getVisibleTerminal(a[s],!1);(o==e&&r==n||!t&&o==n&&r==e)&&i.push(a[s])}return i},mxHierarchicalLayout.prototype.traverse=function(e,n,t,a,i,s,o){if(null!=e&&null!=a){var r=mxCellPath.create(e);if(null!=a[r]||null!=o&&null==o[r]){if(null==i[r])for(t=0;t<s.length;t++)if(null!=(e=s[t])[r]){for(l in i)e[l]=i[l];return s.pop(),e}}else{null==i[r]&&(i[r]=e),null==a[r]&&(a[r]=e),delete o[r];var l=this.getEdges(e);for(t=0;t<l.length;t++)r=this.getVisibleTerminal(l[t],!0)==e,(!n||r)&&(r=this.getVisibleTerminal(l[t],!r),i=this.traverse(r,n,l[t],a,i,s,o))}}return i},mxHierarchicalLayout.prototype.cycleStage=function(e){new mxMinimumCycleRemover(this).execute(e)},mxHierarchicalLayout.prototype.layeringStage=function(){this.model.initialRank(),this.model.fixRanks()},mxHierarchicalLayout.prototype.crossingStage=function(e){new mxMedianHybridCrossingReduction(this).execute(e)},mxHierarchicalLayout.prototype.placementStage=function(e,n){var t=new mxCoordinateAssignment(this,this.intraCellSpacing,this.interRankCellSpacing,this.orientation,e,this.parallelEdgeSpacing);return t.fineTuning=this.fineTuning,t.execute(n),t.limitX+this.interHierarchySpacing},mxGraphModel.prototype=new mxEventSource,mxGraphModel.prototype.constructor=mxGraphModel,mxGraphModel.prototype.root=null,mxGraphModel.prototype.cells=null,mxGraphModel.prototype.maintainEdgeParent=!0,mxGraphModel.prototype.createIds=!0,mxGraphModel.prototype.prefix="",mxGraphModel.prototype.postfix="",mxGraphModel.prototype.nextId=0,mxGraphModel.prototype.currentEdit=null,mxGraphModel.prototype.updateLevel=0,mxGraphModel.prototype.endingUpdate=!1,mxGraphModel.prototype.clear=function(){this.setRoot(this.createRoot())},mxGraphModel.prototype.isCreateIds=function(){return this.createIds},mxGraphModel.prototype.setCreateIds=function(e){this.createIds=e},mxGraphModel.prototype.createRoot=function(){var e=new mxCell;return e.insert(new mxCell),e},mxGraphModel.prototype.getCell=function(e){return null!=this.cells?this.cells[e]:null},mxGraphModel.prototype.filterCells=function(e,n){var t=null;if(null!=e){t=[];for(var a=0;a<e.length;a++)n(e[a])&&t.push(e[a])}return t},mxGraphModel.prototype.getDescendants=function(e){return this.filterDescendants(null,e)},mxGraphModel.prototype.filterDescendants=function(e,n){var t=[];n=n||this.getRoot(),(null==e||e(n))&&t.push(n);for(var a=this.getChildCount(n),i=0;i<a;i++){var s=this.getChildAt(n,i);t=t.concat(this.filterDescendants(e,s))}return t},mxGraphModel.prototype.getRoot=function(e){var n=e||this.root;if(null!=e)for(;null!=e;)n=e,e=this.getParent(e);return n},mxGraphModel.prototype.setRoot=function(e){return this.execute(new mxRootChange(this,e)),e},mxGraphModel.prototype.rootChanged=function(e){var n=this.root;return this.root=e,this.nextId=0,this.cells=null,this.cellAdded(e),n},mxGraphModel.prototype.isRoot=function(e){return null!=e&&this.root==e},mxGraphModel.prototype.isLayer=function(e){return this.isRoot(this.getParent(e))},mxGraphModel.prototype.isAncestor=function(e,n){for(;null!=n&&n!=e;)n=this.getParent(n);return n==e},mxGraphModel.prototype.contains=function(e){return this.isAncestor(this.root,e)},mxGraphModel.prototype.getParent=function(e){return null!=e?e.getParent():null},mxGraphModel.prototype.add=function(e,n,t){if(n!=e&&null!=e&&null!=n){null==t&&(t=this.getChildCount(e));var a=e!=this.getParent(n);this.execute(new mxChildChange(this,e,n,t)),this.maintainEdgeParent&&a&&this.updateEdgeParents(n)}return n},mxGraphModel.prototype.cellAdded=function(e){if(null!=e){if(null==e.getId()&&this.createIds&&e.setId(this.createId(e)),null!=e.getId())if((n=this.getCell(e.getId()))!=e){for(;null!=n;)e.setId(this.createId(e)),n=this.getCell(e.getId());null==this.cells&&(this.cells={}),this.cells[e.getId()]=e}mxUtils.isNumeric(e.getId())&&(this.nextId=Math.max(this.nextId,e.getId()));for(var n=this.getChildCount(e),t=0;t<n;t++)this.cellAdded(this.getChildAt(e,t))}},mxGraphModel.prototype.createId=function(e){return e=this.nextId,this.nextId++,this.prefix+e+this.postfix},mxGraphModel.prototype.updateEdgeParents=function(e,n){n=n||this.getRoot(e);for(var t=this.getChildCount(e),a=0;a<t;a++){var i=this.getChildAt(e,a);this.updateEdgeParents(i,n)}for(i=this.getEdgeCount(e),t=[],a=0;a<i;a++)t.push(this.getEdgeAt(e,a));for(a=0;a<t.length;a++)i=t[a],this.isAncestor(n,i)&&this.updateEdgeParent(i,n)},mxGraphModel.prototype.updateEdgeParent=function(e,n){for(var t=this.getTerminal(e,!0),a=this.getTerminal(e,!1),i=null;null!=t&&!this.isEdge(t)&&null!=t.geometry&&t.geometry.relative;)t=this.getParent(t);for(;null!=a&&!this.isEdge(a)&&null!=a.geometry&&a.geometry.relative;)a=this.getParent(a);if(this.isAncestor(n,t)&&this.isAncestor(n,a)&&(null!=(i=t==a?this.getParent(t):this.getNearestCommonAncestor(t,a))&&(this.getParent(i)!=this.root||this.isAncestor(i,e))&&this.getParent(e)!=i)){if(null!=(t=this.getGeometry(e))){var s=this.getOrigin(this.getParent(e)),o=this.getOrigin(i);a=o.x-s.x,s=o.y-s.y;(t=t.clone()).translate(-a,-s),this.setGeometry(e,t)}this.add(i,e,this.getChildCount(i))}},mxGraphModel.prototype.getOrigin=function(e){var n=null;return null!=e?(n=this.getOrigin(this.getParent(e)),this.isEdge(e)||null!=(e=this.getGeometry(e))&&(n.x+=e.x,n.y+=e.y)):n=new mxPoint,n},mxGraphModel.prototype.getNearestCommonAncestor=function(e,n){if(null!=e&&null!=n&&(null!=(s=mxCellPath.create(n))&&0<s.length)){var t=e,a=mxCellPath.create(t);if(s.length<a.length){t=n;var i=a,s=(a=s,i)}for(;null!=t;){if(i=this.getParent(t),0==s.indexOf(a+mxCellPath.PATH_SEPARATOR)&&null!=i)return t;a=mxCellPath.getParentPath(a),t=i}}return null},mxGraphModel.prototype.remove=function(e){return e==this.root?this.setRoot(null):null!=this.getParent(e)&&this.execute(new mxChildChange(this,null,e)),e},mxGraphModel.prototype.cellRemoved=function(e){if(null!=e&&null!=this.cells){for(var n=this.getChildCount(e)-1;0<=n;n--)this.cellRemoved(this.getChildAt(e,n));null!=this.cells&&null!=e.getId()&&delete this.cells[e.getId()]}},mxGraphModel.prototype.parentForCellChanged=function(e,n,t){var a=this.getParent(e);return null!=n?(n!=a||a.getIndex(e)!=t)&&n.insert(e,t):null!=a&&(t=a.getIndex(e),a.remove(t)),this.contains(a)||null==n?null==n&&this.cellRemoved(e):this.cellAdded(e),a},mxGraphModel.prototype.getChildCount=function(e){return null!=e?e.getChildCount():0},mxGraphModel.prototype.getChildAt=function(e,n){return null!=e?e.getChildAt(n):null},mxGraphModel.prototype.getChildren=function(e){return null!=e?e.children:null},mxGraphModel.prototype.getChildVertices=function(e){return this.getChildCells(e,!0,!1)},mxGraphModel.prototype.getChildEdges=function(e){return this.getChildCells(e,!1,!0)},mxGraphModel.prototype.getChildCells=function(e,n,t){n=null!=n&&n,t=null!=t&&t;for(var a=this.getChildCount(e),i=[],s=0;s<a;s++){var o=this.getChildAt(e,s);(!t&&!n||t&&this.isEdge(o)||n&&this.isVertex(o))&&i.push(o)}return i},mxGraphModel.prototype.getTerminal=function(e,n){return null!=e?e.getTerminal(n):null},mxGraphModel.prototype.setTerminal=function(e,n,t){var a=n!=this.getTerminal(e,t);return this.execute(new mxTerminalChange(this,e,n,t)),this.maintainEdgeParent&&a&&this.updateEdgeParent(e,this.getRoot()),n},mxGraphModel.prototype.setTerminals=function(e,n,t){this.beginUpdate();try{this.setTerminal(e,n,!0),this.setTerminal(e,t,!1)}finally{this.endUpdate()}},mxGraphModel.prototype.terminalForCellChanged=function(e,n,t){var a=this.getTerminal(e,t);return null!=n?n.insertEdge(e,t):null!=a&&a.removeEdge(e,t),a},mxGraphModel.prototype.getEdgeCount=function(e){return null!=e?e.getEdgeCount():0},mxGraphModel.prototype.getEdgeAt=function(e,n){return null!=e?e.getEdgeAt(n):null},mxGraphModel.prototype.getDirectedEdgeCount=function(e,n,t){for(var a=0,i=this.getEdgeCount(e),s=0;s<i;s++){var o=this.getEdgeAt(e,s);o!=t&&this.getTerminal(o,n)==e&&a++}return a},mxGraphModel.prototype.getConnections=function(e){return this.getEdges(e,!0,!0,!1)},mxGraphModel.prototype.getIncomingEdges=function(e){return this.getEdges(e,!0,!1,!1)},mxGraphModel.prototype.getOutgoingEdges=function(e){return this.getEdges(e,!1,!0,!1)},mxGraphModel.prototype.getEdges=function(e,n,t,a){n=null==n||n,t=null==t||t,a=null==a||a;for(var i=this.getEdgeCount(e),s=[],o=0;o<i;o++){var r=this.getEdgeAt(e,o),l=this.getTerminal(r,!0),d=this.getTerminal(r,!1);(a&&l==d||l!=d&&(n&&d==e||t&&l==e))&&s.push(r)}return s},mxGraphModel.prototype.getEdgesBetween=function(e,n,t){t=null!=t&&t;var a=this.getEdgeCount(e),i=this.getEdgeCount(n),s=e,o=a;for(i<a&&(o=i,s=n),a=[],i=0;i<o;i++){var r=this.getEdgeAt(s,i),l=this.getTerminal(r,!0),d=this.getTerminal(r,!1);(l==e&&d==n||!t&&(d==e&&l==n))&&a.push(r)}return a},mxGraphModel.prototype.getOpposites=function(e,n,t,a){t=null==t||t,a=null==a||a;var i=[];if(null!=e)for(var s=0;s<e.length;s++){var o=this.getTerminal(e[s],!0),r=this.getTerminal(e[s],!1);o==n&&null!=r&&r!=n&&a?i.push(r):r==n&&null!=o&&o!=n&&t&&i.push(o)}return i},mxGraphModel.prototype.getTopmostCells=function(e){for(var n=[],t=0;t<e.length;t++){for(var a=e[t],i=!0,s=this.getParent(a);null!=s;){if(0<=mxUtils.indexOf(e,s)){i=!1;break}s=this.getParent(s)}i&&n.push(a)}return n},mxGraphModel.prototype.isVertex=function(e){return null!=e&&e.isVertex()},mxGraphModel.prototype.isEdge=function(e){return null!=e&&e.isEdge()},mxGraphModel.prototype.isConnectable=function(e){return null!=e&&e.isConnectable()},mxGraphModel.prototype.getValue=function(e){return null!=e?e.getValue():null},mxGraphModel.prototype.setValue=function(e,n){return this.execute(new mxValueChange(this,e,n)),n},mxGraphModel.prototype.valueForCellChanged=function(e,n){return e.valueChanged(n)},mxGraphModel.prototype.getGeometry=function(e,n){return null!=e?e.getGeometry():null},mxGraphModel.prototype.setGeometry=function(e,n){return n!=this.getGeometry(e)&&this.execute(new mxGeometryChange(this,e,n)),n},mxGraphModel.prototype.geometryForCellChanged=function(e,n){var t=this.getGeometry(e);return e.setGeometry(n),t},mxGraphModel.prototype.getStyle=function(e){return null!=e?e.getStyle():null},mxGraphModel.prototype.setStyle=function(e,n){return n!=this.getStyle(e)&&this.execute(new mxStyleChange(this,e,n)),n},mxGraphModel.prototype.styleForCellChanged=function(e,n){var t=this.getStyle(e);return e.setStyle(n),t},mxGraphModel.prototype.isCollapsed=function(e){return null!=e&&e.isCollapsed()},mxGraphModel.prototype.setCollapsed=function(e,n){return n!=this.isCollapsed(e)&&this.execute(new mxCollapseChange(this,e,n)),n},mxGraphModel.prototype.collapsedStateForCellChanged=function(e,n){var t=this.isCollapsed(e);return e.setCollapsed(n),t},mxGraphModel.prototype.isVisible=function(e){return null!=e&&e.isVisible()},mxGraphModel.prototype.setVisible=function(e,n){return n!=this.isVisible(e)&&this.execute(new mxVisibleChange(this,e,n)),n},mxGraphModel.prototype.visibleStateForCellChanged=function(e,n){var t=this.isVisible(e);return e.setVisible(n),t},mxGraphModel.prototype.execute=function(e){e.execute(),this.beginUpdate(),this.currentEdit.add(e),this.fireEvent(new mxEventObject(mxEvent.EXECUTE,"change",e)),this.fireEvent(new mxEventObject(mxEvent.EXECUTED,"change",e)),this.endUpdate()},mxGraphModel.prototype.beginUpdate=function(){this.updateLevel++,this.fireEvent(new mxEventObject(mxEvent.BEGIN_UPDATE)),1==this.updateLevel&&this.fireEvent(new mxEventObject(mxEvent.START_EDIT))},mxGraphModel.prototype.endUpdate=function(){if(this.updateLevel--,0==this.updateLevel&&this.fireEvent(new mxEventObject(mxEvent.END_EDIT)),!this.endingUpdate){this.endingUpdate=0==this.updateLevel,this.fireEvent(new mxEventObject(mxEvent.END_UPDATE,"edit",this.currentEdit));try{if(this.endingUpdate&&!this.currentEdit.isEmpty()){this.fireEvent(new mxEventObject(mxEvent.BEFORE_UNDO,"edit",this.currentEdit));var e=this.currentEdit;this.currentEdit=this.createUndoableEdit(),e.notify(),this.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",e))}}finally{this.endingUpdate=!1}}},mxGraphModel.prototype.createUndoableEdit=function(){var e=new mxUndoableEdit(this,!0);return e.notify=function(){e.source.fireEvent(new mxEventObject(mxEvent.CHANGE,"edit",e,"changes",e.changes)),e.source.fireEvent(new mxEventObject(mxEvent.NOTIFY,"edit",e,"changes",e.changes))},e},mxGraphModel.prototype.mergeChildren=function(e,n,t){t=null==t||t,this.beginUpdate();try{var a={};for(var i in this.mergeChildrenImpl(e,n,t,a),a){var s=a[i],o=this.getTerminal(s,!0);null!=o&&(o=a[mxCellPath.create(o)],this.setTerminal(s,o,!0)),null!=(o=this.getTerminal(s,!1))&&(o=a[mxCellPath.create(o)],this.setTerminal(s,o,!1))}}finally{this.endUpdate()}},mxGraphModel.prototype.mergeChildrenImpl=function(e,n,t,a){this.beginUpdate();try{for(var i=e.getChildCount(),s=0;s<i;s++){var o=e.getChildAt(s);if("function"==typeof o.getId){var r=o.getId(),l=null==r||this.isEdge(o)&&t?null:this.getCell(r);if(null==l){var d=o.clone();d.setId(r),d.setTerminal(o.getTerminal(!0),!0),d.setTerminal(o.getTerminal(!1),!1),l=n.insert(d),this.cellAdded(l)}a[mxCellPath.create(o)]=l,this.mergeChildrenImpl(o,l,t,a)}}}finally{this.endUpdate()}},mxGraphModel.prototype.getParents=function(e){var n=[];if(null!=e)for(var t={},a=0;a<e.length;a++){var i=this.getParent(e[a]);if(null!=i){var s=mxCellPath.create(i);null==t[s]&&(t[s]=i,n.push(i))}}return n},mxGraphModel.prototype.cloneCell=function(e){return null!=e?this.cloneCells([e],!0)[0]:null},mxGraphModel.prototype.cloneCells=function(e,n){for(var t={},a=[],i=0;i<e.length;i++)null!=e[i]?a.push(this.cloneCellImpl(e[i],t,n)):a.push(null);for(i=0;i<a.length;i++)null!=a[i]&&this.restoreClone(a[i],e[i],t);return a},mxGraphModel.prototype.cloneCellImpl=function(e,n,t){var a=this.cellCloned(e);if(n[mxObjectIdentity.get(e)]=a,t){t=this.getChildCount(e);for(var i=0;i<t;i++){var s=this.cloneCellImpl(this.getChildAt(e,i),n,!0);a.insert(s)}}return a},mxGraphModel.prototype.cellCloned=function(e){return e.clone()},mxGraphModel.prototype.restoreClone=function(e,n,t){null!=(a=this.getTerminal(n,!0))&&(null!=(a=t[mxObjectIdentity.get(a)])&&a.insertEdge(e,!0)),null!=(a=this.getTerminal(n,!1))&&(null!=(a=t[mxObjectIdentity.get(a)])&&a.insertEdge(e,!1));for(var a=this.getChildCount(e),i=0;i<a;i++)this.restoreClone(this.getChildAt(e,i),this.getChildAt(n,i),t)},mxRootChange.prototype.execute=function(){this.root=this.previous,this.previous=this.model.rootChanged(this.previous)},mxChildChange.prototype.execute=function(){var e=this.model.getParent(this.child),n=null!=e?e.getIndex(this.child):0;null==this.previous&&this.connect(this.child,!1),e=this.model.parentForCellChanged(this.child,this.previous,this.previousIndex),null!=this.previous&&this.connect(this.child,!0),this.parent=this.previous,this.previous=e,this.index=this.previousIndex,this.previousIndex=n},mxChildChange.prototype.connect=function(e,n){n=null==n||n;var t=e.getTerminal(!0),a=e.getTerminal(!1);for(null!=t&&(n?this.model.terminalForCellChanged(e,t,!0):this.model.terminalForCellChanged(e,null,!0)),null!=a&&(n?this.model.terminalForCellChanged(e,a,!1):this.model.terminalForCellChanged(e,null,!1)),e.setTerminal(t,!0),e.setTerminal(a,!1),t=this.model.getChildCount(e),a=0;a<t;a++)this.connect(this.model.getChildAt(e,a),n)},mxTerminalChange.prototype.execute=function(){this.terminal=this.previous,this.previous=this.model.terminalForCellChanged(this.cell,this.previous,this.source)},mxValueChange.prototype.execute=function(){this.value=this.previous,this.previous=this.model.valueForCellChanged(this.cell,this.previous)},mxStyleChange.prototype.execute=function(){this.style=this.previous,this.previous=this.model.styleForCellChanged(this.cell,this.previous)},mxGeometryChange.prototype.execute=function(){this.geometry=this.previous,this.previous=this.model.geometryForCellChanged(this.cell,this.previous)},mxCollapseChange.prototype.execute=function(){this.collapsed=this.previous,this.previous=this.model.collapsedStateForCellChanged(this.cell,this.previous)},mxVisibleChange.prototype.execute=function(){this.visible=this.previous,this.previous=this.model.visibleStateForCellChanged(this.cell,this.previous)},mxCellAttributeChange.prototype.execute=function(){var e=this.cell.getAttribute(this.attribute);null==this.previous?this.cell.value.removeAttribute(this.attribute):this.cell.setAttribute(this.attribute,this.previous),this.previous=e},mxCell.prototype.id=null,mxCell.prototype.value=null,mxCell.prototype.geometry=null,mxCell.prototype.style=null,mxCell.prototype.vertex=!1,mxCell.prototype.edge=!1,mxCell.prototype.connectable=!0,mxCell.prototype.visible=!0,mxCell.prototype.collapsed=!1,mxCell.prototype.parent=null,mxCell.prototype.source=null,mxCell.prototype.target=null,mxCell.prototype.children=null,mxCell.prototype.edges=null,mxCell.prototype.mxTransient="id value parent source target children edges".split(" "),mxCell.prototype.getId=function(){return this.id},mxCell.prototype.setId=function(e){this.id=e},mxCell.prototype.getValue=function(){return this.value},mxCell.prototype.setValue=function(e){this.value=e},mxCell.prototype.valueChanged=function(e){var n=this.getValue();return this.setValue(e),n},mxCell.prototype.getGeometry=function(){return this.geometry},mxCell.prototype.setGeometry=function(e){this.geometry=e},mxCell.prototype.getStyle=function(){return this.style},mxCell.prototype.setStyle=function(e){this.style=e},mxCell.prototype.isVertex=function(){return this.vertex},mxCell.prototype.setVertex=function(e){this.vertex=e},mxCell.prototype.isEdge=function(){return this.edge},mxCell.prototype.setEdge=function(e){this.edge=e},mxCell.prototype.isConnectable=function(){return this.connectable},mxCell.prototype.setConnectable=function(e){this.connectable=e},mxCell.prototype.isVisible=function(){return this.visible},mxCell.prototype.setVisible=function(e){this.visible=e},mxCell.prototype.isCollapsed=function(){return this.collapsed},mxCell.prototype.setCollapsed=function(e){this.collapsed=e},mxCell.prototype.getParent=function(){return this.parent},mxCell.prototype.setParent=function(e){this.parent=e},mxCell.prototype.getTerminal=function(e){return e?this.source:this.target},mxCell.prototype.setTerminal=function(e,n){return n?this.source=e:this.target=e,e},mxCell.prototype.getChildCount=function(){return null==this.children?0:this.children.length},mxCell.prototype.getIndex=function(e){return mxUtils.indexOf(this.children,e)},mxCell.prototype.getChildAt=function(e){return null==this.children?null:this.children[e]},mxCell.prototype.insert=function(e,n){return null!=e&&(null==n&&(n=this.getChildCount(),e.getParent()==this&&n--),e.removeFromParent(),e.setParent(this),null==this.children?(this.children=[],this.children.push(e)):this.children.splice(n,0,e)),e},mxCell.prototype.remove=function(e){var n=null;return null!=this.children&&0<=e&&(null!=(n=this.getChildAt(e))&&(this.children.splice(e,1),n.setParent(null))),n},mxCell.prototype.removeFromParent=function(){if(null!=this.parent){var e=this.parent.getIndex(this);this.parent.remove(e)}},mxCell.prototype.getEdgeCount=function(){return null==this.edges?0:this.edges.length},mxCell.prototype.getEdgeIndex=function(e){return mxUtils.indexOf(this.edges,e)},mxCell.prototype.getEdgeAt=function(e){return null==this.edges?null:this.edges[e]},mxCell.prototype.insertEdge=function(e,n){return null!=e&&(e.removeFromTerminal(n),e.setTerminal(this,n),null==this.edges||e.getTerminal(!n)!=this||mxUtils.indexOf(this.edges,e)<0)&&(null==this.edges&&(this.edges=[]),this.edges.push(e)),e},mxCell.prototype.removeEdge=function(e,n){if(null!=e){if(e.getTerminal(!n)!=this&&null!=this.edges){var t=this.getEdgeIndex(e);0<=t&&this.edges.splice(t,1)}e.setTerminal(null,n)}return e},mxCell.prototype.removeFromTerminal=function(e){var n=this.getTerminal(e);null!=n&&n.removeEdge(this,e)},mxCell.prototype.getAttribute=function(e,n){var t=this.getValue();return(null!=t&&t.nodeType==mxConstants.NODETYPE_ELEMENT?t.getAttribute(e):null)||n},mxCell.prototype.setAttribute=function(e,n){var t=this.getValue();null!=t&&t.nodeType==mxConstants.NODETYPE_ELEMENT&&t.setAttribute(e,n)},mxCell.prototype.clone=function(){var e=mxUtils.clone(this,this.mxTransient);return e.setValue(this.cloneValue()),e},mxCell.prototype.cloneValue=function(){var e=this.getValue();return null!=e&&("function"==typeof e.clone?e=e.clone():isNaN(e.nodeType)||(e=e.cloneNode(!0))),e},mxGeometry.prototype=new mxRectangle,mxGeometry.prototype.constructor=mxGeometry,mxGeometry.prototype.TRANSLATE_CONTROL_POINTS=!0,mxGeometry.prototype.alternateBounds=null,mxGeometry.prototype.sourcePoint=null,mxGeometry.prototype.targetPoint=null,mxGeometry.prototype.points=null,mxGeometry.prototype.offset=null,mxGeometry.prototype.relative=!1,mxGeometry.prototype.swap=function(){if(null!=this.alternateBounds){var e=new mxRectangle(this.x,this.y,this.width,this.height);this.x=this.alternateBounds.x,this.y=this.alternateBounds.y,this.width=this.alternateBounds.width,this.height=this.alternateBounds.height,this.alternateBounds=e}},mxGeometry.prototype.getTerminalPoint=function(e){return e?this.sourcePoint:this.targetPoint},mxGeometry.prototype.setTerminalPoint=function(e,n){return n?this.sourcePoint=e:this.targetPoint=e,e},mxGeometry.prototype.translate=function(e,n){if(this.clone(),this.relative||(this.x+=e,this.y+=n),null!=this.sourcePoint&&(this.sourcePoint.x+=e,this.sourcePoint.y+=n),null!=this.targetPoint&&(this.targetPoint.x+=e,this.targetPoint.y+=n),this.TRANSLATE_CONTROL_POINTS&&null!=this.points)for(var t=this.points.length,a=0;a<t;a++){var i=this.points[a];null!=i&&(i.x+=e,i.y+=n)}};var mxCellPath={PATH_SEPARATOR:".",create:function(e){var n="";if(null!=e)for(var t=e.getParent();null!=t;)n=t.getIndex(e)+mxCellPath.PATH_SEPARATOR+n,t=(e=t).getParent();return 1<(e=n.length)&&(n=n.substring(0,e-1)),n},getParentPath:function(e){if(null!=e){var n=e.lastIndexOf(mxCellPath.PATH_SEPARATOR);if(0<=n)return e.substring(0,n);if(0<e.length)return""}return null},resolve:function(e,n){var t=e;if(null!=n)for(var a=n.split(mxCellPath.PATH_SEPARATOR),i=0;i<a.length;i++)t=t.getChildAt(parseInt(a[i]));return t},compare:function(e,n){for(var t=Math.min(e.length,n.length),a=0,i=0;i<t;i++)if(e[i]!=n[i]){a=0==e[i].length||0==n[i].length?e[i]==n[i]?0:e[i]>n[i]?1:-1:(t=parseInt(e[i]))==(i=parseInt(n[i]))?0:i<t?1:-1;break}return 0==a&&((t=e.length)!=(i=n.length)&&(a=i<t?1:-1)),a}},mxPerimeter={RectanglePerimeter:function(e,n,t,a){n=e.getCenterX();var i=e.getCenterY(),s=Math.atan2(t.y-i,t.x-n),o=new mxPoint(0,0),r=Math.PI,l=Math.PI/2-s,d=Math.atan2(e.height,e.width);return s<-r+d||r-d<s?(o.x=e.x,o.y=i-e.width*Math.tan(s)/2):s<-d?(o.y=e.y,o.x=n-e.height*Math.tan(l)/2):s<d?(o.x=e.x+e.width,o.y=i+e.width*Math.tan(s)/2):(o.y=e.y+e.height,o.x=n+e.height*Math.tan(l)/2),a&&(t.x>=e.x&&t.x<=e.x+e.width?o.x=t.x:t.y>=e.y&&t.y<=e.y+e.height&&(o.y=t.y),t.x<e.x?o.x=e.x:t.x>e.x+e.width&&(o.x=e.x+e.width),t.y<e.y?o.y=e.y:t.y>e.y+e.height&&(o.y=e.y+e.height)),o},EllipsePerimeter:function(e,n,t,a){var i=e.x,s=e.y,o=e.width/2,r=e.height/2,l=i+o,d=s+r;n=t.x,t=t.y;var c=parseInt(n-l),m=parseInt(t-d);if(0==c&&0!=m)return new mxPoint(l,d+r*m/Math.abs(m));if(0==c&&0==m)return new mxPoint(n,t);if(a){if(s<=t&&t<=s+e.height)return e=t-d,e=Math.sqrt(o*o*(1-e*e/(r*r)))||0,n<=i&&(e=-e),new mxPoint(l+e,t);if(i<=n&&n<=i+e.width)return e=n-l,e=Math.sqrt(r*r*(1-e*e/(o*o)))||0,t<=s&&(e=-e),new mxPoint(n,d+e)}return d-=(i=m/c)*l,l=i*(o=(-(e=-2*l*(s=o*o*i*i+r*r))+(r=Math.sqrt(e*e-4*s*(o*o*i*i*l*l+r*r*l*l-o*o*r*r))))/(2*s))+d,d=i*(r=(-e-r)/(2*s))+d,i=Math.sqrt(Math.pow(o-n,2)+Math.pow(l-t,2)),n=Math.sqrt(Math.pow(r-n,2)+Math.pow(d-t,2)),s=t=0,s=i<n?(t=o,l):(t=r,d),new mxPoint(t,s)},RhombusPerimeter:function(e,n,t,a){n=e.x;var i=e.y,s=e.width,o=n+s/2,r=i+(e=e.height)/2,l=t.x;if(t=t.y,o==l)return new mxPoint(o,t<r?i:i+e);if(r==t)return new mxPoint(l<o?n:n+s,r);var d=o,c=r;return a&&(n<=l&&l<=n+s?d=l:i<=t&&t<=i+e&&(c=t)),l<o?t<r?mxUtils.intersection(l,t,d,c,o,i,n,r):mxUtils.intersection(l,t,d,c,o,i+e,n,r):t<r?mxUtils.intersection(l,t,d,c,o,i,n+s,r):mxUtils.intersection(l,t,d,c,o,i+e,n+s,r)},TrianglePerimeter:function(e,n,t,a){var i=(n=null!=n?n.style[mxConstants.STYLE_DIRECTION]:null)==mxConstants.DIRECTION_NORTH||n==mxConstants.DIRECTION_SOUTH,s=e.x,o=e.y,r=e.width,l=s+r/2,d=o+(e=e.height)/2,c=new mxPoint(s,o),m=new mxPoint(s+r,d),u=new mxPoint(s,o+e);n==mxConstants.DIRECTION_NORTH?(c=u,m=new mxPoint(l,o),u=new mxPoint(s+r,o+e)):n==mxConstants.DIRECTION_SOUTH?(m=new mxPoint(l,o+e),u=new mxPoint(s+r,o)):n==mxConstants.DIRECTION_WEST&&(c=new mxPoint(s+r,o),m=new mxPoint(s,d),u=new mxPoint(s+r,o+e));var p=t.x-l,g=t.y-d,v=(p=i?Math.atan2(p,g):Math.atan2(g,p),i?Math.atan2(r,e):Math.atan2(e,r));g=!1,g=n==mxConstants.DIRECTION_NORTH||n==mxConstants.DIRECTION_WEST?-v<p&&p<v:p<-Math.PI+v||p>Math.PI-v,v=null;return null==(v=g?a&&(i&&t.x>=c.x&&t.x<=u.x||!i&&t.y>=c.y&&t.y<=u.y)?i?new mxPoint(t.x,c.y):new mxPoint(c.x,t.y):n==mxConstants.DIRECTION_NORTH?new mxPoint(s+r/2+e*Math.tan(p)/2,o+e):n==mxConstants.DIRECTION_SOUTH?new mxPoint(s+r/2-e*Math.tan(p)/2,o):n==mxConstants.DIRECTION_WEST?new mxPoint(s+r,o+e/2+r*Math.tan(p)/2):new mxPoint(s,o+e/2-r*Math.tan(p)/2):(a&&(a=new mxPoint(l,d),t.y>=o&&t.y<=o+e?(a.x=i?l:n==mxConstants.DIRECTION_WEST?s+r:s,a.y=t.y):t.x>=s&&t.x<=s+r&&(a.x=t.x,a.y=i?n==mxConstants.DIRECTION_NORTH?o+e:o:d),l=a.x,d=a.y),i&&t.x<=s+r/2||!i&&t.y<=o+e/2?mxUtils.intersection(t.x,t.y,l,d,c.x,c.y,m.x,m.y):mxUtils.intersection(t.x,t.y,l,d,m.x,m.y,u.x,u.y)))&&(v=new mxPoint(l,d)),v}};function mxPrintPreview(e,n,t,a,i,s,o,r,l){this.graph=e,this.scale=null!=n?n:1/e.pageScale,this.border=null!=a?a:0,this.pageFormat=null!=t?t:e.pageFormat,this.title=null!=r?r:"Printer-friendly version",this.x0=null!=i?i:0,this.y0=null!=s?s:0,this.borderColor=o,this.pageSelector=null==l||l}function mxStylesheet(){this.styles={},this.putDefaultVertexStyle(this.createDefaultVertexStyle()),this.putDefaultEdgeStyle(this.createDefaultEdgeStyle())}function mxCellState(e,n,t){this.view=e,this.cell=n,this.style=t,this.origin=new mxPoint,this.absoluteOffset=new mxPoint}function mxGraphSelectionModel(e){this.graph=e,this.cells=[]}function mxSelectionChange(e,n,t){this.selectionModel=e,this.added=null!=n?n.slice():null,this.removed=null!=t?t.slice():null}function mxCellEditor(e){this.graph=e}function mxCellRenderer(){}mxPrintPreview.prototype.graph=null,mxPrintPreview.prototype.pageFormat=null,mxPrintPreview.prototype.scale=null,mxPrintPreview.prototype.border=0,mxPrintPreview.prototype.x0=0,mxPrintPreview.prototype.y0=0,mxPrintPreview.prototype.autoOrigin=!0,mxPrintPreview.prototype.printOverlays=!1,mxPrintPreview.prototype.borderColor=null,mxPrintPreview.prototype.title=null,mxPrintPreview.prototype.pageSelector=null,mxPrintPreview.prototype.wnd=null,mxPrintPreview.prototype.pageCount=0,mxPrintPreview.prototype.getWindow=function(){return this.wnd},mxPrintPreview.prototype.getDoctype=function(){var e="";return 8==document.documentMode&&(e='<meta http-equiv="X-UA-Compatible" content="IE=8">'),e},mxPrintPreview.prototype.open=function(e){var n=this.graph.cellRenderer.initializeOverlay,t=null;try{if(this.printOverlays&&(this.graph.cellRenderer.initializeOverlay=function(e,n){n.init(e.view.getDrawPane())}),null==this.wnd){this.wnd=window.open();var a=this.wnd.document,i=this.getDoctype();null!=i&&0<i.length&&a.writeln(i),a.writeln("<html>"),a.writeln("<head>"),this.writeHead(a,e),a.writeln("</head>"),a.writeln('<body class="mxPage">'),mxClient.link("stylesheet",mxClient.basePath+"/css/common.css",a),mxClient.IS_VML&&(a.namespaces.add("v","urn:schemas-microsoft-com:vml"),a.namespaces.add("o","urn:schemas-microsoft-com:office:office"),a.createStyleSheet().cssText="v\\:*{behavior:url(#default#VML)}o\\:*{behavior:url(#default#VML)}",mxClient.link("stylesheet",mxClient.basePath+"/css/explorer.css",a));var s=this.graph.getGraphBounds().clone(),o=this.graph.getView().getScale(),r=o/this.scale,l=this.graph.getView().getTranslate();this.autoOrigin||(this.x0=-l.x*this.scale,this.y0=-l.y*this.scale,s.width+=s.x,s.height+=s.y,s.x=0,this.border=s.y=0),s.width/=r,s.height/=r;var d=this.pageFormat.width-2*this.border,c=this.pageFormat.height-2*this.border,m=Math.max(1,Math.ceil((s.width+this.x0)/d)),u=Math.max(1,Math.ceil((s.height+this.y0)/c));this.pageCount=m*u;var p=mxUtils.bind(this,function(){if(this.pageSelector&&(1<u||1<m)){var e=this.createPageSelector(u,m);if(a.body.appendChild(e),mxClient.IS_IE){e.style.position="absolute";var n=function(){e.style.top=a.body.scrollTop+10+"px"};mxEvent.addListener(this.wnd,"scroll",function(e){n()}),mxEvent.addListener(this.wnd,"resize",function(e){n()})}}});if(e=function(e,n){if(null!=this.borderColor&&(e.style.borderColor=this.borderColor,e.style.borderStyle="solid",e.style.borderWidth="1px"),e.style.background="white",n&&(e.style.pageBreakAfter="always"),mxClient.IS_IE?(a.writeln(e.outerHTML),e.parentNode.removeChild(e)):(e.parentNode.removeChild(e),a.body.appendChild(e)),n){var t=a.createElement("hr");t.className="mxPageBreak",a.body.appendChild(t)}},null!=(f=this.getCoverPages(this.pageFormat.width,this.pageFormat.height)))for(var g=0;g<f.length;g++)e(f[g],!0);var v=this.getAppendices(this.pageFormat.width,this.pageFormat.height);for(g=0;g<u;g++)for(var h=g*c/this.scale-this.y0/this.scale+(s.y-l.y*o)/o,f=0;f<m;f++){if(null==this.wnd)return null;var b=f*d/this.scale-this.x0/this.scale+(s.x-l.x*o)/o,A=g*m+f+1;(t=this.renderPage(this.pageFormat.width,this.pageFormat.height,mxUtils.bind(this,function(e){this.addGraphFragment(-b,-h,this.scale,A,e)}))).setAttribute("id","mxPage-"+A),e(t,null!=v||g<u-1||f<m-1)}if(null!=v)for(g=0;g<v.length;g++)e(v[g],g<v.length);a.writeln("</body>"),a.writeln("</html>"),a.close(),p(),mxEvent.release(a.body)}this.wnd.focus()}catch(e){null!=t&&null!=t.parentNode&&t.parentNode.removeChild(t)}finally{this.graph.cellRenderer.initializeOverlay=n}return this.wnd},mxPrintPreview.prototype.writeHead=function(e,n){null!=this.title&&e.writeln("<title>"+this.title+"</title>"),e.writeln('<style type="text/css">'),e.writeln("@media print {"),e.writeln(" table.mxPageSelector { display: none; }"),e.writeln(" hr.mxPageBreak { display: none; }"),e.writeln("}"),e.writeln("@media screen {"),e.writeln(" table.mxPageSelector { position: fixed; right: 10px; top: 10px;font-family: Arial; font-size:10pt; border: solid 1px darkgray;background: white; border-collapse:collapse; }"),e.writeln(" table.mxPageSelector td { border: solid 1px gray; padding:4px; }"),e.writeln(" body.mxPage { background: gray; }"),e.writeln("}"),null!=n&&e.writeln(n),e.writeln("</style>")},mxPrintPreview.prototype.createPageSelector=function(e,n){var t=this.wnd.document,a=t.createElement("table");a.className="mxPageSelector",a.setAttribute("border","0");for(var i=t.createElement("tbody"),s=0;s<e;s++){for(var o=t.createElement("tr"),r=0;r<n;r++){var l=s*n+r+1,d=t.createElement("td");if(!mxClient.IS_NS||mxClient.IS_SF||mxClient.IS_GC){var c=t.createElement("a");c.setAttribute("href","#mxPage-"+l),mxUtils.write(c,l,t),d.appendChild(c)}else mxUtils.write(d,l,t);o.appendChild(d)}i.appendChild(o)}return a.appendChild(i),a},mxPrintPreview.prototype.renderPage=function(e,n,t){var a=document.createElement("div");try{a.style.width=e+"px",a.style.height=n+"px",a.style.overflow="hidden",a.style.pageBreakInside="avoid",a.style.position="relative";var i=document.createElement("div");i.style.top=this.border+"px",i.style.left=this.border+"px",i.style.width=e-2*this.border+"px",i.style.height=n-2*this.border+"px",i.style.overflow="hidden",this.graph.dialect==mxConstants.DIALECT_VML&&(i.style.position="absolute"),a.appendChild(i),document.body.appendChild(a),t(i)}catch(e){throw a.parentNode.removeChild(a),e}return a},mxPrintPreview.prototype.addGraphFragment=function(e,n,t,a,i){a=this.graph.getView();var s=this.graph.container;this.graph.container=i;var o=a.getCanvas(),r=a.getBackgroundPane(),l=a.getDrawPane(),d=a.getOverlayPane();this.graph.dialect==mxConstants.DIALECT_SVG?a.createSvg():this.graph.dialect==mxConstants.DIALECT_VML?a.createVml():a.createHtml();var c=a.isEventsEnabled();a.setEventsEnabled(!1);var m=this.graph.isEnabled();this.graph.setEnabled(!1);var u=a.getTranslate();a.translate=new mxPoint(e,n),e=null;try{var p=[this.graph.getModel().getRoot()];e=new mxTemporaryCellStates(a,t,p)}finally{if(mxClient.IS_IE)a.overlayPane.innerHTML="";else for(t=i.firstChild;null!=t;)p=t.nextSibling,"svg"==(n=t.nodeName.toLowerCase())?(t.setAttribute("width",parseInt(i.style.width)),t.setAttribute("height",parseInt(i.style.height))):"default"!=t.style.cursor&&"table"!=n&&t.parentNode.removeChild(t),t=p;a.overlayPane.parentNode.removeChild(a.overlayPane),this.graph.setEnabled(m),this.graph.container=s,a.canvas=o,a.backgroundPane=r,a.drawPane=l,a.overlayPane=d,a.translate=u,e.destroy(),a.setEventsEnabled(c)}},mxPrintPreview.prototype.getCoverPages=function(){return null},mxPrintPreview.prototype.getAppendices=function(){return null},mxPrintPreview.prototype.print=function(){var e=this.open();null!=e&&e.print()},mxPrintPreview.prototype.close=function(){null!=this.wnd&&(this.wnd.close(),this.wnd=null)},mxStylesheet.prototype.createDefaultVertexStyle=function(){var e={};return e[mxConstants.STYLE_SHAPE]=mxConstants.SHAPE_RECTANGLE,e[mxConstants.STYLE_PERIMETER]=mxPerimeter.RectanglePerimeter,e[mxConstants.STYLE_VERTICAL_ALIGN]=mxConstants.ALIGN_MIDDLE,e[mxConstants.STYLE_ALIGN]=mxConstants.ALIGN_CENTER,e[mxConstants.STYLE_FILLCOLOR]="#C3D9FF",e[mxConstants.STYLE_STROKECOLOR]="#6482B9",e[mxConstants.STYLE_FONTCOLOR]="#774400",e},mxStylesheet.prototype.createDefaultEdgeStyle=function(){var e={};return e[mxConstants.STYLE_SHAPE]=mxConstants.SHAPE_CONNECTOR,e[mxConstants.STYLE_ENDARROW]=mxConstants.ARROW_CLASSIC,e[mxConstants.STYLE_VERTICAL_ALIGN]=mxConstants.ALIGN_MIDDLE,e[mxConstants.STYLE_ALIGN]=mxConstants.ALIGN_CENTER,e[mxConstants.STYLE_STROKECOLOR]="#6482B9",e[mxConstants.STYLE_FONTCOLOR]="#446299",e},mxStylesheet.prototype.putDefaultVertexStyle=function(e){this.putCellStyle("defaultVertex",e)},mxStylesheet.prototype.putDefaultEdgeStyle=function(e){this.putCellStyle("defaultEdge",e)},mxStylesheet.prototype.getDefaultVertexStyle=function(){return this.styles.defaultVertex},mxStylesheet.prototype.getDefaultEdgeStyle=function(){return this.styles.defaultEdge},mxStylesheet.prototype.putCellStyle=function(e,n){this.styles[e]=n},mxStylesheet.prototype.getCellStyle=function(e,n){var t=n;if(null!=e&&0<e.length)for(var a=e.split(";"),i=(t=null!=t&&";"!=e.charAt(0)?mxUtils.clone(t):{},0);i<a.length;i++){var s=(o=a[i]).indexOf("=");if(0<=s){var o,r=o.substring(0,s);(o=o.substring(s+1))==mxConstants.NONE?delete t[r]:mxUtils.isNumeric(o)?t[r]=parseFloat(o):t[r]=o}else if(null!=(o=this.styles[o]))for(r in o)t[r]=o[r]}return t},mxCellState.prototype=new mxRectangle,mxCellState.prototype.constructor=mxCellState,mxCellState.prototype.view=null,mxCellState.prototype.cell=null,mxCellState.prototype.style=null,mxCellState.prototype.invalid=!0,mxCellState.prototype.invalidOrder=!1,mxCellState.prototype.orderChanged=!1,mxCellState.prototype.origin=null,mxCellState.prototype.absolutePoints=null,mxCellState.prototype.absoluteOffset=null,mxCellState.prototype.visibleSourceState=null,mxCellState.prototype.visibleTargetState=null,mxCellState.prototype.terminalDistance=0,mxCellState.prototype.length=0,mxCellState.prototype.segments=null,mxCellState.prototype.shape=null,mxCellState.prototype.text=null,mxCellState.prototype.getPerimeterBounds=function(e,n){if(e=e||0,n=null!=n?n:new mxRectangle(this.x,this.y,this.width,this.height),null!=this.shape&&null!=this.shape.stencil){var t=this.shape.stencil.computeAspect(this.style,n.x,n.y,n.width,n.height);n.x=t.x,n.y=t.y,n.width=this.shape.stencil.w0*t.width,n.height=this.shape.stencil.h0*t.height}return 0!=e&&n.grow(e),n},mxCellState.prototype.setAbsoluteTerminalPoint=function(e,n){n?(null==this.absolutePoints&&(this.absolutePoints=[]),0==this.absolutePoints.length?this.absolutePoints.push(e):this.absolutePoints[0]=e):null==this.absolutePoints?(this.absolutePoints=[],this.absolutePoints.push(null),this.absolutePoints.push(e)):1==this.absolutePoints.length?this.absolutePoints.push(e):this.absolutePoints[this.absolutePoints.length-1]=e},mxCellState.prototype.setCursor=function(e){null!=this.shape&&this.shape.setCursor(e),null!=this.text&&this.text.setCursor(e)},mxCellState.prototype.getVisibleTerminal=function(e){return null!=(e=this.getVisibleTerminalState(e))?e.cell:null},mxCellState.prototype.getVisibleTerminalState=function(e){return e?this.visibleSourceState:this.visibleTargetState},mxCellState.prototype.setVisibleTerminalState=function(e,n){n?this.visibleSourceState=e:this.visibleTargetState=e},mxCellState.prototype.destroy=function(){this.view.graph.cellRenderer.destroy(this)},mxCellState.prototype.clone=function(){var e=new mxCellState(this.view,this.cell,this.style);if(null!=this.absolutePoints){e.absolutePoints=[];for(var n=0;n<this.absolutePoints.length;n++)e.absolutePoints[n]=this.absolutePoints[n].clone()}return null!=this.origin&&(e.origin=this.origin.clone()),null!=this.absoluteOffset&&(e.absoluteOffset=this.absoluteOffset.clone()),null!=this.boundingBox&&(e.boundingBox=this.boundingBox.clone()),e.terminalDistance=this.terminalDistance,e.segments=this.segments,e.length=this.length,e.x=this.x,e.y=this.y,e.width=this.width,e.height=this.height,e},mxGraphSelectionModel.prototype=new mxEventSource,mxGraphSelectionModel.prototype.constructor=mxGraphSelectionModel,mxGraphSelectionModel.prototype.doneResource="none"!=mxClient.language?"done":"",mxGraphSelectionModel.prototype.updatingSelectionResource="none"!=mxClient.language?"updatingSelection":"",mxGraphSelectionModel.prototype.graph=null,mxGraphSelectionModel.prototype.singleSelection=!1,mxGraphSelectionModel.prototype.isSingleSelection=function(){return this.singleSelection},mxGraphSelectionModel.prototype.setSingleSelection=function(e){this.singleSelection=e},mxGraphSelectionModel.prototype.isSelected=function(e){return null!=e&&0<=mxUtils.indexOf(this.cells,e)},mxGraphSelectionModel.prototype.isEmpty=function(){return 0==this.cells.length},mxGraphSelectionModel.prototype.clear=function(){this.changeSelection(null,this.cells)},mxGraphSelectionModel.prototype.setCell=function(e){null!=e&&this.setCells([e])},mxGraphSelectionModel.prototype.setCells=function(e){if(null!=e){this.singleSelection&&(e=[this.getFirstSelectableCell(e)]);for(var n=[],t=0;t<e.length;t++)this.graph.isCellSelectable(e[t])&&n.push(e[t]);this.changeSelection(n,this.cells)}},mxGraphSelectionModel.prototype.getFirstSelectableCell=function(e){if(null!=e)for(var n=0;n<e.length;n++)if(this.graph.isCellSelectable(e[n]))return e[n];return null},mxGraphSelectionModel.prototype.addCell=function(e){null!=e&&this.addCells([e])},mxGraphSelectionModel.prototype.addCells=function(e){if(null!=e){var n=null;this.singleSelection&&(n=this.cells,e=[this.getFirstSelectableCell(e)]);for(var t=[],a=0;a<e.length;a++)!this.isSelected(e[a])&&this.graph.isCellSelectable(e[a])&&t.push(e[a]);this.changeSelection(t,n)}},mxGraphSelectionModel.prototype.removeCell=function(e){null!=e&&this.removeCells([e])},mxGraphSelectionModel.prototype.removeCells=function(e){if(null!=e){for(var n=[],t=0;t<e.length;t++)this.isSelected(e[t])&&n.push(e[t]);this.changeSelection(null,n)}},mxGraphSelectionModel.prototype.changeSelection=function(e,n){if(null!=e&&0<e.length&&null!=e[0]||null!=n&&0<n.length&&null!=n[0]){var t=new mxSelectionChange(this,e,n);t.execute();var a=new mxUndoableEdit(this,!1);a.add(t),this.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",a))}},mxGraphSelectionModel.prototype.cellAdded=function(e){null!=e&&!this.isSelected(e)&&this.cells.push(e)},mxGraphSelectionModel.prototype.cellRemoved=function(e){null!=e&&(0<=(e=mxUtils.indexOf(this.cells,e))&&this.cells.splice(e,1))},mxSelectionChange.prototype.execute=function(){var e=mxLog.enter("mxSelectionChange.execute");if(window.status=mxResources.get(this.selectionModel.updatingSelectionResource)||this.selectionModel.updatingSelectionResource,null!=this.removed)for(var n=0;n<this.removed.length;n++)this.selectionModel.cellRemoved(this.removed[n]);if(null!=this.added)for(n=0;n<this.added.length;n++)this.selectionModel.cellAdded(this.added[n]);n=this.added,this.added=this.removed,this.removed=n,window.status=mxResources.get(this.selectionModel.doneResource)||this.selectionModel.doneResource,mxLog.leave("mxSelectionChange.execute",e),this.selectionModel.fireEvent(new mxEventObject(mxEvent.CHANGE,"added",this.added,"removed",this.removed))},mxCellEditor.prototype.graph=null,mxCellEditor.prototype.textarea=null,mxCellEditor.prototype.editingCell=null,mxCellEditor.prototype.trigger=null,mxCellEditor.prototype.modified=!1,mxCellEditor.prototype.autoSize=!0,mxCellEditor.prototype.emptyLabelText="",mxCellEditor.prototype.textNode="",mxCellEditor.prototype.init=function(){this.textarea=document.createElement("textarea"),this.textarea.className="mxCellEditor",this.textarea.style.position="absolute",this.textarea.style.overflow="visible",this.textarea.setAttribute("cols","20"),this.textarea.setAttribute("rows","4"),mxClient.IS_NS&&(this.textarea.style.resize="none"),mxEvent.addListener(this.textarea,"blur",mxUtils.bind(this,function(e){this.focusLost()})),mxEvent.addListener(this.textarea,"keydown",mxUtils.bind(this,function(e){mxEvent.isConsumed(e)||(113==e.keyCode||this.graph.isEnterStopsCellEditing()&&13==e.keyCode&&!mxEvent.isControlDown(e)&&!mxEvent.isShiftDown(e)?(this.graph.stopEditing(!1),mxEvent.consume(e)):27==e.keyCode?(this.graph.stopEditing(!0),mxEvent.consume(e)):(this.clearOnChange&&(this.clearOnChange=!1,this.textarea.value=""),this.setModified(!0)))})),mxEvent.addListener(this.textarea,"keypress",mxUtils.bind(this,function(e){this.autoSize&&!mxEvent.isConsumed(e)&&setTimeout(mxUtils.bind(this,function(){this.resize()}),0)}))},mxCellEditor.prototype.resize=function(){if(null!=this.textDiv){var e=this.graph.getView().getState(this.editingCell),n=this.graph.isLabelClipped(e.cell),t=this.graph.isWrapping(e.cell);if(this.graph.getModel().isEdge(e.cell))this.bounds.x=e.absoluteOffset.x,this.bounds.y=e.absoluteOffset.y,this.bounds.width=0,this.bounds.height=0;else if(null!=this.bounds){this.bounds.x=e.x,this.bounds.y=e.y,this.bounds.width=e.width,this.bounds.height=e.height,(a=mxUtils.getValue(e.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER))==mxConstants.ALIGN_LEFT?this.bounds.x-=e.width:a==mxConstants.ALIGN_RIGHT&&(this.bounds.x+=e.width),(a=mxUtils.getValue(e.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE))==mxConstants.ALIGN_TOP?this.bounds.y-=e.height:a==mxConstants.ALIGN_BOTTOM&&(this.bounds.y+=e.height)}"\n"!=(a=this.textarea.value).charAt(a.length-1)&&""!=a||(a+=" "),a=mxUtils.htmlEntities(a,!1),t?(this.textDiv.style.whiteSpace="normal",this.textDiv.style.width=this.bounds.width+"px"):a=a.replace(/ /g," "),a=a.replace(/\n/g,"<br/>"),this.textDiv.innerHTML=a;var a=this.textDiv.offsetWidth+30,i=this.textDiv.offsetHeight+16;a=Math.max(a,40),i=Math.max(i,20);n&&(a=Math.min(this.bounds.width-4,a),i=Math.min(this.bounds.height,i));var s=null!=e.text?e.text.margin:null;null==s&&(s=mxUtils.getValue(e.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),e=mxUtils.getValue(e.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE),s=mxUtils.getAlignmentAsPoint(s,e)),null!=s&&(!n&&t||(this.textarea.style.left=Math.max(0,Math.round(this.bounds.x-s.x*this.bounds.width+s.x*a)-3)+"px"),this.textarea.style.top=Math.max(0,Math.round(this.bounds.y-s.y*this.bounds.height+s.y*i)+4)+"px"),!n&&t||(this.textarea.style.width=a+"px"),this.textarea.style.height=i+"px"}},mxCellEditor.prototype.isModified=function(){return this.modified},mxCellEditor.prototype.setModified=function(e){this.modified=e},mxCellEditor.prototype.focusLost=function(){this.stopEditing(!this.graph.isInvokesStopCellEditing())},mxCellEditor.prototype.startEditing=function(e,n){null==this.textarea&&this.init(),this.stopEditing(!0);var t=this.graph.getView().getState(e);if(null!=t){this.editingCell=e,this.trigger=n,(this.textNode=null)!=t.text&&this.isHideLabel(t)&&(this.textNode=t.text.node,this.textNode.style.visibility="hidden");var a=this.graph.getView().scale,i=(a=mxUtils.getValue(t.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE)*a,mxUtils.getValue(t.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY)),s=mxUtils.getValue(t.style,mxConstants.STYLE_FONTCOLOR,"black"),o=mxUtils.getValue(t.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),r=(mxUtils.getValue(t.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD,l=(mxUtils.getValue(t.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,d=(mxUtils.getValue(t.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE;this.textarea.style.fontSize=Math.round(a)+"px",this.textarea.style.lineHeight=Math.round(a*mxConstants.LINE_HEIGHT)+"px",this.textarea.style.fontFamily=i,this.textarea.style.textAlign=o,this.textarea.style.color=s,this.textarea.style.fontWeight=r?"bold":"normal",this.textarea.style.fontStyle=l?"italic":"",this.textarea.style.textDecoration=d?"underline":"",this.textarea.style.overflow="auto",this.textarea.style.outline="none",this.bounds=a=this.getEditorBounds(t),this.textarea.style.left=a.x+"px",this.textarea.style.top=a.y+"px",this.textarea.style.width=a.width+"px",this.textarea.style.height=a.height+"px",this.textarea.style.zIndex=5,null==(t=this.getInitialValue(t,n))||0==t.length?(t=this.getEmptyLabelText(),this.clearOnChange=!0):this.clearOnChange=!1,this.setModified(!1),this.textarea.value=t,this.graph.container.appendChild(this.textarea),"none"!=this.textarea.style.display&&(this.autoSize&&(this.textDiv=this.createTextDiv(),document.body.appendChild(this.textDiv),this.resize()),this.textarea.focus(),this.textarea.select())}},mxCellEditor.prototype.createTextDiv=function(){var e=document.createElement("div"),n=e.style;return n.position="absolute",n.whiteSpace="nowrap",n.visibility="hidden",n.display=mxClient.IS_QUIRKS?"inline":"inline-block",n.zoom="1",n.verticalAlign="top",n.lineHeight=this.textarea.style.lineHeight,n.fontSize=this.textarea.style.fontSize,n.fontFamily=this.textarea.style.fontFamily,n.fontWeight=this.textarea.style.fontWeight,n.textAlign=this.textarea.style.textAlign,n.fontStyle=this.textarea.style.fontStyle,n.textDecoration=this.textarea.style.textDecoration,e},mxCellEditor.prototype.stopEditing=function(e){null!=this.editingCell&&(null!=this.textNode&&(this.textNode.style.visibility="visible",this.textNode=null),!e&&this.isModified()&&this.graph.labelChanged(this.editingCell,this.getCurrentValue(),this.trigger),null!=this.textDiv&&(document.body.removeChild(this.textDiv),this.textDiv=null),this.bounds=this.trigger=this.editingCell=null,this.textarea.blur(),this.textarea.parentNode.removeChild(this.textarea))},mxCellEditor.prototype.getInitialValue=function(e,n){return this.graph.getEditingValue(e.cell,n)},mxCellEditor.prototype.getCurrentValue=function(){return this.textarea.value.replace(/\r/g,"")},mxCellEditor.prototype.isHideLabel=function(e){return!0},mxCellEditor.prototype.getMinimumSize=function(e){var n=this.graph.getView().scale;return new mxRectangle(0,0,null==e.text?30:e.text.size*n+20,"left"==this.textarea.style.textAlign?120:40)},mxCellEditor.prototype.getEditorBounds=function(e){var n=this.graph.getModel().isEdge(e.cell),t=this.graph.getView().scale,a=(i=this.getMinimumSize(e)).width,i=i.height,s=parseInt(e.style[mxConstants.STYLE_SPACING]||2)*t,o=parseInt(e.style[mxConstants.STYLE_SPACING_TOP]||0)*t+s,r=parseInt(e.style[mxConstants.STYLE_SPACING_RIGHT]||0)*t+s,l=parseInt(e.style[mxConstants.STYLE_SPACING_BOTTOM]||0)*t+s;t=parseInt(e.style[mxConstants.STYLE_SPACING_LEFT]||0)*t+s,r=new mxRectangle(e.x,e.y,Math.max(a,e.width-t-r),Math.max(i,e.height-o-l));return n?(r.x=e.absoluteOffset.x,r.y=e.absoluteOffset.y,null!=e.text&&null!=e.text.boundingBox&&(0<e.text.boundingBox.x&&(r.x=e.text.boundingBox.x),0<e.text.boundingBox.y&&(r.y=e.text.boundingBox.y))):null!=e.text&&null!=e.text.boundingBox&&(r.x=Math.min(r.x,e.text.boundingBox.x),r.y=Math.min(r.y,e.text.boundingBox.y)),r.x+=t,r.y+=o,null!=e.text&&null!=e.text.boundingBox&&(n?(r.width=Math.max(a,e.text.boundingBox.width),r.height=Math.max(i,e.text.boundingBox.height)):(r.width=Math.max(r.width,e.text.boundingBox.width),r.height=Math.max(r.height,e.text.boundingBox.height))),this.graph.getModel().isVertex(e.cell)&&((n=mxUtils.getValue(e.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER))==mxConstants.ALIGN_LEFT?r.x-=e.width:n==mxConstants.ALIGN_RIGHT&&(r.x+=e.width),(n=mxUtils.getValue(e.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE))==mxConstants.ALIGN_TOP?r.y-=e.height:n==mxConstants.ALIGN_BOTTOM&&(r.y+=e.height)),r},mxCellEditor.prototype.getEmptyLabelText=function(e){return this.emptyLabelText},mxCellEditor.prototype.getEditingCell=function(){return this.editingCell},mxCellEditor.prototype.destroy=function(){null!=this.textarea&&(mxEvent.release(this.textarea),null!=this.textarea.parentNode&&this.textarea.parentNode.removeChild(this.textarea),this.textarea=null)},mxCellRenderer.prototype.defaultEdgeShape=mxConnector,mxCellRenderer.prototype.defaultVertexShape=mxRectangleShape,mxCellRenderer.prototype.defaultTextShape=mxText,mxCellRenderer.prototype.legacyControlPosition=!0,mxCellRenderer.prototype.defaultShapes={},mxCellRenderer.registerShape=function(e,n){mxCellRenderer.prototype.defaultShapes[e]=n},mxCellRenderer.registerShape(mxConstants.SHAPE_RECTANGLE,mxRectangleShape),mxCellRenderer.registerShape(mxConstants.SHAPE_ELLIPSE,mxEllipse),mxCellRenderer.registerShape(mxConstants.SHAPE_RHOMBUS,mxRhombus),mxCellRenderer.registerShape(mxConstants.SHAPE_CYLINDER,mxCylinder),mxCellRenderer.registerShape(mxConstants.SHAPE_CONNECTOR,mxConnector),mxCellRenderer.registerShape(mxConstants.SHAPE_ACTOR,mxActor),mxCellRenderer.registerShape(mxConstants.SHAPE_TRIANGLE,mxTriangle),mxCellRenderer.registerShape(mxConstants.SHAPE_HEXAGON,mxHexagon),mxCellRenderer.registerShape(mxConstants.SHAPE_CLOUD,mxCloud),mxCellRenderer.registerShape(mxConstants.SHAPE_LINE,mxLine),mxCellRenderer.registerShape(mxConstants.SHAPE_ARROW,mxArrow),mxCellRenderer.registerShape(mxConstants.SHAPE_DOUBLE_ELLIPSE,mxDoubleEllipse),mxCellRenderer.registerShape(mxConstants.SHAPE_SWIMLANE,mxSwimlane),mxCellRenderer.registerShape(mxConstants.SHAPE_IMAGE,mxImageShape),mxCellRenderer.registerShape(mxConstants.SHAPE_LABEL,mxLabel),mxCellRenderer.prototype.initialize=function(e,n){var t=e.view.graph.getModel();null!=e.view.graph.container&&null==e.shape&&e.cell!=e.view.currentRoot&&(t.isVertex(e.cell)||t.isEdge(e.cell))&&(this.createShape(e),null==e.shape||null!=n&&!n||(this.initializeShape(e),e.view.graph.ordered||t.isEdge(e.cell)?e.invalidOrder=!0:e.view.graph.keepEdgesInForeground&&null!=this.firstEdge&&(this.firstEdge.parentNode==e.shape.node.parentNode?this.insertState(e,this.firstEdge):this.firstEdge=null),e.shape.scale=e.view.scale,this.createCellOverlays(e),this.installListeners(e)))},mxCellRenderer.prototype.initializeShape=function(e){e.shape.init(e.view.getDrawPane())},mxCellRenderer.prototype.getPreviousStateInContainer=function(e,n){for(var t=null,a=e.view.graph,i=a.getModel(),s=e.cell,o=i.getParent(s);null!=o&&null==t;)t=this.findPreviousStateInContainer(a,o,s,n),s=o,o=i.getParent(s);return t},mxCellRenderer.prototype.findPreviousStateInContainer=function(e,n,t,a){var i=null,s=e.getModel();for(t=null!=t?n.getIndex(t)-1:s.getChildCount(n)-1;0<=t&&null==i;t--)i=this.findPreviousStateInContainer(e,s.getChildAt(n,t),null,a);return null!=i||(null==(i=e.view.getState(n))||null!=i.shape&&null!=i.shape.node&&i.shape.node.parentNode==a)||(i=null),i},mxCellRenderer.prototype.order=function(e){var n=e.shape.node.parentNode,t=this.getPreviousStateInContainer(e,n),a=n.firstChild;null!=t&&(a=t.shape.node,null!=t.text&&null!=t.text.node&&t.text.node.parentNode==n&&(a=t.text.node),a=a.nextSibling),this.insertState(e,a)},mxCellRenderer.prototype.orderEdge=function(e){var n=(t=e.view).graph.getModel();if(t.graph.keepEdgesInForeground)null!=this.firstEdge&&null!=this.firstEdge.parentNode&&this.firstEdge.parentNode==e.shape.node.parentNode||(this.firstEdge=e.shape.node);else if(t.graph.keepEdgesInBackground){var t,a=e.shape.node,i=a.parentNode;n=n.getParent(e.cell);null!=(i=null!=(t=t.getState(n))&&null!=t.shape&&null!=t.shape.node?t.shape.node.nextSibling:i.firstChild)&&i!=a&&this.insertState(e,i)}},mxCellRenderer.prototype.insertState=function(e,n){e.shape.node.parentNode.insertBefore(e.shape.node,n),null!=e.text&&null!=e.text.node&&e.text.node.parentNode==e.shape.node.parentNode&&e.shape.node.parentNode.insertBefore(e.text.node,e.shape.node.nextSibling)},mxCellRenderer.prototype.createShape=function(e){if(null!=e.style){var n=mxStencilRegistry.getStencil(e.style[mxConstants.STYLE_SHAPE]);null!=n?e.shape=new mxShape(n):(n=this.getShapeConstructor(e),e.shape=new n),e.shape.points=e.absolutePoints,e.shape.bounds=new mxRectangle(e.x,e.y,e.width,e.height),e.shape.dialect=e.view.graph.dialect,this.configureShape(e)}},mxCellRenderer.prototype.getShape=function(e){return null!=e?mxCellRenderer.prototype.defaultShapes[e]:null},mxCellRenderer.prototype.getShapeConstructor=function(e){var n=this.getShape(e.style[mxConstants.STYLE_SHAPE]);return null==n&&(n=e.view.graph.getModel().isEdge(e.cell)?this.defaultEdgeShape:this.defaultVertexShape),n},mxCellRenderer.prototype.configureShape=function(e){e.shape.apply(e),e.shape.image=e.view.graph.getImage(e),e.shape.indicatorShape=this.getShape(e.view.graph.getIndicatorShape(e)),e.shape.indicatorColor=e.view.graph.getIndicatorColor(e),e.shape.indicatorGradientColor=e.view.graph.getIndicatorGradientColor(e),e.shape.indicatorDirection=e.style[mxConstants.STYLE_INDICATOR_DIRECTION],e.shape.indicatorImage=e.view.graph.getIndicatorImage(e),this.postConfigureShape(e)},mxCellRenderer.prototype.postConfigureShape=function(e){null!=e.shape&&(this.resolveColor(e,"indicatorColor",mxConstants.STYLE_FILLCOLOR),this.resolveColor(e,"indicatorGradientColor",mxConstants.STYLE_GRADIENTCOLOR),this.resolveColor(e,"fill",mxConstants.STYLE_FILLCOLOR),this.resolveColor(e,"stroke",mxConstants.STYLE_STROKECOLOR),this.resolveColor(e,"gradient",mxConstants.STYLE_GRADIENTCOLOR))},mxCellRenderer.prototype.resolveColor=function(e,n,t){var a=e.shape[n],i=e.view.graph,s=null;"inherit"==a?s=i.model.getParent(e.cell):"swimlane"==a?(s=null!=i.model.getTerminal(e.cell,!1)?i.model.getTerminal(e.cell,!1):e.cell,s=i.getSwimlane(s),t=i.swimlaneIndicatorColorAttribute):"indicated"==a&&(e.shape[n]=e.shape.indicatorColor),null!=s&&(a=i.getView().getState(s),(e.shape[n]=null)!=a&&(e.shape[n]=null!=a.shape&&"indicatorColor"!=n?a.shape[n]:a.style[t]))},mxCellRenderer.prototype.getLabelValue=function(e){return e.view.graph.getLabel(e.cell)},mxCellRenderer.prototype.createLabel=function(t,e){var a=t.view.graph;if(a.getModel().isEdge(t.cell),0<t.style[mxConstants.STYLE_FONTSIZE]||null==t.style[mxConstants.STYLE_FONTSIZE]){var n=a.isHtmlLabel(t.cell)||null!=e&&mxUtils.isNode(e);t.text=new this.defaultTextShape(e,new mxRectangle,t.style[mxConstants.STYLE_ALIGN]||mxConstants.ALIGN_CENTER,a.getVerticalAlign(t),t.style[mxConstants.STYLE_FONTCOLOR],t.style[mxConstants.STYLE_FONTFAMILY],t.style[mxConstants.STYLE_FONTSIZE],t.style[mxConstants.STYLE_FONTSTYLE],t.style[mxConstants.STYLE_SPACING],t.style[mxConstants.STYLE_SPACING_TOP],t.style[mxConstants.STYLE_SPACING_RIGHT],t.style[mxConstants.STYLE_SPACING_BOTTOM],t.style[mxConstants.STYLE_SPACING_LEFT],t.style[mxConstants.STYLE_HORIZONTAL],t.style[mxConstants.STYLE_LABEL_BACKGROUNDCOLOR],t.style[mxConstants.STYLE_LABEL_BORDERCOLOR],a.isWrapping(t.cell)&&a.isHtmlLabel(t.cell),a.isLabelClipped(t.cell),t.style[mxConstants.STYLE_OVERFLOW],t.style[mxConstants.STYLE_LABEL_PADDING]),t.text.opacity=mxUtils.getValue(t.style,mxConstants.STYLE_TEXT_OPACITY,100),t.text.dialect=n?mxConstants.DIALECT_STRICTHTML:t.view.graph.dialect,t.text.state=t,this.initializeLabel(t);var i=!1,s=function(e){var n=t;return(mxClient.IS_TOUCH||i)&&(n=mxEvent.getClientX(e),e=mxEvent.getClientY(e),e=mxUtils.convertPoint(a.container,n,e),n=a.view.getState(a.getCellAt(e.x,e.y))),n};mxEvent.addGestureListeners(t.text.node,mxUtils.bind(this,function(e){this.isLabelEvent(t,e)&&(a.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,t)),i=a.dialect!=mxConstants.DIALECT_SVG&&"IMG"==mxEvent.getSource(e).nodeName)}),mxUtils.bind(this,function(e){this.isLabelEvent(t,e)&&a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,s(e)))}),mxUtils.bind(this,function(e){this.isLabelEvent(t,e)&&(a.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e,s(e))),i=!1)})),mxEvent.addListener(t.text.node,"dblclick",mxUtils.bind(this,function(e){this.isLabelEvent(t,e)&&(a.dblClick(e,t.cell),mxEvent.consume(e))}))}},mxCellRenderer.prototype.initializeLabel=function(e){var n=e.view.graph;e.text.dialect!=mxConstants.DIALECT_SVG&&(mxClient.IS_SVG&&mxClient.NO_FO?e.text.init(n.container):mxUtils.isVml(e.view.getDrawPane())&&(null!=e.shape.label?e.text.init(e.shape.label):e.text.init(e.shape.node))),null==e.text.node&&(e.text.init(e.view.getDrawPane()),null!=e.shape&&null!=e.text&&e.shape.node.parentNode.insertBefore(e.text.node,e.shape.node.nextSibling))},mxCellRenderer.prototype.createCellOverlays=function(e){var n=e.view.graph.getCellOverlays(e.cell),t=null;if(null!=n){t=new mxDictionary;for(var a=0;a<n.length;a++){var i=null!=e.overlays?e.overlays.remove(n[a]):null;null==i&&((i=new mxImageShape(new mxRectangle,n[a].image.src)).dialect=e.view.graph.dialect,i.preserveImageAspect=!1,i.overlay=n[a],this.initializeOverlay(e,i),this.installCellOverlayListeners(e,n[a],i),null!=n[a].cursor&&(i.node.style.cursor=n[a].cursor)),t.put(n[a],i)}}null!=e.overlays&&e.overlays.visit(function(e,n){n.destroy()}),e.overlays=t},mxCellRenderer.prototype.initializeOverlay=function(e,n){n.init(e.view.getOverlayPane())},mxCellRenderer.prototype.installCellOverlayListeners=function(n,t,e){var a=n.view.graph;mxEvent.addListener(e.node,"click",function(e){a.isEditing()&&a.stopEditing(!a.isInvokesStopCellEditing()),t.fireEvent(new mxEventObject(mxEvent.CLICK,"event",e,"cell",n.cell))}),mxEvent.addGestureListeners(e.node,function(e){mxEvent.consume(e)},function(e){a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,n))}),mxClient.IS_TOUCH&&mxEvent.addListener(e.node,"touchend",function(e){t.fireEvent(new mxEventObject(mxEvent.CLICK,"event",e,"cell",n.cell))})},mxCellRenderer.prototype.createControl=function(t){var a=t.view.graph,e=a.getFoldingImage(t);if(a.foldingEnabled&&null!=e){if(null==t.control){var n=new mxRectangle(0,0,e.width,e.height);t.control=new mxImageShape(n,e.src),t.control.preserveImageAspect=!1,t.control.dialect=a.dialect,this.initControl(t,t.control,!0,function(e){if(a.isEnabled()){var n=!a.isCellCollapsed(t.cell);a.foldCells(n,!1,[t.cell]),mxEvent.consume(e)}})}}else null!=t.control&&(t.control.destroy(),t.control=null)},mxCellRenderer.prototype.initControl=function(n,e,t,a){var i=n.view.graph;return i.isHtmlLabel(n.cell)&&mxClient.NO_FO&&i.dialect==mxConstants.DIALECT_SVG?(e.dialect=mxConstants.DIALECT_PREFERHTML,e.init(i.container),e.node.style.zIndex=1):e.init(n.view.getOverlayPane()),e=e.innerNode||e.node,a&&(i.isEnabled()&&(e.style.cursor="pointer"),mxEvent.addListener(e,"click",a)),t&&mxEvent.addGestureListeners(e,function(e){i.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,n)),mxEvent.consume(e)},function(e){i.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,n))}),e},mxCellRenderer.prototype.isShapeEvent=function(e,n){return!0},mxCellRenderer.prototype.isLabelEvent=function(e,n){return!0},mxCellRenderer.prototype.installListeners=function(t){var a=t.view.graph,n=function(e){var n=t;return(a.dialect!=mxConstants.DIALECT_SVG&&"IMG"==mxEvent.getSource(e).nodeName||mxClient.IS_TOUCH)&&(n=mxEvent.getClientX(e),e=mxEvent.getClientY(e),e=mxUtils.convertPoint(a.container,n,e),n=a.view.getState(a.getCellAt(e.x,e.y))),n},i=!1;mxEvent.addListener(t.shape.node,"gesturestart",mxUtils.bind(this,function(e){a.lastTouchTime=0,i=!0,mxEvent.consume(e)})),mxEvent.addGestureListeners(t.shape.node,mxUtils.bind(this,function(e){this.isShapeEvent(t,e)&&!i?a.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,null!=t.shape&&mxEvent.getSource(e)==t.shape.content?null:t)):i&&mxEvent.consume(e)}),mxUtils.bind(this,function(e){this.isShapeEvent(t,e)&&!i?a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,null!=t.shape&&mxEvent.getSource(e)==t.shape.content?null:n(e))):i&&mxEvent.consume(e)}),mxUtils.bind(this,function(e){this.isShapeEvent(t,e)&&!i?a.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e,null!=t.shape&&mxEvent.getSource(e)==t.shape.content?null:n(e))):i&&mxEvent.consume(e)}));var s=mxClient.IS_TOUCH?"gestureend":"dblclick";mxEvent.addListener(t.shape.node,s,mxUtils.bind(this,function(e){i=!1,"gestureend"==s?(a.lastTouchTime=0,a.gestureEnabled&&(a.handleGesture(t,e),mxEvent.consume(e))):this.isShapeEvent(t,e)&&(a.dblClick(e,null!=t.shape&&mxEvent.getSource(e)==t.shape.content?null:t.cell),mxEvent.consume(e))}))},mxCellRenderer.prototype.redrawLabel=function(e,n){var t=this.getLabelValue(e);if(null==e.text&&null!=t&&(mxUtils.isNode(t)||0<t.length)?this.createLabel(e,t):null==e.text||null!=t&&0!=t.length||(e.text.destroy(),e.text=null),null!=e.text){var a=(i=e.view.graph).isWrapping(e.cell),i=i.isLabelClipped(e.cell),s=this.getLabelBounds(e);!n&&e.text.value==t&&e.text.isWrapping==a&&e.text.isClipping==i&&e.text.scale==e.view.scale&&e.text.bounds.equals(s)||(e.text.value=t,e.text.bounds=s,e.text.scale=this.getTextScale(e),e.text.isWrapping=a,e.text.isClipping=i,e.text.redraw())}},mxCellRenderer.prototype.getTextScale=function(e){return e.view.scale},mxCellRenderer.prototype.getLabelBounds=function(e){var n=e.view.graph,t=e.view.scale,a=n.getModel().isEdge(e.cell),i=new mxRectangle(e.absoluteOffset.x,e.absoluteOffset.y);return e.text.updateMargin(),a?(a=e.text.getSpacing(),i.x+=a.x*t,i.y+=a.y*t,null!=(n=n.getCellGeometry(e.cell))&&(i.width=Math.max(0,e.text.margin.x*n.width*t-e.text.spacingLeft*t-e.text.spacingRight*t),i.height=Math.max(0,e.text.margin.y*n.height*t-e.text.spacingTop*t-e.text.spacingBottom*t))):(e.text.isPaintBoundsInverted()&&(a=i.x,i.x=i.y,i.y=a),i.x+=e.x,i.y+=e.y,i.width=Math.max(1,e.width),i.height=Math.max(1,e.height),n.isSwimlane(e.cell)&&(0<(n=n.getStartSize(e.cell)).width?(a=Math.min(i.width,n.width*t),e.shape.flipH&&(i.x+=i.width-a),i.width=a):0<n.height&&(a=Math.min(i.height,n.height*t),e.shape.flipV&&(i.y+=i.height-a),i.height=a)),this.rotateLabelBounds(e,i)),i},mxCellRenderer.prototype.rotateLabelBounds=function(e,n){if(e.text.isPaintBoundsInverted()){var t=(e.width-e.height)/2;n.x+=t,n.y-=t,t=n.width,n.width=n.height,n.height=t}if(n.x-=e.text.margin.x*n.width,n.y-=e.text.margin.y*n.height,"fill"!=e.style[mxConstants.STYLE_OVERFLOW]){t=e.view.scale;var a=e.text.getSpacing();n.x+=a.x*t,n.y+=a.y*t,n.width=Math.max(0,n.width-e.text.spacingLeft*t-e.text.spacingRight*t),n.height=Math.max(0,n.height-e.text.spacingTop*t-e.text.spacingBottom*t)}var i=e.text.getTextRotation();0!=i&&null!=e&&e.view.graph.model.isVertex(e.cell)&&(t=e.getCenterX(),a=e.getCenterY(),n.x!=t||n.y!=a)&&(i*=Math.PI/180,pt=mxUtils.getRotatedPoint(new mxPoint(n.x,n.y),Math.cos(i),Math.sin(i),new mxPoint(t,a)),n.x=pt.x,n.y=pt.y)},mxCellRenderer.prototype.redrawCellOverlays=function(s,o){if(this.createCellOverlays(s),null!=s.overlays){var r=mxUtils.mod(mxUtils.getValue(s.style,mxConstants.STYLE_ROTATION,0),90),e=mxUtils.toRadians(r),l=Math.cos(e),d=Math.sin(e);s.overlays.visit(function(e,n){var t=n.overlay.getBounds(s);if(!s.view.graph.getModel().isEdge(s.cell)&&null!=s.shape&&0!=r){var a=t.getCenterX(),i=t.getCenterY();a=(i=mxUtils.getRotatedPoint(new mxPoint(a,i),l,d,new mxPoint(s.getCenterX(),s.getCenterY()))).x,i=i.y;t.x=Math.round(a-t.width/2),t.y=Math.round(i-t.height/2)}!o&&null!=n.bounds&&n.scale==s.view.scale&&n.bounds.equals(t)||(n.bounds=t,n.scale=s.view.scale,n.redraw())})}},mxCellRenderer.prototype.redrawControl=function(e,n){if(null!=e.control){var t=this.getControlBounds(e),a=this.legacyControlPosition?mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION,0):e.shape.getTextRotation(),i=e.view.scale;!n&&e.control.scale==i&&e.control.bounds.equals(t)&&e.control.rotation==a||(e.control.rotation=a,e.control.bounds=t,e.control.scale=i,e.control.redraw())}},mxCellRenderer.prototype.getControlBounds=function(e){if(null==e.control)return null;var n=e.control.scale,t=e.control.bounds.width/n,a=(n=e.control.bounds.height/n,e.view.scale),i=e.getCenterX(),s=e.getCenterY();if(!e.view.graph.getModel().isEdge(e.cell)&&(i=e.x+t*a,s=e.y+n*a,null!=e.shape)){var o=e.shape.getShapeRotation();if(this.legacyControlPosition)o=mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION,0);else if(e.shape.isPaintBoundsInverted()){var r=(e.width-e.height)/2;i=i+r,s=s-r}0!=o&&(r=mxUtils.toRadians(o),o=Math.cos(r),r=Math.sin(r),i=(s=mxUtils.getRotatedPoint(new mxPoint(i,s),o,r,new mxPoint(e.getCenterX(),e.getCenterY()))).x,s=s.y)}return e.view.graph.getModel().isEdge(e.cell),new mxRectangle(Math.round(i-t/2*a),Math.round(s-n/2*a),Math.round(t*a),Math.round(n*a))},mxCellRenderer.prototype.redraw=function(e,n,t){if(null!=e.shape){var a=!1;e.view.graph.getModel().isEdge(e.cell),reconfigure=null!=n&&n,this.createControl(e),(e.orderChanged||e.invalidOrder)&&(e.view.graph.ordered?this.order(e):this.orderEdge(e)),!e.orderChanged&&mxUtils.equalEntries(e.shape.style,e.style)||(this.configureShape(e),n=!0),delete e.invalidOrder,delete e.orderChanged,!n&&null!=e.shape.bounds&&e.shape.scale==e.view.scale&&e.shape.bounds.equals(e)&&mxUtils.equalPoints(e.shape.points,e.absolutePoints)||(a=!0,e.shape.points=null!=e.absolutePoints?e.absolutePoints.slice():null,e.shape.bounds=new mxRectangle(e.x,e.y,e.width,e.height),e.shape.scale=e.view.scale,null==t||t?e.shape.redraw():e.shape.updateBoundingBox()),(null==t||t)&&(this.redrawLabel(e,a),this.redrawCellOverlays(e,a),this.redrawControl(e,a))}},mxCellRenderer.prototype.destroy=function(e){null!=e.shape&&(null!=e.text&&(e.text.destroy(),e.text=null),null!=e.overlays&&(e.overlays.visit(function(e,n){n.destroy()}),e.overlays=null),null!=e.control&&(e.control.destroy(),e.control=null),e.shape.destroy(),e.shape=null)};var mxEdgeStyle={EntityRelation:function(e,n,t,a,i){var s=e.view,o=s.graph;a=mxUtils.getValue(e.style,mxConstants.STYLE_SEGMENT,mxConstants.ENTITY_SEGMENT)*s.scale;var r=(d=e.absolutePoints)[0],l=d[d.length-1],d=!1;if(null!=r)(n=new mxCellState).x=r.x,n.y=r.y;else{if(null==n)return;var c=mxUtils.getPortConstraints(n,e,!0,mxConstants.DIRECTION_MASK_NONE);c!=mxConstants.DIRECTION_MASK_NONE?d=c==mxConstants.DIRECTION_MASK_WEST:(r=o.getCellGeometry(n.cell)).relative?d=r.x<=.5:null!=t&&(d=t.x+t.width<n.x)}r=!0,null!=l?((t=new mxCellState).x=l.x,t.y=l.y):null!=t&&((c=mxUtils.getPortConstraints(t,e,!1,mxConstants.DIRECTION_MASK_NONE))!=mxConstants.DIRECTION_MASK_NONE?r=c==mxConstants.DIRECTION_MASK_WEST:(e=o.getCellGeometry(t.cell)).relative?r=e.x<=.5:null!=n&&(r=n.x+n.width<t.x)),null!=n&&null!=t&&(e=d?n.x:n.x+n.width,n=s.getRoutingCenterY(n),o=r?t.x:t.x+t.width,t=s.getRoutingCenterY(t),s=new mxPoint(e+(d?-a:a),n),l=new mxPoint(o+(r?-a:a),t),d==r?(a=d?Math.min(e,o)-a:Math.max(e,o)+a,i.push(new mxPoint(a,n)),i.push(new mxPoint(a,t))):(s.x<l.x==d?(a=n+(t-n)/2,i.push(s),i.push(new mxPoint(s.x,a)),i.push(new mxPoint(l.x,a))):i.push(s),i.push(l)))},Loop:function(e,n,t,a,i){if(null!=n){var s=(t=e.view).graph;null!=(a=null!=a&&0<a.length?a[0]:null)&&(a=t.transformControlPoint(e,a),mxUtils.contains(n,a.x,a.y)&&(a=null));var o=0,r=0,l=0,d=0;s=mxUtils.getValue(e.style,mxConstants.STYLE_SEGMENT,s.gridSize)*t.scale;(e=mxUtils.getValue(e.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_WEST))==mxConstants.DIRECTION_NORTH||e==mxConstants.DIRECTION_SOUTH?(o=t.getRoutingCenterX(n),r=s):(l=t.getRoutingCenterY(n),d=s),null==a||a.x<n.x||a.x>n.x+n.width?null!=a?(o=a.x,d=Math.max(Math.abs(l-a.y),d)):e==mxConstants.DIRECTION_NORTH?l=n.y-2*r:e==mxConstants.DIRECTION_SOUTH?l=n.y+n.height+2*r:o=e==mxConstants.DIRECTION_EAST?n.x-2*d:n.x+n.width+2*d:null!=a&&(o=t.getRoutingCenterX(n),r=Math.max(Math.abs(o-a.x),d),l=a.y,d=0),i.push(new mxPoint(o-r,l-d)),i.push(new mxPoint(o+r,l+d))}},ElbowConnector:function(e,n,t,a,i){var s=null!=a&&0<a.length?a[0]:null,o=!1,r=!1;if(null!=n&&null!=t)if(null!=s){var l=Math.min(n.x,t.x),d=Math.max(n.x+n.width,t.x+t.width),c=(r=Math.min(n.y,t.y),Math.max(n.y+n.height,t.y+t.height));o=(s=e.view.transformControlPoint(e,s)).y<r||s.y>c,r=s.x<l||s.x>d}else(o=(l=Math.max(n.x,t.x))==(d=Math.min(n.x+n.width,t.x+t.width)))||(r=(r=Math.max(n.y,t.y))==(c=Math.min(n.y+n.height,t.y+t.height)));r||!o&&e.style[mxConstants.STYLE_ELBOW]!=mxConstants.ELBOW_VERTICAL?mxEdgeStyle.SideToSide(e,n,t,a,i):mxEdgeStyle.TopToBottom(e,n,t,a,i)},SideToSide:function(e,n,t,a,i){var s=e.view;a=null!=a&&0<a.length?a[0]:null;var o=(r=e.absolutePoints)[0],r=r[r.length-1];null!=a&&(a=s.transformControlPoint(e,a)),null!=o&&((n=new mxCellState).x=o.x,n.y=o.y),null!=r&&((t=new mxCellState).x=r.x,t.y=r.y),null!=n&&null!=t&&(e=Math.max(n.x,t.x),o=Math.min(n.x+n.width,t.x+t.width),e=null!=a?a.x:o+(e-o)/2,o=s.getRoutingCenterY(n),s=s.getRoutingCenterY(t),null!=a&&(a.y>=n.y&&a.y<=n.y+n.height&&(o=a.y),a.y>=t.y&&a.y<=t.y+t.height&&(s=a.y)),!mxUtils.contains(t,e,o)&&!mxUtils.contains(n,e,o)&&i.push(new mxPoint(e,o)),!mxUtils.contains(t,e,s)&&!mxUtils.contains(n,e,s)&&i.push(new mxPoint(e,s)),1==i.length&&(null!=a?!mxUtils.contains(t,e,a.y)&&!mxUtils.contains(n,e,a.y)&&i.push(new mxPoint(e,a.y)):(s=Math.max(n.y,t.y),n=Math.min(n.y+n.height,t.y+t.height),i.push(new mxPoint(e,s+(n-s)/2)))))},TopToBottom:function(e,n,t,a,i){var s=e.view;a=null!=a&&0<a.length?a[0]:null;var o=(r=e.absolutePoints)[0],r=r[r.length-1];null!=a&&(a=s.transformControlPoint(e,a)),null!=o&&((n=new mxCellState).x=o.x,n.y=o.y),null!=r&&((t=new mxCellState).x=r.x,t.y=r.y),null!=n&&null!=t&&(o=Math.max(n.y,t.y),r=Math.min(n.y+n.height,t.y+t.height),e=s.getRoutingCenterX(n),null!=a&&a.x>=n.x&&a.x<=n.x+n.width&&(e=a.x),o=null!=a?a.y:r+(o-r)/2,!mxUtils.contains(t,e,o)&&!mxUtils.contains(n,e,o)&&i.push(new mxPoint(e,o)),e=null!=a&&a.x>=t.x&&a.x<=t.x+t.width?a.x:s.getRoutingCenterX(t),!mxUtils.contains(t,e,o)&&!mxUtils.contains(n,e,o)&&i.push(new mxPoint(e,o)),1==i.length&&(null!=a&&1==i.length?!mxUtils.contains(t,a.x,o)&&!mxUtils.contains(n,a.x,o)&&i.push(new mxPoint(a.x,o)):(s=Math.max(n.x,t.x),n=Math.min(n.x+n.width,t.x+t.width),i.push(new mxPoint(s+(n-s)/2,o)))))},SegmentConnector:function(e,n,t,a,i){var s=e.absolutePoints,o=!0,r=null,l=s[0];null==l&&null!=n?l=new mxPoint(e.view.getRoutingCenterX(n),e.view.getRoutingCenterY(n)):null!=l&&(l=l.clone());var d=s.length-1;if(null!=a&&0<a.length){r=e.view.transformControlPoint(e,a[0]);for(var c=n,m=s[0],u=!1,p=!1,g=(u=r,a.length),v=0;v<2;v++){var h=null!=m&&m.x==u.x,f=null!=m&&m.y==u.y,b=null!=c&&u.y>=c.y&&u.y<=c.y+c.height;c=null!=c&&u.x>=c.x&&u.x<=c.x+c.width,u=f||null==m&&b,p=h||null==m&&c;if(null!=m&&!f&&!h&&(b||c)){o=!b;break}if(p||u){o=u,1==v&&(o=0==a.length%2?u:p);break}c=t,m=s[d],u=e.view.transformControlPoint(e,a[g-1])}for(o&&(null!=s[0]&&s[0].y!=r.y||null==s[0]&&null!=n&&(r.y<n.y||r.y>n.y+n.height))?i.push(new mxPoint(l.x,r.y)):!o&&(null!=s[0]&&s[0].x!=r.x||null==s[0]&&null!=n&&(r.x<n.x||r.x>n.x+n.width))&&i.push(new mxPoint(r.x,l.y)),o?l.y=r.y:l.x=r.x,v=0;v<a.length;v++)o=!o,r=e.view.transformControlPoint(e,a[v]),o?l.y=r.y:l.x=r.x,i.push(l.clone())}else r=l,o=!0;if(null==(l=s[d])&&null!=t&&(l=new mxPoint(e.view.getRoutingCenterX(t),e.view.getRoutingCenterY(t))),o&&(null!=s[d]&&s[d].y!=r.y||null==s[d]&&null!=t&&(r.y<t.y||r.y>t.y+t.height))?i.push(new mxPoint(l.x,r.y)):!o&&(null!=s[d]&&s[d].x!=r.x||null==s[d]&&null!=t&&(r.x<t.x||r.x>t.x+t.width))&&i.push(new mxPoint(r.x,l.y)),null==s[0]&&null!=n)for(;1<i.length&&mxUtils.contains(n,i[1].x,i[1].y);)i=i.splice(1,1);if(null==s[d]&&null!=t)for(;1<i.length&&mxUtils.contains(t,i[i.length-1].x,i[i.length-1].y);)i=i.splice(i.length-1,1)},orthBuffer:10,dirVectors:[[-1,0],[0,-1],[1,0],[0,1],[-1,0],[0,-1],[1,0]],wayPoints1:[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],routePatterns:[[[513,2308,2081,2562],[513,1090,514,2184,2114,2561],[513,1090,514,2564,2184,2562],[513,2308,2561,1090,514,2568,2308]],[[514,1057,513,2308,2081,2562],[514,2184,2114,2561],[514,2184,2562,1057,513,2564,2184],[514,1057,513,2568,2308,2561]],[[1090,514,1057,513,2308,2081,2562],[2114,2561],[1090,2562,1057,513,2564,2184],[1090,514,1057,513,2308,2561,2568]],[[2081,2562],[1057,513,1090,514,2184,2114,2561],[1057,513,1090,514,2184,2562,2564],[1057,2561,1090,514,2568,2308]]],inlineRoutePatterns:[[null,[2114,2568],null,null],[null,[514,2081,2114,2568],null,null],[null,[2114,2561],null,null],[[2081,2562],[1057,2114,2568],[2184,2562],null]],vertexSeperations:[],limits:[[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0]],LEFT_MASK:32,TOP_MASK:64,RIGHT_MASK:128,BOTTOM_MASK:256,LEFT:1,TOP:2,RIGHT:4,BOTTOM:8,SIDE_MASK:480,CENTER_MASK:512,SOURCE_MASK:1024,TARGET_MASK:2048,VERTEX_MASK:3072,OrthConnector:function(e,n,t,a,i){var s=e.view.graph,o=null!=n&&s.getModel().isEdge(n.cell);s=null!=t&&s.getModel().isEdge(t.cell);if(null!=a&&0<a.length||o||s)mxEdgeStyle.SegmentConnector(e,n,t,a,i);else{var r=(a=e.absolutePoints)[0],l=a[a.length-1];a=null!=n?n.x:r.x;o=null!=n?n.y:r.y;var d=null!=n?n.width:1,c=null!=n?n.height:1,m=null!=t?t.x:l.x,u=null!=t?t.y:l.y,p=null!=t?t.width:1,g=null!=t?t.height:1,v=(s=e.view.scale*mxEdgeStyle.orthBuffer,[mxConstants.DIRECTION_MASK_ALL,mxConstants.DIRECTION_MASK_ALL]);for(null!=n&&(v[0]=mxUtils.getPortConstraints(n,e,!0,mxConstants.DIRECTION_MASK_ALL)),null!=t&&(v[1]=mxUtils.getPortConstraints(t,e,!1,mxConstants.DIRECTION_MASK_ALL)),e=[0,0],a=[[a,o,d,c],[m,u,p,g]],d=0;d<2;d++)mxEdgeStyle.limits[d][1]=a[d][0]-s,mxEdgeStyle.limits[d][2]=a[d][1]-s,mxEdgeStyle.limits[d][4]=a[d][0]+a[d][2]+s,mxEdgeStyle.limits[d][8]=a[d][1]+a[d][3]+s;for(d=a[0][0]+a[0][2]/2-(a[1][0]+a[1][2]/2),c=a[0][1]+a[0][3]/2-(a[1][1]+a[1][3]/2),d<(o=0)?o=c<0?2:1:c<=0&&(o=3,0==d&&(o=2)),(c=null)!=n&&(c=r),n=[[.5,.5],[.5,.5]],d=0;d<2;d++)null!=c&&(n[d][0]=(c.x-a[d][0])/a[d][2],n[d][0]<.01?e[d]=mxConstants.DIRECTION_MASK_WEST:.99<n[d][0]&&(e[d]=mxConstants.DIRECTION_MASK_EAST),n[d][1]=(c.y-a[d][1])/a[d][3],n[d][1]<.01?e[d]=mxConstants.DIRECTION_MASK_NORTH:.99<n[d][1]&&(e[d]=mxConstants.DIRECTION_MASK_SOUTH)),(c=null)!=t&&(c=l);for(d=a[0][1]-(a[1][1]+a[1][3]),c=a[0][0]-(a[1][0]+a[1][2]),m=a[1][1]-(a[0][1]+a[0][3]),u=a[1][0]-(a[0][0]+a[0][2]),mxEdgeStyle.vertexSeperations[1]=Math.max(c-2*s,0),mxEdgeStyle.vertexSeperations[2]=Math.max(d-2*s,0),mxEdgeStyle.vertexSeperations[4]=Math.max(m-2*s,0),mxEdgeStyle.vertexSeperations[3]=Math.max(u-2*s,0),t=[],l=[],(r=[])[0]=u<=c?mxConstants.DIRECTION_MASK_WEST:mxConstants.DIRECTION_MASK_EAST,l[0]=m<=d?mxConstants.DIRECTION_MASK_NORTH:mxConstants.DIRECTION_MASK_SOUTH,r[1]=mxUtils.reversePortConstraints(r[0]),l[1]=mxUtils.reversePortConstraints(l[0]),c=u<=c?c:u,m=m<=d?d:m,p=!(u=[[0,0],[0,0]]),d=0;d<2;d++)0==e[d]&&(0==(r[d]&v[d])&&(r[d]=mxUtils.reversePortConstraints(r[d])),0==(l[d]&v[d])&&(l[d]=mxUtils.reversePortConstraints(l[d])),u[d][0]=l[d],u[d][1]=r[d]);for(2*s<m&&2*s<c&&(0<(r[0]&v[0])&&0<(l[1]&v[1])?(u[0][0]=r[0],u[0][1]=l[0],u[1][0]=l[1],u[1][1]=r[1],p=!0):0<(l[0]&v[0])&&0<(r[1]&v[1])&&(u[0][0]=l[0],u[0][1]=r[0],u[1][0]=r[1],u[1][1]=l[1],p=!0)),2*s<m&&!p&&(u[0][0]=l[0],u[0][1]=r[0],u[1][0]=l[1],u[1][1]=r[1],p=!0),2*s<c&&!p&&(u[0][0]=r[0],u[0][1]=l[0],u[1][0]=r[1],u[1][1]=l[1]),d=0;d<2;d++)0==e[d]&&(0==(u[d][0]&v[d])&&(u[d][0]=u[d][1]),t[d]=u[d][0]&v[d],t[d]|=(u[d][1]&v[d])<<8,t[d]|=(u[1-d][d]&v[d])<<16,t[d]|=(u[1-d][1-d]&v[d])<<24,0==(15&t[d])&&(t[d]<<=8),0==(3840&t[d])&&(t[d]=15&t[d]|t[d]>>8),0==(983040&t[d])&&(t[d]=65535&t[d]|(251658240&t[d])>>8),e[d]=15&t[d],v[d]==mxConstants.DIRECTION_MASK_WEST||v[d]==mxConstants.DIRECTION_MASK_NORTH||v[d]==mxConstants.DIRECTION_MASK_EAST||v[d]==mxConstants.DIRECTION_MASK_SOUTH)&&(e[d]=v[d]);switch(d=e[0]==mxConstants.DIRECTION_MASK_EAST?3:e[0],v=e[1]==mxConstants.DIRECTION_MASK_EAST?3:e[1],(d-=o)<1&&(d+=4),(v-=o)<1&&(v+=4),v=mxEdgeStyle.routePatterns[d-1][v-1],mxEdgeStyle.wayPoints1[0][0]=a[0][0],mxEdgeStyle.wayPoints1[0][1]=a[0][1],e[0]){case mxConstants.DIRECTION_MASK_WEST:mxEdgeStyle.wayPoints1[0][0]-=s,mxEdgeStyle.wayPoints1[0][1]+=n[0][1]*a[0][3];break;case mxConstants.DIRECTION_MASK_SOUTH:mxEdgeStyle.wayPoints1[0][0]+=n[0][0]*a[0][2],mxEdgeStyle.wayPoints1[0][1]+=a[0][3]+s;break;case mxConstants.DIRECTION_MASK_EAST:mxEdgeStyle.wayPoints1[0][0]+=a[0][2]+s,mxEdgeStyle.wayPoints1[0][1]+=n[0][1]*a[0][3];break;case mxConstants.DIRECTION_MASK_NORTH:mxEdgeStyle.wayPoints1[0][0]+=n[0][0]*a[0][2],mxEdgeStyle.wayPoints1[0][1]-=s}for(r=t=(s=0)<(e[0]&(mxConstants.DIRECTION_MASK_EAST|mxConstants.DIRECTION_MASK_WEST))?0:1,d=l=0;d<v.length;d++){g=(l=15&v[d])==mxConstants.DIRECTION_MASK_EAST?3:l,4<(g+=o)&&(g-=4),c=mxEdgeStyle.dirVectors[g-1],(l=0<g%2?0:1)!=t&&(s++,mxEdgeStyle.wayPoints1[s][0]=mxEdgeStyle.wayPoints1[s-1][0],mxEdgeStyle.wayPoints1[s][1]=mxEdgeStyle.wayPoints1[s-1][1]);var h=0<(v[d]&mxEdgeStyle.TARGET_MASK);p=0<(v[d]&mxEdgeStyle.SOURCE_MASK);15<(m=(m=(v[d]&mxEdgeStyle.SIDE_MASK)>>5)<<o)&&(m>>=4),u=0<(v[d]&mxEdgeStyle.CENTER_MASK),(p||h)&&m<9?(g=0,p=p?0:1,g=u&&0==l?a[p][0]+n[p][0]*a[p][2]:u?a[p][1]+n[p][1]*a[p][3]:mxEdgeStyle.limits[p][m],0==l?0<(m=(g-mxEdgeStyle.wayPoints1[s][0])*c[0])&&(mxEdgeStyle.wayPoints1[s][0]+=c[0]*m):0<(m=(g-mxEdgeStyle.wayPoints1[s][1])*c[1])&&(mxEdgeStyle.wayPoints1[s][1]+=c[1]*m)):u&&(mxEdgeStyle.wayPoints1[s][0]+=c[0]*Math.abs(mxEdgeStyle.vertexSeperations[g]/2),mxEdgeStyle.wayPoints1[s][1]+=c[1]*Math.abs(mxEdgeStyle.vertexSeperations[g]/2)),0<s&&mxEdgeStyle.wayPoints1[s][l]==mxEdgeStyle.wayPoints1[s-1][l]?s--:t=l}for(d=0;d<=s&&(d!=s||((0<(e[1]&(mxConstants.DIRECTION_MASK_EAST|mxConstants.DIRECTION_MASK_WEST))?0:1)==r?0:1)==(s+1)%2);d++)i.push(new mxPoint(mxEdgeStyle.wayPoints1[d][0],mxEdgeStyle.wayPoints1[d][1]))}},getRoutePattern:function(e,n,t,a){var i=e[0]==mxConstants.DIRECTION_MASK_EAST?3:e[0];return e=e[1]==mxConstants.DIRECTION_MASK_EAST?3:e[1],(i-=n)<1&&(i+=4),(e-=n)<1&&(e+=4),n=routePatterns[i-1][e-1],0!=t&&0!=a||null!=inlineRoutePatterns[i-1][e-1]&&(n=inlineRoutePatterns[i-1][e-1]),n}},mxStyleRegistry={values:[],putValue:function(e,n){mxStyleRegistry.values[e]=n},getValue:function(e){return mxStyleRegistry.values[e]},getName:function(e){for(var n in mxStyleRegistry.values)if(mxStyleRegistry.values[n]==e)return n;return null}};function mxGraphView(e){this.graph=e,this.translate=new mxPoint,this.graphBounds=new mxRectangle,this.states=new mxDictionary}function mxCurrentRootChange(e,n){if(this.view=e,this.previous=this.root=n,this.isUp=null==n,!this.isUp)for(var t=this.view.currentRoot,a=this.view.graph.getModel();null!=t;){if(t==n){this.isUp=!0;break}t=a.getParent(t)}}function mxGraph(e,n,t,a){this.mouseListeners=null,this.renderHint=t,this.dialect=mxClient.IS_SVG?mxConstants.DIALECT_SVG:t==mxConstants.RENDERING_HINT_EXACT&&mxClient.IS_VML?mxConstants.DIALECT_VML:t==mxConstants.RENDERING_HINT_FASTEST?mxConstants.DIALECT_STRICTHTML:t==mxConstants.RENDERING_HINT_FASTER?mxConstants.DIALECT_PREFERHTML:mxConstants.DIALECT_MIXEDHTML,this.model=null!=n?n:new mxGraphModel,this.multiplicities=[],this.imageBundles=[],this.cellRenderer=this.createCellRenderer(),this.setSelectionModel(this.createSelectionModel()),this.setStylesheet(null!=a?a:this.createStylesheet()),this.view=this.createGraphView(),this.graphModelChangeListener=mxUtils.bind(this,function(e,n){this.graphModelChanged(n.getProperty("edit").changes)}),this.model.addListener(mxEvent.CHANGE,this.graphModelChangeListener),this.createHandlers(),null!=e&&this.init(e),this.view.revalidate()}function mxCellOverlay(e,n,t,a,i,s){this.image=e,this.tooltip=n,this.align=null!=t?t:this.align,this.verticalAlign=null!=a?a:this.verticalAlign,this.offset=null!=i?i:new mxPoint,this.cursor=null!=s?s:"help"}function mxOutline(e,n){this.source=e,null!=n&&this.init(n)}function mxMultiplicity(e,n,t,a,i,s,o,r,l,d){this.source=e,this.type=n,this.attr=t,this.value=a,this.min=null!=i?i:0,this.max=null!=s?s:"n",this.validNeighbors=o,this.countError=mxResources.get(r)||r,this.typeError=mxResources.get(l)||l,this.validNeighborsAllowed=null==d||d}function mxLayoutManager(e){this.undoHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.beforeUndo(n.getProperty("edit"))}),this.moveHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.cellsMoved(n.getProperty("cells"),n.getProperty("event"))}),this.setGraph(e)}function mxSpaceManager(e,n,t,a){this.resizeHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.cellsResized(n.getProperty("cells"))}),this.foldHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.cellsResized(n.getProperty("cells"))}),this.shiftRightwards=null==n||n,this.shiftDownwards=null==t||t,this.extendParents=null==a||a,this.setGraph(e)}function mxSwimlaneManager(e,n,t,a){this.horizontal=null==n||n,this.addEnabled=null==t||t,this.resizeEnabled=null==a||a,this.addHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.isAddEnabled()&&this.cellsAdded(n.getProperty("cells"))}),this.resizeHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.isResizeEnabled()&&this.cellsResized(n.getProperty("cells"))}),this.setGraph(e)}function mxTemporaryCellStates(e,n,t){if(this.view=e,n=null!=n?n:1,this.oldBounds=e.getGraphBounds(),this.oldStates=e.getStates(),this.oldScale=e.getScale(),e.setStates(new mxDictionary),e.setScale(n),null!=t){n=e.createState(new mxCell);for(var a=0;a<t.length;a++)e.validateBounds(n,t[a]);var i=null;for(a=0;a<t.length;a++){var s=e.validatePoints(n,t[a]);null==i?i=s:i.add(s)}null==i&&(i=new mxRectangle),e.setGraphBounds(i)}}function mxCellStatePreview(e){this.graph=e,this.deltas={}}function mxConnectionConstraint(e,n){this.point=e,this.perimeter=null==n||n}function mxGraphHandler(e){this.graph=e,this.graph.addMouseListener(this),this.panHandler=mxUtils.bind(this,function(){this.updatePreviewShape()}),this.graph.addListener(mxEvent.PAN,this.panHandler)}function mxPanningHandler(e,n){null!=e&&(this.graph=e,this.factoryMethod=n,this.graph.addMouseListener(this),this.init())}function mxCellMarker(e,n,t,a){mxEventSource.call(this),null!=e&&(this.graph=e,this.validColor=null!=n?n:mxConstants.DEFAULT_VALID_COLOR,this.invalidColor=null!=n?t:mxConstants.DEFAULT_INVALID_COLOR,this.hotspot=null!=a?a:mxConstants.DEFAULT_HOTSPOT,this.highlight=new mxCellHighlight(e))}function mxSelectionCellsHandler(e){mxEventSource.call(this),this.graph=e,this.handlers=new mxDictionary,this.graph.addMouseListener(this),this.refreshHandler=mxUtils.bind(this,function(e,n){this.isEnabled()&&this.refresh()}),this.graph.getSelectionModel().addListener(mxEvent.CHANGE,this.refreshHandler),this.graph.getModel().addListener(mxEvent.CHANGE,this.refreshHandler),this.graph.getView().addListener(mxEvent.SCALE,this.refreshHandler),this.graph.getView().addListener(mxEvent.TRANSLATE,this.refreshHandler),this.graph.getView().addListener(mxEvent.SCALE_AND_TRANSLATE,this.refreshHandler),this.graph.getView().addListener(mxEvent.DOWN,this.refreshHandler),this.graph.getView().addListener(mxEvent.UP,this.refreshHandler)}function mxConnectionHandler(e,n){mxEventSource.call(this),null!=e&&(this.graph=e,this.factoryMethod=n,this.init())}function mxConstraintHandler(e){this.graph=e}function mxRubberband(e){null!=e&&(this.graph=e,this.graph.addMouseListener(this),this.panHandler=mxUtils.bind(this,function(){this.repaint()}),this.graph.addListener(mxEvent.PAN,this.panHandler),mxClient.IS_IE&&mxEvent.addListener(window,"unload",mxUtils.bind(this,function(){this.destroy()})))}function mxVertexHandler(e){null!=e&&(this.state=e,this.init())}function mxEdgeHandler(e){null!=e&&(this.state=e,this.init())}function mxElbowEdgeHandler(e){mxEdgeHandler.call(this,e)}function mxEdgeSegmentHandler(e){mxEdgeHandler.call(this,e)}function mxKeyHandler(e,n){null!=e&&(this.graph=e,this.target=n||document.documentElement,this.normalKeys=[],this.shiftKeys=[],this.controlKeys=[],this.controlShiftKeys=[],mxEvent.addListener(this.target,"keydown",mxUtils.bind(this,function(e){this.keyDown(e)})),mxClient.IS_IE&&mxEvent.addListener(window,"unload",mxUtils.bind(this,function(){this.destroy()})))}function mxTooltipHandler(e,n){null!=e&&(this.graph=e,this.delay=n||500,this.graph.addMouseListener(this))}function mxCellTracker(e,n,t){mxCellMarker.call(this,e,n),this.graph.addMouseListener(this),null!=t&&(this.getCell=t),mxClient.IS_IE&&mxEvent.addListener(window,"unload",mxUtils.bind(this,function(){this.destroy()}))}function mxCellHighlight(e,n,t,a){null!=e&&(this.graph=e,this.highlightColor=null!=n?n:mxConstants.DEFAULT_VALID_COLOR,this.strokeWidth=null!=t?t:mxConstants.HIGHLIGHT_STROKEWIDTH,this.dashed=null!=a&&a,this.repaintHandler=mxUtils.bind(this,function(){this.repaint()}),this.graph.getView().addListener(mxEvent.SCALE,this.repaintHandler),this.graph.getView().addListener(mxEvent.TRANSLATE,this.repaintHandler),this.graph.getView().addListener(mxEvent.SCALE_AND_TRANSLATE,this.repaintHandler),this.graph.getModel().addListener(mxEvent.CHANGE,this.repaintHandler),this.resetHandler=mxUtils.bind(this,function(){this.hide()}),this.graph.getView().addListener(mxEvent.DOWN,this.resetHandler),this.graph.getView().addListener(mxEvent.UP,this.resetHandler))}function mxDefaultKeyHandler(n){if(null!=n){this.editor=n,this.handler=new mxKeyHandler(n.graph);var t=this.handler.escape;this.handler.escape=function(e){t.apply(this,arguments),n.hideProperties(),n.fireEvent(new mxEventObject(mxEvent.ESCAPE,"event",e))}}}function mxDefaultPopupMenu(e){this.config=e}function mxDefaultToolbar(e,n){this.editor=n,null!=e&&null!=n&&this.init(e)}function mxEditor(e){this.actions=[],this.addActions(),null!=document.body&&(this.cycleAttributeValues=[],this.popupHandler=new mxDefaultPopupMenu,this.undoManager=new mxUndoManager,this.graph=this.createGraph(),this.toolbar=this.createToolbar(),this.keyHandler=new mxDefaultKeyHandler(this),this.configure(e),this.graph.swimlaneIndicatorColorAttribute=this.cycleAttributeName,!mxClient.IS_LOCAL&&null!=this.urlInit&&(this.session=this.createSession()),null!=this.onInit&&this.onInit(),mxClient.IS_IE&&mxEvent.addListener(window,"unload",mxUtils.bind(this,function(){this.destroy()})))}mxStyleRegistry.putValue(mxConstants.EDGESTYLE_ELBOW,mxEdgeStyle.ElbowConnector),mxStyleRegistry.putValue(mxConstants.EDGESTYLE_ENTITY_RELATION,mxEdgeStyle.EntityRelation),mxStyleRegistry.putValue(mxConstants.EDGESTYLE_LOOP,mxEdgeStyle.Loop),mxStyleRegistry.putValue(mxConstants.EDGESTYLE_SIDETOSIDE,mxEdgeStyle.SideToSide),mxStyleRegistry.putValue(mxConstants.EDGESTYLE_TOPTOBOTTOM,mxEdgeStyle.TopToBottom),mxStyleRegistry.putValue(mxConstants.EDGESTYLE_ORTHOGONAL,mxEdgeStyle.OrthConnector),mxStyleRegistry.putValue(mxConstants.EDGESTYLE_SEGMENT,mxEdgeStyle.SegmentConnector),mxStyleRegistry.putValue(mxConstants.PERIMETER_ELLIPSE,mxPerimeter.EllipsePerimeter),mxStyleRegistry.putValue(mxConstants.PERIMETER_RECTANGLE,mxPerimeter.RectanglePerimeter),mxStyleRegistry.putValue(mxConstants.PERIMETER_RHOMBUS,mxPerimeter.RhombusPerimeter),mxStyleRegistry.putValue(mxConstants.PERIMETER_TRIANGLE,mxPerimeter.TrianglePerimeter),mxGraphView.prototype=new mxEventSource,mxGraphView.prototype.constructor=mxGraphView,mxGraphView.prototype.EMPTY_POINT=new mxPoint,mxGraphView.prototype.doneResource="none"!=mxClient.language?"done":"",mxGraphView.prototype.updatingDocumentResource="none"!=mxClient.language?"updatingDocument":"",mxGraphView.prototype.allowEval=!1,mxGraphView.prototype.captureDocumentGesture=!0,mxGraphView.prototype.optimizeVmlReflows=!0,mxGraphView.prototype.rendering=!0,mxGraphView.prototype.graph=null,mxGraphView.prototype.currentRoot=null,mxGraphView.prototype.graphBounds=null,mxGraphView.prototype.scale=1,mxGraphView.prototype.translate=null,mxGraphView.prototype.updateStyle=!1,mxGraphView.prototype.getGraphBounds=function(){return this.graphBounds},mxGraphView.prototype.setGraphBounds=function(e){this.graphBounds=e},mxGraphView.prototype.getBounds=function(e){var n=null;if(null!=e&&0<e.length)for(var t=this.graph.getModel(),a=0;a<e.length;a++)if(t.isVertex(e[a])||t.isEdge(e[a])){var i=this.getState(e[a]);null!=i&&(null==n?n=new mxRectangle(i.x,i.y,i.width,i.height):n.add(i))}return n},mxGraphView.prototype.setCurrentRoot=function(e){if(this.currentRoot!=e){var n=new mxCurrentRootChange(this,e);n.execute();var t=new mxUndoableEdit(this,!1);t.add(n),this.fireEvent(new mxEventObject(mxEvent.UNDO,"edit",t)),this.graph.sizeDidChange()}return e},mxGraphView.prototype.scaleAndTranslate=function(e,n,t){var a=this.scale,i=new mxPoint(this.translate.x,this.translate.y);this.scale==e&&this.translate.x==n&&this.translate.y==t||(this.scale=e,this.translate.x=n,this.translate.y=t,this.isEventsEnabled()&&(this.revalidate(),this.graph.sizeDidChange())),this.fireEvent(new mxEventObject(mxEvent.SCALE_AND_TRANSLATE,"scale",e,"previousScale",a,"translate",this.translate,"previousTranslate",i))},mxGraphView.prototype.getScale=function(){return this.scale},mxGraphView.prototype.setScale=function(e){var n=this.scale;this.scale!=e&&(this.scale=e,this.isEventsEnabled()&&(this.revalidate(),this.graph.sizeDidChange())),this.fireEvent(new mxEventObject(mxEvent.SCALE,"scale",e,"previousScale",n))},mxGraphView.prototype.getTranslate=function(){return this.translate},mxGraphView.prototype.setTranslate=function(e,n){var t=new mxPoint(this.translate.x,this.translate.y);this.translate.x==e&&this.translate.y==n||(this.translate.x=e,this.translate.y=n,this.isEventsEnabled()&&(this.revalidate(),this.graph.sizeDidChange())),this.fireEvent(new mxEventObject(mxEvent.TRANSLATE,"translate",this.translate,"previousTranslate",t))},mxGraphView.prototype.refresh=function(){null!=this.currentRoot&&this.clear(),this.revalidate()},mxGraphView.prototype.revalidate=function(){this.invalidate(),this.validate()},mxGraphView.prototype.clear=function(e,n,t){var a=this.graph.getModel();if(e=e||a.getRoot(),n=null!=n&&n,t=null==t||t,this.removeState(e),t&&(n||e!=this.currentRoot)){t=a.getChildCount(e);for(var i=0;i<t;i++)this.clear(a.getChildAt(e,i),n)}else this.invalidate(e)},mxGraphView.prototype.invalidate=function(e,n,t,a){var i=this.graph.getModel();if(e=e||i.getRoot(),n=null==n||n,t=null==t||t,a=null!=a&&a,null!=(o=this.getState(e))&&(o.invalid=!0,a&&(o.orderChanged=!0)),n)for(var s=i.getChildCount(e),o=0;o<s;o++){var r=i.getChildAt(e,o);this.invalidate(r,n,t,a)}if(t)for(a=i.getEdgeCount(e),o=0;o<a;o++)this.invalidate(i.getEdgeAt(e,o),n,t)},mxGraphView.prototype.validate=function(e){var n=mxLog.enter("mxGraphView.validate");window.status=mxResources.get(this.updatingDocumentResource)||this.updatingDocumentResource;var t=null;if(this.optimizeVmlReflows&&null!=this.canvas&&null==this.textDiv&&(8==document.documentMode||mxClient.IS_QUIRKS)){t=this.canvas.style.display,this.canvas.style.display="none";var a=document.createElement("div");a.style.position="absolute",a.style.whiteSpace="nowrap",a.style.visibility="hidden",a.style.display=mxClient.IS_QUIRKS?"inline":"inline-block",a.style.zoom="1",document.body.appendChild(a),this.textDiv=a}e=e||(null!=this.currentRoot?this.currentRoot:this.graph.getModel().getRoot()),this.validateBounds(null,e),null==(e=this.validatePoints(null,e))&&(e=new mxRectangle),this.setGraphBounds(e),this.validateBackground(),null!=t&&(this.canvas.style.display=t,document.body.removeChild(this.textDiv),this.textDiv=null),window.status=mxResources.get(this.doneResource)||this.doneResource,mxLog.leave("mxGraphView.validate",n)},mxGraphView.prototype.createBackgroundPageShape=function(e){return new mxRectangleShape(e,"white","black")},mxGraphView.prototype.validateBackground=function(){var e=this.graph.getBackgroundImage();if(null!=e){if(null==this.backgroundImage||this.backgroundImage.image!=e.src){null!=this.backgroundImage&&this.backgroundImage.destroy();var n=new mxRectangle(0,0,1,1);this.backgroundImage=new mxImageShape(n,e.src),this.backgroundImage.dialect=this.graph.dialect,this.backgroundImage.init(this.backgroundPane),this.backgroundImage.redraw()}this.redrawBackgroundImage(this.backgroundImage,e)}else null!=this.backgroundImage&&(this.backgroundImage.destroy(),this.backgroundImage=null);this.graph.pageVisible?(n=this.getBackgroundPageBounds(),null==this.backgroundPageShape?(this.backgroundPageShape=this.createBackgroundPageShape(n),this.backgroundPageShape.scale=this.scale,this.backgroundPageShape.isShadow=!0,this.backgroundPageShape.dialect=this.graph.dialect,this.backgroundPageShape.init(this.backgroundPane),this.backgroundPageShape.redraw(),mxEvent.addListener(this.backgroundPageShape.node,"dblclick",mxUtils.bind(this,function(e){this.graph.dblClick(e)})),mxEvent.addGestureListeners(this.backgroundPageShape.node,mxUtils.bind(this,function(e){this.graph.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e))}),mxUtils.bind(this,function(e){null!=this.graph.tooltipHandler&&this.graph.tooltipHandler.isHideOnHover()&&this.graph.tooltipHandler.hide(),this.graph.isMouseDown&&!mxEvent.isConsumed(e)&&this.graph.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e))}),mxUtils.bind(this,function(e){this.graph.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e))}))):(this.backgroundPageShape.scale=this.scale,this.backgroundPageShape.bounds=n,this.backgroundPageShape.redraw())):null!=this.backgroundPageShape&&(this.backgroundPageShape.destroy(),this.backgroundPageShape=null)},mxGraphView.prototype.getBackgroundPageBounds=function(){var e=this.graph.pageFormat,n=this.scale*this.graph.pageScale;return new mxRectangle(this.scale*this.translate.x,this.scale*this.translate.y,e.width*n,e.height*n)},mxGraphView.prototype.redrawBackgroundImage=function(e,n){e.scale=this.scale,e.bounds.x=this.scale*this.translate.x,e.bounds.y=this.scale*this.translate.y,e.bounds.width=this.scale*n.width,e.bounds.height=this.scale*n.height,e.redraw()},mxGraphView.prototype.validateBounds=function(e,n){var t=this.graph.getModel(),a=this.getState(n,!0);if(null!=a&&a.invalid){if(this.graph.isCellVisible(n)){if(n!=this.currentRoot&&null!=e)if(a.absoluteOffset.x=0,a.absoluteOffset.y=0,a.origin.x=e.origin.x,a.origin.y=e.origin.y,null!=(s=this.graph.getCellGeometry(n))){if(!t.isEdge(n)){var i=s.offset||this.EMPTY_POINT;s.relative?(a.origin.x+=s.x*e.width/this.scale+i.x,a.origin.y+=s.y*e.height/this.scale+i.y):(a.absoluteOffset.x=this.scale*i.x,a.absoluteOffset.y=this.scale*i.y,a.origin.x+=s.x,a.origin.y+=s.y)}if(a.x=this.scale*(this.translate.x+a.origin.x),a.y=this.scale*(this.translate.y+a.origin.y),a.width=this.scale*s.width,a.height=this.scale*s.height,t.isVertex(n)){if(s.relative&&0!=(i=mxUtils.toRadians(e.style[mxConstants.STYLE_ROTATION]||"0"))){var s=Math.cos(i),o=(i=Math.sin(i),new mxPoint(a.getCenterX(),a.getCenterY())),r=new mxPoint(e.getCenterX(),e.getCenterY());s=mxUtils.getRotatedPoint(o,s,i,r);a.x=s.x-a.width/2,a.y=s.y-a.height/2}this.updateVertexLabelOffset(a)}}}else this.removeState(n);null!=(i=this.graph.getChildOffsetForCell(n))&&(a.origin.x+=i.x,a.origin.y+=i.y)}if(null!=a&&(!this.graph.isCellCollapsed(n)||n==this.currentRoot))for(s=t.getChildCount(n),i=0;i<s;i++)o=t.getChildAt(n,i),this.validateBounds(a,o)},mxGraphView.prototype.updateVertexLabelOffset=function(e){var n=mxUtils.getValue(e.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER);n==mxConstants.ALIGN_LEFT?e.absoluteOffset.x-=e.width:n==mxConstants.ALIGN_RIGHT&&(e.absoluteOffset.x+=e.width),(n=mxUtils.getValue(e.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE))==mxConstants.ALIGN_TOP?e.absoluteOffset.y-=e.height:n==mxConstants.ALIGN_BOTTOM&&(e.absoluteOffset.y+=e.height)},mxGraphView.prototype.validatePoints=function(e,n){var t=this.graph.getModel(),a=this.getState(n),i=null;if(null!=a){if(a.invalid){var s=this.graph.getCellGeometry(n);if(null!=s&&t.isEdge(n)){var o=this.getState(this.getVisibleTerminal(n,!0));if(a.setVisibleTerminalState(o,!0),null!=o&&t.isEdge(o.cell)&&!t.isAncestor(o.cell,n)){var r=this.getState(t.getParent(o.cell));this.validatePoints(r,o.cell)}var l=this.getState(this.getVisibleTerminal(n,!1));a.setVisibleTerminalState(l,!1),null!=l&&t.isEdge(l.cell)&&!t.isAncestor(l.cell,n)&&(r=this.getState(t.getParent(l.cell)),this.validatePoints(r,l.cell)),this.updateFixedTerminalPoints(a,o,l),this.updatePoints(a,s.points,o,l),this.updateFloatingTerminalPoints(a,o,l),this.updateEdgeBounds(a),this.updateEdgeLabelOffset(a)}else null!=s&&s.relative&&null!=e&&t.isEdge(e.cell)&&(null!=(s=this.getPoint(e,s))&&(a.x=s.x,a.y=s.y,s.x=s.x/this.scale-this.translate.x,s.y=s.y/this.scale-this.translate.y,a.origin=s,this.childMoved(e,a)));a.invalid=!1,n!=this.currentRoot&&this.graph.cellRenderer.redraw(a,!1,this.isRendering())}(t.isEdge(n)||t.isVertex(n))&&(null!=a.shape&&null!=a.shape.boundingBox&&(i=a.shape.boundingBox.clone()),null!=a.text&&!this.graph.isLabelClipped(a.cell)&&null!=a.text.boundingBox&&(null!=i?i.add(a.text.boundingBox):i=a.text.boundingBox.clone()))}if(null!=a&&(!this.graph.isCellCollapsed(n)||n==this.currentRoot))for(s=t.getChildCount(n),o=0;o<s;o++)r=t.getChildAt(n,o),null!=(r=this.validatePoints(a,r))&&(null==i?i=r:i.add(r));return i},mxGraphView.prototype.childMoved=function(e,n){var t=n.cell;if(!this.graph.isCellCollapsed(t)||t==this.currentRoot)for(var a=this.graph.getModel(),i=a.getChildCount(t),s=0;s<i;s++)this.validateBounds(n,a.getChildAt(t,s))},mxGraphView.prototype.updateFixedTerminalPoints=function(e,n,t){this.updateFixedTerminalPoint(e,n,!0,this.graph.getConnectionConstraint(e,n,!0)),this.updateFixedTerminalPoint(e,t,!1,this.graph.getConnectionConstraint(e,t,!1))},mxGraphView.prototype.updateFixedTerminalPoint=function(e,n,t,a){var i=null;if(null!=a&&(i=this.graph.getConnectionPoint(n,a)),null==i&&null==n){n=this.scale,a=this.translate;var s=e.origin;null!=(i=this.graph.getCellGeometry(e.cell).getTerminalPoint(t))&&(i=new mxPoint(n*(a.x+i.x+s.x),n*(a.y+i.y+s.y)))}e.setAbsoluteTerminalPoint(i,t)},mxGraphView.prototype.updatePoints=function(e,n,t,a){if(null!=e){var i=[];i.push(e.absolutePoints[0]);var s=this.getEdgeStyle(e,n,t,a);if(null!=s)s(e,t=this.getTerminalPort(e,t,!0),a=this.getTerminalPort(e,a,!1),n,i);else if(null!=n)for(s=0;s<n.length;s++)null!=n[s]&&(a=mxUtils.clone(n[s]),i.push(this.transformControlPoint(e,a)));n=e.absolutePoints,i.push(n[n.length-1]),e.absolutePoints=i}},mxGraphView.prototype.transformControlPoint=function(e,n){var t=e.origin;return new mxPoint(this.scale*(n.x+this.translate.x+t.x),this.scale*(n.y+this.translate.y+t.y))},mxGraphView.prototype.getEdgeStyle=function(e,n,t,a){return"string"==typeof(e=null!=t&&t==a?mxUtils.getValue(e.style,mxConstants.STYLE_LOOP,this.graph.defaultLoopStyle):mxUtils.getValue(e.style,mxConstants.STYLE_NOEDGESTYLE,!1)?null:e.style[mxConstants.STYLE_EDGE])&&(null==(n=mxStyleRegistry.getValue(e))&&this.isAllowEval()&&(n=mxUtils.eval(e)),e=n),"function"==typeof e?e:null},mxGraphView.prototype.updateFloatingTerminalPoints=function(e,n,t){var a=e.absolutePoints,i=a[0];null==a[a.length-1]&&null!=t&&this.updateFloatingTerminalPoint(e,t,n,!1),null==i&&null!=n&&this.updateFloatingTerminalPoint(e,n,t,!0)},mxGraphView.prototype.updateFloatingTerminalPoint=function(e,n,t,a){n=this.getTerminalPort(e,n,a);var i=this.getNextPoint(e,t,a),s=this.graph.isOrthogonal(e);t=mxUtils.toRadians(Number(n.style[mxConstants.STYLE_ROTATION]||"0"));var o=new mxPoint(n.getCenterX(),n.getCenterY());if(0!=t){var r=Math.cos(-t),l=Math.sin(-t);i=mxUtils.getRotatedPoint(i,r,l,o)}r=parseFloat(e.style[mxConstants.STYLE_PERIMETER_SPACING]||0),r+=parseFloat(e.style[a?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0),n=this.getPerimeterPoint(n,i,0==t&&s,r),0!=t&&(r=Math.cos(t),l=Math.sin(t),n=mxUtils.getRotatedPoint(n,r,l,o)),e.setAbsoluteTerminalPoint(n,a)},mxGraphView.prototype.getTerminalPort=function(e,n,t){return null!=(e=mxUtils.getValue(e.style,t?mxConstants.STYLE_SOURCE_PORT:mxConstants.STYLE_TARGET_PORT))&&(null!=(e=this.getState(this.graph.getModel().getCell(e)))&&(n=e)),n},mxGraphView.prototype.getPerimeterPoint=function(e,n,t,a){var i=null;if(null!=e){var s=this.getPerimeterFunction(e);null!=s&&null!=n&&(0<(a=this.getPerimeterBounds(e,a)).width||0<a.height)&&(i=s(a,e,n,t)),null==i&&(i=this.getPoint(e))}return i},mxGraphView.prototype.getRoutingCenterX=function(e){var n=null!=e.style&&parseFloat(e.style[mxConstants.STYLE_ROUTING_CENTER_X])||0;return e.getCenterX()+n*e.width},mxGraphView.prototype.getRoutingCenterY=function(e){var n=null!=e.style&&parseFloat(e.style[mxConstants.STYLE_ROUTING_CENTER_Y])||0;return e.getCenterY()+n*e.height},mxGraphView.prototype.getPerimeterBounds=function(e,n){return n=null!=n?n:0,null!=e&&(n+=parseFloat(e.style[mxConstants.STYLE_PERIMETER_SPACING]||0)),e.getPerimeterBounds(n*this.scale)},mxGraphView.prototype.getPerimeterFunction=function(e){if("string"==typeof(e=e.style[mxConstants.STYLE_PERIMETER])){var n=mxStyleRegistry.getValue(e);null==n&&this.isAllowEval()&&(n=mxUtils.eval(e)),e=n}return"function"==typeof e?e:null},mxGraphView.prototype.getNextPoint=function(e,n,t){var a=null;return null!=(e=e.absolutePoints)&&(t||2<e.length||null==n)&&(a=e.length,a=e[t?Math.min(1,a-1):Math.max(0,a-2)]),null==a&&null!=n&&(a=new mxPoint(n.getCenterX(),n.getCenterY())),a},mxGraphView.prototype.getVisibleTerminal=function(e,n){for(var t=this.graph.getModel(),a=t.getTerminal(e,n),i=a;null!=a&&a!=this.currentRoot;)this.graph.isCellVisible(i)&&!this.graph.isCellCollapsed(a)||(i=a),a=t.getParent(a);return t.getParent(i)==t.getRoot()&&(i=null),i},mxGraphView.prototype.updateEdgeBounds=function(e){var n=e.absolutePoints;if(e.length=0,null!=n&&0<n.length){var t=n[0],a=n[n.length-1];if(null==t||null==a)e.cell!=this.currentRoot&&this.clear(e.cell,!0);else{if(t.x!=a.x||t.y!=a.y){var i=a.x-t.x,s=a.y-t.y;e.terminalDistance=Math.sqrt(i*i+s*s)}else e.terminalDistance=0;a=0;var o=[];if(null!=(s=t)){t=s.x;for(var r=s.y,l=t,d=r,c=1;c<n.length;c++){var m=n[c];null!=m&&(i=s.x-m.x,s=s.y-m.y,i=Math.sqrt(i*i+s*s),o.push(i),a+=i,s=m,t=Math.min(s.x,t),r=Math.min(s.y,r),l=Math.max(s.x,l),d=Math.max(s.y,d))}e.length=a,e.segments=o,e.x=t,e.y=r,e.width=Math.max(1,l-t),e.height=Math.max(1,d-r)}}}},mxGraphView.prototype.getPoint=function(e,n){var t=e.getCenterX(),a=e.getCenterY();if(null==e.segments||null!=n&&!n.relative)null!=n&&(null!=(d=n.offset)&&(t+=d.x,a+=d.y));else{for(var i=e.absolutePoints.length,s=(.5+(null!=n?n.x/2:0))*e.length,o=e.segments[0],r=0,l=1;r+o<s&&l<i-1;)r+=o,o=e.segments[l++];if(i=0==o?0:(s-r)/o,s=e.absolutePoints[l-1],l=e.absolutePoints[l],null!=s&&null!=l){if(r=t=a=0,null!=n){a=n.y;var d=n.offset;null!=d&&(t=d.x,r=d.y)}d=l.x-s.x,l=l.y-s.y,t=s.x+d*i+((0==o?0:l/o)*a+t)*this.scale,a=s.y+l*i-((0==o?0:d/o)*a-r)*this.scale}}return new mxPoint(t,a)},mxGraphView.prototype.getRelativePoint=function(e,n,t){if(null!=(i=this.graph.getModel().getGeometry(e.cell))){var a=e.absolutePoints.length;if(i.relative&&1<a){for(var i=e.length,s=e.segments,o=e.absolutePoints[0],r=e.absolutePoints[1],l=mxUtils.ptSegDistSq(o.x,o.y,r.x,r.y,n,t),d=0,c=0,m=0,u=2;u<a;u++)c+=s[u-2],r=e.absolutePoints[u],(o=mxUtils.ptSegDistSq(o.x,o.y,r.x,r.y,n,t))<=l&&(l=o,d=u-1,m=c),o=r;return a=s[d],o=e.absolutePoints[d],l=(r=e.absolutePoints[d+1]).x,s=r.y,s=(l=(e=o.x-l)-(l=n-l))*e+(s=(d=o.y-s)-(s=t-s))*d,a<(e=Math.sqrt(s<=0?0:s*s/(e*e+d*d)))&&(e=a),a=Math.sqrt(mxUtils.ptSegDistSq(o.x,o.y,r.x,r.y,n,t)),-1==mxUtils.relativeCcw(o.x,o.y,r.x,r.y,n,t)&&(a=-a),new mxPoint((i/2-m-e)/i*-2,a/this.scale)}}return new mxPoint},mxGraphView.prototype.updateEdgeLabelOffset=function(e){var n=e.absolutePoints;if(e.absoluteOffset.x=e.getCenterX(),e.absoluteOffset.y=e.getCenterY(),null!=n&&0<n.length&&null!=e.segments)if((i=this.graph.getCellGeometry(e.cell)).relative){null!=(t=this.getPoint(e,i))&&(e.absoluteOffset=t)}else{var t=n[0],a=n[n.length-1];if(null!=t&&null!=a){n=a.x-t.x;var i,s=a.y-t.y,o=a=0;null!=(i=i.offset)&&(a=i.x,o=i.y),i=t.y+s/2+o*this.scale,e.absoluteOffset.x=t.x+n/2+a*this.scale,e.absoluteOffset.y=i}}},mxGraphView.prototype.getState=function(e,n){n=n||!1;var t=null;return null!=e&&(t=this.states.get(e),this.graph.isCellVisible(e)&&(null==t&&n&&this.graph.isCellVisible(e)?(t=this.createState(e),this.states.put(e,t)):n&&null!=t&&this.updateStyle&&(t.style=this.graph.getCellStyle(e)))),t},mxGraphView.prototype.isRendering=function(){return this.rendering},mxGraphView.prototype.setRendering=function(e){this.rendering=e},mxGraphView.prototype.isAllowEval=function(){return this.allowEval},mxGraphView.prototype.setAllowEval=function(e){this.allowEval=e},mxGraphView.prototype.getStates=function(){return this.states},mxGraphView.prototype.setStates=function(e){this.states=e},mxGraphView.prototype.getCellStates=function(e){if(null==e)return this.states;for(var n=[],t=0;t<e.length;t++){var a=this.getState(e[t]);null!=a&&n.push(a)}return n},mxGraphView.prototype.removeState=function(e){var n=null;return null!=e&&(null!=(n=this.states.remove(e))&&(this.graph.cellRenderer.destroy(n),n.destroy())),n},mxGraphView.prototype.createState=function(e){var n=this.graph.getCellStyle(e);return e=new mxCellState(this,e,n),this.graph.cellRenderer.initialize(e,this.isRendering()),e},mxGraphView.prototype.getCanvas=function(){return this.canvas},mxGraphView.prototype.getBackgroundPane=function(){return this.backgroundPane},mxGraphView.prototype.getDrawPane=function(){return this.drawPane},mxGraphView.prototype.getOverlayPane=function(){return this.overlayPane},mxGraphView.prototype.isContainerEvent=function(e){return(e=mxEvent.getSource(e))==this.graph.container||e.parentNode==this.backgroundPane||null!=e.parentNode&&e.parentNode.parentNode==this.backgroundPane||e==this.canvas.parentNode||e==this.canvas||e==this.backgroundPane||e==this.drawPane||e==this.overlayPane},mxGraphView.prototype.isScrollEvent=function(e){var n=mxUtils.getOffset(this.graph.container);e=new mxPoint(e.clientX-n.x,e.clientY-n.y);n=this.graph.container.offsetWidth;var t=this.graph.container.clientWidth;return t<n&&e.x>t+2&&e.x<=n||(n=this.graph.container.offsetHeight,(t=this.graph.container.clientHeight)<n&&e.y>t+2&&e.y<=n)},mxGraphView.prototype.init=function(){this.installListeners();var e=this.graph;e.dialect==mxConstants.DIALECT_SVG?this.createSvg():e.dialect==mxConstants.DIALECT_VML?this.createVml():this.createHtml()},mxGraphView.prototype.installListeners=function(){var a=this.graph,i=a.container;if(null!=i){mxEvent.addGestureListeners(i,mxUtils.bind(this,function(e){mxClient.IS_TOUCH&&a.isEditing()&&a.stopEditing(!a.isInvokesStopCellEditing()),this.isContainerEvent(e)&&(!mxClient.IS_IE&&!mxClient.IS_GC&&!mxClient.IS_OP&&!mxClient.IS_SF||!this.isScrollEvent(e))&&a.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e))}),mxUtils.bind(this,function(e){this.isContainerEvent(e)&&a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e))}),mxUtils.bind(this,function(e){this.isContainerEvent(e)&&a.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e))})),mxEvent.addListener(i,"dblclick",mxUtils.bind(this,function(e){a.dblClick(e)}));a.addMouseListener({mouseDown:function(e,n){a.panningHandler.hideMenu()},mouseMove:function(){},mouseUp:function(){}}),this.moveHandler=mxUtils.bind(this,function(e){var n,t;null!=a.tooltipHandler&&a.tooltipHandler.isHideOnHover()&&a.tooltipHandler.hide(),this.captureDocumentGesture&&a.isMouseDown&&!mxEvent.isConsumed(e)&&a.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,(n=e,t=null,mxClient.IS_TOUCH&&(t=mxEvent.getClientX(n),n=mxEvent.getClientY(n),n=mxUtils.convertPoint(i,t,n),t=a.view.getState(a.getCellAt(n.x,n.y))),t)))}),this.endHandler=mxUtils.bind(this,function(e){this.captureDocumentGesture&&a.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e))}),mxEvent.addGestureListeners(document,null,this.moveHandler,this.endHandler)}},mxGraphView.prototype.createHtml=function(){var e=this.graph.container;null!=e&&(this.canvas=this.createHtmlPane("100%","100%"),this.backgroundPane=this.createHtmlPane("1px","1px"),this.drawPane=this.createHtmlPane("1px","1px"),this.overlayPane=this.createHtmlPane("1px","1px"),this.canvas.appendChild(this.backgroundPane),this.canvas.appendChild(this.drawPane),this.canvas.appendChild(this.overlayPane),e.appendChild(this.canvas),mxClient.IS_QUIRKS&&(e=mxUtils.bind(this,function(e){e=this.getGraphBounds(),this.updateHtmlCanvasSize(e.x+e.width+this.graph.border,e.y+e.height+this.graph.border)}),mxEvent.addListener(window,"resize",e)))},mxGraphView.prototype.updateHtmlCanvasSize=function(e,n){if(null!=this.graph.container){var t=this.graph.container.offsetHeight;this.canvas.style.width=this.graph.container.offsetWidth<e?e+"px":"100%",this.canvas.style.height=t<n?n+"px":"100%"}},mxGraphView.prototype.createHtmlPane=function(e,n){var t=document.createElement("DIV");return null!=e&&null!=n?(t.style.position="absolute",t.style.left="0px",t.style.top="0px",t.style.width=e,t.style.height=n):t.style.position="relative",t},mxGraphView.prototype.createVml=function(){var e=this.graph.container;if(null!=e){var n=e.offsetWidth,t=e.offsetHeight;this.canvas=this.createVmlPane(n,t),this.backgroundPane=this.createVmlPane(n,t),this.drawPane=this.createVmlPane(n,t),this.overlayPane=this.createVmlPane(n,t),this.canvas.appendChild(this.backgroundPane),this.canvas.appendChild(this.drawPane),this.canvas.appendChild(this.overlayPane),e.appendChild(this.canvas)}},mxGraphView.prototype.createVmlPane=function(e,n){var t=document.createElement(mxClient.VML_PREFIX+":group");return t.style.position="absolute",t.style.left="0px",t.style.top="0px",t.style.width=e+"px",t.style.height=n+"px",t.setAttribute("coordsize",e+","+n),t.setAttribute("coordorigin","0,0"),t},mxGraphView.prototype.createSvg=function(){var e=this.graph.container;this.canvas=document.createElementNS(mxConstants.NS_SVG,"g"),this.backgroundPane=document.createElementNS(mxConstants.NS_SVG,"g"),this.canvas.appendChild(this.backgroundPane),this.drawPane=document.createElementNS(mxConstants.NS_SVG,"g"),this.canvas.appendChild(this.drawPane),this.overlayPane=document.createElementNS(mxConstants.NS_SVG,"g"),this.canvas.appendChild(this.overlayPane);var n=document.createElementNS(mxConstants.NS_SVG,"svg");n.style.width="100%",n.style.height="100%",n.style.display="block",n.appendChild(this.canvas),null!=e&&(e.appendChild(n),"static"==mxUtils.getCurrentStyle(e).position&&(e.style.position="relative"))},mxGraphView.prototype.destroy=function(){var e=null!=this.canvas?this.canvas.ownerSVGElement:null;null==e&&(e=this.canvas),null!=e&&null!=e.parentNode&&(this.clear(this.currentRoot,!0),mxEvent.removeGestureListeners(document,null,this.moveHandler,this.endHandler),mxEvent.release(this.graph.container),e.parentNode.removeChild(e),this.overlayPane=this.drawPane=this.backgroundPane=this.canvas=this.endHandler=this.moveHandler=null)},mxCurrentRootChange.prototype.execute=function(){var e=this.view.currentRoot;this.view.currentRoot=this.previous,this.previous=e,null!=(e=this.view.graph.getTranslateForRoot(this.view.currentRoot))&&(this.view.translate=new mxPoint(-e.x,-e.y)),this.view.fireEvent(new mxEventObject(this.isUp?mxEvent.UP:mxEvent.DOWN,"root",this.view.currentRoot,"previous",this.previous)),this.isUp?(this.view.clear(this.view.currentRoot,!0),this.view.validate()):this.view.refresh(),this.isUp=!this.isUp},mxLoadResources&&mxResources.add(mxClient.basePath+"/resources/graph"),mxGraph.prototype=new mxEventSource,mxGraph.prototype.constructor=mxGraph,mxGraph.prototype.EMPTY_ARRAY=[],mxGraph.prototype.mouseListeners=null,mxGraph.prototype.isMouseDown=!1,mxGraph.prototype.model=null,mxGraph.prototype.view=null,mxGraph.prototype.stylesheet=null,mxGraph.prototype.selectionModel=null,mxGraph.prototype.cellEditor=null,mxGraph.prototype.cellRenderer=null,mxGraph.prototype.multiplicities=null,mxGraph.prototype.renderHint=null,mxGraph.prototype.dialect=null,mxGraph.prototype.gridSize=10,mxGraph.prototype.gridEnabled=!0,mxGraph.prototype.portsEnabled=!0,mxGraph.prototype.doubleTapEnabled=!0,mxGraph.prototype.doubleTapTimeout=700,mxGraph.prototype.doubleTapTolerance=25,mxGraph.prototype.lastTouchY=0,mxGraph.prototype.lastTouchY=0,mxGraph.prototype.lastTouchTime=0,mxGraph.prototype.gestureEnabled=!0,mxGraph.prototype.tolerance=4,mxGraph.prototype.defaultOverlap=.5,mxGraph.prototype.defaultParent=null,mxGraph.prototype.alternateEdgeStyle=null,mxGraph.prototype.backgroundImage=null,mxGraph.prototype.pageVisible=!1,mxGraph.prototype.pageBreaksVisible=!1,mxGraph.prototype.pageBreakColor="gray",mxGraph.prototype.pageBreakDashed=!0,mxGraph.prototype.minPageBreakDist=20,mxGraph.prototype.preferPageSize=!1,mxGraph.prototype.pageFormat=mxConstants.PAGE_FORMAT_A4_PORTRAIT,mxGraph.prototype.pageScale=1.5,mxGraph.prototype.enabled=!0,mxGraph.prototype.escapeEnabled=!0,mxGraph.prototype.invokesStopCellEditing=!0,mxGraph.prototype.enterStopsCellEditing=!1,mxGraph.prototype.useScrollbarsForPanning=!0,mxGraph.prototype.exportEnabled=!0,mxGraph.prototype.importEnabled=!0,mxGraph.prototype.cellsLocked=!1,mxGraph.prototype.cellsCloneable=!0,mxGraph.prototype.foldingEnabled=!0,mxGraph.prototype.cellsEditable=!0,mxGraph.prototype.cellsDeletable=!0,mxGraph.prototype.cellsMovable=!0,mxGraph.prototype.edgeLabelsMovable=!0,mxGraph.prototype.vertexLabelsMovable=!1,mxGraph.prototype.dropEnabled=!1,mxGraph.prototype.splitEnabled=!0,mxGraph.prototype.cellsResizable=!0,mxGraph.prototype.cellsBendable=!0,mxGraph.prototype.cellsSelectable=!0,mxGraph.prototype.cellsDisconnectable=!0,mxGraph.prototype.autoSizeCells=!1,mxGraph.prototype.autoScroll=!0,mxGraph.prototype.timerAutoScroll=!1,mxGraph.prototype.allowAutoPanning=!1,mxGraph.prototype.ignoreScrollbars=!1,mxGraph.prototype.autoExtend=!0,mxGraph.prototype.maximumGraphBounds=null,mxGraph.prototype.minimumGraphSize=null,mxGraph.prototype.minimumContainerSize=null,mxGraph.prototype.maximumContainerSize=null,mxGraph.prototype.resizeContainer=!1,mxGraph.prototype.border=0,mxGraph.prototype.ordered=!0,mxGraph.prototype.keepEdgesInForeground=!1,mxGraph.prototype.keepEdgesInBackground=!0,mxGraph.prototype.allowNegativeCoordinates=!0,mxGraph.prototype.constrainChildren=!0,mxGraph.prototype.extendParents=!0,mxGraph.prototype.extendParentsOnAdd=!0,mxGraph.prototype.collapseToPreferredSize=!0,mxGraph.prototype.zoomFactor=1.2,mxGraph.prototype.keepSelectionVisibleOnZoom=!1,mxGraph.prototype.centerZoom=!0,mxGraph.prototype.resetViewOnRootChange=!0,mxGraph.prototype.resetEdgesOnResize=!1,mxGraph.prototype.resetEdgesOnMove=!1,mxGraph.prototype.resetEdgesOnConnect=!0,mxGraph.prototype.allowLoops=!1,mxGraph.prototype.defaultLoopStyle=mxEdgeStyle.Loop,mxGraph.prototype.multigraph=!0,mxGraph.prototype.connectableEdges=!1,mxGraph.prototype.allowDanglingEdges=!0,mxGraph.prototype.cloneInvalidEdges=!1,mxGraph.prototype.disconnectOnMove=!0,mxGraph.prototype.labelsVisible=!0,mxGraph.prototype.htmlLabels=!1,mxGraph.prototype.swimlaneSelectionEnabled=!0,mxGraph.prototype.swimlaneNesting=!0,mxGraph.prototype.swimlaneIndicatorColorAttribute=mxConstants.STYLE_FILLCOLOR,mxGraph.prototype.imageBundles=null,mxGraph.prototype.minFitScale=.1,mxGraph.prototype.maxFitScale=8,mxGraph.prototype.panDx=0,mxGraph.prototype.panDy=0,mxGraph.prototype.collapsedImage=new mxImage(mxClient.imageBasePath+"/collapsed.gif",9,9),mxGraph.prototype.expandedImage=new mxImage(mxClient.imageBasePath+"/expanded.gif",9,9),mxGraph.prototype.warningImage=new mxImage("/assets/plugins/mxgraph/images/warning.gif",16,16),mxGraph.prototype.alreadyConnectedResource="none"!=mxClient.language?"alreadyConnected":"",mxGraph.prototype.containsValidationErrorsResource="none"!=mxClient.language?"containsValidationErrors":"",mxGraph.prototype.collapseExpandResource="none"!=mxClient.language?"collapse-expand":"",mxGraph.prototype.init=function(e){this.container=e,this.cellEditor=this.createCellEditor(),this.view.init(),this.sizeDidChange(),mxClient.IS_IE&&(mxEvent.addListener(window,"unload",mxUtils.bind(this,function(){this.destroy()})),mxEvent.addListener(e,"selectstart",mxUtils.bind(this,function(){return this.isEditing()}))),8==document.documentMode&&e.insertAdjacentHTML("beforeend",'<v:group style="DISPLAY: none;"></v:group>')},mxGraph.prototype.createHandlers=function(e){this.tooltipHandler=new mxTooltipHandler(this),this.tooltipHandler.setEnabled(!1),this.panningHandler=new mxPanningHandler(this),this.panningHandler.panningEnabled=!1,this.selectionCellsHandler=new mxSelectionCellsHandler(this),this.connectionHandler=new mxConnectionHandler(this),this.connectionHandler.setEnabled(!1),this.graphHandler=new mxGraphHandler(this)},mxGraph.prototype.createSelectionModel=function(){return new mxGraphSelectionModel(this)},mxGraph.prototype.createStylesheet=function(){return new mxStylesheet},mxGraph.prototype.createGraphView=function(){return new mxGraphView(this)},mxGraph.prototype.createCellRenderer=function(){return new mxCellRenderer},mxGraph.prototype.createCellEditor=function(){return new mxCellEditor(this)},mxGraph.prototype.getModel=function(){return this.model},mxGraph.prototype.getView=function(){return this.view},mxGraph.prototype.getStylesheet=function(){return this.stylesheet},mxGraph.prototype.setStylesheet=function(e){this.stylesheet=e},mxGraph.prototype.getSelectionModel=function(){return this.selectionModel},mxGraph.prototype.setSelectionModel=function(e){this.selectionModel=e},mxGraph.prototype.getSelectionCellsForChanges=function(e){for(var n=[],t=0;t<e.length;t++){var a=e[t];if(a.constructor!=mxRootChange){var i=null;a instanceof mxChildChange&&null==a.previous?i=a.child:null!=a.cell&&a.cell instanceof mxCell&&(i=a.cell),null!=i&&mxUtils.indexOf(n,i)<0&&n.push(i)}}return this.getModel().getTopmostCells(n)},mxGraph.prototype.graphModelChanged=function(e){for(var n=0;n<e.length;n++)this.processChange(e[n]);this.removeSelectionCells(this.getRemovedCellsForChanges(e)),this.view.validate(),this.sizeDidChange()},mxGraph.prototype.getRemovedCellsForChanges=function(e){for(var n=[],t=0;t<e.length;t++){var a=e[t];if(a instanceof mxRootChange)break;a instanceof mxChildChange?null!=a.previous&&null==a.parent&&(n=n.concat(this.model.getDescendants(a.child))):a instanceof mxVisibleChange&&(n=n.concat(this.model.getDescendants(a.cell)))}return n},mxGraph.prototype.processChange=function(e){if(e instanceof mxRootChange)this.clearSelection(),this.removeStateForCell(e.previous),this.resetViewOnRootChange&&(this.view.scale=1,this.view.translate.x=0,this.view.translate.y=0),this.fireEvent(new mxEventObject(mxEvent.ROOT));else if(e instanceof mxChildChange){var n=this.model.getParent(e.child);null!=n?this.view.invalidate(e.child,!0,!1,null!=e.previous):(this.removeStateForCell(e.child),this.view.currentRoot==e.child&&this.home()),n!=e.previous&&(null!=n&&this.view.invalidate(n,!1,!1),null!=e.previous&&this.view.invalidate(e.previous,!1,!1))}else e instanceof mxTerminalChange||e instanceof mxGeometryChange?this.view.invalidate(e.cell):e instanceof mxValueChange?this.view.invalidate(e.cell,!1,!1):e instanceof mxStyleChange?(this.view.invalidate(e.cell,!0,!0,!1),this.view.removeState(e.cell)):null!=e.cell&&e.cell instanceof mxCell&&this.removeStateForCell(e.cell)},mxGraph.prototype.removeStateForCell=function(e){for(var n=this.model.getChildCount(e),t=0;t<n;t++)this.removeStateForCell(this.model.getChildAt(e,t));this.view.removeState(e)},mxGraph.prototype.addCellOverlay=function(e,n){null==e.overlays&&(e.overlays=[]),e.overlays.push(n);var t=this.view.getState(e);return null!=t&&this.cellRenderer.redraw(t),this.fireEvent(new mxEventObject(mxEvent.ADD_OVERLAY,"cell",e,"overlay",n)),n},mxGraph.prototype.getCellOverlays=function(e){return e.overlays},mxGraph.prototype.removeCellOverlay=function(e,n){if(null==n)this.removeCellOverlays(e);else{var t=mxUtils.indexOf(e.overlays,n);0<=t?(e.overlays.splice(t,1),0==e.overlays.length&&(e.overlays=null),null!=(t=this.view.getState(e))&&this.cellRenderer.redraw(t),this.fireEvent(new mxEventObject(mxEvent.REMOVE_OVERLAY,"cell",e,"overlay",n))):n=null}return n},mxGraph.prototype.removeCellOverlays=function(e){var n=e.overlays;if(null!=n){e.overlays=null;var t=this.view.getState(e);for(null!=t&&this.cellRenderer.redraw(t),t=0;t<n.length;t++)this.fireEvent(new mxEventObject(mxEvent.REMOVE_OVERLAY,"cell",e,"overlay",n[t]))}return n},mxGraph.prototype.clearCellOverlays=function(e){e=null!=e?e:this.model.getRoot(),this.removeCellOverlays(e);for(var n=this.model.getChildCount(e),t=0;t<n;t++){var a=this.model.getChildAt(e,t);this.clearCellOverlays(a)}},mxGraph.prototype.setCellWarning=function(t,e,n,a){return null!=e&&0<e.length?(e=new mxCellOverlay(n=null!=n?n:this.warningImage,"<font color=red>"+e+"</font>"),a&&e.addListener(mxEvent.CLICK,mxUtils.bind(this,function(e,n){this.isEnabled()&&this.setSelectionCell(t)})),this.addCellOverlay(t,e)):(this.removeCellOverlays(t),null)},mxGraph.prototype.startEditing=function(e){this.startEditingAtCell(null,e)},mxGraph.prototype.startEditingAtCell=function(e,n){null==e&&(null!=(e=this.getSelectionCell())&&!this.isCellEditable(e)&&(e=null)),null!=e&&(this.fireEvent(new mxEventObject(mxEvent.START_EDITING,"cell",e,"event",n)),this.cellEditor.startEditing(e,n))},mxGraph.prototype.getEditingValue=function(e,n){return this.convertValueToString(e)},mxGraph.prototype.stopEditing=function(e){this.cellEditor.stopEditing(e)},mxGraph.prototype.labelChanged=function(e,n,t){this.model.beginUpdate();try{this.cellLabelChanged(e,n,this.isAutoSizeCell(e)),this.fireEvent(new mxEventObject(mxEvent.LABEL_CHANGED,"cell",e,"value",n,"event",t))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellLabelChanged=function(e,n,t){this.model.beginUpdate();try{this.model.setValue(e,n),t&&this.cellSizeUpdated(e,!1)}finally{this.model.endUpdate()}},mxGraph.prototype.escape=function(e){this.stopEditing(!0),this.connectionHandler.reset(),this.graphHandler.reset(),e=this.getSelectionCells();for(var n=0;n<e.length;n++){var t=this.view.getState(e[n]);null!=t&&null!=t.handler&&t.handler.reset()}},mxGraph.prototype.click=function(e){var n=e.getEvent(),t=e.getCell(),a=new mxEventObject(mxEvent.CLICK,"event",n,"cell",t);e.isConsumed()&&a.consume(),this.fireEvent(a),this.isEnabled()&&!mxEvent.isConsumed(n)&&!a.isConsumed()&&(null!=t?this.selectCellForEvent(t,n):(t=null,this.isSwimlaneSelectionEnabled()&&(t=this.getSwimlaneAt(e.getGraphX(),e.getGraphY())),null!=t?this.selectCellForEvent(t,n):this.isToggleEvent(n)||this.clearSelection()))},mxGraph.prototype.dblClick=function(e,n){var t=new mxEventObject(mxEvent.DOUBLE_CLICK,"event",e,"cell",n);this.fireEvent(t),this.isEnabled()&&!mxEvent.isConsumed(e)&&!t.isConsumed()&&null!=n&&this.isCellEditable(n)&&this.startEditingAtCell(n,e)},mxGraph.prototype.scrollPointToVisible=function(e,n,t,a){if(this.timerAutoScroll||!this.ignoreScrollbars&&!mxUtils.hasScrollbars(this.container))this.allowAutoPanning&&!this.panningHandler.active&&(null==this.panningManager&&(this.panningManager=this.createPanningManager()),this.panningManager.panTo(e+this.panDx,n+this.panDy));else{var i=this.container;if(a=null!=a?a:20,e>=i.scrollLeft&&n>=i.scrollTop&&e<=i.scrollLeft+i.clientWidth&&n<=i.scrollTop+i.clientHeight){var s=i.scrollLeft+i.clientWidth-e;if(s<a){if(e=i.scrollLeft,i.scrollLeft+=a-s,t&&e==i.scrollLeft){if(this.dialect==mxConstants.DIALECT_SVG){e=this.view.getDrawPane().ownerSVGElement;var o=this.container.scrollWidth+a-s}else o=Math.max(i.clientWidth,i.scrollWidth)+a-s,e=this.view.getCanvas();e.style.width=o+"px",i.scrollLeft+=a-s}}else(s=e-i.scrollLeft)<a&&(i.scrollLeft-=a-s);(s=i.scrollTop+i.clientHeight-n)<a?(e=i.scrollTop,i.scrollTop+=a-s,e==i.scrollTop&&t&&(this.dialect==mxConstants.DIALECT_SVG?(e=this.view.getDrawPane().ownerSVGElement,n=this.container.scrollHeight+a-s):(n=Math.max(i.clientHeight,i.scrollHeight)+a-s,e=this.view.getCanvas()),e.style.height=n+"px",i.scrollTop+=a-s)):(s=n-i.scrollTop)<a&&(i.scrollTop-=a-s)}}},mxGraph.prototype.createPanningManager=function(){return new mxPanningManager(this)},mxGraph.prototype.getBorderSizes=function(){function e(e){var n=0;n="thin"==e?2:"medium"==e?4:"thick"==e?6:parseInt(e);return isNaN(n)&&(n=0),n}var n=mxUtils.getCurrentStyle(this.container),t=new mxRectangle;return t.x=e(n.borderLeftWidth)+parseInt(n.paddingLeft||0),t.y=e(n.borderTopWidth)+parseInt(n.paddingTop||0),t.width=e(n.borderRightWidth)+parseInt(n.paddingRight||0),t.height=e(n.borderBottomWidth)+parseInt(n.paddingBottom||0),t},mxGraph.prototype.getPreferredPageSize=function(e,n,t){e=this.view.scale;var a=this.view.translate,i=this.pageFormat,s=e*this.pageScale;i=new mxRectangle(0,0,i.width*s,i.height*s);return n=this.pageBreaksVisible?Math.ceil(n/i.width):1,t=this.pageBreaksVisible?Math.ceil(t/i.height):1,new mxRectangle(0,0,n*i.width+2+a.x/e,t*i.height+2+a.y/e)},mxGraph.prototype.sizeDidChange=function(){var e=this.getGraphBounds();if(null!=this.container){var n=this.getBorder(),t=Math.max(0,e.x+e.width+1+n);n=Math.max(0,e.y+e.height+1+n);if(null!=this.minimumContainerSize&&(t=Math.max(t,this.minimumContainerSize.width),n=Math.max(n,this.minimumContainerSize.height)),this.resizeContainer&&this.doResizeContainer(t,n),this.preferPageSize||!mxClient.IS_IE&&this.pageVisible){var a=this.getPreferredPageSize(e,t,n);null!=a&&(t=a.width,n=a.height)}null!=this.minimumGraphSize&&(t=Math.max(t,this.minimumGraphSize.width*this.view.scale),n=Math.max(n,this.minimumGraphSize.height*this.view.scale)),t=Math.ceil(t-1),n=Math.ceil(n-1),this.dialect==mxConstants.DIALECT_SVG?((a=this.view.getDrawPane().ownerSVGElement).style.minWidth=Math.max(1,t)+"px",a.style.minHeight=Math.max(1,n)+"px",a.style.width="100%",a.style.height="100%"):mxClient.IS_QUIRKS?this.view.updateHtmlCanvasSize(Math.max(1,t),Math.max(1,n)):(this.view.canvas.style.minWidth=Math.max(1,t)+"px",this.view.canvas.style.minHeight=Math.max(1,n)+"px"),this.updatePageBreaks(this.pageBreaksVisible,t-1,n-1)}this.fireEvent(new mxEventObject(mxEvent.SIZE,"bounds",e))},mxGraph.prototype.doResizeContainer=function(e,n){if(mxClient.IS_IE)if(mxClient.IS_QUIRKS){var t=this.getBorderSizes();e+=Math.max(2,t.x+t.width+1),n+=Math.max(2,t.y+t.height+1)}else 9<=document.documentMode?(e+=3,n+=5):(e+=1,n+=1);else n+=1;null!=this.maximumContainerSize&&(e=Math.min(this.maximumContainerSize.width,e),n=Math.min(this.maximumContainerSize.height,n)),this.container.style.width=Math.ceil(e)+"px",this.container.style.height=Math.ceil(n)+"px"},mxGraph.prototype.updatePageBreaks=function(e,n,t){var a=this.view.scale,i=this.view.translate,s=this.pageFormat,o=a*this.pageScale;i=new mxRectangle(a*i.x,a*i.y,s.width*o,s.height*o);if(e=e&&Math.min(i.width,i.height)>this.minPageBreakDist,i.x=mxUtils.mod(i.x,i.width),i.y=mxUtils.mod(i.y,i.height),s=e?Math.ceil((n-i.x)/i.width):0,e=e?Math.ceil((t-i.y)/i.height):0,null==this.horizontalPageBreaks&&0<s&&(this.horizontalPageBreaks=[]),null!=this.horizontalPageBreaks){for(o=0;o<=s;o++){var r=[new mxPoint(i.x+o*i.width,1),new mxPoint(i.x+o*i.width,t)];null!=this.horizontalPageBreaks[o]?(this.horizontalPageBreaks[o].scale=1,this.horizontalPageBreaks[o].points=r,this.horizontalPageBreaks[o].redraw()):((r=new mxPolyline(r,this.pageBreakColor,this.scale)).dialect=this.dialect,r.isDashed=this.pageBreakDashed,r.scale=a,r.init(this.view.backgroundPane),r.redraw(),this.horizontalPageBreaks[o]=r)}for(o=s;o<this.horizontalPageBreaks.length;o++)this.horizontalPageBreaks[o].destroy();this.horizontalPageBreaks.splice(s,this.horizontalPageBreaks.length-s)}if(null==this.verticalPageBreaks&&0<e&&(this.verticalPageBreaks=[]),null!=this.verticalPageBreaks){for(o=0;o<=e;o++)r=[new mxPoint(1,i.y+o*i.height),new mxPoint(n,i.y+o*i.height)],null!=this.verticalPageBreaks[o]?(this.verticalPageBreaks[o].scale=1,this.verticalPageBreaks[o].points=r,this.verticalPageBreaks[o].redraw()):((r=new mxPolyline(r,this.pageBreakColor,a)).dialect=this.dialect,r.isDashed=this.pageBreakDashed,r.scale=a,r.init(this.view.backgroundPane),r.redraw(),this.verticalPageBreaks[o]=r);for(o=e;o<this.verticalPageBreaks.length;o++)this.verticalPageBreaks[o].destroy();this.verticalPageBreaks.splice(e,this.verticalPageBreaks.length-e)}},mxGraph.prototype.getCellStyle=function(e){var n=this.model.getStyle(e),t=null;t=this.model.isEdge(e)?this.stylesheet.getDefaultEdgeStyle():this.stylesheet.getDefaultVertexStyle();return null!=n&&(t=this.postProcessCellStyle(this.stylesheet.getCellStyle(n,t))),null==t&&(t=mxGraph.prototype.EMPTY_ARRAY),t},mxGraph.prototype.postProcessCellStyle=function(e){if(null!=e){var n=e[mxConstants.STYLE_IMAGE],t=this.getImageFromBundles(n);null!=t?e[mxConstants.STYLE_IMAGE]=t:t=n,null!=t&&"data:image/"==t.substring(0,11)&&(0<(n=t.indexOf(","))&&(t=t.substring(0,n)+";base64,"+t.substring(n+1)),e[mxConstants.STYLE_IMAGE]=t)}return e},mxGraph.prototype.setCellStyle=function(e,n){if(null!=(n=n||this.getSelectionCells())){this.model.beginUpdate();try{for(var t=0;t<n.length;t++)this.model.setStyle(n[t],e)}finally{this.model.endUpdate()}}},mxGraph.prototype.toggleCellStyle=function(e,n,t){t=t||this.getSelectionCell(),this.toggleCellStyles(e,n,[t])},mxGraph.prototype.toggleCellStyles=function(e,n,t){var a;(n=null!=n&&n,null!=(t=t||this.getSelectionCells())&&0<t.length)&&(null!=(a=null!=(a=this.view.getState(t[0]))?a.style:this.getCellStyle(t[0]))&&(n=mxUtils.getValue(a,e,n)?0:1,this.setCellStyles(e,n,t)))},mxGraph.prototype.setCellStyles=function(e,n,t){t=t||this.getSelectionCells(),mxUtils.setCellStyles(this.model,t,e,n)},mxGraph.prototype.toggleCellStyleFlags=function(e,n,t){this.setCellStyleFlags(e,n,null,t)},mxGraph.prototype.setCellStyleFlags=function(e,n,t,a){if(null!=(a=a||this.getSelectionCells())&&0<a.length){var i;if(null==t)null!=(i=null!=(i=this.view.getState(a[0]))?i.style:this.getCellStyle(a[0]))&&(t=(parseInt(i[e]||0)&n)!=n);mxUtils.setCellStyleFlags(this.model,a,e,n,t)}},mxGraph.prototype.alignCells=function(e,n,t){if(null==n&&(n=this.getSelectionCells()),null!=n&&1<n.length){if(null==t)for(var a=0;a<n.length;a++){var i=this.getCellGeometry(n[a]);if(null!=i&&!this.model.isEdge(n[a]))if(null==t){if(e==mxConstants.ALIGN_CENTER){t=i.x+i.width/2;break}if(e==mxConstants.ALIGN_RIGHT)t=i.x+i.width;else if(e==mxConstants.ALIGN_TOP)t=i.y;else{if(e==mxConstants.ALIGN_MIDDLE){t=i.y+i.height/2;break}t=e==mxConstants.ALIGN_BOTTOM?i.y+i.height:i.x}}else t=e==mxConstants.ALIGN_RIGHT?Math.max(t,i.x+i.width):e==mxConstants.ALIGN_TOP?Math.min(t,i.y):e==mxConstants.ALIGN_BOTTOM?Math.max(t,i.y+i.height):Math.min(t,i.x)}if(null!=t){this.model.beginUpdate();try{for(a=0;a<n.length;a++)null!=(i=this.getCellGeometry(n[a]))&&!this.model.isEdge(n[a])&&(i=i.clone(),e==mxConstants.ALIGN_CENTER?i.x=t-i.width/2:e==mxConstants.ALIGN_RIGHT?i.x=t-i.width:e==mxConstants.ALIGN_TOP?i.y=t:e==mxConstants.ALIGN_MIDDLE?i.y=t-i.height/2:e==mxConstants.ALIGN_BOTTOM?i.y=t-i.height:i.x=t,this.model.setGeometry(n[a],i));this.fireEvent(new mxEventObject(mxEvent.ALIGN_CELLS,"align",e,"cells",n))}finally{this.model.endUpdate()}}}return n},mxGraph.prototype.flipEdge=function(e){if(null!=e&&null!=this.alternateEdgeStyle){this.model.beginUpdate();try{var n=this.model.getStyle(e);null==n||0==n.length?this.model.setStyle(e,this.alternateEdgeStyle):this.model.setStyle(e,null),this.resetEdge(e),this.fireEvent(new mxEventObject(mxEvent.FLIP_EDGE,"edge",e))}finally{this.model.endUpdate()}}return e},mxGraph.prototype.addImageBundle=function(e){this.imageBundles.push(e)},mxGraph.prototype.removeImageBundle=function(e){for(var n=[],t=0;t<this.imageBundles.length;t++)this.imageBundles[t]!=e&&n.push(this.imageBundles[t]);this.imageBundles=n},mxGraph.prototype.getImageFromBundles=function(e){if(null!=e)for(var n=0;n<this.imageBundles.length;n++){var t=this.imageBundles[n].getImage(e);if(null!=t)return t}return null},mxGraph.prototype.orderCells=function(e,n){null==n&&(n=mxUtils.sortCells(this.getSelectionCells(),!0)),this.model.beginUpdate();try{this.cellsOrdered(n,e),this.fireEvent(new mxEventObject(mxEvent.ORDER_CELLS,"back",e,"cells",n))}finally{this.model.endUpdate()}return n},mxGraph.prototype.cellsOrdered=function(e,n){if(null!=e){this.model.beginUpdate();try{for(var t=0;t<e.length;t++){var a=this.model.getParent(e[t]);n?this.model.add(a,e[t],t):this.model.add(a,e[t],this.model.getChildCount(a)-1)}this.fireEvent(new mxEventObject(mxEvent.CELLS_ORDERED,"back",n,"cells",e))}finally{this.model.endUpdate()}}},mxGraph.prototype.groupCells=function(e,n,t){null==t&&(t=mxUtils.sortCells(this.getSelectionCells(),!0)),t=this.getCellsForGroup(t),null==e&&(e=this.createGroupCell(t));var a=this.getBoundsForGroup(e,t,n);if(0<t.length&&null!=a){var i=this.model.getParent(e);null==i&&(i=this.model.getParent(t[0])),this.model.beginUpdate();try{null==this.getCellGeometry(e)&&this.model.setGeometry(e,new mxGeometry);var s=this.model.getChildCount(i);this.cellsAdded([e],i,s,null,null,!1),s=this.model.getChildCount(e),this.cellsAdded(t,e,s,null,null,!1,!1),this.cellsMoved(t,-a.x,-a.y,!1,!0),this.cellsResized([e],[a]),this.fireEvent(new mxEventObject(mxEvent.GROUP_CELLS,"group",e,"border",n,"cells",t))}finally{this.model.endUpdate()}}return e},mxGraph.prototype.getCellsForGroup=function(e){var n=[];if(null!=e&&0<e.length){var t=this.model.getParent(e[0]);n.push(e[0]);for(var a=1;a<e.length;a++)this.model.getParent(e[a])==t&&n.push(e[a])}return n},mxGraph.prototype.getBoundsForGroup=function(e,n,t){return null!=(n=this.getBoundingBoxFromGeometry(n))&&(this.isSwimlane(e)&&(e=this.getStartSize(e),n.x-=e.width,n.y-=e.height,n.width+=e.width,n.height+=e.height),n.x-=t,n.y-=t,n.width+=2*t,n.height+=2*t),n},mxGraph.prototype.createGroupCell=function(e){return(e=new mxCell("")).setVertex(!0),e.setConnectable(!1),e},mxGraph.prototype.ungroupCells=function(e){var n=[];if(null==e){e=this.getSelectionCells();for(var t=[],a=0;a<e.length;a++)0<this.model.getChildCount(e[a])&&t.push(e[a]);e=t}if(null!=e&&0<e.length){this.model.beginUpdate();try{for(a=0;a<e.length;a++){if(null!=(i=this.model.getChildren(e[a]))&&0<i.length){var i=i.slice(),s=this.model.getParent(e[a]),o=this.model.getChildCount(s);this.cellsAdded(i,s,o,null,null,!0),n=n.concat(i)}}this.cellsRemoved(this.addAllEdges(e)),this.fireEvent(new mxEventObject(mxEvent.UNGROUP_CELLS,"cells",e))}finally{this.model.endUpdate()}}return n},mxGraph.prototype.removeCellsFromParent=function(e){null==e&&(e=this.getSelectionCells()),this.model.beginUpdate();try{var n=this.getDefaultParent(),t=this.model.getChildCount(n);this.cellsAdded(e,n,t,null,null,!0),this.fireEvent(new mxEventObject(mxEvent.REMOVE_CELLS_FROM_PARENT,"cells",e))}finally{this.model.endUpdate()}return e},mxGraph.prototype.updateGroupBounds=function(e,n,t){null==e&&(e=this.getSelectionCells()),n=null!=n?n:0,t=null!=t&&t,this.model.beginUpdate();try{for(var a=0;a<e.length;a++){if(null!=(r=this.getCellGeometry(e[a]))){var i=this.getChildCells(e[a]);if(null!=i&&0<i.length){var s=this.getBoundingBoxFromGeometry(i);if(0<s.width&&0<s.height){var o=this.isSwimlane(e[a])?this.getStartSize(e[a]):new mxRectangle,r=r.clone();t&&(r.x+=s.x-o.width-n,r.y+=s.y-o.height-n),r.width=s.width+o.width+2*n,r.height=s.height+o.height+2*n,this.model.setGeometry(e[a],r),this.moveCells(i,-s.x+o.width+n,-s.y+o.height+n)}}}}}finally{this.model.endUpdate()}return e},mxGraph.prototype.cloneCells=function(e,n){n=null==n||n;var t=null;if(null!=e){for(var a={},i=(t=[],0);i<e.length;i++){a[s=mxCellPath.create(e[i])]=e[i],t.push(e[i])}if(0<t.length){var s=this.view.scale,o=this.view.translate;for(t=this.model.cloneCells(e,!0),i=0;i<e.length;i++)if(!n&&this.model.isEdge(t[i])&&null!=this.getEdgeValidationError(t[i],this.model.getTerminal(t[i],!0),this.model.getTerminal(t[i],!1)))t[i]=null;else{var r=this.model.getGeometry(t[i]);if(null!=r){var l=this.view.getState(e[i]),d=this.view.getState(this.model.getParent(e[i]));if(null!=l&&null!=d){var c=d.origin.x;d=d.origin.y;if(this.model.isEdge(t[i])){l=l.absolutePoints;for(var m=this.model.getTerminal(e[i],!0),u=mxCellPath.create(m);null!=m&&null==a[u];)m=this.model.getParent(m),u=mxCellPath.create(m);for(null==m&&r.setTerminalPoint(new mxPoint(l[0].x/s-o.x,l[0].y/s-o.y),!0),m=this.model.getTerminal(e[i],!1),u=mxCellPath.create(m);null!=m&&null==a[u];)m=this.model.getParent(m),u=mxCellPath.create(m);if(null==m&&(m=l.length-1,r.setTerminalPoint(new mxPoint(l[m].x/s-o.x,l[m].y/s-o.y),!1)),null!=(r=r.points))for(l=0;l<r.length;l++)r[l].x+=c,r[l].y+=d}else r.x+=c,r.y+=d}}}}else t=[]}return t},mxGraph.prototype.insertVertex=function(e,n,t,a,i,s,o,r,l){return n=this.createVertex(e,n,t,a,i,s,o,r,l),this.addCell(n,e)},mxGraph.prototype.createVertex=function(e,n,t,a,i,s,o,r,l){return(e=new mxGeometry(a,i,s,o)).relative=null!=l&&l,(t=new mxCell(t,e,r)).setId(n),t.setVertex(!0),t.setConnectable(!0),t},mxGraph.prototype.insertEdge=function(e,n,t,a,i,s){return n=this.createEdge(e,n,t,a,i,s),this.addEdge(n,e,a,i)},mxGraph.prototype.createEdge=function(e,n,t,a,i,s){return(e=new mxCell(t,new mxGeometry,s)).setId(n),e.setEdge(!0),e.geometry.relative=!0,e},mxGraph.prototype.addEdge=function(e,n,t,a,i){return this.addCell(e,n,i,t,a)},mxGraph.prototype.addCell=function(e,n,t,a,i){return this.addCells([e],n,t,a,i)[0]},mxGraph.prototype.addCells=function(e,n,t,a,i){null==n&&(n=this.getDefaultParent()),null==t&&(t=this.model.getChildCount(n)),this.model.beginUpdate();try{this.cellsAdded(e,n,t,a,i,!1,!0),this.fireEvent(new mxEventObject(mxEvent.ADD_CELLS,"cells",e,"parent",n,"index",t,"source",a,"target",i))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellsAdded=function(e,n,t,a,i,s,o){if(null!=e&&null!=n&&null!=t){this.model.beginUpdate();try{for(var r=null!=(d=s?this.view.getState(n):null)?d.origin:null,l=new mxPoint(0,0),d=0;d<e.length;d++)if(null==e[d])t--;else{var c=this.model.getParent(e[d]);if(null!=r&&e[d]!=n&&n!=c){var m=this.view.getState(c),u=null!=m?m.origin:l;if(null!=(p=this.model.getGeometry(e[d]))){var p,g=u.x-r.x,v=u.y-r.y;(p=p.clone()).translate(g,v),!p.relative&&this.model.isVertex(e[d])&&!this.isAllowNegativeCoordinates()&&(p.x=Math.max(0,p.x),p.y=Math.max(0,p.y)),this.model.setGeometry(e[d],p)}}n==c&&t+d>this.model.getChildCount(n)&&t--,this.model.add(n,e[d],t+d),this.isExtendParentsOnAdd()&&this.isExtendParent(e[d])&&this.extendParent(e[d]),(null==o||o)&&this.constrainChild(e[d]),null!=a&&this.cellConnected(e[d],a,!0),null!=i&&this.cellConnected(e[d],i,!1)}this.fireEvent(new mxEventObject(mxEvent.CELLS_ADDED,"cells",e,"parent",n,"index",t,"source",a,"target",i,"absolute",s))}finally{this.model.endUpdate()}}},mxGraph.prototype.removeCells=function(e,n){n=null==n||n,null==e&&(e=this.getDeletableCells(this.getSelectionCells())),n&&(e=this.getDeletableCells(this.addAllEdges(e))),this.model.beginUpdate();try{this.cellsRemoved(e),this.fireEvent(new mxEventObject(mxEvent.REMOVE_CELLS,"cells",e,"includeEdges",n))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellsRemoved=function(e){if(null!=e&&0<e.length){var n=this.view.scale,t=this.view.translate;this.model.beginUpdate();try{for(var a={},i=0;i<e.length;i++){var s=mxCellPath.create(e[i]);a[s]=e[i]}for(i=0;i<e.length;i++){for(var o=this.getConnections(e[i]),r=0;r<o.length;r++)if(null==a[s=mxCellPath.create(o[r])]){if(null!=(d=this.model.getGeometry(o[r]))){var l=this.view.getState(o[r]);if(null!=l){var d=d.clone(),c=l.getVisibleTerminal(!0)==e[i],m=l.absolutePoints,u=c?0:m.length-1;d.setTerminalPoint(new mxPoint(m[u].x/n-t.x,m[u].y/n-t.y),c),this.model.setTerminal(o[r],null,c),this.model.setGeometry(o[r],d)}}}this.model.remove(e[i])}this.fireEvent(new mxEventObject(mxEvent.CELLS_REMOVED,"cells",e))}finally{this.model.endUpdate()}}},mxGraph.prototype.splitEdge=function(e,n,t,a,i){a=a||0,i=i||0,null==t&&(t=this.cloneCells([e])[0]);var s=this.model.getParent(e),o=this.model.getTerminal(e,!0);this.model.beginUpdate();try{this.cellsMoved(n,a,i,!1,!1),this.cellsAdded(n,s,this.model.getChildCount(s),null,null,!0),this.cellsAdded([t],s,this.model.getChildCount(s),o,n[0],!1),this.cellConnected(e,n[0],!0),this.fireEvent(new mxEventObject(mxEvent.SPLIT_EDGE,"edge",e,"cells",n,"newEdge",t,"dx",a,"dy",i))}finally{this.model.endUpdate()}return t},mxGraph.prototype.toggleCells=function(e,n,t){null==n&&(n=this.getSelectionCells()),t&&(n=this.addAllEdges(n)),this.model.beginUpdate();try{this.cellsToggled(n,e),this.fireEvent(new mxEventObject(mxEvent.TOGGLE_CELLS,"show",e,"cells",n,"includeEdges",t))}finally{this.model.endUpdate()}return n},mxGraph.prototype.cellsToggled=function(e,n){if(null!=e&&0<e.length){this.model.beginUpdate();try{for(var t=0;t<e.length;t++)this.model.setVisible(e[t],n)}finally{this.model.endUpdate()}}},mxGraph.prototype.foldCells=function(e,n,t,a){n=null!=n&&n,null==t&&(t=this.getFoldableCells(this.getSelectionCells(),e)),this.stopEditing(!1),this.model.beginUpdate();try{this.cellsFolded(t,e,n,a),this.fireEvent(new mxEventObject(mxEvent.FOLD_CELLS,"collapse",e,"recurse",n,"cells",t))}finally{this.model.endUpdate()}return t},mxGraph.prototype.cellsFolded=function(e,n,t,a){if(null!=e&&0<e.length){this.model.beginUpdate();try{for(var i=0;i<e.length;i++)if((!a||this.isCellFoldable(e[i],n))&&n!=this.isCellCollapsed(e[i])&&(this.model.setCollapsed(e[i],n),this.swapBounds(e[i],n),this.isExtendParent(e[i])&&this.extendParent(e[i]),t)){var s=this.model.getChildren(e[i]);this.foldCells(s,n,t)}this.fireEvent(new mxEventObject(mxEvent.CELLS_FOLDED,"cells",e,"collapse",n,"recurse",t))}finally{this.model.endUpdate()}}},mxGraph.prototype.swapBounds=function(e,n){if(null!=e){var t=this.model.getGeometry(e);null!=t&&(t=t.clone(),this.updateAlternateBounds(e,t,n),t.swap(),this.model.setGeometry(e,t))}},mxGraph.prototype.updateAlternateBounds=function(e,n,t){if(null!=e&&null!=n){if(t=null!=(t=this.view.getState(e))?t.style:this.getCellStyle(e),null==n.alternateBounds){var a=n;this.collapseToPreferredSize&&(null!=(e=this.getPreferredSizeForCell(e))&&(a=e,0<(e=mxUtils.getValue(t,mxConstants.STYLE_STARTSIZE))&&(a.height=Math.max(a.height,e)))),n.alternateBounds=new mxRectangle(0,0,a.width,a.height)}if(null!=n.alternateBounds){n.alternateBounds.x=n.x,n.alternateBounds.y=n.y;var i=mxUtils.toRadians(t[mxConstants.STYLE_ROTATION]||"0");0!=i&&(e=n.alternateBounds.getCenterX()-n.getCenterX(),t=n.alternateBounds.getCenterY()-n.getCenterY(),a=Math.cos(i),i=Math.sin(i),n.alternateBounds.x+=a*e-i*t-e,n.alternateBounds.y+=i*e+a*t-t)}}},mxGraph.prototype.addAllEdges=function(e){var n=e.slice();return n.concat(this.getAllEdges(e))},mxGraph.prototype.getAllEdges=function(e){var n=[];if(null!=e)for(var t=0;t<e.length;t++){for(var a=this.model.getEdgeCount(e[t]),i=0;i<a;i++)n.push(this.model.getEdgeAt(e[t],i));a=this.model.getChildren(e[t]),n=n.concat(this.getAllEdges(a))}return n},mxGraph.prototype.updateCellSize=function(e,n){n=null!=n&&n,this.model.beginUpdate();try{this.cellSizeUpdated(e,n),this.fireEvent(new mxEventObject(mxEvent.UPDATE_CELL_SIZE,"cell",e,"ignoreChildren",n))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellSizeUpdated=function(e,n){if(null!=e){this.model.beginUpdate();try{var t=this.getPreferredSizeForCell(e),a=this.model.getGeometry(e);if(null!=t&&null!=a){var i=this.isCellCollapsed(e);a=a.clone();if(this.isSwimlane(e)){var s=this.view.getState(e),o=null!=s?s.style:this.getCellStyle(e),r=this.model.getStyle(e);null==r&&(r=""),mxUtils.getValue(o,mxConstants.STYLE_HORIZONTAL,!0)?(r=mxUtils.setStyle(r,mxConstants.STYLE_STARTSIZE,t.height+8),i&&(a.height=t.height+8),a.width=t.width):(r=mxUtils.setStyle(r,mxConstants.STYLE_STARTSIZE,t.width+8),i&&(a.width=t.width+8),a.height=t.height),this.model.setStyle(e,r)}else a.width=t.width,a.height=t.height;if(!n&&!i){var l=this.view.getBounds(this.model.getChildren(e));if(null!=l){var d=this.view.translate,c=this.view.scale,m=(l.y+l.height)/c-a.y-d.y;a.width=Math.max(a.width,(l.x+l.width)/c-a.x-d.x),a.height=Math.max(a.height,m)}}this.cellsResized([e],[a])}}finally{this.model.endUpdate()}}},mxGraph.prototype.getPreferredSizeForCell=function(e){var n=null;if(null!=e){var t=this.view.getState(e),a=null!=t?t.style:this.getCellStyle(e);if(null!=a&&!this.model.isEdge(e)){var i=a[mxConstants.STYLE_FONTSIZE]||mxConstants.DEFAULT_FONTSIZE,s=0;n=0;null==this.getImage(t)&&null==a[mxConstants.STYLE_IMAGE]||a[mxConstants.STYLE_SHAPE]!=mxConstants.SHAPE_LABEL||(a[mxConstants.STYLE_VERTICAL_ALIGN]==mxConstants.ALIGN_MIDDLE&&(s+=parseFloat(a[mxConstants.STYLE_IMAGE_WIDTH])||mxLabel.prototype.imageSize),a[mxConstants.STYLE_ALIGN]!=mxConstants.ALIGN_CENTER&&(n+=parseFloat(a[mxConstants.STYLE_IMAGE_HEIGHT])||mxLabel.prototype.imageSize)),s+=2*(a[mxConstants.STYLE_SPACING]||0),s+=a[mxConstants.STYLE_SPACING_LEFT]||0,s+=a[mxConstants.STYLE_SPACING_RIGHT]||0,n+=2*(a[mxConstants.STYLE_SPACING]||0),n+=a[mxConstants.STYLE_SPACING_TOP]||0,n+=a[mxConstants.STYLE_SPACING_BOTTOM]||0,null!=(t=this.getFoldingImage(t))&&(s+=t.width+8),n=null!=(t=this.getLabel(e))&&0<t.length?(this.isHtmlLabel(e)||(t=t.replace(/\n/g,"<br>")),e=(i=mxUtils.getSizeForString(t,i,a[mxConstants.STYLE_FONTFAMILY])).width+s,n=i.height+n,mxUtils.getValue(a,mxConstants.STYLE_HORIZONTAL,!0)||(a=n,n=e,e=a),this.gridEnabled&&(e=this.snap(e+this.gridSize/2),n=this.snap(n+this.gridSize/2)),new mxRectangle(0,0,e,n)):new mxRectangle(0,0,a=4*this.gridSize,a)}}return n},mxGraph.prototype.handleGesture=function(e,n){if(.2<Math.abs(1-n.scale)){var t=this.view.scale,a=this.view.translate,i=e.width*n.scale,s=e.height*n.scale,o=e.y-(s-e.height)/2;t=new mxRectangle(this.snap((e.x-(i-e.width)/2)/t)-a.x,this.snap(o/t)-a.y,this.snap(i/t),this.snap(s/t));this.resizeCell(e.cell,t)}},mxGraph.prototype.resizeCell=function(e,n){return this.resizeCells([e],[n])[0]},mxGraph.prototype.resizeCells=function(e,n){this.model.beginUpdate();try{this.cellsResized(e,n),this.fireEvent(new mxEventObject(mxEvent.RESIZE_CELLS,"cells",e,"bounds",n))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellsResized=function(e,n){if(null!=e&&null!=n&&e.length==n.length){this.model.beginUpdate();try{for(var t=0;t<e.length;t++){var a=n[t],i=this.model.getGeometry(e[t]);if(null!=i&&(i.x!=a.x||i.y!=a.y||i.width!=a.width||i.height!=a.height)){if((i=i.clone()).relative){var s=i.offset;null!=s&&(s.x+=a.x-i.x,s.y+=a.y-i.y)}else i.x=a.x,i.y=a.y;i.width=a.width,i.height=a.height,!i.relative&&this.model.isVertex(e[t])&&!this.isAllowNegativeCoordinates()&&(i.x=Math.max(0,i.x),i.y=Math.max(0,i.y)),this.model.setGeometry(e[t],i),this.isExtendParent(e[t])&&this.extendParent(e[t])}}this.resetEdgesOnResize&&this.resetEdges(e),this.fireEvent(new mxEventObject(mxEvent.CELLS_RESIZED,"cells",e,"bounds",n))}finally{this.model.endUpdate()}}},mxGraph.prototype.extendParent=function(e){if(null!=e){var n=this.model.getParent(e),t=this.model.getGeometry(n);null!=n&&null!=t&&!this.isCellCollapsed(n)&&(null!=(e=this.model.getGeometry(e))&&(t.width<e.x+e.width||t.height<e.y+e.height))&&((t=t.clone()).width=Math.max(t.width,e.x+e.width),t.height=Math.max(t.height,e.y+e.height),this.cellsResized([n],[t]))}},mxGraph.prototype.importCells=function(e,n,t,a,i){return this.moveCells(e,n,t,!0,a,i)},mxGraph.prototype.moveCells=function(e,n,t,a,i,s){if(n=null!=n?n:0,t=null!=t?t:0,a=null!=a&&a,null!=e&&(0!=n||0!=t||a||null!=i)){this.model.beginUpdate();try{a&&(e=this.cloneCells(e,this.isCloneInvalidEdges()),null==i&&(i=this.getDefaultParent()));var o=this.isAllowNegativeCoordinates();if(null!=i&&this.setAllowNegativeCoordinates(!0),this.cellsMoved(e,n,t,!a&&this.isDisconnectOnMove()&&this.isAllowDanglingEdges(),null==i),this.setAllowNegativeCoordinates(o),null!=i){var r=this.model.getChildCount(i);this.cellsAdded(e,i,r,null,null,!0)}this.fireEvent(new mxEventObject(mxEvent.MOVE_CELLS,"cells",e,"dx",n,"dy",t,"clone",a,"target",i,"event",s))}finally{this.model.endUpdate()}}return e},mxGraph.prototype.cellsMoved=function(e,n,t,a,i){if(null!=e&&(0!=n||0!=t)){this.model.beginUpdate();try{a&&this.disconnectGraph(e);for(var s=0;s<e.length;s++)this.translateCell(e[s],n,t),i&&this.constrainChild(e[s]);this.resetEdgesOnMove&&this.resetEdges(e),this.fireEvent(new mxEventObject(mxEvent.CELLS_MOVED,"cells",e,"dx",t,"dy",t,"disconnect",a))}finally{this.model.endUpdate()}}},mxGraph.prototype.translateCell=function(e,n,t){var a=this.model.getGeometry(e);null!=a&&((a=a.clone()).translate(n,t),!a.relative&&this.model.isVertex(e)&&!this.isAllowNegativeCoordinates()&&(a.x=Math.max(0,a.x),a.y=Math.max(0,a.y)),a.relative&&!this.model.isEdge(e)&&(null==a.offset?a.offset=new mxPoint(n,t):(a.offset.x+=n,a.offset.y+=t)),this.model.setGeometry(e,a))},mxGraph.prototype.getCellContainmentArea=function(e){if(null!=e&&!this.model.isEdge(e)){var n=this.model.getParent(e);if(n==this.getDefaultParent()||n==this.getCurrentRoot())return this.getMaximumGraphBounds();if(null!=n&&n!=this.getDefaultParent())if(null!=(i=this.model.getGeometry(n))){var t=e=0,a=i.width,i=i.height;return this.isSwimlane(n)&&(e=(n=this.getStartSize(n)).width,a-=n.width,t=n.height,i-=n.height),new mxRectangle(e,t,a,i)}}return null},mxGraph.prototype.getMaximumGraphBounds=function(){return this.maximumGraphBounds},mxGraph.prototype.constrainChild=function(e){if(null!=e){var n=this.model.getGeometry(e),t=this.isConstrainChild(e)?this.getCellContainmentArea(e):this.getMaximumGraphBounds();null!=n&&null!=t&&!n.relative&&(n.x<t.x||n.y<t.y||t.width<n.x+n.width||t.height<n.y+n.height)&&(e=this.getOverlap(e),0<t.width&&(n.x=Math.min(n.x,t.x+t.width-(1-e)*n.width)),0<t.height&&(n.y=Math.min(n.y,t.y+t.height-(1-e)*n.height)),n.x=Math.max(n.x,t.x-n.width*e),n.y=Math.max(n.y,t.y-n.height*e))}},mxGraph.prototype.resetEdges=function(e){if(null!=e){for(var n={},t=0;t<e.length;t++){var a=mxCellPath.create(e[t]);n[a]=e[t]}this.model.beginUpdate();try{for(t=0;t<e.length;t++){var i=this.model.getEdges(e[t]);if(null!=i)for(a=0;a<i.length;a++){var s=this.view.getState(i[a]),o=null!=s?s.getVisibleTerminal(!0):this.view.getVisibleTerminal(i[a],!0),r=null!=s?s.getVisibleTerminal(!1):this.view.getVisibleTerminal(i[a],!1),l=mxCellPath.create(o),d=mxCellPath.create(r);(null==n[l]||null==n[d])&&this.resetEdge(i[a])}this.resetEdges(this.model.getChildren(e[t]))}}finally{this.model.endUpdate()}}},mxGraph.prototype.resetEdge=function(e){var n=this.model.getGeometry(e);return null!=n&&null!=n.points&&0<n.points.length&&((n=n.clone()).points=[],this.model.setGeometry(e,n)),e},mxGraph.prototype.getAllConnectionConstraints=function(e,n){return null!=e&&null!=e.shape&&null!=e.shape.stencil?e.shape.stencil.constraints:null},mxGraph.prototype.getConnectionConstraint=function(e,n,t){n=null;var a=e.style[t?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X];if(null!=a){var i=e.style[t?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y];null!=i&&(n=new mxPoint(parseFloat(a),parseFloat(i)))}return a=!1,null!=n&&(a=mxUtils.getValue(e.style,t?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,!0)),new mxConnectionConstraint(n,a)},mxGraph.prototype.setConnectionConstraint=function(e,n,t,a){if(null!=a){this.model.beginUpdate();try{null==a||null==a.point?(this.setCellStyles(t?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X,null,[e]),this.setCellStyles(t?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y,null,[e]),this.setCellStyles(t?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,null,[e])):null!=a.point&&(this.setCellStyles(t?mxConstants.STYLE_EXIT_X:mxConstants.STYLE_ENTRY_X,a.point.x,[e]),this.setCellStyles(t?mxConstants.STYLE_EXIT_Y:mxConstants.STYLE_ENTRY_Y,a.point.y,[e]),a.perimeter?this.setCellStyles(t?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,null,[e]):this.setCellStyles(t?mxConstants.STYLE_EXIT_PERIMETER:mxConstants.STYLE_ENTRY_PERIMETER,"0",[e]))}finally{this.model.endUpdate()}}},mxGraph.prototype.getConnectionPoint=function(e,n){var t=null;if(null!=e){var a=this.view.getPerimeterBounds(e),i=new mxPoint(a.getCenterX(),a.getCenterY()),s=e.style[mxConstants.STYLE_DIRECTION],o=0;if(null!=s&&("north"==s?o+=270:"west"==s?o+=180:"south"==s&&(o+=90),"north"==s||"south"==s)){a.x+=a.width/2-a.height/2,a.y+=a.height/2-a.width/2;var r=a.width;a.width=a.height,a.height=r}if(null!=n.point){var l=t=1,d=0,c=0;if(this.getModel().isVertex(e.cell)){var m=e.style[mxConstants.STYLE_FLIPH],u=e.style[mxConstants.STYLE_FLIPV];null!=e.shape.stencil&&(m=1==mxUtils.getValue(e.style,"stencilFlipH",0)||m,u=1==mxUtils.getValue(e.style,"stencilFlipV",0)||u),"north"!=s&&"south"!=s||(r=m,m=u,u=r),m&&(t=-1,d=-a.width),u&&(l=-1,c=-a.height)}t=new mxPoint(a.x+n.point.x*a.width*t-d,a.y+n.point.y*a.height*l-c)}s=e.style[mxConstants.STYLE_ROTATION]||0,n.perimeter?(0!=o&&null!=t&&(r=a=0,90==o?r=1:180==o?a=-1:270==s&&(r=-1),t=mxUtils.getRotatedPoint(t,a,r,i)),null!=t&&n.perimeter&&(t=this.view.getPerimeterPoint(e,t,!1))):s+=o,0!=s&&null!=t&&(o=mxUtils.toRadians(s),a=Math.cos(o),r=Math.sin(o),t=mxUtils.getRotatedPoint(t,a,r,i))}return t},mxGraph.prototype.connectCell=function(e,n,t,a){this.model.beginUpdate();try{var i=this.model.getTerminal(e,t);this.cellConnected(e,n,t,a),this.fireEvent(new mxEventObject(mxEvent.CONNECT_CELL,"edge",e,"terminal",n,"source",t,"previous",i))}finally{this.model.endUpdate()}return e},mxGraph.prototype.cellConnected=function(e,n,t,a){if(null!=e){this.model.beginUpdate();try{var i=this.model.getTerminal(e,t);this.setConnectionConstraint(e,n,t,a),this.isPortsEnabled()&&(a=null,this.isPort(n)&&(a=n.getId(),n=this.getTerminalForPort(n,t)),this.setCellStyles(t?mxConstants.STYLE_SOURCE_PORT:mxConstants.STYLE_TARGET_PORT,a,[e])),this.model.setTerminal(e,n,t),this.resetEdgesOnConnect&&this.resetEdge(e),this.fireEvent(new mxEventObject(mxEvent.CELL_CONNECTED,"edge",e,"terminal",n,"source",t,"previous",i))}finally{this.model.endUpdate()}}},mxGraph.prototype.disconnectGraph=function(e){if(null!=e){this.model.beginUpdate();try{for(var n=this.view.scale,t=this.view.translate,a={},i=0;i<e.length;i++){a[mxCellPath.create(e[i])]=e[i]}for(i=0;i<e.length;i++)if(this.model.isEdge(e[i])){if(null!=(r=this.model.getGeometry(e[i]))){var s=this.view.getState(e[i]),o=this.view.getState(this.model.getParent(e[i]));if(null!=s&&null!=o){var r=r.clone(),l=-o.origin.x,d=-o.origin.y,c=s.absolutePoints,m=this.model.getTerminal(e[i],!0);if(null!=m&&this.isCellDisconnectable(e[i],m,!0)){for(var u=mxCellPath.create(m);null!=m&&null==a[u];)m=this.model.getParent(m),u=mxCellPath.create(m);null==m&&(r.setTerminalPoint(new mxPoint(c[0].x/n-t.x+l,c[0].y/n-t.y+d),!0),this.model.setTerminal(e[i],null,!0))}var p=this.model.getTerminal(e[i],!1);if(null!=p&&this.isCellDisconnectable(e[i],p,!1)){for(var g=mxCellPath.create(p);null!=p&&null==a[g];)p=this.model.getParent(p),g=mxCellPath.create(p);if(null==p){var v=c.length-1;r.setTerminalPoint(new mxPoint(c[v].x/n-t.x+l,c[v].y/n-t.y+d),!1),this.model.setTerminal(e[i],null,!1)}}this.model.setGeometry(e[i],r)}}}}finally{this.model.endUpdate()}}},mxGraph.prototype.getCurrentRoot=function(){return this.view.currentRoot},mxGraph.prototype.getTranslateForRoot=function(e){return null},mxGraph.prototype.isPort=function(e){return!1},mxGraph.prototype.getTerminalForPort=function(e,n){return this.model.getParent(e)},mxGraph.prototype.getChildOffsetForCell=function(e){return null},mxGraph.prototype.enterGroup=function(e){null!=(e=e||this.getSelectionCell())&&this.isValidRoot(e)&&(this.view.setCurrentRoot(e),this.clearSelection())},mxGraph.prototype.exitGroup=function(){var e=this.model.getRoot(),n=this.getCurrentRoot();if(null!=n){for(var t=this.model.getParent(n);t!=e&&!this.isValidRoot(t)&&this.model.getParent(t)!=e;)t=this.model.getParent(t);t==e||this.model.getParent(t)==e?this.view.setCurrentRoot(null):this.view.setCurrentRoot(t),null!=this.view.getState(n)&&this.setSelectionCell(n)}},mxGraph.prototype.home=function(){var e=this.getCurrentRoot();null!=e&&(this.view.setCurrentRoot(null),null!=this.view.getState(e)&&this.setSelectionCell(e))},mxGraph.prototype.isValidRoot=function(e){return null!=e},mxGraph.prototype.getGraphBounds=function(){return this.view.getGraphBounds()},mxGraph.prototype.getCellBounds=function(e,n,t){var a=[e];if(n&&(a=a.concat(this.model.getEdges(e))),a=this.view.getBounds(a),t){t=this.model.getChildCount(e);for(var i=0;i<t;i++){var s=this.getCellBounds(this.model.getChildAt(e,i),n,!0);null!=a?a.add(s):a=s}}return a},mxGraph.prototype.getBoundingBoxFromGeometry=function(e,n){n=null!=n&&n;var t=null;if(null!=e)for(var a=0;a<e.length;a++)if(n||this.model.isVertex(e[a])){var i=this.getCellGeometry(e[a]);if(null!=i){var s=i.points;if(null!=s&&0<s.length){for(var o=new mxRectangle(s[0].x,s[0].y,0,0),r=function(e){null!=e&&o.add(new mxRectangle(e.x,e.y,0,0))},l=1;l<s.length;l++)r(s[l]);r(i.getTerminalPoint(!0)),r(i.getTerminalPoint(!1))}null==t?t=new mxRectangle(i.x,i.y,i.width,i.height):t.add(i)}}return t},mxGraph.prototype.refresh=function(e){this.view.clear(e,null==e),this.view.validate(),this.sizeDidChange(),this.fireEvent(new mxEventObject(mxEvent.REFRESH))},mxGraph.prototype.snap=function(e){return this.gridEnabled&&(e=Math.round(e/this.gridSize)*this.gridSize),e},mxGraph.prototype.panGraph=function(e,n){if(this.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.container))this.container.scrollLeft=-e,this.container.scrollTop=-n;else{var t=this.view.getCanvas();if(this.dialect==mxConstants.DIALECT_SVG)if(0==e&&0==n){if(mxClient.IS_IE?t.setAttribute("transform","translate("+e+","+n+")"):t.removeAttribute("transform"),null!=this.shiftPreview1){for(var a=this.shiftPreview1.firstChild;null!=a;){var i=a.nextSibling;this.container.appendChild(a),a=i}for(this.shiftPreview1.parentNode.removeChild(this.shiftPreview1),this.shiftPreview1=null,this.container.appendChild(t.parentNode),a=this.shiftPreview2.firstChild;null!=a;)i=a.nextSibling,this.container.appendChild(a),a=i;this.shiftPreview2.parentNode.removeChild(this.shiftPreview2),this.shiftPreview2=null}}else{if(t.setAttribute("transform","translate("+e+","+n+")"),null==this.shiftPreview1){this.shiftPreview1=document.createElement("div"),this.shiftPreview1.style.position="absolute",this.shiftPreview1.style.overflow="visible",this.shiftPreview2=document.createElement("div"),this.shiftPreview2.style.position="absolute",this.shiftPreview2.style.overflow="visible";var s=this.shiftPreview1;for(a=this.container.firstChild;null!=a;)i=a.nextSibling,a!=t.parentNode?s.appendChild(a):s=this.shiftPreview2,a=i;this.container.insertBefore(this.shiftPreview1,t.parentNode),this.container.appendChild(this.shiftPreview2)}this.shiftPreview1.style.left=e+"px",this.shiftPreview1.style.top=n+"px",this.shiftPreview2.style.left=e+"px",this.shiftPreview2.style.top=n+"px"}else t.style.left=e+"px",t.style.top=n+"px";this.panDx=e,this.panDy=n,this.fireEvent(new mxEventObject(mxEvent.PAN))}},mxGraph.prototype.zoomIn=function(){this.zoom(this.zoomFactor)},mxGraph.prototype.zoomOut=function(){this.zoom(1/this.zoomFactor)},mxGraph.prototype.zoomActual=function(){1==this.view.scale?this.view.setTranslate(0,0):(this.view.translate.x=0,this.view.translate.y=0,this.view.setScale(1))},mxGraph.prototype.zoomTo=function(e,n){this.zoom(e/this.view.scale,n)},mxGraph.prototype.zoom=function(e,n){n=null!=n?n:this.centerZoom;var t=this.view.scale*e,a=this.view.getState(this.getSelectionCell());if(this.keepSelectionVisibleOnZoom&&null!=a)a=new mxRectangle(a.x*e,a.y*e,a.width*e,a.height*e),this.view.scale=t,this.scrollRectToVisible(a)||(this.view.revalidate(),this.view.setScale(t));else if(n&&!mxUtils.hasScrollbars(this.container)){a=this.container.offsetWidth;var i=this.container.offsetHeight;if(1<e){var s=(e-1)/(2*t);a=a*-s,i=i*-s}else a*=s=(1/e-1)/(2*this.view.scale),i*=s;this.view.scaleAndTranslate(t,this.view.translate.x+a,this.view.translate.y+i)}else this.view.setScale(t),mxUtils.hasScrollbars(this.container)&&(i=a=0,n&&(a=this.container.offsetWidth*(e-1)/2,i=this.container.offsetHeight*(e-1)/2),this.container.scrollLeft=Math.round(this.container.scrollLeft*e+a),this.container.scrollTop=Math.round(this.container.scrollTop*e+i))},mxGraph.prototype.zoomToRect=function(e){var n=this.container.clientWidth/e.width/(this.container.clientHeight/e.height);e.x=Math.max(0,e.x),e.y=Math.max(0,e.y);var t=Math.min(this.container.scrollWidth,e.x+e.width),a=Math.min(this.container.scrollHeight,e.y+e.height);e.width=t-e.x,e.height=a-e.y,n<1?(t=((n=e.height/n)-e.height)/2,e.height=n,n=Math.min(e.y,t),e.y-=n,a=Math.min(this.container.scrollHeight,e.y+e.height),e.height=a-e.y):(t=((n*=e.width)-e.width)/2,e.width=n,n=Math.min(e.x,t),e.x-=n,t=Math.min(this.container.scrollWidth,e.x+e.width),e.width=t-e.x),n=this.container.clientWidth/e.width,t=this.view.scale*n,mxUtils.hasScrollbars(this.container)?(this.view.setScale(t),this.container.scrollLeft=Math.round(e.x*n),this.container.scrollTop=Math.round(e.y*n)):this.view.scaleAndTranslate(t,this.view.translate.x-e.x/this.view.scale,this.view.translate.y-e.y/this.view.scale)},mxGraph.prototype.fit=function(e,n){if(null!=this.container){e=null!=e?e:0,n=null!=n&&n;var t=this.container.clientWidth,a=this.container.clientHeight,i=this.view.getGraphBounds();n&&null!=i.x&&null!=i.y&&(i.width+=i.x,i.height+=i.y,i.x=0,i.y=0);var s=this.view.scale,o=i.width/s,r=i.height/s;null!=this.backgroundImage&&(o=Math.max(o,this.backgroundImage.width-i.x/s),r=Math.max(r,this.backgroundImage.height-i.y/s));var l=n?e:2*e;t=Math.floor(100*Math.min(t/(o+l),a/(r+l)))/100;null!=this.minFitScale&&(t=Math.max(t,this.minFitScale)),null!=this.maxFitScale&&(t=Math.min(t,this.maxFitScale)),n?this.view.scale!=t&&this.view.setScale(t):mxUtils.hasScrollbars(this.container)?(this.view.setScale(t),null!=i.x&&(this.container.scrollLeft=Math.round(i.x/s)*t-e-Math.max(0,(this.container.clientWidth-o*t)/2)),null!=i.y&&(this.container.scrollTop=Math.round(i.y/s)*t-e-Math.max(0,(this.container.clientHeight-r*t)/2))):this.view.scaleAndTranslate(t,null!=i.x?Math.floor(this.view.translate.x-i.x/s+e+1):e,null!=i.y?Math.floor(this.view.translate.y-i.y/s+e+1):e)}return this.view.scale},mxGraph.prototype.scrollCellToVisible=function(e,n){var t=-this.view.translate.x,a=-this.view.translate.y,i=this.view.getState(e);null!=i&&(t=new mxRectangle(t+i.x,a+i.y,i.width,i.height),n&&null!=this.container&&(a=this.container.clientWidth,i=this.container.clientHeight,t.x=t.getCenterX()-a/2,t.width=a,t.y=t.getCenterY()-i/2,t.height=i),this.scrollRectToVisible(t)&&this.view.setTranslate(this.view.translate.x,this.view.translate.y))},mxGraph.prototype.scrollRectToVisible=function(e){var n=!1;if(null!=e){var t=this.container.offsetWidth,a=this.container.offsetHeight,i=Math.min(t,e.width),s=Math.min(a,e.height);if(mxUtils.hasScrollbars(this.container)){t=this.container,e.x+=this.view.translate.x,e.y+=this.view.translate.y;var o=t.scrollLeft-e.x;a=Math.max(o-t.scrollLeft,0);0<o?t.scrollLeft-=o+2:0<(o=e.x+i-t.scrollLeft-t.clientWidth)&&(t.scrollLeft+=o+2),i=t.scrollTop-e.y,o=Math.max(0,i-t.scrollTop),0<i?t.scrollTop-=i+2:0<(i=e.y+s-t.scrollTop-t.clientHeight)&&(t.scrollTop+=i+2),!this.useScrollbarsForPanning&&(0!=a||0!=o)&&this.view.setTranslate(a,o)}else{o=-this.view.translate.x;var r=-this.view.translate.y,l=this.view.scale;e.x+i>o+t&&(this.view.translate.x-=(e.x+i-t-o)/l,n=!0),e.y+s>r+a&&(this.view.translate.y-=(e.y+s-a-r)/l,n=!0),e.x<o&&(this.view.translate.x+=(o-e.x)/l,n=!0),e.y<r&&(this.view.translate.y+=(r-e.y)/l,n=!0),n&&(this.view.refresh(),null!=this.selectionCellsHandler&&this.selectionCellsHandler.refresh())}}return n},mxGraph.prototype.getCellGeometry=function(e){return this.model.getGeometry(e)},mxGraph.prototype.isCellVisible=function(e){return this.model.isVisible(e)},mxGraph.prototype.isCellCollapsed=function(e){return this.model.isCollapsed(e)},mxGraph.prototype.isCellConnectable=function(e){return this.model.isConnectable(e)},mxGraph.prototype.isOrthogonal=function(e){var n=e.style[mxConstants.STYLE_ORTHOGONAL];return null!=n?n:(e=this.view.getEdgeStyle(e))==mxEdgeStyle.SegmentConnector||e==mxEdgeStyle.ElbowConnector||e==mxEdgeStyle.SideToSide||e==mxEdgeStyle.TopToBottom||e==mxEdgeStyle.EntityRelation||e==mxEdgeStyle.OrthConnector},mxGraph.prototype.isLoop=function(e){var n=e.getVisibleTerminalState(!0);return e=e.getVisibleTerminalState(!1),null!=n&&n==e},mxGraph.prototype.isCloneEvent=function(e){return mxEvent.isControlDown(e)},mxGraph.prototype.isToggleEvent=function(e){return mxClient.IS_MAC?mxEvent.isMetaDown(e):mxEvent.isControlDown(e)},mxGraph.prototype.isGridEnabledEvent=function(e){return null!=e&&!mxEvent.isAltDown(e)},mxGraph.prototype.isConstrainedEvent=function(e){return mxEvent.isShiftDown(e)},mxGraph.prototype.isForceMarqueeEvent=function(e){return mxEvent.isAltDown(e)},mxGraph.prototype.validationAlert=function(e){mxUtils.alert(e)},mxGraph.prototype.isEdgeValid=function(e,n,t){return null==this.getEdgeValidationError(e,n,t)},mxGraph.prototype.getEdgeValidationError=function(e,n,t){if(null!=e&&!this.isAllowDanglingEdges()&&(null==n||null==t))return"";if(null!=e&&null==this.model.getTerminal(e,!0)&&null==this.model.getTerminal(e,!1))return null;if(!this.allowLoops&&n==t&&null!=n||!this.isValidConnection(n,t))return"";if(null==n||null==t)return this.allowDanglingEdges?null:"";var a="";this.multigraph||(1<(i=this.model.getEdgesBetween(n,t,!0)).length||1==i.length&&i[0]!=e)&&(a+=(mxResources.get(this.alreadyConnectedResource)||this.alreadyConnectedResource)+"\n");var i=this.model.getDirectedEdgeCount(n,!0,e),s=this.model.getDirectedEdgeCount(t,!1,e);if(null!=this.multiplicities)for(var o=0;o<this.multiplicities.length;o++){var r=this.multiplicities[o].check(this,e,n,t,i,s);null!=r&&(a+=r)}return null!=(r=this.validateEdge(e,n,t))&&(a+=r),0<a.length?a:null},mxGraph.prototype.validateEdge=function(e,n,t){return null},mxGraph.prototype.validateGraph=function(e,n){e=null!=e?e:this.model.getRoot(),n=null!=n?n:{};for(var t=!0,a=this.model.getChildCount(e),i=0;i<a;i++){var s=this.model.getChildAt(e,i),o=n;this.isValidRoot(s)&&(o={}),null!=(o=this.validateGraph(s,o))?this.setCellWarning(s,o.replace(/\n/g,"<br>")):this.setCellWarning(s,null),t=t&&null==o}return a="",this.isCellCollapsed(e)&&!t&&(a+=(mxResources.get(this.containsValidationErrorsResource)||this.containsValidationErrorsResource)+"\n"),a=this.model.isEdge(e)?a+(this.getEdgeValidationError(e,this.model.getTerminal(e,!0),this.model.getTerminal(e,!1))||""):a+(this.getCellValidationError(e)||""),null!=(i=this.validateCell(e,n))&&(a+=i),null==this.model.getParent(e)&&this.view.validate(),0<a.length||!t?a:null},mxGraph.prototype.getCellValidationError=function(e){var n=this.model.getDirectedEdgeCount(e,!0),t=this.model.getDirectedEdgeCount(e,!1);e=this.model.getValue(e);var a="";if(null!=this.multiplicities)for(var i=0;i<this.multiplicities.length;i++){var s=this.multiplicities[i];s.source&&mxUtils.isNode(e,s.type,s.attr,s.value)&&(0==s.max&&0<n||1==s.min&&0==n||1==s.max&&1<n)?a+=s.countError+"\n":!s.source&&mxUtils.isNode(e,s.type,s.attr,s.value)&&(0==s.max&&0<t||1==s.min&&0==t||1==s.max&&1<t)&&(a+=s.countError+"\n")}return 0<a.length?a:null},mxGraph.prototype.validateCell=function(e,n){return null},mxGraph.prototype.getBackgroundImage=function(){return this.backgroundImage},mxGraph.prototype.setBackgroundImage=function(e){this.backgroundImage=e},mxGraph.prototype.getFoldingImage=function(e){if(null!=e&&this.foldingEnabled&&!this.getModel().isEdge(e.cell)){var n=this.isCellCollapsed(e.cell);if(this.isCellFoldable(e.cell,!n))return n?this.collapsedImage:this.expandedImage}return null},mxGraph.prototype.convertValueToString=function(e){if(null!=(e=this.model.getValue(e))){if(mxUtils.isNode(e))return e.nodeName;if("function"==typeof e.toString)return e.toString()}return""},mxGraph.prototype.getLabel=function(e){var n="";if(this.labelsVisible&&null!=e){var t=null!=(t=this.view.getState(e))?t.style:this.getCellStyle(e);mxUtils.getValue(t,mxConstants.STYLE_NOLABEL,!1)||(n=this.convertValueToString(e))}return n},mxGraph.prototype.isHtmlLabel=function(e){return this.isHtmlLabels()},mxGraph.prototype.isHtmlLabels=function(){return this.htmlLabels},mxGraph.prototype.setHtmlLabels=function(e){this.htmlLabels=e},mxGraph.prototype.isWrapping=function(e){var n=this.view.getState(e);return null!=(e=null!=n?n.style:this.getCellStyle(e))&&"wrap"==e[mxConstants.STYLE_WHITE_SPACE]},mxGraph.prototype.isLabelClipped=function(e){var n=this.view.getState(e);return null!=(e=null!=n?n.style:this.getCellStyle(e))&&"hidden"==e[mxConstants.STYLE_OVERFLOW]},mxGraph.prototype.getTooltip=function(e,t,n,a){var i=null;return null!=e&&(null==e.control||t!=e.control.node&&t.parentNode!=e.control.node||(i=this.collapseExpandResource,i=mxResources.get(i)||i),null==i&&null!=e.overlays&&e.overlays.visit(function(e,n){null!=i||t!=n.node&&t.parentNode!=n.node||(i=n.overlay.toString())}),null==i&&(null!=(n=this.selectionCellsHandler.getHandler(e.cell))&&"function"==typeof n.getTooltipForNode&&(i=n.getTooltipForNode(t))),null==i&&(i=this.getTooltipForCell(e.cell))),i},mxGraph.prototype.getTooltipForCell=function(e){return null!=e&&null!=e.getTooltip?e.getTooltip():this.convertValueToString(e)},mxGraph.prototype.getCursorForCell=function(e){return null},mxGraph.prototype.getStartSize=function(e){var n=new mxRectangle,t=this.view.getState(e);return null!=(e=null!=t?t.style:this.getCellStyle(e))&&(t=parseInt(mxUtils.getValue(e,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE)),mxUtils.getValue(e,mxConstants.STYLE_HORIZONTAL,!0)?n.height=t:n.width=t),n},mxGraph.prototype.getImage=function(e){return null!=e&&null!=e.style?e.style[mxConstants.STYLE_IMAGE]:null},mxGraph.prototype.getVerticalAlign=function(e){return null!=e&&null!=e.style?e.style[mxConstants.STYLE_VERTICAL_ALIGN]||mxConstants.ALIGN_MIDDLE:null},mxGraph.prototype.getIndicatorColor=function(e){return null!=e&&null!=e.style?e.style[mxConstants.STYLE_INDICATOR_COLOR]:null},mxGraph.prototype.getIndicatorGradientColor=function(e){return null!=e&&null!=e.style?e.style[mxConstants.STYLE_INDICATOR_GRADIENTCOLOR]:null},mxGraph.prototype.getIndicatorShape=function(e){return null!=e&&null!=e.style?e.style[mxConstants.STYLE_INDICATOR_SHAPE]:null},mxGraph.prototype.getIndicatorImage=function(e){return null!=e&&null!=e.style?e.style[mxConstants.STYLE_INDICATOR_IMAGE]:null},mxGraph.prototype.getBorder=function(){return this.border},mxGraph.prototype.setBorder=function(e){this.border=e},mxGraph.prototype.isSwimlane=function(e){var n;if(null!=e&&this.model.getParent(e)!=this.model.getRoot()&&(null!=(n=null!=(n=this.view.getState(e))?n.style:this.getCellStyle(e))&&!this.model.isEdge(e)))return n[mxConstants.STYLE_SHAPE]==mxConstants.SHAPE_SWIMLANE;return!1},mxGraph.prototype.isResizeContainer=function(){return this.resizeContainer},mxGraph.prototype.setResizeContainer=function(e){this.resizeContainer=e},mxGraph.prototype.isEnabled=function(){return this.enabled},mxGraph.prototype.setEnabled=function(e){this.enabled=e},mxGraph.prototype.isEscapeEnabled=function(){return this.escapeEnabled},mxGraph.prototype.setEscapeEnabled=function(e){this.escapeEnabled=e},mxGraph.prototype.isInvokesStopCellEditing=function(){return this.invokesStopCellEditing},mxGraph.prototype.setInvokesStopCellEditing=function(e){this.invokesStopCellEditing=e},mxGraph.prototype.isEnterStopsCellEditing=function(){return this.enterStopsCellEditing},mxGraph.prototype.setEnterStopsCellEditing=function(e){this.enterStopsCellEditing=e},mxGraph.prototype.isCellLocked=function(e){var n=this.model.getGeometry(e);return this.isCellsLocked()||null!=n&&this.model.isVertex(e)&&n.relative},mxGraph.prototype.isCellsLocked=function(){return this.cellsLocked},mxGraph.prototype.setCellsLocked=function(e){this.cellsLocked=e},mxGraph.prototype.getCloneableCells=function(e){return this.model.filterCells(e,mxUtils.bind(this,function(e){return this.isCellCloneable(e)}))},mxGraph.prototype.isCellCloneable=function(e){var n=this.view.getState(e);return e=null!=n?n.style:this.getCellStyle(e),this.isCellsCloneable()&&0!=e[mxConstants.STYLE_CLONEABLE]},mxGraph.prototype.isCellsCloneable=function(){return this.cellsCloneable},mxGraph.prototype.setCellsCloneable=function(e){this.cellsCloneable=e},mxGraph.prototype.getExportableCells=function(e){return this.model.filterCells(e,mxUtils.bind(this,function(e){return this.canExportCell(e)}))},mxGraph.prototype.canExportCell=function(e){return this.exportEnabled},mxGraph.prototype.getImportableCells=function(e){return this.model.filterCells(e,mxUtils.bind(this,function(e){return this.canImportCell(e)}))},mxGraph.prototype.canImportCell=function(e){return this.importEnabled},mxGraph.prototype.isCellSelectable=function(e){return this.isCellsSelectable()},mxGraph.prototype.isCellsSelectable=function(){return this.cellsSelectable},mxGraph.prototype.setCellsSelectable=function(e){this.cellsSelectable=e},mxGraph.prototype.getDeletableCells=function(e){return this.model.filterCells(e,mxUtils.bind(this,function(e){return this.isCellDeletable(e)}))},mxGraph.prototype.isCellDeletable=function(e){var n=this.view.getState(e);return e=null!=n?n.style:this.getCellStyle(e),this.isCellsDeletable()&&0!=e[mxConstants.STYLE_DELETABLE]},mxGraph.prototype.isCellsDeletable=function(){return this.cellsDeletable},mxGraph.prototype.setCellsDeletable=function(e){this.cellsDeletable=e},mxGraph.prototype.isLabelMovable=function(e){return!this.isCellLocked(e)&&(this.model.isEdge(e)&&this.edgeLabelsMovable||this.model.isVertex(e)&&this.vertexLabelsMovable)},mxGraph.prototype.getMovableCells=function(e){return this.model.filterCells(e,mxUtils.bind(this,function(e){return this.isCellMovable(e)}))},mxGraph.prototype.isCellMovable=function(e){var n=null!=(n=this.view.getState(e))?n.style:this.getCellStyle(e);return this.isCellsMovable()&&!this.isCellLocked(e)&&0!=n[mxConstants.STYLE_MOVABLE]},mxGraph.prototype.isCellsMovable=function(){return this.cellsMovable},mxGraph.prototype.setCellsMovable=function(e){this.cellsMovable=e},mxGraph.prototype.isGridEnabled=function(){return this.gridEnabled},mxGraph.prototype.setGridEnabled=function(e){this.gridEnabled=e},mxGraph.prototype.isPortsEnabled=function(){return this.portsEnabled},mxGraph.prototype.setPortsEnabled=function(e){this.portsEnabled=e},mxGraph.prototype.getGridSize=function(){return this.gridSize},mxGraph.prototype.setGridSize=function(e){this.gridSize=e},mxGraph.prototype.getTolerance=function(){return this.tolerance},mxGraph.prototype.setTolerance=function(e){this.tolerance=e},mxGraph.prototype.isVertexLabelsMovable=function(){return this.vertexLabelsMovable},mxGraph.prototype.setVertexLabelsMovable=function(e){this.vertexLabelsMovable=e},mxGraph.prototype.isEdgeLabelsMovable=function(){return this.edgeLabelsMovable},mxGraph.prototype.setEdgeLabelsMovable=function(e){this.edgeLabelsMovable=e},mxGraph.prototype.isSwimlaneNesting=function(){return this.swimlaneNesting},mxGraph.prototype.setSwimlaneNesting=function(e){this.swimlaneNesting=e},mxGraph.prototype.isSwimlaneSelectionEnabled=function(){return this.swimlaneSelectionEnabled},mxGraph.prototype.setSwimlaneSelectionEnabled=function(e){this.swimlaneSelectionEnabled=e},mxGraph.prototype.isMultigraph=function(){return this.multigraph},mxGraph.prototype.setMultigraph=function(e){this.multigraph=e},mxGraph.prototype.isAllowLoops=function(){return this.allowLoops},mxGraph.prototype.setAllowDanglingEdges=function(e){this.allowDanglingEdges=e},mxGraph.prototype.isAllowDanglingEdges=function(){return this.allowDanglingEdges},mxGraph.prototype.setConnectableEdges=function(e){this.connectableEdges=e},mxGraph.prototype.isConnectableEdges=function(){return this.connectableEdges},mxGraph.prototype.setCloneInvalidEdges=function(e){this.cloneInvalidEdges=e},mxGraph.prototype.isCloneInvalidEdges=function(){return this.cloneInvalidEdges},mxGraph.prototype.setAllowLoops=function(e){this.allowLoops=e},mxGraph.prototype.isDisconnectOnMove=function(){return this.disconnectOnMove},mxGraph.prototype.setDisconnectOnMove=function(e){this.disconnectOnMove=e},mxGraph.prototype.isDropEnabled=function(){return this.dropEnabled},mxGraph.prototype.setDropEnabled=function(e){this.dropEnabled=e},mxGraph.prototype.isSplitEnabled=function(){return this.splitEnabled},mxGraph.prototype.setSplitEnabled=function(e){this.splitEnabled=e},mxGraph.prototype.isCellResizable=function(e){var n=null!=(n=this.view.getState(e))?n.style:this.getCellStyle(e);return this.isCellsResizable()&&!this.isCellLocked(e)&&0!=n[mxConstants.STYLE_RESIZABLE]},mxGraph.prototype.isCellsResizable=function(){return this.cellsResizable},mxGraph.prototype.setCellsResizable=function(e){this.cellsResizable=e},mxGraph.prototype.isTerminalPointMovable=function(e,n){return!0},mxGraph.prototype.isCellBendable=function(e){var n=null!=(n=this.view.getState(e))?n.style:this.getCellStyle(e);return this.isCellsBendable()&&!this.isCellLocked(e)&&0!=n[mxConstants.STYLE_BENDABLE]},mxGraph.prototype.isCellsBendable=function(){return this.cellsBendable},mxGraph.prototype.setCellsBendable=function(e){this.cellsBendable=e},mxGraph.prototype.isCellEditable=function(e){var n=null!=(n=this.view.getState(e))?n.style:this.getCellStyle(e);return this.isCellsEditable()&&!this.isCellLocked(e)&&0!=n[mxConstants.STYLE_EDITABLE]},mxGraph.prototype.isCellsEditable=function(){return this.cellsEditable},mxGraph.prototype.setCellsEditable=function(e){this.cellsEditable=e},mxGraph.prototype.isCellDisconnectable=function(e,n,t){return this.isCellsDisconnectable()&&!this.isCellLocked(e)},mxGraph.prototype.isCellsDisconnectable=function(){return this.cellsDisconnectable},mxGraph.prototype.setCellsDisconnectable=function(e){this.cellsDisconnectable=e},mxGraph.prototype.isValidSource=function(e){return null==e&&this.allowDanglingEdges||null!=e&&(!this.model.isEdge(e)||this.connectableEdges)&&this.isCellConnectable(e)},mxGraph.prototype.isValidTarget=function(e){return this.isValidSource(e)},mxGraph.prototype.isValidConnection=function(e,n){return this.isValidSource(e)&&this.isValidTarget(n)},mxGraph.prototype.setConnectable=function(e){this.connectionHandler.setEnabled(e)},mxGraph.prototype.isConnectable=function(e){return this.connectionHandler.isEnabled()},mxGraph.prototype.setTooltips=function(e){this.tooltipHandler.setEnabled(e)},mxGraph.prototype.setPanning=function(e){this.panningHandler.panningEnabled=e},mxGraph.prototype.isEditing=function(e){if(null==this.cellEditor)return!1;var n=this.cellEditor.getEditingCell();return null==e?null!=n:e==n},mxGraph.prototype.isAutoSizeCell=function(e){var n=this.view.getState(e);return e=null!=n?n.style:this.getCellStyle(e),this.isAutoSizeCells()||1==e[mxConstants.STYLE_AUTOSIZE]},mxGraph.prototype.isAutoSizeCells=function(){return this.autoSizeCells},mxGraph.prototype.setAutoSizeCells=function(e){this.autoSizeCells=e},mxGraph.prototype.isExtendParent=function(e){return!this.getModel().isEdge(e)&&this.isExtendParents()},mxGraph.prototype.isExtendParents=function(){return this.extendParents},mxGraph.prototype.setExtendParents=function(e){this.extendParents=e},mxGraph.prototype.isExtendParentsOnAdd=function(){return this.extendParentsOnAdd},mxGraph.prototype.setExtendParentsOnAdd=function(e){this.extendParentsOnAdd=e},mxGraph.prototype.isConstrainChild=function(e){return this.isConstrainChildren()&&!this.getModel().isEdge(this.getModel().getParent(e))},mxGraph.prototype.isConstrainChildren=function(){return this.constrainChildren},mxGraph.prototype.setConstrainChildren=function(e){this.constrainChildren=e},mxGraph.prototype.isAllowNegativeCoordinates=function(){return this.allowNegativeCoordinates},mxGraph.prototype.setAllowNegativeCoordinates=function(e){this.allowNegativeCoordinates=e},mxGraph.prototype.getOverlap=function(e){return this.isAllowOverlapParent(e)?this.defaultOverlap:0},mxGraph.prototype.isAllowOverlapParent=function(e){return!1},mxGraph.prototype.getFoldableCells=function(e,n){return this.model.filterCells(e,mxUtils.bind(this,function(e){return this.isCellFoldable(e,n)}))},mxGraph.prototype.isCellFoldable=function(e,n){var t=null!=(t=this.view.getState(e))?t.style:this.getCellStyle(e);return 0<this.model.getChildCount(e)&&0!=t[mxConstants.STYLE_FOLDABLE]},mxGraph.prototype.isValidDropTarget=function(e,n,t){return null!=e&&(this.isSplitEnabled()&&this.isSplitTarget(e,n,t)||!this.model.isEdge(e)&&(this.isSwimlane(e)||0<this.model.getChildCount(e)&&!this.isCellCollapsed(e)))},mxGraph.prototype.isSplitTarget=function(e,n,t){return!(!this.model.isEdge(e)||null==n||1!=n.length||!this.isCellConnectable(n[0])||null!=this.getEdgeValidationError(e,this.model.getTerminal(e,!0),n[0]))&&(t=this.model.getTerminal(e,!0),e=this.model.getTerminal(e,!1),!this.model.isAncestor(n[0],t)&&!this.model.isAncestor(n[0],e))},mxGraph.prototype.getDropTarget=function(e,n,t){if(!this.isSwimlaneNesting())for(var a=0;a<e.length;a++)if(this.isSwimlane(e[a]))return null;if((a=mxUtils.convertPoint(this.container,mxEvent.getClientX(n),mxEvent.getClientY(n))).x-=this.panDx,a.y-=this.panDy,a=this.getSwimlaneAt(a.x,a.y),null==t)t=a;else if(null!=a){for(var i=this.model.getParent(a);null!=i&&this.isSwimlane(i)&&i!=t;)i=this.model.getParent(i);i==t&&(t=a)}for(;null!=t&&!this.isValidDropTarget(t,e,n)&&!this.model.isLayer(t);)t=this.model.getParent(t);return!this.model.isLayer(t)&&mxUtils.indexOf(e,t)<0?t:null},mxGraph.prototype.getDefaultParent=function(){var e=this.defaultParent;return null==e&&(null==(e=this.getCurrentRoot())&&(e=this.model.getRoot(),e=this.model.getChildAt(e,0))),e},mxGraph.prototype.setDefaultParent=function(e){this.defaultParent=e},mxGraph.prototype.getSwimlane=function(e){for(;null!=e&&!this.isSwimlane(e);)e=this.model.getParent(e);return e},mxGraph.prototype.getSwimlaneAt=function(e,n,t){if(null!=(t=t||this.getDefaultParent()))for(var a=this.model.getChildCount(t),i=0;i<a;i++){var s=this.model.getChildAt(t,i),o=this.getSwimlaneAt(e,n,s);if(null!=o)return o;if(this.isSwimlane(s)&&(o=this.view.getState(s),this.intersects(o,e,n)))return s}return null},mxGraph.prototype.getCellAt=function(e,n,t,a,i){if(a=null==a||a,i=null==i||i,null!=(t=null!=t?t:this.getDefaultParent()))for(var s=this.model.getChildCount(t)-1;0<=s;s--){var o=this.model.getChildAt(t,s),r=this.getCellAt(e,n,o,a,i);if(null!=r)return r;if(this.isCellVisible(o)&&(i&&this.model.isEdge(o)||a&&this.model.isVertex(o))&&(r=this.view.getState(o),this.intersects(r,e,n)))return o}return null},mxGraph.prototype.intersects=function(e,n,t){if(null!=e){var a=e.absolutePoints;if(null!=a){e=this.tolerance*this.tolerance;for(var i=a[0],s=1;s<a.length;s++){var o=a[s];if(mxUtils.ptSegDistSq(i.x,i.y,o.x,o.y,n,t)<=e)return!0;i=o}}else if(0!=(i=mxUtils.toRadians(mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION)||0))&&(a=Math.cos(-i),i=Math.sin(-i),s=new mxPoint(e.getCenterX(),e.getCenterY()),n=(i=mxUtils.getRotatedPoint(new mxPoint(n,t),a,i,s)).x,t=i.y),mxUtils.contains(e,n,t))return!0}return!1},mxGraph.prototype.hitsSwimlaneContent=function(e,n,t){var a=this.getView().getState(e);if(e=this.getStartSize(e),null!=a){var i=this.getView().getScale();if(n-=a.x,t-=a.y,0<e.width&&0<n&&n>e.width*i||0<e.height&&0<t&&t>e.height*i)return!0}return!1},mxGraph.prototype.getChildVertices=function(e){return this.getChildCells(e,!0,!1)},mxGraph.prototype.getChildEdges=function(e){return this.getChildCells(e,!1,!0)},mxGraph.prototype.getChildCells=function(e,n,t){for(e=null!=e?e:this.getDefaultParent(),e=this.model.getChildCells(e,null!=n&&n,null!=t&&t),n=[],t=0;t<e.length;t++)this.isCellVisible(e[t])&&n.push(e[t]);return n},mxGraph.prototype.getConnections=function(e,n){return this.getEdges(e,n,!0,!0,!1)},mxGraph.prototype.getIncomingEdges=function(e,n){return this.getEdges(e,n,!0,!1,!1)},mxGraph.prototype.getOutgoingEdges=function(e,n){return this.getEdges(e,n,!1,!0,!1)},mxGraph.prototype.getEdges=function(e,n,t,a,i,s){t=null==t||t,a=null==a||a,i=null==i||i,s=null!=s&&s;for(var o=[],r=this.isCellCollapsed(e),l=this.model.getChildCount(e),d=0;d<l;d++){var c=this.model.getChildAt(e,d);!r&&this.isCellVisible(c)||(o=o.concat(this.model.getEdges(c,t,a)))}for(o=o.concat(this.model.getEdges(e,t,a)),r=[],d=0;d<o.length;d++)l=null!=(c=this.view.getState(o[d]))?c.getVisibleTerminal(!0):this.view.getVisibleTerminal(o[d],!0),c=null!=c?c.getVisibleTerminal(!1):this.view.getVisibleTerminal(o[d],!1),(i&&l==c||l!=c&&(t&&c==e&&(null==n||this.isValidAncestor(l,n,s))||a&&l==e&&(null==n||this.isValidAncestor(c,n,s))))&&r.push(o[d]);return r},mxGraph.prototype.isValidAncestor=function(e,n,t){return t?this.model.isAncestor(n,e):this.model.getParent(e)==n},mxGraph.prototype.getOpposites=function(e,n,t,a){t=null==t||t,a=null==a||a;var i=[],s={};if(null!=e)for(var o=0;o<e.length;o++){var r=null!=(l=this.view.getState(e[o]))?l.getVisibleTerminal(!0):this.view.getVisibleTerminal(e[o],!0),l=null!=l?l.getVisibleTerminal(!1):this.view.getVisibleTerminal(e[o],!1);if(r==n&&null!=l&&l!=n&&a){var d=mxCellPath.create(l);null==s[d]&&(s[d]=l,i.push(l))}else l==n&&null!=r&&r!=n&&t&&(null==s[d=mxCellPath.create(r)]&&(s[d]=r,i.push(r)))}return i},mxGraph.prototype.getEdgesBetween=function(e,n,t){t=null!=t&&t;for(var a=this.getEdges(e),i=[],s=0;s<a.length;s++){var o=null!=(r=this.view.getState(a[s]))?r.getVisibleTerminal(!0):this.view.getVisibleTerminal(a[s],!0),r=null!=r?r.getVisibleTerminal(!1):this.view.getVisibleTerminal(a[s],!1);(o==e&&r==n||!t&&o==n&&r==e)&&i.push(a[s])}return i},mxGraph.prototype.getPointForEvent=function(e,n){var t=mxUtils.convertPoint(this.container,mxEvent.getClientX(e),mxEvent.getClientY(e)),a=this.view.scale,i=this.view.translate,s=0!=n?this.gridSize/2:0;return t.x=this.snap(t.x/a-i.x-s),t.y=this.snap(t.y/a-i.y-s),t},mxGraph.prototype.getCells=function(e,n,t,a,i,s){if(s=null!=s?s:[],0<t||0<a){var o=e+t,r=n+a;if(null!=(i=i||this.getDefaultParent()))for(var l=this.model.getChildCount(i),d=0;d<l;d++){var c=this.model.getChildAt(i,d),m=this.view.getState(c);if(this.isCellVisible(c)&&null!=m){var u=m;0!=(m=mxUtils.getValue(m.style,mxConstants.STYLE_ROTATION)||0)&&(u=mxUtils.getBoundingBox(u,m)),u.x>=e&&u.y+u.height<=r&&u.y>=n&&u.x+u.width<=o?s.push(c):this.getCells(e,n,t,a,c,s)}}}return s},mxGraph.prototype.getCellsBeyond=function(e,n,t,a,i){var s=[];if((a||i)&&(null==t&&(t=this.getDefaultParent()),null!=t))for(var o=this.model.getChildCount(t),r=0;r<o;r++){var l=this.model.getChildAt(t,r),d=this.view.getState(l);this.isCellVisible(l)&&null!=d&&(!a||d.x>=e)&&(!i||d.y>=n)&&s.push(l)}return s},mxGraph.prototype.findTreeRoots=function(e,n,t){n=null!=n&&n,t=null!=t&&t;var a=[];if(null!=e){for(var i=this.getModel(),s=i.getChildCount(e),o=null,r=0,l=0;l<s;l++){var d=i.getChildAt(e,l);if(this.model.isVertex(d)&&this.isCellVisible(d)){for(var c=this.getConnections(d,n?e:null),m=0,u=0,p=0;p<c.length;p++)this.view.getVisibleTerminal(c[p],!0)==d?m++:u++;(t&&0==m&&0<u||!t&&0==u&&0<m)&&a.push(d),r<(c=t?u-m:m-u)&&(r=c,o=d)}}0==a.length&&null!=o&&a.push(o)}return a},mxGraph.prototype.traverse=function(e,n,t,a,i){if(null!=t&&null!=e){n=null==n||n,i=i||[];var s=mxCellPath.create(e);if(null==i[s]&&(null==(a=t(i[s]=e,a))||a)&&0<(a=this.model.getEdgeCount(e)))for(s=0;s<a;s++){var o=this.model.getEdgeAt(e,s),r=this.model.getTerminal(o,!0)==e;n&&!r||(r=this.model.getTerminal(o,!r),this.traverse(r,n,t,o,i))}}},mxGraph.prototype.isCellSelected=function(e){return this.getSelectionModel().isSelected(e)},mxGraph.prototype.isSelectionEmpty=function(){return this.getSelectionModel().isEmpty()},mxGraph.prototype.clearSelection=function(){return this.getSelectionModel().clear()},mxGraph.prototype.getSelectionCount=function(){return this.getSelectionModel().cells.length},mxGraph.prototype.getSelectionCell=function(){return this.getSelectionModel().cells[0]},mxGraph.prototype.getSelectionCells=function(){return this.getSelectionModel().cells.slice()},mxGraph.prototype.setSelectionCell=function(e){this.getSelectionModel().setCell(e)},mxGraph.prototype.setSelectionCells=function(e){this.getSelectionModel().setCells(e)},mxGraph.prototype.addSelectionCell=function(e){this.getSelectionModel().addCell(e)},mxGraph.prototype.addSelectionCells=function(e){this.getSelectionModel().addCells(e)},mxGraph.prototype.removeSelectionCell=function(e){this.getSelectionModel().removeCell(e)},mxGraph.prototype.removeSelectionCells=function(e){this.getSelectionModel().removeCells(e)},mxGraph.prototype.selectRegion=function(e,n){var t=this.getCells(e.x,e.y,e.width,e.height);return this.selectCellsForEvent(t,n),t},mxGraph.prototype.selectNextCell=function(){this.selectCell(!0)},mxGraph.prototype.selectPreviousCell=function(){this.selectCell()},mxGraph.prototype.selectParentCell=function(){this.selectCell(!1,!0)},mxGraph.prototype.selectChildCell=function(){this.selectCell(!1,!1,!0)},mxGraph.prototype.selectCell=function(e,n,t){var a=0<(i=this.selectionModel).cells.length?i.cells[0]:null;1<i.cells.length&&i.clear();var i=null!=a?this.model.getParent(a):this.getDefaultParent(),s=this.model.getChildCount(i);null==a&&0<s?(e=this.model.getChildAt(i,0),this.setSelectionCell(e)):null!=a&&!n||null==this.view.getState(i)||null==this.model.getGeometry(i)?null!=a&&t?0<this.model.getChildCount(a)&&(e=this.model.getChildAt(a,0),this.setSelectionCell(e)):0<s&&(n=i.getIndex(a),e=e?(n++,this.model.getChildAt(i,n%s)):(n--,this.model.getChildAt(i,n<0?s-1:n)),this.setSelectionCell(e)):this.getCurrentRoot()!=i&&this.setSelectionCell(i)},mxGraph.prototype.selectAll=function(e){e=e||this.getDefaultParent(),null!=(e=this.model.getChildren(e))&&this.setSelectionCells(e)},mxGraph.prototype.selectVertices=function(e){this.selectCells(!0,!1,e)},mxGraph.prototype.selectEdges=function(e){this.selectCells(!1,!0,e)},mxGraph.prototype.selectCells=function(n,t,e){e=e||this.getDefaultParent();var a=mxUtils.bind(this,function(e){return null!=this.view.getState(e)&&0==this.model.getChildCount(e)&&(this.model.isVertex(e)&&n||this.model.isEdge(e)&&t)});e=this.model.filterDescendants(a,e),this.setSelectionCells(e)},mxGraph.prototype.selectCellForEvent=function(e,n){var t=this.isCellSelected(e);this.isToggleEvent(n)?t?this.removeSelectionCell(e):this.addSelectionCell(e):(!t||1!=this.getSelectionCount())&&this.setSelectionCell(e)},mxGraph.prototype.selectCellsForEvent=function(e,n){this.isToggleEvent(n)?this.addSelectionCells(e):this.setSelectionCells(e)},mxGraph.prototype.createHandler=function(e){var n=null;return null!=e&&(n=this.model.isEdge(e.cell)?(n=this.view.getEdgeStyle(e),this.isLoop(e)||n==mxEdgeStyle.ElbowConnector||n==mxEdgeStyle.SideToSide||n==mxEdgeStyle.TopToBottom?new mxElbowEdgeHandler(e):n==mxEdgeStyle.SegmentConnector||n==mxEdgeStyle.OrthConnector?new mxEdgeSegmentHandler(e):new mxEdgeHandler(e)):new mxVertexHandler(e)),n},mxGraph.prototype.addMouseListener=function(e){null==this.mouseListeners&&(this.mouseListeners=[]),this.mouseListeners.push(e)},mxGraph.prototype.removeMouseListener=function(e){if(null!=this.mouseListeners)for(var n=0;n<this.mouseListeners.length;n++)if(this.mouseListeners[n]==e){this.mouseListeners.splice(n,1);break}},mxGraph.prototype.updateMouseEvent=function(e){if(null==e.graphX||null==e.graphY){var n=mxUtils.convertPoint(this.container,e.getX(),e.getY());e.graphX=n.x-this.panDx,e.graphY=n.y-this.panDy}},mxGraph.prototype.fireMouseEvent=function(e,n,t){if(null==t&&(t=this),this.updateMouseEvent(n),e==mxEvent.MOUSE_DOWN&&(this.isMouseDown=!0),mxClient.IS_TOUCH&&this.doubleTapEnabled&&e==mxEvent.MOUSE_DOWN){var a=(new Date).getTime();a-this.lastTouchTime<this.doubleTapTimeout&&Math.abs(this.lastTouchX-n.getX())<this.doubleTapTolerance&&Math.abs(this.lastTouchY-n.getY())<this.doubleTapTolerance?(this.lastTouchTime=0,this.dblClick(n.getEvent(),n.getCell()),n.getEvent().cancelBubble=!0):(this.lastTouchX=n.getX(),this.lastTouchY=n.getY(),this.lastTouchTime=a)}if(a=2!=n.getEvent().detail,mxClient.IS_IE&&"CSS1Compat"==document.compatMode&&((null!=this.lastMouseX&&Math.abs(this.lastMouseX-n.getX())>this.doubleTapTolerance||null!=this.lastMouseY&&Math.abs(this.lastMouseY-n.getY())>this.doubleTapTolerance)&&(a=!0),e==mxEvent.MOUSE_UP&&(this.lastMouseX=n.getX(),this.lastMouseY=n.getY())),(e!=mxEvent.MOUSE_UP||this.isMouseDown)&&a){if(e==mxEvent.MOUSE_UP&&(this.isMouseDown=!1),!this.isEditing()&&(mxClient.IS_OP||mxClient.IS_SF||mxClient.IS_GC||mxClient.IS_IE&&mxClient.IS_SVG||n.getEvent().target!=this.container)){if(e==mxEvent.MOUSE_MOVE&&this.isMouseDown&&this.autoScroll&&this.scrollPointToVisible(n.getGraphX(),n.getGraphY(),this.autoExtend),null!=this.mouseListeners)for(t=[t,n],n.getEvent().returnValue=!0,a=0;a<this.mouseListeners.length;a++){var i=this.mouseListeners[a];e==mxEvent.MOUSE_DOWN?i.mouseDown.apply(i,t):e==mxEvent.MOUSE_MOVE?i.mouseMove.apply(i,t):e==mxEvent.MOUSE_UP&&i.mouseUp.apply(i,t)}e==mxEvent.MOUSE_UP&&this.click(n)}}else e==mxEvent.MOUSE_UP&&(this.isMouseDown=!1)},mxGraph.prototype.destroy=function(){this.destroyed||(this.destroyed=!0,null!=this.tooltipHandler&&this.tooltipHandler.destroy(),null!=this.selectionCellsHandler&&this.selectionCellsHandler.destroy(),null!=this.panningHandler&&this.panningHandler.destroy(),null!=this.connectionHandler&&this.connectionHandler.destroy(),null!=this.graphHandler&&this.graphHandler.destroy(),null!=this.cellEditor&&this.cellEditor.destroy(),null!=this.view&&this.view.destroy(),null!=this.model&&null!=this.graphModelChangeListener&&(this.model.removeListener(this.graphModelChangeListener),this.graphModelChangeListener=null),this.container=null)},mxCellOverlay.prototype=new mxEventSource,mxCellOverlay.prototype.constructor=mxCellOverlay,mxCellOverlay.prototype.image=null,mxCellOverlay.prototype.tooltip=null,mxCellOverlay.prototype.align=mxConstants.ALIGN_RIGHT,mxCellOverlay.prototype.verticalAlign=mxConstants.ALIGN_BOTTOM,mxCellOverlay.prototype.offset=null,mxCellOverlay.prototype.cursor=null,mxCellOverlay.prototype.defaultOverlap=.5,mxCellOverlay.prototype.getBounds=function(e){var n=e.view.graph.getModel().isEdge(e.cell),t=e.view.scale,a=null,i=this.image.width,s=this.image.height;return n?a=1==(n=e.absolutePoints).length%2?n[Math.floor(n.length/2)]:(e=n[(a=n.length/2)-1],n=n[a],new mxPoint(e.x+(n.x-e.x)/2,e.y+(n.y-e.y)/2)):((a=new mxPoint).x=this.align==mxConstants.ALIGN_LEFT?e.x:this.align==mxConstants.ALIGN_CENTER?e.x+e.width/2:e.x+e.width,a.y=this.verticalAlign==mxConstants.ALIGN_TOP?e.y:this.verticalAlign==mxConstants.ALIGN_MIDDLE?e.y+e.height/2:e.y+e.height),new mxRectangle(Math.round(a.x-(i*this.defaultOverlap-this.offset.x)*t),Math.round(a.y-(s*this.defaultOverlap-this.offset.y)*t),i*t,s*t)},mxCellOverlay.prototype.toString=function(){return this.tooltip},mxOutline.prototype.source=null,mxOutline.prototype.outline=null,mxOutline.prototype.graphRenderHint=mxConstants.RENDERING_HINT_FASTER,mxOutline.prototype.enabled=!0,mxOutline.prototype.showViewport=!0,mxOutline.prototype.border=10,mxOutline.prototype.sizerSize=8,mxOutline.prototype.updateOnPan=!1,mxOutline.prototype.sizerImage=null,mxOutline.prototype.suspended=!1,mxOutline.prototype.init=function(e){this.outline=new mxGraph(e,this.source.getModel(),this.graphRenderHint,this.source.getStylesheet()),this.outline.foldingEnabled=!1,this.outline.autoScroll=!1;var n=this.outline.graphModelChanged;this.outline.graphModelChanged=mxUtils.bind(this,function(e){!this.suspended&&null!=this.outline&&n.apply(this.outline,arguments)}),mxClient.IS_SVG&&((e=this.outline.getView().getCanvas().parentNode).setAttribute("shape-rendering","optimizeSpeed"),e.setAttribute("image-rendering","optimizeSpeed")),this.outline.labelsVisible=!1,this.outline.setEnabled(!1),this.updateHandler=mxUtils.bind(this,function(e,n){!this.suspended&&!this.active&&this.update()}),this.source.getModel().addListener(mxEvent.CHANGE,this.updateHandler),this.outline.addMouseListener(this),(e=this.source.getView()).addListener(mxEvent.SCALE,this.updateHandler),e.addListener(mxEvent.TRANSLATE,this.updateHandler),e.addListener(mxEvent.SCALE_AND_TRANSLATE,this.updateHandler),e.addListener(mxEvent.DOWN,this.updateHandler),e.addListener(mxEvent.UP,this.updateHandler),mxEvent.addListener(this.source.container,"scroll",this.updateHandler),this.panHandler=mxUtils.bind(this,function(e){this.updateOnPan&&this.updateHandler.apply(this,arguments)}),this.source.addListener(mxEvent.PAN,this.panHandler),this.refreshHandler=mxUtils.bind(this,function(e){this.outline.setStylesheet(this.source.getStylesheet()),this.outline.refresh()}),this.source.addListener(mxEvent.REFRESH,this.refreshHandler),this.bounds=new mxRectangle(0,0,0,0),this.selectionBorder=new mxRectangleShape(this.bounds,null,mxConstants.OUTLINE_COLOR,mxConstants.OUTLINE_STROKEWIDTH),this.selectionBorder.dialect=this.outline.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.selectionBorder.init(this.outline.getView().getOverlayPane()),mxEvent.redirectMouseEvents(this.selectionBorder.node,this.outline),this.selectionBorder.node.style.background="",this.sizer=this.createSizer(),this.sizer.init(this.outline.getView().getOverlayPane()),this.enabled&&(this.sizer.node.style.cursor="pointer"),mxEvent.addListener(this.sizer.node,mxClient.IS_TOUCH?"touchstart":"mousedown",mxUtils.bind(this,function(e){this.outline.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e))})),this.selectionBorder.node.style.display=this.showViewport?"":"none",this.sizer.node.style.display=this.selectionBorder.node.style.display,this.selectionBorder.node.style.cursor="move",this.update(!1)},mxOutline.prototype.isEnabled=function(){return this.enabled},mxOutline.prototype.setEnabled=function(e){this.enabled=e},mxOutline.prototype.setZoomEnabled=function(e){this.sizer.node.style.visibility=e?"visible":"hidden"},mxOutline.prototype.refresh=function(){this.update(!0)},mxOutline.prototype.createSizer=function(){var e=null!=this.sizerImage?new mxImageShape(new mxRectangle(0,0,this.sizerImage.width,this.sizerImage.height),this.sizerImage.src):new mxRectangleShape(new mxRectangle(0,0,this.sizerSize,this.sizerSize),mxConstants.OUTLINE_HANDLE_FILLCOLOR,mxConstants.OUTLINE_HANDLE_STROKECOLOR);return e.dialect=this.outline.dialect,e},mxOutline.prototype.getSourceContainerSize=function(){return new mxRectangle(0,0,this.source.container.scrollWidth,this.source.container.scrollHeight)},mxOutline.prototype.getOutlineOffset=function(e){return null},mxOutline.prototype.update=function(e){if(null!=this.source){var n=this.source.view.scale,t=new mxRectangle((t=this.source.getGraphBounds()).x/n+this.source.panDx,t.y/n+this.source.panDy,t.width/n,t.height/n),a=new mxRectangle(0,0,this.source.container.clientWidth/n,this.source.container.clientHeight/n);(s=t.clone()).add(a);var i=this.getSourceContainerSize(),s=(a=Math.max(i.width/n,s.width),n=Math.max(i.height/n,s.height),Math.max(0,this.outline.container.clientWidth-this.border));i=Math.max(0,this.outline.container.clientHeight-this.border);if(0<(s=Math.min(s/a,i/n))){this.outline.getView().scale!=s&&(this.outline.getView().scale=s,e=!0),(a=this.outline.getView()).currentRoot!=this.source.getView().currentRoot&&a.setCurrentRoot(this.source.getView().currentRoot);i=(n=this.source.view.translate).x+this.source.panDx;var o=n.y+this.source.panDy;null!=(s=this.getOutlineOffset(s))&&(i+=s.x,o+=s.y),t.x<0&&(i-=t.x),t.y<0&&(o-=t.y),a.translate.x==i&&a.translate.y==o||(a.translate.x=i,a.translate.y=o,e=!0);t=a.translate,i=(s=this.source.getView().scale)/a.scale,o=1/a.scale;var r=this.source.container;this.bounds=new mxRectangle((t.x-n.x-this.source.panDx)/o,(t.y-n.y-this.source.panDy)/o,r.clientWidth/i,r.clientHeight/i),this.bounds.x+=this.source.container.scrollLeft*a.scale/s,this.bounds.y+=this.source.container.scrollTop*a.scale/s,(t=this.selectionBorder.bounds).x==this.bounds.x&&t.y==this.bounds.y&&t.width==this.bounds.width&&t.height==this.bounds.height||(this.selectionBorder.bounds=this.bounds,this.selectionBorder.redraw()),t=this.sizer.bounds,a=new mxRectangle(this.bounds.x+this.bounds.width-t.width/2,this.bounds.y+this.bounds.height-t.height/2,t.width,t.height),t.x==a.x&&t.y==a.y&&t.width==a.width&&t.height==a.height||(this.sizer.bounds=a,"hidden"!=this.sizer.node.style.visibility&&this.sizer.redraw()),e&&this.outline.view.revalidate()}}},mxOutline.prototype.mouseDown=function(e,n){this.enabled&&this.showViewport&&(this.zoom=n.isSource(this.sizer),this.startX=n.getX(),this.startY=n.getY(),this.active=!0,this.source.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.source.container)?(this.dx0=this.source.container.scrollLeft,this.dy0=this.source.container.scrollTop):this.dy0=this.dx0=0),n.consume()},mxOutline.prototype.mouseMove=function(e,n){if(this.active){this.selectionBorder.node.style.display=this.showViewport?"":"none",this.sizer.node.style.display=this.selectionBorder.node.style.display;var t=n.getX()-this.startX,a=n.getY()-this.startY,i=null;if(this.zoom)a=t/((i=this.source.container).clientWidth/i.clientHeight),i=new mxRectangle(this.bounds.x,this.bounds.y,Math.max(1,this.bounds.width+t),Math.max(1,this.bounds.height+a)),this.selectionBorder.bounds=i,this.selectionBorder.redraw();else{var s=this.outline.getView().scale;i=new mxRectangle(this.bounds.x+t,this.bounds.y+a,this.bounds.width,this.bounds.height);this.selectionBorder.bounds=i,this.selectionBorder.redraw(),t=t/s*this.source.getView().scale,a=a/s*this.source.getView().scale,this.source.panGraph(-t-this.dx0,-a-this.dy0)}t=this.sizer.bounds,this.sizer.bounds=new mxRectangle(i.x+i.width-t.width/2,i.y+i.height-t.height/2,t.width,t.height),"hidden"!=this.sizer.node.style.visibility&&this.sizer.redraw(),n.consume()}},mxOutline.prototype.mouseUp=function(e,n){if(this.active){var t=n.getX()-this.startX,a=n.getY()-this.startY;if(0<Math.abs(t)||0<Math.abs(a)){if(this.zoom){a=this.selectionBorder.bounds.width;var i=this.source.getView().scale;this.source.zoomTo(i-t*i/a,!1)}else this.source.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.source.container)||(this.source.panGraph(0,0),t/=this.outline.getView().scale,a/=this.outline.getView().scale,i=this.source.getView().translate,this.source.getView().setTranslate(i.x-t,i.y-a));this.update(),n.consume()}this.index=null,this.active=!1}},mxOutline.prototype.destroy=function(){null!=this.source&&(this.source.removeListener(this.panHandler),this.source.removeListener(this.refreshHandler),this.source.getModel().removeListener(this.updateHandler),this.source.getView().removeListener(this.updateHandler),mxEvent.addListener(this.source.container,"scroll",this.updateHandler),this.source=null),null!=this.outline&&(this.outline.removeMouseListener(this),this.outline.destroy(),this.outline=null),null!=this.selectionBorder&&(this.selectionBorder.destroy(),this.selectionBorder=null),null!=this.sizer&&(this.sizer.destroy(),this.sizer=null)},mxMultiplicity.prototype.type=null,mxMultiplicity.prototype.attr=null,mxMultiplicity.prototype.value=null,mxMultiplicity.prototype.source=null,mxMultiplicity.prototype.min=null,mxMultiplicity.prototype.max=null,mxMultiplicity.prototype.validNeighbors=null,mxMultiplicity.prototype.validNeighborsAllowed=!0,mxMultiplicity.prototype.countError=null,mxMultiplicity.prototype.typeError=null,mxMultiplicity.prototype.check=function(e,n,t,a,i,s){var o="";return(this.source&&this.checkTerminal(e,t,n)||!this.source&&this.checkTerminal(e,a,n))&&(null!=this.countError&&(this.source&&(0==this.max||i>=this.max)||!this.source&&(0==this.max||s>=this.max))&&(o+=this.countError+"\n"),null!=this.validNeighbors&&null!=this.typeError&&0<this.validNeighbors.length&&(this.checkNeighbors(e,n,t,a)||(o+=this.typeError+"\n"))),0<o.length?o:null},mxMultiplicity.prototype.checkNeighbors=function(e,n,t,a){n=e.model.getValue(t),a=e.model.getValue(a),t=!this.validNeighborsAllowed;for(var i=this.validNeighbors,s=0;s<i.length;s++){if(this.source&&this.checkType(e,a,i[s])){t=this.validNeighborsAllowed;break}if(!this.source&&this.checkType(e,n,i[s])){t=this.validNeighborsAllowed;break}}return t},mxMultiplicity.prototype.checkTerminal=function(e,n,t){return n=e.model.getValue(n),this.checkType(e,n,this.type,this.attr,this.value)},mxMultiplicity.prototype.checkType=function(e,n,t,a,i){return null!=n&&(isNaN(n.nodeType)?n==t:mxUtils.isNode(n,t,a,i))},mxLayoutManager.prototype=new mxEventSource,mxLayoutManager.prototype.constructor=mxLayoutManager,mxLayoutManager.prototype.graph=null,mxLayoutManager.prototype.bubbling=!0,mxLayoutManager.prototype.enabled=!0,mxLayoutManager.prototype.updateHandler=null,mxLayoutManager.prototype.moveHandler=null,mxLayoutManager.prototype.isEnabled=function(){return this.enabled},mxLayoutManager.prototype.setEnabled=function(e){this.enabled=e},mxLayoutManager.prototype.isBubbling=function(){return this.bubbling},mxLayoutManager.prototype.setBubbling=function(e){this.bubbling=e},mxLayoutManager.prototype.getGraph=function(){return this.graph},mxLayoutManager.prototype.setGraph=function(e){if(null!=this.graph){var n=this.graph.getModel();n.removeListener(this.undoHandler),this.graph.removeListener(this.moveHandler)}this.graph=e,null!=this.graph&&((n=this.graph.getModel()).addListener(mxEvent.BEFORE_UNDO,this.undoHandler),this.graph.addListener(mxEvent.MOVE_CELLS,this.moveHandler))},mxLayoutManager.prototype.getLayout=function(e){return null},mxLayoutManager.prototype.beforeUndo=function(e){e=this.getCellsForChanges(e.changes);var n=this.getGraph().getModel();if(this.isBubbling())for(var t=n.getParents(e);0<t.length;)e=e.concat(t),t=n.getParents(t);this.layoutCells(mxUtils.sortCells(e,!1))},mxLayoutManager.prototype.cellsMoved=function(e,n){if(null!=e&&null!=n)for(var t=mxUtils.convertPoint(this.getGraph().container,mxEvent.getClientX(n),mxEvent.getClientY(n)),a=this.getGraph().getModel(),i=0;i<e.length;i++){var s=this.getLayout(a.getParent(e[i]));null!=s&&s.moveCell(e[i],t.x,t.y)}},mxLayoutManager.prototype.getCellsForChanges=function(e){for(var n=[],t={},a=0;a<e.length;a++){if((i=e[a])instanceof mxRootChange)return[];for(var i=this.getCellsForChange(i),s=0;s<i.length;s++)if(null!=i[s]){var o=mxCellPath.create(i[s]);null==t[o]&&(t[o]=i[s],n.push(i[s]))}}return n},mxLayoutManager.prototype.getCellsForChange=function(e){var n=this.getGraph().getModel();return e instanceof mxChildChange?[e.child,e.previous,n.getParent(e.child)]:e instanceof mxTerminalChange||e instanceof mxGeometryChange?[e.cell,n.getParent(e.cell)]:[]},mxLayoutManager.prototype.layoutCells=function(e){if(0<e.length){var n=this.getGraph().getModel();n.beginUpdate();try{for(var t=null,a=0;a<e.length;a++)e[a]!=n.getRoot()&&e[a]!=t&&(t=e[a],this.executeLayout(this.getLayout(t),t));this.fireEvent(new mxEventObject(mxEvent.LAYOUT_CELLS,"cells",e))}finally{n.endUpdate()}}},mxLayoutManager.prototype.executeLayout=function(e,n){null!=e&&null!=n&&e.execute(n)},mxLayoutManager.prototype.destroy=function(){this.setGraph(null)},mxSpaceManager.prototype=new mxEventSource,mxSpaceManager.prototype.constructor=mxSpaceManager,mxSpaceManager.prototype.graph=null,mxSpaceManager.prototype.enabled=!0,mxSpaceManager.prototype.shiftRightwards=!0,mxSpaceManager.prototype.shiftDownwards=!0,mxSpaceManager.prototype.extendParents=!0,mxSpaceManager.prototype.resizeHandler=null,mxSpaceManager.prototype.foldHandler=null,mxSpaceManager.prototype.isCellIgnored=function(e){return!this.getGraph().getModel().isVertex(e)},mxSpaceManager.prototype.isCellShiftable=function(e){return this.getGraph().getModel().isVertex(e)&&this.getGraph().isCellMovable(e)},mxSpaceManager.prototype.isEnabled=function(){return this.enabled},mxSpaceManager.prototype.setEnabled=function(e){this.enabled=e},mxSpaceManager.prototype.isShiftRightwards=function(){return this.shiftRightwards},mxSpaceManager.prototype.setShiftRightwards=function(e){this.shiftRightwards=e},mxSpaceManager.prototype.isShiftDownwards=function(){return this.shiftDownwards},mxSpaceManager.prototype.setShiftDownwards=function(e){this.shiftDownwards=e},mxSpaceManager.prototype.isExtendParents=function(){return this.extendParents},mxSpaceManager.prototype.setExtendParents=function(e){this.extendParents=e},mxSpaceManager.prototype.getGraph=function(){return this.graph},mxSpaceManager.prototype.setGraph=function(e){null!=this.graph&&(this.graph.removeListener(this.resizeHandler),this.graph.removeListener(this.foldHandler)),this.graph=e,null!=this.graph&&(this.graph.addListener(mxEvent.RESIZE_CELLS,this.resizeHandler),this.graph.addListener(mxEvent.FOLD_CELLS,this.foldHandler))},mxSpaceManager.prototype.cellsResized=function(e){if(null!=e){var n=this.graph.getModel();n.beginUpdate();try{for(var t=0;t<e.length;t++)if(!this.isCellIgnored(e[t])){this.cellResized(e[t]);break}}finally{n.endUpdate()}}},mxSpaceManager.prototype.cellResized=function(e){var n=this.getGraph(),t=n.getView(),a=n.getModel(),i=t.getState(e),s=t.getState(a.getParent(e));if(null!=i&&null!=s){var o=this.getCellsToShift(i),r=a.getGeometry(e);if(null!=o&&null!=r){var l=t.translate,d=t.scale,c=(t=i.x-s.origin.x-l.x*d,s=i.y-s.origin.y-l.y*d,l=i.x+i.width,i.y+i.height),m=i.width-r.width*d+t-r.x*d,u=i.height-r.height*d+s-r.y*d,p=1-r.width*d/i.width;i=1-r.height*d/i.height;a.beginUpdate();try{for(r=0;r<o.length;r++)o[r]!=e&&this.isCellShiftable(o[r])&&this.shiftCell(o[r],m,u,t,s,l,c,p,i,this.isExtendParents()&&n.isExtendParent(o[r]))}finally{a.endUpdate()}}}},mxSpaceManager.prototype.shiftCell=function(e,n,t,a,i,s,o,r,l,d){var c=(a=this.getGraph()).getView().getState(e);if(null!=c){var m=a.getModel();if(null!=(p=m.getGeometry(e))){m.beginUpdate();try{if(this.isShiftRightwards())if(c.x>=s)(p=p.clone()).translate(-n,0);else{var u=Math.max(0,c.x-x0);(p=p.clone()).translate(-r*u,0)}if(this.isShiftDownwards())if(c.y>=o)(p=p.clone()).translate(0,-t);else{var p,g=Math.max(0,c.y-i);(p=p.clone()).translate(0,-l*g)}p!=m.getGeometry(e)&&(m.setGeometry(e,p),d&&a.extendParent(e))}finally{m.endUpdate()}}}},mxSpaceManager.prototype.getCellsToShift=function(e){var n=this.getGraph(),t=n.getModel().getParent(e.cell),a=this.isShiftDownwards(),i=this.isShiftRightwards();return n.getCellsBeyond(e.x+(a?0:e.width),e.y+(a&&i?0:e.height),t,i,a)},mxSpaceManager.prototype.destroy=function(){this.setGraph(null)},mxSwimlaneManager.prototype=new mxEventSource,mxSwimlaneManager.prototype.constructor=mxSwimlaneManager,mxSwimlaneManager.prototype.graph=null,mxSwimlaneManager.prototype.enabled=!0,mxSwimlaneManager.prototype.horizontal=!0,mxSwimlaneManager.prototype.addEnabled=!0,mxSwimlaneManager.prototype.resizeEnabled=!0,mxSwimlaneManager.prototype.addHandler=null,mxSwimlaneManager.prototype.resizeHandler=null,mxSwimlaneManager.prototype.isEnabled=function(){return this.enabled},mxSwimlaneManager.prototype.setEnabled=function(e){this.enabled=e},mxSwimlaneManager.prototype.isHorizontal=function(){return this.horizontal},mxSwimlaneManager.prototype.setHorizontal=function(e){this.horizontal=e},mxSwimlaneManager.prototype.isAddEnabled=function(){return this.addEnabled},mxSwimlaneManager.prototype.setAddEnabled=function(e){this.addEnabled=e},mxSwimlaneManager.prototype.isResizeEnabled=function(){return this.resizeEnabled},mxSwimlaneManager.prototype.setResizeEnabled=function(e){this.resizeEnabled=e},mxSwimlaneManager.prototype.getGraph=function(){return this.graph},mxSwimlaneManager.prototype.setGraph=function(e){null!=this.graph&&(this.graph.removeListener(this.addHandler),this.graph.removeListener(this.resizeHandler)),this.graph=e,null!=this.graph&&(this.graph.addListener(mxEvent.ADD_CELLS,this.addHandler),this.graph.addListener(mxEvent.CELLS_RESIZED,this.resizeHandler))},mxSwimlaneManager.prototype.isSwimlaneIgnored=function(e){return!this.getGraph().isSwimlane(e)},mxSwimlaneManager.prototype.isCellHorizontal=function(e){if(this.graph.isSwimlane(e)){var n=this.graph.view.getState(e);return e=null!=n?n.style:this.graph.getCellStyle(e),1==mxUtils.getValue(e,mxConstants.STYLE_HORIZONTAL,1)}return!this.isHorizontal()},mxSwimlaneManager.prototype.cellsAdded=function(e){if(null!=e){var n=this.getGraph().getModel();n.beginUpdate();try{for(var t=0;t<e.length;t++)this.isSwimlaneIgnored(e[t])||this.swimlaneAdded(e[t])}finally{n.endUpdate()}}},mxSwimlaneManager.prototype.swimlaneAdded=function(e){for(var n=this.getGraph().getModel(),t=n.getParent(e),a=n.getChildCount(t),i=null,s=0;s<a;s++){var o=n.getChildAt(t,s);if(o!=e&&!this.isSwimlaneIgnored(o)&&null!=(i=n.getGeometry(o)))break}null!=i&&this.resizeSwimlane(e,i.width,i.height)},mxSwimlaneManager.prototype.cellsResized=function(e){if(null!=e){var n=this.getGraph().getModel();n.beginUpdate();try{for(var t=0;t<e.length;t++)if(!this.isSwimlaneIgnored(e[t])){var a=n.getGeometry(e[t]);if(null!=a){for(var i=new mxRectangle(0,0,a.width,a.height),s=o=e[t];null!=s;){var o=s,r=(s=n.getParent(s),this.graph.isSwimlane(s)?this.graph.getStartSize(s):new mxRectangle);i.width+=r.width,i.height+=r.height}this.resizeSwimlane(o,i.width,i.height)}}}finally{n.endUpdate()}}},mxSwimlaneManager.prototype.resizeSwimlane=function(e,n,t){var a=this.getGraph().getModel();a.beginUpdate();try{if(!this.isSwimlaneIgnored(e))if(null!=(r=a.getGeometry(e))){var i=this.isCellHorizontal(e);(i&&r.height!=t||!i&&r.width!=n)&&(r=r.clone(),i?r.height=t:r.width=n,a.setGeometry(e,r))}var s=this.graph.isSwimlane(e)?this.graph.getStartSize(e):new mxRectangle;n-=s.width,t-=s.height;for(var o=a.getChildCount(e),r=0;r<o;r++){var l=a.getChildAt(e,r);this.resizeSwimlane(l,n,t)}}finally{a.endUpdate()}},mxSwimlaneManager.prototype.destroy=function(){this.setGraph(null)},mxTemporaryCellStates.prototype.view=null,mxTemporaryCellStates.prototype.oldStates=null,mxTemporaryCellStates.prototype.oldBounds=null,mxTemporaryCellStates.prototype.oldScale=null,mxTemporaryCellStates.prototype.destroy=function(){this.view.setScale(this.oldScale),this.view.setStates(this.oldStates),this.view.setGraphBounds(this.oldBounds)},mxCellStatePreview.prototype.graph=null,mxCellStatePreview.prototype.deltas=null,mxCellStatePreview.prototype.count=0,mxCellStatePreview.prototype.isEmpty=function(){return 0==this.count},mxCellStatePreview.prototype.moveState=function(e,n,t,a,i){a=null==a||a,i=null==i||i;var s=mxCellPath.create(e.cell),o=this.deltas[s];return null==o?(o=new mxPoint(n,t),this.deltas[s]=o,this.count++):a?(o.X+=n,o.Y+=t):(o.X=n,o.Y=t),i&&this.addEdges(e),o},mxCellStatePreview.prototype.show=function(e){var n,t=this.graph.getModel(),a=t.getRoot();for(n in this.deltas){var i=mxCellPath.resolve(a,n),s=this.graph.view.getState(i),o=this.deltas[n];i=this.graph.view.getState(t.getParent(i));this.translateState(i,s,o.x,o.y)}for(n in this.deltas)i=mxCellPath.resolve(a,n),s=this.graph.view.getState(i),o=this.deltas[n],i=this.graph.view.getState(t.getParent(i)),this.revalidateState(i,s,o.x,o.y,e)},mxCellStatePreview.prototype.translateState=function(e,n,t,a){if(null!=n){var i=this.graph.getModel();if(i.isVertex(n.cell)){n.invalid=!0,this.graph.view.validateBounds(e,n.cell),e=i.getGeometry(n.cell);var s=mxCellPath.create(n.cell);0==t&&0==a||null==e||e.relative&&null==this.deltas[s]||(n.x+=t,n.y+=a)}for(e=i.getChildCount(n.cell),s=0;s<e;s++)this.translateState(n,this.graph.view.getState(i.getChildAt(n.cell,s)),t,a)}},mxCellStatePreview.prototype.revalidateState=function(e,n,t,a,i){if(null!=n){n.invalid=!0,this.graph.view.validatePoints(e,n.cell);var s=mxCellPath.create(n.cell),o=this.graph.getModel(),r=this.graph.getCellGeometry(n.cell);for(0==t&&0==a||null==r||!r.relative||!o.isVertex(n.cell)||null!=e&&!o.isVertex(e.cell)&&null==this.deltas[s]||(n.x+=t,n.y+=a,this.graph.cellRenderer.redraw(n)),null!=i&&i(n),e=o.getChildCount(n.cell),s=0;s<e;s++)this.revalidateState(n,this.graph.view.getState(o.getChildAt(n.cell,s)),t,a,i)}},mxCellStatePreview.prototype.addEdges=function(e){for(var n=this.graph.getModel(),t=n.getEdgeCount(e.cell),a=0;a<t;a++){var i=this.graph.view.getState(n.getEdgeAt(e.cell,a));null!=i&&this.moveState(i,0,0)}},mxConnectionConstraint.prototype.point=null,mxConnectionConstraint.prototype.perimeter=null,mxGraphHandler.prototype.graph=null,mxGraphHandler.prototype.maxCells=mxClient.IS_IE?20:50,mxGraphHandler.prototype.enabled=!0,mxGraphHandler.prototype.highlightEnabled=!0,mxGraphHandler.prototype.cloneEnabled=!0,mxGraphHandler.prototype.moveEnabled=!0,mxGraphHandler.prototype.guidesEnabled=!1,mxGraphHandler.prototype.guide=null,mxGraphHandler.prototype.currentDx=null,mxGraphHandler.prototype.currentDy=null,mxGraphHandler.prototype.updateCursor=!0,mxGraphHandler.prototype.selectEnabled=!0,mxGraphHandler.prototype.removeCellsFromParent=!0,mxGraphHandler.prototype.connectOnDrop=!1,mxGraphHandler.prototype.scrollOnMove=!0,mxGraphHandler.prototype.minimumSize=6,mxGraphHandler.prototype.previewColor="black",mxGraphHandler.prototype.htmlPreview=!1,mxGraphHandler.prototype.shape=null,mxGraphHandler.prototype.scaleGrid=!1,mxGraphHandler.prototype.rotationEnabled=!0,mxGraphHandler.prototype.isEnabled=function(){return this.enabled},mxGraphHandler.prototype.setEnabled=function(e){this.enabled=e},mxGraphHandler.prototype.isCloneEnabled=function(){return this.cloneEnabled},mxGraphHandler.prototype.setCloneEnabled=function(e){this.cloneEnabled=e},mxGraphHandler.prototype.isMoveEnabled=function(){return this.moveEnabled},mxGraphHandler.prototype.setMoveEnabled=function(e){this.moveEnabled=e},mxGraphHandler.prototype.isSelectEnabled=function(){return this.selectEnabled},mxGraphHandler.prototype.setSelectEnabled=function(e){this.selectEnabled=e},mxGraphHandler.prototype.isRemoveCellsFromParent=function(){return this.removeCellsFromParent},mxGraphHandler.prototype.setRemoveCellsFromParent=function(e){this.removeCellsFromParent=e},mxGraphHandler.prototype.getInitialCellForEvent=function(e){return e.getCell()},mxGraphHandler.prototype.isDelayedSelection=function(e){return this.graph.isCellSelected(e)},mxGraphHandler.prototype.mouseDown=function(e,n){if(!n.isConsumed()&&this.isEnabled()&&this.graph.isEnabled()&&!this.graph.isForceMarqueeEvent(n.getEvent())&&null!=n.getState()){var t=this.getInitialCellForEvent(n);if(this.cell=null,this.delayedSelection=this.isDelayedSelection(t),this.isSelectEnabled()&&!this.delayedSelection&&this.graph.selectCellForEvent(t,n.getEvent()),this.isMoveEnabled()){var a=this.graph.model,i=a.getGeometry(t);this.graph.isCellMovable(t)&&(!a.isEdge(t)||1<this.graph.getSelectionCount()||null!=i.points&&0<i.points.length||null==a.getTerminal(t,!0)||null==a.getTerminal(t,!1)||this.graph.allowDanglingEdges||this.graph.isCloneEvent(n.getEvent())&&this.graph.isCellsCloneable())&&this.start(t,n.getX(),n.getY()),this.cellWasClicked=!0,!mxClient.IS_SF&&!mxClient.IS_GC||"SELECT"!=n.getSource().nodeName?n.consume():mxClient.IS_SF&&"SELECT"==n.getSource().nodeName&&(this.cellWasClicked=!1,this.first=null)}}},mxGraphHandler.prototype.getGuideStates=function(){var e=this.graph.getDefaultParent(),n=this.graph.getModel(),t=mxUtils.bind(this,function(e){return null!=this.graph.view.getState(e)&&n.isVertex(e)&&null!=n.getGeometry(e)&&!n.getGeometry(e).relative});return this.graph.view.getCellStates(n.filterDescendants(t,e))},mxGraphHandler.prototype.getCells=function(e){return!this.delayedSelection&&this.graph.isCellMovable(e)?[e]:this.graph.getMovableCells(this.graph.getSelectionCells())},mxGraphHandler.prototype.getPreviewBounds=function(e){return null!=(e=this.getBoundingBox(e))&&(e.grow(-1,-1),e.width<this.minimumSize&&(e.x-=(this.minimumSize-e.width)/2,e.width=this.minimumSize),e.height<this.minimumSize&&(e.y-=(this.minimumSize-e.height)/2,e.height=this.minimumSize)),e},mxGraphHandler.prototype.getBoundingBox=function(e){var n=null;if(null!=e&&0<e.length)for(var t=this.graph.getModel(),a=0;a<e.length;a++)if(t.isVertex(e[a])||t.isEdge(e[a])){var i=this.graph.view.getState(e[a]);if(null!=i){var s=i;t.isVertex(e[a])&&null!=i.shape&&null!=i.shape.boundingBox&&(s=i.shape.boundingBox),null==n?n=new mxRectangle(s.x,s.y,s.width,s.height):n.add(s)}}return n},mxGraphHandler.prototype.createPreviewShape=function(e){return(e=new mxRectangleShape(e,null,this.previewColor)).isDashed=!0,this.htmlPreview?(e.dialect=mxConstants.DIALECT_STRICTHTML,e.init(this.graph.container)):(e.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,e.init(this.graph.getView().getOverlayPane()),e.pointerEvents=!1),e},mxGraphHandler.prototype.start=function(e,n,t){this.cell=e,this.first=mxUtils.convertPoint(this.graph.container,n,t),this.cells=this.getCells(this.cell),this.bounds=this.graph.getView().getBounds(this.cells),this.pBounds=this.getPreviewBounds(this.cells),this.guidesEnabled&&(this.guide=new mxGuide(this.graph,this.getGuideStates()))},mxGraphHandler.prototype.useGuidesForEvent=function(e){return null==this.guide||this.guide.isEnabledForEvent(e.getEvent())},mxGraphHandler.prototype.snap=function(e){var n=this.scaleGrid?this.graph.view.scale:1;return e.x=this.graph.snap(e.x/n)*n,e.y=this.graph.snap(e.y/n)*n,e},mxGraphHandler.prototype.mouseMove=function(e,n){var t=this.graph;if(!n.isConsumed()&&t.isMouseDown&&null!=this.cell&&null!=this.first&&null!=this.bounds){var a=(s=mxUtils.convertPoint(t.container,n.getX(),n.getY())).x-this.first.x,i=s.y-this.first.y,s=t.tolerance;if(null!=this.shape||Math.abs(a)>s||Math.abs(i)>s){null==this.highlight&&(this.highlight=new mxCellHighlight(this.graph,mxConstants.DROP_TARGET_COLOR,3)),null==this.shape&&(this.shape=this.createPreviewShape(this.bounds));var o=t.isGridEnabledEvent(n.getEvent());s=!0;if(null!=this.guide&&this.useGuidesForEvent(n))s=!1,a=(i=this.guide.move(this.bounds,new mxPoint(a,i),o)).x,i=i.y;else if(o){var r=t.getView().translate,l=t.getView().scale;o=this.bounds.x-(t.snap(this.bounds.x/l-r.x)+r.x)*l,r=this.bounds.y-(t.snap(this.bounds.y/l-r.y)+r.y)*l,a=(i=this.snap(new mxPoint(a,i))).x-o,i=i.y-r}for(null!=this.guide&&s&&this.guide.hide(),t.isConstrainedEvent(n.getEvent())&&(Math.abs(a)>Math.abs(i)?i=0:a=0),this.currentDx=a,this.currentDy=i,this.updatePreviewShape(),s=null,i=n.getCell(),t.isDropEnabled()&&this.highlightEnabled&&(s=t.getDropTarget(this.cells,n.getEvent(),i)),o=s,r=t.getModel();null!=o&&o!=this.cells[0];)o=r.getParent(o);l=t.isCloneEvent(n.getEvent())&&t.isCellsCloneable()&&this.isCloneEnabled();var d=!1;null==(a=t.getView().getState(s))||null!=o||r.getParent(this.cell)==s&&!l?(this.target=null,this.connectOnDrop&&null!=i&&1==this.cells.length&&t.getModel().isVertex(i)&&t.isCellConnectable(i)&&(null!=(a=t.getView().getState(i))&&(t=null==t.getEdgeValidationError(null,this.cell,i)?mxConstants.VALID_COLOR:mxConstants.INVALID_CONNECT_TARGET_COLOR,this.setHighlightColor(t),d=!0))):(this.target!=s&&(this.target=s,this.setHighlightColor(mxConstants.DROP_TARGET_COLOR)),d=!0),null!=a&&d?this.highlight.highlight(a):this.highlight.hide()}n.consume(),mxEvent.consume(n.getEvent())}else!this.isMoveEnabled()&&!this.isCloneEnabled()||!this.updateCursor||n.isConsumed()||null==n.getState()||t.isMouseDown||(null==(a=t.getCursorForCell(n.getCell()))&&t.isEnabled()&&t.isCellMovable(n.getCell())&&(a=t.getModel().isEdge(n.getCell())?mxConstants.CURSOR_MOVABLE_EDGE:mxConstants.CURSOR_MOVABLE_VERTEX),n.getState().setCursor(a),n.consume())},mxGraphHandler.prototype.updatePreviewShape=function(){null!=this.shape&&(this.shape.bounds=new mxRectangle(Math.round(this.pBounds.x+this.currentDx-this.graph.panDx),Math.round(this.pBounds.y+this.currentDy-this.graph.panDy),this.pBounds.width,this.pBounds.height),this.shape.redraw())},mxGraphHandler.prototype.setHighlightColor=function(e){null!=this.highlight&&this.highlight.setHighlightColor(e)},mxGraphHandler.prototype.mouseUp=function(e,n){if(!n.isConsumed()){var t=this.graph;if(null!=this.cell&&null!=this.first&&null!=this.shape&&null!=this.currentDx&&null!=this.currentDy){var a=t.getView().scale,i=t.isCloneEvent(n.getEvent())&&t.isCellsCloneable()&&this.isCloneEnabled(),s=this.currentDx/a,o=(a=this.currentDy/a,n.getCell());this.connectOnDrop&&null==this.target&&null!=o&&t.getModel().isVertex(o)&&t.isCellConnectable(o)&&t.isEdgeValid(null,this.cell,o)?t.connectionHandler.connect(this.cell,o,n.getEvent()):(o=this.target,t.isSplitEnabled()&&t.isSplitTarget(o,this.cells,n.getEvent())?t.splitEdge(o,this.cells,null,s,a):this.moveCells(this.cells,s,a,i,this.target,n.getEvent()))}else this.isSelectEnabled()&&this.delayedSelection&&null!=this.cell&&this.selectDelayed(n)}this.cellWasClicked&&n.consume(),this.reset()},mxGraphHandler.prototype.selectDelayed=function(e){this.graph.selectCellForEvent(this.cell,e.getEvent())},mxGraphHandler.prototype.reset=function(){this.destroyShapes(),this.delayedSelection=this.cellWasClicked=!1,this.target=this.cell=this.first=this.guides=this.currentDy=this.currentDx=null},mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(e,n,t){if(this.graph.getModel().isVertex(e)){if(e=this.graph.getView().getState(e),t=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(t),mxEvent.getClientY(t)),0!=(a=mxUtils.toRadians(mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION)||0))){n=Math.cos(-a);var a=Math.sin(-a),i=new mxPoint(e.getCenterX(),e.getCenterY());t=mxUtils.getRotatedPoint(t,n,a,i)}return null!=e&&!mxUtils.contains(e,t.x,t.y)}return!1},mxGraphHandler.prototype.moveCells=function(e,n,t,a,i,s){a&&(e=this.graph.getCloneableCells(e)),null==i&&this.isRemoveCellsFromParent()&&this.shouldRemoveCellsFromParent(this.graph.getModel().getParent(this.cell),e,s)&&(i=this.graph.getDefaultParent()),e=this.graph.moveCells(e,n-this.graph.panDx/this.graph.view.scale,t-this.graph.panDy/this.graph.view.scale,a,i,s),this.isSelectEnabled()&&this.scrollOnMove&&this.graph.scrollCellToVisible(e[0]),a&&this.graph.setSelectionCells(e)},mxGraphHandler.prototype.destroyShapes=function(){null!=this.shape&&(this.shape.destroy(),this.shape=null),null!=this.guide&&(this.guide.destroy(),this.guide=null),null!=this.highlight&&(this.highlight.destroy(),this.highlight=null)},mxGraphHandler.prototype.destroy=function(){this.graph.removeMouseListener(this),this.graph.removeListener(this.panHandler),this.destroyShapes()},mxPanningHandler.prototype=new mxPopupMenu,mxPanningHandler.prototype.constructor=mxPanningHandler,mxPanningHandler.prototype.graph=null,mxPanningHandler.prototype.triggerX=null,mxPanningHandler.prototype.triggerY=null,mxPanningHandler.prototype.usePopupTrigger=!0,mxPanningHandler.prototype.useLeftButtonForPanning=!1,mxPanningHandler.prototype.selectOnPopup=!0,mxPanningHandler.prototype.clearSelectionOnBackground=!0,mxPanningHandler.prototype.ignoreCell=!1,mxPanningHandler.prototype.previewEnabled=!0,mxPanningHandler.prototype.useGrid=!1,mxPanningHandler.prototype.panningEnabled=!0,mxPanningHandler.prototype.isPanningEnabled=function(){return this.panningEnabled},mxPanningHandler.prototype.setPanningEnabled=function(e){this.panningEnabled=e},mxPanningHandler.prototype.init=function(){mxPopupMenu.prototype.init.apply(this),mxEvent.addListener(this.div,mxClient.IS_TOUCH?"touchmove":"mousemove",mxUtils.bind(this,function(e){this.graph.tooltipHandler.hide()}))},mxPanningHandler.prototype.isPanningTrigger=function(e){var n=e.getEvent();return this.useLeftButtonForPanning&&(this.ignoreCell||null==e.getState())&&mxEvent.isLeftMouseButton(n)||mxEvent.isControlDown(n)&&mxEvent.isShiftDown(n)||this.usePopupTrigger&&mxEvent.isPopupTrigger(n)},mxPanningHandler.prototype.mouseDown=function(e,n){if(!n.isConsumed()&&this.isEnabled()){this.hideMenu(),this.dx0=-this.graph.container.scrollLeft,this.dy0=-this.graph.container.scrollTop;var t=mxUtils.convertPoint(this.graph.container,n.getX(),n.getY());this.triggerX=t.x,this.triggerY=t.y,this.popupTrigger=this.isPopupTrigger(n),this.panningTrigger=this.isPanningEnabled()&&this.isPanningTrigger(n),this.startX=n.getX(),this.startY=n.getY(),this.panningTrigger&&this.consumePanningTrigger(n)}},mxPanningHandler.prototype.consumePanningTrigger=function(e){e.consume()},mxPanningHandler.prototype.mouseMove=function(e,n){var t=n.getX()-this.startX,a=n.getY()-this.startY;if(this.active)this.previewEnabled&&(this.useGrid&&(t=this.graph.snap(t),a=this.graph.snap(a)),this.graph.panGraph(t+this.dx0,a+this.dy0)),this.fireEvent(new mxEventObject(mxEvent.PAN,"event",n)),n.consume();else if(this.panningTrigger){var i=this.active;this.active=Math.abs(t)>this.graph.tolerance||Math.abs(a)>this.graph.tolerance,!i&&this.active&&this.fireEvent(new mxEventObject(mxEvent.PAN_START,"event",n))}},mxPanningHandler.prototype.mouseUp=function(e,n){var t=Math.abs(n.getX()-this.startX),a=Math.abs(n.getY()-this.startY);if(this.active){if(!this.graph.useScrollbarsForPanning||!mxUtils.hasScrollbars(this.graph.container)){t=n.getX()-this.startX,a=n.getY()-this.startY,this.useGrid&&(t=this.graph.snap(t),a=this.graph.snap(a));var i=this.graph.getView().scale,s=this.graph.getView().translate;this.graph.panGraph(0,0),this.panGraph(s.x+t/i,s.y+a/i)}this.active=!1,this.fireEvent(new mxEventObject(mxEvent.PAN_END,"event",n)),n.consume()}else this.popupTrigger&&t<this.graph.tolerance&&a<this.graph.tolerance&&(t=this.getCellForPopupEvent(n),this.graph.isEnabled()&&this.selectOnPopup&&null!=t&&!this.graph.isCellSelected(t)?this.graph.setSelectionCell(t):this.clearSelectionOnBackground&&null==t&&this.graph.clearSelection(),this.graph.tooltipHandler.hide(),a=mxUtils.getScrollOrigin(),a=new mxPoint(n.getX()+a.x,n.getY()+a.y),this.popup(a.x+1,a.y+1,t,n.getEvent()),n.consume());this.popupTrigger=this.panningTrigger=!1},mxPanningHandler.prototype.getCellForPopupEvent=function(e){return e.getCell()},mxPanningHandler.prototype.panGraph=function(e,n){this.graph.getView().setTranslate(e,n)},mxPanningHandler.prototype.destroy=function(){this.graph.removeMouseListener(this),mxPopupMenu.prototype.destroy.apply(this)},mxUtils.extend(mxCellMarker,mxEventSource),mxCellMarker.prototype.graph=null,mxCellMarker.prototype.enabled=!0,mxCellMarker.prototype.hotspot=mxConstants.DEFAULT_HOTSPOT,mxCellMarker.prototype.hotspotEnabled=!1,mxCellMarker.prototype.validColor=null,mxCellMarker.prototype.invalidColor=null,mxCellMarker.prototype.currentColor=null,mxCellMarker.prototype.validState=null,mxCellMarker.prototype.markedState=null,mxCellMarker.prototype.setEnabled=function(e){this.enabled=e},mxCellMarker.prototype.isEnabled=function(){return this.enabled},mxCellMarker.prototype.setHotspot=function(e){this.hotspot=e},mxCellMarker.prototype.getHotspot=function(){return this.hotspot},mxCellMarker.prototype.setHotspotEnabled=function(e){this.hotspotEnabled=e},mxCellMarker.prototype.isHotspotEnabled=function(){return this.hotspotEnabled},mxCellMarker.prototype.hasValidState=function(){return null!=this.validState},mxCellMarker.prototype.getValidState=function(){return this.validState},mxCellMarker.prototype.getMarkedState=function(){return this.markedState},mxCellMarker.prototype.reset=function(){(this.validState=null)!=this.markedState&&(this.markedState=null,this.unmark())},mxCellMarker.prototype.process=function(e){var n=null;if(this.isEnabled()){var t=null!=(n=this.getState(e))&&this.isValidState(n);e=this.getMarkerColor(e.getEvent(),n,t),this.validState=t?n:null,n==this.markedState&&e==this.currentColor||(this.currentColor=e,null!=n&&null!=this.currentColor?(this.markedState=n,this.mark()):null!=this.markedState&&(this.markedState=null,this.unmark()))}return n},mxCellMarker.prototype.markCell=function(e,n){var t=this.graph.getView().getState(e);null!=t&&(this.currentColor=null!=n?n:this.validColor,this.markedState=t,this.mark())},mxCellMarker.prototype.mark=function(){this.highlight.setHighlightColor(this.currentColor),this.highlight.highlight(this.markedState),this.fireEvent(new mxEventObject(mxEvent.MARK,"state",this.markedState))},mxCellMarker.prototype.unmark=function(){this.mark()},mxCellMarker.prototype.isValidState=function(e){return!0},mxCellMarker.prototype.getMarkerColor=function(e,n,t){return t?this.validColor:this.invalidColor},mxCellMarker.prototype.getState=function(e){var n=this.graph.getView();return cell=this.getCell(e),null!=(n=this.getStateToMark(n.getState(cell)))&&this.intersects(n,e)?n:null},mxCellMarker.prototype.getCell=function(e){return e.getCell()},mxCellMarker.prototype.getStateToMark=function(e){return e},mxCellMarker.prototype.intersects=function(e,n){return!this.hotspotEnabled||mxUtils.intersectsHotspot(e,n.getGraphX(),n.getGraphY(),this.hotspot,mxConstants.MIN_HOTSPOT_SIZE,mxConstants.MAX_HOTSPOT_SIZE)},mxCellMarker.prototype.destroy=function(){this.graph.getView().removeListener(this.resetHandler),this.graph.getModel().removeListener(this.resetHandler),this.highlight.destroy()},mxUtils.extend(mxSelectionCellsHandler,mxEventSource),mxSelectionCellsHandler.prototype.graph=null,mxSelectionCellsHandler.prototype.enabled=!0,mxSelectionCellsHandler.prototype.refreshHandler=null,mxSelectionCellsHandler.prototype.maxHandlers=100,mxSelectionCellsHandler.prototype.handlers=null,mxSelectionCellsHandler.prototype.isEnabled=function(){return this.enabled},mxSelectionCellsHandler.prototype.setEnabled=function(e){this.enabled=e},mxSelectionCellsHandler.prototype.getHandler=function(e){return this.handlers.get(e)},mxSelectionCellsHandler.prototype.reset=function(){this.handlers.visit(function(e,n){n.reset.apply(n)})},mxSelectionCellsHandler.prototype.refresh=function(){var e=this.handlers;this.handlers=new mxDictionary;for(var n=this.graph.getSelectionCells(),t=0;t<n.length;t++){var a=this.graph.view.getState(n[t]);if(null!=a){var i=e.remove(n[t]);null!=i&&(i.state!=a?(i.destroy(),i=null):i.redraw()),null==i&&(i=this.graph.createHandler(a),this.fireEvent(new mxEventObject(mxEvent.ADD,"state",a))),null!=i&&this.handlers.put(n[t],i)}}e.visit(mxUtils.bind(this,function(e,n){this.fireEvent(new mxEventObject(mxEvent.REMOVE,"state",n.state)),n.destroy()}))},mxSelectionCellsHandler.prototype.mouseDown=function(e,n){if(this.graph.isEnabled()&&this.isEnabled()){var t=[e,n];this.handlers.visit(function(e,n){n.mouseDown.apply(n,t)})}},mxSelectionCellsHandler.prototype.mouseMove=function(e,n){if(this.graph.isEnabled()&&this.isEnabled()){var t=[e,n];this.handlers.visit(function(e,n){n.mouseMove.apply(n,t)})}},mxSelectionCellsHandler.prototype.mouseUp=function(e,n){if(this.graph.isEnabled()&&this.isEnabled()){var t=[e,n];this.handlers.visit(function(e,n){n.mouseUp.apply(n,t)})}},mxSelectionCellsHandler.prototype.destroy=function(){this.graph.removeMouseListener(this),null!=this.refreshHandler&&(this.graph.getSelectionModel().removeListener(this.refreshHandler),this.graph.getModel().removeListener(this.refreshHandler),this.graph.getView().removeListener(this.refreshHandler),this.refreshHandler=null)},mxUtils.extend(mxConnectionHandler,mxEventSource),mxConnectionHandler.prototype.graph=null,mxConnectionHandler.prototype.factoryMethod=!0,mxConnectionHandler.prototype.moveIconFront=!1,mxConnectionHandler.prototype.moveIconBack=!1,mxConnectionHandler.prototype.connectImage=null,mxConnectionHandler.prototype.targetConnectImage=!1,mxConnectionHandler.prototype.enabled=!0,mxConnectionHandler.prototype.select=!0,mxConnectionHandler.prototype.createTarget=!1;mxConnectionHandler.prototype.marker=null,mxConnectionHandler.prototype.constraintHandler=null,mxConnectionHandler.prototype.error=null,mxConnectionHandler.prototype.waypointsEnabled=!1,mxConnectionHandler.prototype.tapAndHoldEnabled=!0,mxConnectionHandler.prototype.tapAndHoldDelay=500,mxConnectionHandler.prototype.tapAndHoldInProgress=!1,mxConnectionHandler.prototype.tapAndHoldValid=!1,mxConnectionHandler.prototype.tapAndHoldTolerance=4,mxConnectionHandler.prototype.initialTouchX=0,mxConnectionHandler.prototype.initialTouchY=0,mxConnectionHandler.prototype.ignoreMouseDown=!1,mxConnectionHandler.prototype.first=null,mxConnectionHandler.prototype.connectIconOffset=new mxPoint(0,mxConstants.TOOLTIP_VERTICAL_OFFSET),mxConnectionHandler.prototype.edgeState=null,mxConnectionHandler.prototype.changeHandler=null,mxConnectionHandler.prototype.drillHandler=null,mxConnectionHandler.prototype.mouseDownCounter=0,mxConnectionHandler.prototype.movePreviewAway=mxClient.IS_VML,mxConnectionHandler.prototype.isEnabled=function(){return this.enabled},mxConnectionHandler.prototype.setEnabled=function(e){this.enabled=e},mxConnectionHandler.prototype.isCreateTarget=function(){return this.createTarget},mxConnectionHandler.prototype.setCreateTarget=function(e){this.createTarget=e},mxConnectionHandler.prototype.createShape=function(){var e=new mxPolyline([],mxConstants.INVALID_COLOR);if(e.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,e.init(this.graph.getView().getOverlayPane()),e.svgStrokeTolerance=0,e.pointerEvents=!1,e.isDashed=!0,this.graph.dialect==mxConstants.DIALECT_SVG)e.node.setAttribute("pointer-events","none");else{var n=mxUtils.bind(this,function(e){return e=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e)),this.graph.view.getState(this.graph.getCellAt(e.x,e.y))});mxEvent.redirectMouseEvents(e.node,this.graph,n)}return e},mxConnectionHandler.prototype.init=function(){this.graph.addMouseListener(this),this.marker=this.createMarker(),this.constraintHandler=new mxConstraintHandler(this.graph),this.changeHandler=mxUtils.bind(this,function(e){null!=this.iconState&&(this.iconState=this.graph.getView().getState(this.iconState.cell)),null!=this.iconState?this.redrawIcons(this.icons,this.iconState):(this.destroyIcons(this.icons),this.previous=null),this.constraintHandler.reset()}),this.graph.getModel().addListener(mxEvent.CHANGE,this.changeHandler),this.graph.getView().addListener(mxEvent.SCALE,this.changeHandler),this.graph.getView().addListener(mxEvent.TRANSLATE,this.changeHandler),this.graph.getView().addListener(mxEvent.SCALE_AND_TRANSLATE,this.changeHandler),this.drillHandler=mxUtils.bind(this,function(e){this.destroyIcons(this.icons)}),this.graph.addListener(mxEvent.START_EDITING,this.drillHandler),this.graph.getView().addListener(mxEvent.DOWN,this.drillHandler),this.graph.getView().addListener(mxEvent.UP,this.drillHandler)},mxConnectionHandler.prototype.isConnectableCell=function(e){return!0},mxConnectionHandler.prototype.createMarker=function(){var a=new mxCellMarker(this.graph);return a.hotspotEnabled=!0,a.getCell=mxUtils.bind(this,function(e,n){return n=mxCellMarker.prototype.getCell.apply(a,arguments),this.error=null,this.isConnectableCell(n)?(null!=n?this.isConnecting()?null!=this.previous&&(this.error=this.validateConnection(this.previous.cell,n),null!=this.error&&0==this.error.length&&(n=null,this.isCreateTarget()&&(this.error=null))):this.isValidSource(n)||(n=null):this.isConnecting()&&!this.isCreateTarget()&&!this.graph.allowDanglingEdges&&(this.error=""),n):null}),a.isValidState=mxUtils.bind(this,function(e){return this.isConnecting()?null==this.error:mxCellMarker.prototype.isValidState.apply(a,arguments)}),a.getMarkerColor=mxUtils.bind(this,function(e,n,t){return null==this.connectImage||this.isConnecting()?mxCellMarker.prototype.getMarkerColor.apply(a,arguments):null}),a.intersects=mxUtils.bind(this,function(e,n){return!(null==this.connectImage&&!this.isConnecting())||mxCellMarker.prototype.intersects.apply(a,arguments)}),a},mxConnectionHandler.prototype.start=function(e,n,t,a){this.previous=e,this.first=new mxPoint(n,t),this.edgeState=null!=a?a:this.createEdgeState(null),this.marker.currentColor=this.marker.validColor,this.marker.markedState=e,this.marker.mark(),this.fireEvent(new mxEventObject(mxEvent.START,"state",this.previous))},mxConnectionHandler.prototype.isConnecting=function(){return null!=this.first&&null!=this.shape},mxConnectionHandler.prototype.isValidSource=function(e){return this.graph.isValidSource(e)},mxConnectionHandler.prototype.isValidTarget=function(e){return!0},mxConnectionHandler.prototype.validateConnection=function(e,n){return this.isValidTarget(n)?this.graph.getEdgeValidationError(null,e,n):""},mxConnectionHandler.prototype.getConnectImage=function(e){return this.connectImage},mxConnectionHandler.prototype.isMoveIconToFrontForState=function(e){return null!=e.text&&e.text.node.parentNode==this.graph.container||this.moveIconFront},mxConnectionHandler.prototype.createIcons=function(e){if(null==(i=this.getConnectImage(e))||null==e)return null;this.iconState=e;var n=[],t=new mxImageShape(new mxRectangle(0,0,i.width,i.height),i.src,null,null,0);t.preserveImageAspect=!1,this.isMoveIconToFrontForState(e)?(t.dialect=mxConstants.DIALECT_STRICTHTML,t.init(this.graph.container)):(t.dialect=this.graph.dialect==mxConstants.DIALECT_SVG?mxConstants.DIALECT_SVG:mxConstants.DIALECT_VML,t.init(this.graph.getView().getOverlayPane()),this.moveIconBack&&null!=t.node.previousSibling&&t.node.parentNode.insertBefore(t.node,t.node.parentNode.firstChild)),t.node.style.cursor=mxConstants.CURSOR_CONNECT;var a=mxUtils.bind(this,function(){return null!=this.currentState?this.currentState:e}),i=mxUtils.bind(this,function(e){mxEvent.isConsumed(e)||(this.icon=t,this.graph.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,a())))});return mxEvent.redirectMouseEvents(t.node,this.graph,a,i),n.push(t),this.redrawIcons(n,this.iconState),n},mxConnectionHandler.prototype.redrawIcons=function(e,n){if(null!=e&&null!=e[0]&&null!=n){var t=this.getIconPosition(e[0],n);e[0].bounds.x=t.x,e[0].bounds.y=t.y,e[0].redraw()}},mxConnectionHandler.prototype.getIconPosition=function(e,n){var t=this.graph.getView().scale,a=n.getCenterX(),i=n.getCenterY();if(this.graph.isSwimlane(n.cell)){a=0!=(s=this.graph.getStartSize(n.cell)).width?n.x+s.width*t/2:a,i=0!=s.height?n.y+s.height*t/2:i;if(0!=(s=mxUtils.toRadians(mxUtils.getValue(n.style,mxConstants.STYLE_ROTATION)||0))){t=Math.cos(s);var s=Math.sin(s),o=new mxPoint(n.getCenterX(),n.getCenterY());a=(i=mxUtils.getRotatedPoint(new mxPoint(a,i),t,s,o)).x,i=i.y}}return new mxPoint(a-e.bounds.width/2,i-e.bounds.height/2)},mxConnectionHandler.prototype.destroyIcons=function(e){if(null!=e){this.iconState=null;for(var n=0;n<e.length;n++)e[n].destroy()}},mxConnectionHandler.prototype.isStartEvent=function(e){return!this.graph.isForceMarqueeEvent(e.getEvent())&&(null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentConstraint||null!=this.previous&&null==this.error&&(null==this.icons||null!=this.icons&&null!=this.icon))},mxConnectionHandler.prototype.mouseDown=function(e,n){if(this.mouseDownCounter++,this.isEnabled()&&this.graph.isEnabled()&&!n.isConsumed()&&!this.isConnecting()&&this.isStartEvent(n)){if(null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentPoint?(this.sourceConstraint=this.constraintHandler.currentConstraint,this.previous=this.constraintHandler.currentFocus,this.first=this.constraintHandler.currentPoint.clone()):this.first=new mxPoint(n.getGraphX(),n.getGraphY()),this.edgeState=this.createEdgeState(n),this.mouseDownCounter=1,this.waypointsEnabled&&null==this.shape&&(this.waypoints=null,this.shape=this.createShape()),null==this.previous&&null!=this.edgeState){var t=this.graph.getPointForEvent(n.getEvent());this.edgeState.cell.geometry.setTerminalPoint(t,!0)}this.fireEvent(new mxEventObject(mxEvent.START,"state",this.previous)),n.consume()}else if(mxClient.IS_TOUCH&&this.tapAndHoldEnabled&&!this.tapAndHoldInProgress&&this.isEnabled()&&this.graph.isEnabled()&&!this.isConnecting()){this.tapAndHoldInProgress=!0,this.initialTouchX=n.getX(),this.initialTouchY=n.getY();var a=this.graph.view.getState(this.marker.getCell(n));this.tapAndHoldThread&&window.clearTimeout(this.tapAndHoldThread),this.tapAndHoldThread=window.setTimeout(mxUtils.bind(this,function(){this.tapAndHoldValid&&this.tapAndHold(n,a),this.tapAndHoldValid=this.tapAndHoldInProgress=!1}),this.tapAndHoldDelay),this.tapAndHoldValid=!0}this.selectedIcon=this.icon,this.icon=null},mxConnectionHandler.prototype.tapAndHold=function(e,n){null!=n&&(this.marker.currentColor=this.marker.validColor,this.marker.markedState=n,this.marker.mark(),this.first=new mxPoint(e.getGraphX(),e.getGraphY()),this.edgeState=this.createEdgeState(e),this.previous=n,this.fireEvent(new mxEventObject(mxEvent.START,"state",this.previous)))},mxConnectionHandler.prototype.isImmediateConnectSource=function(e){return!this.graph.isCellMovable(e.cell)},mxConnectionHandler.prototype.createEdgeState=function(e){return null},mxConnectionHandler.prototype.updateCurrentState=function(e){var n=this.marker.process(e);this.constraintHandler.update(e,null==this.first),this.currentState=n},mxConnectionHandler.prototype.convertWaypoint=function(e){var n=this.graph.getView().getScale(),t=this.graph.getView().getTranslate();e.x=e.x/n-t.x,e.y=e.y/n-t.y},mxConnectionHandler.prototype.mouseMove=function(e,n){if(this.tapAndHoldValid&&(this.tapAndHoldValid=Math.abs(this.initialTouchX-n.getX())<this.tapAndHoldTolerance&&Math.abs(this.initialTouchY-n.getY())<this.tapAndHoldTolerance),n.isConsumed()||!this.ignoreMouseDown&&null==this.first&&this.graph.isMouseDown)this.constraintHandler.reset();else{if(!this.isEnabled()&&null!=this.currentState&&(this.destroyIcons(this.icons),this.currentState=null),(null!=this.first||this.isEnabled()&&this.graph.isEnabled())&&this.updateCurrentState(n),null!=this.first){var t=this.graph.getView().scale,a=null,i=t=new mxPoint(this.graph.snap(n.getGraphX()/t)*t,this.graph.snap(n.getGraphY()/t)*t);null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentPoint&&(a=this.constraintHandler.currentConstraint,i=this.constraintHandler.currentPoint.clone());var s=this.first;if(null!=this.selectedIcon){var o=this.selectedIcon.bounds.width,r=this.selectedIcon.bounds.height;null!=this.currentState&&this.targetConnectImage?(o=this.getIconPosition(this.selectedIcon,this.currentState),this.selectedIcon.bounds.x=o.x,this.selectedIcon.bounds.y=o.y):(o=new mxRectangle(n.getGraphX()+this.connectIconOffset.x,n.getGraphY()+this.connectIconOffset.y,o,r),this.selectedIcon.bounds=o),this.selectedIcon.redraw()}if(null!=this.edgeState){if(this.edgeState.absolutePoints=[null,null!=this.currentState?null:i],this.graph.view.updateFixedTerminalPoint(this.edgeState,this.previous,!0,this.sourceConstraint),null!=this.currentState&&(null==a&&(a=this.graph.getConnectionConstraint(this.edgeState,this.previous,!1)),this.edgeState.setAbsoluteTerminalPoint(null,!1),this.graph.view.updateFixedTerminalPoint(this.edgeState,this.currentState,!1,a)),(s=null)!=this.waypoints)for(s=[],i=0;i<this.waypoints.length;i++)a=this.waypoints[i].clone(),this.convertWaypoint(a),s[i]=a;this.graph.view.updatePoints(this.edgeState,s,this.previous,this.currentState),this.graph.view.updateFloatingTerminalPoints(this.edgeState,this.previous,this.currentState),i=this.edgeState.absolutePoints[this.edgeState.absolutePoints.length-1],s=this.edgeState.absolutePoints[0]}else null!=this.currentState&&null==this.constraintHandler.currentConstraint&&(null!=(o=this.getTargetPerimeterPoint(this.currentState,n))&&(i=o)),null==this.sourceConstraint&&null!=this.previous&&(null!=(o=this.getSourcePerimeterPoint(this.previous,null!=this.waypoints&&0<this.waypoints.length?this.waypoints[0]:i,n))&&(s=o));if(null==this.currentState&&this.movePreviewAway){if(o=s,null!=this.edgeState&&2<this.edgeState.absolutePoints.length&&(null!=(a=this.edgeState.absolutePoints[this.edgeState.absolutePoints.length-2])&&(o=a)),a=i.x-o.x,o=i.y-o.y,0==(r=Math.sqrt(a*a+o*o)))return;i.x-=4*a/r,i.y-=4*o/r}null==this.shape&&(a=Math.abs(t.x-this.first.x),o=Math.abs(t.y-this.first.y),a>this.graph.tolerance||o>this.graph.tolerance)&&(this.shape=this.createShape(),this.updateCurrentState(n)),null!=this.shape&&(null!=this.edgeState?this.shape.points=this.edgeState.absolutePoints:(t=[s],null!=this.waypoints&&(t=t.concat(this.waypoints)),t.push(i),this.shape.points=t),this.drawPreview()),mxEvent.consume(n.getEvent()),n.consume()}else this.isEnabled()&&this.graph.isEnabled()?this.previous!=this.currentState&&null==this.edgeState?(this.destroyIcons(this.icons),(this.icons=null)!=this.currentState&&null==this.error&&(this.icons=this.createIcons(this.currentState),null==this.icons&&(this.currentState.setCursor(mxConstants.CURSOR_CONNECT),n.consume())),this.previous=this.currentState):this.previous==this.currentState&&null!=this.currentState&&null==this.icons&&!this.graph.isMouseDown&&n.consume():this.constraintHandler.reset();if(null!=this.constraintHandler.currentConstraint&&this.marker.reset(),!this.graph.isMouseDown&&null!=this.currentState&&null!=this.icons){for(t=!1,s=n.getSource(),i=0;i<this.icons.length&&!t;i++)t=s==this.icons[i].node||s.parentNode==this.icons[i].node;t||this.updateIcons(this.currentState,this.icons,n)}}},mxConnectionHandler.prototype.getTargetPerimeterPoint=function(e,n){var t=null,a=(i=e.view).getPerimeterFunction(e);if(null!=a){var i,s=null!=this.waypoints&&0<this.waypoints.length?this.waypoints[this.waypoints.length-1]:new mxPoint(this.previous.getCenterX(),this.previous.getCenterY());null!=(i=a(i.getPerimeterBounds(e),this.edgeState,s,!1))&&(t=i)}else t=new mxPoint(e.getCenterX(),e.getCenterY());return t},mxConnectionHandler.prototype.getSourcePerimeterPoint=function(e,n,t){t=null;var a=e.view,i=a.getPerimeterFunction(e),s=new mxPoint(e.getCenterX(),e.getCenterY());if(null!=i){var o=mxUtils.getValue(e.style,mxConstants.STYLE_ROTATION,0),r=-o*(Math.PI/180);0!=o&&(n=mxUtils.getRotatedPoint(new mxPoint(n.x,n.y),Math.cos(r),Math.sin(r),s)),null!=(e=i(a.getPerimeterBounds(e),e,n,!1))&&(0!=o&&(e=mxUtils.getRotatedPoint(new mxPoint(e.x,e.y),Math.cos(-r),Math.sin(-r),s)),t=e)}else t=s;return t},mxConnectionHandler.prototype.updateIcons=function(e,n,t){},mxConnectionHandler.prototype.isStopEvent=function(e){return null!=e.getState()},mxConnectionHandler.prototype.addWaypointForEvent=function(e){var n=mxUtils.convertPoint(this.graph.container,e.getX(),e.getY()),t=Math.abs(n.x-this.first.x);n=Math.abs(n.y-this.first.y);(null!=this.waypoints||1<this.mouseDownCounter&&(t>this.graph.tolerance||n>this.graph.tolerance))&&(null==this.waypoints&&(this.waypoints=[]),t=this.graph.view.scale,n=new mxPoint(this.graph.snap(e.getGraphX()/t)*t,this.graph.snap(e.getGraphY()/t)*t),this.waypoints.push(n))},mxConnectionHandler.prototype.mouseUp=function(e,n){if(!n.isConsumed()&&this.isConnecting()){if(this.waypointsEnabled&&!this.isStopEvent(n))return this.addWaypointForEvent(n),void n.consume();if(null==this.error){var t=null!=this.previous?this.previous.cell:null,a=null;null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&(a=this.constraintHandler.currentFocus.cell),null==a&&this.marker.hasValidState()&&(a=this.marker.validState.cell),this.connect(t,a,n.getEvent(),n.getCell())}else null!=this.previous&&null!=this.marker.validState&&this.previous.cell==this.marker.validState.cell&&this.graph.selectCellForEvent(this.marker.source,evt),0<this.error.length&&this.graph.validationAlert(this.error);this.destroyIcons(this.icons),n.consume()}null!=this.first&&this.reset(),this.tapAndHoldValid=this.tapAndHoldInProgress=!1},mxConnectionHandler.prototype.reset=function(){null!=this.shape&&(this.shape.destroy(),this.shape=null),this.destroyIcons(this.icons),this.icons=null,this.marker.reset(),this.constraintHandler.reset(),this.sourceConstraint=this.error=this.previous=this.edgeState=this.selectedIcon=null,this.mouseDownCounter=0,this.icon=this.first=null,this.fireEvent(new mxEventObject(mxEvent.RESET))},mxConnectionHandler.prototype.drawPreview=function(){var e=null==this.error;this.shape.strokewidth=this.getEdgeWidth(e),e=this.getEdgeColor(e),this.shape.stroke=e,this.shape.redraw()},mxConnectionHandler.prototype.getEdgeColor=function(e){return e?mxConstants.VALID_COLOR:mxConstants.INVALID_COLOR},mxConnectionHandler.prototype.getEdgeWidth=function(e){return e?3:1},mxConnectionHandler.prototype.connect=function(e,n,t,a){if(null!=n||this.isCreateTarget()||this.graph.allowDanglingEdges){var i=this.graph.getModel(),s=null;i.beginUpdate();try{if(null!=e&&null==n&&this.isCreateTarget()&&null!=(n=this.createTargetVertex(t,e))){if(null!=(a=this.graph.getDropTarget([n],t,a))&&this.graph.getModel().isEdge(a))a=this.graph.getDefaultParent();else{var o=this.graph.getView().getState(a);if(null!=o){var r=i.getGeometry(n);r.x-=o.origin.x,r.y-=o.origin.y}}this.graph.addCell(n,a)}var l=this.graph.getDefaultParent();if(null!=e&&null!=n&&i.getParent(e)==i.getParent(n)&&i.getParent(i.getParent(e))!=i.getRoot()&&(l=i.getParent(e),null!=e.geometry&&e.geometry.relative&&null!=n.geometry&&n.geometry.relative&&(l=i.getParent(l))),r=o=null,null!=this.edgeState&&(o=this.edgeState.cell.value,r=this.edgeState.cell.style),null!=(s=this.insertEdge(l,null,o,e,n,r))){this.graph.setConnectionConstraint(s,e,!0,this.sourceConstraint),this.graph.setConnectionConstraint(s,n,!1,this.constraintHandler.currentConstraint),null!=this.edgeState&&i.setGeometry(s,this.edgeState.cell.geometry);var d=i.getGeometry(s);if(null==d&&((d=new mxGeometry).relative=!0,i.setGeometry(s,d)),null!=this.waypoints&&0<this.waypoints.length){var c=this.graph.view.scale,m=this.graph.view.translate;for(d.points=[],e=0;e<this.waypoints.length;e++){var u=this.waypoints[e];d.points.push(new mxPoint(u.x/c-m.x,u.y/c-m.y))}}null==n&&((u=this.graph.getPointForEvent(t,!1)).x-=this.graph.panDx/this.graph.view.scale,u.y-=this.graph.panDy/this.graph.view.scale,d.setTerminalPoint(u,!1)),this.fireEvent(new mxEventObject(mxEvent.CONNECT,"cell",s,"event",t,"target",a))}}catch(e){mxLog.show(),mxLog.debug(e.message)}finally{i.endUpdate()}this.select&&this.selectCells(s,n)}},mxConnectionHandler.prototype.selectCells=function(e,n){this.graph.setSelectionCell(e)},mxConnectionHandler.prototype.insertEdge=function(e,n,t,a,i,s){return null==this.factoryMethod?this.graph.insertEdge(e,n,t,a,i,s):(n=this.createEdge(t,a,i,s),this.graph.addEdge(n,e,a,i))},mxConnectionHandler.prototype.createTargetVertex=function(e,n){for(var t=this.graph.getCellGeometry(n);null!=t&&t.relative;)n=this.graph.getModel().getParent(n),t=this.graph.getCellGeometry(n);var a=this.graph.cloneCells([n])[0];if(null!=(t=this.graph.getModel().getGeometry(a))){var i=this.graph.getPointForEvent(e);if(t.x=this.graph.snap(i.x-t.width/2)-this.graph.panDx/this.graph.view.scale,t.y=this.graph.snap(i.y-t.height/2)-this.graph.panDy/this.graph.view.scale,null!=this.first){var s=this.graph.view.getState(n);if(null!=s){var o=this.getAlignmentTolerance();Math.abs(this.graph.snap(this.first.x)-this.graph.snap(i.x))<=o?t.x=s.x:Math.abs(this.graph.snap(this.first.y)-this.graph.snap(i.y))<=o&&(t.y=s.y)}}}return a},mxConnectionHandler.prototype.getAlignmentTolerance=function(){return this.graph.isGridEnabled()?this.graph.gridSize:this.graph.tolerance},mxConnectionHandler.prototype.createEdge=function(e,n,t,a){var i=null;return null!=this.factoryMethod&&(i=this.factoryMethod(n,t,a)),null==i&&((i=new mxCell(e||"")).setEdge(!0),i.setStyle(a),(e=new mxGeometry).relative=!0,i.setGeometry(e)),i},mxConnectionHandler.prototype.destroy=function(){this.graph.removeMouseListener(this),null!=this.shape&&(this.shape.destroy(),this.shape=null),null!=this.marker&&(this.marker.destroy(),this.marker=null),null!=this.constraintHandler&&(this.constraintHandler.destroy(),this.constraintHandler=null),null!=this.changeHandler&&(this.graph.getModel().removeListener(this.changeHandler),this.graph.getView().removeListener(this.changeHandler),this.changeHandler=null),null!=this.drillHandler&&(this.graph.removeListener(this.drillHandler),this.graph.getView().removeListener(this.drillHandler),this.drillHandler=null)},mxConstraintHandler.prototype.pointImage=new mxImage(mxClient.imageBasePath+"/point.gif",5,5),mxConstraintHandler.prototype.graph=null,mxConstraintHandler.prototype.enabled=!0,mxConstraintHandler.prototype.highlightColor=mxConstants.DEFAULT_VALID_COLOR,mxConstraintHandler.prototype.isEnabled=function(){return this.enabled},mxConstraintHandler.prototype.setEnabled=function(e){this.enabled=e},mxConstraintHandler.prototype.reset=function(){if(null!=this.focusIcons){for(var e=0;e<this.focusIcons.length;e++)this.focusIcons[e].destroy();this.focusIcons=null}null!=this.focusHighlight&&(this.focusHighlight.destroy(),this.focusHighlight=null),this.focusPoints=this.currentFocus=this.currentPoint=this.currentFocusArea=this.currentConstraint=null},mxConstraintHandler.prototype.getTolerance=function(){return this.graph.getTolerance()},mxConstraintHandler.prototype.getImageForConstraint=function(e,n,t){return this.pointImage},mxConstraintHandler.prototype.isEventIgnored=function(e,n){return!1},mxConstraintHandler.prototype.update=function(e,n){if(this.isEnabled()&&!this.isEventIgnored(e)){var t=this.getTolerance(),a=new mxRectangle(e.getGraphX()-t,e.getGraphY()-t,2*t,2*t),i=null!=e.getCell()&&this.graph.isCellConnectable(e.getCell());if((null==this.currentFocusArea||!mxUtils.intersects(this.currentFocusArea,a)||null!=e.getState()&&null!=this.currentFocus&&i)&&(this.currentFocusArea=null,e.getState()!=this.currentFocus))if(this.currentFocus=null,this.constraints=null!=e.getState()&&i?this.graph.getAllConnectionConstraints(e.getState(),n):null,null!=this.constraints){if(this.currentFocus=e.getState(),this.currentFocusArea=new mxRectangle(e.getState().x,e.getState().y,e.getState().width,e.getState().height),null!=this.focusIcons){for(i=0;i<this.focusIcons.length;i++)this.focusIcons[i].destroy();this.focusPoints=this.focusIcons=null}for(this.focusIcons=[],this.focusPoints=[],i=0;i<this.constraints.length;i++){var s,o=this.graph.getConnectionPoint(e.getState(),this.constraints[i]),r=(s=this.getImageForConstraint(e.getState(),this.constraints[i],o)).src;(s=new mxImageShape(s=new mxRectangle(o.x-s.width/2,o.y-s.height/2,s.width,s.height),r)).dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG,s.preserveImageAspect=!1,s.init(this.graph.getView().getOverlayPane()),null!=s.node.previousSibling&&s.node.parentNode.insertBefore(s.node,s.node.parentNode.firstChild),r=mxUtils.bind(this,function(){return null!=this.currentFocus?this.currentFocus:e.getState()}),s.redraw(),mxEvent.redirectMouseEvents(s.node,this.graph,r),this.currentFocusArea.add(s.bounds),this.focusIcons.push(s),this.focusPoints.push(o)}this.currentFocusArea.grow(t)}else if(null!=this.focusIcons){for(null!=this.focusHighlight&&(this.focusHighlight.destroy(),this.focusHighlight=null),i=0;i<this.focusIcons.length;i++)this.focusIcons[i].destroy();this.focusPoints=this.focusIcons=null}if(this.currentPoint=this.currentConstraint=null,null!=this.focusIcons&&null!=this.constraints&&(null==e.getState()||this.currentFocus==e.getState()))for(i=0;i<this.focusIcons.length;i++)if(mxUtils.intersects(this.focusIcons[i].bounds,a)){this.currentConstraint=this.constraints[i],this.currentPoint=this.focusPoints[i],(t=this.focusIcons[i].bounds.clone()).grow(mxClient.IS_IE?3:2),mxClient.IS_IE&&(t.width-=1,t.height-=1),null==this.focusHighlight?((t=new mxRectangleShape(t,null,this.highlightColor,3)).dialect=this.graph.dialect==mxConstants.DIALECT_SVG?mxConstants.DIALECT_SVG:mxConstants.DIALECT_VML,t.init(this.graph.getView().getOverlayPane()),this.focusHighlight=t,r=mxUtils.bind(this,function(){return null!=this.currentFocus?this.currentFocus:e.getState()}),mxEvent.redirectMouseEvents(t.node,this.graph,r)):(this.focusHighlight.bounds=t,this.focusHighlight.redraw());break}null==this.currentConstraint&&null!=this.focusHighlight&&(this.focusHighlight.destroy(),this.focusHighlight=null)}},mxConstraintHandler.prototype.destroy=function(){this.reset()},mxRubberband.prototype.defaultOpacity=20,mxRubberband.prototype.enabled=!0,mxRubberband.prototype.div=null,mxRubberband.prototype.sharedDiv=null,mxRubberband.prototype.currentX=0,mxRubberband.prototype.currentY=0,mxRubberband.prototype.isEnabled=function(){return this.enabled},mxRubberband.prototype.setEnabled=function(e){this.enabled=e},mxRubberband.prototype.mouseDown=function(e,n){if(!n.isConsumed()&&this.isEnabled()&&this.graph.isEnabled()&&(this.graph.isForceMarqueeEvent(n.getEvent())||null==n.getState())){var t=mxUtils.getOffset(this.graph.container),a=mxUtils.getScrollOrigin(this.graph.container);if(a.x-=t.x,a.y-=t.y,this.start(n.getX()+a.x,n.getY()+a.y),mxClient.IS_NS&&!mxClient.IS_SF&&!mxClient.IS_GC){var i=this.graph.container,s=function(e){e=new mxMouseEvent(e);var n=mxUtils.convertPoint(i,e.getX(),e.getY());return e.graphX=n.x,e.graphY=n.y,e};this.dragHandler=mxUtils.bind(this,function(e){this.mouseMove(this.graph,s(e))}),this.dropHandler=mxUtils.bind(this,function(e){this.mouseUp(this.graph,s(e))}),mxEvent.addListener(document,"mousemove",this.dragHandler),mxEvent.addListener(document,"mouseup",this.dropHandler)}n.consume(!1)}},mxRubberband.prototype.start=function(e,n){this.first=new mxPoint(e,n)},mxRubberband.prototype.mouseMove=function(e,n){if(!n.isConsumed()&&null!=this.first){var t=mxUtils.getScrollOrigin(this.graph.container),a=mxUtils.getOffset(this.graph.container);t.x-=a.x,t.y-=a.y;a=n.getX()+t.x,t=n.getY()+t.y;var i=this.first.x-a,s=this.first.y-t,o=this.graph.tolerance;(null!=this.div||Math.abs(i)>o||Math.abs(s)>o)&&(null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(a,t),n.consume())}},mxRubberband.prototype.createShape=function(){return null==this.sharedDiv&&(this.sharedDiv=document.createElement("div"),this.sharedDiv.className="mxRubberband",mxUtils.setOpacity(this.sharedDiv,this.defaultOpacity)),this.graph.container.appendChild(this.sharedDiv),this.sharedDiv},mxRubberband.prototype.mouseUp=function(e,n){var t=null!=this.div;this.reset(),t&&(t=new mxRectangle(this.x,this.y,this.width,this.height),this.graph.selectRegion(t,n.getEvent()),n.consume())},mxRubberband.prototype.reset=function(){null!=this.div&&this.div.parentNode.removeChild(this.div),null!=this.dragHandler&&(mxEvent.removeListener(document,"mousemove",this.dragHandler),this.dragHandler=null),null!=this.dropHandler&&(mxEvent.removeListener(document,"mouseup",this.dropHandler),this.dropHandler=null),this.currentY=this.currentX=0,this.div=this.first=null},mxRubberband.prototype.update=function(e,n){this.currentX=e,this.currentY=n,this.repaint()},mxRubberband.prototype.repaint=function(){if(null!=this.div){var e=this.currentX-this.graph.panDx,n=this.currentY-this.graph.panDy;this.x=Math.min(this.first.x,e),this.y=Math.min(this.first.y,n),this.width=Math.max(this.first.x,e)-this.x,this.height=Math.max(this.first.y,n)-this.y,e=mxClient.IS_VML?this.graph.panDy:0,this.div.style.left=this.x+(mxClient.IS_VML?this.graph.panDx:0)+"px",this.div.style.top=this.y+e+"px",this.div.style.width=Math.max(1,this.width)+"px",this.div.style.height=Math.max(1,this.height)+"px"}},mxRubberband.prototype.destroy=function(){this.destroyed||(this.destroyed=!0,this.graph.removeMouseListener(this),this.graph.removeListener(this.panHandler),this.reset(),null!=this.sharedDiv&&(this.sharedDiv=null))},mxVertexHandler.prototype.graph=null,mxVertexHandler.prototype.state=null,mxVertexHandler.prototype.singleSizer=!1,mxVertexHandler.prototype.index=null,mxVertexHandler.prototype.allowHandleBoundsCheck=!0,mxVertexHandler.prototype.handleImage=null,mxVertexHandler.prototype.tolerance=0,mxVertexHandler.prototype.rotationEnabled=!1,mxVertexHandler.prototype.rotationRaster=!0,mxVertexHandler.prototype.init=function(){if(this.graph=this.state.view.graph,this.selectionBounds=this.getSelectionBounds(this.state),this.bounds=new mxRectangle(this.selectionBounds.x,this.selectionBounds.y,this.selectionBounds.width,this.selectionBounds.height),this.selectionBorder=this.createSelectionShape(this.bounds),this.selectionBorder.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.selectionBorder.pointerEvents=!1,this.selectionBorder.init(this.graph.getView().getOverlayPane()),this.graph.isCellMovable(this.state.cell)&&(this.selectionBorder.node.style.cursor=mxConstants.CURSOR_MOVABLE_VERTEX),mxEvent.redirectMouseEvents(this.selectionBorder.node,this.graph,this.state),mxGraphHandler.prototype.maxCells<=0||this.graph.getSelectionCount()<mxGraphHandler.prototype.maxCells){var e=this.graph.isCellResizable(this.state.cell);if(this.sizers=[],e||this.graph.isLabelMovable(this.state.cell)&&2<=this.state.width&&2<=this.state.height){var n=0;e&&(this.singleSizer||(this.sizers.push(this.createSizer("nw-resize",n++)),this.sizers.push(this.createSizer("n-resize",n++)),this.sizers.push(this.createSizer("ne-resize",n++)),this.sizers.push(this.createSizer("w-resize",n++)),this.sizers.push(this.createSizer("e-resize",n++)),this.sizers.push(this.createSizer("sw-resize",n++)),this.sizers.push(this.createSizer("s-resize",n++))),this.sizers.push(this.createSizer("se-resize",n++))),null!=(e=this.graph.model.getGeometry(this.state.cell))&&!e.relative&&!this.graph.isSwimlane(this.state.cell)&&this.graph.isLabelMovable(this.state.cell)&&(this.labelShape=this.createSizer(mxConstants.CURSOR_LABEL_HANDLE,mxEvent.LABEL_HANDLE,mxConstants.LABEL_HANDLE_SIZE,mxConstants.LABEL_HANDLE_FILLCOLOR),this.sizers.push(this.labelShape))}else this.graph.isCellMovable(this.state.cell)&&!this.graph.isCellResizable(this.state.cell)&&this.state.width<2&&this.state.height<2&&(this.labelShape=this.createSizer(mxConstants.CURSOR_MOVABLE_VERTEX,null,null,mxConstants.LABEL_HANDLE_FILLCOLOR),this.sizers.push(this.labelShape))}this.rotationEnabled&&(mxGraphHandler.prototype.maxCells<=0||this.graph.getSelectionCount()<mxGraphHandler.prototype.maxCells)&&(this.rotationShape=this.createSizer("pointer",mxEvent.ROTATION_HANDLE,mxConstants.HANDLE_SIZE+3,mxConstants.HANDLE_FILLCOLOR),this.sizers.push(this.rotationShape)),this.redraw()},mxVertexHandler.prototype.getSelectionBounds=function(e){return new mxRectangle(Math.round(e.x),Math.round(e.y),Math.round(e.width),Math.round(e.height))},mxVertexHandler.prototype.createSelectionShape=function(e){return(e=new mxRectangleShape(e,null,this.getSelectionColor())).strokewidth=this.getSelectionStrokeWidth(),e.isDashed=this.isSelectionDashed(),e},mxVertexHandler.prototype.getSelectionColor=function(){return mxConstants.VERTEX_SELECTION_COLOR},mxVertexHandler.prototype.getSelectionStrokeWidth=function(){return mxConstants.VERTEX_SELECTION_STROKEWIDTH},mxVertexHandler.prototype.isSelectionDashed=function(){return mxConstants.VERTEX_SELECTION_DASHED},mxVertexHandler.prototype.createSizer=function(e,n,t,a){return t=new mxRectangle(0,0,t=t||mxConstants.HANDLE_SIZE,t),(a=this.createSizerShape(t,n,a)).isHtmlAllowed()&&null!=this.state.text&&this.state.text.node.parentNode==this.graph.container?(a.bounds.height-=1,a.bounds.width-=1,a.dialect=mxConstants.DIALECT_STRICTHTML,a.init(this.graph.container)):(a.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG,a.init(this.graph.getView().getOverlayPane())),mxEvent.redirectMouseEvents(a.node,this.graph,this.state),this.graph.isEnabled()&&(a.node.style.cursor=e),this.isSizerVisible(n)||(a.node.style.visibility="hidden"),a},mxVertexHandler.prototype.isSizerVisible=function(e){return!0},mxVertexHandler.prototype.createSizerShape=function(e,n,t){return null!=this.handleImage?(e.width=this.handleImage.width,e.height=this.handleImage.height,new mxImageShape(e,this.handleImage.src)):n==mxEvent.ROTATION_HANDLE?new mxEllipse(e,t||mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR):new mxRectangleShape(e,t||mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)},mxVertexHandler.prototype.moveSizerTo=function(e,n,t){null!=e&&(e.bounds.x=Math.round(n-e.bounds.width/2),e.bounds.y=Math.round(t-e.bounds.height/2),e.redraw())},mxVertexHandler.prototype.getHandleForEvent=function(e){if(e.isSource(this.rotationShape))return mxEvent.ROTATION_HANDLE;if(e.isSource(this.labelShape))return mxEvent.LABEL_HANDLE;if(null!=this.sizers)for(var n=this.tolerance,t=(n=this.allowHandleBoundsCheck&&(mxClient.IS_IE||0<n)?new mxRectangle(e.getGraphX()-n,e.getGraphY()-n,2*n,2*n):null,0);t<this.sizers.length;t++)if(e.isSource(this.sizers[t])||null!=n&&mxUtils.intersects(this.sizers[t].bounds,n))return t;return null},mxVertexHandler.prototype.mouseDown=function(e,n){if(!n.isConsumed()&&this.graph.isEnabled()&&!this.graph.isForceMarqueeEvent(n.getEvent())&&(0<this.tolerance||n.getState()==this.state)){var t=this.getHandleForEvent(n);null!=t&&(this.start(n.getX(),n.getY(),t),n.consume())}},mxVertexHandler.prototype.start=function(e,n,t){e=mxUtils.convertPoint(this.graph.container,e,n),this.startX=e.x,this.startY=e.y,this.index=t,this.selectionBorder.node.style.display=t==mxEvent.ROTATION_HANDLE?"inline":"none",this.preview=this.createSelectionShape(this.bounds),mxClient.IS_SVG&&0!=Number(this.state.style[mxConstants.STYLE_ROTATION]||"0")||null==this.state.text||this.state.text.node.parentNode!=this.graph.container?(this.preview.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,this.preview.init(this.graph.view.getOverlayPane())):(this.preview.dialect=mxConstants.DIALECT_STRICTHTML,this.preview.init(this.graph.container))},mxVertexHandler.prototype.mouseMove=function(e,n){if(n.isConsumed()||null==this.index)null!=this.getHandleForEvent(n)&&n.consume(!1);else{var t=new mxPoint(n.getGraphX(),n.getGraphY()),a=this.graph.isGridEnabledEvent(n.getEvent()),i=this.graph.getView().scale;if(this.index==mxEvent.LABEL_HANDLE)a&&(t.x=this.graph.snap(t.x/i)*i,t.y=this.graph.snap(t.y/i)*i),this.moveSizerTo(this.sizers[this.sizers.length-1],t.x,t.y);else if(this.index==mxEvent.ROTATION_HANDLE){var s=this.state.x+this.state.width/2-t.x,o=this.state.y+this.state.height/2-t.y;this.currentAlpha=0!=s?180*Math.atan(o/s)/Math.PI+90:o<0?180:0,0<s&&(this.currentAlpha-=180),this.rotationRaster&&(s=t.x-this.state.getCenterX(),o=t.y-this.state.getCenterY(),s=Math.abs(Math.sqrt(s*s+o*o)-this.state.height/2-20),s=Math.max(1,5*Math.min(3,Math.max(0,Math.round(80/Math.abs(s))))),this.currentAlpha=Math.round(this.currentAlpha/s)*s),this.selectionBorder.rotation=this.currentAlpha,this.selectionBorder.redraw()}else{var r=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),l=Math.cos(-r),d=Math.sin(-r),c=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),m=(s=t.x-this.startX,o=t.y-this.startY,t=this.graph.view.translate,d*s+l*o);s=l*s-d*o;this.bounds=this.union(this.selectionBounds,s,m,this.index,a,i,t),l=Math.cos(r),c=(d=Math.sin(r))*(s=(o=new mxPoint(this.bounds.getCenterX(),this.bounds.getCenterY())).x-c.x)+l*(o=o.y-c.y)-o,this.bounds.x+=l*s-d*o-s,this.bounds.y+=c,this.drawPreview()}n.consume()}},mxVertexHandler.prototype.mouseUp=function(e,n){if(!n.isConsumed()&&null!=this.index&&null!=this.state){var t=new mxPoint(n.getGraphX(),n.getGraphY());this.graph.getModel().beginUpdate();try{if(this.index==mxEvent.ROTATION_HANDLE)null!=this.currentAlpha&&this.rotateCell(this.state.cell,this.currentAlpha-(this.state.style[mxConstants.STYLE_ROTATION]||0));else{var a=this.graph.isGridEnabledEvent(n.getEvent()),i=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),s=Math.cos(-i),o=Math.sin(-i),r=(t=o*(r=t.x-this.startX)+s*(l=t.y-this.startY),s*r-o*l),l=t,d=this.graph.view.scale;this.resizeCell(this.state.cell,r/d,l/d,this.index,a)}}finally{this.graph.getModel().endUpdate()}this.reset(),n.consume()}},mxVertexHandler.prototype.rotateCell=function(e,n){var t=this.graph.getModel();if(t.isVertex(e)){if(null!=(s=e==this.state?this.state:this.graph.view.getState(e))&&this.graph.setCellStyles(mxConstants.STYLE_ROTATION,(s.style[mxConstants.STYLE_ROTATION]||0)+n,[e]),this.state.cell!=e&&(null!=(s=this.graph.getCellGeometry(e))&&!s.relative))if(0!=n){var a=this.graph.getModel().getParent(e),i=this.graph.getCellGeometry(a);if(!s.relative&&null!=i){var s,o=mxUtils.toRadians(n),r=(a=Math.cos(o),o=Math.sin(o),new mxPoint(s.getCenterX(),s.getCenterY()));i=new mxPoint(i.width/2,i.height/2),a=mxUtils.getRotatedPoint(r,a,o,i);(s=s.clone()).x=a.x-s.width/2,s.y=a.y-s.height/2,t.setGeometry(e,s)}}else(s=s.clone()).x+=dx,s.y+=dy,t.setGeometry(e,s);for(s=t.getChildCount(e),a=0;a<s;a++)this.rotateCell(t.getChildAt(e,a),n)}},mxVertexHandler.prototype.reset=function(){this.index=this.currentAlpha=null,null!=this.preview&&(this.preview.destroy(),this.preview=null),null!=this.selectionBorder&&(this.selectionBorder.node.style.display="inline",this.selectionBounds=this.getSelectionBounds(this.state),this.bounds=new mxRectangle(this.selectionBounds.x,this.selectionBounds.y,this.selectionBounds.width,this.selectionBounds.height),this.drawPreview())},mxVertexHandler.prototype.resizeCell=function(e,n,t,a,i){var s=this.graph.model.getGeometry(e);if(null!=s)if(a==mxEvent.LABEL_HANDLE)a=this.graph.view.scale,n=(this.labelShape.bounds.getCenterX()-this.startX)/a,t=(this.labelShape.bounds.getCenterY()-this.startY)/a,null==(s=s.clone()).offset?s.offset=new mxPoint(n,t):(s.offset.x+=n,s.offset.y+=t),this.graph.model.setGeometry(e,s);else{if(a=this.union(s,n,t,a,i,1,new mxPoint(0,0)),0!=(r=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"))){n=a.getCenterX()-s.getCenterX(),t=a.getCenterY()-s.getCenterY(),i=Math.cos(r);var o=Math.sin(r),r=i*n-o*t-n;n=o*n+i*t-t,t=a.x-s.x;var l=a.y-s.y,d=i*t-o*l;i=o*t+i*l,a.x+=r,a.y+=n,this.graph.isCellCollapsed(e)||0==r&&0==n||(t=s.x-a.x+d,l=s.y-a.y+i,this.moveChildren(e,t,l))}this.graph.resizeCell(e,a)}},mxVertexHandler.prototype.moveChildren=function(e,n,t){for(var a=this.graph.getModel(),i=a.getChildCount(e),s=0;s<i;s++){var o=a.getChildAt(e,s);if(a.isVertex(o)){var r=this.graph.getCellGeometry(o);null!=r&&!r.relative&&((r=r.clone()).x+=n,r.y+=t,a.setGeometry(o,r))}}},mxVertexHandler.prototype.union=function(e,n,t,a,i,s,o){if(this.singleSizer){o=e.x+e.width+n;var r=e.y+e.height+t;return i&&(o=this.graph.snap(o/s)*s,r=this.graph.snap(r/s)*s),(s=new mxRectangle(e.x,e.y,0,0)).add(new mxRectangle(o,r,0,0)),s}var l=(r=e.x-o.x*s)+e.width,d=e.y-o.y*s;return e=d+e.height,4<a?(e+=t,i&&(e=this.graph.snap(e/s)*s)):a<3&&(d+=t,i&&(d=this.graph.snap(d/s)*s)),0==a||3==a||5==a?(r+=n,i&&(r=this.graph.snap(r/s)*s)):2!=a&&4!=a&&7!=a||(l+=n,i&&(l=this.graph.snap(l/s)*s)),e-=d,(i=l-r)<0&&(r+=i,i=Math.abs(i)),e<0&&(d+=e,e=Math.abs(e)),new mxRectangle(r+o.x*s,d+o.y*s,i,e)},mxVertexHandler.prototype.redraw=function(){this.selectionBounds=this.getSelectionBounds(this.state),this.bounds=new mxRectangle(this.state.x,this.state.y,this.state.width,this.state.height);var e=this.state;if(null!=this.sizers){var n=e.x+e.width,t=e.y+e.height;if(this.singleSizer)this.moveSizerTo(this.sizers[0],n,t);else{var a=e.x+e.width/2,i=e.y+e.height/2;if(1<this.sizers.length){var s=mxUtils.toRadians(e.style[mxConstants.STYLE_ROTATION]||"0"),o=Math.cos(s),r=(s=Math.sin(s),new mxPoint(e.getCenterX(),e.getCenterY())),l=mxUtils.getRotatedPoint(new mxPoint(e.x,e.y),o,s,r);this.moveSizerTo(this.sizers[0],l.x,l.y),l.x=a,l.y=e.y,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[1],l.x,l.y),l.x=n,l.y=e.y,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[2],l.x,l.y),l.x=e.x,l.y=i,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[3],l.x,l.y),l.x=n,l.y=i,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[4],l.x,l.y),l.x=e.x,l.y=t,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[5],l.x,l.y),l.x=a,l.y=t,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[6],l.x,l.y),l.x=n,l.y=t,l=mxUtils.getRotatedPoint(l,o,s,r),this.moveSizerTo(this.sizers[7],l.x,l.y),this.moveSizerTo(this.sizers[8],a+e.absoluteOffset.x,i+e.absoluteOffset.y)}else 2<=this.state.width&&2<=this.state.height?this.moveSizerTo(this.sizers[0],a+e.absoluteOffset.x,i+e.absoluteOffset.y):this.moveSizerTo(this.sizers[0],e.x,e.y)}}null!=this.rotationShape&&(s=mxUtils.toRadians(this.state.style[mxConstants.STYLE_ROTATION]||"0"),o=Math.cos(s),s=Math.sin(s),r=new mxPoint(this.state.getCenterX(),this.state.getCenterY()),l=mxUtils.getRotatedPoint(new mxPoint(e.x+e.width/2,e.y-16),o,s,r),this.moveSizerTo(this.rotationShape,l.x,l.y)),this.selectionBorder.rotation=Number(this.state.style[mxConstants.STYLE_ROTATION]||"0"),this.drawPreview()},mxVertexHandler.prototype.drawPreview=function(){null!=this.preview&&(this.preview.bounds=this.bounds,this.preview.node.parentNode==this.graph.container&&(this.preview.bounds.width=Math.max(0,this.preview.bounds.width-1),this.preview.bounds.height=Math.max(0,this.preview.bounds.height-1)),this.preview.rotation=Number(this.state.style[mxConstants.STYLE_ROTATION]||"0"),this.preview.redraw()),this.selectionBorder.bounds=this.bounds,this.selectionBorder.redraw()},mxVertexHandler.prototype.destroy=function(){if(null!=this.preview&&(this.preview.destroy(),this.preview=null),this.selectionBorder.destroy(),this.labelShape=this.selectionBorder=null,null!=this.sizers)for(var e=0;e<this.sizers.length;e++)this.sizers[e].destroy(),this.sizers[e]=null},mxEdgeHandler.prototype.graph=null,mxEdgeHandler.prototype.state=null,mxEdgeHandler.prototype.marker=null,mxEdgeHandler.prototype.constraintHandler=null,mxEdgeHandler.prototype.error=null,mxEdgeHandler.prototype.shape=null,mxEdgeHandler.prototype.bends=null,mxEdgeHandler.prototype.labelShape=null,mxEdgeHandler.prototype.cloneEnabled=!0,mxEdgeHandler.prototype.addEnabled=!1,mxEdgeHandler.prototype.removeEnabled=!1,mxEdgeHandler.prototype.preferHtml=!1,mxEdgeHandler.prototype.allowHandleBoundsCheck=!0,mxEdgeHandler.prototype.snapToTerminals=!1,mxEdgeHandler.prototype.handleImage=null,mxEdgeHandler.prototype.tolerance=0,mxEdgeHandler.prototype.init=function(){if(this.graph=this.state.view.graph,this.marker=this.createMarker(),this.constraintHandler=new mxConstraintHandler(this.graph),this.points=[],this.abspoints=this.getSelectionPoints(this.state),this.shape=this.createSelectionShape(this.abspoints),this.shape.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG,this.shape.init(this.graph.getView().getOverlayPane()),this.shape.svgStrokeTolerance=0,this.shape.node.style.cursor=mxConstants.CURSOR_MOVABLE_EDGE,mxEvent.addListener(this.shape.node,"dblclick",mxUtils.bind(this,function(e){this.graph.dblClick(e,this.state.cell)})),mxEvent.addGestureListeners(this.shape.node,mxUtils.bind(this,function(e){this.addEnabled&&this.isAddPointEvent(e)?this.addPoint(this.state,e):this.graph.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e,this.state))}),mxUtils.bind(this,function(e){var n=this.state.cell;if(null!=this.index){var t=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e));n=this.graph.getCellAt(t.x,t.y);this.graph.isSwimlane(n)&&this.graph.hitsSwimlaneContent(n,t.x,t.y)&&(n=null)}this.graph.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e,this.graph.getView().getState(n)))}),mxUtils.bind(this,function(e){this.graph.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e,this.state))})),this.preferHtml=null!=this.state.text&&this.state.text.node.parentNode==this.graph.container,!this.preferHtml){var e=this.state.getVisibleTerminalState(!0);null!=e&&(this.preferHtml=null!=e.text&&e.text.node.parentNode==this.graph.container),this.preferHtml||null!=(e=this.state.getVisibleTerminalState(!1))&&(this.preferHtml=null!=e.text&&e.text.node.parentNode==this.graph.container)}(this.graph.getSelectionCount()<mxGraphHandler.prototype.maxCells||mxGraphHandler.prototype.maxCells<=0)&&(this.bends=this.createBends()),this.label=new mxPoint(this.state.absoluteOffset.x,this.state.absoluteOffset.y),this.labelShape=new mxRectangleShape(new mxRectangle,mxConstants.LABEL_HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR),this.labelShape.pointerEvents=!1,this.initBend(this.labelShape),this.labelShape.node.style.cursor=mxConstants.CURSOR_LABEL_HANDLE,mxEvent.redirectMouseEvents(this.labelShape.node,this.graph,this.state),this.redraw()},mxEdgeHandler.prototype.isAddPointEvent=function(e){return mxEvent.isShiftDown(e)},mxEdgeHandler.prototype.isRemovePointEvent=function(e){return mxEvent.isShiftDown(e)},mxEdgeHandler.prototype.getSelectionPoints=function(e){return e.absolutePoints},mxEdgeHandler.prototype.createSelectionShape=function(e){return(e=new mxPolyline(e,this.getSelectionColor())).strokewidth=this.getSelectionStrokeWidth(),e.isDashed=this.isSelectionDashed(),e},mxEdgeHandler.prototype.getSelectionColor=function(){return mxConstants.EDGE_SELECTION_COLOR},mxEdgeHandler.prototype.getSelectionStrokeWidth=function(){return mxConstants.EDGE_SELECTION_STROKEWIDTH},mxEdgeHandler.prototype.isSelectionDashed=function(){return mxConstants.EDGE_SELECTION_DASHED},mxEdgeHandler.prototype.isConnectableCell=function(e){return!0},mxEdgeHandler.prototype.createMarker=function(){var e=new mxCellMarker(this.graph),a=this;return e.getCell=function(e){var n=mxCellMarker.prototype.getCell.apply(this,arguments);if(!a.isConnectableCell(n))return null;var t=a.graph.getModel();return(n==a.state.cell||null!=n&&!a.graph.connectableEdges&&t.isEdge(n))&&(n=null),n},e.isValidState=function(e){var n=a.graph.getModel();n=null!=(n=a.graph.view.getTerminalPort(e,a.graph.view.getState(n.getTerminal(a.state.cell,!a.isSource)),!a.isSource))?n.cell:null;return a.error=a.validateConnection(a.isSource?e.cell:n,a.isSource?n:e.cell),null==a.error},e},mxEdgeHandler.prototype.validateConnection=function(e,n){return this.graph.getEdgeValidationError(this.state.cell,e,n)},mxEdgeHandler.prototype.createBends=function(){for(var e=this.state.cell,n=[],t=0;t<this.abspoints.length;t++)if(this.isHandleVisible(t)){var a=t==this.abspoints.length-1;if((a=0==t||a)||this.graph.isCellBendable(e)){var i=this.createHandleShape(t);if(this.initBend(i),mxClient.IS_TOUCH&&i.node.setAttribute("pointer-events","none"),this.isHandleEnabled(t))if(mxClient.IS_TOUCH){var s=mxUtils.bind(this,function(e){return e=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e)),this.graph.view.getState(this.graph.getCellAt(e.x,e.y))});mxEvent.redirectMouseEvents(i.node,this.graph,s)}else i.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(i.node,this.graph,this.state);n.push(i),a||(this.points.push(new mxPoint(0,0)),i.node.style.visibility="hidden")}}return n},mxEdgeHandler.prototype.isHandleEnabled=function(e){return!0},mxEdgeHandler.prototype.isHandleVisible=function(e){return!0},mxEdgeHandler.prototype.createHandleShape=function(e){return null!=this.handleImage?new mxImageShape(new mxRectangle(0,0,this.handleImage.width,this.handleImage.height),this.handleImage.src):(e=mxConstants.HANDLE_SIZE,this.preferHtml&&(e-=1),new mxRectangleShape(new mxRectangle(0,0,e,e),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR))},mxEdgeHandler.prototype.initBend=function(e){this.preferHtml?(e.dialect=mxConstants.DIALECT_STRICTHTML,e.init(this.graph.container)):(e.dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_MIXEDHTML:mxConstants.DIALECT_SVG,e.init(this.graph.getView().getOverlayPane()))},mxEdgeHandler.prototype.getHandleForEvent=function(e){if(null!=this.bends)for(var n=this.tolerance,t=(n=this.allowHandleBoundsCheck&&(mxClient.IS_IE||0<n)?new mxRectangle(e.getGraphX()-n,e.getGraphY()-n,2*n,2*n):null,0);t<this.bends.length;t++)if((e.isSource(this.bends[t])||null!=n&&mxUtils.intersects(this.bends[t].bounds,n))&&"hidden"!=this.bends[t].node.style.visibility)return t;return!(e.isSource(this.labelShape)&&"hidden"!=this.labelShape.node.style.visibility||e.isSource(this.state.text))||(mxClient.IS_SF||mxClient.IS_GC)&&"SELECT"==e.getSource().nodeName?null:mxEvent.LABEL_HANDLE},mxEdgeHandler.prototype.mouseDown=function(e,n){var t=null;null!=(t=this.getHandleForEvent(n))&&!n.isConsumed()&&this.graph.isEnabled()&&!this.graph.isForceMarqueeEvent(n.getEvent())&&(this.removeEnabled&&this.isRemovePointEvent(n.getEvent())?this.removePoint(this.state,t):(t!=mxEvent.LABEL_HANDLE||this.graph.isLabelMovable(n.getCell()))&&this.start(n.getX(),n.getY(),t),n.consume())},mxEdgeHandler.prototype.start=function(e,n,t){this.startX=e,this.startY=n,this.isSource=null!=this.bends&&0==t,this.isTarget=null!=this.bends&&t==this.bends.length-1,this.isLabel=t==mxEvent.LABEL_HANDLE,this.isSource||this.isTarget?(e=this.state.cell,(null==(n=this.graph.model.getTerminal(e,this.isSource))&&this.graph.isTerminalPointMovable(e,this.isSource)||null!=n&&this.graph.isCellDisconnectable(e,n,this.isSource))&&(this.index=t)):this.index=t},mxEdgeHandler.prototype.clonePreviewState=function(e,n){return this.state.clone()},mxEdgeHandler.prototype.getSnapToTerminalTolerance=function(){return this.graph.gridSize*this.graph.view.scale/2},mxEdgeHandler.prototype.getPointForEvent=function(e){var t=new mxPoint(e.getGraphX(),e.getGraphY()),a=this.getSnapToTerminalTolerance(),n=this.graph.getView(),i=!1,s=!1;if(this.snapToTerminals&&0<a){var o=function(e){if(null!=e){var n=e.x;Math.abs(t.x-n)<a&&(t.x=n,i=!0),e=e.y,Math.abs(t.y-e)<a&&(t.y=e,s=!0)}},r=function(e){null!=e&&o.call(this,new mxPoint(n.getRoutingCenterX(e),n.getRoutingCenterY(e)))};if(r.call(this,this.state.getVisibleTerminalState(!0)),r.call(this,this.state.getVisibleTerminalState(!1)),null!=this.abspoints)for(r=0;r<this.abspoints;r++)r!=this.index&&o.call(this,this.abspoints[r])}return this.graph.isGridEnabledEvent(e.getEvent())&&(e=n.scale,r=n.translate,i||(t.x=(this.graph.snap(t.x/e-r.x)+r.x)*e),s||(t.y=(this.graph.snap(t.y/e-r.y)+r.y)*e)),t},mxEdgeHandler.prototype.getPreviewTerminalState=function(e){this.constraintHandler.update(e,this.isSource),this.marker.process(e),e=this.marker.getValidState();var n=null;return null!=this.constraintHandler.currentFocus&&null!=this.constraintHandler.currentConstraint&&this.marker.reset(),null!=e?n=e:null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&(n=this.constraintHandler.currentFocus),n},mxEdgeHandler.prototype.getPreviewPoints=function(e){var n=null!=(n=this.graph.getCellGeometry(this.state.cell)).points?n.points.slice():null;return this.isSource||this.isTarget?this.graph.resetEdgesOnConnect&&(n=null):(this.convertPoint(e,!1),null==n?n=[e]:n[this.index-1]=e),n},mxEdgeHandler.prototype.updatePreviewState=function(e,n,t){var a=this.isSource?t:this.state.getVisibleTerminalState(!0),i=this.isTarget?t:this.state.getVisibleTerminalState(!1),s=this.graph.getConnectionConstraint(e,a,!0),o=this.graph.getConnectionConstraint(e,i,!1),r=this.constraintHandler.currentConstraint;null==r&&(r=new mxConnectionConstraint),this.isSource?s=r:this.isTarget&&(o=r),(!this.isSource||null!=a)&&e.view.updateFixedTerminalPoint(e,a,!0,s),(!this.isTarget||null!=i)&&e.view.updateFixedTerminalPoint(e,i,!1,o),(this.isSource||this.isTarget)&&null==t&&(e.setAbsoluteTerminalPoint(n,this.isSource),null==this.marker.getMarkedState()&&(this.error=this.graph.allowDanglingEdges?null:"")),e.view.updatePoints(e,this.points,a,i),e.view.updateFloatingTerminalPoints(e,a,i)},mxEdgeHandler.prototype.mouseMove=function(e,n){if(null!=this.index&&null!=this.marker){var t=this.getPointForEvent(n);if(this.isLabel)this.label.x=t.x,this.label.y=t.y;else{this.points=this.getPreviewPoints(t);var a=this.isSource||this.isTarget?this.getPreviewTerminalState(n):null,i=this.clonePreviewState(t,null!=a?a.cell:null);this.updatePreviewState(i,t,a),this.setPreviewColor(null==this.error?this.marker.validColor:this.marker.invalidColor),this.abspoints=i.absolutePoints,this.active=!0}this.drawPreview(),mxEvent.consume(n.getEvent()),n.consume()}else mxClient.IS_IE&&null!=this.getHandleForEvent(n)&&n.consume(!1)},mxEdgeHandler.prototype.mouseUp=function(e,n){if(null!=this.index&&null!=this.marker){var t=this.state.cell;if(n.getX()!=this.startX||n.getY()!=this.startY)if(null!=this.error)0<this.error.length&&this.graph.validationAlert(this.error);else if(this.isLabel)this.moveLabel(this.state,this.label.x,this.label.y);else if(this.isSource||this.isTarget){var a=null;if(null!=this.constraintHandler.currentConstraint&&null!=this.constraintHandler.currentFocus&&(a=this.constraintHandler.currentFocus.cell),null==a&&this.marker.hasValidState()&&(a=this.marker.validState.cell),null!=a)t=this.connect(t,a,this.isSource,this.graph.isCloneEvent(n.getEvent())&&this.cloneEnabled&&this.graph.isCellsCloneable(),n);else if(this.graph.isAllowDanglingEdges()){(a=this.abspoints[this.isSource?0:this.abspoints.length-1]).x=a.x/this.graph.view.scale-this.graph.view.translate.x,a.y=a.y/this.graph.view.scale-this.graph.view.translate.y;var i=this.graph.getView().getState(this.graph.getModel().getParent(t));null!=i&&(a.x-=i.origin.x,a.y-=i.origin.y),a.x-=this.graph.panDx/this.graph.view.scale,a.y-=this.graph.panDy/this.graph.view.scale,this.changeTerminalPoint(t,a,this.isSource)}}else this.active?this.changePoints(t,this.points):(this.graph.getView().invalidate(this.state.cell),this.graph.getView().revalidate(this.state.cell));null!=this.marker&&(this.reset(),t!=this.state.cell&&this.graph.setSelectionCell(t)),n.consume()}},mxEdgeHandler.prototype.reset=function(){this.points=this.label=this.index=this.error=null,this.isTarget=this.isSource=this.isLabel=this.active=!1,this.marker.reset(),this.constraintHandler.reset(),this.setPreviewColor(mxConstants.EDGE_SELECTION_COLOR),this.redraw()},mxEdgeHandler.prototype.setPreviewColor=function(e){null!=this.shape&&(this.shape.stroke=e)},mxEdgeHandler.prototype.convertPoint=function(e,n){var t=this.graph.getView().getScale(),a=this.graph.getView().getTranslate();return n&&(e.x=this.graph.snap(e.x),e.y=this.graph.snap(e.y)),e.x=Math.round(e.x/t-a.x),e.y=Math.round(e.y/t-a.y),null!=(t=this.graph.getView().getState(this.graph.getModel().getParent(this.state.cell)))&&(e.x-=t.origin.x,e.y-=t.origin.y),e},mxEdgeHandler.prototype.moveLabel=function(e,n,t){var a=this.graph.getModel();if(null!=(i=a.getGeometry(e.cell))){var i=i.clone(),s=this.graph.getView().getRelativePoint(e,n,t);i.x=s.x,i.y=s.y;var o=this.graph.getView().scale;i.offset=new mxPoint(0,0),s=this.graph.view.getPoint(e,i),i.offset=new mxPoint((n-s.x)/o,(t-s.y)/o),a.setGeometry(e.cell,i)}},mxEdgeHandler.prototype.connect=function(e,n,t,a,i){var s=(i=this.graph.getModel()).getParent(e);i.beginUpdate();try{if(a){var o=e.clone();i.add(s,o,i.getChildCount(s));var r=i.getTerminal(e,!t);this.graph.connectCell(o,r,!t),e=o}var l=this.constraintHandler.currentConstraint;null==l&&(l=new mxConnectionConstraint),this.graph.connectCell(e,n,t,l)}finally{i.endUpdate()}return e},mxEdgeHandler.prototype.changeTerminalPoint=function(e,n,t){var a=this.graph.getModel(),i=a.getGeometry(e);if(null!=i){a.beginUpdate();try{(i=i.clone()).setTerminalPoint(n,t),a.setGeometry(e,i),this.graph.connectCell(e,null,t,new mxConnectionConstraint)}finally{a.endUpdate()}}},mxEdgeHandler.prototype.changePoints=function(e,n){var t=this.graph.getModel(),a=t.getGeometry(e);null!=a&&((a=a.clone()).points=n,t.setGeometry(e,a))},mxEdgeHandler.prototype.addPoint=function(e,n){var t=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(n),mxEvent.getClientY(n)),a=this.graph.isGridEnabledEvent(n);this.convertPoint(t,a),this.addPointAt(e,t.x,t.y),mxEvent.consume(n)},mxEdgeHandler.prototype.addPointAt=function(e,n,t){var a=this.graph.getCellGeometry(e.cell);if(n=new mxPoint(n,t),null!=a){a=a.clone(),t=this.graph.view.translate;var i=this.graph.view.scale;t=mxUtils.findNearestSegment(e,(n.x+t.x)*i,(n.y+t.y)*i),null==a.points?a.points=[n]:a.points.splice(t,0,n),this.graph.getModel().setGeometry(e.cell,a),this.destroy(),this.init()}},mxEdgeHandler.prototype.removePoint=function(e,n){if(0<n&&n<this.abspoints.length-1){var t=this.graph.getCellGeometry(this.state.cell);null!=t&&null!=t.points&&((t=t.clone()).points.splice(n-1,1),this.graph.getModel().setGeometry(e.cell,t),this.destroy(),this.init())}},mxEdgeHandler.prototype.getHandleFillColor=function(e){e=0==e;var n=this.state.cell,t=this.graph.getModel().getTerminal(n,e),a=mxConstants.HANDLE_FILLCOLOR;return null!=t&&!this.graph.isCellDisconnectable(n,t,e)||null==t&&!this.graph.isTerminalPointMovable(n,e)?a=mxConstants.LOCKED_HANDLE_FILLCOLOR:null!=t&&this.graph.isCellDisconnectable(n,t,e)&&(a=mxConstants.CONNECT_HANDLE_FILLCOLOR),a},mxEdgeHandler.prototype.redraw=function(){this.abspoints=this.state.absolutePoints.slice();var e=this.state.cell,n=mxConstants.LABEL_HANDLE_SIZE;if(this.label=new mxPoint(this.state.absoluteOffset.x,this.state.absoluteOffset.y),this.labelShape.bounds=new mxRectangle(Math.round(this.label.x-n/2),Math.round(this.label.y-n/2),n,n),this.labelShape.redraw(),null!=(n=this.graph.getLabel(e))&&0<n.length&&this.graph.isLabelMovable(e)?this.labelShape.node.style.visibility="visible":this.labelShape.node.style.visibility="hidden",null!=this.bends&&0<this.bends.length){var t=this.abspoints.length-1,a=(e=this.abspoints[0],this.abspoints[0].y);n=this.bends[0].bounds;this.bends[0].bounds=new mxRectangle(Math.round(this.abspoints[0].x-n.width/2),Math.round(a-n.height/2),n.width,n.height),this.bends[0].fill=this.getHandleFillColor(0),this.bends[0].redraw();a=this.abspoints[t];var i=this.abspoints[t].x,s=(t=this.abspoints[t].y,this.bends.length-1);n=this.bends[s].bounds;this.bends[s].bounds=new mxRectangle(Math.round(i-n.width/2),Math.round(t-n.height/2),n.width,n.height),this.bends[s].fill=this.getHandleFillColor(s),this.bends[s].redraw(),this.redrawInnerBends(e,a)}this.drawPreview()},mxEdgeHandler.prototype.redrawInnerBends=function(e,n){var t=this.graph.getModel().getGeometry(this.state.cell).points;if(null!=t){null==this.points&&(this.points=[]);for(var a=1;a<this.bends.length-1;a++)if(null!=this.bends[a])if(null!=this.abspoints[a]){var i=this.abspoints[a].x,s=this.abspoints[a].y,o=this.bends[a].bounds;this.bends[a].node.style.visibility="visible",this.bends[a].bounds=new mxRectangle(Math.round(i-o.width/2),Math.round(s-o.height/2),o.width,o.height),this.bends[a].redraw(),this.points[a-1]=t[a-1]}else this.bends[a].destroy(),this.bends[a]=null}},mxEdgeHandler.prototype.drawPreview=function(){if(this.isLabel){var e=mxConstants.LABEL_HANDLE_SIZE;e=new mxRectangle(Math.round(this.label.x-e/2),Math.round(this.label.y-e/2),e,e);this.labelShape.bounds=e,this.labelShape.redraw()}else this.shape.points=this.abspoints,this.shape.redraw()},mxEdgeHandler.prototype.destroy=function(){if(null!=this.marker&&(this.marker.destroy(),this.marker=null),null!=this.shape&&(this.shape.destroy(),this.shape=null),null!=this.labelShape&&(this.labelShape.destroy(),this.labelShape=null),null!=this.constraintHandler&&(this.constraintHandler.destroy(),this.constraintHandler=null),null!=this.bends)for(var e=0;e<this.bends.length;e++)null!=this.bends[e]&&(this.bends[e].destroy(),this.bends[e]=null)},mxUtils.extend(mxElbowEdgeHandler,mxEdgeHandler),mxElbowEdgeHandler.prototype=new mxEdgeHandler,mxElbowEdgeHandler.prototype.constructor=mxElbowEdgeHandler,mxElbowEdgeHandler.prototype.flipEnabled=!0,mxElbowEdgeHandler.prototype.doubleClickOrientationResource="none"!=mxClient.language?"doubleClickOrientation":"",mxElbowEdgeHandler.prototype.createBends=function(){var e=[],n=this.createHandleShape(0);return this.initBend(n),n.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(n.node,this.graph,this.state),e.push(n),mxClient.IS_TOUCH&&n.node.setAttribute("pointer-events","none"),e.push(this.createVirtualBend()),this.points.push(new mxPoint(0,0)),n=this.createHandleShape(2),this.initBend(n),n.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(n.node,this.graph,this.state),e.push(n),mxClient.IS_TOUCH&&n.node.setAttribute("pointer-events","none"),e},mxElbowEdgeHandler.prototype.createVirtualBend=function(){var e=this.createHandleShape();this.initBend(e);var n=this.getCursorForBend();return e.node.style.cursor=n,n=mxUtils.bind(this,function(e){!mxEvent.isConsumed(e)&&this.flipEnabled&&(this.graph.flipEdge(this.state.cell,e),mxEvent.consume(e))}),mxEvent.redirectMouseEvents(e.node,this.graph,this.state,null,null,null,n),this.graph.isCellBendable(this.state.cell)||(e.node.style.display="none"),e},mxElbowEdgeHandler.prototype.getCursorForBend=function(){return this.state.style[mxConstants.STYLE_EDGE]==mxEdgeStyle.TopToBottom||this.state.style[mxConstants.STYLE_EDGE]==mxConstants.EDGESTYLE_TOPTOBOTTOM||(this.state.style[mxConstants.STYLE_EDGE]==mxEdgeStyle.ElbowConnector||this.state.style[mxConstants.STYLE_EDGE]==mxConstants.EDGESTYLE_ELBOW)&&this.state.style[mxConstants.STYLE_ELBOW]==mxConstants.ELBOW_VERTICAL?"row-resize":"col-resize"},mxElbowEdgeHandler.prototype.getTooltipForNode=function(e){var n=null;return null==this.bends||null==this.bends[1]||e!=this.bends[1].node&&e.parentNode!=this.bends[1].node||(n=this.doubleClickOrientationResource,n=mxResources.get(n)||n),n},mxElbowEdgeHandler.prototype.convertPoint=function(e,n){var t=this.graph.getView().getScale(),a=this.graph.getView().getTranslate(),i=this.state.origin;n&&(e.x=this.graph.snap(e.x),e.y=this.graph.snap(e.y)),e.x=Math.round(e.x/t-a.x-i.x),e.y=Math.round(e.y/t-a.y-i.y)},mxElbowEdgeHandler.prototype.redrawInnerBends=function(e,n){var t=null==(t=null!=(t=this.graph.getModel().getGeometry(this.state.cell).points)?t[0]:null)?new mxPoint(e.x+(n.x-e.x)/2,e.y+(n.y-e.y)/2):new mxPoint(this.graph.getView().scale*(t.x+this.graph.getView().translate.x+this.state.origin.x),this.graph.getView().scale*(t.y+this.graph.getView().translate.y+this.state.origin.y)),a=(i=this.bends[1].bounds).width,i=i.height;null==this.handleImage&&(i=a=mxConstants.HANDLE_SIZE);var s=new mxRectangle(Math.round(t.x-a/2),Math.round(t.y-i/2),a,i);null==this.handleImage&&"hidden"!=this.labelShape.node.style.visibility&&mxUtils.intersects(s,this.labelShape.bounds)&&(a+=3,i+=3,s=new mxRectangle(Math.round(t.x-a/2),Math.round(t.y-i/2),a,i)),this.bends[1].bounds=s,this.bends[1].redraw()},mxUtils.extend(mxEdgeSegmentHandler,mxEdgeHandler),mxEdgeSegmentHandler.prototype=new mxElbowEdgeHandler,mxEdgeSegmentHandler.prototype.constructor=mxEdgeSegmentHandler,mxEdgeSegmentHandler.prototype.getPreviewPoints=function(e){if(this.isSource||this.isTarget)return mxElbowEdgeHandler.prototype.getPreviewPoints.apply(this,arguments);this.convertPoint(e,!1);var n=this.state.absolutePoints,t=n[0].clone();this.convertPoint(t,!1);for(var a=[],i=1;i<n.length;i++){var s=n[i].clone();this.convertPoint(s,!1),i==this.index&&(t.x==s.x?(t.x=e.x,s.x=e.x):(t.y=e.y,s.y=e.y)),i<n.length-1&&a.push(s),t=s}if(1==a.length){if(t=this.state.view,i=this.state.getVisibleTerminalState(!0),null!=(s=this.state.getVisibleTerminalState(!1))&null!=i){var o=this.state.origin.x,r=this.state.origin.y;mxUtils.contains(s,a[0].x+o,a[0].y+r)?n[1].y==n[2].y?a[0].y=t.getRoutingCenterY(i)-r:a[0].x=t.getRoutingCenterX(i)-o:mxUtils.contains(i,a[0].x+o,a[0].y+r)&&(n[1].y==n[0].y?a[0].y=t.getRoutingCenterY(s)-r:a[0].x=t.getRoutingCenterX(s)-o)}}else 0==a.length&&(a=[e]);return a},mxEdgeSegmentHandler.prototype.createBends=function(){var e=[],n=this.createHandleShape(0);this.initBend(n),n.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(n.node,this.graph,this.state),e.push(n),mxClient.IS_TOUCH&&n.node.setAttribute("pointer-events","none");var t=this.state.absolutePoints;if(this.graph.isCellBendable(this.state.cell)){null==this.points&&(this.points=[]);for(var a=0;a<t.length-1;a++)n=this.createVirtualBend(),e.push(n),n.node.style.cursor=0==t[a].x-t[a+1].x?"col-resize":"row-resize",this.points.push(new mxPoint(0,0)),mxClient.IS_TOUCH&&n.node.setAttribute("pointer-events","none")}return n=this.createHandleShape(t.length),this.initBend(n),n.node.style.cursor=mxConstants.CURSOR_BEND_HANDLE,mxEvent.redirectMouseEvents(n.node,this.graph,this.state),e.push(n),mxClient.IS_TOUCH&&n.node.setAttribute("pointer-events","none"),e},mxEdgeSegmentHandler.prototype.redraw=function(){this.refresh(),mxEdgeHandler.prototype.redraw.apply(this,arguments)},mxEdgeSegmentHandler.prototype.refresh=function(){if(null!=this.bends){for(var e=0;e<this.bends.length;e++)null!=this.bends[e]&&(this.bends[e].destroy(),this.bends[e]=null);this.bends=this.createBends()}},mxEdgeSegmentHandler.prototype.redrawInnerBends=function(e,n){if(this.graph.isCellBendable(this.state.cell)){var t=mxConstants.HANDLE_SIZE,a=this.state.absolutePoints;if(null!=a&&1<a.length)for(var i=0;i<this.state.absolutePoints.length-1;i++)if(null!=this.bends[i+1]){e=a[i],n=a[i+1];var s=new mxPoint(e.x+(n.x-e.x)/2,e.y+(n.y-e.y)/2);this.bends[i+1].bounds=new mxRectangle(Math.round(s.x-t/2),Math.round(s.y-t/2),t,t),this.bends[i+1].redraw()}}},mxEdgeSegmentHandler.prototype.changePoints=function(e,n){n=[];var t=this.abspoints;if(1<t.length)for(var a=t[0],i=t[1],s=2;s<t.length;s++){var o=t[s];Math.round(a.x)==Math.round(i.x)&&Math.round(i.x)==Math.round(o.x)||Math.round(a.y)==Math.round(i.y)&&Math.round(i.y)==Math.round(o.y)||(i=(a=i).clone(),this.convertPoint(i,!1),n.push(i)),i=o}mxElbowEdgeHandler.prototype.changePoints.apply(this,arguments)},mxKeyHandler.prototype.graph=null,mxKeyHandler.prototype.target=null,mxKeyHandler.prototype.normalKeys=null,mxKeyHandler.prototype.shiftKeys=null,mxKeyHandler.prototype.controlKeys=null,mxKeyHandler.prototype.controlShiftKeys=null,mxKeyHandler.prototype.enabled=!0,mxKeyHandler.prototype.isEnabled=function(){return this.enabled},mxKeyHandler.prototype.setEnabled=function(e){this.enabled=e},mxKeyHandler.prototype.bindKey=function(e,n){this.normalKeys[e]=n},mxKeyHandler.prototype.bindShiftKey=function(e,n){this.shiftKeys[e]=n},mxKeyHandler.prototype.bindControlKey=function(e,n){this.controlKeys[e]=n},mxKeyHandler.prototype.bindControlShiftKey=function(e,n){this.controlShiftKeys[e]=n},mxKeyHandler.prototype.isControlDown=function(e){return mxEvent.isControlDown(e)},mxKeyHandler.prototype.getFunction=function(e){return null!=e?this.isControlDown(e)?mxEvent.isShiftDown(e)?this.controlShiftKeys[e.keyCode]:this.controlKeys[e.keyCode]:mxEvent.isShiftDown(e)?this.shiftKeys[e.keyCode]:this.normalKeys[e.keyCode]:null},mxKeyHandler.prototype.isGraphEvent=function(e){if((e=mxEvent.getSource(e))==this.target||e.parentNode==this.target||null!=this.graph.cellEditor&&e==this.graph.cellEditor.textarea)return!0;for(;null!=e;){if(e==this.graph.container)return!0;e=e.parentNode}return!1},mxKeyHandler.prototype.keyDown=function(e){if(this.graph.isEnabled()&&!mxEvent.isConsumed(e)&&this.isGraphEvent(e)&&this.isEnabled())if(27==e.keyCode)this.escape(e);else if(!this.graph.isEditing()){var n=this.getFunction(e);null!=n&&(n(e),mxEvent.consume(e))}},mxKeyHandler.prototype.escape=function(e){this.graph.isEscapeEnabled()&&this.graph.escape(e)},mxKeyHandler.prototype.destroy=function(){this.target=null},mxTooltipHandler.prototype.zIndex=10005,mxTooltipHandler.prototype.graph=null,mxTooltipHandler.prototype.delay=null,mxTooltipHandler.prototype.hideOnHover=!1,mxTooltipHandler.prototype.enabled=!0,mxTooltipHandler.prototype.isEnabled=function(){return this.enabled},mxTooltipHandler.prototype.setEnabled=function(e){this.enabled=e},mxTooltipHandler.prototype.isHideOnHover=function(){return this.hideOnHover},mxTooltipHandler.prototype.setHideOnHover=function(e){this.hideOnHover=e},mxTooltipHandler.prototype.init=function(){null!=document.body&&(this.div=document.createElement("div"),this.div.className="mxTooltip",this.div.style.visibility="hidden",this.div.style.zIndex=this.zIndex,document.body.appendChild(this.div),mxEvent.addListener(this.div,"mousedown",mxUtils.bind(this,function(e){this.hideTooltip()})))},mxTooltipHandler.prototype.mouseDown=function(e,n){this.reset(n,!1),this.hideTooltip()},mxTooltipHandler.prototype.mouseMove=function(e,n){n.getX()==this.lastX&&n.getY()==this.lastY||(this.reset(n,!0),(this.isHideOnHover()||n.getState()!=this.state||n.getSource()!=this.node&&(!this.stateSource||null!=n.getState()&&this.stateSource==(n.isSource(n.getState().shape)||!n.isSource(n.getState().text))))&&this.hideTooltip()),this.lastX=n.getX(),this.lastY=n.getY()},mxTooltipHandler.prototype.mouseUp=function(e,n){this.reset(n,!0),this.hideTooltip()},mxTooltipHandler.prototype.resetTimer=function(){null!=this.thread&&(window.clearTimeout(this.thread),this.thread=null)},mxTooltipHandler.prototype.reset=function(e,n){if(this.resetTimer(),n&&this.isEnabled()&&null!=e.getState()&&(null==this.div||"hidden"==this.div.style.visibility)){var t=e.getState(),a=e.getSource(),i=e.getX(),s=e.getY(),o=e.isSource(t.shape)||e.isSource(t.text);this.thread=window.setTimeout(mxUtils.bind(this,function(){if(!this.graph.isEditing()&&!this.graph.panningHandler.isMenuShowing()){var e=this.graph.getTooltip(t,a,i,s);this.show(e,i,s),this.state=t,this.node=a,this.stateSource=o}}),this.delay)}},mxTooltipHandler.prototype.hide=function(){this.resetTimer(),this.hideTooltip()},mxTooltipHandler.prototype.hideTooltip=function(){null!=this.div&&(this.div.style.visibility="hidden")},mxTooltipHandler.prototype.show=function(e,n,t){if(null!=e&&0<e.length){null==this.div&&this.init();var a=mxUtils.getScrollOrigin();this.div.style.left=n+a.x+"px",this.div.style.top=t+mxConstants.TOOLTIP_VERTICAL_OFFSET+a.y+"px",mxUtils.isNode(e)?(this.div.innerHTML="",this.div.appendChild(e)):this.div.innerHTML=e.replace(/\n/g,"<br>"),this.div.style.visibility="",mxUtils.fit(this.div)}},mxTooltipHandler.prototype.destroy=function(){this.graph.removeMouseListener(this),mxEvent.release(this.div),null!=this.div&&null!=this.div.parentNode&&this.div.parentNode.removeChild(this.div),this.div=null},mxUtils.extend(mxCellTracker,mxCellMarker),mxCellTracker.prototype.mouseDown=function(e,n){},mxCellTracker.prototype.mouseMove=function(e,n){this.isEnabled()&&this.process(n)},mxCellTracker.prototype.mouseUp=function(e,n){this.reset()},mxCellTracker.prototype.destroy=function(){this.destroyed||(this.destroyed=!0,this.graph.removeMouseListener(this),mxCellMarker.prototype.destroy.apply(this))},mxCellHighlight.prototype.keepOnTop=!1,mxCellHighlight.prototype.graph=!0,mxCellHighlight.prototype.state=null,mxCellHighlight.prototype.spacing=2,mxCellHighlight.prototype.resetHandler=null,mxCellHighlight.prototype.setHighlightColor=function(e){this.highlightColor=e,null!=this.shape&&(this.shape.stroke=e)},mxCellHighlight.prototype.drawHighlight=function(){this.shape=this.createShape(),this.repaint(),!this.keepOnTop&&this.shape.node.parentNode.firstChild!=this.shape.node&&this.shape.node.parentNode.insertBefore(this.shape.node,this.shape.node.parentNode.firstChild)},mxCellHighlight.prototype.createShape=function(){var e=null;return(e=this.graph.model.isEdge(this.state.cell)?new mxPolyline(this.state.absolutePoints,this.highlightColor,this.strokeWidth):new mxRectangleShape(new mxRectangle,null,this.highlightColor,this.strokeWidth)).dialect=this.graph.dialect!=mxConstants.DIALECT_SVG?mxConstants.DIALECT_VML:mxConstants.DIALECT_SVG,e.init(this.graph.getView().getOverlayPane()),mxEvent.redirectMouseEvents(e.node,this.graph,this.state),e.svgStrokeTolerance=0,e.pointerEvents=!1,e.isDashed=this.dashed,e},mxCellHighlight.prototype.repaint=function(){if(null!=this.state&&null!=this.shape){var e=0;this.graph.model.isEdge(this.state.cell)?this.shape.points=this.state.absolutePoints:(this.shape.bounds=new mxRectangle(this.state.x-this.spacing,this.state.y-this.spacing,this.state.width+2*this.spacing,this.state.height+2*this.spacing),e=Number(this.state.style[mxConstants.STYLE_ROTATION]||"0")),null!=this.state.shape&&this.shape.setCursor(this.state.shape.getCursor()),0!=e&&(this.shape.rotation=e),this.shape.redraw()}},mxCellHighlight.prototype.hide=function(){this.highlight(null)},mxCellHighlight.prototype.highlight=function(e){this.state!=e&&(null!=this.shape&&(this.shape.destroy(),this.shape=null),this.state=e,null!=this.state&&this.drawHighlight())},mxCellHighlight.prototype.destroy=function(){this.graph.getView().removeListener(this.repaintHandler),this.graph.getModel().removeListener(this.repaintHandler),this.graph.getView().removeListener(this.resetHandler),this.graph.getModel().removeListener(this.resetHandler),null!=this.shape&&(this.shape.destroy(),this.shape=null)},mxDefaultKeyHandler.prototype.editor=null,mxDefaultKeyHandler.prototype.handler=null,mxDefaultKeyHandler.prototype.bindAction=function(e,n,t){var a=mxUtils.bind(this,function(){this.editor.execute(n)});t?this.handler.bindControlKey(e,a):this.handler.bindKey(e,a)},mxDefaultKeyHandler.prototype.destroy=function(){this.handler.destroy(),this.handler=null},mxDefaultPopupMenu.prototype.imageBasePath=null,mxDefaultPopupMenu.prototype.config=null,mxDefaultPopupMenu.prototype.createMenu=function(e,n,t,a){if(null!=this.config){var i=this.createConditions(e,t,a);this.addItems(e,n,t,a,i,this.config.firstChild,null)}},mxDefaultPopupMenu.prototype.addItems=function(e,n,t,a,i,s,o){for(var r=!1;null!=s;){if("add"==s.nodeName){if(null==(l=s.getAttribute("if"))||i[l]){var l=s.getAttribute("as"),d=(l=mxResources.get(l)||l,mxUtils.eval(mxUtils.getTextContent(s))),c=s.getAttribute("action"),m=s.getAttribute("icon"),u=s.getAttribute("iconCls");r&&(n.addSeparator(o),r=!1),null!=m&&this.imageBasePath&&(m=this.imageBasePath+m),l=this.addAction(n,e,l,m,d,c,t,o,u),this.addItems(e,n,t,a,i,s.firstChild,l)}}else"separator"==s.nodeName&&(r=!0);s=s.nextSibling}},mxDefaultPopupMenu.prototype.addAction=function(e,n,t,a,i,s,o,r,l){return e.addItem(t,a,function(e){"function"==typeof i&&i.call(n,n,o,e),null!=s&&n.execute(s,o,e)},r,l)},mxDefaultPopupMenu.prototype.createConditions=function(e,n,t){var a=e.graph.getModel(),i=a.getChildCount(n),s=[];for(s.nocell=null==n,s.ncells=1<e.graph.getSelectionCount(),s.notRoot=a.getRoot()!=a.getParent(e.graph.getDefaultParent()),s.cell=null!=n,a=null!=n&&1==e.graph.getSelectionCount(),s.nonEmpty=a&&0<i,s.expandable=a&&e.graph.isCellFoldable(n,!1),s.collapsable=a&&e.graph.isCellFoldable(n,!0),s.validRoot=a&&e.graph.isValidRoot(n),s.emptyValidRoot=s.validRoot&&0==i,s.swimlane=a&&e.graph.isSwimlane(n),i=this.config.getElementsByTagName("condition"),a=0;a<i.length;a++){var o=mxUtils.eval(mxUtils.getTextContent(i[a])),r=i[a].getAttribute("name");null!=r&&"function"==typeof o&&(s[r]=o(e,n,t))}return s},mxDefaultToolbar.prototype.editor=null,mxDefaultToolbar.prototype.toolbar=null,mxDefaultToolbar.prototype.resetHandler=null,mxDefaultToolbar.prototype.spacing=4,mxDefaultToolbar.prototype.connectOnDrop=!1,mxDefaultToolbar.prototype.init=function(e){null!=e&&(this.toolbar=new mxToolbar(e),this.toolbar.addListener(mxEvent.SELECT,mxUtils.bind(this,function(e,n){var t=n.getProperty("function");this.editor.insertFunction=null!=t?mxUtils.bind(this,function(){t.apply(this,arguments),this.toolbar.resetMode()}):null})),this.resetHandler=mxUtils.bind(this,function(){null!=this.toolbar&&this.toolbar.resetMode(!0)}),this.editor.graph.addListener(mxEvent.DOUBLE_CLICK,this.resetHandler),this.editor.addListener(mxEvent.ESCAPE,this.resetHandler))},mxDefaultToolbar.prototype.addItem=function(e,n,t,a){var i=mxUtils.bind(this,function(){null!=t&&0<t.length&&this.editor.execute(t)});return this.toolbar.addItem(e,n,i,a)},mxDefaultToolbar.prototype.addSeparator=function(e){e=e||mxClient.imageBasePath+"/separator.gif",this.toolbar.addSeparator(e)},mxDefaultToolbar.prototype.addCombo=function(){return this.toolbar.addCombo()},mxDefaultToolbar.prototype.addActionCombo=function(e){return this.toolbar.addActionCombo(e)},mxDefaultToolbar.prototype.addActionOption=function(e,n,t){var a=mxUtils.bind(this,function(){this.editor.execute(t)});this.addOption(e,n,a)},mxDefaultToolbar.prototype.addOption=function(e,n,t){return this.toolbar.addOption(e,n,t)},mxDefaultToolbar.prototype.addMode=function(e,n,t,a,i){var s=mxUtils.bind(this,function(){this.editor.setMode(t),null!=i&&i(this.editor)});return this.toolbar.addSwitchMode(e,n,s,a)},mxDefaultToolbar.prototype.addPrototype=function(e,n,t,a,i,s){var o=function(){return"function"==typeof t?t():null!=t?t.clone():null},r=mxUtils.bind(this,function(e,n){"function"==typeof i?i(this.editor,o(),e,n):this.drop(o(),e,n),this.toolbar.resetMode(),mxEvent.consume(e)});return e=this.toolbar.addMode(e,n,r,a,null,s),this.installDropHandler(e,function(e,n,t){r(n,t)}),e},mxDefaultToolbar.prototype.drop=function(e,n,t){var a=this.editor.graph,i=a.getModel();if(null!=t&&!i.isEdge(t)&&this.connectOnDrop&&a.isCellConnectable(t))this.connect(e,n,t);else{for(;null!=t&&!a.isValidDropTarget(t,[e],n);)t=i.getParent(t);this.insert(e,n,t)}},mxDefaultToolbar.prototype.insert=function(e,n,t){var a=this.editor.graph;if(a.canImportCell(e)){var i=mxEvent.getClientX(n),s=mxEvent.getClientY(n);i=mxUtils.convertPoint(a.container,i,s);return a.isSplitEnabled()&&a.isSplitTarget(t,[e],n)?a.splitEdge(t,[e],null,i.x,i.y):this.editor.addVertex(t,e,i.x,i.y)}return null},mxDefaultToolbar.prototype.connect=function(e,n,t){var a=(n=this.editor.graph).getModel();if(null!=t&&n.isCellConnectable(e)&&n.isEdgeValid(null,t,e)){var i=null;a.beginUpdate();try{var s=a.getGeometry(t),o=a.getGeometry(e).clone();o.x=s.x+(s.width-o.width)/2,o.y=s.y+(s.height-o.height)/2;var r=this.spacing*n.gridSize,l=20*a.getDirectedEdgeCount(t,!0);this.editor.horizontalFlow?o.x+=(o.width+s.width)/2+r+l:o.y+=(o.height+s.height)/2+r+l,e.setGeometry(o);var d=a.getParent(t);if(n.addCell(e,d),n.constrainChild(e),i=this.editor.createEdge(t,e),null==a.getGeometry(i)){var c=new mxGeometry;c.relative=!0,a.setGeometry(i,c)}n.addEdge(i,d,t,e)}finally{a.endUpdate()}n.setSelectionCells([e,i]),n.scrollCellToVisible(e)}},mxDefaultToolbar.prototype.installDropHandler=function(n,t){var a=document.createElement("img");a.setAttribute("src",n.getAttribute("src"));var i=mxUtils.bind(this,function(e){a.style.width=2*n.offsetWidth+"px",a.style.height=2*n.offsetHeight+"px",mxUtils.makeDraggable(n,this.editor.graph,t,a),mxEvent.removeListener(a,"load",i)});mxClient.IS_IE?i():mxEvent.addListener(a,"load",i)},mxDefaultToolbar.prototype.destroy=function(){null!=this.resetHandler&&(this.editor.graph.removeListener("dblclick",this.resetHandler),this.editor.removeListener("escape",this.resetHandler),this.resetHandler=null),null!=this.toolbar&&(this.toolbar.destroy(),this.toolbar=null)},mxLoadResources&&mxResources.add(mxClient.basePath+"/resources/editor"),mxEditor.prototype=new mxEventSource,mxEditor.prototype.constructor=mxEditor,mxEditor.prototype.askZoomResource="none"!=mxClient.language?"askZoom":"",mxEditor.prototype.lastSavedResource="none"!=mxClient.language?"lastSaved":"",mxEditor.prototype.currentFileResource="none"!=mxClient.language?"currentFile":"",mxEditor.prototype.propertiesResource="none"!=mxClient.language?"properties":"",mxEditor.prototype.tasksResource="none"!=mxClient.language?"tasks":"",mxEditor.prototype.helpResource="none"!=mxClient.language?"help":"",mxEditor.prototype.outlineResource="none"!=mxClient.language?"outline":"",mxEditor.prototype.outline=null,mxEditor.prototype.graph=null,mxEditor.prototype.graphRenderHint=null,mxEditor.prototype.toolbar=null,mxEditor.prototype.session=null,mxEditor.prototype.status=null,mxEditor.prototype.popupHandler=null,mxEditor.prototype.undoManager=null,mxEditor.prototype.keyHandler=null,mxEditor.prototype.actions=null,mxEditor.prototype.dblClickAction="edit",mxEditor.prototype.swimlaneRequired=!1,mxEditor.prototype.disableContextMenu=!0,mxEditor.prototype.insertFunction=null,mxEditor.prototype.forcedInserting=!1,mxEditor.prototype.templates=null,mxEditor.prototype.defaultEdge=null,mxEditor.prototype.defaultEdgeStyle=null,mxEditor.prototype.defaultGroup=null,mxEditor.prototype.groupBorderSize=null,mxEditor.prototype.filename=null,mxEditor.prototype.linefeed="
",mxEditor.prototype.postParameterName="xml",mxEditor.prototype.escapePostData=!0,mxEditor.prototype.urlPost=null,mxEditor.prototype.urlImage=null,mxEditor.prototype.urlInit=null,mxEditor.prototype.urlNotify=null,mxEditor.prototype.urlPoll=null,mxEditor.prototype.horizontalFlow=!1,mxEditor.prototype.layoutDiagram=!1,mxEditor.prototype.swimlaneSpacing=0,mxEditor.prototype.maintainSwimlanes=!1,mxEditor.prototype.layoutSwimlanes=!1,mxEditor.prototype.cycleAttributeValues=null,mxEditor.prototype.cycleAttributeIndex=0,mxEditor.prototype.cycleAttributeName="fillColor",mxEditor.prototype.tasks=null,mxEditor.prototype.tasksWindowImage=null,mxEditor.prototype.tasksTop=20,mxEditor.prototype.help=null,mxEditor.prototype.helpWindowImage=null,mxEditor.prototype.urlHelp=null,mxEditor.prototype.helpWidth=300,mxEditor.prototype.helpHeight=260,mxEditor.prototype.propertiesWidth=240,mxEditor.prototype.propertiesHeight=null,mxEditor.prototype.movePropertiesDialog=!1,mxEditor.prototype.validating=!1,mxEditor.prototype.modified=!1,mxEditor.prototype.isModified=function(){return this.modified},mxEditor.prototype.setModified=function(e){this.modified=e},mxEditor.prototype.addActions=function(){this.addAction("save",function(e){e.save()}),this.addAction("print",function(e){new mxPrintPreview(e.graph,1).open()}),this.addAction("show",function(e){mxUtils.show(e.graph,null,10,10)}),this.addAction("exportImage",function(e){var n=e.getUrlImage();if(null==n||mxClient.IS_LOCAL)e.execute("show");else{var t=mxUtils.getViewXml(e.graph,1);t=mxUtils.getXml(t,"\n");mxUtils.submit(n,e.postParameterName+"="+encodeURIComponent(t),document,"_blank")}}),this.addAction("refresh",function(e){e.graph.refresh()}),this.addAction("cut",function(e){e.graph.isEnabled()&&mxClipboard.cut(e.graph)}),this.addAction("copy",function(e){e.graph.isEnabled()&&mxClipboard.copy(e.graph)}),this.addAction("paste",function(e){e.graph.isEnabled()&&mxClipboard.paste(e.graph)}),this.addAction("delete",function(e){e.graph.isEnabled()&&e.graph.removeCells()}),this.addAction("group",function(e){e.graph.isEnabled()&&e.graph.setSelectionCell(e.groupCells())}),this.addAction("ungroup",function(e){e.graph.isEnabled()&&e.graph.setSelectionCells(e.graph.ungroupCells())}),this.addAction("removeFromParent",function(e){e.graph.isEnabled()&&e.graph.removeCellsFromParent()}),this.addAction("undo",function(e){e.graph.isEnabled()&&e.undo()}),this.addAction("redo",function(e){e.graph.isEnabled()&&e.redo()}),this.addAction("zoomIn",function(e){e.graph.zoomIn()}),this.addAction("zoomOut",function(e){e.graph.zoomOut()}),this.addAction("actualSize",function(e){e.graph.zoomActual()}),this.addAction("fit",function(e){e.graph.fit()}),this.addAction("showProperties",function(e,n){e.showProperties(n)}),this.addAction("selectAll",function(e){e.graph.isEnabled()&&e.graph.selectAll()}),this.addAction("selectNone",function(e){e.graph.isEnabled()&&e.graph.clearSelection()}),this.addAction("selectVertices",function(e){e.graph.isEnabled()&&e.graph.selectVertices()}),this.addAction("selectEdges",function(e){e.graph.isEnabled()&&e.graph.selectEdges()}),this.addAction("edit",function(e,n){e.graph.isEnabled()&&e.graph.isCellEditable(n)&&e.graph.startEditingAtCell(n)}),this.addAction("toBack",function(e,n){e.graph.isEnabled()&&e.graph.orderCells(!0)}),this.addAction("toFront",function(e,n){e.graph.isEnabled()&&e.graph.orderCells(!1)}),this.addAction("enterGroup",function(e,n){e.graph.enterGroup(n)}),this.addAction("exitGroup",function(e){e.graph.exitGroup()}),this.addAction("home",function(e){e.graph.home()}),this.addAction("selectPrevious",function(e){e.graph.isEnabled()&&e.graph.selectPreviousCell()}),this.addAction("selectNext",function(e){e.graph.isEnabled()&&e.graph.selectNextCell()}),this.addAction("selectParent",function(e){e.graph.isEnabled()&&e.graph.selectParentCell()}),this.addAction("selectChild",function(e){e.graph.isEnabled()&&e.graph.selectChildCell()}),this.addAction("collapse",function(e){e.graph.isEnabled()&&e.graph.foldCells(!0)}),this.addAction("collapseAll",function(e){if(e.graph.isEnabled()){var n=e.graph.getChildVertices();e.graph.foldCells(!0,!1,n)}}),this.addAction("expand",function(e){e.graph.isEnabled()&&e.graph.foldCells(!1)}),this.addAction("expandAll",function(e){if(e.graph.isEnabled()){var n=e.graph.getChildVertices();e.graph.foldCells(!1,!1,n)}}),this.addAction("bold",function(e){e.graph.isEnabled()&&e.graph.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,mxConstants.FONT_BOLD)}),this.addAction("italic",function(e){e.graph.isEnabled()&&e.graph.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,mxConstants.FONT_ITALIC)}),this.addAction("underline",function(e){e.graph.isEnabled()&&e.graph.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,mxConstants.FONT_UNDERLINE)}),this.addAction("shadow",function(e){e.graph.isEnabled()&&e.graph.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,mxConstants.FONT_SHADOW)}),this.addAction("alignCellsLeft",function(e){e.graph.isEnabled()&&e.graph.alignCells(mxConstants.ALIGN_LEFT)}),this.addAction("alignCellsCenter",function(e){e.graph.isEnabled()&&e.graph.alignCells(mxConstants.ALIGN_CENTER)}),this.addAction("alignCellsRight",function(e){e.graph.isEnabled()&&e.graph.alignCells(mxConstants.ALIGN_RIGHT)}),this.addAction("alignCellsTop",function(e){e.graph.isEnabled()&&e.graph.alignCells(mxConstants.ALIGN_TOP)}),this.addAction("alignCellsMiddle",function(e){e.graph.isEnabled()&&e.graph.alignCells(mxConstants.ALIGN_MIDDLE)}),this.addAction("alignCellsBottom",function(e){e.graph.isEnabled()&&e.graph.alignCells(mxConstants.ALIGN_BOTTOM)}),this.addAction("alignFontLeft",function(e){e.graph.setCellStyles(mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT)}),this.addAction("alignFontCenter",function(e){e.graph.isEnabled()&&e.graph.setCellStyles(mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER)}),this.addAction("alignFontRight",function(e){e.graph.isEnabled()&&e.graph.setCellStyles(mxConstants.STYLE_ALIGN,mxConstants.ALIGN_RIGHT)}),this.addAction("alignFontTop",function(e){e.graph.isEnabled()&&e.graph.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_TOP)}),this.addAction("alignFontMiddle",function(e){e.graph.isEnabled()&&e.graph.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE)}),this.addAction("alignFontBottom",function(e){e.graph.isEnabled()&&e.graph.setCellStyles(mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_BOTTOM)}),this.addAction("zoom",function(e){var n=100*e.graph.getView().scale;n=parseFloat(mxUtils.prompt(mxResources.get(e.askZoomResource)||e.askZoomResource,n))/100;isNaN(n)||e.graph.getView().setScale(n)}),this.addAction("toggleTasks",function(e){null!=e.tasks?e.tasks.setVisible(!e.tasks.isVisible()):e.showTasks()}),this.addAction("toggleHelp",function(e){null!=e.help?e.help.setVisible(!e.help.isVisible()):e.showHelp()}),this.addAction("toggleOutline",function(e){null==e.outline?e.showOutline():e.outline.setVisible(!e.outline.isVisible())}),this.addAction("toggleConsole",function(e){mxLog.setVisible(!mxLog.isVisible())})},mxEditor.prototype.createSession=function(){var e=mxUtils.bind(this,function(e){this.fireEvent(new mxEventObject(mxEvent.SESSION,"session",e))});return this.connect(this.urlInit,this.urlPoll,this.urlNotify,e)},mxEditor.prototype.configure=function(e){null!=e&&(new mxCodec(e.ownerDocument).decode(e,this),this.resetHistory())},mxEditor.prototype.resetFirstTime=function(){document.cookie="mxgraph=seen; expires=Fri, 27 Jul 2001 02:47:11 UTC; path=/"},mxEditor.prototype.resetHistory=function(){this.lastSnapshot=(new Date).getTime(),this.undoManager.clear(),this.ignoredChanges=0,this.setModified(!1)},mxEditor.prototype.addAction=function(e,n){this.actions[e]=n},mxEditor.prototype.execute=function(n,e,t){var a=this.actions[n];if(null!=a)try{var i=arguments;i[0]=this,a.apply(this,i)}catch(e){throw mxUtils.error("Cannot execute "+n+": "+e.message,280,!0),e}else mxUtils.error("Cannot find action "+n,280,!0)},mxEditor.prototype.addTemplate=function(e,n){this.templates[e]=n},mxEditor.prototype.getTemplate=function(e){return this.templates[e]},mxEditor.prototype.createGraph=function(){var e=new mxGraph(null,null,this.graphRenderHint);return e.setTooltips(!0),e.setPanning(!0),this.installDblClickHandler(e),this.installUndoHandler(e),this.installDrillHandler(e),this.installChangeHandler(e),this.installInsertHandler(e),e.panningHandler.factoryMethod=mxUtils.bind(this,function(e,n,t){return this.createPopupMenu(e,n,t)}),e.connectionHandler.factoryMethod=mxUtils.bind(this,function(e,n){return this.createEdge(e,n)}),this.createSwimlaneManager(e),this.createLayoutManager(e),e},mxEditor.prototype.createSwimlaneManager=function(e){return(e=new mxSwimlaneManager(e,!1)).isHorizontal=mxUtils.bind(this,function(){return this.horizontalFlow}),e.isEnabled=mxUtils.bind(this,function(){return this.maintainSwimlanes}),e},mxEditor.prototype.createLayoutManager=function(a){var e=new mxLayoutManager(a),i=this;return e.getLayout=function(e){var n=null,t=i.graph.getModel();return null!=t.getParent(e)&&(i.layoutSwimlanes&&a.isSwimlane(e)?(null==i.swimlaneLayout&&(i.swimlaneLayout=i.createSwimlaneLayout()),n=i.swimlaneLayout):i.layoutDiagram&&(a.isValidRoot(e)||null==t.getParent(t.getParent(e)))&&(null==i.diagramLayout&&(i.diagramLayout=i.createDiagramLayout()),n=i.diagramLayout)),n},e},mxEditor.prototype.setGraphContainer=function(e){null==this.graph.container&&(this.graph.init(e),this.rubberband=new mxRubberband(this.graph),this.disableContextMenu&&mxEvent.disableContextMenu(e),mxClient.IS_QUIRKS&&new mxDivResizer(e))},mxEditor.prototype.installDblClickHandler=function(a){a.addListener(mxEvent.DOUBLE_CLICK,mxUtils.bind(this,function(e,n){var t=n.getProperty("cell");null!=t&&a.isEnabled()&&null!=this.dblClickAction&&(this.execute(this.dblClickAction,t),n.consume())}))},mxEditor.prototype.installUndoHandler=function(a){var e=mxUtils.bind(this,function(e,n){var t=n.getProperty("edit");this.undoManager.undoableEditHappened(t)});a.getModel().addListener(mxEvent.UNDO,e),a.getView().addListener(mxEvent.UNDO,e),e=function(e,n){var t=n.getProperty("edit").changes;a.setSelectionCells(a.getSelectionCellsForChanges(t))},this.undoManager.addListener(mxEvent.UNDO,e),this.undoManager.addListener(mxEvent.REDO,e)},mxEditor.prototype.installDrillHandler=function(e){var n=mxUtils.bind(this,function(e){this.fireEvent(new mxEventObject(mxEvent.ROOT))});e.getView().addListener(mxEvent.DOWN,n),e.getView().addListener(mxEvent.UP,n)},mxEditor.prototype.installChangeHandler=function(s){var e=mxUtils.bind(this,function(e,n){this.setModified(!0),1==this.validating&&s.validateGraph();for(var t=n.getProperty("edit").changes,a=0;a<t.length;a++){var i=t[a];if(i instanceof mxRootChange||i instanceof mxValueChange&&i.cell==this.graph.model.root||i instanceof mxCellAttributeChange&&i.cell==this.graph.model.root){this.fireEvent(new mxEventObject(mxEvent.ROOT));break}}});s.getModel().addListener(mxEvent.CHANGE,e)},mxEditor.prototype.installInsertHandler=function(e){var t=this;e.addMouseListener({mouseDown:function(e,n){null==t.insertFunction||n.isPopupTrigger()||!t.forcedInserting&&null!=n.getState()||(t.graph.clearSelection(),t.insertFunction(n.getEvent(),n.getCell()),this.isActive=!0,n.consume())},mouseMove:function(e,n){this.isActive&&n.consume()},mouseUp:function(e,n){this.isActive&&(this.isActive=!1,n.consume())}})},mxEditor.prototype.createDiagramLayout=function(){var e=this.graph.gridSize,n=new mxStackLayout(this.graph,!this.horizontalFlow,this.swimlaneSpacing,2*e,2*e);return n.isVertexIgnored=function(e){return!n.graph.isSwimlane(e)},n},mxEditor.prototype.createSwimlaneLayout=function(){return new mxCompactTreeLayout(this.graph,this.horizontalFlow)},mxEditor.prototype.createToolbar=function(){return new mxDefaultToolbar(null,this)},mxEditor.prototype.setToolbarContainer=function(e){this.toolbar.init(e),mxClient.IS_QUIRKS&&new mxDivResizer(e)},mxEditor.prototype.setStatusContainer=function(e){null==this.status&&(this.status=e,this.addListener(mxEvent.SAVE,mxUtils.bind(this,function(){var e=(new Date).toLocaleString();this.setStatus((mxResources.get(this.lastSavedResource)||this.lastSavedResource)+": "+e)})),this.addListener(mxEvent.OPEN,mxUtils.bind(this,function(){this.setStatus((mxResources.get(this.currentFileResource)||this.currentFileResource)+": "+this.filename)})),mxClient.IS_QUIRKS&&new mxDivResizer(e))},mxEditor.prototype.setStatus=function(e){null!=this.status&&null!=e&&(this.status.innerHTML=e)},mxEditor.prototype.setTitleContainer=function(n){this.addListener(mxEvent.ROOT,mxUtils.bind(this,function(e){n.innerHTML=this.getTitle()})),mxClient.IS_QUIRKS&&new mxDivResizer(n)},mxEditor.prototype.treeLayout=function(e,n){null!=e&&new mxCompactTreeLayout(this.graph,n).execute(e)},mxEditor.prototype.getTitle=function(){for(var e="",n=this.graph,t=n.getCurrentRoot();null!=t&&null!=n.getModel().getParent(n.getModel().getParent(t));)n.isValidRoot(t)&&(e=" > "+n.convertValueToString(t)+e),t=n.getModel().getParent(t);return this.getRootTitle()+e},mxEditor.prototype.getRootTitle=function(){var e=this.graph.getModel().getRoot();return this.graph.convertValueToString(e)},mxEditor.prototype.undo=function(){this.undoManager.undo()},mxEditor.prototype.redo=function(){this.undoManager.redo()},mxEditor.prototype.groupCells=function(){var e=null!=this.groupBorderSize?this.groupBorderSize:this.graph.gridSize;return this.graph.groupCells(this.createGroup(),e)},mxEditor.prototype.createGroup=function(){return this.graph.getModel().cloneCell(this.defaultGroup)},mxEditor.prototype.open=function(e){if(null!=e){var n=mxUtils.load(e).getXml();this.readGraphModel(n.documentElement),this.filename=e,this.fireEvent(new mxEventObject(mxEvent.OPEN,"filename",e))}},mxEditor.prototype.readGraphModel=function(e){new mxCodec(e.ownerDocument).decode(e,this.graph.getModel()),this.resetHistory()},mxEditor.prototype.save=function(e,n){if(null!=(e=e||this.getUrlPost())&&0<e.length){var t=this.writeGraphModel(n);this.postDiagram(e,t),this.setModified(!1)}this.fireEvent(new mxEventObject(mxEvent.SAVE,"url",e))},mxEditor.prototype.postDiagram=function(n,t){this.escapePostData&&(t=encodeURIComponent(t)),mxUtils.post(n,this.postParameterName+"="+t,mxUtils.bind(this,function(e){this.fireEvent(new mxEventObject(mxEvent.POST,"request",e,"url",n,"data",t))}))},mxEditor.prototype.writeGraphModel=function(e){e=null!=e?e:this.linefeed;var n=(new mxCodec).encode(this.graph.getModel());return mxUtils.getXml(n,e)},mxEditor.prototype.getUrlPost=function(){return this.urlPost},mxEditor.prototype.getUrlImage=function(){return this.urlImage},mxEditor.prototype.connect=function(e,n,t,a){var i=null;return mxClient.IS_LOCAL||((i=new mxSession(this.graph.getModel(),e,n,t)).addListener(mxEvent.RECEIVE,mxUtils.bind(this,function(e,n){null!=n.getProperty("node").getAttribute("namespace")&&this.resetHistory()})),i.addListener(mxEvent.DISCONNECT,a),i.addListener(mxEvent.CONNECT,a),i.addListener(mxEvent.NOTIFY,a),i.addListener(mxEvent.GET,a),i.start()),i},mxEditor.prototype.swapStyles=function(e,n){var t=this.graph.getStylesheet().styles[n];this.graph.getView().getStylesheet().putCellStyle(n,this.graph.getStylesheet().styles[e]),this.graph.getStylesheet().putCellStyle(e,t),this.graph.refresh()},mxEditor.prototype.showProperties=function(e){if(null==(e=e||this.graph.getSelectionCell())&&(null==(e=this.graph.getCurrentRoot())&&(e=this.graph.getModel().getRoot())),null!=e){this.graph.stopEditing(!0);var n=(t=mxUtils.getOffset(this.graph.container)).x+10,t=t.y;if(null==this.properties||this.movePropertiesDialog){var a=this.graph.getCellBounds(e);null!=a&&(n+=a.x+Math.min(200,a.width),t+=a.y)}else n=this.properties.getX(),t=this.properties.getY();this.hideProperties(),null!=(e=this.createProperties(e))&&(this.properties=new mxWindow(mxResources.get(this.propertiesResource)||this.propertiesResource,e,n,t,this.propertiesWidth,this.propertiesHeight,!1),this.properties.setVisible(!0))}},mxEditor.prototype.isPropertiesVisible=function(){return null!=this.properties},mxEditor.prototype.createProperties=function(t){var a=this.graph.getModel(),e=a.getValue(t);if(mxUtils.isNode(e)){var n=new mxForm("properties");n.addText("ID",t.getId()).setAttribute("readonly","true");var i=null,s=null,o=null,r=null,l=null;a.isVertex(t)&&(null!=(i=a.getGeometry(t))&&(s=n.addText("top",i.y),o=n.addText("left",i.x),r=n.addText("width",i.width),l=n.addText("height",i.height)));var d=a.getStyle(t),c=n.addText("Style",d||""),m=e.attributes,u=[];for(e=0;e<m.length;e++)u[e]=n.addTextarea(m[e].nodeName,m[e].nodeValue,"label"==m[e].nodeName?4:2);return e=mxUtils.bind(this,function(){this.hideProperties(),a.beginUpdate();try{null!=i&&((i=i.clone()).x=parseFloat(o.value),i.y=parseFloat(s.value),i.width=parseFloat(r.value),i.height=parseFloat(l.value),a.setGeometry(t,i)),0<c.value.length?a.setStyle(t,c.value):a.setStyle(t,null);for(var e=0;e<m.length;e++){var n=new mxCellAttributeChange(t,m[e].nodeName,u[e].value);a.execute(n)}this.graph.isAutoSizeCell(t)&&this.graph.updateCellSize(t)}finally{a.endUpdate()}}),d=mxUtils.bind(this,function(){this.hideProperties()}),n.addButtons(e,d),n.table}return null},mxEditor.prototype.hideProperties=function(){null!=this.properties&&(this.properties.destroy(),this.properties=null)},mxEditor.prototype.showTasks=function(){if(null==this.tasks){var n=document.createElement("div");n.style.padding="4px",n.style.paddingLeft="20px";var e=document.body.clientWidth;(e=new mxWindow(mxResources.get(this.tasksResource)||this.tasksResource,n,e-220,this.tasksTop,200)).setClosable(!0),e.destroyOnClose=!1;var t=mxUtils.bind(this,function(e){mxEvent.release(n),n.innerHTML="",this.createTasks(n)});this.graph.getModel().addListener(mxEvent.CHANGE,t),this.graph.getSelectionModel().addListener(mxEvent.CHANGE,t),this.graph.addListener(mxEvent.ROOT,t),null!=this.tasksWindowImage&&e.setImage(this.tasksWindowImage),this.tasks=e,this.createTasks(n)}this.tasks.setVisible(!0)},mxEditor.prototype.refreshTasks=function(e){null!=this.tasks&&(e=this.tasks.content,mxEvent.release(e),e.innerHTML="",this.createTasks(e))},mxEditor.prototype.createTasks=function(e){},mxEditor.prototype.showHelp=function(e){if(null==this.help){var n=document.createElement("iframe");n.setAttribute("src",mxResources.get("urlHelp")||this.urlHelp),n.setAttribute("height","100%"),n.setAttribute("width","100%"),n.setAttribute("frameBorder","0"),n.style.backgroundColor="white",e=document.body.clientWidth;var t=document.body.clientHeight||document.documentElement.clientHeight,a=new mxWindow(mxResources.get(this.helpResource)||this.helpResource,n,(e-this.helpWidth)/2,(t-this.helpHeight)/3,this.helpWidth,this.helpHeight);a.setMaximizable(!0),a.setClosable(!0),a.destroyOnClose=!1,a.setResizable(!0),null!=this.helpWindowImage&&a.setImage(this.helpWindowImage),mxClient.IS_NS&&(e=function(e){n.setAttribute("height",a.div.offsetHeight-26+"px")},a.addListener(mxEvent.RESIZE_END,e),a.addListener(mxEvent.MAXIMIZE,e),a.addListener(mxEvent.NORMALIZE,e),a.addListener(mxEvent.SHOW,e)),this.help=a}this.help.setVisible(!0)},mxEditor.prototype.showOutline=function(){if(null==this.outline){var e=document.createElement("div");e.style.overflow="hidden",e.style.width="100%",e.style.height="100%",e.style.background="white",e.style.cursor="move";var n=new mxWindow(mxResources.get(this.outlineResource)||this.outlineResource,e,600,480,200,200,!1),t=new mxOutline(this.graph,e);n.setClosable(!0),n.setResizable(!0),n.destroyOnClose=!1,n.addListener(mxEvent.RESIZE_END,function(){t.update()}),this.outline=n,this.outline.outline=t}this.outline.setVisible(!0),this.outline.outline.update(!0)},mxEditor.prototype.setMode=function(e){"select"==e?(this.graph.panningHandler.useLeftButtonForPanning=!1,this.graph.setConnectable(!1)):"connect"==e?(this.graph.panningHandler.useLeftButtonForPanning=!1,this.graph.setConnectable(!0)):"pan"==e&&(this.graph.panningHandler.useLeftButtonForPanning=!0,this.graph.setConnectable(!1))},mxEditor.prototype.createPopupMenu=function(e,n,t){this.popupHandler.createMenu(this,e,n,t)},mxEditor.prototype.createEdge=function(e,n){var t=null;if(null!=this.defaultEdge)t=this.graph.getModel().cloneCell(this.defaultEdge);else{(t=new mxCell("")).setEdge(!0);var a=new mxGeometry;a.relative=!0,t.setGeometry(a)}return null!=(a=this.getEdgeStyle())&&t.setStyle(a),t},mxEditor.prototype.getEdgeStyle=function(){return this.defaultEdgeStyle},mxEditor.prototype.consumeCycleAttribute=function(e){return null!=this.cycleAttributeValues&&0<this.cycleAttributeValues.length&&this.graph.isSwimlane(e)?this.cycleAttributeValues[this.cycleAttributeIndex++%this.cycleAttributeValues.length]:null},mxEditor.prototype.cycleAttribute=function(e){if(null!=this.cycleAttributeName){var n=this.consumeCycleAttribute(e);null!=n&&e.setStyle(e.getStyle()+";"+this.cycleAttributeName+"="+n)}},mxEditor.prototype.addVertex=function(e,n,t,a){for(var i=this.graph.getModel();null!=e&&!this.graph.isValidDropTarget(e);)e=i.getParent(e);e=null!=e?e:this.graph.getSwimlaneAt(t,a);var s=this.graph.getView().scale,o=i.getGeometry(n),r=i.getGeometry(e);if(this.graph.isSwimlane(n)&&!this.graph.swimlaneNesting)e=null;else{if(null==e&&this.swimlaneRequired)return null;if(null!=e&&null!=r){var l=this.graph.getView().getState(e);if(null!=l){if(t-=l.origin.x*s,a-=l.origin.y*s,this.graph.isConstrainedMoving){r=o.width;var d=o.height,c=l.x+l.width;c<t+r&&(t-=t+r-c),(c=l.y+l.height)<a+d&&(a-=a+d-c)}}else null!=r&&(t-=r.x*s,a-=r.y*s)}}(o=o.clone()).x=this.graph.snap(t/s-this.graph.getView().translate.x-this.graph.gridSize/2),o.y=this.graph.snap(a/s-this.graph.getView().translate.y-this.graph.gridSize/2),n.setGeometry(o),null==e&&(e=this.graph.getDefaultParent()),this.cycleAttribute(n),this.fireEvent(new mxEventObject(mxEvent.BEFORE_ADD_VERTEX,"vertex",n,"parent",e)),i.beginUpdate();try{null!=(n=this.graph.addCell(n,e))&&(this.graph.constrainChild(n),this.fireEvent(new mxEventObject(mxEvent.ADD_VERTEX,"vertex",n)))}finally{i.endUpdate()}return null!=n&&(this.graph.setSelectionCell(n),this.graph.scrollCellToVisible(n),this.fireEvent(new mxEventObject(mxEvent.AFTER_ADD_VERTEX,"vertex",n))),n},mxEditor.prototype.destroy=function(){this.destroyed||(this.destroyed=!0,null!=this.tasks&&this.tasks.destroy(),null!=this.outline&&this.outline.destroy(),null!=this.properties&&this.properties.destroy(),null!=this.keyHandler&&this.keyHandler.destroy(),null!=this.rubberband&&this.rubberband.destroy(),null!=this.toolbar&&this.toolbar.destroy(),null!=this.graph&&this.graph.destroy(),this.templates=this.status=null)};var mxCodecRegistry={codecs:[],aliases:[],register:function(e){if(null!=e){var n=e.getName();mxCodecRegistry.codecs[n]=e;var t=mxUtils.getFunctionName(e.template.constructor);t!=n&&mxCodecRegistry.addAlias(t,n)}return e},addAlias:function(e,n){mxCodecRegistry.aliases[e]=n},getCodec:function(e){var n=null;if(null!=e){n=mxUtils.getFunctionName(e);var t=mxCodecRegistry.aliases[n];if(null!=t&&(n=t),null==(n=mxCodecRegistry.codecs[n]))try{n=new mxObjectCodec(new e),mxCodecRegistry.register(n)}catch(e){}}return n}};function mxCodec(e){this.document=e||mxUtils.createXmlDocument(),this.objects=[]}function mxObjectCodec(e,n,t,a){for(var i in this.template=e,this.exclude=null!=n?n:[],this.idrefs=null!=t?t:[],this.mapping=null!=a?a:[],this.reverse={},this.mapping)this.reverse[this.mapping[i]]=i}mxCodec.prototype.document=null,mxCodec.prototype.objects=null,mxCodec.prototype.encodeDefaults=!1,mxCodec.prototype.putObject=function(e,n){return this.objects[e]=n},mxCodec.prototype.getObject=function(e){var n=null;return null!=e&&(null==(n=this.objects[e])&&(null==(n=this.lookup(e))&&(null!=(e=this.getElementById(e))&&(n=this.decode(e))))),n},mxCodec.prototype.lookup=function(e){return null},mxCodec.prototype.getElementById=function(e,n){return mxUtils.findNodeByAttribute(this.document.documentElement,null!=n?n:"id",e)},mxCodec.prototype.getId=function(e){var n=null;return null!=e&&(null==(n=this.reference(e))&&e instanceof mxCell&&(null==(n=e.getId())&&(0==(n=mxCellPath.create(e)).length&&(n="root")))),n},mxCodec.prototype.reference=function(e){return null},mxCodec.prototype.encode=function(e){var n=null;if(null!=e&&null!=e.constructor){var t=mxCodecRegistry.getCodec(e.constructor);null!=t?n=t.encode(this,e):mxUtils.isNode(e)?n=mxClient.IS_IE?e.cloneNode(!0):this.document.importNode(e,!0):mxLog.warn("mxCodec.encode: No codec for "+mxUtils.getFunctionName(e.constructor))}return n},mxCodec.prototype.decode=function(a,b){var c=null;if(null!=a&&a.nodeType==mxConstants.NODETYPE_ELEMENT){var d=null;try{d=eval(a.nodeName)}catch(e){}try{var f=mxCodecRegistry.getCodec(d);null!=f?c=f.decode(this,a,b):(c=a.cloneNode(!0),c.removeAttribute("as"))}catch(e){mxLog.debug("Cannot decode "+a.nodeName+": "+e.message)}}return c},mxCodec.prototype.encodeCell=function(e,n,t){if(n.appendChild(this.encode(e)),null==t||t){t=e.getChildCount();for(var a=0;a<t;a++)this.encodeCell(e.getChildAt(a),n)}},mxCodec.prototype.isCellCodec=function(e){return null!=e&&"function"==typeof e.isCellCodec&&e.isCellCodec()},mxCodec.prototype.decodeCell=function(e,n){n=null==n||n;var t=null;if(null!=e&&e.nodeType==mxConstants.NODETYPE_ELEMENT){if(t=mxCodecRegistry.getCodec(e.nodeName),!this.isCellCodec(t))for(var a=e.firstChild;null!=a&&!this.isCellCodec(t);)t=mxCodecRegistry.getCodec(a.nodeName),a=a.nextSibling;this.isCellCodec(t)||(t=mxCodecRegistry.getCodec(mxCell)),t=t.decode(this,e),n&&this.insertIntoGraph(t)}return t},mxCodec.prototype.insertIntoGraph=function(e){var n=e.parent,t=e.getTerminal(!0),a=e.getTerminal(!1);e.setTerminal(null,!1),e.setTerminal(null,!0),(e.parent=null)!=n&&n.insert(e),null!=t&&t.insertEdge(e,!0),null!=a&&a.insertEdge(e,!1)},mxCodec.prototype.setAttribute=function(e,n,t){null!=n&&null!=t&&e.setAttribute(n,t)},mxObjectCodec.prototype.template=null,mxObjectCodec.prototype.exclude=null,mxObjectCodec.prototype.idrefs=null,mxObjectCodec.prototype.mapping=null,mxObjectCodec.prototype.reverse=null,mxObjectCodec.prototype.getName=function(){return mxUtils.getFunctionName(this.template.constructor)},mxObjectCodec.prototype.cloneTemplate=function(){return new this.template.constructor},mxObjectCodec.prototype.getFieldName=function(e){if(null!=e){var n=this.reverse[e];null!=n&&(e=n)}return e},mxObjectCodec.prototype.getAttributeName=function(e){if(null!=e){var n=this.mapping[e];null!=n&&(e=n)}return e},mxObjectCodec.prototype.isExcluded=function(e,n,t,a){return n==mxObjectIdentity.FIELD_NAME||0<=mxUtils.indexOf(this.exclude,n)},mxObjectCodec.prototype.isReference=function(e,n,t,a){return 0<=mxUtils.indexOf(this.idrefs,n)},mxObjectCodec.prototype.encode=function(e,n){var t=e.document.createElement(this.getName());return n=this.beforeEncode(e,n,t),this.encodeObject(e,n,t),this.afterEncode(e,n,t)},mxObjectCodec.prototype.encodeObject=function(e,n,t){for(var a in e.setAttribute(t,"id",e.getId(n)),n){var i=a,s=n[i];null!=s&&!this.isExcluded(n,i,s,!0)&&(mxUtils.isNumeric(i)&&(i=null),this.encodeValue(e,n,i,s,t))}},mxObjectCodec.prototype.encodeValue=function(e,n,t,a,i){if(null!=a){if(this.isReference(n,t,a,!0)){var s=e.getId(a);if(null==s)return void mxLog.warn("mxObjectCodec.encode: No ID for "+this.getName()+"."+t+"="+a);a=s}s=this.template[t],(null==t||e.encodeDefaults||s!=a)&&(t=this.getAttributeName(t),this.writeAttribute(e,n,t,a,i))}},mxObjectCodec.prototype.writeAttribute=function(e,n,t,a,i){"object"!=typeof a?this.writePrimitiveAttribute(e,n,t,a,i):this.writeComplexAttribute(e,n,t,a,i)},mxObjectCodec.prototype.writePrimitiveAttribute=function(e,n,t,a,i){a=this.convertValueToXml(a),null==t?(n=e.document.createElement("add"),"function"==typeof a?n.appendChild(e.document.createTextNode(a)):e.setAttribute(n,"value",a),i.appendChild(n)):"function"!=typeof a&&e.setAttribute(i,t,a)},mxObjectCodec.prototype.writeComplexAttribute=function(e,n,t,a,i){null!=(e=e.encode(a))?(null!=t&&e.setAttribute("as",t),i.appendChild(e)):mxLog.warn("mxObjectCodec.encode: No node for "+this.getName()+"."+t+": "+a)},mxObjectCodec.prototype.convertValueToXml=function(e){return void 0!==e.length||1!=e&&0!=e||(e=1==e?"1":"0"),e},mxObjectCodec.prototype.convertValueFromXml=function(e){return mxUtils.isNumeric(e)&&(e=parseFloat(e)),e},mxObjectCodec.prototype.beforeEncode=function(e,n,t){return n},mxObjectCodec.prototype.afterEncode=function(e,n,t){return t},mxObjectCodec.prototype.decode=function(e,n,t){var a=n.getAttribute("id"),i=e.objects[a];return null==i&&(i=t||this.cloneTemplate(),null!=a&&e.putObject(a,i)),n=this.beforeDecode(e,n,i),this.decodeNode(e,n,i),this.afterDecode(e,n,i)},mxObjectCodec.prototype.decodeNode=function(e,n,t){null!=n&&(this.decodeAttributes(e,n,t),this.decodeChildren(e,n,t))},mxObjectCodec.prototype.decodeAttributes=function(e,n,t){if(null!=(n=n.attributes))for(var a=0;a<n.length;a++)this.decodeAttribute(e,n[a],t)},mxObjectCodec.prototype.decodeAttribute=function(e,n,t){var a=n.nodeName;if("as"!=a&&"id"!=a){n="value"==a?n.nodeValue:this.convertValueFromXml(n.nodeValue);var i=this.getFieldName(a);if(this.isReference(t,i,n,!1)){if(null==(e=e.getObject(n)))return void mxLog.warn("mxObjectCodec.decode: No object for "+this.getName()+"."+a+"="+n);n=e}this.isExcluded(t,a,n,!1)||(t[a]=n)}},mxObjectCodec.prototype.decodeChildren=function(e,n,t){for(n=n.firstChild;null!=n;){var a=n.nextSibling;n.nodeType==mxConstants.NODETYPE_ELEMENT&&!this.processInclude(e,n,t)&&this.decodeChild(e,n,t),n=a}},mxObjectCodec.prototype.decodeChild=function(e,n,t){var a=this.getFieldName(n.getAttribute("as"));if(null==a||!this.isExcluded(t,a,n,!1)){var i=this.getFieldTemplate(t,a,n),s=null;"add"==n.nodeName?null==(s=n.getAttribute("value"))&&(s=mxUtils.eval(mxUtils.getTextContent(n))):s=e.decode(n,i),this.addObjectValue(t,a,s,i)}},mxObjectCodec.prototype.getFieldTemplate=function(e,n,t){return(e=e[n])instanceof Array&&0<e.length&&(e=null),e},mxObjectCodec.prototype.addObjectValue=function(e,n,t,a){null!=t&&t!=a&&(null!=n&&0<n.length?e[n]=t:e.push(t))},mxObjectCodec.prototype.processInclude=function(e,n,t){if("include"!=n.nodeName)return!1;if(null!=(n=n.getAttribute("name")))try{var a=mxUtils.load(n).getDocumentElement();null!=a&&e.decode(a,t)}catch(e){}return!0},mxObjectCodec.prototype.beforeDecode=function(e,n,t){return n},mxObjectCodec.prototype.afterDecode=function(e,n,t){return t},mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxCell,["children","edges","overlays","mxTransient"],["parent","source","target"]);return e.isCellCodec=function(){return!0},e.isExcluded=function(e,n,t,a){return mxObjectCodec.prototype.isExcluded.apply(this,arguments)||a&&"value"==n&&t.nodeType==mxConstants.NODETYPE_ELEMENT},e.afterEncode=function(e,n,t){if(null!=n.value&&n.value.nodeType==mxConstants.NODETYPE_ELEMENT){var a=t;(t=mxClient.IS_IE?n.value.cloneNode(!0):e.document.importNode(n.value,!0)).appendChild(a),e=a.getAttribute("id"),t.setAttribute("id",e),a.removeAttribute("id")}return t},e.beforeDecode=function(e,n,t){var a=n,i=this.getName();if(n.nodeName!=i?(null!=(a=n.getElementsByTagName(i)[0])&&a.parentNode==n?(mxUtils.removeWhitespace(a,!0),mxUtils.removeWhitespace(a,!1),a.parentNode.removeChild(a)):a=null,t.value=n.cloneNode(!0),null!=(n=t.value.getAttribute("id"))&&(t.setId(n),t.value.removeAttribute("id"))):t.setId(n.getAttribute("id")),null!=a)for(n=0;n<this.idrefs.length;n++){i=this.idrefs[n];var s=a.getAttribute(i);if(null!=s){a.removeAttribute(i);var o=e.objects[s]||e.lookup(s);null==o&&(null!=(s=e.getElementById(s))&&(o=(mxCodecRegistry.codecs[s.nodeName]||this).decode(e,s))),t[i]=o}}return a},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxGraphModel);return e.encodeObject=function(e,n,t){var a=e.document.createElement("root");e.encodeCell(n.getRoot(),a),t.appendChild(a)},e.decodeChild=function(e,n,t){"root"==n.nodeName?this.decodeRoot(e,n,t):mxObjectCodec.prototype.decodeChild.apply(this,arguments)},e.decodeRoot=function(e,n,t){var a=null;for(n=n.firstChild;null!=n;){var i=e.decodeCell(n);null!=i&&null==i.getParent()&&(a=i),n=n.nextSibling}null!=a&&t.setRoot(a)},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxRootChange,["model","previous","root"]);return e.afterEncode=function(e,n,t){return e.encodeCell(n.root,t),t},e.beforeDecode=function(e,n,t){if(null!=n.firstChild&&n.firstChild.nodeType==mxConstants.NODETYPE_ELEMENT){var a=(n=n.cloneNode(!0)).firstChild;for(t.root=e.decodeCell(a,!1),t=a.nextSibling,a.parentNode.removeChild(a),a=t;null!=a;)t=a.nextSibling,e.decodeCell(a),a.parentNode.removeChild(a),a=t}return n},e.afterDecode=function(e,n,t){return t.previous=t.root,t},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxChildChange,["model","child","previousIndex"],["parent","previous"]);return e.isReference=function(e,n,t,a){return!("child"!=n||null==e.previous&&a)||0<=mxUtils.indexOf(this.idrefs,n)},e.afterEncode=function(e,n,t){return this.isReference(n,"child",n.child,!0)?t.setAttribute("child",e.getId(n.child)):e.encodeCell(n.child,t),t},e.beforeDecode=function(e,n,t){if(null!=n.firstChild&&n.firstChild.nodeType==mxConstants.NODETYPE_ELEMENT){var a=(n=n.cloneNode(!0)).firstChild;for(t.child=e.decodeCell(a,!1),t=a.nextSibling,a.parentNode.removeChild(a),a=t;null!=a;){if(t=a.nextSibling,a.nodeType==mxConstants.NODETYPE_ELEMENT){var i=a.getAttribute("id");null==e.lookup(i)&&e.decodeCell(a)}a.parentNode.removeChild(a),a=t}}else a=n.getAttribute("child"),t.child=e.getObject(a);return n},e.afterDecode=function(e,n,t){return t.child.parent=t.previous,t.previous=t.parent,t.previousIndex=t.index,t},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxTerminalChange,["model","previous"],["cell","terminal"]);return e.afterDecode=function(e,n,t){return t.previous=t.terminal,t},e}());var mxGenericChangeCodec=function(e,a){var n=new mxObjectCodec(e,["model","previous"],["cell"]);return n.afterDecode=function(e,n,t){return mxUtils.isNode(t.cell)&&(t.cell=e.decodeCell(t.cell,!1)),t.previous=t[a],t},n};mxCodecRegistry.register(mxGenericChangeCodec(new mxValueChange,"value")),mxCodecRegistry.register(mxGenericChangeCodec(new mxStyleChange,"style")),mxCodecRegistry.register(mxGenericChangeCodec(new mxGeometryChange,"geometry")),mxCodecRegistry.register(mxGenericChangeCodec(new mxCollapseChange,"collapsed")),mxCodecRegistry.register(mxGenericChangeCodec(new mxVisibleChange,"visible")),mxCodecRegistry.register(mxGenericChangeCodec(new mxCellAttributeChange,"value")),mxCodecRegistry.register(new mxObjectCodec(new mxGraph,"graphListeners eventListeners view container cellRenderer editor selection".split(" "))),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxGraphView);return e.encode=function(e,n){return this.encodeCell(e,n,n.graph.getModel().getRoot())},e.encodeCell=function(e,n,t){var a=n.graph.getModel(),i=n.getState(t),s=a.getParent(t);if(null==s||null!=i){var o=a.getChildCount(t),r=n.graph.getCellGeometry(t),l=null;if(s==a.getRoot()?l="layer":null==s?l="graph":a.isEdge(t)?l="edge":0<o&&null!=r?l="group":a.isVertex(t)&&(l="vertex"),null!=l){var d=e.document.createElement(l);if(null!=n.graph.getLabel(t)&&(d.setAttribute("label",n.graph.getLabel(t)),n.graph.isHtmlLabel(t)&&d.setAttribute("html",!0)),null==s){var c=n.getGraphBounds();null!=c&&(d.setAttribute("x",Math.round(c.x)),d.setAttribute("y",Math.round(c.y)),d.setAttribute("width",Math.round(c.width)),d.setAttribute("height",Math.round(c.height))),d.setAttribute("scale",n.scale)}else if(null!=i&&null!=r){for(c in i.style)"function"==typeof(s=i.style[c])&&"object"==typeof s&&(s=mxStyleRegistry.getName(s)),null!=s&&"function"!=typeof s&&"object"!=typeof s&&d.setAttribute(c,s);if(null!=(s=i.absolutePoints)&&0<s.length){for(r=Math.round(s[0].x)+","+Math.round(s[0].y),c=1;c<s.length;c++)r+=" "+Math.round(s[c].x)+","+Math.round(s[c].y);d.setAttribute("points",r)}else d.setAttribute("x",Math.round(i.x)),d.setAttribute("y",Math.round(i.y)),d.setAttribute("width",Math.round(i.width)),d.setAttribute("height",Math.round(i.height));null!=(c=i.absoluteOffset)&&(0!=c.x&&d.setAttribute("dx",Math.round(c.x)),0!=c.y&&d.setAttribute("dy",Math.round(c.y)))}for(c=0;c<o;c++)null!=(i=this.encodeCell(e,n,a.getChildAt(t,c)))&&d.appendChild(i)}}return d},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxStylesheet);return e.encode=function(e,n){var t,a=e.document.createElement(this.getName());for(t in n.styles){var i=n.styles[t],s=e.document.createElement("add");if(null!=t){for(var o in s.setAttribute("as",t),i){var r=this.getStringValue(o,i[o]);if(null!=r){var l=e.document.createElement("add");l.setAttribute("value",r),l.setAttribute("as",o),s.appendChild(l)}}0<s.childNodes.length&&a.appendChild(s)}}return a},e.getStringValue=function(e,n){var t=typeof n;return"function"==t?n=mxStyleRegistry.getName(style[j]):"object"==t&&(n=null),n},e.decode=function(e,n,t){t=t||new this.template.constructor;var a=n.getAttribute("id");for(null!=a&&(e.objects[a]=t),n=n.firstChild;null!=n;){if(!this.processInclude(e,n,t)&&"add"==n.nodeName&&null!=(a=n.getAttribute("as"))){var i=n.getAttribute("extend"),s=null!=i?mxUtils.clone(t.styles[i]):null;for(null==s&&(null!=i&&mxLog.warn("mxStylesheetCodec.decode: stylesheet "+i+" not found to extend"),s={}),i=n.firstChild;null!=i;){if(i.nodeType==mxConstants.NODETYPE_ELEMENT){var o=i.getAttribute("as");if("add"==i.nodeName){var r=mxUtils.getTextContent(i),l=null;null!=r&&0<r.length?l=mxUtils.eval(r):(l=i.getAttribute("value"),mxUtils.isNumeric(l)&&(l=parseFloat(l))),null!=l&&(s[o]=l)}else"remove"==i.nodeName&&delete s[o]}i=i.nextSibling}t.putCellStyle(a,s)}n=n.nextSibling}return t},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxDefaultKeyHandler);return e.encode=function(e,n){return null},e.decode=function(e,n,t){if(null!=t)for(n=n.firstChild;null!=n;){if(!this.processInclude(e,n,t)&&"add"==n.nodeName){var a=n.getAttribute("as"),i=n.getAttribute("action"),s=n.getAttribute("control");t.bindAction(a,i,s)}n=n.nextSibling}return t},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxDefaultToolbar);return e.encode=function(e,n){return null},e.decode=function(e,n,t){if(null!=t){var a=t.editor;for(n=n.firstChild;null!=n;){if(n.nodeType==mxConstants.NODETYPE_ELEMENT&&!this.processInclude(e,n,t))if("separator"==n.nodeName)t.addSeparator();else if("br"==n.nodeName)t.toolbar.addBreak();else if("hr"==n.nodeName)t.toolbar.addLine();else if("add"==n.nodeName){var i=n.getAttribute("as"),s=(i=mxResources.get(i)||i,n.getAttribute("icon")),o=n.getAttribute("pressedIcon"),r=n.getAttribute("action"),l=n.getAttribute("mode"),d=n.getAttribute("template"),c="0"!=n.getAttribute("toggle"),m=mxUtils.getTextContent(n),u=null;if(null!=r)u=t.addItem(i,s,r,o);else if(null!=l){var p=mxUtils.eval(m);u=t.addMode(i,s,l,o,p)}else if(null!=d||null!=m&&0<m.length)u=a.templates[d],d=n.getAttribute("style"),null!=u&&null!=d&&(u=u.clone()).setStyle(d),(d=null)!=m&&0<m.length&&(d=mxUtils.eval(m)),u=t.addPrototype(i,s,u,o,d,c);else if(0<(o=mxUtils.getChildNodes(n)).length)if(null==s)for(d=t.addActionCombo(i),i=0;i<o.length;i++)"separator"==(c=o[i]).nodeName?t.addOption(d,"---"):"add"==c.nodeName&&(s=c.getAttribute("as"),c=c.getAttribute("action"),t.addActionOption(d,s,c));else{var g=null,v=t.addPrototype(i,s,function(){if(null==(e=a.templates[g.value]))return mxLog.warn("Template "+e+" not found"),null;var e=e.clone(),n=g.options[g.selectedIndex].cellStyle;return null!=n&&e.setStyle(n),e},null,null,c);g=t.addCombo();for(mxEvent.addListener(g,"change",function(){t.toolbar.selectMode(v,function(e){return e=mxUtils.convertPoint(a.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e)),a.addVertex(null,p(),e.x,e.y)}),t.toolbar.noReset=!1}),i=0;i<o.length;i++)"separator"==(c=o[i]).nodeName?t.addOption(g,"---"):"add"==c.nodeName&&(s=c.getAttribute("as"),m=c.getAttribute("template"),t.addOption(g,s,m||d).cellStyle=c.getAttribute("style"))}null!=u&&(null!=(d=n.getAttribute("id"))&&0<d.length&&u.setAttribute("id",d))}n=n.nextSibling}}return t},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxDefaultPopupMenu);return e.encode=function(e,n){return null},e.decode=function(e,n,t){var a=n.getElementsByTagName("include")[0];return null!=a?this.processInclude(e,a,t):null!=t&&(t.config=n),t},e}()),mxCodecRegistry.register(function(){var e=new mxObjectCodec(new mxEditor,"modified lastSnapshot ignoredChanges undoManager graphContainer toolbarContainer".split(" "));return e.afterDecode=function(e,n,t){return null!=(e=n.getAttribute("defaultEdge"))&&(n.removeAttribute("defaultEdge"),t.defaultEdge=t.templates[e]),null!=(e=n.getAttribute("defaultGroup"))&&(n.removeAttribute("defaultGroup"),t.defaultGroup=t.templates[e]),t},e.decodeChild=function(e,n,t){if("Array"==n.nodeName){if("templates"==n.getAttribute("as"))return void this.decodeTemplates(e,n,t)}else if("ui"==n.nodeName)return void this.decodeUi(e,n,t);mxObjectCodec.prototype.decodeChild.apply(this,arguments)},e.decodeUi=function(e,n,t){for(e=n.firstChild;null!=e;){if("add"==e.nodeName){n=e.getAttribute("as");var a=e.getAttribute("element"),i=e.getAttribute("style"),s=null;if(null!=a)null!=(s=document.getElementById(a))&&null!=i&&(s.style.cssText+=";"+i);else{a=parseInt(e.getAttribute("x"));var o=parseInt(e.getAttribute("y")),r=e.getAttribute("width"),l=e.getAttribute("height");(s=document.createElement("div")).style.cssText=i,new mxWindow(mxResources.get(n)||n,s,a,o,r,l,!1,!0).setVisible(!0)}"graph"==n?t.setGraphContainer(s):"toolbar"==n?t.setToolbarContainer(s):"title"==n?t.setTitleContainer(s):"status"==n?t.setStatusContainer(s):"map"==n&&t.setMapContainer(s)}else"resource"==e.nodeName?mxResources.add(e.getAttribute("basename")):"stylesheet"==e.nodeName&&mxClient.link("stylesheet",e.getAttribute("name"));e=e.nextSibling}},e.decodeTemplates=function(e,n,t){null==t.templates&&(t.templates=[]),n=mxUtils.getChildNodes(n);for(var a=0;a<n.length;a++){for(var i=n[a].getAttribute("as"),s=n[a].firstChild;null!=s&&1!=s.nodeType;)s=s.nextSibling;null!=s&&(t.templates[i]=e.decodeCell(s))}},e}()),EditorUi=function(e,n,t){this.projectDesignController=e,this.editor=n||new Editor,this.container=t||document.body;var a=n.graph,i=this;CRUD_PERMISSIONS=this.projectDesignController.crudPermissions;var s=mxUtils.bind(this,function(e){return null==e&&(e=window.event),!!this.isEditingEnabled()&&a.isEditing()});this.container.style.overflow="hidden",(new Image).src=mxPopupMenu.prototype.submenuImage,null!=mxConnectionHandler.prototype.connectImage&&((new Image).src=mxConnectionHandler.prototype.connectImage.src),this.actions=new Actions(this),this.menus=new Menus(this),this.createDivs(),this.refresh(),this.createUi(),this.container==document.body&&(this.menubarContainer.onselectstart=s,this.menubarContainer.onmousedown=s,this.toolbarContainer.onselectstart=s,this.toolbarContainer.onmousedown=s,this.diagramContainer.onselectstart=s,this.diagramContainer.onmousedown=s,this.sidebarContainer.onselectstart=s,this.sidebarContainer.onmousedown=s,this.footerContainer.onselectstart=s,this.footerContainer.onmousedown=s),mxClient.IS_IE&&(void 0===document.documentMode||document.documentMode<9)?(mxEvent.addListener(this.diagramContainer,"contextmenu",s),mxEvent.addListener(this.sidebarContainer,"contextmenu",s)):(this.diagramContainer.oncontextmenu=s,this.sidebarContainer.oncontextmenu=s),a.init(this.diagramContainer),a.refresh(),a.setEnabled(this.isEditingEnabled()),a.container.setAttribute("tabindex","0"),a.container.style.cursor="default",a.container.style.backgroundImage="url("+n.gridImage+")",a.container.style.backgroundPosition="-1px -1px",a.container.focus();var o=a.fireMouseEvent;a.fireMouseEvent=function(e,n,t){e==mxEvent.MOUSE_DOWN&&this.container.focus(),o.apply(this,arguments)},this.createMultiplicities(a.multiplicities,["start","finally","end"],[[1,1],[1,1],[0,0]],[[0,0],[0,0],[1,"n"]]),this.createMultiplicities(a.multiplicities,["answer","hangup","dial","ext_dial","queue","voicemail","callback"],[[1,1],[0,0],[0,1],[0,1],[0,1],[1,1],[0,1]],[[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["login","pause","unpause","logout"],[[1,2],[1,2],[1,2],[1,2]],[[1,"n"],[1,"n"],[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["set","math"],[[1,1],[1,1]],[[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["background","playback","menu","saydigits","saynumber","sayphonetic","google_cloud_tts","tts","ispeechtts","awspolly","getdigits","getsecretdigits","lumenvoxtts","sestektts","mrcpsynth"],[[1,"n"],[1,1],[1,"n"],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,"n"],[1,"n"],[1,1],[1,1],[1,1]],[[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["record"],[[1,1]],[[1,"n"]]),this.createMultiplicities(a.multiplicities,["database","ispeechasr","sendSMS","sendMail","sendFax","googleasr","lumenvoxasr","tildeasr","dialogflow","dialogflowV2","awslex","sesteknda","sestekasr","restapi","mrcprecog"],[[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1],[1,1]],[[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["gotoc","gotoif","gotoiftime","vswitch"],[[0,0],[1,2],[1,2],[1,"n"]],[[1,"n"],[1,"n"],[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["queuelog","goal"],[[1,1],[1,1]],[[1,"n"],[1,"n"]]),this.createMultiplicities(a.multiplicities,["noop","system","agi","subproject","custom_app"],[[1,1],[1,1],[0,1],[0,1],[0,1]],[[1,"n"],[1,"n"],[1,"n"],[1,"n"],[1,"n"]]),a.dblClick=function(e,t){var n=new mxEventObject(mxEvent.DOUBLE_CLICK,"event",e,"cell",t);this.fireEvent(n),mxEvent.isConsumed(e)||n.isConsumed()||(this.getModel().isEdge(t)?0<=["background","gotoif","gotoiftime","menu","getdigits","getsecretdigits","vswitch","login","pause","unpause","logout"].indexOf(t.source.value.tagName)&&this.startEditingAtCell(t):this.getModel().isVertex(t)&&i.projectDesignController.openDialog(t.getValue(),function(e){for(var n=0;n<e.length;n+=1)t.setAttribute(e[n].name,e[n].value);a.refresh(t)}),n.consume())},a.panningHandler.autoExpand=!0,a.panningHandler.factoryMethod=mxUtils.bind(this,function(e,n,t){this.isEditingEnabled()&&this.menus.createPopupMenu(e,n,t)}),n.outline.init(this.outlineContainer),mxEvent.addGestureListeners(document,mxUtils.bind(this,function(e){a.panningHandler.hideMenu()})),mxClient.IS_TOUCH&&(mxEvent.addListener(a.container,"gesturechange",mxUtils.bind(this,function(e){a.view.getDrawPane().setAttribute("transform","scale("+e.scale+")"),a.view.getOverlayPane().style.visibility="hidden"})),mxEvent.addListener(a.container,"gestureend",mxUtils.bind(this,function(e){a.view.getDrawPane().removeAttribute("transform"),a.zoomToCenter=!0,a.zoom(e.scale),a.view.getOverlayPane().style.visibility="visible"})));var r=this.isEditingEnabled()?this.createKeyHandler(n):null;this.getKeyHandler=function(){return r},mxEvent.addListener(window,"resize",mxUtils.bind(this,function(){this.refresh(),a.sizeDidChange(),this.editor.outline.update(!1),this.editor.outline.outline.sizeDidChange()})),this.init(),this.open(),this.refresh()},EditorUi.prototype.splitSize=mxClient.IS_TOUCH?16:8,EditorUi.prototype.menubarHeight=33,EditorUi.prototype.toolbarHeight=36,EditorUi.prototype.footerHeight=0,EditorUi.prototype.hsplitPosition=204,EditorUi.prototype.vsplitPosition=190,EditorUi.prototype.init=function(){this.addUndoListener(),this.addSelectionListener();var e=this.actions.get("paste"),n=function(){e.setEnabled(!mxClipboard.isEmpty())},t=mxClipboard.cut;mxClipboard.cut=function(){t.apply(this,arguments),n()};var a=mxClipboard.copy;mxClipboard.copy=function(){a.apply(this,arguments),n()}},EditorUi.prototype.isEditingEnabled=function(){return!!CRUD_PERMISSIONS.canEdit},EditorUi.prototype.exportXML=function(e){var n=window.document.createElement("a");n.href="data:attachment/text;charset=utf-8,"+encodeURIComponent(e),n.download=this.editor.filename+".xml",n.target="_self",n.click()},EditorUi.prototype.open=function(){try{null!=window.opener&&null!=window.opener.openFile&&window.opener.openFile.setConsumer(mxUtils.bind(this,function(e,n){try{var t=mxUtils.parseXml(e);this.editor.setGraphXml(t.documentElement),this.editor.modified=!1,this.editor.undoManager.clear(),null!=n&&(this.editor.filename=n)}catch(e){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+e.message)}}))}catch(e){}},EditorUi.prototype.openString=function(e,n,t){try{var a=mxUtils.parseXml(e);this.editor.setGraphXml(a.documentElement),this.editor.modified=!1,this.editor.undoManager.clear(),null!=n&&(this.editor.filename=n),null!=t&&(this.editor.data=t)}catch(e){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+e.message)}},EditorUi.prototype.validate=function(e,n){for(var t=this.editor.graph,a=(e=null!=e?e:t.model.getRoot(),n=null!=n?n:{},!0),i=t.model.getChildCount(e),s=0;s<i;s++){var o=t.model.getChildAt(e,s),r=n;t.isValidRoot(o)&&(r={}),null!=(r=this.validate(o,r))?t.setCellWarning(o,r.replace(/\n/g,"<br>")):t.setCellWarning(o,null),a=a&&null==r}if(i="",t.model.isVertex(e))switch(e.value.nodeName){case"start":i=this.validateBlock("start")?"":"Only one Start block is allowed\n";break;case"finally":i=this.validateBlock("finally")?"":"Only one Finally block is allowed\n";break;case"playback":i=0<e.value.getAttribute("file_id")?"":mxResources.get("noAudioSelected")+"\n";break;case"answer":i=0<=e.value.getAttribute("timeout")?"":mxResources.get("invalidTimeout")+"\n";break;case"menu":i=0<e.value.getAttribute("file_id")?"":mxResources.get("noAudioSelected")+"\n",i+=0<e.value.getAttribute("digit")?"":mxResources.get("wrongMaxDigit")+"\n",i+=0<=e.value.getAttribute("response")?"":mxResources.get("invalidTimeout")+"\n",i+=0<=e.value.getAttribute("retry")?"":mxResources.get("invalidRetry")+"\n";break;case"getdigits":i=0<e.value.getAttribute("file_id")?"":mxResources.get("noAudioSelected")+"\n",i+=0<e.value.getAttribute("variable_id")?"":mxResources.get("noVariableSelected")+"\n",i+=0<e.value.getAttribute("mindigit")?"":mxResources.get("wrongMinDigit")+"\n",i+=0<e.value.getAttribute("maxdigit")?"":mxResources.get("wrongMaxDigit")+"\n",i+=0<=e.value.getAttribute("retry")?"":mxResources.get("invalidRetry")+"\n";break;case"getsecretdigits":i=0<e.value.getAttribute("file_id")?"":mxResources.get("noAudioSelected")+"\n",i+=0<e.value.getAttribute("variable_id")?"":mxResources.get("noVariableSelected")+"\n",i+=0<e.value.getAttribute("mindigit")?"":mxResources.get("wrongMinDigit")+"\n",i+=0<e.value.getAttribute("maxdigit")?"":mxResources.get("wrongMaxDigit")+"\n",i+=0<=e.value.getAttribute("hiddendigitsnum")?"":mxResources.get("wrongHiddenDigitsnum")+"\n",i+=0<=e.value.getAttribute("retry")?"":mxResources.get("invalidRetry")+"\n";break;case"vswitch":i=0<e.value.getAttribute("variable_id")?"":mxResources.get("noVariableSelected")+"\n";break;case"database":i=0<e.value.getAttribute("odbc_id")?"":mxResources.get("noDatabaseSelected")+"\n",i+=""!==e.value.getAttribute("query")?"":mxResources.get("missingQuery")+"\n";break;case"set":case"math":i=0<e.value.getAttribute("variable_id")?"":mxResources.get("noVariableSelected")+"\n";break;case"gotoc":i=""!==e.value.getAttribute("context")?"":mxResources.get("noContextSelected")+"\n",i+=""!==e.value.getAttribute("extension")?"":mxResources.get("noExtensionSelected")+"\n",i+=1<=e.value.getAttribute("priority")?"":mxResources.get("invalidPriority")+"\n";break;case"system":case"agi":i=""!==e.value.getAttribute("command")?"":mxResources.get("noCommandSelected")+"\n";break;case"gotoif":i=""!==e.value.getAttribute("condition")?"":mxResources.get("noConditionSelected")+"\n";break;case"saydigits":i=""!==e.value.getAttribute("digits")?"":mxResources.get("noDigitsSelected")+"\n";break;case"saynumber":i=""!==e.value.getAttribute("number")?"":mxResources.get("noNumberSelected")+"\n";break;case"sayphonetic":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n";break;case"record":i=""!==e.value.getAttribute("file")?"":mxResources.get("noFileSelected")+"\n",i+=-1<=e.value.getAttribute("timeout")?"":mxResources.get("invalidTimeout")+"\n";break;case"goal":i=""!==e.value.getAttribute("goalname")?"":mxResources.get("noGoalSelected")+"\n";break;case"ext_dial":i="-1"!==e.value.getAttribute("trunk_name")?"":mxResources.get("noTrunkSelected")+"\n",i+=""!==e.value.getAttribute("phone")?"":mxResources.get("noIdentifierSelected")+"\n",i+=0<=e.value.getAttribute("timeout")?"":mxResources.get("invalidTimeout")+"\n";break;case"dial":i=0<e.value.getAttribute("sip_id")?"":mxResources.get("noIdentifierSelected")+"\n",i+=0<=e.value.getAttribute("timeout")?"":mxResources.get("invalidTimeout")+"\n";break;case"queue":i="-1"!==e.value.getAttribute("queue_id")?"":mxResources.get("noQueueSelected")+"\n",i+=0<=e.value.getAttribute("timeout")?"":mxResources.get("invalidTimeout")+"\n";break;case"callback":i="-1"!==e.value.getAttribute("list_id")?"":mxResources.get("noListSelected")+"\n",i+=""!==e.value.getAttribute("name")?"":mxResources.get("noFirstNameSelected")+"\n",i+=""!==e.value.getAttribute("phone")?"":mxResources.get("noPhoneSelected")+"\n",i+=""!==e.value.getAttribute("delay")?"":mxResources.get("invalidDelay")+"\n";break;case"gotoiftime":i=0<e.value.getAttribute("interval_id")?"":mxResources.get("noIntervalSelected")+"\n";break;case"voicemail":i=""!==e.value.getAttribute("mailbox")?"":mxResources.get("noBoxNumberSelected")+"\n";break;case"subproject":i=0<e.value.getAttribute("project_id")?"":mxResources.get("noProjectSelected")+"\n";break;case"sendSMS":i=0<e.value.getAttribute("sms_account_id")?"":mxResources.get("noAccountSelected")+"\n",i+=""!==e.value.getAttribute("to")?"":mxResources.get("noRecipientSelected")+"\n",i+=""!==e.value.getAttribute("sms_text")?"":mxResources.get("noTextSelected")+"\n";break;case"sendMail":i=0<e.value.getAttribute("account_id")?"":mxResources.get("noAccountSelected")+"\n",i+=""!==e.value.getAttribute("to")?"":mxResources.get("noRecipientSelected")+"\n";break;case"sendFax":i=0<e.value.getAttribute("account_id")?"":mxResources.get("noAccountSelected")+"\n",i+=""!==e.value.getAttribute("to")?"":mxResources.get("noRecipientSelected")+"\n",i+=""!==e.value.getAttribute("attachment_path")?"":mxResources.get("noAttachmentSelected")+"\n";break;case"google_cloud_tts":i=""!==e.value.getAttribute("apiKey")?"":mxResources.get("noApiKeySelected")+"\n",i+=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n";break;case"tts":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n";break;case"awspolly":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n",i+=""!==e.value.getAttribute("aws_access_key_id")?"":mxResources.get("noAccessKeySelected")+"\n",i+=""!==e.value.getAttribute("aws_secret_access_key")?"":mxResources.get("noSecretAccessKeySelected")+"\n";break;case"awslex":i=""!==e.value.getAttribute("aws_bot_name")?"":mxResources.get("noNameSelected")+"\n",i+=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n",i+=""!==e.value.getAttribute("aws_access_key_id")?"":mxResources.get("noAccessKeySelected")+"\n",i+=""!==e.value.getAttribute("aws_secret_access_key")?"":mxResources.get("noSecretAccessKeySelected")+"\n";break;case"ispeechtts":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n",i+=""!==e.value.getAttribute("key")?"":mxResources.get("noKeySelected")+"\n",i+=-10<=e.value.getAttribute("speed")&&e.value.getAttribute("speed")<=10?"":mxResources.get("invalidSpeed")+"\n";break;case"lumenvoxtts":case"sestektts":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n";break;case"lumenvoxasr":case"sestekasr":i=""!==e.value.getAttribute("grammar")?"":mxResources.get("noGrammarSelected")+"\n";break;case"ispeechasr":case"googleasr":i=""!==e.value.getAttribute("key")?"":mxResources.get("noKeySelected")+"\n",i+=-1<=e.value.getAttribute("timeout")?"":mxResources.get("invalidTimeout")+"\n";break;case"tildeasr":i=""!==e.value.getAttribute("appid")?"":mxResources.get("noAppIdInserted")+"\n",i+=""!==e.value.getAttribute("appsecret")?"":mxResources.get("noAppSecretInserted")+"\n",i+=""!==e.value.getAttribute("uri")?"":mxResources.get("noUrlInserted")+"\n";break;case"custom_app":i=""!==e.value.getAttribute("application")?"":mxResources.get("noApplicationSelected")+"\n";break;case"login":case"pause":case"unpause":case"logout":i=""!==e.value.getAttribute("findBy")?"":mxResources.get("noFindBySelected")+"\n";break;case"sesteknda":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n",i+=""!==e.value.getAttribute("ndauth_url")?"":mxResources.get("noUrlInserted")+"\n",i+=""!==e.value.getAttribute("ndassistant_url")?"":mxResources.get("noUrlInserted")+"\n",i+=""!==e.value.getAttribute("username")?"":mxResources.get("noUsernameSelected")+"\n",i+=""!==e.value.getAttribute("password")?"":mxResources.get("noPasswordSelected")+"\n";break;case"restapi":i=""!==e.value.getAttribute("url")?"":mxResources.get("noUrlSelected")+"\n",i+=""!==e.value.getAttribute("method")?"":mxResources.get("noMethodSelected")+"\n";case"mrcpsynth":i=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n";break;case"mrcprecog":i=""!==e.value.getAttribute("grammar")?"":mxResources.get("noGrammarSelected")+"\n";break;case"dialogflow":i=""!==e.value.getAttribute("key")?"":mxResources.get("noKeySelected")+"\n",i+=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n",i+=""!==e.value.getAttribute("dialogflow_language")?"":mxResources.get("noDialogflowLanguageSelected")+"\n";break;case"dialogflowV2":i=""!==e.value.getAttribute("dialogflowV2_project_id")?"":mxResources.get("noDialogflowProjectSelected")+"\n",i+=""!==e.value.getAttribute("client_email")?"":mxResources.get("noClientEmailSelected")+"\n",i+=""!==e.value.getAttribute("private_key")?"":mxResources.get("noPrivateKeySelected")+"\n",i+=""!==e.value.getAttribute("dialogflowV2_language")?"":mxResources.get("noDialogflowLanguageSelected")+"\n",i+=""!==e.value.getAttribute("text")?"":mxResources.get("noTextSelected")+"\n"}if(t.model.isEdge(e))switch(t.model.getCell(e.source.getId()).value.nodeName){case"background":case"menu":if(void 0!==e.getValue()){var l=/^[0-9]+$|^[-]{1}$|^[i]{1}$|^[t]{1}$|^[*]{1}$|^[#]{1}$/;String(e.getValue()).split(",").forEach(function(e){i+=l.test(e)?"":mxResources.get("numberOrAll")+"\n"})}else i=i+mxResources.get("numberOrAll")+"\n";break;case"getsecretdigits":case"getdigits":if(void 0!==e.getValue())i+=(l=/^(x|i|-)$/).test(String(e.getValue()))?"":mxResources.get("numberOrInvalidOrDefault")+"\n";else i=i+mxResources.get("numberOrInvalidOrDefault")+"\n";break;case"gotoif":case"gotoiftime":if(void 0!==e.getValue())i+=(l=/^(true){1}$|^(false){1}$/).test(String(e.getValue()))?"":mxResources.get("trueOrFalse")+"\n";else i=i+mxResources.get("trueOrFalse")+"\n";break;case"login":case"pause":case"unpause":case"logout":if(void 0!==e.getValue())i+=(l=/^(success){1}$|^(failure){1}$/).test(String(e.getValue()))?"":mxResources.get("successOrFailure")+"\n";else i=i+mxResources.get("successOrFailure")+"\n"}return t.isCellCollapsed(e)&&!a&&(i+=(mxResources.get(t.containsValidationErrorsResource)||t.containsValidationErrorsResource)+"\n"),i=t.model.isEdge(e)?i+(t.getEdgeValidationError(e,t.model.getTerminal(e,!0),t.model.getTerminal(e,!1))||""):i+(t.getCellValidationError(e)||""),null!=(s=t.validateCell(e,n))&&(i+=s),null==t.model.getParent(e)&&t.view.validate(),0<i.length||!a?i:null},EditorUi.prototype.validateBlock=function(n){var t=this.editor.graph,e=t.getDefaultParent(),a=0;return e.children.forEach(function(e){t.model.isVertex(e)&&e.value.nodeName==n&&a++}),!(1<a)},EditorUi.prototype.getUrl=function(e){var n=null!=e?e:window.location.pathname,t=0<n.indexOf("?")?1:0;for(var a in urlParams)n+=0==t?"?":"&",n+=a+"="+urlParams[a],t++;return n},EditorUi.prototype.addUndoListener=function(){var e=this.actions.get("undo"),n=this.actions.get("redo"),t=this.editor.undoManager,a=function(){e.setEnabled(t.canUndo()),n.setEnabled(t.canRedo())};t.addListener(mxEvent.ADD,a),t.addListener(mxEvent.UNDO,a),t.addListener(mxEvent.REDO,a),t.addListener(mxEvent.CLEAR,a),a()},EditorUi.prototype.addSelectionListener=function(){var e=mxUtils.bind(this,function(){var e=this.editor.graph,n=!e.isSelectionEmpty(),t=!1,a=!1,i=e.getSelectionCells();if(null!=i)for(var s=0;s<i.length;s++){var o=i[s];if(e.getModel().isEdge(o)&&(a=!0),e.getModel().isVertex(o)&&(t=!0),a&&t)break}var r=["cut","copy","delete","duplicate","bold","italic","style","underline","toFront","toBack","dashed","rounded","shadow","tilt","autosize"];for(s=0;s<r.length;s++)this.actions.get(r[s]).setEnabled(n);this.actions.get("curved").setEnabled(a),this.actions.get("rotation").setEnabled(t),this.actions.get("wordWrap").setEnabled(t),this.actions.get("group").setEnabled(1<e.getSelectionCount()),this.actions.get("ungroup").setEnabled(1==e.getSelectionCount()&&0<e.getModel().getChildCount(e.getSelectionCell()));var l=t&&1==e.getSelectionCount();this.actions.get("removeFromGroup").setEnabled(l&&e.getModel().isVertex(e.getModel().getParent(e.getSelectionCell())));var d=["fontFamily","fontSize","alignment","position","text","format","arrange","linewidth","spacing"];for(s=0;s<d.length;s++)this.menus.get(d[s]).setEnabled(n);d=["line","lineend","linestart"];for(s=0;s<d.length;s++)this.menus.get(d[s]).setEnabled(a);this.actions.get("setAsDefaultEdge").setEnabled(a),this.menus.get("align").setEnabled(1<e.getSelectionCount()),this.menus.get("direction").setEnabled(t||a&&e.isLoop(e.view.getState(e.getSelectionCell()))),this.menus.get("navigation").setEnabled(e.foldingEnabled&&(null!=e.view.currentRoot||1==e.getSelectionCount()&&e.isValidRoot(e.getSelectionCell()))),this.actions.get("home").setEnabled(null!=e.view.currentRoot),this.actions.get("exitGroup").setEnabled(null!=e.view.currentRoot);var c=1==e.getSelectionCount()&&e.isValidRoot(e.getSelectionCell());this.actions.get("enterGroup").setEnabled(c),this.actions.get("expand").setEnabled(c),this.actions.get("collapse").setEnabled(c),this.actions.get("editLink").setEnabled(1==e.getSelectionCount()),this.actions.get("openLink").setEnabled(1==e.getSelectionCount()&&null!=e.getLinkForCell(e.getSelectionCell()))});this.editor.graph.getSelectionModel().addListener(mxEvent.CHANGE,e),e()},EditorUi.prototype.refresh=function(){var e=mxClient.IS_IE&&(null==document.documentMode||5==document.documentMode),n=this.container.clientWidth+390,t=this.container.clientHeight+190;this.container==document.body&&(n=document.body.clientWidth||document.documentElement.clientWidth,t=e&&document.body.clientHeight||document.documentElement.clientHeight);var a=Math.max(0,Math.min(this.hsplitPosition,n-this.splitSize-20)),i=Math.max(0,Math.min(this.vsplitPosition,t-this.menubarHeight-this.toolbarHeight-this.splitSize-1));this.menubarContainer.style.height=this.menubarHeight+"px",this.toolbarContainer.style.top=this.menubarHeight+"px",this.toolbarContainer.style.height=this.toolbarHeight+"px";var s=this.menubarHeight+this.toolbarHeight;if(mxClient.IS_QUIRKS||(s+=1),this.sidebarContainer.style.top=s+"px",this.sidebarContainer.style.width=a+"px",this.outlineContainer.style.width=a+"px",this.outlineContainer.style.height=i+"px",this.diagramContainer.style.left=this.isEditingEnabled()?a+this.splitSize+"px":"0px",this.diagramContainer.style.top=this.sidebarContainer.style.top,this.hsplit.style.top=this.sidebarContainer.style.top,this.hsplit.style.bottom=this.outlineContainer.style.bottom,this.hsplit.style.left=a+"px",this.vsplit.style.width=this.sidebarContainer.style.width,this.vsplit.style.bottom=i+this.footerHeight+"px",e){this.menubarContainer.style.width=n+"px",this.toolbarContainer.style.width=this.menubarContainer.style.width;var o=t-i-this.splitSize-this.menubarHeight-this.toolbarHeight;this.sidebarContainer.style.height=o+"px",this.diagramContainer.style.width=n-a-this.splitSize+"px";var r=t-this.menubarHeight-this.toolbarHeight;this.diagramContainer.style.height=r+"px",this.hsplit.style.height=r+"px"}else this.sidebarContainer.style.bottom=i+this.splitSize+"px",this.diagramContainer.style.bottom=this.outlineContainer.style.bottom},EditorUi.prototype.createDivs=function(){this.menubarContainer=this.createDiv("geMenubarContainer"),this.toolbarContainer=this.createDiv("geToolbarContainer"),this.sidebarContainer=this.createDiv("geSidebarContainer"),this.outlineContainer=this.createDiv("geOutlineContainer"),this.diagramContainer=this.createDiv("geDiagramContainer"),this.footerContainer=this.createDiv("geFooterContainer"),this.hsplit=this.createDiv("geHsplit"),this.vsplit=this.createDiv("geVsplit"),this.menubarContainer.style.top="0px",this.menubarContainer.style.left="0px",this.menubarContainer.style.right="0px",this.toolbarContainer.style.left="0px",this.toolbarContainer.style.right="0px",this.sidebarContainer.style.left="0px",this.outlineContainer.style.bottom="0px",this.outlineContainer.style.left="0px",this.diagramContainer.style.overflow="scroll",this.diagramContainer.style.right="0px",this.footerContainer.style.left="0px",this.footerContainer.style.right="0px",this.footerContainer.style.bottom="0px",this.vsplit.style.left="0px",this.vsplit.style.height=this.splitSize+"px",this.hsplit.style.width=this.splitSize+"px"},EditorUi.prototype.createUi=function(){this.menubar=this.menus.createMenubar(this.createDiv("geMenubar")),this.menubarContainer.appendChild(this.menubar.container),this.toolbar=this.createToolbar(this.createDiv("geToolbar")),this.toolbarContainer.appendChild(this.toolbar.container),this.sidebar=this.createSidebar(this.sidebarContainer),this.footerContainer.appendChild(this.createFooter()),this.statusContainer=this.createStatusContainer(),this.editor.addListener("statusChanged",mxUtils.bind(this,function(){this.setStatusText(this.editor.getStatus())})),this.setStatusText(this.editor.getStatus()),this.menubar.container.appendChild(this.statusContainer),this.isEditingEnabled()&&(this.container.appendChild(this.sidebarContainer),this.container.appendChild(this.hsplit),this.container.appendChild(this.vsplit)),this.container.appendChild(this.diagramContainer),this.container.appendChild(this.menubarContainer),this.container.appendChild(this.toolbarContainer),this.container.appendChild(this.outlineContainer),this.container.appendChild(this.footerContainer),this.addSplitHandler(this.hsplit,!0,0,mxUtils.bind(this,function(e){this.hsplitPosition=e,this.refresh(),this.editor.graph.sizeDidChange(),this.editor.outline.update(!1),this.editor.outline.outline.sizeDidChange()})),this.addSplitHandler(this.vsplit,!1,this.footerHeight,mxUtils.bind(this,function(e){this.vsplitPosition=e,this.refresh(),this.editor.outline.update(!1),this.editor.outline.outline.sizeDidChange()}))},EditorUi.prototype.createStatusContainer=function(){var e=document.createElement("a");return e.className="geItem geStatus",e},EditorUi.prototype.createStatusContainer=function(){var e=document.createElement("a");return e.className="geItem geStatus",e},EditorUi.prototype.setStatusText=function(e){this.statusContainer.innerHTML=e},EditorUi.prototype.createToolbar=function(e){return new Toolbar(this,e)},EditorUi.prototype.createSidebar=function(e){return new Sidebar(this,e)},EditorUi.prototype.createFooter=function(){return this.createDiv("geFooter")},EditorUi.prototype.createDiv=function(e){var n=document.createElement("div");return n.className=e,n},EditorUi.prototype.createHeader=function(e){return document.createElement(e)},EditorUi.prototype.createForm=function(e){var n=document.createElement("form");return n.className=e,n},EditorUi.prototype.addSplitHandler=function(n,t,a,i){var s=null,o=null;function r(e){if(null!=s){var n=new mxPoint(mxEvent.getClientX(e),mxEvent.getClientY(e));i(Math.max(0,o+(t?n.x-s.x:s.y-n.y)-a)),mxEvent.consume(e)}}function e(e){r(e),o=s=null}mxEvent.addGestureListeners(n,function(e){s=new mxPoint(mxEvent.getClientX(e),mxEvent.getClientY(e)),o=parseInt(t?n.style.left:n.style.bottom),mxEvent.consume(e)}),mxEvent.addListener(document,"mousemove",r),mxEvent.addListener(document,"touchmove",r),mxEvent.addListener(document,"mouseup",e),mxEvent.addListener(document,"touchend",e)},EditorUi.prototype.executeLayout=function(e,n,t){var a=this.editor.graph,i=a.getSelectionCell();n=null!=this.animate?this.animate:n,a.getModel().beginUpdate();try{e.execute(a.getDefaultParent(),i)}catch(e){throw e}finally{if(n&&navigator.userAgent.indexOf("Camino")<0){var s=new mxMorphing(a);s.addListener(mxEvent.DONE,mxUtils.bind(this,function(){a.getModel().endUpdate()})),s.startAnimation()}else a.getModel().endUpdate()}},EditorUi.prototype.createKeyHandler=function(e){var a=this.editor.graph,o=new mxKeyHandler(a);function n(e){if(!a.isSelectionEmpty()){var n=0,t=0;37==e?n=-1:38==e?t=-1:39==e?n=1:40==e&&(t=1),a.moveCells(a.getSelectionCells(),n,t),a.scrollCellToVisible(a.getSelectionCell())}}o.isControlDown=function(e){return mxEvent.isControlDown(e)||mxClient.IS_MAC&&e.metaKey};var t=mxUtils.bind(this,function(e,n,t,a){var i=this.actions.get(t);if(null!=i){var s=function(){i.enabled&&i.funct()};n?a?o.bindControlShiftKey(e,s):o.bindControlKey(e,s):a?o.bindShiftKey(e,s):o.bindKey(e,s)}});return o.enter=function(){},o.bindKey(8,function(){a.foldCells(!0)}),o.bindKey(13,function(){a.foldCells(!1)}),o.bindKey(33,function(){a.exitGroup()}),o.bindKey(34,function(){a.enterGroup()}),o.bindKey(36,function(){a.home()}),o.bindKey(35,function(){a.refresh()}),o.bindKey(37,function(){n(37)}),o.bindKey(38,function(){n(38)}),o.bindKey(39,function(){n(39)}),o.bindKey(40,function(){n(40)}),o.bindKey(113,function(){a.startEditingAtCell()}),t(46,!1,"delete"),t(82,!0,"tilt"),t(83,!0,"save"),t(83,!0,"saveAs",!0),t(107,!1,"zoomIn"),t(109,!1,"zoomOut"),t(65,!0,"selectAll"),t(86,!0,"selectVertices",!0),t(69,!0,"selectEdges",!0),t(69,!0,"export"),t(66,!0,"toBack"),t(70,!0,"toFront"),t(68,!0,"duplicate"),t(90,!0,"undo"),t(89,!0,"redo"),t(88,!0,"cut"),t(67,!0,"copy"),t(81,!0,"connect"),t(86,!0,"paste"),t(71,!0,"group"),t(71,!0,"grid",!0),t(85,!0,"ungroup"),t(112,!1,"about"),t(80,!0,"publish",!0),o},EditorUi.prototype.createMultiplicities=function(e,n,t,a){for(var i=0;i<n.length;i++)e.push(new mxMultiplicity(!0,n[i],null,null,t[i][0],t[i][1],null,mxResources.get(n[i])+mxResources.get("musthave")+t[i][0]+mxResources.get("outgoingedge"),null)),e.push(new mxMultiplicity(!1,n[i],null,null,a[i][0],a[i][1],null,mxResources.get(n[i])+mxResources.get("musthave")+a[i][0]+mxResources.get("incomingedge"),null))};var useLocalStorage=(mxClient.IS_TOUCH||"local"==urlParams.storage)&&"undefined"!=typeof localStorage,fileSupport=null!=window.File&&null!=window.FileReader&&null!=window.FileList,touchStyle=mxClient.IS_TOUCH||"1"==urlParams.touch,counter=0;try{for(var op=window;null!=op.opener&&!isNaN(op.opener.counter);)op=op.opener;null!=op&&(op.counter++,counter=op.counter)}catch(e){}function Sidebar(e,n){this.editorUi=e,this.container=n,this.palettes=new Object,this.taglist=new Object,this.showTooltips=!0,this.graph=new Graph(document.createElement("div"),null,null,this.editorUi.editor.graph.getStylesheet()),this.graph.resetViewOnRootChange=!1,this.graph.foldingEnabled=!1,this.graph.setConnectable(!1),this.graph.autoScroll=!1,this.graph.setTooltips(!1),this.graph.setEnabled(!1),this.graph.container.style.visibility="hidden",this.graph.container.style.position="absolute",this.graph.container.style.overflow="hidden",this.graph.container.style.height="1px",this.graph.container.style.width="1px",mxClient.IS_IE||mxClient.IS_IE11||(this.graph.container.style.display="none"),document.body.appendChild(this.graph.container),this.pointerUpHandler=mxUtils.bind(this,function(){this.showTooltips=!0}),mxEvent.addListener(document,mxClient.IS_POINTER?"pointerup":"mouseup",this.pointerUpHandler),this.pointerDownHandler=mxUtils.bind(this,function(){this.showTooltips=!1,this.hideTooltip()}),mxEvent.addListener(document,mxClient.IS_POINTER?"pointerdown":"mousedown",this.pointerDownHandler),this.pointerMoveHandler=mxUtils.bind(this,function(e){for(var n=mxEvent.getSource(e);null!=n;){if(n==this.currentElt)return;n=n.parentNode}this.hideTooltip()}),mxEvent.addListener(document,mxClient.IS_POINTER?"pointermove":"mousemove",this.pointerMoveHandler),this.pointerOutHandler=mxUtils.bind(this,function(e){null==e.toElement&&null==e.relatedTarget&&this.hideTooltip()}),mxEvent.addListener(document,mxClient.IS_POINTER?"pointerout":"mouseout",this.pointerOutHandler),mxEvent.addListener(n,"scroll",mxUtils.bind(this,function(){this.showTooltips=!0})),this.init(),mxClient.IS_SVG||((new Image).src=IMAGE_PATH+"/tooltip.png")}function Actions(e){this.editorUi=e,this.actions=new Object,this.init()}function Action(e,n,t,a,i){mxEventSource.call(this),this.label=e,this.funct=n,this.enabled=null==t||t,this.iconCls=a,this.shortcut=i}function Menubar(e,n){this.editorUi=e,this.container=n,mxEvent.addGestureListeners(document,mxUtils.bind(this,function(e){this.hideMenu()}))}function Menu(e,n){mxEventSource.call(this),this.funct=e,this.enabled=null==n||n}function Toolbar(e,n){this.editorUi=e,this.container=n,this.init(),mxEvent.addGestureListeners(document,mxUtils.bind(this,function(e){this.hideMenu()}))}function createCheckbox(e){var n=document.createElement("input");return n.setAttribute("type","checkbox"),e&&n.setAttribute("checked",!0),n}function createDropdownFromApi(e,t,a,i,n,s,o,r){var l=new XMLHttpRequest;l.open("GET",e,!1),l.setRequestHeader("Authorization","Bearer "+n.editor.data.token),l.send(null);var d=[];200===l.status&&(d=JSON.parse(l.response));var c=document.createElement("select"),m=document.createElement("option");return m.text="-- None --",m.value="-1",c.appendChild(m),d.rows.forEach(function(n){r&&n[a]==r||((m=document.createElement("option")).text=n[a],s&&o?(m.value=o,s.forEach(function(e){m.value=m.value.replace("%"+e+"%",n[e])}),m.selected=m.value==t):(m.value=n[i],m.selected=n[i]==t),c.appendChild(m))}),c.className="form-control select2",c}function createDropdownWithOptgroupFromApi(e,n,t,a,i,s){var o=new XMLHttpRequest;o.open("GET",e,!1),o.setRequestHeader("Authorization","Bearer "+i.editor.data.token),o.send(null);var r=[];200===o.status&&(r=JSON.parse(o.response));var l=document.createElement("select"),d=document.createElement("option");d.text="-- None --",d.value="-1",l.appendChild(d);var c=_.groupBy(r.rows,s);for(var m in c)if(c.hasOwnProperty(m)){var u=document.createElement("optgroup");u.label=_.capitalize(m),c[m].forEach(function(e){(d=document.createElement("option")).text=e[t],d.value=e[a],d.selected=e[a]==n,u.appendChild(d)}),l.appendChild(u)}return l.className="form-control select2",l}function createGroupedDropdownFromApi(e,n,t,a,i,s){var o=new XMLHttpRequest;o.open("GET",e,!1),o.setRequestHeader("Authorization","Bearer "+i.editor.data.token),o.send(null);var r=[];200===o.status&&(r=JSON.parse(o.response));var l=document.createElement("select"),d=document.createElement("option");return d.text="-- None --",d.value="0",l.appendChild(d),r.rows.forEach(function(e){(d=document.createElement("option")).className="select-group-father",d.text=e[t].toUpperCase(),d.value=e[a],d.selected=e[a]==n,l.appendChild(d),e[s].forEach(function(e){(d=document.createElement("option")).className="select-group-son",d.text="-"+_.capitalize(e[t]),d.value=e[a],d.selected=e[a]==n,l.appendChild(d)})}),l.className="form-control select2",l}function createDropdownFromArray(e,n){var t=document.createElement("select");for(var a in e){var i=document.createElement("option");i.text=e[a],i.value=a,(0<n||""!=n)&&(i.selected=n===a),t.appendChild(i)}return t.className="form-control select2",t}function createDropdownFromTigerDialList(e){var n=document.createElement("select"),t=[],a=new XMLHttpRequest;try{if(a.open("POST","/api/rest/list/list",!1),a.send(JSON.stringify({page:1,size:6e5})),200===a.status){var i=JSON.parse(a.response);if(0<i.status){var s=i.response.RMI.rows;for(var o in s)t[s[o].id]=s[o].name}}}catch(e){console.log(e)}for(var r in t){var l=document.createElement("option");l.text=t[r],l.value=r,(0<e||""!=e)&&(l.selected=e===r),n.appendChild(l)}return n.className="form-control select2",n}function Dialog(e,n,t,a,i,s,o){var r=0;mxClient.IS_IE&&9!=document.documentMode&&(r=60),t+=r,a+=r;Math.max(0,Math.round((document.body.scrollWidth-t)/2)),Math.max(0,Math.round((Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)-a)/3));var l=e.createDiv("geDialog");l.className="modal fade in center",l.style.display="block",l.style.paddingRight="12px";var d=e.createDiv("geModalDialog");d.className="modal-dialog",d.appendChild(n),l.appendChild(d),null==this.bg&&(this.bg=e.createDiv("background"),this.bg.className="modal-backdrop fade in",mxClient.IS_QUIRKS&&new mxDivResizer(this.bg)),i&&document.body.appendChild(this.bg),document.body.appendChild(l),this.onDialogClose=o,this.container=l}function ImportDialog(t){var e=t.createDiv("modal-content"),n=t.createDiv("modal-header"),a=t.createDiv("modal-body"),i=t.createDiv("modal-footer"),s=t.createHeader("h4");mxUtils.write(s,mxResources.get("import")+" XML");var o=mxUtils.button("",function(){t.hideDialog()});o.className="close",n.appendChild(o),n.appendChild(s);var r=t.createDiv("row"),l=t.createDiv("col-md-12"),d=document.createElement("textarea");d.style.width="100%",d.style.height="374px";var c=document.createElement("input");c.type="file",c.setAttribute("accept","text/xml"),c.addEventListener("change",function(e){var n=e.target.files[0];if(console.log(n),n)if("text/xml"===n.type){var t=new FileReader;t.onload=function(e){var n=e.target.result;mxUtils.write(d,n)},t.readAsText(n)}else alert("Failed to load format file");else alert("Failed to load file")},!1),l.appendChild(c),l.appendChild(d),r.appendChild(l),a.appendChild(r);var m=mxUtils.button(mxResources.get("import"),mxUtils.bind(this,function(e){var n=mxUtils.parseXml(d.value);t.editor.setGraphXml(n.documentElement),t.hideDialog()}));m.className="btn blue";var u=mxUtils.button(mxResources.get("cancel"),function(){t.hideDialog()});u.className="btn default",i.appendChild(m),i.appendChild(u),e.appendChild(n),e.appendChild(a),e.appendChild(i),this.container=e}function AboutDialog(e){var n=e.createDiv("modal-content"),t=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),s=e.createHeader("h4");mxUtils.write(s,mxResources.get("about")+" Cally Square");var o=mxUtils.button("",function(){e.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);var r=document.createElement("img");r.style.border="0px",r.setAttribute("width","176"),r.setAttribute("width","151"),r.setAttribute("src",IMAGE_PATH+"/logo.png"),a.appendChild(r),mxUtils.br(a),mxUtils.write(a,"Powered by Xenialab "+mxClient.VERSION),mxUtils.br(a);var l=document.createElement("a");l.setAttribute("href","http://www.callysquare.com/"),l.setAttribute("target","_blank"),mxUtils.write(l,"www.callysquare.com"),a.appendChild(l),mxUtils.br(a),mxUtils.br(a);var d=mxUtils.button(mxResources.get("close"),function(){e.hideDialog()});d.className="btn default",i.appendChild(d),n.appendChild(t),n.appendChild(a),n.appendChild(i),this.container=n}function SaveDialog(e){var n=e.createDiv("modal-content"),t=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),s=e.createHeader("h4");mxUtils.write(s,mxResources.get("saveAs"));var o=mxUtils.button("",function(){e.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);var r=e.editor.getOrCreateFilename(),l=e.createDiv("row"),d=e.createDiv("col-md-4"),c=e.createDiv("col-md-8"),m=document.createElement("label");m.className="control-label pull-right",mxUtils.write(m,mxResources.get("name")),d.appendChild(m);var u=document.createElement("input");u.setAttribute("value",r+"_copy"),u.setAttribute("id","_name"),u.className="form-control",c.appendChild(u),l.appendChild(d),l.appendChild(c),a.appendChild(l);var p=mxUtils.button(mxResources.get("save"),function(){e.saveAs(u.value),e.hideDialog()});p.className="btn blue";var g=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});g.className="btn default",i.appendChild(p),i.appendChild(g),n.appendChild(t),n.appendChild(a),n.appendChild(i),this.container=n}function NewDialog(e){var n=e.createDiv("modal-content"),t=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),s=e.createHeader("h4");mxUtils.write(s,mxResources.get("new"));var o=mxUtils.button("",function(){e.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);var r=e.editor.getOrCreateFilename(),l=e.createDiv("row"),d=e.createDiv("col-md-4"),c=e.createDiv("col-md-8"),m=document.createElement("label");m.className="control-label pull-right",mxUtils.write(m,mxResources.get("name")),d.appendChild(m);var u=document.createElement("input");u.setAttribute("value",r+"_new"),u.setAttribute("id","_name"),u.className="form-control",c.appendChild(u),l.appendChild(d),l.appendChild(c),a.appendChild(l);var p=mxUtils.button(mxResources.get("new"),function(){e.new(u.value),e.hideDialog()});p.className="btn blue";var g=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});g.className="btn default",i.appendChild(p),i.appendChild(g),n.appendChild(t),n.appendChild(a),n.appendChild(i),this.container=n}function DescriptionDialog(e){console.log(e.editor.data);var n=e.createDiv("modal-content"),t=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),s=e.createHeader("h4");mxUtils.write(s,mxResources.get("description"));var o=mxUtils.button("",function(){e.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);var r=e.createDiv("form-horizontal form-row-seperated"),l="description",d=e.editor.data.description||"",c=e.createDiv("form-group"),m=document.createElement("label");m.className="col-sm-4 control-label",mxUtils.write(m,mxResources.get(l)),c.appendChild(m);var u=document.createElement("input");u.setAttribute("value",d),u.className="form-control",u.setAttribute("id","_description");var p=e.createDiv("col-sm-8");p.appendChild(u),c.appendChild(p),r.appendChild(c),a.appendChild(r);var g=mxUtils.button(mxResources.get("update"),function(){e.description(u.value),e.hideDialog()});g.className="btn blue";var v=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});v.className="btn default",i.appendChild(g),i.appendChild(v),n.appendChild(t),n.appendChild(a),n.appendChild(i),this.container=n}function VariableDialog(e){var n=e.createDiv("modal-content"),t=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),s=e.createHeader("h4");mxUtils.write(s,mxResources.get("variable"));var o=mxUtils.button("",function(){e.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);var r=e.createDiv("form-horizontal form-row-seperated"),l="name",d="_"+l,c="variable name",m=e.createDiv("form-group"),u=document.createElement("label");u.className="col-sm-4 control-label",mxUtils.write(u,mxResources.get(l)),m.appendChild(u);var p=document.createElement("input");p.setAttribute("value",c),p.className="form-control",p.setAttribute("id",d);var g=e.createDiv("col-sm-8");g.appendChild(p),m.appendChild(g),r.appendChild(m),d="_"+(l="description"),c="variable description",m=e.createDiv("form-group last"),(u=document.createElement("label")).className="col-sm-4 control-label",mxUtils.write(u,mxResources.get(l)),m.appendChild(u);var v=document.createElement("input");v.setAttribute("value",c),v.className="form-control",v.setAttribute("id",d),(g=e.createDiv("col-sm-8")).appendChild(v),m.appendChild(g),r.appendChild(m),a.appendChild(r);var h=mxUtils.button(mxResources.get("new"),function(){e.variable(p.value,v.value),e.hideDialog()});h.className="btn blue";var f=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});f.className="btn default",i.appendChild(h),i.appendChild(f),n.appendChild(t),n.appendChild(a),n.appendChild(i),this.container=n}function OpenDialog(e){var n=e.createDiv("modal-content"),t=e.createDiv("modal-header"),a=e.createDiv("modal-body"),i=e.createDiv("modal-footer"),s=e.createHeader("h4");mxUtils.write(s,mxResources.get("open"));var o=mxUtils.button("",function(){e.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);var r=e.createDiv("row"),l=e.createDiv("col-md-4"),d=e.createDiv("col-md-8"),c=document.createElement("label");c.className="control-label pull-right",mxUtils.write(c,mxResources.get("name")),l.appendChild(c);var m=new XMLHttpRequest;m.open("GET","/api/square/projects",!1),m.setRequestHeader("Authorization","Bearer "+e.editor.data.token),m.send(null);var u=[];200===m.status&&(u=JSON.parse(m.response));for(var p=document.createElement("select"),g=0;g<u.length;g++){var v=document.createElement("option");v.text=u[g].name,v.value=u[g].id,p.appendChild(v)}p.className="form-control",d.appendChild(p),r.appendChild(l),r.appendChild(d),a.appendChild(r);var h=mxUtils.button(mxResources.get("open"),function(){console.log(p),console.log(p.value),window.open("square/project/"+p.value,"_blank"),e.hideDialog()});h.className="btn blue";var f=mxUtils.button(mxResources.get("cancel"),function(){e.hideDialog()});f.className="btn default",i.appendChild(h),i.appendChild(f),n.appendChild(t),n.appendChild(a),n.appendChild(i),this.container=n}function RenameDialog(t){var e=t.createDiv("modal-content"),n=t.createDiv("modal-header"),a=t.createDiv("modal-body"),i=t.createDiv("modal-footer"),s=t.createHeader("h4");mxUtils.write(s,mxResources.get("rename"));var o=mxUtils.button("",function(){t.hideDialog()});o.className="close",n.appendChild(o),n.appendChild(s);var r=t.createDiv("row"),l=t.createDiv("col-md-4"),d=t.createDiv("col-md-8"),c=document.createElement("label");c.className="control-label pull-right",mxUtils.write(c,mxResources.get("name")),l.appendChild(c);var m=t.editor.filename,u=document.createElement("input");u.setAttribute("value",m),u.className="form-control",d.appendChild(u),r.appendChild(l),r.appendChild(d),a.appendChild(r);var p=mxUtils.button(mxResources.get("save"),function(){var n=new XMLHttpRequest;n.open("PUT",SAVE_URL+t.editor.data.id,!0),n.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),n.setRequestHeader("Authorization","Bearer "+t.editor.data.token),n.send("name="+u.value),n.onload=function(e){200===n.status?(t.editor.setStatus("Project successfully renamed"),t.editor.filename=u.value):(console.log(n.response),t.editor.setStatus(JSON.parse(n.response).errors[0].message))},n.onerror=function(e){mxUtils.alert(n.statusText)},t.hideDialog()});p.className="btn blue";var g=mxUtils.button(mxResources.get("cancel"),function(){t.hideDialog()});g.className="btn default",i.appendChild(p),i.appendChild(g),e.appendChild(n),e.appendChild(a),e.appendChild(i),this.container=e}function EditFileDialog(n){var e=n.createDiv("modal-content"),t=n.createDiv("modal-header"),a=n.createDiv("modal-body"),i=n.createDiv("modal-footer"),s=n.createHeader("h4");mxUtils.write(s,mxResources.get("edit"));var o=mxUtils.button("",function(){n.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);var r=n.createDiv("row"),l=n.createDiv("col-md-12"),d=document.createElement("textarea");if(d.style.width="100%",d.style.height="374px",d.value=mxUtils.getPrettyXml(n.editor.getGraphXml()),fileSupport){d.addEventListener("dragover",function(e){e.stopPropagation(),e.preventDefault()},!1),d.addEventListener("drop",function(e){if(e.stopPropagation(),e.preventDefault(),0<e.dataTransfer.files.length){var n=e.dataTransfer.files[0],t=new FileReader;t.onload=function(e){d.value=e.target.result},t.readAsText(n)}},!1)}l.appendChild(d),r.appendChild(l),a.appendChild(r);var c=mxUtils.button(mxResources.get("save"),function(){var e=mxUtils.parseXml(d.value);n.editor.setGraphXml(e.documentElement),n.hideDialog()});c.className="btn blue";var m=mxUtils.button(mxResources.get("cancel"),function(){n.hideDialog()});m.className="btn default",i.appendChild(c),i.appendChild(m),e.appendChild(t),e.appendChild(a),e.appendChild(i),this.container=e}function ExportDialog(n){var e=n.createDiv("modal-content"),t=n.createDiv("modal-header"),a=n.createDiv("modal-body form"),i=n.createDiv("modal-footer"),s=n.createHeader("h4");mxUtils.write(s,mxResources.get("export")+" XML");var o=mxUtils.button("",function(){n.hideDialog()});o.className="close",t.appendChild(o),t.appendChild(s);var r=n.createDiv("form-horizontal form-row-seperated"),l=n.createDiv("form-group last"),d=document.createElement("label");d.className="col-sm-4 control-label",mxUtils.write(d,mxResources.get("filename"));var c=document.createElement("input");c.setAttribute("value",n.editor.getOrCreateFilename()),c.className="form-control";var m=n.createDiv("col-sm-8");m.appendChild(c),l.appendChild(d),l.appendChild(m),r.appendChild(l),a.appendChild(r);var u=mxUtils.button(mxResources.get("export"),mxUtils.bind(this,function(e){n.save(!1);encodeURIComponent(mxUtils.getXml(n.editor.getGraphXml()));new mxXmlRequest(SAVE_URL+n.editor.data.id+"/download","filename="+c.value,"GET").simulate(document,"_blank"),n.hideDialog()}));u.className="btn blue";var p=mxUtils.button(mxResources.get("cancel"),function(){n.hideDialog()});p.className="btn default",i.appendChild(u),i.appendChild(p),e.appendChild(t),e.appendChild(a),e.appendChild(i),this.container=e}function GeneralDialog(i,s){console.log("general");var o=i.editor.graph,e=i.createDiv("md-dialog"),n=i.createDiv("md-toolbar"),t=i.createDiv("md-dialog-content"),a=i.createDiv("md-dialog-actions"),r=i.createHeader("h4");mxUtils.write(r,mxResources.get("edit")+" "+mxResources.get(s.value.nodeName));var l=mxUtils.button("",function(){i.hideDialog()});l.className="close",n.appendChild(l),n.appendChild(r);for(var d=s.value.attributes.length,c=i.createDiv("form-horizontal form-row-seperated"),m=0;m<d;m++){var u,p=s.value.attributes[m].name,g="_"+p,v=s.value.attributes[m].value,h=i.createDiv(m==d-1?"form-group last":"form-group"),f=document.createElement("label");switch(f.className="col-sm-4 control-label",mxUtils.write(f,mxResources.get(p)),h.appendChild(f),p){case"sip_id":u=createDropdownWithOptgroupFromApi("/api/users/all",v,"fullname","id",i,"role");break;case"queue_id":u=createDropdownFromApi("/api/voice/queues",v,"name","name",i);break;case"trunk_name":u=createDropdownFromApi("/api/trunks",v,"name","name",i);break;case"variable_id":u=createDropdownFromApi("/api/variables",v,"name","id",i);break;case"account_id":u="sendMail"==s.value.nodeName?createDropdownFromApi("/api/mail/servers/out",v,"username","id",i):createDropdownFromApi("/api/sms/accounts",v,"name","id",i);break;case"template_id":u=createDropdownFromApi("/api/templates",v,"name","id",i);break;case"context":u=createDropdownFromApi("/api/voice/contexts",v,"name","name",i);break;case"mailbox":u=createDropdownFromApi("/api/voice/voicemails",v,"mailbox","id",i,["mailbox","context"],"%mailbox%@%context%");break;case"model":u=createDropdownFromArray(ISPEECHASRMODEL,v);break;case"ispeech_asr_language":u=createDropdownFromArray(ISPEECHASRLANG,v);break;case"beep":u=createDropdownFromArray(ISPEECHBEEP,v);break;case"hiddendigitspos":u=createDropdownFromArray(SECRETDIGITSPOS,v);break;case"ispeech_tts_language":u=createDropdownFromArray(ISPEECHLANG,v);break;case"google_tts_language":u=createDropdownFromArray(GOOGLETTSLANG,v);break;case"intKey":u=createDropdownFromArray(ASRINTKEYS,v);break;case"recordingFormat":u=createDropdownFromArray(RECORDINGFORMAT,v);break;case"answer":u=createDropdownFromArray(BOOLSELECT,v);break;case"list_id":u=createDropdownFromTigerDialList(v);break;case"interval_id":u=createGroupedDropdownFromApi("/api/intervals",v,"name","id",i,"SubIntervals");break;case"project_id":u=createDropdownFromApi("/api/square/projects",v,"name","id",i,null,null,i.editor.getOrCreateFilename());break;case"odbc_id":u=createDropdownFromApi("/api/square/odbc",v,"name","id",i);break;case"file_id":u=createDropdownFromApi("/api/sounds",v,"display_name","id",i);break;case"timeout":case"digit":case"mindigit":case"maxdigit":case"response":case"retry":case"speed":(u=document.createElement("input")).setAttribute("type","number"),u.setAttribute("min",0),u.setAttribute("max",1e3),u.setAttribute("value",v),u.className="form-control";break;case"text":case"key":case"query":case"condition":case"command":case"body":(u=document.createElement("textarea")).innerHTML=v,u.className="form-control";break;case"sms_text":(u=document.createElement("textarea")).innerHTML=v,u.className="form-control",u.setAttribute("maxlength","160");break;default:(u=document.createElement("input")).setAttribute("value",v),u.className="form-control"}u.setAttribute("id",g);var b=i.createDiv("col-sm-8");if(b.appendChild(u),mxResources.get("help_"+p)){var A=i.createDiv("p");A.className="help-block",mxUtils.write(A,mxResources.get("help_"+p)),b.appendChild(A)}h.appendChild(b),c.appendChild(h)}t.appendChild(c);var E=mxUtils.button(mxResources.get("save"),mxUtils.bind(this,function(e){for(var n=0;n<s.value.attributes.length;n++){var t="_"+s.value.attributes[n].name,a=s.value.attributes[n].name;s.setAttribute(a,document.getElementById(t).value)}o.refresh(s),i.hideDialog()}));E.className="btn blue";var y=mxUtils.button(mxResources.get("cancel"),function(){i.hideDialog()});y.className="btn default",a.appendChild(E),a.appendChild(y),e.appendChild(n),e.appendChild(t),e.appendChild(a),this.container=e}Editor=function(){mxEventSource.call(this),this.init(),this.initStencilRegistry(),this.graph=new Graph,this.outline=new mxOutline(this.graph),this.outline.updateOnPan=!0,this.undoManager=this.createUndoManager(),this.status="",this.filename=null,this.getOrCreateFilename=function(){return this.filename||mxResources.get("drawing",[counter])+".xml"},this.getFilename=function(){return this.filename},this.setStatus=function(e){this.status=e,this.fireEvent(new mxEventObject("statusChanged"))},this.getStatus=function(){return this.status},this.modified=!1,this.graphChangeListener=function(){this.modified=!0},this.graph.getModel().addListener(mxEvent.CHANGE,mxUtils.bind(this,function(){this.graphChangeListener.apply(this,arguments)})),window.onbeforeunload=mxUtils.bind(this,function(){if(this.modified)return mxResources.get("allChangesLost")}),this.graph.resetViewOnRootChange=!1,this.graph.scrollbars=!0,this.graph.background=null},mxUtils.extend(Editor,mxEventSource),Editor.prototype.gridImage=IMAGE_PATH+"/grid.gif",Editor.prototype.transparentImage=IMAGE_PATH+"/transparent.gif",Editor.prototype.setGraphXml=function(e){var n=new mxCodec(e.ownerDocument);if("mxGraphModel"==e.nodeName){this.graph.view.scale=Number(e.getAttribute("scale")||1),this.graph.gridEnabled="0"!=e.getAttribute("grid"),this.graph.graphHandler.guidesEnabled="0"!=e.getAttribute("guides"),this.graph.setTooltips("0"!=e.getAttribute("tooltips")),this.graph.setConnectable("0"!=e.getAttribute("connect")),this.graph.foldingEnabled="0"!=e.getAttribute("fold"),this.graph.scrollbars="0"!=e.getAttribute("scrollbars"),this.graph.scrollbars||(this.graph.container.scrollLeft=0,this.graph.container.scrollTop=0,this.graph.view.translate.x=Number(e.getAttribute("dx")||0),this.graph.view.translate.y=Number(e.getAttribute("dy")||0)),this.graph.pageVisible="1"==e.getAttribute("page"),this.graph.pageBreaksVisible=this.graph.pageVisible,this.graph.preferPageSize=this.graph.pageBreaksVisible;var t=e.getAttribute("pageScale");this.graph.pageScale=null!=t?t:1.5;var a=e.getAttribute("pageWidth"),i=e.getAttribute("pageHeight");null!=a&&null!=i&&(this.graph.pageFormat=new mxRectangle(0,0,parseFloat(a),parseFloat(i)),this.outline.outline.pageFormat=this.graph.pageFormat);var s=e.getAttribute("background");null!=s&&0<s.length&&(this.graph.background=s),n.decode(e,this.graph.getModel()),this.updateGraphComponents()}},Editor.prototype.getGraphXml=function(){var e=new mxCodec(mxUtils.createXmlDocument()).encode(this.graph.getModel());return 0==this.graph.view.translate.x&&0==this.graph.view.translate.y||(e.setAttribute("dx",Math.round(100*this.graph.view.translate.x)/100),e.setAttribute("dy",Math.round(100*this.graph.view.translate.y)/100)),1!=this.graph.view.scale&&e.setAttribute("scale",Math.round(1e3*this.graph.view.scale)/1e3),e.setAttribute("grid",this.graph.isGridEnabled()?"1":"0"),e.setAttribute("guides",this.graph.graphHandler.guidesEnabled?"1":"0"),e.setAttribute("guides",this.graph.graphHandler.guidesEnabled?"1":"0"),e.setAttribute("tooltips",this.graph.tooltipHandler.isEnabled()?"1":"0"),e.setAttribute("connect",this.graph.connectionHandler.isEnabled()?"1":"0"),e.setAttribute("fold",this.graph.foldingEnabled?"1":"0"),e.setAttribute("page",this.graph.pageVisible?"1":"0"),e.setAttribute("pageScale",this.graph.pageScale),e.setAttribute("pageWidth",this.graph.pageFormat.width),e.setAttribute("pageHeight",this.graph.pageFormat.height),this.graph.scrollbars||e.setAttribute("scrollbars","0"),null!=this.graph.background&&e.setAttribute("background",this.graph.background),e},Editor.prototype.updateGraphComponents=function(){var e=this.graph,n=this.outline;if(null!=e.container&&null!=n.outline.container){null!=e.background?"none"==e.background?e.container.style.backgroundColor="transparent":(null!=e.view.backgroundPageShape&&(e.view.backgroundPageShape.fill=e.background,e.view.backgroundPageShape.reconfigure()),e.container.style.backgroundColor=e.background):e.container.style.backgroundColor="",e.pageVisible?(e.container.style.backgroundColor="#ebebeb",e.container.style.borderStyle="solid",e.container.style.borderColor="#e5e5e5",e.container.style.borderTopWidth="1px",e.container.style.borderLeftWidth="1px",e.container.style.borderRightWidth="0px",e.container.style.borderBottomWidth="0px"):e.container.style.border="",n.outline.container.style.backgroundColor=e.container.style.backgroundColor,n.outline.pageVisible==e.pageVisible&&n.outline.pageScale==e.pageScale||(n.outline.pageScale=e.pageScale,n.outline.pageVisible=e.pageVisible,n.outline.view.validate()),e.scrollbars&&"hidden"==e.container.style.overflow&&!touchStyle?e.container.style.overflow="auto":e.scrollbars&&!touchStyle||(e.container.style.overflow="hidden");var t=mxClient.IS_IE&&9<=document.documentMode?"url("+this.transparentImage+")":"none";e.container.style.backgroundImage=!e.pageVisible&&e.isGridEnabled()?"url("+this.gridImage+")":t,null!=e.view.backgroundPageShape&&(e.view.backgroundPageShape.node.style.backgroundImage=this.graph.isGridEnabled()?"url("+this.gridImage+")":"none")}},Editor.prototype.init=function(){mxClient.IS_IE6&&mxClient.link("stylesheet",CSS_PATH+"/grapheditor-ie6.css"),mxResources.loadDefaultBundle=!1,mxResources.add(RESOURCE_BASE),mxConstants.DEFAULT_HOTSPOT=.3;var e=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var t=e.apply(this,arguments);return t.intersects=mxUtils.bind(this,function(e,n){return!!this.isConnecting()||mxCellMarker.prototype.intersects.apply(t,arguments)}),t},mxConstants.SHADOWCOLOR="#d0d0d0",mxConstants.HANDLE_FILLCOLOR="#99ccff",mxConstants.HANDLE_STROKECOLOR="#0088cf",mxConstants.VERTEX_SELECTION_COLOR="#00a8ff",mxConstants.OUTLINE_COLOR="#00a8ff",mxConstants.OUTLINE_HANDLE_FILLCOLOR="#99ccff",mxConstants.OUTLINE_HANDLE_STROKECOLOR="#00a8ff",mxConstants.CONNECT_HANDLE_FILLCOLOR="#cee7ff",mxConstants.EDGE_SELECTION_COLOR="#00a8ff",mxConstants.DEFAULT_VALID_COLOR="#00a8ff",mxConstants.LABEL_HANDLE_FILLCOLOR="#cee7ff",mxConstants.GUIDE_COLOR="#0088cf",mxGraph.prototype.pageBreakColor="#c0c0c0",mxGraph.prototype.pageScale=1,mxRubberband.prototype.defaultOpacity=30,mxGraphView.prototype.createBackgroundPageShape=function(e){return new mxRectangleShape(e,this.graph.background||"white","#cacaca")},mxGraphView.prototype.getBackgroundPageBounds=function(){var e=this.getGraphBounds(),n=0<e.width?e.x/this.scale-this.translate.x:0,t=0<e.height?e.y/this.scale-this.translate.y:0,a=e.width/this.scale,i=e.height/this.scale,s=this.graph.pageFormat,o=this.graph.pageScale,r=s.width*o,l=s.height*o,d=Math.floor(Math.min(0,n)/r),c=Math.floor(Math.min(0,t)/l),m=Math.ceil(Math.max(1,n+a)/r)-d,u=Math.ceil(Math.max(1,t+i)/l)-c;return new mxRectangle(this.scale*(this.translate.x+d*r),this.scale*(this.translate.y+c*l),this.scale*m*r,this.scale*u*l)};var t=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(e,n){t.apply(this,arguments),this.dialect==mxConstants.DIALECT_SVG||null==this.view.backgroundPageShape||this.useScrollbarsForPanning&&mxUtils.hasScrollbars(this.container)||(this.view.backgroundPageShape.node.style.marginLeft=e+"px",this.view.backgroundPageShape.node.style.marginTop=n+"px")};var a=this;mxGraphView.prototype.validateBackground=function(){var e=this.graph.getBackgroundImage();if(null!=e){if(null==this.backgroundImage||this.backgroundImage.image!=e.src){null!=this.backgroundImage&&this.backgroundImage.destroy();var n=new mxRectangle(0,0,1,1);this.backgroundImage=new mxImageShape(n,e.src),this.backgroundImage.dialect=this.graph.dialect,this.backgroundImage.init(this.backgroundPane),this.backgroundImage.redraw()}this.redrawBackgroundImage(this.backgroundImage,e)}else null!=this.backgroundImage&&(this.backgroundImage.destroy(),this.backgroundImage=null);if(this.graph.pageVisible){n=this.getBackgroundPageBounds();null==this.backgroundPageShape?(this.backgroundPageShape=this.createBackgroundPageShape(n),this.backgroundPageShape.scale=1,this.backgroundPageShape.isShadow=!0,this.backgroundPageShape.dialect=mxConstants.DIALECT_STRICTHTML,this.backgroundPageShape.init(this.graph.container),this.graph.container.firstChild.style.position="absolute",this.graph.container.insertBefore(this.backgroundPageShape.node,this.graph.container.firstChild),this.backgroundPageShape.redraw(),this.backgroundPageShape.node.className="geBackgroundPage",this.backgroundPageShape.node.style.backgroundPosition="-1px -1px",mxEvent.addListener(this.backgroundPageShape.node,"dblclick",mxUtils.bind(this,function(e){this.graph.dblClick(e)})),mxEvent.addGestureListeners(this.backgroundPageShape.node,mxUtils.bind(this,function(e){this.graph.fireMouseEvent(mxEvent.MOUSE_DOWN,new mxMouseEvent(e))}),mxUtils.bind(this,function(e){null!=this.graph.tooltipHandler&&this.graph.tooltipHandler.isHideOnHover()&&this.graph.tooltipHandler.hide(),this.graph.isMouseDown&&!mxEvent.isConsumed(e)&&this.graph.fireMouseEvent(mxEvent.MOUSE_MOVE,new mxMouseEvent(e))}),mxUtils.bind(this,function(e){this.graph.fireMouseEvent(mxEvent.MOUSE_UP,new mxMouseEvent(e))}))):(this.backgroundPageShape.scale=1,this.backgroundPageShape.bounds=n,this.backgroundPageShape.redraw()),this.backgroundPageShape.node.style.backgroundImage=this.graph.isGridEnabled()?"url("+a.gridImage+")":"none"}else null!=this.backgroundPageShape&&(this.backgroundPageShape.destroy(),this.backgroundPageShape=null)},mxGraph.prototype.updatePageBreaks=function(e,n,t){var a=this.view.scale,i=this.view.translate,s=this.pageFormat,o=a*this.pageScale,r=this.view.getBackgroundPageBounds();n=r.width,t=r.height;var l=new mxRectangle(a*i.x,a*i.y,s.width*o,s.height*o),d=(e=e&&Math.min(l.width,l.height)>this.minPageBreakDist)?Math.ceil(n/l.width)-1:0,c=e?Math.ceil(t/l.height)-1:0,m=r.x+n,u=r.y+t;if(null==this.horizontalPageBreaks&&0<d&&(this.horizontalPageBreaks=[]),null!=this.horizontalPageBreaks){for(var p=0;p<=d;p++){var g=[new mxPoint(r.x+(p+1)*l.width,r.y),new mxPoint(r.x+(p+1)*l.width,u)];if(null!=this.horizontalPageBreaks[p])this.horizontalPageBreaks[p].scale=1,this.horizontalPageBreaks[p].points=g,this.horizontalPageBreaks[p].redraw();else(v=new mxPolyline(g,this.pageBreakColor,this.scale)).dialect=this.dialect,v.isDashed=this.pageBreakDashed,v.addPipe=!1,v.scale=a,v.init(this.view.backgroundPane),v.redraw(),this.horizontalPageBreaks[p]=v}for(p=d;p<this.horizontalPageBreaks.length;p++)this.horizontalPageBreaks[p].destroy();this.horizontalPageBreaks.splice(d,this.horizontalPageBreaks.length-d)}if(null==this.verticalPageBreaks&&0<c&&(this.verticalPageBreaks=[]),null!=this.verticalPageBreaks){for(p=0;p<=c;p++){var v;g=[new mxPoint(r.x,r.y+(p+1)*l.height),new mxPoint(m,r.y+(p+1)*l.height)];if(null!=this.verticalPageBreaks[p])this.verticalPageBreaks[p].scale=1,this.verticalPageBreaks[p].points=g,this.verticalPageBreaks[p].redraw();else(v=new mxPolyline(g,this.pageBreakColor,a)).dialect=this.dialect,v.isDashed=this.pageBreakDashed,v.addPipe=!1,v.scale=a,v.init(this.view.backgroundPane),v.redraw(),this.verticalPageBreaks[p]=v}for(p=c;p<this.verticalPageBreaks.length;p++)this.verticalPageBreaks[p].destroy();this.verticalPageBreaks.splice(c,this.verticalPageBreaks.length-c)}},mxEdgeHandler.prototype.snapToTerminals=!0,mxGraphHandler.prototype.guidesEnabled=!0;var s=mxGraphHandler.prototype.shouldRemoveCellsFromParent;mxGraphHandler.prototype.shouldRemoveCellsFromParent=function(e,n,t){for(var a=0;a<n.length;a++)if(this.graph.getModel().isVertex(n[a])){var i=this.graph.getCellGeometry(n[a]);if(null!=i&&i.relative)return!1}return s.apply(this,arguments)},mxGuide.prototype.isEnabledForEvent=function(e){return!mxEvent.isAltDown(e)};var r=mxPopupMenu.prototype.addItem;mxPopupMenu.prototype.addItem=function(e,n,t,a,i,s){var o=r.apply(this,arguments);return null==s||s||mxEvent.addListener(o,"mousedown",function(e){mxEvent.consume(e)}),o};var o=mxGraphHandler.prototype.getInitialCellForEvent;mxGraphHandler.prototype.getInitialCellForEvent=function(e){var n=this.graph.getModel(),t=n.getParent(this.graph.getSelectionCell()),a=o.apply(this,arguments),i=n.getParent(a);if(null==t||t!=a&&t!=i)for(;!this.graph.isCellSelected(a)&&!this.graph.isCellSelected(i)&&n.isVertex(i)&&!this.graph.isValidRoot(i);)a=i,i=this.graph.getModel().getParent(a);return a};var l=mxGraphHandler.prototype.isDelayedSelection;mxGraphHandler.prototype.isDelayedSelection=function(e){var n=l.apply(this,arguments),t=this.graph.getModel(),a=t.getParent(this.graph.getSelectionCell()),i=t.getParent(e);return(null==a||a!=e&&a!=i)&&(this.graph.isCellSelected(e)||!t.isVertex(i)||this.graph.isValidRoot(i)||(n=!0)),n},mxGraphHandler.prototype.selectDelayed=function(e){var n=e.getCell();null==n&&(n=this.cell);for(var t=this.graph.getModel(),a=t.getParent(n);this.graph.isCellSelected(n)&&t.isVertex(a)&&!this.graph.isValidRoot(a);)n=a,a=t.getParent(n);this.graph.selectCellForEvent(n,e.getEvent())},mxPanningHandler.prototype.getCellForPopupEvent=function(e){for(var n=e.getCell(),t=this.graph.getModel(),a=t.getParent(n);t.isVertex(a)&&!this.graph.isValidRoot(a);)this.graph.isCellSelected(a)&&(n=a),a=t.getParent(a);return n}},Editor.prototype.createUndoManager=function(){var s=this.graph,t=new mxUndoManager,e=function(e,n){t.undoableEditHappened(n.getProperty("edit"))};s.getModel().addListener(mxEvent.UNDO,e),s.getView().addListener(mxEvent.UNDO,e);var n=function(e,n){for(var t=s.getSelectionCellsForChanges(n.getProperty("edit").changes),a=[],i=1;i<t.length;i++)null!=s.view.getState(t[i])&&a.push(t[i]);s.setSelectionCells(a)};return t.addListener(mxEvent.UNDO,n),t.addListener(mxEvent.REDO,n),t},Editor.prototype.initStencilRegistry=function(){mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/general.xml")},mxStencilRegistry.libraries={},mxStencilRegistry.packages=[],mxStencilRegistry.getStencil=function(e){var n=mxStencilRegistry.stencils[e];if(null==n){var t=mxStencilRegistry.getBasenameForStencil(e);if(null!=t){var a=mxStencilRegistry.libraries[t];if(null!=a){if(null==mxStencilRegistry.packages[t]){mxStencilRegistry.packages[t]=1;for(var i=0;i<a.length;i++){var s=a[i];if(".xml"==s.toLowerCase().substring(s.length-4,s.length))mxStencilRegistry.loadStencilSet(s,null);else if(".js"==s.toLowerCase().substring(s.length-3,s.length)){var o=mxUtils.load(s);null!=o&&eval.call(window,o.getText())}}}}else mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/"+t+".xml",null);n=mxStencilRegistry.stencils[e]}}return n},mxStencilRegistry.getBasenameForStencil=function(e){var n=e.split("."),t=null;if(0<n.length&&"mxgraph"==n[0]){t=n[1];for(var a=2;a<n.length-1;a++)t+="/"+n[a]}return t},mxStencilRegistry.loadStencilSet=function(e,n,t){t=null!=t&&t;var a=mxStencilRegistry.packages[e];if(t||null==a){var i=!1;null==a&&(a=mxUtils.load(e).getXml(),mxStencilRegistry.packages[e]=a,i=!0),mxStencilRegistry.parseStencilSet(a,n,i)}},mxStencilRegistry.parseStencilSet=function(e,n,t){t=null==t||t;var a=e.documentElement,i=a.firstChild,s="",o=a.getAttribute("name");for(null!=o&&(s=o+".");null!=i;){if(i.nodeType==mxConstants.NODETYPE_ELEMENT&&null!=(o=i.getAttribute("name"))){s=s.toLowerCase();var r=o.replace(/ /g,"_");if(t&&mxStencilRegistry.addStencil(s+r.toLowerCase(),new mxStencil(i)),null!=n){var l=i.getAttribute("w"),d=i.getAttribute("h");n(s,r,o,l=null==l?80:parseInt(l,10),d=null==d?80:parseInt(d,10))}}i=i.nextSibling}},OpenFile=function(e){this.producer=null,this.consumer=null,this.done=e},OpenFile.prototype.setConsumer=function(e){this.consumer=e,this.execute()},OpenFile.prototype.setData=function(e,n){this.data=e,this.filename=n,this.execute()},OpenFile.prototype.error=function(e){this.cancel(),mxUtils.alert(e)},OpenFile.prototype.execute=function(){null!=this.consumer&&null!=this.data&&(this.consumer(this.data,this.filename),this.cancel())},OpenFile.prototype.cancel=function(){null!=this.done&&this.done()},Sidebar.prototype.init=function(){var e=STENCIL_PATH;this.addSearchPalette(!0),this.addImagePalette("entry",mxResources.get("entry"),e+"/entry/","_128x128.png",["start","finally","end"],[mxResources.get("start"),mxResources.get("finally"),mxResources.get("end")]),this.addImagePalette("call_management",mxResources.get("call_management"),e+"/call_management/","_128x128.png",["answer","hangup","dial","ext_dial","queue","voicemail","callback"],[mxResources.get("answer"),mxResources.get("hangup"),mxResources.get("dial"),mxResources.get("ext_dial"),mxResources.get("queue"),mxResources.get("voicemail"),mxResources.get("callback")]),this.addImagePalette("agent_management",mxResources.get("agent_management"),e+"/agent_management/","_128x128.png",["login","pause","unpause","logout"],[mxResources.get("login"),mxResources.get("pause"),mxResources.get("unpause"),mxResources.get("logout")]),this.addImagePalette("variable",mxResources.get("variable"),e+"/variable/","_128x128.png",["set","math"],[mxResources.get("set"),mxResources.get("math")]),this.addImagePalette("playback",mxResources.get("playback"),e+"/playback/","_128x128.png",["playback","menu","saydigits","saynumber","sayphonetic","getdigits","getsecretdigits"],[mxResources.get("playback"),mxResources.get("menu"),mxResources.get("saydigits"),mxResources.get("saynumber"),mxResources.get("sayphonetic"),mxResources.get("getdigits"),mxResources.get("getsecretdigits")]),this.addImagePalette("recording",mxResources.get("recording"),e+"/recording/","_128x128.png",["record"],[mxResources.get("record")]),this.addImagePalette("tts","TTS",e+"/tts/","_128x128.png",["google_cloud_tts","tts","ispeechtts","awspolly","lumenvoxtts","sestektts","mrcpsynth"],["Google Cloud TTS","GoogleTTS","ISpeechTTS","AWSPolly","LumenvoxTTS","SestekTTS","MRCPSynth"]),this.addImagePalette("asr","ASR",e+"/asr/","_128x128.png",["googleasr","ispeechasr","lumenvoxasr","tildeasr","sestekasr","mrcprecog"],["GoogleASR","ISpeechASR","LumenvoxASR","TildeASR","SestekASR","MRCPRecog"]),this.addImagePalette("integrationServer",mxResources.get("integrationServer"),e+"/integration_server/","_128x128.png",["database","sendMail","sendSMS","dialogflow","dialogflowV2","awslex","sesteknda","restapi"],[mxResources.get("database"),mxResources.get("sendMail"),mxResources.get("sendSMS"),"Dialogflow","DialogflowV2","AWSLex","SestekNDA","RestAPI"]),this.addImagePalette("callflow",mxResources.get("callflow"),e+"/callflow/","_128x128.png",["gotoc","gotoif","gotoiftime","vswitch"],[mxResources.get("gotoc"),mxResources.get("gotoif"),mxResources.get("gotoiftime"),mxResources.get("vswitch")]),this.addImagePalette("stats",mxResources.get("stats"),e+"/stats/","_128x128.png",["goal"],[mxResources.get("goal")]),this.addImagePalette("general",mxResources.get("general"),e+"/general/","_128x128.png",["noop","system","agi","subproject","custom_app"],[mxResources.get("noop"),mxResources.get("system"),mxResources.get("agi"),mxResources.get("subproject"),mxResources.get("custom_app")])},Sidebar.prototype.collapsedImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhDQANAIABAJmZmf///yH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozNUQyRTJFNjZGNUYxMUU1QjZEOThCNDYxMDQ2MzNCQiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDozNUQyRTJFNzZGNUYxMUU1QjZEOThCNDYxMDQ2MzNCQiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjFERjc3MEUxNkY1RjExRTVCNkQ5OEI0NjEwNDYzM0JCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjFERjc3MEUyNkY1RjExRTVCNkQ5OEI0NjEwNDYzM0JCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEAQAAAQAsAAAAAA0ADQAAAhSMj6lrwAjcC1GyahV+dcZJgeIIFgA7":IMAGE_PATH+"/collapsed.gif",Sidebar.prototype.expandedImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhDQANAIABAJmZmf///yH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxREY3NzBERjZGNUYxMUU1QjZEOThCNDYxMDQ2MzNCQiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxREY3NzBFMDZGNUYxMUU1QjZEOThCNDYxMDQ2MzNCQiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjFERjc3MERENkY1RjExRTVCNkQ5OEI0NjEwNDYzM0JCIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjFERjc3MERFNkY1RjExRTVCNkQ5OEI0NjEwNDYzM0JCIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEAQAAAQAsAAAAAA0ADQAAAhGMj6nL3QAjVHIu6azbvPtWAAA7":IMAGE_PATH+"/expanded.gif",Sidebar.prototype.tooltipImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAbCAMAAAB7jU7LAAAACVBMVEX///+ZmZn///9Y2COLAAAAA3RSTlP//wDXyg1BAAAAOElEQVR42mXQMQ4AMAgDsWv//+iutcJmIQSk+9dJpVKpVCqVSqVSqZTdncWzF8/NeP7FkxWenPEDOnUBiL3jWx0AAAAASUVORK5CYII=":IMAGE_PATH+"/tooltip.png",Sidebar.prototype.searchImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAEaSURBVHjabNGxS5VxFIfxz71XaWuQUJCG/gCHhgTD9VpEETg4aMOlQRp0EoezObgcd220KQiXmpretTAHQRBdojlQEJyukPdt+b1ywfvAGc7wnHP4nlZd1yKijQW8xzNc4Su+ZOYfQ3T6/f4YNvEJYzjELXp4VVXVz263+7cR2niBxAFeZ2YPi3iHR/gYERPDwhpOsd6sz8x/mfkNG3iOlWFhFj8y89J9KvzGXER0GuEaD42mgwHqUtoljbcRsTBCeINpfM/MgZLKPpaxFxGbOCqDXmILN7hoJrTKH+axhxmcYRxP0MIDnOBDZv5q1XUNIuJxifJp+UNV7t7BFM6xeic0RMQ4Bpl5W/ol7GISx/eEUUTECrbx+f8A8xhiZht9zsgAAAAASUVORK5CYII=":IMAGE_PATH+"/search.png",Sidebar.prototype.enableTooltips=!0,Sidebar.prototype.tooltipBorder=16,Sidebar.prototype.tooltipDelay=300,Sidebar.prototype.dropTargetDelay=200,Sidebar.prototype.thumbWidth=36,Sidebar.prototype.thumbHeight=36,Sidebar.prototype.thumbPadding=5<=document.documentMode?0:1,Sidebar.prototype.thumbBorder=2,Sidebar.prototype.sidebarTitleSize=9,Sidebar.prototype.sidebarTitles=!1,Sidebar.prototype.tooltipTitles=!0,Sidebar.prototype.maxTooltipWidth=400,Sidebar.prototype.maxTooltipHeight=400,Sidebar.prototype.addStencilsToIndex=!0,Sidebar.prototype.defaultImageWidth=80,Sidebar.prototype.defaultImageHeight=80,Sidebar.prototype.getOffset=function(e){return{left:(e=e.getBoundingClientRect()).left+window.scrollX,top:e.top+window.scrollY}},Sidebar.prototype.showTooltip=function(c,m,u,p,g,v){if(this.enableTooltips&&this.showTooltips&&this.currentElt!=c){null!=this.thread&&(window.clearTimeout(this.thread),this.thread=null);var e=mxUtils.bind(this,function(){null==this.tooltip&&(this.tooltip=document.createElement("div"),this.tooltip.className="geSidebarTooltip",this.tooltip.style.zIndex=mxPopupMenu.prototype.zIndex-1,document.body.appendChild(this.tooltip),this.graph2=new Graph(this.tooltip,null,null,this.editorUi.editor.graph.getStylesheet()),this.graph2.resetViewOnRootChange=!1,this.graph2.foldingEnabled=!1,this.graph2.gridEnabled=!1,this.graph2.autoScroll=!1,this.graph2.setTooltips(!1),this.graph2.setConnectable(!1),this.graph2.setEnabled(!1),mxClient.IS_SVG||(this.graph2.view.canvas.style.position="relative"),this.tooltipImage=mxUtils.createImage(this.tooltipImage),this.tooltipImage.className="geSidebarTooltipImage",this.tooltipImage.style.zIndex=mxPopupMenu.prototype.zIndex-1,this.tooltipImage.style.position="absolute",this.tooltipImage.style.width="14px",this.tooltipImage.style.height="27px",document.body.appendChild(this.tooltipImage)),this.graph2.model.clear(),this.graph2.view.setTranslate(this.tooltipBorder,this.tooltipBorder),u>this.maxTooltipWidth||p>this.maxTooltipHeight?this.graph2.view.scale=Math.round(100*Math.min(this.maxTooltipWidth/u,this.maxTooltipHeight/p))/100:this.graph2.view.scale=1,this.tooltip.style.display="block",this.graph2.labelsVisible=null==v||v,this.graph2.addCells(m);var e=this.graph2.getGraphBounds(),n=e.width+2*this.tooltipBorder+4,t=e.height+2*this.tooltipBorder;if(mxClient.IS_QUIRKS?(t+=4,this.tooltip.style.overflow="hidden"):this.tooltip.style.overflow="visible",this.tooltipImage.style.visibility="visible",this.tooltip.style.width=n+"px",this.tooltipTitles&&null!=g&&0<g.length){null==this.tooltipTitle?(this.tooltipTitle=document.createElement("div"),this.tooltipTitle.style.borderTop="1px solid gray",this.tooltipTitle.style.textAlign="center",this.tooltipTitle.style.width="100%",this.tooltipTitle.style.overflow="hidden",mxClient.IS_SVG||(this.tooltipTitle.style.position="absolute"),this.tooltipTitle.style.paddingTop="6px",this.tooltip.appendChild(this.tooltipTitle)):this.tooltipTitle.innerHTML="",this.tooltipTitle.style.display="",mxUtils.write(this.tooltipTitle,g);var a=this.tooltipTitle.offsetHeight+10;t+=a,mxClient.IS_SVG?this.tooltipTitle.style.marginTop=2-a+"px":(t-=6,this.tooltipTitle.style.top=t-a+"px")}else null!=this.tooltipTitle&&null!=this.tooltipTitle.parentNode&&(this.tooltipTitle.style.display="none");this.tooltip.style.height=t+"px";var i=-Math.round(e.x-this.tooltipBorder),s=-Math.round(e.y-this.tooltipBorder),o=document.body,r=document.documentElement,l=(o.clientHeight||r.clientHeight,document.getElementById("vertical-navigation").offsetWidth+this.container.clientWidth),d=Math.max(0,this.getOffset(c).top-this.container.scrollTop-t/2+16);mxClient.IS_SVG?0!=i||0!=s?this.graph2.view.canvas.setAttribute("transform","translate("+i+","+s+")"):this.graph2.view.canvas.removeAttribute("transform"):(this.graph2.view.drawPane.style.left=i+"px",this.graph2.view.drawPane.style.top=s+"px"),this.tooltip.style.position="absolute",this.tooltip.style.left=l+"px",this.tooltip.style.top=d+"px",this.tooltipImage.style.left=l-13+"px",this.tooltipImage.style.top=d+t/2-13+"px"});null!=this.tooltip&&"none"!=this.tooltip.style.display?e():this.thread=window.setTimeout(e,this.tooltipDelay),this.currentElt=c}},Sidebar.prototype.hideTooltip=function(){null!=this.thread&&(window.clearTimeout(this.thread),this.thread=null),null!=this.tooltip&&(this.tooltip.style.display="none",this.tooltipImage.style.visibility="hidden",this.currentElt=null)},Sidebar.prototype.addEntry=function(e,n){if(null!=this.taglist&&null!=e&&0<e.length)for(var t=e.toLowerCase().replace(/[\/\,\(\)]/g," ").split(" "),a=0;a<t.length;a++)if(t[a]=t[a].replace(/\.*\d*$/,""),1<t[a].length){var i=this.taglist[t[a]];null==i&&(i={entries:[],dict:new mxDictionary},this.taglist[t[a]]=i),null==i.dict.get(n)&&(i.dict.put(n,n),i.entries.push(n))}return n},Sidebar.prototype.searchEntries=function(e,n,t,a,i){if(null!=this.taglist&&null!=e){for(var s=e.toLowerCase().split(" "),o=new mxDictionary,r=(t+1)*n,l=[],d=0,c=0;c<s.length;c++)if(0<s[c].length){var m=this.taglist[s[c]],u=new mxDictionary;if(null!=m){var p=m.entries;l=[];for(var g=0;g<p.length;g++){m=p[g];if(0==d==(null==o.get(m))&&(u.put(m,m),l.push(m),c==s.length-1&&l.length==r))return void a(l.slice(t*n,r),r,!0)}}else l=[];o=u,d++}var v=l.length;a(l.slice(t*n,(t+1)*n),v,!1)}else a([])},Sidebar.prototype.filterTags=function(e){if(null==e)return null;for(var n=e.split(" "),t=[],a={},i=0;i<n.length;i++)null==a[n[i]]&&(a[n[i]]="1",t.push(n[i]));return t.join(" ")},Sidebar.prototype.cloneCell=function(e,n){var t=e.clone();return null!=n&&(t.value=n),t},Sidebar.prototype.addSearchPalette=function(e){var n=document.createElement("div");n.style.visibility="hidden",this.container.appendChild(n);var r=document.createElement("div");r.className="geSidebar",r.style.boxSizing="border-box",r.style.overflow="hidden",r.style.width="100%",r.style.padding="8px",r.style.paddingTop="14px",r.style.paddingBottom="0px",e||(r.style.display="none");var t=document.createElement("div");t.style.whiteSpace="nowrap",t.style.textOverflow="clip",t.style.paddingBottom="8px",t.style.cursor="default";var a=document.createElement("input");a.setAttribute("placeholder",mxResources.get("searchShapes")),a.setAttribute("type","text"),a.style.fontSize="12px",a.style.overflow="hidden",a.style.boxSizing="border-box",a.style.border="solid 1px #d5d5d5",a.style.borderRadius="4px",a.style.width="100%",a.style.outline="none",a.style.padding="6px",t.appendChild(a);var i,s=document.createElement("img");s.setAttribute("src",Sidebar.prototype.searchImage),s.setAttribute("title",mxResources.get("search")),s.style.position="relative",s.style.left="-18px",mxClient.IS_QUIRKS?(a.style.height="28px",s.style.top="-4px"):s.style.top="2px",s.style.background="url('"+this.editorUi.editor.transparentImage+"')",t.appendChild(s),r.appendChild(t);var l=document.createElement("center"),d=mxUtils.button(mxResources.get("moreResults"),function(){i()});d.style.display="none",d.style.lineHeight="normal",d.style.marginTop="4px",d.style.marginBottom="8px",l.style.paddingTop="4px",l.style.paddingBottom="8px",l.appendChild(d),r.appendChild(l);var c="",m=!1,u=!1,p=0,g=new Object,v=12,h=mxUtils.bind(this,function(){m=!1,this.currentSearch=null;for(var e=r.firstChild;null!=e;){var n=e.nextSibling;e!=t&&e!=l&&e.parentNode.removeChild(e),e=n}});i=mxUtils.bind(this,function(){if(v=4*Math.max(1,Math.floor(this.container.clientWidth/(this.thumbWidth+10))),this.hideTooltip(),""!=a.value){if(null!=l.parentNode&&(c!=a.value&&(h(),c=a.value,g=new Object,u=!1,p=0),!m&&!u)){d.setAttribute("disabled","true"),d.style.display="",d.style.cursor="wait",d.innerHTML=mxResources.get("loading")+"...",m=!0;var o=new Object;this.currentSearch=o,this.searchEntries(c,v,p,mxUtils.bind(this,function(e,n,t){if(this.currentSearch==o){e=null!=e?e:[],m=!1,p++,l.parentNode.removeChild(l);for(var a=0;a<e.length;a++){var i=e[a]();null==g[i.innerHTML]&&(g[i.innerHTML]="1",r.appendChild(e[a]()))}if(t?(d.removeAttribute("disabled"),d.innerHTML=mxResources.get("moreResults")):(d.innerHTML=mxResources.get("reset"),d.style.display="none",u=!0),d.style.cursor="",0==e.length&&1==p){var s=document.createElement("div");s.className="geTitle",s.style.backgroundColor="transparent",s.style.borderColor="transparent",s.style.color="gray",s.style.padding="0px",s.style.margin="0px 8px 0px 8px",s.style.paddingTop="6px",s.style.textAlign="center",s.style.cursor="default",mxUtils.write(s,mxResources.get("noResultsFor",[c])),r.appendChild(s)}r.appendChild(l)}}),mxUtils.bind(this,function(){d.style.cursor=""}))}}else h(),a.value="",c="",g=new Object,d.style.display="none",u=!1,a.focus()}),mxEvent.addListener(a,"keydown",mxUtils.bind(this,function(e){13==e.keyCode&&i()})),mxEvent.addListener(a,"focus",function(){a.style.paddingRight="",s.style.display="none"}),mxEvent.addListener(a,"blur",function(){a.style.paddingRight="20px",s.style.display=""}),a.style.paddingRight="20px",mxEvent.addListener(a,"keyup",mxUtils.bind(this,function(e){""==a.value?(u=!0,d.style.display="none"):a.value!=c?(d.style.display="none",u=!1):m||(d.style.display=u?"none":"")})),mxEvent.addListener(a,"mousedown",function(e){e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0}),mxEvent.addListener(a,"selectstart",function(e){e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0});var o=document.createElement("div");o.appendChild(r),this.container.appendChild(o),this.palettes.search=[n,o]},Sidebar.prototype.createTitle=function(e){var n=document.createElement("a");return n.setAttribute("href","javascript:void(0);"),n.setAttribute("title",mxResources.get("sidebarTooltip")),n.className="geTitle",mxUtils.write(n,e),n},Sidebar.prototype.createThumb=function(e,n,t,a,i,s,o,r,l){this.graph.labelsVisible=null==s||s;var d=mxClient.NO_FO;mxClient.NO_FO=Editor.prototype.originalNoForeignObject,this.graph.view.scaleAndTranslate(1,0,0),this.graph.addCells(e);var c=this.graph.getGraphBounds(),m=Math.floor(100*Math.min((n-2*this.thumbBorder)/c.width,(t-2*this.thumbBorder)/c.height))/100;this.graph.view.scaleAndTranslate(m,Math.floor((n-c.width*m)/2/m-c.x),Math.floor((t-c.height*m)/2/m-c.y));var u=null;if(this.graph.dialect!=mxConstants.DIALECT_SVG||mxClient.NO_FO?(u=this.graph.container.cloneNode(!1)).innerHTML=this.graph.container.innerHTML:u=this.graph.view.getCanvas().ownerSVGElement.cloneNode(!0),this.graph.getModel().clear(),mxClient.NO_FO=d,mxClient.IS_IE6&&(a.style.backgroundImage="url("+this.editorUi.editor.transparentImage+")"),u.style.position="relative",u.style.overflow="hidden",u.style.cursor="move",u.style.left=this.thumbBorder+"px",u.style.top=this.thumbBorder+"px",u.style.width=n+"px",u.style.height=t+"px",u.style.visibility="",u.style.minWidth="",u.style.minHeight="",a.appendChild(u),this.sidebarTitles&&null!=i&&0!=o){var p=mxClient.IS_QUIRKS?2*this.thumbPadding+2:0;a.style.height=this.thumbHeight+p+this.sidebarTitleSize+8+"px";var g=document.createElement("div");g.style.fontSize=this.sidebarTitleSize+"px",g.style.color="#303030",g.style.textAlign="center",g.style.whiteSpace="nowrap",mxClient.IS_IE&&(g.style.height=this.sidebarTitleSize+12+"px"),g.style.paddingTop="4px",mxUtils.write(g,i),a.appendChild(g)}return c},Sidebar.prototype.createItem=function(n,t,a,e,i,s,o){var r=document.createElement("a");r.setAttribute("href","javascript:void(0);"),r.className="geItem",r.style.overflow="hidden";var l=mxClient.IS_QUIRKS?8+2*this.thumbPadding:2*this.thumbBorder;r.style.width=this.thumbWidth+l+"px",r.style.height=this.thumbHeight+l+"px",r.style.padding=this.thumbPadding+"px",mxEvent.addListener(r,"click",function(e){mxEvent.consume(e)}),this.createThumb(n,this.thumbWidth,this.thumbHeight,r,t,a,e,i,s);var d=new mxRectangle(0,0,i,s);if(1<n.length||n[0].vertex){var c=this.createDragSource(r,this.createDropHandler(n,!0,o,d),this.createDragPreview(i,s),n,d);this.addClickHandler(r,c,n),c.isGuidesEnabled=mxUtils.bind(this,function(){return this.editorUi.editor.graph.graphHandler.guidesEnabled})}else if(null!=n[0]&&n[0].edge){c=this.createDragSource(r,this.createDropHandler(n,!1,o,d),this.createDragPreview(i,s),n,d);this.addClickHandler(r,c,n)}return mxClient.IS_IOS||mxEvent.addGestureListeners(r,null,mxUtils.bind(this,function(e){this.showTooltip(r,n,d.width,d.height,t,a)})),r},Sidebar.prototype.createDropHandler=function(g,v,h,f){return h=null==h||h,mxUtils.bind(this,function(e,n,t,a,i){if(e.isEnabled()){if(0<(g=e.getImportableCells(g)).length){e.stopEditing();var s=null!=t&&e.isValidDropTarget(t,g,n),o=null;if(null==t||s||(t=null),!e.isCellLocked(t||e.getDefaultParent())){e.model.beginUpdate();try{if(a=Math.round(a),i=Math.round(i),v&&e.isSplitTarget(t,g,n)){var r=e.cloneCells(g);e.splitEdge(t,r,null,a-f.width/2,i-f.height/2),o=r}else 0<g.length&&(o=e.importCells(g,a,i,t));if(null!=e.layoutManager){var l=e.layoutManager.getLayout(t);if(null!=l)for(var d=e.view.scale,c=e.view.translate,m=(a+c.x)*d,u=(i+c.y)*d,p=0;p<o.length;p++)l.moveCell(o[p],m,u)}h&&e.fireEvent(new mxEventObject("cellsInserted","cells",o))}finally{e.model.endUpdate()}null!=o&&0<o.length&&(e.scrollCellToVisible(o[0]),e.setSelectionCells(o))}}mxEvent.consume(n)}})},Sidebar.prototype.createDragPreview=function(e,n){var t=document.createElement("div");return t.style.border="1px dashed black",t.style.width=e+"px",t.style.height=n+"px",t},Sidebar.prototype.createDragSource=function(e,n,t){var a=mxUtils.makeDraggable(e,this.editorUi.editor.graph,n,t,0,0,this.editorUi.editor.graph.autoscroll,!0,!0);return a.getDropTarget=function(e,n,t){var a=mxDragSource.prototype.getDropTarget.apply(this,arguments);return e.isValidRoot(a)||(a=null),a},a},Sidebar.prototype.addClickHandler=function(e,a){var i=this.editorUi.editor.graph,s=null;mxEvent.addGestureListeners(e,function(e){s=new mxPoint(mxEvent.getClientX(e),mxEvent.getClientY(e))});var o=a.mouseUp;a.mouseUp=function(e){if(!mxEvent.isPopupTrigger(e)&&null==this.currentGraph&&null!=s){var n=i.tolerance;if(Math.abs(s.x-mxEvent.getClientX(e))<=n&&Math.abs(s.y-mxEvent.getClientY(e))<=n){var t=i.getGridSize();a.drop(i,e,null,t,t)}}o.apply(this,arguments),s=null}},Sidebar.prototype.createVertexTemplateEntry=function(e,n,t,a,i,s,o,r){return r=null!=r&&0<r.length?r:i.toLowerCase(),this.addEntry(r,mxUtils.bind(this,function(){return this.createVertexTemplate(e,n,t,a,i,s,o)}))},Sidebar.prototype.createXmlDocument=function(e,n,t,a){var i=mxUtils.createXmlDocument().createElement(e);return i.setAttribute("label",n),t.forEach(function(e,n){i.setAttribute(e,a[n]?a[n]:"")}),i},Sidebar.prototype.createVertexTemplate=function(e,n,t,a,i,s,o,r){var l=[],d=[];switch(a){case"answer":l=["timeout"],d=["0"];break;case"start":l=["answer"],d=["yes"];break;case"googleasr":l=["key","google_asr_language","timeout","intKey","beep"],d=["","it-IT","10","#","BEEP"];break;case"tildeasr":l=["uri","appid","appsecret","timeout","intKey","beep"],d=["wss://runa.tilde.lv/client/ws/speech/LVASR-ONLINE","","","10","#","BEEP"];break;case"ispeechasr":l=["key","model","ispeech_asr_language","timeout","intKey","beep"],d=["","","it-IT","10","#","BEEP"];break;case"playback":l=["file_id","opts"],d=["0"];break;case"background":l=["file_id","response","digit"],d=["0","5","1"];break;case"menu":l=["file_id","response","digit","retry","variable_id"],d=["0","5","1","1","0"];break;case"getdigits":l=["file_id","response","mindigit","maxdigit","retry","variable_id"],d=["0","5","1","10","1","0"];break;case"getsecretdigits":l=["file_id","response","mindigit","maxdigit","retry","hiddendigitsnum","hiddendigitspos","variable_id"],d=["0","5","1","10","1","0","first","0"];break;case"custom_app":l=["application","options"],d=["",""];break;case"set":l=["variable_id","variable_value"],d=["0",""];break;case"database":l=["odbc_id","query","variable_id"],d=["0","",""];break;case"noop":l=["output"],d=[];break;case"gotoc":l=["context","extension","priority"],d=["","","1"];break;case"system":l=["variable_id","command"],d=[];break;case"agi":l=["command","args"],d=[];break;case"gotoif":l=["condition"],d=[];break;case"gotoiftime":l=["interval_id"],d=["0"];break;case"vswitch":l=["variable_id"],d=["0"];break;case"saydigits":l=["digits","escape_digits"],d=["","#"];break;case"saynumber":l=["number","escape_digits"],d=["","#"];break;case"sayphonetic":l=["text","escape_digits"],d=["","#"];break;case"record":l=["file","recordingFormat","timeout","escape_digits"],d=["","wav","-1","#"];break;case"dial":l=["sip_id","timeout","opts","url"],d=["0","60"];break;case"ext_dial":l=["phone","trunk_name","timeout","opts","url"],d=["","-1","60"];break;case"google_cloud_tts":l=["apiKey","google_cloud_tts_text_type","text","languageCode","ssmlGender"],d=["","text","","en-US","FEMALE"];break;case"tts":l=["text","google_tts_language"],d=["","it"];break;case"ispeechtts":l=["text","key","ispeech_tts_language","speed","intKey"],d=["","","euritalianfemale","0","#"];break;case"lumenvoxtts":case"sestektts":l=["text","options"],d=["",""];break;case"lumenvoxasr":l=["grammar","options"],d=["",""];break;case"sestekasr":l=["grammar","options"],d=["/usr/local/unimrcp/data/grammar.xml",""];break;case"awspolly":l=["aws_access_key_id","aws_secret_access_key","aws_polly_region","aws_polly_voice","text","aws_text_type"],d=["","","eu-west-1","Amy","","text"];break;case"awslex":l=["aws_access_key_id","aws_secret_access_key","aws_lex_region","aws_bot_name","text"],d=["","","eu-west-1","",""];break;case"queue":l=["queue_id","opts","url","file_id","timeout","agi","macro","gosub","position"],d=["-1","xX","","","300"];break;case"voicemail":l=["mailbox","options"],d=["",""];break;case"subproject":l=["project_id"],d=["0"];break;case"math":l=["operation","variable_id"],d=["","0"];break;case"queuelog":l=["queuename","agent","queue_event","data1","data2","data3","data4","data5"],d=[];break;case"goal":l=["goalname"],d=[];break;case"callback":l=["name","lastName","phone","list_id","delay","callback_priority"],d=["{CALLERID(name)}","","{CALLERID(num)}","-1","5","2"];break;case"sendSMS":l=["sms_account_id","to","sms_text"],d=["0"];break;case"sendMail":l=["account_id","to","cc","bcc","subject","text"],d=["0"];break;case"sendFax":l=["account_id","to","choose_attachment","attachment_name","attachment_type","attachment_path"],d=["0"];break;case"login":case"unpause":case"logout":l=["findBy"],d=["internal"];break;case"pause":l=["findBy","pause_id"],d=["internal",""];break;case"dialogflow":l=["key","text","dialogflow_language"],d=["","","it"];break;case"sesteknda":l=["ndauth_url","username","password","ndassistant_url","text","project","ndagenerate_audio","custom_action","custom_action_data","ndaactivity_type"],d=["","","","","","",1,"","","message"];break;case"restapi":l=["url","method","timeout","computedVariables","rawHeaders","rawBody","variable_id"],d=["","GET","5","","","",""];break;case"mrcpsynth":l=["text","options"],d=["",""];break;case"mrcprecog":l=["grammar","options"],d=["",""];break;case"dialogflowV2":l=["dialogflowV2_project_id","client_email","private_key","dialogflowV2_language","text"],d=["","","","en",""];break;default:l=[],d=[]}var c=[new mxCell(this.createXmlDocument(a,i,l,d),new mxGeometry(0,0,n,t),e)];return c[0].vertex=!0,this.createVertexTemplateFromCells(c,n,t,i,s,o,r)},Sidebar.prototype.createVertexTemplateFromCells=function(e,n,t,a,i,s,o){return this.createItem(e,a,i,s,n,t,o)},Sidebar.prototype.createEdgeTemplate=function(e,n,t,a,i,s,o){var r=new mxCell(null!=a?a:"",new mxGeometry(0,0,n,t),e);return r.geometry.setTerminalPoint(new mxPoint(0,t),!0),r.geometry.setTerminalPoint(new mxPoint(n,0),!1),r.geometry.relative=!0,r.edge=!0,this.createEdgeTemplateFromCells([r],n,t,i,s,o)},Sidebar.prototype.createEdgeTemplateFromCells=function(e,n,t,a,i,s){return this.createItem(e,a,i,!0,n,t,s)},Sidebar.prototype.addPaletteFunctions=function(e,n,t,a){this.addPalette(e,n,t,mxUtils.bind(this,function(e){for(var n=0;n<a.length;n++)e.appendChild(a[n](e))}))},Sidebar.prototype.addPalette=function(e,n,t,a){var i=this.createTitle(n);this.container.appendChild(i);var s=document.createElement("div");s.className="geSidebar",mxClient.IS_POINTER&&(s.style.touchAction="none"),mxEvent.addListener(s,"mousemove",mxUtils.bind(this,function(e){mxEvent.getSource(e)==s?s.setAttribute("title",mxResources.get("sidebarTooltip")):s.removeAttribute("title")})),t?(a(s),a=null):s.style.display="none",this.addFoldingHandler(i,s,a);var o=document.createElement("div");return o.appendChild(s),this.container.appendChild(o),null!=e&&(this.palettes[e]=[i,o]),s},Sidebar.prototype.addFoldingHandler=function(t,a,i){var s=!1;(!mxClient.IS_IE||8<=document.documentMode)&&(t.style.backgroundImage="none"==a.style.display?"url('"+this.collapsedImage+"')":"url('"+this.expandedImage+"')"),t.style.backgroundRepeat="no-repeat",t.style.backgroundPosition="0% 50%",mxEvent.addListener(t,"click",mxUtils.bind(this,function(e){if("none"==a.style.display){if(s)a.style.display="block";else if(s=!0,null!=i){t.style.cursor="wait";var n=t.innerHTML;t.innerHTML=mxResources.get("loading")+"...",window.setTimeout(function(){var e=mxClient.NO_FO;mxClient.NO_FO=Editor.prototype.originalNoForeignObject,i(a),mxClient.NO_FO=e,a.style.display="block",t.style.cursor="",t.innerHTML=n},0)}else a.style.display="block";t.style.backgroundImage="url('"+this.expandedImage+"')"}else t.style.backgroundImage="url('"+this.collapsedImage+"')",a.style.display="none";mxEvent.consume(e)}))},Sidebar.prototype.addImagePalette=function(e,n,s,o,r,t,a){for(var l=[],d=0;d<r.length;d++)mxUtils.bind(this,function(e,n,t){if(null==t){var a=e.lastIndexOf("/"),i=e.lastIndexOf(".");t=e.substring(0<=a?a+1:0,0<=i?i:e.length).replace(/[-_]/g," ")}l.push(this.createVertexTemplateEntry("image;html=1;image="+s+e+o,this.defaultImageWidth,this.defaultImageHeight,r[d],n,!1,!0,this.filterTags(t)))})(r[d],null!=t?t[d]:null,null!=a?a[r[d]]:null);this.addPaletteFunctions(e,n,!1,l)},"undefined"!=typeof html4&&(html4.ATTRIBS["a::target"]=0),mxConstants.SHADOW_OPACITY=.25,mxConstants.SHADOWCOLOR="#000000",mxConstants.VML_SHADOWCOLOR="#d0d0d0",mxGraph.prototype.pageBreakColor="#c0c0c0",mxGraph.prototype.pageScale=1,function(){try{if(null!=navigator&&null!=navigator.language){var e=navigator.language.toLowerCase();mxGraph.prototype.pageFormat="en-us"===e||"en-ca"===e||"es-mx"===e?mxConstants.PAGE_FORMAT_LETTER_PORTRAIT:mxConstants.PAGE_FORMAT_A4_PORTRAIT}}catch(e){}}(),mxText.prototype.baseSpacingTop=5,mxText.prototype.baseSpacingBottom=1,mxGraphModel.prototype.ignoreRelativeEdgeParent=!1,mxGraphView.prototype.gridImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhCgAKAJEAAAAAAP///8zMzP///yH5BAEAAAMALAAAAAAKAAoAAAIJ1I6py+0Po2wFADs=":IMAGE_PATH+"/grid.gif",mxGraphView.prototype.gridSteps=4,mxGraphView.prototype.minGridSize=4,mxGraphView.prototype.gridColor="#e0e0e0",mxSvgCanvas2D.prototype.foAltText="[Not supported by viewer]",Graph=function(e,n,t,a){mxGraph.call(this,e,n,t,a),this.setConnectable(!0),this.setDropEnabled(!1),this.setPanning(!0),this.setTooltips(!mxClient.IS_TOUCH),this.setAllowLoops(!1),this.setMultigraph(!1),this.allowAutoPanning=!0,this.resetEdgesOnConnect=!1,this.constrainChildren=!1,this.connectionHandler.targetConnectImage=!0,this.setAllowDanglingEdges(!1),this.connectionHandler.setCreateTarget(!1),this.connectionHandler.isValidSource=function(){return mxConnectionHandler.prototype.isValidSource.apply(this,arguments)&&"2"!=urlParams.connect},this.alternateEdgeStyle="vertical",null==a&&this.loadStylesheet();var i=new mxRubberband(this);this.getRubberband=function(){return i},this.panningHandler.addListener(mxEvent.PAN_START,mxUtils.bind(this,function(){this.container.style.cursor="pointer"})),this.panningHandler.addListener(mxEvent.PAN_END,mxUtils.bind(this,function(){this.container.style.cursor="default"})),this.isHtmlLabel=function(e){var n=this.view.getState(e),t=null!=n?n.style:this.getCellStyle(e);return"1"==t.html||"wrap"==t.whiteSpace},this.cellRenderer.getLabelValue=function(e){var n=mxCellRenderer.prototype.getLabelValue.apply(this,arguments);return"wrap"==e.style.whiteSpace&&1!=e.style.html&&(n=mxUtils.htmlEntities(n,!1)),n},this.isCellLocked=function(e){return!1},this.connectionHandler.tapAndHoldTolerance=16;var s=this.connectionHandler.tapAndHold;this.connectionHandler.tapAndHold=function(e,n){null==n?this.graph.panningHandler.active||(i.start(e.getGraphX(),e.getGraphY()),this.graph.panningHandler.panningTrigger=!1):tapAndHoldStartsConnection?s.apply(this,arguments):this.graph.isCellSelected(n.cell)&&1<this.graph.getSelectionCount()&&this.graph.removeSelectionCell(n.cell)},touchStyle&&this.initTouch()},mxUtils.extend(Graph,mxGraph),Graph.prototype.minFitScale=null,Graph.prototype.maxFitScale=null,Graph.prototype.loadStylesheet=function(){var e=mxUtils.load(STYLE_PATH+"/default.xml").getDocumentElement();new mxCodec(e.ownerDocument).decode(e,this.getStylesheet())},Graph.prototype.flipEdge=function(e){if(null!=e){var n=this.view.getState(e),t=null!=n?n.style:this.getCellStyle(e);if(null!=t){var a=mxUtils.getValue(t,mxConstants.STYLE_ELBOW,mxConstants.ELBOW_HORIZONTAL)==mxConstants.ELBOW_HORIZONTAL?mxConstants.ELBOW_VERTICAL:mxConstants.ELBOW_HORIZONTAL;this.setCellStyles(mxConstants.STYLE_ELBOW,a,[e])}}},Graph.prototype.setDefaultEdge=function(e){if(null!=e&&this.getModel().isEdge(e)){var n=this.getModel().cloneCells([e])[0];null!=n.geometry&&(n.geometry.points=null);var t=n.getStyle();t=mxUtils.setStyle(t,mxConstants.STYLE_ENTRY_X,null),t=mxUtils.setStyle(t,mxConstants.STYLE_ENTRY_Y,null),t=mxUtils.setStyle(t,mxConstants.STYLE_EXIT_X,null),t=mxUtils.setStyle(t,mxConstants.STYLE_EXIT_Y,null),n.setStyle(t),this.connectionHandler.createEdgeState=function(e){return this.graph.view.createState(n)},this.connectionHandler.factoryMethod=function(){return this.graph.cloneCells([n])[0]}}},Graph.prototype.isCellFoldable=function(e){return this.foldingEnabled&&this.isSwimlane(e)},Graph.prototype.isValidRoot=function(e){return this.isSwimlane(e)},Graph.prototype.createGroupCell=function(){var e=mxGraph.prototype.createGroupCell.apply(this,arguments);return e.setStyle("group"),e},Graph.prototype.getTooltipForCell=function(e){var n="";return this.getModel().isVertex(e)?n+=mxResources.get("description_"+e.value.nodeName)||"":this.getModel().isEdge(e)&&(n=mxGraph.prototype.getTooltipForCell.apply(this,arguments)),n},Graph.prototype.convertValueToString=function(e){return null!=e.value&&"object"==typeof e.value?e.value.getAttribute("label"):mxGraph.prototype.convertValueToString.apply(this,arguments)},Graph.prototype.cellLabelChanged=function(e,n,t){if(null!=e.value&&"object"==typeof e.value){var a=e.value.cloneNode(!0);a.setAttribute("label",n),n=a}mxGraph.prototype.cellLabelChanged.apply(this,arguments)},Graph.prototype.setLinkForCell=function(e,n){var t=null;null!=e.value&&"object"==typeof e.value?t=e.value.cloneNode(!0):(t=mxUtils.createXmlDocument().createElement("UserObject")).setAttribute("label",e.value);null!=n&&0<n.length?t.setAttribute("link",n):t.removeAttribute("link"),this.model.setValue(e,t)},Graph.prototype.getLinkForCell=function(e){return null!=e.value&&"object"==typeof e.value?e.value.getAttribute("link"):null},Graph.prototype.initTouch=function(){this.connectionHandler.marker.isEnabled=function(){return null!=this.graph.connectionHandler.first},this.addListener(mxEvent.START_EDITING,function(e,n){this.panningHandler.hideMenu()});var s=!1,o=null;this.updateMouseEvent=function(e){if(mxGraph.prototype.updateMouseEvent.apply(this,arguments),null==e.getState()){var n=this.getCellAt(e.graphX,e.graphY);this.getModel().isEdge(n)&&(e.state=this.view.getState(n),null!=e.state&&null!=e.state.shape&&(this.container.style.cursor=e.state.shape.node.style.cursor))}null==e.getState()&&(this.container.style.cursor="default")},this.fireMouseEvent=function(e,n,t){if(e==mxEvent.MOUSE_DOWN)this.panningHandler.isMenuShowing()?(s=!1,o=null):(o=n.getCell(),s=null!=o?this.isCellSelected(o):this.isSelectionEmpty());else if(e==mxEvent.MOUSE_UP){if(s&&!this.isEditing()){if(!this.panningHandler.isMenuShowing()){var a=mxEvent.getClientX(n.getEvent()),i=mxEvent.getClientY(n.getEvent());this.panningHandler.popup(a+16,i,o,n.getEvent())}return s=!1,o=null,void n.consume()}s=!1,o=null}mxGraph.prototype.fireMouseEvent.apply(this,arguments),e==mxEvent.MOUSE_MOVE&&n.isConsumed()&&(s=!1,o=null)}},function(){if(mxVertexHandler.prototype.rotationEnabled=!0,mxText.prototype.baseSpacingTop=5,mxText.prototype.baseSpacingBottom=1,touchStyle){mxConstants.HANDLE_SIZE=16,mxConstants.LABEL_HANDLE_SIZE=7,mxClient.IS_TOUCH&&(mxVertexHandler.prototype.tolerance=4,mxEdgeHandler.prototype.tolerance=6,Graph.prototype.tolerance=14,Graph.prototype.gridSize=20,mxPanningHandler.prototype.selectOnPopup=!1,mxPanningHandler.prototype.useLeftButtonForPanning=!0,mxPanningHandler.prototype.isPanningTrigger=function(e){var n=e.getEvent();return this.useLeftButtonForPanning&&(this.ignoreCell||null==e.getState())||mxEvent.isControlDown(n)&&mxEvent.isShiftDown(n)||this.usePopupTrigger&&mxEvent.isPopupTrigger(n)});var t=mxGraphHandler.prototype.mouseDown;mxGraphHandler.prototype.mouseDown=function(e,n){t.apply(this,arguments),this.graph.isCellSelected(n.getCell())&&1<this.graph.getSelectionCount()&&(this.delayedSelection=!1)},Graph.prototype.createHandlers=function(e){this.tooltipHandler=new mxTooltipHandler(this),this.tooltipHandler.setEnabled(!1),this.selectionCellsHandler=new mxSelectionCellsHandler(this),this.panningHandler=new mxPanningHandler(this),this.panningHandler.panningEnabled=!1,this.connectionHandler=new mxConnectionHandler(this),this.connectionHandler.setEnabled(!1),this.graphHandler=new mxGraphHandler(this)},mxConnectionHandler.prototype.selectCells=function(e,n){touchStyle&&null!=n?this.graph.setSelectionCell(n):this.graph.setSelectionCell(e)};var a=mxGraph.prototype.dblClick;Graph.prototype.dblClick=function(e,n){if(null==n){var t=mxUtils.convertPoint(this.container,mxEvent.getClientX(e),mxEvent.getClientY(e));n=this.getCellAt(t.x,t.y)}a.call(this,e,n)};var e=new mxImage(IMAGE_PATH+"/touch-handle.png",16,16);mxVertexHandler.prototype.handleImage=e,mxEdgeHandler.prototype.handleImage=e,mxOutline.prototype.sizerImage=e,(new Image).src=e.src;var n=IMAGE_PATH+"/touch-connector.png",i=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){i.apply(this,arguments),showConnectorImg&&this.graph.connectionHandler.isEnabled()&&this.graph.isCellConnectable(this.state.cell)&&!this.graph.isValidRoot(this.state.cell)&&1==this.graph.getSelectionCount()&&(this.connectorImg=mxUtils.createImage(n),this.connectorImg.style.cursor="pointer",this.connectorImg.style.width="29px",this.connectorImg.style.height="29px",this.connectorImg.style.position="absolute",mxClient.IS_TOUCH||(this.connectorImg.setAttribute("title",mxResources.get("connect")),mxEvent.redirectMouseEvents(this.connectorImg,this.graph,this.state)),this.connectorImg.style.padding="2px",mxEvent.addGestureListeners(this.connectorImg,mxUtils.bind(this,function(e){this.graph.panningHandler.hideMenu();var n=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e));this.graph.connectionHandler.start(this.state,n.x,n.y),this.graph.isMouseDown=!0,mxEvent.consume(e)})),this.graph.container.appendChild(this.connectorImg)),this.redrawTools()};var s=mxVertexHandler.prototype.redraw;mxVertexHandler.prototype.redraw=function(){s.apply(this),this.redrawTools()},mxVertexHandler.prototype.redrawTools=function(){null!=this.state&&null!=this.connectorImg&&(mxVertexHandler.prototype.singleSizer?(this.connectorImg.style.left=this.state.x+this.state.width-this.connectorImg.offsetWidth/2+"px",this.connectorImg.style.top=this.state.y-this.connectorImg.offsetHeight/2+"px"):(this.connectorImg.style.left=this.state.x+this.state.width+mxConstants.HANDLE_SIZE/2+4+"px",this.connectorImg.style.top=this.state.y+(this.state.height-this.connectorImg.offsetHeight)/2+"px"))};var o=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(e,n){o.apply(this,arguments),null!=this.connectorImg&&(this.connectorImg.parentNode.removeChild(this.connectorImg),this.connectorImg=null)},(new Image).src=n}else{var r=new mxImage(IMAGE_PATH+"/connector.png",15,15);if(mxConnectionHandler.prototype.connectImage=r,(new Image).src=r.src,"2"==urlParams.connect){r=new mxImage(IMAGE_PATH+"/connector.png",15,15),i=mxVertexHandler.prototype.init;mxVertexHandler.prototype.init=function(){i.apply(this,arguments),showConnectorImg&&this.graph.connectionHandler.isEnabled()&&this.graph.isCellConnectable(this.state.cell)&&!this.graph.isValidRoot(this.state.cell)&&1==this.graph.getSelectionCount()&&(mxClient.IS_IE&&!mxClient.IS_SVG?(this.connectorImg=document.createElement("div"),this.connectorImg.style.backgroundImage="url("+r.src+")",this.connectorImg.style.backgroundPosition="center",this.connectorImg.style.backgroundRepeat="no-repeat",this.connectorImg.style.width=r.width+4+"px",this.connectorImg.style.height=r.height+4+"px",this.connectorImg.style.display=mxClient.IS_QUIRKS?"inline":"inline-block"):(this.connectorImg=mxUtils.createImage(r.src),this.connectorImg.style.width=r.width+"px",this.connectorImg.style.height=r.height+"px"),this.connectorImg.style.cursor="pointer",this.connectorImg.style.position="absolute",this.connectorImg.setAttribute("title",mxResources.get("connect")),mxEvent.redirectMouseEvents(this.connectorImg,this.graph,this.state),this.connectorImg.style.padding="2px",mxEvent.addListener(this.connectorImg,"mousedown",mxUtils.bind(this,function(e){this.graph.panningHandler.hideMenu();var n=mxUtils.convertPoint(this.graph.container,mxEvent.getClientX(e),mxEvent.getClientY(e));this.graph.connectionHandler.start(this.state,n.x,n.y),this.graph.isMouseDown=!0,mxEvent.consume(e)})),this.graph.container.appendChild(this.connectorImg)),this.redrawTools()};s=mxVertexHandler.prototype.redraw;mxVertexHandler.prototype.redraw=function(){s.apply(this),this.redrawTools()},mxVertexHandler.prototype.redrawTools=function(){null!=this.state&&null!=this.connectorImg&&(mxVertexHandler.prototype.singleSizer?(this.connectorImg.style.left=this.state.x+this.state.width-this.connectorImg.offsetWidth/2+"px",this.connectorImg.style.top=this.state.y-this.connectorImg.offsetHeight/2+"px"):(this.connectorImg.style.left=this.state.x+this.state.width+mxConstants.HANDLE_SIZE/2+2+"px",this.connectorImg.style.top=this.state.y+(this.state.height-this.connectorImg.offsetHeight)/2+"px"))};o=mxVertexHandler.prototype.destroy;mxVertexHandler.prototype.destroy=function(e,n){o.apply(this,arguments),null!=this.connectorImg&&(this.connectorImg.parentNode.removeChild(this.connectorImg),this.connectorImg=null)}}}}(),Actions.prototype.init=function(){var n=this.editorUi,l=n.editor,d=l.graph;this.addAction("new",function(){n.projectDesignController.newProject()},CRUD_PERMISSIONS.canEdit),this.addAction("open",function(){n.projectDesignController.openProject()},CRUD_PERMISSIONS.canEdit),this.addAction("save",function(){n.projectDesignController.saveOrPublishProject(mxUtils.getPrettyXml(l.getGraphXml())),n.editor.modified=!1},CRUD_PERMISSIONS.canEdit,null,"Ctrl+S"),this.addAction("saveAs",function(){n.projectDesignController.saveProjectAs(mxUtils.getPrettyXml(l.getGraphXml()))},CRUD_PERMISSIONS.canEdit,null,"Ctrl+Shift+S"),this.addAction("publish",function(){n.editor.setStatus(""),null===n.validate()?(n.projectDesignController.saveOrPublishProject(mxUtils.getPrettyXml(l.getGraphXml()),!0),n.editor.modified=!1):(n.editor.setStatus("...Error publishing! Please check the project and try again!"),setTimeout(function(){n.editor.setStatus("")},3e3))},CRUD_PERMISSIONS.canEdit,null,"Ctrl+Shift+P"),this.addAction("variable",function(){n.projectDesignController.newVariable()},CRUD_PERMISSIONS.canEdit),this.addAction("import",function(){n.projectDesignController.importXML(function(e){l.setGraphXml(mxUtils.parseXml(e).documentElement)})},CRUD_PERMISSIONS.canEdit),this.addAction("export",function(){n.exportXML(mxUtils.getPrettyXml(l.getGraphXml()))},null,null,"Ctrl+E"),this.addAction("editFile",function(){n.projectDesignController.editXML(mxUtils.getPrettyXml(l.getGraphXml()),function(e){l.setGraphXml(mxUtils.parseXml(e).documentElement)})},CRUD_PERMISSIONS.canEdit),this.addAction("print",function(){mxUtils.printScreen(d)},null,"sprite-print","Ctrl+P"),this.addAction("preview",function(){mxUtils.show(d,null,10,10)}),this.addAction("undo",function(){l.undoManager.undo()},null,"sprite-undo","Ctrl+Z"),this.addAction("redo",function(){l.undoManager.redo()},null,"sprite-redo","Ctrl+Y"),this.addAction("cut",function(){mxClipboard.cut(d)},null,"sprite-cut","Ctrl+X"),this.addAction("copy",function(){mxClipboard.copy(d)},null,"sprite-copy","Ctrl+C"),this.addAction("paste",function(){mxClipboard.paste(d)},!1,"sprite-paste","Ctrl+V"),this.addAction("delete",function(){d.removeCells()},null,null,"Delete"),this.addAction("duplicate",function(){var e=d.gridSize;d.setSelectionCells(d.moveCells(d.getSelectionCells(),e,e,!0))},null,null,"Ctrl+D"),this.addAction("selectVertices",function(){d.selectVertices()},null,null,"Ctrl+Shift+V"),this.addAction("selectEdges",function(){d.selectEdges()},null,null,"Ctrl+Shift+E"),this.addAction("selectAll",function(){d.selectAll()},null,null,"Ctrl+A"),this.addAction("home",function(){d.home()},null,null,"Home"),this.addAction("exitGroup",function(){d.exitGroup()},null,null,"Page Up"),this.addAction("enterGroup",function(){d.enterGroup()},null,null,"Page Down"),this.addAction("expand",function(){d.foldCells(!1)},null,null,"Enter"),this.addAction("collapse",function(){d.foldCells(!0)},null,null,"Backspace"),this.addAction("toFront",function(){d.orderCells(!1)},null,null,"Ctrl+F"),this.addAction("toBack",function(){d.orderCells(!0)},null,null,"Ctrl+B"),this.addAction("group",function(){d.setSelectionCell(d.groupCells(null,0))},null,null,"Ctrl+G"),this.addAction("ungroup",function(){d.setSelectionCells(d.ungroupCells())},null,null,"Ctrl+U"),this.addAction("removeFromGroup",function(){d.removeCellsFromParent()}),this.addAction("editLink",function(){var e=d.getSelectionCell(),n=d.getLinkForCell(e);null==n&&(n=""),null!=(n=mxUtils.prompt(mxResources.get("enterValue"),n))&&d.setLinkForCell(e,n)}),this.addAction("openLink",function(){var e=d.getSelectionCell(),n=d.getLinkForCell(e);null!=n&&window.open(n)}),this.addAction("autosize",function(){var e=d.getSelectionCells();if(null!=e){d.getModel().beginUpdate();try{for(var n=0;n<e.length;n++){var t=e[n];d.getModel().getChildCount(t)?d.updateGroupBounds([t],20):d.updateCellSize(t)}}finally{d.getModel().endUpdate()}}}),this.addAction("wordWrap",function(){var e=d.getView().getState(d.getSelectionCell()),n="wrap";null!=e&&"wrap"==e.style[mxConstants.STYLE_WHITE_SPACE]&&(n=null),d.setCellStyles(mxConstants.STYLE_WHITE_SPACE,n)}),this.addAction("rotation",function(){var e="0",n=d.getView().getState(d.getSelectionCell());null!=n&&(e=n.style[mxConstants.STYLE_ROTATION]||e),null!=(e=mxUtils.prompt(mxResources.get("enterValue")+" ("+mxResources.get("rotation")+" 0-360)",e))&&d.setCellStyles(mxConstants.STYLE_ROTATION,e)}),this.addAction("tilt",function(){var e=d.getSelectionCells();if(null!=e){d.getModel().beginUpdate();try{for(var n=0;n<e.length;n++){var t=e[n];if(d.getModel().isVertex(t)&&0==d.getModel().getChildCount(t)){var a=d.getCellGeometry(t);if(null!=a){(a=a.clone()).x+=a.width/2-a.height/2,a.y+=a.height/2-a.width/2;var i=a.width;a.width=a.height,a.height=i,d.getModel().setGeometry(t,a);var s=d.view.getState(t);if(null!=s){var o=s.style[mxConstants.STYLE_DIRECTION]||"east";"east"==o?o="south":"south"==o?o="west":"west"==o?o="north":"north"==o&&(o="east"),d.setCellStyles(mxConstants.STYLE_DIRECTION,o,[t])}}}}}finally{d.getModel().endUpdate()}}},null,null,"Ctrl+R"),this.addAction("actualSize",function(){d.zoomTo(1)}),this.addAction("zoomIn",function(){d.zoomIn()},null,null,"Add"),this.addAction("zoomOut",function(){d.zoomOut()},null,null,"Subtract"),this.addAction("fitWindow",function(){d.fit()}),this.addAction("fitPage",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();var e=d.pageFormat,n=d.pageScale,t=d.container.clientWidth-20,a=d.container.clientHeight-20,i=Math.floor(100*Math.min(t/e.width/n,a/e.height/n))/100;d.zoomTo(i),d.container.scrollLeft=Math.round(d.view.translate.x*i-Math.max(10,(d.container.clientWidth-e.width*n*i)/2)),d.container.scrollTop=Math.round(d.view.translate.y*i-Math.max(10,(d.container.clientHeight-e.height*n*i)/2))})),this.addAction("fitPageWidth",mxUtils.bind(this,function(){d.pageVisible||this.get("pageView").funct();var e=d.pageFormat,n=d.pageScale,t=d.container.clientWidth-20,a=Math.floor(100*t/e.width/n)/100;d.zoomTo(a),d.container.scrollLeft=Math.round(d.view.translate.x*a-Math.max(10,(d.container.clientWidth-e.width*n*a)/2)),d.container.scrollTop=Math.round(d.view.translate.y*a-Math.max(10,(d.container.clientHeight-e.height*n*a)/2))})),this.put("customZoom",new Action(mxResources.get("custom"),function(){var e=mxUtils.prompt(mxResources.get("enterValue")+" (%)",parseInt(100*d.getView().getScale()));null!=e&&0<e.length&&!isNaN(parseInt(e))&&d.zoomTo(parseInt(e)/100)}));var e=null;(e=this.addAction("grid",function(){d.setGridEnabled(!d.isGridEnabled()),l.updateGraphComponents()},null,null,"Ctrl+Shift+G")).setToggleAction(!0),e.setSelectedCallback(function(){return d.isGridEnabled()}),(e=this.addAction("guides",function(){d.graphHandler.guidesEnabled=!d.graphHandler.guidesEnabled})).setToggleAction(!0),e.setSelectedCallback(function(){return d.graphHandler.guidesEnabled}),(e=this.addAction("tooltips",function(){d.tooltipHandler.setEnabled(!d.tooltipHandler.isEnabled())})).setToggleAction(!0),e.setSelectedCallback(function(){return d.tooltipHandler.isEnabled()}),(e=this.addAction("navigation",function(){d.foldingEnabled=!d.foldingEnabled,d.view.revalidate()})).setToggleAction(!0),e.setSelectedCallback(function(){return d.foldingEnabled}),(e=this.addAction("scrollbars",function(){if(d.scrollbars=!d.scrollbars,l.updateGraphComponents(),d.scrollbars){var e=d.view.translate.x,n=d.view.translate.y;d.view.translate.x=0,d.view.translate.y=0,d.sizeDidChange(),d.container.scrollLeft-=Math.round(e*d.view.scale),d.container.scrollTop-=Math.round(n*d.view.scale)}else{var t=d.view.translate;d.view.setTranslate(t.x-d.container.scrollLeft/d.view.scale,t.y-d.container.scrollTop/d.view.scale),d.container.scrollLeft=0,d.container.scrollTop=0,d.sizeDidChange()}},!mxClient.IS_TOUCH)).setToggleAction(!0),e.setSelectedCallback(function(){return"auto"==d.container.style.overflow}),(e=this.addAction("pageView",mxUtils.bind(this,function(){d.pageVisible=!d.pageVisible,d.pageBreaksVisible=d.pageVisible,d.preferPageSize=d.pageBreaksVisible,d.view.validate(),d.sizeDidChange(),l.updateGraphComponents(),l.outline.update(),mxUtils.hasScrollbars(d.container)&&(d.pageVisible?(d.container.scrollLeft-=20,d.container.scrollTop-=20):(d.container.scrollLeft+=20,d.container.scrollTop+=20))}))).setToggleAction(!0),e.setSelectedCallback(function(){return d.pageVisible}),(e=this.addAction("connect",function(){d.setConnectable(!d.connectionHandler.isEnabled())},null,null,"Ctrl+Q")).setToggleAction(!0),e.setSelectedCallback(function(){return d.connectionHandler.isEnabled()}),(e=this.addAction("copyConnect",function(){d.connectionHandler.setCreateTarget(!d.connectionHandler.isCreateTarget())})).setToggleAction(!0),e.setSelectedCallback(function(){return d.connectionHandler.isCreateTarget()}),this.addAction("help",function(){window.open("https://wiki.xcallymotion.com/display/XMV/Cally+Square")}),this.put("about",new Action(mxResources.get("about")+" Cally Square",function(){window.open("http://callysquare.com/")},null,null,null));var t=mxUtils.bind(this,function(e,n){this.addAction(e,function(){d.toggleCellStyleFlags(mxConstants.STYLE_FONTSTYLE,n)})});t("bold",mxConstants.FONT_BOLD),t("italic",mxConstants.FONT_ITALIC),t("underline",mxConstants.FONT_UNDERLINE),this.addAction("shadow",function(){d.toggleCellStyles(mxConstants.STYLE_SHADOW)}),this.addAction("dashed",function(){d.toggleCellStyles(mxConstants.STYLE_DASHED)}),this.addAction("rounded",function(){d.toggleCellStyles(mxConstants.STYLE_ROUNDED)}),this.addAction("curved",function(){d.toggleCellStyles(mxConstants.STYLE_CURVED)}),this.addAction("style",function(){var e=d.getSelectionCells();if(null!=e&&0<e.length){var n=d.getModel(),t=mxUtils.prompt(mxResources.get("enterValue")+" ("+mxResources.get("style")+")",n.getStyle(e[0])||"");null!=t&&d.setCellStyle(t,e)}}),this.addAction("setAsDefaultEdge",function(){d.setDefaultEdge(d.getSelectionCell())}),this.addAction("addWaypoint",function(){var e=d.getSelectionCell();if(null!=e&&d.getModel().isEdge(e)){var n=l.graph.selectionCellsHandler.getHandler(e);if(n instanceof mxEdgeHandler){var t=d.view.translate,a=d.view.scale,i=t.x,s=t.y,o=d.getModel().getParent(e),r=d.getCellGeometry(o);d.getModel().isVertex(o)&&null!=r&&(i+=r.x,s+=r.y),n.addPointAt(n.state,d.panningHandler.triggerX/a-i,d.panningHandler.triggerY/a-s)}}}),this.addAction("removeWaypoint",function(){var e=n.actions.get("removeWaypoint");null!=e.handler&&e.handler.removePoint(e.handler.state,e.index)}),this.addAction("image",function(){var e="",n=d.getView().getState(d.getSelectionCell());if(null!=n&&(e=n.style[mxConstants.STYLE_IMAGE]||e),null!=(e=mxUtils.prompt(mxResources.get("enterValue")+" ("+mxResources.get("url")+")",e))&&0<e.length){var t=new Image;t.onload=function(){!function(e,n,t){var a=null,i=d.getSelectionCells();d.getModel().beginUpdate();try{if(0==i.length){var s=d.getGridSize();a=i=[d.insertVertex(d.getDefaultParent(),null,"",s,s,n,t)]}if(d.setCellStyles(mxConstants.STYLE_IMAGE,e,i),d.setCellStyles(mxConstants.STYLE_SHAPE,"image",i),1==d.getSelectionCount()&&null!=n&&null!=t){var o=i[0],r=d.getModel().getGeometry(o);null!=r&&((r=r.clone()).width=n,r.height=t,d.getModel().setGeometry(o,r))}}finally{d.getModel().endUpdate()}null!=a&&(d.setSelectionCells(a),d.scrollCellToVisible(a[0]))}(e,t.width,t.height)},t.onerror=function(){mxUtils.alert(mxResources.get("fileNotFound"))},t.src=e}})},Actions.prototype.addAction=function(e,n,t,a,i){return this.put(e,new Action(mxResources.get(e),n,t,a,i))},Actions.prototype.put=function(e,n){return this.actions[e]=n},Actions.prototype.get=function(e){return this.actions[e]},mxUtils.extend(Action,mxEventSource),Action.prototype.setEnabled=function(e){this.enabled!=e&&(this.enabled=e,this.fireEvent(new mxEventObject("stateChanged")))},Action.prototype.setToggleAction=function(e){this.toggleAction=e},Action.prototype.setSelectedCallback=function(e){this.selectedCallback=e},Action.prototype.isSelected=function(){return this.selectedCallback()},Menus=function(e){this.editorUi=e,this.menus=new Object,this.init(),(new Image).src=IMAGE_PATH+"/checkmark.gif"},Menus.prototype.init=function(){var i=this.editorUi.editor.graph;this.put("fontFamily",new Menu(mxUtils.bind(this,function(e,n){for(var t=["Helvetica","Verdana","Times New Roman","Garamond","Comic Sans MS","Courier New","Georgia","Lucida Console","Tahoma"],a=0;a<t.length;a++){this.styleChange(e,t[a],[mxConstants.STYLE_FONTFAMILY],[t[a]],null,n).firstChild.nextSibling.style.fontFamily=t[a]}e.addSeparator(n),this.promptChange(e,mxResources.get("custom"),"",mxConstants.DEFAULT_FONTFAMILY,mxConstants.STYLE_FONTFAMILY,n)}))),this.put("fontSize",new Menu(mxUtils.bind(this,function(e,n){for(var t=[6,8,9,10,11,12,14,18,24,36,48,72],a=0;a<t.length;a++)this.styleChange(e,t[a],[mxConstants.STYLE_FONTSIZE],[t[a]],null,n);e.addSeparator(n),this.promptChange(e,mxResources.get("custom"),"(pt)","12",mxConstants.STYLE_FONTSIZE,n)}))),this.put("linewidth",new Menu(mxUtils.bind(this,function(e,n){for(var t=[1,2,3,4,8,12,16,24],a=0;a<t.length;a++)this.styleChange(e,t[a]+"px",[mxConstants.STYLE_STROKEWIDTH],[t[a]],null,n);e.addSeparator(n),this.promptChange(e,mxResources.get("custom"),"(px)","1",mxConstants.STYLE_STROKEWIDTH,n)}))),this.put("line",new Menu(mxUtils.bind(this,function(e,n){this.styleChange(e,mxResources.get("straight"),[mxConstants.STYLE_EDGE],[null],null,n),this.styleChange(e,mxResources.get("entityRelation"),[mxConstants.STYLE_EDGE],["entityRelationEdgeStyle"],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("horizontal"),[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW],["elbowEdgeStyle","horizontal"],null,n),this.styleChange(e,mxResources.get("vertical"),[mxConstants.STYLE_EDGE,mxConstants.STYLE_ELBOW],["elbowEdgeStyle","vertical"],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("manual"),[mxConstants.STYLE_EDGE],["segmentEdgeStyle"],null,n),this.styleChange(e,mxResources.get("automatic"),[mxConstants.STYLE_EDGE],["orthogonalEdgeStyle"],null,n)}))),this.put("lineend",new Menu(mxUtils.bind(this,function(e,n){this.styleChange(e,mxResources.get("classic"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_CLASSIC],null,n),this.styleChange(e,mxResources.get("openArrow"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_OPEN],null,n),this.styleChange(e,mxResources.get("block"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_BLOCK],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("oval"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_OVAL],null,n),this.styleChange(e,mxResources.get("diamond"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_DIAMOND],null,n),this.styleChange(e,mxResources.get("diamondThin"),[mxConstants.STYLE_ENDARROW],[mxConstants.ARROW_DIAMOND_THIN],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("none"),[mxConstants.STYLE_ENDARROW],[mxConstants.NONE],null,n),e.addSeparator(n),e.addItem(mxResources.get("transparent"),null,function(){i.toggleCellStyles("endFill",!0)},n,null,!0),e.addSeparator(n),this.promptChange(e,mxResources.get("size"),"(px)",mxConstants.DEFAULT_MARKERSIZE,mxConstants.STYLE_ENDSIZE,n)}))),this.put("linestart",new Menu(mxUtils.bind(this,function(e,n){this.styleChange(e,mxResources.get("classic"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_CLASSIC],null,n),this.styleChange(e,mxResources.get("openArrow"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_OPEN],null,n),this.styleChange(e,mxResources.get("block"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_BLOCK],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("oval"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_OVAL],null,n),this.styleChange(e,mxResources.get("diamond"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_DIAMOND],null,n),this.styleChange(e,mxResources.get("diamondThin"),[mxConstants.STYLE_STARTARROW],[mxConstants.ARROW_DIAMOND_THIN],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("none"),[mxConstants.STYLE_STARTARROW],[mxConstants.NONE],null,n),e.addSeparator(n),e.addItem(mxResources.get("transparent"),null,function(){i.toggleCellStyles("startFill",!0)},n,null,!0),e.addSeparator(n),this.promptChange(e,mxResources.get("size"),"(px)",mxConstants.DEFAULT_MARKERSIZE,mxConstants.STYLE_STARTSIZE,n)}))),this.put("spacing",new Menu(mxUtils.bind(this,function(e,n){var t=this.editorUi.actions.get("shadow").enabled,a=this.get("line").enabled;(t||e.showDisabled)&&(this.promptChange(e,mxResources.get("top"),"(px)","0",mxConstants.STYLE_SPACING_TOP,n,t),this.promptChange(e,mxResources.get("right"),"(px)","0",mxConstants.STYLE_SPACING_RIGHT,n,t),this.promptChange(e,mxResources.get("bottom"),"(px)","0",mxConstants.STYLE_SPACING_BOTTOM,n,t),this.promptChange(e,mxResources.get("left"),"(px)","0",mxConstants.STYLE_SPACING_LEFT,n,t),e.addSeparator(n),this.promptChange(e,mxResources.get("global"),"(px)","0",mxConstants.STYLE_SPACING,n,t),this.promptChange(e,mxResources.get("perimeter"),"(px)","0",mxConstants.STYLE_PERIMETER_SPACING,n,t)),(a||e.showDisabled)&&(e.addSeparator(n),this.promptChange(e,mxResources.get("sourceSpacing"),"(px)","0",mxConstants.STYLE_SOURCE_PERIMETER_SPACING,n,a),this.promptChange(e,mxResources.get("targetSpacing"),"(px)","0",mxConstants.STYLE_TARGET_PERIMETER_SPACING,n,a))}))),this.put("format",new Menu(mxUtils.bind(this,function(e,n){this.addMenuItem(e,"style",n)}))),this.put("text",new Menu(mxUtils.bind(this,function(e,n){var t=this.get("text").enabled;e.addSeparator(n),this.addSubmenu("fontFamily",e,n),this.addSubmenu("fontSize",e,n),this.addMenuItems(e,["-","bold","italic","underline","-"],n),this.addSubmenu("alignment",e,n),this.addMenuItem(e,"wordWrap",n),e.addSeparator(n),this.promptChange(e,mxResources.get("textOpacity"),"(%)","100",mxConstants.STYLE_TEXT_OPACITY,n,t),e.addItem(mxResources.get("hide"),null,function(){i.toggleCellStyles(mxConstants.STYLE_NOLABEL,!1)},n,null,t)}))),this.put("alignment",new Menu(mxUtils.bind(this,function(e,n){this.styleChange(e,mxResources.get("leftAlign"),[mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_LEFT],null,n),this.styleChange(e,mxResources.get("center"),[mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_CENTER],null,n),this.styleChange(e,mxResources.get("rightAlign"),[mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_RIGHT],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("topAlign"),[mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_TOP],null,n),this.styleChange(e,mxResources.get("middle"),[mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_MIDDLE],null,n),this.styleChange(e,mxResources.get("bottomAlign"),[mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_BOTTOM],null,n),e.addSeparator(n),this.addSubmenu("position",e,n),this.addSubmenu("spacing",e,n),e.addSeparator(n);var t=this.get("text").enabled;e.addItem(mxResources.get("vertical"),null,function(){i.toggleCellStyles(mxConstants.STYLE_HORIZONTAL,!0)},n,null,t)}))),this.put("position",new Menu(mxUtils.bind(this,function(e,n){this.styleChange(e,mxResources.get("left"),[mxConstants.STYLE_LABEL_POSITION,mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_LEFT,mxConstants.ALIGN_RIGHT],null,n),this.styleChange(e,mxResources.get("center"),[mxConstants.STYLE_LABEL_POSITION,mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_CENTER,mxConstants.ALIGN_CENTER],null,n),this.styleChange(e,mxResources.get("right"),[mxConstants.STYLE_LABEL_POSITION,mxConstants.STYLE_ALIGN],[mxConstants.ALIGN_RIGHT,mxConstants.ALIGN_LEFT],null,n),e.addSeparator(n),this.styleChange(e,mxResources.get("top"),[mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_TOP,mxConstants.ALIGN_BOTTOM],null,n),this.styleChange(e,mxResources.get("middle"),[mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_MIDDLE,mxConstants.ALIGN_MIDDLE],null,n),this.styleChange(e,mxResources.get("bottom"),[mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.STYLE_VERTICAL_ALIGN],[mxConstants.ALIGN_BOTTOM,mxConstants.ALIGN_TOP],null,n)}))),this.put("direction",new Menu(mxUtils.bind(this,function(e,n){e.addItem(mxResources.get("flipH"),null,function(){i.toggleCellStyles(mxConstants.STYLE_FLIPH,!1)},n),e.addItem(mxResources.get("flipV"),null,function(){i.toggleCellStyles(mxConstants.STYLE_FLIPV,!1)},n),this.addMenuItems(e,["-","tilt","rotation"],n)}))),this.put("align",new Menu(mxUtils.bind(this,function(e,n){e.addItem(mxResources.get("leftAlign"),null,function(){i.alignCells(mxConstants.ALIGN_LEFT)},n),e.addItem(mxResources.get("center"),null,function(){i.alignCells(mxConstants.ALIGN_CENTER)},n),e.addItem(mxResources.get("rightAlign"),null,function(){i.alignCells(mxConstants.ALIGN_RIGHT)},n),e.addSeparator(n),e.addItem(mxResources.get("topAlign"),null,function(){i.alignCells(mxConstants.ALIGN_TOP)},n),e.addItem(mxResources.get("middle"),null,function(){i.alignCells(mxConstants.ALIGN_MIDDLE)},n),e.addItem(mxResources.get("bottomAlign"),null,function(){i.alignCells(mxConstants.ALIGN_BOTTOM)},n)}))),this.put("layout",new Menu(mxUtils.bind(this,function(e,n){e.addItem(mxResources.get("horizontalFlow"),null,mxUtils.bind(this,function(){var e=new mxHierarchicalLayout(i,mxConstants.DIRECTION_WEST);this.editorUi.executeLayout(e,!0,!0)}),n),e.addItem(mxResources.get("verticalFlow"),null,mxUtils.bind(this,function(){var e=new mxHierarchicalLayout(i,mxConstants.DIRECTION_NORTH);this.editorUi.executeLayout(e,!0,!0)}),n)}))),this.put("navigation",new Menu(mxUtils.bind(this,function(e,n){this.addMenuItems(e,["home","-","exitGroup","enterGroup","-","expand","collapse"],n)}))),this.put("arrange",new Menu(mxUtils.bind(this,function(e,n){this.addMenuItems(e,["toFront","toBack","-"],n),this.addSubmenu("layout",e,n),e.addSeparator(n),this.addMenuItems(e,["-","group","ungroup","removeFromGroup"],n)}))),this.put("view",new Menu(mxUtils.bind(this,function(n,t){this.addMenuItems(n,["actualSize"],t),n.addSeparator();for(var e=[.25,.5,.75,1,2,4],a=0;a<e.length;a++)!function(e){n.addItem(100*e+"%",null,function(){i.zoomTo(e)},t)}(e[a]);this.addMenuItems(n,["-","zoomIn","zoomOut","-","fitWindow","customZoom","-","fitPage","fitPageWidth"],t)}))),this.put("file",new Menu(mxUtils.bind(this,function(e,n){this.addMenuItems(e,["new","open","-","save","saveAs","publish","-","variable","-","import","export","-","editFile","description","-","print"],n)}))),this.put("edit",new Menu(mxUtils.bind(this,function(e,n){this.addMenuItems(e,["undo","redo","-","cut","copy","paste","delete","-","duplicate","-","selectVertices","selectEdges","selectAll"])}))),this.put("help",new Menu(mxUtils.bind(this,function(e,n){this.addMenuItems(e,["help","-","about"])})))},Menus.prototype.put=function(e,n){this.menus[e]=n},Menus.prototype.get=function(e){return this.menus[e]},Menus.prototype.addSubmenu=function(e,n,t){var a=this.get(e).enabled;if(n.showDisabled||a){var i=n.addItem(mxResources.get(e),null,null,t,null,a);this.addMenu(e,n,i)}},Menus.prototype.addMenu=function(e,n,t){var a=this.get(e);null!=a&&(n.showDisabled||a.enabled)&&this.get(e).execute(n,t)},Menus.prototype.styleChange=function(e,n,t,a,i,s){return e.addItem(n,null,mxUtils.bind(this,function(){var e=this.editorUi.editor.graph;e.getModel().beginUpdate();try{for(var n=0;n<t.length;n++)e.setCellStyles(t[n],a[n])}finally{e.getModel().endUpdate()}}),s,i)},Menus.prototype.promptChange=function(e,n,a,i,s,t,o){return e.addItem(n,null,mxUtils.bind(this,function(){var e=this.editorUi.editor.graph,n=i,t=e.getView().getState(e.getSelectionCell());null!=t&&(n=t.style[s]||n),null!=(n=mxUtils.prompt(mxResources.get("enterValue")+(0<a.length?" "+a:""),n))&&0<n.length&&e.setCellStyles(s,n)}),t,null,o)},Menus.prototype.addMenuItem=function(e,n,t){var a=this.editorUi.actions.get(n);if(null==a||!e.showDisabled&&!a.enabled)return null;var i=e.addItem(a.label,null,a.funct,t,null,a.enabled);return a.toggleAction&&a.isSelected()&&this.addCheckmark(i),this.addShortcut(i,a),i},Menus.prototype.addShortcut=function(e,n){if(null!=n.shortcut){var t=e.firstChild.nextSibling.nextSibling,a=document.createElement("span");a.style.color="gray",mxUtils.write(a,n.shortcut),t.appendChild(a)}},Menus.prototype.addCheckmark=function(e){var n=e.firstChild.nextSibling;n.style.backgroundImage="url("+IMAGE_PATH+"/checkmark.gif)",n.style.backgroundRepeat="no-repeat",n.style.backgroundPosition="2px 50%"},Menus.prototype.addMenuItems=function(e,n,t){for(var a=0;a<n.length;a++)"-"==n[a]?e.addSeparator(t):this.addMenuItem(e,n[a],t)},Menus.prototype.createPopupMenu=function(e,n,t){var a=this.editorUi.editor.graph;if(e.smartSeparators=!0,a.isSelectionEmpty()?this.addMenuItems(e,["undo","redo","-","paste","-"]):(this.addMenuItems(e,["delete","-","cut","copy","-","duplicate"]),1==a.getSelectionCount()&&a.getModel().isEdge(a.getSelectionCell())&&this.addMenuItems(e,["setAsDefaultEdge"]),e.addSeparator()),0<a.getSelectionCount()){if(this.addMenuItems(e,["toFront","toBack","-"]),a.getModel().isEdge(a.getSelectionCell())){var i=!1;if(null!=(n=a.getSelectionCell())&&a.getModel().isEdge(n)){var s=a.selectionCellsHandler.getHandler(n);if(s instanceof mxEdgeHandler&&null!=s.bends&&2<s.bends.length){var o=s.getHandleForEvent(new mxMouseEvent(t)),r=this.editorUi.actions.get("removeWaypoint");r.handler=s,i=0<(r.index=o)&&o<s.bends.length}}this.addMenuItems(e,["-",i?"removeWaypoint":"addWaypoint"])}else 1<a.getSelectionCount()&&(e.addSeparator(),this.addMenuItems(e,["group"]));if(e.addSeparator(),1==a.getSelectionCount())null!=a.getLinkForCell(a.getSelectionCell())&&this.addMenuItems(e,["openLink"])}else this.addMenuItems(e,["-","selectVertices","selectEdges","-","selectAll"])},Menus.prototype.createMenubar=function(e){var n=new Menubar(this.editorUi,e),t=[];t=CRUD_PERMISSIONS.canEdit?["file","edit","view","format","text","arrange","help"]:["file","view","help"];for(var a=0;a<t.length;a++)n.addMenu(mxResources.get(t[a]),this.get(t[a]).funct);return n},Menubar.prototype.hideMenu=function(){null!=this.currentMenu&&this.currentMenu.hideMenu()},Menubar.prototype.addMenu=function(e,n){var t=document.createElement("a");return t.setAttribute("href","javascript:void(0);"),t.className="geItem",mxUtils.write(t,e),this.addMenuHandler(t,n),this.container.appendChild(t),t},Menubar.prototype.getOffset=function(e){return{left:(e=e.getBoundingClientRect()).left+window.scrollX,top:e.top+window.scrollY}},Menubar.prototype.addMenuHandler=function(i,s){if(null!=s){var o=!0,n=mxUtils.bind(this,function(e){if(o&&null==i.enabled||i.enabled){this.editorUi.editor.graph.panningHandler.hideMenu();var n=new mxPopupMenu(s);n.div.className+=" geMenubarMenu",n.smartSeparators=!0,n.showDisabled=!0,n.autoExpand=!0,n.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(n,arguments),n.destroy(),this.currentMenu=null,this.currentElt=null});var t=this.getOffset(i).left,a=this.getOffset(i).top+i.offsetHeight;n.popup(t,a,null,e),this.currentMenu=n,this.currentElt=i}o=!0,mxEvent.consume(e)});mxEvent.addListener(i,"mousemove",mxUtils.bind(this,function(e){null!=this.currentMenu&&this.currentElt!=i&&(this.hideMenu(),n(e))})),mxEvent.addListener(i,"mousedown",mxUtils.bind(this,function(){o=this.currentElt!=i})),mxEvent.addListener(i,"click",n)}},mxUtils.extend(Menu,mxEventSource),Menu.prototype.setEnabled=function(e){this.enabled!=e&&(this.enabled=e,this.fireEvent(new mxEventObject("stateChanged")))},Menu.prototype.execute=function(e,n){this.funct(e,n)},Toolbar.prototype.init=function(){CRUD_PERMISSIONS.canEdit?this.addItems(["save","publish","-","print","undo","redo","-","copy","cut","paste","delete","-","duplicate","-","actualSize","zoomIn","zoomOut","-"]):this.addItems(["print","actualSize","zoomIn","zoomOut","-"])},Toolbar.prototype.hideMenu=function(){null!=this.currentMenu&&(this.currentMenu.hideMenu(),this.currentMenu.destroy(),this.currentMenu=null)},Toolbar.prototype.addMenu=function(e,n,t,a){var i=this.editorUi.menus.get(a),s=this.addMenuFunction(e,n,t,i.funct);return i.addListener("stateChanged",function(){s.setEnabled(i.enabled)}),s},Toolbar.prototype.addMenuFunction=function(e,n,t,a){var i=t?this.createLabel(e):this.createButton(e);return this.initElement(i,n),this.addMenuHandler(i,t,a),this.container.appendChild(i),i},Toolbar.prototype.addSeparator=function(){var e=document.createElement("div");return e.className="geSeparator",this.container.appendChild(e),e},Toolbar.prototype.addItems=function(e){for(var n=0;n<e.length;n++){var t=e[n];"-"==t?this.addSeparator():this.addItem("geSprite-"+t.toLowerCase(),t)}},Toolbar.prototype.addItem=function(e,n){var t=this.editorUi.actions.get(n),a=null;return null!=t&&((a=this.addButton(e,t.label,t.funct)).setEnabled(t.enabled),t.addListener("stateChanged",function(){a.setEnabled(t.enabled)})),a},Toolbar.prototype.addButton=function(e,n,t){var a=this.createButton(e);return this.initElement(a,n),this.addClickHandler(a,t),this.container.appendChild(a),a},Toolbar.prototype.addSelectionHandler=function(t){var a=this.editorUi.editor.graph,e=function(){for(var e=!a.isSelectionEmpty(),n=0;n<t.length;n++)t[n].setEnabled(e)};a.getSelectionModel().addListener(mxEvent.CHANGE,e),e()},Toolbar.prototype.addEdgeSelectionHandler=function(a){var i=this.editorUi.editor.graph,e=function(){var e=!1;if(!i.isSelectionEmpty())for(var n=i.getSelectionCells(),t=0;t<n.length;t++)if(i.getModel().isEdge(n[t])){e=!0;break}for(t=0;t<a.length;t++)a[t].setEnabled(e)};i.getSelectionModel().addListener(mxEvent.CHANGE,e),e()},Toolbar.prototype.initElement=function(e,n){e.setAttribute("tabindex","0"),null!=n&&e.setAttribute("title",n),this.addEnabledState(e)},Toolbar.prototype.addEnabledState=function(n){var t=n.className;n.setEnabled=function(e){n.enabled=e,n.className=e?t:t+" geDisabled"},n.setEnabled(!0)},Toolbar.prototype.addClickHandler=function(n,t){null!=t&&mxEvent.addListener(n,"click",function(e){n.enabled&&t(e),mxEvent.consume(e)})},Toolbar.prototype.createButton=function(e){var n=document.createElement("a");n.setAttribute("href","javascript:void(0);"),n.className="geButton";var t=document.createElement("div");return t.className="geSprite "+e,n.appendChild(t),n},Toolbar.prototype.createLabel=function(e,n){var t=document.createElement("a");return t.setAttribute("href","javascript:void(0);"),t.className="geLabel",mxUtils.write(t,e),t},Toolbar.prototype.addMenuHandler=function(n,t,a,i){if(null!=a){var s=this.editorUi.editor.graph,o=null;mxEvent.addListener(n,"click",mxUtils.bind(this,function(e){(null==n.enabled||n.enabled)&&(s.panningHandler.hideMenu(),(o=new mxPopupMenu(a)).div.className+=" geToolbarMenu",o.showDisabled=i,o.labels=t,o.autoExpand=!0,o.popup(n.offsetLeft,n.offsetTop+n.offsetHeight+34,null,e),this.currentMenu=o),mxEvent.consume(e)}))}},Dialog.prototype.close=function(){null!=this.onDialogClose&&(this.onDialogClose(),this.onDialogClose=null),this.container.parentNode.removeChild(this.container),this.bg.parentNode.removeChild(this.bg)},angular.module("motion").run(["$templateCache",function(e){"use strict";e.put("app/auth/services/hotdesk/dialog.html",'<md-dialog aria-label="Telephone">\n <form ng-cloak>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div flex>\n <span class="title" translate="LOGIN.TELEPHONES">Telephones</span>\n </div>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <md-select ng-model="vm.name" placeholder="Select a telephone">\n <md-option value="{{telephone.name}}" ng-repeat="telephone in vm.telephones.rows">{{telephone.fullname}}</md-option>\n </md-select>\n </md-dialog-content>\n\n <md-dialog-actions layout="row">\n <md-button ng-click="vm.closeDialog(vm.name)" class="send-button md-accent md-raised" aria-label="call" ng-disabled="!vm.name">\n <span translate="LOGIN.SELECT">SELECT</span>\n </md-button>\n \x3c!-- <md-button ng-click="vm.closeDialog()" class="send-button md-accent md-raised" aria-label="cancel">\n <span translate="LOGIN.CANCEL">Cancel</span>\n </md-button> --\x3e\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/core/dialogs/advanced-search/dialog.html",'<md-dialog class="advanced-search-dialog" aria-label="Advanced search" flex="70" ng-init="vm.onInit()">\n <form ng-cloak>\n <md-toolbar class="advanced-search-dialog-header" ng-class="{{ \'vm.toolbarColor\' }} + \'-bg\'">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div flex>\n <span class="title" translate="DASHBOARDS.ADVANCED_SEARCH"></span>\n </div>\n <div layout="row" layout-align="end center">\n <md-button class="md-icon-button no-margin no-padding" ng-click="vm.minimize()">\n <md-icon class="no-margin" md-font-icon="icon-window-minimize" aria-label="Minimize dialog"></md-icon>\n </md-button>\n <md-button class="md-icon-button no-margin no-padding" ng-click="vm.close()">\n <md-icon class="no-margin" md-font-icon="icon-window-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <ms-advanced-search options="vm.searchOptions" clear-filter="vm.clearConditions()"></ms-advanced-search>\n </md-dialog-content>\n\n <md-dialog-actions layout="row">\n <md-button class="md-primary md-raised" aria-label="Clear" ng-disabled="vm.searchOptions.conditions.length === 0" translate="DASHBOARDS.CLEAR" translate-attr-aria-label="DASHBOARDS.CLEAR" ng-click="vm.clearConditions()"></md-button>\n <md-button class="md-primary md-accent md-raised" aria-label="Apply" ng-disabled="vm.searchOptions.conditions.length === 0" translate="DASHBOARDS.APPLY" translate-attr-aria-label="DASHBOARDS.APPLY" ng-click="vm.applyFilter()"></md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/core/directives/ms-advanced-search/ms-advanced-search.html",'<div layout="column" class="advanced-search-container" flex>\n <div layout-margin>\n <md-radio-group ng-model="vm.options.matchType" class="md-primary" layout="row">\n <md-radio-button value="$and" class="md-primary">{{ \'DASHBOARDS.MEET_ALL_CONDITIONS\' | translate }}\n </md-radio-button>\n <md-radio-button value="$or">{{ \'DASHBOARDS.MEET_ANY_CONDITIONS\' | translate }}</md-radio-button>\n </md-radio-group>\n </div>\n\n \x3c!-- ACTIVE CONDITIONS --\x3e\n <div layout="row" ng-if="vm.options.conditions.length > 0" class="advanced-search-conditions">\n <md-list>\n <md-list-item>\n <md-chips ng-model="vm.options.conditions" class="advanced-search-chips" readonly="true" md-removable="true" md-on-remove="vm.removeCondition()">\n <md-chip-template ms-chip-color="{{ $chip.style }}">\n <md-menu md-offset="50 0" ng-class="{\'no-click\': vm.pendingCondition}">\n <span>\n <p class="filter-text">{{ $chip.name }}</p>\n <em ng-show="$chip.operator" class="text-lowercase">{{ $chip.operator }}</em>\n <strong>{{ $chip.displayValue }}</strong>\n <em ng-show="$chip.displayEndValue" class="text-lowercase">{{ \'DASHBOARDS.AND\' | translate }}</em>\n <strong>{{ $chip.displayEndValue }}</strong>\n </span>\n <md-menu-content width=2 class="md-dense">\n <md-menu-item ng-hide="$chip.disabled">\n <md-button ng-click="vm.editCondition($chip)">Edit\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.setConditionStatus($chip)">\n {{ $chip.disabled ? \'Enable\' : \'Disable\' }}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-chip-template>\n <button type="button" md-chip-remove class="md-primary remove-filter">\n <md-icon md-font-icon="icon-cancel" aria-label="Remove Filter"></md-icon>\n </button>\n </md-chips>\n </md-list-item>\n </md-list>\n </div>\n\n \x3c!-- FILTERS --\x3e\n <div layout="row">\n <div layout="row" class="advanced-search-bar" layout-margin flex>\n \x3c!-- FIELD --\x3e\n <md-input-container flex="35">\n <md-icon md-font-icon="icon-filter-variant"></md-icon>\n <md-select class="font-size-12" ng-model="vm.selectedField" ng-change="vm.onFieldChange()" placeholder="{{ \'DASHBOARDS.SELECT_FIELD\' | translate }}" aria-label="Field">\n <md-option ng-value="field" ng-repeat="field in vm.options.fields">{{ field.name }}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!-- OPERATOR --\x3e\n <md-input-container flex="30">\n <md-icon md-font-icon="icon-format-text"></md-icon>\n <md-select class="font-size-12" ng-model="vm.selectedOperator" ng-change="vm.onOperatorChange(oldValue)" ng-focus="oldValue=vm.selectedOperator" md-selected-text="vm.selectedOperator ? (\'DASHBOARDS.\' + vm.selectedOperator.translate | translate) : (\'DASHBOARDS.SELECT_OPERATOR\' | translate)" ng-disabled="!vm.selectedField" aria-label="Operator">\n <md-option ng-value="operator" ng-repeat="operator in vm.availableOperators" ng-selected="vm.autoSelectOperator">\n <div layout="row" class="operators-list">\n <span class="operator-symbol">\n {{ operator.symbol }}\n </span>\n <span>\n {{ \'DASHBOARDS.\' + operator.translate | translate }}\n </span>\n </div>\n </md-option>\n </md-select>\n </md-input-container>\n\n \x3c!-- TEXT INPUT --\x3e\n <md-input-container ng-if="!vm.selectedField.type || vm.selectedField.type === \'text\'" class="no-errors" flex>\n <md-icon md-font-icon="icon-format-text"></md-icon>\n <input type="text" aria-label="Value" ng-model="vm.value" ng-change="vm.onValueChange()" ng-disabled="!vm.selectedField" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" placeholder="{{ \'DASHBOARDS.VALUE\' | translate }}">\n </md-input-container>\n \x3c!-- NUMERIC INPUT --\x3e\n <div ng-if="vm.selectedField.type === \'number\'" flex layout="row" layout-margin class="no-margin">\n <md-input-container class="no-errors" flex>\n <md-icon md-font-icon="icon-numeric"></md-icon>\n <input type="number" aria-label="Value" ng-model="vm.value" ng-change="vm.onValueChange()" ng-disabled="!vm.selectedField" min="0" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" placeholder="{{ vm.selectedOperator.type === \'$between\' ? \'DASHBOARDS.STARTING_VALUE\' : \'DASHBOARDS.VALUE\' | translate }}">\n </md-input-container>\n <md-input-container class="no-errors" ng-if="vm.selectedOperator.type === \'$between\'" ng-class="{\'md-input-invalid\': !vm.isValidRange}" flex>\n <md-icon md-font-icon=" icon-numeric">\n </md-icon>\n <input class="md-input" type="number" aria-label="Value" ng-model="vm.endRangeValue" ng-change="vm.checkRange()" ng-disabled="!vm.value" min="vm.value" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" placeholder="{{ \'DASHBOARDS.ENDING_VALUE\' | translate }}">\n <div ng-if="!vm.isValidRange" class="md-input-message-animation md-input-messages-animation">\n {{ (\'DASHBOARDS.VALUE_RANGE_CHECK\' | translate) + \' \' + vm.value }}\n </div>\n </md-input-container>\n </div>\n \x3c!-- SELECT --\x3e\n <md-input-container ng-if="vm.selectedField.type === \'select\'" flex>\n <md-icon md-font-icon="icon-format-text"></md-icon>\n <md-select class="font-size-12" ng-model="vm.value" md-on-open="vm.getValues()" ng-change="vm.onValueChange()" ng-model-options="{trackBy: \'$value.id\'}" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" placeholder="{{ \'DASHBOARDS.VALUE\' | translate }}" aria-label="Value">\n <md-option ng-value="item" ng-repeat="item in vm.selectedField.values">{{item.name}}\n </md-option>\n </md-select>\n </md-input-container>\n \x3c!-- MULTISELECT --\x3e\n <md-input-container ng-if="vm.selectedField.type === \'multiselect\'" flex>\n <md-icon md-font-icon="icon-format-text"></md-icon>\n <md-select class="font-size-12" multiple ng-model="vm.value" md-on-open="vm.getValues()" ng-change="vm.onValueChange()" ng-model-options="{trackBy: \'$value.id\'}" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" placeholder="{{ \'DASHBOARDS.VALUE\' | translate }}" aria-label="Value">\n <md-option ng-value="item" ng-repeat="item in vm.selectedField.values">{{item.name}}\n </md-option>\n </md-select>\n </md-input-container>\n \x3c!-- DATE INPUT --\x3e\n <div ng-if="vm.selectedField.type === \'date\'" flex layout="row">\n <mdp-date-picker mdp-open-on-click ng-model="vm.value" ng-change="vm.onValueChange()" mdp-max-date="vm.maxDateRange" mdp-placeholder="{{ vm.selectedOperator.type === \'$between\' ? \'DASHBOARDS.STARTING_DATE\' : \'DASHBOARDS.VALUE\' | translate }}" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" flex>\n </mdp-date-picker>\n <mdp-date-picker mdp-open-on-click ng-if="vm.selectedOperator.type === \'$between\'" ng-change="vm.checkRange()" ng-model="vm.endRangeValue" mdp-min-date="vm.minDateRange" mdp-disabled="!vm.value" mdp-placeholder="{{ \'DASHBOARDS.ENDING_DATE\' | translate }}" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" flex>\n </mdp-date-picker>\n </div>\n \x3c!-- AUTOCOMPLETE --\x3e\n <div layout="row" layout-align="start start" ng-if="vm.selectedField.type === \'autocomplete\' && vm.selectedOperator.type != \'$substring\'" class=" autocomplete-input" flex>\n <md-icon md-font-icon="icon-format-text"></md-icon>\n <md-autocomplete md-selected-item="vm.value" md-selected-item-change="vm.onValueChange()" md-items="item in vm.getValues()" md-search-text="vm.searchText" md-item-text="item.displayValue" md-min-length="4" md-no-cache="true" md-floating-label="{{ \'DASHBOARDS.VALUE\' | translate }}" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" flex>\n <md-item-template>\n <span md-highlight-text="vm.searchText" md-highlight-flags="i">{{item.displayValue}}</span>\n </md-item-template>\n </md-autocomplete>\n </div>\n <md-input-container ng-if="vm.selectedField.type === \'autocomplete\' && vm.selectedOperator.type === \'$substring\'" class="no-errors" flex>\n <md-icon md-font-icon="icon-format-text"></md-icon>\n <input type="text" aria-label="Value" ng-model="vm.value" ng-change="vm.onValueChange()" ng-disabled="!vm.selectedField" ng-keydown="$event.keyCode == 13 && vm.isValidCondition && vm.handleKeyboardAction()" placeholder="{{ \'DASHBOARDS.VALUE\' | translate }}">\n </md-input-container>\n </div>\n <md-button class="md-fab md-mini md-primary mt-20" ng-if="!vm.pendingCondition" ng-disabled="!vm.isValidCondition" aria-label="Add filter" ng-click="vm.addCondition()" translate-attr-aria-label="DASHBOARDS.ADD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-button class="md-fab md-mini mt-20" ng-if="vm.pendingCondition" ng-disabled="!vm.isValidCondition" aria-label="Update filter" ng-click="vm.updateCondition()" translate-attr-aria-label="DASHBOARDS.UPDATE">\n <md-icon md-font-icon="icon-check"></md-icon>\n </md-button>\n <md-button class="md-fab md-mini md-primary mt-20" ng-if="vm.pendingCondition" aria-label="Cancel filter update" ng-click="vm.cancelUpdateCondition()" translate-attr-aria-label="DASHBOARDS.CANCEL">\n <md-icon md-font-icon="icon-close"></md-icon>\n </md-button>\n </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-1/template-1.html",'<div class="template-1">\n <div class="media">\n <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n </div>\n\n <div class="content pv-24 ph-16">\n <div class="title h1" ng-if="card.title">\n {{card.title}}\n </div>\n\n <div class="subtitle secondary-text" ng-if="card.subtitle">\n {{card.subtitle}}\n </div>\n\n <div class="text pt-16" ng-if="card.text">\n {{card.text}}\n </div>\n </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-10/template-10.html",'<div class="template-10 p-16">\n <div class="pb-16" layout="row" layout-align="space-between center">\n <div class="info">\n <div class="title secondary-text" ng-if="card.title">\n {{card.title}}\n </div>\n\n <div class="subtitle h2" ng-if="card.subtitle">\n {{card.subtitle}}\n </div>\n </div>\n\n <div class="media ml-16">\n <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n </div>\n </div>\n\n <div class="text">\n {{card.text}}\n </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-2/template-2.html",'<div class="template-2">\n <div class="header p-16" layout="row" layout-align="start center">\n <div ng-if="card.avatar">\n <img class="avatar mr-16" ng-src="{{card.avatar.src}}" alt="{{card.avatar.alt}}">\n </div>\n\n <div class="info">\n <div class="title" ng-if="card.title">\n {{card.title}}\n </div>\n\n <div class="subtitle secondary-text" ng-if="card.subtitle">\n {{card.subtitle}}\n </div>\n </div>\n </div>\n\n <div class="media">\n <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n </div>\n\n <div class="text p-16" ng-if="card.text">\n {{card.text}}\n </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-3/template-3.html",'<div class="template-3 p-16 teal-bg white-fg" layout="row" layout-align="space-between">\n <div layout="column" layout-align="space-between">\n <div class="info">\n <div class="title h1" ng-if="card.title">\n {{card.title}}\n </div>\n\n <div class="subtitle h3 secondary-text" ng-if="card.subtitle">\n {{card.subtitle}}\n </div>\n </div>\n\n <div class="cta">\n <md-button class="m-0">{{card.cta}}</md-button>\n </div>\n </div>\n\n <div class="media pl-16">\n <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-4/template-4.html",'<div class="template-4">\n <div class="info white-fg ph-16 pv-24">\n <div class="title h1" ng-if="card.title">\n {{card.title}}\n </div>\n\n <div class="text" ng-if="card.text">\n {{card.text}}\n </div>\n </div>\n\n <div class="media">\n <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-5/template-5.html",'<div class="template-5 p-16" layout="row" layout-align="space-between start">\n <div class="info">\n <div class="title secondary-text" ng-if="card.title">\n {{card.title}}\n </div>\n\n <div class="event h2" ng-if="card.event">\n {{card.event}}\n </div>\n </div>\n\n <div class="media ml-16">\n <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-6/template-6.html",'<div class="template-6">\n <div class="content pv-24 ph-16">\n <div class="subtitle secondary-text" ng-if="card.subtitle">\n {{card.subtitle}}\n </div>\n\n <div class="title h2" ng-if="card.title">\n {{card.title}}\n </div>\n\n <div class="text pt-8" ng-if="card.text">\n {{card.text}}\n </div>\n </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-7/template-7.html",'<div class="template-7" layout="row" layout-align="space-between">\n <div class="info" layout="column" layout-align="space-between" layout-fill flex>\n <div class="p-16">\n <div class="title h1" ng-if="card.title">\n {{card.title}}\n </div>\n\n <div class="subtitle h4 secondary-text" ng-if="card.subtitle">\n {{card.subtitle}}\n </div>\n\n <div class="text h4 pt-8" ng-if="card.text">\n {{card.text}}\n </div>\n </div>\n\n <div>\n <md-divider></md-divider>\n <div class="p-8" layout="row">\n <md-icon md-font-icon="icon-star-outline" class="mh-5"></md-icon>\n <md-icon md-font-icon="icon-star-outline" class="mh-5"></md-icon>\n <md-icon md-font-icon="icon-star-outline" class="mh-5"></md-icon>\n <md-icon md-font-icon="icon-star-outline" class="mh-5"></md-icon>\n <md-icon md-font-icon="icon-star-outline" class="mh-5"></md-icon>\n </div>\n </div>\n </div>\n\n <div class="media">\n <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-8/template-8.html",'<div class="template-8">\n <div class="media">\n <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n </div>\n\n <div class="content pv-24 ph-16">\n <div class="title h1" ng-if="card.title">\n {{card.title}}\n </div>\n\n <div class="subtitle secondary-text" ng-if="card.subtitle">\n {{card.subtitle}}\n </div>\n\n <div class="buttons pt-16">\n <md-button class="m-0">{{card.button1}}</md-button>\n <md-button class="m-0 md-accent">{{card.button2}}</md-button>\n </div>\n\n <div class="text pt-16" ng-if="card.text">\n {{card.text}}\n </div>\n </div>\n</div>'),e.put("app/core/directives/ms-card/templates/template-9/template-9.html",'<div class="template-9">\n <div class="header p-16" layout="row" layout-align="start center">\n <div ng-if="card.avatar">\n <img class="avatar mr-16" ng-src="{{card.avatar.src}}" alt="{{card.avatar.alt}}">\n </div>\n\n <div class="info">\n <div class="title" ng-if="card.title">\n {{card.title}}\n </div>\n\n <div class="subtitle secondary-text" ng-if="card.subtitle">\n {{card.subtitle}}\n </div>\n\n </div>\n </div>\n\n <div class="text ph-16 pb-16" ng-if="card.text">\n {{card.text}}\n </div>\n\n <div class="media">\n <img class="image" ng-src="{{card.media.image.src}}" alt="{{card.media.image.alt}}" ng-show="card.media.image">\n </div>\n\n <div class="buttons m-8">\n <md-button class="md-icon-button mr-16" aria-label="Favorite">\n <md-icon md-font-icon="icon-heart-outline" class="s24"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Share">\n <md-icon md-font-icon="icon-share" class="s24"></md-icon>\n </md-button>\n </div>\n\n</div>'),e.put("app/core/directives/ms-click-to-call/ms-click-to-call.html",'<section ng-if="type !== \'button\'">\n <span ng-if="!showMenu()" privacy="{{ privacy }}" ng-cloak>{{target}}</span>\n <md-menu ng-if="showMenu()">\n <a aria-label="Target" ng-click="$mdOpenMenu($event)">\n <span ng-if="prefix" privacy="{{ privacy }}" ng-cloak>{{prefix}}-</span>\n <span privacy="{{ privacy }}" ng-cloak>{{target}}</span>\n </a>\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="call(prefix ? prefix + target : target)">\n {{\'DASHBOARDS.CALL_NUMBER\' | translate}} (<span privacy="{{ privacy }}" ng-cloak>{{prefix ? prefix + \'-\' + target : target}}</span>)\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="transfer(prefix ? prefix + target : target)">\n {{\'DASHBOARDS.TRANSFER_NUMBER\' | translate}} (<span privacy="{{ privacy }}" ng-cloak>{{prefix ? prefix + \'-\' + target : target}}</span>)\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n</section>\n<section ng-if="type === \'button\'">\n <md-button ng-if="!showMenu()" ng-disabled="true" class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="NEW CALL" aria-label="NEW CALL">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n <md-menu ng-if="showMenu()">\n <md-button class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="NEW CALL" ng-click="$mdOpenMenu($event)" aria-label="NEW CALL">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="call(prefix ? prefix + target : target)">\n {{\'DASHBOARDS.CALL_NUMBER\' | translate}} (<span privacy="{{ privacy }}" ng-cloak>{{prefix ? prefix + \'-\' + target : target}}</span>)\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="transfer(target)">\n {{\'DASHBOARDS.TRANSFER_NUMBER\' | translate}} (<span privacy="{{ privacy }}" ng-cloak>{{prefix ? prefix + \'-\' + target : target}}</span>)\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n</section>'),e.put("app/core/directives/ms-dual-multiselect/ms-dual-multiselect.html",'<div ng-cloak layout-gt-sm="row" layout="column">\n <div flex-gt-sm="50" flex="45">\n <md-input-container class="md-icon-float md-block margin-0">\n <md-icon md-font-icon="icon-magnify" aria-label="swap"></md-icon>\n <input ng-model="query" type="text" placeholder="{{ \'STAFF.PERMISSIONS_PLACEHOLDER_SEARCH\' | translate }}">\n </md-input-container>\n <md-content class="border h-300">\n <md-list class="md-dense no-padding" layout-fill layout-align="center center">\n <md-list-item class="md-3-line" ng-class="{\'read-only-mode\': vm.readOnly || vm.addDisabled}" ng-disabled="vm.readOnly || vm.addDisabled" ng-repeat="item in availableItems = (vm.options.items | filter: query) | orderBy: vm.options.orderBy" ng-click="vm.canTransfer(item, vm.options, false)">\n <div class="md-list-item-text" layout="column">\n <h3 ng-if="vm.options.line1">{{vm.getLine(item, vm.options.line1)}}</h3>\n <h4 ng-if="vm.options.line2">{{vm.getLine(item, vm.options.line2)}}</h4>\n <p ng-if="vm.options.line3">{{vm.getLine(item, vm.options.line3)}}</p>\n <p class="ms-dual-multiselect-line-xs" ng-if="vm.options.line4">{{vm.getLine(item, vm.options.line4)}}\n </p>\n </div>\n <md-icon ng-hide="vm.readOnly && !vm.addDisabled" ng-class="{\'add-disabled\': vm.addDisabled}" md-font-icon="icon-arrow-right-bold" aria-label="swap">\n </md-icon>\n <md-divider></md-divider>\n </md-list-item>\n </md-list>\n </md-content>\n <div class="margin-10" layout="row">\n <span class="h4" flex>{{vm.options.labelAll || \'All Items\'}} ({{availableItems.length}})</span>\n <md-icon ng-hide="vm.options.showSelectAndDeselectAll === false || vm.readOnly" ng-class="{\'add-disabled\': vm.addDisabled}" ng-disabled="vm.addDisabled" md-font-icon="icon-chevron-double-right" aria-label="swap" ng-click="vm.transfer(vm.options.items, vm.options.selectedItems, -1, false)"></md-icon>\n </div>\n </div>\n\n <div flex="10" layout="row" layout-align="center center">\n <md-icon md-font-icon="icon-swap-horizontal" aria-label="swap"></md-icon>\n </div>\n\n <div flex-gt-sm="50" flex="45">\n <md-input-container class="md-icon-float md-block margin-0">\n <md-icon md-font-icon="icon-magnify" aria-label="swap"></md-icon>\n <input ng-model="selectedQuery" type="text" placeholder="{{ \'STAFF.PERMISSIONS_PLACEHOLDER_SEARCH\' | translate }}">\n </md-input-container>\n <md-content class="border h-300">\n <md-list class="md-dense no-padding" layout-fill layout-align="center center">\n <md-list-item class="md-3-line" ng-class="{\'read-only-mode\': vm.readOnly || !item.isValid}" ng-disabled="vm.readOnly" ng-repeat="item in associatedItems = (vm.options.selectedItems | filter: selectedQuery) | orderBy: vm.options.orderBy" ng-click="vm.canTransfer(item, vm.options, true)">\n <md-icon ng-class="{\'hidden\': vm.readOnly || !item.isValid}" md-font-icon="icon-arrow-left-bold" aria-label="swap"></md-icon>\n <div class="md-list-item-text" layout="column">\n <h3 ng-if="vm.options.line1">{{vm.getLine(item, vm.options.line1)}}</h3>\n <h4 ng-if="vm.options.line2">{{vm.getLine(item, vm.options.line2)}}</h4>\n <p ng-if="vm.options.line3">{{vm.getLine(item, vm.options.line3)}}</p>\n <p class="ms-dual-multiselect-line-xs" ng-if="vm.options.line4">{{vm.getLine(item, vm.options.line4)}}\n </p>\n </div>\n <md-divider></md-divider>\n </md-list-item>\n </md-list>\n </md-content>\n <div class="margin-10" layout="row">\n <md-icon ng-hide="vm.options.showSelectAndDeselectAll === false || vm.readOnly" md-font-icon="icon-chevron-double-left" aria-label="swap" ng-click="vm.transfer(vm.options.selectedItems, vm.options.items, -1, true)"></md-icon>\n <span class="h4 text-right" flex>{{vm.options.labelSelected || \'Selected Items\'}}\n ({{associatedItems.length}})</span>\n </div>\n </div>\n</div>'),e.put("app/core/directives/ms-font-family/ms-font-family.html",'<md-select ng-model="ngModel" class="no-margin">\n <md-option ng-repeat="font in fonts" ng-value="font.value"><span ng-style="{\'font-family\': font.value}">{{font.option}}</span>\n </md-option>\n</md-select>'),e.put("app/core/directives/ms-info-bar/ms-info-bar.html",'<div id="ms-info-bar" layout="row" layout-align="start center" flex>\n <div id="ms-info-bar-message" ng-transclude flex></div>\n <md-button id="ms-info-bar-close" class="md-icon-button" aria-label="Close" ng-click="removeInfoBar()">\n <md-icon md-font-icon="icon-close s20"></md-icon>\n </md-button>\n</div>'),e.put("app/core/directives/ms-material-color-picker/ms-material-color-picker.html",'<md-menu md-position-mode="target-right target">\n\n <div ng-click="$mdOpenMenu($event)">\n <ms-color-picker-button>\n <md-button aria-label="Row Color" md-menu-origin ng-click="$mdOpenMenu($event)" ng-class="vm.selectedColor.class">\n\n <span ng-show="vm.selectedColor.palette">\n {{vm.selectedColor.palette}} {{vm.selectedColor.hue}}\n </span>\n <span ng-show="!vm.selectedColor.palette">\n Select Color\n </span>\n </md-button>\n </ms-color-picker-button>\n </div>\n\n <md-menu-content class="ms-material-color-picker-menu-content" layout-column>\n\n <header ng-class="vm.selectedColor.class || \'md-accent-bg\'" class="md-whiteframe-4dp" layout="row" layout-align="space-between center">\n <md-button md-prevent-menu-close ng-click="vm.activateHueSelection(false,false)" class="md-icon-button" ng-class="{\'hidden\':!vm.selectedPalette}" aria-label="Palette">\n <md-icon md-font-icon="icon-arrow-left" class="s20"></md-icon>\n </md-button>\n\n <span ng-if="vm.selectedColor.palette">\n {{vm.selectedColor.palette}} {{vm.selectedColor.hue}}\n </span>\n\n <span ng-if="!vm.selectedColor.palette">\n Select Color\n </span>\n\n <md-button class="remove-color-button md-icon-button" ng-click="vm.removeColor()" aria-label="Remove Color">\n <md-icon md-font-icon="icon-delete" class="s20"></md-icon>\n </md-button>\n </header>\n\n <div class="colors" ms-scroll>\n <div ng-show="!vm.selectedPalette" layout="row" layout-wrap>\n <div class="color" ng-class="\'md-\'+palette+\'-500-bg\'" ng-repeat="(palette, hues) in vm.palettes" ng-click="vm.activateHueSelection(palette,hues)" layout="row" layout-align="start end" md-prevent-menu-close md-ink-ripple>\n <span class="label">\n {{palette}}\n </span>\n </div>\n </div>\n\n <div ng-show="vm.selectedPalette" layout="row" layout-wrap>\n <div class="color" ng-class="\'md-\'+vm.selectedPalette+\'-\'+hue+\'-bg\'" ng-repeat="(hue, values) in vm.selectedHues" ng-click="vm.selectColor(vm.selectedPalette,hue)" layout="row" layout-align="start end" md-ink-ripple>\n <span class="label">\n {{hue}}\n </span>\n <i ng-if="vm.selectedPalette == vm.selectedColor.palette && hue == vm.selectedColor.hue" class="s16 icon-check">\n </i>\n </div>\n </div>\n\n </div>\n\n </md-menu-content>\n</md-menu>'),e.put("app/core/directives/ms-navigation/templates/horizontal.html",'<div class="navigation-toggle" hide-gt-sm>\n <md-button class="md-icon-button" ng-click="vm.toggleHorizontalMobileMenu()" aria-label="Toggle Mobile Navigation">\n <md-icon md-font-icon="icon-menu"></md-icon>\n </md-button>\n</div>\n\n<ul class="horizontal">\n <li ng-repeat="node in vm.navigation" ms-navigation-horizontal-node="node" ng-class="{\'has-children\': vm.hasChildren}" ng-include="\'navigation-horizontal-nested.html\'"></li>\n</ul>\n\n\x3c!-- Nested horizontal navigation template --\x3e\n<script type="text/ng-template" id="navigation-horizontal-nested.html">\n\n <div ms-navigation-horizontal-item layout="row" ng-if="!vm.isHidden()">\n\n <div class="ms-navigation-horizontal-button" ng-if="!node.uisref && node.title"\n ng-class="{\'active md-accent-bg md-accent-fg\': vm.isActive}">\n <i class="icon s18 {{node.icon}}" ng-if="node.icon"></i>\n <span class="title" translate="{{node.translate}}" flex>{{node.title}}</span>\n <span class="badge white-fg" style="background: {{node.badge.color}}" ng-if="node.badge">{{node.badge.content}}</span>\n <i class="icon-chevron-right s18 arrow" ng-if="vm.hasChildren"></i>\n </div>\n\n <a class="ms-navigation-horizontal-button" ui-sref="{{node.uisref}}" ui-sref-active="active md-accent-bg"\n ng-class="{\'active md-accent-bg md-accent-fg\': vm.isActive}"\n ng-if="node.uisref && node.title">\n <i class="icon s18 {{node.icon}}" ng-if="node.icon"></i>\n <span class="title" translate="{{node.translate}}" flex>{{node.title}}</span>\n <span class="badge white-fg" style="background: {{node.badge.color}}" ng-if="node.badge">{{node.badge.content}}</span>\n <i class="icon-chevron-right s18 arrow" ng-if="vm.hasChildren"></i>\n </a>\n\n </div>\n\n <ul ng-if="vm.hasChildren && !vm.isHidden()">\n <li ng-repeat="node in node.children" ms-navigation-horizontal-node="node"\n ng-class="{\'has-children\': vm.hasChildren}"\n ng-include="\'navigation-horizontal-nested.html\'"></li>\n </ul>\n\n<\/script>\n\x3c!-- / Nested navigation template --\x3e'),e.put("app/core/directives/ms-navigation/templates/vertical.html",'<ul>\n <li ng-repeat="node in vm.navigation" ms-navigation-node="node" ng-class="{\'collapsed\': vm.collapsed, \'has-children\': vm.hasChildren}" ng-include="\'navigation-nested.html\'"></li>\n</ul>\n\n\x3c!-- Nested navigation template --\x3e\n<script type="text/ng-template" id="navigation-nested.html">\n\n <div id="{{ node.id }}" ms-navigation-item layout="row" ng-if="!vm.isHidden()">\n\n <div class="ms-navigation-button" ng-if="!node.uisref && node.title">\n <i class="icon s16 {{node.icon}}" ng-if="node.icon"></i>\n <span class="title" translate="{{node.translate}}" flex>{{node.title}}</span>\n <span class="badge white-fg margin-right-20" ng-style="{\'background\': node.badge.color}" ng-if="node.badge">{{node.badge.content}}</span>\n <i class="icon-chevron-right s16 arrow" ng-if="vm.collapsable && vm.hasChildren"></i>\n </div>\n\n <a class="ms-navigation-button" ui-sref="{{node.uisref}}" ui-sref-active="active md-accent-bg" ng-if="node.uisref && node.title">\n <i class="icon s16 {{node.icon}}" ng-if="node.icon"></i>\n <span class="title" translate="{{node.translate}}" flex>{{node.title}}</span>\n <span class="badge white-fg margin-right-20" ng-style="{\'background\': node.badge.color}" ng-if="node.badge">{{node.badge.content}}</span>\n <i class="icon-chevron-right s16 arrow" ng-if="vm.collapsable && vm.hasChildren"></i>\n </a>\n\n </div>\n\n <ul ng-if="vm.hasChildren && !vm.isHidden()">\n <li ng-repeat="node in node.children" ms-navigation-node="node"\n ng-class="{\'collapsed\': vm.collapsed, \'has-children\': vm.hasChildren}"\n ng-include="\'navigation-nested.html\'"></li>\n </ul>\n\n<\/script>\n\x3c!-- / Nested navigation template --\x3e'),e.put("assets/ms-phonebar/ms-phonebar-dialpad.html",'\x3c!-- Dialpad --\x3e\n<md-content ng-if="vm_pb.showDialpad" class="num-pad" layout="column">\n <section layout="row" layout-align="start center">\n <span><img class="num-pad-logo" layout-padding src="/api/settings/1/logo" alt="logo" /></span>\n <span class="md-subhead">Dialpad</span>\n <div layout="row" layout-align="end center" flex>\n <md-button class="md-icon-button" ng-click="vm_pb.closeDialpad()">\n <md-icon md-font-icon="icon-close"></md-icon>\n </md-button>\n </div>\n </section>\n <md-divider></md-divider>\n <section layout="row">\n <div class="span4" ng-repeat="item in ::[{n: 1, l: []}, {n: 2, l: [\'a\', \'b\', \'c\']}, {n: 3, l: [\'d\', \'e\', \'f\']}]" ng-click="vm_pb.type(item.n, true)">\n <div class="num">\n <div class="txt">\n {{item.n}} <span class="small">\n <p>\n <span ng-repeat="l in ::item.l">{{l | uppercase}}</span>\n </p>\n </span>\n </div>\n </div>\n </div>\n </section>\n <section layout="row">\n <div class="span4" ng-repeat="item in ::[{n: 4, l: [\'g\', \'h\', \'i\']}, {n: 5, l: [\'j\', \'k\', \'l\']}, {n: 6, l: [\'m\', \'n\', \'o\']}]" ng-click="vm_pb.type(item.n, true)">\n <div class="num">\n <div class="txt">\n {{item.n}} <span class="small">\n <p>\n <span ng-repeat="l in ::item.l">{{l | uppercase}}</span>\n </p>\n </span>\n </div>\n </div>\n </div>\n </section>\n <section layout="row">\n <div class="span4" ng-repeat="item in ::[{n: 7, l: [\'p\', \'q\', \'r\', \'s\']}, {n: 8, l: [\'t\', \'u\', \'v\']}, {n: 9, l: [\'w\', \'x\', \'y\', \'z\']}]" ng-click="vm_pb.type(item.n, true)">\n <div class="num">\n <div class="txt">\n {{item.n}} <span class="small">\n <p>\n <span ng-repeat="l in ::item.l">{{l | uppercase}}</span>\n </p>\n </span>\n </div>\n </div>\n </div>\n </section>\n <section layout="row">\n <div class="span4" ng-repeat="item in ::[{n: \'*\', l: []}]" ng-click="vm_pb.type(item.n, true)">\n <div class="num" layout="column" layout-align="center center">\n <div class="txt" layout="column" layout-align="center center">\n {{item.n}}\n </div>\n </div>\n </div>\n <div class="span4" ng-repeat="item in ::[{n: 0, l: [\'+\']}]" ng-click="vm_pb.type(item.n, true)">\n <div class="num">\n <div class="txt">\n {{item.n}} <span class="small">\n <p>\n <span ng-repeat="l in ::item.l">{{l | uppercase}}</span>\n </p>\n </span>\n </div>\n </div>\n </div>\n <div class="span4" ng-repeat="item in ::[{n: \'#\', l: []}]" ng-click="vm_pb.type(item.n, true)">\n <div class="num" layout="column" layout-align="center center">\n <div class="txt" layout="column" layout-align="center center">\n {{item.n}}\n </div>\n </div>\n </div>\n </section>\n</md-content>\n\x3c!-- Dialpad --\x3e\n\n\x3c!-- Input&Media Area --\x3e\n<div layout="row" layout-align="start center">\n <div layout="row" layout-align="center center">\n \x3c!-- START Ringing Tone--\x3e\n <md-button class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Ringing" ng-click="vm_pb.conf.ringingMute = !vm_pb.conf.ringingMute; vm_pb.initDevice(\'ringing\', true)" ng-disabled="!vm_pb.registered">\n <md-icon md-font-icon="{{vm_pb.conf.ringingMute ? \'icon-bell-off\' : \'icon-bell-ring\'}}" class="icon s14" ng-class="vm_pb.conf.ringingMute ? \'red-fg\' : \'grey-fg\'">\n <md-tooltip><span translate="TOOLBAR.RINGING">Ringing</span></md-tooltip>\n </md-icon>\n </md-button>\n \x3c!-- END Ringing Tone --\x3e\n\n \x3c!-- START Speaker --\x3e\n <md-button class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Speaker" ng-click="vm_pb.conf.speakerMute = !vm_pb.conf.speakerMute; vm_pb.initDevice(\'speaker\', true)" ng-disabled="!vm_pb.registered">\n <md-icon md-font-icon="{{vm_pb.conf.speakerMute ? \'icon-volume-off\' : \'icon-volume\'}}" class="icon s14" ng-class="vm_pb.conf.speakerMute ? \'red-fg\' : \'grey-fg\'">\n <md-tooltip><span translate="TOOLBAR.SPEAKER">Speaker</span></md-tooltip>\n </md-icon>\n </md-button>\n \x3c!-- END Speaker --\x3e\n\n \x3c!-- START Microphone --\x3e\n <md-button ng-disabled="(!vm_pb.registered || vm_pb.sessions.length==0)?true:false" class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Microphone" ng-click="vm_pb.conf.microphoneMute = !vm_pb.conf.microphoneMute; vm_pb.initDevice(\'microphone\', true)">\n <md-icon md-font-icon="{{vm_pb.conf.microphoneMute ? \'icon-microphone-off\' : \'icon-microphone\'}}" class="icon s14" ng-class="vm_pb.conf.microphoneMute ? \'red-fg\' : \'grey-fg\'">\n <md-tooltip><span translate="TOOLBAR.MICROPHONE">Microphone</span></md-tooltip>\n </md-icon>\n </md-button>\n \x3c!-- END Microphone --\x3e\n\n \x3c!-- START Registered --\x3e\n <span>\n <span class="quantity-indicator md-red-500-bg" ng-class="vm_pb.registered ? \'md-green-500-bg\' : \'md-red-500-bg\'"></span>\n <md-tooltip><span>{{vm_pb.conf.license ? (vm_pb.registered ? \'TOOLBAR.REGISTERED\' : \'TOOLBAR.NOT_REGISTERED\') : \'TOOLBAR.WEBRTC_LICENSE_NOT_ENABELD\' | translate}}\n <timer ng-if="vm_pb.registered"></timer>\n </span>\n </md-tooltip>\n </span>\n \x3c!-- END Registered --\x3e\n </div>\n <div layout="column" layout-align="center start">\n <div layout="row" layout-align="start center">\n \x3c!-- START Target --\x3e\n <angucomplete-alt id="ms-target-wrap" pause="10" local-data="vm_pb.calls" search-fields="target" title-field="target" minlength="0" input-class="input-number" disable-input="!vm_pb.registered" match-class="highlight" template-url="assets/ms-phonebar/ms-phonebar-input.html" input-changed="vm_pb.targetChanged" selected-object="vm_pb.targetSelected" clear-selected="true" ng-keypress="vm_pb.typeWrapper($event)" focus-first="true" disable-autocomplete="vm_pb.currentUser.privacyEnabled" />\n \x3c!-- END Target --\x3e\n\n \x3c!-- Auto Answer --\x3e\n <div ng-if="vm_pb.conf.autoAnswer" class="red-fg" style="padding-left: 10px;">\n <span class="font-size-20">A<span class="font-size-16">A</span></span>\n </div>\n \x3c!-- Auto Answer --\x3e\n\n <md-button class="md-fab md-mini white-bg width-30 height-30" aria-label="Dialpad" ng-click="vm_pb.toggleDialpad()" ng-disabled="!vm_pb.registered">\n <md-icon md-font-icon="icon-apps" class="icon grey-fg s16"></md-icon>\n </md-button>\n <md-button ng-if="vm_pb.target" class="md-fab md-mini white-bg width-25 height-25" aria-label="Call" style="margin-left: 0px;" ng-click="vm_pb.call()">\n <md-icon md-font-icon="icon-phone" class="icon green-fg s12"></md-icon>\n </md-button>\n </div>\n </div>\n</div>\n\x3c!-- Input&Media Area --\x3e\n\n\x3c!-- START 3WC --\x3e\n<md-button ng-if="vm_pb.canGoInConference" class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="3Way" ng-click="vm_pb.start3WayConf(); $event.stopPropagation();">\n <md-icon md-font-icon="icon-account-multiple-plus" class="icon orange-fg s14"></md-icon>\n <md-tooltip><span translate="TOOLBAR.CONFERENCE">Conference</span></md-tooltip>\n</md-button>\n\x3c!-- END 3Way --\x3e\n\n\n<div class="toolbar-separator"></div>\n\n\x3c!-- Sessions Area --\x3e\n<div class="sessions" layout="row" layout-align="start center" flex>\n <div layout="row" layout-align="center center" ng-if="!vm_pb.conf.license">\n <md-icon md-font-icon="icon-account-alert" class="icon s36 red-fg"></md-icon>\n <span layout-margin translate="TOOLBAR.WEBRTC_LICENSE_NOT_ENABELD"></span>\n </div>\n\n <div id="{{\'div_session_\'+session.id.substr(0,32)}}" ng-repeat="session in vm_pb.sessions" class="session" layout="row" ng-click="(vm_pb.sessions.length > 1) && vm_pb.selectSession(session)">\n <md-button ng-if="vm_pb.conf.recording && session.confirmed" class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Record" ng-click="vm_pb.record(session); $event.stopPropagation();">\n <md-icon md-font-icon="icon-radiobox-marked" class="icon s14" ng-class="session.monitor ? \'red-fg\' : \'grey-fg\'"></md-icon>\n </md-button>\n <div layout="column" layout-align="center start">\n <span class="session-info">\n <span ng-if="session.user == session.name" privacy ng-cloak>{{session.user}}</span>\n <span ng-if="session.user != session.name" privacy ng-cloak>{{session.name}}</span> <span ng-if="session.user != session.name" privacy ng-cloak>{{session.user}}</span>\n </span>\n <span class="session-info" layout="row" layout="start center">\n <timer></timer>\n </span>\n </div>\n\n \x3c!-- START Answer --\x3e\n <md-button ng-if="session.incoming && !session.confirmed" class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Anser" ng-click="vm_pb.answer(session); $event.stopPropagation();">\n <md-icon md-font-icon="icon-phone" class="icon green-fg s12"></md-icon>\n </md-button>\n \x3c!-- END Answer --\x3e\n\n \x3c!-- START Hangup --\x3e\n <md-button class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Terminate" ng-click="vm_pb.terminate(session); $event.stopPropagation();">\n <md-icon md-font-icon="icon-phone-hangup" class="icon red-fg s12"></md-icon>\n </md-button>\n \x3c!-- END Hangup --\x3e\n\n \x3c!-- START Hold/Unhold --\x3e\n <md-button ng-if="session.confirmed && !vm_pb.isInConference" class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Hold" ng-click="(session.localHold ? vm_pb.unhold(session) : vm_pb.hold(session)); $event.stopPropagation();">\n <md-icon md-font-icon="{{session.localHold ? \'icon-play\' : \'icon-pause\'}}" class="icon grey-fg s12"></md-icon>\n </md-button>\n \x3c!-- END Hold/Unhold --\x3e\n\n \x3c!-- START Transfer --\x3e\n <md-button ng-if="session.confirmed && !session.localHold && vm_pb.sessions.length == 1 && !vm_pb.isInConference" class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Refer" ng-click="vm_pb.refer(session); $event.stopPropagation();">\n <md-icon md-font-icon="icon-phone-forward" class="icon purple-fg s12"></md-icon>\n </md-button>\n \x3c!-- END transfer --\x3e\n\n \x3c!-- START Attended Transfer --\x3e\n <md-button ng-if="session.confirmed && !session.localHold && vm_pb.sessions.length>1" class="md-fab md-mini white-bg width-25 height-25 margin-5" aria-label="Refer Attended" ng-click="vm_pb.referAttended(session); $event.stopPropagation();">\n <md-icon md-font-icon="icon-phone-forward" class="icon purple-fg s12"></md-icon>\n </md-button>\n \x3c!-- END Attended Transfer --\x3e\n </div>\n</div>\n\x3c!-- Sessions Area --\x3e'),e.put("assets/ms-phonebar/ms-phonebar-input.html",'<div class="angucomplete-holder" ng-class="{\'angucomplete-dropdown-visible\': showDropdown}">\n <input id="ms-target" ng-model="searchStr" ng-disabled="disableInput" type="text" placeholder="{{placeholder}}" ng-focus="onFocusHandler()" class="{{inputClass}}" ng-focus="resetHideResults()" ng-blur="hideResults($event)" autocapitalize="off" autocorrect="off" autocomplete="off" ng-change="inputChangeHandler(searchStr)" />\n <div class="angucomplete-dropdown" ng-show="showDropdown && !(!searching && (!results || results.length == 0))">\n <div class="angucomplete-row" ng-repeat="result in results" ng-click="selectResult(result)" ng-mouseenter="hoverRow($index)" ng-class="{\'angucomplete-selected-row\': $index == currentIndex}">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="{{result.originalObject.inbound ? \'icon-arrow-bottom-left\' : \'icon-arrow-top-right\'}}" class="icon no-margin s22"></md-icon>\n <span style="margin-left: 8px;">({{result.originalObject.time}}) - <span class="angucomplete-title" ng-if="matchClass" ng-bind-html="result.title" privacy ng-cloak></span></span>\n </div>\n </div>\n </div>\n</div>'),e.put("assets/ms-phonebar/ms-phonebar.html",'<div layout="row" layout-align="start center" flex>\n \x3c!-- Audio stream --\x3e\n <audio id="local-audio" autoplay hidden=true></audio>\n <audio id="remote-audio" autoplay hidden=true></audio>\n \x3c!-- Audio stream --\x3e\n\n \x3c!-- WebRtc PhoneBar --\x3e\n <div class="phonebar-container" ng-include="\'assets/ms-phonebar/ms-phonebar-dialpad.html\'" layout="row" layout-align="start center" flex></div>\n \x3c!-- WebRtc PhoneBar --\x3e\n</div>'),e.put("assets/ms-phonebar/prefix/dialog.html",'<md-dialog aria-label="Prefix">\n <form ng-cloak ng-keypress="vm.keyPress($event)">\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div flex>\n <span class="title" translate="TOOLBAR.PREFIXES">Prefixes</span>\n </div>\n <div layout="row" layout-align="end center">\n <md-button class="md-icon-button no-margin no-padding" ng-click="vm.closeDialog(-1)">\n <md-icon class="no-margin" md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <md-radio-group ng-model="vm.prefix">\n <md-radio-button ng-repeat="prefix in vm.prefixes.rows" value="{{prefix.prefix}}" class="md-primary">{{prefix.name}}</md-radio-button>\n <md-radio-button ng-if="!vm.required" ng-value="null" class="md-primary">no prefix</md-radio-button>\n </md-radio-group>\n </md-dialog-content>\n\n <md-dialog-actions layout="row">\n <md-button ng-click="vm.call()" class="send-button md-accent md-raised" aria-label="call" md-autofocus ng-disabled="!vm.prefix && vm.required">\n <span translate="TOOLBAR.CALL">CALL</span>\n </md-button>\n <md-button ng-click="vm.closeDialog(-1)" class="send-button md-accent md-raised" aria-label="cancel">\n <span translate="TOOLBAR.CANCEL">Cancel</span>\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("assets/ms-phonebar/record/dialog.html",'<md-dialog aria-label="Recording" ng-init="vm.onInit()">\n <form ng-cloak>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div flex>\n <span class="title" translate="TOOLBAR.RECORDING">Recording</span>\n </div>\n <div layout="row" layout-align="end center">\n <md-button class="md-icon-button no-margin no-padding">\n <md-icon class="no-margin" md-font-icon="icon-plus" aria-label="Add" ng-click="vm.addRecording()"></md-icon>\n </md-button>\n <md-button class="md-icon-button no-margin no-padding" ng-click="vm.closeDialog()">\n <md-icon class="no-margin" md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </div>\n </md-toolbar>\n\n <md-table-container>\n <table md-table layout-padding>\n <thead md-head>\n <tr md-row>\n <th md-column><span translate="TOOLBAR.FILENAME">File name</span></th>\n <th md-column><span translate="TOOLBAR.STATUS">Status</span></th>\n <th md-column><span translate="TOOLBAR.ACTIONS">Actions</span></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.session.monitors.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="TOOLBAR.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="monitor in vm.session.monitors">\n <td md-cell>{{monitor.filename}}</td>\n <td md-cell class="no-padding">\n <md-icon md-font-icon="icon-radiobox-marked" class="icon s16" ng-class="(monitor.status == \'rec\') ? \'red-fg ms-blink\' : \'grey-fg\'"></md-icon>\n </td>\n <td md-cell class="no-padding">\n <md-button class="md-fab md-mini white-bg width-35 height-35 margin-5" aria-label="Record" ng-click="(monitor.status == \'rec\') ? vm.stop(monitor) : vm.start(monitor)">\n'+" <md-icon md-font-icon=\"{{monitor.status == 'rec' ? 'icon-stop' : 'icon-play'}}\" class=\"icon s16\" ng-class=\"monitor.status == 'rec' ? 'grey-fg' : 'red-fg'\"></md-icon>\n </md-button>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n </form>\n</md-dialog>"),e.put("assets/ms-phonebar/referAttended/dialog.html",'<md-dialog aria-label="Transfer">\n <form ng-cloak>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div flex>\n <span class="title" translate="TOOLBAR.ATTENDED_TRANSFER">Transfer</span>\n </div>\n <div layout="row" layout-align="end center">\n <md-button class="md-icon-button no-margin no-padding" ng-click="vm.closeDialog()">\n <md-icon class="no-margin" md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <label translate="TOOLBAR.TARGET">Target</label>\n <md-input-container class="md-block">\n <md-select ng-model="vm.target">\n <md-option ng-repeat="session in vm.sessions" ng-value="session.user">\n {{ session.name }}\n </md-option>\n </md-select>\n </md-input-container>\n </md-dialog-content>\n\n <md-dialog-actions layout="row">\n <md-button ng-click="vm.transfer()" class="send-button md-accent md-raised" aria-label="transfer" ng-disabled="!vm.target && !vm.sessionId">\n <span translate="TOOLBAR.TRANSFER">TRANSFER</span>\n </md-button>\n <md-button ng-click="vm.closeDialog()" class="send-button md-accent md-raised" aria-label="cancel">\n <span translate="TOOLBAR.CANCEL">Cancel</span>\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("assets/ms-phonebar/settings/settings.html",'<md-dialog class="md-phonebar-dialog" aria-label="{{vm.name}}">\n <form name="settingsForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="TOOLBAR.SETTINGS">Settings</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content class="no-padding" ms-scroll>\n <md-tabs md-no-pagination md-stretch-tabs="always">\n <md-tab label="{{ \'TOOLBAR.PROFILE\' | translate}}">\n <md-content layout-padding layout="column">\n <span><span translate="TOOLBAR.FULLNAME">Fullname</span>: {{vm.conf.fullname}}</span>\n <span><span translate="TOOLBAR.NAME">Name</span>: {{vm.conf.name}}</span>\n <span><span translate="TOOLBAR.INTERNAL">Internal</span>: {{vm.conf.internal}}</span>\n <span><span translate="TOOLBAR.BROWSER">Browser</span>: {{vm.conf.browserName}} {{vm.conf.browserVersion}}</span>\n <span><span translate="TOOLBAR.OS">OS</span>: {{vm.conf.osName}} {{vm.conf.osVersion}}</span>\n </md-content>\n </md-tab>\n <md-tab label="{{ \'TOOLBAR.SERVICES\' | translate}}">\n <md-content layout-padding>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.conf.autoAnswer" aria-label="Auto Answer">\n <span translate="TOOLBAR.AUTOANSWER">Auto Answer</span>\n <span>{{ vm.conf.autoAnswerDelay }} [s]</span>\n </md-switch>\n </md-input-container>\n </md-content>\n </md-tab>\n <md-tab label="{{ \'TOOLBAR.AUDIO\' | translate}}">\n <md-content layout-padding>\n <div class="border brad-5" layout-margin>\n <md-input-container class="md-block" ng-if="(vm.devices | filter: { kind: \'audiooutput\' }).length">\n <label translate="TOOLBAR.RINGINGDEVICE">Ringing Device</label>\n <md-select name="ringingDevice" ng-model="vm.conf.ringingId" required>\n <md-option ng-value="device.deviceId" ng-repeat="device in vm.devices | filter: { kind: \'audiooutput\' }">{{ device.label || (\'Speaker \' + ($index + 1)) }}</md-option>\n </md-select>\n <div ng-messages="settingsForm[\'ringingDevice\'].$error" ng-show="settingsForm[\'ringingDevice\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLBAR.ERRORS.FIELD_REQUIRED">Field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div layout="row" layout-align="space-between center">\n <md-switch ng-model="vm.conf.ringingMute" aria-label="Mute">\n Mute\n </md-switch>\n\n <md-slider-container flex="80">\n <md-slider flex step="0.1" min="0" max="1" ng-model="vm.conf.ringingVolume" aria-label="volume"></md-slider>\n </md-slider-container>\n </div>\n </div>\n\n <div class="border brad-5" layout-margin>\n <md-input-container class="md-block" ng-if="(vm.devices | filter: { kind: \'audiooutput\' }).length">\n <label translate="TOOLBAR.SPEAKERDEVICE">Speaker Device</label>\n <md-select name="speakerDevice" ng-model="vm.conf.speakerId" required>\n <md-option ng-value="device.deviceId" ng-repeat="device in vm.devices | filter: { kind: \'audiooutput\' }">{{ device.label || (\'Speaker \' + ($index + 1)) }}</md-option>\n </md-select>\n <div ng-messages="settingsForm[\'speakerDevice\'].$error" ng-show="settingsForm[\'speakerDevice\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLBAR.ERRORS.FIELD_REQUIRED">Field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div layout="row" layout-align="space-between cetner">\n <md-switch ng-model="vm.conf.speakerMute" aria-label="Mute">\n Mute\n </md-switch>\n\n <md-slider-container flex="80">\n <md-slider flex step="0.1" min="0" max="1" ng-model="vm.conf.speakerVolume" aria-label="volume"></md-slider>\n </md-slider-container>\n </div>\n </div>\n\n <div class="border brad-5" layout-margin>\n <md-input-container class="md-block" ng-if="(vm.devices | filter: { kind: \'audioinput\' }).length">\n <label translate="TOOLBAR.MICROPHONEDEVICE">Microphone Device</label>\n <md-select name="microphoneDevice" ng-model="vm.conf.microphoneId" required>\n <md-option ng-value="device.deviceId" ng-repeat="device in vm.devices | filter: { kind: \'audioinput\' }">{{ device.label || (\'Microphone \' + ($index + 1))}}</md-option>\n </md-select>\n <div ng-messages="settingsForm[\'microphoneDevice\'].$error" ng-show="settingsForm[\'microphoneDevice\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLBAR.ERRORS.FIELD_REQUIRED">Field is required</span>\n </div>\n </div>\n </md-input-container>\n\n\n <div layout="row" layout-align="space-between center">\n <md-switch ng-disabled="vm.activeSessions.length==0" ng-model="vm.conf.microphoneMute" aria-label="Mute">\n Mute\n </md-switch>\n </div>\n </div>\n </md-content>\n </md-tab>\n <md-tab label="{{ \'TOOLBAR.REQUIREMENTS\' | translate}}">\n <md-content layout-padding>\n <md-list>\n <md-list-item>\n <h3 translate="TOOLBAR.LICENSE">License</h3>\n <md-icon class="md-secondary" ng-class="vm.conf.license ? \'green-fg\' : \'red-fg\'" md-font-icon="{{vm.conf.license ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </md-list-item>\n <md-list-item>\n <h3 translate="TOOLBAR.BROWSER_COMPATIBILITY">Browser Compatibility</h3>\n <md-icon class="md-secondary" ng-class="vm.isCompatibleBrowser() ? \'green-fg\' : \'red-fg\'" md-font-icon="{{vm.isCompatibleBrowser() ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </md-list-item>\n <md-list-item>\n <h3 translate="TOOLBAR.HTTPS">HTTPS</h3>\n <md-icon class="md-secondary" ng-class="vm.conf.protocol === \'https\' ? \'green-fg\' : \'red-fg\'" md-font-icon="{{vm.conf.protocol === \'https\' ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </md-list-item>\n <md-list-item>\n <h3 translate="TOOLBAR.WEBRTCSUPPORT">WebRTC Support</h3>\n <md-icon class="md-secondary" ng-class="vm.conf.isWebRTCSupported ? \'green-fg\' : \'red-fg\'" md-font-icon="{{vm.conf.isWebRTCSupported ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </md-list-item>\n <md-list-item>\n <h3 translate="TOOLBAR.MICROPHONE">Microphone</h3>\n <md-icon class="md-secondary" ng-class="vm.conf.hasMicrophone ? \'green-fg\' : \'red-fg\'" md-font-icon="{{vm.conf.hasMicrophone ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </md-list-item>\n <md-list-item>\n <h3 translate="TOOLBAR.SPEAKER">Speaker</h3>\n <md-icon class="md-secondary" ng-class="vm.conf.hasSpeakers ? \'green-fg\' : \'red-fg\'" md-font-icon="{{vm.conf.hasSpeakers ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </md-list-item>\n </md-list>\n </md-content>\n </md-tab>\n </md-tabs>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.saveSettings()" class="send-button md-accent md-raised" ng-disabled="settingsForm.$invalid || settingsForm.$pristine" aria-label="SAVE" translate="TOOLBAR.SAVE" translate-attr-aria-label="TOOLBAR.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/core/directives/ms-quick-filter/ms-quick-filter.html",'<div ng-cloak layout="row" class="quick-filter-container" flex>\n <div ng-repeat="filter in vm.filters" ng-if="filter.ngIf ? $eval(\'vm.query.\' + filter.ngIf) : true" layout="column" class="padding-horizontal-16">\n <span class="font-size-10" translate="{{ filter.label }}" />\n <md-select ng-if="filter.type === \'select\'" class="font-size-12 no-margin" ng-model="vm.query[filter.key]" ng-change="vm.search()" aria-label="Filter {{ filter.name }}">\n <md-option ng-repeat="option in filter.options" ng-value="filter.ngValue ? option[filter.ngValue] : option.id">\n {{ option.name }}</md-option>\n <md-option ng-repeat="option in filter.customOptions" ng-value="option.value" translate="{{ option.translate }}">\n </md-option>\n </md-select>\n\n <md-select ng-if="filter.type === \'multiselect\'" multiple class="font-size-12 no-margin" ng-init="vm.onMultiselectInit(filter)" ng-model="vm.query[filter.key]" ng-disabled="filter.options.length === 0" ng-change="vm.onMultiselectSelection(filter, isOpened)" md-selected-text="vm.placeholders[filter.key]" aria-label="Filter {{ filter.name }}" md-on-open="isOpened = true" md-on-close="isOpened = false">\n <md-option ng-repeat="option in filter.options" ng-value="filter.ngValue ? option[filter.ngValue] : option.id" ng-disabled="filter.clearAll === false && vm.query[filter.key].length === 1 && vm.query[filter.key][0] === (filter.ngValue ? option[filter.ngValue] : option.id)">\n {{ option.name }}</md-option>\n <md-button ng-if="vm.query[filter.key].length < filter.options.length" ng-click="vm.selectAll(filter)" md-no-ink class="md-primary" layout-fill>\n {{\'DASHBOARDS.SELECT_ALL\' | translate}}</md-button>\n <md-button ng-if="vm.query[filter.key].length === filter.options.length" ng-click="vm.clearSelection(filter)" md-no-ink class="md-primary" layout-fill>\n {{\'DASHBOARDS.CLEAR\' | translate}}</md-button>\n </md-select>\n\n <div ng-if="filter.type === \'date\'" layout="row" layout-align="center center">\n <md-date-range ng-init="vm.onDateRangeInit(filter)" localization-map="vm.localizationMap" ng-model="vm.pickerModels[filter.key]" auto-confirm="true" show-template="true" md-on-select="vm.onDateRangeSelection(filter)" placeholder="{{ \'DASHBOARDS.ALL\' | translate }}">\n </md-date-range>\n <md-button ng-if="vm.pickerModels[filter.key].dateStart" ng-click="vm.clearDate(filter)" class="md-icon-button no-margin no-padding width-20 height-20" aria-label="Clear date filter">\n <md-icon md-font-icon="icon-close" class="quick-filter-date-clear-button s16"></md-icon>\n </md-button>\n </div>\n </div>\n</div>'),e.put("app/core/directives/ms-search-bar/ms-search-bar.html",'<div flex layout="row" layout-align="start center">\n <label>\n <md-button class="ms-search-bar-expander md-icon-button" aria-label="Expand Search Bar" ng-click="vm.expandBar()" ng-if="!vm.resultsLoading || !vm.expanded" ng-class="{\'ms-search-button-expanded\': vm.expanded }">\n <md-icon id="ms-search-bar-icon" md-font-icon="icon-magnify" class="s24" ng-class="{\'{{ vm.iconColor }}\': vm.iconColor && !vm.expanded }"></md-icon>\n </md-button>\n <div class="ms-search-bar-loader" layout="row" layout-align="center center" ng-if="vm.resultsLoading && vm.expanded">\n <md-progress-circular class="md-accent" md-diameter="32" md-mode="indeterminate"></md-progress-circular>\n </div>\n </label>\n <input ng-if="vm.expanded" focus-on="vm.expanded" type="text" placeholder="{{ \'TOOLBAR.SEARCH\' | translate }}" flex ng-model="vm.query.filter" ng-model-options="vm.queryOptions" ng-blur="vm.blurCollapse()" ng-keydown="vm.onKeyDown($event)" />\n <md-button class="ms-search-bar-collapser md-icon-button" ng-click="vm.collapseBar()" aria-label="Collapse Search Bar">\n <md-icon md-font-icon="icon-close" class="icon s24"></md-icon>\n </md-button>\n <div class="ms-search-bar-results" ng-if="vm.results" ms-scroll>\n <div class="no-results" ng-if="vm.results.length === 0">{{ \'DASHBOARDS.NO_RESULTS_AVAILABLE\' | translate }}</div>\n <div class="result" ng-repeat="result in vm.results" ng-click="vm.handleResultClick(result)" ng-mouseenter="vm.handleMouseEnter($index)" ng-mousedown="vm.absorbEvent($event)" ng-class="{\'selected\': $index == vm.selectedResultIndex}" md-ink-ripple>\n <div layout="row" layout-align="start center">\n <div class="icon-container" layout="row" layout-align="center center">\n <i ng-if="result.icon" class="icon {{ result.icon }}"></i>\n <div ng-if="!result.icon" class="square md-accent-bg"></div>\n </div>\n <div>\n <div class="title">{{ result.title }}</div>\n <div class="description" ng-if="result.description">{{ result.description }}</div>\n </div>\n </div>\n </div>\n </div>\n</div>'),e.put("app/core/directives/ms-shortcuts/ms-shortcuts.html",'<div class="shortcuts-container" layout="row" layout-align="space-between center" flex ng-class="{\'mobile-bar-active\': MsShortcuts.mobileBarActive}">\n\n <div class="flex-noshrink" layout="row" layout-align="start center" flex>\n <div class="shortcuts hide show-gt-xs" layout="row" layout-align="start center" ms-scroll ng-if="MsShortcuts.shortcuts.length > 0" ng-sortable="MsShortcuts.sortableOptions">\n <div ng-repeat="shortcut in MsShortcuts.shortcuts" layout="row" layout-align="center center">\n <md-button class="md-icon-button shortcut" aria-label="{{shortcut.title}}" ui-sref="{{shortcut.uisref}}">\n <md-icon ng-if="shortcut.icon" md-font-icon="{{shortcut.icon}}" class="icon s24"></md-icon>\n <div ng-if="!shortcut.icon" class="first-letter">{{shortcut.title.charAt(0)}}</div>\n <md-tooltip md-direction="bottom">{{shortcut.title}}</md-tooltip>\n </md-button>\n </div>\n </div>\n\n \x3c!-- <md-menu md-offset="8 56" class="shortcut-menu hide show-gt-xs">\n <md-button class="md-icon-button add-shortcut-button" aria-label="Add shortcut"\n ng-click="$mdOpenMenu($event)">\n <md-icon md-menu-origin md-font-icon="icon-star" class="icon amber-600-fg s24"></md-icon>\n <md-tooltip md-direction="bottom">Click to add/remove shortcut</md-tooltip>\n </md-button>\n\n <md-menu-content>\n <div id="ms-shortcut-add-menu">\n <div class="shortcut-search" layout="row" layout-align="start center">\n <div class="search-icon" layout="row" layout-align="center center"\n ng-if="!MsShortcuts.resultsLoading">\n <md-icon md-menu-align-target md-font-icon="icon-magnify" class="icon s24"></md-icon>\n </div>\n <div class="shortcut-loader" layout="row" layout-align="center center"\n ng-if="MsShortcuts.resultsLoading">\n <md-progress-circular class="md-accent" md-diameter="20" md-mode="indeterminate">\n </md-progress-circular>\n </div>\n\n <input type="text" placeholder="Search" flex\n ng-model="MsShortcuts.query"\n ng-model-options="MsShortcuts.queryOptions"\n ng-keydown="MsShortcuts.handleKeydown($event)">\n </div>\n\n <div class="results" ng-if="MsShortcuts.results" ms-scroll>\n <div class="no-results" ng-if="MsShortcuts.results.length === 0">No Results!</div>\n\n <div class="result" ng-repeat="result in MsShortcuts.results"\n ng-click="MsShortcuts.handleResultClick(result)"\n ng-mouseenter="MsShortcuts.handleMouseenter($index)"\n ng-mousedown="MsShortcuts.absorbEvent($event)"\n ng-class="{\'selected\': $index == MsShortcuts.selectedResultIndex}"\n md-prevent-menu-close="md-prevent-menu-close"\n md-ink-ripple>\n <div layout="row" layout-align="start space-between">\n <div layout="row" layout-align="start center" flex>\n <div class="icon icon-container" layout="row" layout-align="center center">\n <i ng-if="result.icon" class="{{result.icon}}"></i>\n <div ng-if="!result.icon" class="square md-accent-bg"></div>\n </div>\n <div>\n <div class="title">{{result.title}}</div>\n </div>\n </div>\n <md-icon md-font-icon="icon-pin" class="icon s18"\n ng-class="{\'fade-text\': !result.hasShortcut}"></md-icon>\n </div>\n </div>\n </div>\n </div>\n </md-menu-content>\n </md-menu> --\x3e\n </div>\n\n <md-button class="md-icon-button toggle-mobile-menu hide-gt-xs" aria-label="Add shortcut" ng-click="MsShortcuts.toggleMobileBar()">\n <md-icon md-menu-origin md-font-icon="icon-star" class="icon amber-600-fg s24" ng-hide="MsShortcuts.mobileBarActive"></md-icon>\n <md-icon md-menu-origin md-font-icon="icon-close" class="icon s24" ng-hide="!MsShortcuts.mobileBarActive"></md-icon>\n </md-button>\n</div>'),e.put("app/core/directives/ms-stepper/templates/horizontal/horizontal.html",'<div class="ms-stepper-horizontal">\n <div class="ms-stepper-navigation-wrapper">\n <div class="ms-stepper-navigation" layout="row" layout-align="center center">\n <md-button class="ms-stepper-navigation-item" ng-class="{\'current\': MsStepper.isStepCurrent(step.stepNumber), \'valid\': MsStepper.isStepValid(step.stepNumber), \'disabled\': MsStepper.isStepDisabled(step.stepNumber), \'optional\': MsStepper.isStepOptional(step.stepNumber)}" ng-click="MsStepper.gotoStep(step.stepNumber)" ng-disabled="MsStepper.isStepDisabled(step.stepNumber)" ng-repeat="step in MsStepper.steps | filter:MsStepper.filterHiddenStep" layout="row" layout-align="start center">\n\n <div class="step md-accent-bg" layout="row" layout-align="center center">\n <span ng-if="!MsStepper.isStepValid(step.stepNumber) || MsStepper.isStepOptional(step.stepNumber)">\n {{$index + 1}}\n </span>\n <span ng-if="MsStepper.isStepValid(step.stepNumber) && !MsStepper.isStepOptional(step.stepNumber)">\n <i class="icon icon-check s18"></i>\n </span>\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="title" translate="{{step.stepTitleTranslate}}">{{step.stepTitle}}</div>\n <div class="subtitle" ng-if="MsStepper.isStepOptional(step.stepNumber)">Optional</div>\n </div>\n </md-button>\n </div>\n </div>\n\n <div class="ms-stepper-steps" ng-transclude></div>\n\n <div class="ms-stepper-controls" layout="row" layout-align="center center">\n <md-button class="md-accent md-raised" ng-disabled="MsStepper.isFirstStep()" ng-click="MsStepper.gotoPreviousStep()">\n Back\n </md-button>\n\n <div class="ms-stepper-dots">\n <span ng-repeat="step in MsStepper.steps" ng-hide="MsStepper.isStepHidden(step.stepNumber)" ng-class="{\'selected md-accent-bg\':MsStepper.currentStepNumber === $index + 1}">\n </span>\n </div>\n\n <md-button class="md-accent md-raised" ng-if="!MsStepper.isLastStep()" ng-disabled="!MsStepper.isStepValid(MsStepper.currentStepNumber)" ng-click="MsStepper.gotoNextStep()">\n Next\n </md-button>\n\n <md-button type="submit" class="md-accent md-raised" ng-click="MsStepper.resetForm()" ng-if="MsStepper.isLastStep()" ng-disabled="!MsStepper.isFormValid()">\n Submit\n </md-button>\n </div>\n</div>'),e.put("app/core/directives/ms-stepper/templates/vertical/step/vertical-step.html",'<md-button class="ms-stepper-navigation-item" ng-class="{\'current\': MsStepper.isStepCurrent(stepInfo.stepNumber), \'valid\': MsStepper.isStepValid(stepInfo.stepNumber), \'disabled\': MsStepper.isStepDisabled(stepInfo.stepNumber), \'optional\': MsStepper.isStepOptional(stepInfo.stepNumber)}" ng-click="MsStepper.gotoStep(stepInfo.stepNumber)" ng-disabled="MsStepper.isStepDisabled(stepInfo.stepNumber)" ng-hide="MsStepper.isStepHidden(stepInfo.stepNumber)" aria-label="Stepper navigation button" layout="row" layout-align="start center">\n\n <div class="step" layout="row" layout-align="center center">\n <span ng-if="!MsStepper.isStepValid(stepInfo.stepNumber) || MsStepper.isStepOptional(stepInfo.stepNumber)">\n <i class="icon icon-checkbox-blank-circle-outline s18 md-accent-fg"></i>\n </span>\n <span ng-if="MsStepper.isStepValid(stepInfo.stepNumber) && !MsStepper.isStepOptional(stepInfo.stepNumber)">\n <i class="icon icon-check-circle s18 md-accent-fg"></i>\n </span>\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="title" ng-if="stepInfo.stepTitleTranslate">{{stepInfo.stepTitleTranslate | translate }}</div>\n <div class="title" ng-if="!stepInfo.stepTitleTranslate">{{stepInfo.stepTitle}}</div>\n <div class="subtitle" ng-if="MsStepper.isStepOptional(stepInfo.stepNumber)">Optional</div>\n </div>\n</md-button>\n\n<div class="ms-stepper-step-content" ng-transclude></div>\n\n<div class="ms-stepper-controls" layout="row" layout-align="start center" ng-show="MsStepper.isStepCurrent(stepInfo.stepNumber)">\n <md-button class="md-accent md-raised" ng-disabled="MsStepper.isFirstStep()" ng-click="MsStepper.gotoPreviousStep()">\n Back\n </md-button>\n\n <md-button class="md-accent md-raised" ng-if="!MsStepper.isLastStep()" ng-disabled="!MsStepper.isStepValid(MsStepper.currentStepNumber)" ng-click="MsStepper.gotoNextStep()">\n Next\n </md-button>\n\n <md-button type="submit" class="md-accent md-raised" ng-click="MsStepper.resetForm()" ng-if="MsStepper.isLastStep()" ng-disabled="!MsStepper.isFormValid()">\n Submit\n </md-button>\n</div>'),e.put("app/core/directives/ms-stepper/templates/vertical/vertical.html",'<div class="ms-stepper-vertical">\n <div class="ms-stepper-vertical-line"></div>\n <div class="ms-stepper-steps" ng-transclude></div>\n</div>'),e.put("app/core/directives/ms-tab-scroll/ms-tab-scroll.html",'<div layout="row">\n <md-button class="md-icon-button md-mini width-25 no-margin scroll-arrow" ng-click="vm.onTabScroll(\'left\')" ng-if="vm.canScroll(\'left\') == true">\n <md-icon md-font-icon="icon-chevron-left" class="icon s26"></md-icon>\n </md-button>\n <div id="bar-container" layout="row" class="bar-container">\n <div ng-transclude id="tab-container" layout="row" layout-align="start center" class="scroll-container">\n </div>\n </div>\n <md-button class="md-icon-button md-mini width-25 no-margin scroll-arrow" ng-click="vm.onTabScroll(\'right\')" ng-if="vm.canScroll(\'right\') == true">\n <md-icon md-font-icon="icon-chevron-right" class="icon s26"></md-icon>\n </md-button>\n</div>'),e.put("app/core/directives/ms-timezone/ms-timezone.html",'<md-select ng-model="ngModel" class="no-margin">\n <md-option ng-value="null">NONE</md-option>\n <md-option ng-repeat="t in timezone | orderBy:\'utcOffset\'" value="{{t.name}}">{{t.name}} ({{t.offsetStr}})</md-option>\n</md-select>'),e.put("app/core/directives/ms-widget-engine/ms-widget-engine-counter/ms-widget-engine.counter.html",'<div class="pt-8 pb-32" layout="column" layout-align="center center" layout-fill ng-controller="MsWidgetEngineCounterController as vm">\n <div ng-class="\'font-size-\' + (vm.fontSize * 3)" ng-style="{\'color\': widget.foreground}">\n {{ vm.getCount(widget) }}\n </div>\n <div ng-class="\'font-size-\' + vm.fontSize" ng-style="{\'color\': widget.foreground}">{{ \'TOOLS.\' + widget.attrs[0].value | uppercase | translate }}<span ng-if="vm.filtered">*</span></div>\n</div>'),e.put("app/core/directives/ms-widget-engine/ms-widget-engine-multibar-chart/ms-widget-engine.multibar-chart.html",'<div ng-controller="MsWidgetEngineMultibarChartController as vm" ng-init="vm.getMultiBarChart(widget)" layout="column" layout-fill>\n\n <span ng-show="false">{{ vm.getMultiBarChart(widget)}}</span>\n\n <canvas style="overflow:scroll" id="bar" class="chart-horizontal-bar" chart-data="vm.multiBarChart.data" chart-options="vm.multiBarChart.options" chart-series="vm.multiBarChart.series" chart-labels="vm.multiBarChart.labels">\n </canvas>\n</div>'),e.put("app/core/directives/ms-widget-engine/ms-widget-engine-pie-chart/ms-widget-engine.pie-chart.html",'<div ng-controller="MsWidgetEnginePieChartController as vm" ng-init="vm.getPieChart(widget)" layout="column" layout-fill>\n\n <span ng-show="false">{{ vm.getPieChart(widget)}}</span>\n\n <canvas style="overflow:scroll" id="pie" class="chart-pie" chart-data="vm.pieChart.data" chart-labels="vm.pieChart.labels" chart-options="vm.pieChart.options">\n </canvas>\n</div>'),e.put("app/core/directives/ms-widget-engine/ms-widget-engine-web-report/ms-widget-engine.web-report.html",'<div ng-controller="MsWidgetEngineWebReportController as vm" ng-init="vm.onInit(widget)">\n <dl ng-if="vm.error">\n <dt class="text-bold">Query Error</dt>\n <dd>{{vm.error.sql}}</dd>\n <dt>Message</dt>\n <dd>{{vm.error.msg}}</dd>\n </dl>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm.title}}</span>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm.onInit(widget)" aria-label="refresh">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n <span ng-if="vm.refresh && vm.countDown" class="md-subhead blue-fg">{{vm.countDown}}</span>\n </div>\n </md-toolbar>\n <md-table-container ng-if="!vm.error">\n <table md-table md-progress="vm.promise">\n <thead md-head>\n <tr md-row>\n <th md-column ng-repeat="column in vm.columns">{{column.alias || column.field}}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-repeat="row in vm.results.rows">\n <td md-cell ng-repeat="(key, value) in row">{{ vm.valueReplacer(key, value) }}</td>\n </tr>\n <tr md-row ng-if="!vm.results.rows.length">\n <td md-cell colspan="{{vm.columns.length}}">\n <div layout="row" layout-align="center center">\n <span>No Data</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.results.count}}" md-on-paginate="vm.getResults" md-page-select></md-table-pagination>\n</div>'),e.put("app/core/directives/ms-widget-engine/ms-widget-engine.html",'<div gridster="vm.config">\n <ul>\n <li gridster-item="widget" ng-repeat="widget in vm.config.widgets">\n <md-card layout-fill>\n <md-toolbar class="height-40" ng-style="{\'background-color\': widget.background, \'color\': widget.foreground }">\n <div class="md-toolbar-tools height-40 no-margin" layout="row" layout-align="start center">\n <a ng-href="{{widget.link ? widget.link : \'javascript:void(0)\'}}" ng-style="{\'color\': widget.foreground, \'font-size\': (widget.titleFontSize || 12) }" class="text-truncate" flex>\n {{ widget.title || \'No Title\' }}\n </a>\n <md-button ng-if="!vm.config.preview" class="draggable md-icon-button width-30 no-margin no-padding" aria-label="Move">\n <md-tooltip><span translate="TOOLS.MOVE_WIDGET">Move</span></md-tooltip>\n <md-icon md-font-icon="icon-cursor-move" class="s20" ng-style="{\'color\': widget.foreground}"></md-icon>\n </md-button>\n <md-menu ng-if="!vm.config.preview">\n <md-button ng-click="$mdOpenMenu($event)" class="md-icon-button width-30 no-margin no-padding" aria-label="More">\n <md-icon md-font-icon="icon-dots-vertical" class="s20" ng-style="{\'color\': widget.foreground}"></md-icon>\n </md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-click="vm.onEdit({widget: widget})" translate="TOOLS.EDIT_WIDGET">Edit\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.onDelete({widget: widget})" translate="TOOLS.DELETE_WIDGET">\n Delete</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n\n </div>\n </md-toolbar>\n <md-card-content class="resizable" layout="column" layout-align="center center" flex ng-style="{\'background-color\': widget.background, \'color\': widget.foreground}">\n <div ng-switch="widget.type" layout-fill>\n <iframe ng-switch-when="iframe|custom" ng-switch-when-separator="|" ng-src="{{vm.getTrustedURL(widget.attrs[0].value)}}" frameborder=0 style="border:0px; width:100%; height:100%;"></iframe>\n <ds-widget-clock ng-class="\'font-size-\' + (widget.attrs[2].value || 12)" ng-switch-when="clock" digital-format="widget.attrs[0].value" gmt-offset="widget.attrs[1].value" data-show-digital show-gmt-info></ds-widget-clock>\n <div ng-switch-default layout-fill>\n <div ng-include="widget.templateUrl" layout-fill></div>\n </div>\n </div>\n </md-card-content>\n </md-card>\n </li>\n </ul>\n</div>'),e.put("app/core/layouts/content-only.html",'<div id="layout-content-only" class="template-layout" layout="column" flex>\n <md-content id="content" class="animate-slide-up md-hue-2" ui-view="content" flex></md-content>\n</div>'),e.put("app/core/layouts/content-with-toolbar.html",'<div id="layout-content-with-toolbar" class="template-layout" layout="column" flex>\n <md-toolbar id="toolbar" class="md-menu-toolbar md-whiteframe-1dp" ui-view="toolbar"></md-toolbar>\n <md-content id="content" class="animate-slide-up md-hue-2" ui-view="content" flex></md-content>\n\n <md-sidenav id="quick-panel" class="md-sidenav-right md-whiteframe-4dp" md-component-id="quick-panel" ms-scroll ui-view="quickPanel"></md-sidenav>\n</div>'),e.put("app/core/layouts/horizontal-navigation.html",'<div id="layout-horizontal-navigation" class="template-layout" layout="column" flex>\n\n <div id="toolbar-navigation-container" class="md-whiteframe-1dp" layout="column" layout-align="space-between start">\n <md-toolbar id="toolbar" class="md-menu-toolbar md-whiteframe-1dp" ui-view="toolbar"></md-toolbar>\n <div id="horizontal-navigation" ui-view="navigation" layout="row" layout-align="start end" flex></div>\n </div>\n\n <div id="content-container" flex layout="column">\n <md-content id="content" class="animate-slide-up md-hue-2" ms-scroll ui-view="content" flex></md-content>\n </div>\n\n <md-sidenav id="quick-panel" class="md-sidenav-right md-whiteframe-4dp" md-component-id="quick-panel" ms-scroll ui-view="quickPanel"></md-sidenav>\n\n</div>'),e.put("app/core/layouts/vertical-navigation-fullwidth-toolbar-2.html",'<div id="layout-vertical-navigation-fullwidth-toolbar-2" class="template-layout" layout="column" flex>\n\n <md-toolbar id="toolbar" class="md-menu-toolbar md-whiteframe-1dp md-accent" ui-view="toolbar"></md-toolbar>\n\n <div id="main-container" layout="row" flex>\n <md-sidenav id="vertical-navigation" class="md-primary-bg" md-is-locked-open="$mdMedia(\'gt-sm\')" md-component-id="navigation" ms-scroll ui-view="navigation"></md-sidenav>\n\n <div id="content-container" flex layout="column">\n <md-content id="content" class="animate-slide-up md-hue-2" ms-scroll ui-view="content" flex></md-content>\n </div>\n\n <md-sidenav id="quick-panel" class="md-sidenav-right md-whiteframe-4dp" md-component-id="quick-panel" ms-scroll ui-view="quickPanel"></md-sidenav>\n </div>\n\n\n</div>'),e.put("app/core/layouts/vertical-navigation-fullwidth-toolbar.html",'<div id="layout-vertical-navigation-fullwidth-toolbar" class="template-layout" layout="column" flex>\n\n <md-toolbar id="toolbar" class="md-menu-toolbar md-whiteframe-1dp md-accent" ui-view="toolbar"></md-toolbar>\n\n <div id="main-container" layout="row" flex>\n <md-sidenav id="vertical-navigation" class="md-primary-bg" md-is-locked-open="$mdMedia(\'gt-sm\')" md-component-id="navigation" ms-scroll ui-view="navigation"></md-sidenav>\n\n <div id="content-container" flex layout="column">\n <md-content id="content" class="animate-slide-up md-hue-2" ms-scroll ui-view="content" flex></md-content>\n </div>\n\n <md-sidenav id="quick-panel" class="md-sidenav-right md-whiteframe-4dp" md-component-id="quick-panel" ms-scroll ui-view="quickPanel"></md-sidenav>\n </div>\n\n\n</div>'),e.put("app/core/layouts/vertical-navigation.html",'<div id="header" ui-view="header"></div>\n\n<div id="layout-vertical-navigation" class="template-layout" layout="row" flex>\n\n <md-sidenav id="vertical-navigation" class="md-primary-bg" md-is-locked-open="$mdMedia(\'gt-sm\')" md-component-id="navigation" ms-scroll ui-view="navigation" ng-if="!vm.isAgent()"></md-sidenav>\n\n <div id="content-container" flex layout="column">\n <md-toolbar id="toolbar" class="md-menu-toolbar md-whiteframe-1dp" ui-view="toolbar"></md-toolbar>\n\n <md-content id="content" class="animate-slide-up md-hue-2" ms-scroll ui-view="content" flex></md-content>\n </div>\n\n <md-sidenav id="quick-panel" class="md-sidenav-right md-whiteframe-4dp" md-component-id="quick-panel" ms-scroll ui-view="quickPanel"></md-sidenav>\n\n</div>\n\n<div id="footer" ui-view="footer"></div>'),e.put("app/core/theme-options/theme-options.html",'<div class="ms-theme-options-button md-primary-bg" ng-click="toggleOptionsSidenav()">\n <md-icon md-font-icon="icon-cog" class="white-text"></md-icon>\n</div>\n\n<md-sidenav md-component-id="motion-theme-options" class="md-sidenav-right">\n\n <div class="ms-theme-options-list" layout="column">\n <div class="theme-option layout-options">\n <div class="option-title">Layout Style:</div>\n <md-radio-group layout="row" layout-align="start start" layout-wrap ng-model="vm.layoutStyle" ng-change="vm.updateLayoutStyle()">\n <md-radio-button ng-repeat="layoutStyle in vm.layoutStyles" ng-value="layoutStyle.value">\n <div layout="column" layout-align="center center">\n <img ng-src="{{layoutStyle.figure}}">\n <span class="text-center font-size-12 mt-8">{{layoutStyle.label}}</span>\n </div>\n </md-radio-button>\n </md-radio-group>\n </div>\n\n <md-divider></md-divider>\n\n <div class="theme-option">\n <div class="option-title">Layout Mode:</div>\n <md-radio-group layout="row" layout-align="start center" ng-model="vm.layoutMode" ng-change="vm.updateLayoutMode()">\n <md-radio-button ng-repeat="layoutMode in vm.layoutModes" ng-value="layoutMode.value">\n {{layoutMode.label}}\n </md-radio-button>\n </md-radio-group>\n </div>\n\n <md-divider></md-divider>\n\n <div class="theme-option color-palettes">\n <div class="option-title">Color Palette:</div>\n <div layout="row" layout-align="start start" layout-wrap>\n <md-button ng-repeat="(themeName, theme) in vm.themes.list" class="md-raised theme-button" layout="row" layout-align="center center" aria-label="{{themeName}}" ng-click="vm.setActiveTheme(themeName)" ng-style="{\'background-color\': theme.primary.color,\'border-color\': theme.accent.color,\'color\': theme.primary.contrast1}" ng-class="{active: vm.getActiveTheme().name === themeName}">\n <md-icon ng-style="{\'color\': theme.primary.contrast1}" md-font-icon="icon-palette" class="icon s32"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n</md-sidenav>'),e.put("app/errors/404/error-404.html",'<div id="error-404" layout="column" layout-align="center center">\n <div class="content" layout="column" layout-align="center center">\n <div class="error-code" translate="ERROR404.CODE">404</div>\n\n <div class="message" translate="ERROR404.MESSAGE">Sorry but we couldn’t find the page you are looking for</div>\n <ms-search-bar on-search="vm.search(query)" on-result-click="vm.searchResultClick(item)" debounce="300">Search for anything</ms-search-bar>\n\n \x3c!-- <div class="search md-whiteframe-1dp" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-magnify" class="icon s24"></md-icon>\n <input ng-model="vm.search" type="text" placeholder="Search for anything" translate translate-attr-placeholder="ERROR404.SEARCH" flex>\n </div> --\x3e\n\n <a class="md-button md-raised md-primary back-link" href="/" translate="ERROR404.GO_BACK">Go back to dashboard</a>\n </div>\n</div>'),e.put("app/errors/500/error-500.html",'<div id="error-500" layout="column" layout-align="center center">\n <div ng-if="!vm.send" class="content" layout="column" layout-align="center center">\n <div class="error-code" translate="ERROR500.CODE">500</div>\n <div class="message" translate="ERROR500.MESSAGE">Well, you broke the internet!</div>\n <div class="sub-message" translate="ERROR500.SUBMESSAGE">Just kidding, looks like we have an internal issue, please try again in couple minutes\n </div>\n <a class="md-button md-raised md-primary back-link" href="/" translate="ERROR500.GO_BACK">Go back to dashboard</a>\n <md-button class="md-raised md-warn" ng-click="vm.sendReport()" translate="ERROR500.REPORT">Report this problem</md-button>\n </div>\n <pre ng-if="!vm.send">\n {{vm.error}}\n </pre>\n <div ng-if="vm.send" class="content" layout="column" layout-align="center center">\n <div class="error-code">#{{vm.code}}</div>\n <div class="message" translate="ERROR500.JIRA_MESSAGE">Your request has been received and will be processed shortly.</div>\n <div class="sub-message" translate="ERROR500.JIRA_SUBMESSAGE">Sorry for the inconvenience. If you have any questions or concerns, please do not hesitate to contact us.</div>\n <a class="md-button md-raised md-primary back-link" href="/" translate="ERROR500.GO_BACK">Go back to dashboard</a>\n </div>\n</div>'),e.put("app/footer/layouts/vertical-navigation/footer.html",'<div layout="row" layout-align="start center">\n <ms-info-bar ng-if="!vm.cookieAlertHide" on-close="vm.cookieAlertOnClose()" class="grey-100-bg">\n <div layout="row" layout-align="start center">\n <span translate="FOOTER.COOKIE_LAW" flex class="text-center grey-600-fg"></span>\n </div>\n </ms-info-bar>\n</div>'),e.put("app/forgot/forgot.html",'<div id="forgot-password" class="flex-scrollable" layout="column" ms-scroll ng-init="vm.onInit()">\n <div id="forgot-password-form-wrapper" layout="column" layout-align="center center">\n <div id="forgot-password-form" class="md-whiteframe-8dp">\n\n <img src="/api/settings/1/logo_login" alt="logo_login" class="logo_login" />\n\n <div class="title" translate="FORGOTPASSWORD.TITLE">Recover your password</div>\n\n <form name="forgotPasswordForm" novalidate>\n <md-input-container class="md-block" md-no-float>\n <input type="email" name="email" ng-model="vm.form.email" placeholder="Email address" translate translate-attr-placeholder="FORGOTPASSWORD.EMAIL_ADRESS" ng-pattern="/^.+@.+\\..+$/" required>\n <div ng-messages="forgotPasswordForm.email.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="FORGOTPASSWORD.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="FORGOTPASSWORD.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n\n <md-button type="button" ng-click="vm.forgotPassword()" class="md-raised md-accent submit-button" aria-label="RESET MY PASSWORD" ng-disabled="forgotPasswordForm.$invalid || forgotPasswordForm.$pristine" translate="FORGOTPASSWORD.SEND_RESET_LINK" translate-attr-aria-label="FORGOTPASSWORD.SEND_RESET_LINK">\n SEND RESET LINK\n </md-button>\n </form>\n\n <div class="login" layout="row" layout-align="center center">\n <a class="link" ui-sref="app.login" translate="FORGOTPASSWORD.GO_BACK">Go back to login</a>\n </div>\n </div>\n </div>\n</div>'),e.put("app/header/layouts/vertical-navigation/header.html",'\x3c!-- <div layout="row" layout-align="start center">\n <ms-info-bar ng-if="vm.currentUser.role == \'admin\' && !vm.newsAlertHide" on-close="vm.newsAlertOnClose()" class="green-600-bg white-fg">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-message-text-outline" class="icon margin-right-10 s20"></md-icon>\n <div flex hide-xs translate="HEADER.NEWS"></div>\n </div>\n </ms-info-bar>\n</div> --\x3e'),e.put("app/login/login.html",'<div id="login" class="flex-scrollable" layout="column" ms-scroll>\n <div id="login-form-wrapper" layout="column" layout-align="center center">\n <div id="login-form" class="md-whiteframe-8dp">\n\n <img src="/api/settings/1/logo_login" alt="logo_login" class="logo_login" />\n \x3c!-- <img src="assets/images/logos/login.png" alt="motion_logo_login" /> --\x3e\n\n <div class="md-subhead padding-top-45" translate="LOGIN.TITLE">Log in to your account</div>\n\n <form name="loginForm" novalidate ng-if="!vm.progressLogin">\n <md-input-container class="md-block" md-no-float>\n <input type="input" name="name" ng-model="vm.form.name" autofocus aria-label="username" translate translate-attr-placeholder="LOGIN.USERNAME" required>\n <div ng-messages="loginForm.name.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="LOGIN.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" md-no-float>\n <input type="password" name="password" ng-model="vm.form.password" aria-label="password" translate translate-attr-placeholder="LOGIN.PASSWORD" required>\n <div ng-messages="loginForm.password.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="LOGIN.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="remember-forgot-password" layout="row" layout-xs="column" layout-align="end center">\n \x3c!-- <md-checkbox class="remember-me" ng-model="data.cb1" aria-label="Remember Me">\n <span translate="LOGIN.REMEMBER_ME">Remember Me</span>\n </md-checkbox> --\x3e\n <a ui-sref="app.forgot" class="forgot-password md-accent-color" style="cursor:pointer;" translate="LOGIN.FORGOT_PASSWORD">Forgot Password?</a>\n </div>\n\n <b layout="row" layout-align="center center" class="md-padding" ng-if="vm.message">\n <font color="red">{{vm.message}}</font>\n </b>\n <md-button type="submit" ng-click="vm.login()" class="md-raised md-accent submit-button" aria-label="LOGIN" translate="LOGIN.LOG_IN" translate-attr-aria-label="LOGIN.LOG_IN">\n LOG IN\n </md-button>\n </form>\n\n <md-progress-circular ng-if="vm.progressLogin" md-diameter="96"></md-progress-circular>\n\n <div ng-if="vm.googleSsoEnabled" class="separator">\n <span class="text" translate="LOGIN.OR">OR</span>\n </div>\n\n <md-button ng-if="vm.googleSsoEnabled" ng-click="vm.loginOauth(\'google\')" class="md-raised google">\n <div layout="row" layout-align="center center">\n <span>\n <md-icon md-font-icon="fab fa-google" class="s16"></md-icon>\n <span translate="LOGIN.WITH_GOOGLE">Log in with Google</span>\n </span>\n </div>\n </md-button>\n </div>\n </div>\n</div>'),e.put("app/main/apps/analytics/views/extractedReports/create/dialog.html",'<md-dialog class="extractedReport-dialog" aria-label="New ExtractedReport">\n <form name="extractedReportForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.REPORTNAME">ReportName</label>\n <input type="" name="name" ng-model="vm.extractedReport.name" ng-required="true" autofocus>\n\n <div ng-messages="extractedReportForm[\'name\'].$error" ng-show="extractedReportForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.REPORTNAME_REQUIRED">ReportName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.NAME">Name</label>\n <input type="" name="basename" ng-model="vm.extractedReport.basename" ng-required="true">\n\n <div ng-messages="extractedReportForm[\'basename\'].$error" ng-show="extractedReportForm[\'basename\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newExtractedReport" ng-click="vm.saveExtractedReport()" class="send-button md-accent md-raised" ng-disabled="extractedReportForm.$invalid || extractedReportForm.$pristine" aria-label="SAVE" translate="ANALYTICS.SAVE" translate-attr-aria-label="ANALYTICS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newExtractedReport" ng-click="vm.addNewExtractedReport()" class="send-button md-accent md-raised" ng-disabled="extractedReportForm.$invalid" aria-label="ADD" translate="ANALYTICS.ADD_EXTRACTEDREPORT" translate-attr-aria-label="ANALYTICS.ADD_EXTRACTEDREPORT">\n ADD EXTRACTEDREPORT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newExtractedReport" ng-click="vm.deleteExtractedReport($event)" aria-label="DELETE" translate translate-attr-aria-label="ANALYTICS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="ANALYTICS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/analytics/views/extractedReports/extractedReports.html",'<div id="extractedReports" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-chart-line" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="ANALYTICS.EXTRACTEDREPORTS">ExtractedReports</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="ANALYTICS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedExtractedReports.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedExtractedReports =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="ANALYTICS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-extractedReports-count">\n <span>{{vm.selectedExtractedReports.length}}</span>\n <span translate="ANALYTICS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="ANALYTICS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllExtractedReports()" translate="ANALYTICS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectExtractedReports()" translate="ANALYTICS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedExtractedReports" csv-label="true" filename="extractedReports.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedExtractedReports($event)" aria-label="delete selected" translate translate-attr-label="ANALYTICS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- EXTRACTEDREPORT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedExtractedReports" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getExtractedReports">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'ANALYTICS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'ANALYTICS.REPORTNAME\' | translate }}</th>\n <th md-column md-order-by="basename">{{ \'ANALYTICS.NAME\' | translate }}</th>\n <th md-column md-order-by="type">{{ \'ANALYTICS.TYPE\' | translate }}</th>\n <th md-column md-order-by="startDate">{{ \'ANALYTICS.DATE_RANGE_FROM\' | translate }}</th>\n <th md-column md-order-by="endDate">{{ \'ANALYTICS.DATE_RANGE_TO\' | translate }}</th>\n <th md-column md-order-by="createdAt">{{ \'ANALYTICS.GENERATED_AT\' | translate }}</th>\n <th md-column md-order-by="status">{{ \'ANALYTICS.STATUS\' | translate }}</th>\n <th md-column md-order-by="output">{{ \'ANALYTICS.OUTPUT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.extractedReports.rows.length">\n <td md-cell colspan="10">\n <div layout="row" layout-align="center center">\n <span translate="ANALYTICS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="extractedReport" md-select-id="id" ng-repeat="extractedReport in vm.extractedReports.rows">\n <td md-cell ng-if="extractedReport.userpic"><img class="avatar" alt="{{extractedReport.name}}" ng-src="api/users/{{extractedReport.id}}/avatar" /></td>\n <td md-cell ng-if="!extractedReport.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{extractedReport.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="id ">{{extractedReport.id}}</td>\n <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="name ">{{extractedReport.name}}</td>\n <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="basename ">{{extractedReport.basename}}</td>\n <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="type ">{{extractedReport.type}}</td>\n <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="startDate ">{{extractedReport.startDate | date:\'medium\' }}</td>\n <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="endDate ">{{extractedReport.endDate | date:\'medium\' }}</td>\n <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="createdAt ">{{extractedReport.createdAt | date:\'medium\' }}</td>\n <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="status ">{{extractedReport.status}}</td>\n <td ng-click="vm.createOrEditExtractedReport($event, extractedReport)" md-cell class="output ">{{extractedReport.output}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="ANALYTICS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(extractedReport, $event )" translate="ANALYTICS.EDIT_EXTRACTEDREPORT">\n Edit ExtractedReport\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="extractedReport.status == \'Completed\'">\n\n <md-button ng-click="vm.downloadfile2(extractedReport, $event , \'analytics/extracted_reports\' )" translate="ANALYTICS.DOWNLOAD_EXTRACTEDREPORT">\n Download ExtractedReport\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(extractedReport, $event )" translate="ANALYTICS.DELETE_EXTRACTEDREPORT">\n Delete ExtractedReport\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'ANALYTICS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'ANALYTICS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'ANALYTICS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.extractedReports.count}}" md-on-paginate="vm.getExtractedReports" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / EXTRACTEDREPORT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- NO ADD BUTTON BUTTON --\x3e\n</div>'),e.put("app/main/apps/analytics/views/metrics/create/dialog.html",'<md-dialog class="metric-dialog" aria-label="New Metric">\n <form name="metricForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.metric.name" ng-required="true" autofocus>\n\n <div ng-messages="metricForm[\'name\'].$error" ng-show="metricForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.TABLE">Table</label>\n <md-select name="table" ng-model="vm.metric.table" required>\n <md-option ng-value="\'report_agent\'">Agent Report</md-option>\n <md-option ng-value="\'report_call\'">Call Report</md-option>\n <md-option ng-value="\'cdr\'">CDR</md-option>\n <md-option ng-value="\'chat_websites\'">Chat Website</md-option>\n <md-option ng-value="\'chat_interactions\'">Chat Interaction</md-option>\n <md-option ng-value="\'chat_messages\'">Chat Messages</md-option>\n <md-option ng-value="\'chat_offline_messages\'">Chat Offline Messages</md-option>\n <md-option ng-value="\'chat_queues\'">Chat Queues</md-option>\n <md-option ng-value="\'report_chat_queue\'">Chat Report Queue</md-option>\n <md-option ng-value="\'report_chat_transfer\'">Chat Report Transfer</md-option>\n <md-option ng-value="\'cm_companies\'">Companies</md-option>\n <md-option ng-value="\'report_call_transfer\'">Call transfer report</md-option>\n <md-option ng-value="\'cm_contacts\'">Contacts</md-option>\n <md-option ng-value="\'report_square\'">CSquare Report</md-option>\n <md-option ng-value="\'report_square_details\'">CSquare Details Report</md-option>\n <md-option ng-value="\'report_dial\'">Dial Report</md-option>\n <md-option ng-value="\'cm_hopper\'">Dialer Hopper Processing</md-option>\n <md-option ng-value="\'cm_hopper_history\'">Dialer Hopper Logs</md-option>\n <md-option ng-value="\'cm_hopper_final\'">Dialer Hopper Final</md-option>\n <md-option ng-value="\'mail_accounts\'">Email Account</md-option>\n <md-option ng-value="\'mail_interactions\'">Email Interaction</md-option>\n <md-option ng-value="\'mail_messages\'">Email Messages</md-option>\n <md-option ng-value="\'mail_queues\'">Email Queues</md-option>\n <md-option ng-value="\'report_mail_queue\'">Email Report Queue</md-option>\n <md-option ng-value="\'report_mail_transfer\'">Email Report Transfer</md-option>\n <md-option ng-value="\'fax_accounts\'">Fax Account</md-option>\n <md-option ng-value="\'fax_interactions\'">Fax Interaction</md-option>\n <md-option ng-value="\'fax_messages\'">Fax Messages</md-option>\n <md-option ng-value="\'fax_queues\'">Fax Queues</md-option>\n <md-option ng-value="\'report_fax_queue\'">Fax Report Queue</md-option>\n <md-option ng-value="\'report_fax_transfer\'">Fax Report Transfer</md-option>\n <md-option ng-value="\'report_jscripty_sessions\'">Jscripty Sessions</md-option>\n <md-option ng-value="\'report_jscripty_questions\'">Jscripty Questions</md-option>\n <md-option ng-value="\'report_jscripty_answers\'">Jscripty Answers</md-option>\n <md-option ng-value="\'cm_lists\'">Lists</md-option>\n <md-option ng-value="\'report_member\'">Member Report</md-option>\n <md-option ng-value="\'openchannel_accounts\'">Openchannel Account</md-option>\n <md-option ng-value="\'openchannel_interactions\'">Openchannel Interaction</md-option>\n <md-option ng-value="\'openchannel_messages\'">Openchannel Messages</md-option>\n <md-option ng-value="\'openchannel_queues\'">Openchannel Queues</md-option>\n <md-option ng-value="\'report_openchannel_queue\'">Openchannel Report Queue</md-option>\n <md-option ng-value="\'report_openchannel_transfer\'">Openchannel Report Transfer</md-option>\n <md-option ng-value="\'report_queue\'">Queue Report</md-option>\n <md-option ng-value="\'sms_accounts\'">SMS Account</md-option>\n <md-option ng-value="\'sms_interactions\'">SMS Interaction</md-option>\n <md-option ng-value="\'sms_messages\'">SMS Messages</md-option>\n <md-option ng-value="\'sms_queues\'">SMS Queues</md-option>\n <md-option ng-value="\'report_sms_queue\'">SMS Report Queue</md-option>\n <md-option ng-value="\'report_sms_transfer\'">SMS Report Transfer</md-option>\n <md-option ng-value="\'users\'">Users</md-option>\n <md-option ng-value="\'voice_recordings\'">Voice Recordings</md-option>\n <md-option ng-value="\'whatsapp_accounts\'">Whatsapp Account</md-option>\n <md-option ng-value="\'whatsapp_interactions\'">Whatsapp Interaction</md-option>\n <md-option ng-value="\'whatsapp_messages\'">Whatsapp Messages</md-option>\n <md-option ng-value="\'whatsapp_queues\'">Whatsapp Queues</md-option>\n <md-option ng-value="\'report_whatsapp_queue\'">Whatsapp Report Queue</md-option>\n <md-option ng-value="\'report_whatsapp_transfer\'">Whatsapp Report Transfer</md-option>\n </md-select>\n <div ng-messages="metricForm[\'table\'].$error" ng-show="metricForm[\'table\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.TABLE_REQUIRED">Table field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.METRIC">Metric</label>\n <input type="text" name="metric" ng-model="vm.metric.metric" ng-required="true">\n\n <div ng-messages="metricForm[\'metric\'].$error" ng-show="metricForm[\'metric\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.METRIC_REQUIRED">Metric field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.metric.description">\n\n <div ng-messages="metricForm[\'description\'].$error" ng-show="metricForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newMetric" ng-click="vm.saveMetric()" class="send-button md-accent md-raised" ng-disabled="metricForm.$invalid || metricForm.$pristine" aria-label="SAVE" translate="ANALYTICS.SAVE" translate-attr-aria-label="ANALYTICS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newMetric" ng-click="vm.addNewMetric()" class="send-button md-accent md-raised" ng-disabled="metricForm.$invalid" aria-label="ADD" translate="ANALYTICS.ADD_METRIC" translate-attr-aria-label="ANALYTICS.ADD_METRIC">\n ADD METRIC\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newMetric" ng-click="vm.deleteMetric($event)" aria-label="DELETE" translate translate-attr-aria-label="ANALYTICS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="ANALYTICS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/analytics/views/metrics/metrics.html",'<div id="metrics" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-chart-line" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="ANALYTICS.METRICS">Metrics</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="ANALYTICS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedMetrics.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedMetrics =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="ANALYTICS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-metrics-count">\n <span>{{vm.selectedMetrics.length}}</span>\n <span translate="ANALYTICS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="ANALYTICS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllMetrics()" translate="ANALYTICS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectMetrics()" translate="ANALYTICS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedMetrics" csv-label="true" filename="metrics.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedMetrics($event)" aria-label="delete selected" translate translate-attr-label="ANALYTICS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- METRIC TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedMetrics" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getMetrics">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'ANALYTICS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'ANALYTICS.NAME\' | translate }}</th>\n <th md-column md-order-by="table">{{ \'ANALYTICS.TABLE\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'ANALYTICS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.metrics.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="ANALYTICS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="metric" md-select-id="id" ng-repeat="metric in vm.metrics.rows">\n <td md-cell ng-if="metric.userpic"><img class="avatar" alt="{{metric.name}}" ng-src="api/users/{{metric.id}}/avatar" /></td>\n <td md-cell ng-if="!metric.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{metric.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditMetric($event, metric)" md-cell class="id ">{{metric.id}}</td>\n <td ng-click="vm.createOrEditMetric($event, metric)" md-cell class="name ">{{metric.name}}</td>\n <td ng-click="vm.createOrEditMetric($event, metric)" md-cell class="table ">{{ vm.arraytable[metric.table].option }}</td>\n <td ng-click="vm.createOrEditMetric($event, metric)" md-cell class="description ">{{metric.description}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="ANALYTICS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(metric, $event )" translate="ANALYTICS.EDIT_METRIC">\n Edit Metric\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(metric, $event )" translate="ANALYTICS.DELETE_METRIC">\n Delete Metric\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'ANALYTICS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'ANALYTICS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'ANALYTICS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.metrics.count}}" md-on-paginate="vm.getMetrics" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / METRIC TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD METRIC BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-metric-button" ng-click="vm.createOrEditMetric($event)" aria-label="add metric" translate translate-attr-aria-label="ANALYTICS.ADD_METRIC">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD METRIC BUTTON --\x3e\n</div>'),e.put("app/main/apps/analytics/views/reports/copy/dialog.html",'<md-dialog class="report-dialog" aria-label="Run Report">\n <form name="reportForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="ANALYTICS.COPY_REPORT">Copy Report</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.NAME">Name</label>\n <input name="name" ng-model="vm.report.name" required md-autofocus>\n <div ng-messages="reportForm.name.$error" ng-show="reportForm.name.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <div class="md-block">\n <label translate="ANALYTICS.SELECT_NODE">Select Node</label>\n <div js-tree="vm.treeCustomConfig" tree-events-obj="vm.treeCustomEvents" ng-model="vm.treeCustomData" tree="vm.treeCustomInstance"></div>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.copyReport()" class="send-button md-accent md-raised" ng-disabled="!vm.currentNode" aria-label="COPY" translate="ANALYTICS.COPY_REPORT" translate-attr-aria-label="ANALYTICS.COPY_REPORT">\n COPY REPORT\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/analytics/views/reports/create/dialog.html",'<md-dialog class="report-dialog" aria-label="New Report">\n <form name="reportForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.NAME">Name</label>\n <input type="" name="name" ng-model="vm.report.name" required md-autofocus>\n <div ng-messages="reportForm.name.$error" ng-show="reportForm.name.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.newReport">\n <label translate="ANALYTICS.TABLE">Table</label>\n <md-select ng-model="vm.report.table" required>\n <md-option ng-repeat="table in vm.tables | orderBy:\'name\'" ng-value="table.name">{{table.name}}</md-option>\n </md-select>\n <div ng-messages="reportForm.table.$error" ng-show="reportForm.table.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.TABLE_REQUIRED">Table field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.report.description">\n <div ng-messages="reportForm.description.$error" ng-show="reportForm.description.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-autocomplete ng-if="vm.newReport" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-items="table in vm.tables | filter:vm.searchText" md-item-text="table.name" md-min-length="0" md-selected-item-change="vm.selectedTableChange(table)" placeholder="Select the table to Join">\n <md-item-template>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{table.name}}</span>\n </md-item-template>\n <md-not-found>\n No states matching "{{vm.searchText}}" were found.\n </md-not-found>\n </md-autocomplete>\n\n <md-card ng-if="vm.newReport" md-theme="default" md-theme-watch ng-repeat="table in vm.joinTables">\n <md-card-title>\n <md-card-title-text layout="row">\n <div layout="row" flex="50">\n <span class="md-subhead">{{table.name}}</span>\n </div>\n <div layout="row" layout-align="end center" flex>\n <md-button class="md-icon-button" ng-click="vm.removeJoin($index)">\n <md-icon md-font-icon="icon-delete" aria-label="alert error"></md-icon>\n </md-button>\n </div>\n </md-card-title-text>\n </md-card-title>\n <md-card-content>\n <md-select ng-model="table.parentKey" placeholder="Select the parent key" ng-init="table.parentFields = []; vm.getFields(table, \'parentFields\', vm.report.table)" required>\n <md-option ng-repeat="field in table.parentFields" ng-value="field">{{field}}</md-option>\n </md-select>\n <md-select ng-model="table.foreignKey" placeholder="Select the foreign key" ng-init="table.foreignFields = []; vm.getFields(table, \'foreignFields\', table.name)" required>\n <md-option ng-repeat="field in table.foreignFields" ng-value="field">{{field}}</md-option>\n </md-select>\n <md-select ng-model="table.type" placeholder="Select join type" required>\n <md-option ng-repeat="join in vm.joinTypes" ng-value="join.key">{{join.value}}</md-option>\n </md-select>\n </md-card-content>\n </md-card>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-if="!vm.newReport" ng-click="vm.saveReport()" class="send-button md-accent md-raised" ng-disabled="reportForm.$invalid || reportForm.$pristine" aria-label="SAVE" translate="ANALYTICS.SAVE" translate-attr-aria-label="ANALYTICS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newReport" ng-click="vm.addNewReport()" class="send-button md-accent md-raised" ng-disabled="reportForm.$invalid || reportForm.$pristine" aria-label="ADD" translate="ANALYTICS.ADD_REPORT" translate-attr-aria-label="ANALYTICS.ADD_REPORT">\n ADD REPORT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newReport" ng-click="vm.deleteReport($event)" aria-label="DELETE" translate translate-attr-aria-label="ANALYTICS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="ANALYTICS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/analytics/views/reports/edit/condition/group.html",'<md-card class="padding-horizontal-15 padding-top-15">\n <div layout="row" ng-if="vm_rc.crudPermissions.canEdit">\n <md-input-container class="md-block" flex>\n <label translate="ANALYTICS.OPERATOR">Operator</label>\n <md-select ng-model="group.operator" required>\n <md-option value="AND">AND</md-option>\n <md-option value="OR">OR</md-option>\n </md-select>\n <div ng-messages="conditionsForm.operator.$error" ng-show="conditionsForm.operator.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.OPERATOR_REQUIRED">Operator field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-button class="md-raised md-accent" ng-click="vm_rc.addCondition(group.rules)">\n <md-icon md-font-icon="icon-plus"></md-icon> {{\'ANALYTICS.CONDITION\' | translate}}\n </md-button>\n </md-input-container>\n <md-input-container class="md-block">\n <md-button class="md-raised md-accent" ng-click="vm_rc.addGroup(group.rules)">\n <md-icon md-font-icon="icon-plus"></md-icon> {{\'ANALYTICS.GROUP\' | translate}}\n </md-button>\n </md-input-container>\n <div flex></div>\n <md-input-container class="md-block" ng-if="parent">\n <md-button class="md-raised md-warn" ng-click="vm_rc.deleteConfirm(parent, index, $event)">\n <md-icon md-font-icon="icon-delete"></md-icon> {{\'ANALYTICS.GROUP\' | translate}}\n </md-button>\n </md-input-container>\n </div>\n <div layout="column" ng-repeat="rule in group.rules track by $index">\n <div layout="row" ng-if="!rule.group">\n <md-input-container class="md-block" flex>\n <label translate="ANALYTICS.COLUMN">COLUMN</label>\n <md-select name="field" ng-model="rule.field" ng-disabled="!vm_rc.crudPermissions.canEdit" required>\n <md-optgroup label="{{vm_rc.report.table}}">\n <md-option ng-repeat="column in vm_rc.columns" value="{{vm_rc.report.table}}.{{column}}">{{column}}</md-option>\n </md-optgroup>\n <md-optgroup ng-if="vm_rc.report.joins" ng-repeat="join in vm_rc.report.joins" label="{{join.foreignTable}}">\n <md-option ng-repeat="field in join.foreignTableFields" value="{{join.foreignTable}}.{{field}}">{{field}}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="conditionsForm.field.$error" ng-show="conditionsForm.field.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.COLUMN_REQUIRED">Column field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" flex>\n <label translate="ANALYTICS.CONDITION">CONDITION</label>\n <md-select name="condition" ng-model="rule.condition" ng-disabled="!vm_rc.crudPermissions.canEdit" required>\n <md-option ng-repeat="condition in vm_rc.conditions" ng-value="condition">{{condition}}</md-option>\n </md-select>\n <div ng-messages="conditionsForm.condition.$error" ng-show="conditionsForm.condition.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm_rc.isValueByCondition(rule.condition)" class="md-block" flex>\n <label translate="ANALYTICS.VALUE">VALUE</label>\n <input type="text" name="value" ng-model="rule.value" ng-disabled="!vm_rc.crudPermissions.canEdit" required md-autofocus>\n <div ng-messages="conditionsForm.value.$error" ng-show="conditionsForm.value.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm_rc.crudPermissions.canEdit" flex>\n <md-button class="md-fab md-mini md-warn" aria-label="Delete row" ng-click="vm_rc.deleteConfirm(group.rules, $index, $event)">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </md-input-container>\n </div>\n <div ng-if="rule.group" ng-include="\'app/main/apps/analytics/views/reports/edit/condition/group.html\'" ng-init="parent=group.rules;index=$index;group=rule.group"></div>\n </div>\n</md-card>'),e.put("app/main/apps/analytics/views/reports/edit/field/dialog.html",'<md-dialog class="reportField-dialog" aria-label="New Report Field">\n <form name="reportFieldForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{vm.title}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <pre></pre>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.reportField.type" ng-change="vm.reportField.field = undefined" required>\n <md-option value="column">Select a column</md-option>\n <md-option value="metric">Select an existing metric</md-option>\n <md-option value="custom">Write a custom metric</md-option>\n </md-select>\n <div ng-messages="reportForm.type.$error" ng-show="reportForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-switch on="vm.reportField.type">\n <md-input-container class="md-block" ng-switch-when="column">\n <label translate="ANALYTICS.COLUMN">Column Name</label>\n <md-select name="column" ng-model="vm.reportField.field" required>\n <md-optgroup label="{{vm.report.table}}">\n <md-option ng-repeat="column in vm.columns" value="{{vm.report.table}}.{{column}}">{{column}}</md-option>\n \x3c!-- <md-option ng-repeat="column in vm.columns" ng-value="">{{column}}</md-option> --\x3e\n </md-optgroup>\n <md-optgroup ng-if="vm.report.joins" ng-repeat="join in vm.report.joins" label="{{join.foreignTable}}">\n <md-option ng-repeat="field in join.foreignTableFields" value="{{join.foreignTable}}.{{field}}">{{field}}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="reportForm.column.$error" ng-show="reportForm.column.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.COLUMN_REQUIRED">Column field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-switch-when="metric">\n <label translate="ANALYTICS.METRIC_NAME">Metric Name</label>\n <md-select name="metric" ng-model="vm.reportField.MetricId" required>\n <md-option ng-repeat="metric in vm.metrics" ng-value="metric.id">{{metric.name}}</md-option>\n </md-select>\n <div ng-messages="reportForm.metric.$error" ng-show="reportForm.metric.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.METRIC_REQUIRED">Metric field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-switch-when="custom">\n <label translate="ANALYTICS.CUSTOM_METRIC">Custom Metric</label>\n <input type="text" name="field" ng-model="vm.reportField.field" required md-autofocus>\n <div ng-messages="reportFieldForm.field.$error" ng-show="reportFieldForm.field.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.CUSTOM_METRIC_REQUIRED">Custom Metric field is required</span>\n </div>\n </div>\n </md-input-container>\n </div>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.reportField.alias" ng-required="vm.reportField.type === \'custom\' || vm.reportField.type === \'metric\'">\n <div ng-messages="reportFieldForm.alias.$error" ng-show="reportFieldForm.alias.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.reportField.type !== \'metric\'">\n <label translate="ANALYTICS.FUNCTION">Function</label>\n <md-select name="function" ng-model="vm.reportField.function">\n <md-option ng-value="null">No Function</md-option>\n <md-option ng-repeat="function in vm.sqlUtil.getFunctions" ng-value="function.value">{{function.value}}</md-option>\n </md-select>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.reportField.type !== \'metric\'">\n <label translate="ANALYTICS.FORMAT">Format</label>\n <md-select name="format" ng-model="vm.reportField.format">\n <md-option ng-value="null">No Format</md-option>\n <md-option ng-repeat="format in vm.sqlUtil.getFormats" ng-value="format.value">{{format.value}}</md-option>\n </md-select>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.GROUP_BY">Group By</label>\n <md-select name="groupBy" ng-model="vm.reportField.groupBy">\n <md-option ng-repeat="gb in vm.sqlUtil.getGroupBy" ng-value="gb.value">{{gb.value ? \'Yes\' : \'No\'}}</md-option>\n </md-select>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.ORDER_BY">Order By</label>\n <md-select name="orderBy" ng-model="vm.reportField.orderBy">\n <md-option ng-value="null">No Order</md-option>\n <md-option ng-repeat="ob in vm.sqlUtil.getOrderBy" ng-value="ob.value">{{ob.value}}</md-option>\n </md-select>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-if="!vm.newReportField" ng-click="vm.saveReportField()" class="send-button md-accent md-raised" ng-disabled="reportFieldForm.$invalid || reportFieldForm.$pristine" aria-label="SAVE" translate="ANALYTICS.SAVE" translate-attr-aria-label="ANALYTICS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newReportField" ng-click="vm.addNewReportField()" class="send-button md-accent md-raised" ng-disabled="reportFieldForm.$invalid || reportFieldForm.$pristine" aria-label="ADD" translate="ANALYTICS.ADD_REPORTFIELD" translate-attr-aria-label="ANALYTICS.ADD_REPORTFIELD">\n ADD REPORT FIELD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newReportField" ng-click="vm.deleteReportField($event)" aria-label="DELETE" translate translate-attr-aria-label="ANALYTICS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="ANALYTICS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/analytics/views/reports/edit/view.html",'<div id="analytics-report" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-reports-button md-icon-button" aria-label="Go to reports" ng-click="vm.gotoReports()" translate translate-attr-aria-label="ANALYTICS.GO_TO_ANALYTICSQUEUES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="report-image" hide-xs>\n <img ng-src="assets/images/business/reports.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.report.id}} {{vm.report.name}}\n </div>\n <div class="subtitle secondary-text">\n <span translate="ANALYTICS.CREATED_AT"></span> <span>{{vm.report.createdAt | date:\'medium\'}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span>{{vm.report.description}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div>\n <md-button type="submit" ng-click="vm.saveReport()" ng-disabled="generalForm.$pristine && conditionsForm.$pristine" class="send-button md-accent md-raised" translate="ANALYTICS.SAVE" translate-attr-aria-label="ANALYTICS.SAVE">\n SAVE\n </md-button>\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="ANALYTICS.SETTINGS">SETTINGS</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="report-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="ANALYTICS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.NAME">Name</label>\n <input type="text" name="name" ng-disabled="!vm.crudPermissions.canEdit" ng-model="vm.report.name" required md-autofocus>\n <div ng-messages="generalForm.name.$error" ng-show="generalForm.name.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-disabled="!vm.crudPermissions.canEdit" ng-model="vm.report.description">\n <div ng-messages="generalForm.description.$error" ng-show="generalForm.description.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="ANALYTICS.FIELDS">FIELDS</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="report-detail-form-container fields md-background-bg md-whiteframe-1dp">\n <div ng-controller="ReportFieldsController as vm_rf" ng-init="vm_rf.init(vm.report, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_rf.selectedReportFields.length">\n <div class="md-toolbar-tools">\n <div layout="row" layout-align="start center">\n <div layout="column" layout-align="start start">\n <div class="md-subhead" translate="ANALYTICS.FIELDS">\n <span translate="ANALYTICS.FIELDS">FIELDS</span>\n </div>\n <div class="h4">\n <span translate="ANALYTICS.TABLE">TABLE</span> <span class="text-bold">{{vm.report.table}}</span>\n </div>\n <div class="h4" ng-if="vm.report.joins && vm.report.joins.length && vm.isArray(vm.report.joins)">\n <span>Join</span> <span class="text-bold">{{ vm.mapArray(vm.report.joins, \'foreignTable\') }}</span>\n </div>\n </div>\n </div>\n <div flex></div>\n <ms-search-bar on-search="vm_rf.query.filter = query" on-collapse="vm_rf.query.filter = undefined" debounce="300"></ms-search-bar>\n <md-button class="md-icon-button" ng-if="vm_rf.crudPermissions.canEdit" ng-click="vm_rf.createOrEditReportField($event)" aria-label="add field" translate translate-attr-label="ANALYTICS.ADD_FIELD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_rf.selectedReportFields.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_rf.selectedReportFields.length}} {{vm_rf.selectedReportFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_rf.deleteSelectedReportFields($event)" aria-label="delete selected" translate translate-attr-label="ANALYTICS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select="vm_rf.crudPermissions.canDelete" multiple ng-model="vm_rf.selectedReportFields" md-progress="vm_rf.promise">\n <thead md-head md-order="vm_rf.query.sort" md-on-reorder="vm_rf.getReportFields">\n <tr md-row>\n <th md-column width="10px" ng-if="vm_rf.crudPermissions.canEdit">\n <md-icon md-font-icon="icon-drag-vertical"></md-icon>\n </th>\n <th md-column>Type</th>\n <th md-column>Column or Metric</th>\n <th md-column>Alias</th>\n <th md-column>Function</th>\n <th md-column>Format</th>\n <th md-column>Group By</th>\n <th md-column>Order By</th>\n <th md-column width="10px" ng-if="vm_rf.crudPermissions.canEdit"></th>\n </tr>\n </thead>\n <tbody md-body ng-sortable="vm_rf.sortableTable">\n <tr md-row md-select="reportField" md-select-id="id" ng-repeat="reportField in vm_rf.reportFields.rows">\n <td md-cell class="handle" ng-if="vm_rf.crudPermissions.canEdit">\n <md-icon md-font-icon="icon-drag-vertical" class="s16"></md-icon>\n </td>\n <td md-cell>\n <div ng-if="reportField.MetricId && !reportField.custom" ng-click="vm_rf.createOrEditReportField($event, reportField)" class="icon icon-shape-plus s16"></div>\n <div ng-if="!reportField.MetricId && reportField.custom" ng-click="vm_rf.createOrEditReportField($event, reportField)" class="icon icon-pencil-box-outline s16"></div>\n <div ng-if="!reportField.MetricId && !reportField.custom" ng-click="vm_rf.createOrEditReportField($event, reportField)" class="icon icon-view-column s16"></div>\n </td>\n <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)">{{reportField.MetricId ? vm_rf.getMetricName(reportField.MetricId) : reportField.field}}</td>\n <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)">{{reportField.alias}}</td>\n <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)"><span class="text-boxed blue-bg white-fg" ng-if="reportField.function">{{reportField.function}}</span><span ng-if="!reportField.function">--</span></td>\n <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)"><span class="text-boxed blue-bg white-fg" ng-if="reportField.format">{{reportField.format}}</span><span ng-if="!reportField.format">--</span></td>\n <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)"><span class="text-boxed blue-bg white-fg" ng-if="reportField.groupBy">YES</span><span ng-if="!reportField.groupBy">--</span></td>\n <td md-cell ng-click="vm_rf.createOrEditReportField($event, reportField)"><span class="text-boxed blue-bg white-fg" ng-if="reportField.orderBy">{{reportField.orderBy}}</span><span ng-if="!reportField.orderBy">--</span></td>\n <td md-cell class="actions" ng-if="vm_rf.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="ANALYTICS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm_rf.createOrEditReportField($event, reportField)" translate="ANALYTICS.EDIT_REPORTFIELD">\n Edit Field\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm_rf.deleteConfirm(reportField, $event)" translate="ANALYTICS.DELETE_REPORTFIELD">\n Delete Field\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="ANALYTICS.CONDITIONS">CONDITIONS</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="report-detail-form-container conditions md-background-bg md-whiteframe-1dp">\n <div ng-controller="ReportConditionsController as vm_rc" ng-init="vm_rc.init(vm.report, vm.crudPermissions)">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="ANALYTICS.CONDITION">CONDITION</div>\n </div>\n <form name="conditionsForm" novalidate>\n <div ng-if="vm_rc.report.condition.group" ng-include="\'app/main/apps/analytics/views/reports/edit/condition/group.html\'" ng-init="group=vm_rc.report.condition.group"></div>\n </form>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab md-on-select="vm.previewReport()">\n <md-tab-label>\n <span translate="ANALYTICS.PREVIEW">PREVIEW</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="report-detail-form-container result md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div ng-if="vm.error" class="h2 secondary-text" translate="ANALYTICS.ERROR">ERROR</div>\n <div ng-if="!vm.error" class="h2 secondary-text" translate="ANALYTICS.LIMITED_RESULT">LIMITED RESULT</div>\n </div>\n <dl ng-if="vm.error">\n <dt class="text-bold" translate="ANALYTICS.QUERY_ERROR">Query Error</dt>\n <dd>{{vm.error.sql}}</dd>\n <dt translate="ANALYTICS.MESSAGE">Message</dt>\n <dd>{{vm.error.msg}}</dd>\n </dl>\n <md-table-container ng-if="!vm.error">\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th ng-repeat="column in vm.columns">{{column.alias || column.field}}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-repeat="row in vm.rows">\n <td md-cell ng-repeat="(key, value) in row">{{ vm.valueReplacer(key, value) }}</td>\n </tr>\n <tr md-row ng-if="!vm.rows.length">\n <td md-cell colspan="{{vm.columns.length}}"><span translate="ANALYTICS.NO_DATA">NO DATA</span></td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab md-on-select="vm.queryReport()">\n <md-tab-label>\n <span>Query</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="report-detail-form-container result md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div ng-if="vm.error" class="h2 secondary-text" translate="ANALYTICS.ERROR">ERROR</div>\n <div ng-if="!vm.error" class="h2 secondary-text">SQL</div>\n </div>\n <dl ng-if="vm.error">\n <dt class="text-bold" translate="ANALYTICS.QUERY_ERROR">Query Error</dt>\n <dd>{{vm.error.sql}}</dd>\n <dt translate="ANALYTICS.MESSAGE">Message</dt>\n <dd>{{vm.error.msg}}</dd>\n </dl>\n <div ng-if="!vm.error">\n {{vm.queryResult}}\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/analytics/views/reports/preview/dialog.html",'<md-dialog aria-label="Run Report">\n <form name="reportForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="ANALYTICS.PREVIEW_REPORT">Preview Report</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <div class="md-block">\n <div class="pb-16" layout="row" layout-align="start center">\n <div ng-if="vm.error" class="h2 secondary-text" translate="ANALYTICS.ERROR">ERROR</div>\n <div ng-if="!vm.error" class="h2 secondary-text" translate="ANALYTICS.LIMITED_RESULT">LIMITED RESULT</div>\n </div>\n <dl ng-if="vm.error">\n <dt class="text-bold" translate="ANALYTICS.QUERY_ERROR">Query Error</dt>\n <dd>{{vm.error.sql}}</dd>\n <dt translate="ANALYTICS.MESSAGE">Message</dt>\n <dd>{{vm.error.msg}}</dd>\n </dl>\n <md-table-container ng-if="!vm.error">\n <table md-table md-progress="vm.promise">\n <thead md-head>\n <tr md-row>\n <th md-column ng-repeat="column in vm.columns">{{column.alias || column.field}}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-repeat="row in vm.rows">\n <td md-cell ng-repeat="(key, value) in row">{{ vm.valueReplacer(key, value) }}</td>\n </tr>\n <tr md-row ng-if="!vm.rows.length">\n <td md-cell colspan="{{vm.columns.length}}"><span translate="ANALYTICS.NO_DATA">NO DATA</span></td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div flex></div>\n <md-button type="submit" ng-click="vm.closeDialog()" class="md-raised" aria-label="CLOSE" translate="ANALYTICS.CLOSE" translate-attr-aria-label="ANALYTICS.CLOSE">\n CLOSE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/analytics/views/reports/reports.html",'<div id="reports" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-chart-line" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="ANALYTICS.REPORTS">Reports</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedReports.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedReports =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="ANALYTICS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-reports-count">\n <span>{{vm.selectedReports.length}}</span>\n <span translate="ANALYTICS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="ANALYTICS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllReports()" translate="ANALYTICS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectReports()" translate="ANALYTICS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedReports" csv-label="true" filename="reports.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm.crudPermissions.canDelete && vm.currentNode.custom" class="md-icon-button" ng-click="vm.deleteSelectedReports($event)" aria-label="delete selected" translate translate-attr-label="ANALYTICS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div layout="column" flex="30">\n <md-card class="padding-top-5 padding-horizontal-10 padding-bottom-0">\n \x3c!-- SEARCH --\x3e\n <div layout="row" layout-align="start center">\n <label for="searchFolder" class="m-0">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="margin-horizontal-0 margin-bottom-0 margin-top-10" flex>\n <input id="searchFolder" placeholder="Search folder" type="text" ng-model="vm.search" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="ANALYTICS.SEARCH_FOR_FOLDER">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </md-card>\n <md-card class="padding-10 scrollable" ms-scroll>\n <div js-tree="vm.treeDefaultConfig" tree-events-obj="vm.treeDefaultEvents" ng-model="vm.treeDefaultData" tree="vm.treeDefaultInstance"></div>\n </md-card>\n <md-card class="padding-10 scrollable" ms-scroll>\n <div js-tree="vm.treeCustomConfig" tree-events-obj="vm.treeCustomEvents" ng-model="vm.treeCustomData" tree="vm.treeCustomInstance"></div>\n </md-card>\n </div>\n <md-card flex="70">\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="h2 secondary-text">{{vm.currentNode.text}}</span>\n <p ng-if="vm.currentPath">\n <span class="text-boxed">{{vm.currentPath}}</span>\n </p>\n <div flex></div>\n <ms-search-bar on-search="vm.getReports()" query="vm.query" on-collapse="vm.query.filter = undefined" debounce="300"></ms-search-bar>\n <div flow-init flow-file-added="vm.importReport($file, $event, $flow)">\n <md-button ng-if="vm.crudPermissions.canEdit && vm.currentNode.custom" class="md-icon-button" aria-label="import report" translate translate-attr-label="ANALYTICS.IMPORT_REPORT" flow-btn>\n <md-icon md-font-icon="icon-upload"></md-icon>\n </md-button>\n </div>\n <md-button ng-if="vm.crudPermissions.canEdit && vm.currentNode.custom" class="md-icon-button" ng-click="vm.createOrEditReport($event)" aria-label="add report" translate translate-attr-label="ANALYTICS.ADD_REPORT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedReports" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getReports">\n <tr md-row>\n <th md-column md-order-by="id" width="10px">{{ \'ANALYTICS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'ANALYTICS.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'ANALYTICS.DESCRIPTION\' | translate }}</th>\n <th md-column md-order-by="createdAt">{{ \'ANALYTICS.CREATED_AT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.reports.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="ANALYTICS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="report" md-select-id="id" ng-repeat="report in vm.reports.rows">\n <td ng-click="!vm.crudPermissions.canEdit ? vm.currentNode.custom && vm.editstate(report, $event) : vm.currentNode.custom && vm.createOrEditReport($event, report)" md-cell class="id">{{report.id}}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.currentNode.custom && vm.editstate(report, $event) : vm.currentNode.custom && vm.createOrEditReport($event, report)" md-cell class="name">{{report.name}}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.currentNode.custom && vm.editstate(report, $event) : vm.currentNode.custom && vm.createOrEditReport($event, report)" md-cell class="description">{{report.description}}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.currentNode.custom && vm.editstate(report, $event) : vm.currentNode.custom && vm.createOrEditReport($event, report)" md-cell class="createdAt">{{report.createdAt | date:\'medium\'}}</td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="ANALYTICS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.copydialog(report, $event)" translate="ANALYTICS.COPY_REPORT">\n Copy Report\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.previewdialog(report, $event)" translate="ANALYTICS.PREVIEW_REPORT">\n Preview Report\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.rundialog(report, $event)" translate="ANALYTICS.RUN_REPORT">\n Run Report\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.downloadfile(report, $event)" translate="ANALYTICS.DOWNLOAD_JSON_REPORT">\n Download Json Report\n </md-button>\n </md-menu-item>\n <md-menu-divider ng-if="vm.crudPermissions.canEdit && vm.crudPermissions.canDelete && vm.currentNode.custom">\n </md-menu-divider>\n <md-menu-item ng-if="vm.crudPermissions.canEdit && vm.currentNode.custom">\n <md-button ng-click="vm.editstate(report, $event)" translate="ANALYTICS.EDIT_REPORT">\n Edit Report\n </md-button>\n </md-menu-item>\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete && vm.currentNode.custom">\n <md-button ng-click="vm.deleteconfirm(report, $event)" translate="ANALYTICS.DELETE_REPORT">\n Delete Report\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'ANALYTICS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'ANALYTICS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'ANALYTICS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.reports.count}}" md-on-paginate="vm.getReports" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- NO ADD BUTTON BUTTON --\x3e\n</div>'),e.put("app/main/apps/analytics/views/reports/run/dialog.html",'<md-dialog class="report-dialog" aria-label="Run Report">\n <form name="reportForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="ANALYTICS.RUN_REPORT">Run Report</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.NAME">Name</label>\n <input name="name" ng-model="vm.export.name" required md-autofocus>\n <div ng-messages="reportForm.name.$error" ng-show="reportForm.name.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="ANALYTICS.FORMAT">FORMAT</label>\n <md-select name="format" ng-model="vm.export.output" required>\n <md-option value="csv">CSV</md-option>\n <md-option value="xlsx">Excel (XLSX)</md-option>\n <md-option value="pdf">PDF</md-option>\n <md-option value="web">Web</md-option>\n </md-select>\n <div ng-messages="reportForm.format.$error" ng-show="reportForm.format.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.FORMAT_REQUIRED">Format field is required</span>\n </div>\n </div>\n </md-input-container>\n <div layout="row">\n <div class="md-block" flex>\n <mdp-date-picker mdp-open-on-click required name="dateRangeFrom" mdp-placeholder="Date Range From" mdp-format="YYYY-MM-DD" mdp-max-date="vm.dateRangeTo" ng-model="vm.export.startDate">\n <div ng-messages="reportForm.dateRangeFrom.$error" ng-show="reportForm.dateRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.DATE_RANGE_FROM_REQUIRED">Date Range From field is required</span>\n </div>\n <div ng-message="format">\n <span translate="ANALYTICS.ERRORS.DATE_RANGE_FROM_INVALID">Date Range From field is invalid</span>\n </div>\n <div ng-message="maxDate">\n <span translate="ANALYTICS.ERRORS.DATE_RANGE_FROM_MAX_INVALID">Date Range From Max field is invalid</span>\n </div>\n </div>\n </mdp-date-picker>\n </div>\n <div class="md-block" flex>\n <mdp-date-picker mdp-open-on-click required name="dateRangeTo" mdp-placeholder="Date Range To" mdp-format="YYYY-MM-DD" mdp-min-date="vm.dateRangeFrom" ng-model="vm.export.endDate">\n <div ng-messages="reportForm.dateRangeTo.$error" ng-show="reportForm.dateRangeTo.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.DATE_RANGE_TO_REQUIRED">Date Range From field is required</span>\n </div>\n <div ng-message="format">\n <span translate="ANALYTICS.ERRORS.DATE_RANGE_TO_INVALID">Date Range From field is invalid</span>\n </div>\n <div ng-message="minDate">\n <span translate="ANALYTICS.ERRORS.DATE_RANGE_FROM_MIN_INVALID">Date Range From Min field is invalid</span>\n </div>\n </div>\n </mdp-date-picker>\n </div>\n </div>\n <div layout="row">\n <div class="md-block" flex>\n <mdp-time-picker required name="timeRangeFrom" mdp-placeholder="Time Range From" mdp-format="HH:mm:ss" mdp-auto-switch="true" mdp-max-date="vm.dateRangeTo" ng-model="vm.export.startDate">\n <div ng-messages="reportForm.timeRangeFrom.$error" ng-show="reportForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.TIME_RANGE_FROM_REQUIRED">Time Range From field is required</span>\n </div>\n <div ng-message="format">\n <span translate="ANALYTICS.ERRORS.TIME_RANGE_FROM_INVALID">Time Range From field is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n <div class="md-block" flex>\n <mdp-time-picker required name="timeRangeTo" mdp-placeholder="Time Range To" mdp-format="HH:mm:ss" mdp-auto-switch="true" mdp-min-date="vm.dateRangeFrom" ng-model="vm.export.endDate">\n <div ng-messages="reportForm.timeRangeTo.$error" ng-show="reportForm.timeRangeTo.$touched" role="alert">\n <div ng-message="required">\n <span translate="ANALYTICS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range From field is required</span>\n </div>\n <div ng-message="format">\n <span translate="ANALYTICS.ERRORS.TIME_RANGE_TO_INVALID">Time Range From field is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </div>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.runReport($event)" class="send-button md-accent md-raised" ng-disabled="reportForm.$invalid" aria-label="RUN" translate="ANALYTICS.RUN_REPORT" translate-attr-aria-label="ANALYTICS.RUN_REPORT">\n RUN REPORT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-click="vm.refreshDate()" aria-label="REFRESH" translate translate-attr-aria-label="ANALYTICS.REFRESH">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <md-tooltip><span translate="ANALYTICS.REFRESH">REFRESH</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/analytics/views/reports/run/web/dialog.html",'<md-dialog class="web-dialog" aria-label="Show Report">\n <form name="reportForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="ANALYTICS.WEB_REPORT">Web Report</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <div class="md-block">\n <div class="pb-16" layout="row" layout-align="start center">\n <div ng-if="vm.error" class="h2 secondary-text" translate="ANALYTICS.ERROR">ERROR</div>\n </div>\n <dl ng-if="vm.error">\n <dt class="text-bold" translate="ANALYTICS.QUERY_ERROR">Query Error</dt>\n <dd>{{vm.error.sql}}</dd>\n <dt translate="ANALYTICS.MESSAGE">Message</dt>\n <dd>{{vm.error.msg}}</dd>\n </dl>\n <md-table-container ng-if="!vm.error">\n <table md-table md-progress="vm.promise">\n <thead md-head>\n <tr md-row>\n <th md-column ng-repeat="column in vm.columns">{{column.alias || column.field}}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-repeat="row in vm.results.rows">\n <td md-cell ng-repeat="(key, value) in row">{{ vm.valueReplacer(key, value) }}</td>\n </tr>\n <tr md-row ng-if="!vm.results.rows.length">\n <td md-cell colspan="{{vm.columns.length}}">\n <div layout="row" layout-align="center center">\n <span translate="ANALYTICS.NO_DATA">NO DATA</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'ANALYTICS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'ANALYTICS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'ANALYTICS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.results.count}}" md-on-paginate="vm.getResults" md-page-select></md-table-pagination>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div flex></div>\n <md-button type="submit" ng-click="vm.closeDialog()" class="md-raised" aria-label="CLOSE" translate="ANALYTICS.CLOSE" translate-attr-aria-label="ANALYTICS.CLOSE">\n CLOSE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/odbcs/create/dialog.html",'<md-dialog class="odbc-dialog" aria-label="New Odbc">\n <form name="odbcForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CALLYSQUARE.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.odbc.name" ng-required="true" autofocus>\n\n <div ng-messages="odbcForm[\'name\'].$error" ng-show="odbcForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CALLYSQUARE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CALLYSQUARE.DSN">DSN</label>\n <input type="text" name="dsn" ng-model="vm.odbc.dsn" ng-required="true">\n\n <div class="hint"><span translate="CALLYSQUARE.HELP.DSN"></span></div>\n <div ng-messages="odbcForm[\'dsn\'].$error" ng-show="odbcForm[\'dsn\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CALLYSQUARE.ERRORS.DSN_REQUIRED">DSN field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CALLYSQUARE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.odbc.description">\n\n <div ng-messages="odbcForm[\'description\'].$error" ng-show="odbcForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CALLYSQUARE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newOdbc" ng-click="vm.saveOdbc()" class="send-button md-accent md-raised" ng-disabled="odbcForm.$invalid || odbcForm.$pristine" aria-label="SAVE" translate="CALLYSQUARE.SAVE" translate-attr-aria-label="CALLYSQUARE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newOdbc" ng-click="vm.addNewOdbc()" class="send-button md-accent md-raised" ng-disabled="odbcForm.$invalid" aria-label="ADD" translate="CALLYSQUARE.ADD_ODBC" translate-attr-aria-label="CALLYSQUARE.ADD_ODBC">\n ADD ODBC\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newOdbc" ng-click="vm.deleteOdbc($event)" aria-label="DELETE" translate translate-attr-aria-label="CALLYSQUARE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CALLYSQUARE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/odbcs/odbcs.html",'<div id="odbcs" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-sitemap" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="CALLYSQUARE.ODBC">ODBC</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="CALLYSQUARE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedODBC.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedODBC =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="CALLYSQUARE.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-odbcs-count">\n <span>{{vm.selectedODBC.length}}</span>\n <span translate="CALLYSQUARE.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CALLYSQUARE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllODBC()" translate="CALLYSQUARE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectODBC()" translate="CALLYSQUARE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedODBC" csv-label="true" filename="odbcs.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedODBC($event)" aria-label="delete selected" translate translate-attr-label="CALLYSQUARE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- ODBC TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedODBC" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getODBC">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'CALLYSQUARE.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'CALLYSQUARE.NAME\' | translate }}</th>\n <th md-column md-order-by="dsn">{{ \'CALLYSQUARE.DSN\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'CALLYSQUARE.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.odbcs.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="CALLYSQUARE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="odbc" md-select-id="id" ng-repeat="odbc in vm.odbcs.rows">\n <td md-cell ng-if="odbc.userpic"><img class="avatar" alt="{{odbc.name}}" ng-src="api/users/{{odbc.id}}/avatar" /></td>\n <td md-cell ng-if="!odbc.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{odbc.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditOdbc($event, odbc)" md-cell class="id ">{{odbc.id}}</td>\n <td ng-click="vm.createOrEditOdbc($event, odbc)" md-cell class="name ">{{odbc.name}}</td>\n <td ng-click="vm.createOrEditOdbc($event, odbc)" md-cell class="dsn ">{{odbc.dsn}}</td>\n <td ng-click="vm.createOrEditOdbc($event, odbc)" md-cell class="description ">{{odbc.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CALLYSQUARE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(odbc, $event )" translate="CALLYSQUARE.EDIT_ODBC">\n Edit Odbc\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestOdbc(odbc, $event )" translate="CALLYSQUARE.TEST_ODBC">\n Test Odbc\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(odbc, $event )" translate="CALLYSQUARE.DELETE_ODBC">\n Delete Odbc\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CALLYSQUARE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CALLYSQUARE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CALLYSQUARE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.odbcs.count}}" md-on-paginate="vm.getODBC" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / ODBC TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD ODBC BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-odbc-button" ng-click="vm.createOrEditOdbc($event)" aria-label="add odbc" translate translate-attr-aria-label="CALLYSQUARE.ADD_ODBC">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD ODBC BUTTON --\x3e\n</div>'),e.put("app/main/apps/callysquare/views/projects/create/dialog.html",'<md-dialog class="project-dialog" aria-label="New Project">\n <form name="projectForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{vm.title | translate}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CALLYSQUARE.NAME">Name</label>\n <input name="name" ng-model="vm.project.name" required md-autofocus ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-disabled="!vm.newProject">\n <div ng-messages="projectForm.name.$error" ng-show="projectForm.name.$touched" role="alert">\n <div ng-message="required">\n <span translate="CALLYSQUARE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="VOICE.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CALLYSQUARE.DESCRIPTION">Description</label>\n <input name="description" ng-model="vm.project.description">\n <div ng-messages="projectForm.description.$error" ng-show="projectForm.description.$touched" role="alert">\n <div ng-message="required">\n <span translate="CALLYSQUARE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.openFromEditor" class="md-block">\n \x3c!-- Added to check if I\'m opening the dialog directly from the square editor --\x3e\n <md-switch ng-model="vm.newWindow" aria-label="{{\'CALLYSQUARE.OPEN_NEW_WINDOW\' | translate }}"><span translate="CALLYSQUARE.OPEN_NEW_WINDOW"></span></md-switch>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-if="!vm.newProject" ng-click="vm.saveProject()" class="send-button md-accent md-raised" ng-disabled="projectForm.$invalid || projectForm.$pristine" aria-label="SAVE" translate="CALLYSQUARE.SAVE" translate-attr-aria-label="CALLYSQUARE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newProject" ng-click="vm.addNewProject()" class="send-button md-accent md-raised" ng-disabled="projectForm.$invalid || projectForm.$pristine" aria-label="ADD" translate="CALLYSQUARE.ADD_PROJECT" translate-attr-aria-label="CALLYSQUARE.ADD_PROJECT">\n ADD PROJECT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newProject" ng-click="vm.deleteProject($event)" aria-label="DELETE" translate translate-attr-aria-label="CALLYSQUARE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CALLYSQUARE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/dialog/dialog.html",'<md-dialog class="project-dialog" aria-label="New dialog" ng-init="vm.onInit()">\n <form name="dialogForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title"><span translate="CALLYSQUARE.EDIT"></span> <span translate="CALLYSQUARE.{{vm.cellName | uppercase}}"></span></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <md-input-container class="md-block" ng-repeat="attribute in vm.attributes" ng-switch="attribute.name">\n <label translate="CALLYSQUARE.{{attribute.name | uppercase}}">{{attribute.name | ucfirst }}</label>\n\n \x3c!-- START SELECT INPUT --\x3e\n <md-select name="{{attribute.name}}" ng-model="attribute.value" ng-disabled="!vm.crudPermissions.canEdit" ng-switch-when-separator="|" ng-switch-when="answer|trunk_name|trunk_id|queue_id|file_id|variable_id|google_cloud_tts_text_type|google_tts_language|ispeech_tts_language|ispeech_asr_language|google_asr_language|hiddendigitspos|odbc_id|project_id|beep|account_id|interval_id|template_id|list_id|recordingFormat|callback_priority|aws_polly_voice|aws_polly_region|aws_lex_region|sms_account_id|findBy|pause_id|aws_text_type|dialogflow_language|ndagenerate_audio|ndaactivity_type|languageCode|ssmlGender|method|dialogflowV2_language" ng-required="attribute.required">\n <md-option ng-if="attribute.defaultValue" ng-value="\'\'"> - None - </md-option>\n <md-option value="{{v.value}}" ng-repeat="v in vm.values[attribute.name]" ng-disabled="v.canSelect === false">{{v.option}}</md-option>\n <md-option ng-if="!vm.values[attribute.name].length" value="-1">No {{attribute.name}} available!</md-option>\n </md-select>\n \x3c!-- END SELECT INPUT --\x3e\n\n \x3c!-- START SELECT INPUT --\x3e\n <md-select name="{{attribute.name}}" ng-model="attribute.value" ng-disabled="!vm.crudPermissions.canEdit" ng-switch-when-separator="|" ng-switch-when="sip_id" ng-required="attribute.required">\n <md-optgroup label="{{\'CALLYSQUARE.AGENTS\' | translate}}">\n <md-option value="{{v.value}}" ng-repeat="v in vm.values[attribute.name]" ng-if="v.group === \'agent\'" ng-disabled="v.canSelect === false">{{v.option}}</md-option>\n </md-optgroup>\n <md-optgroup label="{{\'CALLYSQUARE.TELEPHONES\' | translate}}">\n <md-option value="{{v.value}}" ng-repeat="v in vm.values[attribute.name]" ng-if="v.group === \'telephone\'" ng-disabled="v.canSelect === false">{{v.option}}</md-option>\n </md-optgroup>\n <md-optgroup label="{{\'CALLYSQUARE.USERS\' | translate}}">\n <md-option value="{{v.value}}" ng-repeat="v in vm.values[attribute.name]" ng-if="v.group === \'admin\' || v.group === \'user\'">{{v.option}}</md-option>\n </md-optgroup>\n <md-option ng-if="!vm.values[attribute.name].length" value="-1">No {{attribute.name}} available!</md-option>\n </md-select>\n \x3c!-- END SELECT INPUT --\x3e\n\n \x3c!-- START NUMBER INPUT --\x3e\n <div ng-switch-when="timeout">\n <div ng-switch="vm.cellName">\n <input ng-switch-when-separator="|" ng-switch-when="answer|ext_dial|dial|queue" type="number" step="any" name="{{attribute.name}}" min="0" ng-model="attribute.value" ng-required="attribute.required" ng-disabled="!vm.crudPermissions.canEdit" string-to-number>\n <input ng-switch-when-separator="|" ng-switch-when="record|ispeechasr|googleasr" type="number" step="any" name="{{attribute.name}}" min="-1" ng-model="attribute.value" ng-required="attribute.required" ng-disabled="!vm.crudPermissions.canEdit" string-to-number>\n <input ng-switch-when-separator="|" ng-switch-when="restapi" type="number" step="any" name="{{attribute.name}}" min="1" ng-model="attribute.value" ng-required="attribute.required" ng-disabled="!vm.crudPermissions.canEdit" string-to-number>\n <input ng-switch-default type="number" step="any" name="{{attribute.name}}" min="0" ng-model="attribute.value" ng-required="attribute.required" ng-disabled="!vm.crudPermissions.canEdit" string-to-number>\n </div>\n </div>\n <input ng-switch-when-separator="|" ng-switch-when="speed" type="number" step="any" name="{{attribute.name}}" min="-10" max="-10" ng-model="attribute.value" ng-required="attribute.required" ng-disabled="!vm.crudPermissions.canEdit" string-to-number>\n <input ng-switch-when-separator="|" ng-switch-when="maxdigit|mindigit|digit" type="number" step="any" name="{{attribute.name}}" min="1" ng-model="attribute.value" ng-required="attribute.required" ng-disabled="!vm.crudPermissions.canEdit" string-to-number>\n <input ng-switch-when-separator="|" ng-switch-when="retry|response|hiddendigitsnum|priority" type="number" step="any" name="{{attribute.name}}" min="1" ng-model="attribute.value" ng-required="attribute.required" ng-disabled="!vm.crudPermissions.canEdit" string-to-number>\n \x3c!-- END NUMBER INPUT --\x3e\n\n \x3c!-- START TEXTAREA INPUT --\x3e\n <textarea name="{{attribute.name}}" ng-model="attribute.value" ng-switch-when-separator="|" ng-switch-when="query|sms_text|condition|text|custom_action_data|headers|body|rawHeaders|rawBody|private_key" ng-required="attribute.required" ng-disabled="!vm.crudPermissions.canEdit"></textarea>\n \x3c!-- END TEXTAREA INPUT --\x3e\n\n \x3c!-- START URL INPUT --\x3e\n <input ng-switch-when-separator="|" ng-switch-when="ndauth_url|ndassistant_url|url" type="url" name="{{attribute.name}}" ng-model="attribute.value" ng-required="attribute.required">\n \x3c!-- END URL INPUT --\x3e\n\n \x3c!-- START TEXT INPUT --\x3e\n <input ng-switch-default name="{{attribute.name}}" ng-model="attribute.value" ng-required="attribute.required" ng-disabled="!vm.crudPermissions.canEdit">\n <div class=\'hint\' ng-if="attribute.name === \'text\' && vm.cellName === \'tts\' ">\n <span translate="CALLYSQUARE.HELP.MAX_TEXT_TTS" class="ng-scope">Max 250 chars are supported</span>\n </div>\n \x3c!-- END TEXT INPUT--\x3e\n\n <div class="hint" ng-if="attribute.help">\n <span translate="CALLYSQUARE.HELP.{{attribute.name | uppercase}}"></span>\n </div>\n <div ng-messages="dialogForm[attribute.name].$error" ng-show="dialogForm[attribute.name].$touched" role="alert">\n <div ng-message="required">\n <span translate="CALLYSQUARE.ERRORS.FIELD_REQUIRED">The field is required</span>\n </div>\n </div>\n </md-input-container>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="vm.crudPermissions.canEdit">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.closeDialog(true)" class="send-button md-accent md-raised" ng-disabled="dialogForm.$invalid || dialogForm.$pristine" aria-label="SAVE" translate="CALLYSQUARE.SAVE" translate-attr-aria-label="CALLYSQUARE.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/edit/edit.html",'<md-dialog class="project-dialog" aria-label="New dialog">\n <form name="editForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title"><span translate="CALLYSQUARE.EDIT_XML"></span></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label>XML</label>\n <textarea name="preproduction" ng-model="vm.project.preproduction"></textarea>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.closeDialog(true)" class="send-button md-accent md-raised" ng-disabled="editForm.$invalid" aria-label="SAVE" translate="CALLYSQUARE.SAVE" translate-attr-aria-label="CALLYSQUARE.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/import/import.html",'<md-dialog class="project-dialog" aria-label="New dialog">\n <form name="importForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title"><span translate="CALLYSQUARE.IMPORT_XML"></span></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <div id="xml-uploader" flow-init="vm.ngFlowOptions" flow-name="vm.ngFlow.flow" flow-file-added="vm.fileAdded($file)" flow-drop flow-drag-enter="vm.dropping=true" flow-drag-leave="vm.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="CALLYSQUARE.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn>\n Upload\n </md-button>\n <span class="secondary-text mt-8" translate="CALLYSQUARE.DROP_TO_UPLOAD_MESSAGE">You can also drop files here to upload. Only XML - Max. 5MB</span>\n </div>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.closeDialog()" class="send-button md-accent md-raised" ng-disabled="importForm.$invalid" aria-label="CLOSE" translate="CALLYSQUARE.CLOSE" translate-attr-aria-label="CALLYSQUARE.CLOSE">\n CLOSE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/info/info.html",'<md-dialog class="project-dialog" aria-label="New dialog">\n <form name="descriptionFrom" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title"><span translate="CALLYSQUARE.UPDATE_INFO"></span></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CALLYSQUARE.DESCRIPTION">Description</label>\n <input name="description" ng-model="vm.project.description" md-autofocus>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CALLYSQUARE.NOTES">Description</label>\n <textarea name="notes" ng-model="vm.project.notes"></textarea>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.save()" class="send-button md-accent md-raised" ng-disabled="descriptionFrom.$invalid" aria-label="SAVE" translate="CALLYSQUARE.UPDATE_INFO" translate-attr-aria-label="CALLYSQUARE.UPDATE">\n UPDATE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/open/open.html",'<md-dialog class="project-dialog" aria-label="New dialog">\n <form name="openForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title"><span translate="CALLYSQUARE.OPEN_PROJECT"></span></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CALLYSQUARE.PROJECT">Project</label>\n <md-select name="id" ng-model="vm.id" required>\n <md-option value="{{p.id}}" ng-repeat="p in vm.projects">{{p.name}}</md-option>\n </md-select>\n <div ng-messages="openForm.id.$error" ng-show="openForm.id.$touched" role="alert">\n <div ng-message="required">\n <span translate="CALLYSQUARE.ERRORS.PROJECT_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.newWindow" aria-label="{{\'CALLYSQUARE.OPEN_NEW_WINDOW\' | translate }}"><span translate="CALLYSQUARE.OPEN_NEW_WINDOW"></span></md-switch>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.closeDialog(true)" class="send-button md-accent md-raised" ng-disabled="openForm.$invalid" aria-label="SAVE" translate="CALLYSQUARE.OPEN_PROJECT" translate-attr-aria-label="CALLYSQUARE.OPEN">\n OPEN\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/permissionadd/permissionadd.html",'<md-dialog class="projects-dialog" aria-label="projects">\n <form name="projectsForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="CALLYSQUARE.PERMISSIONADD_PROJECTS">Add User Permissions</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions"></ms-dual-multiselect>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/saveAs/saveAs.html",'<md-dialog class="project-dialog" aria-label="New dialog">\n <form name="newForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title"><span translate="CALLYSQUARE.COPY_PROJECT"></span></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CALLYSQUARE.NAME">Name</label>\n <input name="name" ng-model="vm.project.name" required md-autofocus>\n <div ng-messages="newForm.name.$error" ng-show="newForm.name.$touched" role="alert">\n <div ng-message="required">\n <span translate="CALLYSQUARE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.newWindow" aria-label="{{\'CALLYSQUARE.OPEN_NEW_WINDOW\' | translate }}"><span translate="CALLYSQUARE.OPEN_NEW_WINDOW"></span></md-switch>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.save()" class="send-button md-accent md-raised" ng-disabled="newForm.$invalid" aria-label="SAVE" translate="CALLYSQUARE.COPY_PROJECT" translate-attr-aria-label="CALLYSQUARE.COPY">\n COPY\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/projects/edit/view.html",'<div id="callysquare-project" class="page-layout simple tabbed" layout="column" ng-init="vm.onInit()">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-projects-button md-icon-button" aria-label="Go to projects" ng-click="vm.gotoProjects()" translate translate-attr-aria-label="CALLYSQUARE.GO_TO_PROJECTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="project-image" hide-xs>\n <img ng-src="assets/images/business/cprojects.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.project.id}} {{vm.project.name}}\n </div>\n <div class="subtitle secondary-text text-truncate">\n <span ng-if="vm.project.description">{{vm.project.description}} - </span><span translate="CALLYSQUARE.CREATED_AT"></span> <span>{{vm.project.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-if="vm.crudPermissions.canEdit" ng-click="vm.updateInfo($event)" class="md-fab md-yellow-700-bg md-icon-button" aria-label="edit">\n <md-icon md-font-icon="icon-tooltip-edit"></md-icon>\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <md-content class="callysquare-content">\n\n <div id="geEditor" class="geEditor"></div>\n\n </md-content>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/callysquare/views/projects/projects.html",'<div id="projects" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-vector-square" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="CALLYSQUARE.PROJECTS">Projects</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="CALLYSQUARE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedProjects.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedProjects =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="CALLYSQUARE.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-projects-count">\n <span>{{vm.selectedProjects.length}}</span>\n <span translate="CALLYSQUARE.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CALLYSQUARE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllProjects()" translate="CALLYSQUARE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectProjects()" translate="CALLYSQUARE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedProjects" csv-label="true" filename="projects.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm.crudPermissions.canDelete" class="md-icon-button" ng-click="vm.deleteSelectedProjects($event)" aria-label="delete selected" translate translate-attr-label="CALLYSQUARE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n \x3c!-- PROJECT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedProjects" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getProjects">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'CALLYSQUARE.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'CALLYSQUARE.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'CALLYSQUARE.DESCRIPTION\' | translate }}</th>\n <th md-column md-order-by="notes">{{ \'CALLYSQUARE.NOTES\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.projects.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="CALLYSQUARE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="project" md-select-id="id" ng-repeat="project in vm.projects.rows">\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="id ">{{project.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="name ">{{project.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="description ">{{project.description}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="notes ">{{project.notes}}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CALLYSQUARE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editstate(project, ev)" translate="CALLYSQUARE.EDIT_PROJECT">\n Edit Project\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteconfirm(project, ev)" translate="CALLYSQUARE.DELETE_PROJECT">\n Delete Project\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CALLYSQUARE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CALLYSQUARE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CALLYSQUARE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.projects.count}}" md-on-paginate="vm.getProjects" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / PROJECT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD PROJECT BUTTON --\x3e\n <md-button class="md-fab md-accent md-icon-button" id="add-project-button" ng-if="vm.crudPermissions.canEdit" ng-click="vm.createOrEditProject($event)" aria-label="add project" translate translate-attr-aria-label="CALLYSQUARE.ADD_PROJECT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD PROJECT BUTTON --\x3e\n\n</div>'),e.put("app/main/apps/callysquare/views/squareRecordings/create/dialog.html",'<md-dialog class="squareRecording-dialog" aria-label="New SquareRecording">\n <form name="squareRecordingForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CALLYSQUARE.FILENAME">Filename</label>\n <input type="" name="filename" ng-model="vm.squareRecording.filename" ng-required="true" autofocus>\n\n <div ng-messages="squareRecordingForm[\'filename\'].$error" ng-show="squareRecordingForm[\'filename\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CALLYSQUARE.ERRORS.FILENAME_REQUIRED">Filename field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newSquareRecording" ng-click="vm.saveSquareRecording()" class="send-button md-accent md-raised" ng-disabled="squareRecordingForm.$invalid || squareRecordingForm.$pristine" aria-label="SAVE" translate="CALLYSQUARE.SAVE" translate-attr-aria-label="CALLYSQUARE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newSquareRecording" ng-click="vm.addNewSquareRecording()" class="send-button md-accent md-raised" ng-disabled="squareRecordingForm.$invalid" aria-label="ADD" translate="CALLYSQUARE.ADD_SQUARERECORDING" translate-attr-aria-label="CALLYSQUARE.ADD_SQUARERECORDING">\n ADD SQUARERECORDING\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newSquareRecording" ng-click="vm.deleteSquareRecording($event)" aria-label="DELETE" translate translate-attr-aria-label="CALLYSQUARE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CALLYSQUARE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/callysquare/views/squareRecordings/squareRecordings.html",'<div id="squareRecordings" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-sitemap" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="CALLYSQUARE.SQUARERECORDINGS">SquareRecordings</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="CALLYSQUARE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedSquareRecordings.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedSquareRecordings =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="CALLYSQUARE.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-squareRecordings-count">\n <span>{{vm.selectedSquareRecordings.length}}</span>\n <span translate="CALLYSQUARE.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CALLYSQUARE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllSquareRecordings()" translate="CALLYSQUARE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectSquareRecordings()" translate="CALLYSQUARE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedSquareRecordings" csv-label="true" filename="squareRecordings.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedSquareRecordings($event)" aria-label="delete selected" translate translate-attr-label="CALLYSQUARE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- SQUARERECORDING TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedSquareRecordings" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getSquareRecordings">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="filename">{{ \'CALLYSQUARE.FILENAME\' | translate }}</th>\n <th md-column md-order-by="projectName">{{ \'CALLYSQUARE.PROJECT\' | translate }}</th>\n <th md-column md-order-by="uniqueid">{{ \'CALLYSQUARE.UNIQUEID\' | translate }}</th>\n <th md-column md-order-by="callerid">{{ \'CALLYSQUARE.PHONE\' | translate }}</th>\n <th md-column md-order-by="extension">{{ \'CALLYSQUARE.EXTEN\' | translate }}</th>\n <th md-column>{{ \'CALLYSQUARE.AUDIO\' | translate }}</th>\n <th md-column md-order-by="createdAt">{{ \'CALLYSQUARE.CREATED_AT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.squareRecordings.rows.length">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span translate="CALLYSQUARE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="squareRecording" md-select-id="id" ng-repeat="squareRecording in vm.squareRecordings.rows">\n <td md-cell ng-if="squareRecording.userpic"><img class="avatar" alt="{{squareRecording.name}}" ng-src="api/users/{{squareRecording.id}}/avatar" /></td>\n <td md-cell ng-if="!squareRecording.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{squareRecording.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditSquareRecording($event, squareRecording)" md-cell class="filename ">{{squareRecording.filename}}</td>\n <td ng-click="vm.createOrEditSquareRecording($event, squareRecording)" md-cell class="projectName ">{{squareRecording.projectName}}</td>\n <td ng-click="vm.createOrEditSquareRecording($event, squareRecording)" md-cell class="uniqueid ">{{squareRecording.uniqueid}}</td>\n <td ng-click="vm.createOrEditSquareRecording($event, squareRecording)" md-cell class="callerid ">{{squareRecording.callerid}}</td>\n <td ng-click="vm.createOrEditSquareRecording($event, squareRecording)" md-cell class="extension ">{{squareRecording.extension}}</td>\n <td md-cell class="audio " ng-switch="squareRecording.format">\n \x3c!-- audio recording directive --\x3e\n <ms-recording ng-switch-when=".wav" id="squareRecording.id" model="\'squareRecording\'"></ms-recording>\n \x3c!-- / audio recording directive --\x3e\n <span ng-switch-when=".gsm|.WAV" ng-switch-when-separator="|">\n <em>{{ \'VOICE.CANT_PLAY_GSM_AUDIO_FILES\' | translate }}</em>\n </span>\n </td>\n <td ng-click="vm.createOrEditSquareRecording($event, squareRecording)" md-cell class="createdAt ">{{squareRecording.createdAt | date:\'medium\' }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CALLYSQUARE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.role === \'admin\' || vm.userProfile.downloadCallySquareRecordings">\n\n <md-button ng-click="vm.downloadfile2(squareRecording, $event , \'square/recordings\' )" translate="CALLYSQUARE.DOWNLOAD_SQUARERECORDING">\n Download SquareRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(squareRecording, $event )" translate="CALLYSQUARE.DELETE_SQUARERECORDING">\n Delete SquareRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CALLYSQUARE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CALLYSQUARE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CALLYSQUARE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.squareRecordings.count}}" md-on-paginate="vm.getSquareRecordings" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / SQUARERECORDING TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- NO ADD BUTTON BUTTON --\x3e\n</div>'),e.put("app/main/apps/chat/views/chatQueues/chatQueues.html",'<div id="chatQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-hangouts" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="CHAT.CHATQUEUES">ChatQueues</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="CHAT.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedChatQueues.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedChatQueues =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="CHAT.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-chatQueues-count">\n <span>{{vm.selectedChatQueues.length}}</span>\n <span translate="CHAT.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CHAT.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllChatQueues()" translate="CHAT.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectChatQueues()" translate="CHAT.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedChatQueues" csv-label="true" filename="chatQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedChatQueues($event)" aria-label="delete selected" translate translate-attr-label="CHAT.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- CHATQUEUE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedChatQueues" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getChatQueues">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'CHAT.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'CHAT.NAME\' | translate }}</th>\n <th md-column md-order-by="strategy">{{ \'CHAT.STRATEGY\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.chatQueues.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="CHAT.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="chatQueue" md-select-id="id" ng-repeat="chatQueue in vm.chatQueues.rows">\n <td md-cell ng-if="chatQueue.userpic"><img class="avatar" alt="{{chatQueue.name}}" ng-src="api/users/{{chatQueue.id}}/avatar" /></td>\n <td md-cell ng-if="!chatQueue.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{chatQueue.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatQueue, ev) : vm.createOrEditChatQueue($event, chatQueue)" md-cell class="id ">{{chatQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatQueue, ev) : vm.createOrEditChatQueue($event, chatQueue)" md-cell class="name ">{{chatQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatQueue, ev) : vm.createOrEditChatQueue($event, chatQueue)" md-cell class="strategy ">{{ vm.arraystrategy[chatQueue.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CHAT.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(chatQueue, $event )" translate="CHAT.EDIT_CHATQUEUE">\n Edit ChatQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(chatQueue, $event )" translate="CHAT.TEAMADD_CHATQUEUE">\n teamadd ChatQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(chatQueue, $event )" translate="CHAT.AGENTADD_CHATQUEUE">\n agentadd ChatQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(chatQueue, $event )" translate="CHAT.DELETE_CHATQUEUE">\n Delete ChatQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(chatQueue, $event )" translate="CHAT.GOTOREALTIME_CHATQUEUE">\n goToRealtime ChatQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.chatQueues.count}}" md-on-paginate="vm.getChatQueues" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / CHATQUEUE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD CHATQUEUE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-chatQueue-button" ng-click="vm.createOrEditChatQueue($event)" aria-label="add chatQueue" translate translate-attr-aria-label="CHAT.ADD_CHATQUEUE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD CHATQUEUE BUTTON --\x3e\n</div>'),e.put("app/main/apps/chat/views/chatQueues/create/dialog.html",'<md-dialog class="chatQueue-dialog" aria-label="New ChatQueue">\n <form name="chatQueueForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.chatQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newChatQueue">\n\n <div class="hint"><span translate="CHAT.HELP.NAME"></span></div>\n <div ng-messages="chatQueueForm[\'name\'].$error" ng-show="chatQueueForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="CHAT.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.chatQueue.strategy" required>\n <md-option ng-value="\'beepall\'">Beepall</md-option>\n <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n </md-select>\n <div ng-messages="chatQueueForm[\'strategy\'].$error" ng-show="chatQueueForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.chatQueue.timeout" min="1" max="2147483" value="10" ng-required="true">\n\n <div ng-messages="chatQueueForm[\'timeout\'].$error" ng-show="chatQueueForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.chatQueue.description">\n\n <div ng-messages="chatQueueForm[\'description\'].$error" ng-show="chatQueueForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newChatQueue" ng-click="vm.saveChatQueue()" class="send-button md-accent md-raised" ng-disabled="chatQueueForm.$invalid || chatQueueForm.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newChatQueue" ng-click="vm.addNewChatQueue()" class="send-button md-accent md-raised" ng-disabled="chatQueueForm.$invalid" aria-label="ADD" translate="CHAT.ADD_CHATQUEUE" translate-attr-aria-label="CHAT.ADD_CHATQUEUE">\n ADD CHATQUEUE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newChatQueue" ng-click="vm.deleteChatQueue($event)" aria-label="DELETE" translate translate-attr-aria-label="CHAT.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CHAT.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatQueues/edit/agentadd/agentadd.html",'<md-dialog class="chatQueue-dialog" aria-label="chatQueue" ng-init="vm.onInit()">\n <form name="chatQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="CHAT.AGENTADD_CHATQUEUE">Add Agent to chatQueue</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatQueues/edit/teamadd/teamadd.html",'<md-dialog class="chatQueue-dialog" aria-label="chatQueue" ng-init="vm.onInit()">\n <form name="chatQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="CHAT.TEAMS_ASSOCIATION">Teams Association</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatQueues/edit/view.html",'<div id="chat-chatQueue" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-chatQueues-button md-icon-button" aria-label="Go to chatQueues" ng-click="vm.gotoChatQueues()" translate translate-attr-aria-label="CHAT.GO_TO_CHATQUEUES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="chatQueue-image" hide-xs>\n <img ng-src="assets/images/business/chatQueues.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.chatQueue.id}}\n <span ng-if="vm.chatQueue.name">{{vm.chatQueue.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="CHAT.CREATED_AT"></span> <span>{{vm.chatQueue.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.teamadddialog(vm.chatQueue, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n <md-tooltip><span translate="CHAT.TEAMADD_CHATQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.chatQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="CHAT.AGENTADD_CHATQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-plus"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveChatQueue()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatQueue-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CHAT.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.chatQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="CHAT.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="CHAT.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.chatQueue.strategy" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'beepall\'">Beepall</md-option>\n <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n </md-select>\n <div ng-messages="generalForm[\'strategy\'].$error" ng-show="generalForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.chatQueue.timeout" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'timeout\'].$error" ng-show="generalForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.chatQueue.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/chat/views/chatWebsites/chatWebsites.html",'<div id="chatWebsites" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-hangouts" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="CHAT.CHATWEBSITES">ChatWebsites</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="CHAT.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedChatWebsites.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedChatWebsites =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="CHAT.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-chatWebsites-count">\n <span>{{vm.selectedChatWebsites.length}}</span>\n <span translate="CHAT.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CHAT.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllChatWebsites()" translate="CHAT.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectChatWebsites()" translate="CHAT.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedChatWebsites" csv-label="true" filename="chatWebsites.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedChatWebsites($event)" aria-label="delete selected" translate translate-attr-label="CHAT.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- CHATWEBSITE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedChatWebsites" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getChatWebsites">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'CHAT.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'CHAT.NAME\' | translate }}</th>\n <th md-column md-order-by="key">{{ \'CHAT.KEY\' | translate }}</th>\n <th md-column md-order-by="address">{{ \'CHAT.MOTIONADDRESS\' | translate }}</th>\n <th md-column md-order-by="remote">{{ \'CHAT.MOTIONPROXY\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'CHAT.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.chatWebsites.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="CHAT.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="chatWebsite" md-select-id="id" ng-repeat="chatWebsite in vm.chatWebsites.rows">\n <td md-cell ng-if="chatWebsite.userpic"><img class="avatar" alt="{{chatWebsite.name}}" ng-src="api/users/{{chatWebsite.id}}/avatar" /></td>\n <td md-cell ng-if="!chatWebsite.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{chatWebsite.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatWebsite, ev) : vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="id ">{{chatWebsite.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatWebsite, ev) : vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="name ">{{chatWebsite.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatWebsite, ev) : vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="key ">{{chatWebsite.key}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatWebsite, ev) : vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="address ">{{chatWebsite.address}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatWebsite, ev) : vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="remote ">{{chatWebsite.remote}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chatWebsite, ev) : vm.createOrEditChatWebsite($event, chatWebsite)" md-cell class="description ">{{chatWebsite.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CHAT.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(chatWebsite, $event )" translate="CHAT.EDIT_CHATWEBSITE">\n Edit ChatWebsite\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.interactionsgoto(chatWebsite, $event )" translate="CHAT.INTERACTIONS_CHATWEBSITE">\n Interactions ChatWebsite\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.offlinemessagesgoto(chatWebsite, $event )" translate="CHAT.OFFLINEMESSAGES_CHATWEBSITE">\n OfflineMessages ChatWebsite\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(chatWebsite, $event )" translate="CHAT.AGENTADD_CHATWEBSITE">\n AgentAdd ChatWebsite\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(chatWebsite, $event )" translate="CHAT.DELETE_CHATWEBSITE">\n Delete ChatWebsite\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.chatWebsites.count}}" md-on-paginate="vm.getChatWebsites" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / CHATWEBSITE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD CHATWEBSITE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-chatWebsite-button" ng-click="vm.createOrEditChatWebsite($event)" aria-label="add chatWebsite" translate translate-attr-aria-label="CHAT.ADD_CHATWEBSITE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD CHATWEBSITE BUTTON --\x3e\n</div>'),e.put("app/main/apps/chat/views/chatWebsites/create/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.chatWebsite.name" ng-required="true" autofocus ng-disabled="!vm.newChatWebsite">\n\n <div ng-messages="chatWebsiteForm[\'name\'].$error" ng-show="chatWebsiteForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.KEY">key</label>\n <input type="text" name="key" ng-model="vm.chatWebsite.key" md-maxlength="5" ng-required="true">\n\n <div ng-messages="chatWebsiteForm[\'key\'].$error" ng-show="chatWebsiteForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.MOTIONADDRESS">MotionAddress</label>\n <input type="url" name="address" ng-model="vm.chatWebsite.address" md-maxlength="255" ng-required="true">\n\n <div ng-messages="chatWebsiteForm[\'address\'].$error" ng-show="chatWebsiteForm[\'address\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MOTIONADDRESS_REQUIRED">MotionAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="CHAT.ERRORS.MOTIONADDRESS_MUST_VALID_URL">MotionAddress must be a valid url http://www.xcally.com</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.MOTIONADDRESS_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionAddress must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.MOTIONPROXY">MotionProxy</label>\n <input type="url" name="remote" ng-model="vm.chatWebsite.remote" md-maxlength="255" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="CHAT.HELP.MOTIONPROXY"></span></div>\n <div ng-messages="chatWebsiteForm[\'remote\'].$error" ng-show="chatWebsiteForm[\'remote\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MOTIONPROXY_REQUIRED">MotionProxy field is required</span>\n </div>\n <div ng-message="url">\n <span translate="CHAT.ERRORS.MOTIONPROXY_MUST_VALID_URL">MotionProxy must be a valid url http://www.xcally.com</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.MOTIONPROXY_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionProxy must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.LIST">List</label>\n <md-select name="ListId" ng-model="vm.chatWebsite.ListId" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="CHAT.HELP.LIST"></span></div>\n <div ng-messages="chatWebsiteForm[\'ListId\'].$error" ng-show="chatWebsiteForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.INTERVAL">Interval</label>\n <md-select name="IntervalId" ng-model="vm.chatWebsite.IntervalId">\n <md-option ng-value="null">Always</md-option>\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval" ng-disabled="IntervalId.canSelect === false">{{ IntervalId.name }}</md-option>\n </md-select>\n <div ng-messages="chatWebsiteForm[\'IntervalId\'].$error" ng-show="chatWebsiteForm[\'IntervalId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.INTERVAL_REQUIRED">Interval field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.chatWebsite.description">\n\n <div ng-messages="chatWebsiteForm[\'description\'].$error" ng-show="chatWebsiteForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newChatWebsite" ng-click="vm.saveChatWebsite()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteForm.$invalid || chatWebsiteForm.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newChatWebsite" ng-click="vm.addNewChatWebsite()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteForm.$invalid" aria-label="ADD" translate="CHAT.ADD_CHATWEBSITE" translate-attr-aria-label="CHAT.ADD_CHATWEBSITE">\n ADD CHATWEBSITE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newChatWebsite" ng-click="vm.deleteChatWebsite($event)" aria-label="DELETE" translate translate-attr-aria-label="CHAT.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CHAT.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/agentadd/agentadd.html",'<md-dialog class="chatWebsite-dialog" aria-label="chatWebsite" ng-init="vm.onInit()">\n <form name="chatWebsiteForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="CHAT.AGENTADD_CHATWEBSITE">Add Agent to chatWebsite</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/agent/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.AGENT">Agent</label>\n <md-select name="agent" ng-model="vm.agent.agent" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents" ng-disabled="agent.canSelect === false">{{ agent.name }}</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'agent\'].$error" ng-show="chatWebsiteFormApp[\'agent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.agent.timeout" min="0" max="2147483" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'timeout\'].$error" ng-show="chatWebsiteFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/amazonlex/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.ACCESSKEYID">accesskeyid</label>\n <input type="text" name="accesskeyid" ng-model="vm.amazonlex.accesskeyid" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'accesskeyid\'].$error" ng-show="chatWebsiteFormApp[\'accesskeyid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.ACCESSKEYID_REQUIRED">accesskeyid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.SECRETACCESSKEY">secretaccesskey</label>\n <input type="text" name="secretaccesskey" ng-model="vm.amazonlex.secretaccesskey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'secretaccesskey\'].$error" ng-show="chatWebsiteFormApp[\'secretaccesskey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SECRETACCESSKEY_REQUIRED">secretaccesskey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.LEXREGION">lexregion</label>\n <md-select name="lexregion" ng-model="vm.amazonlex.lexregion" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'us-east-1\'">US East (N. Virginia)</md-option>\n <md-option ng-value="\'us-west-2\'">US West (Oregon)</md-option>\n <md-option ng-value="\'eu-west-1\'">EU (Ireland)</md-option>\n <md-option ng-value="\'ap-southeast-2\'">Asia Pacific (Sydney)</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'lexregion\'].$error" ng-show="chatWebsiteFormApp[\'lexregion\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.LEXREGION_REQUIRED">lexregion field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.BOTNAME">botname</label>\n <input type="text" name="botname" ng-model="vm.amazonlex.botname" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'botname\'].$error" ng-show="chatWebsiteFormApp[\'botname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.BOTNAME_REQUIRED">botname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.amazonlex.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="CHAT.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="chatWebsiteFormApp[\'welcomemessage\'].$error" ng-show="chatWebsiteFormApp[\'welcomemessage\'].$touched" role="alert">\n\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/autoreply/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.TIMES">times</label>\n <md-select name="times" ng-model="vm.autoreply.times" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="2">One Time</md-option>\n <md-option ng-value="0">Always</md-option>\n <md-option ng-value="1">First Message</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'times\'].$error" ng-show="chatWebsiteFormApp[\'times\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TIMES_REQUIRED">times field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.TEXT">Text</label>\n <textarea name="text" ng-model="vm.autoreply.text" required></textarea>\n\n <div ng-messages="chatWebsiteFormApp[\'text\'].$error" ng-show="chatWebsiteFormApp[\'text\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TEXT_REQUIRED">Text field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/close/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.DISPOSITION">Disposition</label>\n <input type="text" name="disposition" ng-model="vm.close.disposition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'disposition\'].$error" ng-show="chatWebsiteFormApp[\'disposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/dialogflow/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.dialogflow.key" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'key\'].$error" ng-show="chatWebsiteFormApp[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.KEY_REQUIRED">Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflow.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean (South Korea)</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pt\'">Portuguese (European)</md-option>\n <md-option ng-value="\'pt-br\'">Portuguese (Nrazilian)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'sv\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-HK\'">Chinese (Hong Kong)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'language\'].$error" ng-show="chatWebsiteFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.LANGUAGE_REQUIRED">language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflow.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="CHAT.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="chatWebsiteFormApp[\'welcomemessage\'].$error" ng-show="chatWebsiteFormApp[\'welcomemessage\'].$touched" role="alert">\n\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/dialogflowv2/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.PROJECTID">ProjectID</label>\n <input type="text" name="projectId" ng-model="vm.dialogflowv2.projectId" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'projectId\'].$error" ng-show="chatWebsiteFormApp[\'projectId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.PROJECTID_REQUIRED">ProjectID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.CLIENTEMAIL">ClientEmail</label>\n <input type="text" name="clientEmail" ng-model="vm.dialogflowv2.clientEmail" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'clientEmail\'].$error" ng-show="chatWebsiteFormApp[\'clientEmail\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.CLIENTEMAIL_REQUIRED">ClientEmail field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.PRIVATEKEY">PrivateKey</label>\n <textarea name="privateKey" ng-model="vm.dialogflowv2.privateKey" required></textarea>\n\n <div ng-messages="chatWebsiteFormApp[\'privateKey\'].$error" ng-show="chatWebsiteFormApp[\'privateKey\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.PRIVATEKEY_REQUIRED">PrivateKey field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflowv2.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'zh-HK\'">Chinese (Cantonese)</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'en-AU\'">English (Australia)</md-option>\n <md-option ng-value="\'en-CA\'">English (Canada)</md-option>\n <md-option ng-value="\'en-GB\'">English (Great Britain)</md-option>\n <md-option ng-value="\'en-IN\'">English (India)</md-option>\n <md-option ng-value="\'en-US\'">English (US)</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'fr-CA\'">French (Canada)</md-option>\n <md-option ng-value="\'fr-FR\'">\'France (France)</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'hi\'">Hindi</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pl\'">Polish</md-option>\n <md-option ng-value="\'pt-BR\'">Portuguese (Brazil)</md-option>\n <md-option ng-value="\'pt-PT\'">Portuguese (Portugal)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'es-419\'">Spanish (Latin America)</md-option>\n <md-option ng-value="\'es-ES\'">Spanish (Spain)</md-option>\n <md-option ng-value="\'sw\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'tr\'">Turkish</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'language\'].$error" ng-show="chatWebsiteFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.LANGUAGE_REQUIRED">language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflowv2.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="CHAT.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="chatWebsiteFormApp[\'welcomemessage\'].$error" ng-show="chatWebsiteFormApp[\'welcomemessage\'].$touched" role="alert">\n\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/gotoif/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.CONDITION">Condition</label>\n <input type="text" name="condition" ng-model="vm.gotoif.condition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'condition\'].$error" ng-show="chatWebsiteFormApp[\'condition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.TRUEPRIORITY">truepriority</label>\n <input type="number" name="truepriority" ng-model="vm.gotoif.truepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'truepriority\'].$error" ng-show="chatWebsiteFormApp[\'truepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TRUEPRIORITY_REQUIRED">truepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">truepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.FALSEPRIORITY">falsepriority</label>\n <input type="number" name="falsepriority" ng-model="vm.gotoif.falsepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'falsepriority\'].$error" ng-show="chatWebsiteFormApp[\'falsepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.FALSEPRIORITY_REQUIRED">falsepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">falsepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/gotop/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.PRIORITY">Priority</label>\n <input type="number" name="priority" ng-model="vm.gotop.priority" min="0" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'priority\'].$error" ng-show="chatWebsiteFormApp[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Priority must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/interval/dialog.html",'<md-dialog class="interval-dialog" aria-label="New Interval">\n <form name="intervalForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="type" ng-repeat=\'type in vm.types\'>{{ type | ucfirst }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.type === \'list\'">\n <label translate="TOOLS.INTERVALS">Intervals</label>\n <md-select ng-model="vm.interval.IntervalId" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ interval.name }}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!-- TIMERANGE START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.TIME_RANGE">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <div class="md-block" flex>\n <mdp-time-picker name="timeRangeFrom" mdp-placeholder="FROM" ng-model="vm.timeRangeFrom" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <div ng-messages="intervalForm.timeRangeFrom.$error" ng-show="intervalForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_FROM_INVALID">Time Range From field is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n <div class="md-block" flex ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_INVALID">Time Range To field is invalid</span>\n </div>\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </div>\n \x3c!-- TIMERANGE END --\x3e\n\n \x3c!-- DAYSOFWEEK START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.WEEK_DAYS">Week Days</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.dayOfWeekFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex class="md-block" ng-if="vm.dayOfWeekFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="dayOfWeekTo" ng-model="vm.dayOfWeekTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- DAYSOFWEEK END --\x3e\n\n \x3c!-- MONTHDAY START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTH_DAYS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthDayFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthDayFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthDayTo" ng-model="vm.monthDayTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTHDAY END --\x3e\n\n \x3c!-- MONTH START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTHS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthTo" ng-model="vm.monthTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTH END --\x3e\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="!vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n ADD INTERVAL\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/noop/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.noop.value" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'value\'].$error" ng-show="chatWebsiteFormApp[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/queue/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.queue.queue" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues" ng-disabled="queue.canSelect === false">{{ queue.name }}</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'queue\'].$error" ng-show="chatWebsiteFormApp[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'timeout\'].$error" ng-show="chatWebsiteFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/system/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.COMMAND">Command</label>\n <input type="text" name="command" ng-model="vm.system.command" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'command\'].$error" ng-show="chatWebsiteFormApp[\'command\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.COMMAND_REQUIRED">Command field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.system.variable" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables" ng-disabled="variable.canSelect === false">{{ variable.name }}</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'variable\'].$error" ng-show="chatWebsiteFormApp[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VARIABLE_REQUIRED">Variable field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/tag/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.TAG">Tag</label>\n <md-select name="tag" ng-model="vm.tag.tag" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags" ng-disabled="tag.canSelect === false">{{ tag.name }}</md-option>\n </md-select>\n <div ng-messages="chatWebsiteFormApp[\'tag\'].$error" ng-show="chatWebsiteFormApp[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TAG_REQUIRED">Tag field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/apps/tvox/dialog.html",'<md-dialog class="chatWebsite-dialog" aria-label="New ChatWebsite">\n <form name="chatWebsiteFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.SERVICEID">serviceid</label>\n <input type="text" name="serviceid" ng-model="vm.tvox.serviceid" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'serviceid\'].$error" ng-show="chatWebsiteFormApp[\'serviceid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SERVICEID_REQUIRED">serviceid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.CHANNELID">channelid</label>\n <input type="text" name="channelid" ng-model="vm.tvox.channelid" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'channelid\'].$error" ng-show="chatWebsiteFormApp[\'channelid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.CHANNELID_REQUIRED">channelid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.TVOXURL">tvoxurl</label>\n <input type="text" name="tvoxurl" ng-model="vm.tvox.tvoxurl" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'tvoxurl\'].$error" ng-show="chatWebsiteFormApp[\'tvoxurl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TVOXURL_REQUIRED">tvoxurl field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.TVOXLOGINURL">tvoxloginurl</label>\n <input type="text" name="tvoxloginurl" ng-model="vm.tvox.tvoxloginurl" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'tvoxloginurl\'].$error" ng-show="chatWebsiteFormApp[\'tvoxloginurl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TVOXLOGINURL_REQUIRED">tvoxloginurl field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.TVOXSESSIONURL">tvoxsessionurl</label>\n <input type="text" name="tvoxsessionurl" ng-model="vm.tvox.tvoxsessionurl" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'tvoxsessionurl\'].$error" ng-show="chatWebsiteFormApp[\'tvoxsessionurl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TVOXSESSIONURL_REQUIRED">tvoxsessionurl field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.TVOXUSERNAME">tvoxusername</label>\n <input type="text" name="tvoxusername" ng-model="vm.tvox.tvoxusername" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'tvoxusername\'].$error" ng-show="chatWebsiteFormApp[\'tvoxusername\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TVOXUSERNAME_REQUIRED">tvoxusername field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.TVOXPASSWD">tvoxpasswd</label>\n <input type="password" name="tvoxpasswd" ng-model="vm.tvox.tvoxpasswd" placeholder="Password" translate translate-attr-placeholder="CHAT.PASSWORD">\n <div ng-messages="chatWebsiteFormApp[\'tvoxpasswd\'].$error" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="CHAT.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="CHAT.MOTIONURLONRING">motionurlonring</label>\n <input type="text" name="motionurlonring" ng-model="vm.tvox.motionurlonring" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'motionurlonring\'].$error" ng-show="chatWebsiteFormApp[\'motionurlonring\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MOTIONURLONRING_REQUIRED">motionurlonring field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.MOTIONURLONANSWER">motionurlonanswer</label>\n <input type="text" name="motionurlonanswer" ng-model="vm.tvox.motionurlonanswer" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'motionurlonanswer\'].$error" ng-show="chatWebsiteFormApp[\'motionurlonanswer\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MOTIONURLONANSWER_REQUIRED">motionurlonanswer field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.MOTIONTITLE">motiontitle</label>\n <input type="text" name="motiontitle" ng-model="vm.tvox.motiontitle" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'motiontitle\'].$error" ng-show="chatWebsiteFormApp[\'motiontitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MOTIONTITLE_REQUIRED">motiontitle field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.MOTIONURL">motionurl</label>\n <input type="text" name="motionurl" ng-model="vm.tvox.motionurl" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="chatWebsiteFormApp[\'motionurl\'].$error" ng-show="chatWebsiteFormApp[\'motionurl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MOTIONURL_REQUIRED">motionurl field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveChatWebsiteApp()" class="send-button md-accent md-raised" ng-disabled="chatWebsiteFormApp.$invalid || chatWebsiteFormApp.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/chatCannedAnswers/dialog.html",'<md-dialog class="chatCannedAnswer-dialog" aria-label="New ChatCannedAnswer">\n <form name="chatCannedAnswerForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.KEY">Key</label>\n <input type="" name="key" ng-model="vm.chatCannedAnswer.key" md-maxlength="255" ng-required="true" autofocus>\n\n <div ng-messages="chatCannedAnswerForm[\'key\'].$error" ng-show="chatCannedAnswerForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.KEY_REQUIRED">Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.VALUE">Value</label>\n <textarea name="value" ng-model="vm.chatCannedAnswer.value" required></textarea>\n\n <div ng-messages="chatCannedAnswerForm[\'value\'].$error" ng-show="chatCannedAnswerForm[\'value\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.chatCannedAnswer.description">\n\n <div ng-messages="chatCannedAnswerForm[\'description\'].$error" ng-show="chatCannedAnswerForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newChatCannedAnswer" ng-click="vm.saveChatCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="chatCannedAnswerForm.$invalid || chatCannedAnswerForm.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newChatCannedAnswer" ng-click="vm.addNewChatCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="chatCannedAnswerForm.$invalid" aria-label="ADD" translate="CHAT.ADD_CHATCANNEDANSWER" translate-attr-aria-label="CHAT.ADD_CHATCANNEDANSWER">\n ADD CHATCANNEDANSWER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newChatCannedAnswer" ng-click="vm.deleteChatCannedAnswer($event)" aria-label="DELETE" translate translate-attr-aria-label="CHAT.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CHAT.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/offlineMessages/dialog.html",'<md-dialog class="offlineMessage-dialog" aria-label="New OfflineMessage">\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-content flex layout-padding>\n <pre ng-if="vm.isHtml">{{vm.message.body}}</pre>\n <div ng-if="!vm.isHtml" ng-bind-html-unsafe="vm.message.body"></div>\n\n <span ng-repeat="attachment in vm.attachments">\n <md-button class="md-icon-button no-margin no-padding" ng-click="vm.download(attachment)">\n <md-icon class="no-margin material-icons" aria-label="Attachment">attach_file</md-icon>\n </md-button>\n <span>{{attachment.name}}</span><br />\n </span>\n </md-content>\n\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/proactive/dialog.html",'<md-dialog class="chatProactiveAction-dialog" aria-label="New ChatProactiveAction">\n <form name="chatProactiveActionForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CHAT.NAME">Name</label>\n <input type="" name="name" ng-model="vm.chatProactiveAction.name" ng-required="true" autofocus>\n\n <div ng-messages="chatProactiveActionForm[\'name\'].$error" ng-show="chatProactiveActionForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.TYPE">Type</label>\n <md-select name="type" ng-model="vm.chatProactiveAction.type">\n\n <md-option ng-value="\'mouseOver\'"> {{ \'CHAT.MOUSEOVER\' | translate }} </md-option>\n\n <md-option ng-value="\'timeout\'"> {{ \'CHAT.TIMEOUT\' | translate }} </md-option>\n </md-select>\n <div ng-messages="chatProactiveActionForm[\'type\'].$error" ng-show="chatProactiveActionForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatProactiveAction.type === \'mouseOver\'" class="md-block">\n <label translate="CHAT.SELECTOR">Selector</label>\n <input type="" name="selector" ng-model="vm.chatProactiveAction.selector" ng-required="true">\n\n <div ng-messages="chatProactiveActionForm[\'selector\'].$error" ng-show="chatProactiveActionForm[\'selector\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SELECTOR_REQUIRED">Selector field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatProactiveAction.type === \'timeout\'" class="md-block">\n <label translate="CHAT.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.chatProactiveAction.timeout" min="1" ng-required="true">\n\n <div ng-messages="chatProactiveActionForm[\'timeout\'].$error" ng-show="chatProactiveActionForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newChatProactiveAction" ng-click="vm.saveChatProactiveAction()" class="send-button md-accent md-raised" ng-disabled="chatProactiveActionForm.$invalid || chatProactiveActionForm.$pristine" aria-label="SAVE" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newChatProactiveAction" ng-click="vm.addNewChatProactiveAction()" class="send-button md-accent md-raised" ng-disabled="chatProactiveActionForm.$invalid" aria-label="ADD" translate="CHAT.ADD_CHATPROACTIVEACTION" translate-attr-aria-label="CHAT.ADD_CHATPROACTIVEACTION">\n ADD CHATPROACTIVEACTION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newChatProactiveAction" ng-click="vm.deleteChatProactiveAction($event)" aria-label="DELETE" translate translate-attr-aria-label="CHAT.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CHAT.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/chat/views/chatWebsites/edit/view.html",'<div id="chat-chatWebsite" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-chatWebsites-button md-icon-button" aria-label="Go to chatWebsites" ng-click="vm.gotoChatWebsites()" translate translate-attr-aria-label="CHAT.GO_TO_CHATWEBSITES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="chatWebsite-image" hide-xs>\n <img ng-src="assets/images/business/chatWebsites.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.chatWebsite.id}}\n <span ng-if="vm.chatWebsite.name">{{vm.chatWebsite.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="CHAT.CREATED_AT"></span> <span>{{vm.chatWebsite.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.chatWebsite, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="CHAT.AGENTADD_CHATWEBSITE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveChatWebsite()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (scriptForm.$invalid) || (intervalForm.$invalid) || (dispositionForm.$invalid) || (appearanceForm.$invalid) || (onlinestatusForm.$invalid) || (offlinestatusForm.$invalid) || (closingformForm.$invalid) || (unmanagedstatusForm.$invalid) || (interactionForm.$invalid) || (whitelabelForm.$invalid) || (logoForm.$invalid) || (agentAvatarForm.$invalid) || (customerAvatarForm.$invalid) || (systemAvatarForm.$invalid) || (chatFormOnlineForm.$invalid) || (chatFormOfflineForm.$invalid) || (proactiveForm.$invalid) || (chatDispositionsForm.$invalid) || (chatCannedAnswersForm.$invalid) || (vidaooForm.$invalid) || (actionsForm.$invalid) || (interactionsForm.$invalid) || (offlineMessagesForm.$invalid)" translate="CHAT.SAVE" translate-attr-aria-label="CHAT.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CHAT.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.chatWebsite.name" ng-required="true" autofocus disabled>\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.KEY">key</label>\n <input type="text" name="key" ng-model="vm.chatWebsite.key" md-maxlength="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'key\'].$error" ng-show="generalForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.MOTIONADDRESS">MotionAddress</label>\n <input type="url" name="address" ng-model="vm.chatWebsite.address" md-maxlength="255" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'address\'].$error" ng-show="generalForm[\'address\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MOTIONADDRESS_REQUIRED">MotionAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="CHAT.ERRORS.MOTIONADDRESS_MUST_VALID_URL">MotionAddress must be a valid url http://www.xcally.com</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.MOTIONADDRESS_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionAddress must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.LIST">List</label>\n <md-select name="ListId" ng-model="vm.chatWebsite.ListId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="CHAT.HELP.LIST"></span></div>\n <div ng-messages="generalForm[\'ListId\'].$error" ng-show="generalForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.fidelity" class="md-block">\n <label translate="CHAT.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.chatWebsite.timeout" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'timeout\'].$error" ng-show="generalForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.WAITFORTHEASSIGNEDAGENT">WaitForTheAssignedAgent</label>\n <input type="number" name="waitForTheAssignedAgent" ng-model="vm.chatWebsite.waitForTheAssignedAgent" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'waitForTheAssignedAgent\'].$error" ng-show="generalForm[\'waitForTheAssignedAgent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.WAITFORTHEASSIGNEDAGENT_REQUIRED">WaitForTheAssignedAgent field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.chatWebsite.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container notification md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.NOTIFICATION">NOTIFICATION</div>\n </div>\n <form name="notificationForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.notificationSound" aria-label="notificationSound" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.NOTIFICATIONSOUND">notificationSound</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.notificationShake" aria-label="notificationShake" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.NOTIFICATIONSHAKE">notificationShake</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="CHAT.NOTIFICATIONTEMPLATE">notificationTemplate</label>\n <textarea aria-label="notificationTemplate notificationTemplate" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.chatWebsite.notificationTemplate"></textarea>\n </div>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container transfer md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.TRANSFER">TRANSFER</div>\n </div>\n <form name="transferForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.queueTransfer" aria-label="queueTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.QUEUETRANSFER">queueTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.queueTransfer == true" class="md-block">\n <label translate="CHAT.QUEUETRANSFERTIMEOUT">queueTransferTimeout</label>\n <input type="number" name="queueTransferTimeout" ng-model="vm.chatWebsite.queueTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'queueTransferTimeout\'].$error" ng-show="transferForm[\'queueTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.QUEUETRANSFERTIMEOUT_REQUIRED">queueTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.agentTransfer" aria-label="agentTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.AGENTTRANSFER">agentTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.agentTransfer == true" class="md-block">\n <label translate="CHAT.AGENTTRANSFERTIMEOUT">agentTransferTimeout</label>\n <input type="number" name="agentTransferTimeout" ng-model="vm.chatWebsite.agentTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'agentTransferTimeout\'].$error" ng-show="transferForm[\'agentTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.AGENTTRANSFERTIMEOUT_REQUIRED">agentTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container script md-background-bg md-whiteframe-1dp">\n <form name="scriptForm" flex="100" novalidate>\n <div ng-controller="ChatWebsiteScriptController as vm_ac" ng-init="vm_ac.init(vm.chatWebsite)" class="content" md-background-bg>\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.SCRIPT">SCRIPT</div>\n </div>\n\n\n <md-input-container class="md-block">\n <label translate="CHAT.TOKEN">Token</label>\n <input type="text" name="token" ng-model="vm_ac.chatWebsite.token" autofocus ng-disabled="true">\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.MOTIONPROXY">MotionProxy</label>\n <input type="url" name="remote" ng-model="vm_ac.chatWebsite.remote" required>\n <div class="hint"><span translate="CHAT.HELP.MOTIONPROXY"></span></div>\n <div ng-messages="scriptForm[\'remote\'].$error" ng-show="scriptForm[\'remote\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MOTIONPROXY_REQUIRED">Motion Proxy field is required</span>\n </div>\n <div ng-message="url">\n <span translate="CHAT.ERRORS.MOTIONPROXY_MUST_VALID_URL">Motion Proxy must be a valid url e.g.: http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.WEBSITESCRIPT">WebsiteScript</label>\n <div>\n <pre style="font-size: 13px;">\n {{vm_ac.start}} {{vm_ac.script}} {{vm_ac.end}}\n </pre>\n </div>\n <div class="hint"><span translate="CHAT.HELP.COPYSCRIPTTOCLIPBOARD"></span></div>\n </md-input-container>\n\n </div>\n </form>\n </div>\n <div class="chatWebsite-detail-form-container interval md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.INTERVAL">INTERVAL</div>\n </div>\n <form name="intervalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CHAT.INTERVAL">Interval</label>\n <md-select name="IntervalId" ng-model="vm.chatWebsite.IntervalId" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Always</md-option>\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval" ng-disabled="IntervalId.canSelect === false">{{ IntervalId.name }}</md-option>\n </md-select>\n <div ng-messages="intervalForm[\'IntervalId\'].$error" ng-show="intervalForm[\'IntervalId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.INTERVAL_REQUIRED">Interval field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.TIMEZONE">Timezone</label>\n <ms-timezone name="timezone" ng-model="vm.chatWebsite.timezone" ng-disabled="!vm.crudPermissions.canEdit"></ms-timezone>\n <div class="hint"><span translate="CHAT.HELP.TIMEZONE"></span></div>\n <div ng-messages="intervalForm[\'timezone\'].$error" ng-show="intervalForm[timezone].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TIMEZONE_REQUIRED">Timezone field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container disposition md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.DISPOSITION">DISPOSITION</div>\n </div>\n <form name="dispositionForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.mandatoryDisposition" class="md-block">\n <label translate="CHAT.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.chatWebsite.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="CHAT.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="dispositionForm[\'mandatoryDispositionPauseId\'].$error" ng-show="dispositionForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.SNIPPET">SNIPPET</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container appearance md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.APPEARANCE">APPEARANCE</div>\n </div>\n <form name="appearanceForm" novalidate>\n <div flex md-color-picker ng-model="vm.chatWebsite.color" label="{{\'CHAT.MAINCOLOR\' | translate}}" md-color-hex="true" md-color-rgb="false" md-color-hsl="false" md-color-history="false" md-color-material-palette="false" md-color-alpha-channel="false" open-on-input="true"></div>\n <div flex md-color-picker ng-model="vm.chatWebsite.color_button" label="{{\'CHAT.BUTTONCOLOR\' | translate}}" md-color-hex="true" md-color-rgb="false" md-color-hsl="false" md-color-history="false" md-color-material-palette="false" md-color-alpha-channel="false" open-on-input="true"></div>\n <div flex md-color-picker ng-model="vm.chatWebsite.textColor" label="{{\'CHAT.TEXTCOLOR\' | translate}}" md-color-hex="true" md-color-rgb="false" md-color-hsl="false" md-color-history="false" md-color-material-palette="false" md-color-alpha-channel="false" open-on-input="true"></div>\n <div flex md-color-picker ng-model="vm.chatWebsite.backgroundColor" label="{{\'CHAT.BACKGROUNDCOLOR\' | translate}}" md-color-hex="true" md-color-rgb="false" md-color-hsl="false" md-color-history="false" md-color-material-palette="false" md-color-alpha-channel="false" open-on-input="true"></div>\n <md-input-container class="md-block">\n <label translate="CHAT.FONTSIZE">fontSize</label>\n <input type="number" name="fontSize" ng-model="vm.chatWebsite.fontSize" min="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="appearanceForm[\'fontSize\'].$error" ng-show="appearanceForm[\'fontSize\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.FONTSIZE_REQUIRED">fontSize field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.FONTSIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">fontSize must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.HEADERSHAPE">headershape</label>\n <md-select name="header_shape" ng-model="vm.chatWebsite.header_shape" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'rounded\'"> {{ \'CHAT.ROUNDED\' | translate }} </md-option>\n\n <md-option ng-value="\'squared\'"> {{ \'CHAT.SQUARED\' | translate }} </md-option>\n </md-select>\n <div ng-messages="appearanceForm[\'header_shape\'].$error" ng-show="appearanceForm[\'header_shape\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.HEADERSHAPE_REQUIRED">headershape field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.showAgentAvatar" aria-label="ShowAgentAvatar" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.SHOWAGENTAVATAR">ShowAgentAvatar</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.showCustomerAvatar" aria-label="showCustomerAvatar" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.SHOWCUSTOMERAVATAR">showCustomerAvatar</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.SNIPPETSWIPEOUT">snippetSwipeOut</label>\n <md-select name="alignment" ng-model="vm.chatWebsite.alignment" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'bottom_right\'"> {{ \'CHAT.BOTTOM_RIGHT\' | translate }} </md-option>\n\n <md-option ng-value="\'right\'"> {{ \'CHAT.RIGHT\' | translate }} </md-option>\n\n <md-option ng-value="\'left\'"> {{ \'CHAT.LEFT\' | translate }} </md-option>\n </md-select>\n <div ng-messages="appearanceForm[\'alignment\'].$error" ng-show="appearanceForm[\'alignment\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SNIPPETSWIPEOUT_REQUIRED">snippetSwipeOut field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.alignment !== \'bottom_right\'" class="md-block">\n <label translate="CHAT.VERTICALPOSITION">verticalPosition</label>\n <input type="number" name="verticalAlignment" ng-model="vm.chatWebsite.verticalAlignment" min="0" max="100" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="CHAT.HELP.VERTICALPOSITION"></span></div>\n <div ng-messages="appearanceForm[\'verticalAlignment\'].$error" ng-show="appearanceForm[\'verticalAlignment\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VERTICALPOSITION_REQUIRED">verticalPosition field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.VERTICALPOSITION_MUST_BE_GREATER_THAN_OR_EQUAL_TO">verticalPosition must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.VERTICALPOSITION_MUST_BE_LESS_THAN_OR_EQUAL_TO">verticalPosition must be a valid greater or equal than</span> <span>100</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.MESSAGESALIGNMENT">messagesAlignment</label>\n <md-select name="messagesAlignment" ng-model="vm.chatWebsite.messagesAlignment" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'alternate\'"> {{ \'CHAT.ALTERNATE\' | translate }} </md-option>\n\n <md-option ng-value="\'centered\'"> {{ \'CHAT.CENTERED\' | translate }} </md-option>\n </md-select>\n <div ng-messages="appearanceForm[\'messagesAlignment\'].$error" ng-show="appearanceForm[\'messagesAlignment\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MESSAGESALIGNMENT_REQUIRED">messagesAlignment field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.DEFAULTTITLE">defaultTitle</label>\n <input type="text" name="defaultTitle" ng-model="vm.chatWebsite.defaultTitle" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="appearanceForm[\'defaultTitle\'].$error" ng-show="appearanceForm[\'defaultTitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.DEFAULTTITLE_REQUIRED">defaultTitle field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.DEFAULTTITLE_MAX_LENGTH" translate-values=\'{max: 255}\'>defaultTitle must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container onlinestatus md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.ONLINESTATUS">ONLINESTATUS</div>\n </div>\n <form name="onlinestatusForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CHAT.HEADER_ONLINE">header_online</label>\n <input type="text" name="header_online" ng-model="vm.chatWebsite.header_online" md-maxlength="255" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="onlinestatusForm[\'header_online\'].$error" ng-show="onlinestatusForm[\'header_online\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.HEADER_ONLINE_REQUIRED">header_online field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.HEADER_ONLINE_MAX_LENGTH" translate-values=\'{max: 255}\'>header_online must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.START_CHAT_BUTTON">start_chat_button</label>\n <input type="text" name="start_chat_button" ng-model="vm.chatWebsite.start_chat_button" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="onlinestatusForm[\'start_chat_button\'].$error" ng-show="onlinestatusForm[\'start_chat_button\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.START_CHAT_BUTTON_REQUIRED">start_chat_button field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.START_CHAT_BUTTON_MAX_LENGTH" translate-values=\'{max: 255}\'>start_chat_button must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container offlinestatus md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.OFFLINESTATUS">OFFLINESTATUS</div>\n </div>\n <form name="offlinestatusForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.hideWhenOffline" aria-label="hideWhenOffline" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.HIDEWHENOFFLINE">hideWhenOffline</span></md-switch>\n <div class="hint"><span translate="CHAT.HELP.HIDEWHENOFFLINE"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.HEADER_OFFLINE">header_offline</label>\n <input type="text" name="header_offline" ng-model="vm.chatWebsite.header_offline" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="offlinestatusForm[\'header_offline\'].$error" ng-show="offlinestatusForm[\'header_offline\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.HEADER_OFFLINE_REQUIRED">header_offline field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.HEADER_OFFLINE_MAX_LENGTH" translate-values=\'{max: 255}\'>header_offline must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.OFFLINE_CHAT_BUTTON">offline_chat_button</label>\n <input type="text" name="offline_chat_button" ng-model="vm.chatWebsite.offline_chat_button" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="offlinestatusForm[\'offline_chat_button\'].$error" ng-show="offlinestatusForm[\'offline_chat_button\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.OFFLINE_CHAT_BUTTON_REQUIRED">offline_chat_button field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.OFFLINE_CHAT_BUTTON_MAX_LENGTH" translate-values=\'{max: 255}\'>offline_chat_button must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.OFFLINEMESSAGESUBJECT">offlineMessageSubject</label>\n <input type="text" name="offlineMessageSubject" ng-model="vm.chatWebsite.offlineMessageSubject" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="offlinestatusForm[\'offlineMessageSubject\'].$error" ng-show="offlinestatusForm[\'offlineMessageSubject\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.OFFLINEMESSAGESUBJECT_REQUIRED">offlineMessageSubject field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.OFFLINEMESSAGESUBJECT_MAX_LENGTH" translate-values=\'{max: 255}\'>offlineMessageSubject must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.OFFLINEMESSAGEBODY">offlineMessageBody</label>\n <input type="text" name="offlineMessageBody" ng-model="vm.chatWebsite.offlineMessageBody" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="offlinestatusForm[\'offlineMessageBody\'].$error" ng-show="offlinestatusForm[\'offlineMessageBody\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.OFFLINEMESSAGEBODY_REQUIRED">offlineMessageBody field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.OFFLINEMESSAGEBODY_MAX_LENGTH" translate-values=\'{max: 255}\'>offlineMessageBody must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container closingform md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.CLOSINGFORM">CLOSINGFORM</div>\n </div>\n <form name="closingformForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CHAT.CLOSINGMESSAGE">closingMessage</label>\n <textarea name="closingMessage" ng-model="vm.chatWebsite.closingMessage" md-maxlength="255" required autofocus></textarea>\n\n <div ng-messages="closingformForm[\'closingMessage\'].$error" ng-show="closingformForm[\'closingMessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.CLOSINGMESSAGE_REQUIRED">closingMessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.CLOSINGMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>closingMessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.SKIPMESSAGEBUTTON">skipMessageButton</label>\n <input type="text" name="skipMessageButton" ng-model="vm.chatWebsite.skipMessageButton" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="closingformForm[\'skipMessageButton\'].$error" ng-show="closingformForm[\'skipMessageButton\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SKIPMESSAGEBUTTON_REQUIRED">skipMessageButton field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.SKIPMESSAGEBUTTON_MAX_LENGTH" translate-values=\'{max: 255}\'>skipMessageButton must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableRating" aria-label="enableRating" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.ENABLERATING">enableRating</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.enableRating" class="md-block">\n <label translate="CHAT.RATINGTYPE">ratingType</label>\n <md-select name="ratingType" ng-model="vm.chatWebsite.ratingType" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'star\'">Star</md-option>\n <md-option ng-value="\'thumb\'">Thumb</md-option>\n </md-select>\n <div ng-messages="closingformForm[\'ratingType\'].$error" ng-show="closingformForm[\'ratingType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.RATINGTYPE_REQUIRED">ratingType field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.enableRating && vm.chatWebsite.ratingType === \'star\'" class="md-block">\n <label translate="CHAT.RATINGSTARSNUMBER">ratingStarsNumber</label>\n <input type="number" name="ratingStarsNumber" ng-model="vm.chatWebsite.ratingStarsNumber" min="2" max="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="closingformForm[\'ratingStarsNumber\'].$error" ng-show="closingformForm[\'ratingStarsNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.RATINGSTARSNUMBER_REQUIRED">ratingStarsNumber field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.RATINGSTARSNUMBER_MUST_BE_GREATER_THAN_OR_EQUAL_TO">ratingStarsNumber must be a valid greater or equal than</span> <span>2</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.RATINGSTARSNUMBER_MUST_BE_LESS_THAN_OR_EQUAL_TO">ratingStarsNumber must be a valid greater or equal than</span> <span>5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableFeedback" aria-label="enableFeedback" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.ENABLEFEEDBACK">enableFeedback</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.enableFeedback" class="md-block">\n <label translate="CHAT.FEEDBACKTITLE">feedbackTitle</label>\n <input type="text" name="feedbackTitle" ng-model="vm.chatWebsite.feedbackTitle" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="closingformForm[\'feedbackTitle\'].$error" ng-show="closingformForm[\'feedbackTitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.FEEDBACKTITLE_REQUIRED">feedbackTitle field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.FEEDBACKTITLE_MAX_LENGTH" translate-values=\'{max: 255}\'>feedbackTitle must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.forwardTranscript" aria-label="forwardTranscript" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.FORWARDTRANSCRIPT">forwardTranscript</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.forwardTranscript" class="md-block">\n <label translate="CHAT.FORWARDTRANSCRIPTMESSAGE">forwardTranscriptMessage</label>\n <input type="text" name="forwardTranscriptMessage" ng-model="vm.chatWebsite.forwardTranscriptMessage" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="closingformForm[\'forwardTranscriptMessage\'].$error" ng-show="closingformForm[\'forwardTranscriptMessage\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.FORWARDTRANSCRIPTMESSAGE_REQUIRED">forwardTranscriptMessage field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.FORWARDTRANSCRIPTMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>forwardTranscriptMessage must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.CLOSINGMESSAGEBUTTON">closingMessageButton</label>\n <input type="text" name="closingMessageButton" ng-model="vm.chatWebsite.closingMessageButton" md-maxlength="255" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="closingformForm[\'closingMessageButton\'].$error" ng-show="closingformForm[\'closingMessageButton\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.CLOSINGMESSAGEBUTTON_REQUIRED">closingMessageButton field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.CLOSINGMESSAGEBUTTON_MAX_LENGTH" translate-values=\'{max: 255}\'>closingMessageButton must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container unmanagedstatus md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.UNMANAGEDSTATUS">UNMANAGEDSTATUS</div>\n </div>\n <form name="unmanagedstatusForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.autoclose" aria-label="autoclose" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.AUTOCLOSE">autoclose</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableUnmanagedNote" aria-label="enableUnmanagedNote" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.ENABLEUNMANAGEDNOTE">enableUnmanagedNote</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.UNMANAGEDMESSAGE">unmanagedMessage</label>\n <input type="text" name="unmanagedMessage" ng-model="vm.chatWebsite.unmanagedMessage" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="unmanagedstatusForm[\'unmanagedMessage\'].$error" ng-show="unmanagedstatusForm[\'unmanagedMessage\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.UNMANAGEDMESSAGE_REQUIRED">unmanagedMessage field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.UNMANAGEDMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>unmanagedMessage must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.SKIPUNMANAGED">skipUnmanaged</label>\n <input type="text" name="skipUnmanaged" ng-model="vm.chatWebsite.skipUnmanaged" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="unmanagedstatusForm[\'skipUnmanaged\'].$error" ng-show="unmanagedstatusForm[\'skipUnmanaged\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SKIPUNMANAGED_REQUIRED">skipUnmanaged field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.SKIPUNMANAGED_MAX_LENGTH" translate-values=\'{max: 255}\'>skipUnmanaged must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.enableUnmanagedNote" class="md-block">\n <label translate="CHAT.SENDUNMANAGED">sendUnmanaged</label>\n <input type="text" name="sendUnmanaged" ng-model="vm.chatWebsite.sendUnmanaged" md-maxlength="255" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="unmanagedstatusForm[\'sendUnmanaged\'].$error" ng-show="unmanagedstatusForm[\'sendUnmanaged\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SENDUNMANAGED_REQUIRED">sendUnmanaged field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.SENDUNMANAGED_MAX_LENGTH" translate-values=\'{max: 255}\'>sendUnmanaged must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.enableUnmanagedNote" class="md-block">\n <label translate="CHAT.NOTETITLE">noteTitle</label>\n <input type="text" name="noteTitle" ng-model="vm.chatWebsite.noteTitle" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="unmanagedstatusForm[\'noteTitle\'].$error" ng-show="unmanagedstatusForm[\'noteTitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.NOTETITLE_REQUIRED">noteTitle field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.NOTETITLE_MAX_LENGTH" translate-values=\'{max: 255}\'>noteTitle must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="chatWebsite-detail-form-container interaction md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.INTERACTION">INTERACTION</div>\n </div>\n <form name="interactionForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CHAT.AGENTIDENTIFIER">agentIdentifier</label>\n <md-select name="agentIdentifier" ng-model="vm.chatWebsite.agentIdentifier" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'website_alias\'"> {{ \'CHAT.WEBSITEALIAS\' | translate }} </md-option>\n\n <md-option ng-value="\'agent_alias\'"> {{ \'CHAT.AGENTALIAS\' | translate }} </md-option>\n\n <md-option ng-value="\'agent_fullname\'"> {{ \'CHAT.AGENTFULLNAME\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="CHAT.HELP.AGENTIDENTIFIER"></span></div>\n <div ng-messages="interactionForm[\'agentIdentifier\'].$error" ng-show="interactionForm[\'agentIdentifier\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.AGENTIDENTIFIER_REQUIRED">agentIdentifier field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.CUSTOMERALIAS">customerAlias</label>\n <input type="text" name="customerAlias" ng-model="vm.chatWebsite.customerAlias" md-maxlength="255" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="interactionForm[\'customerAlias\'].$error" ng-show="interactionForm[\'customerAlias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.CUSTOMERALIAS_REQUIRED">customerAlias field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.CUSTOMERALIAS_MAX_LENGTH" translate-values=\'{max: 255}\'>customerAlias must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.MESSAGEFONTSIZE">messageFontSize</label>\n <input type="number" name="messageFontSize" ng-model="vm.chatWebsite.messageFontSize" min="0" max="20" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="interactionForm[\'messageFontSize\'].$error" ng-show="interactionForm[\'messageFontSize\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.MESSAGEFONTSIZE_REQUIRED">messageFontSize field is required</span>\n </div>\n <div ng-message="min">\n <span translate="CHAT.ERRORS.MESSAGEFONTSIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">messageFontSize must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="CHAT.ERRORS.MESSAGEFONTSIZE_MUST_BE_LESS_THAN_OR_EQUAL_TO">messageFontSize must be a valid greater or equal than</span> <span>20</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.agentIdentifier === \'website_alias\'" class="md-block">\n <label translate="CHAT.WEBSITEALIAS">WebsiteAlias</label>\n <input type="text" name="agentAlias" ng-model="vm.chatWebsite.agentAlias" md-maxlength="255" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="CHAT.HELP.WEBSITEALIAS"></span></div>\n <div ng-messages="interactionForm[\'agentAlias\'].$error" ng-show="interactionForm[\'agentAlias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.WEBSITEALIAS_REQUIRED">WebsiteAlias field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WEBSITEALIAS_MAX_LENGTH" translate-values=\'{max: 255}\'>WebsiteAlias must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.CLOSINGQUESTION">closingQuestion</label>\n <input type="text" name="closingQuestion" ng-model="vm.chatWebsite.closingQuestion" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="interactionForm[\'closingQuestion\'].$error" ng-show="interactionForm[\'closingQuestion\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.CLOSINGQUESTION_REQUIRED">closingQuestion field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.CLOSINGQUESTION_MAX_LENGTH" translate-values=\'{max: 255}\'>closingQuestion must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.FORMSUBMITSUCCESSMESSAGE">formSubmitSuccessMessage</label>\n <input type="text" name="formSubmitSuccessMessage" ng-model="vm.chatWebsite.formSubmitSuccessMessage" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="interactionForm[\'formSubmitSuccessMessage\'].$error" ng-show="interactionForm[\'formSubmitSuccessMessage\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.FORMSUBMITSUCCESSMESSAGE_REQUIRED">formSubmitSuccessMessage field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.FORMSUBMITSUCCESSMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>formSubmitSuccessMessage must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.FORMSUBMITFAILUREMESSAGE">formSubmitFailureMessage</label>\n <input type="text" name="formSubmitFailureMessage" ng-model="vm.chatWebsite.formSubmitFailureMessage" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="interactionForm[\'formSubmitFailureMessage\'].$error" ng-show="interactionForm[\'formSubmitFailureMessage\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.FORMSUBMITFAILUREMESSAGE_REQUIRED">formSubmitFailureMessage field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.FORMSUBMITFAILUREMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>formSubmitFailureMessage must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableCustomerWriting" aria-label="enableCustomerWriting" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.ENABLECUSTOMERWRITING">enableCustomerWriting</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.chatWebsite.enableCustomerWriting" class="md-block">\n <label translate="CHAT.WAITINGTITLE">waitingTitle</label>\n <input type="text" name="waitingTitle" ng-model="vm.chatWebsite.waitingTitle" md-maxlength="255" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="interactionForm[\'waitingTitle\'].$error" ng-show="interactionForm[\'waitingTitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.WAITINGTITLE_REQUIRED">waitingTitle field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WAITINGTITLE_MAX_LENGTH" translate-values=\'{max: 255}\'>waitingTitle must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="!vm.chatWebsite.enableCustomerWriting" class="md-block">\n <label translate="CHAT.WAITINGMESSAGE">waitingMessage</label>\n <textarea name="waitingMessage" ng-model="vm.chatWebsite.waitingMessage" md-maxlength="255" required></textarea>\n\n <div ng-messages="interactionForm[\'waitingMessage\'].$error" ng-show="interactionForm[\'waitingMessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.WAITINGMESSAGE_REQUIRED">waitingMessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WAITINGMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>waitingMessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.PLACEHOLDERMESSAGE">placeholderMessage</label>\n <input type="text" name="placeholderMessage" ng-model="vm.chatWebsite.placeholderMessage" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="interactionForm[\'placeholderMessage\'].$error" ng-show="interactionForm[\'placeholderMessage\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.PLACEHOLDERMESSAGE_REQUIRED">placeholderMessage field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.PLACEHOLDERMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>placeholderMessage must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.download_transcript" aria-label="downloadTranscript" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.DOWNLOADTRANSCRIPT">downloadTranscript</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableCustomerAttachment" aria-label="enableCustomerAttachment" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.ENABLECUSTOMERATTACHMENT">enableCustomerAttachment</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableSendButton" aria-label="enableSendButton" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.ENABLESENDBUTTON">enableSendButton</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.enableCustomerCheckmarks" aria-label="enableCustomerCheckmarks" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.ENABLECUSTOMERCHECKMARKS">enableCustomerCheckmarks</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CHAT.SYSTEMALIAS">systemAlias</label>\n <input type="text" name="systemAlias" ng-model="vm.chatWebsite.systemAlias" md-maxlength="255" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="interactionForm[\'systemAlias\'].$error" ng-show="interactionForm[\'systemAlias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.SYSTEMALIAS_REQUIRED">systemAlias field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.SYSTEMALIAS_MAX_LENGTH" translate-values=\'{max: 255}\'>systemAlias must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div ng-if="vm.license.custom" class="chatWebsite-detail-form-container whitelabel md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.WHITELABEL">WHITELABEL</div>\n </div>\n <form name="whitelabelForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.defaultWhiteLabel" aria-label="default" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.DEFAULT">default</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.chatWebsite.defaultWhiteLabel" class="md-block">\n <label translate="CHAT.WHITELABEL">whiteLabel</label>\n <textarea name="whiteLabel" ng-model="vm.chatWebsite.whiteLabel" md-maxlength="255" required></textarea>\n\n <div ng-messages="whitelabelForm[\'whiteLabel\'].$error" ng-show="whitelabelForm[\'whiteLabel\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="CHAT.ERRORS.WHITELABEL_REQUIRED">whiteLabel field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="CHAT.ERRORS.WHITELABEL_MAX_LENGTH" translate-values=\'{max: 255}\'>whiteLabel must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div ng-if="vm.license.custom" class="chatWebsite-detail-form-container logo md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.LOGO">LOGO</div>\n </div>\n <div ng-controller="ChatWebsitelogoController as vm_ca" ng-init="vm_ca.init(vm.chatWebsite, vm.crudPermissions)" class="chatWebsite-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="chatWebsite-image-uploader" flow-init="vm_ca.ngFlowOptions" flow-name="vm_ca.ngFlow.flow" flow-files-submitted="vm_ca.upload()" flow-file-added="vm_ca.fileAdded($file)" flow-file-success="vm_ca.fileSuccess($file, $message)" flow-complete="vm_ca.uploadComplete()" flow-drop flow-drag-enter="vm_ca.dropping=true" flow-drag-leave="vm_ca.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn ng-disabled="!vm_ca.crudPermissions.canEdit">\n Upload\n </md-button>\n <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG - Max. 8MB</span>\n </div>\n\n <div layout="row" layout-align="start start" layout-wrap>\n <div ng-repeat="logoimage in vm_ca.chatWebsite.images" ng-switch="logoimage.type">\n <div class="chatWebsite-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n <div class="overlay" layout="column" layout-align="center center">\n <md-progress-linear md-mode="determinate" value="{{logoimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="logoimage.file">\n </div>\n\n <div class="chatWebsite-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{logoimage.url}}">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n <div class="chatWebsite-detail-form-container agentavatar md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.AGENTAVATAR">AGENTAVATAR</div>\n </div>\n <div ng-controller="ChatWebsiteagentAvatarController as vm_ca" ng-init="vm_ca.init(vm.chatWebsite, vm.crudPermissions)" class="chatWebsite-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="chatWebsite-image-uploader" flow-init="vm_ca.ngFlowOptions" flow-name="vm_ca.ngFlow.flow" flow-files-submitted="vm_ca.upload()" flow-file-added="vm_ca.fileAdded($file)" flow-file-success="vm_ca.fileSuccess($file, $message)" flow-complete="vm_ca.uploadComplete()" flow-drop flow-drag-enter="vm_ca.dropping=true" flow-drag-leave="vm_ca.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn ng-disabled="!vm_ca.crudPermissions.canEdit">\n Upload\n </md-button>\n <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG - Max. 8MB</span>\n </div>\n\n <div layout="row" layout-align="start start" layout-wrap>\n <div ng-repeat="agentAvatarimage in vm_ca.chatWebsite.images" ng-switch="agentAvatarimage.type">\n <div class="chatWebsite-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n <div class="overlay" layout="column" layout-align="center center">\n <md-progress-linear md-mode="determinate" value="{{agentAvatarimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="agentAvatarimage.file">\n </div>\n\n <div class="chatWebsite-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{agentAvatarimage.url}}">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n <div class="chatWebsite-detail-form-container customeravatar md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.CUSTOMERAVATAR">CUSTOMERAVATAR</div>\n </div>\n <div ng-controller="ChatWebsitecustomerAvatarController as vm_ca" ng-init="vm_ca.init(vm.chatWebsite, vm.crudPermissions)" class="chatWebsite-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="chatWebsite-image-uploader" flow-init="vm_ca.ngFlowOptions" flow-name="vm_ca.ngFlow.flow" flow-files-submitted="vm_ca.upload()" flow-file-added="vm_ca.fileAdded($file)" flow-file-success="vm_ca.fileSuccess($file, $message)" flow-complete="vm_ca.uploadComplete()" flow-drop flow-drag-enter="vm_ca.dropping=true" flow-drag-leave="vm_ca.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn ng-disabled="!vm_ca.crudPermissions.canEdit">\n Upload\n </md-button>\n <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG - Max. 8MB</span>\n </div>\n\n <div layout="row" layout-align="start start" layout-wrap>\n <div ng-repeat="customerAvatarimage in vm_ca.chatWebsite.images" ng-switch="customerAvatarimage.type">\n <div class="chatWebsite-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n <div class="overlay" layout="column" layout-align="center center">\n <md-progress-linear md-mode="determinate" value="{{customerAvatarimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="customerAvatarimage.file">\n </div>\n\n <div class="chatWebsite-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{customerAvatarimage.url}}">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n <div class="chatWebsite-detail-form-container systemavatar md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.SYSTEMAVATAR">SYSTEMAVATAR</div>\n </div>\n <div ng-controller="ChatWebsitesystemAvatarController as vm_ca" ng-init="vm_ca.init(vm.chatWebsite, vm.crudPermissions)" class="chatWebsite-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="chatWebsite-image-uploader" flow-init="vm_ca.ngFlowOptions" flow-name="vm_ca.ngFlow.flow" flow-files-submitted="vm_ca.upload()" flow-file-added="vm_ca.fileAdded($file)" flow-file-success="vm_ca.fileSuccess($file, $message)" flow-complete="vm_ca.uploadComplete()" flow-drop flow-drag-enter="vm_ca.dropping=true" flow-drag-leave="vm_ca.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn ng-disabled="!vm_ca.crudPermissions.canEdit">\n Upload\n </md-button>\n <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG - Max. 8MB</span>\n </div>\n\n <div layout="row" layout-align="start start" layout-wrap>\n <div ng-repeat="systemAvatarimage in vm_ca.chatWebsite.images" ng-switch="systemAvatarimage.type">\n <div class="chatWebsite-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n <div class="overlay" layout="column" layout-align="center center">\n <md-progress-linear md-mode="determinate" value="{{systemAvatarimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="systemAvatarimage.file">\n </div>\n\n <div class="chatWebsite-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{systemAvatarimage.url}}">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.ONLINE">ONLINE</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container chatformonline md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteonlineFormController as vm_fonc" ng-init="vm_fonc.init(vm.chatWebsite)" class="content" md-background-bg layout="column">\n <div flex>\n \x3c!-- START Buttons --\x3e\n <md-button aria-label="comment" class="md-fab md-mini" ng-click="vm_fonc.add(button.type)" ng-repeat="button in vm_fonc.buttons">\n <md-tooltip md-direction="top">{{button.name}}</md-tooltip>\n <md-icon md-font-icon="{{button.icon}}"></md-icon>\n </md-button>\n \x3c!-- END Buttons --\x3e\n </div>\n\n <div layout="row" flex>\n <div flex="50">\n <md-card>\n <md-card-title>\n <md-card-title-text>\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.BUILDER">BUILDER</div>\n </div>\n </md-card-title-text>\n </md-card-title>\n <md-card-content>\n\n <form name="onlineForm" novalidate>\n\n \x3c!-- START MapKey --\x3e\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.onlineForm.items.length">\n <label translate="CHAT.HELP.MAPKEY">MapKey</label>\n <md-select ng-model="vm_fonc.chatWebsite.mapKey">\n <md-option ng-value="null">None</md-option>\n\n <md-optgroup label="standard">\n <md-option ng-repeat="field in vm_fonc.fields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n\n <md-optgroup label="custom" ng-if="vm_fonc.customFields.length">\n <md-option ng-repeat="field in vm_fonc.customFields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n </md-select>\n </md-input-container>\n \x3c!-- END MapKey --\x3e\n\n \x3c!-- START FromKey --\x3e\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.onlineForm.items.length">\n <label translate="CHAT.HELP.FROMKEY">FromKey</label>\n <md-select ng-model="vm_fonc.chatWebsite.onlineForm.fromKey" md-selected-text="vm_fonc.chatWebsite.onlineForm.fromKey != null ? vm_fonc.chatWebsite.onlineForm.items[vm_fonc.chatWebsite.onlineForm.fromKey].props.title : \'None\'">\n <md-option ng-value="null">None</md-option>\n <md-option ng-repeat="item in vm_fonc.chatWebsite.onlineForm.items" ng-if="item.props.title" ng-value="$index">{{ item.props.title }}</md-option>\n </md-select>\n </md-input-container>\n \x3c!-- END FromKey --\x3e\n\n \x3c!-- START EXPANSION PANELS --\x3e\n <md-expansion-panel ng-repeat="item in vm_fonc.chatWebsite.onlineForm.items track by $index" md-component-id="{{\'onlinePanel\' + $index}}">\n <md-expansion-panel-collapsed md-no-sticky="true">\n <md-button class="md-icon-button" aria-label="Down" ng-click="vm_fonc.down(item, $index); $event.stopPropagation()">\n <md-icon md-font-icon="icon-arrow-down-bold-circle-outline"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Up" ng-click="vm_fonc.up(item, $index); $event.stopPropagation()">\n <md-icon md-font-icon="icon-arrow-up-bold-circle-outline"></md-icon>\n </md-button>\n\n <div class="md-title">{{item.props.title || item.type}}</div>\n\n <div flex></div>\n <md-button class="md-icon-button" aria-label="Collapse" ng-click="$panel.collapse()">\n <md-icon md-font-icon="icon-chevron-down"></md-icon>\n </md-button>\n </md-expansion-panel-collapsed>\n\n <md-expansion-panel-expanded>\n <md-expansion-panel-header>\n <md-button class="md-icon-button" aria-label="Down" ng-click="vm_fonc.down(item, $index)">\n <md-icon md-font-icon="icon-arrow-down-bold-circle-outline"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Up" ng-click="vm_fonc.up(item, $index)">\n <md-icon md-font-icon="icon-arrow-up-bold-circle-outline"></md-icon>\n </md-button>\n\n <div class="md-title">{{item.props.title || item.type}}</div>\n\n <div flex></div>\n\n <md-button class="md-icon-button md-warn" aria-label="Remove" ng-click="vm_fonc.remove($index)">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Collapse" ng-click="$panel.collapse()">\n <md-icon md-font-icon="icon-chevron-up"></md-icon>\n </md-button>\n </md-expansion-panel-header>\n\n <md-expansion-panel-content>\n <form-item type="{{item.type}}" item="item" index="$index"></form-item>\n\n <md-input-container class="md-block">\n <label translate="CHAT.VARIABLE">Variable</label>\n <md-select ng-model="item.variable">\n <md-option ng-value="null">None</md-option>\n <md-option ng-repeat="variable in vm_fonc.variables" ng-value="variable.name">{{ variable.name }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="CHAT.CM_FIELD">Contact Manager Field</label>\n <md-select ng-model="item.cmField">\n <md-option ng-value="null">None</md-option>\n\n <md-optgroup label="standard">\n <md-option ng-repeat="field in vm_fonc.fields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n\n <md-optgroup label="custom" ng-if="vm_fonc.customFields.length">\n <md-option ng-repeat="field in vm_fonc.customFields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n </md-select>\n </md-input-container>\n </md-expansion-panel-content>\n\n </md-expansion-panel-expanded>\n </md-expansion-panel>\n \x3c!-- END EXPANSION PANELS --\x3e\n </form>\n </md-card-content>\n </md-card>\n </div>\n <div flex="50">\n <md-card>\n <md-card-title>\n <md-card-title-text>\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.PREVIEW">PREVIEW</div>\n </div>\n </md-card-title-text>\n </md-card-title>\n <md-card-content flex>\n <form-view form="vm_fonc.chatWebsite.onlineForm" flex="100"></form-view>\n </md-card-content>\n </md-card>\n </div>\n </div>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.OFFLINE">OFFLINE</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container chatformoffline md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteofflineFormController as vm_fonc" ng-init="vm_fonc.init(vm.chatWebsite)" class="content" md-background-bg layout="column">\n <div flex>\n \x3c!-- START Buttons --\x3e\n <md-button aria-label="comment" class="md-fab md-mini" ng-click="vm_fonc.add(button.type)" ng-repeat="button in vm_fonc.buttons">\n <md-tooltip md-direction="top">{{button.name}}</md-tooltip>\n <md-icon md-font-icon="{{button.icon}}"></md-icon>\n </md-button>\n \x3c!-- END Buttons --\x3e\n </div>\n\n <div layout="row" flex>\n <div flex="50">\n <md-card>\n <md-card-title>\n <md-card-title-text>\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.BUILDER">BUILDER</div>\n </div>\n </md-card-title-text>\n </md-card-title>\n <md-card-content>\n\n <form name="offlineForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm_fonc.chatWebsite.forwardOffline" aria-label="forwardOffline"><span translate="CHAT.FORWARD_OFFLINE">forwardOffline</span></md-switch>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.forwardOffline">\n <label translate="CHAT.FORWARD_OFFLINE_ADDRESS">FORWARD OFFLINE ADDRESS</label>\n <input type="text" name="forwardOfflineAddress" ng-model="vm_fonc.chatWebsite.forwardOfflineAddress">\n <div class="hint"><span translate="CHAT.HELP.FORWARD_OFFLINE"></span></div>\n <div ng-messages="offlineForm[\'forwardOfflineAddress\'].$error" ng-show="offlineForm[\'forwardOfflineAddress\'].$touched" role="alert">\n <div ng-message="email">\n <span translate="CHAT.ERRORS.EMAIL_MUST_BE_VALID">forwardOffline must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <md-switch ng-model="vm_fonc.chatWebsite.openNewInteraction" aria-label="openNewInteraction">\n <span translate="CHAT.OPEN_NEW_INTERACTION">openNewInteraction</span>\n </md-switch>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.openNewInteraction">\n <label translate="CHAT.EMAIL_ACCOUNT">Email account</label>\n <md-select ng-model="vm_fonc.chatWebsite.MailAccountId" required>\n <md-option ng-repeat="account in vm_fonc.email_accounts" ng-value="account.id">{{ account.name }}</md-option>\n </md-select>\n <div ng-messages="offlineForm[\'MailAccountId\'].$error" ng-show="offlineForm[\'MailAccountId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.EMAIL_ACCOUNT_REQUIRED">Email account field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.openNewInteraction && vm_fonc.chatWebsite.offlineForm.items.length">\n <label translate="CHAT.SUBJECT">Subject</label>\n <md-select ng-model="vm_fonc.chatWebsite.subjectOffline" md-selected-text="vm_fonc.chatWebsite.subjectOffline != null ? vm_fonc.chatWebsite.subjectOffline : \'None\'">\n <md-option ng-value="null">None</md-option>\n <md-option ng-repeat="item in vm_fonc.chatWebsite.offlineForm.items" ng-if="item.props.title" ng-value="item.props.title">{{ item.props.title }}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!-- START MapKey --\x3e\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.offlineForm.items.length">\n <label translate="CHAT.HELP.MAPKEY">MapKey</label>\n <md-select ng-model="vm_fonc.chatWebsite.mapKeyOffline">\n <md-option ng-value="null">None</md-option>\n\n <md-optgroup label="standard">\n <md-option ng-repeat="field in vm_fonc.fields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n\n <md-optgroup label="custom" ng-if="vm_fonc.customFields.length">\n <md-option ng-repeat="field in vm_fonc.customFields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n </md-select>\n </md-input-container>\n \x3c!-- END MapKey --\x3e\n\n \x3c!-- START FromKey --\x3e\n <md-input-container class="md-block" ng-if="vm_fonc.chatWebsite.offlineForm.items.length">\n <label translate="CHAT.HELP.FROMKEY">FromKey</label>\n <md-select ng-model="vm_fonc.chatWebsite.offlineForm.fromKey" md-selected-text="vm_fonc.chatWebsite.offlineForm.fromKey != null ? vm_fonc.chatWebsite.offlineForm.items[vm_fonc.chatWebsite.offlineForm.fromKey].props.title : \'None\'">\n <md-option ng-value="null">None</md-option>\n <md-option ng-repeat="item in vm_fonc.chatWebsite.offlineForm.items" ng-if="item.props.title" ng-value="$index">{{ item.props.title }}</md-option>\n </md-select>\n </md-input-container>\n \x3c!-- END FromKey --\x3e\n\n \x3c!-- START EXPANSION PANELS --\x3e\n <md-expansion-panel ng-repeat="item in vm_fonc.chatWebsite.offlineForm.items track by $index" md-component-id="{{\'offlinePanel\' + $index}}">\n <md-expansion-panel-collapsed md-no-sticky="true">\n <md-button class="md-icon-button" aria-label="Down" ng-click="vm_fonc.down(item, $index); $event.stopPropagation()">\n <md-icon md-font-icon="icon-arrow-down-bold-circle-outline"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Up" ng-click="vm_fonc.up(item, $index); $event.stopPropagation()">\n <md-icon md-font-icon="icon-arrow-up-bold-circle-outline"></md-icon>\n </md-button>\n\n <div class="md-title">{{item.props.title || item.type}}</div>\n\n <div flex></div>\n <md-button class="md-icon-button" aria-label="Collapse" ng-click="$panel.collapse()">\n <md-icon md-font-icon="icon-chevron-down"></md-icon>\n </md-button>\n </md-expansion-panel-collapsed>\n\n <md-expansion-panel-expanded>\n <md-expansion-panel-header>\n <md-button class="md-icon-button" aria-label="Down" ng-click="vm_fonc.down(item, $index)">\n <md-icon md-font-icon="icon-arrow-down-bold-circle-outline"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Up" ng-click="vm_fonc.up(item, $index)">\n <md-icon md-font-icon="icon-arrow-up-bold-circle-outline"></md-icon>\n </md-button>\n\n <div class="md-title">{{item.props.title || item.type}}</div>\n\n <div flex></div>\n\n <md-button class="md-icon-button md-warn" aria-label="Remove" ng-click="vm_fonc.remove($index)">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n <md-button class="md-icon-button" aria-label="Collapse" ng-click="$panel.collapse()">\n <md-icon md-font-icon="icon-chevron-up"></md-icon>\n </md-button>\n </md-expansion-panel-header>\n\n <md-expansion-panel-content>\n <form-item type="{{item.type}}" item="item" index="$index"></form-item>\n\n\n <md-input-container class="md-block" ng-if="item.type != \'upload\'">\n <label translate="CHAT.CM_FIELD">Contact Manager Field</label>\n <md-select ng-model="item.cmField">\n <md-option ng-value="null">None</md-option>\n\n <md-optgroup label="standard">\n <md-option ng-repeat="field in vm_fonc.fields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n\n <md-optgroup label="custom" ng-if="vm_fonc.customFields.length">\n <md-option ng-repeat="field in vm_fonc.customFields" ng-value="field.key">{{ field.value }}</md-option>\n </md-optgroup>\n </md-select>\n </md-input-container>\n </md-expansion-panel-content>\n\n </md-expansion-panel-expanded>\n </md-expansion-panel>\n \x3c!-- END EXPANSION PANELS --\x3e\n </form>\n </md-card-content>\n </md-card>\n </div>\n <div flex="50">\n <md-card>\n <md-card-title>\n <md-card-title-text>\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.PREVIEW">PREVIEW</div>\n </div>\n </md-card-title-text>\n </md-card-title>\n <md-card-content flex>\n <form-view form="vm_fonc.chatWebsite.offlineForm" flex="100"></form-view>\n </md-card-content>\n </md-card>\n </div>\n </div>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.PROACTIVEACTIONS">PROACTIVEACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container proactive md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteProactiveActionsController as vm_dc" ng-init="vm_dc.init(vm.chatWebsite, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedChatWebsiteProactiveActions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CHAT.PROACTIVEACTIONS">ProactiveActions</span>\n <ms-search-bar on-search="vm_dc.getChatWebsiteProactiveActions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event)" aria-label="add chatProactiveAction" translate translate-attr-label="CHAT.ADD_CHATPROACTIVEACTION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedChatWebsiteProactiveActions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedChatWebsiteProactiveActions.length}} {{vm_dc.selectedChatWebsiteProactiveActions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedChatWebsiteProactiveActions" csv-label="true" filename="chatWebsites.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedChatWebsiteProactiveActions($event)" aria-label="delete selected" translate translate-attr-label="CHAT.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedChatWebsiteProactiveActions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getChatWebsiteProactiveActions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'CHAT.ID\' | translate }}\n </th>\n <th md-column md-order-by="name">\n {{ \'CHAT.NAME\' | translate }}\n </th>\n <th md-column md-order-by="type">\n {{ \'CHAT.TYPE\' | translate }}\n </th>\n <th md-column md-order-by="selector">\n {{ \'CHAT.SELECTOR\' | translate }}\n </th>\n <th md-column md-order-by="timeout">\n {{ \'CHAT.TIMEOUT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'CHAT.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="chatProactiveAction" md-select-id="id" ng-repeat="chatProactiveAction in vm_dc.chatWebsiteProactiveActions.rows">\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>\n {{chatProactiveAction.id}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>\n {{chatProactiveAction.name}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>\n {{ \'CHAT.\' + vm_dc.arraytype[chatProactiveAction.type].option | uppercase | translate }}\n </td>\n\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>\n {{chatProactiveAction.selector}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>\n {{chatProactiveAction.timeout}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" md-cell>\n {{ chatProactiveAction.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CHAT.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditChatWebsiteChatProactiveAction($event, chatProactiveAction)" translate="CHAT.EDIT_CHATPROACTIVEACTION">\n Edit ChatProactiveAction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(chatProactiveAction, $event)" translate="CHAT.DELETE_CHATPROACTIVEACTION">\n Delete ChatProactiveAction\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.chatWebsiteProactiveActions.rows.length">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="CHAT.NO_CHATPROACTIVEACTION_AVAILABLE">No chatproactiveaction available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.chatWebsiteProactiveActions.count}}" md-on-paginate="vm_dc.getChatWebsiteProactiveActions" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.DISPOSITIONS">DISPOSITIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div ng-controller="ChatWebsiteDispositionsController as vm_dc" ng-init="vm_dc.init(vm.chatWebsite, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="chatWebsite-detail-form-container chatdispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedChatWebsiteDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CHAT.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add chat dispositions" translate translate-attr-label="CHAT.ADD_DISPOSITION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" csv-label="true" filename="chatWebsites.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="CHAT.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_dc.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'CHAT.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'CHAT.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'CHAT.DESCRIPTION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="CHAT.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CHAT.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(disposition, $event)" translate="TOOLS.DELETE_DISPOSITION">\n Delete Disposition\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.CANNEDANSWERS">CANNEDANSWERS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container chatcannedanswers md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteChatCannedAnswersController as vm_dc" ng-init="vm_dc.init(vm.chatWebsite, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedChatWebsiteChatCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CHAT.CHATCANNEDANSWERS">ChatCannedAnswers</span>\n <ms-search-bar on-search="vm_dc.getChatWebsiteChatCannedAnswers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event)" aria-label="add chatCannedAnswer" translate translate-attr-label="CHAT.ADD_CHATCANNEDANSWER">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedChatWebsiteChatCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedChatWebsiteChatCannedAnswers.length}} {{vm_dc.selectedChatWebsiteChatCannedAnswers.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedChatWebsiteChatCannedAnswers" csv-label="true" filename="chatWebsites.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedChatWebsiteChatCannedAnswers($event)" aria-label="delete selected" translate translate-attr-label="CHAT.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedChatWebsiteChatCannedAnswers" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getChatWebsiteChatCannedAnswers">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'CHAT.ID\' | translate }}\n </th>\n <th md-column md-order-by="key">\n {{ \'CHAT.KEY\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'CHAT.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="description">\n {{ \'CHAT.DESCRIPTION\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'CHAT.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="chatCannedAnswer" md-select-id="id" ng-repeat="chatCannedAnswer in vm_dc.chatWebsiteChatCannedAnswers.rows">\n <td ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" md-cell>\n {{chatCannedAnswer.id}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" md-cell>\n {{chatCannedAnswer.key}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" md-cell>\n {{chatCannedAnswer.value}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" md-cell>\n {{chatCannedAnswer.description}}\n </td>\n <td ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" md-cell>\n {{ chatCannedAnswer.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CHAT.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditChatWebsiteChatCannedAnswer($event, chatCannedAnswer)" translate="CHAT.EDIT_CHATCANNEDANSWER">\n Edit ChatCannedAnswer\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(chatCannedAnswer, $event)" translate="CHAT.DELETE_CHATCANNEDANSWER">\n Delete ChatCannedAnswer\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.chatWebsiteChatCannedAnswers.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="CHAT.NO_CHATCANNEDANSWER_AVAILABLE">No chatcannedanswer available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.chatWebsiteChatCannedAnswers.count}}" md-on-paginate="vm_dc.getChatWebsiteChatCannedAnswers" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.VIDEO">VIDEO</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container vidaoo md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CHAT.VIDAOO">VIDAOO</div>\n </div>\n <form name="vidaooForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chatWebsite.vidaooEscalation" aria-label="vidaooEscalation" ng-disabled="!vm.crudPermissions.canEdit"><span translate="CHAT.VIDAOOESCALATION">vidaooEscalation</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.vidaooEscalation == true" class="md-block">\n <label translate="CHAT.VIDAOOAPIKEY">vidaooApiKey</label>\n <input type="text" name="vidaooApiKey" ng-model="vm.chatWebsite.vidaooApiKey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="vidaooForm[\'vidaooApiKey\'].$error" ng-show="vidaooForm[\'vidaooApiKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VIDAOOAPIKEY_REQUIRED">vidaooApiKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.vidaooEscalation == true" class="md-block">\n <label translate="CHAT.VIDAOOTOPIC">vidaooTopic</label>\n <input type="text" name="vidaooTopic" ng-model="vm.chatWebsite.vidaooTopic" value="Generated by XCALLY Motion" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="vidaooForm[\'vidaooTopic\'].$error" ng-show="vidaooForm[\'vidaooTopic\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VIDAOOTOPIC_REQUIRED">vidaooTopic field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.vidaooEscalation == true" class="md-block">\n <label translate="CHAT.VIDAOONOTE">vidaooNote</label>\n <input type="text" name="vidaooNote" ng-model="vm.chatWebsite.vidaooNote" value="Meeting generated for interaction #{{interaction.id}} by {{agent.name}}" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="vidaooForm[\'vidaooNote\'].$error" ng-show="vidaooForm[\'vidaooNote\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.VIDAOONOTE_REQUIRED">vidaooNote field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.chatWebsite.vidaooEscalation == true" class="md-block">\n <label translate="CHAT.VIDAOOMETADATA">vidaooMetadata</label>\n <textarea name="vidaooMetadata" ng-model="vm.chatWebsite.vidaooMetadata"></textarea>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container actions md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteActionsController as vm_ac" ng-init="vm_ac.init(vm.chatWebsite, vm.crudPermissions)" class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- SIDENAV --\x3e\n <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20" ng-if="vm_ac.crudPermissions.canEdit">\n \x3c!-- SIDENAV CONTENT --\x3e\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\n Applications List\n </span>\n </md-subheader>\n </md-list>\n <md-divider></md-divider>\n <md-list ng-sortable="vm_ac.list">\n <md-list-item class="handle" ng-repeat="a in vm_ac.apps">\n <md-icon md-font-icon="{{a.icon}}" class="s16"></md-icon>\n <p class="text-truncate" translate="CHAT.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias || a.appType}}</p>\n </md-list-item>\n </md-list>\n \x3c!-- / SIDENAV CONTENT --\x3e\n </div>\n \x3c!-- / SIDENAV --\x3e\n <div flex></div>\n \x3c!-- MAIN --\x3e\n <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="{{vm_ac.crudPermissions.canEdit ? 75 : 100}}">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_ac.selectedChatWebsiteApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Drag & Drop Routing</span>\n <div flex></div>\n <ms-search-bar on-search="vm_ac.query.filter = query" on-collapse="vm_ac.query.filter = undefined" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_ac.selectedChatWebsiteApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_ac.selectedChatWebsiteApps.length}} {{vm_ac.selectedChatWebsiteApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_ac.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_ac.deleteSelectedChatWebsiteApps($event)" aria-label="delete selected" translate translate-attr-label="CHAT.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n \x3c!-- QUEUES TABLE --\x3e\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_ac.selectedChatWebsiteApps">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column width="10px">\n <span translate="VOICE.PRIORITY">Priority</span>\n </th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </th>\n <th md-column width="10px"></th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body ng-sortable="vm_ac.applications">\n <tr md-row md-select="app" md-select-id="id" ng-repeat="app in vm_ac.chatWebsiteApps.rows | filter: vm_ac.query.filter">\n <td md-cell>\n <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n </td>\n <td md-cell ng-click="vm_ac.editChatWebsiteApp($event, $index)"><span>{{app.priority}}</span></td>\n <td md-cell ng-click="vm_ac.editChatWebsiteApp($event, $index)">{{app.app.toLowerCase() === \'agi\' ? \'Cally-Square\' : app.app | ucfirst}}<span ng-if="app.appType.toLowerCase() === \'custom\'">*</span></td>\n <td md-cell ng-click="vm_ac.editChatWebsiteApp($event, $index)"><span class="text-truncate actionAppData">{{app.appdata}}</span></td>\n <td md-cell ng-click="vm_ac.editInterval($event, $index)">{{app.IntervalId ? \'From List\' : app.interval}}</td>\n <td md-cell>\n <md-button ng-click="vm_ac.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n <md-icon md-font-icon="icon-timer"></md-icon>\n <md-tooltip>\n {{app.IntervalId ? \'From List\' : (app.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n </md-tooltip>\n </md-button>\n </td>\n <td md-cell class="actions" ng-if="!vm_ac.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editChatWebsiteApp($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canDelete">\n <md-button ng-click="vm_ac.deleteConfirm(app, $index, $event)" translate="VOICE.DELETE_APP">\n Delete App\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-hide="vm_ac.chatWebsiteApps.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n \x3c!-- / QUEUES TABLE --\x3e\n\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.INTERACTIONS">INTERACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container interactions md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteInteractionsController as vm_dc" ng-init="vm_dc.init(vm.chatWebsite, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedChatWebsiteInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CHAT.INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm_dc.getChatWebsiteInteractions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_dc.quickFilters" query="vm_dc.query" search="vm_dc.getChatWebsiteInteractions()"></ms-quick-filter>\n <div layout="column">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini md-accent-bg\': vm_dc.query.search }" aria-label="Filter" translate translate-attr-aria-label="DASHBOARDS.FILTER" ng-click="vm_dc.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm_dc.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'blink\': vm_dc.query.search }"></md-icon>\n </md-button>\n </div>\n <md-button class="md-icon-button" ng-click="vm_dc.getChatWebsiteInteractions()" aria-label="refresh Interactions" translate translate-attr-label="CHAT.REFRESH_INTERACTIONS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedChatWebsiteInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedChatWebsiteInteractions.length}} {{vm_dc.selectedChatWebsiteInteractions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedChatWebsiteInteractions" csv-label="true" filename="chatWebsites.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedChatWebsiteInteractions($event)" aria-label="delete selected" translate translate-attr-label="CHAT.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedChatWebsiteInteractions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getChatWebsiteInteractions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'CHAT.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column md-order-by="contactName">\n {{ \'CHAT.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'CHAT.STARTEDAT\' | translate }}\n </th>\n <th md-column md-order-by="lastMsgAt">\n {{ \'CHAT.LASTMESSAGE\' | translate }}\n </th>\n <th md-column md-order-by="closed">\n {{ \'CHAT.STATUS\' | translate }}\n </th>\n <th md-column>\n {{ \'CHAT.AGENT\' | translate }}\n </th>\n <th md-column md-order-by="tag">\n {{ \'CHAT.TAGS\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="interaction" md-select-id="id" ng-repeat="interaction in vm_dc.chatWebsiteInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td md-cell>\n {{interaction.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="user in interaction.Users">{{ user.fullname | translate }}\n <span ng-if="!$last">, </span>\n </span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg md-primary-bg" layout-margin>{{ interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.attach">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'margin-bottom-0\' : interaction.contactInfo}" layout-margin>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text margin-top-0" layout-margin>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td md-cell>\n {{ interaction.createdAt | formatdate }}\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}"></md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="text-truncate">{{ interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n </td>\n <td md-cell>\n <span ng-if="interaction.closed === 0" class="green-fg">\n {{ \'CHAT.OPENED\' | translate }}\n <span ng-if="interaction.substatus">\n - {{ interaction.substatus }}\n </span>\n </span>\n <span ng-if="interaction.closed === 1" class="red-fg">\n {{ \'CHAT.CLOSED\' | translate }}\n <span ng-if="interaction.disposition">\n - {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}\n </span>\n <md-tooltip class="multiline">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n </span>\n </td>\n\n <td md-cell>\n {{interaction.Owner.name}}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CHAT.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm_dc.spychatInteraction($event, interaction)" translate="CHAT.SPYINTERACTION">\n Spy Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || (vm_dc.userProfile.downloadOmnichannelInteractions && vm_dc.userProfile.downloadAttachments)">\n <md-button class="md-primary" ng-click="vm_dc.chatInteractionDownload(interaction, $event, true)" translate="CHAT.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || vm_dc.userProfile.downloadOmnichannelInteractions">\n <md-button class="md-primary" ng-click="vm_dc.chatInteractionDownload(interaction, $event)" translate="CHAT.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(interaction, $event)" translate="CHAT.DELETE_INTERACTION">\n Delete Interaction\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.chatWebsiteInteractions.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="CHAT.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.chatWebsiteInteractions.count}}" md-on-paginate="vm_dc.getChatWebsiteInteractions" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.OFFLINEMESSAGES">OFFLINEMESSAGES</span>\n </md-tab-label>\n <md-tab-body>\n <div class="chatWebsite-detail-form-container offlinemessages md-background-bg md-whiteframe-1dp">\n <div ng-controller="ChatWebsiteOfflineMessagesController as vm_dc" ng-init="vm_dc.init(vm.chatWebsite, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedChatWebsiteOfflineMessages.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CHAT.OFFLINEMESSAGES">OfflineMessages</span>\n <ms-search-bar on-search="vm_dc.getChatWebsiteOfflineMessages()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedChatWebsiteOfflineMessages.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedChatWebsiteOfflineMessages.length}} {{vm_dc.selectedChatWebsiteOfflineMessages.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedChatWebsiteOfflineMessages" csv-label="true" filename="chatWebsites.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedChatWebsiteOfflineMessages($event)" aria-label="delete selected" translate translate-attr-label="CHAT.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedChatWebsiteOfflineMessages" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getChatWebsiteOfflineMessages">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'CHAT.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column>\n {{ \'CHAT.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'CHAT.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="offlineMessage" md-select-id="id" ng-repeat="offlineMessage in vm_dc.chatWebsiteOfflineMessages.rows">\n <td md-cell>\n {{offlineMessage.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="offlineMessage.Attachments.length > 0">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n {{offlineMessage.Contact.firstName}}\n </td>\n <td md-cell>\n {{ offlineMessage.createdAt | formatdate }}\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CHAT.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm_dc.showOfflineMessageChatWebsiteOfflineMessage($event, offlineMessage)" translate="CHAT.SHOW_OFFLINEMESSAGE">\n SHOW OfflineMessage\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(offlineMessage, $event)" translate="CHAT.DELETE_OFFLINEMESSAGE">\n Delete OfflineMessage\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.chatWebsiteOfflineMessages.rows.length">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="CHAT.NO_OFFLINEMESSAGE_AVAILABLE">No offlinemessage available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.chatWebsiteOfflineMessages.count}}" md-on-paginate="vm_dc.getChatWebsiteOfflineMessages" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/chat/views/realtime/queues/view.html",'<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CHAT.QUEUES">Queues</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'CHAT.NAME\' | translate }}</th>\n <th md-column>{{ \'CHAT.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'CHAT.PAUSED\' | translate }}</th>\n <th md-column>{{ \'CHAT.WAITING\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.queues.count > 0">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="CHAT.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="queue" md-select-id="id" ng-repeat="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedIn }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CHAT.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="CHAT.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" translate="CHAT.AGENTSADD_QUEUE">\n Add Agents to queue\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'CHAT.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CHAT.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CHAT.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),e.put("app/main/apps/chat/views/realtime/realtime.html",'<div id="realtime" class="page-layout simple tabbed" layout="column" ng-cloak>\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CHAT.QUEUES">Queues</span>\n </md-tab-label>\n </md-tab>\n </md-tabs>\n\n <md-card ui-view></md-card>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/contactmanager/views/companies/companies.html",'<div id="companies" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-account-circle" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="CONTACTMANAGER.COMPANIES">Companies</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="CONTACTMANAGER.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedCompanies.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedCompanies =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="CONTACTMANAGER.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-companies-count">\n <span>{{vm.selectedCompanies.length}}</span>\n <span translate="CONTACTMANAGER.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CONTACTMANAGER.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllCompanies()" translate="CONTACTMANAGER.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectCompanies()" translate="CONTACTMANAGER.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedCompanies" csv-label="true" filename="companies.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedCompanies($event)" aria-label="delete selected" translate translate-attr-label="CONTACTMANAGER.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- COMPANY TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedCompanies" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getCompanies">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'CONTACTMANAGER.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'CONTACTMANAGER.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.companies.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="company" md-select-id="id" ng-repeat="company in vm.companies.rows">\n <td md-cell ng-if="company.userpic"><img class="avatar" alt="{{company.name}}" ng-src="api/users/{{company.id}}/avatar" /></td>\n <td md-cell ng-if="!company.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{company.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(company, ev) : vm.createOrEditCompany($event, company)" md-cell class="id ">{{company.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(company, ev) : vm.createOrEditCompany($event, company)" md-cell class="name ">{{company.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(company, ev) : vm.createOrEditCompany($event, company)" md-cell class="description ">{{company.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CONTACTMANAGER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(company, $event )" translate="CONTACTMANAGER.EDIT_COMPANY">\n Edit Company\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotocontactsgoto(company, $event )" translate="CONTACTMANAGER.GOTOCONTACTS_COMPANY">\n goToContacts Company\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(company, $event )" translate="CONTACTMANAGER.DELETE_COMPANY">\n Delete Company\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.companies.count}}" md-on-paginate="vm.getCompanies" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / COMPANY TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD COMPANY BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-company-button" ng-click="vm.createOrEditCompany($event)" aria-label="add company" translate translate-attr-aria-label="CONTACTMANAGER.ADD_COMPANY">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD COMPANY BUTTON --\x3e\n</div>'),e.put("app/main/apps/contactmanager/views/companies/create/dialog.html",'<md-dialog class="company-dialog" aria-label="New Company">\n <form name="companyForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.company.name" ng-required="true" autofocus>\n\n <div ng-messages="companyForm[\'name\'].$error" ng-show="companyForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.company.phone">\n\n <div ng-messages="companyForm[\'phone\'].$error" ng-show="companyForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.VAT">Vat</label>\n <input type="text" name="vat" ng-model="vm.company.vat">\n\n <div ng-messages="companyForm[\'vat\'].$error" ng-show="companyForm[\'vat\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.VAT_REQUIRED">Vat field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.FAX">Fax</label>\n <input type="text" name="fax" ng-model="vm.company.fax">\n\n <div ng-messages="companyForm[\'fax\'].$error" ng-show="companyForm[\'fax\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.FAX_REQUIRED">Fax field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.COMPANYID">CompanyId</label>\n <input type="text" name="companyId" ng-model="vm.company.companyId">\n\n <div ng-messages="companyForm[\'companyId\'].$error" ng-show="companyForm[\'companyId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.COMPANYID_REQUIRED">CompanyId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.TYPE">Type</label>\n <input type="text" name="type" ng-model="vm.company.type">\n\n <div ng-messages="companyForm[\'type\'].$error" ng-show="companyForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.WEBSITE">Website</label>\n <input type="text" name="website" ng-model="vm.company.website" md-maxlength="255">\n\n <div ng-messages="companyForm[\'website\'].$error" ng-show="companyForm[\'website\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.WEBSITE_REQUIRED">Website field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CONTACTMANAGER.ERRORS.WEBSITE_MAX_LENGTH" translate-values=\'{max: 255}\'>Website must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.EMAIL_DOMAIN">Email_Domain</label>\n <input type="text" name="emailDomain" ng-model="vm.company.emailDomain">\n\n <div ng-messages="companyForm[\'emailDomain\'].$error" ng-show="companyForm[\'emailDomain\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.EMAIL_DOMAIN_REQUIRED">Email_Domain field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.company.email">\n\n <div ng-messages="companyForm[\'email\'].$error" ng-show="companyForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="CONTACTMANAGER.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.company.description">\n\n <div ng-messages="companyForm[\'description\'].$error" ng-show="companyForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newCompany" ng-click="vm.saveCompany()" class="send-button md-accent md-raised" ng-disabled="companyForm.$invalid || companyForm.$pristine" aria-label="SAVE" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newCompany" ng-click="vm.addNewCompany()" class="send-button md-accent md-raised" ng-disabled="companyForm.$invalid" aria-label="ADD" translate="CONTACTMANAGER.ADD_COMPANY" translate-attr-aria-label="CONTACTMANAGER.ADD_COMPANY">\n ADD COMPANY\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newCompany" ng-click="vm.deleteCompany($event)" aria-label="DELETE" translate translate-attr-aria-label="CONTACTMANAGER.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/companies/edit/view.html",'<div id="contactmanager-company" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-companies-button md-icon-button" aria-label="Go to companies" ng-click="vm.gotoCompanies()" translate translate-attr-aria-label="CONTACTMANAGER.GO_TO_COMPANIES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="company-image" hide-xs>\n <img ng-src="assets/images/business/companies.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.company.id}}\n <span ng-if="vm.company.name">{{vm.company.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="CONTACTMANAGER.CREATED_AT"></span> <span>{{vm.company.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.company, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="CONTACTMANAGER.GOTO_COMPANY"></span></md-tooltip>\n <md-icon md-font-icon="icon-forward"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveCompany()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (addressForm.$invalid) || (shipmentAddressForm.$invalid)" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="CONTACTMANAGER.GENERAL">GENERAL</span>\n </md-tab-label>\n <md-tab-body>\n <div class="company-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CONTACTMANAGER.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.company.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.company.phone" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'phone\'].$error" ng-show="generalForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.VAT">Vat</label>\n <input type="text" name="vat" ng-model="vm.company.vat" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'vat\'].$error" ng-show="generalForm[\'vat\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.VAT_REQUIRED">Vat field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.FAX">Fax</label>\n <input type="text" name="fax" ng-model="vm.company.fax" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'fax\'].$error" ng-show="generalForm[\'fax\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.FAX_REQUIRED">Fax field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.COMPANYID">CompanyId</label>\n <input type="text" name="companyId" ng-model="vm.company.companyId" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'companyId\'].$error" ng-show="generalForm[\'companyId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.COMPANYID_REQUIRED">CompanyId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.TYPE">Type</label>\n <input type="text" name="type" ng-model="vm.company.type" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'type\'].$error" ng-show="generalForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.WEBSITE">Website</label>\n <input type="text" name="website" ng-model="vm.company.website" md-maxlength="255" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'website\'].$error" ng-show="generalForm[\'website\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.WEBSITE_REQUIRED">Website field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="CONTACTMANAGER.ERRORS.WEBSITE_MAX_LENGTH" translate-values=\'{max: 255}\'>Website must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.EMAIL_DOMAIN">Email_Domain</label>\n <input type="text" name="emailDomain" ng-model="vm.company.emailDomain" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'emailDomain\'].$error" ng-show="generalForm[\'emailDomain\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.EMAIL_DOMAIN_REQUIRED">Email_Domain field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.company.email" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'email\'].$error" ng-show="generalForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="CONTACTMANAGER.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.company.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CONTACTMANAGER.ADDRESS">ADDRESS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="company-detail-form-container address md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CONTACTMANAGER.ADDRESS">ADDRESS</div>\n </div>\n <form name="addressForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.STREET">Street</label>\n <input type="text" name="street" ng-model="vm.company.street" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="addressForm[\'street\'].$error" ng-show="addressForm[\'street\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.STREET_REQUIRED">Street field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.POSTAL_CODE">Postal_Code</label>\n <input type="text" name="postalCode" ng-model="vm.company.postalCode" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="addressForm[\'postalCode\'].$error" ng-show="addressForm[\'postalCode\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.POSTAL_CODE_REQUIRED">Postal_Code field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.CITY">City</label>\n <input type="text" name="city" ng-model="vm.company.city" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="addressForm[\'city\'].$error" ng-show="addressForm[\'city\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.CITY_REQUIRED">City field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.COUNTRY">Country</label>\n <input type="text" name="country" ng-model="vm.company.country" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="addressForm[\'country\'].$error" ng-show="addressForm[\'country\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.COUNTRY_REQUIRED">Country field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CONTACTMANAGER.SHIPMENTADDRESS">SHIPMENTADDRESS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="company-detail-form-container shipmentaddress md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CONTACTMANAGER.SHIPMENTADDRESS">SHIPMENTADDRESS</div>\n </div>\n <form name="shipmentAddressForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.STREET">Street</label>\n <input type="text" name="sStreet" ng-model="vm.company.sStreet" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="shipmentAddressForm[\'sStreet\'].$error" ng-show="shipmentAddressForm[\'sStreet\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.STREET_REQUIRED">Street field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.POSTAL_CODE">Postal_Code</label>\n <input type="text" name="sPostalCode" ng-model="vm.company.sPostalCode" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="shipmentAddressForm[\'sPostalCode\'].$error" ng-show="shipmentAddressForm[\'sPostalCode\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.POSTAL_CODE_REQUIRED">Postal_Code field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.CITY">City</label>\n <input type="text" name="sCity" ng-model="vm.company.sCity" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="shipmentAddressForm[\'sCity\'].$error" ng-show="shipmentAddressForm[\'sCity\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.CITY_REQUIRED">City field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.COUNTRY">Country</label>\n <input type="text" name="sCountry" ng-model="vm.company.sCountry" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="shipmentAddressForm[\'sCountry\'].$error" ng-show="shipmentAddressForm[\'sCountry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.COUNTRY_REQUIRED">Country field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/contactmanager/views/contacts/contacts.html",'<div id="contacts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-account-multiple" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="CONTACTMANAGER.CONTACTS">Contacts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="CONTACTMANAGER.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedContacts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n <div class="close-button-wrapper" ng-click="vm.selectedContacts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="CONTACTMANAGER.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n <div>\n <span class="selected-contacts-count">\n <span>{{vm.selectedContacts.length}}</span>\n <span translate="CONTACTMANAGER.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CONTACTS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllContacts()" translate="CONTACTMANAGER.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectContacts()" translate="CONTACTMANAGER.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedContacts" csv-label="true" filename="contacts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm.crudPermissions.canDelete" class="md-icon-button" ng-click="vm.deleteSelectedContacts($event)" aria-label="delete selected" translate translate-attr-label="CONTACTS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n <div layout="row">\n <div class="column" flex="20">\n <md-card>\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm.selectedList = null; vm.selectedCompany = null; vm.selectedTags = []">\n <md-icon md-font-icon="icon-refresh"></md-icon>{{ \'CONTACTMANAGER.ALL_CONTACTS\' | translate }}\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.SELECT_LIST">Select a list</label>\n <md-select placeholder="Select a list" ng-model="vm.selectedList" ng-disabled="vm.lists.count === 0">\n <md-option ng-value="null"><em translate="CONTACTMANAGER.ALL">All</em></md-option>\n <md-option ng-value="list.id" ng-repeat="list in vm.lists.rows">{{list.name}}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.SELECT_COMPANY">Select a company</label>\n <md-select placeholder="Select a company" flex="100" ng-model="vm.selectedCompany" ng-disabled="vm.companies.count === 0">\n <md-option ng-value="null"><em translate="CONTACTMANAGER.ALL">All</em></md-option>\n <md-option ng-value="company.id" ng-repeat="company in vm.companies.rows">{{company.name}}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.SELECT_TAGS">Select one or more tags</label>\n <md-select multiple placeholder="Select one or more tags" flex="100" ng-model="vm.query.tag" ng-change="vm.getContacts()">\n <md-option ng-value="tag.id" ng-repeat="tag in vm.tags.rows">{{tag.name}}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n\n \x3c!-- USER TABLE --\x3e\n <md-card flex="80">\n <md-table-container ng-init="vm.getAssignedCompanies()">\n <table md-table md-row-select multiple ng-model="vm.selectedContacts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getContacts">\n <tr md-row>\n <th md-column md-order-by="id">ID</th>\n <th md-column md-order-by="firstName">{{\'CONTACTMANAGER.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="phone">{{\'CONTACTMANAGER.PHONE\' | translate}}</th>\n <th md-column md-order-by="email">{{\'CONTACTMANAGER.EMAIL\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'CONTACTMANAGER.CREATED_AT\' | translate}}</th>\n <th md-column md-order-by="ListId">{{\'CONTACTMANAGER.LIST\' | translate}}</th>\n <th md-column md-order-by="CompanyId">{{\'CONTACTMANAGER.COMPANY\' | translate}}</th>\n <th md-column md-order-by="tags">{{\'CONTACTMANAGER.TAGS\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.contacts.rows.length">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span translate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="contact" md-select-id="id" ng-repeat="contact in vm.contacts.rows">\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="id">{{contact.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="firstName" privacy ng-cloak>{{contact.firstName}} {{contact.lastName}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="phone" privacy ng-cloak>{{contact.phone}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="email" privacy ng-cloak>{{contact.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="createdAt">{{contact.createdAt | date:\'medium\'}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="list">{{vm.listsMap[contact.ListId]}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editdialog(contact, ev) : vm.createOrEditContact($event, contact)" md-cell class="company">{{vm.companiesMap[contact.CompanyId]}}</td>\n <td md-cell class="tag">\n <div ng-if="contact.Tags.length">\n <div ng-if="contact.Tags.length == 1" layout="column" layout-align="center center">\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': contact.Tags[0].color }"></md-icon>\n <span class="text-truncate">{{contact.Tags[0].name}}</span>\n </div>\n <div ng-if="contact.Tags.length > 1" layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in contact.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag"></md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CONTACTMANAGER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editdialog(contact, ev)" translate="CONTACTMANAGER.EDIT_CONTACT">\n Edit Contact\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.mergeContact(ev, contact)" translate="CONTACTMANAGER.MERGE_CONTACT">\n Merge Contact\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.duplicateContact(ev, contact)" translate="CONTACTMANAGER.DUPLICATE_CONTACT">\n Duplicate Contact\n </md-button>\n </md-menu-item>\n <md-menu-divider ng-if="vm.crudPermissions.canEdit && vm.crudPermissions.canDelete">\n </md-menu-divider>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteconfirm(contact, ev)" translate="CONTACTMANAGER.DELETE_CONTACT">\n Delete Contact\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.contacts.count}}" md-on-paginate="vm.getContacts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / USER TABLE --\x3e\n </div>\n </div>\n \x3c!-- / MAIN --\x3e\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD USER BUTTON --\x3e\n <md-fab-speed-dial id="add-contact-button" ng-if="vm.crudPermissions.canEdit" ng-hide="vm.options.hidden" md-direction="up" md-open="vm.options.isOpen" class="md-scale md-fab" ng-class="{ \'md-hover-full\': vm.options.hover }" ng-mouseenter="vm.options.isOpen=true" ng-mouseleave="vm.options.isOpen=false">\n <md-fab-trigger>\n <md-button aria-label="menu" class="md-fab md-accent">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </md-fab-trigger>\n <md-fab-actions>\n <md-button class="md-fab md-mini md-warn" flow-btn flow-init="vm.ngFlowOptions" flow-files-submitted="$flow.upload()" flow-file-success="vm.importContacts($file, $message, $flow)" flow-file-added="vm.fileAdded($file)" aria-label="Select File" translate translate-attr-aria-label="CONTACTMANAGER.IMPORT_CONTACTS">\n <md-tooltip md-direction="left" md-visible="tooltipVisible" md-autohide="false">\n {{\'CONTACTMANAGER.IMPORT_CONTACTS\' | translate}}\n </md-tooltip>\n <md-icon md-font-icon="icon-upload"></md-icon>\n </md-button>\n <md-button class="md-fab md-mini md-accent" ng-click="vm.createOrEditContact($event)" aria-label="add contact" translate translate-attr-aria-label="CONTACTMANAGER.ADD_CONTACT">\n <md-tooltip md-direction="left" md-visible="tooltipVisible" md-autohide="false">\n {{\'CONTACTMANAGER.ADD_CONTACT\' | translate}}\n </md-tooltip>\n <md-icon md-font-icon="icon-account-plus"></md-icon>\n </md-button>\n </md-fab-actions>\n </md-fab-speed-dial>\n \x3c!-- / ADD USER BUTTON --\x3e\n</div>'),e.put("app/main/apps/contactmanager/views/contacts/create/dialog.html",'<md-dialog class="cm-contact-dialog" aria-label="New Contact">\n <form name="contactForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.FIRSTNAME">First name</label>\n <input name="firstName" ng-model="vm.contact.firstName" required md-autofocus privacy="!vm.crudPermissions.canEdit" ng-cloak>\n\n <div ng-messages="contactForm.firstName.$error" ng-show="contactForm.firstName.$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.FIRSTNAME_REQUIRED">First name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.LASTNAME">Last name</label>\n <input name="lastName" ng-model="vm.contact.lastName" privacy="!vm.crudPermissions.canEdit" ng-cloak>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.PHONE">Phone</label>\n <input name="phone" ng-model="vm.contact.phone" privacy="!vm.crudPermissions.canEdit" ng-cloak>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.EMAIL">Email</label>\n <input name="email" type="email" ng-model="vm.contact.email" privacy="!vm.crudPermissions.canEdit" ng-cloak>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.MOBILE">Mobile</label>\n <input name="mobile" ng-model="vm.contact.mobile" privacy="!vm.crudPermissions.canEdit" ng-cloak>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.FAX">Fax</label>\n <input name="fax" ng-model="vm.contact.fax" privacy="!vm.crudPermissions.canEdit" ng-cloak>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.LIST">List</label>\n <md-select name="list" ng-model="vm.contact.ListId" ng-disabled="vm.contact.id && vm.contact.ListId" ng-change="vm.getCustomFields(vm.contact.ListId)" required>\n <md-optgroup label="Lists">\n <md-option ng-value="list.id" ng-repeat="list in vm.lists.rows">{{list.name}}</md-option>\n <md-option ng-value="null"><em translate="CONTACTMANAGER.NONE">None</em></md-option>\n </md-optgroup>\n </md-select>\n\n <div ng-messages="contactForm.list.$error" ng-show="contactForm.list.$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div ng-repeat="customField in vm.customFields.rows" class="md-block" ng-switch="customField.type">\n <div ng-switch-when="datetime">\n <label>{{customField.alias}}</label>\n <div>\n \x3c!-- ng-model="customField.value" --\x3e\n <mdp-date-picker mdp-open-on-click ng-required="customField.required" mdp-format="YYYY-MM-DD" ng-model="vm.contact[\'cf_\' + customField.id]"></mdp-date-picker>\n <mdp-time-picker mdp-open-on-click mdp-placeholder="Time" ng-required="customField.required" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.contact[\'cf_\' + customField.id]">\n </mdp-time-picker>\n </div>\n\n </div>\n\n <div ng-switch-when="select">\n <label>{{customField.alias}}</label>\n\n <md-select ng-model="vm.contact[\'cf_\' + customField.id]" ng-required="customField.required">\n <md-option ng-repeat="value in customField.values" ng-value="value.value">{{value.value}}</md-option>\n <md-option ng-value="null"><em translate="CONTACTMANAGER.NONE">None</em></md-option>\n </md-select>\n </div>\n\n <div ng-switch-when="switch">\n <md-switch aria-label="{{customField.alias}}" ng-model="vm.contact[\'cf_\' + customField.id]" ng-true-value="1" ng-false-value="0">\n {{customField.alias}}\n </md-switch>\n </div>\n\n <md-input-container ng-switch-default>\n <label>{{customField.alias}}</label>\n\n <input type="{{customField.type}}" ng-model="vm.contact[\'cf_\' + customField.id]" ng-required="customField.required">\n </md-input-container>\n </div>\n\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.COMPANY">Company</label>\n <md-select name="company" ng-model="vm.contact.CompanyId">\n <md-option ng-value="company.id" ng-repeat="company in vm.companies.rows" ng-hide="!vm.contact.CompanyId && company.canSelect === false" ng-disabled="company.canSelect === false">\n {{company.name}}</md-option>\n </md-select>\n </md-input-container>\n\n <div ng-if="!vm.allFields" layout="row" layout-align="center center">\n <md-button class="md-accent" ng-click="vm.allFields = true" translate="CONTACTMANAGER.SHOW_ALL_FIELDS">Show All\n Fields</md-button>\n </div>\n\n <md-input-container class="md-block" ng-if="vm.allFields" flex-gt-sm="" ng-init="vm.contact.dateOfBirth = vm.getDateFromString(vm.contact.dateOfBirth)">\n <label translate="CONTACTMANAGER.DATE_OF_BIRTH">Date of Birth</label>\n <mdp-date-picker mdp-open-on-click mdp-format="YYYY-MM-DD" name="dateOfBirth" ng-model="vm.contact.dateOfBirth">\n </mdp-date-picker>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.allFields">\n <label translate="CONTACTMANAGER.COUNTRY">Country</label>\n <input type="text" name="country" ng-model="vm.contact.country">\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.allFields">\n <label translate="CONTACTMANAGER.CITY">City</label>\n <input type="text" name="city" ng-model="vm.contact.city">\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.allFields">\n <label translate="CONTACTMANAGER.STREET">Street</label>\n <input type="text" name="street" ng-model="vm.contact.street">\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.allFields">\n <label translate="CONTACTMANAGER.POSTAL_CODE">Postal Code</label>\n <input type="text" name="postalCode" ng-model="vm.contact.postalCode">\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.allFields">\n <label translate="CONTACTMANAGER.NOTES">Notes</label>\n <input type="text" name="description" ng-model="vm.contact.description">\n </md-input-container>\n\n <div ng-if="vm.allFields" layout="row" layout-align="center center">\n <md-button class="md-accent" ng-click="vm.allFields = false" translate="CONTACTMANAGER.FEWER_FIELDS">Fewer\n Fields</md-button>\n </div>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-if="!vm.newContact" ng-click="vm.saveContact()" class="send-button md-accent md-raised" ng-disabled="contactForm.$invalid || contactForm.$pristine" aria-label="SAVE" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newContact" ng-click="vm.addNewContact()" class="send-button md-accent md-raised" ng-disabled="contactForm.$invalid || contactForm.$pristine" aria-label="ADD" translate="CONTACTMANAGER.ADD_CONTACT" translate-attr-aria-label="CONTACTMANAGER.ADD_CONTACT">\n ADD CONTACT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newContact" ng-click="vm.deleteContact($event)" aria-label="DELETE" translate translate-attr-aria-label="CONTACTMANAGER.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/contacts/duplicate/dialog.html",'<md-dialog class="cm-contact-dialog" aria-label="{{ \'CONTACTMANAGER.DUPLICATE_CONTACT\' | translate }}">\n <form name="contactForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.LIST">List</label>\n <md-select name="list" ng-model="vm.contact.ListId">\n <md-option ng-value="list.id" ng-repeat="list in vm.lists.rows">{{list.name}}</md-option>\n </md-select>\n\n <div ng-messages="contactForm.list.$error" ng-show="contactForm.list.$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.addNewContact()" class="send-button md-accent md-raised" ng-disabled="contactForm.$invalid" aria-label="ADD" translate="CONTACTMANAGER.ADD_CONTACT" translate-attr-aria-label="CONTACTMANAGER.ADD_CONTACT">\n ADD CONTACT\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/contacts/edit/hoppers/dialog.html",'<md-dialog class="hopper-dialog" aria-label="New Hopper">\n <form name="hopperForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <div flex class="md-block">\n <mdp-date-picker mdp-open-on-click name="scheduledatDate" mdp-placeholder="Date" mdp-format="YYYY-MM-DD" ng-model="vm.hopper.scheduledat" ng-init="vm.hopper.scheduledat = vm.getDateFromString(vm.hopper.scheduledat)">\n <div ng-messages="hopperForm.dateRangeFrom.$error" ng-show="hopperForm.dateRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.DATE_REQUIRED">Date is required</span>\n </div>\n <div ng-message="format">\n <span translate="CONTACTMANAGER.ERRORS.DATE_INVALID">Date is invalid</span>\n </div>\n </div>\n </mdp-date-picker>\n </div>\n\n <div flex class="md-block">\n <mdp-time-picker mdp-open-on-click name="scheduledatTime" mdp-placeholder="Time" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.hopper.scheduledat" ng-init="vm.hopper.scheduledat = vm.getDateFromString(vm.hopper.scheduledat)">\n <div ng-messages="hopperForm.timeRangeFrom.$error" ng-show="hopperForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.TIME_REQUIRED">Time is required</span>\n </div>\n <div ng-message="format">\n <span translate="CONTACTMANAGER.ERRORS.TIME_INVALID">Time is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-if="!vm.newHopper" ng-click="vm.saveHopper()" class="send-button md-accent md-raised" ng-disabled="hopperForm.$invalid || hopperForm.$pristine" aria-label="SAVE" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newHopper" ng-click="vm.addNewHopper()" class="send-button md-accent md-raised" ng-disabled="hopperForm.$invalid" aria-label="ADD" translate="CONTACTMANAGER.ADD_HOPPER" translate-attr-aria-label="CONTACTMANAGER.ADD_HOPPER">\n ADD HOPPER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="!vm.newHopper" ng-click="vm.deleteHopper($event)" aria-label="DELETE" translate translate-attr-aria-label="CONTACTMANAGER.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/contacts/edit/view.html",'<div id="cm-contact" class="page-layout simple tabbed" layout="column" ng-init="vm.onInit()">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-contacts-button md-icon-button" aria-label="Go to contacts" ng-click="vm.gotoContacts()" translate translate-attr-aria-label="CONTACTMANAGER.GO_TO_CONTACTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="contact-image" hide-xs>\n <img ng-src="assets/images/business/contacts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.contact.id}} {{vm.contact.firstName}} {{vm.contact.lastName}}\n </div>\n <div class="subtitle secondary-text">\n <span translate="CONTACTMANAGER.CREATED_AT"></span> <span>{{vm.contact.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-if="vm.contact.role && vm.contact.role !== \'admin\'" ng-controller="ContactQueueAddButtonController as vm_contact_qa" ng-cloak>\n <md-fab-speed-dial ng-hide="vm_contact_qa.hidden" md-direction="left" md-open="vm_contact_qa.isOpen" class="md-scale md-fab" ng-class="{ \'md-hover-full\': vm_contact_qa.hover }" ng-mouseenter="vm_contact_qa.isOpen=true" ng-mouseleave="vm_contact_qa.isOpen=false">\n <md-fab-trigger>\n <md-button aria-label="menu" class="md-fab md-primary md-icon-button">\n <md-tooltip md-direction="top" md-visible="tooltipVisible">Channels</md-tooltip>\n <md-icon md-font-icon="icon-eye" aria-label="channels"></md-icon>\n </md-button>\n </md-fab-trigger>\n <md-fab-actions>\n <div ng-repeat="channel in vm_contact_qa.channels">\n <md-button aria-label="{{channel.name}}" class="md-fab md-raised md-icon-button md-mini" ng-click="vm_contact_qa.openDialog($event, vm.contact, channel)">\n <md-tooltip md-direction="{{channel.direction}}" md-visible="tooltipVisible" md-autohide="false">\n {{channel.name}}\n </md-tooltip>\n <md-icon md-font-icon="{{channel.icon}}" aria-label="{{channel.name}}"></md-icon>\n </md-button>\n </div>\n </md-fab-actions>\n </md-fab-speed-dial>\n </div>\n\n <div ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.duplicateContact($event)" class="md-fab md-warn md-icon-button" aria-label="DUPLICATE">\n <md-icon md-font-icon="icon-file-multiple"></md-icon>\n </md-button>\n <md-button type="submit" ng-click="vm.saveContact()" class="send-button md-accent md-raised" ng-disabled="detailForm.$pristine && customFieldsForm.$pristine && socialForm.$pristine" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n SAVE\n </md-button>\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="CONTACTMANAGER.DETAIL">DETAIL</span>\n </md-tab-label>\n\n <md-tab-body>\n <div layout="row">\n <div layout="column" flex="70">\n <md-card class="contact-detail-form-container personal_info md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text text-truncate" translate="CONTACTMANAGER.PERSONAL_INFO">PERSONAL_INFO\n </div>\n </div>\n <form name="detailForm" novalidate>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n \x3c!-- fistName --\x3e\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.FIRSTNAME">First Name</label>\n <md-icon md-font-icon="icon-account" class="firstname"></md-icon>\n <input type="text" name="firstName" ng-model="vm.contact.firstName" class="text-truncate" required ng-disabled="!vm.crudPermissions.canEdit" privacy="!vm.crudPermissions.canEdit" ng-cloak>\n <div ng-messages="detailForm.firstName.$error" ng-show="detailForm.firstName.$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.FIRSTNAME_REQUIRED">First name field is required</span>\n </div>\n </div>\n </md-input-container>\n <div flex="5"></div>\n \x3c!-- lastName --\x3e\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.LASTNAME">Last Name</label>\n <input type="text" name="lastName" ng-model="vm.contact.lastName" class="text-truncate" ng-disabled="!vm.crudPermissions.canEdit" privacy="!vm.crudPermissions.canEdit" ng-cloak>\n </md-input-container>\n\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n \x3c!-- phone --\x3e\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.PHONE">Phone</label>\n <md-icon md-font-icon="icon-phone"></md-icon>\n <input type="text" name="phone" ng-model="vm.contact.phone" class="text-truncate" ng-disabled="!vm.crudPermissions.canEdit" privacy="!vm.crudPermissions.canEdit" ng-cloak>\n </md-input-container>\n <div flex="5"></div>\n \x3c!-- mobile --\x3e\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.MOBILE">Mobile</label>\n <md-icon md-font-icon="icon-cellphone-iphone"></md-icon>\n <input type="text" name="mobile" ng-model="vm.contact.mobile" class="text-truncate" ng-disabled="!vm.crudPermissions.canEdit" privacy="!vm.crudPermissions.canEdit" ng-cloak>\n </md-input-container>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n \x3c!-- email --\x3e\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.EMAIL">Email</label>\n <md-icon md-font-icon="icon-email" class="email"></md-icon>\n <input type="email" name="email" ng-model="vm.contact.email" class="text-truncate" ng-disabled="!vm.crudPermissions.canEdit" privacy="!vm.crudPermissions.canEdit" ng-cloak>\n <div ng-messages="detailForm.firstName.$error" ng-show="detailForm.firstName.$touched" role="alert">\n <div ng-message="email">\n <span translate="CONTACTMANAGER.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail\n address</span>\n </div>\n </div>\n </md-input-container>\n <div flex="5"></div>\n \x3c!-- fax --\x3e\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.FAX">Fax</label>\n <md-icon md-font-icon="icon-deskphone"></md-icon>\n <input type="text" name="fax" ng-model="vm.contact.fax" ng-disabled="!vm.crudPermissions.canEdit" privacy="!vm.crudPermissions.canEdit" ng-cloak>\n </md-input-container>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="" ng-init="vm.contact.dateOfBirth = vm.getDateFromString(vm.contact.dateOfBirth)">\n <label translate="CONTACTMANAGER.DATE_OF_BIRTH">Date of Birth</label>\n <mdp-date-picker mdp-open-on-click mdp-format="YYYY-MM-DD" name="dateOfBirth" ng-model="vm.contact.dateOfBirth" mdp-disabled="!vm.crudPermissions.canEdit"></mdp-date-picker>\n </md-input-container>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container ng-if="vm.companies.rows.length" class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.COMPANY">Company</label>\n <md-icon md-font-icon="icon-domain"></md-icon>\n <md-select name="company" ng-model="vm.contact.CompanyId" ng-disabled="!vm.crudPermissions.canEdit">\n <md-optgroup label="Companies">\n <md-option ng-value="company.id" ng-repeat="company in vm.companies.rows" ng-disabled="company.canSelect === false">{{company.name}}</md-option>\n <md-option ng-value=" null"><em translate="CONTACTMANAGER.NONE">None</em></md-option>\n </md-optgroup>\n </md-select>\n <md-icon class="pointer" ng-show="vm.contact.CompanyId" md-font-icon="icon-information-outline" ng-click="vm.editCompany($event, vm.contact.CompanyId)"></md-icon>\n </md-input-container>\n <section ng-if="!vm.companies.rows.length" flex-gt-sm="">\n <md-icon md-font-icon="icon-briefcase"></md-icon>\n <label translate="CONTACTMANAGER.NO_COMPANIES">No Companies</label>\n </section>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container ng-if="vm.tags.rows.length" class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.TAGS">Tags</label>\n <md-icon md-font-icon="icon-tag"></md-icon>\n <md-select ng-model="vm.Tags" multiple ng-disabled="!vm.crudPermissions.canEdit">\n <md-optgroup label="Tags">\n <md-option ng-value="tag.id" ng-repeat="tag in vm.tags.rows" ng-disabled="tag.canSelect === false">{{tag.name}}</md-option>\n </md-optgroup>\n </md-select>\n </md-input-container>\n <section ng-if="!vm.tags.rows.length" flex-gt-sm="">\n <md-icon md-font-icon="icon-tag"></md-icon>\n <label translate="CONTACTMANAGER.NO_TAG">No Tags</label>\n <md-button class="md-accent" translate="CONTACTMANAGER.ADD_TAG">Add Tag</md-button>\n </section>\n </div>\n\n <div ng-if="!vm.allFields" layout="row" layout-align="center center">\n <md-button class="md-accent" ng-click="vm.allFields = true" translate="CONTACTMANAGER.SHOW_ALL_FIELDS">Show All Fields</md-button>\n </div>\n\n <div ng-if="vm.allFields">\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n \x3c!-- country --\x3e\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.COUNTRY">Country</label>\n <md-icon md-font-icon="icon-home" class="country"></md-icon>\n <input type="text" name="country" ng-model="vm.contact.country" class="text-truncate" ng-disabled="!vm.crudPermissions.canEdit">\n </md-input-container>\n <div flex="5"></div>\n \x3c!-- city --\x3e\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.CITY">City</label>\n <input type="text" name="city" ng-model="vm.contact.city" ng-disabled="!vm.crudPermissions.canEdit">\n </md-input-container>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <div flex="5"></div>\n \x3c!-- street --\x3e\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.STREET">Street</label>\n <input type="text" name="street" ng-model="vm.contact.street" ng-disabled="!vm.crudPermissions.canEdit">\n </md-input-container>\n <div flex="5"></div>\n \x3c!-- postalCode --\x3e\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="CONTACTMANAGER.POSTALCODE">Postal Code</label>\n <input type="text" name="postalCode" ng-model="vm.contact.postalCode" ng-disabled="!vm.crudPermissions.canEdit">\n </md-input-container>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate translate-attr-placeholder="CONTACTMANAGER.NOTES">Notes</label>\n <md-icon md-font-icon="icon-note"></md-icon>\n <textarea ng-model="vm.contact.description" type="text" max-rows="4" ng-disabled="!vm.crudPermissions.canEdit"></textarea>\n </md-input-container>\n </div>\n\n <div layout="row" layout-align="center center">\n <md-button class="md-accent" ng-click="vm.allFields = false" translate="CONTACTMANAGER.FEWER_FIELDS">Fewer Fields\n </md-button>\n </div>\n\n </div>\n </form>\n </md-card>\n <md-card class="contact-detail-form-container personal_info md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text text-truncate" translate="CONTACTMANAGER.SOCIAL">Social</div>\n </div>\n <form name="socialForm" novalidate>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Facebook</label>\n <md-icon md-font-icon="icon-facebook" class="facebook"></md-icon>\n <input type="text" name="facebook" ng-model="vm.contact.facebook" class="text-truncate" ng-disabled="!vm.crudPermissions.canEdit">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Twitter</label>\n <md-icon md-font-icon="icon-twitter" class="twitter"></md-icon>\n <input type="text" name="twitter" ng-model="vm.contact.twitter" class="text-truncate" ng-disabled="!vm.crudPermissions.canEdit">\n </md-input-container>\n </div>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Line</label>\n <md-icon md-font-icon="fab fa-line"></md-icon>\n <input type="text" name="line" ng-model="vm.contact.line" class="text-truncate">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Viber</label>\n <md-icon md-font-icon="fab fa-viber"></md-icon>\n <input type="text" name="viber" ng-model="vm.contact.viber" class="text-truncate">\n </md-input-container>\n </div>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label>WeChat</label>\n <md-icon md-font-icon="fab fa-weixin"></md-icon>\n <input type="text" name="wechat" ng-model="vm.contact.wechat" class="text-truncate">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Telegram</label>\n <md-icon md-font-icon="icon-telegram"></md-icon>\n <input type="text" name="telegram" ng-model="vm.contact.telegram" class="text-truncate">\n </md-input-container>\n </div>\n </form>\n </md-card>\n </div>\n\n <div flex></div>\n\n <div class="contact-detail-form-container personal_info md-background-bg md-whiteframe-1dp" flex="25">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text text-truncate" translate="CONTACTMANAGER.CUSTOM_FIELDS">CUSTOM FIELDS\n </div>\n </div>\n <form name="customFieldsForm" novalidate>\n <md-input-container class="md-block">\n <label translate translate-attr-placeholder="CONTACTMANAGER.LIST">List</label>\n <md-select name="list" ng-model="vm.contact.ListId" md-on-close="vm.onSelectList($event)" ng-disabled="vm.contact.ListId">\n <md-optgroup label="Lists">\n <md-option ng-value="list.id" ng-repeat="list in vm.lists.rows">#{{list.id}} - {{list.name}}\n </md-option>\n <md-option ng-value="null"><em translate="CONTACTMANAGER.NONE">None</em></md-option>\n </md-optgroup>\n </md-select>\n </md-input-container>\n <div ng-repeat="customField in vm.customFields.rows" ng-switch="customField.type">\n <md-input-container class="md-block" ng-switch-when="datetime">\n <label>{{customField.alias}}</label>\n <div ng-init="vm.contact[\'cf_\' + customField.id] = vm.getDateFromString(vm.contact[\'cf_\' + customField.id])">\n <mdp-date-picker mdp-open-on-click ng-required="customField.required" mdp-format="YYYY-MM-DD" ng-model="vm.contact[\'cf_\' + customField.id]"></mdp-date-picker>\n <mdp-time-picker mdp-open-on-click mdp-placeholder="Time" ng-required="customField.required" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.contact[\'cf_\' + customField.id]">\n </mdp-time-picker>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-switch-when="select">\n <label>{{customField.alias}}</label>\n <md-select ng-model="vm.contact[\'cf_\' + customField.id]" ng-required="customField.required" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-repeat="value in customField.values" ng-value="value.value">{{value.value}}\n </md-option>\n <md-option ng-value="null"><em translate="CONTACTMANAGER.NONE">None</em></md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block" ng-switch-when="switch">\n <md-switch aria-label="{{customField.alias}}" ng-model="vm.contact[\'cf_\' + customField.id]" ng-true-value="1" ng-false-value="0">\n {{customField.alias}}\n </md-switch>\n </md-input-container>\n\n <md-input-container class="md-block" ng-switch-default>\n <label>{{customField.alias}}</label>\n <input type="{{customField.type}}" ng-model="vm.contact[\'cf_\' + customField.id]" ng-required="customField.required" ng-disabled="!vm.crudPermissions.canEdit">\n </md-input-container>\n </div>\n </form>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n\n <md-tab ng-if="vm.license.dialer">\n <md-tab-label>\n <span translate="CONTACTMANAGER.MOTION_BULL">MOTION BULL</span>\n </md-tab-label>\n\n <md-tab-body>\n <div layout="row">\n <div class="contact-detail-form-container personal_info md-background-bg md-whiteframe-1dp" flex>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CONTACTMANAGER.HOPPER">Hopper</span>\n <div flex></div>\n <ms-search-bar on-search="vm.queryHopper.filter = query;" on-collapse="vm.queryHopper.filter = undefined;" debounce="300"></ms-search-bar>\n <md-button class="md-icon-button" ng-click="vm.getHoppers()" aria-label="reload" translate translate-attr-label="CONTACTMANAGER.RELOAD">\n <md-tooltip>{{\'CONTACTMANAGER.RELOAD\' | translate}}</md-tooltip>\n <md-icon md-font-icon="icon-reload"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n \x3c!-- HOPPER TABLE --\x3e\n <md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.queryHopper.sort" md-on-reorder="vm.getHoppers">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | translate }}</th>\n <th md-column md-order-by="phone">{{ \'CONTACTMANAGER.PHONE\' | translate }}</th>\n <th md-column md-order-by="scheduledat">{{ \'CONTACTMANAGER.SCHEDULEDAT\' | translate }}</th>\n <th md-column md-order-by="priority">{{ \'MOTIONDIALER.PRIORITY\' | translate }}</th>\n <th md-column md-order-by="recallme">{{ \'CONTACTMANAGER.RECALLME\' | translate }}</th>\n <th md-column md-order-by="VoiceQueueId">{{ \'CONTACTMANAGER.VOICEQUEUEID\' | translate }}</th>\n <th md-column md-order-by="CampaignId">{{ \'CONTACTMANAGER.CAMPAIGNID\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.hoppers.count">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(id, hopper) in vm.hoppers.rows">\n <td md-cell>{{hopper.id}}</td>\n <td md-cell privacy ng-cloak>{{hopper.phone}}</td>\n <td md-cell>{{hopper.scheduledat | date:\'medium\'}}</td>\n <td md-cell>{{ vm.arraypriority[hopper.priority].option }}</td>\n <td md-cell class="recallme ">\n <md-icon md-colors="{color: {{hopper.recallme ? \'\\\'green\\\'\' : \'\\\'red\\\'\'}}}" md-font-icon="{{hopper.recallme? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td md-cell>{{hopper.VoiceQueueId}}</td>\n <td md-cell>{{hopper.CampaignId}}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CONTACTMANAGER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-if="vm.crudPermissions.canEdit && hopper.VoiceQueueId" ng-click="vm.editHopper($event, hopper)" translate="CONTACTMANAGER.EDIT_HOPPER">\n Edit Hopper\n </md-button>\n <md-button ng-if="vm.crudPermissions.canEdit && hopper.CampaignId" ng-click="vm.createOrEditIvrCampaignHopper($event, hopper)" translate="CONTACTMANAGER.EDIT_HOPPER">\n Edit Hopper\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.crudPermissions.canDelete && vm.deleteconfirm(hopper, $event)" translate="CONTACTMANAGER.DELETE_HOPPER">\n Delete Hopper\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.queryHopper.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.queryHopper.page" md-total="{{vm.hoppers.count}}" md-on-paginate="vm.getHoppers" md-page-select></md-table-pagination>\n \x3c!-- / HOPPER TABLE --\x3e\n </div>\n </div>\n\n <div layout="row">\n <div class="contact-detail-form-container personal_info md-background-bg md-whiteframe-1dp" flex>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CONTACTMANAGER.FINAL">Final</span>\n <div flex></div>\n <ms-search-bar on-search="vm.queryFinal.filter = query;" on-collapse="vm.queryFinal.filter = undefined;" debounce="300"></ms-search-bar>\n <md-button class="md-icon-button" ng-click="vm.getFinals()" aria-label="reload" translate translate-attr-label="CONTACTMANAGER.RELOAD">\n <md-tooltip>{{\'CONTACTMANAGER.RELOAD\' | translate}}</md-tooltip>\n <md-icon md-font-icon="icon-reload"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n \x3c!-- HOPPER TABLE --\x3e\n <md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.queryFinal.sort" md-on-reorder="vm.getFinals">\n <tr md-row>\n <th md-column md-order-by="uniqueid">{{ \'CONTACTMANAGER.UNIQUEID\' | translate }}</th>\n <th md-column md-order-by="calleridnum">{{ \'CONTACTMANAGER.PHONE\' | translate }}</th>\n <th md-column md-order-by="state">{{ \'CONTACTMANAGER.STATE\' | translate }}</th>\n <th md-column md-order-by="starttime">{{ \'CONTACTMANAGER.STARTTIME\' | translate }}</th>\n <th md-column md-order-by="disposition">{{ \'CONTACTMANAGER.DISPOSITION\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.finals.count">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(id, final) in vm.finals.rows">\n <td md-cell>{{final.uniqueid}}</td>\n <td md-cell privacy ng-cloak>{{final.calleridnum}}</td>\n <td md-cell>{{final.statedesc}}</td>\n <td md-cell>{{final.starttime | date:\'medium\'}}</td>\n <td md-cell>{{final.disposition}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.queryFinal.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.queryFinal.page" md-total="{{vm.finals.count}}" md-on-paginate="vm.getFinals" md-page-select></md-table-pagination>\n \x3c!-- / HOPPER TABLE --\x3e\n </div>\n </div>\n\n <div layout="row">\n <div class="contact-detail-form-container personal_info md-background-bg md-whiteframe-1dp" flex>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CONTACTMANAGER.HISTORY">History</span>\n <div flex></div>\n <ms-search-bar on-search="vm.queryHistory.filter = query;" on-collapse="vm.queryHistory.filter = undefined;" debounce="300"></ms-search-bar>\n <md-button class="md-icon-button" ng-click="vm.getHistories()" aria-label="reload" translate translate-attr-label="CONTACTMANAGER.RELOAD">\n <md-tooltip>{{\'CONTACTMANAGER.RELOAD\' | translate}}</md-tooltip>\n <md-icon md-font-icon="icon-reload"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n \x3c!-- HOPPER TABLE --\x3e\n <md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.queryHistory.sort" md-on-reorder="vm.getHistories">\n <tr md-row>\n <th md-column md-order-by="uniqueid">{{ \'CONTACTMANAGER.UNIQUEID\' | translate }}</th>\n <th md-column md-order-by="calleridnum">{{ \'CONTACTMANAGER.PHONE\' | translate }}</th>\n <th md-column md-order-by="state">{{ \'CONTACTMANAGER.STATE\' | translate }}</th>\n <th md-column md-order-by="scheduledat">{{ \'CONTACTMANAGER.SCHEDULEDAT\' | translate }}</th>\n <th md-column md-order-by="starttime">{{ \'CONTACTMANAGER.STARTTIME\' | translate }}</th>\n <th md-column md-order-by="endtime">{{ \'CONTACTMANAGER.ENDTIME\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.histories.count">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(id, history) in vm.histories.rows">\n <td md-cell>{{history.uniqueid}}</td>\n <td md-cell privacy ng-cloak>{{history.calleridnum}}</td>\n <td md-cell>{{history.statedesc}}</td>\n <td md-cell>{{history.scheduledat | date:\'medium\'}}</td>\n <td md-cell>{{history.starttime | date:\'medium\'}}</td>\n <td md-cell>{{history.endtime | date:\'medium\'}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.queryHistory.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.queryHistory.page" md-total="{{vm.histories.count}}" md-on-paginate="vm.getHistories" md-page-select></md-table-pagination>\n \x3c!-- / HOPPER TABLE --\x3e\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n\n <md-tab ng-if="vm.license.jscripty">\n <md-tab-label>\n <span translate="CONTACTMANAGER.JSCRIPTY">JSCRIPTY</span>\n </md-tab-label>\n\n <md-tab-body>\n <div layout="row">\n <div class="contact-detail-form-container personal_info md-background-bg md-whiteframe-1dp" flex>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CONTACTMANAGER.SESSIONS">Sessions</span>\n <div flex></div>\n <ms-search-bar on-search="vm.queryJscriptySession.filter = query;" on-collapse="vm.queryJscriptySession.filter = undefined;" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n\n \x3c!-- SESSION TABLE --\x3e\n <md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.queryJscriptySession.sort" md-on-reorder="vm.getJscriptySessions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | translate }}</th>\n <th md-column md-order-by="starttime">{{ \'CONTACTMANAGER.STARTTIME\' | translate }}</th>\n <th md-column md-order-by="endtime">{{ \'CONTACTMANAGER.ENDTIME\' | translate }}</th>\n <th md-column md-order-by="agent">{{ \'CONTACTMANAGER.AGENT\' | translate }}</th>\n <th md-column md-order-by="project">{{ \'CONTACTMANAGER.PROJECT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.jscriptySessions.count">\n <td md-cell colspan="6">\n <div layout="row" layout-align="center center">\n <span translate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(id, session) in vm.jscriptySessions.rows">\n <td md-cell>{{session.id}}</td>\n <td md-cell>{{session.starttime | date:\'medium\'}}</td>\n <td md-cell>{{session.endtime | date:\'medium\'}}</td>\n <td md-cell>{{session.membername}}</td>\n <td md-cell>{{session.projectname}}</td>\n <td md-cell class="actions"></td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.queryHopper.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.queryHopper.page" md-total="{{vm.hoppers.count}}" md-on-paginate="vm.getHoppers" md-page-select></md-table-pagination>\n \x3c!-- / SESSION TABLE --\x3e\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="CONTACTMANAGER.CUSTOMER_JOURNEY">CUSTOMER JOURNEY</span>\n </md-tab-label>\n\n <md-tab-body>\n <md-content class="md-padding" id="journey-content">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.html\'">\n </div>\n </md-content>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/contactmanager/views/contacts/import/import.html",'<md-dialog class="import-dialog" aria-label="Import contact">\n <form name="importForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="CONTACTMANAGER.IMPORT_CONTACTS">Import Contacts</span>\n <md-button ng-if="vm.result.finish || !vm.processing" class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <div md-background-bg layout="row" layout-align="start start">\n <md-progress-linear ng-disabled="!vm.processing || vm.result.finish" md-mode="indeterminate" class="md-warn"></md-progress-linear>\n </div>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div>\n <md-content ng-show="!vm.processing">\n <div class="form-title" translate="CONTACTMANAGER.CONTACTMANAGER">CONTACT MANAGER</div>\n\n <md-input-container class="md-icon-float md-block" ng-repeat="contactField in vm.contactFields">\n <label>{{\'CONTACTMANAGER.\' + contactField.key | uppercase | translate}}</label>\n <md-select name="{{contactField.key}}" ng-model="vm.binding[contactField.key]" placeholder="{{\'CONTACTMANAGER.\' + contactField.key | uppercase | translate}}" ng-required="contactField.required">\n <md-option ng-value="field" ng-repeat="field in vm.fields">{{ field }}</md-option>\n <md-option ng-value="null" ng-hide="contactField.required">\n <em>{{ \'CONTACTMANAGER.NONE\' | translate }}</em>\n </md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-icon-float md-block">\n <label translate="CONTACTMANAGER.LIST">List</label>\n <md-select name="list" ng-model="vm.ListId" placeholder="Select a list" ng-change="vm.onChangeList()" required>\n <md-option ng-value="list.id" ng-repeat="list in vm.lists.rows">{{list.name}}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-icon-float md-block" ng-repeat="customField in vm.customFields.rows">\n <label>{{customField.alias}}</label>\n <md-select ng-model="vm.binding[\'cf_\' + customField.id]" placeholder="{{customField.alias}}" ng-required="customField.required">\n <md-option ng-value="field" ng-repeat="field in vm.fields">{{ field }}</md-option>\n <md-option ng-value="null" ng-hide="customField.required">\n <em>{{ \'CONTACTMANAGER.NONE\' | translate }}</em>\n </md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-icon-float md-block">\n <label translate="CONTACTMANAGER.COMPANY">Company</label>\n <md-select name="company" ng-model="vm.CompanyId" placeholder="Select a company">\n <md-option ng-value="company.id" ng-repeat="company in vm.companies.rows">{{company.name}}</md-option>\n <md-option ng-value="null">\n <em translate="CONTACTMANAGER.NONE">None</em>\n </md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-icon-float md-block">\n <md-select ng-model="vm.duplicates" placeholder="{{ \'CONTACTMANAGER.CHECK_DUPLICATES\' | translate}}" multiple>\n <md-option ng-value="contactField.key" ng-repeat="contactField in vm.contactFields">{{ \'CONTACTMANAGER.\' + contactField.key | uppercase | translate}}</md-option>\n </md-select>\n </md-input-container>\n\n <div ng-if="vm.license.dialer">\n <div class="form-title" translate="CONTACTMANAGER.MOTIONDIALER">MOTION BULL</div>\n\n <md-input-container class="md-icon-float md-block" ng-repeat="motionBullField in vm.motionBullFields">\n <label>{{\'CONTACTMANAGER.\' + motionBullField.key | uppercase | translate}}</label>\n <md-select name="{{motionBullField.key}}" ng-model="vm.binding[motionBullField.key]" placeholder="{{\'CONTACTMANAGER.\' + motionBullField.key | uppercase | translate}}" ng-required="motionBullField.required">\n <md-option ng-value="field" ng-repeat="field in vm.fields">{{ field }}</md-option>\n <md-option ng-value="null" ng-hide="contactField.required">\n <em>{{ \'CONTACTMANAGER.NONE\' | translate }}</em>\n </md-option>\n </md-select>\n </md-input-container>\n </div>\n\n </md-content>\n\n <div class="error-list" ng-if="vm.result.finish">\n <div class="info" layout="row" layout-align="space-between center">\n <div>\n <div class="message">{{\'CONTACTMANAGER.UPLOAD_COMPLETED\' | translate | uppercase}} ({{vm.result.elapsed}}s)</div>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div layout="row" ng-if="vm.processing">\n \x3c!-- WIDGET PROCESSING --\x3e\n <ms-widget ng-if="!vm.result.finish" class="h-140" flex>\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg">\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8 orange-fg">\n <span ng-bind="vm.result.rows"></span>\n </div>\n <div ng-if="vm.processing" class="font-weight-500 secondary-text">Please wait, we are processing your contacts...</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET PROCESSING --\x3e\n \x3c!-- WIDGET SUCCESS --\x3e\n <ms-widget ng-if="vm.result.finish" class="h-140" flex>\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg">\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8 green-fg">\n <span ng-bind="vm.result.affectedRows"></span>\n </div>\n <div class="font-weight-500 secondary-text" translate="CONTACTMANAGER.SUCCESS">Success</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET SUCCESS --\x3e\n\n \x3c!-- WIDGET FAILURE --\x3e\n <ms-widget ng-if="vm.result.finish" class="h-140" flex>\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg">\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8 red-fg">\n <span ng-bind="vm.result.failedRows"></span>\n </div>\n <div class="font-weight-500 secondary-text" translate="CONTACTMANAGER.FAILURE">Failure</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET FAILURE --\x3e\n\n \x3c!-- WIDGET DUPLICATES --\x3e\n <ms-widget ng-if="vm.result.duplicatedRows && vm.result.finish" class="h-140" flex>\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg">\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8 orange-fg">\n <span ng-bind="vm.result.duplicatedRows"></span>\n </div>\n <div class="font-weight-500 secondary-text" translate="CONTACTMANAGER.DUPLICATES">Duplicates</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET DUPLICATES --\x3e\n </div>\n\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row">\n <md-button ng-if="!vm.processing" ng-disabled="importForm.$invalid || importForm.$pristine" ng-click="vm.uploadCsv()" class="md-accent md-raised" aria-label="UPLOAD" translate="CONTACTMANAGER.UPLOAD" translate-attr-aria-label="CONTACTMANAGER.IMPORT">\n IMPORT\n </md-button>\n <md-button ng-if="vm.processing && !vm.result.finish && !vm.stopping" ng-click="vm.stopUpload()" class="md-accent md-raised" aria-label="Stop Upload" translate="CONTACTMANAGER.STOP" translate-attr-aria-label="CONTACTMANAGER.STOP">\n STOP\n </md-button>\n <md-button ng-if="vm.result.finish && vm.result.errors.length" ng-csv="vm.getArrayErrors()" csv-header="vm.getHeaderErrors()" class="md-accent md-raised" aria-label="Export Errors" filename="contacts_import_errors.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon> {{\'CONTACTMANAGER.EXPORT_ERRORS\' | translate}}\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/contacts/merge/dialog.html",'<md-dialog class="cm-contact-dialog" aria-label="Merge Contact">\n <form name="contactForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <md-input-container class="md-block" flex-gt-sm>\n <label>Filter</label>\n <input ng-model="vm.searchTerm" name="searchTerm" ng-model-options="{ debounce: 300 }" ng-change="vm.change()">\n </md-input-container>\n\n <md-list flex>\n <md-subheader class="md-no-sticky" ng-hide="vm.contacts.length"><em>Filter doesn\'t match any contact</em></md-subheader>\n <md-list-item class="md-3-line" ng-repeat="contact in vm.contacts | filter:{ id: \'!\' + vm.contact.id}" ng-click="vm.showConfirm($event, vm.contact, contact)">\n <img ng-src="assets/images/avatars/profile.png" class="md-avatar" alt="{{contact.who}}" />\n <div class="md-list-item-text" layout="column">\n <h3>#{{ contact.id }} - {{ contact.firstName }} {{ contact.lastName }}</h3>\n <h4>{{ contact.email }}</h4>\n <p>{{ contact.phone }}</p>\n </div>\n </md-list-item>\n </md-list>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/globalCustomFields/create/dialog.html",'<md-dialog class="globalCustomField-dialog" aria-label="New GlobalCustomField">\n <form name="globalCustomFieldForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.ALIAS">Alias</label>\n <input type="" name="alias" ng-model="vm.globalCustomField.alias" ng-required="true" autofocus>\n\n <div ng-messages="globalCustomFieldForm[\'alias\'].$error" ng-show="globalCustomFieldForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.TYPE">Type</label>\n <md-select name="type" ng-model="vm.globalCustomField.type" required ng-disabled="!vm.newGlobalCustomField">\n <md-option ng-value="\'text\'">Text</md-option>\n <md-option ng-value="\'select\'">Select</md-option>\n <md-option ng-value="\'number\'">Number</md-option>\n <md-option ng-value="\'switch\'">Switch</md-option>\n <md-option ng-value="\'datetime\'">Datetime</md-option>\n </md-select>\n <div ng-messages="globalCustomFieldForm[\'type\'].$error" ng-show="globalCustomFieldForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.globalCustomField.type == \'select\'" class="md-block">\n <md-list>\n <md-list-item layout-margin>\n <md-button class="md-fab md-mini md-secondary" ng-click="vm.addItem(vm.globalCustomField.values);">\n <md-tooltip><span translate="CONTACTMANAGER.ADD">ADD</span></md-tooltip>\n <md-icon md-font-icon="icon-plus" aria-label="alert error"></md-icon>\n </md-button>\n <md-button ng-if="vm.globalCustomField.values.length" class="md-fab md-mini md-warn md-secondary" ng-click="vm.removeItems(vm.globalCustomField.values);">\n <md-tooltip><span translate="CONTACTMANAGER.DELETE_ALL">Delete All</span></md-tooltip>\n <md-icon md-font-icon="icon-delete" aria-label="alert error"></md-icon>\n </md-button>\n </md-list-item>\n </md-list>\n <md-list ng-sortable="vm.sortable">\n <md-list-item ng-repeat="item in vm.globalCustomField.values" style="border: 1px solid #ccc!important; border-radius: 7px;" layout-margin>\n <div>\n <md-icon class="s24" style="cursor:move" md-font-icon="icon-drag" aria-label="drag"></md-icon>\n <input type="text" ng-model="item.value" flex>\n </div>\n <md-button class="md-fab md-mini md-warn md-secondary" ng-click="vm.removeItem(vm.globalCustomField.values, $index);">\n <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n <md-icon md-font-icon="icon-delete" aria-label="alert error"></md-icon>\n </md-button>\n </md-list-item>\n </md-list>\n <md-list>\n <md-list-item ng-if="!vm.globalCustomField.values.length" layout="row" layout-align="center center">\n <em translate="CONTACTMANAGER.NO_AVAILABLE_ITEMS">No Available Items</em>\n </md-list-item>\n </md-list>\n </div>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.globalCustomField.required" aria-label="Required"><span translate="CONTACTMANAGER.REQUIRED">Required</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.globalCustomField.type == \'text\'" class="md-block">\n <md-switch ng-model="vm.globalCustomField.clickToAction" aria-label="ClickToAction"><span translate="CONTACTMANAGER.CLICKTOACTION">ClickToAction</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.globalCustomField.clickToAction" class="md-block">\n <label translate="CONTACTMANAGER.ACTIONTYPE">ActionType</label>\n <md-select name="actionType" ng-model="vm.globalCustomField.actionType">\n <md-option ng-value="\'voice\'">Voice</md-option>\n </md-select>\n <div ng-messages="globalCustomFieldForm[\'actionType\'].$error" ng-show="globalCustomFieldForm[\'actionType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.ACTIONTYPE_REQUIRED">ActionType field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newGlobalCustomField" ng-click="vm.saveGlobalCustomField()" class="send-button md-accent md-raised" ng-disabled="globalCustomFieldForm.$invalid || globalCustomFieldForm.$pristine" aria-label="SAVE" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newGlobalCustomField" ng-click="vm.addNewGlobalCustomField()" class="send-button md-accent md-raised" ng-disabled="globalCustomFieldForm.$invalid" aria-label="ADD" translate="CONTACTMANAGER.ADD_GLOBALCUSTOMFIELD" translate-attr-aria-label="CONTACTMANAGER.ADD_GLOBALCUSTOMFIELD">\n ADD GLOBALCUSTOMFIELD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newGlobalCustomField" ng-click="vm.deleteGlobalCustomField($event)" aria-label="DELETE" translate translate-attr-aria-label="CONTACTMANAGER.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/globalCustomFields/globalCustomFields.html",'<div id="globalCustomFields" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-account-circle" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="CONTACTMANAGER.GLOBALCUSTOMFIELDS">GlobalCustomFields</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="CONTACTMANAGER.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedGlobalCustomFields.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedGlobalCustomFields =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="CONTACTMANAGER.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-globalCustomFields-count">\n <span>{{vm.selectedGlobalCustomFields.length}}</span>\n <span translate="CONTACTMANAGER.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CONTACTMANAGER.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllGlobalCustomFields()" translate="CONTACTMANAGER.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectGlobalCustomFields()" translate="CONTACTMANAGER.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedGlobalCustomFields" csv-label="true" filename="globalCustomFields.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedGlobalCustomFields($event)" aria-label="delete selected" translate translate-attr-label="CONTACTMANAGER.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- GLOBALCUSTOMFIELD TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedGlobalCustomFields" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getGlobalCustomFields">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | translate }}</th>\n <th md-column md-order-by="alias">{{ \'CONTACTMANAGER.ALIAS\' | translate }}</th>\n <th md-column md-order-by="type">{{ \'CONTACTMANAGER.TYPE\' | translate }}</th>\n <th md-column md-order-by="required">{{ \'CONTACTMANAGER.REQUIRED\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.globalCustomFields.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="globalCustomField" md-select-id="id" ng-repeat="globalCustomField in vm.globalCustomFields.rows">\n <td md-cell ng-if="globalCustomField.userpic"><img class="avatar" alt="{{globalCustomField.name}}" ng-src="api/users/{{globalCustomField.id}}/avatar" /></td>\n <td md-cell ng-if="!globalCustomField.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{globalCustomField.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditGlobalCustomField($event, globalCustomField)" md-cell class="id ">{{globalCustomField.id}}</td>\n <td ng-click="vm.createOrEditGlobalCustomField($event, globalCustomField)" md-cell class="alias ">{{globalCustomField.alias}}</td>\n <td ng-click="vm.createOrEditGlobalCustomField($event, globalCustomField)" md-cell class="type ">{{ vm.arraytype[globalCustomField.type].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(globalCustomField, ev) : vm.createOrEditGlobalCustomField($event, globalCustomField)" md-cell class="required ">\n <md-icon md-colors="{color: {{globalCustomField.required ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{globalCustomField.required ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CONTACTMANAGER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(globalCustomField, $event )" translate="CONTACTMANAGER.EDIT_GLOBALCUSTOMFIELD">\n Edit GlobalCustomField\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(globalCustomField, $event )" translate="CONTACTMANAGER.DELETE_GLOBALCUSTOMFIELD">\n Delete GlobalCustomField\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.globalCustomFields.count}}" md-on-paginate="vm.getGlobalCustomFields" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / GLOBALCUSTOMFIELD TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD GLOBALCUSTOMFIELD BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-globalCustomField-button" ng-click="vm.createOrEditGlobalCustomField($event)" aria-label="add globalCustomField" translate translate-attr-aria-label="CONTACTMANAGER.ADD_GLOBALCUSTOMFIELD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD GLOBALCUSTOMFIELD BUTTON --\x3e\n</div>'),e.put("app/main/apps/contactmanager/views/lists/create/dialog.html",'<md-dialog class="list-dialog" aria-label="New List">\n <form name="listForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.list.name" ng-required="true" autofocus>\n\n <div ng-messages="listForm[\'name\'].$error" ng-show="listForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.list.description">\n\n <div ng-messages="listForm[\'description\'].$error" ng-show="listForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newList" ng-click="vm.saveList()" class="send-button md-accent md-raised" ng-disabled="listForm.$invalid || listForm.$pristine" aria-label="SAVE" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newList" ng-click="vm.addNewList()" class="send-button md-accent md-raised" ng-disabled="listForm.$invalid" aria-label="ADD" translate="CONTACTMANAGER.ADD_LIST" translate-attr-aria-label="CONTACTMANAGER.ADD_LIST">\n ADD LIST\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newList" ng-click="vm.deleteList($event)" aria-label="DELETE" translate translate-attr-aria-label="CONTACTMANAGER.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/lists/edit/agentadd/agentadd.html",'<md-dialog class="list-dialog" aria-label="list" ng-init="vm.onInit()">\n <form name="listForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="CONTACTMANAGER.AGENTADD_LIST">Add Agent to list</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/lists/edit/customFields/dialog.html",'<md-dialog class="customField-dialog" aria-label="New CustomField">\n <form name="customFieldForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.ALIAS">Alias</label>\n <input type="" name="alias" ng-model="vm.customField.alias" ng-required="true" autofocus>\n\n <div ng-messages="customFieldForm[\'alias\'].$error" ng-show="customFieldForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.TYPE">Type</label>\n <md-select name="type" ng-model="vm.customField.type" required ng-disabled="!vm.newCustomField">\n <md-option ng-value="\'text\'">Text</md-option>\n <md-option ng-value="\'select\'">Select</md-option>\n <md-option ng-value="\'number\'">Number</md-option>\n <md-option ng-value="\'switch\'">Switch</md-option>\n <md-option ng-value="\'datetime\'">Datetime</md-option>\n </md-select>\n <div ng-messages="customFieldForm[\'type\'].$error" ng-show="customFieldForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.customField.type == \'select\'" class="md-block">\n <md-list>\n <md-list-item layout-margin>\n <md-button class="md-fab md-mini md-secondary" ng-click="vm.addItem(vm.customField.values);">\n <md-tooltip><span translate="CONTACTMANAGER.ADD">ADD</span></md-tooltip>\n <md-icon md-font-icon="icon-plus" aria-label="alert error"></md-icon>\n </md-button>\n <md-button ng-if="vm.customField.values.length" class="md-fab md-mini md-warn md-secondary" ng-click="vm.removeItems(vm.customField.values);">\n <md-tooltip><span translate="CONTACTMANAGER.DELETE_ALL">Delete All</span></md-tooltip>\n <md-icon md-font-icon="icon-delete" aria-label="alert error"></md-icon>\n </md-button>\n </md-list-item>\n </md-list>\n <md-list ng-sortable="vm.sortable">\n <md-list-item ng-repeat="item in vm.customField.values" style="border: 1px solid #ccc!important; border-radius: 7px;" layout-margin>\n <div>\n <md-icon class="s24" style="cursor:move" md-font-icon="icon-drag" aria-label="drag"></md-icon>\n <input type="text" ng-model="item.value" flex>\n </div>\n <md-button class="md-fab md-mini md-warn md-secondary" ng-click="vm.removeItem(vm.customField.values, $index);">\n <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n <md-icon md-font-icon="icon-delete" aria-label="alert error"></md-icon>\n </md-button>\n </md-list-item>\n </md-list>\n <md-list>\n <md-list-item ng-if="!vm.customField.values.length" layout="row" layout-align="center center">\n <em translate="CONTACTMANAGER.NO_AVAILABLE_ITEMS">No Available Items</em>\n </md-list-item>\n </md-list>\n </div>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.customField.required" aria-label="Required"><span translate="CONTACTMANAGER.REQUIRED">Required</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.customField.type == \'text\'" class="md-block">\n <md-switch ng-model="vm.customField.clickToAction" aria-label="clickToAction"><span translate="CONTACTMANAGER.CLICKTOACTION">clickToAction</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.customField.clickToAction" class="md-block">\n <label translate="CONTACTMANAGER.ACTIONTYPE">actionType</label>\n <md-select name="actionType" ng-model="vm.customField.actionType">\n <md-option ng-value="\'voice\'">Voice</md-option>\n </md-select>\n <div ng-messages="customFieldForm[\'actionType\'].$error" ng-show="customFieldForm[\'actionType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.ACTIONTYPE_REQUIRED">actionType field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newCustomField" ng-click="vm.saveCustomField()" class="send-button md-accent md-raised" ng-disabled="customFieldForm.$invalid || customFieldForm.$pristine" aria-label="SAVE" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newCustomField" ng-click="vm.addNewCustomField()" class="send-button md-accent md-raised" ng-disabled="customFieldForm.$invalid" aria-label="ADD" translate="CONTACTMANAGER.ADD_CUSTOMFIELD" translate-attr-aria-label="CONTACTMANAGER.ADD_CUSTOMFIELD">\n ADD CUSTOMFIELD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newCustomField" ng-click="vm.deleteCustomField($event)" aria-label="DELETE" translate translate-attr-aria-label="CONTACTMANAGER.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="CONTACTMANAGER.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/contactmanager/views/lists/edit/view.html",'<div id="contactmanager-list" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-lists-button md-icon-button" aria-label="Go to lists" ng-click="vm.gotoLists()" translate translate-attr-aria-label="CONTACTMANAGER.GO_TO_LISTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="list-image" hide-xs>\n <img ng-src="assets/images/business/lists.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.list.id}}\n <span ng-if="vm.list.name">{{vm.list.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="CONTACTMANAGER.CREATED_AT"></span> <span>{{vm.list.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.list, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="CONTACTMANAGER.GOTO_LIST"></span></md-tooltip>\n <md-icon md-font-icon="icon-forward"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.list, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="CONTACTMANAGER.AGENTADD_LIST"></span></md-tooltip>\n <md-icon md-font-icon="icon-eye"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveList()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (customFieldsForm.$invalid) || (voiceDispositionsForm.$invalid)" translate="CONTACTMANAGER.SAVE" translate-attr-aria-label="CONTACTMANAGER.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="CONTACTMANAGER.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="list-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="CONTACTMANAGER.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.list.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.list.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="CONTACTMANAGER.PREFIX">Prefix</label>\n <input type="text" name="dialPrefix" ng-model="vm.list.dialPrefix" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'dialPrefix\'].$error" ng-show="generalForm[\'dialPrefix\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="CONTACTMANAGER.ERRORS.PREFIX_REQUIRED">Prefix field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CONTACTMANAGER.CUSTOMFIELDS">CUSTOMFIELDS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="list-detail-form-container customfields md-background-bg md-whiteframe-1dp">\n <div ng-controller="ListCustomFieldsController as vm_dc" ng-init="vm_dc.init(vm.list, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedListCustomFields.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CONTACTMANAGER.CUSTOMFIELDS">CustomFields</span>\n <ms-search-bar on-search="vm_dc.getListCustomFields()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditListCustomField($event)" aria-label="add customField" translate translate-attr-label="CONTACTMANAGER.ADD_CUSTOMFIELD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedListCustomFields.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedListCustomFields.length}} {{vm_dc.selectedListCustomFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedListCustomFields" csv-label="true" filename="lists.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedListCustomFields($event)" aria-label="delete selected" translate translate-attr-label="CONTACTMANAGER.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedListCustomFields" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getListCustomFields">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'CONTACTMANAGER.ID\' | translate }}\n </th>\n <th md-column md-order-by="alias">\n {{ \'CONTACTMANAGER.ALIAS\' | translate }}\n </th>\n <th md-column md-order-by="type">\n {{ \'CONTACTMANAGER.TYPE\' | translate }}\n </th>\n <th md-column md-order-by="required">\n {{ \'CONTACTMANAGER.REQUIRED\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="customField" md-select-id="id" ng-repeat="customField in vm_dc.listCustomFields.rows">\n <td ng-click="vm_dc.createOrEditListCustomField($event, customField)" md-cell>\n {{customField.id}}\n </td>\n <td ng-click="vm_dc.createOrEditListCustomField($event, customField)" md-cell>\n {{customField.alias}}\n </td>\n <td ng-click="vm_dc.createOrEditListCustomField($event, customField)" md-cell>\n {{ vm_dc.arraytype[customField.type].option }} </td>\n\n <td ng-click="vm_dc.createOrEditListCustomField($event, customField)" md-cell class="required ">\n <md-icon md-colors="{color: {{customField.required ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{customField.required? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CONTACTMANAGER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditListCustomField($event, customField)" translate="CONTACTMANAGER.EDIT_CUSTOMFIELD">\n Edit CustomField\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(customField, $event)" translate="CONTACTMANAGER.DELETE_CUSTOMFIELD">\n Delete CustomField\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.listCustomFields.rows.length">\n <td md-cell colspan="9">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="CONTACTMANAGER.NO_CUSTOMFIELD_AVAILABLE">No customfield available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.listCustomFields.count}}" md-on-paginate="vm_dc.getListCustomFields" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="CONTACTMANAGER.DISPOSITIONS">DISPOSITIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div ng-controller="ListDispositionsController as vm_dc" ng-init="vm_dc.init(vm.list, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="list-detail-form-container voicedispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedListDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="CONTACTMANAGER.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add contactmanager dispositions" translate translate-attr-label="CONTACTMANAGER.ADD_DISPOSITION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" csv-label="true" filename="lists.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="CONTACTMANAGER.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_dc.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'CONTACTMANAGER.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'CONTACTMANAGER.DESCRIPTION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CONTACTMANAGER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(disposition, $event)" translate="TOOLS.DELETE_DISPOSITION">\n Delete Disposition\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/contactmanager/views/lists/lists.html",'<div id="lists" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-account-circle" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="CONTACTMANAGER.LISTS">Lists</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="CONTACTMANAGER.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedLists.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedLists =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="CONTACTMANAGER.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-lists-count">\n <span>{{vm.selectedLists.length}}</span>\n <span translate="CONTACTMANAGER.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="CONTACTMANAGER.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllLists()" translate="CONTACTMANAGER.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectLists()" translate="CONTACTMANAGER.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedLists" csv-label="true" filename="lists.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedLists($event)" aria-label="delete selected" translate translate-attr-label="CONTACTMANAGER.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- LIST TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedLists" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getLists">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'CONTACTMANAGER.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'CONTACTMANAGER.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'CONTACTMANAGER.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.lists.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="CONTACTMANAGER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="list" md-select-id="id" ng-repeat="list in vm.lists.rows">\n <td md-cell ng-if="list.userpic"><img class="avatar" alt="{{list.name}}" ng-src="api/users/{{list.id}}/avatar" /></td>\n <td md-cell ng-if="!list.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{list.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(list, ev) : vm.createOrEditList($event, list)" md-cell class="id ">{{list.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(list, ev) : vm.createOrEditList($event, list)" md-cell class="name ">{{list.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(list, ev) : vm.createOrEditList($event, list)" md-cell class="description ">{{list.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="CONTACTMANAGER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(list, $event )" translate="CONTACTMANAGER.EDIT_LIST">\n Edit List\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotocontactsgoto(list, $event )" translate="CONTACTMANAGER.GOTOCONTACTS_LIST">\n goToContacts List\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.role === \'admin\' || vm.userProfile.downloadContactManagerLists">\n\n <md-button ng-click="vm.exportcsvcontactsexport(list, $event )" translate="CONTACTMANAGER.EXPORTCSVCONTACTS_LIST">\n exportCsvContacts List\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(list, $event )" translate="CONTACTMANAGER.AGENTADD_LIST">\n AgentAdd List\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(list, $event )" translate="CONTACTMANAGER.DELETE_LIST">\n Delete List\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'CONTACTMANAGER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'CONTACTMANAGER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'CONTACTMANAGER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.lists.count}}" md-on-paginate="vm.getLists" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / LIST TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD LIST BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-list-button" ng-click="vm.createOrEditList($event)" aria-label="add list" translate translate-attr-aria-label="CONTACTMANAGER.ADD_LIST">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD LIST BUTTON --\x3e\n</div>'),e.put("app/main/apps/dashboards/views/custom/custom.html",'<div ng-if="!vm.customDashboard">\n <p>Custom Dashboard not available...</p>\n</div>\n<div id="dashboard-custom" ng-if="vm.customDashboard" ng-cloak layout-fill>\n <md-content>\n <md-toolbar class="md-default md-accent filter-header">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm.customDashboard.name}}</span>\n <div flex></div>\n <div layout="column">\n <span class="font-size-10" translate="DASHBOARDS.FILTER_VOICE_QUEUES">Filter Voice Queues</span>\n <md-select placeholder="Select one or more queues" class="font-size-12 no-margin w-200" md-on-close="vm.onChangeVoiceQueues()" ng-model="vm.voiceQueuesSelected" multiple aria-label="voiceQueues">\n <md-option ng-value="voiceQueue.id" ng-repeat="voiceQueue in vm.voiceQueues.rows">{{ voiceQueue.name }}</md-option>\n </md-select>\n </div>\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-icon-button" ng-click="vm.goToEdit()" aria-label="goToEdit">\n <md-tooltip md-direction="top"><span translate="DASHBOARDS.EDIT"></span></md-tooltip>\n <md-icon md-font-icon="icon-table-edit"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <ms-widget-engine config="vm.customDashboard"></ms-widget-engine>\n </md-content>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/agent.general.html",'<div id="agent-general" layout="column">\n <div layout="row" layout-align="start center" class="md-primary-bg">\n <md-button class="md-raised no-margin width-50" style="border-radius: 0px" ng-class="{\'md-primary\': !vm.isActiveTab(0)}" ng-click="vm.onClickTab(0)" aria-label="home">\n <md-tooltip md-direction="bottom" md-delay="500">Home</md-tooltip>\n <md-icon md-font-icon="icon-home" class="icon"></md-icon>\n </md-button>\n\n <ms-tab-scroll style="overflow: hidden;">\n <div layout="column" ng-repeat="(key, tab) in vm.tabs | orderByDate " ng-click="vm.onClickTab(tab.id)" ng-class="{\'grey-50-bg\': vm.isActiveTab(tab.id)}">\n <div style="height: 34px" layout="row" layout-align="space-between center">\n <md-icon md-font-icon="{{tab.icon}}" class="icon s16 margin-horizontal-5" ng-class="tab.color + \'-fg\'">\n </md-icon>\n <span class="text-truncate font-size-12" ng-class="vm.isActiveTab(tab.id) ? \'black-fg\' : \'grey-300-fg\'">\n {{tab.title}}\n <span ng-if="tab.badges" class="badge md-white-fg md-red-bg">{{tab.badges}}</span></span>\n <md-button class="md-icon-button md-mini no-margin" ng-class="vm.isActiveTab(tab.id) ? \'md-primary\' : \'grey-300-fg\'" aria-label="close" ng-click="vm.closeTab(tab); $event.stopPropagation()">\n <md-icon md-font-icon="icon-close-circle-outline" class="icon s16"></md-icon>\n </md-button>\n </div>\n <div style="height: 2px" ng-class="vm.isActiveTab(tab.id) ? tab.color + \'-bg\' : \'\'"></div>\n </div>\n </ms-tab-scroll>\n </div>\n <div layout="row" class="agent-content" ng-if="vm.isActiveTab(0)" ng-style="{\'top\': vm.detectBrowser.browser == \'safari\' ? \'100px\' : \'36px\'}" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.html\'" ng-controller="AgentGeneralHomeController as vm_home" ng-init="vm_home.init(vm.license, vm.setting)"></div>\n <div ng-if="!vm.isActiveTab(0)" ng-repeat="(key, tab) in vm.tabs | orderByDate " ng-switch="tab.type">\n <div ng-switch-when="contact">\n <div class="agent-content" ms-scroll ng-if="vm.isActiveTab(tab.id)" ng-style="{\'top\': vm.detectBrowser.browser == \'safari\' ? \'100px\' : \'36px\'}" ng-include="\'app/main/apps/dashboards/views/general/agent/contact/agent.general.contact.html\'" ng-controller="AgentGeneralContactController as vm" ng-init="vm.init(tab,$parent.vm.license)"></div>\n </div>\n <div ng-switch-when="popup">\n <div ng-if="vm.isActiveTab(tab.id)" ms-scroll ng-include="\'app/main/apps/dashboards/views/general/agent/popup/agent.general.popup.html\'" ng-controller="AgentGeneralPopupController as vm" ng-init="vm.init(tab)"></div>\n </div>\n <div ng-switch-when="jscripty">\n <div class="agent-content" ms-scroll ng-if="vm.isActiveTab(tab.id)" ng-style="{\'top\': vm.detectBrowser.browser == \'safari\' ? \'100px\' : \'36px\'}" ng-include="\'app/main/apps/dashboards/views/general/agent/jscripty/agent.general.jscripty.html\'" ng-controller="AgentGeneralJscriptyController as vm" ng-init="vm.init(tab)"></div>\n </div>\n <div ng-switch-when="bot">\n <div id="interaction-app" ng-if="vm.isActiveTab(tab.id)" class="agent-content" ng-style="{\'top\': vm.detectBrowser.browser == \'safari\' ? \'100px\' : \'36px\'}" ng-include="\'app/main/apps/dashboards/views/general/agent/bot/agent.general.bot.html\'" ng-controller="AgentGeneralBotController as vm" ng-init="vm.init(tab, $parent.vm.setting)"></div>\n </div>\n <div ng-switch-when="interaction">\n <div id="interaction-app" ng-if="vm.isActiveTab(tab.id)" class="agent-content" ng-style="{\'top\': vm.detectBrowser.browser == \'safari\' ? \'100px\' : \'36px\'}" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.html\'" ng-controller="AgentGeneralInteractionController as vm" ng-init="vm.init(tab, $parent.vm.setting)">\n </div>\n </div>\n <div ng-switch-when="iframe">\n <div id="iframe" ng-if="vm.isActiveTab(tab.id)" class="agent-content" ng-style="{\'top\': vm.detectBrowser.browser == \'safari\' ? \'100px\' : \'36px\'}" ng-include="\'app/main/apps/dashboards/views/general/agent/iframe/agent.general.iframe.html\'" ng-controller="AgentGeneralIframeController as vm" ng-init="vm.init(tab, $parent.vm.setting)">\n </div>\n </div>\n </div>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/bot/agent.general.bot.html",'\x3c!-- CONTENT CARD --\x3e\n<md-content class="content-card" layout="row" layout-fill>\n\n <div ng-if="!vm.showInteraction" class="start-point" flex layout="column" layout-align="center center">\n <div class="big-circle md-whiteframe-4dp">\n <md-icon class="s128 md-accent pink-fg" md-font-icon="fas fa-robot"></md-icon>\n </div>\n <span class="app-title" translate="DASHBOARDS.WAITING">Waiting</span>\n <span class="hide show-gt-md secondary-text" translate="DASHBOARDS.LOADING_INTERACTION">We are loading the\n interaction...</span>\n </div>\n\n <div ng-if="vm.showInteraction" flex layout="row">\n <md-card flex="100" class="interaction">\n \x3c!-- TOOLBAR --\x3e\n <md-toolbar class="interaction-toolbar">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <md-icon md-font-icon="fas fa-robot" class="s20 pink-fg"></md-icon>\n <div class="padding-left-10" layout="column" layout-align="center start" flex>\n <div class="font-size-14" layout="row" layout-align="start center" layout-fill>\n <span>#{{vm.tab.data.uniqueid}} - {{vm.tab.title}}</span>\n </div>\n </div>\n <div layout="row" layout-align="end center">\n\n </div>\n </div>\n </md-toolbar>\n \x3c!-- / TOOLBAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <md-content id="interaction-content" name="{{\'interaction-content-\' + vm.tab.id}}" flex ms-scroll layout-wrap>\n <div class="interaction-messages">\n \x3c!-- MESSAGES --\x3e\n <div layout="row" ng-repeat="message in vm.messages.rows" class="md-padding message-row" ng-class="vm.getMessagesAlignment(message)">\n <img ng-if="message.direction ===\'in\'" src="assets/images/avatars/customer.png" class="avatar" />\n <img ng-if="message.direction ===\'out\'" class="avatar" src="assets/images/avatars/robot.png">\n\n <div class="bubble" ng-switch="message.direction">\n <div>\n <div ng-switch-when="in" class="time secondary-text">\n {{vm.tab.title}} - {{message.createdAt | date: \'medium\'}}\n </div>\n <div ng-switch-when="out" class="time secondary-text" layout="row" layout-align="end center">\n <div layout-padding>\n System - {{message.createdAt | date: \'medium\'}}\n </div>\n <div>\n <md-icon class="s18" md-font-icon="icon-check-all md-accent"></md-icon>\n </div>\n </div>\n </div>\n <div ng-bind-html="message.body | embed:vm.emojiOptions" class="message" layout="row" layout-align="end center"></div>\n </div>\n </div>\n \x3c!-- / MESSAGES --\x3e\n </div>\n </md-content>\n \x3c!-- / CONTENT --\x3e\n </md-card>\n </div>\n</md-content>\n\x3c!-- / CONTENT CARD --\x3e'),e.put("app/main/apps/dashboards/views/general/agent/contact/agent.general.contact.html",'<md-tabs md-selected="vm.currentTab" md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="DASHBOARDS.DETAIL">Detail</span>\n </md-tab-label>\n <md-tab-body>\n <md-content>\n <div layout="row" class="pr-10">\n <div layout="row" flex="75" class="flex-scrollable only-x">\n <md-card ng-repeat="call in vm.tab.calls track by call.uniqueid" class="call-info-card">\n <md-progress-linear md-mode="indeterminate" ng-if="vm.checkingCallStatus"></md-progress-linear>\n <md-card-header layout="row" layout-align="space-between">\n <span ng-if="call.answertime" class="text-boxed indigo-100-bg ml-0">\n <timer start-time="call.answertime"></timer>\n <md-tooltip md-direction="bottom">\n {{ \'DASHBOARDS.ELAPSED_ANSWERED\' | translate }}\n </md-tooltip>\n </span>\n <span ng-if="call.disposedAt" class="text-boxed amber-200-bg">\n <timer start-time="call.disposedAt"></timer>\n <md-tooltip md-direction="bottom">\n {{ \'DASHBOARDS.ELAPSED_DISPOSED\' | translate }}\n </md-tooltip>\n </span>\n <md-button class="md-icon-button no-margin reload-button" ng-click="vm.checkCallStatus(call)" ng-disabled="vm.checkingCallStatus">\n <md-icon md-font-icon="icon-reload" class="s22"></md-icon>\n <md-tooltip md-direction="bottom">\n {{ \'DASHBOARDS.RELOAD\' | translate }}\n </md-tooltip>\n </md-button>\n </md-card-header>\n <md-divider></md-divider>\n <md-card-content>\n <div layout="column" layout-align="space-between start" class="word-break-all mr-16">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="{{ call.routeId ? \'icon-phone-outgoing\' : \'icon-phone-incoming\'}}" class="s20 mr-5">\n </md-icon>\n <span class="h2" privacy ng-cloak>{{ call.routeId ? call.destcalleridnum : call.calleridnum }}</span>\n </div>\n\n <div class="subtitle h4 secondary-text" ng-if="call.calleridname && call.calleridname != \'<unknown>\' && !call.routeId">\n <md-icon md-font-icon="icon-account" class="s20"></md-icon>\n Name: <span privacy ng-cloak>{{ call.calleridname }}</span>\n </div>\n\n <div class="text h4 pt-8" ng-if="call.queue">\n <md-icon md-font-icon="icon-stackoverflow" class="s20"></md-icon>\n Queue: {{call.queue}}\n </div>\n <div class="text h4 pt-8" ng-if="call.variables.extravar">\n <md-icon md-font-icon="icon-minus" class="s20"></md-icon>\n Extra: {{call.variables.extravar}}\n </div>\n </div>\n <div layout="row" layout-align="center end" class="mt-8">\n <md-button ng-if="call.disposedAt" type="submit" ng-click="vm.disposeCall($event, call)" class="send-button md-accent md-raised mr-0 mv-0">\n {{ \'DASHBOARDS.DISPOSE\' | translate}}\n </md-button>\n </div>\n </md-card-content>\n </md-card>\n </div>\n <div flex="25" layout="row" layout-md="column" layout-sm="column" layout-align="end center" layout-align-md="center center">\n <md-button type="submit" ng-click="vm.mergeContact($event)" class="send-button md-raised md-accent ng-scope" ng-if="!vm.newContact" ng-disabled="vm.detailForm.$invalid || vm.customFieldsForm.$invalid || vm.socialForm.$invalid" aria-label="merge">\n <md-tooltip md-direction="top"><span translate="DASHBOARDS.MERGE"></span></md-tooltip>\n <md-icon md-font-icon="icon-source-fork"></md-icon>\n </md-button>\n <md-button type="submit" ng-click="vm.duplicateContact($event)" class="send-button md-raised md-accent ng-scope" ng-if="!vm.newContact" ng-disabled="vm.detailForm.$invalid || vm.customFieldsForm.$invalid || vm.socialForm.$invalid" aria-label="duplicate">\n <md-tooltip md-direction="top"><span translate="DASHBOARDS.DUPLICATE"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n <md-button type="submit" ng-click="vm.addNewContact($event)" class="send-button md-accent md-raised" ng-if="vm.newContact" ng-disabled="vm.detailForm.$invalid || vm.customFieldsForm.$invalid || vm.socialForm.$invalid" aria-label="add">\n {{ \'DASHBOARDS.ADD\'| translate }}\n </md-button>\n <md-button type="submit" ng-click="vm.saveContact($event)" class="send-button md-accent md-raised" ng-if="!vm.newContact" ng-disabled="vm.detailForm.$invalid || vm.customFieldsForm.$invalid || vm.socialForm.$invalid" aria-label="save">\n {{ \'DASHBOARDS.SAVE\' | translate }}\n </md-button>\n </div>\n </div>\n <div layout="row">\n <div layout="column" flex="75">\n <md-card layout-padding>\n <div class="h2 secondary-text text-truncate" translate="DASHBOARDS.PERSONAL_INFO">\n PERSONAL_INFO</div>\n <div class="subtitle secondary-text">\n <span translate="CONTACTMANAGER.CREATED_AT"></span>\n <span>{{vm.contact.createdAt | date:\'medium\'}}</span>\n </div>\n\n <form name="vm.detailForm" novalidate>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <div layout="row" flex>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.FIRSTNAME">First Name</label>\n <md-icon md-font-icon="icon-account" class="firstname"></md-icon>\n <input type="text" name="firstName" ng-model="vm.contact.firstName" class="text-truncate" required privacy ng-cloak>\n <div ng-messages="vm.detailForm.firstName.$error" ng-show="vm.detailForm.firstName.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.FIRSTNAME_REQUIRED">First name\n field is required</span>\n </div>\n </div>\n </md-input-container>\n <div>\n <md-menu ng-if="!vm.newContact">\n <md-button ng-disabled="!vm.license.jscripty" class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="JSCRIPTY PROJECTS" ng-click="$mdOpenMenu($event); vm.getJscriptyProjects();" aria-label="jscripty">\n <md-icon md-font-icon="icon-script"></md-icon>\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.loadingJscriptyProjects">\n <md-progress-circular class="md-accent margin-auto" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingJscriptyProjects && vm.jscriptyProjects.count > 0" ng-repeat="project in vm.jscriptyProjects.rows">\n <md-button ng-click="vm.addJscriptyTab(project, $event)">\n <md-icon md-font-icon="icon-script"></md-icon>\n {{project.name}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingJscriptyProjects && (!vm.jscriptyProjects || vm.jscriptyProjects.count === 0)">\n <md-button disabled translate="DASHBOARDS.NO_JSCRIPTY_PROJECTS_AVAILABLE">\n <md-icon md-font-icon="icon-script"></md-icon>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </div>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.LASTNAME">Last Name</label>\n <input type="text" name="lastName" ng-model="vm.contact.lastName" class="text-truncate" privacy ng-cloak>\n </md-input-container>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <div layout="row" flex>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.PHONE">Phone</label>\n <md-icon md-font-icon="icon-phone"></md-icon>\n <input type="text" name="phone" ng-model="vm.contact.phone" class="text-truncate" privacy ng-cloak>\n <div class="hint"><span ng-show="!vm.user.phoneBarRemoteControl || !vm.contact.phone" translate="CONTACTMANAGER.HELP.PHONEBAR_API"></span></div>\n </md-input-container>\n <div>\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="vm.contact.phone" prefix="vm.list ? vm.list.dialPrefix : null" license="vm.license" type="\'button\'"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </div>\n </div>\n <div flex="5"></div>\n <div layout="row" flex>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.MOBILE">Mobile</label>\n <md-icon md-font-icon="icon-cellphone-iphone"></md-icon>\n <input type="text" name="mobile" ng-model="vm.contact.mobile" class="text-truncate" privacy ng-cloak>\n <div class="hint"><span ng-show="!vm.user.phoneBarRemoteControl || !vm.contact.mobile" translate="CONTACTMANAGER.HELP.PHONEBAR_API"></span></div>\n </md-input-container>\n <div>\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="vm.contact.mobile" prefix="vm.list ? vm.list.dialPrefix : null" license="vm.license" type="\'button\'"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </div>\n <div>\n <md-menu ng-if="!vm.newContact">\n <md-button ng-disabled="!vm.license.messaging || !vm.hasPermission(107) || !vm.contact.mobile" class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="NEW SMS" ng-click="$mdOpenMenu($event); vm.getAccounts(\'sms\')" aria-label="sms">\n <md-icon md-font-icon="icon-message-text"></md-icon>\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.loadingAccounts">\n <md-progress-circular class="md-accent margin-auto" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && vm.smsAccounts.count > 0" ng-repeat="account in vm.smsAccounts.rows">\n <md-button ng-click="vm.composeInteraction($event, \'Sms\', account, vm.contact.mobile)">\n <md-icon md-font-icon="icon-message-text"></md-icon>\n {{account.name}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && (!vm.smsAccounts || vm.smsAccounts.count === 0)">\n <md-button disabled translate="DASHBOARDS.NO_SMS_ACCOUNTS_AVAILABLE">\n <md-icon md-font-icon="icon-message-text"></md-icon>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <div>\n <md-menu ng-if="!vm.newContact">\n <md-button ng-disabled="!vm.license.whatsapp || !vm.hasPermission(114) || !vm.contact.mobile" class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="NEW WHATSAPP" ng-click="$mdOpenMenu($event); vm.getAccounts(\'whatsapp\')" aria-label="whatsapp">\n <md-icon md-font-icon="icon-whatsapp"></md-icon>\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.loadingAccounts">\n <md-progress-circular class="md-accent margin-auto" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && vm.whatsappAccounts.count > 0" ng-repeat="account in vm.whatsappAccounts.rows">\n <md-button ng-click="vm.composeInteraction($event, \'Whatsapp\', account, vm.contact.mobile)">\n <md-icon md-font-icon="icon-whatsapp"></md-icon>\n {{account.name}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && (!vm.whatsappAccounts || vm.whatsappAccounts.count === 0)">\n <md-button disabled translate="DASHBOARDS.NO_WHATSAPP_ACCOUNTS_AVAILABLE">\n <md-icon md-font-icon="icon-whatsapp"></md-icon>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </div>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <div layout="row" flex>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.EMAIL">Email</label>\n <md-icon md-font-icon="icon-email" class="email"></md-icon>\n <input type="email" name="email" ng-model="vm.contact.email" class="text-truncate" privacy ng-cloak>\n <div ng-messages="vm.detailForm.firstName.$error" ng-show="vm.detailForm.firstName.$touched" role="alert">\n <div ng-message="email">\n <span translate="DASHBOARDS.ERRORS.EMAIL_MUST_VALID">Email must be a\n valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <div>\n <md-menu ng-if="!vm.newContact">\n <md-button ng-disabled="!vm.license.mail || !vm.hasPermission(106) || !vm.contact.email" class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="NEW EMAIL" ng-click="$mdOpenMenu($event); vm.getAccounts(\'mail\')" aria-label="email">\n <md-icon md-font-icon="icon-email"></md-icon>\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.loadingAccounts">\n <md-progress-circular class="md-accent margin-auto" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && vm.mailAccounts.count > 0" ng-repeat="account in vm.mailAccounts.rows">\n <md-button ng-click="vm.composeInteraction($event, \'Mail\', account, vm.contact.email)">\n <md-icon md-font-icon="icon-email"></md-icon>\n {{account.name}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && (!vm.mailAccounts || vm.mailAccounts.count === 0)">\n <md-button disabled translate="DASHBOARDS.NO_MAIL_ACCOUNTS_AVAILABLE">\n <md-icon md-font-icon="icon-email"></md-icon>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </div>\n <div flex="5"></div>\n <div layout="row" flex>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.FAX">Fax</label>\n <md-icon md-font-icon="icon-deskphone"></md-icon>\n <input type="text" name="fax" ng-model="vm.contact.fax" privacy ng-cloak>\n </md-input-container>\n <div>\n <md-menu ng-if="!vm.newContact">\n <md-button ng-disabled="!vm.license.fax || !vm.hasPermission(109) || !vm.contact.fax" class="md-icon-button md-raised md-accent ng-scope md-ink-ripple" title="NEW FAX" ng-click="$mdOpenMenu($event); vm.getAccounts(\'fax\')" aria-label="fax">\n <md-icon md-font-icon="icon-deskphone"></md-icon>\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.loadingAccounts">\n <md-progress-circular class="md-accent margin-auto" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && vm.faxAccounts.count > 0" ng-repeat="account in vm.faxAccounts.rows">\n <md-button ng-click="vm.composeInteraction($event, \'Fax\', account, vm.contact.fax)">\n <md-icon md-font-icon="icon-deskphone"></md-icon>\n {{account.name}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.loadingAccounts && (!vm.faxAccounts || vm.faxAccounts.count === 0)">\n <md-button disabled translate="DASHBOARDS.NO_FAX_ACCOUNTS_AVAILABLE">\n <md-icon md-font-icon="icon-deskphone"></md-icon>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </div>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.DATE_OF_BIRTH">Date of Birth</label>\n <mdp-date-picker mdp-open-on-click mdp-format="YYYY-MM-DD" name="dateOfBirth" ng-model="vm.contact.dateOfBirth"></mdp-date-picker>\n </md-input-container>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.COMPANY">Company</label>\n <md-icon md-font-icon="icon-domain" class="email"></md-icon>\n <md-select name="company" ng-model="vm.contact.CompanyId">\n <md-option ng-value="company.id" ng-repeat="company in vm.tab.companies.rows">{{company.name}}\n </md-option>\n <md-option ng-value="null"><em translate="DASHBOARDS.NONE">None</em>\n </md-option>\n </md-select>\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.TAG">TAG</label>\n <md-icon md-font-icon="icon-tag"></md-icon>\n <md-select ng-model="vm.tab.Tags" multiple>\n <md-option ng-value="tag.id" ng-repeat="tag in vm.tab.tags.rows">\n {{tag.name}}</md-option>\n </md-select>\n </md-input-container>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.COUNTRY">Country</label>\n <md-icon md-font-icon="icon-home" class="country"></md-icon>\n <input type="text" name="country" ng-model="vm.contact.country" class="text-truncate">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.CITY">City</label>\n <input type="text" name="city" ng-model="vm.contact.city">\n </md-input-container>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.STREET">Street</label>\n <input type="text" name="street" ng-model="vm.contact.street">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="DASHBOARDS.POSTALCODE">Postal Code</label>\n <input type="text" name="postalCode" ng-model="vm.contact.postalCode">\n </md-input-container>\n </div>\n\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate translate-attr-placeholder="DASHBOARDS.NOTES">Notes</label>\n <md-icon md-font-icon="icon-note"></md-icon>\n <textarea ng-model="vm.contact.description" type="text" max-rows="4"></textarea>\n </md-input-container>\n </div>\n </form>\n </md-card>\n <md-card layout-padding>\n <div class="h2 secondary-text text-truncate" translate="DASHBOARDS.SOCIAL">Social</div>\n <form name="vm.socialForm" novalidate>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Facebook</label>\n <md-icon md-font-icon="icon-facebook" class="facebook"></md-icon>\n <input type="text" name="facebook" ng-model="vm.contact.facebook" class="text-truncate">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Twitter</label>\n <md-icon md-font-icon="icon-twitter" class="twitter"></md-icon>\n <input type="text" name="twitter" ng-model="vm.contact.twitter" class="text-truncate">\n </md-input-container>\n </div>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Line</label>\n <md-icon md-font-icon="fab fa-line"></md-icon>\n <input type="text" name="line" ng-model="vm.contact.line" class="text-truncate">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Viber</label>\n <md-icon md-font-icon="fab fa-viber"></md-icon>\n <input type="text" name="viber" ng-model="vm.contact.viber" class="text-truncate">\n </md-input-container>\n </div>\n <div layout-gt-sm="row" class="layout-gt-sm-row">\n <md-input-container class="md-block" flex-gt-sm="">\n <label>WeChat</label>\n <md-icon md-font-icon="fab fa-weixin"></md-icon>\n <input type="text" name="wechat" ng-model="vm.contact.wechat" class="text-truncate">\n </md-input-container>\n <div flex="5"></div>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>Telegram</label>\n <md-icon md-font-icon="icon-telegram"></md-icon>\n <input type="text" name="telegram" ng-model="vm.contact.telegram" class="text-truncate">\n </md-input-container>\n </div>\n </form>\n </md-card>\n </div>\n <div flex="25" layout="column" layout-padding>\n <md-card flex="100" layout-padding>\n <div class="h2 secondary-text text-truncate" translate="DASHBOARDS.CUSTOM_FIELDS">CUSTOM\n FIELDS</div>\n <form name="vm.customFieldsForm" novalidate>\n\n \x3c!-- START INPUT LIST --\x3e\n <md-input-container class="md-block">\n <label translate translate-attr-placeholder="DASHBOARDS.LIST">List</label>\n <md-select name="list" ng-disabled="!vm.newContact" ng-model="vm.contact.ListId" ng-change="vm.getCustomFields(vm.contact.ListId)" required>\n <md-optgroup label="Lists">\n <md-option ng-value="list.id" ng-repeat="list in vm.lists.rows">#{{list.id}} - {{list.name}}\n </md-option>\n </md-optgroup>\n </md-select>\n </md-input-container>\n \x3c!-- END INPUT LIST --\x3e\n\n <div ng-repeat="customField in vm.tab.customFields.rows" ng-switch="customField.type">\n <md-input-container class="md-block" ng-switch-when="datetime">\n <label>{{customField.alias}}<span ng-if="customField.required">*</span></label>\n <div ng-init="vm.contact[\'cf_\' + customField.id] = vm.getDateFromString(vm.contact[\'cf_\' + customField.id])">\n <mdp-date-picker mdp-open-on-click ng-required="customField.required" mdp-format="YYYY-MM-DD" ng-model="vm.contact[\'cf_\' + customField.id]">\n </mdp-date-picker>\n <mdp-time-picker mdp-open-on-click mdp-placeholder="Time" ng-required="customField.required" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.contact[\'cf_\' + customField.id]">\n </mdp-time-picker>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-switch-when="select">\n <label>{{customField.alias}}<span ng-if="customField.required">*</span></label>\n <md-select ng-model="vm.contact[\'cf_\' + customField.id]" ng-required="customField.required">\n <md-option ng-repeat="value in customField.values" ng-value="value.value">\n {{value.value}}</md-option>\n <md-option ng-value="null"><em translate="CONTACTMANAGER.NONE">None</em>\n </md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block" ng-switch-when="switch">\n <md-switch aria-label="{{customField.alias}}" ng-model="vm.contact[\'cf_\' + customField.id]" ng-true-value="1" ng-false-value="0">\n {{customField.alias}}<span ng-if="customField.required">*</span>\n </md-switch>\n </md-input-container>\n\n <md-input-container class="md-block" ng-switch-default>\n <div layout-gt-sm="row" class="layout-gt-sm-row"></div>\n <div layout="row" flex>\n <md-input-container class="md-block" flex-gt-sm="">\n <label>{{customField.alias}}<span ng-if="customField.required">*</span></label>\n <input type="{{customField.type}}" ng-model="vm.contact[\'cf_\' + customField.id]" ng-required="customField.required">\n </md-input-container>\n <ms-click-to-call ng-if="customField.clickToAction && customField.actionType === \'voice\'" target="vm.contact[\'cf_\' + customField.id]" prefix="vm.list ? vm.list.dialPrefix : null" license="vm.license" type="\'button\'"></ms-click-to-call>\n </div>\n </md-input-container>\n </div>\n </form>\n </md-card>\n </div>\n </div>\n </md-content>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="DASHBOARDS.CUSTOMER_JOURNEY">Customer Journey</span>\n </md-tab-label>\n <md-tab-body>\n <md-content class="md-padding" id="journey-content">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.html\'">\n </div>\n </md-content>\n </md-tab-body>\n </md-tab>\n</md-tabs>'),e.put("app/main/apps/dashboards/views/general/agent/contact/dispose/dialog.html",'<md-dialog class="agent-dialog" aria-label="agent dispose">\n <form name="disposition" class="md-inline-form" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="DASHBOARDS.DISPOSE"></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" ng-if="!vm.call.mandatoryDisposition">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div ng-if="!vm.isReschedule">\n <md-input-container class="md-block">\n <label translate="DASHBOARDS.DISPOSITION">Disposition</label>\n <md-select name="disposition" ng-model="vm.firstLevelDisposition" ng-change="vm.onDispositionChange(\'first\')" required>\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'first\' } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n <div ng-messages="dispositionForm.disposition.$error" ng-show="dispositionForm.disposition.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.firstLevelDisposition && vm.anySecondLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="DASHBOARDS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</label>\n <md-select name="secondLevelDisposition" ng-model="vm.secondLevelDisposition" ng-change="vm.onDispositionChange(\'second\')">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'second\', ParentId: vm.firstLevelDisposition.id } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.secondLevelDisposition" ng-click="vm.clearDispositionSelection(\'second\')" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear second level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <div ng-if="vm.secondLevelDisposition && vm.anyThirdLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="DASHBOARDS.THIRD_LEVEL_DISPOSITION">Third Level Disposition</label>\n <md-select name="thirdLevelDisposition" ng-model="vm.thirdLevelDisposition" ng-change="vm.onDispositionChange(\'third\')">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'third\', ParentId: vm.secondLevelDisposition.id } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.thirdLevelDisposition" ng-click="vm.clearDispositionSelection(\'third\')" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear third level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <md-input-container class="md-block">\n <label translate="DASHBOARDS.NOTE">Note</label>\n <textarea ng-model="vm.note" md-maxlength="255" max-rows="5" autofocus></textarea>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.availableCalls === 1">\n <md-switch ng-model="vm.autoClose" aria-label="Auto Close">\n <span translate="DASHBOARDS.AUTOCLOSE">Automatically close contact tab after disposal</span>\n </md-switch>\n </md-input-container>\n </div>\n <div ng-if="vm.isReschedule">\n <div layout="row">\n <div flex class="md-block">\n <mdp-date-picker mdp-open-on-click required name="date" mdp-placeholder="Date" mdp-format="YYYY-MM-DD" mdp-min-date="vm.hopper.minDate" ng-model="vm.hopper.dateTime">\n <div ng-messages="disposition.date.$error" ng-show="disposition.date.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.DATE_REQUIRED">Date is required</span>\n </div>\n <div ng-message="format">\n <span translate="DASHBOARDS.ERRORS.DATE_INVALID">Date is invalid</span>\n </div>\n </div>\n </mdp-date-picker>\n </div>\n\n <div flex class="md-block">\n <mdp-time-picker mdp-open-on-click required name="time" mdp-placeholder="Time" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.hopper.dateTime">\n <div ng-messages="disposition.time.$error" ng-show="disposition.time.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.TIME_REQUIRED">Time is required</span>\n </div>\n <div ng-message="format">\n <span translate="DASHBOARDS.ERRORS.TIME_INVALID">Time is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </div>\n <div ng-if="!vm.dialerCall">\n <md-input-container ng-if="vm.recallme && vm.user.selectRecallMeCampaign" class="md-block">\n <label translate="DASHBOARDS.CAMPAIGN">Campaign</label>\n <md-select name="queueCampaign" ng-model="vm.queueCampaign" required>\n <md-option ng-value="queueCampaign" ng-repeat="queueCampaign in vm.queueCampaigns.rows">\n <md-icon md-font-icon="icon-checkbox-blank-circle" ng-class="{\'green-fg\': queueCampaign.dialActive}" aria-label="Status">\n </md-icon>\n {{ queueCampaign.name }}\n </md-option>\n </md-select>\n <div ng-messages="disposition.queueCampaign.$error" ng-show="disposition.queueCampaign.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.CAMPAIGN_REQUIRED">Campaign field is required</span>\n </div>\n </div>\n </md-input-container>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions ng-if="!vm.isReschedule" layout="row">\n <md-button ng-disabled="disposition.$invalid || disposition.$pristine" class="send-button md-raised md-accent" ng-click="vm.saveDisposition()" ms-dialog-spinner>\n {{(vm.selectedDisposition.name ? \'DASHBOARDS.DISPOSE\' : \'DASHBOARDS.SAVE\') | translate}}\n </md-button>\n <md-button class="send-button md-raised md-primary" translate="DASHBOARDS.RESCHEDULE" ng-click="vm.saveDisposition(\'reschedule\')">\n Reschedule\n </md-button>\n <md-button class="send-button md-accent md-raised" translate="DASHBOARDS.RECALLME" ng-click="vm.saveDisposition(\'recallme\')">\n Recall Me\n </md-button>\n <span flex></span>\n <md-button ng-if="vm.hasBlackLists" class="md-raised md-warn" translate="DASHBOARDS.BLACKLIST" ng-click="vm.saveDisposition(\'blacklist\')">\n Blacklist\n </md-button>\n </md-dialog-actions>\n <md-dialog-actions ng-if="vm.isReschedule" layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.saveReschedule()" class="send-button md-accent md-raised" ng-disabled="disposition.$invalid || disposition.$pristine || vm.disable" aria-label="SAVE" translate="DASHBOARDS.SAVE" translate-attr-aria-label="DASHBOARDS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/contact/reschedule/dialog.html",'<md-dialog class="agent-dialog" aria-label="New Agent">\n <form name="dateTime" class="md-inline-form" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div layout="row">\n <div flex class="md-block">\n <mdp-date-picker mdp-open-on-click required name="date" mdp-placeholder="Date" mdp-format="YYYY-MM-DD" mdp-min-date="vm.hopper.minDate" ng-model="vm.hopper.dateTime">\n <div ng-messages="dateTime.date.$error" ng-show="dateTime.date.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.DATE_REQUIRED">Date is required</span>\n </div>\n <div ng-message="format">\n <span translate="DASHBOARDS.ERRORS.DATE_INVALID">Date is invalid</span>\n </div>\n </div>\n </mdp-date-picker>\n </div>\n\n <div flex class="md-block">\n <mdp-time-picker mdp-open-on-click required name="time" mdp-placeholder="Time" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.hopper.dateTime">\n <div ng-messages="dateTime.time.$error" ng-show="dateTime.time.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.TIME_REQUIRED">Time is required</span>\n </div>\n <div ng-message="format">\n <span translate="DASHBOARDS.ERRORS.TIME_INVALID">Time is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-disabled="vm.disable" ng-click="vm.saveDialog()" class="send-button md-accent md-raised" ng-disabled="dateTime.$invalid || dateTime.$pristine" aria-label="SAVE" translate="DASHBOARDS.SAVE" translate-attr-aria-label="DASHBOARDS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/contact/selection/dialog.html",'<md-dialog ng-init="vm.onInit()" class="contact-trigger-dialog" aria-label="Select contact" ng-cloak>\n <md-toolbar class="red-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ \'DASHBOARDS.SELECT_CONTACT\' | translate }}</span>\n </div>\n </md-toolbar>\n <md-dialog-content class="h-400 pv-16" ms-scroll>\n <div layout="row" class="p-10">\n <span class="font-size-16">{{ \'DASHBOARDS.MULTIPLE_CONTACTS_FOUND\' | translate }}<strong> {{ vm.callNumber }}</strong>.</span>\n <span class="font-size-16"> {{ \'DASHBOARDS.WHICH_ONE_TO_USE\' | translate }}</span>\n </div>\n <md-grid-list md-cols-xs="1" md-cols="2" md-row-height="fit" ng-class="vm.paginatedContacts[vm.page - 1].length > 2 ? \'two-rows-layout\' : \'one-row-layout\'" flex>\n <md-grid-tile ng-repeat="contact in vm.paginatedContacts[vm.page - 1]" md-rowspan="1">\n <md-card layout="column" class="contact-info" no-padding no-margin ng-click="vm.selectedContact = contact;" ng-class="{ \'light-blue-50-bg\' : vm.selectedContact && vm.selectedContact.id === contact.id }" flex>\n <md-card-title class="pt-16">\n <md-card-title-text layout-align="center start">\n <span class="font-size-16 text-bold">#{{ contact.id }} -\n <span privacy ng-cloak>{{ contact.firstName }} {{ contact.lastName }}</span>\n </span>\n <em class="font-size-12">{{ \'DASHBOARDS.LAST_UPDATED\' | translate }}: {{ contact.updatedAt }}</em>\n <span class="font-size-12">{{ \'DASHBOARDS.LIST\' | translate }}: {{ vm.lists[contact.ListId] }}</span>\n </md-card-title-text>\n <md-button class="md-icon-button no-margin" aria-label="Selected">\n <md-icon md-font-icon="{{ vm.selectedContact && vm.selectedContact.id === contact.id ? \'icon-checkbox-marked-circle\' : \'icon-checkbox-blank-circle-outline\' }}" ng-class="{ \'green-fg\': vm.selectedContact && vm.selectedContact.id === contact.id }"></md-icon>\n </md-button>\n </md-card-title>\n <md-divider></md-divider>\n <md-card-content layout="row" layout-align="center start" class="p-10">\n <span class="font-size-16">{{ \'DASHBOARDS.MATCHING_FIELD\' | translate }}:\n <strong privacy ng-cloak>{{ contact.matchingField }}</strong>\n </span>\n </md-card-content>\n </md-card>\n </md-grid-tile>\n </md-grid-list>\n </md-dialog-content>\n <md-dialog-actions layout="row">\n <div ng-if="vm.paginatedContacts.length > 1" layout="row" layout-align="center center" flex>\n <md-button ng-click="vm.page = vm.page - 1;" class="md-icon-button no-margin" ng-class="{ \'hidden\': vm.page <= 1 }" aria-label="Previous page">\n <md-icon md-font-icon="icon-chevron-double-left"></md-icon>\n </md-button>\n <span>{{ \'DASHBOARDS.PAGE\' | translate }} {{ vm.page }} {{ \'DASHBOARDS.OF\' | translate }}\n {{ vm.paginatedContacts.length }}</span>\n <md-button ng-click="vm.page = vm.page + 1;" class="md-icon-button no-margin" ng-class="{ \'hidden\': !vm.paginatedContacts[vm.page] }" aria-label="Next page">\n <md-icon md-font-icon="icon-chevron-double-right"></md-icon>\n </md-button>\n </div>\n <md-button ng-click="vm.selectContact()" class="select-button md-accent md-raised" ng-disabled="!vm.selectedContact" aria-label="Select" translate="DASHBOARDS.SELECT" translate-attr-aria-label="DASHBOARDS.SELECT">\n SELECT\n </md-button>\n </md-dialog-actions>\n</md-dialog>vc'),e.put("app/main/apps/dashboards/views/general/agent/home/abandoned/agent.general.abandoned.html",'<div ng-cloak>\n <md-content>\n <md-tabs md-selected="vm.selectedTab" md-dynamic-height md-border-bottom>\n <md-tab ng-if="vm_home.hasPermission(110)" label="{{\'DASHBOARDS.VOICE\' | translate}}">\n <md-content ng-if="vm.selectedTab === 0" ng-include="\'app/main/apps/dashboards/views/general/agent/home/abandoned/voice/agent.general.abandoned.voice.html\'" ng-controller="AgentHomeAbandonedVoiceController as vm_voice">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(110) && vm_home.license.dialer" label="{{\'DASHBOARDS.MOTION_BULL\' | translate}}">\n <md-content ng-if="vm.selectedTab === 1" ng-include="\'app/main/apps/dashboards/views/general/agent/home/abandoned/bull/agent.general.abandoned.bull.html\'" ng-controller="AgentHomeAbandonedBullController as vm_bull">\n </md-content>\n </md-tab>\n </md-tabs>\n </md-content>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/abandoned/bull/agent.general.abandoned.bull.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header blue-bg" ng-class="{\'h-128\' : vm_bull.isSearchBarVisible === true}">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.ABANDONEDQUEUECALLS">ABANDONED QUEUE CALLS</span>\n <ms-search-bar on-search="vm_bull.getAbandonedCalls()" query="vm_bull.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm_bull.isSearchBarVisible"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_bull.quickFilters" query="vm_bull.query" search="vm_bull.getAbandonedCalls()"></ms-quick-filter>\n <md-button class="md-icon-button reload-list" ng-click="vm_bull.refresh && vm_bull.refreshAbandonedCalls($event)" aria-label="Reload" translate translate-attr-label="DASHBOARDS.RELOAD">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip ng-if="vm_bull.showTooltip" md-visible="vm_bull.showTooltip">\n {{\'DASHBOARDS.CLICKRELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_bull.promise">\n <thead md-head md-order="vm_bull.query.sort" md-on-reorder="vm_bull.getAbandonedCalls">\n <tr md-row>\n <th md-column md-order-by="id">{{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column md-order-by="calleridname">{{\'DASHBOARDS.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="calleridnum">{{\'DASHBOARDS.PHONE\' | translate}}</th>\n <th md-column md-order-by="queue">{{\'DASHBOARDS.QUEUE\' | translate}}</th>\n <th md-column md-order-by="queuecallerabandonAt">{{\'DASHBOARDS.ABANDONAT\' | translate}}</th>\n <th md-column md-order-by="queuecallerexitAt">{{\'DASHBOARDS.QUEUECALLEREXITAT\' | translate}}</th>\n <th md-column md-order-by="queuecallerexitreason">{{\'DASHBOARDS.QUEUECALLEREXITREASON\' | translate}}\n </th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="secondDisposition">{{\'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="thirdDisposition">{{\'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.RESERVED\' | translate}}</th>\n <th md-column md-order-by="lastAssignedTo">{{\'DASHBOARDS.LASTASSIGNEDTO\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_bull.abandonedCalls.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="abandonedCall in vm_bull.abandonedCalls.rows">\n <td md-cell class="id">{{abandonedCall.id}}</td>\n <td md-cell class="firstName" privacy ng-cloak>{{abandonedCall.calleridname}}</td>\n <td md-cell class="phone">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="abandonedCall.calleridnum" license="vm_home.license" disabled="abandonedCall.lastAssignedTo !== vm_bull.currentUser.name">\n </ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="list">{{vm_bull.queuesMap[abandonedCall.queue]}}</td>\n <td md-cell class="list">\n {{abandonedCall.queuecallerabandonAt ? (abandonedCall.queuecallerabandonAt | formatdate) : (abandonedCall.queuecallerexitAt | formatdate) }}\n </td>\n <td md-cell class="list">\n {{abandonedCall.queuecallerexitAt ? (abandonedCall.queuecallerexitAt | formatdate) : undefined }}\n </td>\n <td md-cell class="list">{{abandonedCall.queuecallerexitreason}}</td>\n <td md-cell class="list">{{ abandonedCall.disposition }}</td>\n <td md-cell class="list">{{ abandonedCall.secondDisposition }}</td>\n <td md-cell class="list">{{ abandonedCall.thirdDisposition }}</td>\n <td md-cell class="actions">\n <md-switch no-margin ng-if="abandonedCall.lastAssignedTo === vm_bull.currentUser.name || !abandonedCall.lastAssignedTo" ng-disabled="vm_bull.disable[abandonedCall.id]" ng-model="abandonedCall.assigned" aria-label="reserved" ng-change="vm_bull.reserved(abandonedCall)">\n </md-switch>\n </td>\n <td md-cell class="list">{{abandonedCall.lastAssignedTo}}</td>\n <td md-cell class="actions">\n <md-menu ng-if="abandonedCall.lastAssignedTo === vm_bull.currentUser.name">\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="1">\n <md-menu-item>\n <md-button ng-click="vm_bull.dispose(abandonedCall)" class="text-capitalize" translate="DASHBOARDS.DISPOSE">Dispose\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-limit="vm_bull.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_bull.query.page" md-total="{{vm_bull.abandonedCalls.count}}" md-on-paginate="vm_bull.getAbandonedCalls" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/abandoned/dispose/dialog.html",'<md-dialog class="agent-dialog" aria-label="agent dispose">\n <form name="disposition" class="md-inline-form" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="DASHBOARDS.DISPOSE"></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div>\n <md-input-container class="md-block">\n <label translate="DASHBOARDS.DISPOSITION">Disposition</label>\n <md-select name="disposition" ng-model="vm.firstLevelDisposition" ng-change="vm.onDispositionChange(\'first\')" required>\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'first\' } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n <div ng-messages="dispositionForm.disposition.$error" ng-show="dispositionForm.disposition.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.firstLevelDisposition && vm.anySecondLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="DASHBOARDS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</label>\n <md-select name="secondLevelDisposition" ng-model="vm.secondLevelDisposition" ng-change="vm.onDispositionChange(\'second\')">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'second\', ParentId: vm.firstLevelDisposition.id } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.secondLevelDisposition" ng-click="vm.clearDispositionSelection(\'second\')" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear second level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <div ng-if="vm.secondLevelDisposition && vm.anyThirdLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="DASHBOARDS.THIRD_LEVEL_DISPOSITION">Third Level Disposition</label>\n <md-select name="thirdLevelDisposition" ng-model="vm.thirdLevelDisposition" ng-change="vm.onDispositionChange(\'third\')">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'third\', ParentId: vm.secondLevelDisposition.id } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.thirdLevelDisposition" ng-click="vm.clearDispositionSelection(\'third\')" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear third level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <md-input-container class="md-block">\n <label translate="DASHBOARDS.NOTE">Note</label>\n <textarea ng-model="vm.note" md-maxlength="255" max-rows="5" autofocus></textarea>\n </md-input-container>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button ng-disabled="disposition.$invalid || disposition.$pristine" class="send-button md-raised md-accent" ng-click="vm.saveDisposition()">\n'+" {{(vm.selectedDisposition.name ? 'DASHBOARDS.DISPOSE' : 'DASHBOARDS.SAVE') | translate}}\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>"),e.put("app/main/apps/dashboards/views/general/agent/home/abandoned/voice/agent.general.abandoned.voice.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header blue-bg" ng-class="{\'h-128\' : vm_voice.isSearchBarVisible === true}">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.ABANDONEDQUEUECALLS">ABANDONED QUEUE CALLS</span>\n <ms-search-bar on-search="vm_voice.getAbandonedCalls()" query="vm_voice.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm_voice.isSearchBarVisible"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_voice.quickFilters" query="vm_voice.query" search="vm_voice.getAbandonedCalls()"></ms-quick-filter>\n <md-button class="md-icon-button reload-list" ng-click="vm_voice.refresh && vm_voice.refreshAbandonedCalls($event)" aria-label="Reload" translate translate-attr-label="DASHBOARDS.RELOAD">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip ng-if="vm_voice.showTooltip" md-visible="vm_voice.showTooltip">\n {{\'DASHBOARDS.CLICKRELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_voice.promise">\n <thead md-head md-order="vm_voice.query.sort" md-on-reorder="vm_voice.getAbandonedCalls">\n <tr md-row>\n <th md-column md-order-by="id">{{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column md-order-by="calleridname">{{\'DASHBOARDS.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="calleridnum">{{\'DASHBOARDS.PHONE\' | translate}}</th>\n <th md-column md-order-by="queue">{{\'DASHBOARDS.QUEUE\' | translate}}</th>\n <th md-column md-order-by="queuecallerabandonAt">{{\'DASHBOARDS.ABANDONAT\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="secondDisposition">{{\'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="thirdDisposition">{{\'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.RESERVED\' | translate}}</th>\n <th md-column md-order-by="lastAssignedTo">{{\'DASHBOARDS.LASTASSIGNEDTO\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_voice.abandonedCalls.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="abandonedCall in vm_voice.abandonedCalls.rows">\n <td md-cell class="id">{{abandonedCall.id}}</td>\n <td md-cell class="firstName" privacy ng-cloak>{{abandonedCall.calleridname}}</td>\n <td md-cell class="phone">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="abandonedCall.calleridnum" license="vm_home.license" disabled="abandonedCall.lastAssignedTo !== vm_voice.currentUser.name">\n </ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="list">{{vm_voice.queuesMap[abandonedCall.queue]}}</td>\n <td md-cell class="list">\n {{abandonedCall.queuecallerabandonAt ? (abandonedCall.queuecallerabandonAt | formatdate) : (abandonedCall.queuecallerexitAt | formatdate) }}\n </td>\n <td md-cell class="list">{{ abandonedCall.disposition }}</td>\n <td md-cell class="list">{{ abandonedCall.secondDisposition }}</td>\n <td md-cell class="list">{{ abandonedCall.thirdDisposition }}</td>\n <td md-cell class="actions">\n <md-switch no-margin ng-if="abandonedCall.lastAssignedTo === vm_voice.currentUser.name || !abandonedCall.lastAssignedTo" ng-disabled="vm_voice.disable[abandonedCall.id]" ng-model="abandonedCall.assigned" aria-label="reserved" ng-change="vm_voice.reserved(abandonedCall)">\n </md-switch>\n </td>\n <td md-cell class="list">{{abandonedCall.lastAssignedTo}}</td>\n <td md-cell class="actions">\n <md-menu ng-if="abandonedCall.lastAssignedTo === vm_voice.currentUser.name">\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="1">\n <md-menu-item>\n <md-button ng-click="vm_voice.dispose(abandonedCall)" class="text-capitalize" translate="DASHBOARDS.DISPOSE">Dispose\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-limit="vm_voice.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_voice.query.page" md-total="{{vm_voice.abandonedCalls.count}}" md-on-paginate="vm_voice.getAbandonedCalls" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/agent.general.home.html",'<div layout="column" layout-align="start center" class="md-primary-bg width-50" ms-scroll>\n <div ng-repeat="node in vm_home.navigation">\n <div ng-repeat="home in node.children">\n <md-button ng-repeat="button in home.children | orderBy:\'weight\'" ng-if="!button.hidden()" class="md-raised width-50 height-50 no-margin" style="border-radius: 0px" aria-label="{{button.state}}" ng-click="vm_home.changeSidebarTab(button)" ng-class="{\'md-primary\': vm_home.sidebar != button.state}">\n <md-tooltip md-direction="right" md-delay="500"><span translate="{{button.translate}}"></span>\n </md-tooltip>\n <md-icon md-font-icon="{{button.icon}}" ng-class="button.iconClass"></md-icon>\n </md-button>\n </div>\n </div>\n</div>\n<div layout="column" flex>\n <div layout="column" flex>\n <div ng-switch="vm_home.sidebar" style="overflow-y: auto" flex>\n <div ng-switch-when="agentPresence">\n <div ng-if="vm_home.hasPermission(115)" ng-include="\'app/main/apps/dashboards/views/general/agent/home/presence/agent.general.presence.html\'" ng-controller="AgentHomePresenceController as vm"></div>\n <div ng-if="!vm_home.hasPermission(115)" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="contacts">\n <div ng-if="vm_home.hasPermission(102) && vm_home.license.cm" ng-include="\'app/main/apps/dashboards/views/general/agent/home/contacts/agent.general.contacts.html\'" ng-controller="AgentHomeContactsController as vm"></div>\n <div ng-if="!vm_home.hasPermission(102) || !vm_home.license.cm" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="mycontacts">\n <div ng-if="vm_home.hasPermission(103) && vm_home.license.cm" ng-include="\'app/main/apps/dashboards/views/general/agent/home/mycontacts/agent.general.mycontacts.html\'" ng-controller="AgentHomeMyContactsController as vm"></div>\n <div ng-if="!vm_home.hasPermission(103) || !vm_home.license.cm" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="scheduled">\n <div ng-if="vm_home.hasPermission(113) && vm_home.license.dialer" ng-include="\'app/main/apps/dashboards/views/general/agent/home/scheduled/agent.general.scheduled.html\'" ng-controller="AgentHomeScheduledCallsController as vm"></div>\n <div ng-if="!vm_home.hasPermission(113) || !vm_home.license.dialer" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="voice">\n <div ng-if="vm_home.hasPermission(110) && vm_home.license.voice" ng-include="\'app/main/apps/dashboards/views/general/agent/home/voice/agent.general.voice.html\'" ng-controller="AgentHomeVoiceController as vm"></div>\n <div ng-if="!vm_home.hasPermission(110) || !vm_home.license.voice" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="abandoned">\n <div ng-if="vm_home.hasPermission(111) && vm_home.license.voice" ng-include="\'app/main/apps/dashboards/views/general/agent/home/abandoned/agent.general.abandoned.html\'" ng-controller="AgentHomeAbandonedController as vm"></div>\n <div ng-if="!vm_home.hasPermission(111) || !vm_home.license.voice" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="recordings">\n <div ng-if="vm_home.hasPermission(104) && vm_home.license.voice" ng-include="\'app/main/apps/dashboards/views/general/agent/home/recordings/agent.general.recordings.html\'" ng-controller="AgentHomeRecordingsController as vm"></div>\n <div ng-if="!vm_home.hasPermission(104) || !vm_home.license.voice" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="chat">\n <div ng-if="vm_home.hasPermission(105) && vm_home.license.chat" ng-include="\'app/main/apps/dashboards/views/general/agent/home/chat/agent.general.chat.html\'" ng-controller="AgentHomeChatController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting)">\n </div>\n <div ng-if="!vm_home.hasPermission(105) || !vm_home.license.chat" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="mail">\n <div ng-if="vm_home.hasPermission(106) && vm_home.license.mail" ng-include="\'app/main/apps/dashboards/views/general/agent/home/mail/agent.general.mail.html\'" ng-controller="AgentHomeMailController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting)">\n </div>\n <div ng-if="!vm_home.hasPermission(106) || !vm_home.license.mail" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="sms">\n <div ng-if="vm_home.hasPermission(107) && vm_home.license.messaging" ng-include="\'app/main/apps/dashboards/views/general/agent/home/sms/agent.general.sms.html\'" ng-controller="AgentHomeSmsController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting)">\n </div>\n <div ng-if="!vm_home.hasPermission(107) || !vm_home.license.messaging" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="openchannel">\n <div ng-if="vm_home.hasPermission(108) && vm_home.license.openchannel" ng-include="\'app/main/apps/dashboards/views/general/agent/home/openchannel/agent.general.openchannel.html\'" ng-controller="AgentHomeOpenchannelController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting)">\n </div>\n <div ng-if="!vm_home.hasPermission(108) || !vm_home.license.openchannel" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="fax">\n <div ng-if="vm_home.hasPermission(109) && vm_home.license.fax" ng-include="\'app/main/apps/dashboards/views/general/agent/home/fax/agent.general.fax.html\'" ng-controller="AgentHomeFaxController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting)">\n </div>\n <div ng-if="!vm_home.hasPermission(109) || !vm_home.license.fax" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="whatsapp">\n <div ng-if="vm_home.hasPermission(114) && vm_home.license.whatsapp" ng-include="\'app/main/apps/dashboards/views/general/agent/home/whatsapp/agent.general.whatsapp.html\'" ng-controller="AgentHomeWhatsappController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting)">\n </div>\n <div ng-if="!vm_home.hasPermission(114) || !vm_home.license.whatsapp" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-when="plugin" layout-fill>\n <div ng-if="vm_home.hasPermission(vm_home.pluginId)" ng-include="\'app/main/apps/dashboards/views/general/agent/home/plugins/agent.general.plugins.html\'" ng-controller="AgentHomePluginsController as vm" ng-init="vm.onInit(vm_home.license, vm_home.setting, vm_home.plugin)" layout-fill></div>\n <div ng-if="!vm_home.hasPermission(vm_home.pluginId)" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n <div ng-switch-default>\n <div ng-if="vm_home.hasPermission(101)" ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/agent.general.dashboard.html\'" ng-controller=" AgentHomeDashboardController as vm"></div>\n <div ng-if="!vm_home.hasPermission(101)" ng-include="\'app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html\'">\n </div>\n </div>\n </div>\n </div>\n <div ng-if="(vm_home.draftManager.drafts | json) != \'{}\'" layout="column" class="draft-manager-bar">\n <ms-tab-scroll>\n <div layout="column" ng-repeat="(key, draft) in vm_home.draftManager.drafts" class="grey-50-bg" ng-click="vm_home.draftManager.open(draft.id)">\n <div class="draft-manager-tab" layout="row" layout-align="space-between center">\n <md-icon md-font-icon="icon-pencil" class="icon s16 margin-horizontal-5 black-fg"></md-icon>\n <span class="text-truncate font-size-12 black-fg">{{draft.title}}</span>\n <md-button class="md-icon-button md-mini no-margin md-primary" aria-label="close" ng-click="vm_home.draftManager.remove(draft.id)">\n <md-icon md-font-icon="icon-close-circle-outline" class="icon s16"></md-icon>\n </md-button>\n </div>\n </div>\n </ms-tab-scroll>\n </div>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/agent.general.home.permissions.html",'<md-content layout="row" layout-align="space-around center" flex layout-padding layout-wrap>\n <div layout="column" layout-align="space-around center" flex="50">\n <span class="font-size-40 text-center">{{ \'DASHBOARDS.WELCOME_TO_MOTION\' | translate }}!</span>\n <span class="font-size-30 text-center" translate="DASHBOARDS.WELCOME_MESSAGE">Use the left sidebar to navigate through available sections.</span>\n </div>\n\n <div layout="column" flex="50">\n <img src="assets/images/avatars/permissions.png" alt="permissions">\n </div>\n</md-content>'),e.put("app/main/apps/dashboards/views/general/agent/home/chat/agent.general.chat.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHAT_INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.getChatInteractions()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getChatInteractions()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getChatInteractions()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n </div>\n </md-toolbar>\n <md-table-container class="interactions-list">\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getChatInteractions">\n <tr md-row>\n <th class="id-header" md-column md-order-by="id">\n {{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column class="no-padding width-5">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding width-5"></th>\n <th md-column class="no-padding width-5"></th>\n <th md-column md-order-by="contactName">{{\'DASHBOARDS.CONTACT\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.STARTEDAT\' | translate}}</th>\n <th md-column md-order-by="lastMsgAt">{{\'DASHBOARDS.LAST_MESSAGE\' | translate}}</th>\n <th md-column md-order-by="closed">{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>\n {{\'DASHBOARDS.WEBSITE\' | translate}}\n </th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.chatInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available\n Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="interaction in vm.chatInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{interaction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in interaction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : u.fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="!interaction.closed && interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" layout-margin>{{interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="interaction.attach" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'no-margin-bottom\' : interaction.contactInfo}" layout-margin privacy ng-cloak>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text no-margin-top" layout-margin privacy ng-cloak>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell>\n <span class="font-size-10 text-truncate">{{interaction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell>\n <div layout="row" ng-if="interaction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}">\n </md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n <span ng-if="!interaction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell>\n <span ng-if="interaction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="interaction.disposition">-\n {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}</span></span>\n <md-tooltip class="multiline" ng-if="interaction.closed">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n <span ng-if="!interaction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="interaction.substatus"> -\n {{interaction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell class="user">\n <span class="font-size-12 text-truncate width-80">{{ vm.getAgentLabel(interaction) }}</span>\n </td>\n <td ng-click="vm.showChatInteraction($event, interaction)" md-cell class="chatAccount">\n {{ vm.getChatWebsiteLabel(interaction) }}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <div layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions actions-padding">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.showChatInteraction($event, interaction)" translate="DASHBOARDS.SHOW">\n Show Chat\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions && vm.user.downloadAttachments">\n <md-button ng-click="vm.downloadChatInteraction($event, interaction, true)" translate="CHAT.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions">\n <md-button ng-click="vm.downloadChatInteraction($event, interaction)" translate="CHAT.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!interaction.closed">\n <md-button ng-click="vm.disposeInteraction($event, interaction)" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'DASHBOARDS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'DASHBOARDS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'DASHBOARDS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.chatInteractions.count}}" md-on-paginate="vm.getChatInteractions" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/contacts/agent.general.contacts.html",'<md-card ng-init="vm.onInit()">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.CONTACTS">Contacts</span>\n <ms-search-bar on-search="vm.getContacts()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getContacts()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" ng-click="vm.refreshContacts($event)" aria-label="Reload" translate translate-attr-label="DASHBOARDS.RELOAD">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n <md-button ng-if="vm.lists.rows && vm.lists.rows.length" class="md-icon-button create-new" ng-click="vm.openContact()" aria-label="Add contact" translate translate-attr-label="DASHBOARDS.ADD_CONTACT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getContacts">\n <tr md-row>\n <th md-column md-order-by="id">{{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column md-order-by="firstName">{{\'DASHBOARDS.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="phone">{{\'DASHBOARDS.PHONE\' | translate}}</th>\n <th md-column md-order-by="mobile">{{\'DASHBOARDS.MOBILE\' | translate}}</th>\n <th md-column md-order-by="fax">{{\'DASHBOARDS.FAX\' | translate}}</th>\n <th md-column md-order-by="email">{{\'DASHBOARDS.EMAIL\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.CREATEDAT\' | translate}}</th>\n <th md-column md-order-by="ListId">{{\'DASHBOARDS.LIST\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.contacts.rows.length">\n <td md-cell colspan="10">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="contact in vm.contacts.rows">\n <td ng-click="vm.openContact(contact.id)" md-cell class="id">{{contact.id}}</td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="firstName" privacy ng-cloak>{{contact.firstName}}\n {{contact.lastName}}</td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="phone">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="contact.phone" prefix="vm.listsMap[contact.ListId].dialPrefix" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="mobile">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="contact.mobile" prefix="vm.listsMap[contact.ListId].dialPrefix" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="fax" privacy ng-cloak>{{contact.fax}}</td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="email" privacy ng-cloak>{{contact.email}}</td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="createdAt">{{contact.createdAt | formatdate}}</td>\n <td ng-click="vm.openContact(contact.id)" md-cell class="list">{{vm.listsMap[contact.ListId].name}}\n <td md-cell class="tag">\n <div ng-if="contact.Tags.length">\n <div ng-if="contact.Tags.length == 1" layout="column" layout-align="center center">\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': contact.Tags[0].color }"></md-icon>\n <span class="text-truncate">{{contact.Tags[0].name}}</span>\n </div>\n <div ng-if="contact.Tags.length > 1" layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in contact.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag"></md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.openContact(contact.id)" translate="DASHBOARDS.EDIT">\n Edit Contact\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.mergeContact($event, contact)" translate="DASHBOARDS.MERGE">\n Merge Contact\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.duplicateContact($event, contact)" translate="DASHBOARDS.DUPLICATE">\n Duplicate Contact\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.contacts.count}}" md-on-paginate="vm.getContacts" md-page-select></md-table-pagination>\n\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/agent.general.dashboard.html",'<div ng-cloak>\n <md-content>\n <md-tabs md-dynamic-height md-border-bottom>\n <md-tab ng-if="vm_home.hasPermission(110) && vm_home.license.voice" label="{{\'DASHBOARDS.VOICE\' | translate}}">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/voice/agent.general.dashboard.voice.html\'" ng-controller="AgentHomeDashboardVoiceController as vm_voice" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(110) && vm_home.license.dialer" label="{{\'DASHBOARDS.MOTION_BULL\' | translate}}">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/bull/agent.general.dashboard.bull.html\'" ng-controller="AgentHomeDashboardBullController as vm_bull" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(105) && vm_home.license.chat" label="{{\'DASHBOARDS.CHAT\' | translate}}">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/chat/agent.general.dashboard.chat.html\'" ng-controller="AgentHomeDashboardMultiChannelChatController as vm_chat" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(106) && vm_home.license.mail" label="{{\'DASHBOARDS.MAIL\' | translate}}">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/mail/agent.general.dashboard.mail.html\'" ng-controller="AgentHomeDashboardMultiChannelMailController as vm_mail" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(107) && vm_home.license.messaging" label="{{\'DASHBOARDS.SMS\' | translate}}">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/sms/agent.general.dashboard.sms.html\'" ng-controller="AgentHomeDashboardMultiChannelSmsController as vm_sms" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(108) && vm_home.license.openchannel" label="{{\'DASHBOARDS.OPENCHANNEL\' | translate}}">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/openchannel/agent.general.dashboard.openchannel.html\'" ng-controller="AgentHomeDashboardMultiChannelOpenchannelController as vm_openchannel" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(109) && vm_home.license.fax" label="{{\'DASHBOARDS.FAX\' | translate}}">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/fax/agent.general.dashboard.fax.html\'" ng-controller="AgentHomeDashboardMultiChannelFaxController as vm_fax" class="md-padding">\n </md-content>\n </md-tab>\n <md-tab ng-if="vm_home.hasPermission(114) && vm_home.license.whatsapp" label="{{\'DASHBOARDS.WHATSAPP\' | translate}}">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/dashboard/whatsapp/agent.general.dashboard.whatsapp.html\'" ng-controller="AgentHomeDashboardMultiChannelWhatsappController as vm_whatsapp" class="md-padding">\n </md-content>\n </md-tab>\n </md-tabs>\n </md-content>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/bull/agent.general.dashboard.bull.html",'<div layout="row" ng-cloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header red-900-bg">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_bull.promise">\n <thead md-head md-order="vm_bull.query.sort" md-on-reorder="vm_bull.getVoiceQueues">\n <tr md-row>\n <th md-column>{{ \'VOICE.NAME\' | translate }}</th>\n <th md-column>{{ \'VOICE.TYPE\' | translate }}</th>\n <th md-column>{{ \'VOICE.WAITING\' | translate }}</th>\n <th ng-if="voiceQueue.type === \'outbound\'" md-column>{{ \'VOICE.ACTIVE\' | translate }}</th>\n \x3c!-- <th md-column md-order-by="active">{{ \'VOICE.ACTIVE\' | translate }}</th> --\x3e\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_bull.getSize(vm_bull.voiceQueues)">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, voiceQueue) in vm_bull.voiceQueues">\n <td md-cell class="name">{{voiceQueue.name}}</td>\n <td ng-if="voiceQueue.type === \'outbound\'" md-cell class="waiting">{{voiceQueue.dialMethod}}</td>\n <td md-cell class="waiting">{{voiceQueue.waiting || 0}}</td>\n <td md-cell ng-if="voiceQueue.type === \'outbound\'" class="dialActive ">\n <md-icon md-colors="{color: {{voiceQueue.dialActive ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{voiceQueue.dialActive ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_bull.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_bull.query.page" md-total="{{vm_bull.voiceQueuesTotal}}" md-on-paginate="vm_bull.getVoiceQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header red-900-bg">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.WAITING_TEXT"></span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'VOICE.DID\' | translate }}</th>\n <th md-column>{{ \'VOICE.QUEUE\' | translate }}</th>\n <th md-column>{{ \'VOICE.CALLER\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_bull.getSize(vm_bull.rpcVoiceQueuesChannels)">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, channel) in vm_bull.rpcVoiceQueuesChannels | limitObjectFromTo: vm_bull.queryChannels.limit:(vm_bull.queryChannels.page - 1) * vm_bull.queryChannels.limit">\n <td md-cell>{{channel.exten}}</td>\n <td md-cell>{{channel.queue}}</td>\n <td md-cell privacy ng-cloak>{{channel.calleridnum}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_bull.queryChannels.limit" md-page="vm_bull.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_bull.getSize(vm_bull.rpcVoiceQueuesChannels)}}" md-page-select>\n </md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/chat/agent.general.dashboard.chat.html",'<div layout="row" ng-cloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_chat.getColorByChannel(\'chat\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_chat.promise">\n <thead md-head md-order="vm_chat.query.sort" md-on-reorder="vm_chat.getChatQueues">\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.NAME\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.WAITING\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_chat.getSize(vm_chat.chatQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, queue) in vm_chat.chatQueues">\n <td md-cell class="name">{{queue.name}}</td>\n <td md-cell class="waiting">{{queue.waiting || 0}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_chat.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_chat.query.page" md-total="{{vm_chat.chatQueuesTotal}}" md-on-paginate="vm_chat.getChatQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_chat.getColorByChannel(\'chat\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHANNEL_WAITING_TEXT"></span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.ACCOUNT\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_QUEUE\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_FROM\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_chat.paginatedInteractions.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, interaction) in vm_chat.interactions">\n <td md-cell>{{interaction.account}}</td>\n <td md-cell>{{interaction.queue}}</td>\n <td md-cell>{{interaction.from}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_chat.queryChannels.limit" md-page="vm_chat.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_chat.paginatedInteractions.length}}" md-on-paginate="vm_chat.paginate" md-page-select></md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/fax/agent.general.dashboard.fax.html",'<div layout="row" ng-cloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_fax.getColorByChannel(\'fax\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_fax.promise">\n <thead md-head md-order="vm_fax.query.sort" md-on-reorder="vm_fax.getFaxQueues">\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.NAME\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.WAITING\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_fax.getSize(vm_fax.faxQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, queue) in vm_fax.faxQueues">\n <td md-cell class="name">{{queue.name}}</td>\n <td md-cell class="waiting">{{queue.waiting || 0}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_fax.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_fax.query.page" md-total="{{vm_fax.faxQueuesTotal}}" md-on-paginate="vm_fax.getFaxQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_fax.getColorByChannel(\'fax\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHANNEL_WAITING_TEXT"></span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.ACCOUNT\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_QUEUE\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_FROM\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_fax.paginatedInteractions.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, interaction) in vm_fax.interactions">\n <td md-cell>{{interaction.account}}</td>\n <td md-cell>{{interaction.queue}}</td>\n <td md-cell>{{interaction.from}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_fax.queryChannels.limit" md-page="vm_fax.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_fax.paginatedInteractions.length}}" md-on-paginate="vm_fax.paginate" md-page-select></md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/mail/agent.general.dashboard.mail.html",'<div layout="row" ng-cloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_mail.getColorByChannel(\'mail\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_mail.promise">\n <thead md-head md-order="vm_mail.query.sort" md-on-reorder="vm_mail.getMailQueues">\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.NAME\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.WAITING\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_mail.getSize(vm_mail.mailQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, queue) in vm_mail.mailQueues">\n <td md-cell class="name">{{queue.name}}</td>\n <td md-cell class="waiting">{{queue.waiting || 0}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_mail.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_mail.query.page" md-total="{{vm_mail.mailQueuesTotal}}" md-on-paginate="vm_mail.getMailQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_mail.getColorByChannel(\'mail\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHANNEL_WAITING_TEXT"></span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.ACCOUNT\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_QUEUE\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_FROM\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_mail.paginatedInteractions.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, interaction) in vm_mail.interactions">\n <td md-cell>{{interaction.account}}</td>\n <td md-cell>{{interaction.queue}}</td>\n <td md-cell>{{interaction.from}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_mail.queryChannels.limit" md-page="vm_mail.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_mail.paginatedInteractions.length}}" md-on-paginate="vm_mail.paginate" md-page-select></md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/openchannel/agent.general.dashboard.openchannel.html",'<div layout="row" ng-cloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_openchannel.getColorByChannel(\'openchannel\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_openchannel.promise">\n <thead md-head md-order="vm_openchannel.query.sort" md-on-reorder="vm_openchannel.getOpenchannelQueues">\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.NAME\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.WAITING\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_openchannel.getSize(vm_openchannel.openchannelQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, queue) in vm_openchannel.openchannelQueues">\n <td md-cell class="name">{{queue.name}}</td>\n <td md-cell class="waiting">{{queue.waiting || 0}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_openchannel.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_openchannel.query.page" md-total="{{vm_openchannel.openchannelQueuesTotal}}" md-on-paginate="vm_openchannel.getOpenchannelQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_openchannel.getColorByChannel(\'openchannel\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHANNEL_WAITING_TEXT"></span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.ACCOUNT\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_QUEUE\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_FROM\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_openchannel.paginatedInteractions.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, interaction) in vm_openchannel.interactions">\n <td md-cell>{{interaction.account}}</td>\n <td md-cell>{{interaction.queue}}</td>\n <td md-cell>{{interaction.from}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_openchannel.queryChannels.limit" md-page="vm_openchannel.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_openchannel.paginatedInteractions.length}}" md-on-paginate="vm_openchannel.paginate" md-page-select></md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/sms/agent.general.dashboard.sms.html",'<div layout="row" ng-cloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_sms.getColorByChannel(\'sms\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_sms.promise">\n <thead md-head md-order="vm_sms.query.sort" md-on-reorder="vm_sms.getSmsQueues">\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.NAME\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.WAITING\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_sms.getSize(vm_sms.smsQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, queue) in vm_sms.smsQueues">\n <td md-cell class="name">{{queue.name}}</td>\n <td md-cell class="waiting">{{queue.waiting || 0}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_sms.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_sms.query.page" md-total="{{vm_sms.smsQueuesTotal}}" md-on-paginate="vm_sms.getSmsQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_sms.getColorByChannel(\'sms\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHANNEL_WAITING_TEXT"></span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.ACCOUNT\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_QUEUE\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_FROM\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_sms.paginatedInteractions.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, interaction) in vm_sms.interactions">\n <td md-cell>{{interaction.account}}</td>\n <td md-cell>{{interaction.queue}}</td>\n <td md-cell>{{interaction.from}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_sms.queryChannels.limit" md-page="vm_sms.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_sms.paginatedInteractions.length}}" md-on-paginate="vm_sms.paginate" md-page-select></md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/voice/agent.general.dashboard.voice.html",'<div layout="row" ng-cloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header blue-A700-bg ">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_voice.promise">\n <thead md-head md-order="vm_voice.query.sort" md-on-reorder="vm_voice.getVoiceQueues">\n <tr md-row>\n <th md-column>{{ \'VOICE.NAME\' | translate }}</th>\n <th md-column>{{ \'VOICE.WAITING\' | translate }}</th>\n <th ng-if="voiceQueue.type === \'outbound\'" md-column>{{ \'VOICE.ACTIVE\' | translate }}</th>\n \x3c!-- <th md-column md-order-by="active">{{ \'VOICE.ACTIVE\' | translate }}</th> --\x3e\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_voice.getSize(vm_voice.voiceQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, voiceQueue) in vm_voice.voiceQueues">\n <td md-cell class="name">{{voiceQueue.name}}</td>\n <td ng-if="voiceQueue.type === \'outbound\'" md-cell class="waiting">{{voiceQueue.dialMethod}}</td>\n <td md-cell class="waiting">{{voiceQueue.waiting || 0}}</td>\n <td md-cell ng-if="voiceQueue.type === \'outbound\'" class="dialActive ">\n <md-icon md-colors="{color: {{voiceQueue.dialActive ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{voiceQueue.dialActive ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_voice.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_voice.query.page" md-total="{{vm_voice.voiceQueuesTotal}}" md-on-paginate="vm_voice.getVoiceQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header blue-A700-bg ">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.WAITING_TEXT"></span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'VOICE.DID\' | translate }}</th>\n <th md-column>{{ \'VOICE.QUEUE\' | translate }}</th>\n <th md-column>{{ \'VOICE.CALLER\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_voice.getSize(vm_voice.rpcVoiceQueuesChannels)">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, channel) in vm_voice.rpcVoiceQueuesChannels | limitObjectFromTo: vm_voice.queryChannels.limit:(vm_voice.queryChannels.page - 1) * vm_voice.queryChannels.limit">\n <td md-cell>{{channel.exten}}</td>\n <td md-cell>{{channel.queue}}</td>\n <td md-cell privacy ng-cloak>{{channel.calleridnum}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_voice.queryChannels.limit" md-page="vm_voice.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_voice.getSize(vm_voice.rpcVoiceQueuesChannels)}}" md-page-select>\n </md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/dashboard/whatsapp/agent.general.dashboard.whatsapp.html",'<div layout="row" ng-cloak>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_whatsapp.getColorByChannel(\'whatsapp\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES">Queues</span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm_whatsapp.promise">\n <thead md-head md-order="vm_whatsapp.query.sort" md-on-reorder="vm_whatsapp.getWhatsappQueues">\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.NAME\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.WAITING\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_whatsapp.getSize(vm_whatsapp.whatsappQueues)">\n <td md-cell colspan="2">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, queue) in vm_whatsapp.whatsappQueues">\n <td md-cell class="name">{{queue.name}}</td>\n <td md-cell class="waiting">{{queue.waiting || 0}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_whatsapp.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_whatsapp.query.page" md-total="{{vm_whatsapp.whatsappQueuesTotal}}" md-on-paginate="vm_whatsapp.getWhatsappQueues" md-page-select></md-table-pagination>\n </md-card>\n <md-card flex="50">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="vm_whatsapp.getColorByChannel(\'whatsapp\')">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.CHANNEL_WAITING_TEXT"></span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'DASHBOARDS.ACCOUNT\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_QUEUE\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.CHANNEL_FROM\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_whatsapp.paginatedInteractions.length">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, interaction) in vm_whatsapp.interactions">\n <td md-cell>{{interaction.account}}</td>\n <td md-cell>{{interaction.queue}}</td>\n <td md-cell>{{interaction.from}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm_whatsapp.queryChannels.limit" md-page="vm_whatsapp.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm_whatsapp.paginatedInteractions.length}}" md-on-paginate="vm_whatsapp.paginate" md-page-select></md-table-pagination>\n </md-card>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/fax/agent.general.fax.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.FAX_INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.getFaxInteractions()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getFaxInteractions()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getFaxInteractions()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n <md-menu ng-if="vm.faxAccounts.rows && vm.faxAccounts.rows.length">\n <md-button class="md-icon-button create-new" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-repeat="faxAccount in vm.faxAccounts.rows">\n <md-button aria-label="compose" ng-click="vm.composeFaxInteraction($event, faxAccount)">\n {{ faxAccount.name }} ({{ faxAccount.key }})</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </md-toolbar>\n <md-table-container class="interactions-list">\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getFaxInteractions">\n <tr md-row>\n <th class="id-header" md-column md-order-by="id">\n {{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column class="no-padding width-5">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding width-5"></th>\n <th md-column class="no-padding width-5"></th>\n <th md-column md-order-by="contactName">{{\'DASHBOARDS.CONTACT\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.STARTEDAT\' | translate}}</th>\n <th md-column md-order-by="lastMsgAt">{{\'DASHBOARDS.LAST_MESSAGE\' | translate}}</th>\n <th md-column md-order-by="closed">{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>\n {{\'DASHBOARDS.ACCOUNT\' | translate}}\n </th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.faxInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available\n Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="interaction in vm.faxInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{interaction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in interaction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : u.fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="!interaction.closed && interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" layout-margin>{{interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="interaction.attach" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'no-margin-bottom\' : interaction.contactInfo}" layout-margin privacy ng-cloak>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text no-margin-top" layout-margin privacy ng-cloak>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell>\n <span class="font-size-10 text-truncate">{{interaction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell>\n <div layout="row" ng-if="interaction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}">\n </md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n <span ng-if="!interaction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell>\n <span ng-if="interaction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="interaction.disposition">-\n {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}</span></span>\n <md-tooltip class="multiline" ng-if="interaction.closed">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n <span ng-if="!interaction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="interaction.substatus"> -\n {{interaction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell class="user">\n <span class="font-size-12 text-truncate width-80">{{ vm.getAgentLabel(interaction) }}</span>\n </td>\n <td ng-click="vm.showFaxInteraction($event, interaction)" md-cell class="faxAccount">\n {{ vm.getFaxAccountLabel(interaction) }}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <div layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions actions-padding">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.showFaxInteraction($event, interaction)" translate="DASHBOARDS.SHOW">\n Show Fax\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions">\n <md-button ng-click="vm.downloadFaxInteraction($event, interaction)" translate="DASHBOARDS.DOWNLOAD">\n Download Fax\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!interaction.closed">\n <md-button ng-click="vm.disposeInteraction($event, interaction)" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'DASHBOARDS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'DASHBOARDS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'DASHBOARDS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.faxInteractions.count}}" md-on-paginate="vm.getFaxInteractions" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/mail/agent.general.mail.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.MAIL_INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.getMailInteractions()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getMailInteractions()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getMailInteractions()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n <md-menu ng-if="vm.mailAccounts.rows && vm.mailAccounts.rows.length">\n <md-button class="md-icon-button create-new" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-repeat="mailAccount in vm.mailAccounts.rows">\n <md-button aria-label="compose" ng-click="vm.composeMailInteraction($event, mailAccount)">\n {{ mailAccount.name }} ({{ mailAccount.key }})</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </md-toolbar>\n <md-table-container class="interactions-list">\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getMailInteractions">\n <tr md-row>\n <th class="id-header" md-column md-order-by="id">\n {{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column class="no-padding width-5">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding width-5"></th>\n <th md-column class="no-padding width-5"></th>\n <th md-column md-order-by="contactName">{{\'DASHBOARDS.CONTACT\' | translate}}</th>\n <th md-column md-order-by="subject">{{\'DASHBOARDS.SUBJECT\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.STARTEDAT\' | translate}}</th>\n <th md-column md-order-by="lastMsgAt">{{\'DASHBOARDS.LAST_MESSAGE\' | translate}}</th>\n <th md-column md-order-by="closed">{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>\n {{\'DASHBOARDS.ACCOUNT\' | translate}}\n </th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.mailInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available\n Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="interaction in vm.mailInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{interaction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in interaction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : u.fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="!interaction.closed && interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" layout-margin>{{interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="interaction.attach" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'no-margin-bottom\' : interaction.contactInfo}" layout-margin privacy ng-cloak>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text no-margin-top" layout-margin privacy ng-cloak>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell>\n <div ng-if="vm.setting.enableEmailPreview && interaction.lastMsgText" class="tooltip-preview">\n <span class="text-truncate font-size-12 subject-text">{{ interaction.subject }}</span>\n \x3c!-- ng-style="{top: \'-\' + ((($index % 10) + 1) * 18) + \'px\'}" --\x3e\n <md-card class="tooltip-preview-text">\n <md-card-content><span class="email-preview-message">{{ interaction.lastMsgText }}</span>\n </md-card-content>\n </md-card>\n </div>\n <span ng-if="!interaction.lastMsgText || !vm.setting.enableEmailPreview" class="text-truncate font-size-12">{{ interaction.subject }}</span>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell>\n <span class="font-size-10 text-truncate">{{interaction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell>\n <div layout="row" ng-if="interaction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}">\n </md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n <span ng-if="!interaction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell>\n <span ng-if="interaction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="interaction.disposition">-\n {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}</span></span>\n <md-tooltip class="multiline" ng-if="interaction.closed">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n <span ng-if="!interaction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="interaction.substatus"> -\n {{interaction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell class="user">\n <span class="font-size-12 text-truncate width-80">{{ vm.getAgentLabel(interaction) }}</span>\n </td>\n <td ng-click="vm.showMailInteraction($event, interaction)" md-cell class="mailAccount">\n {{ vm.getMailAccountLabel(interaction) }}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <div layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions actions-padding">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.showMailInteraction($event, interaction)" translate="DASHBOARDS.SHOW">\n Show Mail\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions && vm.user.downloadAttachments">\n <md-button ng-click="vm.downloadMailInteraction($event, interaction, true)" translate="MAIL.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions">\n <md-button ng-click="vm.downloadMailInteraction($event, interaction)" translate="MAIL.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!interaction.closed">\n <md-button ng-click="vm.disposeInteraction($event, interaction)" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'DASHBOARDS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'DASHBOARDS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'DASHBOARDS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.mailInteractions.count}}" md-on-paginate="vm.getMailInteractions" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/mycontacts/agent.general.mycontacts.html",'<md-card ng-init="vm.onInit()">\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.MYCONTACTS">My Contacts</span>\n <ms-search-bar on-search="vm.getContacts()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getContacts()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" ng-click="vm.refreshContacts($event)" aria-label="Reload" translate translate-attr-label="DASHBOARDS.RELOAD">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n <md-button ng-if="vm.lists.rows && vm.lists.rows.length" class="md-icon-button create-new" ng-click="vm.openContact($event)" aria-label="Add contact" translate translate-attr-label="DASHBOARDS.ADD_CONTACT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getContacts">\n <tr md-row>\n <th md-column md-order-by="id">{{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column md-order-by="firstName">{{\'DASHBOARDS.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="phone">{{\'DASHBOARDS.PHONE\' | translate}}</th>\n <th md-column md-order-by="mobile">{{\'DASHBOARDS.MOBILE\' | translate}}</th>\n <th md-column md-order-by="fax">{{\'DASHBOARDS.FAX\' | translate}}</th>\n <th md-column md-order-by="email">{{\'DASHBOARDS.EMAIL\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.CREATEDAT\' | translate}}</th>\n <th md-column md-order-by="ListId">{{\'DASHBOARDS.LIST\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.contacts.rows.length">\n <td md-cell colspan="10">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="contact in vm.contacts.rows">\n <td ng-click="vm.openContact($event, contact)" md-cell class="id">{{contact.id}}</td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="firstName" privacy ng-cloak>\n {{contact.firstName}} {{contact.lastName}}</td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="phone">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="contact.phone" prefix="vm.listsMap[contact.ListId].dialPrefix" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="mobile">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="contact.mobile" prefix="vm.listsMap[contact.ListId].dialPrefix" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="fax" privacy ng-cloak>\n {{contact.fax}}</td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="email" privacy ng-cloak>{{contact.email}}\n </td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="createdAt">{{contact.createdAt |\n formatdate}}</td>\n <td ng-click="vm.openContact($event, contact)" md-cell class="list">\n {{vm.listsMap[contact.ListId].name}}</td>\n <td md-cell class="tag">\n <div ng-if="contact.Tags.length">\n <div ng-if="contact.Tags.length == 1" layout="column" layout-align="center center">\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': contact.Tags[0].color }"></md-icon>\n <span class="text-truncate">{{contact.Tags[0].name}}</span>\n </div>\n <div ng-if="contact.Tags.length > 1" layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in contact.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag"></md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.openContact($event, contact)" translate="DASHBOARDS.EDIT">\n Edit Contact\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.mergeContact($event, contact)" translate="DASHBOARDS.MERGE">\n Merge Contact\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.duplicateContact($event, contact)" translate="DASHBOARDS.DUPLICATE">\n Duplicate Contact\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.contacts.count}}" md-on-paginate="vm.getContacts" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/openchannel/agent.general.openchannel.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.OPENCHANNEL_INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.getOpenchannelInteractions()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getOpenchannelInteractions()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getOpenchannelInteractions()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n <md-menu ng-if="vm.openchannelAccounts.rows && vm.openchannelAccounts.rows.length">\n <md-button class="md-icon-button create-new" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-repeat="openchannelAccount in vm.openchannelAccounts.rows">\n <md-button aria-label="compose" ng-click="vm.composeOpenchannelInteraction($event, openchannelAccount)" ng-disabled="!openchannelAccount.replyUri">\n {{ openchannelAccount.name }} ({{ openchannelAccount.key }})</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </md-toolbar>\n <md-table-container class="interactions-list">\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getOpenchannelInteractions">\n <tr md-row>\n <th class="id-header" md-column md-order-by="id">\n {{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column class="no-padding width-5">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding width-5"></th>\n <th md-column class="no-padding width-5"></th>\n <th md-column md-order-by="contactName">{{\'DASHBOARDS.CONTACT\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.STARTEDAT\' | translate}}</th>\n <th md-column md-order-by="lastMsgAt">{{\'DASHBOARDS.LAST_MESSAGE\' | translate}}</th>\n <th md-column md-order-by="closed">{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>\n {{\'DASHBOARDS.ACCOUNT\' | translate}}\n </th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.openchannelInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available\n Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="interaction in vm.openchannelInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{interaction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in interaction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : u.fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="!interaction.closed && interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" layout-margin>{{interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="interaction.attach" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'no-margin-bottom\' : interaction.contactInfo}" layout-margin privacy ng-cloak>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text no-margin-top" layout-margin privacy ng-cloak>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell>\n <span class="font-size-10 text-truncate">{{interaction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell>\n <div layout="row" ng-if="interaction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}">\n </md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n <span ng-if="!interaction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell>\n <span ng-if="interaction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="interaction.disposition">-\n {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}</span></span>\n <md-tooltip class="multiline" ng-if="interaction.closed">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n <span ng-if="!interaction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="interaction.substatus"> -\n {{interaction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell class="user">\n <span class="font-size-12 text-truncate width-80">{{ vm.getAgentLabel(interaction) }}</span>\n </td>\n <td ng-click="vm.showOpenchannelInteraction($event, interaction)" md-cell class="openchannelAccount">\n {{ vm.getOpenchannelAccountLabel(interaction) }}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <div layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions actions-padding">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.showOpenchannelInteraction($event, interaction)" translate="DASHBOARDS.SHOW">\n Show Openchannel\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions && vm.user.downloadAttachments">\n <md-button ng-click="vm.downloadOpenchannelInteraction($event, interaction, true)" translate="OPENCHANNEL.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions">\n <md-button ng-click="vm.downloadOpenchannelInteraction($event, interaction)" translate="OPENCHANNEL.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!interaction.closed">\n <md-button ng-click="vm.disposeInteraction($event, interaction)" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'DASHBOARDS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'DASHBOARDS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'DASHBOARDS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.openchannelInteractions.count}}" md-on-paginate="vm.getOpenchannelInteractions" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/plugins/agent.general.plugins.html",'<div id="plugin" ng-if="vm.plugin" ng-cloak layout-fill>\n <iframe ng-src="{{vm.getTrustedURL()}}" frameborder=0 style="border:0px; width:100%; height:100%;"></iframe>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/presence/agent.general.presence.html",'<div ng-cloak>\n <md-content>\n <md-tabs md-selected="vm.selectedTab" md-dynamic-height md-border-bottom>\n <md-tab label="{{\'DASHBOARDS.AGENTS\' | translate}}" md-on-select="vm.onAgentsTabSelection()">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/presence/views/agent.general.presence.agents.html\'">\n </md-content>\n </md-tab>\n <md-tab label="{{\'DASHBOARDS.QUEUES\' | translate}}" md-on-select="vm.onQueuesTabSelection()">\n <md-content ng-include="\'app/main/apps/dashboards/views/general/agent/home/presence/views/agent.general.presence.queues.html\'">\n </md-content>\n </md-tab>\n </md-tabs>\n </md-content>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/home/presence/views/agent.general.presence.agents.html",'<md-card ngCloak>\n <md-toolbar class="md-table-toolbar md-default table-header xenialab-violet-light-bg" ng-class="{\'h-128\' : vm.isSearchBarVisible === true}">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.AGENTS"></span>\n <ms-search-bar on-search="vm.getAgents()" query="vm.agentsQuery" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.agentsQuery" search="vm.getAgents()"></ms-quick-filter>\n <md-button class="md-icon-button reload-list" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getAgents()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.agentsQuery.sort" md-on-reorder="vm.getAgents">\n <tr md-row>\n <th md-column md-order-by="id">{{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column md-order-by="name">{{\'DASHBOARDS.NAME\' | translate}}</th>\n <th md-column md-order-by="internal">{{\'VOICE.INTERNAL\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column class="no-padding width-70"></th>\n <th md-column class="width-70"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.agents.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="agent in vm.agents.rows">\n <td md-cell>{{agent.id}}</td>\n <td md-cell>{{agent.name}}</td>\n <td md-cell>{{agent.internal}}</td>\n <td md-cell>\n <div layout="row">\n <div layout="column" layout-align="center center">\n <span class="text-boxed width-70 text-center md-background-bg bl bt padding-5" ng-class="{\'online\':\'lime-300-bg\',\'offline\':\'red-A200-bg\',\'pause\':\'amber-200-bg\',\'busy\':\'indigo-100-bg\'}[agent.status]">{{\n agent.status | uppercase }}</span>\n </div>\n </div>\n </td>\n <td md-cell class="no-padding width-70">\n <md-button ng-if="agent.status !== \'offline\'" ng-click="vm.originateCall(agent.name)" class="md-fab md-mini md-raised" aria-label="Dial">\n <md-icon md-font-icon="icon-phone" class="icon green-fg s20">\n <md-tooltip><span translate="VOICE.DIAL"></span></md-tooltip>\n </md-icon>\n </md-button>\n </td>\n <td md-cell class="width-70">\n <md-button ng-if="agent.status !== \'offline\'" ng-click="vm.transferCall(agent.name)" class="md-fab md-mini md-raised" aria-label="Transfer">\n <md-icon md-font-icon="icon-phone-forward" class="icon purple-fg s20">\n <md-tooltip><span translate="DASHBOARDS.TRANSFER"></span></md-tooltip>\n </md-icon>\n </md-button>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-limit="vm.agentsQuery.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.agentsQuery.page" md-total="{{vm.agents.count}}" md-on-paginate="vm.getAgents" md-page-select>\n </md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/presence/views/agent.general.presence.queues.html",'<md-card ngCloak>\n <md-toolbar class="md-table-toolbar md-default table-header xenialab-violet-light-bg" ng-class="{\'h-128\' : vm.isSearchBarVisible === true}">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.QUEUES"></span>\n <ms-search-bar on-search="vm.getVoiceQueues()" query="vm.queuesQuery" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible"></ms-search-bar>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.queuesQuery.sort" md-on-reorder="vm.getVoiceQueues">\n <tr md-row>\n <th md-column md-order-by="id">{{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column md-order-by="name">{{\'DASHBOARDS.NAME\' | translate}}</th>\n <th md-column md-order-by="name">{{\'VOICE.CALLS\' | translate}}</th>\n <th md-column class="no-padding width-70"></th>\n <th md-column class="width-70"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.voiceQueues.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="queue in vm.voiceQueues.rows">\n <td md-cell>{{queue.id}}</td>\n <td md-cell>{{queue.name}}</td>\n <td md-cell>{{queue.calls.length || 0}}</td>\n <td md-cell class="no-padding width-70">\n <md-button ng-click="vm.originateCall(queue.name)" class="md-fab md-mini md-raised" aria-label="Dial">\n <md-icon md-font-icon="icon-phone" class="icon green-fg s20">\n <md-tooltip><span translate="VOICE.DIAL"></span></md-tooltip>\n </md-icon>\n </md-button>\n </td>\n <td md-cell class="width-70">\n <md-button ng-click="vm.transferCall(queue.name)" class="md-fab md-mini md-raised" aria-label="Transfer">\n <md-icon md-font-icon="icon-phone-forward" class="icon purple-fg s20">\n <md-tooltip><span translate="DASHBOARDS.TRANSFER"></span></md-tooltip>\n </md-icon>\n </md-button>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-limit="vm.queuesQuery.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.queuesQuery.page" md-total="{{vm.voiceQueues.count}}" md-on-paginate="vm.getVoiceQueues" md-page-select>\n </md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/recordings/agent.general.recordings.html",'<md-card ng-init="vm.onInit()">\n <md-toolbar class="md-table-toolbar md-default table-header indigo-A100-bg" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.RECORDINGS">Recordings</span>\n <ms-search-bar on-search="vm.getVoiceRecordings()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getVoiceRecordings()">\n </ms-quick-filter>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVoiceRecordings">\n <tr md-row>\n <th md-column md-order-by="type">{{ \'VOICE.TYPE\' | translate }}</th>\n <th md-column md-order-by="uniqueid">{{ \'VOICE.UNIQUEID\' | translate }}</th>\n <th md-column md-order-by="calleridnum">{{ \'VOICE.CALLER\' | translate }}</th>\n <th md-column md-order-by="exten">{{ \'VOICE.CALLED\' | translate }}</th>\n <th md-column md-order-by="connectedlinenum">{{ \'VOICE.CONNECTED\' | translate }}</th>\n <th md-column md-order-by="queue">{{ \'VOICE.QUEUE\' | translate }}</th>\n <th md-column md-order-by="rating">{{ \'VOICE.RATING\' | translate }}</th>\n <th md-column>{{ \'VOICE.AUDIO\' | translate }}</th>\n <th md-column md-order-by="createdAt">{{ \'VOICE.DATE\' | translate }}</th>\n <th md-column width="10px" ng-if="vm.currentUser.downloadVoiceRecordings"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.voiceRecordings.rows.length">\n <td md-cell colspan="{{ vm.currentUser.downloadVoiceRecordings ? 10 : 9}}">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="voiceRecording in vm.voiceRecordings.rows">\n <td md-cell class="type">{{voiceRecording.type}}</td>\n <td md-cell class="uniqueid">{{voiceRecording.uniqueid}}</td>\n <td md-cell class="calleridnum">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="voiceRecording.calleridnum" license="vm_home.license">\n </ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="exten">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="voiceRecording.exten" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="connectedlinenum">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="voiceRecording.connectedlinenum" license="vm_home.license">\n </ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="queue">{{voiceRecording.queue}}</td>\n <td md-cell class="rating">\n <md-icon md-font-icon="icon-star" style="color:red" ng-show="voiceRecording.rating" ng-repeat="rating in [1,2,3,4,5] | limitTo:voiceRecording.rating"></md-icon><span ng-hide="voiceRecording.rating" translate="VOICE.NO_RATING">No rating</span>\n </td>\n <td md-cell class="audio" ng-switch="voiceRecording.format">\n \x3c!-- audio recording directive --\x3e\n <ms-recording ng-switch-when=".wav" id="voiceRecording.id"></ms-recording>\n \x3c!-- / audio recording directive --\x3e\n <span ng-switch-when=".gsm">\n <em>{{ \'VOICE.CANT_PLAY_GSM_AUDIO_FILES\' | translate }}</em>\n </span>\n </td>\n <td md-cell class="createdAt ">{{voiceRecording.createdAt | date:\'medium\' }}</td>\n <td md-cell class="actions" ng-if="vm.currentUser.downloadVoiceRecordings">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.downloadfile(voiceRecording, $event)" translate="VOICE.DOWNLOAD_VOICERECORDING">\n Download VoiceRecording\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="voiceRecording.transcribeStatus == \'COMPLETED\'">\n <md-button ng-click="vm.downloadtranscribe(voiceRecording, $event)" translate="VOICE.DOWNLOADTRANSCRIBE_VOICERECORDING">\n Download Transcribe\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.voiceRecordings.count}}" md-on-paginate="vm.getVoiceRecordings" md-page-select>\n </md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/scheduled/agent.general.scheduled.html",'<md-card ng-init="vm.onInit()">\n <md-toolbar class="md-table-toolbar md-default table-header blue-grey-bg" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.SCHEDULED_CALLS">Scheduled Calls</span>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getScheduledCalls()">\n </ms-quick-filter>\n <md-button class="md-icon-button reload-list" ng-click="vm.getScheduledCalls()" aria-label="Refresh scheduled calls" translate translate-attr-label="MOTIONDIALER.REFRESH_SCHEDULED_CALLS">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'MOTIONDIALER.REFRESH_SCHEDULED_CALLS\' | translate}}</md-tooltip>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getScheduledCalls">\n <tr md-row>\n <th md-column>{{\'MOTIONDIALER.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="phone">{{ \'MOTIONDIALER.PHONE\' | translate }}</th>\n <th md-column md-order-by="scheduledat">{{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.PRIORITY\' | translate }}</th>\n <th md-column md-order-by="recallme">{{ \'MOTIONDIALER.RECALLME\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.CAMPAIGN\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.scheduledCalls.rows.length">\n <td md-cell colspan="10">\n <div layout="row" layout-align="center center">\n <span translate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="scheduledCall in vm.scheduledCalls.rows">\n <td md-cell privacy ng-cloak>{{scheduledCall.Contact.firstName}} {{scheduledCall.Contact.lastName}}</td>\n <td md-cell>\n <ms-click-to-call target="scheduledCall.phone" license="vm_home.license"></ms-click-to-call>\n </td>\n <td md-colors="{color: {{ vm.isDateBeforeToday(scheduledCall.scheduledat) ? \'\\\'red\\\'\' : \'\\\'green\\\'\' }}}" md-cell>{{ scheduledCall.scheduledat | date:\'medium\' }}</td>\n <td md-cell>{{ vm.priorities[scheduledCall.priority] }}</td>\n <td md-cell>\n <md-icon md-colors="{color: {{ scheduledCall.recallme && scheduledCall.UserId == vm.currentUser.id ? \'\\\'green\\\'\' : \'\\\'grey\\\'\' }}}" md-font-icon="{{ scheduledCall.recallme && scheduledCall.UserId == vm.currentUser.id ? \'icon-check\' : \'icon-close\' }}">\n </md-icon>\n </td>\n <td md-cell>\n <md-icon md-colors="{color: {{ scheduledCall.Queue.dialActive? \'\\\'green\\\'\' : \'\\\'red\\\'\' }}}" md-font-icon="icon-checkbox-blank-circle"></md-icon> {{scheduledCall.Queue.name}}\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.createOrEditQueueCampaignHopper($event, scheduledCall)" translate="MOTIONDIALER.EDIT_HOPPER">\n Edit Hopper\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deleteConfirm(scheduledCall, $event)" translate="MOTIONDIALER.DELETE_HOPPER">\n Delete Hopper\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.scheduledCalls.count}}" md-on-paginate="vm.getScheduledCalls" md-page-select>\n </md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/sms/agent.general.sms.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.SMS_INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.getSmsInteractions()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getSmsInteractions()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getSmsInteractions()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n <md-menu ng-if="vm.smsAccounts.rows && vm.smsAccounts.rows.length">\n <md-button class="md-icon-button create-new" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-repeat="smsAccount in vm.smsAccounts.rows">\n <md-button aria-label="compose" ng-click="vm.composeSmsInteraction($event, smsAccount)">\n {{ smsAccount.name }} ({{ smsAccount.key }})</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </md-toolbar>\n <md-table-container class="interactions-list">\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getSmsInteractions">\n <tr md-row>\n <th class="id-header" md-column md-order-by="id">\n {{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column class="no-padding width-5">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding width-5"></th>\n <th md-column class="no-padding width-5"></th>\n <th md-column md-order-by="contactName">{{\'DASHBOARDS.CONTACT\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.STARTEDAT\' | translate}}</th>\n <th md-column md-order-by="lastMsgAt">{{\'DASHBOARDS.LAST_MESSAGE\' | translate}}</th>\n <th md-column md-order-by="closed">{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>\n {{\'DASHBOARDS.ACCOUNT\' | translate}}\n </th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.smsInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available\n Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="interaction in vm.smsInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{interaction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in interaction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : u.fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="!interaction.closed && interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" layout-margin>{{interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="interaction.attach" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'no-margin-bottom\' : interaction.contactInfo}" layout-margin privacy ng-cloak>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text no-margin-top" layout-margin privacy ng-cloak>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell>\n <span class="font-size-10 text-truncate">{{interaction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell>\n <div layout="row" ng-if="interaction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}">\n </md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n <span ng-if="!interaction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell>\n <span ng-if="interaction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="interaction.disposition">-\n {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}</span></span>\n <md-tooltip class="multiline" ng-if="interaction.closed">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n <span ng-if="!interaction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="interaction.substatus"> -\n {{interaction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell class="user">\n <span class="font-size-12 text-truncate width-80">{{ vm.getAgentLabel(interaction) }}</span>\n </td>\n <td ng-click="vm.showSmsInteraction($event, interaction)" md-cell class="smsAccount">\n {{ vm.getSmsAccountLabel(interaction) }}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <div layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions actions-padding">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.showSmsInteraction($event, interaction)" translate="DASHBOARDS.SHOW">\n Show Sms\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions">\n <md-button ng-click="vm.downloadSmsInteraction($event, interaction)" translate="DASHBOARDS.DOWNLOAD">\n Download Sms\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!interaction.closed">\n <md-button ng-click="vm.disposeInteraction($event, interaction)" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'DASHBOARDS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'DASHBOARDS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'DASHBOARDS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.smsInteractions.count}}" md-on-paginate="vm.getSmsInteractions" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/voice/agent.general.voice.html",'<md-card ng-init="vm.onInit()">\n <md-toolbar class="md-table-toolbar md-default table-header blue-A700-bg" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.CALLS">Calls</span>\n <ms-search-bar on-search="vm.getVoiceCalls()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getVoiceCalls()">\n </ms-quick-filter>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVoiceCalls">\n <tr md-row>\n <th md-column md-order-by="id">{{\'VOICE.ID\' | translate}}</th>\n <th md-column md-order-by="type">{{ \'VOICE.TYPE\' | translate }}</th>\n <th md-column md-order-by="source">{{ \'VOICE.SOURCE\' | translate }}</th>\n <th md-column md-order-by="destination">{{ \'VOICE.DESTINATION\' | translate }}</th>\n <th md-column md-order-by="starttime">{{ \'VOICE.STARTEDAT\' | translate }}</th>\n <th md-column md-order-by="endtime">{{ \'VOICE.ENDEDAT\' | translate }}</th>\n <th md-column md-order-by="userDisposition">{{ \'VOICE.DISPOSITION\' | translate }}</th>\n <th md-column md-order-by="userSecondDisposition">{{ \'VOICE.SECOND_LEVEL_DISPOSITION\' | translate }}</th>\n <th md-column md-order-by="userThirdDisposition">{{ \'VOICE.THIRD_LEVEL_DISPOSITION\' | translate }}</th>\n <th md-column>{{ \'VOICE.NOTE\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.voiceCalls.rows.length">\n <td md-cell colspan="10">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="voiceCall in vm.voiceCalls.rows" ng-click="vm.showDetails(voiceCall, $event)">\n <td md-cell class="type">{{voiceCall.id}}</td>\n <td md-cell class="type">{{ \'VOICE.\' + voiceCall.type.toUpperCase() | translate}}</td>\n <td md-cell class="source">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="voiceCall.source" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="destination">\n \x3c!-- click to call directive --\x3e\n <ms-click-to-call target="voiceCall.destination" license="vm_home.license"></ms-click-to-call>\n \x3c!-- / click to call directive --\x3e\n </td>\n <td md-cell class="starttime">{{voiceCall.starttime | date:\'medium\' }}</td>\n <td md-cell class="endtime">{{voiceCall.endtime | date:\'medium\' }}</td>\n <td md-cell class="disposition">{{ voiceCall.userDisposition}}</td>\n <td md-cell class="disposition">{{ voiceCall.userSecondDisposition}}</td>\n <td md-cell class="disposition">{{ voiceCall.userThirdDisposition}}</td>\n <td md-cell class="note">\n <md-icon ng-if="voiceCall.note" md-font-icon="icon-clipboard-outline"></md-icon>\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.showDetails(voiceCall, $event)" translate="VOICE.DETAILS">\n Show Details\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.voiceCalls.count}}" md-on-paginate="vm.getVoiceCalls" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/home/voice/details/dialog.html",'<md-dialog class="details-dialog" aria-label="details">\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span ng-if="!vm.interaction.closed" class="title" translate="VOICE.DETAILS"></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <md-list flex>\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.UNIQUEID">Uniqueid</p>\n <h4>{{vm.call.uniqueid}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.TYPE">Type</p>\n <h4>{{vm.call.type ? vm.call.type : \'no type\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.SOURCE">Source</p>\n <h4 privacy ng-cloak>{{vm.call.source ? vm.call.source : \'unknown\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.DESTINATION">Destination</p>\n <h4 privacy ng-cloak>{{vm.call.destination ? vm.call.destination : \'unknown\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.STARTEDAT">Started At</p>\n <h4>{{vm.call.starttime | date:\'medium\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.ANSWEREDAT">Answered At</p>\n <h4>{{vm.call.answertime ? (vm.call.answertime | date:\'medium\') : \'--\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.ENDEDAT">Ended At</p>\n <h4>{{vm.call.endtime ? (vm.call.endtime | date:\'medium\') : \'--\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.DURATION">Duration</p>\n <h4>{{vm.call.duration ? vm.call.duration : \'--\'}}s</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.BILLABLESECONDS">Billable Seconds</p>\n <h4>{{vm.call.billableseconds ? vm.call.billableseconds : \'--\'}}s</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.DISPOSITION">Disposition</p>\n <h4>{{vm.call.userDisposition ? vm.call.userDisposition : \'--\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</p>\n <h4>{{vm.call.userSecondDisposition ? vm.call.userSecondDisposition : \'--\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.THIRD_LEVEL_DISPOSITION">Third Level Disposition</p>\n <h4>{{vm.call.userThirdDisposition ? vm.call.userThirdDisposition : \'--\'}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="VOICE.NOTE">Note</p>\n <h4>{{vm.call.note ? vm.call.note : \'--\'}}</h4>\n </div>\n </md-list-item>\n </md-list>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <md-button type="button" ng-click="vm.closeDialog()" class="send-button md-accent md-raised" aria-label="DISPOSE" translate="VOICE.CLOSE" translate-attr-aria-label="VOICE.DISPOSE">\n CLOSE\n </md-button>\n </md-dialog-actions>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/home/whatsapp/agent.general.whatsapp.html",'<md-card ng-cloak>\n <md-toolbar class="md-table-toolbar md-default table-header" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" ng-disabled="vm.searchInProgress">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="DASHBOARDS.WHATSAPP_INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm.getWhatsappInteractions()" query="vm.query" debounce="300" direction="down" icon-color="white-fg" display-on="vm.isSearchBarVisible" ng-disabled="vm.query.search" min-chars="5">\n </ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getWhatsappInteractions()" ng-disabled="vm.query.search"></ms-quick-filter>\n <div layout="row">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini white-bg\': vm.query.search }" aria-label="Advanced search" translate translate-attr-aria-label="DASHBOARDS.ADVANCED_SEARCH" ng-click="vm.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'{{ vm.sectionColor }}-fg blink\': vm.query.search }"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.ADVANCED_SEARCH\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button reload-list" aria-label="Reload" translate translate-attr-aria-label="DASHBOARDS.RELOAD" ng-click="vm.getWhatsappInteractions()">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip>{{\'DASHBOARDS.RELOAD\' | translate}}</md-tooltip>\n </md-button>\n </div>\n <md-menu ng-if="vm.whatsappAccounts.rows && vm.whatsappAccounts.rows.length">\n <md-button class="md-icon-button create-new" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-repeat="whatsappAccount in vm.whatsappAccounts.rows">\n <md-button aria-label="compose" ng-click="vm.composeWhatsappInteraction($event, whatsappAccount)">\n {{ whatsappAccount.name }} ({{ whatsappAccount.key }})</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </md-toolbar>\n <md-table-container class="interactions-list">\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getWhatsappInteractions">\n <tr md-row>\n <th class="id-header" md-column md-order-by="id">\n {{\'DASHBOARDS.ID\' | translate}}</th>\n <th md-column class="no-padding width-5">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding width-5"></th>\n <th md-column class="no-padding width-5"></th>\n <th md-column md-order-by="contactName">{{\'DASHBOARDS.CONTACT\' | translate}}</th>\n <th md-column md-order-by="createdAt">{{\'DASHBOARDS.STARTEDAT\' | translate}}</th>\n <th md-column md-order-by="lastMsgAt">{{\'DASHBOARDS.LAST_MESSAGE\' | translate}}</th>\n <th md-column md-order-by="closed">{{\'DASHBOARDS.STATUS\' | translate}}</th>\n <th md-column>{{\'DASHBOARDS.AGENT\' | translate}}</th>\n <th md-column>\n {{\'DASHBOARDS.ACCOUNT\' | translate}}\n </th>\n <th md-column>{{\'DASHBOARDS.TAGS\' | translate}}</th>\n <th md-column></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.whatsappInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span translate="DASHBOARDS.NO_AVAILABLE_INTERACTION">No Available\n Interaction</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="interaction in vm.whatsappInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell class="id">\n <div layout="row" layout-align="start center">\n <span class="font-size-10">{{interaction.id}}</span>\n </div>\n </td>\n <td md-cell>\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="u in interaction.Users">{{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : u.fullname | translate }}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="!interaction.closed && interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg" ng-class="{{ \'vm.sectionColor\' }} + \'-bg\'" layout-margin>{{interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="width-5 no-padding">\n <div ng-if="interaction.attach" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'no-margin-bottom\' : interaction.contactInfo}" layout-margin privacy ng-cloak>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text no-margin-top" layout-margin privacy ng-cloak>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell>\n <span class="font-size-10 text-truncate">{{interaction.createdAt | formatdate }}</span>\n </td>\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell>\n <div layout="row" ng-if="interaction.lastMsgAt">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}">\n </md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="font-size-10 text-truncate">{{interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n <span ng-if="!interaction.lastMsgAt">No messages</span>\n </td>\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell>\n <span ng-if="interaction.closed" class="red-fg font-size-12">{{ \'DASHBOARDS.CLOSED\' | translate}} <span ng-if="interaction.disposition">-\n {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}</span></span>\n <md-tooltip class="multiline" ng-if="interaction.closed">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n <span ng-if="!interaction.closed" class="green-fg font-size-12"><span translate="DASHBOARDS.OPENED"></span><span ng-if="interaction.substatus"> -\n {{interaction.substatus}}</span></span>\n </td>\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell class="user">\n <span class="font-size-12 text-truncate width-80">{{ vm.getAgentLabel(interaction) }}</span>\n </td>\n <td ng-click="vm.showWhatsappInteraction($event, interaction)" md-cell class="whatsappAccount">\n {{ vm.getWhatsappAccountLabel(interaction) }}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <div layout="column" layout-align="center center">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">,\n </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </div>\n </td>\n <td md-cell class="actions actions-padding">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.showWhatsappInteraction($event, interaction)" translate="DASHBOARDS.SHOW">\n Show Whatsapp\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.user.downloadOmnichannelInteractions">\n <md-button ng-click="vm.downloadWhatsappInteraction($event, interaction)" translate="DASHBOARDS.DOWNLOAD">\n Download Whatsapp\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!interaction.closed">\n <md-button ng-click="vm.disposeInteraction($event, interaction)" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'DASHBOARDS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'DASHBOARDS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'DASHBOARDS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.whatsappInteractions.count}}" md-on-paginate="vm.getWhatsappInteractions" md-page-select></md-table-pagination>\n</md-card>'),e.put("app/main/apps/dashboards/views/general/agent/iframe/agent.general.iframe.html",'<md-content layout="row" layout-fill>\n\n <div flex layout="row">\n\n <iframe ng-src="{{vm.getTrustedURL()}}" frameborder=0 style="width: 100%; height: 100%; border:0px;"></iframe>\n\n </div>\n\n</md-content>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.dialog.html",'<md-dialog id="agent-general-dialog" aria-label="Spy Dialog">\n <div id="interaction-app" class="agent-content" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.html\'"></div>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/agent.general.interaction.html",'\x3c!-- CONTENT CARD --\x3e\n<md-content class="content-card" layout="row" layout-fill>\n\n <div ng-if="!vm.showInteraction" class="start-point" flex layout="column" layout-align="center center" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.loading.html\'"></div>\n\n <div ng-if="vm.showInteraction" flex layout="row">\n\n <md-card flex="75" class="interaction">\n\n <md-content class="interaction-agents" layout="row" layout-align="start center" ng-if="!vm.interaction.closed && vm.interaction.Users.length">\n <strong layout-margin translate="DASHBOARDS.CURRENTLY_IN_USE_BY">Currently in use by </strong>\n\n <div ng-repeat="u in vm.interaction.Users">\n <img class="avatar-small" ng-src="api/users/{{u.id}}/avatar">\n <md-tooltip> {{ (u.id == vm.user.id) ? \'DASHBOARDS.ME\' : vm.usersMap[u.id] | translate }}\n </md-tooltip>\n </div>\n </md-content>\n\n \x3c!-- TOOLBAR --\x3e\n <md-toolbar class="interaction-toolbar" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.html\'">\n </md-toolbar>\n \x3c!-- / TOOLBAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <md-content id="interaction-content" name="{{\'interaction-content-\' + vm.tab.id}}" flex ms-scroll layout-wrap>\n <div class="interaction-messages" ng-switch="vm.tab.channel">\n <div ng-switch-when="mail">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.interaction.mail.html\'">\n </div>\n </div>\n <div ng-switch-default>\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.interaction.html\'">\n </div>\n </div>\n </div>\n </md-content>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- FOOTER --\x3e\n <div ng-if="\n !vm.interaction.closed && ( vm.tab.channel == \'chat\' \n || (vm.tab.channel == \'openchannel\' && vm.account.replyUri) \n || (vm.tab.channel == \'sms\' && !vm.tab.spy) \n || (vm.tab.channel == \'whatsapp\' && !vm.tab.spy) )\n && (vm.user.role !== \'admin\' && vm.user.role !== \'user\')" class="interaction-footer flex-noshrink" layout="row" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.footer.html\'">\n </div>\n \x3c!-- / FOOTER--\x3e\n </md-card>\n\n <md-card layout="column" flex class="info" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.html\'">\n </md-card>\n </div>\n</md-content>\n\x3c!-- / CONTENT CARD --\x3e'),e.put("app/main/apps/dashboards/views/general/agent/interaction/compose/chat/dialog.html",'<md-dialog class="compose-dialog" aria-label="New Message">\n <form class="md-inline-form" name="composeForm" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div layout="row">\n <md-button ng-if="!vm.secret" ng-click="vm.send()" class="md-raised md-blue-bg white-fg" aria-label="Send message">\n <span translate="CHAT.SEND">SEND</span>\n </md-button>\n <md-button ng-if="vm.secret" ng-click="vm.addNote()" class="md-raised md-blue-bg white-fg" aria-label="Add note">\n <span translate="CHAT.ADD_NOTE">Add note</span>\n </md-button>\n </div>\n <span ng-if="!vm.secret" class="title">{{vm.message.from}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" aria-label="Close dialog" tranlate translate-aria-label="CHAT.CLOSE_DIALOG">\n <md-icon md-font-icon="icon-close"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container ng-if="!vm.secret" class="md-block to">\n <label translate="CHAT.TO">To</label>\n <md-chips name="to" ng-model="vm.message.to" md-transform-chip="vm.transformContact($chip)" md-separator-keys="vm.separatorKeys" md-require-match="false" md-max-chips="1" required>\n <md-autocomplete md-search-text="vm.searchTo" md-items="contact in vm.contactSearch(vm.searchTo)" md-item-text="contact.mobile" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n <div ng-messages="composeForm.to.$error" role="alert">\n <div ng-message="required">\n <span translate="CHAT.ERRORS.TO_REQUIRED">To field is required</span>\n </div>\n </div>\n </md-input-container>\n <ms-emoji-area on-reply="vm.reply(event, body)" ctrl-methods="vm.ctrlMethods" ng-model="vm.message.body" placeholder="\'CHAT.INSERT_MESSAGE_HERE\'" picker-position="\'bottom\'"></ms-emoji-area>\n <md-autocomplete ng-if="!vm.secret" class="padding-top-5" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-selected-item-change="vm.selectedItemChange(item)" md-items="item in vm.searchTextChange(vm.searchText)" md-item-text="item.value" md-min-length="1" md-floating-label="{{ \'CHAT.CANNED_ANSWER_SEARCH\' | translate}}" class="input-show-hide no-container-margin">\n <md-item-template>\n <md-icon ng-if="!item.ChatAccountId" md-font-icon="icon-earth" aria-label="alert chat" class="s16"></md-icon>\n <md-icon ng-if="item.ChatAccountId" md-font-icon="icon-message-text" aria-label="alert chat" class="s16 orange-fg"></md-icon>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{item.key}} - {{item.value}}</span>\n </md-item-template>\n\n <md-not-found>\n <span translate="CHAT.CANNED_ANSWER_NOT_FOUND">No canned answers were found</span>\n </md-not-found>\n </md-autocomplete>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/compose/fax/dialog.html",'<md-dialog class="compose-dialog" aria-label="New Message">\n <form class="md-inline-form" name="composeForm" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div layout="row">\n <md-button ng-click="vm.send()" class="md-raised md-blue-bg white-fg" aria-label="Send message">\n <span translate="FAX.SEND">SEND</span>\n </md-button>\n <md-button ng-disabled="vm.message.attachments.length === 1" class="md-fab md-mini md-white-bg" aria-label="attachment" translate-attr-aria-label="DASHBOARDS.ATTACHMENT" flow-btn flow-name="vm.ngFlow.flow" flow-files-submitted="vm.upload()" flow-init="vm.ngFlowOptions" flow-file-added="vm.fileAdded($file)" flow-file-success="vm.fileSuccess($file, $message)">\n <md-icon md-font-icon="icon-paperclip" class="red-fg"></md-icon>\n </md-button>\n </div>\n <span class="title">{{vm.message.from}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" aria-label="Close dialog" tranlate translate-aria-label="FAX.CLOSE_DIALOG">\n <md-icon md-font-icon="icon-close"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <md-input-container class="md-block to">\n <label translate="FAX.TO">To</label>\n <md-chips name="to" ng-model="vm.message.to" md-transform-chip="vm.transformContact($chip)" md-separator-keys="vm.separatorKeys" md-require-match="false" md-max-chips="1" required>\n <md-autocomplete ng-hide="vm.message.to.length === 1" md-search-text="vm.searchTo" md-items="contact in vm.contactSearch(vm.searchTo)" md-item-text="contact.fax" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n <div ng-messages="composeForm.to.$error" ng-if="composeForm.$dirty">\n <div ng-message="required">\n <span translate="FAX.ERRORS.TO_REQUIRED">To field is required</span>\n </div>\n <div ng-message="md-max-chips">You reached the maximum amount of chips</div>\n </div>\n </md-input-container>\n <div class="attachment-list" ng-if="vm.message.attachments.length" layout="row" layout-wrap>\n <div class="attachment" layout="row" layout-align="space-between center" ng-repeat="attachment in vm.message.attachments">\n <div>\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n <span class="filename">{{attachment.name}}</span>\n <span class="size">({{attachment.size | byteFmt: 0}})</span>\n </div>\n <md-button class="md-icon-button" aria-label="Delete attachment" translate translate-attr-aria-label="FAX.DELETE_ATTACHMENT">\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/compose/mail/dialog.html",'<md-dialog class="compose-dialog" aria-label="New Message" ng-class="{\'mail-no-secret\': !vm.secret}" ng-cloak>\n <form class="md-inline-form" name="composeForm" novalidate>\n <md-toolbar ng-class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div layout="row">\n <div ng-if="!vm.secret" class="md-button md-raised blue-bg no-padding">\n <button class="white-fg margin-horizontal-10" aria-label="Send message" ng-disabled="!vm.verifySmtp" ng-click="vm.send($event, false, null)">\n <span>{{ \'MAIL.SEND\' | translate | uppercase }}</span>\n </button>\n <span class="white-fg secondary-text vertical-divider"></span>\n <md-menu>\n <button ng-disabled="!vm.verifySmtp" class="white-fg margin-left-0" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-menu-down" class="icon s24"></md-icon>\n </button>\n <md-menu-content width="2">\n <md-menu-item ng-if="vm.subStatuses.rows.length">\n <md-menu>\n <md-button ng-click="$mdMenu.open()" class="text-capitalize" translate="MAIL.SEND_AS">\n Send as\n </md-button>\n <md-menu-content>\n <md-menu-item ng-repeat="subStatus in vm.subStatuses.rows">\n <md-button ng-click="vm.send($event, false, subStatus.name)">\n {{subStatus.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.send($event, true, null)" translate="MAIL.SEND_AND_CLOSE">\n Send and Close\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <md-button ng-if="!vm.secret" class=" md-button md-raised blue-bg white-fg margin-horizontal-10" aria-label="Save draft" ng-click="vm.saveDraft()">\n <span>{{ (vm.isDraft ? \'DASHBOARDS.UPDATE_DRAFT\' : \'DASHBOARDS.SAVE_AS_DRAFT\') | translate | uppercase }}</span>\n </md-button>\n <md-button ng-if="vm.secret" ng-click="vm.addNote()" class="md-raised md-blue-bg white-fg" aria-label="Send message">\n <span translate="MAIL.ADD_NOTE">Add note</span>\n </md-button>\n <md-button ng-disabled="!vm.verifySmtp" class="md-fab md-mini md-white-bg" aria-label="attachment" translate-attr-aria-label="DASHBOARDS.ATTACHMENT" flow-btn flow-name="vm.ngFlow.flow" flow-files-submitted="vm.upload($files)" flow-init="vm.ngFlowOptions" flow-file-success="vm.fileSuccess($file, $message)" flow-file-added="vm.fileAdded($file)">\n <md-icon md-font-icon="icon-paperclip" class="red-fg"></md-icon>\n </md-button>\n </div>\n <span ng-if="!vm.secret" class="title">{{vm.message.from}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" aria-label="Close dialog" tranlate translate-aria-label="MAIL.CLOSE_DIALOG">\n <md-icon md-font-icon="icon-close"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container ng-if="!vm.secret" class="md-block to" ng-class="{\'hidden-cc\': vm.hiddenCC, \'hidden-bcc\': vm.hiddenBCC}">\n <label translate="MAIL.TO">To</label>\n <md-chips name="to" ng-model="vm.message.to" ng-keypress="vm.keyPress($event)" md-transform-chip="vm.transformContact($chip, vm.message.to)" md-separator-keys="vm.separatorKeys" md-require-match="false" required>\n <md-autocomplete md-search-text="vm.searchTo" md-items="contact in vm.contactSearch(vm.searchTo)" md-item-text="contact.email" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n <div ng-messages="composeForm.to.$error" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.TO_REQUIRED">To field is required</span>\n </div>\n </div>\n <div class="cc-bcc" layout="row" layout-align="start center">\n <div class="show-cc" ng-show="vm.hiddenCC" ng-click="vm.hiddenCC = false">CC</div>\n <div class="show-bcc" ng-show="vm.hiddenBCC" ng-click="vm.hiddenBCC = false">BCC</div>\n </div>\n </md-input-container>\n <md-input-container ng-if="!vm.secret" class="md-block" ng-hide="vm.hiddenCC">\n <label translate="MAIL.CC">Cc</label>\n <md-chips name="cc" ng-model="vm.message.cc" ng-keypress="vm.keyPress($event)" md-transform-chip="vm.transformContact($chip, vm.message.cc)" md-separator-keys="vm.separatorKeys" md-require-match="false" required>\n <md-autocomplete md-search-text="vm.searchCc" md-items="contact in vm.contactSearch(vm.searchCc)" md-item-text="contact.email" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n </md-input-container>\n <md-input-container ng-if="!vm.secret" class="md-block" ng-hide="vm.hiddenBCC">\n <label translate="MAIL.BCC">Bcc</label>\n <md-chips name="bcc" ng-model="vm.message.bcc" ng-keypress="vm.keyPress($event)" md-transform-chip="vm.transformContact($chip, vm.message.bcc)" md-separator-keys="vm.separatorKeys" md-require-match="false" required>\n <md-autocomplete md-search-text="vm.searchBcc" md-items="contact in vm.contactSearch(vm.searchBcc)" md-item-text="contact.email" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n </md-input-container>\n <md-input-container ng-if="!vm.secret" class="md-block no-margin">\n <label translate="MAIL.SUBJECT">Subject</label>\n <input ng-model="vm.message.subject" type="text" ng-keypress="vm.keyPress($event)">\n </md-input-container>\n <div class="attachment-list" ng-if="vm.message.attachments.length" layout="row" layout-wrap>\n <div class="attachment" layout="row" layout-align="space-between center" ng-repeat="attachment in vm.message.attachments">\n <div>\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n <span class="filename">{{attachment.name}}</span>\n <span class="size" ng-if="attachment.size">({{attachment.size | byteFmt: 0}})</span>\n </div>\n <md-button ng-click="vm.removeAttachment(attachment)" class="md-icon-button" aria-label="Delete attachment" translate translate-attr-aria-label="MAIL.DELETE_ATTACHMENT">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <div class="padding-top-5">\n <textarea ckeditor="vm.ckeditor" id="html-area" ng-model="vm.message.body" md-select-on-focus="" ready="vm.onReadyEditor()"></textarea>\n </div>\n <md-switch ng-if="!vm.message.showLastMessage && !vm.secret" ng-model="vm.message.showLastMessage" ng-change="vm.loadLastMessage()" aria-label="load last message"><span translate="MAIL.SHOW_ORIGINAL_MESSAGE">Show original message</span></md-switch>\n <md-autocomplete ng-if="!vm.secret" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-selected-item-change="vm.selectedItemChange(item)" md-items="item in vm.searchTextChange(vm.searchText)" md-item-text="item.value" md-min-length="1" md-floating-label="{{ \'MAIL.CANNED_ANSWER_SEARCH\' | translate}}" class="input-show-hide no-container-margin" ng-keypress="vm.keyPress($event)">\n <md-item-template>\n <md-icon ng-if="!item.MailAccountId" md-font-icon="icon-earth" aria-label="alert email" class="s16">\n </md-icon>\n <md-icon ng-if="item.MailAccountId" md-font-icon="icon-email" aria-label="alert email" class="s16 teal-fg"></md-icon>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{ item.key }} -\n {{ item.value | htmlToPlaintext }}</span>\n </md-item-template>\n <md-not-found>\n <span translate="MAIL.CANNED_ANSWER_NOT_FOUND">No canned answers were found</span>\n </md-not-found>\n </md-autocomplete>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/compose/openchannel/dialog.html",'<md-dialog class="compose-dialog" aria-label="New Message">\n <form class="md-inline-form" name="composeForm" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div layout="row">\n <md-button ng-if="!vm.secret" ng-click="vm.send()" class="md-raised md-blue-bg white-fg" aria-label="Send message">\n <span translate="OPENCHANNEL.SEND">SEND</span>\n </md-button>\n <md-button ng-if="vm.secret" ng-click="vm.addNote()" class="md-raised md-blue-bg white-fg" aria-label="Add note">\n <span translate="OPENCHANNEL.ADD_NOTE">Add note</span>\n </md-button>\n </div>\n <span ng-if="!vm.secret" class="title">{{vm.message.from}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" aria-label="Close dialog" tranlate translate-aria-label="OPENCHANNEL.CLOSE_DIALOG">\n <md-icon md-font-icon="icon-close"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container ng-if="!vm.secret" class="md-block to">\n <label translate="OPENCHANNEL.TO">To</label>\n <md-chips name="to" ng-model="vm.message.to" md-transform-chip="vm.transformContact($chip)" md-separator-keys="vm.separatorKeys" md-require-match="false" md-max-chips="1" required>\n <md-autocomplete md-search-text="vm.searchTo" md-items="contact in vm.contactSearch(vm.searchTo)" md-item-text="contact.mapkey" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n <div ng-messages="composeForm.to.$error" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TO_REQUIRED">To field is required</span>\n </div>\n </div>\n </md-input-container>\n <ms-emoji-area on-reply="vm.reply(event, body)" ctrl-methods="vm.ctrlMethods" ng-model="vm.message.body" placeholder="\'OPENCHANNEL.INSERT_MESSAGE_HERE\'" picker-position="\'bottom\'"></ms-emoji-area>\n <md-autocomplete ng-if="!vm.secret" class="padding-top-5" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-selected-item-change="vm.selectedItemChange(item)" md-items="item in vm.searchTextChange(vm.searchText)" md-item-text="item.value" md-min-length="1" md-floating-label="{{ \'OPENCHANNEL.CANNED_ANSWER_SEARCH\' | translate}}" class="input-show-hide no-container-margin">\n <md-item-template>\n <md-icon ng-if="!item.OpenchannelAccountId" md-font-icon="icon-earth" aria-label="alert openchannel" class="s16"></md-icon>\n <md-icon ng-if="item.OpenchannelAccountId" md-font-icon="icon-message-text" aria-label="alert openchannel" class="s16 orange-fg"></md-icon>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{item.key}} - {{item.value}}</span>\n </md-item-template>\n <md-not-found>\n <span translate="OPENCHANNEL.CANNED_ANSWER_NOT_FOUND">No canned answers were found</span>\n </md-not-found>\n </md-autocomplete>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/compose/sms/dialog.html",'<md-dialog class="compose-dialog" aria-label="New Message">\n <form class="md-inline-form" name="composeForm" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div layout="row">\n <md-button ng-if="!vm.secret" ng-click="vm.send()" class="md-raised md-blue-bg white-fg" aria-label="Send message">\n <span translate="SMS.SEND">SEND</span>\n </md-button>\n <md-button ng-if="vm.secret" ng-click="vm.addNote()" class="md-raised md-blue-bg white-fg" aria-label="Add note">\n <span translate="SMS.ADD_NOTE">Add note</span>\n </md-button>\n </div>\n <span ng-if="!vm.secret" class="title">{{vm.message.from}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" aria-label="Close dialog" tranlate translate-aria-label="SMS.CLOSE_DIALOG">\n <md-icon md-font-icon="icon-close"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container ng-if="!vm.secret" class="md-block to">\n <label translate="SMS.TO">To</label>\n <md-chips name="to" ng-model="vm.message.to" md-transform-chip="vm.transformContact($chip)" md-separator-keys="vm.separatorKeys" md-require-match="false" md-max-chips="1" required>\n <md-autocomplete md-search-text="vm.searchTo" md-items="contact in vm.contactSearch(vm.searchTo)" md-item-text="contact.mobile" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n <div ng-messages="composeForm.to.$error" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TO_REQUIRED">To field is required</span>\n </div>\n </div>\n </md-input-container>\n <ms-emoji-area on-reply="vm.reply(event, body)" ctrl-methods="vm.ctrlMethods" ng-model="vm.message.body" placeholder="\'SMS.INSERT_MESSAGE_HERE\'" picker-position="\'bottom\'"></ms-emoji-area>\n <md-autocomplete ng-if="!vm.secret" class="padding-top-5" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-selected-item-change="vm.selectedItemChange(item)" md-items="item in vm.searchTextChange(vm.searchText)" md-item-text="item.value" md-min-length="1" md-floating-label="{{ \'SMS.CANNED_ANSWER_SEARCH\' | translate}}" class="input-show-hide no-container-margin">\n <md-item-template>\n <md-icon ng-if="!item.SmsAccountId" md-font-icon="icon-earth" aria-label="alert sms" class="s16"></md-icon>\n <md-icon ng-if="item.SmsAccountId" md-font-icon="icon-message-text" aria-label="alert sms" class="s16 orange-fg"></md-icon>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{item.key}} - {{item.value}}</span>\n </md-item-template>\n <md-not-found>\n <span translate="SMS.CANNED_ANSWER_NOT_FOUND">No canned answers were found</span>\n </md-not-found>\n </md-autocomplete>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/compose/whatsapp/dialog.html",'<md-dialog class="compose-dialog" aria-label="New Message">\n <form class="md-inline-form" name="composeForm" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <div layout="row">\n <md-button ng-if="!vm.secret" ng-click="vm.send()" class="md-raised md-blue-bg white-fg" aria-label="Send message">\n <span translate="WHATSAPP.SEND">SEND</span>\n </md-button>\n <md-button ng-if="vm.secret" ng-click="vm.addNote()" class="md-raised md-blue-bg white-fg" aria-label="Add note">\n <span translate="WHATSAPP.ADD_NOTE">Add note</span>\n </md-button>\n </div>\n <span ng-if="!vm.secret" class="title">{{vm.message.from}}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" aria-label="Close dialog" tranlate translate-aria-label="WHATSAPP.CLOSE_DIALOG">\n <md-icon md-font-icon="icon-close"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container ng-if="!vm.secret" class="md-block to">\n <label translate="WHATSAPP.TO">To</label>\n <md-chips name="to" ng-model="vm.message.to" md-transform-chip="vm.transformContact($chip)" md-separator-keys="vm.separatorKeys" md-require-match="false" md-max-chips="1" required>\n <md-autocomplete md-search-text="vm.searchTo" md-items="contact in vm.contactSearch(vm.searchTo)" md-item-text="contact.mobile" md-min-length="3">\n <md-item-template>\n <span>{{ vm.getContact(contact) }}</span>\n </md-item-template>\n </md-autocomplete>\n </md-chips>\n <div ng-messages="composeForm.to.$error" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TO_REQUIRED">To field is required</span>\n </div>\n </div>\n </md-input-container>\n <ms-emoji-area on-reply="vm.reply(event, body)" ctrl-methods="vm.ctrlMethods" ng-model="vm.message.body" placeholder="\'WHATSAPP.INSERT_MESSAGE_HERE\'" picker-position="\'bottom\'"></ms-emoji-area>\n <md-autocomplete ng-if="!vm.secret" class="padding-top-5" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-selected-item-change="vm.selectedItemChange(item)" md-items="item in vm.searchTextChange(vm.searchText)" md-item-text="item.value" md-min-length="1" md-floating-label="{{ \'WHATSAPP.CANNED_ANSWER_SEARCH\' | translate}}" class="input-show-hide no-container-margin">\n <md-item-template>\n <md-icon ng-if="!item.WhatsappAccountId" md-font-icon="icon-earth" aria-label="alert whatsapp" class="s16">\n </md-icon>\n <md-icon ng-if="item.WhatsappAccountId" md-font-icon="icon-message-text" aria-label="alert whatsapp" class="s16 orange-fg"></md-icon>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{item.key}} - {{item.value}}</span>\n </md-item-template>\n <md-not-found>\n <span translate="WHATSAPP.CANNED_ANSWER_NOT_FOUND">No canned answers were found</span>\n </md-not-found>\n </md-autocomplete>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/dispose/dialog.html",'<md-dialog class="disposition-dialog" aria-label="disposition" ng-init="vm.onInit()">\n <form name="dispositionForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span ng-if="!vm.interaction.closed" class="title" translate="DASHBOARDS.DISPOSE"></span>\n <span ng-if="vm.interaction.closed" class="title" translate="DASHBOARDS.INFO"></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()" ng-if="!vm.mandatoryDisposition">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="DASHBOARDS.DISPOSITION">Disposition</label>\n <md-select name="disposition" ng-model="vm.firstLevelDisposition" ng-change="vm.onDispositionChange(\'first\')" required>\n <md-option ng-value="null" ng-if="!vm.mandatoryDisposition">NONE</md-option>\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'first\' } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n <div ng-messages="dispositionForm.disposition.$error" ng-show="dispositionForm.disposition.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.firstLevelDisposition && vm.anySecondLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="DASHBOARDS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</label>\n <md-select name="secondLevelDisposition" ng-model="vm.secondLevelDisposition" ng-change="vm.onDispositionChange(\'second\')">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'second\', ParentId: vm.firstLevelDisposition.id } : true">\n {{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.secondLevelDisposition" ng-click="vm.clearDispositionSelection(\'second\')" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear second level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <div ng-if="vm.secondLevelDisposition && vm.anyThirdLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="DASHBOARDS.THIRD_LEVEL_DISPOSITION">Third Level Disposition</label>\n <md-select name="thirdLevelDisposition" ng-model="vm.thirdLevelDisposition">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'third\', ParentId: vm.secondLevelDisposition.id } : true" ng-disabled="disposition.canSelect === false">{{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.thirdLevelDisposition" ng-click="vm.clearDispositionSelection(\'third\')" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear third level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <md-input-container class="md-block">\n <label translate="DASHBOARDS.NOTE">Note</label>\n <textarea ng-model="vm.interaction.note" md-maxlength="255" max-rows="5" autofocus></textarea>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.saveDisposition()" ms-dialog-spinner class="send-button md-accent md-raised" ng-if="!vm.interaction.closed && (vm.firstLevelDisposition || vm.secondLevelDisposition || vm.thirdLevelDisposition)" aria-label="CLOSE_AND_DISPOSE" translate="DASHBOARDS.CLOSE_AND_DISPOSE" translate-attr-aria-label="DASHBOARDS.CLOSE_AND_DISPOSE">\n CLOSE AND DISPOSE\n </md-button>\n <md-button type="submit" ng-click="vm.saveDisposition(false)" ms-dialog-spinner class="send-button md-accent md-raised" ng-if="!vm.interaction.closed && !vm.firstLevelDisposition" ng-disabled="vm.mandatoryDisposition" aria-label="CLOSE_WITHOUT_DISPOSE" translate="DASHBOARDS.CLOSE_WITHOUT_DISPOSE" translate-attr-aria-label="DASHBOARDS.CLOSE_WITHOUT_DISPOSE">\n CLOSE WITHOUT DISPOSE\n </md-button>\n <md-button type="submit" ng-click="vm.saveDisposition()" ms-dialog-spinner class="send-button md-accent md-raised" ng-if="vm.interaction.closed" ng-disabled="vm.mandatoryDisposition && !vm.firstLevelDisposition" aria-label="DISPOSE" translate="DASHBOARDS.DISPOSE" translate-attr-aria-label="DASHBOARDS.DISPOSE">\n DISPOSE\n </md-button>\n <div ng-if="vm.mandatoryDisposition">\n <md-icon md-font-icon="icon-information-outline" aria-label="Mandatory Disposition"></md-icon>\n <span class="no-margin font-size-12 line-height-30" translate="DASHBOARDS.HELP.MANDATORY_DISPOSITION_ENABLED"></span>\n </div>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/tag/dialog.html",'<md-dialog class="tag-dialog" aria-label="tag">\n <form name="tagForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="DASHBOARDS.TAGS"></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <md-chips ng-model="vm.interaction.Tags" md-autocomplete-snap md-require-match="vm.autocompleteRequireMatch">\n <md-autocomplete ng-blur="vm.searchText = \'\'" md-min-length="0" md-selected-item-change="vm.selectedItemChange" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-items="item in vm.tags.rows | filter:{ name: vm.searchText }" md-item-text="item.name" placeholder="Search for a tag">\n <span md-highlight-text="vm.searchText">{{item.name}}</span>\n </md-autocomplete>\n <md-chip-template>\n <span>\n <strong>{{$chip.name}}</strong>\n </span>\n </md-chip-template>\n </md-chips>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.saveTag(false)" ng-disabled="tagForm.$pristine" class="send-button md-accent md-raised" aria-label="TAG" translate="DASHBOARDS.SAVE" translate-attr-aria-label="DASHBOARDS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/transfer/dialog.html",'<md-dialog class="disposition-dialog" aria-label="disposition">\n <form name="transferForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="DASHBOARDS.TRANSFER"></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog(false)">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <md-input-container class="md-block">\n <label translate="DASHBOARDS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.transfer.type">\n <md-option ng-value="\'queue\'" ng-if="vm.account.queueTransfer">Queue</md-option>\n <md-option ng-value="\'agent\'" ng-if="vm.account.agentTransfer">Agent</md-option>\n </md-select>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.transfer.type === \'queue\'">\n <label translate="DASHBOARDS.QUEUES">Queues</label>\n <md-select name="queue" ng-model="vm.transfer.id" required>\n <md-option ng-value="queue.id" ng-repeat="queue in vm.queues.rows">{{ queue.name }}</md-option>\n </md-select>\n <div ng-messages="transferForm.queue.$error" ng-show="transferForm.queue.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.transfer.type === \'agent\'">\n <label translate="DASHBOARDS.AGENTS">Agents</label>\n <md-select name="agent" ng-model="vm.transfer.id" required>\n <md-option ng-value="agent.id" ng-repeat="agent in vm.agents.rows">{{\n agent.name }}</md-option>\n </md-select>\n <div ng-messages="transferForm.agent.$error" ng-show="transferForm.agent.$touched" role="alert">\n <div ng-message="required">\n <span translate="DASHBOARDS.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.onTransfer(true)" ng-disabled="transferForm.$pristine" class="send-button md-accent md-raised" aria-label="DASHBOARDS.TRANSFER" translate="DASHBOARDS.TRANSFER" translate-attr-aria-label="DASHBOARDS.TRANSFER">\n TRANSFER\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.footer.html",'\x3c!-- REPLY FORM --\x3e\n<div ng-show="vm.showFooter" layout="column" layout-align="center center" flex>\n <div layout="row" layout-align="center center" style="flex-grow: 1; align-self: stretch" flex>\n \x3c!-- msEmojyArea directive --\x3e\n <ms-emoji-area ng-if="vm.tab.channel != \'fax\'" on-reply="vm.reply(event, body)" ctrl-methods="vm.ctrlMethods" ng-model="vm.tab.areaText" placeholder="vm.tab.channel.toUpperCase() + \'.INSERT_MESSAGE_HERE\'"></ms-emoji-area>\n \x3c!-- / msEmojyArea directive --\x3e\n\n <div layout="row" layout-align="end center">\n <md-button ng-if="vm.tab.channel != \'fax\'" style="margin:1px;" class="md-icon-button md-mini" ng-click="vm.changeDisplayCannedAnswerInputValue()" aria-label="Search canned answer" translate translate-attr-aria-label="DASHBOARDS.SEND_MESSAGE">\n <md-icon md-font-icon="icon-auto-fix" class="green-fg"></md-icon>\n </md-button>\n\n <md-button ng-if="vm.tab.channel == \'openchannel\' || vm.tab.channel == \'chat\' || vm.tab.channel == \'fax\'" style="margin:1px;" class="md-icon-button md-warn md-mini" aria-label="attachment" translate-attr-aria-label="DASHBOARDS.ATTACHMENT" flow-btn flow-name="vm.ngFlow.flow" flow-files-submitted="vm.upload()" flow-init="vm.ngFlowOptions" flow-file-added="vm.fileAdded($file)" flow-file-success="vm.fileSuccess($file, $message)">\n <md-icon md-font-icon="icon-paperclip"></md-icon>\n </md-button>\n </div>\n </div>\n\n <md-autocomplete ng-hide="!vm.displayCannedAnswerInput" md-selected-item="vm.selectedItem" md-search-text="vm.searchText" md-selected-item-change="vm.selectedItemChange(item)" md-items="item in vm.searchTextChange(vm.searchText)" md-item-text="item.value" md-min-length="1" placeholder="{{ \'DASHBOARDS.CANNED_ANSWER_SEARCH\' | translate}}" class="cannedarea input-show-hide">\n <md-item-template>\n <md-icon ng-if="!item[vm.tab.channel === \'chat\' ? \'ChatWebsiteId\' : _.capitalize(vm.tab.channel) + \'AccountId\']" md-font-icon="icon-earth" aria-label="alert channel" class="s16"></md-icon>\n <md-icon ng-if="item[vm.tab.channel === \'chat\' ? \'ChatWebsiteId\' : _.capitalize(vm.tab.channel) + \'AccountId\']" md-font-icon="{{vm.getIconByChannel(vm.tab.channel)}}" aria-label="alert channel" class="s16" ng-class="vm.getColorByChannel(vm.tab.channel) + \'-fg\'"></md-icon>\n <span md-highlight-text="vm.searchText" md-highlight-flags="^i">{{item.key}} - {{item.value}}</span>\n </md-item-template>\n\n <md-not-found>\n <span translate="DASHBOARDS.CANNED_ANSWER_NOT_FOUND">No canned answers were found</span>\n </md-not-found>\n </md-autocomplete>\n</div>\n\x3c!-- / REPLY FORM --\x3e'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.chat.html",'<div ng-init="item = item || vm.interaction">\n <md-list-item class="md-2-line" ng-if="item.browserName">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.BROWSER_NAME">Browser Name</p>\n <h4>{{ item.browserName }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.osName">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.OS_NAME">OS Name</p>\n <h4>{{ item.osName }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.deviceModel">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.DEVICE_MODEL">Device Model</p>\n <h4>{{ item.deviceModel }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.referer">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.REFERER">Referer</p>\n <h4>{{ item.referer }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.customerIp">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CUSTOMER_IP">Originating IP Address</p>\n <h4>{{ item.customerIp }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.customerPort">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CUSTOMER_PORT">Originating TCP Port</p>\n <h4>{{ item.customerPort }}</h4>\n </div>\n </md-list-item>\n <md-divider ng-if="item.closed && item.ratingValue != null || item.ratingMessage"></md-divider>\n <md-list-item class="md-2-line" ng-if="item.closed && item.ratingValue != null">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.RATING">Rating</p>\n <md-icon md-font-icon="icon-star" style="color:red" ng-show="!item.ratingType || item.ratingType == \'star\'" ng-repeat="ratingValue in [1,2,3,4,5] | limitTo:item.ratingValue"></md-icon>\n <md-icon md-font-icon="icon-thumb-up" style="color:green" ng-show="item.ratingType && item.ratingType == \'thumb\' && item.ratingValue == 1"></md-icon>\n <md-icon md-font-icon="icon-thumb-down" style="color:red" ng-show="item.ratingType && item.ratingType == \'thumb\' && item.ratingValue == 0"></md-icon>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.ratingMessage">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.FEEDBACK">Feedback</p>\n <h4 style="overflow-wrap: break-word; white-space: normal">{{ item.ratingMessage }}</h4>\n </div>\n </md-list-item>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.html",'<md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex>\n <md-tab>\n <md-tab-label>\n <span translate="DASHBOARDS.CONTACT">Contact</span>\n </md-tab-label>\n <md-tab-body>\n <md-content class="md-padding">\n <form name="contactForm" class="md-inline-form" novalidate>\n <md-input-container class="md-block">\n <md-icon md-font-icon="icon-account"></md-icon>\n <label translate="DASHBOARDS.NAME">Name</label>\n <input type="text" name="firstName" ng-model="vm.contact.firstName" disabled privacy ng-cloak>\n </md-input-container>\n\n <md-input-container class="md-block">\n <md-icon md-font-icon="icon-email"></md-icon>\n <label translate="DASHBOARDS.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.contact.email" disabled privacy ng-cloak>\n </md-input-container>\n\n <md-input-container class="md-block">\n <md-icon md-font-icon="icon-phone"></md-icon>\n <label translate="DASHBOARDS.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.contact.phone" disabled privacy ng-cloak>\n </md-input-container>\n\n <md-input-container class="md-block">\n <md-icon md-font-icon="icon-cellphone-iphone"></md-icon>\n <label translate="DASHBOARDS.MOBILE">Mobile</label>\n <input type="text" name="mobile" ng-model="vm.contact.mobile" disabled privacy ng-cloak>\n </md-input-container>\n\n <md-input-container class="md-block">\n <md-icon md-font-icon="icon-deskphone"></md-icon>\n <label translate="DASHBOARDS.FAX">Fax</label>\n <input type="text" name="fax" ng-model="vm.contact.fax" disabled privacy ng-cloak>\n </md-input-container>\n\n <div ng-if="!vm.tab.spy" layout="row" layout-align="center center">\n <md-button class="md-raised md-accent" ng-click="vm.openContact(ev)" translate="DASHBOARDS.MORE">\n More\n </md-button>\n </div>\n </form>\n </md-content>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="DASHBOARDS.INTERACTION">Interaction</span>\n </md-tab-label>\n <md-tab-body>\n <div layout="column" layout-align="space-between center" class="md-padding">\n <md-icon class="s42" md-font-icon="{{vm.getIconByChannel(vm.tab.channel)}}" ng-class="vm.getColorByChannel(vm.tab.channel) + \'-fg\'"></md-icon>\n <span ng-if="vm.interaction.closed" class="md-background-bg red-fg font-size-14">#{{vm.interaction.id}} - <span translate="DASHBOARDS.CLOSED"></span></span>\n <span ng-if="!vm.interaction.closed" class="md-background-bg green-fg font-size-14">#{{vm.interaction.id}} -\n <span translate="DASHBOARDS.OPENED"></span></span>\n <span ng-if="!vm.interaction.closed && vm.interaction.substatus" class="md-background-bg green-fg font-size-14">{{vm.interaction.substatus}}</span>\n </div>\n <md-divider></md-divider>\n <md-list flex>\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.WEBSITE" ng-if="vm.tab.channel == \'chat\'">Website</p>\n <p translate="DASHBOARDS.ACCOUNT" ng-if="vm.tab.channel != \'chat\'">Account</p>\n <h4>{{vm.account.name}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.AGENT">Agent</p>\n <h4>{{vm.agent.fullname || vm.usersMap[vm.interaction.UserId]}}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line" ng-if="vm.interaction.externalUrl">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.EXTERNAL_URL">External URL</p>\n <a href="{{vm.interaction.externalUrl}}" target="_blank">\n <h4>{{vm.interaction.externalUrl}}</h4>\n </a>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CREATED_AT">Created At</p>\n <h4>{{vm.interaction.createdAt | date: \'medium\'}}</h4>\n </div>\n </md-list-item>\n\n <div ng-switch="vm.tab.channel">\n <div ng-switch-when="chat">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.chat.html\'">\n </div>\n </div>\n <div ng-switch-when="mail">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.mail.html\'">\n </div>\n </div>\n <div ng-switch-when="openchannel">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.openchannel.html\'">\n </div>\n </div>\n </div>\n\n <md-list-item class="md-2-line" ng-if="vm.interaction.Tags.length">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.TAGS">Tags</p>\n <div class="tags padding-bottom-5" layout="row" layout-align="start center" layout-wrap>\n <div class="tag margin-right-5 margin-top-5 margin-bottom-5" layout="row" layout-align="center center" ng-repeat="tag in vm.interaction.Tags">\n <div class="tag-color" ng-style="{\'background\': tag.color}"></div>\n <div class="tag-label">{{tag.name}}</div>\n </div>\n </div>\n </div>\n </md-list-item>\n\n <md-divider ng-if="vm.interaction.closed"></md-divider>\n\n <md-list-item class="md-2-line" ng-if="vm.interaction.closed">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CLOSED_AT">Closed At</p>\n <h4>{{vm.interaction.closedAt | date: \'medium\'}}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="vm.interaction.closed && vm.interaction.disposition">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.DISPOSITION">Disposition</p>\n <h4>{{ vm.interaction.disposition }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="vm.interaction.closed && vm.interaction.secondDisposition">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</p>\n <h4>{{ vm.interaction.secondDisposition }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="vm.interaction.closed && vm.interaction.thirdDisposition">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.THIRD_LEVEL_DISPOSITION">Third Level Disposition</p>\n <h4>{{ vm.interaction.thirdDisposition }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-3-line md-long-text" ng-if="vm.interaction.closed && vm.interaction.note">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.NOTE">NOTE</p>\n <h4 style="overflow-wrap: break-word; white-space: normal">{{ vm.interaction.note }}</h4>\n </div>\n </md-list-item>\n </md-list>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="DASHBOARDS.CUSTOMER_JOURNEY">Journey</span>\n </md-tab-label>\n <md-tab-body>\n <md-content class="md-padding">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.html\'">\n </div>\n </md-content>\n </md-tab-body>\n </md-tab>\n</md-tabs>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.all.html",'<md-divider></md-divider>\n<md-list flex>\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.AGENT">Agent</p>\n <h4>{{ vm.agent.fullname || vm.usersMap[item.UserId] || \'DASHBOARDS.NOT_ASSIGNED\' | translate }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.externalUrl">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.EXTERNAL_URL">External URL</p>\n <a href="{{ item.externalUrl }}" target="_blank">\n <h4>{{ item.externalUrl }}</h4>\n </a>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CREATED_AT">Created At</p>\n <h4>{{ item.createdAt | date: \'medium\' }}</h4>\n </div>\n </md-list-item>\n <div ng-if="item.channel === \'chat\'">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.chat.html\'">\n </div>\n </div>\n <div ng-if="item.channel === \'mail\'">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.mail.html\'">\n </div>\n </div>\n <md-divider ng-if="item.closed"></md-divider>\n <md-list-item class="md-2-line" ng-if="item.closed">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CLOSED_AT">Closed At</p>\n <h4>{{ item.closedAt | date: \'medium\' }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.closed && item.disposition">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.DISPOSITION">Disposition</p>\n <h4>{{ item.disposition }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.closed && item.secondDisposition">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</p>\n <h4>{{ item.secondDisposition }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" ng-if="item.closed && item.thirdDisposition">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.THIRD_LEVEL_DISPOSITION">Third Level Disposition</p>\n <h4>{{ item.thirdDisposition }}</h4>\n </div>\n </md-list-item>\n <md-list-item class="md-3-line md-long-text" ng-if="item.closed && item.note">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.NOTE">NOTE</p>\n <h4 style="overflow-wrap: break-word; white-space: normal">{{ item.note }}</h4>\n </div>\n </md-list-item>\n <md-list-item ng-if="item.Tags.length">\n <p class="padding-horizontal-15 grey-fg">Tags</p>\n <div class="tags padding-bottom-5" layout="row" layout-align="start center" layout-wrap>\n <div class="tag margin-right-5 margin-top-5 margin-bottom-5" layout="row" layout-align="center center" ng-repeat="tag in item.Tags">\n <div class="tag-color" ng-style="{\'background\': tag.color}"></div>\n <div class="tag-label">{{ tag.name }}</div>\n </div>\n </div>\n </md-list-item>\n</md-list>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.html",'<div layout-margin layout="row" layout-align="center center">\n <ms-quick-filter filters="vm.quickFilters" query="vm.journeyOptions" search="vm.getCustomerJourney()">\n </ms-quick-filter>\n</div>\n\n<md-content id="journey-content" flex ms-scroll layout-wrap>\n <div ng-if="vm.journeyIsLoading" layout="row" layout-align="center center">\n <md-progress-circular class="md-accent" md-diameter="48" md-mode="indeterminate"></md-progress-circular>\n </div>\n <div id="timeline" layout="column" ng-if="vm.journey && vm.journey.length && !vm.journeyIsLoading" ms-timeline="vm.journeyTimelineOptions" ms-timeline-load-more="vm.loadMoreJourney()">\n \x3c!-- TIMELINE ITEM --\x3e\n <div class="ms-timeline-item" layout-align="center center" ng-repeat="item in vm.journey">\n <div class="timeline-card">\n <md-card class="channel" ng-class="{\'md-grey-200-bg\': item.id == vm.interaction.id}">\n <div layout="row" layout-align="space-between center">\n <div class="header p-6" layout="row" layout-align="start center" ng-cloak>\n <md-button class="md-fab md-mini no-click" aria-label="icon-channel" ng-class="{{ \'item.style.color\' }} + \'-bg\'">\n <md-icon md-font-icon="{{ item.style.icon }}"></md-icon>\n </md-button>\n <div class="info" layout="column" ng-init="item.showMore = false">\n <span class="font-size-12 text-truncate" ng-if="item.destination">\n #{{item.id}} - <span privacy ng-cloak>{{ item.destination }}</span>\n </span>\n <span class="font-size-12 text-truncate" ng-if="!item.destination">\n #{{item.id}} - {{ item.Account.key }}\n </span>\n <span class="font-size-10">{{item.createdAt | date: \'medium\'}}</span>\n <span>\n <a class="toggle-details md-accent-color" ng-click="item.showMore = !item.showMore" translate="{{ item.showMore ? \'DASHBOARDS.HIDE_DETAILS\' : \'DASHBOARDS.SHOW_DETAILS\' }}">\n </a>\n </span>\n </div>\n </div>\n <span>\n <img ng-if="item.UserId" class="avatar" ng-src="api/users/{{item.UserId}}/avatar">\n <md-tooltip md-direction="left">{{item.Owner.fullname || item.User.fullname}}</md-tooltip>\n </span>\n </div>\n <div ng-if="item.showMore">\n <div ng-if="item.channel !== \'voice\'" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.all.html\'">\n </div>\n <div ng-if="item.channel === \'voice\'" ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.voice.html\'">\n </div>\n </div>\n <md-divider></md-divider>\n <div ng-if="item.id != vm.interaction.id" layout="row" layout-align="space-around center">\n <div ng-if="item.closed && item.channel !== \'voice\'" class="text-truncate text-boxed-light">\n <span class="red-fg" title="{{ \'DASHBOARDS.STATUS\' | translate}} : {{ \'DASHBOARDS.CLOSED\' | translate }} {{ item.dispositionsValues }}">\n {{ \'DASHBOARDS.STATUS\' | translate}} : {{ \'DASHBOARDS.CLOSED\' | translate}} {{ item.dispositionsValues\n }}\n </span>\n </div>\n <span class="text-boxed md-background-bg green-fg" ng-if="!item.closed && item.channel !== \'voice\'" title="{{ \'DASHBOARDS.STATUS\' | translate}}: {{ \'DASHBOARDS.OPENED\' | translate}}">\n {{ \'DASHBOARDS.STATUS\' | translate}}:\n {{ \'DASHBOARDS.OPENED\' | translate}}\n <span ng-if="item.substatus"> - {{ item.substatus }}</span>\n </span>\n <span ng-if="item.channel === \'voice\'" class="text-boxed md-background-bg red-fg" title="{{ item.userDisposition ? (\'DASHBOARDS.DISPOSITION\' | translate) + \':\' : \'\'}} {{ item.userDisposition ?\n item.userDisposition : (\'DASHBOARDS.NO_DISPOSITION_SET\' | translate) }}">\n {{ item.userDisposition ? (\'DASHBOARDS.DISPOSITION\' | translate) + \':\' : \'\'}} {{ item.userDisposition ?\n item.userDisposition : (\'DASHBOARDS.NO_DISPOSITION_SET\' | translate) }}\n </span>\n <span ng-if="item.channel === \'voice\' && item.userSecondDisposition" class="text-boxed md-background-bg red-fg" title="{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}: {{ item.userSecondDisposition }}">\n {{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:\n {{ item.userSecondDisposition }}\n </span>\n <span ng-if="item.channel === \'voice\' && item.userThirdDisposition" class="text-boxed md-background-bg red-fg" title="{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}: {{ item.userThirdDisposition }}">\n {{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:\n {{ item.userThirdDisposition }}\n </span>\n <div flex></div>\n <md-button ng-if="!vm.tab.spy && vm.user.role === \'agent\' && item.canOpen && item.channel !== \'voice\'" class="md-icon-button" aria-label="go" ng-click="vm.openInteraction(item)">\n <md-icon md-font-icon="icon-open-in-new" class="s20"></md-icon>\n </md-button>\n </div>\n </md-card>\n </div>\n </div>\n\n <div ng-if="vm.canLoadMoreJourney" layout="row" layout-align="center center" class="ng-scope layout-align-center-center layout-row keep-on-top">\n <md-button class="md-raised md-accent md-button ng-scope md-default-theme md-ink-ripple" type="button" ng-click="vm.loadMoreJourney()" translate="DASHBOARDS.MORE">\n </md-button>\n </div>\n </div>\n \x3c!-- / TIMELINE ITEM --\x3e\n</md-content>\n\n<div ng-if="!vm.journey || vm.journey.length === 0" layout="row" layout-align="center center">\n <em translate="DASHBOARDS.NO_DATA_AVAILABLE">No data available</em>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.journey.voice.html",'<md-divider></md-divider>\n\n<md-list flex>\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.TYPE">Type</p>\n <h4>{{ item.type ? item.type : \'no type\' }}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.SOURCE">Source</p>\n <h4 privacy ng-cloak>{{ item.source ? item.source : (\'DASHBOARDS.UNKNOWN\' | translate) }}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.DESTINATION">Destination</p>\n <h4 privacy ng-cloak>{{ item.destination ? item.destination : (\'DASHBOARDS.UNKNOWN\' | translate) }}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.UNIQUEID">Uniqueid</p>\n <h4>{{ item.uniqueid ? item.uniqueid : (\'DASHBOARDS.UNKNOWN\' | translate) }}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.CALLERID">Caller Id</p>\n <h4 privacy ng-cloak>{{ item.callerid ? item.callerid : (\'DASHBOARDS.UNKNOWN\' | translate) }}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.STARTEDAT">Started At</p>\n <h4>{{ item.starttime | date:\'medium\' }}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.END_AT">End At</p>\n <h4>{{ item.endtime | date:\'medium\' }}</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.DURATION">Duration</p>\n <h4>{{ item.duration ? item.duration : \'--\' }}s</h4>\n </div>\n </md-list-item>\n\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.NOTE">Note</p>\n <h4>{{ item.note ? item.note : \'--\' }}</h4>\n </div>\n </md-list-item>\n</md-list>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.mail.html",'<div ng-init="item = item || vm.interaction">\n <md-list-item class="md-2-line" ng-if="item.subject">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.SUBJECT">Subject</p>\n <h4>{{ item.subject }}</h4>\n </div>\n </md-list-item>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.info.openchannel.html",'<div ng-init="item = item || vm.interaction">\n <md-list-item class="md-2-line">\n <div class="md-list-item-text">\n <p translate="DASHBOARDS.VISIBILITY">Visibility</p>\n <h4 translate="{{ item.threadId ? \'DASHBOARDS.PUBLIC\' : \'DASHBOARDS.PRIVATE\'}}"></h4>\n </div>\n </md-list-item>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.interaction.html",'\x3c!-- MESSAGES --\x3e\n<div layout="row" ng-repeat="message in vm.messages.rows" class="md-padding message-row" ng-class="vm.getMessagesAlignment(message)">\n <img ng-if="message.direction ===\'in\'" src="assets/images/avatars/customer.png" class="avatar" />\n <img ng-if="message.direction ===\'out\' && message.UserId && !message.secret" ng-src="api/users/{{message.UserId}}/avatar" class="avatar" />\n <img ng-if="message.direction ===\'out\' && message.UserId && message.secret" ng-src="api/users/{{message.UserId}}/avatar" class="avatar" />\n <img ng-if="message.direction ===\'out\' && !message.UserId" class="avatar" src="assets/images/avatars/robot.png">\n <md-button ng-if="vm.tab.channel === \'fax\'" class="md-fab md-mini no-margin" aria-label="Download" ng-click="vm.downloadMessage(message)">\n <md-icon md-font-icon="icon-download" class="icon s24"></md-icon>\n </md-button>\n\n <div class="bubble" ng-class="{\'md-yellow-200-bg\': message.secret}" ng-switch="message.direction">\n <div ng-if="message.secret">\n <div class="time secondary-text" layout="row" layout-align="end center">\n <div layout-padding>\n <span privacy ng-cloak>{{ vm.getLabelByMessage(message) }}</span>\n <span> - {{message.createdAt | date: \'medium\'}}</span>\n </div>\n <div ng-if="message.id">\n <md-icon class="s18" md-font-icon="icon-lock"></md-icon>\n </div>\n </div>\n </div>\n <div ng-if="!message.secret">\n <div ng-switch-when="in" class="time secondary-text" ng-click="message.Contact && vm.openContact(ev, message.Contact)">\n <span privacy ng-cloak>{{ vm.getLabelByMessage(message) }}</span>\n <span> - {{message.createdAt | date: \'medium\'}}</span>\n </div>\n <div ng-switch-when="out" class="time secondary-text" layout="row" layout-align="end center">\n <div layout-padding>\n <span privacy ng-cloak>{{ vm.getLabelByMessage(message) }}</span>\n <span> - {{message.createdAt | date: \'medium\'}}</span>\n </div>\n <div ng-if="message.id && vm.tab.channel !== \'fax\'">\n <md-icon ng-if="!message.read" class="s18" md-font-icon="icon-check"></md-icon>\n <md-icon ng-if="message.read" class="s18" md-font-icon="icon-check-all md-accent"></md-icon>\n </div>\n <div ng-if="message.id && vm.tab.channel === \'fax\'">\n <md-icon ng-if="!message.read && !(message.failMessage )" class="s18" md-font-icon="icon-check"></md-icon>\n <md-icon ng-if="message.read" class="s18" md-font-icon="icon-check-all md-accent"></md-icon>\n <span ng-if="!message.read && message.failMessage" class="s18 red-900-fg"> {{ message.failMessage }}</span>\n <md-icon ng-if="!message.read && message.failMessage" class="s18 red-900-fg" md-font-icon="icon-close md-accent"></md-icon>\n </div>\n </div>\n </div>\n <div ng-if="message.AttachmentId" layout="row" layout-align="end center">\n <md-button ng-if="vm.downloadPermissions.attachments" class="md-raised md-accent" ng-click="vm.getAttachment({id: message.AttachmentId, name: vm.htmlToPlaintext(message.body)})">\n <span>{{vm.htmlToPlaintext(message.body)}}</span>\n <md-icon md-font-icon="icon-download"></md-icon>\n </md-button>\n <div ng-if="!vm.downloadPermissions.attachments" class="disabled-button">\n <span>{{vm.htmlToPlaintext(message.body)}}</span>\n <md-icon md-font-icon="icon-download"></md-icon>\n </div>\n </div>\n <div ng-if="!message.AttachmentId" class="message" layout="row" layout-align="end center">\n <span ng-bind-html="message.body | embed: vm.embedOptions"></span>\n </div>\n </div>\n</div>\n\x3c!-- / MESSAGES --\x3e'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.interaction.mail.html",'<div ms-timeline="vm.interactionTimelineOptions" ms-timeline-load-more="vm.loadNextPage()">\n <div ng-repeat="message in vm.messages.rows track by message.id" ng-init="vm.selectedMailShowSystemMessage[message.id] = false">\n <md-card ng-if="message.secret" class="md-padding md-yellow-100-bg" layout="column">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="api/users/{{message.UserId}}/avatar">\n <div layout="column">\n <span class="grey-fg">{{vm.agent.fullname || vm.usersMap[message.UserId]}}</span>\n <span class="grey-fg">{{message.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n <div layout="row" layout-align="center center" layout-fill ng-if="message.attach && vm.downloadPermissions.attachments">\n <div flex>\n <md-divider></md-divider>\n </div>\n <md-menu>\n <md-button aria-label="attachments" class="md-icon-button" ng-click="vm.getAttachments(message); $mdOpenMenu($event);">\n <md-tooltip md-direction="bottom"><span translate="MAIL.ATTACHMENTS">Attachments</span>\n </md-tooltip>\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="icon s24"></md-icon>\n <span>{{message.attach}}</span>\n </div>\n </md-button>\n <md-menu-content width="4">\n <div layout="column" layout-align="center center" ng-if="!message.attachments">\n <md-progress-circular md-mode="indeterminate"></md-progress-circular>\n <span translate="MAIL.ATTACHMENTS">Attachments</span>\n </div>\n <md-menu-item ng-if="message.attachments" ng-repeat="attachment in message.attachments">\n <md-button ng-click="vm.getAttachment(attachment)">\n {{ attachment.name || (\'attachment-\' + $index) }}</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n <div flex>\n <md-divider></md-divider>\n </div>\n </div>\n <div class="padding-top-5" ng-bind-html-unsafe="message.body"></div>\n </md-card>\n <div ng-if="!message.secret">\n <div layout="row" layout-align="center center" ng-if="message.direction == \'out\' && !message.UserId && !vm.selectedMailShowSystemMessage[message.id]">\n <md-button class="md-raised blue-grey-300-bg white-fg" ng-click="vm.selectedMailShowSystemMessage[message.id] = !vm.selectedMailShowSystemMessage[message.id]">\n [{{message.createdAt | date: \'medium\'}}] {{ \'MAIL.SHOW_AUTOREPLY\' | translate }}</md-button>\n </div>\n <md-card layout="column" class="md-padding message-row" ng-if="message.direction == \'in\' || (message.direction == \'out\' && (message.UserId || vm.selectedMailShowSystemMessage[message.id]))">\n <md-content class="mail-content">\n <div class="info" layout="row" layout-align="space-between start">\n <div layout="column" layout-align="start start">\n <div layout="row" layout-align="start start">\n <div layout="column" layout-align="start start">\n <div class="name" ng-click="message.Contact && vm.openContact(ev, message.Contact)">\n <strong privacy ng-cloak>{{message.from}}</strong>\n <md-icon ng-if="message.attach" md-font-icon="icon-paperclip" class="s16">\n </md-icon>\n </div>\n <div class="name">\n <div>{{message.subject}}</div>\n </div>\n <div class="name" layout="row" layout-align="start center"><span translate="MAIL.TO">To</span>: <span class="padding-left-5 subject text-truncate" privacy ng-cloak>{{ message.originTo || message.to\n }}</span>\n </div>\n <div class="name padding-top-10" layout="row" layout-align="start center" ng-if="message.direction == \'in\' && message.originCc && message.originCc.indexOf(vm.account.email) >= 0">\n <em><span class="blue-grey" translate="MAIL.YOU_ARE_REGISTERED_AS_A">You are\n registered as a</span> <span class="blue-grey">CC</span></em>\n </div>\n <div class="name padding-top-10" layout="row" layout-align="start center" ng-if="message.direction == \'in\' && message.bcc && message.bcc.indexOf(vm.account.email) >= 0">\n <em><span class="red-fg" translate="MAIL.YOU_ARE_REGISTERED_AS_A">You are\n registered as a</span> <span class="red-fg">BCC</span></em>\n </div>\n </div>\n </div>\n\n <a class="toggle-details md-accent-color" ng-hide="vm.selectedMailShowDetails[message.id]" ng-click="vm.selectedMailShowDetails[message.id] = !vm.selectedMailShowDetails[message.id]" translate="MAIL.SHOW_DETAILS">\n Show Details\n </a>\n <a class="toggle-details md-accent-color" ng-show="vm.selectedMailShowDetails[message.id]" ng-click="vm.selectedMailShowDetails[message.id] = !vm.selectedMailShowDetails[message.id]" translate="MAIL.HIDE_DETAILS">\n Hide Details\n </a>\n <div ng-show="vm.selectedMailShowDetails[message.id]" class="details" layout="row" layout-align="start start">\n <div layout="column">\n <span class="title" translate="MAIL.DATE">Date:</span>\n <span class="title" translate="MAIL.FROM">From:</span>\n <span class="title" translate="MAIL.TO">To:</span>\n \x3c!-- NOTE: Start retrocompatibility with replyCc 2.0.66 --\x3e\n <span class="title" translate="MAIL.CC" ng-if="message.direction === \'in\' && message.originCc">Cc:</span>\n <span class="title" translate="MAIL.CC" ng-if="message.direction === \'in\' && !message.originCc && !message.originTo && message.cc">Cc:</span>\n <span class="title" translate="MAIL.CC" ng-if="message.direction === \'out\' && message.cc">Cc:</span>\n \x3c!-- End retrocompatibility --\x3e\n <span class="title" translate="MAIL.BCC" ng-if="message.bcc">Bcc:</span>\n <span class="title" translate="MAIL.ACCEPTED" ng-if="message.UserId && message.direction ===\'in\'">Accepted:</span>\n </div>\n\n <div layout="column">\n <span class="detail">{{message.createdAt | date:\'medium\'}}</span>\n <span class="detail" privacy ng-cloak>{{message.from}}</span>\n <span class="detail" privacy ng-cloak>{{message.originTo || message.to}}</span>\n \x3c!-- NOTE: Start retrocompatibility with replyCc 2.0.66 --\x3e\n <span class="detail" ng-if="message.direction === \'in\' && message.originCc" privacy ng-cloak>{{\n message.originCc }}</span>\n <span class="detail" ng-if="message.direction === \'in\' && !message.originCc && !message.originTo && message.cc" privacy ng-cloak>{{ message.cc }}</span>\n <span class="detail" ng-if="message.direction === \'out\' && message.cc" privacy ng-cloak>{{ message.cc\n }}</span>\n \x3c!-- End retrocompatibility --\x3e\n <span class="detail" ng-if="message.bcc" privacy ng-cloak>{{message.bcc}}</span>\n <span class="detail" ng-if="message.UserId && message.direction ===\'in\'">{{vm.usersMap[message.UserId]}}</span>\n </div>\n </div>\n </div>\n\n <div layout="row" layout-align="center center">\n <div layout="column" layout-align="center end" class="md-padding">\n <span class="grey-fg" ng-if="message.direction ===\'in\'" privacy>{{message.from.indexOf(vm.contact.email)\n >= 0 ? vm.contact.firstName + \' \' + vm.contact.lastName : \'*\' + message.from}}</span>\n <span class="grey-fg" ng-if="message.direction ===\'out\' && message.UserId">{{vm.agent.fullname ||\n vm.usersMap[message.UserId]}}</span>\n <span class="grey-fg" ng-if="message.direction ===\'out\' && !message.UserId">System</span>\n <span class="grey-fg">{{message.createdAt | date:\'medium\'}}</span>\n </div>\n <img ng-if="message.direction ===\'in\'" ng-src="assets/images/avatars/customer.png" class="avatar" alt="customer" />\n <img ng-if="message.direction ===\'out\' && message.UserId" class="avatar" ng-src="api/users/{{message.UserId}}/avatar">\n <img ng-if="message.direction ===\'out\' && !message.UserId" class="avatar" src="assets/images/avatars/robot.png">\n </div>\n </div>\n\n <div layout="row" layout-align="center center" layout-fill>\n <div flex>\n <md-divider></md-divider>\n </div>\n <div>\n <div class="interaction-reply-button-container">\n <md-tooltip md-direction="bottom"><span translate="DASHBOARDS.DRAFT">Draft</span>\n </md-tooltip>\n <md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="draft" ng-disabled="!vm.draft" ng-click="vm.openDraft(message.id)">\n <md-icon md-font-icon="icon-pencil-box" class="icon s24"></md-icon>\n </md-button>\n </div>\n <md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="reply" ng-click="vm.composeMailInteraction(\'reply\', message)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.REPLY">Reply</span></md-tooltip>\n <md-icon md-font-icon="icon-reply" class="icon s24"></md-icon>\n </md-button>\n <md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="replyAll" ng-click="vm.composeMailInteraction(\'replyAll\', message)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.REPLY_ALL">Reply All</span>\n </md-tooltip>\n <md-icon md-font-icon="icon-reply-all" class="icon s24"></md-icon>\n </md-button>\n <md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="forward" ng-click="vm.composeMailInteraction(\'forward\', message)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.FORWARD">Forward</span>\n </md-tooltip>\n <md-icon md-font-icon="icon-forward" class="icon s24"></md-icon>\n </md-button>\n <md-button ng-if="!message.attach && vm.downloadPermissions.interactions" class="md-icon-button" aria-label="forward" ng-click="vm.downloadMessage(message)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.DOWNLOAD">Download</span>\n </md-tooltip>\n <md-icon md-font-icon="icon-download" class="icon s24"></md-icon>\n </md-button>\n <md-menu ng-if="message.attach && vm.downloadPermissions.interactions" class="no-margin" md-position-mode="target-right target">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu()" aria-label="download">\n <md-tooltip md-direction="bottom"><span translate="MAIL.DOWNLOAD">Download</span>\n </md-tooltip>\n <md-icon md-font-icon="icon-download"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item ng-if="vm.downloadPermissions.attachments">\n <md-button ng-click="vm.downloadMessage(message, true)" translate="MAIL.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.downloadMessage(message)" translate="MAIL.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n <md-menu ng-if="message.attach && vm.downloadPermissions.attachments">\n <md-button aria-label="attachments" class="md-icon-button" ng-click="vm.getAttachments(message); $mdOpenMenu($event);">\n <md-tooltip md-direction="bottom"><span translate="MAIL.ATTACHMENTS">Attachments</span></md-tooltip>\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-paperclip" class="icon s24"></md-icon>\n <span>{{message.attach}}</span>\n </div>\n </md-button>\n <md-menu-content width="4">\n <div layout="column" layout-align="center center" ng-if="!message.attachments">\n <md-progress-circular md-mode="indeterminate"></md-progress-circular>\n <span translate="MAIL.ATTACHMENTS">Attachments</span>\n </div>\n <md-menu-item ng-if="message.attachments" ng-repeat="attachment in message.attachments">\n <md-button ng-click="vm.getAttachment(attachment)">\n {{ attachment.name || (\'attachment-\' + $index) }}</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <div flex>\n <md-divider></md-divider>\n </div>\n </div>\n\n <md-content ng-bind-html-unsafe="message.body"></md-content>\n </md-content>\n </md-card>\n </div>\n <div ng-hide="!(vm.BTNLoadMore > 0)" layout="row" layout-align="center center" class="ng-scope layout-align-center-center layout-row">\n <md-button class="md-raised md-accent md-button ng-scope md-default-theme md-ink-ripple" type="button" ng-disabled="!(vm.BTNLoadMore > 0)" ng-click="vm.loadNextPage()" translate="DASHBOARDS.MORE">\n </md-button>\n </div>\n </div>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.loading.html",'<div class="big-circle md-whiteframe-4dp">\n <md-icon class="s128 md-accent" md-font-icon="{{vm.getIconByChannel(vm.tab.channel)}}" ng-class="vm.getColorByChannel(vm.tab.channel) + \'-fg\'"></md-icon>\n</div>\n<span class="app-title" translate="DASHBOARDS.WAITING">Waiting</span>\n<span class="hide show-gt-md secondary-text" translate="DASHBOARDS.LOADING_INTERACTION">We are loading the\n interaction...</span>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.chat.html",'<md-button class="md-icon-button" aria-label="note" ng-click="vm.composeChatInteraction(\'note\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="CHAT.NOTE">Note</span></md-tooltip>\n <md-icon md-font-icon="icon-note-outline" class="icon s24"></md-icon>\n</md-button>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.fax.html",'<md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="reply" ng-click="vm.composeFaxInteraction(\'new\')">\n <md-tooltip md-direction="bottom"><span translate="FAX.REPLY">Reply</span></md-tooltip>\n <md-icon md-font-icon="icon-reply" class="icon s24"></md-icon>\n</md-button>\n<md-button class="md-icon-button" aria-label="Download" ng-click="vm.downloadInteraction(vm.interaction)" ng-if="vm.downloadPermissions.interactions">\n <md-tooltip md-direction="bottom"><span translate="DASHBOARDS.DOWNLOAD">Download</span></md-tooltip>\n <md-icon md-font-icon="icon-download" class="icon s24"></md-icon>\n</md-button>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.html",'<div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <md-icon md-font-icon="{{vm.getIconByChannel(vm.tab.channel)}}" class="s20" ng-class="vm.getColorByChannel(vm.tab.channel) + \'-fg\'"></md-icon>\n <div class="padding-left-10" layout="column" layout-align="center start" flex>\n <div class="font-size-14" layout="row" layout-align="start center" layout-fill>\n <span>#{{vm.interaction.id}} - {{vm.account.key}}</span>\n <div layout="row" layout-align="center center" class="p-8">\n <md-icon ng-if="vm.tab.channel === \'openchannel\' && vm.interaction.threadId" md-font-icon="fas fa-users" class="s16">\n <md-tooltip><span translate="DASHBOARDS.PUBLIC_INTERACTION">The interaction is public</span></md-tooltip>\n </md-icon>\n <md-icon ng-if="vm.interaction.attach" md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n <span class="red-fg padding-left-25" ng-if="vm.interaction.closed" translate="DASHBOARDS.CLOSED">CLOSED</span>\n <span class="green-fg padding-left-25" ng-if="!vm.interaction.closed"><span translate="DASHBOARDS.OPENED">OPENED</span><span ng-if="vm.interaction.substatus"> -\n {{vm.interaction.substatus}}</span></span>\n <div layout="row" layout-align="center center" class="blue-grey-300-fg padding-left-40" ng-if="!vm.interaction.closed">\n <timer start-time="vm.interaction.createdAt"></timer>\n <md-icon md-font-icon="icon-timelapse" class="s16 padding-left-5"></md-icon>\n </div>\n </div>\n <div class="tags" layout="row" layout-align="start center" ng-if="vm.interaction.Tags.length" ng-class="{\'padding-top-5\': vm.interaction.Tags.length}">\n <div class="tag margin-right-5" layout="row" layout-align="center center" ng-repeat="tag in vm.interaction.Tags">\n <div class="tag-color" ng-style="{\'background\': tag.color}"></div>\n <div class="tag-label">{{tag.name}}</div>\n </div>\n </div>\n </div>\n <div layout="row" layout-align="end center">\n <div ng-switch="vm.tab.channel">\n <div ng-switch-when="mail">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.mail.html\'">\n </div>\n </div>\n <div ng-switch-when="fax">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.fax.html\'">\n </div>\n </div>\n <div ng-switch-when="sms">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.sms.html\'">\n </div>\n </div>\n <div ng-switch-when="whatsapp">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.whatsapp.html\'">\n </div>\n </div>\n <div ng-switch-when="chat">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.chat.html\'">\n </div>\n </div>\n <div ng-switch-when="openchannel">\n <div ng-include="\'app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.openchannel.html\'">\n </div>\n </div>\n </div>\n <md-menu ng-if="[\'fax\', \'sms\', \'whatsapp\'].indexOf(vm.tab.channel) < 0 && vm.downloadPermissions.interactions" class="no-margin" md-position-mode="target-right target">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu()" aria-label="download">\n <md-tooltip md-direction="bottom"><span translate="DASHBOARDS.DOWNLOAD">Download</span></md-tooltip>\n <md-icon md-font-icon="icon-download"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item ng-if="vm.downloadPermissions.attachments">\n <md-button ng-click="vm.downloadInteraction(vm.interaction, true)" translate="DASHBOARDS.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.downloadInteraction(vm.interaction)" translate="DASHBOARDS.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n <md-menu class="no-margin" ng-if="!vm.interaction.disposition" md-position-mode="target-right target">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="2">\n\n <md-menu-item ng-if="vm.tab.channel === \'chat\' && !vm.interaction.closed && !vm.tab.spy && vm.account.vidaooEscalation && vm.account.vidaooApiKey">\n <md-button ng-click="vm.createVidaooSession(vm.interaction)" translate="DASHBOARDS.VIDAOOSESSION">\n Start Video Call\n </md-button>\n </md-menu-item>\n\n <md-menu-item>\n <md-button ng-click="vm.tagInteraction()" translate="DASHBOARDS.TAG">\n Tag\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.account.queueTransfer || vm.account.agentTransfer">\n <md-button ng-click="vm.transferLastMessage()" translate="DASHBOARDS.TRANSFER">\n Transfer\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.interaction.closed && vm.tab.channel == \'mail\' && (vm.subStatuses.rows.length || vm.interaction.substatus != null)">\n <md-menu>\n <md-button ng-click="$mdMenu.open()" class="text-capitalize" translate="DASHBOARDS.SET_AS">\n Set as\n </md-button>\n <md-menu-content>\n <md-menu-item ng-if="vm.interaction.substatus != null">\n <md-button ng-click="vm.setAs(null)" translate="DASHBOARDS.NONE">\n None\n </md-button>\n </md-menu-item>\n <md-menu-item ng-repeat="subStatus in vm.subStatuses.rows">\n <md-button ng-click="vm.setAs(subStatus.name)">\n {{subStatus.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item ng-if="!vm.interaction.closed && vm.tab.channel == \'mail\' && vm.account.markAsUnread">\n <md-button ng-click="vm.markAsUnread()" translate="DASHBOARDS.MARK_AS_UNREAD">\n Unread\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.tab.spy && !vm.interaction.closed">\n <md-button ng-click="vm.disposeInteraction()" translate="DASHBOARDS.CLOSE_AND_DISPOSE">\n Close and Dispose\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="!vm.tab.spy && vm.interaction.closed && !vm.interaction.disposition">\n <md-button ng-click="vm.disposeInteraction(ev)" translate="DASHBOARDS.DISPOSE">\n Dispose\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n</div>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.mail.html",'<div class="interaction-reply-button-container">\n <md-tooltip md-direction="bottom"><span translate="DASHBOARDS.DRAFT">Draft</span></md-tooltip>\n <md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="draft" ng-disabled="!vm.draft" ng-click="vm.openDraft()">\n <md-icon ng-cloak md-font-icon="icon-pencil-box" class="icon s24" ng-class="vm.draft ? \'red-500-fg\' : \'grey-fg\'"></md-icon>\n </md-button>\n</div>\n<md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="reply" ng-click="vm.composeMailInteraction(\'reply\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.REPLY">Reply</span></md-tooltip>\n <md-icon md-font-icon="icon-reply" class="icon s24"></md-icon>\n</md-button>\n<md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="replyAll" ng-click="vm.composeMailInteraction(\'replyAll\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.REPLY_ALL">Reply All</span></md-tooltip>\n <md-icon md-font-icon="icon-reply-all" class="icon s24"></md-icon>\n</md-button>\n<md-button ng-if="!vm.interaction.closed && !vm.tab.spy" class="md-icon-button" aria-label="forward" ng-click="vm.composeMailInteraction(\'forward\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.FORWARD">Forward</span></md-tooltip>\n <md-icon md-font-icon="icon-forward" class="icon s24"></md-icon>\n</md-button>\n<md-button class="md-icon-button" aria-label="note" ng-click="vm.composeMailInteraction(\'note\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="MAIL.NOTE">Note</span></md-tooltip>\n <md-icon md-font-icon="icon-note-outline" class="icon s24"></md-icon>\n</md-button>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.openchannel.html",'<md-button class="md-icon-button" aria-label="note" ng-click="vm.composeOpenchannelInteraction(\'note\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="OPENCHANNEL.NOTE">Note</span></md-tooltip>\n <md-icon md-font-icon="icon-note-outline" class="icon s24"></md-icon>\n</md-button>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.sms.html",'<md-button class="md-icon-button" aria-label="note" ng-click="vm.composeSmsInteraction(\'note\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="SMS.NOTE">Note</span></md-tooltip>\n <md-icon md-font-icon="icon-note-outline" class="icon s24"></md-icon>\n</md-button>\n<md-button class="md-icon-button" aria-label="Download" ng-click="vm.downloadInteraction(vm.interaction)" ng-if="vm.downloadPermissions.interactions">\n <md-tooltip md-direction="bottom"><span translate="DASHBOARDS.DOWNLOAD">Download</span></md-tooltip>\n <md-icon md-font-icon="icon-download" class="icon s24"></md-icon>\n</md-button>'),e.put("app/main/apps/dashboards/views/general/agent/interaction/views/agent.general.toolbar.whatsapp.html",'<md-button class="md-icon-button" aria-label="note" ng-click="vm.composeWhatsappInteraction(\'note\', vm.interaction)">\n <md-tooltip md-direction="bottom"><span translate="WHATSAPP.NOTE">Note</span></md-tooltip>\n <md-icon md-font-icon="icon-note-outline" class="icon s24"></md-icon>\n</md-button>\n<md-button class="md-icon-button" aria-label="Download" ng-click="vm.downloadInteraction(vm.interaction)" ng-if="vm.downloadPermissions.interactions">\n <md-tooltip md-direction="bottom"><span translate="DASHBOARDS.DOWNLOAD">Download</span></md-tooltip>\n <md-icon md-font-icon="icon-download" class="icon s24"></md-icon>\n</md-button>'),e.put("app/main/apps/dashboards/views/general/agent/jscripty/agent.general.jscripty.html",'<md-content class="md-padding" layout="column" layout-align="center center">\n <div layout="row" layout-align="center center">\n <span ng-if="!vm.tab.saved" class="text-boxed md-green-bg">\n <timer start-time="vm.starttime"></timer>\n </span>\n <span ng-if="vm.contact" class="text-boxed md-gray-bg font-weight-900">{{vm.contact.firstName}} {{vm.contact.lastName}} {{vm.contact.phone}}</span>\n <md-button ng-if="vm.showResetButton" ng-click="vm.resetViewer()" md-no-ink class="md-raised md-accent orange-bg">\n <md-icon md-font-icon="icon-rotate-left" class="icon s16"></md-icon> {{\'JSCRIPTY.RESET_SESSION\' | translate}}\n </md-button>\n <md-button ng-if="vm.contact" ng-click="vm.openContact($event, vm.contact)" md-no-ink class="md-raised md-accent" translate="JSCRIPTY.OPEN_CONTACT"></md-button>\n <md-button ng-if="vm.showIncompleteSubmitButton" ng-click="vm.onSubmit($event, true)" md-no-ink class="md-raised md-accent green-bg" translate="JSCRIPTY.SUBMIT"></md-button>\n </div>\n <h1 ng-if="!vm.project.formData"><span translate="JSCRIPTY.PROJECT_NOT_AVAILABLE">Project is not available. Please contact the administrator</span></h1>\n <mw-form-viewer ng-if="vm.project.formData" form-data="vm.project.formData" response-data="vm.project.responseData" on-submit="vm.onSubmit($event)" template-data="call" api="vm.formViewer"></mw-form-viewer>\n</md-content>'),e.put("app/main/apps/dashboards/views/general/agent/notification/dialog.html",'\x3c!-- <md-toast> --\x3e\n<div class="md-padding" layout="column" layout-align="center center">\n <span class="md-title">#{{vm.notification.id}} {{vm.notification.title}}</span>\n <span class="md-subhead" ng-if="vm.notification.queue">{{vm.notification.queue}}</span>\n <div class="padding-top-5" layout="row">\n <md-button class="md-raised md-accent" ng-click="vm.accept($event)" translate="DASHBOARDS.ACCEPT">\n ACCEPT\n </md-button>\n <md-button class="md-raised md-warn" ng-click="vm.reject($event)" translate="DASHBOARDS.REJECT">\n REJECT\n </md-button>\n </div>\n</div>\n\x3c!-- </md-toast> --\x3e'),e.put("app/main/apps/dashboards/views/general/agent/popup/agent.general.popup.html",'<md-content class="md-padding" flex>\n <div ng-if="vm.html" ng-bind-html="vm.html"></div>\n <h1 ng-if="!vm.html">Template is empty. Please contact the administrator</h1>\n</md-content>'),e.put("app/main/apps/dashboards/views/general/user/chat/user.general.chat.html",'\x3c!-- WIDGET INBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-hangouts" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INTERACTIONS_STATS">Today Interactions STATS</div>\n </div>\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-52 line-height-72">\n {{vm.inbound.waiting || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.WAITING\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.WAITING_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.WAITING\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="orange-fg font-size-52 line-height-72">\n {{vm.inbound.talking || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.OPENED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.OPENED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.OPENED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-52 line-height-72">\n {{vm.inbound.answered || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.MANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.MANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.MANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-52 line-height-72">\n {{vm.inbound.abandoned || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.ABANDONED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.ABANDONED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.ABANDONED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.total || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.TOTAL_OFFERED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.TOTAL_OFFERED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.TOTAL_OFFERED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-42 line-height-72">\n {{ vm.inbound.avgHoldTime || \'00:00:00\' }}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.AVG_HOLD_TIME\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.AVG_HOLD_TIME_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.AVG_HOLD_TIME\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="orange-fg font-size-42 line-height-72">\n {{ vm.inbound.avgTalkTime || \'00:00:00\' }}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.AVG_MANAGED_TIME\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.AVG_MANAGED_TIME_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.AVG_MANAGED_TIME\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-42 line-height-72">\n {{ vm.inbound.answerRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.MANAGED_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.MANAGED_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.MANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-42 line-height-72">\n {{ vm.inbound.abandonRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.ABANDONED_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.ABANDONED_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.ABANDONED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.unmanaged || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.UNMANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.UNMANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.UNMANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET INBOUND --\x3e'),e.put("app/main/apps/dashboards/views/general/user/dialer/user.general.dialer.html",'\x3c!-- WIDGET INBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-phone-outgoing" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_MOTION_BULL_STATS">Today Motion Bull STATS</div>\n </div>\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-timelapse"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-52 line-height-72">\n {{vm.inbound.waiting || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_WAITING\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_WAITING_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_WAITING\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone-in-talk"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="orange-fg font-size-52 line-height-72">\n {{(vm.inbound.talking || 0) + (vm.inbound.pTalking || 0)}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_TALKING\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_TALKING_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_TALKING\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-52 line-height-72">\n {{vm.inbound.answered || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_ANSWERED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_ANSWERED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_ANSWERED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone-missed"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-52 line-height-72">\n {{vm.inbound.outboundDropCallsDayCallersExit || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_ABANDONED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_ABANDONED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.ABANDON_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone-outgoing"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.outboundDropCallsDayTimeout || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.DROPPED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.DROPPED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.DROPPED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone-dots"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.originated || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.ORIGINATED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.ORIGINATED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.ORIGINATED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone-in-talk"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="orange-fg font-size-42 line-height-72">\n {{ vm.inbound.avgTalkTime || \'00:00:00\' }}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_AVG_TALK_TIME\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_AVG_TALK_TIME_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_AVG_TALK_TIME\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-percent"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-42 line-height-72">\n {{ vm.inbound.outboundanswerRate || 0 |number : 1}}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_ANSWER_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_ANSWER_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_ANSWER_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-percent"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-42 line-height-72">\n {{ vm.inbound.outboundAbandonRate || 0}}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_ABANDON_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_ABANDON_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_ABANDON_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-percent"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-42 line-height-72">\n {{ vm.inbound.outboundDropRate }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.DROP_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.DROP_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.DROP_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET OUTBOUND --\x3e\n\n\x3c!-- WIDGET INBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-phone-outgoing" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_IVR_CAMPAIGNS_STATS">Today IVR campaigns stats</div>\n </div>\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone-dots"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.ivr.originated || 0}}/{{vm.ivr.limitCalls || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.ORIGINATED\' | translate | uppercase}}/{{\'DASHBOARDS.LIMITED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.LIMITED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.ORIGINATEDLIMITED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET IVR --\x3e'),e.put("app/main/apps/dashboards/views/general/user/fax/user.general.fax.html",'\x3c!-- WIDGET INBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-deskphone" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INTERACTIONS_STATS">Today Interactions STATS</div>\n </div>\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-52 line-height-72">\n {{vm.inbound.waiting || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.WAITING\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.WAITING_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.WAITING\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="orange-fg font-size-52 line-height-72">\n {{vm.inbound.talking || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.OPENED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.OPENED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.OPENED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-52 line-height-72">\n {{vm.inbound.answered || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.MANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.MANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.MANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.unmanaged || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.UNMANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.UNMANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.UNMANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.total || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.TOTAL_OFFERED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.TOTAL_OFFERED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.TOTAL_OFFERED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="50">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-42 line-height-72">\n {{ vm.inbound.avgHoldTime || \'00:00:00\' }}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.AVG_HOLD_TIME\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.AVG_HOLD_TIME_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.AVG_HOLD_TIME\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-42 line-height-72">\n {{ vm.inbound.answerRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.MANAGED_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.MANAGED_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.MANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-42 line-height-72">\n {{ vm.inbound.abandonRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.UNMANAGED_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.UNMANAGED_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.UNMANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET INBOUND --\x3e'),e.put("app/main/apps/dashboards/views/general/user/mail/user.general.mail.html",'\x3c!-- WIDGET INBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-email" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INTERACTIONS_STATS">Today Interactions STATS</div>\n </div>\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-52 line-height-72">\n {{vm.inbound.waiting || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.WAITING\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.WAITING_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.WAITING\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="orange-fg font-size-52 line-height-72">\n {{vm.inbound.talking || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.OPENED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.OPENED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.OPENED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-52 line-height-72">\n {{vm.inbound.answered || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.MANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.MANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.MANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.unmanaged || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.UNMANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.UNMANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.UNMANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.total || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.TOTAL_OFFERED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.TOTAL_OFFERED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.TOTAL_OFFERED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="50">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-42 line-height-72">\n {{ vm.inbound.avgHoldTime || \'00:00:00\' }}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.AVG_HOLD_TIME\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.AVG_HOLD_TIME_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.AVG_HOLD_TIME\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-42 line-height-72">\n {{ vm.inbound.answerRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.MANAGED_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.MANAGED_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.MANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-42 line-height-72">\n {{ vm.inbound.abandonRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.UNMANAGED_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.UNMANAGED_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.UNMANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET INBOUND --\x3e'),e.put("app/main/apps/dashboards/views/general/user/openchannel/user.general.openchannel.html",'\x3c!-- WIDGET INBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-google-earth" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INTERACTIONS_STATS">Today Interactions STATS</div>\n </div>\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-52 line-height-72">\n {{vm.inbound.waiting || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.WAITING\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.WAITING_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.WAITING\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="orange-fg font-size-52 line-height-72">\n {{vm.inbound.talking || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.OPENED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.OPENED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.OPENED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-52 line-height-72">\n {{vm.inbound.answered || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.MANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.MANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.MANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.unmanaged || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.UNMANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.UNMANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.UNMANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.total || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.TOTAL_OFFERED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.TOTAL_OFFERED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.TOTAL_OFFERED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="50">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-42 line-height-72">\n {{ vm.inbound.avgHoldTime || \'00:00:00\' }}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.AVG_HOLD_TIME\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.AVG_HOLD_TIME_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.AVG_HOLD_TIME\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-42 line-height-72">\n {{ vm.inbound.answerRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.MANAGED_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.MANAGED_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.MANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-42 line-height-72">\n {{ vm.inbound.abandonRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.UNMANAGED_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.UNMANAGED_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.UNMANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET INBOUND --\x3e'),e.put("app/main/apps/dashboards/views/general/user/sms/user.general.sms.html",'\x3c!-- WIDGET INBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-message-text" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INTERACTIONS_STATS">Today Interactions STATS</div>\n </div>\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-52 line-height-72">\n {{vm.inbound.waiting || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.WAITING\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.WAITING_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.WAITING\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="orange-fg font-size-52 line-height-72">\n {{vm.inbound.talking || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.OPENED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.OPENED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.OPENED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-52 line-height-72">\n {{vm.inbound.answered || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.MANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.MANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.MANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.unmanaged || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.UNMANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.UNMANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.UNMANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.total || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.TOTAL_OFFERED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.TOTAL_OFFERED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.TOTAL_OFFERED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="50">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-42 line-height-72">\n {{ vm.inbound.avgHoldTime || \'00:00:00\' }}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.AVG_HOLD_TIME\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.AVG_HOLD_TIME_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.AVG_HOLD_TIME\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-42 line-height-72">\n {{ vm.inbound.answerRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.MANAGED_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.MANAGED_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.MANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-42 line-height-72">\n {{ vm.inbound.abandonRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.UNMANAGED_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.UNMANAGED_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.UNMANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET INBOUND --\x3e'),e.put("app/main/apps/dashboards/views/general/user/user.general.html",'<div id="dashboard-general" ng-init="vm.onInit()" class="page-layout simple right-sidenav" layout="row">\n \x3c!-- CENTER --\x3e\n <div class="center" flex ms-scroll>\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs ng-if="vm.hasDashboardPermissions" md-selected="vm.selectedTab" md-dynamic-height>\n <md-tab ng-if="vm.license.voice" label="{{\'DASHBOARDS.VOICE\' | translate}}" ui-sref="app.dashboards.general.voice">\n <div ui-view="voice"></div>\n </md-tab>\n <md-tab ng-if="vm.license.dialer" label="{{\'DASHBOARDS.MOTIONDIALER\' | translate}}" ui-sref="app.dashboards.general.dialer">\n <div ui-view="dialer"></div>\n </md-tab>\n <md-tab ng-if="vm.license.chat" label="{{\'DASHBOARDS.CHAT\' | translate}}" ui-sref="app.dashboards.general.chat">\n <div ui-view="chat"></div>\n </md-tab>\n <md-tab ng-if="vm.license.mail" label="{{\'DASHBOARDS.MAIL\' | translate}}" ui-sref="app.dashboards.general.mail">\n <div ui-view="mail"></div>\n </md-tab>\n <md-tab ng-if="vm.license.messaging" label="{{\'DASHBOARDS.SMS\' | translate}}" ui-sref="app.dashboards.general.sms">\n <div ui-view="sms"></div>\n </md-tab>\n <md-tab ng-if="vm.license.openchannel" label="{{\'DASHBOARDS.OPENCHANNEL\' | translate}}" ui-sref="app.dashboards.general.openchannel">\n <div ui-view="openchannel"></div>\n </md-tab>\n <md-tab ng-if="vm.license.fax" label="{{\'DASHBOARDS.FAX\' | translate}}" ui-sref="app.dashboards.general.fax">\n <div ui-view="fax"></div>\n </md-tab>\n <md-tab ng-if="vm.license.whatsapp" label="{{\'DASHBOARDS.WHATSAPP\' | translate}}" ui-sref="app.dashboards.general.whatsapp">\n <div ui-view="whatsapp"></div>\n </md-tab>\n </md-tabs>\n </div>\n \x3c!-- END CONTENT --\x3e\n\n <md-content ng-if="!vm.hasDashboardPermissions" layout="row" layout-align="space-around center" flex layout-padding layout-wrap>\n <div layout="column" layout-align="space-around center" flex="50">\n <span class="font-size-40 text-center">{{ \'DASHBOARDS.WELCOME_TO_MOTION\' | translate }}!</span>\n <span class="font-size-30 text-center" translate="DASHBOARDS.WELCOME_MESSAGE">Use the left sidebar to\n navigate through available sections.</span>\n </div>\n\n <div layout="column" flex="50">\n <img src="assets/images/avatars/permissions.png" alt="permissions">\n </div>\n </md-content>\n </div>\n</div>'),e.put("app/main/apps/dashboards/views/general/user/voice/user.general.voice.html",'\x3c!-- WIDGET INBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-phone-incoming" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INBOUND_STATS">Today Inbound STATS</div>\n </div>\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-timelapse"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-52 line-height-72">\n {{vm.inbound.waiting || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_WAITING\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_WAITING_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_WAITING\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone-in-talk"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="orange-fg font-size-52 line-height-72">\n {{vm.inbound.talking || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_TALKING\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_TALKING_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_TALKING\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-52 line-height-72">\n {{vm.inbound.answered || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_ANSWERED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_ANSWERED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_ANSWERED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone-missed"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-52 line-height-72">\n {{vm.inbound.abandoned || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_ABANDONED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_ABANDONED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_ABANDONED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone-incoming"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.total || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_TOTAL_OFFERED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_TOTAL_OFFERED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_TOTAL_OFFERED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-timer-sand"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-42 line-height-72">\n {{ vm.inbound.avgHoldTime || \'00:00:00\' }}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_AVG_HOLD_TIME\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_AVG_HOLD_TIME_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_AVG_HOLD_TIME\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone-in-talk"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="orange-fg font-size-42 line-height-72">\n {{ vm.inbound.avgTalkTime || \'00:00:00\' }}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_AVG_TALK_TIME\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_AVG_TALK_TIME_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_AVG_TALK_TIME\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-percent"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-42 line-height-72">\n {{ vm.inbound.answerRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_ANSWER_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_ANSWER_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_ANSWER_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-percent"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-42 line-height-72">\n {{ vm.inbound.abandonRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_ABANDON_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_ABANDON_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.ABANDON_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone-dots"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.unmanaged || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.VOICE_UNMANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.VOICE_UNMANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.VOICE_UNMANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET INBOUND --\x3e\n\n\x3c!-- WIDGET OUTBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-phone-outgoing" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_OUTBOUND_STATS">Today Outbound STATS</div>\n </div>\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone-outgoing"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-52 line-height-72">\n {{vm.outbound.total || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.TOTAL\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.TOTAL_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.TOTAL\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-52 line-height-72">\n {{vm.outbound.answered || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.OUTBOUND_ANSWERED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.OUTBOUND_ANSWERED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.OUTBOUND_ANSWERED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-clock"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="orange-fg font-size-42 line-height-72">\n {{vm.outbound.sumDuration || 0 | secToTime | date:\'HH:mm:ss\'}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.TOT_DURATION\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.TOT_DURATION_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.TOT_DURATION\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-division"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-42 line-height-72">\n {{vm.outbound.total ? ((vm.outbound.sumDuration / vm.outbound.total) | number: 0) : 0 | secToTime | date:\'HH:mm:ss\'}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.AVG_DURATION\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.AVG_DURATION_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.AVG_DURATION\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-button style="cursor:auto" class="md-icon-button" aria-label="more">\n <md-icon md-font-icon="icon-percent"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-42 line-height-72">\n {{vm.outbound.total ? (vm.outbound.answered / vm.outbound.total * 100) : 0 | number: 1}}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.OUTBOUND_ANSWER_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.OUTBOUND_ANSWER_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.OUTBOUND_ANSWER_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET OUTBOUND --\x3e'),e.put("app/main/apps/dashboards/views/general/user/whatsapp/user.general.whatsapp.html",'\x3c!-- WIDGET INBOUND --\x3e\n<div class="dashboard-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-whatsapp" class="m-0 mr-16"></md-icon>\n <div class="h2 secondary-text" translate="DASHBOARDS.TODAY_INTERACTIONS_STATS">Today Interactions STATS</div>\n </div>\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-52 line-height-72">\n {{vm.inbound.waiting || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.WAITING\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.WAITING_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.WAITING\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="orange-fg font-size-52 line-height-72">\n {{vm.inbound.talking || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.OPENED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 orange-fg secondary-text text-truncate">{{\'DASHBOARDS.OPENED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.OPENED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-52 line-height-72">\n {{vm.inbound.answered || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.MANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.MANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.MANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.unmanaged || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.UNMANAGED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.UNMANAGED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.UNMANAGED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-green-fg font-size-52 line-height-72">\n {{vm.inbound.total || 0}}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.TOTAL_OFFERED\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-green-fg secondary-text text-truncate">{{\'DASHBOARDS.TOTAL_OFFERED_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.TOTAL_OFFERED\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="50">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="light-blue-fg font-size-42 line-height-72">\n {{ vm.inbound.avgHoldTime || \'00:00:00\' }}\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.AVG_HOLD_TIME\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 light-blue-fg secondary-text text-truncate">{{\'DASHBOARDS.AVG_HOLD_TIME_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.AVG_HOLD_TIME\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="ph-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="red-fg font-size-42 line-height-72">\n {{ vm.inbound.answerRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.MANAGED_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 red-fg secondary-text text-truncate">{{\'DASHBOARDS.MANAGED_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.MANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget flippable="true" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n \x3c!-- Front --\x3e\n <ms-widget-front class="grey-50-bg">\n <div class="pl-16 pr-8 pv-16 h-55" layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="more">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n </div>\n\n <div class="pt-8 pb-32" layout="column" layout-align="center center">\n <div class="blue-grey-fg font-size-42 line-height-72">\n {{ vm.inbound.abandonRate || 0 }}%\n </div>\n <div class="h3 secondary-text font-weight-500">{{\'DASHBOARDS.UNMANAGED_RATE\' | translate | uppercase}}</div>\n </div>\n\n <div class="p-16 grey-200-bg text-center border-top" layout-align="start center">\n <span class="h6 blue-grey-fg secondary-text text-truncate">{{\'DASHBOARDS.UNMANAGED_RATE_TEXT\' | translate | uppercase}}</span>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n \x3c!-- Back --\x3e\n <ms-widget-back class="p-16 grey-50-bg">\n <div class="flip-to-front">\n <md-button class="md-icon-button" ng-click="flipWidget()" aria-label="Flip widget">\n <md-icon md-font-icon="icon-close" class="s16"></md-icon>\n </md-button>\n </div>\n\n <div>\n {{\'DASHBOARDS.HELP.UNMANAGED_RATE\' | translate}}\n </div>\n </ms-widget-back>\n \x3c!-- / Back --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n</div>\n\x3c!-- / WIDGET INBOUND --\x3e'),e.put("app/main/apps/fax/views/faxAccounts/create/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="FAX.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.faxAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="faxAccountForm[\'name\'].$error" ng-show="faxAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.KEY">key</label>\n <input type="text" name="key" ng-model="vm.faxAccount.key" md-maxlength="5" ng-required="true">\n\n <div ng-messages="faxAccountForm[\'key\'].$error" ng-show="faxAccountForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="FAX.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.TRUNK">trunk</label>\n <md-select name="TrunkId" ng-model="vm.faxAccount.TrunkId" required>\n <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks" ng-disabled="TrunkId.canSelect === false">{{ TrunkId.name }}</md-option>\n </md-select>\n <div ng-messages="faxAccountForm[\'TrunkId\'].$error" ng-show="faxAccountForm[\'TrunkId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.TRUNK_REQUIRED">trunk field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.LOCALSTATIONID">localstationid</label>\n <input type="text" name="localstationid" ng-model="vm.faxAccount.localstationid" ng-required="true">\n\n <div class="hint"><span translate="FAX.HELP.LOCALSTATIONID"></span></div>\n <div ng-messages="faxAccountForm[\'localstationid\'].$error" ng-show="faxAccountForm[\'localstationid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.LOCALSTATIONID_REQUIRED">localstationid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.LIST">List</label>\n <md-select name="ListId" ng-model="vm.faxAccount.ListId" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div ng-messages="faxAccountForm[\'ListId\'].$error" ng-show="faxAccountForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.faxAccount.description">\n\n <div ng-messages="faxAccountForm[\'description\'].$error" ng-show="faxAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newFaxAccount" ng-click="vm.saveFaxAccount()" class="send-button md-accent md-raised" ng-disabled="faxAccountForm.$invalid || faxAccountForm.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newFaxAccount" ng-click="vm.addNewFaxAccount()" class="send-button md-accent md-raised" ng-disabled="faxAccountForm.$invalid" aria-label="ADD" translate="FAX.ADD_FAXACCOUNT" translate-attr-aria-label="FAX.ADD_FAXACCOUNT">\n ADD FAXACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newFaxAccount" ng-click="vm.deleteFaxAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="FAX.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="FAX.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/agentadd/agentadd.html",'<md-dialog class="faxAccount-dialog" aria-label="faxAccount" ng-init="vm.onInit()">\n <form name="faxAccountForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="FAX.AGENTADD_FAXACCOUNT">Add Agent to faxAccount</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/agent/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="FAX.AGENT">Agent</label>\n <md-select name="agent" ng-model="vm.agent.agent" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents" ng-disabled="agent.canSelect === false">{{ agent.name }}</md-option>\n </md-select>\n <div ng-messages="faxAccountFormApp[\'agent\'].$error" ng-show="faxAccountFormApp[\'agent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.agent.timeout" min="0" max="2147483" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'timeout\'].$error" ng-show="faxAccountFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/close/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="FAX.DISPOSITION">Disposition</label>\n <input type="text" name="disposition" ng-model="vm.close.disposition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'disposition\'].$error" ng-show="faxAccountFormApp[\'disposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/gotoif/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="FAX.CONDITION">Condition</label>\n <input type="text" name="condition" ng-model="vm.gotoif.condition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'condition\'].$error" ng-show="faxAccountFormApp[\'condition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.TRUEPRIORITY">truepriority</label>\n <input type="number" name="truepriority" ng-model="vm.gotoif.truepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'truepriority\'].$error" ng-show="faxAccountFormApp[\'truepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.TRUEPRIORITY_REQUIRED">truepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">truepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.FALSEPRIORITY">falsepriority</label>\n <input type="number" name="falsepriority" ng-model="vm.gotoif.falsepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'falsepriority\'].$error" ng-show="faxAccountFormApp[\'falsepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.FALSEPRIORITY_REQUIRED">falsepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">falsepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/gotop/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="FAX.PRIORITY">Priority</label>\n <input type="number" name="priority" ng-model="vm.gotop.priority" min="0" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'priority\'].$error" ng-show="faxAccountFormApp[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Priority must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/interval/dialog.html",'<md-dialog class="interval-dialog" aria-label="New Interval">\n <form name="intervalForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="type" ng-repeat=\'type in vm.types\'>{{ type | ucfirst }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.type === \'list\'">\n <label translate="TOOLS.INTERVALS">Intervals</label>\n <md-select ng-model="vm.interval.IntervalId" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ interval.name }}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!-- TIMERANGE START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.TIME_RANGE">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <div class="md-block" flex>\n <mdp-time-picker name="timeRangeFrom" mdp-placeholder="FROM" ng-model="vm.timeRangeFrom" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <div ng-messages="intervalForm.timeRangeFrom.$error" ng-show="intervalForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_FROM_INVALID">Time Range From field is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n <div class="md-block" flex ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_INVALID">Time Range To field is invalid</span>\n </div>\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </div>\n \x3c!-- TIMERANGE END --\x3e\n\n \x3c!-- DAYSOFWEEK START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.WEEK_DAYS">Week Days</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.dayOfWeekFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex class="md-block" ng-if="vm.dayOfWeekFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="dayOfWeekTo" ng-model="vm.dayOfWeekTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- DAYSOFWEEK END --\x3e\n\n \x3c!-- MONTHDAY START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTH_DAYS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthDayFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthDayFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthDayTo" ng-model="vm.monthDayTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTHDAY END --\x3e\n\n \x3c!-- MONTH START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTHS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthTo" ng-model="vm.monthTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTH END --\x3e\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="!vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n ADD INTERVAL\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/noop/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="FAX.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.noop.value" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'value\'].$error" ng-show="faxAccountFormApp[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/queue/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="FAX.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.queue.queue" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues" ng-disabled="queue.canSelect === false">{{ queue.name }}</md-option>\n </md-select>\n <div ng-messages="faxAccountFormApp[\'queue\'].$error" ng-show="faxAccountFormApp[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'timeout\'].$error" ng-show="faxAccountFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/system/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="FAX.COMMAND">Command</label>\n <input type="text" name="command" ng-model="vm.system.command" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="faxAccountFormApp[\'command\'].$error" ng-show="faxAccountFormApp[\'command\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.COMMAND_REQUIRED">Command field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.system.variable" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables" ng-disabled="variable.canSelect === false">{{ variable.name }}</md-option>\n </md-select>\n <div ng-messages="faxAccountFormApp[\'variable\'].$error" ng-show="faxAccountFormApp[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.VARIABLE_REQUIRED">Variable field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/apps/tag/dialog.html",'<md-dialog class="faxAccount-dialog" aria-label="New FaxAccount">\n <form name="faxAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="FAX.TAG">Tag</label>\n <md-select name="tag" ng-model="vm.tag.tag" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags" ng-disabled="tag.canSelect === false">{{ tag.name }}</md-option>\n </md-select>\n <div ng-messages="faxAccountFormApp[\'tag\'].$error" ng-show="faxAccountFormApp[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.TAG_REQUIRED">Tag field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveFaxAccountApp()" class="send-button md-accent md-raised" ng-disabled="faxAccountFormApp.$invalid || faxAccountFormApp.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxAccounts/edit/view.html",'<div id="fax-faxAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-faxAccounts-button md-icon-button" aria-label="Go to faxAccounts" ng-click="vm.gotoFaxAccounts()" translate translate-attr-aria-label="FAX.GO_TO_FAXACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="faxAccount-image" hide-xs>\n <img ng-src="assets/images/business/faxAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.faxAccount.id}}\n <span ng-if="vm.faxAccount.name">{{vm.faxAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="FAX.CREATED_AT"></span> <span>{{vm.faxAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.faxAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="FAX.GOTO_FAXACCOUNT"></span></md-tooltip>\n <md-icon md-font-icon="icon-cast"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.faxAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="FAX.AGENTADD_FAXACCOUNT"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveFaxAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (advancedForm.$invalid) || (dispositionForm.$invalid) || (faxDispositionsForm.$invalid) || (actionsForm.$invalid) || (interactionsForm.$invalid)" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="faxAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="FAX.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="FAX.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.faxAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.KEY">key</label>\n <input type="text" name="key" ng-model="vm.faxAccount.key" md-maxlength="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'key\'].$error" ng-show="generalForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="FAX.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.HEADERINFO">headerinfo</label>\n <input type="text" name="headerinfo" ng-model="vm.faxAccount.headerinfo" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="FAX.HELP.HEADERINFO"></span></div>\n <div ng-messages="generalForm[\'headerinfo\'].$error" ng-show="generalForm[\'headerinfo\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.HEADERINFO_REQUIRED">headerinfo field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.TRUNK">trunk</label>\n <md-select name="TrunkId" ng-model="vm.faxAccount.TrunkId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks" ng-disabled="TrunkId.canSelect === false">{{ TrunkId.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'TrunkId\'].$error" ng-show="generalForm[\'TrunkId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.TRUNK_REQUIRED">trunk field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.LOCALSTATIONID">localstationid</label>\n <input type="text" name="localstationid" ng-model="vm.faxAccount.localstationid" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="FAX.HELP.LOCALSTATIONID"></span></div>\n <div ng-messages="generalForm[\'localstationid\'].$error" ng-show="generalForm[\'localstationid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.LOCALSTATIONID_REQUIRED">localstationid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.LIST">List</label>\n <md-select name="ListId" ng-model="vm.faxAccount.ListId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'ListId\'].$error" ng-show="generalForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.WAITFORTHEASSIGNEDAGENT">WaitForTheAssignedAgent</label>\n <input type="number" name="waitForTheAssignedAgent" ng-model="vm.faxAccount.waitForTheAssignedAgent" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'waitForTheAssignedAgent\'].$error" ng-show="generalForm[\'waitForTheAssignedAgent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.WAITFORTHEASSIGNEDAGENT_REQUIRED">WaitForTheAssignedAgent field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.faxAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="faxAccount-detail-form-container notification md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="FAX.NOTIFICATION">NOTIFICATION</div>\n </div>\n <form name="notificationForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.faxAccount.notificationSound" aria-label="notificationSound" ng-disabled="!vm.crudPermissions.canEdit"><span translate="FAX.NOTIFICATIONSOUND">notificationSound</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.faxAccount.notificationShake" aria-label="notificationShake" ng-disabled="!vm.crudPermissions.canEdit"><span translate="FAX.NOTIFICATIONSHAKE">notificationShake</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="FAX.NOTIFICATIONTEMPLATE">notificationTemplate</label>\n <textarea aria-label="notificationTemplate notificationTemplate" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.faxAccount.notificationTemplate"></textarea>\n </div>\n\n </form>\n </div>\n <div class="faxAccount-detail-form-container transfer md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="FAX.TRANSFER">TRANSFER</div>\n </div>\n <form name="transferForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.faxAccount.queueTransfer" aria-label="queueTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="FAX.QUEUETRANSFER">queueTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.faxAccount.queueTransfer == true" class="md-block">\n <label translate="FAX.QUEUETRANSFERTIMEOUT">queueTransferTimeout</label>\n <input type="number" name="queueTransferTimeout" ng-model="vm.faxAccount.queueTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'queueTransferTimeout\'].$error" ng-show="transferForm[\'queueTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.QUEUETRANSFERTIMEOUT_REQUIRED">queueTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.faxAccount.agentTransfer" aria-label="agentTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="FAX.AGENTTRANSFER">agentTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.faxAccount.agentTransfer == true" class="md-block">\n <label translate="FAX.AGENTTRANSFERTIMEOUT">agentTransferTimeout</label>\n <input type="number" name="agentTransferTimeout" ng-model="vm.faxAccount.agentTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'agentTransferTimeout\'].$error" ng-show="transferForm[\'agentTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.AGENTTRANSFERTIMEOUT_REQUIRED">agentTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="faxAccount-detail-form-container advanced md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="FAX.ADVANCED">ADVANCED</div>\n </div>\n <form name="advancedForm" novalidate>\n <md-input-container class="md-block">\n <label translate="FAX.ECM">ECM</label>\n <md-select name="ecm" ng-model="vm.faxAccount.ecm" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">yes</md-option>\n <md-option ng-value="\'no\'">no</md-option>\n </md-select>\n <div class="hint"><span translate="FAX.HELP.ECM"></span></div>\n <div ng-messages="advancedForm[\'ecm\'].$error" ng-show="advancedForm[\'ecm\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.ECM_REQUIRED">ECM field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.MINRATE">minrate</label>\n <md-select name="minrate" ng-model="vm.faxAccount.minrate" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'2400\'">2400</md-option>\n <md-option ng-value="\'4800\'">4800</md-option>\n <md-option ng-value="\'7200\'">7200</md-option>\n <md-option ng-value="\'9600\'">9600</md-option>\n <md-option ng-value="\'12000\'">12000</md-option>\n <md-option ng-value="\'14400\'">14400</md-option>\n </md-select>\n <div class="hint"><span translate="FAX.HELP.MINRATE"></span></div>\n <div ng-messages="advancedForm[\'minrate\'].$error" ng-show="advancedForm[\'minrate\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.MINRATE_REQUIRED">minrate field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.MAXRATE">maxrate</label>\n <md-select name="maxrate" ng-model="vm.faxAccount.maxrate" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'2400\'">2400</md-option>\n <md-option ng-value="\'4800\'">4800</md-option>\n <md-option ng-value="\'7200\'">7200</md-option>\n <md-option ng-value="\'9600\'">9600</md-option>\n <md-option ng-value="\'12000\'">12000</md-option>\n <md-option ng-value="\'14400\'">14400</md-option>\n </md-select>\n <div class="hint"><span translate="FAX.HELP.MAXRATE"></span></div>\n <div ng-messages="advancedForm[\'maxrate\'].$error" ng-show="advancedForm[\'maxrate\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.MAXRATE_REQUIRED">maxrate field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.MODEM">modem</label>\n <input type="text" name="modem" ng-model="vm.faxAccount.modem" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="FAX.HELP.MODEM"></span></div>\n <div ng-messages="advancedForm[\'modem\'].$error" ng-show="advancedForm[\'modem\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.MODEM_REQUIRED">modem field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.GATEWAY">gateway</label>\n <input type="text" name="gateway" ng-model="vm.faxAccount.gateway" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="FAX.HELP.GATEWAY"></span></div>\n <div ng-messages="advancedForm[\'gateway\'].$error" ng-show="advancedForm[\'gateway\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.GATEWAY_REQUIRED">gateway field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.FAXDETECT">faxdetect</label>\n <input type="text" name="faxdetect" ng-model="vm.faxAccount.faxdetect" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="FAX.HELP.FAXDETECT"></span></div>\n <div ng-messages="advancedForm[\'faxdetect\'].$error" ng-show="advancedForm[\'faxdetect\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.FAXDETECT_REQUIRED">faxdetect field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.T38TIMEOUT">t38timeout</label>\n <input type="number" name="t38timeout" ng-model="vm.faxAccount.t38timeout" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="FAX.HELP.T38TIMEOUT"></span></div>\n <div ng-messages="advancedForm[\'t38timeout\'].$error" ng-show="advancedForm[\'t38timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.T38TIMEOUT_REQUIRED">t38timeout field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.SIP">SIP</label>\n <md-select name="tech" ng-model="vm.faxAccount.tech" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'SIP\'">SIP</md-option>\n <md-option ng-value="\'IAX\'">IAX</md-option>\n <md-option ng-value="\'DADHI\'">DADHI</md-option>\n <md-option ng-value="\'KHOMP\'">KHOMP</md-option>\n </md-select>\n <div ng-messages="advancedForm[\'tech\'].$error" ng-show="advancedForm[\'tech\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.SIP_REQUIRED">SIP field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="faxAccount-detail-form-container disposition md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="FAX.DISPOSITION">DISPOSITION</div>\n </div>\n <form name="dispositionForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.faxAccount.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="FAX.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.faxAccount.mandatoryDisposition" class="md-block">\n <label translate="FAX.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.faxAccount.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="FAX.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="dispositionForm[\'mandatoryDispositionPauseId\'].$error" ng-show="dispositionForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.DISPOSITIONS">DISPOSITIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div ng-controller="FaxAccountDispositionsController as vm_dc" ng-init="vm_dc.init(vm.faxAccount, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="faxAccount-detail-form-container faxdispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedFaxAccountDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="FAX.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add fax dispositions" translate translate-attr-label="FAX.ADD_DISPOSITION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" csv-label="true" filename="faxAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="FAX.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_dc.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'FAX.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'FAX.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'FAX.DESCRIPTION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="FAX.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="FAX.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(disposition, $event)" translate="TOOLS.DELETE_DISPOSITION">\n Delete Disposition\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="faxAccount-detail-form-container actions md-background-bg md-whiteframe-1dp">\n <div ng-controller="FaxAccountActionsController as vm_ac" ng-init="vm_ac.init(vm.faxAccount, vm.crudPermissions)" class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- SIDENAV --\x3e\n <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20" ng-if="vm_ac.crudPermissions.canEdit">\n \x3c!-- SIDENAV CONTENT --\x3e\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\n Applications List\n </span>\n </md-subheader>\n </md-list>\n <md-divider></md-divider>\n <md-list ng-sortable="vm_ac.list">\n <md-list-item class="handle" ng-repeat="a in vm_ac.apps">\n <md-icon md-font-icon="{{a.icon}}" class="s16"></md-icon>\n <p class="text-truncate" translate="FAX.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias || a.appType}}</p>\n </md-list-item>\n </md-list>\n \x3c!-- / SIDENAV CONTENT --\x3e\n </div>\n \x3c!-- / SIDENAV --\x3e\n <div flex></div>\n \x3c!-- MAIN --\x3e\n <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="{{vm_ac.crudPermissions.canEdit ? 75 : 100}}">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_ac.selectedFaxAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Drag & Drop Routing</span>\n <div flex></div>\n <ms-search-bar on-search="vm_ac.query.filter = query" on-collapse="vm_ac.query.filter = undefined" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_ac.selectedFaxAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_ac.selectedFaxAccountApps.length}} {{vm_ac.selectedFaxAccountApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_ac.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_ac.deleteSelectedFaxAccountApps($event)" aria-label="delete selected" translate translate-attr-label="FAX.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n \x3c!-- QUEUES TABLE --\x3e\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_ac.selectedFaxAccountApps">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column width="10px">\n <span translate="VOICE.PRIORITY">Priority</span>\n </th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </th>\n <th md-column width="10px"></th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body ng-sortable="vm_ac.applications">\n <tr md-row md-select="app" md-select-id="id" ng-repeat="app in vm_ac.faxAccountApps.rows | filter: vm_ac.query.filter">\n <td md-cell>\n <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n </td>\n <td md-cell ng-click="vm_ac.editFaxAccountApp($event, $index)"><span>{{app.priority}}</span></td>\n <td md-cell ng-click="vm_ac.editFaxAccountApp($event, $index)">{{app.app.toLowerCase() === \'agi\' ? \'Cally-Square\' : app.app | ucfirst}}<span ng-if="app.appType.toLowerCase() === \'custom\'">*</span></td>\n <td md-cell ng-click="vm_ac.editFaxAccountApp($event, $index)"><span class="text-truncate actionAppData">{{app.appdata}}</span></td>\n <td md-cell ng-click="vm_ac.editInterval($event, $index)">{{app.IntervalId ? \'From List\' : app.interval}}</td>\n <td md-cell>\n <md-button ng-click="vm_ac.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n <md-icon md-font-icon="icon-timer"></md-icon>\n <md-tooltip>\n {{app.IntervalId ? \'From List\' : (app.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n </md-tooltip>\n </md-button>\n </td>\n <td md-cell class="actions" ng-if="!vm_ac.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editFaxAccountApp($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canDelete">\n <md-button ng-click="vm_ac.deleteConfirm(app, $index, $event)" translate="VOICE.DELETE_APP">\n Delete App\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-hide="vm_ac.faxAccountApps.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n \x3c!-- / QUEUES TABLE --\x3e\n\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.INTERACTIONS">INTERACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="faxAccount-detail-form-container interactions md-background-bg md-whiteframe-1dp">\n <div ng-controller="FaxAccountInteractionsController as vm_dc" ng-init="vm_dc.init(vm.faxAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedFaxAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="FAX.INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm_dc.getFaxAccountInteractions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_dc.quickFilters" query="vm_dc.query" search="vm_dc.getFaxAccountInteractions()"></ms-quick-filter>\n <div layout="column">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini md-accent-bg\': vm_dc.query.search }" aria-label="Filter" translate translate-attr-aria-label="DASHBOARDS.FILTER" ng-click="vm_dc.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm_dc.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'blink\': vm_dc.query.search }"></md-icon>\n </md-button>\n </div>\n <md-button class="md-icon-button" ng-click="vm_dc.getFaxAccountInteractions()" aria-label="refresh Interactions" translate translate-attr-label="FAX.REFRESH_INTERACTIONS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedFaxAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedFaxAccountInteractions.length}} {{vm_dc.selectedFaxAccountInteractions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedFaxAccountInteractions" csv-label="true" filename="faxAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedFaxAccountInteractions($event)" aria-label="delete selected" translate translate-attr-label="FAX.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedFaxAccountInteractions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getFaxAccountInteractions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'FAX.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column md-order-by="contactName">\n {{ \'FAX.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'FAX.STARTEDAT\' | translate }}\n </th>\n <th md-column md-order-by="lastMsgAt">\n {{ \'FAX.LASTMESSAGE\' | translate }}\n </th>\n <th md-column md-order-by="closed">\n {{ \'FAX.STATUS\' | translate }}\n </th>\n <th md-column>\n {{ \'FAX.AGENT\' | translate }}\n </th>\n <th md-column md-order-by="tag">\n {{ \'FAX.TAGS\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="interaction" md-select-id="id" ng-repeat="interaction in vm_dc.faxAccountInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td md-cell>\n {{interaction.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="user in interaction.Users">{{ user.fullname | translate }}\n <span ng-if="!$last">, </span>\n </span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg md-primary-bg" layout-margin>{{ interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.attach">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'margin-bottom-0\' : interaction.contactInfo}" layout-margin>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text margin-top-0" layout-margin>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td md-cell>\n {{ interaction.createdAt | formatdate }}\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}"></md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="text-truncate">{{ interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n </td>\n <td md-cell>\n <span ng-if="interaction.closed === 0" class="green-fg">\n {{ \'FAX.OPENED\' | translate }}\n <span ng-if="interaction.substatus">\n - {{ interaction.substatus }}\n </span>\n </span>\n <span ng-if="interaction.closed === 1" class="red-fg">\n {{ \'FAX.CLOSED\' | translate }}\n <span ng-if="interaction.disposition">\n - {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}\n </span>\n <md-tooltip class="multiline">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n </span>\n </td>\n\n <td md-cell>\n {{interaction.Owner.name}}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="FAX.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm_dc.spyfaxInteraction($event, interaction)" translate="FAX.SPYINTERACTION">\n Spy Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || vm_dc.userProfile.downloadOmnichannelInteractions">\n <md-button class="md-primary" ng-click="vm_dc.faxInteractionDownload(interaction, $event)" translate="FAX.DOWNLOAD_INTERACTION">\n Download\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(interaction, $event)" translate="FAX.DELETE_INTERACTION">\n Delete Interaction\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.faxAccountInteractions.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="FAX.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.faxAccountInteractions.count}}" md-on-paginate="vm_dc.getFaxAccountInteractions" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/fax/views/faxAccounts/faxAccounts.html",'<div id="faxAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-deskphone" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="FAX.FAXACCOUNTS">FaxAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="FAX.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedFaxAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedFaxAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="FAX.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-faxAccounts-count">\n <span>{{vm.selectedFaxAccounts.length}}</span>\n <span translate="FAX.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="FAX.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllFaxAccounts()" translate="FAX.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectFaxAccounts()" translate="FAX.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedFaxAccounts" csv-label="true" filename="faxAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedFaxAccounts($event)" aria-label="delete selected" translate translate-attr-label="FAX.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- FAXACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedFaxAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getFaxAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'FAX.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'FAX.NAME\' | translate }}</th>\n <th md-column md-order-by="key">{{ \'FAX.KEY\' | translate }}</th>\n <th md-column md-order-by="TrunkId">{{ \'FAX.TRUNK\' | translate }}</th>\n <th md-column md-order-by="localstationid">{{ \'FAX.LOCALSTATIONID\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'FAX.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.faxAccounts.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="FAX.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="faxAccount" md-select-id="id" ng-repeat="faxAccount in vm.faxAccounts.rows">\n <td md-cell ng-if="faxAccount.userpic"><img class="avatar" alt="{{faxAccount.name}}" ng-src="api/users/{{faxAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!faxAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{faxAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxAccount, ev) : vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="id ">{{faxAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxAccount, ev) : vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="name ">{{faxAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxAccount, ev) : vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="key ">{{faxAccount.key}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxAccount, ev) : vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="TrunkId ">{{ (vm.trunks | filter : {\'id\':faxAccount.TrunkId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxAccount, ev) : vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="localstationid ">{{faxAccount.localstationid}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxAccount, ev) : vm.createOrEditFaxAccount($event, faxAccount)" md-cell class="description ">{{faxAccount.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="FAX.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(faxAccount, $event )" translate="FAX.EDIT_FAXACCOUNT">\n Edit FaxAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.interactionsgoto(faxAccount, $event )" translate="FAX.INTERACTIONS_FAXACCOUNT">\n Interactions FaxAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(faxAccount, $event )" translate="FAX.GOTOREALTIME_FAXACCOUNT">\n goToRealtime FaxAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(faxAccount, $event )" translate="FAX.AGENTADD_FAXACCOUNT">\n AgentAdd FaxAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(faxAccount, $event )" translate="FAX.DELETE_FAXACCOUNT">\n Delete FaxAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.faxAccounts.count}}" md-on-paginate="vm.getFaxAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / FAXACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD FAXACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-faxAccount-button" ng-click="vm.createOrEditFaxAccount($event)" aria-label="add faxAccount" translate translate-attr-aria-label="FAX.ADD_FAXACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD FAXACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/fax/views/faxQueues/create/dialog.html",'<md-dialog class="faxQueue-dialog" aria-label="New FaxQueue">\n <form name="faxQueueForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="FAX.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.faxQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newFaxQueue">\n\n <div class="hint"><span translate="FAX.HELP.NAME"></span></div>\n <div ng-messages="faxQueueForm[\'name\'].$error" ng-show="faxQueueForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="FAX.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.faxQueue.strategy" required>\n <md-option ng-value="\'beepall\'">Beepall</md-option>\n <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n </md-select>\n <div ng-messages="faxQueueForm[\'strategy\'].$error" ng-show="faxQueueForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.faxQueue.timeout" min="1" max="2147483" value="10" ng-required="true">\n\n <div ng-messages="faxQueueForm[\'timeout\'].$error" ng-show="faxQueueForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.faxQueue.description">\n\n <div ng-messages="faxQueueForm[\'description\'].$error" ng-show="faxQueueForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newFaxQueue" ng-click="vm.saveFaxQueue()" class="send-button md-accent md-raised" ng-disabled="faxQueueForm.$invalid || faxQueueForm.$pristine" aria-label="SAVE" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newFaxQueue" ng-click="vm.addNewFaxQueue()" class="send-button md-accent md-raised" ng-disabled="faxQueueForm.$invalid" aria-label="ADD" translate="FAX.ADD_FAXQUEUE" translate-attr-aria-label="FAX.ADD_FAXQUEUE">\n ADD FAXQUEUE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newFaxQueue" ng-click="vm.deleteFaxQueue($event)" aria-label="DELETE" translate translate-attr-aria-label="FAX.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="FAX.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxQueues/edit/agentadd/agentadd.html",'<md-dialog class="faxQueue-dialog" aria-label="faxQueue" ng-init="vm.onInit()">\n <form name="faxQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="FAX.AGENTADD_FAXQUEUE">Add Agent to faxQueue</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxQueues/edit/teamadd/teamadd.html",'<md-dialog class="faxQueue-dialog" aria-label="faxQueue" ng-init="vm.onInit()">\n <form name="faxQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="FAX.TEAMS_ASSOCIATION">Teams Association</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/fax/views/faxQueues/edit/view.html",'<div id="fax-faxQueue" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-faxQueues-button md-icon-button" aria-label="Go to faxQueues" ng-click="vm.gotoFaxQueues()" translate translate-attr-aria-label="FAX.GO_TO_FAXQUEUES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="faxQueue-image" hide-xs>\n <img ng-src="assets/images/business/faxQueues.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.faxQueue.id}}\n <span ng-if="vm.faxQueue.name">{{vm.faxQueue.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="FAX.CREATED_AT"></span> <span>{{vm.faxQueue.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.teamadddialog(vm.faxQueue, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n <md-tooltip><span translate="FAX.TEAMADD_FAXQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.faxQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="FAX.AGENTADD_FAXQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-plus"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveFaxQueue()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="FAX.SAVE" translate-attr-aria-label="FAX.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="faxQueue-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="FAX.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="FAX.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.faxQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="FAX.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="FAX.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.faxQueue.strategy" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'beepall\'">Beepall</md-option>\n <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n </md-select>\n <div ng-messages="generalForm[\'strategy\'].$error" ng-show="generalForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.faxQueue.timeout" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'timeout\'].$error" ng-show="generalForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="FAX.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="FAX.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="FAX.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.faxQueue.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="FAX.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/fax/views/faxQueues/faxQueues.html",'<div id="faxQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-deskphone" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="FAX.FAXQUEUES">FaxQueues</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="FAX.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedFaxQueues.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedFaxQueues =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="FAX.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-faxQueues-count">\n <span>{{vm.selectedFaxQueues.length}}</span>\n <span translate="FAX.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="FAX.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllFaxQueues()" translate="FAX.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectFaxQueues()" translate="FAX.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedFaxQueues" csv-label="true" filename="faxQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedFaxQueues($event)" aria-label="delete selected" translate translate-attr-label="FAX.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- FAXQUEUE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedFaxQueues" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getFaxQueues">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'FAX.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'FAX.NAME\' | translate }}</th>\n <th md-column md-order-by="strategy">{{ \'FAX.STRATEGY\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.faxQueues.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="FAX.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="faxQueue" md-select-id="id" ng-repeat="faxQueue in vm.faxQueues.rows">\n <td md-cell ng-if="faxQueue.userpic"><img class="avatar" alt="{{faxQueue.name}}" ng-src="api/users/{{faxQueue.id}}/avatar" /></td>\n <td md-cell ng-if="!faxQueue.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{faxQueue.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxQueue, ev) : vm.createOrEditFaxQueue($event, faxQueue)" md-cell class="id ">{{faxQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxQueue, ev) : vm.createOrEditFaxQueue($event, faxQueue)" md-cell class="name ">{{faxQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(faxQueue, ev) : vm.createOrEditFaxQueue($event, faxQueue)" md-cell class="strategy ">{{ vm.arraystrategy[faxQueue.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="FAX.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(faxQueue, $event )" translate="FAX.EDIT_FAXQUEUE">\n Edit FaxQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(faxQueue, $event )" translate="FAX.TEAMADD_FAXQUEUE">\n teamadd FaxQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(faxQueue, $event )" translate="FAX.AGENTADD_FAXQUEUE">\n agentadd FaxQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(faxQueue, $event )" translate="FAX.DELETE_FAXQUEUE">\n Delete FaxQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(faxQueue, $event )" translate="FAX.GOTOREALTIME_FAXQUEUE">\n goToRealtime FaxQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.faxQueues.count}}" md-on-paginate="vm.getFaxQueues" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / FAXQUEUE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD FAXQUEUE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-faxQueue-button" ng-click="vm.createOrEditFaxQueue($event)" aria-label="add faxQueue" translate translate-attr-aria-label="FAX.ADD_FAXQUEUE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD FAXQUEUE BUTTON --\x3e\n</div>'),e.put("app/main/apps/fax/views/realtime/accounts/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="FAX.ACCOUNTS">Accounts</span>\n <div flex></div>\n <ms-search-bar on-search="vm.vm.getFaxAccounts()" query="vm.query" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n\n\x3c!-- AGENT TABLE --\x3e\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getFaxAccounts">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'FAX.NAME\' | translate}}</th>\n <th md-column>{{\'FAX.KEY\' | translate}}</th>\n <th md-column>{{\'FAX.TOTAL\' | translate}}</th>\n <th md-column>{{\'FAX.IN\' | translate}}</th>\n <th md-column>{{\'FAX.OUT\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.faxAccounts">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="FAX.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="vm.faxAccounts[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td md-cell>{{vm.faxAccounts[value].name}}</td>\n <td md-cell>{{vm.faxAccounts[value].key}}</td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{(vm.faxAccounts[value].in || 0) + (vm.faxAccounts[value].out || 0)}}</span>\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon>\n </span>\n <span class="md-capture blue-fg">{{vm.faxAccounts[value].in || 0}}</span>\n <span class="text-boxed" ng-if="mailAccount.in">{{vm.faxAccounts[value].lastIn ? (vm.faxAccounts[value].lastIn | date: \'shortTime\') : \'\'}}</span>\n </div>\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon>\n </span>\n <span class="md-capture green-fg">{{vm.faxAccounts[value].out || 0}}</span>\n <span class="text-boxed" ng-if="mailAccount.out">{{vm.faxAccounts[value].lastOut ? (vm.faxAccounts[value].lastOut | date: \'shortTime\') : \'\'}}</span>\n </div>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="4">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.goToFaxAccount($event, vm.faxAccounts[value])" translate="FAX.EDIT_ACCOUNT">\n Edit Account\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getFaxAccounts" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/fax/views/realtime/queues/view.html",'<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="FAX.QUEUES">Queues</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'FAX.NAME\' | translate }}</th>\n <th md-column>{{ \'FAX.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'FAX.PAUSED\' | translate }}</th>\n <th md-column>{{ \'FAX.WAITING\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.queues.count > 0">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="FAX.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="queue" md-select-id="id" ng-repeat="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedIn }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="FAX.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="FAX.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" translate="FAX.AGENTSADD_QUEUE">\n Add Agents to queue\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),e.put("app/main/apps/fax/views/realtime/realtime.html",'<div id="realtime" class="page-layout simple tabbed" layout="column" ng-cloak>\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.TRUNKS">Trunks</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.QUEUES">Queues</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="FAX.ACCOUNTS">Accounts</span>\n </md-tab-label>\n </md-tab>\n </md-tabs>\n\n <md-card ui-view></md-card>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/fax/views/realtime/trunks/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="FAX.TRUNKS">Telephones</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getTrunks()" query="vm.query" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n\n\x3c!-- TRUNKS TABLE --\x3e\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head>\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTrunks">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'FAX.NAME\' | translate }}</th>\n <th md-column>{{ \'FAX.TRUNK_STATUS\' | translate }}</th>\n <th md-column>{{ \'FAX.REGISTRY\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.trunks">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="FAX.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(id, trunk) in vm.trunks">\n <td md-cell>{{trunk.name}}</td>\n <td md-cell>\n <i ng-class="vm.statusClass[trunk.status.toLowerCase()]">\n <md-tooltip>{{\'FAX.\' + trunk.status | uppercase | translate}}</md-tooltip>\n </i>\n <span ng-if="trunk.status === \'registered\'" class="text-boxed">{{trunk.address}}</span>\n </td>\n <td md-cell>\n <i ng-if="trunk.registry" ng-class="(trunk.stateRegistry.toLowerCase() === \'registered\') ? \'green-300-fg icon-checkbox-marked-circle\' : \'red-300-fg icon-close-circle\'">\n <md-tooltip>{{\'FAX.\' + trunk.stateRegistry | uppercase | translate}}</md-tooltip>\n </i>\n <span ng-if="trunk.registry && trunk.host && trunk.port" class="text-boxed">{{trunk.host}}:{{trunk.port}}</span>\n <span ng-if="!trunk.registry" translate="FAX.NO_REGISTRY">\n No Registry\n </span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="4">\n <md-menu-item>\n <md-button ng-click="vm.goToTrunk($event, trunk)" translate="FAX.EDIT_TRUNK">\n Edit Trunk\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'FAX.PAGE\' | translate}}:\', rowsPerPage: \'{{\'FAX.ROWSPERPAGE\' | translate}}:\', of: \'{{\'FAX.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getTrunks" md-page-select></md-table-pagination>\n\x3c!-- / TRUNKS TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/help/views/about/about.html",'<div id="maintenance" class="flex-scrollable" layout="column" ms-scroll>\n <div id="maintenance-form-wrapper" layout="column" layout-align="center center">\n <div id="maintenance-form" class="md-whiteframe-8dp">\n <div>\n <img src="/api/settings/1/logo_login" alt="logo_login" />\n </div>\n\n <br>\n\n <div>\n <div class="info-line">\n <div class="title">Useful pages</div>\n </div>\n <section layout="row" flex layout-sm="column" layout-align="center center" layout-wrap>\n <div layout="column" flex="25" layout-align="center center">\n <a class="md-fab md-mini md-button grey-bg" href="https://wiki.xcallymotion.com/display/XMV" target="_blank">\n <md-icon md-font-icon="icon-wikipedia"></md-icon>\n </a>\n <div class="info"><a href="https://wiki.xcallymotion.com/display/XMV" target="_blank">Wiki</a></div>\n </div>\n\n <div layout="column" flex="25" layout-align="center center">\n <a class="md-fab md-mini md-button md-accent" href="/apidoc" target="_blank">\n <md-icon md-font-icon="icon-apple-mobileme"></md-icon>\n </a>\n <div class="info"><a href="/apidoc" target="_blank">Motion API</a></div>\n </div>\n\n <div layout="column" flex="25" layout-align="center center">\n <a class="md-fab md-mini md-button orange-bg" href="http://www.xcally.com/bar/phonebar/Setup.msi" target="_blank">\n <md-icon md-font-icon="icon-headphones"></md-icon>\n </a>\n <div class="info"><a href="https://www.xcally.com/bar/phonebar/Setup.msi" target="_blank">Phonebar Download</a></div>\n </div>\n\n <div layout="column" flex="25" layout-align="center center">\n <a class="md-fab md-mini md-button green-bg" href="/demo" target="_blank">\n <md-icon md-font-icon="icon-console"></md-icon>\n </a>\n <div class="info"><a href="/demo" target="_blank">Playground</a></div>\n </div>\n\n </section>\n\n <br>\n\n <div class="info-line" ng-if="!vm.license.custom">\n <div class="title">Follow us on</div>\n </div>\n <section ng-if="!vm.license.custom" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n <a class="md-fab md-mini md-button blue-900-bg" href="https://www.facebook.com/xcallymotion" target="_blank">\n <md-icon md-font-icon="icon-facebook"></md-icon>\n </a>\n\n <a class="md-fab md-mini md-button" href="https://twitter.com/xcallymotion" target="_blank">\n <md-icon md-font-icon="icon-twitter"></md-icon>\n </a>\n <a class="md-fab md-mini md-button md-warn" href="https://plus.google.com/+Xcally" target="_blank">\n <md-icon md-font-icon="icon-google-plus"></md-icon>\n </a>\n <a class="md-fab md-mini md-button light-blue-800-bg" href="https://www.linkedin.com/company/xcally" target="_blank">\n <md-icon md-font-icon="icon-linkedin"></md-icon>\n </a>\n </section>\n\n <br ng-if="!vm.license.custom">\n\n <div class="info-line" ng-if="!vm.license.custom">\n <div class="title" translate="HELP.CONTACT_US">Contact Us</div>\n </div>\n <div class="info-line" ng-if="!vm.license.custom">\n <div class="info"><a href="mailto:support@xcally.com" target="_top">support@xcally.com</a></div>\n </div>\n\n <br ng-if="!vm.license.custom">\n\n <div class="info">xCALLY Motion <u>{{vm.info.current}}</u> | <a href="https://wiki.xcallymotion.com/display/XMV/Motion+GUI#MotionGUI-Version{{vm.info.current}}" target="_blank">Changelog</a></div>\n\n <br>\n\n <div class="info" ng-if="!vm.license.custom">xCALLY© 2016 - 2018 | Powered by Xenialab | <a href="http://www.xcally.com/support/eula-xcally-license-en.pdf" target="_blank">EULA</a></div>\n\n <br ng-if="!vm.license.custom">\n\n <div class="info" ng-if="!vm.license.custom"><a href="https://www.xenialab.com/" target="_blank">www.xenialab.com</a> | <a href="https://www.xcallymotion.com/" target="_blank">www.xcallymotion.com</a></div>\n </div>\n </div>\n </div>\n</div>'),e.put("app/main/apps/integrations/views/deskAccounts/create/dialog.html",'<md-dialog class="deskAccount-dialog" aria-label="New DeskAccount">\n <form name="deskAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.deskAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="deskAccountForm[\'name\'].$error" ng-show="deskAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.deskAccount.type" required>\n\n <md-option ng-value="\'integrationTab\'"> {{ \'INTEGRATIONS.INTEGRATION_TAB\' | translate }} </md-option>\n\n <md-option ng-value="\'newTab\'"> {{ \'INTEGRATIONS.NEW_TAB\' | translate }} </md-option>\n </md-select>\n <div ng-messages="deskAccountForm[\'type\'].$error" ng-show="deskAccountForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.deskAccount.remoteUri" ng-required="true">\n\n <div ng-messages="deskAccountForm[\'remoteUri\'].$error" ng-show="deskAccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.AUTHTYPE">AuthType</label>\n <md-select name="authType" ng-model="vm.deskAccount.authType" required>\n <md-option ng-value="\'basic\'">Basic</md-option>\n </md-select>\n <div ng-messages="deskAccountForm[\'authType\'].$error" ng-show="deskAccountForm[\'authType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.AUTHTYPE_REQUIRED">AuthType field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.deskAccount.authType == \'basic\'" class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.deskAccount.username" ng-required="true">\n\n <div ng-messages="deskAccountForm[\'username\'].$error" ng-show="deskAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.deskAccount.authType == \'basic\'">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.deskAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="deskAccountForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.deskAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="deskAccountForm[\'serverUrl\'].$error" ng-show="deskAccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.deskAccount.description">\n\n <div ng-messages="deskAccountForm[\'description\'].$error" ng-show="deskAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newDeskAccount" ng-click="vm.saveDeskAccount()" class="send-button md-accent md-raised" ng-disabled="deskAccountForm.$invalid || deskAccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newDeskAccount" ng-click="vm.addNewDeskAccount()" class="send-button md-accent md-raised" ng-disabled="deskAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_DESKACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_DESKACCOUNT">\n ADD DESKACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newDeskAccount" ng-click="vm.deleteDeskAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/deskAccounts/deskAccounts.html",'<div id="deskAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="INTEGRATIONS.DESKACCOUNTS">DeskAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedDeskAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedDeskAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="INTEGRATIONS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-deskAccounts-count">\n <span>{{vm.selectedDeskAccounts.length}}</span>\n <span translate="INTEGRATIONS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="INTEGRATIONS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllDeskAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectDeskAccounts()" translate="INTEGRATIONS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedDeskAccounts" csv-label="true" filename="deskAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedDeskAccounts($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- DESKACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedDeskAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getDeskAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.URI\' | translate }}</th>\n <th md-column md-order-by="username">{{ \'INTEGRATIONS.USERNAME\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.deskAccounts.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="deskAccount" md-select-id="id" ng-repeat="deskAccount in vm.deskAccounts.rows">\n <td md-cell ng-if="deskAccount.userpic"><img class="avatar" alt="{{deskAccount.name}}" ng-src="api/users/{{deskAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!deskAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{deskAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(deskAccount, ev) : vm.createOrEditDeskAccount($event, deskAccount)" md-cell class="id ">{{deskAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(deskAccount, ev) : vm.createOrEditDeskAccount($event, deskAccount)" md-cell class="name ">{{deskAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(deskAccount, ev) : vm.createOrEditDeskAccount($event, deskAccount)" md-cell class="remoteUri ">{{deskAccount.remoteUri}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(deskAccount, ev) : vm.createOrEditDeskAccount($event, deskAccount)" md-cell class="username ">{{deskAccount.username}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(deskAccount, $event )" translate="INTEGRATIONS.EDIT_DESKACCOUNT">\n Edit DeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(deskAccount, $event )" translate="INTEGRATIONS.TEST_DESKACCOUNT">\n Test DeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(deskAccount, $event )" translate="INTEGRATIONS.DELETE_DESKACCOUNT">\n Delete DeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.deskAccounts.count}}" md-on-paginate="vm.getDeskAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / DESKACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD DESKACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-deskAccount-button" ng-click="vm.createOrEditDeskAccount($event)" aria-label="add deskAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_DESKACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD DESKACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/deskAccounts/edit/configurations/dialog.html",'<md-dialog class="deskConfiguration-dialog" aria-label="New DeskConfiguration">\n <form name="deskConfigurationForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="" name="name" ng-model="vm.deskConfiguration.name" ng-required="true" autofocus>\n\n <div ng-messages="deskConfigurationForm[\'name\'].$error" ng-show="deskConfigurationForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.deskConfiguration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="deskConfigurationForm[\'channel\'].$error" ng-show="deskConfigurationForm[\'channel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.deskConfiguration.type" required>\n\n <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }} </md-option>\n\n <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="deskConfigurationForm[\'type\'].$error" ng-show="deskConfigurationForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newDeskConfiguration" ng-click="vm.saveDeskConfiguration()" class="send-button md-accent md-raised" ng-disabled="deskConfigurationForm.$invalid || deskConfigurationForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newDeskConfiguration" ng-click="vm.addNewDeskConfiguration()" class="send-button md-accent md-raised" ng-disabled="deskConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_DESKCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_DESKCONFIGURATION">\n ADD DESKCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newDeskConfiguration" ng-click="vm.deleteDeskConfiguration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/deskAccounts/edit/item/dialog.html",'<md-dialog class="deskAccount-item-dialog" aria-label="New Item">\n <form name="deskAccountItemForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div ng-switch="vm.type">\n <div ng-switch-when="subject">\n \x3c!-- SUBJECT SECTION --\x3e\n <div ng-include="\'/subject.html\'"></div>\n \x3c!-- / SUBJECT SECTION --\x3e\n </div>\n <div ng-switch-when="description">\n \x3c!-- DESCRIPTION SECTION --\x3e\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="keyValue">Key Value</md-option>\n </md-select>\n <div ng-messages="deskAccountItemForm.type.$error" ng-show="deskAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="deskAccountItemForm.content.$error" ng-show="deskAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.item.type == \'keyValue\'">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n <div ng-messages="deskAccountItemForm.key.$error" ng-show="deskAccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="keyType" ng-model="vm.item.keyType" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="deskAccountItemForm.keyType.$error" ng-show="deskAccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n <div ng-messages="deskAccountItemForm.keyContent.$error" ng-show="deskAccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="deskAccountItemForm.variableName.$error" ng-show="deskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}\n </md-option>\n </md-select>\n </md-input-container>\n </div>\n \x3c!-- / DESCRIPTION SECTION --\x3e\n </div>\n <div ng-switch-when="field">\n \x3c!-- FIELD SECTION --\x3e\n <div ng-if="vm.accountConnected">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.FIELD">FIELD</label>\n \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="deskAccountItemForm.customField.$error" ng-show="deskAccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\n </div>\n <div ng-if="!vm.accountConnected">\n <p>Account is not connected. Please check your configurations!</p>\n </div>\n \x3c!-- / FIELD SECTION --\x3e\n </div>\n <div ng-switch-default>\n <p>No Item</p>\n </div>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="deskAccountItemForm.$invalid || deskAccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="deskAccountItemForm.$invalid || deskAccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n ADD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n <md-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="deskAccountItemForm.type.$error" ng-show="deskAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <md-select name="option" ng-model="vm.item.content" required>\n <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n </md-select>\n\n <div ng-messages="deskAccountItemForm.option.$error" ng-show="deskAccountItemForm.option.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="deskAccountItemForm.content.$error" ng-show="deskAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="deskAccountItemForm.variableName.$error" ng-show="deskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!--/ value --\x3e\n\n<\/script>\n\n<script type="text/ng-template" id="/subject.html">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="deskAccountItemForm.type.$error" ng-show="deskAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n \n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="deskAccountItemForm.content.$error"\n ng-show="deskAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="deskAccountItemForm.variableName.$error"\n ng-show="deskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n <\/script>'),e.put("app/main/apps/integrations/views/deskAccounts/edit/view.html",'<div id="integrations-deskAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-deskAccounts-button md-icon-button" aria-label="Go to deskAccounts" ng-click="vm.gotoDeskAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_DESKACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="deskAccount-image" hide-xs>\n <img ng-src="assets/images/business/deskAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.deskAccount.id}}\n <span ng-if="vm.deskAccount.name">{{vm.deskAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.deskAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveDeskAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (configurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="deskAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.deskAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.deskAccount.type" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'integrationTab\'"> {{ \'INTEGRATIONS.INTEGRATION_TAB\' | translate }} </md-option>\n\n <md-option ng-value="\'newTab\'"> {{ \'INTEGRATIONS.NEW_TAB\' | translate }} </md-option>\n </md-select>\n <div ng-messages="generalForm[\'type\'].$error" ng-show="generalForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.deskAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.AUTHTYPE">AuthType</label>\n <md-select name="authType" ng-model="vm.deskAccount.authType" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'basic\'">Basic</md-option>\n </md-select>\n <div ng-messages="generalForm[\'authType\'].$error" ng-show="generalForm[\'authType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.AUTHTYPE_REQUIRED">AuthType field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.deskAccount.authType == \'basic\'" class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.deskAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.deskAccount.authType == \'basic\'">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.deskAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="generalForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.deskAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.deskAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="deskAccount-detail-form-container configurations md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</div>\n </div>\n <div ng-controller="DeskAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.deskAccount, vm.crudPermissions)" layout="row">\n <md-card class="md-whiteframe-1dp" flex="30">\n <div layout="row" layout-align="center center">\n <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n <md-button flex="25" ng-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditDeskConfiguration($event)" class="md-icon-button" aria-label="create deskConfiguration">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n <md-list>\n <md-list-item layout="row" layout-align="center center" ng-repeat="deskConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedDeskConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getDeskConfiguration($index)">\n <span class="text-truncate" flex="80">{{ deskConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDeskConfiguration($event, deskConfiguration)" translate="INTEGRATIONS.DELETE_DESKCONFIGURATION">\n Delete DeskConfiguration\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-list-item>\n </md-list>\n </md-card>\n <div flex></div>\n <md-card class="md-whiteframe-1dp" flex="65">\n <md-tabs ng-if="vm_cc.configurations.length" md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n <span ng-if="subject.FieldId">{{subject.nameField || subject.idField}}</span>\n <span ng-if="!subject.FieldId">{{subject.type}}</span>\n </td>\n <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n <span ng-switch-when="string">{{subject.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{subject.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{subject.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{subject.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n Edit Subject\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n Delete Subject\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n <span ng-if="description.FieldId">{{description.nameField || description.idField}}</span>\n <span ng-if="!description.FieldId">{{description.type}}</span>\n </td>\n <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n <span ng-switch-when="string">{{description.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{description.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{description.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{description.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n Edit Description\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n Delete Description\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.FIELDS">FIELDS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.field = query" on-collapse="vm_cc.query.field = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditField($event)" aria-label="add field" translate translate-attr-label="INTEGRATIONS.ADD_FIELD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedFields.length}} {{vm_cc.selectedFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedFields($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedFields">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="field" md-select-id="id" ng-repeat="field in vm_cc.fields | filter: vm_cc.query.field">\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="id ">{{field.id}}</td>\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="type ">\n <span ng-if="field.FieldId">{{field.nameField || field.idField}}</span>\n <span ng-if="!field.FieldId">{{field.type}}</span>\n </td>\n <td ng-switch="field.type" ng-click="vm_cc.createOrEditField($event, field)" md-cell>\n <span ng-switch-when="string">{{field.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{field.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{field.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{field.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditField($event, field)" translate="INTEGRATIONS.EDIT_FIELD">\n Edit Field\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteFieldConfirm($event, field)" translate="INTEGRATIONS.DELETE_FIELD">\n Delete Field\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.TAGS">TAGS</span>\n </md-tab-label>\n <md-tab-body>\n <md-table-container class="md-whiteframe-1dp padding-20">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TAGS">Tags</label>\n <md-select ng-model="vm_cc.selectedTags" ng-change="vm_cc.selectTagsChanged($event)" multiple>\n <md-option ng-value="tag.id" ng-repeat="tag in vm_cc.tags">{{ tag.name }}</md-option>\n </md-select>\n </md-input-container>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditDeskConfiguration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n </div>\n </div>\n </md-card>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/dynamics365Accounts/create/dialog.html",'<md-dialog class="dynamics365Account-dialog" aria-label="New Dynamics365Account">\n <form name="dynamics365AccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.dynamics365Account.name" ng-required="true" autofocus>\n\n <div ng-messages="dynamics365AccountForm[\'name\'].$error" ng-show="dynamics365AccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.dynamics365Account.username" ng-required="true">\n\n <div ng-messages="dynamics365AccountForm[\'username\'].$error" ng-show="dynamics365AccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.dynamics365Account.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="dynamics365AccountForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.dynamics365Account.remoteUri" ng-required="true">\n\n <div ng-messages="dynamics365AccountForm[\'remoteUri\'].$error" ng-show="dynamics365AccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TENANTID">TenantId</label>\n <input type="text" name="tenantId" ng-model="vm.dynamics365Account.tenantId" ng-required="true">\n\n <div ng-messages="dynamics365AccountForm[\'tenantId\'].$error" ng-show="dynamics365AccountForm[\'tenantId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TENANTID_REQUIRED">TenantId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTID">ClientId</label>\n <input type="text" name="clientId" ng-model="vm.dynamics365Account.clientId" ng-required="true">\n\n <div ng-messages="dynamics365AccountForm[\'clientId\'].$error" ng-show="dynamics365AccountForm[\'clientId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTID_REQUIRED">ClientId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTSECRET">ClientSecret</label>\n <input type="text" name="clientSecret" ng-model="vm.dynamics365Account.clientSecret" ng-required="true">\n\n <div ng-messages="dynamics365AccountForm[\'clientSecret\'].$error" ng-show="dynamics365AccountForm[\'clientSecret\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTSECRET_REQUIRED">ClientSecret field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.dynamics365Account.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="dynamics365AccountForm[\'serverUrl\'].$error" ng-show="dynamics365AccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.dynamics365Account.description">\n\n <div ng-messages="dynamics365AccountForm[\'description\'].$error" ng-show="dynamics365AccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newDynamics365Account" ng-click="vm.saveDynamics365Account()" class="send-button md-accent md-raised" ng-disabled="dynamics365AccountForm.$invalid || dynamics365AccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newDynamics365Account" ng-click="vm.addNewDynamics365Account()" class="send-button md-accent md-raised" ng-disabled="dynamics365AccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_DYNAMICS365ACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_DYNAMICS365ACCOUNT">\n ADD DYNAMICS365ACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newDynamics365Account" ng-click="vm.deleteDynamics365Account($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/dynamics365Accounts/dynamics365Accounts.html",'<div id="dynamics365Accounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="INTEGRATIONS.DYNAMICS365ACCOUNTS">Dynamics365Accounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedDynamics365Accounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedDynamics365Accounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="INTEGRATIONS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-dynamics365Accounts-count">\n <span>{{vm.selectedDynamics365Accounts.length}}</span>\n <span translate="INTEGRATIONS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="INTEGRATIONS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllDynamics365Accounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectDynamics365Accounts()" translate="INTEGRATIONS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedDynamics365Accounts" csv-label="true" filename="dynamics365Accounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedDynamics365Accounts($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- DYNAMICS365ACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedDynamics365Accounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getDynamics365Accounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n <th md-column md-order-by="username">{{ \'INTEGRATIONS.USERNAME\' | translate }}</th>\n <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.URI\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.dynamics365Accounts.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="dynamics365Account" md-select-id="id" ng-repeat="dynamics365Account in vm.dynamics365Accounts.rows">\n <td md-cell ng-if="dynamics365Account.userpic"><img class="avatar" alt="{{dynamics365Account.name}}" ng-src="api/users/{{dynamics365Account.id}}/avatar" /></td>\n <td md-cell ng-if="!dynamics365Account.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{dynamics365Account.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(dynamics365Account, ev) : vm.createOrEditDynamics365Account($event, dynamics365Account)" md-cell class="id ">{{dynamics365Account.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(dynamics365Account, ev) : vm.createOrEditDynamics365Account($event, dynamics365Account)" md-cell class="name ">{{dynamics365Account.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(dynamics365Account, ev) : vm.createOrEditDynamics365Account($event, dynamics365Account)" md-cell class="username ">{{dynamics365Account.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(dynamics365Account, ev) : vm.createOrEditDynamics365Account($event, dynamics365Account)" md-cell class="remoteUri ">{{dynamics365Account.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(dynamics365Account, $event )" translate="INTEGRATIONS.EDIT_DYNAMICS365ACCOUNT">\n Edit Dynamics365Account\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(dynamics365Account, $event )" translate="INTEGRATIONS.TEST_DYNAMICS365ACCOUNT">\n Test Dynamics365Account\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\n\n <md-button ng-click="vm.deleteconfirm(dynamics365Account, $event )" translate="INTEGRATIONS.DELETE_DYNAMICS365ACCOUNT">\n Delete Dynamics365Account\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.dynamics365Accounts.count}}" md-on-paginate="vm.getDynamics365Accounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / DYNAMICS365ACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD DYNAMICS365ACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-dynamics365Account-button" ng-click="vm.createOrEditDynamics365Account($event)" aria-label="add dynamics365Account" translate translate-attr-aria-label="INTEGRATIONS.ADD_DYNAMICS365ACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD DYNAMICS365ACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/dynamics365Accounts/edit/configurations/dialog.html",'<md-dialog class="dynamics365Configuration-dialog" aria-label="New Dynamics365Configuration">\n <form name="dynamics365ConfigurationForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="" name="name" ng-model="vm.dynamics365Configuration.name" ng-required="true" autofocus>\n\n <div ng-messages="dynamics365ConfigurationForm[\'name\'].$error" ng-show="dynamics365ConfigurationForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.dynamics365Configuration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dynamics365ConfigurationForm[\'channel\'].$error" ng-show="dynamics365ConfigurationForm[\'channel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.dynamics365Configuration.type" required>\n\n <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }} </md-option>\n\n <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dynamics365ConfigurationForm[\'type\'].$error" ng-show="dynamics365ConfigurationForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TICKETTYPE">TicketType</label>\n <md-select name="ticketType" ng-model="vm.dynamics365Configuration.ticketType" required>\n\n <md-option ng-value="\'incident\'"> {{ \'INTEGRATIONS.CASE\' | translate }} </md-option>\n\n <md-option ng-value="\'phonecall\'"> {{ \'INTEGRATIONS.PHONECALL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dynamics365ConfigurationForm[\'ticketType\'].$error" ng-show="dynamics365ConfigurationForm[\'ticketType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TICKETTYPE_REQUIRED">TicketType field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newDynamics365Configuration" ng-click="vm.saveDynamics365Configuration()" class="send-button md-accent md-raised" ng-disabled="dynamics365ConfigurationForm.$invalid || dynamics365ConfigurationForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newDynamics365Configuration" ng-click="vm.addNewDynamics365Configuration()" class="send-button md-accent md-raised" ng-disabled="dynamics365ConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_DYNAMICS365CONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_DYNAMICS365CONFIGURATION">\n ADD DYNAMICS365CONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newDynamics365Configuration" ng-click="vm.deleteDynamics365Configuration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/dynamics365Accounts/edit/item/dialog.html",'<md-dialog class="dynamics365Account-item-dialog" aria-label="New Item">\n <form name="dynamics365AccountItemForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div ng-switch="vm.type">\n <div ng-switch-when="subject">\n \x3c!-- SUBJECT SECTION --\x3e\n <div ng-include="\'/subject.html\'"></div>\n \x3c!-- / SUBJECT SECTION --\x3e\n </div>\n <div ng-switch-when="description">\n \x3c!-- DESCRIPTION SECTION --\x3e\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="keyValue">Key Value</md-option>\n </md-select>\n <div ng-messages="dynamics365AccountItemForm.type.$error" ng-show="dynamics365AccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="dynamics365AccountItemForm.content.$error" ng-show="dynamics365AccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.item.type == \'keyValue\'">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n <div ng-messages="dynamics365AccountItemForm.key.$error" ng-show="dynamics365AccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="keyType" ng-model="vm.item.keyType" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="dynamics365AccountItemForm.keyType.$error" ng-show="dynamics365AccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n <div ng-messages="dynamics365AccountItemForm.keyContent.$error" ng-show="dynamics365AccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="dynamics365AccountItemForm.variableName.$error" ng-show="dynamics365AccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}\n </md-option>\n </md-select>\n </md-input-container>\n </div>\n \x3c!-- / DESCRIPTION SECTION --\x3e\n </div>\n <div ng-switch-when="field">\n \x3c!-- FIELD SECTION --\x3e\n <div ng-if="vm.accountConnected">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.FIELD">FIELD</label>\n \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="dynamics365AccountItemForm.customField.$error" ng-show="dynamics365AccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\n </div>\n <div ng-if="!vm.accountConnected">\n <p>Account is not connected. Please check your configurations!</p>\n </div>\n \x3c!-- / FIELD SECTION --\x3e\n </div>\n <div ng-switch-default>\n <p>No Item</p>\n </div>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="dynamics365AccountItemForm.$invalid || dynamics365AccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="dynamics365AccountItemForm.$invalid || dynamics365AccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n ADD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n <md-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="dynamics365AccountItemForm.type.$error" ng-show="dynamics365AccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <md-select name="option" ng-model="vm.item.content" required>\n <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n </md-select>\n\n <div ng-messages="dynamics365AccountItemForm.option.$error" ng-show="dynamics365AccountItemForm.option.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="dynamics365AccountItemForm.content.$error" ng-show="dynamics365AccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="dynamics365AccountItemForm.variableName.$error" ng-show="dynamics365AccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!--/ value --\x3e\n\n<\/script>\n\n<script type="text/ng-template" id="/subject.html">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="dynamics365AccountItemForm.type.$error" ng-show="dynamics365AccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n \n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="dynamics365AccountItemForm.content.$error"\n ng-show="dynamics365AccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="dynamics365AccountItemForm.variableName.$error"\n ng-show="dynamics365AccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n <\/script>'),e.put("app/main/apps/integrations/views/dynamics365Accounts/edit/view.html",'<div id="integrations-dynamics365Account" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-dynamics365Accounts-button md-icon-button" aria-label="Go to dynamics365Accounts" ng-click="vm.gotoDynamics365Accounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_DYNAMICS365ACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="dynamics365Account-image" hide-xs>\n <img ng-src="assets/images/business/dynamics365Accounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.dynamics365Account.id}}\n <span ng-if="vm.dynamics365Account.name">{{vm.dynamics365Account.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.dynamics365Account.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveDynamics365Account()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (configurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="dynamics365Account-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.dynamics365Account.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.dynamics365Account.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.dynamics365Account.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="generalForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.dynamics365Account.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TENANTID">TenantId</label>\n <input type="text" name="tenantId" ng-model="vm.dynamics365Account.tenantId" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'tenantId\'].$error" ng-show="generalForm[\'tenantId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TENANTID_REQUIRED">TenantId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTID">ClientId</label>\n <input type="text" name="clientId" ng-model="vm.dynamics365Account.clientId" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'clientId\'].$error" ng-show="generalForm[\'clientId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTID_REQUIRED">ClientId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTSECRET">ClientSecret</label>\n <input type="text" name="clientSecret" ng-model="vm.dynamics365Account.clientSecret" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'clientSecret\'].$error" ng-show="generalForm[\'clientSecret\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTSECRET_REQUIRED">ClientSecret field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.dynamics365Account.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.dynamics365Account.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="dynamics365Account-detail-form-container configurations md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</div>\n </div>\n <div ng-controller="Dynamics365AccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.dynamics365Account, vm.crudPermissions)" layout="row">\n <md-card class="md-whiteframe-1dp" flex="30">\n <div layout="row" layout-align="center center">\n <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n <md-button flex="25" ng-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditDynamics365Configuration($event)" class="md-icon-button" aria-label="create dynamics365Configuration">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n <md-list>\n <md-list-item layout="row" layout-align="center center" ng-repeat="dynamics365Configuration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedDynamics365Configuration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getDynamics365Configuration($index)">\n <span class="text-truncate" flex="80">{{ dynamics365Configuration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDynamics365Configuration($event, dynamics365Configuration)" translate="INTEGRATIONS.DELETE_DYNAMICS365CONFIGURATION">\n Delete Dynamics365Configuration\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-list-item>\n </md-list>\n </md-card>\n <div flex></div>\n <md-card class="md-whiteframe-1dp" flex="65">\n <md-tabs ng-if="vm_cc.configurations.length" md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n <span ng-if="subject.FieldId">{{subject.nameField || subject.idField}}</span>\n <span ng-if="!subject.FieldId">{{subject.type}}</span>\n </td>\n <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n <span ng-switch-when="string">{{subject.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{subject.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{subject.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{subject.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n Edit Subject\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n Delete Subject\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n <span ng-if="description.FieldId">{{description.nameField || description.idField}}</span>\n <span ng-if="!description.FieldId">{{description.type}}</span>\n </td>\n <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n <span ng-switch-when="string">{{description.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{description.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{description.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{description.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n Edit Description\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n Delete Description\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.FIELDS">FIELDS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.field = query" on-collapse="vm_cc.query.field = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditField($event)" aria-label="add field" translate translate-attr-label="INTEGRATIONS.ADD_FIELD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedFields.length}} {{vm_cc.selectedFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedFields($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedFields">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="field" md-select-id="id" ng-repeat="field in vm_cc.fields | filter: vm_cc.query.field">\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="id ">{{field.id}}</td>\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="type ">\n <span ng-if="field.FieldId">{{field.nameField || field.idField}}</span>\n <span ng-if="!field.FieldId">{{field.type}}</span>\n </td>\n <td ng-switch="field.type" ng-click="vm_cc.createOrEditField($event, field)" md-cell>\n <span ng-switch-when="string">{{field.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{field.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{field.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{field.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditField($event, field)" translate="INTEGRATIONS.EDIT_FIELD">\n Edit Field\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteFieldConfirm($event, field)" translate="INTEGRATIONS.DELETE_FIELD">\n Delete Field\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditDynamics365Configuration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n </div>\n </div>\n </md-card>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/freshdeskAccounts/create/dialog.html",'<md-dialog class="freshdeskAccount-dialog" aria-label="New FreshdeskAccount">\n <form name="freshdeskAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.freshdeskAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="freshdeskAccountForm[\'name\'].$error" ng-show="freshdeskAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.freshdeskAccount.username" ng-required="true">\n\n <div ng-messages="freshdeskAccountForm[\'username\'].$error" ng-show="freshdeskAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.freshdeskAccount.remoteUri" ng-required="true">\n\n <div ng-messages="freshdeskAccountForm[\'remoteUri\'].$error" ng-show="freshdeskAccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.APIKEY">ApiKey</label>\n <input type="text" name="apiKey" ng-model="vm.freshdeskAccount.apiKey" ng-required="true">\n\n <div ng-messages="freshdeskAccountForm[\'apiKey\'].$error" ng-show="freshdeskAccountForm[\'apiKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.APIKEY_REQUIRED">ApiKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.freshdeskAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="freshdeskAccountForm[\'serverUrl\'].$error" ng-show="freshdeskAccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.freshdeskAccount.description">\n\n <div ng-messages="freshdeskAccountForm[\'description\'].$error" ng-show="freshdeskAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newFreshdeskAccount" ng-click="vm.saveFreshdeskAccount()" class="send-button md-accent md-raised" ng-disabled="freshdeskAccountForm.$invalid || freshdeskAccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newFreshdeskAccount" ng-click="vm.addNewFreshdeskAccount()" class="send-button md-accent md-raised" ng-disabled="freshdeskAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_FRESHDESKACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_FRESHDESKACCOUNT">\n ADD FRESHDESKACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newFreshdeskAccount" ng-click="vm.deleteFreshdeskAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/freshdeskAccounts/edit/configurations/dialog.html",'<md-dialog class="freshdeskConfiguration-dialog" aria-label="New FreshdeskConfiguration">\n <form name="freshdeskConfigurationForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="" name="name" ng-model="vm.freshdeskConfiguration.name" ng-required="true" autofocus>\n\n <div ng-messages="freshdeskConfigurationForm[\'name\'].$error" ng-show="freshdeskConfigurationForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.freshdeskConfiguration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="freshdeskConfigurationForm[\'channel\'].$error" ng-show="freshdeskConfigurationForm[\'channel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.freshdeskConfiguration.type" required>\n\n <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }} </md-option>\n\n <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="freshdeskConfigurationForm[\'type\'].$error" ng-show="freshdeskConfigurationForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newFreshdeskConfiguration" ng-click="vm.saveFreshdeskConfiguration()" class="send-button md-accent md-raised" ng-disabled="freshdeskConfigurationForm.$invalid || freshdeskConfigurationForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newFreshdeskConfiguration" ng-click="vm.addNewFreshdeskConfiguration()" class="send-button md-accent md-raised" ng-disabled="freshdeskConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_FRESHDESKCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_FRESHDESKCONFIGURATION">\n ADD FRESHDESKCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newFreshdeskConfiguration" ng-click="vm.deleteFreshdeskConfiguration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/freshdeskAccounts/edit/item/dialog.html",'<md-dialog class="freshdeskAccount-item-dialog" aria-label="New Item">\n <form name="freshdeskAccountItemForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div ng-switch="vm.type">\n <div ng-switch-when="subject">\n \x3c!-- SUBJECT SECTION --\x3e\n <div ng-include="\'/subject.html\'"></div>\n \x3c!-- / SUBJECT SECTION --\x3e\n </div>\n <div ng-switch-when="description">\n \x3c!-- DESCRIPTION SECTION --\x3e\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="keyValue">Key Value</md-option>\n </md-select>\n <div ng-messages="freshdeskAccountItemForm.type.$error" ng-show="freshdeskAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="freshdeskAccountItemForm.content.$error" ng-show="freshdeskAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.item.type == \'keyValue\'">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n <div ng-messages="freshdeskAccountItemForm.key.$error" ng-show="freshdeskAccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="keyType" ng-model="vm.item.keyType" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="freshdeskAccountItemForm.keyType.$error" ng-show="freshdeskAccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n <div ng-messages="freshdeskAccountItemForm.keyContent.$error" ng-show="freshdeskAccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="freshdeskAccountItemForm.variableName.$error" ng-show="freshdeskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}\n </md-option>\n </md-select>\n </md-input-container>\n </div>\n \x3c!-- / DESCRIPTION SECTION --\x3e\n </div>\n <div ng-switch-when="field">\n \x3c!-- FIELD SECTION --\x3e\n <div ng-if="vm.accountConnected">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.FIELD">FIELD</label>\n \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="freshdeskAccountItemForm.customField.$error" ng-show="freshdeskAccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\n </div>\n <div ng-if="!vm.accountConnected">\n <p>Account is not connected. Please check your configurations!</p>\n </div>\n \x3c!-- / FIELD SECTION --\x3e\n </div>\n <div ng-switch-default>\n <p>No Item</p>\n </div>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="freshdeskAccountItemForm.$invalid || freshdeskAccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="freshdeskAccountItemForm.$invalid || freshdeskAccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n ADD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n <md-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="freshdeskAccountItemForm.type.$error" ng-show="freshdeskAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <md-select name="option" ng-model="vm.item.content" required>\n <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n </md-select>\n\n <div ng-messages="freshdeskAccountItemForm.option.$error" ng-show="freshdeskAccountItemForm.option.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="freshdeskAccountItemForm.content.$error" ng-show="freshdeskAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="freshdeskAccountItemForm.variableName.$error" ng-show="freshdeskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!--/ value --\x3e\n\n<\/script>\n\n<script type="text/ng-template" id="/subject.html">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="freshdeskAccountItemForm.type.$error" ng-show="freshdeskAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n \n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="freshdeskAccountItemForm.content.$error"\n ng-show="freshdeskAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="freshdeskAccountItemForm.variableName.$error"\n ng-show="freshdeskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n <\/script>'),e.put("app/main/apps/integrations/views/freshdeskAccounts/edit/view.html",'<div id="integrations-freshdeskAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-freshdeskAccounts-button md-icon-button" aria-label="Go to freshdeskAccounts" ng-click="vm.gotoFreshdeskAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_FRESHDESKACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="freshdeskAccount-image" hide-xs>\n <img ng-src="assets/images/business/freshdeskAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.freshdeskAccount.id}}\n <span ng-if="vm.freshdeskAccount.name">{{vm.freshdeskAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.freshdeskAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveFreshdeskAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (configurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="freshdeskAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.freshdeskAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.freshdeskAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.freshdeskAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.APIKEY">ApiKey</label>\n <input type="text" name="apiKey" ng-model="vm.freshdeskAccount.apiKey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'apiKey\'].$error" ng-show="generalForm[\'apiKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.APIKEY_REQUIRED">ApiKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.freshdeskAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.freshdeskAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="freshdeskAccount-detail-form-container configurations md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</div>\n </div>\n <div ng-controller="FreshdeskAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.freshdeskAccount, vm.crudPermissions)" layout="row">\n <md-card class="md-whiteframe-1dp" flex="30">\n <div layout="row" layout-align="center center">\n <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n <md-button flex="25" ng-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditFreshdeskConfiguration($event)" class="md-icon-button" aria-label="create freshdeskConfiguration">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n <md-list>\n <md-list-item layout="row" layout-align="center center" ng-repeat="freshdeskConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedFreshdeskConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getFreshdeskConfiguration($index)">\n <span class="text-truncate" flex="80">{{ freshdeskConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteFreshdeskConfiguration($event, freshdeskConfiguration)" translate="INTEGRATIONS.DELETE_FRESHDESKCONFIGURATION">\n Delete FreshdeskConfiguration\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-list-item>\n </md-list>\n </md-card>\n <div flex></div>\n <md-card class="md-whiteframe-1dp" flex="65">\n <md-tabs ng-if="vm_cc.configurations.length" md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n <span ng-if="subject.FieldId">{{subject.nameField || subject.idField}}</span>\n <span ng-if="!subject.FieldId">{{subject.type}}</span>\n </td>\n <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n <span ng-switch-when="string">{{subject.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{subject.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{subject.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{subject.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n Edit Subject\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n Delete Subject\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n <span ng-if="description.FieldId">{{description.nameField || description.idField}}</span>\n <span ng-if="!description.FieldId">{{description.type}}</span>\n </td>\n <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n <span ng-switch-when="string">{{description.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{description.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{description.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{description.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n Edit Description\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n Delete Description\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.FIELDS">FIELDS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.field = query" on-collapse="vm_cc.query.field = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditField($event)" aria-label="add field" translate translate-attr-label="INTEGRATIONS.ADD_FIELD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedFields.length}} {{vm_cc.selectedFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedFields($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedFields">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="field" md-select-id="id" ng-repeat="field in vm_cc.fields | filter: vm_cc.query.field">\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="id ">{{field.id}}</td>\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="type ">\n <span ng-if="field.FieldId">{{field.nameField || field.idField}}</span>\n <span ng-if="!field.FieldId">{{field.type}}</span>\n </td>\n <td ng-switch="field.type" ng-click="vm_cc.createOrEditField($event, field)" md-cell>\n <span ng-switch-when="string">{{field.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{field.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{field.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{field.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditField($event, field)" translate="INTEGRATIONS.EDIT_FIELD">\n Edit Field\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteFieldConfirm($event, field)" translate="INTEGRATIONS.DELETE_FIELD">\n Delete Field\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.TAGS">TAGS</span>\n </md-tab-label>\n <md-tab-body>\n <md-table-container class="md-whiteframe-1dp padding-20">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TAGS">Tags</label>\n <md-select ng-model="vm_cc.selectedTags" ng-change="vm_cc.selectTagsChanged($event)" multiple>\n <md-option ng-value="tag.id" ng-repeat="tag in vm_cc.tags">{{ tag.name }}</md-option>\n </md-select>\n </md-input-container>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditFreshdeskConfiguration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n </div>\n </div>\n </md-card>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/freshdeskAccounts/freshdeskAccounts.html",'<div id="freshdeskAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="INTEGRATIONS.FRESHDESKACCOUNTS">FreshdeskAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedFreshdeskAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedFreshdeskAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="INTEGRATIONS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-freshdeskAccounts-count">\n <span>{{vm.selectedFreshdeskAccounts.length}}</span>\n <span translate="INTEGRATIONS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="INTEGRATIONS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllFreshdeskAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectFreshdeskAccounts()" translate="INTEGRATIONS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedFreshdeskAccounts" csv-label="true" filename="freshdeskAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedFreshdeskAccounts($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- FRESHDESKACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedFreshdeskAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getFreshdeskAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n <th md-column md-order-by="username">{{ \'INTEGRATIONS.USERNAME\' | translate }}</th>\n <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.URI\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.freshdeskAccounts.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="freshdeskAccount" md-select-id="id" ng-repeat="freshdeskAccount in vm.freshdeskAccounts.rows">\n <td md-cell ng-if="freshdeskAccount.userpic"><img class="avatar" alt="{{freshdeskAccount.name}}" ng-src="api/users/{{freshdeskAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!freshdeskAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{freshdeskAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshdeskAccount, ev) : vm.createOrEditFreshdeskAccount($event, freshdeskAccount)" md-cell class="id ">{{freshdeskAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshdeskAccount, ev) : vm.createOrEditFreshdeskAccount($event, freshdeskAccount)" md-cell class="name ">{{freshdeskAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshdeskAccount, ev) : vm.createOrEditFreshdeskAccount($event, freshdeskAccount)" md-cell class="username ">{{freshdeskAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshdeskAccount, ev) : vm.createOrEditFreshdeskAccount($event, freshdeskAccount)" md-cell class="remoteUri ">{{freshdeskAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(freshdeskAccount, $event )" translate="INTEGRATIONS.EDIT_FRESHDESKACCOUNT">\n Edit FreshdeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(freshdeskAccount, $event )" translate="INTEGRATIONS.TEST_FRESHDESKACCOUNT">\n Test FreshdeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(freshdeskAccount, $event )" translate="INTEGRATIONS.DELETE_FRESHDESKACCOUNT">\n Delete FreshdeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.freshdeskAccounts.count}}" md-on-paginate="vm.getFreshdeskAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / FRESHDESKACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD FRESHDESKACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-freshdeskAccount-button" ng-click="vm.createOrEditFreshdeskAccount($event)" aria-label="add freshdeskAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_FRESHDESKACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD FRESHDESKACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/freshsalesAccounts/create/dialog.html",'<md-dialog class="freshsalesAccount-dialog" aria-label="New FreshsalesAccount">\n <form name="freshsalesAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.freshsalesAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="freshsalesAccountForm[\'name\'].$error" ng-show="freshsalesAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.freshsalesAccount.username" ng-required="true">\n\n <div ng-messages="freshsalesAccountForm[\'username\'].$error" ng-show="freshsalesAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.freshsalesAccount.remoteUri" ng-required="true">\n\n <div ng-messages="freshsalesAccountForm[\'remoteUri\'].$error" ng-show="freshsalesAccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.APIKEY">ApiKey</label>\n <input type="text" name="apiKey" ng-model="vm.freshsalesAccount.apiKey" ng-required="true">\n\n <div ng-messages="freshsalesAccountForm[\'apiKey\'].$error" ng-show="freshsalesAccountForm[\'apiKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.APIKEY_REQUIRED">ApiKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.freshsalesAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="freshsalesAccountForm[\'serverUrl\'].$error" ng-show="freshsalesAccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.freshsalesAccount.description">\n\n <div ng-messages="freshsalesAccountForm[\'description\'].$error" ng-show="freshsalesAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newFreshsalesAccount" ng-click="vm.saveFreshsalesAccount()" class="send-button md-accent md-raised" ng-disabled="freshsalesAccountForm.$invalid || freshsalesAccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newFreshsalesAccount" ng-click="vm.addNewFreshsalesAccount()" class="send-button md-accent md-raised" ng-disabled="freshsalesAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_FRESHSALESACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_FRESHSALESACCOUNT">\n ADD FRESHSALESACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newFreshsalesAccount" ng-click="vm.deleteFreshsalesAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/freshsalesAccounts/edit/configurations/dialog.html",'<md-dialog class="freshsalesConfiguration-dialog" aria-label="New FreshsalesConfiguration">\n <form name="freshsalesConfigurationForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="" name="name" ng-model="vm.freshsalesConfiguration.name" ng-required="true" autofocus>\n\n <div ng-messages="freshsalesConfigurationForm[\'name\'].$error" ng-show="freshsalesConfigurationForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.freshsalesConfiguration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="freshsalesConfigurationForm[\'channel\'].$error" ng-show="freshsalesConfigurationForm[\'channel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.freshsalesConfiguration.type" required>\n\n <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }} </md-option>\n\n <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="freshsalesConfigurationForm[\'type\'].$error" ng-show="freshsalesConfigurationForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newFreshsalesConfiguration" ng-click="vm.saveFreshsalesConfiguration()" class="send-button md-accent md-raised" ng-disabled="freshsalesConfigurationForm.$invalid || freshsalesConfigurationForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newFreshsalesConfiguration" ng-click="vm.addNewFreshsalesConfiguration()" class="send-button md-accent md-raised" ng-disabled="freshsalesConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_FRESHSALESCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_FRESHSALESCONFIGURATION">\n ADD FRESHSALESCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newFreshsalesConfiguration" ng-click="vm.deleteFreshsalesConfiguration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/freshsalesAccounts/edit/item/dialog.html",'<md-dialog class="freshsalesAccount-item-dialog" aria-label="New Item">\n <form name="freshsalesAccountItemForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div ng-switch="vm.type">\n <div ng-switch-when="subject">\n \x3c!-- SUBJECT SECTION --\x3e\n <div ng-include="\'/subject.html\'"></div>\n \x3c!-- / SUBJECT SECTION --\x3e\n </div>\n <div ng-switch-when="description">\n \x3c!-- DESCRIPTION SECTION --\x3e\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="keyValue">Key Value</md-option>\n </md-select>\n <div ng-messages="freshsalesAccountItemForm.type.$error" ng-show="freshsalesAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="freshsalesAccountItemForm.content.$error" ng-show="freshsalesAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.item.type == \'keyValue\'">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n <div ng-messages="freshsalesAccountItemForm.key.$error" ng-show="freshsalesAccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="keyType" ng-model="vm.item.keyType" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="freshsalesAccountItemForm.keyType.$error" ng-show="freshsalesAccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n <div ng-messages="freshsalesAccountItemForm.keyContent.$error" ng-show="freshsalesAccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="freshsalesAccountItemForm.variableName.$error" ng-show="freshsalesAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}\n </md-option>\n </md-select>\n </md-input-container>\n </div>\n \x3c!-- / DESCRIPTION SECTION --\x3e\n </div>\n <div ng-switch-when="field">\n \x3c!-- FIELD SECTION --\x3e\n <div ng-if="vm.accountConnected">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.FIELD">FIELD</label>\n \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="freshsalesAccountItemForm.customField.$error" ng-show="freshsalesAccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\n </div>\n <div ng-if="!vm.accountConnected">\n <p>Account is not connected. Please check your configurations!</p>\n </div>\n \x3c!-- / FIELD SECTION --\x3e\n </div>\n <div ng-switch-default>\n <p>No Item</p>\n </div>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="freshsalesAccountItemForm.$invalid || freshsalesAccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="freshsalesAccountItemForm.$invalid || freshsalesAccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n ADD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n <md-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="freshsalesAccountItemForm.type.$error" ng-show="freshsalesAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <md-select name="option" ng-model="vm.item.content" required>\n <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n </md-select>\n\n <div ng-messages="freshsalesAccountItemForm.option.$error" ng-show="freshsalesAccountItemForm.option.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="freshsalesAccountItemForm.content.$error" ng-show="freshsalesAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="freshsalesAccountItemForm.variableName.$error" ng-show="freshsalesAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!--/ value --\x3e\n\n<\/script>\n\n<script type="text/ng-template" id="/subject.html">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="freshsalesAccountItemForm.type.$error" ng-show="freshsalesAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n \n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="freshsalesAccountItemForm.content.$error"\n ng-show="freshsalesAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="freshsalesAccountItemForm.variableName.$error"\n ng-show="freshsalesAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n <\/script>'),e.put("app/main/apps/integrations/views/freshsalesAccounts/edit/view.html",'<div id="integrations-freshsalesAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-freshsalesAccounts-button md-icon-button" aria-label="Go to freshsalesAccounts" ng-click="vm.gotoFreshsalesAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_FRESHSALESACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="freshsalesAccount-image" hide-xs>\n <img ng-src="assets/images/business/freshsalesAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.freshsalesAccount.id}}\n <span ng-if="vm.freshsalesAccount.name">{{vm.freshsalesAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.freshsalesAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveFreshsalesAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (configurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="freshsalesAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.freshsalesAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.freshsalesAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.freshsalesAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.APIKEY">ApiKey</label>\n <input type="text" name="apiKey" ng-model="vm.freshsalesAccount.apiKey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'apiKey\'].$error" ng-show="generalForm[\'apiKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.APIKEY_REQUIRED">ApiKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.freshsalesAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.freshsalesAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="freshsalesAccount-detail-form-container configurations md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</div>\n </div>\n <div ng-controller="FreshsalesAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.freshsalesAccount, vm.crudPermissions)" layout="row">\n <md-card class="md-whiteframe-1dp" flex="30">\n <div layout="row" layout-align="center center">\n <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n <md-button flex="25" ng-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditFreshsalesConfiguration($event)" class="md-icon-button" aria-label="create freshsalesConfiguration">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n <md-list>\n <md-list-item layout="row" layout-align="center center" ng-repeat="freshsalesConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedFreshsalesConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getFreshsalesConfiguration($index)">\n <span class="text-truncate" flex="80">{{ freshsalesConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteFreshsalesConfiguration($event, freshsalesConfiguration)" translate="INTEGRATIONS.DELETE_FRESHSALESCONFIGURATION">\n Delete FreshsalesConfiguration\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-list-item>\n </md-list>\n </md-card>\n <div flex></div>\n <md-card class="md-whiteframe-1dp" flex="65">\n <md-tabs ng-if="vm_cc.configurations.length" md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n <span ng-if="subject.FieldId">{{subject.nameField || subject.idField}}</span>\n <span ng-if="!subject.FieldId">{{subject.type}}</span>\n </td>\n <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n <span ng-switch-when="string">{{subject.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{subject.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{subject.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{subject.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n Edit Subject\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n Delete Subject\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n <span ng-if="description.FieldId">{{description.nameField || description.idField}}</span>\n <span ng-if="!description.FieldId">{{description.type}}</span>\n </td>\n <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n <span ng-switch-when="string">{{description.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{description.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{description.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{description.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n Edit Description\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n Delete Description\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditFreshsalesConfiguration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n </div>\n </div>\n </md-card>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/freshsalesAccounts/freshsalesAccounts.html",'<div id="freshsalesAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="INTEGRATIONS.FRESHSALESACCOUNTS">FreshsalesAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedFreshsalesAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedFreshsalesAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="INTEGRATIONS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-freshsalesAccounts-count">\n <span>{{vm.selectedFreshsalesAccounts.length}}</span>\n <span translate="INTEGRATIONS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="INTEGRATIONS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllFreshsalesAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectFreshsalesAccounts()" translate="INTEGRATIONS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedFreshsalesAccounts" csv-label="true" filename="freshsalesAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedFreshsalesAccounts($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- FRESHSALESACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedFreshsalesAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getFreshsalesAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n <th md-column md-order-by="username">{{ \'INTEGRATIONS.USERNAME\' | translate }}</th>\n <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.URI\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.freshsalesAccounts.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="freshsalesAccount" md-select-id="id" ng-repeat="freshsalesAccount in vm.freshsalesAccounts.rows">\n <td md-cell ng-if="freshsalesAccount.userpic"><img class="avatar" alt="{{freshsalesAccount.name}}" ng-src="api/users/{{freshsalesAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!freshsalesAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{freshsalesAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshsalesAccount, ev) : vm.createOrEditFreshsalesAccount($event, freshsalesAccount)" md-cell class="id ">{{freshsalesAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshsalesAccount, ev) : vm.createOrEditFreshsalesAccount($event, freshsalesAccount)" md-cell class="name ">{{freshsalesAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshsalesAccount, ev) : vm.createOrEditFreshsalesAccount($event, freshsalesAccount)" md-cell class="username ">{{freshsalesAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(freshsalesAccount, ev) : vm.createOrEditFreshsalesAccount($event, freshsalesAccount)" md-cell class="remoteUri ">{{freshsalesAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(freshsalesAccount, $event )" translate="INTEGRATIONS.EDIT_FRESHSALESACCOUNT">\n Edit FreshsalesAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(freshsalesAccount, $event )" translate="INTEGRATIONS.TEST_FRESHSALESACCOUNT">\n Test FreshsalesAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(freshsalesAccount, $event )" translate="INTEGRATIONS.DELETE_FRESHSALESACCOUNT">\n Delete FreshsalesAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.freshsalesAccounts.count}}" md-on-paginate="vm.getFreshsalesAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / FRESHSALESACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD FRESHSALESACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-freshsalesAccount-button" ng-click="vm.createOrEditFreshsalesAccount($event)" aria-label="add freshsalesAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_FRESHSALESACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD FRESHSALESACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/salesforceAccounts/create/dialog.html",'<md-dialog class="salesforceAccount-dialog" aria-label="New SalesforceAccount">\n <form name="salesforceAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.salesforceAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="salesforceAccountForm[\'name\'].$error" ng-show="salesforceAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.salesforceAccount.type" required>\n\n <md-option ng-value="\'integrationTab\'"> {{ \'INTEGRATIONS.INTEGRATION_TAB\' | translate }} </md-option>\n\n <md-option ng-value="\'newTab\'"> {{ \'INTEGRATIONS.NEW_TAB\' | translate }} </md-option>\n </md-select>\n <div ng-messages="salesforceAccountForm[\'type\'].$error" ng-show="salesforceAccountForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.salesforceAccount.username" ng-required="true">\n\n <div ng-messages="salesforceAccountForm[\'username\'].$error" ng-show="salesforceAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.salesforceAccount.remoteUri" ng-required="true">\n\n <div ng-messages="salesforceAccountForm[\'remoteUri\'].$error" ng-show="salesforceAccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.salesforceAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="salesforceAccountForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTID">ClientId</label>\n <input type="text" name="clientId" ng-model="vm.salesforceAccount.clientId" ng-required="true">\n\n <div ng-messages="salesforceAccountForm[\'clientId\'].$error" ng-show="salesforceAccountForm[\'clientId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTID_REQUIRED">ClientId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTSECRET">ClientSecret</label>\n <input type="text" name="clientSecret" ng-model="vm.salesforceAccount.clientSecret" ng-required="true">\n\n <div ng-messages="salesforceAccountForm[\'clientSecret\'].$error" ng-show="salesforceAccountForm[\'clientSecret\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTSECRET_REQUIRED">ClientSecret field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.SECURITYTOKEN">SecurityToken</label>\n <input type="text" name="securityToken" ng-model="vm.salesforceAccount.securityToken" ng-required="true">\n\n <div ng-messages="salesforceAccountForm[\'securityToken\'].$error" ng-show="salesforceAccountForm[\'securityToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.SECURITYTOKEN_REQUIRED">SecurityToken field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.salesforceAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="salesforceAccountForm[\'serverUrl\'].$error" ng-show="salesforceAccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.salesforceAccount.description">\n\n <div ng-messages="salesforceAccountForm[\'description\'].$error" ng-show="salesforceAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newSalesforceAccount" ng-click="vm.saveSalesforceAccount()" class="send-button md-accent md-raised" ng-disabled="salesforceAccountForm.$invalid || salesforceAccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newSalesforceAccount" ng-click="vm.addNewSalesforceAccount()" class="send-button md-accent md-raised" ng-disabled="salesforceAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_SALESFORCEACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_SALESFORCEACCOUNT">\n ADD SALESFORCEACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newSalesforceAccount" ng-click="vm.deleteSalesforceAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/salesforceAccounts/edit/configurations/dialog.html",'<md-dialog class="salesforceConfiguration-dialog" aria-label="New SalesforceConfiguration">\n <form name="salesforceConfigurationForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="" name="name" ng-model="vm.salesforceConfiguration.name" ng-required="true" autofocus>\n\n <div ng-messages="salesforceConfigurationForm[\'name\'].$error" ng-show="salesforceConfigurationForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.salesforceConfiguration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="salesforceConfigurationForm[\'channel\'].$error" ng-show="salesforceConfigurationForm[\'channel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.salesforceConfiguration.type" required>\n\n <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }} </md-option>\n\n <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="salesforceConfigurationForm[\'type\'].$error" ng-show="salesforceConfigurationForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TICKETTYPE">TicketType</label>\n <md-select name="ticketType" ng-model="vm.salesforceConfiguration.ticketType" required>\n\n <md-option ng-value="\'Task\'"> {{ \'INTEGRATIONS.TASK\' | translate }} </md-option>\n\n <md-option ng-value="\'Case\'"> {{ \'INTEGRATIONS.CASE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="salesforceConfigurationForm[\'ticketType\'].$error" ng-show="salesforceConfigurationForm[\'ticketType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TICKETTYPE_REQUIRED">TicketType field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newSalesforceConfiguration" ng-click="vm.saveSalesforceConfiguration()" class="send-button md-accent md-raised" ng-disabled="salesforceConfigurationForm.$invalid || salesforceConfigurationForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newSalesforceConfiguration" ng-click="vm.addNewSalesforceConfiguration()" class="send-button md-accent md-raised" ng-disabled="salesforceConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_SALESFORCECONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_SALESFORCECONFIGURATION">\n ADD SALESFORCECONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newSalesforceConfiguration" ng-click="vm.deleteSalesforceConfiguration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/salesforceAccounts/edit/item/dialog.html",'<md-dialog class="salesforceAccount-item-dialog" aria-label="New Item">\n <form name="salesforceAccountItemForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div ng-switch="vm.type">\n <div ng-switch-when="subject">\n \x3c!-- SUBJECT SECTION --\x3e\n <div ng-include="\'/subject.html\'"></div>\n \x3c!-- / SUBJECT SECTION --\x3e\n </div>\n <div ng-switch-when="description">\n \x3c!-- DESCRIPTION SECTION --\x3e\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="keyValue">Key Value</md-option>\n </md-select>\n <div ng-messages="salesforceAccountItemForm.type.$error" ng-show="salesforceAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="salesforceAccountItemForm.content.$error" ng-show="salesforceAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.item.type == \'keyValue\'">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n <div ng-messages="salesforceAccountItemForm.key.$error" ng-show="salesforceAccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="keyType" ng-model="vm.item.keyType" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="salesforceAccountItemForm.keyType.$error" ng-show="salesforceAccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n <div ng-messages="salesforceAccountItemForm.keyContent.$error" ng-show="salesforceAccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="salesforceAccountItemForm.variableName.$error" ng-show="salesforceAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}\n </md-option>\n </md-select>\n </md-input-container>\n </div>\n \x3c!-- / DESCRIPTION SECTION --\x3e\n </div>\n <div ng-switch-when="field">\n \x3c!-- FIELD SECTION --\x3e\n <div ng-if="vm.accountConnected">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.FIELD">FIELD</label>\n \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="salesforceAccountItemForm.customField.$error" ng-show="salesforceAccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\n </div>\n <div ng-if="!vm.accountConnected">\n <p>Account is not connected. Please check your configurations!</p>\n </div>\n \x3c!-- / FIELD SECTION --\x3e\n </div>\n <div ng-switch-default>\n <p>No Item</p>\n </div>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="salesforceAccountItemForm.$invalid || salesforceAccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="salesforceAccountItemForm.$invalid || salesforceAccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n ADD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n <md-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="salesforceAccountItemForm.type.$error" ng-show="salesforceAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <md-select name="option" ng-model="vm.item.content" required>\n <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n </md-select>\n\n <div ng-messages="salesforceAccountItemForm.option.$error" ng-show="salesforceAccountItemForm.option.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="salesforceAccountItemForm.content.$error" ng-show="salesforceAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="salesforceAccountItemForm.variableName.$error" ng-show="salesforceAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!--/ value --\x3e\n\n<\/script>\n\n<script type="text/ng-template" id="/subject.html">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="salesforceAccountItemForm.type.$error" ng-show="salesforceAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n \n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="salesforceAccountItemForm.content.$error"\n ng-show="salesforceAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="salesforceAccountItemForm.variableName.$error"\n ng-show="salesforceAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n <\/script>'),e.put("app/main/apps/integrations/views/salesforceAccounts/edit/view.html",'<div id="integrations-salesforceAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-salesforceAccounts-button md-icon-button" aria-label="Go to salesforceAccounts" ng-click="vm.gotoSalesforceAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_SALESFORCEACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="salesforceAccount-image" hide-xs>\n <img ng-src="assets/images/business/salesforceAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.salesforceAccount.id}}\n <span ng-if="vm.salesforceAccount.name">{{vm.salesforceAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.salesforceAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveSalesforceAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (configurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="salesforceAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.salesforceAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.salesforceAccount.type" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'integrationTab\'"> {{ \'INTEGRATIONS.INTEGRATION_TAB\' | translate }} </md-option>\n\n <md-option ng-value="\'newTab\'"> {{ \'INTEGRATIONS.NEW_TAB\' | translate }} </md-option>\n </md-select>\n <div ng-messages="generalForm[\'type\'].$error" ng-show="generalForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.salesforceAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.salesforceAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.salesforceAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="generalForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTID">ClientId</label>\n <input type="text" name="clientId" ng-model="vm.salesforceAccount.clientId" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'clientId\'].$error" ng-show="generalForm[\'clientId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTID_REQUIRED">ClientId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTSECRET">ClientSecret</label>\n <input type="text" name="clientSecret" ng-model="vm.salesforceAccount.clientSecret" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'clientSecret\'].$error" ng-show="generalForm[\'clientSecret\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTSECRET_REQUIRED">ClientSecret field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.SECURITYTOKEN">SecurityToken</label>\n <input type="text" name="securityToken" ng-model="vm.salesforceAccount.securityToken" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'securityToken\'].$error" ng-show="generalForm[\'securityToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.SECURITYTOKEN_REQUIRED">SecurityToken field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.salesforceAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.salesforceAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="salesforceAccount-detail-form-container configurations md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</div>\n </div>\n <div ng-controller="SalesforceAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.salesforceAccount, vm.crudPermissions)" layout="row">\n <md-card class="md-whiteframe-1dp" flex="30">\n <div layout="row" layout-align="center center">\n <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n <md-button flex="25" ng-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditSalesforceConfiguration($event)" class="md-icon-button" aria-label="create salesforceConfiguration">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n <md-list>\n <md-list-item layout="row" layout-align="center center" ng-repeat="salesforceConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedSalesforceConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getSalesforceConfiguration($index)">\n <span class="text-truncate" flex="80">{{ salesforceConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteSalesforceConfiguration($event, salesforceConfiguration)" translate="INTEGRATIONS.DELETE_SALESFORCECONFIGURATION">\n Delete SalesforceConfiguration\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-list-item>\n </md-list>\n </md-card>\n <div flex></div>\n <md-card class="md-whiteframe-1dp" flex="65">\n <md-tabs ng-if="vm_cc.configurations.length" md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n <span ng-if="subject.FieldId">{{subject.nameField || subject.idField}}</span>\n <span ng-if="!subject.FieldId">{{subject.type}}</span>\n </td>\n <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n <span ng-switch-when="string">{{subject.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{subject.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{subject.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{subject.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n Edit Subject\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n Delete Subject\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n <span ng-if="description.FieldId">{{description.nameField || description.idField}}</span>\n <span ng-if="!description.FieldId">{{description.type}}</span>\n </td>\n <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n <span ng-switch-when="string">{{description.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{description.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{description.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{description.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n Edit Description\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n Delete Description\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.FIELDS">FIELDS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.field = query" on-collapse="vm_cc.query.field = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditField($event)" aria-label="add field" translate translate-attr-label="INTEGRATIONS.ADD_FIELD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedFields.length}} {{vm_cc.selectedFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedFields($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedFields">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="field" md-select-id="id" ng-repeat="field in vm_cc.fields | filter: vm_cc.query.field">\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="id ">{{field.id}}</td>\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="type ">\n <span ng-if="field.FieldId">{{field.nameField || field.idField}}</span>\n <span ng-if="!field.FieldId">{{field.type}}</span>\n </td>\n <td ng-switch="field.type" ng-click="vm_cc.createOrEditField($event, field)" md-cell>\n <span ng-switch-when="string">{{field.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{field.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{field.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{field.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditField($event, field)" translate="INTEGRATIONS.EDIT_FIELD">\n Edit Field\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteFieldConfirm($event, field)" translate="INTEGRATIONS.DELETE_FIELD">\n Delete Field\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ADVANCED">\n ADVANCED\n </span>\n </md-tab-label>\n <md-tab-body>\n <div layout-margin>\n <label translate="INTEGRATIONS.MODULE_SEARCH"></label>\n <md-select ng-model="vm_cc.salesforceConfiguration.moduleSearch" ng-change="vm_cc.selectChangedAdvanced()" ng-disabled="!vm_cc.crudPermissions.canEdit">\n <md-option ng-value="option.key" ng-repeat="option in [{key: \'account_contact_lead\', value: \'Account & Contact & Lead\'}, {key: \'contact_lead\', value: \'Contact & Lead\'}, {key: \'contact\', value: \'Contact\'}, {key: \'lead\', value: \'Lead\'}, {key: \'account\', value: \'Account\'}]">\n {{ option.value }}</md-option>\n </md-select>\n </div>\n <div layout-margin>\n <label translate="INTEGRATIONS.MODULE_CREATE"></label>\n <md-select ng-model="vm_cc.salesforceConfiguration.moduleCreate" ng-change="vm_cc.selectChangedAdvanced()" ng-disabled="!vm_cc.crudPermissions.canEdit">\n <md-option ng-value="option.key" ng-repeat="option in [{key: \'nothing\', value: \'Nothing\'}, {key: \'contact\', value: \'Contact\'}, {key: \'lead\', value: \'Lead\'}, {key: \'account\', value: \'Account\'}]">\n {{ option.value }}</md-option>\n </md-select>\n </div>\n\n <div layout-margin ng-if="vm_cc.salesforceConfiguration.isLead">\n <label translate="INTEGRATIONS.LEADID"></label>\n <md-input-container class="md-block">\n <input ng-model="vm_cc.salesforceConfiguration.leadId" type="text">\n </md-input-container>\n <div class="hint"><span translate="INTEGRATIONS.HELP.LEADID"></span></div>\n </div>\n\n <div layout-margin ng-if="vm_cc.salesforceConfiguration.isAccountSearch">\n <label translate="INTEGRATIONS.ADDITIONALSEARCHACCOUNT"></label>\n <md-input-container class="md-block">\n <input ng-model="vm_cc.salesforceConfiguration.additionalSearchAccount" type="text">\n </md-input-container>\n <div class="hint"><span translate="INTEGRATIONS.HELP.ADDITIONALSEARCHACCOUNT"></span></div>\n </div>\n\n <div layout-margin ng-if="vm_cc.salesforceConfiguration.isContactSearch">\n <label translate="INTEGRATIONS.ADDITIONALSEARCHCONTACT"></label>\n <md-input-container class="md-block">\n <input ng-model="vm_cc.salesforceConfiguration.additionalSearchContact" type="text">\n </md-input-container>\n <div class="hint"><span translate="INTEGRATIONS.HELP.ADDITIONALSEARCHCONTACT"></span></div>\n </div>\n\n <div layout-margin ng-if="vm_cc.salesforceConfiguration.isLeadSearch">\n <label translate="INTEGRATIONS.ADDITIONALSEARCHLEAD"></label>\n <md-input-container class="md-block">\n <input ng-model="vm_cc.salesforceConfiguration.additionalSearchLead" type="text">\n </md-input-container>\n <div class="hint"><span translate="INTEGRATIONS.HELP.ADDITIONALSEARCHLEAD"></span></div>\n </div>\n\n <md-button type="submit" ng-click="vm_cc.saveSalesforceConfiguration()" ng-disabled="!vm_cc.crudPermissions.canEdit" class="send-button md-accent md-raised" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n </md-tab-body>\n </md-tab>\n\n\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditSalesforceConfiguration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n </div>\n </div>\n </md-card>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/salesforceAccounts/salesforceAccounts.html",'<div id="salesforceAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="INTEGRATIONS.SALESFORCEACCOUNTS">SalesforceAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedSalesforceAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedSalesforceAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="INTEGRATIONS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-salesforceAccounts-count">\n <span>{{vm.selectedSalesforceAccounts.length}}</span>\n <span translate="INTEGRATIONS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="INTEGRATIONS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllSalesforceAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectSalesforceAccounts()" translate="INTEGRATIONS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedSalesforceAccounts" csv-label="true" filename="salesforceAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedSalesforceAccounts($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- SALESFORCEACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedSalesforceAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getSalesforceAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n <th md-column md-order-by="username">{{ \'INTEGRATIONS.USERNAME\' | translate }}</th>\n <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.URI\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.salesforceAccounts.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="salesforceAccount" md-select-id="id" ng-repeat="salesforceAccount in vm.salesforceAccounts.rows">\n <td md-cell ng-if="salesforceAccount.userpic"><img class="avatar" alt="{{salesforceAccount.name}}" ng-src="api/users/{{salesforceAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!salesforceAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{salesforceAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(salesforceAccount, ev) : vm.createOrEditSalesforceAccount($event, salesforceAccount)" md-cell class="id ">{{salesforceAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(salesforceAccount, ev) : vm.createOrEditSalesforceAccount($event, salesforceAccount)" md-cell class="name ">{{salesforceAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(salesforceAccount, ev) : vm.createOrEditSalesforceAccount($event, salesforceAccount)" md-cell class="username ">{{salesforceAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(salesforceAccount, ev) : vm.createOrEditSalesforceAccount($event, salesforceAccount)" md-cell class="remoteUri ">{{salesforceAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(salesforceAccount, $event )" translate="INTEGRATIONS.EDIT_SALESFORCEACCOUNT">\n Edit SalesforceAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(salesforceAccount, $event )" translate="INTEGRATIONS.TEST_SALESFORCEACCOUNT">\n Test SalesforceAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(salesforceAccount, $event )" translate="INTEGRATIONS.DELETE_SALESFORCEACCOUNT">\n Delete SalesforceAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.salesforceAccounts.count}}" md-on-paginate="vm.getSalesforceAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / SALESFORCEACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD SALESFORCEACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-salesforceAccount-button" ng-click="vm.createOrEditSalesforceAccount($event)" aria-label="add salesforceAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_SALESFORCEACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD SALESFORCEACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/servicenowAccounts/create/dialog.html",'<md-dialog class="servicenowAccount-dialog" aria-label="New ServicenowAccount">\n <form name="servicenowAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.servicenowAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="servicenowAccountForm[\'name\'].$error" ng-show="servicenowAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.servicenowAccount.username" ng-required="true">\n\n <div ng-messages="servicenowAccountForm[\'username\'].$error" ng-show="servicenowAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.servicenowAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="servicenowAccountForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.servicenowAccount.email" ng-required="true">\n\n <div ng-messages="servicenowAccountForm[\'email\'].$error" ng-show="servicenowAccountForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="INTEGRATIONS.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.HOST">Host</label>\n <input type="url" name="remoteUri" ng-model="vm.servicenowAccount.remoteUri" ng-required="true">\n\n <div ng-messages="servicenowAccountForm[\'remoteUri\'].$error" ng-show="servicenowAccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.HOST_REQUIRED">Host field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.HOST_MUST_VALID_URL">Host must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.servicenowAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="servicenowAccountForm[\'serverUrl\'].$error" ng-show="servicenowAccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.servicenowAccount.description">\n\n <div ng-messages="servicenowAccountForm[\'description\'].$error" ng-show="servicenowAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newServicenowAccount" ng-click="vm.saveServicenowAccount()" class="send-button md-accent md-raised" ng-disabled="servicenowAccountForm.$invalid || servicenowAccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newServicenowAccount" ng-click="vm.addNewServicenowAccount()" class="send-button md-accent md-raised" ng-disabled="servicenowAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_SERVICENOWACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_SERVICENOWACCOUNT">\n ADD SERVICENOWACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newServicenowAccount" ng-click="vm.deleteServicenowAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/servicenowAccounts/edit/configurations/dialog.html",'<md-dialog class="servicenowConfiguration-dialog" aria-label="New ServicenowConfiguration">\n <form name="servicenowConfigurationForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="" name="name" ng-model="vm.servicenowConfiguration.name" ng-required="true" autofocus>\n\n <div ng-messages="servicenowConfigurationForm[\'name\'].$error" ng-show="servicenowConfigurationForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.servicenowConfiguration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="servicenowConfigurationForm[\'channel\'].$error" ng-show="servicenowConfigurationForm[\'channel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.servicenowConfiguration.type" required>\n\n <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }} </md-option>\n\n <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="servicenowConfigurationForm[\'type\'].$error" ng-show="servicenowConfigurationForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newServicenowConfiguration" ng-click="vm.saveServicenowConfiguration()" class="send-button md-accent md-raised" ng-disabled="servicenowConfigurationForm.$invalid || servicenowConfigurationForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newServicenowConfiguration" ng-click="vm.addNewServicenowConfiguration()" class="send-button md-accent md-raised" ng-disabled="servicenowConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_SERVICENOWCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_SERVICENOWCONFIGURATION">\n ADD SERVICENOWCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newServicenowConfiguration" ng-click="vm.deleteServicenowConfiguration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/servicenowAccounts/edit/item/dialog.html",'<md-dialog class="servicenowAccount-item-dialog" aria-label="New Item">\n <form name="servicenowAccountItemForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div ng-switch="vm.type">\n <div ng-switch-when="subject">\n \x3c!-- SUBJECT SECTION --\x3e\n <div ng-include="\'/subject.html\'"></div>\n \x3c!-- / SUBJECT SECTION --\x3e\n </div>\n <div ng-switch-when="description">\n \x3c!-- DESCRIPTION SECTION --\x3e\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="keyValue">Key Value</md-option>\n </md-select>\n <div ng-messages="servicenowAccountItemForm.type.$error" ng-show="servicenowAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="servicenowAccountItemForm.content.$error" ng-show="servicenowAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.item.type == \'keyValue\'">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n <div ng-messages="servicenowAccountItemForm.key.$error" ng-show="servicenowAccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="keyType" ng-model="vm.item.keyType" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="servicenowAccountItemForm.keyType.$error" ng-show="servicenowAccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n <div ng-messages="servicenowAccountItemForm.keyContent.$error" ng-show="servicenowAccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="servicenowAccountItemForm.variableName.$error" ng-show="servicenowAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}\n </md-option>\n </md-select>\n </md-input-container>\n </div>\n \x3c!-- / DESCRIPTION SECTION --\x3e\n </div>\n <div ng-switch-when="field">\n \x3c!-- FIELD SECTION --\x3e\n <div ng-if="vm.accountConnected">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.FIELD">FIELD</label>\n \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="servicenowAccountItemForm.customField.$error" ng-show="servicenowAccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\n </div>\n <div ng-if="!vm.accountConnected">\n <p>Account is not connected. Please check your configurations!</p>\n </div>\n \x3c!-- / FIELD SECTION --\x3e\n </div>\n <div ng-switch-default>\n <p>No Item</p>\n </div>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="servicenowAccountItemForm.$invalid || servicenowAccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="servicenowAccountItemForm.$invalid || servicenowAccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n ADD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n <md-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="servicenowAccountItemForm.type.$error" ng-show="servicenowAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <md-select name="option" ng-model="vm.item.content" required>\n <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n </md-select>\n\n <div ng-messages="servicenowAccountItemForm.option.$error" ng-show="servicenowAccountItemForm.option.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="servicenowAccountItemForm.content.$error" ng-show="servicenowAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="servicenowAccountItemForm.variableName.$error" ng-show="servicenowAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!--/ value --\x3e\n\n<\/script>\n\n<script type="text/ng-template" id="/subject.html">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="servicenowAccountItemForm.type.$error" ng-show="servicenowAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n \n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="servicenowAccountItemForm.content.$error"\n ng-show="servicenowAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="servicenowAccountItemForm.variableName.$error"\n ng-show="servicenowAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n <\/script>'),e.put("app/main/apps/integrations/views/servicenowAccounts/edit/view.html",'<div id="integrations-servicenowAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-servicenowAccounts-button md-icon-button" aria-label="Go to servicenowAccounts" ng-click="vm.gotoServicenowAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_SERVICENOWACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="servicenowAccount-image" hide-xs>\n <img ng-src="assets/images/business/servicenowAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.servicenowAccount.id}}\n <span ng-if="vm.servicenowAccount.name">{{vm.servicenowAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.servicenowAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveServicenowAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (configurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="servicenowAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.servicenowAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.servicenowAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.servicenowAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="generalForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.servicenowAccount.email" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'email\'].$error" ng-show="generalForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="INTEGRATIONS.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.HOST">Host</label>\n <input type="url" name="remoteUri" ng-model="vm.servicenowAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.HOST_REQUIRED">Host field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.HOST_MUST_VALID_URL">Host must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.servicenowAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.servicenowAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="servicenowAccount-detail-form-container configurations md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</div>\n </div>\n <div ng-controller="ServicenowAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.servicenowAccount, vm.crudPermissions)" layout="row">\n <md-card class="md-whiteframe-1dp" flex="30">\n <div layout="row" layout-align="center center">\n <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n <md-button flex="25" ng-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditServicenowConfiguration($event)" class="md-icon-button" aria-label="create servicenowConfiguration">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n <md-list>\n <md-list-item layout="row" layout-align="center center" ng-repeat="servicenowConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedServicenowConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getServicenowConfiguration($index)">\n <span class="text-truncate" flex="80">{{ servicenowConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteServicenowConfiguration($event, servicenowConfiguration)" translate="INTEGRATIONS.DELETE_SERVICENOWCONFIGURATION">\n Delete ServicenowConfiguration\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-list-item>\n </md-list>\n </md-card>\n <div flex></div>\n <md-card class="md-whiteframe-1dp" flex="65">\n <md-tabs ng-if="vm_cc.configurations.length" md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n <span ng-if="subject.FieldId">{{subject.nameField || subject.idField}}</span>\n <span ng-if="!subject.FieldId">{{subject.type}}</span>\n </td>\n <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n <span ng-switch-when="string">{{subject.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{subject.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{subject.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{subject.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n Edit Subject\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n Delete Subject\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n <span ng-if="description.FieldId">{{description.nameField || description.idField}}</span>\n <span ng-if="!description.FieldId">{{description.type}}</span>\n </td>\n <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n <span ng-switch-when="string">{{description.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{description.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{description.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{description.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n Edit Description\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n Delete Description\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditServicenowConfiguration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n </div>\n </div>\n </md-card>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/servicenowAccounts/servicenowAccounts.html",'<div id="servicenowAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="INTEGRATIONS.SERVICENOWACCOUNTS">ServicenowAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedServicenowAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedServicenowAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="INTEGRATIONS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-servicenowAccounts-count">\n <span>{{vm.selectedServicenowAccounts.length}}</span>\n <span translate="INTEGRATIONS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="INTEGRATIONS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllServicenowAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectServicenowAccounts()" translate="INTEGRATIONS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedServicenowAccounts" csv-label="true" filename="servicenowAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedServicenowAccounts($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- SERVICENOWACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedServicenowAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getServicenowAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n <th md-column md-order-by="username">{{ \'INTEGRATIONS.USERNAME\' | translate }}</th>\n <th md-column md-order-by="email">{{ \'INTEGRATIONS.EMAIL\' | translate }}</th>\n <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.HOST\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.servicenowAccounts.rows.length">\n <td md-cell colspan="6">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="servicenowAccount" md-select-id="id" ng-repeat="servicenowAccount in vm.servicenowAccounts.rows">\n <td md-cell ng-if="servicenowAccount.userpic"><img class="avatar" alt="{{servicenowAccount.name}}" ng-src="api/users/{{servicenowAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!servicenowAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{servicenowAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(servicenowAccount, ev) : vm.createOrEditServicenowAccount($event, servicenowAccount)" md-cell class="id ">{{servicenowAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(servicenowAccount, ev) : vm.createOrEditServicenowAccount($event, servicenowAccount)" md-cell class="name ">{{servicenowAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(servicenowAccount, ev) : vm.createOrEditServicenowAccount($event, servicenowAccount)" md-cell class="username ">{{servicenowAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(servicenowAccount, ev) : vm.createOrEditServicenowAccount($event, servicenowAccount)" md-cell class="email ">{{servicenowAccount.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(servicenowAccount, ev) : vm.createOrEditServicenowAccount($event, servicenowAccount)" md-cell class="remoteUri ">{{servicenowAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(servicenowAccount, $event )" translate="INTEGRATIONS.EDIT_SERVICENOWACCOUNT">\n Edit ServicenowAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(servicenowAccount, $event )" translate="INTEGRATIONS.TEST_SERVICENOWACCOUNT">\n Test ServicenowAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.crudPermissions === 0 || vm.currentUser.role === \'admin\'">\n\n <md-button ng-click="vm.deleteconfirm(servicenowAccount, $event )" translate="INTEGRATIONS.DELETE_SERVICENOWACCOUNT">\n Delete ServicenowAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.servicenowAccounts.count}}" md-on-paginate="vm.getServicenowAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / SERVICENOWACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD SERVICENOWACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-servicenowAccount-button" ng-click="vm.createOrEditServicenowAccount($event)" aria-label="add servicenowAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_SERVICENOWACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD SERVICENOWACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/sugarcrmAccounts/create/dialog.html",'<md-dialog class="sugarcrmAccount-dialog" aria-label="New SugarcrmAccount">\n <form name="sugarcrmAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.sugarcrmAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="sugarcrmAccountForm[\'name\'].$error" ng-show="sugarcrmAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.sugarcrmAccount.username" ng-required="true">\n\n <div ng-messages="sugarcrmAccountForm[\'username\'].$error" ng-show="sugarcrmAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.sugarcrmAccount.remoteUri" ng-required="true">\n\n <div ng-messages="sugarcrmAccountForm[\'remoteUri\'].$error" ng-show="sugarcrmAccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.sugarcrmAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="sugarcrmAccountForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.sugarcrmAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="sugarcrmAccountForm[\'serverUrl\'].$error" ng-show="sugarcrmAccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.sugarcrmAccount.description">\n\n <div ng-messages="sugarcrmAccountForm[\'description\'].$error" ng-show="sugarcrmAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newSugarcrmAccount" ng-click="vm.saveSugarcrmAccount()" class="send-button md-accent md-raised" ng-disabled="sugarcrmAccountForm.$invalid || sugarcrmAccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newSugarcrmAccount" ng-click="vm.addNewSugarcrmAccount()" class="send-button md-accent md-raised" ng-disabled="sugarcrmAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_SUGARCRMACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_SUGARCRMACCOUNT">\n ADD SUGARCRMACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newSugarcrmAccount" ng-click="vm.deleteSugarcrmAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/sugarcrmAccounts/edit/configurations/dialog.html",'<md-dialog class="sugarcrmConfiguration-dialog" aria-label="New SugarcrmConfiguration">\n <form name="sugarcrmConfigurationForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="" name="name" ng-model="vm.sugarcrmConfiguration.name" ng-required="true" autofocus>\n\n <div ng-messages="sugarcrmConfigurationForm[\'name\'].$error" ng-show="sugarcrmConfigurationForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.sugarcrmConfiguration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="sugarcrmConfigurationForm[\'channel\'].$error" ng-show="sugarcrmConfigurationForm[\'channel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.sugarcrmConfiguration.type" required>\n\n <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }} </md-option>\n\n <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="sugarcrmConfigurationForm[\'type\'].$error" ng-show="sugarcrmConfigurationForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newSugarcrmConfiguration" ng-click="vm.saveSugarcrmConfiguration()" class="send-button md-accent md-raised" ng-disabled="sugarcrmConfigurationForm.$invalid || sugarcrmConfigurationForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newSugarcrmConfiguration" ng-click="vm.addNewSugarcrmConfiguration()" class="send-button md-accent md-raised" ng-disabled="sugarcrmConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_SUGARCRMCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_SUGARCRMCONFIGURATION">\n ADD SUGARCRMCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newSugarcrmConfiguration" ng-click="vm.deleteSugarcrmConfiguration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/sugarcrmAccounts/edit/item/dialog.html",'<md-dialog class="sugarcrmAccount-item-dialog" aria-label="New Item">\n <form name="sugarcrmAccountItemForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div ng-switch="vm.type">\n <div ng-switch-when="subject">\n \x3c!-- SUBJECT SECTION --\x3e\n <div ng-include="\'/subject.html\'"></div>\n \x3c!-- / SUBJECT SECTION --\x3e\n </div>\n <div ng-switch-when="description">\n \x3c!-- DESCRIPTION SECTION --\x3e\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="keyValue">Key Value</md-option>\n </md-select>\n <div ng-messages="sugarcrmAccountItemForm.type.$error" ng-show="sugarcrmAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="sugarcrmAccountItemForm.content.$error" ng-show="sugarcrmAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.item.type == \'keyValue\'">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n <div ng-messages="sugarcrmAccountItemForm.key.$error" ng-show="sugarcrmAccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="keyType" ng-model="vm.item.keyType" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="sugarcrmAccountItemForm.keyType.$error" ng-show="sugarcrmAccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n <div ng-messages="sugarcrmAccountItemForm.keyContent.$error" ng-show="sugarcrmAccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="sugarcrmAccountItemForm.variableName.$error" ng-show="sugarcrmAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}\n </md-option>\n </md-select>\n </md-input-container>\n </div>\n \x3c!-- / DESCRIPTION SECTION --\x3e\n </div>\n <div ng-switch-when="field">\n \x3c!-- FIELD SECTION --\x3e\n <div ng-if="vm.accountConnected">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.FIELD">FIELD</label>\n \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="sugarcrmAccountItemForm.customField.$error" ng-show="sugarcrmAccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\n </div>\n <div ng-if="!vm.accountConnected">\n <p>Account is not connected. Please check your configurations!</p>\n </div>\n \x3c!-- / FIELD SECTION --\x3e\n </div>\n <div ng-switch-default>\n <p>No Item</p>\n </div>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="sugarcrmAccountItemForm.$invalid || sugarcrmAccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="sugarcrmAccountItemForm.$invalid || sugarcrmAccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n ADD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n <md-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="sugarcrmAccountItemForm.type.$error" ng-show="sugarcrmAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <md-select name="option" ng-model="vm.item.content" required>\n <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n </md-select>\n\n <div ng-messages="sugarcrmAccountItemForm.option.$error" ng-show="sugarcrmAccountItemForm.option.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="sugarcrmAccountItemForm.content.$error" ng-show="sugarcrmAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="sugarcrmAccountItemForm.variableName.$error" ng-show="sugarcrmAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!--/ value --\x3e\n\n<\/script>\n\n<script type="text/ng-template" id="/subject.html">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="sugarcrmAccountItemForm.type.$error" ng-show="sugarcrmAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n \n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="sugarcrmAccountItemForm.content.$error"\n ng-show="sugarcrmAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="sugarcrmAccountItemForm.variableName.$error"\n ng-show="sugarcrmAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n <\/script>'),e.put("app/main/apps/integrations/views/sugarcrmAccounts/edit/view.html",'<div id="integrations-sugarcrmAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-sugarcrmAccounts-button md-icon-button" aria-label="Go to sugarcrmAccounts" ng-click="vm.gotoSugarcrmAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_SUGARCRMACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="sugarcrmAccount-image" hide-xs>\n <img ng-src="assets/images/business/sugarcrmAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.sugarcrmAccount.id}}\n <span ng-if="vm.sugarcrmAccount.name">{{vm.sugarcrmAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.sugarcrmAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveSugarcrmAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (configurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="sugarcrmAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.sugarcrmAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.sugarcrmAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.sugarcrmAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.sugarcrmAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="generalForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.sugarcrmAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.sugarcrmAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="sugarcrmAccount-detail-form-container configurations md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</div>\n </div>\n <div ng-controller="SugarcrmAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.sugarcrmAccount, vm.crudPermissions)" layout="row">\n <md-card class="md-whiteframe-1dp" flex="30">\n <div layout="row" layout-align="center center">\n <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n <md-button flex="25" ng-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditSugarcrmConfiguration($event)" class="md-icon-button" aria-label="create sugarcrmConfiguration">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n <md-list>\n <md-list-item layout="row" layout-align="center center" ng-repeat="sugarcrmConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedSugarcrmConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getSugarcrmConfiguration($index)">\n <span class="text-truncate" flex="80">{{ sugarcrmConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteSugarcrmConfiguration($event, sugarcrmConfiguration)" translate="INTEGRATIONS.DELETE_SUGARCRMCONFIGURATION">\n Delete SugarcrmConfiguration\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-list-item>\n </md-list>\n </md-card>\n <div flex></div>\n <md-card class="md-whiteframe-1dp" flex="65">\n <md-tabs ng-if="vm_cc.configurations.length" md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n <span ng-if="subject.FieldId">{{subject.nameField || subject.idField}}</span>\n <span ng-if="!subject.FieldId">{{subject.type}}</span>\n </td>\n <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n <span ng-switch-when="string">{{subject.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{subject.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{subject.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{subject.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n Edit Subject\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n Delete Subject\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n <span ng-if="description.FieldId">{{description.nameField || description.idField}}</span>\n <span ng-if="!description.FieldId">{{description.type}}</span>\n </td>\n <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n <span ng-switch-when="string">{{description.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{description.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{description.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{description.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n Edit Description\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n Delete Description\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.FIELDS">FIELDS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.field = query" on-collapse="vm_cc.query.field = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditField($event)" aria-label="add field" translate translate-attr-label="INTEGRATIONS.ADD_FIELD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedFields.length}} {{vm_cc.selectedFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedFields($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedFields">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="field" md-select-id="id" ng-repeat="field in vm_cc.fields | filter: vm_cc.query.field">\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="id ">{{field.id}}</td>\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="type ">\n <span ng-if="field.FieldId">{{field.nameField || field.idField}}</span>\n <span ng-if="!field.FieldId">{{field.type}}</span>\n </td>\n <td ng-switch="field.type" ng-click="vm_cc.createOrEditField($event, field)" md-cell>\n <span ng-switch-when="string">{{field.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{field.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{field.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{field.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditField($event, field)" translate="INTEGRATIONS.EDIT_FIELD">\n Edit Field\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteFieldConfirm($event, field)" translate="INTEGRATIONS.DELETE_FIELD">\n Delete Field\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditSugarcrmConfiguration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n </div>\n </div>\n </md-card>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/sugarcrmAccounts/sugarcrmAccounts.html",'<div id="sugarcrmAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="INTEGRATIONS.SUGARCRMACCOUNTS">SugarcrmAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedSugarcrmAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedSugarcrmAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="INTEGRATIONS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-sugarcrmAccounts-count">\n <span>{{vm.selectedSugarcrmAccounts.length}}</span>\n <span translate="INTEGRATIONS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="INTEGRATIONS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllSugarcrmAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectSugarcrmAccounts()" translate="INTEGRATIONS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedSugarcrmAccounts" csv-label="true" filename="sugarcrmAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedSugarcrmAccounts($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- SUGARCRMACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedSugarcrmAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getSugarcrmAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n <th md-column md-order-by="username">{{ \'INTEGRATIONS.USERNAME\' | translate }}</th>\n <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.URI\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.sugarcrmAccounts.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="sugarcrmAccount" md-select-id="id" ng-repeat="sugarcrmAccount in vm.sugarcrmAccounts.rows">\n <td md-cell ng-if="sugarcrmAccount.userpic"><img class="avatar" alt="{{sugarcrmAccount.name}}" ng-src="api/users/{{sugarcrmAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!sugarcrmAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{sugarcrmAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(sugarcrmAccount, ev) : vm.createOrEditSugarcrmAccount($event, sugarcrmAccount)" md-cell class="id ">{{sugarcrmAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(sugarcrmAccount, ev) : vm.createOrEditSugarcrmAccount($event, sugarcrmAccount)" md-cell class="name ">{{sugarcrmAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(sugarcrmAccount, ev) : vm.createOrEditSugarcrmAccount($event, sugarcrmAccount)" md-cell class="username ">{{sugarcrmAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(sugarcrmAccount, ev) : vm.createOrEditSugarcrmAccount($event, sugarcrmAccount)" md-cell class="remoteUri ">{{sugarcrmAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(sugarcrmAccount, $event )" translate="INTEGRATIONS.EDIT_SUGARCRMACCOUNT">\n Edit SugarcrmAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(sugarcrmAccount, $event )" translate="INTEGRATIONS.TEST_SUGARCRMACCOUNT">\n Test SugarcrmAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.deleteconfirm(sugarcrmAccount, $event )" translate="INTEGRATIONS.DELETE_SUGARCRMACCOUNT">\n Delete SugarcrmAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.sugarcrmAccounts.count}}" md-on-paginate="vm.getSugarcrmAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / SUGARCRMACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD SUGARCRMACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-sugarcrmAccount-button" ng-click="vm.createOrEditSugarcrmAccount($event)" aria-label="add sugarcrmAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_SUGARCRMACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD SUGARCRMACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/vtigerAccounts/create/dialog.html",'<md-dialog class="vtigerAccount-dialog" aria-label="New VtigerAccount">\n <form name="vtigerAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.vtigerAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="vtigerAccountForm[\'name\'].$error" ng-show="vtigerAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.vtigerAccount.description">\n\n <div ng-messages="vtigerAccountForm[\'description\'].$error" ng-show="vtigerAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.VTIGER_USER_NAME">vTiger_User_Name</label>\n <input type="text" name="username" ng-model="vm.vtigerAccount.username" ng-required="true">\n\n <div ng-messages="vtigerAccountForm[\'username\'].$error" ng-show="vtigerAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VTIGER_USER_NAME_REQUIRED">vTiger_User_Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.ACCESS_KEY">Access_Key</label>\n <input type="text" name="accessKey" ng-model="vm.vtigerAccount.accessKey" ng-required="true">\n\n <div ng-messages="vtigerAccountForm[\'accessKey\'].$error" ng-show="vtigerAccountForm[\'accessKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.ACCESS_KEY_REQUIRED">Access_Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.HOST">Host</label>\n <input type="url" name="remoteUri" ng-model="vm.vtigerAccount.remoteUri" ng-required="true">\n\n <div ng-messages="vtigerAccountForm[\'remoteUri\'].$error" ng-show="vtigerAccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.HOST_REQUIRED">Host field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.HOST_MUST_VALID_URL">Host must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.vtigerAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="vtigerAccountForm[\'serverUrl\'].$error" ng-show="vtigerAccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newVtigerAccount" ng-click="vm.saveVtigerAccount()" class="send-button md-accent md-raised" ng-disabled="vtigerAccountForm.$invalid || vtigerAccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newVtigerAccount" ng-click="vm.addNewVtigerAccount()" class="send-button md-accent md-raised" ng-disabled="vtigerAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_VTIGERACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_VTIGERACCOUNT">\n ADD VTIGERACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newVtigerAccount" ng-click="vm.deleteVtigerAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/vtigerAccounts/edit/configurations/dialog.html",'<md-dialog class="vtigerConfiguration-dialog" aria-label="New VtigerConfiguration">\n <form name="vtigerConfigurationForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="" name="name" ng-model="vm.vtigerConfiguration.name" ng-required="true" autofocus>\n\n <div ng-messages="vtigerConfigurationForm[\'name\'].$error" ng-show="vtigerConfigurationForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.vtigerConfiguration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="vtigerConfigurationForm[\'channel\'].$error" ng-show="vtigerConfigurationForm[\'channel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.vtigerConfiguration.type" required>\n\n <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }} </md-option>\n\n <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="vtigerConfigurationForm[\'type\'].$error" ng-show="vtigerConfigurationForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newVtigerConfiguration" ng-click="vm.saveVtigerConfiguration()" class="send-button md-accent md-raised" ng-disabled="vtigerConfigurationForm.$invalid || vtigerConfigurationForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newVtigerConfiguration" ng-click="vm.addNewVtigerConfiguration()" class="send-button md-accent md-raised" ng-disabled="vtigerConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_VTIGERCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_VTIGERCONFIGURATION">\n ADD VTIGERCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newVtigerConfiguration" ng-click="vm.deleteVtigerConfiguration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/vtigerAccounts/edit/item/dialog.html",'<md-dialog class="vtigerAccount-item-dialog" aria-label="New Item">\n <form name="vtigerAccountItemForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div ng-switch="vm.type">\n <div ng-switch-when="subject">\n \x3c!-- SUBJECT SECTION --\x3e\n <div ng-include="\'/subject.html\'"></div>\n \x3c!-- / SUBJECT SECTION --\x3e\n </div>\n <div ng-switch-when="description">\n \x3c!-- DESCRIPTION SECTION --\x3e\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="keyValue">Key Value</md-option>\n </md-select>\n <div ng-messages="vtigerAccountItemForm.type.$error" ng-show="vtigerAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="vtigerAccountItemForm.content.$error" ng-show="vtigerAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.item.type == \'keyValue\'">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n <div ng-messages="vtigerAccountItemForm.key.$error" ng-show="vtigerAccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="keyType" ng-model="vm.item.keyType" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="vtigerAccountItemForm.keyType.$error" ng-show="vtigerAccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n <div ng-messages="vtigerAccountItemForm.keyContent.$error" ng-show="vtigerAccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="vtigerAccountItemForm.variableName.$error" ng-show="vtigerAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}\n </md-option>\n </md-select>\n </md-input-container>\n </div>\n \x3c!-- / DESCRIPTION SECTION --\x3e\n </div>\n <div ng-switch-when="field">\n \x3c!-- FIELD SECTION --\x3e\n <div ng-if="vm.accountConnected">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.FIELD">FIELD</label>\n \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="vtigerAccountItemForm.customField.$error" ng-show="vtigerAccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\n </div>\n <div ng-if="!vm.accountConnected">\n <p>Account is not connected. Please check your configurations!</p>\n </div>\n \x3c!-- / FIELD SECTION --\x3e\n </div>\n <div ng-switch-default>\n <p>No Item</p>\n </div>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="vtigerAccountItemForm.$invalid || vtigerAccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="vtigerAccountItemForm.$invalid || vtigerAccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n ADD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n <md-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="vtigerAccountItemForm.type.$error" ng-show="vtigerAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <md-select name="option" ng-model="vm.item.content" required>\n <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n </md-select>\n\n <div ng-messages="vtigerAccountItemForm.option.$error" ng-show="vtigerAccountItemForm.option.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="vtigerAccountItemForm.content.$error" ng-show="vtigerAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="vtigerAccountItemForm.variableName.$error" ng-show="vtigerAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!--/ value --\x3e\n\n<\/script>\n\n<script type="text/ng-template" id="/subject.html">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="vtigerAccountItemForm.type.$error" ng-show="vtigerAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n \n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="vtigerAccountItemForm.content.$error"\n ng-show="vtigerAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="vtigerAccountItemForm.variableName.$error"\n ng-show="vtigerAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n <\/script>'),e.put("app/main/apps/integrations/views/vtigerAccounts/edit/view.html",'<div id="integrations-vtigerAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-vtigerAccounts-button md-icon-button" aria-label="Go to vtigerAccounts" ng-click="vm.gotoVtigerAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_VTIGERACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="vtigerAccount-image" hide-xs>\n <img ng-src="assets/images/business/vtigerAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.vtigerAccount.id}}\n <span ng-if="vm.vtigerAccount.name">{{vm.vtigerAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.vtigerAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveVtigerAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (configurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="vtigerAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.vtigerAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.vtigerAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.VTIGER_USER_NAME">vTiger_User_Name</label>\n <input type="text" name="username" ng-model="vm.vtigerAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VTIGER_USER_NAME_REQUIRED">vTiger_User_Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.ACCESS_KEY">Access_Key</label>\n <input type="text" name="accessKey" ng-model="vm.vtigerAccount.accessKey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'accessKey\'].$error" ng-show="generalForm[\'accessKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.ACCESS_KEY_REQUIRED">Access_Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.HOST">Host</label>\n <input type="url" name="remoteUri" ng-model="vm.vtigerAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.HOST_REQUIRED">Host field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.HOST_MUST_VALID_URL">Host must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.vtigerAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="vtigerAccount-detail-form-container configurations md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</div>\n </div>\n <div ng-controller="VtigerAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.vtigerAccount, vm.crudPermissions)" layout="row">\n <md-card class="md-whiteframe-1dp" flex="30">\n <div layout="row" layout-align="center center">\n <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n <md-button flex="25" ng-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditVtigerConfiguration($event)" class="md-icon-button" aria-label="create vtigerConfiguration">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n <md-list>\n <md-list-item layout="row" layout-align="center center" ng-repeat="vtigerConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedVtigerConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getVtigerConfiguration($index)">\n <span class="text-truncate" flex="80">{{ vtigerConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteVtigerConfiguration($event, vtigerConfiguration)" translate="INTEGRATIONS.DELETE_VTIGERCONFIGURATION">\n Delete VtigerConfiguration\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-list-item>\n </md-list>\n </md-card>\n <div flex></div>\n <md-card class="md-whiteframe-1dp" flex="65">\n <md-tabs ng-if="vm_cc.configurations.length" md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n <span ng-if="subject.FieldId">{{subject.nameField || subject.idField}}</span>\n <span ng-if="!subject.FieldId">{{subject.type}}</span>\n </td>\n <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n <span ng-switch-when="string">{{subject.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{subject.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{subject.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{subject.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n Edit Subject\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n Delete Subject\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n <span ng-if="description.FieldId">{{description.nameField || description.idField}}</span>\n <span ng-if="!description.FieldId">{{description.type}}</span>\n </td>\n <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n <span ng-switch-when="string">{{description.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{description.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{description.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{description.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n Edit Description\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n Delete Description\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.FIELDS">FIELDS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.field = query" on-collapse="vm_cc.query.field = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditField($event)" aria-label="add field" translate translate-attr-label="INTEGRATIONS.ADD_FIELD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedFields.length}} {{vm_cc.selectedFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedFields($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedFields">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="field" md-select-id="id" ng-repeat="field in vm_cc.fields | filter: vm_cc.query.field">\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="id ">{{field.id}}</td>\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="type ">\n <span ng-if="field.FieldId">{{field.nameField || field.idField}}</span>\n <span ng-if="!field.FieldId">{{field.type}}</span>\n </td>\n <td ng-switch="field.type" ng-click="vm_cc.createOrEditField($event, field)" md-cell>\n <span ng-switch-when="string">{{field.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{field.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{field.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{field.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditField($event, field)" translate="INTEGRATIONS.EDIT_FIELD">\n Edit Field\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteFieldConfirm($event, field)" translate="INTEGRATIONS.DELETE_FIELD">\n Delete Field\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditVtigerConfiguration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n </div>\n </div>\n </md-card>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/vtigerAccounts/vtigerAccounts.html",'<div id="vtigerAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="INTEGRATIONS.VTIGERACCOUNTS">VtigerAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedVtigerAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedVtigerAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="INTEGRATIONS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-vtigerAccounts-count">\n <span>{{vm.selectedVtigerAccounts.length}}</span>\n <span translate="INTEGRATIONS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="INTEGRATIONS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllVtigerAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectVtigerAccounts()" translate="INTEGRATIONS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedVtigerAccounts" csv-label="true" filename="vtigerAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedVtigerAccounts($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- VTIGERACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedVtigerAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVtigerAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n <th md-column md-order-by="username">{{ \'INTEGRATIONS.VTIGER_USER_NAME\' | translate }}</th>\n <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.HOST\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.vtigerAccounts.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="vtigerAccount" md-select-id="id" ng-repeat="vtigerAccount in vm.vtigerAccounts.rows">\n <td md-cell ng-if="vtigerAccount.userpic"><img class="avatar" alt="{{vtigerAccount.name}}" ng-src="api/users/{{vtigerAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!vtigerAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{vtigerAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(vtigerAccount, ev) : vm.createOrEditVtigerAccount($event, vtigerAccount)" md-cell class="id ">{{vtigerAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(vtigerAccount, ev) : vm.createOrEditVtigerAccount($event, vtigerAccount)" md-cell class="name ">{{vtigerAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(vtigerAccount, ev) : vm.createOrEditVtigerAccount($event, vtigerAccount)" md-cell class="username ">{{vtigerAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(vtigerAccount, ev) : vm.createOrEditVtigerAccount($event, vtigerAccount)" md-cell class="remoteUri ">{{vtigerAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(vtigerAccount, $event )" translate="INTEGRATIONS.EDIT_VTIGERACCOUNT">\n Edit VtigerAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(vtigerAccount, $event )" translate="INTEGRATIONS.TEST_VTIGERACCOUNT">\n Test VtigerAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(vtigerAccount, $event )" translate="INTEGRATIONS.DELETE_VTIGERACCOUNT">\n Delete VtigerAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.vtigerAccounts.count}}" md-on-paginate="vm.getVtigerAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / VTIGERACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD VTIGERACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-vtigerAccount-button" ng-click="vm.createOrEditVtigerAccount($event)" aria-label="add vtigerAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_VTIGERACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD VTIGERACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/zendeskAccounts/create/dialog.html",'<md-dialog class="zendeskAccount-dialog" aria-label="New ZendeskAccount">\n <form name="zendeskAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.zendeskAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="zendeskAccountForm[\'name\'].$error" ng-show="zendeskAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.zendeskAccount.type" required>\n\n <md-option ng-value="\'integrationTab\'"> {{ \'INTEGRATIONS.INTEGRATION_TAB\' | translate }} </md-option>\n\n <md-option ng-value="\'newTab\'"> {{ \'INTEGRATIONS.NEW_TAB\' | translate }} </md-option>\n </md-select>\n <div ng-messages="zendeskAccountForm[\'type\'].$error" ng-show="zendeskAccountForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.zendeskAccount.username" ng-required="true">\n\n <div ng-messages="zendeskAccountForm[\'username\'].$error" ng-show="zendeskAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.zendeskAccount.remoteUri" ng-required="true">\n\n <div ng-messages="zendeskAccountForm[\'remoteUri\'].$error" ng-show="zendeskAccountForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.AUTHTYPE">AuthType</label>\n <md-select name="authType" ng-model="vm.zendeskAccount.authType" required>\n <md-option ng-value="\'password\'">Password</md-option>\n <md-option ng-value="\'token\'">Token</md-option>\n </md-select>\n <div ng-messages="zendeskAccountForm[\'authType\'].$error" ng-show="zendeskAccountForm[\'authType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.AUTHTYPE_REQUIRED">AuthType field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.zendeskAccount.authType == \'password\'">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.zendeskAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="zendeskAccountForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container ng-if="vm.zendeskAccount.authType == \'token\'" class="md-block">\n <label translate="INTEGRATIONS.TOKEN">Token</label>\n <input type="text" name="token" ng-model="vm.zendeskAccount.token" ng-required="true">\n\n <div ng-messages="zendeskAccountForm[\'token\'].$error" ng-show="zendeskAccountForm[\'token\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TOKEN_REQUIRED">Token field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.zendeskAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="zendeskAccountForm[\'serverUrl\'].$error" ng-show="zendeskAccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.zendeskAccount.description">\n\n <div ng-messages="zendeskAccountForm[\'description\'].$error" ng-show="zendeskAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newZendeskAccount" ng-click="vm.saveZendeskAccount()" class="send-button md-accent md-raised" ng-disabled="zendeskAccountForm.$invalid || zendeskAccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newZendeskAccount" ng-click="vm.addNewZendeskAccount()" class="send-button md-accent md-raised" ng-disabled="zendeskAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_ZENDESKACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_ZENDESKACCOUNT">\n ADD ZENDESKACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newZendeskAccount" ng-click="vm.deleteZendeskAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/zendeskAccounts/edit/item/dialog.html",'<md-dialog class="zendeskAccount-item-dialog" aria-label="New Item">\n <form name="zendeskAccountItemForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div ng-switch="vm.type">\n <div ng-switch-when="subject">\n \x3c!-- SUBJECT SECTION --\x3e\n <div ng-include="\'/subject.html\'"></div>\n \x3c!-- / SUBJECT SECTION --\x3e\n </div>\n <div ng-switch-when="description">\n \x3c!-- DESCRIPTION SECTION --\x3e\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="keyValue">Key Value</md-option>\n </md-select>\n <div ng-messages="zendeskAccountItemForm.type.$error" ng-show="zendeskAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="zendeskAccountItemForm.content.$error" ng-show="zendeskAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.item.type == \'keyValue\'">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n <div ng-messages="zendeskAccountItemForm.key.$error" ng-show="zendeskAccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="keyType" ng-model="vm.item.keyType" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="zendeskAccountItemForm.keyType.$error" ng-show="zendeskAccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n <div ng-messages="zendeskAccountItemForm.keyContent.$error" ng-show="zendeskAccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="zendeskAccountItemForm.variableName.$error" ng-show="zendeskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}\n </md-option>\n </md-select>\n </md-input-container>\n </div>\n \x3c!-- / DESCRIPTION SECTION --\x3e\n </div>\n <div ng-switch-when="field">\n \x3c!-- FIELD SECTION --\x3e\n <div ng-if="vm.accountConnected">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.FIELD">FIELD</label>\n \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="zendeskAccountItemForm.customField.$error" ng-show="zendeskAccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\n </div>\n <div ng-if="!vm.accountConnected">\n <p>Account is not connected. Please check your configurations!</p>\n </div>\n \x3c!-- / FIELD SECTION --\x3e\n </div>\n <div ng-switch-default>\n <p>No Item</p>\n </div>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="zendeskAccountItemForm.$invalid || zendeskAccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="zendeskAccountItemForm.$invalid || zendeskAccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n ADD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n <md-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="zendeskAccountItemForm.type.$error" ng-show="zendeskAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <md-select name="option" ng-model="vm.item.content" required>\n <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n </md-select>\n\n <div ng-messages="zendeskAccountItemForm.option.$error" ng-show="zendeskAccountItemForm.option.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="zendeskAccountItemForm.content.$error" ng-show="zendeskAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="zendeskAccountItemForm.variableName.$error" ng-show="zendeskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!--/ value --\x3e\n\n<\/script>\n\n<script type="text/ng-template" id="/subject.html">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="zendeskAccountItemForm.type.$error" ng-show="zendeskAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n \n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="zendeskAccountItemForm.content.$error"\n ng-show="zendeskAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="zendeskAccountItemForm.variableName.$error"\n ng-show="zendeskAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n <\/script>'),e.put("app/main/apps/integrations/views/zendeskAccounts/edit/view.html",'<div id="integrations-zendeskAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-zendeskAccounts-button md-icon-button" aria-label="Go to zendeskAccounts" ng-click="vm.gotoZendeskAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_ZENDESKACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="zendeskAccount-image" hide-xs>\n <img ng-src="assets/images/business/zendeskAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.zendeskAccount.id}}\n <span ng-if="vm.zendeskAccount.name">{{vm.zendeskAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.zendeskAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveZendeskAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (zendeskConfigurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="zendeskAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.zendeskAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.zendeskAccount.type" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'integrationTab\'"> {{ \'INTEGRATIONS.INTEGRATION_TAB\' | translate }} </md-option>\n\n <md-option ng-value="\'newTab\'"> {{ \'INTEGRATIONS.NEW_TAB\' | translate }} </md-option>\n </md-select>\n <div ng-messages="generalForm[\'type\'].$error" ng-show="generalForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.zendeskAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.URI">Uri</label>\n <input type="url" name="remoteUri" ng-model="vm.zendeskAccount.remoteUri" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'remoteUri\'].$error" ng-show="generalForm[\'remoteUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.URI_REQUIRED">Uri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.URI_MUST_VALID_URL">Uri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.AUTHTYPE">AuthType</label>\n <md-select name="authType" ng-model="vm.zendeskAccount.authType" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'password\'">Password</md-option>\n <md-option ng-value="\'token\'">Token</md-option>\n </md-select>\n <div ng-messages="generalForm[\'authType\'].$error" ng-show="generalForm[\'authType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.AUTHTYPE_REQUIRED">AuthType field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.zendeskAccount.authType == \'password\'">\n <label translate="INTEGRATIONS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.zendeskAccount.password" placeholder="Password" translate translate-attr-placeholder="INTEGRATIONS.PASSWORD" required>\n <div ng-messages="generalForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="INTEGRATIONS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container ng-if="vm.zendeskAccount.authType == \'token\'" class="md-block">\n <label translate="INTEGRATIONS.TOKEN">Token</label>\n <input type="text" name="token" ng-model="vm.zendeskAccount.token" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'token\'].$error" ng-show="generalForm[\'token\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TOKEN_REQUIRED">Token field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.zendeskAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.zendeskAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="zendeskAccount-detail-form-container zendeskconfigurations md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.ZENDESKCONFIGURATIONS">ZENDESKCONFIGURATIONS</div>\n </div>\n <div ng-controller="ZendeskAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.zendeskAccount, vm.crudPermissions)" layout="row">\n <md-card class="md-whiteframe-1dp" flex="30">\n <div layout="row" layout-align="center center">\n <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n <md-button flex="25" ng-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditZendeskConfiguration($event)" class="md-icon-button" aria-label="create zendeskConfiguration">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n <md-list>\n <md-list-item layout="row" layout-align="center center" ng-repeat="zendeskConfiguration in vm_cc.zendeskConfigurations" class="border-top" md-colors="{background: (vm_cc.selectedZendeskConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getZendeskConfiguration($index)">\n <span class="text-truncate" flex="80">{{ zendeskConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteZendeskConfiguration($event, zendeskConfiguration)" translate="INTEGRATIONS.DELETE_ZENDESKCONFIGURATION">\n Delete ZendeskConfiguration\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-list-item>\n </md-list>\n </md-card>\n <div flex></div>\n <md-card class="md-whiteframe-1dp" flex="65">\n <md-tabs ng-if="vm_cc.zendeskConfigurations.length" md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n <span ng-if="subject.FieldId">{{subject.nameField || subject.idField}}</span>\n <span ng-if="!subject.FieldId">{{subject.type}}</span>\n </td>\n <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n <span ng-switch-when="string">{{subject.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{subject.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{subject.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{subject.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n Edit Subject\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n Delete Subject\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n <span ng-if="description.FieldId">{{description.nameField || description.idField}}</span>\n <span ng-if="!description.FieldId">{{description.type}}</span>\n </td>\n <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n <span ng-switch-when="string">{{description.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{description.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{description.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{description.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n Edit Description\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n Delete Description\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.FIELDS">FIELDS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.field = query" on-collapse="vm_cc.query.field = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditField($event)" aria-label="add field" translate translate-attr-label="INTEGRATIONS.ADD_FIELD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedFields.length}} {{vm_cc.selectedFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedFields($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedFields">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="field" md-select-id="id" ng-repeat="field in vm_cc.fields | filter: vm_cc.query.field">\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="id ">{{field.id}}</td>\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="type ">\n <span ng-if="field.FieldId">{{field.nameField || field.idField}}</span>\n <span ng-if="!field.FieldId">{{field.type}}</span>\n </td>\n <td ng-switch="field.type" ng-click="vm_cc.createOrEditField($event, field)" md-cell>\n <span ng-switch-when="string">{{field.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{field.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{field.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{field.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditField($event, field)" translate="INTEGRATIONS.EDIT_FIELD">\n Edit Field\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteFieldConfirm($event, field)" translate="INTEGRATIONS.DELETE_FIELD">\n Delete Field\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.TAGS">TAGS</span>\n </md-tab-label>\n <md-tab-body>\n <md-table-container class="md-whiteframe-1dp padding-20">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TAGS">Tags</label>\n <md-select ng-model="vm_cc.selectedTags" ng-change="vm_cc.selectTagsChanged($event)" multiple>\n <md-option ng-value="tag.id" ng-repeat="tag in vm_cc.tags">{{ tag.name }}</md-option>\n </md-select>\n </md-input-container>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.zendeskConfigurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditZendeskConfiguration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n </div>\n </div>\n </md-card>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/zendeskAccounts/edit/zendeskConfigurations/dialog.html",'<md-dialog class="zendeskConfiguration-dialog" aria-label="New ZendeskConfiguration">\n <form name="zendeskConfigurationForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="" name="name" ng-model="vm.zendeskConfiguration.name" ng-required="true" autofocus>\n\n <div ng-messages="zendeskConfigurationForm[\'name\'].$error" ng-show="zendeskConfigurationForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.zendeskConfiguration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="zendeskConfigurationForm[\'channel\'].$error" ng-show="zendeskConfigurationForm[\'channel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.zendeskConfiguration.type" required>\n\n <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }} </md-option>\n\n <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="zendeskConfigurationForm[\'type\'].$error" ng-show="zendeskConfigurationForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newZendeskConfiguration" ng-click="vm.saveZendeskConfiguration()" class="send-button md-accent md-raised" ng-disabled="zendeskConfigurationForm.$invalid || zendeskConfigurationForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newZendeskConfiguration" ng-click="vm.addNewZendeskConfiguration()" class="send-button md-accent md-raised" ng-disabled="zendeskConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_ZENDESKCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_ZENDESKCONFIGURATION">\n ADD ZENDESKCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newZendeskConfiguration" ng-click="vm.deleteZendeskConfiguration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/zendeskAccounts/zendeskAccounts.html",'<div id="zendeskAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="INTEGRATIONS.ZENDESKACCOUNTS">ZendeskAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedZendeskAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedZendeskAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="INTEGRATIONS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-zendeskAccounts-count">\n <span>{{vm.selectedZendeskAccounts.length}}</span>\n <span translate="INTEGRATIONS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="INTEGRATIONS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllZendeskAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectZendeskAccounts()" translate="INTEGRATIONS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedZendeskAccounts" csv-label="true" filename="zendeskAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedZendeskAccounts($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- ZENDESKACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedZendeskAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getZendeskAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n <th md-column md-order-by="username">{{ \'INTEGRATIONS.USERNAME\' | translate }}</th>\n <th md-column md-order-by="remoteUri">{{ \'INTEGRATIONS.URI\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.zendeskAccounts.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="zendeskAccount" md-select-id="id" ng-repeat="zendeskAccount in vm.zendeskAccounts.rows">\n <td md-cell ng-if="zendeskAccount.userpic"><img class="avatar" alt="{{zendeskAccount.name}}" ng-src="api/users/{{zendeskAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!zendeskAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{zendeskAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zendeskAccount, ev) : vm.createOrEditZendeskAccount($event, zendeskAccount)" md-cell class="id ">{{zendeskAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zendeskAccount, ev) : vm.createOrEditZendeskAccount($event, zendeskAccount)" md-cell class="name ">{{zendeskAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zendeskAccount, ev) : vm.createOrEditZendeskAccount($event, zendeskAccount)" md-cell class="username ">{{zendeskAccount.username}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zendeskAccount, ev) : vm.createOrEditZendeskAccount($event, zendeskAccount)" md-cell class="remoteUri ">{{zendeskAccount.remoteUri}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(zendeskAccount, $event )" translate="INTEGRATIONS.EDIT_ZENDESKACCOUNT">\n Edit ZendeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(zendeskAccount, $event )" translate="INTEGRATIONS.TEST_ZENDESKACCOUNT">\n Test ZendeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(zendeskAccount, $event )" translate="INTEGRATIONS.DELETE_ZENDESKACCOUNT">\n Delete ZendeskAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.zendeskAccounts.count}}" md-on-paginate="vm.getZendeskAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / ZENDESKACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD ZENDESKACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-zendeskAccount-button" ng-click="vm.createOrEditZendeskAccount($event)" aria-label="add zendeskAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_ZENDESKACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD ZENDESKACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/integrations/views/zohoAccounts/create/dialog.html",'<md-dialog class="zohoAccount-dialog" aria-label="New ZohoAccount">\n <form name="zohoAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.zohoAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="zohoAccountForm[\'name\'].$error" ng-show="zohoAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.HOST">Host</label>\n <md-select name="host" ng-model="vm.zohoAccount.host" required>\n <md-option ng-value="\'zoho.com\'">zoho.com</md-option>\n <md-option ng-value="\'zoho.eu\'">zoho.eu</md-option>\n </md-select>\n <div ng-messages="zohoAccountForm[\'host\'].$error" ng-show="zohoAccountForm[\'host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.HOST_REQUIRED">Host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.ZONE">Zone</label>\n <md-select name="zone" ng-model="vm.zohoAccount.zone" required>\n <md-option ng-value="\'US\'">US</md-option>\n <md-option ng-value="\'AU\'">AU</md-option>\n <md-option ng-value="\'EU\'">EU</md-option>\n <md-option ng-value="\'IN\'">IN</md-option>\n <md-option ng-value="\'CN\'">CN</md-option>\n </md-select>\n <div class="hint"><span translate="INTEGRATIONS.HELP.ZONE"></span></div>\n <div ng-messages="zohoAccountForm[\'zone\'].$error" ng-show="zohoAccountForm[\'zone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.ZONE_REQUIRED">Zone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTID">ClientId</label>\n <input type="text" name="clientId" ng-model="vm.zohoAccount.clientId" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.CLIENTID"></span></div>\n <div ng-messages="zohoAccountForm[\'clientId\'].$error" ng-show="zohoAccountForm[\'clientId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTID_REQUIRED">ClientId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTSECRET">ClientSecret</label>\n <input type="text" name="clientSecret" ng-model="vm.zohoAccount.clientSecret" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.CLIENTSECRET"></span></div>\n <div ng-messages="zohoAccountForm[\'clientSecret\'].$error" ng-show="zohoAccountForm[\'clientSecret\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTSECRET_REQUIRED">ClientSecret field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CODE">Code</label>\n <input type="text" name="code" ng-model="vm.zohoAccount.code" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.CODE"></span></div>\n <div ng-messages="zohoAccountForm[\'code\'].$error" ng-show="zohoAccountForm[\'code\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CODE_REQUIRED">Code field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.zohoAccount.serverUrl" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="zohoAccountForm[\'serverUrl\'].$error" ng-show="zohoAccountForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.zohoAccount.description">\n\n <div ng-messages="zohoAccountForm[\'description\'].$error" ng-show="zohoAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newZohoAccount" ng-click="vm.saveZohoAccount()" class="send-button md-accent md-raised" ng-disabled="zohoAccountForm.$invalid || zohoAccountForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newZohoAccount" ng-click="vm.addNewZohoAccount()" class="send-button md-accent md-raised" ng-disabled="zohoAccountForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_ZOHOACCOUNT" translate-attr-aria-label="INTEGRATIONS.ADD_ZOHOACCOUNT">\n ADD ZOHOACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newZohoAccount" ng-click="vm.deleteZohoAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/zohoAccounts/edit/configurations/dialog.html",'<md-dialog class="zohoConfiguration-dialog" aria-label="New ZohoConfiguration">\n <form name="zohoConfigurationForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="" name="name" ng-model="vm.zohoConfiguration.name" ng-required="true" autofocus>\n\n <div ng-messages="zohoConfigurationForm[\'name\'].$error" ng-show="zohoConfigurationForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.zohoConfiguration.channel" required>\n\n <md-option ng-value="\'voice\'"> {{ \'INTEGRATIONS.VOICE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="zohoConfigurationForm[\'channel\'].$error" ng-show="zohoConfigurationForm[\'channel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.zohoConfiguration.type" required>\n\n <md-option ng-value="\'inbound\'"> {{ \'INTEGRATIONS.INBOUND_IN_QUEUE\' | translate }} </md-option>\n\n <md-option ng-value="\'outbound\'"> {{ \'INTEGRATIONS.OUTBOUND_CALL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="zohoConfigurationForm[\'type\'].$error" ng-show="zohoConfigurationForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newZohoConfiguration" ng-click="vm.saveZohoConfiguration()" class="send-button md-accent md-raised" ng-disabled="zohoConfigurationForm.$invalid || zohoConfigurationForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newZohoConfiguration" ng-click="vm.addNewZohoConfiguration()" class="send-button md-accent md-raised" ng-disabled="zohoConfigurationForm.$invalid" aria-label="ADD" translate="INTEGRATIONS.ADD_ZOHOCONFIGURATION" translate-attr-aria-label="INTEGRATIONS.ADD_ZOHOCONFIGURATION">\n ADD ZOHOCONFIGURATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newZohoConfiguration" ng-click="vm.deleteZohoConfiguration($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/integrations/views/zohoAccounts/edit/item/dialog.html",'<md-dialog class="zohoAccount-item-dialog" aria-label="New Item">\n <form name="zohoAccountItemForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div ng-switch="vm.type">\n <div ng-switch-when="subject">\n \x3c!-- SUBJECT SECTION --\x3e\n <div ng-include="\'/subject.html\'"></div>\n \x3c!-- / SUBJECT SECTION --\x3e\n </div>\n <div ng-switch-when="description">\n \x3c!-- DESCRIPTION SECTION --\x3e\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="keyValue">Key Value</md-option>\n </md-select>\n <div ng-messages="zohoAccountItemForm.type.$error" ng-show="zohoAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="zohoAccountItemForm.content.$error" ng-show="zohoAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field\n is required</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.item.type == \'keyValue\'">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.item.key" required md-autofocus>\n <div ng-messages="zohoAccountItemForm.key.$error" ng-show="zohoAccountItemForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.KEY_REQUIRED">Key field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="keyType" ng-model="vm.item.keyType" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="zohoAccountItemForm.keyType.$error" ng-show="zohoAccountItemForm.keyType.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="keyContent" ng-model="vm.item.keyContent" required md-autofocus>\n <div ng-messages="zohoAccountItemForm.keyContent.$error" ng-show="zohoAccountItemForm.keyContent.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content\n field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="zohoAccountItemForm.variableName.$error" ng-show="zohoAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable\n name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.keyType == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}\n </md-option>\n </md-select>\n </md-input-container>\n </div>\n \x3c!-- / DESCRIPTION SECTION --\x3e\n </div>\n <div ng-switch-when="field">\n \x3c!-- FIELD SECTION --\x3e\n <div ng-if="vm.accountConnected">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.FIELD">FIELD</label>\n \x3c!-- ITEM TYPE DEFAULT VALUE is STRING --\x3e\n <md-select name="customField" ng-model="vm.customField" required ng-change="vm.item.type = \'string\'">\n\n <md-optgroup label="Standard">\n <md-option ng-value="standard" ng-repeat="standard in vm.fields | filter: {custom: false} ">{{standard.name}}\n </md-option>\n </md-optgroup>\n\n <md-optgroup label="Custom">\n <md-option ng-value="custom" ng-repeat="custom in vm.fields | filter: {custom: true} ">{{custom.name}}\n </md-option>\n </md-optgroup>\n\n </md-select>\n <div ng-messages="zohoAccountItemForm.customField.$error" ng-show="zohoAccountItemForm.customField.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.FIELD_REQUIRED">Field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!-- FIELDS --\x3e\n <div ng-if="vm.customField" ng-include="\'/fields.html\'"></div>\n \x3c!-- FIELDS --\x3e\n\n </div>\n <div ng-if="!vm.accountConnected">\n <p>Account is not connected. Please check your configurations!</p>\n </div>\n \x3c!-- / FIELD SECTION --\x3e\n </div>\n <div ng-switch-default>\n <p>No Item</p>\n </div>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newItem" ng-click="vm.saveItem()" class="send-button md-accent md-raised" ng-disabled="zohoAccountItemForm.$invalid || zohoAccountItemForm.$pristine" aria-label="SAVE" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newItem" ng-click="vm.addNewItem()" class="send-button md-accent md-raised" ng-disabled="zohoAccountItemForm.$invalid || zohoAccountItemForm.$pristine" aria-label="ADD" translate="INTEGRATIONS.ADD" translate-attr-aria-label="INTEGRATIONS.ADD">\n ADD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newItem" ng-click="vm.deleteItem($event)" aria-label="DELETE" translate translate-attr-aria-label="INTEGRATIONS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="INTEGRATIONS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>\n\n<script type="text/ng-template" id="/fields.html">\n\n \x3c!-- type --\x3e\n <md-input-container class="md-block">\n\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n <md-option ng-if="vm.customField.options.length" value="picklist">Picklist</md-option>\n </md-select>\n <div ng-messages="zohoAccountItemForm.type.$error" ng-show="zohoAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n\n \x3c!--/ type --\x3e\n\n \x3c!-- value --\x3e\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'picklist\'">\n \x3c!-- options --\x3e\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <md-select name="option" ng-model="vm.item.content" required>\n <md-option ng-value="option.value" ng-repeat="option in vm.customField.options">{{option.name}}</md-option>\n </md-select>\n\n <div ng-messages="zohoAccountItemForm.option.$error" ng-show="zohoAccountItemForm.option.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n\n <div ng-messages="zohoAccountItemForm.content.$error" ng-show="zohoAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()" required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="zohoAccountItemForm.variableName.$error" ng-show="zohoAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!--/ value --\x3e\n\n<\/script>\n\n<script type="text/ng-template" id="/subject.html">\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.item.type" required>\n <md-option value="string">String</md-option>\n <md-option value="variable">Variable</md-option>\n <md-option value="customVariable">Custom Variable</md-option>\n </md-select>\n <div ng-messages="zohoAccountItemForm.type.$error" ng-show="zohoAccountItemForm.type.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n \n <md-input-container class="md-block" ng-if="vm.item.type == \'string\'">\n <label translate="INTEGRATIONS.CONTENT">Content</label>\n <input type="text" name="content" ng-model="vm.item.content" required md-autofocus>\n <div ng-messages="zohoAccountItemForm.content.$error"\n ng-show="zohoAccountItemForm.content.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CONTENT_REQUIRED">Content field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'variable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select name="variableName" ng-model="vm.item.variableName" md-selected-text="vm.getSelectedVariable()"\n required>\n <md-optgroup label="Voice: Queue">\n <md-option ng-value="agentColumn" ng-repeat="agentColumn in vm.voiceAgentReportColumns">{{agentColumn}}\n </md-option>\n </md-optgroup>\n <md-optgroup label="Voice: Outbound">\n <md-option ng-value="dialColumn" ng-repeat="dialColumn in vm.voiceDialReportColumns">{{dialColumn}}\n </md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="zohoAccountItemForm.variableName.$error"\n ng-show="zohoAccountItemForm.variableName.$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.VARIABLENAME_REQUIRED">Variable name field is\n required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.item.type == \'customVariable\'">\n <label translate="INTEGRATIONS.VALUE">Value</label>\n <md-select ng-model="vm.item.VariableId" required>\n <md-option ng-value="variable.id" ng-repeat="variable in vm.variables">{{variable.name}}</md-option>\n </md-select>\n </md-input-container>\n <\/script>'),e.put("app/main/apps/integrations/views/zohoAccounts/edit/view.html",'<div id="integrations-zohoAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-zohoAccounts-button md-icon-button" aria-label="Go to zohoAccounts" ng-click="vm.gotoZohoAccounts()" translate translate-attr-aria-label="INTEGRATIONS.GO_TO_ZOHOACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="zohoAccount-image" hide-xs>\n <img ng-src="assets/images/business/zohoAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.zohoAccount.id}}\n <span ng-if="vm.zohoAccount.name">{{vm.zohoAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="INTEGRATIONS.CREATED_AT"></span> <span>{{vm.zohoAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveZohoAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (configurationsForm.$invalid)" translate="INTEGRATIONS.SAVE" translate-attr-aria-label="INTEGRATIONS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="zohoAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.zohoAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.HOST">Host</label>\n <md-select name="host" ng-model="vm.zohoAccount.host" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'zoho.com\'">zoho.com</md-option>\n <md-option ng-value="\'zoho.eu\'">zoho.eu</md-option>\n </md-select>\n <div ng-messages="generalForm[\'host\'].$error" ng-show="generalForm[\'host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.HOST_REQUIRED">Host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.ZONE">Zone</label>\n <md-select name="zone" ng-model="vm.zohoAccount.zone" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'US\'">US</md-option>\n <md-option ng-value="\'AU\'">AU</md-option>\n <md-option ng-value="\'EU\'">EU</md-option>\n <md-option ng-value="\'IN\'">IN</md-option>\n <md-option ng-value="\'CN\'">CN</md-option>\n </md-select>\n <div class="hint"><span translate="INTEGRATIONS.HELP.ZONE"></span></div>\n <div ng-messages="generalForm[\'zone\'].$error" ng-show="generalForm[\'zone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.ZONE_REQUIRED">Zone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTID">ClientId</label>\n <input type="text" name="clientId" ng-model="vm.zohoAccount.clientId" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.CLIENTID"></span></div>\n <div ng-messages="generalForm[\'clientId\'].$error" ng-show="generalForm[\'clientId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTID_REQUIRED">ClientId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CLIENTSECRET">ClientSecret</label>\n <input type="text" name="clientSecret" ng-model="vm.zohoAccount.clientSecret" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.CLIENTSECRET"></span></div>\n <div ng-messages="generalForm[\'clientSecret\'].$error" ng-show="generalForm[\'clientSecret\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CLIENTSECRET_REQUIRED">ClientSecret field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.CODE">Code</label>\n <input type="text" name="code" ng-model="vm.zohoAccount.code" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.CODE"></span></div>\n <div ng-messages="generalForm[\'code\'].$error" ng-show="generalForm[\'code\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.CODE_REQUIRED">Code field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.REFRESHTOKEN">RefreshToken</label>\n <input type="text" name="refreshToken" ng-model="vm.zohoAccount.refreshToken" disabled>\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.REFRESHTOKEN"></span></div>\n <div ng-messages="generalForm[\'refreshToken\'].$error" ng-show="generalForm[\'refreshToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.REFRESHTOKEN_REQUIRED">RefreshToken field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.MOTIONPROXYADDRESS">MotionProxyAddress</label>\n <input type="url" name="serverUrl" ng-model="vm.zohoAccount.serverUrl" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="INTEGRATIONS.HELP.MOTIONPROXYADDRESS"></span></div>\n <div ng-messages="generalForm[\'serverUrl\'].$error" ng-show="generalForm[\'serverUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_REQUIRED">MotionProxyAddress field is required</span>\n </div>\n <div ng-message="url">\n <span translate="INTEGRATIONS.ERRORS.MOTIONPROXYADDRESS_MUST_VALID_URL">MotionProxyAddress must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="INTEGRATIONS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.zohoAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="INTEGRATIONS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="zohoAccount-detail-form-container configurations md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="INTEGRATIONS.CONFIGURATIONS">CONFIGURATIONS</div>\n </div>\n <div ng-controller="ZohoAccountConfigurationsController as vm_cc" ng-init="vm_cc.init(vm.zohoAccount, vm.crudPermissions)" layout="row">\n <md-card class="md-whiteframe-1dp" flex="30">\n <div layout="row" layout-align="center center">\n <md-subheader flex="75" class="md-no-sticky">{{ \'INTEGRATIONS.CONFIGURATIONS\' | translate }}</md-subheader>\n <md-button flex="25" ng-if="vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditZohoConfiguration($event)" class="md-icon-button" aria-label="create zohoConfiguration">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n <md-list>\n <md-list-item layout="row" layout-align="center center" ng-repeat="zohoConfiguration in vm_cc.configurations" class="border-top" md-colors="{background: (vm_cc.selectedZohoConfiguration == $index ? \'accent\' : \'grey-A100\')}" ng-click="vm_cc.getZohoConfiguration($index)">\n <span class="text-truncate" flex="80">{{ zohoConfiguration.name }}</span>\n <md-menu ng-if="vm_cc.crudPermissions.canDelete">\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteZohoConfiguration($event, zohoConfiguration)" translate="INTEGRATIONS.DELETE_ZOHOCONFIGURATION">\n Delete ZohoConfiguration\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-list-item>\n </md-list>\n </md-card>\n <div flex></div>\n <md-card class="md-whiteframe-1dp" flex="65">\n <md-tabs ng-if="vm_cc.configurations.length" md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.SUBJECTS">SUBJECTS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.subject = query" on-collapse="vm_cc.query.subject = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditSubject($event)" aria-label="add subject" translate translate-attr-label="INTEGRATIONS.ADD_SUBJECT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedSubjects.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedSubjects.length}} {{vm_cc.selectedSubjects.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedSubjects($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedSubjects">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="subject" md-select-id="id" ng-repeat="subject in vm_cc.subjects | filter: vm_cc.query.subject">\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="id ">{{subject.id}}</td>\n <td ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell class="type ">\n <span ng-if="subject.FieldId">{{subject.nameField || subject.idField}}</span>\n <span ng-if="!subject.FieldId">{{subject.type}}</span>\n </td>\n <td ng-switch="subject.type" ng-click="vm_cc.createOrEditSubject($event, subject)" md-cell>\n <span ng-switch-when="string">{{subject.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{subject.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{subject.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{subject.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[subject.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{subject.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditSubject($event, subject)" translate="INTEGRATIONS.EDIT_SUBJECT">\n Edit Subject\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteSubjectConfirm($event, subject)" translate="INTEGRATIONS.DELETE_SUBJECT">\n Delete Subject\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.DESCRIPTIONS">DESCRIPTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.description = query" on-collapse="vm_cc.query.description = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditDescription($event)" aria-label="add description" translate translate-attr-label="INTEGRATIONS.ADD_DESCRIPTION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedDescriptions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedDescriptions.length}} {{vm_cc.selectedDescriptions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedDescriptions($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedDescriptions">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="description" md-select-id="id" ng-repeat="description in vm_cc.descriptions | filter: vm_cc.query.description">\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="id ">{{description.id}}</td>\n <td ng-click="vm_cc.createOrEditDescription($event, description)" md-cell class="type ">\n <span ng-if="description.FieldId">{{description.nameField || description.idField}}</span>\n <span ng-if="!description.FieldId">{{description.type}}</span>\n </td>\n <td ng-switch="description.type" ng-click="vm_cc.createOrEditDescription($event, description)" md-cell>\n <span ng-switch-when="string">{{description.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{description.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{description.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{description.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[description.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{description.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditDescription($event, description)" translate="INTEGRATIONS.EDIT_DESCRIPTION">\n Edit Description\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteDescriptionConfirm($event, description)" translate="INTEGRATIONS.DELETE_DESCRIPTION">\n Delete Description\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.FIELDS">FIELDS</span>\n </md-tab-label>\n <md-tab-body>\n <md-toolbar class="md-table-toolbar md-default no-padding" ng-hide="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <div flex></div>\n <ms-search-bar on-search="vm_cc.query.field = query" on-collapse="vm_cc.query.field = undefined" debounce="300"></ms-search-bar>\n <md-button ng-if="vm_cc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_cc.createOrEditField($event)" aria-label="add field" translate translate-attr-label="INTEGRATIONS.ADD_FIELD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_cc.selectedFields.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_cc.selectedFields.length}} {{vm_cc.selectedFields.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_cc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_cc.deleteSelectedFields($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="md-whiteframe-1dp padding-horizontal">\n <table md-table md-row-select multiple ng-model="vm_cc.selectedFields">\n <thead md-head>\n <tr md-row>\n <th md-column>{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.TYPE\' | translate }}</th>\n <th md-column>{{ \'INTEGRATIONS.CONTENT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="field" md-select-id="id" ng-repeat="field in vm_cc.fields | filter: vm_cc.query.field">\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="id ">{{field.id}}</td>\n <td ng-click="vm_cc.createOrEditField($event, field)" md-cell class="type ">\n <span ng-if="field.FieldId">{{field.nameField || field.idField}}</span>\n <span ng-if="!field.FieldId">{{field.type}}</span>\n </td>\n <td ng-switch="field.type" ng-click="vm_cc.createOrEditField($event, field)" md-cell>\n <span ng-switch-when="string">{{field.content}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n <span ng-switch-when="keyValue">\n {{field.key}}\n <span ng-switch="description.keyType">\n <span ng-switch-when="string">{{field.keyContent}}</span>\n <span ng-switch-when="variable" class="text-boxed">{{field.variableName}}</span>\n <span ng-switch-when="customVariable" class="text-boxed">{{ vm_cc.variablesById[field.VariableId].name }}</span>\n </span>\n </span>\n <span ng-switch-default>{{field.content}}</span>\n </td>\n <td md-cell class="actions" ng-if="!vm_cc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_cc.crudPermissions.canEdit">\n <md-button ng-click="vm_cc.createOrEditField($event, field)" translate="INTEGRATIONS.EDIT_FIELD">\n Edit Field\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_cc.crudPermissions.canDelete">\n <md-button ng-click="vm_cc.deleteFieldConfirm($event, field)" translate="INTEGRATIONS.DELETE_FIELD">\n Delete Field\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-tab-body>\n </md-tab>\n\n <md-tab>\n <md-tab-label>\n <span translate="INTEGRATIONS.ADVANCED">\n ADVANCED\n </span>\n </md-tab-label>\n <md-tab-body>\n <div layout-margin>\n <label translate="INTEGRATIONS.MODULE_SEARCH"></label>\n <md-select ng-model="vm_cc.zohoConfiguration.moduleSearch" ng-change="vm_cc.selectChangedAdvanced()" ng-disabled="!vm_cc.crudPermissions.canEdit">\n <md-option ng-value="option.key" ng-repeat="option in [{key: \'contact_lead\', value: \'Contact & Lead\'}, {key: \'contact\', value: \'Contact\'}, {key: \'lead\', value: \'Lead\'}]">\n {{ option.value }}</md-option>\n </md-select>\n </div>\n <div layout-margin>\n <label translate="INTEGRATIONS.MODULE_CREATE"></label>\n <md-select ng-model="vm_cc.zohoConfiguration.moduleCreate" ng-change="vm_cc.selectChangedAdvanced()" ng-disabled="!vm_cc.crudPermissions.canEdit">\n <md-option ng-value="option.key" ng-repeat="option in [{key: \'nothing\', value: \'Nothing\'}, {key: \'contact\', value: \'Contact\'}, {key: \'lead\', value: \'Lead\'}]">\n {{ option.value }}</md-option>\n </md-select>\n </div>\n </md-tab-body>\n </md-tab>\n\n\n </md-tabs>\n <div class="padding-20" ng-if="!vm_cc.configurations.length && vm_cc.crudPermissions.canEdit" ng-click="vm_cc.createOrEditZohoConfiguration($event)" layout="row" layout-sm="column" layout-align="center center" layout-wrap>\n <div class="padding-20 md-whiteframe-3dp md-accent-bg" layout="column" layout-align="center center">\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <span aria-label="add configuration" translate translate-attr-label="INTEGRATIONS.ADD_CONFIGURATION">ADD CONFIGURATION</span>\n </div>\n </div>\n </md-card>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/integrations/views/zohoAccounts/zohoAccounts.html",'<div id="zohoAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-heart" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="INTEGRATIONS.ZOHOACCOUNTS">ZohoAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="INTEGRATIONS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedZohoAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedZohoAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="INTEGRATIONS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-zohoAccounts-count">\n <span>{{vm.selectedZohoAccounts.length}}</span>\n <span translate="INTEGRATIONS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="INTEGRATIONS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllZohoAccounts()" translate="INTEGRATIONS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectZohoAccounts()" translate="INTEGRATIONS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedZohoAccounts" csv-label="true" filename="zohoAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedZohoAccounts($event)" aria-label="delete selected" translate translate-attr-label="INTEGRATIONS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- ZOHOACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedZohoAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getZohoAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'INTEGRATIONS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'INTEGRATIONS.NAME\' | translate }}</th>\n <th md-column md-order-by="host">{{ \'INTEGRATIONS.HOST\' | translate }}</th>\n <th md-column md-order-by="zone">{{ \'INTEGRATIONS.ZONE\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.zohoAccounts.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="INTEGRATIONS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="zohoAccount" md-select-id="id" ng-repeat="zohoAccount in vm.zohoAccounts.rows">\n <td md-cell ng-if="zohoAccount.userpic"><img class="avatar" alt="{{zohoAccount.name}}" ng-src="api/users/{{zohoAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!zohoAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{zohoAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zohoAccount, ev) : vm.createOrEditZohoAccount($event, zohoAccount)" md-cell class="id ">{{zohoAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zohoAccount, ev) : vm.createOrEditZohoAccount($event, zohoAccount)" md-cell class="name ">{{zohoAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zohoAccount, ev) : vm.createOrEditZohoAccount($event, zohoAccount)" md-cell class="host ">{{ vm.arrayhost[zohoAccount.host].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(zohoAccount, ev) : vm.createOrEditZohoAccount($event, zohoAccount)" md-cell class="zone ">{{ vm.arrayzone[zohoAccount.zone].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="INTEGRATIONS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(zohoAccount, $event )" translate="INTEGRATIONS.EDIT_ZOHOACCOUNT">\n Edit ZohoAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.testtestintegrationaccount(zohoAccount, $event )" translate="INTEGRATIONS.TEST_ZOHOACCOUNT">\n Test ZohoAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(zohoAccount, $event )" translate="INTEGRATIONS.DELETE_ZOHOACCOUNT">\n Delete ZohoAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'INTEGRATIONS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'INTEGRATIONS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'INTEGRATIONS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.zohoAccounts.count}}" md-on-paginate="vm.getZohoAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / ZOHOACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD ZOHOACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-zohoAccount-button" ng-click="vm.createOrEditZohoAccount($event)" aria-label="add zohoAccount" translate translate-attr-aria-label="INTEGRATIONS.ADD_ZOHOACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD ZOHOACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/jscripty/views/projects/create/dialog.html",'<md-dialog class="project-dialog" aria-label="New Project">\n <form name="projectForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="JSCRIPTY.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.project.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newProject">\n\n <div class="hint"><span translate="JSCRIPTY.HELP.NAME"></span></div>\n <div ng-messages="projectForm[\'name\'].$error" ng-show="projectForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="JSCRIPTY.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="JSCRIPTY.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="JSCRIPTY.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.project.description">\n\n <div ng-messages="projectForm[\'description\'].$error" ng-show="projectForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="JSCRIPTY.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newProject" ng-click="vm.saveProject()" class="send-button md-accent md-raised" ng-disabled="projectForm.$invalid || projectForm.$pristine" aria-label="SAVE" translate="JSCRIPTY.SAVE" translate-attr-aria-label="JSCRIPTY.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newProject" ng-click="vm.addNewProject()" class="send-button md-accent md-raised" ng-disabled="projectForm.$invalid" aria-label="ADD" translate="JSCRIPTY.ADD_PROJECT" translate-attr-aria-label="JSCRIPTY.ADD_PROJECT">\n ADD PROJECT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newProject" ng-click="vm.deleteProject($event)" aria-label="DELETE" translate translate-attr-aria-label="JSCRIPTY.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="JSCRIPTY.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/jscripty/views/projects/edit/clone/clone.html",'<md-dialog class="project-dialog" aria-label="Clone Project">\n <form name="projectForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="JSCRIPTY.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.project.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newProject">\n\n <div class="hint"><span translate="JSCRIPTY.HELP.NAME"></span></div>\n <div ng-messages="projectForm[\'name\'].$error" ng-show="projectForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="JSCRIPTY.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="JSCRIPTY.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <md-button type="submit" ng-click="vm.cloneProject()" class="send-button md-accent md-raised" ng-disabled="projectForm.$invalid" aria-label="CLONE" translate="JSCRIPTY.CLONE_PROJECT" translate-attr-aria-label="JSCRIPTY.CLONE_PROJECT">\n CLONE PROJECT\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/jscripty/views/projects/edit/sessions/dialog.html",'<md-dialog class="session-dialog" aria-label="New Session">\n <form name="sessionForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <md-list>\n <md-subheader class="md-no-sticky">\n <div class="margin-bottom-5"><span translate="JSCRIPTY.ANSWERS">Answers</span></div>\n <div class="subtitle secondary-text">\n <span translate="JSCRIPTY.STARTTIME" class="ng-scope font-weight-700">Start Time</span>: <span class="ng-binding">{{vm.session.starttime | date:\'medium\'}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="JSCRIPTY.MEMBERNAME" class="ng-scope font-weight-700">Member Name</span>: <span class="ng-binding">{{vm.session.membername}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="JSCRIPTY.PROJECT" class="ng-scope font-weight-700">Project</span>: <span class="ng-binding">{{vm.project.name}}</span>\n </div>\n </md-subheader>\n <md-list-item ng-if="vm.questions.rows.length" class="md-2-line contact-item" ng-repeat="question in vm.questions.rows">\n <div class="md-list-item-text compact">\n <h3>{{$index+1}}. {{question.question}}</h3>\n <p>{{question.answer}}</p>\n </div>\n <md-divider ng-if="!$last"></md-divider>\n </md-list-item>\n <md-list-item ng-if="!vm.questions.rows.length" class="md-2-line contact-item">\n <div class="md-list-item-text compact">\n <h3><span class="text-boxed-light" translate="JSCRIPTY.NO_RESULTS_AVAILABLE">No results available</span></h3>\n </div>\n </md-list-item>\n </md-list>\n\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/main/apps/jscripty/views/projects/edit/view.html",'<div id="jscripty-project" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-projects-button md-icon-button" aria-label="Go to projects" ng-click="vm.gotoProjects()" translate translate-attr-aria-label="JSCRIPTY.GO_TO_PROJECTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="project-image" hide-xs>\n <img ng-src="assets/images/business/projects.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.project.id}}\n <span ng-if="vm.project.name">{{vm.project.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="JSCRIPTY.CREATED_AT"></span> <span>{{vm.project.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.clonedialog(vm.project, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="clone">\n <md-tooltip><span translate="JSCRIPTY.CLONE_PROJECT"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveProject()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (builderForm.$invalid) || (previewForm.$invalid) || (sessionsForm.$invalid) || (answersForm.$invalid)" translate="JSCRIPTY.SAVE" translate-attr-aria-label="JSCRIPTY.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="JSCRIPTY.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="project-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="JSCRIPTY.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="JSCRIPTY.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.project.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="JSCRIPTY.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="JSCRIPTY.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="JSCRIPTY.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.project.enableUncompleteSave" aria-label="EnableUncompleteSave" ng-disabled="!vm.crudPermissions.canEdit"><span translate="JSCRIPTY.ENABLEUNCOMPLETESAVE">EnableUncompleteSave</span></md-switch>\n <div class="hint"><span translate="JSCRIPTY.HELP.ENABLEUNCOMPLETESAVE"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.project.sendUnpauseOnSubmit" aria-label="SendUnpauseOnSubmit" ng-disabled="!vm.crudPermissions.canEdit"><span translate="JSCRIPTY.SENDUNPAUSEONSUBMIT">SendUnpauseOnSubmit</span></md-switch>\n <div class="hint"><span translate="JSCRIPTY.HELP.SENDUNPAUSEONSUBMIT"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="JSCRIPTY.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.project.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="JSCRIPTY.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="JSCRIPTY.BUILDER">BUILDER</span>\n </md-tab-label>\n <md-tab-body>\n <div class="project-detail-form-container builder md-background-bg md-whiteframe-1dp">\n <div ng-controller="ProjectBuilderController as vm_bc" ng-init="vm_bc.init(vm.project)">\n <mw-form-builder ng-if="vm_bc.project.formData" form-data="vm_bc.project.formData" options="vm_bc.optionsBuilder" read-only="false"></mw-form-builder>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="JSCRIPTY.PREVIEW">PREVIEW</span>\n </md-tab-label>\n <md-tab-body>\n <div class="project-detail-form-container preview md-background-bg md-whiteframe-1dp">\n <div layout="column" layout-align="center" ng-controller="ProjectViewerController as vm_vc" ng-init="vm_vc.init(vm.project)">\n <div layout="row" layout-align="center">\n <md-button class="md-raised md-accent" aria-label="Reset" ng-click="vm_vc.resetViewer()">\n Reset\n </md-button>\n </div>\n <mw-form-viewer ng-if="vm_vc.project.formData" form-data="vm_vc.project.formData" response-data="vm_vc.responseData" on-submit="vm_vc.onSubmit($event)" api="vm_vc.formViewer"></mw-form-viewer>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="JSCRIPTY.SESSIONS">SESSIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="project-detail-form-container sessions md-background-bg md-whiteframe-1dp">\n <div ng-controller="ProjectSessionsController as vm_dc" ng-init="vm_dc.init(vm.project, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedProjectSessions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="JSCRIPTY.SESSIONS">Sessions</span>\n <ms-search-bar on-search="vm_dc.getProjectSessions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedProjectSessions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedProjectSessions.length}} {{vm_dc.selectedProjectSessions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedProjectSessions" csv-label="true" filename="projects.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedProjectSessions($event)" aria-label="delete selected" translate translate-attr-label="JSCRIPTY.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedProjectSessions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getProjectSessions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'JSCRIPTY.ID\' | translate }}\n </th>\n <th md-column md-order-by="starttime">\n {{ \'JSCRIPTY.STARTTIME\' | translate }}\n </th>\n <th md-column md-order-by="endtime">\n {{ \'JSCRIPTY.ENDTIME\' | translate }}\n </th>\n <th md-column md-order-by="membername">\n {{ \'JSCRIPTY.MEMBERNAME\' | translate }}\n </th>\n <th md-column md-order-by="calleridnum">\n {{ \'JSCRIPTY.CALLERIDNUM\' | translate }}\n </th>\n <th md-column md-order-by="completed">\n {{ \'JSCRIPTY.COMPLETE\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="session" md-select-id="id" ng-repeat="session in vm_dc.projectSessions.rows">\n <td md-cell>\n {{session.id}}\n </td>\n <td md-cell>\n {{ session.starttime | formatdate }}\n </td>\n <td md-cell>\n {{ session.endtime | formatdate }}\n </td>\n <td md-cell>\n {{session.membername}}\n </td>\n <td md-cell>\n {{session.calleridnum}}\n </td>\n <td md-cell class="completed ">\n <md-icon md-colors="{color: {{session.completed ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{session.completed? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="JSCRIPTY.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm_dc.showQuestionsProjectSession($event, session)" translate="JSCRIPTY.SHOW_QUESTIONS_SESSION">\n Results Session\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(session, $event)" translate="JSCRIPTY.DELETE_SESSION">\n Delete Session\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.projectSessions.rows.length">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="JSCRIPTY.NO_SESSION_AVAILABLE">No session available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'JSCRIPTY.PAGE\' | translate}}:\', rowsPerPage: \'{{\'JSCRIPTY.ROWSPERPAGE\' | translate}}:\', of: \'{{\'JSCRIPTY.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.projectSessions.count}}" md-on-paginate="vm_dc.getProjectSessions" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="JSCRIPTY.ANSWERS">ANSWERS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="project-detail-form-container answers md-background-bg md-whiteframe-1dp">\n <div ng-controller="ProjectAnswersController as vm_an" ng-init="vm_an.init(vm.project, vm.userProfile)">\n <div class="pb-16" layout="row">\n <div class="h2 secondary-text" translate="JSCRIPTY.ANSWERS" flex>Answers</div>\n <div layout="row" layout-align="space-between center" flex>\n <md-date-range localization-map="vm_an.localizationMap" ng-model="vm_an.pickerModel" auto-confirm="true" show-template="true" md-on-select="vm_an.getAnswers()" placeholder="{{ \'DASHBOARDS.ALL\' | translate }}"></md-date-range>\n <md-button type="button" ng-if="vm_an.currentUser.role === \'admin\' || vm_an.userProfile.downloadJscriptySessions" ng-disabled="!vm_an.answers" ng-click="vm_an.getSummary($event)" class="md-accent md-raised md-button ng-scope md-default-theme md-ink-ripple md-green-500-bg md-icon-button" title="{{\'JSCRIPTY.EXPORT_TO_CSV\' | translate}}">\n <md-icon md-font-icon="icon-file-excel" class="md-default-theme md-font material-icons icon-file-excel"></md-icon>\n </md-button>\n </div>\n </div>\n <div layout="row">\n <md-card class="md-whiteframe-1dp" ng-if="vm_an.answers && vm_an.hasIdAnswers" flex>\n <md-list>\n <md-list-item class="md-2-line contact-item" ng-repeat="(key, question) in vm_an.answers">\n <div class="md-list-item-text compact" layout-padding>\n <h3>{{question.question}}</h3>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column></th>\n <th md-column>#</th>\n <th md-column>%</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-repeat="(key, value) in question.answers">\n <td md-cell>{{key}}</td>\n <td md-cell width="20px">{{value}}</td>\n <td md-cell width="20px">{{value*100/question.sum | number:1}}</td>\n </tr>\n <tr md-row>\n <td md-cell><b>{{\'JSCRIPTY.TOTAL\' | translate}}</b></td>\n <td md-cell width="20px"><b>{{question.sum}}</b></td>\n <td md-cell width="20px"><b>100</b></td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </div>\n <md-divider ng-if="!$last"></md-divider>\n </md-list-item>\n </md-list>\n </md-card>\n <span ng-if="!vm_an.answers || !vm_an.hasIdAnswers" class="text-boxed-light" translate="JSCRIPTY.NO_ANSWERS_AVAILABLE">No answers available</span>\n </div>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/jscripty/views/projects/projects.html",'<div id="projects" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-script" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="JSCRIPTY.PROJECTS">Projects</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="JSCRIPTY.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedProjects.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedProjects =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="JSCRIPTY.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-projects-count">\n <span>{{vm.selectedProjects.length}}</span>\n <span translate="JSCRIPTY.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="JSCRIPTY.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllProjects()" translate="JSCRIPTY.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectProjects()" translate="JSCRIPTY.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedProjects" csv-label="true" filename="projects.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedProjects($event)" aria-label="delete selected" translate translate-attr-label="JSCRIPTY.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- PROJECT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedProjects" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getProjects">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'JSCRIPTY.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'JSCRIPTY.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'JSCRIPTY.DESCRIPTION\' | translate }}</th>\n <th md-column md-order-by="createdAt">{{ \'JSCRIPTY.CREATED_AT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.projects.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="JSCRIPTY.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="project" md-select-id="id" ng-repeat="project in vm.projects.rows">\n <td md-cell ng-if="project.userpic"><img class="avatar" alt="{{project.name}}" ng-src="api/users/{{project.id}}/avatar" /></td>\n <td md-cell ng-if="!project.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{project.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="id ">{{project.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="name ">{{project.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="description ">{{project.description}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(project, ev) : vm.createOrEditProject($event, project)" md-cell class="createdAt ">{{project.createdAt | date:\'medium\' }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="JSCRIPTY.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(project, $event )" translate="JSCRIPTY.EDIT_PROJECT">\n Edit Project\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.clonedialog(project, $event )" translate="JSCRIPTY.CLONE_PROJECT">\n clone Project\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.sessionsgoto(project, $event )" translate="JSCRIPTY.SESSIONS_PROJECT">\n Sessions Project\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.deleteconfirm(project, $event )" translate="JSCRIPTY.DELETE_PROJECT">\n Delete Project\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'JSCRIPTY.PAGE\' | translate}}:\', rowsPerPage: \'{{\'JSCRIPTY.ROWSPERPAGE\' | translate}}:\', of: \'{{\'JSCRIPTY.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.projects.count}}" md-on-paginate="vm.getProjects" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / PROJECT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD PROJECT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-project-button" ng-click="vm.createOrEditProject($event)" aria-label="add project" translate translate-attr-aria-label="JSCRIPTY.ADD_PROJECT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD PROJECT BUTTON --\x3e\n</div>'),e.put("app/main/apps/mail/views/mailAccounts/create/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.mailAccount.name" ng-required="true" autofocus>\n\n <div ng-messages="mailAccountForm[\'name\'].$error" ng-show="mailAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.KEY">key</label>\n <input type="text" name="key" ng-model="vm.mailAccount.key" md-maxlength="5" ng-required="true">\n\n <div ng-messages="mailAccountForm[\'key\'].$error" ng-show="mailAccountForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="MAIL.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.EMAIL_ADDRESS">Email_Address</label>\n <input type="email" name="email" ng-model="vm.mailAccount.email" ng-required="true">\n\n <div ng-messages="mailAccountForm[\'email\'].$error" ng-show="mailAccountForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.EMAIL_ADDRESS_REQUIRED">Email_Address field is required</span>\n </div>\n <div ng-message="email">\n <span translate="MAIL.ERRORS.EMAIL_ADDRESS_MUST_VALID">Email_Address must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.LIST">List</label>\n <md-select name="ListId" ng-model="vm.mailAccount.ListId" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div ng-messages="mailAccountForm[\'ListId\'].$error" ng-show="mailAccountForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.active" aria-label="Active"><span translate="MAIL.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.newMailAccount" class="md-block">\n <label translate="MAIL.SERVICE">Service</label>\n <md-select name="cservice" ng-model="vm.mailAccount.cservice" required>\n <md-option ng-value="null">Custom</md-option>\n <md-option ng-value="\'gmail\'">Gmail</md-option>\n <md-option ng-value="\'hotmail\'">Hotmail</md-option>\n <md-option ng-value="\'yahoo\'">Yahoo</md-option>\n <md-option ng-value="\'outlook365\'">Outlook365</md-option>\n </md-select>\n <div ng-messages="mailAccountForm[\'cservice\'].$error" ng-show="mailAccountForm[\'cservice\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.SERVICE_REQUIRED">Service field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Imap.service == null)" class="md-block">\n <label translate="MAIL.IMAP_HOST">IMAP_Host</label>\n <input type="text" name="Imap.host" ng-model="vm.mailAccount.Imap.host" ng-required="true">\n\n <div ng-messages="mailAccountForm[\'Imap.host\'].$error" ng-show="mailAccountForm[\'Imap.host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.IMAP_HOST_REQUIRED">IMAP_Host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Imap.service == null)" class="md-block">\n <label translate="MAIL.IMAP_PORT">IMAP_Port</label>\n <input type="number" name="Imap.port" ng-model="vm.mailAccount.Imap.port" value="465" ng-required="true">\n\n <div ng-messages="mailAccountForm[\'Imap.port\'].$error" ng-show="mailAccountForm[\'Imap.port\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.IMAP_PORT_REQUIRED">IMAP_Port field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Smtp.service == null)" class="md-block">\n <label translate="MAIL.SMTP_HOST">SMTP_Host</label>\n <input type="text" name="Smtp.host" ng-model="vm.mailAccount.Smtp.host" ng-required="true">\n\n <div ng-messages="mailAccountForm[\'Smtp.host\'].$error" ng-show="mailAccountForm[\'Smtp.host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.SMTP_HOST_REQUIRED">SMTP_Host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Smtp.service == null)" class="md-block">\n <label translate="MAIL.SMTP_PORT">SMTP_Port</label>\n <input type="number" name="Smtp.port" ng-model="vm.mailAccount.Smtp.port" value="465" ng-required="true">\n\n <div ng-messages="mailAccountForm[\'Smtp.port\'].$error" ng-show="mailAccountForm[\'Smtp.port\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.SMTP_PORT_REQUIRED">SMTP_Port field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.cservice !== undefined && vm.mailAccount.cservice == null && vm.newMailAccount" class="md-block">\n <md-switch ng-model="vm.mailAccount.cauthentication" aria-label="Authentication"><span translate="MAIL.AUTHENTICATION">Authentication</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="(vm.mailAccount.cauthentication == true || vm.mailAccount.cservice != null) && vm.newMailAccount" class="md-block">\n <label translate="MAIL.USERNAME">Username</label>\n <input type="text" name="cuser" ng-model="vm.mailAccount.cuser" ng-required="true">\n\n <div class="hint"><span translate="MAIL.HELP.USERNAME"></span></div>\n <div ng-messages="mailAccountForm[\'cuser\'].$error" ng-show="mailAccountForm[\'cuser\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="(vm.mailAccount.cauthentication == true || vm.mailAccount.cservice != null) && vm.newMailAccount">\n <label translate="MAIL.PASSWORD">Password</label>\n <input type="password" name="cpassword" ng-model="vm.mailAccount.cpassword" placeholder="Password" translate translate-attr-placeholder="MAIL.PASSWORD" required>\n <div class="hint"><span translate="MAIL.HELP.PASSWORD"></span></div>\n <div ng-messages="mailAccountForm[\'cpassword\'].$error" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MAIL.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="MAIL.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.mailAccount.description">\n\n <div ng-messages="mailAccountForm[\'description\'].$error" ng-show="mailAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newMailAccount" ng-click="vm.saveMailAccount()" class="send-button md-accent md-raised" ng-disabled="mailAccountForm.$invalid || mailAccountForm.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newMailAccount" ng-click="vm.addNewMailAccount()" class="send-button md-accent md-raised" ng-disabled="mailAccountForm.$invalid" aria-label="ADD" translate="MAIL.ADD_MAILACCOUNT" translate-attr-aria-label="MAIL.ADD_MAILACCOUNT">\n ADD MAILACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newMailAccount" ng-click="vm.deleteMailAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="MAIL.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="MAIL.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/agentadd/agentadd.html",'<md-dialog class="mailAccount-dialog" aria-label="mailAccount" ng-init="vm.onInit()">\n <form name="mailAccountForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MAIL.AGENTADD_MAILACCOUNT">Add Agent to mailAccount</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/agent/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.AGENT">Agent</label>\n <md-select name="agent" ng-model="vm.agent.agent" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents" ng-disabled="agent.canSelect === false">{{ agent.name }}</md-option>\n </md-select>\n <div ng-messages="mailAccountFormApp[\'agent\'].$error" ng-show="mailAccountFormApp[\'agent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.agent.timeout" min="0" max="2147483" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'timeout\'].$error" ng-show="mailAccountFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/autoreply/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.TIMES">times</label>\n <md-select name="times" ng-model="vm.autoreply.times" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="2">One Time</md-option>\n <md-option ng-value="0">Always</md-option>\n <md-option ng-value="1">First Message</md-option>\n </md-select>\n <div ng-messages="mailAccountFormApp[\'times\'].$error" ng-show="mailAccountFormApp[\'times\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.TIMES_REQUIRED">times field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.REPLY_TYPE">Reply_Type</label>\n <md-select name="replyType" ng-model="vm.autoreply.replyType" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="0">Reply</md-option>\n <md-option ng-value="1">Reply All</md-option>\n </md-select>\n <div ng-messages="mailAccountFormApp[\'replyType\'].$error" ng-show="mailAccountFormApp[\'replyType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.REPLY_TYPE_REQUIRED">Reply_Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="MAIL.TEXT">Text</label>\n <textarea aria-label="Text text" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.autoreply.text"></textarea>\n </div>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/close/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.DISPOSITION">Disposition</label>\n <input type="text" name="disposition" ng-model="vm.close.disposition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'disposition\'].$error" ng-show="mailAccountFormApp[\'disposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/gotoif/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.CONDITION">Condition</label>\n <input type="text" name="condition" ng-model="vm.gotoif.condition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'condition\'].$error" ng-show="mailAccountFormApp[\'condition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.TRUEPRIORITY">truepriority</label>\n <input type="number" name="truepriority" ng-model="vm.gotoif.truepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'truepriority\'].$error" ng-show="mailAccountFormApp[\'truepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.TRUEPRIORITY_REQUIRED">truepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">truepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.FALSEPRIORITY">falsepriority</label>\n <input type="number" name="falsepriority" ng-model="vm.gotoif.falsepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'falsepriority\'].$error" ng-show="mailAccountFormApp[\'falsepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.FALSEPRIORITY_REQUIRED">falsepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">falsepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/gotop/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.PRIORITY">Priority</label>\n <input type="number" name="priority" ng-model="vm.gotop.priority" min="0" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'priority\'].$error" ng-show="mailAccountFormApp[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Priority must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/interval/dialog.html",'<md-dialog class="interval-dialog" aria-label="New Interval">\n <form name="intervalForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="type" ng-repeat=\'type in vm.types\'>{{ type | ucfirst }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.type === \'list\'">\n <label translate="TOOLS.INTERVALS">Intervals</label>\n <md-select ng-model="vm.interval.IntervalId" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ interval.name }}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!-- TIMERANGE START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.TIME_RANGE">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <div class="md-block" flex>\n <mdp-time-picker name="timeRangeFrom" mdp-placeholder="FROM" ng-model="vm.timeRangeFrom" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <div ng-messages="intervalForm.timeRangeFrom.$error" ng-show="intervalForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_FROM_INVALID">Time Range From field is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n <div class="md-block" flex ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_INVALID">Time Range To field is invalid</span>\n </div>\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </div>\n \x3c!-- TIMERANGE END --\x3e\n\n \x3c!-- DAYSOFWEEK START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.WEEK_DAYS">Week Days</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.dayOfWeekFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex class="md-block" ng-if="vm.dayOfWeekFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="dayOfWeekTo" ng-model="vm.dayOfWeekTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- DAYSOFWEEK END --\x3e\n\n \x3c!-- MONTHDAY START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTH_DAYS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthDayFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthDayFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthDayTo" ng-model="vm.monthDayTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTHDAY END --\x3e\n\n \x3c!-- MONTH START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTHS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthTo" ng-model="vm.monthTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTH END --\x3e\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="!vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n ADD INTERVAL\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/noop/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.noop.value" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'value\'].$error" ng-show="mailAccountFormApp[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/queue/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.queue.queue" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues" ng-disabled="queue.canSelect === false">{{ queue.name }}</md-option>\n </md-select>\n <div ng-messages="mailAccountFormApp[\'queue\'].$error" ng-show="mailAccountFormApp[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'timeout\'].$error" ng-show="mailAccountFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/system/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.COMMAND">Command</label>\n <input type="text" name="command" ng-model="vm.system.command" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="mailAccountFormApp[\'command\'].$error" ng-show="mailAccountFormApp[\'command\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.COMMAND_REQUIRED">Command field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.system.variable" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables" ng-disabled="variable.canSelect === false">{{ variable.name }}</md-option>\n </md-select>\n <div ng-messages="mailAccountFormApp[\'variable\'].$error" ng-show="mailAccountFormApp[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.VARIABLE_REQUIRED">Variable field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/apps/tag/dialog.html",'<md-dialog class="mailAccount-dialog" aria-label="New MailAccount">\n <form name="mailAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.TAG">Tag</label>\n <md-select name="tag" ng-model="vm.tag.tag" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags" ng-disabled="tag.canSelect === false">{{ tag.name }}</md-option>\n </md-select>\n <div ng-messages="mailAccountFormApp[\'tag\'].$error" ng-show="mailAccountFormApp[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.TAG_REQUIRED">Tag field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveMailAccountApp()" class="send-button md-accent md-raised" ng-disabled="mailAccountFormApp.$invalid || mailAccountFormApp.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/mailCannedAnswers/dialog.html",'<md-dialog class="mailCannedAnswer-dialog" aria-label="New MailCannedAnswer">\n <form name="mailCannedAnswerForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.KEY">Key</label>\n <input type="" name="key" ng-model="vm.mailCannedAnswer.key" md-maxlength="255" ng-required="true" autofocus>\n\n <div ng-messages="mailCannedAnswerForm[\'key\'].$error" ng-show="mailCannedAnswerForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.KEY_REQUIRED">Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="MAIL.VALUE">Value</label>\n <textarea aria-label="Value value" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.mailCannedAnswer.value"></textarea>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.mailCannedAnswer.description">\n\n <div ng-messages="mailCannedAnswerForm[\'description\'].$error" ng-show="mailCannedAnswerForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newMailCannedAnswer" ng-click="vm.saveMailCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="mailCannedAnswerForm.$invalid || mailCannedAnswerForm.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newMailCannedAnswer" ng-click="vm.addNewMailCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="mailCannedAnswerForm.$invalid" aria-label="ADD" translate="MAIL.ADD_MAILCANNEDANSWER" translate-attr-aria-label="MAIL.ADD_MAILCANNEDANSWER">\n ADD MAILCANNEDANSWER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newMailCannedAnswer" ng-click="vm.deleteMailCannedAnswer($event)" aria-label="DELETE" translate translate-attr-aria-label="MAIL.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="MAIL.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailAccounts/edit/view.html",'<div id="mail-mailAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-mailAccounts-button md-icon-button" aria-label="Go to mailAccounts" ng-click="vm.gotoMailAccounts()" translate translate-attr-aria-label="MAIL.GO_TO_MAILACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="mailAccount-image" hide-xs>\n <img ng-src="assets/images/business/mailAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.mailAccount.id}}\n <span ng-if="vm.mailAccount.name">{{vm.mailAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="MAIL.CREATED_AT"></span> <span>{{vm.mailAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.mailAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="MAIL.GOTO_MAILACCOUNT"></span></md-tooltip>\n <md-icon md-font-icon="icon-cast"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.mailAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="MAIL.AGENTADD_MAILACCOUNT"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveMailAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (imapForm.$invalid) || (smtpForm.$invalid) || (dispositionForm.$invalid) || (mailDispositionsForm.$invalid) || (mailCannedAnswersForm.$invalid) || (actionsForm.$invalid) || (interactionsForm.$invalid)" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="mailAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MAIL.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MAIL.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.mailAccount.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.KEY">key</label>\n <input type="text" name="key" ng-model="vm.mailAccount.key" md-maxlength="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'key\'].$error" ng-show="generalForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="MAIL.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.EMAIL_ADDRESS">Email_Address</label>\n <input type="email" name="email" ng-model="vm.mailAccount.email" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'email\'].$error" ng-show="generalForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.EMAIL_ADDRESS_REQUIRED">Email_Address field is required</span>\n </div>\n <div ng-message="email">\n <span translate="MAIL.ERRORS.EMAIL_ADDRESS_MUST_VALID">Email_Address must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.LIST">List</label>\n <md-select name="ListId" ng-model="vm.mailAccount.ListId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'ListId\'].$error" ng-show="generalForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.active" aria-label="Active" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.FONT_FAMILY">Font_Family</label>\n <ms-font-family name="fontFamily" ng-model="vm.mailAccount.fontFamily" required></ms-font-family>\n <div class="hint"><span translate="MAIL.HELP.FONT_FAMILY"></span></div>\n <div ng-messages="generalForm[\'fontFamily\'].$error" ng-show="generalForm[fontFamily].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.FONT_FAMILY_REQUIRED">Font_Family field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.FONT_SIZE">Font_Size</label>\n <input type="number" name="fontSize" ng-model="vm.mailAccount.fontSize" min="8" max="72" value="13" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MAIL.HELP.FONT_SIZE"></span></div>\n <div ng-messages="generalForm[\'fontSize\'].$error" ng-show="generalForm[\'fontSize\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.FONT_SIZE_REQUIRED">Font_Size field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.FONT_SIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Font_Size must be a valid greater or equal than</span> <span>8</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.FONT_SIZE_MUST_BE_LESS_THAN_OR_EQUAL_TO">Font_Size must be a valid greater or equal than</span> <span>72</span>\n </div>\n </div>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="MAIL.TEMPLATE">Template</label>\n <textarea aria-label="Template template" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.mailAccount.template"></textarea>\n </div>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.markAsUnread" aria-label="mark_as_unread" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.MARK_AS_UNREAD">mark_as_unread</span></md-switch>\n <div class="hint"><span translate="MAIL.HELP.MARK_AS_UNREAD"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.WAITFORTHEASSIGNEDAGENT">WaitForTheAssignedAgent</label>\n <input type="number" name="waitForTheAssignedAgent" ng-model="vm.mailAccount.waitForTheAssignedAgent" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'waitForTheAssignedAgent\'].$error" ng-show="generalForm[\'waitForTheAssignedAgent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.WAITFORTHEASSIGNEDAGENT_REQUIRED">WaitForTheAssignedAgent field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.mailAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="mailAccount-detail-form-container notification md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MAIL.NOTIFICATION">NOTIFICATION</div>\n </div>\n <form name="notificationForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.notificationSound" aria-label="notificationSound" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.NOTIFICATIONSOUND">notificationSound</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.notificationShake" aria-label="notificationShake" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.NOTIFICATIONSHAKE">notificationShake</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="MAIL.NOTIFICATIONTEMPLATE">notificationTemplate</label>\n <textarea aria-label="notificationTemplate notificationTemplate" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.mailAccount.notificationTemplate"></textarea>\n </div>\n\n </form>\n </div>\n <div class="mailAccount-detail-form-container transfer md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MAIL.TRANSFER">TRANSFER</div>\n </div>\n <form name="transferForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.queueTransfer" aria-label="queueTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.QUEUETRANSFER">queueTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.queueTransfer == true" class="md-block">\n <label translate="MAIL.QUEUETRANSFERTIMEOUT">queueTransferTimeout</label>\n <input type="number" name="queueTransferTimeout" ng-model="vm.mailAccount.queueTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'queueTransferTimeout\'].$error" ng-show="transferForm[\'queueTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.QUEUETRANSFERTIMEOUT_REQUIRED">queueTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.agentTransfer" aria-label="agentTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.AGENTTRANSFER">agentTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.agentTransfer == true" class="md-block">\n <label translate="MAIL.AGENTTRANSFERTIMEOUT">agentTransferTimeout</label>\n <input type="number" name="agentTransferTimeout" ng-model="vm.mailAccount.agentTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'agentTransferTimeout\'].$error" ng-show="transferForm[\'agentTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.AGENTTRANSFERTIMEOUT_REQUIRED">agentTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.IMAP">IMAP</span>\n </md-tab-label>\n <md-tab-body>\n <div class="mailAccount-detail-form-container imap md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MAIL.IMAP">IMAP</div>\n </div>\n <form name="imapForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MAIL.SERVICE">Service</label>\n <md-select name="Imap.service" ng-model="vm.mailAccount.Imap.service" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Custom</md-option>\n <md-option ng-value="\'gmail\'">Gmail</md-option>\n <md-option ng-value="\'hotmail\'">Hotmail</md-option>\n <md-option ng-value="\'yahoo\'">Yahoo</md-option>\n <md-option ng-value="\'outlook365\'">Outlook365</md-option>\n </md-select>\n <div ng-messages="imapForm[\'Imap.service\'].$error" ng-show="imapForm[\'Imap.service\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.SERVICE_REQUIRED">Service field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Imap.service == null)" class="md-block">\n <label translate="MAIL.IMAP_HOST">IMAP_Host</label>\n <input type="text" name="Imap.host" ng-model="vm.mailAccount.Imap.host" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="imapForm[\'Imap.host\'].$error" ng-show="imapForm[\'Imap.host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.IMAP_HOST_REQUIRED">IMAP_Host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Imap.service == null)" class="md-block">\n <label translate="MAIL.IMAP_PORT">IMAP_Port</label>\n <input type="number" name="Imap.port" ng-model="vm.mailAccount.Imap.port" value="465" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="imapForm[\'Imap.port\'].$error" ng-show="imapForm[\'Imap.port\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.IMAP_PORT_REQUIRED">IMAP_Port field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.Imap.tls" aria-label="ssl" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.SSL">ssl</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.Imap.service == null" class="md-block">\n <md-switch ng-model="vm.mailAccount.Imap.authentication" aria-label="Authentication" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.AUTHENTICATION">Authentication</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.Imap.authentication == true || vm.mailAccount.Imap.service != null" class="md-block">\n <label translate="MAIL.USERNAME">Username</label>\n <input type="text" name="Imap.user" ng-model="vm.mailAccount.Imap.user" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MAIL.HELP.USERNAME"></span></div>\n <div ng-messages="imapForm[\'Imap.user\'].$error" ng-show="imapForm[\'Imap.user\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.mailAccount.Imap.authentication == true || vm.mailAccount.Imap.service != null">\n <label translate="MAIL.PASSWORD">Password</label>\n <input type="password" name="Imap.password" ng-model="vm.mailAccount.Imap.password" placeholder="Password" translate translate-attr-placeholder="MAIL.PASSWORD" required>\n <div class="hint"><span translate="MAIL.HELP.PASSWORD"></span></div>\n <div ng-messages="imapForm[\'Imap.password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MAIL.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="MAIL.MAILBOX">mailbox</label>\n <input type="text" name="Imap.mailbox" ng-model="vm.mailAccount.Imap.mailbox" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="imapForm[\'Imap.mailbox\'].$error" ng-show="imapForm[\'Imap.mailbox\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.MAILBOX_REQUIRED">mailbox field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.CONNTIMEOUT">connTimeout</label>\n <input type="number" name="Imap.connTimeout" ng-model="vm.mailAccount.Imap.connTimeout" min="1" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="imapForm[\'Imap.connTimeout\'].$error" ng-show="imapForm[\'Imap.connTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.CONNTIMEOUT_REQUIRED">connTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.CONNTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">connTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.AUTHTIMEOUT">authTimeout</label>\n <input type="number" name="Imap.authTimeout" ng-model="vm.mailAccount.Imap.authTimeout" min="1" value="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="imapForm[\'Imap.authTimeout\'].$error" ng-show="imapForm[\'Imap.authTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.AUTHTIMEOUT_REQUIRED">authTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.AUTHTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">authTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.SMTP">SMTP</span>\n </md-tab-label>\n <md-tab-body>\n <div class="mailAccount-detail-form-container smtp md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MAIL.SMTP">SMTP</div>\n </div>\n <form name="smtpForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MAIL.SERVICE">Service</label>\n <md-select name="Smtp.service" ng-model="vm.mailAccount.Smtp.service" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Custom</md-option>\n <md-option ng-value="\'gmail\'">Gmail</md-option>\n <md-option ng-value="\'hotmail\'">Hotmail</md-option>\n <md-option ng-value="\'yahoo\'">Yahoo</md-option>\n <md-option ng-value="\'outlook365\'">Outlook365</md-option>\n </md-select>\n <div ng-messages="smtpForm[\'Smtp.service\'].$error" ng-show="smtpForm[\'Smtp.service\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.SERVICE_REQUIRED">Service field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Smtp.service == null)" class="md-block">\n <label translate="MAIL.SMTP_HOST">SMTP_Host</label>\n <input type="text" name="Smtp.host" ng-model="vm.mailAccount.Smtp.host" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smtpForm[\'Smtp.host\'].$error" ng-show="smtpForm[\'Smtp.host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.SMTP_HOST_REQUIRED">SMTP_Host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.newMailAccount && vm.mailAccount.cservice == null) || (vm.newMailAccount == undefined && vm.mailAccount.Smtp.service == null)" class="md-block">\n <label translate="MAIL.SMTP_PORT">SMTP_Port</label>\n <input type="number" name="Smtp.port" ng-model="vm.mailAccount.Smtp.port" value="465" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smtpForm[\'Smtp.port\'].$error" ng-show="smtpForm[\'Smtp.port\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.SMTP_PORT_REQUIRED">SMTP_Port field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.Smtp.service == null" class="md-block">\n <md-switch ng-model="vm.mailAccount.Smtp.secure" aria-label="Secure" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.SECURE">Secure</span></md-switch>\n <div class="hint"><span translate="MAIL.HELP.SECURE"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.Smtp.service == null" class="md-block">\n <md-switch ng-model="vm.mailAccount.Smtp.authentication" aria-label="Authentication" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.AUTHENTICATION">Authentication</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.Smtp.authentication == true || vm.mailAccount.Smtp.service != null" class="md-block">\n <label translate="MAIL.USERNAME">Username</label>\n <input type="text" name="Smtp.user" ng-model="vm.mailAccount.Smtp.user" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MAIL.HELP.USERNAME"></span></div>\n <div ng-messages="smtpForm[\'Smtp.user\'].$error" ng-show="smtpForm[\'Smtp.user\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.mailAccount.Smtp.authentication == true || vm.mailAccount.Smtp.service != null">\n <label translate="MAIL.PASSWORD">Password</label>\n <input type="password" name="Smtp.pass" ng-model="vm.mailAccount.Smtp.pass" placeholder="Password" translate translate-attr-placeholder="MAIL.PASSWORD" required>\n <div class="hint"><span translate="MAIL.HELP.PASSWORD"></span></div>\n <div ng-messages="smtpForm[\'Smtp.pass\'].$error" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MAIL.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="mailAccount-detail-form-container disposition md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MAIL.DISPOSITION">DISPOSITION</div>\n </div>\n <form name="dispositionForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.mailAccount.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MAIL.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.mailAccount.mandatoryDisposition" class="md-block">\n <label translate="MAIL.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.mailAccount.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MAIL.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="dispositionForm[\'mandatoryDispositionPauseId\'].$error" ng-show="dispositionForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.DISPOSITIONS">DISPOSITIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div ng-controller="MailAccountDispositionsController as vm_dc" ng-init="vm_dc.init(vm.mailAccount, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="mailAccount-detail-form-container maildispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedMailAccountDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MAIL.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add mail dispositions" translate translate-attr-label="MAIL.ADD_DISPOSITION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" csv-label="true" filename="mailAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="MAIL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_dc.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'MAIL.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'MAIL.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'MAIL.DESCRIPTION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="MAIL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MAIL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(disposition, $event)" translate="TOOLS.DELETE_DISPOSITION">\n Delete Disposition\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.CANNEDANSWERS">CANNEDANSWERS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="mailAccount-detail-form-container mailcannedanswers md-background-bg md-whiteframe-1dp">\n <div ng-controller="MailAccountMailCannedAnswersController as vm_dc" ng-init="vm_dc.init(vm.mailAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedMailAccountMailCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MAIL.MAILCANNEDANSWERS">MailCannedAnswers</span>\n <ms-search-bar on-search="vm_dc.getMailAccountMailCannedAnswers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event)" aria-label="add mailCannedAnswer" translate translate-attr-label="MAIL.ADD_MAILCANNEDANSWER">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedMailAccountMailCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedMailAccountMailCannedAnswers.length}} {{vm_dc.selectedMailAccountMailCannedAnswers.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedMailAccountMailCannedAnswers" csv-label="true" filename="mailAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedMailAccountMailCannedAnswers($event)" aria-label="delete selected" translate translate-attr-label="MAIL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedMailAccountMailCannedAnswers" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getMailAccountMailCannedAnswers">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'MAIL.ID\' | translate }}\n </th>\n <th md-column md-order-by="key">\n {{ \'MAIL.KEY\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'MAIL.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="description">\n {{ \'MAIL.DESCRIPTION\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'MAIL.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="mailCannedAnswer" md-select-id="id" ng-repeat="mailCannedAnswer in vm_dc.mailAccountMailCannedAnswers.rows">\n <td ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" md-cell>\n {{mailCannedAnswer.id}}\n </td>\n <td ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" md-cell>\n {{mailCannedAnswer.key}}\n </td>\n <td ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" md-cell>{{mailCannedAnswer.value | htmlToPlaintext }}</td>\n <td ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" md-cell>\n {{mailCannedAnswer.description}}\n </td>\n <td ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" md-cell>\n {{ mailCannedAnswer.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MAIL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditMailAccountMailCannedAnswer($event, mailCannedAnswer)" translate="MAIL.EDIT_MAILCANNEDANSWER">\n Edit MailCannedAnswer\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(mailCannedAnswer, $event)" translate="MAIL.DELETE_MAILCANNEDANSWER">\n Delete MailCannedAnswer\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.mailAccountMailCannedAnswers.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MAIL.NO_MAILCANNEDANSWER_AVAILABLE">No mailcannedanswer available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.mailAccountMailCannedAnswers.count}}" md-on-paginate="vm_dc.getMailAccountMailCannedAnswers" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="mailAccount-detail-form-container actions md-background-bg md-whiteframe-1dp">\n <div ng-controller="MailAccountActionsController as vm_ac" ng-init="vm_ac.init(vm.mailAccount, vm.crudPermissions)" class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- SIDENAV --\x3e\n <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20" ng-if="vm_ac.crudPermissions.canEdit">\n \x3c!-- SIDENAV CONTENT --\x3e\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\n Applications List\n </span>\n </md-subheader>\n </md-list>\n <md-divider></md-divider>\n <md-list ng-sortable="vm_ac.list">\n <md-list-item class="handle" ng-repeat="a in vm_ac.apps">\n <md-icon md-font-icon="{{a.icon}}" class="s16"></md-icon>\n <p class="text-truncate" translate="MAIL.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias || a.appType}}</p>\n </md-list-item>\n </md-list>\n \x3c!-- / SIDENAV CONTENT --\x3e\n </div>\n \x3c!-- / SIDENAV --\x3e\n <div flex></div>\n \x3c!-- MAIN --\x3e\n <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="{{vm_ac.crudPermissions.canEdit ? 75 : 100}}">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_ac.selectedMailAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Drag & Drop Routing</span>\n <div flex></div>\n <ms-search-bar on-search="vm_ac.query.filter = query" on-collapse="vm_ac.query.filter = undefined" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_ac.selectedMailAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_ac.selectedMailAccountApps.length}} {{vm_ac.selectedMailAccountApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_ac.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_ac.deleteSelectedMailAccountApps($event)" aria-label="delete selected" translate translate-attr-label="MAIL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n \x3c!-- QUEUES TABLE --\x3e\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_ac.selectedMailAccountApps">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column width="10px">\n <span translate="VOICE.PRIORITY">Priority</span>\n </th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </th>\n <th md-column width="10px"></th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body ng-sortable="vm_ac.applications">\n <tr md-row md-select="app" md-select-id="id" ng-repeat="app in vm_ac.mailAccountApps.rows | filter: vm_ac.query.filter">\n <td md-cell>\n <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n </td>\n <td md-cell ng-click="vm_ac.editMailAccountApp($event, $index)"><span>{{app.priority}}</span></td>\n <td md-cell ng-click="vm_ac.editMailAccountApp($event, $index)">{{app.app.toLowerCase() === \'agi\' ? \'Cally-Square\' : app.app | ucfirst}}<span ng-if="app.appType.toLowerCase() === \'custom\'">*</span></td>\n <td md-cell ng-click="vm_ac.editMailAccountApp($event, $index)"><span class="text-truncate actionAppData">{{app.appdata}}</span></td>\n <td md-cell ng-click="vm_ac.editInterval($event, $index)">{{app.IntervalId ? \'From List\' : app.interval}}</td>\n <td md-cell>\n <md-button ng-click="vm_ac.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n <md-icon md-font-icon="icon-timer"></md-icon>\n <md-tooltip>\n {{app.IntervalId ? \'From List\' : (app.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n </md-tooltip>\n </md-button>\n </td>\n <td md-cell class="actions" ng-if="!vm_ac.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editMailAccountApp($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canDelete">\n <md-button ng-click="vm_ac.deleteConfirm(app, $index, $event)" translate="VOICE.DELETE_APP">\n Delete App\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-hide="vm_ac.mailAccountApps.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n \x3c!-- / QUEUES TABLE --\x3e\n\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.INTERACTIONS">INTERACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="mailAccount-detail-form-container interactions md-background-bg md-whiteframe-1dp">\n <div ng-controller="MailAccountInteractionsController as vm_dc" ng-init="vm_dc.init(vm.mailAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedMailAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MAIL.INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm_dc.getMailAccountInteractions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_dc.quickFilters" query="vm_dc.query" search="vm_dc.getMailAccountInteractions()"></ms-quick-filter>\n <div layout="column">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini md-accent-bg\': vm_dc.query.search }" aria-label="Filter" translate translate-attr-aria-label="DASHBOARDS.FILTER" ng-click="vm_dc.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm_dc.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'blink\': vm_dc.query.search }"></md-icon>\n </md-button>\n </div>\n <md-button class="md-icon-button" ng-click="vm_dc.getMailAccountInteractions()" aria-label="refresh Interactions" translate translate-attr-label="MAIL.REFRESH_INTERACTIONS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedMailAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedMailAccountInteractions.length}} {{vm_dc.selectedMailAccountInteractions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedMailAccountInteractions" csv-label="true" filename="mailAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedMailAccountInteractions($event)" aria-label="delete selected" translate translate-attr-label="MAIL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedMailAccountInteractions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getMailAccountInteractions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'MAIL.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column md-order-by="contactName">\n {{ \'MAIL.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="subject">\n {{ \'MAIL.SUBJECT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'MAIL.STARTEDAT\' | translate }}\n </th>\n <th md-column md-order-by="lastMsgAt">\n {{ \'MAIL.LASTMESSAGE\' | translate }}\n </th>\n <th md-column md-order-by="closed">\n {{ \'MAIL.STATUS\' | translate }}\n </th>\n <th md-column>\n {{ \'MAIL.AGENT\' | translate }}\n </th>\n <th md-column md-order-by="tag">\n {{ \'MAIL.TAGS\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="interaction" md-select-id="id" ng-repeat="interaction in vm_dc.mailAccountInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td md-cell>\n {{interaction.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="user in interaction.Users">{{ user.fullname | translate }}\n <span ng-if="!$last">, </span>\n </span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg md-primary-bg" layout-margin>{{ interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.attach">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'margin-bottom-0\' : interaction.contactInfo}" layout-margin>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text margin-top-0" layout-margin>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td md-cell>\n <div class="width-300">\n <span class="text-truncate font-size-12">\n {{interaction.subject}}\n </span>\n </div>\n </td>\n <td md-cell>\n {{ interaction.createdAt | formatdate }}\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}"></md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="text-truncate">{{ interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n </td>\n <td md-cell>\n <span ng-if="interaction.closed === 0" class="green-fg">\n {{ \'MAIL.OPENED\' | translate }}\n <span ng-if="interaction.substatus">\n - {{ interaction.substatus }}\n </span>\n </span>\n <span ng-if="interaction.closed === 1" class="red-fg">\n {{ \'MAIL.CLOSED\' | translate }}\n <span ng-if="interaction.disposition">\n - {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}\n </span>\n <md-tooltip class="multiline">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n </span>\n </td>\n\n <td md-cell>\n {{interaction.Owner.name}}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MAIL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm_dc.spymailInteraction($event, interaction)" translate="MAIL.SPYINTERACTION">\n Spy Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || (vm_dc.userProfile.downloadOmnichannelInteractions && vm_dc.userProfile.downloadAttachments)">\n <md-button class="md-primary" ng-click="vm_dc.mailInteractionDownload(interaction, $event, true)" translate="MAIL.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || vm_dc.userProfile.downloadOmnichannelInteractions">\n <md-button class="md-primary" ng-click="vm_dc.mailInteractionDownload(interaction, $event)" translate="MAIL.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(interaction, $event)" translate="MAIL.DELETE_INTERACTION">\n Delete Interaction\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.mailAccountInteractions.rows.length">\n <td md-cell colspan="13">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MAIL.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.mailAccountInteractions.count}}" md-on-paginate="vm_dc.getMailAccountInteractions" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/mail/views/mailAccounts/mailAccounts.html",'<div id="mailAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-email" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="MAIL.MAILACCOUNTS">MailAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="MAIL.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedMailAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedMailAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="MAIL.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-mailAccounts-count">\n <span>{{vm.selectedMailAccounts.length}}</span>\n <span translate="MAIL.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="MAIL.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllMailAccounts()" translate="MAIL.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectMailAccounts()" translate="MAIL.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedMailAccounts" csv-label="true" filename="mailAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedMailAccounts($event)" aria-label="delete selected" translate translate-attr-label="MAIL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- MAILACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedMailAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getMailAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'MAIL.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'MAIL.NAME\' | translate }}</th>\n <th md-column md-order-by="key">{{ \'MAIL.KEY\' | translate }}</th>\n <th md-column md-order-by="email">{{ \'MAIL.EMAIL_ADDRESS\' | translate }}</th>\n <th md-column md-order-by="active">{{ \'MAIL.ACTIVE\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'MAIL.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.mailAccounts.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="MAIL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="mailAccount" md-select-id="id" ng-repeat="mailAccount in vm.mailAccounts.rows">\n <td md-cell ng-if="mailAccount.userpic"><img class="avatar" alt="{{mailAccount.name}}" ng-src="api/users/{{mailAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!mailAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{mailAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailAccount, ev) : vm.createOrEditMailAccount($event, mailAccount)" md-cell class="id ">{{mailAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailAccount, ev) : vm.createOrEditMailAccount($event, mailAccount)" md-cell class="name ">{{mailAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailAccount, ev) : vm.createOrEditMailAccount($event, mailAccount)" md-cell class="key ">{{mailAccount.key}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailAccount, ev) : vm.createOrEditMailAccount($event, mailAccount)" md-cell class="email ">{{mailAccount.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailAccount, ev) : vm.createOrEditMailAccount($event, mailAccount)" md-cell class="active ">\n <md-icon md-colors="{color: {{mailAccount.active ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{mailAccount.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailAccount, ev) : vm.createOrEditMailAccount($event, mailAccount)" md-cell class="description ">{{mailAccount.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MAIL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(mailAccount, $event )" translate="MAIL.EDIT_MAILACCOUNT">\n Edit MailAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.verifysmtpverifysmtp(mailAccount, $event )" translate="MAIL.VERIFYSMTP_MAILACCOUNT">\n verifysmtp MailAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.interactionsgoto(mailAccount, $event )" translate="MAIL.INTERACTIONS_MAILACCOUNT">\n Interactions MailAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(mailAccount, $event )" translate="MAIL.GOTOREALTIME_MAILACCOUNT">\n goToRealtime MailAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(mailAccount, $event )" translate="MAIL.AGENTADD_MAILACCOUNT">\n AgentAdd MailAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(mailAccount, $event )" translate="MAIL.DELETE_MAILACCOUNT">\n Delete MailAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.mailAccounts.count}}" md-on-paginate="vm.getMailAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / MAILACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD MAILACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-mailAccount-button" ng-click="vm.createOrEditMailAccount($event)" aria-label="add mailAccount" translate translate-attr-aria-label="MAIL.ADD_MAILACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD MAILACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/mail/views/mailQueues/create/dialog.html",'<md-dialog class="mailQueue-dialog" aria-label="New MailQueue">\n <form name="mailQueueForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.mailQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newMailQueue">\n\n <div class="hint"><span translate="MAIL.HELP.NAME"></span></div>\n <div ng-messages="mailQueueForm[\'name\'].$error" ng-show="mailQueueForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MAIL.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.mailQueue.strategy" required>\n <md-option ng-value="\'beepall\'">Beepall</md-option>\n <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n </md-select>\n <div ng-messages="mailQueueForm[\'strategy\'].$error" ng-show="mailQueueForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.mailQueue.timeout" min="1" max="2147483" value="10" ng-required="true">\n\n <div ng-messages="mailQueueForm[\'timeout\'].$error" ng-show="mailQueueForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.mailQueue.description">\n\n <div ng-messages="mailQueueForm[\'description\'].$error" ng-show="mailQueueForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newMailQueue" ng-click="vm.saveMailQueue()" class="send-button md-accent md-raised" ng-disabled="mailQueueForm.$invalid || mailQueueForm.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newMailQueue" ng-click="vm.addNewMailQueue()" class="send-button md-accent md-raised" ng-disabled="mailQueueForm.$invalid" aria-label="ADD" translate="MAIL.ADD_MAILQUEUE" translate-attr-aria-label="MAIL.ADD_MAILQUEUE">\n ADD MAILQUEUE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newMailQueue" ng-click="vm.deleteMailQueue($event)" aria-label="DELETE" translate translate-attr-aria-label="MAIL.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="MAIL.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailQueues/edit/agentadd/agentadd.html",'<md-dialog class="mailQueue-dialog" aria-label="mailQueue" ng-init="vm.onInit()">\n <form name="mailQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MAIL.AGENTADD_MAILQUEUE">Add Agent to mailQueue</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailQueues/edit/teamadd/teamadd.html",'<md-dialog class="mailQueue-dialog" aria-label="mailQueue" ng-init="vm.onInit()">\n <form name="mailQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MAIL.TEAMS_ASSOCIATION">Teams Association</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailQueues/edit/view.html",'<div id="mail-mailQueue" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-mailQueues-button md-icon-button" aria-label="Go to mailQueues" ng-click="vm.gotoMailQueues()" translate translate-attr-aria-label="MAIL.GO_TO_MAILQUEUES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="mailQueue-image" hide-xs>\n <img ng-src="assets/images/business/mailQueues.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.mailQueue.id}}\n <span ng-if="vm.mailQueue.name">{{vm.mailQueue.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="MAIL.CREATED_AT"></span> <span>{{vm.mailQueue.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.teamadddialog(vm.mailQueue, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n <md-tooltip><span translate="MAIL.TEAMADD_MAILQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.mailQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="MAIL.AGENTADD_MAILQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-plus"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveMailQueue()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="mailQueue-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MAIL.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MAIL.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.mailQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="MAIL.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MAIL.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.mailQueue.strategy" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'beepall\'">Beepall</md-option>\n <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n </md-select>\n <div ng-messages="generalForm[\'strategy\'].$error" ng-show="generalForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.mailQueue.timeout" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'timeout\'].$error" ng-show="generalForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MAIL.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MAIL.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.mailQueue.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/mail/views/mailQueues/mailQueues.html",'<div id="mailQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-email" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="MAIL.MAILQUEUES">MailQueues</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="MAIL.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedMailQueues.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedMailQueues =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="MAIL.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-mailQueues-count">\n <span>{{vm.selectedMailQueues.length}}</span>\n <span translate="MAIL.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="MAIL.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllMailQueues()" translate="MAIL.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectMailQueues()" translate="MAIL.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedMailQueues" csv-label="true" filename="mailQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedMailQueues($event)" aria-label="delete selected" translate translate-attr-label="MAIL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- MAILQUEUE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedMailQueues" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getMailQueues">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'MAIL.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'MAIL.NAME\' | translate }}</th>\n <th md-column md-order-by="strategy">{{ \'MAIL.STRATEGY\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.mailQueues.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="MAIL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="mailQueue" md-select-id="id" ng-repeat="mailQueue in vm.mailQueues.rows">\n <td md-cell ng-if="mailQueue.userpic"><img class="avatar" alt="{{mailQueue.name}}" ng-src="api/users/{{mailQueue.id}}/avatar" /></td>\n <td md-cell ng-if="!mailQueue.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{mailQueue.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailQueue, ev) : vm.createOrEditMailQueue($event, mailQueue)" md-cell class="id ">{{mailQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailQueue, ev) : vm.createOrEditMailQueue($event, mailQueue)" md-cell class="name ">{{mailQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(mailQueue, ev) : vm.createOrEditMailQueue($event, mailQueue)" md-cell class="strategy ">{{ vm.arraystrategy[mailQueue.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MAIL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(mailQueue, $event )" translate="MAIL.EDIT_MAILQUEUE">\n Edit MailQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(mailQueue, $event )" translate="MAIL.TEAMADD_MAILQUEUE">\n teamadd MailQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(mailQueue, $event )" translate="MAIL.AGENTADD_MAILQUEUE">\n agentadd MailQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(mailQueue, $event )" translate="MAIL.DELETE_MAILQUEUE">\n Delete MailQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(mailQueue, $event )" translate="MAIL.GOTOREALTIME_MAILQUEUE">\n goToRealtime MailQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.mailQueues.count}}" md-on-paginate="vm.getMailQueues" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / MAILQUEUE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD MAILQUEUE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-mailQueue-button" ng-click="vm.createOrEditMailQueue($event)" aria-label="add mailQueue" translate translate-attr-aria-label="MAIL.ADD_MAILQUEUE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD MAILQUEUE BUTTON --\x3e\n</div>'),e.put("app/main/apps/mail/views/mailSubtatuses/create/dialog.html",'<md-dialog class="mailSubstatus-dialog" aria-label="New MailSubstatus">\n <form name="mailSubstatusForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MAIL.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.mailSubstatus.name" ng-required="true" autofocus>\n\n <div ng-messages="mailSubstatusForm[\'name\'].$error" ng-show="mailSubstatusForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MAIL.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.mailSubstatus.description">\n\n <div ng-messages="mailSubstatusForm[\'description\'].$error" ng-show="mailSubstatusForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MAIL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newMailSubstatus" ng-click="vm.saveMailSubstatus()" class="send-button md-accent md-raised" ng-disabled="mailSubstatusForm.$invalid || mailSubstatusForm.$pristine" aria-label="SAVE" translate="MAIL.SAVE" translate-attr-aria-label="MAIL.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newMailSubstatus" ng-click="vm.addNewMailSubstatus()" class="send-button md-accent md-raised" ng-disabled="mailSubstatusForm.$invalid" aria-label="ADD" translate="MAIL.ADD_MAILSUBSTATUS" translate-attr-aria-label="MAIL.ADD_MAILSUBSTATUS">\n ADD MAILSUBSTATUS\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newMailSubstatus" ng-click="vm.deleteMailSubstatus($event)" aria-label="DELETE" translate translate-attr-aria-label="MAIL.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="MAIL.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/mail/views/mailSubtatuses/mailSubtatuses.html",'<div id="mailSubtatuses" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-email" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="MAIL.MAILSUBSTATUSES">MailSubstatuses</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="MAIL.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedMailSubstatuses.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedMailSubstatuses =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="MAIL.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-mailSubtatuses-count">\n <span>{{vm.selectedMailSubstatuses.length}}</span>\n <span translate="MAIL.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="MAIL.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllMailSubstatuses()" translate="MAIL.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectMailSubstatuses()" translate="MAIL.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedMailSubstatuses" csv-label="true" filename="mailSubtatuses.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedMailSubstatuses($event)" aria-label="delete selected" translate translate-attr-label="MAIL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- MAILSUBSTATUS TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedMailSubstatuses" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getMailSubstatuses">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'MAIL.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'MAIL.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'MAIL.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.mailSubtatuses.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="MAIL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="mailSubstatus" md-select-id="id" ng-repeat="mailSubstatus in vm.mailSubtatuses.rows">\n <td md-cell ng-if="mailSubstatus.userpic"><img class="avatar" alt="{{mailSubstatus.name}}" ng-src="api/users/{{mailSubstatus.id}}/avatar" /></td>\n <td md-cell ng-if="!mailSubstatus.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{mailSubstatus.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditMailSubstatus($event, mailSubstatus)" md-cell class="id ">{{mailSubstatus.id}}</td>\n <td ng-click="vm.createOrEditMailSubstatus($event, mailSubstatus)" md-cell class="name ">{{mailSubstatus.name}}</td>\n <td ng-click="vm.createOrEditMailSubstatus($event, mailSubstatus)" md-cell class="description ">{{mailSubstatus.description}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MAIL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(mailSubstatus, $event )" translate="MAIL.EDIT_MAILSUBSTATUS">\n Edit MailSubstatus\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(mailSubstatus, $event )" translate="MAIL.DELETE_MAILSUBSTATUS">\n Delete MailSubstatus\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.mailSubtatuses.count}}" md-on-paginate="vm.getMailSubstatuses" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / MAILSUBSTATUS TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD MAILSUBSTATUS BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-mailSubstatus-button" ng-click="vm.createOrEditMailSubstatus($event)" aria-label="add mailSubstatus" translate translate-attr-aria-label="MAIL.ADD_MAILSUBSTATUS">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD MAILSUBSTATUS BUTTON --\x3e\n</div>'),e.put("app/main/apps/mail/views/realtime/accounts/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MAIL.ACCOUNTS">Accounts</span>\n <div flex></div>\n <ms-search-bar on-search="vm.vm.getMailAccounts()" query="vm.query" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n\n\x3c!-- AGENT TABLE --\x3e\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getMailAccounts">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'MAIL.NAME\' | translate}}</th>\n <th md-column>{{\'MAIL.KEY\' | translate}}</th>\n <th md-column>{{\'MAIL.TOTAL\' | translate}}</th>\n <th md-column>{{\'MAIL.IN\' | translate}}</th>\n <th md-column>{{\'MAIL.OUT\' | translate}}</th>\n <th md-column>{{\'MAIL.IMAP_STATUS\' | translate}}</th>\n <th md-column>{{\'MAIL.SMTP_STATUS\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.mailAccounts">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="MAIL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="vm.mailAccounts[value]" md-select-id="id" ng-repeat="(id, value) in vm.order">\n <td md-cell>{{vm.mailAccounts[value].name}}</td>\n <td md-cell>{{vm.mailAccounts[value].key}}</td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{(vm.mailAccounts[value].in || 0) + (vm.mailAccounts[value].out || 0)}}</span>\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="icon-arrow-down-bold blue-fg"></md-icon>\n </span>\n <span class="md-capture blue-fg">{{vm.mailAccounts[value].in || 0}}</span>\n <span class="text-boxed" ng-if="mailAccount.in">{{vm.mailAccounts[value].lastIn ? (vm.mailAccounts[value].lastIn | date: \'shortTime\') : \'\'}}</span>\n </div>\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="icon-arrow-up-bold green-fg"></md-icon>\n </span>\n <span class="md-capture green-fg">{{vm.mailAccounts[value].out || 0}}</span>\n <span class="text-boxed" ng-if="mailAccount.out">{{vm.mailAccounts[value].lastOut ? (vm.mailAccounts[value].lastOut | date: \'shortTime\') : \'\'}}</span>\n </div>\n </td>\n <td md-cell>\n <div layout="row" layout-align="start center">\n <div layout="column" layout-align="center center">\n <md-button class="md-icon-button" aria-label="Status">\n <md-tooltip>{{vm.mailAccounts[value].Imap.messageStatus}}</md-tooltip>\n <div ng-switch="vm.mailAccounts[value].Imap.status">\n <md-icon ng-switch-when="error" md-font-icon="icon-alert yellow-fg"></md-icon>\n <md-icon ng-switch-when="disabled" md-font-icon="icon-close grey-fg"></md-icon>\n <md-icon ng-switch-default md-font-icon="icon-checkbox-marked-circle-outline green-fg"></md-icon>\n </div>\n </md-button>\n <span class="md-caption grey-fg">{{ (\'MAIL.\' + vm.mailAccounts[value].Imap.status.toUpperCase()) | translate}}</span>\n </div>\n <span class="text-boxed" ng-if="vm.mailAccounts[value].active && (vm.mailAccounts[value].Imap.lastSync && vm.mailAccounts[value].Imap.lastSync != \'\')">{{vm.mailAccounts[value].Imap.lastSync | date: \'shortTime\'}}</span>\n </div>\n </td>\n <td md-cell>\n <div layout="row" layout-align="start center" ng-if="vm.mailAccounts[value].Smtp.status">\n <div layout="column" layout-align="center center">\n <md-button class="md-icon-button" aria-label="Status">\n <md-tooltip>{{vm.mailAccounts[value].Smtp.messageStatus}}</md-tooltip>\n <md-icon md-font-icon="{{ vm.mailAccounts[value].Smtp.status == \'error\' ? \'icon-alert yellow-fg\' : \'icon-checkbox-marked-circle-outline green-fg\'}}"></md-icon>\n </md-button>\n <span class="md-caption grey-fg">{{ (\'MAIL.\' + vm.mailAccounts[value].Smtp.status.toUpperCase()) | translate}}</span>\n </div>\n <span class="text-boxed">{{vm.mailAccounts[value].Smtp.lastSync | date: \'shortTime\'}}</span>\n </div>\n <span class="md-caption grey-fg" ng-if="!vm.mailAccounts[value].Smtp.status">{{ \'MAIL.NEVER_VERIFIED\' | translate }}</span>\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="4">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.goToMailAccount($event, vm.mailAccounts[value])" translate="MAIL.EDIT_ACCOUNT">\n Edit Account\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.verifySmtp($event, vm.mailAccounts[value])" translate="MAIL.VERIFY_SMTP">\n Verify Smtp\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getMailAccounts" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/mail/views/realtime/queues/view.html",'<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MAIL.QUEUES">Queues</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'MAIL.NAME\' | translate }}</th>\n <th md-column>{{ \'MAIL.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'MAIL.PAUSED\' | translate }}</th>\n <th md-column>{{ \'MAIL.WAITING\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.queues.count > 0">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="MAIL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="queue" md-select-id="id" ng-repeat="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedIn }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MAIL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="MAIL.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" translate="MAIL.AGENTSADD_QUEUE">\n Add Agents to queue\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'MAIL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MAIL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MAIL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),e.put("app/main/apps/mail/views/realtime/realtime.html",'<div id="realtime" class="page-layout simple tabbed" layout="column" ng-cloak>\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.QUEUES">Queues</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MAIL.ACCOUNTS">Accounts</span>\n </md-tab-label>\n </md-tab>\n </md-tabs>\n\n <md-card ui-view></md-card>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/marketplace/views/plugins/create/dialog.html",'<md-dialog class="plugin-dialog" aria-label="New Plugin">\n <form name="pluginForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.plugin.name" ng-required="true" autofocus>\n\n <div ng-messages="pluginForm[\'name\'].$error" ng-show="pluginForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.TYPE">Type</label>\n <input type="text" name="type" ng-model="vm.plugin.type" ng-disabled="!vm.newPlugin">\n\n <div ng-messages="pluginForm[\'type\'].$error" ng-show="pluginForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.plugin.active" aria-label="Active" ng-disabled="!vm.newPlugin"><span translate="MARKETPLACE.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.plugin.description">\n\n <div ng-messages="pluginForm[\'description\'].$error" ng-show="pluginForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.ICON">Icon</label>\n <input type="text" name="icon" ng-model="vm.plugin.icon" ng-required="true">\n\n <div ng-messages="pluginForm[\'icon\'].$error" ng-show="pluginForm[\'icon\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.ICON_REQUIRED">Icon field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.SIDEBAR">Sidebar</label>\n <md-select name="sidebar" ng-model="vm.plugin.sidebar" required>\n <md-option ng-value="\'always\'">Always</md-option>\n <md-option ng-value="\'adminOnly\'">Admin Only</md-option>\n <md-option ng-value="\'agentOnly\'">Agent Only</md-option>\n <md-option ng-value="\'never\'">Never</md-option>\n </md-select>\n <div ng-messages="pluginForm[\'sidebar\'].$error" ng-show="pluginForm[\'sidebar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.SIDEBAR_REQUIRED">Sidebar field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.sidebar === \'always\' || vm.plugin.sidebar === \'adminOnly\'" class="md-block">\n <label translate="MARKETPLACE.ADMINURL">AdminUrl</label>\n <input type="text" name="adminUrl" ng-model="vm.plugin.adminUrl">\n\n <div ng-messages="pluginForm[\'adminUrl\'].$error" ng-show="pluginForm[\'adminUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.ADMINURL_REQUIRED">AdminUrl field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.sidebar === \'always\' || vm.plugin.sidebar === \'agentOnly\'" class="md-block">\n <label translate="MARKETPLACE.AGENTURL">AgentUrl</label>\n <input type="text" name="agentUrl" ng-model="vm.plugin.agentUrl">\n\n <div ng-messages="pluginForm[\'agentUrl\'].$error" ng-show="pluginForm[\'agentUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.AGENTURL_REQUIRED">AgentUrl field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.type === \'script\'" class="md-block">\n <label translate="MARKETPLACE.SCRIPTNAME">ScriptName</label>\n <input type="text" name="scriptName" ng-model="vm.plugin.scriptName" ng-disabled="!vm.newPlugin">\n\n <div ng-messages="pluginForm[\'scriptName\'].$error" ng-show="pluginForm[\'scriptName\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.SCRIPTNAME_REQUIRED">ScriptName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.type === \'script\'" class="md-block">\n <label translate="MARKETPLACE.SCRIPTPATH">ScriptPath</label>\n <input type="text" name="scriptPath" ng-model="vm.plugin.scriptPath" ng-required="true">\n\n <div ng-messages="pluginForm[\'scriptPath\'].$error" ng-show="pluginForm[\'scriptPath\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.SCRIPTPATH_REQUIRED">ScriptPath field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.VERSION">Version</label>\n <input type="text" name="version" ng-model="vm.plugin.version" ng-disabled="!vm.newPlugin">\n\n <div ng-messages="pluginForm[\'version\'].$error" ng-show="pluginForm[\'version\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.VERSION_REQUIRED">Version field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newPlugin" ng-click="vm.savePlugin()" class="send-button md-accent md-raised" ng-disabled="pluginForm.$invalid || pluginForm.$pristine" aria-label="SAVE" translate="MARKETPLACE.SAVE" translate-attr-aria-label="MARKETPLACE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newPlugin" ng-click="vm.addNewPlugin()" class="send-button md-accent md-raised" ng-disabled="pluginForm.$invalid" aria-label="ADD" translate="MARKETPLACE.ADD_PLUGIN" translate-attr-aria-label="MARKETPLACE.ADD_PLUGIN">\n ADD PLUGIN\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newPlugin" ng-click="vm.deletePlugin($event)" aria-label="DELETE" translate translate-attr-aria-label="MARKETPLACE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="MARKETPLACE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/marketplace/views/plugins/edit/view.html",'<div id="marketplace-plugin" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-plugins-button md-icon-button" aria-label="Go to plugins" ng-click="vm.gotoPlugins()" translate translate-attr-aria-label="MARKETPLACE.GO_TO_PLUGINS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="plugin-image" hide-xs>\n <img ng-src="assets/images/business/plugins.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.plugin.id}}\n <span ng-if="vm.plugin.name">{{vm.plugin.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="MARKETPLACE.CREATED_AT"></span> <span>{{vm.plugin.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.savePlugin()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="MARKETPLACE.SAVE" translate-attr-aria-label="MARKETPLACE.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="MARKETPLACE.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="plugin-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MARKETPLACE.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.plugin.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.TYPE">Type</label>\n <input type="text" name="type" ng-model="vm.plugin.type" disabled>\n\n <div ng-messages="generalForm[\'type\'].$error" ng-show="generalForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.plugin.active" aria-label="Active" ng-disabled="true"><span translate="MARKETPLACE.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.plugin.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.ICON">Icon</label>\n <input type="text" name="icon" ng-model="vm.plugin.icon" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'icon\'].$error" ng-show="generalForm[\'icon\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.ICON_REQUIRED">Icon field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.SIDEBAR">Sidebar</label>\n <md-select name="sidebar" ng-model="vm.plugin.sidebar" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'always\'">Always</md-option>\n <md-option ng-value="\'adminOnly\'">Admin Only</md-option>\n <md-option ng-value="\'agentOnly\'">Agent Only</md-option>\n <md-option ng-value="\'never\'">Never</md-option>\n </md-select>\n <div ng-messages="generalForm[\'sidebar\'].$error" ng-show="generalForm[\'sidebar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.SIDEBAR_REQUIRED">Sidebar field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.sidebar === \'always\' || vm.plugin.sidebar === \'adminOnly\'" class="md-block">\n <label translate="MARKETPLACE.ADMINURL">AdminUrl</label>\n <input type="text" name="adminUrl" ng-model="vm.plugin.adminUrl" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'adminUrl\'].$error" ng-show="generalForm[\'adminUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.ADMINURL_REQUIRED">AdminUrl field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.sidebar === \'always\' || vm.plugin.sidebar === \'agentOnly\'" class="md-block">\n <label translate="MARKETPLACE.AGENTURL">AgentUrl</label>\n <input type="text" name="agentUrl" ng-model="vm.plugin.agentUrl" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'agentUrl\'].$error" ng-show="generalForm[\'agentUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.AGENTURL_REQUIRED">AgentUrl field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.type === \'script\'" class="md-block">\n <label translate="MARKETPLACE.SCRIPTNAME">ScriptName</label>\n <input type="text" name="scriptName" ng-model="vm.plugin.scriptName" disabled>\n\n <div ng-messages="generalForm[\'scriptName\'].$error" ng-show="generalForm[\'scriptName\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.SCRIPTNAME_REQUIRED">ScriptName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.plugin.type === \'script\'" class="md-block">\n <label translate="MARKETPLACE.SCRIPTPATH">ScriptPath</label>\n <input type="text" name="scriptPath" ng-model="vm.plugin.scriptPath" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'scriptPath\'].$error" ng-show="generalForm[\'scriptPath\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.SCRIPTPATH_REQUIRED">ScriptPath field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MARKETPLACE.VERSION">Version</label>\n <input type="text" name="version" ng-model="vm.plugin.version" disabled>\n\n <div ng-messages="generalForm[\'version\'].$error" ng-show="generalForm[\'version\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MARKETPLACE.ERRORS.VERSION_REQUIRED">Version field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/marketplace/views/plugins/plugins.html",'<div id="plugins" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-cart" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="MARKETPLACE.PLUGINS">Plugins</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="MARKETPLACE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedPlugins.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedPlugins =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="MARKETPLACE.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-plugins-count">\n <span>{{vm.selectedPlugins.length}}</span>\n <span translate="MARKETPLACE.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="MARKETPLACE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllPlugins()" translate="MARKETPLACE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectPlugins()" translate="MARKETPLACE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedPlugins" csv-label="true" filename="plugins.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedPlugins($event)" aria-label="delete selected" translate translate-attr-label="MARKETPLACE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n <div ng-if="vm.installing">\n <md-card class="md-whiteframe-1dp padding-20" flex>\n <div layout="column" layout-align="center center">\n <span class="md-title md-accent-fg padding-20 text-bold" translate="MARKETPLACE.INSTALLING">Installing</span>\n <md-progress-linear md-mode="indeterminate" class="md-accent padding-20"></md-progress-linear>\n </div>\n </md-card>\n </div>\n\n \x3c!-- PLUGIN TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedPlugins" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getPlugins">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="name">{{ \'MARKETPLACE.NAME\' | translate }}</th>\n <th md-column md-order-by="type">{{ \'MARKETPLACE.TYPE\' | translate }}</th>\n <th md-column md-order-by="active">{{ \'MARKETPLACE.ACTIVE\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'MARKETPLACE.DESCRIPTION\' | translate }}</th>\n <th md-column md-order-by="version">{{ \'MARKETPLACE.VERSION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.plugins.rows.length">\n <td md-cell colspan="6">\n <div layout="row" layout-align="center center">\n <span translate="MARKETPLACE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="plugin" md-select-id="id" ng-repeat="plugin in vm.plugins.rows">\n <td md-cell ng-if="plugin.userpic"><img class="avatar" alt="{{plugin.name}}" ng-src="api/users/{{plugin.id}}/avatar" /></td>\n <td md-cell ng-if="!plugin.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{plugin.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(plugin, ev) : vm.createOrEditPlugin($event, plugin)" md-cell class="name ">{{plugin.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(plugin, ev) : vm.createOrEditPlugin($event, plugin)" md-cell class="type ">{{plugin.type}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(plugin, ev) : vm.createOrEditPlugin($event, plugin)" md-cell class="active ">\n <md-icon md-colors="{color: {{plugin.active ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{plugin.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(plugin, ev) : vm.createOrEditPlugin($event, plugin)" md-cell class="description ">{{plugin.description}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(plugin, ev) : vm.createOrEditPlugin($event, plugin)" md-cell class="version ">{{plugin.version}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MARKETPLACE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit && !plugin.active">\n\n <md-button ng-click="vm.installplugin(plugin, $event )" translate="MARKETPLACE.INSTALL_PLUGIN">\n Install Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(plugin, $event )" translate="MARKETPLACE.EDIT_PLUGIN">\n Edit Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit && plugin.active && plugin.type == \'script\'">\n\n <md-button ng-click="vm.stopplugin(plugin, $event )" translate="MARKETPLACE.STOP_PLUGIN">\n Stop Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit && plugin.active && plugin.type == \'script\'">\n\n <md-button ng-click="vm.restartplugin(plugin, $event )" translate="MARKETPLACE.RESTART_PLUGIN">\n Restart Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.downloadfile2(plugin, $event , \'plugins\' )" translate="MARKETPLACE.DOWNLOAD_PLUGIN">\n Download Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit && plugin.active">\n\n <md-button ng-click="vm.uninstallplugin(plugin, $event )" translate="MARKETPLACE.UNINSTALL_PLUGIN">\n Uninstall Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(plugin, $event )" translate="MARKETPLACE.DELETE_PLUGIN">\n Delete Plugin\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'MARKETPLACE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MARKETPLACE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MARKETPLACE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.plugins.count}}" md-on-paginate="vm.getPlugins" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / PLUGIN TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- UPLOAD PLUGIN BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="upload-plugin-button" ng-click="vm.uploadPlugin($event)" aria-label="upload plugin" translate translate-attr-aria-label="MARKETPLACE.UPLOAD_PLUGIN">\n <md-icon md-font-icon="icon-upload"></md-icon>\n </md-button>\n \x3c!-- / UPLOAD PLUGIN BUTTON --\x3e\n</div>'),e.put("app/main/apps/marketplace/views/plugins/upload/dialog.html",'<md-dialog class="upload-dialog" aria-label="Upload ">\n <form name="uploadForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <div id="plugin-uploader" ng-hide="vm.uploadState == \'uploading\'" flow-init="vm.ngFlowOptions" flow-name="vm.ngFlow.flow" flow-files-submitted="vm.upload()" flow-file-added="vm.fileAdded($file)" flow-file-success="vm.fileSuccess($file, $message)" flow-error="vm.uploadError($file, $message)" flow-complete="vm.uploadComplete()" flow-drop flow-drag-enter="vm.dropping=true" flow-drag-leave="vm.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="MARKETPLACE.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn>\n Upload\n </md-button>\n <span class="secondary-text mt-8" translate="MARKETPLACE.DROP_TO_UPLOAD_MESSAGE">You can also drop your file here to upload.</span>\n </div>\n </div>\n\n <div layout="column" layout-align="space-between center" ng-show="vm.uploadState == \'uploading\'">\n <div>\n <span translate="MARKETPLACE.UPLOADING">Uploading</span>\n <span>{{vm.plugin.file.name}}</span>\n </div>\n <md-progress-linear md-mode="indeterminate"></md-progress-linear>\n </div>\n\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center"></div>\n <div layout="row">\n <md-button ng-click="vm.closeDialog()" ng-hide="vm.uploadState == \'uploading\'" class="md-accent md-raised" aria-label="FINISH" translate="MARKETPLACE.FINISH" translate-attr-aria-label="MARKETPLACE.FINISH">\n FINISH\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/create/dialog.html",'<md-dialog class="ivrCampaign-dialog" aria-label="New IvrCampaign">\n <form name="ivrCampaignForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.ivrCampaign.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newIvrCampaign">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NAME"></span></div>\n <div ng-messages="ivrCampaignForm[\'name\'].$error" ng-show="ivrCampaignForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MOTIONDIALER.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.ivrCampaign.active" aria-label="Active"><span translate="MOTIONDIALER.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.TRUNK">Trunk</label>\n <md-select name="TrunkId" ng-model="vm.ivrCampaign.TrunkId" required>\n <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks" ng-disabled="TrunkId.canSelect === false">{{ TrunkId.name }}</md-option>\n </md-select>\n <div ng-messages="ivrCampaignForm[\'TrunkId\'].$error" ng-show="ivrCampaignForm[\'TrunkId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.TRUNK_REQUIRED">Trunk field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.INTERVAL">Interval</label>\n <md-select name="IntervalId" ng-model="vm.ivrCampaign.IntervalId" required>\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval" ng-disabled="IntervalId.canSelect === false">{{ IntervalId.name }}</md-option>\n </md-select>\n <div ng-messages="ivrCampaignForm[\'IntervalId\'].$error" ng-show="ivrCampaignForm[\'IntervalId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.INTERVAL_REQUIRED">Interval field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CHECKDUPLICATE">CheckDuplicate</label>\n <md-select name="dialCheckDuplicateType" ng-model="vm.ivrCampaign.dialCheckDuplicateType" required>\n\n <md-option ng-value="\'always\'"> {{ \'MOTIONDIALER.ALWAYS\' | translate }} </md-option>\n\n <md-option ng-value="\'never\'"> {{ \'MOTIONDIALER.NEVER\' | translate }} </md-option>\n\n <md-option ng-value="\'onlyIfOpen\'"> {{ \'MOTIONDIALER.ONLY_IF_OPEN\' | translate }} </md-option>\n </md-select>\n <div ng-messages="ivrCampaignForm[\'dialCheckDuplicateType\'].$error" ng-show="ivrCampaignForm[\'dialCheckDuplicateType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CHECKDUPLICATE_REQUIRED">CheckDuplicate field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CALLYSQUAREPROJECT">CallySquareProject</label>\n <md-select name="SquareProjectId" ng-model="vm.ivrCampaign.SquareProjectId" required>\n <md-option ng-value="SquareProjectId.id" ng-repeat="SquareProjectId in vm.projects" ng-disabled="SquareProjectId.canSelect === false">{{ SquareProjectId.name }}</md-option>\n </md-select>\n <div ng-messages="ivrCampaignForm[\'SquareProjectId\'].$error" ng-show="ivrCampaignForm[\'SquareProjectId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECT_REQUIRED">CallySquareProject field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CONCURRENTCALLS">ConcurrentCalls</label>\n <input type="number" name="limitCalls" ng-model="vm.ivrCampaign.limitCalls" min="1" max="200" value="30" ng-required="true">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.CONCURRENTCALLS"></span></div>\n <div ng-messages="ivrCampaignForm[\'limitCalls\'].$error" ng-show="ivrCampaignForm[\'limitCalls\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_REQUIRED">ConcurrentCalls field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">ConcurrentCalls must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_MUST_BE_LESS_THAN_OR_EQUAL_TO">ConcurrentCalls must be a valid greater or equal than</span> <span>200</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.ivrCampaign.description">\n\n <div ng-messages="ivrCampaignForm[\'description\'].$error" ng-show="ivrCampaignForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newIvrCampaign" ng-click="vm.saveIvrCampaign()" class="send-button md-accent md-raised" ng-disabled="ivrCampaignForm.$invalid || ivrCampaignForm.$pristine" aria-label="SAVE" translate="MOTIONDIALER.SAVE" translate-attr-aria-label="MOTIONDIALER.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newIvrCampaign" ng-click="vm.addNewIvrCampaign()" class="send-button md-accent md-raised" ng-disabled="ivrCampaignForm.$invalid" aria-label="ADD" translate="MOTIONDIALER.ADD_IVRCAMPAIGN" translate-attr-aria-label="MOTIONDIALER.ADD_IVRCAMPAIGN">\n ADD IVRCAMPAIGN\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newIvrCampaign" ng-click="vm.deleteIvrCampaign($event)" aria-label="DELETE" translate translate-attr-aria-label="MOTIONDIALER.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="MOTIONDIALER.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/edit/blacklistadd/blacklistadd.html",'<md-dialog class="ivrCampaign-dialog" aria-label="ivrCampaign" ng-init="vm.onInit()">\n <form name="ivrCampaignForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MOTIONDIALER.BLACKLISTADD_IVRCAMPAIGN">Add List in IVRCAMPAIGN</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect ng-hide="vm.loading" options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveLists()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/edit/clone/clone.html",'<md-dialog class="ivrCampaign-dialog" aria-label="Clone IvrCampaign">\n <form name="ivrCampaignForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.ivrCampaign.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newIvrCampaign">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NAME"></span></div>\n <div ng-messages="ivrCampaignForm[\'name\'].$error" ng-show="ivrCampaignForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MOTIONDIALER.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <md-button type="submit" ng-click="vm.cloneIvrCampaign()" class="send-button md-accent md-raised" ng-disabled="ivrCampaignForm.$invalid" aria-label="CLONE" translate="MOTIONDIALER.CLONE_IVRCAMPAIGN" translate-attr-aria-label="MOTIONDIALER.CLONE_IVRCAMPAIGN">\n CLONE IVRCAMPAIGN\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/edit/hoppers/dialog.html",'<md-dialog class="hopper-dialog" aria-label="New Hopper">\n <form name="hopperForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <div class="md-block">\n <label translate="MOTIONDIALER.SCHEDULEDAT">ScheduledAt</label>\n <md-content layout="row" class="md-padding">\n <div flex class="md-block">\n <mdp-date-picker mdp-open-on-click name="scheduledatDate" mdp-placeholder="Date" mdp-format="YYYY-MM-DD" ng-model="vm.hopper.scheduledat" ng-init="vm.hopper.scheduledat = vm.getDateFromString(vm.hopper.scheduledat)">\n <div ng-messages="hopperForm.dateRangeFrom.$error" ng-show="hopperForm.dateRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DATE_REQUIRED">Date is required</span>\n </div>\n <div ng-message="format">\n <span translate="MOTIONDIALER.ERRORS.DATE_INVALID">Date is invalid</span>\n </div>\n </div>\n </mdp-date-picker>\n </div>\n <div flex class="md-block">\n <mdp-time-picker mdp-open-on-click name="scheduledatTime" mdp-placeholder="Time" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.hopper.scheduledat" ng-init="vm.hopper.scheduledat = vm.getDateFromString(vm.hopper.scheduledat)">\n <div ng-messages="hopperForm.timeRangeFrom.$error" ng-show="hopperForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.TIME_REQUIRED">Time is required</span>\n </div>\n <div ng-message="format">\n <span translate="MOTIONDIALER.ERRORS.TIME_INVALID">Time is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </md-content>\n </div>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.PRIORITY">Priority</label>\n <md-select name="priority" ng-model="vm.hopper.priority">\n <md-option ng-value="\'4\'">Highest</md-option>\n <md-option ng-value="\'3\'">High</md-option>\n <md-option ng-value="\'2\'">Medium</md-option>\n <md-option ng-value="\'1\'">Low</md-option>\n <md-option ng-value="\'0\'">Lowest</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PRIORITY"></span></div>\n <div ng-messages="hopperForm[\'priority\'].$error" ng-show="hopperForm[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newHopper" ng-click="vm.saveHopper()" class="send-button md-accent md-raised" ng-disabled="hopperForm.$invalid || hopperForm.$pristine" aria-label="SAVE" translate="MOTIONDIALER.SAVE" translate-attr-aria-label="MOTIONDIALER.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newHopper" ng-click="vm.addNewHopper()" class="send-button md-accent md-raised" ng-disabled="hopperForm.$invalid" aria-label="ADD" translate="MOTIONDIALER.ADD_HOPPER" translate-attr-aria-label="MOTIONDIALER.ADD_HOPPER">\n ADD HOPPER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newHopper" ng-click="vm.deleteHopper($event)" aria-label="DELETE" translate translate-attr-aria-label="MOTIONDIALER.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="MOTIONDIALER.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/edit/listadd/listadd.html",'<md-dialog class="ivrCampaign-dialog" aria-label="ivrCampaign" ng-init="vm.onInit()">\n <form name="ivrCampaignForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MOTIONDIALER.LISTADD_IVRCAMPAIGN">Add List in IVRCAMPAIGN</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect ng-hide="vm.loading" options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveLists()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/edit/resetlist/resetlist.html",'<md-dialog class="queueCampaign-dialog" aria-label="queueCampaign">\n <form name="queueCampaignForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MOTIONDIALER.RESETLIST ">Reset List</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-disabled="vm.loading" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ng-hide="vm.loading">\n <div layout="row" layout-wrap flex>\n <div flex-xs flex="50">\n <md-checkbox aria-label="Select All" ng-checked="vm.isChecked()" md-indeterminate="vm.isIndeterminate()" ng-click="vm.toggleAll()">\n <span ng-if="vm.isChecked()" translate="MOTIONDIALER.UNSELECTALL"></span>\n <span ng-if="!vm.isChecked()" translate="MOTIONDIALER.SELECTALL"></span>\n </md-checkbox>\n </div>\n <div flex-xs flex="50">\n </div>\n <div flex="{{vm.items.length > 10 ? 50 : 100 }}" ng-repeat="item in vm.items">\n <md-checkbox ng-checked="vm.exists(item, vm.selected)" ng-click="vm.toggle(item, vm.selected)">\n {{ item.name | limitTo:40 }}\n </md-checkbox>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions ng-hide="vm.loading" layout="row" layout-align="end center">\n <div>\n </div>\n <md-button type="submit" ng-click="vm.listSelected()" class="send-button md-accent md-raised" ng-disabled="vm.loading" aria-label="RESET" translate="MOTIONDIALER.RESET" translate-attr-aria-label="MOTIONDIALER.RESET">\n SAVE\n </md-button>\n </md-dialog-actions>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/edit/view.html",'<div id="motiondialer-ivrCampaign" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-ivrCampaigns-button md-icon-button" aria-label="Go to ivrCampaigns" ng-click="vm.gotoIvrCampaigns()" translate translate-attr-aria-label="MOTIONDIALER.GO_TO_IVRCAMPAIGNS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="ivrCampaign-image" hide-xs>\n <img ng-src="assets/images/business/ivrCampaigns.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.ivrCampaign.id}}\n <span ng-if="vm.ivrCampaign.name">{{vm.ivrCampaign.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="MOTIONDIALER.CREATED_AT"></span> <span>{{vm.ivrCampaign.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.clonedialog(vm.ivrCampaign, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="clone">\n <md-tooltip><span translate="MOTIONDIALER.CLONE_IVRCAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.listadddialog(vm.ivrCampaign, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="listadd">\n <md-tooltip><span translate="MOTIONDIALER.LISTADD_IVRCAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-format-list-numbers"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.blacklistadddialog(vm.ivrCampaign, $event)" class="md-fab md-warn md-icon-button" aria-label="blacklistadd">\n <md-tooltip><span translate="MOTIONDIALER.BLACKLISTADD_IVRCAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-block-helper"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.resetlistdialog(vm.ivrCampaign, $event)" class="md-fab md-warn md-icon-button" aria-label="resetlist">\n <md-tooltip><span translate="MOTIONDIALER.RESETLIST_IVRCAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-restore"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.ivrCampaign, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="MOTIONDIALER.GOTO_IVRCAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-cast"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveIvrCampaign()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (campaignForm.$invalid) || (originateForm.$invalid) || (globalForm.$invalid) || (congestionForm.$invalid) || (busyForm.$invalid) || (noanswerForm.$invalid) || (nosuchnumberForm.$invalid) || (dropForm.$invalid) || (abandonedForm.$invalid) || (machineForm.$invalid) || (agentrejectForm.$invalid) || (advancedForm.$invalid) || (globalintervalForm.$invalid) || (timezoneForm.$invalid) || (amdForm.$invalid) || (hopperStatisticsForm.$invalid) || (hoppersForm.$invalid) || (hopperHistoriesForm.$invalid) || (hopperFinalsForm.$invalid) || (hopperBlacksForm.$invalid)" translate="MOTIONDIALER.SAVE" translate-attr-aria-label="MOTIONDIALER.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="ivrCampaign-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.ivrCampaign.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MOTIONDIALER.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.ivrCampaign.active" aria-label="Active" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.TRUNK">Trunk</label>\n <md-select name="TrunkId" ng-model="vm.ivrCampaign.TrunkId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks" ng-disabled="TrunkId.canSelect === false">{{ TrunkId.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'TrunkId\'].$error" ng-show="generalForm[\'TrunkId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.TRUNK_REQUIRED">Trunk field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.BACKUPTRUNK">BackupTrunk</label>\n <md-select name="TrunkBackupId" ng-model="vm.ivrCampaign.TrunkBackupId" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="TrunkBackupId.id" ng-repeat="TrunkBackupId in vm.trunks" ng-disabled="TrunkBackupId.canSelect === false">{{ TrunkBackupId.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'TrunkBackupId\'].$error" ng-show="generalForm[\'TrunkBackupId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.BACKUPTRUNK_REQUIRED">BackupTrunk field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.INTERVAL">Interval</label>\n <md-select name="IntervalId" ng-model="vm.ivrCampaign.IntervalId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval" ng-disabled="IntervalId.canSelect === false">{{ IntervalId.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'IntervalId\'].$error" ng-show="generalForm[\'IntervalId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.INTERVAL_REQUIRED">Interval field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CHECKDUPLICATE">CheckDuplicate</label>\n <md-select name="dialCheckDuplicateType" ng-model="vm.ivrCampaign.dialCheckDuplicateType" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'always\'"> {{ \'MOTIONDIALER.ALWAYS\' | translate }} </md-option>\n\n <md-option ng-value="\'never\'"> {{ \'MOTIONDIALER.NEVER\' | translate }} </md-option>\n\n <md-option ng-value="\'onlyIfOpen\'"> {{ \'MOTIONDIALER.ONLY_IF_OPEN\' | translate }} </md-option>\n </md-select>\n <div ng-messages="generalForm[\'dialCheckDuplicateType\'].$error" ng-show="generalForm[\'dialCheckDuplicateType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CHECKDUPLICATE_REQUIRED">CheckDuplicate field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CUTDIGIT">CutDigit</label>\n <input type="number" name="dialCutDigit" ng-model="vm.ivrCampaign.dialCutDigit" min="0" max="15" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'dialCutDigit\'].$error" ng-show="generalForm[\'dialCutDigit\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_REQUIRED">CutDigit field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CutDigit must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_MUST_BE_LESS_THAN_OR_EQUAL_TO">CutDigit must be a valid greater or equal than</span> <span>15</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.ivrCampaign.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.CAMPAIGN">CAMPAIGN</span>\n </md-tab-label>\n <md-tab-body>\n <div class="ivrCampaign-detail-form-container campaign md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.CAMPAIGN">CAMPAIGN</div>\n </div>\n <form name="campaignForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CALLYSQUAREPROJECT">CallySquareProject</label>\n <md-select name="SquareProjectId" ng-model="vm.ivrCampaign.SquareProjectId" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="SquareProjectId.id" ng-repeat="SquareProjectId in vm.projects" ng-disabled="SquareProjectId.canSelect === false">{{ SquareProjectId.name }}</md-option>\n </md-select>\n <div ng-messages="campaignForm[\'SquareProjectId\'].$error" ng-show="campaignForm[\'SquareProjectId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECT_REQUIRED">CallySquareProject field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CONCURRENTCALLS">ConcurrentCalls</label>\n <input type="number" name="limitCalls" ng-model="vm.ivrCampaign.limitCalls" min="1" max="200" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.CONCURRENTCALLS"></span></div>\n <div ng-messages="campaignForm[\'limitCalls\'].$error" ng-show="campaignForm[\'limitCalls\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_REQUIRED">ConcurrentCalls field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">ConcurrentCalls must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CONCURRENTCALLS_MUST_BE_LESS_THAN_OR_EQUAL_TO">ConcurrentCalls must be a valid greater or equal than</span> <span>200</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container originate md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.ORIGINATE">ORIGINATE</div>\n </div>\n <form name="originateForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ORIGINATECALLERIDNAME">OriginateCallerIdName</label>\n <input type="text" name="dialOriginateCallerIdName" ng-model="vm.ivrCampaign.dialOriginateCallerIdName" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ORIGINATECALLERIDNAME"></span></div>\n <div ng-messages="originateForm[\'dialOriginateCallerIdName\'].$error" ng-show="originateForm[\'dialOriginateCallerIdName\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATECALLERIDNAME_REQUIRED">OriginateCallerIdName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ORIGINATECALLERIDNUMBER">OriginateCallerIdNumber</label>\n <input type="text" name="dialOriginateCallerIdNumber" ng-model="vm.ivrCampaign.dialOriginateCallerIdNumber" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ORIGINATECALLERIDNUMBER"></span></div>\n <div ng-messages="originateForm[\'dialOriginateCallerIdNumber\'].$error" ng-show="originateForm[\'dialOriginateCallerIdNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATECALLERIDNUMBER_REQUIRED">OriginateCallerIdNumber field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.RANDOMLASTDIGITCALLERIDNUMBER">RandomLastDigitCallerIdNumber</label>\n <input type="number" name="dialRandomLastDigitCallerIdNumber" ng-model="vm.ivrCampaign.dialRandomLastDigitCallerIdNumber" min="0" max="15" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.RANDOMLASTDIGITCALLERIDNUMBER"></span></div>\n <div ng-messages="originateForm[\'dialRandomLastDigitCallerIdNumber\'].$error" ng-show="originateForm[\'dialRandomLastDigitCallerIdNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_REQUIRED">RandomLastDigitCallerIdNumber field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_MUST_BE_GREATER_THAN_OR_EQUAL_TO">RandomLastDigitCallerIdNumber must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_MUST_BE_LESS_THAN_OR_EQUAL_TO">RandomLastDigitCallerIdNumber must be a valid greater or equal than</span> <span>15</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ORIGINATETIMEOUT">OriginateTimeout</label>\n <input type="number" name="dialOriginateTimeout" ng-model="vm.ivrCampaign.dialOriginateTimeout" min="1" max="999" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ORIGINATETIMEOUT"></span></div>\n <div ng-messages="originateForm[\'dialOriginateTimeout\'].$error" ng-show="originateForm[\'dialOriginateTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_REQUIRED">OriginateTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">OriginateTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">OriginateTimeout must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.PREFIX">Prefix</label>\n <input type="text" name="dialPrefix" ng-model="vm.ivrCampaign.dialPrefix" ng-pattern="/^\\d+$/" value="" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREFIX"></span></div>\n <div ng-messages="originateForm[\'dialPrefix\'].$error" ng-show="originateForm[\'dialPrefix\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.PREFIX_REQUIRED">Prefix field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MOTIONDIALER.ERRORS.PREFIX_MUST_VALID_PATTERN" translate-values="{ regex: \'/^\\d+$/\' }">Prefix must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.RETRYANDFREQUENCY">RETRYANDFREQUENCY</span>\n </md-tab-label>\n <md-tab-body>\n <div class="ivrCampaign-detail-form-container global md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.GLOBAL">GLOBAL</div>\n </div>\n <form name="globalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.GLOBALMAXRETRY">GlobalMaxRetry</label>\n <input type="number" name="dialGlobalMaxRetry" ng-model="vm.ivrCampaign.dialGlobalMaxRetry" min="1" max="999" value="4" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.GLOBALMAXRETRY"></span></div>\n <div ng-messages="globalForm[\'dialGlobalMaxRetry\'].$error" ng-show="globalForm[\'dialGlobalMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_REQUIRED">GlobalMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">GlobalMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">GlobalMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container congestion md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.CONGESTION">CONGESTION</div>\n </div>\n <form name="congestionForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CONGESTIONMAXRETRY">CongestionMaxRetry</label>\n <input type="number" name="dialCongestionMaxRetry" ng-model="vm.ivrCampaign.dialCongestionMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.CONGESTIONMAXRETRY"></span></div>\n <div ng-messages="congestionForm[\'dialCongestionMaxRetry\'].$error" ng-show="congestionForm[\'dialCongestionMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_REQUIRED">CongestionMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CongestionMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">CongestionMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CONGESTIONRETRYTIME">CongestionRetryTime</label>\n <input type="number" name="dialCongestionRetryFrequency" ng-model="vm.ivrCampaign.dialCongestionRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.CONGESTIONRETRYTIME"></span></div>\n <div ng-messages="congestionForm[\'dialCongestionRetryFrequency\'].$error" ng-show="congestionForm[\'dialCongestionRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_REQUIRED">CongestionRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CongestionRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">CongestionRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container busy md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.BUSY">BUSY</div>\n </div>\n <form name="busyForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.BUSYMAXRETRY">BusyMaxRetry</label>\n <input type="number" name="dialBusyMaxRetry" ng-model="vm.ivrCampaign.dialBusyMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.BUSYMAXRETRY"></span></div>\n <div ng-messages="busyForm[\'dialBusyMaxRetry\'].$error" ng-show="busyForm[\'dialBusyMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_REQUIRED">BusyMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">BusyMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">BusyMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.BUSYRETRYTIME">BusyRetryTime</label>\n <input type="number" name="dialBusyRetryFrequency" ng-model="vm.ivrCampaign.dialBusyRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.BUSYRETRYTIME"></span></div>\n <div ng-messages="busyForm[\'dialBusyRetryFrequency\'].$error" ng-show="busyForm[\'dialBusyRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_REQUIRED">BusyRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">BusyRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">BusyRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container noanswer md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.NOANSWER">NOANSWER</div>\n </div>\n <form name="noanswerForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NOANSWERMAXRETRY">NoAnswerMaxRetry</label>\n <input type="number" name="dialNoAnswerMaxRetry" ng-model="vm.ivrCampaign.dialNoAnswerMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NOANSWERMAXRETRY"></span></div>\n <div ng-messages="noanswerForm[\'dialNoAnswerMaxRetry\'].$error" ng-show="noanswerForm[\'dialNoAnswerMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_REQUIRED">NoAnswerMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoAnswerMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoAnswerMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NOANSWERRETRYTIME">NoAnswerRetryTime</label>\n <input type="number" name="dialNoAnswerRetryFrequency" ng-model="vm.ivrCampaign.dialNoAnswerRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NOANSWERRETRYTIME"></span></div>\n <div ng-messages="noanswerForm[\'dialNoAnswerRetryFrequency\'].$error" ng-show="noanswerForm[\'dialNoAnswerRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_REQUIRED">NoAnswerRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoAnswerRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoAnswerRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container nosuchnumber md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.NOSUCHNUMBER">NOSUCHNUMBER</div>\n </div>\n <form name="nosuchnumberForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NOSUCHNUMBERMAXRETRY">NoSuchNumberMaxRetry</label>\n <input type="number" name="dialNoSuchNumberMaxRetry" ng-model="vm.ivrCampaign.dialNoSuchNumberMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NOSUCHNUMBERMAXRETRY"></span></div>\n <div ng-messages="nosuchnumberForm[\'dialNoSuchNumberMaxRetry\'].$error" ng-show="nosuchnumberForm[\'dialNoSuchNumberMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_REQUIRED">NoSuchNumberMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoSuchNumberMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoSuchNumberMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NOSUCHNUMBERRETRYTIME">NoSuchNumberRetryTime</label>\n <input type="number" name="dialNoSuchNumberRetryFrequency" ng-model="vm.ivrCampaign.dialNoSuchNumberRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NOSUCHNUMBERRETRYTIME"></span></div>\n <div ng-messages="nosuchnumberForm[\'dialNoSuchNumberRetryFrequency\'].$error" ng-show="nosuchnumberForm[\'dialNoSuchNumberRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_REQUIRED">NoSuchNumberRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoSuchNumberRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoSuchNumberRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container drop md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.DROP">DROP</div>\n </div>\n <form name="dropForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DROPMAXRETRY">DropMaxRetry</label>\n <input type="number" name="dialDropMaxRetry" ng-model="vm.ivrCampaign.dialDropMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.DROPMAXRETRY"></span></div>\n <div ng-messages="dropForm[\'dialDropMaxRetry\'].$error" ng-show="dropForm[\'dialDropMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_REQUIRED">DropMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">DropMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">DropMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DROPRETRYTIME">DropRetryTime</label>\n <input type="number" name="dialDropRetryFrequency" ng-model="vm.ivrCampaign.dialDropRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.DROPRETRYTIME"></span></div>\n <div ng-messages="dropForm[\'dialDropRetryFrequency\'].$error" ng-show="dropForm[\'dialDropRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_REQUIRED">DropRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">DropRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">DropRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container abandoned md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.ABANDONED">ABANDONED</div>\n </div>\n <form name="abandonedForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ABANDONEDMAXRETRY">AbandonedMaxRetry</label>\n <input type="number" name="dialAbandonedMaxRetry" ng-model="vm.ivrCampaign.dialAbandonedMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ABANDONEDMAXRETRY"></span></div>\n <div ng-messages="abandonedForm[\'dialAbandonedMaxRetry\'].$error" ng-show="abandonedForm[\'dialAbandonedMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_REQUIRED">AbandonedMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AbandonedMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">AbandonedMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ABANDONEDRETRYTIME">AbandonedRetryTime</label>\n <input type="number" name="dialAbandonedRetryFrequency" ng-model="vm.ivrCampaign.dialAbandonedRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ABANDONEDRETRYTIME"></span></div>\n <div ng-messages="abandonedForm[\'dialAbandonedRetryFrequency\'].$error" ng-show="abandonedForm[\'dialAbandonedRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_REQUIRED">AbandonedRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AbandonedRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">AbandonedRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container machine md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.MACHINE">MACHINE</div>\n </div>\n <form name="machineForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.MACHINEMAXRETRY">MachineMaxRetry</label>\n <input type="number" name="dialMachineMaxRetry" ng-model="vm.ivrCampaign.dialMachineMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.MACHINEMAXRETRY"></span></div>\n <div ng-messages="machineForm[\'dialMachineMaxRetry\'].$error" ng-show="machineForm[\'dialMachineMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_REQUIRED">MachineMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MachineMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">MachineMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.MACHINERETRYTIME">MachineRetryTime</label>\n <input type="number" name="dialMachineRetryFrequency" ng-model="vm.ivrCampaign.dialMachineRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.MACHINERETRYTIME"></span></div>\n <div ng-messages="machineForm[\'dialMachineRetryFrequency\'].$error" ng-show="machineForm[\'dialMachineRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_REQUIRED">MachineRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MachineRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">MachineRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container agentreject md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.AGENTREJECT">AGENTREJECT</div>\n </div>\n <form name="agentrejectForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.AGENTREJECTMAXRETRY">AgentRejectMaxRetry</label>\n <input type="number" name="dialAgentRejectMaxRetry" ng-model="vm.ivrCampaign.dialAgentRejectMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AGENTREJECTMAXRETRY"></span></div>\n <div ng-messages="agentrejectForm[\'dialAgentRejectMaxRetry\'].$error" ng-show="agentrejectForm[\'dialAgentRejectMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_REQUIRED">AgentRejectMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AgentRejectMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">AgentRejectMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.AGENTREJECTRETRYTIME">AgentRejectRetryTime</label>\n <input type="number" name="dialAgentRejectRetryFrequency" ng-model="vm.ivrCampaign.dialAgentRejectRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AGENTREJECTRETRYTIME"></span></div>\n <div ng-messages="agentrejectForm[\'dialAgentRejectRetryFrequency\'].$error" ng-show="agentrejectForm[\'dialAgentRejectRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_REQUIRED">AgentRejectRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AgentRejectRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">AgentRejectRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="ivrCampaign-detail-form-container advanced md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.ADVANCED">ADVANCED</div>\n </div>\n <form name="advancedForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DIALORDERBYSCHEDULEDAT">DialOrderByScheduledAt</label>\n <md-select name="dialOrderByScheduledAt" ng-model="vm.ivrCampaign.dialOrderByScheduledAt" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'DESC\'"> {{ \'MOTIONDIALER.DESC\' | translate }} </md-option>\n\n <md-option ng-value="\'ASC\'"> {{ \'MOTIONDIALER.ASC\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.DIALORDERBYSCHEDULEDAT"></span></div>\n <div ng-messages="advancedForm[\'dialOrderByScheduledAt\'].$error" ng-show="advancedForm[\'dialOrderByScheduledAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DIALORDERBYSCHEDULEDAT_REQUIRED">DialOrderByScheduledAt field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container globalinterval md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.GLOBALINTERVAL">GLOBALINTERVAL</div>\n </div>\n <form name="globalintervalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.GLOBALINTERVAL">GlobalInterval</label>\n <input type="text" name="dialGlobalInterval" ng-model="vm.ivrCampaign.dialGlobalInterval" value="07:00-22:00,*,*,*" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.GLOBALINTERVAL"></span></div>\n <div ng-messages="globalintervalForm[\'dialGlobalInterval\'].$error" ng-show="globalintervalForm[\'dialGlobalInterval\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.GLOBALINTERVAL_REQUIRED">GlobalInterval field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container timezone md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.TIMEZONE">TIMEZONE</div>\n </div>\n <form name="timezoneForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.TIMEZONE">Timezone</label>\n <ms-timezone name="dialTimezone" ng-model="vm.ivrCampaign.dialTimezone" autofocus ng-disabled="!vm.crudPermissions.canEdit"></ms-timezone>\n <div class="hint"><span translate="MOTIONDIALER.HELP.TIMEZONE"></span></div>\n <div ng-messages="timezoneForm[\'dialTimezone\'].$error" ng-show="timezoneForm[dialTimezone].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.TIMEZONE_REQUIRED">Timezone field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="ivrCampaign-detail-form-container amd md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.AMD">AMD</div>\n </div>\n <form name="amdForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.ivrCampaign.dialAMDActive" aria-label="AMDActive" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.AMDACTIVE">AMDActive</span></md-switch>\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDACTIVE"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDINITIALSILENCE">AMDInitialSilence</label>\n <input type="number" name="dialAMDInitialSilence" ng-model="vm.ivrCampaign.dialAMDInitialSilence" min="0" value="2500" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDINITIALSILENCE"></span></div>\n <div ng-messages="amdForm[\'dialAMDInitialSilence\'].$error" ng-show="amdForm[\'dialAMDInitialSilence\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDINITIALSILENCE_REQUIRED">AMDInitialSilence field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDINITIALSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDInitialSilence must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDGREETING">AMDGreeting</label>\n <input type="number" name="dialAMDGreeting" ng-model="vm.ivrCampaign.dialAMDGreeting" min="0" value="1500" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDGREETING"></span></div>\n <div ng-messages="amdForm[\'dialAMDGreeting\'].$error" ng-show="amdForm[\'dialAMDGreeting\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDGREETING_REQUIRED">AMDGreeting field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDGREETING_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDGreeting must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDAFTERGREETINGSILENCE">AMDAfterGreetingSilence</label>\n <input type="number" name="dialAMDAfterGreetingSilence" ng-model="vm.ivrCampaign.dialAMDAfterGreetingSilence" min="0" value="800" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDAFTERGREETINGSILENCE"></span></div>\n <div ng-messages="amdForm[\'dialAMDAfterGreetingSilence\'].$error" ng-show="amdForm[\'dialAMDAfterGreetingSilence\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDAFTERGREETINGSILENCE_REQUIRED">AMDAfterGreetingSilence field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDAFTERGREETINGSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDAfterGreetingSilence must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDTOTALANALYSISTIME">AMDTotalAnalysisTime</label>\n <input type="number" name="dialAMDTotalAnalysisTime" ng-model="vm.ivrCampaign.dialAMDTotalAnalysisTime" min="0" value="5000" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDTOTALANALYSISTIME"></span></div>\n <div ng-messages="amdForm[\'dialAMDTotalAnalysisTime\'].$error" ng-show="amdForm[\'dialAMDTotalAnalysisTime\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDTOTALANALYSISTIME_REQUIRED">AMDTotalAnalysisTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDTOTALANALYSISTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDTotalAnalysisTime must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDMINWORDLENGTH">AMDMinWordLength</label>\n <input type="number" name="dialAMDMinWordLength" ng-model="vm.ivrCampaign.dialAMDMinWordLength" min="0" value="100" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDMINWORDLENGTH"></span></div>\n <div ng-messages="amdForm[\'dialAMDMinWordLength\'].$error" ng-show="amdForm[\'dialAMDMinWordLength\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDMINWORDLENGTH_REQUIRED">AMDMinWordLength field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDMINWORDLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDMinWordLength must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDBETWEENWORDSSILENCE">AMDBetweenWordsSilence</label>\n <input type="number" name="dialAMDBetweenWordsSilence" ng-model="vm.ivrCampaign.dialAMDBetweenWordsSilence" min="0" value="50" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDBETWEENWORDSSILENCE"></span></div>\n <div ng-messages="amdForm[\'dialAMDBetweenWordsSilence\'].$error" ng-show="amdForm[\'dialAMDBetweenWordsSilence\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDBETWEENWORDSSILENCE_REQUIRED">AMDBetweenWordsSilence field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDBETWEENWORDSSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDBetweenWordsSilence must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDMAXIMUMNUMBEROFWORDS">AMDMaximumNumberOfWords</label>\n <input type="number" name="dialAMDMaximumNumberOfWords" ng-model="vm.ivrCampaign.dialAMDMaximumNumberOfWords" min="0" value="3" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDMAXIMUMNUMBEROFWORDS"></span></div>\n <div ng-messages="amdForm[\'dialAMDMaximumNumberOfWords\'].$error" ng-show="amdForm[\'dialAMDMaximumNumberOfWords\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMNUMBEROFWORDS_REQUIRED">AMDMaximumNumberOfWords field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMNUMBEROFWORDS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDMaximumNumberOfWords must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDSILENCETHRESHOLD">AMDSilenceThreshold</label>\n <input type="number" name="dialAMDSilenceThreshold" ng-model="vm.ivrCampaign.dialAMDSilenceThreshold" min="0" max="32767" value="256" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDSILENCETHRESHOLD"></span></div>\n <div ng-messages="amdForm[\'dialAMDSilenceThreshold\'].$error" ng-show="amdForm[\'dialAMDSilenceThreshold\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_REQUIRED">AMDSilenceThreshold field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDSilenceThreshold must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_MUST_BE_LESS_THAN_OR_EQUAL_TO">AMDSilenceThreshold must be a valid greater or equal than</span> <span>32767</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.ivrCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDMAXIMUMWORDLENGTH">AMDMaximumWordLength</label>\n <input type="number" name="dialAMDMaximumWordLength" ng-model="vm.ivrCampaign.dialAMDMaximumWordLength" min="0" value="5000" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDMAXIMUMWORDLENGTH"></span></div>\n <div ng-messages="amdForm[\'dialAMDMaximumWordLength\'].$error" ng-show="amdForm[\'dialAMDMaximumWordLength\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMWORDLENGTH_REQUIRED">AMDMaximumWordLength field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMWORDLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDMaximumWordLength must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.HOPPERS">HOPPERS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="ivrCampaign-detail-form-container hopperstatistics md-background-bg md-whiteframe-1dp">\n <div ng-controller="IvrCampaignHopperStatisticsController as vm_hs" ng-init="vm_hs.init(vm.ivrCampaign)">\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.HOPPERWIDGET">Hoppers</span>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_hs.init(vm.ivrCampaign)" aria-label="refresh Hopper" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{(vm_hs.total || 0) + (vm_hs.closed || 0)}}</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.TOTAL\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{vm_hs.fresh || 0}} ({{vm_hs.total ? ((((vm_hs.fresh || 0) * 100)/((vm_hs.closed || 0) + (vm_hs.total || 0))) | number: 2) : 0}}%)</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.FRESH\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{vm_hs.total ? (vm_hs.total - (vm_hs.fresh || 0)) : 0}} ({{vm_hs.total ? ((((vm_hs.total - (vm_hs.fresh || 0)) * 100)/((vm_hs.closed || 0) + (vm_hs.total || 0))) | number: 2) : 0}}%)</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.OPEN\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{vm_hs.closed ? (vm_hs.closed || 0) : 0}} ({{vm_hs.closed ? ((((vm_hs.closed) * 100)/(vm_hs.closed + (vm_hs.total || 0))) | number: 2) : 0}}%)</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.CLOSED\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n </div>\n\n </div>\n <div class="ivrCampaign-detail-form-container hoppers md-background-bg md-whiteframe-1dp">\n <div ng-controller="IvrCampaignHoppersController as vm_dc" ng-init="vm_dc.init(vm.ivrCampaign, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedIvrCampaignHoppers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.HOPPERS">Hoppers</span>\n <ms-search-bar on-search="vm_dc.getIvrCampaignHoppers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_dc.getIvrCampaignHoppers()" aria-label="refresh Hoppers" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedIvrCampaignHoppers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedIvrCampaignHoppers.length}} {{vm_dc.selectedIvrCampaignHoppers.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedIvrCampaignHoppers" csv-label="true" filename="ivrCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedIvrCampaignHoppers($event)" aria-label="delete selected" translate translate-attr-label="MOTIONDIALER.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedIvrCampaignHoppers" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getIvrCampaignHoppers">\n <tr md-row>\n <th md-column md-order-by="ContactId">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="phone">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column md-order-by="countcongestionretry">\n {{ \'MOTIONDIALER.CONGESTION\' | translate }}\n </th>\n <th md-column md-order-by="countbusyretry">\n {{ \'MOTIONDIALER.BUSY\' | translate }}\n </th>\n <th md-column md-order-by="countnoanswerretry">\n {{ \'MOTIONDIALER.NOANSWER\' | translate }}\n </th>\n <th md-column md-order-by="countnosuchnumberretry">\n {{ \'MOTIONDIALER.NOSUCHNUMBER\' | translate }}\n </th>\n <th md-column md-order-by="countdropretry">\n {{ \'MOTIONDIALER.DROP\' | translate }}\n </th>\n <th md-column md-order-by="countabandonedretry">\n {{ \'MOTIONDIALER.ABANDONED\' | translate }}\n </th>\n <th md-column md-order-by="countmachineretry">\n {{ \'MOTIONDIALER.MACHINE\' | translate }}\n </th>\n <th md-column md-order-by="countagentrejectretry">\n {{ \'MOTIONDIALER.AGENTREJECT\' | translate }}\n </th>\n <th md-column md-order-by="scheduledat">\n {{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}\n </th>\n <th md-column md-order-by="priority">\n {{ \'MOTIONDIALER.PRIORITY\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="hopper" md-select-id="id" ng-repeat="hopper in vm_dc.ivrCampaignHoppers.rows">\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.ContactId}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell privacy ng-cloak>\n {{hopper.phone}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countcongestionretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countbusyretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countnoanswerretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countnosuchnumberretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countdropretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countabandonedretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countmachineretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{hopper.countagentrejectretry}}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{ hopper.scheduledat | formatdate }}\n </td>\n <td ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" md-cell>\n {{ vm_dc.arraypriority[hopper.priority].option }} </td>\n\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditIvrCampaignHopper($event, hopper)" translate="MOTIONDIALER.EDIT_HOPPER">\n Edit Hopper\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(hopper, $event)" translate="MOTIONDIALER.DELETE_HOPPER">\n Delete Hopper\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.ivrCampaignHoppers.rows.length">\n <td md-cell colspan="15">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPER_AVAILABLE">No hopper available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.ivrCampaignHoppers.count}}" md-on-paginate="vm_dc.getIvrCampaignHoppers" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.HISTORY">HISTORY</span>\n </md-tab-label>\n <md-tab-body>\n <div class="ivrCampaign-detail-form-container hopperhistories md-background-bg md-whiteframe-1dp">\n <div ng-controller="IvrCampaignHopperHistoriesController as vm_dc" ng-init="vm_dc.init(vm.ivrCampaign, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedIvrCampaignHopperHistories.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.HOPPERHISTORIES">HopperHistories</span>\n <ms-search-bar on-search="vm_dc.getIvrCampaignHopperHistories()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_dc.getIvrCampaignHopperHistories()" aria-label="refresh HopperHistories" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERHISTORIES">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedIvrCampaignHopperHistories.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedIvrCampaignHopperHistories.length}} {{vm_dc.selectedIvrCampaignHopperHistories.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedIvrCampaignHopperHistories" csv-label="true" filename="ivrCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedIvrCampaignHopperHistories" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getIvrCampaignHopperHistories">\n <tr md-row>\n <th md-column md-order-by="uniqueid">\n {{ \'MOTIONDIALER.UNIQUEID\' | translate }}\n </th>\n <th md-column md-order-by="ContactId">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="calleridnum">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column md-order-by="calleridname">\n {{ \'MOTIONDIALER.NAME\' | translate }}\n </th>\n <th md-column md-order-by="statedesc">\n {{ \'MOTIONDIALER.STATUS\' | translate }}\n </th>\n <th md-column md-order-by="scheduledat">\n {{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}\n </th>\n <th md-column md-order-by="starttime">\n {{ \'MOTIONDIALER.STARTTIME\' | translate }}\n </th>\n <th md-column md-order-by="endtime">\n {{ \'MOTIONDIALER.ENDTIME\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="hopperHistory" md-select-id="id" ng-repeat="hopperHistory in vm_dc.ivrCampaignHopperHistories.rows">\n <td md-cell>\n {{hopperHistory.uniqueid}}\n </td>\n <td md-cell>\n {{hopperHistory.ContactId}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperHistory.calleridnum}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperHistory.calleridname}}\n </td>\n <td md-cell>\n {{hopperHistory.statedesc}}\n </td>\n <td md-cell>\n {{ hopperHistory.scheduledat | formatdate }}\n </td>\n <td md-cell>\n {{ hopperHistory.starttime | formatdate }}\n </td>\n <td md-cell>\n {{ hopperHistory.endtime | formatdate }}\n </td>\n <td md-cell class="actions">\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.ivrCampaignHopperHistories.rows.length">\n <td md-cell colspan="11">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPERHISTORY_AVAILABLE">No hopperhistory available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.ivrCampaignHopperHistories.count}}" md-on-paginate="vm_dc.getIvrCampaignHopperHistories" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.FINAL">FINAL</span>\n </md-tab-label>\n <md-tab-body>\n <div class="ivrCampaign-detail-form-container hopperfinals md-background-bg md-whiteframe-1dp">\n <div ng-controller="IvrCampaignHopperFinalsController as vm_dc" ng-init="vm_dc.init(vm.ivrCampaign, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedIvrCampaignHopperFinals.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.HOPPERFINALS">HopperFinals</span>\n <ms-search-bar on-search="vm_dc.getIvrCampaignHopperFinals()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_dc.getIvrCampaignHopperFinals()" aria-label="refresh HopperFinals" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERFINALS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="vm_dc.countContactsIvrCampaignHopperFinal(vm_dc.query.id); $mdOpenMenu($event);">\n <md-icon md-font-icon="icon-backup-restore"></md-icon>\n <md-tooltip><span translate="MOTIONDIALER.RESTORECONTACTS"></span></md-tooltip>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(3)">\n <span translate="MOTIONDIALER.NOANSWER ">NoAnswer</span>\n <span class="badge">({{vm_dc.contacts.noAnswerContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(5)">\n <span translate="MOTIONDIALER.BUSY ">Busy</span>\n <span class="badge">({{vm_dc.contacts.busyContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(8)">\n <span translate="MOTIONDIALER.CONGESTION ">Congestion</span>\n <span class="badge">({{vm_dc.contacts.congestionContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(10)">\n <span translate="MOTIONDIALER.DROPPED ">Drop</span>\n <span class="badge">({{vm_dc.contacts.dropContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(11)">\n <span translate="MOTIONDIALER.ABANDONED ">Abandoned</span>\n <span class="badge">({{vm_dc.contacts.abandonedContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(22)">\n <span translate="MOTIONDIALER.RECALLFAILEDTIMEOUT">Recall</span>\n <span class="badge">({{vm_dc.contacts.reCallContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(0)">\n <span translate="MOTIONDIALER.NO_SUCH_NUMBER">NoSuchNumber</span>\n <span class="badge">({{vm_dc.contacts.noSuchContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm_dc.moveContactsIvrCampaignHopperFinal(19)">\n <span translate="MOTIONDIALER.ANSWERING_MACHINE">AnsweringMachine</span>\n <span class="badge">({{vm_dc.contacts.answeringMachine}})</span>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedIvrCampaignHopperFinals.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedIvrCampaignHopperFinals.length}} {{vm_dc.selectedIvrCampaignHopperFinals.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedIvrCampaignHopperFinals" csv-label="true" filename="ivrCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.moveSelectedIvrCampaignHopperFinals($event)" aria-label="move selected" translate translate-attr-label="MOTIONDIALER.MOVE_SELECTED">\n <md-icon md-font-icon="icon-restore"></md-icon>\n <md-tooltip><span translate="MOTIONDIALER.RESTORECONTACTS"></span></md-tooltip>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedIvrCampaignHopperFinals" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getIvrCampaignHopperFinals">\n <tr md-row>\n <th md-column md-order-by="uniqueid">\n {{ \'MOTIONDIALER.UNIQUEID\' | translate }}\n </th>\n <th md-column md-order-by="ContactId">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="calleridnum">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column md-order-by="calleridname">\n {{ \'MOTIONDIALER.NAME\' | translate }}\n </th>\n <th md-column md-order-by="statedesc">\n {{ \'MOTIONDIALER.STATUS\' | translate }}\n </th>\n <th md-column md-order-by="countcongestionretry">\n {{ \'MOTIONDIALER.CONGESTION\' | translate }}\n </th>\n <th md-column md-order-by="countbusyretry">\n {{ \'MOTIONDIALER.BUSY\' | translate }}\n </th>\n <th md-column md-order-by="countnoanswerretry">\n {{ \'MOTIONDIALER.NOANSWER\' | translate }}\n </th>\n <th md-column md-order-by="countnosuchnumberretry">\n {{ \'MOTIONDIALER.NOSUCHNUMBER\' | translate }}\n </th>\n <th md-column md-order-by="countdropretry">\n {{ \'MOTIONDIALER.DROP\' | translate }}\n </th>\n <th md-column md-order-by="countabandonedretry">\n {{ \'MOTIONDIALER.ABANDONED\' | translate }}\n </th>\n <th md-column md-order-by="countmachineretry">\n {{ \'MOTIONDIALER.MACHINE\' | translate }}\n </th>\n <th md-column md-order-by="countagentrejectretry">\n {{ \'MOTIONDIALER.AGENTREJECT\' | translate }}\n </th>\n <th md-column md-order-by="starttime">\n {{ \'MOTIONDIALER.STARTTIME\' | translate }}\n </th>\n <th md-column md-order-by="endtime">\n {{ \'MOTIONDIALER.ENDTIME\' | translate }}\n </th>\n <th md-column md-order-by="disposition">\n {{ \'MOTIONDIALER.DISPOSITION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="hopperFinal" md-select-id="id" ng-repeat="hopperFinal in vm_dc.ivrCampaignHopperFinals.rows">\n <td md-cell>\n {{hopperFinal.uniqueid}}\n </td>\n <td md-cell>\n {{hopperFinal.ContactId}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperFinal.calleridnum}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperFinal.calleridname}}\n </td>\n <td md-cell>\n {{hopperFinal.statedesc}}\n </td>\n <td md-cell>\n {{hopperFinal.countcongestionretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countbusyretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countnoanswerretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countnosuchnumberretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countdropretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countabandonedretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countmachineretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countagentrejectretry}}\n </td>\n <td md-cell>\n {{ hopperFinal.starttime | formatdate }}\n </td>\n <td md-cell>\n {{ hopperFinal.endtime | formatdate }}\n </td>\n <td md-cell>\n {{hopperFinal.disposition}}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveConfirm(hopperFinal, $event)" translate="MOTIONDIALER.MOVE_HOPPERFINAL">\n Move HopperFinal\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.ivrCampaignHopperFinals.rows.length">\n <td md-cell colspan="28">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPERFINAL_AVAILABLE">No hopperfinal available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.ivrCampaignHopperFinals.count}}" md-on-paginate="vm_dc.getIvrCampaignHopperFinals" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.BLACKLIST">BLACKLIST</span>\n </md-tab-label>\n <md-tab-body>\n <div class="ivrCampaign-detail-form-container hopperblacks md-background-bg md-whiteframe-1dp">\n <div ng-controller="IvrCampaignHopperBlacksController as vm_dc" ng-init="vm_dc.init(vm.ivrCampaign, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedIvrCampaignHopperBlacks.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.HOPPERBLACKS">HopperBlacks</span>\n <ms-search-bar on-search="vm_dc.getIvrCampaignHopperBlacks()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedIvrCampaignHopperBlacks.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedIvrCampaignHopperBlacks.length}} {{vm_dc.selectedIvrCampaignHopperBlacks.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedIvrCampaignHopperBlacks" csv-label="true" filename="ivrCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedIvrCampaignHopperBlacks" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getIvrCampaignHopperBlacks">\n <tr md-row>\n <th md-column md-order-by="ContactId">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="phone">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="hopperBlack" md-select-id="id" ng-repeat="hopperBlack in vm_dc.ivrCampaignHopperBlacks.rows">\n <td md-cell>\n {{hopperBlack.ContactId}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperBlack.phone}}\n </td>\n <td md-cell class="actions">\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.ivrCampaignHopperBlacks.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPERBLACK_AVAILABLE">No hopperblack available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.ivrCampaignHopperBlacks.count}}" md-on-paginate="vm_dc.getIvrCampaignHopperBlacks" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/motiondialer/views/ivrCampaigns/ivrCampaigns.html",'<div id="ivrCampaigns" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-fire" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="MOTIONDIALER.IVRCAMPAIGNS">IvrCampaigns</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="MOTIONDIALER.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedIvrCampaigns.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedIvrCampaigns =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="MOTIONDIALER.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-ivrCampaigns-count">\n <span>{{vm.selectedIvrCampaigns.length}}</span>\n <span translate="MOTIONDIALER.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="MOTIONDIALER.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllIvrCampaigns()" translate="MOTIONDIALER.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectIvrCampaigns()" translate="MOTIONDIALER.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedIvrCampaigns" csv-label="true" filename="ivrCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedIvrCampaigns($event)" aria-label="delete selected" translate translate-attr-label="MOTIONDIALER.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- IVRCAMPAIGN TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedIvrCampaigns" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getIvrCampaigns">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'MOTIONDIALER.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'MOTIONDIALER.NAME\' | translate }}</th>\n <th md-column md-order-by="active">{{ \'MOTIONDIALER.ACTIVE\' | translate }}</th>\n <th md-column md-order-by="TrunkId">{{ \'MOTIONDIALER.TRUNK\' | translate }}</th>\n <th md-column md-order-by="SquareProjectId">{{ \'MOTIONDIALER.CALLYSQUAREPROJECT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.ivrCampaigns.rows.length">\n <td md-cell colspan="6">\n <div layout="row" layout-align="center center">\n <span translate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="ivrCampaign" md-select-id="id" ng-repeat="ivrCampaign in vm.ivrCampaigns.rows">\n <td md-cell ng-if="ivrCampaign.userpic"><img class="avatar" alt="{{ivrCampaign.name}}" ng-src="api/users/{{ivrCampaign.id}}/avatar" /></td>\n <td md-cell ng-if="!ivrCampaign.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{ivrCampaign.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(ivrCampaign, ev) : vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="id ">{{ivrCampaign.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(ivrCampaign, ev) : vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="name ">{{ivrCampaign.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(ivrCampaign, ev) : vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="active ">\n <md-icon md-colors="{color: {{ivrCampaign.active ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{ivrCampaign.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(ivrCampaign, ev) : vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="TrunkId ">{{ (vm.trunks | filter : {\'id\':ivrCampaign.TrunkId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(ivrCampaign, ev) : vm.createOrEditIvrCampaign($event, ivrCampaign)" md-cell class="SquareProjectId ">{{ (vm.projects | filter : {\'id\':ivrCampaign.SquareProjectId} : true)[0].name }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(ivrCampaign, $event )" translate="MOTIONDIALER.EDIT_IVRCAMPAIGN">\n Edit IvrCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.clonedialog(ivrCampaign, $event )" translate="MOTIONDIALER.CLONE_IVRCAMPAIGN">\n clone IvrCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.listadddialog(ivrCampaign, $event )" translate="MOTIONDIALER.LISTADD_IVRCAMPAIGN">\n listadd IvrCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.blacklistadddialog(ivrCampaign, $event )" translate="MOTIONDIALER.BLACKLISTADD_IVRCAMPAIGN">\n blacklistadd IvrCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(ivrCampaign, $event )" translate="MOTIONDIALER.DELETE_IVRCAMPAIGN">\n Delete IvrCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(ivrCampaign, $event )" translate="MOTIONDIALER.GOTOREALTIME_IVRCAMPAIGN">\n goToRealtime IvrCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.ivrCampaigns.count}}" md-on-paginate="vm.getIvrCampaigns" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / IVRCAMPAIGN TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD IVRCAMPAIGN BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-ivrCampaign-button" ng-click="vm.createOrEditIvrCampaign($event)" aria-label="add ivrCampaign" translate translate-attr-aria-label="MOTIONDIALER.ADD_IVRCAMPAIGN">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD IVRCAMPAIGN BUTTON --\x3e\n</div>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/create/dialog.html",'<md-dialog class="queueCampaign-dialog" aria-label="New QueueCampaign">\n <form name="queueCampaignForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.queueCampaign.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newQueueCampaign">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NAME"></span></div>\n <div ng-messages="queueCampaignForm[\'name\'].$error" ng-show="queueCampaignForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MOTIONDIALER.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.dialActive" aria-label="Active"><span translate="MOTIONDIALER.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.TRUNK">Trunk</label>\n <md-select name="TrunkId" ng-model="vm.queueCampaign.TrunkId" required>\n <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks" ng-disabled="TrunkId.canSelect === false">{{ TrunkId.name }}</md-option>\n </md-select>\n <div ng-messages="queueCampaignForm[\'TrunkId\'].$error" ng-show="queueCampaignForm[\'TrunkId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.TRUNK_REQUIRED">Trunk field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod != \'preview\'" class="md-block">\n <label translate="MOTIONDIALER.INTERVAL">Interval</label>\n <md-select name="IntervalId" ng-model="vm.queueCampaign.IntervalId" required>\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval" ng-disabled="IntervalId.canSelect === false">{{ IntervalId.name }}</md-option>\n </md-select>\n <div ng-messages="queueCampaignForm[\'IntervalId\'].$error" ng-show="queueCampaignForm[\'IntervalId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.INTERVAL_REQUIRED">Interval field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CHECKDUPLICATE">CheckDuplicate</label>\n <md-select name="dialCheckDuplicateType" ng-model="vm.queueCampaign.dialCheckDuplicateType" required>\n\n <md-option ng-value="\'always\'"> {{ \'MOTIONDIALER.ALWAYS\' | translate }} </md-option>\n\n <md-option ng-value="\'never\'"> {{ \'MOTIONDIALER.NEVER\' | translate }} </md-option>\n\n <md-option ng-value="\'onlyIfOpen\'"> {{ \'MOTIONDIALER.ONLY_IF_OPEN\' | translate }} </md-option>\n </md-select>\n <div ng-messages="queueCampaignForm[\'dialCheckDuplicateType\'].$error" ng-show="queueCampaignForm[\'dialCheckDuplicateType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CHECKDUPLICATE_REQUIRED">CheckDuplicate field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.METHOD">Method</label>\n <md-select name="dialMethod" ng-model="vm.queueCampaign.dialMethod" required>\n <md-option ng-value="\'progressive\'">Progressive</md-option>\n <md-option ng-value="\'power\'">PowerDialing</md-option>\n <md-option ng-value="\'predictive\'">Predictive</md-option>\n <md-option ng-value="\'preview\'">Preview</md-option>\n <md-option ng-value="\'booked\'">BookedProgressive</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.METHOD"></span></div>\n <div ng-messages="queueCampaignForm[\'dialMethod\'].$error" ng-show="queueCampaignForm[\'dialMethod\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.METHOD_REQUIRED">Method field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod == \'power\'" class="md-block">\n <span translate="MOTIONDIALER.POWERLEVEL">PowerLevel</span>\n <div class="hint"><span translate="MOTIONDIALER.HELP.POWERLEVEL"></span></div>\n <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPowerLevel" min="1" max="10" step="0.1" class="md-accent"></md-slider>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n <label translate="MOTIONDIALER.PREDICTIVEOPTIMIZATION">PredictiveOptimization</label>\n <md-select name="dialPredictiveOptimization" ng-model="vm.queueCampaign.dialPredictiveOptimization">\n\n <md-option ng-value="\'agentBusyFactor\'"> {{ \'MOTIONDIALER.AGENTBUSYFACTOR\' | translate }} </md-option>\n\n <md-option ng-value="\'dropRate\'"> {{ \'MOTIONDIALER.DROPRATE\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEOPTIMIZATION"></span></div>\n <div ng-messages="queueCampaignForm[\'dialPredictiveOptimization\'].$error" ng-show="queueCampaignForm[\'dialPredictiveOptimization\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.PREDICTIVEOPTIMIZATION_REQUIRED">PredictiveOptimization field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n <span translate="MOTIONDIALER.PREDICTIVEOPTIMIZATIONPERCENTAGE">PredictiveOptimizationPercentage</span>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEOPTIMIZATIONPERCENTAGE"></span></div>\n <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPredictiveOptimizationPercentage" min="1" max="95" step="0.1" class="md-accent"></md-slider>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n <span translate="MOTIONDIALER.PREDICTIVEINTERVAL">PredictiveInterval</span>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEINTERVAL"></span></div>\n <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPredictiveInterval" min="5" max="30" step="1" class="md-accent"></md-slider>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod != \'preview\'" class="md-block">\n <label translate="MOTIONDIALER.MAXCONCURRENTCALLS">MaxConcurrentCalls</label>\n <input type="number" name="dialLimitQueue" ng-model="vm.queueCampaign.dialLimitQueue" min="0" max="9999" value="0" ng-required="true">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.MAXCONCURRENTCALLS"></span></div>\n <div ng-messages="queueCampaignForm[\'dialLimitQueue\'].$error" ng-show="queueCampaignForm[\'dialLimitQueue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_REQUIRED">MaxConcurrentCalls field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MaxConcurrentCalls must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_MUST_BE_LESS_THAN_OR_EQUAL_TO">MaxConcurrentCalls must be a valid greater or equal than</span> <span>9999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.QUEUETIMEOUT">QueueTimeout</label>\n <input type="number" name="dialQueueTimeout" ng-model="vm.queueCampaign.dialQueueTimeout" min="1" max="999" value="3" ng-required="true">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.QUEUETIMEOUT"></span></div>\n <div ng-messages="queueCampaignForm[\'dialQueueTimeout\'].$error" ng-show="queueCampaignForm[\'dialQueueTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.QUEUETIMEOUT_REQUIRED">QueueTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.QUEUETIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">QueueTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.QUEUETIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">QueueTimeout must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.AGENTTIMEOUT">AgentTimeout</label>\n <input type="number" name="timeout" ng-model="vm.queueCampaign.timeout" min="0" value="3" ng-required="true">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AGENTTIMEOUT"></span></div>\n <div ng-messages="queueCampaignForm[\'timeout\'].$error" ng-show="queueCampaignForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AGENTTIMEOUT_REQUIRED">AgentTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AGENTTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AgentTimeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.queueCampaign.description">\n\n <div ng-messages="queueCampaignForm[\'description\'].$error" ng-show="queueCampaignForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newQueueCampaign" ng-click="vm.saveQueueCampaign()" class="send-button md-accent md-raised" ng-disabled="queueCampaignForm.$invalid || queueCampaignForm.$pristine" aria-label="SAVE" translate="MOTIONDIALER.SAVE" translate-attr-aria-label="MOTIONDIALER.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newQueueCampaign" ng-click="vm.addNewQueueCampaign()" class="send-button md-accent md-raised" ng-disabled="queueCampaignForm.$invalid" aria-label="ADD" translate="MOTIONDIALER.ADD_QUEUECAMPAIGN" translate-attr-aria-label="MOTIONDIALER.ADD_QUEUECAMPAIGN">\n ADD QUEUECAMPAIGN\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newQueueCampaign" ng-click="vm.deleteQueueCampaign($event)" aria-label="DELETE" translate translate-attr-aria-label="MOTIONDIALER.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="MOTIONDIALER.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/agentadd/agentadd.html",'<md-dialog class="queueCampaign-dialog" aria-label="queueCampaign" ng-init="vm.onInit()">\n <form name="queueCampaignForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MOTIONDIALER.AGENTADD_QUEUECAMPAIGN">Add Agent to queueCampaign</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <md-input-container flex class="no-margin">\n <label translate="MOTIONDIALER.PENALTY">Penalty</label>\n <input name="penalty" type="number" ng-model="vm.penalty" min="0" placeholder="0" required onkeypress="return event.charCode >= 48 && event.charCode <= 57 && this.value.length < 3">\n <div ng-messages="queueCampaignForm.penalty.$error" role="alert" multiple>\n <div ng-message="required">\n <span>{{ \'VOICE.ERRORS.PENALTY_REQUIRED\' | translate }}</span>\n </div>\n </div>\n </md-input-container>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit" add-disabled="vm.penalty === undefined"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/blacklistadd/blacklistadd.html",'<md-dialog class="queueCampaign-dialog" aria-label="queueCampaign" ng-init="vm.onInit()">\n <form name="queueCampaignForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MOTIONDIALER.BLACKLISTADD_QUEUECAMPAIGN">Add List in QUEUECAMPAIGN</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect ng-hide="vm.loading" options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveLists()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/clone/clone.html",'<md-dialog class="queueCampaign-dialog" aria-label="Clone QueueCampaign">\n <form name="queueCampaignForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.queueCampaign.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newQueueCampaign">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NAME"></span></div>\n <div ng-messages="queueCampaignForm[\'name\'].$error" ng-show="queueCampaignForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MOTIONDIALER.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.dialActive" aria-label="Active"><span translate="MOTIONDIALER.ACTIVE">Active</span></md-switch>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <md-button type="submit" ng-click="vm.cloneQueueCampaign()" class="send-button md-accent md-raised" ng-disabled="queueCampaignForm.$invalid" aria-label="CLONE" translate="MOTIONDIALER.CLONE_QUEUECAMPAIGN" translate-attr-aria-label="MOTIONDIALER.CLONE_QUEUECAMPAIGN">\n CLONE QUEUECAMPAIGN\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/hoppers/dialog.html",'<md-dialog class="hopper-dialog" aria-label="New Hopper">\n <form name="hopperForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <div class="md-block">\n <label translate="MOTIONDIALER.SCHEDULEDAT">ScheduledAt</label>\n <md-content layout="row" class="md-padding">\n <div flex class="md-block">\n <mdp-date-picker mdp-open-on-click name="scheduledatDate" mdp-placeholder="Date" mdp-format="YYYY-MM-DD" ng-model="vm.hopper.scheduledat" ng-init="vm.hopper.scheduledat = vm.getDateFromString(vm.hopper.scheduledat)">\n <div ng-messages="hopperForm.dateRangeFrom.$error" ng-show="hopperForm.dateRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DATE_REQUIRED">Date is required</span>\n </div>\n <div ng-message="format">\n <span translate="MOTIONDIALER.ERRORS.DATE_INVALID">Date is invalid</span>\n </div>\n </div>\n </mdp-date-picker>\n </div>\n <div flex class="md-block">\n <mdp-time-picker mdp-open-on-click name="scheduledatTime" mdp-placeholder="Time" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.hopper.scheduledat" ng-init="vm.hopper.scheduledat = vm.getDateFromString(vm.hopper.scheduledat)">\n <div ng-messages="hopperForm.timeRangeFrom.$error" ng-show="hopperForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.TIME_REQUIRED">Time is required</span>\n </div>\n <div ng-message="format">\n <span translate="MOTIONDIALER.ERRORS.TIME_INVALID">Time is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </md-content>\n </div>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.PRIORITY">Priority</label>\n <md-select name="priority" ng-model="vm.hopper.priority">\n <md-option ng-value="\'4\'">Highest</md-option>\n <md-option ng-value="\'3\'">High</md-option>\n <md-option ng-value="\'2\'">Medium</md-option>\n <md-option ng-value="\'1\'">Low</md-option>\n <md-option ng-value="\'0\'">Lowest</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PRIORITY"></span></div>\n <div ng-messages="hopperForm[\'priority\'].$error" ng-show="hopperForm[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.hopper.recallme" aria-label="RecallAgent"><span translate="MOTIONDIALER.RECALLAGENT">RecallAgent</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.hopper.recallme" class="md-block">\n <label translate="MOTIONDIALER.AGENT">Agent</label>\n <md-select name="UserId" ng-model="vm.hopper.UserId" required>\n <md-option ng-value="UserId.id" ng-repeat="UserId in vm.agents" ng-disabled="UserId.canSelect === false">{{ UserId.name }}</md-option>\n </md-select>\n <div ng-messages="hopperForm[\'UserId\'].$error" ng-show="hopperForm[\'UserId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newHopper" ng-click="vm.saveHopper()" class="send-button md-accent md-raised" ng-disabled="hopperForm.$invalid || hopperForm.$pristine" aria-label="SAVE" translate="MOTIONDIALER.SAVE" translate-attr-aria-label="MOTIONDIALER.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newHopper" ng-click="vm.addNewHopper()" class="send-button md-accent md-raised" ng-disabled="hopperForm.$invalid" aria-label="ADD" translate="MOTIONDIALER.ADD_HOPPER" translate-attr-aria-label="MOTIONDIALER.ADD_HOPPER">\n ADD HOPPER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newHopper" ng-click="vm.deleteHopper($event)" aria-label="DELETE" translate translate-attr-aria-label="MOTIONDIALER.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="MOTIONDIALER.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/listadd/listadd.html",'<md-dialog class="queueCampaign-dialog" aria-label="queueCampaign" ng-init="vm.onInit()">\n <form name="queueCampaignForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MOTIONDIALER.LISTADD_QUEUECAMPAIGN">Add List in QUEUECAMPAIGN</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect ng-hide="vm.loading" options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveLists()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/resetlist/resetlist.html",'<md-dialog class="queueCampaign-dialog" aria-label="queueCampaign">\n <form name="queueCampaignForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MOTIONDIALER.RESETLIST ">Reset List</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-disabled="vm.loading" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ng-hide="vm.loading">\n <div layout="row" layout-wrap flex>\n <div flex-xs flex="50">\n <md-checkbox aria-label="Select All" ng-checked="vm.isChecked()" md-indeterminate="vm.isIndeterminate()" ng-click="vm.toggleAll()">\n <span ng-if="vm.isChecked()" translate="MOTIONDIALER.UNSELECTALL"></span>\n <span ng-if="!vm.isChecked()" translate="MOTIONDIALER.SELECTALL"></span>\n </md-checkbox>\n </div>\n <div flex-xs flex="50">\n </div>\n <div flex="{{vm.items.length > 10 ? 50 : 100 }}" ng-repeat="item in vm.items">\n <md-checkbox ng-checked="vm.exists(item, vm.selected)" ng-click="vm.toggle(item, vm.selected)">\n {{ item.name | limitTo:40 }}\n </md-checkbox>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions ng-hide="vm.loading" layout="row" layout-align="end center">\n <div>\n </div>\n <md-button type="submit" ng-click="vm.listSelected()" class="send-button md-accent md-raised" ng-disabled="vm.loading" aria-label="RESET" translate="MOTIONDIALER.RESET" translate-attr-aria-label="MOTIONDIALER.RESET">\n SAVE\n </md-button>\n </md-dialog-actions>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/teamadd/teamadd.html",'<md-dialog class="queueCampaign-dialog" aria-label="queueCampaign" ng-init="vm.onInit()">\n <form name="queueCampaignForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="MOTIONDIALER.TEAMS_ASSOCIATION">Teams Association</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <md-input-container flex class="no-margin">\n <label translate="MOTIONDIALER.PENALTY">Penalty</label>\n <input name="penalty" type="number" ng-model="vm.penalty" min="0" placeholder="0" required onkeypress="return event.charCode >= 48 && event.charCode <= 57 && this.value.length < 3">\n <div ng-messages="queueCampaignForm.penalty.$error" role="alert" multiple>\n <div ng-message="required">\n <span>{{ \'VOICE.ERRORS.PENALTY_REQUIRED\' | translate }}</span>\n </div>\n </div>\n </md-input-container>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit" add-disabled="vm.penalty === undefined"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/edit/view.html",'<div id="motiondialer-queueCampaign" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-queueCampaigns-button md-icon-button" aria-label="Go to queueCampaigns" ng-click="vm.gotoQueueCampaigns()" translate translate-attr-aria-label="MOTIONDIALER.GO_TO_QUEUECAMPAIGNS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="queueCampaign-image" hide-xs>\n <img ng-src="assets/images/business/queueCampaigns.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.queueCampaign.id}}\n <span ng-if="vm.queueCampaign.name">{{vm.queueCampaign.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="MOTIONDIALER.CREATED_AT"></span> <span>{{vm.queueCampaign.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.clonedialog(vm.queueCampaign, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="clone">\n <md-tooltip><span translate="MOTIONDIALER.CLONE_QUEUECAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.listadddialog(vm.queueCampaign, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="listadd">\n <md-tooltip><span translate="MOTIONDIALER.LISTADD_QUEUECAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-format-list-numbers"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.blacklistadddialog(vm.queueCampaign, $event)" class="md-fab md-warn md-icon-button" aria-label="blacklistadd">\n <md-tooltip><span translate="MOTIONDIALER.BLACKLISTADD_QUEUECAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-block-helper"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.teamadddialog(vm.queueCampaign, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n <md-tooltip><span translate="MOTIONDIALER.TEAMADD_QUEUECAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.queueCampaign, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="MOTIONDIALER.AGENTADD_QUEUECAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-plus"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.resetlistdialog(vm.queueCampaign, $event)" class="md-fab md-warn md-icon-button" aria-label="resetlist">\n <md-tooltip><span translate="MOTIONDIALER.RESETLIST_QUEUECAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-restore"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.queueCampaign, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="MOTIONDIALER.GOTO_QUEUECAMPAIGN"></span></md-tooltip>\n <md-icon md-font-icon="icon-cast"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveQueueCampaign()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (campaignForm.$invalid) || (queueForm.$invalid) || (originateForm.$invalid) || (globalForm.$invalid) || (congestionForm.$invalid) || (busyForm.$invalid) || (noanswerForm.$invalid) || (nosuchnumberForm.$invalid) || (dropForm.$invalid) || (abandonedForm.$invalid) || (machineForm.$invalid) || (agentrejectForm.$invalid) || (advancedForm.$invalid) || (advancedpreviewForm.$invalid) || (thresholdsForm.$invalid) || (recallmeForm.$invalid) || (globalintervalForm.$invalid) || (timezoneForm.$invalid) || (amdForm.$invalid) || (hopperStatisticsForm.$invalid) || (hoppersForm.$invalid) || (hopperHistoriesForm.$invalid) || (hopperFinalsForm.$invalid) || (hopperBlacksForm.$invalid)" translate="MOTIONDIALER.SAVE" translate-attr-aria-label="MOTIONDIALER.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="queueCampaign-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.queueCampaign.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MOTIONDIALER.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.dialActive" aria-label="Active" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.TRUNK">Trunk</label>\n <md-select name="TrunkId" ng-model="vm.queueCampaign.TrunkId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="TrunkId.id" ng-repeat="TrunkId in vm.trunks" ng-disabled="TrunkId.canSelect === false">{{ TrunkId.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'TrunkId\'].$error" ng-show="generalForm[\'TrunkId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.TRUNK_REQUIRED">Trunk field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.BACKUPTRUNK">BackupTrunk</label>\n <md-select name="TrunkBackupId" ng-model="vm.queueCampaign.TrunkBackupId" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="TrunkBackupId.id" ng-repeat="TrunkBackupId in vm.trunks" ng-disabled="TrunkBackupId.canSelect === false">{{ TrunkBackupId.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'TrunkBackupId\'].$error" ng-show="generalForm[\'TrunkBackupId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.BACKUPTRUNK_REQUIRED">BackupTrunk field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod != \'preview\'" class="md-block">\n <label translate="MOTIONDIALER.INTERVAL">Interval</label>\n <md-select name="IntervalId" ng-model="vm.queueCampaign.IntervalId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="IntervalId.id" ng-repeat="IntervalId in vm.interval" ng-disabled="IntervalId.canSelect === false">{{ IntervalId.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'IntervalId\'].$error" ng-show="generalForm[\'IntervalId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.INTERVAL_REQUIRED">Interval field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CHECKDUPLICATE">CheckDuplicate</label>\n <md-select name="dialCheckDuplicateType" ng-model="vm.queueCampaign.dialCheckDuplicateType" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'always\'"> {{ \'MOTIONDIALER.ALWAYS\' | translate }} </md-option>\n\n <md-option ng-value="\'never\'"> {{ \'MOTIONDIALER.NEVER\' | translate }} </md-option>\n\n <md-option ng-value="\'onlyIfOpen\'"> {{ \'MOTIONDIALER.ONLY_IF_OPEN\' | translate }} </md-option>\n </md-select>\n <div ng-messages="generalForm[\'dialCheckDuplicateType\'].$error" ng-show="generalForm[\'dialCheckDuplicateType\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CHECKDUPLICATE_REQUIRED">CheckDuplicate field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CUTDIGIT">CutDigit</label>\n <input type="number" name="dialCutDigit" ng-model="vm.queueCampaign.dialCutDigit" min="0" max="15" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'dialCutDigit\'].$error" ng-show="generalForm[\'dialCutDigit\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_REQUIRED">CutDigit field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CutDigit must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CUTDIGIT_MUST_BE_LESS_THAN_OR_EQUAL_TO">CutDigit must be a valid greater or equal than</span> <span>15</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.queueCampaign.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.CAMPAIGN">CAMPAIGN</span>\n </md-tab-label>\n <md-tab-body>\n <div class="queueCampaign-detail-form-container campaign md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.CAMPAIGN">CAMPAIGN</div>\n </div>\n <form name="campaignForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.METHOD">Method</label>\n <md-select name="dialMethod" ng-model="vm.queueCampaign.dialMethod" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'progressive\'">Progressive</md-option>\n <md-option ng-value="\'power\'">PowerDialing</md-option>\n <md-option ng-value="\'predictive\'">Predictive</md-option>\n <md-option ng-value="\'preview\'">Preview</md-option>\n <md-option ng-value="\'booked\'">BookedProgressive</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.METHOD"></span></div>\n <div ng-messages="campaignForm[\'dialMethod\'].$error" ng-show="campaignForm[\'dialMethod\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.METHOD_REQUIRED">Method field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod == \'power\'" class="md-block">\n <span translate="MOTIONDIALER.POWERLEVEL">PowerLevel</span>\n <div class="hint"><span translate="MOTIONDIALER.HELP.POWERLEVEL"></span></div>\n <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPowerLevel" min="1" max="10" step="0.1" class="md-accent"></md-slider>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n <label translate="MOTIONDIALER.PREDICTIVEOPTIMIZATION">PredictiveOptimization</label>\n <md-select name="dialPredictiveOptimization" ng-model="vm.queueCampaign.dialPredictiveOptimization" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'agentBusyFactor\'"> {{ \'MOTIONDIALER.AGENTBUSYFACTOR\' | translate }} </md-option>\n\n <md-option ng-value="\'dropRate\'"> {{ \'MOTIONDIALER.DROPRATE\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEOPTIMIZATION"></span></div>\n <div ng-messages="campaignForm[\'dialPredictiveOptimization\'].$error" ng-show="campaignForm[\'dialPredictiveOptimization\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.PREDICTIVEOPTIMIZATION_REQUIRED">PredictiveOptimization field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n <span translate="MOTIONDIALER.PREDICTIVEOPTIMIZATIONPERCENTAGE">PredictiveOptimizationPercentage</span>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEOPTIMIZATIONPERCENTAGE"></span></div>\n <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPredictiveOptimizationPercentage" min="1" max="95" step="0.1" class="md-accent"></md-slider>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n <span translate="MOTIONDIALER.PREDICTIVEINTERVAL">PredictiveInterval</span>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEINTERVAL"></span></div>\n <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPredictiveInterval" min="5" max="30" step="1" class="md-accent"></md-slider>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod != \'preview\'" class="md-block">\n <label translate="MOTIONDIALER.MAXCONCURRENTCALLS">MaxConcurrentCalls</label>\n <input type="number" name="dialLimitQueue" ng-model="vm.queueCampaign.dialLimitQueue" min="0" max="9999" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.MAXCONCURRENTCALLS"></span></div>\n <div ng-messages="campaignForm[\'dialLimitQueue\'].$error" ng-show="campaignForm[\'dialLimitQueue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_REQUIRED">MaxConcurrentCalls field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MaxConcurrentCalls must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.MAXCONCURRENTCALLS_MUST_BE_LESS_THAN_OR_EQUAL_TO">MaxConcurrentCalls must be a valid greater or equal than</span> <span>9999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.AGENTTIMEOUT">AgentTimeout</label>\n <input type="number" name="timeout" ng-model="vm.queueCampaign.timeout" min="0" value="3" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AGENTTIMEOUT"></span></div>\n <div ng-messages="campaignForm[\'timeout\'].$error" ng-show="campaignForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AGENTTIMEOUT_REQUIRED">AgentTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AGENTTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AgentTimeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container queue md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.QUEUE">QUEUE</div>\n </div>\n <form name="queueForm" novalidate>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.QUEUEOPTIONS">QueueOptions</label>\n <input type="text" name="dialQueueOptions" ng-model="vm.queueCampaign.dialQueueOptions" value="tTxX" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="queueForm[\'dialQueueOptions\'].$error" ng-show="queueForm[\'dialQueueOptions\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.QUEUEOPTIONS_REQUIRED">QueueOptions field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.QUEUETIMEOUT">QueueTimeout</label>\n <input type="number" name="dialQueueTimeout" ng-model="vm.queueCampaign.dialQueueTimeout" min="1" max="999" value="3" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.QUEUETIMEOUT"></span></div>\n <div ng-messages="queueForm[\'dialQueueTimeout\'].$error" ng-show="queueForm[\'dialQueueTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.QUEUETIMEOUT_REQUIRED">QueueTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.QUEUETIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">QueueTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.QUEUETIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">QueueTimeout must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'booked\' || vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.queueCampaign.strategy" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'rrmemory\'">Round Robin Memory</md-option>\n <md-option ng-value="\'roundrobin\'" ng-if="vm.queueCampaign.dialMethod === \'booked\'">Round Robin</md-option>\n <md-option ng-value="\'leastrecent\'" ng-if="vm.queueCampaign.dialMethod !== \'booked\'">Least Recent</md-option>\n <md-option ng-value="\'fewestcalls\'" ng-if="vm.queueCampaign.dialMethod !== \'booked\'">Fewest Calls</md-option>\n <md-option ng-value="\'random\'" ng-if="vm.queueCampaign.dialMethod !== \'booked\'">Random</md-option>\n <md-option ng-value="\'linear\'" ng-if="vm.queueCampaign.dialMethod !== \'booked\'">Linear</md-option>\n <md-option ng-value="\'wrandom\'" ng-if="vm.queueCampaign.dialMethod !== \'booked\'">Weight Random</md-option>\n </md-select>\n <div ng-messages="queueForm[\'strategy\'].$error" ng-show="queueForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.RETRY">Retry</label>\n <input type="number" name="retry" ng-model="vm.queueCampaign.retry" min="0" value="3" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.RETRY"></span></div>\n <div ng-messages="queueForm[\'retry\'].$error" ng-show="queueForm[\'retry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.RETRY_REQUIRED">Retry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.RETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Retry must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.WRAPUPTIME">WrapupTime</label>\n <input type="number" name="wrapuptime" ng-model="vm.queueCampaign.wrapuptime" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.WRAPUPTIME"></span></div>\n <div ng-messages="queueForm[\'wrapuptime\'].$error" ng-show="queueForm[\'wrapuptime\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.WRAPUPTIME_REQUIRED">WrapupTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.WRAPUPTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WrapupTime must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.WEIGHT">Weight</label>\n <input type="number" name="weight" ng-model="vm.queueCampaign.weight" min="0" value="1" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.WEIGHT"></span></div>\n <div ng-messages="queueForm[\'weight\'].$error" ng-show="queueForm[\'weight\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.WEIGHT_REQUIRED">Weight field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.WEIGHT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Weight must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.MUSICONHOLD">MusicOnHold</label>\n <md-select name="musiconhold" ng-model="vm.queueCampaign.musiconhold" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="musiconhold.name" ng-repeat="musiconhold in vm.musiconholds" ng-disabled="musiconhold.canSelect === false">{{ musiconhold.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.MUSICONHOLD"></span></div>\n <div ng-messages="queueForm[\'musiconhold\'].$error" ng-show="queueForm[\'musiconhold\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MUSICONHOLD_REQUIRED">MusicOnHold field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.CALLYSQUAREPROJECT">CallySquareProject</label>\n <md-select name="dialQueueProject" ng-model="vm.queueCampaign.dialQueueProject" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="dialQueueProject.name" ng-repeat="dialQueueProject in vm.projects" ng-disabled="dialQueueProject.canSelect === false">{{ dialQueueProject.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.CALLYSQUAREPROJECT"></span></div>\n <div ng-messages="queueForm[\'dialQueueProject\'].$error" ng-show="queueForm[\'dialQueueProject\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECT_REQUIRED">CallySquareProject field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="md-block">\n <label translate="MOTIONDIALER.CALLYSQUAREPROJECT2">CallySquareProject2</label>\n <md-select name="dialQueueProject2" ng-model="vm.queueCampaign.dialQueueProject2" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="dialQueueProject2.name" ng-repeat="dialQueueProject2 in vm.projects" ng-disabled="dialQueueProject2.canSelect === false">{{ dialQueueProject2.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.CALLYSQUAREPROJECT2"></span></div>\n <div ng-messages="queueForm[\'dialQueueProject2\'].$error" ng-show="queueForm[\'dialQueueProject2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECT2_REQUIRED">CallySquareProject2 field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'preview\' || vm.queueCampaign.dialMethod === \'booked\'" class="md-block">\n <label translate="MOTIONDIALER.CALLYSQUAREPROJECTPREVIEW">CallySquareProjectPreview</label>\n <md-select name="dialQueueProject" ng-model="vm.queueCampaign.dialQueueProject" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="dialQueueProject.name" ng-repeat="dialQueueProject in vm.projects" ng-disabled="dialQueueProject.canSelect === false">{{ dialQueueProject.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.CALLYSQUAREPROJECTPREVIEW"></span></div>\n <div ng-messages="queueForm[\'dialQueueProject\'].$error" ng-show="queueForm[\'dialQueueProject\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECTPREVIEW_REQUIRED">CallySquareProjectPreview field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod === \'preview\' || vm.queueCampaign.dialMethod === \'booked\'" class="md-block">\n <label translate="MOTIONDIALER.CALLYSQUAREPROJECTPREVIEW2">CallySquareProjectPreview2</label>\n <md-select name="dialQueueProject2" ng-model="vm.queueCampaign.dialQueueProject2" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">None</md-option>\n <md-option ng-value="dialQueueProject2.name" ng-repeat="dialQueueProject2 in vm.projects" ng-disabled="dialQueueProject2.canSelect === false">{{ dialQueueProject2.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.CALLYSQUAREPROJECTPREVIEW2"></span></div>\n <div ng-messages="queueForm[\'dialQueueProject2\'].$error" ng-show="queueForm[\'dialQueueProject2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CALLYSQUAREPROJECTPREVIEW2_REQUIRED">CallySquareProjectPreview2 field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialQueueProject2 && (vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\')" class="md-block">\n <md-switch ng-model="vm.queueCampaign.dialAgiAfterHangupAgent" aria-label="RunIfHangupAgent" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.RUNIFHANGUPAGENT">RunIfHangupAgent</span></md-switch>\n <div class="hint"><span translate="MOTIONDIALER.HELP.RUNIFHANGUPAGENT"></span></div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container originate md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.ORIGINATE">ORIGINATE</div>\n </div>\n <form name="originateForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ORIGINATECALLERIDNAME">OriginateCallerIdName</label>\n <input type="text" name="dialOriginateCallerIdName" ng-model="vm.queueCampaign.dialOriginateCallerIdName" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ORIGINATECALLERIDNAME"></span></div>\n <div ng-messages="originateForm[\'dialOriginateCallerIdName\'].$error" ng-show="originateForm[\'dialOriginateCallerIdName\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATECALLERIDNAME_REQUIRED">OriginateCallerIdName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ORIGINATECALLERIDNUMBER">OriginateCallerIdNumber</label>\n <input type="text" name="dialOriginateCallerIdNumber" ng-model="vm.queueCampaign.dialOriginateCallerIdNumber" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ORIGINATECALLERIDNUMBER"></span></div>\n <div ng-messages="originateForm[\'dialOriginateCallerIdNumber\'].$error" ng-show="originateForm[\'dialOriginateCallerIdNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATECALLERIDNUMBER_REQUIRED">OriginateCallerIdNumber field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.RANDOMLASTDIGITCALLERIDNUMBER">RandomLastDigitCallerIdNumber</label>\n <input type="number" name="dialRandomLastDigitCallerIdNumber" ng-model="vm.queueCampaign.dialRandomLastDigitCallerIdNumber" min="0" max="15" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.RANDOMLASTDIGITCALLERIDNUMBER"></span></div>\n <div ng-messages="originateForm[\'dialRandomLastDigitCallerIdNumber\'].$error" ng-show="originateForm[\'dialRandomLastDigitCallerIdNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_REQUIRED">RandomLastDigitCallerIdNumber field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_MUST_BE_GREATER_THAN_OR_EQUAL_TO">RandomLastDigitCallerIdNumber must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.RANDOMLASTDIGITCALLERIDNUMBER_MUST_BE_LESS_THAN_OR_EQUAL_TO">RandomLastDigitCallerIdNumber must be a valid greater or equal than</span> <span>15</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ORIGINATETIMEOUT">OriginateTimeout</label>\n <input type="number" name="dialOriginateTimeout" ng-model="vm.queueCampaign.dialOriginateTimeout" min="1" max="999" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ORIGINATETIMEOUT"></span></div>\n <div ng-messages="originateForm[\'dialOriginateTimeout\'].$error" ng-show="originateForm[\'dialOriginateTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_REQUIRED">OriginateTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">OriginateTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.ORIGINATETIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">OriginateTimeout must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.PREFIX">Prefix</label>\n <input type="text" name="dialPrefix" ng-model="vm.queueCampaign.dialPrefix" ng-pattern="/^\\d+$/" value="" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREFIX"></span></div>\n <div ng-messages="originateForm[\'dialPrefix\'].$error" ng-show="originateForm[\'dialPrefix\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.PREFIX_REQUIRED">Prefix field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="MOTIONDIALER.ERRORS.PREFIX_MUST_VALID_PATTERN" translate-values="{ regex: \'/^\\d+$/\' }">Prefix must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.RETRYANDFREQUENCY">RETRYANDFREQUENCY</span>\n </md-tab-label>\n <md-tab-body>\n <div class="queueCampaign-detail-form-container global md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.GLOBAL">GLOBAL</div>\n </div>\n <form name="globalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.GLOBALMAXRETRY">GlobalMaxRetry</label>\n <input type="number" name="dialGlobalMaxRetry" ng-model="vm.queueCampaign.dialGlobalMaxRetry" min="1" max="999" value="4" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.GLOBALMAXRETRY"></span></div>\n <div ng-messages="globalForm[\'dialGlobalMaxRetry\'].$error" ng-show="globalForm[\'dialGlobalMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_REQUIRED">GlobalMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">GlobalMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.GLOBALMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">GlobalMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container congestion md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.CONGESTION">CONGESTION</div>\n </div>\n <form name="congestionForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CONGESTIONMAXRETRY">CongestionMaxRetry</label>\n <input type="number" name="dialCongestionMaxRetry" ng-model="vm.queueCampaign.dialCongestionMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.CONGESTIONMAXRETRY"></span></div>\n <div ng-messages="congestionForm[\'dialCongestionMaxRetry\'].$error" ng-show="congestionForm[\'dialCongestionMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_REQUIRED">CongestionMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CongestionMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">CongestionMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CONGESTIONRETRYTIME">CongestionRetryTime</label>\n <input type="number" name="dialCongestionRetryFrequency" ng-model="vm.queueCampaign.dialCongestionRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.CONGESTIONRETRYTIME"></span></div>\n <div ng-messages="congestionForm[\'dialCongestionRetryFrequency\'].$error" ng-show="congestionForm[\'dialCongestionRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_REQUIRED">CongestionRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CongestionRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.CONGESTIONRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">CongestionRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container busy md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.BUSY">BUSY</div>\n </div>\n <form name="busyForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.BUSYMAXRETRY">BusyMaxRetry</label>\n <input type="number" name="dialBusyMaxRetry" ng-model="vm.queueCampaign.dialBusyMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.BUSYMAXRETRY"></span></div>\n <div ng-messages="busyForm[\'dialBusyMaxRetry\'].$error" ng-show="busyForm[\'dialBusyMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_REQUIRED">BusyMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">BusyMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.BUSYMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">BusyMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.BUSYRETRYTIME">BusyRetryTime</label>\n <input type="number" name="dialBusyRetryFrequency" ng-model="vm.queueCampaign.dialBusyRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.BUSYRETRYTIME"></span></div>\n <div ng-messages="busyForm[\'dialBusyRetryFrequency\'].$error" ng-show="busyForm[\'dialBusyRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_REQUIRED">BusyRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">BusyRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.BUSYRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">BusyRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container noanswer md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.NOANSWER">NOANSWER</div>\n </div>\n <form name="noanswerForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NOANSWERMAXRETRY">NoAnswerMaxRetry</label>\n <input type="number" name="dialNoAnswerMaxRetry" ng-model="vm.queueCampaign.dialNoAnswerMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NOANSWERMAXRETRY"></span></div>\n <div ng-messages="noanswerForm[\'dialNoAnswerMaxRetry\'].$error" ng-show="noanswerForm[\'dialNoAnswerMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_REQUIRED">NoAnswerMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoAnswerMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoAnswerMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NOANSWERRETRYTIME">NoAnswerRetryTime</label>\n <input type="number" name="dialNoAnswerRetryFrequency" ng-model="vm.queueCampaign.dialNoAnswerRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NOANSWERRETRYTIME"></span></div>\n <div ng-messages="noanswerForm[\'dialNoAnswerRetryFrequency\'].$error" ng-show="noanswerForm[\'dialNoAnswerRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_REQUIRED">NoAnswerRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoAnswerRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOANSWERRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoAnswerRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container nosuchnumber md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.NOSUCHNUMBER">NOSUCHNUMBER</div>\n </div>\n <form name="nosuchnumberForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NOSUCHNUMBERMAXRETRY">NoSuchNumberMaxRetry</label>\n <input type="number" name="dialNoSuchNumberMaxRetry" ng-model="vm.queueCampaign.dialNoSuchNumberMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NOSUCHNUMBERMAXRETRY"></span></div>\n <div ng-messages="nosuchnumberForm[\'dialNoSuchNumberMaxRetry\'].$error" ng-show="nosuchnumberForm[\'dialNoSuchNumberMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_REQUIRED">NoSuchNumberMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoSuchNumberMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoSuchNumberMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.NOSUCHNUMBERRETRYTIME">NoSuchNumberRetryTime</label>\n <input type="number" name="dialNoSuchNumberRetryFrequency" ng-model="vm.queueCampaign.dialNoSuchNumberRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.NOSUCHNUMBERRETRYTIME"></span></div>\n <div ng-messages="nosuchnumberForm[\'dialNoSuchNumberRetryFrequency\'].$error" ng-show="nosuchnumberForm[\'dialNoSuchNumberRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_REQUIRED">NoSuchNumberRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">NoSuchNumberRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.NOSUCHNUMBERRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">NoSuchNumberRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container drop md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.DROP">DROP</div>\n </div>\n <form name="dropForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DROPMAXRETRY">DropMaxRetry</label>\n <input type="number" name="dialDropMaxRetry" ng-model="vm.queueCampaign.dialDropMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.DROPMAXRETRY"></span></div>\n <div ng-messages="dropForm[\'dialDropMaxRetry\'].$error" ng-show="dropForm[\'dialDropMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_REQUIRED">DropMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">DropMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.DROPMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">DropMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DROPRETRYTIME">DropRetryTime</label>\n <input type="number" name="dialDropRetryFrequency" ng-model="vm.queueCampaign.dialDropRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.DROPRETRYTIME"></span></div>\n <div ng-messages="dropForm[\'dialDropRetryFrequency\'].$error" ng-show="dropForm[\'dialDropRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_REQUIRED">DropRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">DropRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.DROPRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">DropRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container abandoned md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.ABANDONED">ABANDONED</div>\n </div>\n <form name="abandonedForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ABANDONEDMAXRETRY">AbandonedMaxRetry</label>\n <input type="number" name="dialAbandonedMaxRetry" ng-model="vm.queueCampaign.dialAbandonedMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ABANDONEDMAXRETRY"></span></div>\n <div ng-messages="abandonedForm[\'dialAbandonedMaxRetry\'].$error" ng-show="abandonedForm[\'dialAbandonedMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_REQUIRED">AbandonedMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AbandonedMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">AbandonedMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.ABANDONEDRETRYTIME">AbandonedRetryTime</label>\n <input type="number" name="dialAbandonedRetryFrequency" ng-model="vm.queueCampaign.dialAbandonedRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.ABANDONEDRETRYTIME"></span></div>\n <div ng-messages="abandonedForm[\'dialAbandonedRetryFrequency\'].$error" ng-show="abandonedForm[\'dialAbandonedRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_REQUIRED">AbandonedRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AbandonedRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.ABANDONEDRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">AbandonedRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container machine md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.MACHINE">MACHINE</div>\n </div>\n <form name="machineForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.MACHINEMAXRETRY">MachineMaxRetry</label>\n <input type="number" name="dialMachineMaxRetry" ng-model="vm.queueCampaign.dialMachineMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.MACHINEMAXRETRY"></span></div>\n <div ng-messages="machineForm[\'dialMachineMaxRetry\'].$error" ng-show="machineForm[\'dialMachineMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_REQUIRED">MachineMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MachineMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.MACHINEMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">MachineMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.MACHINERETRYTIME">MachineRetryTime</label>\n <input type="number" name="dialMachineRetryFrequency" ng-model="vm.queueCampaign.dialMachineRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.MACHINERETRYTIME"></span></div>\n <div ng-messages="machineForm[\'dialMachineRetryFrequency\'].$error" ng-show="machineForm[\'dialMachineRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_REQUIRED">MachineRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MachineRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.MACHINERETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">MachineRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container agentreject md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.AGENTREJECT">AGENTREJECT</div>\n </div>\n <form name="agentrejectForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.AGENTREJECTMAXRETRY">AgentRejectMaxRetry</label>\n <input type="number" name="dialAgentRejectMaxRetry" ng-model="vm.queueCampaign.dialAgentRejectMaxRetry" min="1" max="999" value="3" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AGENTREJECTMAXRETRY"></span></div>\n <div ng-messages="agentrejectForm[\'dialAgentRejectMaxRetry\'].$error" ng-show="agentrejectForm[\'dialAgentRejectMaxRetry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_REQUIRED">AgentRejectMaxRetry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AgentRejectMaxRetry must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTMAXRETRY_MUST_BE_LESS_THAN_OR_EQUAL_TO">AgentRejectMaxRetry must be a valid greater or equal than</span> <span>999</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.AGENTREJECTRETRYTIME">AgentRejectRetryTime</label>\n <input type="number" name="dialAgentRejectRetryFrequency" ng-model="vm.queueCampaign.dialAgentRejectRetryFrequency" min="1" max="99999" value="150" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AGENTREJECTRETRYTIME"></span></div>\n <div ng-messages="agentrejectForm[\'dialAgentRejectRetryFrequency\'].$error" ng-show="agentrejectForm[\'dialAgentRejectRetryFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_REQUIRED">AgentRejectRetryTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AgentRejectRetryTime must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.AGENTREJECTRETRYTIME_MUST_BE_LESS_THAN_OR_EQUAL_TO">AgentRejectRetryTime must be a valid greater or equal than</span> <span>99999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="queueCampaign-detail-form-container advanced md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.ADVANCED">ADVANCED</div>\n </div>\n <form name="advancedForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.acw" aria-label="AfterCallWork" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.AFTERCALLWORK">AfterCallWork</span></md-switch>\n <div class="hint"><span translate="MOTIONDIALER.HELP.AFTERCALLWORK"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.acw" class="md-block">\n <label translate="MOTIONDIALER.AFTERCALLWORKDURATION">AfterCallWorkDuration</label>\n <input type="number" name="acwTimeout" ng-model="vm.queueCampaign.acwTimeout" min="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AFTERCALLWORKDURATION"></span></div>\n <div ng-messages="advancedForm[\'acwTimeout\'].$error" ng-show="advancedForm[\'acwTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AFTERCALLWORKDURATION_REQUIRED">AfterCallWorkDuration field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AFTERCALLWORKDURATION_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AfterCallWorkDuration must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.AUTOPAUSE">AutoPause</label>\n <md-select name="autopause" ng-model="vm.queueCampaign.autopause" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'all\'"> {{ \'MOTIONDIALER.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'MOTIONDIALER.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.AUTOPAUSE"></span></div>\n <div ng-messages="advancedForm[\'autopause\'].$error" ng-show="advancedForm[\'autopause\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AUTOPAUSE_REQUIRED">AutoPause field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.RINGINUSE">RingInUse</label>\n <md-select name="ringinuse" ng-model="vm.queueCampaign.ringinuse" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'MOTIONDIALER.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'MOTIONDIALER.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.RINGINUSE"></span></div>\n <div ng-messages="advancedForm[\'ringinuse\'].$error" ng-show="advancedForm[\'ringinuse\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.RINGINUSE_REQUIRED">RingInUse field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.MEMBERDELAY">MemberDelay</label>\n <input type="number" name="memberdelay" ng-model="vm.queueCampaign.memberdelay" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.MEMBERDELAY"></span></div>\n <div ng-messages="advancedForm[\'memberdelay\'].$error" ng-show="advancedForm[\'memberdelay\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MEMBERDELAY_REQUIRED">MemberDelay field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.MEMBERDELAY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MemberDelay must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.TIMEOUTRESTART">TimeoutRestart</label>\n <md-select name="timeoutrestart" ng-model="vm.queueCampaign.timeoutrestart" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'MOTIONDIALER.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'MOTIONDIALER.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.TIMEOUTRESTART"></span></div>\n <div ng-messages="advancedForm[\'timeoutrestart\'].$error" ng-show="advancedForm[\'timeoutrestart\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.TIMEOUTRESTART_REQUIRED">TimeoutRestart field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.MONITORFORMAT">MonitorFormat</label>\n <md-select name="monitor_format" ng-model="vm.queueCampaign.monitor_format" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">Inactive</md-option>\n <md-option ng-value="\'wav\'">wav</md-option>\n <md-option ng-value="\'wav49\'">wav49</md-option>\n <md-option ng-value="\'gsm\'">gsm</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.MONITORFORMAT"></span></div>\n <div ng-messages="advancedForm[\'monitor_format\'].$error" ng-show="advancedForm[\'monitor_format\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MONITORFORMAT_REQUIRED">MonitorFormat field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.CONTEXT">Context</label>\n <input type="text" name="context" ng-model="vm.queueCampaign.context" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.CONTEXT"></span></div>\n <div ng-messages="advancedForm[\'context\'].$error" ng-show="advancedForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.SETINTERFACEVARIABLES">SetInterfaceVariables</label>\n <md-select name="setinterfacevar" ng-model="vm.queueCampaign.setinterfacevar" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'MOTIONDIALER.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'MOTIONDIALER.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.SETINTERFACEVARIABLES"></span></div>\n <div ng-messages="advancedForm[\'setinterfacevar\'].$error" ng-show="advancedForm[\'setinterfacevar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.SETINTERFACEVARIABLES_REQUIRED">SetInterfaceVariables field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.SETQUEUEVARIABLES">SetQueueVariables</label>\n <md-select name="setqueuevar" ng-model="vm.queueCampaign.setqueuevar" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'MOTIONDIALER.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'MOTIONDIALER.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.SETQUEUEVARIABLES"></span></div>\n <div ng-messages="advancedForm[\'setqueuevar\'].$error" ng-show="advancedForm[\'setqueuevar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.SETQUEUEVARIABLES_REQUIRED">SetQueueVariables field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.SETQUEUEENTRYVARIABLES">SetQueueEntryVariables</label>\n <md-select name="setqueueentryvar" ng-model="vm.queueCampaign.setqueueentryvar" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'MOTIONDIALER.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'MOTIONDIALER.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.SETQUEUEENTRYVARIABLES"></span></div>\n <div ng-messages="advancedForm[\'setqueueentryvar\'].$error" ng-show="advancedForm[\'setqueueentryvar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.SETQUEUEENTRYVARIABLES_REQUIRED">SetQueueEntryVariables field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DIALORDERBYSCHEDULEDAT">DialOrderByScheduledAt</label>\n <md-select name="dialOrderByScheduledAt" ng-model="vm.queueCampaign.dialOrderByScheduledAt" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'DESC\'"> {{ \'MOTIONDIALER.DESC\' | translate }} </md-option>\n\n <md-option ng-value="\'ASC\'"> {{ \'MOTIONDIALER.ASC\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.DIALORDERBYSCHEDULEDAT"></span></div>\n <div ng-messages="advancedForm[\'dialOrderByScheduledAt\'].$error" ng-show="advancedForm[\'dialOrderByScheduledAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DIALORDERBYSCHEDULEDAT_REQUIRED">DialOrderByScheduledAt field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.mandatoryDisposition" class="md-block">\n <label translate="MOTIONDIALER.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.queueCampaign.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="advancedForm[\'mandatoryDispositionPauseId\'].$error" ng-show="advancedForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div ng-if="vm.queueCampaign.dialMethod === \'preview\' || vm.queueCampaign.dialMethod === \'booked\'" class="queueCampaign-detail-form-container advancedpreview md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.ADVANCEDPREVIEW">ADVANCEDPREVIEW</div>\n </div>\n <form name="advancedpreviewForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.acw" aria-label="AfterCallWork" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.AFTERCALLWORK">AfterCallWork</span></md-switch>\n <div class="hint"><span translate="MOTIONDIALER.HELP.AFTERCALLWORK"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.acw" class="md-block">\n <label translate="MOTIONDIALER.AFTERCALLWORKDURATION">AfterCallWorkDuration</label>\n <input type="number" name="acwTimeout" ng-model="vm.queueCampaign.acwTimeout" min="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AFTERCALLWORKDURATION"></span></div>\n <div ng-messages="advancedpreviewForm[\'acwTimeout\'].$error" ng-show="advancedpreviewForm[\'acwTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AFTERCALLWORKDURATION_REQUIRED">AfterCallWorkDuration field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AFTERCALLWORKDURATION_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AfterCallWorkDuration must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.MONITORFORMAT">MonitorFormat</label>\n <md-select name="monitor_format" ng-model="vm.queueCampaign.monitor_format" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">Inactive</md-option>\n <md-option ng-value="\'wav\'">wav</md-option>\n <md-option ng-value="\'wav49\'">wav49</md-option>\n <md-option ng-value="\'gsm\'">gsm</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.MONITORFORMAT"></span></div>\n <div ng-messages="advancedpreviewForm[\'monitor_format\'].$error" ng-show="advancedpreviewForm[\'monitor_format\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MONITORFORMAT_REQUIRED">MonitorFormat field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DIALORDERBYSCHEDULEDAT">DialOrderByScheduledAt</label>\n <md-select name="dialOrderByScheduledAt" ng-model="vm.queueCampaign.dialOrderByScheduledAt" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'DESC\'"> {{ \'MOTIONDIALER.DESC\' | translate }} </md-option>\n\n <md-option ng-value="\'ASC\'"> {{ \'MOTIONDIALER.ASC\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.DIALORDERBYSCHEDULEDAT"></span></div>\n <div ng-messages="advancedpreviewForm[\'dialOrderByScheduledAt\'].$error" ng-show="advancedpreviewForm[\'dialOrderByScheduledAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DIALORDERBYSCHEDULEDAT_REQUIRED">DialOrderByScheduledAt field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.mandatoryDisposition" class="md-block">\n <label translate="MOTIONDIALER.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.queueCampaign.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="MOTIONDIALER.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="advancedpreviewForm[\'mandatoryDispositionPauseId\'].$error" ng-show="advancedpreviewForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div ng-if="vm.queueCampaign.dialMethod === \'predictive\'" class="queueCampaign-detail-form-container thresholds md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.THRESHOLDS">THRESHOLDS</div>\n </div>\n <form name="thresholdsForm" novalidate>\n <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n <span translate="MOTIONDIALER.PREDICTIVEMAXTHRESHOLD">PredictiveMaxThreshold</span>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEMAXTHRESHOLD"></span></div>\n <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPredictiveIntervalMaxThreshold" min="1" max="100" step="1" class="md-accent"></md-slider>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod == \'predictive\'" class="md-block">\n <span translate="MOTIONDIALER.PREDICTIVEMINTHRESHOLD">PredictiveMinThreshold</span>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREDICTIVEMINTHRESHOLD"></span></div>\n <md-slider md-discrete flex ng-model="vm.queueCampaign.dialPredictiveIntervalMinThreshold" min="1" max="100" step="1" class="md-accent"></md-slider>\n </md-input-container>\n\n </form>\n </div>\n <div class="queueCampaign-detail-form-container recallme md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.RECALLME">RECALLME</div>\n </div>\n <form name="recallmeForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.DIALRECALLMETIMEOUT">DialRecallMeTimeout</label>\n <input type="number" name="dialRecallMeTimeout" ng-model="vm.queueCampaign.dialRecallMeTimeout" min="1" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.DIALRECALLMETIMEOUT"></span></div>\n <div ng-messages="recallmeForm[\'dialRecallMeTimeout\'].$error" ng-show="recallmeForm[\'dialRecallMeTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.DIALRECALLMETIMEOUT_REQUIRED">DialRecallMeTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.DIALRECALLMETIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">DialRecallMeTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.dialRecallInQueue" aria-label="DialRecallInQueue" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.DIALRECALLINQUEUE">DialRecallInQueue</span></md-switch>\n <div class="hint"><span translate="MOTIONDIALER.HELP.DIALRECALLINQUEUE"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialMethod == \'preview\'" class="md-block">\n <md-switch ng-model="vm.queueCampaign.dialPreviewAutoRecallMe" aria-label="Preview_Auto_Recall_Me" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.PREVIEW_AUTO_RECALL_ME">Preview_Auto_Recall_Me</span></md-switch>\n <div class="hint"><span translate="MOTIONDIALER.HELP.PREVIEW_AUTO_RECALL_ME"></span></div>\n </md-input-container>\n\n </form>\n </div>\n <div ng-if="vm.queueCampaign.dialMethod != \'preview\'" class="queueCampaign-detail-form-container globalinterval md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.GLOBALINTERVAL">GLOBALINTERVAL</div>\n </div>\n <form name="globalintervalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.GLOBALINTERVAL">GlobalInterval</label>\n <input type="text" name="dialGlobalInterval" ng-model="vm.queueCampaign.dialGlobalInterval" value="07:00-22:00,*,*,*" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.GLOBALINTERVAL"></span></div>\n <div ng-messages="globalintervalForm[\'dialGlobalInterval\'].$error" ng-show="globalintervalForm[\'dialGlobalInterval\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.GLOBALINTERVAL_REQUIRED">GlobalInterval field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div ng-if="vm.queueCampaign.dialMethod != \'preview\'" class="queueCampaign-detail-form-container timezone md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.TIMEZONE">TIMEZONE</div>\n </div>\n <form name="timezoneForm" novalidate>\n <md-input-container class="md-block">\n <label translate="MOTIONDIALER.TIMEZONE">Timezone</label>\n <ms-timezone name="dialTimezone" ng-model="vm.queueCampaign.dialTimezone" autofocus ng-disabled="!vm.crudPermissions.canEdit"></ms-timezone>\n <div class="hint"><span translate="MOTIONDIALER.HELP.TIMEZONE"></span></div>\n <div ng-messages="timezoneForm[\'dialTimezone\'].$error" ng-show="timezoneForm[dialTimezone].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.TIMEZONE_REQUIRED">Timezone field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div ng-if="vm.queueCampaign.dialMethod === \'progressive\' || vm.queueCampaign.dialMethod === \'predictive\' || vm.queueCampaign.dialMethod === \'power\'" class="queueCampaign-detail-form-container amd md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="MOTIONDIALER.AMD">AMD</div>\n </div>\n <form name="amdForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.queueCampaign.dialAMDActive" aria-label="AMDActive" ng-disabled="!vm.crudPermissions.canEdit"><span translate="MOTIONDIALER.AMDACTIVE">AMDActive</span></md-switch>\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDACTIVE"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDINITIALSILENCE">AMDInitialSilence</label>\n <input type="number" name="dialAMDInitialSilence" ng-model="vm.queueCampaign.dialAMDInitialSilence" min="0" value="2500" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDINITIALSILENCE"></span></div>\n <div ng-messages="amdForm[\'dialAMDInitialSilence\'].$error" ng-show="amdForm[\'dialAMDInitialSilence\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDINITIALSILENCE_REQUIRED">AMDInitialSilence field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDINITIALSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDInitialSilence must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDGREETING">AMDGreeting</label>\n <input type="number" name="dialAMDGreeting" ng-model="vm.queueCampaign.dialAMDGreeting" min="0" value="1500" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDGREETING"></span></div>\n <div ng-messages="amdForm[\'dialAMDGreeting\'].$error" ng-show="amdForm[\'dialAMDGreeting\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDGREETING_REQUIRED">AMDGreeting field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDGREETING_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDGreeting must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDAFTERGREETINGSILENCE">AMDAfterGreetingSilence</label>\n <input type="number" name="dialAMDAfterGreetingSilence" ng-model="vm.queueCampaign.dialAMDAfterGreetingSilence" min="0" value="800" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDAFTERGREETINGSILENCE"></span></div>\n <div ng-messages="amdForm[\'dialAMDAfterGreetingSilence\'].$error" ng-show="amdForm[\'dialAMDAfterGreetingSilence\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDAFTERGREETINGSILENCE_REQUIRED">AMDAfterGreetingSilence field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDAFTERGREETINGSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDAfterGreetingSilence must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDTOTALANALYSISTIME">AMDTotalAnalysisTime</label>\n <input type="number" name="dialAMDTotalAnalysisTime" ng-model="vm.queueCampaign.dialAMDTotalAnalysisTime" min="0" value="5000" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDTOTALANALYSISTIME"></span></div>\n <div ng-messages="amdForm[\'dialAMDTotalAnalysisTime\'].$error" ng-show="amdForm[\'dialAMDTotalAnalysisTime\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDTOTALANALYSISTIME_REQUIRED">AMDTotalAnalysisTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDTOTALANALYSISTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDTotalAnalysisTime must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDMINWORDLENGTH">AMDMinWordLength</label>\n <input type="number" name="dialAMDMinWordLength" ng-model="vm.queueCampaign.dialAMDMinWordLength" min="0" value="100" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDMINWORDLENGTH"></span></div>\n <div ng-messages="amdForm[\'dialAMDMinWordLength\'].$error" ng-show="amdForm[\'dialAMDMinWordLength\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDMINWORDLENGTH_REQUIRED">AMDMinWordLength field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDMINWORDLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDMinWordLength must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDBETWEENWORDSSILENCE">AMDBetweenWordsSilence</label>\n <input type="number" name="dialAMDBetweenWordsSilence" ng-model="vm.queueCampaign.dialAMDBetweenWordsSilence" min="0" value="50" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDBETWEENWORDSSILENCE"></span></div>\n <div ng-messages="amdForm[\'dialAMDBetweenWordsSilence\'].$error" ng-show="amdForm[\'dialAMDBetweenWordsSilence\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDBETWEENWORDSSILENCE_REQUIRED">AMDBetweenWordsSilence field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDBETWEENWORDSSILENCE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDBetweenWordsSilence must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDMAXIMUMNUMBEROFWORDS">AMDMaximumNumberOfWords</label>\n <input type="number" name="dialAMDMaximumNumberOfWords" ng-model="vm.queueCampaign.dialAMDMaximumNumberOfWords" min="0" value="3" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDMAXIMUMNUMBEROFWORDS"></span></div>\n <div ng-messages="amdForm[\'dialAMDMaximumNumberOfWords\'].$error" ng-show="amdForm[\'dialAMDMaximumNumberOfWords\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMNUMBEROFWORDS_REQUIRED">AMDMaximumNumberOfWords field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMNUMBEROFWORDS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDMaximumNumberOfWords must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDSILENCETHRESHOLD">AMDSilenceThreshold</label>\n <input type="number" name="dialAMDSilenceThreshold" ng-model="vm.queueCampaign.dialAMDSilenceThreshold" min="0" max="32767" value="256" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDSILENCETHRESHOLD"></span></div>\n <div ng-messages="amdForm[\'dialAMDSilenceThreshold\'].$error" ng-show="amdForm[\'dialAMDSilenceThreshold\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_REQUIRED">AMDSilenceThreshold field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDSilenceThreshold must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="MOTIONDIALER.ERRORS.AMDSILENCETHRESHOLD_MUST_BE_LESS_THAN_OR_EQUAL_TO">AMDSilenceThreshold must be a valid greater or equal than</span> <span>32767</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.queueCampaign.dialAMDActive" class="md-block">\n <label translate="MOTIONDIALER.AMDMAXIMUMWORDLENGTH">AMDMaximumWordLength</label>\n <input type="number" name="dialAMDMaximumWordLength" ng-model="vm.queueCampaign.dialAMDMaximumWordLength" min="0" value="5000" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="MOTIONDIALER.HELP.AMDMAXIMUMWORDLENGTH"></span></div>\n <div ng-messages="amdForm[\'dialAMDMaximumWordLength\'].$error" ng-show="amdForm[\'dialAMDMaximumWordLength\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMWORDLENGTH_REQUIRED">AMDMaximumWordLength field is required</span>\n </div>\n <div ng-message="min">\n <span translate="MOTIONDIALER.ERRORS.AMDMAXIMUMWORDLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AMDMaximumWordLength must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.HOPPERS">HOPPERS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="queueCampaign-detail-form-container hopperstatistics md-background-bg md-whiteframe-1dp">\n <div ng-controller="QueueCampaignHopperStatisticsController as vm_hs" ng-init="vm_hs.init(vm.queueCampaign)">\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.HOPPERWIDGET">Hoppers</span>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_hs.init(vm.queueCampaign)" aria-label="refresh Hopper" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{(vm_hs.total || 0) + (vm_hs.closed || 0)}}</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.TOTAL\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{vm_hs.fresh || 0}} ({{vm_hs.total ? ((((vm_hs.fresh || 0) * 100)/((vm_hs.closed || 0) + (vm_hs.total || 0))) | number: 2) : 0}}%)</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.FRESH\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{vm_hs.total ? (vm_hs.total - (vm_hs.fresh || 0)) : 0}} ({{vm_hs.total ? ((((vm_hs.total - (vm_hs.fresh || 0)) * 100)/((vm_hs.closed || 0) + (vm_hs.total || 0))) | number: 2) : 0}}%)</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.OPEN\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="25">\n\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">{{vm_hs.closed ? (vm_hs.closed || 0) : 0}} ({{vm_hs.closed ? ((((vm_hs.closed) * 100)/(vm_hs.closed + (vm_hs.total || 0))) | number: 2) : 0}}%)</div>\n <div class="font-weight-500 secondary-text">{{ \'MOTIONDIALER.CLOSED\' | translate }}</div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n </div>\n\n </div>\n <div class="queueCampaign-detail-form-container hoppers md-background-bg md-whiteframe-1dp">\n <div ng-controller="QueueCampaignHoppersController as vm_dc" ng-init="vm_dc.init(vm.queueCampaign, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedQueueCampaignHoppers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.HOPPERS">Hoppers</span>\n <ms-search-bar on-search="vm_dc.getQueueCampaignHoppers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_dc.getQueueCampaignHoppers()" aria-label="refresh Hoppers" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedQueueCampaignHoppers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedQueueCampaignHoppers.length}} {{vm_dc.selectedQueueCampaignHoppers.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedQueueCampaignHoppers" csv-label="true" filename="queueCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedQueueCampaignHoppers($event)" aria-label="delete selected" translate translate-attr-label="MOTIONDIALER.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedQueueCampaignHoppers" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getQueueCampaignHoppers">\n <tr md-row>\n <th md-column md-order-by="ContactId">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="phone">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column md-order-by="countcongestionretry">\n {{ \'MOTIONDIALER.CONGESTION\' | translate }}\n </th>\n <th md-column md-order-by="countbusyretry">\n {{ \'MOTIONDIALER.BUSY\' | translate }}\n </th>\n <th md-column md-order-by="countnoanswerretry">\n {{ \'MOTIONDIALER.NOANSWER\' | translate }}\n </th>\n <th md-column md-order-by="countnosuchnumberretry">\n {{ \'MOTIONDIALER.NOSUCHNUMBER\' | translate }}\n </th>\n <th md-column md-order-by="countdropretry">\n {{ \'MOTIONDIALER.DROP\' | translate }}\n </th>\n <th md-column md-order-by="countabandonedretry">\n {{ \'MOTIONDIALER.ABANDONED\' | translate }}\n </th>\n <th md-column md-order-by="countmachineretry">\n {{ \'MOTIONDIALER.MACHINE\' | translate }}\n </th>\n <th md-column md-order-by="countagentrejectretry">\n {{ \'MOTIONDIALER.AGENTREJECT\' | translate }}\n </th>\n <th md-column md-order-by="scheduledat">\n {{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}\n </th>\n <th md-column md-order-by="priority">\n {{ \'MOTIONDIALER.PRIORITY\' | translate }}\n </th>\n <th md-column md-order-by="recallme">\n {{ \'MOTIONDIALER.RECALLAGENT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="hopper" md-select-id="id" ng-repeat="hopper in vm_dc.queueCampaignHoppers.rows">\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.ContactId}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell privacy ng-cloak>\n {{hopper.phone}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countcongestionretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countbusyretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countnoanswerretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countnosuchnumberretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countdropretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countabandonedretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countmachineretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{hopper.countagentrejectretry}}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{ hopper.scheduledat | formatdate }}\n </td>\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell>\n {{ vm_dc.arraypriority[hopper.priority].option }} </td>\n\n <td ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" md-cell class="recallme ">\n <md-icon md-colors="{color: {{hopper.recallme ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{hopper.recallme? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditQueueCampaignHopper($event, hopper)" translate="MOTIONDIALER.EDIT_HOPPER">\n Edit Hopper\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(hopper, $event)" translate="MOTIONDIALER.DELETE_HOPPER">\n Delete Hopper\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.queueCampaignHoppers.rows.length">\n <td md-cell colspan="17">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPER_AVAILABLE">No hopper available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.queueCampaignHoppers.count}}" md-on-paginate="vm_dc.getQueueCampaignHoppers" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.HISTORY">HISTORY</span>\n </md-tab-label>\n <md-tab-body>\n <div class="queueCampaign-detail-form-container hopperhistories md-background-bg md-whiteframe-1dp">\n <div ng-controller="QueueCampaignHopperHistoriesController as vm_dc" ng-init="vm_dc.init(vm.queueCampaign, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedQueueCampaignHopperHistories.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.HOPPERHISTORIES">HopperHistories</span>\n <ms-search-bar on-search="vm_dc.getQueueCampaignHopperHistories()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_dc.getQueueCampaignHopperHistories()" aria-label="refresh HopperHistories" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERHISTORIES">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedQueueCampaignHopperHistories.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedQueueCampaignHopperHistories.length}} {{vm_dc.selectedQueueCampaignHopperHistories.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedQueueCampaignHopperHistories" csv-label="true" filename="queueCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedQueueCampaignHopperHistories" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getQueueCampaignHopperHistories">\n <tr md-row>\n <th md-column md-order-by="uniqueid">\n {{ \'MOTIONDIALER.UNIQUEID\' | translate }}\n </th>\n <th md-column md-order-by="ContactId">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="calleridnum">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column md-order-by="calleridname">\n {{ \'MOTIONDIALER.NAME\' | translate }}\n </th>\n <th md-column md-order-by="statedesc">\n {{ \'MOTIONDIALER.STATUS\' | translate }}\n </th>\n <th md-column md-order-by="scheduledat">\n {{ \'MOTIONDIALER.SCHEDULEDAT\' | translate }}\n </th>\n <th md-column md-order-by="starttime">\n {{ \'MOTIONDIALER.STARTTIME\' | translate }}\n </th>\n <th md-column md-order-by="endtime">\n {{ \'MOTIONDIALER.ENDTIME\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="hopperHistory" md-select-id="id" ng-repeat="hopperHistory in vm_dc.queueCampaignHopperHistories.rows">\n <td md-cell>\n {{hopperHistory.uniqueid}}\n </td>\n <td md-cell>\n {{hopperHistory.ContactId}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperHistory.calleridnum}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperHistory.calleridname}}\n </td>\n <td md-cell>\n {{hopperHistory.statedesc}}\n </td>\n <td md-cell>\n {{ hopperHistory.scheduledat | formatdate }}\n </td>\n <td md-cell>\n {{ hopperHistory.starttime | formatdate }}\n </td>\n <td md-cell>\n {{ hopperHistory.endtime | formatdate }}\n </td>\n <td md-cell class="actions">\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.queueCampaignHopperHistories.rows.length">\n <td md-cell colspan="11">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPERHISTORY_AVAILABLE">No hopperhistory available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.queueCampaignHopperHistories.count}}" md-on-paginate="vm_dc.getQueueCampaignHopperHistories" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.FINAL">FINAL</span>\n </md-tab-label>\n <md-tab-body>\n <div class="queueCampaign-detail-form-container hopperfinals md-background-bg md-whiteframe-1dp">\n <div ng-controller="QueueCampaignHopperFinalsController as vm_dc" ng-init="vm_dc.init(vm.queueCampaign, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedQueueCampaignHopperFinals.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.HOPPERFINALS">HopperFinals</span>\n <ms-search-bar on-search="vm_dc.getQueueCampaignHopperFinals()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button class="md-icon-button" ng-click="vm_dc.getQueueCampaignHopperFinals()" aria-label="refresh HopperFinals" translate translate-attr-label="MOTIONDIALER.REFRESH_HOPPERFINALS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="vm_dc.countContactsQueueCampaignHopperFinal(vm_dc.query.id); $mdOpenMenu($event);">\n <md-icon md-font-icon="icon-backup-restore"></md-icon>\n <md-tooltip><span translate="MOTIONDIALER.RESTORECONTACTS"></span></md-tooltip>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(3)">\n <span translate="MOTIONDIALER.NOANSWER ">NoAnswer</span>\n <span class="badge">({{vm_dc.contacts.noAnswerContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(5)">\n <span translate="MOTIONDIALER.BUSY ">Busy</span>\n <span class="badge">({{vm_dc.contacts.busyContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(8)">\n <span translate="MOTIONDIALER.CONGESTION ">Congestion</span>\n <span class="badge">({{vm_dc.contacts.congestionContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(10)">\n <span translate="MOTIONDIALER.DROPPED ">Drop</span>\n <span class="badge">({{vm_dc.contacts.dropContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(11)">\n <span translate="MOTIONDIALER.ABANDONED ">Abandoned</span>\n <span class="badge">({{vm_dc.contacts.abandonedContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(22)">\n <span translate="MOTIONDIALER.RECALLFAILEDTIMEOUT">Recall</span>\n <span class="badge">({{vm_dc.contacts.reCallContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(0)">\n <span translate="MOTIONDIALER.NO_SUCH_NUMBER">NoSuchNumber</span>\n <span class="badge">({{vm_dc.contacts.noSuchContacts}})</span>\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm_dc.moveContactsQueueCampaignHopperFinal(19)">\n <span translate="MOTIONDIALER.ANSWERING_MACHINE">AnsweringMachine</span>\n <span class="badge">({{vm_dc.contacts.answeringMachine}})</span>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedQueueCampaignHopperFinals.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedQueueCampaignHopperFinals.length}} {{vm_dc.selectedQueueCampaignHopperFinals.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedQueueCampaignHopperFinals" csv-label="true" filename="queueCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.moveSelectedQueueCampaignHopperFinals($event)" aria-label="move selected" translate translate-attr-label="MOTIONDIALER.MOVE_SELECTED">\n <md-icon md-font-icon="icon-restore"></md-icon>\n <md-tooltip><span translate="MOTIONDIALER.RESTORECONTACTS"></span></md-tooltip>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedQueueCampaignHopperFinals" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getQueueCampaignHopperFinals">\n <tr md-row>\n <th md-column md-order-by="uniqueid">\n {{ \'MOTIONDIALER.UNIQUEID\' | translate }}\n </th>\n <th md-column md-order-by="ContactId">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="calleridnum">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column md-order-by="calleridname">\n {{ \'MOTIONDIALER.NAME\' | translate }}\n </th>\n <th md-column md-order-by="statedesc">\n {{ \'MOTIONDIALER.STATUS\' | translate }}\n </th>\n <th md-column md-order-by="countcongestionretry">\n {{ \'MOTIONDIALER.CONGESTION\' | translate }}\n </th>\n <th md-column md-order-by="countbusyretry">\n {{ \'MOTIONDIALER.BUSY\' | translate }}\n </th>\n <th md-column md-order-by="countnoanswerretry">\n {{ \'MOTIONDIALER.NOANSWER\' | translate }}\n </th>\n <th md-column md-order-by="countnosuchnumberretry">\n {{ \'MOTIONDIALER.NOSUCHNUMBER\' | translate }}\n </th>\n <th md-column md-order-by="countdropretry">\n {{ \'MOTIONDIALER.DROP\' | translate }}\n </th>\n <th md-column md-order-by="countabandonedretry">\n {{ \'MOTIONDIALER.ABANDONED\' | translate }}\n </th>\n <th md-column md-order-by="countmachineretry">\n {{ \'MOTIONDIALER.MACHINE\' | translate }}\n </th>\n <th md-column md-order-by="countagentrejectretry">\n {{ \'MOTIONDIALER.AGENTREJECT\' | translate }}\n </th>\n <th md-column md-order-by="starttime">\n {{ \'MOTIONDIALER.STARTTIME\' | translate }}\n </th>\n <th md-column md-order-by="endtime">\n {{ \'MOTIONDIALER.ENDTIME\' | translate }}\n </th>\n <th md-column md-order-by="disposition">\n {{ \'MOTIONDIALER.DISPOSITION\' | translate }}\n </th>\n <th md-column md-order-by="secondDisposition">\n {{ \'MOTIONDIALER.SECOND_LEVEL_DISPOSITION\' | translate }}\n </th>\n <th md-column md-order-by="thirdDisposition">\n {{ \'MOTIONDIALER.THIRD_LEVEL_DISPOSITION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="hopperFinal" md-select-id="id" ng-repeat="hopperFinal in vm_dc.queueCampaignHopperFinals.rows">\n <td md-cell>\n {{hopperFinal.uniqueid}}\n </td>\n <td md-cell>\n {{hopperFinal.ContactId}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperFinal.calleridnum}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperFinal.calleridname}}\n </td>\n <td md-cell>\n {{hopperFinal.statedesc}}\n </td>\n <td md-cell>\n {{hopperFinal.countcongestionretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countbusyretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countnoanswerretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countnosuchnumberretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countdropretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countabandonedretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countmachineretry}}\n </td>\n <td md-cell>\n {{hopperFinal.countagentrejectretry}}\n </td>\n <td md-cell>\n {{ hopperFinal.starttime | formatdate }}\n </td>\n <td md-cell>\n {{ hopperFinal.endtime | formatdate }}\n </td>\n <td md-cell>\n {{hopperFinal.disposition}}\n </td>\n <td md-cell>\n {{hopperFinal.secondDisposition}}\n </td>\n <td md-cell>\n {{hopperFinal.thirdDisposition}}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.moveConfirm(hopperFinal, $event)" translate="MOTIONDIALER.MOVE_HOPPERFINAL">\n Move HopperFinal\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.queueCampaignHopperFinals.rows.length">\n <td md-cell colspan="30">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPERFINAL_AVAILABLE">No hopperfinal available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.queueCampaignHopperFinals.count}}" md-on-paginate="vm_dc.getQueueCampaignHopperFinals" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.BLACKLIST">BLACKLIST</span>\n </md-tab-label>\n <md-tab-body>\n <div class="queueCampaign-detail-form-container hopperblacks md-background-bg md-whiteframe-1dp">\n <div ng-controller="QueueCampaignHopperBlacksController as vm_dc" ng-init="vm_dc.init(vm.queueCampaign, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedQueueCampaignHopperBlacks.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.HOPPERBLACKS">HopperBlacks</span>\n <ms-search-bar on-search="vm_dc.getQueueCampaignHopperBlacks()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedQueueCampaignHopperBlacks.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedQueueCampaignHopperBlacks.length}} {{vm_dc.selectedQueueCampaignHopperBlacks.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedQueueCampaignHopperBlacks" csv-label="true" filename="queueCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedQueueCampaignHopperBlacks" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getQueueCampaignHopperBlacks">\n <tr md-row>\n <th md-column md-order-by="ContactId">\n {{ \'MOTIONDIALER.CONTACTID\' | translate }}\n </th>\n <th md-column md-order-by="phone">\n {{ \'MOTIONDIALER.PHONE\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="hopperBlack" md-select-id="id" ng-repeat="hopperBlack in vm_dc.queueCampaignHopperBlacks.rows">\n <td md-cell>\n {{hopperBlack.ContactId}}\n </td>\n <td md-cell privacy ng-cloak>\n {{hopperBlack.phone}}\n </td>\n <td md-cell class="actions">\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.queueCampaignHopperBlacks.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="MOTIONDIALER.NO_HOPPERBLACK_AVAILABLE">No hopperblack available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.queueCampaignHopperBlacks.count}}" md-on-paginate="vm_dc.getQueueCampaignHopperBlacks" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/motiondialer/views/queueCampaigns/queueCampaigns.html",'<div id="queueCampaigns" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-fire" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="MOTIONDIALER.QUEUECAMPAIGNS">QueueCampaigns</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="MOTIONDIALER.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedQueueCampaigns.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedQueueCampaigns =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="MOTIONDIALER.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-queueCampaigns-count">\n <span>{{vm.selectedQueueCampaigns.length}}</span>\n <span translate="MOTIONDIALER.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="MOTIONDIALER.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllQueueCampaigns()" translate="MOTIONDIALER.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectQueueCampaigns()" translate="MOTIONDIALER.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedQueueCampaigns" csv-label="true" filename="queueCampaigns.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedQueueCampaigns($event)" aria-label="delete selected" translate translate-attr-label="MOTIONDIALER.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- QUEUECAMPAIGN TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedQueueCampaigns" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueueCampaigns">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'MOTIONDIALER.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'MOTIONDIALER.NAME\' | translate }}</th>\n <th md-column md-order-by="dialActive">{{ \'MOTIONDIALER.ACTIVE\' | translate }}</th>\n <th md-column md-order-by="TrunkId">{{ \'MOTIONDIALER.TRUNK\' | translate }}</th>\n <th md-column md-order-by="dialMethod">{{ \'MOTIONDIALER.METHOD\' | translate }}</th>\n <th md-column md-order-by="strategy">{{ \'MOTIONDIALER.STRATEGY\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.queueCampaigns.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="queueCampaign" md-select-id="id" ng-repeat="queueCampaign in vm.queueCampaigns.rows">\n <td md-cell ng-if="queueCampaign.userpic"><img class="avatar" alt="{{queueCampaign.name}}" ng-src="api/users/{{queueCampaign.id}}/avatar" /></td>\n <td md-cell ng-if="!queueCampaign.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{queueCampaign.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(queueCampaign, ev) : vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="id ">{{queueCampaign.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(queueCampaign, ev) : vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="name ">{{queueCampaign.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(queueCampaign, ev) : vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="dialActive ">\n <md-icon md-colors="{color: {{queueCampaign.dialActive ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{queueCampaign.dialActive ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(queueCampaign, ev) : vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="TrunkId ">{{ (vm.trunks | filter : {\'id\':queueCampaign.TrunkId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(queueCampaign, ev) : vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="dialMethod ">{{ vm.arraydialMethod[queueCampaign.dialMethod].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(queueCampaign, ev) : vm.createOrEditQueueCampaign($event, queueCampaign)" md-cell class="strategy ">{{ vm.arraystrategy[queueCampaign.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(queueCampaign, $event )" translate="MOTIONDIALER.EDIT_QUEUECAMPAIGN">\n Edit QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.clonedialog(queueCampaign, $event )" translate="MOTIONDIALER.CLONE_QUEUECAMPAIGN">\n clone QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.listadddialog(queueCampaign, $event )" translate="MOTIONDIALER.LISTADD_QUEUECAMPAIGN">\n listadd QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.blacklistadddialog(queueCampaign, $event )" translate="MOTIONDIALER.BLACKLISTADD_QUEUECAMPAIGN">\n blacklistadd QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(queueCampaign, $event )" translate="MOTIONDIALER.TEAMADD_QUEUECAMPAIGN">\n teamadd QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(queueCampaign, $event )" translate="MOTIONDIALER.AGENTADD_QUEUECAMPAIGN">\n agentadd QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(queueCampaign, $event )" translate="MOTIONDIALER.DELETE_QUEUECAMPAIGN">\n Delete QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(queueCampaign, $event )" translate="MOTIONDIALER.GOTOREALTIME_QUEUECAMPAIGN">\n goToRealtime QueueCampaign\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queueCampaigns.count}}" md-on-paginate="vm.getQueueCampaigns" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / QUEUECAMPAIGN TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD QUEUECAMPAIGN BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-queueCampaign-button" ng-click="vm.createOrEditQueueCampaign($event)" aria-label="add queueCampaign" translate translate-attr-aria-label="MOTIONDIALER.ADD_QUEUECAMPAIGN">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD QUEUECAMPAIGN BUTTON --\x3e\n</div>'),e.put("app/main/apps/motiondialer/views/realtime/abandonedcalls/view.html",'<md-toolbar class="md-table-toolbar md-default table-header">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.ABANDONEDQUEUECALLS">ABANDONED QUEUE CALLS</span>\n <ms-search-bar on-search="vm.getAbandonedCalls()" query="vm.query" on-collapse="vm.query.filter = undefined" debounce="300">\n </ms-search-bar>\n <div flex></div>\n\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getAbandonedCalls()"></ms-quick-filter>\n\n <md-button class="md-icon-button" ng-click="vm.refresh && vm.refreshAbandonedCalls($event)" aria-label="Reload" translate translate-attr-label="DASHBOARDS.RELOAD">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip ng-if="vm.showTooltip" md-visible="vm.showTooltip">{{\'DASHBOARDS.CLICKRELOAD\' | translate}}\n </md-tooltip>\n </md-button>\n </div>\n</md-toolbar>\n<md-table-container>\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getAbandonedCalls">\n <tr md-row>\n <th md-column md-order-by="id">ID</th>\n <th md-column md-order-by="calleridname">{{\'DASHBOARDS.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="calleridnum">{{\'DASHBOARDS.PHONE\' | translate}}</th>\n <th md-column md-order-by="queue">{{\'DASHBOARDS.QUEUE\' | translate}}</th>\n <th md-column md-order-by="queuecallerabandonAt">{{\'DASHBOARDS.ABANDONAT\' | translate}}</th>\n <th md-column md-order-by="queuecallerexitAt">{{\'DASHBOARDS.QUEUECALLEREXITAT\' | translate}}</th>\n <th md-column md-order-by="queuecallerexitreason">{{\'DASHBOARDS.QUEUECALLEREXITREASON\' | translate}}</th>\n <th md-column md-order-by="lastAssignedTo">{{\'DASHBOARDS.LASTASSIGNEDTO\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.abandonedCalls.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="call in vm.abandonedCalls.rows">\n <td md-cell class="id">{{call.id}}</td>\n <td md-cell class="firstName" privacy ng-cloak>{{call.calleridname}}</td>\n <td md-cell class="list" privacy ng-cloak>{{call.calleridnum}}</td>\n <td md-cell class="list">{{vm.queuesMap[call.queue]}}</td>\n <td md-cell class="list">\n {{call.queuecallerabandonAt ? (call.queuecallerabandonAt | formatdate) : (call.queuecallerexitAt | formatdate) }}\n </td>\n <td md-cell class="list">{{call.queuecallerexitAt ? (call.queuecallerexitAt | formatdate) : undefined }}\n </td>\n <td md-cell class="list">{{call.queuecallerexitreason}}</td>\n <td md-cell class="list">{{call.lastAssignedTo}}</td>\n <td md-cell class="list">{{ call.disposition }}</td>\n <td md-cell class="list">{{ call.secondDisposition }}</td>\n <td md-cell class="list">{{ call.thirdDisposition }}</td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button ng-click="$mdMenu.open()" class="text-capitalize" translate="DASHBOARDS.ASSIGNTO">\n Assigned\n to</md-button>\n <md-menu-content>\n <md-menu-item ng-if="call.lastAssignedTo">\n <md-button ng-click="vm.assignTo(call)"><em translate="DASHBOARDS.NONE">Not Assigned</em>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.agents.rows.length" ng-repeat="agent in vm.agents.rows">\n <md-button ng-click="vm.assignTo(call,agent)">{{agent.name}}</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.dispose(call)" class="text-capitalize" translate="DASHBOARDS.DISPOSE">\n Dispose\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.abandonedCalls.count}}" md-on-paginate="vm.getAbandonedCalls" md-page-select></md-table-pagination>'),e.put("app/main/apps/motiondialer/views/realtime/ivr_campaigns/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.IVR_CAMPAIGNS">Ivr Campaigns</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getCampaigns()" query="vm.query" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n\n\x3c!-- QUEUE TABLE --\x3e\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getCampaigns">\n <tr md-row>\n <th md-column>{{\'MOTIONDIALER.NAME\' | translate}}</th>\n <th md-column>{{\'MOTIONDIALER.TOTAL\' | translate}}</th>\n <th md-column>{{\'MOTIONDIALER.TOTAL_MANAGED\' | translate}}</th>\n <th md-column>{{\'MOTIONDIALER.LIMITED\' | translate}}</th>\n <th md-column>{{\'MOTIONDIALER.ORIGINATED\' | translate}}</th>\n <th md-column>{{\'MOTIONDIALER.MESSAGE\' | translate}}</th>\n <th md-column>{{\'MOTIONDIALER.CALLYSQUAREPROJECT\' | translate}}</th>\n <th md-column>{{\'MOTIONDIALER.TRUNK\' | translate }}</th>\n <th md-column>{{\'MOTIONDIALER.ACTIVE\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.campaigns">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span translate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(id, campaign) in vm.campaigns">\n <td md-cell>\n <span>{{campaign.name}}</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{campaign.ivrTotalCallsDays || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{campaign.ivrAnswerCallsDay || 0}} ({{(campaign.ivrTotalCallsDays) ? (campaign.ivrAnswerCallsDay || 0) * 100/(campaign.ivrTotalCallsDays ) : 0 | number:1}}%)</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{campaign.limitCalls || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{campaign.originated || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{campaign.message ? (\'MOTIONDIALER.\'+campaign.message | translate) : \'--\'}}</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{campaign.dialQueueProject || \'--\'}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{campaign.Trunk ? campaign.Trunk.name : \'--\'}}</span>\n </td>\n <td md-cell>\n <md-icon md-colors="{color: {{campaign.active ? \'\\\'green\\\'\' : \'\\\'red\\\'\'}}}" md-font-icon="{{campaign.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.createOrEditIvrCampaign($event, campaign)" translate="MOTIONDIALER.EDIT_CAMPAIGN">\n Edit Campaign\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getCampaigns" md-page-select></md-table-pagination>\n\x3c!-- / QUEUE TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/motiondialer/views/realtime/queue_calls/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.QUEUE_CALLS">Queue Calls</span>\n </div>\n</md-toolbar>\n\x3c!-- QUEUES TABLE --\x3e\n<md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column width="30px"></th>\n <th md-column>{{ \'MOTIONDIALER.DID\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.QUEUE\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.CALLER\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.AGENT\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.DURATION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.getSize(vm.rpcVoiceQueuesChannels)">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, channel) in vm.rpcVoiceQueuesChannels | limitObjectFromTo: vm.queryChannels.limit:(vm.queryChannels.page - 1) * vm.queryChannels.limit">\n <td md-cell>\n <md-icon ng-if="channel.queuecallerleaveAt" md-font-icon="icon-phone-in-talk green-fg"></md-icon>\n <md-icon ng-if="!channel.queuecallerleaveAt" md-font-icon="icon-phone-incoming md-accent"></md-icon>\n </td>\n <td md-cell>{{channel.exten}}</td>\n <td md-cell>{{channel.queue}}</td>\n <td md-cell privacy ng-cloak>{{channel.calleridnum}}</td>\n <td md-cell>\n <span ng-if="channel.queuecallerleaveAt">\n {{channel.connectedlinename}}, {{channel.connectedlinenum}}\n <span class="text-boxed">\n <timer start-time="channel.queuecallerleaveAt"></timer>\n </span>\n </span>\n <span ng-if="!channel.queuecallerleaveAt" class="text-boxed">\n {{ \'MOTIONDIALER.WAITING_FOR_AGENT\' | translate }}\n <timer start-time="channel.queuecallerjoinAt"></timer>\n </span>\n </td>\n <td md-cell>\n <span class="text-boxed">\n <timer start-time="channel.queuecallerjoinAt"></timer>\n </span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.hangup(channel.uniqueid)" translate="MOTIONDIALER.HANGUP">\n Hangup\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.redirectToNumber($event, channel.uniqueid)" translate="MOTIONDIALER.REDIRECT_TO_NUMBER">\n Number\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-menu class="no-margin">\n <md-button ng-mouseenter="vm.getAvailableAgents()" translate="MOTIONDIALER.REDIRECT_TO_AGENT">\n Redirect to Agent</md-button>\n <md-menu-content>\n <md-menu-item ng-if="!vm.availableAgents">\n <md-progress-circular class="md-accent auto-margin" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="vm.availableAgents.length > 0" ng-repeat="agent in vm.availableAgents">\n <md-button ng-click="vm.redirectToAgent(channel.uniqueid, agent.name, agent.context)">\n {{agent.name}}</md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.availableAgents.length === 0">\n <span>No agents available</span>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n<md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.queryChannels.limit" md-page="vm.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm.getSize(vm.rpcVoiceQueuesChannels)}}" md-page-select></md-table-pagination>\n\x3c!-- / QUEUES TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/motiondialer/views/realtime/queue_params/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.QUEUE_PARAMETERS">Params</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n\n\x3c!-- QUEUE TABLE --\x3e\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n <tr md-row>\n <th md-column>{{\'\n MOTIONDIALER.NAME\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.TOTAL\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.TOTAL_OFFERED\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.MANAGED\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.ABANDONED\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.DROPPED\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.AVG_HOLD_TIME\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.AVG_DURATION\' | translate}}</th>\n <th md-column>{{\'\n MOTIONDIALER.AVG_BILLABLE\' | translate}}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.queues">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span translate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(id, queue) in vm.queues">\n <td md-cell>\n <span>{{queue.name}}</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{(queue.answered + queue.outboundNoAnswerCallsDay + queue.outboundBusyCallsDay + queue.outboundCongestionCallsDay + queue.outboundNoSuchCallsDay + queue.outboundUnknownCallsDay + queue.outboundDropCallsDayTimeout + queue.outboundDropCallsDayCallersExit + queue.outboundBlacklistCallsDay + queue.outboundOriginateFailureCallsDay + queue.outboundAnswerAgiCallsDay + queue.outboundReCallsDay + queue.outboundRejectCallsDay )|| 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-20 grey-fg">{{queue.total || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{queue.answered || 0}} ({{(queue.answered) ? (100 - (((queue.outboundDropCallsDayTimeout || 0) * 100/(queue.total)) | number:1 ) - (((queue.outboundDropCallsDayCallersExit || 0) * 100/(queue.total )) | number:1 ) ) : 0 | number:1}}%)</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{queue.outboundDropCallsDayCallersExit || 0}} ({{(queue.outboundDropCallsDayCallersExit) ? (queue.outboundDropCallsDayCallersExit || 0) * 100/(queue.total ) : 0 | number:1}}%)</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{queue.outboundDropCallsDayTimeout || 0}} ({{(queue.outboundDropCallsDayTimeout) ? (queue.outboundDropCallsDayTimeout || 0) * 100/(queue.total) : 0 | number:1}}%)</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{queue.total ? (queue.sumHoldTime / queue.total) : 0 | number: 0 | secToTime | date:\'HH:mm:ss\'}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{queue.total ? (queue.sumDuration / queue.total) : 0 | number: 0 | secToTime | date:\'HH:mm:ss\'}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{queue.answered ? ((queue.sumBillable || 0) / queue.answered) : 0 | number: 0 | secToTime | date:\'HH:mm:ss\'}}</span>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>\n\x3c!-- / QUEUE TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/motiondialer/views/realtime/queues/predictive/dialog.html",'<md-dialog class="predictive-dialog" aria-label="New predictive">\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.queueCampaign.name }} Info</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content class="text-center" ms-scroll>\n <ds-widget-clock data-show-digital></ds-widget-clock>\n <div ng-if="!vm.queueCampaign.startProgressive && !vm.queueCampaign.startPredictive">\n <div class="md-title"><span translate="MOTIONDIALER.PREDICTIVE_IS_NOT_RUNNING">Predictive is not running</span></div>\n </div>\n\n <div ng-if="vm.queueCampaign.startProgressive && !vm.queueCampaign.startPredictive" class="m-10">\n <div layout="row">\n <div flex="" class="column">\n <div class="md-headline"><span translate="MOTIONDIALER.DATA_COLLECTION_IN_PROGRESSIVE">Data collection in progressive</span></div>\n <div class="md-subhead">({{vm.queueCampaign.dialPredictiveInterval}} minutes)</div>\n </div>\n </div>\n\n <div layout="row">\n <div flex="" class="column">\n <div class="md-subhead"><span translate="MOTIONDIALER.STARTTIME">Start Time</span></div>\n <div class="md-headline">{{ vm.setFormatTime(vm.queueCampaign.startProgressive) }}</div>\n </div>\n <div flex="" class="column">\n <div class="md-subhead"><span translate="MOTIONDIALER.ENDTIME">End Time</span></div>\n <div class="md-headline">\n {{ vm.addMinutes(vm.queueCampaign.startProgressive, vm.queueCampaign.dialPredictiveInterval) }}\n </div>\n </div>\n </div>\n <div>\n <span class="text-boxed blue-bg white-fg">\n {{vm.queueCampaign.message ? (\'MOTIONDIALER.\' + vm.queueCampaign.message | translate) : \'--\'}}\n </span>\n </div>\n </div>\n <div ng-if="vm.queueCampaign.startPredictive" class="m-10">\n <div layout="row">\n <div flex="" class="column">\n <div class="md-headline"><span translate="MOTIONDIALER.PREDICTIVE_IS_RUNNING">Predictive is runnning</span></div>\n <div class="md-subhead">({{vm.queueCampaign.dialPredictiveInterval}} minutes)</div>\n </div>\n </div>\n\n <div layout="row">\n <div flex="" class="column">\n <div class="md-subhead"><span translate="MOTIONDIALER.STARTTIME">Start Time</span></div>\n <div class="md-headline">{{ vm.setFormatTime(vm.queueCampaign.startPredictive) }}</div>\n </div>\n <div flex="" class="column">\n <div class="md-subhead"><span translate="MOTIONDIALER.ENDTIME">End Time</span></div>\n <div class="md-headline">\n {{ vm.addMinutes(vm.queueCampaign.startPredictive, vm.queueCampaign.dialPredictiveInterval) }}\n </div>\n </div>\n </div>\n <div>\n <span class="text-boxed blue-bg white-fg">\n {{vm.queueCampaign.message ? (\'MOTIONDIALER.\' + vm.queueCampaign.message | translate) : \'--\'}}\n </span>\n </div>\n <div class="row">\n <md-card>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Predictive - {{ \'MOTIONDIALER.PREVIOUS_INTERVAL\' | translate }}</span>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <tbody md-body>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.TOTAL_CALLS">Total Calls</span></td>\n <td md-cell>{{ vm.queueCampaign.predictiveIntervalTotalCalls }}</td>\n </tr>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.ANSWERED_CALLS">Total Calls</span></td>\n <td md-cell>{{ vm.queueCampaign.predictiveIntervalAnsweredCalls }}</td>\n </tr>\n \x3c!-- Temporaneamente non mostrate perchè contengono anche i dati dell\'intervallo corrente --\x3e\n \x3c!-- <tr md-row>\n <td md-cell>Dropped Calls Timeout</td>\n <td md-cell>{{ vm.queueCampaign.predictiveIntervalDroppedCallsTimeout }}</td>\n </tr>\n <tr md-row>\n <td md-cell>Dropped Calls Caller Exit</td>\n <td md-cell>{{ vm.queueCampaign.predictiveIntervalDroppedCallsCallersExit }}\n </td>\n </tr> --\x3e\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.AVG_HOLD_TIME">AVG Hold Time</span></td>\n <td md-cell>~ {{ vm.queueCampaign.predictiveIntervalAvgHoldtime | number:0 }}s</td>\n </tr>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.AVG_TALK_TIME">AVG Talk Time</span></td>\n <td md-cell>~ {{ vm.queueCampaign.predictiveIntervalAvgTalktime | number:0 }}s</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-card>\n <md-card>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead">ErlangB - {{ \'MOTIONDIALER.CURRENT_INTERVAL\' | translate }}</span>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <tbody md-body>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.SCHEDULED_CALLS">Scheduled Calls</span></td>\n <td md-cell>{{ vm.queueCampaign.erlangCalls }}</td>\n </tr>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.ONE_CALL_EVERY">One call every</span></td>\n <td md-cell>~ {{ vm.queueCampaign.erlangCallToSecond | number:0 }}s</td>\n </tr>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.DROPRATE">Drop Rate</span></td>\n <td md-cell>{{ vm.queueCampaign.erlangAbandonmentRate * 100 | number:2 }}%</td>\n </tr>\n <tr md-row>\n <td md-cell><span translate="MOTIONDIALER.AGENTBUSYFACTOR">Agent Busy Factor</span></td>\n <td md-cell>{{ vm.queueCampaign.erlangBusyFactor * 100 | number:2 }}%</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-card>\n </div>\n </div>\n\n\n </md-dialog-content>\n</md-dialog>'),e.put("app/main/apps/motiondialer/views/realtime/queues/view.html",'<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.QUEUES">Queues</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'MOTIONDIALER.NAME\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.PAUSED\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.TALKING\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.BUSY\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.WAITING\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.ORIGINATED_TEXT\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.MESSAGE\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.METHOD\' | translate }}</th>\n <th md-column>{{ \'MOTIONDIALER.TRUNK\' | translate }}</th>\n <th md-column md-order-by="dialActive">{{ \'MOTIONDIALER.ACTIVE\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.queues.count > 0">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span translate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="queue" md-select-id="id" ng-repeat="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedInDb }} ({{ queue.loggedIn }})</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.talking + queue.pTalking}}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedInDb - queue.available - queue.paused - queue.talking - queue.waiting\n }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.originated }}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{ queue.message ? (\'MOTIONDIALER.\'+queue.message | translate) : \'--\'}}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.dialMethod || 0 }}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{ queue.Trunk ? queue.Trunk.name : \'--\' }}</span>\n </td>\n <td md-cell>\n <md-icon md-colors="{color: {{queue.dialActive ? \'\\\'green\\\'\' : \'\\\'red\\\'\'}}}" md-font-icon="{{queue.dialActive ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="MOTIONDIALER.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="MOTIONDIALER.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="queue.dialMethod == \'predictive\'">\n <md-button ng-click="vm.showPredictiveQueueCampaignInfo($event, queue)" translate="MOTIONDIALER.SHOW_PREDICTIVE_QUEUE_CAMPAIGN_INFO">\n Show Predictive Info\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" translate="MOTIONDIALER.AGENTSADD_QUEUE">\n Add Agents to queue\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),e.put("app/main/apps/motiondialer/views/realtime/realtime.html",'<div id="realtime" class="page-layout simple tabbed" layout="column" ng-cloak>\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.QUEUES">Queues</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.QUEUE_CALLS">Queue Calls</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.ABANDONEDCALLS">Abandoned Queue Calls</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.QUEUE_PARAMS">Queue Parameters</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="MOTIONDIALER.IVR_CAMPAIGNS">Ivr Campaigns</span>\n </md-tab-label>\n </md-tab>\n </md-tabs>\n\n <md-card ui-view></md-card>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/create/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.openchannelAccount.name" ng-required="true" autofocus ng-disabled="!vm.newOpenchannelAccount">\n\n <div ng-messages="openchannelAccountForm[\'name\'].$error" ng-show="openchannelAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.KEY">key</label>\n <input type="text" name="key" ng-model="vm.openchannelAccount.key" md-maxlength="5" ng-required="true">\n\n <div ng-messages="openchannelAccountForm[\'key\'].$error" ng-show="openchannelAccountForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="OPENCHANNEL.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.REPLYURI">replyUri</label>\n <input type="url" name="replyUri" ng-model="vm.openchannelAccount.replyUri">\n\n <div class="hint"><span translate="OPENCHANNEL.HELP.REPLYURI"></span></div>\n <div ng-messages="openchannelAccountForm[\'replyUri\'].$error" ng-show="openchannelAccountForm[\'replyUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.REPLYURI_REQUIRED">replyUri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="OPENCHANNEL.ERRORS.REPLYURI_MUST_VALID_URL">replyUri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.LIST">List</label>\n <md-select name="ListId" ng-model="vm.openchannelAccount.ListId" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="OPENCHANNEL.HELP.LIST"></span></div>\n <div ng-messages="openchannelAccountForm[\'ListId\'].$error" ng-show="openchannelAccountForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.openchannelAccount.description">\n\n <div ng-messages="openchannelAccountForm[\'description\'].$error" ng-show="openchannelAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newOpenchannelAccount" ng-click="vm.saveOpenchannelAccount()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountForm.$invalid || openchannelAccountForm.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newOpenchannelAccount" ng-click="vm.addNewOpenchannelAccount()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountForm.$invalid" aria-label="ADD" translate="OPENCHANNEL.ADD_OPENCHANNELACCOUNT" translate-attr-aria-label="OPENCHANNEL.ADD_OPENCHANNELACCOUNT">\n ADD OPENCHANNELACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newOpenchannelAccount" ng-click="vm.deleteOpenchannelAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="OPENCHANNEL.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="OPENCHANNEL.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/agentadd/agentadd.html",'<md-dialog class="openchannelAccount-dialog" aria-label="openchannelAccount" ng-init="vm.onInit()">\n <form name="openchannelAccountForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="OPENCHANNEL.AGENTADD_OPENCHANNELACCOUNT">Add Agent to openchannelAccount</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/agent/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.AGENT">Agent</label>\n <md-select name="agent" ng-model="vm.agent.agent" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents" ng-disabled="agent.canSelect === false">{{ agent.name }}</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'agent\'].$error" ng-show="openchannelAccountFormApp[\'agent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.agent.timeout" min="0" max="2147483" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'timeout\'].$error" ng-show="openchannelAccountFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/amazonlex/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.ACCESSKEYID">accesskeyid</label>\n <input type="text" name="accesskeyid" ng-model="vm.amazonlex.accesskeyid" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'accesskeyid\'].$error" ng-show="openchannelAccountFormApp[\'accesskeyid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.ACCESSKEYID_REQUIRED">accesskeyid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.SECRETACCESSKEY">secretaccesskey</label>\n <input type="text" name="secretaccesskey" ng-model="vm.amazonlex.secretaccesskey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'secretaccesskey\'].$error" ng-show="openchannelAccountFormApp[\'secretaccesskey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.SECRETACCESSKEY_REQUIRED">secretaccesskey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.LEXREGION">lexregion</label>\n <md-select name="lexregion" ng-model="vm.amazonlex.lexregion" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'us-east-1\'">US East (N. Virginia)</md-option>\n <md-option ng-value="\'us-west-2\'">US West (Oregon)</md-option>\n <md-option ng-value="\'eu-west-1\'">EU (Ireland)</md-option>\n <md-option ng-value="\'ap-southeast-2\'">Asia Pacific (Sydney)</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'lexregion\'].$error" ng-show="openchannelAccountFormApp[\'lexregion\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.LEXREGION_REQUIRED">lexregion field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.BOTNAME">botname</label>\n <input type="text" name="botname" ng-model="vm.amazonlex.botname" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'botname\'].$error" ng-show="openchannelAccountFormApp[\'botname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.BOTNAME_REQUIRED">botname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.amazonlex.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="OPENCHANNEL.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="openchannelAccountFormApp[\'welcomemessage\'].$error" ng-show="openchannelAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="OPENCHANNEL.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/autoreply/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.TIMES">times</label>\n <md-select name="times" ng-model="vm.autoreply.times" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="2">One Time</md-option>\n <md-option ng-value="0">Always</md-option>\n <md-option ng-value="1">First Message</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'times\'].$error" ng-show="openchannelAccountFormApp[\'times\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TIMES_REQUIRED">times field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.TEXT">Text</label>\n <textarea name="text" ng-model="vm.autoreply.text" required></textarea>\n\n <div ng-messages="openchannelAccountFormApp[\'text\'].$error" ng-show="openchannelAccountFormApp[\'text\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TEXT_REQUIRED">Text field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/close/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.DISPOSITION">Disposition</label>\n <input type="text" name="disposition" ng-model="vm.close.disposition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'disposition\'].$error" ng-show="openchannelAccountFormApp[\'disposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/dialogflow/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.dialogflow.key" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'key\'].$error" ng-show="openchannelAccountFormApp[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.KEY_REQUIRED">Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflow.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean (South Korea)</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pt\'">Portuguese (European)</md-option>\n <md-option ng-value="\'pt-br\'">Portuguese (Nrazilian)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'sv\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-HK\'">Chinese (Hong Kong)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'language\'].$error" ng-show="openchannelAccountFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.LANGUAGE_REQUIRED">language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflow.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="OPENCHANNEL.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="openchannelAccountFormApp[\'welcomemessage\'].$error" ng-show="openchannelAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="OPENCHANNEL.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/dialogflowv2/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.PROJECTID">ProjectID</label>\n <input type="text" name="projectId" ng-model="vm.dialogflowv2.projectId" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'projectId\'].$error" ng-show="openchannelAccountFormApp[\'projectId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.PROJECTID_REQUIRED">ProjectID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.CLIENTEMAIL">ClientEmail</label>\n <input type="text" name="clientEmail" ng-model="vm.dialogflowv2.clientEmail" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'clientEmail\'].$error" ng-show="openchannelAccountFormApp[\'clientEmail\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.CLIENTEMAIL_REQUIRED">ClientEmail field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.PRIVATEKEY">PrivateKey</label>\n <textarea name="privateKey" ng-model="vm.dialogflowv2.privateKey" required></textarea>\n\n <div ng-messages="openchannelAccountFormApp[\'privateKey\'].$error" ng-show="openchannelAccountFormApp[\'privateKey\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.PRIVATEKEY_REQUIRED">PrivateKey field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflowv2.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'zh-HK\'">Chinese (Cantonese)</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'en-AU\'">English (Australia)</md-option>\n <md-option ng-value="\'en-CA\'">English (Canada)</md-option>\n <md-option ng-value="\'en-GB\'">English (Great Britain)</md-option>\n <md-option ng-value="\'en-IN\'">English (India)</md-option>\n <md-option ng-value="\'en-US\'">English (US)</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'fr-CA\'">French (Canada)</md-option>\n <md-option ng-value="\'fr-FR\'">\'France (France)</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'hi\'">Hindi</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pl\'">Polish</md-option>\n <md-option ng-value="\'pt-BR\'">Portuguese (Brazil)</md-option>\n <md-option ng-value="\'pt-PT\'">Portuguese (Portugal)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'es-419\'">Spanish (Latin America)</md-option>\n <md-option ng-value="\'es-ES\'">Spanish (Spain)</md-option>\n <md-option ng-value="\'sw\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'tr\'">Turkish</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'language\'].$error" ng-show="openchannelAccountFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.LANGUAGE_REQUIRED">language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflowv2.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="OPENCHANNEL.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="openchannelAccountFormApp[\'welcomemessage\'].$error" ng-show="openchannelAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n\n <div ng-message="md-maxlength">\n <span translate="OPENCHANNEL.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/gotoif/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.CONDITION">Condition</label>\n <input type="text" name="condition" ng-model="vm.gotoif.condition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'condition\'].$error" ng-show="openchannelAccountFormApp[\'condition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.TRUEPRIORITY">truepriority</label>\n <input type="number" name="truepriority" ng-model="vm.gotoif.truepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'truepriority\'].$error" ng-show="openchannelAccountFormApp[\'truepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TRUEPRIORITY_REQUIRED">truepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">truepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.FALSEPRIORITY">falsepriority</label>\n <input type="number" name="falsepriority" ng-model="vm.gotoif.falsepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'falsepriority\'].$error" ng-show="openchannelAccountFormApp[\'falsepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.FALSEPRIORITY_REQUIRED">falsepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">falsepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/gotop/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.PRIORITY">Priority</label>\n <input type="number" name="priority" ng-model="vm.gotop.priority" min="0" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'priority\'].$error" ng-show="openchannelAccountFormApp[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Priority must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/interval/dialog.html",'<md-dialog class="interval-dialog" aria-label="New Interval">\n <form name="intervalForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="type" ng-repeat=\'type in vm.types\'>{{ type | ucfirst }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.type === \'list\'">\n <label translate="TOOLS.INTERVALS">Intervals</label>\n <md-select ng-model="vm.interval.IntervalId" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ interval.name }}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!-- TIMERANGE START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.TIME_RANGE">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <div class="md-block" flex>\n <mdp-time-picker name="timeRangeFrom" mdp-placeholder="FROM" ng-model="vm.timeRangeFrom" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <div ng-messages="intervalForm.timeRangeFrom.$error" ng-show="intervalForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_FROM_INVALID">Time Range From field is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n <div class="md-block" flex ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_INVALID">Time Range To field is invalid</span>\n </div>\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </div>\n \x3c!-- TIMERANGE END --\x3e\n\n \x3c!-- DAYSOFWEEK START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.WEEK_DAYS">Week Days</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.dayOfWeekFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex class="md-block" ng-if="vm.dayOfWeekFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="dayOfWeekTo" ng-model="vm.dayOfWeekTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- DAYSOFWEEK END --\x3e\n\n \x3c!-- MONTHDAY START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTH_DAYS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthDayFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthDayFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthDayTo" ng-model="vm.monthDayTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTHDAY END --\x3e\n\n \x3c!-- MONTH START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTHS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthTo" ng-model="vm.monthTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTH END --\x3e\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="!vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n ADD INTERVAL\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/noop/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.noop.value" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'value\'].$error" ng-show="openchannelAccountFormApp[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/queue/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.queue.queue" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues" ng-disabled="queue.canSelect === false">{{ queue.name }}</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'queue\'].$error" ng-show="openchannelAccountFormApp[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'timeout\'].$error" ng-show="openchannelAccountFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/system/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.COMMAND">Command</label>\n <input type="text" name="command" ng-model="vm.system.command" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="openchannelAccountFormApp[\'command\'].$error" ng-show="openchannelAccountFormApp[\'command\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.COMMAND_REQUIRED">Command field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.system.variable" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables" ng-disabled="variable.canSelect === false">{{ variable.name }}</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'variable\'].$error" ng-show="openchannelAccountFormApp[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.VARIABLE_REQUIRED">Variable field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/apps/tag/dialog.html",'<md-dialog class="openchannelAccount-dialog" aria-label="New OpenchannelAccount">\n <form name="openchannelAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.TAG">Tag</label>\n <md-select name="tag" ng-model="vm.tag.tag" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags" ng-disabled="tag.canSelect === false">{{ tag.name }}</md-option>\n </md-select>\n <div ng-messages="openchannelAccountFormApp[\'tag\'].$error" ng-show="openchannelAccountFormApp[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TAG_REQUIRED">Tag field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveOpenchannelAccountApp()" class="send-button md-accent md-raised" ng-disabled="openchannelAccountFormApp.$invalid || openchannelAccountFormApp.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/openchannelCannedAnswers/dialog.html",'<md-dialog class="openchannelCannedAnswer-dialog" aria-label="New OpenchannelCannedAnswer">\n <form name="openchannelCannedAnswerForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.KEY">Key</label>\n <input type="" name="key" ng-model="vm.openchannelCannedAnswer.key" md-maxlength="255" ng-required="true" autofocus>\n\n <div ng-messages="openchannelCannedAnswerForm[\'key\'].$error" ng-show="openchannelCannedAnswerForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.KEY_REQUIRED">Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.VALUE">Value</label>\n <textarea name="value" ng-model="vm.openchannelCannedAnswer.value" required></textarea>\n\n <div ng-messages="openchannelCannedAnswerForm[\'value\'].$error" ng-show="openchannelCannedAnswerForm[\'value\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.openchannelCannedAnswer.description">\n\n <div ng-messages="openchannelCannedAnswerForm[\'description\'].$error" ng-show="openchannelCannedAnswerForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newOpenchannelCannedAnswer" ng-click="vm.saveOpenchannelCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="openchannelCannedAnswerForm.$invalid || openchannelCannedAnswerForm.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newOpenchannelCannedAnswer" ng-click="vm.addNewOpenchannelCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="openchannelCannedAnswerForm.$invalid" aria-label="ADD" translate="OPENCHANNEL.ADD_OPENCHANNELCANNEDANSWER" translate-attr-aria-label="OPENCHANNEL.ADD_OPENCHANNELCANNEDANSWER">\n ADD OPENCHANNELCANNEDANSWER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newOpenchannelCannedAnswer" ng-click="vm.deleteOpenchannelCannedAnswer($event)" aria-label="DELETE" translate translate-attr-aria-label="OPENCHANNEL.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="OPENCHANNEL.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/edit/view.html",'<div id="openchannel-openchannelAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-openchannelAccounts-button md-icon-button" aria-label="Go to openchannelAccounts" ng-click="vm.gotoOpenchannelAccounts()" translate translate-attr-aria-label="OPENCHANNEL.GO_TO_OPENCHANNELACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="openchannelAccount-image" hide-xs>\n <img ng-src="assets/images/business/openchannelAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.openchannelAccount.id}}\n <span ng-if="vm.openchannelAccount.name">{{vm.openchannelAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="OPENCHANNEL.CREATED_AT"></span> <span>{{vm.openchannelAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.openchannelAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="OPENCHANNEL.AGENTADD_OPENCHANNELACCOUNT"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveOpenchannelAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (proxyForm.$invalid) || (dispositionForm.$invalid) || (openchannelDispositionsForm.$invalid) || (openchannelCannedAnswersForm.$invalid) || (actionsForm.$invalid) || (interactionsForm.$invalid)" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="openchannelAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="OPENCHANNEL.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.openchannelAccount.name" ng-required="true" autofocus disabled>\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.KEY">key</label>\n <input type="text" name="key" ng-model="vm.openchannelAccount.key" md-maxlength="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'key\'].$error" ng-show="generalForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="OPENCHANNEL.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.REPLYURI">replyUri</label>\n <input type="url" name="replyUri" ng-model="vm.openchannelAccount.replyUri" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="OPENCHANNEL.HELP.REPLYURI"></span></div>\n <div ng-messages="generalForm[\'replyUri\'].$error" ng-show="generalForm[\'replyUri\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.REPLYURI_REQUIRED">replyUri field is required</span>\n </div>\n <div ng-message="url">\n <span translate="OPENCHANNEL.ERRORS.REPLYURI_MUST_VALID_URL">replyUri must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.LIST">List</label>\n <md-select name="ListId" ng-model="vm.openchannelAccount.ListId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="OPENCHANNEL.HELP.LIST"></span></div>\n <div ng-messages="generalForm[\'ListId\'].$error" ng-show="generalForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.WAITFORTHEASSIGNEDAGENT">WaitForTheAssignedAgent</label>\n <input type="number" name="waitForTheAssignedAgent" ng-model="vm.openchannelAccount.waitForTheAssignedAgent" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'waitForTheAssignedAgent\'].$error" ng-show="generalForm[\'waitForTheAssignedAgent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.WAITFORTHEASSIGNEDAGENT_REQUIRED">WaitForTheAssignedAgent field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.MAPKEY">MapKey</label>\n <md-select name="mapKey" ng-model="vm.openchannelAccount.mapKey" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-optgroup label="standard">\n <md-option ng-value="mapKey.columnName" ng-repeat="mapKey in vm.fields" ng-if="!mapKey.columnName.toString().startsWith(\'cf_\')" ng-disabled="mapKey.canSelect === false">{{ mapKey.displayName }}</md-option>\n </md-optgroup>\n <md-optgroup label="custom">\n <md-option ng-value="mapKey.columnName" ng-repeat="mapKey in vm.fields" ng-if="mapKey.columnName.toString().startsWith(\'cf_\')" ng-disabled="mapKey.canSelect === false">{{ mapKey.displayName }}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="generalForm[\'mapKey\'].$error" ng-show="generalForm[\'mapKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.MAPKEY_REQUIRED">MapKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.openchannelAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.RECEIVEURI">receiveUri</label>\n <div layout="row" layout-align="center center">\n <button class="md-button md-fab md-mini md-primary" ngclipboard data-clipboard-target="#copytoclipboard-receiveUri" ngclipboard-success="vm.alert({title: \'copied to clipboard\', msg: e.text });" ngclipboard-error="vm.alert({title: \'error\', msg: \'copy to clipboard failed\'});">\n <md-icon md-font-icon="icon-clipboard-text"></md-icon>\n </button>\n <input class="md-input" type="text" id="copytoclipboard-receiveUri" name="receiveUri" ng-value="vm.location + \'/api/openchannel/accounts/\' + vm.openchannelAccount.id + \'/notify\'" ng-readonly="true">\n </div>\n <div class="hint"><span translate="OPENCHANNEL.HELP.RECEIVEURI"></span></div>\n </md-input-container>\n\n </form>\n </div>\n <div class="openchannelAccount-detail-form-container notification md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="OPENCHANNEL.NOTIFICATION">NOTIFICATION</div>\n </div>\n <form name="notificationForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.openchannelAccount.notificationSound" aria-label="notificationSound" ng-disabled="!vm.crudPermissions.canEdit"><span translate="OPENCHANNEL.NOTIFICATIONSOUND">notificationSound</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.openchannelAccount.notificationShake" aria-label="notificationShake" ng-disabled="!vm.crudPermissions.canEdit"><span translate="OPENCHANNEL.NOTIFICATIONSHAKE">notificationShake</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="OPENCHANNEL.NOTIFICATIONTEMPLATE">notificationTemplate</label>\n <textarea aria-label="notificationTemplate notificationTemplate" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.openchannelAccount.notificationTemplate"></textarea>\n </div>\n\n </form>\n </div>\n <div class="openchannelAccount-detail-form-container transfer md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="OPENCHANNEL.TRANSFER">TRANSFER</div>\n </div>\n <form name="transferForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.openchannelAccount.queueTransfer" aria-label="queueTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="OPENCHANNEL.QUEUETRANSFER">queueTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.openchannelAccount.queueTransfer == true" class="md-block">\n <label translate="OPENCHANNEL.QUEUETRANSFERTIMEOUT">queueTransferTimeout</label>\n <input type="number" name="queueTransferTimeout" ng-model="vm.openchannelAccount.queueTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'queueTransferTimeout\'].$error" ng-show="transferForm[\'queueTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.QUEUETRANSFERTIMEOUT_REQUIRED">queueTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.openchannelAccount.agentTransfer" aria-label="agentTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="OPENCHANNEL.AGENTTRANSFER">agentTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.openchannelAccount.agentTransfer == true" class="md-block">\n <label translate="OPENCHANNEL.AGENTTRANSFERTIMEOUT">agentTransferTimeout</label>\n <input type="number" name="agentTransferTimeout" ng-model="vm.openchannelAccount.agentTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'agentTransferTimeout\'].$error" ng-show="transferForm[\'agentTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.AGENTTRANSFERTIMEOUT_REQUIRED">agentTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="openchannelAccount-detail-form-container proxy md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="OPENCHANNEL.PROXY">PROXY</div>\n </div>\n <form name="proxyForm" novalidate>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.TOKEN">token</label>\n <input type="text" name="token" ng-model="vm.openchannelAccount.token" autofocus disabled>\n\n <div class="hint"><span translate="OPENCHANNEL.HELP.TOKEN"></span></div>\n <div ng-messages="proxyForm[\'token\'].$error" ng-show="proxyForm[\'token\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.TOKEN_REQUIRED">token field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="openchannelAccount-detail-form-container disposition md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="OPENCHANNEL.DISPOSITION">DISPOSITION</div>\n </div>\n <form name="dispositionForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.openchannelAccount.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="OPENCHANNEL.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.openchannelAccount.mandatoryDisposition" class="md-block">\n <label translate="OPENCHANNEL.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.openchannelAccount.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="OPENCHANNEL.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="dispositionForm[\'mandatoryDispositionPauseId\'].$error" ng-show="dispositionForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.DISPOSITIONS">DISPOSITIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div ng-controller="OpenchannelAccountDispositionsController as vm_dc" ng-init="vm_dc.init(vm.openchannelAccount, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="openchannelAccount-detail-form-container openchanneldispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedOpenchannelAccountDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="OPENCHANNEL.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add openchannel dispositions" translate translate-attr-label="OPENCHANNEL.ADD_DISPOSITION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" csv-label="true" filename="openchannelAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="OPENCHANNEL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_dc.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'OPENCHANNEL.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'OPENCHANNEL.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'OPENCHANNEL.DESCRIPTION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="OPENCHANNEL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="OPENCHANNEL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(disposition, $event)" translate="TOOLS.DELETE_DISPOSITION">\n Delete Disposition\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'OPENCHANNEL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'OPENCHANNEL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'OPENCHANNEL.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.CANNEDANSWERS">CANNEDANSWERS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="openchannelAccount-detail-form-container openchannelcannedanswers md-background-bg md-whiteframe-1dp">\n <div ng-controller="OpenchannelAccountOpenchannelCannedAnswersController as vm_dc" ng-init="vm_dc.init(vm.openchannelAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedOpenchannelAccountOpenchannelCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="OPENCHANNEL.OPENCHANNELCANNEDANSWERS">OpenchannelCannedAnswers</span>\n <ms-search-bar on-search="vm_dc.getOpenchannelAccountOpenchannelCannedAnswers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event)" aria-label="add openchannelCannedAnswer" translate translate-attr-label="OPENCHANNEL.ADD_OPENCHANNELCANNEDANSWER">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedOpenchannelAccountOpenchannelCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedOpenchannelAccountOpenchannelCannedAnswers.length}} {{vm_dc.selectedOpenchannelAccountOpenchannelCannedAnswers.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedOpenchannelAccountOpenchannelCannedAnswers" csv-label="true" filename="openchannelAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedOpenchannelAccountOpenchannelCannedAnswers($event)" aria-label="delete selected" translate translate-attr-label="OPENCHANNEL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedOpenchannelAccountOpenchannelCannedAnswers" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getOpenchannelAccountOpenchannelCannedAnswers">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'OPENCHANNEL.ID\' | translate }}\n </th>\n <th md-column md-order-by="key">\n {{ \'OPENCHANNEL.KEY\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'OPENCHANNEL.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="description">\n {{ \'OPENCHANNEL.DESCRIPTION\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'OPENCHANNEL.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="openchannelCannedAnswer" md-select-id="id" ng-repeat="openchannelCannedAnswer in vm_dc.openchannelAccountOpenchannelCannedAnswers.rows">\n <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" md-cell>\n {{openchannelCannedAnswer.id}}\n </td>\n <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" md-cell>\n {{openchannelCannedAnswer.key}}\n </td>\n <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" md-cell>\n {{openchannelCannedAnswer.value}}\n </td>\n <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" md-cell>\n {{openchannelCannedAnswer.description}}\n </td>\n <td ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" md-cell>\n {{ openchannelCannedAnswer.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="OPENCHANNEL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditOpenchannelAccountOpenchannelCannedAnswer($event, openchannelCannedAnswer)" translate="OPENCHANNEL.EDIT_OPENCHANNELCANNEDANSWER">\n Edit OpenchannelCannedAnswer\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(openchannelCannedAnswer, $event)" translate="OPENCHANNEL.DELETE_OPENCHANNELCANNEDANSWER">\n Delete OpenchannelCannedAnswer\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.openchannelAccountOpenchannelCannedAnswers.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="OPENCHANNEL.NO_OPENCHANNELCANNEDANSWER_AVAILABLE">No openchannelcannedanswer available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'OPENCHANNEL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'OPENCHANNEL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'OPENCHANNEL.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.openchannelAccountOpenchannelCannedAnswers.count}}" md-on-paginate="vm_dc.getOpenchannelAccountOpenchannelCannedAnswers" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="openchannelAccount-detail-form-container actions md-background-bg md-whiteframe-1dp">\n <div ng-controller="OpenchannelAccountActionsController as vm_ac" ng-init="vm_ac.init(vm.openchannelAccount, vm.crudPermissions)" class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- SIDENAV --\x3e\n <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20" ng-if="vm_ac.crudPermissions.canEdit">\n \x3c!-- SIDENAV CONTENT --\x3e\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\n Applications List\n </span>\n </md-subheader>\n </md-list>\n <md-divider></md-divider>\n <md-list ng-sortable="vm_ac.list">\n <md-list-item class="handle" ng-repeat="a in vm_ac.apps">\n <md-icon md-font-icon="{{a.icon}}" class="s16"></md-icon>\n <p class="text-truncate" translate="OPENCHANNEL.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias || a.appType}}</p>\n </md-list-item>\n </md-list>\n \x3c!-- / SIDENAV CONTENT --\x3e\n </div>\n \x3c!-- / SIDENAV --\x3e\n <div flex></div>\n \x3c!-- MAIN --\x3e\n <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="{{vm_ac.crudPermissions.canEdit ? 75 : 100}}">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_ac.selectedOpenchannelAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Drag & Drop Routing</span>\n <div flex></div>\n <ms-search-bar on-search="vm_ac.query.filter = query" on-collapse="vm_ac.query.filter = undefined" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_ac.selectedOpenchannelAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_ac.selectedOpenchannelAccountApps.length}} {{vm_ac.selectedOpenchannelAccountApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_ac.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_ac.deleteSelectedOpenchannelAccountApps($event)" aria-label="delete selected" translate translate-attr-label="OPENCHANNEL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n \x3c!-- QUEUES TABLE --\x3e\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_ac.selectedOpenchannelAccountApps">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column width="10px">\n <span translate="VOICE.PRIORITY">Priority</span>\n </th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </th>\n <th md-column width="10px"></th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body ng-sortable="vm_ac.applications">\n <tr md-row md-select="app" md-select-id="id" ng-repeat="app in vm_ac.openchannelAccountApps.rows | filter: vm_ac.query.filter">\n <td md-cell>\n <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n </td>\n <td md-cell ng-click="vm_ac.editOpenchannelAccountApp($event, $index)"><span>{{app.priority}}</span></td>\n <td md-cell ng-click="vm_ac.editOpenchannelAccountApp($event, $index)">{{app.app.toLowerCase() === \'agi\' ? \'Cally-Square\' : app.app | ucfirst}}<span ng-if="app.appType.toLowerCase() === \'custom\'">*</span></td>\n <td md-cell ng-click="vm_ac.editOpenchannelAccountApp($event, $index)"><span class="text-truncate actionAppData">{{app.appdata}}</span></td>\n <td md-cell ng-click="vm_ac.editInterval($event, $index)">{{app.IntervalId ? \'From List\' : app.interval}}</td>\n <td md-cell>\n <md-button ng-click="vm_ac.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n <md-icon md-font-icon="icon-timer"></md-icon>\n <md-tooltip>\n {{app.IntervalId ? \'From List\' : (app.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n </md-tooltip>\n </md-button>\n </td>\n <td md-cell class="actions" ng-if="!vm_ac.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editOpenchannelAccountApp($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canDelete">\n <md-button ng-click="vm_ac.deleteConfirm(app, $index, $event)" translate="VOICE.DELETE_APP">\n Delete App\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-hide="vm_ac.openchannelAccountApps.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n \x3c!-- / QUEUES TABLE --\x3e\n\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.INTERACTIONS">INTERACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="openchannelAccount-detail-form-container interactions md-background-bg md-whiteframe-1dp">\n <div ng-controller="OpenchannelAccountInteractionsController as vm_dc" ng-init="vm_dc.init(vm.openchannelAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedOpenchannelAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="OPENCHANNEL.INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm_dc.getOpenchannelAccountInteractions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_dc.quickFilters" query="vm_dc.query" search="vm_dc.getOpenchannelAccountInteractions()"></ms-quick-filter>\n <div layout="column">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini md-accent-bg\': vm_dc.query.search }" aria-label="Filter" translate translate-attr-aria-label="DASHBOARDS.FILTER" ng-click="vm_dc.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm_dc.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'blink\': vm_dc.query.search }"></md-icon>\n </md-button>\n </div>\n <md-button class="md-icon-button" ng-click="vm_dc.getOpenchannelAccountInteractions()" aria-label="refresh Interactions" translate translate-attr-label="OPENCHANNEL.REFRESH_INTERACTIONS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedOpenchannelAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedOpenchannelAccountInteractions.length}} {{vm_dc.selectedOpenchannelAccountInteractions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedOpenchannelAccountInteractions" csv-label="true" filename="openchannelAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedOpenchannelAccountInteractions($event)" aria-label="delete selected" translate translate-attr-label="OPENCHANNEL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedOpenchannelAccountInteractions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getOpenchannelAccountInteractions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'OPENCHANNEL.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column md-order-by="contactName">\n {{ \'OPENCHANNEL.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'OPENCHANNEL.STARTEDAT\' | translate }}\n </th>\n <th md-column md-order-by="lastMsgAt">\n {{ \'OPENCHANNEL.LASTMESSAGE\' | translate }}\n </th>\n <th md-column md-order-by="closed">\n {{ \'OPENCHANNEL.STATUS\' | translate }}\n </th>\n <th md-column>\n {{ \'OPENCHANNEL.AGENT\' | translate }}\n </th>\n <th md-column md-order-by="tag">\n {{ \'OPENCHANNEL.TAGS\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="interaction" md-select-id="id" ng-repeat="interaction in vm_dc.openchannelAccountInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td md-cell>\n {{interaction.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="user in interaction.Users">{{ user.fullname | translate }}\n <span ng-if="!$last">, </span>\n </span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg md-primary-bg" layout-margin>{{ interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.attach">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'margin-bottom-0\' : interaction.contactInfo}" layout-margin>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text margin-top-0" layout-margin>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td md-cell>\n {{ interaction.createdAt | formatdate }}\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}"></md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="text-truncate">{{ interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n </td>\n <td md-cell>\n <span ng-if="interaction.closed === 0" class="green-fg">\n {{ \'OPENCHANNEL.OPENED\' | translate }}\n <span ng-if="interaction.substatus">\n - {{ interaction.substatus }}\n </span>\n </span>\n <span ng-if="interaction.closed === 1" class="red-fg">\n {{ \'OPENCHANNEL.CLOSED\' | translate }}\n <span ng-if="interaction.disposition">\n - {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}\n </span>\n <md-tooltip class="multiline">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n </span>\n </td>\n\n <td md-cell>\n {{interaction.Owner.name}}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="OPENCHANNEL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm_dc.spyopenchannelInteraction($event, interaction)" translate="OPENCHANNEL.SPYINTERACTION">\n Spy Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || (vm_dc.userProfile.downloadOmnichannelInteractions && vm_dc.userProfile.downloadAttachments)">\n <md-button class="md-primary" ng-click="vm_dc.openchannelInteractionDownload(interaction, $event, true)" translate="OPENCHANNEL.DOWNLOAD_WITH_ATTACHMENTS">\n Download with attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || vm_dc.userProfile.downloadOmnichannelInteractions">\n <md-button class="md-primary" ng-click="vm_dc.openchannelInteractionDownload(interaction, $event)" translate="OPENCHANNEL.DOWNLOAD_WITHOUT_ATTACHMENTS">\n Download without attachments\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(interaction, $event)" translate="OPENCHANNEL.DELETE_INTERACTION">\n Delete Interaction\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.openchannelAccountInteractions.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="OPENCHANNEL.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'OPENCHANNEL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'OPENCHANNEL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'OPENCHANNEL.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.openchannelAccountInteractions.count}}" md-on-paginate="vm_dc.getOpenchannelAccountInteractions" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/openchannel/views/openchannelAccounts/openchannelAccounts.html",'<div id="openchannelAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-google-earth" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="OPENCHANNEL.OPENCHANNELACCOUNTS">OpenchannelAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="OPENCHANNEL.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedOpenchannelAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedOpenchannelAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="OPENCHANNEL.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-openchannelAccounts-count">\n <span>{{vm.selectedOpenchannelAccounts.length}}</span>\n <span translate="OPENCHANNEL.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="OPENCHANNEL.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllOpenchannelAccounts()" translate="OPENCHANNEL.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectOpenchannelAccounts()" translate="OPENCHANNEL.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedOpenchannelAccounts" csv-label="true" filename="openchannelAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedOpenchannelAccounts($event)" aria-label="delete selected" translate translate-attr-label="OPENCHANNEL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- OPENCHANNELACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedOpenchannelAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getOpenchannelAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'OPENCHANNEL.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'OPENCHANNEL.NAME\' | translate }}</th>\n <th md-column md-order-by="key">{{ \'OPENCHANNEL.KEY\' | translate }}</th>\n <th md-column md-order-by="replyUri">{{ \'OPENCHANNEL.REPLYURI\' | translate }}</th>\n <th md-column md-order-by="ListId">{{ \'OPENCHANNEL.LIST\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'OPENCHANNEL.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.openchannelAccounts.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="OPENCHANNEL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="openchannelAccount" md-select-id="id" ng-repeat="openchannelAccount in vm.openchannelAccounts.rows">\n <td md-cell ng-if="openchannelAccount.userpic"><img class="avatar" alt="{{openchannelAccount.name}}" ng-src="api/users/{{openchannelAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!openchannelAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{openchannelAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelAccount, ev) : vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="id ">{{openchannelAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelAccount, ev) : vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="name ">{{openchannelAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelAccount, ev) : vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="key ">{{openchannelAccount.key}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelAccount, ev) : vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="replyUri ">{{openchannelAccount.replyUri}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelAccount, ev) : vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="ListId ">{{ (vm.lists | filter : {\'id\':openchannelAccount.ListId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelAccount, ev) : vm.createOrEditOpenchannelAccount($event, openchannelAccount)" md-cell class="description ">{{openchannelAccount.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="OPENCHANNEL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(openchannelAccount, $event )" translate="OPENCHANNEL.EDIT_OPENCHANNELACCOUNT">\n Edit OpenchannelAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.interactionsgoto(openchannelAccount, $event )" translate="OPENCHANNEL.INTERACTIONS_OPENCHANNELACCOUNT">\n Interactions OpenchannelAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(openchannelAccount, $event )" translate="OPENCHANNEL.AGENTADD_OPENCHANNELACCOUNT">\n AgentAdd OpenchannelAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(openchannelAccount, $event )" translate="OPENCHANNEL.DELETE_OPENCHANNELACCOUNT">\n Delete OpenchannelAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'OPENCHANNEL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'OPENCHANNEL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'OPENCHANNEL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.openchannelAccounts.count}}" md-on-paginate="vm.getOpenchannelAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / OPENCHANNELACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD OPENCHANNELACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-openchannelAccount-button" ng-click="vm.createOrEditOpenchannelAccount($event)" aria-label="add openchannelAccount" translate translate-attr-aria-label="OPENCHANNEL.ADD_OPENCHANNELACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD OPENCHANNELACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/openchannel/views/openchannelQueues/create/dialog.html",'<md-dialog class="openchannelQueue-dialog" aria-label="New OpenchannelQueue">\n <form name="openchannelQueueForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.openchannelQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newOpenchannelQueue">\n\n <div class="hint"><span translate="OPENCHANNEL.HELP.NAME"></span></div>\n <div ng-messages="openchannelQueueForm[\'name\'].$error" ng-show="openchannelQueueForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="OPENCHANNEL.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.openchannelQueue.strategy" required>\n <md-option ng-value="\'beepall\'">Beepall</md-option>\n <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n </md-select>\n <div ng-messages="openchannelQueueForm[\'strategy\'].$error" ng-show="openchannelQueueForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.openchannelQueue.timeout" min="1" max="2147483" value="10" ng-required="true">\n\n <div ng-messages="openchannelQueueForm[\'timeout\'].$error" ng-show="openchannelQueueForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.openchannelQueue.description">\n\n <div ng-messages="openchannelQueueForm[\'description\'].$error" ng-show="openchannelQueueForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newOpenchannelQueue" ng-click="vm.saveOpenchannelQueue()" class="send-button md-accent md-raised" ng-disabled="openchannelQueueForm.$invalid || openchannelQueueForm.$pristine" aria-label="SAVE" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newOpenchannelQueue" ng-click="vm.addNewOpenchannelQueue()" class="send-button md-accent md-raised" ng-disabled="openchannelQueueForm.$invalid" aria-label="ADD" translate="OPENCHANNEL.ADD_OPENCHANNELQUEUE" translate-attr-aria-label="OPENCHANNEL.ADD_OPENCHANNELQUEUE">\n ADD OPENCHANNELQUEUE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newOpenchannelQueue" ng-click="vm.deleteOpenchannelQueue($event)" aria-label="DELETE" translate translate-attr-aria-label="OPENCHANNEL.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="OPENCHANNEL.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelQueues/edit/agentadd/agentadd.html",'<md-dialog class="openchannelQueue-dialog" aria-label="openchannelQueue" ng-init="vm.onInit()">\n <form name="openchannelQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="OPENCHANNEL.AGENTADD_OPENCHANNELQUEUE">Add Agent to openchannelQueue</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelQueues/edit/teamadd/teamadd.html",'<md-dialog class="openchannelQueue-dialog" aria-label="openchannelQueue" ng-init="vm.onInit()">\n <form name="openchannelQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="OPENCHANNEL.TEAMS_ASSOCIATION">Teams Association</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/openchannel/views/openchannelQueues/edit/view.html",'<div id="openchannel-openchannelQueue" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-openchannelQueues-button md-icon-button" aria-label="Go to openchannelQueues" ng-click="vm.gotoOpenchannelQueues()" translate translate-attr-aria-label="OPENCHANNEL.GO_TO_OPENCHANNELQUEUES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="openchannelQueue-image" hide-xs>\n <img ng-src="assets/images/business/openchannelQueues.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.openchannelQueue.id}}\n <span ng-if="vm.openchannelQueue.name">{{vm.openchannelQueue.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="OPENCHANNEL.CREATED_AT"></span> <span>{{vm.openchannelQueue.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.teamadddialog(vm.openchannelQueue, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n <md-tooltip><span translate="OPENCHANNEL.TEAMADD_OPENCHANNELQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.openchannelQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="OPENCHANNEL.AGENTADD_OPENCHANNELQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-plus"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveOpenchannelQueue()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="OPENCHANNEL.SAVE" translate-attr-aria-label="OPENCHANNEL.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="openchannelQueue-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="OPENCHANNEL.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.openchannelQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="OPENCHANNEL.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="OPENCHANNEL.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.openchannelQueue.strategy" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'beepall\'">Beepall</md-option>\n <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n </md-select>\n <div ng-messages="generalForm[\'strategy\'].$error" ng-show="generalForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.openchannelQueue.timeout" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'timeout\'].$error" ng-show="generalForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="OPENCHANNEL.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="OPENCHANNEL.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="OPENCHANNEL.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.openchannelQueue.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="OPENCHANNEL.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/openchannel/views/openchannelQueues/openchannelQueues.html",'<div id="openchannelQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-google-earth" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="OPENCHANNEL.OPENCHANNELQUEUES">OpenchannelQueues</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="OPENCHANNEL.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedOpenchannelQueues.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedOpenchannelQueues =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="OPENCHANNEL.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-openchannelQueues-count">\n <span>{{vm.selectedOpenchannelQueues.length}}</span>\n <span translate="OPENCHANNEL.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="OPENCHANNEL.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllOpenchannelQueues()" translate="OPENCHANNEL.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectOpenchannelQueues()" translate="OPENCHANNEL.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedOpenchannelQueues" csv-label="true" filename="openchannelQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedOpenchannelQueues($event)" aria-label="delete selected" translate translate-attr-label="OPENCHANNEL.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- OPENCHANNELQUEUE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedOpenchannelQueues" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getOpenchannelQueues">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'OPENCHANNEL.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'OPENCHANNEL.NAME\' | translate }}</th>\n <th md-column md-order-by="strategy">{{ \'OPENCHANNEL.STRATEGY\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.openchannelQueues.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="OPENCHANNEL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="openchannelQueue" md-select-id="id" ng-repeat="openchannelQueue in vm.openchannelQueues.rows">\n <td md-cell ng-if="openchannelQueue.userpic"><img class="avatar" alt="{{openchannelQueue.name}}" ng-src="api/users/{{openchannelQueue.id}}/avatar" /></td>\n <td md-cell ng-if="!openchannelQueue.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{openchannelQueue.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelQueue, ev) : vm.createOrEditOpenchannelQueue($event, openchannelQueue)" md-cell class="id ">{{openchannelQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelQueue, ev) : vm.createOrEditOpenchannelQueue($event, openchannelQueue)" md-cell class="name ">{{openchannelQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(openchannelQueue, ev) : vm.createOrEditOpenchannelQueue($event, openchannelQueue)" md-cell class="strategy ">{{ vm.arraystrategy[openchannelQueue.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="OPENCHANNEL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(openchannelQueue, $event )" translate="OPENCHANNEL.EDIT_OPENCHANNELQUEUE">\n Edit OpenchannelQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(openchannelQueue, $event )" translate="OPENCHANNEL.TEAMADD_OPENCHANNELQUEUE">\n teamadd OpenchannelQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(openchannelQueue, $event )" translate="OPENCHANNEL.AGENTADD_OPENCHANNELQUEUE">\n agentadd OpenchannelQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(openchannelQueue, $event )" translate="OPENCHANNEL.DELETE_OPENCHANNELQUEUE">\n Delete OpenchannelQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(openchannelQueue, $event )" translate="OPENCHANNEL.GOTOREALTIME_OPENCHANNELQUEUE">\n goToRealtime OpenchannelQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'OPENCHANNEL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'OPENCHANNEL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'OPENCHANNEL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.openchannelQueues.count}}" md-on-paginate="vm.getOpenchannelQueues" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / OPENCHANNELQUEUE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD OPENCHANNELQUEUE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-openchannelQueue-button" ng-click="vm.createOrEditOpenchannelQueue($event)" aria-label="add openchannelQueue" translate translate-attr-aria-label="OPENCHANNEL.ADD_OPENCHANNELQUEUE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD OPENCHANNELQUEUE BUTTON --\x3e\n</div>'),e.put("app/main/apps/openchannel/views/realtime/queues/view.html",'<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="OPENCHANNEL.QUEUES">Queues</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'OPENCHANNEL.NAME\' | translate }}</th>\n <th md-column>{{ \'OPENCHANNEL.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'OPENCHANNEL.PAUSED\' | translate }}</th>\n <th md-column>{{ \'OPENCHANNEL.WAITING\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.queues.count > 0">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="OPENCHANNEL.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="queue" md-select-id="id" ng-repeat="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedIn }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="OPENCHANNEL.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="OPENCHANNEL.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" translate="OPENCHANNEL.AGENTSADD_QUEUE">\n Add Agents to queue\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'OPENCHANNEL.PAGE\' | translate}}:\', rowsPerPage: \'{{\'OPENCHANNEL.ROWSPERPAGE\' | translate}}:\', of: \'{{\'OPENCHANNEL.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),e.put("app/main/apps/openchannel/views/realtime/realtime.html",'<div id="realtime" class="page-layout simple tabbed" layout="column" ng-cloak>\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="OPENCHANNEL.QUEUES">Queues</span>\n </md-tab-label>\n </md-tab>\n </md-tabs>\n\n <md-card ui-view></md-card>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/plugins/views/plugin/plugin.html",'<div ng-if="!vm.plugin">\n <p>Plugin not available...</p>\n</div>\n<div id="plugin" ng-if="vm.plugin" ng-cloak layout-fill>\n <iframe ng-src="{{vm.getTrustedURL()}}" frameborder=0 style="border:0px; width:100%; height:100%;"></iframe>\n</div>'),e.put("app/main/apps/realtime/views/agents/view.html",'<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.AGENTS">Agents</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getAgents()" query="vm.query" debounce="300"></ms-search-bar>\n <md-select ng-model="vm.query.globalStatusFilter" class="md-caption" ng-change="vm.query.pauseTypeFilter = \'\'; vm.getAgents()">\n <md-option ng-value="\'\'">{{ \'VOICE.ALL\' | translate }}</md-option>\n <md-option value="pause">{{ \'VOICE.PAUSE\' | translate }}</md-option>\n <md-option value="*pause">{{ \'VOICE.PARTIALPAUSE\' | translate }}</md-option>\n <md-option value="busy">{{ \'VOICE.BUSY\' | translate }}</md-option>\n <md-option value="idle">{{ \'VOICE.IDLE\' | translate }}</md-option>\n </md-select>\n <md-select ng-if="vm.query.globalStatusFilter === \'pause\' || vm.query.globalStatusFilter === \'*pause\'" ng-model="vm.query.pauseTypeFilter" class="md-caption ml-16" ng-change="vm.getAgents()">\n <md-option ng-value="\'\'">All</md-option>\n <md-option value="DEFAULT PAUSE">DEFAULT PAUSE</md-option>\n <md-option value="ACW">ACW</md-option>\n <md-option value="LOGININPAUSE">LOGININPAUSE</md-option>\n <md-option value="Auto-Pause">AUTOPAUSE</md-option>\n <md-option ng-value="pause.name" ng-repeat="pause in vm.pauses.rows">{{pause.name}}</md-option>\n </md-select>\n </div>\n</md-toolbar>\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getAgents">\n <tr md-row>\n <th class="bv text-center" colspan="5">{{ \'VOICE.AGENT\' | translate }}</th>\n <th class="bv bl text-center" colspan="2">{{ \'VOICE.VOICE\' | translate }}</th>\n <th ng-if="vm.license.chat" class="bv bl text-center" colspan="2">{{ \'CHAT.CHAT\' | translate }}</th>\n <th ng-if="vm.license.mail" class="bv bl text-center" colspan="2">{{ \'MAIL.MAIL\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="bv bl text-center" colspan="2">{{ \'SMS.SMS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="bv bl text-center" colspan="2">\n {{ \'OPENCHANNEL.OPENCHANNEL\' | translate }}</th>\n <th ng-if="vm.license.fax" class="bv bl text-center" colspan="2">{{ \'FAX.FAX\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="bv bl text-center" colspan="2">\n {{ \'WHATSAPP.WHATSAPP\' | translate }}</th>\n <th width="10px" class="bt bl" rowspan="2"></th>\n </tr>\n <tr md-row>\n <th class="bl" colspan="2" md-column md-order-by="fullname">\n {{ \'VOICE.NAME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="globalStatus">\n {{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastLoginAt">\n {{ \'VOICE.LOGIN_TIME\' | translate }}</th>\n <th class="bl custom-column" md-column md-order-by="lastPauseAt">\n {{ \'VOICE.PAUSE_TIME\' | translate }}</th>\n <th class="bl custom-column">{{ \'VOICE.STATUS\' | translate }}</th>\n <th class="bl custom-column">Info</th>\n <th ng-if="vm.license.chat" class="bl text-center">{{ \'CHAT.STATUS\' | translate }}</th>\n <th ng-if="vm.license.chat" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'CHAT.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.mail" class="bl text-center">{{ \'MAIL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.mail" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'MAIL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.messaging" class="bl text-center">{{ \'SMS.STATUS\' | translate }}</th>\n <th ng-if="vm.license.messaging" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'SMS.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.openchannel" class="bl text-center">{{ \'OPENCHANNEL.STATUS\' | translate }}</th>\n <th ng-if="vm.license.openchannel" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'OPENCHANNEL.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.fax" class="bl text-center">{{ \'FAX.STATUS\' | translate }}</th>\n <th ng-if="vm.license.fax" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'FAX.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n <th ng-if="vm.license.whatsapp" class="bl text-center">{{ \'WHATSAPP.STATUS\' | translate }}</th>\n <th ng-if="vm.license.whatsapp" class="text-center">\n <md-icon md-font-icon="icon-battery-standard">\n <md-tooltip>{{ \'WHATSAPP.CAPACITY\' | translate }}</md-tooltip>\n </md-icon>\n </th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.agents.count > 0">\n <td md-cell colspan="19">\n <div layout="row" layout-align="center center">\n <span>{{ \'VOICE.NO_AGENT_ONLINE\' | translate }}</span>\n </div>\n </td>\n </tr>\n <tr md-select="agent" md-select-id="id" ng-repeat="agent in vm.agents.rows">\n <td class="bt padding-5">\n <div layout="row" layout-align="start center">\n <img class="avatar" ng-src="{{agent.userpic && \'api/users/\'+ agent.id +\'/avatar\' || \'assets/images/avatars/profile.png\'}}">\n <div layout="column">\n <span>{{agent.fullname}}</span>\n <span>{{agent.internal}}</span>\n </div>\n </div>\n </td>\n <td class="bt padding-5">\n <div layout="row" layout-align="start center" ng-if="vm.license.screenrecording && (agent.phoneBarEnableScreenRecordingByAgent || agent.phoneBarEnableAutomaticScreenRecording)">\n <div class="column">\n <span>\n <md-icon md-font-icon="icon-camcorder-box" ng-class="agent.screenrecording ? \'green-fg\' : \'grey-fg\'" aria-hidden="true">\n <md-tooltip>\n {{ agent.screenrecording ? \'VOICE.TOOLTIP_SCREENRECORDING_ON\' : \'VOICE.TOOLTIP_SCREENRECORDING_OFF\'\n | translate }}\n </md-tooltip>\n </md-icon>\n </span>\n </div>\n </div>\n </td>\n <td class="bt text-center">\n'+" <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','busy':'indigo-100-bg','*pause':'amber-50-bg','pause':'amber-200-bg'}[agent.globalStatus]\">\n {{ agent.globalStatus === 'pause' || agent.globalStatus === '*pause' ? \n ((agent.globalStatusDisplayValue === 'DEFAULT PAUSE' ? ('VOICE.DEFAULT_PAUSE' | translate) : agent.globalStatusDisplayValue) | uppercase) : \n ('VOICE.' + (agent.globalStatusDisplayValue | uppercase) | translate | uppercase)\n }}\n </span>\n </td>\n <td class=\"bt custom-column\">\n <timer start-time=\"agent.lastLoginAt\"></timer>\n </td>\n <td class=\"bt custom-column\">\n <timer ng-if=\"agent.globalStatus === 'pause' || agent.globalStatus === '*pause'\" start-time=\"agent.lastPauseAt\"></timer>\n </td>\n <td class=\"bt bl text-center\">\n <span ng-if=\"!agent.onhold\" class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','talking':'indigo-100-bg','ringing':'orange-400-bg','pause':'amber-200-bg'}[agent.voiceStatus]\">\n {{ 'VOICE.' + (agent.voiceStatus | uppercase) | translate | uppercase }}</span>\n <span ng-if=\"agent.onhold\" class=\"text-boxed md-background-bg bl bt padding-5 orange-400-bg\">\n {{ 'VOICE.ONHOLD' | translate | uppercase }}</span>\n </td>\n <td class=\"bt bl\">\n <div layout=\"column\" ng-if=\"agent.voiceStatus === 'talking' || agent.voiceStatus === 'ringing'\">\n <span ng-if=\"agent.queue\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[agent.voiceStatus]\">{{\n agent.queue }}</span>\n <span ng-if=\"agent.destconnectedlinenum\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[agent.voiceStatus]\" privacy ng-cloak>{{\n agent.destconnectedlinenum }}</span>\n <span ng-if=\"agent.routealias\" class=\"padding-5\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[agent.voiceStatus]\">{{\n agent.routealias }}</span>\n <span class=\"padding-5\" ng-if=\"agent.queue || agent.destconnectedlinenum\">\n <timer start-time=\"agent.voiceStatusTime\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[agent.voiceStatus]\">\n </timer>\n </span>\n </div>\n </td>\n <td class=\"bt bl text-center\" ng-if=\"vm.license.chat\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[agent.chatStatus]\">\n {{ 'VOICE.' + (agent.chatStatus | uppercase) | translate | uppercase }}</span>\n </td>\n <td md-number class=\"bt text-center font-size-20\" ng-if=\"vm.license.chat\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[agent.chatStatus]\">\n {{ agent.chatCurrentCapacity }}</td>\n <td class=\"bl bt text-center\" ng-if=\"vm.license.mail\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[agent.mailStatus]\">\n {{ 'VOICE.' + (agent.mailStatus | uppercase) | translate | uppercase }}\n </span>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.mail\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[agent.mailStatus]\">\n {{ agent.mailCurrentCapacity }}</td>\n <td class=\"bl bt text-center\" ng-if=\"vm.license.messaging\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[agent.smsStatus]\">\n {{ 'VOICE.' + (agent.smsStatus | uppercase) | translate | uppercase }}\n </span>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.messaging\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[agent.smsStatus]\">\n {{ agent.smsCurrentCapacity }}</td>\n <td class=\"bt bl text-center\" ng-if=\"vm.license.openchannel\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[agent.openchannelStatus]\">\n {{ 'VOICE.' + (agent.openchannelStatus | uppercase) | translate | uppercase }}\n </span>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.openchannel\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[agent.openchannelStatus]\">\n {{ agent.openchannelCurrentCapacity }}</td>\n <td class=\"bt bl text-center\" ng-if=\"vm.license.fax\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[agent.faxStatus]\">\n {{ 'VOICE.' + (agent.faxStatus | uppercase) | translate | uppercase }}\n </span>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.fax\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[agent.faxStatus]\">\n {{ agent.faxCurrentCapacity }}</td>\n <td class=\"bl bt text-center\" ng-if=\"vm.license.whatsapp\">\n <span class=\"text-boxed md-background-bg bl bt padding-5\" ng-class=\"{'idle':'lime-300-bg','maxcapacity':'red-A200-bg','working':'indigo-100-bg','pause':'amber-200-bg'}[agent.whatsappStatus]\">\n {{ 'VOICE.' + (agent.whatsappStatus | uppercase) | translate | uppercase }}\n </span>\n </td>\n <td class=\"bt padding-5 text-center font-size-20\" ng-if=\"vm.license.whatsapp\" ng-class=\"{'idle':'lime-300-fg','maxcapacity':'red-A200-fg','working':'indigo-100-fg','pause':'amber-200-fg'}[agent.whatsappStatus]\">\n {{ agent.whatsappCurrentCapacity }}</td>\n <td class=\"bl bt padding-5 text-center\" ng-if=\"vm.crudPermissions.canEdit\">\n <md-menu>\n <md-button class=\"md-icon-button\" aria-label=\"More\" translate translate-attr-aria-label=\"STAFF.MORE\" ng-click=\"$mdOpenMenu($event)\">\n <md-icon md-font-icon=\"icon-dots-vertical\"></md-icon>\n </md-button>\n <md-menu-content width=\"4\">\n <md-menu-item>\n <md-button ng-click=\"vm.logout(agent, $event)\" translate=\"VOICE.LOGOUT\">\n Logout\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click=\"vm.addQueue(agent, $event)\" translate=\"{{ vm.channel.toUpperCase() + '.AGENTADD_QUEUE' }}\">\n Add Agent In Queue\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.license.screenrecording && agent.phoneBarEnableScreenRecordingByAgent\">\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"VOICE.SCREENRECORDING\">Manage Screen Recording\n </md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-click=\"vm.manageScreenRecording(agent, !agent.screenrecording)\" translate=\"{{ agent.screenrecording ? 'VOICE.STOP_SCREENRECORDING' : 'VOICE.START_SCREENRECORDING' }}\">\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item>\n <md-menu>\n <md-button ng-click=\"$mdMenu.open()\" class=\"text-capitalize\" translate=\"VOICE.PAUSE\">Pause</md-button>\n <md-menu-content>\n <md-menu-item>\n <md-button ng-disabled=\"agent.voicePause && 'DEFAULT PAUSE' === agent.pauseType\" ng-click=\"vm.pause(agent)\">\n <em translate=\"VOICE.DEFAULT_PAUSE\">Default Pause</em>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if=\"vm.pauses.rows.length\" ng-repeat=\"pause in vm.pauses.rows\">\n <md-button ng-disabled=\"agent.voicePause && pause.name === agent.pauseType\" ng-click=\"vm.pause(agent, pause.name)\">{{pause.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item ng-if=\"agent.globalStatus === 'pause' || agent.globalStatus === '*pause'\">\n <md-button ng-click=\"vm.unpause(agent)\" translate=\"VOICE.UNPAUSE\">\n Unpause\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n<md-table-pagination md-label=\"{page: '{{'VOICE.PAGE' | translate}}:', rowsPerPage: '{{'VOICE.ROWSPERPAGE' | translate}}:', of: '{{'VOICE.OF' | translate}}'}\" md-limit=\"vm.query.limit\" md-limit-options=\"[10, 15, 20, 50, 100, 250]\" md-page=\"vm.query.page\" md-total=\"{{vm.agents.count}}\" md-on-paginate=\"vm.getAgents\" md-page-select></md-table-pagination>"),e.put("app/main/apps/settings/views/cloudProviders/cloudProviders.html",'<div id="cloudProviders" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="SETTINGS.AITOOLS">AiTools</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="SETTINGS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedAiTools.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedAiTools =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="SETTINGS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-cloudProviders-count">\n <span>{{vm.selectedAiTools.length}}</span>\n <span translate="SETTINGS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="SETTINGS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllAiTools()" translate="SETTINGS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectAiTools()" translate="SETTINGS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedAiTools" csv-label="true" filename="cloudProviders.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-click="vm.deleteSelectedAiTools($event)" aria-label="delete selected" translate translate-attr-label="SETTINGS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- CLOUDPROVIDER TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedAiTools" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getAiTools">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'SETTINGS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'SETTINGS.NAME\' | translate }}</th>\n <th md-column md-order-by="service">{{ \'SETTINGS.SERVICE\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.cloudProviders.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="SETTINGS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="cloudProvider" md-select-id="id" ng-repeat="cloudProvider in vm.cloudProviders.rows">\n <td md-cell ng-if="cloudProvider.userpic"><img class="avatar" alt="{{cloudProvider.name}}" ng-src="api/users/{{cloudProvider.id}}/avatar" /></td>\n <td md-cell ng-if="!cloudProvider.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{cloudProvider.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditCloudProvider($event, cloudProvider)" md-cell class="id ">{{cloudProvider.id}}</td>\n <td ng-click="vm.createOrEditCloudProvider($event, cloudProvider)" md-cell class="name ">{{cloudProvider.name}}</td>\n <td ng-click="vm.createOrEditCloudProvider($event, cloudProvider)" md-cell class="service ">{{ vm.arrayservice[cloudProvider.service].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="SETTINGS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.editdialog(cloudProvider, $event )" translate="SETTINGS.EDIT_CLOUDPROVIDER">\n Edit CloudProvider\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.deleteconfirm(cloudProvider, $event )" translate="SETTINGS.DELETE_CLOUDPROVIDER">\n Delete CloudProvider\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'SETTINGS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SETTINGS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SETTINGS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.cloudProviders.count}}" md-on-paginate="vm.getAiTools" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / CLOUDPROVIDER TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD CLOUDPROVIDER BUTTON --\x3e\n <md-button class="md-fab md-accent" id="add-cloudProvider-button" ng-click="vm.createOrEditCloudProvider($event)" aria-label="add cloudProvider" translate translate-attr-aria-label="SETTINGS.ADD_CLOUDPROVIDER">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD CLOUDPROVIDER BUTTON --\x3e\n</div>'),e.put("app/main/apps/settings/views/cloudProviders/create/dialog.html",'<md-dialog class="cloudProvider-dialog" aria-label="New CloudProvider">\n <form name="cloudProviderForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SETTINGS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.cloudProvider.name" ng-required="true" autofocus>\n\n <div ng-messages="cloudProviderForm[\'name\'].$error" ng-show="cloudProviderForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.SERVICE">Service</label>\n <md-select name="service" ng-model="vm.cloudProvider.service" required ng-disabled="!vm.newCloudProvider">\n <md-option ng-value="\'AmazonAWS\'">AmazonAWS</md-option>\n </md-select>\n <div ng-messages="cloudProviderForm[\'service\'].$error" ng-show="cloudProviderForm[\'service\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SERVICE_REQUIRED">Service field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.cloudProvider.service == \'AmazonAWS\'" class="md-block">\n <label translate="SETTINGS.ACCESSKEY">AccessKey</label>\n <input type="text" name="data2" ng-model="vm.cloudProvider.data2" ng-required="true">\n\n <div ng-messages="cloudProviderForm[\'data2\'].$error" ng-show="cloudProviderForm[\'data2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.ACCESSKEY_REQUIRED">AccessKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.cloudProvider.service == \'AmazonAWS\'" class="md-block">\n <label translate="SETTINGS.SECRETACCESSKEY">SecretAccesskey</label>\n <input type="text" name="data1" ng-model="vm.cloudProvider.data1" ng-required="true">\n\n <div ng-messages="cloudProviderForm[\'data1\'].$error" ng-show="cloudProviderForm[\'data1\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SECRETACCESSKEY_REQUIRED">SecretAccesskey field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="!vm.newCloudProvider" ng-click="vm.saveCloudProvider()" class="send-button md-accent md-raised" ng-disabled="cloudProviderForm.$invalid || cloudProviderForm.$pristine" aria-label="SAVE" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newCloudProvider" ng-click="vm.addNewCloudProvider()" class="send-button md-accent md-raised" ng-disabled="cloudProviderForm.$invalid" aria-label="ADD" translate="SETTINGS.ADD_CLOUDPROVIDER" translate-attr-aria-label="SETTINGS.ADD_CLOUDPROVIDER">\n ADD CLOUDPROVIDER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-click="vm.deleteCloudProvider($event)" aria-label="DELETE" translate translate-attr-aria-label="SETTINGS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="SETTINGS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/settings/views/customizations/create/dialog.html",'<md-dialog class="customization-dialog" aria-label="New Customization">\n <form name="customizationForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.customization.defaultLogo" aria-label="Default_Logo"><span translate="SETTINGS.DEFAULT_LOGO">Default_Logo</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.customization.defaultLoginLogo" aria-label="Default_Login_Logo"><span translate="SETTINGS.DEFAULT_LOGIN_LOGO">Default_Login_Logo</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.customization.defaultFavicon" aria-label="Default_Favicon"><span translate="SETTINGS.DEFAULT_FAVICON">Default_Favicon</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.customization.defaultHeaderWhiteLabel" aria-label="Default_Header_WhiteLabel"><span translate="SETTINGS.DEFAULT_HEADER_WHITELABEL">Default_Header_WhiteLabel</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.customization.defaultHeaderWhiteLabel" class="md-block">\n <label translate="SETTINGS.HEADER_WHITELABEL">Header_WhiteLabel</label>\n <input type="text" name="headerWhiteLabel" ng-model="vm.customization.headerWhiteLabel" ng-required="true">\n\n <div ng-messages="customizationForm[\'headerWhiteLabel\'].$error" ng-show="customizationForm[\'headerWhiteLabel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.HEADER_WHITELABEL_REQUIRED">Header_WhiteLabel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.customization.defaultPageTitle" aria-label="Default_Page_Title"><span translate="SETTINGS.DEFAULT_PAGE_TITLE">Default_Page_Title</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.customization.defaultPageTitle" class="md-block">\n <label translate="SETTINGS.PAGE_TITLE">Page_Title</label>\n <input type="text" name="pageTitle" ng-model="vm.customization.pageTitle" ng-required="true">\n\n <div ng-messages="customizationForm[\'pageTitle\'].$error" ng-show="customizationForm[\'pageTitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PAGE_TITLE_REQUIRED">Page_Title field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.preferred" class="md-block">\n <md-switch ng-model="vm.customization.defaultPreferred" aria-label="Default_Preferred"><span translate="SETTINGS.DEFAULT_PREFERRED">Default_Preferred</span></md-switch>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newCustomization" ng-click="vm.saveCustomization()" class="send-button md-accent md-raised" ng-disabled="customizationForm.$invalid || customizationForm.$pristine" aria-label="SAVE" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newCustomization" ng-click="vm.addNewCustomization()" class="send-button md-accent md-raised" ng-disabled="customizationForm.$invalid" aria-label="ADD" translate="SETTINGS.ADD_CUSTOMIZATION" translate-attr-aria-label="SETTINGS.ADD_CUSTOMIZATION">\n ADD CUSTOMIZATION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newCustomization" ng-click="vm.deleteCustomization($event)" aria-label="DELETE" translate translate-attr-aria-label="SETTINGS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="SETTINGS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/settings/views/customizations/customizations.html",'<div id="customizations" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="SETTINGS.CUSTOMIZATIONS">Customizations</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div>\n <md-button type="submit" ng-click="vm.saveCustomization()" ng-disabled="(customizationsForm.$pristine && logoForm.$pristine && logologinForm.$pristine && preferredForm.$pristine && faviconForm.$pristine) || (customizationsForm.$invalid || logoForm.$invalid || logologinForm.$invalid || preferredForm.$invalid || faviconForm.$invalid)" class="send-button md-accent md-raised" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n <div class="customization-detail-form-container customizations md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.CUSTOMIZATIONS">CUSTOMIZATIONS</div>\n </div>\n <form name="customizationsForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.customization.defaultLogo" aria-label="Default_Logo"><span translate="SETTINGS.DEFAULT_LOGO">Default_Logo</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.customization.defaultLoginLogo" aria-label="Default_Login_Logo"><span translate="SETTINGS.DEFAULT_LOGIN_LOGO">Default_Login_Logo</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.customization.defaultFavicon" aria-label="Default_Favicon"><span translate="SETTINGS.DEFAULT_FAVICON">Default_Favicon</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.customization.defaultHeaderWhiteLabel" aria-label="Default_Header_WhiteLabel"><span translate="SETTINGS.DEFAULT_HEADER_WHITELABEL">Default_Header_WhiteLabel</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.customization.defaultHeaderWhiteLabel" class="md-block">\n <label translate="SETTINGS.HEADER_WHITELABEL">Header_WhiteLabel</label>\n <input type="text" name="headerWhiteLabel" ng-model="vm.customization.headerWhiteLabel" ng-required="true">\n\n <div ng-messages="customizationsForm[\'headerWhiteLabel\'].$error" ng-show="customizationsForm[\'headerWhiteLabel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.HEADER_WHITELABEL_REQUIRED">Header_WhiteLabel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.customization.defaultPageTitle" aria-label="Default_Page_Title"><span translate="SETTINGS.DEFAULT_PAGE_TITLE">Default_Page_Title</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.customization.defaultPageTitle" class="md-block">\n <label translate="SETTINGS.PAGE_TITLE">Page_Title</label>\n <input type="text" name="pageTitle" ng-model="vm.customization.pageTitle" ng-required="true">\n\n <div ng-messages="customizationsForm[\'pageTitle\'].$error" ng-show="customizationsForm[\'pageTitle\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PAGE_TITLE_REQUIRED">Page_Title field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.preferred" class="md-block">\n <md-switch ng-model="vm.customization.defaultPreferred" aria-label="Default_Preferred"><span translate="SETTINGS.DEFAULT_PREFERRED">Default_Preferred</span></md-switch>\n </md-input-container>\n\n </form>\n </div>\n\n <div ng-if="!vm.customization.defaultLogo" class="customization-detail-form-container logo md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.LOGO">LOGO</div>\n </div>\n <div ng-controller="CustomizationlogoController as vm_cl" ng-init="vm_cl.init(vm.customization)" class="customization-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="customization-image-uploader" flow-init="vm_cl.ngFlowOptions" flow-name="vm_cl.ngFlow.flow" flow-files-submitted="vm_cl.upload()" flow-file-added="vm_cl.fileAdded($file)" flow-file-success="vm_cl.fileSuccess($file, $message)" flow-complete="vm_cl.uploadComplete()" flow-drop flow-drag-enter="vm_cl.dropping=true" flow-drag-leave="vm_cl.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn>\n Upload\n </md-button>\n <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG - Max. 8MB</span>\n </div>\n\n <div layout="row" layout-align="start start" layout-wrap>\n <div ng-repeat="logoimage in vm_cl.customization.images" ng-switch="logoimage.type">\n <div class="customization-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n <div class="overlay" layout="column" layout-align="center center">\n <md-progress-linear md-mode="determinate" value="{{logoimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="logoimage.file">\n </div>\n\n <div class="customization-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{logoimage.url}}">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n\n <div ng-if="!vm.customization.defaultLoginLogo" class="customization-detail-form-container logologin md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.LOGOLOGIN">LOGOLOGIN</div>\n </div>\n <div ng-controller="CustomizationlogologinController as vm_cll" ng-init="vm_cll.init(vm.customization)" class="customization-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="customization-image-uploader" flow-init="vm_cll.ngFlowOptions" flow-name="vm_cll.ngFlow.flow" flow-files-submitted="vm_cll.upload()" flow-file-added="vm_cll.fileAdded($file)" flow-file-success="vm_cll.fileSuccess($file, $message)" flow-complete="vm_cll.uploadComplete()" flow-drop flow-drag-enter="vm_cll.dropping=true" flow-drag-leave="vm_cll.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn>\n Upload\n </md-button>\n <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG - Max. 8MB</span>\n </div>\n\n <div layout="row" layout-align="start start" layout-wrap>\n <div ng-repeat="logologinimage in vm_cll.customization.images" ng-switch="logologinimage.type">\n <div class="customization-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n <div class="overlay" layout="column" layout-align="center center">\n <md-progress-linear md-mode="determinate" value="{{logologinimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="logologinimage.file">\n </div>\n\n <div class="customization-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{logologinimage.url}}">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n\n <div ng-if="!vm.customization.defaultPreferred && vm.license.preferred" class="customization-detail-form-container preferred md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.PREFERRED">PREFERRED</div>\n </div>\n <div ng-controller="CustomizationpreferredController as vm_cp" ng-init="vm_cp.init(vm.customization)" class="customization-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="customization-image-uploader" flow-init="vm_cp.ngFlowOptions" flow-name="vm_cp.ngFlow.flow" flow-files-submitted="vm_cp.upload()" flow-file-added="vm_cp.fileAdded($file)" flow-file-success="vm_cp.fileSuccess($file, $message)" flow-complete="vm_cp.uploadComplete()" flow-drop flow-drag-enter="vm_cp.dropping=true" flow-drag-leave="vm_cp.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn>\n Upload\n </md-button>\n <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG - Max. 8MB</span>\n </div>\n\n <div layout="row" layout-align="start start" layout-wrap>\n <div ng-repeat="preferredimage in vm_cp.customization.images" ng-switch="preferredimage.type">\n <div class="customization-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n <div class="overlay" layout="column" layout-align="center center">\n <md-progress-linear md-mode="determinate" value="{{preferredimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="preferredimage.file">\n </div>\n\n <div class="customization-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{preferredimage.url}}">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n\n <div ng-if="!vm.customization.defaultFavicon" class="customization-detail-form-container favicon md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.FAVICON">FAVICON</div>\n </div>\n <div ng-controller="CustomizationfaviconController as vm_cf" ng-init="vm_cf.init(vm.customization)" class="customization-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="customization-image-uploader" flow-init="vm_cf.ngFlowOptions" flow-name="vm_cf.ngFlow.flow" flow-files-submitted="vm_cf.upload()" flow-file-added="vm_cf.fileAdded($file)" flow-file-success="vm_cf.fileSuccess($file, $message)" flow-complete="vm_cf.uploadComplete()" flow-drop flow-drag-enter="vm_cf.dropping=true" flow-drag-leave="vm_cf.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn>\n Upload\n </md-button>\n <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG, ICO - Max. 8MB</span>\n </div>\n\n <div layout="row" layout-align="start start" layout-wrap>\n <div ng-repeat="faviconimage in vm_cf.customization.images" ng-switch="faviconimage.type">\n <div class="customization-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n <div class="overlay" layout="column" layout-align="center center">\n <md-progress-linear md-mode="determinate" value="{{faviconimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="faviconimage.file">\n </div>\n\n <div class="customization-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{faviconimage.url}}">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/settings/views/generals/create/dialog.html",'<md-dialog class="general-dialog" aria-label="New General">\n <form name="generalForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newGeneral" ng-click="vm.saveGeneral()" class="send-button md-accent md-raised" ng-disabled="generalForm.$invalid || generalForm.$pristine" aria-label="SAVE" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newGeneral" ng-click="vm.addNewGeneral()" class="send-button md-accent md-raised" ng-disabled="generalForm.$invalid" aria-label="ADD" translate="SETTINGS.ADD_GENERAL" translate-attr-aria-label="SETTINGS.ADD_GENERAL">\n ADD GENERAL\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newGeneral" ng-click="vm.deleteGeneral($event)" aria-label="DELETE" translate translate-attr-aria-label="SETTINGS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="SETTINGS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/settings/views/generals/generals.html",'<div id="generals" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="SETTINGS.GENERAL">General</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div>\n <md-button type="submit" ng-click="vm.saveGeneral()" ng-disabled="(globalForm.$pristine && motionbarForm.$pristine && reportForm.$pristine && agentOmniDesktopInterfaceForm.$pristine && screenRecordingForm.$pristine && securityForm.$pristine && imapGeneralSettingsForm.$pristine && SSOForm.$pristine && aiToolsForm.$pristine) || (globalForm.$invalid || motionbarForm.$invalid || reportForm.$invalid || agentOmniDesktopInterfaceForm.$invalid || screenRecordingForm.$invalid || securityForm.$invalid || imapGeneralSettingsForm.$invalid || SSOForm.$invalid || aiToolsForm.$invalid)" class="send-button md-accent md-raised" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n <div class="general-detail-form-container global md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.GLOBAL">GLOBAL</div>\n </div>\n <form name="globalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SETTINGS.MIN_INTERNAL">Min_Internal</label>\n <input type="number" name="min_internal" ng-model="vm.general.min_internal" min="0" value="1000" ng-required="true" autofocus>\n\n <div ng-messages="globalForm[\'min_internal\'].$error" ng-show="globalForm[\'min_internal\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.MIN_INTERNAL_REQUIRED">Min_Internal field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.MIN_INTERNAL_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Min_Internal must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.CHATTIMEOUT">chatTimeout</label>\n <input type="number" name="chatTimeout" ng-model="vm.general.chatTimeout" min="0" value="30" ng-required="true">\n\n <div ng-messages="globalForm[\'chatTimeout\'].$error" ng-show="globalForm[\'chatTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.CHATTIMEOUT_REQUIRED">chatTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.CHATTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">chatTimeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.rtlSupport" aria-label="RtlSupport"><span translate="SETTINGS.RTLSUPPORT">RtlSupport</span></md-switch>\n <div class="hint"><span translate="SETTINGS.HELP.RTLSUPPORT"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.stopRecordingOnTransfer" aria-label="Stop_Recording_On_Voice_Call_Transfer"><span translate="SETTINGS.STOP_RECORDING_ON_VOICE_CALL_TRANSFER">Stop_Recording_On_Voice_Call_Transfer</span></md-switch>\n </md-input-container>\n\n </form>\n </div>\n\n <div class="general-detail-form-container motionbar md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.MOTIONBAR">MOTIONBAR</div>\n </div>\n <form name="motionbarForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.phoneBarAutoUpdater" aria-label="MotionbarAutoUpdater"><span translate="SETTINGS.MOTIONBARAUTOUPDATER">MotionbarAutoUpdater</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.general.phoneBarAutoUpdater" class="md-block">\n <label translate="SETTINGS.MOTIONBARAUTOUPDATERURL">MotionbarAutoUpdaterUrl</label>\n <input type="url" name="phoneBarAutoUpdaterUrl" ng-model="vm.general.phoneBarAutoUpdaterUrl" value="https://www.xcally.com/bar/phonebar/autoupdater.xml" ng-required="vm.general.phoneBarAutoUpdater">\n\n <div ng-messages="motionbarForm[\'phoneBarAutoUpdaterUrl\'].$error" ng-show="motionbarForm[\'phoneBarAutoUpdaterUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.MOTIONBARAUTOUPDATERURL_REQUIRED">MotionbarAutoUpdaterUrl field is required</span>\n </div>\n <div ng-message="url">\n <span translate="SETTINGS.ERRORS.MOTIONBARAUTOUPDATERURL_MUST_VALID_URL">MotionbarAutoUpdaterUrl must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.phoneBarRememberMeEnabled" aria-label="MotionbarRememberMe"><span translate="SETTINGS.MOTIONBARREMEMBERME">MotionbarRememberMe</span></md-switch>\n <div class="hint"><span translate="SETTINGS.HELP.MOTIONBARREMEMBERME"></span></div>\n </md-input-container>\n\n </form>\n </div>\n\n <div class="general-detail-form-container report md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.REPORT">REPORT</div>\n </div>\n <form name="reportForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.split" aria-label="Split"><span translate="SETTINGS.SPLIT">Split</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.general.split" class="md-block">\n <label translate="SETTINGS.SPLITSIZECSV">SplitSizeCsv</label>\n <input type="number" name="splitSizeCsv" ng-model="vm.general.splitSizeCsv" value="5000">\n\n <div ng-messages="reportForm[\'splitSizeCsv\'].$error" ng-show="reportForm[\'splitSizeCsv\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SPLITSIZECSV_REQUIRED">SplitSizeCsv field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.general.split" class="md-block">\n <label translate="SETTINGS.SPLITSIZEPDF">SplitSizePdf</label>\n <input type="number" name="splitSizePdf" ng-model="vm.general.splitSizePdf" value="1000">\n\n <div ng-messages="reportForm[\'splitSizePdf\'].$error" ng-show="reportForm[\'splitSizePdf\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SPLITSIZEPDF_REQUIRED">SplitSizePdf field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.general.split" class="md-block">\n <label translate="SETTINGS.SPLITSIZEXLSX">SplitSizeXlsx</label>\n <input type="number" name="splitSizeXlsx" ng-model="vm.general.splitSizeXlsx" value="5000">\n\n <div ng-messages="reportForm[\'splitSizeXlsx\'].$error" ng-show="reportForm[\'splitSizeXlsx\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SPLITSIZEXLSX_REQUIRED">SplitSizeXlsx field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n\n <div class="general-detail-form-container agentomnidesktopinterface md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.AGENTOMNIDESKTOPINTERFACE">AGENTOMNIDESKTOPINTERFACE</div>\n </div>\n <form name="agentOmniDesktopInterfaceForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.enableEmailPreview" aria-label="EnableEmailPreview"><span translate="SETTINGS.ENABLEEMAILPREVIEW">EnableEmailPreview</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.searchOnEnterKey" aria-label="Search_On_Enter_Key"><span translate="SETTINGS.SEARCH_ON_ENTER_KEY">Search_On_Enter_Key</span></md-switch>\n <div class="hint"><span translate="SETTINGS.HELP.SEARCH_ON_ENTER_KEY"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.MESSAGESALIGNMENT">messagesAlignment</label>\n <md-select name="messagesAlignment" ng-model="vm.general.messagesAlignment">\n <md-option ng-value="\'alternate\'">Alternate</md-option>\n <md-option ng-value="\'left\'">Left</md-option>\n <md-option ng-value="\'right\'">Right</md-option>\n </md-select>\n <div ng-messages="agentOmniDesktopInterfaceForm[\'messagesAlignment\'].$error" ng-show="agentOmniDesktopInterfaceForm[\'messagesAlignment\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.MESSAGESALIGNMENT_REQUIRED">messagesAlignment field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.CHAT_INTERACTIONS_RELOAD_TIMEOUT">Chat_Interactions_Reload_Timeout</label>\n <input type="number" name="chatInteractionsReloadTimeout" ng-model="vm.general.chatInteractionsReloadTimeout">\n\n <div class="hint"><span translate="SETTINGS.HELP.INTERACTIONS_RELOAD_TIMEOUT"></span></div>\n <div ng-messages="agentOmniDesktopInterfaceForm[\'chatInteractionsReloadTimeout\'].$error" ng-show="agentOmniDesktopInterfaceForm[\'chatInteractionsReloadTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.CHAT_INTERACTIONS_RELOAD_TIMEOUT_REQUIRED">Chat_Interactions_Reload_Timeout field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.MAIL_INTERACTIONS_RELOAD_TIMEOUT">Mail_Interactions_Reload_Timeout</label>\n <input type="number" name="mailInteractionsReloadTimeout" ng-model="vm.general.mailInteractionsReloadTimeout">\n\n <div class="hint"><span translate="SETTINGS.HELP.INTERACTIONS_RELOAD_TIMEOUT"></span></div>\n <div ng-messages="agentOmniDesktopInterfaceForm[\'mailInteractionsReloadTimeout\'].$error" ng-show="agentOmniDesktopInterfaceForm[\'mailInteractionsReloadTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.MAIL_INTERACTIONS_RELOAD_TIMEOUT_REQUIRED">Mail_Interactions_Reload_Timeout field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.OPENCHANNEL_INTERACTIONS_RELOAD_TIMEOUT">Openchannel_Interactions_Reload_Timeout</label>\n <input type="number" name="openchannelInteractionsReloadTimeout" ng-model="vm.general.openchannelInteractionsReloadTimeout">\n\n <div class="hint"><span translate="SETTINGS.HELP.INTERACTIONS_RELOAD_TIMEOUT"></span></div>\n <div ng-messages="agentOmniDesktopInterfaceForm[\'openchannelInteractionsReloadTimeout\'].$error" ng-show="agentOmniDesktopInterfaceForm[\'openchannelInteractionsReloadTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.OPENCHANNEL_INTERACTIONS_RELOAD_TIMEOUT_REQUIRED">Openchannel_Interactions_Reload_Timeout field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.SMS_INTERACTIONS_RELOAD_TIMEOUT">Sms_Interactions_Reload_Timeout</label>\n <input type="number" name="smsInteractionsReloadTimeout" ng-model="vm.general.smsInteractionsReloadTimeout">\n\n <div class="hint"><span translate="SETTINGS.HELP.INTERACTIONS_RELOAD_TIMEOUT"></span></div>\n <div ng-messages="agentOmniDesktopInterfaceForm[\'smsInteractionsReloadTimeout\'].$error" ng-show="agentOmniDesktopInterfaceForm[\'smsInteractionsReloadTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SMS_INTERACTIONS_RELOAD_TIMEOUT_REQUIRED">Sms_Interactions_Reload_Timeout field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.WHATSAPP_INTERACTIONS_RELOAD_TIMEOUT">Whatsapp_Interactions_Reload_Timeout</label>\n <input type="number" name="whatsappInteractionsReloadTimeout" ng-model="vm.general.whatsappInteractionsReloadTimeout">\n\n <div class="hint"><span translate="SETTINGS.HELP.INTERACTIONS_RELOAD_TIMEOUT"></span></div>\n <div ng-messages="agentOmniDesktopInterfaceForm[\'whatsappInteractionsReloadTimeout\'].$error" ng-show="agentOmniDesktopInterfaceForm[\'whatsappInteractionsReloadTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.WHATSAPP_INTERACTIONS_RELOAD_TIMEOUT_REQUIRED">Whatsapp_Interactions_Reload_Timeout field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n\n <div ng-if="vm.license.screenrecording" class="general-detail-form-container screenrecording md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.SCREENRECORDING">SCREENRECORDING</div>\n </div>\n <form name="screenRecordingForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SETTINGS.DEFAULTSCREENRECORDINGPATH">defaultScreenRecordingPath</label>\n <input type="text" name="defaultScreenRecordingPath" ng-model="vm.general.defaultScreenRecordingPath" autofocus>\n\n <div class="hint"><span translate="SETTINGS.HELP.DEFAULTSCREENRECORDINGPATH"></span></div>\n <div ng-messages="screenRecordingForm[\'defaultScreenRecordingPath\'].$error" ng-show="screenRecordingForm[\'defaultScreenRecordingPath\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.DEFAULTSCREENRECORDINGPATH_REQUIRED">defaultScreenRecordingPath field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n\n <div class="general-detail-form-container security md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.SECURITY">SECURITY</div>\n </div>\n <form name="securityForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.securePassword" aria-label="Security_Suite"><span translate="SETTINGS.SECURITY_SUITE">Security_Suite</span></md-switch>\n <div class="hint"><span translate="SETTINGS.HELP.SECURITY_SUITE"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.callRecordingEncryption" aria-label="Call_Recording_Encryption"><span translate="SETTINGS.CALL_RECORDING_ENCRYPTION">Call_Recording_Encryption</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.ALLOWEDLOGINATTEMPTS">allowedLoginAttempts</label>\n <input type="number" name="allowedLoginAttempts" ng-model="vm.general.allowedLoginAttempts" value="5" ng-required="true">\n\n <div ng-messages="securityForm[\'allowedLoginAttempts\'].$error" ng-show="securityForm[\'allowedLoginAttempts\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.ALLOWEDLOGINATTEMPTS_REQUIRED">allowedLoginAttempts field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.BLOCKDURATION">blockDuration</label>\n <input type="number" name="blockDuration" ng-model="vm.general.blockDuration" value="10" ng-required="true">\n\n <div ng-messages="securityForm[\'blockDuration\'].$error" ng-show="securityForm[\'blockDuration\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.BLOCKDURATION_REQUIRED">blockDuration field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.enforcePasswordHistory" aria-label="Enforce_Password_History"><span translate="SETTINGS.ENFORCE_PASSWORD_HISTORY">Enforce_Password_History</span></md-switch>\n <div class="hint"><span translate="SETTINGS.HELP.ENFORCE_PASSWORD_HISTORY"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.general.enforcePasswordHistory" class="md-block">\n <label translate="SETTINGS.PASSWORD_HISTORY_LIMIT">Password_History_Limit</label>\n <input type="number" name="passwordHistoryLimit" ng-model="vm.general.passwordHistoryLimit" min="2" max="5" value="3">\n\n <div class="hint"><span translate="SETTINGS.HELP.PASSWORD_HISTORY_LIMIT"></span></div>\n <div ng-messages="securityForm[\'passwordHistoryLimit\'].$error" ng-show="securityForm[\'passwordHistoryLimit\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PASSWORD_HISTORY_LIMIT_REQUIRED">Password_History_Limit field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.PASSWORD_HISTORY_LIMIT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Password_History_Limit must be a valid greater or equal than</span> <span>2</span>\n </div>\n <div ng-message="max">\n <span translate="SETTINGS.ERRORS.PASSWORD_HISTORY_LIMIT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Password_History_Limit must be a valid greater or equal than</span> <span>5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block no-margin-bottom">\n <md-switch ng-change="vm.onPrivacyPolicyChange(\'email\')" ng-model="vm.general.enablePrivacyPolicyEmail" aria-label="Privacy_Policy_Email"><span translate="SETTINGS.PRIVACY_POLICY_EMAIL">Privacy_Policy_Email</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.general.enablePrivacyPolicyEmail" class="md-block no-margin-top">\n\n <input type="number" name="privacyPolicyEmail" ng-model="vm.general.privacyPolicyEmail" min="0" value="0" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.PRIVACY_POLICY"></span></div>\n <div ng-messages="securityForm[\'privacyPolicyEmail\'].$error" ng-show="securityForm[\'privacyPolicyEmail\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PRIVACY_POLICY_EMAIL_REQUIRED">Privacy_Policy_Email field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.PRIVACY_POLICY_EMAIL_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Privacy_Policy_Email must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block no-margin-bottom">\n <md-switch ng-change="vm.onPrivacyPolicyChange(\'name\')" ng-model="vm.general.enablePrivacyPolicyName" aria-label="Privacy_Policy_Name"><span translate="SETTINGS.PRIVACY_POLICY_NAME">Privacy_Policy_Name</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.general.enablePrivacyPolicyName" class="md-block no-margin-top">\n\n <input type="number" name="privacyPolicyName" ng-model="vm.general.privacyPolicyName" min="0" value="0" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.PRIVACY_POLICY"></span></div>\n <div ng-messages="securityForm[\'privacyPolicyName\'].$error" ng-show="securityForm[\'privacyPolicyName\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PRIVACY_POLICY_NAME_REQUIRED">Privacy_Policy_Name field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.PRIVACY_POLICY_NAME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Privacy_Policy_Name must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block no-margin-bottom">\n <md-switch ng-change="vm.onPrivacyPolicyChange(\'number\')" ng-model="vm.general.enablePrivacyPolicyNumber" aria-label="Privacy_Policy_Number"><span translate="SETTINGS.PRIVACY_POLICY_NUMBER">Privacy_Policy_Number</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.general.enablePrivacyPolicyNumber" class="md-block no-margin-top">\n\n <input type="number" name="privacyPolicyNumber" ng-model="vm.general.privacyPolicyNumber" min="0" value="0" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.PRIVACY_POLICY"></span></div>\n <div ng-messages="securityForm[\'privacyPolicyNumber\'].$error" ng-show="securityForm[\'privacyPolicyNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PRIVACY_POLICY_NUMBER_REQUIRED">Privacy_Policy_Number field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.PRIVACY_POLICY_NUMBER_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Privacy_Policy_Number must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n\n <div class="general-detail-form-container imapgeneralsettings md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.IMAPGENERALSETTINGS">IMAPGENERALSETTINGS</div>\n </div>\n <form name="imapGeneralSettingsForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SETTINGS.LOGINMAILFREQUENCY">loginMailFrequency</label>\n <input type="number" name="loginMailFrequency" ng-model="vm.general.loginMailFrequency" min="10" value="10" ng-required="true" autofocus>\n\n <div class="hint"><span translate="SETTINGS.HELP.LOGINMAILFREQUENCY"></span></div>\n <div ng-messages="imapGeneralSettingsForm[\'loginMailFrequency\'].$error" ng-show="imapGeneralSettingsForm[\'loginMailFrequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.LOGINMAILFREQUENCY_REQUIRED">loginMailFrequency field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SETTINGS.ERRORS.LOGINMAILFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">loginMailFrequency must be a valid greater or equal than</span> <span>10</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n\n <div class="general-detail-form-container sso md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.SSO">SSO</div>\n </div>\n <form name="SSOForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.googleSsoEnabled" aria-label="Google_SSO_enabled"><span translate="SETTINGS.GOOGLE_SSO_ENABLED">Google_SSO_enabled</span></md-switch>\n </md-input-container>\n\n </form>\n </div>\n\n <div ng-if="vm.license.ai" class="general-detail-form-container aitools md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.AITOOLS">AITOOLS</div>\n </div>\n <form name="aiToolsForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SETTINGS.LANGUAGE">Language</label>\n <md-select name="language" ng-model="vm.general.language" autofocus required>\n <md-option ng-value="\'en-US\'">US English</md-option>\n <md-option ng-value="\'en-AU\'">Australian English</md-option>\n <md-option ng-value="\'en-GB\'">British English</md-option>\n <md-option ng-value="\'en-AB\'">Scottish English</md-option>\n <md-option ng-value="\'en-WL\'">Welsh English</md-option>\n <md-option ng-value="\'en-IE\'">English (Ireland)</md-option>\n <md-option ng-value="\'en-IN\'">Indian English</md-option>\n <md-option ng-value="\'hi-IN\'">Hindi (India)</md-option>\n <md-option ng-value="\'fr-CA\'">Canadian French</md-option>\n <md-option ng-value="\'fr-FR\'">French</md-option>\n <md-option ng-value="\'de-DE\'">German</md-option>\n <md-option ng-value="\'de-CH\'">German (Switzerland)</md-option>\n <md-option ng-value="\'it-IT\'">Italian</md-option>\n <md-option ng-value="\'es-ES\'">Spanish</md-option>\n <md-option ng-value="\'es-Us\'">US Spanish</md-option>\n <md-option ng-value="\'pt-BR\'">Brazilian Portuguese</md-option>\n <md-option ng-value="\'pt-PT\'">Portuguese(Portugal)</md-option>\n <md-option ng-value="\'ar-SA\'">Modern Standard Arabic</md-option>\n <md-option ng-value="\'ar-AE\'">Arabic</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese Mandarin - Mainland</md-option>\n <md-option ng-value="\'ja-JP\'">Japanese (Japan)</md-option>\n <md-option ng-value="\'ko-KR\'">Korean (Korea)</md-option>\n <md-option ng-value="\'he-IL\'">Hebrew (Israel) - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'ms-MY\'">Malay (Malaysia) - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'fa-IR\'">Farsi (Iran) - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'ru-RU\'">Russian (Russia) - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'te-IN\'">Telugu(India) - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'ta-IN\'">Tamil - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'nl-NL\'">Dutch - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'tr-TR\'">Turkish (Turkey) - This language is not available for the Sentiment Analysis</md-option>\n <md-option ng-value="\'id-ID\'">Indonesian(Indonesia) - This language is not available for the Sentiment Analysis</md-option>\n </md-select>\n <div ng-messages="aiToolsForm[\'language\'].$error" ng-show="aiToolsForm[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.LANGUAGE_REQUIRED">Language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.BUCKET">Bucket</label>\n <input type="text" name="bucket" ng-model="vm.general.bucket" ng-required="true">\n\n <div ng-messages="aiToolsForm[\'bucket\'].$error" ng-show="aiToolsForm[\'bucket\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.BUCKET_REQUIRED">Bucket field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.general.transcribe" aria-label="Transcribe"><span translate="SETTINGS.TRANSCRIBE">Transcribe</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.general.transcribe == true" class="md-block">\n <label translate="SETTINGS.TRANSCRIBEREGION">TranscribeRegion</label>\n <md-select name="transcribeRegion" ng-model="vm.general.transcribeRegion" required>\n <md-option ng-value="\'us-east-1\'">US East (N. Virginia)</md-option>\n <md-option ng-value="\'us-east-2\'">US East (Ohio)</md-option>\n <md-option ng-value="\'us-east-2\'">US West (N. California)</md-option>\n <md-option ng-value="\'us-west-2\'">US West (Oregon)</md-option>\n <md-option ng-value="\'ap-south-1\'">Asia Pacific (Mumbai)</md-option>\n <md-option ng-value="\'ap-east-1\'">Asia Pacific (Hong Kong)</md-option>\n <md-option ng-value="\'ap-northeast-2\'">Asia Pacific (Seoul)</md-option>\n <md-option ng-value="\'ap-southeast-1\'">Asia Pacific (Singapore)</md-option>\n <md-option ng-value="\'ap-southeast-2\'">Asia Pacific (Sydney)</md-option>\n <md-option ng-value="\'ap-northeast-1\'">Asia Pacific (Tokyo)</md-option>\n <md-option ng-value="\'ca-central-1\'">Canada (Central)</md-option>\n <md-option ng-value="\'eu-central-1\'">Europe (Frankfurt)</md-option>\n <md-option ng-value="\'eu-west-1\'">Europe (Ireland)</md-option>\n <md-option ng-value="\'eu-west-2\'">Europe (London)</md-option>\n <md-option ng-value="\'eu-west-3\'">Europe (Paris)</md-option>\n <md-option ng-value="\'me-south-1\'">Middle East (Bahrain)</md-option>\n <md-option ng-value="\'sa-east-1\'">South America (São Paulo)</md-option>\n </md-select>\n <div ng-messages="aiToolsForm[\'transcribeRegion\'].$error" ng-show="aiToolsForm[\'transcribeRegion\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.TRANSCRIBEREGION_REQUIRED">TranscribeRegion field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.general.transcribe == true" class="md-block">\n <label translate="SETTINGS.TRANSCRIBEACCOUNT">TranscribeAccount</label>\n <md-select name="transcribeAccountId" ng-model="vm.general.transcribeAccountId" required>\n <md-option ng-value="transcribeAccountId.id" ng-repeat="transcribeAccountId in vm.cloudProviders" ng-disabled="transcribeAccountId.canSelect === false">{{ transcribeAccountId.name }}</md-option>\n </md-select>\n <div ng-messages="aiToolsForm[\'transcribeAccountId\'].$error" ng-show="aiToolsForm[\'transcribeAccountId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.TRANSCRIBEACCOUNT_REQUIRED">TranscribeAccount field is required</span>\n </div>\n </div>\n </md-input-container>\n'+" <md-input-container ng-if=\"vm.general.transcribe == true && vm.general.language != 'he-IL' && vm.general.language != 'ms-MY' && vm.general.language != 'fa-IR' && vm.general.language != 'ru-RU' && vm.general.language != 'te-IN' && vm.general.language != 'ta-IN' && vm.general.language != 'nl-NL' && vm.general.language != 'tr-TR' && vm.general.language != 'id-ID'\" class=\"md-block\">\n <md-switch ng-model=\"vm.general.sentiment\" aria-label=\"SentimentAnalysis\"><span translate=\"SETTINGS.SENTIMENTANALYSIS\">SentimentAnalysis</span></md-switch>\n </md-input-container>\n <md-input-container ng-if=\"vm.general.sentiment == true && vm.general.transcribe == true && vm.general.language != 'he-IL' && vm.general.language != 'ms-MY' && vm.general.language != 'fa-IR' && vm.general.language != 'ru-RU' && vm.general.language != 'te-IN' && vm.general.language != 'ta-IN' && vm.general.language != 'nl-NL' && vm.general.language != 'tr-TR' && vm.general.language != 'id-ID'\" class=\"md-block\">\n <label translate=\"SETTINGS.SENTIMENTREGION\">SentimentRegion</label>\n <md-select name=\"sentimentRegion\" ng-model=\"vm.general.sentimentRegion\" required>\n <md-option ng-value=\"'us-east-1'\">US East (N. Virginia)</md-option>\n <md-option ng-value=\"'us-east-2'\">US East (Ohio)</md-option>\n <md-option ng-value=\"'us-west-2'\">US West (Oregon)</md-option>\n <md-option ng-value=\"'ap-south-1'\">Asia Pacific (Mumbai)</md-option>\n <md-option ng-value=\"'ap-northeast-2'\">Asia Pacific (Seoul)</md-option>\n <md-option ng-value=\"'ap-southeast-1'\">Asia Pacific (Singapore)</md-option>\n <md-option ng-value=\"'ap-southeast-2'\">Asia Pacific (Sydney)</md-option>\n <md-option ng-value=\"'ap-northeast-1'\">Asia Pacific (Tokyo)</md-option>\n <md-option ng-value=\"'ca-central-1'\">Canada (Central)</md-option>\n <md-option ng-value=\"'eu-central-1'\">Europe (Frankfurt)</md-option>\n <md-option ng-value=\"'eu-west-1'\">Europe (Ireland)</md-option>\n <md-option ng-value=\"'eu-west-2'\">Europe (London)</md-option>\n </md-select>\n <div ng-messages=\"aiToolsForm['sentimentRegion'].$error\" ng-show=\"aiToolsForm['sentimentRegion'].$touched\" role=\"alert\">\n <div ng-message=\"required\">\n <span translate=\"SETTINGS.ERRORS.SENTIMENTREGION_REQUIRED\">SentimentRegion field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if=\"vm.general.sentiment == true && vm.general.transcribe == true && vm.general.language != 'he-IL' && vm.general.language != 'ms-MY' && vm.general.language != 'fa-IR' && vm.general.language != 'ru-RU' && vm.general.language != 'te-IN' && vm.general.language != 'ta-IN' && vm.general.language != 'nl-NL' && vm.general.language != 'tr-TR' && vm.general.language != 'id-ID'\" class=\"md-block\">\n <label translate=\"SETTINGS.SENTIMENTACCOUNT\">SentimentAccount</label>\n <md-select name=\"sentimentAccountId\" ng-model=\"vm.general.sentimentAccountId\" required>\n <md-option ng-value=\"sentimentAccountId.id\" ng-repeat=\"sentimentAccountId in vm.cloudProviders\" ng-disabled=\"sentimentAccountId.canSelect === false\">{{ sentimentAccountId.name }}</md-option>\n </md-select>\n <div ng-messages=\"aiToolsForm['sentimentAccountId'].$error\" ng-show=\"aiToolsForm['sentimentAccountId'].$touched\" role=\"alert\">\n <div ng-message=\"required\">\n <span translate=\"SETTINGS.ERRORS.SENTIMENTACCOUNT_REQUIRED\">SentimentAccount field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>"),e.put("app/main/apps/settings/views/license/license.html",'<div id="license" class="page-layout simple fullwidth doc-page">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="SETTINGS.LICENSE">LICENSE</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n \x3c!-- <div>\n <md-button type="submit" ng-click="vm.requestLicense()" class="send-button md-raised" translate="SETTINGS.REQUEST_LICENSE" translate-attr-aria-label="SETTINGS.REQUEST_LICENSE">\n REQUEST LICENSE\n </md-button>\n </div> --\x3e\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n \x3c!-- LICENSE CARD --\x3e\n <div layout="row" flex>\n <md-card class="md-whiteframe-1dp padding-20" flex>\n <div layout="row" layout-align="center">\n <div flex layout="row" layout-align="start center">\n <div ng-if="!vm.license.custom">\n <a href="https://www.xcally.com/plans.html" target="_blank" class="md-button md-fab green-A700-bg" aria-label="Eat cake">\n <md-tooltip><span translate="SETTINGS.PRICES">Prices</span></md-tooltip>\n <md-icon md-font-icon="icon-coin"></md-icon>\n </a>\n </div>\n </div>\n <div flex>\n <div ng-switch="vm.license.months" class="text-center">\n <span ng-switch-when="1" class="md-title md-accent-fg text-bold">{{ \'SETTINGS.PLAN\' | translate }}: <span translate="SETTINGS.MONTH_TO_MONTH">MONTH TO MONTH</span></span>\n <span ng-switch-when="12" class="md-title md-accent-fg text-bold">{{ \'SETTINGS.PLAN\' | translate }}: <span translate="SETTINGS.ANNUALLY">ANNUALLY</span></span>\n <span ng-switch-when="36" class="md-title md-accent-fg text-bold">{{ \'SETTINGS.PLAN\' | translate }}: <span translate="SETTINGS.PERPETUAL">PERPETUAL</span></span>\n </div>\n </div>\n <div flex layout="row" layout-align="end center">\n <div>\n <md-button type="submit" ng-click="vm.updateLicense()" class="md-button md-fab md-accent">\n <md-tooltip><span translate="SETTINGS.UPDATE_LICENSE">License</span></md-tooltip>\n <md-icon md-font-icon="icon-pencil"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n\n <span ng-if="!vm.license.demo && !vm.license.gray && vm.license.months != 36" class="md-subhead md-warn-fg text-center">{{ \'SETTINGS.EXPIRATION_DATE\' | translate }}: {{vm.license.expiration | date: \'longDate\'}}</span>\n <span class="text-center padding-bottom-10"> {{ vm.license.machineUuid !== vm.license.uuid ? \'SETTINGS.OLD_TOKEN\' : \'SETTINGS.TOKEN\' | translate }}: <span class="text-italic text-bold">{{vm.license.uuid}}</span></span>\n\n <div layout="column">\n <span ng-if="vm.license.grayReason == \'changed\'" class="blink md-subhead md-warn-fg text-center">{{ \'SETTINGS.NEW_TOKEN_DETECTED\' | translate }}</span>\n <span ng-if="vm.license.grayReason == \'changed\'" class="text-center padding-bottom-10"> {{\'SETTINGS.NEW_TOKEN\' | translate }}: <span class="text-italic text-bold">{{vm.license.machineUuid}}</span></span>\n <span ng-if="vm.license.gray" class="blink md-subhead md-warn-fg text-center">{{ \'SETTINGS.EXPIRATION_GRAY_PERIOD\' | translate }}: {{vm.license.deadline | date: \'longDate\'}}</span>\n <span ng-if="vm.license.gray" class="text-center padding-bottom-10 text-italic text-bold"> {{\'SETTINGS.EXPIRATION_REASON\' | translate }} </span>\n <span ng-if="vm.license.grayReason == \'disabled\'" class="text-center padding-bottom-10"> {{\'SETTINGS.EXPIRATION_REASON_MESSAGE_DISABLED\' | translate }}</span>\n <span ng-if="vm.license.grayReason == \'changed\'" class="text-center padding-bottom-10"> {{\'SETTINGS.EXPIRATION_REASON_MESSAGE_CHANGED\' | translate }}</span>\n <span ng-if="vm.license.grayReason == \'changed\'" class="text-center padding-bottom-10"> {{\'SETTINGS.EXPIRATION_CHANGED_ADVISE\' | translate }}</span>\n <span ng-if="vm.license.grayReason == \'changed\'" class="text-center padding-bottom-10">{{ \'SETTINGS.SEND_EMAIL_TO\' | translate }}: <a href="mailto:license@xcally.com?subject=New%20token%20detected&body=Hi xCALLY, New Token: {{vm.license.machineUuid}}, Old token: {{vm.license.uuid}}">license@xcally.com</a>.</span>\n <span ng-if="vm.license.grayReason == \'disabled\'" class="text-center padding-bottom-10">{{ \'SETTINGS.SEND_EMAIL_TO\' | translate }}: <a href="mailto:license@xcally.com?subject=License%20disabled&body=Hi xCALLY, My Token: {{vm.license.machineUuid}}">license@xcally.com</a>.</span>\n </div>\n\n <div ng-if="vm.license.demo" layout="column">\n <span class="md-subhead md-warn-fg text-center">{{ \'SETTINGS.TRIAL_VERSION\' | translate }}</span>\n <span class="md-subhead md-warn-fg text-center"><a href="https://www.xcally.com/en/index.html#pricing-table2-h" target="_blank">{{ \'SETTINGS.PRICES\' | translate}}</a></span>\n </div>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.STAFF\' | translate }}</md-subheader>\n <md-divider></md-divider>\n <md-list layout="row">\n <md-list-item class="md-2-line" flex="33">\n <md-icon md-font-icon="icon-account" class="md-avatar-icon"></md-icon>\n <div class="md-list-item-text">\n <h3>{{ vm.license.users || 0 }} <span ng-class="{\'red-fg\': vm.license.users <= vm.users && vm.license.users > 0}">({{vm.license.users >= vm.users ? vm.users : vm.license.users}})</span></h3>\n <p translate="SETTINGS.USERS">Users</p>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" flex="33">\n <md-icon md-font-icon="icon-headphones" class="md-avatar-icon"></md-icon>\n <div class="md-list-item-text">\n <h3>{{ vm.license.agents || 0 }} <span ng-class="{\'red-fg\': (vm.license.agents <= vm.agents && vm.license.agents > 0) }">({{vm.license.agents >= vm.agents ? vm.agents : vm.license.agents}})</span></h3>\n <p translate="SETTINGS.AGENTS">Agents</p>\n </div>\n </md-list-item>\n <md-list-item class="md-2-line" flex="33">\n <md-icon md-font-icon="icon-phone" class="md-avatar-icon"></md-icon>\n <div class="md-list-item-text">\n <h3>{{ vm.license.telephones || 0 }} <span ng-class="{\'red-fg\': vm.license.telephones <= vm.telephones && vm.license.telephones > 0}">({{vm.license.telephones >= vm.telephones ? vm.telephones : vm.license.telephones}})</span></h3>\n <p translate="SETTINGS.TELEPHONES">Telephones</p>\n </div>\n </md-list-item>\n </md-list>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.CHANNELS\' | translate }}</md-subheader>\n <md-divider></md-divider>\n <md-list layout="row">\n <md-list-item flex="33" class="md-2-line" ng-repeat="channel in vm.channels | limitTo:3">\n <md-icon md-font-icon="{{channel.icon}}" class="md-avatar-icon" ng-class="vm.license[channel.name] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n <div class="md-list-item-text">\n <h3 translate="SETTINGS.{{channel.name | uppercase}}"></h3>\n <p ng-class="vm.license[channel.name] ? \'green-A700-fg\' : \'red-A700-fg\'">{{ \'SETTINGS.\' + (vm.license[channel.name] ? \'ENABLED\' : \'DISABLED\') | translate }}</p>\n </div>\n </md-list-item>\n </md-list>\n <md-list layout="row">\n <md-list-item flex="33" class="md-2-line" ng-repeat="channel in vm.channels | limitTo:3:3">\n <md-icon md-font-icon="{{channel.icon}}" class="md-avatar-icon" ng-class="vm.license[channel.name] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n <div class="md-list-item-text">\n <h3 translate="SETTINGS.{{channel.name | uppercase}}"></h3>\n <p ng-class="vm.license[channel.name] ? \'green-A700-fg\' : \'red-A700-fg\'">{{ \'SETTINGS.\' + (vm.license[channel.name] ? \'ENABLED\' : \'DISABLED\') | translate }}</p>\n </div>\n </md-list-item>\n </md-list>\n <md-list layout="row">\n <md-list-item flex="33" class="md-2-line" ng-repeat="channel in vm.channels | limitTo:3:6">\n <md-icon md-font-icon="{{channel.icon}}" class="md-avatar-icon" ng-class="vm.license[channel.name] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n <div class="md-list-item-text">\n <h3 translate="SETTINGS.{{channel.name | uppercase}}"></h3>\n <p ng-class="vm.license[channel.name] ? \'green-A700-fg\' : \'red-A700-fg\'">{{ \'SETTINGS.\' + (vm.license[channel.name] ? \'ENABLED\' : \'DISABLED\') | translate }}</p>\n </div>\n </md-list-item>\n </md-list>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.MODULES\' | translate }}</md-subheader>\n <md-divider></md-divider>\n <md-list layout="row">\n <md-list-item class="md-2-line" ng-repeat="module in vm.modules" flex="33">\n <md-icon md-font-icon="{{module.icon}}" class="md-avatar-icon" ng-class="vm.license[module.name] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n <div class="md-list-item-text">\n <h3 translate="SETTINGS.{{module.name | uppercase}}"></h3>\n <p ng-class="vm.license[module.name] ? \'green-A700-fg\' : \'red-A700-fg\'">{{ \'SETTINGS.\' + (vm.license[module.name] ? \'ENABLED\' : \'DISABLED\') | translate }}</p>\n </div>\n </md-list-item>\n </md-list>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.SESSIONS\' | translate }}</md-subheader>\n <md-divider></md-divider>\n <md-list layout="row">\n <div ng-repeat="session in vm.sessions" flex="33">\n <md-list-item class="md-2-line">\n <md-icon md-font-icon="{{session.icon}}" class="md-avatar-icon" ng-class="vm.license[session.enabled] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n <div class="md-list-item-text">\n <div layout="row" layout="start center">\n <h3 translate="SETTINGS.{{session.name | uppercase}}"></h3>\n <button ng-if="session.restart" ng-click="vm.gotoProcess($event)" class="md-mini" aria-label="restart">\n <md-tooltip>Restart</md-tooltip>\n <md-icon md-font-icon="icon-reload"></md-icon>\n </button>\n </div>\n <p ng-if="vm.license[session.name] && vm.license[session.enabled]" class="green-A700-fg">{{vm.license[session.name]}} {{ \'SETTINGS.\' + session.label | uppercase | translate }}</p>\n <p ng-if="!vm.license[session.name] && vm.license[session.enabled]" class="green-A700-fg">UNLIMITED {{ \'SETTINGS.\' + session.label | uppercase | translate }}</p>\n <p ng-if="!vm.license[session.enabled]" class="red-A700-fg">{{ \'SETTINGS.DISABLED\' | translate }}</p>\n </div>\n </md-list-item>\n\n </div>\n </md-list>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.ADDONS\' | translate }}</md-subheader>\n <md-divider></md-divider>\n <md-list layout="row">\n <md-list-item class="md-2-line" ng-repeat="addon in vm.addons | limitTo:3" flex="33">\n <md-icon md-font-icon="{{addon.icon}}" class="md-avatar-icon" ng-class="vm.license[addon.name] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n <div class="md-list-item-text">\n <h3 translate="SETTINGS.{{addon.name | uppercase}}"></h3>\n <p ng-class="vm.license[addon.name] ? \'green-A700-fg\' : \'red-A700-fg\'">{{ \'SETTINGS.\' + (vm.license[addon.name] ? \'ENABLED\' : \'DISABLED\') | translate }}</p>\n </div>\n </md-list-item>\n </md-list>\n <md-list layout="row">\n <md-list-item class="md-2-line" ng-repeat="addon in vm.addons | limitTo:3:3" flex="33">\n <md-icon md-font-icon="{{addon.icon}}" class="md-avatar-icon" ng-class="vm.license[addon.name] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n <div class="md-list-item-text">\n <h3 translate="SETTINGS.{{addon.name | uppercase}}"></h3>\n <p ng-class="vm.license[addon.name] ? \'green-A700-fg\' : \'red-A700-fg\'">{{ \'SETTINGS.\' + (vm.license[addon.name] ? \'ENABLED\' : \'DISABLED\') | translate }}</p>\n </div>\n </md-list-item>\n </md-list>\n\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.OTHERS\' | translate }}</md-subheader>\n <md-divider></md-divider>\n <md-list layout="row">\n <md-list-item class="md-2-line" ng-repeat="other in vm.others | limitTo:3" flex="33">\n <md-icon md-font-icon="{{other.icon}}" class="md-avatar-icon" ng-class="vm.license[other.name] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n <div class="md-list-item-text">\n <h3 translate="SETTINGS.{{other.name | uppercase}}"></h3>\n <p ng-class="vm.license[other.name] ? \'green-A700-fg\' : \'red-A700-fg\'">{{ \'SETTINGS.\' + (vm.license[other.name] ? \'ENABLED\' : \'DISABLED\') | translate }}</p>\n </div>\n </md-list-item>\n </md-list>\n <md-list layout="row">\n <md-list-item class="md-2-line" ng-repeat="other in vm.others | limitTo:3:3" flex="33">\n <md-icon md-font-icon="{{other.icon}}" class="md-avatar-icon" ng-class="vm.license[other.name] ? \'green-A700-bg\' : \'red-A700-bg\'"></md-icon>\n <div class="md-list-item-text">\n <h3 translate="SETTINGS.{{other.name | uppercase}}"></h3>\n'+" <p ng-class=\"vm.license[other.name] ? 'green-A700-fg' : 'red-A700-fg'\">{{ 'SETTINGS.' + (vm.license[other.name] ? 'ENABLED' : 'DISABLED') | translate }}</p>\n </div>\n </md-list-item>\n </md-list>\n </md-card>\n </div>\n \x3c!-- / LICENSE CARD --\x3e\n\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- NO ADD BUTTON BUTTON --\x3e\n</div>"),e.put("app/main/apps/settings/views/license/request/dialog.html",'<md-dialog class="request-dialog" aria-label="Send Request">\n <form name="requestForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="SETTINGS.REQUEST_LICENSE">Request License</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SETTINGS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.license.name" required>\n <div ng-messages="requestForm.name.$error" ng-show="requestForm.name.$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.NAME_REQUIRED">Address field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.license.email" required>\n <div ng-messages="requestForm.email.$error" ng-show="requestForm.email.$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="SETTINGS.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.PLAN">Plan</label>\n <md-select name="plan" ng-model="vm.license.months" required>\n <md-option ng-value="1"><span translate="SETTINGS.MONTH_TO_MONTH">MONTH TO MONTH</span></md-option>\n <md-option ng-value="12"><span translate="SETTINGS.ANNUALLY">ANNUALLY</span></md-option>\n <md-option ng-value="36"><span translate="SETTINGS.PERPETUAL">PERPETUAL</span></md-option>\n </md-select>\n <div ng-messages="requestForm.plan.$error" ng-show="requestForm.plan.$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PLAN_REQUIRED">Plan field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.STAFF\' | translate }}</md-subheader>\n <div layout="row" layout-align="space-between center">\n <md-input-container class="md-block" flex>\n <label translate="SETTINGS.USERS">Users</label>\n <input type="number" name="users" ng-model="vm.license.users" required>\n <div ng-messages="requestForm.users.$error" ng-show="requestForm.users.$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.USERS_REQUIRED">Users field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" flex>\n <label translate="SETTINGS.AGENTS">Agents</label>\n <input type="number" name="agents" ng-model="vm.license.agents" required>\n <div ng-messages="requestForm.agents.$error" ng-show="requestForm.agents.$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.AGENTS_REQUIRED">Agents field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" flex>\n <label translate="SETTINGS.TELEPHONES">Telephones</label>\n <input type="number" name="telephones" ng-model="vm.license.telephones" required>\n <div ng-messages="requestForm.telephones.$error" ng-show="requestForm.telephones.$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.TELEPHONES_REQUIRED">Telephones field is required</span>\n </div>\n </div>\n </md-input-container>\n </div>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.CHANNELS\' | translate }}</md-subheader>\n <div layout="row" layout-align="space-between center">\n <md-switch ng-model="vm.license[channel.name]" aria-label="{{channel.name}}" ng-repeat="channel in vm.channels | limitTo:3"><span translate="SETTINGS.{{channel.name | uppercase}}"></span></md-switch>\n <md-switch ng-model="vm.license[channel.name]" aria-label="{{channel.name}}" ng-repeat="channel in vm.channels | limitTo:3:3"><span translate="SETTINGS.{{channel.name | uppercase}}"></span></md-switch>\n </div>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.MODULES\' | translate }}</md-subheader>\n <div layout="row" layout-align="space-between center">\n <md-switch ng-model="vm.license[module.name]" aria-label="{{module.name}}" ng-repeat="module in vm.modules"><span translate="SETTINGS.{{module.name | uppercase}}"></span></md-switch>\n </div>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.SESSIONS\' | translate }}</md-subheader>\n <div layout="row">\n <md-input-container ng-repeat="session in vm.sessions" class="md-block" flex="50">\n <label>{{ \'SETTINGS.\' + session.name | uppercase | translate }} ({{ \'SETTINGS.\' + session.label | uppercase | translate }})</label>\n <input type="number" name="{{session.name}}" ng-model="vm.license[session.name]" required>\n <div class="hint"><span>0={{ \'SETTINGS.UNLIMITED_CHANNELS\' | translate }}</span></div>\n <div ng-messages="requestForm[session.name].$error" ng-show="requestForm[session.name].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.CHANNEL_REQUIRED">Mandatory field</span>\n </div>\n </div>\n </md-input-container>\n </div>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.ADDONS\' | translate }}</md-subheader>\n <div layout="row" layout-align="space-between center">\n <md-switch ng-model="vm.license[addon.name]" aria-label="{{module.name}}" ng-repeat="addon in vm.addons"><span translate="SETTINGS.{{addon.name | uppercase}}"></span></md-switch>\n </div>\n\n <md-subheader class="md-no-sticky">{{ \'SETTINGS.OTHERS\' | translate }}</md-subheader>\n <div layout="row" layout-align="space-between center">\n <md-switch ng-model="vm.license[other.name]" aria-label="{{other.name}}" ng-repeat="other in vm.others"><span translate="SETTINGS.{{other.name | uppercase}}"></span></md-switch>\n </div>\n\n <md-input-container class="md-block">\n <label translate="SETTINGS.DESCRIPTION">Description</label>\n <textarea name="description" ng-model="vm.license.description"></textarea>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.sendRequest()" class="send-button md-accent md-raised" ng-disabled="requestForm.$invalid || requestForm.$pristine" aria-label="SEND" translate="SETTINGS.SEND" translate-attr-aria-label="SETTINGS.SEND">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/settings/views/license/update/dialog.html",'<md-dialog class="update-dialog" aria-label="Update License">\n <form name="updateForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title" translate="SETTINGS.UPDATE_LICENSE">Update License</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <md-content layout="row">\n <span class="md-title" translate="SETTINGS.UPDATE_LICENSE_MANUALLY">Do you want to update your license manually?</span>\n </md-content>\n <md-input-container class="md-block">\n <label translate="SETTINGS.ENTER_LICENSE">Enter your license</label>\n <textarea name="key" ng-model="vm.licenseKey" required></textarea>\n <div ng-messages="updateForm.name.$error" ng-show="updateForm.key.$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.LICENSE_REQUIRED">License key field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.updateLicense()" class="send-button md-accent md-raised" ng-disabled="updateForm.$invalid || updateForm.$pristine" aria-label="UPDATE" translate="SETTINGS.UPDATE" translate-attr-aria-label="SETTINGS.UPDATE">\n UPDATE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/settings/views/networks/create/dialog.html",'<md-dialog class="network-dialog" aria-label="New Network">\n <form name="networkForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SETTINGS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.network.type" autofocus required>\n <md-option ng-value="\'localnet\'">LocalNET</md-option>\n <md-option ng-value="\'externip\'">ExternIP</md-option>\n <md-option ng-value="\'turn\'">Turn</md-option>\n <md-option ng-value="\'stun\'">Stun</md-option>\n </md-select>\n <div ng-messages="networkForm[\'type\'].$error" ng-show="networkForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.network.type == \'localnet\'" class="md-block">\n <label translate="SETTINGS.LOCALNETADDRESS">localNetAddress</label>\n <input type="text" name="value" ng-model="vm.network.value" ng-pattern="/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])/(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.LOCALNETADDRESS"></span></div>\n <div ng-messages="networkForm[\'value\'].$error" ng-show="networkForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.LOCALNETADDRESS_REQUIRED">localNetAddress field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SETTINGS.ERRORS.LOCALNETADDRESS_MUST_VALID_PATTERN" translate-values="{ regex: \'/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])/(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/\' }">localNetAddress must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.network.type == \'externip\'" class="md-block">\n <label translate="SETTINGS.ADDRESS">Address</label>\n <input type="text" name="value" ng-model="vm.network.value" ng-pattern="/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.ADDRESS"></span></div>\n <div ng-messages="networkForm[\'value\'].$error" ng-show="networkForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.ADDRESS_REQUIRED">Address field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SETTINGS.ERRORS.ADDRESS_MUST_VALID_PATTERN" translate-values="{ regex: \'/^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/\' }">Address must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.network.type == \'turn\' || vm.network.type == \'stun\'" class="md-block">\n <label translate="SETTINGS.ADDRESS">Address</label>\n <input type="text" name="value" ng-model="vm.network.value" ng-required="true">\n\n <div ng-messages="networkForm[\'value\'].$error" ng-show="networkForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.ADDRESS_REQUIRED">Address field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.network.type == \'turn\'" class="md-block">\n <label translate="SETTINGS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.network.username" ng-required="vm.network.type == \'turn\'">\n\n <div class="hint"><span translate="SETTINGS.HELP.USERNAME"></span></div>\n <div ng-messages="networkForm[\'username\'].$error" ng-show="networkForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.network.type == \'turn\'" class="md-block">\n <label translate="SETTINGS.PASSWORD">Password</label>\n <input type="text" name="password" ng-model="vm.network.password" ng-required="vm.network.type == \'turn\'">\n\n <div class="hint"><span translate="SETTINGS.HELP.PASSWORD"></span></div>\n <div ng-messages="networkForm[\'password\'].$error" ng-show="networkForm[\'password\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="!vm.newNetwork" ng-click="vm.saveNetwork()" class="send-button md-accent md-raised" ng-disabled="networkForm.$invalid || networkForm.$pristine" aria-label="SAVE" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newNetwork" ng-click="vm.addNewNetwork()" class="send-button md-accent md-raised" ng-disabled="networkForm.$invalid" aria-label="ADD" translate="SETTINGS.ADD_NETWORK" translate-attr-aria-label="SETTINGS.ADD_NETWORK">\n ADD NETWORK\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-click="vm.deleteNetwork($event)" aria-label="DELETE" translate translate-attr-aria-label="SETTINGS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="SETTINGS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/settings/views/networks/networks.html",'<div id="networks" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="SETTINGS.NETWORKS">Networks</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="SETTINGS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedNetworks.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedNetworks =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="SETTINGS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-networks-count">\n <span>{{vm.selectedNetworks.length}}</span>\n <span translate="SETTINGS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="SETTINGS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllNetworks()" translate="SETTINGS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectNetworks()" translate="SETTINGS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedNetworks" csv-label="true" filename="networks.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-click="vm.deleteSelectedNetworks($event)" aria-label="delete selected" translate translate-attr-label="SETTINGS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- NETWORK TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedNetworks" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getNetworks">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'SETTINGS.ID\' | translate }}</th>\n <th md-column md-order-by="type">{{ \'SETTINGS.TYPE\' | translate }}</th>\n <th md-column md-order-by="value">{{ \'SETTINGS.ADDRESS\' | translate }}</th>\n <th md-column md-order-by="createdAt">{{ \'SETTINGS.CREATED_AT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.networks.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="SETTINGS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="network" md-select-id="id" ng-repeat="network in vm.networks.rows">\n <td md-cell ng-if="network.userpic"><img class="avatar" alt="{{network.name}}" ng-src="api/users/{{network.id}}/avatar" /></td>\n <td md-cell ng-if="!network.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{network.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditNetwork($event, network)" md-cell class="id ">{{network.id}}</td>\n <td ng-click="vm.createOrEditNetwork($event, network)" md-cell class="type ">{{ vm.arraytype[network.type].option }}</td>\n <td ng-click="vm.createOrEditNetwork($event, network)" md-cell class="value ">{{network.value}}</td>\n <td ng-click="vm.createOrEditNetwork($event, network)" md-cell class="createdAt ">{{network.createdAt | date:\'medium\' }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="SETTINGS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.editdialog(network, $event )" translate="SETTINGS.EDIT_NETWORK">\n Edit Network\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.deleteconfirm(network, $event )" translate="SETTINGS.DELETE_NETWORK">\n Delete Network\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'SETTINGS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SETTINGS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SETTINGS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.networks.count}}" md-on-paginate="vm.getNetworks" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / NETWORK TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD NETWORK BUTTON --\x3e\n <md-button class="md-fab md-accent" id="add-network-button" ng-click="vm.createOrEditNetwork($event)" aria-label="add network" translate translate-attr-aria-label="SETTINGS.ADD_NETWORK">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD NETWORK BUTTON --\x3e\n</div>'),e.put("app/main/apps/settings/views/smtps/create/dialog.html",'<md-dialog class="smtp-dialog" aria-label="New Smtp">\n <form name="smtpForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SETTINGS.ACCOUNTNAME">AccountName</label>\n <input type="text" name="name" ng-model="vm.smtp.name" ng-required="true" autofocus>\n\n <div ng-messages="smtpForm[\'name\'].$error" ng-show="smtpForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.ACCOUNTNAME_REQUIRED">AccountName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.EMAILADDRESS">EmailAddress</label>\n <input type="email" name="email" ng-model="vm.smtp.email" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.EMAILADDRESS"></span></div>\n <div ng-messages="smtpForm[\'email\'].$error" ng-show="smtpForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.EMAILADDRESS_REQUIRED">EmailAddress field is required</span>\n </div>\n <div ng-message="email">\n <span translate="SETTINGS.ERRORS.EMAILADDRESS_MUST_VALID">EmailAddress must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.SMTP_SERVICE">SMTP_Service</label>\n <md-select name="Smtp.service" ng-model="vm.smtp.Smtp.service" required>\n <md-option ng-value="null">Custom</md-option>\n <md-option ng-value="\'gmail\'">Gmail</md-option>\n <md-option ng-value="\'hotmail\'">Hotmail</md-option>\n <md-option ng-value="\'yahoo\'">Yahoo</md-option>\n <md-option ng-value="\'outlook365\'">Outlook365</md-option>\n </md-select>\n <div ng-messages="smtpForm[\'Smtp.service\'].$error" ng-show="smtpForm[\'Smtp.service\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SMTP_SERVICE_REQUIRED">SMTP_Service field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smtp.Smtp.service == null" class="md-block">\n <label translate="SETTINGS.SMTP_HOST">SMTP_Host</label>\n <input type="text" name="Smtp.host" ng-model="vm.smtp.Smtp.host" ng-required="true">\n\n <div ng-messages="smtpForm[\'Smtp.host\'].$error" ng-show="smtpForm[\'Smtp.host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SMTP_HOST_REQUIRED">SMTP_Host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smtp.Smtp.service == null" class="md-block">\n <label translate="SETTINGS.SMTP_PORT">SMTP_Port</label>\n <input type="number" name="Smtp.port" ng-model="vm.smtp.Smtp.port" value="465" ng-required="true">\n\n <div ng-messages="smtpForm[\'Smtp.port\'].$error" ng-show="smtpForm[\'Smtp.port\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SMTP_PORT_REQUIRED">SMTP_Port field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smtp.Smtp.service == null" class="md-block">\n <md-switch ng-model="vm.smtp.Smtp.secure" aria-label="SMTP_Secure"><span translate="SETTINGS.SMTP_SECURE">SMTP_Secure</span></md-switch>\n <div class="hint"><span translate="SETTINGS.HELP.SMTP_SECURE"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.smtp.Smtp.service == null" class="md-block">\n <md-switch ng-model="vm.smtp.Smtp.authentication" aria-label="SMTP_Authentication"><span translate="SETTINGS.SMTP_AUTHENTICATION">SMTP_Authentication</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.smtp.Smtp.authentication == true || vm.smtp.Smtp.service != null" class="md-block">\n <label translate="SETTINGS.SMTP_USERNAME">SMTP_Username</label>\n <input type="text" name="Smtp.user" ng-model="vm.smtp.Smtp.user" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.SMTP_USERNAME"></span></div>\n <div ng-messages="smtpForm[\'Smtp.user\'].$error" ng-show="smtpForm[\'Smtp.user\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SMTP_USERNAME_REQUIRED">SMTP_Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.smtp.Smtp.authentication == true || vm.smtp.Smtp.service != null">\n <label translate="SETTINGS.SMTP_PASSWORD">SMTP_Password</label>\n <input type="password" name="Smtp.pass" ng-model="vm.smtp.Smtp.pass" placeholder="Password" translate translate-attr-placeholder="SETTINGS.PASSWORD" required>\n <div class="hint"><span translate="SETTINGS.HELP.SMTP_PASSWORD"></span></div>\n <div ng-messages="smtpForm[\'Smtp.pass\'].$error" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SETTINGS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="SETTINGS.DESCRIPTION">Description</label>\n <input type="" name="description" ng-model="vm.smtp.description">\n\n <div ng-messages="smtpForm[\'description\'].$error" ng-show="smtpForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newSmtp" ng-click="vm.saveSmtp()" class="send-button md-accent md-raised" ng-disabled="smtpForm.$invalid || smtpForm.$pristine" aria-label="SAVE" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newSmtp" ng-click="vm.addNewSmtp()" class="send-button md-accent md-raised" ng-disabled="smtpForm.$invalid" aria-label="ADD" translate="SETTINGS.ADD_SMTP" translate-attr-aria-label="SETTINGS.ADD_SMTP">\n ADD SMTP\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newSmtp" ng-click="vm.deleteSmtp($event)" aria-label="DELETE" translate translate-attr-aria-label="SETTINGS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="SETTINGS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/settings/views/smtps/smtps.html",'<div id="smtps" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="SETTINGS.SMTP">Smtp</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div>\n <md-button type="submit" ng-click="vm.verifySmtp()" ng-disabled="!vm.smtp.id" class="send-button md-accent md-raised" translate="SETTINGS.VERIFY" translate-attr-aria-label="SETTINGS.VERIFY">\n VERIFY\n </md-button>\n <md-button type="submit" ng-click="vm.saveSmtp()" ng-disabled="(generalForm.$pristine) || (generalForm.$invalid)" class="send-button md-accent md-raised" translate="SETTINGS.SAVE" translate-attr-aria-label="SETTINGS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n <div class="smtp-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SETTINGS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SETTINGS.ACCOUNTNAME">AccountName</label>\n <input type="text" name="name" ng-model="vm.smtp.name" ng-required="true" autofocus>\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.ACCOUNTNAME_REQUIRED">AccountName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.EMAILADDRESS">EmailAddress</label>\n <input type="email" name="email" ng-model="vm.smtp.email" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.EMAILADDRESS"></span></div>\n <div ng-messages="generalForm[\'email\'].$error" ng-show="generalForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.EMAILADDRESS_REQUIRED">EmailAddress field is required</span>\n </div>\n <div ng-message="email">\n <span translate="SETTINGS.ERRORS.EMAILADDRESS_MUST_VALID">EmailAddress must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SETTINGS.SMTP_SERVICE">SMTP_Service</label>\n <md-select name="Smtp.service" ng-model="vm.smtp.Smtp.service" required>\n <md-option ng-value="null">Custom</md-option>\n <md-option ng-value="\'gmail\'">Gmail</md-option>\n <md-option ng-value="\'hotmail\'">Hotmail</md-option>\n <md-option ng-value="\'yahoo\'">Yahoo</md-option>\n <md-option ng-value="\'outlook365\'">Outlook365</md-option>\n </md-select>\n <div ng-messages="generalForm[\'Smtp.service\'].$error" ng-show="generalForm[\'Smtp.service\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SMTP_SERVICE_REQUIRED">SMTP_Service field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smtp.Smtp.service == null" class="md-block">\n <label translate="SETTINGS.SMTP_HOST">SMTP_Host</label>\n <input type="text" name="Smtp.host" ng-model="vm.smtp.Smtp.host" ng-required="true">\n\n <div ng-messages="generalForm[\'Smtp.host\'].$error" ng-show="generalForm[\'Smtp.host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SMTP_HOST_REQUIRED">SMTP_Host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smtp.Smtp.service == null" class="md-block">\n <label translate="SETTINGS.SMTP_PORT">SMTP_Port</label>\n <input type="number" name="Smtp.port" ng-model="vm.smtp.Smtp.port" value="465" ng-required="true">\n\n <div ng-messages="generalForm[\'Smtp.port\'].$error" ng-show="generalForm[\'Smtp.port\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SMTP_PORT_REQUIRED">SMTP_Port field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smtp.Smtp.service == null" class="md-block">\n <md-switch ng-model="vm.smtp.Smtp.secure" aria-label="SMTP_Secure"><span translate="SETTINGS.SMTP_SECURE">SMTP_Secure</span></md-switch>\n <div class="hint"><span translate="SETTINGS.HELP.SMTP_SECURE"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.smtp.Smtp.service == null" class="md-block">\n <md-switch ng-model="vm.smtp.Smtp.authentication" aria-label="SMTP_Authentication"><span translate="SETTINGS.SMTP_AUTHENTICATION">SMTP_Authentication</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.smtp.Smtp.authentication == true || vm.smtp.Smtp.service != null" class="md-block">\n <label translate="SETTINGS.SMTP_USERNAME">SMTP_Username</label>\n <input type="text" name="Smtp.user" ng-model="vm.smtp.Smtp.user" ng-required="true">\n\n <div class="hint"><span translate="SETTINGS.HELP.SMTP_USERNAME"></span></div>\n <div ng-messages="generalForm[\'Smtp.user\'].$error" ng-show="generalForm[\'Smtp.user\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.SMTP_USERNAME_REQUIRED">SMTP_Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.smtp.Smtp.authentication == true || vm.smtp.Smtp.service != null">\n <label translate="SETTINGS.SMTP_PASSWORD">SMTP_Password</label>\n <input type="password" name="Smtp.pass" ng-model="vm.smtp.Smtp.pass" placeholder="Password" translate translate-attr-placeholder="SETTINGS.PASSWORD" required>\n <div class="hint"><span translate="SETTINGS.HELP.SMTP_PASSWORD"></span></div>\n <div ng-messages="generalForm[\'Smtp.pass\'].$error" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SETTINGS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="SETTINGS.DESCRIPTION">Description</label>\n <input type="" name="description" ng-model="vm.smtp.description">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SETTINGS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/settings/views/system/system.html",'<div id="system" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="SETTINGS.SYSTEM">SYSTEM</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" md-border-bottom flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="SETTINGS.GENERAL">GENERAL</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="system-detail-form-container personal_info md-background-bg md-whiteframe-1dp">\n <md-card class="md-whiteframe-1dp padding-20" layout="row" layout-xs="column" layout-wrap>\n <ms-widget flex="50" flex-xs="100">\n \x3c!-- Front --\x3e\n <ms-widget-front class="white-bg">\n <div class="ph-16 pt-16 pb-8 md-accent-bg">\n <div class="h3">OS</div>\n </div>\n\n <div layout="row" layout-align="start center" layout-wrap>\n <div flex="100" flex-gt-md="100">\n <div class="p-16 pb-32">\n <div class="h4">{{vm.system.system.manufacturer}} {{vm.system.system.model}}</div>\n <div class="h4">{{vm.system.cpu.manufacturer}} {{vm.system.cpu.brand}} - {{vm.system.cpu.speed}} GHz - {{vm.system.cpu.cores}} Cores</div>\n <div class="h4">{{vm.system.os.distro}} - {{vm.system.os.release}} - Kernel: {{vm.system.os.kernel}}</div>\n <div class="h4">Node.js: {{vm.system.node}}</div>\n <div class="h4">Host: {{vm.system.os.hostname}} - Uptime: {{vm.system.time.uptime / 60 | number:0}} m</div>\n <div class="h4">TimeZone: {{vm.system.time.timezone}} ({{vm.system.time.timezoneName}})</div>\n </div>\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n <ms-widget flex="25" flex-xs="100">\n \x3c!-- Front --\x3e\n <ms-widget-front class="white-bg">\n <div class="ph-16 pt-16 pb-8 md-accent-bg md-hue-1">\n <div class="h3">CPU</div>\n </div>\n\n <div layout="row" layout-align="start center" layout-wrap>\n <div flex="100" flex-gt-md="100">\n <div class="p-16 pb-32">\n <div class="pb-8" layout="row" layout-align="space-between start">\n <span class="h3" translate="SETTINGS.AVG_LOAD">AVG Load</span>\n <span class="h3 secondary-text font-weight-500">{{vm.system.currentLoad.avgload * 100 | number:0}}%</span>\n </div>\n <md-progress-linear class="red" md-mode="determinate" value="{{vm.system.currentLoad.avgload * 100 | number:0}}"></md-progress-linear>\n </div>\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n <ms-widget flex="25" flex-xs="100">\n \x3c!-- Front --\x3e\n <ms-widget-front class="white-bg">\n <div class="ph-16 pt-16 pb-8 md-accent-bg md-hue-3">\n <div class="h3">MEM</div>\n </div>\n\n <div layout="row" layout-align="start center" layout-wrap>\n <div flex="100" flex-gt-md="100">\n <div class="p-16 pb-32">\n <div class="h4">{{\'SETTINGS.TOTAL\' | translate}}: {{vm.system.mem.total / 1024 / 1024 / 1024 | number:0}} GB</div>\n <div class="h4">{{\'SETTINGS.FREE\' | translate}}: {{vm.system.mem.available / 1024 / 1024 / 1024 | number:0}} GB</div>\n <div class="h4">{{\'SETTINGS.USED\' | translate}}: {{vm.system.mem.active / 1024 / 1024 / 1024 | number:0}} GB</div>\n </div>\n <div class="p-16 pb-32">\n <div class="pb-8" layout="row" layout-align="space-between start">\n <span class="h3" translate="SETTINGS.USED">Used</span>\n <span class="h3 secondary-text font-weight-500">{{(vm.system.mem.active / vm.system.mem.total) * 100 | number : 0}}%</span>\n </div>\n <md-progress-linear class="md-warn" md-mode="determinate" value="{{(vm.system.mem.active / vm.system.mem.total) * 100 | number : 0 }}"></md-progress-linear>\n\n </div>\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n </md-card>\n\n <md-card class="md-whiteframe-1dp padding-20" layout="row" layout-xs="column" layout-wrap>\n <ms-widget ng-repeat="disk in vm.system.fsSize" flex="25" flex-xs="100">\n \x3c!-- Front --\x3e\n <ms-widget-front class="white-bg">\n <div class="ph-16 pt-16 pb-8 md-accent-bg md-hue-3">\n <div class="h3">DISK {{$index + 1}}</div>\n </div>\n\n <div layout="row" layout-align="start center" layout-wrap>\n <div flex="100" flex-gt-md="100">\n <div class="p-16 pb-32">\n <div class="h4">{{\'SETTINGS.FILE_SYSTEM\' | translate}}: {{disk.fs}}</div>\n <div class="h4">{{\'SETTINGS.MOUNT_POINT\' | translate}}: "{{disk.mount}}"</div>\n <div class="h4">{{\'SETTINGS.TOTAL\' | translate}}: {{disk.size / 1024 / 1024 / 1024 | number:0}} GB</div>\n <div class="h4">{{\'SETTINGS.USED\' | translate}}: {{disk.used / 1024 / 1024 / 1024 | number:0}} GB</div>\n </div>\n <div class="p-16 pb-32">\n <div class="pb-8" layout="row" layout-align="space-between start">\n <span class="h3" translate="SETTINGS.USED">Used</span>\n <span class="h4 secondary-text font-weight-500">{{disk.use | number:0}}%</span>\n </div>\n <md-progress-linear class="red" md-mode="determinate" value="{{disk.use | number:0}}"></md-progress-linear>\n </div>\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n </md-card>\n\n <md-card class="md-whiteframe-1dp padding-20" layout="row" layout-xs="column" layout-wrap>\n <ms-widget ng-repeat="net in vm.system.net" flex="25" flex-xs="100">\n \x3c!-- Front --\x3e\n <ms-widget-front class="white-bg">\n <div class="ph-16 pt-16 pb-8 md-accent-bg md-hue-3">\n <div class="h3">NET {{$index + 1}}</div>\n </div>\n\n <div layout="row" layout-align="start center" layout-wrap>\n <div flex="100" flex-gt-md="100">\n <div class="p-16 pb-32">\n <div class="h4">{{\'SETTINGS.INTERFACE\' | translate}}: {{net.iface}}</div>\n <div class="h4">IPv4: {{net.ip4}}</div>\n <div class="h4">IPv6: {{net.ip6}}</div>\n <div class="h4">MAC: {{net.mac}}</div>\n </div>\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n </md-card>\n\n <md-card class="md-whiteframe-1dp padding-20" layout="row">\n <div flex>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="SETTINGS.TOP_N_PROCESSES" translate-values="{value: vm.processLimit}"></span>\n <div flex></div>\n <ms-search-bar on-search="vm.searchTerm1 = query" on-collapse="vm.searchTerm1 = undefined" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column>pid</th>\n <th md-column>{{\'SETTINGS.NAME\' | translate}}</th>\n <th md-column>{{\'SETTINGS.STATE\' | translate}}</th>\n <th md-column>pmem</th>\n <th md-column>pcpu</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-repeat="process in vm.system.processes.list | limitTo: vm.processLimit | filter: vm.searchTerm1 | orderBy:\'-pcpu\'">\n <td md-cell>{{process.pid}}</td>\n <td md-cell>{{process.command}}</td>\n <td md-cell>\n <span class="text-boxed white-fg" ng-class="{\n \'green-600-bg\': process.state == \'running\',\n \'yellow-600-bg\': process.state == \'sleeping\',\n \'red-600-bg\': process.state == \'blocked\'}">{{process.state | uppercase}}</span>\n </td>\n <td md-cell>{{process.pmem}}%</td>\n <td md-cell>{{process.pcpu}}%</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </div>\n </md-card>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="SETTINGS.PROCESSES">PROCESSES</span>\n </md-tab-label>\n\n <md-tab-body>\n <div class="system-detail-form-container general md-background-bg md-whiteframe-1dp">\n <md-card class="md-whiteframe-1dp padding-20" flex>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="SETTINGS.MOTION_PROCESS_MANAGEMENT"></span>\n <div flex></div>\n <ms-search-bar on-search="vm.searchTerm2 = query" on-collapse="vm.searchTerm2 = undefined" debounce="300"></ms-search-bar>\n <md-button ng-click="vm.getProcesses()" class="md-icon-button" aria-label="Reload">\n <md-icon md-font-icon="icon-reload" class="s24"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column>id</th>\n <th md-column>pid</th>\n <th md-column>{{\'SETTINGS.NAME\' | translate}}</th>\n <th md-column>{{\'SETTINGS.STATE\' | translate}}</th>\n <th md-column>MEM</th>\n <th md-column>CPU</th>\n <th md-column width="20px">Actions</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-repeat="process in vm.processes | filter: vm.searchTerm2 | orderBy:\'-monit.cpu\'">\n <td md-cell>{{process.pm_id}}</td>\n <td md-cell>{{process.pid}}</td>\n <td md-cell>{{process.name == \'agi\' ? \'agi (Cally Square IVR)\' : process.name}}</td>\n <td md-cell>\n <span class="text-boxed white-fg" ng-class="{\'green-600-bg\': process.pm2_env.status == \'online\', \'red-600-bg\': process.pm2_env.status == \'stopped\'}">{{process.pm2_env.status | uppercase}}</span>\n </td>\n <td md-cell>{{process.monit.memory / 1024 / 1024 | number:0}} MB</td>\n <td md-cell>{{process.monit.cpu}}%</td>\n <td md-cell>\n <md-button ng-if="process.pm2_env.status !== \'online\'" ng-click="vm.updateProcess($event, process.pm_id, \'online\')" class="md-icon-button" aria-label="Play">\n <md-icon md-font-icon="icon-play" class="s24"></md-icon>\n </md-button>\n <md-button ng-if="process.pm2_env.status === \'online\'" ng-click="vm.updateProcess($event, process.pm_id, \'stopped\')" class="md-icon-button" aria-label="Stop">\n <md-icon md-font-icon="icon-stop" class="s24"></md-icon>\n </md-button>\n </td>\n </tr>\n </tbody>\n <tfoot md-foot>\n <tr md-row>\n <td md-cell></td>\n <td md-cell></td>\n <td md-cell></td>\n <td md-cell></td>\n <td md-cell>{{ (vm.processes | map: \'monit.memory\' | sum) / 1024 / 1024 | number:0 }} MB</td>\n <td md-cell></td>\n <td md-cell></td>\n </tr>\n </tfoot>\n </table>\n </md-table-container>\n </md-card>\n <md-card class="md-whiteframe-1dp padding-20" flex>\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="SETTINGS.USEFUL_COMMANDS"></span>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column width="30%">{{\'SETTINGS.COMMAND\' | translate}}</th>\n <th md-column>{{\'SETTINGS.DESCRIPTION\' | translate}}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr>\n <td md-cell class="no-border">pm2 list</td>\n <td md-cell class="no-border">{{ \'SETTINGS.PM2_LIST\' | translate}}</td>\n </tr>\n <tr>\n <td md-cell class="no-border">pm2 start <id | name></td>\n <td md-cell class="no-border">{{ \'SETTINGS.PM2_START\' | translate}}</td>\n </tr>\n <tr>\n <td md-cell class="no-border">pm2 stop <id | name | all></td>\n <td md-cell class="no-border">{{ \'SETTINGS.PM2_STOP\' | translate}}</td>\n </tr>\n <tr>\n <td md-cell class="no-border">pm2 restart <id | name></td>\n <td md-cell class="no-border">{{ \'SETTINGS.PM2_RESTART\' | translate}}</td>\n </tr>\n <tr>\n <td md-cell class="no-border">pm2 logs [id | name]</td>\n <td md-cell class="no-border">{{ \'SETTINGS.PM2_LOGS\' | translate}}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </md-card>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/settings/views/updates/update/dialog.html",'<md-dialog aria-label="Update">\n <form name="updateForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n </div>\n </md-toolbar>\n\n <div md-background-bg layout="row" layout-align="start start">\n <md-progress-linear md-mode="determinate" value="{{vm.progress}}" class="md-warn"></md-progress-linear>\n </div>\n\n <md-dialog-content ms-scroll>\n <div layout="row" layout-align="center center">\n <div ng-if="vm.updating" layout="column" layout-align="center center">\n <span class="text-center md-title">Grab a quick coffee and</span>\n <span class="text-center md-title">get back here as soon as completed!</span>\n <span class="text-center md-title">{{vm.output}}</span>\n </div>\n <div ng-if="!vm.updating">\n <div ng-if="vm.success" layout="column" layout-align="center center">\n <span class="text-center md-title">Update Completed! Thank you for your time.</span>\n <span class="text-center md-title">In order to complete the update,</span>\n <span class="text-center md-title">please click on reload button</span>\n </div>\n <div ng-if="!vm.success" layout="column" layout-align="center center">\n <span class="text-center md-title">Update Error!</span>\n <span class="text-center md-title">Please contact your administrator!</span>\n <span class="text-center md-title">{{vm.output}}</span>\n </div>\n </div>\n <img src="assets/images/business/users.jpg" alt="" width="128" height="128" />\n </div>\n </md-dialog-content>\n\n <md-dialog-actions ng-if="!vm.updating" layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.reload()" class="send-button md-warm md-raised" aria-label="RELOAD" translate="SETTINGS.RELOAD" translate-attr-aria-label="SETTINGS.RELOAD">\n RELOAD\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/settings/views/updates/updates.html",'<div id="updates" class="page-layout simple fullwidth doc-page">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-cog" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="SETTINGS.UPDATES">UPDATES</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n \x3c!-- UPDATE CARD --\x3e\n <div layout="row" ng-if="!vm.updating">\n <md-card class="md-whiteframe-1dp padding-20" flex>\n <div layout="column" layout-align="center center">\n\n <span class="md-title md-accent-fg padding-20 text-bold" translate="SETTINGS.CURRENT_VERSION">CURRENT VERSION</span>\n\n <span class="md-display-3 padding-20">{{vm.version.current}}</span>\n\n <md-button href="https://wiki.xcallymotion.com/display/XMV/Motion+GUI#MotionGUI-Version{{vm.version.current}}" target="_blank" class="md-accent" title="CHANGELOG" aria-label="CHANGELOG" translate="SETTINGS.CHANGELOG" translate-attr-aria-label="SETTINGS.CHANGELOG">\n CHANGELOG\n </md-button>\n </div>\n </md-card>\n <md-card class="md-whiteframe-20dp padding-20" flex ng-if="vm.version.current != vm.version.latest">\n <div layout="column" layout-align="center center">\n\n <span class="md-title md-warn-fg padding-20 text-bold" translate="SETTINGS.NEW_VERSION">NEW VERSION</span>\n\n <span class="md-display-3 padding-20">{{vm.version.latest}}</span>\n\n <md-button href="https://wiki.xcallymotion.com/display/XMV/Motion+GUI#MotionGUI-Version{{vm.version.latest}}" target="_blank" class="md-accent" title="CHANGELOG" aria-label="CHANGELOG" translate="SETTINGS.CHANGELOG" translate-attr-aria-label="SETTINGS.CHANGELOG">\n CHANGELOG\n </md-button>\n <md-button ng-click="vm.updateConfirm($event)" class="md-raised md-warn" aria-label="CHANGELOG" translate="SETTINGS.UPDATE" translate-attr-aria-label="SETTINGS.UPDATE">UPDATE</md-button>\n </div>\n </md-card>\n <md-card class="md-whiteframe-1dp padding-20" flex ng-if="vm.version.current == vm.version.latest">\n <div layout="column" layout-align="center center">\n\n <span class="md-title md-warn-fg padding-20 text-bold" translate="SETTINGS.REMOTE_VERSION">REMOTE VERSION</span>\n\n <span class="md-subhead padding-20" translate="SETTINGS.NO_NEW_VERSION_AVAILABLE">NO NEW VERSION AVAILABLE</span>\n </div>\n </md-card>\n </div>\n \x3c!-- / UPDATE CARD --\x3e\n\n <div ng-if="vm.updating">\n <md-card class="md-whiteframe-1dp padding-20" flex>\n <div layout="column" layout-align="center center">\n <span class="md-title md-accent-fg padding-20 text-bold" translate="SETTINGS.UPDATING">...</span>\n <md-progress-linear md-mode="determinate" class="md-accent padding-20" value="{{vm.progress}}"></md-progress-linear>\n <span class="md-display-1 padding-5 text-center">Grab a quick coffee and</span>\n <span class="md-display-1 padding-5 text-center">get back here as soon as completed</span>\n <img src="assets/images/business/users.jpg" alt="" width="40%" height="40%" />\n </div>\n </md-card>\n </div>\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- NO ADD BUTTON BUTTON --\x3e\n</div>'),e.put("app/main/apps/sms/views/realtime/queues/view.html",'<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="SMS.QUEUES">Queues</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'SMS.NAME\' | translate }}</th>\n <th md-column>{{ \'SMS.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'SMS.PAUSED\' | translate }}</th>\n <th md-column>{{ \'SMS.WAITING\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.queues.count > 0">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="SMS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="queue" md-select-id="id" ng-repeat="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedIn }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="SMS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="SMS.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" translate="SMS.AGENTSADD_QUEUE">\n Add Agents to queue\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'SMS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SMS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SMS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),e.put("app/main/apps/sms/views/realtime/realtime.html",'<div id="realtime" class="page-layout simple tabbed" layout="column" ng-cloak>\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.QUEUES">Queues</span>\n </md-tab-label>\n </md-tab>\n </md-tabs>\n\n <md-card ui-view></md-card>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/sms/views/smsAccounts/create/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.smsAccount.name" ng-required="true" autofocus ng-disabled="!vm.newSmsAccount">\n\n <div ng-messages="smsAccountForm[\'name\'].$error" ng-show="smsAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.KEY">key</label>\n <input type="text" name="key" ng-model="vm.smsAccount.key" md-maxlength="5" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'key\'].$error" ng-show="smsAccountForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.MOTIONPROXY">MotionProxy</label>\n <input type="url" name="remote" ng-model="vm.smsAccount.remote" md-maxlength="255" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="SMS.HELP.MOTIONPROXY"></span></div>\n <div ng-messages="smsAccountForm[\'remote\'].$error" ng-show="smsAccountForm[\'remote\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.MOTIONPROXY_REQUIRED">MotionProxy field is required</span>\n </div>\n <div ng-message="url">\n <span translate="SMS.ERRORS.MOTIONPROXY_MUST_VALID_URL">MotionProxy must be a valid url http://www.xcally.com</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.MOTIONPROXY_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionProxy must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.LIST">List</label>\n <md-select name="ListId" ng-model="vm.smsAccount.ListId" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="SMS.HELP.LIST"></span></div>\n <div ng-messages="smsAccountForm[\'ListId\'].$error" ng-show="smsAccountForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.smsAccount.type" required>\n <md-option ng-value="\'twilio\'">Twilio</md-option>\n <md-option ng-value="\'skebby\'">Skebby</md-option>\n <md-option ng-value="\'connectel\'">Connectel</md-option>\n <md-option ng-value="\'clicksend\'">ClickSend</md-option>\n <md-option ng-value="\'plivo\'">Plivo</md-option>\n <md-option ng-value="\'infobip\'">Infobip</md-option>\n <md-option ng-value="\'clickatell\'">Clickatell</md-option>\n <md-option ng-value="\'bandwidth\'">Bandwidth</md-option>\n <md-option ng-value="\'csc\'">CSCTelecom</md-option>\n <md-option ng-value="\'intelepeer\'">Intelepeer</md-option>\n </md-select>\n <div ng-messages="smsAccountForm[\'type\'].$error" ng-show="smsAccountForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.smsAccount.phone" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'phone\'].$error" ng-show="smsAccountForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'twilio\'" class="md-block">\n <label translate="SMS.ACCOUNTSID">AccountSID</label>\n <input type="text" name="accountSid" ng-model="vm.smsAccount.accountSid" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'accountSid\'].$error" ng-show="smsAccountForm[\'accountSid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.ACCOUNTSID_REQUIRED">AccountSID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'plivo\'" class="md-block">\n <label translate="SMS.AUTHID">AuthID</label>\n <input type="text" name="authId" ng-model="vm.smsAccount.authId" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'authId\'].$error" ng-show="smsAccountForm[\'authId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AUTHID_REQUIRED">AuthID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'twilio\' || vm.smsAccount.type == \'connectel\' || vm.smsAccount.type == \'plivo\'" class="md-block">\n <label translate="SMS.AUTHTOKEN">AuthToken</label>\n <input type="text" name="authToken" ng-model="vm.smsAccount.authToken" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'authToken\'].$error" ng-show="smsAccountForm[\'authToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AUTHTOKEN_REQUIRED">AuthToken field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'skebby\'" class="md-block">\n <label translate="SMS.METHOD">Method</label>\n <md-select name="smsMethod" ng-model="vm.smsAccount.smsMethod" required>\n <md-option ng-value="\'SI\'">Basic</md-option>\n <md-option ng-value="\'TI\'">Classic</md-option>\n <md-option ng-value="\'GP\'">Classic+</md-option>\n </md-select>\n <div ng-messages="smsAccountForm[\'smsMethod\'].$error" ng-show="smsAccountForm[\'smsMethod\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.METHOD_REQUIRED">Method field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'skebby\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'csc\' || vm.smsAccount.type == \'infobip\' || vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.smsAccount.username" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'username\'].$error" ng-show="smsAccountForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.smsAccount.type == \'skebby\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'infobip\' || vm.smsAccount.type == \'bandwidth\'">\n <label translate="SMS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.smsAccount.password" placeholder="Password" translate translate-attr-placeholder="SMS.PASSWORD" required>\n <div ng-messages="smsAccountForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SMS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container ng-if="vm.smsAccount.type == \'infobip\' || vm.smsAccount.type == \'csc\'" class="md-block">\n <label translate="SMS.BASEURL">BaseURL</label>\n <input type="text" name="baseUrl" ng-model="vm.smsAccount.baseUrl" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'baseUrl\'].$error" ng-show="smsAccountForm[\'baseUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.BASEURL_REQUIRED">BaseURL field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'csc\' || vm.smsAccount.type == \'clickatell\' || vm.smsAccount.type == \'intelepeer\'" class="md-block">\n <label translate="SMS.APIKEY">ApiKey</label>\n <input type="text" name="apiKey" ng-model="vm.smsAccount.apiKey" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'apiKey\'].$error" ng-show="smsAccountForm[\'apiKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.APIKEY_REQUIRED">ApiKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.ACCOUNTID">AccountId</label>\n <input type="text" name="accountId" ng-model="vm.smsAccount.accountId" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'accountId\'].$error" ng-show="smsAccountForm[\'accountId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.ACCOUNTID_REQUIRED">AccountId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.APPLICATIONID">ApplicationID</label>\n <input type="text" name="applicationId" ng-model="vm.smsAccount.applicationId" ng-required="true">\n\n <div ng-messages="smsAccountForm[\'applicationId\'].$error" ng-show="smsAccountForm[\'applicationId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.APPLICATIONID_REQUIRED">ApplicationID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.smsAccount.description">\n\n <div ng-messages="smsAccountForm[\'description\'].$error" ng-show="smsAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newSmsAccount" ng-click="vm.saveSmsAccount()" class="send-button md-accent md-raised" ng-disabled="smsAccountForm.$invalid || smsAccountForm.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newSmsAccount" ng-click="vm.addNewSmsAccount()" class="send-button md-accent md-raised" ng-disabled="smsAccountForm.$invalid" aria-label="ADD" translate="SMS.ADD_SMSACCOUNT" translate-attr-aria-label="SMS.ADD_SMSACCOUNT">\n ADD SMSACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newSmsAccount" ng-click="vm.deleteSmsAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="SMS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="SMS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/agentadd/agentadd.html",'<md-dialog class="smsAccount-dialog" aria-label="smsAccount" ng-init="vm.onInit()">\n <form name="smsAccountForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="SMS.AGENTADD_SMSACCOUNT">Add Agent to smsAccount</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/agent/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.AGENT">Agent</label>\n <md-select name="agent" ng-model="vm.agent.agent" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents" ng-disabled="agent.canSelect === false">{{ agent.name }}</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'agent\'].$error" ng-show="smsAccountFormApp[\'agent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.agent.timeout" min="0" max="2147483" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'timeout\'].$error" ng-show="smsAccountFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/amazonlex/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.ACCESSKEYID">accesskeyid</label>\n <input type="text" name="accesskeyid" ng-model="vm.amazonlex.accesskeyid" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'accesskeyid\'].$error" ng-show="smsAccountFormApp[\'accesskeyid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.ACCESSKEYID_REQUIRED">accesskeyid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.SECRETACCESSKEY">secretaccesskey</label>\n <input type="text" name="secretaccesskey" ng-model="vm.amazonlex.secretaccesskey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'secretaccesskey\'].$error" ng-show="smsAccountFormApp[\'secretaccesskey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.SECRETACCESSKEY_REQUIRED">secretaccesskey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.LEXREGION">lexregion</label>\n <md-select name="lexregion" ng-model="vm.amazonlex.lexregion" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'us-east-1\'">US East (N. Virginia)</md-option>\n <md-option ng-value="\'us-west-2\'">US West (Oregon)</md-option>\n <md-option ng-value="\'eu-west-1\'">EU (Ireland)</md-option>\n <md-option ng-value="\'ap-southeast-2\'">Asia Pacific (Sydney)</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'lexregion\'].$error" ng-show="smsAccountFormApp[\'lexregion\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.LEXREGION_REQUIRED">lexregion field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.BOTNAME">botname</label>\n <input type="text" name="botname" ng-model="vm.amazonlex.botname" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'botname\'].$error" ng-show="smsAccountFormApp[\'botname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.BOTNAME_REQUIRED">botname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.amazonlex.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="SMS.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="smsAccountFormApp[\'welcomemessage\'].$error" ng-show="smsAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="SMS.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/autoreply/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.TIMES">times</label>\n <md-select name="times" ng-model="vm.autoreply.times" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="2">One Time</md-option>\n <md-option ng-value="0">Always</md-option>\n <md-option ng-value="1">First Message</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'times\'].$error" ng-show="smsAccountFormApp[\'times\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TIMES_REQUIRED">times field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.TEXT">Text</label>\n <textarea name="text" ng-model="vm.autoreply.text" required></textarea>\n\n <div ng-messages="smsAccountFormApp[\'text\'].$error" ng-show="smsAccountFormApp[\'text\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="SMS.ERRORS.TEXT_REQUIRED">Text field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/close/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.DISPOSITION">Disposition</label>\n <input type="text" name="disposition" ng-model="vm.close.disposition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'disposition\'].$error" ng-show="smsAccountFormApp[\'disposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/dialogflow/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.dialogflow.key" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'key\'].$error" ng-show="smsAccountFormApp[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.KEY_REQUIRED">Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflow.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean (South Korea)</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pt\'">Portuguese (European)</md-option>\n <md-option ng-value="\'pt-br\'">Portuguese (Nrazilian)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'sv\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-HK\'">Chinese (Hong Kong)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'language\'].$error" ng-show="smsAccountFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.LANGUAGE_REQUIRED">language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflow.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="SMS.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="smsAccountFormApp[\'welcomemessage\'].$error" ng-show="smsAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="SMS.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/dialogflowv2/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.PROJECTID">ProjectID</label>\n <input type="text" name="projectId" ng-model="vm.dialogflowv2.projectId" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'projectId\'].$error" ng-show="smsAccountFormApp[\'projectId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.PROJECTID_REQUIRED">ProjectID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.CLIENTEMAIL">ClientEmail</label>\n <input type="text" name="clientEmail" ng-model="vm.dialogflowv2.clientEmail" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'clientEmail\'].$error" ng-show="smsAccountFormApp[\'clientEmail\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.CLIENTEMAIL_REQUIRED">ClientEmail field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.PRIVATEKEY">PrivateKey</label>\n <textarea name="privateKey" ng-model="vm.dialogflowv2.privateKey" required></textarea>\n\n <div ng-messages="smsAccountFormApp[\'privateKey\'].$error" ng-show="smsAccountFormApp[\'privateKey\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="SMS.ERRORS.PRIVATEKEY_REQUIRED">PrivateKey field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflowv2.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'zh-HK\'">Chinese (Cantonese)</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'en-AU\'">English (Australia)</md-option>\n <md-option ng-value="\'en-CA\'">English (Canada)</md-option>\n <md-option ng-value="\'en-GB\'">English (Great Britain)</md-option>\n <md-option ng-value="\'en-IN\'">English (India)</md-option>\n <md-option ng-value="\'en-US\'">English (US)</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'fr-CA\'">French (Canada)</md-option>\n <md-option ng-value="\'fr-FR\'">\'France (France)</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'hi\'">Hindi</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pl\'">Polish</md-option>\n <md-option ng-value="\'pt-BR\'">Portuguese (Brazil)</md-option>\n <md-option ng-value="\'pt-PT\'">Portuguese (Portugal)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'es-419\'">Spanish (Latin America)</md-option>\n <md-option ng-value="\'es-ES\'">Spanish (Spain)</md-option>\n <md-option ng-value="\'sw\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'tr\'">Turkish</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'language\'].$error" ng-show="smsAccountFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.LANGUAGE_REQUIRED">language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflowv2.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="SMS.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="smsAccountFormApp[\'welcomemessage\'].$error" ng-show="smsAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/gotoif/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.CONDITION">Condition</label>\n <input type="text" name="condition" ng-model="vm.gotoif.condition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'condition\'].$error" ng-show="smsAccountFormApp[\'condition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.TRUEPRIORITY">truepriority</label>\n <input type="number" name="truepriority" ng-model="vm.gotoif.truepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'truepriority\'].$error" ng-show="smsAccountFormApp[\'truepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TRUEPRIORITY_REQUIRED">truepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">truepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.FALSEPRIORITY">falsepriority</label>\n <input type="number" name="falsepriority" ng-model="vm.gotoif.falsepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'falsepriority\'].$error" ng-show="smsAccountFormApp[\'falsepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.FALSEPRIORITY_REQUIRED">falsepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">falsepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/gotop/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.PRIORITY">Priority</label>\n <input type="number" name="priority" ng-model="vm.gotop.priority" min="0" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'priority\'].$error" ng-show="smsAccountFormApp[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Priority must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/interval/dialog.html",'<md-dialog class="interval-dialog" aria-label="New Interval">\n <form name="intervalForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="type" ng-repeat=\'type in vm.types\'>{{ type | ucfirst }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.type === \'list\'">\n <label translate="TOOLS.INTERVALS">Intervals</label>\n <md-select ng-model="vm.interval.IntervalId" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ interval.name }}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!-- TIMERANGE START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.TIME_RANGE">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <div class="md-block" flex>\n <mdp-time-picker name="timeRangeFrom" mdp-placeholder="FROM" ng-model="vm.timeRangeFrom" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <div ng-messages="intervalForm.timeRangeFrom.$error" ng-show="intervalForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_FROM_INVALID">Time Range From field is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n <div class="md-block" flex ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_INVALID">Time Range To field is invalid</span>\n </div>\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </div>\n \x3c!-- TIMERANGE END --\x3e\n\n \x3c!-- DAYSOFWEEK START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.WEEK_DAYS">Week Days</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.dayOfWeekFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex class="md-block" ng-if="vm.dayOfWeekFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="dayOfWeekTo" ng-model="vm.dayOfWeekTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- DAYSOFWEEK END --\x3e\n\n \x3c!-- MONTHDAY START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTH_DAYS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthDayFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthDayFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthDayTo" ng-model="vm.monthDayTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTHDAY END --\x3e\n\n \x3c!-- MONTH START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTHS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthTo" ng-model="vm.monthTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTH END --\x3e\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="!vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n ADD INTERVAL\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/noop/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.noop.value" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'value\'].$error" ng-show="smsAccountFormApp[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/queue/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.queue.queue" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues" ng-disabled="queue.canSelect === false">{{ queue.name }}</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'queue\'].$error" ng-show="smsAccountFormApp[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'timeout\'].$error" ng-show="smsAccountFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/system/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.COMMAND">Command</label>\n <input type="text" name="command" ng-model="vm.system.command" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="smsAccountFormApp[\'command\'].$error" ng-show="smsAccountFormApp[\'command\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.COMMAND_REQUIRED">Command field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.system.variable" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables" ng-disabled="variable.canSelect === false">{{ variable.name }}</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'variable\'].$error" ng-show="smsAccountFormApp[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.VARIABLE_REQUIRED">Variable field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/apps/tag/dialog.html",'<md-dialog class="smsAccount-dialog" aria-label="New SmsAccount">\n <form name="smsAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.TAG">Tag</label>\n <md-select name="tag" ng-model="vm.tag.tag" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags" ng-disabled="tag.canSelect === false">{{ tag.name }}</md-option>\n </md-select>\n <div ng-messages="smsAccountFormApp[\'tag\'].$error" ng-show="smsAccountFormApp[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TAG_REQUIRED">Tag field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveSmsAccountApp()" class="send-button md-accent md-raised" ng-disabled="smsAccountFormApp.$invalid || smsAccountFormApp.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/smsCannedAnswers/dialog.html",'<md-dialog class="smsCannedAnswer-dialog" aria-label="New SmsCannedAnswer">\n <form name="smsCannedAnswerForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.KEY">Key</label>\n <input type="" name="key" ng-model="vm.smsCannedAnswer.key" md-maxlength="255" ng-required="true" autofocus>\n\n <div ng-messages="smsCannedAnswerForm[\'key\'].$error" ng-show="smsCannedAnswerForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.KEY_REQUIRED">Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.VALUE">Value</label>\n <textarea name="value" ng-model="vm.smsCannedAnswer.value" required></textarea>\n\n <div ng-messages="smsCannedAnswerForm[\'value\'].$error" ng-show="smsCannedAnswerForm[\'value\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="SMS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.smsCannedAnswer.description">\n\n <div ng-messages="smsCannedAnswerForm[\'description\'].$error" ng-show="smsCannedAnswerForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newSmsCannedAnswer" ng-click="vm.saveSmsCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="smsCannedAnswerForm.$invalid || smsCannedAnswerForm.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newSmsCannedAnswer" ng-click="vm.addNewSmsCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="smsCannedAnswerForm.$invalid" aria-label="ADD" translate="SMS.ADD_SMSCANNEDANSWER" translate-attr-aria-label="SMS.ADD_SMSCANNEDANSWER">\n ADD SMSCANNEDANSWER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newSmsCannedAnswer" ng-click="vm.deleteSmsCannedAnswer($event)" aria-label="DELETE" translate translate-attr-aria-label="SMS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="SMS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsAccounts/edit/view.html",'<div id="sms-smsAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-smsAccounts-button md-icon-button" aria-label="Go to smsAccounts" ng-click="vm.gotoSmsAccounts()" translate translate-attr-aria-label="SMS.GO_TO_SMSACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="smsAccount-image" hide-xs>\n <img ng-src="assets/images/business/smsAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.smsAccount.id}}\n <span ng-if="vm.smsAccount.name">{{vm.smsAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="SMS.CREATED_AT"></span> <span>{{vm.smsAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.smsAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="SMS.AGENTADD_SMSACCOUNT"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveSmsAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (proxyForm.$invalid) || (dispositionForm.$invalid) || (smsDispositionsForm.$invalid) || (smsCannedAnswersForm.$invalid) || (actionsForm.$invalid) || (interactionsForm.$invalid)" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="smsAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SMS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SMS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.smsAccount.name" ng-required="true" autofocus disabled>\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.KEY">key</label>\n <input type="text" name="key" ng-model="vm.smsAccount.key" md-maxlength="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'key\'].$error" ng-show="generalForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.LIST">List</label>\n <md-select name="ListId" ng-model="vm.smsAccount.ListId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="SMS.HELP.LIST"></span></div>\n <div ng-messages="generalForm[\'ListId\'].$error" ng-show="generalForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.smsAccount.type" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'twilio\'">Twilio</md-option>\n <md-option ng-value="\'skebby\'">Skebby</md-option>\n <md-option ng-value="\'connectel\'">Connectel</md-option>\n <md-option ng-value="\'clicksend\'">ClickSend</md-option>\n <md-option ng-value="\'plivo\'">Plivo</md-option>\n <md-option ng-value="\'infobip\'">Infobip</md-option>\n <md-option ng-value="\'clickatell\'">Clickatell</md-option>\n <md-option ng-value="\'bandwidth\'">Bandwidth</md-option>\n <md-option ng-value="\'csc\'">CSCTelecom</md-option>\n <md-option ng-value="\'intelepeer\'">Intelepeer</md-option>\n </md-select>\n <div ng-messages="generalForm[\'type\'].$error" ng-show="generalForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.smsAccount.phone" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'phone\'].$error" ng-show="generalForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'twilio\'" class="md-block">\n <label translate="SMS.ACCOUNTSID">AccountSID</label>\n <input type="text" name="accountSid" ng-model="vm.smsAccount.accountSid" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'accountSid\'].$error" ng-show="generalForm[\'accountSid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.ACCOUNTSID_REQUIRED">AccountSID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'plivo\'" class="md-block">\n <label translate="SMS.AUTHID">AuthID</label>\n <input type="text" name="authId" ng-model="vm.smsAccount.authId" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'authId\'].$error" ng-show="generalForm[\'authId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AUTHID_REQUIRED">AuthID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'twilio\' || vm.smsAccount.type == \'connectel\' || vm.smsAccount.type == \'plivo\'" class="md-block">\n <label translate="SMS.AUTHTOKEN">AuthToken</label>\n <input type="text" name="authToken" ng-model="vm.smsAccount.authToken" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'authToken\'].$error" ng-show="generalForm[\'authToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AUTHTOKEN_REQUIRED">AuthToken field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'skebby\'" class="md-block">\n <label translate="SMS.METHOD">Method</label>\n <md-select name="smsMethod" ng-model="vm.smsAccount.smsMethod" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'SI\'">Basic</md-option>\n <md-option ng-value="\'TI\'">Classic</md-option>\n <md-option ng-value="\'GP\'">Classic+</md-option>\n </md-select>\n <div ng-messages="generalForm[\'smsMethod\'].$error" ng-show="generalForm[\'smsMethod\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.METHOD_REQUIRED">Method field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'skebby\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'csc\' || vm.smsAccount.type == \'infobip\' || vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.USERNAME">Username</label>\n <input type="text" name="username" ng-model="vm.smsAccount.username" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'username\'].$error" ng-show="generalForm[\'username\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.smsAccount.type == \'skebby\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'infobip\' || vm.smsAccount.type == \'bandwidth\'">\n <label translate="SMS.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.smsAccount.password" placeholder="Password" translate translate-attr-placeholder="SMS.PASSWORD" required>\n <div ng-messages="generalForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SMS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container ng-if="vm.smsAccount.type == \'infobip\' || vm.smsAccount.type == \'csc\'" class="md-block">\n <label translate="SMS.BASEURL">BaseURL</label>\n <input type="text" name="baseUrl" ng-model="vm.smsAccount.baseUrl" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'baseUrl\'].$error" ng-show="generalForm[\'baseUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.BASEURL_REQUIRED">BaseURL field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'csc\' || vm.smsAccount.type == \'clickatell\' || vm.smsAccount.type == \'intelepeer\'" class="md-block">\n <label translate="SMS.APIKEY">ApiKey</label>\n <input type="text" name="apiKey" ng-model="vm.smsAccount.apiKey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'apiKey\'].$error" ng-show="generalForm[\'apiKey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.APIKEY_REQUIRED">ApiKey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.ACCOUNTID">AccountId</label>\n <input type="text" name="accountId" ng-model="vm.smsAccount.accountId" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'accountId\'].$error" ng-show="generalForm[\'accountId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.ACCOUNTID_REQUIRED">AccountId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.APPLICATIONID">ApplicationID</label>\n <input type="text" name="applicationId" ng-model="vm.smsAccount.applicationId" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'applicationId\'].$error" ng-show="generalForm[\'applicationId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.APPLICATIONID_REQUIRED">ApplicationID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.type == \'connectel\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'plivo\'|| vm.smsAccount.type == \'csc\'|| vm.smsAccount.type == \'infobip\' || vm.smsAccount.type == \'intelepeer\'" class="md-block">\n <label translate="SMS.SENDERSTRING">SenderString</label>\n <input type="text" name="senderString" ng-model="vm.smsAccount.senderString" md-maxlength="11" ng-pattern="/^[A-Za-z0-9\\.\\s]*$/i" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'senderString\'].$error" ng-show="generalForm[\'senderString\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.SENDERSTRING_REQUIRED">SenderString field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SMS.ERRORS.SENDERSTRING_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\s]*$/i\' }">SenderString must be valid pattern </span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.SENDERSTRING_MAX_LENGTH" translate-values=\'{max: 11}\'>SenderString must have a maximum length equal to 11</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.smsAccount.type == \'skebby\' && vm.smsAccount.smsMethod == \'GP\') || vm.smsAccount.type == \'connectel\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'csc\' || vm.smsAccount.type == \'clickatell\'" class="md-block">\n <md-switch ng-model="vm.smsAccount.deliveryReport" aria-label="deliveryReport" ng-disabled="!vm.crudPermissions.canEdit"><span translate="SMS.DELIVERYREPORT">deliveryReport</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.WAITFORTHEASSIGNEDAGENT">WaitForTheAssignedAgent</label>\n <input type="number" name="waitForTheAssignedAgent" ng-model="vm.smsAccount.waitForTheAssignedAgent" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'waitForTheAssignedAgent\'].$error" ng-show="generalForm[\'waitForTheAssignedAgent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.WAITFORTHEASSIGNEDAGENT_REQUIRED">WaitForTheAssignedAgent field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.smsAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.RECEIVEURL">receiveUrl</label>\n <div layout="row" layout-align="center center">\n <button class="md-button md-fab md-mini md-primary" ngclipboard data-clipboard-target="#copytoclipboard-receiveUrl" ngclipboard-success="vm.alert({title: \'copied to clipboard\', msg: e.text });" ngclipboard-error="vm.alert({title: \'error\', msg: \'copy to clipboard failed\'});">\n <md-icon md-font-icon="icon-clipboard-text"></md-icon>\n </button>\n <input class="md-input" type="text" id="copytoclipboard-receiveUrl" name="receiveUrl" ng-value="vm.smsAccount.remote + \'/api/sms/accounts/\' + vm.smsAccount.id + \'/notify?token=\' + vm.smsAccount.token" ng-readonly="true">\n </div>\n <div class="hint"><span translate="SMS.HELP.RECEIVEURL"></span></div>\n </md-input-container>\n <md-input-container ng-if="( ((vm.smsAccount.type == \'skebby\' && vm.smsAccount.smsMethod == \'GP\') || vm.smsAccount.type == \'connectel\' || vm.smsAccount.type == \'clicksend\' || vm.smsAccount.type == \'csc\' || vm.smsAccount.type == \'clickatell\') && vm.smsAccount.deliveryReport) || vm.smsAccount.type == \'bandwidth\'" class="md-block">\n <label translate="SMS.DELIVERYREPORTURL">deliveryReportUrl</label>\n <div layout="row" layout-align="center center">\n <button class="md-button md-fab md-mini md-primary" ngclipboard data-clipboard-target="#copytoclipboard-deliveryReportUrl" ngclipboard-success="vm.alert({title: \'copied to clipboard\', msg: e.text });" ngclipboard-error="vm.alert({title: \'error\', msg: \'copy to clipboard failed\'});">\n <md-icon md-font-icon="icon-clipboard-text"></md-icon>\n </button>\n <input class="md-input" type="text" id="copytoclipboard-deliveryReportUrl" name="deliveryReportUrl" ng-value="vm.smsAccount.remote + \'/api/sms/accounts/\' + vm.smsAccount.id + \'/status?token=\' + vm.smsAccount.token + (vm.smsAccount.type == \'csc\' ? \'&message-id={message-id}&state={state}\' : \'\')" ng-readonly="true">\n </div>\n <div class="hint"><span translate="SMS.HELP.DELIVERYREPORTURL"></span></div>\n </md-input-container>\n\n </form>\n </div>\n <div class="smsAccount-detail-form-container notification md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SMS.NOTIFICATION">NOTIFICATION</div>\n </div>\n <form name="notificationForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.smsAccount.notificationSound" aria-label="notificationSound" ng-disabled="!vm.crudPermissions.canEdit"><span translate="SMS.NOTIFICATIONSOUND">notificationSound</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.smsAccount.notificationShake" aria-label="notificationShake" ng-disabled="!vm.crudPermissions.canEdit"><span translate="SMS.NOTIFICATIONSHAKE">notificationShake</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="SMS.NOTIFICATIONTEMPLATE">notificationTemplate</label>\n <textarea aria-label="notificationTemplate notificationTemplate" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.smsAccount.notificationTemplate"></textarea>\n </div>\n\n </form>\n </div>\n <div class="smsAccount-detail-form-container transfer md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SMS.TRANSFER">TRANSFER</div>\n </div>\n <form name="transferForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.smsAccount.queueTransfer" aria-label="queueTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="SMS.QUEUETRANSFER">queueTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.queueTransfer == true" class="md-block">\n <label translate="SMS.QUEUETRANSFERTIMEOUT">queueTransferTimeout</label>\n <input type="number" name="queueTransferTimeout" ng-model="vm.smsAccount.queueTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'queueTransferTimeout\'].$error" ng-show="transferForm[\'queueTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.QUEUETRANSFERTIMEOUT_REQUIRED">queueTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.smsAccount.agentTransfer" aria-label="agentTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="SMS.AGENTTRANSFER">agentTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.agentTransfer == true" class="md-block">\n <label translate="SMS.AGENTTRANSFERTIMEOUT">agentTransferTimeout</label>\n <input type="number" name="agentTransferTimeout" ng-model="vm.smsAccount.agentTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'agentTransferTimeout\'].$error" ng-show="transferForm[\'agentTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AGENTTRANSFERTIMEOUT_REQUIRED">agentTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="smsAccount-detail-form-container proxy md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SMS.PROXY">PROXY</div>\n </div>\n <form name="proxyForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SMS.TOKEN">token</label>\n <input type="text" name="token" ng-model="vm.smsAccount.token" autofocus disabled>\n\n <div ng-messages="proxyForm[\'token\'].$error" ng-show="proxyForm[\'token\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.TOKEN_REQUIRED">token field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.MOTIONPROXY">MotionProxy</label>\n <input type="url" name="remote" ng-model="vm.smsAccount.remote" md-maxlength="255" value="LOCALIP" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="SMS.HELP.MOTIONPROXY"></span></div>\n <div ng-messages="proxyForm[\'remote\'].$error" ng-show="proxyForm[\'remote\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.MOTIONPROXY_REQUIRED">MotionProxy field is required</span>\n </div>\n <div ng-message="url">\n <span translate="SMS.ERRORS.MOTIONPROXY_MUST_VALID_URL">MotionProxy must be a valid url http://www.xcally.com</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="SMS.ERRORS.MOTIONPROXY_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionProxy must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="smsAccount-detail-form-container disposition md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SMS.DISPOSITION">DISPOSITION</div>\n </div>\n <form name="dispositionForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.smsAccount.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="SMS.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.smsAccount.mandatoryDisposition" class="md-block">\n <label translate="SMS.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.smsAccount.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="SMS.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="dispositionForm[\'mandatoryDispositionPauseId\'].$error" ng-show="dispositionForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.DISPOSITIONS">DISPOSITIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div ng-controller="SmsAccountDispositionsController as vm_dc" ng-init="vm_dc.init(vm.smsAccount, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="smsAccount-detail-form-container smsdispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedSmsAccountDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="SMS.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add sms dispositions" translate translate-attr-label="SMS.ADD_DISPOSITION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" csv-label="true" filename="smsAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="SMS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_dc.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'SMS.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'SMS.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'SMS.DESCRIPTION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="SMS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="SMS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(disposition, $event)" translate="TOOLS.DELETE_DISPOSITION">\n Delete Disposition\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'SMS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SMS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SMS.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.CANNEDANSWERS">CANNEDANSWERS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="smsAccount-detail-form-container smscannedanswers md-background-bg md-whiteframe-1dp">\n <div ng-controller="SmsAccountSmsCannedAnswersController as vm_dc" ng-init="vm_dc.init(vm.smsAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedSmsAccountSmsCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="SMS.SMSCANNEDANSWERS">SmsCannedAnswers</span>\n <ms-search-bar on-search="vm_dc.getSmsAccountSmsCannedAnswers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event)" aria-label="add smsCannedAnswer" translate translate-attr-label="SMS.ADD_SMSCANNEDANSWER">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedSmsAccountSmsCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedSmsAccountSmsCannedAnswers.length}} {{vm_dc.selectedSmsAccountSmsCannedAnswers.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedSmsAccountSmsCannedAnswers" csv-label="true" filename="smsAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedSmsAccountSmsCannedAnswers($event)" aria-label="delete selected" translate translate-attr-label="SMS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedSmsAccountSmsCannedAnswers" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getSmsAccountSmsCannedAnswers">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'SMS.ID\' | translate }}\n </th>\n <th md-column md-order-by="key">\n {{ \'SMS.KEY\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'SMS.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="description">\n {{ \'SMS.DESCRIPTION\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'SMS.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="smsCannedAnswer" md-select-id="id" ng-repeat="smsCannedAnswer in vm_dc.smsAccountSmsCannedAnswers.rows">\n <td ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" md-cell>\n {{smsCannedAnswer.id}}\n </td>\n <td ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" md-cell>\n {{smsCannedAnswer.key}}\n </td>\n <td ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" md-cell>\n {{smsCannedAnswer.value}}\n </td>\n <td ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" md-cell>\n {{smsCannedAnswer.description}}\n </td>\n <td ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" md-cell>\n {{ smsCannedAnswer.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="SMS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditSmsAccountSmsCannedAnswer($event, smsCannedAnswer)" translate="SMS.EDIT_SMSCANNEDANSWER">\n Edit SmsCannedAnswer\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(smsCannedAnswer, $event)" translate="SMS.DELETE_SMSCANNEDANSWER">\n Delete SmsCannedAnswer\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.smsAccountSmsCannedAnswers.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="SMS.NO_SMSCANNEDANSWER_AVAILABLE">No smscannedanswer available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'SMS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SMS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SMS.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.smsAccountSmsCannedAnswers.count}}" md-on-paginate="vm_dc.getSmsAccountSmsCannedAnswers" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="smsAccount-detail-form-container actions md-background-bg md-whiteframe-1dp">\n <div ng-controller="SmsAccountActionsController as vm_ac" ng-init="vm_ac.init(vm.smsAccount, vm.crudPermissions)" class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- SIDENAV --\x3e\n <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20" ng-if="vm_ac.crudPermissions.canEdit">\n \x3c!-- SIDENAV CONTENT --\x3e\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\n Applications List\n </span>\n </md-subheader>\n </md-list>\n <md-divider></md-divider>\n <md-list ng-sortable="vm_ac.list">\n <md-list-item class="handle" ng-repeat="a in vm_ac.apps">\n <md-icon md-font-icon="{{a.icon}}" class="s16"></md-icon>\n <p class="text-truncate" translate="SMS.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias || a.appType}}</p>\n </md-list-item>\n </md-list>\n \x3c!-- / SIDENAV CONTENT --\x3e\n </div>\n \x3c!-- / SIDENAV --\x3e\n <div flex></div>\n \x3c!-- MAIN --\x3e\n <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="{{vm_ac.crudPermissions.canEdit ? 75 : 100}}">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_ac.selectedSmsAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Drag & Drop Routing</span>\n <div flex></div>\n <ms-search-bar on-search="vm_ac.query.filter = query" on-collapse="vm_ac.query.filter = undefined" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_ac.selectedSmsAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_ac.selectedSmsAccountApps.length}} {{vm_ac.selectedSmsAccountApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_ac.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_ac.deleteSelectedSmsAccountApps($event)" aria-label="delete selected" translate translate-attr-label="SMS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n \x3c!-- QUEUES TABLE --\x3e\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_ac.selectedSmsAccountApps">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column width="10px">\n <span translate="VOICE.PRIORITY">Priority</span>\n </th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </th>\n <th md-column width="10px"></th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body ng-sortable="vm_ac.applications">\n <tr md-row md-select="app" md-select-id="id" ng-repeat="app in vm_ac.smsAccountApps.rows | filter: vm_ac.query.filter">\n <td md-cell>\n <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n </td>\n <td md-cell ng-click="vm_ac.editSmsAccountApp($event, $index)"><span>{{app.priority}}</span></td>\n <td md-cell ng-click="vm_ac.editSmsAccountApp($event, $index)">{{app.app.toLowerCase() === \'agi\' ? \'Cally-Square\' : app.app | ucfirst}}<span ng-if="app.appType.toLowerCase() === \'custom\'">*</span></td>\n <td md-cell ng-click="vm_ac.editSmsAccountApp($event, $index)"><span class="text-truncate actionAppData">{{app.appdata}}</span></td>\n <td md-cell ng-click="vm_ac.editInterval($event, $index)">{{app.IntervalId ? \'From List\' : app.interval}}</td>\n <td md-cell>\n <md-button ng-click="vm_ac.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n <md-icon md-font-icon="icon-timer"></md-icon>\n <md-tooltip>\n {{app.IntervalId ? \'From List\' : (app.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n </md-tooltip>\n </md-button>\n </td>\n <td md-cell class="actions" ng-if="!vm_ac.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editSmsAccountApp($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canDelete">\n <md-button ng-click="vm_ac.deleteConfirm(app, $index, $event)" translate="VOICE.DELETE_APP">\n Delete App\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-hide="vm_ac.smsAccountApps.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n \x3c!-- / QUEUES TABLE --\x3e\n\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.INTERACTIONS">INTERACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="smsAccount-detail-form-container interactions md-background-bg md-whiteframe-1dp">\n <div ng-controller="SmsAccountInteractionsController as vm_dc" ng-init="vm_dc.init(vm.smsAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedSmsAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="SMS.INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm_dc.getSmsAccountInteractions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_dc.quickFilters" query="vm_dc.query" search="vm_dc.getSmsAccountInteractions()"></ms-quick-filter>\n <div layout="column">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini md-accent-bg\': vm_dc.query.search }" aria-label="Filter" translate translate-attr-aria-label="DASHBOARDS.FILTER" ng-click="vm_dc.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm_dc.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'blink\': vm_dc.query.search }"></md-icon>\n </md-button>\n </div>\n <md-button class="md-icon-button" ng-click="vm_dc.getSmsAccountInteractions()" aria-label="refresh Interactions" translate translate-attr-label="SMS.REFRESH_INTERACTIONS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedSmsAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedSmsAccountInteractions.length}} {{vm_dc.selectedSmsAccountInteractions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedSmsAccountInteractions" csv-label="true" filename="smsAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedSmsAccountInteractions($event)" aria-label="delete selected" translate translate-attr-label="SMS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedSmsAccountInteractions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getSmsAccountInteractions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'SMS.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column md-order-by="contactName">\n {{ \'SMS.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'SMS.STARTEDAT\' | translate }}\n </th>\n <th md-column md-order-by="lastMsgAt">\n {{ \'SMS.LASTMESSAGE\' | translate }}\n </th>\n <th md-column md-order-by="closed">\n {{ \'SMS.STATUS\' | translate }}\n </th>\n <th md-column>\n {{ \'SMS.AGENT\' | translate }}\n </th>\n <th md-column md-order-by="tag">\n {{ \'SMS.TAGS\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="interaction" md-select-id="id" ng-repeat="interaction in vm_dc.smsAccountInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td md-cell>\n {{interaction.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="user in interaction.Users">{{ user.fullname | translate }}\n <span ng-if="!$last">, </span>\n </span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg md-primary-bg" layout-margin>{{ interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.attach">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'margin-bottom-0\' : interaction.contactInfo}" layout-margin>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text margin-top-0" layout-margin>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td md-cell>\n {{ interaction.createdAt | formatdate }}\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}"></md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="text-truncate">{{ interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n </td>\n <td md-cell>\n <span ng-if="interaction.closed === 0" class="green-fg">\n {{ \'SMS.OPENED\' | translate }}\n <span ng-if="interaction.substatus">\n - {{ interaction.substatus }}\n </span>\n </span>\n <span ng-if="interaction.closed === 1" class="red-fg">\n {{ \'SMS.CLOSED\' | translate }}\n <span ng-if="interaction.disposition">\n - {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}\n </span>\n <md-tooltip class="multiline">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n </span>\n </td>\n\n <td md-cell>\n {{interaction.Owner.name}}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="SMS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm_dc.spysmsInteraction($event, interaction)" translate="SMS.SPYINTERACTION">\n Spy Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || vm_dc.userProfile.downloadOmnichannelInteractions">\n <md-button class="md-primary" ng-click="vm_dc.smsInteractionDownload(interaction, $event)" translate="SMS.DOWNLOAD_INTERACTION">\n Download\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(interaction, $event)" translate="SMS.DELETE_INTERACTION">\n Delete Interaction\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.smsAccountInteractions.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="SMS.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'SMS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SMS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SMS.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.smsAccountInteractions.count}}" md-on-paginate="vm_dc.getSmsAccountInteractions" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/sms/views/smsAccounts/smsAccounts.html",'<div id="smsAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-message-text" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="SMS.SMSACCOUNTS">SmsAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="SMS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedSmsAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedSmsAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="SMS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-smsAccounts-count">\n <span>{{vm.selectedSmsAccounts.length}}</span>\n <span translate="SMS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="SMS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllSmsAccounts()" translate="SMS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectSmsAccounts()" translate="SMS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedSmsAccounts" csv-label="true" filename="smsAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedSmsAccounts($event)" aria-label="delete selected" translate translate-attr-label="SMS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- SMSACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedSmsAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getSmsAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'SMS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'SMS.NAME\' | translate }}</th>\n <th md-column md-order-by="key">{{ \'SMS.KEY\' | translate }}</th>\n <th md-column md-order-by="ListId">{{ \'SMS.LIST\' | translate }}</th>\n <th md-column md-order-by="type">{{ \'SMS.TYPE\' | translate }}</th>\n <th md-column md-order-by="phone">{{ \'SMS.PHONE\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'SMS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.smsAccounts.rows.length">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span translate="SMS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="smsAccount" md-select-id="id" ng-repeat="smsAccount in vm.smsAccounts.rows">\n <td md-cell ng-if="smsAccount.userpic"><img class="avatar" alt="{{smsAccount.name}}" ng-src="api/users/{{smsAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!smsAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{smsAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="id ">{{smsAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="name ">{{smsAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="key ">{{smsAccount.key}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="ListId ">{{ (vm.lists | filter : {\'id\':smsAccount.ListId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="type ">{{ vm.arraytype[smsAccount.type].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="phone ">{{smsAccount.phone}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsAccount, ev) : vm.createOrEditSmsAccount($event, smsAccount)" md-cell class="description ">{{smsAccount.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="SMS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(smsAccount, $event )" translate="SMS.EDIT_SMSACCOUNT">\n Edit SmsAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.interactionsgoto(smsAccount, $event )" translate="SMS.INTERACTIONS_SMSACCOUNT">\n Interactions SmsAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(smsAccount, $event )" translate="SMS.AGENTADD_SMSACCOUNT">\n AgentAdd SmsAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(smsAccount, $event )" translate="SMS.DELETE_SMSACCOUNT">\n Delete SmsAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'SMS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SMS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SMS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.smsAccounts.count}}" md-on-paginate="vm.getSmsAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / SMSACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD SMSACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-smsAccount-button" ng-click="vm.createOrEditSmsAccount($event)" aria-label="add smsAccount" translate translate-attr-aria-label="SMS.ADD_SMSACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD SMSACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/sms/views/smsQueues/create/dialog.html",'<md-dialog class="smsQueue-dialog" aria-label="New SmsQueue">\n <form name="smsQueueForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="SMS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.smsQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newSmsQueue">\n\n <div class="hint"><span translate="SMS.HELP.NAME"></span></div>\n <div ng-messages="smsQueueForm[\'name\'].$error" ng-show="smsQueueForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SMS.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.smsQueue.strategy" required>\n <md-option ng-value="\'beepall\'">Beepall</md-option>\n <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n </md-select>\n <div ng-messages="smsQueueForm[\'strategy\'].$error" ng-show="smsQueueForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.smsQueue.timeout" min="1" max="2147483" value="10" ng-required="true">\n\n <div ng-messages="smsQueueForm[\'timeout\'].$error" ng-show="smsQueueForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.smsQueue.description">\n\n <div ng-messages="smsQueueForm[\'description\'].$error" ng-show="smsQueueForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newSmsQueue" ng-click="vm.saveSmsQueue()" class="send-button md-accent md-raised" ng-disabled="smsQueueForm.$invalid || smsQueueForm.$pristine" aria-label="SAVE" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newSmsQueue" ng-click="vm.addNewSmsQueue()" class="send-button md-accent md-raised" ng-disabled="smsQueueForm.$invalid" aria-label="ADD" translate="SMS.ADD_SMSQUEUE" translate-attr-aria-label="SMS.ADD_SMSQUEUE">\n ADD SMSQUEUE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newSmsQueue" ng-click="vm.deleteSmsQueue($event)" aria-label="DELETE" translate translate-attr-aria-label="SMS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="SMS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsQueues/edit/agentadd/agentadd.html",'<md-dialog class="smsQueue-dialog" aria-label="smsQueue" ng-init="vm.onInit()">\n <form name="smsQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="SMS.AGENTADD_SMSQUEUE">Add Agent to smsQueue</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsQueues/edit/teamadd/teamadd.html",'<md-dialog class="smsQueue-dialog" aria-label="smsQueue" ng-init="vm.onInit()">\n <form name="smsQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="SMS.TEAMS_ASSOCIATION">Teams Association</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/sms/views/smsQueues/edit/view.html",'<div id="sms-smsQueue" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-smsQueues-button md-icon-button" aria-label="Go to smsQueues" ng-click="vm.gotoSmsQueues()" translate translate-attr-aria-label="SMS.GO_TO_SMSQUEUES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="smsQueue-image" hide-xs>\n <img ng-src="assets/images/business/smsQueues.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.smsQueue.id}}\n <span ng-if="vm.smsQueue.name">{{vm.smsQueue.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="SMS.CREATED_AT"></span> <span>{{vm.smsQueue.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.teamadddialog(vm.smsQueue, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n <md-tooltip><span translate="SMS.TEAMADD_SMSQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.smsQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="SMS.AGENTADD_SMSQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-plus"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveSmsQueue()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="SMS.SAVE" translate-attr-aria-label="SMS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="SMS.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="smsQueue-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="SMS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="SMS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.smsQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="SMS.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="SMS.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.smsQueue.strategy" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'beepall\'">Beepall</md-option>\n <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n </md-select>\n <div ng-messages="generalForm[\'strategy\'].$error" ng-show="generalForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.smsQueue.timeout" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'timeout\'].$error" ng-show="generalForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="SMS.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="SMS.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="SMS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.smsQueue.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="SMS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/sms/views/smsQueues/smsQueues.html",'<div id="smsQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-message-text" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="SMS.SMSQUEUES">SmsQueues</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="SMS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedSmsQueues.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedSmsQueues =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="SMS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-smsQueues-count">\n <span>{{vm.selectedSmsQueues.length}}</span>\n <span translate="SMS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="SMS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllSmsQueues()" translate="SMS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectSmsQueues()" translate="SMS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedSmsQueues" csv-label="true" filename="smsQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedSmsQueues($event)" aria-label="delete selected" translate translate-attr-label="SMS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- SMSQUEUE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedSmsQueues" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getSmsQueues">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'SMS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'SMS.NAME\' | translate }}</th>\n <th md-column md-order-by="strategy">{{ \'SMS.STRATEGY\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.smsQueues.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="SMS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="smsQueue" md-select-id="id" ng-repeat="smsQueue in vm.smsQueues.rows">\n <td md-cell ng-if="smsQueue.userpic"><img class="avatar" alt="{{smsQueue.name}}" ng-src="api/users/{{smsQueue.id}}/avatar" /></td>\n <td md-cell ng-if="!smsQueue.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{smsQueue.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsQueue, ev) : vm.createOrEditSmsQueue($event, smsQueue)" md-cell class="id ">{{smsQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsQueue, ev) : vm.createOrEditSmsQueue($event, smsQueue)" md-cell class="name ">{{smsQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(smsQueue, ev) : vm.createOrEditSmsQueue($event, smsQueue)" md-cell class="strategy ">{{ vm.arraystrategy[smsQueue.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="SMS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(smsQueue, $event )" translate="SMS.EDIT_SMSQUEUE">\n Edit SmsQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(smsQueue, $event )" translate="SMS.TEAMADD_SMSQUEUE">\n teamadd SmsQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(smsQueue, $event )" translate="SMS.AGENTADD_SMSQUEUE">\n agentadd SmsQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(smsQueue, $event )" translate="SMS.DELETE_SMSQUEUE">\n Delete SmsQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(smsQueue, $event )" translate="SMS.GOTOREALTIME_SMSQUEUE">\n goToRealtime SmsQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'SMS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'SMS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'SMS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.smsQueues.count}}" md-on-paginate="vm.getSmsQueues" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / SMSQUEUE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD SMSQUEUE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-smsQueue-button" ng-click="vm.createOrEditSmsQueue($event)" aria-label="add smsQueue" translate translate-attr-aria-label="SMS.ADD_SMSQUEUE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD SMSQUEUE BUTTON --\x3e\n</div>'),e.put("app/main/apps/staff/views/agents/agents.html",'<div id="agents" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-account-multiple" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="STAFF.AGENTS">Agents</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="STAFF.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedAgents.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedAgents =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="STAFF.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-agents-count">\n <span>{{vm.selectedAgents.length}}</span>\n <span translate="STAFF.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="STAFF.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllAgents()" translate="STAFF.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectAgents()" translate="STAFF.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedAgents" csv-label="true" filename="agents.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedAgents($event)" aria-label="delete selected" translate translate-attr-label="STAFF.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- AGENT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedAgents" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getAgents">\n <tr md-row>\n <th md-column width="20px"></th>\n <th md-column md-order-by="fullname">{{ \'STAFF.FULLNAME\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'STAFF.USERNAME\' | translate }}</th>\n <th md-column md-order-by="showWebBar">{{ \'STAFF.SHOWWEBCONTROL\' | translate }}</th>\n <th md-column md-order-by="email">{{ \'STAFF.EMAIL\' | translate }}</th>\n <th md-column md-order-by="phone">{{ \'STAFF.PHONE\' | translate }}</th>\n <th md-column md-order-by="mobile">{{ \'STAFF.MOBILE\' | translate }}</th>\n <th md-column md-order-by="internal">{{ \'STAFF.INTERNAL\' | translate }}</th>\n <th md-column md-order-by="disabled">{{ \'STAFF.DISABLED\' | translate }}</th>\n <th md-column md-order-by="blocked">{{ \'STAFF.BLOCKED\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.agents.rows.length">\n <td md-cell colspan="10">\n <div layout="row" layout-align="center center">\n <span translate="STAFF.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="agent" md-select-id="id" ng-repeat="agent in vm.agents.rows">\n <td md-cell ng-if="agent.userpic"><img class="avatar" alt="{{agent.name}}" ng-src="api/users/{{agent.id}}/avatar" /></td>\n <td md-cell ng-if="!agent.userpic"><img class="avatar" alt="{{agent.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="fullname font-weight-600">{{agent.fullname}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="name">{{agent.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="showWebBar">{{ agent.showWebBar | getOptionByValue: vm.showWebBarOptions }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="email">{{agent.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="phone">{{agent.phone}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="mobile">{{agent.mobile}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="internal">{{agent.internal}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="disabled">\n <md-icon md-colors="{color: {{agent.disabled ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{agent.disabled ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(agent, ev) : vm.createOrEditAgent($event, agent)" md-cell class="blocked">\n <md-icon md-colors="{color: {{agent.blocked ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{agent.blocked ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(agent, $event )" translate="STAFF.EDIT_AGENT">\n Edit Agent\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(agent, $event )" translate="STAFF.TEAMADD_AGENT">\n teamadd Agent\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(agent, $event )" translate="STAFF.DELETE_AGENT">\n Delete Agent\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'STAFF.PAGE\' | translate}}:\', rowsPerPage: \'{{\'STAFF.ROWSPERPAGE\' | translate}}:\', of: \'{{\'STAFF.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.agents.count}}" md-on-paginate="vm.getAgents" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / AGENT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD AGENT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-agent-button" ng-click="vm.createOrEditAgent($event)" aria-label="add agent" translate translate-attr-aria-label="STAFF.ADD_AGENT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD AGENT BUTTON --\x3e\n</div>'),e.put("app/main/apps/staff/views/agents/create/dialog.html",'<md-dialog class="agent-dialog" aria-label="New Agent">\n <form name="agentForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="STAFF.FULLNAME">Fullname</label>\n <input type="text" name="fullname" ng-model="vm.agent.fullname" ng-required="true" autofocus>\n\n <div ng-messages="agentForm[\'fullname\'].$error" ng-show="agentForm[\'fullname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.FULLNAME_REQUIRED">Fullname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.USERNAME">Username</label>\n <input type="text" name="name" ng-model="vm.agent.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" ng-disabled="!vm.newAgent">\n\n <div class="hint"><span translate="STAFF.HELP.USERNAME"></span></div>\n <div ng-messages="agentForm[\'name\'].$error" ng-show="agentForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.USERNAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Username must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.agent.alias">\n\n <div ng-messages="agentForm[\'alias\'].$error" ng-show="agentForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.SHOWWEBCONTROL">ShowWebControl</label>\n <md-select name="showWebBar" ng-model="vm.agent.showWebBar">\n <md-option ng-value="0">Phonebar</md-option>\n <md-option ng-value="1">External</md-option>\n <md-option ng-value="2">WebRTC</md-option>\n </md-select>\n <div ng-messages="agentForm[\'showWebBar\'].$error" ng-show="agentForm[\'showWebBar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.SHOWWEBCONTROL_REQUIRED">ShowWebControl field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.agent.email" ng-required="true">\n\n <div ng-messages="agentForm[\'email\'].$error" ng-show="agentForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="STAFF.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.newAgent">\n <label translate="STAFF.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.agent.password" placeholder="Password" ng-pattern="vm.passwordPattern" translate translate-attr-placeholder="STAFF.PASSWORD" required>\n <div ng-messages="agentForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.newAgent && (vm.newAgent)">\n <label translate="STAFF.CONFIRM_PASSWORD">Confirm Password</label>\n <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword" required>\n <div ng-messages="agentForm.confirmPassword.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n </div>\n <div ng-message="passwordMatch">\n <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container ng-if="vm.newAgent" class="md-block">\n <md-switch ng-model="vm.agent.autointernal" aria-label="AutoInternal"><span translate="STAFF.AUTOINTERNAL">AutoInternal</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.agent.autointernal" class="md-block">\n <label translate="STAFF.INTERNAL">Internal</label>\n <input type="text" name="internal" ng-model="vm.agent.internal" ng-required="true" ng-disabled="!vm.newAgent">\n\n <div ng-messages="agentForm[\'internal\'].$error" ng-show="agentForm[\'internal\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.agent.description">\n\n <div ng-messages="agentForm[\'description\'].$error" ng-show="agentForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.newAgent" class="md-block">\n <md-switch ng-model="vm.agent.voicemail" aria-label="Voicemail"><span translate="STAFF.VOICEMAIL">Voicemail</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.showWebBar == 0" class="md-block">\n <md-switch ng-model="vm.agent.phoneBarRemoteControl" aria-label="RemoteControl"><span translate="STAFF.REMOTECONTROL">RemoteControl</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.phoneBarRemoteControl && vm.agent.showWebBar == 0" class="md-block">\n <label translate="STAFF.REMOTECONTROLPORT">RemoteControlPort</label>\n <input type="number" name="phoneBarRemoteControlPort" ng-model="vm.agent.phoneBarRemoteControlPort" value="9888" ng-required="true">\n\n <div ng-messages="agentForm[\'phoneBarRemoteControlPort\'].$error" ng-show="agentForm[\'phoneBarRemoteControlPort\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.REMOTECONTROLPORT_REQUIRED">RemoteControlPort field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.newUser" class="md-block">\n <md-switch ng-model="vm.agent.voicemail" aria-label="Voicemail"><span translate="STAFF.VOICEMAIL">Voicemail</span></md-switch>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newAgent" ng-click="vm.saveAgent()" class="send-button md-accent md-raised" ng-disabled="agentForm.$invalid || agentForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newAgent" ng-click="vm.addNewAgent()" class="send-button md-accent md-raised" ng-disabled="agentForm.$invalid" aria-label="ADD" translate="STAFF.ADD_AGENT" translate-attr-aria-label="STAFF.ADD_AGENT">\n ADD AGENT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newAgent" ng-click="vm.deleteAgent($event)" aria-label="DELETE" translate translate-attr-aria-label="STAFF.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="STAFF.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/agents/edit/changepassword/changepassword.html",'<md-dialog class="agent-dialog" aria-label="{{vm.name}}">\n <form name="agentForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ \'\n STAFF.CHANGE_PASSWORD\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block" ng-if="vm.currentUser.id == vm.agent.id">\n <label translate="STAFF.OLD_PASSWORD">Old Password</label>\n <input type="password" name="oldPassword" ng-model="vm.oldPassword" placeholder="Password" translate translate-attr-placeholder="STAFF.OLD_PASSWORD" required>\n <div ng-messages="agentForm.oldPassword.$error" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.NEW_PASSWORD">New Password</label>\n <input type="password" name="password" ng-model="vm.password" placeholder="Password" translate ng-pattern="vm.passwordPattern" translate-attr-placeholder="STAFF.NEW_PASSWORD" required>\n <div ng-messages="agentForm.password.$error" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is\n required</span>\n </div>\n\n\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.SECURE_PASSWORD_PATTERN">Must contain\n at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric\n character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n <div ng-message="oldPasswordMatch">\n <span translate="STAFF.ERRORS.PASSWORD_OLDPASSWORD_MATCH">New password must be different from old one</span>\n </div>\n\n\n\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CONFIRM_PASSWORD">Confirm Password</label>\n <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n <div ng-messages="agentForm.confirmPassword.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CONFIRM_REQUIRED">Confirm field is\n required</span>\n </div>\n <div ng-message="passwordMatch">\n <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did\n not match</span>\n </div>\n </div>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.savePassword()" class="send-button md-accent md-raised" ng-disabled="agentForm.$invalid || agentForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/agents/edit/queueadd/queueadd.html",'<md-dialog class="agent-dialog" aria-label="agent" ng-init="vm.onInit()">\n <form name="agentForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2>{{vm.title}}</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <md-input-container flex class="no-margin" ng-if="vm.agent.role === \'agent\' && vm.channel === \'voice\'">\n <label translate="STAFF.PENALTY">Penalty</label>\n <input name="penalty" type="number" ng-model="vm.penalty" min="0" placeholder="0" required onkeypress="return event.charCode >= 48 && event.charCode <= 57 && this.value.length < 3">\n <div ng-messages="agentForm.penalty.$error" role="alert" multiple>\n <div ng-message="required">\n <span>{{ \'VOICE.ERRORS.PENALTY_REQUIRED\' | translate }}</span>\n </div>\n </div>\n </md-input-container>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" add-disabled="vm.channel === \'voice\' && vm.penalty === undefined"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveQueues()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/agents/edit/teamadd/teamadd.html",'<md-dialog class="agent-dialog" aria-label="agent" ng-init="vm.onInit()">\n <form name="agentForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="STAFF.TEAMS_ASSOCIATION">Teams Association</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/agents/edit/view.html",'<div id="staff-agent" class="page-layout simple tabbed" layout="column">\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-agents-button md-icon-button" aria-label="Go to agents" ng-click="vm.gotoAgents()" translate translate-attr-aria-label="STAFF.GO_TO_AGENTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="agent-image" hide-xs>\n <img ng-src="assets/images/business/agents.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.agent.id}}\n <span ng-if="vm.agent.name">{{vm.agent.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="STAFF.CREATED_AT"></span> <span>{{vm.agent.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div ng-cloak>\n <md-fab-speed-dial md-direction="left" class="md-scale md-fab">\n <md-fab-trigger>\n <md-button aria-label="menu" class="md-fab md-primary md-icon-button">\n <md-tooltip md-direction="top" md-visible="false"><span translate="STAFF.CHANNELS">Channels</span></md-tooltip>\n <md-icon md-font-icon="icon-stackoverflow" aria-label="queueadd"></md-icon>\n </md-button>\n </md-fab-trigger>\n <md-fab-actions>\n <md-button aria-label="voice" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'voice\', $event, \'inbound\')">\n <md-tooltip md-direction="bottom" md-visible="false"><span translate="VOICE.VOICE">Voice</span></md-tooltip>\n <md-icon md-font-icon="icon-phone" aria-label="voice"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.dialer" aria-label="motion bull" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'voice\', $event, \'outbound\')">\n <md-tooltip md-direction="bottom" md-visible="false"><span translate="MOTIONDIALER.MOTIONDIALER">Motion Bull</span></md-tooltip>\n <md-icon md-font-icon="icon-fire" aria-label="motion bull"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.chat" aria-label="chat" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'chat\', $event)">\n <md-tooltip md-direction="bottom" md-visible="false"><span translate="CHAT.CHAT">Chat</span></md-tooltip>\n <md-icon md-font-icon="icon-hangouts" aria-label="chat"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.mail" aria-label="mail" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'mail\', $event)">\n <md-tooltip md-direction="bottom" md-visible="false"><span translate="MAIL.MAIL">Email</span></md-tooltip>\n <md-icon md-font-icon="icon-email" aria-label="mail"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.messaging" aria-label="sms" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'sms\', $event)">\n <md-tooltip md-direction="bottom" md-visible="false"><span translate="SMS.SMS">Sms</span></md-tooltip>\n <md-icon md-font-icon="icon-message-text" aria-label="sms"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.openchannel" aria-label="openchannel" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'openchannel\', $event)">\n <md-tooltip md-direction="bottom" md-visible="false"><span translate="OPENCHANNEL.OPENCHANNEL">Openchannel</span></md-tooltip>\n <md-icon md-font-icon="icon-google-earth" aria-label="openchannel"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.fax" aria-label="fax" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'fax\', $event)">\n <md-tooltip md-direction="bottom" md-visible="false"><span translate="FAX.FAX">Fax</span></md-tooltip>\n <md-icon md-font-icon="icon-deskphone" aria-label="fax"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.whatsapp" aria-label="whatsapp" class="md-fab md-raised md-icon-button md-mini" ng-click="vm.queueaddchannel(vm.agent, \'whatsapp\', $event)">\n <md-tooltip md-direction="bottom" md-visible="false"><span translate="WHATSAPP.WHATSAPP">whatsapp</span></md-tooltip>\n <md-icon md-font-icon="icon-whatsapp" aria-label="whatsapp"></md-icon>\n </md-button>\n </md-fab-actions>\n </md-fab-speed-dial>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.teamadddialog(vm.agent, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n <md-tooltip><span translate="STAFF.TEAMADD_AGENT"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.changepassworddialog(vm.agent, $event)" class="md-fab md-warn md-icon-button" aria-label="changepassword">\n <md-tooltip><span translate="STAFF.CHANGEPASSWORD_AGENT"></span></md-tooltip>\n <md-icon md-font-icon="icon-key-variant"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveAgent()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(personal_infoForm.$invalid) || (security_suiteForm.$invalid) || (change_avatarForm.$invalid) || (generalForm.$invalid) || (capacityForm.$invalid) || (settingsForm.$invalid) || (remote_controlForm.$invalid) || (sipForm.$invalid) || (callforwardingForm.$invalid) || (settings_webrtcForm.$invalid) || (sip_webrtcForm.$invalid) || (general_permissionsForm.$invalid) || (download_permissionsForm.$invalid) || (permissionsForm.$invalid)" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="agent-detail-form-container personal_info md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.PERSONAL_INFO">PERSONAL_INFO</div>\n </div>\n <form name="personal_infoForm" novalidate>\n <md-input-container class="md-block">\n <label translate="STAFF.FULLNAME">Fullname</label>\n <input type="text" name="fullname" ng-model="vm.agent.fullname" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'fullname\'].$error" ng-show="personal_infoForm[\'fullname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.FULLNAME_REQUIRED">Fullname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.USERNAME">Username</label>\n <input type="text" name="name" ng-model="vm.agent.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" disabled>\n\n <div class="hint"><span translate="STAFF.HELP.USERNAME"></span></div>\n <div ng-messages="personal_infoForm[\'name\'].$error" ng-show="personal_infoForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.USERNAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Username must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.agent.alias" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'alias\'].$error" ng-show="personal_infoForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.SHOWWEBCONTROL">ShowWebControl</label>\n <md-select name="showWebBar" ng-model="vm.agent.showWebBar" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="0">Phonebar</md-option>\n <md-option ng-value="1">External</md-option>\n <md-option ng-value="2">WebRTC</md-option>\n </md-select>\n <div ng-messages="personal_infoForm[\'showWebBar\'].$error" ng-show="personal_infoForm[\'showWebBar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.SHOWWEBCONTROL_REQUIRED">ShowWebControl field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.agent.email" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'email\'].$error" ng-show="personal_infoForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="STAFF.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.agent.phone" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'phone\'].$error" ng-show="personal_infoForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.MOBILE">Mobile</label>\n <input type="text" name="mobile" ng-model="vm.agent.mobile" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'mobile\'].$error" ng-show="personal_infoForm[\'mobile\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.MOBILE_REQUIRED">Mobile field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.agent.showWebBar == 1" class="md-block">\n <md-switch ng-model="vm.agent.hotdesk" aria-label="Hotdesk" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.HOTDESK">Hotdesk</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.loginInPause" aria-label="LoginInPause" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.LOGININPAUSE">LoginInPause</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.agent.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'description\'].$error" ng-show="personal_infoForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="agent-detail-form-container security_suite md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.SECURITY_SUITE">SECURITY_SUITE</div>\n </div>\n <form name="security_suiteForm" novalidate>\n <md-input-container ng-if="vm.agent.passwordResetAt != null" class="md-block">\n <label translate="STAFF.LAST_PASSWORD_RESET_AT">Last_Password_Reset_At</label>\n <input type="text" name="passwordResetAt" ng-model="vm.agent.passwordResetAt" autofocus disabled>\n\n <div class="hint"><span translate="STAFF.HELP.LAST_PASSWORD_RESET_AT"></span></div>\n <div ng-messages="security_suiteForm[\'passwordResetAt\'].$error" ng-show="security_suiteForm[\'passwordResetAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.LAST_PASSWORD_RESET_AT_REQUIRED">Last_Password_Reset_At field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.agent.passwordResetAt == null" class="md-block">\n <label translate="STAFF.NO_PASSWORD_CHANGE">No_Password_Change</label>\n <input type="text" name="passwordResetAt" ng-model="vm.agent.passwordResetAt" disabled>\n\n <div ng-messages="security_suiteForm[\'passwordResetAt\'].$error" ng-show="security_suiteForm[\'passwordResetAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NO_PASSWORD_CHANGE_REQUIRED">No_Password_Change field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.disabled" aria-label="Disabled" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.DISABLED">Disabled</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.DISABLED"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.agent.disabled == 0" class="md-block">\n <md-switch ng-model="vm.agent.blocked" aria-label="Blocked" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.BLOCKED">Blocked</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.BLOCKED"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.privacyEnabled" aria-label="Mask_Sensitive_Data" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.MASK_SENSITIVE_DATA">Mask_Sensitive_Data</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.MASK_SENSITIVE_DATA"></span></div>\n </md-input-container>\n\n </form>\n </div>\n <div class="agent-detail-form-container change_avatar md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.CHANGE_AVATAR">CHANGE_AVATAR</div>\n </div>\n <div ng-controller="Agentchange_avatarController as vm_ca" ng-init="vm_ca.init(vm.agent, vm.crudPermissions)" class="agent-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="agent-image-uploader" flow-init="vm_ca.ngFlowOptions" flow-name="vm_ca.ngFlow.flow" flow-files-submitted="vm_ca.upload()" flow-file-added="vm_ca.fileAdded($file)" flow-file-success="vm_ca.fileSuccess($file, $message)" flow-complete="vm_ca.uploadComplete()" flow-drop flow-drag-enter="vm_ca.dropping=true" flow-drag-leave="vm_ca.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn ng-disabled="!vm_ca.crudPermissions.canEdit">\n Upload\n </md-button>\n <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG - Max. 8MB</span>\n </div>\n\n <div layout="row" layout-align="start start" layout-wrap>\n <div ng-repeat="change_avatarimage in vm_ca.agent.images" ng-switch="change_avatarimage.type">\n <div class="agent-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n <div class="overlay" layout="column" layout-align="center center">\n <md-progress-linear md-mode="determinate" value="{{change_avatarimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="change_avatarimage.file">\n </div>\n\n <div class="agent-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{change_avatarimage.url}}">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.VOICE">VOICE</span>\n </md-tab-label>\n <md-tab-body>\n <div class="agent-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container ng-if="!vm.agent.autointernal" class="md-block">\n <label translate="STAFF.INTERNAL">Internal</label>\n <input type="text" name="internal" ng-model="vm.agent.internal" ng-required="true" autofocus disabled>\n\n <div ng-messages="generalForm[\'internal\'].$error" ng-show="generalForm[\'internal\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.agent.showWebBar != 2" class="md-block">\n <label translate="STAFF.TRANSPORT">Transport</label>\n <md-select name="transport" ng-model="vm.agent.transport" multiple ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'udp\'">udp</md-option>\n <md-option ng-value="\'tcp\'">tcp</md-option>\n <md-option ng-value="\'ws\'" ng-if="vm.agent.showWebBar == 1">ws</md-option>\n <md-option ng-value="\'wss\'" ng-if="vm.agent.showWebBar == 1">wss</md-option>\n <md-option ng-value="\'tls\'" ng-if="vm.agent.showWebBar == 1">tls</md-option>\n </md-select>\n <div class="hint"><span translate="STAFF.HELP.TRANSPORT"></span></div>\n <div ng-messages="generalForm[\'transport\'].$error" ng-show="generalForm[\'transport\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.TRANSPORT_REQUIRED">Transport field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.HOST">Host</label>\n <input type="text" name="host" ng-model="vm.agent.host" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.HOST"></span></div>\n <div ng-messages="generalForm[\'host\'].$error" ng-show="generalForm[\'host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.HOST_REQUIRED">Host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.NAT">NAT</label>\n <md-select name="nat" ng-model="vm.agent.nat" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'force_rport\'">force_rport</md-option>\n <md-option ng-value="\'comedia\'">comedia</md-option>\n <md-option ng-value="\'yes\'">yes</md-option>\n <md-option ng-value="\'no\'">no</md-option>\n <md-option ng-value="\'never\'">never</md-option>\n <md-option ng-value="\'route\'">route</md-option>\n </md-select>\n <div class="hint"><span translate="STAFF.HELP.NAT"></span></div>\n <div ng-messages="generalForm[\'nat\'].$error" ng-show="generalForm[\'nat\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NAT_REQUIRED">NAT field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.TYPE">Type</label>\n <md-select name="type" ng-model="vm.agent.type" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'friend\'">Friend</md-option>\n <md-option ng-value="\'user\'">User</md-option>\n <md-option ng-value="\'peer\'">Peer</md-option>\n </md-select>\n <div class="hint"><span translate="STAFF.HELP.TYPE"></span></div>\n <div ng-messages="generalForm[\'type\'].$error" ng-show="generalForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.ALLOWCODECS">AllowCodecs</label>\n <md-select name="allow" ng-model="vm.agent.allow" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'ulaw\'">ulaw</md-option>\n <md-option ng-value="\'alaw\'">alaw</md-option>\n <md-option ng-value="\'gsm\'">gsm</md-option>\n <md-option ng-value="\'g722\'">g722</md-option>\n <md-option ng-value="\'g729\'">g729</md-option>\n <md-option ng-value="\'opus\'">opus</md-option>\n <md-option ng-value="\'h264\'">h264</md-option>\n </md-select>\n <div class="hint"><span translate="STAFF.HELP.ALLOWCODECS"></span></div>\n <div ng-messages="generalForm[\'allow\'].$error" ng-show="generalForm[\'allow\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ALLOWCODECS_REQUIRED">AllowCodecs field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CALLERID">CallerId</label>\n <input type="text" name="callerid" ng-model="vm.agent.callerid" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'callerid\'].$error" ng-show="generalForm[\'callerid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CALLERID_REQUIRED">CallerId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.agent.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts" ng-disabled="context.canSelect === false">{{ context.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'context\'].$error" ng-show="generalForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CALLGROUP">Callgroup</label>\n <input type="text" name="callgroup" ng-model="vm.agent.callgroup" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.CALLGROUP"></span></div>\n <div ng-messages="generalForm[\'callgroup\'].$error" ng-show="generalForm[\'callgroup\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CALLGROUP_REQUIRED">Callgroup field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.PICKUPGROUP">Pickupgroup</label>\n <input type="text" name="pickupgroup" ng-model="vm.agent.pickupgroup" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.PICKUPGROUP"></span></div>\n <div ng-messages="generalForm[\'pickupgroup\'].$error" ng-show="generalForm[\'pickupgroup\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PICKUPGROUP_REQUIRED">Pickupgroup field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.chanspy" aria-label="chanSpy" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.CHANSPY">chanSpy</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.VIDEOSUPPORT">Videosupport</label>\n <md-select name="videosupport" ng-model="vm.agent.videosupport" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">Yes</md-option>\n <md-option ng-value="\'no\'">No</md-option>\n <md-option ng-value="\'always\'">Always</md-option>\n </md-select>\n <div ng-messages="generalForm[\'videosupport\'].$error" ng-show="generalForm[\'videosupport\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.VIDEOSUPPORT_REQUIRED">Videosupport field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.MONITOREXTENSION">MonitorExtension</label>\n <md-select name="extensionMonitor" ng-model="vm.agent.extensionMonitor" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">Inactive</md-option>\n <md-option ng-value="\'wav\'">wav</md-option>\n <md-option ng-value="\'WAV\'">wav49</md-option>\n <md-option ng-value="\'gsm\'">gsm</md-option>\n </md-select>\n <div ng-messages="generalForm[\'extensionMonitor\'].$error" ng-show="generalForm[\'extensionMonitor\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.MONITOREXTENSION_REQUIRED">MonitorExtension field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.OTHER_CHANNELS">OTHER_CHANNELS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="agent-detail-form-container capacity md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.CAPACITY">CAPACITY</div>\n </div>\n <form name="capacityForm" novalidate>\n <md-input-container ng-if="vm.license.chat" class="md-block">\n <label translate="STAFF.CHATCAPACITY">ChatCapacity</label>\n <input type="number" name="chatCapacity" ng-model="vm.agent.chatCapacity" min="0" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.CHATCAPACITY"></span></div>\n <div ng-messages="capacityForm[\'chatCapacity\'].$error" ng-show="capacityForm[\'chatCapacity\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CHATCAPACITY_REQUIRED">ChatCapacity field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.CHATCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">ChatCapacity must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.mail" class="md-block">\n <label translate="STAFF.MAILCAPACITY">MailCapacity</label>\n <input type="number" name="mailCapacity" ng-model="vm.agent.mailCapacity" min="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.MAILCAPACITY"></span></div>\n <div ng-messages="capacityForm[\'mailCapacity\'].$error" ng-show="capacityForm[\'mailCapacity\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.MAILCAPACITY_REQUIRED">MailCapacity field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.MAILCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MailCapacity must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.messaging" class="md-block">\n <label translate="STAFF.SMSCAPACITY">SMSCapacity</label>\n <input type="number" name="smsCapacity" ng-model="vm.agent.smsCapacity" min="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.SMSCAPACITY"></span></div>\n <div ng-messages="capacityForm[\'smsCapacity\'].$error" ng-show="capacityForm[\'smsCapacity\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.SMSCAPACITY_REQUIRED">SMSCapacity field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.SMSCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">SMSCapacity must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.openchannel" class="md-block">\n <label translate="STAFF.OPENCHANNELCAPACITY">OpenchannelCapacity</label>\n <input type="number" name="openchannelCapacity" ng-model="vm.agent.openchannelCapacity" min="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.OPENCHANNELCAPACITY"></span></div>\n <div ng-messages="capacityForm[\'openchannelCapacity\'].$error" ng-show="capacityForm[\'openchannelCapacity\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.OPENCHANNELCAPACITY_REQUIRED">OpenchannelCapacity field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.OPENCHANNELCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">OpenchannelCapacity must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.fax" class="md-block">\n <label translate="STAFF.FAXCAPACITY">FaxCapacity</label>\n <input type="number" name="faxCapacity" ng-model="vm.agent.faxCapacity" min="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.FAXCAPACITY"></span></div>\n <div ng-messages="capacityForm[\'faxCapacity\'].$error" ng-show="capacityForm[\'faxCapacity\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.FAXCAPACITY_REQUIRED">FaxCapacity field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.FAXCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">FaxCapacity must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.license.whatsapp" class="md-block">\n <label translate="STAFF.WHATSAPPCAPACITY">WhatsappCapacity</label>\n <input type="number" name="whatsappCapacity" ng-model="vm.agent.whatsappCapacity" min="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.WHATSAPPCAPACITY"></span></div>\n <div ng-messages="capacityForm[\'whatsappCapacity\'].$error" ng-show="capacityForm[\'whatsappCapacity\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.WHATSAPPCAPACITY_REQUIRED">WhatsappCapacity field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.WHATSAPPCAPACITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WhatsappCapacity must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab ng-if="vm.agent.showWebBar == 0">\n <md-tab-label>\n <span translate="STAFF.MOTIONBAR">MOTIONBAR</span>\n </md-tab-label>\n <md-tab-body>\n <div class="agent-detail-form-container settings md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.SETTINGS">SETTINGS</div>\n </div>\n <form name="settingsForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarEnableSettings" aria-label="EnableSettings" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLESETTINGS">EnableSettings</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarAutoAnswer" aria-label="AutoAnswer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.AUTOANSWER">AutoAnswer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.phoneBarAutoAnswer" class="md-block">\n <label translate="STAFF.AUTOANSWERDELAY">AutoAnswerDelay</label>\n <input type="number" name="phoneBarAutoAnswerDelay" ng-model="vm.agent.phoneBarAutoAnswerDelay" min="0" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="settingsForm[\'phoneBarAutoAnswerDelay\'].$error" ng-show="settingsForm[\'phoneBarAutoAnswerDelay\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.AUTOANSWERDELAY_REQUIRED">AutoAnswerDelay field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.AUTOANSWERDELAY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AutoAnswerDelay must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarRingInUse" aria-label="RingInUse" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.RINGINUSE">RingInUse</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarEnableRecording" aria-label="EnableRecording" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLERECORDING">EnableRecording</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarEnableDtmfTone" aria-label="EnableDtmfTone" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLEDTMFTONE">EnableDtmfTone</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarDnd" aria-label="Dnd" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.DND">Dnd</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarUnansweredCallBadge" aria-label="UnansweredCallBadge" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.UNANSWEREDCALLBADGE">UnansweredCallBadge</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.showWebBar == 0" class="md-block">\n <md-switch ng-model="vm.agent.phoneBarEnableJaws" aria-label="EnableJawsIntegration" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLEJAWSINTEGRATION">EnableJawsIntegration</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.showWebBar == 0 && vm.license.screenrecording" class="md-block">\n <md-switch ng-change="vm.onEnableScreenRecordingByAgentSelection()" ng-model="vm.agent.phoneBarEnableScreenRecordingByAgent" aria-label="EnableScreenRecordingByAgent" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLESCREENRECORDINGBYAGENT">EnableScreenRecordingByAgent</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.showWebBar == 0 && vm.license.screenrecording" class="md-block">\n <md-switch ng-change="vm.onEnableAutomaticScreenRecordingSelection()" ng-model="vm.agent.phoneBarEnableAutomaticScreenRecording" aria-label="EnableAutomaticScreenRecording" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLEAUTOMATICSCREENRECORDING">EnableAutomaticScreenRecording</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.ENABLEAUTOMATICSCREENRECORDING"></span></div>\n </md-input-container>\n </form>\n </div>\n <div class="agent-detail-form-container remote_control md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.REMOTE_CONTROL">REMOTE_CONTROL</div>\n </div>\n <form name="remote_controlForm" novalidate>\n <md-input-container ng-if="vm.agent.showWebBar == 0" class="md-block">\n <md-switch ng-model="vm.agent.phoneBarRemoteControl" aria-label="RemoteControl" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.REMOTECONTROL">RemoteControl</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.phoneBarRemoteControl && vm.agent.showWebBar == 0" class="md-block">\n <label translate="STAFF.REMOTECONTROLPORT">RemoteControlPort</label>\n <input type="number" name="phoneBarRemoteControlPort" ng-model="vm.agent.phoneBarRemoteControlPort" value="9888" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="remote_controlForm[\'phoneBarRemoteControlPort\'].$error" ng-show="remote_controlForm[\'phoneBarRemoteControlPort\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.REMOTECONTROLPORT_REQUIRED">RemoteControlPort field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="agent-detail-form-container sip md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.SIP">SIP</div>\n </div>\n <form name="sipForm" novalidate>\n <md-input-container class="md-block">\n <label translate="STAFF.SIPEXPIRES">SipExpires</label>\n <input type="number" name="phoneBarExpires" ng-model="vm.agent.phoneBarExpires" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.SIPEXPIRES"></span></div>\n <div ng-messages="sipForm[\'phoneBarExpires\'].$error" ng-show="sipForm[\'phoneBarExpires\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.SIPEXPIRES_REQUIRED">SipExpires field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.SIPPORT">SipPort</label>\n <input type="number" name="phoneBarListenPort" ng-model="vm.agent.phoneBarListenPort" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.SIPPORT"></span></div>\n <div ng-messages="sipForm[\'phoneBarListenPort\'].$error" ng-show="sipForm[\'phoneBarListenPort\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.SIPPORT_REQUIRED">SipPort field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="agent-detail-form-container callforwarding md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.CALLFORWARDING">CALLFORWARDING</div>\n </div>\n <form name="callforwardingForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarUnconditional" aria-label="Unconditional" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.UNCONDITIONAL">Unconditional</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.phoneBarUnconditional" class="md-block">\n <label translate="STAFF.UNCONDITIONALNUMBER">UnconditionalNumber</label>\n <input type="text" name="phoneBarUnconditionalNumber" ng-model="vm.agent.phoneBarUnconditionalNumber" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="callforwardingForm[\'phoneBarUnconditionalNumber\'].$error" ng-show="callforwardingForm[\'phoneBarUnconditionalNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.UNCONDITIONALNUMBER_REQUIRED">UnconditionalNumber field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab ng-if="vm.agent.showWebBar == 2">\n <md-tab-label>\n <span translate="STAFF.WEBRTC">WEBRTC</span>\n </md-tab-label>\n <md-tab-body>\n <div class="agent-detail-form-container settings_webrtc md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.SETTINGS_WEBRTC">SETTINGS_WEBRTC</div>\n </div>\n <form name="settings_webrtcForm" novalidate>\n <md-input-container class="md-block">\n <label translate="STAFF.DTLSCERTFILE">dtlscertfile</label>\n <input type="text" name="dtlscertfile" ng-model="vm.agent.dtlscertfile" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.DTLSCERTFILE"></span></div>\n <div ng-messages="settings_webrtcForm[\'dtlscertfile\'].$error" ng-show="settings_webrtcForm[\'dtlscertfile\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DTLSCERTFILE_REQUIRED">dtlscertfile field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.DTLSPRIVATEKEY">dtlsprivatekey</label>\n <input type="text" name="dtlsprivatekey" ng-model="vm.agent.dtlsprivatekey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.DTLSPRIVATEKEY"></span></div>\n <div ng-messages="settings_webrtcForm[\'dtlsprivatekey\'].$error" ng-show="settings_webrtcForm[\'dtlsprivatekey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DTLSPRIVATEKEY_REQUIRED">dtlsprivatekey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.WSS_PORT">WSS_Port</label>\n <input type="number" name="wssPort" ng-model="vm.agent.wssPort" min="0" value="8089" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.WSS_PORT"></span></div>\n <div ng-messages="settings_webrtcForm[\'wssPort\'].$error" ng-show="settings_webrtcForm[\'wssPort\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.WSS_PORT_REQUIRED">WSS_Port field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.WSS_PORT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WSS_Port must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarEnableSettings" aria-label="EnableSettings" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLESETTINGS">EnableSettings</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarAutoAnswer" aria-label="AutoAnswer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.AUTOANSWER">AutoAnswer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.agent.phoneBarAutoAnswer" class="md-block">\n <label translate="STAFF.AUTOANSWERDELAY">AutoAnswerDelay</label>\n <input type="number" name="phoneBarAutoAnswerDelay" ng-model="vm.agent.phoneBarAutoAnswerDelay" min="0" value="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="settings_webrtcForm[\'phoneBarAutoAnswerDelay\'].$error" ng-show="settings_webrtcForm[\'phoneBarAutoAnswerDelay\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.AUTOANSWERDELAY_REQUIRED">AutoAnswerDelay field is required</span>\n </div>\n <div ng-message="min">\n <span translate="STAFF.ERRORS.AUTOANSWERDELAY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AutoAnswerDelay must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarEnableRecording" aria-label="EnableRecording" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLERECORDING">EnableRecording</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarEnableDtmfTone" aria-label="EnableDtmfTone" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLEDTMFTONE">EnableDtmfTone</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarDnd" aria-label="Dnd" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.DND">Dnd</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.ignorePauseForPreviewCalls" aria-label="Ignore agent break status for preview calls" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.IGNORE_AGENT_BREAK_STATUS_FOR_PREVIEW_CALLS">Ignore agent break status for preview calls</span></md-switch>\n </md-input-container>\n </form>\n </div>\n <div class="agent-detail-form-container sip_webrtc md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.SIP_WEBRTC">SIP_WEBRTC</div>\n </div>\n <form name="sip_webrtcForm" novalidate>\n <md-input-container class="md-block">\n <label translate="STAFF.SIPEXPIRES">SipExpires</label>\n <input type="number" name="phoneBarExpires" ng-model="vm.agent.phoneBarExpires" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.SIPEXPIRES"></span></div>\n <div ng-messages="sip_webrtcForm[\'phoneBarExpires\'].$error" ng-show="sip_webrtcForm[\'phoneBarExpires\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.SIPEXPIRES_REQUIRED">SipExpires field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.PERMISSIONS">PERMISSIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="agent-detail-form-container general_permissions md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.GENERAL_PERMISSIONS">GENERAL_PERMISSIONS</div>\n </div>\n <form name="general_permissionsForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.allowmessenger" aria-label="EnableMessenger" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ENABLEMESSENGER">EnableMessenger</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.phoneBarPrefixRequired" aria-label="PrefixRequired" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.PREFIXREQUIRED">PrefixRequired</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.selectRecallMeCampaign" aria-label="Select_RecallMe_Campaign" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.SELECT_RECALLME_CAMPAIGN">Select_RecallMe_Campaign</span></md-switch>\n </md-input-container>\n\n </form>\n </div>\n <div class="agent-detail-form-container download_permissions md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.DOWNLOAD_PERMISSIONS">DOWNLOAD_PERMISSIONS</div>\n </div>\n <form name="download_permissionsForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.downloadAttachments" aria-label="Attachments" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ATTACHMENTS">Attachments</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.downloadOmnichannelInteractions" aria-label="Omnichannel_Interactions" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.OMNICHANNEL_INTERACTIONS">Omnichannel_Interactions</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.agent.downloadVoiceRecordings" aria-label="Voice_Recordings" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.VOICE_RECORDINGS">Voice_Recordings</span></md-switch>\n </md-input-container>\n\n </form>\n </div>\n <div class="agent-detail-form-container permissions md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.PERMISSIONS">PERMISSIONS</div>\n </div>\n <div ng-controller="AgentPermissionsController as vm_pc" ng-init="vm_pc.init(vm.agent, vm.crudPermissions)" class="agent-detail-form-container">\n <md-list ng-repeat="father in vm_pc.navigation[0].children" ng-include="\'permission-nested.html\'" ng-if="vm_pc.agent.role !== \'admin\' && !father.hidden()"></md-list>\n\n \x3c!-- Nested navigation template --\x3e\n <script type="text/ng-template" id="permission-nested.html">\n <md-list-item>\n <md-icon md-font-icon="{{father.icon}}"></md-icon>\n <p translate="{{father.translate}}">{{ father.title }}</p>\n <md-switch class="md-secondary" ng-model="father.enabled" ng-change="vm_pc.onChange(father)" ng-init="father.enabled = vm_pc.agent.permissions.includes(father.id)" \n ng-disabled="!vm_pc.crudPermissions.canEdit"></md-switch>\n </md-list-item>\n\n <md-divider></md-divider>\n\n <md-list>\n <md-list-item ng-repeat="child in father.children" ng-if="child.id !== 201">\n <md-icon ng-if="child.icon" md-font-icon="{{child.icon}}"></md-icon>\n <p translate="{{child.translate}}">{{ child.title }}</p>\n <md-switch ng-model="child.enabled" ng-change="vm_pc.onChange(father, child)" ng-init="child.enabled = vm_pc.agent.permissions.includes(child.id)"\n ng-disabled="!vm_pc.crudPermissions.canEdit"></md-switch>\n </md-list-item>\n </md-list>\n <\/script>\n \x3c!-- / Nested navigation template --\x3e\n\n <span ng-if="vm_pc.agent.role === \'admin\'" class="md-headline" translate="STAFF.ALL_MODULES_AVAILABLE">All modules are already available.</span>\n\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/staff/views/teams/create/dialog.html",'<md-dialog class="team-dialog" aria-label="New Team">\n <form name="teamForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="STAFF.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.team.name" ng-required="true" autofocus>\n\n <div ng-messages="teamForm[\'name\'].$error" ng-show="teamForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.team.description">\n\n <div ng-messages="teamForm[\'description\'].$error" ng-show="teamForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newTeam" ng-click="vm.saveTeam()" class="send-button md-accent md-raised" ng-disabled="teamForm.$invalid || teamForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newTeam" ng-click="vm.addNewTeam()" class="send-button md-accent md-raised" ng-disabled="teamForm.$invalid" aria-label="ADD" translate="STAFF.ADD_TEAM" translate-attr-aria-label="STAFF.ADD_TEAM">\n ADD TEAM\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newTeam" ng-click="vm.deleteTeam($event)" aria-label="DELETE" translate translate-attr-aria-label="STAFF.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="STAFF.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/teams/edit/agentadd/agentadd.html",'<md-dialog class="team-dialog" aria-label="team" ng-init="vm.onInit()">\n <form name="teamForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="STAFF.AGENTADD_TEAM">Add Agent to team</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/teams/teams.html",'<div id="teams" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-account-multiple" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="STAFF.TEAMS">Teams</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="STAFF.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedTeams.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedTeams =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="STAFF.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-teams-count">\n <span>{{vm.selectedTeams.length}}</span>\n <span translate="STAFF.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="STAFF.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllTeams()" translate="STAFF.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectTeams()" translate="STAFF.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedTeams" csv-label="true" filename="teams.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedTeams($event)" aria-label="delete selected" translate translate-attr-label="STAFF.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- TEAM TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedTeams" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTeams">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'STAFF.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'STAFF.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'STAFF.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.teams.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="STAFF.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="team" md-select-id="id" ng-repeat="team in vm.teams.rows">\n <td md-cell ng-if="team.userpic"><img class="avatar" alt="{{team.name}}" ng-src="api/users/{{team.id}}/avatar" /></td>\n <td md-cell ng-if="!team.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{team.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditTeam($event, team)" md-cell class="id ">{{team.id}}</td>\n <td ng-click="vm.createOrEditTeam($event, team)" md-cell class="name ">{{team.name}}</td>\n <td ng-click="vm.createOrEditTeam($event, team)" md-cell class="description ">{{team.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(team, $event )" translate="STAFF.EDIT_TEAM">\n Edit Team\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(team, $event )" translate="STAFF.AGENTADD_TEAM">\n AgentAdd Team\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(team, $event )" translate="STAFF.DELETE_TEAM">\n Delete Team\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'STAFF.PAGE\' | translate}}:\', rowsPerPage: \'{{\'STAFF.ROWSPERPAGE\' | translate}}:\', of: \'{{\'STAFF.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.teams.count}}" md-on-paginate="vm.getTeams" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / TEAM TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD TEAM BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-team-button" ng-click="vm.createOrEditTeam($event)" aria-label="add team" translate translate-attr-aria-label="STAFF.ADD_TEAM">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD TEAM BUTTON --\x3e\n</div>'),e.put("app/main/apps/staff/views/telephones/create/dialog.html",'<md-dialog class="telephone-dialog" aria-label="New Telephone">\n <form name="telephoneForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="STAFF.ACCOUNTNAME">Accountname</label>\n <input type="text" name="fullname" ng-model="vm.telephone.fullname" ng-required="true" autofocus>\n\n <div ng-messages="telephoneForm[\'fullname\'].$error" ng-show="telephoneForm[\'fullname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ACCOUNTNAME_REQUIRED">Accountname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.USERNAME">Username</label>\n <input type="text" name="name" ng-model="vm.telephone.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" ng-disabled="!vm.newTelephone">\n\n <div class="hint"><span translate="STAFF.HELP.USERNAME"></span></div>\n <div ng-messages="telephoneForm[\'name\'].$error" ng-show="telephoneForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.USERNAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Username must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.telephone.email" ng-required="true">\n\n <div ng-messages="telephoneForm[\'email\'].$error" ng-show="telephoneForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="STAFF.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.newTelephone">\n <label translate="STAFF.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.telephone.password" placeholder="Password" ng-pattern="vm.passwordPattern" translate translate-attr-placeholder="STAFF.PASSWORD" required>\n <div ng-messages="telephoneForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.newTelephone && (vm.newTelephone)">\n <label translate="STAFF.CONFIRM_PASSWORD">Confirm Password</label>\n <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword" required>\n <div ng-messages="telephoneForm.confirmPassword.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n </div>\n <div ng-message="passwordMatch">\n <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.telephone.description">\n\n <div ng-messages="telephoneForm[\'description\'].$error" ng-show="telephoneForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.newTelephone" class="md-block">\n <md-switch ng-model="vm.telephone.autointernal" aria-label="AutoInternal"><span translate="STAFF.AUTOINTERNAL">AutoInternal</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.telephone.autointernal" class="md-block">\n <label translate="STAFF.INTERNAL">Internal</label>\n <input type="text" name="internal" ng-model="vm.telephone.internal" ng-required="true" ng-disabled="!vm.newTelephone">\n\n <div ng-messages="telephoneForm[\'internal\'].$error" ng-show="telephoneForm[\'internal\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.newTelephone" class="md-block">\n <md-switch ng-model="vm.telephone.voicemail" aria-label="Voicemail"><span translate="STAFF.VOICEMAIL">Voicemail</span></md-switch>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newTelephone" ng-click="vm.saveTelephone()" class="send-button md-accent md-raised" ng-disabled="telephoneForm.$invalid || telephoneForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newTelephone" ng-click="vm.addNewTelephone()" class="send-button md-accent md-raised" ng-disabled="telephoneForm.$invalid" aria-label="ADD" translate="STAFF.ADD_TELEPHONE" translate-attr-aria-label="STAFF.ADD_TELEPHONE">\n ADD TELEPHONE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newTelephone" ng-click="vm.deleteTelephone($event)" aria-label="DELETE" translate translate-attr-aria-label="STAFF.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="STAFF.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/telephones/edit/changepassword/changepassword.html",'<md-dialog class="telephone-dialog" aria-label="{{vm.name}}">\n <form name="telephoneForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ \'\n STAFF.CHANGE_PASSWORD\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block" ng-if="vm.currentUser.id == vm.telephone.id">\n <label translate="STAFF.OLD_PASSWORD">Old Password</label>\n <input type="password" name="oldPassword" ng-model="vm.oldPassword" placeholder="Password" translate translate-attr-placeholder="STAFF.OLD_PASSWORD" required>\n <div ng-messages="telephoneForm.oldPassword.$error" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.NEW_PASSWORD">New Password</label>\n <input type="password" name="password" ng-model="vm.password" placeholder="Password" translate ng-pattern="vm.passwordPattern" translate-attr-placeholder="STAFF.NEW_PASSWORD" required>\n <div ng-messages="telephoneForm.password.$error" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is\n required</span>\n </div>\n\n\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.SECURE_PASSWORD_PATTERN">Must contain\n at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric\n character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n <div ng-message="oldPasswordMatch">\n <span translate="STAFF.ERRORS.PASSWORD_OLDPASSWORD_MATCH">New password must be different from old one</span>\n </div>\n\n\n\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CONFIRM_PASSWORD">Confirm Password</label>\n <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n <div ng-messages="telephoneForm.confirmPassword.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CONFIRM_REQUIRED">Confirm field is\n required</span>\n </div>\n <div ng-message="passwordMatch">\n <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did\n not match</span>\n </div>\n </div>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.savePassword()" class="send-button md-accent md-raised" ng-disabled="telephoneForm.$invalid || telephoneForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/telephones/edit/view.html",'<div id="staff-telephone" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-telephones-button md-icon-button" aria-label="Go to telephones" ng-click="vm.gotoTelephones()" translate translate-attr-aria-label="STAFF.GO_TO_TELEPHONES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="telephone-image" hide-xs>\n <img ng-src="assets/images/business/telephones.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.telephone.id}}\n <span ng-if="vm.telephone.name">{{vm.telephone.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="STAFF.CREATED_AT"></span> <span>{{vm.telephone.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.changepassworddialog(vm.telephone, $event)" class="md-fab md-warn md-icon-button" aria-label="changepassword">\n <md-tooltip><span translate="STAFF.CHANGEPASSWORD_TELEPHONE"></span></md-tooltip>\n <md-icon md-font-icon="icon-key-variant"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveTelephone()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(accountForm.$invalid) || (generalForm.$invalid)" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="telephone-detail-form-container account md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.ACCOUNT">ACCOUNT</div>\n </div>\n <form name="accountForm" novalidate>\n <md-input-container class="md-block">\n <label translate="STAFF.ACCOUNTNAME">Accountname</label>\n <input type="text" name="fullname" ng-model="vm.telephone.fullname" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="accountForm[\'fullname\'].$error" ng-show="accountForm[\'fullname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ACCOUNTNAME_REQUIRED">Accountname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.USERNAME">Username</label>\n <input type="text" name="name" ng-model="vm.telephone.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" disabled>\n\n <div class="hint"><span translate="STAFF.HELP.USERNAME"></span></div>\n <div ng-messages="accountForm[\'name\'].$error" ng-show="accountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.USERNAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Username must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.telephone.email" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="accountForm[\'email\'].$error" ng-show="accountForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="STAFF.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.telephone.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="accountForm[\'description\'].$error" ng-show="accountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.telephone.phone" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="accountForm[\'phone\'].$error" ng-show="accountForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.MOBILE">Mobile</label>\n <input type="text" name="mobile" ng-model="vm.telephone.mobile" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="accountForm[\'mobile\'].$error" ng-show="accountForm[\'mobile\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.MOBILE_REQUIRED">Mobile field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.VOICE">VOICE</span>\n </md-tab-label>\n <md-tab-body>\n <div class="telephone-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container ng-if="!vm.telephone.autointernal" class="md-block">\n <label translate="STAFF.INTERNAL">Internal</label>\n <input type="text" name="internal" ng-model="vm.telephone.internal" ng-required="true" autofocus disabled>\n\n <div ng-messages="generalForm[\'internal\'].$error" ng-show="generalForm[\'internal\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.TRANSPORT">Transport</label>\n <md-select name="transport" ng-model="vm.telephone.transport" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'udp\'">udp</md-option>\n <md-option ng-value="\'tcp\'">tcp</md-option>\n <md-option ng-value="\'ws\'">ws</md-option>\n <md-option ng-value="\'wss\'">wss</md-option>\n <md-option ng-value="\'tls\'">tls</md-option>\n </md-select>\n <div class="hint"><span translate="STAFF.HELP.TRANSPORT"></span></div>\n <div ng-messages="generalForm[\'transport\'].$error" ng-show="generalForm[\'transport\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.TRANSPORT_REQUIRED">Transport field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.NAT">NAT</label>\n <md-select name="nat" ng-model="vm.telephone.nat" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'force_rport\'">force_rport</md-option>\n <md-option ng-value="\'comedia\'">comedia</md-option>\n <md-option ng-value="\'yes\'">yes</md-option>\n <md-option ng-value="\'no\'">no</md-option>\n <md-option ng-value="\'never\'">never</md-option>\n <md-option ng-value="\'route\'">route</md-option>\n </md-select>\n <div class="hint"><span translate="STAFF.HELP.NAT"></span></div>\n <div ng-messages="generalForm[\'nat\'].$error" ng-show="generalForm[\'nat\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NAT_REQUIRED">NAT field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.ALLOWCODECS">AllowCodecs</label>\n <md-select name="allow" ng-model="vm.telephone.allow" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'ulaw\'">ulaw</md-option>\n <md-option ng-value="\'alaw\'">alaw</md-option>\n <md-option ng-value="\'gsm\'">gsm</md-option>\n <md-option ng-value="\'g722\'">g722</md-option>\n <md-option ng-value="\'g729\'">g729</md-option>\n <md-option ng-value="\'opus\'">opus</md-option>\n <md-option ng-value="\'h264\'">h264</md-option>\n </md-select>\n <div class="hint"><span translate="STAFF.HELP.ALLOWCODECS"></span></div>\n <div ng-messages="generalForm[\'allow\'].$error" ng-show="generalForm[\'allow\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ALLOWCODECS_REQUIRED">AllowCodecs field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CALLERID">CallerId</label>\n <input type="text" name="callerid" ng-model="vm.telephone.callerid" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'callerid\'].$error" ng-show="generalForm[\'callerid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CALLERID_REQUIRED">CallerId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.telephone.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts" ng-disabled="context.canSelect === false">{{ context.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'context\'].$error" ng-show="generalForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CALLGROUP">Callgroup</label>\n <input type="text" name="callgroup" ng-model="vm.telephone.callgroup" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.CALLGROUP"></span></div>\n <div ng-messages="generalForm[\'callgroup\'].$error" ng-show="generalForm[\'callgroup\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CALLGROUP_REQUIRED">Callgroup field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.PICKUPGROUP">Pickupgroup</label>\n <input type="text" name="pickupgroup" ng-model="vm.telephone.pickupgroup" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.PICKUPGROUP"></span></div>\n <div ng-messages="generalForm[\'pickupgroup\'].$error" ng-show="generalForm[\'pickupgroup\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PICKUPGROUP_REQUIRED">Pickupgroup field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.VIDEOSUPPORT">Videosupport</label>\n <md-select name="videosupport" ng-model="vm.telephone.videosupport" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">Yes</md-option>\n <md-option ng-value="\'no\'">No</md-option>\n <md-option ng-value="\'always\'">Always</md-option>\n </md-select>\n <div ng-messages="generalForm[\'videosupport\'].$error" ng-show="generalForm[\'videosupport\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.VIDEOSUPPORT_REQUIRED">Videosupport field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.ENCRYPTION">Encryption</label>\n <md-select name="encryption" ng-model="vm.telephone.encryption" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">yes</md-option>\n <md-option ng-value="\'no\'">no</md-option>\n </md-select>\n <div class="hint"><span translate="STAFF.HELP.ENCRYPTION"></span></div>\n <div ng-messages="generalForm[\'encryption\'].$error" ng-show="generalForm[\'encryption\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ENCRYPTION_REQUIRED">Encryption field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/staff/views/telephones/telephones.html",'<div id="telephones" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-account-multiple" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="STAFF.TELEPHONES">Telephones</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="STAFF.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedTelephones.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedTelephones =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="STAFF.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-telephones-count">\n <span>{{vm.selectedTelephones.length}}</span>\n <span translate="STAFF.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="STAFF.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllTelephones()" translate="STAFF.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectTelephones()" translate="STAFF.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedTelephones" csv-label="true" filename="telephones.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedTelephones($event)" aria-label="delete selected" translate translate-attr-label="STAFF.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- TELEPHONE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedTelephones" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTelephones">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="fullname">{{ \'STAFF.ACCOUNTNAME\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'STAFF.USERNAME\' | translate }}</th>\n <th md-column md-order-by="email">{{ \'STAFF.EMAIL\' | translate }}</th>\n <th md-column md-order-by="internal">{{ \'STAFF.INTERNAL\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.telephones.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="STAFF.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="telephone" md-select-id="id" ng-repeat="telephone in vm.telephones.rows">\n <td md-cell ng-if="telephone.userpic"><img class="avatar" alt="{{telephone.name}}" ng-src="api/users/{{telephone.id}}/avatar" /></td>\n <td md-cell ng-if="!telephone.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{telephone.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(telephone, ev) : vm.createOrEditTelephone($event, telephone)" md-cell class="fullname font-weight-600">{{telephone.fullname}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(telephone, ev) : vm.createOrEditTelephone($event, telephone)" md-cell class="name ">{{telephone.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(telephone, ev) : vm.createOrEditTelephone($event, telephone)" md-cell class="email ">{{telephone.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(telephone, ev) : vm.createOrEditTelephone($event, telephone)" md-cell class="internal ">{{telephone.internal}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(telephone, $event )" translate="STAFF.EDIT_TELEPHONE">\n Edit Telephone\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(telephone, $event )" translate="STAFF.DELETE_TELEPHONE">\n Delete Telephone\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'STAFF.PAGE\' | translate}}:\', rowsPerPage: \'{{\'STAFF.ROWSPERPAGE\' | translate}}:\', of: \'{{\'STAFF.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.telephones.count}}" md-on-paginate="vm.getTelephones" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / TELEPHONE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD TELEPHONE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-telephone-button" ng-click="vm.createOrEditTelephone($event)" aria-label="add telephone" translate translate-attr-aria-label="STAFF.ADD_TELEPHONE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD TELEPHONE BUTTON --\x3e\n</div>'),e.put("app/main/apps/staff/views/userProfiles/create/dialog.html",'<md-dialog class="userProfile-dialog" aria-label="New UserProfile">\n <form name="userProfileForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="STAFF.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.userProfile.name" ng-required="true" autofocus ng-disabled="!vm.newUserProfile">\n\n <div ng-messages="userProfileForm[\'name\'].$error" ng-show="userProfileForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.userProfile.description">\n\n <div ng-messages="userProfileForm[\'description\'].$error" ng-show="userProfileForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CRUDPERMISSIONS">CrudPermissions</label>\n <md-select name="crudPermissions" ng-model="vm.userProfile.crudPermissions" multiple required>\n\n <md-option ng-value="\'r\'" disabled> {{ \'STAFF.READ_PERMISSION\' | translate }} </md-option>\n\n <md-option ng-value="\'e\'"> {{ \'STAFF.EDIT_PERMISSION\' | translate }} </md-option>\n\n <md-option ng-value="\'d\'"> {{ \'STAFF.DELETE_PERMISSION\' | translate }} </md-option>\n </md-select>\n <div ng-messages="userProfileForm[\'crudPermissions\'].$error" ng-show="userProfileForm[\'crudPermissions\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CRUDPERMISSIONS_REQUIRED">CrudPermissions field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.privacyEnabled" aria-label="Mask_Sensitive_Data"><span translate="STAFF.MASK_SENSITIVE_DATA">Mask_Sensitive_Data</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.MASK_SENSITIVE_DATA"></span></div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newUserProfile" ng-click="vm.saveUserProfile()" class="send-button md-accent md-raised" ng-disabled="userProfileForm.$invalid || userProfileForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newUserProfile" ng-click="vm.addNewUserProfile()" class="send-button md-accent md-raised" ng-disabled="userProfileForm.$invalid" aria-label="ADD" translate="STAFF.ADD_USERPROFILE" translate-attr-aria-label="STAFF.ADD_USERPROFILE">\n ADD USERPROFILE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newUserProfile" ng-click="vm.deleteUserProfile($event)" aria-label="DELETE" translate translate-attr-aria-label="STAFF.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="STAFF.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/userProfiles/edit/clone/clone.html",'<md-dialog class="userProfile-dialog" aria-label="Clone UserProfile">\n <form name="userProfileForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="STAFF.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.userProfile.name" ng-required="true" autofocus ng-disabled="!vm.newUserProfile">\n\n <div ng-messages="userProfileForm[\'name\'].$error" ng-show="userProfileForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.userProfile.description">\n\n <div ng-messages="userProfileForm[\'description\'].$error" ng-show="userProfileForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CRUDPERMISSIONS">CrudPermissions</label>\n <md-select name="crudPermissions" ng-model="vm.userProfile.crudPermissions" multiple required>\n\n <md-option ng-value="\'r\'" disabled> {{ \'STAFF.READ_PERMISSION\' | translate }} </md-option>\n\n <md-option ng-value="\'e\'"> {{ \'STAFF.EDIT_PERMISSION\' | translate }} </md-option>\n\n <md-option ng-value="\'d\'"> {{ \'STAFF.DELETE_PERMISSION\' | translate }} </md-option>\n </md-select>\n <div ng-messages="userProfileForm[\'crudPermissions\'].$error" ng-show="userProfileForm[\'crudPermissions\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CRUDPERMISSIONS_REQUIRED">CrudPermissions field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.privacyEnabled" aria-label="Mask_Sensitive_Data"><span translate="STAFF.MASK_SENSITIVE_DATA">Mask_Sensitive_Data</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.MASK_SENSITIVE_DATA"></span></div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <md-button type="submit" ng-click="vm.cloneUserProfile()" class="send-button md-accent md-raised" ng-disabled="userProfileForm.$invalid" aria-label="CLONE" translate="STAFF.CLONE_USERPROFILE" translate-attr-aria-label="STAFF.CLONE_USERPROFILE">\n CLONE USERPROFILE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/userProfiles/edit/permissionsmanage/permissionsmanage.html",'<md-dialog class="userProfile-dialog" aria-label="userProfile">\n <form name="userProfileForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2>{{vm.title}}</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog($event)">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <div layout="column" class="padding-bottom-10">\n <div layout="row" class="padding-bottom-10">\n <md-input-container flex class="no-margin">\n <label translate="STAFF.SECTIONS">Sections</label>\n <md-select name="sections" ng-model="vm.selectedSection" placeholder="{{\'STAFF.PERMISSIONS_SELECT_SECTION\' | translate}}" ng-change="vm.onChangeSection()" required>\n <md-option ng-value="subsection" ng-repeat="subsection in vm.subsections" ng-selected="{{vm.subsections.length === 1 ? \'true\' : \'false\'}}">{{subsection.translate | translate}}</md-option>\n </md-select>\n </md-input-container>\n <div layout="row" ng-show="vm.selectedSection" class="margin-left-10">\n <md-button ng-switch="vm.selectedSection.enabled" class="md-icon-button md-fab md-mini size-8 padding-10" ng-class="vm.selectedSection.enabled ? \'blue-500-bg\' : \'grey-A400-bg\'" ng-click="vm.onChangeVisibility()" aria-label="Visibility">\n <md-icon ng-switch-when="true" md-font-icon="icon-eye" aria-label="Visible section">\n <md-tooltip>{{\'STAFF.PERMISSIONS_SECTION_HIDE\' | translate}}</md-tooltip>\n </md-icon>\n <md-icon ng-switch-when="false" md-font-icon="icon-eye-off" aria-label="Hidden section">\n <md-tooltip>{{\'STAFF.PERMISSIONS_SECTION_SHOW\' | translate}}</md-tooltip>\n </md-icon>\n </md-button>\n <div>\n <md-button class="md-icon-button md-fab md-mini size-8 green-A700-bg no-margin" ng-disabled="true">\n <md-icon md-font-icon="icon-monitor" class="md-background-fg" aria-label="Read permission">\n <md-tooltip>{{\'STAFF.READ_PERMISSION\' | translate}}</md-tooltip>\n </md-icon>\n </md-button>\n <md-button class="md-icon-button md-fab md-mini size-8 no-margin" ng-class="vm.selectedSection.allowEdit ? \'green-A700-bg\' : \'grey-A400-bg\'" ng-click="vm.setPermission(\'edit\')">\n <md-icon md-font-icon="icon-pencil" aria-label="Edit permission">\n <md-tooltip>{{\'STAFF.EDIT_PERMISSION\' | translate}}</md-tooltip>\n </md-icon>\n </md-button>\n <md-button class="md-icon-button md-fab md-mini size-8 no-margin" ng-class="vm.selectedSection.allowDelete ? \'green-A700-bg\' : \'grey-A400-bg\'" ng-click="vm.setPermission(\'delete\')">\n <md-icon md-font-icon="icon-delete" aria-label="Delete permission">\n <md-tooltip>{{\'STAFF.DELETE_PERMISSION\' | translate}}</md-tooltip>\n </md-icon>\n </md-button>\n </div>\n </div>\n </div>\n <div layout="row" ng-show="vm.selectedSection" class="margin-left-10" ng-if="!vm.selectedSection.permissions || vm.selectedSection.permissions.association">\n <md-switch ng-model="vm.selectedSection.autoAssociation" class="no-margin padding-right-10" aria-label="Auto association" ng-change="vm.onChangeAutoAssociation()">\n </md-switch>\n <p class="no-margin font-size-12 line-height-30">{{\'STAFF.PERMISSIONS_AUTO_ASSOCIATION_INFO\' | translate}}</p>\n </div>\n <div layout="row" ng-show="vm.selectedSection && vm.selectedSection.title === \'Reports\' && !vm.selectedSection.autoAssociation" class="margin-bottom-10 margin-top-30" ng-if="!vm.selectedSection.permissions || vm.selectedSection.permissions.association">\n <md-input-container flex class="no-margin">\n <label translate="STAFF.REPORT_TYPE">Report Type</label>\n <md-select name="type" ng-model="vm.selectedSection.reportType" placeholder="{{\'STAFF.PERMISSIONS_SELECT_REPORT_TYPE\' | translate}}" ng-change="vm.onChangeReportType()" required>\n <md-option ng-value="\'default\'">Default</md-option>\n <md-option ng-value="\'custom\'">Custom</md-option>\n </md-select>\n </md-input-container>\n </div>\n <div ng-show="vm.selectedSection && vm.selectedSection.title === \'Dashboards\'" class="user-profile-section-help margin-bottom-10 margin-top-20">\n <md-icon md-font-icon="icon-help" aria-label="Dashboards help"></md-icon>\n <span class="no-margin font-size-12 line-height-30" translate="STAFF.HELP.CUSTOM_DASHBOARDS_PERMISSIONS"></span>\n </div>\n </div>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" ng-if="!vm.selectedSection.permissions || vm.selectedSection.permissions.association" ng-hide="vm.selectedSection.autoAssociation"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center">\n <div>\n <md-icon md-font-icon="icon-information-outline" aria-label="Delete permission"></md-icon>\n <span class="no-margin font-size-12 line-height-30" translate="STAFF.HELP.SAVE_PERMISSIONS"></span>\n </div>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveSection()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/userProfiles/edit/view.html",'<div id="staff-userProfile" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-userProfiles-button md-icon-button" aria-label="Go to userProfiles" ng-click="vm.gotoUserProfiles()" translate translate-attr-aria-label="STAFF.GO_TO_USERPROFILES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="userProfile-image" hide-xs>\n <img ng-src="assets/images/business/userProfiles.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.userProfile.id}}\n <span ng-if="vm.userProfile.name">{{vm.userProfile.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="STAFF.CREATED_AT"></span> <span>{{vm.userProfile.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.clonedialog(vm.userProfile, $event)" class="md-fab md-amber-500-bg md-icon-button" aria-label="clone">\n <md-tooltip><span translate="STAFF.CLONE_USERPROFILE"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveUserProfile()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (modulesForm.$invalid) || (download_permissionsForm.$invalid)" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="userProfile-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="STAFF.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.userProfile.name" ng-required="true" autofocus disabled>\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.userProfile.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CRUDPERMISSIONS">CrudPermissions</label>\n <md-select name="crudPermissions" ng-model="vm.userProfile.crudPermissions" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'r\'" disabled> {{ \'STAFF.READ_PERMISSION\' | translate }} </md-option>\n\n <md-option ng-value="\'e\'"> {{ \'STAFF.EDIT_PERMISSION\' | translate }} </md-option>\n\n <md-option ng-value="\'d\'"> {{ \'STAFF.DELETE_PERMISSION\' | translate }} </md-option>\n </md-select>\n <div ng-messages="generalForm[\'crudPermissions\'].$error" ng-show="generalForm[\'crudPermissions\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CRUDPERMISSIONS_REQUIRED">CrudPermissions field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.privacyEnabled" aria-label="Mask_Sensitive_Data" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.MASK_SENSITIVE_DATA">Mask_Sensitive_Data</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.MASK_SENSITIVE_DATA"></span></div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.PERMISSIONS">PERMISSIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="userProfile-detail-form-container modules md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.MODULES">MODULES</div>\n </div>\n <div ng-controller="UserProfilePermissionsController as vm_pc" ng-init="vm_pc.init(vm.userProfile, vm.license)" class="userProfile-detail-form-container">\n <md-grid-list flex md-cols-gt-xs="2" md-cols-gt-sm="2" md-cols-gt-md="4" md-cols-gt-lg="6" md-row-height-gt-xs="2:1" md-row-height-gt-sm="3:1" md-row-height-gt-md="3:1" gt-xs-gutter="4px" gt-sm-gutter="4px" gt-md-gutter="16px" gt-lg-gutter="16px">\n <md-grid-tile ng-repeat="father in vm_pc.modules" ng-if="vm_pc.userProfile.role !== \'admin\' && !father.permissions.hidden" md-colspan="2">\n <md-card flex-xs flex-gt-xs="90" layout="column" no-padding no-margin>\n <md-card-header>\n <md-card-avatar>\n <md-icon class="md-avatar-icon auto-size" md-font-icon="{{father.icon}}" ng-class="{ true: father.status.color }[true]">\n <md-tooltip>{{ father.status.info }}</md-tooltip>\n </md-icon>\n </md-card-avatar>\n <md-card-header-text layout-align="center start">\n <span class="md-title" translate="{{father.translate}}">{{ father.title }}</span>\n </md-card-header-text>\n <md-card-actions class="no-margin" layout="row" ng-init="vm_pc.checkSectionResources(father)" ng-if="father.status.tag != \'unlicensed\'">\n <md-switch class="auto-height no-margin" ng-model="father.allResourcesEnabled" ng-change="vm_pc.onChangeEnableAllResources(father)" aria-label="Enable all"></md-switch>\n <md-button class="md-mini auto-width" aria-label="Manage" ng-click="vm_pc.manageResources(father)" ng-hide="father.permissions && !father.permissions.association">\n <md-tooltip>{{\'STAFF.PERMISSIONS_MANAGE\' | translate}}\n </md-tooltip>\n <md-icon md-font-icon="icon-cog"></md-icon>\n </md-button>\n </md-card-actions>\n <md-card-header-text ng-if="father.status.tag === \'unlicensed\'" layout-align="center end">\n <span class="md-subhead red-A700-fg">{{ father.status.name }}</span>\n </md-card-header-text>\n </md-card-header>\n </md-card>\n </md-grid-tile>\n </md-grid-list>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.DOWNLOADS">DOWNLOADS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="userProfile-detail-form-container download_permissions md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.DOWNLOAD_PERMISSIONS">DOWNLOAD_PERMISSIONS</div>\n </div>\n <form name="download_permissionsForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadAttachments" aria-label="Attachments" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.ATTACHMENTS">Attachments</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadCallySquareRecordings" aria-label="CallySquare_Recordings" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.CALLYSQUARE_RECORDINGS">CallySquare_Recordings</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadContactManagerLists" aria-label="Contact_Manager_Lists" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.CONTACT_MANAGER_LISTS">Contact_Manager_Lists</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadJscriptySessions" aria-label="Jscripty_Sessions" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.JSCRIPTY_SESSIONS">Jscripty_Sessions</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadOmnichannelInteractions" aria-label="Omnichannel_Interactions" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.OMNICHANNEL_INTERACTIONS">Omnichannel_Interactions</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadScreenRecordings" aria-label="Screen_Recordings" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.SCREEN_RECORDINGS">Screen_Recordings</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.userProfile.downloadVoiceRecordings" aria-label="Voice_Recordings" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.VOICE_RECORDINGS">Voice_Recordings</span></md-switch>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/staff/views/userProfiles/userProfiles.html",'<div id="userProfiles" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-account-multiple" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="STAFF.USERPROFILES">UserProfiles</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="STAFF.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedUserProfiles.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedUserProfiles =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="STAFF.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-userProfiles-count">\n <span>{{vm.selectedUserProfiles.length}}</span>\n <span translate="STAFF.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="STAFF.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllUserProfiles()" translate="STAFF.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectUserProfiles()" translate="STAFF.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedUserProfiles" csv-label="true" filename="userProfiles.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedUserProfiles($event)" aria-label="delete selected" translate translate-attr-label="STAFF.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- USERPROFILE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedUserProfiles" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getUserProfiles">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'STAFF.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'STAFF.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'STAFF.DESCRIPTION\' | translate }}</th>\n <th md-column md-order-by="crudPermissions">{{ \'STAFF.CRUDPERMISSIONS\' | translate }}</th>\n <th md-column md-order-by="privacyEnabled">{{ \'STAFF.MASK_SENSITIVE_DATA\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.userProfiles.rows.length">\n <td md-cell colspan="6">\n <div layout="row" layout-align="center center">\n <span translate="STAFF.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="userProfile" md-select-id="id" ng-repeat="userProfile in vm.userProfiles.rows">\n <td md-cell ng-if="userProfile.userpic"><img class="avatar" alt="{{userProfile.name}}" ng-src="api/users/{{userProfile.id}}/avatar" /></td>\n <td md-cell ng-if="!userProfile.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{userProfile.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(userProfile, ev) : vm.createOrEditUserProfile($event, userProfile)" md-cell class="id ">{{userProfile.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(userProfile, ev) : vm.createOrEditUserProfile($event, userProfile)" md-cell class="name ">{{userProfile.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(userProfile, ev) : vm.createOrEditUserProfile($event, userProfile)" md-cell class="description ">{{userProfile.description}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(userProfile, ev) : vm.createOrEditUserProfile($event, userProfile)" md-cell class="crudPermissions ">{{userProfile.selectedcrudPermissions}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(userProfile, ev) : vm.createOrEditUserProfile($event, userProfile)" md-cell class="privacyEnabled ">\n <md-icon md-colors="{color: {{userProfile.privacyEnabled ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{userProfile.privacyEnabled ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(userProfile, $event )" translate="STAFF.EDIT_USERPROFILE">\n Edit UserProfile\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.clonedialog(userProfile, $event )" translate="STAFF.CLONE_USERPROFILE">\n clone UserProfile\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.role === \'admin\' && user.id !== vm.currentUser.id">\n\n <md-button ng-click="vm.deleteconfirm(userProfile, $event )" translate="STAFF.DELETE_USERPROFILE">\n Delete UserProfile\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'STAFF.PAGE\' | translate}}:\', rowsPerPage: \'{{\'STAFF.ROWSPERPAGE\' | translate}}:\', of: \'{{\'STAFF.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.userProfiles.count}}" md-on-paginate="vm.getUserProfiles" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / USERPROFILE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD USERPROFILE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-userProfile-button" ng-click="vm.createOrEditUserProfile($event)" aria-label="add userProfile" translate translate-attr-aria-label="STAFF.ADD_USERPROFILE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD USERPROFILE BUTTON --\x3e\n</div>'),e.put("app/main/apps/staff/views/users/create/dialog.html",'<md-dialog class="user-dialog" aria-label="New User">\n <form name="userForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="STAFF.ROLE">Role</label>\n <md-select name="role" ng-model="vm.user.role" autofocus required ng-disabled="!vm.newUser">\n <md-option ng-value="\'admin\'">Admin</md-option>\n <md-option ng-value="\'user\'">User</md-option>\n </md-select>\n <div ng-messages="userForm[\'role\'].$error" ng-show="userForm[\'role\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ROLE_REQUIRED">Role field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.user.role === \'user\'" class="md-block">\n <label translate="STAFF.USERPROFILE">UserProfile</label>\n <md-select name="userProfileId" ng-model="vm.user.userProfileId" required>\n <md-option ng-value="userProfileId.id" ng-repeat="userProfileId in vm.userProfiles" ng-disabled="userProfileId.canSelect === false">{{ userProfileId.name }}</md-option>\n </md-select>\n <div ng-messages="userForm[\'userProfileId\'].$error" ng-show="userForm[\'userProfileId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.USERPROFILE_REQUIRED">UserProfile field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.FULLNAME">Fullname</label>\n <input type="text" name="fullname" ng-model="vm.user.fullname" ng-required="true">\n\n <div ng-messages="userForm[\'fullname\'].$error" ng-show="userForm[\'fullname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.FULLNAME_REQUIRED">Fullname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.USERNAME">Username</label>\n <input type="text" name="name" ng-model="vm.user.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" ng-disabled="!vm.newUser">\n\n <div class="hint"><span translate="STAFF.HELP.USERNAME"></span></div>\n <div ng-messages="userForm[\'name\'].$error" ng-show="userForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.USERNAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Username must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.user.email" ng-required="true">\n\n <div ng-messages="userForm[\'email\'].$error" ng-show="userForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="STAFF.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.newUser">\n <label translate="STAFF.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.user.password" placeholder="Password" ng-pattern="vm.passwordPattern" translate translate-attr-placeholder="STAFF.PASSWORD" required>\n <div ng-messages="userForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.newUser && (vm.newUser)">\n <label translate="STAFF.CONFIRM_PASSWORD">Confirm Password</label>\n <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword" required>\n <div ng-messages="userForm.confirmPassword.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n </div>\n <div ng-message="passwordMatch">\n <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.user.description">\n\n <div ng-messages="userForm[\'description\'].$error" ng-show="userForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.newUser" class="md-block">\n <md-switch ng-model="vm.user.autointernal" aria-label="AutoInternal"><span translate="STAFF.AUTOINTERNAL">AutoInternal</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="!vm.user.autointernal" class="md-block">\n <label translate="STAFF.INTERNAL">Internal</label>\n <input type="text" name="internal" ng-model="vm.user.internal" ng-required="true" ng-disabled="!vm.newUser">\n\n <div ng-messages="userForm[\'internal\'].$error" ng-show="userForm[\'internal\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newUser" ng-click="vm.saveUser()" class="send-button md-accent md-raised" ng-disabled="userForm.$invalid || userForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newUser" ng-click="vm.addNewUser()" class="send-button md-accent md-raised" ng-disabled="userForm.$invalid" aria-label="ADD" translate="STAFF.ADD_USER" translate-attr-aria-label="STAFF.ADD_USER">\n ADD USER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newUser" ng-click="vm.deleteUser($event)" aria-label="DELETE" translate translate-attr-aria-label="STAFF.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="STAFF.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/users/edit/apikeymanager/apikeymanager.html",'<md-dialog class="user-dialog" aria-label="{{vm.name}}">\n <form name="userForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ \'\n STAFF.MANAGE_API_KEY\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-card layout-fill layout-padding>\n <textarea class="api-key-area" ng-model="vm.user.apiKey" rows="6" disabled></textarea>\n </md-card>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.generateApiKey()" class="send-button md-accent md-raised" aria-label="Generate" translate="{{ vm.user.apiKey === \'N/A\' ? \'STAFF.GENERATE\' : \'STAFF.REGENERATE\' }}" translate-attr-aria-label="STAFF.GENERATE">\n Generate\n </md-button>\n <md-button type="submit" ng-click="vm.removeApiKey()" class="send-button md-accent md-raised" aria-label="Remove" translate="STAFF.REMOVE" translate-attr-aria-label="STAFF.DELETE">\n Delete\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/users/edit/changepassword/changepassword.html",'<md-dialog class="user-dialog" aria-label="{{vm.name}}">\n <form name="userForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ \'\n STAFF.CHANGE_PASSWORD\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block" ng-if="vm.currentUser.id == vm.user.id">\n <label translate="STAFF.OLD_PASSWORD">Old Password</label>\n <input type="password" name="oldPassword" ng-model="vm.oldPassword" placeholder="Password" translate translate-attr-placeholder="STAFF.OLD_PASSWORD" required>\n <div ng-messages="userForm.oldPassword.$error" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.NEW_PASSWORD">New Password</label>\n <input type="password" name="password" ng-model="vm.password" placeholder="Password" translate ng-pattern="vm.passwordPattern" translate-attr-placeholder="STAFF.NEW_PASSWORD" required>\n <div ng-messages="userForm.password.$error" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PASSWORD_REQUIRED">Password field is\n required</span>\n </div>\n\n\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.SECURE_PASSWORD_PATTERN">Must contain\n at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric\n character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n <div ng-message="oldPasswordMatch">\n <span translate="STAFF.ERRORS.PASSWORD_OLDPASSWORD_MATCH">New password must be different from old one</span>\n </div>\n\n\n\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CONFIRM_PASSWORD">Confirm Password</label>\n <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n <div ng-messages="userForm.confirmPassword.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CONFIRM_REQUIRED">Confirm field is\n required</span>\n </div>\n <div ng-message="passwordMatch">\n <span translate="STAFF.ERRORS.CONFIRM_NOT_MATCH">Your password did\n not match</span>\n </div>\n </div>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.savePassword()" class="send-button md-accent md-raised" ng-disabled="userForm.$invalid || userForm.$pristine" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/staff/views/users/edit/view.html",'<div id="staff-user" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-users-button md-icon-button" aria-label="Go to users" ng-click="vm.gotoUsers()" translate translate-attr-aria-label="STAFF.GO_TO_USERS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="user-image" hide-xs>\n <img ng-src="assets/images/business/users.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.user.id}}\n <span ng-if="vm.user.name">{{vm.user.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="STAFF.CREATED_AT"></span> <span>{{vm.user.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.apikeymanagerdialog(vm.user, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="apikeymanager">\n <md-tooltip><span translate="STAFF.APIKEYMANAGER_USER"></span></md-tooltip>\n <md-icon md-font-icon="fab fa-hubspot"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.changepassworddialog(vm.user, $event)" class="md-fab md-warn md-icon-button" aria-label="changepassword">\n <md-tooltip><span translate="STAFF.CHANGEPASSWORD_USER"></span></md-tooltip>\n <md-icon md-font-icon="icon-key-variant"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveUser()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(personal_infoForm.$invalid) || (security_suiteForm.$invalid) || (change_avatarForm.$invalid) || (generalForm.$invalid)" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.ACCOUNT">ACCOUNT</span>\n </md-tab-label>\n <md-tab-body>\n <div class="user-detail-form-container personal_info md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.PERSONAL_INFO">PERSONAL_INFO</div>\n </div>\n <form name="personal_infoForm" novalidate>\n <md-input-container class="md-block">\n <label translate="STAFF.ROLE">Role</label>\n <md-select name="role" ng-model="vm.user.role" autofocus required disabled>\n <md-option ng-value="\'admin\'">Admin</md-option>\n <md-option ng-value="\'user\'">User</md-option>\n </md-select>\n <div ng-messages="personal_infoForm[\'role\'].$error" ng-show="personal_infoForm[\'role\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ROLE_REQUIRED">Role field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.user.role === \'user\'" class="md-block">\n <label translate="STAFF.USERPROFILE">UserProfile</label>\n <md-select name="userProfileId" ng-model="vm.user.userProfileId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="userProfileId.id" ng-repeat="userProfileId in vm.userProfiles" ng-disabled="userProfileId.canSelect === false">{{ userProfileId.name }}</md-option>\n </md-select>\n <div ng-messages="personal_infoForm[\'userProfileId\'].$error" ng-show="personal_infoForm[\'userProfileId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.USERPROFILE_REQUIRED">UserProfile field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.FULLNAME">Fullname</label>\n <input type="text" name="fullname" ng-model="vm.user.fullname" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'fullname\'].$error" ng-show="personal_infoForm[\'fullname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.FULLNAME_REQUIRED">Fullname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.USERNAME">Username</label>\n <input type="text" name="name" ng-model="vm.user.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" disabled>\n\n <div class="hint"><span translate="STAFF.HELP.USERNAME"></span></div>\n <div ng-messages="personal_infoForm[\'name\'].$error" ng-show="personal_infoForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.USERNAME_REQUIRED">Username field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="STAFF.ERRORS.USERNAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Username must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.user.email" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'email\'].$error" ng-show="personal_infoForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="STAFF.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.user.phone" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'phone\'].$error" ng-show="personal_infoForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.MOBILE">Mobile</label>\n <input type="text" name="mobile" ng-model="vm.user.mobile" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'mobile\'].$error" ng-show="personal_infoForm[\'mobile\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.MOBILE_REQUIRED">Mobile field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.user.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="personal_infoForm[\'description\'].$error" ng-show="personal_infoForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="user-detail-form-container security_suite md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.SECURITY_SUITE">SECURITY_SUITE</div>\n </div>\n <form name="security_suiteForm" novalidate>\n <md-input-container ng-if="vm.user.passwordResetAt != null" class="md-block">\n <label translate="STAFF.LAST_PASSWORD_RESET_AT">Last_Password_Reset_At</label>\n <input type="text" name="passwordResetAt" ng-model="vm.user.passwordResetAt" autofocus disabled>\n\n <div class="hint"><span translate="STAFF.HELP.LAST_PASSWORD_RESET_AT"></span></div>\n <div ng-messages="security_suiteForm[\'passwordResetAt\'].$error" ng-show="security_suiteForm[\'passwordResetAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.LAST_PASSWORD_RESET_AT_REQUIRED">Last_Password_Reset_At field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.user.passwordResetAt == null" class="md-block">\n <label translate="STAFF.NO_PASSWORD_CHANGE">No_Password_Change</label>\n <input type="text" name="passwordResetAt" ng-model="vm.user.passwordResetAt" disabled>\n\n <div ng-messages="security_suiteForm[\'passwordResetAt\'].$error" ng-show="security_suiteForm[\'passwordResetAt\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NO_PASSWORD_CHANGE_REQUIRED">No_Password_Change field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.APIKEY">ApiKey</label>\n <div layout="row" layout-align="center center">\n <button class="md-button md-fab md-mini md-primary" ngclipboard data-clipboard-target="#copytoclipboard-apiKey" ngclipboard-success="vm.alert({title: \'copied to clipboard\', msg: \'API Key copied!\' });" ngclipboard-error="vm.alert({title: \'error\', msg: \'copy to clipboard failed\'});">\n <md-icon md-font-icon="icon-clipboard-text"></md-icon>\n </button>\n <input class="md-input" type="text" id="copytoclipboard-apiKey" name="apiKey" ng-model="vm.user.apiKey" ng-readonly="true">\n </div>\n <div class="hint"><span translate="STAFF.HELP.APIKEY"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.user.id != vm.currentUser.id && vm.currentUser.role == \'admin\'" class="md-block">\n <md-switch ng-model="vm.user.disabled" aria-label="Disabled" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.DISABLED">Disabled</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.DISABLED"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.user.id != vm.currentUser.id && vm.currentUser.role == \'admin\' && vm.user.disabled == 0" class="md-block">\n <md-switch ng-model="vm.user.blocked" aria-label="Blocked" ng-disabled="!vm.crudPermissions.canEdit"><span translate="STAFF.BLOCKED">Blocked</span></md-switch>\n <div class="hint"><span translate="STAFF.HELP.BLOCKED"></span></div>\n </md-input-container>\n\n </form>\n </div>\n <div class="user-detail-form-container change_avatar md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.CHANGE_AVATAR">CHANGE_AVATAR</div>\n </div>\n <div ng-controller="Userchange_avatarController as vm_ca" ng-init="vm_ca.init(vm.user, vm.crudPermissions)" class="user-detail-form-container md-background-bg md-whiteframe-1dp">\n\n <div id="user-image-uploader" flow-init="vm_ca.ngFlowOptions" flow-name="vm_ca.ngFlow.flow" flow-files-submitted="vm_ca.upload()" flow-file-added="vm_ca.fileAdded($file)" flow-file-success="vm_ca.fileSuccess($file, $message)" flow-complete="vm_ca.uploadComplete()" flow-drop flow-drag-enter="vm_ca.dropping=true" flow-drag-leave="vm_ca.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="EC.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn ng-disabled="!vm_ca.crudPermissions.canEdit">\n Upload\n </md-button>\n <span class="secondary-text mt-8">You can also drop images here to upload. Only PNG, JPG - Max. 8MB</span>\n </div>\n\n <div layout="row" layout-align="start start" layout-wrap>\n <div ng-repeat="change_avatarimage in vm_ca.user.images" ng-switch="change_avatarimage.type">\n <div class="user-image uploading" ng-switch-when="uploading" layout="row" layout-align="center center">\n <div class="overlay" layout="column" layout-align="center center">\n <md-progress-linear md-mode="determinate" value="{{change_avatarimage.file.progress() * 100}}">\n </md-progress-linear>\n </div>\n <img class="media" flow-img="change_avatarimage.file">\n </div>\n\n <div class="user-image" ng-switch-when="image" layout="row" layout-align="center center">\n <img class="media" ng-src="{{change_avatarimage.url}}">\n </div>\n </div>\n </div>\n </div>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="STAFF.VOICE">VOICE</span>\n </md-tab-label>\n <md-tab-body>\n <div class="user-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="STAFF.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container ng-if="!vm.user.autointernal" class="md-block">\n <label translate="STAFF.INTERNAL">Internal</label>\n <input type="text" name="internal" ng-model="vm.user.internal" ng-required="true" autofocus disabled>\n\n <div ng-messages="generalForm[\'internal\'].$error" ng-show="generalForm[\'internal\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.INTERNAL_REQUIRED">Internal field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.TRANSPORT">Transport</label>\n <md-select name="transport" ng-model="vm.user.transport" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'udp\'">udp</md-option>\n <md-option ng-value="\'tcp\'">tcp</md-option>\n <md-option ng-value="\'ws\'">ws</md-option>\n <md-option ng-value="\'wss\'">wss</md-option>\n <md-option ng-value="\'tls\'">tls</md-option>\n </md-select>\n <div ng-messages="generalForm[\'transport\'].$error" ng-show="generalForm[\'transport\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.TRANSPORT_REQUIRED">Transport field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.NAT">NAT</label>\n <md-select name="nat" ng-model="vm.user.nat" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'force_rport\'">force_rport</md-option>\n <md-option ng-value="\'comedia\'">comedia</md-option>\n <md-option ng-value="\'yes\'">yes</md-option>\n <md-option ng-value="\'no\'">no</md-option>\n <md-option ng-value="\'never\'">never</md-option>\n <md-option ng-value="\'route\'">route</md-option>\n </md-select>\n <div class="hint"><span translate="STAFF.HELP.NAT"></span></div>\n <div ng-messages="generalForm[\'nat\'].$error" ng-show="generalForm[\'nat\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.NAT_REQUIRED">NAT field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.ALLOWCODECS">AllowCodecs</label>\n <md-select name="allow" ng-model="vm.user.allow" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'ulaw\'">ulaw</md-option>\n <md-option ng-value="\'alaw\'">alaw</md-option>\n <md-option ng-value="\'gsm\'">gsm</md-option>\n <md-option ng-value="\'g722\'">g722</md-option>\n <md-option ng-value="\'g729\'">g729</md-option>\n <md-option ng-value="\'opus\'">opus</md-option>\n <md-option ng-value="\'h264\'">h264</md-option>\n </md-select>\n <div class="hint"><span translate="STAFF.HELP.ALLOWCODECS"></span></div>\n <div ng-messages="generalForm[\'allow\'].$error" ng-show="generalForm[\'allow\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.ALLOWCODECS_REQUIRED">AllowCodecs field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.user.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts" ng-disabled="context.canSelect === false">{{ context.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'context\'].$error" ng-show="generalForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.CALLGROUP">Callgroup</label>\n <input type="text" name="callgroup" ng-model="vm.user.callgroup" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.CALLGROUP"></span></div>\n <div ng-messages="generalForm[\'callgroup\'].$error" ng-show="generalForm[\'callgroup\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.CALLGROUP_REQUIRED">Callgroup field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.PICKUPGROUP">Pickupgroup</label>\n <input type="text" name="pickupgroup" ng-model="vm.user.pickupgroup" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="STAFF.HELP.PICKUPGROUP"></span></div>\n <div ng-messages="generalForm[\'pickupgroup\'].$error" ng-show="generalForm[\'pickupgroup\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.PICKUPGROUP_REQUIRED">Pickupgroup field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.APIKEY">ApiKey</label>\n <div layout="row" layout-align="center center">\n <button class="md-button md-fab md-mini md-primary" ngclipboard data-clipboard-target="#copytoclipboard-apiKey" ngclipboard-success="vm.alert({title: \'copied to clipboard\', msg: \'API Key copied!\' });" ngclipboard-error="vm.alert({title: \'error\', msg: \'copy to clipboard failed\'});">\n <md-icon md-font-icon="icon-clipboard-text"></md-icon>\n </button>\n <input class="md-input" type="text" id="copytoclipboard-apiKey" name="apiKey" ng-model="vm.user.apiKey" ng-readonly="true">\n </div>\n <div class="hint"><span translate="STAFF.HELP.APIKEY"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="STAFF.VIDEOSUPPORT">Videosupport</label>\n <md-select name="videosupport" ng-model="vm.user.videosupport" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">Yes</md-option>\n <md-option ng-value="\'no\'">No</md-option>\n <md-option ng-value="\'always\'">Always</md-option>\n </md-select>\n <div ng-messages="generalForm[\'videosupport\'].$error" ng-show="generalForm[\'videosupport\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="STAFF.ERRORS.VIDEOSUPPORT_REQUIRED">Videosupport field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/staff/views/users/users.html",'<div id="users" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-account-multiple" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="STAFF.USERS">Users</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="STAFF.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedUsers.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedUsers =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="STAFF.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-users-count">\n <span>{{vm.selectedUsers.length}}</span>\n <span translate="STAFF.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="STAFF.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllUsers()" translate="STAFF.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectUsers()" translate="STAFF.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedUsers" csv-label="true" filename="users.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- USER TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedUsers" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getUsers">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="role">{{ \'STAFF.ROLE\' | translate }}</th>\n <th md-column md-order-by="userProfileId">{{ \'STAFF.USERPROFILE\' | translate }}</th>\n <th md-column md-order-by="fullname">{{ \'STAFF.FULLNAME\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'STAFF.USERNAME\' | translate }}</th>\n <th md-column md-order-by="email">{{ \'STAFF.EMAIL\' | translate }}</th>\n <th md-column md-order-by="phone">{{ \'STAFF.PHONE\' | translate }}</th>\n <th md-column md-order-by="mobile">{{ \'STAFF.MOBILE\' | translate }}</th>\n <th md-column md-order-by="internal">{{ \'STAFF.INTERNAL\' | translate }}</th>\n <th md-column md-order-by="disabled">{{ \'STAFF.DISABLED\' | translate }}</th>\n <th md-column md-order-by="blocked">{{ \'STAFF.BLOCKED\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.users.rows.length">\n <td md-cell colspan="11">\n <div layout="row" layout-align="center center">\n <span translate="STAFF.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="user" md-select-id="id" ng-repeat="user in vm.users.rows">\n <td md-cell ng-if="user.userpic"><img class="avatar" alt="{{user.name}}" ng-src="api/users/{{user.id}}/avatar" /></td>\n <td md-cell ng-if="!user.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{user.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="role ">{{ vm.arrayrole[user.role].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="userProfileId font-weight-600">{{ (vm.userProfiles | filter : {\'id\':user.userProfileId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="fullname font-weight-600">{{user.fullname}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="name ">{{user.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="email ">{{user.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="phone ">{{user.phone}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="mobile ">{{user.mobile}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="internal ">{{user.internal}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="disabled ">\n <md-icon md-colors="{color: {{user.disabled ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{user.disabled ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(user, ev) : vm.createOrEditUser($event, user)" md-cell class="blocked ">\n <md-icon md-colors="{color: {{user.blocked ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{user.blocked ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(user, $event )" translate="STAFF.EDIT_USER">\n Edit User\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.role === \'admin\' && user.id !== vm.currentUser.id">\n\n <md-button ng-click="vm.deleteconfirm(user, $event )" translate="STAFF.DELETE_USER">\n Delete User\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'STAFF.PAGE\' | translate}}:\', rowsPerPage: \'{{\'STAFF.ROWSPERPAGE\' | translate}}:\', of: \'{{\'STAFF.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.users.count}}" md-on-paginate="vm.getUsers" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / USER TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD USER BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-user-button" ng-click="vm.createOrEditUser($event)" aria-label="add user" translate translate-attr-aria-label="STAFF.ADD_USER">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD USER BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/cannedAnswers/cannedAnswers.html",'<div id="cannedAnswers" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="TOOLS.CANNEDANSWERS">CannedAnswers</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedCannedAnswers.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedCannedAnswers =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="TOOLS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-cannedAnswers-count">\n <span>{{vm.selectedCannedAnswers.length}}</span>\n <span translate="TOOLS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TOOLS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllCannedAnswers()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectCannedAnswers()" translate="TOOLS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedCannedAnswers" csv-label="true" filename="cannedAnswers.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedCannedAnswers($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- CANNEDANSWER TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedCannedAnswers" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getCannedAnswers">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="key">{{ \'TOOLS.KEY\' | translate }}</th>\n <th md-column md-order-by="value">{{ \'TOOLS.VALUE\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.cannedAnswers.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="cannedAnswer" md-select-id="id" ng-repeat="cannedAnswer in vm.cannedAnswers.rows">\n <td md-cell ng-if="cannedAnswer.userpic"><img class="avatar" alt="{{cannedAnswer.name}}" ng-src="api/users/{{cannedAnswer.id}}/avatar" /></td>\n <td md-cell ng-if="!cannedAnswer.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{cannedAnswer.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditCannedAnswer($event, cannedAnswer)" md-cell class="id ">{{cannedAnswer.id}}</td>\n <td ng-click="vm.createOrEditCannedAnswer($event, cannedAnswer)" md-cell class="key ">{{cannedAnswer.key}}</td>\n <td ng-click="vm.createOrEditCannedAnswer($event, cannedAnswer)" md-cell class="value ">{{cannedAnswer.value}}</td>\n <td ng-click="vm.createOrEditCannedAnswer($event, cannedAnswer)" md-cell class="description ">{{cannedAnswer.description}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(cannedAnswer, $event )" translate="TOOLS.EDIT_CANNEDANSWER">\n Edit CannedAnswer\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(cannedAnswer, $event )" translate="TOOLS.DELETE_CANNEDANSWER">\n Delete CannedAnswer\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.cannedAnswers.count}}" md-on-paginate="vm.getCannedAnswers" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / CANNEDANSWER TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD CANNEDANSWER BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-cannedAnswer-button" ng-click="vm.createOrEditCannedAnswer($event)" aria-label="add cannedAnswer" translate translate-attr-aria-label="TOOLS.ADD_CANNEDANSWER">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD CANNEDANSWER BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/cannedAnswers/create/dialog.html",'<md-dialog class="cannedAnswer-dialog" aria-label="New CannedAnswer">\n <form name="cannedAnswerForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.cannedAnswer.key" md-maxlength="255" ng-required="true" autofocus>\n\n <div ng-messages="cannedAnswerForm[\'key\'].$error" ng-show="cannedAnswerForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.KEY_REQUIRED">Key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="TOOLS.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 255}\'>Key must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.VALUE">Value</label>\n <textarea name="value" ng-model="vm.cannedAnswer.value" required></textarea>\n\n <div ng-messages="cannedAnswerForm[\'value\'].$error" ng-show="cannedAnswerForm[\'value\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.cannedAnswer.description">\n\n <div ng-messages="cannedAnswerForm[\'description\'].$error" ng-show="cannedAnswerForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newCannedAnswer" ng-click="vm.saveCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="cannedAnswerForm.$invalid || cannedAnswerForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newCannedAnswer" ng-click="vm.addNewCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="cannedAnswerForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_CANNEDANSWER" translate-attr-aria-label="TOOLS.ADD_CANNEDANSWER">\n ADD CANNEDANSWER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newCannedAnswer" ng-click="vm.deleteCannedAnswer($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/customDashboards/create/dialog.html",'<md-dialog class="customDashboard-dialog" aria-label="New CustomDashboard">\n <form name="customDashboardForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.customDashboard.name" ng-required="true" autofocus>\n\n <div ng-messages="customDashboardForm[\'name\'].$error" ng-show="customDashboardForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.customDashboard.description">\n\n <div ng-messages="customDashboardForm[\'description\'].$error" ng-show="customDashboardForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newCustomDashboard" ng-click="vm.saveCustomDashboard()" class="send-button md-accent md-raised" ng-disabled="customDashboardForm.$invalid || customDashboardForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newCustomDashboard" ng-click="vm.addNewCustomDashboard()" class="send-button md-accent md-raised" ng-disabled="customDashboardForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_CUSTOMDASHBOARD" translate-attr-aria-label="TOOLS.ADD_CUSTOMDASHBOARD">\n ADD CUSTOMDASHBOARD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newCustomDashboard" ng-click="vm.deleteCustomDashboard($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/customDashboards/customDashboards.html",'<div id="customDashboards" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="TOOLS.CUSTOMDASHBOARDS">CustomDashboards</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedCustomDashboards.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedCustomDashboards =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="TOOLS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-customDashboards-count">\n <span>{{vm.selectedCustomDashboards.length}}</span>\n <span translate="TOOLS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TOOLS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllCustomDashboards()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectCustomDashboards()" translate="TOOLS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedCustomDashboards" csv-label="true" filename="customDashboards.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedCustomDashboards($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- CUSTOMDASHBOARD TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedCustomDashboards" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getCustomDashboards">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.customDashboards.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="customDashboard" md-select-id="id" ng-repeat="customDashboard in vm.customDashboards.rows">\n <td md-cell ng-if="customDashboard.userpic"><img class="avatar" alt="{{customDashboard.name}}" ng-src="api/users/{{customDashboard.id}}/avatar" /></td>\n <td md-cell ng-if="!customDashboard.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{customDashboard.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(customDashboard, ev) : vm.createOrEditCustomDashboard($event, customDashboard)" md-cell class="id ">{{customDashboard.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(customDashboard, ev) : vm.createOrEditCustomDashboard($event, customDashboard)" md-cell class="name ">{{customDashboard.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(customDashboard, ev) : vm.createOrEditCustomDashboard($event, customDashboard)" md-cell class="description ">{{customDashboard.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(customDashboard, $event )" translate="TOOLS.EDIT_CUSTOMDASHBOARD">\n Edit CustomDashboard\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.clonedialog(customDashboard, $event )" translate="TOOLS.CLONE_CUSTOMDASHBOARD">\n clone CustomDashboard\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotodashboardgoto(customDashboard, $event )" translate="TOOLS.GOTODASHBOARD_CUSTOMDASHBOARD">\n goToDashboard CustomDashboard\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(customDashboard, $event )" translate="TOOLS.DELETE_CUSTOMDASHBOARD">\n Delete CustomDashboard\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.customDashboards.count}}" md-on-paginate="vm.getCustomDashboards" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / CUSTOMDASHBOARD TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD CUSTOMDASHBOARD BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-customDashboard-button" ng-click="vm.createOrEditCustomDashboard($event)" aria-label="add customDashboard" translate translate-attr-aria-label="TOOLS.ADD_CUSTOMDASHBOARD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD CUSTOMDASHBOARD BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/customDashboards/edit/clone/clone.html",'<md-dialog class="customDashboard-dialog" aria-label="Clone CustomDashboard">\n <form name="customDashboardForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.customDashboard.name" ng-required="true" autofocus>\n\n <div ng-messages="customDashboardForm[\'name\'].$error" ng-show="customDashboardForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <md-button type="submit" ng-click="vm.cloneCustomDashboard()" class="send-button md-accent md-raised" ng-disabled="customDashboardForm.$invalid" aria-label="CLONE" translate="TOOLS.CLONE_CUSTOMDASHBOARD" translate-attr-aria-label="TOOLS.CLONE_CUSTOMDASHBOARD">\n CLONE CUSTOMDASHBOARD\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/customDashboards/edit/dashboard/dialog.html",'<md-dialog class="dashboarditem-dialog" aria-label="New DashboardItem">\n <form name="dashboarditemForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.dashboarditem.type" autofocus ng-disabled="!vm.newDashboardItem">\n\n <md-option ng-value="\'counter\'"> {{ \'TOOLS.COUNTER\' | translate }} </md-option>\n\n <md-option ng-value="\'multibar-chart\'"> {{ \'TOOLS.MULTIBARCHART\' | translate }} </md-option>\n\n <md-option ng-value="\'pie-chart\'"> {{ \'TOOLS.PIECHART\' | translate }} </md-option>\n\n <md-option ng-value="\'web-report\'"> {{ \'TOOLS.WEBREPORT\' | translate }} </md-option>\n\n <md-option ng-value="\'iframe\'"> {{ \'TOOLS.IFRAME\' | translate }} </md-option>\n\n <md-option ng-value="\'clock\'"> {{ \'TOOLS.CLOCK\' | translate }} </md-option>\n\n <md-option ng-value="\'custom\'"> {{ \'TOOLS.CUSTOMTYPE\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'type\'].$error" ng-show="dashboarditemForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.TITLE">Title</label>\n <input type="text" name="title" ng-model="vm.dashboarditem.title" md-maxlength="255" ng-required="true">\n\n <div ng-messages="dashboarditemForm[\'title\'].$error" ng-show="dashboarditemForm[\'title\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TITLE_REQUIRED">Title field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="TOOLS.ERRORS.TITLE_MAX_LENGTH" translate-values=\'{max: 255}\'>Title must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.TITLEFONTSIZE">TitleFontSize</label>\n <input type="number" name="titleFontSize" ng-model="vm.dashboarditem.titleFontSize" value="12">\n\n <div ng-messages="dashboarditemForm[\'titleFontSize\'].$error" ng-show="dashboarditemForm[\'titleFontSize\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TITLEFONTSIZE_REQUIRED">TitleFontSize field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'iframe\'" class="md-block">\n <label translate="TOOLS.URL">Url</label>\n <input type="url" name="attrUrl" ng-model="vm.dashboarditem.attrUrl" value="https://" ng-required="true">\n\n <div ng-messages="dashboarditemForm[\'attrUrl\'].$error" ng-show="dashboarditemForm[\'attrUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n <div ng-message="url">\n <span translate="TOOLS.ERRORS.URL_MUST_VALID_URL">Url must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'custom\'" class="md-block">\n <label translate="TOOLS.PATH">Path</label>\n <input type="text" name="attrPath" ng-model="vm.dashboarditem.attrPath" ng-required="true">\n\n <div ng-messages="dashboarditemForm[\'attrPath\'].$error" ng-show="dashboarditemForm[\'attrPath\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.PATH_REQUIRED">Path field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'clock\'" class="md-block">\n <label translate="TOOLS.FORMAT">Format</label>\n <input type="text" name="attrHourFormat" ng-model="vm.dashboarditem.attrHourFormat" value="HH:mm:ss" ng-required="true">\n\n <div ng-messages="dashboarditemForm[\'attrHourFormat\'].$error" ng-show="dashboarditemForm[\'attrHourFormat\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.FORMAT_REQUIRED">Format field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'clock\'" class="md-block">\n <label translate="TOOLS.TIMEZONE">Timezone</label>\n <md-select name="attrTimezone" ng-model="vm.dashboarditem.attrTimezone" required>\n <md-option ng-value="\'-12.00\'">GMT-12.00</md-option>\n <md-option ng-value="\'-11.00\'">GMT-11.00</md-option>\n <md-option ng-value="\'-10.00\'">GMT-10.00</md-option>\n <md-option ng-value="\'-9.00\'">GMT-9.00</md-option>\n <md-option ng-value="\'-8.00\'">GMT-8.00</md-option>\n <md-option ng-value="\'-7.00\'">GMT-7.00</md-option>\n <md-option ng-value="\'-6.00\'">GMT-6.00</md-option>\n <md-option ng-value="\'-5.00\'">GMT-5.00</md-option>\n <md-option ng-value="\'-4.00\'">GMT-4.00</md-option>\n <md-option ng-value="\'-3.30\'">GMT-3.30</md-option>\n <md-option ng-value="\'-3.00\'">GMT-3.00</md-option>\n <md-option ng-value="\'-2.00\'">GMT-2.00</md-option>\n <md-option ng-value="\'-1.00\'">GMT-1.00</md-option>\n <md-option ng-value="\'0.00\'">GMT 0.00</md-option>\n <md-option ng-value="\'1.00\'">GMT+1.00</md-option>\n <md-option ng-value="\'2.00\'">GMT+2.00</md-option>\n <md-option ng-value="\'3.00\'">GMT+3.00</md-option>\n <md-option ng-value="\'3.30\'">GMT+3.30</md-option>\n <md-option ng-value="\'4.00\'">GMT+4.00</md-option>\n <md-option ng-value="\'4.30\'">GMT+4.30</md-option>\n <md-option ng-value="\'5.00\'">GMT+5.00</md-option>\n <md-option ng-value="\'5.30\'">GMT+5.30</md-option>\n <md-option ng-value="\'5.45\'">GMT+5.45</md-option>\n <md-option ng-value="\'6.00\'">GMT+6.00</md-option>\n <md-option ng-value="\'6.30\'">GMT+6.30</md-option>\n <md-option ng-value="\'7.00\'">GMT+7.00</md-option>\n <md-option ng-value="\'8.00\'">GMT+8.00</md-option>\n <md-option ng-value="\'9.00\'">GMT+9.00</md-option>\n <md-option ng-value="\'9.30\'">GMT+9.30</md-option>\n <md-option ng-value="\'10.00\'">GMT+10.00</md-option>\n <md-option ng-value="\'11.00\'">GMT+11.00</md-option>\n <md-option ng-value="\'12.00\'">GMT+12.00</md-option>\n <md-option ng-value="\'13.00\'">GMT+13.00</md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'attrTimezone\'].$error" ng-show="dashboarditemForm[\'attrTimezone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIMEZONE_REQUIRED">Timezone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'counter\'" class="md-block">\n <label translate="TOOLS.METRIC">Metric</label>\n <md-select name="attrMetric" ng-model="vm.dashboarditem.attrMetric" required>\n\n <md-option ng-value="\'total\'"> {{ \'TOOLS.TOTAL\' | translate }} </md-option>\n\n <md-option ng-value="\'abandoned\'"> {{ \'TOOLS.ABANDONED\' | translate }} </md-option>\n\n <md-option ng-value="\'waiting\'"> {{ \'TOOLS.WAITING\' | translate }} </md-option>\n\n <md-option ng-value="\'talking\'"> {{ \'TOOLS.TALKING\' | translate }} </md-option>\n\n <md-option ng-value="\'answered\'"> {{ \'TOOLS.ANSWERED\' | translate }} </md-option>\n\n <md-option ng-value="\'unmanaged\'"> {{ \'TOOLS.UNMANAGED\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'attrMetric\'].$error" ng-show="dashboarditemForm[\'attrMetric\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.METRIC_REQUIRED">Metric field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="[\'multibar-chart\', \'pie-chart\'].includes(vm.dashboarditem.type)" class="md-block">\n <label translate="TOOLS.SERIE1">Serie1</label>\n <md-select name="attrSerie1" ng-model="vm.dashboarditem.attrSerie1" required>\n\n <md-option ng-value="\'total\'"> {{ \'TOOLS.TOTAL\' | translate }} </md-option>\n\n <md-option ng-value="\'abandoned\'"> {{ \'TOOLS.ABANDONED\' | translate }} </md-option>\n\n <md-option ng-value="\'waiting\'"> {{ \'TOOLS.WAITING\' | translate }} </md-option>\n\n <md-option ng-value="\'talking\'"> {{ \'TOOLS.TALKING\' | translate }} </md-option>\n\n <md-option ng-value="\'answered\'"> {{ \'TOOLS.ANSWERED\' | translate }} </md-option>\n\n <md-option ng-value="\'unmanaged\'"> {{ \'TOOLS.UNMANAGED\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'attrSerie1\'].$error" ng-show="dashboarditemForm[\'attrSerie1\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SERIE1_REQUIRED">Serie1 field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="[\'multibar-chart\', \'pie-chart\'].includes(vm.dashboarditem.type)" class="md-block">\n <label translate="TOOLS.SERIE2">Serie2</label>\n <md-select name="attrSerie2" ng-model="vm.dashboarditem.attrSerie2">\n\n <md-option ng-value="\'null\'"> {{ \'TOOLS.NONE\' | translate }} </md-option>\n\n <md-option ng-value="\'total\'"> {{ \'TOOLS.TOTAL\' | translate }} </md-option>\n\n <md-option ng-value="\'abandoned\'"> {{ \'TOOLS.ABANDONED\' | translate }} </md-option>\n\n <md-option ng-value="\'waiting\'"> {{ \'TOOLS.WAITING\' | translate }} </md-option>\n\n <md-option ng-value="\'talking\'"> {{ \'TOOLS.TALKING\' | translate }} </md-option>\n\n <md-option ng-value="\'answered\'"> {{ \'TOOLS.ANSWERED\' | translate }} </md-option>\n\n <md-option ng-value="\'unmanaged\'"> {{ \'TOOLS.UNMANAGED\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'attrSerie2\'].$error" ng-show="dashboarditemForm[\'attrSerie2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SERIE2_REQUIRED">Serie2 field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="[\'multibar-chart\', \'pie-chart\'].includes(vm.dashboarditem.type)" class="md-block">\n <label translate="TOOLS.SERIE3">Serie3</label>\n <md-select name="attrSerie3" ng-model="vm.dashboarditem.attrSerie3">\n\n <md-option ng-value="\'null\'"> {{ \'TOOLS.NONE\' | translate }} </md-option>\n\n <md-option ng-value="\'total\'"> {{ \'TOOLS.TOTAL\' | translate }} </md-option>\n\n <md-option ng-value="\'abandoned\'"> {{ \'TOOLS.ABANDONED\' | translate }} </md-option>\n\n <md-option ng-value="\'waiting\'"> {{ \'TOOLS.WAITING\' | translate }} </md-option>\n\n <md-option ng-value="\'talking\'"> {{ \'TOOLS.TALKING\' | translate }} </md-option>\n\n <md-option ng-value="\'answered\'"> {{ \'TOOLS.ANSWERED\' | translate }} </md-option>\n\n <md-option ng-value="\'unmanaged\'"> {{ \'TOOLS.UNMANAGED\' | translate }} </md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'attrSerie3\'].$error" ng-show="dashboarditemForm[\'attrSerie3\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SERIE3_REQUIRED">Serie3 field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'web-report\'" class="md-block">\n <label translate="TOOLS.REPORT">Report</label>\n <input type="search" name="report" ng-model="vm.dashboarditem.report" ng-required="true" autocomplete="off" ng-click="vm.searchReport()">\n <md-icon md-font-icon="icon-magnify" ng-click="vm.searchReport()" aria-label="Search Report"></md-icon>\n <div ng-messages="dashboarditemForm[\'report\'].$error" ng-show="dashboarditemForm[\'report\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.REPORT_REQUIRED">Report field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.dashboarditem.type == \'web-report\'" class="md-block">\n <label translate="TOOLS.REFRESH">Refresh</label>\n <input type="number" name="attrRefresh" ng-model="vm.dashboarditem.attrRefresh" min="5" value="10" ng-required="true">\n\n <div ng-messages="dashboarditemForm[\'attrRefresh\'].$error" ng-show="dashboarditemForm[\'attrRefresh\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.REFRESH_REQUIRED">Refresh field is required</span>\n </div>\n <div ng-message="min">\n <span translate="TOOLS.ERRORS.REFRESH_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Refresh must be a valid greater or equal than</span> <span>5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="[\'multibar-chart\', \'pie-chart\', \'counter\'].includes(vm.dashboarditem.type)" class="md-block">\n <label translate="TOOLS.FILTERVOICEQUEUES">FilterVoiceQueues</label>\n <md-select name="attrVoiceQueues" ng-model="vm.dashboarditem.attrVoiceQueues" multiple>\n <md-option ng-value="attrVoiceQueues.id" ng-repeat="attrVoiceQueues in vm.voiceQueues" ng-disabled="attrVoiceQueues.canSelect === false">{{ attrVoiceQueues.name }}</md-option>\n </md-select>\n <div ng-messages="dashboarditemForm[\'attrVoiceQueues\'].$error" ng-show="dashboarditemForm[\'attrVoiceQueues\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.FILTERVOICEQUEUES_REQUIRED">FilterVoiceQueues field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="[\'counter\', \'clock\'].includes(vm.dashboarditem.type)" class="md-block">\n <label translate="TOOLS.FONTSIZE">FontSize</label>\n <input type="number" name="attrFontSize" ng-model="vm.dashboarditem.attrFontSize" min="12" max="40" value="20" ng-required="true">\n\n <div ng-messages="dashboarditemForm[\'attrFontSize\'].$error" ng-show="dashboarditemForm[\'attrFontSize\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.FONTSIZE_REQUIRED">FontSize field is required</span>\n </div>\n <div ng-message="min">\n <span translate="TOOLS.ERRORS.FONTSIZE_MUST_BE_GREATER_THAN_OR_EQUAL_TO">FontSize must be a valid greater or equal than</span> <span>12</span>\n </div>\n <div ng-message="max">\n <span translate="TOOLS.ERRORS.FONTSIZE_MUST_BE_LESS_THAN_OR_EQUAL_TO">FontSize must be a valid greater or equal than</span> <span>40</span>\n </div>\n </div>\n </md-input-container>\n <div flex md-color-picker ng-model="vm.dashboarditem.foreground" label="{{\'TOOLS.FOREGROUND\' | translate}}" md-color-hex="true" md-color-rgb="false" md-color-hsl="false" md-color-history="false" md-color-material-palette="false" md-color-alpha-channel="false" open-on-input="true"></div>\n <div flex md-color-picker ng-model="vm.dashboarditem.background" label="{{\'TOOLS.BACKGROUND\' | translate}}" md-color-hex="true" md-color-rgb="false" md-color-hsl="false" md-color-history="false" md-color-material-palette="false" md-color-alpha-channel="false" open-on-input="true"></div>\n <md-input-container class="md-block">\n <label translate="TOOLS.LINK">link</label>\n <input type="url" name="link" ng-model="vm.dashboarditem.link">\n\n <div ng-messages="dashboarditemForm[\'link\'].$error" ng-show="dashboarditemForm[\'link\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.LINK_REQUIRED">link field is required</span>\n </div>\n <div ng-message="url">\n <span translate="TOOLS.ERRORS.LINK_MUST_VALID_URL">link must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newDashboardItem" ng-click="vm.saveDashboardItem()" class="send-button md-accent md-raised" ng-disabled="dashboarditemForm.$invalid || dashboarditemForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newDashboardItem" ng-click="vm.addNewDashboardItem()" class="send-button md-accent md-raised" ng-disabled="dashboarditemForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_DASHBOARDITEM" translate-attr-aria-label="TOOLS.ADD_DASHBOARDITEM">\n ADD DASHBOARDITEM\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newDashboardItem" ng-click="vm.deleteDashboardItem($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/customDashboards/edit/view.html",'<div id="tools-customDashboard" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-customDashboards-button md-icon-button" aria-label="Go to customDashboards" ng-click="vm.gotoCustomDashboards()" translate translate-attr-aria-label="TOOLS.GO_TO_CUSTOMDASHBOARDS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="customDashboard-image" hide-xs>\n <img ng-src="assets/images/business/customDashboards.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.customDashboard.id}}\n <span ng-if="vm.customDashboard.name">{{vm.customDashboard.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="TOOLS.CREATED_AT"></span> <span>{{vm.customDashboard.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.clonedialog(vm.customDashboard, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="clone">\n <md-tooltip><span translate="TOOLS.CLONE_CUSTOMDASHBOARD"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.customDashboard, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="TOOLS.GOTO_CUSTOMDASHBOARD"></span></md-tooltip>\n <md-icon md-font-icon="icon-forward"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveCustomDashboard()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (dashboardForm.$invalid)" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="TOOLS.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="customDashboard-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="TOOLS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.customDashboard.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.customDashboard.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="TOOLS.DASHBOARD">DASHBOARD</span>\n </md-tab-label>\n <md-tab-body>\n <div class="customDashboard-detail-form-container dashboard md-background-bg md-whiteframe-1dp">\n <div ng-controller="CustomDashboardItemsController as vm_cd" ng-init="vm_cd.init(vm.customDashboard, vm.crudPermissions)" class="customDashboard-detail-form-container no-padding no-margin" layout="column">\n <div ng-if="vm_cd.customDashboard.widgets.length">\n <md-button class="md-fab md-mini md-accent" ng-click="vm_cd.createOrEditWidget()" ng-if="vm_cd.crudPermissions.canEdit" aria-label="add item">\n <md-tooltip>{{ \'TOOLS.ADD_WIDGET\' | translate }}</md-tooltip>\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n <md-content flex>\n <ms-widget-engine config="vm_cd.customDashboard" on-edit="vm_cd.createOrEditWidget(widget)" on-delete="vm_cd.deleteWidget(widget)"></ms-widget-engine>\n </md-content>\n </div>\n <div ng-if="!vm_cd.customDashboard.widgets.length" layout="row" layout-align="center center" flex>\n <md-button class="width-130 height-130 md-accent md-raised" ng-click="vm_cd.createOrEditWidget()" aria-label="add item" layout="column">\n <md-icon md-font-icon="icon-plus-circle" class="s50"></md-icon>\n <span layout-wrap translate="TOOLS.ADD_WIDGET"></span>\n </md-button>\n </div>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/tools/views/customDashboards/partialViews/reports/treeReports.html",'<md-dialog class="report-selection-dialog" aria-label="Report Selection" flex="60">\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2>Select Report</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeReportDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <div class="content" md-background-bg layout="row" layout-align="start start">\n <div layout="column" flex="30">\n <md-card class="padding-10 scrollable" ms-scroll>\n <div js-tree="vm.treeConfig" tree-events-obj="vm.treeDefaultEvents" ng-model="vm.treeDefaultData" tree="vm.treeDefaultInstance"></div>\n </md-card>\n <md-card class="padding-10 scrollable" ms-scroll>\n <div js-tree="vm.treeConfig" tree-events-obj="vm.treeCustomEvents" ng-model="vm.treeCustomData" tree="vm.treeCustomInstance"></div>\n </md-card>\n </div>\n <md-card flex="70">\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="h2 secondary-text">{{vm.currentNode.text}}</span>\n <p ng-if="vm.currentPath">\n <span class="text-boxed">{{vm.currentPath}}</span>\n </p>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select ng-model="vm.selectedReport" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getReports">\n <tr md-row>\n <th md-column md-order-by="id" width="10px">{{ "ANALYTICS.ID" | translate }}</th>\n <th md-column md-order-by="name">{{ "ANALYTICS.NAME" | translate }}</th>\n <th md-column md-order-by="description">{{ "ANALYTICS.DESCRIPTION" | translate }}</th>\n <th md-column md-order-by="createdAt">{{ "ANALYTICS.CREATED_AT" | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.reports.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="ANALYTICS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="report" md-select-id="id" ng-repeat="report in vm.reports.rows">\n <td md-cell class="id">{{ report.id }}</td>\n <td md-cell class="name">{{ report.name }}</td>\n <td md-cell class="description">{{ report.description }}</td>\n <td md-cell class="createdAt">{{ report.createdAt | date: "medium" }}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{ \'ANALYTICS.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'ANALYTICS.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'ANALYTICS.OF\' | translate }}\'}" md-limit="vm.query.limit" md-limit-options="[10]" md-page="vm.query.page" md-total="{{ vm.reports.count }}" md-on-paginate="vm.getReports" md-page-select></md-table-pagination>\n </md-card>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row">\n <span flex></span>\n <md-button class="md-raised" ng-click="vm.closeReportDialog()">CANCEL</md-button>\n <md-button class="md-accent md-raised" ng-click="vm.selectReport()">CONFIRM</md-button>\n </md-dialog-actions>\n</md-dialog>'),e.put("app/main/apps/tools/views/dispositions/create/dialog.html",'<md-dialog ng-init="vm.onInit()" class="disposition-dialog" aria-label="New Disposition">\n <form name="dispositionForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.newDisposition ? \'TOOLS.NEW_DISPOSITION\' : \'TOOLS.EDIT_DISPOSITION\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.disposition.name" md-maxlength="255" required md-autofocus>\n <div ng-messages="dispositionForm[\'name\'].$error" ng-show="dispositionForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="TOOLS.ERRORS.NAME_MAX_LENGTH" translate-values=\'{max: 255}\'>Name must have a maximum length\n equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.disposition.description" md-maxlength="255">\n <div ng-messages="dispositionForm[\'description\'].$error" ng-show="dispositionForm[\'description\'].$touched" role="alert">\n <div ng-message="md-maxlength">\n <span translate="TOOLS.ERRORS.DESCRIPTION_MAX_LENGTH" translate-values=\'{max: 255}\'>Description must have a\n maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <div ng-if="vm.newDisposition && vm.dispositions.length > 0 || vm.disposition.ParentId" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="TOOLS.FIRST_LEVEL_DISPOSITION">First Level Disposition</label>\n <md-select name="firstLevelDisposition" ng-model="vm.firstLevelDisposition" ng-change="vm.onFirstLevelSelection()">\n <md-option ng-value="disposition" ng-repeat="disposition in vm.dispositions | filter: { level: \'first\' }" ng-disabled="disposition.canSelect === false">{{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.firstLevelDisposition" ng-click="vm.clearSelection(\'first\'); dispositionForm.$setDirty();" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear first level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <div ng-if="vm.firstLevelDisposition && vm.anySecondLevelDisposition" layout="row" layout-align="start center">\n <md-input-container class="md-block" flex>\n <label translate="TOOLS.SECOND_LEVEL_DISPOSITION">Second Level Disposition</label>\n <md-select name="secondLevelDisposition" ng-model="vm.secondLevelDisposition">\n <md-option ng-value="disposition" ng-if="disposition.id != vm.disposition.id" ng-repeat="disposition in vm.dispositions | filter: { level: \'second\', ParentId: vm.firstLevelDisposition.id }" ng-disabled="disposition.canSelect === false">{{ disposition.name }}</md-option>\n </md-select>\n </md-input-container>\n <md-button ng-if="vm.secondLevelDisposition" ng-click="vm.clearSelection(\'second\'); dispositionForm.$setDirty();" class="md-icon-button">\n <md-icon md-font-icon="icon-cancel" aria-label="Clear first level disposition selection">\n </md-icon>\n </md-button>\n </div>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newDisposition" ng-click="vm.saveDisposition()" class="send-button md-accent md-raised" ng-disabled="dispositionForm.$invalid || dispositionForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newDisposition" ng-click="vm.addNewDisposition()" class="send-button md-accent md-raised" ng-disabled="dispositionForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_DISPOSITION" translate-attr-aria-label="TOOLS.ADD_DISPOSITION">\n ADD DISPOSITION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newDisposition" ng-click="vm.deleteDisposition($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/dispositions/dispositions.html",'<div id="dispositions" class="page-layout simple left-sidenav inner-sidenav">\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="TOOLS.DISPOSITIONS">Dispositions</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedDispositions.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n <div class="close-button-wrapper" ng-click="vm.selectedDispositions = []">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="TOOLS.BACK">Back</span>\n </md-button>\n </div>\n <div flex layout="row" layout-align="space-between center">\n <div>\n <span class="selected-dispositions-count">\n <span>{{vm.selectedDispositions.length}}</span>\n <span translate="TOOLS.SELECTED">selected</span>\n </span>\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TOOLS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllDispositions()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectDispositions()" translate="TOOLS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedDispositions" csv-label="true" filename="dispositions.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n <div layout="row">\n <div class="column" flex="20">\n <md-card>\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm.query.level = null; vm.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm.query.level" ng-change="vm.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n \x3c!-- DISPOSITION TABLE --\x3e\n <md-card flex="80">\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedDispositions" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.dispositions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="disposition" md-select-id="id" ng-repeat="disposition in vm.dispositions.rows">\n <td ng-click="vm.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm.levels[disposition.level] }}</td>\n <td ng-click="vm.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteconfirm(disposition, $event)" translate="TOOLS.DELETE_DISPOSITION">\n Delete Disposition\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.dispositions.count}}" md-on-paginate="vm.getDispositions" md-page-select>\n </md-table-pagination>\n </md-card>\n \x3c!-- / DISPOSITION TABLE --\x3e\n </div>\n \x3c!-- NO RESULTS --\x3e\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n </div>\n \x3c!-- / CONTENT --\x3e\n \x3c!-- ADD DISPOSITION BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-disposition-button" ng-click="vm.createOrEditDisposition($event)" aria-label="add disposition" translate translate-attr-aria-label="TOOLS.ADD_DISPOSITION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD DISPOSITION BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/intervals/create/dialog.html",'<md-dialog class="interval-dialog" aria-label="New Interval">\n <form name="intervalForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.interval.name" ng-required="true" autofocus>\n\n <div ng-messages="intervalForm[\'name\'].$error" ng-show="intervalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.interval.description">\n\n <div ng-messages="intervalForm[\'description\'].$error" ng-show="intervalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newInterval" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newInterval" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n ADD INTERVAL\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newInterval" ng-click="vm.deleteInterval($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/intervals/edit/apps/interval/dialog.html",'<md-dialog class="interval-dialog" aria-label="New Interval">\n <form name="intervalForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input ng-model="vm.interval.name" type="text" name="name" placeholder="{{\'TOOLS.NAME\' | translate}}" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" md-autofocus required>\n <div ng-messages="intervalForm.name.$error" ng-show="intervalForm.name.$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="type" ng-repeat=\'type in vm.types\'>{{ type | ucfirst }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.type === \'list\'">\n <label translate="TOOLS.INTERVALS">Intervals</label>\n <md-select ng-model="vm.interval.IntervalId" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ interval.name }}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!-- TIMERANGE START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.TIME_RANGE">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <div class="md-block" flex>\n <mdp-time-picker name="timeRangeFrom" mdp-placeholder="FROM" ng-model="vm.timeRangeFrom" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <div ng-messages="intervalForm.timeRangeFrom.$error" ng-show="intervalForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_FROM_INVALID">Time Range From field is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n <div class="md-block" flex ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_INVALID">Time Range To field is invalid</span>\n </div>\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </div>\n \x3c!-- TIMERANGE END --\x3e\n\n \x3c!-- DAYSOFWEEK START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.WEEK_DAYS">Week Days</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.dayOfWeekFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex class="md-block" ng-if="vm.dayOfWeekFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="dayOfWeekTo" ng-model="vm.dayOfWeekTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- DAYSOFWEEK END --\x3e\n\n \x3c!-- MONTHDAY START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTH_DAYS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthDayFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthDayFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthDayTo" ng-model="vm.monthDayTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTHDAY END --\x3e\n\n \x3c!-- MONTH START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTHS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthTo" ng-model="vm.monthTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTH END --\x3e\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="!vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n ADD INTERVAL\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/intervals/edit/intervals/dialog.html",'<md-dialog class="interval-dialog" aria-label="New Interval">\n <form name="intervalForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="" name="name" ng-model="vm.interval.name" ng-required="true" autofocus>\n\n <div ng-messages="intervalForm[\'name\'].$error" ng-show="intervalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newInterval" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newInterval" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n ADD INTERVAL\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newInterval" ng-click="vm.deleteInterval($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/intervals/edit/view.html",'<div id="tools-interval" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-intervals-button md-icon-button" aria-label="Go to intervals" ng-click="vm.gotoIntervals()" translate translate-attr-aria-label="TOOLS.GO_TO_INTERVALS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="interval-image" hide-xs>\n <img ng-src="assets/images/business/intervals.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.interval.id}}\n <span ng-if="vm.interval.name">{{vm.interval.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="TOOLS.CREATED_AT"></span> <span>{{vm.interval.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveInterval()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (intervalsForm.$invalid)" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="TOOLS.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="interval-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="TOOLS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.interval.name" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.interval.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="TOOLS.INTERVALS">INTERVALS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="interval-detail-form-container intervals md-background-bg md-whiteframe-1dp">\n <div ng-controller="IntervalIntervalsController as vm_dc" ng-init="vm_dc.init(vm.interval, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedIntervalIntervals.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="TOOLS.INTERVALS">Intervals</span>\n <ms-search-bar on-search="vm_dc.getIntervalIntervals()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditIntervalInterval($event)" aria-label="add interval" translate translate-attr-label="TOOLS.ADD_INTERVAL">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedIntervalIntervals.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedIntervalIntervals.length}} {{vm_dc.selectedIntervalIntervals.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedIntervalIntervals" csv-label="true" filename="intervals.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedIntervalIntervals($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedIntervalIntervals" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getIntervalIntervals">\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column md-order-by="id">\n {{ \'TOOLS.ID\' | translate }}\n </th>\n <th md-column md-order-by="name">\n {{ \'TOOLS.NAME\' | translate }}\n </th>\n <th md-column md-order-by="interval">\n {{ \'TOOLS.INTERVAL\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'TOOLS.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body ng-sortable="vm_dc.sortableTable">\n <tr md-row md-select="interval" md-select-id="id" ng-repeat="interval in vm_dc.intervalIntervals.rows">\n <td md-cell>\n <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n </td>\n <td ng-click="vm_dc.createOrEditIntervalInterval($event, interval)" md-cell>\n {{interval.id}}\n </td>\n <td ng-click="vm_dc.createOrEditIntervalInterval($event, interval)" md-cell>\n {{interval.name}}\n </td>\n <td ng-click="vm_dc.createOrEditIntervalInterval($event, interval)" md-cell>\n {{interval.interval}}\n </td>\n <td ng-click="vm_dc.createOrEditIntervalInterval($event, interval)" md-cell>\n {{ interval.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditIntervalInterval($event, interval)" translate="TOOLS.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(interval, $event)" translate="TOOLS.DELETE_INTERVAL">\n Delete Interval\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.intervalIntervals.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="TOOLS.NO_INTERVALS_AVAILABLE">No intervals available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/tools/views/intervals/intervals.html",'<div id="intervals" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="TOOLS.INTERVALS">Intervals</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedIntervals.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedIntervals =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="TOOLS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-intervals-count">\n <span>{{vm.selectedIntervals.length}}</span>\n <span translate="TOOLS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TOOLS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllIntervals()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectIntervals()" translate="TOOLS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedIntervals" csv-label="true" filename="intervals.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedIntervals($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- INTERVAL TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedIntervals" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getIntervals">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.intervals.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="interval" md-select-id="id" ng-repeat="interval in vm.intervals.rows">\n <td md-cell ng-if="interval.userpic"><img class="avatar" alt="{{interval.name}}" ng-src="api/users/{{interval.id}}/avatar" /></td>\n <td md-cell ng-if="!interval.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{interval.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(interval, ev) : vm.createOrEditInterval($event, interval)" md-cell class="id ">{{interval.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(interval, ev) : vm.createOrEditInterval($event, interval)" md-cell class="name ">{{interval.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(interval, ev) : vm.createOrEditInterval($event, interval)" md-cell class="description ">{{interval.description}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(interval, $event )" translate="TOOLS.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(interval, $event )" translate="TOOLS.DELETE_INTERVAL">\n Delete Interval\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.intervals.count}}" md-on-paginate="vm.getIntervals" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / INTERVAL TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD INTERVAL BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-interval-button" ng-click="vm.createOrEditInterval($event)" aria-label="add interval" translate translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD INTERVAL BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/pauses/create/dialog.html",'<md-dialog class="pause-dialog" aria-label="New Pause">\n <form name="pauseForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.pause.name" ng-required="true" autofocus>\n\n <div ng-messages="pauseForm[\'name\'].$error" ng-show="pauseForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.pause.description">\n\n <div ng-messages="pauseForm[\'description\'].$error" ng-show="pauseForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newPause" ng-click="vm.savePause()" class="send-button md-accent md-raised" ng-disabled="pauseForm.$invalid || pauseForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newPause" ng-click="vm.addNewPause()" class="send-button md-accent md-raised" ng-disabled="pauseForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_PAUSE" translate-attr-aria-label="TOOLS.ADD_PAUSE">\n ADD PAUSE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newPause" ng-click="vm.deletePause($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/pauses/pauses.html",'<div id="pauses" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="TOOLS.PAUSES">Pauses</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedPauses.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedPauses =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="TOOLS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-pauses-count">\n <span>{{vm.selectedPauses.length}}</span>\n <span translate="TOOLS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TOOLS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllPauses()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectPauses()" translate="TOOLS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedPauses" csv-label="true" filename="pauses.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedPauses($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- PAUSE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedPauses" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getPauses">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.pauses.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="pause" md-select-id="id" ng-repeat="pause in vm.pauses.rows">\n <td md-cell ng-if="pause.userpic"><img class="avatar" alt="{{pause.name}}" ng-src="api/users/{{pause.id}}/avatar" /></td>\n <td md-cell ng-if="!pause.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{pause.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditPause($event, pause)" md-cell class="id ">{{pause.id}}</td>\n <td ng-click="vm.createOrEditPause($event, pause)" md-cell class="name ">{{pause.name}}</td>\n <td ng-click="vm.createOrEditPause($event, pause)" md-cell class="description ">{{pause.description}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(pause, $event )" translate="TOOLS.EDIT_PAUSE">\n Edit Pause\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(pause, $event )" translate="TOOLS.DELETE_PAUSE">\n Delete Pause\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.pauses.count}}" md-on-paginate="vm.getPauses" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / PAUSE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD PAUSE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-pause-button" ng-click="vm.createOrEditPause($event)" aria-label="add pause" translate translate-attr-aria-label="TOOLS.ADD_PAUSE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD PAUSE BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/schedules/create/dialog.html",'<md-dialog class="schedule-dialog" aria-label="New Schedule">\n <form name="scheduleForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.schedule.name" ng-required="true" autofocus>\n\n <div ng-messages="scheduleForm[\'name\'].$error" ng-show="scheduleForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.REPORT">Report</label>\n <input type="search" name="report" ng-model="vm.schedule.report" ng-required="true" autocomplete="off" ng-click="vm.searchReport()">\n <md-icon md-font-icon="icon-magnify" ng-click="vm.searchReport()" aria-label="Search Report"></md-icon>\n <div ng-messages="scheduleForm[\'report\'].$error" ng-show="scheduleForm[\'report\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.REPORT_REQUIRED">Report field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.OUTPUT">Output</label>\n <md-select name="output" ng-model="vm.schedule.output" required>\n <md-option ng-value="\'csv\'">CSV</md-option>\n <md-option ng-value="\'pdf\'">PDF</md-option>\n <md-option ng-value="\'xlsx\'">Excel</md-option>\n </md-select>\n <div ng-messages="scheduleForm[\'output\'].$error" ng-show="scheduleForm[\'output\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.OUTPUT_REQUIRED">Output field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.schedule.active" aria-label="Active"><span translate="TOOLS.ACTIVE">Active</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label translate="TOOLS.VALIDITYSTART">ValidityStart</label>\n <md-content layout="row" class="md-padding">\n <div flex class="md-block">\n <mdp-date-picker mdp-open-on-click required name="startAtDate" mdp-placeholder="Date" mdp-format="YYYY-MM-DD" ng-model="vm.schedule.startAt" ng-init="vm.schedule.startAt = vm.getDateFromString(vm.schedule.startAt)">\n <div ng-messages="scheduleForm.dateRangeFrom.$error" ng-show="scheduleForm.dateRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DATE_REQUIRED">Date is required</span>\n </div>\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.DATE_INVALID">Date is invalid</span>\n </div>\n </div>\n </mdp-date-picker>\n </div>\n <div flex class="md-block">\n <mdp-time-picker mdp-open-on-click required name="startAtTime" mdp-placeholder="Time" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.schedule.startAt" ng-init="vm.schedule.startAt = vm.getDateFromString(vm.schedule.startAt)">\n <div ng-messages="scheduleForm.timeRangeFrom.$error" ng-show="scheduleForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_REQUIRED">Time is required</span>\n </div>\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_INVALID">Time is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </md-content>\n </div>\n <div class="md-block">\n <label translate="TOOLS.VALIDITYEND">ValidityEnd</label>\n <md-content layout="row" class="md-padding">\n <div flex class="md-block">\n <mdp-date-picker mdp-open-on-click required name="endAtDate" mdp-placeholder="Date" mdp-format="YYYY-MM-DD" ng-model="vm.schedule.endAt" ng-init="vm.schedule.endAt = vm.getDateFromString(vm.schedule.endAt)">\n <div ng-messages="scheduleForm.dateRangeFrom.$error" ng-show="scheduleForm.dateRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DATE_REQUIRED">Date is required</span>\n </div>\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.DATE_INVALID">Date is invalid</span>\n </div>\n </div>\n </mdp-date-picker>\n </div>\n <div flex class="md-block">\n <mdp-time-picker mdp-open-on-click required name="endAtTime" mdp-placeholder="Time" mdp-format="HH:mm:ss" mdp-auto-switch="true" ng-model="vm.schedule.endAt" ng-init="vm.schedule.endAt = vm.getDateFromString(vm.schedule.endAt)">\n <div ng-messages="scheduleForm.timeRangeFrom.$error" ng-show="scheduleForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_REQUIRED">Time is required</span>\n </div>\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_INVALID">Time is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </md-content>\n </div>\n <div flex class="md-block">\n <label> {{ \'TOOLS.CRON\' | translate }} ({{vm.schedule.cron}})</label>\n <cron-selection name="cron" ng-model="vm.schedule.cron" template="assets/angular-cron-jobs/template.html" required></cron-selection>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.LAST">Last</label>\n <input type="number" name="subtractNumber" ng-model="vm.schedule.subtractNumber" value="1" ng-required="true">\n\n <div ng-messages="scheduleForm[\'subtractNumber\'].$error" ng-show="scheduleForm[\'subtractNumber\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.LAST_REQUIRED">Last field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.LASTUNIT">LastUnit</label>\n <md-select name="subtractUnit" ng-model="vm.schedule.subtractUnit" required>\n <md-option ng-value="\'minutes\'">Minutes</md-option>\n <md-option ng-value="\'hours\'">Hours</md-option>\n <md-option ng-value="\'days\'">Days</md-option>\n <md-option ng-value="\'weeks\'">Weeks</md-option>\n <md-option ng-value="\'months\'">Months</md-option>\n <md-option ng-value="\'quarters\'">Quarters</md-option>\n <md-option ng-value="\'years\'">Years</md-option>\n </md-select>\n <div ng-messages="scheduleForm[\'subtractUnit\'].$error" ng-show="scheduleForm[\'subtractUnit\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.LASTUNIT_REQUIRED">LastUnit field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.schedule.sendMail" aria-label="SendMail"><span translate="TOOLS.SENDMAIL">SendMail</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.schedule.sendMail" class="md-block">\n <label translate="TOOLS.MAILACCOUNT">MailAccount</label>\n <md-select name="MailAccountId" ng-model="vm.schedule.MailAccountId" required>\n <md-option ng-value="MailAccountId.id" ng-repeat="MailAccountId in vm.mailAccounts" ng-disabled="MailAccountId.canSelect === false">{{ MailAccountId.name }}</md-option>\n </md-select>\n <div ng-messages="scheduleForm[\'MailAccountId\'].$error" ng-show="scheduleForm[\'MailAccountId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.MAILACCOUNT_REQUIRED">MailAccount field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.schedule.sendMail" class="md-block">\n <label translate="TOOLS.EMAILADDRESS">EmailAddress</label>\n <input type="text" name="email" ng-model="vm.schedule.email" ng-required="true">\n\n <div class="hint"><span translate="TOOLS.HELP.EMAILADDRESS"></span></div>\n <div ng-messages="scheduleForm[\'email\'].$error" ng-show="scheduleForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.EMAILADDRESS_REQUIRED">EmailAddress field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.schedule.sendMail" class="md-block">\n <label translate="TOOLS.EMAILCCADDRESS">EmailCcAddress</label>\n <input type="text" name="cc" ng-model="vm.schedule.cc">\n\n <div class="hint"><span translate="TOOLS.HELP.EMAILCCADDRESS"></span></div>\n <div ng-messages="scheduleForm[\'cc\'].$error" ng-show="scheduleForm[\'cc\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.EMAILCCADDRESS_REQUIRED">EmailCcAddress field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.schedule.sendMail" class="md-block">\n <label translate="TOOLS.EMAILBCCADDRESS">EmailBccAddress</label>\n <input type="text" name="bcc" ng-model="vm.schedule.bcc">\n\n <div class="hint"><span translate="TOOLS.HELP.EMAILBCCADDRESS"></span></div>\n <div ng-messages="scheduleForm[\'bcc\'].$error" ng-show="scheduleForm[\'bcc\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.EMAILBCCADDRESS_REQUIRED">EmailBccAddress field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.schedule.sendMail" class="md-block">\n <md-switch ng-model="vm.schedule.sendIfEmpty" aria-label="SendIfEmpty"><span translate="TOOLS.SENDIFEMPTY">SendIfEmpty</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="" name="description" ng-model="vm.schedule.description">\n\n <div ng-messages="scheduleForm[\'description\'].$error" ng-show="scheduleForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newSchedule" ng-click="vm.saveSchedule()" class="send-button md-accent md-raised" ng-disabled="scheduleForm.$invalid || scheduleForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newSchedule" ng-click="vm.addNewSchedule()" class="send-button md-accent md-raised" ng-disabled="scheduleForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_SCHEDULE" translate-attr-aria-label="TOOLS.ADD_SCHEDULE">\n ADD SCHEDULE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newSchedule" ng-click="vm.deleteSchedule($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/schedules/partialViews/reports/treeReports.html",'<md-dialog class="report-selection-dialog" aria-label="Report Selection" flex="60">\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2>Select Report</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeReportDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content>\n <div class="content" md-background-bg layout="row" layout-align="start start">\n <div layout="column" flex="30">\n <md-card class="padding-10 scrollable" ms-scroll>\n <div js-tree="vm.treeConfig" tree-events-obj="vm.treeDefaultEvents" ng-model="vm.treeDefaultData" tree="vm.treeDefaultInstance"></div>\n </md-card>\n <md-card class="padding-10 scrollable" ms-scroll>\n <div js-tree="vm.treeConfig" tree-events-obj="vm.treeCustomEvents" ng-model="vm.treeCustomData" tree="vm.treeCustomInstance"></div>\n </md-card>\n </div>\n <md-card flex="70">\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="h2 secondary-text">{{vm.currentNode.text}}</span>\n <p ng-if="vm.currentPath">\n <span class="text-boxed">{{vm.currentPath}}</span>\n </p>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select ng-model="vm.selectedReport" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getReports">\n <tr md-row>\n <th md-column md-order-by="id" width="10px">{{ "ANALYTICS.ID" | translate }}</th>\n <th md-column md-order-by="name">{{ "ANALYTICS.NAME" | translate }}</th>\n <th md-column md-order-by="description">{{ "ANALYTICS.DESCRIPTION" | translate }}</th>\n <th md-column md-order-by="createdAt">{{ "ANALYTICS.CREATED_AT" | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.reports.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="ANALYTICS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="report" md-select-id="id" ng-repeat="report in vm.reports.rows">\n <td md-cell class="id">{{ report.id }}</td>\n <td md-cell class="name">{{ report.name }}</td>\n <td md-cell class="description">{{ report.description }}</td>\n <td md-cell class="createdAt">{{ report.createdAt | date: "medium" }}</td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{ \'ANALYTICS.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'ANALYTICS.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'ANALYTICS.OF\' | translate }}\'}" md-limit="vm.query.limit" md-limit-options="[10]" md-page="vm.query.page" md-total="{{ vm.reports.count }}" md-on-paginate="vm.getReports" md-page-select></md-table-pagination>\n </md-card>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row">\n <span flex></span>\n <md-button class="md-raised" ng-click="vm.closeReportDialog()">CANCEL</md-button>\n <md-button class="md-accent md-raised" ng-click="vm.selectReport()">CONFIRM</md-button>\n </md-dialog-actions>\n</md-dialog>'),e.put("app/main/apps/tools/views/schedules/schedules.html",'<div id="schedules" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="TOOLS.SCHEDULER">Scheduler</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedScheduler.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedScheduler =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="TOOLS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-schedules-count">\n <span>{{vm.selectedScheduler.length}}</span>\n <span translate="TOOLS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TOOLS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllScheduler()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectScheduler()" translate="TOOLS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedScheduler" csv-label="true" filename="schedules.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedScheduler($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- SCHEDULE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedScheduler" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getScheduler">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n <th md-column md-order-by="active">{{ \'TOOLS.ACTIVE\' | translate }}</th>\n <th md-column md-order-by="startAt">{{ \'TOOLS.VALIDITYSTART\' | translate }}</th>\n <th md-column md-order-by="endAt">{{ \'TOOLS.VALIDITYEND\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.schedules.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="schedule" md-select-id="id" ng-repeat="schedule in vm.schedules.rows">\n <td md-cell ng-if="schedule.userpic"><img class="avatar" alt="{{schedule.name}}" ng-src="api/users/{{schedule.id}}/avatar" /></td>\n <td md-cell ng-if="!schedule.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{schedule.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditSchedule($event, schedule)" md-cell class="id ">{{schedule.id}}</td>\n <td ng-click="vm.createOrEditSchedule($event, schedule)" md-cell class="name ">{{schedule.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(schedule, ev) : vm.createOrEditSchedule($event, schedule)" md-cell class="active ">\n <md-icon md-colors="{color: {{schedule.active ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{schedule.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.createOrEditSchedule($event, schedule)" md-cell class="startAt ">{{schedule.startAt | date:\'medium\' }}</td>\n <td ng-click="vm.createOrEditSchedule($event, schedule)" md-cell class="endAt ">{{schedule.endAt | date:\'medium\' }}</td>\n <td ng-click="vm.createOrEditSchedule($event, schedule)" md-cell class="description ">{{schedule.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(schedule, $event )" translate="TOOLS.EDIT_SCHEDULE">\n Edit Schedule\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.runconfirm(schedule, $event )" translate="TOOLS.RUN_SCHEDULE">\n Run Schedule\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(schedule, $event )" translate="TOOLS.DELETE_SCHEDULE">\n Delete Schedule\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.schedules.count}}" md-on-paginate="vm.getScheduler" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / SCHEDULE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD SCHEDULE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-schedule-button" ng-click="vm.createOrEditSchedule($event)" aria-label="add schedule" translate translate-attr-aria-label="TOOLS.ADD_SCHEDULE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD SCHEDULE BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/sounds/create/dialog.html",'<md-dialog class="sound-dialog" aria-label="New Sound">\n <form name="soundForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.sound.name" ng-required="true" autofocus>\n\n <div ng-messages="soundForm[\'name\'].$error" ng-show="soundForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.sound.description">\n\n <div ng-messages="soundForm[\'description\'].$error" ng-show="soundForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newSound" ng-click="vm.saveSound()" class="send-button md-accent md-raised" ng-disabled="soundForm.$invalid || soundForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newSound" ng-click="vm.addNewSound()" class="send-button md-accent md-raised" ng-disabled="soundForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_SOUND" translate-attr-aria-label="TOOLS.ADD_SOUND">\n ADD SOUND\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newSound" ng-click="vm.deleteSound($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/sounds/sounds.html",'<div id="sounds" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="TOOLS.SOUNDS">Sounds</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedSounds.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedSounds =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="TOOLS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-sounds-count">\n <span>{{vm.selectedSounds.length}}</span>\n <span translate="TOOLS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TOOLS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllSounds()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectSounds()" translate="TOOLS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedSounds" csv-label="true" filename="sounds.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedSounds($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- SOUND TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedSounds" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getSounds">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n <th md-column md-order-by="audio">{{ \'TOOLS.AUDIO\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.sounds.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="sound" md-select-id="id" ng-repeat="sound in vm.sounds.rows">\n <td md-cell ng-if="sound.userpic"><img class="avatar" alt="{{sound.name}}" ng-src="api/users/{{sound.id}}/avatar" /></td>\n <td md-cell ng-if="!sound.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{sound.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditSound($event, sound)" md-cell class="id ">{{sound.id}}</td>\n <td ng-click="vm.createOrEditSound($event, sound)" md-cell class="name ">{{sound.name}}</td>\n <td md-cell class="audio ">\n \x3c!-- audio recording directive --\x3e\n <ms-recording id="sound.id" model="\'sound\'"></ms-recording>\n \x3c!-- / audio recording directive --\x3e\n </td>\n <td ng-click="vm.createOrEditSound($event, sound)" md-cell class="description ">{{sound.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(sound, $event )" translate="TOOLS.EDIT_SOUND">\n Edit Sound\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.downloadfile2(sound, $event , \'sounds\' )" translate="TOOLS.DOWNLOAD_SOUND">\n Download Sound\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(sound, $event )" translate="TOOLS.DELETE_SOUND">\n Delete Sound\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.sounds.count}}" md-on-paginate="vm.getSounds" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / SOUND TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- UPLOAD SOUND BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="upload-sound-button" ng-click="vm.uploadSound($event)" aria-label="upload sound" translate translate-attr-aria-label="TOOLS.UPLOAD_SOUND">\n <md-icon md-font-icon="icon-upload"></md-icon>\n </md-button>\n \x3c!-- / UPLOAD SOUND BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/sounds/upload/dialog.html",'<md-dialog class="upload-dialog" aria-label="Upload ">\n <form name="uploadForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <div id="sound-uploader" ng-hide="vm.uploadState == \'uploading\'" flow-init="vm.ngFlowOptions" flow-name="vm.ngFlow.flow" flow-files-submitted="vm.upload()" flow-file-added="vm.fileAdded($file)" flow-file-success="vm.fileSuccess($file, $message)" flow-error="vm.uploadError($file, $message)" flow-complete="vm.uploadComplete()" flow-drop flow-drag-enter="vm.dropping=true" flow-drag-leave="vm.dropping=false" ng-class="{\'dropping\':vm.dropping}">\n\n <div class="drop-text hint-text" layout="row" layout-align="center center">\n <span translate="TOOLS.DROP_TO_UPLOAD">Drop to upload</span>\n </div>\n\n <div class="upload-button" layout="column" layout-align="center center">\n <md-button class="md-accent md-raised" flow-btn>\n Upload\n </md-button>\n <span class="secondary-text mt-8" translate="TOOLS.DROP_TO_UPLOAD_MESSAGE">You can also drop your file here to upload.</span>\n </div>\n </div>\n\n <div layout="column" layout-align="space-between center" ng-show="vm.uploadState == \'uploading\'">\n <div>\n <span translate="TOOLS.UPLOADING">Uploading</span>\n <span>{{vm.sound.file.name}}</span>\n </div>\n <md-progress-linear md-mode="indeterminate"></md-progress-linear>\n </div>\n\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center"></div>\n <div layout="row">\n <md-button ng-click="vm.closeDialog()" ng-hide="vm.uploadState == \'uploading\'" class="md-accent md-raised" aria-label="FINISH" translate="TOOLS.FINISH" translate-attr-aria-label="TOOLS.FINISH">\n FINISH\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/tags/create/dialog.html",'<md-dialog class="tag-dialog" aria-label="New Tag">\n <form name="tagForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.tag.name" ng-required="true" autofocus>\n\n <div ng-messages="tagForm[\'name\'].$error" ng-show="tagForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.tag.description">\n\n <div ng-messages="tagForm[\'description\'].$error" ng-show="tagForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n <div flex md-color-picker ng-model="vm.tag.color" label="{{\'TOOLS.COLOR\' | translate}}" md-color-hex="true" md-color-rgb="false" md-color-hsl="false" md-color-history="false" md-color-material-palette="false" md-color-alpha-channel="false" open-on-input="true"></div>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newTag" ng-click="vm.saveTag()" class="send-button md-accent md-raised" ng-disabled="tagForm.$invalid || tagForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newTag" ng-click="vm.addNewTag()" class="send-button md-accent md-raised" ng-disabled="tagForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_TAG" translate-attr-aria-label="TOOLS.ADD_TAG">\n ADD TAG\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newTag" ng-click="vm.deleteTag($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/tags/tags.html",'<div id="tags" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="TOOLS.TAGS">Tags</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedTags.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedTags =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="TOOLS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-tags-count">\n <span>{{vm.selectedTags.length}}</span>\n <span translate="TOOLS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TOOLS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllTags()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectTags()" translate="TOOLS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedTags" csv-label="true" filename="tags.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedTags($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- TAG TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedTags" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTags">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n <th md-column md-order-by="color">{{ \'TOOLS.COLOR\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.tags.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="tag" md-select-id="id" ng-repeat="tag in vm.tags.rows">\n <td md-cell ng-if="tag.userpic"><img class="avatar" alt="{{tag.name}}" ng-src="api/users/{{tag.id}}/avatar" /></td>\n <td md-cell ng-if="!tag.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{tag.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditTag($event, tag)" md-cell class="id ">{{tag.id}}</td>\n <td ng-click="vm.createOrEditTag($event, tag)" md-cell class="name ">{{tag.name}}</td>\n <td ng-click="vm.createOrEditTag($event, tag)" md-cell class="description ">{{tag.description}}</td>\n <td ng-click="vm.createOrEditTag($event, tag)" md-cell class="color ">{{tag.color}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(tag, $event )" translate="TOOLS.EDIT_TAG">\n Edit Tag\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(tag, $event )" translate="TOOLS.DELETE_TAG">\n Delete Tag\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.tags.count}}" md-on-paginate="vm.getTags" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / TAG TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD TAG BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-tag-button" ng-click="vm.createOrEditTag($event)" aria-label="add tag" translate translate-attr-aria-label="TOOLS.ADD_TAG">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD TAG BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/templates/create/dialog.html",'<md-dialog class="template-dialog" aria-label="New Template">\n <form name="templateForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.template.name" ng-required="true" autofocus>\n\n <div ng-messages="templateForm[\'name\'].$error" ng-show="templateForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="TOOLS.CONTENT">Content</label>\n <textarea aria-label="Content html" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.template.html"></textarea>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.template.description">\n\n <div ng-messages="templateForm[\'description\'].$error" ng-show="templateForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newTemplate" ng-click="vm.saveTemplate()" class="send-button md-accent md-raised" ng-disabled="templateForm.$invalid || templateForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newTemplate" ng-click="vm.addNewTemplate()" class="send-button md-accent md-raised" ng-disabled="templateForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_TEMPLATE" translate-attr-aria-label="TOOLS.ADD_TEMPLATE">\n ADD TEMPLATE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newTemplate" ng-click="vm.deleteTemplate($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/templates/templates.html",'<div id="templates" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="TOOLS.TEMPLATES">Templates</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedTemplates.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedTemplates =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="TOOLS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-templates-count">\n <span>{{vm.selectedTemplates.length}}</span>\n <span translate="TOOLS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TOOLS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllTemplates()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectTemplates()" translate="TOOLS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedTemplates" csv-label="true" filename="templates.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedTemplates($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- TEMPLATE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedTemplates" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTemplates">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.templates.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="template" md-select-id="id" ng-repeat="template in vm.templates.rows">\n <td md-cell ng-if="template.userpic"><img class="avatar" alt="{{template.name}}" ng-src="api/users/{{template.id}}/avatar" /></td>\n <td md-cell ng-if="!template.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{template.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditTemplate($event, template)" md-cell class="id ">{{template.id}}</td>\n <td ng-click="vm.createOrEditTemplate($event, template)" md-cell class="name ">{{template.name}}</td>\n <td ng-click="vm.createOrEditTemplate($event, template)" md-cell class="description ">{{template.description}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(template, $event )" translate="TOOLS.EDIT_TEMPLATE">\n Edit Template\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(template, $event )" translate="TOOLS.DELETE_TEMPLATE">\n Delete Template\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.templates.count}}" md-on-paginate="vm.getTemplates" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / TEMPLATE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD TEMPLATE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-template-button" ng-click="vm.createOrEditTemplate($event)" aria-label="add template" translate translate-attr-aria-label="TOOLS.ADD_TEMPLATE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD TEMPLATE BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/triggers/create/dialog.html",'<md-dialog class="trigger-dialog" aria-label="New Trigger">\n <form name="triggerForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.newTrigger ? \'TOOLS.NEW_TRIGGER\' : \'TOOLS.EDIT_TRIGGER\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.trigger.name" required md-autofocus>\n <div ng-messages="triggerForm[\'name\'].$error" ng-show="triggerForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.trigger.channel" required ng-disabled="!vm.newTrigger">\n <md-option ng-value="\'voice\'"> {{ \'TOOLS.VOICE\' | translate }} </md-option>\n <md-option ng-value="\'openchannel\'" ng-if="vm.license.openchannel"> {{ \'TOOLS.OPENCHANNEL\' | translate }}\n </md-option>\n <md-option ng-value="\'chat\'" ng-if="vm.license.chat"> {{ \'TOOLS.CHAT\' | translate }} </md-option>\n <md-option ng-value="\'mail\'" ng-if="vm.license.mail"> {{ \'TOOLS.MAIL\' | translate }} </md-option>\n <md-option ng-value="\'sms\'" ng-if="vm.license.messaging"> {{ \'TOOLS.SMS\' | translate }} </md-option>\n <md-option ng-value="\'fax\'" ng-if="vm.license.fax"> {{ \'TOOLS.FAX\' | translate }} </md-option>\n <md-option ng-value="\'whatsapp\'" ng-if="vm.license.whatsapp"> {{ \'TOOLS.WHATSAPP\' | translate }} </md-option>\n </md-select>\n <div ng-messages="triggerForm[\'channel\'].$error" ng-show="triggerForm[\'channel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.trigger.status" aria-label="Status"><span translate="TOOLS.STATUS">Status</span>\n </md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.trigger.description">\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{ error.message }}</span>\n <span class="type">({{ error.type }})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newTrigger" ng-click="vm.saveTrigger()" class="send-button md-accent md-raised" ng-disabled="triggerForm.$invalid || triggerForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newTrigger" ng-click="vm.addNewTrigger()" class="send-button md-accent md-raised" ng-disabled="triggerForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_TRIGGER" translate-attr-aria-label="TOOLS.ADD_TRIGGER">\n ADD TRIGGER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newTrigger" ng-click="vm.deleteTrigger($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/triggers/edit/actions/actions.html",'<div ng-controller="TriggerActionsController as vm_dc" ng-init="vm_dc.onInit(vm.trigger, vm.crudPermissions)">\r\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedTriggerActions.length">\r\n <div class="md-toolbar-tools">\r\n <span class="md-subhead" translate="TOOLS.ACTIONS">Actions</span>\r\n <ms-search-bar on-search="vm_dc.getTriggerActions()" query="vm_dc.query" debounce="300" direction="down">\r\n </ms-search-bar>\r\n <div flex></div>\r\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditTriggerAction($event)" aria-label="add action" translate translate-attr-label="TOOLS.ADD_ACTION">\r\n <md-icon md-font-icon="icon-plus"></md-icon>\r\n </md-button>\r\n </div>\r\n </md-toolbar>\r\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedTriggerActions.length">\r\n <div class="md-toolbar-tools">\r\n <span class="md-subhead">{{ vm_dc.selectedTriggerActions.length }}\r\n {{ vm_dc.selectedTriggerActions.length > 1 ? \'items\' : \'item\' }} selected</span>\r\n <div flex></div>\r\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedTriggerActions" csv-label="true" filename="triggers.csv">\r\n <md-icon md-font-icon="icon-file-excel"></md-icon>\r\n </button>\r\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedTriggerActions($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\r\n <md-icon md-font-icon="icon-delete"></md-icon>\r\n </md-button>\r\n </div>\r\n </md-toolbar>\r\n <md-table-container class="font-size-12">\r\n <table md-table md-row-select multiple ng-model="vm_dc.selectedTriggerActions" md-progress="vm_dc.promise">\r\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getTriggerActions">\r\n <tr md-row>\r\n <th md-column md-order-by="id">\r\n {{ \'TOOLS.ID\' | translate }}\r\n </th>\r\n <th md-column md-order-by="action">\r\n {{ \'TOOLS.ACTION\' | translate }}\r\n </th>\r\n <th md-column md-order-by="data1">\r\n {{ \'TOOLS.TYPE\' | translate }}\r\n </th>\r\n <th md-column md-order-by="data2">\r\n {{ \'TOOLS.INFO\' | translate }}\r\n </th>\r\n <th md-column md-order-by="createdAt">\r\n {{ \'TOOLS.CREATED_AT\' | translate }}\r\n </th>\r\n <th md-column width="10px"></th>\r\n </tr>\r\n </thead>\r\n <tbody md-body>\r\n <tr md-row md-select="action" md-select-id="id" ng-repeat="action in vm_dc.triggerActions.rows">\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" md-cell>\r\n {{ action.id }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" md-cell>\r\n {{ \'TOOLS.\' + (action.action | snakecase | uppercase) | translate }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'browser\'" md-cell>\r\n {{ action.data1 === \'1\' ? \'CTI URL\' : \'Popup\' }} </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'contactManager\'" md-cell>\r\n {{ (vm_dc.lists | filter : {\'id\':(action.data1 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'contactManager\'" md-cell>\r\n {{ action.data2 === \'1\' ? \'TOOLS.YES\' : \'TOOLS.NO\' | uppercase | translate }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'urlForward\'" md-cell>\r\n {{ action.data1 }} </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="!action.data1" md-cell>\r\n {{ action.data1 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="!action.data2" md-cell>\r\n {{ action.data2 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'urlForward\'" md-cell>\r\n {{ action.data2 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'script\' && action.data2" md-cell>\r\n {{ action.data2 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'script\' && action.data1" md-cell>\r\n {{ action.data1 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'jscripty\'" md-cell>\r\n {{ (vm_dc.projects | filter : {\'id\':(action.data1 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\'" md-cell>\r\n {{ vm_dc.integrationTypes[action.data1] }} </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'zendesk\'" md-cell>\r\n {{ (vm_dc.zendeskAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'desk\'" md-cell>\r\n {{ (vm_dc.deskAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'zoho\'" md-cell>\r\n {{ (vm_dc.zohoAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'salesforce\'" md-cell>\r\n {{ (vm_dc.salesforceAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'sugarcrm\'" md-cell>\r\n {{ (vm_dc.sugarcrmAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'freshdesk\'" md-cell>\r\n {{ (vm_dc.freshdeskAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'vtiger\'" md-cell>\r\n {{ (vm_dc.vtigerAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'dynamics365\'" md-cell>\r\n {{ (vm_dc.dynamics365Accounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'servicenow\'" md-cell>\r\n {{ (vm_dc.servicenowAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'integration\' && action.data1 == \'freshsales\'" md-cell>\r\n {{ (vm_dc.freshsalesAccounts | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'motionbar\'" md-cell>\r\n {{ vm_dc.motionBarOptions[action.data1] }} </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'motionbar\' && action.data1 === \'1\'" md-cell>\r\n {{ action.data2 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'motionbar\' && action.data1 === \'2\'" md-cell>\r\n {{ action.data2 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'motionbar\' && action.data1 === \'0\'" md-cell>\r\n {{ (vm_dc.templates | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'browser\' && action.data1 === \'0\'" md-cell>\r\n {{ (vm_dc.templates | filter : {\'id\':(action.data2 | toInteger)} : true)[0].name }}</td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" ng-if="action.action == \'browser\' && action.data1 === \'1\'" md-cell>\r\n {{ action.data2 }}\r\n </td>\r\n <td ng-click="vm_dc.createOrEditTriggerAction($event, action)" md-cell>\r\n {{ action.createdAt | formatdate }}\r\n </td>\r\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\r\n <md-menu>\r\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\r\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\r\n </md-button>\r\n <md-menu-content width="3">\r\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\r\n <md-button ng-click="vm_dc.createOrEditTriggerAction($event, action)" translate="TOOLS.EDIT_ACTION">\r\n Edit Action\r\n </md-button>\r\n </md-menu-item>\r\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\r\n <md-button ng-click="vm_dc.deleteConfirm(action, $event)" translate="TOOLS.DELETE_ACTION">\r\n Delete Action\r\n </md-button>\r\n </md-menu-item>\r\n </md-menu-content>\r\n </md-menu>\r\n </td>\r\n </tr>\r\n <tr md-row ng-if="!vm_dc.triggerActions.rows.length">\r\n <td md-cell colspan="5">\r\n <div layout="row" layout-align="center center">\r\n <span class="text-boxed-light" translate="TOOLS.NO_ACTION_AVAILABLE">No action\r\n available</span>\r\n </div>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </md-table-container>\r\n <md-table-pagination md-label="{page: \'{{ \'TOOLS.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'TOOLS.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'TOOLS.OF\' | translate }}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{ vm_dc.triggerActions.count }}" md-on-paginate="vm_dc.getTriggerActions" md-page-select>\r\n </md-table-pagination>\r\n</div>'),e.put("app/main/apps/tools/views/triggers/edit/actions/create/dialog.html",'<md-dialog class="action-dialog" aria-label="New Action">\n <form name="actionForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.newAction ? \'TOOLS.NEW_ACTION\' : \'TOOLS.EDIT_ACTION\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <md-input-container class="md-block">\n <label translate="TOOLS.ACTION">Action</label>\n <md-select name="action" ng-model="vm.action.action" ng-init="vm.onActionInit()" ng-change="vm.onActionSelection()" md-autofocus required ng-disabled="!vm.newAction">\n <md-option ng-value="\'contactManager\'" ng-if="vm.trigger.channel == \'voice\'">\n {{ \'TOOLS.CONTACT_MANAGER\' | translate }} </md-option>\n <md-option ng-value="\'integration\'" ng-if="vm.trigger.channel == \'voice\' && ((vm.newAction && vm.hasIntegrationsPermissions) || !vm.newAction)">\n {{ \'TOOLS.INTEGRATIONS\' | translate }} </md-option>\n <md-option ng-value="\'motionbar\'"> {{ \'TOOLS.MOTIONBAR\' | translate }} </md-option>\n <md-option ng-value="\'jscripty\'"> {{ \'TOOLS.JSCRIPTY\' | translate }} </md-option>\n <md-option ng-value="\'urlForward\'"> {{ \'TOOLS.URL_FORWARD\' | translate }} </md-option>\n <md-option ng-value="\'browser\'"> {{ \'TOOLS.BROWSER\' | translate }} </md-option>\n <md-option ng-value="\'bot\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.BOT\' | translate }} </md-option>\n <md-option ng-value="\'script\'"> {{ \'TOOLS.SCRIPT\' | translate }} </md-option>\n </md-select>\n <div ng-messages="actionForm[\'action\'].$error" ng-show="actionForm[\'action\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.ACTION_REQUIRED">Action field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'jscripty\'" class="md-block">\n <label translate="TOOLS.PROJECT">Project</label>\n <md-select name="data1" ng-model="vm.action.data1" required>\n <md-option ng-value="\'\'+data1.id" ng-repeat="data1 in vm.projects" ng-disabled="data1.canSelect === false">\n {{ data1.name }}</md-option>\n </md-select>\n <div ng-messages="actionForm[\'data1\'].$error" ng-show="actionForm[\'data1\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.PROJECT_REQUIRED">Project field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'browser\'" class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select name="data1" ng-model="vm.action.data1" ng-change="vm.onTypeSelection()" required>\n <md-option ng-value="\'0\'">Popup</md-option>\n <md-option ng-value="\'1\'">CTI URL</md-option>\n </md-select>\n <div ng-messages="actionForm[\'data1\'].$error" ng-show="actionForm[\'data1\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'contactManager\'" class="md-block">\n <label translate="TOOLS.LIST">List</label>\n <md-select name="data1" ng-model="vm.action.data1" ng-change="vm.onListSelection()" required>\n <md-option ng-value="\'\'+data1.id" ng-repeat="data1 in vm.lists" ng-disabled="data1.canSelect === false">\n {{ data1.name }}</md-option>\n </md-select>\n <div ng-messages="actionForm[\'data1\'].$error" ng-show="actionForm[\'data1\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'contactManager\'" class="md-block">\n <label translate="TOOLS.SEARCH_FIELDS">Search fields</label>\n <md-select name="fields" ng-model="vm.action.data3" ng-init="vm.onSearchFieldsInit()" multiple required>\n <md-optgroup label="{{ \'TOOLS.STANDARD\' | translate }}">\n <md-option ng-value="field.columnName" ng-repeat="field in vm.contactFields">\n {{ field.displayName }}</md-option>\n </md-optgroup>\n <md-optgroup label="{{ \'TOOLS.LIST\' | translate }}" ng-if="vm.listFields.length > 0">\n <md-option ng-value="field.columnName" ng-repeat="field in vm.listFields">\n {{ field.name }}</md-option>\n </md-optgroup>\n <md-optgroup label="{{ \'TOOLS.GLOBALS\' | translate }}" ng-if="vm.customFields.length > 0">\n <md-option ng-value="field.columnName" ng-repeat="field in vm.customFields">\n {{ field.displayName }}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="actionForm[\'data3\'].$error" ng-show="actionForm[\'data3\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SEARCH_FIELDS_REQUIRED">Search fields field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'contactManager\'" class="md-block">\n <label translate="TOOLS.AUTOCREATECONTACT">Create contact automatically</label>\n <md-select name="data2" ng-model="vm.action.data2" ng-change="vm.onAutocreateSelection()" required>\n <md-option ng-value="\'1\'"> {{ \'TOOLS.YES\' | translate }} </md-option>\n <md-option ng-value="\'0\'"> {{ \'TOOLS.NO\' | translate }} </md-option>\n </md-select>\n <div ng-messages="actionForm[\'data2\'].$error" ng-show="actionForm[\'data2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.AUTOCREATECONTACT_REQUIRED">AutoCreateContact field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'contactManager\' && vm.action.data2 === \'1\'" class="md-block">\n <label translate="TOOLS.AUTOCREATE_FIELD">Autocreate field</label>\n <md-select name="autocreateField" ng-model="vm.action.data4" ng-required="vm.action.data2 === \'1\'">\n <md-optgroup label="{{ \'TOOLS.STANDARD\' | translate }}">\n <md-option ng-value="field.columnName" ng-repeat="field in vm.contactFields">\n {{ field.displayName }}</md-option>\n </md-optgroup>\n <md-optgroup label="{{ \'TOOLS.LIST\' | translate }}" ng-if="vm.listFields.length > 0">\n <md-option ng-value="field.columnName" ng-repeat="field in vm.listFields">\n {{ field.name }}</md-option>\n </md-optgroup>\n <md-optgroup label="{{ \'TOOLS.GLOBALS\' | translate }}" ng-if="vm.customFields.length > 0">\n <md-option ng-value="field.columnName" ng-repeat="field in vm.customFields">\n {{ field.displayName }}</md-option>\n </md-optgroup>\n </md-select>\n <div ng-messages="actionForm[\'data4\'].$error" ng-show="actionForm[\'data4\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.AUTOCREATE_FIELD_REQUIRED">Autocreate field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'contactManager\'" class="md-block">\n <label translate="TOOLS.IGNOREDIALERCONTACTID">Ignore dialer contact Id</label>\n <md-select name="data5" ng-model="vm.action.data5" required>\n <md-option ng-value="\'1\'"> {{ \'TOOLS.YES\' | translate }} </md-option>\n <md-option ng-value="\'0\'"> {{ \'TOOLS.NO\' | translate }} </md-option>\n </md-select>\n <div ng-messages="actionForm[\'data5\'].$error" ng-show="actionForm[\'data5\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.IGNOREDIALERCONTACTID_REQUIRED">Ignore dialer contact Id field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'urlForward\'" class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select name="data1" ng-model="vm.action.data1" required>\n <md-option ng-value="\'GET\'">GET</md-option>\n <md-option ng-value="\'POST\'">POST</md-option>\n <md-option ng-value="\'PUT\'">PUT</md-option>\n <md-option ng-value="\'DELETE\'">DELETE</md-option>\n </md-select>\n <div ng-messages="actionForm[\'data1\'].$error" ng-show="actionForm[\'data1\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'urlForward\'" class="md-block">\n <label translate="TOOLS.URL">Url</label>\n <input type="url" name="data2" ng-model="vm.action.data2" ng-required="true">\n <div ng-messages="actionForm[\'data2\'].$error" ng-show="actionForm[\'data2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n <div ng-message="url">\n <span translate="TOOLS.ERRORS.URL_MUST_VALID_URL">Url must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'urlForward\'" class="md-block">\n <label translate="TOOLS.TIMEOUT">Timeout</label>\n <input type="number" name="data5" ng-model="vm.action.data5" min="1" max="10" ng-required="true">\n <div class="hint"><span translate="TOOLS.HELP.TIMEOUT"></span></div>\n <div ng-messages="actionForm[\'data5\'].$error" ng-show="actionForm[\'data5\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="TOOLS.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="TOOLS.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>10</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'urlForward\'" class="md-block">\n <label translate="TOOLS.HEADERS">Headers</label>\n <textarea name="data6" ng-model="vm.action.data6"></textarea>\n <div class="hint"><span translate="TOOLS.HELP.HEADERS"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'urlForward\' && (vm.action.data1 == \'POST\' || vm.action.data1 == \'PUT\')" class="md-block">\n <label translate="TOOLS.BODY">Body</label>\n <textarea name="data7" ng-model="vm.action.data7"></textarea>\n <div class="hint"><span translate="TOOLS.HELP.BODY"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'script\'" class="md-block">\n <label translate="TOOLS.SCRIPT_TYPE">Script_Type</label>\n <input type="input" name="data2" ng-model="vm.action.data2">\n <div class="hint"><span translate="TOOLS.HELP.SCRIPT_TYPE"></span></div>\n <div ng-messages="actionForm[\'data2\'].$error" ng-show="actionForm[\'data2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SCRIPT_TYPE_REQUIRED">Script_Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'script\'" class="md-block">\n <label translate="TOOLS.SCRIPT_INFO">Script_Info</label>\n <input type="input" name="data1" ng-model="vm.action.data1">\n <div class="hint"><span translate="TOOLS.HELP.SCRIPT_INFO"></span></div>\n <div ng-messages="actionForm[\'data1\'].$error" ng-show="actionForm[\'data1\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SCRIPT_INFO_REQUIRED">Script_Info field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'script\'" class="md-block">\n <label translate="TOOLS.SCRIPT">Script</label>\n <textarea name="data3" ng-model="vm.action.data3" required></textarea>\n <div class="hint"><span translate="TOOLS.HELP.SCRIPT"></span></div>\n <div ng-messages="actionForm[\'data3\'].$error" ng-show="actionForm[\'data3\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SCRIPT_REQUIRED">Script field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'integration\'" class="md-block">\n <label translate="TOOLS.INTEGRATION">Integration</label>\n <md-select name="data1" ng-model="vm.action.data1" ng-init="vm.onIntegrationInit()" ng-change="vm.onIntegrationSelection()" required>\n <md-option ng-value="\'desk\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1306]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1306])">Desk</md-option>\n <md-option ng-value="\'dynamics365\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1309]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1309])">Dynamics365</md-option>\n <md-option ng-value="\'freshdesk\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1303]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1303])">Freshdesk</md-option>\n <md-option ng-value="\'freshsales\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1304]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1304])">Freshsales</md-option>\n <md-option ng-value="\'salesforce\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1302]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1302])">Salesforce</md-option>\n <md-option ng-value="\'servicenow\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1310]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1310])">ServiceNow</md-option>\n <md-option ng-value="\'sugarcrm\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1305]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1305])">SugarCRM</md-option>\n <md-option ng-value="\'vtiger\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1308]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1308])">vTiger</md-option>\n <md-option ng-value="\'zendesk\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1301]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1301])">Zendesk</md-option>\n <md-option ng-value="\'zoho\'" ng-if="(vm.newAction && vm.hasSectionPermissions[1307]) || !vm.newAction" ng-disabled="(!vm.newAction && !vm.hasSectionPermissions[1307])">Zoho</md-option>\n </md-select>\n <div ng-messages="actionForm[\'data1\'].$error" ng-show="actionForm[\'data1\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.INTEGRATION_REQUIRED">Integration field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'integration\' && vm.action.data1" class="md-block">\n <label translate="TOOLS.ACCOUNT">Account</label>\n <md-select name="data2" ng-model="vm.action.data2" ng-change="vm.onIntegrationAccountSelection()" ng-disabled="vm.action.isIntegrationDisabled" required>\n <md-option ng-value="\'\'+data2.id" ng-repeat="data2 in vm.accounts">{{ data2.name }}</md-option>\n </md-select>\n <div ng-messages="actionForm[\'data2\'].$error" ng-show="actionForm[\'data2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.ACCOUNT_REQUIRED">Account field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'integration\' && vm.action.data1 && vm.action.data2" class="md-block">\n <label translate="TOOLS.CONFIGURATION">Configuration</label>\n <md-select name="data3" ng-model="vm.action.data3" required ng-disabled="vm.action.isIntegrationDisabled">\n <md-option ng-value="\'\'+data3.id" ng-repeat="data3 in vm.configurations | filter : { AccountId: (vm.action.data2 | toInteger) } : true">{{\n data3.name }}</md-option>\n </md-select>\n <div ng-messages="actionForm[\'data3\'].$error" ng-show="actionForm[\'data3\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.CONFIGURATION_REQUIRED">Configuration field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'motionbar\'" class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select name="data1" ng-model="vm.action.data1" ng-change="vm.onTypeSelection()" required>\n <md-option ng-value="\'0\'">Popup</md-option>\n <md-option ng-value="\'1\'">CTI URL</md-option>\n <md-option ng-value="\'2\'">Windows App</md-option>\n </md-select>\n <div ng-messages="actionForm[\'data1\'].$error" ng-show="actionForm[\'data1\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'motionbar\' && vm.action.data1 == \'1\'" class="md-block">\n <label translate="TOOLS.URL">Url</label>\n <input type="url" name="data2" ng-model="vm.action.data2" ng-required="true">\n <div ng-messages="actionForm[\'data2\'].$error" ng-show="actionForm[\'data2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n <div ng-message="url">\n <span translate="TOOLS.ERRORS.URL_MUST_VALID_URL">Url must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'motionbar\' && vm.action.data1 == \'2\'" class="md-block">\n <label translate="TOOLS.APPLICATION">Application</label>\n <input type="text" name="data2" ng-model="vm.action.data2" ng-required="true">\n <div ng-messages="actionForm[\'data2\'].$error" ng-show="actionForm[\'data2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.APPLICATION_REQUIRED">Application field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'motionbar\' && vm.action.data1 == \'2\'" class="md-block">\n <label translate="TOOLS.ARGUMENTS">Arguments</label>\n <input type="text" name="data3" ng-model="vm.action.data3">\n <div ng-messages="actionForm[\'data3\'].$error" ng-show="actionForm[\'data3\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.ARGUMENTS_REQUIRED">Arguments field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'motionbar\' && vm.action.data1 == \'0\'" class="md-block">\n <label translate="TOOLS.TEMPLATE">Template</label>\n <md-select name="data2" ng-model="vm.action.data2" required>\n <md-option ng-value="\'\'+data2.id" ng-repeat="data2 in vm.templates" ng-disabled="data2.canSelect === false">\n {{ data2.name }}</md-option>\n </md-select>\n <div ng-messages="actionForm[\'data2\'].$error" ng-show="actionForm[\'data2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TEMPLATE_REQUIRED">Template field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'browser\' && vm.action.data1 == \'0\'" class="md-block">\n <label translate="TOOLS.TEMPLATE">Template</label>\n <md-select name="data2" ng-model="vm.action.data2" required>\n <md-option ng-value="\'\'+data2.id" ng-repeat="data2 in vm.templates" ng-disabled="data2.canSelect === false">\n {{ data2.name }}</md-option>\n </md-select>\n <div ng-messages="actionForm[\'data2\'].$error" ng-show="actionForm[\'data2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TEMPLATE_REQUIRED">Template field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'browser\' && vm.action.data1 == \'1\'" class="md-block">\n <label translate="TOOLS.URL">Url</label>\n <input type="url" name="data2" ng-model="vm.action.data2" ng-required="true">\n <div ng-messages="actionForm[\'data2\'].$error" ng-show="actionForm[\'data2\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n <div ng-message="url">\n <span translate="TOOLS.ERRORS.URL_MUST_VALID_URL">Url must be a valid url http://www.xcally.com</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="(vm.action.action == \'motionbar\' || vm.action.action == \'browser\') && vm.action.data1 == \'1\'" class="md-block">\n <label translate="TOOLS.EVENTVARIABLES">EventVariables</label>\n <md-select name="data3" ng-model="vm.action.data3" required>\n <md-option ng-value="\'1\'"> {{ \'TOOLS.YES\' | translate }} </md-option>\n <md-option ng-value="\'0\'"> {{ \'TOOLS.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.EVENTVARIABLES"></span></div>\n <div ng-messages="actionForm[\'data3\'].$error" ng-show="actionForm[\'data3\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.EVENTVARIABLES_REQUIRED">EventVariables field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'browser\' && vm.action.data1 == \'1\'" class="md-block">\n <label translate="TOOLS.LOCATION">Location</label>\n <md-select name="data4" ng-model="vm.action.data4" required ng-change="vm.onActionLocationChange()">\n <md-option ng-value="0"> {{ \'TOOLS.NEW_TAB\' | translate }} </md-option>\n <md-option ng-value="1"> {{ \'TOOLS.NEW_WINDOW\' | translate }} </md-option>\n <md-option ng-value="2"> {{ \'TOOLS.MOTION_TAB\' | translate }} </md-option>\n </md-select>\n <div ng-messages="actionForm[\'data4\'].$error" ng-show="actionForm[\'data4\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.LOCATION_REQUIRED">Location field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'browser\' && vm.action.data4 == \'1\'" class="md-block">\n <label translate="TOOLS.WINDOWWIDTH">WindowWidth</label>\n <input type="text" name="data5" ng-model="vm.action.data5">\n <div ng-messages="actionForm[\'data5\'].$error" ng-show="actionForm[\'data5\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.WINDOWWIDTH_REQUIRED">WindowWidth field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.action.action == \'browser\' && vm.action.data4 == \'1\'" class="md-block">\n <label translate="TOOLS.WINDOWHEIGHT">WindowHeight</label>\n <input type="text" name="data6" ng-model="vm.action.data6">\n <div ng-messages="actionForm[\'data6\'].$error" ng-show="actionForm[\'data6\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.WINDOWHEIGHT_REQUIRED">WindowHeight field is required</span>\n </div>\n </div>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newAction" ng-click="vm.saveAction()" class="send-button md-accent md-raised" ng-disabled="actionForm.$invalid || actionForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newAction" ng-click="vm.addNewAction()" class="send-button md-accent md-raised" ng-disabled="actionForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_ACTION" translate-attr-aria-label="TOOLS.ADD_ACTION">\n ADD ACTION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newAction" ng-click="vm.deleteAction($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/triggers/edit/allconditions/allconditions.html",'<div ng-controller="TriggerAllConditionsController as vm_dc" ng-init="vm_dc.onInit(vm.trigger, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedAllConditions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="TOOLS.ALLCONDITIONS">All Conditions</span>\n <ms-search-bar on-search="vm_dc.getAllConditions()" query="vm_dc.query" debounce="300" direction="down">\n </ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditAllCondition($event)" aria-label="add allCondition" translate translate-attr-label="TOOLS.ADD_ALLCONDITION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedAllConditions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{ vm_dc.selectedAllConditions.length }}\n {{ vm_dc.selectedAllConditions.length > 1 ? \'items\' : \'item\' }} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedAllConditions" csv-label="true" filename="triggers.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedAllConditions($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedAllConditions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getAllConditions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'TOOLS.ID\' | translate }}\n </th>\n <th md-column md-order-by="field">\n {{ \'TOOLS.FIELD\' | translate }}\n </th>\n <th md-column md-order-by="operator">\n {{ \'TOOLS.OPERATOR\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'TOOLS.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'TOOLS.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="allCondition" md-select-id="id" ng-repeat="allCondition in vm_dc.allConditions.rows">\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" md-cell>\n {{ allCondition.id }}\n </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" md-cell>\n {{ \'TOOLS.\' + vm_dc.fields[allCondition.field] | uppercase | translate }}\n </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" md-cell>\n {{ \'TOOLS.\' + allCondition.operator | uppercase | translate }}\n </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="!allCondition.value" md-cell>\n {{ allCondition.value }}\n </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'chat\' && allCondition.field == \'account\'" md-cell>\n {{ (vm_dc.chatWebsites | filter : {\'id\':(allCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'mail\' && allCondition.field == \'account\'" md-cell>\n {{ (vm_dc.mailAccounts | filter : {\'id\':(allCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'sms\' && allCondition.field == \'account\'" md-cell>\n {{ (vm_dc.smsAccounts | filter : {\'id\':(allCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'whatsapp\' && allCondition.field == \'account\'" md-cell>\n {{ (vm_dc.whatsappAccounts | filter : {\'id\': (allCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'fax\' && allCondition.field == \'account\'" md-cell>\n {{ (vm_dc.faxAccounts | filter : {\'id\': (allCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'openchannel\' && allCondition.field == \'account\'" md-cell>\n {{ (vm_dc.openchannelAccounts | filter : {\'id\': (allCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'voice\' && allCondition.field == \'queue\'" md-cell>\n {{ (vm_dc.queues | filter : {\'name\':allCondition.value} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'voice\' && allCondition.field == \'routeId\'" md-cell>\n {{ (vm_dc.outboundRoutes | filter : {\'id\':(allCondition.value | toInteger)} : true)[0].exten }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'voice\' && allCondition.field == \'agent\'" md-cell>\n {{ (vm_dc.agents | filter : {\'name\':allCondition.value} : true)[0].fullname }}</td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'voice\' && allCondition.field == \'lastevent\'" md-cell>\n {{ vm_dc.callStatuses[allCondition.value] }} </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel != \'voice\' && allCondition.field == \'interaction\'" md-cell>\n {{ allCondition.value | capitalize }} </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel != \'voice\' && allCondition.field == \'message\'" md-cell>\n {{ vm_dc.messageStatuses[allCondition.value] }} </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" ng-if="vm.trigger.channel == \'mail\' && allCondition.field == \'mailSubstatus\'" md-cell>\n {{ allCondition.value === \'null\' ? (\'TOOLS.NONE\' | translate) : (vm_dc.mailSubstatuses | filter : {\'name\': allCondition.value } : true)[0].name }}\n </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" md-cell>\n {{ allCondition.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditAllCondition($event, allCondition)" translate="TOOLS.EDIT_ALLCONDITION">\n Edit AllCondition\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(allCondition, $event)" translate="TOOLS.DELETE_ALLCONDITION">\n Delete AllCondition\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.allConditions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="TOOLS.NO_ALLCONDITION_AVAILABLE">No condition\n available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{ \'TOOLS.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'TOOLS.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'TOOLS.OF\' | translate }}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{ vm_dc.allConditions.count }}" md-on-paginate="vm_dc.getAllConditions" md-page-select>\n </md-table-pagination>\n</div>'),e.put("app/main/apps/tools/views/triggers/edit/allconditions/create/dialog.html",'<md-dialog class="allCondition-dialog" aria-label="New AllCondition">\n <form name="allConditionForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.newAllCondition ? \'TOOLS.NEW_ALLCONDITION\' : \'TOOLS.EDIT_ALLCONDITION\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <md-input-container class="md-block">\n <label translate="TOOLS.FIELD">Field</label>\n <md-select name="field" ng-model="vm.allCondition.field" ng-change="vm.onFieldSelection()" md-autofocus required>\n <md-option ng-value="\'queue\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.QUEUE\' | translate }}\n </md-option>\n <md-option ng-value="\'lastevent\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.CALL_STATUS\' | translate }}\n </md-option>\n <md-option ng-value="\'routeId\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.OUTBOUNDROUTE\' | translate }}\n </md-option>\n <md-option ng-value="\'agent\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.AGENT\' | translate }}\n </md-option>\n <md-option ng-value="\'account\'" ng-if="vm.trigger.channel != \'voice\'"> {{ \'TOOLS.ACCOUNT\' | translate }}\n </md-option>\n <md-option ng-value="\'interaction\'" ng-if="vm.trigger.channel != \'voice\'">\n {{ \'TOOLS.INTERACTION\' | translate }} </md-option>\n <md-option ng-value="\'message\'" ng-if="vm.trigger.channel != \'voice\'"> {{ \'TOOLS.MESSAGE\' | translate }}\n </md-option>\n <md-option ng-value="\'mailSubstatus\'" ng-if="vm.trigger.channel == \'mail\'"> {{ \'TOOLS.MAIL_SUBSTATUS\' | translate }}\n </md-option>\n </md-select>\n <div ng-messages="allConditionForm[\'field\'].$error" ng-show="allConditionForm[\'field\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.FIELD_REQUIRED">Field field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.OPERATOR">Operator</label>\n <md-select name="operator" ng-model="vm.allCondition.operator" required>\n <md-option ng-value="\'equals\'"> {{ \'TOOLS.EQUALS\' | translate }} </md-option>\n <md-option ng-value="\'not_equals\'"> {{ \'TOOLS.NOT_EQUALS\' | translate }} </md-option>\n </md-select>\n <div ng-messages="allConditionForm[\'operator\'].$error" ng-show="allConditionForm[\'operator\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.OPERATOR_REQUIRED">Operator field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.allCondition.field == \'account\'" class="md-block">\n <label translate="TOOLS.ACCOUNT">Account</label>\n <md-select name="value" ng-model="vm.allCondition.value" required>\n <md-option ng-value="value.id.toString()" ng-repeat="value in vm.accounts" ng-disabled="value.canSelect === false">\n {{ value.name }}</md-option>\n </md-select>\n <div ng-messages="allConditionForm[\'value\'].$error" ng-show="allConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.ACCOUNT_REQUIRED">Account field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.allCondition.field == \'queue\' && vm.trigger.channel == \'voice\'" class="md-block">\n <label translate="TOOLS.QUEUE">Queue</label>\n <md-select name="value" ng-model="vm.allCondition.value" required>\n <md-option ng-value="value.name" ng-repeat="value in vm.queues" ng-disabled="value.canSelect === false">\n {{ value.name }}</md-option>\n </md-select>\n <div ng-messages="allConditionForm[\'value\'].$error" ng-show="allConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.allCondition.field == \'routeId\' && vm.trigger.channel == \'voice\'" class="md-block">\n <label translate="TOOLS.OUTBOUNDROUTE">OutboundRoute</label>\n <md-select name="value" ng-model="vm.allCondition.value" required>\n <md-option ng-value="value.id.toString()" ng-repeat="value in vm.outboundRoutes" ng-disabled="value.canSelect === false">\n {{ value.exten }}</md-option>\n </md-select>\n <div ng-messages="allConditionForm[\'value\'].$error" ng-show="allConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.OUTBOUNDROUTE_REQUIRED">OutboundRoute field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.allCondition.field == \'agent\' && vm.trigger.channel == \'voice\'" class="md-block">\n <label translate="TOOLS.AGENT">Agent</label>\n <md-select name="value" ng-model="vm.allCondition.value" required>\n <md-option ng-value="value.name" ng-repeat="value in vm.agents" ng-disabled="value.canSelect === false">\n {{ value.fullname }}</md-option>\n </md-select>\n <div ng-messages="allConditionForm[\'value\'].$error" ng-show="allConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.allCondition.field == \'lastevent\'" class="md-block">\n <label translate="TOOLS.VALUE">Value</label>\n <md-select name="value" ng-model="vm.allCondition.value" required>\n <md-option ng-value="status.value" ng-repeat="status in vm.callStatuses">\n {{ status.name }}</md-option>\n </md-select>\n <div ng-messages="allConditionForm[\'value\'].$error" ng-show="allConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.allCondition.field == \'mailSubstatus\'" class="md-block">\n <label translate="TOOLS.VALUE">Value</label>\n <md-select name="value" ng-model="vm.allCondition.value" required>\n <md-option ng-value="mailSubstatus.name" ng-repeat="mailSubstatus in vm.mailSubstatuses">\n {{ mailSubstatus.name }}</md-option>\n <md-option ng-value="\'null\'">{{\'TOOLS.NONE\' | translate}}</md-option>\n </md-select>\n <div ng-messages="allConditionForm[\'value\'].$error" ng-show="allConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.allCondition.field == \'interaction\' && vm.trigger.channel != \'voice\'" class="md-block">\n <label translate="TOOLS.VALUE">Value</label>\n <md-select name="value" ng-model="vm.allCondition.value" required>\n <md-option ng-value="\'opened\'">Opened</md-option>\n <md-option ng-value="\'closed\'">Closed</md-option>\n <md-option ng-if="vm.trigger.channel==\'mail\'" ng-value="\'substatus\'">SubStatus</md-option>\n </md-select>\n <div ng-messages="allConditionForm[\'value\'].$error" ng-show="allConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.allCondition.field == \'message\' && vm.trigger.channel != \'voice\'" class="md-block">\n <label translate="TOOLS.VALUE">Value</label>\n <md-select name="value" ng-model="vm.allCondition.value" required>\n <md-option ng-value="\'in\'">Incoming</md-option>\n <md-option ng-value="\'out\'">Outgoing</md-option>\n <md-option ng-value="\'accept\'">Accepted</md-option>\n <md-option ng-value="\'reject\'">Rejected</md-option>\n </md-select>\n <div ng-messages="allConditionForm[\'value\'].$error" ng-show="allConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newAllCondition" ng-click="vm.saveAllCondition()" class="send-button md-accent md-raised" ng-disabled="allConditionForm.$invalid || allConditionForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newAllCondition" ng-click="vm.addNewAllCondition()" class="send-button md-accent md-raised" ng-disabled="allConditionForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_ALLCONDITION" translate-attr-aria-label="TOOLS.ADD_ALLCONDITION">\n ADD ALLCONDITION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newAllCondition" ng-click="vm.deleteAllCondition($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/triggers/edit/anyconditions/anyconditions.html",'<div ng-controller="TriggerAnyConditionsController as vm_dc" ng-init="vm_dc.onInit(vm.trigger, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedAnyConditions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="TOOLS.ANYCONDITIONS">AnyConditions</span>\n <ms-search-bar on-search="vm_dc.getAnyConditions()" query="vm_dc.query" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditAnyCondition($event)" aria-label="add anyCondition" translate translate-attr-label="TOOLS.ADD_ANYCONDITION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedAnyConditions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{ vm_dc.selectedAnyConditions.length }}\n {{ vm_dc.selectedAnyConditions.length > 1 ? \'items\' : \'item\' }} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedAnyConditions" csv-label="true" filename="triggers.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedAnyConditions($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedAnyConditions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getAnyConditions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'TOOLS.ID\' | translate }}\n </th>\n <th md-column md-order-by="field">\n {{ \'TOOLS.FIELD\' | translate }}\n </th>\n <th md-column md-order-by="operator">\n {{ \'TOOLS.OPERATOR\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'TOOLS.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'TOOLS.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="anyCondition" md-select-id="id" ng-repeat="anyCondition in vm_dc.anyConditions.rows">\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" md-cell>\n {{ anyCondition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" md-cell>\n {{ \'TOOLS.\' + vm_dc.fields[anyCondition.field] | uppercase | translate }}\n </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" md-cell>\n {{ \'TOOLS.\' + anyCondition.operator | uppercase | translate }}\n </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="!anyCondition.value" md-cell>\n {{ anyCondition.value }}\n </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'chat\' && anyCondition.field == \'account\'" md-cell>\n {{ (vm_dc.chatWebsites | filter : {\'id\': (anyCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'mail\' && anyCondition.field == \'account\'" md-cell>\n {{ (vm_dc.mailAccounts | filter : {\'id\':(anyCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'sms\' && anyCondition.field == \'account\'" md-cell>\n {{ (vm_dc.smsAccounts | filter : {\'id\': (anyCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, allCondition)" ng-if="vm.trigger.channel == \'whatsapp\' && anyCondition.field == \'account\'" md-cell>\n {{ (vm_dc.whatsappAccounts | filter : {\'id\':(anyCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'fax\' && anyCondition.field == \'account\'" md-cell>\n {{ (vm_dc.faxAccounts | filter : {\'id\': (anyCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'openchannel\' && anyCondition.field == \'account\'" md-cell>\n {{ (vm_dc.openchannelAccounts | filter : {\'id\': (anyCondition.value | toInteger)} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'voice\' && anyCondition.field == \'queue\'" md-cell>\n {{ (vm_dc.queues | filter : {\'name\':anyCondition.value} : true)[0].name }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'voice\' && anyCondition.field == \'routeId\'" md-cell>\n {{ (vm_dc.outboundRoutes | filter : {\'id\': (anyCondition.value | toInteger)} : true)[0].exten }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'voice\' && anyCondition.field == \'agent\'" md-cell>\n {{ (vm_dc.agents | filter : {\'name\':anyCondition.value} : true)[0].fullname }}</td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'voice\' && anyCondition.field == \'lastevent\'" md-cell>\n {{ vm_dc.callStatuses[anyCondition.value] }} </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel != \'voice\' && anyCondition.field == \'interaction\'" md-cell>\n {{ anyCondition.value | capitalize }} </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" ng-if="vm.trigger.channel != \'voice\' && anyCondition.field == \'message\'" md-cell>\n {{ vm_dc.messageStatuses[anyCondition.value] }} </td>\n <td ng-click="vm_dc.createOrEditAllCondition($event, anyCondition)" ng-if="vm.trigger.channel == \'mail\' && anyCondition.field == \'mailSubstatus\'" md-cell>\n {{ anyCondition.value === \'null\' ? (\'TOOLS.NONE\' | translate) : (vm_dc.mailSubstatuses | filter : {\'name\': anyCondition.value } : true)[0].name }}\n </td>\n <td ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" md-cell>\n {{ anyCondition.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditAnyCondition($event, anyCondition)" translate="TOOLS.EDIT_ANYCONDITION">\n Edit AnyCondition\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(anyCondition, $event)" translate="TOOLS.DELETE_ANYCONDITION">\n Delete AnyCondition\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.anyConditions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="TOOLS.NO_ANYCONDITION_AVAILABLE">No anycondition\n available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{ \'TOOLS.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'TOOLS.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'TOOLS.OF\' | translate }}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{ vm_dc.anyConditions.count }}" md-on-paginate="vm_dc.getAnyConditions" md-page-select>\n </md-table-pagination>\n</div>'),e.put("app/main/apps/tools/views/triggers/edit/anyconditions/create/dialog.html",'<md-dialog class="anyCondition-dialog" aria-label="New AnyCondition">\n <form name="anyConditionForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.newAnyCondition ? \'TOOLS.NEW_ANYCONDITION\' : \'TOOLS.EDIT_ANYCONDITION\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <md-input-container class="md-block">\n <label translate="TOOLS.FIELD">Field</label>\n <md-select name="field" ng-model="vm.anyCondition.field" ng-change="vm.onFieldSelection()" md-autofocus required>\n <md-option ng-value="\'queue\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.QUEUE\' | translate }}\n </md-option>\n <md-option ng-value="\'lastevent\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.CALL_STATUS\' | translate }}\n </md-option>\n <md-option ng-value="\'routeId\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.OUTBOUNDROUTE\' | translate }}\n </md-option>\n <md-option ng-value="\'agent\'" ng-if="vm.trigger.channel == \'voice\'"> {{ \'TOOLS.AGENT\' | translate }}\n </md-option>\n <md-option ng-value="\'account\'" ng-if="vm.trigger.channel != \'voice\'"> {{ \'TOOLS.ACCOUNT\' | translate }}\n </md-option>\n <md-option ng-value="\'interaction\'" ng-if="vm.trigger.channel != \'voice\'">\n {{ \'TOOLS.INTERACTION\' | translate }} </md-option>\n <md-option ng-value="\'message\'" ng-if="vm.trigger.channel != \'voice\'"> {{ \'TOOLS.MESSAGE\' | translate }}\n </md-option>\n <md-option ng-value="\'mailSubstatus\'" ng-if="vm.trigger.channel == \'mail\'"> {{ \'TOOLS.MAIL_SUBSTATUS\' | translate }}\n </md-option>\n </md-select>\n <div ng-messages="anyConditionForm[\'field\'].$error" ng-show="anyConditionForm[\'field\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.FIELD_REQUIRED">Field field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.OPERATOR">Operator</label>\n <md-select name="operator" ng-model="vm.anyCondition.operator" required>\n <md-option ng-value="\'equals\'"> {{ \'TOOLS.EQUALS\' | translate }} </md-option>\n <md-option ng-value="\'not_equals\'"> {{ \'TOOLS.NOT_EQUALS\' | translate }} </md-option>\n </md-select>\n <div ng-messages="anyConditionForm[\'operator\'].$error" ng-show="anyConditionForm[\'operator\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.OPERATOR_REQUIRED">Operator field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.anyCondition.field == \'account\'" class="md-block">\n <label translate="TOOLS.ACCOUNT">Account</label>\n <md-select name="value" ng-model="vm.anyCondition.value" required>\n <md-option ng-value="value.id.toString()" ng-repeat="value in vm.accounts" ng-disabled="value.canSelect === false">\n {{ value.name }}</md-option>\n </md-select>\n <div ng-messages="anyConditionForm[\'value\'].$error" ng-show="anyConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.ACCOUNT_REQUIRED">Account field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.anyCondition.field == \'queue\' && vm.trigger.channel == \'voice\'" class="md-block">\n <label translate="TOOLS.QUEUE">Queue</label>\n <md-select name="value" ng-model="vm.anyCondition.value" required>\n <md-option ng-value="value.name" ng-repeat="value in vm.queues" ng-disabled="value.canSelect === false">\n {{ value.name }}</md-option>\n </md-select>\n <div ng-messages="anyConditionForm[\'value\'].$error" ng-show="anyConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.anyCondition.field == \'routeId\' && vm.trigger.channel == \'voice\'" class="md-block">\n <label translate="TOOLS.OUTBOUNDROUTE">OutboundRoute</label>\n <md-select name="value" ng-model="vm.anyCondition.value" required>\n <md-option ng-value="value.id.toString()" ng-repeat="value in vm.outboundRoutes" ng-disabled="value.canSelect === false">\n {{ value.exten }}</md-option>\n </md-select>\n <div ng-messages="anyConditionForm[\'value\'].$error" ng-show="anyConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.OUTBOUNDROUTE_REQUIRED">OutboundRoute field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.anyCondition.field == \'agent\' && vm.trigger.channel == \'voice\'" class="md-block">\n <label translate="TOOLS.AGENT">Agent</label>\n <md-select name="value" ng-model="vm.anyCondition.value" required>\n <md-option ng-value="value.name" ng-repeat="value in vm.agents" ng-disabled="value.canSelect === false">\n {{ value.fullname }}</md-option>\n </md-select>\n <div ng-messages="anyConditionForm[\'value\'].$error" ng-show="anyConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.anyCondition.field == \'lastevent\'" class="md-block">\n <label translate="TOOLS.VALUE">Value</label>\n <md-select name="value" ng-model="vm.anyCondition.value" required>\n <md-option ng-value="status.value" ng-repeat="status in vm.callStatuses">\n {{ status.name }}</md-option>\n </md-select>\n <div ng-messages="anyConditionForm[\'value\'].$error" ng-show="anyConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.anyCondition.field == \'mailSubstatus\'" class="md-block">\n <label translate="TOOLS.VALUE">Value</label>\n <md-select name="value" ng-model="vm.anyCondition.value" required>\n <md-option ng-value="mailSubstatus.name" ng-repeat="mailSubstatus in vm.mailSubstatuses">\n {{ mailSubstatus.name }}</md-option>\n <md-option ng-value="\'null\'">{{\'TOOLS.NONE\' | translate}}</md-option>\n </md-select>\n <div ng-messages="anyConditionForm[\'value\'].$error" ng-show="anyConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.anyCondition.field == \'interaction\' && vm.trigger.channel != \'voice\'" class="md-block">\n <label translate="TOOLS.VALUE">Value</label>\n <md-select name="value" ng-model="vm.anyCondition.value" required>\n <md-option ng-value="\'opened\'">Opened</md-option>\n <md-option ng-value="\'closed\'">Closed</md-option>\n <md-option ng-if="vm.trigger.channel==\'mail\'" ng-value="\'substatus\'">SubStatus</md-option>\n </md-select>\n <div ng-messages="anyConditionForm[\'value\'].$error" ng-show="anyConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.anyCondition.field == \'message\' && vm.trigger.channel != \'voice\'" class="md-block">\n <label translate="TOOLS.VALUE">Value</label>\n <md-select name="value" ng-model="vm.anyCondition.value" required>\n <md-option ng-value="\'in\'">Incoming</md-option>\n <md-option ng-value="\'out\'">Outgoing</md-option>\n <md-option ng-value="\'accept\'">Accepted</md-option>\n <md-option ng-value="\'reject\'">Rejected</md-option>\n </md-select>\n <div ng-messages="anyConditionForm[\'value\'].$error" ng-show="anyConditionForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newAnyCondition" ng-click="vm.saveAnyCondition()" class="send-button md-accent md-raised" ng-disabled="anyConditionForm.$invalid || anyConditionForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newAnyCondition" ng-click="vm.addNewAnyCondition()" class="send-button md-accent md-raised" ng-disabled="anyConditionForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_ANYCONDITION" translate-attr-aria-label="TOOLS.ADD_ANYCONDITION">\n ADD ANYCONDITION\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newAnyCondition" ng-click="vm.deleteAnyCondition($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/triggers/edit/view.html",'<div id="tools-trigger" class="page-layout simple tabbed" layout="column">\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-triggers-button md-icon-button" aria-label="Go to triggers" ng-click="vm.gotoTriggers()" translate translate-attr-aria-label="TOOLS.GO_TO_TRIGGERS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n <div layout="row" layout-align="start center">\n <div class="trigger-image" hide-xs>\n <img ng-src="assets/images/business/triggers.jpg">\n </div>\n <div layout="column" layout-align="start start">\n <div class="h2">#{{ vm.trigger.id }}\n <span ng-if="vm.trigger.name">{{ vm.trigger.name }}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="TOOLS.CREATED_AT"></span> <span>{{ vm.trigger.createdAt | date:\'medium\' }}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveTrigger()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (allconditionsForm.$invalid) || (anyconditionsForm.$invalid) || (actionsForm.$invalid)" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="TOOLS.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="trigger-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="TOOLS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.trigger.name" required autofocus ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.CHANNEL">Channel</label>\n <md-select name="channel" ng-model="vm.trigger.channel" required disabled>\n <md-option ng-value="\'voice\'"> {{ \'TOOLS.VOICE\' | translate }} </md-option>\n <md-option ng-value="\'openchannel\'" ng-if="vm.license.openchannel">\n {{ \'TOOLS.OPENCHANNEL\' | translate }} </md-option>\n <md-option ng-value="\'chat\'" ng-if="vm.license.chat"> {{ \'TOOLS.CHAT\' | translate }} </md-option>\n <md-option ng-value="\'mail\'" ng-if="vm.license.mail"> {{ \'TOOLS.MAIL\' | translate }} </md-option>\n <md-option ng-value="\'sms\'" ng-if="vm.license.messaging"> {{ \'TOOLS.SMS\' | translate }} </md-option>\n <md-option ng-value="\'fax\'" ng-if="vm.license.fax"> {{ \'TOOLS.FAX\' | translate }} </md-option>\n <md-option ng-value="\'whatsapp\'" ng-if="vm.license.whatsapp"> {{ \'TOOLS.WHATSAPP\' | translate }}\n </md-option>\n </md-select>\n <div ng-messages="generalForm[\'channel\'].$error" ng-show="generalForm[\'channel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.CHANNEL_REQUIRED">Channel field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.trigger.status" aria-label="Status" ng-disabled="!vm.crudPermissions.canEdit">\n <span translate="TOOLS.STATUS">Status</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.trigger.description" ng-disabled="!vm.crudPermissions.canEdit">\n </md-input-container>\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="TOOLS.CONDITIONS&ACTIONS">CONDITIONS&ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="trigger-detail-form-container allconditions md-background-bg md-whiteframe-1dp" ng-include="\'app/main/apps/tools/views/triggers/edit/allconditions/allconditions.html\'">\n </div>\n <div class="trigger-detail-form-container anyconditions md-background-bg md-whiteframe-1dp" ng-include="\'app/main/apps/tools/views/triggers/edit/anyconditions/anyconditions.html\'">\n </div>\n <div class="trigger-detail-form-container actions md-background-bg md-whiteframe-1dp" ng-include="\'app/main/apps/tools/views/triggers/edit/actions/actions.html\'">\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/tools/views/triggers/triggers.html",'<div id="triggers" class="page-layout simple left-sidenav inner-sidenav">\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="TOOLS.TRIGGERS">Triggers</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedTriggers.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n <div class="close-button-wrapper" ng-click="vm.selectedTriggers =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="TOOLS.BACK">Back</span>\n </md-button>\n </div>\n <div flex layout="row" layout-align="space-between center">\n <div>\n <span class="selected-triggers-count">\n <span>{{ vm.selectedTriggers.length }}</span>\n <span translate="TOOLS.SELECTED">Selected</span>\n </span>\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TOOLS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllTriggers()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectTriggers()" translate="TOOLS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedTriggers" csv-label="true" filename="triggers.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedTriggers($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n \x3c!-- TRIGGER TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedTriggers" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTriggers">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n <th md-column md-order-by="channel">{{ \'TOOLS.CHANNEL\' | translate }}</th>\n <th md-column md-order-by="status">{{ \'TOOLS.STATUS\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.triggers.rows.length">\n <td md-cell colspan="6">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="trigger" md-select-id="id" ng-repeat="trigger in vm.triggers.rows">\n <td ng-click="vm.createOrEditTrigger($event, trigger)" md-cell class="id ">{{ trigger.id }}</td>\n <td ng-click="vm.createOrEditTrigger($event, trigger)" md-cell class="name ">{{ trigger.name }}</td>\n <td ng-click="vm.createOrEditTrigger($event, trigger)" md-cell class="channel ">\n {{ \'TOOLS.\' + trigger.channel | uppercase | translate }}</td>\n <td ng-click="vm.createOrEditTrigger($event, trigger)" md-cell class="status ">\n <md-icon md-colors="{color: {{ trigger.status ? \'\\\'green\\\'\' : \'\\\'grey\\\'\' }}}" md-font-icon="{{ trigger.status ? \'icon-check\' : \'icon-close\' }}"></md-icon>\n </td>\n <td ng-click="vm.createOrEditTrigger($event, trigger)" md-cell class="description ">\n {{ trigger.description }}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.goToEditState(trigger)" translate="TOOLS.EDIT_TRIGGER">\n Edit Trigger\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteconfirm(trigger, $event)" translate="TOOLS.DELETE_TRIGGER">\n Delete Trigger\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{ \'TOOLS.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'TOOLS.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'TOOLS.OF\' | translate }}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{ vm.triggers.count }}" md-on-paginate="vm.getTriggers" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / TRIGGER TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n </div>\n \x3c!-- / CONTENT --\x3e\n \x3c!-- ADD TRIGGER BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-trigger-button" ng-click="vm.createOrEditTrigger($event)" aria-label="add trigger" translate translate-attr-aria-label="TOOLS.ADD_TRIGGER">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD TRIGGER BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/trunks/create/dialog.html",'<md-dialog class="trunk-dialog" aria-label="New Trunk">\n <form name="trunkForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.trunk.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newTrunk">\n\n <div class="hint"><span translate="TOOLS.HELP.NAME"></span></div>\n <div ng-messages="trunkForm[\'name\'].$error" ng-show="trunkForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="TOOLS.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.trunk.active" aria-label="active"><span translate="TOOLS.ACTIVE">active</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.HOST">host</label>\n <input type="text" name="host" ng-model="vm.trunk.host" ng-required="true">\n\n <div class="hint"><span translate="TOOLS.HELP.HOST"></span></div>\n <div ng-messages="trunkForm[\'host\'].$error" ng-show="trunkForm[\'host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.HOST_REQUIRED">host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.SECRET">secret</label>\n <input type="password" name="secret" ng-model="vm.trunk.secret" placeholder="Password" translate translate-attr-placeholder="TOOLS.PASSWORD">\n <div class="hint"><span translate="TOOLS.HELP.SECRET"></span></div>\n <div ng-messages="trunkForm[\'secret\'].$error" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="TOOLS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="TOOLS.DEFAULTUSER">defaultuser</label>\n <input type="text" name="defaultuser" ng-model="vm.trunk.defaultuser">\n\n <div class="hint"><span translate="TOOLS.HELP.DEFAULTUSER"></span></div>\n <div ng-messages="trunkForm[\'defaultuser\'].$error" ng-show="trunkForm[\'defaultuser\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DEFAULTUSER_REQUIRED">defaultuser field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.REGISTRY">registry</label>\n <input type="text" name="registry" ng-model="vm.trunk.registry">\n\n <div class="hint"><span translate="TOOLS.HELP.REGISTRY"></span></div>\n <div ng-messages="trunkForm[\'registry\'].$error" ng-show="trunkForm[\'registry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.REGISTRY_REQUIRED">registry field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.trunk.description">\n\n <div ng-messages="trunkForm[\'description\'].$error" ng-show="trunkForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newTrunk" ng-click="vm.saveTrunk()" class="send-button md-accent md-raised" ng-disabled="trunkForm.$invalid || trunkForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newTrunk" ng-click="vm.addNewTrunk()" class="send-button md-accent md-raised" ng-disabled="trunkForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_TRUNK" translate-attr-aria-label="TOOLS.ADD_TRUNK">\n ADD TRUNK\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newTrunk" ng-click="vm.deleteTrunk($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/trunks/edit/clone/clone.html",'<md-dialog class="trunk-dialog" aria-label="Clone Trunk">\n <form name="trunkForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.trunk.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newTrunk">\n\n <div class="hint"><span translate="TOOLS.HELP.NAME"></span></div>\n <div ng-messages="trunkForm[\'name\'].$error" ng-show="trunkForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="TOOLS.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.trunk.active" aria-label="active"><span translate="TOOLS.ACTIVE">active</span></md-switch>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <md-button type="submit" ng-click="vm.cloneTrunk()" class="send-button md-accent md-raised" ng-disabled="trunkForm.$invalid" aria-label="CLONE" translate="TOOLS.CLONE_TRUNK" translate-attr-aria-label="TOOLS.CLONE_TRUNK">\n CLONE TRUNK\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/trunks/edit/view.html",'<div id="tools-trunk" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-trunks-button md-icon-button" aria-label="Go to trunks" ng-click="vm.gotoTrunks()" translate translate-attr-aria-label="TOOLS.GO_TO_TRUNKS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="trunk-image" hide-xs>\n <img ng-src="assets/images/business/trunks.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.trunk.id}}\n <span ng-if="vm.trunk.name">{{vm.trunk.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="TOOLS.CREATED_AT"></span> <span>{{vm.trunk.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.trunk, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="TOOLS.GOTO_TRUNK"></span></md-tooltip>\n <md-icon md-font-icon="icon-cast"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.clonedialog(vm.trunk, $event)" class="md-fab md-green-500-bg md-icon-button" aria-label="clone">\n <md-tooltip><span translate="TOOLS.CLONE_TRUNK"></span></md-tooltip>\n <md-icon md-font-icon="icon-content-duplicate"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveTrunk()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (advancedForm.$invalid) || (otherFieldsForm.$invalid)" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="TOOLS.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="trunk-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="TOOLS.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.trunk.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="TOOLS.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="TOOLS.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.trunk.active" aria-label="active" ng-disabled="!vm.crudPermissions.canEdit"><span translate="TOOLS.ACTIVE">active</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.HOST">host</label>\n <input type="text" name="host" ng-model="vm.trunk.host" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.HOST"></span></div>\n <div ng-messages="generalForm[\'host\'].$error" ng-show="generalForm[\'host\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.HOST_REQUIRED">host field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.SECRET">secret</label>\n <input type="password" name="secret" ng-model="vm.trunk.secret" placeholder="Password" translate translate-attr-placeholder="TOOLS.PASSWORD">\n <div class="hint"><span translate="TOOLS.HELP.SECRET"></span></div>\n <div ng-messages="generalForm[\'secret\'].$error" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="TOOLS.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="TOOLS.DEFAULTUSER">defaultuser</label>\n <input type="text" name="defaultuser" ng-model="vm.trunk.defaultuser" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.DEFAULTUSER"></span></div>\n <div ng-messages="generalForm[\'defaultuser\'].$error" ng-show="generalForm[\'defaultuser\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DEFAULTUSER_REQUIRED">defaultuser field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.CONTEXT">context</label>\n <md-select name="context" ng-model="vm.trunk.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts" ng-disabled="context.canSelect === false">{{ context.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.CONTEXT"></span></div>\n <div ng-messages="generalForm[\'context\'].$error" ng-show="generalForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.CONTEXT_REQUIRED">context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.CALLERID">callerid</label>\n <input type="text" name="callerid" ng-model="vm.trunk.callerid" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.CALLERID"></span></div>\n <div ng-messages="generalForm[\'callerid\'].$error" ng-show="generalForm[\'callerid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.CALLERID_REQUIRED">callerid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select name="type" ng-model="vm.trunk.type" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'friend\'">Friend</md-option>\n <md-option ng-value="\'user\'">User</md-option>\n <md-option ng-value="\'peer\'">Peer</md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.TYPE"></span></div>\n <div ng-messages="generalForm[\'type\'].$error" ng-show="generalForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DTMFMODE">dtmfmode</label>\n <md-select name="dtmfmode" ng-model="vm.trunk.dtmfmode" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'rfc2833\'">rfc2833</md-option>\n <md-option ng-value="\'info\'">info</md-option>\n <md-option ng-value="\'shortinfo\'">shortinfo</md-option>\n <md-option ng-value="\'inband\'">inband</md-option>\n <md-option ng-value="\'auto\'">auto</md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.DTMFMODE"></span></div>\n <div ng-messages="generalForm[\'dtmfmode\'].$error" ng-show="generalForm[\'dtmfmode\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DTMFMODE_REQUIRED">dtmfmode field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAT">nat</label>\n <md-select name="nat" ng-model="vm.trunk.nat" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'force_rport\'">force_rport</md-option>\n <md-option ng-value="\'comedia\'">comedia</md-option>\n <md-option ng-value="\'yes\'">yes</md-option>\n <md-option ng-value="\'no\'">no</md-option>\n <md-option ng-value="\'never\'">never</md-option>\n <md-option ng-value="\'route\'">route</md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.NAT"></span></div>\n <div ng-messages="generalForm[\'nat\'].$error" ng-show="generalForm[\'nat\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAT_REQUIRED">nat field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.QUALIFY">qualify</label>\n <md-select name="qualify" ng-model="vm.trunk.qualify" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'TOOLS.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'TOOLS.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.QUALIFY"></span></div>\n <div ng-messages="generalForm[\'qualify\'].$error" ng-show="generalForm[\'qualify\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.QUALIFY_REQUIRED">qualify field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.ALLOWCODECS">AllowCodecs</label>\n <md-select name="allow" ng-model="vm.trunk.allow" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'ulaw\'">ulaw</md-option>\n <md-option ng-value="\'alaw\'">alaw</md-option>\n <md-option ng-value="\'gsm\'">gsm</md-option>\n <md-option ng-value="\'g723\'">g723</md-option>\n <md-option ng-value="\'g726\'">g726</md-option>\n <md-option ng-value="\'g722\'">g722</md-option>\n <md-option ng-value="\'g729\'">g729</md-option>\n <md-option ng-value="\'ilbc\'">ilbc</md-option>\n <md-option ng-value="\'opus\'">opus</md-option>\n <md-option ng-value="\'h264\'">h264</md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.ALLOWCODECS"></span></div>\n <div ng-messages="generalForm[\'allow\'].$error" ng-show="generalForm[\'allow\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.ALLOWCODECS_REQUIRED">AllowCodecs field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.INSECURE">insecure</label>\n <md-select name="insecure" ng-model="vm.trunk.insecure" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'port\'">port</md-option>\n <md-option ng-value="\'invite\'">invite</md-option>\n <md-option ng-value="\'very\'">very</md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.INSECURE"></span></div>\n <div ng-messages="generalForm[\'insecure\'].$error" ng-show="generalForm[\'insecure\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.INSECURE_REQUIRED">insecure field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.CALL_LIMIT">call_limit</label>\n <input type="number" name="call_limit" ng-model="vm.trunk.call_limit" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.CALL_LIMIT"></span></div>\n <div ng-messages="generalForm[\'call_limit\'].$error" ng-show="generalForm[\'call_limit\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.CALL_LIMIT_REQUIRED">call_limit field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.trunk.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="TOOLS.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="trunk-detail-form-container advanced md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="TOOLS.ADVANCED">ADVANCED</div>\n </div>\n <form name="advancedForm" novalidate>\n <md-input-container class="md-block">\n <label translate="TOOLS.REGISTRY">registry</label>\n <input type="text" name="registry" ng-model="vm.trunk.registry" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.REGISTRY"></span></div>\n <div ng-messages="advancedForm[\'registry\'].$error" ng-show="advancedForm[\'registry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.REGISTRY_REQUIRED">registry field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DIRECTMEDIA">directmedia</label>\n <md-select name="directmedia" ng-model="vm.trunk.directmedia" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">yes</md-option>\n <md-option ng-value="\'no\'">no</md-option>\n <md-option ng-value="\'nonat\'">nonat</md-option>\n <md-option ng-value="\'update\'">update</md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.DIRECTMEDIA"></span></div>\n <div ng-messages="advancedForm[\'directmedia\'].$error" ng-show="advancedForm[\'directmedia\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DIRECTMEDIA_REQUIRED">directmedia field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.CALLCOUNTER">callcounter</label>\n <md-select name="callcounter" ng-model="vm.trunk.callcounter" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'TOOLS.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'TOOLS.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.CALLCOUNTER"></span></div>\n <div ng-messages="advancedForm[\'callcounter\'].$error" ng-show="advancedForm[\'callcounter\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.CALLCOUNTER_REQUIRED">callcounter field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.FROMDOMAIN">fromdomain</label>\n <input type="text" name="fromdomain" ng-model="vm.trunk.fromdomain" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.FROMDOMAIN"></span></div>\n <div ng-messages="advancedForm[\'fromdomain\'].$error" ng-show="advancedForm[\'fromdomain\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.FROMDOMAIN_REQUIRED">fromdomain field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.FROMUSER">fromuser</label>\n <input type="text" name="fromuser" ng-model="vm.trunk.fromuser" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.FROMUSER"></span></div>\n <div ng-messages="advancedForm[\'fromuser\'].$error" ng-show="advancedForm[\'fromuser\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.FROMUSER_REQUIRED">fromuser field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.OUTBOUNDPROXY">outboundproxy</label>\n <input type="text" name="outboundproxy" ng-model="vm.trunk.outboundproxy" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.OUTBOUNDPROXY"></span></div>\n <div ng-messages="advancedForm[\'outboundproxy\'].$error" ng-show="advancedForm[\'outboundproxy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.OUTBOUNDPROXY_REQUIRED">outboundproxy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.ADD_PHONE_TO_URI">Add_phone_to_URI</label>\n <md-select name="usereqphone" ng-model="vm.trunk.usereqphone" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'TOOLS.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'TOOLS.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.ADD_PHONE_TO_URI"></span></div>\n <div ng-messages="advancedForm[\'usereqphone\'].$error" ng-show="advancedForm[\'usereqphone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.ADD_PHONE_TO_URI_REQUIRED">Add_phone_to_URI field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.TRUST_REMOTE_PARTY_ID">Trust_Remote_Party_ID</label>\n <md-select name="trustrpid" ng-model="vm.trunk.trustrpid" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'TOOLS.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'TOOLS.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.TRUST_REMOTE_PARTY_ID"></span></div>\n <div ng-messages="advancedForm[\'trustrpid\'].$error" ng-show="advancedForm[\'trustrpid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TRUST_REMOTE_PARTY_ID_REQUIRED">Trust_Remote_Party_ID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.SEND_REMOTE_PARTY_ID_HEADER">Send_Remote_Party_ID_header</label>\n <md-select name="sendrpid" ng-model="vm.trunk.sendrpid" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'TOOLS.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'TOOLS.NO\' | translate }} </md-option>\n\n <md-option ng-value="\'pai\'"> {{ \'TOOLS.PAI\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.SEND_REMOTE_PARTY_ID_HEADER"></span></div>\n <div ng-messages="advancedForm[\'sendrpid\'].$error" ng-show="advancedForm[\'sendrpid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.SEND_REMOTE_PARTY_ID_HEADER_REQUIRED">Send_Remote_Party_ID_header field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.ENCRYPTION">encryption</label>\n <md-select name="encryption" ng-model="vm.trunk.encryption" required ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'TOOLS.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'TOOLS.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.ENCRYPTION"></span></div>\n <div ng-messages="advancedForm[\'encryption\'].$error" ng-show="advancedForm[\'encryption\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.ENCRYPTION_REQUIRED">encryption field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.PORT">port</label>\n <input type="number" name="port" ng-model="vm.trunk.port" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.PORT"></span></div>\n <div ng-messages="advancedForm[\'port\'].$error" ng-show="advancedForm[\'port\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.PORT_REQUIRED">port field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.TRANSPORT">Transport</label>\n <md-select name="transport" ng-model="vm.trunk.transport" multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'udp\'">udp</md-option>\n <md-option ng-value="\'tcp\'">tcp</md-option>\n <md-option ng-value="\'ws\'">ws</md-option>\n <md-option ng-value="\'wss\'">wss</md-option>\n <md-option ng-value="\'tls\'">tls</md-option>\n </md-select>\n <div class="hint"><span translate="TOOLS.HELP.TRANSPORT"></span></div>\n <div ng-messages="advancedForm[\'transport\'].$error" ng-show="advancedForm[\'transport\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TRANSPORT_REQUIRED">Transport field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.T38PT_UDPTL">t38pt_udptl</label>\n <input type="string" name="t38pt_udptl" ng-model="vm.trunk.t38pt_udptl" value="no" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="TOOLS.HELP.T38PT_UDPTL"></span></div>\n <div ng-messages="advancedForm[\'t38pt_udptl\'].$error" ng-show="advancedForm[\'t38pt_udptl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.T38PT_UDPTL_REQUIRED">t38pt_udptl field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.VIDEOSUPPORT">Videosupport</label>\n <md-select name="videosupport" ng-model="vm.trunk.videosupport" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">Yes</md-option>\n <md-option ng-value="\'no\'">No</md-option>\n <md-option ng-value="\'always\'">Always</md-option>\n </md-select>\n <div ng-messages="advancedForm[\'videosupport\'].$error" ng-show="advancedForm[\'videosupport\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.VIDEOSUPPORT_REQUIRED">Videosupport field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="TOOLS.OTHERFIELDS">OTHERFIELDS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="trunk-detail-form-container otherfields md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="TOOLS.OTHERFIELDS">OTHERFIELDS</div>\n </div>\n <form name="otherFieldsForm" novalidate>\n <md-input-container class="md-block">\n <label translate="TOOLS.OTHERFIELDS">otherFields</label>\n <textarea name="otherFields" ng-model="vm.trunk.otherFields" autofocus></textarea>\n <div class="hint"><span translate="TOOLS.HELP.OTHERFIELDS"></span></div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/tools/views/trunks/trunks.html",'<div id="trunks" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="TOOLS.TRUNKS">Trunks</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedTrunks.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedTrunks =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="TOOLS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-trunks-count">\n <span>{{vm.selectedTrunks.length}}</span>\n <span translate="TOOLS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TOOLS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllTrunks()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectTrunks()" translate="TOOLS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedTrunks" csv-label="true" filename="trunks.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedTrunks($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- TRUNK TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedTrunks" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTrunks">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n <th md-column md-order-by="active">{{ \'TOOLS.ACTIVE\' | translate }}</th>\n <th md-column md-order-by="host">{{ \'TOOLS.HOST\' | translate }}</th>\n <th md-column md-order-by="registry">{{ \'TOOLS.REGISTRY\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.trunks.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="trunk" md-select-id="id" ng-repeat="trunk in vm.trunks.rows">\n <td md-cell ng-if="trunk.userpic"><img class="avatar" alt="{{trunk.name}}" ng-src="api/users/{{trunk.id}}/avatar" /></td>\n <td md-cell ng-if="!trunk.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{trunk.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)" md-cell class="id ">{{trunk.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)" md-cell class="name ">{{trunk.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)" md-cell class="active ">\n <md-icon md-colors="{color: {{trunk.active ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{trunk.active ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)" md-cell class="host ">{{trunk.host}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)" md-cell class="registry ">{{trunk.registry}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(trunk, ev) : vm.createOrEditTrunk($event, trunk)" md-cell class="description ">{{trunk.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(trunk, $event )" translate="TOOLS.EDIT_TRUNK">\n Edit Trunk\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.clonedialog(trunk, $event )" translate="TOOLS.CLONE_TRUNK">\n clone Trunk\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(trunk, $event )" translate="TOOLS.GOTOREALTIME_TRUNK">\n goToRealtime Trunk\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(trunk, $event )" translate="TOOLS.DELETE_TRUNK">\n Delete Trunk\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.trunks.count}}" md-on-paginate="vm.getTrunks" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / TRUNK TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD TRUNK BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-trunk-button" ng-click="vm.createOrEditTrunk($event)" aria-label="add trunk" translate translate-attr-aria-label="TOOLS.ADD_TRUNK">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD TRUNK BUTTON --\x3e\n</div>'),e.put("app/main/apps/tools/views/variables/create/dialog.html",'<md-dialog class="variable-dialog" aria-label="New Variable">\n <form name="variableForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.variable.name" ng-required="true" autofocus>\n\n <div ng-messages="variableForm[\'name\'].$error" ng-show="variableForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLS.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.variable.description">\n\n <div ng-messages="variableForm[\'description\'].$error" ng-show="variableForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newVariable" ng-click="vm.saveVariable()" class="send-button md-accent md-raised" ng-disabled="variableForm.$invalid || variableForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newVariable" ng-click="vm.addNewVariable()" class="send-button md-accent md-raised" ng-disabled="variableForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_VARIABLE" translate-attr-aria-label="TOOLS.ADD_VARIABLE">\n ADD VARIABLE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newVariable" ng-click="vm.deleteVariable($event)" aria-label="DELETE" translate translate-attr-aria-label="TOOLS.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="TOOLS.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/tools/views/variables/variables.html",'<div id="variables" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-auto-fix" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="TOOLS.VARIABLES">Variables</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="TOOLS.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedVariables.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedVariables =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="TOOLS.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-variables-count">\n <span>{{vm.selectedVariables.length}}</span>\n <span translate="TOOLS.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="TOOLS.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllVariables()" translate="TOOLS.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectVariables()" translate="TOOLS.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedVariables" csv-label="true" filename="variables.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedVariables($event)" aria-label="delete selected" translate translate-attr-label="TOOLS.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- VARIABLE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedVariables" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVariables">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'TOOLS.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'TOOLS.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'TOOLS.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.variables.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="TOOLS.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="variable" md-select-id="id" ng-repeat="variable in vm.variables.rows">\n <td md-cell ng-if="variable.userpic"><img class="avatar" alt="{{variable.name}}" ng-src="api/users/{{variable.id}}/avatar" /></td>\n <td md-cell ng-if="!variable.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{variable.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditVariable($event, variable)" md-cell class="id ">{{variable.id}}</td>\n <td ng-click="vm.createOrEditVariable($event, variable)" md-cell class="name ">{{variable.name}}</td>\n <td ng-click="vm.createOrEditVariable($event, variable)" md-cell class="description ">{{variable.description}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="TOOLS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(variable, $event )" translate="TOOLS.EDIT_VARIABLE">\n Edit Variable\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(variable, $event )" translate="TOOLS.DELETE_VARIABLE">\n Delete Variable\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'TOOLS.PAGE\' | translate}}:\', rowsPerPage: \'{{\'TOOLS.ROWSPERPAGE\' | translate}}:\', of: \'{{\'TOOLS.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.variables.count}}" md-on-paginate="vm.getVariables" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / VARIABLE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD VARIABLE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-variable-button" ng-click="vm.createOrEditVariable($event)" aria-label="add variable" translate translate-attr-aria-label="TOOLS.ADD_VARIABLE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD VARIABLE BUTTON --\x3e\n</div>'),e.put("app/main/apps/video/views/screenRecordings/create/dialog.html",'<md-dialog class="screenRecording-dialog" aria-label="New screenRecording">\n <form name="screenRecordingForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="VIDEO.RATING">Rating</label>\n <md-select name="rating" ng-model="vm.screenRecording.rating" autofocus ng-disabled="!vm.newscreenRecording && !vm.crudPermissions.canEdit">\n <md-option ng-value="null">{{\'VIDEO.NO_RATING\' | translate}}</md-option>\n <md-option value="1">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1]"></md-icon>\n </md-option>\n <md-option value="2">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2]"></md-icon>\n </md-option>\n <md-option value="3">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2,3]"></md-icon>\n </md-option>\n <md-option value="4">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2,3,4]"></md-icon>\n </md-option>\n <md-option value="5">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2,3,4,5]"></md-icon>\n </md-option>\n </md-select>\n <div ng-messages="screenRecordingForm[\'rating\'].$error" ng-show="screenRecordingForm[rating].$touched" role="alert">\n <div ng-message="required">\n <span translate="VIDEO.ERRORS.RATING_REQUIRED">Rating field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newscreenRecording" ng-click="vm.savescreenRecording()" class="send-button md-accent md-raised" ng-disabled="screenRecordingForm.$invalid || screenRecordingForm.$pristine" aria-label="SAVE" translate="VIDEO.SAVE" translate-attr-aria-label="VIDEO.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newscreenRecording" ng-click="vm.addNewscreenRecording()" class="send-button md-accent md-raised" ng-disabled="screenRecordingForm.$invalid" aria-label="ADD" translate="VIDEO.ADD_SCREENRECORDING" translate-attr-aria-label="VIDEO.ADD_SCREENRECORDING">\n ADD SCREENRECORDING\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newscreenRecording" ng-click="vm.deletescreenRecording($event)" aria-label="DELETE" translate translate-attr-aria-label="VIDEO.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VIDEO.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/video/views/screenRecordings/partialViews/play.html",'<md-dialog class="play-dialog" aria-label="play">\n <form name="playForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="{{ vm.app.toUpperCase() }}.{{ vm.label.toUpperCase() }}">Play Recording</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-disabled="vm.loading" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ng-hide="vm.loading">\n <div layout="row" layout-sm flex>\n \x3c!-- VIRTUAL field --\x3e\n <md-card>\n\n <md-card-title ng-if="vm.actionOptions.upperTitle">\n <md-card-title-text>\n <span class="md-headline">{{ vm.filename }}</span>\n <span class="md-subhead"><span translate="{{ vm.app.toUpperCase() }}.UPDATEDAT"></span>: {{ vm.recording.updatedAt}}</span>\n </md-card-title-text>\n </md-card-title>\n\n \x3c!-- video recording directive --\x3e\n <ms-dialog-recording ng-if="vm.format" id="vm.recording.id" title="vm.filename" element="vm.element" model="vm.route" path="vm.path" class="md-card-image"></ms-dialog-recording>\n \x3c!-- / video recording directive --\x3e\n\n <span ng-if="!vm.format">\n <em ng-if="vm.found">{{ vm.app.toUpperCase() + \'.CANT_PLAY_THIS_FILE\' | translate }}</em>\n <em ng-if="!vm.found">{{ vm.app.toUpperCase() + \'.FILE_NOT_FOUND\' | translate }}</em>\n </span>\n\n <md-card-title ng-if="vm.actionOptions.lowerTitle">\n <md-card-title-text>\n <span class="md-headline">{{ vm.filename }}</span>\n <span class="md-subhead"><span translate="{{ vm.app.toUpperCase() }}.UPDATEDAT"></span>:{{ vm.recording.updatedAt}}</span>\n <span ng-if="vm.actionOptions.properties" class="md-subhead"><span translate="{{ vm.app.toUpperCase() }}.PROPERTIES"></span>:</span>\n </md-card-title-text>\n </md-card-title>\n\n <md-card-content ng-if="vm.actionOptions.properties">\n <md-list>\n <md-list-item class="md-2-line" ng-repeat="(key,value) in vm.properties" ng-click="null" ng-if="key != \'value\' && key != \'updatedAt\' && key != \'queue\'">\n\n <md-icon ng-if="vm.icon" class="md-avatar-icon" md-font-icon="vm.actionOptions.propertiesIcon" class="s24"></md-icon>\n\n <div class="md-list-item-text" layout="column">\n <p><b><span translate="{{ vm.app.toUpperCase() }}.{{ key.toUpperCase() }}"></span></b></p>\n <p>{{ value }}\n <p>\n </div>\n </md-list-item>\n </md-list>\n </md-card-content>\n\n\n </md-card>\n </div>\n </md-dialog-content>\n <div ng-hide="!vm.loading" layout-fill style="min-height: 397px;" layout="row" layout-sm="column" layout-align="center center">\n <md-progress-circular class="md-primary md-hue-1" md-diameter="96"></md-progress-circular>\n </div>\n </form>\n</md-dialog>'),e.put("app/main/apps/video/views/screenRecordings/screenRecordings.html",'<div id="screenRecordings" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-video" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="VIDEO.SCREENRECORDINGS">ScreenRecordings</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="VIDEO.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getScreenRecordings()"></ms-quick-filter>\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedScreenRecordings.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedScreenRecordings =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="VIDEO.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-screenRecordings-count">\n <span>{{vm.selectedScreenRecordings.length}}</span>\n <span translate="VIDEO.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VIDEO.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllScreenRecordings()" translate="VIDEO.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectScreenRecordings()" translate="VIDEO.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedScreenRecordings" csv-label="true" filename="screenRecordings.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedScreenRecordings($event)" aria-label="delete selected" translate translate-attr-label="VIDEO.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- SCREENRECORDING TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedScreenRecordings" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getScreenRecordings">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'VIDEO.ID\' | translate }}</th>\n <th md-column md-order-by="rating">{{ \'VIDEO.RATING\' | translate }}</th>\n <th md-column md-order-by="UserId">{{ \'VIDEO.AGENT\' | translate }}</th>\n <th md-column md-order-by="duration">{{ \'VIDEO.DURATION\' | translate }}</th>\n <th md-column md-order-by="startedAt">{{ \'VIDEO.RECORDSTARTTIME\' | translate }}</th>\n <th md-column md-order-by="closedAt">{{ \'VIDEO.RECORDENDTIME\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.screenRecordings.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="VIDEO.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="screenRecording" md-select-id="id" ng-repeat="screenRecording in vm.screenRecordings.rows">\n <td md-cell ng-if="screenRecording.userpic"><img class="avatar" alt="{{screenRecording.name}}" ng-src="api/users/{{screenRecording.id}}/avatar" /></td>\n <td md-cell ng-if="!screenRecording.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{screenRecording.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditscreenRecording($event, screenRecording)" md-cell class="id ">{{screenRecording.id}}</td>\n <td ng-click="vm.createOrEditscreenRecording($event, screenRecording)" md-cell class="rating ">\n <md-icon md-font-icon="icon-star" style="color:red" ng-show="screenRecording.rating" ng-repeat="rating in [1,2,3,4,5] | limitTo:screenRecording.rating"></md-icon><span ng-hide="screenRecording.rating" translate="VIDEO.NO_RATING">No rating</span>\n </td>\n <td ng-click="vm.createOrEditscreenRecording($event, screenRecording)" md-cell class="UserId ">{{ (vm.users | filter : {\'id\':screenRecording.UserId} : true)[0].fullname }}</td>\n <td md-cell><span ng-bind="vm.convertDuration(screenRecording.duration)"></span></td>\n <td ng-click="vm.createOrEditscreenRecording($event, screenRecording)" md-cell class="startedAt ">{{screenRecording.startedAt | date:\'medium\' }}</td>\n <td ng-click="vm.createOrEditscreenRecording($event, screenRecording)" md-cell class="closedAt ">{{screenRecording.closedAt | date:\'medium\' }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VIDEO.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.playrecording(screenRecording, $event , \'value\' , \'play_screenrecording\' , \'video\' )" translate="VIDEO.PLAY_SCREENRECORDING">\n play screenRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.role === \'admin\' || vm.userProfile.downloadScreenRecordings">\n\n <md-button ng-click="vm.downloadfile2(screenRecording, $event , \'screen/recordings\' )" translate="VIDEO.DOWNLOAD_SCREENRECORDING">\n Download screenRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(screenRecording, $event )" translate="VIDEO.DELETE_SCREENRECORDING">\n Delete screenRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'VIDEO.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VIDEO.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VIDEO.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.screenRecordings.count}}" md-on-paginate="vm.getScreenRecordings" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / SCREENRECORDING TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- NO ADD BUTTON BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/routing/dialog.html",'<md-dialog ng-init="vm.init()" class="voice-routing-dialog" aria-label="New routing application">\n <form name="routingAppForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ \'VOICE.EDIT_\' + vm.application.appType | uppercase | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ng-switch="vm.application.appType" ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span>({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <div ng-switch-when="agi">\n <div ng-include="\'app/main/apps/voice/routing/views/agi.html\'"></div>\n </div>\n <div ng-switch-when="custom">\n <div ng-include="\'app/main/apps/voice/routing/views/custom.html\'"></div>\n </div>\n <div ng-switch-when="dial">\n <div ng-include="\'app/main/apps/voice/routing/views/dial.html\'"></div>\n </div>\n <div ng-switch-when="externalDial">\n <div ng-include="\'app/main/apps/voice/routing/views/externalDial.html\'"></div>\n </div>\n <div ng-switch-when="goTo">\n <div ng-include="\'app/main/apps/voice/routing/views/goTo.html\'"></div>\n </div>\n <div ng-switch-when="hangup">\n <div ng-include="\'app/main/apps/voice/routing/views/hangup.html\'"></div>\n </div>\n <div ng-switch-when="internalDial">\n <div ng-include="\'app/main/apps/voice/routing/views/internalDial.html\'"></div>\n </div>\n <div ng-switch-when="outboundDial">\n <div ng-include="\'app/main/apps/voice/routing/views/outboundDial.html\'"></div>\n </div>\n <div ng-switch-when="playback">\n <div ng-include="\'app/main/apps/voice/routing/views/playback.html\'"></div>\n </div>\n <div ng-switch-when="queue">\n <div ng-include="\'app/main/apps/voice/routing/views/queue.html\'"></div>\n </div>\n <div ng-switch-when="ringGroup">\n <div ng-include="\'app/main/apps/voice/routing/views/ringGroup.html\'"></div>\n </div>\n <div ng-switch-when="set">\n <div ng-include="\'app/main/apps/voice/routing/views/set.html\'"></div>\n </div>\n <div ng-switch-when="voicemail">\n <div ng-include="\'app/main/apps/voice/routing/views/voicemail.html\'"></div>\n </div>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveRoutingApp()" class="send-button md-accent md-raised" ng-disabled="routingAppForm.$invalid || routingAppForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/routing/interval/dialog.html",'<md-dialog ng-init="vm.initialize()" class="interval-dialog" aria-label="Edit Interval">\n <form name="intervalForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ \'TOOLS.EDIT_INTERVAL\' | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span>({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.crudPermissions.canEdit" ng-change="vm.onTypeChange()">\n <md-option ng-value="type" ng-repeat=\'type in vm.types\'>{{ type | startcase }}</md-option>\n </md-select>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.type === \'list\'">\n <label translate="TOOLS.INTERVALS">Intervals</label>\n <md-select ng-model="vm.interval.IntervalId" ng-disabled="!vm.crudPermissions.canEdit" required>\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals.rows" ng-disabled="interval.canSelect === false">{{ interval.name }}</md-option>\n </md-select>\n </md-input-container>\n \x3c!-- TIMERANGE START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.TIME_RANGE">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <div class="md-block" flex>\n <mdp-time-picker name="timeRangeFrom" mdp-placeholder="FROM" ng-model="vm.timeRangeFrom" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="intervalForm.timeRangeFrom.$error" ng-show="intervalForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_FROM_INVALID">Time Range From field is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n <div class="md-block" flex ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.crudPermissions.canEdit" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_INVALID">Time Range To field is invalid</span>\n </div>\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </div>\n \x3c!-- TIMERANGE END --\x3e\n \x3c!-- DAYSOFWEEK START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.WEEK_DAYS">Week Days</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.dayOfWeekFrom" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | startcase }}</span></md-option>\n </md-select>\n </md-input-container>\n <md-input-container flex class="md-block" ng-if="vm.dayOfWeekFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="dayOfWeekTo" ng-model="vm.dayOfWeekTo" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | startcase }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- DAYSOFWEEK END --\x3e\n \x3c!-- MONTHDAY START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTH_DAYS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthDayFrom" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n </md-input-container>\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthDayFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthDayTo" ng-model="vm.monthDayTo" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTHDAY END --\x3e\n \x3c!-- MONTH START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTHS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthFrom" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | startcase }}</span></md-option>\n </md-select>\n </md-input-container>\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthTo" ng-model="vm.monthTo" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | startcase }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTH END --\x3e\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/routing/views/agi.html",'<md-input-container class="md-block">\n <label translate="VOICE.PROJECT">Project</label>\n <md-select name="project" ng-model="vm.application.project" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'agi://127.0.0.1/square,{{project.name}}\'" ng-repeat="project in vm.projects.rows" ng-disabled="project.canSelect === false">{{ project.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'project\'].$error" ng-show="routingAppForm[\'project\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PROJECT_REQUIRED">Project field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/custom.html",'<md-input-container class="md-block">\n <label translate="VOICE.APPLICATION_NAME">Application_Name</label>\n <input type="text" name="app" ng-model="vm.application.app" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'app\'].$error" ng-show="routingAppForm[\'app\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.APPLICATION_NAME_REQUIRED">Application_Name field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.ARGUMENTS">Arguments</label>\n <input type="text" name="appdata" ng-model="vm.application.appdata" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'appdata\'].$error" ng-show="routingAppForm[\'appdata\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ARGUMENTS_REQUIRED">Arguments field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/dial.html",'<md-input-container class="md-block">\n <label translate="VOICE.TECHNOLOGY/RESOURCE">Technology/Resource</label>\n <input type="text" name="tech" ng-model="vm.application.tech" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'tech\'].$error" ng-show="routingAppForm[\'tech\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TECHNOLOGY/RESOURCE_REQUIRED">Technology/Resource field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.application.timeout" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'timeout\'].$error" ng-show="routingAppForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>0</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.OPTIONS">Options</label>\n <input type="text" name="options" ng-model="vm.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'options\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.URL">Url</label>\n <input type="text" name="url" ng-model="vm.application.url" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'url\'].$error" ng-show="routingAppForm[\'url\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/externalDial.html",'<md-input-container class="md-block">\n <label translate="VOICE.TRUNK">Trunk</label>\n <md-select name="trunk" ng-model="vm.application.trunk" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="trunk.name" ng-repeat="trunk in vm.trunks.rows" ng-disabled="trunk.canSelect === false">{{\n trunk.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'trunk\'].$error" ng-show="routingAppForm[\'trunk\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TRUNK_REQUIRED">Trunk field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.PHONE">Phone</label>\n <input type="text" name="phone" ng-model="vm.application.phone" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'phone\'].$error" ng-show="routingAppForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PHONE_REQUIRED">Phone field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.application.timeout" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'timeout\'].$error" ng-show="routingAppForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>0</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.OPTIONS">Options</label>\n <input type="text" name="options" ng-model="vm.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'options\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.URL">Url</label>\n <input type="text" name="url" ng-model="vm.application.url" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'url\'].$error" ng-show="routingAppForm[\'url\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/goTo.html",'<md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.application.context" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{\n context.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'context\'].$error" ng-show="routingAppForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.EXTENSION">Extension</label>\n <input type="text" name="extension" ng-model="vm.application.extension" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'extension\'].$error" ng-show="routingAppForm[\'extension\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.EXTENSION_REQUIRED">Extension field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.PRIORITY">Priority</label>\n <input type="text" name="priority" ng-model="vm.application.priority" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'priority\'].$error" ng-show="routingAppForm[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/hangup.html","<md-input-container class=\"md-block\">\n <label translate=\"VOICE.HANGUP_CAUSE\">Hangup_Cause</label>\n <md-select name=\"appdata\" ng-model=\"vm.application.appdata\" autofocus required ng-disabled=\"!vm.crudPermissions.canEdit\">\n <md-option ng-value=\"'1'\"> {{ 'VOICE.HANGUPCAUSE_1' | translate }} </md-option>\n <md-option ng-value=\"'16'\"> {{ 'VOICE.HANGUPCAUSE_16' | translate }} </md-option>\n <md-option ng-value=\"'17'\"> {{ 'VOICE.HANGUPCAUSE_17' | translate }} </md-option>\n <md-option ng-value=\"'18'\"> {{ 'VOICE.HANGUPCAUSE_18' | translate }} </md-option>\n <md-option ng-value=\"'21'\"> {{ 'VOICE.HANGUPCAUSE_21' | translate }} </md-option>\n <md-option ng-value=\"'22'\"> {{ 'VOICE.HANGUPCAUSE_22' | translate }} </md-option>\n <md-option ng-value=\"'27'\"> {{ 'VOICE.HANGUPCAUSE_27' | translate }} </md-option>\n <md-option ng-value=\"'38'\"> {{ 'VOICE.HANGUPCAUSE_38' | translate }} </md-option>\n <md-option ng-value=\"'41'\"> {{ 'VOICE.HANGUPCAUSE_41' | translate }} </md-option>\n </md-select>\n <div ng-messages=\"routingAppForm['appdata'].$error\" ng-show=\"routingAppForm['appdata'].$touched\" role=\"alert\">\n <div ng-message=\"required\">\n <span translate=\"VOICE.ERRORS.HANGUP_CAUSE_REQUIRED\">Hangup_Cause field is required</span>\n </div>\n </div>\n</md-input-container>"),e.put("app/main/apps/voice/routing/views/internalDial.html",'<md-input-container class="md-block">\n <label translate="VOICE.USER">User</label>\n <md-select name="user" ng-model="vm.application.user" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'SIP/{{user.name}}\'" ng-repeat="user in vm.users.rows" ng-disabled="user.canSelect === false">\n {{ user.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'user\'].$error" ng-show="routingAppForm[\'user\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.USER_REQUIRED">User field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.application.timeout" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'timeout\'].$error" ng-show="routingAppForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>0</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.OPTIONS">Options</label>\n <input type="text" name="options" ng-model="vm.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'options\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.URL">Url</label>\n <input type="text" name="url" ng-model="vm.application.url" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'url\'].$error" ng-show="routingAppForm[\'url\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/outboundDial.html",'<md-input-container class="md-block">\n <label translate="VOICE.TRUNK">Trunk</label>\n <md-select name="trunk" ng-model="vm.application.trunk" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="trunk.name" ng-repeat="trunk in vm.trunks.rows" ng-disabled="trunk.canSelect === false">{{\n trunk.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'trunk\'].$error" ng-show="routingAppForm[\'trunk\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TRUNK_REQUIRED">Trunk field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.CALLER_ID">Caller_ID</label>\n <input type="text" name="callerID" ng-model="vm.application.callerID" ng-disabled="!vm.crudPermissions.canEdit">\n <div class="hint"><span translate="VOICE.HELP.CALLER_ID"></span></div>\n <div ng-messages="routingAppForm[\'callerID\'].$error" ng-show="routingAppForm[\'callerID\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CALLER_ID_REQUIRED">Caller_ID field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.PREFIX">Prefix</label>\n <input type="text" name="prefix" ng-model="vm.application.prefix" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'prefix\'].$error" ng-show="routingAppForm[\'prefix\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PREFIX_REQUIRED">Prefix field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.TAGS">Tags</label>\n <md-select name="tag" ng-model="vm.application.tag" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'--\'">None</md-option>\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags.rows" ng-disabled="tag.canSelect === false">{{ tag.name }}\n </md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'tag\'].$error" ng-show="routingAppForm[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TAGS_REQUIRED">Tags field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.application.timeout" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'timeout\'].$error" ng-show="routingAppForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>0</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.OPTIONS">Options</label>\n <input type="text" name="options" ng-model="vm.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'options\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.URL">Url</label>\n <input type="text" name="url" ng-model="vm.application.url" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'url\'].$error" ng-show="routingAppForm[\'url\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/playback.html",'<md-input-container class="md-block">\n <label translate="VOICE.AUDIO_FILES">Audio_Files</label>\n <md-select name="sound" ng-model="vm.application.appdata" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/{{sound.save_name}}\'" ng-repeat="sound in vm.sounds.rows" ng-disabled="sound.canSelect === false">{{ sound.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'sound\'].$error" ng-show="routingAppForm[\'sound\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.AUDIO_FILES_REQUIRED">Audio_Files field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.OPTIONS">Options</label>\n <input type="text" name="options" ng-model="vm.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'options\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <md-switch ng-model="vm.application.answer" aria-label="Answer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="VOICE.ANSWER">Answer</span></md-switch>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/queue.html",'<md-input-container class="md-block">\n <label translate="VOICE.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.application.queue" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues.rows" ng-disabled="queue.canSelect === false">{{\n queue.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'queue\'].$error" ng-show="routingAppForm[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.OPTIONS">Options</label>\n <input type="text" name="options" ng-model="vm.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'options\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.URL">Url</label>\n <input type="text" name="URL" ng-model="vm.application.URL" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'URL\'].$error" ng-show="routingAppForm[\'URL\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.ANNOUNCE_OVERRIDES">Announce_Overrides</label>\n <md-select name="sound" ng-model="vm.application.sound" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/{{sound.save_name}}\'" ng-repeat="sound in vm.sounds.rows" ng-disabled="sound.canSelect === false">{{ sound.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'sound\'].$error" ng-show="routingAppForm[\'sound\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ANNOUNCE_OVERRIDES_REQUIRED">Announce_Overrides field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.application.timeout" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'timeout\'].$error" ng-show="routingAppForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>0</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.AGI">Agi</label>\n <input type="text" name="agi" ng-model="vm.application.agi" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'agi\'].$error" ng-show="routingAppForm[\'agi\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.AGI_REQUIRED">Agi field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.MACRO">Macro</label>\n <input type="text" name="macro" ng-model="vm.application.macro" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'macro\'].$error" ng-show="routingAppForm[\'macro\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MACRO_REQUIRED">Macro field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.GOSUB">GoSub</label>\n <input type="text" name="gosub" ng-model="vm.application.gosub" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'gosub\'].$error" ng-show="routingAppForm[\'gosub\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.GOSUB_REQUIRED">GoSub field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.RULE">Rule</label>\n <input type="text" name="rule" ng-model="vm.application.rule" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'rule\'].$error" ng-show="routingAppForm[\'rule\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.RULE_REQUIRED">Rule field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.POSITION">Position</label>\n <input type="number" name="position" ng-model="vm.application.position" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'position\'].$error" ng-show="routingAppForm[\'position\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.POSITION_REQUIRED">Position field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.POSITION_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Position must be a valid greater or\n equal than</span> <span>0</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <md-switch ng-model="vm.application.answer" aria-label="Answer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="VOICE.ANSWER">Answer</span></md-switch>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/ringGroup.html",'<md-input-container class="md-block">\n <label translate="VOICE.USER">User</label>\n <md-select name="user" ng-model="vm.application.users" autofocus multiple required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'SIP/{{user.name}}\'" ng-repeat="user in vm.users.rows" ng-disabled="user.canSelect === false">\n {{ user.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'user\'].$error" ng-show="routingAppForm[\'user\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.USER_REQUIRED">User field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.application.timeout" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'timeout\'].$error" ng-show="routingAppForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or\n equal than</span> <span>0</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.OPTIONS">Options</label>\n <input type="text" name="options" ng-model="vm.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'options\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.URL">Url</label>\n <input type="text" name="url" ng-model="vm.application.url" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'url\'].$error" ng-show="routingAppForm[\'url\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.URL_REQUIRED">Url field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/set.html",'<md-input-container class="md-block">\n <label translate="VOICE.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.application.name" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables.rows" ng-disabled="variable.canSelect === false">{{\n variable.name }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'variable\'].$error" ng-show="routingAppForm[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.VARIABLE_REQUIRED">Variable field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.application.value" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'value\'].$error" ng-show="routingAppForm[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/routing/views/voicemail.html",'<md-input-container class="md-block">\n <label translate="VOICE.MAILBOX@CONTEXT">Mailbox@Context</label>\n <md-select name="voiceMail" ng-model="vm.application.voiceMail" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'{{voiceMail.mailbox}}@from-voicemail\'" ng-repeat="voiceMail in vm.voiceMails.rows" ng-disabled="voiceMail.canSelect === false">{{ voiceMail.mailbox }}</md-option>\n </md-select>\n <div ng-messages="routingAppForm[\'voiceMail\'].$error" ng-show="routingAppForm[\'voiceMail\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MAILBOX@CONTEXT_REQUIRED">Mailbox@Context field is required</span>\n </div>\n </div>\n</md-input-container>\n<md-input-container class="md-block">\n <label translate="VOICE.OPTIONS">Options</label>\n <input type="text" name="options" ng-model="vm.application.options" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="routingAppForm[\'options\'].$error" ng-show="routingAppForm[\'options\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n </div>\n </div>\n</md-input-container>'),e.put("app/main/apps/voice/views/chanSpies/chanSpies.html",'<div id="chanSpies" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="VOICE.CHANSPIES">ChanSpies</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedChanSpies.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedChanSpies =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="VOICE.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-chanSpies-count">\n <span>{{vm.selectedChanSpies.length}}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VOICE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllChanSpies()" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectChanSpies()" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedChanSpies" csv-label="true" filename="chanSpies.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedChanSpies($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- CHANSPY TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedChanSpies" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getChanSpies">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'VOICE.NAME\' | translate }}</th>\n <th md-column md-order-by="prefix">{{ \'VOICE.PREFIX\' | translate }}</th>\n <th md-column md-order-by="auth">{{ \'VOICE.AUTH\' | translate }}</th>\n <th md-column md-order-by="record">{{ \'VOICE.RECORD\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'VOICE.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.chanSpies.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="chanSpy" md-select-id="id" ng-repeat="chanSpy in vm.chanSpies.rows">\n <td md-cell ng-if="chanSpy.userpic"><img class="avatar" alt="{{chanSpy.name}}" ng-src="api/users/{{chanSpy.id}}/avatar" /></td>\n <td md-cell ng-if="!chanSpy.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{chanSpy.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditchanSpy($event, chanSpy)" md-cell class="id ">{{chanSpy.id}}</td>\n <td ng-click="vm.createOrEditchanSpy($event, chanSpy)" md-cell class="name ">{{chanSpy.name}}</td>\n <td ng-click="vm.createOrEditchanSpy($event, chanSpy)" md-cell class="prefix ">{{chanSpy.prefix}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chanSpy, ev) : vm.createOrEditchanSpy($event, chanSpy)" md-cell class="auth ">\n <md-icon md-colors="{color: {{chanSpy.auth ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{chanSpy.auth ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(chanSpy, ev) : vm.createOrEditchanSpy($event, chanSpy)" md-cell class="record ">\n <md-icon md-colors="{color: {{chanSpy.record ? \'\\\'green\\\'\' : \'\\\'grey\\\'\'}}}" md-font-icon="{{chanSpy.record ? \'icon-check\' : \'icon-close\'}}"></md-icon>\n </td>\n <td ng-click="vm.createOrEditchanSpy($event, chanSpy)" md-cell class="description ">{{chanSpy.description}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(chanSpy, $event )" translate="VOICE.EDIT_CHANSPY">\n Edit chanSpy\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(chanSpy, $event )" translate="VOICE.DELETE_CHANSPY">\n Delete chanSpy\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.chanSpies.count}}" md-on-paginate="vm.getChanSpies" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / CHANSPY TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD CHANSPY BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-chanSpy-button" ng-click="vm.createOrEditchanSpy($event)" aria-label="add chanSpy" translate translate-attr-aria-label="VOICE.ADD_CHANSPY">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD CHANSPY BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/views/chanSpies/create/dialog.html",'<md-dialog class="chanSpy-dialog" aria-label="New chanSpy">\n <form name="chanSpyForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="VOICE.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.chanSpy.name" ng-required="true" autofocus>\n\n <div ng-messages="chanSpyForm[\'name\'].$error" ng-show="chanSpyForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.PREFIX">Prefix</label>\n <input type="text" name="prefix" ng-model="vm.chanSpy.prefix" ng-required="true">\n\n <div ng-messages="chanSpyForm[\'prefix\'].$error" ng-show="chanSpyForm[\'prefix\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PREFIX_REQUIRED">Prefix field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.OPTIONS">Options</label>\n <md-select name="options" ng-model="vm.chanSpy.options" multiple required>\n <md-option ng-value="\'b\'">b: Only spy on channels involved in a bridged call.</md-option>\n <md-option ng-value="\'B\'">B: Instead of whispering on a single channel barge in on both channels involved in the call.</md-option>\n <md-option ng-value="\'E\'">E: Exit when the spied-on channel hangs up.</md-option>\n <md-option ng-value="\'o\'">o: Only listen to audio coming from this channel.</md-option>\n <md-option ng-value="\'q\'">q: Don\'t play a beep when beginning to spy on a channel, or speak the selected channel name.</md-option>\n <md-option ng-value="\'s\'">s: Skip the playback of the channel type (i.e. SIP, IAX, etc) when speaking the selected channel name.</md-option>\n <md-option ng-value="\'S\'">S: Stop when no more channels are left to spy on.</md-option>\n <md-option ng-value="\'w\'">w: Enable whisper mode, so the spying channel can talk to the spied-on channel.</md-option>\n <md-option ng-value="\'W\'">W: Enable private whisper mode, so the spying channel can talk to the spied-on channel but cannot listen to that channel.</md-option>\n </md-select>\n <div ng-messages="chanSpyForm[\'options\'].$error" ng-show="chanSpyForm[\'options\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OPTIONS_REQUIRED">Options field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chanSpy.auth" aria-label="Auth"><span translate="VOICE.AUTH">Auth</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block" ng-if="vm.chanSpy.auth">\n <label translate="VOICE.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.chanSpy.password" placeholder="Password" translate translate-attr-placeholder="VOICE.PASSWORD" required>\n <div ng-messages="chanSpyForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="VOICE.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <md-switch ng-model="vm.chanSpy.record" aria-label="Record"><span translate="VOICE.RECORD">Record</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.chanSpy.record" class="md-block">\n <label translate="VOICE.RECORDINGFORMAT">recordingFormat</label>\n <md-select name="recordingFormat" ng-model="vm.chanSpy.recordingFormat" required>\n <md-option ng-value="\'wav\'">wav</md-option>\n <md-option ng-value="\'gsm\'">gsm</md-option>\n <md-option ng-value="\'WAV\'">wav49</md-option>\n </md-select>\n <div ng-messages="chanSpyForm[\'recordingFormat\'].$error" ng-show="chanSpyForm[\'recordingFormat\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.RECORDINGFORMAT_REQUIRED">recordingFormat field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.chanSpy.description">\n\n <div ng-messages="chanSpyForm[\'description\'].$error" ng-show="chanSpyForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newchanSpy" ng-click="vm.savechanSpy()" class="send-button md-accent md-raised" ng-disabled="chanSpyForm.$invalid || chanSpyForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newchanSpy" ng-click="vm.addNewchanSpy()" class="send-button md-accent md-raised" ng-disabled="chanSpyForm.$invalid" aria-label="ADD" translate="VOICE.ADD_CHANSPY" translate-attr-aria-label="VOICE.ADD_CHANSPY">\n ADD CHANSPY\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newchanSpy" ng-click="vm.deletechanSpy($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/contexts/contexts.html",'<div id="contexts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="VOICE.CONTEXTS">Contexts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedContexts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedContexts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="VOICE.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-contexts-count">\n <span>{{vm.selectedContexts.length}}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VOICE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllContexts()" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectContexts()" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedContexts" csv-label="true" filename="contexts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedContexts($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- CONTEXT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedContexts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getContexts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'VOICE.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'VOICE.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.contexts.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="context" md-select-id="id" ng-repeat="context in vm.contexts.rows">\n <td md-cell ng-if="context.userpic"><img class="avatar" alt="{{context.name}}" ng-src="api/users/{{context.id}}/avatar" /></td>\n <td md-cell ng-if="!context.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{context.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditContext($event, context)" md-cell class="id ">{{context.id}}</td>\n <td ng-click="vm.createOrEditContext($event, context)" md-cell class="name ">{{context.name}}</td>\n <td ng-click="vm.createOrEditContext($event, context)" md-cell class="description ">{{context.description}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(context, $event )" translate="VOICE.EDIT_CONTEXT">\n Edit Context\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(context, $event )" translate="VOICE.DELETE_CONTEXT">\n Delete Context\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.contexts.count}}" md-on-paginate="vm.getContexts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / CONTEXT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD CONTEXT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-context-button" ng-click="vm.createOrEditContext($event)" aria-label="add context" translate translate-attr-aria-label="VOICE.ADD_CONTEXT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD CONTEXT BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/views/contexts/create/dialog.html",'<md-dialog class="context-dialog" aria-label="New Context">\n <form name="contextForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="VOICE.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.context.name" ng-required="true" autofocus>\n\n <div ng-messages="contextForm[\'name\'].$error" ng-show="contextForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.context.description">\n\n <div ng-messages="contextForm[\'description\'].$error" ng-show="contextForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newContext" ng-click="vm.saveContext()" class="send-button md-accent md-raised" ng-disabled="contextForm.$invalid || contextForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newContext" ng-click="vm.addNewContext()" class="send-button md-accent md-raised" ng-disabled="contextForm.$invalid" aria-label="ADD" translate="VOICE.ADD_CONTEXT" translate-attr-aria-label="VOICE.ADD_CONTEXT">\n ADD CONTEXT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newContext" ng-click="vm.deleteContext($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundRoutes/create/dialog.html",'<md-dialog ng-init="vm.initialize()" class="inbound-route-dialog" aria-label="New InboundRoute">\n <form name="inboundrouteForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.newInboundRoute ? \'VOICE.NEW_INBOUNDROUTE\' : \'VOICE.EDIT_INBOUNDROUTE\' | translate\n }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span>({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="VOICE.PHONENUMBER">PhoneNumber</label>\n <input type="text" name="exten" ng-model="vm.inboundRoute.exten" ng-required="true" autofocus>\n <div ng-messages="inboundrouteForm[\'exten\'].$error" ng-show="inboundrouteForm[\'exten\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PHONENUMBER_REQUIRED">PhoneNumber field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.inboundRoute.context" required>\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{ context.name }}</md-option>\n </md-select>\n <div ng-messages="inboundrouteForm[\'context\'].$error" ng-show="inboundrouteForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.inboundRoute.alias" ng-change="vm.getRouting()">\n <div ng-messages="inboundrouteForm[\'alias\'].$error" ng-show="inboundrouteForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.inboundRoute.description">\n <div ng-messages="inboundrouteForm[\'description\'].$error" ng-show="inboundrouteForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newInboundRoute" ng-click="vm.saveInboundRoute()" class="send-button md-accent md-raised" ng-disabled="inboundrouteForm.$invalid || inboundrouteForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newInboundRoute" ng-click="vm.addNewInboundRoute()" class="send-button md-accent md-raised" ng-disabled="inboundrouteForm.$invalid" aria-label="ADD" translate="VOICE.ADD_INBOUNDROUTE" translate-attr-aria-label="VOICE.ADD_INBOUNDROUTE">\n ADD INBOUNDROUTE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newInboundRoute" ng-click="vm.deleteInboundRoute($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/inboundRoutes/edit/view.html",'<div ng-init="vm.onInit()" id="voice-inbound-route" class="page-layout simple tabbed" layout="column">\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-inbound-routes-button md-icon-button" aria-label="Go to inbound routes" ng-click="vm.gotoInboundRoutes()" translate translate-attr-aria-label="VOICE.GO_TO_INBOUNDROUTES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n <div layout="row" layout-align="start center">\n <div class="inbound-route-image" hide-xs>\n <img ng-src="assets/images/business/inboundroutes.jpg">\n </div>\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.inboundRoute.id}}\n <span ng-if="vm.inboundRoute.exten">{{vm.inboundRoute.exten}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="VOICE.CREATED_AT"></span> <span>{{vm.inboundRoute.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveInboundRoute()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (actionsForm.$invalid)" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n </div>\n </div>\n \x3c!-- /HEADER --\x3e\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n \x3c!-- SETTINGS TAB --\x3e\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="inbound-route-detail-form-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="VOICE.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="VOICE.PHONENUMBER">PhoneNumber</label>\n <input type="text" name="exten" ng-model="vm.inboundRoute.exten" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'exten\'].$error" ng-show="generalForm[\'exten\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PHONENUMBER_REQUIRED">PhoneNumber field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.inboundRoute.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{ context.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'context\'].$error" ng-show="generalForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.inboundRoute.alias" ng-change="vm.onActionsTabSelection()" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'alias\'].$error" ng-show="generalForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.inboundRoute.description" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n \x3c!-- /SETTINGS TAB --\x3e\n \x3c!-- ACTIONS TAB --\x3e\n <md-tab md-on-select="vm.onActionsTabSelection()">\n <md-tab-label>\n <span translate="VOICE.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="inbound-route-detail-form-container no-padding no-margin">\n <div class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- APPLICATIONS LIST --\x3e\n <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20" ng-if="vm.crudPermissions.canEdit">\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\n Applications List\n </span>\n </md-subheader>\n </md-list>\n <md-divider class="no-margin"></md-divider>\n <md-list ng-sortable="vm.sortableAppsOptions">\n <md-list-item class="handle" ng-repeat="a in vm.apps">\n <div layout="row">\n <md-icon md-font-icon="icon-apps" class="s16 mr-15"></md-icon>\n <p class="text-truncate" translate="VOICE.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias ||\n a.appType}}</p>\n </div>\n </md-list-item>\n </md-list>\n </div>\n \x3c!-- /APPLICATIONS LIST --\x3e\n <div flex></div>\n \x3c!-- ROUTING --\x3e\n <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="{{vm.crudPermissions.canEdit ? 75 : 100}}">\n <div ng-if="vm.pendingChanges" class="p-10 md-amber-300-bg">\n <md-icon md-font-icon="icon-information-outline" aria-label="Save reminder"></md-icon>\n <span class="no-margin font-size-12 line-height-30" translate="VOICE.HELP.SAVE_ROUTES"></span>\n </div>\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm.selectedApplications.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Drag & Drop Routing</span>\n <div flex></div>\n <ms-search-bar query="vm.query" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm.selectedApplications.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm.selectedApplications.length}}\n {{vm.selectedApplications.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm.crudPermissions.canDelete" class="md-icon-button" ng-click="vm.deleteSelectedApplications($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedApplications">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </th>\n <th md-column width="10px"></th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body ng-sortable="vm.sortableRoutingOptions">\n <tr md-row md-select="a" md-select-id="id" ng-repeat="a in vm.applications.rows | filter:vm.query.filter as results">\n <td md-cell>\n <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n </td>\n <td md-cell ng-click="vm.editApplication($event, $index)">{{a.app.toLowerCase() ===\n \'agi\' ? \'Cally-Square\' : a.app | ucfirst}}<span ng-if="a.appType.toLowerCase() === \'custom\'">*</span></td>\n <td md-cell ng-click="vm.editApplication($event, $index)"><span class="text-truncate actionAppData">{{a.appdata}}</span></td>\n <td md-cell ng-click="vm.editInterval($event, $index)">{{a.IntervalId ? \'From List\' :\n a.interval}}</td>\n <td md-cell>\n <md-button ng-click="vm.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n <md-icon md-font-icon="icon-timer"></md-icon>\n <md-tooltip>\n {{a.IntervalId ? \'From List\' : (a.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n </md-tooltip>\n </md-button>\n </td>\n <td md-cell ng-if="!vm.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editApplication($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteApplication(a, $index, $event)" translate="VOICE.DELETE_APP">\n Delete App\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-class="{ \'ng-cloak\': results.length > 0 }">\n <td md-cell colspan="6">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No applications\n available</span>\n </td>\n </tr>\n </tbody>\n <tfoot md-foot>\n <tr md-row>\n <td md-cell colspan="7">\n <span><em translate="VOICE.LEGEND.CUSTOM_APPLICATION">(*) - Custom application.</em></span>\n </td>\n </tr>\n </tfoot>\n </table>\n </md-table-container>\n </div>\n \x3c!-- /ROUTING --\x3e\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n \x3c!-- /ACTIONS TAB --\x3e\n </md-tabs>\n </div>\n \x3c!-- /CONTENT --\x3e\n</div>'),e.put("app/main/apps/voice/views/inboundRoutes/inboundRoutes.html",'<div id="inbound-routes" class="page-layout simple left-sidenav inner-sidenav">\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="VOICE.INBOUNDROUTES">InboundRoutes</span>\n </div>\n </div>\n <div layout="row">\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n </div>\n </div>\n <div ng-show="vm.selectedInboundRoutes.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n <div class="close-button-wrapper" ng-click="vm.selectedInboundRoutes = []">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="VOICE.BACK">Back</span>\n </md-button>\n </div>\n <div flex layout="row" layout-align="space-between center">\n <div>\n <span class="selected-inbound-routes-count">\n <span>{{ vm.selectedInboundRoutes.length }}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VOICE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectedInboundRoutes = vm.inboundRoutes.rows" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.selectedInboundRoutes = []" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedInboundRoutes" csv-label="true" filename="inbound_routes.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedInboundRoutes($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n <div class="content" md-background-bg layout="row" layout-align="start start">\n <div class="main scrollable" ms-scroll>\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedInboundRoutes" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getInboundRoutes">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n <th md-column md-order-by="exten">{{ \'VOICE.PHONENUMBER\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'VOICE.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.inboundRoutes.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="route" md-select-id="id" ng-repeat="route in vm.inboundRoutes.rows">\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditInboundRoute($event, route)" md-cell class="id ">{{ route.id }}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditInboundRoute($event, route)" md-cell class="exten ">{{ route.exten }}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditInboundRoute($event, route)" md-cell class="description ">{{ route.description }}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editRoute(route)" translate="VOICE.EDIT_INBOUNDROUTE">\n Edit InboundRoute\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteConfirm(route, $event)" translate="VOICE.DELETE_INBOUNDROUTE">\n Delete InboundRoute\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{ \'VOICE.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'VOICE.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'VOICE.OF\' | translate }}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{ vm.inboundRoutes.count }}" md-on-paginate="vm.getInboundRoutes" md-page-select>\n </md-table-pagination>\n </md-card>\n </div>\n </div>\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-inbound-route-button" ng-click="vm.createOrEditInboundRoute($event)" aria-label="add inbound route" translate translate-attr-aria-label="VOICE.ADD_INBOUNDROUTE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n</div>'),e.put("app/main/apps/voice/views/internalRoutes/create/dialog.html",'<md-dialog ng-init="vm.initialize()" class="internal-route-dialog" aria-label="New InternalRoute">\n <form name="internalrouteForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.newInternalRoute ? \'VOICE.NEW_INTERNALROUTE\' : \'VOICE.EDIT_INTERNALROUTE\' | translate\n }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span>({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="VOICE.PHONENUMBER">PhoneNumber</label>\n <input type="text" name="exten" ng-model="vm.internalRoute.exten" ng-required="true" autofocus>\n <div ng-messages="internalrouteForm[\'exten\'].$error" ng-show="internalrouteForm[\'exten\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PHONENUMBER_REQUIRED">PhoneNumber field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.internalRoute.context" required>\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{ context.name }}</md-option>\n </md-select>\n <div ng-messages="internalrouteForm[\'context\'].$error" ng-show="internalrouteForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.internalRoute.alias" ng-change="vm.getRouting()">\n <div ng-messages="internalrouteForm[\'alias\'].$error" ng-show="internalrouteForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.internalRoute.description">\n <div ng-messages="internalrouteForm[\'description\'].$error" ng-show="internalrouteForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newInternalRoute" ng-click="vm.saveInternalRoute()" class="send-button md-accent md-raised" ng-disabled="internalrouteForm.$invalid || internalrouteForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newInternalRoute" ng-click="vm.addNewInternalRoute()" class="send-button md-accent md-raised" ng-disabled="internalrouteForm.$invalid" aria-label="ADD" translate="VOICE.ADD_INTERNALROUTE" translate-attr-aria-label="VOICE.ADD_INTERNALROUTE">\n ADD INTERNALROUTE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newInternalRoute" ng-click="vm.deleteInternalRoute($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/internalRoutes/edit/view.html",'<div ng-init="vm.onInit()" id="voice-internal-route" class="page-layout simple tabbed" layout="column">\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-internal-routes-button md-icon-button" aria-label="Go to internal routes" ng-click="vm.gotoInternalRoutes()" translate translate-attr-aria-label="VOICE.GO_TO_INTERNALROUTES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n <div layout="row" layout-align="start center">\n <div class="internal-route-image" hide-xs>\n <img ng-src="assets/images/business/internalroutes.jpg">\n </div>\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.internalRoute.id}}\n <span ng-if="vm.internalRoute.exten">{{vm.internalRoute.exten}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="VOICE.CREATED_AT"></span> <span>{{vm.internalRoute.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveInternalRoute()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (actionsForm.$invalid)" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n </div>\n </div>\n \x3c!-- /HEADER --\x3e\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n \x3c!-- SETTINGS TAB --\x3e\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="internal-route-detail-form-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="VOICE.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="VOICE.PHONENUMBER">PhoneNumber</label>\n <input type="text" name="exten" ng-model="vm.internalRoute.exten" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'exten\'].$error" ng-show="generalForm[\'exten\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PHONENUMBER_REQUIRED">PhoneNumber field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.internalRoute.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{ context.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'context\'].$error" ng-show="generalForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.internalRoute.alias" ng-change="vm.onActionsTabSelection()" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'alias\'].$error" ng-show="generalForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.internalRoute.description" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n \x3c!-- /SETTINGS TAB --\x3e\n \x3c!-- ACTIONS TAB --\x3e\n <md-tab md-on-select="vm.onActionsTabSelection()">\n <md-tab-label>\n <span translate="VOICE.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="internal-route-detail-form-container no-padding no-margin">\n <div class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- APPLICATIONS LIST --\x3e\n <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20" ng-if="vm.crudPermissions.canEdit">\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\n Applications List\n </span>\n </md-subheader>\n </md-list>\n <md-divider class="no-margin"></md-divider>\n <md-list ng-sortable="vm.sortableAppsOptions">\n <md-list-item class="handle" ng-repeat="a in vm.apps">\n <div layout="row">\n <md-icon md-font-icon="icon-apps" class="s16 mr-15"></md-icon>\n <p class="text-truncate" translate="VOICE.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias ||\n a.appType}}</p>\n </div>\n </md-list-item>\n </md-list>\n </div>\n \x3c!-- /APPLICATIONS LIST --\x3e\n <div flex></div>\n \x3c!-- ROUTING --\x3e\n <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="{{vm.crudPermissions.canEdit ? 75 : 100}}">\n <div ng-if="vm.pendingChanges" class="p-10 md-amber-300-bg">\n <md-icon md-font-icon="icon-information-outline" aria-label="Save reminder"></md-icon>\n <span class="no-margin font-size-12 line-height-30" translate="VOICE.HELP.SAVE_ROUTES"></span>\n </div>\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm.selectedApplications.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Drag & Drop Routing</span>\n <div flex></div>\n <ms-search-bar query="vm.query" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm.selectedApplications.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm.selectedApplications.length}}\n {{vm.selectedApplications.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm.crudPermissions.canDelete" class="md-icon-button" ng-click="vm.deleteSelectedApplications($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedApplications">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </th>\n <th md-column width="10px"></th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body ng-sortable="vm.sortableRoutingOptions">\n <tr md-row md-select="a" md-select-id="id" ng-repeat="a in vm.applications.rows | filter:vm.query.filter as results">\n <td md-cell>\n <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n </td>\n <td md-cell ng-click="vm.editApplication($event, $index)">{{a.app.toLowerCase() ===\n \'agi\' ? \'Cally-Square\' : a.app | ucfirst}}<span ng-if="a.appType.toLowerCase() === \'custom\'">*</span></td>\n <td md-cell ng-click="vm.editApplication($event, $index)"><span class="text-truncate actionAppData">{{a.appdata}}</span></td>\n <td md-cell ng-click="vm.editInterval($event, $index)">{{a.IntervalId ? \'From List\' :\n a.interval}}</td>\n <td md-cell>\n <md-button ng-click="vm.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n <md-icon md-font-icon="icon-timer"></md-icon>\n <md-tooltip>\n {{a.IntervalId ? \'From List\' : (a.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n </md-tooltip>\n </md-button>\n </td>\n <td md-cell ng-if="!vm.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editApplication($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteApplication(a, $index, $event)" translate="VOICE.DELETE_APP">\n Delete App\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-class="{ \'ng-cloak\': results.length > 0 }">\n <td md-cell colspan="6">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No applications\n available</span>\n </td>\n </tr>\n </tbody>\n <tfoot md-foot>\n <tr md-row>\n <td md-cell colspan="7">\n <span><em translate="VOICE.LEGEND.CUSTOM_APPLICATION">(*) - Custom application.</em></span>\n </td>\n </tr>\n </tfoot>\n </table>\n </md-table-container>\n </div>\n \x3c!-- /ROUTING --\x3e\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n \x3c!-- /ACTIONS TAB --\x3e\n </md-tabs>\n </div>\n \x3c!-- /CONTENT --\x3e\n</div>'),e.put("app/main/apps/voice/views/internalRoutes/internalRoutes.html",'<div id="internal-routes" class="page-layout simple left-sidenav inner-sidenav">\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="VOICE.INTERNALROUTES">InternalRoutes</span>\n </div>\n </div>\n <div layout="row">\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n </div>\n </div>\n <div ng-show="vm.selectedInternalRoutes.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n <div class="close-button-wrapper" ng-click="vm.selectedInternalRoutes = []">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="VOICE.BACK">Back</span>\n </md-button>\n </div>\n <div flex layout="row" layout-align="space-between center">\n <div>\n <span class="selected-internal-routes-count">\n <span>{{ vm.selectedInternalRoutes.length }}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VOICE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectedInternalRoutes = vm.internalRoutes.rows" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.selectedInternalRoutes = []" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedInternalRoutes" csv-label="true" filename="internal_routes.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedInternalRoutes($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n <div class="content" md-background-bg layout="row" layout-align="start start">\n <div class="main scrollable" ms-scroll>\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedInternalRoutes" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getInternalRoutes">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n <th md-column md-order-by="exten">{{ \'VOICE.PHONENUMBER\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'VOICE.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.internalRoutes.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="route" md-select-id="id" ng-repeat="route in vm.internalRoutes.rows">\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditInternalRoute($event, route)" md-cell class="id ">{{ route.id }}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditInternalRoute($event, route)" md-cell class="exten ">{{ route.exten }}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditInternalRoute($event, route)" md-cell class="description ">{{ route.description }}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editRoute(route)" translate="VOICE.EDIT_INTERNALROUTE">\n Edit InternalRoute\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteConfirm(route, $event)" translate="VOICE.DELETE_INTERNALROUTE">\n Delete InternalRoute\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{ \'VOICE.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'VOICE.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'VOICE.OF\' | translate }}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{ vm.internalRoutes.count }}" md-on-paginate="vm.getInternalRoutes" md-page-select>\n </md-table-pagination>\n </md-card>\n </div>\n </div>\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-internal-route-button" ng-click="vm.createOrEditInternalRoute($event)" aria-label="add internal route" translate translate-attr-aria-label="VOICE.ADD_INTERNALROUTE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n</div>'),e.put("app/main/apps/voice/views/musiconholds/create/dialog.html",'<md-dialog class="musiconhold-dialog" aria-label="New MusicOnHold">\n <form name="musiconholdForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="VOICE.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.musiconhold.name" ng-required="true" autofocus ng-disabled="!vm.newMusicOnHold">\n\n <div ng-messages="musiconholdForm[\'name\'].$error" ng-show="musiconholdForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MODE">Mode</label>\n <md-select name="mode" ng-model="vm.musiconhold.mode" required ng-disabled="!vm.newMusicOnHold">\n\n <md-option ng-value="\'files\'"> {{ \'VOICE.FILES\' | translate }} </md-option>\n\n <md-option ng-value="\'custom\'"> {{ \'VOICE.CUSTOM\' | translate }} </md-option>\n </md-select>\n <div ng-messages="musiconholdForm[\'mode\'].$error" ng-show="musiconholdForm[\'mode\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MODE_REQUIRED">Mode field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.musiconhold.mode == \'custom\'" class="md-block">\n <label translate="VOICE.DIRECTORY">Directory</label>\n <input type="" name="directory" ng-model="vm.musiconhold.directory">\n\n <div ng-messages="musiconholdForm[\'directory\'].$error" ng-show="musiconholdForm[\'directory\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DIRECTORY_REQUIRED">Directory field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.musiconhold.mode == \'custom\'" class="md-block">\n <label translate="VOICE.APPLICATION">Application</label>\n <input type="text" name="application" ng-model="vm.musiconhold.application" ng-required="true">\n\n <div ng-messages="musiconholdForm[\'application\'].$error" ng-show="musiconholdForm[\'application\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.APPLICATION_REQUIRED">Application field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.musiconhold.mode == \'files\'" class="md-block">\n <label translate="VOICE.SORT">Sort</label>\n <md-select name="sort" ng-model="vm.musiconhold.sort">\n\n <md-option ng-value="\'random\'"> {{ \'VOICE.RANDOM\' | translate }} </md-option>\n\n <md-option ng-value="\'alpha\'"> {{ \'VOICE.ALPHABETICAL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="musiconholdForm[\'sort\'].$error" ng-show="musiconholdForm[\'sort\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.SORT_REQUIRED">Sort field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newMusicOnHold" ng-click="vm.saveMusicOnHold()" class="send-button md-accent md-raised" ng-disabled="musiconholdForm.$invalid || musiconholdForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newMusicOnHold" ng-click="vm.addNewMusicOnHold()" class="send-button md-accent md-raised" ng-disabled="musiconholdForm.$invalid" aria-label="ADD" translate="VOICE.ADD_MUSICONHOLD" translate-attr-aria-label="VOICE.ADD_MUSICONHOLD">\n ADD MUSICONHOLD\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newMusicOnHold" ng-click="vm.deleteMusicOnHold($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/musiconholds/edit/mohSounds/dialog.html",'<md-dialog class="mohSound-dialog" aria-label="New MohSound">\n <form name="mohSoundForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="VOICE.FILE">File</label>\n <md-select name="id" ng-model="vm.mohSound.id" autofocus>\n <md-option ng-value="id.id" ng-repeat="id in vm.sounds" ng-disabled="id.canSelect === false">{{ id.name }}</md-option>\n </md-select>\n <div ng-messages="mohSoundForm[\'id\'].$error" ng-show="mohSoundForm[\'id\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.FILE_REQUIRED">File field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newMohSound" ng-click="vm.saveMohSound()" class="send-button md-accent md-raised" ng-disabled="mohSoundForm.$invalid || mohSoundForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newMohSound" ng-click="vm.addNewMohSound()" class="send-button md-accent md-raised" ng-disabled="mohSoundForm.$invalid" aria-label="ADD" translate="VOICE.ADD_MOHSOUND" translate-attr-aria-label="VOICE.ADD_MOHSOUND">\n ADD MOHSOUND\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newMohSound" ng-click="vm.deleteMohSound($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/musiconholds/edit/view.html",'<div id="voice-musiconhold" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-musiconholds-button md-icon-button" aria-label="Go to musiconholds" ng-click="vm.gotoMusicOnHolds()" translate translate-attr-aria-label="VOICE.GO_TO_MUSICONHOLDS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="musiconhold-image" hide-xs>\n <img ng-src="assets/images/business/musiconholds.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.musiconhold.id}}\n <span ng-if="vm.musiconhold.name">{{vm.musiconhold.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="VOICE.CREATED_AT"></span> <span>{{vm.musiconhold.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveMusicOnHold()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (mohSoundsForm.$invalid)" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="musiconhold-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="VOICE.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="VOICE.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.musiconhold.name" ng-required="true" autofocus disabled>\n\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MODE">Mode</label>\n <md-select name="mode" ng-model="vm.musiconhold.mode" required disabled>\n\n <md-option ng-value="\'files\'"> {{ \'VOICE.FILES\' | translate }} </md-option>\n\n <md-option ng-value="\'custom\'"> {{ \'VOICE.CUSTOM\' | translate }} </md-option>\n </md-select>\n <div ng-messages="generalForm[\'mode\'].$error" ng-show="generalForm[\'mode\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MODE_REQUIRED">Mode field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.musiconhold.mode == \'custom\'" class="md-block">\n <label translate="VOICE.DIRECTORY">Directory</label>\n <input type="" name="directory" ng-model="vm.musiconhold.directory" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'directory\'].$error" ng-show="generalForm[\'directory\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DIRECTORY_REQUIRED">Directory field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.musiconhold.mode == \'custom\'" class="md-block">\n <label translate="VOICE.APPLICATION">Application</label>\n <input type="text" name="application" ng-model="vm.musiconhold.application" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'application\'].$error" ng-show="generalForm[\'application\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.APPLICATION_REQUIRED">Application field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.musiconhold.mode == \'files\'" class="md-block">\n <label translate="VOICE.SORT">Sort</label>\n <md-select name="sort" ng-model="vm.musiconhold.sort" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'random\'"> {{ \'VOICE.RANDOM\' | translate }} </md-option>\n\n <md-option ng-value="\'alpha\'"> {{ \'VOICE.ALPHABETICAL\' | translate }} </md-option>\n </md-select>\n <div ng-messages="generalForm[\'sort\'].$error" ng-show="generalForm[\'sort\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.SORT_REQUIRED">Sort field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.AUDIOFILES">AUDIOFILES</span>\n </md-tab-label>\n <md-tab-body>\n <div class="musiconhold-detail-form-container mohsounds md-background-bg md-whiteframe-1dp">\n <div ng-controller="MusicOnHoldMohSoundsController as vm_dc" ng-init="vm_dc.init(vm.musiconhold, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedMusicOnHoldMohSounds.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.MOHSOUNDS">MohSounds</span>\n <ms-search-bar on-search="vm_dc.getMusicOnHoldMohSounds()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditMusicOnHoldMohSound($event)" aria-label="add mohSound" translate translate-attr-label="VOICE.ADD_MOHSOUND">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedMusicOnHoldMohSounds.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedMusicOnHoldMohSounds.length}} {{vm_dc.selectedMusicOnHoldMohSounds.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedMusicOnHoldMohSounds" csv-label="true" filename="musiconholds.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedMusicOnHoldMohSounds($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedMusicOnHoldMohSounds" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getMusicOnHoldMohSounds">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'VOICE.ID\' | translate }}\n </th>\n <th md-column md-order-by="audio">\n {{ \'VOICE.AUDIO\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'VOICE.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="mohSound" md-select-id="id" ng-repeat="mohSound in vm_dc.musiconholdMohSounds.rows">\n <td md-cell>\n {{mohSound.id}}\n </td>\n <td md-cell>\n \x3c!-- audio recording directive --\x3e\n <ms-recording id="mohSound.id" model="\'sound\'"></ms-recording>\n \x3c!-- / audio recording directive --\x3e\n </td>\n <td md-cell>\n {{ mohSound.createdAt | formatdate }}\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(mohSound, $event)" translate="VOICE.DELETE_MOHSOUND">\n Delete MohSound\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.musiconholdMohSounds.rows.length">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="VOICE.NO_MOHSOUND_AVAILABLE">No mohsound available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.musiconholdMohSounds.count}}" md-on-paginate="vm_dc.getMusicOnHoldMohSounds" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/voice/views/musiconholds/musiconholds.html",'<div id="musiconholds" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="VOICE.MUSICONHOLDS">MusicOnHolds</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedMusicOnHolds.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedMusicOnHolds =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="VOICE.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-musiconholds-count">\n <span>{{vm.selectedMusicOnHolds.length}}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VOICE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllMusicOnHolds()" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectMusicOnHolds()" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedMusicOnHolds" csv-label="true" filename="musiconholds.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedMusicOnHolds($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- MUSICONHOLD TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedMusicOnHolds" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getMusicOnHolds">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'VOICE.NAME\' | translate }}</th>\n <th md-column md-order-by="mode">{{ \'VOICE.MODE\' | translate }}</th>\n <th md-column md-order-by="sort">{{ \'VOICE.SORT\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.musiconholds.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="musiconhold" md-select-id="id" ng-repeat="musiconhold in vm.musiconholds.rows">\n <td md-cell ng-if="musiconhold.userpic"><img class="avatar" alt="{{musiconhold.name}}" ng-src="api/users/{{musiconhold.id}}/avatar" /></td>\n <td md-cell ng-if="!musiconhold.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{musiconhold.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(musiconhold, ev) : vm.createOrEditMusicOnHold($event, musiconhold)" md-cell class="id ">{{musiconhold.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(musiconhold, ev) : vm.createOrEditMusicOnHold($event, musiconhold)" md-cell class="name ">{{musiconhold.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(musiconhold, ev) : vm.createOrEditMusicOnHold($event, musiconhold)" md-cell class="mode ">{{ \'VOICE.\' + vm.arraymode[musiconhold.mode].option | uppercase | translate }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(musiconhold, ev) : vm.createOrEditMusicOnHold($event, musiconhold)" md-cell class="sort ">{{ \'VOICE.\' + vm.arraysort[musiconhold.sort].option | uppercase | translate }}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(musiconhold, $event )" translate="VOICE.EDIT_MUSICONHOLD">\n Edit MusicOnHold\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(musiconhold, $event )" translate="VOICE.DELETE_MUSICONHOLD">\n Delete MusicOnHold\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.musiconholds.count}}" md-on-paginate="vm.getMusicOnHolds" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / MUSICONHOLD TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD MUSICONHOLD BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-musiconhold-button" ng-click="vm.createOrEditMusicOnHold($event)" aria-label="add musiconhold" translate translate-attr-aria-label="VOICE.ADD_MUSICONHOLD">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD MUSICONHOLD BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/views/outboundRoutes/create/dialog.html",'<md-dialog ng-init="vm.initialize()" class="outbound-route-dialog" aria-label="New OutboundRoute">\n <form name="outboundrouteForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.newOutboundRoute ? \'VOICE.NEW_OUTBOUNDROUTE\' : \'VOICE.EDIT_OUTBOUNDROUTE\' | translate\n }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span>({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="VOICE.PHONENUMBER">PhoneNumber</label>\n <input type="text" name="exten" ng-model="vm.outboundRoute.exten" ng-required="true" autofocus>\n <div ng-messages="outboundrouteForm[\'exten\'].$error" ng-show="outboundrouteForm[\'exten\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PHONENUMBER_REQUIRED">PhoneNumber field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.outboundRoute.context" required>\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{ context.name }}</md-option>\n </md-select>\n <div ng-messages="outboundrouteForm[\'context\'].$error" ng-show="outboundrouteForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.RECORDING">Recording</label>\n <md-select name="recordingFormat" ng-model="vm.outboundRoute.recordingFormat" ng-change="vm.getRouting()" required>\n <md-option ng-value="\'none\'">none</md-option>\n <md-option ng-value="\'wav\'">wav</md-option>\n <md-option ng-value="\'WAV\'">wav49</md-option>\n <md-option ng-value="\'gsm\'">gsm</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.RECORDING"></span></div>\n <div ng-messages="outboundrouteForm[\'recordingFormat\'].$error" ng-show="outboundrouteForm[\'recordingFormat\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.RECORDING_REQUIRED">Recording field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CUTDIGITS">CutDigits</label>\n <input type="number" name="cutdigits" ng-model="vm.outboundRoute.cutdigits" min="0">\n <div ng-messages="outboundrouteForm[\'cutdigits\'].$error" ng-show="outboundrouteForm[\'cutdigits\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CUTDIGITS_REQUIRED">CutDigits field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.CUTDIGITS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CutDigits must be a valid greater\n or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.outboundRoute.alias" ng-change="vm.getRouting()">\n <div ng-messages="outboundrouteForm[\'alias\'].$error" ng-show="outboundrouteForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.outboundRoute.description">\n <div ng-messages="outboundrouteForm[\'description\'].$error" ng-show="outboundrouteForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newOutboundRoute" ng-click="vm.saveOutboundRoute()" class="send-button md-accent md-raised" ng-disabled="outboundrouteForm.$invalid || outboundrouteForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newOutboundRoute" ng-click="vm.addNewOutboundRoute()" class="send-button md-accent md-raised" ng-disabled="outboundrouteForm.$invalid" aria-label="ADD" translate="VOICE.ADD_OUTBOUNDROUTE" translate-attr-aria-label="VOICE.ADD_OUTBOUNDROUTE">\n ADD OUTBOUNDROUTE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newOutboundRoute" ng-click="vm.deleteOutboundRoute($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/outboundRoutes/edit/view.html",'<div ng-init="vm.onInit()" id="voice-outbound-route" class="page-layout simple tabbed" layout="column">\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-outbound-routes-button md-icon-button" aria-label="Go to outbound routes" ng-click="vm.gotoOutboundRoutes()" translate translate-attr-aria-label="VOICE.GO_TO_OUTBOUNDROUTES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n <div layout="row" layout-align="start center">\n <div class="outbound-route-image" hide-xs>\n <img ng-src="assets/images/business/outboundroutes.jpg">\n </div>\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.outboundRoute.id}}\n <span ng-if="vm.outboundRoute.exten">{{vm.outboundRoute.exten}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="VOICE.CREATED_AT"></span> <span>{{vm.outboundRoute.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveOutboundRoute()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (actionsForm.$invalid)" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n </div>\n </div>\n \x3c!-- /HEADER --\x3e\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n \x3c!-- SETTINGS TAB --\x3e\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="outbound-route-detail-form-container md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="VOICE.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="VOICE.PHONENUMBER">PhoneNumber</label>\n <input type="text" name="exten" ng-model="vm.outboundRoute.exten" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'exten\'].$error" ng-show="generalForm[\'exten\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PHONENUMBER_REQUIRED">PhoneNumber field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <md-select name="context" ng-model="vm.outboundRoute.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts.rows" ng-disabled="context.canSelect === false">{{ context.name }}</md-option>\n </md-select>\n <div ng-messages="generalForm[\'context\'].$error" ng-show="generalForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.RECORDING">Recording</label>\n <md-select name="recordingFormat" ng-model="vm.outboundRoute.recordingFormat" ng-change="vm.onActionsTabSelection()" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'none\'">none</md-option>\n <md-option ng-value="\'wav\'">wav</md-option>\n <md-option ng-value="\'WAV\'">wav49</md-option>\n <md-option ng-value="\'gsm\'">gsm</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.RECORDING"></span></div>\n <div ng-messages="generalForm[\'recordingFormat\'].$error" ng-show="generalForm[\'recordingFormat\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.RECORDING_REQUIRED">Recording field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CUTDIGITS">CutDigits</label>\n <input type="number" name="cutdigits" ng-model="vm.outboundRoute.cutdigits" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'cutdigits\'].$error" ng-show="generalForm[\'cutdigits\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CUTDIGITS_REQUIRED">CutDigits field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.CUTDIGITS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">CutDigits must be a valid\n greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ALIAS">Alias</label>\n <input type="text" name="alias" ng-model="vm.outboundRoute.alias" ng-change="vm.onActionsTabSelection()" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'alias\'].$error" ng-show="generalForm[\'alias\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ALIAS_REQUIRED">Alias field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.outboundRoute.description" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n \x3c!-- /SETTINGS TAB --\x3e\n \x3c!-- ACTIONS TAB --\x3e\n <md-tab md-on-select="vm.onActionsTabSelection()">\n <md-tab-label>\n <span translate="VOICE.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="outbound-route-detail-form-container no-padding no-margin">\n <div class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- APPLICATIONS LIST --\x3e\n <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20" ng-if="vm.crudPermissions.canEdit">\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\n Applications List\n </span>\n </md-subheader>\n </md-list>\n <md-divider class="no-margin"></md-divider>\n <md-list ng-sortable="vm.sortableAppsOptions">\n <md-list-item class="handle" ng-repeat="a in vm.apps">\n <div layout="row">\n <md-icon md-font-icon="icon-apps" class="s16 mr-15"></md-icon>\n <p class="text-truncate" translate="VOICE.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias ||\n a.appType}}</p>\n </div>\n </md-list-item>\n </md-list>\n </div>\n \x3c!-- /APPLICATIONS LIST --\x3e\n <div flex></div>\n \x3c!-- ROUTING --\x3e\n <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="{{vm.crudPermissions.canEdit ? 75 : 100}}">\n <div ng-if="vm.pendingChanges" class="p-10 md-amber-300-bg">\n <md-icon md-font-icon="icon-information-outline" aria-label="Save reminder"></md-icon>\n <span class="no-margin font-size-12 line-height-30" translate="VOICE.HELP.SAVE_ROUTES"></span>\n </div>\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm.selectedApplications.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Drag & Drop Routing</span>\n <div flex></div>\n <ms-search-bar query="vm.query" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm.selectedApplications.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm.selectedApplications.length}}\n {{vm.selectedApplications.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm.crudPermissions.canDelete" class="md-icon-button" ng-click="vm.deleteSelectedApplications($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedApplications">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </th>\n <th md-column width="10px"></th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body ng-sortable="vm.sortableRoutingOptions">\n <tr md-row md-select="a" md-select-id="id" ng-repeat="a in vm.applications.rows | filter:vm.query.filter as results">\n <td md-cell>\n <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n </td>\n <td md-cell ng-click="vm.editApplication($event, $index)">{{a.app.toLowerCase() ===\n \'agi\' ? \'Cally-Square\' : a.app | ucfirst}}<span ng-if="a.appType.toLowerCase() === \'custom\'">*</span></td>\n <td md-cell ng-click="vm.editApplication($event, $index)"><span class="text-truncate actionAppData">{{a.appdata}}</span></td>\n <td md-cell ng-click="vm.editInterval($event, $index)">{{a.IntervalId ? \'From List\' :\n a.interval}}</td>\n <td md-cell>\n <md-button ng-click="vm.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n <md-icon md-font-icon="icon-timer"></md-icon>\n <md-tooltip>\n {{a.IntervalId ? \'From List\' : (a.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n </md-tooltip>\n </md-button>\n </td>\n <td md-cell ng-if="!vm.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editApplication($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteApplication(a, $index, $event)" translate="VOICE.DELETE_APP">\n Delete App\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-class="{ \'ng-cloak\': results.length > 0 }">\n <td md-cell colspan="6">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No applications\n available</span>\n </td>\n </tr>\n </tbody>\n <tfoot md-foot>\n <tr md-row>\n <td md-cell colspan="7">\n <span><em translate="VOICE.LEGEND.CUSTOM_APPLICATION">(*) - Custom application.</em></span>\n </td>\n </tr>\n </tfoot>\n </table>\n </md-table-container>\n </div>\n \x3c!-- /ROUTING --\x3e\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n \x3c!-- /ACTIONS TAB --\x3e\n </md-tabs>\n </div>\n \x3c!-- /CONTENT --\x3e\n</div>'),e.put("app/main/apps/voice/views/outboundRoutes/outboundRoutes.html",'<div id="outbound-routes" class="page-layout simple left-sidenav inner-sidenav">\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="VOICE.OUTBOUNDROUTES">OutboundRoutes</span>\n </div>\n </div>\n <div layout="row">\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n </div>\n </div>\n <div ng-show="vm.selectedOutboundRoutes.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n <div class="close-button-wrapper" ng-click="vm.selectedOutboundRoutes = []">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="VOICE.BACK">Back</span>\n </md-button>\n </div>\n <div flex layout="row" layout-align="space-between center">\n <div>\n <span class="selected-outbound-routes-count">\n <span>{{ vm.selectedOutboundRoutes.length }}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VOICE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectedOutboundRoutes = vm.outboundRoutes.rows" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.selectedOutboundRoutes = []" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedOutboundRoutes" csv-label="true" filename="outbound_routes.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedOutboundRoutes($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n <div class="content" md-background-bg layout="row" layout-align="start start">\n <div class="main scrollable" ms-scroll>\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedOutboundRoutes" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getOutboundRoutes">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n <th md-column md-order-by="exten">{{ \'VOICE.PHONENUMBER\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'VOICE.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.outboundRoutes.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="route" md-select-id="id" ng-repeat="route in vm.outboundRoutes.rows">\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditOutboundRoute($event, route)" md-cell class="id ">{{ route.id }}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditOutboundRoute($event, route)" md-cell class="exten ">{{ route.exten }}</td>\n <td ng-click="!vm.crudPermissions.canEdit ? vm.editRoute(route) : vm.createOrEditOutboundRoute($event, route)" md-cell class="description ">{{ route.description }}</td>\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-button ng-click="vm.editRoute(route)" translate="VOICE.EDIT_OUTBOUNDROUTE">\n Edit OutboundRoute\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n <md-button ng-click="vm.deleteConfirm(route, $event)" translate="VOICE.DELETE_OUTBOUNDROUTE">\n Delete OutboundRoute\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{ \'VOICE.PAGE\' | translate }}:\', rowsPerPage: \'{{ \'VOICE.ROWSPERPAGE\' | translate }}:\', of: \'{{ \'VOICE.OF\' | translate }}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{ vm.outboundRoutes.count }}" md-on-paginate="vm.getOutboundRoutes" md-page-select>\n </md-table-pagination>\n </md-card>\n </div>\n </div>\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-outbound-route-button" ng-click="vm.createOrEditOutboundRoute($event)" aria-label="add outbound route" translate translate-attr-aria-label="VOICE.ADD_OUTBOUNDROUTE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n</div>'),e.put("app/main/apps/voice/views/realtime/abandonedcalls/view.html",'<md-toolbar class="md-table-toolbar md-default table-header">\n <div class="md-toolbar-tools" layout="row" layout-align="center center">\n <span class="md-subhead" translate="DASHBOARDS.ABANDONEDQUEUECALLS">ABANDONED QUEUE CALLS</span>\n <ms-search-bar on-search="vm.getAbandonedCalls()" query="vm.query" on-collapse="vm.query.filter = undefined" debounce="300">\n </ms-search-bar>\n <div flex></div>\n\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getAbandonedCalls()"></ms-quick-filter>\n\n <md-button class="md-icon-button" ng-click="vm.refresh && vm.refreshAbandonedCalls($event)" aria-label="Reload" translate translate-attr-label="DASHBOARDS.RELOAD">\n <md-icon md-font-icon="icon-reload"></md-icon>\n <md-tooltip ng-if="vm.showTooltip" md-visible="vm.showTooltip">{{\'DASHBOARDS.CLICKRELOAD\' | translate}}\n </md-tooltip>\n </md-button>\n </div>\n</md-toolbar>\n<md-table-container>\n <table md-table md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getAbandonedCalls">\n <tr md-row>\n <th md-column md-order-by="id">ID</th>\n <th md-column md-order-by="calleridname">{{\'DASHBOARDS.FULLNAME\' | translate}}</th>\n <th md-column md-order-by="calleridnum">{{\'DASHBOARDS.PHONE\' | translate}}</th>\n <th md-column md-order-by="queue">{{\'DASHBOARDS.QUEUE\' | translate}}</th>\n <th md-column md-order-by="queuecallerabandonAt">{{\'DASHBOARDS.ABANDONAT\' | translate}}</th>\n <th md-column md-order-by="lastAssignedTo">{{\'DASHBOARDS.LASTASSIGNEDTO\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column md-order-by="disposition">{{\'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.abandonedCalls.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="call in vm.abandonedCalls.rows">\n <td md-cell class="id">{{call.id}}</td>\n <td md-cell class="firstName" privacy ng-cloak>{{call.calleridname}}</td>\n <td md-cell class="list" privacy ng-cloak>{{call.calleridnum}}</td>\n <td md-cell class="list">{{vm.queuesMap[call.queue]}}</td>\n <td md-cell class="list">\n {{call.queuecallerabandonAt ? (call.queuecallerabandonAt | formatdate) : (call.queuecallerexitAt | formatdate) }}\n </td>\n <td md-cell class="list">{{call.lastAssignedTo}}</td>\n <td md-cell class="list">{{ call.disposition }}</td>\n <td md-cell class="list">{{ call.secondDisposition }}</td>\n <td md-cell class="list">{{ call.thirdDisposition }}</td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="DASHBOARDS.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button ng-click="$mdMenu.open()" class="text-capitalize" translate="DASHBOARDS.ASSIGNTO">\n Assigned\n to</md-button>\n <md-menu-content>\n <md-menu-item ng-if="call.lastAssignedTo">\n <md-button ng-click="vm.assignTo(call)"><em translate="DASHBOARDS.NONE">Not Assigned</em>\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.agents.rows.length" ng-repeat="agent in vm.agents.rows">\n <md-button ng-click="vm.assignTo(call,agent)">{{agent.name}}</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.dispose(call)" class="text-capitalize" translate="DASHBOARDS.DISPOSE">\n Dispose\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.abandonedCalls.count}}" md-on-paginate="vm.getAbandonedCalls" md-page-select></md-table-pagination>'),e.put("app/main/apps/voice/views/realtime/outbound_calls/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.OUTBOUND_CALLS">Ooutbound Calls</span>\n </div>\n</md-toolbar>\n\n\x3c!-- OUTBOUNDS TABLE --\x3e\n<md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column width="30px"></th>\n <th md-column>{{ \'VOICE.SOURCE\' | translate }}</th>\n <th md-column>{{ \'VOICE.DESTINATION\' | translate }}</th>\n <th md-column>{{ \'VOICE.ALIAS\' | translate }}</th>\n <th md-column>{{ \'VOICE.DURATION\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.calls.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="call in vm.calls.rows | filter: vm.query.filter | limitTo: vm.query.limit: (vm.query.page - 1) * vm.query.limit">\n <td md-cell>\n <i ng-class="vm.channelStatus[call.channelstatedesc.toLowerCase()]"></i>\n </td>\n <td md-cell privacy ng-cloak>\n {{call.calleridname}}, {{call.calleridnum}}\n <span class="text-boxed" ng-if="call.answered">\n <timer ng-if="call.answertime" start-time="call.answertime"></timer>\n </span>\n </td>\n <td md-cell privacy ng-cloak>{{call.exten}}</td>\n <td md-cell>{{call.routealias}}</td>\n <td md-cell>\n <span class="text-boxed" ng-if="call.channelstatedesc.toLowerCase() !== \'hangup\'">\n <timer ng-if="call.starttime" start-time="call.starttime"></timer>\n </span>\n <span class="text-boxed" ng-if="call.channelstatedesc.toLowerCase() === \'hangup\'" translate="VOICE.CLOSING">Closing</span>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.calls.count}}"></md-table-pagination>\n\x3c!-- / OUTBOUNDS TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/voice/views/realtime/queue_calls/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.QUEUE_CALLS">Queue Calls</span>\n </div>\n</md-toolbar>\n\x3c!-- QUEUES TABLE --\x3e\n<md-table-container>\n <table md-table>\n <thead md-head>\n <tr md-row>\n <th md-column width="30px"></th>\n <th md-column>{{ \'VOICE.DID\' | translate }}</th>\n <th md-column>{{ \'VOICE.ALIAS\' | translate }}</th>\n <th md-column>{{ \'VOICE.QUEUE\' | translate }}</th>\n <th md-column>{{ \'VOICE.CALLER\' | translate }}</th>\n <th md-column>{{ \'VOICE.AGENT\' | translate }}</th>\n <th md-column>{{ \'VOICE.DURATION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.getSize(vm.rpcVoiceQueuesChannels)">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(key, channel) in vm.rpcVoiceQueuesChannels | limitObjectFromTo: vm.queryChannels.limit:(vm.queryChannels.page - 1) * vm.queryChannels.limit">\n <td md-cell>\n <md-icon ng-if="channel.queuecallerleaveAt" md-font-icon="icon-phone-in-talk green-fg"></md-icon>\n <md-icon ng-if="!channel.queuecallerleaveAt" md-font-icon="icon-phone-incoming md-accent"></md-icon>\n </td>\n <td md-cell>{{channel.exten}}</td>\n <td md-cell>{{channel.routealias}}</td>\n <td md-cell>{{channel.queue}}</td>\n <td md-cell privacy ng-cloak>{{channel.calleridnum}}</td>\n <td md-cell>\n <span ng-if="channel.queuecallerleaveAt">\n {{channel.connectedlinename}}, {{channel.connectedlinenum}}\n <span class="text-boxed">\n <timer start-time="channel.queuecallerleaveAt"></timer>\n </span>\n </span>\n <span ng-if="!channel.queuecallerleaveAt" class="text-boxed">\n {{ \'VOICE.WAITING_FOR_AGENT\' | translate }}\n <timer start-time="channel.queuecallerjoinAt"></timer>\n </span>\n </td>\n <td md-cell>\n <span class="text-boxed">\n <timer start-time="channel.queuecallerjoinAt"></timer>\n </span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="2">\n <md-menu-item>\n <md-button ng-click="vm.hangup(channel.uniqueid)" translate="VOICE.HANGUP">\n Hangup\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.redirectToNumber($event, channel.uniqueid)" translate="VOICE.REDIRECT_TO_NUMBER">\n Number\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-menu class="no-margin">\n <md-button ng-mouseenter="vm.getAvailableAgents()" translate="VOICE.REDIRECT_TO_AGENT">\n Redirect to Agent</md-button>\n <md-menu-content>\n <md-menu-item ng-if="!vm.availableAgents">\n <md-progress-circular class="md-accent auto-margin" md-diameter="32" md-mode="indeterminate">\n </md-progress-circular>\n </md-menu-item>\n <md-menu-item ng-if="vm.availableAgents.length > 0" ng-repeat="agent in vm.availableAgents">\n <md-button ng-click="vm.redirectToAgent(channel.uniqueid, agent.name, agent.context)">\n {{agent.name}}</md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm.availableAgents.length === 0">\n <span>No agents available</span>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n<md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.queryChannels.limit" md-page="vm.queryChannels.page" md-limit-options="[10, 15, 20, 50, 100, 250]" md-total="{{vm.getSize(vm.rpcVoiceQueuesChannels)}}" md-page-select></md-table-pagination>\n\x3c!-- / QUEUES TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/voice/views/realtime/queue_params/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="MOTIONDIALER.QUEUE_PARAMETERS">Params</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n\n\x3c!-- QUEUE TABLE --\x3e\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n <tr md-row>\n <th md-column>{{\'\n VOICE.NAME\' | translate}}</th>\n <th md-column>{{\'\n VOICE.TOTAL_OFFERED\' | translate}}</th>\n <th md-column>{{\'\n VOICE.ANSWERED\' | translate}}</th>\n <th md-column>{{\'\n VOICE.ABANDONED\' | translate}}</th>\n <th md-column>{{\'\n VOICE.UNMANAGED\' | translate}}</th>\n <th md-column>{{\'\n VOICE.AVG_HOLD_TIME\' | translate}}</th>\n <th md-column>{{\'\n VOICE.AVG_DURATION\' | translate}}</th>\n <th md-column>{{\'\n VOICE.AVG_BILLABLE\' | translate}}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.queues">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span translate="MOTIONDIALER.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(id, queue) in vm.queues">\n <td md-cell>\n <span>{{queue.name}}</span>\n </td>\n <td md-cell>\n \x3c!-- <span class="font-size-20 grey-fg">{{queue.total || 0}}</span> --\x3e\n <span class="font-size-20 grey-fg">{{ (queue.answered || 0) + (queue.abandoned || 0) + (queue.unmanaged || 0) }}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{queue.answered || 0}} ({{(queue.total) ? (queue.answered || 0) * 100/queue.total : 0 | number:1}}%)</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{queue.abandoned || 0}} ({{(queue.total) ? (queue.abandoned || 0) * 100/queue.total : 0 | number:1}}%)</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{queue.unmanaged || 0}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{queue.total ? ((queue.sumHoldTime || 0) / queue.total) : 0 | number: 0 | secToTime | date:\'HH:mm:ss\'}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{(queue.total ? ((queue.sumDuration || 0) / queue.total) : 0) | number: 0 | secToTime | date:\'HH:mm:ss\'}}</span>\n </td>\n <td md-cell>\n <span class="font-size-16 grey-fg">{{queue.answered ? ((queue.sumBillable || 0) / queue.answered) : 0 | number: 0 | secToTime | date:\'HH:mm:ss\'}}</span>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'MOTIONDIALER.PAGE\' | translate}}:\', rowsPerPage: \'{{\'MOTIONDIALER.ROWSPERPAGE\' | translate}}:\', of: \'{{\'MOTIONDIALER.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>\n\x3c!-- / QUEUE TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/voice/views/realtime/queues/view.html",'<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.QUEUES">Queues</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'VOICE.NAME\' | translate }}</th>\n <th md-column>{{ \'VOICE.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'VOICE.PAUSED\' | translate }}</th>\n <th md-column>{{ \'VOICE.TALKING\' | translate }}</th>\n <th md-column>{{ \'VOICE.BUSY\' | translate }}</th>\n <th md-column>{{ \'VOICE.WAITING\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.queues.count > 0">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="queue" md-select-id="id" ng-repeat="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedInDb }} ({{ queue.loggedIn }})</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.talking }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.busy }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="VOICE.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" translate="VOICE.AGENTSADD_QUEUE">\n Add Agents to queue\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),e.put("app/main/apps/voice/views/realtime/realtime.html",'<div id="realtime" class="page-layout simple tabbed" layout="column" ng-cloak>\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.TELEPHONES">Telephones</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.TRUNKS">Trunks</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.QUEUES">Queues</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.QUEUE_CALLS">Queue Calls</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.ABANDONEDCALLS">Abandoned Queue Calls</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.QUEUE_PARAMS">Queue Parameters</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.OUTBOUND_CALLS">Outbound Calls</span>\n </md-tab-label>\n </md-tab>\n </md-tabs>\n\n <md-card ui-view></md-card>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/voice/views/realtime/telephones/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.TELEPHONES">Telephones</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getTelephones()" query="vm.query" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n\n\x3c!-- AGENT TABLE --\x3e\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTelephones">\n <tr md-row>\n <th md-column md-order-by="fullname">{{ \'VOICE.ACCOUNTNAME\' | translate }}</th>\n <th md-column md-order-by="internal">{{ \'VOICE.INTERNAL\' | translate }}</th>\n <th md-column>{{ \'VOICE.PHONE_STATE\' | translate }}</th>\n <th md-column>{{ \'VOICE.PHONE_STATUS\' | translate }}</th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.telephones">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="telephone" md-select-id="id" ng-repeat="(id, telephone) in vm.telephones">\n <td md-cell>{{telephone.fullname}}</td>\n <td md-cell>{{telephone.internal}}</td>\n <td md-cell>\n <i ng-class="vm.stateClass[telephone.state]">\n <md-tooltip>{{\'VOICE.\' + telephone.state | uppercase | translate}}</md-tooltip>\n </i>\n </td>\n <td md-cell>\n <i ng-class="vm.statusClass[telephone.status]">\n <md-tooltip>{{\'VOICE.\' + telephone.status | uppercase | translate}}</md-tooltip>\n </i>\n <span ng-if="telephone.status === \'registered\'" class="text-boxed">{{telephone.address}}</span>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getTelephones" md-page-select></md-table-pagination>\n\x3c!-- / AGENT TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/voice/views/realtime/trunks/view.html",'\x3c!-- MAIN --\x3e\n<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.TRUNKS">Telephones</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getTrunks()" query="vm.query" on-collapse="vm.query.filter = undefined;" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n\n\x3c!-- TRUNKS TABLE --\x3e\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head>\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getTrunks">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'VOICE.NAME\' | translate }}</th>\n <th md-column>{{ \'VOICE.TRUNK_STATUS\' | translate }}</th>\n <th md-column>{{ \'VOICE.REGISTRY\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.trunks">\n <td md-cell colspan="3">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row ng-repeat="(id, trunk) in vm.trunks">\n <td md-cell>{{trunk.name}}</td>\n <td md-cell>\n <i ng-class="vm.statusClass[trunk.status.toLowerCase()]">\n <md-tooltip>{{\'VOICE.\' + trunk.status | uppercase | translate}}</md-tooltip>\n </i>\n <span ng-if="trunk.status === \'registered\'" class="text-boxed">{{trunk.address}}</span>\n </td>\n <td md-cell>\n <i ng-if="trunk.registry" ng-class="(trunk.stateRegistry.toLowerCase() === \'registered\') ? \'green-300-fg icon-checkbox-marked-circle\' : \'red-300-fg icon-close-circle\'">\n <md-tooltip>{{\'VOICE.\' + trunk.stateRegistry | uppercase | translate}}</md-tooltip>\n </i>\n <span ng-if="trunk.registry && trunk.host && trunk.port" class="text-boxed">{{trunk.host}}:{{trunk.port}}</span>\n <span ng-if="!trunk.registry" translate="VOICE.NO_REGISTRY">\n No Registry\n </span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="STAFF.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="4">\n <md-menu-item>\n <md-button ng-click="vm.goToTrunk($event, trunk)" translate="VOICE.EDIT_TRUNK">\n Edit Trunk\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.count}}" md-on-paginate="vm.getTrunks" md-page-select></md-table-pagination>\n\x3c!-- / TRUNKS TABLE --\x3e\n\x3c!-- / MAIN --\x3e'),e.put("app/main/apps/voice/views/voicemails/create/dialog.html",'<md-dialog class="voicemail-dialog" aria-label="New Voicemail">\n <form name="voicemailForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="VOICE.FULLNAME">FullName</label>\n <input type="text" name="fullname" ng-model="vm.voicemail.fullname" ng-required="true" autofocus>\n\n <div ng-messages="voicemailForm[\'fullname\'].$error" ng-show="voicemailForm[\'fullname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.FULLNAME_REQUIRED">FullName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.voicemail.email" ng-required="vm.voicemail.attach === \'yes\'">\n\n <div ng-messages="voicemailForm[\'email\'].$error" ng-show="voicemailForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="VOICE.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.voicemail.password" placeholder="Password" translate translate-attr-placeholder="VOICE.PASSWORD" required>\n <div ng-messages="voicemailForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="VOICE.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.newVoicemail ">\n <label translate="VOICE.CONFIRM_PASSWORD">Confirm Password</label>\n <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword" required>\n <div ng-messages="voicemailForm.confirmPassword.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n </div>\n <div ng-message="passwordMatch">\n <span translate="VOICE.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="VOICE.MAILBOX">MailBox</label>\n <input type="text" name="mailbox" ng-model="vm.voicemail.mailbox" ng-required="true" ng-disabled="!vm.newVoicemail">\n\n <div ng-messages="voicemailForm[\'mailbox\'].$error" ng-show="voicemailForm[\'mailbox\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MAILBOX_REQUIRED">MailBox field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ATTACH">Attach</label>\n <md-select name="attach" ng-model="vm.voicemail.attach">\n\n <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }} </md-option>\n </md-select>\n <div ng-messages="voicemailForm[\'attach\'].$error" ng-show="voicemailForm[\'attach\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ATTACH_REQUIRED">Attach field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newVoicemail" ng-click="vm.saveVoicemail()" class="send-button md-accent md-raised" ng-disabled="voicemailForm.$invalid || voicemailForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newVoicemail" ng-click="vm.addNewVoicemail()" class="send-button md-accent md-raised" ng-disabled="voicemailForm.$invalid" aria-label="ADD" translate="VOICE.ADD_VOICEMAIL" translate-attr-aria-label="VOICE.ADD_VOICEMAIL">\n ADD VOICEMAIL\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newVoicemail" ng-click="vm.deleteVoicemail($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/voicemails/edit/view.html",'<div id="voice-voicemail" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-voicemails-button md-icon-button" aria-label="Go to voicemails" ng-click="vm.gotoVoicemails()" translate translate-attr-aria-label="VOICE.GO_TO_VOICEMAILS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="voicemail-image" hide-xs>\n <img ng-src="assets/images/business/voicemails.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.voicemail.id}}\n <span ng-if="vm.voicemail.name">{{vm.voicemail.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="VOICE.CREATED_AT"></span> <span>{{vm.voicemail.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveVoicemail()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (advancedForm.$invalid) || (messagesForm.$invalid)" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="voicemail-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="VOICE.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="VOICE.FULLNAME">FullName</label>\n <input type="text" name="fullname" ng-model="vm.voicemail.fullname" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'fullname\'].$error" ng-show="generalForm[\'fullname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.FULLNAME_REQUIRED">FullName field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.EMAIL">Email</label>\n <input type="email" name="email" ng-model="vm.voicemail.email" ng-required="vm.voicemail.attach === \'yes\'" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'email\'].$error" ng-show="generalForm[\'email\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.EMAIL_REQUIRED">Email field is required</span>\n </div>\n <div ng-message="email">\n <span translate="VOICE.ERRORS.EMAIL_MUST_VALID">Email must be a valid e-mail address</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.PASSWORD">Password</label>\n <input type="password" name="password" ng-model="vm.voicemail.password" placeholder="Password" translate translate-attr-placeholder="VOICE.PASSWORD" required>\n <div ng-messages="generalForm[\'password\'].$error" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="VOICE.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.newVoicemail ">\n <label translate="VOICE.CONFIRM_PASSWORD">Confirm Password</label>\n <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword" required>\n <div ng-messages="generalForm.confirmPassword.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n </div>\n <div ng-message="passwordMatch">\n <span translate="VOICE.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block">\n <label translate="VOICE.MAILBOX">MailBox</label>\n <input type="text" name="mailbox" ng-model="vm.voicemail.mailbox" ng-required="true" disabled>\n\n <div ng-messages="generalForm[\'mailbox\'].$error" ng-show="generalForm[\'mailbox\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MAILBOX_REQUIRED">MailBox field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.VOICEMAIL_CONTEXT">Voicemail_Context</label>\n <md-select name="context" ng-model="vm.voicemail.context" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="context.name" ng-repeat="context in vm.contexts" ng-disabled="context.canSelect === false">{{ context.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.VOICEMAIL_CONTEXT"></span></div>\n <div ng-messages="generalForm[\'context\'].$error" ng-show="generalForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.VOICEMAIL_CONTEXT_REQUIRED">Voicemail_Context field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="voicemail-detail-form-container advanced md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="VOICE.ADVANCED">ADVANCED</div>\n </div>\n <form name="advancedForm" novalidate>\n <md-input-container class="md-block">\n <label translate="VOICE.TIMEZONE">TimeZone</label>\n <input type="text" name="tz" ng-model="vm.voicemail.tz" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="advancedForm[\'tz\'].$error" ng-show="advancedForm[\'tz\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TIMEZONE_REQUIRED">TimeZone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ATTACH">Attach</label>\n <md-select name="attach" ng-model="vm.voicemail.attach" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }} </md-option>\n </md-select>\n <div ng-messages="advancedForm[\'attach\'].$error" ng-show="advancedForm[\'attach\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ATTACH_REQUIRED">Attach field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ENVELOPE">Envelope</label>\n <md-select name="envelope" ng-model="vm.voicemail.envelope" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }} </md-option>\n </md-select>\n <div ng-messages="advancedForm[\'envelope\'].$error" ng-show="advancedForm[\'envelope\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ENVELOPE_REQUIRED">Envelope field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DELETE">Delete</label>\n <md-select name="delete" ng-model="vm.voicemail.delete" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }} </md-option>\n </md-select>\n <div ng-messages="advancedForm[\'delete\'].$error" ng-show="advancedForm[\'delete\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DELETE_REQUIRED">Delete field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.EMAILBODY">EmailBody</label>\n <input type="text" name="emailbody" ng-model="vm.voicemail.emailbody" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="advancedForm[\'emailbody\'].$error" ng-show="advancedForm[\'emailbody\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.EMAILBODY_REQUIRED">EmailBody field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.EMAILSUBJECT">EmailSubject</label>\n <input type="text" name="emailsubject" ng-model="vm.voicemail.emailsubject" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="advancedForm[\'emailsubject\'].$error" ng-show="advancedForm[\'emailsubject\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.EMAILSUBJECT_REQUIRED">EmailSubject field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MAXSECONDS">MaxSeconds</label>\n <input type="number" name="maxsecs" ng-model="vm.voicemail.maxsecs" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="advancedForm[\'maxsecs\'].$error" ng-show="advancedForm[\'maxsecs\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MAXSECONDS_REQUIRED">MaxSeconds field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.MAXSECONDS_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MaxSeconds must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MAXMESSAGES">MaxMessages</label>\n <input type="number" name="maxmsg" ng-model="vm.voicemail.maxmsg" min="0" max="9999" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="advancedForm[\'maxmsg\'].$error" ng-show="advancedForm[\'maxmsg\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MAXMESSAGES_REQUIRED">MaxMessages field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.MAXMESSAGES_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MaxMessages must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="VOICE.ERRORS.MAXMESSAGES_MUST_BE_LESS_THAN_OR_EQUAL_TO">MaxMessages must be a valid greater or equal than</span> <span>9999</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.MESSAGES">MESSAGES</span>\n </md-tab-label>\n <md-tab-body>\n <div class="voicemail-detail-form-container messages md-background-bg md-whiteframe-1dp">\n <div ng-controller="VoicemailMessagesController as vm_dc" ng-init="vm_dc.init(vm.voicemail, vm.crudPermissions)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedVoicemailMessages.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.MESSAGES">Messages</span>\n <ms-search-bar on-search="vm_dc.getVoicemailMessages()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedVoicemailMessages.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedVoicemailMessages.length}} {{vm_dc.selectedVoicemailMessages.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedVoicemailMessages" csv-label="true" filename="voicemails.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedVoicemailMessages($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedVoicemailMessages" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getVoicemailMessages">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'VOICE.ID\' | translate }}\n </th>\n <th md-column md-order-by="callerid">\n {{ \'VOICE.CALLER_ID\' | translate }}\n </th>\n <th md-column md-order-by="duration">\n {{ \'VOICE.DURATION\' | translate }}\n </th>\n <th md-column md-order-by="audio">\n {{ \'VOICE.AUDIO\' | translate }}\n </th>\n <th md-column md-order-by="stamp">\n {{ \'VOICE.RECEIVED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="message" md-select-id="id" ng-repeat="message in vm_dc.voicemailMessages.rows">\n <td md-cell>\n {{message.id}}\n </td>\n <td md-cell>\n {{message.callerid}}\n </td>\n <td md-cell>\n {{message.duration}}\n </td>\n <td md-cell>\n \x3c!-- audio recording directive --\x3e\n <ms-recording id="message.id" model="\'voiceMailMessage\'"></ms-recording>\n \x3c!-- / audio recording directive --\x3e\n </td>\n <td md-cell>\n {{ message.stamp | formatdate }}\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(message, $event)" translate="VOICE.DELETE_MESSAGE">\n Delete Message\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.voicemailMessages.rows.length">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="VOICE.NO_MESSAGE_AVAILABLE">No message available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.voicemailMessages.count}}" md-on-paginate="vm_dc.getVoicemailMessages" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/voice/views/voicemails/voicemails.html",'<div id="voicemails" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="VOICE.VOICEMAILS">Voicemails</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedVoicemails.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedVoicemails =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="VOICE.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-voicemails-count">\n <span>{{vm.selectedVoicemails.length}}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VOICE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllVoicemails()" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectVoicemails()" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedVoicemails" csv-label="true" filename="voicemails.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedVoicemails($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- VOICEMAIL TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedVoicemails" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVoicemails">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n <th md-column md-order-by="fullname">{{ \'VOICE.FULLNAME\' | translate }}</th>\n <th md-column md-order-by="email">{{ \'VOICE.EMAIL\' | translate }}</th>\n <th md-column md-order-by="mailbox">{{ \'VOICE.MAILBOX\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.voicemails.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="voicemail" md-select-id="id" ng-repeat="voicemail in vm.voicemails.rows">\n <td md-cell ng-if="voicemail.userpic"><img class="avatar" alt="{{voicemail.name}}" ng-src="api/users/{{voicemail.id}}/avatar" /></td>\n <td md-cell ng-if="!voicemail.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{voicemail.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voicemail, ev) : vm.createOrEditVoicemail($event, voicemail)" md-cell class="id ">{{voicemail.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voicemail, ev) : vm.createOrEditVoicemail($event, voicemail)" md-cell class="fullname ">{{voicemail.fullname}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voicemail, ev) : vm.createOrEditVoicemail($event, voicemail)" md-cell class="email ">{{voicemail.email}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voicemail, ev) : vm.createOrEditVoicemail($event, voicemail)" md-cell class="mailbox ">{{voicemail.mailbox}}</td>\n\n\n <td md-cell class="actions" ng-if="!vm.crudPermissions.readOnly">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(voicemail, $event )" translate="VOICE.EDIT_VOICEMAIL">\n Edit Voicemail\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(voicemail, $event )" translate="VOICE.DELETE_VOICEMAIL">\n Delete Voicemail\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.voicemails.count}}" md-on-paginate="vm.getVoicemails" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / VOICEMAIL TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD VOICEMAIL BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-voicemail-button" ng-click="vm.createOrEditVoicemail($event)" aria-label="add voicemail" translate translate-attr-aria-label="VOICE.ADD_VOICEMAIL">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD VOICEMAIL BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/views/voicePrefixes/create/dialog.html",'<md-dialog class="voicePrefix-dialog" aria-label="New voicePrefix">\n <form name="voicePrefixForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="VOICE.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.voicePrefix.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus>\n\n <div class="hint"><span translate="VOICE.HELP.NAME"></span></div>\n <div ng-messages="voicePrefixForm[\'name\'].$error" ng-show="voicePrefixForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="VOICE.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.OUTBOUNDROUTE">OutboundRoute</label>\n <md-select name="VoiceExtensionId" ng-model="vm.voicePrefix.VoiceExtensionId" required>\n <md-option ng-value="VoiceExtensionId.id" ng-repeat="VoiceExtensionId in vm.outboundRoutes" ng-disabled="VoiceExtensionId.canSelect === false">{{ VoiceExtensionId.exten }}</md-option>\n </md-select>\n <div ng-messages="voicePrefixForm[\'VoiceExtensionId\'].$error" ng-show="voicePrefixForm[\'VoiceExtensionId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.OUTBOUNDROUTE_REQUIRED">OutboundRoute field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CALLERIDALL">CallerIdAll</label>\n <input type="text" name="callerIdAll" ng-model="vm.voicePrefix.callerIdAll" ng-pattern="/"(.*)"\\s<(.*?)>$/">\n\n <div class="hint"><span translate="VOICE.HELP.CALLERIDALL"></span></div>\n <div ng-messages="voicePrefixForm[\'callerIdAll\'].$error" ng-show="voicePrefixForm[\'callerIdAll\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CALLERIDALL_REQUIRED">CallerIdAll field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="VOICE.ERRORS.CALLERIDALL_MUST_VALID_PATTERN" translate-values="{ regex: \'/"(.*)"\\s<(.*?)>$/\' }">CallerIdAll must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.voicePrefix.description">\n\n <div ng-messages="voicePrefixForm[\'description\'].$error" ng-show="voicePrefixForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newvoicePrefix" ng-click="vm.savevoicePrefix()" class="send-button md-accent md-raised" ng-disabled="voicePrefixForm.$invalid || voicePrefixForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newvoicePrefix" ng-click="vm.addNewvoicePrefix()" class="send-button md-accent md-raised" ng-disabled="voicePrefixForm.$invalid" aria-label="ADD" translate="VOICE.ADD_VOICEPREFIX" translate-attr-aria-label="VOICE.ADD_VOICEPREFIX">\n ADD VOICEPREFIX\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newvoicePrefix" ng-click="vm.deletevoicePrefix($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/voicePrefixes/edit/agentadd/agentadd.html",'<md-dialog class="voicePrefix-dialog" aria-label="voicePrefix" ng-init="vm.onInit()">\n <form name="voicePrefixForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="VOICE.AGENTADD_VOICEPREFIX">Add Agent to voicePrefix</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/voicePrefixes/edit/teamadd/teamadd.html",'<md-dialog class="voicePrefix-dialog" aria-label="voicePrefix" ng-init="vm.onInit()">\n <form name="voicePrefixForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="VOICE.TEAMS_ASSOCIATION">Teams Association</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/voicePrefixes/voicePrefixes.html",'<div id="voicePrefixes" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="VOICE.VOICEPREFIXES">VoicePrefixes</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedVoicePrefixes.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedVoicePrefixes =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="VOICE.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-voicePrefixes-count">\n <span>{{vm.selectedVoicePrefixes.length}}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VOICE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllVoicePrefixes()" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectVoicePrefixes()" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedVoicePrefixes" csv-label="true" filename="voicePrefixes.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedVoicePrefixes($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- VOICEPREFIX TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedVoicePrefixes" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVoicePrefixes">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'VOICE.NAME\' | translate }}</th>\n <th md-column md-order-by="VoiceExtensionId">{{ \'VOICE.OUTBOUNDROUTE\' | translate }}</th>\n <th md-column md-order-by="callerIdAll">{{ \'VOICE.CALLERIDALL\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'VOICE.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.voicePrefixes.rows.length">\n <td md-cell colspan="6">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="voicePrefix" md-select-id="id" ng-repeat="voicePrefix in vm.voicePrefixes.rows">\n <td md-cell ng-if="voicePrefix.userpic"><img class="avatar" alt="{{voicePrefix.name}}" ng-src="api/users/{{voicePrefix.id}}/avatar" /></td>\n <td md-cell ng-if="!voicePrefix.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{voicePrefix.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.createOrEditvoicePrefix($event, voicePrefix)" md-cell class="id ">{{voicePrefix.id}}</td>\n <td ng-click="vm.createOrEditvoicePrefix($event, voicePrefix)" md-cell class="name ">{{voicePrefix.name}}</td>\n <td ng-click="vm.createOrEditvoicePrefix($event, voicePrefix)" md-cell class="VoiceExtensionId ">{{ (vm.outboundRoutes | filter : {\'id\':voicePrefix.VoiceExtensionId} : true)[0].exten }}</td>\n <td ng-click="vm.createOrEditvoicePrefix($event, voicePrefix)" md-cell class="callerIdAll ">{{voicePrefix.callerIdAll}}</td>\n <td ng-click="vm.createOrEditvoicePrefix($event, voicePrefix)" md-cell class="description ">{{voicePrefix.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editdialog(voicePrefix, $event )" translate="VOICE.EDIT_VOICEPREFIX">\n Edit voicePrefix\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(voicePrefix, $event )" translate="VOICE.AGENTADD_VOICEPREFIX">\n AgentAdd voicePrefix\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(voicePrefix, $event )" translate="VOICE.TEAMADD_VOICEPREFIX">\n teamadd voicePrefix\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(voicePrefix, $event )" translate="VOICE.DELETE_VOICEPREFIX">\n Delete voicePrefix\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.voicePrefixes.count}}" md-on-paginate="vm.getVoicePrefixes" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / VOICEPREFIX TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD VOICEPREFIX BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-voicePrefix-button" ng-click="vm.createOrEditvoicePrefix($event)" aria-label="add voicePrefix" translate translate-attr-aria-label="VOICE.ADD_VOICEPREFIX">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD VOICEPREFIX BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/views/voiceQueues/create/dialog.html",'<md-dialog class="voiceQueue-dialog" aria-label="New VoiceQueue">\n <form name="voiceQueueForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="VOICE.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.voiceQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newVoiceQueue">\n\n <div class="hint"><span translate="VOICE.HELP.NAME"></span></div>\n <div ng-messages="voiceQueueForm[\'name\'].$error" ng-show="voiceQueueForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="VOICE.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.voiceQueue.strategy" required>\n <md-option ng-value="\'ringall\'">Ringall</md-option>\n <md-option ng-value="\'rrmemory\'">Round Robin Memory</md-option>\n <md-option ng-value="\'leastrecent\'">Least Recent</md-option>\n <md-option ng-value="\'fewestcalls\'">Fewest Calls</md-option>\n <md-option ng-value="\'random\'">Random</md-option>\n <md-option ng-value="\'linear\'">Linear</md-option>\n <md-option ng-value="\'wrandom\'">Weight Random</md-option>\n </md-select>\n <div ng-messages="voiceQueueForm[\'strategy\'].$error" ng-show="voiceQueueForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.voiceQueue.description">\n\n <div ng-messages="voiceQueueForm[\'description\'].$error" ng-show="voiceQueueForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newVoiceQueue" ng-click="vm.saveVoiceQueue()" class="send-button md-accent md-raised" ng-disabled="voiceQueueForm.$invalid || voiceQueueForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newVoiceQueue" ng-click="vm.addNewVoiceQueue()" class="send-button md-accent md-raised" ng-disabled="voiceQueueForm.$invalid" aria-label="ADD" translate="VOICE.ADD_VOICEQUEUE" translate-attr-aria-label="VOICE.ADD_VOICEQUEUE">\n ADD VOICEQUEUE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newVoiceQueue" ng-click="vm.deleteVoiceQueue($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/voiceQueues/edit/agentadd/agentadd.html",'<md-dialog class="voiceQueue-dialog" aria-label="voiceQueue" ng-init="vm.onInit()">\n <form name="voiceQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="VOICE.AGENTADD_VOICEQUEUE">Add Agent to voiceQueue</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <md-input-container flex class="no-margin">\n <label translate="VOICE.PENALTY">Penalty</label>\n <input name="penalty" type="number" ng-model="vm.penalty" min="0" placeholder="0" required onkeypress="return event.charCode >= 48 && event.charCode <= 57 && this.value.length < 3">\n <div ng-messages="voiceQueueForm.penalty.$error" role="alert" multiple>\n <div ng-message="required">\n <span>{{ \'VOICE.ERRORS.PENALTY_REQUIRED\' | translate }}</span>\n </div>\n </div>\n </md-input-container>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit" add-disabled="vm.penalty === undefined"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/voiceQueues/edit/teamadd/teamadd.html",'<md-dialog class="voiceQueue-dialog" aria-label="voiceQueue" ng-init="vm.onInit()">\n <form name="voiceQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="VOICE.TEAMS_ASSOCIATION">Teams Association</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <md-input-container flex class="no-margin">\n <label translate="VOICE.PENALTY">Penalty</label>\n <input name="penalty" type="number" ng-model="vm.penalty" min="0" placeholder="0" required onkeypress="return event.charCode >= 48 && event.charCode <= 57 && this.value.length < 3">\n <div ng-messages="voiceQueueForm.penalty.$error" role="alert" multiple>\n <div ng-message="required">\n <span>{{ \'VOICE.ERRORS.PENALTY_REQUIRED\' | translate }}</span>\n </div>\n </div>\n </md-input-container>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit" add-disabled="vm.penalty === undefined"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/voiceQueues/edit/view.html",'<div id="voice-voiceQueue" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-voiceQueues-button md-icon-button" aria-label="Go to voiceQueues" ng-click="vm.gotoVoiceQueues()" translate translate-attr-aria-label="VOICE.GO_TO_VOICEQUEUES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="voiceQueue-image" hide-xs>\n <img ng-src="assets/images/business/voiceQueues.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.voiceQueue.id}}\n <span ng-if="vm.voiceQueue.name">{{vm.voiceQueue.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="VOICE.CREATED_AT"></span> <span>{{vm.voiceQueue.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.teamadddialog(vm.voiceQueue, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n <md-tooltip><span translate="VOICE.TEAMADD_VOICEQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.voiceQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="VOICE.AGENTADD_VOICEQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-plus"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.gotogoto(vm.voiceQueue, $event)" class="md-fab md-warn md-icon-button" aria-label="goto">\n <md-tooltip><span translate="VOICE.GOTO_VOICEQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-cast"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveVoiceQueue()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (settingsForm.$invalid) || (announcementsForm.$invalid) || (advancedForm.$invalid)" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="voiceQueue-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="VOICE.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="VOICE.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.voiceQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="VOICE.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="VOICE.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.voiceQueue.strategy" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'ringall\'">Ringall</md-option>\n <md-option ng-value="\'rrmemory\'">Round Robin Memory</md-option>\n <md-option ng-value="\'leastrecent\'">Least Recent</md-option>\n <md-option ng-value="\'fewestcalls\'">Fewest Calls</md-option>\n <md-option ng-value="\'random\'">Random</md-option>\n <md-option ng-value="\'linear\'">Linear</md-option>\n <md-option ng-value="\'wrandom\'">Weight Random</md-option>\n </md-select>\n <div ng-messages="generalForm[\'strategy\'].$error" ng-show="generalForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.voiceQueue.timeout" min="0" value="15" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.TIMEOUT"></span></div>\n <div ng-messages="generalForm[\'timeout\'].$error" ng-show="generalForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MAXLENGTH">MaxLength</label>\n <input type="number" name="maxlen" ng-model="vm.voiceQueue.maxlen" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.MAXLENGTH"></span></div>\n <div ng-messages="generalForm[\'maxlen\'].$error" ng-show="generalForm[\'maxlen\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MAXLENGTH_REQUIRED">MaxLength field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.MAXLENGTH_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MaxLength must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.RETRY">Retry</label>\n <input type="number" name="retry" ng-model="vm.voiceQueue.retry" min="0" value="2" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.RETRY"></span></div>\n <div ng-messages="generalForm[\'retry\'].$error" ng-show="generalForm[\'retry\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.RETRY_REQUIRED">Retry field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.RETRY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Retry must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.WRAPUPTIME">WrapupTime</label>\n <input type="number" name="wrapuptime" ng-model="vm.voiceQueue.wrapuptime" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.WRAPUPTIME"></span></div>\n <div ng-messages="generalForm[\'wrapuptime\'].$error" ng-show="generalForm[\'wrapuptime\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.WRAPUPTIME_REQUIRED">WrapupTime field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.WRAPUPTIME_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WrapupTime must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.WEIGHT">Weight</label>\n <input type="number" name="weight" ng-model="vm.voiceQueue.weight" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.WEIGHT"></span></div>\n <div ng-messages="generalForm[\'weight\'].$error" ng-show="generalForm[\'weight\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.WEIGHT_REQUIRED">Weight field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.WEIGHT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Weight must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.JOINWHENEMPTY">JoinWhenEmpty</label>\n <md-select name="joinempty" ng-model="vm.voiceQueue.joinempty" multiple ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'no\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'no\'">no</md-option>\n <md-option ng-value="\'yes\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'yes\'">yes</md-option>\n <md-option ng-value="\'strict\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'strict\'">strict</md-option>\n <md-option ng-value="\'loose\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'loose\'">loose</md-option>\n <md-option ng-value="\'paused\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'paused\'">paused</md-option>\n <md-option ng-value="\'penalty\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'penalty\'">penalty</md-option>\n <md-option ng-value="\'inuse\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'inuse\'">inuse</md-option>\n <md-option ng-value="\'ringing\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'ringing\'">ringing</md-option>\n <md-option ng-value="\'unavailable\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'unavailable\'">unavailable</md-option>\n <md-option ng-value="\'invalid\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'invalid\'">invalid</md-option>\n <md-option ng-value="\'unknown\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'unknown\'">unknown</md-option>\n <md-option ng-value="\'wrapup\'" ng-disabled="vm.voiceQueue.joinempty.length === 1 && vm.voiceQueue.joinempty[0] === \'wrapup\'">wrapup</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.JOINWHENEMPTY"></span></div>\n <div ng-messages="generalForm[\'joinempty\'].$error" ng-show="generalForm[\'joinempty\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.JOINWHENEMPTY_REQUIRED">JoinWhenEmpty field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.LEAVEWHENEMPTY">LeaveWhenEmpty</label>\n <md-select name="leavewhenempty" ng-model="vm.voiceQueue.leavewhenempty" multiple ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'no\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'no\'">no</md-option>\n <md-option ng-value="\'yes\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'yes\'">yes</md-option>\n <md-option ng-value="\'strict\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'strict\'">strict</md-option>\n <md-option ng-value="\'loose\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'loose\'">loose</md-option>\n <md-option ng-value="\'paused\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'paused\'">paused</md-option>\n <md-option ng-value="\'penalty\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'penalty\'">penalty</md-option>\n <md-option ng-value="\'inuse\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'inuse\'">inuse</md-option>\n <md-option ng-value="\'ringing\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'ringing\'">ringing</md-option>\n <md-option ng-value="\'unavailable\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'unavailable\'">unavailable</md-option>\n <md-option ng-value="\'invalid\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'invalid\'">invalid</md-option>\n <md-option ng-value="\'unknown\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'unknown\'">unknown</md-option>\n <md-option ng-value="\'wrapup\'" ng-disabled="vm.voiceQueue.leavewhenempty.length === 1 && vm.voiceQueue.leavewhenempty[0] === \'wrapup\'">wrapup</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.LEAVEWHENEMPTY"></span></div>\n <div ng-messages="generalForm[\'leavewhenempty\'].$error" ng-show="generalForm[\'leavewhenempty\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.LEAVEWHENEMPTY_REQUIRED">LeaveWhenEmpty field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MUSICONHOLD">MusicOnHold</label>\n <md-select name="musiconhold" ng-model="vm.voiceQueue.musiconhold" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="musiconhold.name" ng-repeat="musiconhold in vm.musiconholds" ng-disabled="musiconhold.canSelect === false">{{ musiconhold.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.MUSICONHOLD"></span></div>\n <div ng-messages="generalForm[\'musiconhold\'].$error" ng-show="generalForm[\'musiconhold\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MUSICONHOLD_REQUIRED">MusicOnHold field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ANNOUNCETOAGENT">AnnounceToAgent</label>\n <md-select name="announce" ng-model="vm.voiceQueue.announce" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'FALSE\'">None</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + announce.save_name" ng-repeat="announce in vm.sounds" ng-disabled="announce.canSelect === false">{{ announce.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.ANNOUNCETOAGENT"></span></div>\n <div ng-messages="generalForm[\'announce\'].$error" ng-show="generalForm[\'announce\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ANNOUNCETOAGENT_REQUIRED">AnnounceToAgent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.voiceQueue.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.ANNOUNCEMENTS">ANNOUNCEMENTS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="voiceQueue-detail-form-container settings md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="VOICE.SETTINGS">SETTINGS</div>\n </div>\n <form name="settingsForm" novalidate>\n <md-input-container class="md-block">\n <label translate="VOICE.ANNOUNCEFREQUENCY">AnnounceFrequency</label>\n <input type="number" name="announce_frequency" ng-model="vm.voiceQueue.announce_frequency" min="0" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.ANNOUNCEFREQUENCY"></span></div>\n <div ng-messages="settingsForm[\'announce_frequency\'].$error" ng-show="settingsForm[\'announce_frequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ANNOUNCEFREQUENCY_REQUIRED">AnnounceFrequency field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.ANNOUNCEFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AnnounceFrequency must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MINANNOUNCEFREQUENCY">MinAnnounceFrequency</label>\n <input type="number" name="min_announce_frequency" ng-model="vm.voiceQueue.min_announce_frequency" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.MINANNOUNCEFREQUENCY"></span></div>\n <div ng-messages="settingsForm[\'min_announce_frequency\'].$error" ng-show="settingsForm[\'min_announce_frequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MINANNOUNCEFREQUENCY_REQUIRED">MinAnnounceFrequency field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.MINANNOUNCEFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MinAnnounceFrequency must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.PERIODICANNOUNCEFREQUENCY">PeriodicAnnounceFrequency</label>\n <input type="number" name="periodic_announce_frequency" ng-model="vm.voiceQueue.periodic_announce_frequency" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.PERIODICANNOUNCEFREQUENCY"></span></div>\n <div ng-messages="settingsForm[\'periodic_announce_frequency\'].$error" ng-show="settingsForm[\'periodic_announce_frequency\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PERIODICANNOUNCEFREQUENCY_REQUIRED">PeriodicAnnounceFrequency field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.PERIODICANNOUNCEFREQUENCY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">PeriodicAnnounceFrequency must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.RANDOMPERIODICANNOUNCE">RandomPeriodicAnnounce</label>\n <md-select name="random_periodic_announce" ng-model="vm.voiceQueue.random_periodic_announce" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.RANDOMPERIODICANNOUNCE"></span></div>\n <div ng-messages="settingsForm[\'random_periodic_announce\'].$error" ng-show="settingsForm[\'random_periodic_announce\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.RANDOMPERIODICANNOUNCE_REQUIRED">RandomPeriodicAnnounce field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ANNOUNCEHOLDTIME">AnnounceHoldtime</label>\n <md-select name="announce_holdtime" ng-model="vm.voiceQueue.announce_holdtime" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">Yes</md-option>\n <md-option ng-value="\'no\'">No</md-option>\n <md-option ng-value="\'once\'">Once</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.ANNOUNCEHOLDTIME"></span></div>\n <div ng-messages="settingsForm[\'announce_holdtime\'].$error" ng-show="settingsForm[\'announce_holdtime\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ANNOUNCEHOLDTIME_REQUIRED">AnnounceHoldtime field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ANNOUNCECALLERPOSITION">AnnounceCallerPosition</label>\n <md-select name="announce_position" ng-model="vm.voiceQueue.announce_position" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'yes\'">Yes</md-option>\n <md-option ng-value="\'no\'">No</md-option>\n <md-option ng-value="\'limit\'">Limit</md-option>\n <md-option ng-value="\'more\'">More</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.ANNOUNCECALLERPOSITION"></span></div>\n <div ng-messages="settingsForm[\'announce_position\'].$error" ng-show="settingsForm[\'announce_position\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ANNOUNCECALLERPOSITION_REQUIRED">AnnounceCallerPosition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ANNOUNCEPOSITIONLIMIT">AnnouncePositionLimit</label>\n <input type="number" name="announce_position_limit" ng-model="vm.voiceQueue.announce_position_limit" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.ANNOUNCEPOSITIONLIMIT"></span></div>\n <div ng-messages="settingsForm[\'announce_position_limit\'].$error" ng-show="settingsForm[\'announce_position_limit\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ANNOUNCEPOSITIONLIMIT_REQUIRED">AnnouncePositionLimit field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.REPORTHOLDTIMEAGENT">ReportHoldtimeAgent</label>\n <md-select name="reportholdtime" ng-model="vm.voiceQueue.reportholdtime" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.REPORTHOLDTIMEAGENT"></span></div>\n <div ng-messages="settingsForm[\'reportholdtime\'].$error" ng-show="settingsForm[\'reportholdtime\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.REPORTHOLDTIMEAGENT_REQUIRED">ReportHoldtimeAgent field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="voiceQueue-detail-form-container announcements md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="VOICE.ANNOUNCEMENTS">ANNOUNCEMENTS</div>\n </div>\n <form name="announcementsForm" novalidate>\n <md-input-container class="md-block">\n <label translate="VOICE.PERIODICANNOUNCE">PeriodicAnnounce</label>\n <md-select name="periodic_announce" ng-model="vm.voiceQueue.periodic_announce" autofocus multiple ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">Default</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + periodic_announce.save_name" ng-repeat="periodic_announce in vm.sounds" ng-disabled="periodic_announce.canSelect === false">{{ periodic_announce.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.PERIODICANNOUNCE"></span></div>\n <div ng-messages="announcementsForm[\'periodic_announce\'].$error" ng-show="announcementsForm[\'periodic_announce\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.PERIODICANNOUNCE_REQUIRED">PeriodicAnnounce field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.HOLDTIMEANNOUNCE">HoldTimeAnnounce</label>\n <md-select name="queue_reporthold" ng-model="vm.voiceQueue.queue_reporthold" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_reporthold.save_name" ng-repeat="queue_reporthold in vm.sounds" ng-disabled="queue_reporthold.canSelect === false">{{ queue_reporthold.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.HOLDTIMEANNOUNCE"></span></div>\n <div ng-messages="announcementsForm[\'queue_reporthold\'].$error" ng-show="announcementsForm[\'queue_reporthold\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.HOLDTIMEANNOUNCE_REQUIRED">HoldTimeAnnounce field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.YOUARENEXTANNOUNCE">YouareNextAnnounce</label>\n <md-select name="queue_youarenext" ng-model="vm.voiceQueue.queue_youarenext" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_youarenext.save_name" ng-repeat="queue_youarenext in vm.sounds" ng-disabled="queue_youarenext.canSelect === false">{{ queue_youarenext.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.YOUARENEXTANNOUNCE"></span></div>\n <div ng-messages="announcementsForm[\'queue_youarenext\'].$error" ng-show="announcementsForm[\'queue_youarenext\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.YOUARENEXTANNOUNCE_REQUIRED">YouareNextAnnounce field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.THEREAREANNOUNCE">ThereareAnnounce</label>\n <md-select name="queue_thereare" ng-model="vm.voiceQueue.queue_thereare" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_thereare.save_name" ng-repeat="queue_thereare in vm.sounds" ng-disabled="queue_thereare.canSelect === false">{{ queue_thereare.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.THEREAREANNOUNCE"></span></div>\n <div ng-messages="announcementsForm[\'queue_thereare\'].$error" ng-show="announcementsForm[\'queue_thereare\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.THEREAREANNOUNCE_REQUIRED">ThereareAnnounce field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.WAITINGCALLSANNOUNCE">WaitingCallsAnnounce</label>\n <md-select name="queue_callswaiting" ng-model="vm.voiceQueue.queue_callswaiting" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_callswaiting.save_name" ng-repeat="queue_callswaiting in vm.sounds" ng-disabled="queue_callswaiting.canSelect === false">{{ queue_callswaiting.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.WAITINGCALLSANNOUNCE"></span></div>\n <div ng-messages="announcementsForm[\'queue_callswaiting\'].$error" ng-show="announcementsForm[\'queue_callswaiting\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.WAITINGCALLSANNOUNCE_REQUIRED">WaitingCallsAnnounce field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.ESTIMATEDHOLDTIMEANNOUNCE">EstimatedHoldTimeAnnounce</label>\n <md-select name="queue_holdtime" ng-model="vm.voiceQueue.queue_holdtime" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_holdtime.save_name" ng-repeat="queue_holdtime in vm.sounds" ng-disabled="queue_holdtime.canSelect === false">{{ queue_holdtime.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.ESTIMATEDHOLDTIMEANNOUNCE"></span></div>\n <div ng-messages="announcementsForm[\'queue_holdtime\'].$error" ng-show="announcementsForm[\'queue_holdtime\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.ESTIMATEDHOLDTIMEANNOUNCE_REQUIRED">EstimatedHoldTimeAnnounce field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MINUTESANNOUNCE">MinutesAnnounce</label>\n <md-select name="queue_minutes" ng-model="vm.voiceQueue.queue_minutes" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_minutes.save_name" ng-repeat="queue_minutes in vm.sounds" ng-disabled="queue_minutes.canSelect === false">{{ queue_minutes.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.MINUTESANNOUNCE"></span></div>\n <div ng-messages="announcementsForm[\'queue_minutes\'].$error" ng-show="announcementsForm[\'queue_minutes\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MINUTESANNOUNCE_REQUIRED">MinutesAnnounce field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MINUTEANNOUNCE">MinuteAnnounce</label>\n <md-select name="queue_minute" ng-model="vm.voiceQueue.queue_minute" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_minute.save_name" ng-repeat="queue_minute in vm.sounds" ng-disabled="queue_minute.canSelect === false">{{ queue_minute.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.MINUTEANNOUNCE"></span></div>\n <div ng-messages="announcementsForm[\'queue_minute\'].$error" ng-show="announcementsForm[\'queue_minute\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MINUTEANNOUNCE_REQUIRED">MinuteAnnounce field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.SECONDSANNOUNCE">SecondsAnnounce</label>\n <md-select name="queue_seconds" ng-model="vm.voiceQueue.queue_seconds" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_seconds.save_name" ng-repeat="queue_seconds in vm.sounds" ng-disabled="queue_seconds.canSelect === false">{{ queue_seconds.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.SECONDSANNOUNCE"></span></div>\n <div ng-messages="announcementsForm[\'queue_seconds\'].$error" ng-show="announcementsForm[\'queue_seconds\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.SECONDSANNOUNCE_REQUIRED">SecondsAnnounce field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.THANKYOUANNOUNCE">ThankYouAnnounce</label>\n <md-select name="queue_thankyou" ng-model="vm.voiceQueue.queue_thankyou" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">Default</md-option>\n <md-option ng-value="\'\'">Disabled</md-option>\n <md-option ng-value="\'/var/opt/motion2/server/files/sounds/converted/\' + queue_thankyou.save_name" ng-repeat="queue_thankyou in vm.sounds" ng-disabled="queue_thankyou.canSelect === false">{{ queue_thankyou.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.THANKYOUANNOUNCE"></span></div>\n <div ng-messages="announcementsForm[\'queue_thankyou\'].$error" ng-show="announcementsForm[\'queue_thankyou\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.THANKYOUANNOUNCE_REQUIRED">ThankYouAnnounce field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="voiceQueue-detail-form-container advanced md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="VOICE.ADVANCED">ADVANCED</div>\n </div>\n <form name="advancedForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.voiceQueue.acw" aria-label="AfterCallWork" ng-disabled="!vm.crudPermissions.canEdit"><span translate="VOICE.AFTERCALLWORK">AfterCallWork</span></md-switch>\n <div class="hint"><span translate="VOICE.HELP.AFTERCALLWORK"></span></div>\n </md-input-container>\n <md-input-container ng-if="vm.voiceQueue.acw" class="md-block">\n <label translate="VOICE.AFTERCALLWORKDURATION">AfterCallWorkDuration</label>\n <input type="number" name="acwTimeout" ng-model="vm.voiceQueue.acwTimeout" min="0" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.AFTERCALLWORKDURATION"></span></div>\n <div ng-messages="advancedForm[\'acwTimeout\'].$error" ng-show="advancedForm[\'acwTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.AFTERCALLWORKDURATION_REQUIRED">AfterCallWorkDuration field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.AFTERCALLWORKDURATION_MUST_BE_GREATER_THAN_OR_EQUAL_TO">AfterCallWorkDuration must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.AUTOPAUSE">AutoPause</label>\n <md-select name="autopause" ng-model="vm.voiceQueue.autopause" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'all\'"> {{ \'VOICE.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.AUTOPAUSE"></span></div>\n <div ng-messages="advancedForm[\'autopause\'].$error" ng-show="advancedForm[\'autopause\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.AUTOPAUSE_REQUIRED">AutoPause field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.RINGINUSE">RingInUse</label>\n <md-select name="ringinuse" ng-model="vm.voiceQueue.ringinuse" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.RINGINUSE"></span></div>\n <div ng-messages="advancedForm[\'ringinuse\'].$error" ng-show="advancedForm[\'ringinuse\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.RINGINUSE_REQUIRED">RingInUse field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MEMBERDELAY">MemberDelay</label>\n <input type="number" name="memberdelay" ng-model="vm.voiceQueue.memberdelay" min="0" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.MEMBERDELAY"></span></div>\n <div ng-messages="advancedForm[\'memberdelay\'].$error" ng-show="advancedForm[\'memberdelay\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MEMBERDELAY_REQUIRED">MemberDelay field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.MEMBERDELAY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">MemberDelay must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.TIMEOUTRESTART">TimeoutRestart</label>\n <md-select name="timeoutrestart" ng-model="vm.voiceQueue.timeoutrestart" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.TIMEOUTRESTART"></span></div>\n <div ng-messages="advancedForm[\'timeoutrestart\'].$error" ng-show="advancedForm[\'timeoutrestart\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TIMEOUTRESTART_REQUIRED">TimeoutRestart field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.MONITORFORMAT">MonitorFormat</label>\n <md-select name="monitor_format" ng-model="vm.voiceQueue.monitor_format" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">Inactive</md-option>\n <md-option ng-value="\'wav\'">wav</md-option>\n <md-option ng-value="\'wav49\'">wav49</md-option>\n <md-option ng-value="\'gsm\'">gsm</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.MONITORFORMAT"></span></div>\n <div ng-messages="advancedForm[\'monitor_format\'].$error" ng-show="advancedForm[\'monitor_format\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MONITORFORMAT_REQUIRED">MonitorFormat field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONTEXT">Context</label>\n <input type="text" name="context" ng-model="vm.voiceQueue.context" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.CONTEXT"></span></div>\n <div ng-messages="advancedForm[\'context\'].$error" ng-show="advancedForm[\'context\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CONTEXT_REQUIRED">Context field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.SETINTERFACEVARIABLES">SetInterfaceVariables</label>\n <md-select name="setinterfacevar" ng-model="vm.voiceQueue.setinterfacevar" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.SETINTERFACEVARIABLES"></span></div>\n <div ng-messages="advancedForm[\'setinterfacevar\'].$error" ng-show="advancedForm[\'setinterfacevar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.SETINTERFACEVARIABLES_REQUIRED">SetInterfaceVariables field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.SETQUEUEVARIABLES">SetQueueVariables</label>\n <md-select name="setqueuevar" ng-model="vm.voiceQueue.setqueuevar" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.SETQUEUEVARIABLES"></span></div>\n <div ng-messages="advancedForm[\'setqueuevar\'].$error" ng-show="advancedForm[\'setqueuevar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.SETQUEUEVARIABLES_REQUIRED">SetQueueVariables field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.SETQUEUEENTRYVARIABLES">SetQueueEntryVariables</label>\n <md-select name="setqueueentryvar" ng-model="vm.voiceQueue.setqueueentryvar" ng-disabled="!vm.crudPermissions.canEdit">\n\n <md-option ng-value="\'yes\'"> {{ \'VOICE.YES\' | translate }} </md-option>\n\n <md-option ng-value="\'no\'"> {{ \'VOICE.NO\' | translate }} </md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.SETQUEUEENTRYVARIABLES"></span></div>\n <div ng-messages="advancedForm[\'setqueueentryvar\'].$error" ng-show="advancedForm[\'setqueueentryvar\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.SETQUEUEENTRYVARIABLES_REQUIRED">SetQueueEntryVariables field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.SERVICELEVEL">ServiceLevel</label>\n <input type="number" name="servicelevel" ng-model="vm.voiceQueue.servicelevel" min="0" max="100" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="VOICE.HELP.SERVICELEVEL"></span></div>\n <div ng-messages="advancedForm[\'servicelevel\'].$error" ng-show="advancedForm[\'servicelevel\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.SERVICELEVEL_REQUIRED">ServiceLevel field is required</span>\n </div>\n <div ng-message="min">\n <span translate="VOICE.ERRORS.SERVICELEVEL_MUST_BE_GREATER_THAN_OR_EQUAL_TO">ServiceLevel must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="VOICE.ERRORS.SERVICELEVEL_MUST_BE_LESS_THAN_OR_EQUAL_TO">ServiceLevel must be a valid greater or equal than</span> <span>100</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.voiceQueue.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="VOICE.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.voiceQueue.mandatoryDisposition" class="md-block">\n <label translate="VOICE.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.voiceQueue.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="VOICE.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="advancedForm[\'mandatoryDispositionPauseId\'].$error" ng-show="advancedForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/voice/views/voiceQueues/voiceQueues.html",'<div id="voiceQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="VOICE.VOICEQUEUES">VoiceQueues</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedVoiceQueues.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedVoiceQueues =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="VOICE.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-voiceQueues-count">\n <span>{{vm.selectedVoiceQueues.length}}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VOICE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllVoiceQueues()" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectVoiceQueues()" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedVoiceQueues" csv-label="true" filename="voiceQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedVoiceQueues($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- VOICEQUEUE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedVoiceQueues" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVoiceQueues">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'VOICE.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'VOICE.NAME\' | translate }}</th>\n <th md-column md-order-by="strategy">{{ \'VOICE.STRATEGY\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'VOICE.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.voiceQueues.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="voiceQueue" md-select-id="id" ng-repeat="voiceQueue in vm.voiceQueues.rows">\n <td md-cell ng-if="voiceQueue.userpic"><img class="avatar" alt="{{voiceQueue.name}}" ng-src="api/users/{{voiceQueue.id}}/avatar" /></td>\n <td md-cell ng-if="!voiceQueue.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{voiceQueue.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceQueue, ev) : vm.createOrEditVoiceQueue($event, voiceQueue)" md-cell class="id ">{{voiceQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceQueue, ev) : vm.createOrEditVoiceQueue($event, voiceQueue)" md-cell class="name ">{{voiceQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceQueue, ev) : vm.createOrEditVoiceQueue($event, voiceQueue)" md-cell class="strategy ">{{ vm.arraystrategy[voiceQueue.strategy].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceQueue, ev) : vm.createOrEditVoiceQueue($event, voiceQueue)" md-cell class="description ">{{voiceQueue.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(voiceQueue, $event )" translate="VOICE.EDIT_VOICEQUEUE">\n Edit VoiceQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(voiceQueue, $event )" translate="VOICE.TEAMADD_VOICEQUEUE">\n teamadd VoiceQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(voiceQueue, $event )" translate="VOICE.AGENTADD_VOICEQUEUE">\n agentadd VoiceQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(voiceQueue, $event )" translate="VOICE.DELETE_VOICEQUEUE">\n Delete VoiceQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(voiceQueue, $event )" translate="VOICE.GOTOREALTIME_VOICEQUEUE">\n goToRealtime VoiceQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.voiceQueues.count}}" md-on-paginate="vm.getVoiceQueues" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / VOICEQUEUE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD VOICEQUEUE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-voiceQueue-button" ng-click="vm.createOrEditVoiceQueue($event)" aria-label="add voiceQueue" translate translate-attr-aria-label="VOICE.ADD_VOICEQUEUE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD VOICEQUEUE BUTTON --\x3e\n</div>'),e.put("app/main/apps/voice/views/voiceRecordings/create/dialog.html",'<md-dialog class="voiceRecording-dialog" aria-label="New VoiceRecording">\n <form name="voiceRecordingForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="VOICE.RATING">Rating</label>\n <md-select name="rating" ng-model="vm.voiceRecording.rating" autofocus ng-disabled="!vm.newVoiceRecording && !vm.crudPermissions.canEdit">\n <md-option ng-value="null">{{\'VOICE.NO_RATING\' | translate}}</md-option>\n <md-option value="1">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1]"></md-icon>\n </md-option>\n <md-option value="2">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2]"></md-icon>\n </md-option>\n <md-option value="3">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2,3]"></md-icon>\n </md-option>\n <md-option value="4">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2,3,4]"></md-icon>\n </md-option>\n <md-option value="5">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2,3,4,5]"></md-icon>\n </md-option>\n </md-select>\n <div ng-messages="voiceRecordingForm[\'rating\'].$error" ng-show="voiceRecordingForm[rating].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.RATING_REQUIRED">Rating field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newVoiceRecording" ng-click="vm.saveVoiceRecording()" class="send-button md-accent md-raised" ng-disabled="voiceRecordingForm.$invalid || voiceRecordingForm.$pristine" aria-label="SAVE" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newVoiceRecording" ng-click="vm.addNewVoiceRecording()" class="send-button md-accent md-raised" ng-disabled="voiceRecordingForm.$invalid" aria-label="ADD" translate="VOICE.ADD_VOICERECORDING" translate-attr-aria-label="VOICE.ADD_VOICERECORDING">\n ADD VOICERECORDING\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newVoiceRecording" ng-click="vm.deleteVoiceRecording($event)" aria-label="DELETE" translate translate-attr-aria-label="VOICE.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="VOICE.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/voice/views/voiceRecordings/edit/view.html",'<div id="voice-voiceRecording" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-voiceRecordings-button md-icon-button" aria-label="Go to voiceRecordings" ng-click="vm.gotoVoiceRecordings()" translate translate-attr-aria-label="VOICE.GO_TO_VOICERECORDINGS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="voiceRecording-image" hide-xs>\n <img ng-src="assets/images/business/voiceRecordings.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.voiceRecording.id}}\n <span ng-if="vm.voiceRecording.name">{{vm.voiceRecording.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="VOICE.CREATED_AT"></span> <span>{{vm.voiceRecording.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveVoiceRecording()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(voiceRecordingsForm.$invalid) || (transcriptForm.$invalid) || (sentimentAnalysisForm.$invalid)" translate="VOICE.SAVE" translate-attr-aria-label="VOICE.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="VOICE.GENERAL">GENERAL</span>\n </md-tab-label>\n <md-tab-body>\n <div class="voiceRecording-detail-form-container voicerecordings md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="VOICE.VOICERECORDINGS">VOICERECORDINGS</div>\n </div>\n <form name="voiceRecordingsForm" novalidate>\n <md-input-container class="md-block">\n <label translate="VOICE.TYPE">Type</label>\n <input type="" name="type" ng-model="vm.voiceRecording.type" autofocus disabled>\n\n <div ng-messages="voiceRecordingsForm[\'type\'].$error" ng-show="voiceRecordingsForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.UNIQUEID">UniqueId</label>\n <input type="" name="uniqueid" ng-model="vm.voiceRecording.uniqueid" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'uniqueid\'].$error" ng-show="voiceRecordingsForm[\'uniqueid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.UNIQUEID_REQUIRED">UniqueId field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CALLER">Caller</label>\n <input type="" name="calleridnum" ng-model="vm.voiceRecording.calleridnum" privacy="vm.userProfile.privacyEnabled" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'calleridnum\'].$error" ng-show="voiceRecordingsForm[\'calleridnum\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CALLER_REQUIRED">Caller field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CALLED">Called</label>\n <input type="" name="exten" ng-model="vm.voiceRecording.exten" privacy="vm.userProfile.privacyEnabled" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'exten\'].$error" ng-show="voiceRecordingsForm[\'exten\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CALLED_REQUIRED">Called field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.CONNECTED">Connected</label>\n <input type="" name="connectedlinenum" ng-model="vm.voiceRecording.connectedlinenum" privacy="vm.userProfile.privacyEnabled" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'connectedlinenum\'].$error" ng-show="voiceRecordingsForm[\'connectedlinenum\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.CONNECTED_REQUIRED">Connected field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.QUEUE">Queue</label>\n <input type="" name="queue" ng-model="vm.voiceRecording.queue" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'queue\'].$error" ng-show="voiceRecordingsForm[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.AGENT">Agent</label>\n <input type="text" name="membername" ng-model="vm.voiceRecording.membername" privacy="vm.userProfile.privacyEnabled" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'membername\'].$error" ng-show="voiceRecordingsForm[\'membername\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.RATING">Rating</label>\n <md-select name="rating" ng-model="vm.voiceRecording.rating" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="null">{{\'VOICE.NO_RATING\' | translate}}</md-option>\n <md-option value="1">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1]"></md-icon>\n </md-option>\n <md-option value="2">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2]"></md-icon>\n </md-option>\n <md-option value="3">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2,3]"></md-icon>\n </md-option>\n <md-option value="4">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2,3,4]"></md-icon>\n </md-option>\n <md-option value="5">\n <md-icon md-font-icon="icon-star" style="color:red" ng-repeat="icon in [1,2,3,4,5]"></md-icon>\n </md-option>\n </md-select>\n <div ng-messages="voiceRecordingsForm[\'rating\'].$error" ng-show="voiceRecordingsForm[rating].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.RATING_REQUIRED">Rating field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.DISPOSITION">Disposition</label>\n <input type="text" name="userDisposition" ng-model="vm.voiceRecording.userDisposition" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'userDisposition\'].$error" ng-show="voiceRecordingsForm[\'userDisposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.SECOND_LEVEL_DISPOSITION">Second_Level_Disposition</label>\n <input type="text" name="userSecondDisposition" ng-model="vm.voiceRecording.userSecondDisposition" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'userSecondDisposition\'].$error" ng-show="voiceRecordingsForm[\'userSecondDisposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.SECOND_LEVEL_DISPOSITION_REQUIRED">Second_Level_Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="VOICE.THIRD_LEVEL_DISPOSITION">Third_Level_Disposition</label>\n <input type="text" name="userThirdDisposition" ng-model="vm.voiceRecording.userThirdDisposition" disabled>\n\n <div ng-messages="voiceRecordingsForm[\'userThirdDisposition\'].$error" ng-show="voiceRecordingsForm[\'userThirdDisposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="VOICE.ERRORS.THIRD_LEVEL_DISPOSITION_REQUIRED">Third_Level_Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab ng-if="vm.license.ai">\n <md-tab-label>\n <span translate="VOICE.TRANSCRIPTANALYSIS">TRANSCRIPTANALYSIS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="voiceRecording-detail-form-container transcript md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="VOICE.TRANSCRIPT">TRANSCRIPT</div>\n </div>\n <form name="transcriptForm" novalidate>\n <md-input-container ng-if="vm.voiceRecording.transcribeStatus == \'COMPLETED\'" class="md-block">\n <label translate="VOICE.TEXT">Text</label>\n <textarea name="fileText" ng-model="vm.voiceRecording.fileText" autofocus ng-disabled="true"></textarea>\n </md-input-container>\n <md-input-container ng-if="vm.voiceRecording.transcribeStatus == \'FAILED\'" class="md-block">\n <label translate="VOICE.FAILUREREASON">FailureReason</label>\n <textarea name="failureReason" ng-model="vm.voiceRecording.failureReason" ng-disabled="true"></textarea>\n </md-input-container>\n\n </form>\n </div>\n <div class="voiceRecording-detail-form-container sentimentanalysis md-background-bg md-whiteframe-1dp">\n <div ng-controller="VoiceRecordingSentimentStatisticsController as vm_ss" ng-init="vm_ss.init(vm.voiceRecording)">\n <md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="VOICE.SENTIMENTANALYSIS" style="width: 50px;">Sentiment Analysis</span>\n <div flex></div>\n </div>\n </md-toolbar>\n\n \x3c!-- WIDGET GROUP --\x3e\n <div class="widget-group" layout="row" flex="100" layout-wrap>\n\n \x3c!-- WIDGET 1 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8 sentiment" ng-class="vm_ss.voiceRecording.sentiment">\n {{vm_ss.voiceRecording.sentiment}}\n </div>\n <div class="font-weight-500 secondary-text">\n {{ \'VOICE.SENTIMENT\' | translate | uppercase }}\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET 1 --\x3e\n\n \x3c!-- WIDGET 2 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">\n ({{ (vm_ss.voiceRecording.sPositive || 0) * 100 | number: 2 }}%)\n </div>\n <div class="font-weight-500 secondary-text">\n {{ \'VOICE.SENTIMENT_POSITIVE\' | translate | uppercase }}\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET 2 --\x3e\n\n \x3c!-- WIDGET 3 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">\n ({{ (vm_ss.voiceRecording.sNegative || 0) * 100 | number: 2 }}%)\n </div>\n <div class="font-weight-500 secondary-text">\n {{ \'VOICE.SENTIMENT_NEGATIVE\' | translate | uppercase }}\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET 3 --\x3e\n\n \x3c!-- WIDGET 4 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">\n ({{ (vm_ss.voiceRecording.sNeutral || 0) * 100 | number: 2 }}%)\n </div>\n <div class="font-weight-500 secondary-text">\n {{ \'VOICE.SENTIMENT_NEUTRAL\' | translate | uppercase }}\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET 4 --\x3e\n\n \x3c!-- WIDGET 5 --\x3e\n <ms-widget class="h-140" layout="column" flex="100" flex-gt-xs="50" flex-gt-md="20">\n \x3c!-- Front --\x3e\n <ms-widget-front class="p-16 white-bg" layout="row" flex>\n <div class="pt-8 pb-8" layout="column" layout-align="center center" flex>\n <div class="md-display-1 pb-8">\n ({{ (vm_ss.voiceRecording.sMixed || 0) * 100 | number: 2 }}%)\n </div>\n <div class="font-weight-500 secondary-text">\n {{ \'VOICE.SENTIMENT_MIXED\' | translate | uppercase }}\n </div>\n </div>\n </ms-widget-front>\n \x3c!-- / Front --\x3e\n </ms-widget>\n \x3c!-- / WIDGET 5 --\x3e\n\n </div>\n \x3c!-- / WIDGET GROUP --\x3e\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/voice/views/voiceRecordings/voiceRecordings.html",'<div id="voiceRecordings" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-phone" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="VOICE.VOICERECORDINGS">VoiceRecordings</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="VOICE.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n <ms-quick-filter filters="vm.quickFilters" query="vm.query" search="vm.getVoiceRecordings()"></ms-quick-filter>\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedVoiceRecordings.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedVoiceRecordings =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="VOICE.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-voiceRecordings-count">\n <span>{{vm.selectedVoiceRecordings.length}}</span>\n <span translate="VOICE.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="VOICE.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllVoiceRecordings()" translate="VOICE.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectVoiceRecordings()" translate="VOICE.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedVoiceRecordings" csv-label="true" filename="voiceRecordings.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.license.ai" ng-click="vm.runtranscribesentimentSelectedVoiceRecordings($event)" aria-label="transcribesentiment selected" translate translate-attr-label="VOICERECORDINGS.TRANSCRIBESENTIMENT_SELECTED">\n <md-icon md-font-icon="icon-text-to-speech"></md-icon>\n <md-tooltip>{{\'VOICE.RUNTRANSCRIBESENTIMENT_VOICERECORDING\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button" ng-if="vm.license.ai" ng-click="vm.runtranscribeSelectedVoiceRecordings($event)" aria-label="transcribe selected" translate translate-attr-label="VOICERECORDINGS.TRANSCRIBE_SELECTED">\n <md-icon md-font-icon="icon-format-size"></md-icon>\n <md-tooltip>{{\'VOICE.RUNTRANSCRIBE_VOICERECORDING\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button" ng-if="vm.license.ai" ng-click="vm.runsentimentSelectedVoiceRecordings($event)" aria-label="transcribe selected" translate translate-attr-label="VOICERECORDINGS.SENTIMENT_SELECTED">\n <md-icon md-font-icon="icon-heart-outline"></md-icon>\n <md-tooltip>{{\'VOICE.RUNSENTIMENT_VOICERECORDING\' | translate}}</md-tooltip>\n </md-button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedVoiceRecordings($event)" aria-label="delete selected" translate translate-attr-label="VOICE.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- VOICERECORDING TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedVoiceRecordings" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getVoiceRecordings">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="type">{{ \'VOICE.TYPE\' | translate }}</th>\n <th md-column md-order-by="uniqueid">{{ \'VOICE.UNIQUEID\' | translate }}</th>\n <th md-column md-order-by="calleridnum">{{ \'VOICE.CALLER\' | translate }}</th>\n <th md-column md-order-by="exten">{{ \'VOICE.CALLED\' | translate }}</th>\n <th md-column md-order-by="connectedlinenum">{{ \'VOICE.CONNECTED\' | translate }}</th>\n <th md-column md-order-by="queue">{{ \'VOICE.QUEUE\' | translate }}</th>\n <th md-column md-order-by="membername">{{ \'VOICE.AGENT\' | translate }}</th>\n <th md-column md-order-by="rating">{{ \'VOICE.RATING\' | translate }}</th>\n <th md-column>{{ \'VOICE.AUDIO\' | translate }}</th>\n <th md-column md-order-by="createdAt">{{ \'VOICE.DATE\' | translate }}</th>\n <th md-column md-order-by="userDisposition">{{ \'VOICE.DISPOSITION\' | translate }}</th>\n <th md-column md-order-by="userSecondDisposition">{{ \'VOICE.SECOND_LEVEL_DISPOSITION\' | translate }}</th>\n <th md-column md-order-by="userThirdDisposition">{{ \'VOICE.THIRD_LEVEL_DISPOSITION\' | translate }}</th>\n <th md-column md-order-by="transcribeStatus" ng-if="vm.license.ai">{{ \'VOICE.TRANSCRIBE\' | translate }}</th>\n <th md-column md-order-by="sentiment" ng-if="vm.license.ai">{{ \'VOICE.SENTIMENTANALYSIS\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.voiceRecordings.rows.length">\n <td md-cell colspan="16">\n <div layout="row" layout-align="center center">\n <span translate="VOICE.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="voiceRecording" md-select-id="id" ng-repeat="voiceRecording in vm.voiceRecordings.rows">\n <td md-cell ng-if="voiceRecording.userpic"><img class="avatar" alt="{{voiceRecording.name}}" ng-src="api/users/{{voiceRecording.id}}/avatar" /></td>\n <td md-cell ng-if="!voiceRecording.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{voiceRecording.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="type ">{{voiceRecording.type}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="uniqueid ">{{voiceRecording.uniqueid}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="calleridnum " privacy="{{vm.userProfile.privacyEnabled}}" ng-cloak>{{voiceRecording.calleridnum}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="exten " privacy="{{vm.userProfile.privacyEnabled}}" ng-cloak>{{voiceRecording.exten}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="connectedlinenum " privacy="{{vm.userProfile.privacyEnabled}}" ng-cloak>{{voiceRecording.connectedlinenum}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="queue ">{{voiceRecording.queue}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="membername " privacy="{{vm.userProfile.privacyEnabled}}" ng-cloak>{{voiceRecording.membername}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="rating ">\n <md-icon md-font-icon="icon-star" style="color:red" ng-show="voiceRecording.rating" ng-repeat="rating in [1,2,3,4,5] | limitTo:voiceRecording.rating"></md-icon><span ng-hide="voiceRecording.rating" translate="VOICE.NO_RATING">No rating</span>\n </td>\n <td md-cell class="audio " ng-switch="voiceRecording.format">\n \x3c!-- audio recording directive --\x3e\n <ms-recording ng-switch-when=".wav" id="voiceRecording.id" model="\'voiceRecording\'"></ms-recording>\n \x3c!-- / audio recording directive --\x3e\n <span ng-switch-when=".gsm|.WAV" ng-switch-when-separator="|">\n <em>{{ \'VOICE.CANT_PLAY_GSM_AUDIO_FILES\' | translate }}</em>\n </span>\n </td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="createdAt ">{{voiceRecording.createdAt | date:\'medium\' }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="userDisposition ">{{voiceRecording.userDisposition}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="userSecondDisposition ">{{voiceRecording.userSecondDisposition}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="userThirdDisposition ">{{voiceRecording.userThirdDisposition}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="transcribeStatus " ng-if="vm.license.ai">{{ \'VOICE.TRANSCRIBESTATUS_\' + voiceRecording.transcribeStatus | translate}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(voiceRecording, ev) : vm.createOrEditVoiceRecording($event, voiceRecording)" md-cell class="sentiment " ng-if="vm.license.ai">{{voiceRecording.sentiment}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(voiceRecording, $event )" translate="VOICE.EDIT_VOICERECORDING">\n Edit VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="voiceRecording.transcribeStatus == \'NEW\' && vm.license.ai">\n\n <md-button ng-click="vm.runtranscriberuntranscribesentiment(voiceRecording, $event )" translate="VOICE.RUNTRANSCRIBE_VOICERECORDING">\n RunTranscribe VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="voiceRecording.transcribeStatus == \'NEW\' && vm.license.ai">\n\n <md-button ng-click="vm.runtranscribesentimentruntranscribesentiment(voiceRecording, $event )" translate="VOICE.RUNTRANSCRIBESENTIMENT_VOICERECORDING">\n RunTranscribeSentiment VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="voiceRecording.transcribeStatus == \'COMPLETED\' && voiceRecording.sentiment == null && vm.license.ai">\n\n <md-button ng-click="vm.runsentimentruntranscribesentiment(voiceRecording, $event )" translate="VOICE.RUNSENTIMENT_VOICERECORDING">\n RunSentiment VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="voiceRecording.transcribeStatus == \'COMPLETED\' && vm.license.ai">\n\n <md-button ng-click="vm.downloadtranscribefile2(voiceRecording, $event )" translate="VOICE.DOWNLOADTRANSCRIBE_VOICERECORDING">\n DownloadTranscribe VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.currentUser.role === \'admin\' || vm.userProfile.downloadVoiceRecordings">\n\n <md-button ng-click="vm.downloadfile2(voiceRecording, $event , \'voice/recordings\' )" translate="VOICE.DOWNLOAD_VOICERECORDING">\n Download VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(voiceRecording, $event )" translate="VOICE.DELETE_VOICERECORDING">\n Delete VoiceRecording\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'VOICE.PAGE\' | translate}}:\', rowsPerPage: \'{{\'VOICE.ROWSPERPAGE\' | translate}}:\', of: \'{{\'VOICE.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.voiceRecordings.count}}" md-on-paginate="vm.getVoiceRecordings" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / VOICERECORDING TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- NO ADD BUTTON BUTTON --\x3e\n</div>'),e.put("app/main/apps/whatsapp/views/realtime/queues/view.html",'<md-toolbar class="md-table-toolbar md-default">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="WHATSAPP.QUEUES">Queues</span>\n <div flex></div>\n <ms-search-bar on-search="vm.getQueues()" query="vm.query" debounce="300"></ms-search-bar>\n </div>\n</md-toolbar>\n<md-table-container>\n <table md-table multiple md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getQueues">\n <tr md-row>\n <th md-column md-order-by="name">{{ \'WHATSAPP.NAME\' | translate }}</th>\n <th md-column>{{ \'WHATSAPP.LOGGED_IN\' | translate }}</th>\n <th md-column>{{ \'DASHBOARDS.AVAILABLE\' | translate }}</th>\n <th md-column>{{ \'WHATSAPP.PAUSED\' | translate }}</th>\n <th md-column>{{ \'WHATSAPP.WAITING\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.queues.count > 0">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span translate="WHATSAPP.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="queue" md-select-id="id" ng-repeat="queue in vm.queues.rows">\n <td md-cell>{{queue.name}}</td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.loggedIn }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.available }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.paused }}</span>\n </td>\n <td md-cell>\n <span class="font-size-18 grey-fg">{{ queue.waiting }}</span>\n </td>\n <td md-cell class="actions" ng-if="vm.crudPermissions.canEdit">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="WHATSAPP.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.editQueue($event, queue)" translate="WHATSAPP.EDIT_QUEUE">\n Edit Queue\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.addAgent($event, queue)" translate="WHATSAPP.AGENTSADD_QUEUE">\n Add Agents to queue\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n</md-table-container>\n\n<md-table-pagination md-label="{page: \'{{\'WHATSAPP.PAGE\' | translate}}:\', rowsPerPage: \'{{\'WHATSAPP.ROWSPERPAGE\' | translate}}:\', of: \'{{\'WHATSAPP.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.queues.count}}" md-on-paginate="vm.getQueues" md-page-select></md-table-pagination>'),e.put("app/main/apps/whatsapp/views/realtime/realtime.html",'<div id="realtime" class="page-layout simple tabbed" layout="column" ng-cloak>\n \x3c!-- CONTENT --\x3e\n <div class="content">\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="WHATSAPP.AGENTS">Agents</span>\n </md-tab-label>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="WHATSAPP.QUEUES">Queues</span>\n </md-tab-label>\n </md-tab>\n </md-tabs>\n\n <md-card ui-view></md-card>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n</div>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/create/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.whatsappAccount.name" ng-required="true" autofocus ng-disabled="!vm.newWhatsappAccount">\n\n <div class="hint"><span translate="WHATSAPP.HELP.NAME"></span></div>\n <div ng-messages="whatsappAccountForm[\'name\'].$error" ng-show="whatsappAccountForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.KEY">key</label>\n <input type="text" name="key" ng-model="vm.whatsappAccount.key" md-maxlength="5" ng-required="true">\n\n <div ng-messages="whatsappAccountForm[\'key\'].$error" ng-show="whatsappAccountForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.LIST">List</label>\n <md-select name="ListId" ng-model="vm.whatsappAccount.ListId" required>\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="WHATSAPP.HELP.LIST"></span></div>\n <div ng-messages="whatsappAccountForm[\'ListId\'].$error" ng-show="whatsappAccountForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.MOTIONPROXY">MotionProxy</label>\n <input type="url" name="remote" ng-model="vm.whatsappAccount.remote" md-maxlength="255" value="LOCALIP" ng-required="true">\n\n <div class="hint"><span translate="WHATSAPP.HELP.MOTIONPROXY"></span></div>\n <div ng-messages="whatsappAccountForm[\'remote\'].$error" ng-show="whatsappAccountForm[\'remote\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.MOTIONPROXY_REQUIRED">MotionProxy field is required</span>\n </div>\n <div ng-message="url">\n <span translate="WHATSAPP.ERRORS.MOTIONPROXY_MUST_VALID_URL">MotionProxy must be a valid url http://www.xcally.com</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.ERRORS.MOTIONPROXY_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionProxy must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TYPE">Type</label>\n <md-select name="type" ng-model="vm.whatsappAccount.type">\n <md-option ng-value="\'twilio\'">Twilio</md-option>\n <md-option ng-value="\'sinch\'">Sinch</md-option>\n </md-select>\n <div ng-messages="whatsappAccountForm[\'type\'].$error" ng-show="whatsappAccountForm[\'type\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TYPE_REQUIRED">Type field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.type == \'twilio\' || vm.whatsappAccount.type == \'sinch\'" class="md-block">\n <label translate="WHATSAPP.ACCOUNTSID">AccountSID</label>\n <input type="text" name="accountSid" ng-model="vm.whatsappAccount.accountSid" ng-required="true">\n\n <div ng-messages="whatsappAccountForm[\'accountSid\'].$error" ng-show="whatsappAccountForm[\'accountSid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.ACCOUNTSID_REQUIRED">AccountSID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.type == \'twilio\' || vm.whatsappAccount.type == \'sinch\'" class="md-block">\n <label translate="WHATSAPP.AUTHTOKEN">AuthToken</label>\n <input type="text" name="authToken" ng-model="vm.whatsappAccount.authToken" ng-required="true">\n\n <div ng-messages="whatsappAccountForm[\'authToken\'].$error" ng-show="whatsappAccountForm[\'authToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.AUTHTOKEN_REQUIRED">AuthToken field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container ng-if="vm.whatsappAccount.type == \'sinch\'" class="md-block">\n <label translate="WHATSAPP.BASEURL">Base URL</label>\n\n \x3c!-- <input type="text" name="baseUrl" ng-model="vm.whatsappAccount.baseUrl" ng-required="true"> --\x3e\n\n <md-select name="baseUrl" ng-model="vm.whatsappAccount.baseUrl" required>\n <md-option ng-value="\'https://us1.whatsapp.api.sinch.com\'">US Production</md-option>\n <md-option ng-value="\'https://eu1.whatsapp.api.sinch.com\'">EU Production</md-option>\n </md-select>\n\n <div ng-messages="whatsappAccountForm[\'authToken\'].$error" ng-show="whatsappAccountForm[\'authToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.AUTHTOKEN_REQUIRED">AuthToken field is required</span>\n </div>\n </div>\n </md-input-container>\n\n\n <md-input-container class="md-block">\n <label translate="WHATSAPP.PHONE">phone</label>\n <input type="text" name="phone" ng-model="vm.whatsappAccount.phone" ng-required="true">\n <div ng-messages="whatsappAccountForm[\'phone\'].$error" ng-show="whatsappAccountForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.PHONE_REQUIRED">phone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.whatsappAccount.description">\n\n <div ng-messages="whatsappAccountForm[\'description\'].$error" ng-show="whatsappAccountForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newWhatsappAccount" ng-click="vm.saveWhatsappAccount()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountForm.$invalid || whatsappAccountForm.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newWhatsappAccount" ng-click="vm.addNewWhatsappAccount()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountForm.$invalid" aria-label="ADD" translate="WHATSAPP.ADD_WHATSAPPACCOUNT" translate-attr-aria-label="WHATSAPP.ADD_WHATSAPPACCOUNT">\n ADD WHATSAPPACCOUNT\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newWhatsappAccount" ng-click="vm.deleteWhatsappAccount($event)" aria-label="DELETE" translate translate-attr-aria-label="WHATSAPP.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="WHATSAPP.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/agentadd/agentadd.html",'<md-dialog class="whatsappAccount-dialog" aria-label="whatsappAccount" ng-init="vm.onInit()">\n <form name="whatsappAccountForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="WHATSAPP.AGENTADD_WHATSAPPACCOUNT">Add Agent to whatsappAccount</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/agent/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.AGENT">Agent</label>\n <md-select name="agent" ng-model="vm.agent.agent" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="agent.name" ng-repeat="agent in vm.agents" ng-disabled="agent.canSelect === false">{{ agent.name }}</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'agent\'].$error" ng-show="whatsappAccountFormApp[\'agent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.AGENT_REQUIRED">Agent field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.agent.timeout" min="0" max="2147483" value="30" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'timeout\'].$error" ng-show="whatsappAccountFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="WHATSAPP.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/amazonlex/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.ACCESSKEYID">accesskeyid</label>\n <input type="text" name="accesskeyid" ng-model="vm.amazonlex.accesskeyid" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'accesskeyid\'].$error" ng-show="whatsappAccountFormApp[\'accesskeyid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.ACCESSKEYID_REQUIRED">accesskeyid field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.SECRETACCESSKEY">secretaccesskey</label>\n <input type="text" name="secretaccesskey" ng-model="vm.amazonlex.secretaccesskey" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'secretaccesskey\'].$error" ng-show="whatsappAccountFormApp[\'secretaccesskey\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.SECRETACCESSKEY_REQUIRED">secretaccesskey field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.LEXREGION">lexregion</label>\n <md-select name="lexregion" ng-model="vm.amazonlex.lexregion" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'us-east-1\'">US East (N. Virginia)</md-option>\n <md-option ng-value="\'us-west-2\'">US West (Oregon)</md-option>\n <md-option ng-value="\'eu-west-1\'">EU (Ireland)</md-option>\n <md-option ng-value="\'ap-southeast-2\'">Asia Pacific (Sydney)</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'lexregion\'].$error" ng-show="whatsappAccountFormApp[\'lexregion\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.LEXREGION_REQUIRED">lexregion field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.BOTNAME">botname</label>\n <input type="text" name="botname" ng-model="vm.amazonlex.botname" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'botname\'].$error" ng-show="whatsappAccountFormApp[\'botname\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.BOTNAME_REQUIRED">botname field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.amazonlex.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="WHATSAPP.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="whatsappAccountFormApp[\'welcomemessage\'].$error" ng-show="whatsappAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/autoreply/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TIMES">times</label>\n <md-select name="times" ng-model="vm.autoreply.times" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="2">One Time</md-option>\n <md-option ng-value="0">Always</md-option>\n <md-option ng-value="1">First Message</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'times\'].$error" ng-show="whatsappAccountFormApp[\'times\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TIMES_REQUIRED">times field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TEXT">Text</label>\n <textarea name="text" ng-model="vm.autoreply.text" required></textarea>\n\n <div ng-messages="whatsappAccountFormApp[\'text\'].$error" ng-show="whatsappAccountFormApp[\'text\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TEXT_REQUIRED">Text field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/close/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.DISPOSITION">Disposition</label>\n <input type="text" name="disposition" ng-model="vm.close.disposition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'disposition\'].$error" ng-show="whatsappAccountFormApp[\'disposition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.DISPOSITION_REQUIRED">Disposition field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/dialogflow/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.KEY">Key</label>\n <input type="text" name="key" ng-model="vm.dialogflow.key" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'key\'].$error" ng-show="whatsappAccountFormApp[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.KEY_REQUIRED">Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflow.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean (South Korea)</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pt\'">Portuguese (European)</md-option>\n <md-option ng-value="\'pt-br\'">Portuguese (Nrazilian)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'sv\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-HK\'">Chinese (Hong Kong)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'language\'].$error" ng-show="whatsappAccountFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.LANGUAGE_REQUIRED">language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflow.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="WHATSAPP.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="whatsappAccountFormApp[\'welcomemessage\'].$error" ng-show="whatsappAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.WELCOMEMESSAGE_REQUIRED">welcomemessage field is required</span>\n </div>\n\n\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/dialogflowv2/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.PROJECTID">ProjectID</label>\n <input type="text" name="projectId" ng-model="vm.dialogflowv2.projectId" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'projectId\'].$error" ng-show="whatsappAccountFormApp[\'projectId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.PROJECTID_REQUIRED">ProjectID field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.CLIENTEMAIL">ClientEmail</label>\n <input type="text" name="clientEmail" ng-model="vm.dialogflowv2.clientEmail" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'clientEmail\'].$error" ng-show="whatsappAccountFormApp[\'clientEmail\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.CLIENTEMAIL_REQUIRED">ClientEmail field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.PRIVATEKEY">PrivateKey</label>\n <textarea name="privateKey" ng-model="vm.dialogflowv2.privateKey" required></textarea>\n\n <div ng-messages="whatsappAccountFormApp[\'privateKey\'].$error" ng-show="whatsappAccountFormApp[\'privateKey\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.PRIVATEKEY_REQUIRED">PrivateKey field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.LANGUAGE">language</label>\n <md-select name="language" ng-model="vm.dialogflowv2.language" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'zh-HK\'">Chinese (Cantonese)</md-option>\n <md-option ng-value="\'zh-CN\'">Chinese (Simplified)</md-option>\n <md-option ng-value="\'zh-TW\'">Chinese (Traditional)</md-option>\n <md-option ng-value="\'da\'">Danish</md-option>\n <md-option ng-value="\'nl\'">Dutch</md-option>\n <md-option ng-value="\'en\'">English</md-option>\n <md-option ng-value="\'en-AU\'">English (Australia)</md-option>\n <md-option ng-value="\'en-CA\'">English (Canada)</md-option>\n <md-option ng-value="\'en-GB\'">English (Great Britain)</md-option>\n <md-option ng-value="\'en-IN\'">English (India)</md-option>\n <md-option ng-value="\'en-US\'">English (US)</md-option>\n <md-option ng-value="\'fr\'">French</md-option>\n <md-option ng-value="\'fr-CA\'">French (Canada)</md-option>\n <md-option ng-value="\'fr-FR\'">\'France (France)</md-option>\n <md-option ng-value="\'de\'">German</md-option>\n <md-option ng-value="\'hi\'">Hindi</md-option>\n <md-option ng-value="\'id\'">Indonesian</md-option>\n <md-option ng-value="\'it\'">Italian</md-option>\n <md-option ng-value="\'ja\'">Japanese</md-option>\n <md-option ng-value="\'ko\'">Korean</md-option>\n <md-option ng-value="\'no\'">Norwegian</md-option>\n <md-option ng-value="\'pl\'">Polish</md-option>\n <md-option ng-value="\'pt-BR\'">Portuguese (Brazil)</md-option>\n <md-option ng-value="\'pt-PT\'">Portuguese (Portugal)</md-option>\n <md-option ng-value="\'ru\'">Russian</md-option>\n <md-option ng-value="\'es\'">Spanish</md-option>\n <md-option ng-value="\'es-419\'">Spanish (Latin America)</md-option>\n <md-option ng-value="\'es-ES\'">Spanish (Spain)</md-option>\n <md-option ng-value="\'sw\'">Swedish</md-option>\n <md-option ng-value="\'th\'">Thai</md-option>\n <md-option ng-value="\'tr\'">Turkish</md-option>\n <md-option ng-value="\'uk\'">Ukrainian</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'language\'].$error" ng-show="whatsappAccountFormApp[\'language\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.LANGUAGE_REQUIRED">language field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.WELCOMEMESSAGE">welcomemessage</label>\n <textarea name="welcomemessage" ng-model="vm.dialogflowv2.welcomemessage" md-maxlength="255"></textarea>\n <div class="hint"><span translate="WHATSAPP.HELP.WELCOMEMESSAGE"></span></div>\n\n <div ng-messages="whatsappAccountFormApp[\'welcomemessage\'].$error" ng-show="whatsappAccountFormApp[\'welcomemessage\'].$touched" role="alert">\n\n\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.ERRORS.WELCOMEMESSAGE_MAX_LENGTH" translate-values=\'{max: 255}\'>welcomemessage must have a maximum length equal to 255</span>\n </div>\n\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/gotoif/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.CONDITION">Condition</label>\n <input type="text" name="condition" ng-model="vm.gotoif.condition" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'condition\'].$error" ng-show="whatsappAccountFormApp[\'condition\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.CONDITION_REQUIRED">Condition field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TRUEPRIORITY">truepriority</label>\n <input type="number" name="truepriority" ng-model="vm.gotoif.truepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'truepriority\'].$error" ng-show="whatsappAccountFormApp[\'truepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TRUEPRIORITY_REQUIRED">truepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.TRUEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">truepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.FALSEPRIORITY">falsepriority</label>\n <input type="number" name="falsepriority" ng-model="vm.gotoif.falsepriority" min="1" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'falsepriority\'].$error" ng-show="whatsappAccountFormApp[\'falsepriority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.FALSEPRIORITY_REQUIRED">falsepriority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.FALSEPRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">falsepriority must be a valid greater or equal than</span> <span>1</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/gotop/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.PRIORITY">Priority</label>\n <input type="number" name="priority" ng-model="vm.gotop.priority" min="0" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'priority\'].$error" ng-show="whatsappAccountFormApp[\'priority\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.PRIORITY_REQUIRED">Priority field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.PRIORITY_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Priority must be a valid greater or equal than</span> <span>0</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/interval/dialog.html",'<md-dialog class="interval-dialog" aria-label="New Interval">\n <form name="intervalForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n\n\n <md-input-container class="md-block">\n <label translate="TOOLS.TYPE">Type</label>\n <md-select ng-model="vm.type" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="type" ng-repeat=\'type in vm.types\'>{{ type | ucfirst }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container class="md-block" ng-if="vm.type === \'list\'">\n <label translate="TOOLS.INTERVALS">Intervals</label>\n <md-select ng-model="vm.interval.IntervalId" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="interval.id" ng-repeat="interval in vm.intervals">{{ interval.name }}</md-option>\n </md-select>\n </md-input-container>\n\n \x3c!-- TIMERANGE START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.TIME_RANGE">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <div class="md-block" flex>\n <mdp-time-picker name="timeRangeFrom" mdp-placeholder="FROM" ng-model="vm.timeRangeFrom" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <div ng-messages="intervalForm.timeRangeFrom.$error" ng-show="intervalForm.timeRangeFrom.$touched" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_FROM_INVALID">Time Range From field is invalid</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n <div class="md-block" flex ng-if="vm.timeRangeFrom">\n <mdp-time-picker name="timeRangeTo" mdp-placeholder="TO*" ng-model="vm.timeRangeTo" mdp-format="HH:mm" mdp-auto-switch="true" mdp-disabled="!vm.newInterval && !vm.crudPermissions.canEdit" required>\n <div ng-messages="intervalForm.timeRangeTo.$error" ng-show="intervalForm.timeRangeTo.$invalid" role="alert">\n <div ng-message="format">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_INVALID">Time Range To field is invalid</span>\n </div>\n <div ng-message="required">\n <span translate="TOOLS.ERRORS.TIME_RANGE_TO_REQUIRED">Time Range To field is required</span>\n </div>\n </div>\n </mdp-time-picker>\n </div>\n </div>\n \x3c!-- TIMERANGE END --\x3e\n\n \x3c!-- DAYSOFWEEK START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.WEEK_DAYS">Week Days</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.dayOfWeekFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex class="md-block" ng-if="vm.dayOfWeekFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="dayOfWeekTo" ng-model="vm.dayOfWeekTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="day.value" ng-repeat="day in vm.daysOfWeek"><span translate="TOOLS.{{day.value | uppercase}}">{{ day.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.dayOfWeekTo.$error" ng-show="intervalForm.dayOfWeekTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- DAYSOFWEEK END --\x3e\n\n \x3c!-- MONTHDAY START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTH_DAYS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthDayFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthDayFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthDayTo" ng-model="vm.monthDayTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month" ng-repeat="month in vm.daysOfMonth">{{ month }}</md-option>\n </md-select>\n <div ng-messages="intervalForm.monthDayTo.$error" ng-show="intervalForm.monthDayTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTHDAY END --\x3e\n\n \x3c!-- MONTH START --\x3e\n <label ng-if="vm.type === \'custom\'" translate="TOOLS.MONTHS">Time Range</label>\n <div layout=row ng-if="vm.type === \'custom\'">\n <md-input-container flex layout="column" class="md-block">\n <label translate="TOOLS.FROM">From</label>\n <md-select ng-model="vm.monthFrom" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="null"><span translate="TOOLS.ALWAYS">Always</span></md-option>\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n\n </md-input-container>\n\n <md-input-container flex layout="column" class="md-block" ng-if="vm.monthFrom">\n <label translate="TOOLS.TO">To</label>\n <md-select name="monthTo" ng-model="vm.monthTo" ng-disabled="!vm.newInterval && !vm.crudPermissions.canEdit">\n <md-option ng-value="month.value" ng-repeat="month in vm.monthName"><span translate="TOOLS.{{month.value | uppercase}}">{{ month.value | ucfirst }}</span></md-option>\n </md-select>\n <div ng-messages="intervalForm.monthTo.$error" ng-show="intervalForm.monthTo.$touched" role="alert">\n </div>\n </md-input-container>\n </div>\n \x3c!-- MONTH END --\x3e\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="!vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.saveInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid || intervalForm.$pristine" aria-label="SAVE" translate="TOOLS.SAVE" translate-attr-aria-label="TOOLS.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.newInterval && vm.crudPermissions.canEdit" ng-click="vm.addNewInterval()" class="send-button md-accent md-raised" ng-disabled="intervalForm.$invalid" aria-label="ADD" translate="TOOLS.ADD_INTERVAL" translate-attr-aria-label="TOOLS.ADD_INTERVAL">\n ADD INTERVAL\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/noop/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.VALUE">Value</label>\n <input type="text" name="value" ng-model="vm.noop.value" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'value\'].$error" ng-show="whatsappAccountFormApp[\'value\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/queue/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.QUEUE">Queue</label>\n <md-select name="queue" ng-model="vm.queue.queue" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="queue.name" ng-repeat="queue in vm.queues" ng-disabled="queue.canSelect === false">{{ queue.name }}</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'queue\'].$error" ng-show="whatsappAccountFormApp[\'queue\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.QUEUE_REQUIRED">Queue field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TIMEOUT">Timeout</label>\n <input type="number" name="timeout" ng-model="vm.queue.timeout" min="0" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'timeout\'].$error" ng-show="whatsappAccountFormApp[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TIMEOUT_REQUIRED">Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>0</span>\n </div>\n <div ng-message="max">\n <span translate="WHATSAPP.ERRORS.TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/system/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.COMMAND">Command</label>\n <input type="text" name="command" ng-model="vm.system.command" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="whatsappAccountFormApp[\'command\'].$error" ng-show="whatsappAccountFormApp[\'command\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.COMMAND_REQUIRED">Command field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.VARIABLE">Variable</label>\n <md-select name="variable" ng-model="vm.system.variable" ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'\'">None</md-option>\n <md-option ng-value="variable.name" ng-repeat="variable in vm.variables" ng-disabled="variable.canSelect === false">{{ variable.name }}</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'variable\'].$error" ng-show="whatsappAccountFormApp[\'variable\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.VARIABLE_REQUIRED">Variable field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/apps/tag/dialog.html",'<md-dialog class="whatsappAccount-dialog" aria-label="New WhatsappAccount">\n <form name="whatsappAccountFormApp" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TAG">Tag</label>\n <md-select name="tag" ng-model="vm.tag.tag" autofocus required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="tag.name" ng-repeat="tag in vm.tags" ng-disabled="tag.canSelect === false">{{ tag.name }}</md-option>\n </md-select>\n <div ng-messages="whatsappAccountFormApp[\'tag\'].$error" ng-show="whatsappAccountFormApp[\'tag\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TAG_REQUIRED">Tag field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center" ng-if="vm.crudPermissions.canEdit">\n <md-button type="submit" ng-click="vm.saveWhatsappAccountApp()" class="send-button md-accent md-raised" ng-disabled="whatsappAccountFormApp.$invalid || whatsappAccountFormApp.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/view.html",'<div id="whatsapp-whatsappAccount" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-whatsappAccounts-button md-icon-button" aria-label="Go to whatsappAccounts" ng-click="vm.gotoWhatsappAccounts()" translate translate-attr-aria-label="WHATSAPP.GO_TO_WHATSAPPACCOUNTS">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="whatsappAccount-image" hide-xs>\n <img ng-src="assets/images/business/whatsappAccounts.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.whatsappAccount.id}}\n <span ng-if="vm.whatsappAccount.name">{{vm.whatsappAccount.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="WHATSAPP.CREATED_AT"></span> <span>{{vm.whatsappAccount.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.whatsappAccount, $event)" class="md-fab md-warn md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="WHATSAPP.AGENTADD_WHATSAPPACCOUNT"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveWhatsappAccount()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid) || (notificationForm.$invalid) || (transferForm.$invalid) || (proxyForm.$invalid) || (dispositionForm.$invalid) || (whatsappDispositionsForm.$invalid) || (whatsappCannedAnswersForm.$invalid) || (actionsForm.$invalid) || (interactionsForm.$invalid)" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="WHATSAPP.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="whatsappAccount-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="WHATSAPP.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.whatsappAccount.name" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="WHATSAPP.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.KEY">key</label>\n <input type="text" name="key" ng-model="vm.whatsappAccount.key" md-maxlength="5" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'key\'].$error" ng-show="generalForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.KEY_REQUIRED">key field is required</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.ERRORS.KEY_MAX_LENGTH" translate-values=\'{max: 5}\'>key must have a maximum length equal to 5</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.LIST">List</label>\n <md-select name="ListId" ng-model="vm.whatsappAccount.ListId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="ListId.id" ng-repeat="ListId in vm.lists" ng-disabled="ListId.canSelect === false">{{ ListId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="WHATSAPP.HELP.LIST"></span></div>\n <div ng-messages="generalForm[\'ListId\'].$error" ng-show="generalForm[\'ListId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.LIST_REQUIRED">List field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.type == \'twilio\' || vm.whatsappAccount.type == \'sinch\'" class="md-block">\n <label translate="WHATSAPP.ACCOUNTSID">AccountSID</label>\n <input type="text" name="accountSid" ng-model="vm.whatsappAccount.accountSid" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'accountSid\'].$error" ng-show="generalForm[\'accountSid\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.ACCOUNTSID_REQUIRED">AccountSID field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container ng-if="vm.whatsappAccount.type == \'twilio\' || vm.whatsappAccount.type == \'sinch\'" class="md-block">\n <label translate="WHATSAPP.AUTHTOKEN">AuthToken</label>\n <input type="text" name="authToken" ng-model="vm.whatsappAccount.authToken" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'authToken\'].$error" ng-show="generalForm[\'authToken\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.AUTHTOKEN_REQUIRED">AuthToken field is required</span>\n </div>\n </div>\n </md-input-container>\n\n\n\n <md-input-container ng-if="vm.whatsappAccount.type == \'sinch\'" class="md-block">\n <label translate="WHATSAPP.BASEURL">BaseURL</label>\n\n <md-select name="baseUrl" ng-model="vm.whatsappAccount.baseUrl" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryBaseUrl.url" ng-repeat="mandatoryBaseUrl in vm.baseUrl" ng-disabled="mandatoryBaseUrl.canSelect === false">{{ mandatoryBaseUrl.name }}</md-option>\n </md-select>\n\n <div ng-messages="generalForm[\'baseUrl\'].$error" ng-show="generalForm[\'baseUrl\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.BASEURL_REQUIRED">Base URL field is required</span>\n </div>\n </div>\n </md-input-container>\n\n\n\n <md-input-container class="md-block">\n <label translate="WHATSAPP.PHONE">phone</label>\n <input type="text" name="phone" ng-model="vm.whatsappAccount.phone" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n <div ng-messages="generalForm[\'phone\'].$error" ng-show="generalForm[\'phone\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.PHONE_REQUIRED">phone field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.RECEIVEURL">receiveUrl</label>\n\n <div layout="row" layout-align="center center">\n <button class="md-button md-fab md-mini md-primary" ngclipboard data-clipboard-target="#copytoclipboard-receiveUrl" ngclipboard-success="vm.alert({title: \'copied to clipboard\', msg: e.text });" ngclipboard-error="vm.alert({title: \'error\', msg: \'copy to clipboard failed\'});">\n <md-icon md-font-icon="icon-clipboard-text"></md-icon>\n </button>\n <input class="md-input" type="text" id="copytoclipboard-receiveUrl" name="receiveUrl" ng-value="vm.whatsappAccount.remote + \'/api/whatsapp/accounts/\' + vm.whatsappAccount.id + \'/notify?token=\' + vm.whatsappAccount.token" ng-readonly="true">\n </div>\n <div class="hint"><span translate="WHATSAPP.HELP.RECEIVEURL"></span></div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.WAITFORTHEASSIGNEDAGENT">WaitForTheAssignedAgent</label>\n <input type="number" name="waitForTheAssignedAgent" ng-model="vm.whatsappAccount.waitForTheAssignedAgent" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'waitForTheAssignedAgent\'].$error" ng-show="generalForm[\'waitForTheAssignedAgent\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.WAITFORTHEASSIGNEDAGENT_REQUIRED">WaitForTheAssignedAgent field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="WHATSAPP.ERRORS.WAITFORTHEASSIGNEDAGENT_MUST_BE_LESS_THAN_OR_EQUAL_TO">WaitForTheAssignedAgent must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.whatsappAccount.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="whatsappAccount-detail-form-container notification md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="WHATSAPP.NOTIFICATION">NOTIFICATION</div>\n </div>\n <form name="notificationForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.whatsappAccount.notificationShake" aria-label="notificationShake" ng-disabled="!vm.crudPermissions.canEdit"><span translate="WHATSAPP.NOTIFICATIONSHAKE">notificationShake</span></md-switch>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.whatsappAccount.notificationSound" aria-label="notificationSound" ng-disabled="!vm.crudPermissions.canEdit"><span translate="WHATSAPP.NOTIFICATIONSOUND">notificationSound</span></md-switch>\n </md-input-container>\n <div class="md-block">\n <label class="md-caption grey-fg" translate="WHATSAPP.NOTIFICATIONTEMPLATE">notificationTemplate</label>\n <textarea aria-label="notificationTemplate notificationTemplate" ckeditor="{ skin: \'office2013\', language: \'en\', allowedContent: true, extraPlugins: \'font,colorbutton,autoembed,autocorrect,googlethisterm,pastebase64\', toolbarGroups: [{ name: \'styles\', groups: [\'styles\'] }, { name: \'clipboard\', groups: [\'undo\'] }, { name: \'colors\', groups: [\'colors\'] }, { name: \'basicstyles\', groups: [\'basicstyles\'] }, { name: \'paragraph\', groups: [\'list\', \'indent\', \'align\'] }, { name: \'mode\' }], autocorrect_enabled: true, disableNativeSpellChecker: false, fontSize_sizes: \'8/8pt;9/9pt;10/10pt;11/11pt;12/12pt;14/14pt;16/16pt;18/18pt;20/20pt;22/22pt;24/24pt;26/26pt;28/28pt;36/36pt;48/48pt;72/72pt\', removePlugins: \'magicline\' }" ng-model="vm.whatsappAccount.notificationTemplate"></textarea>\n </div>\n\n </form>\n </div>\n <div class="whatsappAccount-detail-form-container transfer md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="WHATSAPP.TRANSFER">TRANSFER</div>\n </div>\n <form name="transferForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.whatsappAccount.queueTransfer" aria-label="queueTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="WHATSAPP.QUEUETRANSFER">queueTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.queueTransfer == true" class="md-block">\n <label translate="WHATSAPP.QUEUETRANSFERTIMEOUT">queueTransferTimeout</label>\n <input type="number" name="queueTransferTimeout" ng-model="vm.whatsappAccount.queueTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'queueTransferTimeout\'].$error" ng-show="transferForm[\'queueTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.QUEUETRANSFERTIMEOUT_REQUIRED">queueTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="WHATSAPP.ERRORS.QUEUETRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">queueTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.whatsappAccount.agentTransfer" aria-label="agentTransfer" ng-disabled="!vm.crudPermissions.canEdit"><span translate="WHATSAPP.AGENTTRANSFER">agentTransfer</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.agentTransfer == true" class="md-block">\n <label translate="WHATSAPP.AGENTTRANSFERTIMEOUT">agentTransferTimeout</label>\n <input type="number" name="agentTransferTimeout" ng-model="vm.whatsappAccount.agentTransferTimeout" min="1" max="2147483" value="300" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="transferForm[\'agentTransferTimeout\'].$error" ng-show="transferForm[\'agentTransferTimeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.AGENTTRANSFERTIMEOUT_REQUIRED">agentTransferTimeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="WHATSAPP.ERRORS.AGENTTRANSFERTIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">agentTransferTimeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="WHATSAPP.ADVANCED">ADVANCED</span>\n </md-tab-label>\n <md-tab-body>\n <div class="whatsappAccount-detail-form-container proxy md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="WHATSAPP.PROXY">PROXY</div>\n </div>\n <form name="proxyForm" novalidate>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.MOTIONPROXY">MotionProxy</label>\n <input type="url" name="remote" ng-model="vm.whatsappAccount.remote" md-maxlength="255" value="LOCALIP" ng-required="true" autofocus ng-disabled="!vm.crudPermissions.canEdit">\n\n <div class="hint"><span translate="WHATSAPP.HELP.MOTIONPROXY"></span></div>\n <div ng-messages="proxyForm[\'remote\'].$error" ng-show="proxyForm[\'remote\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.MOTIONPROXY_REQUIRED">MotionProxy field is required</span>\n </div>\n <div ng-message="url">\n <span translate="WHATSAPP.ERRORS.MOTIONPROXY_MUST_VALID_URL">MotionProxy must be a valid url http://www.xcally.com</span>\n </div>\n <div ng-message="md-maxlength">\n <span translate="WHATSAPP.ERRORS.MOTIONPROXY_MAX_LENGTH" translate-values=\'{max: 255}\'>MotionProxy must have a maximum length equal to 255</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.TOKEN">token</label>\n <input type="text" name="token" ng-model="vm.whatsappAccount.token" disabled>\n\n <div ng-messages="proxyForm[\'token\'].$error" ng-show="proxyForm[\'token\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.TOKEN_REQUIRED">token field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n <div class="whatsappAccount-detail-form-container disposition md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="WHATSAPP.DISPOSITION">DISPOSITION</div>\n </div>\n <form name="dispositionForm" novalidate>\n <md-input-container class="md-block">\n <md-switch ng-model="vm.whatsappAccount.mandatoryDisposition" aria-label="MandatoryDisposition" ng-disabled="!vm.crudPermissions.canEdit"><span translate="WHATSAPP.MANDATORYDISPOSITION">MandatoryDisposition</span></md-switch>\n </md-input-container>\n <md-input-container ng-if="vm.whatsappAccount.mandatoryDisposition" class="md-block">\n <label translate="WHATSAPP.MANDATORYDISPOSITIONPAUSEID">MandatoryDispositionPauseId</label>\n <md-select name="mandatoryDispositionPauseId" ng-model="vm.whatsappAccount.mandatoryDispositionPauseId" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="mandatoryDispositionPauseId.id" ng-repeat="mandatoryDispositionPauseId in vm.pauses" ng-disabled="mandatoryDispositionPauseId.canSelect === false">{{ mandatoryDispositionPauseId.name }}</md-option>\n </md-select>\n <div class="hint"><span translate="WHATSAPP.HELP.MANDATORYDISPOSITIONPAUSEID"></span></div>\n <div ng-messages="dispositionForm[\'mandatoryDispositionPauseId\'].$error" ng-show="dispositionForm[\'mandatoryDispositionPauseId\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.MANDATORYDISPOSITIONPAUSEID_REQUIRED">MandatoryDispositionPauseId field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="WHATSAPP.DISPOSITIONS">DISPOSITIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div ng-controller="WhatsappAccountDispositionsController as vm_dc" ng-init="vm_dc.init(vm.whatsappAccount, vm.crudPermissions)">\n <div layout="row">\n <div class="column" flex="20">\n <md-card class="mt-0">\n <md-card-content>\n <button layout-align="center center" md-mini-fab ng-click="vm_dc.query.level = null; vm_dc.getDispositions()">\n <div layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n <span class="ph-5">{{ \'TOOLS.ALL_DISPOSITIONS\' | translate }}</span>\n </div>\n </button>\n </md-card-content>\n </md-card>\n <md-card>\n <md-card-content>\n <md-input-container class="md-block" flex-gt-sm="">\n <label translate="TOOLS.SELECT_LEVEL">Select a level</label>\n <md-select placeholder="{{ \'TOOLS.SELECT_LEVEL\' | translate }}" ng-model="vm_dc.query.level" ng-change="vm_dc.getDispositions()">\n <md-option ng-value="null"><em translate="TOOLS.ALL">All</em></md-option>\n <md-option ng-value="key" ng-repeat="(key, value) in vm_dc.levels">{{ value }}</md-option>\n </md-select>\n </md-input-container>\n </md-card-content>\n </md-card>\n </div>\n <div class="whatsappAccount-detail-form-container whatsappdispositions md-background-bg md-whiteframe-1dp" flex="80">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedWhatsappAccountDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="WHATSAPP.DISPOSITIONS">Dispositions</span>\n <ms-search-bar on-search="vm_dc.query.filter = query" on-collapse="vm_dc.query.filter = undefined" debounce="300" direction="down"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditDisposition($event)" aria-label="Add whatsapp dispositions" translate translate-attr-label="WHATSAPP.ADD_DISPOSITION">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedDispositions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedDispositions.length}}\n {{vm_dc.selectedDispositions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedDispositions" csv-label="true" filename="whatsappAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedDispositions($event)" aria-label="delete selected" translate translate-attr-label="WHATSAPP.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_dc.selectedDispositions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getDispositions">\n <tr md-row>\n <th md-column md-order-by="id">{{ \'WHATSAPP.ID\' | translate }}</th>\n <th md-column md-order-by="level">{{ \'TOOLS.LEVEL\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'WHATSAPP.NAME\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'WHATSAPP.DESCRIPTION\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm_dc.dispositions.rows.length">\n <td md-cell colspan="5">\n <div layout="row" layout-align="center center">\n <span translate="WHATSAPP.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="disposition" md-select-id="id" ng-repeat="disposition in vm_dc.dispositions.rows">\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="id ">{{disposition.id}}\n </td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="level ">\n {{ vm_dc.levels[disposition.level] }}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="name ">\n {{disposition.name}}</td>\n <td ng-click="vm_dc.createOrEditDisposition($event, disposition)" md-cell class="description ">\n {{disposition.description}}</td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="WHATSAPP.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="3">\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditDisposition($event, disposition)" translate="TOOLS.EDIT_DISPOSITION">\n Edit Disposition\n </md-button>\n </md-menu-item>\n \x3c!-- SUBACTIONS --\x3e\n \x3c!-- ACTIONS --\x3e\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(disposition, $event)" translate="TOOLS.DELETE_DISPOSITION">\n Delete Disposition\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'WHATSAPP.PAGE\' | translate}}:\', rowsPerPage: \'{{\'WHATSAPP.ROWSPERPAGE\' | translate}}:\', of: \'{{\'WHATSAPP.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.dispositions.count}}" md-on-paginate="vm_dc.getDispositions" md-page-select>\n </md-table-pagination>\n </div>\n </div>\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="WHATSAPP.CANNEDANSWERS">CANNEDANSWERS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="whatsappAccount-detail-form-container whatsappcannedanswers md-background-bg md-whiteframe-1dp">\n <div ng-controller="WhatsappAccountWhatsappCannedAnswersController as vm_dc" ng-init="vm_dc.init(vm.whatsappAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedWhatsappAccountWhatsappCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="WHATSAPP.WHATSAPPCANNEDANSWERS">WhatsappCannedAnswers</span>\n <ms-search-bar on-search="vm_dc.getWhatsappAccountWhatsappCannedAnswers()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <md-button ng-if="vm_dc.crudPermissions.canEdit" class="md-icon-button" ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event)" aria-label="add whatsappCannedAnswer" translate translate-attr-label="WHATSAPP.ADD_WHATSAPPCANNEDANSWER">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedWhatsappAccountWhatsappCannedAnswers.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedWhatsappAccountWhatsappCannedAnswers.length}} {{vm_dc.selectedWhatsappAccountWhatsappCannedAnswers.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedWhatsappAccountWhatsappCannedAnswers" csv-label="true" filename="whatsappAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedWhatsappAccountWhatsappCannedAnswers($event)" aria-label="delete selected" translate translate-attr-label="WHATSAPP.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedWhatsappAccountWhatsappCannedAnswers" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getWhatsappAccountWhatsappCannedAnswers">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'WHATSAPP.ID\' | translate }}\n </th>\n <th md-column md-order-by="key">\n {{ \'WHATSAPP.KEY\' | translate }}\n </th>\n <th md-column md-order-by="value">\n {{ \'WHATSAPP.VALUE\' | translate }}\n </th>\n <th md-column md-order-by="description">\n {{ \'WHATSAPP.DESCRIPTION\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'WHATSAPP.CREATED_AT\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="whatsappCannedAnswer" md-select-id="id" ng-repeat="whatsappCannedAnswer in vm_dc.whatsappAccountWhatsappCannedAnswers.rows">\n <td ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event, whatsappCannedAnswer)" md-cell>\n {{whatsappCannedAnswer.id}}\n </td>\n <td ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event, whatsappCannedAnswer)" md-cell>\n {{whatsappCannedAnswer.key}}\n </td>\n <td ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event, whatsappCannedAnswer)" md-cell>\n {{whatsappCannedAnswer.value}}\n </td>\n <td ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event, whatsappCannedAnswer)" md-cell>\n {{whatsappCannedAnswer.description}}\n </td>\n <td ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event, whatsappCannedAnswer)" md-cell>\n {{ whatsappCannedAnswer.createdAt | formatdate }}\n </td>\n <td md-cell class="actions" ng-if="!vm_dc.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="WHATSAPP.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_dc.crudPermissions.canEdit">\n <md-button ng-click="vm_dc.createOrEditWhatsappAccountWhatsappCannedAnswer($event, whatsappCannedAnswer)" translate="WHATSAPP.EDIT_WHATSAPPCANNEDANSWER">\n Edit WhatsappCannedAnswer\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(whatsappCannedAnswer, $event)" translate="WHATSAPP.DELETE_WHATSAPPCANNEDANSWER">\n Delete WhatsappCannedAnswer\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.whatsappAccountWhatsappCannedAnswers.rows.length">\n <td md-cell colspan="7">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="WHATSAPP.NO_WHATSAPPCANNEDANSWER_AVAILABLE">No whatsappcannedanswer available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'WHATSAPP.PAGE\' | translate}}:\', rowsPerPage: \'{{\'WHATSAPP.ROWSPERPAGE\' | translate}}:\', of: \'{{\'WHATSAPP.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.whatsappAccountWhatsappCannedAnswers.count}}" md-on-paginate="vm_dc.getWhatsappAccountWhatsappCannedAnswers" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="WHATSAPP.ACTIONS">ACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="whatsappAccount-detail-form-container actions md-background-bg md-whiteframe-1dp">\n <div ng-controller="WhatsappAccountActionsController as vm_ac" ng-init="vm_ac.init(vm.whatsappAccount, vm.crudPermissions)" class="content" md-background-bg layout="row" layout-align="start start">\n \x3c!-- SIDENAV --\x3e\n <div class="navigation-simple sidenav main-sidenav md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="20" ng-if="vm_ac.crudPermissions.canEdit">\n \x3c!-- SIDENAV CONTENT --\x3e\n <md-list class="no-padding">\n <md-subheader class="md-no-sticky">\n <span translate="VOICE.APPLICATIONS_LIST">\n Applications List\n </span>\n </md-subheader>\n </md-list>\n <md-divider></md-divider>\n <md-list ng-sortable="vm_ac.list">\n <md-list-item class="handle" ng-repeat="a in vm_ac.apps">\n <md-icon md-font-icon="{{a.icon}}" class="s16"></md-icon>\n <p class="text-truncate" translate="WHATSAPP.{{(a.appAlias || a.appType) | uppercase}}">{{a.appAlias || a.appType}}</p>\n </md-list-item>\n </md-list>\n \x3c!-- / SIDENAV CONTENT --\x3e\n </div>\n \x3c!-- / SIDENAV --\x3e\n <div flex></div>\n \x3c!-- MAIN --\x3e\n <div class="main scrollable md-background-bg md-whiteframe-1dp" ms-scroll layout="column" flex="{{vm_ac.crudPermissions.canEdit ? 75 : 100}}">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_ac.selectedWhatsappAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">Drag & Drop Routing</span>\n <div flex></div>\n <ms-search-bar on-search="vm_ac.query.filter = query" on-collapse="vm_ac.query.filter = undefined" debounce="300"></ms-search-bar>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_ac.selectedWhatsappAccountApps.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_ac.selectedWhatsappAccountApps.length}} {{vm_ac.selectedWhatsappAccountApps.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <md-button ng-if="vm_ac.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_ac.deleteSelectedWhatsappAccountApps($event)" aria-label="delete selected" translate translate-attr-label="WHATSAPP.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n \x3c!-- QUEUES TABLE --\x3e\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm_ac.selectedWhatsappAccountApps">\n <thead md-head>\n <tr md-row>\n <th md-column width="10px"></th>\n <th md-column width="10px">\n <span translate="VOICE.PRIORITY">Priority</span>\n </th>\n <th md-column>\n <span>Type</span>\n </th>\n <th md-column>\n <span>Appdata</span>\n </th>\n <th md-column>\n <span>Interval</span>\n </th>\n <th md-column width="10px"></th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body ng-sortable="vm_ac.applications">\n <tr md-row md-select="app" md-select-id="id" ng-repeat="app in vm_ac.whatsappAccountApps.rows | filter: vm_ac.query.filter">\n <td md-cell>\n <md-icon md-font-icon="icon-drag-vertical" class="s16 handle"></md-icon>\n </td>\n <td md-cell ng-click="vm_ac.editWhatsappAccountApp($event, $index)"><span>{{app.priority}}</span></td>\n <td md-cell ng-click="vm_ac.editWhatsappAccountApp($event, $index)">{{app.app.toLowerCase() === \'agi\' ? \'Cally-Square\' : app.app | ucfirst}}<span ng-if="app.appType.toLowerCase() === \'custom\'">*</span></td>\n <td md-cell ng-click="vm_ac.editWhatsappAccountApp($event, $index)"><span class="text-truncate actionAppData">{{app.appdata}}</span></td>\n <td md-cell ng-click="vm_ac.editInterval($event, $index)">{{app.IntervalId ? \'From List\' : app.interval}}</td>\n <td md-cell>\n <md-button ng-click="vm_ac.editInterval($event, $index)" class="md-icon-button" aria-label="Interval">\n <md-icon md-font-icon="icon-timer"></md-icon>\n <md-tooltip>\n {{app.IntervalId ? \'From List\' : (app.interval === \'*,*,*,*\' ? \'Always\' : \'Custom\')}}\n </md-tooltip>\n </md-button>\n </td>\n <td md-cell class="actions" ng-if="!vm_ac.crudPermissions.readOnly">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="VOICE.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editWhatsappAccountApp($event, $index)" translate="VOICE.EDIT_APP">\n Edit App\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canEdit">\n <md-button ng-click="vm_ac.editInterval($event, $index)" translate="VOICE.EDIT_INTERVAL">\n Edit Interval\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_ac.crudPermissions.canDelete">\n <md-button ng-click="vm_ac.deleteConfirm(app, $index, $event)" translate="VOICE.DELETE_APP">\n Delete App\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-hide="vm_ac.whatsappAccountApps.rows.length">\n <td md-cell colspan="7">\n <span class="text-boxed-light" translate="VOICE.NO_APPS_AVAILABLE">No apps available</span>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n \x3c!-- / QUEUES TABLE --\x3e\n\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n <md-tab>\n <md-tab-label>\n <span translate="WHATSAPP.INTERACTIONS">INTERACTIONS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="whatsappAccount-detail-form-container interactions md-background-bg md-whiteframe-1dp">\n <div ng-controller="WhatsappAccountInteractionsController as vm_dc" ng-init="vm_dc.init(vm.whatsappAccount, vm.crudPermissions, vm.userProfile)">\n <md-toolbar class="md-table-toolbar md-default" ng-hide="vm_dc.selectedWhatsappAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead" translate="WHATSAPP.INTERACTIONS">Interactions</span>\n <ms-search-bar on-search="vm_dc.getWhatsappAccountInteractions()" query="vm_dc.query" display-on="vm_dc.isSearchBarVisible" ng-disabled="vm_dc.query.search" debounce="300" direction="down" min-chars="5"></ms-search-bar>\n <div flex></div>\n <ms-quick-filter filters="vm_dc.quickFilters" query="vm_dc.query" search="vm_dc.getWhatsappAccountInteractions()"></ms-quick-filter>\n <div layout="column">\n <md-button class="md-icon-button advanced-search" ng-class="{ \'md-fab md-mini md-accent-bg\': vm_dc.query.search }" aria-label="Filter" translate translate-attr-aria-label="DASHBOARDS.FILTER" ng-click="vm_dc.openAdvancedSearch()">\n <md-icon md-font-icon="{{ vm_dc.query.search ? \'icon-filter\' : \'icon-filter-outline\' }}" ng-class="{ \'blink\': vm_dc.query.search }"></md-icon>\n </md-button>\n </div>\n <md-button class="md-icon-button" ng-click="vm_dc.getWhatsappAccountInteractions()" aria-label="refresh Interactions" translate translate-attr-label="WHATSAPP.REFRESH_INTERACTIONS">\n <md-icon md-font-icon="icon-refresh"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-toolbar class="md-table-toolbar md-accent" ng-show="vm_dc.selectedWhatsappAccountInteractions.length">\n <div class="md-toolbar-tools">\n <span class="md-subhead">{{vm_dc.selectedWhatsappAccountInteractions.length}} {{vm_dc.selectedWhatsappAccountInteractions.length > 1 ? \'items\' : \'item\'}} selected</span>\n <div flex></div>\n <button class="md-icon-button" ng-csv="vm_dc.exportSelectedWhatsappAccountInteractions" csv-label="true" filename="whatsappAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button ng-if="vm_dc.crudPermissions.canDelete" class="md-icon-button" ng-click="vm_dc.deleteSelectedWhatsappAccountInteractions($event)" aria-label="delete selected" translate translate-attr-label="WHATSAPP.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-table-container class="font-size-12">\n <table md-table md-row-select multiple ng-model="vm_dc.selectedWhatsappAccountInteractions" md-progress="vm_dc.promise">\n <thead md-head md-order="vm_dc.query.sort" md-on-reorder="vm_dc.getWhatsappAccountInteractions">\n <tr md-row>\n <th md-column md-order-by="id">\n {{ \'WHATSAPP.ID\' | translate }}\n </th>\n <th md-column class="no-padding">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column class="no-padding">\n </th>\n <th md-column md-order-by="contactName">\n {{ \'WHATSAPP.CONTACT\' | translate }}\n </th>\n <th md-column md-order-by="createdAt">\n {{ \'WHATSAPP.STARTEDAT\' | translate }}\n </th>\n <th md-column md-order-by="lastMsgAt">\n {{ \'WHATSAPP.LASTMESSAGE\' | translate }}\n </th>\n <th md-column md-order-by="closed">\n {{ \'WHATSAPP.STATUS\' | translate }}\n </th>\n <th md-column>\n {{ \'WHATSAPP.AGENT\' | translate }}\n </th>\n <th md-column md-order-by="tag">\n {{ \'WHATSAPP.TAGS\' | translate }}\n </th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row md-select="interaction" md-select-id="id" ng-repeat="interaction in vm_dc.whatsappAccountInteractions.rows" ng-class="{\'text-bold text-italic\': interaction.unreadMessages > 0}">\n <td md-cell>\n {{interaction.id}}\n </td>\n <td md-cell class="no-padding">\n <div ng-if="!interaction.closed && interaction.Users.length">\n <md-icon md-font-icon="icon-eye" class="s16"></md-icon>\n <md-tooltip>\n <span ng-repeat="user in interaction.Users">{{ user.fullname | translate }}\n <span ng-if="!$last">, </span>\n </span>\n </md-tooltip>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.unreadMessages > 0" layout="row" layout-align="start center">\n <span class="badge white-fg md-primary-bg" layout-margin>{{ interaction.unreadMessages}}</span>\n </div>\n </td>\n <td md-cell class="no-padding">\n <div ng-if="interaction.attach">\n <md-icon md-font-icon="icon-paperclip" class="s16"></md-icon>\n </div>\n </td>\n <td md-cell privacy ng-cloak>\n <div layout="column" layout-align="start start">\n <span class="font-size-12 text-truncate contact-text" ng-class="{\'margin-bottom-0\' : interaction.contactInfo}" layout-margin>{{ interaction.contactName }}</span>\n <span ng-if="interaction.contactInfo" class="font-size-12 text-truncate contact-text margin-top-0" layout-margin>{{ interaction.contactInfo }}</span>\n </div>\n </td>\n <td md-cell>\n {{ interaction.createdAt | formatdate }}\n </td>\n <td md-cell>\n <div layout="row">\n <span>\n <md-icon md-font-icon="{{interaction.lastMsgDirection == \'in\' ? \'icon-arrow-down-bold blue-grey-800-fg\' : \'icon-arrow-up-bold blue-grey-300-fg\'}}"></md-icon>\n </span>\n <div layout="column" layout-align="center center">\n <span class="text-truncate">{{ interaction.lastMsgAt | formatdate }}</span>\n </div>\n </div>\n </td>\n <td md-cell>\n <span ng-if="interaction.closed === 0" class="green-fg">\n {{ \'WHATSAPP.OPENED\' | translate }}\n <span ng-if="interaction.substatus">\n - {{ interaction.substatus }}\n </span>\n </span>\n <span ng-if="interaction.closed === 1" class="red-fg">\n {{ \'WHATSAPP.CLOSED\' | translate }}\n <span ng-if="interaction.disposition">\n - {{ interaction.thirdDisposition || interaction.secondDisposition || interaction.disposition }}\n </span>\n <md-tooltip class="multiline">\n <div layout="column">\n <div layout="column">\n <span>{{ \'DASHBOARDS.CLOSED_AT\' | translate}}:</span>\n <span class="text-bold">{{ interaction.closedAt | formatdate }}</span>\n </div>\n <div ng-if="interaction.disposition" layout="column">\n <span>{{ \'DASHBOARDS.DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.disposition }}</span>\n </div>\n <div ng-if="interaction.secondDisposition" layout="column">\n <span>{{ \'DASHBOARDS.SECOND_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.secondDisposition }}</span>\n </div>\n <div ng-if="interaction.thirdDisposition" layout="column">\n <span>{{ \'DASHBOARDS.THIRD_LEVEL_DISPOSITION\' | translate}}:</span>\n <span class="text-bold">{{ interaction.thirdDisposition }}</span>\n </div>\n </div>\n </md-tooltip>\n </span>\n </td>\n\n <td md-cell>\n {{interaction.Owner.name}}\n </td>\n <td md-cell>\n <div ng-if="interaction.Tags.length">\n <md-tooltip md-direction="left" layout="row">\n <span ng-repeat="tag in interaction.Tags">{{tag.name}}<span ng-if="!$last">, </span></span>\n </md-tooltip>\n <md-icon md-font-icon="icon-tag" ng-style="{\'color\': interaction.Tags.length == 1 && interaction.Tags[0].color }">\n </md-icon>\n </div>\n </td>\n <td md-cell class="actions">\n <md-menu>\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="WHATSAPP.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm_dc.spywhatsappInteraction($event, interaction)" translate="WHATSAPP.SPYINTERACTION">\n Spy Interaction\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.currentUser.role === \'admin\' || vm_dc.userProfile.downloadOmnichannelInteractions">\n <md-button class="md-primary" ng-click="vm_dc.whatsappInteractionDownload(interaction, $event)" translate="WHATSAPP.DOWNLOAD_INTERACTION">\n Download\n </md-button>\n </md-menu-item>\n <md-menu-item ng-if="vm_dc.crudPermissions.canDelete">\n <md-button ng-click="vm_dc.deleteConfirm(interaction, $event)" translate="WHATSAPP.DELETE_INTERACTION">\n Delete Interaction\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </td>\n </tr>\n <tr md-row ng-if="!vm_dc.whatsappAccountInteractions.rows.length">\n <td md-cell colspan="12">\n <div layout="row" layout-align="center center">\n <span class="text-boxed-light" translate="WHATSAPP.NO_INTERACTION_AVAILABLE">No interaction available</span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </md-table-container>\n <md-table-pagination md-label="{page: \'{{\'WHATSAPP.PAGE\' | translate}}:\', rowsPerPage: \'{{\'WHATSAPP.ROWSPERPAGE\' | translate}}:\', of: \'{{\'WHATSAPP.OF\' | translate}}\'}" md-limit="vm_dc.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm_dc.query.page" md-total="{{vm_dc.whatsappAccountInteractions.count}}" md-on-paginate="vm_dc.getWhatsappAccountInteractions" md-page-select></md-table-pagination>\n </div>\n\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/edit/whatsappCannedAnswers/dialog.html",'<md-dialog class="whatsappCannedAnswer-dialog" aria-label="New WhatsappCannedAnswer">\n <form name="whatsappCannedAnswerForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.KEY">Key</label>\n <input type="" name="key" ng-model="vm.whatsappCannedAnswer.key" md-maxlength="255" ng-required="true" autofocus>\n\n <div ng-messages="whatsappCannedAnswerForm[\'key\'].$error" ng-show="whatsappCannedAnswerForm[\'key\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.KEY_REQUIRED">Key field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.VALUE">Value</label>\n <textarea name="value" ng-model="vm.whatsappCannedAnswer.value" required></textarea>\n\n <div ng-messages="whatsappCannedAnswerForm[\'value\'].$error" ng-show="whatsappCannedAnswerForm[\'value\'].$touched" role="alert">\n\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.VALUE_REQUIRED">Value field is required</span>\n </div>\n\n\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.whatsappCannedAnswer.description">\n\n <div ng-messages="whatsappCannedAnswerForm[\'description\'].$error" ng-show="whatsappCannedAnswerForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newWhatsappCannedAnswer" ng-click="vm.saveWhatsappCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="whatsappCannedAnswerForm.$invalid || whatsappCannedAnswerForm.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newWhatsappCannedAnswer" ng-click="vm.addNewWhatsappCannedAnswer()" class="send-button md-accent md-raised" ng-disabled="whatsappCannedAnswerForm.$invalid" aria-label="ADD" translate="WHATSAPP.ADD_WHATSAPPCANNEDANSWER" translate-attr-aria-label="WHATSAPP.ADD_WHATSAPPCANNEDANSWER">\n ADD WHATSAPPCANNEDANSWER\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newWhatsappCannedAnswer" ng-click="vm.deleteWhatsappCannedAnswer($event)" aria-label="DELETE" translate translate-attr-aria-label="WHATSAPP.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="WHATSAPP.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappAccounts/whatsappAccounts.html",'<div id="whatsappAccounts" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-whatsapp" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="WHATSAPP.WHATSAPPACCOUNTS">WhatsappAccounts</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="WHATSAPP.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedWhatsappAccounts.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedWhatsappAccounts =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="WHATSAPP.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-whatsappAccounts-count">\n <span>{{vm.selectedWhatsappAccounts.length}}</span>\n <span translate="WHATSAPP.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="WHATSAPP.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllWhatsappAccounts()" translate="WHATSAPP.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectWhatsappAccounts()" translate="WHATSAPP.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedWhatsappAccounts" csv-label="true" filename="whatsappAccounts.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedWhatsappAccounts($event)" aria-label="delete selected" translate translate-attr-label="WHATSAPP.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- WHATSAPPACCOUNT TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedWhatsappAccounts" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getWhatsappAccounts">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'WHATSAPP.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'WHATSAPP.NAME\' | translate }}</th>\n <th md-column md-order-by="key">{{ \'WHATSAPP.KEY\' | translate }}</th>\n <th md-column md-order-by="ListId">{{ \'WHATSAPP.LIST\' | translate }}</th>\n <th md-column md-order-by="type">{{ \'WHATSAPP.TYPE\' | translate }}</th>\n <th md-column md-order-by="phone">{{ \'WHATSAPP.PHONE\' | translate }}</th>\n <th md-column md-order-by="description">{{ \'WHATSAPP.DESCRIPTION\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.whatsappAccounts.rows.length">\n <td md-cell colspan="8">\n <div layout="row" layout-align="center center">\n <span translate="WHATSAPP.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="whatsappAccount" md-select-id="id" ng-repeat="whatsappAccount in vm.whatsappAccounts.rows">\n <td md-cell ng-if="whatsappAccount.userpic"><img class="avatar" alt="{{whatsappAccount.name}}" ng-src="api/users/{{whatsappAccount.id}}/avatar" /></td>\n <td md-cell ng-if="!whatsappAccount.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{whatsappAccount.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="id ">{{whatsappAccount.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="name ">{{whatsappAccount.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="key ">{{whatsappAccount.key}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="ListId ">{{ (vm.lists | filter : {\'id\':whatsappAccount.ListId} : true)[0].name }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="type ">{{ vm.arraytype[whatsappAccount.type].option }}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="phone ">{{whatsappAccount.phone}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappAccount, ev) : vm.createOrEditWhatsappAccount($event, whatsappAccount)" md-cell class="description ">{{whatsappAccount.description}}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="WHATSAPP.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(whatsappAccount, $event )" translate="WHATSAPP.EDIT_WHATSAPPACCOUNT">\n Edit WhatsappAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.interactionsgoto(whatsappAccount, $event )" translate="WHATSAPP.INTERACTIONS_WHATSAPPACCOUNT">\n Interactions WhatsappAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(whatsappAccount, $event )" translate="WHATSAPP.AGENTADD_WHATSAPPACCOUNT">\n AgentAdd WhatsappAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(whatsappAccount, $event )" translate="WHATSAPP.DELETE_WHATSAPPACCOUNT">\n Delete WhatsappAccount\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'WHATSAPP.PAGE\' | translate}}:\', rowsPerPage: \'{{\'WHATSAPP.ROWSPERPAGE\' | translate}}:\', of: \'{{\'WHATSAPP.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.whatsappAccounts.count}}" md-on-paginate="vm.getWhatsappAccounts" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / WHATSAPPACCOUNT TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD WHATSAPPACCOUNT BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-whatsappAccount-button" ng-click="vm.createOrEditWhatsappAccount($event)" aria-label="add whatsappAccount" translate translate-attr-aria-label="WHATSAPP.ADD_WHATSAPPACCOUNT">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD WHATSAPPACCOUNT BUTTON --\x3e\n</div>'),e.put("app/main/apps/whatsapp/views/whatsappQueues/create/dialog.html",'<md-dialog class="whatsappQueue-dialog" aria-label="New WhatsappQueue">\n <form name="whatsappQueueForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.whatsappQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus ng-disabled="!vm.newWhatsappQueue">\n\n <div class="hint"><span translate="WHATSAPP.HELP.NAME"></span></div>\n <div ng-messages="whatsappQueueForm[\'name\'].$error" ng-show="whatsappQueueForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="WHATSAPP.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.whatsappQueue.strategy" required>\n <md-option ng-value="\'beepall\'">Beepall</md-option>\n <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n </md-select>\n <div ng-messages="whatsappQueueForm[\'strategy\'].$error" ng-show="whatsappQueueForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.whatsappQueue.timeout" min="1" max="2147483" value="10" ng-required="true">\n\n <div ng-messages="whatsappQueueForm[\'timeout\'].$error" ng-show="whatsappQueueForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="WHATSAPP.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.whatsappQueue.description">\n\n <div ng-messages="whatsappQueueForm[\'description\'].$error" ng-show="whatsappQueueForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center" ng-if="!vm.crudPermissions.readOnly">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && !vm.newWhatsappQueue" ng-click="vm.saveWhatsappQueue()" class="send-button md-accent md-raised" ng-disabled="whatsappQueueForm.$invalid || whatsappQueueForm.$pristine" aria-label="SAVE" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n\n <md-button type="submit" ng-if="vm.crudPermissions.canEdit && vm.newWhatsappQueue" ng-click="vm.addNewWhatsappQueue()" class="send-button md-accent md-raised" ng-disabled="whatsappQueueForm.$invalid" aria-label="ADD" translate="WHATSAPP.ADD_WHATSAPPQUEUE" translate-attr-aria-label="WHATSAPP.ADD_WHATSAPPQUEUE">\n ADD WHATSAPPQUEUE\n </md-button>\n </div>\n <div layout="row">\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete && !vm.newWhatsappQueue" ng-click="vm.deleteWhatsappQueue($event)" aria-label="DELETE" translate translate-attr-aria-label="WHATSAPP.DELETE">\n <md-icon md-font-icon="icon-delete"></md-icon>\n <md-tooltip><span translate="WHATSAPP.DELETE">DELETE</span></md-tooltip>\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappQueues/edit/agentadd/agentadd.html",'<md-dialog class="whatsappQueue-dialog" aria-label="whatsappQueue" ng-init="vm.onInit()">\n <form name="whatsappQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="WHATSAPP.AGENTADD_WHATSAPPQUEUE">Add Agent to whatsappQueue</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveAgents()" class="send-button md-accent md-raised" ng-disabled="!vm.pendingChanges" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappQueues/edit/teamadd/teamadd.html",'<md-dialog class="whatsappQueue-dialog" aria-label="whatsappQueue" ng-init="vm.onInit()">\n <form name="whatsappQueueForm" ng-cloak>\n <md-toolbar>\n <div class="md-toolbar-tools">\n <h2 translate="WHATSAPP.TEAMS_ASSOCIATION">Teams Association</h2>\n <span flex></span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content>\n <ms-dual-multiselect options="vm.dualMultiselectOptions" read-only="!vm.crudPermissions.canEdit"></ms-dual-multiselect>\n </md-dialog-content>\n <md-dialog-actions layout="row" layout-align="end center" ng-if="vm.crudPermissions.canEdit">\n <span></span>\n <md-button layout-align="end center" type="submit" ng-click="vm.saveTeams()" ng-disabled="!vm.pendingChanges" class="send-button md-accent md-raised" aria-label="SAVE" translate="STAFF.SAVE" translate-attr-aria-label="STAFF.SAVE">\n SAVE\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/main/apps/whatsapp/views/whatsappQueues/edit/view.html",'<div id="whatsapp-whatsappQueue" class="page-layout simple tabbed" layout="column">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="start center">\n <div class="white-fg" layout="row" layout-align="start center" flex>\n <md-button class="goto-whatsappQueues-button md-icon-button" aria-label="Go to whatsappQueues" ng-click="vm.gotoWhatsappQueues()" translate translate-attr-aria-label="WHATSAPP.GO_TO_WHATSAPPQUEUES">\n <md-icon md-font-icon="icon-arrow-left"></md-icon>\n </md-button>\n\n <div layout="row" layout-align="start center">\n\n <div class="whatsappQueue-image" hide-xs>\n <img ng-src="assets/images/business/whatsappQueues.jpg">\n </div>\n\n <div layout="column" layout-align="start start">\n <div class="h2">\n #{{vm.whatsappQueue.id}}\n <span ng-if="vm.whatsappQueue.name">{{vm.whatsappQueue.name}}</span>\n </div>\n <div class="subtitle secondary-text">\n <span translate="WHATSAPP.CREATED_AT"></span> <span>{{vm.whatsappQueue.createdAt | date:\'medium\'}}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.teamadddialog(vm.whatsappQueue, $event)" class="md-fab md-orange-500-bg md-icon-button" aria-label="teamadd">\n <md-tooltip><span translate="WHATSAPP.TEAMADD_WHATSAPPQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-multiple-plus"></md-icon>\n </md-button>\n </div>\n\n <div ng-cloak>\n <md-button ng-click="vm.agentadddialog(vm.whatsappQueue, $event)" class="md-fab md-purple-500-bg md-icon-button" aria-label="agentadd">\n <md-tooltip><span translate="WHATSAPP.AGENTADD_WHATSAPPQUEUE"></span></md-tooltip>\n <md-icon md-font-icon="icon-account-plus"></md-icon>\n </md-button>\n </div>\n <div>\n <md-button type="submit" ng-click="vm.saveWhatsappQueue()" ng-if="vm.crudPermissions.canEdit" class="send-button md-accent md-raised" ng-disabled="(generalForm.$invalid)" translate="WHATSAPP.SAVE" translate-attr-aria-label="WHATSAPP.SAVE">\n SAVE\n </md-button>\n </div>\n\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content">\n\n <md-tabs md-selected="vm.selectedTab" md-stretch-tabs="always" flex layout-fill md-dynamic-height>\n <md-tab>\n <md-tab-label>\n <span translate="WHATSAPP.SETTINGS">SETTINGS</span>\n </md-tab-label>\n <md-tab-body>\n <div class="whatsappQueue-detail-form-container general md-background-bg md-whiteframe-1dp">\n <div class="pb-16" layout="row" layout-align="start center">\n <div class="h2 secondary-text" translate="WHATSAPP.GENERAL">GENERAL</div>\n </div>\n <form name="generalForm" novalidate>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.whatsappQueue.name" ng-pattern="/^[A-Za-z0-9\\.\\_]+$/i" ng-required="true" autofocus disabled>\n\n <div class="hint"><span translate="WHATSAPP.HELP.NAME"></span></div>\n <div ng-messages="generalForm[\'name\'].$error" ng-show="generalForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="WHATSAPP.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.STRATEGY">Strategy</label>\n <md-select name="strategy" ng-model="vm.whatsappQueue.strategy" required ng-disabled="!vm.crudPermissions.canEdit">\n <md-option ng-value="\'beepall\'">Beepall</md-option>\n <md-option ng-value="\'rrmemory\'">RR Memory</md-option>\n </md-select>\n <div ng-messages="generalForm[\'strategy\'].$error" ng-show="generalForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.STRATEGY_REQUIRED">Strategy field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.AGENT_TIMEOUT">Agent_Timeout</label>\n <input type="number" name="timeout" ng-model="vm.whatsappQueue.timeout" min="1" max="2147483" value="10" ng-required="true" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'timeout\'].$error" ng-show="generalForm[\'timeout\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.AGENT_TIMEOUT_REQUIRED">Agent_Timeout field is required</span>\n </div>\n <div ng-message="min">\n <span translate="WHATSAPP.ERRORS.AGENT_TIMEOUT_MUST_BE_GREATER_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>1</span>\n </div>\n <div ng-message="max">\n <span translate="WHATSAPP.ERRORS.AGENT_TIMEOUT_MUST_BE_LESS_THAN_OR_EQUAL_TO">Agent_Timeout must be a valid greater or equal than</span> <span>2147483</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="WHATSAPP.DESCRIPTION">Description</label>\n <input type="text" name="description" ng-model="vm.whatsappQueue.description" ng-disabled="!vm.crudPermissions.canEdit">\n\n <div ng-messages="generalForm[\'description\'].$error" ng-show="generalForm[\'description\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="WHATSAPP.ERRORS.DESCRIPTION_REQUIRED">Description field is required</span>\n </div>\n </div>\n </md-input-container>\n\n </form>\n </div>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n</div>'),e.put("app/main/apps/whatsapp/views/whatsappQueues/whatsappQueues.html",'<div id="whatsappQueues" class="page-layout simple left-sidenav inner-sidenav">\n\n \x3c!-- HEADER --\x3e\n <div class="header md-accent-bg" layout="row" layout-align="space-between center">\n\n \x3c!-- APP TITLE --\x3e\n <div layout="row" layout-align="start center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-icon">\n <md-icon md-font-icon="icon-whatsapp" class="s24"></md-icon>\n </span>\n <span class="logo-text" translate="WHATSAPP.WHATSAPPQUEUES">WhatsappQueues</span>\n </div>\n </div>\n \x3c!-- / APP TITLE --\x3e\n\n <div layout="row">\n \x3c!-- SEARCH --\x3e\n <div class="search-input-wrapper" layout="row" layout-align="start center">\n <label for="search">\n <md-icon md-font-icon="icon-magnify"></md-icon>\n </label>\n <md-input-container md-no-float class="m-0">\n <input id="search" placeholder="Search for anyone" type="text" ng-model="vm.query.filter" ng-model-options="{ debounce: 1000 }" translate translate-attr-placeholder="WHATSAPP.SEARCH_FOR_ANYONE">\n </md-input-container>\n </div>\n \x3c!-- / SEARCH --\x3e\n </div>\n </div>\n \x3c!-- / HEADER --\x3e\n\n \x3c!-- SELECTED BAR --\x3e\n <div ng-show="vm.selectedWhatsappQueues.length > 0" class="selected-bar header animate-slide-down md-accent-bg" layout="row" layout-align="start center">\n\n <div class="close-button-wrapper" ng-click="vm.selectedWhatsappQueues =[]">\n <md-button layout="row" layout-align="start center">\n <md-icon md-font-icon="icon-arrow-left" class="mr-8"></md-icon>\n <span translate="WHATSAPP.BACK">Back</span>\n </md-button>\n </div>\n\n <div flex layout="row" layout-align="space-between center">\n\n <div>\n <span class="selected-whatsappQueues-count">\n <span>{{vm.selectedWhatsappQueues.length}}</span>\n <span translate="WHATSAPP.SELECTED">selected</span>\n </span>\n\n <md-menu class="select-menu" ng-if="!vm.currentThread">\n <md-button class="md-icon-button" ng-click="$mdOpenMenu($event)" aria-label="multi select toggle" translate translate-attr-aria-label="WHATSAPP.MULTI_SELECT_TOGGLE">\n <md-icon md-font-icon="icon-menu-down"></md-icon>\n </md-button>\n <md-menu-content width="3">\n <md-menu-item>\n <md-button ng-click="vm.selectAllWhatsappQueues()" translate="WHATSAPP.SELECT_ALL">\n Select all\n </md-button>\n </md-menu-item>\n <md-menu-item>\n <md-button ng-click="vm.deselectWhatsappQueues()" translate="WHATSAPP.SELECT_NONE">\n Select none\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n\n <div class="multi-select-actions">\n <button class="md-icon-button" ng-csv="vm.exportSelectedWhatsappQueues" csv-label="true" filename="whatsappQueues.csv">\n <md-icon md-font-icon="icon-file-excel"></md-icon>\n </button>\n <md-button class="md-icon-button" ng-if="vm.crudPermissions.canDelete" ng-click="vm.deleteSelectedWhatsappQueues($event)" aria-label="delete selected" translate translate-attr-label="WHATSAPP.DELETE_SELECTED">\n <md-icon md-font-icon="icon-delete"></md-icon>\n </md-button>\n </div>\n </div>\n </div>\n \x3c!-- / SELECTED BAR --\x3e\n\n \x3c!-- CONTENT --\x3e\n <div class="content" md-background-bg layout="row" layout-align="start start">\n\n \x3c!-- MAIN --\x3e\n <div class="main scrollable" ms-scroll>\n\n\n \x3c!-- WHATSAPPQUEUE TABLE --\x3e\n <md-card>\n <md-table-container>\n <table md-table md-row-select multiple ng-model="vm.selectedWhatsappQueues" md-progress="vm.promise">\n <thead md-head md-order="vm.query.sort" md-on-reorder="vm.getWhatsappQueues">\n <tr md-row>\n <th md-column ng-if="vm.table == \'users\' || vm.table == \'agents\'" width="20px"></th>\n <th md-column md-order-by="id">{{ \'WHATSAPP.ID\' | translate }}</th>\n <th md-column md-order-by="name">{{ \'WHATSAPP.NAME\' | translate }}</th>\n <th md-column md-order-by="strategy">{{ \'WHATSAPP.STRATEGY\' | translate }}</th>\n <th md-column width="10px"></th>\n </tr>\n </thead>\n <tbody md-body>\n <tr md-row ng-hide="vm.whatsappQueues.rows.length">\n <td md-cell colspan="4">\n <div layout="row" layout-align="center center">\n <span translate="WHATSAPP.NO_AVAILABLE_INFO">No Available Info</span>\n </div>\n </td>\n </tr>\n <tr md-row md-select="whatsappQueue" md-select-id="id" ng-repeat="whatsappQueue in vm.whatsappQueues.rows">\n <td md-cell ng-if="whatsappQueue.userpic"><img class="avatar" alt="{{whatsappQueue.name}}" ng-src="api/users/{{whatsappQueue.id}}/avatar" /></td>\n <td md-cell ng-if="!whatsappQueue.userpic && (vm.table == \'users\' || vm.table == \'agents\')"><img class="avatar" alt="{{whatsappQueue.name}}" ng-src="assets/images/avatars/profile.png" /></td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappQueue, ev) : vm.createOrEditWhatsappQueue($event, whatsappQueue)" md-cell class="id ">{{whatsappQueue.id}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappQueue, ev) : vm.createOrEditWhatsappQueue($event, whatsappQueue)" md-cell class="name ">{{whatsappQueue.name}}</td>\n <td ng-click="vm.crudPermissions.readOnly || (vm.crudPermissions.canDelete && !vm.crudPermissions.canEdit) ? vm.editstate(whatsappQueue, ev) : vm.createOrEditWhatsappQueue($event, whatsappQueue)" md-cell class="strategy ">{{ vm.arraystrategy[whatsappQueue.strategy].option }}</td>\n\n\n <td md-cell class="actions">\n\n <md-menu>\n\n <md-button class="md-icon-button" aria-label="More" translate translate-attr-aria-label="WHATSAPP.MORE" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canEdit">\n\n <md-button ng-click="vm.editstate(whatsappQueue, $event )" translate="WHATSAPP.EDIT_WHATSAPPQUEUE">\n Edit WhatsappQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.teamadddialog(whatsappQueue, $event )" translate="WHATSAPP.TEAMADD_WHATSAPPQUEUE">\n teamadd WhatsappQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.agentadddialog(whatsappQueue, $event )" translate="WHATSAPP.AGENTADD_WHATSAPPQUEUE">\n agentadd WhatsappQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item ng-if="vm.crudPermissions.canDelete">\n\n <md-button ng-click="vm.deleteconfirm(whatsappQueue, $event )" translate="WHATSAPP.DELETE_WHATSAPPQUEUE">\n Delete WhatsappQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n \x3c!-- SUBACTIONS --\x3e\n\n\n \x3c!-- ACTIONS --\x3e\n\n <md-menu-item>\n\n <md-button ng-click="vm.gotorealtimegoto(whatsappQueue, $event )" translate="WHATSAPP.GOTOREALTIME_WHATSAPPQUEUE">\n goToRealtime WhatsappQueue\n </md-button>\n\n </md-menu-item>\n\n\n\n </md-menu-content>\n\n </md-menu>\n </td>\n\n\n </tr>\n </tbody>\n </table>\n </md-table-container>\n\n <md-table-pagination md-label="{page: \'{{\'WHATSAPP.PAGE\' | translate}}:\', rowsPerPage: \'{{\'WHATSAPP.ROWSPERPAGE\' | translate}}:\', of: \'{{\'WHATSAPP.OF\' | translate}}\'}" md-limit="vm.query.limit" md-limit-options="[10, 15, 20, 50, 100, 250]" md-page="vm.query.page" md-total="{{vm.whatsappQueues.count}}" md-on-paginate="vm.getWhatsappQueues" md-page-select></md-table-pagination>\n </md-card>\n \x3c!-- / WHATSAPPQUEUE TABLE --\x3e\n \x3c!-- NO RESULTS --\x3e\n\n \x3c!-- / NO RESULTS --\x3e\n </div>\n \x3c!-- / MAIN --\x3e\n\n </div>\n \x3c!-- / CONTENT --\x3e\n\n \x3c!-- ADD WHATSAPPQUEUE BUTTON --\x3e\n <md-button ng-if="vm.crudPermissions.canEdit" class="md-fab md-accent" id="add-whatsappQueue-button" ng-click="vm.createOrEditWhatsappQueue($event)" aria-label="add whatsappQueue" translate translate-attr-aria-label="WHATSAPP.ADD_WHATSAPPQUEUE">\n <md-icon md-font-icon="icon-plus"></md-icon>\n </md-button>\n \x3c!-- / ADD WHATSAPPQUEUE BUTTON --\x3e\n</div>'),e.put("app/navigation/layouts/horizontal-navigation/navigation.html",'<div layout="row" layout-align="start center">\n <ms-navigation-horizontal></ms-navigation-horizontal>\n</div>'),e.put("app/navigation/layouts/vertical-navigation-fullwidth-toolbar-2/navigation.html",'<ms-navigation class="scrollable" folded="vm.folded" ms-scroll="vm.msScrollOptions"></ms-navigation>'),e.put("app/navigation/layouts/vertical-navigation/navigation.html",'<md-toolbar class="navigation-header md-whiteframe-1dp" layout="row" layout-align="space-between center">\n <div class="logo" layout="row" layout-align="start center">\n <span class="logo-image"><img src="/api/settings/1/logo" alt="logo" /></span>\n \x3c!-- <span class="logo-image"><img src="assets/images/logos/whisker_32x32.png" alt="motion_whisker_32x32" /></span> --\x3e\n <span class="logo-text text-truncate">{{vm.getLogo() | uppercase}}</span>\n </div>\n <md-icon class="fold-toggle s18" md-font-icon="icon-backburger" hide show-gt-sm ng-click="vm.toggleMsNavigationFolded()"></md-icon>\n</md-toolbar>\n\n<ms-navigation class="scrollable" folded="vm.folded" ms-scroll="vm.msScrollOptions"></ms-navigation>'),e.put("app/quick-panel/quick-panel.html",'<md-content>\n <md-tabs md-no-pagination md-swipe-content md-stretch-tabs="always">\n <md-tab>\n <md-tab-label>\n <span translate="QUICKPANEL.TODAY">TODAY</span>\n </md-tab-label>\n <md-tab-body>\n <md-content class="today-tab scrollable" ms-scroll ng-include="\'app/quick-panel/tabs/today/today-tab.html\'"></md-content>\n </md-tab-body>\n </md-tab>\n <md-tab ng-if="vm.currentUser.allowmessenger || vm.currentUser.role !== \'agent\'" ng-include="\'app/quick-panel/tabs/chat/chat-tab.html\'" ng-controller="ChatInternalController as vm_ct" ng-init="vm_ct.init(vm.license)" md-on-deselect="vm_ct.user = undefined">\n <md-tab-label>\n <div ng-if="vm.unreadTotalMessages" class="md-accent-bg unread-message-count-chat">{{vm.unreadTotalMessages}}</div>\n <span>MESSENGER</span>\n </md-tab-label>\n <md-tab-body>\n <md-content class="chat-tab scrollable" ms-scroll ng-include="\'app/quick-panel/tabs/chat/chat-tab.html\'"></md-content>\n </md-tab-body>\n </md-tab>\n <md-tab ng-if="vm.currentUser.allowmessenger || vm.currentUser.role !== \'agent\'" ng-include="\'app/quick-panel/tabs/groups/group-tab.html\'" ng-controller="ChatGroupController as vm_cg" ng-init="vm_cg.init(vm.license)" md-on-deselect="vm_cg.group = undefined">\n <md-tab-label>\n <div ng-if="vm.unreadTotalGroupMessages" class="md-accent-bg unread-message-count-chat">{{vm.unreadTotalGroupMessages}}</div>\n <span translate="QUICKPANEL.GROUPS">GROUPS</span>\n </md-tab-label>\n <md-tab-body>\n <md-content class="group-tab scrollable" ms-scroll ng-include="\'app/quick-panel/tabs/groups/group-tab.html\'"></md-content>\n </md-tab-body>\n </md-tab>\n </md-tabs>\n</md-content>'),e.put("app/quick-panel/tabs/activity/activity-tab.html",'<md-list class="friends">\n <md-subheader class="md-no-sticky">\n <span translate="QUICKPANEL.FRIENDS">Friends</span>\n </md-subheader>\n\n <md-list-item class="friend md-3-line" ng-repeat="friend in vm.activities.friends">\n <img ng-src="{{friend.avatar}}" class="md-avatar" alt="{{friend.name}}" />\n\n <div class="status {{friend.status}}"></div>\n\n <div ng-if="contact.unread" class="md-accent-bg unread-message-count">{{contact.unread}}</div>\n\n <div class="md-list-item-text">\n <h3 class="message">{{friend.message}}</h3>\n <p class="time">{{friend.time}}</p>\n </div>\n </md-list-item>\n</md-list>\n\n<md-divider></md-divider>\n\n<md-list class="servers">\n <md-subheader class="md-no-sticky">\n <span translate="QUICKPANEL.APP_SERVERS">Application Servers</span>\n </md-subheader>\n\n <md-list-item class="server md-3-line" ng-repeat="server in vm.activities.servers">\n <md-icon md-font-icon="icon-checkbox-blank-circle" class="s16 status" ng-class="server.status"></md-icon>\n\n <div class="md-list-item-text">\n <h3>{{server.location}}</h3>\n <p>{{server.detail}}</p>\n </div>\n </md-list-item>\n</md-list>\n\n<md-divider></md-divider>\n\n<md-list class="stats">\n <md-subheader class="md-no-sticky">\n <span translate="QUICKPANEL.USER_STATS">User Stats</span>\n </md-subheader>\n\n <md-list-item class="stat md-2-line" ng-repeat="stat in vm.activities.stats">\n <div class="md-list-item-text">\n <span>{{stat.title}} ({{stat.current}} / {{stat.total}})</span>\n <md-progress-linear ng-class="stat.status" md-mode="determinate" value="{{stat.percent}}"></md-progress-linear>\n </div>\n </md-list-item>\n</md-list>'),e.put("app/quick-panel/tabs/chat/chat-tab.html",'<div class="main animate-slide-left" ng-hide="vm_ct.user">\n <md-subheader class="md-no-sticky">\n <div class="search" layout="row" layout-align="space-between center">\n <md-icon md-font-icon="icon-magnify" class="icon search-icon"></md-icon>\n <input class="search-input" ng-model="vm_ct.search.$" type="text" placeholder="Search by fullname.." translate translate-attr-placeholder="QUICKPANEL.SEARCH" flex>\n <md-select ng-model="vm_ct.search.online" class="height-50 no-padding no-margin" aria-label="Chat Tab Search">\n <md-option ng-value="undefined">All</md-option>\n <md-option ng-value="true">\n <md-icon md-font-icon="icon-checkbox-blank-circle" class="s12 green-fg"></md-icon>Online\n </md-option>\n <md-option ng-value="false">\n <md-icon md-font-icon="icon-checkbox-blank-circle" class="s12 red-fg"></md-icon>Offline\n </md-option>\n </md-select>\n </div>\n </md-subheader>\n \x3c!-- <select ng-model="vm_ct.filterOnline" class="height-50 no-padding no-margin">\n <option ng-value="undefined">All</option>\n <option ng-value="true"><md-icon md-font-icon="icon-checkbox-blank-circle" class="s12 green-fg"></md-icon>Online</option>\n <option ng-value="false"><md-icon md-font-icon="icon-checkbox-blank-circle" class="s12 red-fg"></md-icon>Offline</option>\n </select> --\x3e\n <md-divider></md-divider>\n <md-list class="recent">\n <md-list-item class="contact md-3-line" ng-if="user.id != vm_ct.currentUser.id" ng-repeat="user in vm_ct.users.rows | orderBy: \'-lastMessageAt\' | filter:vm_ct.search" ng-click="vm_ct.toggleChat(user)">\n <md-divider></md-divider>\n <img ng-src="{{user.userpic ? \'api/users/\' + user.id + \'/avatar\' : \'assets/images/avatars/profile.png\'}}" class="md-avatar" alt="{{user.fullname}}" />\n <div class="status" ng-class="{true: \'online\', false: \'offline\'}[user.online]"></div>\n <div ng-if="vm_ct.unreadMessage[user.id]" class="md-accent-bg unread-message-count">\n {{vm_ct.unreadMessage[user.id]}}</div>\n <div class="md-list-item-text">\n <div layout="row">\n <h3>{{user.fullname}}</h3>\n <md-icon ng-if="!user.allowmessenger && user.role === \'agent\'" class="s16 margin-left-5" ng-style="{\'color\': \'red\' }" md-font-icon="icon-block-helper"></md-icon>\n </div>\n <p>{{user.name}} <{{user.internal}}></p>\n <div layout="row" layout-align="start center">\n <md-icon ng-if="!user.lastMessage.read && user.lastMessage.FromId === vm_ct.currentUser.id" class="s16 no-margin" md-font-icon="icon-check"></md-icon>\n <md-icon ng-if="user.lastMessage.read && user.lastMessage.FromId === vm_ct.currentUser.id" class="s16 no-margin" md-font-icon="icon-check-all md-accent"></md-icon>\n <p>{{user.lastMessage.body | limitTo:20 }}{{user.lastMessage.body.length > 20 ? \'...\' : \'\' }}</p>\n <span flex></span>\n <p class="last-message" ng-if="user.lastMessageAt != vm_ct.standardDate">\n {{user.lastMessageAt | formatdate}}</p>\n </div>\n </div>\n </md-list-item>\n </md-list>\n</div>\n\n<div class="chat animate-slide-right" ng-show="vm_ct.user" layout="column">\n <md-toolbar class="md-accent">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n\n <div layout="row" layout-align="start center">\n <md-button class="md-icon-button" ng-click="vm_ct.toggleChat()" aria-label="Back" translate translate-attr-aria-label="QUICKPANEL.BACK">\n <md-icon md-font-icon="icon-keyboard-backspace"></md-icon>\n </md-button>\n <h4>\n <span>{{vm_ct.user.fullname}}</span>\n </h4>\n </div>\n\n <div layout="row" layout-align="end center">\n <md-button ng-if="vm_ct.license.webrtc && vm_ct.currentUser.role === \'agent\' && vm_ct.currentUser.showWebBar === 2 && vm_ct.user.role === \'agent\'" class="md-icon-button" aria-label="Call" translate translate-attr-aria-label="QUICKPANEL.CALL" ng-click="vm_ct.webcall(vm_ct.user.name)">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n <md-menu ng-if="vm_ct.currentUser.phoneBarRemoteControl && vm_ct.currentUser.role === \'agent\' && vm_ct.currentUser.showWebBar === 0 && vm_ct.user.role === \'agent\'">\n <md-button class="md-icon-button" aria-label="Call" translate translate-attr-aria-label="QUICKPANEL.CALL" ng-click="$mdOpenMenu($event)">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-disabled="!vm_ct.currentUser.phoneBarRemoteControl">\n <md-button ng-click="vm_ct.call(vm_ct.user.name)">\n {{\'DASHBOARDS.CALL_NUMBER\' | translate}} ({{vm_ct.user.name}})\n </md-button>\n </md-menu-item>\n <md-menu-item ng-disabled="!vm_ct.currentUser.phoneBarRemoteControl">\n <md-button ng-click="vm_ct.transfer(vm_ct.user.name)">\n {{\'DASHBOARDS.TRANSFER_NUMBER\' | translate}} ({{vm_ct.user.name}})\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </div>\n\n </md-toolbar>\n <md-content flex layout-paddings ms-scroll id="chat-dialog">\n <div layout="row" ng-repeat="message in vm_ct.user.messages.rows" class="md-padding message-row" ng-class="message.FromId === vm_ct.currentUser.id ? \'user\' : \'contact\'">\n <img ng-if="message.FromId === vm_ct.user.id" ng-src="{{vm_ct.user.userpic ? \'api/users/\' + vm_ct.user.id + \'/avatar\' : \'assets/images/avatars/profile.png\'}}" class="avatar" alt="{{vm_ct.user.fullname}}" />\n <img ng-if="message.FromId === vm_ct.currentUser.id" class="avatar" ng-src="{{vm_ct.currentUser.userpic ? \'api/users/\' + vm_ct.currentUser.id + \'/avatar\' : \'assets/images/avatars/profile.png\'}}">\n <div class="bubble" flex>\n <span class="message" ng-bind-html="message.body | embed:{linkTarget:\'_blank\',emoji:false,fontSmiley:false}"></span>\n <div layout="row" layout-align="end center">\n <span class="time secondary-text">{{message.createdAt | formatdate }}</span>\n <md-icon ng-if="!message.read && message.FromId === vm_ct.currentUser.id" class="s16 margin-5" md-font-icon="icon-check"></md-icon>\n <md-icon ng-if="message.read && message.FromId === vm_ct.currentUser.id" class="s16 margin-5" md-font-icon="icon-check-all md-accent"></md-icon>\n </div>\n </div>\n </div>\n </md-content>\n\n <form ng-submit="vm_ct.reply()" layout="row" class="reply" layout-align="start center">\n <textarea ng-keyup="$event.keyCode == 13 && !vm_ct.disabled? vm_ct.reply() : null" flex ng-model="vm_ct.replyMessage" placeholder="Type and hit enter to send message" translate translate-attr-placeholder="QUICKPANEL.REPLY_PLACEHOLDER" autofocus></textarea>\n\n <md-button ng-disable="vm_ct.disabled" class="md-fab md-mini" type="submit" aria-label="Send message" translate translate-attr-aria-label="QUICKPANEL.SEND_MESSAGE">\n <md-icon md-font-icon="icon-send"></md-icon>\n </md-button>\n </form>\n</div>'),e.put("app/quick-panel/tabs/groups/create/dialog.html",'<md-dialog class="group-dialog" aria-label="New ChatGroup">\n <form name="groupForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog(null)">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n \x3c!--START Error--\x3e\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n \x3c!--END Error--\x3e\n\n \x3c!--START NAME--\x3e\n <md-input-container class="md-block">\n <label translate="QUICKPANEL.NAME">Name</label>\n <input type="text" name="name" ng-model="vm.group.name" required autofocus>\n <div ng-messages="groupForm[\'name\'].$error" ng-show="groupForm[\'name\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="QUICKPANEL.ERRORS.NAME_REQUIRED">Name field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="QUICKPANEL.ERRORS.NAME_MUST_VALID_PATTERN" translate-values="{ regex: \'/^[A-Za-z0-9\\.\\_]+$/i\' }">Name must be valid pattern </span>\n </div>\n </div>\n </md-input-container>\n \x3c!--END NAME--\x3e\n\n \x3c!--START Members--\x3e\n <md-input-container class="md-block">\n <label translate="QUICKPANEL.MEMBERS">Members</label>\n <md-contact-chips ng-model="vm.group.members" md-contacts="vm.querySearch($query)" md-contact-name="name" md-contact-image="image" md-require-match="true" md-highlight-flags="i" placeholder="{{\'QUICKPANEL.MEMBERS\' | translate}}">\n </md-contact-chips>\n <div ng-messages="groupForm[\'strategy\'].$error" ng-show="groupForm[\'strategy\'].$touched" role="alert">\n <div ng-message="required">\n <span translate="QUICKPANEL.ERRORS.MEMBERS_REQUIRED">Members field is required</span>\n </div>\n </div>\n </md-input-container>\n \x3c!--END Members--\x3e\n\n \x3c!--START Writing--\x3e\n <md-input-container class="md-block">\n <md-switch ng-model="vm.group.write" aria-label="Write">\n {{\'QUICKPANEL.ENABLE_WRITING\' | translate}}\n </md-switch>\n </md-input-container>\n \x3c!--END Writing--\x3e\n\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-if="vm.newChatGroup" ng-click="vm.saveChatGroup()" class="send-button md-accent md-raised" ng-disabled="groupForm.$invalid || groupForm.$pristine || (vm.group.members.length < 1)" aria-label="SAVE" translate="QUICKPANEL.SAVE" translate-attr-aria-label="QUICKPANEL.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/quick-panel/tabs/groups/group-tab.html",'<div class="main animate-slide-left" ng-if="!vm_cg.group">\n <md-subheader>\n <div layout="row">\n \x3c!-- START Search --\x3e\n <div class="search" layout="row" layout-align="start center" flex>\n <md-icon md-font-icon="icon-magnify" class="icon search-icon"></md-icon>\n <input ng-model="vm_cg.search" type="text" translate translate-attr-placeholder="QUICKPANEL.SEARCH" flex>\n </div>\n \x3c!-- END Search --\x3e\n\n \x3c!-- START New Group --\x3e\n <md-button ng-if="vm_cg.currentUser.role !== \'agent\'" class="md-icon-button" aria-label="New" ng-click="vm_cg.addGroup(null, $event)">\n <md-icon md-font-icon="icon-account-multiple-plus" class="icon"></md-icon>\n </md-button>\n \x3c!-- END New Group --\x3e\n </div>\n </md-subheader>\n\n <md-divider></md-divider>\n\n \x3c!-- START Groups --\x3e\n <md-list class="recent no-padding">\n \x3c!-- START Group --\x3e\n <md-list-item class="contact" ng-repeat="group in vm_cg.groupsToArray() | filter:vm_cg.search" ng-click="vm_cg.toggleChat(group)">\n <img src="assets/images/avatars/group.png" class="md-avatar" alt="{{group.name}}" />\n <div ng-if="group.unreadGroupMessages" class="md-accent-bg unread-message-count">{{group.unreadGroupMessages}}</div>\n <div class="md-list-item-text">\n <div layout="row">\n <h3>{{group.name}}</h3>\n </div>\n </div>\n\n <md-button ng-if="vm_cg.currentUser.role !== \'agent\'" class="md-secondary md-icon-button" aria-label="Remove" ng-click="vm_cg.deleteGroup(group, $event)">\n <md-icon md-font-icon="icon-delete" class="icon s18"></md-icon>\n </md-button>\n\n <md-divider ng-if="!$last"></md-divider>\n </md-list-item>\n <md-list-item>\n <div ng-if="!vm_cg.groupsToArray().length" layout="row" layout-align="center center" flex>\n <span>{{\'QUICKPANEL.NO_AVAILABLE_GROUPS\' | translate}}</span>\n </div>\n </md-list-item>\n \x3c!-- END Group --\x3e\n </md-list>\n \x3c!-- END Groups --\x3e\n</div>\n\n<div class="chat animate-slide-right" ng-if="vm_cg.group" layout="column">\n <md-toolbar class="md-accent">\n <div class="md-toolbar-tools " layout="row" layout-align="space-between center">\n <md-button class="md-icon-button" ng-click="vm_cg.back()" aria-label="Back" translate translate-attr-aria-label="QUICKPANEL.BACK" flex="15">\n <md-icon md-font-icon="icon-keyboard-backspace"></md-icon>\n </md-button>\n <h4 flex layout-align="start center" style="max-height: 100%; overflow-y:auto;">\n <span translate="QUICKPANEL.YOU" translate-values=\'{participants: vm_cg.participants}\'></span>\n </h4>\n\n <div layout="row" layout-align="end center">\n <md-button ng-if="vm_cg.license.webrtc && vm_cg.currentUser.role === \'agent\' && vm_cg.currentUser.showWebBar === 2 && vm_cg.user.role === \'agent\' && vm_cg.user.showWebBar === 2" class="md-icon-button" aria-label="Call" translate translate-attr-aria-label="QUICKPANEL.CALL" ng-click="vm_cg.webcall(vm_cg.user.name)">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n </div>\n </div>\n\n </md-toolbar>\n <md-content flex layout-paddings ms-scroll id="chat-group-dialog">\n <div layout="row" ng-repeat="message in vm_cg.group.messages" class="message-row" ng-class="message.FromId === vm_cg.currentUser.id ? \'user\' : \'contact\'">\n <img ng-if="message.FromId !== vm_cg.currentUser.id" ng-src="{{\'api/users/\' + message.FromId + \'/avatar\'}}" class="avatar" alt="{{vm_cg.user.fullname}}" />\n <img ng-if="message.FromId === vm_cg.currentUser.id" class="avatar" ng-src="{{vm_cg.currentUser.userpic ? \'api/users/\' + vm_cg.currentUser.id + \'/avatar\' : \'assets/images/avatars/profile.png\'}}">\n <div class="bubble" flex>\n <div ng-if="message.FromId !== vm_cg.currentUser.id">\n <span style="font-size: 12px;">{{vm_cg.group.membersByKeys[message.FromId].fullname}}</span>\n </div>\n <span class="message" ng-bind-html="message.body | embed:{linkTarget:\'_blank\',emoji:false,fontSmiley:false}"></span>\n <div layout="row" layout-align="end center">\n <span class="time secondary-text" style="margin-top: 0px;">{{message.createdAt | formatdate }}</span>\n <md-icon ng-if="message.FromId === vm_cg.currentUser.id" class="s16 margin-5" style="cursor: pointer;" md-font-icon="icon-information-outline" ng-click="vm_cg.showMessageInfo($event, message)"></md-icon>\n </div>\n </div>\n </div>\n </md-content>\n\n <form ng-if="(vm_cg.currentUser.role !== \'agent\') || vm_cg.group.write" ng-submit="vm_cg.reply()" layout="row" class="reply" layout-align="start center">\n <textarea ng-keyup="$event.keyCode == 13 ? vm_cg.reply() : null" flex ng-model="vm_cg.replyMessage" placeholder="Type and hit enter to send message" translate translate-attr-placeholder="QUICKPANEL.REPLY_PLACEHOLDER" autofocus></textarea>\n\n <md-button class="md-fab md-mini" type="submit" aria-label="Send message" translate translate-attr-aria-label="QUICKPANEL.SEND_MESSAGE">\n <md-icon md-font-icon="icon-send"></md-icon>\n </md-button>\n </form>\n</div>'),e.put("app/quick-panel/tabs/groups/info/dialog.html",'<md-dialog class="group-dialog" aria-label="New ChatGroup">\n <form name="groupForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ vm.title | translate }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog(null)">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div ng-if="vm.data.messages[$index].FromId !== vm.data.messages[$index].ToId" ng-repeat="user in vm.data.users" layout-margin>\n <div layout="row">\n <div layout="row" layout-align="start center">\n <img ng-src="{{user.userpic ? \'api/users/\' + user.id + \'/avatar\' : \'assets/images/avatars/profile.png\'}}" class="avatar" alt="{{user.fullname}}" />\n <span>{{user.fullname}}</span>\n </div>\n <div layout="row" layout-align="end center" flex>\n <md-icon class="s16 margin-5" md-font-icon="{{vm.data.messages[$index].read ? \'icon-check-all md-accent\' : \'icon-check\'}}"></md-icon>\n <span class="time secondary-text">{{vm.data.messages[$index].updatedAt | formatdate }}</span>\n </div>\n </div>\n <div>\n <md-divider ng-if="!$last"></md-divider>\n </div>\n </div>\n </md-dialog-content>\n </form>\n</md-dialog>'),e.put("app/quick-panel/tabs/today/today-tab.html",'<md-list class="date">\n <md-subheader class="md-no-sticky"><span translate="QUICKPANEL.TODAY">Today</span></md-subheader>\n <md-list-item class="md-display-1 md-2-line">\n <div class="secondary-text">\n <div translate="QUICKPANEL.{{ (vm.date | date:\'EEEE\').toUpperCase() }}"></div>\n <div layout="row" layout-align="start start">\n <span> {{vm.date | date:\'d\'}}</span>\n <span class="md-subhead">th</span>\n <span translate="QUICKPANEL.{{ (vm.date | date:\'MMMM\').toUpperCase() }}"></span>\n </div>\n </div>\n </md-list-item>\n</md-list>\n\n\x3c!-- <md-divider></md-divider>\n\n<md-list>\n <md-subheader class="md-no-sticky"><span translate="QUICKPANEL.EVENTS">Events</span></md-subheader>\n\n <md-list-item class="md-2-line" ng-repeat="event in vm.events" ng-click="dummyFunction()">\n <div class="md-list-item-text">\n <h3>{{event.title}}</h3>\n\n <p>{{event.detail}}</p>\n </div>\n </md-list-item>\n</md-list>\n\n<md-divider></md-divider>\n\n<md-list>\n <md-subheader class="md-no-sticky"><span translate="QUICKPANEL.NOTES">Notes</span></md-subheader>\n <md-list-item class="md-2-line" ng-repeat="note in vm.notes" ng-click="dummyFunction()">\n <div class="md-list-item-text">\n <h3>{{note.title}}</h3>\n\n <p>{{note.detail}}</p>\n </div>\n </md-list-item>\n</md-list>\n\n<md-divider></md-divider>\n\n<md-list>\n <md-subheader class="md-no-sticky"><span translate="QUICKPANEL.QUICK_SETTINGS">Quick Settings</span></md-subheader>\n\n <md-list-item>\n <h3 translate="QUICKPANEL.NOTIFICATIONS">Notifications</h3>\n <md-switch class="md-secondary" ng-model="vm.settings.notify" aria-label="Notifications" translate\n translate-attr-aria-label="QUICKPANEL.NOTIFICATIONS"></md-switch>\n </md-list-item>\n\n <md-list-item>\n <h3 translate="QUICKPANEL.CLOUD_SYNC">Cloud Sync</h3>\n <md-switch class="md-secondary" ng-model="vm.settings.cloud" aria-label="Cloud Sync" translate\n translate-attr-aria-label="QUICKPANEL.CLOUD_SYNC"></md-switch>\n </md-list-item>\n\n <md-list-item>\n <h3 translate="QUICKPANEL.RETRO_THRUSTERS">Retro Thrusters</h3>\n <md-switch class="md-secondary md-warn" ng-model="vm.settings.retro" aria-label="Retro Thrusters" translate\n translate-attr-aria-label="QUICKPANEL.RETRO_THRUSTERS"></md-switch>\n </md-list-item>\n</md-list> --\x3e'),e.put("app/reset/reset.html",'<div id="reset-password" class="flex-scrollable" layout="column" ng-init="vm.onInit()" ms-scroll>\n <div id="reset-password-form-wrapper" layout="column" layout-align="center center">\n <div id="reset-password-form" class="md-whiteframe-8dp">\n\n <img src="/api/settings/1/logo_login" alt="logo_login" class="logo_login" />\n\n <div class="title" translate="RESETPASSWORD.TITLE">Reset your password</div>\n\n <form name="resetPasswordForm" novalidate>\n\n <md-input-container class="md-block" md-no-float>\n <input type="password" name="password" ng-model="vm.form.password" ng-pattern="vm.passwordPattern" placeholder="Password" translate translate-attr-placeholder="RESETPASSWORD.PASSWORD" required>\n <div ng-messages="resetPasswordForm.password.$error" role="alert">\n <div ng-message="required">\n <span translate="RESETPASSWORD.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="RESETPASSWORD.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n </div>\n </md-input-container>\n\n <md-input-container class="md-block" md-no-float>\n <input type="password" name="passwordConfirm" ng-model="vm.form.passwordConfirm" placeholder="Password (Confirm)" match-password="password" translate translate-attr-placeholder="RESETPASSWORD.PASSWORD_CONFIRM">\n <div ng-messages="resetPasswordForm.passwordConfirm.$error" role="alert">\n <div ng-message="passwordMatch">\n <span translate="TOOLBAR.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n </div>\n </div>\n </md-input-container>\n\n <md-button type="button" ng-click="vm.resetPassword()" class="md-raised md-accent submit-button" aria-label="UPDATE MY PASSWORD" ng-disabled="resetPasswordForm.$invalid || resetPasswordForm.$pristine" translate="RESETPASSWORD.UPDATE_PASSWORD" translate-attr-aria-label="RESETPASSWORD.UPDATE_PASSWORD">\n RESET MY PASSWORD\n </md-button>\n </form>\n </div>\n </div>\n</div>'),e.put("app/toolbar/changepassword/changepassword.html",'<md-dialog class="user-dialog" aria-label="{{vm.name}}">\n <form name="changePasswordForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-accent md-hue-2">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span ng-if="vm.reset" class="title" translate="TOOLBAR.RESETPASSWORD">Reset Password</span>\n <span ng-if="!vm.reset" class="title" translate="TOOLBAR.CHANGEPASSWORD">Change Password</span>\n <md-button ng-if="!vm.reset" class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n <md-dialog-content ms-scroll>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n <md-input-container class="md-block">\n <label translate="TOOLBAR.OLD_PASSWORD">Old Password</label>\n <input type="password" name="oldPassword" ng-model="vm.oldPassword" placeholder="Password" translate translate-attr-placeholder="TOOLBAR.OLD_PASSWORD" required>\n <div ng-messages="changePasswordForm.oldPassword.$error" role="alert">\n <div ng-message="required">\n <span translate="TOOLBAR.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLBAR.NEW_PASSWORD">New Password</label>\n <input type="password" name="password" ng-model="vm.password" placeholder="Password" ng-pattern="vm.passwordPattern" translate translate-attr-placeholder="TOOLBAR.NEW_PASSWORD" required>\n <div ng-messages="changePasswordForm.password.$error" role="alert">\n <div ng-message="required">\n <span translate="TOOLBAR.ERRORS.PASSWORD_REQUIRED">Password field is required</span>\n </div>\n <div ng-message="pattern">\n <span translate="TOOLBAR.ERRORS.SECURE_PASSWORD_PATTERN">Must contain at least 8 characters, with a minimum of 1 lowercase letter, 1 uppercase letter, 1 numeric character and 1 special character ~!?*@#$%^&-_=+[{]}.</span>\n </div>\n <div ng-message="oldPasswordMatch">\n <span translate="TOOLBAR.ERRORS.PASSWORD_OLDPASSWORD_MATCH">New password must be different from old one</span>\n </div>\n </div>\n </md-input-container>\n <md-input-container class="md-block">\n <label translate="TOOLBAR.CONFIRM_PASSWORD">Confirm Password</label>\n <input type="password" match-password="password" name="confirmPassword" ng-model="confirmPassword">\n <div ng-messages="changePasswordForm.confirmPassword.$error" role="alert" multiple>\n <div ng-message="required">\n <span translate="TOOLBAR.ERRORS.CONFIRM_REQUIRED">Confirm field is required</span>\n </div>\n <div ng-message="passwordMatch">\n <span translate="TOOLBAR.ERRORS.CONFIRM_NOT_MATCH">Your password did not match</span>\n </div>\n </div>\n </md-input-container>\n <div class="error-list">\n <div ng-repeat="error in vm.errors" class="error" layout="row" layout-align="space-between center">\n <div>\n <span class="message">{{error.message}}</span>\n <span class="type">({{error.type}})</span>\n </div>\n <md-button class="md-icon-button">\n <md-icon md-font-icon="icon-alert-box" aria-label="alert error" class="s16"></md-icon>\n </md-button>\n </div>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions layout="row" layout-align="space-between center">\n <div layout="row" layout-align="start center">\n <md-button type="submit" ng-click="vm.savePassword()" class="send-button md-accent md-raised" ng-disabled="changePasswordForm.$invalid || changePasswordForm.$pristine" aria-label="SAVE" translate="TOOLBAR.SAVE" translate-attr-aria-label="TOOLBAR.SAVE">\n SAVE\n </md-button>\n </div>\n </md-dialog-actions>\n </form>\n</md-dialog>'),e.put("app/toolbar/layouts/vertical-navigation/toolbar.html",'<div layout="row" layout-align="start center">\n <div layout="row" layout-align="start center" flex>\n <md-button id="navigation-toggle" class="md-icon-button" ng-click="vm.toggleSidenav(\'navigation\')" hide-gt-sm aria-label="Toggle navigation" translate translate-attr-aria-label="TOOLBAR.TOGGLE_NAVIGATION">\n <md-icon md-font-icon="icon-menu" class="icon"></md-icon>\n </md-button>\n\n <ms-shortcuts ng-if="!vm.isAgent()"></ms-shortcuts>\n\n <div class="toolbar-separator"></div>\n\n <div ng-if="vm.license.demo" class="blink md-padding">\n <span class="md-warn-fg" translate="TOOLBAR.TRIAL_VERSION">Trial Version</span>\n </div>\n\n <div ng-if="vm.isAgent()" class="logo" layout-padding-left-8 layout="row" layout-align="start center">\n <span class="logo-image"><img src="/api/settings/1/logo" alt="logo" /></span>\n <span ng-show="vm.isAgent() && (vm.user.showWebBar != 2)" class="logo-text text-truncate">{{ vm.getLogo() |\n uppercase }}</span>\n </div>\n\n \x3c!-- phonebar directive WebRtc type--\x3e\n <ms-phonebar class="ms-phonebar" ng-if="vm.isAgent() && (vm.user.showWebBar == 2)" conf="vm.conf" sessions="vm.webRTCSessions" flex></ms-phonebar>\n \x3c!-- phonebar directive --\x3e\n </div>\n\n <div layout="row" layout-align="start center">\n\n <md-progress-circular id="toolbar-progress" ng-if="$root.loadingProgress" class="md-accent" md-diameter="32">\n </md-progress-circular>\n\n \x3c!-- Pause Management --\x3e\n <div ng-if="vm.isAgent() && (vm.user.showWebBar != 0)" layout="row" layout-align="end center">\n <div class="toolbar-separator"></div>\n\n <div class="border brad-5" layout="row" layout-align="center center" layout-margin>\n <md-button ng-if="vm.user.voicePause" class="md-icon-button no-margin" ng-click="vm.unpause()">\n <md-icon md-font-icon="icon-play-circle-outline" class="icon s24"></md-icon>\n <md-tooltip md-direction="bottom">{{\'TOOLBAR.RESUME\' | translate}}</md-tooltip>\n </md-button>\n\n <md-button ng-disabled="vm.user.voicePause && \'DEFAULT PAUSE\' === vm.user.pauseType" class="md-icon-button no-margin" ng-click="vm.pause()">\n <md-icon md-font-icon="icon-pause-circle-outline" class="icon s24"></md-icon>\n <md-tooltip md-direction="bottom">{{\'TOOLBAR.PAUSE\' | translate}}</md-tooltip>\n </md-button>\n\n <md-menu>\n <md-button aria-label="Pauses" class="md-icon-button no-margin" ng-click="$mdOpenMenu($event)">\n <md-icon md-menu-origin md-font-icon="icon-dots-vertical"></md-icon>\n </md-button>\n <md-menu-content width="4">\n <md-menu-item ng-if="!vm.pauses.length">\n <md-button disabled="disabled">\n <md-icon md-font-icon="icon-pause-octagon" md-menu-align-target></md-icon>\n {{\'TOOLBAR.NO_PAUSES_AVAILABLE\' | translate}}\n </md-button>\n </md-menu-item>\n <md-menu-item ng-repeat="pause in vm.pauses">\n <md-button ng-disabled="vm.user.voicePause && pause.name === vm.user.pauseType" ng-click="vm.pause(pause.name)">\n <md-icon md-font-icon="icon-pause-circle" md-menu-align-target></md-icon>\n {{pause.name}}\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </div>\n </div>\n \x3c!-- Pause Management --\x3e\n\n <div class="h5 padding-10" ng-if="vm.isAgent() && (vm.user.showWebBar != 0)">\n <div layout="row" layout-align="space-between center">\n <timer ng-if="vm.user.lastLoginAt" start-time="vm.user.lastLoginAt"></timer>\n <md-tooltip>{{\'TOOLBAR.LOGIN_TIME\' | translate}}</md-tooltip>\n <md-icon md-font-icon="icon-timelapse" class="icon s16"></md-icon>\n </div>\n <div layout="row" layout-align="center center" ng-if="vm.user.voicePause">\n <timer start-time="vm.user.lastPauseAt"></timer>\n <md-tooltip>{{\'TOOLBAR.PAUSE_TIME\' | translate}}</md-tooltip>\n <md-icon md-font-icon="icon-coffee" class="icon s16"></md-icon>\n </div>\n <div ng-if="vm.user.voicePause">\n <span class="blink red-fg">{{vm.user.pauseType || \'default\' | uppercase}}</span>\n </div>\n </div>\n\n <div class="toolbar-separator" ng-if="vm.isAgent() && (vm.user.showWebBar != 0)"></div>\n\n <md-menu-bar id="user-menu">\n <md-menu md-position-mode="left bottom">\n <md-button class="user-button" ng-click="$mdOpenMenu()" aria-label="User settings" translate translate-attr-aria-label="TOOLBAR.USER_SETTINGS">\n <div layout="row" layout-align="space-between center">\n <div class="avatar-wrapper">\n <img md-menu-align-target class="avatar" src="assets/images/avatars/profile.png" ng-if="!vm.user.userpic">\n <img md-menu-align-target class="avatar" ng-src="api/users/{{vm.user.id}}/avatar" ng-if="vm.user.userpic">\n <md-icon md-font-icon ng-class="vm.userStatus.icon" ng-style="{\'color\': vm.userStatus.color }" class="icon status s16"></md-icon>\n </div>\n <div layout="column" layout-align="center center" class="padding-horizontal-5">\n <span class="font-size-14 md-subhead">{{vm.user.fullname}}</span>\n <span class="font-size-12 md-subhead">{{vm.user.name}} <{{vm.user.internal}}></span>\n </div>\n\n <md-icon md-font-icon="icon-chevron-down" class="icon s16" hide-xs></md-icon>\n </div>\n </md-button>\n\n <md-menu-content width="3">\n <md-menu-item ng-if="vm.user.showWebBar == 2 && vm.user.phoneBarEnableSettings" class="md-indent">\n <md-icon md-font-icon="icon-cog" class="icon"></md-icon>\n <md-button ng-click="vm.openSettings($event)" ng-disabled="!vm.license.webrtc"><span translate="TOOLBAR.SETTINGS">SETTINGS</span></md-button>\n </md-menu-item>\n\n <md-menu-item class="md-indent">\n <md-icon md-font-icon="icon-key-variant" class="icon"></md-icon>\n <md-button ng-click="vm.changePassword($event)"><span translate="TOOLBAR.CHANGEPASSWORD">Change\n Password</span></md-button>\n </md-menu-item>\n\n <md-menu-divider></md-menu-divider>\n\n <md-menu-item class="md-indent">\n <md-icon md-font-icon="icon-logout" class="icon"></md-icon>\n <md-button ng-click="vm.logout()">Logout</md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n </md-menu-bar>\n\n <div class="toolbar-separator"></div>\n\n <md-button ng-if="vm.user.role === \'agent\' && vm.license.dialer" class="preview-button no-margin" ng-disabled="vm.disable" ng-click="vm.preview($event)" aria-label="Language" md-menu-origin md-menu-align-target>\n <div ng-if="vm.contacts" class="md-accent-bg open-contact-count">{{vm.contacts > 99 ? \'99+\' : vm.contacts}}</div>\n <md-icon md-font-icon="icon-fire" class="icon red-900-fg"></md-icon>\n <md-tooltip><span translate="TOOLBAR.PREVIEW">Preview</span></md-tooltip>\n </md-button>\n\n <ms-search-bar ng-if="vm.user.role !== \'agent\'" on-search="vm.search(query)" on-result-click="vm.searchResultClick(item)" debounce="300" collapse-on-blur="true"></ms-search-bar>\n\n <md-menu id="language-menu" md-offset="0 72" md-position-mode="target-right target" layout="column" layout-align="center center">\n <md-button class="md-icon-button no-margin" ng-click="$mdOpenMenu()" aria-label="Language" md-menu-origin md-menu-align-target>\n <div layout="row" layout-align="center center">\n <img class="flag" ng-src="assets/images/flags/{{vm.selectedLanguage.flag}}.png">\n </div>\n </md-button>\n\n <md-menu-content width="3" id="language-menu-content">\n <md-menu-item ng-repeat="(iso, lang) in vm.languages">\n <md-button ng-click="vm.changeLanguage(lang)" aria-label="{{lang.title}}" translate translate-attr-aria-label="{{lang.title}}">\n <span layout="row" layout-align="start center">\n <img class="flag flag-24" ng-src="assets/images/flags/{{lang.flag}}.png">\n <span>{{ lang.translation | translate | startcase }}</span>\n </span>\n </md-button>\n </md-menu-item>\n </md-menu-content>\n </md-menu>\n\n <div class="toolbar-separator"></div>\n\n <md-button ng-if="vm.license.gray && vm.user.role !== \'agent\'" class="md-icon-button" ui-sref="app.settings.license" aria-label="Toggle quick panel">\n <md-icon md-font-icon="icon-alert" class="icon md-warn blink"></md-icon>\n </md-button>\n <md-button ng-if="vm.license.gray && vm.user.role === \'agent\'" class="md-icon-button" aria-label="Toggle quick panel">\n <md-icon md-font-icon="icon-alert" class="icon md-warn blink"></md-icon>\n </md-button>\n\n <div ng-if="vm.license.gray" class="toolbar-separator"></div>\n\n <md-button id="quick-panel-toggle" class="md-icon-button" ng-click="vm.toggleSidenav(\'quick-panel\')" aria-label="Toggle quick panel" translate translate-attr-aria-label="TOOLBAR.TOGGLE_QUICK_PANEL">\n <div ng-if="(vm.unreadTotalMessages + vm.unreadTotalGroupMessages)" class="md-accent-bg unread-message-count">\n {{vm.unreadTotalMessages + vm.unreadTotalGroupMessages}}</div>\n <md-icon md-font-icon="icon-format-list-bulleted" class="icon"></md-icon>\n </md-button>\n </div>\n</div>'),e.put("app/toolbar/preview/dialog.html",'<md-dialog class="preview-dialog" aria-label="preview">\n <form name="previewForm" class="md-inline-form" novalidate>\n <md-toolbar class="md-background-bg">\n <div class="md-toolbar-tools" layout="row" layout-align="space-between center">\n <span class="title">{{ (\'TOOLBAR.PREVIEW\' | translate) + (vm.preview.recallme ? \' - \' +\n (\'CONTACTMANAGER.RECALLME\' | translate | uppercase) : \'\') }}</span>\n <md-button class="md-icon-button" ng-click="vm.closeDialog()">\n <md-icon md-font-icon="icon-close" aria-label="Close dialog"></md-icon>\n </md-button>\n </div>\n </md-toolbar>\n\n <md-dialog-content ms-scroll>\n <div ng-if="vm.preview">\n <div ng-if="vm.preview.recallme" layout="row" class="recall-me-info">\n <md-icon md-font-icon="icon-information-outline" aria-label="Recall Me"></md-icon>\n <p class="ml-5" translate="TOOLBAR.HELP.PREVIEW_RECALLME" translate-values="{ date: (vm.preview.scheduledat | date:\'short\') }" flex></p>\n </div>\n <div layout="row">\n <div class="md-padding md-margin" layout="column" flex="30">\n <md-input-container ng-if="vm.preview.Contact.id" class="md-block no-margin">\n <label translate="CONTACTMANAGER.ID">ID</label>\n <input type="text" ng-model="vm.preview.Contact.id" disabled="true">\n </md-input-container>\n <md-input-container ng-if="vm.preview.Queue.name" class="md-block no-margin">\n <label translate="VOICE.QUEUE">Queue</label>\n <input type="text" ng-model="vm.preview.Queue.name" disabled="true">\n </md-input-container>\n <md-input-container ng-if="vm.preview.List.name" class="md-block no-margin">\n <label translate="CONTACTMANAGER.LIST">List</label>\n <input type="text" ng-model="vm.preview.List.name" disabled="true">\n </md-input-container>\n <md-input-container ng-if="vm.preview.Contact.tags && vm.preview.Contact.tags.length" class="md-block no-margin">\n <label translate="CONTACTMANAGER.TAGS">Tags</label>\n <input type="text" ng-model="vm.preview.Contact.tags" disabled="true">\n </md-input-container>\n <md-input-container ng-if="vm.preview.Contact.Company && vm.preview.Contact.Company.name" class="md-block no-margin">\n <label translate="CONTACTMANAGER.COMPANY">Company</label>\n <input type="text" ng-model="vm.preview.Contact.Company.name" disabled="true">\n </md-input-container>\n </div>\n <md-divider></md-divider>\n <div class="md-padding md-margin" layout="column" flex="35">\n <md-input-container ng-repeat="(key, value) in vm.preview.Contact" ng-if="!vm.isNil(value) && !vm.isCustomField(key) && !vm.isHiddenField(key)" class="md-block no-margin">\n <label>{{ \'CONTACTMANAGER.\' + key.toUpperCase() | translate}}</label>\n <input type="text" ng-model="value" disabled="true">\n </md-input-container>\n </div>\n <div class="md-padding md-margin" layout="column" flex="35">\n <md-input-container ng-repeat="(key, value) in vm.preview.Contact" ng-if="!vm.isNil(value) && vm.isCustomField(key) && !vm.isHiddenField(key)" class="md-block no-margin">\n <label>{{ vm.customFieldsMap[key] || key }}</label>\n <input type="text" ng-model="value" disabled="true">\n </md-input-container>\n </div>\n </div>\n </div>\n <div layout="row" ng-if="!vm.preview">\n <span>no contacts available</span>\n </div>\n </md-dialog-content>\n\n <md-dialog-actions class="md-dialog-action-center padding-rigth-15">\n <md-button class="md-icon-button md-primary" ng-hide="vm.hopperIds.length <= 1" ng-disabled="vm.disableGetContact" ng-click="vm.previousContact()" aria-label="PREVIOUSCONTACT" translate-attr-aria-label="TOOLS.PREVIOUSCONTACT">\n <md-icon md-font-icon="icon-chevron-left"></md-icon>\n </md-button>\n <md-button class="md-fab green-bg" aria-label="CALL" translate-attr-aria-label="TOOLS.CALL" ng-disabled="vm.disable" ng-click="vm.originatePreview($event)">\n <md-icon md-font-icon="icon-phone"></md-icon>\n </md-button>\n <md-button class="md-icon-button md-primary" ng-disabled="vm.disableGetContact" ng-click="vm.nextContact()" aria-label="NEXTCONTACT" translate-attr-aria-label="TOOLS.NEXTCONTACT">\n <md-icon md-font-icon="icon-chevron-right"></md-icon>\n </md-button>\n </md-dialog-actions>\n </form>\n</md-dialog>')}]);
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4ff7=['browser','bot','script','Allowed\x20values:\x20contactManager,\x20integration,\x20motionbar,\x20jscripty,\x20urlForward,\x20browser,\x20bot,\x20script','jscripty[ProjectId],\x20browser[type(0=Popup,1=CTI\x20URL)],\x20contactManager[ListId],\x20urlForward[type(GET,POST,PUT,DELETE)],\x20script[info],\x20integration[intName(desk,dynamics365,freshdesk,freshsales,salesforce,sugarcrm,vtiger,zendesk,zoho)],\x20motionbar[type(0=Popup,1=CTI\x20URL,2=WinApp)]','contactManager[searchFields],\x20script[script],\x20integration[ConfigurationId],\x20motionbar[NULL,eventVariables(0=No,1=Yes),WinAppArguments],\x20browser[NULL,eventVariables(0=No,1=Yes)]','browser[location(0=NewTab,1=NewWindow,2=MotionTab)],\x20contactManager[autoCreateField]','urlForward[timeout],\x20browser[windowWidth],\x20contactManager[ignoreDialerContactId]','urlForward[headers],\x20browser[wsindowHeight]','urlForward[body]','sequelize','exports','VIRTUAL','getDataValue','action','STRING','integration','motionbar','urlForward'];(function(_0x57d13b,_0x52d8cb){var _0x467696=function(_0x153000){while(--_0x153000){_0x57d13b['push'](_0x57d13b['shift']());}};_0x467696(++_0x52d8cb);}(_0x4ff7,0xdb));var _0x74ff=function(_0x5a2b99,_0xb0e62){_0x5a2b99=_0x5a2b99-0x0;var _0x46b640=_0x4ff7[_0x5a2b99];return _0x46b640;};'use strict';var Sequelize=require(_0x74ff('0x0'));module[_0x74ff('0x1')]={'name':{'type':Sequelize[_0x74ff('0x2')],'get':function(_0x9299b6){return this[_0x74ff('0x3')](_0x74ff('0x4'));}},'action':{'type':Sequelize[_0x74ff('0x5')],'allowNull':![],'validate':{'isIn':{'args':[['contactManager',_0x74ff('0x6'),_0x74ff('0x7'),'jscripty',_0x74ff('0x8'),_0x74ff('0x9'),_0x74ff('0xa'),_0x74ff('0xb')]],'msg':_0x74ff('0xc')}},'comment':_0x74ff('0xc')},'data1':{'type':Sequelize[_0x74ff('0x5')](0x1000),'comment':_0x74ff('0xd')},'data2':{'type':Sequelize[_0x74ff('0x5')](0x1000),'comment':'contactManager[autoCreate(0=No,1=Yes)],\x20urlForward[URL],\x20script[type],\x20integration[AccountId],\x20motionbar[TemplateId,URL,WinAppPath],\x20browser[TemplateId,URL]'},'data3':{'type':Sequelize['STRING'](0x1000),'comment':_0x74ff('0xe')},'data4':{'type':Sequelize[_0x74ff('0x5')](0x1000),'comments':_0x74ff('0xf')},'data5':{'type':Sequelize[_0x74ff('0x5')](0x1000),'comments':_0x74ff('0x10')},'data6':{'type':Sequelize[_0x74ff('0x5')],'comments':_0x74ff('0x11')},'data7':{'type':Sequelize['TEXT'],'comments':_0x74ff('0x12')}};
\ No newline at end of file
+var _0x33fe=['Allowed\x20values:\x20contactManager,\x20integration,\x20motionbar,\x20jscripty,\x20urlForward,\x20browser,\x20bot,\x20script','STRING','contactManager[searchFields],\x20script[script],\x20integration[ConfigurationId],\x20motionbar[NULL,eventVariables(0=No,1=Yes),WinAppArguments],\x20browser[NULL,eventVariables(0=No,1=Yes)]','browser[location(0=NewTab,1=NewWindow,2=MotionTab)],\x20contactManager[autoCreateField]','urlForward[body]','sequelize','exports','VIRTUAL','getDataValue','action','contactManager','integration','motionbar','urlForward','browser','script'];(function(_0x368096,_0x18bf40){var _0x316f56=function(_0x3e947f){while(--_0x3e947f){_0x368096['push'](_0x368096['shift']());}};_0x316f56(++_0x18bf40);}(_0x33fe,0x175));var _0xe33f=function(_0xc690e9,_0x4af89b){_0xc690e9=_0xc690e9-0x0;var _0xc1c5ae=_0x33fe[_0xc690e9];return _0xc1c5ae;};'use strict';var Sequelize=require(_0xe33f('0x0'));module[_0xe33f('0x1')]={'name':{'type':Sequelize[_0xe33f('0x2')],'get':function(_0xad9f52){return this[_0xe33f('0x3')](_0xe33f('0x4'));}},'action':{'type':Sequelize['STRING'],'allowNull':![],'validate':{'isIn':{'args':[[_0xe33f('0x5'),_0xe33f('0x6'),_0xe33f('0x7'),'jscripty',_0xe33f('0x8'),_0xe33f('0x9'),'bot',_0xe33f('0xa')]],'msg':'Allowed\x20values:\x20contactManager,\x20integration,\x20motionbar,\x20jscripty,\x20urlForward,\x20browser,\x20bot,\x20script'}},'comment':_0xe33f('0xb')},'data1':{'type':Sequelize['STRING'](0x1000),'comment':'jscripty[ProjectId],\x20browser[type(0=Popup,1=CTI\x20URL)],\x20contactManager[ListId],\x20urlForward[type(GET,POST,PUT,DELETE)],\x20script[info],\x20integration[intName(desk,dynamics365,freshdesk,freshsales,salesforce,sugarcrm,vtiger,zendesk,zoho)],\x20motionbar[type(0=Popup,1=CTI\x20URL,2=WinApp)]'},'data2':{'type':Sequelize[_0xe33f('0xc')](0x1000),'comment':'contactManager[autoCreate(0=No,1=Yes)],\x20urlForward[URL],\x20script[type],\x20integration[AccountId],\x20motionbar[TemplateId,URL,WinAppPath],\x20browser[TemplateId,URL]'},'data3':{'type':Sequelize[_0xe33f('0xc')](0x1000),'comment':_0xe33f('0xd')},'data4':{'type':Sequelize[_0xe33f('0xc')](0x1000),'comments':_0xe33f('0xe')},'data5':{'type':Sequelize[_0xe33f('0xc')](0x1000),'comments':'urlForward[timeout],\x20browser[windowWidth],\x20contactManager[ignoreDialerContactId]'},'data6':{'type':Sequelize[_0xe33f('0xc')],'comments':'urlForward[headers],\x20browser[wsindowHeight]'},'data7':{'type':Sequelize['TEXT'],'comments':_0xe33f('0xf')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf854=['status','end','json','offset','undefined','count','set','Content-Range','apply','then','destroy','sendStatus','error','name','send','body','Action','find','catch','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb'];(function(_0x3a710f,_0x3509a8){var _0x11e9fc=function(_0x122165){while(--_0x122165){_0x3a710f['push'](_0x3a710f['shift']());}};_0x11e9fc(++_0x3509a8);}(_0xf854,0x127));var _0x4f85=function(_0xab6745,_0x4d9b3c){_0xab6745=_0xab6745-0x0;var _0x1e4558=_0xf854[_0xab6745];return _0x1e4558;};'use strict';var emlformat=require(_0x4f85('0x0'));var rimraf=require(_0x4f85('0x1'));var zipdir=require(_0x4f85('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x4f85('0x3'));var moment=require(_0x4f85('0x4'));var BPromise=require(_0x4f85('0x5'));var Mustache=require(_0x4f85('0x6'));var util=require(_0x4f85('0x7'));var path=require(_0x4f85('0x8'));var sox=require(_0x4f85('0x9'));var csv=require(_0x4f85('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x4f85('0xb'));var _=require(_0x4f85('0xc'));var squel=require(_0x4f85('0xd'));var crypto=require(_0x4f85('0xe'));var jsforce=require(_0x4f85('0xf'));var deskjs=require(_0x4f85('0x10'));var toCsv=require(_0x4f85('0xa'));var querystring=require('querystring');var Papa=require(_0x4f85('0x11'));var Redis=require(_0x4f85('0x12'));var authService=require(_0x4f85('0x13'));var qs=require(_0x4f85('0x14'));var as=require(_0x4f85('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x4f85('0x16'))('api');var utils=require(_0x4f85('0x17'));var config=require(_0x4f85('0x18'));var licenseUtil=require(_0x4f85('0x19'));var db=require(_0x4f85('0x1a'))['db'];function respondWithStatusCode(_0x13852c,_0x1779af){_0x1779af=_0x1779af||0xcc;return function(_0x7f6282){if(_0x7f6282){return _0x13852c['sendStatus'](_0x1779af);}return _0x13852c[_0x4f85('0x1b')](_0x1779af)[_0x4f85('0x1c')]();};}function respondWithResult(_0x287598,_0x485570){_0x485570=_0x485570||0xc8;return function(_0x249bb2){if(_0x249bb2){return _0x287598[_0x4f85('0x1b')](_0x485570)[_0x4f85('0x1d')](_0x249bb2);}};}function respondWithFilteredResult(_0x46b21c,_0x2f0eb2){return function(_0x2e1a93){if(_0x2e1a93){var _0x54158b=typeof _0x2f0eb2[_0x4f85('0x1e')]===_0x4f85('0x1f')&&typeof _0x2f0eb2['limit']===_0x4f85('0x1f');var _0x697164=_0x2e1a93[_0x4f85('0x20')];var _0x2e0861=_0x54158b?0x0:_0x2f0eb2[_0x4f85('0x1e')];var _0x3c42ae=_0x54158b?_0x2e1a93[_0x4f85('0x20')]:_0x2f0eb2[_0x4f85('0x1e')]+_0x2f0eb2['limit'];var _0x15b3f7;if(_0x3c42ae>=_0x697164){_0x3c42ae=_0x697164;_0x15b3f7=0xc8;}else{_0x15b3f7=0xce;}_0x46b21c[_0x4f85('0x1b')](_0x15b3f7);return _0x46b21c[_0x4f85('0x21')](_0x4f85('0x22'),_0x2e0861+'-'+_0x3c42ae+'/'+_0x697164)['json'](_0x2e1a93);}return null;};}function patchUpdates(_0x22c2b9){return function(_0x255ead){try{jsonpatch[_0x4f85('0x23')](_0x255ead,_0x22c2b9,!![]);}catch(_0x34aca6){return BPromise['reject'](_0x34aca6);}return _0x255ead['save']();};}function saveUpdates(_0x29c95c,_0x566aa0){return function(_0x34dfb5){if(_0x34dfb5){return _0x34dfb5['update'](_0x29c95c)[_0x4f85('0x24')](function(_0x1d076f){return _0x1d076f;});}return null;};}function removeEntity(_0x11bdba,_0x1b74ce){return function(_0x5344d5){if(_0x5344d5){return _0x5344d5[_0x4f85('0x25')]()[_0x4f85('0x24')](function(){_0x11bdba['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x40d7f1,_0x424f2b){return function(_0x1fd462){if(!_0x1fd462){_0x40d7f1[_0x4f85('0x26')](0x194);}return _0x1fd462;};}function handleError(_0x236019,_0x447cff){_0x447cff=_0x447cff||0x1f4;return function(_0x4c7360){logger[_0x4f85('0x27')](_0x4c7360['stack']);if(_0x4c7360[_0x4f85('0x28')]){delete _0x4c7360[_0x4f85('0x28')];}_0x236019['status'](_0x447cff)[_0x4f85('0x29')](_0x4c7360);};}exports['update']=function(_0x3a7cb0,_0x459dc9){if(_0x3a7cb0[_0x4f85('0x2a')]['id']){delete _0x3a7cb0['body']['id'];}return db[_0x4f85('0x2b')][_0x4f85('0x2c')]({'where':{'id':_0x3a7cb0['params']['id']}})[_0x4f85('0x24')](handleEntityNotFound(_0x459dc9,null))[_0x4f85('0x24')](saveUpdates(_0x3a7cb0[_0x4f85('0x2a')],null))[_0x4f85('0x24')](respondWithResult(_0x459dc9,null))[_0x4f85('0x2d')](handleError(_0x459dc9,null));};exports['destroy']=function(_0x191934,_0x211d52){return db[_0x4f85('0x2b')][_0x4f85('0x2c')]({'where':{'id':_0x191934['params']['id']}})[_0x4f85('0x24')](handleEntityNotFound(_0x211d52,null))[_0x4f85('0x24')](removeEntity(_0x211d52,null))[_0x4f85('0x2d')](handleError(_0x211d52,null));};
\ No newline at end of file
+var _0xb19a=['update','then','destroy','sendStatus','error','name','send','body','params','catch','Action','find','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','ejs','lodash','squel','jsforce','to-csv','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','status','end','offset','undefined','limit','count','set','Content-Range','apply','reject','save'];(function(_0x329705,_0x37d93d){var _0x9cd6c2=function(_0x486a9f){while(--_0x486a9f){_0x329705['push'](_0x329705['shift']());}};_0x9cd6c2(++_0x37d93d);}(_0xb19a,0x12c));var _0xab19=function(_0x3fb2d2,_0x37c527){_0x3fb2d2=_0x3fb2d2-0x0;var _0x12a10b=_0xb19a[_0x3fb2d2];return _0x12a10b;};'use strict';var emlformat=require(_0xab19('0x0'));var rimraf=require(_0xab19('0x1'));var zipdir=require(_0xab19('0x2'));var jsonpatch=require(_0xab19('0x3'));var rp=require(_0xab19('0x4'));var moment=require(_0xab19('0x5'));var BPromise=require(_0xab19('0x6'));var Mustache=require(_0xab19('0x7'));var util=require(_0xab19('0x8'));var path=require(_0xab19('0x9'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xab19('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xab19('0xb'));var squel=require(_0xab19('0xc'));var crypto=require('crypto');var jsforce=require(_0xab19('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xab19('0xe'));var querystring=require(_0xab19('0xf'));var Papa=require('papaparse');var Redis=require(_0xab19('0x10'));var authService=require('../../components/auth/service');var qs=require(_0xab19('0x11'));var as=require(_0xab19('0x12'));var hardwareService=require(_0xab19('0x13'));var logger=require(_0xab19('0x14'))(_0xab19('0x15'));var utils=require(_0xab19('0x16'));var config=require(_0xab19('0x17'));var licenseUtil=require(_0xab19('0x18'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0xae7a19,_0xb4139e){_0xb4139e=_0xb4139e||0xcc;return function(_0x20c135){if(_0x20c135){return _0xae7a19['sendStatus'](_0xb4139e);}return _0xae7a19[_0xab19('0x19')](_0xb4139e)[_0xab19('0x1a')]();};}function respondWithResult(_0x3acf78,_0x5b0d87){_0x5b0d87=_0x5b0d87||0xc8;return function(_0x55e58a){if(_0x55e58a){return _0x3acf78[_0xab19('0x19')](_0x5b0d87)['json'](_0x55e58a);}};}function respondWithFilteredResult(_0x11c719,_0x5d411b){return function(_0x46946d){if(_0x46946d){var _0x5d0d10=typeof _0x5d411b[_0xab19('0x1b')]===_0xab19('0x1c')&&typeof _0x5d411b[_0xab19('0x1d')]===_0xab19('0x1c');var _0x2eb9d3=_0x46946d[_0xab19('0x1e')];var _0x30284c=_0x5d0d10?0x0:_0x5d411b[_0xab19('0x1b')];var _0xb97f50=_0x5d0d10?_0x46946d[_0xab19('0x1e')]:_0x5d411b['offset']+_0x5d411b[_0xab19('0x1d')];var _0x22f190;if(_0xb97f50>=_0x2eb9d3){_0xb97f50=_0x2eb9d3;_0x22f190=0xc8;}else{_0x22f190=0xce;}_0x11c719[_0xab19('0x19')](_0x22f190);return _0x11c719[_0xab19('0x1f')](_0xab19('0x20'),_0x30284c+'-'+_0xb97f50+'/'+_0x2eb9d3)['json'](_0x46946d);}return null;};}function patchUpdates(_0x1d6e38){return function(_0x5040d6){try{jsonpatch[_0xab19('0x21')](_0x5040d6,_0x1d6e38,!![]);}catch(_0x20a2a0){return BPromise[_0xab19('0x22')](_0x20a2a0);}return _0x5040d6[_0xab19('0x23')]();};}function saveUpdates(_0x1df53c,_0x59d21a){return function(_0x1e0cb6){if(_0x1e0cb6){return _0x1e0cb6[_0xab19('0x24')](_0x1df53c)[_0xab19('0x25')](function(_0x2e02a9){return _0x2e02a9;});}return null;};}function removeEntity(_0x308615,_0x21d20a){return function(_0x167d18){if(_0x167d18){return _0x167d18[_0xab19('0x26')]()['then'](function(){_0x308615[_0xab19('0x19')](0xcc)[_0xab19('0x1a')]();});}};}function handleEntityNotFound(_0x22991a,_0x4e51f9){return function(_0x4d9af8){if(!_0x4d9af8){_0x22991a[_0xab19('0x27')](0x194);}return _0x4d9af8;};}function handleError(_0x2d89ae,_0x464acd){_0x464acd=_0x464acd||0x1f4;return function(_0x30b317){logger[_0xab19('0x28')](_0x30b317['stack']);if(_0x30b317['name']){delete _0x30b317[_0xab19('0x29')];}_0x2d89ae['status'](_0x464acd)[_0xab19('0x2a')](_0x30b317);};}exports[_0xab19('0x24')]=function(_0x5ed4de,_0x1744fc){if(_0x5ed4de[_0xab19('0x2b')]['id']){delete _0x5ed4de[_0xab19('0x2b')]['id'];}return db['Action']['find']({'where':{'id':_0x5ed4de[_0xab19('0x2c')]['id']}})[_0xab19('0x25')](handleEntityNotFound(_0x1744fc,null))[_0xab19('0x25')](saveUpdates(_0x5ed4de['body'],null))[_0xab19('0x25')](respondWithResult(_0x1744fc,null))[_0xab19('0x2d')](handleError(_0x1744fc,null));};exports['destroy']=function(_0x7c850b,_0x2a7924){return db[_0xab19('0x2e')][_0xab19('0x2f')]({'where':{'id':_0x7c850b[_0xab19('0x2c')]['id']}})[_0xab19('0x25')](handleEntityNotFound(_0x2a7924,null))[_0xab19('0x25')](removeEntity(_0x2a7924,null))[_0xab19('0x2d')](handleError(_0x2a7924,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc827=['api','moment','request-promise','path','rimraf','../../config/environment','./action.attributes','exports','define','Action','tools_actions','lodash','util','../../config/logger'];(function(_0x1510c5,_0xde9022){var _0x433a86=function(_0x114896){while(--_0x114896){_0x1510c5['push'](_0x1510c5['shift']());}};_0x433a86(++_0xde9022);}(_0xc827,0xeb));var _0x7c82=function(_0x527f12,_0x27f2ab){_0x527f12=_0x527f12-0x0;var _0x1f1f8a=_0xc827[_0x527f12];return _0x1f1f8a;};'use strict';var _=require(_0x7c82('0x0'));var util=require(_0x7c82('0x1'));var logger=require(_0x7c82('0x2'))(_0x7c82('0x3'));var moment=require(_0x7c82('0x4'));var BPromise=require('bluebird');var rp=require(_0x7c82('0x5'));var fs=require('fs');var path=require(_0x7c82('0x6'));var rimraf=require(_0x7c82('0x7'));var config=require(_0x7c82('0x8'));var attributes=require(_0x7c82('0x9'));module[_0x7c82('0xa')]=function(_0x1722f4,_0x338211){return _0x1722f4[_0x7c82('0xb')](_0x7c82('0xc'),attributes,{'tableName':_0x7c82('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x3e1d=['../../config/logger','moment','bluebird','path','../../config/environment','./action.attributes','define','tools_actions'];(function(_0x8c43de,_0x90ff31){var _0xa6591b=function(_0x469716){while(--_0x469716){_0x8c43de['push'](_0x8c43de['shift']());}};_0xa6591b(++_0x90ff31);}(_0x3e1d,0x108));var _0xd3e1=function(_0x1e3c16,_0x372caa){_0x1e3c16=_0x1e3c16-0x0;var _0x47a0c9=_0x3e1d[_0x1e3c16];return _0x47a0c9;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0xd3e1('0x0'))('api');var moment=require(_0xd3e1('0x1'));var BPromise=require(_0xd3e1('0x2'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xd3e1('0x3'));var rimraf=require('rimraf');var config=require(_0xd3e1('0x4'));var attributes=require(_0xd3e1('0x5'));module['exports']=function(_0x23b3fd,_0x24f352){return _0x23b3fd[_0xd3e1('0x6')]('Action',attributes,{'tableName':_0xd3e1('0x7'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1cb9=['error','message','result','catch','lodash','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request','info','Action,\x20%s,\x20%s','request\x20sent','debug','Action,\x20%s,\x20%s,\x20%s','stringify'];(function(_0x513aa5,_0x1fba79){var _0x1a1a7c=function(_0x240e3f){while(--_0x240e3f){_0x513aa5['push'](_0x513aa5['shift']());}};_0x1a1a7c(++_0x1fba79);}(_0x1cb9,0x14e));var _0x91cb=function(_0x42f43f,_0x2aeef2){_0x42f43f=_0x42f43f-0x0;var _0x2774d8=_0x1cb9[_0x42f43f];return _0x2774d8;};'use strict';var _=require(_0x91cb('0x0'));var util=require('util');var moment=require(_0x91cb('0x1'));var BPromise=require(_0x91cb('0x2'));var rs=require(_0x91cb('0x3'));var fs=require('fs');var Redis=require(_0x91cb('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x91cb('0x5'));var logger=require(_0x91cb('0x6'))('rpc');var config=require(_0x91cb('0x7'));var jayson=require(_0x91cb('0x8'));var client=jayson[_0x91cb('0x9')][_0x91cb('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x3b9d98,_0x8f8a3b,_0x4c1f56){return new BPromise(function(_0x15c517,_0x5bda2f){return client[_0x91cb('0xb')](_0x3b9d98,_0x4c1f56)['then'](function(_0xa43e7a){logger[_0x91cb('0xc')](_0x91cb('0xd'),_0x8f8a3b,_0x91cb('0xe'));logger[_0x91cb('0xf')](_0x91cb('0x10'),_0x8f8a3b,_0x91cb('0xe'),JSON[_0x91cb('0x11')](_0xa43e7a));if(_0xa43e7a[_0x91cb('0x12')]){if(_0xa43e7a[_0x91cb('0x12')]['code']===0x1f4){logger[_0x91cb('0x12')](_0x91cb('0xd'),_0x8f8a3b,_0xa43e7a['error'][_0x91cb('0x13')]);return _0x5bda2f(_0xa43e7a[_0x91cb('0x12')][_0x91cb('0x13')]);}logger[_0x91cb('0x12')]('Action,\x20%s,\x20%s',_0x8f8a3b,_0xa43e7a['error'][_0x91cb('0x13')]);return _0x15c517(_0xa43e7a[_0x91cb('0x12')]['message']);}else{logger['info'](_0x91cb('0xd'),_0x8f8a3b,_0x91cb('0xe'));_0x15c517(_0xa43e7a[_0x91cb('0x14')]['message']);}})[_0x91cb('0x15')](function(_0x135890){logger['error'](_0x91cb('0xd'),_0x8f8a3b,_0x135890);_0x5bda2f(_0x135890);});});}
\ No newline at end of file
+var _0x5fab=['../../config/environment','jayson/promise','client','request','then','request\x20sent','debug','Action,\x20%s,\x20%s,\x20%s','stringify','error','code','message','Action,\x20%s,\x20%s','result','catch','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc'];(function(_0x3c4ace,_0xd4a56a){var _0x35c083=function(_0x4beea2){while(--_0x4beea2){_0x3c4ace['push'](_0x3c4ace['shift']());}};_0x35c083(++_0xd4a56a);}(_0x5fab,0x177));var _0xb5fa=function(_0x1bf996,_0x4b8acb){_0x1bf996=_0x1bf996-0x0;var _0xaf0cd9=_0x5fab[_0x1bf996];return _0xaf0cd9;};'use strict';var _=require(_0xb5fa('0x0'));var util=require(_0xb5fa('0x1'));var moment=require('moment');var BPromise=require(_0xb5fa('0x2'));var rs=require(_0xb5fa('0x3'));var fs=require('fs');var Redis=require(_0xb5fa('0x4'));var db=require(_0xb5fa('0x5'))['db'];var utils=require(_0xb5fa('0x6'));var logger=require(_0xb5fa('0x7'))(_0xb5fa('0x8'));var config=require(_0xb5fa('0x9'));var jayson=require(_0xb5fa('0xa'));var client=jayson[_0xb5fa('0xb')]['http']({'port':0x232a});function respondWithRpcPromise(_0x5d70f6,_0x2e3804,_0x1aec3e){return new BPromise(function(_0x9c7bce,_0x56d018){return client[_0xb5fa('0xc')](_0x5d70f6,_0x1aec3e)[_0xb5fa('0xd')](function(_0x2cf4a5){logger['info']('Action,\x20%s,\x20%s',_0x2e3804,_0xb5fa('0xe'));logger[_0xb5fa('0xf')](_0xb5fa('0x10'),_0x2e3804,_0xb5fa('0xe'),JSON[_0xb5fa('0x11')](_0x2cf4a5));if(_0x2cf4a5[_0xb5fa('0x12')]){if(_0x2cf4a5[_0xb5fa('0x12')][_0xb5fa('0x13')]===0x1f4){logger[_0xb5fa('0x12')]('Action,\x20%s,\x20%s',_0x2e3804,_0x2cf4a5[_0xb5fa('0x12')][_0xb5fa('0x14')]);return _0x56d018(_0x2cf4a5['error'][_0xb5fa('0x14')]);}logger['error'](_0xb5fa('0x15'),_0x2e3804,_0x2cf4a5[_0xb5fa('0x12')][_0xb5fa('0x14')]);return _0x9c7bce(_0x2cf4a5[_0xb5fa('0x12')][_0xb5fa('0x14')]);}else{logger['info']('Action,\x20%s,\x20%s',_0x2e3804,_0xb5fa('0xe'));_0x9c7bce(_0x2cf4a5[_0xb5fa('0x16')][_0xb5fa('0x14')]);}})[_0xb5fa('0x17')](function(_0x56fe10){logger['error'](_0xb5fa('0x15'),_0x2e3804,_0x56fe10);_0x56d018(_0x56fe10);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7ce5=['../../config/environment','./action.controller','isAuthenticated','update','delete','/:id','destroy','path','connect-timeout','express','fs-extra','../../components/auth/service'];(function(_0x4320f8,_0x4a35b5){var _0x2282bc=function(_0x493d48){while(--_0x493d48){_0x4320f8['push'](_0x4320f8['shift']());}};_0x2282bc(++_0x4a35b5);}(_0x7ce5,0xa3));var _0x57ce=function(_0x4b11e4,_0x4a9d98){_0x4b11e4=_0x4b11e4-0x0;var _0x29d360=_0x7ce5[_0x4b11e4];return _0x29d360;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x57ce('0x0'));var timeout=require(_0x57ce('0x1'));var express=require(_0x57ce('0x2'));var router=express['Router']();var fs_extra=require(_0x57ce('0x3'));var auth=require(_0x57ce('0x4'));var interaction=require('../../components/interaction/service');var config=require(_0x57ce('0x5'));var controller=require(_0x57ce('0x6'));router['put']('/:id',auth[_0x57ce('0x7')](),controller[_0x57ce('0x8')]);router[_0x57ce('0x9')](_0x57ce('0xa'),auth[_0x57ce('0x7')](),controller[_0x57ce('0xb')]);module['exports']=router;
\ No newline at end of file
+var _0x3589=['../../config/environment','./action.controller','put','isAuthenticated','update','delete','/:id','destroy','exports','util','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service'];(function(_0x5c2e3e,_0x26ecd3){var _0x53f64a=function(_0x2b5df8){while(--_0x2b5df8){_0x5c2e3e['push'](_0x5c2e3e['shift']());}};_0x53f64a(++_0x26ecd3);}(_0x3589,0x1cb));var _0x9358=function(_0x5a5c5b,_0x45946e){_0x5a5c5b=_0x5a5c5b-0x0;var _0x27caa3=_0x3589[_0x5a5c5b];return _0x27caa3;};'use strict';var multer=require('multer');var util=require(_0x9358('0x0'));var path=require('path');var timeout=require(_0x9358('0x1'));var express=require(_0x9358('0x2'));var router=express[_0x9358('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x9358('0x4'));var interaction=require(_0x9358('0x5'));var config=require(_0x9358('0x6'));var controller=require(_0x9358('0x7'));router[_0x9358('0x8')]('/:id',auth[_0x9358('0x9')](),controller[_0x9358('0xa')]);router[_0x9358('0xb')](_0x9358('0xc'),auth[_0x9358('0x9')](),controller[_0x9358('0xd')]);module[_0x9358('0xe')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x71ab=['TEXT','exports','STRING'];(function(_0xcaccd1,_0x3ad965){var _0x16b00e=function(_0x21ec8a){while(--_0x21ec8a){_0xcaccd1['push'](_0xcaccd1['shift']());}};_0x16b00e(++_0x3ad965);}(_0x71ab,0x64));var _0xb71a=function(_0x17d9e3,_0x1f969c){_0x17d9e3=_0x17d9e3-0x0;var _0x14192d=_0x71ab[_0x17d9e3];return _0x14192d;};'use strict';var Sequelize=require('sequelize');module[_0xb71a('0x0')]={'name':{'type':Sequelize['STRING'],'allowNull':![]},'description':{'type':Sequelize[_0xb71a('0x1')]},'parent':{'type':Sequelize['STRING']},'table':{'type':Sequelize[_0xb71a('0x1')]},'conditions':{'type':Sequelize[_0xb71a('0x2')]},'joins':{'type':Sequelize[_0xb71a('0x2')]}};
\ No newline at end of file
+var _0xa630=['STRING','TEXT','sequelize','exports'];(function(_0x3810a2,_0x4073e6){var _0x2fade6=function(_0x39102c){while(--_0x39102c){_0x3810a2['push'](_0x3810a2['shift']());}};_0x2fade6(++_0x4073e6);}(_0xa630,0xbe));var _0x0a63=function(_0xda7353,_0x3cf016){_0xda7353=_0xda7353-0x0;var _0x39405b=_0xa630[_0xda7353];return _0x39405b;};'use strict';var Sequelize=require(_0x0a63('0x0'));module[_0x0a63('0x1')]={'name':{'type':Sequelize['STRING'],'allowNull':![]},'description':{'type':Sequelize['STRING']},'parent':{'type':Sequelize[_0x0a63('0x2')]},'table':{'type':Sequelize['STRING']},'conditions':{'type':Sequelize[_0x0a63('0x3')]},'joins':{'type':Sequelize['TEXT']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x725e=['../../mysqldb','sendStatus','end','status','offset','undefined','limit','count','set','json','reject','update','then','get','CustomReports','UserProfileResource','error','stack','name','send','index','map','rawAttributes','fieldName','type','query','keys','filters','intersection','model','fields','attributes','hasOwnProperty','nolimit','order','sort','where','merge','options','AnalyticCustomReport','includeAll','include','findAll','rows','show','params','length','find','catch','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Reports','UserProfileSection','userProfileId','preview','right_join','cross_join','COUNT(%s)','COUNT(DISTINCT\x20%s)','MAX(%s)','MIN(%s)','AVG(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','HOUR(%s)','ROUND(%s)','UNIX_TIMESTAMP(%s)','includes','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20EMPTY','IS\x20NOT\x20EMPTY','rules','group','field','condition','value','getFields','Sequelize','ValidationErrorItem','AnalyticMetric','keyBy','select','from','table','MetricId','metric','function','replace','groupBy','orderBy','DESC','alias','joins','parse','foreignKey','format','%s.%s\x20=\x20%s.%s','parentKey','foreignTable','conditions','clone','debug','Limited\x20Query:','toString','sequelize','QueryTypes','SELECT','join','SUM(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','SEC_TO_TIME(%s)','DATE(%s)','operator','Please\x20insert\x20at\x20least\x20one\x20field','output','fullPath','%s-%s.%s','randomstring','generate','custom','AnalyticExtractedReport','.calldate\x20BETWEEN\x20?\x20AND\x20?','startDate','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','info','Run\x20Query:','fork','../../files/reports','savename','countTable','run','runReport','left_join','eml-format','fast-json-patch','moment','bluebird','mustache','util','sox','to-csv','ejs','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/license/util'];(function(_0x3eca95,_0x45a37f){var _0x474fe7=function(_0xc18bfc){while(--_0xc18bfc){_0x3eca95['push'](_0x3eca95['shift']());}};_0x474fe7(++_0x45a37f);}(_0x725e,0x12a));var _0xe725=function(_0x528519,_0x55cf3a){_0x528519=_0x528519-0x0;var _0x5cd53f=_0x725e[_0x528519];return _0x5cd53f;};'use strict';var emlformat=require(_0xe725('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xe725('0x1'));var rp=require('request-promise');var moment=require(_0xe725('0x2'));var BPromise=require(_0xe725('0x3'));var Mustache=require(_0xe725('0x4'));var util=require(_0xe725('0x5'));var path=require('path');var sox=require(_0xe725('0x6'));var csv=require(_0xe725('0x7'));var ejs=require(_0xe725('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require('squel');var crypto=require(_0xe725('0x9'));var jsforce=require(_0xe725('0xa'));var deskjs=require(_0xe725('0xb'));var toCsv=require(_0xe725('0x7'));var querystring=require(_0xe725('0xc'));var Papa=require(_0xe725('0xd'));var Redis=require(_0xe725('0xe'));var authService=require(_0xe725('0xf'));var qs=require(_0xe725('0x10'));var as=require(_0xe725('0x11'));var hardwareService=require(_0xe725('0x12'));var logger=require(_0xe725('0x13'))(_0xe725('0x14'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0xe725('0x15'));var db=require(_0xe725('0x16'))['db'];var dbH=require(_0xe725('0x16'))['dbH'];function respondWithStatusCode(_0x405fa4,_0x19bdd1){_0x19bdd1=_0x19bdd1||0xcc;return function(_0x2e103f){if(_0x2e103f){return _0x405fa4[_0xe725('0x17')](_0x19bdd1);}return _0x405fa4['status'](_0x19bdd1)[_0xe725('0x18')]();};}function respondWithResult(_0x63764d,_0xd6140d){_0xd6140d=_0xd6140d||0xc8;return function(_0xfc6010){if(_0xfc6010){return _0x63764d[_0xe725('0x19')](_0xd6140d)['json'](_0xfc6010);}};}function respondWithFilteredResult(_0x29fde8,_0x1dfa6b){return function(_0x15d79a){if(_0x15d79a){var _0xfe0c2d=typeof _0x1dfa6b[_0xe725('0x1a')]===_0xe725('0x1b')&&typeof _0x1dfa6b[_0xe725('0x1c')]==='undefined';var _0x441fb4=_0x15d79a['count'];var _0x5b9cc9=_0xfe0c2d?0x0:_0x1dfa6b[_0xe725('0x1a')];var _0x162677=_0xfe0c2d?_0x15d79a[_0xe725('0x1d')]:_0x1dfa6b[_0xe725('0x1a')]+_0x1dfa6b[_0xe725('0x1c')];var _0x46e20a;if(_0x162677>=_0x441fb4){_0x162677=_0x441fb4;_0x46e20a=0xc8;}else{_0x46e20a=0xce;}_0x29fde8[_0xe725('0x19')](_0x46e20a);return _0x29fde8[_0xe725('0x1e')]('Content-Range',_0x5b9cc9+'-'+_0x162677+'/'+_0x441fb4)[_0xe725('0x1f')](_0x15d79a);}return null;};}function patchUpdates(_0x3e8743){return function(_0x14944b){try{jsonpatch['apply'](_0x14944b,_0x3e8743,!![]);}catch(_0x5a3078){return BPromise[_0xe725('0x20')](_0x5a3078);}return _0x14944b['save']();};}function saveUpdates(_0x580db9,_0x55b669){return function(_0x566739){if(_0x566739){return _0x566739[_0xe725('0x21')](_0x580db9)[_0xe725('0x22')](function(_0xd2cb82){return _0xd2cb82;});}return null;};}function removeEntity(_0x3d9ca0,_0x453518){return function(_0x43ebc2){if(_0x43ebc2){return _0x43ebc2['destroy']()['then'](function(){var _0x5bc59e=_0x43ebc2[_0xe725('0x23')]({'plain':!![]});var _0x508365=_0xe725('0x24');return db[_0xe725('0x25')]['destroy']({'where':{'type':_0x508365,'resourceId':_0x5bc59e['id']}})[_0xe725('0x22')](function(){return _0x43ebc2;});})[_0xe725('0x22')](function(){_0x3d9ca0[_0xe725('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x273a1a,_0xbc9536){return function(_0x93c95c){if(!_0x93c95c){_0x273a1a['sendStatus'](0x194);}return _0x93c95c;};}function handleError(_0x53164a,_0xbcafb8){_0xbcafb8=_0xbcafb8||0x1f4;return function(_0x2021e0){logger[_0xe725('0x26')](_0x2021e0[_0xe725('0x27')]);if(_0x2021e0[_0xe725('0x28')]){delete _0x2021e0[_0xe725('0x28')];}_0x53164a[_0xe725('0x19')](_0xbcafb8)[_0xe725('0x29')](_0x2021e0);};}exports[_0xe725('0x2a')]=function(_0x12787f,_0x25bc35){var _0x18dca1={},_0xd5cf04={},_0x2495b5={'count':0x0,'rows':[]};var _0x1fac0e=_[_0xe725('0x2b')](db['AnalyticCustomReport'][_0xe725('0x2c')],function(_0x213820){return{'name':_0x213820[_0xe725('0x2d')],'type':_0x213820[_0xe725('0x2e')]['key']};});_0xd5cf04['model']=_[_0xe725('0x2b')](_0x1fac0e,_0xe725('0x28'));_0xd5cf04[_0xe725('0x2f')]=_[_0xe725('0x30')](_0x12787f[_0xe725('0x2f')]);_0xd5cf04[_0xe725('0x31')]=_[_0xe725('0x32')](_0xd5cf04[_0xe725('0x33')],_0xd5cf04[_0xe725('0x2f')]);_0x18dca1['attributes']=_[_0xe725('0x32')](_0xd5cf04[_0xe725('0x33')],qs[_0xe725('0x34')](_0x12787f[_0xe725('0x2f')]['fields']));_0x18dca1[_0xe725('0x35')]=_0x18dca1[_0xe725('0x35')]['length']?_0x18dca1[_0xe725('0x35')]:_0xd5cf04[_0xe725('0x33')];if(!_0x12787f[_0xe725('0x2f')][_0xe725('0x36')](_0xe725('0x37'))){_0x18dca1[_0xe725('0x1c')]=qs[_0xe725('0x1c')](_0x12787f[_0xe725('0x2f')][_0xe725('0x1c')]);_0x18dca1[_0xe725('0x1a')]=qs[_0xe725('0x1a')](_0x12787f[_0xe725('0x2f')][_0xe725('0x1a')]);}_0x18dca1[_0xe725('0x38')]=qs[_0xe725('0x39')](_0x12787f['query'][_0xe725('0x39')]);_0x18dca1[_0xe725('0x3a')]=qs[_0xe725('0x31')](_['pick'](_0x12787f[_0xe725('0x2f')],_0xd5cf04['filters']),_0x1fac0e);if(_0x12787f[_0xe725('0x2f')]['filter']){_0x18dca1[_0xe725('0x3a')]=_[_0xe725('0x3b')](_0x18dca1[_0xe725('0x3a')],{'$or':_[_0xe725('0x2b')](_0x1fac0e,function(_0x45848b){if(_0x45848b['type']!=='VIRTUAL'){var _0xc94acc={};_0xc94acc[_0x45848b[_0xe725('0x28')]]={'$like':'%'+_0x12787f['query']['filter']+'%'};return _0xc94acc;}})});}_0x18dca1=_[_0xe725('0x3b')]({},_0x18dca1,_0x12787f[_0xe725('0x3c')]);var _0x353537={'where':_0x18dca1[_0xe725('0x3a')]};return db[_0xe725('0x3d')]['count'](_0x353537)[_0xe725('0x22')](function(_0x1dc4fe){_0x2495b5['count']=_0x1dc4fe;if(_0x12787f[_0xe725('0x2f')][_0xe725('0x3e')]){_0x18dca1[_0xe725('0x3f')]=[{'all':!![]}];}return db[_0xe725('0x3d')][_0xe725('0x40')](_0x18dca1);})['then'](function(_0x39c9cc){_0x2495b5[_0xe725('0x41')]=_0x39c9cc;return _0x2495b5;})['then'](respondWithFilteredResult(_0x25bc35,_0x18dca1))['catch'](handleError(_0x25bc35,null));};exports[_0xe725('0x42')]=function(_0x517e85,_0x4afb93){var _0x228fd5={'raw':![],'where':{'id':_0x517e85[_0xe725('0x43')]['id']}},_0x3b281e={};_0x3b281e[_0xe725('0x33')]=_[_0xe725('0x30')](db[_0xe725('0x3d')][_0xe725('0x2c')]);_0x3b281e[_0xe725('0x2f')]=_[_0xe725('0x30')](_0x517e85[_0xe725('0x2f')]);_0x3b281e['filters']=_[_0xe725('0x32')](_0x3b281e[_0xe725('0x33')],_0x3b281e[_0xe725('0x2f')]);_0x228fd5[_0xe725('0x35')]=_[_0xe725('0x32')](_0x3b281e[_0xe725('0x33')],qs[_0xe725('0x34')](_0x517e85[_0xe725('0x2f')][_0xe725('0x34')]));_0x228fd5[_0xe725('0x35')]=_0x228fd5[_0xe725('0x35')][_0xe725('0x44')]?_0x228fd5[_0xe725('0x35')]:_0x3b281e['model'];if(_0x517e85[_0xe725('0x2f')][_0xe725('0x3e')]){_0x228fd5[_0xe725('0x3f')]=[{'all':!![]}];}_0x228fd5=_[_0xe725('0x3b')]({},_0x228fd5,_0x517e85[_0xe725('0x3c')]);return db[_0xe725('0x3d')][_0xe725('0x45')](_0x228fd5)[_0xe725('0x22')](handleEntityNotFound(_0x4afb93,null))[_0xe725('0x22')](respondWithResult(_0x4afb93,null))[_0xe725('0x46')](handleError(_0x4afb93,null));};exports[_0xe725('0x47')]=function(_0x4eb980,_0x512332){return db['AnalyticCustomReport'][_0xe725('0x47')](_0x4eb980[_0xe725('0x48')],{})[_0xe725('0x22')](function(_0x477e2e){var _0x17b2e3=_0x4eb980[_0xe725('0x49')][_0xe725('0x23')]({'plain':!![]});if(!_0x17b2e3)throw new Error(_0xe725('0x4a'));if(_0x17b2e3[_0xe725('0x4b')]===_0xe725('0x49')){var _0x4e282e=_0x477e2e['get']({'plain':!![]});var _0x3046af=_0xe725('0x4c');return db[_0xe725('0x4d')][_0xe725('0x45')]({'where':{'name':_0x3046af,'userProfileId':_0x17b2e3[_0xe725('0x4e')]},'raw':!![]})[_0xe725('0x22')](function(_0x3d9b35){if(_0x3d9b35&&_0x3d9b35['autoAssociation']===0x0){return db[_0xe725('0x25')][_0xe725('0x47')]({'name':_0x4e282e[_0xe725('0x28')],'resourceId':_0x4e282e['id'],'type':_0xe725('0x24'),'sectionId':_0x3d9b35['id']},{})[_0xe725('0x22')](function(){return _0x477e2e;});}else{return _0x477e2e;}})[_0xe725('0x46')](function(_0x32691a){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x32691a);throw _0x32691a;});}return _0x477e2e;})[_0xe725('0x22')](respondWithResult(_0x512332,0xc9))[_0xe725('0x46')](handleError(_0x512332,null));};exports[_0xe725('0x21')]=function(_0x11f5b4,_0x1b305f){if(_0x11f5b4[_0xe725('0x48')]['id']){delete _0x11f5b4[_0xe725('0x48')]['id'];}return db[_0xe725('0x3d')][_0xe725('0x45')]({'where':{'id':_0x11f5b4[_0xe725('0x43')]['id']}})[_0xe725('0x22')](handleEntityNotFound(_0x1b305f,null))['then'](saveUpdates(_0x11f5b4['body'],null))[_0xe725('0x22')](respondWithResult(_0x1b305f,null))['catch'](handleError(_0x1b305f,null));};exports['destroy']=function(_0x405d31,_0x563f82){return db['AnalyticCustomReport'][_0xe725('0x45')]({'where':{'id':_0x405d31['params']['id']}})[_0xe725('0x22')](handleEntityNotFound(_0x563f82,null))[_0xe725('0x22')](removeEntity(_0x563f82,null))[_0xe725('0x46')](handleError(_0x563f82,null));};exports[_0xe725('0x4f')]=function(_0x5bea39,_0x3b455f){var _0x508f61=0xa;var _0x41fade=['join','left_join',_0xe725('0x50'),_0xe725('0x51')];var _0x1d7386={'SUM':'SUM(%s)','COUNT':_0xe725('0x52'),'COUNT DISTINCT':_0xe725('0x53'),'MAX':_0xe725('0x54'),'MIN':_0xe725('0x55'),'AVG':_0xe725('0x56'),'GROUP_CONCAT':_0xe725('0x57'),'GROUP_CONCAT ASC':_0xe725('0x58'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x167d7d={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':'DATE(%s)','HOUR':_0xe725('0x59'),'ROUND':_0xe725('0x5a'),'UNIX_TIMESTAMP':_0xe725('0x5b')};var _0x4e574f=function(_0x2b27a4){return!_[_0xe725('0x5c')]([_0xe725('0x5d'),_0xe725('0x5e'),_0xe725('0x5f'),_0xe725('0x60')],_0x2b27a4);};var _0x38dbf2=function(_0x2c74cd){if(!_0x2c74cd||!_0x2c74cd[_0xe725('0x61')][_0xe725('0x44')]){return'';}for(var _0x2d0674='(',_0x52cb0c=0x0;_0x52cb0c<_0x2c74cd[_0xe725('0x61')][_0xe725('0x44')];_0x52cb0c+=0x1){_0x52cb0c>0x0&&(_0x2d0674+='\x20'+_0x2c74cd['operator']+'\x20');_0x2d0674+=_0x2c74cd[_0xe725('0x61')][_0x52cb0c][_0xe725('0x62')]?_0x38dbf2(_0x2c74cd[_0xe725('0x61')][_0x52cb0c]['group']):_0x2c74cd['rules'][_0x52cb0c][_0xe725('0x63')]+'\x20'+_0x2c74cd['rules'][_0x52cb0c][_0xe725('0x64')]+(_0x4e574f(_0x2c74cd[_0xe725('0x61')][_0x52cb0c]['condition'])?'\x20'+_0x2c74cd['rules'][_0x52cb0c][_0xe725('0x65')]:'');}return _0x2d0674+')';};var _0x4d7e83={'where':{'id':_0x5bea39['params']['id']}},_0x211b78,_0x5d6e1a,_0x35207a,_0x5944fd,_0x1778d8;_0x4d7e83=_[_0xe725('0x3b')]({},_0x4d7e83,_0x5bea39[_0xe725('0x3c')]);return db[_0xe725('0x3d')][_0xe725('0x45')](_0x4d7e83)[_0xe725('0x22')](function(_0x407c5d){if(_0x407c5d){_0x211b78=_0x407c5d;return _0x407c5d[_0xe725('0x66')]();}return null;})['then'](function(_0x2df6d7){if(_0x2df6d7){if(!_0x2df6d7[_0xe725('0x44')]){throw new db[(_0xe725('0x67'))][(_0xe725('0x68'))]('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x5d6e1a=_0x2df6d7;return db[_0xe725('0x69')][_0xe725('0x40')]({'raw':!![]});}return null;})['then'](function(_0x44503a){if(_0x44503a){_0x35207a=_[_0xe725('0x6a')](_0x44503a,'id');var _0x4a5169;var _0x5064b4=squel[_0xe725('0x6b')]();_0x5064b4[_0xe725('0x6c')](_0x211b78[_0xe725('0x6d')]);for(var _0x37e93f=0x0;_0x37e93f<_0x5d6e1a['length'];_0x37e93f+=0x1){_0x4a5169=_0x5d6e1a[_0x37e93f][_0xe725('0x6e')]?_0x35207a[_0x5d6e1a[_0x37e93f][_0xe725('0x6e')]][_0xe725('0x6f')]:_0x5d6e1a[_0x37e93f]['field'];_0x4a5169=_0x5d6e1a[_0x37e93f][_0xe725('0x70')]?_[_0xe725('0x71')](_0x1d7386[_0x5d6e1a[_0x37e93f][_0xe725('0x70')]],'%s',_0x4a5169):_0x4a5169;_0x4a5169=_0x5d6e1a[_0x37e93f]['format']?_[_0xe725('0x71')](_0x167d7d[_0x5d6e1a[_0x37e93f]['format']],'%s',_0x4a5169):_0x4a5169;if(_0x5d6e1a[_0x37e93f][_0xe725('0x72')]){_0x5064b4[_0xe725('0x62')](_0x4a5169);}_0x5d6e1a[_0x37e93f][_0xe725('0x73')]&&_0x5064b4[_0xe725('0x38')](_0x4a5169,_0x5d6e1a[_0x37e93f]['orderBy']===_0xe725('0x74')?![]:!![]);_0x5064b4['field'](_0x4a5169,_0x5d6e1a[_0x37e93f][_0xe725('0x75')]||_0x4a5169);}if(_0x211b78[_0xe725('0x76')]){_0x211b78[_0xe725('0x76')]=JSON[_0xe725('0x77')](_0x211b78[_0xe725('0x76')]);for(var _0x4b90ee=0x0;_0x4b90ee<_0x211b78[_0xe725('0x76')]['length'];_0x4b90ee+=0x1){if(_0x211b78[_0xe725('0x76')][_0x4b90ee][_0xe725('0x2e')]&&_[_0xe725('0x5c')](_0x41fade,_0x211b78['joins'][_0x4b90ee]['type'])&&_0x211b78[_0xe725('0x76')][_0x4b90ee]['parentKey']&&_0x211b78[_0xe725('0x76')][_0x4b90ee]['foreignTable']&&_0x211b78['joins'][_0x4b90ee][_0xe725('0x78')]){_0x5064b4[_0x211b78[_0xe725('0x76')][_0x4b90ee]['type']](_0x211b78['joins'][_0x4b90ee]['foreignTable'],null,util[_0xe725('0x79')](_0xe725('0x7a'),_0x211b78[_0xe725('0x6d')],_0x211b78[_0xe725('0x76')][_0x4b90ee][_0xe725('0x7b')],_0x211b78[_0xe725('0x76')][_0x4b90ee][_0xe725('0x7c')],_0x211b78['joins'][_0x4b90ee][_0xe725('0x78')]));}}}if(_0x211b78[_0xe725('0x7d')]){_0x211b78[_0xe725('0x7d')]=JSON[_0xe725('0x77')](_0x211b78['conditions']);_0x5064b4[_0xe725('0x3a')](_0x38dbf2(_0x211b78[_0xe725('0x7d')][_0xe725('0x62')]));}_0x1778d8=_0x5064b4[_0xe725('0x7e')]();_0x5064b4[_0xe725('0x1c')](_0x508f61);_0x5064b4[_0xe725('0x1a')](0x0);logger[_0xe725('0x7f')](_0xe725('0x80'),_0x5064b4[_0xe725('0x81')]());return dbH[_0xe725('0x82')]['query'](_0x5064b4['toString'](),{'type':dbH['sequelize'][_0xe725('0x83')][_0xe725('0x84')]});}})[_0xe725('0x22')](respondWithResult(_0x3b455f,null))[_0xe725('0x46')](handleError(_0x3b455f,null));};function runReport(_0x200e01,_0x144e0f,_0x31d3b6){var _0x2f6ffb=_0x144e0f[_0xe725('0x28')];var _0x365f6a=0xa;var _0x4b5720=[_0xe725('0x85'),'left_join',_0xe725('0x50'),'cross_join'];var _0x49dc4a={'SUM':_0xe725('0x86'),'COUNT':_0xe725('0x52'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0xe725('0x54'),'MIN':_0xe725('0x55'),'AVG':_0xe725('0x56'),'GROUP_CONCAT':_0xe725('0x57'),'GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':_0xe725('0x87')};var _0x401ec7={'SEC_TO_TIME':_0xe725('0x88'),'DATE':_0xe725('0x89'),'HOUR':_0xe725('0x59'),'ROUND':_0xe725('0x5a'),'UNIX_TIMESTAMP':_0xe725('0x5b')};var _0x2b064c=function(_0xa838a5){return!_[_0xe725('0x5c')](['IS\x20NULL',_0xe725('0x5e'),_0xe725('0x5f'),_0xe725('0x60')],_0xa838a5);};var _0x4663fd=function(_0x1fe113){if(!_0x1fe113||!_0x1fe113['rules'][_0xe725('0x44')]){return'';}for(var _0x14e094='(',_0x51ded6=0x0;_0x51ded6<_0x1fe113[_0xe725('0x61')][_0xe725('0x44')];_0x51ded6+=0x1){_0x51ded6>0x0&&(_0x14e094+='\x20'+_0x1fe113[_0xe725('0x8a')]+'\x20');_0x14e094+=_0x1fe113['rules'][_0x51ded6][_0xe725('0x62')]?_0x4663fd(_0x1fe113[_0xe725('0x61')][_0x51ded6][_0xe725('0x62')]):_0x1fe113[_0xe725('0x61')][_0x51ded6]['field']+'\x20'+_0x1fe113[_0xe725('0x61')][_0x51ded6][_0xe725('0x64')]+(_0x2b064c(_0x1fe113['rules'][_0x51ded6][_0xe725('0x64')])?'\x20'+_0x1fe113[_0xe725('0x61')][_0x51ded6][_0xe725('0x65')]:'');}return _0x14e094+')';};var _0x584b53={'where':{'id':_0x200e01['id']}},_0x21bac2,_0x10156d,_0x1c05e8,_0x2c91e4,_0x687ee0;_0x584b53=_[_0xe725('0x3b')]({},_0x584b53,_0x31d3b6);return db['AnalyticCustomReport'][_0xe725('0x45')](_0x584b53)[_0xe725('0x22')](function(_0x26e063){if(_0x26e063){_0x21bac2=_0x26e063;return _0x26e063[_0xe725('0x66')]();}return null;})[_0xe725('0x22')](function(_0x224f91){if(_0x224f91){if(!_0x224f91[_0xe725('0x44')]){throw new db[(_0xe725('0x67'))][(_0xe725('0x68'))](_0xe725('0x8b'),0x193);}_0x10156d=_0x224f91;return db[_0xe725('0x69')][_0xe725('0x40')]({'raw':!![]});}return null;})[_0xe725('0x22')](function(_0x51e5a7){if(_0x51e5a7){_0x1c05e8=_[_0xe725('0x6a')](_0x51e5a7,'id');var _0x5a140c;var _0x1fce4c=squel[_0xe725('0x6b')]();_0x1fce4c[_0xe725('0x6c')](_0x21bac2['table']);for(var _0x3a1256=0x0;_0x3a1256<_0x10156d[_0xe725('0x44')];_0x3a1256+=0x1){_0x5a140c=_0x10156d[_0x3a1256]['MetricId']?_0x1c05e8[_0x10156d[_0x3a1256][_0xe725('0x6e')]]['metric']:_0x10156d[_0x3a1256][_0xe725('0x63')];_0x5a140c=_0x10156d[_0x3a1256][_0xe725('0x70')]?_['replace'](_0x49dc4a[_0x10156d[_0x3a1256]['function']],'%s',_0x5a140c):_0x5a140c;_0x5a140c=_0x10156d[_0x3a1256][_0xe725('0x79')]?_['replace'](_0x401ec7[_0x10156d[_0x3a1256][_0xe725('0x79')]],'%s',_0x5a140c):_0x5a140c;if(_0x10156d[_0x3a1256][_0xe725('0x72')]){_0x1fce4c['group'](_0x5a140c);}_0x10156d[_0x3a1256][_0xe725('0x73')]&&_0x1fce4c[_0xe725('0x38')](_0x5a140c,_0x10156d[_0x3a1256][_0xe725('0x73')]==='DESC'?![]:!![]);_0x1fce4c['field'](_0x5a140c,_0x10156d[_0x3a1256][_0xe725('0x75')]||_0x5a140c);}if(_0x21bac2[_0xe725('0x76')]){_0x21bac2[_0xe725('0x76')]=JSON['parse'](_0x21bac2[_0xe725('0x76')]);for(var _0x3e05b3=0x0;_0x3e05b3<_0x21bac2[_0xe725('0x76')]['length'];_0x3e05b3+=0x1){if(_0x21bac2['joins'][_0x3e05b3][_0xe725('0x2e')]&&_[_0xe725('0x5c')](_0x4b5720,_0x21bac2[_0xe725('0x76')][_0x3e05b3][_0xe725('0x2e')])&&_0x21bac2[_0xe725('0x76')][_0x3e05b3][_0xe725('0x7b')]&&_0x21bac2[_0xe725('0x76')][_0x3e05b3]['foreignTable']&&_0x21bac2['joins'][_0x3e05b3]['foreignKey']){_0x1fce4c[_0x21bac2[_0xe725('0x76')][_0x3e05b3][_0xe725('0x2e')]](_0x21bac2[_0xe725('0x76')][_0x3e05b3][_0xe725('0x7c')],null,util[_0xe725('0x79')](_0xe725('0x7a'),_0x21bac2[_0xe725('0x6d')],_0x21bac2[_0xe725('0x76')][_0x3e05b3][_0xe725('0x7b')],_0x21bac2[_0xe725('0x76')][_0x3e05b3]['foreignTable'],_0x21bac2[_0xe725('0x76')][_0x3e05b3][_0xe725('0x78')]));}}}if(_0x21bac2['conditions']){_0x21bac2[_0xe725('0x7d')]=JSON[_0xe725('0x77')](_0x21bac2[_0xe725('0x7d')]);_0x1fce4c[_0xe725('0x3a')](_0x4663fd(_0x21bac2['conditions'][_0xe725('0x62')]));}_0x687ee0=_0x1fce4c[_0xe725('0x7e')]();_0x1fce4c[_0xe725('0x1c')](_0x365f6a);_0x1fce4c['offset'](0x0);return;}})[_0xe725('0x22')](function(){if(_0x144e0f[_0xe725('0x8c')]==='web'){return null;}var _0x35f1af=_[_0xe725('0x3b')](_0x144e0f,{'name':_0x144e0f[_0xe725('0x8d')]||_0x144e0f[_0xe725('0x28')]||_0x21bac2[_0xe725('0x28')],'basename':_0x2f6ffb,'savename':util[_0xe725('0x79')](_0xe725('0x8e'),_0x144e0f[_0xe725('0x28')]||_0x21bac2[_0xe725('0x28')],require(_0xe725('0x8f'))[_0xe725('0x90')](0x4),_0x144e0f['output']||'csv'),'reportId':_0x21bac2['id'],'reportType':_0xe725('0x91')});return db[_0xe725('0x92')]['create'](_0x35f1af,{'raw':!![]});})[_0xe725('0x22')](function(_0x48db41){if(_0x21bac2[_0xe725('0x6d')]==='cdr'){_0x687ee0['where'](_0x21bac2[_0xe725('0x6d')]+_0xe725('0x93'),_0x144e0f[_0xe725('0x94')],_0x144e0f[_0xe725('0x95')]);}else{_0x687ee0['where'](_0x21bac2[_0xe725('0x6d')]+_0xe725('0x96'),_0x144e0f['startDate'],_0x144e0f[_0xe725('0x95')]);}if(_0x48db41){logger[_0xe725('0x97')](_0xe725('0x98'),_0x687ee0['toString']());require('child_process')[_0xe725('0x99')](path[_0xe725('0x85')](__dirname,'../../components/export/',_0x48db41[_0xe725('0x8c')]),[_0x48db41['id'],_0x687ee0['toString'](),path[_0xe725('0x85')](__dirname,_0xe725('0x9a'),_0x48db41[_0xe725('0x9b')]),_0x2f6ffb]);return _0x48db41;}else{var _0x37b2c0=squel[_0xe725('0x6b')]();_0x37b2c0['from']('('+_0x687ee0['toString']()+')',_0xe725('0x9c'));_0x37b2c0[_0xe725('0x63')]('COUNT(*)',_0xe725('0x1d'));_0x687ee0[_0xe725('0x1c')](_0x144e0f[_0xe725('0x1c')]||_0x365f6a);_0x687ee0['offset'](_0x144e0f[_0xe725('0x1a')]||0x0);return dbH[_0xe725('0x82')][_0xe725('0x2f')](_0x37b2c0[_0xe725('0x81')](),{'type':dbH[_0xe725('0x82')]['QueryTypes'][_0xe725('0x84')]})['then'](function(_0xfd7b79){if(!_0xfd7b79[_0xe725('0x44')]){_0x2c91e4=0x0;}else{_0x2c91e4=_0xfd7b79[0x0][_0xe725('0x1d')]||0x0;}return dbH[_0xe725('0x82')][_0xe725('0x2f')](_0x687ee0['toString'](),{'type':dbH['sequelize'][_0xe725('0x83')][_0xe725('0x84')]});})['then'](function(_0x520eb4){return{'rows':_0x520eb4||[],'count':_0x2c91e4};});}});}exports[_0xe725('0x9d')]=function(_0x34cd1f,_0x322a89){return runReport(_0x34cd1f[_0xe725('0x43')],_0x34cd1f[_0xe725('0x2f')],_0x34cd1f[_0xe725('0x3c')])['then'](respondWithResult(_0x322a89,null))[_0xe725('0x46')](handleError(_0x322a89,null));};exports[_0xe725('0x9e')]=runReport;exports['query']=function(_0xd2b13d,_0x4b3432){var _0x499362=0xa;var _0x314628=[_0xe725('0x85'),_0xe725('0x9f'),'right_join','cross_join'];var _0x288279={'SUM':_0xe725('0x86'),'COUNT':_0xe725('0x52'),'COUNT DISTINCT':_0xe725('0x53'),'MAX':_0xe725('0x54'),'MIN':'MIN(%s)','AVG':'AVG(%s)','GROUP_CONCAT':_0xe725('0x57'),'GROUP_CONCAT ASC':_0xe725('0x58'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x23427c={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':_0xe725('0x89'),'HOUR':_0xe725('0x59'),'ROUND':_0xe725('0x5a'),'UNIX_TIMESTAMP':_0xe725('0x5b')};var _0x2ad925=function(_0x7f7a51){return!_[_0xe725('0x5c')](['IS\x20NULL',_0xe725('0x5e'),_0xe725('0x5f'),_0xe725('0x60')],_0x7f7a51);};var _0xf1309a=function(_0x3f34e9){if(!_0x3f34e9||!_0x3f34e9[_0xe725('0x61')][_0xe725('0x44')]){return'';}for(var _0x160c9f='(',_0x3a787c=0x0;_0x3a787c<_0x3f34e9['rules']['length'];_0x3a787c+=0x1){_0x3a787c>0x0&&(_0x160c9f+='\x20'+_0x3f34e9[_0xe725('0x8a')]+'\x20');_0x160c9f+=_0x3f34e9[_0xe725('0x61')][_0x3a787c]['group']?_0xf1309a(_0x3f34e9[_0xe725('0x61')][_0x3a787c][_0xe725('0x62')]):_0x3f34e9[_0xe725('0x61')][_0x3a787c][_0xe725('0x63')]+'\x20'+_0x3f34e9[_0xe725('0x61')][_0x3a787c][_0xe725('0x64')]+(_0x2ad925(_0x3f34e9[_0xe725('0x61')][_0x3a787c][_0xe725('0x64')])?'\x20'+_0x3f34e9[_0xe725('0x61')][_0x3a787c][_0xe725('0x65')]:'');}return _0x160c9f+')';};var _0x4f82e6={'where':{'id':_0xd2b13d['params']['id']}},_0x359dcb,_0xf3eab4,_0x4b4d04,_0x299e0a,_0x2b07d1;_0x4f82e6=_[_0xe725('0x3b')]({},_0x4f82e6,_0xd2b13d[_0xe725('0x3c')]);return db[_0xe725('0x3d')][_0xe725('0x45')](_0x4f82e6)['then'](function(_0x568498){if(_0x568498){_0x359dcb=_0x568498;return _0x568498[_0xe725('0x66')]();}return null;})[_0xe725('0x22')](function(_0x49666e){if(_0x49666e){if(!_0x49666e[_0xe725('0x44')]){throw new db[(_0xe725('0x67'))][(_0xe725('0x68'))](_0xe725('0x8b'),0x193);}_0xf3eab4=_0x49666e;return db[_0xe725('0x69')][_0xe725('0x40')]({'raw':!![]});}return null;})[_0xe725('0x22')](function(_0x515581){if(_0x515581){_0x4b4d04=_[_0xe725('0x6a')](_0x515581,'id');var _0x599f60;var _0x4938e1=squel[_0xe725('0x6b')]();_0x4938e1['from'](_0x359dcb['table']);for(var _0x25d3b4=0x0;_0x25d3b4<_0xf3eab4[_0xe725('0x44')];_0x25d3b4+=0x1){_0x599f60=_0xf3eab4[_0x25d3b4]['MetricId']?_0x4b4d04[_0xf3eab4[_0x25d3b4][_0xe725('0x6e')]]['metric']:_0xf3eab4[_0x25d3b4][_0xe725('0x63')];_0x599f60=_0xf3eab4[_0x25d3b4]['function']?_[_0xe725('0x71')](_0x288279[_0xf3eab4[_0x25d3b4][_0xe725('0x70')]],'%s',_0x599f60):_0x599f60;_0x599f60=_0xf3eab4[_0x25d3b4][_0xe725('0x79')]?_[_0xe725('0x71')](_0x23427c[_0xf3eab4[_0x25d3b4]['format']],'%s',_0x599f60):_0x599f60;if(_0xf3eab4[_0x25d3b4]['groupBy']){_0x4938e1[_0xe725('0x62')](_0x599f60);}_0xf3eab4[_0x25d3b4]['orderBy']&&_0x4938e1[_0xe725('0x38')](_0x599f60,_0xf3eab4[_0x25d3b4][_0xe725('0x73')]===_0xe725('0x74')?![]:!![]);_0x4938e1[_0xe725('0x63')](_0x599f60,_0xf3eab4[_0x25d3b4][_0xe725('0x75')]||_0x599f60);}if(_0x359dcb['joins']){_0x359dcb[_0xe725('0x76')]=JSON[_0xe725('0x77')](_0x359dcb[_0xe725('0x76')]);for(var _0x1d9450=0x0;_0x1d9450<_0x359dcb[_0xe725('0x76')]['length'];_0x1d9450+=0x1){if(_0x359dcb['joins'][_0x1d9450][_0xe725('0x2e')]&&_[_0xe725('0x5c')](_0x314628,_0x359dcb['joins'][_0x1d9450][_0xe725('0x2e')])&&_0x359dcb[_0xe725('0x76')][_0x1d9450][_0xe725('0x7b')]&&_0x359dcb[_0xe725('0x76')][_0x1d9450][_0xe725('0x7c')]&&_0x359dcb[_0xe725('0x76')][_0x1d9450][_0xe725('0x78')]){_0x4938e1[_0x359dcb[_0xe725('0x76')][_0x1d9450][_0xe725('0x2e')]](_0x359dcb['joins'][_0x1d9450][_0xe725('0x7c')],null,util[_0xe725('0x79')](_0xe725('0x7a'),_0x359dcb[_0xe725('0x6d')],_0x359dcb[_0xe725('0x76')][_0x1d9450][_0xe725('0x7b')],_0x359dcb[_0xe725('0x76')][_0x1d9450][_0xe725('0x7c')],_0x359dcb[_0xe725('0x76')][_0x1d9450][_0xe725('0x78')]));}}}if(_0x359dcb[_0xe725('0x7d')]){_0x359dcb[_0xe725('0x7d')]=JSON[_0xe725('0x77')](_0x359dcb['conditions']);_0x4938e1[_0xe725('0x3a')](_0xf1309a(_0x359dcb[_0xe725('0x7d')][_0xe725('0x62')]));}_0x2b07d1=_0x4938e1[_0xe725('0x7e')]();_0x4938e1[_0xe725('0x1c')](_0x499362);_0x4938e1[_0xe725('0x1a')](0x0);logger['debug'](_0xe725('0x80'),_0x4938e1[_0xe725('0x81')]());return dbH[_0xe725('0x82')][_0xe725('0x2f')](_0x4938e1[_0xe725('0x81')](),{'type':dbH[_0xe725('0x82')][_0xe725('0x83')][_0xe725('0x84')]});}})['then'](function(){return{'sql':_0x2b07d1[_0xe725('0x81')]()};})[_0xe725('0x22')](respondWithResult(_0x4b3432,null))[_0xe725('0x46')](handleError(_0x4b3432,null));};
\ No newline at end of file
+var _0x8265=['run','runReport','debug','eml-format','rimraf','zip-dir','moment','bluebird','util','path','sox','to-csv','ejs','lodash','squel','querystring','papaparse','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','dbH','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','get','CustomReports','UserProfileResource','error','stack','name','index','map','AnalyticCustomReport','rawAttributes','fieldName','type','model','query','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','sort','where','pick','merge','VIRTUAL','options','include','rows','show','keys','catch','create','role','user','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','find','params','preview','left_join','right_join','COUNT(%s)','COUNT(DISTINCT\x20%s)','AVG(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','SEC_TO_TIME(%s)','DATE(%s)','HOUR(%s)','ROUND(%s)','UNIX_TIMESTAMP(%s)','includes','IS\x20NULL','IS\x20NOT\x20NULL','IS\x20NOT\x20EMPTY','rules','operator','field','condition','value','getFields','Sequelize','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','findAll','keyBy','from','table','MetricId','metric','replace','function','format','groupBy','group','orderBy','DESC','alias','joins','parse','foreignTable','foreignKey','%s.%s\x20=\x20%s.%s','parentKey','conditions','clone','Limited\x20Query:','toString','sequelize','QueryTypes','SELECT','join','cross_join','SUM(%s)','MAX(%s)','MIN(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','AnalyticMetric','select','output','web','fullPath','%s-%s.%s','randomstring','generate','AnalyticExtractedReport','cdr','.calldate\x20BETWEEN\x20?\x20AND\x20?','startDate','endDate','child_process','fork','../../components/export/','COUNT(*)'];(function(_0x6ee7f7,_0x2307cf){var _0x1928f6=function(_0x134d18){while(--_0x134d18){_0x6ee7f7['push'](_0x6ee7f7['shift']());}};_0x1928f6(++_0x2307cf);}(_0x8265,0xa0));var _0x5826=function(_0x253df5,_0x3d8cd0){_0x253df5=_0x253df5-0x0;var _0xddec2b=_0x8265[_0x253df5];return _0xddec2b;};'use strict';var emlformat=require(_0x5826('0x0'));var rimraf=require(_0x5826('0x1'));var zipdir=require(_0x5826('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x5826('0x3'));var BPromise=require(_0x5826('0x4'));var Mustache=require('mustache');var util=require(_0x5826('0x5'));var path=require(_0x5826('0x6'));var sox=require(_0x5826('0x7'));var csv=require(_0x5826('0x8'));var ejs=require(_0x5826('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x5826('0xa'));var squel=require(_0x5826('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x5826('0x8'));var querystring=require(_0x5826('0xc'));var Papa=require(_0x5826('0xd'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x5826('0xe'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x5826('0xf'))(_0x5826('0x10'));var utils=require(_0x5826('0x11'));var config=require(_0x5826('0x12'));var licenseUtil=require(_0x5826('0x13'));var db=require(_0x5826('0x14'))['db'];var dbH=require(_0x5826('0x14'))[_0x5826('0x15')];function respondWithStatusCode(_0x387319,_0xe3fefe){_0xe3fefe=_0xe3fefe||0xcc;return function(_0x36931c){if(_0x36931c){return _0x387319[_0x5826('0x16')](_0xe3fefe);}return _0x387319[_0x5826('0x17')](_0xe3fefe)[_0x5826('0x18')]();};}function respondWithResult(_0x574f3a,_0x2ffb9f){_0x2ffb9f=_0x2ffb9f||0xc8;return function(_0x1647cb){if(_0x1647cb){return _0x574f3a['status'](_0x2ffb9f)[_0x5826('0x19')](_0x1647cb);}};}function respondWithFilteredResult(_0x86a128,_0x156308){return function(_0x5a524a){if(_0x5a524a){var _0x220b81=typeof _0x156308[_0x5826('0x1a')]===_0x5826('0x1b')&&typeof _0x156308[_0x5826('0x1c')]===_0x5826('0x1b');var _0x1c77e6=_0x5a524a[_0x5826('0x1d')];var _0x62be07=_0x220b81?0x0:_0x156308['offset'];var _0x5b3d39=_0x220b81?_0x5a524a[_0x5826('0x1d')]:_0x156308['offset']+_0x156308[_0x5826('0x1c')];var _0x1b4d5d;if(_0x5b3d39>=_0x1c77e6){_0x5b3d39=_0x1c77e6;_0x1b4d5d=0xc8;}else{_0x1b4d5d=0xce;}_0x86a128[_0x5826('0x17')](_0x1b4d5d);return _0x86a128[_0x5826('0x1e')](_0x5826('0x1f'),_0x62be07+'-'+_0x5b3d39+'/'+_0x1c77e6)[_0x5826('0x19')](_0x5a524a);}return null;};}function patchUpdates(_0x2c083c){return function(_0x249010){try{jsonpatch[_0x5826('0x20')](_0x249010,_0x2c083c,!![]);}catch(_0x3b1682){return BPromise[_0x5826('0x21')](_0x3b1682);}return _0x249010[_0x5826('0x22')]();};}function saveUpdates(_0x5616c5,_0x4a7c8f){return function(_0x2b6c60){if(_0x2b6c60){return _0x2b6c60[_0x5826('0x23')](_0x5616c5)[_0x5826('0x24')](function(_0x5032a6){return _0x5032a6;});}return null;};}function removeEntity(_0x165bf9,_0x17c6c0){return function(_0x5bfaef){if(_0x5bfaef){return _0x5bfaef[_0x5826('0x25')]()[_0x5826('0x24')](function(){var _0x1e23dc=_0x5bfaef[_0x5826('0x26')]({'plain':!![]});var _0x5f4c74=_0x5826('0x27');return db[_0x5826('0x28')][_0x5826('0x25')]({'where':{'type':_0x5f4c74,'resourceId':_0x1e23dc['id']}})[_0x5826('0x24')](function(){return _0x5bfaef;});})[_0x5826('0x24')](function(){_0x165bf9[_0x5826('0x17')](0xcc)[_0x5826('0x18')]();});}};}function handleEntityNotFound(_0x28b817,_0x1c12cb){return function(_0x41f92c){if(!_0x41f92c){_0x28b817[_0x5826('0x16')](0x194);}return _0x41f92c;};}function handleError(_0x42b2d1,_0x3efcd6){_0x3efcd6=_0x3efcd6||0x1f4;return function(_0xe3a678){logger[_0x5826('0x29')](_0xe3a678[_0x5826('0x2a')]);if(_0xe3a678[_0x5826('0x2b')]){delete _0xe3a678['name'];}_0x42b2d1['status'](_0x3efcd6)['send'](_0xe3a678);};}exports[_0x5826('0x2c')]=function(_0x1baa1f,_0x3eec18){var _0x2c3f41={},_0x333016={},_0x195d21={'count':0x0,'rows':[]};var _0x150e19=_[_0x5826('0x2d')](db[_0x5826('0x2e')][_0x5826('0x2f')],function(_0x2fd634){return{'name':_0x2fd634[_0x5826('0x30')],'type':_0x2fd634[_0x5826('0x31')]['key']};});_0x333016[_0x5826('0x32')]=_[_0x5826('0x2d')](_0x150e19,_0x5826('0x2b'));_0x333016[_0x5826('0x33')]=_['keys'](_0x1baa1f[_0x5826('0x33')]);_0x333016[_0x5826('0x34')]=_['intersection'](_0x333016[_0x5826('0x32')],_0x333016[_0x5826('0x33')]);_0x2c3f41[_0x5826('0x35')]=_[_0x5826('0x36')](_0x333016[_0x5826('0x32')],qs[_0x5826('0x37')](_0x1baa1f[_0x5826('0x33')]['fields']));_0x2c3f41[_0x5826('0x35')]=_0x2c3f41[_0x5826('0x35')][_0x5826('0x38')]?_0x2c3f41[_0x5826('0x35')]:_0x333016[_0x5826('0x32')];if(!_0x1baa1f['query'][_0x5826('0x39')](_0x5826('0x3a'))){_0x2c3f41['limit']=qs[_0x5826('0x1c')](_0x1baa1f[_0x5826('0x33')]['limit']);_0x2c3f41['offset']=qs[_0x5826('0x1a')](_0x1baa1f[_0x5826('0x33')][_0x5826('0x1a')]);}_0x2c3f41['order']=qs[_0x5826('0x3b')](_0x1baa1f[_0x5826('0x33')]['sort']);_0x2c3f41[_0x5826('0x3c')]=qs[_0x5826('0x34')](_[_0x5826('0x3d')](_0x1baa1f[_0x5826('0x33')],_0x333016[_0x5826('0x34')]),_0x150e19);if(_0x1baa1f[_0x5826('0x33')]['filter']){_0x2c3f41[_0x5826('0x3c')]=_[_0x5826('0x3e')](_0x2c3f41[_0x5826('0x3c')],{'$or':_['map'](_0x150e19,function(_0x55fa94){if(_0x55fa94[_0x5826('0x31')]!==_0x5826('0x3f')){var _0xb290bc={};_0xb290bc[_0x55fa94[_0x5826('0x2b')]]={'$like':'%'+_0x1baa1f[_0x5826('0x33')]['filter']+'%'};return _0xb290bc;}})});}_0x2c3f41=_[_0x5826('0x3e')]({},_0x2c3f41,_0x1baa1f[_0x5826('0x40')]);var _0x4a951b={'where':_0x2c3f41[_0x5826('0x3c')]};return db[_0x5826('0x2e')]['count'](_0x4a951b)[_0x5826('0x24')](function(_0x5762f6){_0x195d21['count']=_0x5762f6;if(_0x1baa1f['query']['includeAll']){_0x2c3f41[_0x5826('0x41')]=[{'all':!![]}];}return db[_0x5826('0x2e')]['findAll'](_0x2c3f41);})[_0x5826('0x24')](function(_0xf66d1d){_0x195d21[_0x5826('0x42')]=_0xf66d1d;return _0x195d21;})['then'](respondWithFilteredResult(_0x3eec18,_0x2c3f41))['catch'](handleError(_0x3eec18,null));};exports[_0x5826('0x43')]=function(_0xd059db,_0x2c07a3){var _0x1a6f70={'raw':![],'where':{'id':_0xd059db['params']['id']}},_0x56b296={};_0x56b296[_0x5826('0x32')]=_[_0x5826('0x44')](db[_0x5826('0x2e')][_0x5826('0x2f')]);_0x56b296['query']=_[_0x5826('0x44')](_0xd059db['query']);_0x56b296[_0x5826('0x34')]=_['intersection'](_0x56b296[_0x5826('0x32')],_0x56b296[_0x5826('0x33')]);_0x1a6f70[_0x5826('0x35')]=_[_0x5826('0x36')](_0x56b296[_0x5826('0x32')],qs[_0x5826('0x37')](_0xd059db[_0x5826('0x33')][_0x5826('0x37')]));_0x1a6f70[_0x5826('0x35')]=_0x1a6f70['attributes'][_0x5826('0x38')]?_0x1a6f70['attributes']:_0x56b296[_0x5826('0x32')];if(_0xd059db[_0x5826('0x33')]['includeAll']){_0x1a6f70[_0x5826('0x41')]=[{'all':!![]}];}_0x1a6f70=_[_0x5826('0x3e')]({},_0x1a6f70,_0xd059db[_0x5826('0x40')]);return db['AnalyticCustomReport']['find'](_0x1a6f70)[_0x5826('0x24')](handleEntityNotFound(_0x2c07a3,null))[_0x5826('0x24')](respondWithResult(_0x2c07a3,null))[_0x5826('0x45')](handleError(_0x2c07a3,null));};exports['create']=function(_0x5e9244,_0x26ba3a){return db[_0x5826('0x2e')][_0x5826('0x46')](_0x5e9244['body'],{})[_0x5826('0x24')](function(_0xeda0dc){var _0x36526b=_0x5e9244['user'][_0x5826('0x26')]({'plain':!![]});if(!_0x36526b)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x36526b[_0x5826('0x47')]===_0x5826('0x48')){var _0xc93897=_0xeda0dc[_0x5826('0x26')]({'plain':!![]});var _0x4aa74c='Reports';return db['UserProfileSection']['find']({'where':{'name':_0x4aa74c,'userProfileId':_0x36526b['userProfileId']},'raw':!![]})[_0x5826('0x24')](function(_0xfc9c4a){if(_0xfc9c4a&&_0xfc9c4a[_0x5826('0x49')]===0x0){return db['UserProfileResource']['create']({'name':_0xc93897[_0x5826('0x2b')],'resourceId':_0xc93897['id'],'type':'CustomReports','sectionId':_0xfc9c4a['id']},{})[_0x5826('0x24')](function(){return _0xeda0dc;});}else{return _0xeda0dc;}})[_0x5826('0x45')](function(_0x51f212){logger[_0x5826('0x29')](_0x5826('0x4a'),_0x51f212);throw _0x51f212;});}return _0xeda0dc;})[_0x5826('0x24')](respondWithResult(_0x26ba3a,0xc9))[_0x5826('0x45')](handleError(_0x26ba3a,null));};exports['update']=function(_0x1ec5d6,_0x2eeb33){if(_0x1ec5d6[_0x5826('0x4b')]['id']){delete _0x1ec5d6[_0x5826('0x4b')]['id'];}return db['AnalyticCustomReport'][_0x5826('0x4c')]({'where':{'id':_0x1ec5d6['params']['id']}})[_0x5826('0x24')](handleEntityNotFound(_0x2eeb33,null))['then'](saveUpdates(_0x1ec5d6[_0x5826('0x4b')],null))['then'](respondWithResult(_0x2eeb33,null))[_0x5826('0x45')](handleError(_0x2eeb33,null));};exports['destroy']=function(_0x53044a,_0x37424f){return db[_0x5826('0x2e')]['find']({'where':{'id':_0x53044a[_0x5826('0x4d')]['id']}})[_0x5826('0x24')](handleEntityNotFound(_0x37424f,null))[_0x5826('0x24')](removeEntity(_0x37424f,null))[_0x5826('0x45')](handleError(_0x37424f,null));};exports[_0x5826('0x4e')]=function(_0x2dd4bd,_0x3672de){var _0x4f2693=0xa;var _0x1ae7dc=['join',_0x5826('0x4f'),_0x5826('0x50'),'cross_join'];var _0x5dab9c={'SUM':'SUM(%s)','COUNT':_0x5826('0x51'),'COUNT DISTINCT':_0x5826('0x52'),'MAX':'MAX(%s)','MIN':'MIN(%s)','AVG':_0x5826('0x53'),'GROUP_CONCAT':_0x5826('0x54'),'GROUP_CONCAT ASC':_0x5826('0x55'),'GROUP_CONCAT DESC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)'};var _0x16d691={'SEC_TO_TIME':_0x5826('0x56'),'DATE':_0x5826('0x57'),'HOUR':_0x5826('0x58'),'ROUND':_0x5826('0x59'),'UNIX_TIMESTAMP':_0x5826('0x5a')};var _0x2552a6=function(_0x49c2d0){return!_[_0x5826('0x5b')]([_0x5826('0x5c'),_0x5826('0x5d'),'IS\x20EMPTY',_0x5826('0x5e')],_0x49c2d0);};var _0x3c6334=function(_0xb37584){if(!_0xb37584||!_0xb37584[_0x5826('0x5f')][_0x5826('0x38')]){return'';}for(var _0x12bc35='(',_0x475b3a=0x0;_0x475b3a<_0xb37584['rules'][_0x5826('0x38')];_0x475b3a+=0x1){_0x475b3a>0x0&&(_0x12bc35+='\x20'+_0xb37584[_0x5826('0x60')]+'\x20');_0x12bc35+=_0xb37584['rules'][_0x475b3a]['group']?_0x3c6334(_0xb37584[_0x5826('0x5f')][_0x475b3a]['group']):_0xb37584[_0x5826('0x5f')][_0x475b3a][_0x5826('0x61')]+'\x20'+_0xb37584[_0x5826('0x5f')][_0x475b3a]['condition']+(_0x2552a6(_0xb37584[_0x5826('0x5f')][_0x475b3a][_0x5826('0x62')])?'\x20'+_0xb37584[_0x5826('0x5f')][_0x475b3a][_0x5826('0x63')]:'');}return _0x12bc35+')';};var _0x45a60a={'where':{'id':_0x2dd4bd['params']['id']}},_0x36ebf8,_0x14fd45,_0x2419ef,_0x395644,_0x47b088;_0x45a60a=_['merge']({},_0x45a60a,_0x2dd4bd[_0x5826('0x40')]);return db[_0x5826('0x2e')][_0x5826('0x4c')](_0x45a60a)[_0x5826('0x24')](function(_0x331b0b){if(_0x331b0b){_0x36ebf8=_0x331b0b;return _0x331b0b[_0x5826('0x64')]();}return null;})[_0x5826('0x24')](function(_0x181f77){if(_0x181f77){if(!_0x181f77['length']){throw new db[(_0x5826('0x65'))][(_0x5826('0x66'))](_0x5826('0x67'),0x193);}_0x14fd45=_0x181f77;return db['AnalyticMetric'][_0x5826('0x68')]({'raw':!![]});}return null;})['then'](function(_0x3f57c8){if(_0x3f57c8){_0x2419ef=_[_0x5826('0x69')](_0x3f57c8,'id');var _0x179834;var _0x4d0aea=squel['select']();_0x4d0aea[_0x5826('0x6a')](_0x36ebf8[_0x5826('0x6b')]);for(var _0x1b108e=0x0;_0x1b108e<_0x14fd45[_0x5826('0x38')];_0x1b108e+=0x1){_0x179834=_0x14fd45[_0x1b108e][_0x5826('0x6c')]?_0x2419ef[_0x14fd45[_0x1b108e][_0x5826('0x6c')]][_0x5826('0x6d')]:_0x14fd45[_0x1b108e][_0x5826('0x61')];_0x179834=_0x14fd45[_0x1b108e]['function']?_[_0x5826('0x6e')](_0x5dab9c[_0x14fd45[_0x1b108e][_0x5826('0x6f')]],'%s',_0x179834):_0x179834;_0x179834=_0x14fd45[_0x1b108e]['format']?_[_0x5826('0x6e')](_0x16d691[_0x14fd45[_0x1b108e][_0x5826('0x70')]],'%s',_0x179834):_0x179834;if(_0x14fd45[_0x1b108e][_0x5826('0x71')]){_0x4d0aea[_0x5826('0x72')](_0x179834);}_0x14fd45[_0x1b108e]['orderBy']&&_0x4d0aea['order'](_0x179834,_0x14fd45[_0x1b108e][_0x5826('0x73')]===_0x5826('0x74')?![]:!![]);_0x4d0aea[_0x5826('0x61')](_0x179834,_0x14fd45[_0x1b108e][_0x5826('0x75')]||_0x179834);}if(_0x36ebf8['joins']){_0x36ebf8[_0x5826('0x76')]=JSON[_0x5826('0x77')](_0x36ebf8[_0x5826('0x76')]);for(var _0x4ba5b4=0x0;_0x4ba5b4<_0x36ebf8['joins'][_0x5826('0x38')];_0x4ba5b4+=0x1){if(_0x36ebf8[_0x5826('0x76')][_0x4ba5b4]['type']&&_[_0x5826('0x5b')](_0x1ae7dc,_0x36ebf8[_0x5826('0x76')][_0x4ba5b4]['type'])&&_0x36ebf8['joins'][_0x4ba5b4]['parentKey']&&_0x36ebf8[_0x5826('0x76')][_0x4ba5b4][_0x5826('0x78')]&&_0x36ebf8[_0x5826('0x76')][_0x4ba5b4][_0x5826('0x79')]){_0x4d0aea[_0x36ebf8[_0x5826('0x76')][_0x4ba5b4][_0x5826('0x31')]](_0x36ebf8['joins'][_0x4ba5b4][_0x5826('0x78')],null,util[_0x5826('0x70')](_0x5826('0x7a'),_0x36ebf8[_0x5826('0x6b')],_0x36ebf8[_0x5826('0x76')][_0x4ba5b4][_0x5826('0x7b')],_0x36ebf8[_0x5826('0x76')][_0x4ba5b4][_0x5826('0x78')],_0x36ebf8[_0x5826('0x76')][_0x4ba5b4][_0x5826('0x79')]));}}}if(_0x36ebf8['conditions']){_0x36ebf8[_0x5826('0x7c')]=JSON[_0x5826('0x77')](_0x36ebf8[_0x5826('0x7c')]);_0x4d0aea[_0x5826('0x3c')](_0x3c6334(_0x36ebf8[_0x5826('0x7c')][_0x5826('0x72')]));}_0x47b088=_0x4d0aea[_0x5826('0x7d')]();_0x4d0aea[_0x5826('0x1c')](_0x4f2693);_0x4d0aea['offset'](0x0);logger['debug'](_0x5826('0x7e'),_0x4d0aea[_0x5826('0x7f')]());return dbH[_0x5826('0x80')][_0x5826('0x33')](_0x4d0aea['toString'](),{'type':dbH['sequelize'][_0x5826('0x81')][_0x5826('0x82')]});}})['then'](respondWithResult(_0x3672de,null))[_0x5826('0x45')](handleError(_0x3672de,null));};function runReport(_0x57d550,_0x1cef74,_0x3e6165){var _0x315cb0=_0x1cef74[_0x5826('0x2b')];var _0x52af1d=0xa;var _0x43ff8f=[_0x5826('0x83'),_0x5826('0x4f'),_0x5826('0x50'),_0x5826('0x84')];var _0x4c8189={'SUM':_0x5826('0x85'),'COUNT':_0x5826('0x51'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0x5826('0x86'),'MIN':_0x5826('0x87'),'AVG':'AVG(%s)','GROUP_CONCAT':_0x5826('0x54'),'GROUP_CONCAT ASC':_0x5826('0x55'),'GROUP_CONCAT DESC':_0x5826('0x88')};var _0x29dfb8={'SEC_TO_TIME':_0x5826('0x56'),'DATE':_0x5826('0x57'),'HOUR':'HOUR(%s)','ROUND':'ROUND(%s)','UNIX_TIMESTAMP':_0x5826('0x5a')};var _0x2ee2f6=function(_0x372228){return!_[_0x5826('0x5b')]([_0x5826('0x5c'),_0x5826('0x5d'),'IS\x20EMPTY',_0x5826('0x5e')],_0x372228);};var _0x44cb58=function(_0x50fc2f){if(!_0x50fc2f||!_0x50fc2f['rules'][_0x5826('0x38')]){return'';}for(var _0xd9598f='(',_0xf0ff4c=0x0;_0xf0ff4c<_0x50fc2f['rules'][_0x5826('0x38')];_0xf0ff4c+=0x1){_0xf0ff4c>0x0&&(_0xd9598f+='\x20'+_0x50fc2f[_0x5826('0x60')]+'\x20');_0xd9598f+=_0x50fc2f[_0x5826('0x5f')][_0xf0ff4c]['group']?_0x44cb58(_0x50fc2f[_0x5826('0x5f')][_0xf0ff4c][_0x5826('0x72')]):_0x50fc2f['rules'][_0xf0ff4c][_0x5826('0x61')]+'\x20'+_0x50fc2f[_0x5826('0x5f')][_0xf0ff4c][_0x5826('0x62')]+(_0x2ee2f6(_0x50fc2f['rules'][_0xf0ff4c][_0x5826('0x62')])?'\x20'+_0x50fc2f[_0x5826('0x5f')][_0xf0ff4c][_0x5826('0x63')]:'');}return _0xd9598f+')';};var _0x1be5d3={'where':{'id':_0x57d550['id']}},_0xf2d729,_0x28436b,_0x567652,_0x4c3776,_0x4b969a;_0x1be5d3=_[_0x5826('0x3e')]({},_0x1be5d3,_0x3e6165);return db[_0x5826('0x2e')][_0x5826('0x4c')](_0x1be5d3)[_0x5826('0x24')](function(_0x2756ae){if(_0x2756ae){_0xf2d729=_0x2756ae;return _0x2756ae[_0x5826('0x64')]();}return null;})[_0x5826('0x24')](function(_0x417a54){if(_0x417a54){if(!_0x417a54[_0x5826('0x38')]){throw new db['Sequelize']['ValidationErrorItem']('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x28436b=_0x417a54;return db[_0x5826('0x89')][_0x5826('0x68')]({'raw':!![]});}return null;})[_0x5826('0x24')](function(_0x37c2d7){if(_0x37c2d7){_0x567652=_['keyBy'](_0x37c2d7,'id');var _0x23c1c6;var _0x4bb38d=squel[_0x5826('0x8a')]();_0x4bb38d[_0x5826('0x6a')](_0xf2d729[_0x5826('0x6b')]);for(var _0x516f39=0x0;_0x516f39<_0x28436b[_0x5826('0x38')];_0x516f39+=0x1){_0x23c1c6=_0x28436b[_0x516f39][_0x5826('0x6c')]?_0x567652[_0x28436b[_0x516f39]['MetricId']][_0x5826('0x6d')]:_0x28436b[_0x516f39][_0x5826('0x61')];_0x23c1c6=_0x28436b[_0x516f39][_0x5826('0x6f')]?_['replace'](_0x4c8189[_0x28436b[_0x516f39][_0x5826('0x6f')]],'%s',_0x23c1c6):_0x23c1c6;_0x23c1c6=_0x28436b[_0x516f39][_0x5826('0x70')]?_['replace'](_0x29dfb8[_0x28436b[_0x516f39][_0x5826('0x70')]],'%s',_0x23c1c6):_0x23c1c6;if(_0x28436b[_0x516f39][_0x5826('0x71')]){_0x4bb38d['group'](_0x23c1c6);}_0x28436b[_0x516f39][_0x5826('0x73')]&&_0x4bb38d['order'](_0x23c1c6,_0x28436b[_0x516f39][_0x5826('0x73')]===_0x5826('0x74')?![]:!![]);_0x4bb38d[_0x5826('0x61')](_0x23c1c6,_0x28436b[_0x516f39][_0x5826('0x75')]||_0x23c1c6);}if(_0xf2d729[_0x5826('0x76')]){_0xf2d729[_0x5826('0x76')]=JSON['parse'](_0xf2d729[_0x5826('0x76')]);for(var _0x52abc7=0x0;_0x52abc7<_0xf2d729[_0x5826('0x76')][_0x5826('0x38')];_0x52abc7+=0x1){if(_0xf2d729[_0x5826('0x76')][_0x52abc7][_0x5826('0x31')]&&_[_0x5826('0x5b')](_0x43ff8f,_0xf2d729['joins'][_0x52abc7][_0x5826('0x31')])&&_0xf2d729[_0x5826('0x76')][_0x52abc7]['parentKey']&&_0xf2d729[_0x5826('0x76')][_0x52abc7]['foreignTable']&&_0xf2d729[_0x5826('0x76')][_0x52abc7]['foreignKey']){_0x4bb38d[_0xf2d729[_0x5826('0x76')][_0x52abc7][_0x5826('0x31')]](_0xf2d729[_0x5826('0x76')][_0x52abc7][_0x5826('0x78')],null,util[_0x5826('0x70')]('%s.%s\x20=\x20%s.%s',_0xf2d729['table'],_0xf2d729[_0x5826('0x76')][_0x52abc7][_0x5826('0x7b')],_0xf2d729[_0x5826('0x76')][_0x52abc7][_0x5826('0x78')],_0xf2d729[_0x5826('0x76')][_0x52abc7][_0x5826('0x79')]));}}}if(_0xf2d729['conditions']){_0xf2d729['conditions']=JSON[_0x5826('0x77')](_0xf2d729[_0x5826('0x7c')]);_0x4bb38d[_0x5826('0x3c')](_0x44cb58(_0xf2d729[_0x5826('0x7c')][_0x5826('0x72')]));}_0x4b969a=_0x4bb38d['clone']();_0x4bb38d[_0x5826('0x1c')](_0x52af1d);_0x4bb38d[_0x5826('0x1a')](0x0);return;}})[_0x5826('0x24')](function(){if(_0x1cef74[_0x5826('0x8b')]===_0x5826('0x8c')){return null;}var _0x42d700=_[_0x5826('0x3e')](_0x1cef74,{'name':_0x1cef74[_0x5826('0x8d')]||_0x1cef74[_0x5826('0x2b')]||_0xf2d729[_0x5826('0x2b')],'basename':_0x315cb0,'savename':util[_0x5826('0x70')](_0x5826('0x8e'),_0x1cef74[_0x5826('0x2b')]||_0xf2d729[_0x5826('0x2b')],require(_0x5826('0x8f'))[_0x5826('0x90')](0x4),_0x1cef74[_0x5826('0x8b')]||'csv'),'reportId':_0xf2d729['id'],'reportType':'custom'});return db[_0x5826('0x91')][_0x5826('0x46')](_0x42d700,{'raw':!![]});})['then'](function(_0x2498eb){if(_0xf2d729[_0x5826('0x6b')]===_0x5826('0x92')){_0x4b969a[_0x5826('0x3c')](_0xf2d729['table']+_0x5826('0x93'),_0x1cef74[_0x5826('0x94')],_0x1cef74[_0x5826('0x95')]);}else{_0x4b969a[_0x5826('0x3c')](_0xf2d729['table']+'.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0x1cef74[_0x5826('0x94')],_0x1cef74[_0x5826('0x95')]);}if(_0x2498eb){logger['info']('Run\x20Query:',_0x4b969a[_0x5826('0x7f')]());require(_0x5826('0x96'))[_0x5826('0x97')](path[_0x5826('0x83')](__dirname,_0x5826('0x98'),_0x2498eb[_0x5826('0x8b')]),[_0x2498eb['id'],_0x4b969a[_0x5826('0x7f')](),path['join'](__dirname,'../../files/reports',_0x2498eb['savename']),_0x315cb0]);return _0x2498eb;}else{var _0x24fa90=squel['select']();_0x24fa90[_0x5826('0x6a')]('('+_0x4b969a[_0x5826('0x7f')]()+')','countTable');_0x24fa90[_0x5826('0x61')](_0x5826('0x99'),_0x5826('0x1d'));_0x4b969a['limit'](_0x1cef74[_0x5826('0x1c')]||_0x52af1d);_0x4b969a[_0x5826('0x1a')](_0x1cef74['offset']||0x0);return dbH[_0x5826('0x80')]['query'](_0x24fa90[_0x5826('0x7f')](),{'type':dbH['sequelize'][_0x5826('0x81')]['SELECT']})[_0x5826('0x24')](function(_0x2c0dfd){if(!_0x2c0dfd[_0x5826('0x38')]){_0x4c3776=0x0;}else{_0x4c3776=_0x2c0dfd[0x0][_0x5826('0x1d')]||0x0;}return dbH['sequelize']['query'](_0x4b969a['toString'](),{'type':dbH[_0x5826('0x80')][_0x5826('0x81')][_0x5826('0x82')]});})[_0x5826('0x24')](function(_0x2e1b5d){return{'rows':_0x2e1b5d||[],'count':_0x4c3776};});}});}exports[_0x5826('0x9a')]=function(_0x5f4e45,_0x4e5110){return runReport(_0x5f4e45[_0x5826('0x4d')],_0x5f4e45[_0x5826('0x33')],_0x5f4e45['options'])[_0x5826('0x24')](respondWithResult(_0x4e5110,null))['catch'](handleError(_0x4e5110,null));};exports[_0x5826('0x9b')]=runReport;exports[_0x5826('0x33')]=function(_0x3302b4,_0x264887){var _0x3c4b3d=0xa;var _0x558ea0=[_0x5826('0x83'),_0x5826('0x4f'),_0x5826('0x50'),_0x5826('0x84')];var _0x70b877={'SUM':_0x5826('0x85'),'COUNT':_0x5826('0x51'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':'MAX(%s)','MIN':'MIN(%s)','AVG':_0x5826('0x53'),'GROUP_CONCAT':_0x5826('0x54'),'GROUP_CONCAT ASC':_0x5826('0x55'),'GROUP_CONCAT DESC':_0x5826('0x88')};var _0x20a24b={'SEC_TO_TIME':_0x5826('0x56'),'DATE':_0x5826('0x57'),'HOUR':_0x5826('0x58'),'ROUND':_0x5826('0x59'),'UNIX_TIMESTAMP':_0x5826('0x5a')};var _0x5cb241=function(_0x5df2b1){return!_[_0x5826('0x5b')](['IS\x20NULL',_0x5826('0x5d'),'IS\x20EMPTY',_0x5826('0x5e')],_0x5df2b1);};var _0x3897fb=function(_0x4b27b3){if(!_0x4b27b3||!_0x4b27b3[_0x5826('0x5f')][_0x5826('0x38')]){return'';}for(var _0x467708='(',_0x2278ea=0x0;_0x2278ea<_0x4b27b3[_0x5826('0x5f')][_0x5826('0x38')];_0x2278ea+=0x1){_0x2278ea>0x0&&(_0x467708+='\x20'+_0x4b27b3[_0x5826('0x60')]+'\x20');_0x467708+=_0x4b27b3[_0x5826('0x5f')][_0x2278ea]['group']?_0x3897fb(_0x4b27b3[_0x5826('0x5f')][_0x2278ea][_0x5826('0x72')]):_0x4b27b3['rules'][_0x2278ea][_0x5826('0x61')]+'\x20'+_0x4b27b3[_0x5826('0x5f')][_0x2278ea][_0x5826('0x62')]+(_0x5cb241(_0x4b27b3[_0x5826('0x5f')][_0x2278ea][_0x5826('0x62')])?'\x20'+_0x4b27b3[_0x5826('0x5f')][_0x2278ea][_0x5826('0x63')]:'');}return _0x467708+')';};var _0x472ee0={'where':{'id':_0x3302b4['params']['id']}},_0x365e49,_0x39c0f1,_0x58fc9c,_0x3d6f60,_0x4bd151;_0x472ee0=_[_0x5826('0x3e')]({},_0x472ee0,_0x3302b4[_0x5826('0x40')]);return db[_0x5826('0x2e')]['find'](_0x472ee0)[_0x5826('0x24')](function(_0x1eadbb){if(_0x1eadbb){_0x365e49=_0x1eadbb;return _0x1eadbb[_0x5826('0x64')]();}return null;})[_0x5826('0x24')](function(_0x2eb9c7){if(_0x2eb9c7){if(!_0x2eb9c7['length']){throw new db[(_0x5826('0x65'))]['ValidationErrorItem'](_0x5826('0x67'),0x193);}_0x39c0f1=_0x2eb9c7;return db['AnalyticMetric']['findAll']({'raw':!![]});}return null;})['then'](function(_0x442136){if(_0x442136){_0x58fc9c=_[_0x5826('0x69')](_0x442136,'id');var _0xd6ba0a;var _0x169543=squel[_0x5826('0x8a')]();_0x169543[_0x5826('0x6a')](_0x365e49['table']);for(var _0x1a8819=0x0;_0x1a8819<_0x39c0f1[_0x5826('0x38')];_0x1a8819+=0x1){_0xd6ba0a=_0x39c0f1[_0x1a8819][_0x5826('0x6c')]?_0x58fc9c[_0x39c0f1[_0x1a8819][_0x5826('0x6c')]]['metric']:_0x39c0f1[_0x1a8819]['field'];_0xd6ba0a=_0x39c0f1[_0x1a8819][_0x5826('0x6f')]?_[_0x5826('0x6e')](_0x70b877[_0x39c0f1[_0x1a8819]['function']],'%s',_0xd6ba0a):_0xd6ba0a;_0xd6ba0a=_0x39c0f1[_0x1a8819][_0x5826('0x70')]?_[_0x5826('0x6e')](_0x20a24b[_0x39c0f1[_0x1a8819][_0x5826('0x70')]],'%s',_0xd6ba0a):_0xd6ba0a;if(_0x39c0f1[_0x1a8819]['groupBy']){_0x169543[_0x5826('0x72')](_0xd6ba0a);}_0x39c0f1[_0x1a8819][_0x5826('0x73')]&&_0x169543['order'](_0xd6ba0a,_0x39c0f1[_0x1a8819][_0x5826('0x73')]===_0x5826('0x74')?![]:!![]);_0x169543[_0x5826('0x61')](_0xd6ba0a,_0x39c0f1[_0x1a8819][_0x5826('0x75')]||_0xd6ba0a);}if(_0x365e49[_0x5826('0x76')]){_0x365e49[_0x5826('0x76')]=JSON[_0x5826('0x77')](_0x365e49[_0x5826('0x76')]);for(var _0x181d4e=0x0;_0x181d4e<_0x365e49['joins'][_0x5826('0x38')];_0x181d4e+=0x1){if(_0x365e49[_0x5826('0x76')][_0x181d4e][_0x5826('0x31')]&&_['includes'](_0x558ea0,_0x365e49[_0x5826('0x76')][_0x181d4e]['type'])&&_0x365e49[_0x5826('0x76')][_0x181d4e][_0x5826('0x7b')]&&_0x365e49[_0x5826('0x76')][_0x181d4e][_0x5826('0x78')]&&_0x365e49[_0x5826('0x76')][_0x181d4e]['foreignKey']){_0x169543[_0x365e49[_0x5826('0x76')][_0x181d4e][_0x5826('0x31')]](_0x365e49['joins'][_0x181d4e][_0x5826('0x78')],null,util[_0x5826('0x70')](_0x5826('0x7a'),_0x365e49[_0x5826('0x6b')],_0x365e49[_0x5826('0x76')][_0x181d4e][_0x5826('0x7b')],_0x365e49[_0x5826('0x76')][_0x181d4e][_0x5826('0x78')],_0x365e49[_0x5826('0x76')][_0x181d4e]['foreignKey']));}}}if(_0x365e49[_0x5826('0x7c')]){_0x365e49[_0x5826('0x7c')]=JSON[_0x5826('0x77')](_0x365e49['conditions']);_0x169543[_0x5826('0x3c')](_0x3897fb(_0x365e49[_0x5826('0x7c')]['group']));}_0x4bd151=_0x169543[_0x5826('0x7d')]();_0x169543[_0x5826('0x1c')](_0x3c4b3d);_0x169543['offset'](0x0);logger[_0x5826('0x9c')](_0x5826('0x7e'),_0x169543['toString']());return dbH[_0x5826('0x80')][_0x5826('0x33')](_0x169543[_0x5826('0x7f')](),{'type':dbH['sequelize'][_0x5826('0x81')][_0x5826('0x82')]});}})[_0x5826('0x24')](function(){return{'sql':_0x4bd151['toString']()};})[_0x5826('0x24')](respondWithResult(_0x264887,null))[_0x5826('0x45')](handleError(_0x264887,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa870=['path','rimraf','../../config/environment','./analyticCustomReport.attributes','exports','define','AnalyticCustomReport','analytics_custom_reports','lodash','util','../../config/logger','api','moment','bluebird'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xa870,0x78));var _0x0a87=function(_0xf7641a,_0x21823a){_0xf7641a=_0xf7641a-0x0;var _0x2a3673=_0xa870[_0xf7641a];return _0x2a3673;};'use strict';var _=require(_0x0a87('0x0'));var util=require(_0x0a87('0x1'));var logger=require(_0x0a87('0x2'))(_0x0a87('0x3'));var moment=require(_0x0a87('0x4'));var BPromise=require(_0x0a87('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x0a87('0x6'));var rimraf=require(_0x0a87('0x7'));var config=require(_0x0a87('0x8'));var attributes=require(_0x0a87('0x9'));module[_0x0a87('0xa')]=function(_0x32b5e9,_0x10afc0){return _0x32b5e9[_0x0a87('0xb')](_0x0a87('0xc'),attributes,{'tableName':_0x0a87('0xd'),'paranoid':!![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x2c66=['exports','analytics_custom_reports','lodash','../../config/logger','api','bluebird','request-promise','path','../../config/environment'];(function(_0x3ab51d,_0x2fa01d){var _0x29a04e=function(_0x7807b0){while(--_0x7807b0){_0x3ab51d['push'](_0x3ab51d['shift']());}};_0x29a04e(++_0x2fa01d);}(_0x2c66,0x146));var _0x62c6=function(_0x263a2f,_0x1e81e3){_0x263a2f=_0x263a2f-0x0;var _0x8020e8=_0x2c66[_0x263a2f];return _0x8020e8;};'use strict';var _=require(_0x62c6('0x0'));var util=require('util');var logger=require(_0x62c6('0x1'))(_0x62c6('0x2'));var moment=require('moment');var BPromise=require(_0x62c6('0x3'));var rp=require(_0x62c6('0x4'));var fs=require('fs');var path=require(_0x62c6('0x5'));var rimraf=require('rimraf');var config=require(_0x62c6('0x6'));var attributes=require('./analyticCustomReport.attributes');module[_0x62c6('0x7')]=function(_0x28291c,_0x33307f){return _0x28291c['define']('AnalyticCustomReport',attributes,{'tableName':_0x62c6('0x8'),'paranoid':!![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3ba7=['AnalyticCustomReport,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','AnalyticCustomReport,\x20%s,\x20%s','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','client','http','request','then','info','debug'];(function(_0x3f7035,_0x1c9652){var _0x3b078e=function(_0x49fb89){while(--_0x49fb89){_0x3f7035['push'](_0x3f7035['shift']());}};_0x3b078e(++_0x1c9652);}(_0x3ba7,0x11c));var _0x73ba=function(_0x654b57,_0x32c1fc){_0x654b57=_0x654b57-0x0;var _0x231677=_0x3ba7[_0x654b57];return _0x231677;};'use strict';var _=require(_0x73ba('0x0'));var util=require(_0x73ba('0x1'));var moment=require(_0x73ba('0x2'));var BPromise=require(_0x73ba('0x3'));var rs=require(_0x73ba('0x4'));var fs=require('fs');var Redis=require(_0x73ba('0x5'));var db=require(_0x73ba('0x6'))['db'];var utils=require(_0x73ba('0x7'));var logger=require(_0x73ba('0x8'))(_0x73ba('0x9'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x73ba('0xa')][_0x73ba('0xb')]({'port':0x232a});function respondWithRpcPromise(_0xf12768,_0x34a020,_0xf28ee7){return new BPromise(function(_0x52c966,_0x3f7d01){return client[_0x73ba('0xc')](_0xf12768,_0xf28ee7)[_0x73ba('0xd')](function(_0x22b294){logger[_0x73ba('0xe')]('AnalyticCustomReport,\x20%s,\x20%s',_0x34a020,'request\x20sent');logger[_0x73ba('0xf')](_0x73ba('0x10'),_0x34a020,_0x73ba('0x11'),JSON[_0x73ba('0x12')](_0x22b294));if(_0x22b294[_0x73ba('0x13')]){if(_0x22b294[_0x73ba('0x13')][_0x73ba('0x14')]===0x1f4){logger[_0x73ba('0x13')](_0x73ba('0x15'),_0x34a020,_0x22b294[_0x73ba('0x13')][_0x73ba('0x16')]);return _0x3f7d01(_0x22b294[_0x73ba('0x13')][_0x73ba('0x16')]);}logger['error'](_0x73ba('0x15'),_0x34a020,_0x22b294[_0x73ba('0x13')][_0x73ba('0x16')]);return _0x52c966(_0x22b294['error'][_0x73ba('0x16')]);}else{logger['info'](_0x73ba('0x15'),_0x34a020,_0x73ba('0x11'));_0x52c966(_0x22b294[_0x73ba('0x17')][_0x73ba('0x16')]);}})[_0x73ba('0x18')](function(_0x514dcc){logger[_0x73ba('0x13')](_0x73ba('0x15'),_0x34a020,_0x514dcc);_0x3f7d01(_0x514dcc);});});}
\ No newline at end of file
+var _0x1e73=['request','info','AnalyticCustomReport,\x20%s,\x20%s','request\x20sent','AnalyticCustomReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','lodash','util','moment','bluebird','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http'];(function(_0x301c51,_0x42ff72){var _0x27ee5e=function(_0x4e6e96){while(--_0x4e6e96){_0x301c51['push'](_0x301c51['shift']());}};_0x27ee5e(++_0x42ff72);}(_0x1e73,0xf0));var _0x31e7=function(_0xda6ad1,_0x5f09e3){_0xda6ad1=_0xda6ad1-0x0;var _0xedc3a5=_0x1e73[_0xda6ad1];return _0xedc3a5;};'use strict';var _=require(_0x31e7('0x0'));var util=require(_0x31e7('0x1'));var moment=require(_0x31e7('0x2'));var BPromise=require(_0x31e7('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x31e7('0x4'))['db'];var utils=require(_0x31e7('0x5'));var logger=require(_0x31e7('0x6'))(_0x31e7('0x7'));var config=require(_0x31e7('0x8'));var jayson=require(_0x31e7('0x9'));var client=jayson[_0x31e7('0xa')][_0x31e7('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x3353dc,_0x5e61fd,_0x154371){return new BPromise(function(_0x7d60e1,_0x5a3cf0){return client[_0x31e7('0xc')](_0x3353dc,_0x154371)['then'](function(_0x33f4cb){logger[_0x31e7('0xd')](_0x31e7('0xe'),_0x5e61fd,_0x31e7('0xf'));logger['debug'](_0x31e7('0x10'),_0x5e61fd,'request\x20sent',JSON[_0x31e7('0x11')](_0x33f4cb));if(_0x33f4cb[_0x31e7('0x12')]){if(_0x33f4cb[_0x31e7('0x12')][_0x31e7('0x13')]===0x1f4){logger[_0x31e7('0x12')]('AnalyticCustomReport,\x20%s,\x20%s',_0x5e61fd,_0x33f4cb['error'][_0x31e7('0x14')]);return _0x5a3cf0(_0x33f4cb[_0x31e7('0x12')]['message']);}logger[_0x31e7('0x12')](_0x31e7('0xe'),_0x5e61fd,_0x33f4cb[_0x31e7('0x12')]['message']);return _0x7d60e1(_0x33f4cb[_0x31e7('0x12')][_0x31e7('0x14')]);}else{logger[_0x31e7('0xd')](_0x31e7('0xe'),_0x5e61fd,_0x31e7('0xf'));_0x7d60e1(_0x33f4cb['result'][_0x31e7('0x14')]);}})['catch'](function(_0x5af405){logger[_0x31e7('0x12')](_0x31e7('0xe'),_0x5e61fd,_0x5af405);_0x5a3cf0(_0x5af405);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7ff5=['create','update','delete','destroy','util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','./analyticCustomReport.controller','get','/:id','show','/:id/run','isAuthenticated','run','post'];(function(_0xd2d68f,_0x149069){var _0x3990b1=function(_0x1030f8){while(--_0x1030f8){_0xd2d68f['push'](_0xd2d68f['shift']());}};_0x3990b1(++_0x149069);}(_0x7ff5,0x1a6));var _0x57ff=function(_0x4d2dd2,_0xe4020c){_0x4d2dd2=_0x4d2dd2-0x0;var _0x5a36f1=_0x7ff5[_0x4d2dd2];return _0x5a36f1;};'use strict';var multer=require('multer');var util=require(_0x57ff('0x0'));var path=require(_0x57ff('0x1'));var timeout=require(_0x57ff('0x2'));var express=require(_0x57ff('0x3'));var router=express['Router']();var fs_extra=require(_0x57ff('0x4'));var auth=require(_0x57ff('0x5'));var interaction=require(_0x57ff('0x6'));var config=require('../../config/environment');var controller=require(_0x57ff('0x7'));router[_0x57ff('0x8')]('/',auth['isAuthenticated'](),controller['index']);router['get'](_0x57ff('0x9'),auth['isAuthenticated'](),controller[_0x57ff('0xa')]);router[_0x57ff('0x8')]('/:id/preview',auth['isAuthenticated'](),controller['preview']);router[_0x57ff('0x8')](_0x57ff('0xb'),auth[_0x57ff('0xc')](),controller[_0x57ff('0xd')]);router[_0x57ff('0x8')]('/:id/query',auth[_0x57ff('0xc')](),controller['query']);router[_0x57ff('0xe')]('/',auth[_0x57ff('0xc')](),controller[_0x57ff('0xf')]);router['put'](_0x57ff('0x9'),auth[_0x57ff('0xc')](),controller[_0x57ff('0x10')]);router[_0x57ff('0x11')](_0x57ff('0x9'),auth[_0x57ff('0xc')](),controller[_0x57ff('0x12')]);module['exports']=router;
\ No newline at end of file
+var _0x032c=['isAuthenticated','show','/:id/preview','preview','/:id/run','run','post','create','put','update','destroy','exports','multer','util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','/:id'];(function(_0x36f796,_0x45bfe5){var _0x1fd2e9=function(_0x2d10f2){while(--_0x2d10f2){_0x36f796['push'](_0x36f796['shift']());}};_0x1fd2e9(++_0x45bfe5);}(_0x032c,0x96));var _0xc032=function(_0x7a3c8f,_0x41acbc){_0x7a3c8f=_0x7a3c8f-0x0;var _0x584143=_0x032c[_0x7a3c8f];return _0x584143;};'use strict';var multer=require(_0xc032('0x0'));var util=require(_0xc032('0x1'));var path=require(_0xc032('0x2'));var timeout=require(_0xc032('0x3'));var express=require(_0xc032('0x4'));var router=express['Router']();var fs_extra=require(_0xc032('0x5'));var auth=require(_0xc032('0x6'));var interaction=require(_0xc032('0x7'));var config=require(_0xc032('0x8'));var controller=require('./analyticCustomReport.controller');router['get']('/',auth['isAuthenticated'](),controller['index']);router[_0xc032('0x9')](_0xc032('0xa'),auth[_0xc032('0xb')](),controller[_0xc032('0xc')]);router['get'](_0xc032('0xd'),auth['isAuthenticated'](),controller[_0xc032('0xe')]);router[_0xc032('0x9')](_0xc032('0xf'),auth['isAuthenticated'](),controller[_0xc032('0x10')]);router[_0xc032('0x9')]('/:id/query',auth['isAuthenticated'](),controller['query']);router[_0xc032('0x11')]('/',auth[_0xc032('0xb')](),controller[_0xc032('0x12')]);router[_0xc032('0x13')](_0xc032('0xa'),auth[_0xc032('0xb')](),controller[_0xc032('0x14')]);router['delete'](_0xc032('0xa'),auth[_0xc032('0xb')](),controller[_0xc032('0x15')]);module[_0xc032('0x16')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x207c=['STRING','TEXT','exports'];(function(_0xb1f79f,_0x580730){var _0x4324b1=function(_0x1817e5){while(--_0x1817e5){_0xb1f79f['push'](_0xb1f79f['shift']());}};_0x4324b1(++_0x580730);}(_0x207c,0x1e8));var _0xc207=function(_0x458dd7,_0xe5602b){_0x458dd7=_0x458dd7-0x0;var _0x2a12f3=_0x207c[_0x458dd7];return _0x2a12f3;};'use strict';var Sequelize=require('sequelize');module[_0xc207('0x0')]={'name':{'type':Sequelize[_0xc207('0x1')],'allowNull':![]},'description':{'type':Sequelize[_0xc207('0x1')]},'parent':{'type':Sequelize[_0xc207('0x1')]},'table':{'type':Sequelize[_0xc207('0x1')]},'conditions':{'type':Sequelize[_0xc207('0x2')]},'joins':{'type':Sequelize[_0xc207('0x2')]}};
\ No newline at end of file
+var _0x687b=['STRING','TEXT','sequelize','exports'];(function(_0x5ed41b,_0x5022b1){var _0x27e536=function(_0x52e05b){while(--_0x52e05b){_0x5ed41b['push'](_0x5ed41b['shift']());}};_0x27e536(++_0x5022b1);}(_0x687b,0x14a));var _0xb687=function(_0x1c4903,_0x2c8ecd){_0x1c4903=_0x1c4903-0x0;var _0x1f0af5=_0x687b[_0x1c4903];return _0x1f0af5;};'use strict';var Sequelize=require(_0xb687('0x0'));module[_0xb687('0x1')]={'name':{'type':Sequelize[_0xb687('0x2')],'allowNull':![]},'description':{'type':Sequelize[_0xb687('0x2')]},'parent':{'type':Sequelize['STRING']},'table':{'type':Sequelize['STRING']},'conditions':{'type':Sequelize[_0xb687('0x3')]},'joins':{'type':Sequelize[_0xb687('0x3')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc4aa=['Content-Range','apply','reject','save','update','then','destroy','get','DefaultReports','UserProfileResource','name','map','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','order','sort','where','merge','VIRTUAL','filter','options','includeAll','include','AnalyticDefaultReport','findAll','rows','catch','show','length','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Reports','find','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','preview','join','left_join','right_join','cross_join','SUM(%s)','COUNT(DISTINCT\x20%s)','MIN(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','DATE(%s)','HOUR(%s)','ROUND(%s)','UNIX_TIMESTAMP(%s)','IS\x20NULL','IS\x20EMPTY','rules','operator','group','field','condition','getFields','Sequelize','AnalyticMetric','keyBy','select','from','table','MetricId','metric','function','replace','format','orderBy','joins','parentKey','foreignTable','%s.%s\x20=\x20%s.%s','conditions','parse','clone','Limited\x20Query:','toString','sequelize','QueryTypes','SELECT','COUNT(%s)','MAX(%s)','AVG(%s)','SEC_TO_TIME(%s)','IS\x20NOT\x20EMPTY','value','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','groupBy','alias','includes','foreignKey','output','web','fullPath','%s-%s.%s','randomstring','default','AnalyticExtractedReport','.calldate\x20BETWEEN\x20?\x20AND\x20?','endDate','startDate','info','Run\x20Query:','child_process','fork','countTable','runReport','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','IS\x20NOT\x20NULL','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set'];(function(_0x14e9f0,_0x287f90){var _0xa63f7e=function(_0x4829d6){while(--_0x4829d6){_0x14e9f0['push'](_0x14e9f0['shift']());}};_0xa63f7e(++_0x287f90);}(_0xc4aa,0x1b7));var _0xac4a=function(_0x4d613c,_0x55f220){_0x4d613c=_0x4d613c-0x0;var _0x301fe3=_0xc4aa[_0x4d613c];return _0x301fe3;};'use strict';var emlformat=require(_0xac4a('0x0'));var rimraf=require(_0xac4a('0x1'));var zipdir=require(_0xac4a('0x2'));var jsonpatch=require(_0xac4a('0x3'));var rp=require(_0xac4a('0x4'));var moment=require(_0xac4a('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require(_0xac4a('0x6'));var sox=require(_0xac4a('0x7'));var csv=require(_0xac4a('0x8'));var ejs=require(_0xac4a('0x9'));var fs=require('fs');var fs_extra=require(_0xac4a('0xa'));var _=require(_0xac4a('0xb'));var squel=require(_0xac4a('0xc'));var crypto=require(_0xac4a('0xd'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xac4a('0x8'));var querystring=require(_0xac4a('0xe'));var Papa=require(_0xac4a('0xf'));var Redis=require('ioredis');var authService=require(_0xac4a('0x10'));var qs=require(_0xac4a('0x11'));var as=require(_0xac4a('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xac4a('0x13'))('api');var utils=require(_0xac4a('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0xac4a('0x15'));var db=require(_0xac4a('0x16'))['db'];var dbH=require(_0xac4a('0x16'))['dbH'];function respondWithStatusCode(_0x21a79,_0x68424a){_0x68424a=_0x68424a||0xcc;return function(_0x247b78){if(_0x247b78){return _0x21a79[_0xac4a('0x17')](_0x68424a);}return _0x21a79[_0xac4a('0x18')](_0x68424a)[_0xac4a('0x19')]();};}function respondWithResult(_0x34bc01,_0x33c287){_0x33c287=_0x33c287||0xc8;return function(_0x190418){if(_0x190418){return _0x34bc01[_0xac4a('0x18')](_0x33c287)[_0xac4a('0x1a')](_0x190418);}};}function respondWithFilteredResult(_0x26dbb8,_0x4a2119){return function(_0x402fff){if(_0x402fff){var _0x34d797=typeof _0x4a2119[_0xac4a('0x1b')]===_0xac4a('0x1c')&&typeof _0x4a2119[_0xac4a('0x1d')]===_0xac4a('0x1c');var _0x28e304=_0x402fff[_0xac4a('0x1e')];var _0x546c5d=_0x34d797?0x0:_0x4a2119['offset'];var _0x21a729=_0x34d797?_0x402fff[_0xac4a('0x1e')]:_0x4a2119[_0xac4a('0x1b')]+_0x4a2119['limit'];var _0x39e83e;if(_0x21a729>=_0x28e304){_0x21a729=_0x28e304;_0x39e83e=0xc8;}else{_0x39e83e=0xce;}_0x26dbb8[_0xac4a('0x18')](_0x39e83e);return _0x26dbb8[_0xac4a('0x1f')](_0xac4a('0x20'),_0x546c5d+'-'+_0x21a729+'/'+_0x28e304)[_0xac4a('0x1a')](_0x402fff);}return null;};}function patchUpdates(_0x3e829c){return function(_0xe38996){try{jsonpatch[_0xac4a('0x21')](_0xe38996,_0x3e829c,!![]);}catch(_0x534092){return BPromise[_0xac4a('0x22')](_0x534092);}return _0xe38996[_0xac4a('0x23')]();};}function saveUpdates(_0x599787,_0x3d7ce0){return function(_0x4169c0){if(_0x4169c0){return _0x4169c0[_0xac4a('0x24')](_0x599787)[_0xac4a('0x25')](function(_0x4d2d6c){return _0x4d2d6c;});}return null;};}function removeEntity(_0x1b7998,_0x2503d8){return function(_0x15435c){if(_0x15435c){return _0x15435c[_0xac4a('0x26')]()[_0xac4a('0x25')](function(){var _0x2b0dc2=_0x15435c[_0xac4a('0x27')]({'plain':!![]});var _0x36054a=_0xac4a('0x28');return db[_0xac4a('0x29')][_0xac4a('0x26')]({'where':{'type':_0x36054a,'resourceId':_0x2b0dc2['id']}})[_0xac4a('0x25')](function(){return _0x15435c;});})[_0xac4a('0x25')](function(){_0x1b7998[_0xac4a('0x18')](0xcc)[_0xac4a('0x19')]();});}};}function handleEntityNotFound(_0x20202c,_0x4e17ce){return function(_0x23b061){if(!_0x23b061){_0x20202c[_0xac4a('0x17')](0x194);}return _0x23b061;};}function handleError(_0x42a33c,_0x2772fe){_0x2772fe=_0x2772fe||0x1f4;return function(_0x116700){logger['error'](_0x116700['stack']);if(_0x116700[_0xac4a('0x2a')]){delete _0x116700[_0xac4a('0x2a')];}_0x42a33c[_0xac4a('0x18')](_0x2772fe)['send'](_0x116700);};}exports['index']=function(_0x355755,_0x2896bc){var _0x228629={},_0x432066={},_0x17118e={'count':0x0,'rows':[]};var _0x53d3a5=_[_0xac4a('0x2b')](db['AnalyticDefaultReport'][_0xac4a('0x2c')],function(_0x57adcf){return{'name':_0x57adcf[_0xac4a('0x2d')],'type':_0x57adcf[_0xac4a('0x2e')][_0xac4a('0x2f')]};});_0x432066[_0xac4a('0x30')]=_[_0xac4a('0x2b')](_0x53d3a5,_0xac4a('0x2a'));_0x432066[_0xac4a('0x31')]=_[_0xac4a('0x32')](_0x355755[_0xac4a('0x31')]);_0x432066[_0xac4a('0x33')]=_[_0xac4a('0x34')](_0x432066[_0xac4a('0x30')],_0x432066[_0xac4a('0x31')]);_0x228629[_0xac4a('0x35')]=_['intersection'](_0x432066[_0xac4a('0x30')],qs[_0xac4a('0x36')](_0x355755['query'][_0xac4a('0x36')]));_0x228629[_0xac4a('0x35')]=_0x228629['attributes']['length']?_0x228629[_0xac4a('0x35')]:_0x432066[_0xac4a('0x30')];if(!_0x355755[_0xac4a('0x31')][_0xac4a('0x37')]('nolimit')){_0x228629[_0xac4a('0x1d')]=qs[_0xac4a('0x1d')](_0x355755['query'][_0xac4a('0x1d')]);_0x228629[_0xac4a('0x1b')]=qs[_0xac4a('0x1b')](_0x355755['query'][_0xac4a('0x1b')]);}_0x228629[_0xac4a('0x38')]=qs[_0xac4a('0x39')](_0x355755['query'][_0xac4a('0x39')]);_0x228629[_0xac4a('0x3a')]=qs['filters'](_['pick'](_0x355755[_0xac4a('0x31')],_0x432066['filters']),_0x53d3a5);if(_0x355755['query']['filter']){_0x228629['where']=_[_0xac4a('0x3b')](_0x228629[_0xac4a('0x3a')],{'$or':_[_0xac4a('0x2b')](_0x53d3a5,function(_0x472484){if(_0x472484[_0xac4a('0x2e')]!==_0xac4a('0x3c')){var _0x4220e2={};_0x4220e2[_0x472484[_0xac4a('0x2a')]]={'$like':'%'+_0x355755[_0xac4a('0x31')][_0xac4a('0x3d')]+'%'};return _0x4220e2;}})});}_0x228629=_[_0xac4a('0x3b')]({},_0x228629,_0x355755[_0xac4a('0x3e')]);var _0x4e4994={'where':_0x228629['where']};return db['AnalyticDefaultReport'][_0xac4a('0x1e')](_0x4e4994)[_0xac4a('0x25')](function(_0x14e80b){_0x17118e[_0xac4a('0x1e')]=_0x14e80b;if(_0x355755[_0xac4a('0x31')][_0xac4a('0x3f')]){_0x228629[_0xac4a('0x40')]=[{'all':!![]}];}return db[_0xac4a('0x41')][_0xac4a('0x42')](_0x228629);})[_0xac4a('0x25')](function(_0x561cb7){_0x17118e[_0xac4a('0x43')]=_0x561cb7;return _0x17118e;})[_0xac4a('0x25')](respondWithFilteredResult(_0x2896bc,_0x228629))[_0xac4a('0x44')](handleError(_0x2896bc,null));};exports[_0xac4a('0x45')]=function(_0x1a96cf,_0x57b879){var _0x8700b4={'raw':!![],'where':{'id':_0x1a96cf['params']['id']}},_0x1b77bb={};_0x1b77bb[_0xac4a('0x30')]=_['keys'](db[_0xac4a('0x41')][_0xac4a('0x2c')]);_0x1b77bb[_0xac4a('0x31')]=_[_0xac4a('0x32')](_0x1a96cf[_0xac4a('0x31')]);_0x1b77bb[_0xac4a('0x33')]=_[_0xac4a('0x34')](_0x1b77bb[_0xac4a('0x30')],_0x1b77bb[_0xac4a('0x31')]);_0x8700b4[_0xac4a('0x35')]=_[_0xac4a('0x34')](_0x1b77bb[_0xac4a('0x30')],qs['fields'](_0x1a96cf[_0xac4a('0x31')][_0xac4a('0x36')]));_0x8700b4[_0xac4a('0x35')]=_0x8700b4['attributes'][_0xac4a('0x46')]?_0x8700b4[_0xac4a('0x35')]:_0x1b77bb['model'];if(_0x1a96cf[_0xac4a('0x31')]['includeAll']){_0x8700b4[_0xac4a('0x40')]=[{'all':!![]}];}_0x8700b4=_[_0xac4a('0x3b')]({},_0x8700b4,_0x1a96cf[_0xac4a('0x3e')]);return db['AnalyticDefaultReport']['find'](_0x8700b4)[_0xac4a('0x25')](handleEntityNotFound(_0x57b879,null))['then'](respondWithResult(_0x57b879,null))[_0xac4a('0x44')](handleError(_0x57b879,null));};exports['create']=function(_0x3d2aaf,_0x530bbb){return db[_0xac4a('0x41')][_0xac4a('0x47')](_0x3d2aaf[_0xac4a('0x48')],{})[_0xac4a('0x25')](function(_0x54782f){var _0x31c794=_0x3d2aaf[_0xac4a('0x49')][_0xac4a('0x27')]({'plain':!![]});if(!_0x31c794)throw new Error(_0xac4a('0x4a'));if(_0x31c794[_0xac4a('0x4b')]===_0xac4a('0x49')){var _0x187306=_0x54782f['get']({'plain':!![]});var _0x35dee5=_0xac4a('0x4c');return db['UserProfileSection'][_0xac4a('0x4d')]({'where':{'name':_0x35dee5,'userProfileId':_0x31c794[_0xac4a('0x4e')]},'raw':!![]})[_0xac4a('0x25')](function(_0x3ac36e){if(_0x3ac36e&&_0x3ac36e['autoAssociation']===0x0){return db[_0xac4a('0x29')][_0xac4a('0x47')]({'name':_0x187306[_0xac4a('0x2a')],'resourceId':_0x187306['id'],'type':_0xac4a('0x28'),'sectionId':_0x3ac36e['id']},{})[_0xac4a('0x25')](function(){return _0x54782f;});}else{return _0x54782f;}})['catch'](function(_0x179373){logger['error'](_0xac4a('0x4f'),_0x179373);throw _0x179373;});}return _0x54782f;})[_0xac4a('0x25')](respondWithResult(_0x530bbb,0xc9))['catch'](handleError(_0x530bbb,null));};exports['update']=function(_0x437466,_0x70fdc3){if(_0x437466['body']['id']){delete _0x437466[_0xac4a('0x48')]['id'];}return db[_0xac4a('0x41')][_0xac4a('0x4d')]({'where':{'id':_0x437466[_0xac4a('0x50')]['id']}})['then'](handleEntityNotFound(_0x70fdc3,null))[_0xac4a('0x25')](saveUpdates(_0x437466[_0xac4a('0x48')],null))[_0xac4a('0x25')](respondWithResult(_0x70fdc3,null))[_0xac4a('0x44')](handleError(_0x70fdc3,null));};exports[_0xac4a('0x26')]=function(_0x411547,_0x36179a){return db['AnalyticDefaultReport'][_0xac4a('0x4d')]({'where':{'id':_0x411547[_0xac4a('0x50')]['id']}})[_0xac4a('0x25')](handleEntityNotFound(_0x36179a,null))[_0xac4a('0x25')](removeEntity(_0x36179a,null))[_0xac4a('0x44')](handleError(_0x36179a,null));};exports[_0xac4a('0x51')]=function(_0x213df2,_0x236f57){var _0x159e43=0xa;var _0x786d9=[_0xac4a('0x52'),_0xac4a('0x53'),_0xac4a('0x54'),_0xac4a('0x55')];var _0x5222f3={'SUM':_0xac4a('0x56'),'COUNT':'COUNT(%s)','COUNT DISTINCT':_0xac4a('0x57'),'MAX':'MAX(%s)','MIN':_0xac4a('0x58'),'AVG':'AVG(%s)','GROUP_CONCAT':_0xac4a('0x59'),'GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':_0xac4a('0x5a')};var _0x5cac9b={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':_0xac4a('0x5b'),'HOUR':_0xac4a('0x5c'),'ROUND':_0xac4a('0x5d'),'UNIX_TIMESTAMP':_0xac4a('0x5e')};var _0x2f9940=function(_0xb7b884){return!_['includes']([_0xac4a('0x5f'),'IS\x20NOT\x20NULL',_0xac4a('0x60'),'IS\x20NOT\x20EMPTY'],_0xb7b884);};var _0x347880=function(_0x19ce2c){if(!_0x19ce2c||!_0x19ce2c[_0xac4a('0x61')][_0xac4a('0x46')]){return'';}for(var _0x429273='(',_0x2bc39a=0x0;_0x2bc39a<_0x19ce2c[_0xac4a('0x61')][_0xac4a('0x46')];_0x2bc39a+=0x1){_0x2bc39a>0x0&&(_0x429273+='\x20'+_0x19ce2c[_0xac4a('0x62')]+'\x20');_0x429273+=_0x19ce2c[_0xac4a('0x61')][_0x2bc39a][_0xac4a('0x63')]?_0x347880(_0x19ce2c[_0xac4a('0x61')][_0x2bc39a][_0xac4a('0x63')]):_0x19ce2c[_0xac4a('0x61')][_0x2bc39a][_0xac4a('0x64')]+'\x20'+_0x19ce2c[_0xac4a('0x61')][_0x2bc39a][_0xac4a('0x65')]+(_0x2f9940(_0x19ce2c['rules'][_0x2bc39a][_0xac4a('0x65')])?'\x20'+_0x19ce2c[_0xac4a('0x61')][_0x2bc39a]['value']:'');}return _0x429273+')';};var _0x3c3576={'where':{'id':_0x213df2['params']['id']}},_0x34bd1c,_0x2d24c7,_0x2b8562,_0x357cac,_0x4d1440;_0x3c3576=_[_0xac4a('0x3b')]({},_0x3c3576,_0x213df2[_0xac4a('0x3e')]);return db[_0xac4a('0x41')][_0xac4a('0x4d')](_0x3c3576)[_0xac4a('0x25')](function(_0x21ef8b){if(_0x21ef8b){_0x34bd1c=_0x21ef8b;return _0x21ef8b[_0xac4a('0x66')]();}return null;})[_0xac4a('0x25')](function(_0x44c60b){if(_0x44c60b){if(!_0x44c60b[_0xac4a('0x46')]){throw new db[(_0xac4a('0x67'))]['ValidationErrorItem']('Please\x20insert\x20at\x20least\x20one\x20field',0x193);}_0x2d24c7=_0x44c60b;return db[_0xac4a('0x68')][_0xac4a('0x42')]({'raw':!![]});}return null;})[_0xac4a('0x25')](function(_0x423f70){if(_0x423f70){_0x2b8562=_[_0xac4a('0x69')](_0x423f70,'id');var _0x283107;var _0x1d24bb=squel[_0xac4a('0x6a')]();_0x1d24bb[_0xac4a('0x6b')](_0x34bd1c[_0xac4a('0x6c')]);for(var _0xb09b89=0x0;_0xb09b89<_0x2d24c7[_0xac4a('0x46')];_0xb09b89+=0x1){_0x283107=_0x2d24c7[_0xb09b89]['MetricId']?_0x2b8562[_0x2d24c7[_0xb09b89][_0xac4a('0x6d')]][_0xac4a('0x6e')]:_0x2d24c7[_0xb09b89][_0xac4a('0x64')];_0x283107=_0x2d24c7[_0xb09b89][_0xac4a('0x6f')]?_['replace'](_0x5222f3[_0x2d24c7[_0xb09b89][_0xac4a('0x6f')]],'%s',_0x283107):_0x283107;_0x283107=_0x2d24c7[_0xb09b89]['format']?_[_0xac4a('0x70')](_0x5cac9b[_0x2d24c7[_0xb09b89][_0xac4a('0x71')]],'%s',_0x283107):_0x283107;if(_0x2d24c7[_0xb09b89]['groupBy']){_0x1d24bb['group'](_0x283107);}_0x2d24c7[_0xb09b89][_0xac4a('0x72')]&&_0x1d24bb[_0xac4a('0x38')](_0x283107,_0x2d24c7[_0xb09b89][_0xac4a('0x72')]==='DESC'?![]:!![]);_0x1d24bb[_0xac4a('0x64')](_0x283107,_0x2d24c7[_0xb09b89]['alias']||_0x283107);}if(_0x34bd1c[_0xac4a('0x73')]){_0x34bd1c['joins']=JSON['parse'](_0x34bd1c[_0xac4a('0x73')]);for(var _0x56ef2a=0x0;_0x56ef2a<_0x34bd1c[_0xac4a('0x73')]['length'];_0x56ef2a+=0x1){if(_0x34bd1c[_0xac4a('0x73')][_0x56ef2a][_0xac4a('0x2e')]&&_['includes'](_0x786d9,_0x34bd1c[_0xac4a('0x73')][_0x56ef2a]['type'])&&_0x34bd1c[_0xac4a('0x73')][_0x56ef2a][_0xac4a('0x74')]&&_0x34bd1c['joins'][_0x56ef2a][_0xac4a('0x75')]&&_0x34bd1c['joins'][_0x56ef2a]['foreignKey']){_0x1d24bb[_0x34bd1c[_0xac4a('0x73')][_0x56ef2a]['type']](_0x34bd1c[_0xac4a('0x73')][_0x56ef2a]['foreignTable'],null,util['format'](_0xac4a('0x76'),_0x34bd1c[_0xac4a('0x6c')],_0x34bd1c[_0xac4a('0x73')][_0x56ef2a]['parentKey'],_0x34bd1c['joins'][_0x56ef2a][_0xac4a('0x75')],_0x34bd1c[_0xac4a('0x73')][_0x56ef2a]['foreignKey']));}}}if(_0x34bd1c['conditions']){_0x34bd1c[_0xac4a('0x77')]=JSON[_0xac4a('0x78')](_0x34bd1c[_0xac4a('0x77')]);_0x1d24bb[_0xac4a('0x3a')](_0x347880(_0x34bd1c[_0xac4a('0x77')][_0xac4a('0x63')]));}_0x4d1440=_0x1d24bb[_0xac4a('0x79')]();_0x1d24bb[_0xac4a('0x1d')](_0x159e43);_0x1d24bb[_0xac4a('0x1b')](0x0);logger['debug'](_0xac4a('0x7a'),_0x1d24bb[_0xac4a('0x7b')]());return dbH[_0xac4a('0x7c')]['query'](_0x1d24bb[_0xac4a('0x7b')](),{'type':dbH[_0xac4a('0x7c')][_0xac4a('0x7d')][_0xac4a('0x7e')]});}})[_0xac4a('0x25')](respondWithResult(_0x236f57,null))['catch'](handleError(_0x236f57,null));};function runReport(_0x290a73,_0x19ce24,_0xc9d040){var _0x37e519=_0x19ce24[_0xac4a('0x2a')];var _0x451248=0xa;var _0xd7bdd6=['join',_0xac4a('0x53'),_0xac4a('0x54'),_0xac4a('0x55')];var _0x35a97c={'SUM':_0xac4a('0x56'),'COUNT':_0xac4a('0x7f'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0xac4a('0x80'),'MIN':_0xac4a('0x58'),'AVG':_0xac4a('0x81'),'GROUP_CONCAT':_0xac4a('0x59'),'GROUP_CONCAT ASC':'GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT DESC':_0xac4a('0x5a')};var _0x56a934={'SEC_TO_TIME':_0xac4a('0x82'),'DATE':_0xac4a('0x5b'),'HOUR':'HOUR(%s)','ROUND':'ROUND(%s)','UNIX_TIMESTAMP':_0xac4a('0x5e')};var _0x212a22=function(_0x1fe86a){return!_['includes']([_0xac4a('0x5f'),'IS\x20NOT\x20NULL',_0xac4a('0x60'),_0xac4a('0x83')],_0x1fe86a);};var _0x406b64=function(_0x35328e){if(!_0x35328e||!_0x35328e[_0xac4a('0x61')]['length']){return'';}for(var _0x50f471='(',_0x31cda0=0x0;_0x31cda0<_0x35328e[_0xac4a('0x61')][_0xac4a('0x46')];_0x31cda0+=0x1){_0x31cda0>0x0&&(_0x50f471+='\x20'+_0x35328e[_0xac4a('0x62')]+'\x20');_0x50f471+=_0x35328e[_0xac4a('0x61')][_0x31cda0][_0xac4a('0x63')]?_0x406b64(_0x35328e[_0xac4a('0x61')][_0x31cda0][_0xac4a('0x63')]):_0x35328e['rules'][_0x31cda0]['field']+'\x20'+_0x35328e[_0xac4a('0x61')][_0x31cda0][_0xac4a('0x65')]+(_0x212a22(_0x35328e[_0xac4a('0x61')][_0x31cda0][_0xac4a('0x65')])?'\x20'+_0x35328e[_0xac4a('0x61')][_0x31cda0][_0xac4a('0x84')]:'');}return _0x50f471+')';};var _0xdaa2ef={'where':{'id':_0x290a73['id']}},_0x2e704b,_0x540d8e,_0x5e0be4,_0x32fd0c,_0x168f30;_0xdaa2ef=_[_0xac4a('0x3b')]({},_0xdaa2ef,_0xc9d040);return db[_0xac4a('0x41')][_0xac4a('0x4d')](_0xdaa2ef)[_0xac4a('0x25')](function(_0x338af3){if(_0x338af3){_0x2e704b=_0x338af3;return _0x338af3['getFields']();}return null;})[_0xac4a('0x25')](function(_0x1bacf2){if(_0x1bacf2){if(!_0x1bacf2[_0xac4a('0x46')]){throw new db['Sequelize'][(_0xac4a('0x85'))](_0xac4a('0x86'),0x193);}_0x540d8e=_0x1bacf2;return db[_0xac4a('0x68')][_0xac4a('0x42')]({'raw':!![]});}return null;})[_0xac4a('0x25')](function(_0x27d023){if(_0x27d023){_0x5e0be4=_[_0xac4a('0x69')](_0x27d023,'id');var _0x2ef42a;var _0x322465=squel['select']();_0x322465[_0xac4a('0x6b')](_0x2e704b['table']);for(var _0x203321=0x0;_0x203321<_0x540d8e[_0xac4a('0x46')];_0x203321+=0x1){_0x2ef42a=_0x540d8e[_0x203321][_0xac4a('0x6d')]?_0x5e0be4[_0x540d8e[_0x203321][_0xac4a('0x6d')]][_0xac4a('0x6e')]:_0x540d8e[_0x203321][_0xac4a('0x64')];_0x2ef42a=_0x540d8e[_0x203321][_0xac4a('0x6f')]?_['replace'](_0x35a97c[_0x540d8e[_0x203321][_0xac4a('0x6f')]],'%s',_0x2ef42a):_0x2ef42a;_0x2ef42a=_0x540d8e[_0x203321][_0xac4a('0x71')]?_[_0xac4a('0x70')](_0x56a934[_0x540d8e[_0x203321][_0xac4a('0x71')]],'%s',_0x2ef42a):_0x2ef42a;if(_0x540d8e[_0x203321][_0xac4a('0x87')]){_0x322465['group'](_0x2ef42a);}_0x540d8e[_0x203321][_0xac4a('0x72')]&&_0x322465[_0xac4a('0x38')](_0x2ef42a,_0x540d8e[_0x203321]['orderBy']==='DESC'?![]:!![]);_0x322465[_0xac4a('0x64')](_0x2ef42a,_0x540d8e[_0x203321][_0xac4a('0x88')]||_0x2ef42a);}if(_0x2e704b['joins']){_0x2e704b[_0xac4a('0x73')]=JSON[_0xac4a('0x78')](_0x2e704b[_0xac4a('0x73')]);for(var _0x37657e=0x0;_0x37657e<_0x2e704b[_0xac4a('0x73')][_0xac4a('0x46')];_0x37657e+=0x1){if(_0x2e704b['joins'][_0x37657e][_0xac4a('0x2e')]&&_[_0xac4a('0x89')](_0xd7bdd6,_0x2e704b[_0xac4a('0x73')][_0x37657e]['type'])&&_0x2e704b[_0xac4a('0x73')][_0x37657e][_0xac4a('0x74')]&&_0x2e704b[_0xac4a('0x73')][_0x37657e][_0xac4a('0x75')]&&_0x2e704b[_0xac4a('0x73')][_0x37657e][_0xac4a('0x8a')]){_0x322465[_0x2e704b['joins'][_0x37657e][_0xac4a('0x2e')]](_0x2e704b[_0xac4a('0x73')][_0x37657e]['foreignTable'],null,util[_0xac4a('0x71')]('%s.%s\x20=\x20%s.%s',_0x2e704b[_0xac4a('0x6c')],_0x2e704b[_0xac4a('0x73')][_0x37657e]['parentKey'],_0x2e704b[_0xac4a('0x73')][_0x37657e]['foreignTable'],_0x2e704b[_0xac4a('0x73')][_0x37657e]['foreignKey']));}}}if(_0x2e704b[_0xac4a('0x77')]){_0x2e704b[_0xac4a('0x77')]=JSON[_0xac4a('0x78')](_0x2e704b[_0xac4a('0x77')]);_0x322465[_0xac4a('0x3a')](_0x406b64(_0x2e704b[_0xac4a('0x77')][_0xac4a('0x63')]));}_0x168f30=_0x322465[_0xac4a('0x79')]();_0x322465[_0xac4a('0x1d')](_0x451248);_0x322465[_0xac4a('0x1b')](0x0);return;}})[_0xac4a('0x25')](function(){if(_0x19ce24[_0xac4a('0x8b')]===_0xac4a('0x8c')){return null;}var _0x4217df=_['merge'](_0x19ce24,{'name':_0x19ce24[_0xac4a('0x8d')]||_0x19ce24[_0xac4a('0x2a')]||_0x2e704b['name'],'basename':_0x37e519,'savename':util[_0xac4a('0x71')](_0xac4a('0x8e'),_0x19ce24[_0xac4a('0x2a')]||_0x2e704b[_0xac4a('0x2a')],require(_0xac4a('0x8f'))['generate'](0x4),_0x19ce24[_0xac4a('0x8b')]||'csv'),'reportId':_0x2e704b['id'],'reportType':_0xac4a('0x90')});return db[_0xac4a('0x91')][_0xac4a('0x47')](_0x4217df,{'raw':!![]});})[_0xac4a('0x25')](function(_0x53f23d){if(_0x2e704b[_0xac4a('0x6c')]==='cdr'){_0x168f30[_0xac4a('0x3a')](_0x2e704b[_0xac4a('0x6c')]+_0xac4a('0x92'),_0x19ce24['startDate'],_0x19ce24[_0xac4a('0x93')]);}else{_0x168f30[_0xac4a('0x3a')](_0x2e704b[_0xac4a('0x6c')]+'.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0x19ce24[_0xac4a('0x94')],_0x19ce24[_0xac4a('0x93')]);}if(_0x53f23d){logger[_0xac4a('0x95')](_0xac4a('0x96'),_0x168f30[_0xac4a('0x7b')]());require(_0xac4a('0x97'))[_0xac4a('0x98')](path[_0xac4a('0x52')](__dirname,'../../components/export/',_0x53f23d[_0xac4a('0x8b')]),[_0x53f23d['id'],_0x168f30['toString'](),path['join'](__dirname,'../../files/reports',_0x53f23d['savename']),_0x37e519]);return _0x53f23d;}else{var _0x502275=squel[_0xac4a('0x6a')]();_0x502275[_0xac4a('0x6b')]('('+_0x168f30[_0xac4a('0x7b')]()+')',_0xac4a('0x99'));_0x502275[_0xac4a('0x64')]('COUNT(*)',_0xac4a('0x1e'));_0x168f30[_0xac4a('0x1d')](_0x19ce24[_0xac4a('0x1d')]||_0x451248);_0x168f30[_0xac4a('0x1b')](_0x19ce24[_0xac4a('0x1b')]||0x0);return dbH[_0xac4a('0x7c')][_0xac4a('0x31')](_0x502275[_0xac4a('0x7b')](),{'type':dbH['sequelize'][_0xac4a('0x7d')][_0xac4a('0x7e')]})[_0xac4a('0x25')](function(_0x25331f){if(!_0x25331f[_0xac4a('0x46')]){_0x32fd0c=0x0;}else{_0x32fd0c=_0x25331f[0x0][_0xac4a('0x1e')]||0x0;}return dbH[_0xac4a('0x7c')]['query'](_0x168f30['toString'](),{'type':dbH[_0xac4a('0x7c')][_0xac4a('0x7d')]['SELECT']});})[_0xac4a('0x25')](function(_0x366f5a){return{'rows':_0x366f5a||[],'count':_0x32fd0c};});}});}exports['run']=function(_0x5bd013,_0x2fe103){return runReport(_0x5bd013[_0xac4a('0x50')],_0x5bd013[_0xac4a('0x31')],_0x5bd013[_0xac4a('0x3e')])[_0xac4a('0x25')](respondWithResult(_0x2fe103,null))['catch'](handleError(_0x2fe103,null));};exports[_0xac4a('0x9a')]=runReport;exports['query']=function(_0x4f2d85,_0x538cfd){var _0x63c30=0xa;var _0x4301c3=[_0xac4a('0x52'),_0xac4a('0x53'),_0xac4a('0x54'),_0xac4a('0x55')];var _0xcad25d={'SUM':_0xac4a('0x56'),'COUNT':'COUNT(%s)','COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':'MAX(%s)','MIN':_0xac4a('0x58'),'AVG':_0xac4a('0x81'),'GROUP_CONCAT':_0xac4a('0x59'),'GROUP_CONCAT ASC':_0xac4a('0x9b'),'GROUP_CONCAT DESC':_0xac4a('0x5a')};var _0xcd140e={'SEC_TO_TIME':_0xac4a('0x82'),'DATE':_0xac4a('0x5b'),'HOUR':_0xac4a('0x5c'),'ROUND':_0xac4a('0x5d'),'UNIX_TIMESTAMP':_0xac4a('0x5e')};var _0x37cb49=function(_0xe0fd57){return!_[_0xac4a('0x89')]([_0xac4a('0x5f'),_0xac4a('0x9c'),_0xac4a('0x60'),_0xac4a('0x83')],_0xe0fd57);};var _0x41cdb5=function(_0x172d03){if(!_0x172d03||!_0x172d03[_0xac4a('0x61')][_0xac4a('0x46')]){return'';}for(var _0x3e2575='(',_0x4cc581=0x0;_0x4cc581<_0x172d03[_0xac4a('0x61')][_0xac4a('0x46')];_0x4cc581+=0x1){_0x4cc581>0x0&&(_0x3e2575+='\x20'+_0x172d03[_0xac4a('0x62')]+'\x20');_0x3e2575+=_0x172d03[_0xac4a('0x61')][_0x4cc581][_0xac4a('0x63')]?_0x41cdb5(_0x172d03[_0xac4a('0x61')][_0x4cc581][_0xac4a('0x63')]):_0x172d03[_0xac4a('0x61')][_0x4cc581]['field']+'\x20'+_0x172d03['rules'][_0x4cc581][_0xac4a('0x65')]+(_0x37cb49(_0x172d03[_0xac4a('0x61')][_0x4cc581][_0xac4a('0x65')])?'\x20'+_0x172d03['rules'][_0x4cc581]['value']:'');}return _0x3e2575+')';};var _0x5de198={'where':{'id':_0x4f2d85[_0xac4a('0x50')]['id']}},_0x2b6773,_0x52df82,_0x59e82c,_0x216055,_0x52963c;_0x5de198=_['merge']({},_0x5de198,_0x4f2d85[_0xac4a('0x3e')]);return db[_0xac4a('0x41')][_0xac4a('0x4d')](_0x5de198)[_0xac4a('0x25')](function(_0x403a16){if(_0x403a16){_0x2b6773=_0x403a16;return _0x403a16[_0xac4a('0x66')]();}return null;})['then'](function(_0x25bf23){if(_0x25bf23){if(!_0x25bf23[_0xac4a('0x46')]){throw new db[(_0xac4a('0x67'))]['ValidationErrorItem'](_0xac4a('0x86'),0x193);}_0x52df82=_0x25bf23;return db[_0xac4a('0x68')][_0xac4a('0x42')]({'raw':!![]});}return null;})[_0xac4a('0x25')](function(_0x5bb911){if(_0x5bb911){_0x59e82c=_[_0xac4a('0x69')](_0x5bb911,'id');var _0x403f5a;var _0x3eae2f=squel[_0xac4a('0x6a')]();_0x3eae2f[_0xac4a('0x6b')](_0x2b6773[_0xac4a('0x6c')]);for(var _0x4a0cd9=0x0;_0x4a0cd9<_0x52df82['length'];_0x4a0cd9+=0x1){_0x403f5a=_0x52df82[_0x4a0cd9][_0xac4a('0x6d')]?_0x59e82c[_0x52df82[_0x4a0cd9][_0xac4a('0x6d')]][_0xac4a('0x6e')]:_0x52df82[_0x4a0cd9][_0xac4a('0x64')];_0x403f5a=_0x52df82[_0x4a0cd9][_0xac4a('0x6f')]?_[_0xac4a('0x70')](_0xcad25d[_0x52df82[_0x4a0cd9]['function']],'%s',_0x403f5a):_0x403f5a;_0x403f5a=_0x52df82[_0x4a0cd9][_0xac4a('0x71')]?_['replace'](_0xcd140e[_0x52df82[_0x4a0cd9][_0xac4a('0x71')]],'%s',_0x403f5a):_0x403f5a;if(_0x52df82[_0x4a0cd9]['groupBy']){_0x3eae2f[_0xac4a('0x63')](_0x403f5a);}_0x52df82[_0x4a0cd9][_0xac4a('0x72')]&&_0x3eae2f[_0xac4a('0x38')](_0x403f5a,_0x52df82[_0x4a0cd9][_0xac4a('0x72')]==='DESC'?![]:!![]);_0x3eae2f[_0xac4a('0x64')](_0x403f5a,_0x52df82[_0x4a0cd9][_0xac4a('0x88')]||_0x403f5a);}if(_0x2b6773[_0xac4a('0x73')]){_0x2b6773[_0xac4a('0x73')]=JSON[_0xac4a('0x78')](_0x2b6773['joins']);for(var _0x3dd60a=0x0;_0x3dd60a<_0x2b6773[_0xac4a('0x73')][_0xac4a('0x46')];_0x3dd60a+=0x1){if(_0x2b6773[_0xac4a('0x73')][_0x3dd60a][_0xac4a('0x2e')]&&_['includes'](_0x4301c3,_0x2b6773[_0xac4a('0x73')][_0x3dd60a][_0xac4a('0x2e')])&&_0x2b6773[_0xac4a('0x73')][_0x3dd60a][_0xac4a('0x74')]&&_0x2b6773[_0xac4a('0x73')][_0x3dd60a]['foreignTable']&&_0x2b6773['joins'][_0x3dd60a]['foreignKey']){_0x3eae2f[_0x2b6773['joins'][_0x3dd60a][_0xac4a('0x2e')]](_0x2b6773[_0xac4a('0x73')][_0x3dd60a][_0xac4a('0x75')],null,util[_0xac4a('0x71')](_0xac4a('0x76'),_0x2b6773['table'],_0x2b6773[_0xac4a('0x73')][_0x3dd60a][_0xac4a('0x74')],_0x2b6773['joins'][_0x3dd60a][_0xac4a('0x75')],_0x2b6773[_0xac4a('0x73')][_0x3dd60a][_0xac4a('0x8a')]));}}}if(_0x2b6773['conditions']){_0x2b6773[_0xac4a('0x77')]=JSON[_0xac4a('0x78')](_0x2b6773[_0xac4a('0x77')]);_0x3eae2f[_0xac4a('0x3a')](_0x41cdb5(_0x2b6773[_0xac4a('0x77')][_0xac4a('0x63')]));}_0x52963c=_0x3eae2f[_0xac4a('0x79')]();_0x3eae2f[_0xac4a('0x1d')](_0x63c30);_0x3eae2f[_0xac4a('0x1b')](0x0);logger['debug'](_0xac4a('0x7a'),_0x3eae2f[_0xac4a('0x7b')]());return dbH['sequelize'][_0xac4a('0x31')](_0x3eae2f['toString'](),{'type':dbH[_0xac4a('0x7c')][_0xac4a('0x7d')]['SELECT']});}})[_0xac4a('0x25')](function(){return{'sql':_0x52963c[_0xac4a('0x7b')]()};})[_0xac4a('0x25')](respondWithResult(_0x538cfd,null))[_0xac4a('0x44')](handleError(_0x538cfd,null));};
\ No newline at end of file
+var _0x4819=['keyBy','table','metric','output','web','fullPath','%s-%s.%s','randomstring','generate','csv','default','AnalyticExtractedReport','.calldate\x20BETWEEN\x20?\x20AND\x20?','startDate','endDate','.createdAt\x20BETWEEN\x20?\x20AND\x20?','info','Run\x20Query:','child_process','fork','../../components/export/','../../files/reports','savename','select','from','countTable','COUNT(*)','SELECT','run','cross_join','COUNT(DISTINCT\x20%s)','debug','Limited\x20Query:','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','ejs','squel','crypto','jsforce','desk.js','to-csv','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','apply','reject','save','update','then','get','DefaultReports','UserProfileResource','destroy','error','stack','name','send','rawAttributes','fieldName','key','model','map','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','type','options','AnalyticDefaultReport','includeAll','include','findAll','rows','show','params','keys','find','catch','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Reports','UserProfileSection','userProfileId','autoAssociation','body','preview','join','left_join','SUM(%s)','COUNT(%s)','MAX(%s)','MIN(%s)','AVG(%s)','GROUP_CONCAT(%s)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20ASC)','GROUP_CONCAT(%s\x20ORDER\x20BY\x20%s\x20DESC)','DATE(%s)','HOUR(%s)','ROUND(%s)','UNIX_TIMESTAMP(%s)','IS\x20NOT\x20NULL','IS\x20NOT\x20EMPTY','rules','field','value','getFields','Sequelize','ValidationErrorItem','Please\x20insert\x20at\x20least\x20one\x20field','AnalyticMetric','MetricId','function','replace','format','groupBy','group','orderBy','DESC','alias','joins','parse','includes','parentKey','foreignTable','foreignKey','conditions','clone','toString','sequelize','QueryTypes','right_join','SEC_TO_TIME(%s)','IS\x20NULL','IS\x20EMPTY','operator','condition'];(function(_0x2d604d,_0x51a1f5){var _0x159761=function(_0x26d263){while(--_0x26d263){_0x2d604d['push'](_0x2d604d['shift']());}};_0x159761(++_0x51a1f5);}(_0x4819,0xcd));var _0x9481=function(_0x24bf11,_0x320ad8){_0x24bf11=_0x24bf11-0x0;var _0x20f05b=_0x4819[_0x24bf11];return _0x20f05b;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x9481('0x0'));var zipdir=require(_0x9481('0x1'));var jsonpatch=require(_0x9481('0x2'));var rp=require(_0x9481('0x3'));var moment=require(_0x9481('0x4'));var BPromise=require(_0x9481('0x5'));var Mustache=require(_0x9481('0x6'));var util=require(_0x9481('0x7'));var path=require(_0x9481('0x8'));var sox=require(_0x9481('0x9'));var csv=require('to-csv');var ejs=require(_0x9481('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x9481('0xb'));var crypto=require(_0x9481('0xc'));var jsforce=require(_0x9481('0xd'));var deskjs=require(_0x9481('0xe'));var toCsv=require(_0x9481('0xf'));var querystring=require('querystring');var Papa=require(_0x9481('0x10'));var Redis=require('ioredis');var authService=require(_0x9481('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x9481('0x12'));var hardwareService=require(_0x9481('0x13'));var logger=require(_0x9481('0x14'))(_0x9481('0x15'));var utils=require(_0x9481('0x16'));var config=require(_0x9481('0x17'));var licenseUtil=require(_0x9481('0x18'));var db=require(_0x9481('0x19'))['db'];var dbH=require(_0x9481('0x19'))['dbH'];function respondWithStatusCode(_0x5aac02,_0xce6fa2){_0xce6fa2=_0xce6fa2||0xcc;return function(_0x150276){if(_0x150276){return _0x5aac02[_0x9481('0x1a')](_0xce6fa2);}return _0x5aac02[_0x9481('0x1b')](_0xce6fa2)[_0x9481('0x1c')]();};}function respondWithResult(_0xc7a0b5,_0x3fb97f){_0x3fb97f=_0x3fb97f||0xc8;return function(_0x495b30){if(_0x495b30){return _0xc7a0b5[_0x9481('0x1b')](_0x3fb97f)[_0x9481('0x1d')](_0x495b30);}};}function respondWithFilteredResult(_0x5b1fe6,_0x2266d5){return function(_0x518150){if(_0x518150){var _0x34108d=typeof _0x2266d5[_0x9481('0x1e')]===_0x9481('0x1f')&&typeof _0x2266d5[_0x9481('0x20')]==='undefined';var _0x5eda66=_0x518150[_0x9481('0x21')];var _0x50a559=_0x34108d?0x0:_0x2266d5['offset'];var _0x26671c=_0x34108d?_0x518150[_0x9481('0x21')]:_0x2266d5[_0x9481('0x1e')]+_0x2266d5[_0x9481('0x20')];var _0x7000e7;if(_0x26671c>=_0x5eda66){_0x26671c=_0x5eda66;_0x7000e7=0xc8;}else{_0x7000e7=0xce;}_0x5b1fe6[_0x9481('0x1b')](_0x7000e7);return _0x5b1fe6['set'](_0x9481('0x22'),_0x50a559+'-'+_0x26671c+'/'+_0x5eda66)[_0x9481('0x1d')](_0x518150);}return null;};}function patchUpdates(_0x45f9df){return function(_0x615e02){try{jsonpatch[_0x9481('0x23')](_0x615e02,_0x45f9df,!![]);}catch(_0x56da97){return BPromise[_0x9481('0x24')](_0x56da97);}return _0x615e02[_0x9481('0x25')]();};}function saveUpdates(_0x572599,_0x2bcf37){return function(_0xd1cd1a){if(_0xd1cd1a){return _0xd1cd1a[_0x9481('0x26')](_0x572599)[_0x9481('0x27')](function(_0x2dc02e){return _0x2dc02e;});}return null;};}function removeEntity(_0x49ecfa,_0x91e3d9){return function(_0x22f0b5){if(_0x22f0b5){return _0x22f0b5['destroy']()['then'](function(){var _0x12b0c3=_0x22f0b5[_0x9481('0x28')]({'plain':!![]});var _0x550fce=_0x9481('0x29');return db[_0x9481('0x2a')][_0x9481('0x2b')]({'where':{'type':_0x550fce,'resourceId':_0x12b0c3['id']}})[_0x9481('0x27')](function(){return _0x22f0b5;});})['then'](function(){_0x49ecfa[_0x9481('0x1b')](0xcc)[_0x9481('0x1c')]();});}};}function handleEntityNotFound(_0x3c2585,_0x587706){return function(_0x1791b2){if(!_0x1791b2){_0x3c2585['sendStatus'](0x194);}return _0x1791b2;};}function handleError(_0x2e1eff,_0xe153ab){_0xe153ab=_0xe153ab||0x1f4;return function(_0x22ab26){logger[_0x9481('0x2c')](_0x22ab26[_0x9481('0x2d')]);if(_0x22ab26['name']){delete _0x22ab26[_0x9481('0x2e')];}_0x2e1eff[_0x9481('0x1b')](_0xe153ab)[_0x9481('0x2f')](_0x22ab26);};}exports['index']=function(_0x56752e,_0x1addc8){var _0x427c25={},_0x42df68={},_0x2b33f8={'count':0x0,'rows':[]};var _0x5d9926=_['map'](db['AnalyticDefaultReport'][_0x9481('0x30')],function(_0x5d6c65){return{'name':_0x5d6c65[_0x9481('0x31')],'type':_0x5d6c65['type'][_0x9481('0x32')]};});_0x42df68[_0x9481('0x33')]=_[_0x9481('0x34')](_0x5d9926,_0x9481('0x2e'));_0x42df68[_0x9481('0x35')]=_['keys'](_0x56752e[_0x9481('0x35')]);_0x42df68[_0x9481('0x36')]=_[_0x9481('0x37')](_0x42df68['model'],_0x42df68[_0x9481('0x35')]);_0x427c25[_0x9481('0x38')]=_[_0x9481('0x37')](_0x42df68[_0x9481('0x33')],qs[_0x9481('0x39')](_0x56752e[_0x9481('0x35')]['fields']));_0x427c25[_0x9481('0x38')]=_0x427c25['attributes'][_0x9481('0x3a')]?_0x427c25[_0x9481('0x38')]:_0x42df68[_0x9481('0x33')];if(!_0x56752e[_0x9481('0x35')][_0x9481('0x3b')](_0x9481('0x3c'))){_0x427c25['limit']=qs[_0x9481('0x20')](_0x56752e[_0x9481('0x35')]['limit']);_0x427c25['offset']=qs[_0x9481('0x1e')](_0x56752e['query'][_0x9481('0x1e')]);}_0x427c25[_0x9481('0x3d')]=qs[_0x9481('0x3e')](_0x56752e[_0x9481('0x35')]['sort']);_0x427c25[_0x9481('0x3f')]=qs['filters'](_[_0x9481('0x40')](_0x56752e['query'],_0x42df68[_0x9481('0x36')]),_0x5d9926);if(_0x56752e['query'][_0x9481('0x41')]){_0x427c25[_0x9481('0x3f')]=_[_0x9481('0x42')](_0x427c25[_0x9481('0x3f')],{'$or':_[_0x9481('0x34')](_0x5d9926,function(_0x3b7998){if(_0x3b7998[_0x9481('0x43')]!=='VIRTUAL'){var _0x464080={};_0x464080[_0x3b7998[_0x9481('0x2e')]]={'$like':'%'+_0x56752e[_0x9481('0x35')][_0x9481('0x41')]+'%'};return _0x464080;}})});}_0x427c25=_[_0x9481('0x42')]({},_0x427c25,_0x56752e[_0x9481('0x44')]);var _0x2e4241={'where':_0x427c25['where']};return db[_0x9481('0x45')][_0x9481('0x21')](_0x2e4241)['then'](function(_0x704e81){_0x2b33f8[_0x9481('0x21')]=_0x704e81;if(_0x56752e[_0x9481('0x35')][_0x9481('0x46')]){_0x427c25[_0x9481('0x47')]=[{'all':!![]}];}return db['AnalyticDefaultReport'][_0x9481('0x48')](_0x427c25);})['then'](function(_0x23811a){_0x2b33f8[_0x9481('0x49')]=_0x23811a;return _0x2b33f8;})['then'](respondWithFilteredResult(_0x1addc8,_0x427c25))['catch'](handleError(_0x1addc8,null));};exports[_0x9481('0x4a')]=function(_0x1d0df0,_0x42b19a){var _0x4c4caf={'raw':!![],'where':{'id':_0x1d0df0[_0x9481('0x4b')]['id']}},_0x4402f6={};_0x4402f6['model']=_['keys'](db[_0x9481('0x45')]['rawAttributes']);_0x4402f6[_0x9481('0x35')]=_[_0x9481('0x4c')](_0x1d0df0[_0x9481('0x35')]);_0x4402f6[_0x9481('0x36')]=_[_0x9481('0x37')](_0x4402f6['model'],_0x4402f6[_0x9481('0x35')]);_0x4c4caf[_0x9481('0x38')]=_['intersection'](_0x4402f6[_0x9481('0x33')],qs[_0x9481('0x39')](_0x1d0df0[_0x9481('0x35')][_0x9481('0x39')]));_0x4c4caf[_0x9481('0x38')]=_0x4c4caf[_0x9481('0x38')][_0x9481('0x3a')]?_0x4c4caf[_0x9481('0x38')]:_0x4402f6[_0x9481('0x33')];if(_0x1d0df0['query'][_0x9481('0x46')]){_0x4c4caf['include']=[{'all':!![]}];}_0x4c4caf=_['merge']({},_0x4c4caf,_0x1d0df0[_0x9481('0x44')]);return db['AnalyticDefaultReport'][_0x9481('0x4d')](_0x4c4caf)[_0x9481('0x27')](handleEntityNotFound(_0x42b19a,null))['then'](respondWithResult(_0x42b19a,null))[_0x9481('0x4e')](handleError(_0x42b19a,null));};exports[_0x9481('0x4f')]=function(_0x2f3413,_0x13b674){return db[_0x9481('0x45')][_0x9481('0x4f')](_0x2f3413['body'],{})['then'](function(_0x424b22){var _0x44d7e0=_0x2f3413[_0x9481('0x50')][_0x9481('0x28')]({'plain':!![]});if(!_0x44d7e0)throw new Error(_0x9481('0x51'));if(_0x44d7e0[_0x9481('0x52')]===_0x9481('0x50')){var _0x3d2250=_0x424b22['get']({'plain':!![]});var _0x3972c1=_0x9481('0x53');return db[_0x9481('0x54')][_0x9481('0x4d')]({'where':{'name':_0x3972c1,'userProfileId':_0x44d7e0[_0x9481('0x55')]},'raw':!![]})['then'](function(_0x4c3048){if(_0x4c3048&&_0x4c3048[_0x9481('0x56')]===0x0){return db[_0x9481('0x2a')][_0x9481('0x4f')]({'name':_0x3d2250['name'],'resourceId':_0x3d2250['id'],'type':'DefaultReports','sectionId':_0x4c3048['id']},{})['then'](function(){return _0x424b22;});}else{return _0x424b22;}})['catch'](function(_0x538507){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x538507);throw _0x538507;});}return _0x424b22;})[_0x9481('0x27')](respondWithResult(_0x13b674,0xc9))[_0x9481('0x4e')](handleError(_0x13b674,null));};exports['update']=function(_0xd8351c,_0x5f210c){if(_0xd8351c[_0x9481('0x57')]['id']){delete _0xd8351c[_0x9481('0x57')]['id'];}return db[_0x9481('0x45')][_0x9481('0x4d')]({'where':{'id':_0xd8351c[_0x9481('0x4b')]['id']}})[_0x9481('0x27')](handleEntityNotFound(_0x5f210c,null))[_0x9481('0x27')](saveUpdates(_0xd8351c['body'],null))[_0x9481('0x27')](respondWithResult(_0x5f210c,null))[_0x9481('0x4e')](handleError(_0x5f210c,null));};exports['destroy']=function(_0x16416a,_0x1240dc){return db[_0x9481('0x45')][_0x9481('0x4d')]({'where':{'id':_0x16416a[_0x9481('0x4b')]['id']}})['then'](handleEntityNotFound(_0x1240dc,null))[_0x9481('0x27')](removeEntity(_0x1240dc,null))[_0x9481('0x4e')](handleError(_0x1240dc,null));};exports[_0x9481('0x58')]=function(_0x3fc0f9,_0x559dd2){var _0x3ac428=0xa;var _0x2927f5=[_0x9481('0x59'),_0x9481('0x5a'),'right_join','cross_join'];var _0x5b4234={'SUM':_0x9481('0x5b'),'COUNT':_0x9481('0x5c'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':_0x9481('0x5d'),'MIN':_0x9481('0x5e'),'AVG':_0x9481('0x5f'),'GROUP_CONCAT':_0x9481('0x60'),'GROUP_CONCAT ASC':_0x9481('0x61'),'GROUP_CONCAT DESC':_0x9481('0x62')};var _0x589b16={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':_0x9481('0x63'),'HOUR':_0x9481('0x64'),'ROUND':_0x9481('0x65'),'UNIX_TIMESTAMP':_0x9481('0x66')};var _0x239676=function(_0x205b96){return!_['includes'](['IS\x20NULL',_0x9481('0x67'),'IS\x20EMPTY',_0x9481('0x68')],_0x205b96);};var _0x59637f=function(_0x9af916){if(!_0x9af916||!_0x9af916[_0x9481('0x69')][_0x9481('0x3a')]){return'';}for(var _0x492464='(',_0x28d331=0x0;_0x28d331<_0x9af916[_0x9481('0x69')]['length'];_0x28d331+=0x1){_0x28d331>0x0&&(_0x492464+='\x20'+_0x9af916['operator']+'\x20');_0x492464+=_0x9af916['rules'][_0x28d331]['group']?_0x59637f(_0x9af916[_0x9481('0x69')][_0x28d331]['group']):_0x9af916[_0x9481('0x69')][_0x28d331][_0x9481('0x6a')]+'\x20'+_0x9af916[_0x9481('0x69')][_0x28d331]['condition']+(_0x239676(_0x9af916[_0x9481('0x69')][_0x28d331]['condition'])?'\x20'+_0x9af916[_0x9481('0x69')][_0x28d331][_0x9481('0x6b')]:'');}return _0x492464+')';};var _0x3c267b={'where':{'id':_0x3fc0f9[_0x9481('0x4b')]['id']}},_0x4f157d,_0x2f20b4,_0x40fed2,_0x4ff016,_0x321972;_0x3c267b=_[_0x9481('0x42')]({},_0x3c267b,_0x3fc0f9[_0x9481('0x44')]);return db[_0x9481('0x45')][_0x9481('0x4d')](_0x3c267b)[_0x9481('0x27')](function(_0x32ebde){if(_0x32ebde){_0x4f157d=_0x32ebde;return _0x32ebde[_0x9481('0x6c')]();}return null;})[_0x9481('0x27')](function(_0x237d9b){if(_0x237d9b){if(!_0x237d9b[_0x9481('0x3a')]){throw new db[(_0x9481('0x6d'))][(_0x9481('0x6e'))](_0x9481('0x6f'),0x193);}_0x2f20b4=_0x237d9b;return db[_0x9481('0x70')][_0x9481('0x48')]({'raw':!![]});}return null;})['then'](function(_0x1e05f8){if(_0x1e05f8){_0x40fed2=_['keyBy'](_0x1e05f8,'id');var _0x47bf37;var _0x1a7892=squel['select']();_0x1a7892['from'](_0x4f157d['table']);for(var _0x1b1967=0x0;_0x1b1967<_0x2f20b4[_0x9481('0x3a')];_0x1b1967+=0x1){_0x47bf37=_0x2f20b4[_0x1b1967][_0x9481('0x71')]?_0x40fed2[_0x2f20b4[_0x1b1967][_0x9481('0x71')]]['metric']:_0x2f20b4[_0x1b1967][_0x9481('0x6a')];_0x47bf37=_0x2f20b4[_0x1b1967][_0x9481('0x72')]?_[_0x9481('0x73')](_0x5b4234[_0x2f20b4[_0x1b1967][_0x9481('0x72')]],'%s',_0x47bf37):_0x47bf37;_0x47bf37=_0x2f20b4[_0x1b1967]['format']?_['replace'](_0x589b16[_0x2f20b4[_0x1b1967][_0x9481('0x74')]],'%s',_0x47bf37):_0x47bf37;if(_0x2f20b4[_0x1b1967][_0x9481('0x75')]){_0x1a7892[_0x9481('0x76')](_0x47bf37);}_0x2f20b4[_0x1b1967][_0x9481('0x77')]&&_0x1a7892[_0x9481('0x3d')](_0x47bf37,_0x2f20b4[_0x1b1967]['orderBy']===_0x9481('0x78')?![]:!![]);_0x1a7892[_0x9481('0x6a')](_0x47bf37,_0x2f20b4[_0x1b1967][_0x9481('0x79')]||_0x47bf37);}if(_0x4f157d[_0x9481('0x7a')]){_0x4f157d[_0x9481('0x7a')]=JSON[_0x9481('0x7b')](_0x4f157d[_0x9481('0x7a')]);for(var _0x42a6d2=0x0;_0x42a6d2<_0x4f157d[_0x9481('0x7a')][_0x9481('0x3a')];_0x42a6d2+=0x1){if(_0x4f157d[_0x9481('0x7a')][_0x42a6d2][_0x9481('0x43')]&&_[_0x9481('0x7c')](_0x2927f5,_0x4f157d[_0x9481('0x7a')][_0x42a6d2][_0x9481('0x43')])&&_0x4f157d['joins'][_0x42a6d2][_0x9481('0x7d')]&&_0x4f157d[_0x9481('0x7a')][_0x42a6d2][_0x9481('0x7e')]&&_0x4f157d[_0x9481('0x7a')][_0x42a6d2][_0x9481('0x7f')]){_0x1a7892[_0x4f157d[_0x9481('0x7a')][_0x42a6d2][_0x9481('0x43')]](_0x4f157d['joins'][_0x42a6d2][_0x9481('0x7e')],null,util[_0x9481('0x74')]('%s.%s\x20=\x20%s.%s',_0x4f157d['table'],_0x4f157d[_0x9481('0x7a')][_0x42a6d2]['parentKey'],_0x4f157d['joins'][_0x42a6d2][_0x9481('0x7e')],_0x4f157d['joins'][_0x42a6d2][_0x9481('0x7f')]));}}}if(_0x4f157d[_0x9481('0x80')]){_0x4f157d[_0x9481('0x80')]=JSON[_0x9481('0x7b')](_0x4f157d['conditions']);_0x1a7892[_0x9481('0x3f')](_0x59637f(_0x4f157d['conditions'][_0x9481('0x76')]));}_0x321972=_0x1a7892[_0x9481('0x81')]();_0x1a7892[_0x9481('0x20')](_0x3ac428);_0x1a7892['offset'](0x0);logger['debug']('Limited\x20Query:',_0x1a7892[_0x9481('0x82')]());return dbH['sequelize']['query'](_0x1a7892[_0x9481('0x82')](),{'type':dbH[_0x9481('0x83')][_0x9481('0x84')]['SELECT']});}})[_0x9481('0x27')](respondWithResult(_0x559dd2,null))[_0x9481('0x4e')](handleError(_0x559dd2,null));};function runReport(_0x545457,_0x226932,_0x3c8241){var _0x1ea93a=_0x226932[_0x9481('0x2e')];var _0x5f4be2=0xa;var _0x2e585d=['join',_0x9481('0x5a'),_0x9481('0x85'),'cross_join'];var _0x1c82a1={'SUM':_0x9481('0x5b'),'COUNT':_0x9481('0x5c'),'COUNT DISTINCT':'COUNT(DISTINCT\x20%s)','MAX':'MAX(%s)','MIN':_0x9481('0x5e'),'AVG':'AVG(%s)','GROUP_CONCAT':_0x9481('0x60'),'GROUP_CONCAT ASC':_0x9481('0x61'),'GROUP_CONCAT DESC':_0x9481('0x62')};var _0x55b428={'SEC_TO_TIME':_0x9481('0x86'),'DATE':_0x9481('0x63'),'HOUR':_0x9481('0x64'),'ROUND':'ROUND(%s)','UNIX_TIMESTAMP':_0x9481('0x66')};var _0x31e097=function(_0x339a30){return!_[_0x9481('0x7c')]([_0x9481('0x87'),_0x9481('0x67'),_0x9481('0x88'),_0x9481('0x68')],_0x339a30);};var _0x22e787=function(_0x31b70b){if(!_0x31b70b||!_0x31b70b['rules'][_0x9481('0x3a')]){return'';}for(var _0x5c430e='(',_0x4f55b5=0x0;_0x4f55b5<_0x31b70b['rules'][_0x9481('0x3a')];_0x4f55b5+=0x1){_0x4f55b5>0x0&&(_0x5c430e+='\x20'+_0x31b70b[_0x9481('0x89')]+'\x20');_0x5c430e+=_0x31b70b[_0x9481('0x69')][_0x4f55b5][_0x9481('0x76')]?_0x22e787(_0x31b70b[_0x9481('0x69')][_0x4f55b5]['group']):_0x31b70b[_0x9481('0x69')][_0x4f55b5][_0x9481('0x6a')]+'\x20'+_0x31b70b[_0x9481('0x69')][_0x4f55b5][_0x9481('0x8a')]+(_0x31e097(_0x31b70b[_0x9481('0x69')][_0x4f55b5][_0x9481('0x8a')])?'\x20'+_0x31b70b[_0x9481('0x69')][_0x4f55b5][_0x9481('0x6b')]:'');}return _0x5c430e+')';};var _0x28d924={'where':{'id':_0x545457['id']}},_0x426d56,_0x5808c8,_0x27be69,_0x1d49ba,_0x458a6f;_0x28d924=_[_0x9481('0x42')]({},_0x28d924,_0x3c8241);return db[_0x9481('0x45')][_0x9481('0x4d')](_0x28d924)[_0x9481('0x27')](function(_0x1173e9){if(_0x1173e9){_0x426d56=_0x1173e9;return _0x1173e9[_0x9481('0x6c')]();}return null;})[_0x9481('0x27')](function(_0x5557d7){if(_0x5557d7){if(!_0x5557d7[_0x9481('0x3a')]){throw new db[(_0x9481('0x6d'))][(_0x9481('0x6e'))](_0x9481('0x6f'),0x193);}_0x5808c8=_0x5557d7;return db[_0x9481('0x70')][_0x9481('0x48')]({'raw':!![]});}return null;})[_0x9481('0x27')](function(_0x3ae3e2){if(_0x3ae3e2){_0x27be69=_[_0x9481('0x8b')](_0x3ae3e2,'id');var _0x538fe0;var _0x44e2c2=squel['select']();_0x44e2c2['from'](_0x426d56[_0x9481('0x8c')]);for(var _0x382455=0x0;_0x382455<_0x5808c8[_0x9481('0x3a')];_0x382455+=0x1){_0x538fe0=_0x5808c8[_0x382455][_0x9481('0x71')]?_0x27be69[_0x5808c8[_0x382455][_0x9481('0x71')]][_0x9481('0x8d')]:_0x5808c8[_0x382455]['field'];_0x538fe0=_0x5808c8[_0x382455][_0x9481('0x72')]?_['replace'](_0x1c82a1[_0x5808c8[_0x382455][_0x9481('0x72')]],'%s',_0x538fe0):_0x538fe0;_0x538fe0=_0x5808c8[_0x382455][_0x9481('0x74')]?_[_0x9481('0x73')](_0x55b428[_0x5808c8[_0x382455]['format']],'%s',_0x538fe0):_0x538fe0;if(_0x5808c8[_0x382455]['groupBy']){_0x44e2c2[_0x9481('0x76')](_0x538fe0);}_0x5808c8[_0x382455][_0x9481('0x77')]&&_0x44e2c2[_0x9481('0x3d')](_0x538fe0,_0x5808c8[_0x382455][_0x9481('0x77')]===_0x9481('0x78')?![]:!![]);_0x44e2c2[_0x9481('0x6a')](_0x538fe0,_0x5808c8[_0x382455][_0x9481('0x79')]||_0x538fe0);}if(_0x426d56[_0x9481('0x7a')]){_0x426d56[_0x9481('0x7a')]=JSON['parse'](_0x426d56[_0x9481('0x7a')]);for(var _0xd64114=0x0;_0xd64114<_0x426d56['joins'][_0x9481('0x3a')];_0xd64114+=0x1){if(_0x426d56['joins'][_0xd64114][_0x9481('0x43')]&&_[_0x9481('0x7c')](_0x2e585d,_0x426d56['joins'][_0xd64114][_0x9481('0x43')])&&_0x426d56[_0x9481('0x7a')][_0xd64114][_0x9481('0x7d')]&&_0x426d56['joins'][_0xd64114][_0x9481('0x7e')]&&_0x426d56[_0x9481('0x7a')][_0xd64114]['foreignKey']){_0x44e2c2[_0x426d56[_0x9481('0x7a')][_0xd64114]['type']](_0x426d56[_0x9481('0x7a')][_0xd64114][_0x9481('0x7e')],null,util[_0x9481('0x74')]('%s.%s\x20=\x20%s.%s',_0x426d56['table'],_0x426d56[_0x9481('0x7a')][_0xd64114][_0x9481('0x7d')],_0x426d56[_0x9481('0x7a')][_0xd64114][_0x9481('0x7e')],_0x426d56[_0x9481('0x7a')][_0xd64114][_0x9481('0x7f')]));}}}if(_0x426d56['conditions']){_0x426d56[_0x9481('0x80')]=JSON[_0x9481('0x7b')](_0x426d56[_0x9481('0x80')]);_0x44e2c2[_0x9481('0x3f')](_0x22e787(_0x426d56[_0x9481('0x80')][_0x9481('0x76')]));}_0x458a6f=_0x44e2c2[_0x9481('0x81')]();_0x44e2c2['limit'](_0x5f4be2);_0x44e2c2[_0x9481('0x1e')](0x0);return;}})[_0x9481('0x27')](function(){if(_0x226932[_0x9481('0x8e')]===_0x9481('0x8f')){return null;}var _0x4e5a8d=_[_0x9481('0x42')](_0x226932,{'name':_0x226932[_0x9481('0x90')]||_0x226932[_0x9481('0x2e')]||_0x426d56[_0x9481('0x2e')],'basename':_0x1ea93a,'savename':util['format'](_0x9481('0x91'),_0x226932[_0x9481('0x2e')]||_0x426d56[_0x9481('0x2e')],require(_0x9481('0x92'))[_0x9481('0x93')](0x4),_0x226932[_0x9481('0x8e')]||_0x9481('0x94')),'reportId':_0x426d56['id'],'reportType':_0x9481('0x95')});return db[_0x9481('0x96')][_0x9481('0x4f')](_0x4e5a8d,{'raw':!![]});})[_0x9481('0x27')](function(_0x5930d6){if(_0x426d56[_0x9481('0x8c')]==='cdr'){_0x458a6f[_0x9481('0x3f')](_0x426d56[_0x9481('0x8c')]+_0x9481('0x97'),_0x226932[_0x9481('0x98')],_0x226932[_0x9481('0x99')]);}else{_0x458a6f['where'](_0x426d56[_0x9481('0x8c')]+_0x9481('0x9a'),_0x226932[_0x9481('0x98')],_0x226932[_0x9481('0x99')]);}if(_0x5930d6){logger[_0x9481('0x9b')](_0x9481('0x9c'),_0x458a6f['toString']());require(_0x9481('0x9d'))[_0x9481('0x9e')](path[_0x9481('0x59')](__dirname,_0x9481('0x9f'),_0x5930d6[_0x9481('0x8e')]),[_0x5930d6['id'],_0x458a6f[_0x9481('0x82')](),path[_0x9481('0x59')](__dirname,_0x9481('0xa0'),_0x5930d6[_0x9481('0xa1')]),_0x1ea93a]);return _0x5930d6;}else{var _0x26a666=squel[_0x9481('0xa2')]();_0x26a666[_0x9481('0xa3')]('('+_0x458a6f['toString']()+')',_0x9481('0xa4'));_0x26a666[_0x9481('0x6a')](_0x9481('0xa5'),_0x9481('0x21'));_0x458a6f[_0x9481('0x20')](_0x226932[_0x9481('0x20')]||_0x5f4be2);_0x458a6f[_0x9481('0x1e')](_0x226932[_0x9481('0x1e')]||0x0);return dbH[_0x9481('0x83')][_0x9481('0x35')](_0x26a666[_0x9481('0x82')](),{'type':dbH[_0x9481('0x83')][_0x9481('0x84')][_0x9481('0xa6')]})[_0x9481('0x27')](function(_0xcf83d2){if(!_0xcf83d2[_0x9481('0x3a')]){_0x1d49ba=0x0;}else{_0x1d49ba=_0xcf83d2[0x0][_0x9481('0x21')]||0x0;}return dbH[_0x9481('0x83')][_0x9481('0x35')](_0x458a6f['toString'](),{'type':dbH[_0x9481('0x83')][_0x9481('0x84')][_0x9481('0xa6')]});})[_0x9481('0x27')](function(_0x4553fc){return{'rows':_0x4553fc||[],'count':_0x1d49ba};});}});}exports[_0x9481('0xa7')]=function(_0x55c4ab,_0x57928a){return runReport(_0x55c4ab[_0x9481('0x4b')],_0x55c4ab[_0x9481('0x35')],_0x55c4ab[_0x9481('0x44')])[_0x9481('0x27')](respondWithResult(_0x57928a,null))['catch'](handleError(_0x57928a,null));};exports['runReport']=runReport;exports['query']=function(_0x52b980,_0x5792b1){var _0x3a199b=0xa;var _0x4b779b=[_0x9481('0x59'),_0x9481('0x5a'),_0x9481('0x85'),_0x9481('0xa8')];var _0x55a65f={'SUM':_0x9481('0x5b'),'COUNT':_0x9481('0x5c'),'COUNT DISTINCT':_0x9481('0xa9'),'MAX':_0x9481('0x5d'),'MIN':_0x9481('0x5e'),'AVG':_0x9481('0x5f'),'GROUP_CONCAT':_0x9481('0x60'),'GROUP_CONCAT ASC':_0x9481('0x61'),'GROUP_CONCAT DESC':_0x9481('0x62')};var _0x583490={'SEC_TO_TIME':'SEC_TO_TIME(%s)','DATE':_0x9481('0x63'),'HOUR':'HOUR(%s)','ROUND':_0x9481('0x65'),'UNIX_TIMESTAMP':_0x9481('0x66')};var _0x1e40fe=function(_0x26c87b){return!_[_0x9481('0x7c')](['IS\x20NULL',_0x9481('0x67'),_0x9481('0x88'),'IS\x20NOT\x20EMPTY'],_0x26c87b);};var _0x4ea411=function(_0x1cdca0){if(!_0x1cdca0||!_0x1cdca0[_0x9481('0x69')][_0x9481('0x3a')]){return'';}for(var _0x15c53f='(',_0x7ee854=0x0;_0x7ee854<_0x1cdca0[_0x9481('0x69')][_0x9481('0x3a')];_0x7ee854+=0x1){_0x7ee854>0x0&&(_0x15c53f+='\x20'+_0x1cdca0[_0x9481('0x89')]+'\x20');_0x15c53f+=_0x1cdca0[_0x9481('0x69')][_0x7ee854][_0x9481('0x76')]?_0x4ea411(_0x1cdca0['rules'][_0x7ee854][_0x9481('0x76')]):_0x1cdca0[_0x9481('0x69')][_0x7ee854][_0x9481('0x6a')]+'\x20'+_0x1cdca0[_0x9481('0x69')][_0x7ee854][_0x9481('0x8a')]+(_0x1e40fe(_0x1cdca0['rules'][_0x7ee854][_0x9481('0x8a')])?'\x20'+_0x1cdca0[_0x9481('0x69')][_0x7ee854]['value']:'');}return _0x15c53f+')';};var _0x49a6db={'where':{'id':_0x52b980['params']['id']}},_0x224b16,_0x83543f,_0x58c043,_0x97a67a,_0xe157e4;_0x49a6db=_[_0x9481('0x42')]({},_0x49a6db,_0x52b980[_0x9481('0x44')]);return db[_0x9481('0x45')][_0x9481('0x4d')](_0x49a6db)['then'](function(_0x1a1058){if(_0x1a1058){_0x224b16=_0x1a1058;return _0x1a1058['getFields']();}return null;})[_0x9481('0x27')](function(_0x206661){if(_0x206661){if(!_0x206661[_0x9481('0x3a')]){throw new db[(_0x9481('0x6d'))][(_0x9481('0x6e'))](_0x9481('0x6f'),0x193);}_0x83543f=_0x206661;return db['AnalyticMetric'][_0x9481('0x48')]({'raw':!![]});}return null;})[_0x9481('0x27')](function(_0x40cdf9){if(_0x40cdf9){_0x58c043=_['keyBy'](_0x40cdf9,'id');var _0x5467fe;var _0x440d88=squel['select']();_0x440d88[_0x9481('0xa3')](_0x224b16['table']);for(var _0x2a0367=0x0;_0x2a0367<_0x83543f[_0x9481('0x3a')];_0x2a0367+=0x1){_0x5467fe=_0x83543f[_0x2a0367]['MetricId']?_0x58c043[_0x83543f[_0x2a0367][_0x9481('0x71')]][_0x9481('0x8d')]:_0x83543f[_0x2a0367][_0x9481('0x6a')];_0x5467fe=_0x83543f[_0x2a0367]['function']?_[_0x9481('0x73')](_0x55a65f[_0x83543f[_0x2a0367][_0x9481('0x72')]],'%s',_0x5467fe):_0x5467fe;_0x5467fe=_0x83543f[_0x2a0367][_0x9481('0x74')]?_[_0x9481('0x73')](_0x583490[_0x83543f[_0x2a0367][_0x9481('0x74')]],'%s',_0x5467fe):_0x5467fe;if(_0x83543f[_0x2a0367][_0x9481('0x75')]){_0x440d88[_0x9481('0x76')](_0x5467fe);}_0x83543f[_0x2a0367]['orderBy']&&_0x440d88[_0x9481('0x3d')](_0x5467fe,_0x83543f[_0x2a0367][_0x9481('0x77')]===_0x9481('0x78')?![]:!![]);_0x440d88[_0x9481('0x6a')](_0x5467fe,_0x83543f[_0x2a0367][_0x9481('0x79')]||_0x5467fe);}if(_0x224b16['joins']){_0x224b16[_0x9481('0x7a')]=JSON[_0x9481('0x7b')](_0x224b16[_0x9481('0x7a')]);for(var _0x527ef6=0x0;_0x527ef6<_0x224b16['joins'][_0x9481('0x3a')];_0x527ef6+=0x1){if(_0x224b16[_0x9481('0x7a')][_0x527ef6][_0x9481('0x43')]&&_[_0x9481('0x7c')](_0x4b779b,_0x224b16[_0x9481('0x7a')][_0x527ef6][_0x9481('0x43')])&&_0x224b16[_0x9481('0x7a')][_0x527ef6][_0x9481('0x7d')]&&_0x224b16[_0x9481('0x7a')][_0x527ef6][_0x9481('0x7e')]&&_0x224b16['joins'][_0x527ef6][_0x9481('0x7f')]){_0x440d88[_0x224b16[_0x9481('0x7a')][_0x527ef6][_0x9481('0x43')]](_0x224b16[_0x9481('0x7a')][_0x527ef6][_0x9481('0x7e')],null,util[_0x9481('0x74')]('%s.%s\x20=\x20%s.%s',_0x224b16[_0x9481('0x8c')],_0x224b16[_0x9481('0x7a')][_0x527ef6]['parentKey'],_0x224b16[_0x9481('0x7a')][_0x527ef6][_0x9481('0x7e')],_0x224b16[_0x9481('0x7a')][_0x527ef6]['foreignKey']));}}}if(_0x224b16[_0x9481('0x80')]){_0x224b16[_0x9481('0x80')]=JSON[_0x9481('0x7b')](_0x224b16[_0x9481('0x80')]);_0x440d88['where'](_0x4ea411(_0x224b16[_0x9481('0x80')][_0x9481('0x76')]));}_0xe157e4=_0x440d88[_0x9481('0x81')]();_0x440d88[_0x9481('0x20')](_0x3a199b);_0x440d88['offset'](0x0);logger[_0x9481('0xaa')](_0x9481('0xab'),_0x440d88[_0x9481('0x82')]());return dbH[_0x9481('0x83')][_0x9481('0x35')](_0x440d88[_0x9481('0x82')](),{'type':dbH[_0x9481('0x83')][_0x9481('0x84')][_0x9481('0xa6')]});}})[_0x9481('0x27')](function(){return{'sql':_0xe157e4['toString']()};})[_0x9481('0x27')](respondWithResult(_0x5792b1,null))[_0x9481('0x4e')](handleError(_0x5792b1,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbe5c=['lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./analyticDefaultReport.attributes','exports','analytics_default_reports'];(function(_0x429dbf,_0x190fdb){var _0x22298b=function(_0x5142b1){while(--_0x5142b1){_0x429dbf['push'](_0x429dbf['shift']());}};_0x22298b(++_0x190fdb);}(_0xbe5c,0x138));var _0xcbe5=function(_0x30a79e,_0x1afb20){_0x30a79e=_0x30a79e-0x0;var _0x48556d=_0xbe5c[_0x30a79e];return _0x48556d;};'use strict';var _=require(_0xcbe5('0x0'));var util=require(_0xcbe5('0x1'));var logger=require(_0xcbe5('0x2'))(_0xcbe5('0x3'));var moment=require(_0xcbe5('0x4'));var BPromise=require(_0xcbe5('0x5'));var rp=require(_0xcbe5('0x6'));var fs=require('fs');var path=require(_0xcbe5('0x7'));var rimraf=require(_0xcbe5('0x8'));var config=require(_0xcbe5('0x9'));var attributes=require(_0xcbe5('0xa'));module[_0xcbe5('0xb')]=function(_0x12f1ad,_0x4720dc){return _0x12f1ad['define']('AnalyticDefaultReport',attributes,{'tableName':_0xcbe5('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x2954=['request-promise','path','rimraf','../../config/environment','./analyticDefaultReport.attributes','exports','define','analytics_default_reports','../../config/logger','api','moment'];(function(_0x1580d3,_0x214bba){var _0x25d78b=function(_0x4e21d5){while(--_0x4e21d5){_0x1580d3['push'](_0x1580d3['shift']());}};_0x25d78b(++_0x214bba);}(_0x2954,0x1b5));var _0x4295=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x2954[_0x3dd15e];return _0x231fd0;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x4295('0x0'))(_0x4295('0x1'));var moment=require(_0x4295('0x2'));var BPromise=require('bluebird');var rp=require(_0x4295('0x3'));var fs=require('fs');var path=require(_0x4295('0x4'));var rimraf=require(_0x4295('0x5'));var config=require(_0x4295('0x6'));var attributes=require(_0x4295('0x7'));module[_0x4295('0x8')]=function(_0x2a38ff,_0x55cc28){return _0x2a38ff[_0x4295('0x9')]('AnalyticDefaultReport',attributes,{'tableName':_0x4295('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc869=['request\x20sent','debug','stringify','error','code','message','info','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','AnalyticDefaultReport,\x20%s,\x20%s'];(function(_0x5cf1da,_0x4d093a){var _0x5cc35c=function(_0x345d15){while(--_0x345d15){_0x5cf1da['push'](_0x5cf1da['shift']());}};_0x5cc35c(++_0x4d093a);}(_0xc869,0x12d));var _0x9c86=function(_0xe9de87,_0x501cd9){_0xe9de87=_0xe9de87-0x0;var _0x5b402d=_0xc869[_0xe9de87];return _0x5b402d;};'use strict';var _=require(_0x9c86('0x0'));var util=require(_0x9c86('0x1'));var moment=require('moment');var BPromise=require(_0x9c86('0x2'));var rs=require(_0x9c86('0x3'));var fs=require('fs');var Redis=require(_0x9c86('0x4'));var db=require(_0x9c86('0x5'))['db'];var utils=require(_0x9c86('0x6'));var logger=require(_0x9c86('0x7'))(_0x9c86('0x8'));var config=require(_0x9c86('0x9'));var jayson=require(_0x9c86('0xa'));var client=jayson[_0x9c86('0xb')]['http']({'port':0x232a});function respondWithRpcPromise(_0x1536ac,_0x4daff0,_0x517cc6){return new BPromise(function(_0x3c4a32,_0x3d9db7){return client[_0x9c86('0xc')](_0x1536ac,_0x517cc6)['then'](function(_0xc19b58){logger['info'](_0x9c86('0xd'),_0x4daff0,_0x9c86('0xe'));logger[_0x9c86('0xf')]('AnalyticDefaultReport,\x20%s,\x20%s,\x20%s',_0x4daff0,'request\x20sent',JSON[_0x9c86('0x10')](_0xc19b58));if(_0xc19b58[_0x9c86('0x11')]){if(_0xc19b58[_0x9c86('0x11')][_0x9c86('0x12')]===0x1f4){logger[_0x9c86('0x11')](_0x9c86('0xd'),_0x4daff0,_0xc19b58[_0x9c86('0x11')][_0x9c86('0x13')]);return _0x3d9db7(_0xc19b58[_0x9c86('0x11')][_0x9c86('0x13')]);}logger[_0x9c86('0x11')](_0x9c86('0xd'),_0x4daff0,_0xc19b58[_0x9c86('0x11')][_0x9c86('0x13')]);return _0x3c4a32(_0xc19b58[_0x9c86('0x11')]['message']);}else{logger[_0x9c86('0x14')](_0x9c86('0xd'),_0x4daff0,_0x9c86('0xe'));_0x3c4a32(_0xc19b58['result'][_0x9c86('0x13')]);}})['catch'](function(_0x4a99ca){logger[_0x9c86('0x11')](_0x9c86('0xd'),_0x4daff0,_0x4a99ca);_0x3d9db7(_0x4a99ca);});});}
\ No newline at end of file
+var _0x544a=['ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','request','then','info','request\x20sent','debug','AnalyticDefaultReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','AnalyticDefaultReport,\x20%s,\x20%s','catch','util','moment','bluebird'];(function(_0x4487c3,_0x131314){var _0x1c7868=function(_0x36870c){while(--_0x36870c){_0x4487c3['push'](_0x4487c3['shift']());}};_0x1c7868(++_0x131314);}(_0x544a,0x90));var _0xa544=function(_0x486665,_0x2821f3){_0x486665=_0x486665-0x0;var _0x1ce6e2=_0x544a[_0x486665];return _0x1ce6e2;};'use strict';var _=require('lodash');var util=require(_0xa544('0x0'));var moment=require(_0xa544('0x1'));var BPromise=require(_0xa544('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xa544('0x3'));var db=require(_0xa544('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0xa544('0x5'))(_0xa544('0x6'));var config=require(_0xa544('0x7'));var jayson=require(_0xa544('0x8'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x313778,_0x4640b5,_0x4b28ba){return new BPromise(function(_0x5d8351,_0x4c42ce){return client[_0xa544('0x9')](_0x313778,_0x4b28ba)[_0xa544('0xa')](function(_0x2c7286){logger[_0xa544('0xb')]('AnalyticDefaultReport,\x20%s,\x20%s',_0x4640b5,_0xa544('0xc'));logger[_0xa544('0xd')](_0xa544('0xe'),_0x4640b5,_0xa544('0xc'),JSON[_0xa544('0xf')](_0x2c7286));if(_0x2c7286[_0xa544('0x10')]){if(_0x2c7286[_0xa544('0x10')][_0xa544('0x11')]===0x1f4){logger['error']('AnalyticDefaultReport,\x20%s,\x20%s',_0x4640b5,_0x2c7286[_0xa544('0x10')]['message']);return _0x4c42ce(_0x2c7286['error'][_0xa544('0x12')]);}logger['error'](_0xa544('0x13'),_0x4640b5,_0x2c7286[_0xa544('0x10')][_0xa544('0x12')]);return _0x5d8351(_0x2c7286['error'][_0xa544('0x12')]);}else{logger[_0xa544('0xb')]('AnalyticDefaultReport,\x20%s,\x20%s',_0x4640b5,_0xa544('0xc'));_0x5d8351(_0x2c7286['result'][_0xa544('0x12')]);}})[_0xa544('0x14')](function(_0x2b6fcf){logger[_0xa544('0x10')](_0xa544('0x13'),_0x4640b5,_0x2b6fcf);_0x4c42ce(_0x2b6fcf);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3827=['./analyticDefaultReport.controller','get','index','/:id','isAuthenticated','preview','run','/:id/query','query','create','update','destroy','exports','multer','util','path','connect-timeout','Router','fs-extra','../../components/interaction/service','../../config/environment'];(function(_0x5637cd,_0x5600b4){var _0x4c950d=function(_0x1d44bf){while(--_0x1d44bf){_0x5637cd['push'](_0x5637cd['shift']());}};_0x4c950d(++_0x5600b4);}(_0x3827,0x1db));var _0x7382=function(_0x24f31b,_0x44b8f3){_0x24f31b=_0x24f31b-0x0;var _0x488401=_0x3827[_0x24f31b];return _0x488401;};'use strict';var multer=require(_0x7382('0x0'));var util=require(_0x7382('0x1'));var path=require(_0x7382('0x2'));var timeout=require(_0x7382('0x3'));var express=require('express');var router=express[_0x7382('0x4')]();var fs_extra=require(_0x7382('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x7382('0x6'));var config=require(_0x7382('0x7'));var controller=require(_0x7382('0x8'));router[_0x7382('0x9')]('/',auth['isAuthenticated'](),controller[_0x7382('0xa')]);router[_0x7382('0x9')](_0x7382('0xb'),auth['isAuthenticated'](),controller['show']);router[_0x7382('0x9')]('/:id/preview',auth[_0x7382('0xc')](),controller[_0x7382('0xd')]);router[_0x7382('0x9')]('/:id/run',auth['isAuthenticated'](),controller[_0x7382('0xe')]);router[_0x7382('0x9')](_0x7382('0xf'),auth[_0x7382('0xc')](),controller[_0x7382('0x10')]);router['post']('/',auth[_0x7382('0xc')](),controller[_0x7382('0x11')]);router['put']('/:id',auth[_0x7382('0xc')](),controller[_0x7382('0x12')]);router['delete'](_0x7382('0xb'),auth[_0x7382('0xc')](),controller[_0x7382('0x13')]);module[_0x7382('0x14')]=router;
\ No newline at end of file
+var _0x6b06=['show','/:id/preview','preview','/:id/run','run','/:id/query','post','create','update','delete','/:id','exports','multer','util','path','../../config/environment','./analyticDefaultReport.controller','get','isAuthenticated','index'];(function(_0x122096,_0x60c295){var _0x3d1966=function(_0x3d569e){while(--_0x3d569e){_0x122096['push'](_0x122096['shift']());}};_0x3d1966(++_0x60c295);}(_0x6b06,0xd4));var _0x66b0=function(_0x9789af,_0x4fc4b9){_0x9789af=_0x9789af-0x0;var _0x3dd469=_0x6b06[_0x9789af];return _0x3dd469;};'use strict';var multer=require(_0x66b0('0x0'));var util=require(_0x66b0('0x1'));var path=require(_0x66b0('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express['Router']();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x66b0('0x3'));var controller=require(_0x66b0('0x4'));router[_0x66b0('0x5')]('/',auth[_0x66b0('0x6')](),controller[_0x66b0('0x7')]);router[_0x66b0('0x5')]('/:id',auth[_0x66b0('0x6')](),controller[_0x66b0('0x8')]);router[_0x66b0('0x5')](_0x66b0('0x9'),auth['isAuthenticated'](),controller[_0x66b0('0xa')]);router[_0x66b0('0x5')](_0x66b0('0xb'),auth[_0x66b0('0x6')](),controller[_0x66b0('0xc')]);router[_0x66b0('0x5')](_0x66b0('0xd'),auth[_0x66b0('0x6')](),controller['query']);router[_0x66b0('0xe')]('/',auth['isAuthenticated'](),controller[_0x66b0('0xf')]);router['put']('/:id',auth[_0x66b0('0x6')](),controller[_0x66b0('0x10')]);router[_0x66b0('0x11')](_0x66b0('0x12'),auth[_0x66b0('0x6')](),controller['destroy']);module[_0x66b0('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf08a=['manual','INTEGER','sequelize','exports','STRING','csv','pdf','xlsx','DATE','Loading','ENUM'];(function(_0x73b7c0,_0x29e330){var _0x5587ba=function(_0x2f89ea){while(--_0x2f89ea){_0x73b7c0['push'](_0x73b7c0['shift']());}};_0x5587ba(++_0x29e330);}(_0xf08a,0x120));var _0xaf08=function(_0x43eafa,_0x5017f7){_0x43eafa=_0x43eafa-0x0;var _0x4a79e2=_0xf08a[_0x43eafa];return _0x4a79e2;};'use strict';var Sequelize=require(_0xaf08('0x0'));var moment=require('moment');module[_0xaf08('0x1')]={'name':{'type':Sequelize[_0xaf08('0x2')],'allowNull':![]},'basename':{'type':Sequelize[_0xaf08('0x2')],'allowNull':![]},'output':{'type':Sequelize['ENUM'](_0xaf08('0x3'),_0xaf08('0x4'),_0xaf08('0x5')),'allowNull':![],'defaultValue':_0xaf08('0x3')},'savename':{'type':Sequelize[_0xaf08('0x2')],'allowNull':![]},'startDate':{'type':Sequelize[_0xaf08('0x6')]},'endDate':{'type':Sequelize[_0xaf08('0x6')]},'status':{'type':Sequelize[_0xaf08('0x2')],'defaultValue':_0xaf08('0x7')},'type':{'type':Sequelize[_0xaf08('0x8')](_0xaf08('0x9'),'scheduled'),'allowNull':![],'defaultValue':_0xaf08('0x9')},'reportId':{'type':Sequelize[_0xaf08('0xa')](0xb)['UNSIGNED']},'reportType':{'type':Sequelize[_0xaf08('0x2')]}};
\ No newline at end of file
+var _0xc7ed=['STRING','ENUM','csv','DATE','Loading','manual','INTEGER','UNSIGNED','sequelize','exports'];(function(_0x27840e,_0xf102ab){var _0x59250c=function(_0x2b3174){while(--_0x2b3174){_0x27840e['push'](_0x27840e['shift']());}};_0x59250c(++_0xf102ab);}(_0xc7ed,0xe4));var _0xdc7e=function(_0x1de2bd,_0x953fb){_0x1de2bd=_0x1de2bd-0x0;var _0x595960=_0xc7ed[_0x1de2bd];return _0x595960;};'use strict';var Sequelize=require(_0xdc7e('0x0'));var moment=require('moment');module[_0xdc7e('0x1')]={'name':{'type':Sequelize[_0xdc7e('0x2')],'allowNull':![]},'basename':{'type':Sequelize[_0xdc7e('0x2')],'allowNull':![]},'output':{'type':Sequelize[_0xdc7e('0x3')](_0xdc7e('0x4'),'pdf','xlsx'),'allowNull':![],'defaultValue':_0xdc7e('0x4')},'savename':{'type':Sequelize['STRING'],'allowNull':![]},'startDate':{'type':Sequelize[_0xdc7e('0x5')]},'endDate':{'type':Sequelize[_0xdc7e('0x5')]},'status':{'type':Sequelize[_0xdc7e('0x2')],'defaultValue':_0xdc7e('0x6')},'type':{'type':Sequelize[_0xdc7e('0x3')](_0xdc7e('0x7'),'scheduled'),'allowNull':![],'defaultValue':'manual'},'reportId':{'type':Sequelize[_0xdc7e('0x8')](0xb)[_0xdc7e('0x9')]},'reportType':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa49e=['Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','download','savename','output','existsSync','server/files/reports','Sequelize','exists','join','root','format','%s.%s','basename','toLowerCase','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','sox','to-csv','ejs','lodash','squel','crypto','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','reject','save','update','then','destroy','get','ExtractedReports','error','name','send','index','AnalyticExtractedReport','type','key','map','query','keys','filters','model','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','includeAll','findAll','rows','catch','show','include','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','userProfileId','autoAssociation','UserProfileResource'];(function(_0x512e72,_0x49ffe1){var _0x143086=function(_0x1d3921){while(--_0x1d3921){_0x512e72['push'](_0x512e72['shift']());}};_0x143086(++_0x49ffe1);}(_0xa49e,0x6f));var _0xea49=function(_0x40a1de,_0x399e42){_0x40a1de=_0x40a1de-0x0;var _0x461c68=_0xa49e[_0x40a1de];return _0x461c68;};'use strict';var emlformat=require(_0xea49('0x0'));var rimraf=require(_0xea49('0x1'));var zipdir=require(_0xea49('0x2'));var jsonpatch=require(_0xea49('0x3'));var rp=require(_0xea49('0x4'));var moment=require('moment');var BPromise=require(_0xea49('0x5'));var Mustache=require(_0xea49('0x6'));var util=require(_0xea49('0x7'));var path=require('path');var sox=require(_0xea49('0x8'));var csv=require(_0xea49('0x9'));var ejs=require(_0xea49('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xea49('0xb'));var squel=require(_0xea49('0xc'));var crypto=require(_0xea49('0xd'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xea49('0x9'));var querystring=require('querystring');var Papa=require(_0xea49('0xe'));var Redis=require(_0xea49('0xf'));var authService=require(_0xea49('0x10'));var qs=require(_0xea49('0x11'));var as=require(_0xea49('0x12'));var hardwareService=require(_0xea49('0x13'));var logger=require(_0xea49('0x14'))('api');var utils=require(_0xea49('0x15'));var config=require(_0xea49('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0xea49('0x17'))['db'];function respondWithStatusCode(_0x355f7f,_0x487d74){_0x487d74=_0x487d74||0xcc;return function(_0x19a88a){if(_0x19a88a){return _0x355f7f[_0xea49('0x18')](_0x487d74);}return _0x355f7f[_0xea49('0x19')](_0x487d74)[_0xea49('0x1a')]();};}function respondWithResult(_0x3a552a,_0x26cad0){_0x26cad0=_0x26cad0||0xc8;return function(_0x373404){if(_0x373404){return _0x3a552a[_0xea49('0x19')](_0x26cad0)[_0xea49('0x1b')](_0x373404);}};}function respondWithFilteredResult(_0x3a9f93,_0x30e7c2){return function(_0x1964a7){if(_0x1964a7){var _0x12adfa=typeof _0x30e7c2[_0xea49('0x1c')]===_0xea49('0x1d')&&typeof _0x30e7c2[_0xea49('0x1e')]===_0xea49('0x1d');var _0x1d314a=_0x1964a7[_0xea49('0x1f')];var _0x2499d7=_0x12adfa?0x0:_0x30e7c2[_0xea49('0x1c')];var _0x17bfb5=_0x12adfa?_0x1964a7[_0xea49('0x1f')]:_0x30e7c2[_0xea49('0x1c')]+_0x30e7c2[_0xea49('0x1e')];var _0x4f9198;if(_0x17bfb5>=_0x1d314a){_0x17bfb5=_0x1d314a;_0x4f9198=0xc8;}else{_0x4f9198=0xce;}_0x3a9f93[_0xea49('0x19')](_0x4f9198);return _0x3a9f93[_0xea49('0x20')](_0xea49('0x21'),_0x2499d7+'-'+_0x17bfb5+'/'+_0x1d314a)[_0xea49('0x1b')](_0x1964a7);}return null;};}function patchUpdates(_0x21ffb3){return function(_0x43c346){try{jsonpatch['apply'](_0x43c346,_0x21ffb3,!![]);}catch(_0x39e3da){return BPromise[_0xea49('0x22')](_0x39e3da);}return _0x43c346[_0xea49('0x23')]();};}function saveUpdates(_0x461f9e,_0x2b3edd){return function(_0x197831){if(_0x197831){return _0x197831[_0xea49('0x24')](_0x461f9e)[_0xea49('0x25')](function(_0x3f9d7e){return _0x3f9d7e;});}return null;};}function removeEntity(_0xb51502,_0x33470c){return function(_0x10f763){if(_0x10f763){return _0x10f763[_0xea49('0x26')]()[_0xea49('0x25')](function(){var _0x3efed7=_0x10f763[_0xea49('0x27')]({'plain':!![]});var _0xec1dc5=_0xea49('0x28');return db['UserProfileResource'][_0xea49('0x26')]({'where':{'type':_0xec1dc5,'resourceId':_0x3efed7['id']}})['then'](function(){return _0x10f763;});})['then'](function(){_0xb51502[_0xea49('0x19')](0xcc)[_0xea49('0x1a')]();});}};}function handleEntityNotFound(_0x137bdb,_0x34572a){return function(_0x40fda3){if(!_0x40fda3){_0x137bdb['sendStatus'](0x194);}return _0x40fda3;};}function handleError(_0x34ed80,_0x164af8){_0x164af8=_0x164af8||0x1f4;return function(_0x567f06){logger[_0xea49('0x29')](_0x567f06['stack']);if(_0x567f06[_0xea49('0x2a')]){delete _0x567f06[_0xea49('0x2a')];}_0x34ed80['status'](_0x164af8)[_0xea49('0x2b')](_0x567f06);};}exports[_0xea49('0x2c')]=function(_0x3e1197,_0x4b4b8b){var _0x2c6c3c={},_0x36e830={},_0x40f9f7={'count':0x0,'rows':[]};var _0x2955e3=_['map'](db[_0xea49('0x2d')]['rawAttributes'],function(_0xe5c29e){return{'name':_0xe5c29e['fieldName'],'type':_0xe5c29e[_0xea49('0x2e')][_0xea49('0x2f')]};});_0x36e830['model']=_[_0xea49('0x30')](_0x2955e3,_0xea49('0x2a'));_0x36e830[_0xea49('0x31')]=_[_0xea49('0x32')](_0x3e1197[_0xea49('0x31')]);_0x36e830[_0xea49('0x33')]=_['intersection'](_0x36e830[_0xea49('0x34')],_0x36e830['query']);_0x2c6c3c[_0xea49('0x35')]=_[_0xea49('0x36')](_0x36e830[_0xea49('0x34')],qs[_0xea49('0x37')](_0x3e1197[_0xea49('0x31')][_0xea49('0x37')]));_0x2c6c3c[_0xea49('0x35')]=_0x2c6c3c[_0xea49('0x35')][_0xea49('0x38')]?_0x2c6c3c[_0xea49('0x35')]:_0x36e830['model'];if(!_0x3e1197['query'][_0xea49('0x39')](_0xea49('0x3a'))){_0x2c6c3c[_0xea49('0x1e')]=qs['limit'](_0x3e1197['query'][_0xea49('0x1e')]);_0x2c6c3c['offset']=qs[_0xea49('0x1c')](_0x3e1197[_0xea49('0x31')]['offset']);}_0x2c6c3c[_0xea49('0x3b')]=qs[_0xea49('0x3c')](_0x3e1197[_0xea49('0x31')]['sort']);_0x2c6c3c[_0xea49('0x3d')]=qs[_0xea49('0x33')](_[_0xea49('0x3e')](_0x3e1197[_0xea49('0x31')],_0x36e830['filters']),_0x2955e3);if(_0x3e1197[_0xea49('0x31')]['filter']){_0x2c6c3c[_0xea49('0x3d')]=_[_0xea49('0x3f')](_0x2c6c3c[_0xea49('0x3d')],{'$or':_[_0xea49('0x30')](_0x2955e3,function(_0x135ffc){if(_0x135ffc[_0xea49('0x2e')]!==_0xea49('0x40')){var _0x51dbcd={};_0x51dbcd[_0x135ffc['name']]={'$like':'%'+_0x3e1197[_0xea49('0x31')]['filter']+'%'};return _0x51dbcd;}})});}_0x2c6c3c=_[_0xea49('0x3f')]({},_0x2c6c3c,_0x3e1197['options']);var _0x433035={'where':_0x2c6c3c[_0xea49('0x3d')]};return db[_0xea49('0x2d')][_0xea49('0x1f')](_0x433035)[_0xea49('0x25')](function(_0x1d81c8){_0x40f9f7[_0xea49('0x1f')]=_0x1d81c8;if(_0x3e1197[_0xea49('0x31')][_0xea49('0x41')]){_0x2c6c3c['include']=[{'all':!![]}];}return db[_0xea49('0x2d')][_0xea49('0x42')](_0x2c6c3c);})['then'](function(_0x3795c4){_0x40f9f7[_0xea49('0x43')]=_0x3795c4;return _0x40f9f7;})[_0xea49('0x25')](respondWithFilteredResult(_0x4b4b8b,_0x2c6c3c))[_0xea49('0x44')](handleError(_0x4b4b8b,null));};exports[_0xea49('0x45')]=function(_0x271187,_0x20b6af){var _0x5b0a1f={'raw':!![],'where':{'id':_0x271187['params']['id']}},_0x2ba00b={};_0x2ba00b[_0xea49('0x34')]=_['keys'](db[_0xea49('0x2d')]['rawAttributes']);_0x2ba00b[_0xea49('0x31')]=_[_0xea49('0x32')](_0x271187['query']);_0x2ba00b[_0xea49('0x33')]=_[_0xea49('0x36')](_0x2ba00b[_0xea49('0x34')],_0x2ba00b[_0xea49('0x31')]);_0x5b0a1f[_0xea49('0x35')]=_[_0xea49('0x36')](_0x2ba00b['model'],qs['fields'](_0x271187[_0xea49('0x31')]['fields']));_0x5b0a1f[_0xea49('0x35')]=_0x5b0a1f[_0xea49('0x35')][_0xea49('0x38')]?_0x5b0a1f[_0xea49('0x35')]:_0x2ba00b[_0xea49('0x34')];if(_0x271187[_0xea49('0x31')][_0xea49('0x41')]){_0x5b0a1f[_0xea49('0x46')]=[{'all':!![]}];}_0x5b0a1f=_[_0xea49('0x3f')]({},_0x5b0a1f,_0x271187['options']);return db['AnalyticExtractedReport'][_0xea49('0x47')](_0x5b0a1f)[_0xea49('0x25')](handleEntityNotFound(_0x20b6af,null))[_0xea49('0x25')](respondWithResult(_0x20b6af,null))[_0xea49('0x44')](handleError(_0x20b6af,null));};exports['create']=function(_0x108ef5,_0x589358){return db['AnalyticExtractedReport'][_0xea49('0x48')](_0x108ef5[_0xea49('0x49')],{})[_0xea49('0x25')](function(_0x23d1af){var _0x5d82dc=_0x108ef5['user']['get']({'plain':!![]});if(!_0x5d82dc)throw new Error(_0xea49('0x4a'));if(_0x5d82dc[_0xea49('0x4b')]===_0xea49('0x4c')){var _0x37a6be=_0x23d1af[_0xea49('0x27')]({'plain':!![]});var _0x104651='ExtractedReports';return db[_0xea49('0x4d')][_0xea49('0x47')]({'where':{'name':_0x104651,'userProfileId':_0x5d82dc[_0xea49('0x4e')]},'raw':!![]})[_0xea49('0x25')](function(_0x26984a){if(_0x26984a&&_0x26984a[_0xea49('0x4f')]===0x0){return db[_0xea49('0x50')][_0xea49('0x48')]({'name':_0x37a6be[_0xea49('0x2a')],'resourceId':_0x37a6be['id'],'type':_0x26984a[_0xea49('0x2a')],'sectionId':_0x26984a['id']},{})[_0xea49('0x25')](function(){return _0x23d1af;});}else{return _0x23d1af;}})['catch'](function(_0x4c89d7){logger['error'](_0xea49('0x51'),_0x4c89d7);throw _0x4c89d7;});}return _0x23d1af;})['then'](respondWithResult(_0x589358,0xc9))[_0xea49('0x44')](handleError(_0x589358,null));};exports['update']=function(_0x1b32b8,_0x53d250){if(_0x1b32b8[_0xea49('0x49')]['id']){delete _0x1b32b8[_0xea49('0x49')]['id'];}return db[_0xea49('0x2d')][_0xea49('0x47')]({'where':{'id':_0x1b32b8[_0xea49('0x52')]['id']}})['then'](handleEntityNotFound(_0x53d250,null))[_0xea49('0x25')](saveUpdates(_0x1b32b8['body'],null))[_0xea49('0x25')](respondWithResult(_0x53d250,null))['catch'](handleError(_0x53d250,null));};exports[_0xea49('0x26')]=function(_0x2d7fc0,_0x3489b5){return db[_0xea49('0x2d')][_0xea49('0x47')]({'where':{'id':_0x2d7fc0[_0xea49('0x52')]['id']}})[_0xea49('0x25')](handleEntityNotFound(_0x3489b5,null))[_0xea49('0x25')](removeEntity(_0x3489b5,null))[_0xea49('0x44')](handleError(_0x3489b5,null));};exports[_0xea49('0x53')]=function(_0x350da6,_0x20fbfb,_0x39de02){return db[_0xea49('0x2d')]['find']({'where':{'id':_0x350da6[_0xea49('0x52')]['id']},'attributes':[_0xea49('0x2a'),'basename',_0xea49('0x54'),_0xea49('0x55')],'raw':!![]})[_0xea49('0x25')](handleEntityNotFound(_0x20fbfb,null))[_0xea49('0x25')](function(_0x14b21f){if(_0x14b21f){if(!fs[_0xea49('0x56')](path['join'](config['root'],_0xea49('0x57'),_0x14b21f[_0xea49('0x54')]))){throw new db[(_0xea49('0x58'))]['ValidationError']('Report\x20not\x20found\x20or\x20empty');}if(_0x350da6['query'][_0xea49('0x59')]){return _0x20fbfb[_0xea49('0x18')](0xc8);}return _0x20fbfb[_0xea49('0x53')](path[_0xea49('0x5a')](config[_0xea49('0x5b')],_0xea49('0x57'),_0x14b21f[_0xea49('0x54')]),util[_0xea49('0x5c')](_0xea49('0x5d'),_0x14b21f[_0xea49('0x5e')]||_0x14b21f['name'],_0x14b21f[_0xea49('0x55')][_0xea49('0x5f')]()));}})['catch'](handleError(_0x20fbfb,null));};
\ No newline at end of file
+var _0xa48a=['basename','savename','output','join','root','server/files/reports','ValidationError','Report\x20not\x20found\x20or\x20empty','exists','format','%s.%s','toLowerCase','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','offset','undefined','set','Content-Range','json','apply','reject','save','update','destroy','then','get','UserProfileResource','end','stack','name','send','index','AnalyticExtractedReport','fieldName','type','key','map','query','keys','intersection','attributes','model','fields','length','hasOwnProperty','nolimit','limit','sort','filters','pick','where','merge','VIRTUAL','filter','count','includeAll','include','findAll','rows','catch','params','rawAttributes','options','find','create','body','role','user','ExtractedReports','UserProfileSection','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','download'];(function(_0x5c89ef,_0x296c7e){var _0x517710=function(_0x4fd0e7){while(--_0x4fd0e7){_0x5c89ef['push'](_0x5c89ef['shift']());}};_0x517710(++_0x296c7e);}(_0xa48a,0x13b));var _0xaa48=function(_0x174ee5,_0x180e12){_0x174ee5=_0x174ee5-0x0;var _0x45a60c=_0xa48a[_0x174ee5];return _0x45a60c;};'use strict';var emlformat=require(_0xaa48('0x0'));var rimraf=require(_0xaa48('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xaa48('0x2'));var rp=require('request-promise');var moment=require(_0xaa48('0x3'));var BPromise=require(_0xaa48('0x4'));var Mustache=require(_0xaa48('0x5'));var util=require(_0xaa48('0x6'));var path=require(_0xaa48('0x7'));var sox=require('sox');var csv=require(_0xaa48('0x8'));var ejs=require(_0xaa48('0x9'));var fs=require('fs');var fs_extra=require(_0xaa48('0xa'));var _=require(_0xaa48('0xb'));var squel=require(_0xaa48('0xc'));var crypto=require(_0xaa48('0xd'));var jsforce=require(_0xaa48('0xe'));var deskjs=require(_0xaa48('0xf'));var toCsv=require('to-csv');var querystring=require(_0xaa48('0x10'));var Papa=require(_0xaa48('0x11'));var Redis=require(_0xaa48('0x12'));var authService=require(_0xaa48('0x13'));var qs=require(_0xaa48('0x14'));var as=require(_0xaa48('0x15'));var hardwareService=require(_0xaa48('0x16'));var logger=require('../../config/logger')('api');var utils=require(_0xaa48('0x17'));var config=require(_0xaa48('0x18'));var licenseUtil=require(_0xaa48('0x19'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x2b99ce,_0x4d0865){_0x4d0865=_0x4d0865||0xcc;return function(_0x55fb92){if(_0x55fb92){return _0x2b99ce[_0xaa48('0x1a')](_0x4d0865);}return _0x2b99ce[_0xaa48('0x1b')](_0x4d0865)['end']();};}function respondWithResult(_0x58e9d0,_0x1a8a3d){_0x1a8a3d=_0x1a8a3d||0xc8;return function(_0x6cb7c9){if(_0x6cb7c9){return _0x58e9d0[_0xaa48('0x1b')](_0x1a8a3d)['json'](_0x6cb7c9);}};}function respondWithFilteredResult(_0x1f2b55,_0x5ee8cb){return function(_0x7324ff){if(_0x7324ff){var _0xde82d9=typeof _0x5ee8cb[_0xaa48('0x1c')]===_0xaa48('0x1d')&&typeof _0x5ee8cb['limit']==='undefined';var _0x403802=_0x7324ff['count'];var _0x592f80=_0xde82d9?0x0:_0x5ee8cb[_0xaa48('0x1c')];var _0x3f4e9a=_0xde82d9?_0x7324ff['count']:_0x5ee8cb['offset']+_0x5ee8cb['limit'];var _0x4d14ba;if(_0x3f4e9a>=_0x403802){_0x3f4e9a=_0x403802;_0x4d14ba=0xc8;}else{_0x4d14ba=0xce;}_0x1f2b55['status'](_0x4d14ba);return _0x1f2b55[_0xaa48('0x1e')](_0xaa48('0x1f'),_0x592f80+'-'+_0x3f4e9a+'/'+_0x403802)[_0xaa48('0x20')](_0x7324ff);}return null;};}function patchUpdates(_0x50902e){return function(_0x209255){try{jsonpatch[_0xaa48('0x21')](_0x209255,_0x50902e,!![]);}catch(_0x57f1ef){return BPromise[_0xaa48('0x22')](_0x57f1ef);}return _0x209255[_0xaa48('0x23')]();};}function saveUpdates(_0x262229,_0x2018a9){return function(_0x14d39e){if(_0x14d39e){return _0x14d39e[_0xaa48('0x24')](_0x262229)['then'](function(_0x240d72){return _0x240d72;});}return null;};}function removeEntity(_0x40d14f,_0x49eed5){return function(_0x411e66){if(_0x411e66){return _0x411e66[_0xaa48('0x25')]()[_0xaa48('0x26')](function(){var _0x65a31e=_0x411e66[_0xaa48('0x27')]({'plain':!![]});var _0x515116='ExtractedReports';return db[_0xaa48('0x28')][_0xaa48('0x25')]({'where':{'type':_0x515116,'resourceId':_0x65a31e['id']}})[_0xaa48('0x26')](function(){return _0x411e66;});})[_0xaa48('0x26')](function(){_0x40d14f['status'](0xcc)[_0xaa48('0x29')]();});}};}function handleEntityNotFound(_0x3a9c07,_0x173044){return function(_0x67ce8b){if(!_0x67ce8b){_0x3a9c07[_0xaa48('0x1a')](0x194);}return _0x67ce8b;};}function handleError(_0x1eca0d,_0x53ea61){_0x53ea61=_0x53ea61||0x1f4;return function(_0x3cbef1){logger['error'](_0x3cbef1[_0xaa48('0x2a')]);if(_0x3cbef1['name']){delete _0x3cbef1[_0xaa48('0x2b')];}_0x1eca0d['status'](_0x53ea61)[_0xaa48('0x2c')](_0x3cbef1);};}exports[_0xaa48('0x2d')]=function(_0x1300a5,_0x457bea){var _0xab405e={},_0x1fbba4={},_0x2ed040={'count':0x0,'rows':[]};var _0x4b1014=_['map'](db[_0xaa48('0x2e')]['rawAttributes'],function(_0xc621af){return{'name':_0xc621af[_0xaa48('0x2f')],'type':_0xc621af[_0xaa48('0x30')][_0xaa48('0x31')]};});_0x1fbba4['model']=_[_0xaa48('0x32')](_0x4b1014,_0xaa48('0x2b'));_0x1fbba4[_0xaa48('0x33')]=_[_0xaa48('0x34')](_0x1300a5[_0xaa48('0x33')]);_0x1fbba4['filters']=_[_0xaa48('0x35')](_0x1fbba4['model'],_0x1fbba4['query']);_0xab405e[_0xaa48('0x36')]=_[_0xaa48('0x35')](_0x1fbba4[_0xaa48('0x37')],qs[_0xaa48('0x38')](_0x1300a5['query'][_0xaa48('0x38')]));_0xab405e['attributes']=_0xab405e['attributes'][_0xaa48('0x39')]?_0xab405e[_0xaa48('0x36')]:_0x1fbba4[_0xaa48('0x37')];if(!_0x1300a5[_0xaa48('0x33')][_0xaa48('0x3a')](_0xaa48('0x3b'))){_0xab405e[_0xaa48('0x3c')]=qs[_0xaa48('0x3c')](_0x1300a5[_0xaa48('0x33')]['limit']);_0xab405e[_0xaa48('0x1c')]=qs[_0xaa48('0x1c')](_0x1300a5[_0xaa48('0x33')]['offset']);}_0xab405e['order']=qs[_0xaa48('0x3d')](_0x1300a5['query'][_0xaa48('0x3d')]);_0xab405e['where']=qs[_0xaa48('0x3e')](_[_0xaa48('0x3f')](_0x1300a5[_0xaa48('0x33')],_0x1fbba4[_0xaa48('0x3e')]),_0x4b1014);if(_0x1300a5[_0xaa48('0x33')]['filter']){_0xab405e[_0xaa48('0x40')]=_[_0xaa48('0x41')](_0xab405e[_0xaa48('0x40')],{'$or':_['map'](_0x4b1014,function(_0xa42a82){if(_0xa42a82[_0xaa48('0x30')]!==_0xaa48('0x42')){var _0x41f537={};_0x41f537[_0xa42a82['name']]={'$like':'%'+_0x1300a5[_0xaa48('0x33')][_0xaa48('0x43')]+'%'};return _0x41f537;}})});}_0xab405e=_[_0xaa48('0x41')]({},_0xab405e,_0x1300a5['options']);var _0x57f872={'where':_0xab405e[_0xaa48('0x40')]};return db[_0xaa48('0x2e')][_0xaa48('0x44')](_0x57f872)['then'](function(_0x2b9769){_0x2ed040[_0xaa48('0x44')]=_0x2b9769;if(_0x1300a5[_0xaa48('0x33')][_0xaa48('0x45')]){_0xab405e[_0xaa48('0x46')]=[{'all':!![]}];}return db['AnalyticExtractedReport'][_0xaa48('0x47')](_0xab405e);})[_0xaa48('0x26')](function(_0x19409a){_0x2ed040[_0xaa48('0x48')]=_0x19409a;return _0x2ed040;})['then'](respondWithFilteredResult(_0x457bea,_0xab405e))[_0xaa48('0x49')](handleError(_0x457bea,null));};exports['show']=function(_0x44268c,_0x322375){var _0x1cd102={'raw':!![],'where':{'id':_0x44268c[_0xaa48('0x4a')]['id']}},_0x844de8={};_0x844de8['model']=_[_0xaa48('0x34')](db[_0xaa48('0x2e')][_0xaa48('0x4b')]);_0x844de8[_0xaa48('0x33')]=_[_0xaa48('0x34')](_0x44268c[_0xaa48('0x33')]);_0x844de8[_0xaa48('0x3e')]=_[_0xaa48('0x35')](_0x844de8[_0xaa48('0x37')],_0x844de8['query']);_0x1cd102[_0xaa48('0x36')]=_['intersection'](_0x844de8['model'],qs[_0xaa48('0x38')](_0x44268c[_0xaa48('0x33')][_0xaa48('0x38')]));_0x1cd102[_0xaa48('0x36')]=_0x1cd102[_0xaa48('0x36')][_0xaa48('0x39')]?_0x1cd102[_0xaa48('0x36')]:_0x844de8[_0xaa48('0x37')];if(_0x44268c['query'][_0xaa48('0x45')]){_0x1cd102[_0xaa48('0x46')]=[{'all':!![]}];}_0x1cd102=_[_0xaa48('0x41')]({},_0x1cd102,_0x44268c[_0xaa48('0x4c')]);return db['AnalyticExtractedReport'][_0xaa48('0x4d')](_0x1cd102)[_0xaa48('0x26')](handleEntityNotFound(_0x322375,null))[_0xaa48('0x26')](respondWithResult(_0x322375,null))['catch'](handleError(_0x322375,null));};exports[_0xaa48('0x4e')]=function(_0x5f54e7,_0x43ad1e){return db[_0xaa48('0x2e')][_0xaa48('0x4e')](_0x5f54e7[_0xaa48('0x4f')],{})[_0xaa48('0x26')](function(_0x20c176){var _0x157805=_0x5f54e7['user']['get']({'plain':!![]});if(!_0x157805)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x157805[_0xaa48('0x50')]===_0xaa48('0x51')){var _0x1b3c7c=_0x20c176[_0xaa48('0x27')]({'plain':!![]});var _0x5a16f0=_0xaa48('0x52');return db[_0xaa48('0x53')]['find']({'where':{'name':_0x5a16f0,'userProfileId':_0x157805[_0xaa48('0x54')]},'raw':!![]})[_0xaa48('0x26')](function(_0x202db4){if(_0x202db4&&_0x202db4[_0xaa48('0x55')]===0x0){return db[_0xaa48('0x28')][_0xaa48('0x4e')]({'name':_0x1b3c7c[_0xaa48('0x2b')],'resourceId':_0x1b3c7c['id'],'type':_0x202db4[_0xaa48('0x2b')],'sectionId':_0x202db4['id']},{})[_0xaa48('0x26')](function(){return _0x20c176;});}else{return _0x20c176;}})[_0xaa48('0x49')](function(_0x4a753f){logger[_0xaa48('0x56')](_0xaa48('0x57'),_0x4a753f);throw _0x4a753f;});}return _0x20c176;})['then'](respondWithResult(_0x43ad1e,0xc9))[_0xaa48('0x49')](handleError(_0x43ad1e,null));};exports['update']=function(_0x23d501,_0x3455ab){if(_0x23d501['body']['id']){delete _0x23d501['body']['id'];}return db[_0xaa48('0x2e')][_0xaa48('0x4d')]({'where':{'id':_0x23d501[_0xaa48('0x4a')]['id']}})['then'](handleEntityNotFound(_0x3455ab,null))['then'](saveUpdates(_0x23d501[_0xaa48('0x4f')],null))[_0xaa48('0x26')](respondWithResult(_0x3455ab,null))[_0xaa48('0x49')](handleError(_0x3455ab,null));};exports[_0xaa48('0x25')]=function(_0x265b23,_0x732d4c){return db['AnalyticExtractedReport'][_0xaa48('0x4d')]({'where':{'id':_0x265b23['params']['id']}})['then'](handleEntityNotFound(_0x732d4c,null))[_0xaa48('0x26')](removeEntity(_0x732d4c,null))['catch'](handleError(_0x732d4c,null));};exports[_0xaa48('0x58')]=function(_0x250b80,_0x4c338d,_0x50d67d){return db['AnalyticExtractedReport'][_0xaa48('0x4d')]({'where':{'id':_0x250b80[_0xaa48('0x4a')]['id']},'attributes':['name',_0xaa48('0x59'),_0xaa48('0x5a'),_0xaa48('0x5b')],'raw':!![]})['then'](handleEntityNotFound(_0x4c338d,null))[_0xaa48('0x26')](function(_0x55adb3){if(_0x55adb3){if(!fs['existsSync'](path[_0xaa48('0x5c')](config[_0xaa48('0x5d')],_0xaa48('0x5e'),_0x55adb3['savename']))){throw new db['Sequelize'][(_0xaa48('0x5f'))](_0xaa48('0x60'));}if(_0x250b80[_0xaa48('0x33')][_0xaa48('0x61')]){return _0x4c338d[_0xaa48('0x1a')](0xc8);}return _0x4c338d[_0xaa48('0x58')](path[_0xaa48('0x5c')](config[_0xaa48('0x5d')],_0xaa48('0x5e'),_0x55adb3[_0xaa48('0x5a')]),util[_0xaa48('0x62')](_0xaa48('0x63'),_0x55adb3[_0xaa48('0x59')]||_0x55adb3[_0xaa48('0x2b')],_0x55adb3[_0xaa48('0x5b')][_0xaa48('0x64')]()));}})[_0xaa48('0x49')](handleError(_0x4c338d,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa846=['bluebird','request-promise','rimraf','../../config/environment','./analyticExtractedReport.attributes','exports','define','AnalyticExtractedReport','analytics_extracted_reports','lodash','util','../../config/logger','api'];(function(_0x323419,_0x2a6172){var _0x4c0be7=function(_0x5ae2df){while(--_0x5ae2df){_0x323419['push'](_0x323419['shift']());}};_0x4c0be7(++_0x2a6172);}(_0xa846,0x10d));var _0x6a84=function(_0x34ce72,_0x19ce31){_0x34ce72=_0x34ce72-0x0;var _0x4a3fe8=_0xa846[_0x34ce72];return _0x4a3fe8;};'use strict';var _=require(_0x6a84('0x0'));var util=require(_0x6a84('0x1'));var logger=require(_0x6a84('0x2'))(_0x6a84('0x3'));var moment=require('moment');var BPromise=require(_0x6a84('0x4'));var rp=require(_0x6a84('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x6a84('0x6'));var config=require(_0x6a84('0x7'));var attributes=require(_0x6a84('0x8'));module[_0x6a84('0x9')]=function(_0x476e13,_0x484464){return _0x476e13[_0x6a84('0xa')](_0x6a84('0xb'),attributes,{'tableName':_0x6a84('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xa65f=['bluebird','path','rimraf','../../config/environment','./analyticExtractedReport.attributes','exports','AnalyticExtractedReport','analytics_extracted_reports','lodash','util','../../config/logger','api','moment'];(function(_0x870b62,_0x2143f9){var _0x2dcb39=function(_0x2fb63d){while(--_0x2fb63d){_0x870b62['push'](_0x870b62['shift']());}};_0x2dcb39(++_0x2143f9);}(_0xa65f,0x10c));var _0xfa65=function(_0x494a42,_0x1f2103){_0x494a42=_0x494a42-0x0;var _0x254792=_0xa65f[_0x494a42];return _0x254792;};'use strict';var _=require(_0xfa65('0x0'));var util=require(_0xfa65('0x1'));var logger=require(_0xfa65('0x2'))(_0xfa65('0x3'));var moment=require(_0xfa65('0x4'));var BPromise=require(_0xfa65('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xfa65('0x6'));var rimraf=require(_0xfa65('0x7'));var config=require(_0xfa65('0x8'));var attributes=require(_0xfa65('0x9'));module[_0xfa65('0xa')]=function(_0x4cf7de,_0x26e7d4){return _0x4cf7de['define'](_0xfa65('0xb'),attributes,{'tableName':_0xfa65('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xab5e=['info','request\x20sent','stringify','error','AnalyticExtractedReport,\x20%s,\x20%s','message','result','catch','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','request','then'];(function(_0x492b06,_0x267e8f){var _0x12ed1d=function(_0x240fa9){while(--_0x240fa9){_0x492b06['push'](_0x492b06['shift']());}};_0x12ed1d(++_0x267e8f);}(_0xab5e,0x110));var _0xeab5=function(_0x547074,_0x11f601){_0x547074=_0x547074-0x0;var _0x1efee=_0xab5e[_0x547074];return _0x1efee;};'use strict';var _=require(_0xeab5('0x0'));var util=require(_0xeab5('0x1'));var moment=require(_0xeab5('0x2'));var BPromise=require(_0xeab5('0x3'));var rs=require(_0xeab5('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xeab5('0x5'))['db'];var utils=require(_0xeab5('0x6'));var logger=require(_0xeab5('0x7'))(_0xeab5('0x8'));var config=require(_0xeab5('0x9'));var jayson=require('jayson/promise');var client=jayson[_0xeab5('0xa')][_0xeab5('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x38ec2b,_0x2d9ffc,_0xc8a164){return new BPromise(function(_0x11ed92,_0x112fb7){return client[_0xeab5('0xc')](_0x38ec2b,_0xc8a164)[_0xeab5('0xd')](function(_0x3dd144){logger[_0xeab5('0xe')]('AnalyticExtractedReport,\x20%s,\x20%s',_0x2d9ffc,_0xeab5('0xf'));logger['debug']('AnalyticExtractedReport,\x20%s,\x20%s,\x20%s',_0x2d9ffc,_0xeab5('0xf'),JSON[_0xeab5('0x10')](_0x3dd144));if(_0x3dd144['error']){if(_0x3dd144[_0xeab5('0x11')]['code']===0x1f4){logger[_0xeab5('0x11')](_0xeab5('0x12'),_0x2d9ffc,_0x3dd144[_0xeab5('0x11')][_0xeab5('0x13')]);return _0x112fb7(_0x3dd144[_0xeab5('0x11')][_0xeab5('0x13')]);}logger[_0xeab5('0x11')](_0xeab5('0x12'),_0x2d9ffc,_0x3dd144[_0xeab5('0x11')][_0xeab5('0x13')]);return _0x11ed92(_0x3dd144[_0xeab5('0x11')][_0xeab5('0x13')]);}else{logger['info']('AnalyticExtractedReport,\x20%s,\x20%s',_0x2d9ffc,_0xeab5('0xf'));_0x11ed92(_0x3dd144[_0xeab5('0x14')][_0xeab5('0x13')]);}})[_0xeab5('0x15')](function(_0xe57416){logger['error'](_0xeab5('0x12'),_0x2d9ffc,_0xe57416);_0x112fb7(_0xe57416);});});}
\ No newline at end of file
+var _0xe386=['debug','AnalyticExtractedReport,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','catch','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','then','info','AnalyticExtractedReport,\x20%s,\x20%s'];(function(_0x5d2803,_0xf375bd){var _0xdcad2c=function(_0x3c3a98){while(--_0x3c3a98){_0x5d2803['push'](_0x5d2803['shift']());}};_0xdcad2c(++_0xf375bd);}(_0xe386,0x11c));var _0x6e38=function(_0x2c91e9,_0x2fb965){_0x2c91e9=_0x2c91e9-0x0;var _0x13f0ff=_0xe386[_0x2c91e9];return _0x13f0ff;};'use strict';var _=require('lodash');var util=require(_0x6e38('0x0'));var moment=require(_0x6e38('0x1'));var BPromise=require(_0x6e38('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x6e38('0x3'));var db=require(_0x6e38('0x4'))['db'];var utils=require(_0x6e38('0x5'));var logger=require(_0x6e38('0x6'))(_0x6e38('0x7'));var config=require(_0x6e38('0x8'));var jayson=require(_0x6e38('0x9'));var client=jayson[_0x6e38('0xa')][_0x6e38('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x3a5b5f,_0x403c90,_0x44a3e9){return new BPromise(function(_0x15b404,_0x295976){return client['request'](_0x3a5b5f,_0x44a3e9)[_0x6e38('0xc')](function(_0x2e7164){logger[_0x6e38('0xd')](_0x6e38('0xe'),_0x403c90,'request\x20sent');logger[_0x6e38('0xf')](_0x6e38('0x10'),_0x403c90,_0x6e38('0x11'),JSON[_0x6e38('0x12')](_0x2e7164));if(_0x2e7164[_0x6e38('0x13')]){if(_0x2e7164[_0x6e38('0x13')]['code']===0x1f4){logger[_0x6e38('0x13')]('AnalyticExtractedReport,\x20%s,\x20%s',_0x403c90,_0x2e7164[_0x6e38('0x13')][_0x6e38('0x14')]);return _0x295976(_0x2e7164[_0x6e38('0x13')][_0x6e38('0x14')]);}logger[_0x6e38('0x13')]('AnalyticExtractedReport,\x20%s,\x20%s',_0x403c90,_0x2e7164[_0x6e38('0x13')]['message']);return _0x15b404(_0x2e7164[_0x6e38('0x13')]['message']);}else{logger['info']('AnalyticExtractedReport,\x20%s,\x20%s',_0x403c90,_0x6e38('0x11'));_0x15b404(_0x2e7164[_0x6e38('0x15')][_0x6e38('0x14')]);}})[_0x6e38('0x16')](function(_0x448b71){logger[_0x6e38('0x13')]('AnalyticExtractedReport,\x20%s,\x20%s',_0x403c90,_0x448b71);_0x295976(_0x448b71);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4729=['/:id','show','download','create','put','update','destroy','exports','multer','util','path','express','fs-extra','../../components/auth/service','./analyticExtractedReport.controller','isAuthenticated','get'];(function(_0x7ad065,_0x3b9005){var _0x591984=function(_0x4a4e6a){while(--_0x4a4e6a){_0x7ad065['push'](_0x7ad065['shift']());}};_0x591984(++_0x3b9005);}(_0x4729,0xf6));var _0x9472=function(_0x4f9c55,_0x3905ad){_0x4f9c55=_0x4f9c55-0x0;var _0x282e5b=_0x4729[_0x4f9c55];return _0x282e5b;};'use strict';var multer=require(_0x9472('0x0'));var util=require(_0x9472('0x1'));var path=require(_0x9472('0x2'));var timeout=require('connect-timeout');var express=require(_0x9472('0x3'));var router=express['Router']();var fs_extra=require(_0x9472('0x4'));var auth=require(_0x9472('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x9472('0x6'));router['get']('/',auth[_0x9472('0x7')](),controller['index']);router[_0x9472('0x8')](_0x9472('0x9'),auth['isAuthenticated'](),controller[_0x9472('0xa')]);router[_0x9472('0x8')]('/:id/download',auth['isAuthenticated'](),controller[_0x9472('0xb')]);router['post']('/',auth[_0x9472('0x7')](),controller[_0x9472('0xc')]);router[_0x9472('0xd')](_0x9472('0x9'),auth[_0x9472('0x7')](),controller[_0x9472('0xe')]);router['delete']('/:id',auth[_0x9472('0x7')](),controller[_0x9472('0xf')]);module[_0x9472('0x10')]=router;
\ No newline at end of file
+var _0x482a=['post','put','/:id','delete','destroy','exports','util','path','connect-timeout','express','Router','../../components/interaction/service','isAuthenticated','index','get','show','/:id/download','download'];(function(_0x1719e3,_0x28fa7c){var _0xecdcff=function(_0x4f07fb){while(--_0x4f07fb){_0x1719e3['push'](_0x1719e3['shift']());}};_0xecdcff(++_0x28fa7c);}(_0x482a,0x1ec));var _0xa482=function(_0x3ea913,_0x255df2){_0x3ea913=_0x3ea913-0x0;var _0x2b4f28=_0x482a[_0x3ea913];return _0x2b4f28;};'use strict';var multer=require('multer');var util=require(_0xa482('0x0'));var path=require(_0xa482('0x1'));var timeout=require(_0xa482('0x2'));var express=require(_0xa482('0x3'));var router=express[_0xa482('0x4')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0xa482('0x5'));var config=require('../../config/environment');var controller=require('./analyticExtractedReport.controller');router['get']('/',auth[_0xa482('0x6')](),controller[_0xa482('0x7')]);router[_0xa482('0x8')]('/:id',auth[_0xa482('0x6')](),controller[_0xa482('0x9')]);router[_0xa482('0x8')](_0xa482('0xa'),auth['isAuthenticated'](),controller[_0xa482('0xb')]);router[_0xa482('0xc')]('/',auth[_0xa482('0x6')](),controller['create']);router[_0xa482('0xd')](_0xa482('0xe'),auth[_0xa482('0x6')](),controller['update']);router[_0xa482('0xf')](_0xa482('0xe'),auth[_0xa482('0x6')](),controller[_0xa482('0x10')]);module[_0xa482('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x43df=['TEXT','STRING','BOOLEAN','sequelize','exports'];(function(_0x42b1c9,_0x22a786){var _0x2d30e3=function(_0x41d459){while(--_0x41d459){_0x42b1c9['push'](_0x42b1c9['shift']());}};_0x2d30e3(++_0x22a786);}(_0x43df,0x16b));var _0xf43d=function(_0x2dba9a,_0x1177e1){_0x2dba9a=_0x2dba9a-0x0;var _0x4e6157=_0x43df[_0x2dba9a];return _0x4e6157;};'use strict';var Sequelize=require(_0xf43d('0x0'));module[_0xf43d('0x1')]={'field':{'type':Sequelize[_0xf43d('0x2')]},'alias':{'type':Sequelize[_0xf43d('0x3')]},'function':{'type':Sequelize['STRING']},'format':{'type':Sequelize[_0xf43d('0x3')]},'groupBy':{'type':Sequelize[_0xf43d('0x4')],'defaultValue':![]},'orderBy':{'type':Sequelize[_0xf43d('0x3')]},'custom':{'type':Sequelize[_0xf43d('0x4')],'defaultValue':![]}};
\ No newline at end of file
+var _0x9092=['STRING','BOOLEAN','TEXT'];(function(_0x2f4948,_0x5c038f){var _0x31eca5=function(_0x580714){while(--_0x580714){_0x2f4948['push'](_0x2f4948['shift']());}};_0x31eca5(++_0x5c038f);}(_0x9092,0x101));var _0x2909=function(_0x461c7a,_0x1627fe){_0x461c7a=_0x461c7a-0x0;var _0x59a46d=_0x9092[_0x461c7a];return _0x59a46d;};'use strict';var Sequelize=require('sequelize');module['exports']={'field':{'type':Sequelize[_0x2909('0x0')]},'alias':{'type':Sequelize[_0x2909('0x1')]},'function':{'type':Sequelize[_0x2909('0x1')]},'format':{'type':Sequelize['STRING']},'groupBy':{'type':Sequelize[_0x2909('0x2')],'defaultValue':![]},'orderBy':{'type':Sequelize[_0x2909('0x1')]},'custom':{'type':Sequelize[_0x2909('0x2')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf7bf=['sort','pick','filter','where','merge','VIRTUAL','options','include','findAll','rows','show','AnalyticFieldReport','find','create','body','bulkCreate','catch','params','bulkDestroy','ids','addFields','AnalyticCustomReport','findOne','sequelize','transaction','CustomReportId','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','sendStatus','end','status','json','undefined','limit','count','offset','set','Content-Range','apply','reject','update','then','destroy','error','stack','name','send','index','map','rawAttributes','fieldName','type','key','keys','query','filters','intersection','model','attributes','fields','length','nolimit','order'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0xf7bf,0x6e));var _0xff7b=function(_0x38fd0b,_0x156f8a){_0x38fd0b=_0x38fd0b-0x0;var _0x3a53b9=_0xf7bf[_0x38fd0b];return _0x3a53b9;};'use strict';var emlformat=require(_0xff7b('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xff7b('0x1'));var jsonpatch=require(_0xff7b('0x2'));var rp=require(_0xff7b('0x3'));var moment=require(_0xff7b('0x4'));var BPromise=require(_0xff7b('0x5'));var Mustache=require(_0xff7b('0x6'));var util=require(_0xff7b('0x7'));var path=require(_0xff7b('0x8'));var sox=require(_0xff7b('0x9'));var csv=require(_0xff7b('0xa'));var ejs=require(_0xff7b('0xb'));var fs=require('fs');var fs_extra=require(_0xff7b('0xc'));var _=require(_0xff7b('0xd'));var squel=require(_0xff7b('0xe'));var crypto=require('crypto');var jsforce=require(_0xff7b('0xf'));var deskjs=require(_0xff7b('0x10'));var toCsv=require(_0xff7b('0xa'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xff7b('0x11'));var authService=require('../../components/auth/service');var qs=require(_0xff7b('0x12'));var as=require(_0xff7b('0x13'));var hardwareService=require(_0xff7b('0x14'));var logger=require(_0xff7b('0x15'))('api');var utils=require('../../config/utils');var config=require(_0xff7b('0x16'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x27233e,_0x429ca8){_0x429ca8=_0x429ca8||0xcc;return function(_0x7cbf0d){if(_0x7cbf0d){return _0x27233e[_0xff7b('0x17')](_0x429ca8);}return _0x27233e['status'](_0x429ca8)[_0xff7b('0x18')]();};}function respondWithResult(_0xa060b9,_0x311181){_0x311181=_0x311181||0xc8;return function(_0x4ad488){if(_0x4ad488){return _0xa060b9[_0xff7b('0x19')](_0x311181)[_0xff7b('0x1a')](_0x4ad488);}};}function respondWithFilteredResult(_0x51da93,_0x3440ef){return function(_0x4c1400){if(_0x4c1400){var _0x4c80c9=typeof _0x3440ef['offset']===_0xff7b('0x1b')&&typeof _0x3440ef[_0xff7b('0x1c')]==='undefined';var _0x4fb9cf=_0x4c1400[_0xff7b('0x1d')];var _0x270242=_0x4c80c9?0x0:_0x3440ef[_0xff7b('0x1e')];var _0x62a11a=_0x4c80c9?_0x4c1400[_0xff7b('0x1d')]:_0x3440ef['offset']+_0x3440ef[_0xff7b('0x1c')];var _0x5eae32;if(_0x62a11a>=_0x4fb9cf){_0x62a11a=_0x4fb9cf;_0x5eae32=0xc8;}else{_0x5eae32=0xce;}_0x51da93[_0xff7b('0x19')](_0x5eae32);return _0x51da93[_0xff7b('0x1f')](_0xff7b('0x20'),_0x270242+'-'+_0x62a11a+'/'+_0x4fb9cf)['json'](_0x4c1400);}return null;};}function patchUpdates(_0x43967a){return function(_0x20683f){try{jsonpatch[_0xff7b('0x21')](_0x20683f,_0x43967a,!![]);}catch(_0x5998f4){return BPromise[_0xff7b('0x22')](_0x5998f4);}return _0x20683f['save']();};}function saveUpdates(_0x4cdb6e,_0x5c0b37){return function(_0x49e604){if(_0x49e604){return _0x49e604[_0xff7b('0x23')](_0x4cdb6e)[_0xff7b('0x24')](function(_0x5e105a){return _0x5e105a;});}return null;};}function removeEntity(_0x3a90cc,_0x412606){return function(_0x1d4ff0){if(_0x1d4ff0){return _0x1d4ff0[_0xff7b('0x25')]()['then'](function(){_0x3a90cc[_0xff7b('0x19')](0xcc)[_0xff7b('0x18')]();});}};}function handleEntityNotFound(_0x5480e4,_0x1c0a43){return function(_0x319a5a){if(!_0x319a5a){_0x5480e4[_0xff7b('0x17')](0x194);}return _0x319a5a;};}function handleError(_0xe366e7,_0x505f48){_0x505f48=_0x505f48||0x1f4;return function(_0x440d71){logger[_0xff7b('0x26')](_0x440d71[_0xff7b('0x27')]);if(_0x440d71[_0xff7b('0x28')]){delete _0x440d71[_0xff7b('0x28')];}_0xe366e7['status'](_0x505f48)[_0xff7b('0x29')](_0x440d71);};}exports[_0xff7b('0x2a')]=function(_0x30734f,_0x3087b4){var _0x41fdb7={},_0x1a2de2={},_0x281136={'count':0x0,'rows':[]};var _0x46b6ca=_[_0xff7b('0x2b')](db['AnalyticFieldReport'][_0xff7b('0x2c')],function(_0x4463ef){return{'name':_0x4463ef[_0xff7b('0x2d')],'type':_0x4463ef[_0xff7b('0x2e')][_0xff7b('0x2f')]};});_0x1a2de2['model']=_['map'](_0x46b6ca,_0xff7b('0x28'));_0x1a2de2['query']=_[_0xff7b('0x30')](_0x30734f[_0xff7b('0x31')]);_0x1a2de2[_0xff7b('0x32')]=_[_0xff7b('0x33')](_0x1a2de2[_0xff7b('0x34')],_0x1a2de2[_0xff7b('0x31')]);_0x41fdb7[_0xff7b('0x35')]=_['intersection'](_0x1a2de2[_0xff7b('0x34')],qs['fields'](_0x30734f[_0xff7b('0x31')][_0xff7b('0x36')]));_0x41fdb7[_0xff7b('0x35')]=_0x41fdb7[_0xff7b('0x35')][_0xff7b('0x37')]?_0x41fdb7['attributes']:_0x1a2de2[_0xff7b('0x34')];if(!_0x30734f[_0xff7b('0x31')]['hasOwnProperty'](_0xff7b('0x38'))){_0x41fdb7[_0xff7b('0x1c')]=qs[_0xff7b('0x1c')](_0x30734f[_0xff7b('0x31')][_0xff7b('0x1c')]);_0x41fdb7['offset']=qs['offset'](_0x30734f[_0xff7b('0x31')][_0xff7b('0x1e')]);}_0x41fdb7[_0xff7b('0x39')]=qs[_0xff7b('0x3a')](_0x30734f[_0xff7b('0x31')][_0xff7b('0x3a')]);_0x41fdb7['where']=qs[_0xff7b('0x32')](_[_0xff7b('0x3b')](_0x30734f[_0xff7b('0x31')],_0x1a2de2[_0xff7b('0x32')]),_0x46b6ca);if(_0x30734f[_0xff7b('0x31')][_0xff7b('0x3c')]){_0x41fdb7[_0xff7b('0x3d')]=_[_0xff7b('0x3e')](_0x41fdb7[_0xff7b('0x3d')],{'$or':_[_0xff7b('0x2b')](_0x46b6ca,function(_0x5b2e0b){if(_0x5b2e0b[_0xff7b('0x2e')]!==_0xff7b('0x3f')){var _0x3fc4b6={};_0x3fc4b6[_0x5b2e0b['name']]={'$like':'%'+_0x30734f[_0xff7b('0x31')][_0xff7b('0x3c')]+'%'};return _0x3fc4b6;}})});}_0x41fdb7=_[_0xff7b('0x3e')]({},_0x41fdb7,_0x30734f[_0xff7b('0x40')]);var _0xd3f2a5={'where':_0x41fdb7['where']};return db['AnalyticFieldReport']['count'](_0xd3f2a5)['then'](function(_0x20a599){_0x281136[_0xff7b('0x1d')]=_0x20a599;if(_0x30734f['query']['includeAll']){_0x41fdb7[_0xff7b('0x41')]=[{'all':!![]}];}return db['AnalyticFieldReport'][_0xff7b('0x42')](_0x41fdb7);})[_0xff7b('0x24')](function(_0x56f5db){_0x281136[_0xff7b('0x43')]=_0x56f5db;return _0x281136;})[_0xff7b('0x24')](respondWithFilteredResult(_0x3087b4,_0x41fdb7))['catch'](handleError(_0x3087b4,null));};exports[_0xff7b('0x44')]=function(_0x38f6cd,_0x9849f7){var _0x4bf9b5={'raw':![],'where':{'id':_0x38f6cd['params']['id']}},_0x540b23={};_0x540b23['model']=_[_0xff7b('0x30')](db['AnalyticFieldReport'][_0xff7b('0x2c')]);_0x540b23[_0xff7b('0x31')]=_['keys'](_0x38f6cd[_0xff7b('0x31')]);_0x540b23[_0xff7b('0x32')]=_[_0xff7b('0x33')](_0x540b23[_0xff7b('0x34')],_0x540b23[_0xff7b('0x31')]);_0x4bf9b5[_0xff7b('0x35')]=_[_0xff7b('0x33')](_0x540b23[_0xff7b('0x34')],qs[_0xff7b('0x36')](_0x38f6cd['query'][_0xff7b('0x36')]));_0x4bf9b5[_0xff7b('0x35')]=_0x4bf9b5[_0xff7b('0x35')][_0xff7b('0x37')]?_0x4bf9b5['attributes']:_0x540b23[_0xff7b('0x34')];if(_0x38f6cd['query']['includeAll']){_0x4bf9b5[_0xff7b('0x41')]=[{'all':!![]}];}_0x4bf9b5=_[_0xff7b('0x3e')]({},_0x4bf9b5,_0x38f6cd['options']);return db[_0xff7b('0x45')][_0xff7b('0x46')](_0x4bf9b5)[_0xff7b('0x24')](handleEntityNotFound(_0x9849f7,null))[_0xff7b('0x24')](respondWithResult(_0x9849f7,null))['catch'](handleError(_0x9849f7,null));};exports[_0xff7b('0x47')]=function(_0x294342,_0x577edc){return db[_0xff7b('0x45')][_0xff7b('0x47')](_0x294342[_0xff7b('0x48')],{})[_0xff7b('0x24')](respondWithResult(_0x577edc,0xc9))['catch'](handleError(_0x577edc,null));};exports['bulkCreate']=function(_0x3c3e07,_0x3e0fd3){return db['AnalyticFieldReport'][_0xff7b('0x49')](_0x3c3e07[_0xff7b('0x48')],{'raw':![],'individualHooks':!![]})[_0xff7b('0x24')](respondWithResult(_0x3e0fd3,0xc9))[_0xff7b('0x4a')](handleError(_0x3e0fd3,null));};exports[_0xff7b('0x23')]=function(_0x2d7aae,_0x54067f){if(_0x2d7aae[_0xff7b('0x48')]['id']){delete _0x2d7aae['body']['id'];}return db[_0xff7b('0x45')][_0xff7b('0x46')]({'where':{'id':_0x2d7aae['params']['id']}})['then'](handleEntityNotFound(_0x54067f,null))[_0xff7b('0x24')](saveUpdates(_0x2d7aae[_0xff7b('0x48')],null))[_0xff7b('0x24')](respondWithResult(_0x54067f,null))[_0xff7b('0x4a')](handleError(_0x54067f,null));};exports[_0xff7b('0x25')]=function(_0x38baa9,_0x1a6a74){return db['AnalyticFieldReport'][_0xff7b('0x46')]({'where':{'id':_0x38baa9[_0xff7b('0x4b')]['id']}})[_0xff7b('0x24')](handleEntityNotFound(_0x1a6a74,null))[_0xff7b('0x24')](removeEntity(_0x1a6a74,null))[_0xff7b('0x4a')](handleError(_0x1a6a74,null));};exports[_0xff7b('0x4c')]=function(_0x1d479b,_0x754e97){return db[_0xff7b('0x45')][_0xff7b('0x25')]({'where':{'id':_0x1d479b['query'][_0xff7b('0x4d')]||[]},'raw':![],'individualHooks':!![]})['then'](respondWithResult(_0x754e97,0xcc))[_0xff7b('0x4a')](handleError(_0x754e97,null));};exports[_0xff7b('0x4e')]=function(_0x3ce0d3,_0x10d1b6,_0x1cde43){return db[_0xff7b('0x4f')][_0xff7b('0x50')]({'where':{'id':_0x3ce0d3[_0xff7b('0x4b')]['id']}})[_0xff7b('0x24')](handleEntityNotFound(_0x10d1b6,null))[_0xff7b('0x24')](function(_0x5be632){if(_0x5be632){return db[_0xff7b('0x51')][_0xff7b('0x52')](function(_0x4c1c78){return db[_0xff7b('0x45')][_0xff7b('0x25')]({'where':{'CustomReportId':_0x3ce0d3['params']['id']},'transaction':_0x4c1c78})[_0xff7b('0x24')](function(_0x45a87c){var _0x5e9967=_[_0xff7b('0x2b')](_0x3ce0d3[_0xff7b('0x48')],function(_0x5ec32b){delete _0x5ec32b['id'];_0x5ec32b[_0xff7b('0x53')]=_0x3ce0d3[_0xff7b('0x4b')]['id'];return _0x5ec32b;});return db[_0xff7b('0x45')][_0xff7b('0x49')](_0x5e9967,{'transaction':_0x4c1c78});});})[_0xff7b('0x24')](function(){return db[_0xff7b('0x45')][_0xff7b('0x42')]({'where':{'CustomReportId':_0x3ce0d3['params']['id']}});});}})[_0xff7b('0x24')](respondWithResult(_0x10d1b6,null))[_0xff7b('0x4a')](handleError(_0x10d1b6,null));};
\ No newline at end of file
+var _0x6cec=['json','apply','reject','save','update','then','destroy','error','stack','name','send','index','map','AnalyticFieldReport','rawAttributes','fieldName','type','query','intersection','model','attributes','fields','length','hasOwnProperty','sort','where','filters','pick','filter','VIRTUAL','merge','options','includeAll','include','show','keys','find','catch','create','bulkCreate','body','params','addFields','AnalyticCustomReport','findOne','sequelize','transaction','CustomReportId','findAll','eml-format','zip-dir','request-promise','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','count','limit','Content-Range'];(function(_0x2b6600,_0x24c497){var _0x912ee2=function(_0x5d6484){while(--_0x5d6484){_0x2b6600['push'](_0x2b6600['shift']());}};_0x912ee2(++_0x24c497);}(_0x6cec,0x16d));var _0xc6ce=function(_0x481df5,_0x216652){_0x481df5=_0x481df5-0x0;var _0x32726e=_0x6cec[_0x481df5];return _0x32726e;};'use strict';var emlformat=require(_0xc6ce('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xc6ce('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xc6ce('0x2'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xc6ce('0x3'));var util=require('util');var path=require(_0xc6ce('0x4'));var sox=require(_0xc6ce('0x5'));var csv=require(_0xc6ce('0x6'));var ejs=require(_0xc6ce('0x7'));var fs=require('fs');var fs_extra=require(_0xc6ce('0x8'));var _=require(_0xc6ce('0x9'));var squel=require(_0xc6ce('0xa'));var crypto=require(_0xc6ce('0xb'));var jsforce=require(_0xc6ce('0xc'));var deskjs=require('desk.js');var toCsv=require(_0xc6ce('0x6'));var querystring=require('querystring');var Papa=require(_0xc6ce('0xd'));var Redis=require(_0xc6ce('0xe'));var authService=require(_0xc6ce('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0xc6ce('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xc6ce('0x11'))('api');var utils=require(_0xc6ce('0x12'));var config=require(_0xc6ce('0x13'));var licenseUtil=require(_0xc6ce('0x14'));var db=require(_0xc6ce('0x15'))['db'];function respondWithStatusCode(_0x2c159c,_0xa65f1e){_0xa65f1e=_0xa65f1e||0xcc;return function(_0x5cc03d){if(_0x5cc03d){return _0x2c159c[_0xc6ce('0x16')](_0xa65f1e);}return _0x2c159c[_0xc6ce('0x17')](_0xa65f1e)[_0xc6ce('0x18')]();};}function respondWithResult(_0x3e27ba,_0x2ef446){_0x2ef446=_0x2ef446||0xc8;return function(_0x1af8e3){if(_0x1af8e3){return _0x3e27ba[_0xc6ce('0x17')](_0x2ef446)['json'](_0x1af8e3);}};}function respondWithFilteredResult(_0x5722d7,_0x4c5dec){return function(_0x1a4b44){if(_0x1a4b44){var _0x51fcd4=typeof _0x4c5dec[_0xc6ce('0x19')]===_0xc6ce('0x1a')&&typeof _0x4c5dec['limit']===_0xc6ce('0x1a');var _0x2b0495=_0x1a4b44[_0xc6ce('0x1b')];var _0x2ab791=_0x51fcd4?0x0:_0x4c5dec['offset'];var _0x1dc866=_0x51fcd4?_0x1a4b44[_0xc6ce('0x1b')]:_0x4c5dec[_0xc6ce('0x19')]+_0x4c5dec[_0xc6ce('0x1c')];var _0x12c948;if(_0x1dc866>=_0x2b0495){_0x1dc866=_0x2b0495;_0x12c948=0xc8;}else{_0x12c948=0xce;}_0x5722d7[_0xc6ce('0x17')](_0x12c948);return _0x5722d7['set'](_0xc6ce('0x1d'),_0x2ab791+'-'+_0x1dc866+'/'+_0x2b0495)[_0xc6ce('0x1e')](_0x1a4b44);}return null;};}function patchUpdates(_0x16b83b){return function(_0x4884c6){try{jsonpatch[_0xc6ce('0x1f')](_0x4884c6,_0x16b83b,!![]);}catch(_0x64a7b8){return BPromise[_0xc6ce('0x20')](_0x64a7b8);}return _0x4884c6[_0xc6ce('0x21')]();};}function saveUpdates(_0x47b372,_0x516412){return function(_0x509124){if(_0x509124){return _0x509124[_0xc6ce('0x22')](_0x47b372)[_0xc6ce('0x23')](function(_0x5f325f){return _0x5f325f;});}return null;};}function removeEntity(_0x2c98ac,_0x456340){return function(_0x1e5d0c){if(_0x1e5d0c){return _0x1e5d0c[_0xc6ce('0x24')]()['then'](function(){_0x2c98ac[_0xc6ce('0x17')](0xcc)[_0xc6ce('0x18')]();});}};}function handleEntityNotFound(_0x45b624,_0xf9213e){return function(_0x2093cd){if(!_0x2093cd){_0x45b624[_0xc6ce('0x16')](0x194);}return _0x2093cd;};}function handleError(_0x567b8a,_0x17cd56){_0x17cd56=_0x17cd56||0x1f4;return function(_0x57a989){logger[_0xc6ce('0x25')](_0x57a989[_0xc6ce('0x26')]);if(_0x57a989[_0xc6ce('0x27')]){delete _0x57a989[_0xc6ce('0x27')];}_0x567b8a[_0xc6ce('0x17')](_0x17cd56)[_0xc6ce('0x28')](_0x57a989);};}exports[_0xc6ce('0x29')]=function(_0x48aa54,_0x499c4d){var _0x3b105d={},_0x5c1e56={},_0x57029e={'count':0x0,'rows':[]};var _0x107c99=_[_0xc6ce('0x2a')](db[_0xc6ce('0x2b')][_0xc6ce('0x2c')],function(_0x56c4be){return{'name':_0x56c4be[_0xc6ce('0x2d')],'type':_0x56c4be[_0xc6ce('0x2e')]['key']};});_0x5c1e56['model']=_[_0xc6ce('0x2a')](_0x107c99,_0xc6ce('0x27'));_0x5c1e56['query']=_['keys'](_0x48aa54[_0xc6ce('0x2f')]);_0x5c1e56['filters']=_[_0xc6ce('0x30')](_0x5c1e56[_0xc6ce('0x31')],_0x5c1e56[_0xc6ce('0x2f')]);_0x3b105d[_0xc6ce('0x32')]=_[_0xc6ce('0x30')](_0x5c1e56[_0xc6ce('0x31')],qs[_0xc6ce('0x33')](_0x48aa54[_0xc6ce('0x2f')][_0xc6ce('0x33')]));_0x3b105d[_0xc6ce('0x32')]=_0x3b105d[_0xc6ce('0x32')][_0xc6ce('0x34')]?_0x3b105d[_0xc6ce('0x32')]:_0x5c1e56[_0xc6ce('0x31')];if(!_0x48aa54['query'][_0xc6ce('0x35')]('nolimit')){_0x3b105d[_0xc6ce('0x1c')]=qs['limit'](_0x48aa54[_0xc6ce('0x2f')][_0xc6ce('0x1c')]);_0x3b105d['offset']=qs[_0xc6ce('0x19')](_0x48aa54[_0xc6ce('0x2f')][_0xc6ce('0x19')]);}_0x3b105d['order']=qs['sort'](_0x48aa54[_0xc6ce('0x2f')][_0xc6ce('0x36')]);_0x3b105d[_0xc6ce('0x37')]=qs[_0xc6ce('0x38')](_[_0xc6ce('0x39')](_0x48aa54[_0xc6ce('0x2f')],_0x5c1e56['filters']),_0x107c99);if(_0x48aa54[_0xc6ce('0x2f')][_0xc6ce('0x3a')]){_0x3b105d['where']=_['merge'](_0x3b105d[_0xc6ce('0x37')],{'$or':_['map'](_0x107c99,function(_0x542355){if(_0x542355['type']!==_0xc6ce('0x3b')){var _0xc4b52b={};_0xc4b52b[_0x542355[_0xc6ce('0x27')]]={'$like':'%'+_0x48aa54['query'][_0xc6ce('0x3a')]+'%'};return _0xc4b52b;}})});}_0x3b105d=_[_0xc6ce('0x3c')]({},_0x3b105d,_0x48aa54[_0xc6ce('0x3d')]);var _0x1603de={'where':_0x3b105d[_0xc6ce('0x37')]};return db['AnalyticFieldReport']['count'](_0x1603de)['then'](function(_0x21278c){_0x57029e[_0xc6ce('0x1b')]=_0x21278c;if(_0x48aa54[_0xc6ce('0x2f')][_0xc6ce('0x3e')]){_0x3b105d[_0xc6ce('0x3f')]=[{'all':!![]}];}return db[_0xc6ce('0x2b')]['findAll'](_0x3b105d);})[_0xc6ce('0x23')](function(_0x248a93){_0x57029e['rows']=_0x248a93;return _0x57029e;})[_0xc6ce('0x23')](respondWithFilteredResult(_0x499c4d,_0x3b105d))['catch'](handleError(_0x499c4d,null));};exports[_0xc6ce('0x40')]=function(_0x5c1327,_0x2affc0){var _0x265517={'raw':![],'where':{'id':_0x5c1327['params']['id']}},_0x4dfbbc={};_0x4dfbbc['model']=_[_0xc6ce('0x41')](db[_0xc6ce('0x2b')][_0xc6ce('0x2c')]);_0x4dfbbc[_0xc6ce('0x2f')]=_[_0xc6ce('0x41')](_0x5c1327[_0xc6ce('0x2f')]);_0x4dfbbc[_0xc6ce('0x38')]=_[_0xc6ce('0x30')](_0x4dfbbc[_0xc6ce('0x31')],_0x4dfbbc[_0xc6ce('0x2f')]);_0x265517[_0xc6ce('0x32')]=_[_0xc6ce('0x30')](_0x4dfbbc['model'],qs[_0xc6ce('0x33')](_0x5c1327['query']['fields']));_0x265517[_0xc6ce('0x32')]=_0x265517['attributes'][_0xc6ce('0x34')]?_0x265517[_0xc6ce('0x32')]:_0x4dfbbc['model'];if(_0x5c1327[_0xc6ce('0x2f')]['includeAll']){_0x265517[_0xc6ce('0x3f')]=[{'all':!![]}];}_0x265517=_[_0xc6ce('0x3c')]({},_0x265517,_0x5c1327['options']);return db[_0xc6ce('0x2b')][_0xc6ce('0x42')](_0x265517)[_0xc6ce('0x23')](handleEntityNotFound(_0x2affc0,null))[_0xc6ce('0x23')](respondWithResult(_0x2affc0,null))[_0xc6ce('0x43')](handleError(_0x2affc0,null));};exports[_0xc6ce('0x44')]=function(_0x1f5706,_0x297958){return db['AnalyticFieldReport']['create'](_0x1f5706['body'],{})[_0xc6ce('0x23')](respondWithResult(_0x297958,0xc9))[_0xc6ce('0x43')](handleError(_0x297958,null));};exports['bulkCreate']=function(_0x669ed3,_0x369219){return db[_0xc6ce('0x2b')][_0xc6ce('0x45')](_0x669ed3[_0xc6ce('0x46')],{'raw':![],'individualHooks':!![]})[_0xc6ce('0x23')](respondWithResult(_0x369219,0xc9))[_0xc6ce('0x43')](handleError(_0x369219,null));};exports[_0xc6ce('0x22')]=function(_0x1d4fe3,_0x580eaf){if(_0x1d4fe3[_0xc6ce('0x46')]['id']){delete _0x1d4fe3['body']['id'];}return db['AnalyticFieldReport']['find']({'where':{'id':_0x1d4fe3[_0xc6ce('0x47')]['id']}})[_0xc6ce('0x23')](handleEntityNotFound(_0x580eaf,null))[_0xc6ce('0x23')](saveUpdates(_0x1d4fe3[_0xc6ce('0x46')],null))[_0xc6ce('0x23')](respondWithResult(_0x580eaf,null))[_0xc6ce('0x43')](handleError(_0x580eaf,null));};exports[_0xc6ce('0x24')]=function(_0x361c03,_0x4f4855){return db[_0xc6ce('0x2b')][_0xc6ce('0x42')]({'where':{'id':_0x361c03['params']['id']}})[_0xc6ce('0x23')](handleEntityNotFound(_0x4f4855,null))['then'](removeEntity(_0x4f4855,null))[_0xc6ce('0x43')](handleError(_0x4f4855,null));};exports['bulkDestroy']=function(_0x3c4ff5,_0x27e8a5){return db[_0xc6ce('0x2b')]['destroy']({'where':{'id':_0x3c4ff5[_0xc6ce('0x2f')]['ids']||[]},'raw':![],'individualHooks':!![]})[_0xc6ce('0x23')](respondWithResult(_0x27e8a5,0xcc))[_0xc6ce('0x43')](handleError(_0x27e8a5,null));};exports[_0xc6ce('0x48')]=function(_0x8a2eeb,_0x447014,_0x3feec1){return db[_0xc6ce('0x49')][_0xc6ce('0x4a')]({'where':{'id':_0x8a2eeb[_0xc6ce('0x47')]['id']}})[_0xc6ce('0x23')](handleEntityNotFound(_0x447014,null))[_0xc6ce('0x23')](function(_0x44588f){if(_0x44588f){return db[_0xc6ce('0x4b')][_0xc6ce('0x4c')](function(_0x2d4306){return db[_0xc6ce('0x2b')]['destroy']({'where':{'CustomReportId':_0x8a2eeb[_0xc6ce('0x47')]['id']},'transaction':_0x2d4306})[_0xc6ce('0x23')](function(_0x4e1c4e){var _0x4d61e5=_[_0xc6ce('0x2a')](_0x8a2eeb['body'],function(_0x4e1fbd){delete _0x4e1fbd['id'];_0x4e1fbd[_0xc6ce('0x4d')]=_0x8a2eeb[_0xc6ce('0x47')]['id'];return _0x4e1fbd;});return db[_0xc6ce('0x2b')][_0xc6ce('0x45')](_0x4d61e5,{'transaction':_0x2d4306});});})[_0xc6ce('0x23')](function(){return db[_0xc6ce('0x2b')][_0xc6ce('0x4e')]({'where':{'CustomReportId':_0x8a2eeb[_0xc6ce('0x47')]['id']}});});}})[_0xc6ce('0x23')](respondWithResult(_0x447014,null))['catch'](handleError(_0x447014,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xab04=['exports','define','AnalyticFieldReport','lodash','../../config/logger','api','moment','bluebird','path','rimraf','../../config/environment','./analyticFieldReport.attributes'];(function(_0x5899aa,_0x5d8465){var _0x4c91ef=function(_0x10a4eb){while(--_0x10a4eb){_0x5899aa['push'](_0x5899aa['shift']());}};_0x4c91ef(++_0x5d8465);}(_0xab04,0x15f));var _0x4ab0=function(_0x57fcd6,_0x70b457){_0x57fcd6=_0x57fcd6-0x0;var _0x5b6c73=_0xab04[_0x57fcd6];return _0x5b6c73;};'use strict';var _=require(_0x4ab0('0x0'));var util=require('util');var logger=require(_0x4ab0('0x1'))(_0x4ab0('0x2'));var moment=require(_0x4ab0('0x3'));var BPromise=require(_0x4ab0('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x4ab0('0x5'));var rimraf=require(_0x4ab0('0x6'));var config=require(_0x4ab0('0x7'));var attributes=require(_0x4ab0('0x8'));module[_0x4ab0('0x9')]=function(_0x1a62db,_0x353845){return _0x1a62db[_0x4ab0('0xa')](_0x4ab0('0xb'),attributes,{'tableName':'analytics_report_fields','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x0df6=['define','lodash','../../config/logger','api','moment','bluebird','request-promise','rimraf','./analyticFieldReport.attributes','exports'];(function(_0x28f12a,_0x8f5253){var _0x300c73=function(_0x5b30c3){while(--_0x5b30c3){_0x28f12a['push'](_0x28f12a['shift']());}};_0x300c73(++_0x8f5253);}(_0x0df6,0x187));var _0x60df=function(_0x554792,_0x55e4a7){_0x554792=_0x554792-0x0;var _0x28a1fa=_0x0df6[_0x554792];return _0x28a1fa;};'use strict';var _=require(_0x60df('0x0'));var util=require('util');var logger=require(_0x60df('0x1'))(_0x60df('0x2'));var moment=require(_0x60df('0x3'));var BPromise=require(_0x60df('0x4'));var rp=require(_0x60df('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x60df('0x6'));var config=require('../../config/environment');var attributes=require(_0x60df('0x7'));module[_0x60df('0x8')]=function(_0x3ee3d5,_0x3146c1){return _0x3ee3d5[_0x60df('0x9')]('AnalyticFieldReport',attributes,{'tableName':'analytics_report_fields','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6020=['stringify','error','code','AnalyticFieldReport,\x20%s,\x20%s','message','result','catch','lodash','util','randomstring','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','then','info','request\x20sent','debug','AnalyticFieldReport,\x20%s,\x20%s,\x20%s'];(function(_0x2a4f65,_0x36f72c){var _0x9859c3=function(_0x388cca){while(--_0x388cca){_0x2a4f65['push'](_0x2a4f65['shift']());}};_0x9859c3(++_0x36f72c);}(_0x6020,0xb7));var _0x0602=function(_0x387dc1,_0x3ba649){_0x387dc1=_0x387dc1-0x0;var _0x17567c=_0x6020[_0x387dc1];return _0x17567c;};'use strict';var _=require(_0x0602('0x0'));var util=require(_0x0602('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x0602('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x0602('0x3'));var logger=require(_0x0602('0x4'))(_0x0602('0x5'));var config=require(_0x0602('0x6'));var jayson=require(_0x0602('0x7'));var client=jayson['client'][_0x0602('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x48e9c3,_0x5543d0,_0x20aebc){return new BPromise(function(_0x38d1e0,_0x5bebeb){return client[_0x0602('0x9')](_0x48e9c3,_0x20aebc)[_0x0602('0xa')](function(_0x3336c7){logger[_0x0602('0xb')]('AnalyticFieldReport,\x20%s,\x20%s',_0x5543d0,_0x0602('0xc'));logger[_0x0602('0xd')](_0x0602('0xe'),_0x5543d0,_0x0602('0xc'),JSON[_0x0602('0xf')](_0x3336c7));if(_0x3336c7[_0x0602('0x10')]){if(_0x3336c7['error'][_0x0602('0x11')]===0x1f4){logger['error'](_0x0602('0x12'),_0x5543d0,_0x3336c7[_0x0602('0x10')][_0x0602('0x13')]);return _0x5bebeb(_0x3336c7[_0x0602('0x10')][_0x0602('0x13')]);}logger[_0x0602('0x10')](_0x0602('0x12'),_0x5543d0,_0x3336c7[_0x0602('0x10')][_0x0602('0x13')]);return _0x38d1e0(_0x3336c7[_0x0602('0x10')]['message']);}else{logger[_0x0602('0xb')](_0x0602('0x12'),_0x5543d0,_0x0602('0xc'));_0x38d1e0(_0x3336c7[_0x0602('0x14')][_0x0602('0x13')]);}})[_0x0602('0x15')](function(_0x19b91e){logger[_0x0602('0x10')]('AnalyticFieldReport,\x20%s,\x20%s',_0x5543d0,_0x19b91e);_0x5bebeb(_0x19b91e);});});}
\ No newline at end of file
+var _0x017d=['client','http','request','then','info','AnalyticFieldReport,\x20%s,\x20%s','request\x20sent','AnalyticFieldReport,\x20%s,\x20%s,\x20%s','error','code','message','result','lodash','util','moment','randomstring','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise'];(function(_0x13248a,_0x4904b0){var _0x399ed2=function(_0x19d67a){while(--_0x19d67a){_0x13248a['push'](_0x13248a['shift']());}};_0x399ed2(++_0x4904b0);}(_0x017d,0xf3));var _0xd017=function(_0x57ba8f,_0x3c8124){_0x57ba8f=_0x57ba8f-0x0;var _0x327abc=_0x017d[_0x57ba8f];return _0x327abc;};'use strict';var _=require(_0xd017('0x0'));var util=require(_0xd017('0x1'));var moment=require(_0xd017('0x2'));var BPromise=require('bluebird');var rs=require(_0xd017('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0xd017('0x4'));var logger=require(_0xd017('0x5'))(_0xd017('0x6'));var config=require(_0xd017('0x7'));var jayson=require(_0xd017('0x8'));var client=jayson[_0xd017('0x9')][_0xd017('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x895d96,_0x373e25,_0x108df0){return new BPromise(function(_0x1fc4f0,_0x2f43c8){return client[_0xd017('0xb')](_0x895d96,_0x108df0)[_0xd017('0xc')](function(_0xe5424a){logger[_0xd017('0xd')](_0xd017('0xe'),_0x373e25,_0xd017('0xf'));logger['debug'](_0xd017('0x10'),_0x373e25,_0xd017('0xf'),JSON['stringify'](_0xe5424a));if(_0xe5424a[_0xd017('0x11')]){if(_0xe5424a[_0xd017('0x11')][_0xd017('0x12')]===0x1f4){logger[_0xd017('0x11')]('AnalyticFieldReport,\x20%s,\x20%s',_0x373e25,_0xe5424a['error'][_0xd017('0x13')]);return _0x2f43c8(_0xe5424a[_0xd017('0x11')]['message']);}logger[_0xd017('0x11')]('AnalyticFieldReport,\x20%s,\x20%s',_0x373e25,_0xe5424a['error'][_0xd017('0x13')]);return _0x1fc4f0(_0xe5424a[_0xd017('0x11')][_0xd017('0x13')]);}else{logger[_0xd017('0xd')](_0xd017('0xe'),_0x373e25,'request\x20sent');_0x1fc4f0(_0xe5424a[_0xd017('0x14')][_0xd017('0x13')]);}})['catch'](function(_0xec0dd4){logger[_0xd017('0x11')]('AnalyticFieldReport,\x20%s,\x20%s',_0x373e25,_0xec0dd4);_0x2f43c8(_0xec0dd4);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['delete','/destroy_many','bulkDestroy','destroy','exports','multer','util','path','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./analyticFieldReport.controller','get','index','/:id','post','/create_many','isAuthenticated','bulkCreate','/:id/create_many','update'];(function(_0x2fc7b6,_0x16aa22){var _0x15d54f=function(_0x8b9267){while(--_0x8b9267){_0x2fc7b6['push'](_0x2fc7b6['shift']());}};_0x15d54f(++_0x16aa22);}(_0xa9e0,0x123));var _0x0a9e=function(_0x43d11d,_0xccff91){_0x43d11d=_0x43d11d-0x0;var _0x38cd08=_0xa9e0[_0x43d11d];return _0x38cd08;};'use strict';var multer=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var path=require(_0x0a9e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0a9e('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x0a9e('0x4'));var interaction=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var controller=require(_0x0a9e('0x7'));router[_0x0a9e('0x8')]('/',auth['isAuthenticated'](),controller[_0x0a9e('0x9')]);router[_0x0a9e('0x8')](_0x0a9e('0xa'),auth['isAuthenticated'](),controller['show']);router[_0x0a9e('0xb')]('/',auth['isAuthenticated'](),controller['create']);router[_0x0a9e('0xb')](_0x0a9e('0xc'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0xe')]);router[_0x0a9e('0xb')](_0x0a9e('0xf'),auth['isAuthenticated'](),controller['addFields']);router['put']('/:id',auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x10')]);router[_0x0a9e('0x11')](_0x0a9e('0x12'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x13')]);router['delete'](_0x0a9e('0xa'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x14')]);module[_0x0a9e('0x15')]=router;
\ No newline at end of file
+var _0xa9e0=['delete','/destroy_many','bulkDestroy','destroy','exports','multer','util','path','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./analyticFieldReport.controller','get','index','/:id','post','/create_many','isAuthenticated','bulkCreate','/:id/create_many','update'];(function(_0x277362,_0x2b1d97){var _0x250c89=function(_0x572de3){while(--_0x572de3){_0x277362['push'](_0x277362['shift']());}};_0x250c89(++_0x2b1d97);}(_0xa9e0,0x123));var _0x0a9e=function(_0x5c3c0b,_0x4ee35e){_0x5c3c0b=_0x5c3c0b-0x0;var _0x52ecd2=_0xa9e0[_0x5c3c0b];return _0x52ecd2;};'use strict';var multer=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var path=require(_0x0a9e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0a9e('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x0a9e('0x4'));var interaction=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var controller=require(_0x0a9e('0x7'));router[_0x0a9e('0x8')]('/',auth['isAuthenticated'](),controller[_0x0a9e('0x9')]);router[_0x0a9e('0x8')](_0x0a9e('0xa'),auth['isAuthenticated'](),controller['show']);router[_0x0a9e('0xb')]('/',auth['isAuthenticated'](),controller['create']);router[_0x0a9e('0xb')](_0x0a9e('0xc'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0xe')]);router[_0x0a9e('0xb')](_0x0a9e('0xf'),auth['isAuthenticated'](),controller['addFields']);router['put']('/:id',auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x10')]);router[_0x0a9e('0x11')](_0x0a9e('0x12'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x13')]);router['delete'](_0x0a9e('0xa'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x14')]);module[_0x0a9e('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe87e=['name','sequelize','exports','STRING'];(function(_0x3087b2,_0x3310bf){var _0x47dcb8=function(_0x3ea97f){while(--_0x3ea97f){_0x3087b2['push'](_0x3087b2['shift']());}};_0x47dcb8(++_0x3310bf);}(_0xe87e,0x17d));var _0xee87=function(_0xd22d95,_0xc59f8f){_0xd22d95=_0xd22d95-0x0;var _0x15d7a3=_0xe87e[_0xd22d95];return _0x15d7a3;};'use strict';var Sequelize=require(_0xee87('0x0'));module[_0xee87('0x1')]={'name':{'type':Sequelize[_0xee87('0x2')],'allowNull':![],'unique':_0xee87('0x3')},'table':{'type':Sequelize[_0xee87('0x2')]},'metric':{'type':Sequelize['TEXT']},'description':{'type':Sequelize[_0xee87('0x2')]}};
\ No newline at end of file
+var _0x7af2=['STRING','name','exports'];(function(_0x2641f9,_0x26715f){var _0x585741=function(_0x2d1462){while(--_0x2d1462){_0x2641f9['push'](_0x2641f9['shift']());}};_0x585741(++_0x26715f);}(_0x7af2,0x119));var _0x27af=function(_0x1add99,_0x3bf53a){_0x1add99=_0x1add99-0x0;var _0x1ce9ec=_0x7af2[_0x1add99];return _0x1ce9ec;};'use strict';var Sequelize=require('sequelize');module[_0x27af('0x0')]={'name':{'type':Sequelize[_0x27af('0x1')],'allowNull':![],'unique':_0x27af('0x2')},'table':{'type':Sequelize[_0x27af('0x1')]},'metric':{'type':Sequelize['TEXT']},'description':{'type':Sequelize[_0x27af('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xabce=['includeAll','rows','show','params','intersection','length','include','find','catch','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','mustache','util','path','ejs','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','limit','count','offset','Content-Range','apply','reject','save','update','then','get','Metrics','UserProfileResource','destroy','error','stack','name','send','index','map','AnalyticMetric','rawAttributes','fieldName','type','model','keys','query','filters','attributes','fields','hasOwnProperty','nolimit','order','filter','merge','VIRTUAL','options'];(function(_0x3894fb,_0x3eafc1){var _0xa959f3=function(_0x358873){while(--_0x358873){_0x3894fb['push'](_0x3894fb['shift']());}};_0xa959f3(++_0x3eafc1);}(_0xabce,0x103));var _0xeabc=function(_0x3899d1,_0x4aa04c){_0x3899d1=_0x3899d1-0x0;var _0xeb4a7d=_0xabce[_0x3899d1];return _0xeb4a7d;};'use strict';var emlformat=require(_0xeabc('0x0'));var rimraf=require(_0xeabc('0x1'));var zipdir=require(_0xeabc('0x2'));var jsonpatch=require(_0xeabc('0x3'));var rp=require(_0xeabc('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xeabc('0x5'));var util=require(_0xeabc('0x6'));var path=require(_0xeabc('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xeabc('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xeabc('0x9'));var squel=require('squel');var crypto=require(_0xeabc('0xa'));var jsforce=require(_0xeabc('0xb'));var deskjs=require(_0xeabc('0xc'));var toCsv=require('to-csv');var querystring=require(_0xeabc('0xd'));var Papa=require(_0xeabc('0xe'));var Redis=require(_0xeabc('0xf'));var authService=require(_0xeabc('0x10'));var qs=require(_0xeabc('0x11'));var as=require(_0xeabc('0x12'));var hardwareService=require(_0xeabc('0x13'));var logger=require(_0xeabc('0x14'))(_0xeabc('0x15'));var utils=require(_0xeabc('0x16'));var config=require(_0xeabc('0x17'));var licenseUtil=require(_0xeabc('0x18'));var db=require(_0xeabc('0x19'))['db'];function respondWithStatusCode(_0x3fd0b5,_0x36a92e){_0x36a92e=_0x36a92e||0xcc;return function(_0xcfbf06){if(_0xcfbf06){return _0x3fd0b5['sendStatus'](_0x36a92e);}return _0x3fd0b5[_0xeabc('0x1a')](_0x36a92e)[_0xeabc('0x1b')]();};}function respondWithResult(_0x3251c6,_0x55f0de){_0x55f0de=_0x55f0de||0xc8;return function(_0x5f4ee8){if(_0x5f4ee8){return _0x3251c6[_0xeabc('0x1a')](_0x55f0de)[_0xeabc('0x1c')](_0x5f4ee8);}};}function respondWithFilteredResult(_0x326bac,_0x53d5cb){return function(_0xf913d7){if(_0xf913d7){var _0x638976=typeof _0x53d5cb['offset']==='undefined'&&typeof _0x53d5cb[_0xeabc('0x1d')]==='undefined';var _0x3d0e21=_0xf913d7[_0xeabc('0x1e')];var _0x58a3c0=_0x638976?0x0:_0x53d5cb[_0xeabc('0x1f')];var _0x31dd53=_0x638976?_0xf913d7[_0xeabc('0x1e')]:_0x53d5cb[_0xeabc('0x1f')]+_0x53d5cb[_0xeabc('0x1d')];var _0x5d92e5;if(_0x31dd53>=_0x3d0e21){_0x31dd53=_0x3d0e21;_0x5d92e5=0xc8;}else{_0x5d92e5=0xce;}_0x326bac[_0xeabc('0x1a')](_0x5d92e5);return _0x326bac['set'](_0xeabc('0x20'),_0x58a3c0+'-'+_0x31dd53+'/'+_0x3d0e21)[_0xeabc('0x1c')](_0xf913d7);}return null;};}function patchUpdates(_0x502947){return function(_0x28063a){try{jsonpatch[_0xeabc('0x21')](_0x28063a,_0x502947,!![]);}catch(_0x254590){return BPromise[_0xeabc('0x22')](_0x254590);}return _0x28063a[_0xeabc('0x23')]();};}function saveUpdates(_0x4e99a4,_0xecdbf){return function(_0x10c675){if(_0x10c675){return _0x10c675[_0xeabc('0x24')](_0x4e99a4)['then'](function(_0x457f27){return _0x457f27;});}return null;};}function removeEntity(_0x3854d2,_0x214953){return function(_0x319119){if(_0x319119){return _0x319119['destroy']()[_0xeabc('0x25')](function(){var _0x480440=_0x319119[_0xeabc('0x26')]({'plain':!![]});var _0x4d4e29=_0xeabc('0x27');return db[_0xeabc('0x28')][_0xeabc('0x29')]({'where':{'type':_0x4d4e29,'resourceId':_0x480440['id']}})[_0xeabc('0x25')](function(){return _0x319119;});})[_0xeabc('0x25')](function(){_0x3854d2[_0xeabc('0x1a')](0xcc)[_0xeabc('0x1b')]();});}};}function handleEntityNotFound(_0x4c2693,_0x5b2934){return function(_0x459c8a){if(!_0x459c8a){_0x4c2693['sendStatus'](0x194);}return _0x459c8a;};}function handleError(_0x3c1b5b,_0x2b342c){_0x2b342c=_0x2b342c||0x1f4;return function(_0x48fb52){logger[_0xeabc('0x2a')](_0x48fb52[_0xeabc('0x2b')]);if(_0x48fb52[_0xeabc('0x2c')]){delete _0x48fb52[_0xeabc('0x2c')];}_0x3c1b5b[_0xeabc('0x1a')](_0x2b342c)[_0xeabc('0x2d')](_0x48fb52);};}exports[_0xeabc('0x2e')]=function(_0x38dc0a,_0x2915c1){var _0x5ebb86={},_0x5b34dd={},_0x5bb1f1={'count':0x0,'rows':[]};var _0x2f03e8=_[_0xeabc('0x2f')](db[_0xeabc('0x30')][_0xeabc('0x31')],function(_0x73c8d4){return{'name':_0x73c8d4[_0xeabc('0x32')],'type':_0x73c8d4[_0xeabc('0x33')]['key']};});_0x5b34dd[_0xeabc('0x34')]=_[_0xeabc('0x2f')](_0x2f03e8,_0xeabc('0x2c'));_0x5b34dd['query']=_[_0xeabc('0x35')](_0x38dc0a[_0xeabc('0x36')]);_0x5b34dd[_0xeabc('0x37')]=_['intersection'](_0x5b34dd[_0xeabc('0x34')],_0x5b34dd[_0xeabc('0x36')]);_0x5ebb86[_0xeabc('0x38')]=_['intersection'](_0x5b34dd[_0xeabc('0x34')],qs[_0xeabc('0x39')](_0x38dc0a['query']['fields']));_0x5ebb86[_0xeabc('0x38')]=_0x5ebb86[_0xeabc('0x38')]['length']?_0x5ebb86[_0xeabc('0x38')]:_0x5b34dd[_0xeabc('0x34')];if(!_0x38dc0a[_0xeabc('0x36')][_0xeabc('0x3a')](_0xeabc('0x3b'))){_0x5ebb86['limit']=qs[_0xeabc('0x1d')](_0x38dc0a['query'][_0xeabc('0x1d')]);_0x5ebb86[_0xeabc('0x1f')]=qs[_0xeabc('0x1f')](_0x38dc0a['query']['offset']);}_0x5ebb86[_0xeabc('0x3c')]=qs['sort'](_0x38dc0a[_0xeabc('0x36')]['sort']);_0x5ebb86['where']=qs['filters'](_['pick'](_0x38dc0a[_0xeabc('0x36')],_0x5b34dd['filters']),_0x2f03e8);if(_0x38dc0a[_0xeabc('0x36')][_0xeabc('0x3d')]){_0x5ebb86['where']=_[_0xeabc('0x3e')](_0x5ebb86['where'],{'$or':_[_0xeabc('0x2f')](_0x2f03e8,function(_0x58aafe){if(_0x58aafe[_0xeabc('0x33')]!==_0xeabc('0x3f')){var _0xeeef02={};_0xeeef02[_0x58aafe['name']]={'$like':'%'+_0x38dc0a['query']['filter']+'%'};return _0xeeef02;}})});}_0x5ebb86=_[_0xeabc('0x3e')]({},_0x5ebb86,_0x38dc0a[_0xeabc('0x40')]);var _0xafa59b={'where':_0x5ebb86['where']};return db['AnalyticMetric'][_0xeabc('0x1e')](_0xafa59b)[_0xeabc('0x25')](function(_0x5e9cb3){_0x5bb1f1[_0xeabc('0x1e')]=_0x5e9cb3;if(_0x38dc0a['query'][_0xeabc('0x41')]){_0x5ebb86['include']=[{'all':!![]}];}return db['AnalyticMetric']['findAll'](_0x5ebb86);})[_0xeabc('0x25')](function(_0x37c926){_0x5bb1f1[_0xeabc('0x42')]=_0x37c926;return _0x5bb1f1;})[_0xeabc('0x25')](respondWithFilteredResult(_0x2915c1,_0x5ebb86))['catch'](handleError(_0x2915c1,null));};exports[_0xeabc('0x43')]=function(_0x555d26,_0x7d5add){var _0x1a4bbe={'raw':!![],'where':{'id':_0x555d26[_0xeabc('0x44')]['id']}},_0x3a7807={};_0x3a7807[_0xeabc('0x34')]=_['keys'](db['AnalyticMetric'][_0xeabc('0x31')]);_0x3a7807['query']=_[_0xeabc('0x35')](_0x555d26[_0xeabc('0x36')]);_0x3a7807['filters']=_[_0xeabc('0x45')](_0x3a7807[_0xeabc('0x34')],_0x3a7807[_0xeabc('0x36')]);_0x1a4bbe[_0xeabc('0x38')]=_[_0xeabc('0x45')](_0x3a7807[_0xeabc('0x34')],qs[_0xeabc('0x39')](_0x555d26['query'][_0xeabc('0x39')]));_0x1a4bbe[_0xeabc('0x38')]=_0x1a4bbe[_0xeabc('0x38')][_0xeabc('0x46')]?_0x1a4bbe[_0xeabc('0x38')]:_0x3a7807[_0xeabc('0x34')];if(_0x555d26[_0xeabc('0x36')][_0xeabc('0x41')]){_0x1a4bbe[_0xeabc('0x47')]=[{'all':!![]}];}_0x1a4bbe=_[_0xeabc('0x3e')]({},_0x1a4bbe,_0x555d26['options']);return db[_0xeabc('0x30')][_0xeabc('0x48')](_0x1a4bbe)[_0xeabc('0x25')](handleEntityNotFound(_0x7d5add,null))[_0xeabc('0x25')](respondWithResult(_0x7d5add,null))[_0xeabc('0x49')](handleError(_0x7d5add,null));};exports[_0xeabc('0x4a')]=function(_0x268d95,_0x48df43){return db[_0xeabc('0x30')][_0xeabc('0x4a')](_0x268d95[_0xeabc('0x4b')],{})[_0xeabc('0x25')](function(_0x47440e){var _0x58e2c1=_0x268d95[_0xeabc('0x4c')][_0xeabc('0x26')]({'plain':!![]});if(!_0x58e2c1)throw new Error(_0xeabc('0x4d'));if(_0x58e2c1[_0xeabc('0x4e')]==='user'){var _0x400b82=_0x47440e[_0xeabc('0x26')]({'plain':!![]});var _0x568847=_0xeabc('0x27');return db['UserProfileSection'][_0xeabc('0x48')]({'where':{'name':_0x568847,'userProfileId':_0x58e2c1['userProfileId']},'raw':!![]})[_0xeabc('0x25')](function(_0x2ec94c){if(_0x2ec94c&&_0x2ec94c[_0xeabc('0x4f')]===0x0){return db[_0xeabc('0x28')][_0xeabc('0x4a')]({'name':_0x400b82[_0xeabc('0x2c')],'resourceId':_0x400b82['id'],'type':_0x2ec94c[_0xeabc('0x2c')],'sectionId':_0x2ec94c['id']},{})[_0xeabc('0x25')](function(){return _0x47440e;});}else{return _0x47440e;}})[_0xeabc('0x49')](function(_0x6423f3){logger['error'](_0xeabc('0x50'),_0x6423f3);throw _0x6423f3;});}return _0x47440e;})[_0xeabc('0x25')](respondWithResult(_0x48df43,0xc9))[_0xeabc('0x49')](handleError(_0x48df43,null));};exports[_0xeabc('0x24')]=function(_0x555d6b,_0x1cef45){if(_0x555d6b[_0xeabc('0x4b')]['id']){delete _0x555d6b[_0xeabc('0x4b')]['id'];}return db[_0xeabc('0x30')]['find']({'where':{'id':_0x555d6b[_0xeabc('0x44')]['id']}})[_0xeabc('0x25')](handleEntityNotFound(_0x1cef45,null))[_0xeabc('0x25')](saveUpdates(_0x555d6b[_0xeabc('0x4b')],null))[_0xeabc('0x25')](respondWithResult(_0x1cef45,null))[_0xeabc('0x49')](handleError(_0x1cef45,null));};exports[_0xeabc('0x29')]=function(_0x3ff38c,_0x17acf8){return db['AnalyticMetric'][_0xeabc('0x48')]({'where':{'id':_0x3ff38c['params']['id']}})['then'](handleEntityNotFound(_0x17acf8,null))['then'](removeEntity(_0x17acf8,null))[_0xeabc('0x49')](handleError(_0x17acf8,null));};
\ No newline at end of file
+var _0x55ca=['../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','json','offset','undefined','limit','count','reject','update','then','get','Metrics','UserProfileResource','destroy','end','sendStatus','stack','name','send','index','map','rawAttributes','fieldName','type','key','model','query','keys','intersection','fields','attributes','length','nolimit','order','sort','where','pick','filter','merge','AnalyticMetric','findAll','catch','show','include','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','params','eml-format','rimraf','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware'];(function(_0x2fd61e,_0x408859){var _0x55ee6b=function(_0x175115){while(--_0x175115){_0x2fd61e['push'](_0x2fd61e['shift']());}};_0x55ee6b(++_0x408859);}(_0x55ca,0x126));var _0xa55c=function(_0x562faa,_0x23adc7){_0x562faa=_0x562faa-0x0;var _0xc70f59=_0x55ca[_0x562faa];return _0xc70f59;};'use strict';var emlformat=require(_0xa55c('0x0'));var rimraf=require(_0xa55c('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xa55c('0x2'));var BPromise=require(_0xa55c('0x3'));var Mustache=require('mustache');var util=require(_0xa55c('0x4'));var path=require(_0xa55c('0x5'));var sox=require(_0xa55c('0x6'));var csv=require(_0xa55c('0x7'));var ejs=require(_0xa55c('0x8'));var fs=require('fs');var fs_extra=require(_0xa55c('0x9'));var _=require(_0xa55c('0xa'));var squel=require('squel');var crypto=require(_0xa55c('0xb'));var jsforce=require(_0xa55c('0xc'));var deskjs=require('desk.js');var toCsv=require(_0xa55c('0x7'));var querystring=require(_0xa55c('0xd'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xa55c('0xe'));var qs=require(_0xa55c('0xf'));var as=require(_0xa55c('0x10'));var hardwareService=require(_0xa55c('0x11'));var logger=require(_0xa55c('0x12'))(_0xa55c('0x13'));var utils=require(_0xa55c('0x14'));var config=require(_0xa55c('0x15'));var licenseUtil=require(_0xa55c('0x16'));var db=require(_0xa55c('0x17'))['db'];function respondWithStatusCode(_0x5d47ff,_0x59d84a){_0x59d84a=_0x59d84a||0xcc;return function(_0x2a35be){if(_0x2a35be){return _0x5d47ff['sendStatus'](_0x59d84a);}return _0x5d47ff['status'](_0x59d84a)['end']();};}function respondWithResult(_0x18ee85,_0x3930e4){_0x3930e4=_0x3930e4||0xc8;return function(_0x462cd6){if(_0x462cd6){return _0x18ee85[_0xa55c('0x18')](_0x3930e4)[_0xa55c('0x19')](_0x462cd6);}};}function respondWithFilteredResult(_0x247e77,_0x4e0b2f){return function(_0x3ccf65){if(_0x3ccf65){var _0x3dcf4f=typeof _0x4e0b2f[_0xa55c('0x1a')]===_0xa55c('0x1b')&&typeof _0x4e0b2f[_0xa55c('0x1c')]===_0xa55c('0x1b');var _0x51590e=_0x3ccf65[_0xa55c('0x1d')];var _0x24783b=_0x3dcf4f?0x0:_0x4e0b2f['offset'];var _0x3d4c9e=_0x3dcf4f?_0x3ccf65[_0xa55c('0x1d')]:_0x4e0b2f[_0xa55c('0x1a')]+_0x4e0b2f[_0xa55c('0x1c')];var _0x23a1ae;if(_0x3d4c9e>=_0x51590e){_0x3d4c9e=_0x51590e;_0x23a1ae=0xc8;}else{_0x23a1ae=0xce;}_0x247e77[_0xa55c('0x18')](_0x23a1ae);return _0x247e77['set']('Content-Range',_0x24783b+'-'+_0x3d4c9e+'/'+_0x51590e)[_0xa55c('0x19')](_0x3ccf65);}return null;};}function patchUpdates(_0x3776ac){return function(_0xade4c4){try{jsonpatch['apply'](_0xade4c4,_0x3776ac,!![]);}catch(_0x383d92){return BPromise[_0xa55c('0x1e')](_0x383d92);}return _0xade4c4['save']();};}function saveUpdates(_0x187a87,_0x133096){return function(_0x940f28){if(_0x940f28){return _0x940f28[_0xa55c('0x1f')](_0x187a87)[_0xa55c('0x20')](function(_0x49ed04){return _0x49ed04;});}return null;};}function removeEntity(_0x1fc828,_0x504c24){return function(_0x5ba836){if(_0x5ba836){return _0x5ba836['destroy']()[_0xa55c('0x20')](function(){var _0x54b038=_0x5ba836[_0xa55c('0x21')]({'plain':!![]});var _0x190757=_0xa55c('0x22');return db[_0xa55c('0x23')][_0xa55c('0x24')]({'where':{'type':_0x190757,'resourceId':_0x54b038['id']}})[_0xa55c('0x20')](function(){return _0x5ba836;});})[_0xa55c('0x20')](function(){_0x1fc828[_0xa55c('0x18')](0xcc)[_0xa55c('0x25')]();});}};}function handleEntityNotFound(_0x3cd152,_0x1273d7){return function(_0x57f271){if(!_0x57f271){_0x3cd152[_0xa55c('0x26')](0x194);}return _0x57f271;};}function handleError(_0x28814f,_0x1c9f6b){_0x1c9f6b=_0x1c9f6b||0x1f4;return function(_0x906caa){logger['error'](_0x906caa[_0xa55c('0x27')]);if(_0x906caa[_0xa55c('0x28')]){delete _0x906caa[_0xa55c('0x28')];}_0x28814f[_0xa55c('0x18')](_0x1c9f6b)[_0xa55c('0x29')](_0x906caa);};}exports[_0xa55c('0x2a')]=function(_0x52d37f,_0x23e698){var _0x490b7d={},_0x35c9c2={},_0x1d730b={'count':0x0,'rows':[]};var _0x1cc53e=_[_0xa55c('0x2b')](db['AnalyticMetric'][_0xa55c('0x2c')],function(_0x2096ae){return{'name':_0x2096ae[_0xa55c('0x2d')],'type':_0x2096ae[_0xa55c('0x2e')][_0xa55c('0x2f')]};});_0x35c9c2[_0xa55c('0x30')]=_[_0xa55c('0x2b')](_0x1cc53e,_0xa55c('0x28'));_0x35c9c2[_0xa55c('0x31')]=_[_0xa55c('0x32')](_0x52d37f[_0xa55c('0x31')]);_0x35c9c2['filters']=_['intersection'](_0x35c9c2[_0xa55c('0x30')],_0x35c9c2[_0xa55c('0x31')]);_0x490b7d['attributes']=_[_0xa55c('0x33')](_0x35c9c2[_0xa55c('0x30')],qs[_0xa55c('0x34')](_0x52d37f[_0xa55c('0x31')][_0xa55c('0x34')]));_0x490b7d[_0xa55c('0x35')]=_0x490b7d[_0xa55c('0x35')][_0xa55c('0x36')]?_0x490b7d[_0xa55c('0x35')]:_0x35c9c2['model'];if(!_0x52d37f['query']['hasOwnProperty'](_0xa55c('0x37'))){_0x490b7d[_0xa55c('0x1c')]=qs[_0xa55c('0x1c')](_0x52d37f['query'][_0xa55c('0x1c')]);_0x490b7d['offset']=qs[_0xa55c('0x1a')](_0x52d37f['query'][_0xa55c('0x1a')]);}_0x490b7d[_0xa55c('0x38')]=qs[_0xa55c('0x39')](_0x52d37f['query'][_0xa55c('0x39')]);_0x490b7d[_0xa55c('0x3a')]=qs['filters'](_[_0xa55c('0x3b')](_0x52d37f[_0xa55c('0x31')],_0x35c9c2['filters']),_0x1cc53e);if(_0x52d37f['query'][_0xa55c('0x3c')]){_0x490b7d['where']=_[_0xa55c('0x3d')](_0x490b7d[_0xa55c('0x3a')],{'$or':_['map'](_0x1cc53e,function(_0x542d76){if(_0x542d76['type']!=='VIRTUAL'){var _0x3b3308={};_0x3b3308[_0x542d76[_0xa55c('0x28')]]={'$like':'%'+_0x52d37f[_0xa55c('0x31')][_0xa55c('0x3c')]+'%'};return _0x3b3308;}})});}_0x490b7d=_[_0xa55c('0x3d')]({},_0x490b7d,_0x52d37f['options']);var _0x3d52d8={'where':_0x490b7d[_0xa55c('0x3a')]};return db[_0xa55c('0x3e')][_0xa55c('0x1d')](_0x3d52d8)[_0xa55c('0x20')](function(_0x23cef5){_0x1d730b['count']=_0x23cef5;if(_0x52d37f[_0xa55c('0x31')]['includeAll']){_0x490b7d['include']=[{'all':!![]}];}return db[_0xa55c('0x3e')][_0xa55c('0x3f')](_0x490b7d);})['then'](function(_0x2bd98b){_0x1d730b['rows']=_0x2bd98b;return _0x1d730b;})['then'](respondWithFilteredResult(_0x23e698,_0x490b7d))[_0xa55c('0x40')](handleError(_0x23e698,null));};exports[_0xa55c('0x41')]=function(_0x1630ac,_0x540337){var _0x1b2708={'raw':!![],'where':{'id':_0x1630ac['params']['id']}},_0xd5a006={};_0xd5a006[_0xa55c('0x30')]=_['keys'](db[_0xa55c('0x3e')][_0xa55c('0x2c')]);_0xd5a006['query']=_[_0xa55c('0x32')](_0x1630ac[_0xa55c('0x31')]);_0xd5a006['filters']=_[_0xa55c('0x33')](_0xd5a006[_0xa55c('0x30')],_0xd5a006[_0xa55c('0x31')]);_0x1b2708['attributes']=_[_0xa55c('0x33')](_0xd5a006['model'],qs[_0xa55c('0x34')](_0x1630ac[_0xa55c('0x31')][_0xa55c('0x34')]));_0x1b2708['attributes']=_0x1b2708[_0xa55c('0x35')][_0xa55c('0x36')]?_0x1b2708['attributes']:_0xd5a006[_0xa55c('0x30')];if(_0x1630ac[_0xa55c('0x31')]['includeAll']){_0x1b2708[_0xa55c('0x42')]=[{'all':!![]}];}_0x1b2708=_[_0xa55c('0x3d')]({},_0x1b2708,_0x1630ac['options']);return db[_0xa55c('0x3e')][_0xa55c('0x43')](_0x1b2708)[_0xa55c('0x20')](handleEntityNotFound(_0x540337,null))[_0xa55c('0x20')](respondWithResult(_0x540337,null))['catch'](handleError(_0x540337,null));};exports[_0xa55c('0x44')]=function(_0x58a7ea,_0x2157d6){return db[_0xa55c('0x3e')][_0xa55c('0x44')](_0x58a7ea['body'],{})[_0xa55c('0x20')](function(_0x250b00){var _0x574fe9=_0x58a7ea[_0xa55c('0x45')][_0xa55c('0x21')]({'plain':!![]});if(!_0x574fe9)throw new Error(_0xa55c('0x46'));if(_0x574fe9[_0xa55c('0x47')]===_0xa55c('0x45')){var _0x1c84d9=_0x250b00[_0xa55c('0x21')]({'plain':!![]});var _0x129626=_0xa55c('0x22');return db[_0xa55c('0x48')]['find']({'where':{'name':_0x129626,'userProfileId':_0x574fe9[_0xa55c('0x49')]},'raw':!![]})[_0xa55c('0x20')](function(_0x216de8){if(_0x216de8&&_0x216de8['autoAssociation']===0x0){return db[_0xa55c('0x23')][_0xa55c('0x44')]({'name':_0x1c84d9['name'],'resourceId':_0x1c84d9['id'],'type':_0x216de8[_0xa55c('0x28')],'sectionId':_0x216de8['id']},{})['then'](function(){return _0x250b00;});}else{return _0x250b00;}})[_0xa55c('0x40')](function(_0x228df4){logger[_0xa55c('0x4a')](_0xa55c('0x4b'),_0x228df4);throw _0x228df4;});}return _0x250b00;})[_0xa55c('0x20')](respondWithResult(_0x2157d6,0xc9))['catch'](handleError(_0x2157d6,null));};exports[_0xa55c('0x1f')]=function(_0x4607ca,_0x4b85cc){if(_0x4607ca[_0xa55c('0x4c')]['id']){delete _0x4607ca[_0xa55c('0x4c')]['id'];}return db[_0xa55c('0x3e')][_0xa55c('0x43')]({'where':{'id':_0x4607ca['params']['id']}})['then'](handleEntityNotFound(_0x4b85cc,null))[_0xa55c('0x20')](saveUpdates(_0x4607ca[_0xa55c('0x4c')],null))[_0xa55c('0x20')](respondWithResult(_0x4b85cc,null))[_0xa55c('0x40')](handleError(_0x4b85cc,null));};exports['destroy']=function(_0x30c0c9,_0x5ce463){return db[_0xa55c('0x3e')][_0xa55c('0x43')]({'where':{'id':_0x30c0c9[_0xa55c('0x4d')]['id']}})[_0xa55c('0x20')](handleEntityNotFound(_0x5ce463,null))[_0xa55c('0x20')](removeEntity(_0x5ce463,null))['catch'](handleError(_0x5ce463,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd47f=['analytics_metrics','lodash','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./analyticMetric.attributes','exports'];(function(_0x36804b,_0x54a72c){var _0x5d912e=function(_0x194003){while(--_0x194003){_0x36804b['push'](_0x36804b['shift']());}};_0x5d912e(++_0x54a72c);}(_0xd47f,0x1bd));var _0xfd47=function(_0x45c1cf,_0x36f5cc){_0x45c1cf=_0x45c1cf-0x0;var _0x54fe02=_0xd47f[_0x45c1cf];return _0x54fe02;};'use strict';var _=require(_0xfd47('0x0'));var util=require('util');var logger=require(_0xfd47('0x1'))(_0xfd47('0x2'));var moment=require(_0xfd47('0x3'));var BPromise=require(_0xfd47('0x4'));var rp=require(_0xfd47('0x5'));var fs=require('fs');var path=require(_0xfd47('0x6'));var rimraf=require(_0xfd47('0x7'));var config=require(_0xfd47('0x8'));var attributes=require(_0xfd47('0x9'));module[_0xfd47('0xa')]=function(_0x29f81d,_0x2103a0){return _0x29f81d['define']('AnalyticMetric',attributes,{'tableName':_0xfd47('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xbe2c=['define','AnalyticMetric','analytics_metrics','lodash','util','api','bluebird','request-promise','path','rimraf','../../config/environment','exports'];(function(_0x57dc2b,_0x26236a){var _0x4861ca=function(_0x19c5ce){while(--_0x19c5ce){_0x57dc2b['push'](_0x57dc2b['shift']());}};_0x4861ca(++_0x26236a);}(_0xbe2c,0x18f));var _0xcbe2=function(_0x37c41d,_0x5cfbfa){_0x37c41d=_0x37c41d-0x0;var _0x24575d=_0xbe2c[_0x37c41d];return _0x24575d;};'use strict';var _=require(_0xcbe2('0x0'));var util=require(_0xcbe2('0x1'));var logger=require('../../config/logger')(_0xcbe2('0x2'));var moment=require('moment');var BPromise=require(_0xcbe2('0x3'));var rp=require(_0xcbe2('0x4'));var fs=require('fs');var path=require(_0xcbe2('0x5'));var rimraf=require(_0xcbe2('0x6'));var config=require(_0xcbe2('0x7'));var attributes=require('./analyticMetric.attributes');module[_0xcbe2('0x8')]=function(_0x2f1e95,_0x519925){return _0x2f1e95[_0xcbe2('0x9')](_0xcbe2('0xa'),attributes,{'tableName':_0xcbe2('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5a92=['catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','request','then','info','request\x20sent','debug','AnalyticMetric,\x20%s,\x20%s,\x20%s','error','code','message','AnalyticMetric,\x20%s,\x20%s'];(function(_0x497337,_0x548ccf){var _0x2f5727=function(_0x16a735){while(--_0x16a735){_0x497337['push'](_0x497337['shift']());}};_0x2f5727(++_0x548ccf);}(_0x5a92,0x1c9));var _0x25a9=function(_0x3a6de3,_0x18a87d){_0x3a6de3=_0x3a6de3-0x0;var _0x5a0d72=_0x5a92[_0x3a6de3];return _0x5a0d72;};'use strict';var _=require(_0x25a9('0x0'));var util=require(_0x25a9('0x1'));var moment=require(_0x25a9('0x2'));var BPromise=require(_0x25a9('0x3'));var rs=require(_0x25a9('0x4'));var fs=require('fs');var Redis=require(_0x25a9('0x5'));var db=require(_0x25a9('0x6'))['db'];var utils=require(_0x25a9('0x7'));var logger=require(_0x25a9('0x8'))(_0x25a9('0x9'));var config=require(_0x25a9('0xa'));var jayson=require('jayson/promise');var client=jayson[_0x25a9('0xb')][_0x25a9('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x52cb74,_0x5c1382,_0x211699){return new BPromise(function(_0x247203,_0x16a209){return client[_0x25a9('0xd')](_0x52cb74,_0x211699)[_0x25a9('0xe')](function(_0x2d9d7b){logger[_0x25a9('0xf')]('AnalyticMetric,\x20%s,\x20%s',_0x5c1382,_0x25a9('0x10'));logger[_0x25a9('0x11')](_0x25a9('0x12'),_0x5c1382,'request\x20sent',JSON['stringify'](_0x2d9d7b));if(_0x2d9d7b[_0x25a9('0x13')]){if(_0x2d9d7b[_0x25a9('0x13')][_0x25a9('0x14')]===0x1f4){logger[_0x25a9('0x13')]('AnalyticMetric,\x20%s,\x20%s',_0x5c1382,_0x2d9d7b[_0x25a9('0x13')][_0x25a9('0x15')]);return _0x16a209(_0x2d9d7b[_0x25a9('0x13')][_0x25a9('0x15')]);}logger[_0x25a9('0x13')](_0x25a9('0x16'),_0x5c1382,_0x2d9d7b[_0x25a9('0x13')][_0x25a9('0x15')]);return _0x247203(_0x2d9d7b[_0x25a9('0x13')]['message']);}else{logger[_0x25a9('0xf')]('AnalyticMetric,\x20%s,\x20%s',_0x5c1382,_0x25a9('0x10'));_0x247203(_0x2d9d7b['result'][_0x25a9('0x15')]);}})[_0x25a9('0x17')](function(_0x19682a){logger[_0x25a9('0x13')]('AnalyticMetric,\x20%s,\x20%s',_0x5c1382,_0x19682a);_0x16a209(_0x19682a);});});}
\ No newline at end of file
+var _0x3b6c=['../../config/logger','rpc','../../config/environment','jayson/promise','http','request','then','info','request\x20sent','debug','error','code','AnalyticMetric,\x20%s,\x20%s','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils'];(function(_0x466f51,_0x1393ed){var _0x2db305=function(_0x126ae3){while(--_0x126ae3){_0x466f51['push'](_0x466f51['shift']());}};_0x2db305(++_0x1393ed);}(_0x3b6c,0x70));var _0xc3b6=function(_0x4f778e,_0x4a5232){_0x4f778e=_0x4f778e-0x0;var _0x184d7e=_0x3b6c[_0x4f778e];return _0x184d7e;};'use strict';var _=require(_0xc3b6('0x0'));var util=require(_0xc3b6('0x1'));var moment=require(_0xc3b6('0x2'));var BPromise=require(_0xc3b6('0x3'));var rs=require(_0xc3b6('0x4'));var fs=require('fs');var Redis=require(_0xc3b6('0x5'));var db=require(_0xc3b6('0x6'))['db'];var utils=require(_0xc3b6('0x7'));var logger=require(_0xc3b6('0x8'))(_0xc3b6('0x9'));var config=require(_0xc3b6('0xa'));var jayson=require(_0xc3b6('0xb'));var client=jayson['client'][_0xc3b6('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x84ce1f,_0x589f48,_0x416a82){return new BPromise(function(_0x2b6192,_0x279747){return client[_0xc3b6('0xd')](_0x84ce1f,_0x416a82)[_0xc3b6('0xe')](function(_0x247828){logger[_0xc3b6('0xf')]('AnalyticMetric,\x20%s,\x20%s',_0x589f48,_0xc3b6('0x10'));logger[_0xc3b6('0x11')]('AnalyticMetric,\x20%s,\x20%s,\x20%s',_0x589f48,_0xc3b6('0x10'),JSON['stringify'](_0x247828));if(_0x247828['error']){if(_0x247828[_0xc3b6('0x12')][_0xc3b6('0x13')]===0x1f4){logger[_0xc3b6('0x12')](_0xc3b6('0x14'),_0x589f48,_0x247828[_0xc3b6('0x12')][_0xc3b6('0x15')]);return _0x279747(_0x247828['error'][_0xc3b6('0x15')]);}logger[_0xc3b6('0x12')](_0xc3b6('0x14'),_0x589f48,_0x247828['error'][_0xc3b6('0x15')]);return _0x2b6192(_0x247828[_0xc3b6('0x12')][_0xc3b6('0x15')]);}else{logger[_0xc3b6('0xf')](_0xc3b6('0x14'),_0x589f48,_0xc3b6('0x10'));_0x2b6192(_0x247828[_0xc3b6('0x16')][_0xc3b6('0x15')]);}})[_0xc3b6('0x17')](function(_0x2844d6){logger[_0xc3b6('0x12')](_0xc3b6('0x14'),_0x589f48,_0x2844d6);_0x279747(_0x2844d6);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x102b=['index','get','/:id','post','put','update','delete','destroy','exports','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./analyticMetric.controller','isAuthenticated'];(function(_0x1bb0d9,_0x4e0dcc){var _0xc8341f=function(_0x2acf57){while(--_0x2acf57){_0x1bb0d9['push'](_0x1bb0d9['shift']());}};_0xc8341f(++_0x4e0dcc);}(_0x102b,0x1be));var _0xb102=function(_0x20c8aa,_0x3e321a){_0x20c8aa=_0x20c8aa-0x0;var _0xe6e2b7=_0x102b[_0x20c8aa];return _0xe6e2b7;};'use strict';var multer=require('multer');var util=require(_0xb102('0x0'));var path=require('path');var timeout=require(_0xb102('0x1'));var express=require(_0xb102('0x2'));var router=express[_0xb102('0x3')]();var fs_extra=require(_0xb102('0x4'));var auth=require(_0xb102('0x5'));var interaction=require(_0xb102('0x6'));var config=require(_0xb102('0x7'));var controller=require(_0xb102('0x8'));router['get']('/',auth[_0xb102('0x9')](),controller[_0xb102('0xa')]);router[_0xb102('0xb')](_0xb102('0xc'),auth[_0xb102('0x9')](),controller['show']);router[_0xb102('0xd')]('/',auth['isAuthenticated'](),controller['create']);router[_0xb102('0xe')]('/:id',auth['isAuthenticated'](),controller[_0xb102('0xf')]);router[_0xb102('0x10')]('/:id',auth[_0xb102('0x9')](),controller[_0xb102('0x11')]);module[_0xb102('0x12')]=router;
\ No newline at end of file
+var _0xe7de=['Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./analyticMetric.controller','get','isAuthenticated','index','/:id','show','post','create','put','update','delete','exports','multer','util','path'];(function(_0x1b64dd,_0x2cf769){var _0xeb464c=function(_0x38272c){while(--_0x38272c){_0x1b64dd['push'](_0x1b64dd['shift']());}};_0xeb464c(++_0x2cf769);}(_0xe7de,0x165));var _0xee7d=function(_0x549dba,_0x497589){_0x549dba=_0x549dba-0x0;var _0x29cd5e=_0xe7de[_0x549dba];return _0x29cd5e;};'use strict';var multer=require(_0xee7d('0x0'));var util=require(_0xee7d('0x1'));var path=require(_0xee7d('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0xee7d('0x3')]();var fs_extra=require(_0xee7d('0x4'));var auth=require(_0xee7d('0x5'));var interaction=require(_0xee7d('0x6'));var config=require(_0xee7d('0x7'));var controller=require(_0xee7d('0x8'));router[_0xee7d('0x9')]('/',auth[_0xee7d('0xa')](),controller[_0xee7d('0xb')]);router[_0xee7d('0x9')](_0xee7d('0xc'),auth[_0xee7d('0xa')](),controller[_0xee7d('0xd')]);router[_0xee7d('0xe')]('/',auth['isAuthenticated'](),controller[_0xee7d('0xf')]);router[_0xee7d('0x10')](_0xee7d('0xc'),auth[_0xee7d('0xa')](),controller[_0xee7d('0x11')]);router[_0xee7d('0x12')]('/:id',auth[_0xee7d('0xa')](),controller['destroy']);module[_0xee7d('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x05d6=['TEXT','exports'];(function(_0x5c9a30,_0xbc0e85){var _0x135b14=function(_0x2256de){while(--_0x2256de){_0x5c9a30['push'](_0x5c9a30['shift']());}};_0x135b14(++_0xbc0e85);}(_0x05d6,0x1bd));var _0x605d=function(_0xe47de7,_0x184650){_0xe47de7=_0xe47de7-0x0;var _0x45fdd6=_0x05d6[_0xe47de7];return _0x45fdd6;};'use strict';var Sequelize=require('sequelize');module[_0x605d('0x0')]={'tree':{'type':Sequelize[_0x605d('0x1')],'allowNull':![]}};
\ No newline at end of file
+var _0x613d=['sequelize'];(function(_0x77562a,_0x21566f){var _0x271ed8=function(_0x4ea566){while(--_0x4ea566){_0x77562a['push'](_0x77562a['shift']());}};_0x271ed8(++_0x21566f);}(_0x613d,0x1c5));var _0xd613=function(_0x173dd9,_0x4ecf44){_0x173dd9=_0x173dd9-0x0;var _0x5a0d5a=_0x613d[_0x173dd9];return _0x5a0d5a;};'use strict';var Sequelize=require(_0xd613('0x0'));module['exports']={'tree':{'type':Sequelize['TEXT'],'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x07d2=['name','send','index','map','AnalyticTreeReport','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','create','body','find','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','then','destroy','sendStatus','error','stack'];(function(_0x15fb5d,_0x384dfc){var _0x1d4544=function(_0x15708a){while(--_0x15708a){_0x15fb5d['push'](_0x15fb5d['shift']());}};_0x1d4544(++_0x384dfc);}(_0x07d2,0x118));var _0x207d=function(_0x5d9351,_0x5e94b5){_0x5d9351=_0x5d9351-0x0;var _0x43cee4=_0x07d2[_0x5d9351];return _0x43cee4;};'use strict';var emlformat=require(_0x207d('0x0'));var rimraf=require(_0x207d('0x1'));var zipdir=require(_0x207d('0x2'));var jsonpatch=require(_0x207d('0x3'));var rp=require(_0x207d('0x4'));var moment=require(_0x207d('0x5'));var BPromise=require(_0x207d('0x6'));var Mustache=require(_0x207d('0x7'));var util=require(_0x207d('0x8'));var path=require(_0x207d('0x9'));var sox=require(_0x207d('0xa'));var csv=require(_0x207d('0xb'));var ejs=require(_0x207d('0xc'));var fs=require('fs');var fs_extra=require(_0x207d('0xd'));var _=require('lodash');var squel=require(_0x207d('0xe'));var crypto=require(_0x207d('0xf'));var jsforce=require('jsforce');var deskjs=require(_0x207d('0x10'));var toCsv=require('to-csv');var querystring=require(_0x207d('0x11'));var Papa=require(_0x207d('0x12'));var Redis=require(_0x207d('0x13'));var authService=require('../../components/auth/service');var qs=require(_0x207d('0x14'));var as=require(_0x207d('0x15'));var hardwareService=require(_0x207d('0x16'));var logger=require('../../config/logger')('api');var utils=require(_0x207d('0x17'));var config=require(_0x207d('0x18'));var licenseUtil=require(_0x207d('0x19'));var db=require(_0x207d('0x1a'))['db'];function respondWithStatusCode(_0x3bfb1f,_0x3806d3){_0x3806d3=_0x3806d3||0xcc;return function(_0x332d08){if(_0x332d08){return _0x3bfb1f['sendStatus'](_0x3806d3);}return _0x3bfb1f[_0x207d('0x1b')](_0x3806d3)[_0x207d('0x1c')]();};}function respondWithResult(_0x57dbc1,_0x43c736){_0x43c736=_0x43c736||0xc8;return function(_0x5170d6){if(_0x5170d6){return _0x57dbc1['status'](_0x43c736)[_0x207d('0x1d')](_0x5170d6);}};}function respondWithFilteredResult(_0x12bdd4,_0x608c1b){return function(_0x426406){if(_0x426406){var _0x5e8d4a=typeof _0x608c1b[_0x207d('0x1e')]===_0x207d('0x1f')&&typeof _0x608c1b[_0x207d('0x20')]==='undefined';var _0x35ceef=_0x426406['count'];var _0x330871=_0x5e8d4a?0x0:_0x608c1b[_0x207d('0x1e')];var _0x360a08=_0x5e8d4a?_0x426406[_0x207d('0x21')]:_0x608c1b[_0x207d('0x1e')]+_0x608c1b[_0x207d('0x20')];var _0x17e112;if(_0x360a08>=_0x35ceef){_0x360a08=_0x35ceef;_0x17e112=0xc8;}else{_0x17e112=0xce;}_0x12bdd4[_0x207d('0x1b')](_0x17e112);return _0x12bdd4[_0x207d('0x22')](_0x207d('0x23'),_0x330871+'-'+_0x360a08+'/'+_0x35ceef)[_0x207d('0x1d')](_0x426406);}return null;};}function patchUpdates(_0x4edc73){return function(_0x551ebd){try{jsonpatch[_0x207d('0x24')](_0x551ebd,_0x4edc73,!![]);}catch(_0x31c9e7){return BPromise[_0x207d('0x25')](_0x31c9e7);}return _0x551ebd['save']();};}function saveUpdates(_0x440140,_0x289618){return function(_0x425855){if(_0x425855){return _0x425855[_0x207d('0x26')](_0x440140)[_0x207d('0x27')](function(_0x508bf8){return _0x508bf8;});}return null;};}function removeEntity(_0x199931,_0x2e72d9){return function(_0x23aca1){if(_0x23aca1){return _0x23aca1[_0x207d('0x28')]()[_0x207d('0x27')](function(){_0x199931[_0x207d('0x1b')](0xcc)[_0x207d('0x1c')]();});}};}function handleEntityNotFound(_0x148d66,_0x6218e7){return function(_0x297ebc){if(!_0x297ebc){_0x148d66[_0x207d('0x29')](0x194);}return _0x297ebc;};}function handleError(_0x1e0cfc,_0x183c23){_0x183c23=_0x183c23||0x1f4;return function(_0x3afc12){logger[_0x207d('0x2a')](_0x3afc12[_0x207d('0x2b')]);if(_0x3afc12[_0x207d('0x2c')]){delete _0x3afc12[_0x207d('0x2c')];}_0x1e0cfc['status'](_0x183c23)[_0x207d('0x2d')](_0x3afc12);};}exports[_0x207d('0x2e')]=function(_0x392ece,_0x38a532){var _0x3bcb2d={},_0x397e61={},_0x3c0297={'count':0x0,'rows':[]};var _0x33ee12=_[_0x207d('0x2f')](db[_0x207d('0x30')][_0x207d('0x31')],function(_0x1fef32){return{'name':_0x1fef32[_0x207d('0x32')],'type':_0x1fef32[_0x207d('0x33')][_0x207d('0x34')]};});_0x397e61[_0x207d('0x35')]=_['map'](_0x33ee12,'name');_0x397e61[_0x207d('0x36')]=_[_0x207d('0x37')](_0x392ece['query']);_0x397e61[_0x207d('0x38')]=_[_0x207d('0x39')](_0x397e61['model'],_0x397e61[_0x207d('0x36')]);_0x3bcb2d[_0x207d('0x3a')]=_[_0x207d('0x39')](_0x397e61[_0x207d('0x35')],qs[_0x207d('0x3b')](_0x392ece['query'][_0x207d('0x3b')]));_0x3bcb2d[_0x207d('0x3a')]=_0x3bcb2d[_0x207d('0x3a')][_0x207d('0x3c')]?_0x3bcb2d[_0x207d('0x3a')]:_0x397e61[_0x207d('0x35')];if(!_0x392ece[_0x207d('0x36')][_0x207d('0x3d')](_0x207d('0x3e'))){_0x3bcb2d[_0x207d('0x20')]=qs[_0x207d('0x20')](_0x392ece[_0x207d('0x36')][_0x207d('0x20')]);_0x3bcb2d['offset']=qs[_0x207d('0x1e')](_0x392ece[_0x207d('0x36')][_0x207d('0x1e')]);}_0x3bcb2d[_0x207d('0x3f')]=qs['sort'](_0x392ece['query'][_0x207d('0x40')]);_0x3bcb2d[_0x207d('0x41')]=qs['filters'](_[_0x207d('0x42')](_0x392ece[_0x207d('0x36')],_0x397e61[_0x207d('0x38')]),_0x33ee12);if(_0x392ece[_0x207d('0x36')][_0x207d('0x43')]){_0x3bcb2d['where']=_[_0x207d('0x44')](_0x3bcb2d[_0x207d('0x41')],{'$or':_[_0x207d('0x2f')](_0x33ee12,function(_0x116188){if(_0x116188['type']!==_0x207d('0x45')){var _0x31bc6e={};_0x31bc6e[_0x116188[_0x207d('0x2c')]]={'$like':'%'+_0x392ece['query'][_0x207d('0x43')]+'%'};return _0x31bc6e;}})});}_0x3bcb2d=_[_0x207d('0x44')]({},_0x3bcb2d,_0x392ece[_0x207d('0x46')]);var _0xce6377={'where':_0x3bcb2d[_0x207d('0x41')]};return db['AnalyticTreeReport'][_0x207d('0x21')](_0xce6377)[_0x207d('0x27')](function(_0x1d77a3){_0x3c0297[_0x207d('0x21')]=_0x1d77a3;if(_0x392ece[_0x207d('0x36')][_0x207d('0x47')]){_0x3bcb2d[_0x207d('0x48')]=[{'all':!![]}];}return db[_0x207d('0x30')][_0x207d('0x49')](_0x3bcb2d);})[_0x207d('0x27')](function(_0x47f3c4){_0x3c0297[_0x207d('0x4a')]=_0x47f3c4;return _0x3c0297;})[_0x207d('0x27')](respondWithFilteredResult(_0x38a532,_0x3bcb2d))[_0x207d('0x4b')](handleError(_0x38a532,null));};exports[_0x207d('0x4c')]=function(_0x434b4a,_0x525cfc){var _0x5be65b={'raw':!![],'where':{'id':_0x434b4a[_0x207d('0x4d')]['id']}},_0x3fe5cd={};_0x3fe5cd[_0x207d('0x35')]=_[_0x207d('0x37')](db['AnalyticTreeReport'][_0x207d('0x31')]);_0x3fe5cd[_0x207d('0x36')]=_[_0x207d('0x37')](_0x434b4a[_0x207d('0x36')]);_0x3fe5cd[_0x207d('0x38')]=_['intersection'](_0x3fe5cd[_0x207d('0x35')],_0x3fe5cd[_0x207d('0x36')]);_0x5be65b[_0x207d('0x3a')]=_[_0x207d('0x39')](_0x3fe5cd[_0x207d('0x35')],qs[_0x207d('0x3b')](_0x434b4a[_0x207d('0x36')]['fields']));_0x5be65b[_0x207d('0x3a')]=_0x5be65b['attributes'][_0x207d('0x3c')]?_0x5be65b[_0x207d('0x3a')]:_0x3fe5cd[_0x207d('0x35')];if(_0x434b4a[_0x207d('0x36')][_0x207d('0x47')]){_0x5be65b[_0x207d('0x48')]=[{'all':!![]}];}_0x5be65b=_['merge']({},_0x5be65b,_0x434b4a[_0x207d('0x46')]);return db['AnalyticTreeReport']['find'](_0x5be65b)['then'](handleEntityNotFound(_0x525cfc,null))[_0x207d('0x27')](respondWithResult(_0x525cfc,null))['catch'](handleError(_0x525cfc,null));};exports[_0x207d('0x4e')]=function(_0x179bc5,_0x383d0b){return db[_0x207d('0x30')][_0x207d('0x4e')](_0x179bc5[_0x207d('0x4f')],{})[_0x207d('0x27')](respondWithResult(_0x383d0b,0xc9))[_0x207d('0x4b')](handleError(_0x383d0b,null));};exports[_0x207d('0x26')]=function(_0x447e69,_0xc6bab3){if(_0x447e69[_0x207d('0x4f')]['id']){delete _0x447e69[_0x207d('0x4f')]['id'];}return db['AnalyticTreeReport']['find']({'where':{'id':_0x447e69[_0x207d('0x4d')]['id']}})[_0x207d('0x27')](handleEntityNotFound(_0xc6bab3,null))[_0x207d('0x27')](saveUpdates(_0x447e69[_0x207d('0x4f')],null))[_0x207d('0x27')](respondWithResult(_0xc6bab3,null))[_0x207d('0x4b')](handleError(_0xc6bab3,null));};exports[_0x207d('0x28')]=function(_0x434d9d,_0xc3ac55){return db[_0x207d('0x30')][_0x207d('0x50')]({'where':{'id':_0x434d9d['params']['id']}})[_0x207d('0x27')](handleEntityNotFound(_0xc3ac55,null))[_0x207d('0x27')](removeEntity(_0xc3ac55,null))['catch'](handleError(_0xc3ac55,null));};
\ No newline at end of file
+var _0x101d=['lodash','squel','crypto','jsforce','desk.js','to-csv','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','set','Content-Range','reject','update','then','destroy','sendStatus','stack','name','send','index','map','rawAttributes','fieldName','type','key','model','keys','filters','query','attributes','intersection','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','merge','options','AnalyticTreeReport','include','findAll','rows','catch','show','params','includeAll','find','create','body','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','path','ejs'];(function(_0x1e16d3,_0x5f6300){var _0x48be44=function(_0x4ce66d){while(--_0x4ce66d){_0x1e16d3['push'](_0x1e16d3['shift']());}};_0x48be44(++_0x5f6300);}(_0x101d,0xcf));var _0xd101=function(_0x1135bf,_0x4d5a02){_0x1135bf=_0x1135bf-0x0;var _0x33eef6=_0x101d[_0x1135bf];return _0x33eef6;};'use strict';var emlformat=require(_0xd101('0x0'));var rimraf=require(_0xd101('0x1'));var zipdir=require(_0xd101('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xd101('0x3'));var moment=require(_0xd101('0x4'));var BPromise=require(_0xd101('0x5'));var Mustache=require(_0xd101('0x6'));var util=require('util');var path=require(_0xd101('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xd101('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xd101('0x9'));var squel=require(_0xd101('0xa'));var crypto=require(_0xd101('0xb'));var jsforce=require(_0xd101('0xc'));var deskjs=require(_0xd101('0xd'));var toCsv=require(_0xd101('0xe'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xd101('0xf'));var authService=require(_0xd101('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0xd101('0x11'));var hardwareService=require(_0xd101('0x12'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0xd101('0x13'));var db=require(_0xd101('0x14'))['db'];function respondWithStatusCode(_0x4c5ac2,_0x518c9b){_0x518c9b=_0x518c9b||0xcc;return function(_0x21deb5){if(_0x21deb5){return _0x4c5ac2['sendStatus'](_0x518c9b);}return _0x4c5ac2[_0xd101('0x15')](_0x518c9b)[_0xd101('0x16')]();};}function respondWithResult(_0x22101e,_0x2b1974){_0x2b1974=_0x2b1974||0xc8;return function(_0x54d983){if(_0x54d983){return _0x22101e[_0xd101('0x15')](_0x2b1974)[_0xd101('0x17')](_0x54d983);}};}function respondWithFilteredResult(_0x1399b3,_0x42abb5){return function(_0x2a746d){if(_0x2a746d){var _0x30a2f9=typeof _0x42abb5[_0xd101('0x18')]===_0xd101('0x19')&&typeof _0x42abb5[_0xd101('0x1a')]===_0xd101('0x19');var _0x3dab05=_0x2a746d[_0xd101('0x1b')];var _0x5f2be5=_0x30a2f9?0x0:_0x42abb5[_0xd101('0x18')];var _0x3ceb=_0x30a2f9?_0x2a746d[_0xd101('0x1b')]:_0x42abb5[_0xd101('0x18')]+_0x42abb5[_0xd101('0x1a')];var _0x41dbee;if(_0x3ceb>=_0x3dab05){_0x3ceb=_0x3dab05;_0x41dbee=0xc8;}else{_0x41dbee=0xce;}_0x1399b3['status'](_0x41dbee);return _0x1399b3[_0xd101('0x1c')](_0xd101('0x1d'),_0x5f2be5+'-'+_0x3ceb+'/'+_0x3dab05)[_0xd101('0x17')](_0x2a746d);}return null;};}function patchUpdates(_0x175d0d){return function(_0x173d1f){try{jsonpatch['apply'](_0x173d1f,_0x175d0d,!![]);}catch(_0x9960a1){return BPromise[_0xd101('0x1e')](_0x9960a1);}return _0x173d1f['save']();};}function saveUpdates(_0x365d6c,_0x540e36){return function(_0x460e94){if(_0x460e94){return _0x460e94[_0xd101('0x1f')](_0x365d6c)[_0xd101('0x20')](function(_0x41a0b2){return _0x41a0b2;});}return null;};}function removeEntity(_0x170e8f,_0x70116f){return function(_0x1299ac){if(_0x1299ac){return _0x1299ac[_0xd101('0x21')]()[_0xd101('0x20')](function(){_0x170e8f[_0xd101('0x15')](0xcc)[_0xd101('0x16')]();});}};}function handleEntityNotFound(_0x340c2d,_0x2fa221){return function(_0x3ecfde){if(!_0x3ecfde){_0x340c2d[_0xd101('0x22')](0x194);}return _0x3ecfde;};}function handleError(_0x32fa89,_0x57a725){_0x57a725=_0x57a725||0x1f4;return function(_0x33bf1a){logger['error'](_0x33bf1a[_0xd101('0x23')]);if(_0x33bf1a[_0xd101('0x24')]){delete _0x33bf1a['name'];}_0x32fa89[_0xd101('0x15')](_0x57a725)[_0xd101('0x25')](_0x33bf1a);};}exports[_0xd101('0x26')]=function(_0x18b5c6,_0x5f0477){var _0x5245ff={},_0x412e51={},_0xc1587c={'count':0x0,'rows':[]};var _0x2808d4=_[_0xd101('0x27')](db['AnalyticTreeReport'][_0xd101('0x28')],function(_0xfdf0e7){return{'name':_0xfdf0e7[_0xd101('0x29')],'type':_0xfdf0e7[_0xd101('0x2a')][_0xd101('0x2b')]};});_0x412e51[_0xd101('0x2c')]=_[_0xd101('0x27')](_0x2808d4,'name');_0x412e51['query']=_[_0xd101('0x2d')](_0x18b5c6['query']);_0x412e51[_0xd101('0x2e')]=_['intersection'](_0x412e51[_0xd101('0x2c')],_0x412e51[_0xd101('0x2f')]);_0x5245ff[_0xd101('0x30')]=_[_0xd101('0x31')](_0x412e51['model'],qs['fields'](_0x18b5c6[_0xd101('0x2f')][_0xd101('0x32')]));_0x5245ff[_0xd101('0x30')]=_0x5245ff[_0xd101('0x30')]['length']?_0x5245ff[_0xd101('0x30')]:_0x412e51['model'];if(!_0x18b5c6[_0xd101('0x2f')][_0xd101('0x33')](_0xd101('0x34'))){_0x5245ff[_0xd101('0x1a')]=qs['limit'](_0x18b5c6['query'][_0xd101('0x1a')]);_0x5245ff[_0xd101('0x18')]=qs[_0xd101('0x18')](_0x18b5c6['query'][_0xd101('0x18')]);}_0x5245ff[_0xd101('0x35')]=qs[_0xd101('0x36')](_0x18b5c6['query'][_0xd101('0x36')]);_0x5245ff[_0xd101('0x37')]=qs[_0xd101('0x2e')](_[_0xd101('0x38')](_0x18b5c6[_0xd101('0x2f')],_0x412e51[_0xd101('0x2e')]),_0x2808d4);if(_0x18b5c6[_0xd101('0x2f')][_0xd101('0x39')]){_0x5245ff['where']=_['merge'](_0x5245ff[_0xd101('0x37')],{'$or':_[_0xd101('0x27')](_0x2808d4,function(_0x437c5e){if(_0x437c5e[_0xd101('0x2a')]!==_0xd101('0x3a')){var _0x168919={};_0x168919[_0x437c5e[_0xd101('0x24')]]={'$like':'%'+_0x18b5c6[_0xd101('0x2f')][_0xd101('0x39')]+'%'};return _0x168919;}})});}_0x5245ff=_[_0xd101('0x3b')]({},_0x5245ff,_0x18b5c6[_0xd101('0x3c')]);var _0x46dff2={'where':_0x5245ff['where']};return db[_0xd101('0x3d')]['count'](_0x46dff2)[_0xd101('0x20')](function(_0x51d262){_0xc1587c[_0xd101('0x1b')]=_0x51d262;if(_0x18b5c6['query']['includeAll']){_0x5245ff[_0xd101('0x3e')]=[{'all':!![]}];}return db[_0xd101('0x3d')][_0xd101('0x3f')](_0x5245ff);})['then'](function(_0x5c87c9){_0xc1587c[_0xd101('0x40')]=_0x5c87c9;return _0xc1587c;})[_0xd101('0x20')](respondWithFilteredResult(_0x5f0477,_0x5245ff))[_0xd101('0x41')](handleError(_0x5f0477,null));};exports[_0xd101('0x42')]=function(_0x48bc10,_0x48b36c){var _0x23974c={'raw':!![],'where':{'id':_0x48bc10[_0xd101('0x43')]['id']}},_0x32b7b6={};_0x32b7b6['model']=_[_0xd101('0x2d')](db['AnalyticTreeReport']['rawAttributes']);_0x32b7b6['query']=_['keys'](_0x48bc10[_0xd101('0x2f')]);_0x32b7b6[_0xd101('0x2e')]=_[_0xd101('0x31')](_0x32b7b6[_0xd101('0x2c')],_0x32b7b6[_0xd101('0x2f')]);_0x23974c[_0xd101('0x30')]=_[_0xd101('0x31')](_0x32b7b6[_0xd101('0x2c')],qs[_0xd101('0x32')](_0x48bc10['query'][_0xd101('0x32')]));_0x23974c[_0xd101('0x30')]=_0x23974c[_0xd101('0x30')]['length']?_0x23974c[_0xd101('0x30')]:_0x32b7b6['model'];if(_0x48bc10[_0xd101('0x2f')][_0xd101('0x44')]){_0x23974c['include']=[{'all':!![]}];}_0x23974c=_['merge']({},_0x23974c,_0x48bc10[_0xd101('0x3c')]);return db[_0xd101('0x3d')][_0xd101('0x45')](_0x23974c)[_0xd101('0x20')](handleEntityNotFound(_0x48b36c,null))['then'](respondWithResult(_0x48b36c,null))[_0xd101('0x41')](handleError(_0x48b36c,null));};exports[_0xd101('0x46')]=function(_0x4dc24f,_0x56d090){return db[_0xd101('0x3d')]['create'](_0x4dc24f[_0xd101('0x47')],{})[_0xd101('0x20')](respondWithResult(_0x56d090,0xc9))[_0xd101('0x41')](handleError(_0x56d090,null));};exports['update']=function(_0x2d9356,_0x57bfcb){if(_0x2d9356[_0xd101('0x47')]['id']){delete _0x2d9356[_0xd101('0x47')]['id'];}return db['AnalyticTreeReport']['find']({'where':{'id':_0x2d9356['params']['id']}})[_0xd101('0x20')](handleEntityNotFound(_0x57bfcb,null))['then'](saveUpdates(_0x2d9356['body'],null))['then'](respondWithResult(_0x57bfcb,null))['catch'](handleError(_0x57bfcb,null));};exports[_0xd101('0x21')]=function(_0x37f863,_0x425263){return db['AnalyticTreeReport'][_0xd101('0x45')]({'where':{'id':_0x37f863[_0xd101('0x43')]['id']}})[_0xd101('0x20')](handleEntityNotFound(_0x425263,null))['then'](removeEntity(_0x425263,null))[_0xd101('0x41')](handleError(_0x425263,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc6a2=['moment','bluebird','path','rimraf','../../config/environment','./analyticTreeReport.attributes','exports','AnalyticTreeReport','analytics_report_trees','lodash','util','../../config/logger','api'];(function(_0x465fcb,_0x1c405a){var _0x239569=function(_0x11e576){while(--_0x11e576){_0x465fcb['push'](_0x465fcb['shift']());}};_0x239569(++_0x1c405a);}(_0xc6a2,0x1b6));var _0x2c6a=function(_0x2b5fba,_0x5456b7){_0x2b5fba=_0x2b5fba-0x0;var _0x965f42=_0xc6a2[_0x2b5fba];return _0x965f42;};'use strict';var _=require(_0x2c6a('0x0'));var util=require(_0x2c6a('0x1'));var logger=require(_0x2c6a('0x2'))(_0x2c6a('0x3'));var moment=require(_0x2c6a('0x4'));var BPromise=require(_0x2c6a('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x2c6a('0x6'));var rimraf=require(_0x2c6a('0x7'));var config=require(_0x2c6a('0x8'));var attributes=require(_0x2c6a('0x9'));module[_0x2c6a('0xa')]=function(_0x38595f,_0x2c41fc){return _0x38595f['define'](_0x2c6a('0xb'),attributes,{'tableName':_0x2c6a('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x9447=['request-promise','path','../../config/environment','./analyticTreeReport.attributes','exports','analytics_report_trees','lodash','../../config/logger','api','moment','bluebird'];(function(_0x5c1726,_0x27281a){var _0x20f183=function(_0x4ce740){while(--_0x4ce740){_0x5c1726['push'](_0x5c1726['shift']());}};_0x20f183(++_0x27281a);}(_0x9447,0x124));var _0x7944=function(_0x7709d2,_0x363554){_0x7709d2=_0x7709d2-0x0;var _0xbffd2a=_0x9447[_0x7709d2];return _0xbffd2a;};'use strict';var _=require(_0x7944('0x0'));var util=require('util');var logger=require(_0x7944('0x1'))(_0x7944('0x2'));var moment=require(_0x7944('0x3'));var BPromise=require(_0x7944('0x4'));var rp=require(_0x7944('0x5'));var fs=require('fs');var path=require(_0x7944('0x6'));var rimraf=require('rimraf');var config=require(_0x7944('0x7'));var attributes=require(_0x7944('0x8'));module[_0x7944('0x9')]=function(_0x3dcfc6,_0x392091){return _0x3dcfc6['define']('AnalyticTreeReport',attributes,{'tableName':_0x7944('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2ef3=['bluebird','randomstring','ioredis','../../config/utils','../../config/logger','../../config/environment','jayson/promise','request','then','info','AnalyticTreeReport,\x20%s,\x20%s','AnalyticTreeReport,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','catch','lodash','util','moment'];(function(_0xb98d8d,_0x481423){var _0x489b15=function(_0x409a13){while(--_0x409a13){_0xb98d8d['push'](_0xb98d8d['shift']());}};_0x489b15(++_0x481423);}(_0x2ef3,0xba));var _0x32ef=function(_0x148b55,_0x30e493){_0x148b55=_0x148b55-0x0;var _0x2c6268=_0x2ef3[_0x148b55];return _0x2c6268;};'use strict';var _=require(_0x32ef('0x0'));var util=require(_0x32ef('0x1'));var moment=require(_0x32ef('0x2'));var BPromise=require(_0x32ef('0x3'));var rs=require(_0x32ef('0x4'));var fs=require('fs');var Redis=require(_0x32ef('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x32ef('0x6'));var logger=require(_0x32ef('0x7'))('rpc');var config=require(_0x32ef('0x8'));var jayson=require(_0x32ef('0x9'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x2c0089,_0x4bfcf8,_0x367c39){return new BPromise(function(_0x2fb8eb,_0x234863){return client[_0x32ef('0xa')](_0x2c0089,_0x367c39)[_0x32ef('0xb')](function(_0x2bbb50){logger[_0x32ef('0xc')](_0x32ef('0xd'),_0x4bfcf8,'request\x20sent');logger['debug'](_0x32ef('0xe'),_0x4bfcf8,_0x32ef('0xf'),JSON[_0x32ef('0x10')](_0x2bbb50));if(_0x2bbb50[_0x32ef('0x11')]){if(_0x2bbb50['error'][_0x32ef('0x12')]===0x1f4){logger['error'](_0x32ef('0xd'),_0x4bfcf8,_0x2bbb50['error'][_0x32ef('0x13')]);return _0x234863(_0x2bbb50[_0x32ef('0x11')]['message']);}logger['error'](_0x32ef('0xd'),_0x4bfcf8,_0x2bbb50['error'][_0x32ef('0x13')]);return _0x2fb8eb(_0x2bbb50[_0x32ef('0x11')][_0x32ef('0x13')]);}else{logger[_0x32ef('0xc')]('AnalyticTreeReport,\x20%s,\x20%s',_0x4bfcf8,'request\x20sent');_0x2fb8eb(_0x2bbb50['result'][_0x32ef('0x13')]);}})[_0x32ef('0x14')](function(_0xb5aed2){logger['error']('AnalyticTreeReport,\x20%s,\x20%s',_0x4bfcf8,_0xb5aed2);_0x234863(_0xb5aed2);});});}
\ No newline at end of file
+var _0x7a54=['info','AnalyticTreeReport,\x20%s,\x20%s','debug','stringify','error','code','message','request\x20sent','result','catch','lodash','util','moment','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http'];(function(_0x3b380d,_0x4bf247){var _0x54502b=function(_0x35d207){while(--_0x35d207){_0x3b380d['push'](_0x3b380d['shift']());}};_0x54502b(++_0x4bf247);}(_0x7a54,0x106));var _0x47a5=function(_0x3fc9b6,_0x31bfde){_0x3fc9b6=_0x3fc9b6-0x0;var _0x100112=_0x7a54[_0x3fc9b6];return _0x100112;};'use strict';var _=require(_0x47a5('0x0'));var util=require(_0x47a5('0x1'));var moment=require(_0x47a5('0x2'));var BPromise=require('bluebird');var rs=require(_0x47a5('0x3'));var fs=require('fs');var Redis=require(_0x47a5('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x47a5('0x5'));var logger=require(_0x47a5('0x6'))(_0x47a5('0x7'));var config=require(_0x47a5('0x8'));var jayson=require(_0x47a5('0x9'));var client=jayson['client'][_0x47a5('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x59199c,_0x343372,_0x30e405){return new BPromise(function(_0x506eda,_0x194fb0){return client['request'](_0x59199c,_0x30e405)['then'](function(_0x582352){logger[_0x47a5('0xb')](_0x47a5('0xc'),_0x343372,'request\x20sent');logger[_0x47a5('0xd')]('AnalyticTreeReport,\x20%s,\x20%s,\x20%s',_0x343372,'request\x20sent',JSON[_0x47a5('0xe')](_0x582352));if(_0x582352[_0x47a5('0xf')]){if(_0x582352[_0x47a5('0xf')][_0x47a5('0x10')]===0x1f4){logger[_0x47a5('0xf')](_0x47a5('0xc'),_0x343372,_0x582352[_0x47a5('0xf')]['message']);return _0x194fb0(_0x582352[_0x47a5('0xf')][_0x47a5('0x11')]);}logger[_0x47a5('0xf')](_0x47a5('0xc'),_0x343372,_0x582352[_0x47a5('0xf')][_0x47a5('0x11')]);return _0x506eda(_0x582352[_0x47a5('0xf')][_0x47a5('0x11')]);}else{logger['info'](_0x47a5('0xc'),_0x343372,_0x47a5('0x12'));_0x506eda(_0x582352[_0x47a5('0x13')][_0x47a5('0x11')]);}})[_0x47a5('0x14')](function(_0x574af6){logger['error'](_0x47a5('0xc'),_0x343372,_0x574af6);_0x194fb0(_0x574af6);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf086=['create','put','update','delete','destroy','exports','multer','util','path','connect-timeout','express','../../components/interaction/service','../../config/environment','./analyticTreeReport.controller','get','isAuthenticated','index','/:id','post'];(function(_0x47a9aa,_0x472ad2){var _0x1fd2ca=function(_0x31ef55){while(--_0x31ef55){_0x47a9aa['push'](_0x47a9aa['shift']());}};_0x1fd2ca(++_0x472ad2);}(_0xf086,0x123));var _0x6f08=function(_0x353753,_0x564a87){_0x353753=_0x353753-0x0;var _0x49713e=_0xf086[_0x353753];return _0x49713e;};'use strict';var multer=require(_0x6f08('0x0'));var util=require(_0x6f08('0x1'));var path=require(_0x6f08('0x2'));var timeout=require(_0x6f08('0x3'));var express=require(_0x6f08('0x4'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0x6f08('0x5'));var config=require(_0x6f08('0x6'));var controller=require(_0x6f08('0x7'));router[_0x6f08('0x8')]('/',auth[_0x6f08('0x9')](),controller[_0x6f08('0xa')]);router[_0x6f08('0x8')](_0x6f08('0xb'),auth['isAuthenticated'](),controller['show']);router[_0x6f08('0xc')]('/',auth[_0x6f08('0x9')](),controller[_0x6f08('0xd')]);router[_0x6f08('0xe')](_0x6f08('0xb'),auth[_0x6f08('0x9')](),controller[_0x6f08('0xf')]);router[_0x6f08('0x10')](_0x6f08('0xb'),auth[_0x6f08('0x9')](),controller[_0x6f08('0x11')]);module[_0x6f08('0x12')]=router;
\ No newline at end of file
+var _0x803d=['isAuthenticated','/:id','show','post','create','put','update','delete','destroy','exports','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./analyticTreeReport.controller','get'];(function(_0x245ae7,_0x3b8430){var _0x4c3234=function(_0x648f79){while(--_0x648f79){_0x245ae7['push'](_0x245ae7['shift']());}};_0x4c3234(++_0x3b8430);}(_0x803d,0x1e5));var _0xd803=function(_0x47b1df,_0x43056d){_0x47b1df=_0x47b1df-0x0;var _0x5ad49d=_0x803d[_0x47b1df];return _0x5ad49d;};'use strict';var multer=require('multer');var util=require('util');var path=require('path');var timeout=require(_0xd803('0x0'));var express=require(_0xd803('0x1'));var router=express[_0xd803('0x2')]();var fs_extra=require(_0xd803('0x3'));var auth=require(_0xd803('0x4'));var interaction=require(_0xd803('0x5'));var config=require(_0xd803('0x6'));var controller=require(_0xd803('0x7'));router[_0xd803('0x8')]('/',auth[_0xd803('0x9')](),controller['index']);router[_0xd803('0x8')](_0xd803('0xa'),auth[_0xd803('0x9')](),controller[_0xd803('0xb')]);router[_0xd803('0xc')]('/',auth[_0xd803('0x9')](),controller[_0xd803('0xd')]);router[_0xd803('0xe')](_0xd803('0xa'),auth[_0xd803('0x9')](),controller[_0xd803('0xf')]);router[_0xd803('0x10')]('/:id',auth[_0xd803('0x9')](),controller[_0xd803('0x11')]);module[_0xd803('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4bd1=['exports','STRING'];(function(_0x1928c9,_0x13a6d1){var _0x51b5fb=function(_0x24cf70){while(--_0x24cf70){_0x1928c9['push'](_0x1928c9['shift']());}};_0x51b5fb(++_0x13a6d1);}(_0x4bd1,0x90));var _0x14bd=function(_0x1780f8,_0x11ba93){_0x1780f8=_0x1780f8-0x0;var _0x33a410=_0x4bd1[_0x1780f8];return _0x33a410;};'use strict';var Sequelize=require('sequelize');module[_0x14bd('0x0')]={'name':{'type':Sequelize['STRING']},'basename':{'type':Sequelize[_0x14bd('0x1')]},'type':{'type':Sequelize[_0x14bd('0x1')]}};
\ No newline at end of file
+var _0x24a6=['STRING','sequelize'];(function(_0x59d89e,_0x55edf5){var _0x554e93=function(_0x3d40bc){while(--_0x3d40bc){_0x59d89e['push'](_0x59d89e['shift']());}};_0x554e93(++_0x55edf5);}(_0x24a6,0x14f));var _0x624a=function(_0x38d47a,_0x397e38){_0x38d47a=_0x38d47a-0x0;var _0x2f5a12=_0x24a6[_0x38d47a];return _0x2f5a12;};'use strict';var Sequelize=require(_0x624a('0x0'));module['exports']={'name':{'type':Sequelize[_0x624a('0x1')]},'basename':{'type':Sequelize[_0x624a('0x1')]},'type':{'type':Sequelize[_0x624a('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb3cc=['includeAll','include','rows','show','params','options','find','clone','get','omit','updatedAt','body','createdAt','catch','file','originalname','basename','filename','mimetype','create','download','findOne','ChatOfflineMessageId','server/files/attachments/','offline-chat/','join','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','then','destroy','stack','name','send','index','map','Attachment','rawAttributes','fieldName','type','key','model','keys','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','filters','pick','filter','VIRTUAL','merge'];(function(_0x1b66bb,_0x3a6255){var _0x29f4dc=function(_0x48eaae){while(--_0x48eaae){_0x1b66bb['push'](_0x1b66bb['shift']());}};_0x29f4dc(++_0x3a6255);}(_0xb3cc,0xd4));var _0xcb3c=function(_0x4d84c4,_0x5bf8cb){_0x4d84c4=_0x4d84c4-0x0;var _0x7c9625=_0xb3cc[_0x4d84c4];return _0x7c9625;};'use strict';var emlformat=require(_0xcb3c('0x0'));var rimraf=require(_0xcb3c('0x1'));var zipdir=require(_0xcb3c('0x2'));var jsonpatch=require(_0xcb3c('0x3'));var rp=require(_0xcb3c('0x4'));var moment=require(_0xcb3c('0x5'));var BPromise=require(_0xcb3c('0x6'));var Mustache=require(_0xcb3c('0x7'));var util=require(_0xcb3c('0x8'));var path=require(_0xcb3c('0x9'));var sox=require(_0xcb3c('0xa'));var csv=require(_0xcb3c('0xb'));var ejs=require(_0xcb3c('0xc'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require('squel');var crypto=require(_0xcb3c('0xd'));var jsforce=require('jsforce');var deskjs=require(_0xcb3c('0xe'));var toCsv=require(_0xcb3c('0xb'));var querystring=require(_0xcb3c('0xf'));var Papa=require(_0xcb3c('0x10'));var Redis=require(_0xcb3c('0x11'));var authService=require(_0xcb3c('0x12'));var qs=require(_0xcb3c('0x13'));var as=require(_0xcb3c('0x14'));var hardwareService=require(_0xcb3c('0x15'));var logger=require(_0xcb3c('0x16'))(_0xcb3c('0x17'));var utils=require('../../config/utils');var config=require(_0xcb3c('0x18'));var licenseUtil=require(_0xcb3c('0x19'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x4af250,_0x25499c){_0x25499c=_0x25499c||0xcc;return function(_0x6f8d41){if(_0x6f8d41){return _0x4af250[_0xcb3c('0x1a')](_0x25499c);}return _0x4af250[_0xcb3c('0x1b')](_0x25499c)[_0xcb3c('0x1c')]();};}function respondWithResult(_0x2713cb,_0xcecfe4){_0xcecfe4=_0xcecfe4||0xc8;return function(_0x296f26){if(_0x296f26){return _0x2713cb[_0xcb3c('0x1b')](_0xcecfe4)[_0xcb3c('0x1d')](_0x296f26);}};}function respondWithFilteredResult(_0x3b2d4f,_0x4941f5){return function(_0x100b84){if(_0x100b84){var _0x36c728=typeof _0x4941f5[_0xcb3c('0x1e')]===_0xcb3c('0x1f')&&typeof _0x4941f5[_0xcb3c('0x20')]===_0xcb3c('0x1f');var _0xc3a00a=_0x100b84['count'];var _0x2a4b1c=_0x36c728?0x0:_0x4941f5['offset'];var _0x1fb671=_0x36c728?_0x100b84[_0xcb3c('0x21')]:_0x4941f5[_0xcb3c('0x1e')]+_0x4941f5[_0xcb3c('0x20')];var _0x3e0096;if(_0x1fb671>=_0xc3a00a){_0x1fb671=_0xc3a00a;_0x3e0096=0xc8;}else{_0x3e0096=0xce;}_0x3b2d4f[_0xcb3c('0x1b')](_0x3e0096);return _0x3b2d4f[_0xcb3c('0x22')](_0xcb3c('0x23'),_0x2a4b1c+'-'+_0x1fb671+'/'+_0xc3a00a)['json'](_0x100b84);}return null;};}function patchUpdates(_0x37d8dc){return function(_0x28982e){try{jsonpatch[_0xcb3c('0x24')](_0x28982e,_0x37d8dc,!![]);}catch(_0xc08530){return BPromise[_0xcb3c('0x25')](_0xc08530);}return _0x28982e['save']();};}function saveUpdates(_0x5f33dd,_0x17bfba){return function(_0x5e11f2){if(_0x5e11f2){return _0x5e11f2[_0xcb3c('0x26')](_0x5f33dd)[_0xcb3c('0x27')](function(_0x5719b1){return _0x5719b1;});}return null;};}function removeEntity(_0x2a9733,_0x3d740e){return function(_0x2d3329){if(_0x2d3329){return _0x2d3329[_0xcb3c('0x28')]()['then'](function(){_0x2a9733[_0xcb3c('0x1b')](0xcc)[_0xcb3c('0x1c')]();});}};}function handleEntityNotFound(_0x35eafb,_0x36fb48){return function(_0x105ae3){if(!_0x105ae3){_0x35eafb[_0xcb3c('0x1a')](0x194);}return _0x105ae3;};}function handleError(_0x2cd7d0,_0x4b20fb){_0x4b20fb=_0x4b20fb||0x1f4;return function(_0x442764){logger['error'](_0x442764[_0xcb3c('0x29')]);if(_0x442764['name']){delete _0x442764[_0xcb3c('0x2a')];}_0x2cd7d0['status'](_0x4b20fb)[_0xcb3c('0x2b')](_0x442764);};}exports[_0xcb3c('0x2c')]=function(_0x1a4321,_0x8f31e1){var _0x296241={},_0xe0620c={},_0x21e146={'count':0x0,'rows':[]};var _0x323b1b=_[_0xcb3c('0x2d')](db[_0xcb3c('0x2e')][_0xcb3c('0x2f')],function(_0x1c197e){return{'name':_0x1c197e[_0xcb3c('0x30')],'type':_0x1c197e[_0xcb3c('0x31')][_0xcb3c('0x32')]};});_0xe0620c[_0xcb3c('0x33')]=_[_0xcb3c('0x2d')](_0x323b1b,_0xcb3c('0x2a'));_0xe0620c['query']=_[_0xcb3c('0x34')](_0x1a4321[_0xcb3c('0x35')]);_0xe0620c['filters']=_[_0xcb3c('0x36')](_0xe0620c[_0xcb3c('0x33')],_0xe0620c['query']);_0x296241[_0xcb3c('0x37')]=_[_0xcb3c('0x36')](_0xe0620c[_0xcb3c('0x33')],qs[_0xcb3c('0x38')](_0x1a4321['query'][_0xcb3c('0x38')]));_0x296241[_0xcb3c('0x37')]=_0x296241[_0xcb3c('0x37')][_0xcb3c('0x39')]?_0x296241[_0xcb3c('0x37')]:_0xe0620c[_0xcb3c('0x33')];if(!_0x1a4321['query'][_0xcb3c('0x3a')](_0xcb3c('0x3b'))){_0x296241[_0xcb3c('0x20')]=qs[_0xcb3c('0x20')](_0x1a4321[_0xcb3c('0x35')][_0xcb3c('0x20')]);_0x296241[_0xcb3c('0x1e')]=qs[_0xcb3c('0x1e')](_0x1a4321[_0xcb3c('0x35')][_0xcb3c('0x1e')]);}_0x296241['order']=qs[_0xcb3c('0x3c')](_0x1a4321[_0xcb3c('0x35')][_0xcb3c('0x3c')]);_0x296241[_0xcb3c('0x3d')]=qs[_0xcb3c('0x3e')](_[_0xcb3c('0x3f')](_0x1a4321[_0xcb3c('0x35')],_0xe0620c['filters']),_0x323b1b);if(_0x1a4321[_0xcb3c('0x35')][_0xcb3c('0x40')]){_0x296241[_0xcb3c('0x3d')]=_['merge'](_0x296241[_0xcb3c('0x3d')],{'$or':_['map'](_0x323b1b,function(_0x5ad731){if(_0x5ad731[_0xcb3c('0x31')]!==_0xcb3c('0x41')){var _0x5d0703={};_0x5d0703[_0x5ad731['name']]={'$like':'%'+_0x1a4321['query']['filter']+'%'};return _0x5d0703;}})});}_0x296241=_[_0xcb3c('0x42')]({},_0x296241,_0x1a4321['options']);var _0x5f5a2c={'where':_0x296241[_0xcb3c('0x3d')]};return db[_0xcb3c('0x2e')]['count'](_0x5f5a2c)[_0xcb3c('0x27')](function(_0x1cc2c0){_0x21e146[_0xcb3c('0x21')]=_0x1cc2c0;if(_0x1a4321['query'][_0xcb3c('0x43')]){_0x296241[_0xcb3c('0x44')]=[{'all':!![]}];}return db[_0xcb3c('0x2e')]['findAll'](_0x296241);})[_0xcb3c('0x27')](function(_0x5909c8){_0x21e146[_0xcb3c('0x45')]=_0x5909c8;return _0x21e146;})[_0xcb3c('0x27')](respondWithFilteredResult(_0x8f31e1,_0x296241))['catch'](handleError(_0x8f31e1,null));};exports[_0xcb3c('0x46')]=function(_0x13f1d3,_0x2e8579){var _0x31c00a={'raw':!![],'where':{'id':_0x13f1d3[_0xcb3c('0x47')]['id']}},_0x3f9bc6={};_0x3f9bc6['model']=_['keys'](db['Attachment'][_0xcb3c('0x2f')]);_0x3f9bc6[_0xcb3c('0x35')]=_[_0xcb3c('0x34')](_0x13f1d3[_0xcb3c('0x35')]);_0x3f9bc6[_0xcb3c('0x3e')]=_[_0xcb3c('0x36')](_0x3f9bc6[_0xcb3c('0x33')],_0x3f9bc6['query']);_0x31c00a[_0xcb3c('0x37')]=_[_0xcb3c('0x36')](_0x3f9bc6[_0xcb3c('0x33')],qs['fields'](_0x13f1d3['query'][_0xcb3c('0x38')]));_0x31c00a[_0xcb3c('0x37')]=_0x31c00a[_0xcb3c('0x37')][_0xcb3c('0x39')]?_0x31c00a['attributes']:_0x3f9bc6['model'];if(_0x13f1d3[_0xcb3c('0x35')]['includeAll']){_0x31c00a[_0xcb3c('0x44')]=[{'all':!![]}];}_0x31c00a=_['merge']({},_0x31c00a,_0x13f1d3[_0xcb3c('0x48')]);return db['Attachment'][_0xcb3c('0x49')](_0x31c00a)[_0xcb3c('0x27')](handleEntityNotFound(_0x2e8579,null))[_0xcb3c('0x27')](respondWithResult(_0x2e8579,null))['catch'](handleError(_0x2e8579,null));};exports[_0xcb3c('0x4a')]=function(_0x3d60e5,_0xc04a2a){var _0x1ccf72={'where':{'id':_0x3d60e5[_0xcb3c('0x47')]['id']}},_0x32bb43={};_0x32bb43[_0xcb3c('0x33')]=_[_0xcb3c('0x34')](db['Attachment']['rawAttributes']);_0x1ccf72[_0xcb3c('0x37')]=_[_0xcb3c('0x36')](_0x32bb43[_0xcb3c('0x33')],qs[_0xcb3c('0x38')](_0x3d60e5[_0xcb3c('0x35')][_0xcb3c('0x38')]));_0x1ccf72[_0xcb3c('0x37')]=_0x1ccf72[_0xcb3c('0x37')][_0xcb3c('0x39')]?_0x1ccf72[_0xcb3c('0x37')]:_0x32bb43[_0xcb3c('0x33')];if(_0x3d60e5[_0xcb3c('0x35')][_0xcb3c('0x43')]){_0x1ccf72[_0xcb3c('0x44')]=[{'all':!![]}];}_0x1ccf72=_['merge']({},_0x1ccf72,_0x3d60e5[_0xcb3c('0x48')]);return db[_0xcb3c('0x2e')]['find'](_0x1ccf72)['then'](handleEntityNotFound(_0xc04a2a,null))[_0xcb3c('0x27')](function(_0x50e2a3){if(_0x50e2a3){var _0xdab4ab=_0x50e2a3[_0xcb3c('0x4b')]({'plain':!![]});_0xdab4ab=qs[_0xcb3c('0x4c')](_0xdab4ab,['id','createdAt',_0xcb3c('0x4d')]);_0x3d60e5[_0xcb3c('0x4e')]=_[_0xcb3c('0x4c')](_0x3d60e5[_0xcb3c('0x4e')],['id',_0xcb3c('0x4f'),_0xcb3c('0x4d')]);return db[_0xcb3c('0x2e')]['create'](_[_0xcb3c('0x42')](_0xdab4ab,_0x3d60e5['body']),{'include':_0x3d60e5['query'][_0xcb3c('0x43')]?[{'all':!![]}]:undefined});}})[_0xcb3c('0x27')](respondWithResult(_0xc04a2a,0xc9))[_0xcb3c('0x50')](handleError(_0xc04a2a,null));};exports['update']=function(_0x298451,_0x4c4bb0){if(_0x298451[_0xcb3c('0x4e')]['id']){delete _0x298451[_0xcb3c('0x4e')]['id'];}return db[_0xcb3c('0x2e')][_0xcb3c('0x49')]({'where':{'id':_0x298451[_0xcb3c('0x47')]['id']}})[_0xcb3c('0x27')](handleEntityNotFound(_0x4c4bb0,null))[_0xcb3c('0x27')](saveUpdates(_0x298451[_0xcb3c('0x4e')],null))[_0xcb3c('0x27')](respondWithResult(_0x4c4bb0,null))['catch'](handleError(_0x4c4bb0,null));};exports[_0xcb3c('0x28')]=function(_0x2ce1b2,_0x1258c5){return db['Attachment'][_0xcb3c('0x49')]({'where':{'id':_0x2ce1b2[_0xcb3c('0x47')]['id']}})[_0xcb3c('0x27')](handleEntityNotFound(_0x1258c5,null))[_0xcb3c('0x27')](removeEntity(_0x1258c5,null))['catch'](handleError(_0x1258c5,null));};exports['create']=function(_0x24d5e2,_0x354b8f,_0x4ed6a8){_0x24d5e2[_0xcb3c('0x4e')][_0xcb3c('0x2a')]=_0x24d5e2[_0xcb3c('0x51')][_0xcb3c('0x52')];_0x24d5e2[_0xcb3c('0x4e')][_0xcb3c('0x53')]=_0x24d5e2[_0xcb3c('0x51')][_0xcb3c('0x54')];_0x24d5e2[_0xcb3c('0x4e')]['type']=_0x24d5e2['file'][_0xcb3c('0x55')];return db['Attachment'][_0xcb3c('0x56')](_0x24d5e2[_0xcb3c('0x4e')])[_0xcb3c('0x27')](respondWithResult(_0x354b8f,0xc9))[_0xcb3c('0x50')](handleError(_0x354b8f,null));};exports[_0xcb3c('0x57')]=function(_0x1e9166,_0x57de39,_0x25a2f4){return db['Attachment'][_0xcb3c('0x58')]({'where':{'id':_0x1e9166[_0xcb3c('0x47')]['id']},'raw':!![]})['then'](handleEntityNotFound(_0x57de39,null))[_0xcb3c('0x27')](function(_0x5e3ba4){if(_0x5e3ba4){var _0x250c0e=_0x5e3ba4[_0xcb3c('0x59')]!==null;var _0x514de8=path['join'](config['root'],_0xcb3c('0x5a'));if(_0x250c0e){_0x514de8=path['join'](_0x514de8,_0xcb3c('0x5b'));}var _0x8a905a=path[_0xcb3c('0x5c')](_0x514de8,_0x5e3ba4[_0xcb3c('0x53')]);return _0x57de39[_0xcb3c('0x57')](_0x8a905a);}})[_0xcb3c('0x50')](handleError(_0x57de39,null));};
\ No newline at end of file
+var _0x7822=['send','index','map','Attachment','rawAttributes','fieldName','type','key','model','query','attributes','intersection','fields','length','hasOwnProperty','nolimit','sort','where','pick','filters','merge','VIRTUAL','filter','options','includeAll','include','catch','params','keys','find','get','updatedAt','body','omit','create','file','originalname','basename','filename','mimetype','download','findOne','root','join','offline-chat/','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','json','offset','undefined','count','limit','status','set','reject','save','update','then','destroy','error','stack','name'];(function(_0x4aa62a,_0x14f87f){var _0x44dd9c=function(_0x3eecbf){while(--_0x3eecbf){_0x4aa62a['push'](_0x4aa62a['shift']());}};_0x44dd9c(++_0x14f87f);}(_0x7822,0x18d));var _0x2782=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x7822[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x2782('0x0'));var jsonpatch=require(_0x2782('0x1'));var rp=require(_0x2782('0x2'));var moment=require(_0x2782('0x3'));var BPromise=require(_0x2782('0x4'));var Mustache=require(_0x2782('0x5'));var util=require('util');var path=require(_0x2782('0x6'));var sox=require(_0x2782('0x7'));var csv=require(_0x2782('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x2782('0x9'));var _=require(_0x2782('0xa'));var squel=require(_0x2782('0xb'));var crypto=require(_0x2782('0xc'));var jsforce=require(_0x2782('0xd'));var deskjs=require(_0x2782('0xe'));var toCsv=require('to-csv');var querystring=require(_0x2782('0xf'));var Papa=require(_0x2782('0x10'));var Redis=require(_0x2782('0x11'));var authService=require(_0x2782('0x12'));var qs=require(_0x2782('0x13'));var as=require(_0x2782('0x14'));var hardwareService=require(_0x2782('0x15'));var logger=require('../../config/logger')(_0x2782('0x16'));var utils=require('../../config/utils');var config=require(_0x2782('0x17'));var licenseUtil=require(_0x2782('0x18'));var db=require(_0x2782('0x19'))['db'];function respondWithStatusCode(_0x22491b,_0x5782f9){_0x5782f9=_0x5782f9||0xcc;return function(_0x3822fd){if(_0x3822fd){return _0x22491b[_0x2782('0x1a')](_0x5782f9);}return _0x22491b['status'](_0x5782f9)[_0x2782('0x1b')]();};}function respondWithResult(_0x477329,_0x66dbfd){_0x66dbfd=_0x66dbfd||0xc8;return function(_0x3431c5){if(_0x3431c5){return _0x477329['status'](_0x66dbfd)[_0x2782('0x1c')](_0x3431c5);}};}function respondWithFilteredResult(_0x27e98b,_0x80b16b){return function(_0x24ff78){if(_0x24ff78){var _0x554733=typeof _0x80b16b[_0x2782('0x1d')]===_0x2782('0x1e')&&typeof _0x80b16b['limit']==='undefined';var _0x214810=_0x24ff78['count'];var _0x31c9be=_0x554733?0x0:_0x80b16b[_0x2782('0x1d')];var _0x5f10ac=_0x554733?_0x24ff78[_0x2782('0x1f')]:_0x80b16b[_0x2782('0x1d')]+_0x80b16b[_0x2782('0x20')];var _0x2b36a8;if(_0x5f10ac>=_0x214810){_0x5f10ac=_0x214810;_0x2b36a8=0xc8;}else{_0x2b36a8=0xce;}_0x27e98b[_0x2782('0x21')](_0x2b36a8);return _0x27e98b[_0x2782('0x22')]('Content-Range',_0x31c9be+'-'+_0x5f10ac+'/'+_0x214810)[_0x2782('0x1c')](_0x24ff78);}return null;};}function patchUpdates(_0x636241){return function(_0xd6d81e){try{jsonpatch['apply'](_0xd6d81e,_0x636241,!![]);}catch(_0x48e10d){return BPromise[_0x2782('0x23')](_0x48e10d);}return _0xd6d81e[_0x2782('0x24')]();};}function saveUpdates(_0x3a5d5b,_0x39b24e){return function(_0x26359a){if(_0x26359a){return _0x26359a[_0x2782('0x25')](_0x3a5d5b)[_0x2782('0x26')](function(_0x13e1ba){return _0x13e1ba;});}return null;};}function removeEntity(_0x514976,_0x2d4acc){return function(_0x839d2e){if(_0x839d2e){return _0x839d2e[_0x2782('0x27')]()['then'](function(){_0x514976[_0x2782('0x21')](0xcc)['end']();});}};}function handleEntityNotFound(_0x523602,_0x46777a){return function(_0x11483e){if(!_0x11483e){_0x523602[_0x2782('0x1a')](0x194);}return _0x11483e;};}function handleError(_0x12d61e,_0xf88062){_0xf88062=_0xf88062||0x1f4;return function(_0x5cbc45){logger[_0x2782('0x28')](_0x5cbc45[_0x2782('0x29')]);if(_0x5cbc45[_0x2782('0x2a')]){delete _0x5cbc45['name'];}_0x12d61e['status'](_0xf88062)[_0x2782('0x2b')](_0x5cbc45);};}exports[_0x2782('0x2c')]=function(_0x3d52a5,_0x533cc0){var _0x19a853={},_0x12cc0e={},_0xfb9479={'count':0x0,'rows':[]};var _0x12a2c1=_[_0x2782('0x2d')](db[_0x2782('0x2e')][_0x2782('0x2f')],function(_0x138fec){return{'name':_0x138fec[_0x2782('0x30')],'type':_0x138fec[_0x2782('0x31')][_0x2782('0x32')]};});_0x12cc0e[_0x2782('0x33')]=_['map'](_0x12a2c1,_0x2782('0x2a'));_0x12cc0e['query']=_['keys'](_0x3d52a5[_0x2782('0x34')]);_0x12cc0e['filters']=_['intersection'](_0x12cc0e['model'],_0x12cc0e[_0x2782('0x34')]);_0x19a853[_0x2782('0x35')]=_[_0x2782('0x36')](_0x12cc0e[_0x2782('0x33')],qs[_0x2782('0x37')](_0x3d52a5[_0x2782('0x34')][_0x2782('0x37')]));_0x19a853['attributes']=_0x19a853[_0x2782('0x35')][_0x2782('0x38')]?_0x19a853[_0x2782('0x35')]:_0x12cc0e[_0x2782('0x33')];if(!_0x3d52a5['query'][_0x2782('0x39')](_0x2782('0x3a'))){_0x19a853[_0x2782('0x20')]=qs[_0x2782('0x20')](_0x3d52a5[_0x2782('0x34')]['limit']);_0x19a853[_0x2782('0x1d')]=qs[_0x2782('0x1d')](_0x3d52a5[_0x2782('0x34')][_0x2782('0x1d')]);}_0x19a853['order']=qs[_0x2782('0x3b')](_0x3d52a5['query'][_0x2782('0x3b')]);_0x19a853[_0x2782('0x3c')]=qs['filters'](_[_0x2782('0x3d')](_0x3d52a5[_0x2782('0x34')],_0x12cc0e[_0x2782('0x3e')]),_0x12a2c1);if(_0x3d52a5[_0x2782('0x34')]['filter']){_0x19a853[_0x2782('0x3c')]=_[_0x2782('0x3f')](_0x19a853[_0x2782('0x3c')],{'$or':_[_0x2782('0x2d')](_0x12a2c1,function(_0x59a7d6){if(_0x59a7d6[_0x2782('0x31')]!==_0x2782('0x40')){var _0x5f1225={};_0x5f1225[_0x59a7d6[_0x2782('0x2a')]]={'$like':'%'+_0x3d52a5[_0x2782('0x34')][_0x2782('0x41')]+'%'};return _0x5f1225;}})});}_0x19a853=_['merge']({},_0x19a853,_0x3d52a5[_0x2782('0x42')]);var _0x239da0={'where':_0x19a853[_0x2782('0x3c')]};return db['Attachment'][_0x2782('0x1f')](_0x239da0)[_0x2782('0x26')](function(_0x571726){_0xfb9479['count']=_0x571726;if(_0x3d52a5[_0x2782('0x34')][_0x2782('0x43')]){_0x19a853[_0x2782('0x44')]=[{'all':!![]}];}return db['Attachment']['findAll'](_0x19a853);})['then'](function(_0x23decf){_0xfb9479['rows']=_0x23decf;return _0xfb9479;})[_0x2782('0x26')](respondWithFilteredResult(_0x533cc0,_0x19a853))[_0x2782('0x45')](handleError(_0x533cc0,null));};exports['show']=function(_0x35bc4d,_0x1c9cd4){var _0xb93326={'raw':!![],'where':{'id':_0x35bc4d[_0x2782('0x46')]['id']}},_0x4e19a3={};_0x4e19a3[_0x2782('0x33')]=_[_0x2782('0x47')](db[_0x2782('0x2e')]['rawAttributes']);_0x4e19a3['query']=_[_0x2782('0x47')](_0x35bc4d[_0x2782('0x34')]);_0x4e19a3['filters']=_[_0x2782('0x36')](_0x4e19a3[_0x2782('0x33')],_0x4e19a3[_0x2782('0x34')]);_0xb93326['attributes']=_[_0x2782('0x36')](_0x4e19a3[_0x2782('0x33')],qs['fields'](_0x35bc4d['query'][_0x2782('0x37')]));_0xb93326[_0x2782('0x35')]=_0xb93326['attributes'][_0x2782('0x38')]?_0xb93326[_0x2782('0x35')]:_0x4e19a3[_0x2782('0x33')];if(_0x35bc4d[_0x2782('0x34')][_0x2782('0x43')]){_0xb93326['include']=[{'all':!![]}];}_0xb93326=_[_0x2782('0x3f')]({},_0xb93326,_0x35bc4d[_0x2782('0x42')]);return db['Attachment'][_0x2782('0x48')](_0xb93326)[_0x2782('0x26')](handleEntityNotFound(_0x1c9cd4,null))[_0x2782('0x26')](respondWithResult(_0x1c9cd4,null))[_0x2782('0x45')](handleError(_0x1c9cd4,null));};exports['clone']=function(_0x2819ba,_0x17e20a){var _0x329000={'where':{'id':_0x2819ba[_0x2782('0x46')]['id']}},_0x232701={};_0x232701['model']=_[_0x2782('0x47')](db['Attachment'][_0x2782('0x2f')]);_0x329000['attributes']=_[_0x2782('0x36')](_0x232701[_0x2782('0x33')],qs[_0x2782('0x37')](_0x2819ba[_0x2782('0x34')][_0x2782('0x37')]));_0x329000[_0x2782('0x35')]=_0x329000['attributes'][_0x2782('0x38')]?_0x329000[_0x2782('0x35')]:_0x232701[_0x2782('0x33')];if(_0x2819ba[_0x2782('0x34')][_0x2782('0x43')]){_0x329000['include']=[{'all':!![]}];}_0x329000=_[_0x2782('0x3f')]({},_0x329000,_0x2819ba[_0x2782('0x42')]);return db[_0x2782('0x2e')][_0x2782('0x48')](_0x329000)[_0x2782('0x26')](handleEntityNotFound(_0x17e20a,null))['then'](function(_0x331e9f){if(_0x331e9f){var _0x45cf92=_0x331e9f[_0x2782('0x49')]({'plain':!![]});_0x45cf92=qs['omit'](_0x45cf92,['id','createdAt',_0x2782('0x4a')]);_0x2819ba[_0x2782('0x4b')]=_[_0x2782('0x4c')](_0x2819ba[_0x2782('0x4b')],['id','createdAt',_0x2782('0x4a')]);return db['Attachment'][_0x2782('0x4d')](_['merge'](_0x45cf92,_0x2819ba[_0x2782('0x4b')]),{'include':_0x2819ba[_0x2782('0x34')]['includeAll']?[{'all':!![]}]:undefined});}})[_0x2782('0x26')](respondWithResult(_0x17e20a,0xc9))[_0x2782('0x45')](handleError(_0x17e20a,null));};exports[_0x2782('0x25')]=function(_0x50f372,_0x40305b){if(_0x50f372[_0x2782('0x4b')]['id']){delete _0x50f372[_0x2782('0x4b')]['id'];}return db[_0x2782('0x2e')]['find']({'where':{'id':_0x50f372[_0x2782('0x46')]['id']}})[_0x2782('0x26')](handleEntityNotFound(_0x40305b,null))[_0x2782('0x26')](saveUpdates(_0x50f372[_0x2782('0x4b')],null))['then'](respondWithResult(_0x40305b,null))['catch'](handleError(_0x40305b,null));};exports[_0x2782('0x27')]=function(_0x54f793,_0x1de246){return db[_0x2782('0x2e')][_0x2782('0x48')]({'where':{'id':_0x54f793[_0x2782('0x46')]['id']}})['then'](handleEntityNotFound(_0x1de246,null))['then'](removeEntity(_0x1de246,null))['catch'](handleError(_0x1de246,null));};exports[_0x2782('0x4d')]=function(_0x500d9f,_0x50ed73,_0xef907c){_0x500d9f['body'][_0x2782('0x2a')]=_0x500d9f[_0x2782('0x4e')][_0x2782('0x4f')];_0x500d9f[_0x2782('0x4b')][_0x2782('0x50')]=_0x500d9f['file'][_0x2782('0x51')];_0x500d9f['body'][_0x2782('0x31')]=_0x500d9f[_0x2782('0x4e')][_0x2782('0x52')];return db[_0x2782('0x2e')][_0x2782('0x4d')](_0x500d9f[_0x2782('0x4b')])[_0x2782('0x26')](respondWithResult(_0x50ed73,0xc9))[_0x2782('0x45')](handleError(_0x50ed73,null));};exports[_0x2782('0x53')]=function(_0xe081fc,_0x436fb2,_0x1aaa40){return db[_0x2782('0x2e')][_0x2782('0x54')]({'where':{'id':_0xe081fc[_0x2782('0x46')]['id']},'raw':!![]})[_0x2782('0x26')](handleEntityNotFound(_0x436fb2,null))[_0x2782('0x26')](function(_0x1140e2){if(_0x1140e2){var _0x36e409=_0x1140e2['ChatOfflineMessageId']!==null;var _0x4b6e50=path['join'](config[_0x2782('0x55')],'server/files/attachments/');if(_0x36e409){_0x4b6e50=path[_0x2782('0x56')](_0x4b6e50,_0x2782('0x57'));}var _0x59238e=path[_0x2782('0x56')](_0x4b6e50,_0x1140e2[_0x2782('0x50')]);return _0x436fb2['download'](_0x59238e);}})[_0x2782('0x45')](handleError(_0x436fb2,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5ecc=['attachments','lodash','util','moment','request-promise','path','../../config/environment','exports','define'];(function(_0x234d2b,_0x5528ad){var _0x480713=function(_0x121fd6){while(--_0x121fd6){_0x234d2b['push'](_0x234d2b['shift']());}};_0x480713(++_0x5528ad);}(_0x5ecc,0xac));var _0xc5ec=function(_0xf81b9a,_0x536bf6){_0xf81b9a=_0xf81b9a-0x0;var _0x2105a4=_0x5ecc[_0xf81b9a];return _0x2105a4;};'use strict';var _=require(_0xc5ec('0x0'));var util=require(_0xc5ec('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0xc5ec('0x2'));var BPromise=require('bluebird');var rp=require(_0xc5ec('0x3'));var fs=require('fs');var path=require(_0xc5ec('0x4'));var rimraf=require('rimraf');var config=require(_0xc5ec('0x5'));var attributes=require('./attachment.attributes');module[_0xc5ec('0x6')]=function(_0x1d3141,_0x50d608){return _0x1d3141[_0xc5ec('0x7')]('Attachment',attributes,{'tableName':_0xc5ec('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x1e41=['Attachment','attachments','lodash','../../config/logger','api','request-promise','path','rimraf','../../config/environment','./attachment.attributes','define'];(function(_0x48935f,_0x534032){var _0xc8e4c6=function(_0x5737b7){while(--_0x5737b7){_0x48935f['push'](_0x48935f['shift']());}};_0xc8e4c6(++_0x534032);}(_0x1e41,0x14c));var _0x11e4=function(_0x17d9e3,_0x1f969c){_0x17d9e3=_0x17d9e3-0x0;var _0x14192d=_0x1e41[_0x17d9e3];return _0x14192d;};'use strict';var _=require(_0x11e4('0x0'));var util=require('util');var logger=require(_0x11e4('0x1'))(_0x11e4('0x2'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0x11e4('0x3'));var fs=require('fs');var path=require(_0x11e4('0x4'));var rimraf=require(_0x11e4('0x5'));var config=require(_0x11e4('0x6'));var attributes=require(_0x11e4('0x7'));module['exports']=function(_0x1efe2,_0x39b95a){return _0x1efe2[_0x11e4('0x8')](_0x11e4('0x9'),attributes,{'tableName':_0x11e4('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x407f=['rpc','../../config/environment','jayson/promise','client','http','then','info','Attachment,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','catch','CreateAttachment','Attachment','create','body','options','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger'];(function(_0x55ca91,_0x51e64b){var _0x306fdc=function(_0x23e238){while(--_0x23e238){_0x55ca91['push'](_0x55ca91['shift']());}};_0x306fdc(++_0x51e64b);}(_0x407f,0xc2));var _0xf407=function(_0x38805d,_0x214109){_0x38805d=_0x38805d-0x0;var _0x1e52b9=_0x407f[_0x38805d];return _0x1e52b9;};'use strict';var _=require('lodash');var util=require('util');var moment=require('moment');var BPromise=require(_0xf407('0x0'));var rs=require(_0xf407('0x1'));var fs=require('fs');var Redis=require(_0xf407('0x2'));var db=require(_0xf407('0x3'))['db'];var utils=require(_0xf407('0x4'));var logger=require(_0xf407('0x5'))(_0xf407('0x6'));var config=require(_0xf407('0x7'));var jayson=require(_0xf407('0x8'));var client=jayson[_0xf407('0x9')][_0xf407('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x2bce9d,_0x2d4ec6,_0x3ac774){return new BPromise(function(_0x38ee37,_0x3ab539){return client['request'](_0x2bce9d,_0x3ac774)[_0xf407('0xb')](function(_0xc3473a){logger[_0xf407('0xc')](_0xf407('0xd'),_0x2d4ec6,'request\x20sent');logger['debug']('Attachment,\x20%s,\x20%s,\x20%s',_0x2d4ec6,_0xf407('0xe'),JSON[_0xf407('0xf')](_0xc3473a));if(_0xc3473a[_0xf407('0x10')]){if(_0xc3473a[_0xf407('0x10')][_0xf407('0x11')]===0x1f4){logger['error'](_0xf407('0xd'),_0x2d4ec6,_0xc3473a[_0xf407('0x10')][_0xf407('0x12')]);return _0x3ab539(_0xc3473a[_0xf407('0x10')][_0xf407('0x12')]);}logger[_0xf407('0x10')](_0xf407('0xd'),_0x2d4ec6,_0xc3473a[_0xf407('0x10')]['message']);return _0x38ee37(_0xc3473a['error'][_0xf407('0x12')]);}else{logger['info'](_0xf407('0xd'),_0x2d4ec6,'request\x20sent');_0x38ee37(_0xc3473a['result'][_0xf407('0x12')]);}})[_0xf407('0x13')](function(_0x1cdc81){logger[_0xf407('0x10')](_0xf407('0xd'),_0x2d4ec6,_0x1cdc81);_0x3ab539(_0x1cdc81);});});}exports[_0xf407('0x14')]=function(_0x4ddbe6){var _0x2e346f=this;return new Promise(function(_0x588fe4,_0x128faf){return db[_0xf407('0x15')][_0xf407('0x16')](_0x4ddbe6[_0xf407('0x17')],{'raw':_0x4ddbe6[_0xf407('0x18')]?_0x4ddbe6[_0xf407('0x18')]['raw']===undefined?!![]:![]:!![]})[_0xf407('0xb')](function(_0x39febd){logger[_0xf407('0xc')](_0xf407('0x14'),_0x4ddbe6);logger['debug'](_0xf407('0x14'),_0x4ddbe6,JSON[_0xf407('0xf')](_0x39febd));_0x588fe4(_0x39febd);})[_0xf407('0x13')](function(_0xa6f11e){logger['error']('CreateAttachment',_0xa6f11e[_0xf407('0x12')],_0x4ddbe6);_0x128faf(_0x2e346f[_0xf407('0x10')](0x1f4,_0xa6f11e[_0xf407('0x12')]));});});};
\ No newline at end of file
+var _0x26c2=['http','request','then','Attachment,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','info','result','catch','Attachment','body','options','raw','CreateAttachment','debug','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','jayson/promise','client'];(function(_0x307d86,_0x9264f2){var _0x361745=function(_0x1b64e1){while(--_0x1b64e1){_0x307d86['push'](_0x307d86['shift']());}};_0x361745(++_0x9264f2);}(_0x26c2,0x130));var _0x226c=function(_0x1ebd58,_0x22c071){_0x1ebd58=_0x1ebd58-0x0;var _0x1b811b=_0x26c2[_0x1ebd58];return _0x1b811b;};'use strict';var _=require('lodash');var util=require('util');var moment=require('moment');var BPromise=require(_0x226c('0x0'));var rs=require(_0x226c('0x1'));var fs=require('fs');var Redis=require(_0x226c('0x2'));var db=require(_0x226c('0x3'))['db'];var utils=require('../../config/utils');var logger=require(_0x226c('0x4'))(_0x226c('0x5'));var config=require('../../config/environment');var jayson=require(_0x226c('0x6'));var client=jayson[_0x226c('0x7')][_0x226c('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x3c4e5d,_0x4306c9,_0x59804e){return new BPromise(function(_0x34cbc3,_0x461773){return client[_0x226c('0x9')](_0x3c4e5d,_0x59804e)[_0x226c('0xa')](function(_0x127f10){logger['info'](_0x226c('0xb'),_0x4306c9,_0x226c('0xc'));logger['debug']('Attachment,\x20%s,\x20%s,\x20%s',_0x4306c9,_0x226c('0xc'),JSON[_0x226c('0xd')](_0x127f10));if(_0x127f10[_0x226c('0xe')]){if(_0x127f10[_0x226c('0xe')][_0x226c('0xf')]===0x1f4){logger[_0x226c('0xe')](_0x226c('0xb'),_0x4306c9,_0x127f10['error']['message']);return _0x461773(_0x127f10[_0x226c('0xe')][_0x226c('0x10')]);}logger[_0x226c('0xe')](_0x226c('0xb'),_0x4306c9,_0x127f10['error']['message']);return _0x34cbc3(_0x127f10[_0x226c('0xe')][_0x226c('0x10')]);}else{logger[_0x226c('0x11')]('Attachment,\x20%s,\x20%s',_0x4306c9,'request\x20sent');_0x34cbc3(_0x127f10[_0x226c('0x12')][_0x226c('0x10')]);}})[_0x226c('0x13')](function(_0x45a804){logger[_0x226c('0xe')]('Attachment,\x20%s,\x20%s',_0x4306c9,_0x45a804);_0x461773(_0x45a804);});});}exports['CreateAttachment']=function(_0x5989e0){var _0x36fa74=this;return new Promise(function(_0x813b69,_0x37ee58){return db[_0x226c('0x14')]['create'](_0x5989e0[_0x226c('0x15')],{'raw':_0x5989e0[_0x226c('0x16')]?_0x5989e0[_0x226c('0x16')][_0x226c('0x17')]===undefined?!![]:![]:!![]})[_0x226c('0xa')](function(_0x3d412a){logger['info'](_0x226c('0x18'),_0x5989e0);logger[_0x226c('0x19')](_0x226c('0x18'),_0x5989e0,JSON[_0x226c('0xd')](_0x3d412a));_0x813b69(_0x3d412a);})[_0x226c('0x13')](function(_0x57eb9f){logger['error']('CreateAttachment',_0x57eb9f[_0x226c('0x10')],_0x5989e0);_0x37ee58(_0x36fa74[_0x226c('0xe')](0x1f4,_0x57eb9f['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5f2f=['show','/:id/download','download','post','/:id/clone','clone','root','server/files/attachments/','format','now','originalname','replace','single','create','put','update','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','./attachment.controller','get','isAuthenticated','index','/:id'];(function(_0x35384c,_0x1f79fc){var _0xee86ec=function(_0x1b9a6d){while(--_0x1b9a6d){_0x35384c['push'](_0x35384c['shift']());}};_0xee86ec(++_0x1f79fc);}(_0x5f2f,0x73));var _0xf5f2=function(_0x8d5de,_0xa8cddf){_0x8d5de=_0x8d5de-0x0;var _0xda7f39=_0x5f2f[_0x8d5de];return _0xda7f39;};'use strict';var multer=require(_0xf5f2('0x0'));var util=require(_0xf5f2('0x1'));var path=require(_0xf5f2('0x2'));var timeout=require(_0xf5f2('0x3'));var express=require(_0xf5f2('0x4'));var router=express[_0xf5f2('0x5')]();var fs_extra=require(_0xf5f2('0x6'));var auth=require(_0xf5f2('0x7'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0xf5f2('0x8'));router[_0xf5f2('0x9')]('/',auth[_0xf5f2('0xa')](),controller[_0xf5f2('0xb')]);router[_0xf5f2('0x9')](_0xf5f2('0xc'),auth['isAuthenticated'](),controller[_0xf5f2('0xd')]);router[_0xf5f2('0x9')](_0xf5f2('0xe'),auth['isAuthenticated'](),controller[_0xf5f2('0xf')]);router[_0xf5f2('0x10')](_0xf5f2('0x11'),auth['isAuthenticated'](),controller[_0xf5f2('0x12')]);var upload=multer({'storage':multer['diskStorage']({'destination':function(_0x53fb33,_0xa7e1a6,_0x151aba){_0x151aba(null,path['join'](config[_0xf5f2('0x13')],_0xf5f2('0x14')));},'filename':function(_0x331482,_0x3f2997,_0x59bb6c){_0x59bb6c(null,util[_0xf5f2('0x15')]('%s-%s',Date[_0xf5f2('0x16')](),_0x3f2997[_0xf5f2('0x17')][_0xf5f2('0x18')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-')));}})});router[_0xf5f2('0x10')]('/',upload[_0xf5f2('0x19')]('file'),controller[_0xf5f2('0x1a')]);router[_0xf5f2('0x1b')](_0xf5f2('0xc'),auth[_0xf5f2('0xa')](),controller[_0xf5f2('0x1c')]);router[_0xf5f2('0x1d')](_0xf5f2('0xc'),auth[_0xf5f2('0xa')](),controller[_0xf5f2('0x1e')]);module[_0xf5f2('0x1f')]=router;
\ No newline at end of file
+var _0x0b0e=['/:id/clone','clone','diskStorage','join','server/files/attachments/','format','now','originalname','replace','single','create','/:id','delete','destroy','multer','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./attachment.controller','get','isAuthenticated','index','show','/:id/download','post'];(function(_0x38ced4,_0x24263f){var _0x547c07=function(_0x279fc4){while(--_0x279fc4){_0x38ced4['push'](_0x38ced4['shift']());}};_0x547c07(++_0x24263f);}(_0x0b0e,0x187));var _0xe0b0=function(_0x4334af,_0x21e066){_0x4334af=_0x4334af-0x0;var _0xec5be0=_0x0b0e[_0x4334af];return _0xec5be0;};'use strict';var multer=require(_0xe0b0('0x0'));var util=require('util');var path=require(_0xe0b0('0x1'));var timeout=require('connect-timeout');var express=require(_0xe0b0('0x2'));var router=express[_0xe0b0('0x3')]();var fs_extra=require(_0xe0b0('0x4'));var auth=require(_0xe0b0('0x5'));var interaction=require(_0xe0b0('0x6'));var config=require(_0xe0b0('0x7'));var controller=require(_0xe0b0('0x8'));router[_0xe0b0('0x9')]('/',auth[_0xe0b0('0xa')](),controller[_0xe0b0('0xb')]);router[_0xe0b0('0x9')]('/:id',auth['isAuthenticated'](),controller[_0xe0b0('0xc')]);router[_0xe0b0('0x9')](_0xe0b0('0xd'),auth[_0xe0b0('0xa')](),controller['download']);router[_0xe0b0('0xe')](_0xe0b0('0xf'),auth['isAuthenticated'](),controller[_0xe0b0('0x10')]);var upload=multer({'storage':multer[_0xe0b0('0x11')]({'destination':function(_0x574d96,_0x399320,_0x2cdad2){_0x2cdad2(null,path[_0xe0b0('0x12')](config['root'],_0xe0b0('0x13')));},'filename':function(_0x1c358a,_0x3cc19a,_0x45f914){_0x45f914(null,util[_0xe0b0('0x14')]('%s-%s',Date[_0xe0b0('0x15')](),_0x3cc19a[_0xe0b0('0x16')][_0xe0b0('0x17')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-')));}})});router[_0xe0b0('0xe')]('/',upload[_0xe0b0('0x18')]('file'),controller[_0xe0b0('0x19')]);router['put'](_0xe0b0('0x1a'),auth[_0xe0b0('0xa')](),controller['update']);router[_0xe0b0('0x1b')]('/:id',auth[_0xe0b0('0xa')](),controller[_0xe0b0('0x1c')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8f27=['blockDuration','blockedAt','add','minutes','Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.','clearBlockUser','getLicense','catch','passport','passport-google-oauth20','moment','../../config/environment','../../components/auth/service','signToken','../../config/utils','login','authenticate','/login','profile','email','google','use','secret','callbackURL','Setting','findOne','allowedLoginAttempts','User','find','map','emails','value','admin','user','agent','then'];(function(_0xdc718,_0x191398){var _0x45afd0=function(_0x53578d){while(--_0x53578d){_0xdc718['push'](_0xdc718['shift']());}};_0x45afd0(++_0x191398);}(_0x8f27,0x128));var _0x78f2=function(_0xfd9b19,_0x21d75f){_0xfd9b19=_0xfd9b19-0x0;var _0x514918=_0x8f27[_0xfd9b19];return _0x514918;};'use strict';var _=require('lodash');var passport=require(_0x78f2('0x0'));var GoogleStrategy=require(_0x78f2('0x1'))['Strategy'];var moment=require(_0x78f2('0x2'));var db=require('../../mysqldb')['db'];var config=require(_0x78f2('0x3'));var signToken=require(_0x78f2('0x4'))[_0x78f2('0x5')];var utils=require(_0x78f2('0x6'));exports[_0x78f2('0x7')]=passport[_0x78f2('0x8')]('google',{'failureRedirect':_0x78f2('0x9'),'scope':[_0x78f2('0xa'),_0x78f2('0xb')],'session':![]});exports['callback']=passport[_0x78f2('0x8')](_0x78f2('0xc'),{'failureRedirect':_0x78f2('0x9'),'session':![]});passport[_0x78f2('0xd')](new GoogleStrategy({'clientID':config[_0x78f2('0xc')]?config['google']['clientID']:'id','clientSecret':config[_0x78f2('0xc')]?config['google']['clientSecret']:_0x78f2('0xe'),'callbackURL':config[_0x78f2('0xc')]?config[_0x78f2('0xc')][_0x78f2('0xf')]:''},function(_0x120bc0,_0x3916a0,_0x2c8eab,_0x540723){var _0x10110f,_0x57f699;return db[_0x78f2('0x10')][_0x78f2('0x11')]({'where':{'id':0x1},'attributes':[_0x78f2('0x12'),'blockDuration'],'raw':!![]})['then'](function(_0x12e069){_0x10110f=_0x12e069;return db[_0x78f2('0x13')][_0x78f2('0x14')]({'where':{'email':_[_0x78f2('0x15')](_0x2c8eab[_0x78f2('0x16')],_0x78f2('0x17')),'role':{'$or':[_0x78f2('0x18'),_0x78f2('0x19'),_0x78f2('0x1a')]}}});})[_0x78f2('0x1b')](function(_0x1118f8){_0x57f699=_0x1118f8;if(_0x57f699){if(_0x57f699['disabled']){return _0x540723('Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.');}else if(_0x10110f[_0x78f2('0x1c')]>0x0){if(_0x57f699['blocked']){if(moment(_0x57f699[_0x78f2('0x1d')])[_0x78f2('0x1e')](_0x10110f['blockDuration'],_0x78f2('0x1f'))>moment()){return _0x540723(_0x78f2('0x20'));}else{return utils[_0x78f2('0x21')](_0x57f699,0x0,![],null)[_0x78f2('0x1b')](function(){return utils[_0x78f2('0x22')](_0x57f699);})[_0x78f2('0x1b')](function(){return _0x540723(null,_0x57f699);});}}else{return utils[_0x78f2('0x22')](_0x57f699)[_0x78f2('0x1b')](function(){return _0x540723(null,_0x57f699);});}}else{return utils[_0x78f2('0x22')](_0x57f699)[_0x78f2('0x1b')](function(){return _0x540723(null,_0x57f699);});}}return _0x540723(_0x78f2('0x20'));})[_0x78f2('0x23')](function(_0x3b787f){_0x540723(_0x3b787f);});}));
\ No newline at end of file
+var _0x8cea=['blockedAt','getLicense','catch','lodash','passport','passport-google-oauth20','Strategy','../../mysqldb','../../config/environment','../../components/auth/service','signToken','../../config/utils','login','google','/login','profile','email','callback','clientID','secret','callbackURL','allowedLoginAttempts','blockDuration','then','User','find','emails','user','disabled','Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.','blocked'];(function(_0x23563c,_0xc2f3c5){var _0xeddf50=function(_0x4d530c){while(--_0x4d530c){_0x23563c['push'](_0x23563c['shift']());}};_0xeddf50(++_0xc2f3c5);}(_0x8cea,0x139));var _0xa8ce=function(_0x2e6dbf,_0x57dd06){_0x2e6dbf=_0x2e6dbf-0x0;var _0x2680e5=_0x8cea[_0x2e6dbf];return _0x2680e5;};'use strict';var _=require(_0xa8ce('0x0'));var passport=require(_0xa8ce('0x1'));var GoogleStrategy=require(_0xa8ce('0x2'))[_0xa8ce('0x3')];var moment=require('moment');var db=require(_0xa8ce('0x4'))['db'];var config=require(_0xa8ce('0x5'));var signToken=require(_0xa8ce('0x6'))[_0xa8ce('0x7')];var utils=require(_0xa8ce('0x8'));exports[_0xa8ce('0x9')]=passport['authenticate'](_0xa8ce('0xa'),{'failureRedirect':_0xa8ce('0xb'),'scope':[_0xa8ce('0xc'),_0xa8ce('0xd')],'session':![]});exports[_0xa8ce('0xe')]=passport['authenticate'](_0xa8ce('0xa'),{'failureRedirect':_0xa8ce('0xb'),'session':![]});passport['use'](new GoogleStrategy({'clientID':config[_0xa8ce('0xa')]?config[_0xa8ce('0xa')][_0xa8ce('0xf')]:'id','clientSecret':config['google']?config[_0xa8ce('0xa')]['clientSecret']:_0xa8ce('0x10'),'callbackURL':config[_0xa8ce('0xa')]?config['google'][_0xa8ce('0x11')]:''},function(_0x1067bd,_0x193074,_0x35289f,_0xc4d80b){var _0x21422d,_0x1e02a8;return db['Setting']['findOne']({'where':{'id':0x1},'attributes':[_0xa8ce('0x12'),_0xa8ce('0x13')],'raw':!![]})[_0xa8ce('0x14')](function(_0x14ea27){_0x21422d=_0x14ea27;return db[_0xa8ce('0x15')][_0xa8ce('0x16')]({'where':{'email':_['map'](_0x35289f[_0xa8ce('0x17')],'value'),'role':{'$or':['admin',_0xa8ce('0x18'),'agent']}}});})['then'](function(_0x37b3d6){_0x1e02a8=_0x37b3d6;if(_0x1e02a8){if(_0x1e02a8[_0xa8ce('0x19')]){return _0xc4d80b(_0xa8ce('0x1a'));}else if(_0x21422d[_0xa8ce('0x13')]>0x0){if(_0x1e02a8[_0xa8ce('0x1b')]){if(moment(_0x1e02a8[_0xa8ce('0x1c')])['add'](_0x21422d[_0xa8ce('0x13')],'minutes')>moment()){return _0xc4d80b(_0xa8ce('0x1a'));}else{return utils['clearBlockUser'](_0x1e02a8,0x0,![],null)[_0xa8ce('0x14')](function(){return utils[_0xa8ce('0x1d')](_0x1e02a8);})[_0xa8ce('0x14')](function(){return _0xc4d80b(null,_0x1e02a8);});}}else{return utils[_0xa8ce('0x1d')](_0x1e02a8)[_0xa8ce('0x14')](function(){return _0xc4d80b(null,_0x1e02a8);});}}else{return utils[_0xa8ce('0x1d')](_0x1e02a8)[_0xa8ce('0x14')](function(){return _0xc4d80b(null,_0x1e02a8);});}}return _0xc4d80b(_0xa8ce('0x1a'));})[_0xa8ce('0x1e')](function(_0x5b64ab){_0xc4d80b(_0x5b64ab);});}));
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x78c2=['callback','isMiddleware','express','passport','Router','./authGoogle.controller','../user/user.controller.js','get','/callback'];(function(_0x199572,_0x33e667){var _0x13cfa3=function(_0x53c075){while(--_0x53c075){_0x199572['push'](_0x199572['shift']());}};_0x13cfa3(++_0x33e667);}(_0x78c2,0xad));var _0x278c=function(_0x2699ab,_0x1122fb){_0x2699ab=_0x2699ab-0x0;var _0x4ddb8a=_0x78c2[_0x2699ab];return _0x4ddb8a;};'use strict';var express=require(_0x278c('0x0'));var passport=require(_0x278c('0x1'));var router=express[_0x278c('0x2')]();var controller=require(_0x278c('0x3'));var userController=require(_0x278c('0x4'));var authService=require('../../components/auth/service');router[_0x278c('0x5')]('/',controller['login']);router[_0x278c('0x5')](_0x278c('0x6'),controller[_0x278c('0x7')],authService[_0x278c('0x8')],userController['login'],authService['setTokenCookie']);module['exports']=router;
\ No newline at end of file
+var _0x4685=['../user/user.controller.js','get','login','/callback','callback','setTokenCookie','exports','express','passport','Router','./authGoogle.controller'];(function(_0x349180,_0x511875){var _0x4f3384=function(_0x5a6164){while(--_0x5a6164){_0x349180['push'](_0x349180['shift']());}};_0x4f3384(++_0x511875);}(_0x4685,0x6a));var _0x5468=function(_0x129ceb,_0x4d54f5){_0x129ceb=_0x129ceb-0x0;var _0x4b4002=_0x4685[_0x129ceb];return _0x4b4002;};'use strict';var express=require(_0x5468('0x0'));var passport=require(_0x5468('0x1'));var router=express[_0x5468('0x2')]();var controller=require(_0x5468('0x3'));var userController=require(_0x5468('0x4'));var authService=require('../../components/auth/service');router[_0x5468('0x5')]('/',controller[_0x5468('0x6')]);router['get'](_0x5468('0x7'),controller[_0x5468('0x8')],authService['isMiddleware'],userController[_0x5468('0x6')],authService[_0x5468('0x9')]);module[_0x5468('0xa')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5fbd=['error','message','stringify','status','login','local','Something\x20went\x20wrong,\x20please\x20try\x20again.','signToken','json','forgot','body','Email\x20parameter\x20is\x20missing','generate','User','The\x20user\x20is\x20disabled.\x20Please\x20contact\x20the\x20administrator.','resetPasswordExpires','save','xCally\x20Motion\x20Password\x20Reset','You\x20are\x20receiving\x20this\x20because\x20you\x20(or\x20someone\x20else)\x20have\x20requested\x20the\x20reset\x20of\x20the\x20password\x20for\x20your\x20account.\x0a\x0a','Please\x20click\x20on\x20the\x20following\x20link,\x20or\x20paste\x20this\x20into\x20your\x20browser\x20to\x20complete\x20the\x20process:\x0a\x0a','/reset/','If\x20you\x20did\x20not\x20request\x20this,\x20please\x20ignore\x20this\x20email\x20and\x20your\x20password\x20will\x20remain\x20unchanged.\x0a','send','Reset\x20Email\x20sent!','reset','token','now','Password\x20reset\x20token\x20is\x20invalid\x20or\x20has\x20expired.','securePassword','enforcePasswordHistory','validatePasswordPattern','previousPasswords','passwordHistoryLimit','Password\x20reset!','use','util','passport-local','jayson/promise','randomstring','moment','../../mysqldb','../../components/auth/service','../../config/utils','client','http','Setting','findOne','allowedLoginAttempts','blockDuration','name','password','salt','role','disabled','blocked','blockedAt','loginAttempts','user','agent','then','Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.','authenticate','add','clearBlockUser','minutes','getLicense','catch','MailAccount','find','email','MailServerOut','service','Smtp','host','port','secure','authentication','auth','format','\x22%s\x22\x20<%s>','request','SendMail'];(function(_0x594306,_0x33b62d){var _0x3b10b5=function(_0x563c75){while(--_0x563c75){_0x594306['push'](_0x594306['shift']());}};_0x3b10b5(++_0x33b62d);}(_0x5fbd,0x1bd));var _0xd5fb=function(_0x26a172,_0x34e660){_0x26a172=_0x26a172-0x0;var _0x450517=_0x5fbd[_0x26a172];return _0x450517;};'use strict';var util=require(_0xd5fb('0x0'));var passport=require('passport');var LocalStrategy=require(_0xd5fb('0x1'))['Strategy'];var jayson=require(_0xd5fb('0x2'));var _=require('lodash');var rs=require(_0xd5fb('0x3'));var moment=require(_0xd5fb('0x4'));var db=require(_0xd5fb('0x5'))['db'];var authService=require(_0xd5fb('0x6'));var utils=require(_0xd5fb('0x7'));var client=jayson[_0xd5fb('0x8')][_0xd5fb('0x9')]({'port':0x232b});function localAuthenticate(_0x4f08bc,_0x277133,_0x50f3bc,_0x24d7d8){var _0x78d132,_0x1d1f2e;return db[_0xd5fb('0xa')][_0xd5fb('0xb')]({'where':{'id':0x1},'attributes':[_0xd5fb('0xc'),_0xd5fb('0xd')],'raw':!![]})['then'](function(_0x5140fe){_0x78d132=_0x5140fe;return _0x4f08bc[_0xd5fb('0xb')]({'attributes':['id',_0xd5fb('0xe'),_0xd5fb('0xf'),_0xd5fb('0x10'),_0xd5fb('0x11'),_0xd5fb('0x12'),_0xd5fb('0x13'),_0xd5fb('0x14'),_0xd5fb('0x15')],'where':{'name':_0x277133,'role':{'$or':['admin',_0xd5fb('0x16'),_0xd5fb('0x17')]}}});})[_0xd5fb('0x18')](function(_0x3484b7){if(!_0x3484b7||_0x3484b7&&_0x3484b7[_0xd5fb('0xe')]!==_0x277133){throw new Error(_0xd5fb('0x19'));}else{_0x1d1f2e=_0x3484b7;return _0x1d1f2e;}})[_0xd5fb('0x18')](function(){_0x1d1f2e[_0xd5fb('0x1a')](_0x50f3bc,function(_0x39d084,_0x22a73c){var _0x226058=_0x1d1f2e[_0xd5fb('0x15')]+0x1;if(_0x39d084){return _0x24d7d8(_0x39d084);}else if(!_0x22a73c){if(_0x1d1f2e[_0xd5fb('0x12')]){return _0x24d7d8(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}else if(_0x78d132[_0xd5fb('0xc')]>0x0){if(_0x1d1f2e['blocked']){if(_0x78d132[_0xd5fb('0xd')]>0x0){if(moment(_0x1d1f2e[_0xd5fb('0x14')])[_0xd5fb('0x1b')](_0x78d132[_0xd5fb('0xd')],'minutes')>moment()){return _0x24d7d8(null,![],{'message':_0xd5fb('0x19')});}else{return utils['clearBlockUser'](_0x1d1f2e,_0x226058,![],null)['then'](function(){return _0x24d7d8(null,![],{'message':_0xd5fb('0x19')});});}}else{return _0x24d7d8(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}}else{if(_0x226058>=_0x78d132[_0xd5fb('0xc')]){return utils[_0xd5fb('0x1c')](_0x1d1f2e,0x0,!![],moment())[_0xd5fb('0x18')](function(){return _0x24d7d8(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});});}else{return utils[_0xd5fb('0x1c')](_0x1d1f2e,_0x226058,![],null)[_0xd5fb('0x18')](function(){return _0x24d7d8(null,![],{'message':_0xd5fb('0x19')});});}}}else{return _0x24d7d8(null,![],{'message':_0xd5fb('0x19')});}}else{if(_0x1d1f2e[_0xd5fb('0x12')]){return _0x24d7d8(null,![],{'message':_0xd5fb('0x19')});}else if(_0x78d132['allowedLoginAttempts']>0x0){if(_0x1d1f2e[_0xd5fb('0x13')]){if(_0x78d132[_0xd5fb('0xd')]>0x0){if(moment(_0x1d1f2e[_0xd5fb('0x14')])[_0xd5fb('0x1b')](_0x78d132[_0xd5fb('0xd')],_0xd5fb('0x1d'))>moment()){return _0x24d7d8(null,![],{'message':_0xd5fb('0x19')});}else{return utils[_0xd5fb('0x1c')](_0x1d1f2e,0x0,![],null)[_0xd5fb('0x18')](function(){return utils[_0xd5fb('0x1e')](_0x1d1f2e);})[_0xd5fb('0x18')](function(){return _0x24d7d8(null,_0x1d1f2e);});}}else{return _0x24d7d8(null,![],{'message':_0xd5fb('0x19')});}}else{return utils['clearBlockUser'](_0x1d1f2e,0x0,![],null)['then'](function(){return utils['getLicense'](_0x1d1f2e);})['then'](function(){return _0x24d7d8(null,_0x1d1f2e);})['catch'](function(_0x10645b){return _0x24d7d8(null,![],_0x10645b);});}}else{if(_0x1d1f2e[_0xd5fb('0x13')]){return _0x24d7d8(null,![],{'message':_0xd5fb('0x19')});}else{return utils['getLicense'](_0x1d1f2e)[_0xd5fb('0x18')](function(){return _0x24d7d8(null,_0x1d1f2e);});}}}});})[_0xd5fb('0x1f')](function(_0x3857ae){return _0x24d7d8(null,![],_0x3857ae);});}function sendServiceMail(_0x70d99d){return db[_0xd5fb('0x20')][_0xd5fb('0x21')]({'where':{'service':!![]},'attributes':['id',_0xd5fb('0xe'),_0xd5fb('0x22')],'include':[{'model':db[_0xd5fb('0x23')],'as':'Smtp'}]})['then'](function(_0x41db19){if(!_0x41db19){throw new Error('Unable\x20to\x20find\x20a\x20configured\x20SMTP\x20service!');}var _0x286bb7={'tls':{'rejectUnauthorized':![]}};if(_0x41db19['Smtp'][_0xd5fb('0x24')]){_0x286bb7[_0xd5fb('0x24')]=_0x41db19[_0xd5fb('0x25')][_0xd5fb('0x24')];}else{_0x286bb7[_0xd5fb('0x26')]=_0x41db19[_0xd5fb('0x25')][_0xd5fb('0x26')];_0x286bb7['port']=_0x41db19[_0xd5fb('0x25')][_0xd5fb('0x27')];_0x286bb7['secure']=_0x41db19[_0xd5fb('0x25')][_0xd5fb('0x28')];}if(_0x41db19[_0xd5fb('0x25')][_0xd5fb('0x29')]){_0x286bb7[_0xd5fb('0x2a')]={'user':_0x41db19[_0xd5fb('0x25')][_0xd5fb('0x16')],'pass':_0x41db19[_0xd5fb('0x25')]['pass']};}var _0x169de7={'account':_0x286bb7,'message':_['merge']({'from':util[_0xd5fb('0x2b')](_0xd5fb('0x2c'),_0x41db19[_0xd5fb('0xe')],_0x41db19[_0xd5fb('0x22')]||_0x41db19[_0xd5fb('0x25')][_0xd5fb('0x16')])},_0x70d99d)};return client[_0xd5fb('0x2d')](_0xd5fb('0x2e'),_0x169de7);})[_0xd5fb('0x18')](function(_0x30d469){if(_0x30d469['error']){throw new Error(util[_0xd5fb('0x2b')]('SendMail\x20error:\x20%s.\x20Please\x20contact\x20your\x20Administrator!',_0x30d469[_0xd5fb('0x2f')][_0xd5fb('0x30')]||JSON[_0xd5fb('0x31')](_0x30d469['error'])));}return!![];});}function handleError(_0x33718e,_0xe15323,_0x5b3b70){return _0x33718e[_0xd5fb('0x32')](_0xe15323||0x1f4)['send']({'message':_0x5b3b70?_0x5b3b70[_0xd5fb('0x30')]||_0x5b3b70:''});}exports[_0xd5fb('0x33')]=function(_0x32e9b9,_0xe3d56a,_0x484f44){passport[_0xd5fb('0x1a')](_0xd5fb('0x34'),function(_0x381cc4,_0x51bc2a,_0x208f62){var _0x22fa94=_0x381cc4||_0x208f62;if(_0x22fa94){return handleError(_0xe3d56a,0x191,_0x22fa94);}if(!_0x51bc2a){return handleError(_0xe3d56a,0x194,{'message':_0xd5fb('0x35')});}else{var _0x1a0e2b={'payload':{'id':_0x51bc2a['id'],'role':_0x51bc2a[_0xd5fb('0x11')]},'options':{'expiresIn':0x15180}};return authService[_0xd5fb('0x36')](_0x1a0e2b)[_0xd5fb('0x18')](function(_0x343994){_0xe3d56a[_0xd5fb('0x37')]({'id':_0x51bc2a['id'],'token':_0x343994,'statusCall':'','isAlreadyLogged':_0x51bc2a['online']});});}})(_0x32e9b9,_0xe3d56a,_0x484f44);};exports[_0xd5fb('0x38')]=function(_0x41675f,_0x4ef769,_0x45b54d){if(!_0x41675f[_0xd5fb('0x39')][_0xd5fb('0x22')]){return handleError(_0x4ef769,0x1f4,{'message':_0xd5fb('0x3a')});}var _0x5e5f1e=rs[_0xd5fb('0x3b')]();_0x41675f[_0xd5fb('0x39')][_0xd5fb('0x22')]=_0x41675f[_0xd5fb('0x39')][_0xd5fb('0x22')]['trim']()['toLowerCase']();var _0x1e6344;return db['Setting'][_0xd5fb('0xb')]({'where':{'id':0x1},'attributes':[_0xd5fb('0xc'),_0xd5fb('0xd')],'raw':!![]})[_0xd5fb('0x18')](function(_0xa6fd64){_0x1e6344=_0xa6fd64;return db[_0xd5fb('0x3c')][_0xd5fb('0x21')]({'where':{'email':_0x41675f['body'][_0xd5fb('0x22')]}});})[_0xd5fb('0x18')](function(_0x24605e){if(!_0x24605e){throw new Error('This\x20email\x20is\x20not\x20registered.');}if(_0x24605e['disabled']){throw new Error(_0xd5fb('0x3d'));}if(_0x24605e[_0xd5fb('0x13')]){if(moment(_0x24605e[_0xd5fb('0x14')])['add'](_0x1e6344[_0xd5fb('0xd')],_0xd5fb('0x1d'))>moment()){throw new Error('The\x20user\x20is\x20blocked.\x20Please\x20contact\x20the\x20administrator.');}else{_0x24605e[_0xd5fb('0x13')]=![];_0x24605e[_0xd5fb('0x14')]=null;}}_0x24605e['resetPasswordToken']=_0x5e5f1e;_0x24605e[_0xd5fb('0x3e')]=Date['now']()+0x36ee80;return _0x24605e[_0xd5fb('0x3f')]();})['then'](function(){return sendServiceMail({'to':_0x41675f[_0xd5fb('0x39')][_0xd5fb('0x22')],'subject':_0xd5fb('0x40'),'text':_0xd5fb('0x41')+_0xd5fb('0x42')+'https://'+_0x41675f['headers'][_0xd5fb('0x26')]+_0xd5fb('0x43')+_0x5e5f1e+'\x0a\x0a'+_0xd5fb('0x44')});})[_0xd5fb('0x18')](function(){_0x4ef769[_0xd5fb('0x32')](0xc8)[_0xd5fb('0x45')]({'message':_0xd5fb('0x46')});})[_0xd5fb('0x1f')](function(_0x1984d7){return handleError(_0x4ef769,0x1f4,_0x1984d7);});};exports[_0xd5fb('0x47')]=function(_0x16bade,_0x4b7e63,_0x265a59){return db[_0xd5fb('0x3c')][_0xd5fb('0x21')]({'where':{'resetPasswordToken':_0x16bade['params'][_0xd5fb('0x48')],'resetPasswordExpires':{'$gt':Date[_0xd5fb('0x49')]()}}})[_0xd5fb('0x18')](function(_0x5152cd){if(!_0x5152cd){throw new Error(_0xd5fb('0x4a'));}return db[_0xd5fb('0xa')][_0xd5fb('0xb')]({'attributes':['id',_0xd5fb('0x4b'),_0xd5fb('0x4c'),'passwordHistoryLimit']})[_0xd5fb('0x18')](function(_0x374d14){if(_0x374d14['securePassword'])authService[_0xd5fb('0x4d')](_0x16bade[_0xd5fb('0x39')][_0xd5fb('0xf')]);if(!_0x374d14[_0xd5fb('0x4c')]||!_0x5152cd[_0xd5fb('0x4e')])return _0x5152cd;authService['validatePasswordHistory'](_0x16bade[_0xd5fb('0x39')][_0xd5fb('0xf')],_0x5152cd[_0xd5fb('0x4e')],_0x374d14[_0xd5fb('0x4f')]);return _0x5152cd;})['then'](function(){_0x5152cd[_0xd5fb('0xf')]=_0x16bade[_0xd5fb('0x39')][_0xd5fb('0xf')];_0x5152cd['resetPasswordToken']=null;_0x5152cd[_0xd5fb('0x3e')]=null;return _0x5152cd['save']();});})['then'](function(){_0x4b7e63[_0xd5fb('0x32')](0xc8)[_0xd5fb('0x45')]({'message':_0xd5fb('0x50')});})[_0xd5fb('0x1f')](function(_0x78a5b){return handleError(_0x4b7e63,0x1f4,_0x78a5b);});};passport[_0xd5fb('0x51')](new LocalStrategy({'usernameField':'name','passwordField':_0xd5fb('0xf')},function(_0x210bad,_0x26e8ef,_0x9f550d){return localAuthenticate(db['User'],_0x210bad,_0x26e8ef,_0x9f550d);}));
\ No newline at end of file
+var _0xd691=['Smtp','Unable\x20to\x20find\x20a\x20configured\x20SMTP\x20service!','service','host','port','secure','auth','pass','\x22%s\x22\x20<%s>','user','request','SendMail','error','format','SendMail\x20error:\x20%s.\x20Please\x20contact\x20your\x20Administrator!','message','stringify','status','send','login','local','Something\x20went\x20wrong,\x20please\x20try\x20again.','signToken','json','online','forgot','body','generate','trim','toLowerCase','User','This\x20email\x20is\x20not\x20registered.','The\x20user\x20is\x20disabled.\x20Please\x20contact\x20the\x20administrator.','resetPasswordToken','resetPasswordExpires','now','save','xCally\x20Motion\x20Password\x20Reset','You\x20are\x20receiving\x20this\x20because\x20you\x20(or\x20someone\x20else)\x20have\x20requested\x20the\x20reset\x20of\x20the\x20password\x20for\x20your\x20account.\x0a\x0a','Please\x20click\x20on\x20the\x20following\x20link,\x20or\x20paste\x20this\x20into\x20your\x20browser\x20to\x20complete\x20the\x20process:\x0a\x0a','If\x20you\x20did\x20not\x20request\x20this,\x20please\x20ignore\x20this\x20email\x20and\x20your\x20password\x20will\x20remain\x20unchanged.\x0a','Reset\x20Email\x20sent!','reset','params','token','Password\x20reset\x20token\x20is\x20invalid\x20or\x20has\x20expired.','passwordHistoryLimit','securePassword','validatePasswordHistory','Password\x20reset!','passport','passport-local','Strategy','moment','../../mysqldb','../../components/auth/service','../../config/utils','client','Setting','findOne','allowedLoginAttempts','blockDuration','then','name','password','salt','role','disabled','blocked','blockedAt','loginAttempts','admin','agent','Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.','authenticate','add','clearBlockUser','minutes','getLicense','catch','MailAccount','find','email','MailServerOut'];(function(_0x54b0f3,_0x1fe2f7){var _0x5ae957=function(_0x2749eb){while(--_0x2749eb){_0x54b0f3['push'](_0x54b0f3['shift']());}};_0x5ae957(++_0x1fe2f7);}(_0xd691,0x182));var _0x1d69=function(_0x50af79,_0x26774e){_0x50af79=_0x50af79-0x0;var _0xebf22a=_0xd691[_0x50af79];return _0xebf22a;};'use strict';var util=require('util');var passport=require(_0x1d69('0x0'));var LocalStrategy=require(_0x1d69('0x1'))[_0x1d69('0x2')];var jayson=require('jayson/promise');var _=require('lodash');var rs=require('randomstring');var moment=require(_0x1d69('0x3'));var db=require(_0x1d69('0x4'))['db'];var authService=require(_0x1d69('0x5'));var utils=require(_0x1d69('0x6'));var client=jayson[_0x1d69('0x7')]['http']({'port':0x232b});function localAuthenticate(_0x464ac5,_0x481091,_0xa19511,_0x466cbd){var _0x5a95fe,_0x539b6c;return db[_0x1d69('0x8')][_0x1d69('0x9')]({'where':{'id':0x1},'attributes':[_0x1d69('0xa'),_0x1d69('0xb')],'raw':!![]})[_0x1d69('0xc')](function(_0x5a4ef2){_0x5a95fe=_0x5a4ef2;return _0x464ac5[_0x1d69('0x9')]({'attributes':['id',_0x1d69('0xd'),_0x1d69('0xe'),_0x1d69('0xf'),_0x1d69('0x10'),_0x1d69('0x11'),_0x1d69('0x12'),_0x1d69('0x13'),_0x1d69('0x14')],'where':{'name':_0x481091,'role':{'$or':[_0x1d69('0x15'),'user',_0x1d69('0x16')]}}});})[_0x1d69('0xc')](function(_0x57e884){if(!_0x57e884||_0x57e884&&_0x57e884['name']!==_0x481091){throw new Error(_0x1d69('0x17'));}else{_0x539b6c=_0x57e884;return _0x539b6c;}})[_0x1d69('0xc')](function(){_0x539b6c[_0x1d69('0x18')](_0xa19511,function(_0x5a83ee,_0x516e3d){var _0x57d4e3=_0x539b6c[_0x1d69('0x14')]+0x1;if(_0x5a83ee){return _0x466cbd(_0x5a83ee);}else if(!_0x516e3d){if(_0x539b6c['disabled']){return _0x466cbd(null,![],{'message':_0x1d69('0x17')});}else if(_0x5a95fe[_0x1d69('0xa')]>0x0){if(_0x539b6c[_0x1d69('0x12')]){if(_0x5a95fe[_0x1d69('0xb')]>0x0){if(moment(_0x539b6c[_0x1d69('0x13')])[_0x1d69('0x19')](_0x5a95fe[_0x1d69('0xb')],'minutes')>moment()){return _0x466cbd(null,![],{'message':_0x1d69('0x17')});}else{return utils['clearBlockUser'](_0x539b6c,_0x57d4e3,![],null)[_0x1d69('0xc')](function(){return _0x466cbd(null,![],{'message':_0x1d69('0x17')});});}}else{return _0x466cbd(null,![],{'message':_0x1d69('0x17')});}}else{if(_0x57d4e3>=_0x5a95fe[_0x1d69('0xa')]){return utils[_0x1d69('0x1a')](_0x539b6c,0x0,!![],moment())[_0x1d69('0xc')](function(){return _0x466cbd(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});});}else{return utils[_0x1d69('0x1a')](_0x539b6c,_0x57d4e3,![],null)[_0x1d69('0xc')](function(){return _0x466cbd(null,![],{'message':_0x1d69('0x17')});});}}}else{return _0x466cbd(null,![],{'message':_0x1d69('0x17')});}}else{if(_0x539b6c[_0x1d69('0x11')]){return _0x466cbd(null,![],{'message':_0x1d69('0x17')});}else if(_0x5a95fe[_0x1d69('0xa')]>0x0){if(_0x539b6c[_0x1d69('0x12')]){if(_0x5a95fe['blockDuration']>0x0){if(moment(_0x539b6c[_0x1d69('0x13')])[_0x1d69('0x19')](_0x5a95fe[_0x1d69('0xb')],_0x1d69('0x1b'))>moment()){return _0x466cbd(null,![],{'message':_0x1d69('0x17')});}else{return utils['clearBlockUser'](_0x539b6c,0x0,![],null)[_0x1d69('0xc')](function(){return utils[_0x1d69('0x1c')](_0x539b6c);})[_0x1d69('0xc')](function(){return _0x466cbd(null,_0x539b6c);});}}else{return _0x466cbd(null,![],{'message':_0x1d69('0x17')});}}else{return utils['clearBlockUser'](_0x539b6c,0x0,![],null)['then'](function(){return utils[_0x1d69('0x1c')](_0x539b6c);})[_0x1d69('0xc')](function(){return _0x466cbd(null,_0x539b6c);})[_0x1d69('0x1d')](function(_0x38ae81){return _0x466cbd(null,![],_0x38ae81);});}}else{if(_0x539b6c[_0x1d69('0x12')]){return _0x466cbd(null,![],{'message':'Incorrect\x20username\x20and/or\x20password.\x20Please\x20retry\x20again\x20or\x20contact\x20the\x20administrator.'});}else{return utils[_0x1d69('0x1c')](_0x539b6c)[_0x1d69('0xc')](function(){return _0x466cbd(null,_0x539b6c);});}}}});})[_0x1d69('0x1d')](function(_0x4d9d9a){return _0x466cbd(null,![],_0x4d9d9a);});}function sendServiceMail(_0x4cad4a){return db[_0x1d69('0x1e')][_0x1d69('0x1f')]({'where':{'service':!![]},'attributes':['id','name',_0x1d69('0x20')],'include':[{'model':db[_0x1d69('0x21')],'as':_0x1d69('0x22')}]})[_0x1d69('0xc')](function(_0x772612){if(!_0x772612){throw new Error(_0x1d69('0x23'));}var _0x4fb121={'tls':{'rejectUnauthorized':![]}};if(_0x772612[_0x1d69('0x22')]['service']){_0x4fb121[_0x1d69('0x24')]=_0x772612[_0x1d69('0x22')][_0x1d69('0x24')];}else{_0x4fb121['host']=_0x772612[_0x1d69('0x22')][_0x1d69('0x25')];_0x4fb121['port']=_0x772612[_0x1d69('0x22')][_0x1d69('0x26')];_0x4fb121[_0x1d69('0x27')]=_0x772612['Smtp'][_0x1d69('0x27')];}if(_0x772612['Smtp']['authentication']){_0x4fb121[_0x1d69('0x28')]={'user':_0x772612[_0x1d69('0x22')]['user'],'pass':_0x772612['Smtp'][_0x1d69('0x29')]};}var _0x34d090={'account':_0x4fb121,'message':_['merge']({'from':util['format'](_0x1d69('0x2a'),_0x772612[_0x1d69('0xd')],_0x772612['email']||_0x772612['Smtp'][_0x1d69('0x2b')])},_0x4cad4a)};return client[_0x1d69('0x2c')](_0x1d69('0x2d'),_0x34d090);})[_0x1d69('0xc')](function(_0x558b25){if(_0x558b25[_0x1d69('0x2e')]){throw new Error(util[_0x1d69('0x2f')](_0x1d69('0x30'),_0x558b25['error'][_0x1d69('0x31')]||JSON[_0x1d69('0x32')](_0x558b25[_0x1d69('0x2e')])));}return!![];});}function handleError(_0x11b325,_0x19cd43,_0x18f08d){return _0x11b325[_0x1d69('0x33')](_0x19cd43||0x1f4)[_0x1d69('0x34')]({'message':_0x18f08d?_0x18f08d[_0x1d69('0x31')]||_0x18f08d:''});}exports[_0x1d69('0x35')]=function(_0x4de13c,_0x5dd2e0,_0x43136f){passport['authenticate'](_0x1d69('0x36'),function(_0x104515,_0x30a471,_0x48d92f){var _0x267601=_0x104515||_0x48d92f;if(_0x267601){return handleError(_0x5dd2e0,0x191,_0x267601);}if(!_0x30a471){return handleError(_0x5dd2e0,0x194,{'message':_0x1d69('0x37')});}else{var _0x44806d={'payload':{'id':_0x30a471['id'],'role':_0x30a471[_0x1d69('0x10')]},'options':{'expiresIn':0x15180}};return authService[_0x1d69('0x38')](_0x44806d)[_0x1d69('0xc')](function(_0xac85be){_0x5dd2e0[_0x1d69('0x39')]({'id':_0x30a471['id'],'token':_0xac85be,'statusCall':'','isAlreadyLogged':_0x30a471[_0x1d69('0x3a')]});});}})(_0x4de13c,_0x5dd2e0,_0x43136f);};exports[_0x1d69('0x3b')]=function(_0x5655ec,_0x40d03b,_0x60bf24){if(!_0x5655ec[_0x1d69('0x3c')][_0x1d69('0x20')]){return handleError(_0x40d03b,0x1f4,{'message':'Email\x20parameter\x20is\x20missing'});}var _0x45436c=rs[_0x1d69('0x3d')]();_0x5655ec[_0x1d69('0x3c')][_0x1d69('0x20')]=_0x5655ec[_0x1d69('0x3c')][_0x1d69('0x20')][_0x1d69('0x3e')]()[_0x1d69('0x3f')]();var _0x6365bd;return db['Setting'][_0x1d69('0x9')]({'where':{'id':0x1},'attributes':[_0x1d69('0xa'),_0x1d69('0xb')],'raw':!![]})[_0x1d69('0xc')](function(_0x3c740d){_0x6365bd=_0x3c740d;return db[_0x1d69('0x40')][_0x1d69('0x1f')]({'where':{'email':_0x5655ec[_0x1d69('0x3c')][_0x1d69('0x20')]}});})['then'](function(_0x49c448){if(!_0x49c448){throw new Error(_0x1d69('0x41'));}if(_0x49c448['disabled']){throw new Error(_0x1d69('0x42'));}if(_0x49c448[_0x1d69('0x12')]){if(moment(_0x49c448[_0x1d69('0x13')])[_0x1d69('0x19')](_0x6365bd[_0x1d69('0xb')],_0x1d69('0x1b'))>moment()){throw new Error('The\x20user\x20is\x20blocked.\x20Please\x20contact\x20the\x20administrator.');}else{_0x49c448[_0x1d69('0x12')]=![];_0x49c448[_0x1d69('0x13')]=null;}}_0x49c448[_0x1d69('0x43')]=_0x45436c;_0x49c448[_0x1d69('0x44')]=Date[_0x1d69('0x45')]()+0x36ee80;return _0x49c448[_0x1d69('0x46')]();})['then'](function(){return sendServiceMail({'to':_0x5655ec[_0x1d69('0x3c')][_0x1d69('0x20')],'subject':_0x1d69('0x47'),'text':_0x1d69('0x48')+_0x1d69('0x49')+'https://'+_0x5655ec['headers'][_0x1d69('0x25')]+'/reset/'+_0x45436c+'\x0a\x0a'+_0x1d69('0x4a')});})[_0x1d69('0xc')](function(){_0x40d03b[_0x1d69('0x33')](0xc8)[_0x1d69('0x34')]({'message':_0x1d69('0x4b')});})[_0x1d69('0x1d')](function(_0x4f2ac2){return handleError(_0x40d03b,0x1f4,_0x4f2ac2);});};exports[_0x1d69('0x4c')]=function(_0x3256e7,_0x4b630e,_0x3e1368){return db[_0x1d69('0x40')][_0x1d69('0x1f')]({'where':{'resetPasswordToken':_0x3256e7[_0x1d69('0x4d')][_0x1d69('0x4e')],'resetPasswordExpires':{'$gt':Date[_0x1d69('0x45')]()}}})['then'](function(_0x25f328){if(!_0x25f328){throw new Error(_0x1d69('0x4f'));}return db[_0x1d69('0x8')][_0x1d69('0x9')]({'attributes':['id','securePassword','enforcePasswordHistory',_0x1d69('0x50')]})[_0x1d69('0xc')](function(_0x2fa2cd){if(_0x2fa2cd[_0x1d69('0x51')])authService['validatePasswordPattern'](_0x3256e7[_0x1d69('0x3c')][_0x1d69('0xe')]);if(!_0x2fa2cd['enforcePasswordHistory']||!_0x25f328['previousPasswords'])return _0x25f328;authService[_0x1d69('0x52')](_0x3256e7[_0x1d69('0x3c')][_0x1d69('0xe')],_0x25f328['previousPasswords'],_0x2fa2cd[_0x1d69('0x50')]);return _0x25f328;})[_0x1d69('0xc')](function(){_0x25f328['password']=_0x3256e7[_0x1d69('0x3c')][_0x1d69('0xe')];_0x25f328[_0x1d69('0x43')]=null;_0x25f328[_0x1d69('0x44')]=null;return _0x25f328['save']();});})['then'](function(){_0x4b630e['status'](0xc8)['send']({'message':_0x1d69('0x53')});})[_0x1d69('0x1d')](function(_0x186842){return handleError(_0x4b630e,0x1f4,_0x186842);});};passport['use'](new LocalStrategy({'usernameField':_0x1d69('0xd'),'passwordField':_0x1d69('0xe')},function(_0x272cae,_0x47e49e,_0x379590){return localAuthenticate(db[_0x1d69('0x40')],_0x272cae,_0x47e49e,_0x379590);}));
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5737=['reset','exports','Router','./authLocal.controller','post','login','/forgot'];(function(_0x4c2cf0,_0x38259a){var _0x11dd62=function(_0xccab14){while(--_0xccab14){_0x4c2cf0['push'](_0x4c2cf0['shift']());}};_0x11dd62(++_0x38259a);}(_0x5737,0x11a));var _0x7573=function(_0x18cea4,_0x5ec50c){_0x18cea4=_0x18cea4-0x0;var _0x2cac6a=_0x5737[_0x18cea4];return _0x2cac6a;};'use strict';var express=require('express');var router=express[_0x7573('0x0')]();var controller=require(_0x7573('0x1'));router[_0x7573('0x2')]('/',controller[_0x7573('0x3')]);router[_0x7573('0x2')](_0x7573('0x4'),controller['forgot']);router[_0x7573('0x2')]('/reset/:token',controller[_0x7573('0x5')]);module[_0x7573('0x6')]=router;
\ No newline at end of file
+var _0x7a96=['Router','./authLocal.controller','post','forgot','/reset/:token','reset','exports','express'];(function(_0x411add,_0x1aed38){var _0x238242=function(_0x4a1cd5){while(--_0x4a1cd5){_0x411add['push'](_0x411add['shift']());}};_0x238242(++_0x1aed38);}(_0x7a96,0x17f));var _0x67a9=function(_0x20c9d6,_0x160bea){_0x20c9d6=_0x20c9d6-0x0;var _0x3b8794=_0x7a96[_0x20c9d6];return _0x3b8794;};'use strict';var express=require(_0x67a9('0x0'));var router=express[_0x67a9('0x1')]();var controller=require(_0x67a9('0x2'));router[_0x67a9('0x3')]('/',controller['login']);router[_0x67a9('0x3')]('/forgot',controller[_0x67a9('0x4')]);router[_0x67a9('0x3')](_0x67a9('0x5'),controller[_0x67a9('0x6')]);module[_0x67a9('0x7')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0423=['STRING','INTEGER','sequelize','exports'];(function(_0x7e2eb0,_0x17cd58){var _0xd92de4=function(_0x5d005b){while(--_0x5d005b){_0x7e2eb0['push'](_0x7e2eb0['shift']());}};_0xd92de4(++_0x17cd58);}(_0x0423,0xc6));var _0x3042=function(_0x3379a5,_0x16fe33){_0x3379a5=_0x3379a5-0x0;var _0x102427=_0x0423[_0x3379a5];return _0x102427;};'use strict';var Sequelize=require(_0x3042('0x0'));module[_0x3042('0x1')]={'name':{'type':Sequelize['STRING'],'allowNull':![]},'channel':{'type':Sequelize[_0x3042('0x2')]},'description':{'type':Sequelize['STRING']},'status':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'timeout':{'type':Sequelize[_0x3042('0x3')],'defaultValue':0xa}};
\ No newline at end of file
+var _0xe011=['sequelize','exports','STRING','BOOLEAN','INTEGER'];(function(_0x2bf47b,_0x4f0c76){var _0x4fd0b8=function(_0x543d5e){while(--_0x543d5e){_0x2bf47b['push'](_0x2bf47b['shift']());}};_0x4fd0b8(++_0x4f0c76);}(_0xe011,0x1f4));var _0x1e01=function(_0xee5d2a,_0x534134){_0xee5d2a=_0xee5d2a-0x0;var _0x346948=_0xe011[_0xee5d2a];return _0x346948;};'use strict';var Sequelize=require(_0x1e01('0x0'));module[_0x1e01('0x1')]={'name':{'type':Sequelize[_0x1e01('0x2')],'allowNull':![]},'channel':{'type':Sequelize[_0x1e01('0x2')]},'description':{'type':Sequelize[_0x1e01('0x2')]},'status':{'type':Sequelize[_0x1e01('0x3')],'defaultValue':![]},'timeout':{'type':Sequelize[_0x1e01('0x4')],'defaultValue':0xa}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8a20=['Automation','rawAttributes','type','key','model','query','keys','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','filter','where','merge','options','includeAll','include','findAll','rows','catch','show','params','filters','find','create','body','update','Condition','addConditions','ids','findOne','pick','getConditions','addActions','Action','omit','getActions','rimraf','zip-dir','bluebird','path','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/environment','status','end','json','offset','undefined','count','limit','Content-Range','apply','reject','destroy','then','sendStatus','error','name','send','map'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x8a20,0x10d));var _0x08a2=function(_0x618414,_0x1a7a60){_0x618414=_0x618414-0x0;var _0x21c19a=_0x8a20[_0x618414];return _0x21c19a;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x08a2('0x0'));var zipdir=require(_0x08a2('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x08a2('0x2'));var Mustache=require('mustache');var util=require('util');var path=require(_0x08a2('0x3'));var sox=require(_0x08a2('0x4'));var csv=require(_0x08a2('0x5'));var ejs=require(_0x08a2('0x6'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x08a2('0x7'));var squel=require('squel');var crypto=require(_0x08a2('0x8'));var jsforce=require(_0x08a2('0x9'));var deskjs=require(_0x08a2('0xa'));var toCsv=require(_0x08a2('0x5'));var querystring=require(_0x08a2('0xb'));var Papa=require(_0x08a2('0xc'));var Redis=require(_0x08a2('0xd'));var authService=require(_0x08a2('0xe'));var qs=require('../../components/parsers/qs');var as=require(_0x08a2('0xf'));var hardwareService=require(_0x08a2('0x10'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0x08a2('0x11'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x4cd627,_0x343485){_0x343485=_0x343485||0xcc;return function(_0x48ea3b){if(_0x48ea3b){return _0x4cd627['sendStatus'](_0x343485);}return _0x4cd627[_0x08a2('0x12')](_0x343485)[_0x08a2('0x13')]();};}function respondWithResult(_0x3a4501,_0x5957dd){_0x5957dd=_0x5957dd||0xc8;return function(_0x3ec0dc){if(_0x3ec0dc){return _0x3a4501[_0x08a2('0x12')](_0x5957dd)[_0x08a2('0x14')](_0x3ec0dc);}};}function respondWithFilteredResult(_0x624f1b,_0x1261b8){return function(_0x156d00){if(_0x156d00){var _0x497edf=typeof _0x1261b8[_0x08a2('0x15')]===_0x08a2('0x16')&&typeof _0x1261b8['limit']===_0x08a2('0x16');var _0x1d9e99=_0x156d00[_0x08a2('0x17')];var _0x2169dd=_0x497edf?0x0:_0x1261b8[_0x08a2('0x15')];var _0x373e85=_0x497edf?_0x156d00[_0x08a2('0x17')]:_0x1261b8[_0x08a2('0x15')]+_0x1261b8[_0x08a2('0x18')];var _0x4ccab1;if(_0x373e85>=_0x1d9e99){_0x373e85=_0x1d9e99;_0x4ccab1=0xc8;}else{_0x4ccab1=0xce;}_0x624f1b[_0x08a2('0x12')](_0x4ccab1);return _0x624f1b['set'](_0x08a2('0x19'),_0x2169dd+'-'+_0x373e85+'/'+_0x1d9e99)[_0x08a2('0x14')](_0x156d00);}return null;};}function patchUpdates(_0x4dcfd9){return function(_0x27c48){try{jsonpatch[_0x08a2('0x1a')](_0x27c48,_0x4dcfd9,!![]);}catch(_0xba0516){return BPromise[_0x08a2('0x1b')](_0xba0516);}return _0x27c48['save']();};}function saveUpdates(_0x3edb69,_0x5e4cae){return function(_0x5c4db4){if(_0x5c4db4){return _0x5c4db4['update'](_0x3edb69)['then'](function(_0x2ff781){return _0x2ff781;});}return null;};}function removeEntity(_0x127068,_0x117014){return function(_0x22dc8b){if(_0x22dc8b){return _0x22dc8b[_0x08a2('0x1c')]()[_0x08a2('0x1d')](function(){_0x127068[_0x08a2('0x12')](0xcc)[_0x08a2('0x13')]();});}};}function handleEntityNotFound(_0x91537d,_0x459da4){return function(_0x6ea449){if(!_0x6ea449){_0x91537d[_0x08a2('0x1e')](0x194);}return _0x6ea449;};}function handleError(_0x55f5e8,_0x47ff49){_0x47ff49=_0x47ff49||0x1f4;return function(_0x36f266){logger[_0x08a2('0x1f')](_0x36f266['stack']);if(_0x36f266[_0x08a2('0x20')]){delete _0x36f266[_0x08a2('0x20')];}_0x55f5e8[_0x08a2('0x12')](_0x47ff49)[_0x08a2('0x21')](_0x36f266);};}exports['index']=function(_0x500ac6,_0x1d7d05){var _0x44436d={},_0x5a5d5c={},_0x52e276={'count':0x0,'rows':[]};var _0x42b583=_[_0x08a2('0x22')](db[_0x08a2('0x23')][_0x08a2('0x24')],function(_0x303f3){return{'name':_0x303f3['fieldName'],'type':_0x303f3[_0x08a2('0x25')][_0x08a2('0x26')]};});_0x5a5d5c[_0x08a2('0x27')]=_[_0x08a2('0x22')](_0x42b583,'name');_0x5a5d5c[_0x08a2('0x28')]=_[_0x08a2('0x29')](_0x500ac6['query']);_0x5a5d5c['filters']=_['intersection'](_0x5a5d5c[_0x08a2('0x27')],_0x5a5d5c[_0x08a2('0x28')]);_0x44436d[_0x08a2('0x2a')]=_[_0x08a2('0x2b')](_0x5a5d5c['model'],qs[_0x08a2('0x2c')](_0x500ac6[_0x08a2('0x28')][_0x08a2('0x2c')]));_0x44436d['attributes']=_0x44436d[_0x08a2('0x2a')][_0x08a2('0x2d')]?_0x44436d[_0x08a2('0x2a')]:_0x5a5d5c[_0x08a2('0x27')];if(!_0x500ac6[_0x08a2('0x28')][_0x08a2('0x2e')](_0x08a2('0x2f'))){_0x44436d[_0x08a2('0x18')]=qs[_0x08a2('0x18')](_0x500ac6[_0x08a2('0x28')][_0x08a2('0x18')]);_0x44436d[_0x08a2('0x15')]=qs[_0x08a2('0x15')](_0x500ac6['query'][_0x08a2('0x15')]);}_0x44436d[_0x08a2('0x30')]=qs[_0x08a2('0x31')](_0x500ac6[_0x08a2('0x28')]['sort']);_0x44436d['where']=qs['filters'](_['pick'](_0x500ac6[_0x08a2('0x28')],_0x5a5d5c['filters']),_0x42b583);if(_0x500ac6[_0x08a2('0x28')][_0x08a2('0x32')]){_0x44436d[_0x08a2('0x33')]=_['merge'](_0x44436d[_0x08a2('0x33')],{'$or':_['map'](_0x42b583,function(_0x386db0){if(_0x386db0[_0x08a2('0x25')]!=='VIRTUAL'){var _0x4140f0={};_0x4140f0[_0x386db0[_0x08a2('0x20')]]={'$like':'%'+_0x500ac6['query'][_0x08a2('0x32')]+'%'};return _0x4140f0;}})});}_0x44436d=_[_0x08a2('0x34')]({},_0x44436d,_0x500ac6[_0x08a2('0x35')]);var _0x39d913={'where':_0x44436d[_0x08a2('0x33')]};return db[_0x08a2('0x23')][_0x08a2('0x17')](_0x39d913)[_0x08a2('0x1d')](function(_0x2c26c0){_0x52e276[_0x08a2('0x17')]=_0x2c26c0;if(_0x500ac6[_0x08a2('0x28')][_0x08a2('0x36')]){_0x44436d[_0x08a2('0x37')]=[{'all':!![]}];}return db[_0x08a2('0x23')][_0x08a2('0x38')](_0x44436d);})[_0x08a2('0x1d')](function(_0x563170){_0x52e276[_0x08a2('0x39')]=_0x563170;return _0x52e276;})[_0x08a2('0x1d')](respondWithFilteredResult(_0x1d7d05,_0x44436d))[_0x08a2('0x3a')](handleError(_0x1d7d05,null));};exports[_0x08a2('0x3b')]=function(_0xafd070,_0x5790a7){var _0x56a39c={'raw':![],'where':{'id':_0xafd070[_0x08a2('0x3c')]['id']}},_0xe219f2={};_0xe219f2[_0x08a2('0x27')]=_[_0x08a2('0x29')](db['Automation']['rawAttributes']);_0xe219f2[_0x08a2('0x28')]=_[_0x08a2('0x29')](_0xafd070[_0x08a2('0x28')]);_0xe219f2[_0x08a2('0x3d')]=_[_0x08a2('0x2b')](_0xe219f2['model'],_0xe219f2['query']);_0x56a39c[_0x08a2('0x2a')]=_[_0x08a2('0x2b')](_0xe219f2['model'],qs['fields'](_0xafd070[_0x08a2('0x28')][_0x08a2('0x2c')]));_0x56a39c[_0x08a2('0x2a')]=_0x56a39c[_0x08a2('0x2a')]['length']?_0x56a39c[_0x08a2('0x2a')]:_0xe219f2[_0x08a2('0x27')];if(_0xafd070[_0x08a2('0x28')][_0x08a2('0x36')]){_0x56a39c['include']=[{'all':!![]}];}_0x56a39c=_[_0x08a2('0x34')]({},_0x56a39c,_0xafd070[_0x08a2('0x35')]);return db[_0x08a2('0x23')][_0x08a2('0x3e')](_0x56a39c)[_0x08a2('0x1d')](handleEntityNotFound(_0x5790a7,null))[_0x08a2('0x1d')](respondWithResult(_0x5790a7,null))[_0x08a2('0x3a')](handleError(_0x5790a7,null));};exports[_0x08a2('0x3f')]=function(_0xe7bc1e,_0x3c04b0){return db[_0x08a2('0x23')][_0x08a2('0x3f')](_0xe7bc1e[_0x08a2('0x40')],{})['then'](respondWithResult(_0x3c04b0,0xc9))[_0x08a2('0x3a')](handleError(_0x3c04b0,null));};exports[_0x08a2('0x41')]=function(_0xbe8884,_0x613fc2){if(_0xbe8884[_0x08a2('0x40')]['id']){delete _0xbe8884[_0x08a2('0x40')]['id'];}return db[_0x08a2('0x23')]['find']({'where':{'id':_0xbe8884[_0x08a2('0x3c')]['id']}})[_0x08a2('0x1d')](handleEntityNotFound(_0x613fc2,null))[_0x08a2('0x1d')](saveUpdates(_0xbe8884[_0x08a2('0x40')],null))[_0x08a2('0x1d')](respondWithResult(_0x613fc2,null))['catch'](handleError(_0x613fc2,null));};exports['destroy']=function(_0x3c78fe,_0x133cf4){return db[_0x08a2('0x23')][_0x08a2('0x3e')]({'where':{'id':_0x3c78fe[_0x08a2('0x3c')]['id']}})[_0x08a2('0x1d')](handleEntityNotFound(_0x133cf4,null))['then'](removeEntity(_0x133cf4,null))[_0x08a2('0x3a')](handleError(_0x133cf4,null));};exports['addConditions']=function(_0x5d43ee,_0x39ed42,_0x4a2094){return db[_0x08a2('0x42')][_0x08a2('0x3e')]({'where':{'id':_0x5d43ee['params']['id']}})[_0x08a2('0x1d')](handleEntityNotFound(_0x39ed42,null))[_0x08a2('0x1d')](function(_0x1b0e93){if(_0x1b0e93){return _0x1b0e93[_0x08a2('0x43')](_0x5d43ee['body']['ids'],_['omit'](_0x5d43ee[_0x08a2('0x40')],[_0x08a2('0x44'),'id'])||{});}})[_0x08a2('0x1d')](respondWithResult(_0x39ed42,null))[_0x08a2('0x3a')](handleError(_0x39ed42,null));};exports['getConditions']=function(_0x27b69d,_0x53b76b,_0x1adf7d){var _0x182006={};var _0x2031c4={};var _0x178752;var _0x407539;return db[_0x08a2('0x23')][_0x08a2('0x45')]({'where':{'id':_0x27b69d[_0x08a2('0x3c')]['id']}})[_0x08a2('0x1d')](handleEntityNotFound(_0x53b76b,null))[_0x08a2('0x1d')](function(_0x1662ff){if(_0x1662ff){_0x178752=_0x1662ff;_0x2031c4['model']=_[_0x08a2('0x29')](db[_0x08a2('0x42')][_0x08a2('0x24')]);_0x2031c4[_0x08a2('0x28')]=_[_0x08a2('0x29')](_0x27b69d[_0x08a2('0x28')]);_0x2031c4[_0x08a2('0x3d')]=_[_0x08a2('0x2b')](_0x2031c4[_0x08a2('0x27')],_0x2031c4[_0x08a2('0x28')]);_0x182006['attributes']=_[_0x08a2('0x2b')](_0x2031c4[_0x08a2('0x27')],qs[_0x08a2('0x2c')](_0x27b69d[_0x08a2('0x28')][_0x08a2('0x2c')]));_0x182006[_0x08a2('0x2a')]=_0x182006['attributes']['length']?_0x182006[_0x08a2('0x2a')]:_0x2031c4[_0x08a2('0x27')];_0x182006[_0x08a2('0x30')]=qs[_0x08a2('0x31')](_0x27b69d[_0x08a2('0x28')][_0x08a2('0x31')]);_0x182006[_0x08a2('0x33')]=qs['filters'](_[_0x08a2('0x46')](_0x27b69d[_0x08a2('0x28')],_0x2031c4['filters']));if(_0x27b69d['query'][_0x08a2('0x32')]){_0x182006[_0x08a2('0x33')]=_[_0x08a2('0x34')](_0x182006[_0x08a2('0x33')],{'$or':_['map'](_0x182006[_0x08a2('0x2a')],function(_0x382868){var _0x2b5788={};_0x2b5788[_0x382868]={'$like':'%'+_0x27b69d[_0x08a2('0x28')][_0x08a2('0x32')]+'%'};return _0x2b5788;})});}_0x182006=_['merge']({},_0x182006,_0x27b69d[_0x08a2('0x35')]);return _0x178752[_0x08a2('0x47')](_0x182006);}})[_0x08a2('0x1d')](function(_0x23a368){if(_0x23a368){_0x407539=_0x23a368[_0x08a2('0x2d')];if(!_0x27b69d[_0x08a2('0x28')]['hasOwnProperty'](_0x08a2('0x2f'))){_0x182006[_0x08a2('0x18')]=qs[_0x08a2('0x18')](_0x27b69d['query']['limit']);_0x182006[_0x08a2('0x15')]=qs['offset'](_0x27b69d[_0x08a2('0x28')][_0x08a2('0x15')]);}return _0x178752[_0x08a2('0x47')](_0x182006);}})[_0x08a2('0x1d')](function(_0xfb2616){if(_0xfb2616){return _0xfb2616?{'count':_0x407539,'rows':_0xfb2616}:null;}})[_0x08a2('0x1d')](respondWithResult(_0x53b76b,null))['catch'](handleError(_0x53b76b,null));};exports[_0x08a2('0x48')]=function(_0x30be5f,_0x32ddd8,_0x1a8864){return db[_0x08a2('0x49')][_0x08a2('0x3e')]({'where':{'id':_0x30be5f[_0x08a2('0x3c')]['id']}})[_0x08a2('0x1d')](handleEntityNotFound(_0x32ddd8,null))[_0x08a2('0x1d')](function(_0x2f644a){if(_0x2f644a){return _0x2f644a[_0x08a2('0x48')](_0x30be5f['body'][_0x08a2('0x44')],_[_0x08a2('0x4a')](_0x30be5f[_0x08a2('0x40')],[_0x08a2('0x44'),'id'])||{});}})['then'](respondWithResult(_0x32ddd8,null))[_0x08a2('0x3a')](handleError(_0x32ddd8,null));};exports['getActions']=function(_0x514d5f,_0x4b36bc,_0x131cf4){var _0xa43f8a={};var _0xfaa10c={};var _0x5f5a88;var _0x393c53;return db[_0x08a2('0x23')][_0x08a2('0x45')]({'where':{'id':_0x514d5f[_0x08a2('0x3c')]['id']}})[_0x08a2('0x1d')](handleEntityNotFound(_0x4b36bc,null))['then'](function(_0x415d86){if(_0x415d86){_0x5f5a88=_0x415d86;_0xfaa10c[_0x08a2('0x27')]=_[_0x08a2('0x29')](db['Action'][_0x08a2('0x24')]);_0xfaa10c[_0x08a2('0x28')]=_[_0x08a2('0x29')](_0x514d5f[_0x08a2('0x28')]);_0xfaa10c[_0x08a2('0x3d')]=_[_0x08a2('0x2b')](_0xfaa10c[_0x08a2('0x27')],_0xfaa10c[_0x08a2('0x28')]);_0xa43f8a[_0x08a2('0x2a')]=_[_0x08a2('0x2b')](_0xfaa10c['model'],qs[_0x08a2('0x2c')](_0x514d5f['query']['fields']));_0xa43f8a[_0x08a2('0x2a')]=_0xa43f8a[_0x08a2('0x2a')]['length']?_0xa43f8a[_0x08a2('0x2a')]:_0xfaa10c[_0x08a2('0x27')];_0xa43f8a['order']=qs[_0x08a2('0x31')](_0x514d5f['query'][_0x08a2('0x31')]);_0xa43f8a[_0x08a2('0x33')]=qs[_0x08a2('0x3d')](_[_0x08a2('0x46')](_0x514d5f['query'],_0xfaa10c[_0x08a2('0x3d')]));if(_0x514d5f[_0x08a2('0x28')][_0x08a2('0x32')]){_0xa43f8a[_0x08a2('0x33')]=_[_0x08a2('0x34')](_0xa43f8a['where'],{'$or':_[_0x08a2('0x22')](_0xa43f8a[_0x08a2('0x2a')],function(_0x6be359){var _0xd1147b={};_0xd1147b[_0x6be359]={'$like':'%'+_0x514d5f[_0x08a2('0x28')][_0x08a2('0x32')]+'%'};return _0xd1147b;})});}_0xa43f8a=_[_0x08a2('0x34')]({},_0xa43f8a,_0x514d5f['options']);return _0x5f5a88[_0x08a2('0x4b')](_0xa43f8a);}})[_0x08a2('0x1d')](function(_0x4a239a){if(_0x4a239a){_0x393c53=_0x4a239a[_0x08a2('0x2d')];if(!_0x514d5f['query']['hasOwnProperty']('nolimit')){_0xa43f8a[_0x08a2('0x18')]=qs[_0x08a2('0x18')](_0x514d5f['query']['limit']);_0xa43f8a[_0x08a2('0x15')]=qs[_0x08a2('0x15')](_0x514d5f[_0x08a2('0x28')][_0x08a2('0x15')]);}return _0x5f5a88[_0x08a2('0x4b')](_0xa43f8a);}})[_0x08a2('0x1d')](function(_0xee8694){if(_0xee8694){return _0xee8694?{'count':_0x393c53,'rows':_0xee8694}:null;}})[_0x08a2('0x1d')](respondWithResult(_0x4b36bc,null))[_0x08a2('0x3a')](handleError(_0x4b36bc,null));};
\ No newline at end of file
+var _0x4a64=['getActions','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','undefined','limit','count','apply','reject','save','then','error','stack','name','send','index','map','rawAttributes','fieldName','type','key','model','query','keys','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','filters','pick','filter','where','merge','VIRTUAL','Automation','includeAll','findAll','rows','catch','show','params','length','options','find','create','body','update','destroy','addConditions','ids','getConditions','Condition','Action','addActions'];(function(_0x291b12,_0x4a4a15){var _0x36a730=function(_0x493160){while(--_0x493160){_0x291b12['push'](_0x291b12['shift']());}};_0x36a730(++_0x4a4a15);}(_0x4a64,0x159));var _0x44a6=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x4a64[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0x44a6('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x44a6('0x1'));var jsonpatch=require(_0x44a6('0x2'));var rp=require(_0x44a6('0x3'));var moment=require(_0x44a6('0x4'));var BPromise=require(_0x44a6('0x5'));var Mustache=require(_0x44a6('0x6'));var util=require(_0x44a6('0x7'));var path=require(_0x44a6('0x8'));var sox=require(_0x44a6('0x9'));var csv=require(_0x44a6('0xa'));var ejs=require(_0x44a6('0xb'));var fs=require('fs');var fs_extra=require(_0x44a6('0xc'));var _=require('lodash');var squel=require(_0x44a6('0xd'));var crypto=require(_0x44a6('0xe'));var jsforce=require(_0x44a6('0xf'));var deskjs=require(_0x44a6('0x10'));var toCsv=require(_0x44a6('0xa'));var querystring=require(_0x44a6('0x11'));var Papa=require('papaparse');var Redis=require(_0x44a6('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x44a6('0x13'));var as=require(_0x44a6('0x14'));var hardwareService=require(_0x44a6('0x15'));var logger=require(_0x44a6('0x16'))('api');var utils=require(_0x44a6('0x17'));var config=require(_0x44a6('0x18'));var licenseUtil=require(_0x44a6('0x19'));var db=require(_0x44a6('0x1a'))['db'];function respondWithStatusCode(_0x330f01,_0x21316c){_0x21316c=_0x21316c||0xcc;return function(_0x17ece8){if(_0x17ece8){return _0x330f01[_0x44a6('0x1b')](_0x21316c);}return _0x330f01['status'](_0x21316c)[_0x44a6('0x1c')]();};}function respondWithResult(_0x29a25f,_0x368e35){_0x368e35=_0x368e35||0xc8;return function(_0x4890de){if(_0x4890de){return _0x29a25f[_0x44a6('0x1d')](_0x368e35)[_0x44a6('0x1e')](_0x4890de);}};}function respondWithFilteredResult(_0x5e4f4e,_0x54abdc){return function(_0x5ca1ca){if(_0x5ca1ca){var _0x2e4b19=typeof _0x54abdc[_0x44a6('0x1f')]===_0x44a6('0x20')&&typeof _0x54abdc[_0x44a6('0x21')]==='undefined';var _0x974429=_0x5ca1ca[_0x44a6('0x22')];var _0x494bad=_0x2e4b19?0x0:_0x54abdc[_0x44a6('0x1f')];var _0x44b5e1=_0x2e4b19?_0x5ca1ca['count']:_0x54abdc[_0x44a6('0x1f')]+_0x54abdc[_0x44a6('0x21')];var _0x40927f;if(_0x44b5e1>=_0x974429){_0x44b5e1=_0x974429;_0x40927f=0xc8;}else{_0x40927f=0xce;}_0x5e4f4e[_0x44a6('0x1d')](_0x40927f);return _0x5e4f4e['set']('Content-Range',_0x494bad+'-'+_0x44b5e1+'/'+_0x974429)[_0x44a6('0x1e')](_0x5ca1ca);}return null;};}function patchUpdates(_0x413682){return function(_0x194282){try{jsonpatch[_0x44a6('0x23')](_0x194282,_0x413682,!![]);}catch(_0x3903b9){return BPromise[_0x44a6('0x24')](_0x3903b9);}return _0x194282[_0x44a6('0x25')]();};}function saveUpdates(_0x5b9e35,_0x311b74){return function(_0x53376e){if(_0x53376e){return _0x53376e['update'](_0x5b9e35)[_0x44a6('0x26')](function(_0x15b94d){return _0x15b94d;});}return null;};}function removeEntity(_0x1572b4,_0x179e07){return function(_0x414969){if(_0x414969){return _0x414969['destroy']()[_0x44a6('0x26')](function(){_0x1572b4['status'](0xcc)[_0x44a6('0x1c')]();});}};}function handleEntityNotFound(_0x9d497b,_0x3e8faa){return function(_0x5769b9){if(!_0x5769b9){_0x9d497b[_0x44a6('0x1b')](0x194);}return _0x5769b9;};}function handleError(_0x2f8268,_0x56439a){_0x56439a=_0x56439a||0x1f4;return function(_0x480ec6){logger[_0x44a6('0x27')](_0x480ec6[_0x44a6('0x28')]);if(_0x480ec6[_0x44a6('0x29')]){delete _0x480ec6[_0x44a6('0x29')];}_0x2f8268[_0x44a6('0x1d')](_0x56439a)[_0x44a6('0x2a')](_0x480ec6);};}exports[_0x44a6('0x2b')]=function(_0x56b384,_0x352439){var _0x1e0b61={},_0x5ce71e={},_0x6cc1ee={'count':0x0,'rows':[]};var _0x57824a=_[_0x44a6('0x2c')](db['Automation'][_0x44a6('0x2d')],function(_0xc68de7){return{'name':_0xc68de7[_0x44a6('0x2e')],'type':_0xc68de7[_0x44a6('0x2f')][_0x44a6('0x30')]};});_0x5ce71e[_0x44a6('0x31')]=_[_0x44a6('0x2c')](_0x57824a,'name');_0x5ce71e[_0x44a6('0x32')]=_[_0x44a6('0x33')](_0x56b384[_0x44a6('0x32')]);_0x5ce71e['filters']=_[_0x44a6('0x34')](_0x5ce71e['model'],_0x5ce71e[_0x44a6('0x32')]);_0x1e0b61[_0x44a6('0x35')]=_[_0x44a6('0x34')](_0x5ce71e[_0x44a6('0x31')],qs['fields'](_0x56b384[_0x44a6('0x32')][_0x44a6('0x36')]));_0x1e0b61[_0x44a6('0x35')]=_0x1e0b61['attributes']['length']?_0x1e0b61[_0x44a6('0x35')]:_0x5ce71e[_0x44a6('0x31')];if(!_0x56b384[_0x44a6('0x32')][_0x44a6('0x37')](_0x44a6('0x38'))){_0x1e0b61[_0x44a6('0x21')]=qs[_0x44a6('0x21')](_0x56b384['query'][_0x44a6('0x21')]);_0x1e0b61[_0x44a6('0x1f')]=qs['offset'](_0x56b384[_0x44a6('0x32')]['offset']);}_0x1e0b61[_0x44a6('0x39')]=qs['sort'](_0x56b384[_0x44a6('0x32')][_0x44a6('0x3a')]);_0x1e0b61['where']=qs[_0x44a6('0x3b')](_[_0x44a6('0x3c')](_0x56b384[_0x44a6('0x32')],_0x5ce71e['filters']),_0x57824a);if(_0x56b384[_0x44a6('0x32')][_0x44a6('0x3d')]){_0x1e0b61[_0x44a6('0x3e')]=_[_0x44a6('0x3f')](_0x1e0b61[_0x44a6('0x3e')],{'$or':_['map'](_0x57824a,function(_0x51a45e){if(_0x51a45e[_0x44a6('0x2f')]!==_0x44a6('0x40')){var _0x46b069={};_0x46b069[_0x51a45e[_0x44a6('0x29')]]={'$like':'%'+_0x56b384['query'][_0x44a6('0x3d')]+'%'};return _0x46b069;}})});}_0x1e0b61=_[_0x44a6('0x3f')]({},_0x1e0b61,_0x56b384['options']);var _0x42c35a={'where':_0x1e0b61[_0x44a6('0x3e')]};return db[_0x44a6('0x41')][_0x44a6('0x22')](_0x42c35a)[_0x44a6('0x26')](function(_0x30c939){_0x6cc1ee[_0x44a6('0x22')]=_0x30c939;if(_0x56b384[_0x44a6('0x32')][_0x44a6('0x42')]){_0x1e0b61['include']=[{'all':!![]}];}return db[_0x44a6('0x41')][_0x44a6('0x43')](_0x1e0b61);})[_0x44a6('0x26')](function(_0x569e57){_0x6cc1ee[_0x44a6('0x44')]=_0x569e57;return _0x6cc1ee;})[_0x44a6('0x26')](respondWithFilteredResult(_0x352439,_0x1e0b61))[_0x44a6('0x45')](handleError(_0x352439,null));};exports[_0x44a6('0x46')]=function(_0x7c37a4,_0x3035a3){var _0x37444={'raw':![],'where':{'id':_0x7c37a4[_0x44a6('0x47')]['id']}},_0x17a228={};_0x17a228[_0x44a6('0x31')]=_[_0x44a6('0x33')](db[_0x44a6('0x41')][_0x44a6('0x2d')]);_0x17a228[_0x44a6('0x32')]=_[_0x44a6('0x33')](_0x7c37a4[_0x44a6('0x32')]);_0x17a228[_0x44a6('0x3b')]=_[_0x44a6('0x34')](_0x17a228[_0x44a6('0x31')],_0x17a228['query']);_0x37444['attributes']=_['intersection'](_0x17a228[_0x44a6('0x31')],qs['fields'](_0x7c37a4[_0x44a6('0x32')]['fields']));_0x37444[_0x44a6('0x35')]=_0x37444[_0x44a6('0x35')][_0x44a6('0x48')]?_0x37444[_0x44a6('0x35')]:_0x17a228[_0x44a6('0x31')];if(_0x7c37a4['query']['includeAll']){_0x37444['include']=[{'all':!![]}];}_0x37444=_[_0x44a6('0x3f')]({},_0x37444,_0x7c37a4[_0x44a6('0x49')]);return db[_0x44a6('0x41')][_0x44a6('0x4a')](_0x37444)[_0x44a6('0x26')](handleEntityNotFound(_0x3035a3,null))['then'](respondWithResult(_0x3035a3,null))['catch'](handleError(_0x3035a3,null));};exports[_0x44a6('0x4b')]=function(_0x71f67a,_0x590721){return db[_0x44a6('0x41')][_0x44a6('0x4b')](_0x71f67a[_0x44a6('0x4c')],{})[_0x44a6('0x26')](respondWithResult(_0x590721,0xc9))[_0x44a6('0x45')](handleError(_0x590721,null));};exports[_0x44a6('0x4d')]=function(_0x19826e,_0x1c395f){if(_0x19826e[_0x44a6('0x4c')]['id']){delete _0x19826e[_0x44a6('0x4c')]['id'];}return db[_0x44a6('0x41')][_0x44a6('0x4a')]({'where':{'id':_0x19826e[_0x44a6('0x47')]['id']}})['then'](handleEntityNotFound(_0x1c395f,null))[_0x44a6('0x26')](saveUpdates(_0x19826e[_0x44a6('0x4c')],null))['then'](respondWithResult(_0x1c395f,null))[_0x44a6('0x45')](handleError(_0x1c395f,null));};exports[_0x44a6('0x4e')]=function(_0x245f0b,_0x282fe9){return db['Automation'][_0x44a6('0x4a')]({'where':{'id':_0x245f0b[_0x44a6('0x47')]['id']}})[_0x44a6('0x26')](handleEntityNotFound(_0x282fe9,null))[_0x44a6('0x26')](removeEntity(_0x282fe9,null))[_0x44a6('0x45')](handleError(_0x282fe9,null));};exports[_0x44a6('0x4f')]=function(_0x443a23,_0x5575f0,_0x56769c){return db['Condition'][_0x44a6('0x4a')]({'where':{'id':_0x443a23[_0x44a6('0x47')]['id']}})[_0x44a6('0x26')](handleEntityNotFound(_0x5575f0,null))[_0x44a6('0x26')](function(_0xda49a5){if(_0xda49a5){return _0xda49a5['addConditions'](_0x443a23[_0x44a6('0x4c')][_0x44a6('0x50')],_['omit'](_0x443a23[_0x44a6('0x4c')],[_0x44a6('0x50'),'id'])||{});}})[_0x44a6('0x26')](respondWithResult(_0x5575f0,null))[_0x44a6('0x45')](handleError(_0x5575f0,null));};exports[_0x44a6('0x51')]=function(_0x1ae97c,_0x5d4a87,_0x1e51ca){var _0xb1b33d={};var _0x465cfe={};var _0x4fd7d9;var _0x3cce61;return db[_0x44a6('0x41')]['findOne']({'where':{'id':_0x1ae97c['params']['id']}})['then'](handleEntityNotFound(_0x5d4a87,null))[_0x44a6('0x26')](function(_0x2f9059){if(_0x2f9059){_0x4fd7d9=_0x2f9059;_0x465cfe[_0x44a6('0x31')]=_[_0x44a6('0x33')](db[_0x44a6('0x52')][_0x44a6('0x2d')]);_0x465cfe[_0x44a6('0x32')]=_[_0x44a6('0x33')](_0x1ae97c[_0x44a6('0x32')]);_0x465cfe[_0x44a6('0x3b')]=_[_0x44a6('0x34')](_0x465cfe[_0x44a6('0x31')],_0x465cfe[_0x44a6('0x32')]);_0xb1b33d[_0x44a6('0x35')]=_['intersection'](_0x465cfe[_0x44a6('0x31')],qs[_0x44a6('0x36')](_0x1ae97c[_0x44a6('0x32')]['fields']));_0xb1b33d[_0x44a6('0x35')]=_0xb1b33d[_0x44a6('0x35')][_0x44a6('0x48')]?_0xb1b33d[_0x44a6('0x35')]:_0x465cfe[_0x44a6('0x31')];_0xb1b33d['order']=qs['sort'](_0x1ae97c[_0x44a6('0x32')][_0x44a6('0x3a')]);_0xb1b33d[_0x44a6('0x3e')]=qs[_0x44a6('0x3b')](_[_0x44a6('0x3c')](_0x1ae97c[_0x44a6('0x32')],_0x465cfe['filters']));if(_0x1ae97c[_0x44a6('0x32')][_0x44a6('0x3d')]){_0xb1b33d['where']=_[_0x44a6('0x3f')](_0xb1b33d['where'],{'$or':_[_0x44a6('0x2c')](_0xb1b33d[_0x44a6('0x35')],function(_0x506ea7){var _0x1d1b0b={};_0x1d1b0b[_0x506ea7]={'$like':'%'+_0x1ae97c[_0x44a6('0x32')][_0x44a6('0x3d')]+'%'};return _0x1d1b0b;})});}_0xb1b33d=_['merge']({},_0xb1b33d,_0x1ae97c['options']);return _0x4fd7d9[_0x44a6('0x51')](_0xb1b33d);}})['then'](function(_0x520021){if(_0x520021){_0x3cce61=_0x520021['length'];if(!_0x1ae97c[_0x44a6('0x32')][_0x44a6('0x37')](_0x44a6('0x38'))){_0xb1b33d['limit']=qs[_0x44a6('0x21')](_0x1ae97c[_0x44a6('0x32')][_0x44a6('0x21')]);_0xb1b33d[_0x44a6('0x1f')]=qs['offset'](_0x1ae97c['query'][_0x44a6('0x1f')]);}return _0x4fd7d9[_0x44a6('0x51')](_0xb1b33d);}})[_0x44a6('0x26')](function(_0x498a78){if(_0x498a78){return _0x498a78?{'count':_0x3cce61,'rows':_0x498a78}:null;}})['then'](respondWithResult(_0x5d4a87,null))[_0x44a6('0x45')](handleError(_0x5d4a87,null));};exports['addActions']=function(_0x403b54,_0x437baf,_0x3bf9af){return db[_0x44a6('0x53')]['find']({'where':{'id':_0x403b54[_0x44a6('0x47')]['id']}})[_0x44a6('0x26')](handleEntityNotFound(_0x437baf,null))[_0x44a6('0x26')](function(_0x4e54da){if(_0x4e54da){return _0x4e54da[_0x44a6('0x54')](_0x403b54[_0x44a6('0x4c')][_0x44a6('0x50')],_['omit'](_0x403b54['body'],['ids','id'])||{});}})[_0x44a6('0x26')](respondWithResult(_0x437baf,null))[_0x44a6('0x45')](handleError(_0x437baf,null));};exports['getActions']=function(_0x1d31b2,_0x4a9e44,_0x85f267){var _0x2f40ea={};var _0x271a09={};var _0x50aa6c;var _0x43ddf6;return db[_0x44a6('0x41')]['findOne']({'where':{'id':_0x1d31b2[_0x44a6('0x47')]['id']}})['then'](handleEntityNotFound(_0x4a9e44,null))[_0x44a6('0x26')](function(_0x1c67f2){if(_0x1c67f2){_0x50aa6c=_0x1c67f2;_0x271a09['model']=_['keys'](db[_0x44a6('0x53')]['rawAttributes']);_0x271a09[_0x44a6('0x32')]=_['keys'](_0x1d31b2['query']);_0x271a09[_0x44a6('0x3b')]=_['intersection'](_0x271a09[_0x44a6('0x31')],_0x271a09[_0x44a6('0x32')]);_0x2f40ea[_0x44a6('0x35')]=_[_0x44a6('0x34')](_0x271a09[_0x44a6('0x31')],qs[_0x44a6('0x36')](_0x1d31b2[_0x44a6('0x32')][_0x44a6('0x36')]));_0x2f40ea['attributes']=_0x2f40ea[_0x44a6('0x35')][_0x44a6('0x48')]?_0x2f40ea[_0x44a6('0x35')]:_0x271a09[_0x44a6('0x31')];_0x2f40ea[_0x44a6('0x39')]=qs[_0x44a6('0x3a')](_0x1d31b2[_0x44a6('0x32')][_0x44a6('0x3a')]);_0x2f40ea[_0x44a6('0x3e')]=qs[_0x44a6('0x3b')](_[_0x44a6('0x3c')](_0x1d31b2[_0x44a6('0x32')],_0x271a09['filters']));if(_0x1d31b2[_0x44a6('0x32')]['filter']){_0x2f40ea['where']=_[_0x44a6('0x3f')](_0x2f40ea[_0x44a6('0x3e')],{'$or':_[_0x44a6('0x2c')](_0x2f40ea[_0x44a6('0x35')],function(_0x134dae){var _0x3d015c={};_0x3d015c[_0x134dae]={'$like':'%'+_0x1d31b2['query'][_0x44a6('0x3d')]+'%'};return _0x3d015c;})});}_0x2f40ea=_[_0x44a6('0x3f')]({},_0x2f40ea,_0x1d31b2[_0x44a6('0x49')]);return _0x50aa6c[_0x44a6('0x55')](_0x2f40ea);}})['then'](function(_0x3d7fa2){if(_0x3d7fa2){_0x43ddf6=_0x3d7fa2[_0x44a6('0x48')];if(!_0x1d31b2['query'][_0x44a6('0x37')](_0x44a6('0x38'))){_0x2f40ea['limit']=qs[_0x44a6('0x21')](_0x1d31b2[_0x44a6('0x32')]['limit']);_0x2f40ea[_0x44a6('0x1f')]=qs[_0x44a6('0x1f')](_0x1d31b2[_0x44a6('0x32')]['offset']);}return _0x50aa6c[_0x44a6('0x55')](_0x2f40ea);}})['then'](function(_0x43d7d0){if(_0x43d7d0){return _0x43d7d0?{'count':_0x43ddf6,'rows':_0x43d7d0}:null;}})[_0x44a6('0x26')](respondWithResult(_0x4a9e44,null))[_0x44a6('0x45')](handleError(_0x4a9e44,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdf0f=['./automation.attributes','exports','define','Automation','tools_automations','api','moment','bluebird','path','rimraf','../../config/environment'];(function(_0x29f2d2,_0x29a655){var _0x4eafd3=function(_0x2f96d6){while(--_0x2f96d6){_0x29f2d2['push'](_0x29f2d2['shift']());}};_0x4eafd3(++_0x29a655);}(_0xdf0f,0xcb));var _0xfdf0=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0xdf0f[_0xa464c9];return _0x3d73c4;};'use strict';var _=require('lodash');var util=require('util');var logger=require('../../config/logger')(_0xfdf0('0x0'));var moment=require(_0xfdf0('0x1'));var BPromise=require(_0xfdf0('0x2'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xfdf0('0x3'));var rimraf=require(_0xfdf0('0x4'));var config=require(_0xfdf0('0x5'));var attributes=require(_0xfdf0('0x6'));module[_0xfdf0('0x7')]=function(_0x8c00f5,_0x4493cf){return _0x8c00f5[_0xfdf0('0x8')](_0xfdf0('0x9'),attributes,{'tableName':_0xfdf0('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x13df=['util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./automation.attributes','define','Automation','lodash'];(function(_0x2c5df9,_0x2811cb){var _0x39d1d0=function(_0x57c343){while(--_0x57c343){_0x2c5df9['push'](_0x2c5df9['shift']());}};_0x39d1d0(++_0x2811cb);}(_0x13df,0xcf));var _0xf13d=function(_0x8e10f5,_0x4aa47c){_0x8e10f5=_0x8e10f5-0x0;var _0x369cdc=_0x13df[_0x8e10f5];return _0x369cdc;};'use strict';var _=require(_0xf13d('0x0'));var util=require(_0xf13d('0x1'));var logger=require(_0xf13d('0x2'))(_0xf13d('0x3'));var moment=require(_0xf13d('0x4'));var BPromise=require(_0xf13d('0x5'));var rp=require(_0xf13d('0x6'));var fs=require('fs');var path=require(_0xf13d('0x7'));var rimraf=require(_0xf13d('0x8'));var config=require(_0xf13d('0x9'));var attributes=require(_0xf13d('0xa'));module['exports']=function(_0x4f1a17,_0x55c834){return _0x4f1a17[_0xf13d('0xb')](_0xf13d('0xc'),attributes,{'tableName':'tools_automations','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4f81=['moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','then','Automation,\x20%s,\x20%s','request\x20sent','debug','Automation,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch'];(function(_0x38b3cb,_0x4ad7b3){var _0x5a9a84=function(_0x237634){while(--_0x237634){_0x38b3cb['push'](_0x38b3cb['shift']());}};_0x5a9a84(++_0x4ad7b3);}(_0x4f81,0x1e3));var _0x14f8=function(_0x1dc84f,_0x145684){_0x1dc84f=_0x1dc84f-0x0;var _0x5d00d6=_0x4f81[_0x1dc84f];return _0x5d00d6;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x14f8('0x0'));var BPromise=require('bluebird');var rs=require(_0x14f8('0x1'));var fs=require('fs');var Redis=require(_0x14f8('0x2'));var db=require(_0x14f8('0x3'))['db'];var utils=require(_0x14f8('0x4'));var logger=require(_0x14f8('0x5'))(_0x14f8('0x6'));var config=require(_0x14f8('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x14f8('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x174c60,_0x245fc3,_0x4a58cd){return new BPromise(function(_0x429066,_0x4169c3){return client['request'](_0x174c60,_0x4a58cd)[_0x14f8('0x9')](function(_0x47b8b9){logger['info'](_0x14f8('0xa'),_0x245fc3,_0x14f8('0xb'));logger[_0x14f8('0xc')](_0x14f8('0xd'),_0x245fc3,_0x14f8('0xb'),JSON[_0x14f8('0xe')](_0x47b8b9));if(_0x47b8b9[_0x14f8('0xf')]){if(_0x47b8b9[_0x14f8('0xf')][_0x14f8('0x10')]===0x1f4){logger[_0x14f8('0xf')](_0x14f8('0xa'),_0x245fc3,_0x47b8b9[_0x14f8('0xf')]['message']);return _0x4169c3(_0x47b8b9[_0x14f8('0xf')][_0x14f8('0x11')]);}logger[_0x14f8('0xf')](_0x14f8('0xa'),_0x245fc3,_0x47b8b9[_0x14f8('0xf')][_0x14f8('0x11')]);return _0x429066(_0x47b8b9[_0x14f8('0xf')][_0x14f8('0x11')]);}else{logger[_0x14f8('0x12')](_0x14f8('0xa'),_0x245fc3,'request\x20sent');_0x429066(_0x47b8b9[_0x14f8('0x13')][_0x14f8('0x11')]);}})[_0x14f8('0x14')](function(_0x27b132){logger[_0x14f8('0xf')](_0x14f8('0xa'),_0x245fc3,_0x27b132);_0x4169c3(_0x27b132);});});}
\ No newline at end of file
+var _0x6739=['code','message','lodash','util','moment','bluebird','randomstring','ioredis','../../config/logger','../../config/environment','http','request','then','info','Automation,\x20%s,\x20%s','request\x20sent','Automation,\x20%s,\x20%s,\x20%s','stringify','error'];(function(_0x7ba65c,_0x18a718){var _0x4aaac9=function(_0x559e2d){while(--_0x559e2d){_0x7ba65c['push'](_0x7ba65c['shift']());}};_0x4aaac9(++_0x18a718);}(_0x6739,0xd3));var _0x9673=function(_0x37e023,_0x4cbdb3){_0x37e023=_0x37e023-0x0;var _0x5d0153=_0x6739[_0x37e023];return _0x5d0153;};'use strict';var _=require(_0x9673('0x0'));var util=require(_0x9673('0x1'));var moment=require(_0x9673('0x2'));var BPromise=require(_0x9673('0x3'));var rs=require(_0x9673('0x4'));var fs=require('fs');var Redis=require(_0x9673('0x5'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x9673('0x6'))('rpc');var config=require(_0x9673('0x7'));var jayson=require('jayson/promise');var client=jayson['client'][_0x9673('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x3ad052,_0x3f82df,_0x4981d9){return new BPromise(function(_0x4e1dd5,_0x39b0f0){return client[_0x9673('0x9')](_0x3ad052,_0x4981d9)[_0x9673('0xa')](function(_0x509966){logger[_0x9673('0xb')](_0x9673('0xc'),_0x3f82df,_0x9673('0xd'));logger['debug'](_0x9673('0xe'),_0x3f82df,_0x9673('0xd'),JSON[_0x9673('0xf')](_0x509966));if(_0x509966[_0x9673('0x10')]){if(_0x509966['error'][_0x9673('0x11')]===0x1f4){logger[_0x9673('0x10')](_0x9673('0xc'),_0x3f82df,_0x509966[_0x9673('0x10')]['message']);return _0x39b0f0(_0x509966[_0x9673('0x10')][_0x9673('0x12')]);}logger['error'](_0x9673('0xc'),_0x3f82df,_0x509966[_0x9673('0x10')][_0x9673('0x12')]);return _0x4e1dd5(_0x509966['error'][_0x9673('0x12')]);}else{logger['info'](_0x9673('0xc'),_0x3f82df,'request\x20sent');_0x4e1dd5(_0x509966['result'][_0x9673('0x12')]);}})['catch'](function(_0x3d5642){logger[_0x9673('0x10')]('Automation,\x20%s,\x20%s',_0x3f82df,_0x3d5642);_0x39b0f0(_0x3d5642);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5c58=['util','path','Router','fs-extra','../../components/auth/service','../../config/environment','isAuthenticated','get','/:id/conditions','getConditions','/:id/actions','getActions','post','create','addConditions','addActions','put','/:id','update','exports'];(function(_0x5ddb1c,_0x5ea4df){var _0x354adc=function(_0x2dfb1f){while(--_0x2dfb1f){_0x5ddb1c['push'](_0x5ddb1c['shift']());}};_0x354adc(++_0x5ea4df);}(_0x5c58,0x154));var _0x85c5=function(_0x3ff646,_0x51a155){_0x3ff646=_0x3ff646-0x0;var _0x1ba81b=_0x5c58[_0x3ff646];return _0x1ba81b;};'use strict';var multer=require('multer');var util=require(_0x85c5('0x0'));var path=require(_0x85c5('0x1'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x85c5('0x2')]();var fs_extra=require(_0x85c5('0x3'));var auth=require(_0x85c5('0x4'));var interaction=require('../../components/interaction/service');var config=require(_0x85c5('0x5'));var controller=require('./automation.controller');router['get']('/',auth[_0x85c5('0x6')](),controller['index']);router[_0x85c5('0x7')]('/:id',auth['isAuthenticated'](),controller['show']);router[_0x85c5('0x7')](_0x85c5('0x8'),auth['isAuthenticated'](),controller[_0x85c5('0x9')]);router['get'](_0x85c5('0xa'),auth[_0x85c5('0x6')](),controller[_0x85c5('0xb')]);router[_0x85c5('0xc')]('/',auth['isAuthenticated'](),controller[_0x85c5('0xd')]);router[_0x85c5('0xc')](_0x85c5('0x8'),auth[_0x85c5('0x6')](),controller[_0x85c5('0xe')]);router['post'](_0x85c5('0xa'),auth[_0x85c5('0x6')](),controller[_0x85c5('0xf')]);router[_0x85c5('0x10')](_0x85c5('0x11'),auth['isAuthenticated'](),controller[_0x85c5('0x12')]);router['delete'](_0x85c5('0x11'),auth[_0x85c5('0x6')](),controller['destroy']);module[_0x85c5('0x13')]=router;
\ No newline at end of file
+var _0x984b=['getConditions','/:id/actions','getActions','post','create','/:id/conditions','addActions','delete','destroy','exports','connect-timeout','express','Router','../../components/interaction/service','../../config/environment','isAuthenticated','index','/:id','get'];(function(_0x3ff085,_0x27c92e){var _0x2b68c3=function(_0x37811e){while(--_0x37811e){_0x3ff085['push'](_0x3ff085['shift']());}};_0x2b68c3(++_0x27c92e);}(_0x984b,0xee));var _0xb984=function(_0x217ce1,_0x162706){_0x217ce1=_0x217ce1-0x0;var _0x2b30df=_0x984b[_0x217ce1];return _0x2b30df;};'use strict';var multer=require('multer');var util=require('util');var path=require('path');var timeout=require(_0xb984('0x0'));var express=require(_0xb984('0x1'));var router=express[_0xb984('0x2')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0xb984('0x3'));var config=require(_0xb984('0x4'));var controller=require('./automation.controller');router['get']('/',auth[_0xb984('0x5')](),controller[_0xb984('0x6')]);router['get'](_0xb984('0x7'),auth[_0xb984('0x5')](),controller['show']);router[_0xb984('0x8')]('/:id/conditions',auth[_0xb984('0x5')](),controller[_0xb984('0x9')]);router[_0xb984('0x8')](_0xb984('0xa'),auth[_0xb984('0x5')](),controller[_0xb984('0xb')]);router[_0xb984('0xc')]('/',auth[_0xb984('0x5')](),controller[_0xb984('0xd')]);router[_0xb984('0xc')](_0xb984('0xe'),auth[_0xb984('0x5')](),controller['addConditions']);router[_0xb984('0xc')]('/:id/actions',auth[_0xb984('0x5')](),controller[_0xb984('0xf')]);router['put'](_0xb984('0x7'),auth[_0xb984('0x5')](),controller['update']);router[_0xb984('0x10')](_0xb984('0x7'),auth['isAuthenticated'](),controller[_0xb984('0x11')]);module[_0xb984('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x08a6=['#AMD\x20Maximum\x20Number\x20Of\x20Words','#AMD\x20Silence\x20Threshold\x20(min:0,\x20max:32767)','#AMD\x20Maximum\x20Word\x20Length','DESC','ASC','Random\x20Last\x20Digit\x20(min:1,\x20max:15)','Cut\x20Digit\x20(min:1,\x20max:15)','#NoSuchNumber\x20Retry\x20(min:1,\x20max:999)','NoSuchNumber\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Drop\x20Retry\x20(min:1,\x20max:999)','Drop\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Abandoned\x20Retry\x20(min:1,\x20max:999)','Abandoned\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','Machine\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#AgentReject\x20Retry\x20(min:1,\x20max:999)','sequelize','exports','STRING','ENUM','ivr','BOOLEAN','INTEGER','UNSIGNED','Max\x20200\x20calls.','Originate\x20Timeout\x20Seconds\x20(min:1,\x20max:999)','Congestion\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','Busy\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#NoAnswer\x20Retry\x20(min:1,\x20max:999)','NoAnswer\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Global\x20Max\x20Retry\x20(min:1,\x20max:999)','always','onlyIfOpen','#AMD\x20Initial\x20Silence','#AMD\x20After\x20Greeting\x20Silence','#AMD\x20Total\x20Analysis\x20Time','#AMD\x20Min\x20Word\x20Length','#AMD\x20Between\x20Words\x20Silence'];(function(_0x2be8c2,_0x14a4b5){var _0x97f531=function(_0xcee58d){while(--_0xcee58d){_0x2be8c2['push'](_0x2be8c2['shift']());}};_0x97f531(++_0x14a4b5);}(_0x08a6,0x112));var _0x608a=function(_0x457ef8,_0x1a19ae){_0x457ef8=_0x457ef8-0x0;var _0x596c56=_0x08a6[_0x457ef8];return _0x596c56;};'use strict';var Sequelize=require(_0x608a('0x0'));module[_0x608a('0x1')]={'name':{'type':Sequelize[_0x608a('0x2')],'unique':'name','allowNull':![],'validate':{'is':/[A-Za-z0-9._\\+*!-]+/,'notEmpty':!![]}},'type':{'type':Sequelize[_0x608a('0x3')](_0x608a('0x4')),'allowNull':![],'defaultValue':_0x608a('0x4')},'description':{'type':Sequelize[_0x608a('0x2')]},'active':{'type':Sequelize[_0x608a('0x5')],'defaultValue':0x0,'comment':'Active/Disactive\x20Campaign'},'limitCalls':{'type':Sequelize[_0x608a('0x6')](0x4)[_0x608a('0x7')],'defaultValue':0x1e,'validate':{'min':0x1,'max':0xc8},'comment':_0x608a('0x8')},'dialOriginateCallerIdName':{'type':Sequelize['STRING']},'dialOriginateCallerIdNumber':{'type':Sequelize[_0x608a('0x2')]},'dialOriginateTimeout':{'type':Sequelize['INTEGER'](0x3)[_0x608a('0x7')],'defaultValue':0x1e,'validate':{'min':0x1,'max':0x3e7},'comment':_0x608a('0x9')},'dialCongestionMaxRetry':{'type':Sequelize[_0x608a('0x6')](0x3)[_0x608a('0x7')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'#Congestion\x20Retry\x20(min:1,\x20max:999)'},'dialCongestionRetryFrequency':{'type':Sequelize['INTEGER'](0x5)[_0x608a('0x7')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x608a('0xa')},'dialBusyMaxRetry':{'type':Sequelize[_0x608a('0x6')](0x3)['UNSIGNED'],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'#Busy\x20Retry\x20(min:1,\x20max:999)'},'dialBusyRetryFrequency':{'type':Sequelize[_0x608a('0x6')](0x5)['UNSIGNED'],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x608a('0xb')},'dialNoAnswerMaxRetry':{'type':Sequelize[_0x608a('0x6')](0x3)[_0x608a('0x7')],'defaultValue':0x3,'comment':_0x608a('0xc')},'dialNoAnswerRetryFrequency':{'type':Sequelize[_0x608a('0x6')](0x5)['UNSIGNED'],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x608a('0xd')},'dialGlobalMaxRetry':{'type':Sequelize[_0x608a('0x6')](0x3)[_0x608a('0x7')],'validate':{'min':0x1,'max':0x3e7},'defaultValue':0x4,'comment':_0x608a('0xe')},'dialTimezone':{'type':Sequelize[_0x608a('0x2')],'defaultValue':null},'dialGlobalInterval':{'type':Sequelize[_0x608a('0x2')],'defaultValue':'07:00-22:00,*,*,*'},'dialCheckDuplicateType':{'type':Sequelize['ENUM'](_0x608a('0xf'),'never',_0x608a('0x10')),'defaultValue':_0x608a('0xf')},'dialAMDActive':{'type':Sequelize[_0x608a('0x5')],'defaultValue':0x0,'comment':'Active/Disactive\x20AMD'},'dialAMDInitialSilence':{'type':Sequelize['INTEGER'](0x9)['UNSIGNED'],'defaultValue':0x9c4,'validate':{'min':0x0},'comment':_0x608a('0x11')},'dialAMDGreeting':{'type':Sequelize[_0x608a('0x6')](0x9)[_0x608a('0x7')],'defaultValue':0x5dc,'validate':{'min':0x0},'comment':'#AMD\x20Greeting'},'dialAMDAfterGreetingSilence':{'type':Sequelize[_0x608a('0x6')](0x9)[_0x608a('0x7')],'defaultValue':0x320,'validate':{'min':0x0},'comment':_0x608a('0x12')},'dialAMDTotalAnalysisTime':{'type':Sequelize[_0x608a('0x6')](0x9)[_0x608a('0x7')],'defaultValue':0x1388,'validate':{'min':0x0},'comment':_0x608a('0x13')},'dialAMDMinWordLength':{'type':Sequelize['INTEGER'](0x9)[_0x608a('0x7')],'defaultValue':0x64,'validate':{'min':0x0},'comment':_0x608a('0x14')},'dialAMDBetweenWordsSilence':{'type':Sequelize[_0x608a('0x6')](0x9)[_0x608a('0x7')],'defaultValue':0x32,'validate':{'min':0x0},'comment':_0x608a('0x15')},'dialAMDMaximumNumberOfWords':{'type':Sequelize[_0x608a('0x6')](0x9)['UNSIGNED'],'defaultValue':0x3,'validate':{'min':0x0},'comment':_0x608a('0x16')},'dialAMDSilenceThreshold':{'type':Sequelize[_0x608a('0x6')](0x5)['UNSIGNED'],'validate':{'min':0x0,'max':0x7fff},'defaultValue':0x100,'comment':_0x608a('0x17')},'dialAMDMaximumWordLength':{'type':Sequelize[_0x608a('0x6')](0x9)['UNSIGNED'],'defaultValue':0x1388,'validate':{'min':0x0},'comment':_0x608a('0x18')},'dialOrderByScheduledAt':{'type':Sequelize[_0x608a('0x3')](_0x608a('0x19'),_0x608a('0x1a')),'defaultValue':'DESC'},'dialPrefix':{'type':Sequelize[_0x608a('0x2')],'defaultValue':null},'dialRandomLastDigitCallerIdNumber':{'type':Sequelize[_0x608a('0x6')](0x3)[_0x608a('0x7')],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':_0x608a('0x1b')},'dialCutDigit':{'type':Sequelize['INTEGER'](0x3)[_0x608a('0x7')],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':_0x608a('0x1c')},'dialNoSuchNumberMaxRetry':{'type':Sequelize['INTEGER'](0x3)[_0x608a('0x7')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x608a('0x1d')},'dialNoSuchNumberRetryFrequency':{'type':Sequelize[_0x608a('0x6')](0x5)[_0x608a('0x7')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x608a('0x1e')},'dialDropMaxRetry':{'type':Sequelize['INTEGER'](0x3)[_0x608a('0x7')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x608a('0x1f')},'dialDropRetryFrequency':{'type':Sequelize[_0x608a('0x6')](0x5)[_0x608a('0x7')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x608a('0x20')},'dialAbandonedMaxRetry':{'type':Sequelize['INTEGER'](0x3)[_0x608a('0x7')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x608a('0x21')},'dialAbandonedRetryFrequency':{'type':Sequelize[_0x608a('0x6')](0x5)['UNSIGNED'],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x608a('0x22')},'dialMachineMaxRetry':{'type':Sequelize[_0x608a('0x6')](0x3)[_0x608a('0x7')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'#Machine\x20Retry\x20(min:1,\x20max:999)'},'dialMachineRetryFrequency':{'type':Sequelize[_0x608a('0x6')](0x5)['UNSIGNED'],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x608a('0x23')},'dialAgentRejectMaxRetry':{'type':Sequelize[_0x608a('0x6')](0x3)[_0x608a('0x7')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x608a('0x24')},'dialAgentRejectRetryFrequency':{'type':Sequelize['INTEGER'](0x5)['UNSIGNED'],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'AgentReject\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'}};
\ No newline at end of file
+var _0xb30e=['ENUM','never','onlyIfOpen','Active/Disactive\x20AMD','#AMD\x20Greeting','#AMD\x20After\x20Greeting\x20Silence','#AMD\x20Min\x20Word\x20Length','#AMD\x20Maximum\x20Word\x20Length','DESC','ASC','Random\x20Last\x20Digit\x20(min:1,\x20max:15)','#NoSuchNumber\x20Retry\x20(min:1,\x20max:999)','NoSuchNumber\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','Drop\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Abandoned\x20Retry\x20(min:1,\x20max:999)','Abandoned\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Machine\x20Retry\x20(min:1,\x20max:999)','#AgentReject\x20Retry\x20(min:1,\x20max:999)','exports','STRING','name','ivr','BOOLEAN','Active/Disactive\x20Campaign','INTEGER','UNSIGNED','Max\x20200\x20calls.','Originate\x20Timeout\x20Seconds\x20(min:1,\x20max:999)','#Congestion\x20Retry\x20(min:1,\x20max:999)','#NoAnswer\x20Retry\x20(min:1,\x20max:999)','NoAnswer\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Global\x20Max\x20Retry\x20(min:1,\x20max:999)','07:00-22:00,*,*,*'];(function(_0x39e005,_0x30a6d8){var _0x4a9f4e=function(_0xa39a9d){while(--_0xa39a9d){_0x39e005['push'](_0x39e005['shift']());}};_0x4a9f4e(++_0x30a6d8);}(_0xb30e,0x17d));var _0xeb30=function(_0x4c9806,_0x1d3ef5){_0x4c9806=_0x4c9806-0x0;var _0x570950=_0xb30e[_0x4c9806];return _0x570950;};'use strict';var Sequelize=require('sequelize');module[_0xeb30('0x0')]={'name':{'type':Sequelize[_0xeb30('0x1')],'unique':_0xeb30('0x2'),'allowNull':![],'validate':{'is':/[A-Za-z0-9._\\+*!-]+/,'notEmpty':!![]}},'type':{'type':Sequelize['ENUM'](_0xeb30('0x3')),'allowNull':![],'defaultValue':'ivr'},'description':{'type':Sequelize[_0xeb30('0x1')]},'active':{'type':Sequelize[_0xeb30('0x4')],'defaultValue':0x0,'comment':_0xeb30('0x5')},'limitCalls':{'type':Sequelize[_0xeb30('0x6')](0x4)[_0xeb30('0x7')],'defaultValue':0x1e,'validate':{'min':0x1,'max':0xc8},'comment':_0xeb30('0x8')},'dialOriginateCallerIdName':{'type':Sequelize[_0xeb30('0x1')]},'dialOriginateCallerIdNumber':{'type':Sequelize[_0xeb30('0x1')]},'dialOriginateTimeout':{'type':Sequelize['INTEGER'](0x3)[_0xeb30('0x7')],'defaultValue':0x1e,'validate':{'min':0x1,'max':0x3e7},'comment':_0xeb30('0x9')},'dialCongestionMaxRetry':{'type':Sequelize['INTEGER'](0x3)['UNSIGNED'],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0xeb30('0xa')},'dialCongestionRetryFrequency':{'type':Sequelize[_0xeb30('0x6')](0x5)['UNSIGNED'],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'Congestion\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'dialBusyMaxRetry':{'type':Sequelize[_0xeb30('0x6')](0x3)[_0xeb30('0x7')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'#Busy\x20Retry\x20(min:1,\x20max:999)'},'dialBusyRetryFrequency':{'type':Sequelize['INTEGER'](0x5)[_0xeb30('0x7')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'Busy\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'dialNoAnswerMaxRetry':{'type':Sequelize[_0xeb30('0x6')](0x3)['UNSIGNED'],'defaultValue':0x3,'comment':_0xeb30('0xb')},'dialNoAnswerRetryFrequency':{'type':Sequelize[_0xeb30('0x6')](0x5)[_0xeb30('0x7')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0xeb30('0xc')},'dialGlobalMaxRetry':{'type':Sequelize['INTEGER'](0x3)[_0xeb30('0x7')],'validate':{'min':0x1,'max':0x3e7},'defaultValue':0x4,'comment':_0xeb30('0xd')},'dialTimezone':{'type':Sequelize[_0xeb30('0x1')],'defaultValue':null},'dialGlobalInterval':{'type':Sequelize['STRING'],'defaultValue':_0xeb30('0xe')},'dialCheckDuplicateType':{'type':Sequelize[_0xeb30('0xf')]('always',_0xeb30('0x10'),_0xeb30('0x11')),'defaultValue':'always'},'dialAMDActive':{'type':Sequelize[_0xeb30('0x4')],'defaultValue':0x0,'comment':_0xeb30('0x12')},'dialAMDInitialSilence':{'type':Sequelize[_0xeb30('0x6')](0x9)[_0xeb30('0x7')],'defaultValue':0x9c4,'validate':{'min':0x0},'comment':'#AMD\x20Initial\x20Silence'},'dialAMDGreeting':{'type':Sequelize[_0xeb30('0x6')](0x9)[_0xeb30('0x7')],'defaultValue':0x5dc,'validate':{'min':0x0},'comment':_0xeb30('0x13')},'dialAMDAfterGreetingSilence':{'type':Sequelize['INTEGER'](0x9)[_0xeb30('0x7')],'defaultValue':0x320,'validate':{'min':0x0},'comment':_0xeb30('0x14')},'dialAMDTotalAnalysisTime':{'type':Sequelize[_0xeb30('0x6')](0x9)[_0xeb30('0x7')],'defaultValue':0x1388,'validate':{'min':0x0},'comment':'#AMD\x20Total\x20Analysis\x20Time'},'dialAMDMinWordLength':{'type':Sequelize['INTEGER'](0x9)['UNSIGNED'],'defaultValue':0x64,'validate':{'min':0x0},'comment':_0xeb30('0x15')},'dialAMDBetweenWordsSilence':{'type':Sequelize[_0xeb30('0x6')](0x9)[_0xeb30('0x7')],'defaultValue':0x32,'validate':{'min':0x0},'comment':'#AMD\x20Between\x20Words\x20Silence'},'dialAMDMaximumNumberOfWords':{'type':Sequelize[_0xeb30('0x6')](0x9)[_0xeb30('0x7')],'defaultValue':0x3,'validate':{'min':0x0},'comment':'#AMD\x20Maximum\x20Number\x20Of\x20Words'},'dialAMDSilenceThreshold':{'type':Sequelize['INTEGER'](0x5)[_0xeb30('0x7')],'validate':{'min':0x0,'max':0x7fff},'defaultValue':0x100,'comment':'#AMD\x20Silence\x20Threshold\x20(min:0,\x20max:32767)'},'dialAMDMaximumWordLength':{'type':Sequelize[_0xeb30('0x6')](0x9)['UNSIGNED'],'defaultValue':0x1388,'validate':{'min':0x0},'comment':_0xeb30('0x16')},'dialOrderByScheduledAt':{'type':Sequelize['ENUM'](_0xeb30('0x17'),_0xeb30('0x18')),'defaultValue':'DESC'},'dialPrefix':{'type':Sequelize[_0xeb30('0x1')],'defaultValue':null},'dialRandomLastDigitCallerIdNumber':{'type':Sequelize[_0xeb30('0x6')](0x3)['UNSIGNED'],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':_0xeb30('0x19')},'dialCutDigit':{'type':Sequelize['INTEGER'](0x3)[_0xeb30('0x7')],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':'Cut\x20Digit\x20(min:1,\x20max:15)'},'dialNoSuchNumberMaxRetry':{'type':Sequelize[_0xeb30('0x6')](0x3)[_0xeb30('0x7')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0xeb30('0x1a')},'dialNoSuchNumberRetryFrequency':{'type':Sequelize[_0xeb30('0x6')](0x5)[_0xeb30('0x7')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0xeb30('0x1b')},'dialDropMaxRetry':{'type':Sequelize[_0xeb30('0x6')](0x3)[_0xeb30('0x7')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'#Drop\x20Retry\x20(min:1,\x20max:999)'},'dialDropRetryFrequency':{'type':Sequelize[_0xeb30('0x6')](0x5)[_0xeb30('0x7')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0xeb30('0x1c')},'dialAbandonedMaxRetry':{'type':Sequelize[_0xeb30('0x6')](0x3)[_0xeb30('0x7')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0xeb30('0x1d')},'dialAbandonedRetryFrequency':{'type':Sequelize[_0xeb30('0x6')](0x5)[_0xeb30('0x7')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0xeb30('0x1e')},'dialMachineMaxRetry':{'type':Sequelize['INTEGER'](0x3)[_0xeb30('0x7')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0xeb30('0x1f')},'dialMachineRetryFrequency':{'type':Sequelize[_0xeb30('0x6')](0x5)[_0xeb30('0x7')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'Machine\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'dialAgentRejectMaxRetry':{'type':Sequelize[_0xeb30('0x6')](0x3)[_0xeb30('0x7')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0xeb30('0x20')},'dialAgentRejectRetryFrequency':{'type':Sequelize[_0xeb30('0x6')](0x5)[_0xeb30('0x7')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'AgentReject\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd30d=['into','cm_contacts','ListId\x20=\x20?','push','all','removeLists','getBlackLists','addBlackLists','sequelize','removeBlackLists','rimraf','zip-dir','fast-json-patch','request-promise','moment','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','get','IvrCampaigns','UserProfileResource','end','stack','name','send','map','type','query','filters','intersection','fields','attributes','length','model','hasOwnProperty','nolimit','sort','where','pick','filter','VIRTUAL','Campaign','includeAll','include','findAll','catch','show','params','keys','rawAttributes','merge','find','create','body','user','UserProfileSection','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','clone','options','omit','updatedAt','createdAt','role','userProfileId','error','getHoppers','CmHopper','rows','getHopperHistories','findOne','CmHopperHistory','order','getHopperFinals','CmHopperFinal','getHopperBlacks','CmHopperBlack','getLists','CmList','addLists','ids','spread','dialCheckDuplicateType','always','insert','cm_hopper','fromQuery','scheduledAt','ContactId','ListId','CampaignId','select','phone','field','NOW()','CmListId','toString','deletedAt\x20IS\x20NULL','phone\x20IS\x20NOT\x20NULL','phone\x20NOT\x20IN\x20(?)','COALESCE(calleridnum,\x27\x27)','from','cm_hopper_final','CampaignId\x20=\x20?','COALESCE(phone,\x27\x27)','onlyIfOpen'];(function(_0x2428a0,_0x320381){var _0x27ef6a=function(_0x9c3bc){while(--_0x9c3bc){_0x2428a0['push'](_0x2428a0['shift']());}};_0x27ef6a(++_0x320381);}(_0xd30d,0x11a));var _0xdd30=function(_0x335f18,_0x56be67){_0x335f18=_0x335f18-0x0;var _0x1b167d=_0xd30d[_0x335f18];return _0x1b167d;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xdd30('0x0'));var zipdir=require(_0xdd30('0x1'));var jsonpatch=require(_0xdd30('0x2'));var rp=require(_0xdd30('0x3'));var moment=require(_0xdd30('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require(_0xdd30('0x5'));var sox=require(_0xdd30('0x6'));var csv=require('to-csv');var ejs=require(_0xdd30('0x7'));var fs=require('fs');var fs_extra=require(_0xdd30('0x8'));var _=require(_0xdd30('0x9'));var squel=require(_0xdd30('0xa'));var crypto=require(_0xdd30('0xb'));var jsforce=require(_0xdd30('0xc'));var deskjs=require('desk.js');var toCsv=require(_0xdd30('0xd'));var querystring=require(_0xdd30('0xe'));var Papa=require('papaparse');var Redis=require(_0xdd30('0xf'));var authService=require(_0xdd30('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0xdd30('0x11'));var hardwareService=require(_0xdd30('0x12'));var logger=require(_0xdd30('0x13'))(_0xdd30('0x14'));var utils=require(_0xdd30('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0xdd30('0x16'));var db=require(_0xdd30('0x17'))['db'];function respondWithStatusCode(_0x93c903,_0x2990a5){_0x2990a5=_0x2990a5||0xcc;return function(_0x48abd6){if(_0x48abd6){return _0x93c903[_0xdd30('0x18')](_0x2990a5);}return _0x93c903[_0xdd30('0x19')](_0x2990a5)['end']();};}function respondWithResult(_0x1d2639,_0x253198){_0x253198=_0x253198||0xc8;return function(_0x4b8a5d){if(_0x4b8a5d){return _0x1d2639['status'](_0x253198)[_0xdd30('0x1a')](_0x4b8a5d);}};}function respondWithFilteredResult(_0x1fc04f,_0x5ac1bd){return function(_0x3baf08){if(_0x3baf08){var _0x197e03=typeof _0x5ac1bd[_0xdd30('0x1b')]===_0xdd30('0x1c')&&typeof _0x5ac1bd[_0xdd30('0x1d')]===_0xdd30('0x1c');var _0x22a3ea=_0x3baf08['count'];var _0xdca55d=_0x197e03?0x0:_0x5ac1bd[_0xdd30('0x1b')];var _0x10423f=_0x197e03?_0x3baf08[_0xdd30('0x1e')]:_0x5ac1bd[_0xdd30('0x1b')]+_0x5ac1bd[_0xdd30('0x1d')];var _0x16fe71;if(_0x10423f>=_0x22a3ea){_0x10423f=_0x22a3ea;_0x16fe71=0xc8;}else{_0x16fe71=0xce;}_0x1fc04f['status'](_0x16fe71);return _0x1fc04f[_0xdd30('0x1f')](_0xdd30('0x20'),_0xdca55d+'-'+_0x10423f+'/'+_0x22a3ea)[_0xdd30('0x1a')](_0x3baf08);}return null;};}function patchUpdates(_0x410221){return function(_0xa080ce){try{jsonpatch[_0xdd30('0x21')](_0xa080ce,_0x410221,!![]);}catch(_0x27ac0e){return BPromise[_0xdd30('0x22')](_0x27ac0e);}return _0xa080ce[_0xdd30('0x23')]();};}function saveUpdates(_0x28532e,_0x541be6){return function(_0x48f2bc){if(_0x48f2bc){return _0x48f2bc[_0xdd30('0x24')](_0x28532e)[_0xdd30('0x25')](function(_0xe702d4){return _0xe702d4;});}return null;};}function removeEntity(_0x215ad3,_0x20d4e9){return function(_0x214620){if(_0x214620){return _0x214620[_0xdd30('0x26')]()[_0xdd30('0x25')](function(){var _0x4955fa=_0x214620[_0xdd30('0x27')]({'plain':!![]});var _0x4d0106=_0xdd30('0x28');return db[_0xdd30('0x29')][_0xdd30('0x26')]({'where':{'type':_0x4d0106,'resourceId':_0x4955fa['id']}})['then'](function(){return _0x214620;});})['then'](function(){_0x215ad3[_0xdd30('0x19')](0xcc)[_0xdd30('0x2a')]();});}};}function handleEntityNotFound(_0x134223,_0xe6b18e){return function(_0x2477d0){if(!_0x2477d0){_0x134223[_0xdd30('0x18')](0x194);}return _0x2477d0;};}function handleError(_0xbf47a4,_0x350aab){_0x350aab=_0x350aab||0x1f4;return function(_0x4623a0){logger['error'](_0x4623a0[_0xdd30('0x2b')]);if(_0x4623a0[_0xdd30('0x2c')]){delete _0x4623a0[_0xdd30('0x2c')];}_0xbf47a4[_0xdd30('0x19')](_0x350aab)[_0xdd30('0x2d')](_0x4623a0);};}exports['index']=function(_0x25e9cb,_0x15c44e){var _0x48ff85={},_0x2042f7={},_0x43294d={'count':0x0,'rows':[]};var _0x50f38d=_[_0xdd30('0x2e')](db['Campaign']['rawAttributes'],function(_0xe73f27){return{'name':_0xe73f27['fieldName'],'type':_0xe73f27[_0xdd30('0x2f')]['key']};});_0x2042f7['model']=_['map'](_0x50f38d,_0xdd30('0x2c'));_0x2042f7[_0xdd30('0x30')]=_['keys'](_0x25e9cb['query']);_0x2042f7[_0xdd30('0x31')]=_[_0xdd30('0x32')](_0x2042f7['model'],_0x2042f7[_0xdd30('0x30')]);_0x48ff85['attributes']=_[_0xdd30('0x32')](_0x2042f7['model'],qs[_0xdd30('0x33')](_0x25e9cb['query'][_0xdd30('0x33')]));_0x48ff85[_0xdd30('0x34')]=_0x48ff85[_0xdd30('0x34')][_0xdd30('0x35')]?_0x48ff85[_0xdd30('0x34')]:_0x2042f7[_0xdd30('0x36')];if(!_0x25e9cb[_0xdd30('0x30')][_0xdd30('0x37')](_0xdd30('0x38'))){_0x48ff85[_0xdd30('0x1d')]=qs[_0xdd30('0x1d')](_0x25e9cb[_0xdd30('0x30')][_0xdd30('0x1d')]);_0x48ff85[_0xdd30('0x1b')]=qs[_0xdd30('0x1b')](_0x25e9cb[_0xdd30('0x30')]['offset']);}_0x48ff85['order']=qs[_0xdd30('0x39')](_0x25e9cb[_0xdd30('0x30')][_0xdd30('0x39')]);_0x48ff85[_0xdd30('0x3a')]=qs[_0xdd30('0x31')](_[_0xdd30('0x3b')](_0x25e9cb[_0xdd30('0x30')],_0x2042f7[_0xdd30('0x31')]),_0x50f38d);if(_0x25e9cb[_0xdd30('0x30')][_0xdd30('0x3c')]){_0x48ff85[_0xdd30('0x3a')]=_['merge'](_0x48ff85[_0xdd30('0x3a')],{'$or':_['map'](_0x50f38d,function(_0x42c347){if(_0x42c347['type']!==_0xdd30('0x3d')){var _0x55f69a={};_0x55f69a[_0x42c347[_0xdd30('0x2c')]]={'$like':'%'+_0x25e9cb[_0xdd30('0x30')]['filter']+'%'};return _0x55f69a;}})});}_0x48ff85=_['merge']({},_0x48ff85,_0x25e9cb['options']);var _0xae119d={'where':_0x48ff85['where']};return db[_0xdd30('0x3e')]['count'](_0xae119d)[_0xdd30('0x25')](function(_0x3d2604){_0x43294d['count']=_0x3d2604;if(_0x25e9cb[_0xdd30('0x30')][_0xdd30('0x3f')]){_0x48ff85[_0xdd30('0x40')]=[{'all':!![]}];}return db[_0xdd30('0x3e')][_0xdd30('0x41')](_0x48ff85);})['then'](function(_0x95b6eb){_0x43294d['rows']=_0x95b6eb;return _0x43294d;})['then'](respondWithFilteredResult(_0x15c44e,_0x48ff85))[_0xdd30('0x42')](handleError(_0x15c44e,null));};exports[_0xdd30('0x43')]=function(_0x8ce16d,_0x36b844){var _0x4a2d03={'raw':![],'where':{'id':_0x8ce16d[_0xdd30('0x44')]['id']}},_0xca0f8a={};_0xca0f8a[_0xdd30('0x36')]=_[_0xdd30('0x45')](db['Campaign'][_0xdd30('0x46')]);_0xca0f8a[_0xdd30('0x30')]=_[_0xdd30('0x45')](_0x8ce16d[_0xdd30('0x30')]);_0xca0f8a[_0xdd30('0x31')]=_['intersection'](_0xca0f8a[_0xdd30('0x36')],_0xca0f8a[_0xdd30('0x30')]);_0x4a2d03['attributes']=_[_0xdd30('0x32')](_0xca0f8a[_0xdd30('0x36')],qs[_0xdd30('0x33')](_0x8ce16d[_0xdd30('0x30')]['fields']));_0x4a2d03[_0xdd30('0x34')]=_0x4a2d03['attributes'][_0xdd30('0x35')]?_0x4a2d03[_0xdd30('0x34')]:_0xca0f8a[_0xdd30('0x36')];if(_0x8ce16d[_0xdd30('0x30')][_0xdd30('0x3f')]){_0x4a2d03[_0xdd30('0x40')]=[{'all':!![]}];}_0x4a2d03=_[_0xdd30('0x47')]({},_0x4a2d03,_0x8ce16d['options']);return db[_0xdd30('0x3e')][_0xdd30('0x48')](_0x4a2d03)[_0xdd30('0x25')](handleEntityNotFound(_0x36b844,null))['then'](respondWithResult(_0x36b844,null))[_0xdd30('0x42')](handleError(_0x36b844,null));};exports[_0xdd30('0x49')]=function(_0x452ebf,_0x5c9352){return db[_0xdd30('0x3e')][_0xdd30('0x49')](_0x452ebf[_0xdd30('0x4a')],{})[_0xdd30('0x25')](function(_0x1d393a){var _0x2e2531=_0x452ebf[_0xdd30('0x4b')]['get']({'plain':!![]});if(!_0x2e2531)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x2e2531['role']===_0xdd30('0x4b')){var _0xe612a9=_0x1d393a[_0xdd30('0x27')]({'plain':!![]});var _0x2af2a2=_0xdd30('0x28');return db[_0xdd30('0x4c')][_0xdd30('0x48')]({'where':{'name':_0x2af2a2,'userProfileId':_0x2e2531['userProfileId']},'raw':!![]})[_0xdd30('0x25')](function(_0x50ee9d){if(_0x50ee9d&&_0x50ee9d['autoAssociation']===0x0){return db[_0xdd30('0x29')][_0xdd30('0x49')]({'name':_0xe612a9[_0xdd30('0x2c')],'resourceId':_0xe612a9['id'],'type':_0x50ee9d[_0xdd30('0x2c')],'sectionId':_0x50ee9d['id']},{})[_0xdd30('0x25')](function(){return _0x1d393a;});}else{return _0x1d393a;}})[_0xdd30('0x42')](function(_0x168aad){logger['error'](_0xdd30('0x4d'),_0x168aad);throw _0x168aad;});}return _0x1d393a;})[_0xdd30('0x25')](respondWithResult(_0x5c9352,0xc9))['catch'](handleError(_0x5c9352,null));};exports[_0xdd30('0x4e')]=function(_0x520c58,_0x2c6097){var _0x23ccb1={'where':{'id':_0x520c58[_0xdd30('0x44')]['id']}},_0x4bce45={};_0x4bce45['model']=_[_0xdd30('0x45')](db[_0xdd30('0x3e')][_0xdd30('0x46')]);_0x23ccb1[_0xdd30('0x34')]=_[_0xdd30('0x32')](_0x4bce45[_0xdd30('0x36')],qs[_0xdd30('0x33')](_0x520c58[_0xdd30('0x30')][_0xdd30('0x33')]));_0x23ccb1[_0xdd30('0x34')]=_0x23ccb1['attributes'][_0xdd30('0x35')]?_0x23ccb1[_0xdd30('0x34')]:_0x4bce45['model'];if(_0x520c58['query'][_0xdd30('0x3f')]){_0x23ccb1['include']=[{'all':!![]}];}_0x23ccb1=_[_0xdd30('0x47')]({},_0x23ccb1,_0x520c58[_0xdd30('0x4f')]);return db['Campaign'][_0xdd30('0x48')](_0x23ccb1)[_0xdd30('0x25')](handleEntityNotFound(_0x2c6097,null))[_0xdd30('0x25')](function(_0x19ac9e){if(_0x19ac9e){var _0x2cb6c7=_0x19ac9e[_0xdd30('0x27')]({'plain':!![]});_0x2cb6c7=qs[_0xdd30('0x50')](_0x2cb6c7,['id','createdAt',_0xdd30('0x51')]);_0x520c58[_0xdd30('0x4a')]=_['omit'](_0x520c58[_0xdd30('0x4a')],['id',_0xdd30('0x52'),_0xdd30('0x51')]);return db[_0xdd30('0x3e')][_0xdd30('0x49')](_['merge'](_0x2cb6c7,_0x520c58[_0xdd30('0x4a')]),{'include':_0x520c58[_0xdd30('0x30')][_0xdd30('0x3f')]?[{'all':!![]}]:undefined})['then'](function(_0x5e2886){var _0x18e6f0=_0x520c58[_0xdd30('0x4b')][_0xdd30('0x27')]({'plain':!![]});if(!_0x18e6f0)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x18e6f0[_0xdd30('0x53')]===_0xdd30('0x4b')){var _0x680653=_0x5e2886['get']({'plain':!![]});var _0x1d3638='IvrCampaigns';return db[_0xdd30('0x4c')][_0xdd30('0x48')]({'where':{'name':_0x1d3638,'userProfileId':_0x18e6f0[_0xdd30('0x54')]},'raw':!![]})['then'](function(_0x4b83fc){if(_0x4b83fc&&_0x4b83fc['autoAssociation']===0x0){return db['UserProfileResource'][_0xdd30('0x49')]({'name':_0x680653[_0xdd30('0x2c')],'resourceId':_0x680653['id'],'type':_0x4b83fc[_0xdd30('0x2c')],'sectionId':_0x4b83fc['id']},{})[_0xdd30('0x25')](function(){return _0x5e2886;});}else{return _0x5e2886;}})['catch'](function(_0x276046){logger[_0xdd30('0x55')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x276046);throw _0x276046;});}return _0x5e2886;});}})['then'](respondWithResult(_0x2c6097,0xc9))[_0xdd30('0x42')](handleError(_0x2c6097,null));};exports['update']=function(_0x17b170,_0x482abc){if(_0x17b170[_0xdd30('0x4a')]['id']){delete _0x17b170['body']['id'];}return db[_0xdd30('0x3e')][_0xdd30('0x48')]({'where':{'id':_0x17b170[_0xdd30('0x44')]['id']}})[_0xdd30('0x25')](handleEntityNotFound(_0x482abc,null))[_0xdd30('0x25')](saveUpdates(_0x17b170[_0xdd30('0x4a')],null))[_0xdd30('0x25')](respondWithResult(_0x482abc,null))[_0xdd30('0x42')](handleError(_0x482abc,null));};exports[_0xdd30('0x26')]=function(_0x33e243,_0x1146e1){return db[_0xdd30('0x3e')][_0xdd30('0x48')]({'where':{'id':_0x33e243[_0xdd30('0x44')]['id']}})[_0xdd30('0x25')](handleEntityNotFound(_0x1146e1,null))['then'](removeEntity(_0x1146e1,null))[_0xdd30('0x42')](handleError(_0x1146e1,null));};exports[_0xdd30('0x56')]=function(_0x21d2b4,_0x7e7145,_0x4f6c09){var _0xc8c6b7={'raw':!![],'where':{}};var _0x2f96be={};var _0xe5221={'count':0x0,'rows':[]};return db[_0xdd30('0x3e')]['findOne']({'where':{'id':_0x21d2b4[_0xdd30('0x44')]['id']}})['then'](handleEntityNotFound(_0x7e7145,null))[_0xdd30('0x25')](function(_0x14b9e6){if(_0x14b9e6){_0x2f96be[_0xdd30('0x36')]=_[_0xdd30('0x45')](db[_0xdd30('0x57')][_0xdd30('0x46')]);_0x2f96be[_0xdd30('0x30')]=_[_0xdd30('0x45')](_0x21d2b4[_0xdd30('0x30')]);_0x2f96be['filters']=_[_0xdd30('0x32')](_0x2f96be['model'],_0x2f96be[_0xdd30('0x30')]);_0xc8c6b7['attributes']=_[_0xdd30('0x32')](_0x2f96be['model'],qs[_0xdd30('0x33')](_0x21d2b4['query']['fields']));_0xc8c6b7[_0xdd30('0x34')]=_0xc8c6b7[_0xdd30('0x34')][_0xdd30('0x35')]?_0xc8c6b7[_0xdd30('0x34')]:_0x2f96be[_0xdd30('0x36')];if(!_0x21d2b4[_0xdd30('0x30')]['hasOwnProperty'](_0xdd30('0x38'))){_0xc8c6b7[_0xdd30('0x1d')]=qs['limit'](_0x21d2b4[_0xdd30('0x30')][_0xdd30('0x1d')]);_0xc8c6b7['offset']=qs[_0xdd30('0x1b')](_0x21d2b4[_0xdd30('0x30')]['offset']);}_0xc8c6b7['order']=qs['sort'](_0x21d2b4['query']['sort']);_0xc8c6b7['where']=qs[_0xdd30('0x31')](_[_0xdd30('0x3b')](_0x21d2b4[_0xdd30('0x30')],_0x2f96be[_0xdd30('0x31')]));_0xc8c6b7[_0xdd30('0x3a')]['CampaignId']=_0x14b9e6['id'];if(_0x21d2b4[_0xdd30('0x30')][_0xdd30('0x3c')]){_0xc8c6b7['where']=_[_0xdd30('0x47')](_0xc8c6b7[_0xdd30('0x3a')],{'$or':_['map'](_0xc8c6b7['attributes'],function(_0x445838){var _0x208a20={};_0x208a20[_0x445838]={'$like':'%'+_0x21d2b4['query'][_0xdd30('0x3c')]+'%'};return _0x208a20;})});}_0xc8c6b7=_[_0xdd30('0x47')]({},_0xc8c6b7,_0x21d2b4[_0xdd30('0x4f')]);return db['CmHopper'][_0xdd30('0x1e')]({'where':_0xc8c6b7[_0xdd30('0x3a')]})[_0xdd30('0x25')](function(_0x33d125){_0xe5221['count']=_0x33d125;if(_0x21d2b4[_0xdd30('0x30')]['includeAll']){_0xc8c6b7['include']=[{'all':!![]}];}return db[_0xdd30('0x57')][_0xdd30('0x41')](_0xc8c6b7);})[_0xdd30('0x25')](function(_0x5aa061){_0xe5221[_0xdd30('0x58')]=_0x5aa061;return _0xe5221;});}})[_0xdd30('0x25')](respondWithFilteredResult(_0x7e7145,_0xc8c6b7))[_0xdd30('0x42')](handleError(_0x7e7145,null));};exports[_0xdd30('0x59')]=function(_0x1b026d,_0x1b3bcc,_0xb2ab73){var _0x159fa8={'raw':!![],'where':{}};var _0x38e78d={};var _0x2e76cf={'count':0x0,'rows':[]};return db[_0xdd30('0x3e')][_0xdd30('0x5a')]({'where':{'id':_0x1b026d[_0xdd30('0x44')]['id']}})['then'](handleEntityNotFound(_0x1b3bcc,null))[_0xdd30('0x25')](function(_0x4ac271){if(_0x4ac271){_0x38e78d[_0xdd30('0x36')]=_[_0xdd30('0x45')](db[_0xdd30('0x5b')][_0xdd30('0x46')]);_0x38e78d[_0xdd30('0x30')]=_['keys'](_0x1b026d['query']);_0x38e78d[_0xdd30('0x31')]=_[_0xdd30('0x32')](_0x38e78d[_0xdd30('0x36')],_0x38e78d[_0xdd30('0x30')]);_0x159fa8[_0xdd30('0x34')]=_[_0xdd30('0x32')](_0x38e78d[_0xdd30('0x36')],qs['fields'](_0x1b026d[_0xdd30('0x30')][_0xdd30('0x33')]));_0x159fa8['attributes']=_0x159fa8[_0xdd30('0x34')]['length']?_0x159fa8[_0xdd30('0x34')]:_0x38e78d[_0xdd30('0x36')];if(!_0x1b026d[_0xdd30('0x30')][_0xdd30('0x37')](_0xdd30('0x38'))){_0x159fa8['limit']=qs['limit'](_0x1b026d[_0xdd30('0x30')][_0xdd30('0x1d')]);_0x159fa8[_0xdd30('0x1b')]=qs[_0xdd30('0x1b')](_0x1b026d[_0xdd30('0x30')]['offset']);}_0x159fa8[_0xdd30('0x5c')]=qs[_0xdd30('0x39')](_0x1b026d[_0xdd30('0x30')]['sort']);_0x159fa8[_0xdd30('0x3a')]=qs[_0xdd30('0x31')](_['pick'](_0x1b026d[_0xdd30('0x30')],_0x38e78d[_0xdd30('0x31')]));_0x159fa8['where']['CampaignId']=_0x4ac271['id'];if(_0x1b026d[_0xdd30('0x30')][_0xdd30('0x3c')]){_0x159fa8['where']=_['merge'](_0x159fa8[_0xdd30('0x3a')],{'$or':_[_0xdd30('0x2e')](_0x159fa8[_0xdd30('0x34')],function(_0x889d8e){var _0xa06360={};_0xa06360[_0x889d8e]={'$like':'%'+_0x1b026d[_0xdd30('0x30')][_0xdd30('0x3c')]+'%'};return _0xa06360;})});}_0x159fa8=_[_0xdd30('0x47')]({},_0x159fa8,_0x1b026d[_0xdd30('0x4f')]);return db['CmHopperHistory'][_0xdd30('0x1e')]({'where':_0x159fa8[_0xdd30('0x3a')]})[_0xdd30('0x25')](function(_0x4abaed){_0x2e76cf[_0xdd30('0x1e')]=_0x4abaed;if(_0x1b026d[_0xdd30('0x30')][_0xdd30('0x3f')]){_0x159fa8[_0xdd30('0x40')]=[{'all':!![]}];}return db[_0xdd30('0x5b')][_0xdd30('0x41')](_0x159fa8);})[_0xdd30('0x25')](function(_0x2cc781){_0x2e76cf['rows']=_0x2cc781;return _0x2e76cf;});}})[_0xdd30('0x25')](respondWithFilteredResult(_0x1b3bcc,_0x159fa8))[_0xdd30('0x42')](handleError(_0x1b3bcc,null));};exports[_0xdd30('0x5d')]=function(_0x56165d,_0x574c97,_0x4fb87b){var _0x3c5850={'raw':!![],'where':{}};var _0x1556c3={};var _0x1e433e={'count':0x0,'rows':[]};return db['Campaign'][_0xdd30('0x5a')]({'where':{'id':_0x56165d[_0xdd30('0x44')]['id']}})[_0xdd30('0x25')](handleEntityNotFound(_0x574c97,null))[_0xdd30('0x25')](function(_0x52f07d){if(_0x52f07d){_0x1556c3[_0xdd30('0x36')]=_[_0xdd30('0x45')](db[_0xdd30('0x5e')][_0xdd30('0x46')]);_0x1556c3[_0xdd30('0x30')]=_['keys'](_0x56165d['query']);_0x1556c3[_0xdd30('0x31')]=_[_0xdd30('0x32')](_0x1556c3[_0xdd30('0x36')],_0x1556c3[_0xdd30('0x30')]);_0x3c5850[_0xdd30('0x34')]=_[_0xdd30('0x32')](_0x1556c3[_0xdd30('0x36')],qs[_0xdd30('0x33')](_0x56165d[_0xdd30('0x30')][_0xdd30('0x33')]));_0x3c5850[_0xdd30('0x34')]=_0x3c5850[_0xdd30('0x34')][_0xdd30('0x35')]?_0x3c5850['attributes']:_0x1556c3['model'];if(!_0x56165d[_0xdd30('0x30')][_0xdd30('0x37')]('nolimit')){_0x3c5850[_0xdd30('0x1d')]=qs['limit'](_0x56165d[_0xdd30('0x30')][_0xdd30('0x1d')]);_0x3c5850[_0xdd30('0x1b')]=qs[_0xdd30('0x1b')](_0x56165d[_0xdd30('0x30')][_0xdd30('0x1b')]);}_0x3c5850[_0xdd30('0x5c')]=qs[_0xdd30('0x39')](_0x56165d['query'][_0xdd30('0x39')]);_0x3c5850[_0xdd30('0x3a')]=qs[_0xdd30('0x31')](_[_0xdd30('0x3b')](_0x56165d['query'],_0x1556c3[_0xdd30('0x31')]));_0x3c5850[_0xdd30('0x3a')]['CampaignId']=_0x52f07d['id'];if(_0x56165d['query'][_0xdd30('0x3c')]){_0x3c5850['where']=_[_0xdd30('0x47')](_0x3c5850['where'],{'$or':_[_0xdd30('0x2e')](_0x3c5850[_0xdd30('0x34')],function(_0x53c586){var _0x4f5b67={};_0x4f5b67[_0x53c586]={'$like':'%'+_0x56165d[_0xdd30('0x30')][_0xdd30('0x3c')]+'%'};return _0x4f5b67;})});}_0x3c5850=_[_0xdd30('0x47')]({},_0x3c5850,_0x56165d['options']);return db[_0xdd30('0x5e')][_0xdd30('0x1e')]({'where':_0x3c5850['where']})[_0xdd30('0x25')](function(_0x58ccc7){_0x1e433e[_0xdd30('0x1e')]=_0x58ccc7;if(_0x56165d[_0xdd30('0x30')][_0xdd30('0x3f')]){_0x3c5850[_0xdd30('0x40')]=[{'all':!![]}];}return db[_0xdd30('0x5e')][_0xdd30('0x41')](_0x3c5850);})['then'](function(_0x352c30){_0x1e433e[_0xdd30('0x58')]=_0x352c30;return _0x1e433e;});}})['then'](respondWithFilteredResult(_0x574c97,_0x3c5850))[_0xdd30('0x42')](handleError(_0x574c97,null));};exports[_0xdd30('0x5f')]=function(_0x352ab1,_0x4f9a97,_0x4fbd07){var _0x1a5d2a={'raw':!![],'where':{}};var _0x3be0b8={};var _0x4e948c={'count':0x0,'rows':[]};return db[_0xdd30('0x3e')][_0xdd30('0x5a')]({'where':{'id':_0x352ab1['params']['id']}})[_0xdd30('0x25')](handleEntityNotFound(_0x4f9a97,null))[_0xdd30('0x25')](function(_0x4f4a9b){if(_0x4f4a9b){_0x3be0b8[_0xdd30('0x36')]=_[_0xdd30('0x45')](db[_0xdd30('0x60')][_0xdd30('0x46')]);_0x3be0b8[_0xdd30('0x30')]=_['keys'](_0x352ab1[_0xdd30('0x30')]);_0x3be0b8['filters']=_[_0xdd30('0x32')](_0x3be0b8['model'],_0x3be0b8[_0xdd30('0x30')]);_0x1a5d2a['attributes']=_[_0xdd30('0x32')](_0x3be0b8[_0xdd30('0x36')],qs['fields'](_0x352ab1[_0xdd30('0x30')][_0xdd30('0x33')]));_0x1a5d2a[_0xdd30('0x34')]=_0x1a5d2a[_0xdd30('0x34')]['length']?_0x1a5d2a[_0xdd30('0x34')]:_0x3be0b8[_0xdd30('0x36')];if(!_0x352ab1[_0xdd30('0x30')]['hasOwnProperty'](_0xdd30('0x38'))){_0x1a5d2a[_0xdd30('0x1d')]=qs[_0xdd30('0x1d')](_0x352ab1[_0xdd30('0x30')][_0xdd30('0x1d')]);_0x1a5d2a[_0xdd30('0x1b')]=qs['offset'](_0x352ab1[_0xdd30('0x30')][_0xdd30('0x1b')]);}_0x1a5d2a[_0xdd30('0x5c')]=qs[_0xdd30('0x39')](_0x352ab1[_0xdd30('0x30')]['sort']);_0x1a5d2a[_0xdd30('0x3a')]=qs[_0xdd30('0x31')](_[_0xdd30('0x3b')](_0x352ab1[_0xdd30('0x30')],_0x3be0b8[_0xdd30('0x31')]));_0x1a5d2a[_0xdd30('0x3a')]['CampaignId']=_0x4f4a9b['id'];if(_0x352ab1[_0xdd30('0x30')][_0xdd30('0x3c')]){_0x1a5d2a[_0xdd30('0x3a')]=_['merge'](_0x1a5d2a['where'],{'$or':_[_0xdd30('0x2e')](_0x1a5d2a['attributes'],function(_0x345f4f){var _0x5b2cb8={};_0x5b2cb8[_0x345f4f]={'$like':'%'+_0x352ab1[_0xdd30('0x30')][_0xdd30('0x3c')]+'%'};return _0x5b2cb8;})});}_0x1a5d2a=_[_0xdd30('0x47')]({},_0x1a5d2a,_0x352ab1[_0xdd30('0x4f')]);return db['CmHopperBlack'][_0xdd30('0x1e')]({'where':_0x1a5d2a[_0xdd30('0x3a')]})[_0xdd30('0x25')](function(_0xd97bd9){_0x4e948c[_0xdd30('0x1e')]=_0xd97bd9;if(_0x352ab1[_0xdd30('0x30')]['includeAll']){_0x1a5d2a[_0xdd30('0x40')]=[{'all':!![]}];}return db['CmHopperBlack'][_0xdd30('0x41')](_0x1a5d2a);})['then'](function(_0x21bcd2){_0x4e948c[_0xdd30('0x58')]=_0x21bcd2;return _0x4e948c;});}})[_0xdd30('0x25')](respondWithFilteredResult(_0x4f9a97,_0x1a5d2a))[_0xdd30('0x42')](handleError(_0x4f9a97,null));};exports[_0xdd30('0x61')]=function(_0x26de92,_0x4c4cc1,_0x3a0f04){var _0x481318={};var _0x441dd8={};var _0x566693;var _0x2a46d6;return db['Campaign'][_0xdd30('0x5a')]({'where':{'id':_0x26de92[_0xdd30('0x44')]['id']}})['then'](handleEntityNotFound(_0x4c4cc1,null))[_0xdd30('0x25')](function(_0x4dbf27){if(_0x4dbf27){_0x566693=_0x4dbf27;_0x441dd8[_0xdd30('0x36')]=_[_0xdd30('0x45')](db[_0xdd30('0x62')]['rawAttributes']);_0x441dd8[_0xdd30('0x30')]=_['keys'](_0x26de92[_0xdd30('0x30')]);_0x441dd8['filters']=_[_0xdd30('0x32')](_0x441dd8[_0xdd30('0x36')],_0x441dd8[_0xdd30('0x30')]);_0x481318[_0xdd30('0x34')]=_['intersection'](_0x441dd8[_0xdd30('0x36')],qs['fields'](_0x26de92[_0xdd30('0x30')][_0xdd30('0x33')]));_0x481318[_0xdd30('0x34')]=_0x481318[_0xdd30('0x34')]['length']?_0x481318[_0xdd30('0x34')]:_0x441dd8[_0xdd30('0x36')];_0x481318[_0xdd30('0x5c')]=qs[_0xdd30('0x39')](_0x26de92[_0xdd30('0x30')][_0xdd30('0x39')]);_0x481318[_0xdd30('0x3a')]=qs[_0xdd30('0x31')](_['pick'](_0x26de92[_0xdd30('0x30')],_0x441dd8[_0xdd30('0x31')]));if(_0x26de92[_0xdd30('0x30')]['filter']){_0x481318[_0xdd30('0x3a')]=_[_0xdd30('0x47')](_0x481318[_0xdd30('0x3a')],{'$or':_[_0xdd30('0x2e')](_0x481318[_0xdd30('0x34')],function(_0x4cd184){var _0x3ae0b4={};_0x3ae0b4[_0x4cd184]={'$like':'%'+_0x26de92[_0xdd30('0x30')]['filter']+'%'};return _0x3ae0b4;})});}_0x481318=_[_0xdd30('0x47')]({},_0x481318,_0x26de92[_0xdd30('0x4f')]);return _0x566693['getLists'](_0x481318);}})[_0xdd30('0x25')](function(_0x330a20){if(_0x330a20){_0x2a46d6=_0x330a20[_0xdd30('0x35')];if(!_0x26de92['query'][_0xdd30('0x37')](_0xdd30('0x38'))){_0x481318[_0xdd30('0x1d')]=qs[_0xdd30('0x1d')](_0x26de92[_0xdd30('0x30')]['limit']);_0x481318[_0xdd30('0x1b')]=qs[_0xdd30('0x1b')](_0x26de92[_0xdd30('0x30')][_0xdd30('0x1b')]);}return _0x566693[_0xdd30('0x61')](_0x481318);}})[_0xdd30('0x25')](function(_0x39b9c6){if(_0x39b9c6){return _0x39b9c6?{'count':_0x2a46d6,'rows':_0x39b9c6}:null;}})[_0xdd30('0x25')](respondWithResult(_0x4c4cc1,null))['catch'](handleError(_0x4c4cc1,null));};exports[_0xdd30('0x63')]=function(_0x4235b5,_0x2390d6,_0x19e094){var _0x461627,_0x1f7d11;return db[_0xdd30('0x3e')][_0xdd30('0x48')]({'where':{'id':_0x4235b5[_0xdd30('0x44')]['id']}})[_0xdd30('0x25')](handleEntityNotFound(_0x2390d6,null))['then'](function(_0x584b8b){if(_0x584b8b){_0x1f7d11=_0x584b8b;return _0x584b8b['addLists'](_0x4235b5[_0xdd30('0x4a')][_0xdd30('0x64')],_['omit'](_0x4235b5[_0xdd30('0x4a')],[_0xdd30('0x64'),'id'])||{});}return null;})[_0xdd30('0x65')](function(_0x350bfe){var _0xaa21d8;_0x461627=_0x350bfe||[];var _0x38267d=[];if(_0x350bfe){for(var _0x5361bf=0x0;_0x5361bf<_0x350bfe['length'];_0x5361bf+=0x1){var _0x1c6a06=_0x350bfe[_0x5361bf][_0xdd30('0x27')]({'plain':!![]});_0x1f7d11[_0xdd30('0x66')]=_0x4235b5[_0xdd30('0x4a')][_0xdd30('0x66')]?_0x4235b5[_0xdd30('0x4a')]['dialCheckDuplicateType']:_0x1f7d11[_0xdd30('0x66')];switch(_0x1f7d11[_0xdd30('0x66')]){case _0xdd30('0x67'):_0xaa21d8=squel[_0xdd30('0x68')]()['into'](_0xdd30('0x69'))[_0xdd30('0x6a')](['phone',_0xdd30('0x6b'),_0xdd30('0x6c'),_0xdd30('0x6d'),_0xdd30('0x6e'),_0xdd30('0x52'),'updatedAt'],squel[_0xdd30('0x6f')]()['field']('phone',_0xdd30('0x70'))[_0xdd30('0x71')](_0xdd30('0x72'),_0xdd30('0x6b'))[_0xdd30('0x71')]('id',_0xdd30('0x6c'))[_0xdd30('0x71')](_0x1c6a06[_0xdd30('0x73')][_0xdd30('0x74')](),_0xdd30('0x6d'))[_0xdd30('0x71')](_0x4235b5['params']['id'][_0xdd30('0x74')](),'CampaignId')[_0xdd30('0x71')]('NOW()',_0xdd30('0x52'))[_0xdd30('0x71')](_0xdd30('0x72'),_0xdd30('0x51'))['from']('cm_contacts')[_0xdd30('0x3a')](_0xdd30('0x75'))['where']('ListId\x20=\x20?',_0x1c6a06[_0xdd30('0x73')]['toString']())[_0xdd30('0x3a')](_0xdd30('0x76'))[_0xdd30('0x3a')](_0xdd30('0x77'),squel['select']()[_0xdd30('0x71')](_0xdd30('0x78'))[_0xdd30('0x79')](_0xdd30('0x7a'))[_0xdd30('0x3a')](_0xdd30('0x7b'),_0x4235b5['params']['id'][_0xdd30('0x74')]()))[_0xdd30('0x3a')](_0xdd30('0x77'),squel['select']()[_0xdd30('0x71')](_0xdd30('0x7c'))['from'](_0xdd30('0x69'))[_0xdd30('0x3a')](_0xdd30('0x7b'),_0x4235b5[_0xdd30('0x44')]['id'][_0xdd30('0x74')]())))[_0xdd30('0x74')]();break;case _0xdd30('0x7d'):_0xaa21d8=squel[_0xdd30('0x68')]()[_0xdd30('0x7e')](_0xdd30('0x69'))[_0xdd30('0x6a')]([_0xdd30('0x70'),_0xdd30('0x6b'),_0xdd30('0x6c'),_0xdd30('0x6d'),_0xdd30('0x6e'),_0xdd30('0x52'),_0xdd30('0x51')],squel[_0xdd30('0x6f')]()[_0xdd30('0x71')](_0xdd30('0x70'),_0xdd30('0x70'))['field']('NOW()',_0xdd30('0x6b'))['field']('id',_0xdd30('0x6c'))[_0xdd30('0x71')](_0x1c6a06[_0xdd30('0x73')][_0xdd30('0x74')](),'ListId')[_0xdd30('0x71')](_0x4235b5['params']['id']['toString'](),_0xdd30('0x6e'))[_0xdd30('0x71')]('NOW()',_0xdd30('0x52'))['field'](_0xdd30('0x72'),_0xdd30('0x51'))['from'](_0xdd30('0x7f'))[_0xdd30('0x3a')](_0xdd30('0x75'))['where']('ListId\x20=\x20?',_0x1c6a06[_0xdd30('0x73')][_0xdd30('0x74')]())[_0xdd30('0x3a')](_0xdd30('0x76'))[_0xdd30('0x3a')](_0xdd30('0x77'),squel['select']()['field']('COALESCE(phone,\x27\x27)')[_0xdd30('0x79')](_0xdd30('0x69'))[_0xdd30('0x3a')](_0xdd30('0x7b'),_0x4235b5['params']['id'][_0xdd30('0x74')]())))['toString']();break;default:_0xaa21d8=squel[_0xdd30('0x68')]()['into']('cm_hopper')[_0xdd30('0x6a')](['phone',_0xdd30('0x6b'),_0xdd30('0x6c'),_0xdd30('0x6d'),'CampaignId','createdAt','updatedAt'],squel[_0xdd30('0x6f')]()['field'](_0xdd30('0x70'),'phone')[_0xdd30('0x71')](_0xdd30('0x72'),_0xdd30('0x6b'))[_0xdd30('0x71')]('id',_0xdd30('0x6c'))['field'](_0x1c6a06['CmListId']['toString'](),_0xdd30('0x6d'))[_0xdd30('0x71')](_0x4235b5['params']['id'][_0xdd30('0x74')](),_0xdd30('0x6e'))['field'](_0xdd30('0x72'),_0xdd30('0x52'))[_0xdd30('0x71')](_0xdd30('0x72'),_0xdd30('0x51'))[_0xdd30('0x79')](_0xdd30('0x7f'))[_0xdd30('0x3a')]('deletedAt\x20IS\x20NULL')[_0xdd30('0x3a')](_0xdd30('0x80'),_0x1c6a06[_0xdd30('0x73')][_0xdd30('0x74')]())['where'](_0xdd30('0x76')))[_0xdd30('0x74')]();}_0x38267d[_0xdd30('0x81')](db['sequelize']['query'](_0xaa21d8));}return BPromise[_0xdd30('0x82')](_0x38267d);}})[_0xdd30('0x25')](function(){return _0x461627;})[_0xdd30('0x25')](respondWithResult(_0x2390d6,null))[_0xdd30('0x42')](handleError(_0x2390d6,null));};exports['removeLists']=function(_0x9053b2,_0x1e782d,_0x342f0b){return db[_0xdd30('0x3e')]['find']({'where':{'id':_0x9053b2['params']['id']}})[_0xdd30('0x25')](handleEntityNotFound(_0x1e782d,null))[_0xdd30('0x25')](function(_0x3d9553){if(_0x3d9553){return _0x3d9553[_0xdd30('0x83')](_0x9053b2['query']['ids']);}})['then'](function(_0x43598f){if(_0x43598f){return db[_0xdd30('0x57')][_0xdd30('0x26')]({'where':{'ListId':_0x9053b2['query'][_0xdd30('0x64')],'CampaignId':_0x9053b2[_0xdd30('0x44')]['id']}})[_0xdd30('0x25')](function(){return _0x43598f;});}})[_0xdd30('0x25')](respondWithStatusCode(_0x1e782d,null))[_0xdd30('0x42')](handleError(_0x1e782d,null));};exports[_0xdd30('0x84')]=function(_0xe6174a,_0x152a2c,_0x1f3dcc){var _0x523b4d={};var _0x5f1f33={};var _0x2d7cd7;var _0x5d3062;return db[_0xdd30('0x3e')][_0xdd30('0x5a')]({'where':{'id':_0xe6174a['params']['id']}})[_0xdd30('0x25')](handleEntityNotFound(_0x152a2c,null))[_0xdd30('0x25')](function(_0x3c2ce3){if(_0x3c2ce3){_0x2d7cd7=_0x3c2ce3;_0x5f1f33[_0xdd30('0x36')]=_[_0xdd30('0x45')](db[_0xdd30('0x62')][_0xdd30('0x46')]);_0x5f1f33['query']=_['keys'](_0xe6174a[_0xdd30('0x30')]);_0x5f1f33[_0xdd30('0x31')]=_[_0xdd30('0x32')](_0x5f1f33[_0xdd30('0x36')],_0x5f1f33[_0xdd30('0x30')]);_0x523b4d[_0xdd30('0x34')]=_[_0xdd30('0x32')](_0x5f1f33[_0xdd30('0x36')],qs[_0xdd30('0x33')](_0xe6174a[_0xdd30('0x30')]['fields']));_0x523b4d[_0xdd30('0x34')]=_0x523b4d[_0xdd30('0x34')]['length']?_0x523b4d['attributes']:_0x5f1f33[_0xdd30('0x36')];_0x523b4d['order']=qs['sort'](_0xe6174a[_0xdd30('0x30')][_0xdd30('0x39')]);_0x523b4d[_0xdd30('0x3a')]=qs[_0xdd30('0x31')](_[_0xdd30('0x3b')](_0xe6174a['query'],_0x5f1f33[_0xdd30('0x31')]));if(_0xe6174a[_0xdd30('0x30')][_0xdd30('0x3c')]){_0x523b4d[_0xdd30('0x3a')]=_['merge'](_0x523b4d[_0xdd30('0x3a')],{'$or':_['map'](_0x523b4d[_0xdd30('0x34')],function(_0x2d9236){var _0x5a5617={};_0x5a5617[_0x2d9236]={'$like':'%'+_0xe6174a[_0xdd30('0x30')][_0xdd30('0x3c')]+'%'};return _0x5a5617;})});}_0x523b4d=_[_0xdd30('0x47')]({},_0x523b4d,_0xe6174a['options']);return _0x2d7cd7['getBlackLists'](_0x523b4d);}})[_0xdd30('0x25')](function(_0x3249f6){if(_0x3249f6){_0x5d3062=_0x3249f6[_0xdd30('0x35')];if(!_0xe6174a[_0xdd30('0x30')]['hasOwnProperty'](_0xdd30('0x38'))){_0x523b4d[_0xdd30('0x1d')]=qs[_0xdd30('0x1d')](_0xe6174a['query'][_0xdd30('0x1d')]);_0x523b4d[_0xdd30('0x1b')]=qs[_0xdd30('0x1b')](_0xe6174a[_0xdd30('0x30')][_0xdd30('0x1b')]);}return _0x2d7cd7[_0xdd30('0x84')](_0x523b4d);}})[_0xdd30('0x25')](function(_0x3369c5){if(_0x3369c5){return _0x3369c5?{'count':_0x5d3062,'rows':_0x3369c5}:null;}})[_0xdd30('0x25')](respondWithResult(_0x152a2c,null))[_0xdd30('0x42')](handleError(_0x152a2c,null));};exports['addBlackLists']=function(_0x492e4b,_0x2f8fbd,_0x129c7b){var _0x33343e,_0x4c7850;return db[_0xdd30('0x3e')][_0xdd30('0x48')]({'where':{'id':_0x492e4b[_0xdd30('0x44')]['id']}})[_0xdd30('0x25')](handleEntityNotFound(_0x2f8fbd,null))['then'](function(_0x278abc){if(_0x278abc){_0x4c7850=_0x278abc;return _0x278abc[_0xdd30('0x85')](_0x492e4b[_0xdd30('0x4a')][_0xdd30('0x64')],_[_0xdd30('0x50')](_0x492e4b['body'],[_0xdd30('0x64'),'id'])||{});}return null;})[_0xdd30('0x65')](function(_0x49261){var _0x35d8f2;_0x33343e=_0x49261||[];var _0x5ec857=[];if(_0x49261){for(var _0xd242c8=0x0;_0xd242c8<_0x49261[_0xdd30('0x35')];_0xd242c8+=0x1){var _0x47f99f=_0x49261[_0xd242c8][_0xdd30('0x27')]({'plain':!![]});_0x35d8f2=squel[_0xdd30('0x68')]()['into']('cm_hopper_black')[_0xdd30('0x6a')]([_0xdd30('0x70'),_0xdd30('0x6c'),'ListId',_0xdd30('0x6e'),_0xdd30('0x52'),_0xdd30('0x51')],squel[_0xdd30('0x6f')]()['field'](_0xdd30('0x70'),_0xdd30('0x70'))[_0xdd30('0x71')]('id','ContactId')[_0xdd30('0x71')](_0x47f99f[_0xdd30('0x73')][_0xdd30('0x74')](),_0xdd30('0x6d'))[_0xdd30('0x71')](_0x492e4b[_0xdd30('0x44')]['id'][_0xdd30('0x74')](),_0xdd30('0x6e'))[_0xdd30('0x71')](_0xdd30('0x72'),'createdAt')[_0xdd30('0x71')](_0xdd30('0x72'),_0xdd30('0x51'))[_0xdd30('0x79')](_0xdd30('0x7f'))['where']('deletedAt\x20IS\x20NULL')[_0xdd30('0x3a')](_0xdd30('0x80'),_0x47f99f[_0xdd30('0x73')][_0xdd30('0x74')]())[_0xdd30('0x3a')](_0xdd30('0x76')))[_0xdd30('0x74')]();_0x5ec857[_0xdd30('0x81')](db[_0xdd30('0x86')][_0xdd30('0x30')](_0x35d8f2));}return BPromise[_0xdd30('0x82')](_0x5ec857);}})['then'](function(){return _0x33343e;})[_0xdd30('0x25')](respondWithResult(_0x2f8fbd,null))[_0xdd30('0x42')](handleError(_0x2f8fbd,null));};exports['removeBlackLists']=function(_0xd8ce27,_0x531224,_0x11972d){return db[_0xdd30('0x3e')][_0xdd30('0x48')]({'where':{'id':_0xd8ce27[_0xdd30('0x44')]['id']}})[_0xdd30('0x25')](handleEntityNotFound(_0x531224,null))['then'](function(_0xb639ec){if(_0xb639ec){return _0xb639ec[_0xdd30('0x87')](_0xd8ce27['query'][_0xdd30('0x64')]);}})[_0xdd30('0x25')](function(_0x4b9936){if(_0x4b9936){return db[_0xdd30('0x60')][_0xdd30('0x26')]({'where':{'ListId':_0xd8ce27['query'][_0xdd30('0x64')],'CampaignId':_0xd8ce27[_0xdd30('0x44')]['id']}})[_0xdd30('0x25')](function(){return _0x4b9936;});}})[_0xdd30('0x25')](respondWithStatusCode(_0x531224,null))['catch'](handleError(_0x531224,null));};
\ No newline at end of file
+var _0xc637=['clone','find','createdAt','updatedAt','omit','getHoppers','findOne','CmHopper','pick','CampaignId','include','getHopperHistories','CmHopperHistory','findAll','getHopperFinals','CmHopperFinal','rows','getHopperBlacks','CmHopperBlack','getLists','CmList','addLists','ids','dialCheckDuplicateType','always','insert','into','fromQuery','phone','scheduledAt','ContactId','ListId','select','NOW()','field','toString','from','cm_contacts','deletedAt\x20IS\x20NULL','ListId\x20=\x20?','CmListId','phone\x20IS\x20NOT\x20NULL','phone\x20NOT\x20IN\x20(?)','cm_hopper_final','CampaignId\x20=\x20?','COALESCE(phone,\x27\x27)','cm_hopper','onlyIfOpen','sequelize','removeLists','getBlackLists','addBlackLists','push','all','removeBlackLists','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','limit','undefined','count','set','apply','reject','update','then','UserProfileResource','destroy','stack','name','send','map','rawAttributes','fieldName','type','key','query','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','filter','merge','VIRTUAL','Campaign','includeAll','catch','params','keys','options','create','body','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','IvrCampaigns','UserProfileSection','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s'];(function(_0x619a32,_0x2c73a2){var _0x360331=function(_0x52460b){while(--_0x52460b){_0x619a32['push'](_0x619a32['shift']());}};_0x360331(++_0x2c73a2);}(_0xc637,0x147));var _0x7c63=function(_0x593bce,_0x484075){_0x593bce=_0x593bce-0x0;var _0x4f56c9=_0xc637[_0x593bce];return _0x4f56c9;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x7c63('0x0'));var jsonpatch=require(_0x7c63('0x1'));var rp=require(_0x7c63('0x2'));var moment=require(_0x7c63('0x3'));var BPromise=require(_0x7c63('0x4'));var Mustache=require(_0x7c63('0x5'));var util=require('util');var path=require(_0x7c63('0x6'));var sox=require(_0x7c63('0x7'));var csv=require(_0x7c63('0x8'));var ejs=require(_0x7c63('0x9'));var fs=require('fs');var fs_extra=require(_0x7c63('0xa'));var _=require(_0x7c63('0xb'));var squel=require('squel');var crypto=require(_0x7c63('0xc'));var jsforce=require(_0x7c63('0xd'));var deskjs=require(_0x7c63('0xe'));var toCsv=require(_0x7c63('0x8'));var querystring=require(_0x7c63('0xf'));var Papa=require('papaparse');var Redis=require(_0x7c63('0x10'));var authService=require(_0x7c63('0x11'));var qs=require(_0x7c63('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x7c63('0x13'));var logger=require(_0x7c63('0x14'))(_0x7c63('0x15'));var utils=require(_0x7c63('0x16'));var config=require(_0x7c63('0x17'));var licenseUtil=require(_0x7c63('0x18'));var db=require(_0x7c63('0x19'))['db'];function respondWithStatusCode(_0x4e8c55,_0x13a20b){_0x13a20b=_0x13a20b||0xcc;return function(_0x1c3a1a){if(_0x1c3a1a){return _0x4e8c55[_0x7c63('0x1a')](_0x13a20b);}return _0x4e8c55['status'](_0x13a20b)[_0x7c63('0x1b')]();};}function respondWithResult(_0x22bdb3,_0x23735f){_0x23735f=_0x23735f||0xc8;return function(_0xd81aa2){if(_0xd81aa2){return _0x22bdb3[_0x7c63('0x1c')](_0x23735f)[_0x7c63('0x1d')](_0xd81aa2);}};}function respondWithFilteredResult(_0x1d9636,_0x11fb4b){return function(_0x577a0a){if(_0x577a0a){var _0x40108d=typeof _0x11fb4b[_0x7c63('0x1e')]==='undefined'&&typeof _0x11fb4b[_0x7c63('0x1f')]===_0x7c63('0x20');var _0x336585=_0x577a0a[_0x7c63('0x21')];var _0x4fcc41=_0x40108d?0x0:_0x11fb4b['offset'];var _0x20fa1d=_0x40108d?_0x577a0a[_0x7c63('0x21')]:_0x11fb4b[_0x7c63('0x1e')]+_0x11fb4b['limit'];var _0x5cb583;if(_0x20fa1d>=_0x336585){_0x20fa1d=_0x336585;_0x5cb583=0xc8;}else{_0x5cb583=0xce;}_0x1d9636[_0x7c63('0x1c')](_0x5cb583);return _0x1d9636[_0x7c63('0x22')]('Content-Range',_0x4fcc41+'-'+_0x20fa1d+'/'+_0x336585)['json'](_0x577a0a);}return null;};}function patchUpdates(_0x786b7b){return function(_0x293b6c){try{jsonpatch[_0x7c63('0x23')](_0x293b6c,_0x786b7b,!![]);}catch(_0x583c3e){return BPromise[_0x7c63('0x24')](_0x583c3e);}return _0x293b6c['save']();};}function saveUpdates(_0x4f073f,_0x3bd090){return function(_0x43440c){if(_0x43440c){return _0x43440c[_0x7c63('0x25')](_0x4f073f)[_0x7c63('0x26')](function(_0x1a635e){return _0x1a635e;});}return null;};}function removeEntity(_0x1bb9bd,_0x20d10e){return function(_0x18d495){if(_0x18d495){return _0x18d495['destroy']()[_0x7c63('0x26')](function(){var _0x1078f2=_0x18d495['get']({'plain':!![]});var _0x1c50bd='IvrCampaigns';return db[_0x7c63('0x27')][_0x7c63('0x28')]({'where':{'type':_0x1c50bd,'resourceId':_0x1078f2['id']}})[_0x7c63('0x26')](function(){return _0x18d495;});})['then'](function(){_0x1bb9bd[_0x7c63('0x1c')](0xcc)[_0x7c63('0x1b')]();});}};}function handleEntityNotFound(_0x3021dd,_0x1fc42b){return function(_0x3457e1){if(!_0x3457e1){_0x3021dd[_0x7c63('0x1a')](0x194);}return _0x3457e1;};}function handleError(_0x1f46dd,_0x536e44){_0x536e44=_0x536e44||0x1f4;return function(_0x57bc1f){logger['error'](_0x57bc1f[_0x7c63('0x29')]);if(_0x57bc1f[_0x7c63('0x2a')]){delete _0x57bc1f[_0x7c63('0x2a')];}_0x1f46dd[_0x7c63('0x1c')](_0x536e44)[_0x7c63('0x2b')](_0x57bc1f);};}exports['index']=function(_0x472ba5,_0x3f7df8){var _0x463c42={},_0x525f5f={},_0x56b02b={'count':0x0,'rows':[]};var _0x2b5acb=_[_0x7c63('0x2c')](db['Campaign'][_0x7c63('0x2d')],function(_0x17a8fe){return{'name':_0x17a8fe[_0x7c63('0x2e')],'type':_0x17a8fe[_0x7c63('0x2f')][_0x7c63('0x30')]};});_0x525f5f['model']=_['map'](_0x2b5acb,_0x7c63('0x2a'));_0x525f5f[_0x7c63('0x31')]=_['keys'](_0x472ba5[_0x7c63('0x31')]);_0x525f5f['filters']=_[_0x7c63('0x32')](_0x525f5f[_0x7c63('0x33')],_0x525f5f[_0x7c63('0x31')]);_0x463c42[_0x7c63('0x34')]=_[_0x7c63('0x32')](_0x525f5f[_0x7c63('0x33')],qs['fields'](_0x472ba5[_0x7c63('0x31')][_0x7c63('0x35')]));_0x463c42[_0x7c63('0x34')]=_0x463c42[_0x7c63('0x34')][_0x7c63('0x36')]?_0x463c42['attributes']:_0x525f5f[_0x7c63('0x33')];if(!_0x472ba5['query'][_0x7c63('0x37')](_0x7c63('0x38'))){_0x463c42[_0x7c63('0x1f')]=qs[_0x7c63('0x1f')](_0x472ba5[_0x7c63('0x31')][_0x7c63('0x1f')]);_0x463c42[_0x7c63('0x1e')]=qs[_0x7c63('0x1e')](_0x472ba5['query'][_0x7c63('0x1e')]);}_0x463c42[_0x7c63('0x39')]=qs[_0x7c63('0x3a')](_0x472ba5[_0x7c63('0x31')][_0x7c63('0x3a')]);_0x463c42[_0x7c63('0x3b')]=qs[_0x7c63('0x3c')](_['pick'](_0x472ba5[_0x7c63('0x31')],_0x525f5f[_0x7c63('0x3c')]),_0x2b5acb);if(_0x472ba5['query'][_0x7c63('0x3d')]){_0x463c42[_0x7c63('0x3b')]=_[_0x7c63('0x3e')](_0x463c42[_0x7c63('0x3b')],{'$or':_[_0x7c63('0x2c')](_0x2b5acb,function(_0x52b8b0){if(_0x52b8b0[_0x7c63('0x2f')]!==_0x7c63('0x3f')){var _0x4b58db={};_0x4b58db[_0x52b8b0[_0x7c63('0x2a')]]={'$like':'%'+_0x472ba5[_0x7c63('0x31')][_0x7c63('0x3d')]+'%'};return _0x4b58db;}})});}_0x463c42=_['merge']({},_0x463c42,_0x472ba5['options']);var _0x497a01={'where':_0x463c42[_0x7c63('0x3b')]};return db[_0x7c63('0x40')][_0x7c63('0x21')](_0x497a01)[_0x7c63('0x26')](function(_0x2d9791){_0x56b02b['count']=_0x2d9791;if(_0x472ba5[_0x7c63('0x31')][_0x7c63('0x41')]){_0x463c42['include']=[{'all':!![]}];}return db[_0x7c63('0x40')]['findAll'](_0x463c42);})['then'](function(_0xe277c1){_0x56b02b['rows']=_0xe277c1;return _0x56b02b;})[_0x7c63('0x26')](respondWithFilteredResult(_0x3f7df8,_0x463c42))[_0x7c63('0x42')](handleError(_0x3f7df8,null));};exports['show']=function(_0x1ecbc1,_0x2317d3){var _0x4769d7={'raw':![],'where':{'id':_0x1ecbc1[_0x7c63('0x43')]['id']}},_0x425e6a={};_0x425e6a[_0x7c63('0x33')]=_[_0x7c63('0x44')](db['Campaign'][_0x7c63('0x2d')]);_0x425e6a['query']=_[_0x7c63('0x44')](_0x1ecbc1[_0x7c63('0x31')]);_0x425e6a['filters']=_[_0x7c63('0x32')](_0x425e6a[_0x7c63('0x33')],_0x425e6a[_0x7c63('0x31')]);_0x4769d7[_0x7c63('0x34')]=_[_0x7c63('0x32')](_0x425e6a[_0x7c63('0x33')],qs[_0x7c63('0x35')](_0x1ecbc1[_0x7c63('0x31')][_0x7c63('0x35')]));_0x4769d7['attributes']=_0x4769d7['attributes']['length']?_0x4769d7[_0x7c63('0x34')]:_0x425e6a[_0x7c63('0x33')];if(_0x1ecbc1[_0x7c63('0x31')][_0x7c63('0x41')]){_0x4769d7['include']=[{'all':!![]}];}_0x4769d7=_[_0x7c63('0x3e')]({},_0x4769d7,_0x1ecbc1[_0x7c63('0x45')]);return db[_0x7c63('0x40')]['find'](_0x4769d7)[_0x7c63('0x26')](handleEntityNotFound(_0x2317d3,null))[_0x7c63('0x26')](respondWithResult(_0x2317d3,null))[_0x7c63('0x42')](handleError(_0x2317d3,null));};exports[_0x7c63('0x46')]=function(_0xe57fc5,_0x18b674){return db[_0x7c63('0x40')][_0x7c63('0x46')](_0xe57fc5[_0x7c63('0x47')],{})[_0x7c63('0x26')](function(_0x17221b){var _0x427fe2=_0xe57fc5['user'][_0x7c63('0x48')]({'plain':!![]});if(!_0x427fe2)throw new Error(_0x7c63('0x49'));if(_0x427fe2[_0x7c63('0x4a')]==='user'){var _0x2c6430=_0x17221b[_0x7c63('0x48')]({'plain':!![]});var _0xcaf155=_0x7c63('0x4b');return db[_0x7c63('0x4c')]['find']({'where':{'name':_0xcaf155,'userProfileId':_0x427fe2[_0x7c63('0x4d')]},'raw':!![]})['then'](function(_0x1e7741){if(_0x1e7741&&_0x1e7741[_0x7c63('0x4e')]===0x0){return db[_0x7c63('0x27')][_0x7c63('0x46')]({'name':_0x2c6430[_0x7c63('0x2a')],'resourceId':_0x2c6430['id'],'type':_0x1e7741[_0x7c63('0x2a')],'sectionId':_0x1e7741['id']},{})[_0x7c63('0x26')](function(){return _0x17221b;});}else{return _0x17221b;}})[_0x7c63('0x42')](function(_0x3b344a){logger[_0x7c63('0x4f')](_0x7c63('0x50'),_0x3b344a);throw _0x3b344a;});}return _0x17221b;})['then'](respondWithResult(_0x18b674,0xc9))['catch'](handleError(_0x18b674,null));};exports[_0x7c63('0x51')]=function(_0x102f7c,_0x2913db){var _0x2a64fa={'where':{'id':_0x102f7c['params']['id']}},_0x364bc5={};_0x364bc5[_0x7c63('0x33')]=_[_0x7c63('0x44')](db[_0x7c63('0x40')][_0x7c63('0x2d')]);_0x2a64fa[_0x7c63('0x34')]=_['intersection'](_0x364bc5[_0x7c63('0x33')],qs[_0x7c63('0x35')](_0x102f7c[_0x7c63('0x31')][_0x7c63('0x35')]));_0x2a64fa[_0x7c63('0x34')]=_0x2a64fa[_0x7c63('0x34')][_0x7c63('0x36')]?_0x2a64fa[_0x7c63('0x34')]:_0x364bc5[_0x7c63('0x33')];if(_0x102f7c[_0x7c63('0x31')][_0x7c63('0x41')]){_0x2a64fa['include']=[{'all':!![]}];}_0x2a64fa=_['merge']({},_0x2a64fa,_0x102f7c[_0x7c63('0x45')]);return db['Campaign'][_0x7c63('0x52')](_0x2a64fa)[_0x7c63('0x26')](handleEntityNotFound(_0x2913db,null))['then'](function(_0x54ecad){if(_0x54ecad){var _0x38bb83=_0x54ecad[_0x7c63('0x48')]({'plain':!![]});_0x38bb83=qs['omit'](_0x38bb83,['id',_0x7c63('0x53'),_0x7c63('0x54')]);_0x102f7c['body']=_[_0x7c63('0x55')](_0x102f7c[_0x7c63('0x47')],['id',_0x7c63('0x53'),_0x7c63('0x54')]);return db[_0x7c63('0x40')]['create'](_[_0x7c63('0x3e')](_0x38bb83,_0x102f7c[_0x7c63('0x47')]),{'include':_0x102f7c[_0x7c63('0x31')][_0x7c63('0x41')]?[{'all':!![]}]:undefined})[_0x7c63('0x26')](function(_0x1e06a4){var _0x11384c=_0x102f7c['user'][_0x7c63('0x48')]({'plain':!![]});if(!_0x11384c)throw new Error(_0x7c63('0x49'));if(_0x11384c[_0x7c63('0x4a')]==='user'){var _0x5c0790=_0x1e06a4[_0x7c63('0x48')]({'plain':!![]});var _0x21561b=_0x7c63('0x4b');return db['UserProfileSection'][_0x7c63('0x52')]({'where':{'name':_0x21561b,'userProfileId':_0x11384c[_0x7c63('0x4d')]},'raw':!![]})[_0x7c63('0x26')](function(_0x2408e2){if(_0x2408e2&&_0x2408e2[_0x7c63('0x4e')]===0x0){return db['UserProfileResource'][_0x7c63('0x46')]({'name':_0x5c0790[_0x7c63('0x2a')],'resourceId':_0x5c0790['id'],'type':_0x2408e2[_0x7c63('0x2a')],'sectionId':_0x2408e2['id']},{})[_0x7c63('0x26')](function(){return _0x1e06a4;});}else{return _0x1e06a4;}})[_0x7c63('0x42')](function(_0x44cb27){logger['error'](_0x7c63('0x50'),_0x44cb27);throw _0x44cb27;});}return _0x1e06a4;});}})[_0x7c63('0x26')](respondWithResult(_0x2913db,0xc9))[_0x7c63('0x42')](handleError(_0x2913db,null));};exports[_0x7c63('0x25')]=function(_0x5cdc5c,_0x781f28){if(_0x5cdc5c[_0x7c63('0x47')]['id']){delete _0x5cdc5c[_0x7c63('0x47')]['id'];}return db[_0x7c63('0x40')][_0x7c63('0x52')]({'where':{'id':_0x5cdc5c['params']['id']}})[_0x7c63('0x26')](handleEntityNotFound(_0x781f28,null))['then'](saveUpdates(_0x5cdc5c[_0x7c63('0x47')],null))['then'](respondWithResult(_0x781f28,null))[_0x7c63('0x42')](handleError(_0x781f28,null));};exports[_0x7c63('0x28')]=function(_0x1e9a1f,_0x58a2e4){return db['Campaign'][_0x7c63('0x52')]({'where':{'id':_0x1e9a1f[_0x7c63('0x43')]['id']}})['then'](handleEntityNotFound(_0x58a2e4,null))[_0x7c63('0x26')](removeEntity(_0x58a2e4,null))[_0x7c63('0x42')](handleError(_0x58a2e4,null));};exports[_0x7c63('0x56')]=function(_0x38fc6f,_0x1ad8ce,_0x3dacc1){var _0x5d7c79={'raw':!![],'where':{}};var _0x13f970={};var _0x81d22a={'count':0x0,'rows':[]};return db['Campaign'][_0x7c63('0x57')]({'where':{'id':_0x38fc6f[_0x7c63('0x43')]['id']}})[_0x7c63('0x26')](handleEntityNotFound(_0x1ad8ce,null))[_0x7c63('0x26')](function(_0x450d7a){if(_0x450d7a){_0x13f970[_0x7c63('0x33')]=_[_0x7c63('0x44')](db[_0x7c63('0x58')][_0x7c63('0x2d')]);_0x13f970[_0x7c63('0x31')]=_[_0x7c63('0x44')](_0x38fc6f[_0x7c63('0x31')]);_0x13f970[_0x7c63('0x3c')]=_[_0x7c63('0x32')](_0x13f970['model'],_0x13f970[_0x7c63('0x31')]);_0x5d7c79[_0x7c63('0x34')]=_['intersection'](_0x13f970[_0x7c63('0x33')],qs[_0x7c63('0x35')](_0x38fc6f[_0x7c63('0x31')]['fields']));_0x5d7c79[_0x7c63('0x34')]=_0x5d7c79['attributes'][_0x7c63('0x36')]?_0x5d7c79[_0x7c63('0x34')]:_0x13f970[_0x7c63('0x33')];if(!_0x38fc6f[_0x7c63('0x31')][_0x7c63('0x37')]('nolimit')){_0x5d7c79[_0x7c63('0x1f')]=qs[_0x7c63('0x1f')](_0x38fc6f[_0x7c63('0x31')][_0x7c63('0x1f')]);_0x5d7c79['offset']=qs[_0x7c63('0x1e')](_0x38fc6f[_0x7c63('0x31')][_0x7c63('0x1e')]);}_0x5d7c79[_0x7c63('0x39')]=qs[_0x7c63('0x3a')](_0x38fc6f['query'][_0x7c63('0x3a')]);_0x5d7c79[_0x7c63('0x3b')]=qs[_0x7c63('0x3c')](_[_0x7c63('0x59')](_0x38fc6f[_0x7c63('0x31')],_0x13f970[_0x7c63('0x3c')]));_0x5d7c79['where'][_0x7c63('0x5a')]=_0x450d7a['id'];if(_0x38fc6f[_0x7c63('0x31')][_0x7c63('0x3d')]){_0x5d7c79[_0x7c63('0x3b')]=_[_0x7c63('0x3e')](_0x5d7c79[_0x7c63('0x3b')],{'$or':_['map'](_0x5d7c79[_0x7c63('0x34')],function(_0x51b056){var _0x1e9df5={};_0x1e9df5[_0x51b056]={'$like':'%'+_0x38fc6f[_0x7c63('0x31')][_0x7c63('0x3d')]+'%'};return _0x1e9df5;})});}_0x5d7c79=_[_0x7c63('0x3e')]({},_0x5d7c79,_0x38fc6f[_0x7c63('0x45')]);return db[_0x7c63('0x58')]['count']({'where':_0x5d7c79[_0x7c63('0x3b')]})[_0x7c63('0x26')](function(_0x40915d){_0x81d22a[_0x7c63('0x21')]=_0x40915d;if(_0x38fc6f['query']['includeAll']){_0x5d7c79[_0x7c63('0x5b')]=[{'all':!![]}];}return db[_0x7c63('0x58')]['findAll'](_0x5d7c79);})[_0x7c63('0x26')](function(_0x3c4e15){_0x81d22a['rows']=_0x3c4e15;return _0x81d22a;});}})[_0x7c63('0x26')](respondWithFilteredResult(_0x1ad8ce,_0x5d7c79))[_0x7c63('0x42')](handleError(_0x1ad8ce,null));};exports[_0x7c63('0x5c')]=function(_0x75e4f,_0x51cff7,_0x229002){var _0x254ec0={'raw':!![],'where':{}};var _0x159328={};var _0x55f59d={'count':0x0,'rows':[]};return db['Campaign'][_0x7c63('0x57')]({'where':{'id':_0x75e4f[_0x7c63('0x43')]['id']}})[_0x7c63('0x26')](handleEntityNotFound(_0x51cff7,null))[_0x7c63('0x26')](function(_0x233f75){if(_0x233f75){_0x159328['model']=_[_0x7c63('0x44')](db[_0x7c63('0x5d')]['rawAttributes']);_0x159328[_0x7c63('0x31')]=_['keys'](_0x75e4f['query']);_0x159328[_0x7c63('0x3c')]=_[_0x7c63('0x32')](_0x159328['model'],_0x159328['query']);_0x254ec0[_0x7c63('0x34')]=_[_0x7c63('0x32')](_0x159328[_0x7c63('0x33')],qs['fields'](_0x75e4f[_0x7c63('0x31')][_0x7c63('0x35')]));_0x254ec0[_0x7c63('0x34')]=_0x254ec0[_0x7c63('0x34')][_0x7c63('0x36')]?_0x254ec0[_0x7c63('0x34')]:_0x159328['model'];if(!_0x75e4f[_0x7c63('0x31')]['hasOwnProperty'](_0x7c63('0x38'))){_0x254ec0[_0x7c63('0x1f')]=qs[_0x7c63('0x1f')](_0x75e4f[_0x7c63('0x31')]['limit']);_0x254ec0[_0x7c63('0x1e')]=qs[_0x7c63('0x1e')](_0x75e4f[_0x7c63('0x31')][_0x7c63('0x1e')]);}_0x254ec0['order']=qs['sort'](_0x75e4f[_0x7c63('0x31')]['sort']);_0x254ec0[_0x7c63('0x3b')]=qs[_0x7c63('0x3c')](_[_0x7c63('0x59')](_0x75e4f[_0x7c63('0x31')],_0x159328[_0x7c63('0x3c')]));_0x254ec0[_0x7c63('0x3b')]['CampaignId']=_0x233f75['id'];if(_0x75e4f['query']['filter']){_0x254ec0[_0x7c63('0x3b')]=_[_0x7c63('0x3e')](_0x254ec0[_0x7c63('0x3b')],{'$or':_['map'](_0x254ec0[_0x7c63('0x34')],function(_0x2d6317){var _0x136582={};_0x136582[_0x2d6317]={'$like':'%'+_0x75e4f[_0x7c63('0x31')][_0x7c63('0x3d')]+'%'};return _0x136582;})});}_0x254ec0=_[_0x7c63('0x3e')]({},_0x254ec0,_0x75e4f[_0x7c63('0x45')]);return db['CmHopperHistory'][_0x7c63('0x21')]({'where':_0x254ec0[_0x7c63('0x3b')]})[_0x7c63('0x26')](function(_0x34db82){_0x55f59d[_0x7c63('0x21')]=_0x34db82;if(_0x75e4f[_0x7c63('0x31')]['includeAll']){_0x254ec0['include']=[{'all':!![]}];}return db[_0x7c63('0x5d')][_0x7c63('0x5e')](_0x254ec0);})['then'](function(_0x2f713a){_0x55f59d['rows']=_0x2f713a;return _0x55f59d;});}})[_0x7c63('0x26')](respondWithFilteredResult(_0x51cff7,_0x254ec0))['catch'](handleError(_0x51cff7,null));};exports[_0x7c63('0x5f')]=function(_0x216610,_0x449c78,_0x145b54){var _0x419192={'raw':!![],'where':{}};var _0x5ae6fa={};var _0x142d02={'count':0x0,'rows':[]};return db['Campaign'][_0x7c63('0x57')]({'where':{'id':_0x216610[_0x7c63('0x43')]['id']}})[_0x7c63('0x26')](handleEntityNotFound(_0x449c78,null))[_0x7c63('0x26')](function(_0x2b9b1e){if(_0x2b9b1e){_0x5ae6fa[_0x7c63('0x33')]=_['keys'](db['CmHopperFinal'][_0x7c63('0x2d')]);_0x5ae6fa[_0x7c63('0x31')]=_[_0x7c63('0x44')](_0x216610[_0x7c63('0x31')]);_0x5ae6fa[_0x7c63('0x3c')]=_[_0x7c63('0x32')](_0x5ae6fa[_0x7c63('0x33')],_0x5ae6fa['query']);_0x419192[_0x7c63('0x34')]=_['intersection'](_0x5ae6fa[_0x7c63('0x33')],qs[_0x7c63('0x35')](_0x216610[_0x7c63('0x31')][_0x7c63('0x35')]));_0x419192[_0x7c63('0x34')]=_0x419192['attributes'][_0x7c63('0x36')]?_0x419192[_0x7c63('0x34')]:_0x5ae6fa['model'];if(!_0x216610[_0x7c63('0x31')][_0x7c63('0x37')]('nolimit')){_0x419192['limit']=qs[_0x7c63('0x1f')](_0x216610[_0x7c63('0x31')][_0x7c63('0x1f')]);_0x419192[_0x7c63('0x1e')]=qs['offset'](_0x216610[_0x7c63('0x31')]['offset']);}_0x419192[_0x7c63('0x39')]=qs[_0x7c63('0x3a')](_0x216610['query']['sort']);_0x419192[_0x7c63('0x3b')]=qs[_0x7c63('0x3c')](_[_0x7c63('0x59')](_0x216610['query'],_0x5ae6fa['filters']));_0x419192[_0x7c63('0x3b')][_0x7c63('0x5a')]=_0x2b9b1e['id'];if(_0x216610[_0x7c63('0x31')][_0x7c63('0x3d')]){_0x419192['where']=_[_0x7c63('0x3e')](_0x419192[_0x7c63('0x3b')],{'$or':_[_0x7c63('0x2c')](_0x419192[_0x7c63('0x34')],function(_0x5b285e){var _0xb90b13={};_0xb90b13[_0x5b285e]={'$like':'%'+_0x216610[_0x7c63('0x31')][_0x7c63('0x3d')]+'%'};return _0xb90b13;})});}_0x419192=_[_0x7c63('0x3e')]({},_0x419192,_0x216610[_0x7c63('0x45')]);return db['CmHopperFinal']['count']({'where':_0x419192[_0x7c63('0x3b')]})[_0x7c63('0x26')](function(_0x4afcb3){_0x142d02['count']=_0x4afcb3;if(_0x216610[_0x7c63('0x31')][_0x7c63('0x41')]){_0x419192[_0x7c63('0x5b')]=[{'all':!![]}];}return db[_0x7c63('0x60')][_0x7c63('0x5e')](_0x419192);})[_0x7c63('0x26')](function(_0x469a06){_0x142d02[_0x7c63('0x61')]=_0x469a06;return _0x142d02;});}})[_0x7c63('0x26')](respondWithFilteredResult(_0x449c78,_0x419192))[_0x7c63('0x42')](handleError(_0x449c78,null));};exports[_0x7c63('0x62')]=function(_0x417ea6,_0x27f64b,_0x37840d){var _0x9eaa0e={'raw':!![],'where':{}};var _0x28f447={};var _0x2725d6={'count':0x0,'rows':[]};return db[_0x7c63('0x40')][_0x7c63('0x57')]({'where':{'id':_0x417ea6['params']['id']}})[_0x7c63('0x26')](handleEntityNotFound(_0x27f64b,null))['then'](function(_0x2c801f){if(_0x2c801f){_0x28f447['model']=_[_0x7c63('0x44')](db[_0x7c63('0x63')][_0x7c63('0x2d')]);_0x28f447[_0x7c63('0x31')]=_[_0x7c63('0x44')](_0x417ea6[_0x7c63('0x31')]);_0x28f447['filters']=_[_0x7c63('0x32')](_0x28f447['model'],_0x28f447[_0x7c63('0x31')]);_0x9eaa0e[_0x7c63('0x34')]=_['intersection'](_0x28f447[_0x7c63('0x33')],qs[_0x7c63('0x35')](_0x417ea6[_0x7c63('0x31')][_0x7c63('0x35')]));_0x9eaa0e['attributes']=_0x9eaa0e[_0x7c63('0x34')][_0x7c63('0x36')]?_0x9eaa0e['attributes']:_0x28f447[_0x7c63('0x33')];if(!_0x417ea6[_0x7c63('0x31')][_0x7c63('0x37')](_0x7c63('0x38'))){_0x9eaa0e[_0x7c63('0x1f')]=qs[_0x7c63('0x1f')](_0x417ea6[_0x7c63('0x31')]['limit']);_0x9eaa0e['offset']=qs[_0x7c63('0x1e')](_0x417ea6[_0x7c63('0x31')]['offset']);}_0x9eaa0e[_0x7c63('0x39')]=qs[_0x7c63('0x3a')](_0x417ea6[_0x7c63('0x31')][_0x7c63('0x3a')]);_0x9eaa0e[_0x7c63('0x3b')]=qs[_0x7c63('0x3c')](_[_0x7c63('0x59')](_0x417ea6[_0x7c63('0x31')],_0x28f447[_0x7c63('0x3c')]));_0x9eaa0e[_0x7c63('0x3b')]['CampaignId']=_0x2c801f['id'];if(_0x417ea6[_0x7c63('0x31')][_0x7c63('0x3d')]){_0x9eaa0e[_0x7c63('0x3b')]=_[_0x7c63('0x3e')](_0x9eaa0e[_0x7c63('0x3b')],{'$or':_[_0x7c63('0x2c')](_0x9eaa0e[_0x7c63('0x34')],function(_0x2e8855){var _0x6d258b={};_0x6d258b[_0x2e8855]={'$like':'%'+_0x417ea6[_0x7c63('0x31')]['filter']+'%'};return _0x6d258b;})});}_0x9eaa0e=_[_0x7c63('0x3e')]({},_0x9eaa0e,_0x417ea6[_0x7c63('0x45')]);return db[_0x7c63('0x63')][_0x7c63('0x21')]({'where':_0x9eaa0e[_0x7c63('0x3b')]})[_0x7c63('0x26')](function(_0x1b1db2){_0x2725d6['count']=_0x1b1db2;if(_0x417ea6[_0x7c63('0x31')]['includeAll']){_0x9eaa0e[_0x7c63('0x5b')]=[{'all':!![]}];}return db[_0x7c63('0x63')][_0x7c63('0x5e')](_0x9eaa0e);})[_0x7c63('0x26')](function(_0x330dfc){_0x2725d6['rows']=_0x330dfc;return _0x2725d6;});}})['then'](respondWithFilteredResult(_0x27f64b,_0x9eaa0e))[_0x7c63('0x42')](handleError(_0x27f64b,null));};exports[_0x7c63('0x64')]=function(_0x21157a,_0x3d2b41,_0x231230){var _0x4356e6={};var _0x12fff8={};var _0x52c3e5;var _0x1f8f99;return db[_0x7c63('0x40')][_0x7c63('0x57')]({'where':{'id':_0x21157a[_0x7c63('0x43')]['id']}})[_0x7c63('0x26')](handleEntityNotFound(_0x3d2b41,null))[_0x7c63('0x26')](function(_0x5f4e03){if(_0x5f4e03){_0x52c3e5=_0x5f4e03;_0x12fff8[_0x7c63('0x33')]=_['keys'](db[_0x7c63('0x65')][_0x7c63('0x2d')]);_0x12fff8[_0x7c63('0x31')]=_[_0x7c63('0x44')](_0x21157a[_0x7c63('0x31')]);_0x12fff8[_0x7c63('0x3c')]=_['intersection'](_0x12fff8['model'],_0x12fff8[_0x7c63('0x31')]);_0x4356e6['attributes']=_[_0x7c63('0x32')](_0x12fff8[_0x7c63('0x33')],qs[_0x7c63('0x35')](_0x21157a[_0x7c63('0x31')]['fields']));_0x4356e6[_0x7c63('0x34')]=_0x4356e6[_0x7c63('0x34')][_0x7c63('0x36')]?_0x4356e6['attributes']:_0x12fff8[_0x7c63('0x33')];_0x4356e6[_0x7c63('0x39')]=qs[_0x7c63('0x3a')](_0x21157a[_0x7c63('0x31')]['sort']);_0x4356e6['where']=qs[_0x7c63('0x3c')](_['pick'](_0x21157a[_0x7c63('0x31')],_0x12fff8[_0x7c63('0x3c')]));if(_0x21157a[_0x7c63('0x31')][_0x7c63('0x3d')]){_0x4356e6['where']=_[_0x7c63('0x3e')](_0x4356e6[_0x7c63('0x3b')],{'$or':_[_0x7c63('0x2c')](_0x4356e6[_0x7c63('0x34')],function(_0x45e399){var _0x13b8eb={};_0x13b8eb[_0x45e399]={'$like':'%'+_0x21157a[_0x7c63('0x31')][_0x7c63('0x3d')]+'%'};return _0x13b8eb;})});}_0x4356e6=_[_0x7c63('0x3e')]({},_0x4356e6,_0x21157a[_0x7c63('0x45')]);return _0x52c3e5['getLists'](_0x4356e6);}})[_0x7c63('0x26')](function(_0x493b13){if(_0x493b13){_0x1f8f99=_0x493b13['length'];if(!_0x21157a[_0x7c63('0x31')][_0x7c63('0x37')](_0x7c63('0x38'))){_0x4356e6['limit']=qs['limit'](_0x21157a[_0x7c63('0x31')]['limit']);_0x4356e6[_0x7c63('0x1e')]=qs[_0x7c63('0x1e')](_0x21157a[_0x7c63('0x31')][_0x7c63('0x1e')]);}return _0x52c3e5[_0x7c63('0x64')](_0x4356e6);}})[_0x7c63('0x26')](function(_0x5ac948){if(_0x5ac948){return _0x5ac948?{'count':_0x1f8f99,'rows':_0x5ac948}:null;}})['then'](respondWithResult(_0x3d2b41,null))[_0x7c63('0x42')](handleError(_0x3d2b41,null));};exports[_0x7c63('0x66')]=function(_0x2f2a84,_0x501f6c,_0x308ac9){var _0xa6fb05,_0x5f4b3d;return db[_0x7c63('0x40')][_0x7c63('0x52')]({'where':{'id':_0x2f2a84[_0x7c63('0x43')]['id']}})[_0x7c63('0x26')](handleEntityNotFound(_0x501f6c,null))[_0x7c63('0x26')](function(_0x396e2a){if(_0x396e2a){_0x5f4b3d=_0x396e2a;return _0x396e2a[_0x7c63('0x66')](_0x2f2a84[_0x7c63('0x47')][_0x7c63('0x67')],_['omit'](_0x2f2a84[_0x7c63('0x47')],[_0x7c63('0x67'),'id'])||{});}return null;})['spread'](function(_0x5ab181){var _0x45ee2d;_0xa6fb05=_0x5ab181||[];var _0x50d96e=[];if(_0x5ab181){for(var _0x5aa2d0=0x0;_0x5aa2d0<_0x5ab181[_0x7c63('0x36')];_0x5aa2d0+=0x1){var _0x1f06f2=_0x5ab181[_0x5aa2d0][_0x7c63('0x48')]({'plain':!![]});_0x5f4b3d[_0x7c63('0x68')]=_0x2f2a84[_0x7c63('0x47')][_0x7c63('0x68')]?_0x2f2a84[_0x7c63('0x47')][_0x7c63('0x68')]:_0x5f4b3d[_0x7c63('0x68')];switch(_0x5f4b3d[_0x7c63('0x68')]){case _0x7c63('0x69'):_0x45ee2d=squel[_0x7c63('0x6a')]()[_0x7c63('0x6b')]('cm_hopper')[_0x7c63('0x6c')]([_0x7c63('0x6d'),_0x7c63('0x6e'),_0x7c63('0x6f'),_0x7c63('0x70'),_0x7c63('0x5a'),_0x7c63('0x53'),_0x7c63('0x54')],squel[_0x7c63('0x71')]()['field'](_0x7c63('0x6d'),_0x7c63('0x6d'))['field'](_0x7c63('0x72'),'scheduledAt')[_0x7c63('0x73')]('id',_0x7c63('0x6f'))[_0x7c63('0x73')](_0x1f06f2['CmListId'][_0x7c63('0x74')](),_0x7c63('0x70'))['field'](_0x2f2a84['params']['id'][_0x7c63('0x74')](),_0x7c63('0x5a'))['field'](_0x7c63('0x72'),_0x7c63('0x53'))[_0x7c63('0x73')](_0x7c63('0x72'),_0x7c63('0x54'))[_0x7c63('0x75')](_0x7c63('0x76'))[_0x7c63('0x3b')](_0x7c63('0x77'))['where'](_0x7c63('0x78'),_0x1f06f2[_0x7c63('0x79')][_0x7c63('0x74')]())[_0x7c63('0x3b')](_0x7c63('0x7a'))[_0x7c63('0x3b')](_0x7c63('0x7b'),squel[_0x7c63('0x71')]()['field']('COALESCE(calleridnum,\x27\x27)')[_0x7c63('0x75')](_0x7c63('0x7c'))[_0x7c63('0x3b')](_0x7c63('0x7d'),_0x2f2a84[_0x7c63('0x43')]['id'][_0x7c63('0x74')]()))[_0x7c63('0x3b')](_0x7c63('0x7b'),squel[_0x7c63('0x71')]()[_0x7c63('0x73')](_0x7c63('0x7e'))[_0x7c63('0x75')](_0x7c63('0x7f'))['where'](_0x7c63('0x7d'),_0x2f2a84['params']['id']['toString']())))['toString']();break;case _0x7c63('0x80'):_0x45ee2d=squel['insert']()[_0x7c63('0x6b')]('cm_hopper')[_0x7c63('0x6c')]([_0x7c63('0x6d'),_0x7c63('0x6e'),_0x7c63('0x6f'),_0x7c63('0x70'),'CampaignId',_0x7c63('0x53'),_0x7c63('0x54')],squel[_0x7c63('0x71')]()[_0x7c63('0x73')]('phone',_0x7c63('0x6d'))[_0x7c63('0x73')](_0x7c63('0x72'),_0x7c63('0x6e'))[_0x7c63('0x73')]('id','ContactId')[_0x7c63('0x73')](_0x1f06f2[_0x7c63('0x79')][_0x7c63('0x74')](),_0x7c63('0x70'))[_0x7c63('0x73')](_0x2f2a84[_0x7c63('0x43')]['id']['toString'](),_0x7c63('0x5a'))[_0x7c63('0x73')](_0x7c63('0x72'),_0x7c63('0x53'))['field'](_0x7c63('0x72'),'updatedAt')[_0x7c63('0x75')](_0x7c63('0x76'))[_0x7c63('0x3b')]('deletedAt\x20IS\x20NULL')['where']('ListId\x20=\x20?',_0x1f06f2[_0x7c63('0x79')][_0x7c63('0x74')]())['where'](_0x7c63('0x7a'))['where'](_0x7c63('0x7b'),squel[_0x7c63('0x71')]()['field'](_0x7c63('0x7e'))[_0x7c63('0x75')](_0x7c63('0x7f'))['where'](_0x7c63('0x7d'),_0x2f2a84['params']['id']['toString']())))[_0x7c63('0x74')]();break;default:_0x45ee2d=squel['insert']()[_0x7c63('0x6b')](_0x7c63('0x7f'))[_0x7c63('0x6c')](['phone',_0x7c63('0x6e'),_0x7c63('0x6f'),_0x7c63('0x70'),_0x7c63('0x5a'),_0x7c63('0x53'),'updatedAt'],squel[_0x7c63('0x71')]()[_0x7c63('0x73')](_0x7c63('0x6d'),'phone')[_0x7c63('0x73')](_0x7c63('0x72'),'scheduledAt')[_0x7c63('0x73')]('id',_0x7c63('0x6f'))[_0x7c63('0x73')](_0x1f06f2[_0x7c63('0x79')][_0x7c63('0x74')](),_0x7c63('0x70'))[_0x7c63('0x73')](_0x2f2a84[_0x7c63('0x43')]['id'][_0x7c63('0x74')](),'CampaignId')[_0x7c63('0x73')]('NOW()',_0x7c63('0x53'))[_0x7c63('0x73')]('NOW()',_0x7c63('0x54'))[_0x7c63('0x75')](_0x7c63('0x76'))[_0x7c63('0x3b')](_0x7c63('0x77'))[_0x7c63('0x3b')](_0x7c63('0x78'),_0x1f06f2[_0x7c63('0x79')][_0x7c63('0x74')]())[_0x7c63('0x3b')](_0x7c63('0x7a')))[_0x7c63('0x74')]();}_0x50d96e['push'](db[_0x7c63('0x81')][_0x7c63('0x31')](_0x45ee2d));}return BPromise['all'](_0x50d96e);}})[_0x7c63('0x26')](function(){return _0xa6fb05;})[_0x7c63('0x26')](respondWithResult(_0x501f6c,null))['catch'](handleError(_0x501f6c,null));};exports[_0x7c63('0x82')]=function(_0x5a940b,_0x16c8c4,_0x30b65f){return db[_0x7c63('0x40')]['find']({'where':{'id':_0x5a940b[_0x7c63('0x43')]['id']}})['then'](handleEntityNotFound(_0x16c8c4,null))[_0x7c63('0x26')](function(_0x24aa5c){if(_0x24aa5c){return _0x24aa5c[_0x7c63('0x82')](_0x5a940b[_0x7c63('0x31')][_0x7c63('0x67')]);}})[_0x7c63('0x26')](function(_0x4b7b97){if(_0x4b7b97){return db['CmHopper'][_0x7c63('0x28')]({'where':{'ListId':_0x5a940b['query'][_0x7c63('0x67')],'CampaignId':_0x5a940b[_0x7c63('0x43')]['id']}})['then'](function(){return _0x4b7b97;});}})[_0x7c63('0x26')](respondWithStatusCode(_0x16c8c4,null))[_0x7c63('0x42')](handleError(_0x16c8c4,null));};exports[_0x7c63('0x83')]=function(_0x50b354,_0x3ebb58,_0x812a75){var _0x2a5e50={};var _0x2c7ee6={};var _0x2b5eb6;var _0x4352ed;return db['Campaign'][_0x7c63('0x57')]({'where':{'id':_0x50b354[_0x7c63('0x43')]['id']}})['then'](handleEntityNotFound(_0x3ebb58,null))[_0x7c63('0x26')](function(_0x4a97b6){if(_0x4a97b6){_0x2b5eb6=_0x4a97b6;_0x2c7ee6['model']=_[_0x7c63('0x44')](db['CmList'][_0x7c63('0x2d')]);_0x2c7ee6[_0x7c63('0x31')]=_['keys'](_0x50b354['query']);_0x2c7ee6['filters']=_[_0x7c63('0x32')](_0x2c7ee6['model'],_0x2c7ee6[_0x7c63('0x31')]);_0x2a5e50[_0x7c63('0x34')]=_[_0x7c63('0x32')](_0x2c7ee6[_0x7c63('0x33')],qs[_0x7c63('0x35')](_0x50b354['query'][_0x7c63('0x35')]));_0x2a5e50[_0x7c63('0x34')]=_0x2a5e50[_0x7c63('0x34')][_0x7c63('0x36')]?_0x2a5e50[_0x7c63('0x34')]:_0x2c7ee6[_0x7c63('0x33')];_0x2a5e50[_0x7c63('0x39')]=qs['sort'](_0x50b354['query'][_0x7c63('0x3a')]);_0x2a5e50['where']=qs[_0x7c63('0x3c')](_[_0x7c63('0x59')](_0x50b354[_0x7c63('0x31')],_0x2c7ee6[_0x7c63('0x3c')]));if(_0x50b354[_0x7c63('0x31')][_0x7c63('0x3d')]){_0x2a5e50[_0x7c63('0x3b')]=_['merge'](_0x2a5e50[_0x7c63('0x3b')],{'$or':_[_0x7c63('0x2c')](_0x2a5e50['attributes'],function(_0x35f52b){var _0x240ddf={};_0x240ddf[_0x35f52b]={'$like':'%'+_0x50b354[_0x7c63('0x31')]['filter']+'%'};return _0x240ddf;})});}_0x2a5e50=_[_0x7c63('0x3e')]({},_0x2a5e50,_0x50b354[_0x7c63('0x45')]);return _0x2b5eb6['getBlackLists'](_0x2a5e50);}})[_0x7c63('0x26')](function(_0x32fa4b){if(_0x32fa4b){_0x4352ed=_0x32fa4b[_0x7c63('0x36')];if(!_0x50b354['query']['hasOwnProperty'](_0x7c63('0x38'))){_0x2a5e50[_0x7c63('0x1f')]=qs[_0x7c63('0x1f')](_0x50b354['query']['limit']);_0x2a5e50['offset']=qs[_0x7c63('0x1e')](_0x50b354[_0x7c63('0x31')]['offset']);}return _0x2b5eb6[_0x7c63('0x83')](_0x2a5e50);}})[_0x7c63('0x26')](function(_0x5aa62b){if(_0x5aa62b){return _0x5aa62b?{'count':_0x4352ed,'rows':_0x5aa62b}:null;}})[_0x7c63('0x26')](respondWithResult(_0x3ebb58,null))[_0x7c63('0x42')](handleError(_0x3ebb58,null));};exports[_0x7c63('0x84')]=function(_0x2deccf,_0xd0df23,_0x1488d0){var _0xa419d,_0x2d100c;return db[_0x7c63('0x40')][_0x7c63('0x52')]({'where':{'id':_0x2deccf[_0x7c63('0x43')]['id']}})[_0x7c63('0x26')](handleEntityNotFound(_0xd0df23,null))['then'](function(_0x7da8ce){if(_0x7da8ce){_0x2d100c=_0x7da8ce;return _0x7da8ce[_0x7c63('0x84')](_0x2deccf[_0x7c63('0x47')]['ids'],_['omit'](_0x2deccf['body'],[_0x7c63('0x67'),'id'])||{});}return null;})['spread'](function(_0x3ed3ac){var _0x246311;_0xa419d=_0x3ed3ac||[];var _0x326b5f=[];if(_0x3ed3ac){for(var _0x59bcfc=0x0;_0x59bcfc<_0x3ed3ac[_0x7c63('0x36')];_0x59bcfc+=0x1){var _0x1378b1=_0x3ed3ac[_0x59bcfc][_0x7c63('0x48')]({'plain':!![]});_0x246311=squel['insert']()[_0x7c63('0x6b')]('cm_hopper_black')[_0x7c63('0x6c')](['phone',_0x7c63('0x6f'),'ListId',_0x7c63('0x5a'),'createdAt',_0x7c63('0x54')],squel['select']()[_0x7c63('0x73')]('phone','phone')[_0x7c63('0x73')]('id',_0x7c63('0x6f'))['field'](_0x1378b1[_0x7c63('0x79')][_0x7c63('0x74')](),'ListId')[_0x7c63('0x73')](_0x2deccf['params']['id'][_0x7c63('0x74')](),'CampaignId')['field'](_0x7c63('0x72'),_0x7c63('0x53'))[_0x7c63('0x73')]('NOW()',_0x7c63('0x54'))[_0x7c63('0x75')]('cm_contacts')['where'](_0x7c63('0x77'))[_0x7c63('0x3b')]('ListId\x20=\x20?',_0x1378b1[_0x7c63('0x79')][_0x7c63('0x74')]())[_0x7c63('0x3b')]('phone\x20IS\x20NOT\x20NULL'))[_0x7c63('0x74')]();_0x326b5f[_0x7c63('0x85')](db['sequelize'][_0x7c63('0x31')](_0x246311));}return BPromise[_0x7c63('0x86')](_0x326b5f);}})[_0x7c63('0x26')](function(){return _0xa419d;})[_0x7c63('0x26')](respondWithResult(_0xd0df23,null))[_0x7c63('0x42')](handleError(_0xd0df23,null));};exports[_0x7c63('0x87')]=function(_0x4611cd,_0x45410e,_0x200c1d){return db[_0x7c63('0x40')][_0x7c63('0x52')]({'where':{'id':_0x4611cd[_0x7c63('0x43')]['id']}})[_0x7c63('0x26')](handleEntityNotFound(_0x45410e,null))['then'](function(_0x1bf661){if(_0x1bf661){return _0x1bf661['removeBlackLists'](_0x4611cd[_0x7c63('0x31')]['ids']);}})['then'](function(_0x3e31cd){if(_0x3e31cd){return db['CmHopperBlack']['destroy']({'where':{'ListId':_0x4611cd['query'][_0x7c63('0x67')],'CampaignId':_0x4611cd[_0x7c63('0x43')]['id']}})['then'](function(){return _0x3e31cd;});}})[_0x7c63('0x26')](respondWithStatusCode(_0x45410e,null))[_0x7c63('0x42')](handleError(_0x45410e,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['../../config/logger','moment','bluebird','path','rimraf','../../config/environment','./campaign.attributes','exports','Campaign','campaigns','lodash','util'];(function(_0x3f036d,_0x53a9d9){var _0xd148f6=function(_0x48fbc4){while(--_0x48fbc4){_0x3f036d['push'](_0x3f036d['shift']());}};_0xd148f6(++_0x53a9d9);}(_0x7a54,0x106));var _0x47a5=function(_0x5bc9b4,_0x1c5ec8){_0x5bc9b4=_0x5bc9b4-0x0;var _0x53f3ea=_0x7a54[_0x5bc9b4];return _0x53f3ea;};'use strict';var _=require(_0x47a5('0x0'));var util=require(_0x47a5('0x1'));var logger=require(_0x47a5('0x2'))('api');var moment=require(_0x47a5('0x3'));var BPromise=require(_0x47a5('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x47a5('0x5'));var rimraf=require(_0x47a5('0x6'));var config=require(_0x47a5('0x7'));var attributes=require(_0x47a5('0x8'));module[_0x47a5('0x9')]=function(_0x545a97,_0x3d5629){return _0x545a97['define'](_0x47a5('0xa'),attributes,{'tableName':_0x47a5('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x7a54=['../../config/logger','moment','bluebird','path','rimraf','../../config/environment','./campaign.attributes','exports','Campaign','campaigns','lodash','util'];(function(_0x176f46,_0x1ae7d4){var _0x3e6691=function(_0x1f547c){while(--_0x1f547c){_0x176f46['push'](_0x176f46['shift']());}};_0x3e6691(++_0x1ae7d4);}(_0x7a54,0x106));var _0x47a5=function(_0x1a94ba,_0x19c8cd){_0x1a94ba=_0x1a94ba-0x0;var _0x431d0b=_0x7a54[_0x1a94ba];return _0x431d0b;};'use strict';var _=require(_0x47a5('0x0'));var util=require(_0x47a5('0x1'));var logger=require(_0x47a5('0x2'))('api');var moment=require(_0x47a5('0x3'));var BPromise=require(_0x47a5('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x47a5('0x5'));var rimraf=require(_0x47a5('0x6'));var config=require(_0x47a5('0x7'));var attributes=require(_0x47a5('0x8'));module[_0x47a5('0x9')]=function(_0x545a97,_0x3d5629){return _0x545a97['define'](_0x47a5('0xa'),attributes,{'tableName':_0x47a5('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x534d=['jayson/promise','client','http','then','info','Campaign,\x20%s,\x20%s','request\x20sent','Campaign,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','GetCampaign','findAll','options','where','attributes','include','map','model','debug','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment'];(function(_0x224e2a,_0x44b93d){var _0x6ae40d=function(_0x4af393){while(--_0x4af393){_0x224e2a['push'](_0x224e2a['shift']());}};_0x6ae40d(++_0x44b93d);}(_0x534d,0x79));var _0xd534=function(_0x4d1a50,_0x4ecc45){_0x4d1a50=_0x4d1a50-0x0;var _0x12d491=_0x534d[_0x4d1a50];return _0x12d491;};'use strict';var _=require(_0xd534('0x0'));var util=require(_0xd534('0x1'));var moment=require(_0xd534('0x2'));var BPromise=require(_0xd534('0x3'));var rs=require(_0xd534('0x4'));var fs=require('fs');var Redis=require(_0xd534('0x5'));var db=require(_0xd534('0x6'))['db'];var utils=require(_0xd534('0x7'));var logger=require(_0xd534('0x8'))(_0xd534('0x9'));var config=require(_0xd534('0xa'));var jayson=require(_0xd534('0xb'));var client=jayson[_0xd534('0xc')][_0xd534('0xd')]({'port':0x232a});function respondWithRpcPromise(_0x1db778,_0x3c8772,_0x4419ee){return new BPromise(function(_0x1a00af,_0x2be8e1){return client['request'](_0x1db778,_0x4419ee)[_0xd534('0xe')](function(_0x37a2c8){logger[_0xd534('0xf')](_0xd534('0x10'),_0x3c8772,_0xd534('0x11'));logger['debug'](_0xd534('0x12'),_0x3c8772,_0xd534('0x11'),JSON[_0xd534('0x13')](_0x37a2c8));if(_0x37a2c8[_0xd534('0x14')]){if(_0x37a2c8[_0xd534('0x14')][_0xd534('0x15')]===0x1f4){logger[_0xd534('0x14')](_0xd534('0x10'),_0x3c8772,_0x37a2c8['error']['message']);return _0x2be8e1(_0x37a2c8[_0xd534('0x14')][_0xd534('0x16')]);}logger[_0xd534('0x14')](_0xd534('0x10'),_0x3c8772,_0x37a2c8[_0xd534('0x14')][_0xd534('0x16')]);return _0x1a00af(_0x37a2c8[_0xd534('0x14')][_0xd534('0x16')]);}else{logger[_0xd534('0xf')](_0xd534('0x10'),_0x3c8772,'request\x20sent');_0x1a00af(_0x37a2c8['result'][_0xd534('0x16')]);}})[_0xd534('0x17')](function(_0x398435){logger['error']('Campaign,\x20%s,\x20%s',_0x3c8772,_0x398435);_0x2be8e1(_0x398435);});});}exports[_0xd534('0x18')]=function(_0x477b62){var _0x36cc6c=this;return new Promise(function(_0xb097fd,_0x4d02b1){return db['Campaign'][_0xd534('0x19')]({'raw':_0x477b62[_0xd534('0x1a')]?_0x477b62['options']['raw']===undefined?!![]:![]:!![],'where':_0x477b62[_0xd534('0x1a')]?_0x477b62['options'][_0xd534('0x1b')]||null:null,'attributes':_0x477b62[_0xd534('0x1a')]?_0x477b62[_0xd534('0x1a')][_0xd534('0x1c')]||null:null,'limit':_0x477b62[_0xd534('0x1a')]?_0x477b62['options']['limit']||null:null,'include':_0x477b62[_0xd534('0x1a')]?_0x477b62['options'][_0xd534('0x1d')]?_[_0xd534('0x1e')](_0x477b62['options'][_0xd534('0x1d')],function(_0x38681b){return{'model':db[_0x38681b[_0xd534('0x1f')]],'as':_0x38681b['as'],'attributes':_0x38681b[_0xd534('0x1c')],'include':_0x38681b['include']?_['map'](_0x38681b[_0xd534('0x1d')],function(_0x269b31){return{'model':db[_0x269b31[_0xd534('0x1f')]],'as':_0x269b31['as'],'attributes':_0x269b31['attributes'],'include':_0x269b31[_0xd534('0x1d')]?_[_0xd534('0x1e')](_0x269b31[_0xd534('0x1d')],function(_0x4c509d){return{'model':db[_0x4c509d[_0xd534('0x1f')]],'as':_0x4c509d['as'],'attributes':_0x4c509d[_0xd534('0x1c')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x3202c7){logger[_0xd534('0xf')](_0xd534('0x18'),_0x477b62);logger[_0xd534('0x20')](_0xd534('0x18'),_0x477b62,JSON[_0xd534('0x13')](_0x3202c7));_0xb097fd(_0x3202c7);})['catch'](function(_0xf3da75){logger[_0xd534('0x14')](_0xd534('0x18'),_0xf3da75[_0xd534('0x16')],_0x477b62);_0x4d02b1(_0x36cc6c[_0xd534('0x14')](0x1f4,_0xf3da75[_0xd534('0x16')]));});});};
\ No newline at end of file
+var _0xdadd=['ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','request','then','info','Campaign,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','catch','Campaign','options','limit','include','model','attributes','map','lodash','moment','randomstring'];(function(_0x3287a5,_0x5dda65){var _0x50d248=function(_0x4fb35b){while(--_0x4fb35b){_0x3287a5['push'](_0x3287a5['shift']());}};_0x50d248(++_0x5dda65);}(_0xdadd,0x1c8));var _0xddad=function(_0x1f8b97,_0x1e98f5){_0x1f8b97=_0x1f8b97-0x0;var _0x1e77d2=_0xdadd[_0x1f8b97];return _0x1e77d2;};'use strict';var _=require(_0xddad('0x0'));var util=require('util');var moment=require(_0xddad('0x1'));var BPromise=require('bluebird');var rs=require(_0xddad('0x2'));var fs=require('fs');var Redis=require(_0xddad('0x3'));var db=require(_0xddad('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0xddad('0x5'))(_0xddad('0x6'));var config=require(_0xddad('0x7'));var jayson=require(_0xddad('0x8'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x32fed9,_0x79a00b,_0x5b1c3f){return new BPromise(function(_0x40b75a,_0x2b9dbb){return client[_0xddad('0x9')](_0x32fed9,_0x5b1c3f)[_0xddad('0xa')](function(_0x15b533){logger[_0xddad('0xb')](_0xddad('0xc'),_0x79a00b,_0xddad('0xd'));logger[_0xddad('0xe')]('Campaign,\x20%s,\x20%s,\x20%s',_0x79a00b,_0xddad('0xd'),JSON[_0xddad('0xf')](_0x15b533));if(_0x15b533[_0xddad('0x10')]){if(_0x15b533['error'][_0xddad('0x11')]===0x1f4){logger['error'](_0xddad('0xc'),_0x79a00b,_0x15b533[_0xddad('0x10')][_0xddad('0x12')]);return _0x2b9dbb(_0x15b533[_0xddad('0x10')][_0xddad('0x12')]);}logger[_0xddad('0x10')]('Campaign,\x20%s,\x20%s',_0x79a00b,_0x15b533[_0xddad('0x10')][_0xddad('0x12')]);return _0x40b75a(_0x15b533[_0xddad('0x10')][_0xddad('0x12')]);}else{logger[_0xddad('0xb')](_0xddad('0xc'),_0x79a00b,'request\x20sent');_0x40b75a(_0x15b533['result'][_0xddad('0x12')]);}})[_0xddad('0x13')](function(_0x239d82){logger[_0xddad('0x10')](_0xddad('0xc'),_0x79a00b,_0x239d82);_0x2b9dbb(_0x239d82);});});}exports['GetCampaign']=function(_0x282b69){var _0x4649aa=this;return new Promise(function(_0x3c4a8a,_0x596bf7){return db[_0xddad('0x14')]['findAll']({'raw':_0x282b69[_0xddad('0x15')]?_0x282b69['options']['raw']===undefined?!![]:![]:!![],'where':_0x282b69['options']?_0x282b69[_0xddad('0x15')]['where']||null:null,'attributes':_0x282b69['options']?_0x282b69['options']['attributes']||null:null,'limit':_0x282b69[_0xddad('0x15')]?_0x282b69['options'][_0xddad('0x16')]||null:null,'include':_0x282b69[_0xddad('0x15')]?_0x282b69[_0xddad('0x15')]['include']?_['map'](_0x282b69['options'][_0xddad('0x17')],function(_0x5e9e62){return{'model':db[_0x5e9e62[_0xddad('0x18')]],'as':_0x5e9e62['as'],'attributes':_0x5e9e62[_0xddad('0x19')],'include':_0x5e9e62[_0xddad('0x17')]?_[_0xddad('0x1a')](_0x5e9e62[_0xddad('0x17')],function(_0x561f35){return{'model':db[_0x561f35[_0xddad('0x18')]],'as':_0x561f35['as'],'attributes':_0x561f35['attributes'],'include':_0x561f35['include']?_[_0xddad('0x1a')](_0x561f35[_0xddad('0x17')],function(_0x3b4bc8){return{'model':db[_0x3b4bc8['model']],'as':_0x3b4bc8['as'],'attributes':_0x3b4bc8[_0xddad('0x19')]};}):[]};}):[]};}):[]:[]})[_0xddad('0xa')](function(_0x513587){logger[_0xddad('0xb')]('GetCampaign',_0x282b69);logger[_0xddad('0xe')]('GetCampaign',_0x282b69,JSON[_0xddad('0xf')](_0x513587));_0x3c4a8a(_0x513587);})[_0xddad('0x13')](function(_0x55ea75){logger[_0xddad('0x10')]('GetCampaign',_0x55ea75[_0xddad('0x12')],_0x282b69);_0x596bf7(_0x4649aa['error'](0x1f4,_0x55ea75[_0xddad('0x12')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1ee3=['get','isAuthenticated','index','/:id','show','/:id/hoppers','/:id/hopper_histories','getHopperHistories','/:id/hopper_finals','getHopperFinals','getHopperBlacks','getLists','/:id/blacklists','getBlackLists','post','create','/:id/clone','/:id/lists','addLists','addBlackLists','update','delete','removeLists','removeBlackLists','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./campaign.controller'];(function(_0x4defd6,_0x37bbd3){var _0x4c9276=function(_0x1d7a3d){while(--_0x1d7a3d){_0x4defd6['push'](_0x4defd6['shift']());}};_0x4c9276(++_0x37bbd3);}(_0x1ee3,0x14a));var _0x31ee=function(_0x3e7d3c,_0x42973c){_0x3e7d3c=_0x3e7d3c-0x0;var _0x5c862e=_0x1ee3[_0x3e7d3c];return _0x5c862e;};'use strict';var multer=require(_0x31ee('0x0'));var util=require(_0x31ee('0x1'));var path=require(_0x31ee('0x2'));var timeout=require(_0x31ee('0x3'));var express=require(_0x31ee('0x4'));var router=express[_0x31ee('0x5')]();var fs_extra=require(_0x31ee('0x6'));var auth=require(_0x31ee('0x7'));var interaction=require(_0x31ee('0x8'));var config=require('../../config/environment');var controller=require(_0x31ee('0x9'));router[_0x31ee('0xa')]('/',auth[_0x31ee('0xb')](),controller[_0x31ee('0xc')]);router[_0x31ee('0xa')](_0x31ee('0xd'),auth[_0x31ee('0xb')](),controller[_0x31ee('0xe')]);router[_0x31ee('0xa')](_0x31ee('0xf'),auth['isAuthenticated'](),controller['getHoppers']);router[_0x31ee('0xa')](_0x31ee('0x10'),auth[_0x31ee('0xb')](),controller[_0x31ee('0x11')]);router[_0x31ee('0xa')](_0x31ee('0x12'),auth[_0x31ee('0xb')](),controller[_0x31ee('0x13')]);router[_0x31ee('0xa')]('/:id/hopper_black',auth[_0x31ee('0xb')](),controller[_0x31ee('0x14')]);router['get']('/:id/lists',auth[_0x31ee('0xb')](),controller[_0x31ee('0x15')]);router[_0x31ee('0xa')](_0x31ee('0x16'),auth[_0x31ee('0xb')](),controller[_0x31ee('0x17')]);router[_0x31ee('0x18')]('/',auth[_0x31ee('0xb')](),controller[_0x31ee('0x19')]);router[_0x31ee('0x18')](_0x31ee('0x1a'),auth[_0x31ee('0xb')](),controller['clone']);router['post'](_0x31ee('0x1b'),auth[_0x31ee('0xb')](),controller[_0x31ee('0x1c')]);router[_0x31ee('0x18')](_0x31ee('0x16'),auth[_0x31ee('0xb')](),controller[_0x31ee('0x1d')]);router['put'](_0x31ee('0xd'),auth['isAuthenticated'](),controller[_0x31ee('0x1e')]);router[_0x31ee('0x1f')](_0x31ee('0xd'),auth['isAuthenticated'](),controller['destroy']);router[_0x31ee('0x1f')]('/:id/lists',auth['isAuthenticated'](),controller[_0x31ee('0x20')]);router['delete'](_0x31ee('0x16'),auth[_0x31ee('0xb')](),controller[_0x31ee('0x21')]);module['exports']=router;
\ No newline at end of file
+var _0x5d25=['/:id','update','delete','destroy','removeLists','removeBlackLists','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./campaign.controller','isAuthenticated','get','show','getHoppers','getHopperHistories','/:id/hopper_finals','/:id/hopper_black','getHopperBlacks','/:id/lists','/:id/blacklists','getBlackLists','create','post','addLists','addBlackLists','put'];(function(_0x24e64a,_0x22af59){var _0x3827d2=function(_0x50f599){while(--_0x50f599){_0x24e64a['push'](_0x24e64a['shift']());}};_0x3827d2(++_0x22af59);}(_0x5d25,0x117));var _0x55d2=function(_0x3bd49b,_0x3134ef){_0x3bd49b=_0x3bd49b-0x0;var _0x28c250=_0x5d25[_0x3bd49b];return _0x28c250;};'use strict';var multer=require(_0x55d2('0x0'));var util=require(_0x55d2('0x1'));var path=require(_0x55d2('0x2'));var timeout=require(_0x55d2('0x3'));var express=require(_0x55d2('0x4'));var router=express[_0x55d2('0x5')]();var fs_extra=require(_0x55d2('0x6'));var auth=require(_0x55d2('0x7'));var interaction=require(_0x55d2('0x8'));var config=require(_0x55d2('0x9'));var controller=require(_0x55d2('0xa'));router['get']('/',auth[_0x55d2('0xb')](),controller['index']);router[_0x55d2('0xc')]('/:id',auth['isAuthenticated'](),controller[_0x55d2('0xd')]);router[_0x55d2('0xc')]('/:id/hoppers',auth['isAuthenticated'](),controller[_0x55d2('0xe')]);router['get']('/:id/hopper_histories',auth[_0x55d2('0xb')](),controller[_0x55d2('0xf')]);router['get'](_0x55d2('0x10'),auth[_0x55d2('0xb')](),controller['getHopperFinals']);router[_0x55d2('0xc')](_0x55d2('0x11'),auth['isAuthenticated'](),controller[_0x55d2('0x12')]);router[_0x55d2('0xc')](_0x55d2('0x13'),auth['isAuthenticated'](),controller['getLists']);router[_0x55d2('0xc')](_0x55d2('0x14'),auth[_0x55d2('0xb')](),controller[_0x55d2('0x15')]);router['post']('/',auth['isAuthenticated'](),controller[_0x55d2('0x16')]);router['post']('/:id/clone',auth[_0x55d2('0xb')](),controller['clone']);router[_0x55d2('0x17')](_0x55d2('0x13'),auth['isAuthenticated'](),controller[_0x55d2('0x18')]);router['post'](_0x55d2('0x14'),auth['isAuthenticated'](),controller[_0x55d2('0x19')]);router[_0x55d2('0x1a')](_0x55d2('0x1b'),auth['isAuthenticated'](),controller[_0x55d2('0x1c')]);router[_0x55d2('0x1d')](_0x55d2('0x1b'),auth['isAuthenticated'](),controller[_0x55d2('0x1e')]);router[_0x55d2('0x1d')](_0x55d2('0x13'),auth[_0x55d2('0xb')](),controller[_0x55d2('0x1f')]);router[_0x55d2('0x1d')]('/:id/blacklists',auth[_0x55d2('0xb')](),controller[_0x55d2('0x20')]);module[_0x55d2('0x21')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcbb9=['exports','STRING','getDataValue','sequelize'];(function(_0x321961,_0x2e2ccd){var _0x5bc995=function(_0x399e4a){while(--_0x399e4a){_0x321961['push'](_0x321961['shift']());}};_0x5bc995(++_0x2e2ccd);}(_0xcbb9,0x13b));var _0x9cbb=function(_0x16765c,_0x5980aa){_0x16765c=_0x16765c-0x0;var _0x299c79=_0xcbb9[_0x16765c];return _0x299c79;};'use strict';var Sequelize=require(_0x9cbb('0x0'));module[_0x9cbb('0x1')]={'key':{'type':Sequelize[_0x9cbb('0x2')],'allowNull':![]},'value':{'type':Sequelize['TEXT'],'allowNull':![]},'description':{'type':Sequelize[_0x9cbb('0x2')]},'name':{'type':Sequelize['VIRTUAL'],'get':function(){return this[_0x9cbb('0x3')]('key');}}};
\ No newline at end of file
+var _0x344e=['exports','STRING','TEXT','VIRTUAL','getDataValue','key','sequelize'];(function(_0xd51c92,_0x4458fd){var _0x38681e=function(_0x554176){while(--_0x554176){_0xd51c92['push'](_0xd51c92['shift']());}};_0x38681e(++_0x4458fd);}(_0x344e,0x1b8));var _0xe344=function(_0x3a1b5e,_0x5505c0){_0x3a1b5e=_0x3a1b5e-0x0;var _0x312656=_0x344e[_0x3a1b5e];return _0x312656;};'use strict';var Sequelize=require(_0xe344('0x0'));module[_0xe344('0x1')]={'key':{'type':Sequelize[_0xe344('0x2')],'allowNull':![]},'value':{'type':Sequelize[_0xe344('0x3')],'allowNull':![]},'description':{'type':Sequelize[_0xe344('0x2')]},'name':{'type':Sequelize[_0xe344('0x4')],'get':function(){return this[_0xe344('0x5')](_0xe344('0x6'));}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1ff0=['../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','status','json','undefined','limit','count','offset','set','Content-Range','apply','reject','save','then','destroy','UserProfileResource','error','stack','name','index','map','CannedAnswer','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','fields','attributes','length','nolimit','order','sort','pick','filter','merge','includeAll','findAll','rows','catch','show','params','include','find','update','body','create','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','Sequelize','The\x20inserted\x20key\x20already\x20exists.','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','CannedAnswers','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','util','path','sox','ejs','lodash','crypto','jsforce','to-csv','querystring','papaparse'];(function(_0x1bf32f,_0x2e994e){var _0x147063=function(_0x423069){while(--_0x423069){_0x1bf32f['push'](_0x1bf32f['shift']());}};_0x147063(++_0x2e994e);}(_0x1ff0,0xef));var _0x01ff=function(_0x514e24,_0x31dfd9){_0x514e24=_0x514e24-0x0;var _0x28e1c8=_0x1ff0[_0x514e24];return _0x28e1c8;};'use strict';var emlformat=require(_0x01ff('0x0'));var rimraf=require(_0x01ff('0x1'));var zipdir=require(_0x01ff('0x2'));var jsonpatch=require(_0x01ff('0x3'));var rp=require('request-promise');var moment=require(_0x01ff('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x01ff('0x5'));var util=require(_0x01ff('0x6'));var path=require(_0x01ff('0x7'));var sox=require(_0x01ff('0x8'));var csv=require('to-csv');var ejs=require(_0x01ff('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x01ff('0xa'));var squel=require('squel');var crypto=require(_0x01ff('0xb'));var jsforce=require(_0x01ff('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x01ff('0xd'));var querystring=require(_0x01ff('0xe'));var Papa=require(_0x01ff('0xf'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x01ff('0x10'));var hardwareService=require(_0x01ff('0x11'));var logger=require(_0x01ff('0x12'))('api');var utils=require(_0x01ff('0x13'));var config=require(_0x01ff('0x14'));var licenseUtil=require('../../config/license/util');var db=require(_0x01ff('0x15'))['db'];function respondWithStatusCode(_0x1465a9,_0x307a8e){_0x307a8e=_0x307a8e||0xcc;return function(_0xa03391){if(_0xa03391){return _0x1465a9[_0x01ff('0x16')](_0x307a8e);}return _0x1465a9['status'](_0x307a8e)[_0x01ff('0x17')]();};}function respondWithResult(_0x87a6ee,_0x55d864){_0x55d864=_0x55d864||0xc8;return function(_0x5a6cf7){if(_0x5a6cf7){return _0x87a6ee[_0x01ff('0x18')](_0x55d864)[_0x01ff('0x19')](_0x5a6cf7);}};}function respondWithFilteredResult(_0x420391,_0x2f86c7){return function(_0xd4792c){if(_0xd4792c){var _0x12ddac=typeof _0x2f86c7['offset']===_0x01ff('0x1a')&&typeof _0x2f86c7[_0x01ff('0x1b')]===_0x01ff('0x1a');var _0x4024be=_0xd4792c[_0x01ff('0x1c')];var _0x2effc3=_0x12ddac?0x0:_0x2f86c7['offset'];var _0x1f4cf6=_0x12ddac?_0xd4792c[_0x01ff('0x1c')]:_0x2f86c7[_0x01ff('0x1d')]+_0x2f86c7[_0x01ff('0x1b')];var _0x17a4a1;if(_0x1f4cf6>=_0x4024be){_0x1f4cf6=_0x4024be;_0x17a4a1=0xc8;}else{_0x17a4a1=0xce;}_0x420391['status'](_0x17a4a1);return _0x420391[_0x01ff('0x1e')](_0x01ff('0x1f'),_0x2effc3+'-'+_0x1f4cf6+'/'+_0x4024be)[_0x01ff('0x19')](_0xd4792c);}return null;};}function patchUpdates(_0x409696){return function(_0xa1d50e){try{jsonpatch[_0x01ff('0x20')](_0xa1d50e,_0x409696,!![]);}catch(_0x3c2dd7){return BPromise[_0x01ff('0x21')](_0x3c2dd7);}return _0xa1d50e[_0x01ff('0x22')]();};}function saveUpdates(_0x5bf97a,_0x322535){return function(_0x1670f1){if(_0x1670f1){return _0x1670f1['update'](_0x5bf97a)[_0x01ff('0x23')](function(_0x1d0c41){return _0x1d0c41;});}return null;};}function removeEntity(_0x2b9724,_0x32a12d){return function(_0x463c58){if(_0x463c58){return _0x463c58[_0x01ff('0x24')]()[_0x01ff('0x23')](function(){var _0x453d64=_0x463c58['get']({'plain':!![]});var _0x42ac44='CannedAnswers';return db[_0x01ff('0x25')][_0x01ff('0x24')]({'where':{'type':_0x42ac44,'resourceId':_0x453d64['id']}})[_0x01ff('0x23')](function(){return _0x463c58;});})[_0x01ff('0x23')](function(){_0x2b9724[_0x01ff('0x18')](0xcc)[_0x01ff('0x17')]();});}};}function handleEntityNotFound(_0x2e1163,_0x41e6f7){return function(_0xb30c11){if(!_0xb30c11){_0x2e1163[_0x01ff('0x16')](0x194);}return _0xb30c11;};}function handleError(_0x4b9c1a,_0x3e2a06){_0x3e2a06=_0x3e2a06||0x1f4;return function(_0x3ad07c){logger[_0x01ff('0x26')](_0x3ad07c[_0x01ff('0x27')]);if(_0x3ad07c['name']){delete _0x3ad07c[_0x01ff('0x28')];}_0x4b9c1a[_0x01ff('0x18')](_0x3e2a06)['send'](_0x3ad07c);};}exports[_0x01ff('0x29')]=function(_0x5a510c,_0x5af1b8){var _0x3e6a99={},_0x947d08={},_0x4520b0={'count':0x0,'rows':[]};var _0x1f44bf=_[_0x01ff('0x2a')](db[_0x01ff('0x2b')][_0x01ff('0x2c')],function(_0x2e24e7){return{'name':_0x2e24e7[_0x01ff('0x2d')],'type':_0x2e24e7[_0x01ff('0x2e')][_0x01ff('0x2f')]};});_0x947d08[_0x01ff('0x30')]=_[_0x01ff('0x2a')](_0x1f44bf,_0x01ff('0x28'));_0x947d08['query']=_[_0x01ff('0x31')](_0x5a510c[_0x01ff('0x32')]);_0x947d08[_0x01ff('0x33')]=_[_0x01ff('0x34')](_0x947d08[_0x01ff('0x30')],_0x947d08['query']);_0x3e6a99['attributes']=_[_0x01ff('0x34')](_0x947d08[_0x01ff('0x30')],qs[_0x01ff('0x35')](_0x5a510c[_0x01ff('0x32')][_0x01ff('0x35')]));_0x3e6a99['attributes']=_0x3e6a99[_0x01ff('0x36')][_0x01ff('0x37')]?_0x3e6a99[_0x01ff('0x36')]:_0x947d08[_0x01ff('0x30')];if(!_0x5a510c['query']['hasOwnProperty'](_0x01ff('0x38'))){_0x3e6a99[_0x01ff('0x1b')]=qs['limit'](_0x5a510c[_0x01ff('0x32')][_0x01ff('0x1b')]);_0x3e6a99[_0x01ff('0x1d')]=qs[_0x01ff('0x1d')](_0x5a510c[_0x01ff('0x32')][_0x01ff('0x1d')]);}_0x3e6a99[_0x01ff('0x39')]=qs[_0x01ff('0x3a')](_0x5a510c['query'][_0x01ff('0x3a')]);_0x3e6a99['where']=qs['filters'](_[_0x01ff('0x3b')](_0x5a510c['query'],_0x947d08[_0x01ff('0x33')]),_0x1f44bf);if(_0x5a510c[_0x01ff('0x32')][_0x01ff('0x3c')]){_0x3e6a99['where']=_[_0x01ff('0x3d')](_0x3e6a99['where'],{'$or':[{'key':{'$like':'%'+_0x5a510c[_0x01ff('0x32')]['filter']+'%'}},{'value':{'$like':'%'+_0x5a510c['query'][_0x01ff('0x3c')]+'%'}}]});}_0x3e6a99=_[_0x01ff('0x3d')]({},_0x3e6a99,_0x5a510c['options']);var _0x38ddf5={'where':_0x3e6a99['where']};return db[_0x01ff('0x2b')][_0x01ff('0x1c')](_0x38ddf5)['then'](function(_0x3eff0b){_0x4520b0['count']=_0x3eff0b;if(_0x5a510c[_0x01ff('0x32')][_0x01ff('0x3e')]){_0x3e6a99['include']=[{'all':!![]}];}return db['CannedAnswer'][_0x01ff('0x3f')](_0x3e6a99);})['then'](function(_0x4aad5f){_0x4520b0[_0x01ff('0x40')]=_0x4aad5f;return _0x4520b0;})[_0x01ff('0x23')](respondWithFilteredResult(_0x5af1b8,_0x3e6a99))[_0x01ff('0x41')](handleError(_0x5af1b8,null));};exports[_0x01ff('0x42')]=function(_0x55fcb7,_0x2132b8){var _0x5ae580={'raw':!![],'where':{'id':_0x55fcb7[_0x01ff('0x43')]['id']}},_0x2b9766={};_0x2b9766[_0x01ff('0x30')]=_[_0x01ff('0x31')](db['CannedAnswer'][_0x01ff('0x2c')]);_0x2b9766[_0x01ff('0x32')]=_[_0x01ff('0x31')](_0x55fcb7[_0x01ff('0x32')]);_0x2b9766['filters']=_[_0x01ff('0x34')](_0x2b9766[_0x01ff('0x30')],_0x2b9766[_0x01ff('0x32')]);_0x5ae580[_0x01ff('0x36')]=_[_0x01ff('0x34')](_0x2b9766['model'],qs[_0x01ff('0x35')](_0x55fcb7['query'][_0x01ff('0x35')]));_0x5ae580['attributes']=_0x5ae580[_0x01ff('0x36')][_0x01ff('0x37')]?_0x5ae580[_0x01ff('0x36')]:_0x2b9766[_0x01ff('0x30')];if(_0x55fcb7[_0x01ff('0x32')][_0x01ff('0x3e')]){_0x5ae580[_0x01ff('0x44')]=[{'all':!![]}];}_0x5ae580=_[_0x01ff('0x3d')]({},_0x5ae580,_0x55fcb7['options']);return db[_0x01ff('0x2b')][_0x01ff('0x45')](_0x5ae580)[_0x01ff('0x23')](handleEntityNotFound(_0x2132b8,null))['then'](respondWithResult(_0x2132b8,null))[_0x01ff('0x41')](handleError(_0x2132b8,null));};exports[_0x01ff('0x46')]=function(_0x4d2e42,_0x54b34a){if(_0x4d2e42['body']['id']){delete _0x4d2e42[_0x01ff('0x47')]['id'];}return db[_0x01ff('0x2b')][_0x01ff('0x45')]({'where':{'id':_0x4d2e42[_0x01ff('0x43')]['id']}})[_0x01ff('0x23')](handleEntityNotFound(_0x54b34a,null))[_0x01ff('0x23')](saveUpdates(_0x4d2e42[_0x01ff('0x47')],null))['then'](respondWithResult(_0x54b34a,null))[_0x01ff('0x41')](handleError(_0x54b34a,null));};exports[_0x01ff('0x24')]=function(_0x1d0b93,_0x4e531d){return db[_0x01ff('0x2b')][_0x01ff('0x45')]({'where':{'id':_0x1d0b93[_0x01ff('0x43')]['id']}})[_0x01ff('0x23')](handleEntityNotFound(_0x4e531d,null))[_0x01ff('0x23')](removeEntity(_0x4e531d,null))['catch'](handleError(_0x4e531d,null));};exports[_0x01ff('0x48')]=function(_0x50c0e2,_0x5bb786){var _0x5a3070={'key':_0x50c0e2[_0x01ff('0x47')]['key']};if(_0x50c0e2['body'][_0x01ff('0x49')]){_0x5a3070[_0x01ff('0x49')]=_0x50c0e2[_0x01ff('0x47')]['MailAccountId'];}else if(_0x50c0e2[_0x01ff('0x47')][_0x01ff('0x4a')]){_0x5a3070['SmsAccountId']=_0x50c0e2[_0x01ff('0x47')][_0x01ff('0x4a')];}else if(_0x50c0e2[_0x01ff('0x47')][_0x01ff('0x4b')]){_0x5a3070[_0x01ff('0x4b')]=_0x50c0e2[_0x01ff('0x47')][_0x01ff('0x4b')];}else if(_0x50c0e2[_0x01ff('0x47')]['ChatWebsiteId']){_0x5a3070[_0x01ff('0x4c')]=_0x50c0e2[_0x01ff('0x47')][_0x01ff('0x4c')];}return db['CannedAnswer'][_0x01ff('0x45')]({'where':_0x5a3070})[_0x01ff('0x23')](function(_0x1405b5){if(_0x1405b5){throw new db[(_0x01ff('0x4d'))]['ValidationError'](_0x01ff('0x4e'));}return db[_0x01ff('0x2b')][_0x01ff('0x48')](_0x50c0e2['body']);})['then'](function(_0x16f1f4){var _0x48668b=_0x50c0e2[_0x01ff('0x4f')][_0x01ff('0x50')]({'plain':!![]});if(!_0x48668b)throw new Error(_0x01ff('0x51'));if(_0x48668b['role']===_0x01ff('0x4f')){var _0x34c82a=_0x16f1f4[_0x01ff('0x50')]({'plain':!![]});return db['UserProfileSection'][_0x01ff('0x45')]({'where':{'name':_0x01ff('0x52'),'userProfileId':_0x48668b['userProfileId']},'raw':!![]})['then'](function(_0x29bdca){if(_0x29bdca&&_0x29bdca[_0x01ff('0x53')]===0x0){return db['UserProfileResource'][_0x01ff('0x48')]({'name':_0x34c82a[_0x01ff('0x28')],'resourceId':_0x34c82a['id'],'type':_0x29bdca[_0x01ff('0x28')],'sectionId':_0x29bdca['id']},{})[_0x01ff('0x23')](function(){return _0x16f1f4;});}else{return _0x16f1f4;}})[_0x01ff('0x41')](function(_0x293a40){logger[_0x01ff('0x26')](_0x01ff('0x54'),_0x293a40);throw _0x293a40;});}return _0x16f1f4;})[_0x01ff('0x23')](respondWithResult(_0x5bb786,0xc9))[_0x01ff('0x41')](handleError(_0x5bb786,null));};
\ No newline at end of file
+var _0x36c5=['type','key','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','findAll','rows','catch','show','keys','rawAttributes','includeAll','find','body','params','create','MailAccountId','SmsAccountId','OpenchannelAccountId','ChatWebsiteId','Sequelize','The\x20inserted\x20key\x20already\x20exists.','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','zip-dir','fast-json-patch','bluebird','path','sox','to-csv','fs-extra','squel','jsforce','desk.js','querystring','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','save','update','then','destroy','get','CannedAnswers','UserProfileResource','end','error','stack','name','send','index','map','CannedAnswer'];(function(_0x41f3ec,_0x35a226){var _0x5c4314=function(_0x5572f7){while(--_0x5572f7){_0x41f3ec['push'](_0x41f3ec['shift']());}};_0x5c4314(++_0x35a226);}(_0x36c5,0xcf));var _0x536c=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x36c5[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0x536c('0x0'));var rimraf=require(_0x536c('0x1'));var zipdir=require(_0x536c('0x2'));var jsonpatch=require(_0x536c('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x536c('0x4'));var Mustache=require('mustache');var util=require('util');var path=require(_0x536c('0x5'));var sox=require(_0x536c('0x6'));var csv=require(_0x536c('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x536c('0x8'));var _=require('lodash');var squel=require(_0x536c('0x9'));var crypto=require('crypto');var jsforce=require(_0x536c('0xa'));var deskjs=require(_0x536c('0xb'));var toCsv=require(_0x536c('0x7'));var querystring=require(_0x536c('0xc'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x536c('0xd'));var as=require(_0x536c('0xe'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x536c('0xf'))('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x536c('0x10'));var db=require(_0x536c('0x11'))['db'];function respondWithStatusCode(_0x5eaab3,_0x31d078){_0x31d078=_0x31d078||0xcc;return function(_0x312079){if(_0x312079){return _0x5eaab3[_0x536c('0x12')](_0x31d078);}return _0x5eaab3[_0x536c('0x13')](_0x31d078)['end']();};}function respondWithResult(_0x3ffa76,_0x5b24dd){_0x5b24dd=_0x5b24dd||0xc8;return function(_0x46c6a9){if(_0x46c6a9){return _0x3ffa76[_0x536c('0x13')](_0x5b24dd)[_0x536c('0x14')](_0x46c6a9);}};}function respondWithFilteredResult(_0x4090af,_0x310ba6){return function(_0x1ffae4){if(_0x1ffae4){var _0x15c617=typeof _0x310ba6[_0x536c('0x15')]===_0x536c('0x16')&&typeof _0x310ba6[_0x536c('0x17')]===_0x536c('0x16');var _0x4c6170=_0x1ffae4[_0x536c('0x18')];var _0x2bd244=_0x15c617?0x0:_0x310ba6[_0x536c('0x15')];var _0x3ad50c=_0x15c617?_0x1ffae4['count']:_0x310ba6[_0x536c('0x15')]+_0x310ba6[_0x536c('0x17')];var _0x3aa9b4;if(_0x3ad50c>=_0x4c6170){_0x3ad50c=_0x4c6170;_0x3aa9b4=0xc8;}else{_0x3aa9b4=0xce;}_0x4090af[_0x536c('0x13')](_0x3aa9b4);return _0x4090af[_0x536c('0x19')](_0x536c('0x1a'),_0x2bd244+'-'+_0x3ad50c+'/'+_0x4c6170)[_0x536c('0x14')](_0x1ffae4);}return null;};}function patchUpdates(_0x422d2a){return function(_0xc0337d){try{jsonpatch['apply'](_0xc0337d,_0x422d2a,!![]);}catch(_0x2e19c1){return BPromise['reject'](_0x2e19c1);}return _0xc0337d[_0x536c('0x1b')]();};}function saveUpdates(_0x177d50,_0x3b777d){return function(_0x2ed4eb){if(_0x2ed4eb){return _0x2ed4eb[_0x536c('0x1c')](_0x177d50)[_0x536c('0x1d')](function(_0x3c33b9){return _0x3c33b9;});}return null;};}function removeEntity(_0x3f6e73,_0x14e40c){return function(_0x3c29f8){if(_0x3c29f8){return _0x3c29f8[_0x536c('0x1e')]()['then'](function(){var _0x465cc0=_0x3c29f8[_0x536c('0x1f')]({'plain':!![]});var _0x36e932=_0x536c('0x20');return db[_0x536c('0x21')]['destroy']({'where':{'type':_0x36e932,'resourceId':_0x465cc0['id']}})[_0x536c('0x1d')](function(){return _0x3c29f8;});})[_0x536c('0x1d')](function(){_0x3f6e73[_0x536c('0x13')](0xcc)[_0x536c('0x22')]();});}};}function handleEntityNotFound(_0x5d443d,_0x3164d9){return function(_0x3b300b){if(!_0x3b300b){_0x5d443d['sendStatus'](0x194);}return _0x3b300b;};}function handleError(_0x1120b2,_0x35caf1){_0x35caf1=_0x35caf1||0x1f4;return function(_0x52c939){logger[_0x536c('0x23')](_0x52c939[_0x536c('0x24')]);if(_0x52c939[_0x536c('0x25')]){delete _0x52c939[_0x536c('0x25')];}_0x1120b2[_0x536c('0x13')](_0x35caf1)[_0x536c('0x26')](_0x52c939);};}exports[_0x536c('0x27')]=function(_0x33d9dd,_0x145c0b){var _0x3e25e4={},_0x155d15={},_0x5382cb={'count':0x0,'rows':[]};var _0x174cfc=_[_0x536c('0x28')](db[_0x536c('0x29')]['rawAttributes'],function(_0x168c04){return{'name':_0x168c04['fieldName'],'type':_0x168c04[_0x536c('0x2a')][_0x536c('0x2b')]};});_0x155d15['model']=_['map'](_0x174cfc,_0x536c('0x25'));_0x155d15[_0x536c('0x2c')]=_['keys'](_0x33d9dd[_0x536c('0x2c')]);_0x155d15[_0x536c('0x2d')]=_[_0x536c('0x2e')](_0x155d15[_0x536c('0x2f')],_0x155d15['query']);_0x3e25e4[_0x536c('0x30')]=_[_0x536c('0x2e')](_0x155d15[_0x536c('0x2f')],qs['fields'](_0x33d9dd[_0x536c('0x2c')][_0x536c('0x31')]));_0x3e25e4['attributes']=_0x3e25e4[_0x536c('0x30')][_0x536c('0x32')]?_0x3e25e4[_0x536c('0x30')]:_0x155d15[_0x536c('0x2f')];if(!_0x33d9dd[_0x536c('0x2c')][_0x536c('0x33')](_0x536c('0x34'))){_0x3e25e4[_0x536c('0x17')]=qs[_0x536c('0x17')](_0x33d9dd[_0x536c('0x2c')][_0x536c('0x17')]);_0x3e25e4[_0x536c('0x15')]=qs[_0x536c('0x15')](_0x33d9dd[_0x536c('0x2c')][_0x536c('0x15')]);}_0x3e25e4[_0x536c('0x35')]=qs[_0x536c('0x36')](_0x33d9dd['query']['sort']);_0x3e25e4[_0x536c('0x37')]=qs[_0x536c('0x2d')](_[_0x536c('0x38')](_0x33d9dd['query'],_0x155d15[_0x536c('0x2d')]),_0x174cfc);if(_0x33d9dd[_0x536c('0x2c')][_0x536c('0x39')]){_0x3e25e4[_0x536c('0x37')]=_[_0x536c('0x3a')](_0x3e25e4['where'],{'$or':[{'key':{'$like':'%'+_0x33d9dd[_0x536c('0x2c')][_0x536c('0x39')]+'%'}},{'value':{'$like':'%'+_0x33d9dd[_0x536c('0x2c')][_0x536c('0x39')]+'%'}}]});}_0x3e25e4=_[_0x536c('0x3a')]({},_0x3e25e4,_0x33d9dd[_0x536c('0x3b')]);var _0x552dca={'where':_0x3e25e4[_0x536c('0x37')]};return db[_0x536c('0x29')]['count'](_0x552dca)['then'](function(_0x313f06){_0x5382cb[_0x536c('0x18')]=_0x313f06;if(_0x33d9dd[_0x536c('0x2c')]['includeAll']){_0x3e25e4['include']=[{'all':!![]}];}return db[_0x536c('0x29')][_0x536c('0x3c')](_0x3e25e4);})['then'](function(_0x1734fa){_0x5382cb[_0x536c('0x3d')]=_0x1734fa;return _0x5382cb;})[_0x536c('0x1d')](respondWithFilteredResult(_0x145c0b,_0x3e25e4))[_0x536c('0x3e')](handleError(_0x145c0b,null));};exports[_0x536c('0x3f')]=function(_0x4b3f24,_0x3249d5){var _0x4ba8d1={'raw':!![],'where':{'id':_0x4b3f24['params']['id']}},_0x284eff={};_0x284eff[_0x536c('0x2f')]=_[_0x536c('0x40')](db[_0x536c('0x29')][_0x536c('0x41')]);_0x284eff[_0x536c('0x2c')]=_[_0x536c('0x40')](_0x4b3f24[_0x536c('0x2c')]);_0x284eff[_0x536c('0x2d')]=_['intersection'](_0x284eff[_0x536c('0x2f')],_0x284eff[_0x536c('0x2c')]);_0x4ba8d1['attributes']=_[_0x536c('0x2e')](_0x284eff[_0x536c('0x2f')],qs['fields'](_0x4b3f24['query'][_0x536c('0x31')]));_0x4ba8d1[_0x536c('0x30')]=_0x4ba8d1[_0x536c('0x30')][_0x536c('0x32')]?_0x4ba8d1['attributes']:_0x284eff['model'];if(_0x4b3f24[_0x536c('0x2c')][_0x536c('0x42')]){_0x4ba8d1['include']=[{'all':!![]}];}_0x4ba8d1=_[_0x536c('0x3a')]({},_0x4ba8d1,_0x4b3f24[_0x536c('0x3b')]);return db['CannedAnswer'][_0x536c('0x43')](_0x4ba8d1)[_0x536c('0x1d')](handleEntityNotFound(_0x3249d5,null))[_0x536c('0x1d')](respondWithResult(_0x3249d5,null))[_0x536c('0x3e')](handleError(_0x3249d5,null));};exports[_0x536c('0x1c')]=function(_0x5a1e6d,_0x3d243a){if(_0x5a1e6d[_0x536c('0x44')]['id']){delete _0x5a1e6d[_0x536c('0x44')]['id'];}return db[_0x536c('0x29')]['find']({'where':{'id':_0x5a1e6d[_0x536c('0x45')]['id']}})[_0x536c('0x1d')](handleEntityNotFound(_0x3d243a,null))[_0x536c('0x1d')](saveUpdates(_0x5a1e6d['body'],null))[_0x536c('0x1d')](respondWithResult(_0x3d243a,null))[_0x536c('0x3e')](handleError(_0x3d243a,null));};exports[_0x536c('0x1e')]=function(_0x94a351,_0x4acc09){return db[_0x536c('0x29')][_0x536c('0x43')]({'where':{'id':_0x94a351[_0x536c('0x45')]['id']}})[_0x536c('0x1d')](handleEntityNotFound(_0x4acc09,null))[_0x536c('0x1d')](removeEntity(_0x4acc09,null))['catch'](handleError(_0x4acc09,null));};exports[_0x536c('0x46')]=function(_0x46820c,_0x13d5be){var _0x1dd8ea={'key':_0x46820c[_0x536c('0x44')][_0x536c('0x2b')]};if(_0x46820c['body'][_0x536c('0x47')]){_0x1dd8ea['MailAccountId']=_0x46820c[_0x536c('0x44')][_0x536c('0x47')];}else if(_0x46820c[_0x536c('0x44')][_0x536c('0x48')]){_0x1dd8ea[_0x536c('0x48')]=_0x46820c[_0x536c('0x44')][_0x536c('0x48')];}else if(_0x46820c[_0x536c('0x44')][_0x536c('0x49')]){_0x1dd8ea['OpenchannelAccountId']=_0x46820c['body'][_0x536c('0x49')];}else if(_0x46820c[_0x536c('0x44')][_0x536c('0x4a')]){_0x1dd8ea[_0x536c('0x4a')]=_0x46820c['body']['ChatWebsiteId'];}return db[_0x536c('0x29')]['find']({'where':_0x1dd8ea})['then'](function(_0x154314){if(_0x154314){throw new db[(_0x536c('0x4b'))]['ValidationError'](_0x536c('0x4c'));}return db[_0x536c('0x29')][_0x536c('0x46')](_0x46820c[_0x536c('0x44')]);})[_0x536c('0x1d')](function(_0x406d77){var _0xbb184f=_0x46820c['user'][_0x536c('0x1f')]({'plain':!![]});if(!_0xbb184f)throw new Error(_0x536c('0x4d'));if(_0xbb184f[_0x536c('0x4e')]===_0x536c('0x4f')){var _0x3262b8=_0x406d77[_0x536c('0x1f')]({'plain':!![]});return db[_0x536c('0x50')][_0x536c('0x43')]({'where':{'name':'CannedAnswers','userProfileId':_0xbb184f['userProfileId']},'raw':!![]})[_0x536c('0x1d')](function(_0x583e74){if(_0x583e74&&_0x583e74[_0x536c('0x51')]===0x0){return db[_0x536c('0x21')][_0x536c('0x46')]({'name':_0x3262b8[_0x536c('0x25')],'resourceId':_0x3262b8['id'],'type':_0x583e74[_0x536c('0x25')],'sectionId':_0x583e74['id']},{})[_0x536c('0x1d')](function(){return _0x406d77;});}else{return _0x406d77;}})['catch'](function(_0x510a0e){logger[_0x536c('0x23')](_0x536c('0x52'),_0x510a0e);throw _0x510a0e;});}return _0x406d77;})[_0x536c('0x1d')](respondWithResult(_0x13d5be,0xc9))[_0x536c('0x3e')](handleError(_0x13d5be,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9204=['./cannedAnswer.attributes','exports','CannedAnswer','tools_canned_answers','utf8mb4','utf8mb4_unicode_ci','lodash','../../config/logger','api','moment','bluebird','request-promise','../../config/environment'];(function(_0x4baae2,_0x487ab6){var _0x1a2285=function(_0x1cea47){while(--_0x1cea47){_0x4baae2['push'](_0x4baae2['shift']());}};_0x1a2285(++_0x487ab6);}(_0x9204,0x172));var _0x4920=function(_0x49e89a,_0x285599){_0x49e89a=_0x49e89a-0x0;var _0x160aa1=_0x9204[_0x49e89a];return _0x160aa1;};'use strict';var _=require(_0x4920('0x0'));var util=require('util');var logger=require(_0x4920('0x1'))(_0x4920('0x2'));var moment=require(_0x4920('0x3'));var BPromise=require(_0x4920('0x4'));var rp=require(_0x4920('0x5'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x4920('0x6'));var attributes=require(_0x4920('0x7'));module[_0x4920('0x8')]=function(_0x32ee46,_0x125662){return _0x32ee46['define'](_0x4920('0x9'),attributes,{'tableName':_0x4920('0xa'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x4920('0xb'),'collate':_0x4920('0xc')});};
\ No newline at end of file
+var _0x8d37=['CannedAnswer','tools_canned_answers','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','moment','request-promise','path','rimraf','../../config/environment','./cannedAnswer.attributes','exports'];(function(_0x198b39,_0x39bffd){var _0x24ad12=function(_0x1e538c){while(--_0x1e538c){_0x198b39['push'](_0x198b39['shift']());}};_0x24ad12(++_0x39bffd);}(_0x8d37,0x1d5));var _0x78d3=function(_0x1acf43,_0x1171eb){_0x1acf43=_0x1acf43-0x0;var _0x47f3aa=_0x8d37[_0x1acf43];return _0x47f3aa;};'use strict';var _=require(_0x78d3('0x0'));var util=require(_0x78d3('0x1'));var logger=require(_0x78d3('0x2'))(_0x78d3('0x3'));var moment=require(_0x78d3('0x4'));var BPromise=require('bluebird');var rp=require(_0x78d3('0x5'));var fs=require('fs');var path=require(_0x78d3('0x6'));var rimraf=require(_0x78d3('0x7'));var config=require(_0x78d3('0x8'));var attributes=require(_0x78d3('0x9'));module[_0x78d3('0xa')]=function(_0xe9d481,_0x24f7b9){return _0xe9d481['define'](_0x78d3('0xb'),attributes,{'tableName':_0x78d3('0xc'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x78d3('0xd'),'collate':_0x78d3('0xe')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['http','info','CannedAnswer,\x20%s,\x20%s','request\x20sent','debug','CannedAnswer,\x20%s,\x20%s,\x20%s','code','error','message','result','catch','lodash','util','moment','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise'];(function(_0x1598ba,_0x2b5486){var _0x5ae527=function(_0x3b5f5d){while(--_0x3b5f5d){_0x1598ba['push'](_0x1598ba['shift']());}};_0x5ae527(++_0x2b5486);}(_0xa9e0,0x123));var _0x0a9e=function(_0x4ea69d,_0x290f53){_0x4ea69d=_0x4ea69d-0x0;var _0x5318e0=_0xa9e0[_0x4ea69d];return _0x5318e0;};'use strict';var _=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var moment=require(_0x0a9e('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x0a9e('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x0a9e('0x4'));var logger=require(_0x0a9e('0x5'))(_0x0a9e('0x6'));var config=require(_0x0a9e('0x7'));var jayson=require(_0x0a9e('0x8'));var client=jayson['client'][_0x0a9e('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x441e3a,_0x2cc193,_0x5f41ea){return new BPromise(function(_0x503809,_0xe42b77){return client['request'](_0x441e3a,_0x5f41ea)['then'](function(_0x39753a){logger[_0x0a9e('0xa')](_0x0a9e('0xb'),_0x2cc193,_0x0a9e('0xc'));logger[_0x0a9e('0xd')](_0x0a9e('0xe'),_0x2cc193,'request\x20sent',JSON['stringify'](_0x39753a));if(_0x39753a['error']){if(_0x39753a['error'][_0x0a9e('0xf')]===0x1f4){logger[_0x0a9e('0x10')](_0x0a9e('0xb'),_0x2cc193,_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);return _0xe42b77(_0x39753a[_0x0a9e('0x10')]['message']);}logger[_0x0a9e('0x10')](_0x0a9e('0xb'),_0x2cc193,_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);return _0x503809(_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);}else{logger['info'](_0x0a9e('0xb'),_0x2cc193,'request\x20sent');_0x503809(_0x39753a[_0x0a9e('0x12')]['message']);}})[_0x0a9e('0x13')](function(_0x12066b){logger['error'](_0x0a9e('0xb'),_0x2cc193,_0x12066b);_0xe42b77(_0x12066b);});});}
\ No newline at end of file
+var _0xa9e0=['http','info','CannedAnswer,\x20%s,\x20%s','request\x20sent','debug','CannedAnswer,\x20%s,\x20%s,\x20%s','code','error','message','result','catch','lodash','util','moment','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise'];(function(_0x1a42a6,_0x53b818){var _0x50be23=function(_0x451df2){while(--_0x451df2){_0x1a42a6['push'](_0x1a42a6['shift']());}};_0x50be23(++_0x53b818);}(_0xa9e0,0x123));var _0x0a9e=function(_0x2cfb58,_0x3d9412){_0x2cfb58=_0x2cfb58-0x0;var _0xd99951=_0xa9e0[_0x2cfb58];return _0xd99951;};'use strict';var _=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var moment=require(_0x0a9e('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x0a9e('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x0a9e('0x4'));var logger=require(_0x0a9e('0x5'))(_0x0a9e('0x6'));var config=require(_0x0a9e('0x7'));var jayson=require(_0x0a9e('0x8'));var client=jayson['client'][_0x0a9e('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x441e3a,_0x2cc193,_0x5f41ea){return new BPromise(function(_0x503809,_0xe42b77){return client['request'](_0x441e3a,_0x5f41ea)['then'](function(_0x39753a){logger[_0x0a9e('0xa')](_0x0a9e('0xb'),_0x2cc193,_0x0a9e('0xc'));logger[_0x0a9e('0xd')](_0x0a9e('0xe'),_0x2cc193,'request\x20sent',JSON['stringify'](_0x39753a));if(_0x39753a['error']){if(_0x39753a['error'][_0x0a9e('0xf')]===0x1f4){logger[_0x0a9e('0x10')](_0x0a9e('0xb'),_0x2cc193,_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);return _0xe42b77(_0x39753a[_0x0a9e('0x10')]['message']);}logger[_0x0a9e('0x10')](_0x0a9e('0xb'),_0x2cc193,_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);return _0x503809(_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);}else{logger['info'](_0x0a9e('0xb'),_0x2cc193,'request\x20sent');_0x503809(_0x39753a[_0x0a9e('0x12')]['message']);}})[_0x0a9e('0x13')](function(_0x12066b){logger['error'](_0x0a9e('0xb'),_0x2cc193,_0x12066b);_0xe42b77(_0x12066b);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x110a=['connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./cannedAnswer.controller','get','isAuthenticated','index','show','post','put','/:id','update','delete','destroy','exports','multer','util','path'];(function(_0xf64262,_0x5ac4dc){var _0x1ff1e1=function(_0x1239d1){while(--_0x1239d1){_0xf64262['push'](_0xf64262['shift']());}};_0x1ff1e1(++_0x5ac4dc);}(_0x110a,0x151));var _0xa110=function(_0xa016f6,_0x3a8863){_0xa016f6=_0xa016f6-0x0;var _0x313949=_0x110a[_0xa016f6];return _0x313949;};'use strict';var multer=require(_0xa110('0x0'));var util=require(_0xa110('0x1'));var path=require(_0xa110('0x2'));var timeout=require(_0xa110('0x3'));var express=require('express');var router=express[_0xa110('0x4')]();var fs_extra=require(_0xa110('0x5'));var auth=require(_0xa110('0x6'));var interaction=require(_0xa110('0x7'));var config=require('../../config/environment');var controller=require(_0xa110('0x8'));router[_0xa110('0x9')]('/',auth[_0xa110('0xa')](),controller[_0xa110('0xb')]);router['get']('/:id',auth[_0xa110('0xa')](),controller[_0xa110('0xc')]);router[_0xa110('0xd')]('/',auth[_0xa110('0xa')](),controller['create']);router[_0xa110('0xe')](_0xa110('0xf'),auth[_0xa110('0xa')](),controller[_0xa110('0x10')]);router[_0xa110('0x11')](_0xa110('0xf'),auth[_0xa110('0xa')](),controller[_0xa110('0x12')]);module[_0xa110('0x13')]=router;
\ No newline at end of file
+var _0xac25=['create','put','destroy','exports','multer','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','get','isAuthenticated','index','/:id','show'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0xac25,0x136));var _0x5ac2=function(_0xd39959,_0x302d09){_0xd39959=_0xd39959-0x0;var _0x1ff69c=_0xac25[_0xd39959];return _0x1ff69c;};'use strict';var multer=require(_0x5ac2('0x0'));var util=require(_0x5ac2('0x1'));var path=require('path');var timeout=require(_0x5ac2('0x2'));var express=require(_0x5ac2('0x3'));var router=express[_0x5ac2('0x4')]();var fs_extra=require(_0x5ac2('0x5'));var auth=require(_0x5ac2('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0x5ac2('0x7'));var controller=require('./cannedAnswer.controller');router[_0x5ac2('0x8')]('/',auth[_0x5ac2('0x9')](),controller[_0x5ac2('0xa')]);router[_0x5ac2('0x8')](_0x5ac2('0xb'),auth[_0x5ac2('0x9')](),controller[_0x5ac2('0xc')]);router['post']('/',auth[_0x5ac2('0x9')](),controller[_0x5ac2('0xd')]);router[_0x5ac2('0xe')]('/:id',auth[_0x5ac2('0x9')](),controller['update']);router['delete'](_0x5ac2('0xb'),auth[_0x5ac2('0x9')](),controller[_0x5ac2('0xf')]);module[_0x5ac2('0x10')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x054f=['STRING','INTEGER','sequelize','exports','DATE','1970-01-01\x2000:00:01'];(function(_0x1526e1,_0x5ed5a5){var _0x249a1e=function(_0x4a7c12){while(--_0x4a7c12){_0x1526e1['push'](_0x1526e1['shift']());}};_0x249a1e(++_0x5ed5a5);}(_0x054f,0x1a6));var _0xf054=function(_0x4867d6,_0xe9b8c){_0x4867d6=_0x4867d6-0x0;var _0x70bf4b=_0x054f[_0x4867d6];return _0x70bf4b;};'use strict';var Sequelize=require(_0xf054('0x0'));module[_0xf054('0x1')]={'calldate':{'type':Sequelize[_0xf054('0x2')],'allowNull':![],'defaultValue':_0xf054('0x3')},'clid':{'type':Sequelize[_0xf054('0x4')]},'src':{'type':Sequelize[_0xf054('0x4')]},'dst':{'type':Sequelize['STRING']},'dcontext':{'type':Sequelize[_0xf054('0x4')]},'channel':{'type':Sequelize[_0xf054('0x4')]},'dstchannel':{'type':Sequelize['STRING']},'lastapp':{'type':Sequelize['STRING']},'lastdata':{'type':Sequelize[_0xf054('0x4')]},'duration':{'type':Sequelize['INTEGER'],'allowNull':![],'defaultValue':0x0},'billsec':{'type':Sequelize[_0xf054('0x5')],'allowNull':![],'defaultValue':0x0},'disposition':{'type':Sequelize[_0xf054('0x4')]},'amaflags':{'type':Sequelize['INTEGER'],'allowNull':![],'defaultValue':0x0},'accountcode':{'type':Sequelize[_0xf054('0x4')]},'userfield':{'type':Sequelize[_0xf054('0x4')]},'uniqueid':{'type':Sequelize[_0xf054('0x4')]},'linkedid':{'type':Sequelize[_0xf054('0x4')]},'sequence':{'type':Sequelize[_0xf054('0x4')]},'peeraccount':{'type':Sequelize[_0xf054('0x4')]},'type':{'type':Sequelize[_0xf054('0x4')]},'tag':{'type':Sequelize[_0xf054('0x4')]}};
\ No newline at end of file
+var _0xb7a0=['1970-01-01\x2000:00:01','STRING','INTEGER','sequelize','exports','DATE'];(function(_0x1d1779,_0x284147){var _0x2377e9=function(_0x299f6f){while(--_0x299f6f){_0x1d1779['push'](_0x1d1779['shift']());}};_0x2377e9(++_0x284147);}(_0xb7a0,0x13b));var _0x0b7a=function(_0x48c403,_0x1dcb22){_0x48c403=_0x48c403-0x0;var _0x5d4ea2=_0xb7a0[_0x48c403];return _0x5d4ea2;};'use strict';var Sequelize=require(_0x0b7a('0x0'));module[_0x0b7a('0x1')]={'calldate':{'type':Sequelize[_0x0b7a('0x2')],'allowNull':![],'defaultValue':_0x0b7a('0x3')},'clid':{'type':Sequelize['STRING']},'src':{'type':Sequelize[_0x0b7a('0x4')]},'dst':{'type':Sequelize['STRING']},'dcontext':{'type':Sequelize[_0x0b7a('0x4')]},'channel':{'type':Sequelize['STRING']},'dstchannel':{'type':Sequelize[_0x0b7a('0x4')]},'lastapp':{'type':Sequelize[_0x0b7a('0x4')]},'lastdata':{'type':Sequelize[_0x0b7a('0x4')]},'duration':{'type':Sequelize[_0x0b7a('0x5')],'allowNull':![],'defaultValue':0x0},'billsec':{'type':Sequelize[_0x0b7a('0x5')],'allowNull':![],'defaultValue':0x0},'disposition':{'type':Sequelize[_0x0b7a('0x4')]},'amaflags':{'type':Sequelize[_0x0b7a('0x5')],'allowNull':![],'defaultValue':0x0},'accountcode':{'type':Sequelize[_0x0b7a('0x4')]},'userfield':{'type':Sequelize['STRING']},'uniqueid':{'type':Sequelize['STRING']},'linkedid':{'type':Sequelize[_0x0b7a('0x4')]},'sequence':{'type':Sequelize[_0x0b7a('0x4')]},'peeraccount':{'type':Sequelize['STRING']},'type':{'type':Sequelize[_0x0b7a('0x4')]},'tag':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x81bd=['offset','set','Content-Range','apply','reject','update','then','destroy','error','stack','name','index','map','Cdr','rawAttributes','fieldName','type','model','keys','query','attributes','intersection','fields','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','filters','length','find','create','body','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','ejs','fs-extra','lodash','jsforce','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','end','status','json','undefined','limit','count'];(function(_0x423543,_0x55c207){var _0x9e6b67=function(_0x34fd21){while(--_0x34fd21){_0x423543['push'](_0x423543['shift']());}};_0x9e6b67(++_0x55c207);}(_0x81bd,0x7c));var _0xd81b=function(_0x3a02f2,_0x381e2e){_0x3a02f2=_0x3a02f2-0x0;var _0x867e4d=_0x81bd[_0x3a02f2];return _0x867e4d;};'use strict';var emlformat=require(_0xd81b('0x0'));var rimraf=require(_0xd81b('0x1'));var zipdir=require(_0xd81b('0x2'));var jsonpatch=require(_0xd81b('0x3'));var rp=require(_0xd81b('0x4'));var moment=require(_0xd81b('0x5'));var BPromise=require(_0xd81b('0x6'));var Mustache=require('mustache');var util=require(_0xd81b('0x7'));var path=require(_0xd81b('0x8'));var sox=require(_0xd81b('0x9'));var csv=require('to-csv');var ejs=require(_0xd81b('0xa'));var fs=require('fs');var fs_extra=require(_0xd81b('0xb'));var _=require(_0xd81b('0xc'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xd81b('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xd81b('0xe'));var querystring=require(_0xd81b('0xf'));var Papa=require(_0xd81b('0x10'));var Redis=require(_0xd81b('0x11'));var authService=require(_0xd81b('0x12'));var qs=require(_0xd81b('0x13'));var as=require(_0xd81b('0x14'));var hardwareService=require(_0xd81b('0x15'));var logger=require(_0xd81b('0x16'))(_0xd81b('0x17'));var utils=require(_0xd81b('0x18'));var config=require(_0xd81b('0x19'));var licenseUtil=require(_0xd81b('0x1a'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x21dfff,_0x57f71d){_0x57f71d=_0x57f71d||0xcc;return function(_0x3f2405){if(_0x3f2405){return _0x21dfff[_0xd81b('0x1b')](_0x57f71d);}return _0x21dfff['status'](_0x57f71d)[_0xd81b('0x1c')]();};}function respondWithResult(_0x47dd04,_0x13dd00){_0x13dd00=_0x13dd00||0xc8;return function(_0x41bf7a){if(_0x41bf7a){return _0x47dd04[_0xd81b('0x1d')](_0x13dd00)[_0xd81b('0x1e')](_0x41bf7a);}};}function respondWithFilteredResult(_0x128162,_0x552215){return function(_0x1c620d){if(_0x1c620d){var _0x27b7a0=typeof _0x552215['offset']===_0xd81b('0x1f')&&typeof _0x552215[_0xd81b('0x20')]===_0xd81b('0x1f');var _0x15e860=_0x1c620d[_0xd81b('0x21')];var _0xc49b8d=_0x27b7a0?0x0:_0x552215[_0xd81b('0x22')];var _0x3d4d34=_0x27b7a0?_0x1c620d[_0xd81b('0x21')]:_0x552215[_0xd81b('0x22')]+_0x552215[_0xd81b('0x20')];var _0x453952;if(_0x3d4d34>=_0x15e860){_0x3d4d34=_0x15e860;_0x453952=0xc8;}else{_0x453952=0xce;}_0x128162[_0xd81b('0x1d')](_0x453952);return _0x128162[_0xd81b('0x23')](_0xd81b('0x24'),_0xc49b8d+'-'+_0x3d4d34+'/'+_0x15e860)[_0xd81b('0x1e')](_0x1c620d);}return null;};}function patchUpdates(_0x5f101a){return function(_0x4d566e){try{jsonpatch[_0xd81b('0x25')](_0x4d566e,_0x5f101a,!![]);}catch(_0x1b7876){return BPromise[_0xd81b('0x26')](_0x1b7876);}return _0x4d566e['save']();};}function saveUpdates(_0x19ed0e,_0x6571a6){return function(_0x542ee2){if(_0x542ee2){return _0x542ee2[_0xd81b('0x27')](_0x19ed0e)[_0xd81b('0x28')](function(_0x1670cd){return _0x1670cd;});}return null;};}function removeEntity(_0x1ad65c,_0x279176){return function(_0xcb4f91){if(_0xcb4f91){return _0xcb4f91[_0xd81b('0x29')]()[_0xd81b('0x28')](function(){_0x1ad65c[_0xd81b('0x1d')](0xcc)[_0xd81b('0x1c')]();});}};}function handleEntityNotFound(_0x2ccedf,_0x1bf351){return function(_0x596389){if(!_0x596389){_0x2ccedf[_0xd81b('0x1b')](0x194);}return _0x596389;};}function handleError(_0x99dbc9,_0xe3637a){_0xe3637a=_0xe3637a||0x1f4;return function(_0x31b9fd){logger[_0xd81b('0x2a')](_0x31b9fd[_0xd81b('0x2b')]);if(_0x31b9fd[_0xd81b('0x2c')]){delete _0x31b9fd[_0xd81b('0x2c')];}_0x99dbc9[_0xd81b('0x1d')](_0xe3637a)['send'](_0x31b9fd);};}exports[_0xd81b('0x2d')]=function(_0x4e2eff,_0x5c8aee){var _0xb9ff9f={},_0x260310={},_0x5141e6={'count':0x0,'rows':[]};var _0x481454=_[_0xd81b('0x2e')](db[_0xd81b('0x2f')][_0xd81b('0x30')],function(_0x289f54){return{'name':_0x289f54[_0xd81b('0x31')],'type':_0x289f54[_0xd81b('0x32')]['key']};});_0x260310[_0xd81b('0x33')]=_[_0xd81b('0x2e')](_0x481454,'name');_0x260310['query']=_[_0xd81b('0x34')](_0x4e2eff[_0xd81b('0x35')]);_0x260310['filters']=_['intersection'](_0x260310['model'],_0x260310[_0xd81b('0x35')]);_0xb9ff9f[_0xd81b('0x36')]=_[_0xd81b('0x37')](_0x260310[_0xd81b('0x33')],qs[_0xd81b('0x38')](_0x4e2eff[_0xd81b('0x35')][_0xd81b('0x38')]));_0xb9ff9f['attributes']=_0xb9ff9f[_0xd81b('0x36')]['length']?_0xb9ff9f[_0xd81b('0x36')]:_0x260310[_0xd81b('0x33')];if(!_0x4e2eff[_0xd81b('0x35')][_0xd81b('0x39')](_0xd81b('0x3a'))){_0xb9ff9f[_0xd81b('0x20')]=qs[_0xd81b('0x20')](_0x4e2eff[_0xd81b('0x35')][_0xd81b('0x20')]);_0xb9ff9f[_0xd81b('0x22')]=qs[_0xd81b('0x22')](_0x4e2eff[_0xd81b('0x35')][_0xd81b('0x22')]);}_0xb9ff9f['order']=qs['sort'](_0x4e2eff[_0xd81b('0x35')][_0xd81b('0x3b')]);_0xb9ff9f[_0xd81b('0x3c')]=qs['filters'](_[_0xd81b('0x3d')](_0x4e2eff[_0xd81b('0x35')],_0x260310['filters']),_0x481454);if(_0x4e2eff[_0xd81b('0x35')][_0xd81b('0x3e')]){_0xb9ff9f['where']=_[_0xd81b('0x3f')](_0xb9ff9f['where'],{'$or':_[_0xd81b('0x2e')](_0x481454,function(_0x2502d1){if(_0x2502d1[_0xd81b('0x32')]!==_0xd81b('0x40')){var _0x573da5={};_0x573da5[_0x2502d1[_0xd81b('0x2c')]]={'$like':'%'+_0x4e2eff[_0xd81b('0x35')][_0xd81b('0x3e')]+'%'};return _0x573da5;}})});}_0xb9ff9f=_[_0xd81b('0x3f')]({},_0xb9ff9f,_0x4e2eff[_0xd81b('0x41')]);var _0x466e98={'where':_0xb9ff9f[_0xd81b('0x3c')]};return db['Cdr'][_0xd81b('0x21')](_0x466e98)[_0xd81b('0x28')](function(_0x5185fe){_0x5141e6['count']=_0x5185fe;if(_0x4e2eff[_0xd81b('0x35')][_0xd81b('0x42')]){_0xb9ff9f[_0xd81b('0x43')]=[{'all':!![]}];}return db[_0xd81b('0x2f')][_0xd81b('0x44')](_0xb9ff9f);})['then'](function(_0x3dfba7){_0x5141e6[_0xd81b('0x45')]=_0x3dfba7;return _0x5141e6;})[_0xd81b('0x28')](respondWithFilteredResult(_0x5c8aee,_0xb9ff9f))[_0xd81b('0x46')](handleError(_0x5c8aee,null));};exports[_0xd81b('0x47')]=function(_0x235f4b,_0x1c13d2){var _0x486f0d={'raw':!![],'where':{'id':_0x235f4b[_0xd81b('0x48')]['id']}},_0x4405a8={};_0x4405a8[_0xd81b('0x33')]=_['keys'](db[_0xd81b('0x2f')][_0xd81b('0x30')]);_0x4405a8[_0xd81b('0x35')]=_[_0xd81b('0x34')](_0x235f4b[_0xd81b('0x35')]);_0x4405a8[_0xd81b('0x49')]=_[_0xd81b('0x37')](_0x4405a8[_0xd81b('0x33')],_0x4405a8['query']);_0x486f0d['attributes']=_[_0xd81b('0x37')](_0x4405a8[_0xd81b('0x33')],qs[_0xd81b('0x38')](_0x235f4b[_0xd81b('0x35')][_0xd81b('0x38')]));_0x486f0d[_0xd81b('0x36')]=_0x486f0d[_0xd81b('0x36')][_0xd81b('0x4a')]?_0x486f0d[_0xd81b('0x36')]:_0x4405a8[_0xd81b('0x33')];if(_0x235f4b[_0xd81b('0x35')][_0xd81b('0x42')]){_0x486f0d['include']=[{'all':!![]}];}_0x486f0d=_[_0xd81b('0x3f')]({},_0x486f0d,_0x235f4b[_0xd81b('0x41')]);return db[_0xd81b('0x2f')][_0xd81b('0x4b')](_0x486f0d)[_0xd81b('0x28')](handleEntityNotFound(_0x1c13d2,null))[_0xd81b('0x28')](respondWithResult(_0x1c13d2,null))[_0xd81b('0x46')](handleError(_0x1c13d2,null));};exports[_0xd81b('0x4c')]=function(_0x183bd6,_0x53ea36){return db[_0xd81b('0x2f')][_0xd81b('0x4c')](_0x183bd6[_0xd81b('0x4d')],{})[_0xd81b('0x28')](respondWithResult(_0x53ea36,0xc9))['catch'](handleError(_0x53ea36,null));};exports[_0xd81b('0x27')]=function(_0x151127,_0x15030b){if(_0x151127[_0xd81b('0x4d')]['id']){delete _0x151127[_0xd81b('0x4d')]['id'];}return db[_0xd81b('0x2f')][_0xd81b('0x4b')]({'where':{'id':_0x151127[_0xd81b('0x48')]['id']}})[_0xd81b('0x28')](handleEntityNotFound(_0x15030b,null))['then'](saveUpdates(_0x151127['body'],null))[_0xd81b('0x28')](respondWithResult(_0x15030b,null))[_0xd81b('0x46')](handleError(_0x15030b,null));};exports[_0xd81b('0x29')]=function(_0x4da281,_0x1df998){return db[_0xd81b('0x2f')][_0xd81b('0x4b')]({'where':{'id':_0x4da281[_0xd81b('0x48')]['id']}})['then'](handleEntityNotFound(_0x1df998,null))[_0xd81b('0x28')](removeEntity(_0x1df998,null))[_0xd81b('0x46')](handleError(_0x1df998,null));};exports[_0xd81b('0x4e')]=function(_0x3d171a,_0x4651d3){return db['Cdr'][_0xd81b('0x4e')]()[_0xd81b('0x28')](respondWithResult(_0x4651d3,null))['catch'](handleError(_0x4651d3,null));};
\ No newline at end of file
+var _0xafdd=['pick','filter','merge','type','VIRTUAL','options','Cdr','includeAll','findAll','rows','catch','show','params','rawAttributes','intersection','include','find','create','body','update','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','then','destroy','end','error','stack','name','send','fieldName','model','map','query','keys','filters','attributes','fields','hasOwnProperty','nolimit','sort','where'];(function(_0x5d8afd,_0xd7f769){var _0x336c61=function(_0x539e58){while(--_0x539e58){_0x5d8afd['push'](_0x5d8afd['shift']());}};_0x336c61(++_0xd7f769);}(_0xafdd,0x19a));var _0xdafd=function(_0x9c3823,_0x3873dd){_0x9c3823=_0x9c3823-0x0;var _0x438ec6=_0xafdd[_0x9c3823];return _0x438ec6;};'use strict';var emlformat=require(_0xdafd('0x0'));var rimraf=require(_0xdafd('0x1'));var zipdir=require(_0xdafd('0x2'));var jsonpatch=require(_0xdafd('0x3'));var rp=require(_0xdafd('0x4'));var moment=require(_0xdafd('0x5'));var BPromise=require(_0xdafd('0x6'));var Mustache=require(_0xdafd('0x7'));var util=require('util');var path=require(_0xdafd('0x8'));var sox=require(_0xdafd('0x9'));var csv=require(_0xdafd('0xa'));var ejs=require(_0xdafd('0xb'));var fs=require('fs');var fs_extra=require(_0xdafd('0xc'));var _=require(_0xdafd('0xd'));var squel=require(_0xdafd('0xe'));var crypto=require('crypto');var jsforce=require(_0xdafd('0xf'));var deskjs=require(_0xdafd('0x10'));var toCsv=require(_0xdafd('0xa'));var querystring=require('querystring');var Papa=require(_0xdafd('0x11'));var Redis=require(_0xdafd('0x12'));var authService=require(_0xdafd('0x13'));var qs=require(_0xdafd('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xdafd('0x15'));var logger=require(_0xdafd('0x16'))(_0xdafd('0x17'));var utils=require(_0xdafd('0x18'));var config=require(_0xdafd('0x19'));var licenseUtil=require(_0xdafd('0x1a'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x166176,_0x594f47){_0x594f47=_0x594f47||0xcc;return function(_0x553508){if(_0x553508){return _0x166176[_0xdafd('0x1b')](_0x594f47);}return _0x166176[_0xdafd('0x1c')](_0x594f47)['end']();};}function respondWithResult(_0x43a716,_0x490382){_0x490382=_0x490382||0xc8;return function(_0x4b09da){if(_0x4b09da){return _0x43a716[_0xdafd('0x1c')](_0x490382)[_0xdafd('0x1d')](_0x4b09da);}};}function respondWithFilteredResult(_0x583b1d,_0x267bfc){return function(_0x186379){if(_0x186379){var _0x496515=typeof _0x267bfc[_0xdafd('0x1e')]===_0xdafd('0x1f')&&typeof _0x267bfc[_0xdafd('0x20')]==='undefined';var _0xb382ca=_0x186379[_0xdafd('0x21')];var _0x4fc3a4=_0x496515?0x0:_0x267bfc['offset'];var _0x2569b2=_0x496515?_0x186379['count']:_0x267bfc[_0xdafd('0x1e')]+_0x267bfc[_0xdafd('0x20')];var _0x1e64d3;if(_0x2569b2>=_0xb382ca){_0x2569b2=_0xb382ca;_0x1e64d3=0xc8;}else{_0x1e64d3=0xce;}_0x583b1d[_0xdafd('0x1c')](_0x1e64d3);return _0x583b1d[_0xdafd('0x22')](_0xdafd('0x23'),_0x4fc3a4+'-'+_0x2569b2+'/'+_0xb382ca)[_0xdafd('0x1d')](_0x186379);}return null;};}function patchUpdates(_0x42e0f9){return function(_0x8480a8){try{jsonpatch[_0xdafd('0x24')](_0x8480a8,_0x42e0f9,!![]);}catch(_0xee767e){return BPromise[_0xdafd('0x25')](_0xee767e);}return _0x8480a8[_0xdafd('0x26')]();};}function saveUpdates(_0xf4a521,_0x491d96){return function(_0x230495){if(_0x230495){return _0x230495['update'](_0xf4a521)[_0xdafd('0x27')](function(_0x5e96cc){return _0x5e96cc;});}return null;};}function removeEntity(_0x439bbf,_0x35ef78){return function(_0x7f10f6){if(_0x7f10f6){return _0x7f10f6[_0xdafd('0x28')]()[_0xdafd('0x27')](function(){_0x439bbf[_0xdafd('0x1c')](0xcc)[_0xdafd('0x29')]();});}};}function handleEntityNotFound(_0x30cba9,_0x3846dd){return function(_0x5cd11d){if(!_0x5cd11d){_0x30cba9[_0xdafd('0x1b')](0x194);}return _0x5cd11d;};}function handleError(_0x2ab575,_0x18554c){_0x18554c=_0x18554c||0x1f4;return function(_0x1feb5b){logger[_0xdafd('0x2a')](_0x1feb5b[_0xdafd('0x2b')]);if(_0x1feb5b[_0xdafd('0x2c')]){delete _0x1feb5b[_0xdafd('0x2c')];}_0x2ab575[_0xdafd('0x1c')](_0x18554c)[_0xdafd('0x2d')](_0x1feb5b);};}exports['index']=function(_0x243182,_0x14626b){var _0x13ab81={},_0x249743={},_0x21edb6={'count':0x0,'rows':[]};var _0x324f0f=_['map'](db['Cdr']['rawAttributes'],function(_0xcca4f){return{'name':_0xcca4f[_0xdafd('0x2e')],'type':_0xcca4f['type']['key']};});_0x249743[_0xdafd('0x2f')]=_[_0xdafd('0x30')](_0x324f0f,_0xdafd('0x2c'));_0x249743[_0xdafd('0x31')]=_[_0xdafd('0x32')](_0x243182[_0xdafd('0x31')]);_0x249743[_0xdafd('0x33')]=_['intersection'](_0x249743[_0xdafd('0x2f')],_0x249743[_0xdafd('0x31')]);_0x13ab81[_0xdafd('0x34')]=_['intersection'](_0x249743[_0xdafd('0x2f')],qs[_0xdafd('0x35')](_0x243182['query'][_0xdafd('0x35')]));_0x13ab81[_0xdafd('0x34')]=_0x13ab81[_0xdafd('0x34')]['length']?_0x13ab81[_0xdafd('0x34')]:_0x249743[_0xdafd('0x2f')];if(!_0x243182[_0xdafd('0x31')][_0xdafd('0x36')](_0xdafd('0x37'))){_0x13ab81[_0xdafd('0x20')]=qs[_0xdafd('0x20')](_0x243182['query'][_0xdafd('0x20')]);_0x13ab81[_0xdafd('0x1e')]=qs[_0xdafd('0x1e')](_0x243182[_0xdafd('0x31')][_0xdafd('0x1e')]);}_0x13ab81['order']=qs[_0xdafd('0x38')](_0x243182[_0xdafd('0x31')]['sort']);_0x13ab81[_0xdafd('0x39')]=qs[_0xdafd('0x33')](_[_0xdafd('0x3a')](_0x243182[_0xdafd('0x31')],_0x249743[_0xdafd('0x33')]),_0x324f0f);if(_0x243182[_0xdafd('0x31')][_0xdafd('0x3b')]){_0x13ab81[_0xdafd('0x39')]=_[_0xdafd('0x3c')](_0x13ab81[_0xdafd('0x39')],{'$or':_[_0xdafd('0x30')](_0x324f0f,function(_0x245163){if(_0x245163[_0xdafd('0x3d')]!==_0xdafd('0x3e')){var _0xb1e264={};_0xb1e264[_0x245163[_0xdafd('0x2c')]]={'$like':'%'+_0x243182[_0xdafd('0x31')][_0xdafd('0x3b')]+'%'};return _0xb1e264;}})});}_0x13ab81=_[_0xdafd('0x3c')]({},_0x13ab81,_0x243182[_0xdafd('0x3f')]);var _0x3f25c2={'where':_0x13ab81[_0xdafd('0x39')]};return db[_0xdafd('0x40')][_0xdafd('0x21')](_0x3f25c2)[_0xdafd('0x27')](function(_0x21d43d){_0x21edb6['count']=_0x21d43d;if(_0x243182['query'][_0xdafd('0x41')]){_0x13ab81['include']=[{'all':!![]}];}return db[_0xdafd('0x40')][_0xdafd('0x42')](_0x13ab81);})['then'](function(_0x4b463c){_0x21edb6[_0xdafd('0x43')]=_0x4b463c;return _0x21edb6;})[_0xdafd('0x27')](respondWithFilteredResult(_0x14626b,_0x13ab81))[_0xdafd('0x44')](handleError(_0x14626b,null));};exports[_0xdafd('0x45')]=function(_0xbc5159,_0x184a59){var _0x3a3a14={'raw':!![],'where':{'id':_0xbc5159[_0xdafd('0x46')]['id']}},_0x2417f8={};_0x2417f8['model']=_['keys'](db[_0xdafd('0x40')][_0xdafd('0x47')]);_0x2417f8[_0xdafd('0x31')]=_[_0xdafd('0x32')](_0xbc5159[_0xdafd('0x31')]);_0x2417f8[_0xdafd('0x33')]=_[_0xdafd('0x48')](_0x2417f8[_0xdafd('0x2f')],_0x2417f8[_0xdafd('0x31')]);_0x3a3a14[_0xdafd('0x34')]=_[_0xdafd('0x48')](_0x2417f8[_0xdafd('0x2f')],qs[_0xdafd('0x35')](_0xbc5159['query'][_0xdafd('0x35')]));_0x3a3a14['attributes']=_0x3a3a14[_0xdafd('0x34')]['length']?_0x3a3a14[_0xdafd('0x34')]:_0x2417f8[_0xdafd('0x2f')];if(_0xbc5159[_0xdafd('0x31')][_0xdafd('0x41')]){_0x3a3a14[_0xdafd('0x49')]=[{'all':!![]}];}_0x3a3a14=_[_0xdafd('0x3c')]({},_0x3a3a14,_0xbc5159['options']);return db[_0xdafd('0x40')][_0xdafd('0x4a')](_0x3a3a14)[_0xdafd('0x27')](handleEntityNotFound(_0x184a59,null))[_0xdafd('0x27')](respondWithResult(_0x184a59,null))[_0xdafd('0x44')](handleError(_0x184a59,null));};exports['create']=function(_0x48cc85,_0x189d61){return db[_0xdafd('0x40')][_0xdafd('0x4b')](_0x48cc85[_0xdafd('0x4c')],{})[_0xdafd('0x27')](respondWithResult(_0x189d61,0xc9))[_0xdafd('0x44')](handleError(_0x189d61,null));};exports[_0xdafd('0x4d')]=function(_0x2f5e4c,_0x2ae4cd){if(_0x2f5e4c['body']['id']){delete _0x2f5e4c[_0xdafd('0x4c')]['id'];}return db[_0xdafd('0x40')][_0xdafd('0x4a')]({'where':{'id':_0x2f5e4c[_0xdafd('0x46')]['id']}})['then'](handleEntityNotFound(_0x2ae4cd,null))[_0xdafd('0x27')](saveUpdates(_0x2f5e4c[_0xdafd('0x4c')],null))[_0xdafd('0x27')](respondWithResult(_0x2ae4cd,null))[_0xdafd('0x44')](handleError(_0x2ae4cd,null));};exports[_0xdafd('0x28')]=function(_0x4b6fbb,_0x5af1a8){return db[_0xdafd('0x40')][_0xdafd('0x4a')]({'where':{'id':_0x4b6fbb['params']['id']}})['then'](handleEntityNotFound(_0x5af1a8,null))[_0xdafd('0x27')](removeEntity(_0x5af1a8,null))[_0xdafd('0x44')](handleError(_0x5af1a8,null));};exports['describe']=function(_0x2dde06,_0x5dc9a0){return db[_0xdafd('0x40')]['describe']()['then'](respondWithResult(_0x5dc9a0,null))[_0xdafd('0x44')](handleError(_0x5dc9a0,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9957=['dst','src','uniqueid','lodash','util','../../config/logger','api','bluebird','request-promise','path','rimraf','./cdr.attributes','exports','define','Cdr','accountcode','calldate','disposition'];(function(_0x503fa6,_0xa0d358){var _0x3e48ef=function(_0x3ce195){while(--_0x3ce195){_0x503fa6['push'](_0x503fa6['shift']());}};_0x3e48ef(++_0xa0d358);}(_0x9957,0x93));var _0x7995=function(_0x5ddb1c,_0x5ea4df){_0x5ddb1c=_0x5ddb1c-0x0;var _0x354adc=_0x9957[_0x5ddb1c];return _0x354adc;};'use strict';var _=require(_0x7995('0x0'));var util=require(_0x7995('0x1'));var logger=require(_0x7995('0x2'))(_0x7995('0x3'));var moment=require('moment');var BPromise=require(_0x7995('0x4'));var rp=require(_0x7995('0x5'));var fs=require('fs');var path=require(_0x7995('0x6'));var rimraf=require(_0x7995('0x7'));var config=require('../../config/environment');var attributes=require(_0x7995('0x8'));module[_0x7995('0x9')]=function(_0x137b6b,_0x219534){return _0x137b6b[_0x7995('0xa')](_0x7995('0xb'),attributes,{'tableName':'cdr','paranoid':![],'indexes':[{'name':_0x7995('0xc'),'fields':[_0x7995('0xc')]},{'name':'calldate','fields':[_0x7995('0xd')]},{'name':_0x7995('0xe'),'fields':[_0x7995('0xe')]},{'name':_0x7995('0xf'),'fields':[_0x7995('0xf')]},{'name':_0x7995('0x10'),'fields':[_0x7995('0x10')]},{'name':'uniqueid','fields':[_0x7995('0x11')]}],'timestamps':![]});};
\ No newline at end of file
+var _0x7a54=['Cdr','cdr','accountcode','disposition','dst','src','uniqueid','lodash','util','../../config/logger','moment','bluebird','path','rimraf','../../config/environment','./cdr.attributes','exports'];(function(_0x13d459,_0x2932e4){var _0x33066a=function(_0x205955){while(--_0x205955){_0x13d459['push'](_0x13d459['shift']());}};_0x33066a(++_0x2932e4);}(_0x7a54,0x106));var _0x47a5=function(_0x5be337,_0x248676){_0x5be337=_0x5be337-0x0;var _0x5eae4e=_0x7a54[_0x5be337];return _0x5eae4e;};'use strict';var _=require(_0x47a5('0x0'));var util=require(_0x47a5('0x1'));var logger=require(_0x47a5('0x2'))('api');var moment=require(_0x47a5('0x3'));var BPromise=require(_0x47a5('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x47a5('0x5'));var rimraf=require(_0x47a5('0x6'));var config=require(_0x47a5('0x7'));var attributes=require(_0x47a5('0x8'));module[_0x47a5('0x9')]=function(_0x545a97,_0x3d5629){return _0x545a97['define'](_0x47a5('0xa'),attributes,{'tableName':_0x47a5('0xb'),'paranoid':![],'indexes':[{'name':'accountcode','fields':[_0x47a5('0xc')]},{'name':'calldate','fields':['calldate']},{'name':'disposition','fields':[_0x47a5('0xd')]},{'name':_0x47a5('0xe'),'fields':['dst']},{'name':_0x47a5('0xf'),'fields':['src']},{'name':'uniqueid','fields':[_0x47a5('0x10')]}],'timestamps':![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x168b=['../../config/environment','jayson/promise','client','then','info','request\x20sent','stringify','error','code','message','result','catch','Cdr,\x20%s,\x20%s','util','moment','bluebird','randomstring','ioredis'];(function(_0x3e67dc,_0x37ddba){var _0x36f3c1=function(_0x299420){while(--_0x299420){_0x3e67dc['push'](_0x3e67dc['shift']());}};_0x36f3c1(++_0x37ddba);}(_0x168b,0x79));var _0xb168=function(_0x44ad4b,_0x13ccad){_0x44ad4b=_0x44ad4b-0x0;var _0x4c0516=_0x168b[_0x44ad4b];return _0x4c0516;};'use strict';var _=require('lodash');var util=require(_0xb168('0x0'));var moment=require(_0xb168('0x1'));var BPromise=require(_0xb168('0x2'));var rs=require(_0xb168('0x3'));var fs=require('fs');var Redis=require(_0xb168('0x4'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')('rpc');var config=require(_0xb168('0x5'));var jayson=require(_0xb168('0x6'));var client=jayson[_0xb168('0x7')]['http']({'port':0x232a});function respondWithRpcPromise(_0x3624ae,_0x4bf072,_0x46ac41){return new BPromise(function(_0x25fd41,_0x4a814f){return client['request'](_0x3624ae,_0x46ac41)[_0xb168('0x8')](function(_0x1e82c9){logger[_0xb168('0x9')]('Cdr,\x20%s,\x20%s',_0x4bf072,_0xb168('0xa'));logger['debug']('Cdr,\x20%s,\x20%s,\x20%s',_0x4bf072,_0xb168('0xa'),JSON[_0xb168('0xb')](_0x1e82c9));if(_0x1e82c9[_0xb168('0xc')]){if(_0x1e82c9[_0xb168('0xc')][_0xb168('0xd')]===0x1f4){logger['error']('Cdr,\x20%s,\x20%s',_0x4bf072,_0x1e82c9[_0xb168('0xc')][_0xb168('0xe')]);return _0x4a814f(_0x1e82c9[_0xb168('0xc')]['message']);}logger['error']('Cdr,\x20%s,\x20%s',_0x4bf072,_0x1e82c9[_0xb168('0xc')]['message']);return _0x25fd41(_0x1e82c9[_0xb168('0xc')][_0xb168('0xe')]);}else{logger[_0xb168('0x9')]('Cdr,\x20%s,\x20%s',_0x4bf072,'request\x20sent');_0x25fd41(_0x1e82c9[_0xb168('0xf')][_0xb168('0xe')]);}})[_0xb168('0x10')](function(_0x4a109a){logger[_0xb168('0xc')](_0xb168('0x11'),_0x4bf072,_0x4a109a);_0x4a814f(_0x4a109a);});});}
\ No newline at end of file
+var _0xeacf=['message','result','catch','lodash','util','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','request','then','info','Cdr,\x20%s,\x20%s','debug','Cdr,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','code','error'];(function(_0x5c18ef,_0xa2e81d){var _0x33789d=function(_0x5761a9){while(--_0x5761a9){_0x5c18ef['push'](_0x5c18ef['shift']());}};_0x33789d(++_0xa2e81d);}(_0xeacf,0x153));var _0xfeac=function(_0x54d4fe,_0x55e869){_0x54d4fe=_0x54d4fe-0x0;var _0x1ab5bb=_0xeacf[_0x54d4fe];return _0x1ab5bb;};'use strict';var _=require(_0xfeac('0x0'));var util=require(_0xfeac('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xfeac('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xfeac('0x3'))['db'];var utils=require(_0xfeac('0x4'));var logger=require(_0xfeac('0x5'))(_0xfeac('0x6'));var config=require(_0xfeac('0x7'));var jayson=require('jayson/promise');var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x108a77,_0xde9b8a,_0x1074da){return new BPromise(function(_0x52ee4f,_0x2f6fdb){return client[_0xfeac('0x8')](_0x108a77,_0x1074da)[_0xfeac('0x9')](function(_0x367be7){logger[_0xfeac('0xa')](_0xfeac('0xb'),_0xde9b8a,'request\x20sent');logger[_0xfeac('0xc')](_0xfeac('0xd'),_0xde9b8a,_0xfeac('0xe'),JSON[_0xfeac('0xf')](_0x367be7));if(_0x367be7['error']){if(_0x367be7['error'][_0xfeac('0x10')]===0x1f4){logger[_0xfeac('0x11')](_0xfeac('0xb'),_0xde9b8a,_0x367be7[_0xfeac('0x11')][_0xfeac('0x12')]);return _0x2f6fdb(_0x367be7['error'][_0xfeac('0x12')]);}logger[_0xfeac('0x11')]('Cdr,\x20%s,\x20%s',_0xde9b8a,_0x367be7['error'][_0xfeac('0x12')]);return _0x52ee4f(_0x367be7[_0xfeac('0x11')][_0xfeac('0x12')]);}else{logger[_0xfeac('0xa')]('Cdr,\x20%s,\x20%s',_0xde9b8a,_0xfeac('0xe'));_0x52ee4f(_0x367be7[_0xfeac('0x13')]['message']);}})[_0xfeac('0x14')](function(_0x307229){logger[_0xfeac('0x11')]('Cdr,\x20%s,\x20%s',_0xde9b8a,_0x307229);_0x2f6fdb(_0x307229);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd8b0=['destroy','exports','multer','util','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','isAuthenticated','index','get','describe','/:id','show','post','create','put','update'];(function(_0x4d1dcb,_0x49df03){var _0x3088a7=function(_0xeb5143){while(--_0xeb5143){_0x4d1dcb['push'](_0x4d1dcb['shift']());}};_0x3088a7(++_0x49df03);}(_0xd8b0,0xad));var _0x0d8b=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0xd8b0[_0xa464c9];return _0x3d73c4;};'use strict';var multer=require(_0x0d8b('0x0'));var util=require(_0x0d8b('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0d8b('0x2')]();var fs_extra=require(_0x0d8b('0x3'));var auth=require(_0x0d8b('0x4'));var interaction=require(_0x0d8b('0x5'));var config=require(_0x0d8b('0x6'));var controller=require('./cdr.controller');router['get']('/',auth[_0x0d8b('0x7')](),controller[_0x0d8b('0x8')]);router[_0x0d8b('0x9')]('/describe',auth[_0x0d8b('0x7')](),controller[_0x0d8b('0xa')]);router['get'](_0x0d8b('0xb'),auth[_0x0d8b('0x7')](),controller[_0x0d8b('0xc')]);router[_0x0d8b('0xd')]('/',auth[_0x0d8b('0x7')](),controller[_0x0d8b('0xe')]);router[_0x0d8b('0xf')](_0x0d8b('0xb'),auth['isAuthenticated'](),controller[_0x0d8b('0x10')]);router['delete'](_0x0d8b('0xb'),auth[_0x0d8b('0x7')](),controller[_0x0d8b('0x11')]);module[_0x0d8b('0x12')]=router;
\ No newline at end of file
+var _0xd8b0=['destroy','exports','multer','util','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','isAuthenticated','index','get','describe','/:id','show','post','create','put','update'];(function(_0x4bb66f,_0x3cd682){var _0xf2772f=function(_0x2e3698){while(--_0x2e3698){_0x4bb66f['push'](_0x4bb66f['shift']());}};_0xf2772f(++_0x3cd682);}(_0xd8b0,0xad));var _0x0d8b=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xd8b0[_0x20a584];return _0x4b41a8;};'use strict';var multer=require(_0x0d8b('0x0'));var util=require(_0x0d8b('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0d8b('0x2')]();var fs_extra=require(_0x0d8b('0x3'));var auth=require(_0x0d8b('0x4'));var interaction=require(_0x0d8b('0x5'));var config=require(_0x0d8b('0x6'));var controller=require('./cdr.controller');router['get']('/',auth[_0x0d8b('0x7')](),controller[_0x0d8b('0x8')]);router[_0x0d8b('0x9')]('/describe',auth[_0x0d8b('0x7')](),controller[_0x0d8b('0xa')]);router['get'](_0x0d8b('0xb'),auth[_0x0d8b('0x7')](),controller[_0x0d8b('0xc')]);router[_0x0d8b('0xd')]('/',auth[_0x0d8b('0x7')](),controller[_0x0d8b('0xe')]);router[_0x0d8b('0xf')](_0x0d8b('0xb'),auth['isAuthenticated'](),controller[_0x0d8b('0x10')]);router['delete'](_0x0d8b('0xb'),auth[_0x0d8b('0x7')](),controller[_0x0d8b('0x11')]);module[_0x0d8b('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9423=['exports','INTEGER','STRING','noop','TEXT','*,*,*,*'];(function(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0x9423,0x156));var _0x3942=function(_0x4e642a,_0x511ab7){_0x4e642a=_0x4e642a-0x0;var _0x1a0220=_0x9423[_0x4e642a];return _0x1a0220;};'use strict';var Sequelize=require('sequelize');module[_0x3942('0x0')]={'priority':{'type':Sequelize[_0x3942('0x1')],'allowNull':![]},'app':{'type':Sequelize[_0x3942('0x2')],'allowNull':![],'defaultValue':_0x3942('0x3')},'appdata':{'type':Sequelize[_0x3942('0x4')]()},'description':{'type':Sequelize[_0x3942('0x2')]},'interval':{'type':Sequelize[_0x3942('0x2')],'defaultValue':_0x3942('0x5')}};
\ No newline at end of file
+var _0x9c1e=['sequelize','INTEGER','STRING','noop','TEXT','*,*,*,*'];(function(_0x576170,_0x1712ae){var _0x397c70=function(_0x2eb9de){while(--_0x2eb9de){_0x576170['push'](_0x576170['shift']());}};_0x397c70(++_0x1712ae);}(_0x9c1e,0x66));var _0xe9c1=function(_0x3c35e7,_0x7117ec){_0x3c35e7=_0x3c35e7-0x0;var _0x420ef7=_0x9c1e[_0x3c35e7];return _0x420ef7;};'use strict';var Sequelize=require(_0xe9c1('0x0'));module['exports']={'priority':{'type':Sequelize[_0xe9c1('0x1')],'allowNull':![]},'app':{'type':Sequelize[_0xe9c1('0x2')],'allowNull':![],'defaultValue':_0xe9c1('0x3')},'appdata':{'type':Sequelize[_0xe9c1('0x4')]()},'description':{'type':Sequelize[_0xe9c1('0x2')]},'interval':{'type':Sequelize[_0xe9c1('0x2')],'defaultValue':_0xe9c1('0x5')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaf4c=['merge','options','body','find','catch','rimraf','zip-dir','request-promise','moment','bluebird','util','path','sox','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','offset','undefined','count','set','Content-Range','json','apply','save','update','destroy','then','end','error','stack','name','send','show','params','model','keys','ChatApplication','rawAttributes','intersection','query','fields','attributes','length','includeAll','include'];(function(_0x54ee18,_0x4a4658){var _0x200a49=function(_0x148a6f){while(--_0x148a6f){_0x54ee18['push'](_0x54ee18['shift']());}};_0x200a49(++_0x4a4658);}(_0xaf4c,0x1ed));var _0xcaf4=function(_0x2c5e17,_0xc3ade9){_0x2c5e17=_0x2c5e17-0x0;var _0x127b96=_0xaf4c[_0x2c5e17];return _0x127b96;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xcaf4('0x0'));var zipdir=require(_0xcaf4('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xcaf4('0x2'));var moment=require(_0xcaf4('0x3'));var BPromise=require(_0xcaf4('0x4'));var Mustache=require('mustache');var util=require(_0xcaf4('0x5'));var path=require(_0xcaf4('0x6'));var sox=require(_0xcaf4('0x7'));var csv=require('to-csv');var ejs=require(_0xcaf4('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xcaf4('0x9'));var squel=require(_0xcaf4('0xa'));var crypto=require(_0xcaf4('0xb'));var jsforce=require(_0xcaf4('0xc'));var deskjs=require(_0xcaf4('0xd'));var toCsv=require(_0xcaf4('0xe'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xcaf4('0xf'));var authService=require(_0xcaf4('0x10'));var qs=require(_0xcaf4('0x11'));var as=require(_0xcaf4('0x12'));var hardwareService=require(_0xcaf4('0x13'));var logger=require(_0xcaf4('0x14'))(_0xcaf4('0x15'));var utils=require(_0xcaf4('0x16'));var config=require(_0xcaf4('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0xcaf4('0x18'))['db'];function respondWithStatusCode(_0x41486c,_0x4d270c){_0x4d270c=_0x4d270c||0xcc;return function(_0x308173){if(_0x308173){return _0x41486c[_0xcaf4('0x19')](_0x4d270c);}return _0x41486c[_0xcaf4('0x1a')](_0x4d270c)['end']();};}function respondWithResult(_0x3738b7,_0x2ad48b){_0x2ad48b=_0x2ad48b||0xc8;return function(_0x593c44){if(_0x593c44){return _0x3738b7[_0xcaf4('0x1a')](_0x2ad48b)['json'](_0x593c44);}};}function respondWithFilteredResult(_0x2a1243,_0x191f38){return function(_0x67532a){if(_0x67532a){var _0x1ec93e=typeof _0x191f38[_0xcaf4('0x1b')]===_0xcaf4('0x1c')&&typeof _0x191f38['limit']===_0xcaf4('0x1c');var _0x488bac=_0x67532a[_0xcaf4('0x1d')];var _0x5bb3b5=_0x1ec93e?0x0:_0x191f38[_0xcaf4('0x1b')];var _0x36c34c=_0x1ec93e?_0x67532a[_0xcaf4('0x1d')]:_0x191f38['offset']+_0x191f38['limit'];var _0x1ddae3;if(_0x36c34c>=_0x488bac){_0x36c34c=_0x488bac;_0x1ddae3=0xc8;}else{_0x1ddae3=0xce;}_0x2a1243[_0xcaf4('0x1a')](_0x1ddae3);return _0x2a1243[_0xcaf4('0x1e')](_0xcaf4('0x1f'),_0x5bb3b5+'-'+_0x36c34c+'/'+_0x488bac)[_0xcaf4('0x20')](_0x67532a);}return null;};}function patchUpdates(_0x596997){return function(_0x42d129){try{jsonpatch[_0xcaf4('0x21')](_0x42d129,_0x596997,!![]);}catch(_0x3f6172){return BPromise['reject'](_0x3f6172);}return _0x42d129[_0xcaf4('0x22')]();};}function saveUpdates(_0x2b500b,_0x39ff5d){return function(_0x5b6525){if(_0x5b6525){return _0x5b6525[_0xcaf4('0x23')](_0x2b500b)['then'](function(_0x2be740){return _0x2be740;});}return null;};}function removeEntity(_0x3fb28a,_0x1d9f77){return function(_0x5e4af3){if(_0x5e4af3){return _0x5e4af3[_0xcaf4('0x24')]()[_0xcaf4('0x25')](function(){_0x3fb28a[_0xcaf4('0x1a')](0xcc)[_0xcaf4('0x26')]();});}};}function handleEntityNotFound(_0x4c3485,_0x45f729){return function(_0xf9fe54){if(!_0xf9fe54){_0x4c3485['sendStatus'](0x194);}return _0xf9fe54;};}function handleError(_0xf01e94,_0x34b464){_0x34b464=_0x34b464||0x1f4;return function(_0x43c05d){logger[_0xcaf4('0x27')](_0x43c05d[_0xcaf4('0x28')]);if(_0x43c05d[_0xcaf4('0x29')]){delete _0x43c05d[_0xcaf4('0x29')];}_0xf01e94['status'](_0x34b464)[_0xcaf4('0x2a')](_0x43c05d);};}exports[_0xcaf4('0x2b')]=function(_0x237077,_0x521926){var _0x175cec={'raw':!![],'where':{'id':_0x237077[_0xcaf4('0x2c')]['id']}},_0x201371={};_0x201371[_0xcaf4('0x2d')]=_[_0xcaf4('0x2e')](db[_0xcaf4('0x2f')][_0xcaf4('0x30')]);_0x201371['query']=_[_0xcaf4('0x2e')](_0x237077['query']);_0x201371['filters']=_[_0xcaf4('0x31')](_0x201371['model'],_0x201371[_0xcaf4('0x32')]);_0x175cec['attributes']=_[_0xcaf4('0x31')](_0x201371['model'],qs[_0xcaf4('0x33')](_0x237077[_0xcaf4('0x32')][_0xcaf4('0x33')]));_0x175cec[_0xcaf4('0x34')]=_0x175cec[_0xcaf4('0x34')][_0xcaf4('0x35')]?_0x175cec[_0xcaf4('0x34')]:_0x201371[_0xcaf4('0x2d')];if(_0x237077['query'][_0xcaf4('0x36')]){_0x175cec[_0xcaf4('0x37')]=[{'all':!![]}];}_0x175cec=_[_0xcaf4('0x38')]({},_0x175cec,_0x237077[_0xcaf4('0x39')]);return db[_0xcaf4('0x2f')]['find'](_0x175cec)['then'](handleEntityNotFound(_0x521926,null))['then'](respondWithResult(_0x521926,null))['catch'](handleError(_0x521926,null));};exports['update']=function(_0x31f9bf,_0x37ed8f){if(_0x31f9bf[_0xcaf4('0x3a')]['id']){delete _0x31f9bf['body']['id'];}return db[_0xcaf4('0x2f')][_0xcaf4('0x3b')]({'where':{'id':_0x31f9bf[_0xcaf4('0x2c')]['id']}})[_0xcaf4('0x25')](handleEntityNotFound(_0x37ed8f,null))['then'](saveUpdates(_0x31f9bf['body'],null))['then'](respondWithResult(_0x37ed8f,null))['catch'](handleError(_0x37ed8f,null));};exports['destroy']=function(_0x297cfd,_0x46e9ac){return db['ChatApplication'][_0xcaf4('0x3b')]({'where':{'id':_0x297cfd[_0xcaf4('0x2c')]['id']}})['then'](handleEntityNotFound(_0x46e9ac,null))[_0xcaf4('0x25')](removeEntity(_0x46e9ac,null))[_0xcaf4('0x3c')](handleError(_0x46e9ac,null));};
\ No newline at end of file
+var _0x6c9f=['bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','status','end','offset','undefined','limit','count','set','Content-Range','json','save','update','then','error','name','send','show','params','ChatApplication','rawAttributes','query','keys','filters','intersection','model','attributes','fields','length','includeAll','merge','options','find','catch','body','destroy','eml-format','zip-dir','request-promise','moment'];(function(_0x9e01cf,_0x1e2611){var _0x3d7f90=function(_0x2a09c6){while(--_0x2a09c6){_0x9e01cf['push'](_0x9e01cf['shift']());}};_0x3d7f90(++_0x1e2611);}(_0x6c9f,0x16a));var _0xf6c9=function(_0x191516,_0x4a9f87){_0x191516=_0x191516-0x0;var _0x4bc188=_0x6c9f[_0x191516];return _0x4bc188;};'use strict';var emlformat=require(_0xf6c9('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xf6c9('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xf6c9('0x2'));var moment=require(_0xf6c9('0x3'));var BPromise=require(_0xf6c9('0x4'));var Mustache=require(_0xf6c9('0x5'));var util=require(_0xf6c9('0x6'));var path=require(_0xf6c9('0x7'));var sox=require('sox');var csv=require(_0xf6c9('0x8'));var ejs=require(_0xf6c9('0x9'));var fs=require('fs');var fs_extra=require(_0xf6c9('0xa'));var _=require(_0xf6c9('0xb'));var squel=require(_0xf6c9('0xc'));var crypto=require(_0xf6c9('0xd'));var jsforce=require(_0xf6c9('0xe'));var deskjs=require(_0xf6c9('0xf'));var toCsv=require(_0xf6c9('0x8'));var querystring=require('querystring');var Papa=require(_0xf6c9('0x10'));var Redis=require(_0xf6c9('0x11'));var authService=require(_0xf6c9('0x12'));var qs=require(_0xf6c9('0x13'));var as=require(_0xf6c9('0x14'));var hardwareService=require(_0xf6c9('0x15'));var logger=require(_0xf6c9('0x16'))(_0xf6c9('0x17'));var utils=require(_0xf6c9('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0xf6c9('0x19'));var db=require(_0xf6c9('0x1a'))['db'];function respondWithStatusCode(_0x1c5b31,_0x2f99db){_0x2f99db=_0x2f99db||0xcc;return function(_0x564e64){if(_0x564e64){return _0x1c5b31['sendStatus'](_0x2f99db);}return _0x1c5b31[_0xf6c9('0x1b')](_0x2f99db)[_0xf6c9('0x1c')]();};}function respondWithResult(_0x1f3ebb,_0x38a2f4){_0x38a2f4=_0x38a2f4||0xc8;return function(_0x281018){if(_0x281018){return _0x1f3ebb[_0xf6c9('0x1b')](_0x38a2f4)['json'](_0x281018);}};}function respondWithFilteredResult(_0x53c990,_0x16e14b){return function(_0x3954ca){if(_0x3954ca){var _0x5cb57e=typeof _0x16e14b[_0xf6c9('0x1d')]===_0xf6c9('0x1e')&&typeof _0x16e14b[_0xf6c9('0x1f')]===_0xf6c9('0x1e');var _0x218ac6=_0x3954ca[_0xf6c9('0x20')];var _0x56baee=_0x5cb57e?0x0:_0x16e14b[_0xf6c9('0x1d')];var _0x6749b3=_0x5cb57e?_0x3954ca[_0xf6c9('0x20')]:_0x16e14b[_0xf6c9('0x1d')]+_0x16e14b[_0xf6c9('0x1f')];var _0x4330ed;if(_0x6749b3>=_0x218ac6){_0x6749b3=_0x218ac6;_0x4330ed=0xc8;}else{_0x4330ed=0xce;}_0x53c990[_0xf6c9('0x1b')](_0x4330ed);return _0x53c990[_0xf6c9('0x21')](_0xf6c9('0x22'),_0x56baee+'-'+_0x6749b3+'/'+_0x218ac6)[_0xf6c9('0x23')](_0x3954ca);}return null;};}function patchUpdates(_0xdaf3c5){return function(_0x27a65c){try{jsonpatch['apply'](_0x27a65c,_0xdaf3c5,!![]);}catch(_0x4ba539){return BPromise['reject'](_0x4ba539);}return _0x27a65c[_0xf6c9('0x24')]();};}function saveUpdates(_0x4b2340,_0x2ef5a6){return function(_0x569226){if(_0x569226){return _0x569226[_0xf6c9('0x25')](_0x4b2340)['then'](function(_0xacc99){return _0xacc99;});}return null;};}function removeEntity(_0x1ea7f8,_0x11bb78){return function(_0x4663f3){if(_0x4663f3){return _0x4663f3['destroy']()[_0xf6c9('0x26')](function(){_0x1ea7f8[_0xf6c9('0x1b')](0xcc)[_0xf6c9('0x1c')]();});}};}function handleEntityNotFound(_0x1a1a90,_0x4915b0){return function(_0x26486c){if(!_0x26486c){_0x1a1a90['sendStatus'](0x194);}return _0x26486c;};}function handleError(_0x49d805,_0x3d846b){_0x3d846b=_0x3d846b||0x1f4;return function(_0x16652d){logger[_0xf6c9('0x27')](_0x16652d['stack']);if(_0x16652d['name']){delete _0x16652d[_0xf6c9('0x28')];}_0x49d805[_0xf6c9('0x1b')](_0x3d846b)[_0xf6c9('0x29')](_0x16652d);};}exports[_0xf6c9('0x2a')]=function(_0x2a4b56,_0x408e67){var _0x3d6990={'raw':!![],'where':{'id':_0x2a4b56[_0xf6c9('0x2b')]['id']}},_0x51c8aa={};_0x51c8aa['model']=_['keys'](db[_0xf6c9('0x2c')][_0xf6c9('0x2d')]);_0x51c8aa[_0xf6c9('0x2e')]=_[_0xf6c9('0x2f')](_0x2a4b56[_0xf6c9('0x2e')]);_0x51c8aa[_0xf6c9('0x30')]=_[_0xf6c9('0x31')](_0x51c8aa[_0xf6c9('0x32')],_0x51c8aa['query']);_0x3d6990[_0xf6c9('0x33')]=_[_0xf6c9('0x31')](_0x51c8aa[_0xf6c9('0x32')],qs[_0xf6c9('0x34')](_0x2a4b56[_0xf6c9('0x2e')][_0xf6c9('0x34')]));_0x3d6990[_0xf6c9('0x33')]=_0x3d6990[_0xf6c9('0x33')][_0xf6c9('0x35')]?_0x3d6990[_0xf6c9('0x33')]:_0x51c8aa[_0xf6c9('0x32')];if(_0x2a4b56[_0xf6c9('0x2e')][_0xf6c9('0x36')]){_0x3d6990['include']=[{'all':!![]}];}_0x3d6990=_[_0xf6c9('0x37')]({},_0x3d6990,_0x2a4b56[_0xf6c9('0x38')]);return db[_0xf6c9('0x2c')][_0xf6c9('0x39')](_0x3d6990)[_0xf6c9('0x26')](handleEntityNotFound(_0x408e67,null))[_0xf6c9('0x26')](respondWithResult(_0x408e67,null))[_0xf6c9('0x3a')](handleError(_0x408e67,null));};exports[_0xf6c9('0x25')]=function(_0x5ac2a0,_0x332a6e){if(_0x5ac2a0['body']['id']){delete _0x5ac2a0['body']['id'];}return db[_0xf6c9('0x2c')]['find']({'where':{'id':_0x5ac2a0[_0xf6c9('0x2b')]['id']}})['then'](handleEntityNotFound(_0x332a6e,null))[_0xf6c9('0x26')](saveUpdates(_0x5ac2a0[_0xf6c9('0x3b')],null))[_0xf6c9('0x26')](respondWithResult(_0x332a6e,null))['catch'](handleError(_0x332a6e,null));};exports[_0xf6c9('0x3c')]=function(_0xb4fe87,_0x12b22a){return db[_0xf6c9('0x2c')]['find']({'where':{'id':_0xb4fe87[_0xf6c9('0x2b')]['id']}})['then'](handleEntityNotFound(_0x12b22a,null))[_0xf6c9('0x26')](removeEntity(_0x12b22a,null))['catch'](handleError(_0x12b22a,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa6eb=['chat_applications','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','moment','bluebird','request-promise','rimraf','../../config/environment','./chatApplication.attributes','exports','define'];(function(_0x2ff762,_0x342c0b){var _0x158b02=function(_0x13c38e){while(--_0x13c38e){_0x2ff762['push'](_0x2ff762['shift']());}};_0x158b02(++_0x342c0b);}(_0xa6eb,0xc6));var _0xba6e=function(_0x455606,_0x1dd272){_0x455606=_0x455606-0x0;var _0x52ae80=_0xa6eb[_0x455606];return _0x52ae80;};'use strict';var _=require(_0xba6e('0x0'));var util=require(_0xba6e('0x1'));var logger=require(_0xba6e('0x2'))(_0xba6e('0x3'));var moment=require(_0xba6e('0x4'));var BPromise=require(_0xba6e('0x5'));var rp=require(_0xba6e('0x6'));var fs=require('fs');var path=require('path');var rimraf=require(_0xba6e('0x7'));var config=require(_0xba6e('0x8'));var attributes=require(_0xba6e('0x9'));module[_0xba6e('0xa')]=function(_0x397443,_0x24a1d6){return _0x397443[_0xba6e('0xb')]('ChatApplication',attributes,{'tableName':_0xba6e('0xc'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0xba6e('0xd'),'collate':_0xba6e('0xe')});};
\ No newline at end of file
+var _0x27a2=['bluebird','request-promise','rimraf','../../config/environment','./chatApplication.attributes','exports','define','ChatApplication','utf8mb4','lodash','util','api','moment'];(function(_0x246f95,_0x298cba){var _0x25d46f=function(_0x62b3c0){while(--_0x62b3c0){_0x246f95['push'](_0x246f95['shift']());}};_0x25d46f(++_0x298cba);}(_0x27a2,0x182));var _0x227a=function(_0x10a196,_0x58731){_0x10a196=_0x10a196-0x0;var _0x6fd881=_0x27a2[_0x10a196];return _0x6fd881;};'use strict';var _=require(_0x227a('0x0'));var util=require(_0x227a('0x1'));var logger=require('../../config/logger')(_0x227a('0x2'));var moment=require(_0x227a('0x3'));var BPromise=require(_0x227a('0x4'));var rp=require(_0x227a('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x227a('0x6'));var config=require(_0x227a('0x7'));var attributes=require(_0x227a('0x8'));module[_0x227a('0x9')]=function(_0x144acd,_0x23a39a){return _0x144acd[_0x227a('0xa')](_0x227a('0xb'),attributes,{'tableName':'chat_applications','paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x227a('0xc'),'collate':'utf8mb4_unicode_ci'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5db5=['lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','request','then','info','ChatApplication,\x20%s,\x20%s','request\x20sent','debug','ChatApplication,\x20%s,\x20%s,\x20%s','stringify','error','message'];(function(_0x6a86df,_0x54ffeb){var _0x22c60e=function(_0x2abb02){while(--_0x2abb02){_0x6a86df['push'](_0x6a86df['shift']());}};_0x22c60e(++_0x54ffeb);}(_0x5db5,0x1b5));var _0x55db=function(_0x1c9535,_0x1c1daf){_0x1c9535=_0x1c9535-0x0;var _0x31f915=_0x5db5[_0x1c9535];return _0x31f915;};'use strict';var _=require(_0x55db('0x0'));var util=require(_0x55db('0x1'));var moment=require(_0x55db('0x2'));var BPromise=require(_0x55db('0x3'));var rs=require(_0x55db('0x4'));var fs=require('fs');var Redis=require(_0x55db('0x5'));var db=require(_0x55db('0x6'))['db'];var utils=require(_0x55db('0x7'));var logger=require('../../config/logger')(_0x55db('0x8'));var config=require(_0x55db('0x9'));var jayson=require(_0x55db('0xa'));var client=jayson[_0x55db('0xb')][_0x55db('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x705f9d,_0x572a2c,_0x1bee44){return new BPromise(function(_0x3b8bb2,_0xa95430){return client[_0x55db('0xd')](_0x705f9d,_0x1bee44)[_0x55db('0xe')](function(_0x12bea6){logger[_0x55db('0xf')](_0x55db('0x10'),_0x572a2c,_0x55db('0x11'));logger[_0x55db('0x12')](_0x55db('0x13'),_0x572a2c,_0x55db('0x11'),JSON[_0x55db('0x14')](_0x12bea6));if(_0x12bea6[_0x55db('0x15')]){if(_0x12bea6[_0x55db('0x15')]['code']===0x1f4){logger[_0x55db('0x15')](_0x55db('0x10'),_0x572a2c,_0x12bea6['error'][_0x55db('0x16')]);return _0xa95430(_0x12bea6[_0x55db('0x15')]['message']);}logger[_0x55db('0x15')](_0x55db('0x10'),_0x572a2c,_0x12bea6[_0x55db('0x15')][_0x55db('0x16')]);return _0x3b8bb2(_0x12bea6[_0x55db('0x15')][_0x55db('0x16')]);}else{logger['info'](_0x55db('0x10'),_0x572a2c,_0x55db('0x11'));_0x3b8bb2(_0x12bea6['result'][_0x55db('0x16')]);}})['catch'](function(_0x5be6a9){logger[_0x55db('0x15')](_0x55db('0x10'),_0x572a2c,_0x5be6a9);_0xa95430(_0x5be6a9);});});}
\ No newline at end of file
+var _0xcb41=['catch','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','request','then','ChatApplication,\x20%s,\x20%s','request\x20sent','debug','ChatApplication,\x20%s,\x20%s,\x20%s','code','error','message','info','result'];(function(_0x150792,_0x187824){var _0x5f2974=function(_0x2791d5){while(--_0x2791d5){_0x150792['push'](_0x150792['shift']());}};_0x5f2974(++_0x187824);}(_0xcb41,0x161));var _0x1cb4=function(_0x4ba9fb,_0x50aaa6){_0x4ba9fb=_0x4ba9fb-0x0;var _0x1ad2a7=_0xcb41[_0x4ba9fb];return _0x1ad2a7;};'use strict';var _=require('lodash');var util=require(_0x1cb4('0x0'));var moment=require('moment');var BPromise=require(_0x1cb4('0x1'));var rs=require(_0x1cb4('0x2'));var fs=require('fs');var Redis=require(_0x1cb4('0x3'));var db=require(_0x1cb4('0x4'))['db'];var utils=require(_0x1cb4('0x5'));var logger=require(_0x1cb4('0x6'))(_0x1cb4('0x7'));var config=require('../../config/environment');var jayson=require(_0x1cb4('0x8'));var client=jayson[_0x1cb4('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x1029d9,_0x1de38d,_0x1714f7){return new BPromise(function(_0x16bca4,_0x3fe98c){return client[_0x1cb4('0xa')](_0x1029d9,_0x1714f7)[_0x1cb4('0xb')](function(_0x21ac41){logger['info'](_0x1cb4('0xc'),_0x1de38d,_0x1cb4('0xd'));logger[_0x1cb4('0xe')](_0x1cb4('0xf'),_0x1de38d,'request\x20sent',JSON['stringify'](_0x21ac41));if(_0x21ac41['error']){if(_0x21ac41['error'][_0x1cb4('0x10')]===0x1f4){logger[_0x1cb4('0x11')](_0x1cb4('0xc'),_0x1de38d,_0x21ac41['error'][_0x1cb4('0x12')]);return _0x3fe98c(_0x21ac41['error']['message']);}logger[_0x1cb4('0x11')]('ChatApplication,\x20%s,\x20%s',_0x1de38d,_0x21ac41['error'][_0x1cb4('0x12')]);return _0x16bca4(_0x21ac41[_0x1cb4('0x11')][_0x1cb4('0x12')]);}else{logger[_0x1cb4('0x13')](_0x1cb4('0xc'),_0x1de38d,_0x1cb4('0xd'));_0x16bca4(_0x21ac41[_0x1cb4('0x14')][_0x1cb4('0x12')]);}})[_0x1cb4('0x15')](function(_0xb4b4eb){logger[_0x1cb4('0x11')](_0x1cb4('0xc'),_0x1de38d,_0xb4b4eb);_0x3fe98c(_0xb4b4eb);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1ced=['fs-extra','../../config/environment','./chatApplication.controller','get','/:id','isAuthenticated','delete','destroy','util','path','express'];(function(_0x5dd891,_0x2e017a){var _0x2cf85d=function(_0x2f5998){while(--_0x2f5998){_0x5dd891['push'](_0x5dd891['shift']());}};_0x2cf85d(++_0x2e017a);}(_0x1ced,0x17e));var _0xd1ce=function(_0x2b1762,_0x14b5ea){_0x2b1762=_0x2b1762-0x0;var _0x11863e=_0x1ced[_0x2b1762];return _0x11863e;};'use strict';var multer=require('multer');var util=require(_0xd1ce('0x0'));var path=require(_0xd1ce('0x1'));var timeout=require('connect-timeout');var express=require(_0xd1ce('0x2'));var router=express['Router']();var fs_extra=require(_0xd1ce('0x3'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0xd1ce('0x4'));var controller=require(_0xd1ce('0x5'));router[_0xd1ce('0x6')](_0xd1ce('0x7'),auth[_0xd1ce('0x8')](),controller['show']);router['put'](_0xd1ce('0x7'),auth[_0xd1ce('0x8')](),controller['update']);router[_0xd1ce('0x9')](_0xd1ce('0x7'),auth[_0xd1ce('0x8')](),controller[_0xd1ce('0xa')]);module['exports']=router;
\ No newline at end of file
+var _0xaf10=['connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./chatApplication.controller','get','/:id','show','put','isAuthenticated','update','delete','destroy','exports','multer','util'];(function(_0x67525,_0x463204){var _0x40a045=function(_0xdef3fe){while(--_0xdef3fe){_0x67525['push'](_0x67525['shift']());}};_0x40a045(++_0x463204);}(_0xaf10,0xbc));var _0x0af1=function(_0x3fa7d1,_0x571a9e){_0x3fa7d1=_0x3fa7d1-0x0;var _0x3537c0=_0xaf10[_0x3fa7d1];return _0x3537c0;};'use strict';var multer=require(_0x0af1('0x0'));var util=require(_0x0af1('0x1'));var path=require('path');var timeout=require(_0x0af1('0x2'));var express=require(_0x0af1('0x3'));var router=express[_0x0af1('0x4')]();var fs_extra=require(_0x0af1('0x5'));var auth=require(_0x0af1('0x6'));var interaction=require(_0x0af1('0x7'));var config=require(_0x0af1('0x8'));var controller=require(_0x0af1('0x9'));router[_0x0af1('0xa')](_0x0af1('0xb'),auth['isAuthenticated'](),controller[_0x0af1('0xc')]);router[_0x0af1('0xd')](_0x0af1('0xb'),auth[_0x0af1('0xe')](),controller[_0x0af1('0xf')]);router[_0x0af1('0x10')]('/:id',auth[_0x0af1('0xe')](),controller[_0x0af1('0x11')]);module[_0x0af1('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xde83=['sequelize','exports','STRING'];(function(_0x46aff0,_0x122890){var _0x9d78cf=function(_0x3f14cb){while(--_0x3f14cb){_0x46aff0['push'](_0x46aff0['shift']());}};_0x9d78cf(++_0x122890);}(_0xde83,0xe7));var _0x3de8=function(_0x3a0863,_0x4cd5ef){_0x3a0863=_0x3a0863-0x0;var _0x85c557=_0xde83[_0x3a0863];return _0x85c557;};'use strict';var Sequelize=require(_0x3de8('0x0'));module[_0x3de8('0x1')]={'name':{'type':Sequelize[_0x3de8('0x2')],'allowNull':![]},'description':{'type':Sequelize[_0x3de8('0x2')]},'write':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]}};
\ No newline at end of file
+var _0x21cd=['STRING','BOOLEAN','sequelize','exports'];(function(_0x5f5b62,_0x5246f9){var _0x5adce8=function(_0xc9198b){while(--_0xc9198b){_0x5f5b62['push'](_0x5f5b62['shift']());}};_0x5adce8(++_0x5246f9);}(_0x21cd,0x6a));var _0xd21c=function(_0x19950b,_0x53d0d7){_0x19950b=_0x19950b-0x0;var _0x3c6b41=_0x21cd[_0x19950b];return _0x3c6b41;};'use strict';var Sequelize=require(_0xd21c('0x0'));module[_0xd21c('0x1')]={'name':{'type':Sequelize[_0xd21c('0x2')],'allowNull':![]},'description':{'type':Sequelize[_0xd21c('0x2')]},'write':{'type':Sequelize[_0xd21c('0x3')],'defaultValue':!![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6812=['findOne','removeMembers','addMessage','ChatGroupId','$gte','split','getMessages','eml-format','zip-dir','request-promise','bluebird','util','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','redis','localhost','socket.io-emitter','./chatGroup.socket','sendStatus','status','json','offset','limit','undefined','count','set','Content-Range','apply','reject','save','update','then','end','error','name','send','index','map','ChatGroup','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','includeAll','findAll','rows','show','params','include','options','find','catch','create','body','destroy','describe','getUnread','ChatInternalMessage','toInteger','addMembers','ids','omit','getMembers'];(function(_0x55180b,_0x409854){var _0x399264=function(_0x5186d0){while(--_0x5186d0){_0x55180b['push'](_0x55180b['shift']());}};_0x399264(++_0x409854);}(_0x6812,0x1d8));var _0x2681=function(_0x262acc,_0x3d3f31){_0x262acc=_0x262acc-0x0;var _0x5c1cf3=_0x6812[_0x262acc];return _0x5c1cf3;};'use strict';var emlformat=require(_0x2681('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x2681('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x2681('0x2'));var moment=require('moment');var BPromise=require(_0x2681('0x3'));var Mustache=require('mustache');var util=require(_0x2681('0x4'));var path=require('path');var sox=require('sox');var csv=require(_0x2681('0x5'));var ejs=require(_0x2681('0x6'));var fs=require('fs');var fs_extra=require(_0x2681('0x7'));var _=require('lodash');var squel=require(_0x2681('0x8'));var crypto=require(_0x2681('0x9'));var jsforce=require(_0x2681('0xa'));var deskjs=require(_0x2681('0xb'));var toCsv=require('to-csv');var querystring=require(_0x2681('0xc'));var Papa=require('papaparse');var Redis=require(_0x2681('0xd'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x2681('0xe'));var hardwareService=require(_0x2681('0xf'));var logger=require(_0x2681('0x10'))(_0x2681('0x11'));var utils=require(_0x2681('0x12'));var config=require(_0x2681('0x13'));var licenseUtil=require('../../config/license/util');var db=require(_0x2681('0x14'))['db'];config[_0x2681('0x15')]=_['defaults'](config[_0x2681('0x15')],{'host':_0x2681('0x16'),'port':0x18eb});var socket=require(_0x2681('0x17'))(new Redis(config['redis']));require(_0x2681('0x18'))['register'](socket);function respondWithStatusCode(_0x18eba1,_0x3b7f40){_0x3b7f40=_0x3b7f40||0xcc;return function(_0x522c57){if(_0x522c57){return _0x18eba1[_0x2681('0x19')](_0x3b7f40);}return _0x18eba1[_0x2681('0x1a')](_0x3b7f40)['end']();};}function respondWithResult(_0x51ea41,_0x2ed5b3){_0x2ed5b3=_0x2ed5b3||0xc8;return function(_0x1b2a67){if(_0x1b2a67){return _0x51ea41['status'](_0x2ed5b3)[_0x2681('0x1b')](_0x1b2a67);}};}function respondWithFilteredResult(_0x7988b3,_0x256a10){return function(_0x5bf534){if(_0x5bf534){var _0x982377=typeof _0x256a10[_0x2681('0x1c')]==='undefined'&&typeof _0x256a10[_0x2681('0x1d')]===_0x2681('0x1e');var _0x302ff4=_0x5bf534[_0x2681('0x1f')];var _0x5cc4de=_0x982377?0x0:_0x256a10[_0x2681('0x1c')];var _0x2e5541=_0x982377?_0x5bf534[_0x2681('0x1f')]:_0x256a10[_0x2681('0x1c')]+_0x256a10[_0x2681('0x1d')];var _0x41a343;if(_0x2e5541>=_0x302ff4){_0x2e5541=_0x302ff4;_0x41a343=0xc8;}else{_0x41a343=0xce;}_0x7988b3[_0x2681('0x1a')](_0x41a343);return _0x7988b3[_0x2681('0x20')](_0x2681('0x21'),_0x5cc4de+'-'+_0x2e5541+'/'+_0x302ff4)['json'](_0x5bf534);}return null;};}function patchUpdates(_0x1548f8){return function(_0x4b1e1c){try{jsonpatch[_0x2681('0x22')](_0x4b1e1c,_0x1548f8,!![]);}catch(_0x4ec98e){return BPromise[_0x2681('0x23')](_0x4ec98e);}return _0x4b1e1c[_0x2681('0x24')]();};}function saveUpdates(_0x1ce800,_0x1647c8){return function(_0x35803f){if(_0x35803f){return _0x35803f[_0x2681('0x25')](_0x1ce800)[_0x2681('0x26')](function(_0xcbe136){return _0xcbe136;});}return null;};}function removeEntity(_0x15e1a1,_0x45d0e9){return function(_0x2da281){if(_0x2da281){return _0x2da281['destroy']()['then'](function(){_0x15e1a1['status'](0xcc)[_0x2681('0x27')]();});}};}function handleEntityNotFound(_0x362e3f,_0x484dc3){return function(_0x13ab99){if(!_0x13ab99){_0x362e3f['sendStatus'](0x194);}return _0x13ab99;};}function handleError(_0x45bcf5,_0x3360ce){_0x3360ce=_0x3360ce||0x1f4;return function(_0x224e4f){logger[_0x2681('0x28')](_0x224e4f['stack']);if(_0x224e4f[_0x2681('0x29')]){delete _0x224e4f[_0x2681('0x29')];}_0x45bcf5[_0x2681('0x1a')](_0x3360ce)[_0x2681('0x2a')](_0x224e4f);};}exports[_0x2681('0x2b')]=function(_0xb3d15a,_0x5034e9){var _0x35512b={},_0x5c86cf={},_0x1630d5={'count':0x0,'rows':[]};var _0x17d74e=_[_0x2681('0x2c')](db[_0x2681('0x2d')][_0x2681('0x2e')],function(_0x1da79){return{'name':_0x1da79[_0x2681('0x2f')],'type':_0x1da79[_0x2681('0x30')][_0x2681('0x31')]};});_0x5c86cf[_0x2681('0x32')]=_[_0x2681('0x2c')](_0x17d74e,_0x2681('0x29'));_0x5c86cf['query']=_[_0x2681('0x33')](_0xb3d15a[_0x2681('0x34')]);_0x5c86cf[_0x2681('0x35')]=_[_0x2681('0x36')](_0x5c86cf[_0x2681('0x32')],_0x5c86cf['query']);_0x35512b[_0x2681('0x37')]=_[_0x2681('0x36')](_0x5c86cf[_0x2681('0x32')],qs['fields'](_0xb3d15a['query'][_0x2681('0x38')]));_0x35512b[_0x2681('0x37')]=_0x35512b[_0x2681('0x37')][_0x2681('0x39')]?_0x35512b['attributes']:_0x5c86cf[_0x2681('0x32')];if(!_0xb3d15a['query'][_0x2681('0x3a')](_0x2681('0x3b'))){_0x35512b['limit']=qs[_0x2681('0x1d')](_0xb3d15a[_0x2681('0x34')][_0x2681('0x1d')]);_0x35512b[_0x2681('0x1c')]=qs[_0x2681('0x1c')](_0xb3d15a[_0x2681('0x34')][_0x2681('0x1c')]);}_0x35512b[_0x2681('0x3c')]=qs[_0x2681('0x3d')](_0xb3d15a[_0x2681('0x34')][_0x2681('0x3d')]);_0x35512b[_0x2681('0x3e')]=qs['filters'](_[_0x2681('0x3f')](_0xb3d15a[_0x2681('0x34')],_0x5c86cf[_0x2681('0x35')]),_0x17d74e);if(_0xb3d15a['query'][_0x2681('0x40')]){_0x35512b['where']=_['merge'](_0x35512b[_0x2681('0x3e')],{'$or':_[_0x2681('0x2c')](_0x17d74e,function(_0x5f1d62){if(_0x5f1d62[_0x2681('0x30')]!=='VIRTUAL'){var _0x18e06f={};_0x18e06f[_0x5f1d62[_0x2681('0x29')]]={'$like':'%'+_0xb3d15a[_0x2681('0x34')]['filter']+'%'};return _0x18e06f;}})});}_0x35512b=_[_0x2681('0x41')]({},_0x35512b,_0xb3d15a['options']);var _0x50e38e={'where':_0x35512b['where']};return db[_0x2681('0x2d')][_0x2681('0x1f')](_0x50e38e)['then'](function(_0x5b47a0){_0x1630d5[_0x2681('0x1f')]=_0x5b47a0;if(_0xb3d15a[_0x2681('0x34')][_0x2681('0x42')]){_0x35512b['include']=[{'all':!![]}];}return db[_0x2681('0x2d')][_0x2681('0x43')](_0x35512b);})[_0x2681('0x26')](function(_0x26a1db){_0x1630d5[_0x2681('0x44')]=_0x26a1db;return _0x1630d5;})[_0x2681('0x26')](respondWithFilteredResult(_0x5034e9,_0x35512b))['catch'](handleError(_0x5034e9,null));};exports[_0x2681('0x45')]=function(_0x45ee4a,_0xa5ade7){var _0x5ea579={'raw':!![],'where':{'id':_0x45ee4a[_0x2681('0x46')]['id']}},_0x10859c={};_0x10859c[_0x2681('0x32')]=_['keys'](db[_0x2681('0x2d')][_0x2681('0x2e')]);_0x10859c[_0x2681('0x34')]=_['keys'](_0x45ee4a[_0x2681('0x34')]);_0x10859c['filters']=_[_0x2681('0x36')](_0x10859c[_0x2681('0x32')],_0x10859c[_0x2681('0x34')]);_0x5ea579[_0x2681('0x37')]=_[_0x2681('0x36')](_0x10859c[_0x2681('0x32')],qs[_0x2681('0x38')](_0x45ee4a[_0x2681('0x34')]['fields']));_0x5ea579[_0x2681('0x37')]=_0x5ea579[_0x2681('0x37')][_0x2681('0x39')]?_0x5ea579[_0x2681('0x37')]:_0x10859c[_0x2681('0x32')];if(_0x45ee4a[_0x2681('0x34')]['includeAll']){_0x5ea579[_0x2681('0x47')]=[{'all':!![]}];}_0x5ea579=_['merge']({},_0x5ea579,_0x45ee4a[_0x2681('0x48')]);return db[_0x2681('0x2d')][_0x2681('0x49')](_0x5ea579)[_0x2681('0x26')](handleEntityNotFound(_0xa5ade7,null))['then'](respondWithResult(_0xa5ade7,null))[_0x2681('0x4a')](handleError(_0xa5ade7,null));};exports[_0x2681('0x4b')]=function(_0xf9d383,_0x13eb1c){return db[_0x2681('0x2d')][_0x2681('0x4b')](_0xf9d383[_0x2681('0x4c')],{})['then'](respondWithResult(_0x13eb1c,0xc9))[_0x2681('0x4a')](handleError(_0x13eb1c,null));};exports['update']=function(_0x2e05e6,_0x3a79d8){if(_0x2e05e6[_0x2681('0x4c')]['id']){delete _0x2e05e6[_0x2681('0x4c')]['id'];}return db[_0x2681('0x2d')][_0x2681('0x49')]({'where':{'id':_0x2e05e6[_0x2681('0x46')]['id']}})[_0x2681('0x26')](handleEntityNotFound(_0x3a79d8,null))['then'](saveUpdates(_0x2e05e6[_0x2681('0x4c')],null))[_0x2681('0x26')](respondWithResult(_0x3a79d8,null))[_0x2681('0x4a')](handleError(_0x3a79d8,null));};exports[_0x2681('0x4d')]=function(_0x2c6bc5,_0x332df0){return db['ChatGroup']['find']({'where':{'id':_0x2c6bc5[_0x2681('0x46')]['id']}})[_0x2681('0x26')](handleEntityNotFound(_0x332df0,null))['then'](removeEntity(_0x332df0,null))[_0x2681('0x4a')](handleError(_0x332df0,null));};exports['describe']=function(_0x7df74b,_0x288a6b){return db[_0x2681('0x2d')][_0x2681('0x4e')]()[_0x2681('0x26')](respondWithResult(_0x288a6b,null))[_0x2681('0x4a')](handleError(_0x288a6b,null));};exports[_0x2681('0x4f')]=function(_0x26cce8,_0x3ff7e5,_0x4b5c25){return db[_0x2681('0x50')][_0x2681('0x1f')]({'where':{'ChatGroupId':_0x26cce8['params']['id'],'ToId':_0x26cce8['user']['id'],'read':![]}})[_0x2681('0x26')](function(_0x2e1120){return{'id':_[_0x2681('0x51')](_0x26cce8[_0x2681('0x46')]['id']),'count':_0x2e1120};})[_0x2681('0x26')](respondWithResult(_0x3ff7e5,null))[_0x2681('0x4a')](handleError(_0x3ff7e5,null));};exports['addMembers']=function(_0x517aa9,_0x2349b9,_0x517298){return db['ChatGroup'][_0x2681('0x49')]({'where':{'id':_0x517aa9['params']['id']}})[_0x2681('0x26')](handleEntityNotFound(_0x2349b9,null))['then'](function(_0x526475){if(_0x526475){return _0x526475[_0x2681('0x52')](_0x517aa9[_0x2681('0x4c')][_0x2681('0x53')],_[_0x2681('0x54')](_0x517aa9[_0x2681('0x4c')],[_0x2681('0x53'),'id'])||{});}})['then'](respondWithResult(_0x2349b9,null))[_0x2681('0x4a')](handleError(_0x2349b9,null));};exports[_0x2681('0x55')]=function(_0x3c0993,_0xa4ef88,_0x21548e){var _0x1d2c11={};var _0x11be34={};var _0x5c596d;var _0x9c60a3;return db[_0x2681('0x2d')][_0x2681('0x56')]({'where':{'id':_0x3c0993[_0x2681('0x46')]['id']}})[_0x2681('0x26')](handleEntityNotFound(_0xa4ef88,null))[_0x2681('0x26')](function(_0x2736ab){if(_0x2736ab){_0x5c596d=_0x2736ab;_0x11be34[_0x2681('0x32')]=_['keys'](db['User']['rawAttributes']);_0x11be34[_0x2681('0x34')]=_[_0x2681('0x33')](_0x3c0993[_0x2681('0x34')]);_0x11be34[_0x2681('0x35')]=_[_0x2681('0x36')](_0x11be34['model'],_0x11be34[_0x2681('0x34')]);_0x1d2c11[_0x2681('0x37')]=_[_0x2681('0x36')](_0x11be34[_0x2681('0x32')],qs['fields'](_0x3c0993[_0x2681('0x34')][_0x2681('0x38')]));_0x1d2c11['attributes']=_0x1d2c11['attributes']['length']?_0x1d2c11['attributes']:_0x11be34[_0x2681('0x32')];_0x1d2c11[_0x2681('0x3c')]=qs['sort'](_0x3c0993[_0x2681('0x34')][_0x2681('0x3d')]);_0x1d2c11['where']=qs[_0x2681('0x35')](_[_0x2681('0x3f')](_0x3c0993[_0x2681('0x34')],_0x11be34[_0x2681('0x35')]));if(_0x3c0993[_0x2681('0x34')][_0x2681('0x40')]){_0x1d2c11['where']=_[_0x2681('0x41')](_0x1d2c11[_0x2681('0x3e')],{'$or':_[_0x2681('0x2c')](_0x1d2c11[_0x2681('0x37')],function(_0x1bccbe){var _0x383ee1={};_0x383ee1[_0x1bccbe]={'$like':'%'+_0x3c0993[_0x2681('0x34')][_0x2681('0x40')]+'%'};return _0x383ee1;})});}_0x1d2c11=_[_0x2681('0x41')]({},_0x1d2c11,_0x3c0993['options']);return _0x5c596d[_0x2681('0x55')](_0x1d2c11);}})[_0x2681('0x26')](function(_0x2a02e1){if(_0x2a02e1){_0x9c60a3=_0x2a02e1[_0x2681('0x39')];if(!_0x3c0993[_0x2681('0x34')][_0x2681('0x3a')]('nolimit')){_0x1d2c11[_0x2681('0x1d')]=qs[_0x2681('0x1d')](_0x3c0993[_0x2681('0x34')][_0x2681('0x1d')]);_0x1d2c11['offset']=qs[_0x2681('0x1c')](_0x3c0993[_0x2681('0x34')]['offset']);}return _0x5c596d[_0x2681('0x55')](_0x1d2c11);}})[_0x2681('0x26')](function(_0x4d949a){if(_0x4d949a){return _0x4d949a?{'count':_0x9c60a3,'rows':_0x4d949a}:null;}})[_0x2681('0x26')](respondWithResult(_0xa4ef88,null))[_0x2681('0x4a')](handleError(_0xa4ef88,null));};exports[_0x2681('0x57')]=function(_0x1fff68,_0x595e51,_0x8499f4){return db[_0x2681('0x2d')]['find']({'where':{'id':_0x1fff68[_0x2681('0x46')]['id']}})[_0x2681('0x26')](handleEntityNotFound(_0x595e51,null))[_0x2681('0x26')](function(_0x2129a8){if(_0x2129a8){return _0x2129a8[_0x2681('0x57')](_0x1fff68['query'][_0x2681('0x53')]);}})[_0x2681('0x26')](respondWithStatusCode(_0x595e51,null))['catch'](handleError(_0x595e51,null));};exports[_0x2681('0x58')]=function(_0x12da49,_0x50cfb1,_0x3a66c1){if(_0x12da49[_0x2681('0x4c')]['id']){delete _0x12da49['body']['id'];}return db[_0x2681('0x2d')]['find']({'where':{'id':_0x12da49['params']['id']}})[_0x2681('0x26')](handleEntityNotFound(_0x50cfb1,null))[_0x2681('0x26')](function(_0x2e5b82){if(_0x2e5b82){_0x12da49[_0x2681('0x4c')][_0x2681('0x59')]=_0x2e5b82['id'];return db[_0x2681('0x50')][_0x2681('0x4b')](_0x12da49[_0x2681('0x4c')]);}})['then'](respondWithResult(_0x50cfb1,null))[_0x2681('0x4a')](handleError(_0x50cfb1,null));};exports['getMessages']=function(_0x130471,_0x3eda0c,_0x199297){var _0x507eef={};var _0x1ccd42={};var _0x25a80c;var _0x57f457;return db[_0x2681('0x2d')][_0x2681('0x56')]({'where':{'id':_0x130471[_0x2681('0x46')]['id']}})[_0x2681('0x26')](handleEntityNotFound(_0x3eda0c,null))['then'](function(_0x2710c3){if(_0x2710c3){_0x25a80c=_0x2710c3;_0x1ccd42['model']=_['keys'](db[_0x2681('0x50')][_0x2681('0x2e')]);_0x1ccd42[_0x2681('0x34')]=_[_0x2681('0x33')](_0x130471[_0x2681('0x34')]);_0x1ccd42[_0x2681('0x35')]=_[_0x2681('0x36')](_0x1ccd42[_0x2681('0x32')],_0x1ccd42[_0x2681('0x34')]);_0x507eef[_0x2681('0x37')]=_['intersection'](_0x1ccd42['model'],qs['fields'](_0x130471['query'][_0x2681('0x38')]));_0x507eef[_0x2681('0x37')]=_0x507eef['attributes']['length']?_0x507eef[_0x2681('0x37')]:_0x1ccd42[_0x2681('0x32')];_0x507eef[_0x2681('0x3c')]=qs[_0x2681('0x3d')](_0x130471[_0x2681('0x34')][_0x2681('0x3d')]);_0x507eef['where']=qs[_0x2681('0x35')](_[_0x2681('0x3f')](_0x130471[_0x2681('0x34')],_0x1ccd42[_0x2681('0x35')]));if(_0x130471[_0x2681('0x34')][_0x2681('0x40')]){_0x507eef[_0x2681('0x3e')]=_[_0x2681('0x41')](_0x507eef[_0x2681('0x3e')],{'$or':_[_0x2681('0x2c')](_0x507eef[_0x2681('0x37')],function(_0x528f34){var _0x42cb81={};_0x42cb81[_0x528f34]={'$like':'%'+_0x130471[_0x2681('0x34')][_0x2681('0x40')]+'%'};return _0x42cb81;})});}if(_0x130471[_0x2681('0x34')][_0x2681('0x5a')]){var _0x2178e1=_0x130471[_0x2681('0x34')][_0x2681('0x5a')][_0x2681('0x5b')](',');var _0x288a9a={};_0x288a9a[_0x2178e1[0x0]]={'$gte':moment(_0x2178e1[0x1])['format']('YYYY-MM-DD\x20HH:mm:ss')};_0x507eef[_0x2681('0x3e')]=_[_0x2681('0x41')](_0x507eef['where'],_0x288a9a);}_0x507eef=_[_0x2681('0x41')]({},_0x507eef,_0x130471['options']);return _0x25a80c[_0x2681('0x5c')](_0x507eef);}})[_0x2681('0x26')](function(_0x3fccc6){if(_0x3fccc6){_0x57f457=_0x3fccc6[_0x2681('0x39')];if(!_0x130471[_0x2681('0x34')][_0x2681('0x3a')](_0x2681('0x3b'))){_0x507eef[_0x2681('0x1d')]=qs['limit'](_0x130471[_0x2681('0x34')][_0x2681('0x1d')]);_0x507eef['offset']=qs['offset'](_0x130471[_0x2681('0x34')][_0x2681('0x1c')]);}return _0x25a80c[_0x2681('0x5c')](_0x507eef);}})[_0x2681('0x26')](function(_0x499abf){if(_0x499abf){return _0x499abf?{'count':_0x57f457,'rows':_0x499abf}:null;}})[_0x2681('0x26')](respondWithResult(_0x3eda0c,null))[_0x2681('0x4a')](handleError(_0x3eda0c,null));};
\ No newline at end of file
+var _0x0d9c=['eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','to-csv','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','./chatGroup.socket','register','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','then','destroy','error','name','send','map','rawAttributes','key','model','query','keys','filters','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','ChatGroup','includeAll','include','findAll','rows','show','params','intersection','options','find','catch','create','body','update','describe','getUnread','ChatInternalMessage','user','toInteger','addMembers','ids','getMembers','findOne','User','removeMembers','addMessage','ChatGroupId','getMessages','$gte','split','format','YYYY-MM-DD\x20HH:mm:ss'];(function(_0x597e8e,_0x738d69){var _0x3001cf=function(_0x5094b4){while(--_0x5094b4){_0x597e8e['push'](_0x597e8e['shift']());}};_0x3001cf(++_0x738d69);}(_0x0d9c,0x120));var _0xc0d9=function(_0x4af5d9,_0x1198c8){_0x4af5d9=_0x4af5d9-0x0;var _0xf6a1fd=_0x0d9c[_0x4af5d9];return _0xf6a1fd;};'use strict';var emlformat=require(_0xc0d9('0x0'));var rimraf=require(_0xc0d9('0x1'));var zipdir=require(_0xc0d9('0x2'));var jsonpatch=require(_0xc0d9('0x3'));var rp=require(_0xc0d9('0x4'));var moment=require(_0xc0d9('0x5'));var BPromise=require('bluebird');var Mustache=require(_0xc0d9('0x6'));var util=require(_0xc0d9('0x7'));var path=require(_0xc0d9('0x8'));var sox=require('sox');var csv=require(_0xc0d9('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0xc0d9('0xa'));var crypto=require(_0xc0d9('0xb'));var jsforce=require(_0xc0d9('0xc'));var deskjs=require(_0xc0d9('0xd'));var toCsv=require(_0xc0d9('0x9'));var querystring=require(_0xc0d9('0xe'));var Papa=require('papaparse');var Redis=require(_0xc0d9('0xf'));var authService=require(_0xc0d9('0x10'));var qs=require(_0xc0d9('0x11'));var as=require(_0xc0d9('0x12'));var hardwareService=require(_0xc0d9('0x13'));var logger=require('../../config/logger')(_0xc0d9('0x14'));var utils=require('../../config/utils');var config=require(_0xc0d9('0x15'));var licenseUtil=require(_0xc0d9('0x16'));var db=require(_0xc0d9('0x17'))['db'];config[_0xc0d9('0x18')]=_[_0xc0d9('0x19')](config[_0xc0d9('0x18')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0xc0d9('0x1a'))[_0xc0d9('0x1b')](socket);function respondWithStatusCode(_0x58ff03,_0x6fce15){_0x6fce15=_0x6fce15||0xcc;return function(_0x2b30fb){if(_0x2b30fb){return _0x58ff03[_0xc0d9('0x1c')](_0x6fce15);}return _0x58ff03[_0xc0d9('0x1d')](_0x6fce15)[_0xc0d9('0x1e')]();};}function respondWithResult(_0xc529c6,_0x146509){_0x146509=_0x146509||0xc8;return function(_0x696b32){if(_0x696b32){return _0xc529c6['status'](_0x146509)[_0xc0d9('0x1f')](_0x696b32);}};}function respondWithFilteredResult(_0x393994,_0x5c55f8){return function(_0x19ed79){if(_0x19ed79){var _0x2972c3=typeof _0x5c55f8[_0xc0d9('0x20')]===_0xc0d9('0x21')&&typeof _0x5c55f8[_0xc0d9('0x22')]===_0xc0d9('0x21');var _0x53ba08=_0x19ed79[_0xc0d9('0x23')];var _0x523d90=_0x2972c3?0x0:_0x5c55f8['offset'];var _0x35c804=_0x2972c3?_0x19ed79[_0xc0d9('0x23')]:_0x5c55f8[_0xc0d9('0x20')]+_0x5c55f8['limit'];var _0x47d3d0;if(_0x35c804>=_0x53ba08){_0x35c804=_0x53ba08;_0x47d3d0=0xc8;}else{_0x47d3d0=0xce;}_0x393994['status'](_0x47d3d0);return _0x393994[_0xc0d9('0x24')](_0xc0d9('0x25'),_0x523d90+'-'+_0x35c804+'/'+_0x53ba08)['json'](_0x19ed79);}return null;};}function patchUpdates(_0x460b85){return function(_0x566911){try{jsonpatch[_0xc0d9('0x26')](_0x566911,_0x460b85,!![]);}catch(_0x29c2c5){return BPromise[_0xc0d9('0x27')](_0x29c2c5);}return _0x566911['save']();};}function saveUpdates(_0x254424,_0x190c3d){return function(_0x396c2b){if(_0x396c2b){return _0x396c2b['update'](_0x254424)[_0xc0d9('0x28')](function(_0x44a858){return _0x44a858;});}return null;};}function removeEntity(_0x473b17,_0x30271a){return function(_0x891e26){if(_0x891e26){return _0x891e26[_0xc0d9('0x29')]()[_0xc0d9('0x28')](function(){_0x473b17['status'](0xcc)[_0xc0d9('0x1e')]();});}};}function handleEntityNotFound(_0x43a937,_0x5d5ee0){return function(_0x266055){if(!_0x266055){_0x43a937['sendStatus'](0x194);}return _0x266055;};}function handleError(_0x381128,_0x2b6aa7){_0x2b6aa7=_0x2b6aa7||0x1f4;return function(_0x29fd55){logger[_0xc0d9('0x2a')](_0x29fd55['stack']);if(_0x29fd55['name']){delete _0x29fd55[_0xc0d9('0x2b')];}_0x381128['status'](_0x2b6aa7)[_0xc0d9('0x2c')](_0x29fd55);};}exports['index']=function(_0x2dd752,_0x2085da){var _0x12272e={},_0x3cd001={},_0x6d6fc1={'count':0x0,'rows':[]};var _0x588844=_[_0xc0d9('0x2d')](db['ChatGroup'][_0xc0d9('0x2e')],function(_0x5d017c){return{'name':_0x5d017c['fieldName'],'type':_0x5d017c['type'][_0xc0d9('0x2f')]};});_0x3cd001[_0xc0d9('0x30')]=_['map'](_0x588844,_0xc0d9('0x2b'));_0x3cd001[_0xc0d9('0x31')]=_[_0xc0d9('0x32')](_0x2dd752[_0xc0d9('0x31')]);_0x3cd001[_0xc0d9('0x33')]=_['intersection'](_0x3cd001[_0xc0d9('0x30')],_0x3cd001['query']);_0x12272e[_0xc0d9('0x34')]=_['intersection'](_0x3cd001['model'],qs[_0xc0d9('0x35')](_0x2dd752[_0xc0d9('0x31')][_0xc0d9('0x35')]));_0x12272e[_0xc0d9('0x34')]=_0x12272e[_0xc0d9('0x34')][_0xc0d9('0x36')]?_0x12272e[_0xc0d9('0x34')]:_0x3cd001[_0xc0d9('0x30')];if(!_0x2dd752[_0xc0d9('0x31')][_0xc0d9('0x37')](_0xc0d9('0x38'))){_0x12272e[_0xc0d9('0x22')]=qs['limit'](_0x2dd752[_0xc0d9('0x31')]['limit']);_0x12272e[_0xc0d9('0x20')]=qs[_0xc0d9('0x20')](_0x2dd752[_0xc0d9('0x31')][_0xc0d9('0x20')]);}_0x12272e[_0xc0d9('0x39')]=qs['sort'](_0x2dd752['query'][_0xc0d9('0x3a')]);_0x12272e[_0xc0d9('0x3b')]=qs[_0xc0d9('0x33')](_[_0xc0d9('0x3c')](_0x2dd752[_0xc0d9('0x31')],_0x3cd001['filters']),_0x588844);if(_0x2dd752[_0xc0d9('0x31')][_0xc0d9('0x3d')]){_0x12272e[_0xc0d9('0x3b')]=_[_0xc0d9('0x3e')](_0x12272e[_0xc0d9('0x3b')],{'$or':_['map'](_0x588844,function(_0x5394b3){if(_0x5394b3['type']!==_0xc0d9('0x3f')){var _0x564f1f={};_0x564f1f[_0x5394b3[_0xc0d9('0x2b')]]={'$like':'%'+_0x2dd752[_0xc0d9('0x31')]['filter']+'%'};return _0x564f1f;}})});}_0x12272e=_[_0xc0d9('0x3e')]({},_0x12272e,_0x2dd752['options']);var _0x35ee5d={'where':_0x12272e['where']};return db[_0xc0d9('0x40')][_0xc0d9('0x23')](_0x35ee5d)['then'](function(_0x446c96){_0x6d6fc1[_0xc0d9('0x23')]=_0x446c96;if(_0x2dd752[_0xc0d9('0x31')][_0xc0d9('0x41')]){_0x12272e[_0xc0d9('0x42')]=[{'all':!![]}];}return db[_0xc0d9('0x40')][_0xc0d9('0x43')](_0x12272e);})[_0xc0d9('0x28')](function(_0x3e2ac0){_0x6d6fc1[_0xc0d9('0x44')]=_0x3e2ac0;return _0x6d6fc1;})['then'](respondWithFilteredResult(_0x2085da,_0x12272e))['catch'](handleError(_0x2085da,null));};exports[_0xc0d9('0x45')]=function(_0x41e6cc,_0x1df2e6){var _0x53c355={'raw':!![],'where':{'id':_0x41e6cc[_0xc0d9('0x46')]['id']}},_0x497622={};_0x497622['model']=_[_0xc0d9('0x32')](db[_0xc0d9('0x40')][_0xc0d9('0x2e')]);_0x497622[_0xc0d9('0x31')]=_['keys'](_0x41e6cc['query']);_0x497622['filters']=_[_0xc0d9('0x47')](_0x497622[_0xc0d9('0x30')],_0x497622['query']);_0x53c355[_0xc0d9('0x34')]=_['intersection'](_0x497622[_0xc0d9('0x30')],qs[_0xc0d9('0x35')](_0x41e6cc['query']['fields']));_0x53c355[_0xc0d9('0x34')]=_0x53c355['attributes'][_0xc0d9('0x36')]?_0x53c355[_0xc0d9('0x34')]:_0x497622[_0xc0d9('0x30')];if(_0x41e6cc['query'][_0xc0d9('0x41')]){_0x53c355[_0xc0d9('0x42')]=[{'all':!![]}];}_0x53c355=_['merge']({},_0x53c355,_0x41e6cc[_0xc0d9('0x48')]);return db[_0xc0d9('0x40')][_0xc0d9('0x49')](_0x53c355)[_0xc0d9('0x28')](handleEntityNotFound(_0x1df2e6,null))[_0xc0d9('0x28')](respondWithResult(_0x1df2e6,null))[_0xc0d9('0x4a')](handleError(_0x1df2e6,null));};exports[_0xc0d9('0x4b')]=function(_0x350e80,_0x1c6fe6){return db[_0xc0d9('0x40')][_0xc0d9('0x4b')](_0x350e80[_0xc0d9('0x4c')],{})[_0xc0d9('0x28')](respondWithResult(_0x1c6fe6,0xc9))['catch'](handleError(_0x1c6fe6,null));};exports[_0xc0d9('0x4d')]=function(_0x2864bf,_0xb50872){if(_0x2864bf[_0xc0d9('0x4c')]['id']){delete _0x2864bf[_0xc0d9('0x4c')]['id'];}return db['ChatGroup'][_0xc0d9('0x49')]({'where':{'id':_0x2864bf[_0xc0d9('0x46')]['id']}})[_0xc0d9('0x28')](handleEntityNotFound(_0xb50872,null))['then'](saveUpdates(_0x2864bf[_0xc0d9('0x4c')],null))[_0xc0d9('0x28')](respondWithResult(_0xb50872,null))[_0xc0d9('0x4a')](handleError(_0xb50872,null));};exports[_0xc0d9('0x29')]=function(_0x4f632d,_0x37b8d6){return db[_0xc0d9('0x40')][_0xc0d9('0x49')]({'where':{'id':_0x4f632d[_0xc0d9('0x46')]['id']}})['then'](handleEntityNotFound(_0x37b8d6,null))['then'](removeEntity(_0x37b8d6,null))[_0xc0d9('0x4a')](handleError(_0x37b8d6,null));};exports[_0xc0d9('0x4e')]=function(_0x11487a,_0x3946a0){return db[_0xc0d9('0x40')][_0xc0d9('0x4e')]()[_0xc0d9('0x28')](respondWithResult(_0x3946a0,null))['catch'](handleError(_0x3946a0,null));};exports[_0xc0d9('0x4f')]=function(_0x1a3f2d,_0x221b64,_0x586167){return db[_0xc0d9('0x50')][_0xc0d9('0x23')]({'where':{'ChatGroupId':_0x1a3f2d[_0xc0d9('0x46')]['id'],'ToId':_0x1a3f2d[_0xc0d9('0x51')]['id'],'read':![]}})[_0xc0d9('0x28')](function(_0x4cecaf){return{'id':_[_0xc0d9('0x52')](_0x1a3f2d['params']['id']),'count':_0x4cecaf};})[_0xc0d9('0x28')](respondWithResult(_0x221b64,null))[_0xc0d9('0x4a')](handleError(_0x221b64,null));};exports[_0xc0d9('0x53')]=function(_0x3ef8bc,_0xc6412e,_0x205d1b){return db[_0xc0d9('0x40')][_0xc0d9('0x49')]({'where':{'id':_0x3ef8bc['params']['id']}})[_0xc0d9('0x28')](handleEntityNotFound(_0xc6412e,null))[_0xc0d9('0x28')](function(_0x2dba1b){if(_0x2dba1b){return _0x2dba1b[_0xc0d9('0x53')](_0x3ef8bc['body'][_0xc0d9('0x54')],_['omit'](_0x3ef8bc[_0xc0d9('0x4c')],[_0xc0d9('0x54'),'id'])||{});}})[_0xc0d9('0x28')](respondWithResult(_0xc6412e,null))[_0xc0d9('0x4a')](handleError(_0xc6412e,null));};exports[_0xc0d9('0x55')]=function(_0x7a7015,_0x16b2bc,_0x449eac){var _0x14562d={};var _0x50cebc={};var _0xe8a74b;var _0x555dfe;return db[_0xc0d9('0x40')][_0xc0d9('0x56')]({'where':{'id':_0x7a7015[_0xc0d9('0x46')]['id']}})[_0xc0d9('0x28')](handleEntityNotFound(_0x16b2bc,null))[_0xc0d9('0x28')](function(_0x40b543){if(_0x40b543){_0xe8a74b=_0x40b543;_0x50cebc[_0xc0d9('0x30')]=_[_0xc0d9('0x32')](db[_0xc0d9('0x57')][_0xc0d9('0x2e')]);_0x50cebc['query']=_[_0xc0d9('0x32')](_0x7a7015[_0xc0d9('0x31')]);_0x50cebc['filters']=_[_0xc0d9('0x47')](_0x50cebc[_0xc0d9('0x30')],_0x50cebc[_0xc0d9('0x31')]);_0x14562d['attributes']=_[_0xc0d9('0x47')](_0x50cebc[_0xc0d9('0x30')],qs[_0xc0d9('0x35')](_0x7a7015[_0xc0d9('0x31')]['fields']));_0x14562d[_0xc0d9('0x34')]=_0x14562d[_0xc0d9('0x34')][_0xc0d9('0x36')]?_0x14562d[_0xc0d9('0x34')]:_0x50cebc[_0xc0d9('0x30')];_0x14562d[_0xc0d9('0x39')]=qs[_0xc0d9('0x3a')](_0x7a7015['query'][_0xc0d9('0x3a')]);_0x14562d[_0xc0d9('0x3b')]=qs[_0xc0d9('0x33')](_[_0xc0d9('0x3c')](_0x7a7015[_0xc0d9('0x31')],_0x50cebc[_0xc0d9('0x33')]));if(_0x7a7015[_0xc0d9('0x31')][_0xc0d9('0x3d')]){_0x14562d['where']=_[_0xc0d9('0x3e')](_0x14562d[_0xc0d9('0x3b')],{'$or':_[_0xc0d9('0x2d')](_0x14562d[_0xc0d9('0x34')],function(_0x48c9f3){var _0x13b1d2={};_0x13b1d2[_0x48c9f3]={'$like':'%'+_0x7a7015['query'][_0xc0d9('0x3d')]+'%'};return _0x13b1d2;})});}_0x14562d=_['merge']({},_0x14562d,_0x7a7015[_0xc0d9('0x48')]);return _0xe8a74b[_0xc0d9('0x55')](_0x14562d);}})['then'](function(_0x4bc72a){if(_0x4bc72a){_0x555dfe=_0x4bc72a[_0xc0d9('0x36')];if(!_0x7a7015['query']['hasOwnProperty']('nolimit')){_0x14562d[_0xc0d9('0x22')]=qs[_0xc0d9('0x22')](_0x7a7015[_0xc0d9('0x31')]['limit']);_0x14562d['offset']=qs[_0xc0d9('0x20')](_0x7a7015['query']['offset']);}return _0xe8a74b[_0xc0d9('0x55')](_0x14562d);}})[_0xc0d9('0x28')](function(_0x7fd03e){if(_0x7fd03e){return _0x7fd03e?{'count':_0x555dfe,'rows':_0x7fd03e}:null;}})[_0xc0d9('0x28')](respondWithResult(_0x16b2bc,null))[_0xc0d9('0x4a')](handleError(_0x16b2bc,null));};exports[_0xc0d9('0x58')]=function(_0x43cae9,_0x5060a4,_0x27d5e1){return db[_0xc0d9('0x40')]['find']({'where':{'id':_0x43cae9['params']['id']}})[_0xc0d9('0x28')](handleEntityNotFound(_0x5060a4,null))['then'](function(_0x21c63d){if(_0x21c63d){return _0x21c63d[_0xc0d9('0x58')](_0x43cae9[_0xc0d9('0x31')][_0xc0d9('0x54')]);}})['then'](respondWithStatusCode(_0x5060a4,null))[_0xc0d9('0x4a')](handleError(_0x5060a4,null));};exports[_0xc0d9('0x59')]=function(_0x49c229,_0x50cb96,_0xb75431){if(_0x49c229[_0xc0d9('0x4c')]['id']){delete _0x49c229[_0xc0d9('0x4c')]['id'];}return db[_0xc0d9('0x40')]['find']({'where':{'id':_0x49c229[_0xc0d9('0x46')]['id']}})[_0xc0d9('0x28')](handleEntityNotFound(_0x50cb96,null))[_0xc0d9('0x28')](function(_0x4fb99c){if(_0x4fb99c){_0x49c229[_0xc0d9('0x4c')][_0xc0d9('0x5a')]=_0x4fb99c['id'];return db['ChatInternalMessage'][_0xc0d9('0x4b')](_0x49c229[_0xc0d9('0x4c')]);}})['then'](respondWithResult(_0x50cb96,null))['catch'](handleError(_0x50cb96,null));};exports[_0xc0d9('0x5b')]=function(_0x548f3f,_0x311fde,_0x477446){var _0x3ce8f7={};var _0x386335={};var _0xeb5453;var _0x1974db;return db[_0xc0d9('0x40')]['findOne']({'where':{'id':_0x548f3f[_0xc0d9('0x46')]['id']}})[_0xc0d9('0x28')](handleEntityNotFound(_0x311fde,null))['then'](function(_0x249e6d){if(_0x249e6d){_0xeb5453=_0x249e6d;_0x386335[_0xc0d9('0x30')]=_[_0xc0d9('0x32')](db[_0xc0d9('0x50')][_0xc0d9('0x2e')]);_0x386335[_0xc0d9('0x31')]=_['keys'](_0x548f3f[_0xc0d9('0x31')]);_0x386335['filters']=_['intersection'](_0x386335[_0xc0d9('0x30')],_0x386335[_0xc0d9('0x31')]);_0x3ce8f7['attributes']=_['intersection'](_0x386335[_0xc0d9('0x30')],qs[_0xc0d9('0x35')](_0x548f3f[_0xc0d9('0x31')][_0xc0d9('0x35')]));_0x3ce8f7[_0xc0d9('0x34')]=_0x3ce8f7[_0xc0d9('0x34')][_0xc0d9('0x36')]?_0x3ce8f7[_0xc0d9('0x34')]:_0x386335[_0xc0d9('0x30')];_0x3ce8f7[_0xc0d9('0x39')]=qs[_0xc0d9('0x3a')](_0x548f3f[_0xc0d9('0x31')][_0xc0d9('0x3a')]);_0x3ce8f7[_0xc0d9('0x3b')]=qs[_0xc0d9('0x33')](_[_0xc0d9('0x3c')](_0x548f3f[_0xc0d9('0x31')],_0x386335['filters']));if(_0x548f3f[_0xc0d9('0x31')][_0xc0d9('0x3d')]){_0x3ce8f7['where']=_[_0xc0d9('0x3e')](_0x3ce8f7[_0xc0d9('0x3b')],{'$or':_['map'](_0x3ce8f7[_0xc0d9('0x34')],function(_0x14a40d){var _0x213e33={};_0x213e33[_0x14a40d]={'$like':'%'+_0x548f3f['query'][_0xc0d9('0x3d')]+'%'};return _0x213e33;})});}if(_0x548f3f[_0xc0d9('0x31')][_0xc0d9('0x5c')]){var _0x48ebc4=_0x548f3f['query'][_0xc0d9('0x5c')][_0xc0d9('0x5d')](',');var _0x2fcfdc={};_0x2fcfdc[_0x48ebc4[0x0]]={'$gte':moment(_0x48ebc4[0x1])[_0xc0d9('0x5e')](_0xc0d9('0x5f'))};_0x3ce8f7[_0xc0d9('0x3b')]=_['merge'](_0x3ce8f7[_0xc0d9('0x3b')],_0x2fcfdc);}_0x3ce8f7=_[_0xc0d9('0x3e')]({},_0x3ce8f7,_0x548f3f[_0xc0d9('0x48')]);return _0xeb5453[_0xc0d9('0x5b')](_0x3ce8f7);}})[_0xc0d9('0x28')](function(_0x475cb4){if(_0x475cb4){_0x1974db=_0x475cb4[_0xc0d9('0x36')];if(!_0x548f3f['query'][_0xc0d9('0x37')](_0xc0d9('0x38'))){_0x3ce8f7[_0xc0d9('0x22')]=qs[_0xc0d9('0x22')](_0x548f3f[_0xc0d9('0x31')][_0xc0d9('0x22')]);_0x3ce8f7[_0xc0d9('0x20')]=qs[_0xc0d9('0x20')](_0x548f3f[_0xc0d9('0x31')][_0xc0d9('0x20')]);}return _0xeb5453[_0xc0d9('0x5b')](_0x3ce8f7);}})[_0xc0d9('0x28')](function(_0x509114){if(_0x509114){return _0x509114?{'count':_0x1974db,'rows':_0x509114}:null;}})[_0xc0d9('0x28')](respondWithResult(_0x311fde,null))['catch'](handleError(_0x311fde,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc743=['emit','hasOwnProperty','hook','exports','events','../../mysqldb','ChatGroup','setMaxListeners','update','remove'];(function(_0xfae23b,_0x2be4ba){var _0x200640=function(_0x4ae258){while(--_0x4ae258){_0xfae23b['push'](_0xfae23b['shift']());}};_0x200640(++_0x2be4ba);}(_0xc743,0xa4));var _0x3c74=function(_0x324d57,_0x306c13){_0x324d57=_0x324d57-0x0;var _0x4c81d8=_0xc743[_0x324d57];return _0x4c81d8;};'use strict';var EventEmitter=require(_0x3c74('0x0'));var ChatGroup=require(_0x3c74('0x1'))['db'][_0x3c74('0x2')];var ChatGroupEvents=new EventEmitter();ChatGroupEvents[_0x3c74('0x3')](0x0);var events={'afterCreate':'save','afterUpdate':_0x3c74('0x4'),'afterDestroy':_0x3c74('0x5')};function emitEvent(_0x462e55){return function(_0x5f20a2,_0x32dcee,_0x3d022a){ChatGroupEvents[_0x3c74('0x6')](_0x462e55+':'+_0x5f20a2['id'],_0x5f20a2);ChatGroupEvents[_0x3c74('0x6')](_0x462e55,_0x5f20a2);_0x3d022a(null);};}for(var e in events){if(events[_0x3c74('0x7')](e)){var event=events[e];ChatGroup[_0x3c74('0x8')](e,emitEvent(event));}}module[_0x3c74('0x9')]=ChatGroupEvents;
\ No newline at end of file
+var _0x7d8a=['ChatGroup','setMaxListeners','save','update','remove','emit','hasOwnProperty','exports','events','../../mysqldb'];(function(_0x298ed3,_0x4ab5e1){var _0x5aad28=function(_0x168687){while(--_0x168687){_0x298ed3['push'](_0x298ed3['shift']());}};_0x5aad28(++_0x4ab5e1);}(_0x7d8a,0x1ca));var _0xa7d8=function(_0x266618,_0x18f637){_0x266618=_0x266618-0x0;var _0x54dbf5=_0x7d8a[_0x266618];return _0x54dbf5;};'use strict';var EventEmitter=require(_0xa7d8('0x0'));var ChatGroup=require(_0xa7d8('0x1'))['db'][_0xa7d8('0x2')];var ChatGroupEvents=new EventEmitter();ChatGroupEvents[_0xa7d8('0x3')](0x0);var events={'afterCreate':_0xa7d8('0x4'),'afterUpdate':_0xa7d8('0x5'),'afterDestroy':_0xa7d8('0x6')};function emitEvent(_0x2b5af1){return function(_0x14a7d3,_0x199cdd,_0x1162e1){ChatGroupEvents[_0xa7d8('0x7')](_0x2b5af1+':'+_0x14a7d3['id'],_0x14a7d3);ChatGroupEvents[_0xa7d8('0x7')](_0x2b5af1,_0x14a7d3);_0x1162e1(null);};}for(var e in events){if(events[_0xa7d8('0x8')](e)){var event=events[e];ChatGroup['hook'](e,emitEvent(event));}}module[_0xa7d8('0x9')]=ChatGroupEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x248a=['util','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./chatGroup.attributes','exports','define','ChatGroup'];(function(_0x410847,_0x21f524){var _0x5b6d91=function(_0x25db76){while(--_0x25db76){_0x410847['push'](_0x410847['shift']());}};_0x5b6d91(++_0x21f524);}(_0x248a,0xfc));var _0xa248=function(_0x93ab92,_0x37a2a5){_0x93ab92=_0x93ab92-0x0;var _0xd6f827=_0x248a[_0x93ab92];return _0xd6f827;};'use strict';var _=require('lodash');var util=require(_0xa248('0x0'));var logger=require('../../config/logger')(_0xa248('0x1'));var moment=require(_0xa248('0x2'));var BPromise=require(_0xa248('0x3'));var rp=require(_0xa248('0x4'));var fs=require('fs');var path=require(_0xa248('0x5'));var rimraf=require(_0xa248('0x6'));var config=require(_0xa248('0x7'));var attributes=require(_0xa248('0x8'));module[_0xa248('0x9')]=function(_0x5247dd,_0x4a57a4){return _0x5247dd[_0xa248('0xa')](_0xa248('0xb'),attributes,{'tableName':'chat_groups','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xf243=['../../config/environment','./chatGroup.attributes','exports','define','ChatGroup','chat_groups','lodash','api','moment','path','rimraf'];(function(_0x5991d7,_0x35d4a2){var _0x1430fd=function(_0x432316){while(--_0x432316){_0x5991d7['push'](_0x5991d7['shift']());}};_0x1430fd(++_0x35d4a2);}(_0xf243,0x187));var _0x3f24=function(_0x401b8e,_0x334bb2){_0x401b8e=_0x401b8e-0x0;var _0x533f3e=_0xf243[_0x401b8e];return _0x533f3e;};'use strict';var _=require(_0x3f24('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x3f24('0x1'));var moment=require(_0x3f24('0x2'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x3f24('0x3'));var rimraf=require(_0x3f24('0x4'));var config=require(_0x3f24('0x5'));var attributes=require(_0x3f24('0x6'));module[_0x3f24('0x7')]=function(_0x2bf771,_0x38d8bd){return _0x2bf771[_0x3f24('0x8')](_0x3f24('0x9'),attributes,{'tableName':_0x3f24('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1b94=['../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','redis','defaults','localhost','socket.io-emitter','./chatGroup.socket','register','request','ChatGroup,\x20%s,\x20%s','debug','ChatGroup,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','lodash','util','moment','bluebird','randomstring','../../mysqldb'];(function(_0x289fbf,_0x3ce4fa){var _0x7cb48e=function(_0x578332){while(--_0x578332){_0x289fbf['push'](_0x289fbf['shift']());}};_0x7cb48e(++_0x3ce4fa);}(_0x1b94,0x1f2));var _0x41b9=function(_0x819464,_0x46fc91){_0x819464=_0x819464-0x0;var _0x49dcc0=_0x1b94[_0x819464];return _0x49dcc0;};'use strict';var _=require(_0x41b9('0x0'));var util=require(_0x41b9('0x1'));var moment=require(_0x41b9('0x2'));var BPromise=require(_0x41b9('0x3'));var rs=require(_0x41b9('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x41b9('0x5'))['db'];var utils=require(_0x41b9('0x6'));var logger=require(_0x41b9('0x7'))('rpc');var config=require(_0x41b9('0x8'));var jayson=require(_0x41b9('0x9'));var client=jayson[_0x41b9('0xa')]['http']({'port':0x232a});config[_0x41b9('0xb')]=_[_0x41b9('0xc')](config[_0x41b9('0xb')],{'host':_0x41b9('0xd'),'port':0x18eb});var socket=require(_0x41b9('0xe'))(new Redis(config['redis']));require(_0x41b9('0xf'))[_0x41b9('0x10')](socket);function respondWithRpcPromise(_0x4bca88,_0xb0dd9f,_0x386807){return new BPromise(function(_0x4ed664,_0x2ac417){return client[_0x41b9('0x11')](_0x4bca88,_0x386807)['then'](function(_0x11bb6f){logger['info'](_0x41b9('0x12'),_0xb0dd9f,'request\x20sent');logger[_0x41b9('0x13')](_0x41b9('0x14'),_0xb0dd9f,_0x41b9('0x15'),JSON[_0x41b9('0x16')](_0x11bb6f));if(_0x11bb6f[_0x41b9('0x17')]){if(_0x11bb6f['error'][_0x41b9('0x18')]===0x1f4){logger[_0x41b9('0x17')]('ChatGroup,\x20%s,\x20%s',_0xb0dd9f,_0x11bb6f[_0x41b9('0x17')][_0x41b9('0x19')]);return _0x2ac417(_0x11bb6f[_0x41b9('0x17')][_0x41b9('0x19')]);}logger['error']('ChatGroup,\x20%s,\x20%s',_0xb0dd9f,_0x11bb6f['error'][_0x41b9('0x19')]);return _0x4ed664(_0x11bb6f[_0x41b9('0x17')]['message']);}else{logger['info'](_0x41b9('0x12'),_0xb0dd9f,_0x41b9('0x15'));_0x4ed664(_0x11bb6f[_0x41b9('0x1a')][_0x41b9('0x19')]);}})[_0x41b9('0x1b')](function(_0x475aa8){logger['error'](_0x41b9('0x12'),_0xb0dd9f,_0x475aa8);_0x2ac417(_0x475aa8);});});}
\ No newline at end of file
+var _0x530e=['code','message','result','catch','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','client','http','redis','localhost','socket.io-emitter','./chatGroup.socket','register','request','ChatGroup,\x20%s,\x20%s','request\x20sent','stringify','error'];(function(_0x4b075e,_0x57874c){var _0x31385c=function(_0x3ab6ef){while(--_0x3ab6ef){_0x4b075e['push'](_0x4b075e['shift']());}};_0x31385c(++_0x57874c);}(_0x530e,0x10c));var _0xe530=function(_0x314f33,_0x4edf95){_0x314f33=_0x314f33-0x0;var _0x133af3=_0x530e[_0x314f33];return _0x133af3;};'use strict';var _=require('lodash');var util=require(_0xe530('0x0'));var moment=require('moment');var BPromise=require(_0xe530('0x1'));var rs=require(_0xe530('0x2'));var fs=require('fs');var Redis=require(_0xe530('0x3'));var db=require(_0xe530('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0xe530('0x5'))(_0xe530('0x6'));var config=require(_0xe530('0x7'));var jayson=require('jayson/promise');var client=jayson[_0xe530('0x8')][_0xe530('0x9')]({'port':0x232a});config[_0xe530('0xa')]=_['defaults'](config[_0xe530('0xa')],{'host':_0xe530('0xb'),'port':0x18eb});var socket=require(_0xe530('0xc'))(new Redis(config[_0xe530('0xa')]));require(_0xe530('0xd'))[_0xe530('0xe')](socket);function respondWithRpcPromise(_0x421a1e,_0x3b83cd,_0x8e3b7f){return new BPromise(function(_0x3c6fc5,_0x53cbf9){return client[_0xe530('0xf')](_0x421a1e,_0x8e3b7f)['then'](function(_0x54bdde){logger['info'](_0xe530('0x10'),_0x3b83cd,_0xe530('0x11'));logger['debug']('ChatGroup,\x20%s,\x20%s,\x20%s',_0x3b83cd,_0xe530('0x11'),JSON[_0xe530('0x12')](_0x54bdde));if(_0x54bdde[_0xe530('0x13')]){if(_0x54bdde[_0xe530('0x13')][_0xe530('0x14')]===0x1f4){logger['error'](_0xe530('0x10'),_0x3b83cd,_0x54bdde['error'][_0xe530('0x15')]);return _0x53cbf9(_0x54bdde[_0xe530('0x13')][_0xe530('0x15')]);}logger['error'](_0xe530('0x10'),_0x3b83cd,_0x54bdde[_0xe530('0x13')][_0xe530('0x15')]);return _0x3c6fc5(_0x54bdde[_0xe530('0x13')]['message']);}else{logger['info'](_0xe530('0x10'),_0x3b83cd,_0xe530('0x11'));_0x3c6fc5(_0x54bdde[_0xe530('0x16')][_0xe530('0x15')]);}})[_0xe530('0x17')](function(_0x18fbdb){logger[_0xe530('0x13')](_0xe530('0x10'),_0x3b83cd,_0x18fbdb);_0x53cbf9(_0x18fbdb);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4e5e=['emit','removeListener','register','save','update'];(function(_0x40a650,_0x422fe3){var _0x3535cf=function(_0x4f9de3){while(--_0x4f9de3){_0x40a650['push'](_0x40a650['shift']());}};_0x3535cf(++_0x422fe3);}(_0x4e5e,0x1ac));var _0xe4e5=function(_0x2495f9,_0x4a4fdf){_0x2495f9=_0x2495f9-0x0;var _0x42fb86=_0x4e5e[_0x2495f9];return _0x42fb86;};'use strict';var ChatGroupEvents=require('./chatGroup.events');var events=[_0xe4e5('0x0'),'remove',_0xe4e5('0x1')];function createListener(_0x5930c6,_0x13c173){return function(_0x4fac17){_0x13c173[_0xe4e5('0x2')](_0x5930c6,_0x4fac17);};}function removeListener(_0xb90b23,_0x2fb1fa){return function(){ChatGroupEvents[_0xe4e5('0x3')](_0xb90b23,_0x2fb1fa);};}exports[_0xe4e5('0x4')]=function(_0x48accf){for(var _0x437859=0x0,_0x33b348=events['length'];_0x437859<_0x33b348;_0x437859++){var _0x4006c7=events[_0x437859];var _0x4a1861=createListener('chatGroup:'+_0x4006c7,_0x48accf);ChatGroupEvents['on'](_0x4006c7,_0x4a1861);}};
\ No newline at end of file
+var _0x1cc1=['save','remove','update','removeListener','register','./chatGroup.events'];(function(_0x4436f3,_0x53e245){var _0x3fe521=function(_0x4dc9eb){while(--_0x4dc9eb){_0x4436f3['push'](_0x4436f3['shift']());}};_0x3fe521(++_0x53e245);}(_0x1cc1,0x6b));var _0x11cc=function(_0x24b925,_0x2b0d94){_0x24b925=_0x24b925-0x0;var _0x2e83ca=_0x1cc1[_0x24b925];return _0x2e83ca;};'use strict';var ChatGroupEvents=require(_0x11cc('0x0'));var events=[_0x11cc('0x1'),_0x11cc('0x2'),_0x11cc('0x3')];function createListener(_0x2be7ba,_0x586e67){return function(_0x165ef4){_0x586e67['emit'](_0x2be7ba,_0x165ef4);};}function removeListener(_0x2132ea,_0x5c0a19){return function(){ChatGroupEvents[_0x11cc('0x4')](_0x2132ea,_0x5c0a19);};}exports[_0x11cc('0x5')]=function(_0x2b6e4f){for(var _0x17fa77=0x0,_0x2b03a2=events['length'];_0x17fa77<_0x2b03a2;_0x17fa77++){var _0x56727a=events[_0x17fa77];var _0x521d3e=createListener('chatGroup:'+_0x56727a,_0x2b6e4f);ChatGroupEvents['on'](_0x56727a,_0x521d3e);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x609c=['create','/:id/members','addMembers','addMessage','put','update','destroy','delete','removeMembers','multer','path','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./chatGroup.controller','get','isAuthenticated','/describe','/:id','show','getUnread','getMembers','/:id/messages','post'];(function(_0x31603f,_0x5240f3){var _0x4d0d60=function(_0x318f72){while(--_0x318f72){_0x31603f['push'](_0x31603f['shift']());}};_0x4d0d60(++_0x5240f3);}(_0x609c,0x10d));var _0xc609=function(_0x500c7b,_0x145825){_0x500c7b=_0x500c7b-0x0;var _0x52bee1=_0x609c[_0x500c7b];return _0x52bee1;};'use strict';var multer=require(_0xc609('0x0'));var util=require('util');var path=require(_0xc609('0x1'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0xc609('0x2')]();var fs_extra=require(_0xc609('0x3'));var auth=require(_0xc609('0x4'));var interaction=require(_0xc609('0x5'));var config=require(_0xc609('0x6'));var controller=require(_0xc609('0x7'));router[_0xc609('0x8')]('/',auth[_0xc609('0x9')](),controller['index']);router['get'](_0xc609('0xa'),auth[_0xc609('0x9')](),controller['describe']);router[_0xc609('0x8')](_0xc609('0xb'),auth[_0xc609('0x9')](),controller[_0xc609('0xc')]);router['get']('/:id/unread',auth[_0xc609('0x9')](),controller[_0xc609('0xd')]);router[_0xc609('0x8')]('/:id/members',auth['isAuthenticated'](),controller[_0xc609('0xe')]);router[_0xc609('0x8')](_0xc609('0xf'),auth[_0xc609('0x9')](),controller['getMessages']);router[_0xc609('0x10')]('/',auth['isAuthenticated'](),controller[_0xc609('0x11')]);router[_0xc609('0x10')](_0xc609('0x12'),auth[_0xc609('0x9')](),controller[_0xc609('0x13')]);router[_0xc609('0x10')]('/:id/messages',auth[_0xc609('0x9')](),controller[_0xc609('0x14')]);router[_0xc609('0x15')](_0xc609('0xb'),auth['isAuthenticated'](),controller[_0xc609('0x16')]);router['delete'](_0xc609('0xb'),auth[_0xc609('0x9')](),controller[_0xc609('0x17')]);router[_0xc609('0x18')](_0xc609('0x12'),auth['isAuthenticated'](),controller[_0xc609('0x19')]);module['exports']=router;
\ No newline at end of file
+var _0xfa92=['/:id/unread','getUnread','getMembers','/:id/messages','getMessages','post','create','/:id/members','addMembers','put','update','delete','destroy','removeMembers','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./chatGroup.controller','get','isAuthenticated','index','/describe','describe','/:id','show'];(function(_0x1e53ca,_0x2692ed){var _0x55e658=function(_0x2194c5){while(--_0x2194c5){_0x1e53ca['push'](_0x1e53ca['shift']());}};_0x55e658(++_0x2692ed);}(_0xfa92,0x1bc));var _0x2fa9=function(_0xdd8b78,_0x482813){_0xdd8b78=_0xdd8b78-0x0;var _0x2a3e2b=_0xfa92[_0xdd8b78];return _0x2a3e2b;};'use strict';var multer=require(_0x2fa9('0x0'));var util=require(_0x2fa9('0x1'));var path=require(_0x2fa9('0x2'));var timeout=require(_0x2fa9('0x3'));var express=require(_0x2fa9('0x4'));var router=express[_0x2fa9('0x5')]();var fs_extra=require(_0x2fa9('0x6'));var auth=require(_0x2fa9('0x7'));var interaction=require(_0x2fa9('0x8'));var config=require(_0x2fa9('0x9'));var controller=require(_0x2fa9('0xa'));router[_0x2fa9('0xb')]('/',auth[_0x2fa9('0xc')](),controller[_0x2fa9('0xd')]);router[_0x2fa9('0xb')](_0x2fa9('0xe'),auth['isAuthenticated'](),controller[_0x2fa9('0xf')]);router[_0x2fa9('0xb')](_0x2fa9('0x10'),auth[_0x2fa9('0xc')](),controller[_0x2fa9('0x11')]);router['get'](_0x2fa9('0x12'),auth[_0x2fa9('0xc')](),controller[_0x2fa9('0x13')]);router['get']('/:id/members',auth['isAuthenticated'](),controller[_0x2fa9('0x14')]);router[_0x2fa9('0xb')](_0x2fa9('0x15'),auth[_0x2fa9('0xc')](),controller[_0x2fa9('0x16')]);router[_0x2fa9('0x17')]('/',auth['isAuthenticated'](),controller[_0x2fa9('0x18')]);router['post'](_0x2fa9('0x19'),auth[_0x2fa9('0xc')](),controller[_0x2fa9('0x1a')]);router['post'](_0x2fa9('0x15'),auth[_0x2fa9('0xc')](),controller['addMessage']);router[_0x2fa9('0x1b')](_0x2fa9('0x10'),auth[_0x2fa9('0xc')](),controller[_0x2fa9('0x1c')]);router[_0x2fa9('0x1d')](_0x2fa9('0x10'),auth[_0x2fa9('0xc')](),controller[_0x2fa9('0x1e')]);router[_0x2fa9('0x1d')]('/:id/members',auth[_0x2fa9('0xc')](),controller[_0x2fa9('0x1f')]);module[_0x2fa9('0x20')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x34b7=['thumb','STRING','DATE','TEXT','long','out','BOOLEAN','INTEGER','ENUM','star'];(function(_0x1cbf00,_0x4db2e5){var _0x4dcfc=function(_0x3c5caf){while(--_0x3c5caf){_0x1cbf00['push'](_0x1cbf00['shift']());}};_0x4dcfc(++_0x4db2e5);}(_0x34b7,0x196));var _0x734b=function(_0x30a204,_0x48370f){_0x30a204=_0x30a204-0x0;var _0x1a1350=_0x34b7[_0x30a204];return _0x1a1350;};'use strict';var Sequelize=require('sequelize');module['exports']={'closed':{'type':Sequelize[_0x734b('0x0')],'defaultValue':![]},'ratingValue':{'type':Sequelize[_0x734b('0x1')]},'ratingType':{'type':Sequelize[_0x734b('0x2')](_0x734b('0x3'),_0x734b('0x4')),'defaultValue':_0x734b('0x3')},'ratingMessage':{'type':Sequelize['TEXT']},'pathTranscript':{'type':Sequelize['TEXT']},'mailTranscript':{'type':Sequelize[_0x734b('0x5')],'validate':{'isEmail':!![]}},'closedAt':{'type':Sequelize[_0x734b('0x6')]},'disposition':{'type':Sequelize[_0x734b('0x5')]},'secondDisposition':{'type':Sequelize[_0x734b('0x5')]},'thirdDisposition':{'type':Sequelize[_0x734b('0x5')]},'note':{'type':Sequelize[_0x734b('0x5')]},'browserName':{'type':Sequelize['STRING']},'browserVersion':{'type':Sequelize[_0x734b('0x5')]},'osName':{'type':Sequelize[_0x734b('0x5')]},'osVersion':{'type':Sequelize['STRING']},'deviceModel':{'type':Sequelize['STRING']},'deviceVendor':{'type':Sequelize['STRING']},'deviceType':{'type':Sequelize[_0x734b('0x5')]},'referer':{'type':Sequelize['TEXT']},'customerIp':{'type':Sequelize[_0x734b('0x5')]},'formData':{'type':Sequelize[_0x734b('0x7')](_0x734b('0x8'))},'read1stAt':{'type':Sequelize[_0x734b('0x6')]},'lastMsgAt':{'type':Sequelize[_0x734b('0x6')]},'lastMsgDirection':{'type':Sequelize[_0x734b('0x2')]('in',_0x734b('0x9')),'defaultValue':'in','allowNull':![]},'closeReason':{'type':Sequelize[_0x734b('0x5')]},'customerPort':{'type':Sequelize[_0x734b('0x5')]},'vidaooSessionId':{'type':Sequelize[_0x734b('0x7')]},'autoreplyExecuted':{'type':Sequelize[_0x734b('0x0')],'defaultValue':![]}};
\ No newline at end of file
+var _0xc584=['TEXT','DATE','STRING','long','ENUM','out','exports','BOOLEAN','star'];(function(_0x1251c7,_0x283a54){var _0x107cfe=function(_0x54321f){while(--_0x54321f){_0x1251c7['push'](_0x1251c7['shift']());}};_0x107cfe(++_0x283a54);}(_0xc584,0xa8));var _0x4c58=function(_0x3d34da,_0x3abcc1){_0x3d34da=_0x3d34da-0x0;var _0xcf6af8=_0xc584[_0x3d34da];return _0xcf6af8;};'use strict';var Sequelize=require('sequelize');module[_0x4c58('0x0')]={'closed':{'type':Sequelize[_0x4c58('0x1')],'defaultValue':![]},'ratingValue':{'type':Sequelize['INTEGER']},'ratingType':{'type':Sequelize['ENUM'](_0x4c58('0x2'),'thumb'),'defaultValue':_0x4c58('0x2')},'ratingMessage':{'type':Sequelize[_0x4c58('0x3')]},'pathTranscript':{'type':Sequelize[_0x4c58('0x3')]},'mailTranscript':{'type':Sequelize['STRING'],'validate':{'isEmail':!![]}},'closedAt':{'type':Sequelize[_0x4c58('0x4')]},'disposition':{'type':Sequelize[_0x4c58('0x5')]},'secondDisposition':{'type':Sequelize[_0x4c58('0x5')]},'thirdDisposition':{'type':Sequelize[_0x4c58('0x5')]},'note':{'type':Sequelize[_0x4c58('0x5')]},'browserName':{'type':Sequelize['STRING']},'browserVersion':{'type':Sequelize['STRING']},'osName':{'type':Sequelize['STRING']},'osVersion':{'type':Sequelize[_0x4c58('0x5')]},'deviceModel':{'type':Sequelize[_0x4c58('0x5')]},'deviceVendor':{'type':Sequelize[_0x4c58('0x5')]},'deviceType':{'type':Sequelize[_0x4c58('0x5')]},'referer':{'type':Sequelize[_0x4c58('0x3')]},'customerIp':{'type':Sequelize[_0x4c58('0x5')]},'formData':{'type':Sequelize[_0x4c58('0x3')](_0x4c58('0x6'))},'read1stAt':{'type':Sequelize[_0x4c58('0x4')]},'lastMsgAt':{'type':Sequelize[_0x4c58('0x4')]},'lastMsgDirection':{'type':Sequelize[_0x4c58('0x7')]('in',_0x4c58('0x8')),'defaultValue':'in','allowNull':![]},'closeReason':{'type':Sequelize['STRING']},'customerPort':{'type':Sequelize['STRING']},'vidaooSessionId':{'type':Sequelize[_0x4c58('0x3')]},'autoreplyExecuted':{'type':Sequelize['BOOLEAN'],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xef0f=['alias','fullname','agent_fullname','[%s]\x20%s:\x20%s\x0a','MM/DD/YYYY\x20HH:mm:ss','secret','appendFileSync','MailAccount','MailServerOut','Smtp','service','host','port','secure','auth','pass','sendMail','\x22%s\x22\x20<%s>','Mail\x20Transcript','mailTranscript','addMessage','ids','getMessages','YYYY-MM-DD\x20HH:mm:ss','findAll','hasOwnProperty','includeAgent','addTags','setTags','omit','emit','removeTags','download','unix','server','files','tmp','attachments','transcript-%d-%s.zip','firstName','lastName','direction','Account','mkdirSync','Chat','Owner','N.A.','browserName','osName','existsSync','pipe','createWriteStream','renderFile','views','downloadInteraction.ejs','transcript-','createPdfFromHTML','err','eml-format','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../components/export/pdf','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','redis','defaults','localhost','socket.io-emitter','./chatInteraction.socket','jayson/promise','http','then','info','ChatInteraction,\x20%s,\x20%s','request\x20sent','ChatInteraction,\x20%s,\x20%s,\x20%s','stringify','error','message','catch','sendStatus','status','json','offset','undefined','limit','set','Content-Range','save','update','destroy','end','stack','name','send','render','body','contact','interaction','account','Users','TagIds','Tags','split','forEach','push','index','ChatInteraction','rawAttributes','fieldName','key','model','query','filters','intersection','attributes','fields','nolimit','sort','where','pick','select','field','u.id','u.fullname','ui.ChatInteractionId','from','user_has_chat_interactions','left_join','users','chat_interactions','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','a.id\x20=\x20i.ChatWebsiteId','chat_messages','me.ChatInteractionId\x20=\x20i.id','chat_interaction_has_tags','tools_tags','t.id\x20=\x20it.TagId','expr','search','parseSearch','length','find','unreadMessages','value','having','`\x20=\x200','`\x20>\x200','Contact','operator','$substring','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId','type','text','start','Tag','map','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','buildExpression','some','compact','isEmpty','i.ChatWebsiteId\x20IN\x20?','concat','createdAt','$gte','parse','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20=\x20?','read','`unreadMessages`\x20>\x200','tag','isArray','filter','replace','isNumeric','i.id\x20LIKE\x20?','MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','group','i.id','Sequelize','SELECT','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','order','DESC','t.id\x20IN\x20?','i.ChatWebsiteId\x20IS\x20NOT\x20NULL','user','role','agent','getChatWebsites','ChatWebsiteId','sequelize','toString','count','merge','a.key','Account.key','a.mandatoryDisposition','Account.mandatoryDisposition','contactName','Contact.firstName','Contact.lastName','c.phone','Contact.phone','Contact.mobile','c.fax','Contact.fax','o.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.ChatInteractionId\x20IN\x20?','groupBy','ChatInteractionId','all','rows','params','keys','includeAll','include','options','create','describe','createVidaooSession','ChatWebsite','findOne','vidaooEscalation','vidaooTopic','vidaooMetadata','vidaooApiKey','email','isNull','vidaooNote','follow','metadata','ValidationError','join_url','out','ChatMessage','Unable\x20to\x20create\x20Vidaoo\x20session','updateAttributes','CmContact','abandon','abandonInteraction,\x20%s,\x20%s,\x20%s','Interaction\x20already\x20assigned','closed','disposition','attachmentUpload','originalname','basename','file','filename','mimetype','Unauthorized','Attachment','attachId','join','root','server/files/attachments/','offline-chat/','server/files/chat/upload/','format','now','Messages','%s%d','agentAlias','System','customer','Visitor','agentIdentifier','website_alias'];(function(_0x1e48d3,_0x5d8c43){var _0x2852b1=function(_0x11d7b3){while(--_0x11d7b3){_0x1e48d3['push'](_0x1e48d3['shift']());}};_0x2852b1(++_0x5d8c43);}(_0xef0f,0x168));var _0xfef0=function(_0x444963,_0x1ba9c8){_0x444963=_0x444963-0x0;var _0x590cef=_0xef0f[_0x444963];return _0x590cef;};'use strict';var emlformat=require(_0xfef0('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xfef0('0x1'));var jsonpatch=require(_0xfef0('0x2'));var rp=require(_0xfef0('0x3'));var moment=require('moment');var BPromise=require(_0xfef0('0x4'));var Mustache=require(_0xfef0('0x5'));var util=require(_0xfef0('0x6'));var path=require('path');var sox=require(_0xfef0('0x7'));var csv=require(_0xfef0('0x8'));var ejs=require(_0xfef0('0x9'));var fs=require('fs');var fs_extra=require(_0xfef0('0xa'));var _=require(_0xfef0('0xb'));var squel=require(_0xfef0('0xc'));var crypto=require('crypto');var jsforce=require(_0xfef0('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xfef0('0x8'));var querystring=require(_0xfef0('0xe'));var Papa=require(_0xfef0('0xf'));var Redis=require(_0xfef0('0x10'));var authService=require(_0xfef0('0x11'));var qs=require(_0xfef0('0x12'));var as=require(_0xfef0('0x13'));var pdf=require(_0xfef0('0x14'));var hardwareService=require(_0xfef0('0x15'));var logger=require(_0xfef0('0x16'))(_0xfef0('0x17'));var utils=require(_0xfef0('0x18'));var config=require(_0xfef0('0x19'));var licenseUtil=require(_0xfef0('0x1a'));var db=require('../../mysqldb')['db'];config[_0xfef0('0x1b')]=_[_0xfef0('0x1c')](config[_0xfef0('0x1b')],{'host':_0xfef0('0x1d'),'port':0x18eb});var socket=require(_0xfef0('0x1e'))(new Redis(config[_0xfef0('0x1b')]));require(_0xfef0('0x1f'))['register'](socket);var jayson=require(_0xfef0('0x20'));var client=jayson['client']['http']({'port':0x232b});var client9004=jayson['client'][_0xfef0('0x21')]({'port':0x232c});function respondWithRpcPromise(_0x284b6d,_0x3510a7,_0x1bce2f,_0x2a96d9){return new BPromise(function(_0x3f9a6c,_0x155833){var _0x2887e6=_0x2a96d9||client;return _0x2887e6['request'](_0x284b6d,_0x1bce2f)[_0xfef0('0x22')](function(_0x1642cd){logger[_0xfef0('0x23')](_0xfef0('0x24'),_0x3510a7,_0xfef0('0x25'));logger['debug'](_0xfef0('0x26'),_0x3510a7,'request\x20sent',JSON[_0xfef0('0x27')](_0x1642cd));if(_0x1642cd[_0xfef0('0x28')]){if(_0x1642cd[_0xfef0('0x28')]['code']===0x1f4){logger[_0xfef0('0x28')]('ChatInteraction,\x20%s,\x20%s',_0x3510a7,_0x1642cd[_0xfef0('0x28')][_0xfef0('0x29')]);return _0x155833(_0x1642cd['error']['message']);}logger['error'](_0xfef0('0x24'),_0x3510a7,_0x1642cd['error'][_0xfef0('0x29')]);return _0x3f9a6c(_0x1642cd[_0xfef0('0x28')][_0xfef0('0x29')]);}else{logger[_0xfef0('0x23')](_0xfef0('0x24'),_0x3510a7,_0xfef0('0x25'));_0x3f9a6c(_0x1642cd['result']['message']);}})[_0xfef0('0x2a')](function(_0x1ffaa4){logger[_0xfef0('0x28')](_0xfef0('0x24'),_0x3510a7,_0x1ffaa4);_0x155833(_0x1ffaa4);});});}function respondWithStatusCode(_0xab231c,_0xf60f2){_0xf60f2=_0xf60f2||0xcc;return function(_0x5df04f){if(_0x5df04f){return _0xab231c[_0xfef0('0x2b')](_0xf60f2);}return _0xab231c[_0xfef0('0x2c')](_0xf60f2)['end']();};}function respondWithResult(_0x1a6758,_0x394bad){_0x394bad=_0x394bad||0xc8;return function(_0xca0cce){if(_0xca0cce){return _0x1a6758[_0xfef0('0x2c')](_0x394bad)[_0xfef0('0x2d')](_0xca0cce);}};}function respondWithFilteredResult(_0x1ac4a3,_0x3e3c4c){return function(_0x3e026a){if(_0x3e026a){var _0x26cb9a=typeof _0x3e3c4c[_0xfef0('0x2e')]===_0xfef0('0x2f')&&typeof _0x3e3c4c[_0xfef0('0x30')]==='undefined';var _0x445625=_0x3e026a['count'];var _0x4eaf74=_0x26cb9a?0x0:_0x3e3c4c[_0xfef0('0x2e')];var _0x2ae54a=_0x26cb9a?_0x3e026a['count']:_0x3e3c4c['offset']+_0x3e3c4c['limit'];var _0x4f65cd;if(_0x2ae54a>=_0x445625){_0x2ae54a=_0x445625;_0x4f65cd=0xc8;}else{_0x4f65cd=0xce;}_0x1ac4a3['status'](_0x4f65cd);return _0x1ac4a3[_0xfef0('0x31')](_0xfef0('0x32'),_0x4eaf74+'-'+_0x2ae54a+'/'+_0x445625)[_0xfef0('0x2d')](_0x3e026a);}return null;};}function patchUpdates(_0x5cda6b){return function(_0x4d0778){try{jsonpatch['apply'](_0x4d0778,_0x5cda6b,!![]);}catch(_0x1f8110){return BPromise['reject'](_0x1f8110);}return _0x4d0778[_0xfef0('0x33')]();};}function saveUpdates(_0x3783f9,_0x1b9f39){return function(_0x4a2773){if(_0x4a2773){return _0x4a2773[_0xfef0('0x34')](_0x3783f9)['then'](function(_0x4234e4){return _0x4234e4;});}return null;};}function removeEntity(_0x1f21b7,_0x234d49){return function(_0xe5188e){if(_0xe5188e){return _0xe5188e[_0xfef0('0x35')]()[_0xfef0('0x22')](function(){_0x1f21b7[_0xfef0('0x2c')](0xcc)[_0xfef0('0x36')]();});}};}function handleEntityNotFound(_0x590e37,_0x24ea7c){return function(_0xea09ec){if(!_0xea09ec){_0x590e37[_0xfef0('0x2b')](0x194);}return _0xea09ec;};}function handleError(_0x36b2d1,_0xae697){_0xae697=_0xae697||0x1f4;return function(_0x262341){logger[_0xfef0('0x28')](_0x262341[_0xfef0('0x37')]);if(_0x262341[_0xfef0('0x38')]){delete _0x262341[_0xfef0('0x38')];}_0x36b2d1[_0xfef0('0x2c')](_0xae697)[_0xfef0('0x39')](_0x262341);};}function getMustacheRender(_0x366667,_0x4a8af4){return Mustache[_0xfef0('0x3a')](_0x366667,_['merge'](_0x4a8af4[_0xfef0('0x3b')],{'contact':_0x4a8af4[_0xfef0('0x3c')],'message':_0x4a8af4[_0xfef0('0x29')],'agent':_0x4a8af4['agent'],'interaction':_0x4a8af4[_0xfef0('0x3d')],'account':_0x4a8af4[_0xfef0('0x3e')]}))||'';}function getInteractionUsers(_0x3f2753,_0x5537c8){return new BPromise(function(_0x8613a0,_0x3abcc5){try{if(_0x5537c8[_0x3f2753['id']]){_0x3f2753[_0xfef0('0x3f')]=_['map'](_0x5537c8[_0x3f2753['id']],function(_0x3a6667){return{'id':_0x3a6667['id'],'fullname':_0x3a6667['fullname']};});}}catch(_0x49ed48){_0x3abcc5(_0x49ed48);}_0x8613a0(_0x3f2753);});}function getInteractionTags(_0xf30aff,_0x547a5d){return new BPromise(function(_0x5c3305,_0xbf6ddd){try{if(_0xf30aff[_0xfef0('0x40')]){_0xf30aff[_0xfef0('0x41')]=[];_0xf30aff[_0xfef0('0x40')][_0xfef0('0x42')](',')[_0xfef0('0x43')](function(_0x4dd8f8){_0xf30aff[_0xfef0('0x41')][_0xfef0('0x44')](_0x547a5d[_0x4dd8f8]);});}delete _0xf30aff['TagIds'];}catch(_0x54d5cb){_0xbf6ddd(_0x54d5cb);}_0x5c3305(_0xf30aff);});}function updateChatInteraction(_0x1d554e,_0x5dc824,_0x1fc518){return new BPromise(function(_0x22c940,_0x3c100c){return getInteractionUsers(_0x1d554e,_0x1fc518)[_0xfef0('0x22')](function(_0x199c57){return getInteractionTags(_0x199c57,_0x5dc824);})[_0xfef0('0x22')](function(_0x166a7b){_0x22c940(_0x166a7b);})[_0xfef0('0x2a')](function(_0x4e63f3){_0x3c100c(_0x4e63f3);});});}exports[_0xfef0('0x45')]=function(_0x50e372,_0x4b6da1){var _0x18c656={},_0x17d7f2={},_0x5bf416={'count':0x0,'rows':[]};var _0x2af79f=_['map'](db[_0xfef0('0x46')][_0xfef0('0x47')],function(_0x1f252e){return{'name':_0x1f252e[_0xfef0('0x48')],'type':_0x1f252e['type'][_0xfef0('0x49')]};});_0x17d7f2[_0xfef0('0x4a')]=_['map'](_0x2af79f,'name');_0x17d7f2[_0xfef0('0x4b')]=_['keys'](_0x50e372[_0xfef0('0x4b')]);_0x17d7f2[_0xfef0('0x4c')]=_[_0xfef0('0x4d')](_0x17d7f2[_0xfef0('0x4a')],_0x17d7f2[_0xfef0('0x4b')]);_0x18c656[_0xfef0('0x4e')]=_['intersection'](_0x17d7f2[_0xfef0('0x4a')],qs['fields'](_0x50e372['query'][_0xfef0('0x4f')]));_0x18c656[_0xfef0('0x4e')]=_0x18c656[_0xfef0('0x4e')]['length']?_0x18c656[_0xfef0('0x4e')]:_0x17d7f2['model'];if(!_0x50e372['query']['hasOwnProperty'](_0xfef0('0x50'))){_0x18c656[_0xfef0('0x30')]=qs[_0xfef0('0x30')](_0x50e372[_0xfef0('0x4b')][_0xfef0('0x30')]);_0x18c656[_0xfef0('0x2e')]=qs[_0xfef0('0x2e')](_0x50e372[_0xfef0('0x4b')][_0xfef0('0x2e')]);}_0x18c656['order']=qs['sort'](_0x50e372[_0xfef0('0x4b')][_0xfef0('0x51')]);_0x18c656[_0xfef0('0x52')]=qs[_0xfef0('0x4c')](_[_0xfef0('0x53')](_0x50e372[_0xfef0('0x4b')],_0x17d7f2[_0xfef0('0x4c')]),_0x2af79f);var _0x20b647=[];var _0x5e989f=squel[_0xfef0('0x54')]()[_0xfef0('0x55')]('id')[_0xfef0('0x55')](_0xfef0('0x38'))[_0xfef0('0x55')]('color')['from']('tools_tags');var _0x445f3f=squel[_0xfef0('0x54')]()[_0xfef0('0x55')](_0xfef0('0x56'))['field'](_0xfef0('0x57'))[_0xfef0('0x55')](_0xfef0('0x58'))[_0xfef0('0x59')](_0xfef0('0x5a'),'ui')[_0xfef0('0x5b')](_0xfef0('0x5c'),'u','u.id\x20=\x20ui.UserId');var _0x3458b0=squel[_0xfef0('0x54')]()['from'](_0xfef0('0x5d'),'i')['left_join'](_0xfef0('0x5e'),'c',_0xfef0('0x5f'))['left_join'](_0xfef0('0x5c'),'o','o.id\x20=\x20i.UserId')['left_join']('chat_websites','a',_0xfef0('0x60'))[_0xfef0('0x5b')](_0xfef0('0x61'),'me',_0xfef0('0x62'))[_0xfef0('0x5b')](_0xfef0('0x63'),'it','it.ChatInteractionId\x20=\x20i.id')[_0xfef0('0x5b')](_0xfef0('0x64'),'t',_0xfef0('0x65'));var _0x45abb3=squel[_0xfef0('0x66')]();var _0x58d95e=[];var _0x59d1b6=squel['expr']();var _0x135653;if(_0x50e372['query'][_0xfef0('0x67')]){_0x135653=as[_0xfef0('0x68')](_0x50e372[_0xfef0('0x4b')][_0xfef0('0x67')]);var _0xd0255c=_0x135653['sqlOperator'];for(var _0x2abdb7=0x0;_0x2abdb7<_0x135653['conditions'][_0xfef0('0x69')];_0x2abdb7++){var _0x4a1316=_0x135653['conditions'][_0x2abdb7];var _0x3a12c5='i';var _0x3c5640=_[_0xfef0('0x6a')](_0x2af79f,[_0xfef0('0x38'),_0x4a1316[_0xfef0('0x55')]]);if(!_0x3c5640){switch(_0x4a1316[_0xfef0('0x55')]){case _0xfef0('0x6b'):if(_0x4a1316[_0xfef0('0x6c')]==0x1){_0x3458b0[_0xfef0('0x6d')]('`'+_0x4a1316[_0xfef0('0x55')]+_0xfef0('0x6e'));}else{_0x3458b0[_0xfef0('0x6d')]('`'+_0x4a1316['field']+_0xfef0('0x6f'));}break;case _0xfef0('0x70'):if(_0x4a1316[_0xfef0('0x71')]===_0xfef0('0x72')){if(_0x4a1316[_0xfef0('0x6c')]['split']('\x20')[_0xfef0('0x69')]>0x1){_0x45abb3[_0xd0255c](_0xfef0('0x73'),qs[_0xfef0('0x74')](_0x4a1316[_0xfef0('0x6c')]),null);}else{var _0x176fc7='%'+_0x4a1316[_0xfef0('0x6c')]+'%';_0x45abb3[_0xd0255c](_0xfef0('0x75'),_0x176fc7,_0x176fc7,_0x176fc7);}}else{_0x3c5640=_[_0xfef0('0x6a')](_0x2af79f,[_0xfef0('0x38'),_0xfef0('0x76')]);_0x4a1316['field']=_0xfef0('0x76');_0x1d7caf=as['buildExpression'](_0x3a12c5,_0x3c5640[_0xfef0('0x77')],_0x4a1316);_0x45abb3[_0xd0255c](_0x1d7caf[_0xfef0('0x78')],_0x1d7caf['value'][_0xfef0('0x79')],_0x1d7caf[_0xfef0('0x6c')][_0xfef0('0x36')]);}break;case _0xfef0('0x7a'):var _0x1e0ad5=_0x4a1316['value'][_0xfef0('0x42')](',')[_0xfef0('0x7b')](function(_0x2ccb33){return Number(_0x2ccb33);});_0x1e0ad5['forEach'](function(_0x117b74){_0x59d1b6['or'](_0xfef0('0x7c'),'%,'+_0x117b74+',%');});_0x58d95e=_[_0xfef0('0x7d')](_0x58d95e,_0x1e0ad5);break;case _0xfef0('0x7e'):if(_0x4a1316[_0xfef0('0x71')]===_0xfef0('0x72')){_0x45abb3[_0xd0255c](_0xfef0('0x7f'),'%'+_0x4a1316['value']+'%',null);}else{_0x3c5640=_[_0xfef0('0x6a')](_0x2af79f,[_0xfef0('0x38'),_0xfef0('0x80')]);_0x4a1316[_0xfef0('0x55')]=_0xfef0('0x80');_0x1d7caf=as[_0xfef0('0x81')](_0x3a12c5,_0x3c5640['type'],_0x4a1316);_0x45abb3[_0xd0255c](_0x1d7caf[_0xfef0('0x78')],_0x1d7caf[_0xfef0('0x6c')][_0xfef0('0x79')],_0x1d7caf[_0xfef0('0x6c')]['end']);}break;case _0xfef0('0x3b'):_0x1d7caf=as[_0xfef0('0x81')]('me',null,_0x4a1316);_0x45abb3[_0xd0255c](_0x1d7caf['text'],_0x1d7caf[_0xfef0('0x6c')][_0xfef0('0x79')],_0x1d7caf[_0xfef0('0x6c')][_0xfef0('0x36')]);break;}}else{var _0x1d7caf=as['buildExpression'](_0x3a12c5,_0x3c5640['type'],_0x4a1316);_0x45abb3[_0xd0255c](_0x1d7caf['text'],_0x1d7caf[_0xfef0('0x6c')][_0xfef0('0x79')],_0x1d7caf[_0xfef0('0x6c')]['end']);}}}else{var _0x24229e=_(_0x50e372['query'])['keys']()['map'](function(_0x2a92de){return _[_0xfef0('0x82')](_0x2af79f,['name',_0x2a92de])?_0x2a92de:undefined;})[_0xfef0('0x83')]()[_0xfef0('0x6c')]();if(!_[_0xfef0('0x84')](_0x24229e)){_0x24229e['forEach'](function(_0x3f2b55){if(_0x3f2b55==='ChatWebsiteId'){_0x3458b0['where'](_0xfef0('0x85'),[][_0xfef0('0x86')](_0x50e372[_0xfef0('0x4b')][_0x3f2b55]));}else if(_0x3f2b55===_0xfef0('0x87')){var _0x4df63b=JSON['parse'](_0x50e372['query'][_0x3f2b55])[_0xfef0('0x88')];var _0x546455=JSON[_0xfef0('0x89')](_0x50e372[_0xfef0('0x4b')][_0x3f2b55])[_0xfef0('0x8a')];_0x3458b0[_0xfef0('0x52')](_0xfef0('0x8b'),_0x4df63b,_0x546455);}else{if(_0x50e372['query'][_0x3f2b55]===_0xfef0('0x8c')){_0x3458b0['where']('i.'+_0x3f2b55+'\x20IS\x20NULL');}else{_0x3458b0[_0xfef0('0x52')]('i.'+_0x3f2b55+_0xfef0('0x8d'),_0x50e372[_0xfef0('0x4b')][_0x3f2b55]);}}});}if(_0x50e372[_0xfef0('0x4b')]['read']){if(_0x50e372['query'][_0xfef0('0x8e')]==0x1){_0x3458b0[_0xfef0('0x6d')]('`unreadMessages`\x20=\x200');}else{_0x3458b0[_0xfef0('0x6d')](_0xfef0('0x8f'));}}if(_0x50e372[_0xfef0('0x4b')][_0xfef0('0x90')]){_0x58d95e=_[_0xfef0('0x91')](_0x50e372[_0xfef0('0x4b')][_0xfef0('0x90')])?_0x50e372[_0xfef0('0x4b')][_0xfef0('0x90')]:new Array(_0x50e372[_0xfef0('0x4b')][_0xfef0('0x90')]);_0x58d95e[_0xfef0('0x43')](function(_0x3c1136){_0x59d1b6['or'](_0xfef0('0x7c'),'%,'+_0x3c1136+',%');});}if(_0x50e372[_0xfef0('0x4b')][_0xfef0('0x92')]){var _0x1a61e4=_0x50e372['query'][_0xfef0('0x92')][_0xfef0('0x93')]('\x5c','\x5c\x5c')[_0xfef0('0x93')](/'/g,'\x27\x27');if(qs[_0xfef0('0x94')](_0x1a61e4)){_0x45abb3['or'](_0xfef0('0x95'),_0x1a61e4+'%');}else{_0x45abb3['or'](_0xfef0('0x96'),qs[_0xfef0('0x74')](_0x1a61e4))['or'](_0xfef0('0x97'),_0x1a61e4+'%');}}}_0x3458b0[_0xfef0('0x52')](_0x45abb3);_0x3458b0[_0xfef0('0x98')](_0xfef0('0x99'));var _0x17c350={'type':db[_0xfef0('0x9a')]['QueryTypes'][_0xfef0('0x9b')],'raw':!![]};var _0x56af65=_0x3458b0['clone']();_0x56af65[_0xfef0('0x55')](_0xfef0('0x99'));_0x56af65['field'](_0xfef0('0x9c'),'unreadMessages');if(_0x18c656['order']){_0x18c656[_0xfef0('0x9d')][_0xfef0('0x43')](function(_0x4ebcf){var _0x437cb2=_0x4ebcf[0x0]==='contactName'?_0x4ebcf[0x0]:'i.'+_0x4ebcf[0x0];_0x3458b0[_0xfef0('0x9d')](_0x437cb2,_0x4ebcf[0x1]===_0xfef0('0x9e')?![]:!![]);});}if(!_['isEmpty'](_0x58d95e)){_0x3458b0[_0xfef0('0x6d')](_0x59d1b6);_0x56af65[_0xfef0('0x52')](_0xfef0('0x9f'),_0x58d95e);}BPromise['resolve']()['then'](function(){if(!_0x135653){if(_0x50e372[_0xfef0('0x4b')]['ChatWebsiteId'])return;_0x56af65['where'](_0xfef0('0xa0'));_0x3458b0['where'](_0xfef0('0xa0'));return;}if(_0x50e372[_0xfef0('0xa1')][_0xfef0('0xa2')]!==_0xfef0('0xa3'))return;return _0x50e372[_0xfef0('0xa1')][_0xfef0('0xa4')]({'attributes':['id'],'raw':!![]})[_0xfef0('0x22')](function(_0x28cc77){if(_[_0xfef0('0x84')](_0x28cc77)){_0x56af65[_0xfef0('0x52')]('i.ChatWebsiteId\x20IS\x20NULL');_0x3458b0[_0xfef0('0x52')]('i.ChatWebsiteId\x20IS\x20NULL');}else{_0x56af65['where'](_0xfef0('0x85'),_['map'](_0x28cc77,'id'));_0x3458b0[_0xfef0('0x52')](_0xfef0('0x85'),_[_0xfef0('0x7b')](_0x28cc77,'id'));}});})[_0xfef0('0x22')](function(){if(_0x50e372[_0xfef0('0xa1')][_0xfef0('0xa2')]==='agent'&&!_0x135653&&!_0x50e372[_0xfef0('0x4b')][_0xfef0('0xa5')])return[];return db[_0xfef0('0xa6')][_0xfef0('0x4b')](_0x56af65[_0xfef0('0xa7')](),_0x17c350);})[_0xfef0('0x22')](function(_0x3cc27e){_0x5bf416[_0xfef0('0xa8')]=_0x3cc27e['length'];if(_0x5bf416[_0xfef0('0xa8')]===0x0)return[];return db[_0xfef0('0xa6')]['query'](_0x5e989f[_0xfef0('0xa7')](),_0x17c350)[_0xfef0('0x22')](function(_0x221b17){_0x20b647=_['keyBy'](_0x221b17,'id');_0x17c350=_[_0xfef0('0xa9')](_0x17c350,{'model':db['ChatInteraction'],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x50e372[_0xfef0('0x4b')][_0xfef0('0x4f')]){_0x18c656['attributes'][_0xfef0('0x43')](function(_0x51f79b){_0x3458b0[_0xfef0('0x55')]('i.'+_0x51f79b);});}else{_0x3458b0[_0xfef0('0x55')](_0xfef0('0x9c'),_0xfef0('0x6b'));_0x3458b0[_0xfef0('0x55')](_0xfef0('0xaa'),_0xfef0('0xab'));_0x3458b0[_0xfef0('0x55')](_0xfef0('0xac'),_0xfef0('0xad'));_0x3458b0[_0xfef0('0x55')]('CASE\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END',_0xfef0('0xae'));_0x3458b0['field']('i.*');_0x3458b0[_0xfef0('0x55')]('c.firstName',_0xfef0('0xaf'));_0x3458b0['field']('c.lastName',_0xfef0('0xb0'));_0x3458b0['field']('c.email','Contact.email');_0x3458b0[_0xfef0('0x55')](_0xfef0('0xb1'),_0xfef0('0xb2'));_0x3458b0[_0xfef0('0x55')]('c.mobile',_0xfef0('0xb3'));_0x3458b0[_0xfef0('0x55')](_0xfef0('0xb4'),_0xfef0('0xb5'));_0x3458b0[_0xfef0('0x55')]('o.fullname','Owner.fullname');_0x3458b0[_0xfef0('0x55')](_0xfef0('0xb6'),'Owner.internal');_0x3458b0[_0xfef0('0x55')](_0xfef0('0xb7'),_0xfef0('0x40'));}if(_0x18c656[_0xfef0('0x30')])_0x3458b0[_0xfef0('0x30')](_0x18c656[_0xfef0('0x30')]);if(_0x18c656[_0xfef0('0x2e')])_0x3458b0[_0xfef0('0x2e')](_0x18c656['offset']);return db['sequelize'][_0xfef0('0x4b')](_0x3458b0[_0xfef0('0xa7')](),_0x17c350);})[_0xfef0('0x22')](function(_0x475eb7){if(_0x475eb7[_0xfef0('0x69')]>0x0)_0x445f3f[_0xfef0('0x52')](_0xfef0('0xb8'),_[_0xfef0('0x7b')](_0x475eb7,'id'));return db['sequelize']['query'](_0x445f3f[_0xfef0('0xa7')](),_0x17c350)[_0xfef0('0x22')](function(_0x374877){var _0xd780bb=_[_0xfef0('0xb9')](_0x374877,_0xfef0('0xba'));var _0x5ac2df=[];_0x475eb7[_0xfef0('0x43')](function(_0x1060c2){_0x5ac2df['push'](updateChatInteraction(_0x1060c2,_0x20b647,_0xd780bb));});return BPromise[_0xfef0('0xbb')](_0x5ac2df);});});})[_0xfef0('0x22')](function(_0x36873f){_0x5bf416[_0xfef0('0xbc')]=_0x36873f;return _0x5bf416;})[_0xfef0('0x22')](respondWithFilteredResult(_0x4b6da1,_0x18c656))[_0xfef0('0x2a')](handleError(_0x4b6da1,null));};exports['show']=function(_0x4dd6e8,_0x1084b9){var _0xd7c5b={'raw':![],'where':{'id':_0x4dd6e8[_0xfef0('0xbd')]['id']}},_0xd2c0be={};_0xd2c0be[_0xfef0('0x4a')]=_[_0xfef0('0xbe')](db['ChatInteraction'][_0xfef0('0x47')]);_0xd2c0be['query']=_[_0xfef0('0xbe')](_0x4dd6e8['query']);_0xd2c0be[_0xfef0('0x4c')]=_[_0xfef0('0x4d')](_0xd2c0be['model'],_0xd2c0be[_0xfef0('0x4b')]);_0xd7c5b[_0xfef0('0x4e')]=_[_0xfef0('0x4d')](_0xd2c0be['model'],qs['fields'](_0x4dd6e8['query'][_0xfef0('0x4f')]));_0xd7c5b['attributes']=_0xd7c5b[_0xfef0('0x4e')][_0xfef0('0x69')]?_0xd7c5b['attributes']:_0xd2c0be[_0xfef0('0x4a')];if(_0x4dd6e8['query'][_0xfef0('0xbf')]){_0xd7c5b[_0xfef0('0xc0')]=[{'all':!![]}];}_0xd7c5b=_[_0xfef0('0xa9')]({},_0xd7c5b,_0x4dd6e8[_0xfef0('0xc1')]);return db[_0xfef0('0x46')][_0xfef0('0x6a')](_0xd7c5b)[_0xfef0('0x22')](handleEntityNotFound(_0x1084b9,null))['then'](respondWithResult(_0x1084b9,null))[_0xfef0('0x2a')](handleError(_0x1084b9,null));};exports[_0xfef0('0xc2')]=function(_0x38f96f,_0x1bdf18){return db[_0xfef0('0x46')][_0xfef0('0xc2')](_0x38f96f[_0xfef0('0x3b')],{})[_0xfef0('0x22')](respondWithResult(_0x1bdf18,0xc9))[_0xfef0('0x2a')](handleError(_0x1bdf18,null));};exports[_0xfef0('0x34')]=function(_0x2a25cb,_0x34f1db){if(_0x2a25cb[_0xfef0('0x3b')]['id']){delete _0x2a25cb[_0xfef0('0x3b')]['id'];}return db['ChatInteraction'][_0xfef0('0x6a')]({'where':{'id':_0x2a25cb[_0xfef0('0xbd')]['id']}})[_0xfef0('0x22')](handleEntityNotFound(_0x34f1db,null))[_0xfef0('0x22')](saveUpdates(_0x2a25cb[_0xfef0('0x3b')],null))[_0xfef0('0x22')](respondWithResult(_0x34f1db,null))[_0xfef0('0x2a')](handleError(_0x34f1db,null));};exports[_0xfef0('0x35')]=function(_0x191072,_0x5b5a15){return db['ChatInteraction'][_0xfef0('0x6a')]({'where':{'id':_0x191072['params']['id']}})[_0xfef0('0x22')](handleEntityNotFound(_0x5b5a15,null))[_0xfef0('0x22')](removeEntity(_0x5b5a15,null))[_0xfef0('0x2a')](handleError(_0x5b5a15,null));};exports[_0xfef0('0xc3')]=function(_0xd9c290,_0x365938){return db[_0xfef0('0x46')][_0xfef0('0xc3')]()[_0xfef0('0x22')](respondWithResult(_0x365938,null))[_0xfef0('0x2a')](handleError(_0x365938,null));};exports[_0xfef0('0xc4')]=function(_0x4c6ddd,_0x17ac08){var _0x40afcb=_0x4c6ddd['params']['id'];var _0xaa5902;var _0x189964;var _0x524db7;return db[_0xfef0('0x46')]['findOne']({'where':{'id':_0x40afcb}})[_0xfef0('0x22')](function(_0x41aadf){_0xaa5902=_0x41aadf;return db[_0xfef0('0xc5')][_0xfef0('0xc6')]({'where':{'id':_0x41aadf[_0xfef0('0xa5')]},'attributes':['id','vidaooApiKey',_0xfef0('0xc7'),_0xfef0('0xc8'),'vidaooNote',_0xfef0('0xc9')],'raw':!![]});})['then'](function(_0x3a180e){if(_0x3a180e&&_0x3a180e[_0xfef0('0xca')]&&_0x3a180e[_0xfef0('0xc7')]){_0x189964=_0x3a180e;var _0x52fb8b={'interaction':{'id':_0x40afcb},'agent':{'id':_0x4c6ddd[_0xfef0('0xa1')]['id'],'name':_0x4c6ddd['user']['name'],'fullname':_0x4c6ddd[_0xfef0('0xa1')]['fullname'],'email':_0x4c6ddd[_0xfef0('0xa1')][_0xfef0('0xcb')]},'contact':_0x4c6ddd[_0xfef0('0x3b')][_0xfef0('0x3c')],'account':_0x4c6ddd[_0xfef0('0x3b')][_0xfef0('0x3e')]};var _0x7f9b61={'rejectUnauthorized':![],'method':'POST','url':'https://api-vidaoo.xcally.com/api/v1/meetings','headers':{'X-APIKEY':_0x3a180e[_0xfef0('0xca')]},'body':{'duration':null,'scheduledAt':null,'participants':[_0x4c6ddd['user'][_0xfef0('0xcb')]],'buttons':null,'topic':_0x189964[_0xfef0('0xc8')],'note':_[_0xfef0('0xcc')](_0x189964[_0xfef0('0xcd')])?null:getMustacheRender(_0x189964[_0xfef0('0xcd')],_0x52fb8b),'metadata':null},'redirect':_0xfef0('0xce'),'json':!![]};try{if(!_[_0xfef0('0xcc')](_0x189964[_0xfef0('0xc9')])){var _0x4a3b68=getMustacheRender(_0x189964['vidaooMetadata'],_0x52fb8b);var _0x3c5471=JSON[_0xfef0('0x89')](_0x4a3b68);_0x7f9b61[_0xfef0('0x3b')][_0xfef0('0xcf')]=_0x3c5471;}}catch(_0xdbd7f2){throw new db['Sequelize']['ValidationError']('Error\x20in\x20conversion\x20vidaooMetadata');}return rp(_0x7f9b61);}else{throw new db[(_0xfef0('0x9a'))][(_0xfef0('0xd0'))]('Error\x20in\x20Vidaoo\x20configuration');}})[_0xfef0('0x22')](function(_0x4f171b){_0x524db7=_0x4f171b;if(_0x524db7['id']){var _0x236523={'body':_0x524db7[_0xfef0('0xd1')],'ChatWebsiteId':_0x189964['id'],'ChatInteractionId':_0xaa5902['id'],'direction':_0xfef0('0xd2'),'UserId':_0x4c6ddd[_0xfef0('0xa1')]['id']};return db[_0xfef0('0xd3')][_0xfef0('0xc2')](_0x236523,{});}else{throw new db[(_0xfef0('0x9a'))][(_0xfef0('0xd0'))](_0xfef0('0xd4'));}})[_0xfef0('0x22')](function(){return _0xaa5902[_0xfef0('0xd5')]({'vidaooSessionId':_0x524db7['id']});})['then'](respondWithResult(_0x17ac08,null))[_0xfef0('0x2a')](handleError(_0x17ac08,null));};exports['customUpdate']=function(_0xf763b1,_0x1fc6a0){if(_0xf763b1[_0xfef0('0x3b')]['id']){delete _0xf763b1[_0xfef0('0x3b')]['id'];}return db[_0xfef0('0x46')][_0xfef0('0x6a')]({'where':{'id':_0xf763b1[_0xfef0('0xbd')]['id']},'include':[{'model':db[_0xfef0('0xd6')],'as':_0xfef0('0x70')}]})['then'](handleEntityNotFound(_0x1fc6a0,null))['then'](saveUpdates(_0xf763b1[_0xfef0('0x3b')],null))['then'](respondWithResult(_0x1fc6a0,null))[_0xfef0('0x2a')](handleError(_0x1fc6a0,null));};exports[_0xfef0('0xd7')]=function(_0x45049d,_0x238112,_0x3a7c93){if(_0x45049d['body']['id']){delete _0x45049d[_0xfef0('0x3b')]['id'];}return db['ChatInteraction'][_0xfef0('0x6a')]({'where':{'id':_0x45049d[_0xfef0('0xbd')]['id']}})['then'](function(_0x34bcc3){if(!_0x34bcc3){logger['error'](_0xfef0('0xd8'),'abandon',0x194,'entity\x20not\x20found');_0x238112[_0xfef0('0x2b')](0x194);}else{if(_0x34bcc3['UserId']){throw new db[(_0xfef0('0x9a'))][(_0xfef0('0xd0'))](_0xfef0('0xd9'));}}return _0x34bcc3;})['then'](function(_0x5c7b35){if(_0x5c7b35){return _0x5c7b35[_0xfef0('0x34')]({'closed':_0x45049d[_0xfef0('0x3b')][_0xfef0('0xda')],'disposition':_0x45049d[_0xfef0('0x3b')][_0xfef0('0xdb')]})[_0xfef0('0x22')](function(_0x3107e2){return _0x3107e2;});}})[_0xfef0('0x22')](function(_0x325d36){return respondWithRpcPromise('AbandonInteraction',_0xfef0('0xd7'),_0x45049d[_0xfef0('0x3b')],client9004);})[_0xfef0('0x22')](respondWithResult(_0x238112,null))[_0xfef0('0x2a')](handleError(_0x238112,null));};exports[_0xfef0('0xdc')]=function(_0xb1df6f,_0x42604b,_0x5969d2){_0xb1df6f[_0xfef0('0x3b')][_0xfef0('0x38')]=_0xb1df6f['file'][_0xfef0('0xdd')];_0xb1df6f[_0xfef0('0x3b')][_0xfef0('0xde')]=_0xb1df6f[_0xfef0('0xdf')][_0xfef0('0xe0')];_0xb1df6f['body'][_0xfef0('0x77')]=_0xb1df6f['file'][_0xfef0('0xe1')];return db['Attachment']['create'](_0xb1df6f['body'])[_0xfef0('0x22')](respondWithResult(_0x42604b,0xc9))['catch'](handleError(_0x42604b,null));};exports['attachmentDownload']=function(_0x25fed0,_0x43453b,_0x4da5b0){return db[_0xfef0('0x46')][_0xfef0('0xc6')]({'where':{'id':_0x25fed0[_0xfef0('0xbd')]['id']},'raw':!![]})['then'](handleEntityNotFound(_0x43453b,null))['then'](function(_0x39a2a7){if(_0x39a2a7){if(_0x39a2a7[_0xfef0('0xda')]){return _0x43453b[_0xfef0('0x2c')](0x193)[_0xfef0('0x2d')]({'status':0x193,'message':_0xfef0('0xe2')});}return db[_0xfef0('0xe3')][_0xfef0('0xc6')]({'where':{'id':_0x25fed0['query'][_0xfef0('0xe4')]},'raw':!![]})[_0xfef0('0x22')](handleEntityNotFound(_0x43453b,null));}})[_0xfef0('0x22')](function(_0x4544fe){if(_0x4544fe){var _0x5c0f32=_0x4544fe['ChatOfflineMessageId']!==null;var _0x461c91=path[_0xfef0('0xe5')](config[_0xfef0('0xe6')],_0xfef0('0xe7'));if(_0x5c0f32){_0x461c91=path[_0xfef0('0xe5')](_0x461c91,_0xfef0('0xe8'));}var _0xe24c2d=path['join'](_0x461c91,_0x4544fe['basename']);return _0x43453b['download'](_0xe24c2d);}})[_0xfef0('0x2a')](handleError(_0x43453b,null));};exports['close']=function(_0x38ac84,_0x4a1406){var _0x2daf2a=null;var _0x4f703e=null;var _0x20cf67=null;var _0x235122=null;if(_0x38ac84[_0xfef0('0x3b')]['id']){delete _0x38ac84[_0xfef0('0x3b')]['id'];}if(_0x38ac84[_0xfef0('0x3b')]['mailTranscript']){_0x235122=path[_0xfef0('0xe5')](config[_0xfef0('0xe6')],_0xfef0('0xe9'),util[_0xfef0('0xea')]('transcript-%s.txt',Date[_0xfef0('0xeb')]()));_0x38ac84['body']['pathTranscript']=_0x235122;}return db[_0xfef0('0x46')]['find']({'where':{'id':_0x38ac84['params']['id']},'include':[{'model':db[_0xfef0('0xd3')],'as':'Messages','include':[{'model':db[_0xfef0('0x7e')],'as':_0xfef0('0x7e')}]}]})[_0xfef0('0x22')](handleEntityNotFound(_0x4a1406,null))[_0xfef0('0x22')](saveUpdates(_0x38ac84[_0xfef0('0x3b')],null))[_0xfef0('0x22')](function(_0x4f6c50){if(_0x4f6c50){_0x2daf2a=_0x4f6c50;return db[_0xfef0('0xc5')][_0xfef0('0x6a')]({'where':{'id':_0x2daf2a[_0xfef0('0xa5')]}});}})['then'](function(_0x3ac462){if(_0x3ac462){_0x20cf67=_0x3ac462;return db['CmContact'][_0xfef0('0x6a')]({'where':{'id':_0x2daf2a[_0xfef0('0x76')]}});}})[_0xfef0('0x22')](function(_0x5ef687){if(_0x5ef687){_0x4f703e=_0x5ef687;if(_0x235122){var _0x906e55=null;for(var _0x4cec7d=0x1;_0x4cec7d<_0x2daf2a['Messages'][_0xfef0('0x69')];++_0x4cec7d){_0x906e55=_0x2daf2a[_0xfef0('0xec')][_0x4cec7d];var _0x58a4ef=_0x906e55[_0xfef0('0x80')]?util[_0xfef0('0xea')](_0xfef0('0xed'),_0x20cf67[_0xfef0('0xee')],_0x906e55['UserId']):_0xfef0('0xef');var _0x484cc3=_0x38ac84[_0xfef0('0x3b')][_0xfef0('0xf0')]||util[_0xfef0('0xea')](_0xfef0('0xed'),_0xfef0('0xf1'),_0x906e55[_0xfef0('0x76')]);switch(_0x20cf67[_0xfef0('0xf2')]){case _0xfef0('0xf3'):_0x58a4ef=_0x906e55[_0xfef0('0x80')]?util['format'](_0xfef0('0xed'),_0x20cf67[_0xfef0('0xee')],_0x906e55['UserId']):_0xfef0('0xef');break;case'agent_alias':_0x58a4ef=_0x906e55[_0xfef0('0x80')]?_0x906e55[_0xfef0('0x7e')][_0xfef0('0xf4')]||_0x906e55[_0xfef0('0x7e')][_0xfef0('0xf5')]:'System';break;case _0xfef0('0xf6'):_0x58a4ef=_0x906e55[_0xfef0('0x80')]?_0x906e55[_0xfef0('0x7e')]['fullname']:'System';break;default:_0x58a4ef=_0x906e55[_0xfef0('0x80')]?util[_0xfef0('0xea')](_0xfef0('0xed'),_0x20cf67[_0xfef0('0xee')],_0x906e55['UserId']):_0xfef0('0xef');}var _0x4b4986=util[_0xfef0('0xea')](_0xfef0('0xf7'),moment(_0x906e55[_0xfef0('0x87')])[_0xfef0('0xea')](_0xfef0('0xf8')),_0x906e55['direction']==='in'?_0x484cc3:_0x58a4ef,_0x906e55[_0xfef0('0x3b')]);if(!_0x906e55[_0xfef0('0xf9')]){fs[_0xfef0('0xfa')](_0x235122,_0x4b4986);}}return db[_0xfef0('0xfb')]['findOne']({'where':{'service':!![]},'include':[{'model':db[_0xfef0('0xfc')],'as':'Smtp','raw':!![]}]});}}})[_0xfef0('0x22')](function(_0x402c7d){if(_0x402c7d&&_0x402c7d[_0xfef0('0xfd')]&&_0x38ac84[_0xfef0('0x3b')]){var _0x5315eb={'tls':{'rejectUnauthorized':![]}};if(_0x402c7d['Smtp'][_0xfef0('0xfe')]){_0x5315eb[_0xfef0('0xfe')]=_0x402c7d[_0xfef0('0xfd')][_0xfef0('0xfe')];}else{_0x5315eb[_0xfef0('0xff')]=_0x402c7d[_0xfef0('0xfd')][_0xfef0('0xff')];_0x5315eb['port']=_0x402c7d['Smtp'][_0xfef0('0x100')];_0x5315eb[_0xfef0('0x101')]=_0x402c7d['Smtp'][_0xfef0('0x101')];}if(_0x402c7d['Smtp']['authentication']){_0x5315eb[_0xfef0('0x102')]={'user':_0x402c7d[_0xfef0('0xfd')][_0xfef0('0xa1')],'pass':_0x402c7d[_0xfef0('0xfd')][_0xfef0('0x103')]};}return respondWithRpcPromise('SendMail',_0xfef0('0x104'),{'account':_0x5315eb,'message':{'from':util[_0xfef0('0xea')](_0xfef0('0x105'),_0x402c7d[_0xfef0('0x38')],_0x402c7d['email']||_0x402c7d['Smtp']['user']),'to':_0x38ac84[_0xfef0('0x3b')]['mailTranscript'],'subject':_0xfef0('0x106'),'text':util['format']('Hi\x20%s,\x20attached\x20you\x20can\x20find\x20your\x20transcript\x20file.\x20\x0a\x0aRegards.\x20\x0a\x0a',_0x38ac84['body'][_0xfef0('0x107')]),'attachments':[{'path':_0x235122}]}})[_0xfef0('0x22')](function(){return _0x2daf2a;})['catch'](function(_0x411870){console['error'](_0x411870);});}else{return _0x2daf2a;}})[_0xfef0('0x22')](respondWithStatusCode(_0x4a1406,0xc8))[_0xfef0('0x2a')](handleError(_0x4a1406,null));};exports[_0xfef0('0x108')]=function(_0x9b2969,_0x1f842f,_0x36c978){return db[_0xfef0('0xd3')][_0xfef0('0x6a')]({'where':{'id':_0x9b2969[_0xfef0('0xbd')]['id']}})[_0xfef0('0x22')](handleEntityNotFound(_0x1f842f,null))['then'](function(_0x1d342a){if(_0x1d342a){return _0x1d342a[_0xfef0('0x108')](_0x9b2969['body'][_0xfef0('0x109')],_['omit'](_0x9b2969[_0xfef0('0x3b')],[_0xfef0('0x109'),'id'])||{});}})[_0xfef0('0x22')](respondWithResult(_0x1f842f,null))[_0xfef0('0x2a')](handleError(_0x1f842f,null));};exports[_0xfef0('0x10a')]=function(_0x422af1,_0xcb9eb8,_0x38e829){var _0x287403={'raw':![],'where':{}};var _0x2ebd8d={};var _0x115454={'count':0x0,'rows':[]};return db[_0xfef0('0x46')][_0xfef0('0xc6')]({'where':{'id':_0x422af1[_0xfef0('0xbd')]['id']}})['then'](handleEntityNotFound(_0xcb9eb8,null))[_0xfef0('0x22')](function(_0x5593de){if(_0x5593de){_0x2ebd8d['model']=_[_0xfef0('0xbe')](db['ChatMessage'][_0xfef0('0x47')]);_0x2ebd8d[_0xfef0('0x4b')]=_[_0xfef0('0xbe')](_0x422af1['query']);_0x2ebd8d[_0xfef0('0x4c')]=_[_0xfef0('0x4d')](_0x2ebd8d[_0xfef0('0x4a')],_0x2ebd8d[_0xfef0('0x4b')]);_0x287403[_0xfef0('0x4e')]=_[_0xfef0('0x4d')](_0x2ebd8d[_0xfef0('0x4a')],qs[_0xfef0('0x4f')](_0x422af1[_0xfef0('0x4b')][_0xfef0('0x4f')]));_0x287403[_0xfef0('0x4e')]=_0x287403[_0xfef0('0x4e')][_0xfef0('0x69')]?_0x287403[_0xfef0('0x4e')]:_0x2ebd8d['model'];if(!_0x422af1[_0xfef0('0x4b')]['hasOwnProperty'](_0xfef0('0x50'))){_0x287403['limit']=qs[_0xfef0('0x30')](_0x422af1[_0xfef0('0x4b')][_0xfef0('0x30')]);_0x287403[_0xfef0('0x2e')]=qs[_0xfef0('0x2e')](_0x422af1['query']['offset']);}_0x287403[_0xfef0('0x9d')]=qs[_0xfef0('0x51')](_0x422af1['query'][_0xfef0('0x51')]);_0x287403[_0xfef0('0x52')]=qs[_0xfef0('0x4c')](_[_0xfef0('0x53')](_0x422af1[_0xfef0('0x4b')],_0x2ebd8d[_0xfef0('0x4c')]));_0x287403[_0xfef0('0x52')][_0xfef0('0xba')]=_0x5593de['id'];if(_0x422af1['query'][_0xfef0('0x92')]){_0x287403[_0xfef0('0x52')]=_['merge'](_0x287403[_0xfef0('0x52')],{'$or':_['map'](_0x287403[_0xfef0('0x4e')],function(_0x41790c){var _0x189965={};_0x189965[_0x41790c]={'$like':'%'+_0x422af1[_0xfef0('0x4b')][_0xfef0('0x92')]+'%'};return _0x189965;})});}if(_0x422af1[_0xfef0('0x4b')][_0xfef0('0x88')]){var _0x5b1b34=_0x422af1[_0xfef0('0x4b')][_0xfef0('0x88')]['split'](',');var _0xfa83e1={};_0xfa83e1[_0x5b1b34[0x0]]={'$gte':moment(_0x5b1b34[0x1])[_0xfef0('0xea')](_0xfef0('0x10b'))};_0x287403['where']=_[_0xfef0('0xa9')](_0x287403[_0xfef0('0x52')],_0xfa83e1);}_0x287403=_[_0xfef0('0xa9')]({},_0x287403,_0x422af1[_0xfef0('0xc1')]);return db[_0xfef0('0xd3')][_0xfef0('0xa8')]({'where':_0x287403[_0xfef0('0x52')]})[_0xfef0('0x22')](function(_0x464d00){_0x115454[_0xfef0('0xa8')]=_0x464d00;if(_0x422af1['query'][_0xfef0('0xbf')]){_0x287403[_0xfef0('0xc0')]=[{'all':!![]}];}return db[_0xfef0('0xd3')][_0xfef0('0x10c')](_0x287403);})[_0xfef0('0x22')](function(_0x1b23f0){_0x115454['rows']=_0x1b23f0;return _0x115454;});}})['then'](respondWithFilteredResult(_0xcb9eb8,_0x287403))[_0xfef0('0x2a')](handleError(_0xcb9eb8,null));};exports['getMyMessages']=function(_0x30f7d5,_0x1a53fa,_0x14a37e){var _0x303128={'where':{}},_0x2b3263={},_0x43e758={'count':0x0,'rows':[]};return db['ChatInteraction'][_0xfef0('0xc6')]({'where':{'id':_0x30f7d5[_0xfef0('0xbd')]['id']}})[_0xfef0('0x22')](handleEntityNotFound(_0x1a53fa,null))[_0xfef0('0x22')](function(_0x273e8b){if(_0x273e8b){_0x2b3263[_0xfef0('0x4a')]=_[_0xfef0('0xbe')](db['ChatMessage'][_0xfef0('0x47')]);_0x2b3263[_0xfef0('0x4b')]=_[_0xfef0('0xbe')](_0x30f7d5[_0xfef0('0x4b')]);_0x2b3263[_0xfef0('0x4c')]=_[_0xfef0('0x4d')](_0x2b3263['model'],_0x2b3263['query']);_0x303128[_0xfef0('0x4e')]=_[_0xfef0('0x4d')](_0x2b3263[_0xfef0('0x4a')],qs[_0xfef0('0x4f')](_0x30f7d5[_0xfef0('0x4b')][_0xfef0('0x4f')]));_0x303128[_0xfef0('0x4e')]=_0x303128[_0xfef0('0x4e')][_0xfef0('0x69')]?_0x303128[_0xfef0('0x4e')]:_0x2b3263[_0xfef0('0x4a')];if(!_0x30f7d5['query'][_0xfef0('0x10d')](_0xfef0('0x50'))){_0x303128[_0xfef0('0x30')]=qs[_0xfef0('0x30')](_0x30f7d5[_0xfef0('0x4b')][_0xfef0('0x30')]);_0x303128['offset']=qs[_0xfef0('0x2e')](_0x30f7d5[_0xfef0('0x4b')][_0xfef0('0x2e')]);}_0x303128[_0xfef0('0x9d')]=qs['sort'](_0x30f7d5[_0xfef0('0x4b')][_0xfef0('0x51')]);_0x303128['where']=qs[_0xfef0('0x4c')](_[_0xfef0('0x53')](_0x30f7d5[_0xfef0('0x4b')],_0x2b3263[_0xfef0('0x4c')]));_0x303128[_0xfef0('0x52')][_0xfef0('0xba')]=_0x273e8b['id'];if(_0x30f7d5[_0xfef0('0x4b')][_0xfef0('0x92')]){_0x303128['where']=_[_0xfef0('0xa9')](_0x303128[_0xfef0('0x52')],{'$or':_['map'](_0x303128['attributes'],function(_0x3081e){var _0xd34b68={};_0xd34b68[_0x3081e]={'$like':'%'+_0x30f7d5[_0xfef0('0x4b')]['filter']+'%'};return _0xd34b68;})});}_0x303128[_0xfef0('0x52')][_0xfef0('0xf9')]=![];if(_0x30f7d5['query']['id']){_0x303128[_0xfef0('0x52')]['id']={'$gt':_0x30f7d5[_0xfef0('0x4b')]['id']};}_0x303128=_[_0xfef0('0xa9')]({},_0x303128,_0x30f7d5[_0xfef0('0xc1')]);return db[_0xfef0('0xd3')]['count']({'where':_0x303128[_0xfef0('0x52')]})['then'](function(_0x63bcae){_0x43e758['count']=_0x63bcae;_0x303128[_0xfef0('0xc0')]=[];if(_0x30f7d5[_0xfef0('0x4b')][_0xfef0('0x10e')]){_0x303128['include'][_0xfef0('0x44')]({'model':db[_0xfef0('0x7e')],'as':'User','attributes':['id','fullname',_0xfef0('0xf4')]});}if(_0x30f7d5[_0xfef0('0x4b')][_0xfef0('0xbf')]){_0x303128['include']=[{'all':!![]}];}return db[_0xfef0('0xd3')][_0xfef0('0x10c')](_0x303128);})['then'](function(_0x527d0d){_0x43e758[_0xfef0('0xbc')]=_0x527d0d;return _0x43e758;});}})[_0xfef0('0x22')](respondWithFilteredResult(_0x1a53fa,_0x303128))['catch'](handleError(_0x1a53fa,null));};exports[_0xfef0('0x10f')]=function(_0x3f68ed,_0x45a5e8,_0x33cecb){return db[_0xfef0('0x46')][_0xfef0('0x6a')]({'where':{'id':_0x3f68ed[_0xfef0('0xbd')]['id']}})[_0xfef0('0x22')](handleEntityNotFound(_0x45a5e8,null))[_0xfef0('0x22')](function(_0x53ce05){if(_0x53ce05){return _0x53ce05[_0xfef0('0x110')](_0x3f68ed[_0xfef0('0x3b')][_0xfef0('0x109')],_[_0xfef0('0x111')](_0x3f68ed[_0xfef0('0x3b')],[_0xfef0('0x109'),'id'])||{})['spread'](function(){return db[_0xfef0('0x7a')][_0xfef0('0x10c')]({'attributes':['id','name','color'],'where':{'id':_0x3f68ed[_0xfef0('0x3b')][_0xfef0('0x109')]}});})[_0xfef0('0x22')](function(_0x4697ee){socket[_0xfef0('0x112')]('chatInteractionTags:save',{'id':Number(_0x3f68ed[_0xfef0('0xbd')]['id']),'tags':_0x4697ee||[]});return{'id':Number(_0x3f68ed[_0xfef0('0xbd')]['id']),'tags':_0x4697ee||[]};});}})[_0xfef0('0x22')](respondWithResult(_0x45a5e8,null))['catch'](handleError(_0x45a5e8,null));};exports[_0xfef0('0x113')]=function(_0x2a229b,_0xcb6d50,_0x53ed7e){return db['ChatInteraction'][_0xfef0('0x6a')]({'where':{'id':_0x2a229b[_0xfef0('0xbd')]['id']}})[_0xfef0('0x22')](handleEntityNotFound(_0xcb6d50,null))['then'](function(_0x241763){if(_0x241763){return _0x241763[_0xfef0('0x113')](_0x2a229b['query'][_0xfef0('0x109')]);}})[_0xfef0('0x22')](respondWithStatusCode(_0xcb6d50,null))['catch'](handleError(_0xcb6d50,null));};exports[_0xfef0('0x114')]=function(_0x57e2d8,_0x3fdeae){var _0x30b0a9=moment()[_0xfef0('0x115')]()['toString']();var _0x416d36=path[_0xfef0('0xe5')](config['root'],_0xfef0('0x116'),_0xfef0('0x117'),_0xfef0('0x118'));var _0x50b3d7=path[_0xfef0('0xe5')](config[_0xfef0('0xe6')],_0xfef0('0x116'),_0xfef0('0x117'),_0xfef0('0x119'));var _0x2a9a1e=path[_0xfef0('0xe5')](_0x416d36,_0x30b0a9);var _0x584c9b=util[_0xfef0('0xea')](_0xfef0('0x11a'),_0x57e2d8[_0xfef0('0xbd')]['id'],_0x30b0a9);var _0x4f4c4e=path[_0xfef0('0xe5')](_0x416d36,_0x584c9b);var _0x1c6ab9=[];_0x1c6ab9[_0xfef0('0x44')]({'model':db[_0xfef0('0x7e')],'as':_0xfef0('0x7e'),'attributes':['id',_0xfef0('0xf5')],'raw':!![]});_0x1c6ab9['push']({'model':db[_0xfef0('0xd6')],'as':'Contact','attributes':['id',_0xfef0('0x11b'),_0xfef0('0x11c')],'raw':!![]});if(_0x57e2d8[_0xfef0('0x4b')][_0xfef0('0x119')]){_0x1c6ab9[_0xfef0('0x44')]({'model':db[_0xfef0('0xe3')],'as':'Attachment','raw':!![]});}var _0x937d8e=[{'model':db[_0xfef0('0xd3')],'as':_0xfef0('0xec'),'attributes':['id',_0xfef0('0x3b'),'createdAt',_0xfef0('0x11d'),_0xfef0('0xf9'),'read'],'include':_0x1c6ab9}];_0x937d8e['push']({'model':db[_0xfef0('0xc5')],'as':_0xfef0('0x11e'),'attributes':['id',_0xfef0('0x38')]});_0x937d8e[_0xfef0('0x44')]({'model':db['User'],'as':'Owner','attributes':['id',_0xfef0('0xf5')]});return db[_0xfef0('0x46')][_0xfef0('0x6a')]({'where':{'id':_0x57e2d8[_0xfef0('0xbd')]['id']},'include':_0x937d8e})[_0xfef0('0x22')](handleEntityNotFound(_0x3fdeae,null))['then'](function(_0x2978cc){if(_0x2978cc){var _0x81bcee=_0x2978cc['get']({'plain':!![]});fs[_0xfef0('0x11f')](_0x2a9a1e);var _0xc8d0ca={'channel':_0xfef0('0x120'),'account':_0x81bcee[_0xfef0('0x11e')][_0xfef0('0x38')],'agent':_0x81bcee[_0xfef0('0x121')]?_0x81bcee['Owner']['fullname']:_0xfef0('0x122'),'createdAt':moment(_0x81bcee[_0xfef0('0x87')])[_0xfef0('0xea')](_0xfef0('0x10b'))['toString'](),'closedAt':_0x81bcee['closed']?moment(_0x81bcee['closedAt'])[_0xfef0('0xea')](_0xfef0('0x10b'))[_0xfef0('0xa7')]():'','disposition':_0x81bcee[_0xfef0('0xdb')],'chatInfo':{'browser':_0x81bcee[_0xfef0('0x123')],'os':_0x81bcee[_0xfef0('0x124')],'referer':_0x81bcee['referer'],'customerIp':_0x81bcee['customerIp'],'customerPort':_0x81bcee['customerPort']?_0x81bcee['customerPort']:'N.A.'},'messages':_(_0x81bcee[_0xfef0('0xec')])['tail']()[_0xfef0('0x92')]({'secret':![]})[_0xfef0('0x7b')](function(_0x46ab62){if(_0x46ab62[_0xfef0('0xe3')]){var _0x3507a8=path['join'](_0x50b3d7,_0x46ab62[_0xfef0('0xe3')][_0xfef0('0xde')]);if(fs[_0xfef0('0x125')](_0x3507a8)){fs['createReadStream'](_0x3507a8)[_0xfef0('0x126')](fs[_0xfef0('0x127')](path[_0xfef0('0xe5')](_0x2a9a1e,_0x46ab62[_0xfef0('0xe3')][_0xfef0('0xde')])));}}return{'date':moment(_0x46ab62[_0xfef0('0x87')])[_0xfef0('0xea')](_0xfef0('0x10b'))[_0xfef0('0xa7')](),'sender':_0x46ab62[_0xfef0('0x11d')]===_0xfef0('0xd2')?_0x46ab62[_0xfef0('0x7e')]?_0x46ab62[_0xfef0('0x7e')][_0xfef0('0xf5')]:_0xfef0('0xef'):_0x46ab62[_0xfef0('0x70')][_0xfef0('0x11b')]+(_0x46ab62[_0xfef0('0x70')][_0xfef0('0x11c')]?'\x20'+_0x46ab62[_0xfef0('0x70')]['lastName']:''),'body':_0x46ab62['Attachment']?_0x46ab62['Attachment']['basename']:_0x46ab62[_0xfef0('0x3b')],'direction':_0x46ab62[_0xfef0('0x11d')]===_0xfef0('0xd2')?'A':'C','secret':_0x46ab62['secret'],'read':_0x46ab62[_0xfef0('0x8e')],'attachment':_0x46ab62[_0xfef0('0xe3')]};})[_0xfef0('0x6c')]()};return ejs[_0xfef0('0x128')](path['join'](config['root'],'server',_0xfef0('0x129'),_0xfef0('0x12a')),{'interaction':_0xc8d0ca})[_0xfef0('0x22')](function(_0x2b1f64){var _0x55ecff=path[_0xfef0('0xe5')](_0x2a9a1e,_0xfef0('0x12b')+_0x81bcee['id']+'-'+_0x30b0a9+'.pdf');var _0x409147={'path':_0x55ecff,'channel':_0xfef0('0x120'),'interactionId':_0x81bcee['id']};return pdf[_0xfef0('0x12c')](_0x2b1f64,_0x409147);})[_0xfef0('0x22')](function(){return new BPromise(function(_0x27856d,_0x44081d){zipdir(_0x2a9a1e,{'saveTo':_0x4f4c4e},function(_0x177c9b,_0x322672){if(_0x177c9b)return _0x44081d(_0x177c9b);return _0x27856d(_0x322672);});})[_0xfef0('0x22')](function(){return new BPromise(function(_0x102b4e,_0x2a206b){rimraf(_0x2a9a1e,function(_0x279f5b){if(_0x279f5b)_0x2a206b(_0x279f5b);return _0x102b4e();});});})[_0xfef0('0x22')](function(){return _0x3fdeae[_0xfef0('0x114')](_0x4f4c4e,_0x584c9b,function(_0x44603e){if(_0x44603e){console['log'](_0xfef0('0x12d'),_0x44603e);}else{fs['unlinkSync'](_0x4f4c4e);}});});});}else{return _0x3fdeae[_0xfef0('0x2b')](0xc8);}})['catch'](handleError(_0x3fdeae,null));};
\ No newline at end of file
+var _0x8603=['Unauthorized','ChatOfflineMessageId','join','root','server/files/attachments/','offline-chat/','close','server/files/chat/upload/','format','transcript-%s.txt','now','pathTranscript','Messages','CmContact','%s%d','agentAlias','System','Visitor','agentIdentifier','website_alias','agent_alias','alias','agent_fullname','[%s]\x20%s:\x20%s\x0a','MM/DD/YYYY\x20HH:mm:ss','direction','secret','appendFileSync','MailServerOut','Smtp','service','host','port','secure','auth','pass','SendMail','sendMail','\x22%s\x22\x20<%s>','Mail\x20Transcript','Hi\x20%s,\x20attached\x20you\x20can\x20find\x20your\x20transcript\x20file.\x20\x0a\x0aRegards.\x20\x0a\x0a','mailTranscript','addMessage','ids','omit','getMessages','nolimit','pick','YYYY-MM-DD\x20HH:mm:ss','includeAll','findAll','rows','getMyMessages','hasOwnProperty','includeAgent','addTags','setTags','spread','chatInteractionTags:save','removeTags','download','unix','server','files','attachments','Attachment','Account','Owner','mkdirSync','Chat','N.A.','closedAt','disposition','osName','referer','customerIp','customerPort','tail','existsSync','createReadStream','pipe','createWriteStream','lastName','renderFile','views','transcript-','.pdf','createPdfFromHTML','log','err','unlinkSync','rimraf','zip-dir','fast-json-patch','bluebird','mustache','util','sox','ejs','fs-extra','lodash','squel','crypto','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/export/pdf','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./chatInteraction.socket','register','client','http','request','info','ChatInteraction,\x20%s,\x20%s','request\x20sent','ChatInteraction,\x20%s,\x20%s,\x20%s','stringify','error','code','message','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','save','update','then','stack','name','send','render','contact','agent','interaction','account','Users','fullname','Tags','TagIds','split','push','catch','index','map','ChatInteraction','rawAttributes','fieldName','type','key','model','query','filters','intersection','attributes','fields','length','order','sort','where','field','color','from','tools_tags','select','u.id','u.fullname','user_has_chat_interactions','left_join','users','u.id\x20=\x20ui.UserId','cm_contacts','o.id\x20=\x20i.UserId','chat_websites','chat_messages','me.ChatInteractionId\x20=\x20i.id','chat_interaction_has_tags','it.ChatInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','expr','search','sqlOperator','conditions','find','unreadMessages','value','`\x20=\x200','having','Contact','operator','$substring','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','ContactId','buildExpression','text','Tag','forEach','User','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','start','body','keys','some','isEmpty','ChatWebsiteId','i.ChatWebsiteId\x20IN\x20?','concat','createdAt','parse','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','isArray','tag','filter','replace','isNumeric','i.id\x20LIKE\x20?','MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','group','i.id','Sequelize','clone','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','contactName','t.id\x20IN\x20?','i.ChatWebsiteId\x20IS\x20NOT\x20NULL','user','getChatWebsites','i.ChatWebsiteId\x20IS\x20NULL','role','sequelize','toString','keyBy','merge','a.key','Account.key','Account.mandatoryDisposition','CASE\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END','i.*','c.firstName','c.lastName','Contact.lastName','c.email','Contact.email','Contact.phone','c.mobile','c.fax','Contact.fax','o.fullname','Owner.fullname','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.ChatInteractionId\x20IN\x20?','groupBy','ChatInteractionId','all','show','params','include','options','create','describe','createVidaooSession','findOne','ChatWebsite','vidaooApiKey','vidaooEscalation','vidaooMetadata','email','https://api-vidaoo.xcally.com/api/v1/meetings','vidaooTopic','isNull','vidaooNote','follow','ValidationError','Error\x20in\x20Vidaoo\x20configuration','out','ChatMessage','customUpdate','abandon','Interaction\x20already\x20assigned','closed','AbandonInteraction','file','originalname','basename','mimetype','attachmentDownload'];(function(_0x313659,_0x53838f){var _0x1410fa=function(_0x19fbab){while(--_0x19fbab){_0x313659['push'](_0x313659['shift']());}};_0x1410fa(++_0x53838f);}(_0x8603,0x190));var _0x3860=function(_0x370ec4,_0x22420d){_0x370ec4=_0x370ec4-0x0;var _0xeb47c0=_0x8603[_0x370ec4];return _0xeb47c0;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x3860('0x0'));var zipdir=require(_0x3860('0x1'));var jsonpatch=require(_0x3860('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x3860('0x3'));var Mustache=require(_0x3860('0x4'));var util=require(_0x3860('0x5'));var path=require('path');var sox=require(_0x3860('0x6'));var csv=require('to-csv');var ejs=require(_0x3860('0x7'));var fs=require('fs');var fs_extra=require(_0x3860('0x8'));var _=require(_0x3860('0x9'));var squel=require(_0x3860('0xa'));var crypto=require(_0x3860('0xb'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x3860('0xc'));var Papa=require(_0x3860('0xd'));var Redis=require('ioredis');var authService=require(_0x3860('0xe'));var qs=require(_0x3860('0xf'));var as=require('../../components/parsers/advancedSearch');var pdf=require(_0x3860('0x10'));var hardwareService=require(_0x3860('0x11'));var logger=require('../../config/logger')(_0x3860('0x12'));var utils=require(_0x3860('0x13'));var config=require('../../config/environment');var licenseUtil=require(_0x3860('0x14'));var db=require(_0x3860('0x15'))['db'];config[_0x3860('0x16')]=_[_0x3860('0x17')](config[_0x3860('0x16')],{'host':_0x3860('0x18'),'port':0x18eb});var socket=require(_0x3860('0x19'))(new Redis(config[_0x3860('0x16')]));require(_0x3860('0x1a'))[_0x3860('0x1b')](socket);var jayson=require('jayson/promise');var client=jayson[_0x3860('0x1c')][_0x3860('0x1d')]({'port':0x232b});var client9004=jayson[_0x3860('0x1c')][_0x3860('0x1d')]({'port':0x232c});function respondWithRpcPromise(_0x1055b3,_0xfa0c9a,_0x2d8a3a,_0x378305){return new BPromise(function(_0x311fdb,_0x3c0d91){var _0x3e51b4=_0x378305||client;return _0x3e51b4[_0x3860('0x1e')](_0x1055b3,_0x2d8a3a)['then'](function(_0x4863bd){logger[_0x3860('0x1f')](_0x3860('0x20'),_0xfa0c9a,_0x3860('0x21'));logger['debug'](_0x3860('0x22'),_0xfa0c9a,_0x3860('0x21'),JSON[_0x3860('0x23')](_0x4863bd));if(_0x4863bd[_0x3860('0x24')]){if(_0x4863bd[_0x3860('0x24')][_0x3860('0x25')]===0x1f4){logger[_0x3860('0x24')](_0x3860('0x20'),_0xfa0c9a,_0x4863bd[_0x3860('0x24')][_0x3860('0x26')]);return _0x3c0d91(_0x4863bd[_0x3860('0x24')][_0x3860('0x26')]);}logger[_0x3860('0x24')](_0x3860('0x20'),_0xfa0c9a,_0x4863bd[_0x3860('0x24')]['message']);return _0x311fdb(_0x4863bd[_0x3860('0x24')][_0x3860('0x26')]);}else{logger[_0x3860('0x1f')](_0x3860('0x20'),_0xfa0c9a,_0x3860('0x21'));_0x311fdb(_0x4863bd['result'][_0x3860('0x26')]);}})['catch'](function(_0x577750){logger[_0x3860('0x24')](_0x3860('0x20'),_0xfa0c9a,_0x577750);_0x3c0d91(_0x577750);});});}function respondWithStatusCode(_0x54b5ec,_0x4d9a90){_0x4d9a90=_0x4d9a90||0xcc;return function(_0x5f42d5){if(_0x5f42d5){return _0x54b5ec[_0x3860('0x27')](_0x4d9a90);}return _0x54b5ec[_0x3860('0x28')](_0x4d9a90)[_0x3860('0x29')]();};}function respondWithResult(_0x371f3a,_0x9332a5){_0x9332a5=_0x9332a5||0xc8;return function(_0x228d34){if(_0x228d34){return _0x371f3a['status'](_0x9332a5)['json'](_0x228d34);}};}function respondWithFilteredResult(_0x389bd0,_0x1f1809){return function(_0x5a9af2){if(_0x5a9af2){var _0x2551f4=typeof _0x1f1809[_0x3860('0x2a')]===_0x3860('0x2b')&&typeof _0x1f1809[_0x3860('0x2c')]===_0x3860('0x2b');var _0x4bbae9=_0x5a9af2[_0x3860('0x2d')];var _0xf624ba=_0x2551f4?0x0:_0x1f1809[_0x3860('0x2a')];var _0x4bd90c=_0x2551f4?_0x5a9af2[_0x3860('0x2d')]:_0x1f1809['offset']+_0x1f1809[_0x3860('0x2c')];var _0x4825f0;if(_0x4bd90c>=_0x4bbae9){_0x4bd90c=_0x4bbae9;_0x4825f0=0xc8;}else{_0x4825f0=0xce;}_0x389bd0[_0x3860('0x28')](_0x4825f0);return _0x389bd0[_0x3860('0x2e')](_0x3860('0x2f'),_0xf624ba+'-'+_0x4bd90c+'/'+_0x4bbae9)['json'](_0x5a9af2);}return null;};}function patchUpdates(_0x39c751){return function(_0x451b0c){try{jsonpatch['apply'](_0x451b0c,_0x39c751,!![]);}catch(_0x1c94cc){return BPromise['reject'](_0x1c94cc);}return _0x451b0c[_0x3860('0x30')]();};}function saveUpdates(_0x3a577a,_0x35185c){return function(_0x2fc231){if(_0x2fc231){return _0x2fc231[_0x3860('0x31')](_0x3a577a)[_0x3860('0x32')](function(_0x1d3fd0){return _0x1d3fd0;});}return null;};}function removeEntity(_0x4d30bc,_0x1a48b6){return function(_0x396ccf){if(_0x396ccf){return _0x396ccf['destroy']()[_0x3860('0x32')](function(){_0x4d30bc[_0x3860('0x28')](0xcc)[_0x3860('0x29')]();});}};}function handleEntityNotFound(_0x5af661,_0x523cc1){return function(_0x285b1b){if(!_0x285b1b){_0x5af661[_0x3860('0x27')](0x194);}return _0x285b1b;};}function handleError(_0x3abf18,_0xa921ed){_0xa921ed=_0xa921ed||0x1f4;return function(_0x59271f){logger['error'](_0x59271f[_0x3860('0x33')]);if(_0x59271f[_0x3860('0x34')]){delete _0x59271f[_0x3860('0x34')];}_0x3abf18[_0x3860('0x28')](_0xa921ed)[_0x3860('0x35')](_0x59271f);};}function getMustacheRender(_0x4df2a9,_0x424424){return Mustache[_0x3860('0x36')](_0x4df2a9,_['merge'](_0x424424['body'],{'contact':_0x424424[_0x3860('0x37')],'message':_0x424424[_0x3860('0x26')],'agent':_0x424424[_0x3860('0x38')],'interaction':_0x424424[_0x3860('0x39')],'account':_0x424424[_0x3860('0x3a')]}))||'';}function getInteractionUsers(_0x592311,_0x28f04d){return new BPromise(function(_0x510aef,_0x112600){try{if(_0x28f04d[_0x592311['id']]){_0x592311[_0x3860('0x3b')]=_['map'](_0x28f04d[_0x592311['id']],function(_0x36d9bd){return{'id':_0x36d9bd['id'],'fullname':_0x36d9bd[_0x3860('0x3c')]};});}}catch(_0x4f3303){_0x112600(_0x4f3303);}_0x510aef(_0x592311);});}function getInteractionTags(_0x1ef9aa,_0xc7d34d){return new BPromise(function(_0x15bd2c,_0xf346e){try{if(_0x1ef9aa['TagIds']){_0x1ef9aa[_0x3860('0x3d')]=[];_0x1ef9aa[_0x3860('0x3e')][_0x3860('0x3f')](',')['forEach'](function(_0x3a87e5){_0x1ef9aa['Tags'][_0x3860('0x40')](_0xc7d34d[_0x3a87e5]);});}delete _0x1ef9aa[_0x3860('0x3e')];}catch(_0x405bfc){_0xf346e(_0x405bfc);}_0x15bd2c(_0x1ef9aa);});}function updateChatInteraction(_0x3f613f,_0x2220c8,_0x3f4216){return new BPromise(function(_0x4e0a44,_0xbbbf01){return getInteractionUsers(_0x3f613f,_0x3f4216)[_0x3860('0x32')](function(_0x5dc78f){return getInteractionTags(_0x5dc78f,_0x2220c8);})['then'](function(_0x2938d4){_0x4e0a44(_0x2938d4);})[_0x3860('0x41')](function(_0x4f2f53){_0xbbbf01(_0x4f2f53);});});}exports[_0x3860('0x42')]=function(_0x30d8eb,_0x4c6c23){var _0xa6791a={},_0x56a650={},_0x392dc3={'count':0x0,'rows':[]};var _0x37e5c3=_[_0x3860('0x43')](db[_0x3860('0x44')][_0x3860('0x45')],function(_0x15ebbd){return{'name':_0x15ebbd[_0x3860('0x46')],'type':_0x15ebbd[_0x3860('0x47')][_0x3860('0x48')]};});_0x56a650[_0x3860('0x49')]=_[_0x3860('0x43')](_0x37e5c3,'name');_0x56a650[_0x3860('0x4a')]=_['keys'](_0x30d8eb[_0x3860('0x4a')]);_0x56a650[_0x3860('0x4b')]=_[_0x3860('0x4c')](_0x56a650[_0x3860('0x49')],_0x56a650[_0x3860('0x4a')]);_0xa6791a[_0x3860('0x4d')]=_[_0x3860('0x4c')](_0x56a650[_0x3860('0x49')],qs['fields'](_0x30d8eb[_0x3860('0x4a')][_0x3860('0x4e')]));_0xa6791a[_0x3860('0x4d')]=_0xa6791a['attributes'][_0x3860('0x4f')]?_0xa6791a[_0x3860('0x4d')]:_0x56a650[_0x3860('0x49')];if(!_0x30d8eb[_0x3860('0x4a')]['hasOwnProperty']('nolimit')){_0xa6791a[_0x3860('0x2c')]=qs['limit'](_0x30d8eb[_0x3860('0x4a')][_0x3860('0x2c')]);_0xa6791a[_0x3860('0x2a')]=qs['offset'](_0x30d8eb[_0x3860('0x4a')]['offset']);}_0xa6791a[_0x3860('0x50')]=qs['sort'](_0x30d8eb[_0x3860('0x4a')][_0x3860('0x51')]);_0xa6791a[_0x3860('0x52')]=qs['filters'](_['pick'](_0x30d8eb[_0x3860('0x4a')],_0x56a650[_0x3860('0x4b')]),_0x37e5c3);var _0x478dd9=[];var _0x3910f5=squel['select']()[_0x3860('0x53')]('id')[_0x3860('0x53')](_0x3860('0x34'))[_0x3860('0x53')](_0x3860('0x54'))[_0x3860('0x55')](_0x3860('0x56'));var _0x5a9987=squel[_0x3860('0x57')]()[_0x3860('0x53')](_0x3860('0x58'))[_0x3860('0x53')](_0x3860('0x59'))[_0x3860('0x53')]('ui.ChatInteractionId')[_0x3860('0x55')](_0x3860('0x5a'),'ui')[_0x3860('0x5b')](_0x3860('0x5c'),'u',_0x3860('0x5d'));var _0x1e2b5d=squel[_0x3860('0x57')]()[_0x3860('0x55')]('chat_interactions','i')[_0x3860('0x5b')](_0x3860('0x5e'),'c','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL')[_0x3860('0x5b')](_0x3860('0x5c'),'o',_0x3860('0x5f'))['left_join'](_0x3860('0x60'),'a','a.id\x20=\x20i.ChatWebsiteId')[_0x3860('0x5b')](_0x3860('0x61'),'me',_0x3860('0x62'))[_0x3860('0x5b')](_0x3860('0x63'),'it',_0x3860('0x64'))[_0x3860('0x5b')](_0x3860('0x56'),'t',_0x3860('0x65'));var _0x151492=squel[_0x3860('0x66')]();var _0x2bac24=[];var _0x58147d=squel['expr']();var _0x5111e0;if(_0x30d8eb[_0x3860('0x4a')]['search']){_0x5111e0=as['parseSearch'](_0x30d8eb[_0x3860('0x4a')][_0x3860('0x67')]);var _0x2ff440=_0x5111e0[_0x3860('0x68')];for(var _0x3d6c17=0x0;_0x3d6c17<_0x5111e0[_0x3860('0x69')]['length'];_0x3d6c17++){var _0x49ec68=_0x5111e0['conditions'][_0x3d6c17];var _0x1d6c70='i';var _0x1c1da4=_[_0x3860('0x6a')](_0x37e5c3,['name',_0x49ec68[_0x3860('0x53')]]);if(!_0x1c1da4){switch(_0x49ec68['field']){case _0x3860('0x6b'):if(_0x49ec68[_0x3860('0x6c')]==0x1){_0x1e2b5d['having']('`'+_0x49ec68[_0x3860('0x53')]+_0x3860('0x6d'));}else{_0x1e2b5d[_0x3860('0x6e')]('`'+_0x49ec68[_0x3860('0x53')]+'`\x20>\x200');}break;case _0x3860('0x6f'):if(_0x49ec68[_0x3860('0x70')]===_0x3860('0x71')){if(_0x49ec68['value']['split']('\x20')[_0x3860('0x4f')]>0x1){_0x151492[_0x2ff440](_0x3860('0x72'),qs[_0x3860('0x73')](_0x49ec68[_0x3860('0x6c')]),null);}else{var _0x28a8b4='%'+_0x49ec68[_0x3860('0x6c')]+'%';_0x151492[_0x2ff440]('c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?',_0x28a8b4,_0x28a8b4,_0x28a8b4);}}else{_0x1c1da4=_[_0x3860('0x6a')](_0x37e5c3,[_0x3860('0x34'),'ContactId']);_0x49ec68[_0x3860('0x53')]=_0x3860('0x74');_0x3427a5=as[_0x3860('0x75')](_0x1d6c70,_0x1c1da4[_0x3860('0x47')],_0x49ec68);_0x151492[_0x2ff440](_0x3427a5[_0x3860('0x76')],_0x3427a5[_0x3860('0x6c')]['start'],_0x3427a5[_0x3860('0x6c')][_0x3860('0x29')]);}break;case _0x3860('0x77'):var _0x27e5ab=_0x49ec68[_0x3860('0x6c')][_0x3860('0x3f')](',')['map'](function(_0x1ae31b){return Number(_0x1ae31b);});_0x27e5ab[_0x3860('0x78')](function(_0x1c33dc){_0x58147d['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x1c33dc+',%');});_0x2bac24=_['union'](_0x2bac24,_0x27e5ab);break;case _0x3860('0x79'):if(_0x49ec68[_0x3860('0x70')]===_0x3860('0x71')){_0x151492[_0x2ff440](_0x3860('0x7a'),'%'+_0x49ec68[_0x3860('0x6c')]+'%',null);}else{_0x1c1da4=_['find'](_0x37e5c3,['name',_0x3860('0x7b')]);_0x49ec68[_0x3860('0x53')]='UserId';_0x3427a5=as['buildExpression'](_0x1d6c70,_0x1c1da4[_0x3860('0x47')],_0x49ec68);_0x151492[_0x2ff440](_0x3427a5[_0x3860('0x76')],_0x3427a5['value'][_0x3860('0x7c')],_0x3427a5[_0x3860('0x6c')][_0x3860('0x29')]);}break;case _0x3860('0x7d'):_0x3427a5=as['buildExpression']('me',null,_0x49ec68);_0x151492[_0x2ff440](_0x3427a5[_0x3860('0x76')],_0x3427a5[_0x3860('0x6c')]['start'],_0x3427a5['value'][_0x3860('0x29')]);break;}}else{var _0x3427a5=as['buildExpression'](_0x1d6c70,_0x1c1da4[_0x3860('0x47')],_0x49ec68);_0x151492[_0x2ff440](_0x3427a5['text'],_0x3427a5[_0x3860('0x6c')]['start'],_0x3427a5['value'][_0x3860('0x29')]);}}}else{var _0x49c356=_(_0x30d8eb[_0x3860('0x4a')])[_0x3860('0x7e')]()[_0x3860('0x43')](function(_0x2fd2f4){return _[_0x3860('0x7f')](_0x37e5c3,[_0x3860('0x34'),_0x2fd2f4])?_0x2fd2f4:undefined;})['compact']()[_0x3860('0x6c')]();if(!_[_0x3860('0x80')](_0x49c356)){_0x49c356[_0x3860('0x78')](function(_0x5d7cc4){if(_0x5d7cc4===_0x3860('0x81')){_0x1e2b5d['where'](_0x3860('0x82'),[][_0x3860('0x83')](_0x30d8eb['query'][_0x5d7cc4]));}else if(_0x5d7cc4===_0x3860('0x84')){var _0x2cd731=JSON[_0x3860('0x85')](_0x30d8eb['query'][_0x5d7cc4])['$gte'];var _0x5a282a=JSON['parse'](_0x30d8eb[_0x3860('0x4a')][_0x5d7cc4])[_0x3860('0x86')];_0x1e2b5d[_0x3860('0x52')](_0x3860('0x87'),_0x2cd731,_0x5a282a);}else{if(_0x30d8eb['query'][_0x5d7cc4]==='null'){_0x1e2b5d[_0x3860('0x52')]('i.'+_0x5d7cc4+_0x3860('0x88'));}else{_0x1e2b5d[_0x3860('0x52')]('i.'+_0x5d7cc4+_0x3860('0x89'),_0x30d8eb['query'][_0x5d7cc4]);}}});}if(_0x30d8eb[_0x3860('0x4a')][_0x3860('0x8a')]){if(_0x30d8eb['query']['read']==0x1){_0x1e2b5d[_0x3860('0x6e')](_0x3860('0x8b'));}else{_0x1e2b5d[_0x3860('0x6e')](_0x3860('0x8c'));}}if(_0x30d8eb['query']['tag']){_0x2bac24=_[_0x3860('0x8d')](_0x30d8eb['query'][_0x3860('0x8e')])?_0x30d8eb[_0x3860('0x4a')]['tag']:new Array(_0x30d8eb['query']['tag']);_0x2bac24[_0x3860('0x78')](function(_0x36116e){_0x58147d['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x36116e+',%');});}if(_0x30d8eb[_0x3860('0x4a')][_0x3860('0x8f')]){var _0x2351fe=_0x30d8eb[_0x3860('0x4a')][_0x3860('0x8f')]['replace']('\x5c','\x5c\x5c')[_0x3860('0x90')](/'/g,'\x27\x27');if(qs[_0x3860('0x91')](_0x2351fe)){_0x151492['or'](_0x3860('0x92'),_0x2351fe+'%');}else{_0x151492['or'](_0x3860('0x93'),qs[_0x3860('0x73')](_0x2351fe))['or']('CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?',_0x2351fe+'%');}}}_0x1e2b5d[_0x3860('0x52')](_0x151492);_0x1e2b5d[_0x3860('0x94')](_0x3860('0x95'));var _0x41ee6f={'type':db[_0x3860('0x96')]['QueryTypes']['SELECT'],'raw':!![]};var _0x196c50=_0x1e2b5d[_0x3860('0x97')]();_0x196c50[_0x3860('0x53')](_0x3860('0x95'));_0x196c50[_0x3860('0x53')](_0x3860('0x98'),_0x3860('0x6b'));if(_0xa6791a['order']){_0xa6791a[_0x3860('0x50')][_0x3860('0x78')](function(_0x58eddd){var _0x1ff95b=_0x58eddd[0x0]===_0x3860('0x99')?_0x58eddd[0x0]:'i.'+_0x58eddd[0x0];_0x1e2b5d[_0x3860('0x50')](_0x1ff95b,_0x58eddd[0x1]==='DESC'?![]:!![]);});}if(!_[_0x3860('0x80')](_0x2bac24)){_0x1e2b5d[_0x3860('0x6e')](_0x58147d);_0x196c50['where'](_0x3860('0x9a'),_0x2bac24);}BPromise['resolve']()[_0x3860('0x32')](function(){if(!_0x5111e0){if(_0x30d8eb[_0x3860('0x4a')]['ChatWebsiteId'])return;_0x196c50[_0x3860('0x52')](_0x3860('0x9b'));_0x1e2b5d[_0x3860('0x52')](_0x3860('0x9b'));return;}if(_0x30d8eb[_0x3860('0x9c')]['role']!==_0x3860('0x38'))return;return _0x30d8eb[_0x3860('0x9c')][_0x3860('0x9d')]({'attributes':['id'],'raw':!![]})[_0x3860('0x32')](function(_0x3c9837){if(_['isEmpty'](_0x3c9837)){_0x196c50['where'](_0x3860('0x9e'));_0x1e2b5d[_0x3860('0x52')]('i.ChatWebsiteId\x20IS\x20NULL');}else{_0x196c50[_0x3860('0x52')](_0x3860('0x82'),_[_0x3860('0x43')](_0x3c9837,'id'));_0x1e2b5d[_0x3860('0x52')]('i.ChatWebsiteId\x20IN\x20?',_[_0x3860('0x43')](_0x3c9837,'id'));}});})['then'](function(){if(_0x30d8eb[_0x3860('0x9c')][_0x3860('0x9f')]===_0x3860('0x38')&&!_0x5111e0&&!_0x30d8eb[_0x3860('0x4a')][_0x3860('0x81')])return[];return db[_0x3860('0xa0')][_0x3860('0x4a')](_0x196c50['toString'](),_0x41ee6f);})[_0x3860('0x32')](function(_0x47396d){_0x392dc3['count']=_0x47396d['length'];if(_0x392dc3['count']===0x0)return[];return db['sequelize'][_0x3860('0x4a')](_0x3910f5[_0x3860('0xa1')](),_0x41ee6f)[_0x3860('0x32')](function(_0x1482cd){_0x478dd9=_[_0x3860('0xa2')](_0x1482cd,'id');_0x41ee6f=_[_0x3860('0xa3')](_0x41ee6f,{'model':db['ChatInteraction'],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x30d8eb[_0x3860('0x4a')]['fields']){_0xa6791a[_0x3860('0x4d')][_0x3860('0x78')](function(_0x897ea0){_0x1e2b5d[_0x3860('0x53')]('i.'+_0x897ea0);});}else{_0x1e2b5d[_0x3860('0x53')](_0x3860('0x98'),_0x3860('0x6b'));_0x1e2b5d[_0x3860('0x53')](_0x3860('0xa4'),_0x3860('0xa5'));_0x1e2b5d[_0x3860('0x53')]('a.mandatoryDisposition',_0x3860('0xa6'));_0x1e2b5d[_0x3860('0x53')](_0x3860('0xa7'),'contactName');_0x1e2b5d[_0x3860('0x53')](_0x3860('0xa8'));_0x1e2b5d[_0x3860('0x53')](_0x3860('0xa9'),'Contact.firstName');_0x1e2b5d[_0x3860('0x53')](_0x3860('0xaa'),_0x3860('0xab'));_0x1e2b5d['field'](_0x3860('0xac'),_0x3860('0xad'));_0x1e2b5d[_0x3860('0x53')]('c.phone',_0x3860('0xae'));_0x1e2b5d[_0x3860('0x53')](_0x3860('0xaf'),'Contact.mobile');_0x1e2b5d[_0x3860('0x53')](_0x3860('0xb0'),_0x3860('0xb1'));_0x1e2b5d['field'](_0x3860('0xb2'),_0x3860('0xb3'));_0x1e2b5d[_0x3860('0x53')]('o.internal',_0x3860('0xb4'));_0x1e2b5d['field'](_0x3860('0xb5'),'TagIds');}if(_0xa6791a[_0x3860('0x2c')])_0x1e2b5d[_0x3860('0x2c')](_0xa6791a[_0x3860('0x2c')]);if(_0xa6791a[_0x3860('0x2a')])_0x1e2b5d[_0x3860('0x2a')](_0xa6791a[_0x3860('0x2a')]);return db[_0x3860('0xa0')][_0x3860('0x4a')](_0x1e2b5d[_0x3860('0xa1')](),_0x41ee6f);})[_0x3860('0x32')](function(_0x10b4e8){if(_0x10b4e8[_0x3860('0x4f')]>0x0)_0x5a9987[_0x3860('0x52')](_0x3860('0xb6'),_[_0x3860('0x43')](_0x10b4e8,'id'));return db[_0x3860('0xa0')][_0x3860('0x4a')](_0x5a9987[_0x3860('0xa1')](),_0x41ee6f)['then'](function(_0x37575b){var _0x1d6d2b=_[_0x3860('0xb7')](_0x37575b,_0x3860('0xb8'));var _0x3e6bf8=[];_0x10b4e8[_0x3860('0x78')](function(_0xffe2a1){_0x3e6bf8[_0x3860('0x40')](updateChatInteraction(_0xffe2a1,_0x478dd9,_0x1d6d2b));});return BPromise[_0x3860('0xb9')](_0x3e6bf8);});});})[_0x3860('0x32')](function(_0x3b932d){_0x392dc3['rows']=_0x3b932d;return _0x392dc3;})[_0x3860('0x32')](respondWithFilteredResult(_0x4c6c23,_0xa6791a))[_0x3860('0x41')](handleError(_0x4c6c23,null));};exports[_0x3860('0xba')]=function(_0x6334ca,_0x4a929e){var _0x1a1994={'raw':![],'where':{'id':_0x6334ca[_0x3860('0xbb')]['id']}},_0x2ece36={};_0x2ece36[_0x3860('0x49')]=_['keys'](db[_0x3860('0x44')]['rawAttributes']);_0x2ece36['query']=_[_0x3860('0x7e')](_0x6334ca[_0x3860('0x4a')]);_0x2ece36[_0x3860('0x4b')]=_[_0x3860('0x4c')](_0x2ece36[_0x3860('0x49')],_0x2ece36[_0x3860('0x4a')]);_0x1a1994[_0x3860('0x4d')]=_[_0x3860('0x4c')](_0x2ece36[_0x3860('0x49')],qs[_0x3860('0x4e')](_0x6334ca[_0x3860('0x4a')][_0x3860('0x4e')]));_0x1a1994[_0x3860('0x4d')]=_0x1a1994['attributes'][_0x3860('0x4f')]?_0x1a1994['attributes']:_0x2ece36[_0x3860('0x49')];if(_0x6334ca[_0x3860('0x4a')]['includeAll']){_0x1a1994[_0x3860('0xbc')]=[{'all':!![]}];}_0x1a1994=_[_0x3860('0xa3')]({},_0x1a1994,_0x6334ca[_0x3860('0xbd')]);return db[_0x3860('0x44')][_0x3860('0x6a')](_0x1a1994)[_0x3860('0x32')](handleEntityNotFound(_0x4a929e,null))[_0x3860('0x32')](respondWithResult(_0x4a929e,null))['catch'](handleError(_0x4a929e,null));};exports[_0x3860('0xbe')]=function(_0x6d1819,_0x9e1682){return db[_0x3860('0x44')][_0x3860('0xbe')](_0x6d1819['body'],{})[_0x3860('0x32')](respondWithResult(_0x9e1682,0xc9))['catch'](handleError(_0x9e1682,null));};exports['update']=function(_0x56af8c,_0x1059a4){if(_0x56af8c[_0x3860('0x7d')]['id']){delete _0x56af8c[_0x3860('0x7d')]['id'];}return db[_0x3860('0x44')][_0x3860('0x6a')]({'where':{'id':_0x56af8c[_0x3860('0xbb')]['id']}})[_0x3860('0x32')](handleEntityNotFound(_0x1059a4,null))[_0x3860('0x32')](saveUpdates(_0x56af8c['body'],null))[_0x3860('0x32')](respondWithResult(_0x1059a4,null))[_0x3860('0x41')](handleError(_0x1059a4,null));};exports['destroy']=function(_0x490884,_0x4428eb){return db[_0x3860('0x44')][_0x3860('0x6a')]({'where':{'id':_0x490884['params']['id']}})[_0x3860('0x32')](handleEntityNotFound(_0x4428eb,null))['then'](removeEntity(_0x4428eb,null))[_0x3860('0x41')](handleError(_0x4428eb,null));};exports['describe']=function(_0x41fd53,_0xf91fc2){return db['ChatInteraction'][_0x3860('0xbf')]()[_0x3860('0x32')](respondWithResult(_0xf91fc2,null))['catch'](handleError(_0xf91fc2,null));};exports[_0x3860('0xc0')]=function(_0x398bc1,_0x3312c4){var _0x501519=_0x398bc1[_0x3860('0xbb')]['id'];var _0x47fba5;var _0x3e3dac;var _0x18b845;return db['ChatInteraction'][_0x3860('0xc1')]({'where':{'id':_0x501519}})[_0x3860('0x32')](function(_0x2b1dc1){_0x47fba5=_0x2b1dc1;return db[_0x3860('0xc2')][_0x3860('0xc1')]({'where':{'id':_0x2b1dc1['ChatWebsiteId']},'attributes':['id',_0x3860('0xc3'),_0x3860('0xc4'),'vidaooTopic','vidaooNote',_0x3860('0xc5')],'raw':!![]});})['then'](function(_0xe27f6b){if(_0xe27f6b&&_0xe27f6b[_0x3860('0xc3')]&&_0xe27f6b['vidaooEscalation']){_0x3e3dac=_0xe27f6b;var _0x1041bf={'interaction':{'id':_0x501519},'agent':{'id':_0x398bc1['user']['id'],'name':_0x398bc1[_0x3860('0x9c')]['name'],'fullname':_0x398bc1[_0x3860('0x9c')][_0x3860('0x3c')],'email':_0x398bc1[_0x3860('0x9c')][_0x3860('0xc6')]},'contact':_0x398bc1['body'][_0x3860('0x37')],'account':_0x398bc1[_0x3860('0x7d')][_0x3860('0x3a')]};var _0x1e1baf={'rejectUnauthorized':![],'method':'POST','url':_0x3860('0xc7'),'headers':{'X-APIKEY':_0xe27f6b[_0x3860('0xc3')]},'body':{'duration':null,'scheduledAt':null,'participants':[_0x398bc1['user'][_0x3860('0xc6')]],'buttons':null,'topic':_0x3e3dac[_0x3860('0xc8')],'note':_[_0x3860('0xc9')](_0x3e3dac[_0x3860('0xca')])?null:getMustacheRender(_0x3e3dac['vidaooNote'],_0x1041bf),'metadata':null},'redirect':_0x3860('0xcb'),'json':!![]};try{if(!_[_0x3860('0xc9')](_0x3e3dac[_0x3860('0xc5')])){var _0x1ce6e6=getMustacheRender(_0x3e3dac['vidaooMetadata'],_0x1041bf);var _0x1df44=JSON['parse'](_0x1ce6e6);_0x1e1baf['body']['metadata']=_0x1df44;}}catch(_0x15b53f){throw new db[(_0x3860('0x96'))][(_0x3860('0xcc'))]('Error\x20in\x20conversion\x20vidaooMetadata');}return rp(_0x1e1baf);}else{throw new db[(_0x3860('0x96'))]['ValidationError'](_0x3860('0xcd'));}})[_0x3860('0x32')](function(_0x21c052){_0x18b845=_0x21c052;if(_0x18b845['id']){var _0x3a920b={'body':_0x18b845['join_url'],'ChatWebsiteId':_0x3e3dac['id'],'ChatInteractionId':_0x47fba5['id'],'direction':_0x3860('0xce'),'UserId':_0x398bc1[_0x3860('0x9c')]['id']};return db[_0x3860('0xcf')]['create'](_0x3a920b,{});}else{throw new db[(_0x3860('0x96'))][(_0x3860('0xcc'))]('Unable\x20to\x20create\x20Vidaoo\x20session');}})['then'](function(){return _0x47fba5['updateAttributes']({'vidaooSessionId':_0x18b845['id']});})['then'](respondWithResult(_0x3312c4,null))[_0x3860('0x41')](handleError(_0x3312c4,null));};exports[_0x3860('0xd0')]=function(_0x2a09a2,_0x266347){if(_0x2a09a2[_0x3860('0x7d')]['id']){delete _0x2a09a2[_0x3860('0x7d')]['id'];}return db[_0x3860('0x44')]['find']({'where':{'id':_0x2a09a2['params']['id']},'include':[{'model':db['CmContact'],'as':_0x3860('0x6f')}]})[_0x3860('0x32')](handleEntityNotFound(_0x266347,null))[_0x3860('0x32')](saveUpdates(_0x2a09a2['body'],null))[_0x3860('0x32')](respondWithResult(_0x266347,null))['catch'](handleError(_0x266347,null));};exports['abandon']=function(_0x5f0700,_0x46f630,_0x505ba2){if(_0x5f0700['body']['id']){delete _0x5f0700[_0x3860('0x7d')]['id'];}return db[_0x3860('0x44')][_0x3860('0x6a')]({'where':{'id':_0x5f0700[_0x3860('0xbb')]['id']}})['then'](function(_0x53392b){if(!_0x53392b){logger['error']('abandonInteraction,\x20%s,\x20%s,\x20%s',_0x3860('0xd1'),0x194,'entity\x20not\x20found');_0x46f630['sendStatus'](0x194);}else{if(_0x53392b[_0x3860('0x7b')]){throw new db[(_0x3860('0x96'))][(_0x3860('0xcc'))](_0x3860('0xd2'));}}return _0x53392b;})['then'](function(_0x6e541d){if(_0x6e541d){return _0x6e541d[_0x3860('0x31')]({'closed':_0x5f0700[_0x3860('0x7d')][_0x3860('0xd3')],'disposition':_0x5f0700['body']['disposition']})[_0x3860('0x32')](function(_0x55c19c){return _0x55c19c;});}})[_0x3860('0x32')](function(_0x4ab85d){return respondWithRpcPromise(_0x3860('0xd4'),_0x3860('0xd1'),_0x5f0700[_0x3860('0x7d')],client9004);})[_0x3860('0x32')](respondWithResult(_0x46f630,null))[_0x3860('0x41')](handleError(_0x46f630,null));};exports['attachmentUpload']=function(_0x5d3c4d,_0x5e3c54,_0x39e855){_0x5d3c4d[_0x3860('0x7d')][_0x3860('0x34')]=_0x5d3c4d[_0x3860('0xd5')][_0x3860('0xd6')];_0x5d3c4d['body'][_0x3860('0xd7')]=_0x5d3c4d[_0x3860('0xd5')]['filename'];_0x5d3c4d[_0x3860('0x7d')]['type']=_0x5d3c4d[_0x3860('0xd5')][_0x3860('0xd8')];return db['Attachment'][_0x3860('0xbe')](_0x5d3c4d[_0x3860('0x7d')])[_0x3860('0x32')](respondWithResult(_0x5e3c54,0xc9))[_0x3860('0x41')](handleError(_0x5e3c54,null));};exports[_0x3860('0xd9')]=function(_0x3e2dfc,_0x135e84,_0x199bbc){return db[_0x3860('0x44')][_0x3860('0xc1')]({'where':{'id':_0x3e2dfc[_0x3860('0xbb')]['id']},'raw':!![]})[_0x3860('0x32')](handleEntityNotFound(_0x135e84,null))['then'](function(_0x369a4b){if(_0x369a4b){if(_0x369a4b['closed']){return _0x135e84[_0x3860('0x28')](0x193)['json']({'status':0x193,'message':_0x3860('0xda')});}return db['Attachment'][_0x3860('0xc1')]({'where':{'id':_0x3e2dfc['query']['attachId']},'raw':!![]})[_0x3860('0x32')](handleEntityNotFound(_0x135e84,null));}})[_0x3860('0x32')](function(_0xa152b4){if(_0xa152b4){var _0x28931d=_0xa152b4[_0x3860('0xdb')]!==null;var _0x5e65a2=path[_0x3860('0xdc')](config[_0x3860('0xdd')],_0x3860('0xde'));if(_0x28931d){_0x5e65a2=path[_0x3860('0xdc')](_0x5e65a2,_0x3860('0xdf'));}var _0x268658=path['join'](_0x5e65a2,_0xa152b4[_0x3860('0xd7')]);return _0x135e84['download'](_0x268658);}})[_0x3860('0x41')](handleError(_0x135e84,null));};exports[_0x3860('0xe0')]=function(_0x118c4e,_0x471da9){var _0x244ceb=null;var _0x24f8a6=null;var _0x532349=null;var _0x17fa12=null;if(_0x118c4e[_0x3860('0x7d')]['id']){delete _0x118c4e[_0x3860('0x7d')]['id'];}if(_0x118c4e[_0x3860('0x7d')]['mailTranscript']){_0x17fa12=path[_0x3860('0xdc')](config[_0x3860('0xdd')],_0x3860('0xe1'),util[_0x3860('0xe2')](_0x3860('0xe3'),Date[_0x3860('0xe4')]()));_0x118c4e['body'][_0x3860('0xe5')]=_0x17fa12;}return db[_0x3860('0x44')][_0x3860('0x6a')]({'where':{'id':_0x118c4e[_0x3860('0xbb')]['id']},'include':[{'model':db[_0x3860('0xcf')],'as':_0x3860('0xe6'),'include':[{'model':db['User'],'as':'User'}]}]})['then'](handleEntityNotFound(_0x471da9,null))[_0x3860('0x32')](saveUpdates(_0x118c4e[_0x3860('0x7d')],null))['then'](function(_0x276828){if(_0x276828){_0x244ceb=_0x276828;return db[_0x3860('0xc2')][_0x3860('0x6a')]({'where':{'id':_0x244ceb[_0x3860('0x81')]}});}})[_0x3860('0x32')](function(_0x1740d0){if(_0x1740d0){_0x532349=_0x1740d0;return db[_0x3860('0xe7')][_0x3860('0x6a')]({'where':{'id':_0x244ceb[_0x3860('0x74')]}});}})[_0x3860('0x32')](function(_0x975c7f){if(_0x975c7f){_0x24f8a6=_0x975c7f;if(_0x17fa12){var _0x23207b=null;for(var _0x1a1366=0x1;_0x1a1366<_0x244ceb[_0x3860('0xe6')][_0x3860('0x4f')];++_0x1a1366){_0x23207b=_0x244ceb['Messages'][_0x1a1366];var _0x56566c=_0x23207b[_0x3860('0x7b')]?util[_0x3860('0xe2')](_0x3860('0xe8'),_0x532349[_0x3860('0xe9')],_0x23207b[_0x3860('0x7b')]):_0x3860('0xea');var _0x1290e7=_0x118c4e[_0x3860('0x7d')]['customer']||util[_0x3860('0xe2')](_0x3860('0xe8'),_0x3860('0xeb'),_0x23207b['ContactId']);switch(_0x532349[_0x3860('0xec')]){case _0x3860('0xed'):_0x56566c=_0x23207b[_0x3860('0x7b')]?util[_0x3860('0xe2')](_0x3860('0xe8'),_0x532349[_0x3860('0xe9')],_0x23207b[_0x3860('0x7b')]):_0x3860('0xea');break;case _0x3860('0xee'):_0x56566c=_0x23207b['UserId']?_0x23207b[_0x3860('0x79')][_0x3860('0xef')]||_0x23207b['User'][_0x3860('0x3c')]:_0x3860('0xea');break;case _0x3860('0xf0'):_0x56566c=_0x23207b['UserId']?_0x23207b[_0x3860('0x79')][_0x3860('0x3c')]:_0x3860('0xea');break;default:_0x56566c=_0x23207b[_0x3860('0x7b')]?util['format']('%s%d',_0x532349[_0x3860('0xe9')],_0x23207b['UserId']):_0x3860('0xea');}var _0x15314d=util[_0x3860('0xe2')](_0x3860('0xf1'),moment(_0x23207b[_0x3860('0x84')])[_0x3860('0xe2')](_0x3860('0xf2')),_0x23207b[_0x3860('0xf3')]==='in'?_0x1290e7:_0x56566c,_0x23207b['body']);if(!_0x23207b[_0x3860('0xf4')]){fs[_0x3860('0xf5')](_0x17fa12,_0x15314d);}}return db['MailAccount']['findOne']({'where':{'service':!![]},'include':[{'model':db[_0x3860('0xf6')],'as':'Smtp','raw':!![]}]});}}})[_0x3860('0x32')](function(_0x2bf644){if(_0x2bf644&&_0x2bf644[_0x3860('0xf7')]&&_0x118c4e[_0x3860('0x7d')]){var _0xd95981={'tls':{'rejectUnauthorized':![]}};if(_0x2bf644[_0x3860('0xf7')][_0x3860('0xf8')]){_0xd95981[_0x3860('0xf8')]=_0x2bf644['Smtp']['service'];}else{_0xd95981[_0x3860('0xf9')]=_0x2bf644['Smtp'][_0x3860('0xf9')];_0xd95981[_0x3860('0xfa')]=_0x2bf644[_0x3860('0xf7')][_0x3860('0xfa')];_0xd95981[_0x3860('0xfb')]=_0x2bf644[_0x3860('0xf7')][_0x3860('0xfb')];}if(_0x2bf644['Smtp']['authentication']){_0xd95981[_0x3860('0xfc')]={'user':_0x2bf644[_0x3860('0xf7')][_0x3860('0x9c')],'pass':_0x2bf644['Smtp'][_0x3860('0xfd')]};}return respondWithRpcPromise(_0x3860('0xfe'),_0x3860('0xff'),{'account':_0xd95981,'message':{'from':util['format'](_0x3860('0x100'),_0x2bf644[_0x3860('0x34')],_0x2bf644['email']||_0x2bf644['Smtp']['user']),'to':_0x118c4e['body']['mailTranscript'],'subject':_0x3860('0x101'),'text':util[_0x3860('0xe2')](_0x3860('0x102'),_0x118c4e[_0x3860('0x7d')][_0x3860('0x103')]),'attachments':[{'path':_0x17fa12}]}})['then'](function(){return _0x244ceb;})[_0x3860('0x41')](function(_0x5235e){console['error'](_0x5235e);});}else{return _0x244ceb;}})[_0x3860('0x32')](respondWithStatusCode(_0x471da9,0xc8))[_0x3860('0x41')](handleError(_0x471da9,null));};exports[_0x3860('0x104')]=function(_0x38cdf1,_0x4ab7b2,_0x4c8a10){return db['ChatMessage'][_0x3860('0x6a')]({'where':{'id':_0x38cdf1['params']['id']}})[_0x3860('0x32')](handleEntityNotFound(_0x4ab7b2,null))[_0x3860('0x32')](function(_0x2adf67){if(_0x2adf67){return _0x2adf67[_0x3860('0x104')](_0x38cdf1[_0x3860('0x7d')][_0x3860('0x105')],_[_0x3860('0x106')](_0x38cdf1[_0x3860('0x7d')],[_0x3860('0x105'),'id'])||{});}})[_0x3860('0x32')](respondWithResult(_0x4ab7b2,null))[_0x3860('0x41')](handleError(_0x4ab7b2,null));};exports[_0x3860('0x107')]=function(_0x173790,_0x20d0d2,_0x8d3ad7){var _0xf1e9ab={'raw':![],'where':{}};var _0xcf350b={};var _0x1348e0={'count':0x0,'rows':[]};return db['ChatInteraction'][_0x3860('0xc1')]({'where':{'id':_0x173790['params']['id']}})[_0x3860('0x32')](handleEntityNotFound(_0x20d0d2,null))[_0x3860('0x32')](function(_0x11d0ab){if(_0x11d0ab){_0xcf350b[_0x3860('0x49')]=_[_0x3860('0x7e')](db[_0x3860('0xcf')][_0x3860('0x45')]);_0xcf350b[_0x3860('0x4a')]=_[_0x3860('0x7e')](_0x173790['query']);_0xcf350b[_0x3860('0x4b')]=_[_0x3860('0x4c')](_0xcf350b[_0x3860('0x49')],_0xcf350b[_0x3860('0x4a')]);_0xf1e9ab[_0x3860('0x4d')]=_[_0x3860('0x4c')](_0xcf350b[_0x3860('0x49')],qs['fields'](_0x173790[_0x3860('0x4a')][_0x3860('0x4e')]));_0xf1e9ab[_0x3860('0x4d')]=_0xf1e9ab['attributes'][_0x3860('0x4f')]?_0xf1e9ab[_0x3860('0x4d')]:_0xcf350b[_0x3860('0x49')];if(!_0x173790['query']['hasOwnProperty'](_0x3860('0x108'))){_0xf1e9ab[_0x3860('0x2c')]=qs['limit'](_0x173790[_0x3860('0x4a')]['limit']);_0xf1e9ab[_0x3860('0x2a')]=qs[_0x3860('0x2a')](_0x173790['query'][_0x3860('0x2a')]);}_0xf1e9ab['order']=qs[_0x3860('0x51')](_0x173790[_0x3860('0x4a')][_0x3860('0x51')]);_0xf1e9ab[_0x3860('0x52')]=qs[_0x3860('0x4b')](_[_0x3860('0x109')](_0x173790[_0x3860('0x4a')],_0xcf350b['filters']));_0xf1e9ab[_0x3860('0x52')]['ChatInteractionId']=_0x11d0ab['id'];if(_0x173790[_0x3860('0x4a')][_0x3860('0x8f')]){_0xf1e9ab['where']=_['merge'](_0xf1e9ab[_0x3860('0x52')],{'$or':_[_0x3860('0x43')](_0xf1e9ab[_0x3860('0x4d')],function(_0x234f93){var _0x5ed001={};_0x5ed001[_0x234f93]={'$like':'%'+_0x173790[_0x3860('0x4a')][_0x3860('0x8f')]+'%'};return _0x5ed001;})});}if(_0x173790[_0x3860('0x4a')]['$gte']){var _0x1ac962=_0x173790[_0x3860('0x4a')]['$gte'][_0x3860('0x3f')](',');var _0x35dbfe={};_0x35dbfe[_0x1ac962[0x0]]={'$gte':moment(_0x1ac962[0x1])[_0x3860('0xe2')](_0x3860('0x10a'))};_0xf1e9ab[_0x3860('0x52')]=_[_0x3860('0xa3')](_0xf1e9ab[_0x3860('0x52')],_0x35dbfe);}_0xf1e9ab=_['merge']({},_0xf1e9ab,_0x173790[_0x3860('0xbd')]);return db[_0x3860('0xcf')][_0x3860('0x2d')]({'where':_0xf1e9ab[_0x3860('0x52')]})[_0x3860('0x32')](function(_0x54ebd7){_0x1348e0[_0x3860('0x2d')]=_0x54ebd7;if(_0x173790[_0x3860('0x4a')][_0x3860('0x10b')]){_0xf1e9ab[_0x3860('0xbc')]=[{'all':!![]}];}return db[_0x3860('0xcf')][_0x3860('0x10c')](_0xf1e9ab);})['then'](function(_0x16457e){_0x1348e0[_0x3860('0x10d')]=_0x16457e;return _0x1348e0;});}})[_0x3860('0x32')](respondWithFilteredResult(_0x20d0d2,_0xf1e9ab))[_0x3860('0x41')](handleError(_0x20d0d2,null));};exports[_0x3860('0x10e')]=function(_0x2b6605,_0x11409b,_0x187e3b){var _0x4fb4f3={'where':{}},_0x21b179={},_0x28b7a2={'count':0x0,'rows':[]};return db[_0x3860('0x44')][_0x3860('0xc1')]({'where':{'id':_0x2b6605[_0x3860('0xbb')]['id']}})[_0x3860('0x32')](handleEntityNotFound(_0x11409b,null))[_0x3860('0x32')](function(_0x2ca2e7){if(_0x2ca2e7){_0x21b179[_0x3860('0x49')]=_['keys'](db[_0x3860('0xcf')][_0x3860('0x45')]);_0x21b179[_0x3860('0x4a')]=_[_0x3860('0x7e')](_0x2b6605[_0x3860('0x4a')]);_0x21b179[_0x3860('0x4b')]=_[_0x3860('0x4c')](_0x21b179[_0x3860('0x49')],_0x21b179[_0x3860('0x4a')]);_0x4fb4f3[_0x3860('0x4d')]=_[_0x3860('0x4c')](_0x21b179[_0x3860('0x49')],qs[_0x3860('0x4e')](_0x2b6605[_0x3860('0x4a')][_0x3860('0x4e')]));_0x4fb4f3['attributes']=_0x4fb4f3[_0x3860('0x4d')][_0x3860('0x4f')]?_0x4fb4f3[_0x3860('0x4d')]:_0x21b179[_0x3860('0x49')];if(!_0x2b6605[_0x3860('0x4a')][_0x3860('0x10f')](_0x3860('0x108'))){_0x4fb4f3[_0x3860('0x2c')]=qs[_0x3860('0x2c')](_0x2b6605[_0x3860('0x4a')][_0x3860('0x2c')]);_0x4fb4f3[_0x3860('0x2a')]=qs['offset'](_0x2b6605[_0x3860('0x4a')]['offset']);}_0x4fb4f3[_0x3860('0x50')]=qs['sort'](_0x2b6605[_0x3860('0x4a')]['sort']);_0x4fb4f3[_0x3860('0x52')]=qs[_0x3860('0x4b')](_['pick'](_0x2b6605[_0x3860('0x4a')],_0x21b179[_0x3860('0x4b')]));_0x4fb4f3[_0x3860('0x52')][_0x3860('0xb8')]=_0x2ca2e7['id'];if(_0x2b6605[_0x3860('0x4a')]['filter']){_0x4fb4f3['where']=_[_0x3860('0xa3')](_0x4fb4f3[_0x3860('0x52')],{'$or':_[_0x3860('0x43')](_0x4fb4f3[_0x3860('0x4d')],function(_0x31a537){var _0x438121={};_0x438121[_0x31a537]={'$like':'%'+_0x2b6605[_0x3860('0x4a')]['filter']+'%'};return _0x438121;})});}_0x4fb4f3[_0x3860('0x52')]['secret']=![];if(_0x2b6605[_0x3860('0x4a')]['id']){_0x4fb4f3[_0x3860('0x52')]['id']={'$gt':_0x2b6605[_0x3860('0x4a')]['id']};}_0x4fb4f3=_[_0x3860('0xa3')]({},_0x4fb4f3,_0x2b6605['options']);return db[_0x3860('0xcf')][_0x3860('0x2d')]({'where':_0x4fb4f3['where']})[_0x3860('0x32')](function(_0x4d4366){_0x28b7a2[_0x3860('0x2d')]=_0x4d4366;_0x4fb4f3[_0x3860('0xbc')]=[];if(_0x2b6605[_0x3860('0x4a')][_0x3860('0x110')]){_0x4fb4f3[_0x3860('0xbc')][_0x3860('0x40')]({'model':db[_0x3860('0x79')],'as':_0x3860('0x79'),'attributes':['id',_0x3860('0x3c'),'alias']});}if(_0x2b6605[_0x3860('0x4a')][_0x3860('0x10b')]){_0x4fb4f3[_0x3860('0xbc')]=[{'all':!![]}];}return db['ChatMessage']['findAll'](_0x4fb4f3);})['then'](function(_0x39c52e){_0x28b7a2[_0x3860('0x10d')]=_0x39c52e;return _0x28b7a2;});}})[_0x3860('0x32')](respondWithFilteredResult(_0x11409b,_0x4fb4f3))[_0x3860('0x41')](handleError(_0x11409b,null));};exports[_0x3860('0x111')]=function(_0x185040,_0x14cef9,_0x5e1ed4){return db[_0x3860('0x44')][_0x3860('0x6a')]({'where':{'id':_0x185040[_0x3860('0xbb')]['id']}})[_0x3860('0x32')](handleEntityNotFound(_0x14cef9,null))['then'](function(_0xbc013a){if(_0xbc013a){return _0xbc013a[_0x3860('0x112')](_0x185040['body'][_0x3860('0x105')],_[_0x3860('0x106')](_0x185040[_0x3860('0x7d')],[_0x3860('0x105'),'id'])||{})[_0x3860('0x113')](function(){return db[_0x3860('0x77')][_0x3860('0x10c')]({'attributes':['id',_0x3860('0x34'),_0x3860('0x54')],'where':{'id':_0x185040[_0x3860('0x7d')][_0x3860('0x105')]}});})[_0x3860('0x32')](function(_0x57f603){socket['emit'](_0x3860('0x114'),{'id':Number(_0x185040['params']['id']),'tags':_0x57f603||[]});return{'id':Number(_0x185040['params']['id']),'tags':_0x57f603||[]};});}})[_0x3860('0x32')](respondWithResult(_0x14cef9,null))[_0x3860('0x41')](handleError(_0x14cef9,null));};exports[_0x3860('0x115')]=function(_0x2e2ff3,_0x27c591,_0x8b9a7a){return db['ChatInteraction'][_0x3860('0x6a')]({'where':{'id':_0x2e2ff3[_0x3860('0xbb')]['id']}})['then'](handleEntityNotFound(_0x27c591,null))[_0x3860('0x32')](function(_0x5ecd57){if(_0x5ecd57){return _0x5ecd57['removeTags'](_0x2e2ff3['query'][_0x3860('0x105')]);}})[_0x3860('0x32')](respondWithStatusCode(_0x27c591,null))[_0x3860('0x41')](handleError(_0x27c591,null));};exports[_0x3860('0x116')]=function(_0x39524a,_0xa0492b){var _0x4d44de=moment()[_0x3860('0x117')]()[_0x3860('0xa1')]();var _0x1dcd01=path['join'](config[_0x3860('0xdd')],_0x3860('0x118'),_0x3860('0x119'),'tmp');var _0x198422=path['join'](config[_0x3860('0xdd')],'server',_0x3860('0x119'),_0x3860('0x11a'));var _0x1a97c1=path[_0x3860('0xdc')](_0x1dcd01,_0x4d44de);var _0x4cc748=util[_0x3860('0xe2')]('transcript-%d-%s.zip',_0x39524a[_0x3860('0xbb')]['id'],_0x4d44de);var _0x18fd61=path['join'](_0x1dcd01,_0x4cc748);var _0x39eb63=[];_0x39eb63[_0x3860('0x40')]({'model':db['User'],'as':_0x3860('0x79'),'attributes':['id',_0x3860('0x3c')],'raw':!![]});_0x39eb63[_0x3860('0x40')]({'model':db[_0x3860('0xe7')],'as':_0x3860('0x6f'),'attributes':['id','firstName','lastName'],'raw':!![]});if(_0x39524a[_0x3860('0x4a')]['attachments']){_0x39eb63[_0x3860('0x40')]({'model':db[_0x3860('0x11b')],'as':'Attachment','raw':!![]});}var _0x134dfd=[{'model':db[_0x3860('0xcf')],'as':_0x3860('0xe6'),'attributes':['id','body',_0x3860('0x84'),'direction','secret','read'],'include':_0x39eb63}];_0x134dfd['push']({'model':db['ChatWebsite'],'as':_0x3860('0x11c'),'attributes':['id',_0x3860('0x34')]});_0x134dfd['push']({'model':db[_0x3860('0x79')],'as':_0x3860('0x11d'),'attributes':['id',_0x3860('0x3c')]});return db[_0x3860('0x44')][_0x3860('0x6a')]({'where':{'id':_0x39524a[_0x3860('0xbb')]['id']},'include':_0x134dfd})[_0x3860('0x32')](handleEntityNotFound(_0xa0492b,null))['then'](function(_0x2fe51b){if(_0x2fe51b){var _0x51bf5a=_0x2fe51b['get']({'plain':!![]});fs[_0x3860('0x11e')](_0x1a97c1);var _0x33abf1={'channel':_0x3860('0x11f'),'account':_0x51bf5a[_0x3860('0x11c')][_0x3860('0x34')],'agent':_0x51bf5a['Owner']?_0x51bf5a[_0x3860('0x11d')]['fullname']:_0x3860('0x120'),'createdAt':moment(_0x51bf5a['createdAt'])[_0x3860('0xe2')](_0x3860('0x10a'))[_0x3860('0xa1')](),'closedAt':_0x51bf5a[_0x3860('0xd3')]?moment(_0x51bf5a[_0x3860('0x121')])[_0x3860('0xe2')](_0x3860('0x10a'))[_0x3860('0xa1')]():'','disposition':_0x51bf5a[_0x3860('0x122')],'chatInfo':{'browser':_0x51bf5a['browserName'],'os':_0x51bf5a[_0x3860('0x123')],'referer':_0x51bf5a[_0x3860('0x124')],'customerIp':_0x51bf5a[_0x3860('0x125')],'customerPort':_0x51bf5a[_0x3860('0x126')]?_0x51bf5a[_0x3860('0x126')]:'N.A.'},'messages':_(_0x51bf5a[_0x3860('0xe6')])[_0x3860('0x127')]()['filter']({'secret':![]})['map'](function(_0x5b23d2){if(_0x5b23d2[_0x3860('0x11b')]){var _0x409781=path[_0x3860('0xdc')](_0x198422,_0x5b23d2[_0x3860('0x11b')][_0x3860('0xd7')]);if(fs[_0x3860('0x128')](_0x409781)){fs[_0x3860('0x129')](_0x409781)[_0x3860('0x12a')](fs[_0x3860('0x12b')](path[_0x3860('0xdc')](_0x1a97c1,_0x5b23d2[_0x3860('0x11b')][_0x3860('0xd7')])));}}return{'date':moment(_0x5b23d2[_0x3860('0x84')])[_0x3860('0xe2')](_0x3860('0x10a'))[_0x3860('0xa1')](),'sender':_0x5b23d2[_0x3860('0xf3')]===_0x3860('0xce')?_0x5b23d2[_0x3860('0x79')]?_0x5b23d2['User'][_0x3860('0x3c')]:_0x3860('0xea'):_0x5b23d2[_0x3860('0x6f')]['firstName']+(_0x5b23d2[_0x3860('0x6f')][_0x3860('0x12c')]?'\x20'+_0x5b23d2['Contact'][_0x3860('0x12c')]:''),'body':_0x5b23d2['Attachment']?_0x5b23d2['Attachment'][_0x3860('0xd7')]:_0x5b23d2[_0x3860('0x7d')],'direction':_0x5b23d2[_0x3860('0xf3')]===_0x3860('0xce')?'A':'C','secret':_0x5b23d2[_0x3860('0xf4')],'read':_0x5b23d2[_0x3860('0x8a')],'attachment':_0x5b23d2['Attachment']};})[_0x3860('0x6c')]()};return ejs[_0x3860('0x12d')](path[_0x3860('0xdc')](config['root'],_0x3860('0x118'),_0x3860('0x12e'),'downloadInteraction.ejs'),{'interaction':_0x33abf1})[_0x3860('0x32')](function(_0x5c5755){var _0x5dfb3b=path[_0x3860('0xdc')](_0x1a97c1,_0x3860('0x12f')+_0x51bf5a['id']+'-'+_0x4d44de+_0x3860('0x130'));var _0x1eba76={'path':_0x5dfb3b,'channel':'Chat','interactionId':_0x51bf5a['id']};return pdf[_0x3860('0x131')](_0x5c5755,_0x1eba76);})['then'](function(){return new BPromise(function(_0x34ad82,_0x44ac65){zipdir(_0x1a97c1,{'saveTo':_0x18fd61},function(_0x43cc98,_0xd9ff70){if(_0x43cc98)return _0x44ac65(_0x43cc98);return _0x34ad82(_0xd9ff70);});})['then'](function(){return new BPromise(function(_0x52e611,_0x4ccefa){rimraf(_0x1a97c1,function(_0x2c90b){if(_0x2c90b)_0x4ccefa(_0x2c90b);return _0x52e611();});});})[_0x3860('0x32')](function(){return _0xa0492b[_0x3860('0x116')](_0x18fd61,_0x4cc748,function(_0x3046f4){if(_0x3046f4){console[_0x3860('0x132')](_0x3860('0x133'),_0x3046f4);}else{fs[_0x3860('0x134')](_0x18fd61);}});});});}else{return _0xa0492b['sendStatus'](0xc8);}})[_0x3860('0x41')](handleError(_0xa0492b,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5106=['events','../../mysqldb','ChatMessage','save','update','remove','getUsers','then','setDataValue','findAll','emit','catch','hasOwnProperty','hook'];(function(_0x47892a,_0xf4cf76){var _0x52ffa7=function(_0x1b656f){while(--_0x1b656f){_0x47892a['push'](_0x47892a['shift']());}};_0x52ffa7(++_0xf4cf76);}(_0x5106,0x70));var _0x6510=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x5106[_0x321bb2];return _0x9c12ed;};'use strict';var EventEmitter=require(_0x6510('0x0'));var ChatInteraction=require(_0x6510('0x1'))['db']['ChatInteraction'];var ChatMessage=require(_0x6510('0x1'))['db'][_0x6510('0x2')];var ChatInteractionEvents=new EventEmitter();ChatInteractionEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x6510('0x3'),'afterUpdate':_0x6510('0x4'),'afterDestroy':_0x6510('0x5')};function emitEvent(_0x2a6f6e){return function(_0x3ee3c8,_0x332f91,_0x29c1ae){_0x3ee3c8[_0x6510('0x6')]({'attributes':['id'],'raw':!![]})[_0x6510('0x7')](function(_0x1198b9){_0x3ee3c8[_0x6510('0x8')]('Users',_0x1198b9['map'](function(_0x5b1993){return{'id':_0x5b1993['id']};}));return ChatMessage[_0x6510('0x9')]({'where':{'ChatInteractionId':_0x3ee3c8['id'],'direction':'in','read':![]},'raw':!![]});})[_0x6510('0x7')](function(_0x2e71f6){_0x3ee3c8[_0x6510('0x8')]('unreadMessages',_0x2e71f6['length']);ChatInteractionEvents[_0x6510('0xa')](_0x2a6f6e+':'+_0x3ee3c8['id'],_0x3ee3c8);ChatInteractionEvents[_0x6510('0xa')](_0x2a6f6e,_0x3ee3c8);_0x29c1ae(null);})[_0x6510('0xb')](_0x29c1ae(null));};}for(var e in events){if(events[_0x6510('0xc')](e)){var event=events[e];ChatInteraction[_0x6510('0xd')](e,emitEvent(event));}}module['exports']=ChatInteractionEvents;
\ No newline at end of file
+var _0x65c1=['map','findAll','then','setDataValue','unreadMessages','length','emit','catch','hasOwnProperty','hook','exports','events','../../mysqldb','ChatInteraction','setMaxListeners','update','remove','getUsers','Users'];(function(_0x568f30,_0x894c4b){var _0x4d71d0=function(_0x6ed383){while(--_0x6ed383){_0x568f30['push'](_0x568f30['shift']());}};_0x4d71d0(++_0x894c4b);}(_0x65c1,0x14e));var _0x165c=function(_0x1709e7,_0x2ced21){_0x1709e7=_0x1709e7-0x0;var _0x402819=_0x65c1[_0x1709e7];return _0x402819;};'use strict';var EventEmitter=require(_0x165c('0x0'));var ChatInteraction=require(_0x165c('0x1'))['db'][_0x165c('0x2')];var ChatMessage=require(_0x165c('0x1'))['db']['ChatMessage'];var ChatInteractionEvents=new EventEmitter();ChatInteractionEvents[_0x165c('0x3')](0x0);var events={'afterCreate':'save','afterUpdate':_0x165c('0x4'),'afterDestroy':_0x165c('0x5')};function emitEvent(_0x49feca){return function(_0x1a9982,_0x1ace1d,_0x19ae4d){_0x1a9982[_0x165c('0x6')]({'attributes':['id'],'raw':!![]})['then'](function(_0x2c2692){_0x1a9982['setDataValue'](_0x165c('0x7'),_0x2c2692[_0x165c('0x8')](function(_0x55b235){return{'id':_0x55b235['id']};}));return ChatMessage[_0x165c('0x9')]({'where':{'ChatInteractionId':_0x1a9982['id'],'direction':'in','read':![]},'raw':!![]});})[_0x165c('0xa')](function(_0x25c1f2){_0x1a9982[_0x165c('0xb')](_0x165c('0xc'),_0x25c1f2[_0x165c('0xd')]);ChatInteractionEvents[_0x165c('0xe')](_0x49feca+':'+_0x1a9982['id'],_0x1a9982);ChatInteractionEvents[_0x165c('0xe')](_0x49feca,_0x1a9982);_0x19ae4d(null);})[_0x165c('0xf')](_0x19ae4d(null));};}for(var e in events){if(events[_0x165c('0x10')](e)){var event=events[e];ChatInteraction[_0x165c('0x11')](e,emitEvent(event));}}module[_0x165c('0x12')]=ChatInteractionEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0958=['closed','closedAt','YYYY-MM-DD\x20HH:mm:ss','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','moment','path','rimraf','../../config/environment','define','ChatInteraction','chat_interactions','changed'];(function(_0x815fb9,_0x5933b6){var _0x371e17=function(_0x25b241){while(--_0x25b241){_0x815fb9['push'](_0x815fb9['shift']());}};_0x371e17(++_0x5933b6);}(_0x0958,0x1bf));var _0x8095=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x0958[_0x321bb2];return _0x9c12ed;};'use strict';var _=require(_0x8095('0x0'));var util=require(_0x8095('0x1'));var logger=require(_0x8095('0x2'))(_0x8095('0x3'));var moment=require(_0x8095('0x4'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x8095('0x5'));var rimraf=require(_0x8095('0x6'));var config=require(_0x8095('0x7'));var attributes=require('./chatInteraction.attributes');module['exports']=function(_0x205669,_0x4e7531){return _0x205669[_0x8095('0x8')](_0x8095('0x9'),attributes,{'tableName':_0x8095('0xa'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x12ec07,_0x2a73d0,_0x1adaf4){if(_0x12ec07[_0x8095('0xb')](_0x8095('0xc'))){_0x12ec07[_0x8095('0xd')]=moment()['format'](_0x8095('0xe'));}_0x1adaf4(null,_0x12ec07);}},'charset':_0x8095('0xf'),'collate':_0x8095('0x10')});};
\ No newline at end of file
+var _0xfe17=['util','../../config/logger','api','moment','bluebird','request-promise','path','./chatInteraction.attributes','exports','ChatInteraction','changed','closed','closedAt','format','YYYY-MM-DD\x20HH:mm:ss','utf8mb4','utf8mb4_unicode_ci'];(function(_0x3c9a89,_0x378778){var _0x1eb47b=function(_0x57998a){while(--_0x57998a){_0x3c9a89['push'](_0x3c9a89['shift']());}};_0x1eb47b(++_0x378778);}(_0xfe17,0x1a9));var _0x7fe1=function(_0x386d6f,_0x7d954a){_0x386d6f=_0x386d6f-0x0;var _0x69ecdc=_0xfe17[_0x386d6f];return _0x69ecdc;};'use strict';var _=require('lodash');var util=require(_0x7fe1('0x0'));var logger=require(_0x7fe1('0x1'))(_0x7fe1('0x2'));var moment=require(_0x7fe1('0x3'));var BPromise=require(_0x7fe1('0x4'));var rp=require(_0x7fe1('0x5'));var fs=require('fs');var path=require(_0x7fe1('0x6'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x7fe1('0x7'));module[_0x7fe1('0x8')]=function(_0x5045df,_0x26800f){return _0x5045df['define'](_0x7fe1('0x9'),attributes,{'tableName':'chat_interactions','paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x5eef86,_0x555db6,_0x209021){if(_0x5eef86[_0x7fe1('0xa')](_0x7fe1('0xb'))){_0x5eef86[_0x7fe1('0xc')]=moment()[_0x7fe1('0xd')](_0x7fe1('0xe'));}_0x209021(null,_0x5eef86);}},'charset':_0x7fe1('0xf'),'collate':_0x7fe1('0x10')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2fff=['client','http','redis','defaults','localhost','socket.io-emitter','./chatInteraction.socket','register','request','then','info','request\x20sent','debug','ChatInteraction,\x20%s,\x20%s,\x20%s','stringify','error','code','message','ChatInteraction,\x20%s,\x20%s','result','catch','UpdateChatInteraction','ChatInteraction','body','options','where','attributes','limit','AddTagsToChatInteraction','find','addTags','ids','omit','spread','AddTags','util','moment','bluebird','randomstring','ioredis','../../config/utils','rpc','../../config/environment','jayson/promise'];(function(_0x5b6880,_0x20d305){var _0x10a0f7=function(_0x54671f){while(--_0x54671f){_0x5b6880['push'](_0x5b6880['shift']());}};_0x10a0f7(++_0x20d305);}(_0x2fff,0x1af));var _0xf2ff=function(_0xf23833,_0x19aedc){_0xf23833=_0xf23833-0x0;var _0x27f1e1=_0x2fff[_0xf23833];return _0x27f1e1;};'use strict';var _=require('lodash');var util=require(_0xf2ff('0x0'));var moment=require(_0xf2ff('0x1'));var BPromise=require(_0xf2ff('0x2'));var rs=require(_0xf2ff('0x3'));var fs=require('fs');var Redis=require(_0xf2ff('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0xf2ff('0x5'));var logger=require('../../config/logger')(_0xf2ff('0x6'));var config=require(_0xf2ff('0x7'));var jayson=require(_0xf2ff('0x8'));var client=jayson[_0xf2ff('0x9')][_0xf2ff('0xa')]({'port':0x232a});config[_0xf2ff('0xb')]=_[_0xf2ff('0xc')](config[_0xf2ff('0xb')],{'host':_0xf2ff('0xd'),'port':0x18eb});var socket=require(_0xf2ff('0xe'))(new Redis(config[_0xf2ff('0xb')]));require(_0xf2ff('0xf'))[_0xf2ff('0x10')](socket);function respondWithRpcPromise(_0x5c2ca2,_0x3f679a,_0x5bc93c){return new BPromise(function(_0x3e0b02,_0x3d486d){return client[_0xf2ff('0x11')](_0x5c2ca2,_0x5bc93c)[_0xf2ff('0x12')](function(_0x565cff){logger[_0xf2ff('0x13')]('ChatInteraction,\x20%s,\x20%s',_0x3f679a,_0xf2ff('0x14'));logger[_0xf2ff('0x15')](_0xf2ff('0x16'),_0x3f679a,_0xf2ff('0x14'),JSON[_0xf2ff('0x17')](_0x565cff));if(_0x565cff[_0xf2ff('0x18')]){if(_0x565cff[_0xf2ff('0x18')][_0xf2ff('0x19')]===0x1f4){logger[_0xf2ff('0x18')]('ChatInteraction,\x20%s,\x20%s',_0x3f679a,_0x565cff[_0xf2ff('0x18')][_0xf2ff('0x1a')]);return _0x3d486d(_0x565cff[_0xf2ff('0x18')][_0xf2ff('0x1a')]);}logger[_0xf2ff('0x18')]('ChatInteraction,\x20%s,\x20%s',_0x3f679a,_0x565cff[_0xf2ff('0x18')][_0xf2ff('0x1a')]);return _0x3e0b02(_0x565cff[_0xf2ff('0x18')]['message']);}else{logger[_0xf2ff('0x13')](_0xf2ff('0x1b'),_0x3f679a,'request\x20sent');_0x3e0b02(_0x565cff[_0xf2ff('0x1c')][_0xf2ff('0x1a')]);}})[_0xf2ff('0x1d')](function(_0x7fe7a2){logger['error'](_0xf2ff('0x1b'),_0x3f679a,_0x7fe7a2);_0x3d486d(_0x7fe7a2);});});}exports[_0xf2ff('0x1e')]=function(_0x3ab1d8){var _0x205c79=this;return new Promise(function(_0x15fd6b,_0x860a6f){return db[_0xf2ff('0x1f')]['update'](_0x3ab1d8[_0xf2ff('0x20')],{'raw':_0x3ab1d8[_0xf2ff('0x21')]?_0x3ab1d8[_0xf2ff('0x21')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x3ab1d8['options']?_0x3ab1d8[_0xf2ff('0x21')][_0xf2ff('0x22')]||null:null,'attributes':_0x3ab1d8[_0xf2ff('0x21')]?_0x3ab1d8['options'][_0xf2ff('0x23')]||null:null,'limit':_0x3ab1d8['options']?_0x3ab1d8[_0xf2ff('0x21')][_0xf2ff('0x24')]||null:null})[_0xf2ff('0x12')](function(_0x419337){logger[_0xf2ff('0x13')](_0xf2ff('0x1e'),_0x3ab1d8);logger[_0xf2ff('0x15')](_0xf2ff('0x1e'),_0x3ab1d8,JSON[_0xf2ff('0x17')](_0x419337));_0x15fd6b(_0x419337);})[_0xf2ff('0x1d')](function(_0x584b33){logger['error']('UpdateChatInteraction',_0x584b33[_0xf2ff('0x1a')],_0x3ab1d8);_0x860a6f(_0x205c79[_0xf2ff('0x18')](0x1f4,_0x584b33[_0xf2ff('0x1a')]));});});};exports[_0xf2ff('0x25')]=function(_0x2e2227){return new Promise(function(_0x1df49b,_0x471537){return db[_0xf2ff('0x1f')][_0xf2ff('0x26')]({'where':_0x2e2227[_0xf2ff('0x21')]?_0x2e2227[_0xf2ff('0x21')][_0xf2ff('0x22')]||null:null})[_0xf2ff('0x12')](function(_0x169477){if(_0x169477){return _0x169477[_0xf2ff('0x27')](_0x2e2227[_0xf2ff('0x20')][_0xf2ff('0x28')],_[_0xf2ff('0x29')](_0x2e2227[_0xf2ff('0x20')],[_0xf2ff('0x28'),'id'])||{});}})[_0xf2ff('0x2a')](function(_0x5c91d1){logger[_0xf2ff('0x13')]('AddTags',_0x2e2227);logger['debug'](_0xf2ff('0x2b'),_0x2e2227,JSON[_0xf2ff('0x17')](_0x5c91d1));_0x1df49b(_0x5c91d1);})[_0xf2ff('0x1d')](function(_0x5171d2){logger['error']('AddTags',_0x5171d2[_0xf2ff('0x1a')],_0x2e2227);_0x471537(_this[_0xf2ff('0x18')](0x1f4,_0x5171d2[_0xf2ff('0x1a')]));});});};
\ No newline at end of file
+var _0x0bd0=['lodash','util','bluebird','randomstring','../../config/logger','rpc','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./chatInteraction.socket','request','then','info','request\x20sent','debug','stringify','error','code','message','catch','ChatInteraction,\x20%s,\x20%s','UpdateChatInteraction','ChatInteraction','update','body','options','raw','where','attributes','limit','addTags','ids','omit','spread'];(function(_0x2cf061,_0x4b4c78){var _0xe5063a=function(_0xa1c15){while(--_0xa1c15){_0x2cf061['push'](_0x2cf061['shift']());}};_0xe5063a(++_0x4b4c78);}(_0x0bd0,0xe4));var _0x00bd=function(_0x3c3e72,_0x3e1858){_0x3c3e72=_0x3c3e72-0x0;var _0x48a7e5=_0x0bd0[_0x3c3e72];return _0x48a7e5;};'use strict';var _=require(_0x00bd('0x0'));var util=require(_0x00bd('0x1'));var moment=require('moment');var BPromise=require(_0x00bd('0x2'));var rs=require(_0x00bd('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x00bd('0x4'))(_0x00bd('0x5'));var config=require('../../config/environment');var jayson=require(_0x00bd('0x6'));var client=jayson[_0x00bd('0x7')][_0x00bd('0x8')]({'port':0x232a});config[_0x00bd('0x9')]=_[_0x00bd('0xa')](config[_0x00bd('0x9')],{'host':_0x00bd('0xb'),'port':0x18eb});var socket=require(_0x00bd('0xc'))(new Redis(config[_0x00bd('0x9')]));require(_0x00bd('0xd'))['register'](socket);function respondWithRpcPromise(_0x52886a,_0x114d73,_0x8dda93){return new BPromise(function(_0x1e2b58,_0x3488c6){return client[_0x00bd('0xe')](_0x52886a,_0x8dda93)[_0x00bd('0xf')](function(_0x44c109){logger[_0x00bd('0x10')]('ChatInteraction,\x20%s,\x20%s',_0x114d73,_0x00bd('0x11'));logger[_0x00bd('0x12')]('ChatInteraction,\x20%s,\x20%s,\x20%s',_0x114d73,_0x00bd('0x11'),JSON[_0x00bd('0x13')](_0x44c109));if(_0x44c109[_0x00bd('0x14')]){if(_0x44c109[_0x00bd('0x14')][_0x00bd('0x15')]===0x1f4){logger[_0x00bd('0x14')]('ChatInteraction,\x20%s,\x20%s',_0x114d73,_0x44c109[_0x00bd('0x14')][_0x00bd('0x16')]);return _0x3488c6(_0x44c109[_0x00bd('0x14')][_0x00bd('0x16')]);}logger['error']('ChatInteraction,\x20%s,\x20%s',_0x114d73,_0x44c109[_0x00bd('0x14')][_0x00bd('0x16')]);return _0x1e2b58(_0x44c109['error'][_0x00bd('0x16')]);}else{logger[_0x00bd('0x10')]('ChatInteraction,\x20%s,\x20%s',_0x114d73,'request\x20sent');_0x1e2b58(_0x44c109['result'][_0x00bd('0x16')]);}})[_0x00bd('0x17')](function(_0x3f5537){logger[_0x00bd('0x14')](_0x00bd('0x18'),_0x114d73,_0x3f5537);_0x3488c6(_0x3f5537);});});}exports[_0x00bd('0x19')]=function(_0x5ce843){var _0x366c5e=this;return new Promise(function(_0x28ced0,_0x28f67c){return db[_0x00bd('0x1a')][_0x00bd('0x1b')](_0x5ce843[_0x00bd('0x1c')],{'raw':_0x5ce843[_0x00bd('0x1d')]?_0x5ce843[_0x00bd('0x1d')][_0x00bd('0x1e')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x5ce843['options']?_0x5ce843[_0x00bd('0x1d')][_0x00bd('0x1f')]||null:null,'attributes':_0x5ce843[_0x00bd('0x1d')]?_0x5ce843[_0x00bd('0x1d')][_0x00bd('0x20')]||null:null,'limit':_0x5ce843[_0x00bd('0x1d')]?_0x5ce843[_0x00bd('0x1d')][_0x00bd('0x21')]||null:null})[_0x00bd('0xf')](function(_0x2b6e58){logger[_0x00bd('0x10')](_0x00bd('0x19'),_0x5ce843);logger[_0x00bd('0x12')](_0x00bd('0x19'),_0x5ce843,JSON['stringify'](_0x2b6e58));_0x28ced0(_0x2b6e58);})[_0x00bd('0x17')](function(_0x406caf){logger[_0x00bd('0x14')](_0x00bd('0x19'),_0x406caf['message'],_0x5ce843);_0x28f67c(_0x366c5e['error'](0x1f4,_0x406caf['message']));});});};exports['AddTagsToChatInteraction']=function(_0x5680fa){return new Promise(function(_0xec8d27,_0x3d5db7){return db[_0x00bd('0x1a')]['find']({'where':_0x5680fa[_0x00bd('0x1d')]?_0x5680fa[_0x00bd('0x1d')][_0x00bd('0x1f')]||null:null})[_0x00bd('0xf')](function(_0x18854f){if(_0x18854f){return _0x18854f[_0x00bd('0x22')](_0x5680fa[_0x00bd('0x1c')][_0x00bd('0x23')],_[_0x00bd('0x24')](_0x5680fa[_0x00bd('0x1c')],[_0x00bd('0x23'),'id'])||{});}})[_0x00bd('0x25')](function(_0x173467){logger[_0x00bd('0x10')]('AddTags',_0x5680fa);logger[_0x00bd('0x12')]('AddTags',_0x5680fa,JSON[_0x00bd('0x13')](_0x173467));_0xec8d27(_0x173467);})[_0x00bd('0x17')](function(_0x199e78){logger[_0x00bd('0x14')]('AddTags',_0x199e78[_0x00bd('0x16')],_0x5680fa);_0x3d5db7(_this['error'](0x1f4,_0x199e78['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7267=['length','chatInteraction:','./chatInteraction.events','remove','update','emit','removeListener','register'];(function(_0x5f32a4,_0x374e43){var _0x58cc7f=function(_0x59149e){while(--_0x59149e){_0x5f32a4['push'](_0x5f32a4['shift']());}};_0x58cc7f(++_0x374e43);}(_0x7267,0xea));var _0x7726=function(_0x543994,_0x1cdb5d){_0x543994=_0x543994-0x0;var _0x5be572=_0x7267[_0x543994];return _0x5be572;};'use strict';var ChatInteractionEvents=require(_0x7726('0x0'));var events=['save',_0x7726('0x1'),_0x7726('0x2')];function createListener(_0x32fce9,_0x2007bd){return function(_0x5d5ea6){_0x2007bd[_0x7726('0x3')](_0x32fce9,_0x5d5ea6);};}function removeListener(_0x3fb7a6,_0x4b0e3c){return function(){ChatInteractionEvents[_0x7726('0x4')](_0x3fb7a6,_0x4b0e3c);};}exports[_0x7726('0x5')]=function(_0x331e7e){for(var _0x476ae5=0x0,_0x4260ec=events[_0x7726('0x6')];_0x476ae5<_0x4260ec;_0x476ae5++){var _0x584ad5=events[_0x476ae5];var _0x593641=createListener(_0x7726('0x7')+_0x584ad5,_0x331e7e);ChatInteractionEvents['on'](_0x584ad5,_0x593641);}};
\ No newline at end of file
+var _0x6c41=['remove','update','removeListener','register','chatInteraction:','./chatInteraction.events','save'];(function(_0x1dd24b,_0x4f11a7){var _0x198556=function(_0x5b940c){while(--_0x5b940c){_0x1dd24b['push'](_0x1dd24b['shift']());}};_0x198556(++_0x4f11a7);}(_0x6c41,0x98));var _0x16c4=function(_0x47c5bf,_0x45977e){_0x47c5bf=_0x47c5bf-0x0;var _0x11b779=_0x6c41[_0x47c5bf];return _0x11b779;};'use strict';var ChatInteractionEvents=require(_0x16c4('0x0'));var events=[_0x16c4('0x1'),_0x16c4('0x2'),_0x16c4('0x3')];function createListener(_0x5e6f41,_0x34dec8){return function(_0x5a14b8){_0x34dec8['emit'](_0x5e6f41,_0x5a14b8);};}function removeListener(_0xf7d6b4,_0x9a0fd7){return function(){ChatInteractionEvents[_0x16c4('0x4')](_0xf7d6b4,_0x9a0fd7);};}exports[_0x16c4('0x5')]=function(_0x5b0991){for(var _0x21468e=0x0,_0x21d42a=events['length'];_0x21468e<_0x21d42a;_0x21468e++){var _0x20c9d6=events[_0x21468e];var _0x19c9ab=createListener(_0x16c4('0x6')+_0x20c9d6,_0x5b0991);ChatInteractionEvents['on'](_0x20c9d6,_0x19c9ab);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7027=['createVidaooSession','diskStorage','join','format','%s-%s','replace','/:id/attachment_upload','addMessage','/:id/tags','tracked','chat','chatinteraction:addtags','chatinteraction:update','update','put','/:id/custom_update','customUpdate','/:id/abandon','abandon','/:id/close','close','delete','chatinteraction:destroy','destroy','exports','multer','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./chatInteraction.controller','get','isAuthenticated','index','/describe','describe','/:id','isChatInteractionAuthorized','show','/:id/attachment_download','/:id/messages','/:id/my_messages','/:id/download','post','create','/:id/vidaoo'];(function(_0x1629f3,_0x356a47){var _0x410022=function(_0x22544a){while(--_0x22544a){_0x1629f3['push'](_0x1629f3['shift']());}};_0x410022(++_0x356a47);}(_0x7027,0xaf));var _0x7702=function(_0x3d8e41,_0x221595){_0x3d8e41=_0x3d8e41-0x0;var _0x159518=_0x7027[_0x3d8e41];return _0x159518;};'use strict';var multer=require(_0x7702('0x0'));var util=require('util');var path=require(_0x7702('0x1'));var timeout=require(_0x7702('0x2'));var express=require(_0x7702('0x3'));var router=express[_0x7702('0x4')]();var fs_extra=require(_0x7702('0x5'));var auth=require(_0x7702('0x6'));var interaction=require(_0x7702('0x7'));var config=require(_0x7702('0x8'));var controller=require(_0x7702('0x9'));router[_0x7702('0xa')]('/',auth[_0x7702('0xb')](),controller[_0x7702('0xc')]);router[_0x7702('0xa')](_0x7702('0xd'),auth[_0x7702('0xb')](),controller[_0x7702('0xe')]);router[_0x7702('0xa')](_0x7702('0xf'),auth[_0x7702('0x10')](),controller[_0x7702('0x11')]);router[_0x7702('0xa')](_0x7702('0x12'),auth['isChatInteractionAuthorized'](),controller['attachmentDownload']);router['get'](_0x7702('0x13'),auth['isAuthenticated'](),controller['getMessages']);router[_0x7702('0xa')](_0x7702('0x14'),auth[_0x7702('0x10')](),controller['getMyMessages']);router['get'](_0x7702('0x15'),auth[_0x7702('0xb')](),controller['download']);router[_0x7702('0x16')]('/',auth[_0x7702('0xb')](),controller[_0x7702('0x17')]);router[_0x7702('0x16')](_0x7702('0x18'),auth[_0x7702('0xb')](),controller[_0x7702('0x19')]);var upload=multer({'storage':multer[_0x7702('0x1a')]({'destination':function(_0x5c173b,_0x2165c1,_0x2a5822){_0x2a5822(null,path[_0x7702('0x1b')](config['root'],'server/files/attachments/'));},'filename':function(_0x3b261c,_0x3a89fd,_0x30c01b){_0x30c01b(null,util[_0x7702('0x1c')](_0x7702('0x1d'),Date['now'](),_0x3a89fd['originalname'][_0x7702('0x1e')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-')));}})});router[_0x7702('0x16')](_0x7702('0x1f'),upload['single']('file'),controller['attachmentUpload']);router[_0x7702('0x16')](_0x7702('0x13'),auth[_0x7702('0x10')](),controller[_0x7702('0x20')]);router[_0x7702('0x16')](_0x7702('0x21'),auth[_0x7702('0xb')](),interaction[_0x7702('0x22')](_0x7702('0x23'),_0x7702('0x24')),controller['addTags']);router['put'](_0x7702('0xf'),auth[_0x7702('0xb')](),interaction['tracked'](_0x7702('0x23'),_0x7702('0x25')),controller[_0x7702('0x26')]);router[_0x7702('0x27')](_0x7702('0x28'),controller[_0x7702('0x29')]);router['put'](_0x7702('0x2a'),auth[_0x7702('0x10')](),controller[_0x7702('0x2b')]);router['put'](_0x7702('0x2c'),controller[_0x7702('0x2d')]);router[_0x7702('0x2e')](_0x7702('0xf'),auth[_0x7702('0xb')](),interaction['tracked'](_0x7702('0x23'),_0x7702('0x2f')),controller[_0x7702('0x30')]);router['delete'](_0x7702('0x21'),auth[_0x7702('0xb')](),controller['removeTags']);module[_0x7702('0x31')]=router;
\ No newline at end of file
+var _0xcabd=['/:id/tags','tracked','addTags','put','chatinteraction:update','/:id/custom_update','customUpdate','/:id/abandon','abandon','/:id/close','delete','/:id','chat','destroy','removeTags','exports','multer','util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','./chatInteraction.controller','get','isAuthenticated','/describe','describe','isChatInteractionAuthorized','show','/:id/attachment_download','attachmentDownload','/:id/messages','getMessages','/:id/my_messages','getMyMessages','create','post','/:id/vidaoo','createVidaooSession','diskStorage','server/files/attachments/','format','%s-%s','now','originalname','replace','/:id/attachment_upload','single','file','attachmentUpload','addMessage'];(function(_0x55b989,_0x382a23){var _0x1626b4=function(_0x5855b3){while(--_0x5855b3){_0x55b989['push'](_0x55b989['shift']());}};_0x1626b4(++_0x382a23);}(_0xcabd,0x1b8));var _0xdcab=function(_0x369151,_0x179f72){_0x369151=_0x369151-0x0;var _0x4292d5=_0xcabd[_0x369151];return _0x4292d5;};'use strict';var multer=require(_0xdcab('0x0'));var util=require(_0xdcab('0x1'));var path=require(_0xdcab('0x2'));var timeout=require(_0xdcab('0x3'));var express=require(_0xdcab('0x4'));var router=express['Router']();var fs_extra=require(_0xdcab('0x5'));var auth=require(_0xdcab('0x6'));var interaction=require(_0xdcab('0x7'));var config=require('../../config/environment');var controller=require(_0xdcab('0x8'));router[_0xdcab('0x9')]('/',auth[_0xdcab('0xa')](),controller['index']);router[_0xdcab('0x9')](_0xdcab('0xb'),auth['isAuthenticated'](),controller[_0xdcab('0xc')]);router[_0xdcab('0x9')]('/:id',auth[_0xdcab('0xd')](),controller[_0xdcab('0xe')]);router[_0xdcab('0x9')](_0xdcab('0xf'),auth[_0xdcab('0xd')](),controller[_0xdcab('0x10')]);router[_0xdcab('0x9')](_0xdcab('0x11'),auth[_0xdcab('0xa')](),controller[_0xdcab('0x12')]);router['get'](_0xdcab('0x13'),auth['isChatInteractionAuthorized'](),controller[_0xdcab('0x14')]);router[_0xdcab('0x9')]('/:id/download',auth[_0xdcab('0xa')](),controller['download']);router['post']('/',auth[_0xdcab('0xa')](),controller[_0xdcab('0x15')]);router[_0xdcab('0x16')](_0xdcab('0x17'),auth['isAuthenticated'](),controller[_0xdcab('0x18')]);var upload=multer({'storage':multer[_0xdcab('0x19')]({'destination':function(_0x2227f9,_0x24c3ce,_0x45bc12){_0x45bc12(null,path['join'](config['root'],_0xdcab('0x1a')));},'filename':function(_0x190041,_0x2f9f87,_0xd28895){_0xd28895(null,util[_0xdcab('0x1b')](_0xdcab('0x1c'),Date[_0xdcab('0x1d')](),_0x2f9f87[_0xdcab('0x1e')][_0xdcab('0x1f')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-')));}})});router[_0xdcab('0x16')](_0xdcab('0x20'),upload[_0xdcab('0x21')](_0xdcab('0x22')),controller[_0xdcab('0x23')]);router[_0xdcab('0x16')](_0xdcab('0x11'),auth[_0xdcab('0xd')](),controller[_0xdcab('0x24')]);router['post'](_0xdcab('0x25'),auth[_0xdcab('0xa')](),interaction[_0xdcab('0x26')]('chat','chatinteraction:addtags'),controller[_0xdcab('0x27')]);router[_0xdcab('0x28')]('/:id',auth['isAuthenticated'](),interaction['tracked']('chat',_0xdcab('0x29')),controller['update']);router[_0xdcab('0x28')](_0xdcab('0x2a'),controller[_0xdcab('0x2b')]);router[_0xdcab('0x28')](_0xdcab('0x2c'),auth[_0xdcab('0xd')](),controller[_0xdcab('0x2d')]);router['put'](_0xdcab('0x2e'),controller['close']);router[_0xdcab('0x2f')](_0xdcab('0x30'),auth[_0xdcab('0xa')](),interaction[_0xdcab('0x26')](_0xdcab('0x31'),'chatinteraction:destroy'),controller[_0xdcab('0x32')]);router[_0xdcab('0x2f')](_0xdcab('0x25'),auth[_0xdcab('0xa')](),controller[_0xdcab('0x33')]);module[_0xdcab('0x34')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf6c3=['TEXT','medium','BOOLEAN','sequelize','exports'];(function(_0x4e38fd,_0x13d776){var _0x2fe8b7=function(_0x22127a){while(--_0x22127a){_0x4e38fd['push'](_0x4e38fd['shift']());}};_0x2fe8b7(++_0x13d776);}(_0xf6c3,0x148));var _0x3f6c=function(_0x404652,_0x3adec6){_0x404652=_0x404652-0x0;var _0x18b13b=_0xf6c3[_0x404652];return _0x18b13b;};'use strict';var Sequelize=require(_0x3f6c('0x0'));module[_0x3f6c('0x1')]={'body':{'type':Sequelize[_0x3f6c('0x2')](_0x3f6c('0x3')),'allowNull':![]},'read':{'type':Sequelize[_0x3f6c('0x4')],'defaultValue':![]},'ChatInternalMessageId':{'type':Sequelize['INTEGER']}};
\ No newline at end of file
+var _0x4f9f=['BOOLEAN','INTEGER','exports'];(function(_0x14c24b,_0xe764dd){var _0x39499e=function(_0x508521){while(--_0x508521){_0x14c24b['push'](_0x14c24b['shift']());}};_0x39499e(++_0xe764dd);}(_0x4f9f,0xfb));var _0xf4f9=function(_0x256cc1,_0x568424){_0x256cc1=_0x256cc1-0x0;var _0x330d0a=_0x4f9f[_0x256cc1];return _0x330d0a;};'use strict';var Sequelize=require('sequelize');module[_0xf4f9('0x0')]={'body':{'type':Sequelize['TEXT']('medium'),'allowNull':![]},'read':{'type':Sequelize[_0xf4f9('0x1')],'defaultValue':![]},'ChatInternalMessageId':{'type':Sequelize[_0xf4f9('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x53be=['attributes','fields','length','hasOwnProperty','order','sort','pick','filter','where','merge','type','VIRTUAL','options','include','findAll','catch','show','params','keys','intersection','find','create','body','describe','get','messages','lastMessageAt','lastMessage','format','YYYY-MM-DD\x20HH:mm:ss','User','admin','user','fullname','role','userpic','internal','lastLoginAt','allowmessenger','showWebBar','-online','VoiceQueue','VoiceQueues','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','isEmpty','agent','resourceId','push','FromId','ToId','read','-createdAt','all','zip-dir','fast-json-patch','moment','mustache','to-csv','ejs','fs-extra','squel','crypto','desk.js','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./chatInternalMessage.socket','register','status','end','json','offset','undefined','limit','count','set','reject','update','destroy','then','error','stack','name','send','index','map','ChatInternalMessage','rawAttributes','fieldName','key','model','query','filters'];(function(_0x1d9644,_0x2fdb25){var _0x361f42=function(_0x2e04c6){while(--_0x2e04c6){_0x1d9644['push'](_0x1d9644['shift']());}};_0x361f42(++_0x2fdb25);}(_0x53be,0x1ed));var _0xe53b=function(_0x51e1d8,_0x3930eb){_0x51e1d8=_0x51e1d8-0x0;var _0x1a6aa0=_0x53be[_0x51e1d8];return _0x1a6aa0;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xe53b('0x0'));var jsonpatch=require(_0xe53b('0x1'));var rp=require('request-promise');var moment=require(_0xe53b('0x2'));var BPromise=require('bluebird');var Mustache=require(_0xe53b('0x3'));var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0xe53b('0x4'));var ejs=require(_0xe53b('0x5'));var fs=require('fs');var fs_extra=require(_0xe53b('0x6'));var _=require('lodash');var squel=require(_0xe53b('0x7'));var crypto=require(_0xe53b('0x8'));var jsforce=require('jsforce');var deskjs=require(_0xe53b('0x9'));var toCsv=require(_0xe53b('0x4'));var querystring=require(_0xe53b('0xa'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xe53b('0xb'));var qs=require(_0xe53b('0xc'));var as=require(_0xe53b('0xd'));var hardwareService=require(_0xe53b('0xe'));var logger=require(_0xe53b('0xf'))(_0xe53b('0x10'));var utils=require(_0xe53b('0x11'));var config=require(_0xe53b('0x12'));var licenseUtil=require(_0xe53b('0x13'));var db=require(_0xe53b('0x14'))['db'];config[_0xe53b('0x15')]=_[_0xe53b('0x16')](config['redis'],{'host':_0xe53b('0x17'),'port':0x18eb});var socket=require(_0xe53b('0x18'))(new Redis(config['redis']));require(_0xe53b('0x19'))[_0xe53b('0x1a')](socket);function respondWithStatusCode(_0x10e4c1,_0x3e4c71){_0x3e4c71=_0x3e4c71||0xcc;return function(_0x3f1644){if(_0x3f1644){return _0x10e4c1['sendStatus'](_0x3e4c71);}return _0x10e4c1[_0xe53b('0x1b')](_0x3e4c71)[_0xe53b('0x1c')]();};}function respondWithResult(_0x15286e,_0x865e4a){_0x865e4a=_0x865e4a||0xc8;return function(_0x582476){if(_0x582476){return _0x15286e[_0xe53b('0x1b')](_0x865e4a)[_0xe53b('0x1d')](_0x582476);}};}function respondWithFilteredResult(_0x2a9518,_0x16ef2a){return function(_0x41c6ed){if(_0x41c6ed){var _0x16c650=typeof _0x16ef2a[_0xe53b('0x1e')]===_0xe53b('0x1f')&&typeof _0x16ef2a[_0xe53b('0x20')]==='undefined';var _0x45689a=_0x41c6ed[_0xe53b('0x21')];var _0x29ff50=_0x16c650?0x0:_0x16ef2a[_0xe53b('0x1e')];var _0x26bcd0=_0x16c650?_0x41c6ed['count']:_0x16ef2a[_0xe53b('0x1e')]+_0x16ef2a[_0xe53b('0x20')];var _0x2d3171;if(_0x26bcd0>=_0x45689a){_0x26bcd0=_0x45689a;_0x2d3171=0xc8;}else{_0x2d3171=0xce;}_0x2a9518['status'](_0x2d3171);return _0x2a9518[_0xe53b('0x22')]('Content-Range',_0x29ff50+'-'+_0x26bcd0+'/'+_0x45689a)[_0xe53b('0x1d')](_0x41c6ed);}return null;};}function patchUpdates(_0x51dc97){return function(_0x559d4c){try{jsonpatch['apply'](_0x559d4c,_0x51dc97,!![]);}catch(_0x388aa8){return BPromise[_0xe53b('0x23')](_0x388aa8);}return _0x559d4c['save']();};}function saveUpdates(_0x56efcf,_0x47b87b){return function(_0x2d83ec){if(_0x2d83ec){return _0x2d83ec[_0xe53b('0x24')](_0x56efcf)['then'](function(_0x894dc3){return _0x894dc3;});}return null;};}function removeEntity(_0x4332a1,_0x529a58){return function(_0x133735){if(_0x133735){return _0x133735[_0xe53b('0x25')]()[_0xe53b('0x26')](function(){_0x4332a1['status'](0xcc)[_0xe53b('0x1c')]();});}};}function handleEntityNotFound(_0x23d154,_0x90ea5c){return function(_0x326258){if(!_0x326258){_0x23d154['sendStatus'](0x194);}return _0x326258;};}function handleError(_0x3535e2,_0x313634){_0x313634=_0x313634||0x1f4;return function(_0x16a395){logger[_0xe53b('0x27')](_0x16a395[_0xe53b('0x28')]);if(_0x16a395['name']){delete _0x16a395[_0xe53b('0x29')];}_0x3535e2[_0xe53b('0x1b')](_0x313634)[_0xe53b('0x2a')](_0x16a395);};}exports[_0xe53b('0x2b')]=function(_0x2526cd,_0x260835){var _0x2f21eb={},_0x113c90={},_0x339f43={'count':0x0,'rows':[]};var _0x3c19d3=_[_0xe53b('0x2c')](db[_0xe53b('0x2d')][_0xe53b('0x2e')],function(_0x11fdbb){return{'name':_0x11fdbb[_0xe53b('0x2f')],'type':_0x11fdbb['type'][_0xe53b('0x30')]};});_0x113c90[_0xe53b('0x31')]=_['map'](_0x3c19d3,_0xe53b('0x29'));_0x113c90[_0xe53b('0x32')]=_['keys'](_0x2526cd[_0xe53b('0x32')]);_0x113c90[_0xe53b('0x33')]=_['intersection'](_0x113c90[_0xe53b('0x31')],_0x113c90[_0xe53b('0x32')]);_0x2f21eb[_0xe53b('0x34')]=_['intersection'](_0x113c90[_0xe53b('0x31')],qs[_0xe53b('0x35')](_0x2526cd[_0xe53b('0x32')]['fields']));_0x2f21eb['attributes']=_0x2f21eb[_0xe53b('0x34')][_0xe53b('0x36')]?_0x2f21eb[_0xe53b('0x34')]:_0x113c90[_0xe53b('0x31')];if(!_0x2526cd[_0xe53b('0x32')][_0xe53b('0x37')]('nolimit')){_0x2f21eb[_0xe53b('0x20')]=qs[_0xe53b('0x20')](_0x2526cd[_0xe53b('0x32')][_0xe53b('0x20')]);_0x2f21eb[_0xe53b('0x1e')]=qs['offset'](_0x2526cd['query'][_0xe53b('0x1e')]);}_0x2f21eb[_0xe53b('0x38')]=qs[_0xe53b('0x39')](_0x2526cd[_0xe53b('0x32')]['sort']);_0x2f21eb['where']=qs['filters'](_[_0xe53b('0x3a')](_0x2526cd[_0xe53b('0x32')],_0x113c90[_0xe53b('0x33')]),_0x3c19d3);if(_0x2526cd[_0xe53b('0x32')][_0xe53b('0x3b')]){_0x2f21eb[_0xe53b('0x3c')]=_[_0xe53b('0x3d')](_0x2f21eb[_0xe53b('0x3c')],{'$or':_[_0xe53b('0x2c')](_0x3c19d3,function(_0x3811a4){if(_0x3811a4[_0xe53b('0x3e')]!==_0xe53b('0x3f')){var _0x3e078d={};_0x3e078d[_0x3811a4['name']]={'$like':'%'+_0x2526cd[_0xe53b('0x32')][_0xe53b('0x3b')]+'%'};return _0x3e078d;}})});}_0x2f21eb=_[_0xe53b('0x3d')]({},_0x2f21eb,_0x2526cd[_0xe53b('0x40')]);var _0xcd34bf={'where':_0x2f21eb[_0xe53b('0x3c')]};return db['ChatInternalMessage']['count'](_0xcd34bf)[_0xe53b('0x26')](function(_0x259104){_0x339f43['count']=_0x259104;if(_0x2526cd[_0xe53b('0x32')]['includeAll']){_0x2f21eb[_0xe53b('0x41')]=[{'all':!![]}];}return db[_0xe53b('0x2d')][_0xe53b('0x42')](_0x2f21eb);})['then'](function(_0x452358){_0x339f43['rows']=_0x452358;return _0x339f43;})[_0xe53b('0x26')](respondWithFilteredResult(_0x260835,_0x2f21eb))[_0xe53b('0x43')](handleError(_0x260835,null));};exports[_0xe53b('0x44')]=function(_0x111195,_0xfe769a){var _0x390aff={'raw':!![],'where':{'id':_0x111195[_0xe53b('0x45')]['id']}},_0x454bfb={};_0x454bfb[_0xe53b('0x31')]=_[_0xe53b('0x46')](db[_0xe53b('0x2d')][_0xe53b('0x2e')]);_0x454bfb[_0xe53b('0x32')]=_[_0xe53b('0x46')](_0x111195['query']);_0x454bfb[_0xe53b('0x33')]=_[_0xe53b('0x47')](_0x454bfb[_0xe53b('0x31')],_0x454bfb[_0xe53b('0x32')]);_0x390aff[_0xe53b('0x34')]=_[_0xe53b('0x47')](_0x454bfb[_0xe53b('0x31')],qs[_0xe53b('0x35')](_0x111195['query']['fields']));_0x390aff[_0xe53b('0x34')]=_0x390aff[_0xe53b('0x34')][_0xe53b('0x36')]?_0x390aff[_0xe53b('0x34')]:_0x454bfb[_0xe53b('0x31')];if(_0x111195[_0xe53b('0x32')]['includeAll']){_0x390aff[_0xe53b('0x41')]=[{'all':!![]}];}_0x390aff=_['merge']({},_0x390aff,_0x111195['options']);return db[_0xe53b('0x2d')][_0xe53b('0x48')](_0x390aff)['then'](handleEntityNotFound(_0xfe769a,null))[_0xe53b('0x26')](respondWithResult(_0xfe769a,null))['catch'](handleError(_0xfe769a,null));};exports[_0xe53b('0x49')]=function(_0x3d4f69,_0x772450){return db[_0xe53b('0x2d')][_0xe53b('0x49')](_0x3d4f69[_0xe53b('0x4a')],{})[_0xe53b('0x26')](respondWithResult(_0x772450,0xc9))['catch'](handleError(_0x772450,null));};exports[_0xe53b('0x24')]=function(_0x1bf11a,_0x45b4b2){if(_0x1bf11a['body']['id']){delete _0x1bf11a[_0xe53b('0x4a')]['id'];}return db[_0xe53b('0x2d')]['find']({'where':{'id':_0x1bf11a[_0xe53b('0x45')]['id']}})[_0xe53b('0x26')](handleEntityNotFound(_0x45b4b2,null))['then'](saveUpdates(_0x1bf11a[_0xe53b('0x4a')],null))['then'](respondWithResult(_0x45b4b2,null))[_0xe53b('0x43')](handleError(_0x45b4b2,null));};exports[_0xe53b('0x25')]=function(_0x3c37b1,_0x3d42b2){return db[_0xe53b('0x2d')]['find']({'where':{'id':_0x3c37b1[_0xe53b('0x45')]['id']}})['then'](handleEntityNotFound(_0x3d42b2,null))[_0xe53b('0x26')](removeEntity(_0x3d42b2,null))[_0xe53b('0x43')](handleError(_0x3d42b2,null));};exports[_0xe53b('0x4b')]=function(_0x2b4a4b,_0x28f28d){return db['ChatInternalMessage'][_0xe53b('0x4b')]()[_0xe53b('0x26')](respondWithResult(_0x28f28d,null))[_0xe53b('0x43')](handleError(_0x28f28d,null));};function wrapUser(_0x1cfbcd){return function(_0x5577a7){var _0x3c0aed=_0x1cfbcd[_0xe53b('0x4c')]({'plain':!![]});_0x3c0aed[_0xe53b('0x4d')]=[];if(_0x5577a7){_0x3c0aed[_0xe53b('0x4e')]=_0x5577a7['createdAt'];_0x3c0aed[_0xe53b('0x4f')]=_0x5577a7;}else{_0x3c0aed[_0xe53b('0x4e')]=moment(0x0)[_0xe53b('0x50')](_0xe53b('0x51'));_0x3c0aed[_0xe53b('0x4f')]={};}return _0x3c0aed;};}exports['getUsers']=function(_0x3f0897,_0x488de4,_0x2ccd13){var _0x1dcee1=[];return db[_0xe53b('0x52')]['findAll']({'where':{'role':['agent',_0xe53b('0x53'),_0xe53b('0x54')]},'attributes':['id',_0xe53b('0x55'),'name',_0xe53b('0x56'),_0xe53b('0x57'),_0xe53b('0x58'),'online',_0xe53b('0x59'),_0xe53b('0x5a'),_0xe53b('0x5b')],'order':qs[_0xe53b('0x39')](_0xe53b('0x5c')),'include':[{'model':db[_0xe53b('0x5d')],'as':_0xe53b('0x5e'),'attributes':['id','name',_0xe53b('0x3e')],'through':{'attributes':[]}}]})['then'](function(_0x79e821){if(_0x79e821){var _0x21b351=_0x3f0897[_0xe53b('0x54')][_0xe53b('0x4c')]({'plain':!![]});if(!_0x21b351)throw new Error(_0xe53b('0x5f'));if(_0x21b351[_0xe53b('0x56')]===_0xe53b('0x54')){return db[_0xe53b('0x60')][_0xe53b('0x48')]({'where':{'name':'Agents','userProfileId':_0x21b351[_0xe53b('0x61')]},'raw':!![]})[_0xe53b('0x26')](function(_0xb70398){if(_0xb70398){if(_0xb70398[_0xe53b('0x62')]===0x0){return db[_0xe53b('0x63')][_0xe53b('0x42')]({'where':{'sectionId':_0xb70398['id']},'raw':!![]})['then'](function(_0x351f3d){var _0xbd63fa=[];if(_[_0xe53b('0x64')](_0x351f3d)){_0xbd63fa=_[_0xe53b('0x3b')](_0x79e821,function(_0x160c9b){if(_0x160c9b[_0xe53b('0x56')]!==_0xe53b('0x65')){return _0x160c9b;}});return _0xbd63fa;}else{for(var _0xce171e=0x0;_0xce171e<_0x79e821['length'];_0xce171e++){var _0x4d41cd=_0x79e821[_0xce171e];if(_0x4d41cd[_0xe53b('0x56')]==='agent'){var _0x9e7c48=_[_0xe53b('0x48')](_0x351f3d,function(_0x3d0b85){return _0x3d0b85[_0xe53b('0x66')]===_0x4d41cd['id'];});if(_0x9e7c48)_0xbd63fa[_0xe53b('0x67')](_0x4d41cd);}else{_0xbd63fa['push'](_0x4d41cd);}}return _0xbd63fa;}});}else{return _0x79e821;}}else{var _0x5d4aa6=_[_0xe53b('0x3b')](_0x79e821,function(_0xe75a7){if(_0xe75a7['role']!==_0xe53b('0x65')){return _0xe75a7;}});return _0x5d4aa6;}});}else{return _0x79e821;}}})[_0xe53b('0x26')](function(_0x250d5f){var _0x5b3623=[];if(_0x250d5f){_0x1dcee1=_0x250d5f;for(var _0x46d5d8=0x0;_0x46d5d8<_0x250d5f[_0xe53b('0x36')];_0x46d5d8+=0x1){_0x1dcee1[_0x46d5d8]['messages']=[];_0x5b3623['push'](db['ChatInternalMessage'][_0xe53b('0x48')]({'where':{'FromId':[_0x3f0897['user']['id'],_0x250d5f[_0x46d5d8]['id']],'ToId':[_0x3f0897['user']['id'],_0x250d5f[_0x46d5d8]['id']],'ChatGroupId':null},'attributes':['id','createdAt',_0xe53b('0x68'),_0xe53b('0x69'),_0xe53b('0x6a'),_0xe53b('0x4a')],'order':qs[_0xe53b('0x39')](_0xe53b('0x6b')),'limit':0x1,'offset':0x0,'raw':!![]})[_0xe53b('0x26')](wrapUser(_0x250d5f[_0x46d5d8])));}return BPromise[_0xe53b('0x6c')](_0x5b3623);}return[];})['then'](function(_0x23eb2f){return{'rows':_0x23eb2f,'count':_0x23eb2f[_0xe53b('0x36')]};})['then'](respondWithResult(_0x488de4,null))['catch'](handleError(_0x488de4,null));};
\ No newline at end of file
+var _0x8df6=['ToId','read','-createdAt','all','eml-format','rimraf','zip-dir','request-promise','mustache','util','path','sox','to-csv','ejs','jsforce','desk.js','querystring','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','defaults','redis','localhost','sendStatus','status','end','limit','undefined','count','set','Content-Range','json','apply','save','update','then','destroy','error','stack','name','send','index','map','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','nolimit','offset','order','sort','where','pick','filter','merge','VIRTUAL','options','ChatInternalMessage','includeAll','include','rows','catch','show','params','find','create','body','describe','messages','lastMessageAt','createdAt','lastMessage','format','YYYY-MM-DD\x20HH:mm:ss','getUsers','findAll','agent','admin','user','fullname','userpic','internal','online','allowmessenger','showWebBar','-online','VoiceQueues','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','UserProfileResource','length','resourceId','push','FromId'];(function(_0x82129b,_0x484ae9){var _0x2ae5dc=function(_0x299e34){while(--_0x299e34){_0x82129b['push'](_0x82129b['shift']());}};_0x2ae5dc(++_0x484ae9);}(_0x8df6,0x1bc));var _0x68df=function(_0x1a187b,_0x554200){_0x1a187b=_0x1a187b-0x0;var _0x19eea9=_0x8df6[_0x1a187b];return _0x19eea9;};'use strict';var emlformat=require(_0x68df('0x0'));var rimraf=require(_0x68df('0x1'));var zipdir=require(_0x68df('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x68df('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x68df('0x4'));var util=require(_0x68df('0x5'));var path=require(_0x68df('0x6'));var sox=require(_0x68df('0x7'));var csv=require(_0x68df('0x8'));var ejs=require(_0x68df('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x68df('0xa'));var deskjs=require(_0x68df('0xb'));var toCsv=require(_0x68df('0x8'));var querystring=require(_0x68df('0xc'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x68df('0xd'));var as=require(_0x68df('0xe'));var hardwareService=require(_0x68df('0xf'));var logger=require(_0x68df('0x10'))(_0x68df('0x11'));var utils=require(_0x68df('0x12'));var config=require(_0x68df('0x13'));var licenseUtil=require(_0x68df('0x14'));var db=require(_0x68df('0x15'))['db'];config['redis']=_[_0x68df('0x16')](config[_0x68df('0x17')],{'host':_0x68df('0x18'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x68df('0x17')]));require('./chatInternalMessage.socket')['register'](socket);function respondWithStatusCode(_0x410a62,_0x2e7a8e){_0x2e7a8e=_0x2e7a8e||0xcc;return function(_0x3f393c){if(_0x3f393c){return _0x410a62[_0x68df('0x19')](_0x2e7a8e);}return _0x410a62[_0x68df('0x1a')](_0x2e7a8e)[_0x68df('0x1b')]();};}function respondWithResult(_0x1a3a8a,_0x34088e){_0x34088e=_0x34088e||0xc8;return function(_0xcf4009){if(_0xcf4009){return _0x1a3a8a[_0x68df('0x1a')](_0x34088e)['json'](_0xcf4009);}};}function respondWithFilteredResult(_0xca83c4,_0x4d65df){return function(_0x4069a3){if(_0x4069a3){var _0x31c2f7=typeof _0x4d65df['offset']==='undefined'&&typeof _0x4d65df[_0x68df('0x1c')]===_0x68df('0x1d');var _0x5f3f76=_0x4069a3[_0x68df('0x1e')];var _0x4c710a=_0x31c2f7?0x0:_0x4d65df['offset'];var _0x36011e=_0x31c2f7?_0x4069a3[_0x68df('0x1e')]:_0x4d65df['offset']+_0x4d65df['limit'];var _0x716ac8;if(_0x36011e>=_0x5f3f76){_0x36011e=_0x5f3f76;_0x716ac8=0xc8;}else{_0x716ac8=0xce;}_0xca83c4[_0x68df('0x1a')](_0x716ac8);return _0xca83c4[_0x68df('0x1f')](_0x68df('0x20'),_0x4c710a+'-'+_0x36011e+'/'+_0x5f3f76)[_0x68df('0x21')](_0x4069a3);}return null;};}function patchUpdates(_0x30c920){return function(_0x34e421){try{jsonpatch[_0x68df('0x22')](_0x34e421,_0x30c920,!![]);}catch(_0x1c2c39){return BPromise['reject'](_0x1c2c39);}return _0x34e421[_0x68df('0x23')]();};}function saveUpdates(_0x5c594b,_0x2b2699){return function(_0x2df08b){if(_0x2df08b){return _0x2df08b[_0x68df('0x24')](_0x5c594b)[_0x68df('0x25')](function(_0x2f82cb){return _0x2f82cb;});}return null;};}function removeEntity(_0x26f9be,_0xa66b2){return function(_0x9f56ea){if(_0x9f56ea){return _0x9f56ea[_0x68df('0x26')]()[_0x68df('0x25')](function(){_0x26f9be[_0x68df('0x1a')](0xcc)[_0x68df('0x1b')]();});}};}function handleEntityNotFound(_0x49aaf1,_0x56ec7c){return function(_0x56ec3d){if(!_0x56ec3d){_0x49aaf1[_0x68df('0x19')](0x194);}return _0x56ec3d;};}function handleError(_0x98580,_0x20502a){_0x20502a=_0x20502a||0x1f4;return function(_0x2991e4){logger[_0x68df('0x27')](_0x2991e4[_0x68df('0x28')]);if(_0x2991e4[_0x68df('0x29')]){delete _0x2991e4[_0x68df('0x29')];}_0x98580['status'](_0x20502a)[_0x68df('0x2a')](_0x2991e4);};}exports[_0x68df('0x2b')]=function(_0x5b7d2b,_0x332de9){var _0x53aec5={},_0x45064e={},_0x1134a8={'count':0x0,'rows':[]};var _0x23170c=_[_0x68df('0x2c')](db['ChatInternalMessage'][_0x68df('0x2d')],function(_0x20391e){return{'name':_0x20391e[_0x68df('0x2e')],'type':_0x20391e[_0x68df('0x2f')][_0x68df('0x30')]};});_0x45064e[_0x68df('0x31')]=_[_0x68df('0x2c')](_0x23170c,_0x68df('0x29'));_0x45064e[_0x68df('0x32')]=_[_0x68df('0x33')](_0x5b7d2b[_0x68df('0x32')]);_0x45064e[_0x68df('0x34')]=_[_0x68df('0x35')](_0x45064e[_0x68df('0x31')],_0x45064e[_0x68df('0x32')]);_0x53aec5[_0x68df('0x36')]=_[_0x68df('0x35')](_0x45064e[_0x68df('0x31')],qs[_0x68df('0x37')](_0x5b7d2b[_0x68df('0x32')][_0x68df('0x37')]));_0x53aec5[_0x68df('0x36')]=_0x53aec5[_0x68df('0x36')]['length']?_0x53aec5['attributes']:_0x45064e['model'];if(!_0x5b7d2b['query']['hasOwnProperty'](_0x68df('0x38'))){_0x53aec5['limit']=qs[_0x68df('0x1c')](_0x5b7d2b[_0x68df('0x32')][_0x68df('0x1c')]);_0x53aec5[_0x68df('0x39')]=qs[_0x68df('0x39')](_0x5b7d2b[_0x68df('0x32')]['offset']);}_0x53aec5[_0x68df('0x3a')]=qs[_0x68df('0x3b')](_0x5b7d2b['query'][_0x68df('0x3b')]);_0x53aec5[_0x68df('0x3c')]=qs[_0x68df('0x34')](_[_0x68df('0x3d')](_0x5b7d2b[_0x68df('0x32')],_0x45064e[_0x68df('0x34')]),_0x23170c);if(_0x5b7d2b[_0x68df('0x32')][_0x68df('0x3e')]){_0x53aec5[_0x68df('0x3c')]=_[_0x68df('0x3f')](_0x53aec5[_0x68df('0x3c')],{'$or':_['map'](_0x23170c,function(_0x3d3e9d){if(_0x3d3e9d[_0x68df('0x2f')]!==_0x68df('0x40')){var _0x83d7a0={};_0x83d7a0[_0x3d3e9d['name']]={'$like':'%'+_0x5b7d2b['query'][_0x68df('0x3e')]+'%'};return _0x83d7a0;}})});}_0x53aec5=_[_0x68df('0x3f')]({},_0x53aec5,_0x5b7d2b[_0x68df('0x41')]);var _0x2ac94a={'where':_0x53aec5[_0x68df('0x3c')]};return db[_0x68df('0x42')][_0x68df('0x1e')](_0x2ac94a)['then'](function(_0x5610f2){_0x1134a8[_0x68df('0x1e')]=_0x5610f2;if(_0x5b7d2b[_0x68df('0x32')][_0x68df('0x43')]){_0x53aec5[_0x68df('0x44')]=[{'all':!![]}];}return db[_0x68df('0x42')]['findAll'](_0x53aec5);})['then'](function(_0x4647ae){_0x1134a8[_0x68df('0x45')]=_0x4647ae;return _0x1134a8;})[_0x68df('0x25')](respondWithFilteredResult(_0x332de9,_0x53aec5))[_0x68df('0x46')](handleError(_0x332de9,null));};exports[_0x68df('0x47')]=function(_0x5e6df6,_0x53109c){var _0x278bb3={'raw':!![],'where':{'id':_0x5e6df6[_0x68df('0x48')]['id']}},_0x55310f={};_0x55310f[_0x68df('0x31')]=_['keys'](db['ChatInternalMessage'][_0x68df('0x2d')]);_0x55310f['query']=_[_0x68df('0x33')](_0x5e6df6[_0x68df('0x32')]);_0x55310f[_0x68df('0x34')]=_[_0x68df('0x35')](_0x55310f[_0x68df('0x31')],_0x55310f[_0x68df('0x32')]);_0x278bb3[_0x68df('0x36')]=_[_0x68df('0x35')](_0x55310f[_0x68df('0x31')],qs[_0x68df('0x37')](_0x5e6df6[_0x68df('0x32')][_0x68df('0x37')]));_0x278bb3['attributes']=_0x278bb3[_0x68df('0x36')]['length']?_0x278bb3[_0x68df('0x36')]:_0x55310f[_0x68df('0x31')];if(_0x5e6df6[_0x68df('0x32')][_0x68df('0x43')]){_0x278bb3[_0x68df('0x44')]=[{'all':!![]}];}_0x278bb3=_[_0x68df('0x3f')]({},_0x278bb3,_0x5e6df6[_0x68df('0x41')]);return db[_0x68df('0x42')][_0x68df('0x49')](_0x278bb3)[_0x68df('0x25')](handleEntityNotFound(_0x53109c,null))[_0x68df('0x25')](respondWithResult(_0x53109c,null))['catch'](handleError(_0x53109c,null));};exports[_0x68df('0x4a')]=function(_0x4bdcc6,_0x22314e){return db[_0x68df('0x42')][_0x68df('0x4a')](_0x4bdcc6[_0x68df('0x4b')],{})[_0x68df('0x25')](respondWithResult(_0x22314e,0xc9))[_0x68df('0x46')](handleError(_0x22314e,null));};exports[_0x68df('0x24')]=function(_0x289d06,_0x3b06a7){if(_0x289d06[_0x68df('0x4b')]['id']){delete _0x289d06[_0x68df('0x4b')]['id'];}return db['ChatInternalMessage']['find']({'where':{'id':_0x289d06[_0x68df('0x48')]['id']}})[_0x68df('0x25')](handleEntityNotFound(_0x3b06a7,null))[_0x68df('0x25')](saveUpdates(_0x289d06[_0x68df('0x4b')],null))['then'](respondWithResult(_0x3b06a7,null))[_0x68df('0x46')](handleError(_0x3b06a7,null));};exports[_0x68df('0x26')]=function(_0xf3ae03,_0x1b8890){return db[_0x68df('0x42')][_0x68df('0x49')]({'where':{'id':_0xf3ae03['params']['id']}})['then'](handleEntityNotFound(_0x1b8890,null))[_0x68df('0x25')](removeEntity(_0x1b8890,null))[_0x68df('0x46')](handleError(_0x1b8890,null));};exports[_0x68df('0x4c')]=function(_0xa9860f,_0x2e9d09){return db[_0x68df('0x42')]['describe']()[_0x68df('0x25')](respondWithResult(_0x2e9d09,null))[_0x68df('0x46')](handleError(_0x2e9d09,null));};function wrapUser(_0x47b558){return function(_0x54998a){var _0x5e03ed=_0x47b558['get']({'plain':!![]});_0x5e03ed[_0x68df('0x4d')]=[];if(_0x54998a){_0x5e03ed[_0x68df('0x4e')]=_0x54998a[_0x68df('0x4f')];_0x5e03ed[_0x68df('0x50')]=_0x54998a;}else{_0x5e03ed[_0x68df('0x4e')]=moment(0x0)[_0x68df('0x51')](_0x68df('0x52'));_0x5e03ed[_0x68df('0x50')]={};}return _0x5e03ed;};}exports[_0x68df('0x53')]=function(_0x557cb0,_0x8f6af5,_0x4ab01a){var _0x5121e3=[];return db['User'][_0x68df('0x54')]({'where':{'role':[_0x68df('0x55'),_0x68df('0x56'),_0x68df('0x57')]},'attributes':['id',_0x68df('0x58'),_0x68df('0x29'),'role',_0x68df('0x59'),_0x68df('0x5a'),_0x68df('0x5b'),'lastLoginAt',_0x68df('0x5c'),_0x68df('0x5d')],'order':qs[_0x68df('0x3b')](_0x68df('0x5e')),'include':[{'model':db['VoiceQueue'],'as':_0x68df('0x5f'),'attributes':['id','name',_0x68df('0x2f')],'through':{'attributes':[]}}]})[_0x68df('0x25')](function(_0x488ca1){if(_0x488ca1){var _0x33492b=_0x557cb0[_0x68df('0x57')][_0x68df('0x60')]({'plain':!![]});if(!_0x33492b)throw new Error(_0x68df('0x61'));if(_0x33492b[_0x68df('0x62')]===_0x68df('0x57')){return db[_0x68df('0x63')]['find']({'where':{'name':'Agents','userProfileId':_0x33492b[_0x68df('0x64')]},'raw':!![]})[_0x68df('0x25')](function(_0x310efd){if(_0x310efd){if(_0x310efd['autoAssociation']===0x0){return db[_0x68df('0x65')][_0x68df('0x54')]({'where':{'sectionId':_0x310efd['id']},'raw':!![]})['then'](function(_0x1598f0){var _0x19d008=[];if(_['isEmpty'](_0x1598f0)){_0x19d008=_[_0x68df('0x3e')](_0x488ca1,function(_0x4535ad){if(_0x4535ad[_0x68df('0x62')]!==_0x68df('0x55')){return _0x4535ad;}});return _0x19d008;}else{for(var _0x4e51f3=0x0;_0x4e51f3<_0x488ca1[_0x68df('0x66')];_0x4e51f3++){var _0x40910b=_0x488ca1[_0x4e51f3];if(_0x40910b[_0x68df('0x62')]==='agent'){var _0x1693b9=_[_0x68df('0x49')](_0x1598f0,function(_0x4541bb){return _0x4541bb[_0x68df('0x67')]===_0x40910b['id'];});if(_0x1693b9)_0x19d008[_0x68df('0x68')](_0x40910b);}else{_0x19d008[_0x68df('0x68')](_0x40910b);}}return _0x19d008;}});}else{return _0x488ca1;}}else{var _0x1712c1=_[_0x68df('0x3e')](_0x488ca1,function(_0x4b7f03){if(_0x4b7f03[_0x68df('0x62')]!==_0x68df('0x55')){return _0x4b7f03;}});return _0x1712c1;}});}else{return _0x488ca1;}}})[_0x68df('0x25')](function(_0x2550bb){var _0x279042=[];if(_0x2550bb){_0x5121e3=_0x2550bb;for(var _0x352476=0x0;_0x352476<_0x2550bb['length'];_0x352476+=0x1){_0x5121e3[_0x352476][_0x68df('0x4d')]=[];_0x279042[_0x68df('0x68')](db['ChatInternalMessage'][_0x68df('0x49')]({'where':{'FromId':[_0x557cb0['user']['id'],_0x2550bb[_0x352476]['id']],'ToId':[_0x557cb0[_0x68df('0x57')]['id'],_0x2550bb[_0x352476]['id']],'ChatGroupId':null},'attributes':['id','createdAt',_0x68df('0x69'),_0x68df('0x6a'),_0x68df('0x6b'),_0x68df('0x4b')],'order':qs['sort'](_0x68df('0x6c')),'limit':0x1,'offset':0x0,'raw':!![]})['then'](wrapUser(_0x2550bb[_0x352476])));}return BPromise[_0x68df('0x6d')](_0x279042);}return[];})['then'](function(_0x287565){return{'rows':_0x287565,'count':_0x287565[_0x68df('0x66')]};})[_0x68df('0x25')](respondWithResult(_0x8f6af5,null))[_0x68df('0x46')](handleError(_0x8f6af5,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xabd3=['emit','hasOwnProperty','exports','events','../../mysqldb','setMaxListeners','save','update'];(function(_0x5d2803,_0xf375bd){var _0xdcad2c=function(_0x3c3a98){while(--_0x3c3a98){_0x5d2803['push'](_0x5d2803['shift']());}};_0xdcad2c(++_0xf375bd);}(_0xabd3,0x1f3));var _0x3abd=function(_0x1ac6ec,_0x1f81fc){_0x1ac6ec=_0x1ac6ec-0x0;var _0x48a489=_0xabd3[_0x1ac6ec];return _0x48a489;};'use strict';var EventEmitter=require(_0x3abd('0x0'));var ChatInternalMessage=require(_0x3abd('0x1'))['db']['ChatInternalMessage'];var ChatInternalMessageEvents=new EventEmitter();ChatInternalMessageEvents[_0x3abd('0x2')](0x0);var events={'afterCreate':_0x3abd('0x3'),'afterUpdate':_0x3abd('0x4'),'afterDestroy':'remove'};function emitEvent(_0x49711e){return function(_0x191ead,_0xa13e2b,_0x9c8216){ChatInternalMessageEvents['emit'](_0x49711e+':'+_0x191ead['id'],_0x191ead);ChatInternalMessageEvents[_0x3abd('0x5')](_0x49711e,_0x191ead);_0x9c8216(null);};}for(var e in events){if(events[_0x3abd('0x6')](e)){var event=events[e];ChatInternalMessage['hook'](e,emitEvent(event));}}module[_0x3abd('0x7')]=ChatInternalMessageEvents;
\ No newline at end of file
+var _0x9782=['events','../../mysqldb','setMaxListeners','remove','emit','hook'];(function(_0xd1d20f,_0x146339){var _0x13e9ad=function(_0x113208){while(--_0x113208){_0xd1d20f['push'](_0xd1d20f['shift']());}};_0x13e9ad(++_0x146339);}(_0x9782,0xf6));var _0x2978=function(_0x918eb4,_0x1e2eca){_0x918eb4=_0x918eb4-0x0;var _0x5b07db=_0x9782[_0x918eb4];return _0x5b07db;};'use strict';var EventEmitter=require(_0x2978('0x0'));var ChatInternalMessage=require(_0x2978('0x1'))['db']['ChatInternalMessage'];var ChatInternalMessageEvents=new EventEmitter();ChatInternalMessageEvents[_0x2978('0x2')](0x0);var events={'afterCreate':'save','afterUpdate':'update','afterDestroy':_0x2978('0x3')};function emitEvent(_0x1fe2bd){return function(_0x104f79,_0x452f52,_0x1f1502){ChatInternalMessageEvents[_0x2978('0x4')](_0x1fe2bd+':'+_0x104f79['id'],_0x104f79);ChatInternalMessageEvents[_0x2978('0x4')](_0x1fe2bd,_0x104f79);_0x1f1502(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];ChatInternalMessage[_0x2978('0x5')](e,emitEvent(event));}}module['exports']=ChatInternalMessageEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x62cf=['./chatInternalMessage.attributes','define','ChatInternalMessage','lodash','api','moment','bluebird','path','rimraf','../../config/environment'];(function(_0x3a185d,_0x3d7270){var _0x3d114b=function(_0x5476b2){while(--_0x5476b2){_0x3a185d['push'](_0x3a185d['shift']());}};_0x3d114b(++_0x3d7270);}(_0x62cf,0x157));var _0xf62c=function(_0x4907f9,_0x19396f){_0x4907f9=_0x4907f9-0x0;var _0x56c2b3=_0x62cf[_0x4907f9];return _0x56c2b3;};'use strict';var _=require(_0xf62c('0x0'));var util=require('util');var logger=require('../../config/logger')(_0xf62c('0x1'));var moment=require(_0xf62c('0x2'));var BPromise=require(_0xf62c('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xf62c('0x4'));var rimraf=require(_0xf62c('0x5'));var config=require(_0xf62c('0x6'));var attributes=require(_0xf62c('0x7'));module['exports']=function(_0x21fafb,_0x40538c){return _0x21fafb[_0xf62c('0x8')](_0xf62c('0x9'),attributes,{'tableName':'chat_internal_messages','paranoid':![],'indexes':[],'timestamps':!![],'charset':'utf8mb4','collate':'utf8mb4_unicode_ci'});};
\ No newline at end of file
+var _0x655a=['utf8mb4_unicode_ci','lodash','util','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./chatInternalMessage.attributes','exports','define','chat_internal_messages','utf8mb4'];(function(_0x461481,_0x5911bf){var _0x4e807c=function(_0x201699){while(--_0x201699){_0x461481['push'](_0x461481['shift']());}};_0x4e807c(++_0x5911bf);}(_0x655a,0x88));var _0xa655=function(_0x2c7918,_0x8d2d47){_0x2c7918=_0x2c7918-0x0;var _0x15cb96=_0x655a[_0x2c7918];return _0x15cb96;};'use strict';var _=require(_0xa655('0x0'));var util=require(_0xa655('0x1'));var logger=require('../../config/logger')(_0xa655('0x2'));var moment=require(_0xa655('0x3'));var BPromise=require(_0xa655('0x4'));var rp=require(_0xa655('0x5'));var fs=require('fs');var path=require(_0xa655('0x6'));var rimraf=require(_0xa655('0x7'));var config=require(_0xa655('0x8'));var attributes=require(_0xa655('0x9'));module[_0xa655('0xa')]=function(_0x44cc93,_0x4c6313){return _0x44cc93[_0xa655('0xb')]('ChatInternalMessage',attributes,{'tableName':_0xa655('0xc'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0xa655('0xd'),'collate':_0xa655('0xe')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x587a=['../../config/utils','../../config/logger','rpc','jayson/promise','client','http','redis','defaults','socket.io-emitter','./chatInternalMessage.socket','register','request','info','ChatInternalMessage,\x20%s,\x20%s','request\x20sent','ChatInternalMessage,\x20%s,\x20%s,\x20%s','error','message','result','catch','lodash','util','moment','bluebird','../../mysqldb'];(function(_0x2ae274,_0x2da3c5){var _0x5dd341=function(_0x42145d){while(--_0x42145d){_0x2ae274['push'](_0x2ae274['shift']());}};_0x5dd341(++_0x2da3c5);}(_0x587a,0x18b));var _0xa587=function(_0x54336b,_0x299d97){_0x54336b=_0x54336b-0x0;var _0xcd0bc5=_0x587a[_0x54336b];return _0xcd0bc5;};'use strict';var _=require(_0xa587('0x0'));var util=require(_0xa587('0x1'));var moment=require(_0xa587('0x2'));var BPromise=require(_0xa587('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0xa587('0x4'))['db'];var utils=require(_0xa587('0x5'));var logger=require(_0xa587('0x6'))(_0xa587('0x7'));var config=require('../../config/environment');var jayson=require(_0xa587('0x8'));var client=jayson[_0xa587('0x9')][_0xa587('0xa')]({'port':0x232a});config[_0xa587('0xb')]=_[_0xa587('0xc')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0xa587('0xd'))(new Redis(config[_0xa587('0xb')]));require(_0xa587('0xe'))[_0xa587('0xf')](socket);function respondWithRpcPromise(_0x43f1ec,_0x4682e9,_0x1b887b){return new BPromise(function(_0x2ebff3,_0x11aec5){return client[_0xa587('0x10')](_0x43f1ec,_0x1b887b)['then'](function(_0x20951e){logger[_0xa587('0x11')](_0xa587('0x12'),_0x4682e9,_0xa587('0x13'));logger['debug'](_0xa587('0x14'),_0x4682e9,_0xa587('0x13'),JSON['stringify'](_0x20951e));if(_0x20951e['error']){if(_0x20951e['error']['code']===0x1f4){logger[_0xa587('0x15')](_0xa587('0x12'),_0x4682e9,_0x20951e[_0xa587('0x15')][_0xa587('0x16')]);return _0x11aec5(_0x20951e[_0xa587('0x15')]['message']);}logger[_0xa587('0x15')](_0xa587('0x12'),_0x4682e9,_0x20951e[_0xa587('0x15')][_0xa587('0x16')]);return _0x2ebff3(_0x20951e[_0xa587('0x15')][_0xa587('0x16')]);}else{logger['info'](_0xa587('0x12'),_0x4682e9,_0xa587('0x13'));_0x2ebff3(_0x20951e[_0xa587('0x17')]['message']);}})[_0xa587('0x18')](function(_0x142bd3){logger['error'](_0xa587('0x12'),_0x4682e9,_0x142bd3);_0x11aec5(_0x142bd3);});});}
\ No newline at end of file
+var _0xf211=['moment','randomstring','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','redis','defaults','localhost','socket.io-emitter','./chatInternalMessage.socket','register','request','then','info','ChatInternalMessage,\x20%s,\x20%s','request\x20sent','debug','ChatInternalMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','lodash','util'];(function(_0x3b90ab,_0x174a22){var _0x206e92=function(_0x21fbd3){while(--_0x21fbd3){_0x3b90ab['push'](_0x3b90ab['shift']());}};_0x206e92(++_0x174a22);}(_0xf211,0x6e));var _0x1f21=function(_0x3a5d69,_0x1e2796){_0x3a5d69=_0x3a5d69-0x0;var _0x281f97=_0xf211[_0x3a5d69];return _0x281f97;};'use strict';var _=require(_0x1f21('0x0'));var util=require(_0x1f21('0x1'));var moment=require(_0x1f21('0x2'));var BPromise=require('bluebird');var rs=require(_0x1f21('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x1f21('0x4'));var logger=require(_0x1f21('0x5'))(_0x1f21('0x6'));var config=require(_0x1f21('0x7'));var jayson=require(_0x1f21('0x8'));var client=jayson[_0x1f21('0x9')]['http']({'port':0x232a});config[_0x1f21('0xa')]=_[_0x1f21('0xb')](config[_0x1f21('0xa')],{'host':_0x1f21('0xc'),'port':0x18eb});var socket=require(_0x1f21('0xd'))(new Redis(config[_0x1f21('0xa')]));require(_0x1f21('0xe'))[_0x1f21('0xf')](socket);function respondWithRpcPromise(_0x38b225,_0x44d2f6,_0x10f545){return new BPromise(function(_0x335f8f,_0x1239fd){return client[_0x1f21('0x10')](_0x38b225,_0x10f545)[_0x1f21('0x11')](function(_0x23cb58){logger[_0x1f21('0x12')](_0x1f21('0x13'),_0x44d2f6,_0x1f21('0x14'));logger[_0x1f21('0x15')](_0x1f21('0x16'),_0x44d2f6,_0x1f21('0x14'),JSON[_0x1f21('0x17')](_0x23cb58));if(_0x23cb58[_0x1f21('0x18')]){if(_0x23cb58[_0x1f21('0x18')][_0x1f21('0x19')]===0x1f4){logger[_0x1f21('0x18')](_0x1f21('0x13'),_0x44d2f6,_0x23cb58[_0x1f21('0x18')]['message']);return _0x1239fd(_0x23cb58[_0x1f21('0x18')][_0x1f21('0x1a')]);}logger[_0x1f21('0x18')](_0x1f21('0x13'),_0x44d2f6,_0x23cb58['error'][_0x1f21('0x1a')]);return _0x335f8f(_0x23cb58['error'][_0x1f21('0x1a')]);}else{logger[_0x1f21('0x12')](_0x1f21('0x13'),_0x44d2f6,_0x1f21('0x14'));_0x335f8f(_0x23cb58['result'][_0x1f21('0x1a')]);}})[_0x1f21('0x1b')](function(_0x696542){logger['error'](_0x1f21('0x13'),_0x44d2f6,_0x696542);_0x1239fd(_0x696542);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x89d1=['register','./chatInternalMessage.events','remove','emit','removeListener'];(function(_0x136a0d,_0x476fe2){var _0x212ea5=function(_0xa288e){while(--_0xa288e){_0x136a0d['push'](_0x136a0d['shift']());}};_0x212ea5(++_0x476fe2);}(_0x89d1,0x119));var _0x189d=function(_0x4083de,_0x107e89){_0x4083de=_0x4083de-0x0;var _0x320517=_0x89d1[_0x4083de];return _0x320517;};'use strict';var ChatInternalMessageEvents=require(_0x189d('0x0'));var events=['save',_0x189d('0x1'),'update'];function createListener(_0x24b8a9,_0x554608){return function(_0x4f35f1){_0x554608[_0x189d('0x2')](_0x24b8a9,_0x4f35f1);};}function removeListener(_0xcfd5e2,_0x3304a5){return function(){ChatInternalMessageEvents[_0x189d('0x3')](_0xcfd5e2,_0x3304a5);};}exports[_0x189d('0x4')]=function(_0x13f3e3){for(var _0x6d4b16=0x0,_0x1a32bc=events['length'];_0x6d4b16<_0x1a32bc;_0x6d4b16++){var _0x17be4d=events[_0x6d4b16];var _0x43191e=createListener('chatInternalMessage:'+_0x17be4d,_0x13f3e3);ChatInternalMessageEvents['on'](_0x17be4d,_0x43191e);}};
\ No newline at end of file
+var _0x11a9=['./chatInternalMessage.events','save','remove','emit','removeListener','register','length'];(function(_0x442cfe,_0x10d3ea){var _0x47cdd4=function(_0xfd2bd7){while(--_0xfd2bd7){_0x442cfe['push'](_0x442cfe['shift']());}};_0x47cdd4(++_0x10d3ea);}(_0x11a9,0x69));var _0x911a=function(_0x29aac1,_0x456089){_0x29aac1=_0x29aac1-0x0;var _0x10cac7=_0x11a9[_0x29aac1];return _0x10cac7;};'use strict';var ChatInternalMessageEvents=require(_0x911a('0x0'));var events=[_0x911a('0x1'),_0x911a('0x2'),'update'];function createListener(_0x39fceb,_0x46c638){return function(_0x30c7fd){_0x46c638[_0x911a('0x3')](_0x39fceb,_0x30c7fd);};}function removeListener(_0xeb2110,_0x361904){return function(){ChatInternalMessageEvents[_0x911a('0x4')](_0xeb2110,_0x361904);};}exports[_0x911a('0x5')]=function(_0x2d07dc){for(var _0x331d0b=0x0,_0x1de10d=events[_0x911a('0x6')];_0x331d0b<_0x1de10d;_0x331d0b++){var _0x8c6516=events[_0x331d0b];var _0xd87269=createListener('chatInternalMessage:'+_0x8c6516,_0x2d07dc);ChatInternalMessageEvents['on'](_0x8c6516,_0xd87269);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa71f=['connect-timeout','express','fs-extra','../../config/environment','./chatInternalMessage.controller','get','/describe','describe','/users','getUsers','/:id','isAuthenticated','show','post','create','put','update','destroy','exports','util','path'];(function(_0x316fe1,_0x31606b){var _0x50f962=function(_0x236f79){while(--_0x236f79){_0x316fe1['push'](_0x316fe1['shift']());}};_0x50f962(++_0x31606b);}(_0xa71f,0x1e1));var _0xfa71=function(_0x153479,_0x477e9a){_0x153479=_0x153479-0x0;var _0x2d62e1=_0xa71f[_0x153479];return _0x2d62e1;};'use strict';var multer=require('multer');var util=require(_0xfa71('0x0'));var path=require(_0xfa71('0x1'));var timeout=require(_0xfa71('0x2'));var express=require(_0xfa71('0x3'));var router=express['Router']();var fs_extra=require(_0xfa71('0x4'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0xfa71('0x5'));var controller=require(_0xfa71('0x6'));router[_0xfa71('0x7')]('/',auth['isAuthenticated'](),controller['index']);router[_0xfa71('0x7')](_0xfa71('0x8'),auth['isAuthenticated'](),controller[_0xfa71('0x9')]);router[_0xfa71('0x7')](_0xfa71('0xa'),auth['isAuthenticated'](),controller[_0xfa71('0xb')]);router[_0xfa71('0x7')](_0xfa71('0xc'),auth[_0xfa71('0xd')](),controller[_0xfa71('0xe')]);router[_0xfa71('0xf')]('/',auth[_0xfa71('0xd')](),controller[_0xfa71('0x10')]);router[_0xfa71('0x11')](_0xfa71('0xc'),controller[_0xfa71('0x12')]);router['delete'](_0xfa71('0xc'),auth['isAuthenticated'](),controller[_0xfa71('0x13')]);module[_0xfa71('0x14')]=router;
\ No newline at end of file
+var _0x319c=['isAuthenticated','index','/describe','describe','getUsers','/:id','show','post','create','put','update','delete','destroy','multer','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./chatInternalMessage.controller','get'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x319c,0x1d9));var _0xc319=function(_0x56916d,_0x37b935){_0x56916d=_0x56916d-0x0;var _0x2b7f1f=_0x319c[_0x56916d];return _0x2b7f1f;};'use strict';var multer=require(_0xc319('0x0'));var util=require('util');var path=require(_0xc319('0x1'));var timeout=require(_0xc319('0x2'));var express=require(_0xc319('0x3'));var router=express['Router']();var fs_extra=require(_0xc319('0x4'));var auth=require(_0xc319('0x5'));var interaction=require(_0xc319('0x6'));var config=require(_0xc319('0x7'));var controller=require(_0xc319('0x8'));router[_0xc319('0x9')]('/',auth[_0xc319('0xa')](),controller[_0xc319('0xb')]);router[_0xc319('0x9')](_0xc319('0xc'),auth[_0xc319('0xa')](),controller[_0xc319('0xd')]);router[_0xc319('0x9')]('/users',auth[_0xc319('0xa')](),controller[_0xc319('0xe')]);router[_0xc319('0x9')](_0xc319('0xf'),auth[_0xc319('0xa')](),controller[_0xc319('0x10')]);router[_0xc319('0x11')]('/',auth[_0xc319('0xa')](),controller[_0xc319('0x12')]);router[_0xc319('0x13')](_0xc319('0xf'),controller[_0xc319('0x14')]);router[_0xc319('0x15')](_0xc319('0xf'),auth[_0xc319('0xa')](),controller[_0xc319('0x16')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1b0e=['TEXT','medium','BOOLEAN','out','DATE','sequelize','exports'];(function(_0x50a0c2,_0x4befab){var _0x5ebadd=function(_0x3a3342){while(--_0x3a3342){_0x50a0c2['push'](_0x50a0c2['shift']());}};_0x5ebadd(++_0x4befab);}(_0x1b0e,0x132));var _0xe1b0=function(_0x36e38f,_0xf44489){_0x36e38f=_0x36e38f-0x0;var _0x2cd51b=_0x1b0e[_0x36e38f];return _0x2cd51b;};'use strict';var Sequelize=require(_0xe1b0('0x0'));module[_0xe1b0('0x1')]={'body':{'type':Sequelize[_0xe1b0('0x2')](_0xe1b0('0x3')),'allowNull':![]},'read':{'type':Sequelize[_0xe1b0('0x4')],'defaultValue':![]},'secret':{'type':Sequelize[_0xe1b0('0x4')],'defaultValue':![]},'direction':{'type':Sequelize['ENUM']('in','out'),'defaultValue':_0xe1b0('0x5'),'allowNull':![]},'readAt':{'type':Sequelize[_0xe1b0('0x6')]},'providerName':{'type':Sequelize['STRING']},'providerResponse':{'type':Sequelize[_0xe1b0('0x2')]}};
\ No newline at end of file
+var _0x6cb4=['exports','TEXT','medium','BOOLEAN','ENUM','out','STRING','sequelize'];(function(_0x51b661,_0x566ef8){var _0x5d1971=function(_0x5cc6b8){while(--_0x5cc6b8){_0x51b661['push'](_0x51b661['shift']());}};_0x5d1971(++_0x566ef8);}(_0x6cb4,0xff));var _0x46cb=function(_0x434751,_0x949321){_0x434751=_0x434751-0x0;var _0x4fbc7a=_0x6cb4[_0x434751];return _0x4fbc7a;};'use strict';var Sequelize=require(_0x46cb('0x0'));module[_0x46cb('0x1')]={'body':{'type':Sequelize[_0x46cb('0x2')](_0x46cb('0x3')),'allowNull':![]},'read':{'type':Sequelize[_0x46cb('0x4')],'defaultValue':![]},'secret':{'type':Sequelize[_0x46cb('0x4')],'defaultValue':![]},'direction':{'type':Sequelize[_0x46cb('0x5')]('in',_0x46cb('0x6')),'defaultValue':_0x46cb('0x6'),'allowNull':![]},'readAt':{'type':Sequelize['DATE']},'providerName':{'type':Sequelize[_0x46cb('0x7')]},'providerResponse':{'type':Sequelize['TEXT']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe743=['formData','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./chatMessage.socket','register','jayson/promise','client','http','request','then','ChatMessage,\x20%s,\x20%s','request\x20sent','debug','stringify','code','error','message','result','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','save','update','destroy','name','send','map','ChatMessage','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','include','findAll','rows','catch','params','includeAll','find','create','body','describe','chat-interactions','accept','chat','read','readAt','UserId','user','agent','ChatInteraction','ChatInteractionId','isNil','read1stAt','YYYY-MM-DD\x20HH:mm:ss','interaction','info','[CHATMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','null','AcceptMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','Sequelize','QueryTypes','SELECT','contact','fullname','email','internal','manual','interface','format','SIP/%s','channel','motionChannel','event','EventManager','acceptmessage','parse','reject','get','RejectMessage','rejectMessage','ContactId','User','rejectmessage'];(function(_0x209238,_0x4dedb7){var _0x19db8c=function(_0x1c77cf){while(--_0x1c77cf){_0x209238['push'](_0x209238['shift']());}};_0x19db8c(++_0x4dedb7);}(_0xe743,0x11b));var _0x3e74=function(_0x518213,_0x5deb63){_0x518213=_0x518213-0x0;var _0x5980e2=_0xe743[_0x518213];return _0x5980e2;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x3e74('0x0'));var zipdir=require(_0x3e74('0x1'));var jsonpatch=require(_0x3e74('0x2'));var rp=require(_0x3e74('0x3'));var moment=require(_0x3e74('0x4'));var BPromise=require(_0x3e74('0x5'));var Mustache=require(_0x3e74('0x6'));var util=require(_0x3e74('0x7'));var path=require(_0x3e74('0x8'));var sox=require('sox');var csv=require(_0x3e74('0x9'));var ejs=require(_0x3e74('0xa'));var fs=require('fs');var fs_extra=require(_0x3e74('0xb'));var _=require(_0x3e74('0xc'));var squel=require(_0x3e74('0xd'));var crypto=require(_0x3e74('0xe'));var jsforce=require(_0x3e74('0xf'));var deskjs=require(_0x3e74('0x10'));var toCsv=require(_0x3e74('0x9'));var querystring=require(_0x3e74('0x11'));var Papa=require(_0x3e74('0x12'));var Redis=require(_0x3e74('0x13'));var authService=require(_0x3e74('0x14'));var qs=require(_0x3e74('0x15'));var as=require(_0x3e74('0x16'));var hardwareService=require(_0x3e74('0x17'));var logger=require(_0x3e74('0x18'))(_0x3e74('0x19'));var utils=require(_0x3e74('0x1a'));var config=require(_0x3e74('0x1b'));var licenseUtil=require(_0x3e74('0x1c'));var db=require(_0x3e74('0x1d'))['db'];config['redis']=_[_0x3e74('0x1e')](config[_0x3e74('0x1f')],{'host':_0x3e74('0x20'),'port':0x18eb});var socket=require(_0x3e74('0x21'))(new Redis(config[_0x3e74('0x1f')]));require(_0x3e74('0x22'))[_0x3e74('0x23')](socket);var jayson=require(_0x3e74('0x24'));var client=jayson[_0x3e74('0x25')][_0x3e74('0x26')]({'port':0x232c});var client9002=jayson['client'][_0x3e74('0x26')]({'port':0x232a});function respondWithRpcPromise(_0x45743f,_0x45fb81,_0x52cdfe,_0x2ca363){return new BPromise(function(_0x2f0aa3,_0x4ea623){var _0x3004e7=_0x2ca363||client;return _0x3004e7[_0x3e74('0x27')](_0x45743f,_0x52cdfe)[_0x3e74('0x28')](function(_0x4ad26a){logger['info'](_0x3e74('0x29'),_0x45fb81,_0x3e74('0x2a'));logger[_0x3e74('0x2b')]('ChatMessage,\x20%s,\x20%s,\x20%s',_0x45fb81,_0x3e74('0x2a'),JSON[_0x3e74('0x2c')](_0x4ad26a));if(_0x4ad26a['error']){if(_0x4ad26a['error'][_0x3e74('0x2d')]===0x1f4){logger['error'](_0x3e74('0x29'),_0x45fb81,_0x4ad26a[_0x3e74('0x2e')][_0x3e74('0x2f')]);return _0x4ea623(_0x4ad26a[_0x3e74('0x2e')][_0x3e74('0x2f')]);}logger[_0x3e74('0x2e')](_0x3e74('0x29'),_0x45fb81,_0x4ad26a[_0x3e74('0x2e')]['message']);return _0x2f0aa3(_0x4ad26a['error'][_0x3e74('0x2f')]);}else{logger['info'](_0x3e74('0x29'),_0x45fb81,_0x3e74('0x2a'));_0x2f0aa3(_0x4ad26a[_0x3e74('0x30')][_0x3e74('0x2f')]);}})['catch'](function(_0x1ffe54){logger[_0x3e74('0x2e')](_0x3e74('0x29'),_0x45fb81,_0x1ffe54);_0x4ea623(_0x1ffe54);});});}function respondWithStatusCode(_0x3b7f62,_0x20add7){_0x20add7=_0x20add7||0xcc;return function(_0x4d12a1){if(_0x4d12a1){return _0x3b7f62[_0x3e74('0x31')](_0x20add7);}return _0x3b7f62[_0x3e74('0x32')](_0x20add7)[_0x3e74('0x33')]();};}function respondWithResult(_0x411523,_0x304ba5){_0x304ba5=_0x304ba5||0xc8;return function(_0x3a3582){if(_0x3a3582){return _0x411523[_0x3e74('0x32')](_0x304ba5)['json'](_0x3a3582);}};}function respondWithFilteredResult(_0x360381,_0x4615f8){return function(_0x1a1b2d){if(_0x1a1b2d){var _0xa924ee=typeof _0x4615f8[_0x3e74('0x34')]===_0x3e74('0x35')&&typeof _0x4615f8[_0x3e74('0x36')]==='undefined';var _0xae7647=_0x1a1b2d['count'];var _0x1b2d60=_0xa924ee?0x0:_0x4615f8['offset'];var _0x23278f=_0xa924ee?_0x1a1b2d[_0x3e74('0x37')]:_0x4615f8['offset']+_0x4615f8[_0x3e74('0x36')];var _0x3460b9;if(_0x23278f>=_0xae7647){_0x23278f=_0xae7647;_0x3460b9=0xc8;}else{_0x3460b9=0xce;}_0x360381['status'](_0x3460b9);return _0x360381[_0x3e74('0x38')](_0x3e74('0x39'),_0x1b2d60+'-'+_0x23278f+'/'+_0xae7647)['json'](_0x1a1b2d);}return null;};}function patchUpdates(_0x3cd280){return function(_0x36cea4){try{jsonpatch['apply'](_0x36cea4,_0x3cd280,!![]);}catch(_0x4dc73b){return BPromise['reject'](_0x4dc73b);}return _0x36cea4[_0x3e74('0x3a')]();};}function saveUpdates(_0x34e0a3,_0x45f758){return function(_0x55a994){if(_0x55a994){return _0x55a994[_0x3e74('0x3b')](_0x34e0a3)['then'](function(_0x3f9685){return _0x3f9685;});}return null;};}function removeEntity(_0x4ca35e,_0x4f3a80){return function(_0x12b021){if(_0x12b021){return _0x12b021[_0x3e74('0x3c')]()[_0x3e74('0x28')](function(){_0x4ca35e[_0x3e74('0x32')](0xcc)[_0x3e74('0x33')]();});}};}function handleEntityNotFound(_0x3533d3,_0xaf021e){return function(_0x166aa7){if(!_0x166aa7){_0x3533d3[_0x3e74('0x31')](0x194);}return _0x166aa7;};}function handleError(_0x48db22,_0x45c157){_0x45c157=_0x45c157||0x1f4;return function(_0x580f9d){logger[_0x3e74('0x2e')](_0x580f9d['stack']);if(_0x580f9d['name']){delete _0x580f9d[_0x3e74('0x3d')];}_0x48db22[_0x3e74('0x32')](_0x45c157)[_0x3e74('0x3e')](_0x580f9d);};}exports['index']=function(_0x349a8c,_0x5802f8){var _0x305200={},_0x2743c8={},_0x1a33cf={'count':0x0,'rows':[]};var _0x13c159=_[_0x3e74('0x3f')](db[_0x3e74('0x40')][_0x3e74('0x41')],function(_0x44c9b0){return{'name':_0x44c9b0[_0x3e74('0x42')],'type':_0x44c9b0[_0x3e74('0x43')]['key']};});_0x2743c8[_0x3e74('0x44')]=_['map'](_0x13c159,_0x3e74('0x3d'));_0x2743c8[_0x3e74('0x45')]=_[_0x3e74('0x46')](_0x349a8c[_0x3e74('0x45')]);_0x2743c8[_0x3e74('0x47')]=_[_0x3e74('0x48')](_0x2743c8[_0x3e74('0x44')],_0x2743c8[_0x3e74('0x45')]);_0x305200[_0x3e74('0x49')]=_[_0x3e74('0x48')](_0x2743c8[_0x3e74('0x44')],qs[_0x3e74('0x4a')](_0x349a8c[_0x3e74('0x45')][_0x3e74('0x4a')]));_0x305200[_0x3e74('0x49')]=_0x305200[_0x3e74('0x49')][_0x3e74('0x4b')]?_0x305200[_0x3e74('0x49')]:_0x2743c8[_0x3e74('0x44')];if(!_0x349a8c[_0x3e74('0x45')][_0x3e74('0x4c')](_0x3e74('0x4d'))){_0x305200[_0x3e74('0x36')]=qs[_0x3e74('0x36')](_0x349a8c[_0x3e74('0x45')]['limit']);_0x305200[_0x3e74('0x34')]=qs[_0x3e74('0x34')](_0x349a8c[_0x3e74('0x45')]['offset']);}_0x305200['order']=qs[_0x3e74('0x4e')](_0x349a8c[_0x3e74('0x45')][_0x3e74('0x4e')]);_0x305200[_0x3e74('0x4f')]=qs[_0x3e74('0x47')](_[_0x3e74('0x50')](_0x349a8c[_0x3e74('0x45')],_0x2743c8[_0x3e74('0x47')]),_0x13c159);if(_0x349a8c[_0x3e74('0x45')][_0x3e74('0x51')]){_0x305200['where']=_[_0x3e74('0x52')](_0x305200[_0x3e74('0x4f')],{'$or':_[_0x3e74('0x3f')](_0x13c159,function(_0x463b57){if(_0x463b57[_0x3e74('0x43')]!==_0x3e74('0x53')){var _0xa60eb8={};_0xa60eb8[_0x463b57[_0x3e74('0x3d')]]={'$like':'%'+_0x349a8c[_0x3e74('0x45')]['filter']+'%'};return _0xa60eb8;}})});}_0x305200=_[_0x3e74('0x52')]({},_0x305200,_0x349a8c[_0x3e74('0x54')]);var _0x4773cd={'where':_0x305200[_0x3e74('0x4f')]};return db[_0x3e74('0x40')][_0x3e74('0x37')](_0x4773cd)[_0x3e74('0x28')](function(_0x482842){_0x1a33cf[_0x3e74('0x37')]=_0x482842;if(_0x349a8c[_0x3e74('0x45')]['includeAll']){_0x305200[_0x3e74('0x55')]=[{'all':!![]}];}return db[_0x3e74('0x40')][_0x3e74('0x56')](_0x305200);})[_0x3e74('0x28')](function(_0x4f3564){_0x1a33cf[_0x3e74('0x57')]=_0x4f3564;return _0x1a33cf;})['then'](respondWithFilteredResult(_0x5802f8,_0x305200))[_0x3e74('0x58')](handleError(_0x5802f8,null));};exports['show']=function(_0x4b52a6,_0x56f15e){var _0x2bbd33={'raw':!![],'where':{'id':_0x4b52a6[_0x3e74('0x59')]['id']}},_0x51b9f1={};_0x51b9f1['model']=_[_0x3e74('0x46')](db[_0x3e74('0x40')][_0x3e74('0x41')]);_0x51b9f1[_0x3e74('0x45')]=_[_0x3e74('0x46')](_0x4b52a6[_0x3e74('0x45')]);_0x51b9f1['filters']=_[_0x3e74('0x48')](_0x51b9f1['model'],_0x51b9f1['query']);_0x2bbd33[_0x3e74('0x49')]=_[_0x3e74('0x48')](_0x51b9f1['model'],qs[_0x3e74('0x4a')](_0x4b52a6['query'][_0x3e74('0x4a')]));_0x2bbd33[_0x3e74('0x49')]=_0x2bbd33[_0x3e74('0x49')]['length']?_0x2bbd33['attributes']:_0x51b9f1['model'];if(_0x4b52a6[_0x3e74('0x45')][_0x3e74('0x5a')]){_0x2bbd33[_0x3e74('0x55')]=[{'all':!![]}];}_0x2bbd33=_[_0x3e74('0x52')]({},_0x2bbd33,_0x4b52a6[_0x3e74('0x54')]);return db['ChatMessage'][_0x3e74('0x5b')](_0x2bbd33)[_0x3e74('0x28')](handleEntityNotFound(_0x56f15e,null))[_0x3e74('0x28')](respondWithResult(_0x56f15e,null))[_0x3e74('0x58')](handleError(_0x56f15e,null));};exports[_0x3e74('0x5c')]=function(_0x3bab1e,_0x2acaf5){return db[_0x3e74('0x40')]['create'](_0x3bab1e[_0x3e74('0x5d')],{})['then'](respondWithResult(_0x2acaf5,0xc9))[_0x3e74('0x58')](handleError(_0x2acaf5,null));};exports[_0x3e74('0x3b')]=function(_0xe24d0b,_0x412009){if(_0xe24d0b[_0x3e74('0x5d')]['id']){delete _0xe24d0b[_0x3e74('0x5d')]['id'];}return db['ChatMessage'][_0x3e74('0x5b')]({'where':{'id':_0xe24d0b[_0x3e74('0x59')]['id']}})[_0x3e74('0x28')](handleEntityNotFound(_0x412009,null))[_0x3e74('0x28')](saveUpdates(_0xe24d0b['body'],null))[_0x3e74('0x28')](respondWithResult(_0x412009,null))['catch'](handleError(_0x412009,null));};exports[_0x3e74('0x3c')]=function(_0x40aa1e,_0x3fa83c){return db['ChatMessage'][_0x3e74('0x5b')]({'where':{'id':_0x40aa1e[_0x3e74('0x59')]['id']}})[_0x3e74('0x28')](handleEntityNotFound(_0x3fa83c,null))[_0x3e74('0x28')](removeEntity(_0x3fa83c,null))['catch'](handleError(_0x3fa83c,null));};exports[_0x3e74('0x5e')]=function(_0x5b20dd,_0x1f79f){return db['ChatMessage'][_0x3e74('0x5e')]()[_0x3e74('0x28')](respondWithResult(_0x1f79f,null))[_0x3e74('0x58')](handleError(_0x1f79f,null));};var interaction_log=require(_0x3e74('0x18'))(_0x3e74('0x5f'));exports[_0x3e74('0x60')]=function(_0x16da16,_0x4e07b6,_0x53fdad){var _0x195110={'agent':{},'channel':_0x3e74('0x61')};if(_0x16da16[_0x3e74('0x5d')]['id']){delete _0x16da16[_0x3e74('0x5d')]['id'];}_0x16da16[_0x3e74('0x5d')][_0x3e74('0x62')]=!![];_0x16da16[_0x3e74('0x5d')][_0x3e74('0x63')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');_0x16da16[_0x3e74('0x5d')][_0x3e74('0x64')]=_0x16da16[_0x3e74('0x5d')][_0x3e74('0x64')]||_0x16da16[_0x3e74('0x65')]['id'];_0x195110[_0x3e74('0x66')]['id']=_0x16da16[_0x3e74('0x5d')][_0x3e74('0x64')];return db[_0x3e74('0x40')]['find']({'where':{'id':_0x16da16[_0x3e74('0x59')]['id'],'UserId':null}})[_0x3e74('0x28')](handleEntityNotFound(_0x4e07b6,null))[_0x3e74('0x28')](saveUpdates(_0x16da16[_0x3e74('0x5d')],null))[_0x3e74('0x28')](function(_0x1e465d){if(_0x1e465d){_0x195110['message']=_0x1e465d['get']({'plain':!![]});return db[_0x3e74('0x67')][_0x3e74('0x5b')]({'where':{'id':_0x1e465d[_0x3e74('0x68')]}});}return null;})['then'](handleEntityNotFound(_0x4e07b6,null))[_0x3e74('0x28')](function(_0x24042c){if(_0x24042c){return _0x24042c[_0x3e74('0x3b')]({'UserId':_0x16da16['body'][_0x3e74('0x64')],'read1stAt':_[_0x3e74('0x69')](_0x24042c[_0x3e74('0x6a')])?moment()['format'](_0x3e74('0x6b')):undefined});}return null;})[_0x3e74('0x28')](function(_0x42c9db){if(_0x42c9db){_0x195110[_0x3e74('0x6c')]=_0x42c9db['get']({'plain':!![]});interaction_log[_0x3e74('0x6d')](_0x3e74('0x6e'),_0x16da16[_0x3e74('0x65')]['id'],_0x16da16[_0x3e74('0x65')][_0x3e74('0x3d')],_0x16da16[_0x3e74('0x65')][_0x3e74('0x6f')],_0x195110[_0x3e74('0x6c')]['id'],_0x16da16[_0x3e74('0x5d')]?JSON['stringify'](_0x16da16[_0x3e74('0x5d')]):_0x3e74('0x70'));return respondWithRpcPromise(_0x3e74('0x71'),'acceptMessage',_0x195110);}return null;})[_0x3e74('0x28')](function(_0x344537){var _0x2ecf65=_0x3e74('0x72')+_0x344537[_0x3e74('0x2f')]['ContactId'];return db[_0x3e74('0x73')]['query'](_0x2ecf65,{'type':db[_0x3e74('0x74')][_0x3e74('0x75')][_0x3e74('0x76')],'raw':!![]})['then'](function(_0x1879ea){return _0x1879ea;});})[_0x3e74('0x28')](function(_0x446540){if(_0x446540){_0x195110['message'][_0x3e74('0x77')]=_0x446540[0x0];if(!_0x16da16[_0x3e74('0x5d')]['UserId'])return;return db['User']['find']({'where':{'id':_0x16da16[_0x3e74('0x5d')][_0x3e74('0x64')],'role':_0x3e74('0x66')},'attributes':['id',_0x3e74('0x3d'),_0x3e74('0x78'),_0x3e74('0x79'),_0x3e74('0x7a')],'raw':!![]});}return null;})[_0x3e74('0x28')](function(_0x1df481){if(!_0x1df481)return null;_0x195110[_0x3e74('0x2f')][_0x3e74('0x66')]=_0x1df481;return _0x195110;})[_0x3e74('0x28')](function(_0x2091e9){if(_0x2091e9){if(_0x16da16['body'][_0x3e74('0x7b')]){_0x195110[_0x3e74('0x2f')][_0x3e74('0x7c')]=util[_0x3e74('0x7d')](_0x3e74('0x7e'),_0x16da16['user'][_0x3e74('0x3d')]);_0x195110['message'][_0x3e74('0x7f')]=_0x195110['channel'];_0x195110[_0x3e74('0x2f')][_0x3e74('0x80')]=_0x195110['channel'];_0x195110[_0x3e74('0x2f')][_0x3e74('0x81')]=_0x3e74('0x60');return respondWithRpcPromise(_0x3e74('0x82'),_0x3e74('0x82'),{'event':_0x3e74('0x83'),'message':_[_0x3e74('0x52')](_0x195110[_0x3e74('0x2f')],JSON[_0x3e74('0x84')](_0x195110[_0x3e74('0x6c')]['formData']))},client9002)[_0x3e74('0x28')](function(){return _0x195110;});}return _0x195110;}return null;})[_0x3e74('0x28')](respondWithResult(_0x4e07b6,null))[_0x3e74('0x58')](handleError(_0x4e07b6,null));};var interaction_log=require(_0x3e74('0x18'))(_0x3e74('0x5f'));exports[_0x3e74('0x85')]=function(_0x32e6bd,_0x1d42ec,_0x1d635d){var _0x54a288={'agent':{},'channel':'chat'};if(_0x32e6bd['body']['id']){delete _0x32e6bd[_0x3e74('0x5d')]['id'];}_0x32e6bd[_0x3e74('0x5d')][_0x3e74('0x64')]=_0x32e6bd['body'][_0x3e74('0x64')]||_0x32e6bd[_0x3e74('0x65')]['id'];_0x54a288[_0x3e74('0x66')]['id']=_0x32e6bd[_0x3e74('0x5d')][_0x3e74('0x64')];return db[_0x3e74('0x40')][_0x3e74('0x5b')]({'where':{'id':_0x32e6bd['params']['id'],'UserId':null}})[_0x3e74('0x28')](handleEntityNotFound(_0x1d42ec,null))['then'](function(_0x5a47f9){if(_0x5a47f9){_0x54a288['message']=_0x5a47f9[_0x3e74('0x86')]({'plain':!![]});return db[_0x3e74('0x67')][_0x3e74('0x5b')]({'where':{'id':_0x5a47f9[_0x3e74('0x68')]}});}return null;})[_0x3e74('0x28')](handleEntityNotFound(_0x1d42ec,null))['then'](function(_0x14550f){if(_0x14550f){_0x54a288[_0x3e74('0x6c')]=_0x14550f[_0x3e74('0x86')]({'plain':!![]});interaction_log[_0x3e74('0x6d')]('[CHATMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x32e6bd[_0x3e74('0x65')]['id'],_0x32e6bd[_0x3e74('0x65')][_0x3e74('0x3d')],_0x32e6bd[_0x3e74('0x65')]['role'],_0x54a288['interaction']['id'],_0x32e6bd[_0x3e74('0x5d')]?JSON[_0x3e74('0x2c')](_0x32e6bd[_0x3e74('0x5d')]):_0x3e74('0x70'));return respondWithRpcPromise(_0x3e74('0x87'),_0x3e74('0x88'),_0x54a288);}return null;})[_0x3e74('0x28')](function(_0x38dd96){var _0x859ad9=_0x3e74('0x72')+_0x38dd96[_0x3e74('0x2f')][_0x3e74('0x89')];return db['sequelize']['query'](_0x859ad9,{'type':db[_0x3e74('0x74')]['QueryTypes']['SELECT'],'raw':!![]})[_0x3e74('0x28')](function(_0x320951){return _0x320951;});})[_0x3e74('0x28')](function(_0x18bf94){if(_0x18bf94){_0x54a288[_0x3e74('0x2f')][_0x3e74('0x77')]=_0x18bf94[0x0];if(!_0x32e6bd[_0x3e74('0x5d')][_0x3e74('0x64')])return;return db[_0x3e74('0x8a')]['find']({'where':{'id':_0x32e6bd[_0x3e74('0x5d')][_0x3e74('0x64')],'role':_0x3e74('0x66')},'attributes':['id',_0x3e74('0x3d'),_0x3e74('0x78'),_0x3e74('0x79'),_0x3e74('0x7a')],'raw':!![]});}return null;})[_0x3e74('0x28')](function(_0x577b0f){if(!_0x577b0f)return null;_0x54a288[_0x3e74('0x2f')][_0x3e74('0x66')]=_0x577b0f;return _0x54a288;})['then'](function(_0x2e9526){if(_0x2e9526){_0x2e9526['message'][_0x3e74('0x7c')]=util['format']('SIP/%s',_0x32e6bd[_0x3e74('0x65')]['name']);_0x2e9526['message'][_0x3e74('0x7f')]=_0x54a288['channel'];_0x2e9526[_0x3e74('0x2f')][_0x3e74('0x80')]=_0x54a288[_0x3e74('0x7f')];_0x2e9526[_0x3e74('0x2f')][_0x3e74('0x81')]=_0x3e74('0x85');respondWithRpcPromise('EventManager',_0x3e74('0x82'),{'event':_0x3e74('0x8b'),'message':_['merge'](_0x54a288['message'],JSON[_0x3e74('0x84')](_0x54a288[_0x3e74('0x6c')][_0x3e74('0x8c')]))},client9002);return _0x54a288;}return null;})[_0x3e74('0x28')](respondWithResult(_0x1d42ec,null))[_0x3e74('0x58')](handleError(_0x1d42ec,null));};
\ No newline at end of file
+var _0x0bb1=['find','create','body','describe','accept','read','readAt','YYYY-MM-DD\x20HH:mm:ss','UserId','user','agent','ChatInteraction','ChatInteractionId','read1stAt','format','interaction','role','null','AcceptMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','sequelize','Sequelize','QueryTypes','SELECT','contact','User','internal','manual','SIP/%s','channel','motionChannel','EventManager','acceptmessage','parse','formData','chat-interactions','chat','[CHATMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','rejectMessage','email','interface','rejectmessage','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./chatMessage.socket','register','client','http','request','then','info','ChatMessage,\x20%s,\x20%s','debug','ChatMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','request\x20sent','result','catch','sendStatus','end','json','offset','undefined','limit','status','set','Content-Range','reject','update','destroy','stack','name','send','index','map','ChatMessage','rawAttributes','type','query','filters','intersection','model','attributes','length','hasOwnProperty','nolimit','sort','pick','filter','where','merge','VIRTUAL','options','count','include','rows','params','keys','fields'];(function(_0x41a8ed,_0x3d4807){var _0x1a7500=function(_0x31ef24){while(--_0x31ef24){_0x41a8ed['push'](_0x41a8ed['shift']());}};_0x1a7500(++_0x3d4807);}(_0x0bb1,0x137));var _0x10bb=function(_0x3cc05d,_0x4b8f88){_0x3cc05d=_0x3cc05d-0x0;var _0x28b736=_0x0bb1[_0x3cc05d];return _0x28b736;};'use strict';var emlformat=require(_0x10bb('0x0'));var rimraf=require(_0x10bb('0x1'));var zipdir=require(_0x10bb('0x2'));var jsonpatch=require(_0x10bb('0x3'));var rp=require(_0x10bb('0x4'));var moment=require(_0x10bb('0x5'));var BPromise=require(_0x10bb('0x6'));var Mustache=require(_0x10bb('0x7'));var util=require(_0x10bb('0x8'));var path=require(_0x10bb('0x9'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x10bb('0xa'));var fs=require('fs');var fs_extra=require(_0x10bb('0xb'));var _=require(_0x10bb('0xc'));var squel=require(_0x10bb('0xd'));var crypto=require(_0x10bb('0xe'));var jsforce=require(_0x10bb('0xf'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x10bb('0x10'));var Papa=require(_0x10bb('0x11'));var Redis=require(_0x10bb('0x12'));var authService=require(_0x10bb('0x13'));var qs=require(_0x10bb('0x14'));var as=require(_0x10bb('0x15'));var hardwareService=require(_0x10bb('0x16'));var logger=require(_0x10bb('0x17'))(_0x10bb('0x18'));var utils=require(_0x10bb('0x19'));var config=require(_0x10bb('0x1a'));var licenseUtil=require(_0x10bb('0x1b'));var db=require(_0x10bb('0x1c'))['db'];config['redis']=_[_0x10bb('0x1d')](config[_0x10bb('0x1e')],{'host':_0x10bb('0x1f'),'port':0x18eb});var socket=require(_0x10bb('0x20'))(new Redis(config[_0x10bb('0x1e')]));require(_0x10bb('0x21'))[_0x10bb('0x22')](socket);var jayson=require('jayson/promise');var client=jayson[_0x10bb('0x23')][_0x10bb('0x24')]({'port':0x232c});var client9002=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x564dc4,_0x5bb236,_0x5b161c,_0x353368){return new BPromise(function(_0x176167,_0x4aa3ab){var _0x168693=_0x353368||client;return _0x168693[_0x10bb('0x25')](_0x564dc4,_0x5b161c)[_0x10bb('0x26')](function(_0x585a05){logger[_0x10bb('0x27')](_0x10bb('0x28'),_0x5bb236,'request\x20sent');logger[_0x10bb('0x29')](_0x10bb('0x2a'),_0x5bb236,'request\x20sent',JSON[_0x10bb('0x2b')](_0x585a05));if(_0x585a05[_0x10bb('0x2c')]){if(_0x585a05[_0x10bb('0x2c')][_0x10bb('0x2d')]===0x1f4){logger[_0x10bb('0x2c')](_0x10bb('0x28'),_0x5bb236,_0x585a05[_0x10bb('0x2c')]['message']);return _0x4aa3ab(_0x585a05[_0x10bb('0x2c')][_0x10bb('0x2e')]);}logger['error'](_0x10bb('0x28'),_0x5bb236,_0x585a05[_0x10bb('0x2c')][_0x10bb('0x2e')]);return _0x176167(_0x585a05[_0x10bb('0x2c')][_0x10bb('0x2e')]);}else{logger[_0x10bb('0x27')](_0x10bb('0x28'),_0x5bb236,_0x10bb('0x2f'));_0x176167(_0x585a05[_0x10bb('0x30')][_0x10bb('0x2e')]);}})[_0x10bb('0x31')](function(_0x4e63d1){logger[_0x10bb('0x2c')](_0x10bb('0x28'),_0x5bb236,_0x4e63d1);_0x4aa3ab(_0x4e63d1);});});}function respondWithStatusCode(_0x4434ff,_0x329b1a){_0x329b1a=_0x329b1a||0xcc;return function(_0x5d1699){if(_0x5d1699){return _0x4434ff[_0x10bb('0x32')](_0x329b1a);}return _0x4434ff['status'](_0x329b1a)[_0x10bb('0x33')]();};}function respondWithResult(_0x2159c7,_0x3d5f8c){_0x3d5f8c=_0x3d5f8c||0xc8;return function(_0x2f5c94){if(_0x2f5c94){return _0x2159c7['status'](_0x3d5f8c)[_0x10bb('0x34')](_0x2f5c94);}};}function respondWithFilteredResult(_0x4e6557,_0x2f6bc5){return function(_0x5a141b){if(_0x5a141b){var _0x33cac6=typeof _0x2f6bc5[_0x10bb('0x35')]===_0x10bb('0x36')&&typeof _0x2f6bc5[_0x10bb('0x37')]===_0x10bb('0x36');var _0x15730f=_0x5a141b['count'];var _0x45d2d6=_0x33cac6?0x0:_0x2f6bc5[_0x10bb('0x35')];var _0x11ca5e=_0x33cac6?_0x5a141b['count']:_0x2f6bc5['offset']+_0x2f6bc5[_0x10bb('0x37')];var _0x11f68a;if(_0x11ca5e>=_0x15730f){_0x11ca5e=_0x15730f;_0x11f68a=0xc8;}else{_0x11f68a=0xce;}_0x4e6557[_0x10bb('0x38')](_0x11f68a);return _0x4e6557[_0x10bb('0x39')](_0x10bb('0x3a'),_0x45d2d6+'-'+_0x11ca5e+'/'+_0x15730f)['json'](_0x5a141b);}return null;};}function patchUpdates(_0x3e054c){return function(_0x5aeb6f){try{jsonpatch['apply'](_0x5aeb6f,_0x3e054c,!![]);}catch(_0x1578a5){return BPromise[_0x10bb('0x3b')](_0x1578a5);}return _0x5aeb6f['save']();};}function saveUpdates(_0x7d027f,_0x3a6de9){return function(_0xb34faa){if(_0xb34faa){return _0xb34faa[_0x10bb('0x3c')](_0x7d027f)[_0x10bb('0x26')](function(_0x53ff37){return _0x53ff37;});}return null;};}function removeEntity(_0x2dbfc9,_0x7a25a7){return function(_0x3aa586){if(_0x3aa586){return _0x3aa586[_0x10bb('0x3d')]()[_0x10bb('0x26')](function(){_0x2dbfc9[_0x10bb('0x38')](0xcc)[_0x10bb('0x33')]();});}};}function handleEntityNotFound(_0x1c9abe,_0x550e25){return function(_0x70a7e){if(!_0x70a7e){_0x1c9abe[_0x10bb('0x32')](0x194);}return _0x70a7e;};}function handleError(_0x5fe7a1,_0x32c84a){_0x32c84a=_0x32c84a||0x1f4;return function(_0x48d349){logger[_0x10bb('0x2c')](_0x48d349[_0x10bb('0x3e')]);if(_0x48d349[_0x10bb('0x3f')]){delete _0x48d349['name'];}_0x5fe7a1[_0x10bb('0x38')](_0x32c84a)[_0x10bb('0x40')](_0x48d349);};}exports[_0x10bb('0x41')]=function(_0x3af12b,_0x7e98fa){var _0x5462d8={},_0x4b4e7f={},_0x5ac705={'count':0x0,'rows':[]};var _0x1e4ac1=_[_0x10bb('0x42')](db[_0x10bb('0x43')][_0x10bb('0x44')],function(_0x27e954){return{'name':_0x27e954['fieldName'],'type':_0x27e954[_0x10bb('0x45')]['key']};});_0x4b4e7f['model']=_['map'](_0x1e4ac1,_0x10bb('0x3f'));_0x4b4e7f[_0x10bb('0x46')]=_['keys'](_0x3af12b[_0x10bb('0x46')]);_0x4b4e7f[_0x10bb('0x47')]=_[_0x10bb('0x48')](_0x4b4e7f[_0x10bb('0x49')],_0x4b4e7f[_0x10bb('0x46')]);_0x5462d8[_0x10bb('0x4a')]=_['intersection'](_0x4b4e7f[_0x10bb('0x49')],qs['fields'](_0x3af12b['query']['fields']));_0x5462d8[_0x10bb('0x4a')]=_0x5462d8['attributes'][_0x10bb('0x4b')]?_0x5462d8[_0x10bb('0x4a')]:_0x4b4e7f['model'];if(!_0x3af12b[_0x10bb('0x46')][_0x10bb('0x4c')](_0x10bb('0x4d'))){_0x5462d8[_0x10bb('0x37')]=qs[_0x10bb('0x37')](_0x3af12b[_0x10bb('0x46')][_0x10bb('0x37')]);_0x5462d8[_0x10bb('0x35')]=qs[_0x10bb('0x35')](_0x3af12b[_0x10bb('0x46')][_0x10bb('0x35')]);}_0x5462d8['order']=qs['sort'](_0x3af12b[_0x10bb('0x46')][_0x10bb('0x4e')]);_0x5462d8['where']=qs['filters'](_[_0x10bb('0x4f')](_0x3af12b[_0x10bb('0x46')],_0x4b4e7f[_0x10bb('0x47')]),_0x1e4ac1);if(_0x3af12b[_0x10bb('0x46')][_0x10bb('0x50')]){_0x5462d8[_0x10bb('0x51')]=_[_0x10bb('0x52')](_0x5462d8[_0x10bb('0x51')],{'$or':_[_0x10bb('0x42')](_0x1e4ac1,function(_0xed5c5c){if(_0xed5c5c['type']!==_0x10bb('0x53')){var _0x17a78b={};_0x17a78b[_0xed5c5c[_0x10bb('0x3f')]]={'$like':'%'+_0x3af12b[_0x10bb('0x46')][_0x10bb('0x50')]+'%'};return _0x17a78b;}})});}_0x5462d8=_['merge']({},_0x5462d8,_0x3af12b[_0x10bb('0x54')]);var _0x894fe2={'where':_0x5462d8[_0x10bb('0x51')]};return db[_0x10bb('0x43')][_0x10bb('0x55')](_0x894fe2)[_0x10bb('0x26')](function(_0x3281b0){_0x5ac705[_0x10bb('0x55')]=_0x3281b0;if(_0x3af12b[_0x10bb('0x46')]['includeAll']){_0x5462d8[_0x10bb('0x56')]=[{'all':!![]}];}return db[_0x10bb('0x43')]['findAll'](_0x5462d8);})[_0x10bb('0x26')](function(_0x1c371a){_0x5ac705[_0x10bb('0x57')]=_0x1c371a;return _0x5ac705;})['then'](respondWithFilteredResult(_0x7e98fa,_0x5462d8))[_0x10bb('0x31')](handleError(_0x7e98fa,null));};exports['show']=function(_0x2c38c6,_0x23fa8e){var _0x4b9ccc={'raw':!![],'where':{'id':_0x2c38c6[_0x10bb('0x58')]['id']}},_0x379651={};_0x379651[_0x10bb('0x49')]=_[_0x10bb('0x59')](db['ChatMessage'][_0x10bb('0x44')]);_0x379651['query']=_['keys'](_0x2c38c6[_0x10bb('0x46')]);_0x379651[_0x10bb('0x47')]=_[_0x10bb('0x48')](_0x379651['model'],_0x379651[_0x10bb('0x46')]);_0x4b9ccc[_0x10bb('0x4a')]=_[_0x10bb('0x48')](_0x379651[_0x10bb('0x49')],qs[_0x10bb('0x5a')](_0x2c38c6[_0x10bb('0x46')][_0x10bb('0x5a')]));_0x4b9ccc['attributes']=_0x4b9ccc['attributes']['length']?_0x4b9ccc[_0x10bb('0x4a')]:_0x379651[_0x10bb('0x49')];if(_0x2c38c6['query']['includeAll']){_0x4b9ccc[_0x10bb('0x56')]=[{'all':!![]}];}_0x4b9ccc=_[_0x10bb('0x52')]({},_0x4b9ccc,_0x2c38c6['options']);return db[_0x10bb('0x43')][_0x10bb('0x5b')](_0x4b9ccc)['then'](handleEntityNotFound(_0x23fa8e,null))['then'](respondWithResult(_0x23fa8e,null))['catch'](handleError(_0x23fa8e,null));};exports[_0x10bb('0x5c')]=function(_0x566dd8,_0x209731){return db['ChatMessage'][_0x10bb('0x5c')](_0x566dd8[_0x10bb('0x5d')],{})[_0x10bb('0x26')](respondWithResult(_0x209731,0xc9))['catch'](handleError(_0x209731,null));};exports[_0x10bb('0x3c')]=function(_0x53d61b,_0x428e25){if(_0x53d61b[_0x10bb('0x5d')]['id']){delete _0x53d61b[_0x10bb('0x5d')]['id'];}return db['ChatMessage']['find']({'where':{'id':_0x53d61b[_0x10bb('0x58')]['id']}})[_0x10bb('0x26')](handleEntityNotFound(_0x428e25,null))[_0x10bb('0x26')](saveUpdates(_0x53d61b[_0x10bb('0x5d')],null))[_0x10bb('0x26')](respondWithResult(_0x428e25,null))[_0x10bb('0x31')](handleError(_0x428e25,null));};exports[_0x10bb('0x3d')]=function(_0x4a4686,_0x33de5a){return db['ChatMessage'][_0x10bb('0x5b')]({'where':{'id':_0x4a4686[_0x10bb('0x58')]['id']}})[_0x10bb('0x26')](handleEntityNotFound(_0x33de5a,null))[_0x10bb('0x26')](removeEntity(_0x33de5a,null))[_0x10bb('0x31')](handleError(_0x33de5a,null));};exports[_0x10bb('0x5e')]=function(_0x5d7aab,_0x3ad1da){return db[_0x10bb('0x43')]['describe']()[_0x10bb('0x26')](respondWithResult(_0x3ad1da,null))[_0x10bb('0x31')](handleError(_0x3ad1da,null));};var interaction_log=require('../../config/logger')('chat-interactions');exports[_0x10bb('0x5f')]=function(_0x18f42c,_0x13137f,_0x37ed38){var _0x572ddc={'agent':{},'channel':'chat'};if(_0x18f42c[_0x10bb('0x5d')]['id']){delete _0x18f42c['body']['id'];}_0x18f42c[_0x10bb('0x5d')][_0x10bb('0x60')]=!![];_0x18f42c[_0x10bb('0x5d')][_0x10bb('0x61')]=moment()['format'](_0x10bb('0x62'));_0x18f42c[_0x10bb('0x5d')][_0x10bb('0x63')]=_0x18f42c['body'][_0x10bb('0x63')]||_0x18f42c[_0x10bb('0x64')]['id'];_0x572ddc[_0x10bb('0x65')]['id']=_0x18f42c[_0x10bb('0x5d')][_0x10bb('0x63')];return db[_0x10bb('0x43')][_0x10bb('0x5b')]({'where':{'id':_0x18f42c[_0x10bb('0x58')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0x13137f,null))[_0x10bb('0x26')](saveUpdates(_0x18f42c['body'],null))[_0x10bb('0x26')](function(_0x4c76c4){if(_0x4c76c4){_0x572ddc['message']=_0x4c76c4['get']({'plain':!![]});return db[_0x10bb('0x66')][_0x10bb('0x5b')]({'where':{'id':_0x4c76c4[_0x10bb('0x67')]}});}return null;})[_0x10bb('0x26')](handleEntityNotFound(_0x13137f,null))['then'](function(_0x54bea8){if(_0x54bea8){return _0x54bea8[_0x10bb('0x3c')]({'UserId':_0x18f42c[_0x10bb('0x5d')][_0x10bb('0x63')],'read1stAt':_['isNil'](_0x54bea8[_0x10bb('0x68')])?moment()[_0x10bb('0x69')](_0x10bb('0x62')):undefined});}return null;})['then'](function(_0x520d9f){if(_0x520d9f){_0x572ddc[_0x10bb('0x6a')]=_0x520d9f['get']({'plain':!![]});interaction_log[_0x10bb('0x27')]('[CHATMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x18f42c['user']['id'],_0x18f42c[_0x10bb('0x64')][_0x10bb('0x3f')],_0x18f42c['user'][_0x10bb('0x6b')],_0x572ddc[_0x10bb('0x6a')]['id'],_0x18f42c['body']?JSON[_0x10bb('0x2b')](_0x18f42c[_0x10bb('0x5d')]):_0x10bb('0x6c'));return respondWithRpcPromise(_0x10bb('0x6d'),'acceptMessage',_0x572ddc);}return null;})[_0x10bb('0x26')](function(_0x459875){var _0x23823a=_0x10bb('0x6e')+_0x459875[_0x10bb('0x2e')][_0x10bb('0x6f')];return db[_0x10bb('0x70')][_0x10bb('0x46')](_0x23823a,{'type':db[_0x10bb('0x71')][_0x10bb('0x72')][_0x10bb('0x73')],'raw':!![]})['then'](function(_0x594494){return _0x594494;});})['then'](function(_0x59c440){if(_0x59c440){_0x572ddc[_0x10bb('0x2e')][_0x10bb('0x74')]=_0x59c440[0x0];if(!_0x18f42c[_0x10bb('0x5d')][_0x10bb('0x63')])return;return db[_0x10bb('0x75')][_0x10bb('0x5b')]({'where':{'id':_0x18f42c[_0x10bb('0x5d')][_0x10bb('0x63')],'role':_0x10bb('0x65')},'attributes':['id',_0x10bb('0x3f'),'fullname','email',_0x10bb('0x76')],'raw':!![]});}return null;})[_0x10bb('0x26')](function(_0x39cf1f){if(!_0x39cf1f)return null;_0x572ddc[_0x10bb('0x2e')][_0x10bb('0x65')]=_0x39cf1f;return _0x572ddc;})[_0x10bb('0x26')](function(_0x2c35e0){if(_0x2c35e0){if(_0x18f42c[_0x10bb('0x5d')][_0x10bb('0x77')]){_0x572ddc[_0x10bb('0x2e')]['interface']=util[_0x10bb('0x69')](_0x10bb('0x78'),_0x18f42c[_0x10bb('0x64')]['name']);_0x572ddc[_0x10bb('0x2e')][_0x10bb('0x79')]=_0x572ddc['channel'];_0x572ddc[_0x10bb('0x2e')][_0x10bb('0x7a')]=_0x572ddc[_0x10bb('0x79')];_0x572ddc[_0x10bb('0x2e')]['event']=_0x10bb('0x5f');return respondWithRpcPromise('EventManager',_0x10bb('0x7b'),{'event':_0x10bb('0x7c'),'message':_[_0x10bb('0x52')](_0x572ddc[_0x10bb('0x2e')],JSON[_0x10bb('0x7d')](_0x572ddc[_0x10bb('0x6a')][_0x10bb('0x7e')]))},client9002)['then'](function(){return _0x572ddc;});}return _0x572ddc;}return null;})[_0x10bb('0x26')](respondWithResult(_0x13137f,null))[_0x10bb('0x31')](handleError(_0x13137f,null));};var interaction_log=require('../../config/logger')(_0x10bb('0x7f'));exports[_0x10bb('0x3b')]=function(_0x549a29,_0x33d282,_0x2068ee){var _0x14c1cb={'agent':{},'channel':_0x10bb('0x80')};if(_0x549a29[_0x10bb('0x5d')]['id']){delete _0x549a29[_0x10bb('0x5d')]['id'];}_0x549a29[_0x10bb('0x5d')]['UserId']=_0x549a29[_0x10bb('0x5d')][_0x10bb('0x63')]||_0x549a29[_0x10bb('0x64')]['id'];_0x14c1cb[_0x10bb('0x65')]['id']=_0x549a29[_0x10bb('0x5d')][_0x10bb('0x63')];return db[_0x10bb('0x43')][_0x10bb('0x5b')]({'where':{'id':_0x549a29['params']['id'],'UserId':null}})[_0x10bb('0x26')](handleEntityNotFound(_0x33d282,null))['then'](function(_0x27b11b){if(_0x27b11b){_0x14c1cb[_0x10bb('0x2e')]=_0x27b11b['get']({'plain':!![]});return db[_0x10bb('0x66')][_0x10bb('0x5b')]({'where':{'id':_0x27b11b['ChatInteractionId']}});}return null;})[_0x10bb('0x26')](handleEntityNotFound(_0x33d282,null))[_0x10bb('0x26')](function(_0x4bb618){if(_0x4bb618){_0x14c1cb[_0x10bb('0x6a')]=_0x4bb618['get']({'plain':!![]});interaction_log[_0x10bb('0x27')](_0x10bb('0x81'),_0x549a29['user']['id'],_0x549a29[_0x10bb('0x64')][_0x10bb('0x3f')],_0x549a29[_0x10bb('0x64')][_0x10bb('0x6b')],_0x14c1cb[_0x10bb('0x6a')]['id'],_0x549a29[_0x10bb('0x5d')]?JSON[_0x10bb('0x2b')](_0x549a29['body']):_0x10bb('0x6c'));return respondWithRpcPromise('RejectMessage',_0x10bb('0x82'),_0x14c1cb);}return null;})['then'](function(_0x630af2){var _0x31b30e='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x630af2[_0x10bb('0x2e')][_0x10bb('0x6f')];return db[_0x10bb('0x70')]['query'](_0x31b30e,{'type':db[_0x10bb('0x71')]['QueryTypes'][_0x10bb('0x73')],'raw':!![]})[_0x10bb('0x26')](function(_0x3c4540){return _0x3c4540;});})[_0x10bb('0x26')](function(_0x2777c0){if(_0x2777c0){_0x14c1cb['message'][_0x10bb('0x74')]=_0x2777c0[0x0];if(!_0x549a29[_0x10bb('0x5d')][_0x10bb('0x63')])return;return db[_0x10bb('0x75')][_0x10bb('0x5b')]({'where':{'id':_0x549a29[_0x10bb('0x5d')][_0x10bb('0x63')],'role':_0x10bb('0x65')},'attributes':['id',_0x10bb('0x3f'),'fullname',_0x10bb('0x83'),_0x10bb('0x76')],'raw':!![]});}return null;})[_0x10bb('0x26')](function(_0xc76ef2){if(!_0xc76ef2)return null;_0x14c1cb[_0x10bb('0x2e')][_0x10bb('0x65')]=_0xc76ef2;return _0x14c1cb;})['then'](function(_0x467aca){if(_0x467aca){_0x467aca[_0x10bb('0x2e')][_0x10bb('0x84')]=util[_0x10bb('0x69')]('SIP/%s',_0x549a29['user'][_0x10bb('0x3f')]);_0x467aca[_0x10bb('0x2e')][_0x10bb('0x79')]=_0x14c1cb[_0x10bb('0x79')];_0x467aca[_0x10bb('0x2e')]['motionChannel']=_0x14c1cb[_0x10bb('0x79')];_0x467aca[_0x10bb('0x2e')]['event']='reject';respondWithRpcPromise(_0x10bb('0x7b'),_0x10bb('0x7b'),{'event':_0x10bb('0x85'),'message':_[_0x10bb('0x52')](_0x14c1cb['message'],JSON[_0x10bb('0x7d')](_0x14c1cb['interaction'][_0x10bb('0x7e')]))},client9002);return _0x14c1cb;}return null;})[_0x10bb('0x26')](respondWithResult(_0x33d282,null))['catch'](handleError(_0x33d282,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x99b8=['emit','hasOwnProperty','hook','events','../../mysqldb','ChatMessage','save','update','remove'];(function(_0x4f9645,_0x743471){var _0x5162e5=function(_0x2c3876){while(--_0x2c3876){_0x4f9645['push'](_0x4f9645['shift']());}};_0x5162e5(++_0x743471);}(_0x99b8,0xff));var _0x899b=function(_0x3da84b,_0x5504ac){_0x3da84b=_0x3da84b-0x0;var _0xa557a8=_0x99b8[_0x3da84b];return _0xa557a8;};'use strict';var EventEmitter=require(_0x899b('0x0'));var ChatMessage=require(_0x899b('0x1'))['db'][_0x899b('0x2')];var ChatMessageEvents=new EventEmitter();ChatMessageEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x899b('0x3'),'afterUpdate':_0x899b('0x4'),'afterDestroy':_0x899b('0x5')};function emitEvent(_0x34a13b){return function(_0x4fdb8c,_0x10b3b8,_0x185d2c){ChatMessageEvents[_0x899b('0x6')](_0x34a13b+':'+_0x4fdb8c['id'],_0x4fdb8c);ChatMessageEvents[_0x899b('0x6')](_0x34a13b,_0x4fdb8c);_0x185d2c(null);};}for(var e in events){if(events[_0x899b('0x7')](e)){var event=events[e];ChatMessage[_0x899b('0x8')](e,emitEvent(event));}}module['exports']=ChatMessageEvents;
\ No newline at end of file
+var _0x9947=['exports','events','ChatMessage','setMaxListeners','update','remove','emit','hook'];(function(_0x5ade35,_0x35cec6){var _0x21d317=function(_0x4369b1){while(--_0x4369b1){_0x5ade35['push'](_0x5ade35['shift']());}};_0x21d317(++_0x35cec6);}(_0x9947,0x79));var _0x7994=function(_0x4a7e98,_0x250137){_0x4a7e98=_0x4a7e98-0x0;var _0x27d10d=_0x9947[_0x4a7e98];return _0x27d10d;};'use strict';var EventEmitter=require(_0x7994('0x0'));var ChatMessage=require('../../mysqldb')['db'][_0x7994('0x1')];var ChatMessageEvents=new EventEmitter();ChatMessageEvents[_0x7994('0x2')](0x0);var events={'afterCreate':'save','afterUpdate':_0x7994('0x3'),'afterDestroy':_0x7994('0x4')};function emitEvent(_0x59dd77){return function(_0x53f389,_0x1285a9,_0x51ec4d){ChatMessageEvents[_0x7994('0x5')](_0x59dd77+':'+_0x53f389['id'],_0x53f389);ChatMessageEvents[_0x7994('0x5')](_0x59dd77,_0x53f389);_0x51ec4d(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];ChatMessage[_0x7994('0x6')](e,emitEvent(event));}}module[_0x7994('0x7')]=ChatMessageEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcba9=['ChatInteraction','findOne','then','createdAt','catch','error','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','define','ChatMessage','chat_messages','fti_chat_messages','body','FULLTEXT','models','get','toLowerCase','direction','isNil','UserId'];(function(_0x149478,_0x380771){var _0x2bcd4d=function(_0x3fa152){while(--_0x3fa152){_0x149478['push'](_0x149478['shift']());}};_0x2bcd4d(++_0x380771);}(_0xcba9,0x1ca));var _0x9cba=function(_0x2f4ad4,_0x3c0271){_0x2f4ad4=_0x2f4ad4-0x0;var _0x7afb99=_0xcba9[_0x2f4ad4];return _0x7afb99;};'use strict';var _=require(_0x9cba('0x0'));var util=require(_0x9cba('0x1'));var logger=require(_0x9cba('0x2'))(_0x9cba('0x3'));var moment=require(_0x9cba('0x4'));var BPromise=require(_0x9cba('0x5'));var rp=require(_0x9cba('0x6'));var fs=require('fs');var path=require(_0x9cba('0x7'));var rimraf=require(_0x9cba('0x8'));var config=require(_0x9cba('0x9'));var attributes=require('./chatMessage.attributes');module['exports']=function(_0xd4dbad,_0x433850){return _0xd4dbad[_0x9cba('0xa')](_0x9cba('0xb'),attributes,{'tableName':_0x9cba('0xc'),'paranoid':![],'indexes':[{'name':_0x9cba('0xd'),'fields':[_0x9cba('0xe')],'type':_0x9cba('0xf')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x3bb235,_0x486fa5,_0x5f3864){var _0x4bfc4a=_0xd4dbad[_0x9cba('0x10')];var _0x4465ec=_0x3bb235[_0x9cba('0x11')]({'plain':!![]});if(_0x4465ec['direction'][_0x9cba('0x12')]()==='in'||_0x4465ec[_0x9cba('0x13')][_0x9cba('0x12')]()==='out'&&!_0x4465ec['secret']&&!_[_0x9cba('0x14')](_0x4465ec[_0x9cba('0x15')])){_0x4bfc4a[_0x9cba('0x16')][_0x9cba('0x17')]({'where':{'id':_0x4465ec['ChatInteractionId']}})[_0x9cba('0x18')](function(_0x393f48){if(_0x393f48){_0x393f48['update']({'lastMsgAt':_0x4465ec[_0x9cba('0x19')],'lastMsgDirection':_0x4465ec['direction'][_0x9cba('0x12')]()});}})[_0x9cba('0x1a')](function(_0x53ae85){console[_0x9cba('0x1b')](_0x53ae85);});}_0x5f3864();}},'charset':_0x9cba('0x1c'),'collate':_0x9cba('0x1d')});};
\ No newline at end of file
+var _0xed7a=['fti_chat_messages','body','FULLTEXT','models','get','direction','toLowerCase','out','secret','isNil','UserId','ChatInteraction','findOne','then','update','catch','error','utf8mb4','utf8mb4_unicode_ci','../../config/logger','moment','bluebird','path','rimraf','../../config/environment','./chatMessage.attributes','exports','define','ChatMessage'];(function(_0x857aa4,_0x5608f6){var _0x313d1e=function(_0x3937d6){while(--_0x3937d6){_0x857aa4['push'](_0x857aa4['shift']());}};_0x313d1e(++_0x5608f6);}(_0xed7a,0x18c));var _0xaed7=function(_0x3bd084,_0xec6cb7){_0x3bd084=_0x3bd084-0x0;var _0x2fecf3=_0xed7a[_0x3bd084];return _0x2fecf3;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0xaed7('0x0'))('api');var moment=require(_0xaed7('0x1'));var BPromise=require(_0xaed7('0x2'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xaed7('0x3'));var rimraf=require(_0xaed7('0x4'));var config=require(_0xaed7('0x5'));var attributes=require(_0xaed7('0x6'));module[_0xaed7('0x7')]=function(_0x5f078,_0x3c9008){return _0x5f078[_0xaed7('0x8')](_0xaed7('0x9'),attributes,{'tableName':'chat_messages','paranoid':![],'indexes':[{'name':_0xaed7('0xa'),'fields':[_0xaed7('0xb')],'type':_0xaed7('0xc')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x5a9735,_0x4aef4a,_0x2bcfd2){var _0x2cf657=_0x5f078[_0xaed7('0xd')];var _0x36cc25=_0x5a9735[_0xaed7('0xe')]({'plain':!![]});if(_0x36cc25[_0xaed7('0xf')][_0xaed7('0x10')]()==='in'||_0x36cc25[_0xaed7('0xf')]['toLowerCase']()===_0xaed7('0x11')&&!_0x36cc25[_0xaed7('0x12')]&&!_[_0xaed7('0x13')](_0x36cc25[_0xaed7('0x14')])){_0x2cf657[_0xaed7('0x15')][_0xaed7('0x16')]({'where':{'id':_0x36cc25['ChatInteractionId']}})[_0xaed7('0x17')](function(_0xedcd3){if(_0xedcd3){_0xedcd3[_0xaed7('0x18')]({'lastMsgAt':_0x36cc25['createdAt'],'lastMsgDirection':_0x36cc25[_0xaed7('0xf')][_0xaed7('0x10')]()});}})[_0xaed7('0x19')](function(_0x364e90){console[_0xaed7('0x1a')](_0x364e90);});}_0x2bcfd2();}},'charset':_0xaed7('0x1b'),'collate':_0xaed7('0x1c')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe06e=['ChatMessage','create','body','options','raw','catch','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','defaults','redis','socket.io-emitter','./chatMessage.socket','request','ChatMessage,\x20%s,\x20%s','debug','ChatMessage,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','info','result','CreateChatMessage'];(function(_0x59d12e,_0x1128ff){var _0x2f5ee4=function(_0x213beb){while(--_0x213beb){_0x59d12e['push'](_0x59d12e['shift']());}};_0x2f5ee4(++_0x1128ff);}(_0xe06e,0x132));var _0xee06=function(_0x55c1f0,_0x4f574f){_0x55c1f0=_0x55c1f0-0x0;var _0x1530fa=_0xe06e[_0x55c1f0];return _0x1530fa;};'use strict';var _=require(_0xee06('0x0'));var util=require(_0xee06('0x1'));var moment=require(_0xee06('0x2'));var BPromise=require('bluebird');var rs=require(_0xee06('0x3'));var fs=require('fs');var Redis=require(_0xee06('0x4'));var db=require(_0xee06('0x5'))['db'];var utils=require(_0xee06('0x6'));var logger=require(_0xee06('0x7'))('rpc');var config=require(_0xee06('0x8'));var jayson=require('jayson/promise');var client=jayson['client']['http']({'port':0x232a});config['redis']=_[_0xee06('0x9')](config[_0xee06('0xa')],{'host':'localhost','port':0x18eb});var socket=require(_0xee06('0xb'))(new Redis(config['redis']));require(_0xee06('0xc'))['register'](socket);function respondWithRpcPromise(_0x142b7f,_0x1c2dab,_0x254f85){return new BPromise(function(_0x553aff,_0x3f4819){return client[_0xee06('0xd')](_0x142b7f,_0x254f85)['then'](function(_0xa6539a){logger['info'](_0xee06('0xe'),_0x1c2dab,'request\x20sent');logger[_0xee06('0xf')](_0xee06('0x10'),_0x1c2dab,_0xee06('0x11'),JSON['stringify'](_0xa6539a));if(_0xa6539a[_0xee06('0x12')]){if(_0xa6539a['error'][_0xee06('0x13')]===0x1f4){logger['error']('ChatMessage,\x20%s,\x20%s',_0x1c2dab,_0xa6539a['error'][_0xee06('0x14')]);return _0x3f4819(_0xa6539a[_0xee06('0x12')][_0xee06('0x14')]);}logger['error']('ChatMessage,\x20%s,\x20%s',_0x1c2dab,_0xa6539a['error'][_0xee06('0x14')]);return _0x553aff(_0xa6539a[_0xee06('0x12')]['message']);}else{logger[_0xee06('0x15')](_0xee06('0xe'),_0x1c2dab,_0xee06('0x11'));_0x553aff(_0xa6539a[_0xee06('0x16')][_0xee06('0x14')]);}})['catch'](function(_0x31fe66){logger[_0xee06('0x12')](_0xee06('0xe'),_0x1c2dab,_0x31fe66);_0x3f4819(_0x31fe66);});});}exports[_0xee06('0x17')]=function(_0x5d4cc){var _0x590422=this;return new Promise(function(_0xa3e650,_0x2fa6b4){return db[_0xee06('0x18')][_0xee06('0x19')](_0x5d4cc[_0xee06('0x1a')],{'raw':_0x5d4cc[_0xee06('0x1b')]?_0x5d4cc[_0xee06('0x1b')][_0xee06('0x1c')]===undefined?!![]:![]:!![]})['then'](function(_0x43444d){logger[_0xee06('0x15')](_0xee06('0x17'),_0x5d4cc);logger[_0xee06('0xf')]('CreateChatMessage',_0x5d4cc,JSON['stringify'](_0x43444d));_0xa3e650(_0x43444d);})[_0xee06('0x1d')](function(_0x2d0a4f){logger[_0xee06('0x12')]('CreateChatMessage',_0x2d0a4f[_0xee06('0x14')],_0x5d4cc);_0x2fa6b4(_0x590422[_0xee06('0x12')](0x1f4,_0x2d0a4f[_0xee06('0x14')]));});});};
\ No newline at end of file
+var _0xdfad=['../../config/utils','../../config/logger','rpc','../../config/environment','client','redis','defaults','localhost','./chatMessage.socket','register','request','then','info','ChatMessage,\x20%s,\x20%s','debug','ChatMessage,\x20%s,\x20%s,\x20%s','error','message','request\x20sent','result','catch','ChatMessage','create','body','options','raw','CreateChatMessage','stringify','util','randomstring','ioredis','../../mysqldb'];(function(_0x346b1b,_0x4f88b9){var _0x512dc4=function(_0x577859){while(--_0x577859){_0x346b1b['push'](_0x346b1b['shift']());}};_0x512dc4(++_0x4f88b9);}(_0xdfad,0x13c));var _0xddfa=function(_0x5c6022,_0x5cd10b){_0x5c6022=_0x5c6022-0x0;var _0x4ab5af=_0xdfad[_0x5c6022];return _0x4ab5af;};'use strict';var _=require('lodash');var util=require(_0xddfa('0x0'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xddfa('0x1'));var fs=require('fs');var Redis=require(_0xddfa('0x2'));var db=require(_0xddfa('0x3'))['db'];var utils=require(_0xddfa('0x4'));var logger=require(_0xddfa('0x5'))(_0xddfa('0x6'));var config=require(_0xddfa('0x7'));var jayson=require('jayson/promise');var client=jayson[_0xddfa('0x8')]['http']({'port':0x232a});config[_0xddfa('0x9')]=_[_0xddfa('0xa')](config[_0xddfa('0x9')],{'host':_0xddfa('0xb'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xddfa('0x9')]));require(_0xddfa('0xc'))[_0xddfa('0xd')](socket);function respondWithRpcPromise(_0x59e8a0,_0x268418,_0x15f186){return new BPromise(function(_0x4a4ba0,_0x204541){return client[_0xddfa('0xe')](_0x59e8a0,_0x15f186)[_0xddfa('0xf')](function(_0x443174){logger[_0xddfa('0x10')](_0xddfa('0x11'),_0x268418,'request\x20sent');logger[_0xddfa('0x12')](_0xddfa('0x13'),_0x268418,'request\x20sent',JSON['stringify'](_0x443174));if(_0x443174[_0xddfa('0x14')]){if(_0x443174[_0xddfa('0x14')]['code']===0x1f4){logger[_0xddfa('0x14')](_0xddfa('0x11'),_0x268418,_0x443174['error'][_0xddfa('0x15')]);return _0x204541(_0x443174['error']['message']);}logger['error']('ChatMessage,\x20%s,\x20%s',_0x268418,_0x443174[_0xddfa('0x14')][_0xddfa('0x15')]);return _0x4a4ba0(_0x443174[_0xddfa('0x14')]['message']);}else{logger[_0xddfa('0x10')](_0xddfa('0x11'),_0x268418,_0xddfa('0x16'));_0x4a4ba0(_0x443174[_0xddfa('0x17')][_0xddfa('0x15')]);}})[_0xddfa('0x18')](function(_0x168ab7){logger['error'](_0xddfa('0x11'),_0x268418,_0x168ab7);_0x204541(_0x168ab7);});});}exports['CreateChatMessage']=function(_0x13da5e){var _0x1eed21=this;return new Promise(function(_0x3a0e01,_0x4f0ac3){return db[_0xddfa('0x19')][_0xddfa('0x1a')](_0x13da5e[_0xddfa('0x1b')],{'raw':_0x13da5e[_0xddfa('0x1c')]?_0x13da5e[_0xddfa('0x1c')][_0xddfa('0x1d')]===undefined?!![]:![]:!![]})[_0xddfa('0xf')](function(_0x40164e){logger[_0xddfa('0x10')](_0xddfa('0x1e'),_0x13da5e);logger[_0xddfa('0x12')](_0xddfa('0x1e'),_0x13da5e,JSON[_0xddfa('0x1f')](_0x40164e));_0x3a0e01(_0x40164e);})[_0xddfa('0x18')](function(_0x169dd1){logger[_0xddfa('0x14')](_0xddfa('0x1e'),_0x169dd1[_0xddfa('0x15')],_0x13da5e);_0x4f0ac3(_0x1eed21[_0xddfa('0x14')](0x1f4,_0x169dd1['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9206=['save','remove','update','length','./chatMessage.events'];(function(_0xa2fa50,_0x239240){var _0x5146ea=function(_0x175839){while(--_0x175839){_0xa2fa50['push'](_0xa2fa50['shift']());}};_0x5146ea(++_0x239240);}(_0x9206,0x176));var _0x6920=function(_0x24f0ab,_0x185e7f){_0x24f0ab=_0x24f0ab-0x0;var _0x2f2a0c=_0x9206[_0x24f0ab];return _0x2f2a0c;};'use strict';var ChatMessageEvents=require(_0x6920('0x0'));var events=[_0x6920('0x1'),_0x6920('0x2'),_0x6920('0x3')];function createListener(_0x18c93a,_0x319cce){return function(_0x4bc24b){_0x319cce['emit'](_0x18c93a,_0x4bc24b);};}function removeListener(_0x1770ce,_0x3c84f7){return function(){ChatMessageEvents['removeListener'](_0x1770ce,_0x3c84f7);};}exports['register']=function(_0x41c8c4){for(var _0x4d67d7=0x0,_0x21fb21=events[_0x6920('0x4')];_0x4d67d7<_0x21fb21;_0x4d67d7++){var _0x2aad51=events[_0x4d67d7];var _0xef5d38=createListener('chatMessage:'+_0x2aad51,_0x41c8c4);ChatMessageEvents['on'](_0x2aad51,_0xef5d38);}};
\ No newline at end of file
+var _0x0f4d=['update','emit','removeListener','register','length','chatMessage:'];(function(_0x527d64,_0x5289a7){var _0x460b3e=function(_0x89b0ea){while(--_0x89b0ea){_0x527d64['push'](_0x527d64['shift']());}};_0x460b3e(++_0x5289a7);}(_0x0f4d,0x12c));var _0xd0f4=function(_0x3965d5,_0x214cc6){_0x3965d5=_0x3965d5-0x0;var _0x4cf619=_0x0f4d[_0x3965d5];return _0x4cf619;};'use strict';var ChatMessageEvents=require('./chatMessage.events');var events=['save','remove',_0xd0f4('0x0')];function createListener(_0x5c8510,_0x20e395){return function(_0x2c06de){_0x20e395[_0xd0f4('0x1')](_0x5c8510,_0x2c06de);};}function removeListener(_0x347170,_0x1a9ba5){return function(){ChatMessageEvents[_0xd0f4('0x2')](_0x347170,_0x1a9ba5);};}exports[_0xd0f4('0x3')]=function(_0x1d9a9d){for(var _0x531f85=0x0,_0x1164da=events[_0xd0f4('0x4')];_0x531f85<_0x1164da;_0x531f85++){var _0x4d0ab0=events[_0x531f85];var _0x3992be=createListener(_0xd0f4('0x5')+_0x4d0ab0,_0x1d9a9d);ChatMessageEvents['on'](_0x4d0ab0,_0x3992be);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8ed0=['accept','/:id/reject','delete','destroy','exports','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./chatMessage.controller','get','isAuthenticated','index','/describe','describe','/:id','show','tracked','chat','chatmessage:create','put','/:id/accept'];(function(_0xa87db6,_0x7fb711){var _0x48ae12=function(_0x5aae8d){while(--_0x5aae8d){_0xa87db6['push'](_0xa87db6['shift']());}};_0x48ae12(++_0x7fb711);}(_0x8ed0,0xef));var _0x08ed=function(_0x3dcdfa,_0x58bd1c){_0x3dcdfa=_0x3dcdfa-0x0;var _0xffe9f=_0x8ed0[_0x3dcdfa];return _0xffe9f;};'use strict';var multer=require('multer');var util=require(_0x08ed('0x0'));var path=require('path');var timeout=require(_0x08ed('0x1'));var express=require(_0x08ed('0x2'));var router=express[_0x08ed('0x3')]();var fs_extra=require(_0x08ed('0x4'));var auth=require(_0x08ed('0x5'));var interaction=require(_0x08ed('0x6'));var config=require(_0x08ed('0x7'));var controller=require(_0x08ed('0x8'));router[_0x08ed('0x9')]('/',auth[_0x08ed('0xa')](),controller[_0x08ed('0xb')]);router[_0x08ed('0x9')](_0x08ed('0xc'),auth[_0x08ed('0xa')](),controller[_0x08ed('0xd')]);router[_0x08ed('0x9')](_0x08ed('0xe'),auth[_0x08ed('0xa')](),controller[_0x08ed('0xf')]);router['post']('/',auth[_0x08ed('0xa')](),interaction[_0x08ed('0x10')](_0x08ed('0x11'),_0x08ed('0x12')),controller['create']);router[_0x08ed('0x13')](_0x08ed('0xe'),controller['update']);router[_0x08ed('0x13')](_0x08ed('0x14'),auth[_0x08ed('0xa')](),controller[_0x08ed('0x15')]);router[_0x08ed('0x13')](_0x08ed('0x16'),auth[_0x08ed('0xa')](),controller['reject']);router[_0x08ed('0x17')](_0x08ed('0xe'),auth[_0x08ed('0xa')](),controller[_0x08ed('0x18')]);module[_0x08ed('0x19')]=router;
\ No newline at end of file
+var _0x2433=['connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','./chatMessage.controller','get','isAuthenticated','index','/describe','describe','/:id','show','post','tracked','chat','create','put','update','/:id/accept','accept','/:id/reject','delete','destroy','exports','path'];(function(_0x511eb4,_0x84d48b){var _0x3c26bd=function(_0x425d3f){while(--_0x425d3f){_0x511eb4['push'](_0x511eb4['shift']());}};_0x3c26bd(++_0x84d48b);}(_0x2433,0xd7));var _0x3243=function(_0x5388cd,_0x4ad5d0){_0x5388cd=_0x5388cd-0x0;var _0x18c571=_0x2433[_0x5388cd];return _0x18c571;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x3243('0x0'));var timeout=require(_0x3243('0x1'));var express=require(_0x3243('0x2'));var router=express[_0x3243('0x3')]();var fs_extra=require(_0x3243('0x4'));var auth=require(_0x3243('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0x3243('0x6'));var controller=require(_0x3243('0x7'));router[_0x3243('0x8')]('/',auth[_0x3243('0x9')](),controller[_0x3243('0xa')]);router[_0x3243('0x8')](_0x3243('0xb'),auth[_0x3243('0x9')](),controller[_0x3243('0xc')]);router[_0x3243('0x8')](_0x3243('0xd'),auth[_0x3243('0x9')](),controller[_0x3243('0xe')]);router[_0x3243('0xf')]('/',auth[_0x3243('0x9')](),interaction[_0x3243('0x10')](_0x3243('0x11'),'chatmessage:create'),controller[_0x3243('0x12')]);router[_0x3243('0x13')](_0x3243('0xd'),controller[_0x3243('0x14')]);router[_0x3243('0x13')](_0x3243('0x15'),auth[_0x3243('0x9')](),controller[_0x3243('0x16')]);router[_0x3243('0x13')](_0x3243('0x17'),auth[_0x3243('0x9')](),controller['reject']);router[_0x3243('0x18')](_0x3243('0xd'),auth[_0x3243('0x9')](),controller[_0x3243('0x19')]);module[_0x3243('0x1a')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9c3b=['exports','TEXT','medium','sequelize'];(function(_0x5da8f6,_0x5b8663){var _0x264d65=function(_0x34aa93){while(--_0x34aa93){_0x5da8f6['push'](_0x5da8f6['shift']());}};_0x264d65(++_0x5b8663);}(_0x9c3b,0x157));var _0xb9c3=function(_0xb065e3,_0x2d01cf){_0xb065e3=_0xb065e3-0x0;var _0x1db262=_0x9c3b[_0xb065e3];return _0x1db262;};'use strict';var Sequelize=require(_0xb9c3('0x0'));module[_0xb9c3('0x1')]={'body':{'type':Sequelize[_0xb9c3('0x2')](_0xb9c3('0x3')),'allowNull':![]}};
\ No newline at end of file
+var _0xd0c5=['medium','exports','TEXT'];(function(_0x40220a,_0x22feb1){var _0x3903cc=function(_0x33a296){while(--_0x33a296){_0x40220a['push'](_0x40220a['shift']());}};_0x3903cc(++_0x22feb1);}(_0xd0c5,0x7f));var _0x5d0c=function(_0xc9dab3,_0x545d00){_0xc9dab3=_0xc9dab3-0x0;var _0x332db0=_0xd0c5[_0xc9dab3];return _0x332db0;};'use strict';var Sequelize=require('sequelize');module[_0x5d0c('0x0')]={'body':{'type':Sequelize[_0x5d0c('0x1')](_0x5d0c('0x2')),'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['filter','VIRTUAL','includeAll','include','findAll','rows','show','params','length','merge','options','find','catch','body','Attachment','join','server','attachments','offline-chat','basename','remove','describe','eml-format','rimraf','zip-dir','request-promise','moment','mustache','util','path','sox','to-csv','fs-extra','squel','crypto','desk.js','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','reject','save','update','then','destroy','error','stack','name','send','index','ChatOfflineMessage','fieldName','type','model','map','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick'];(function(_0x40ac5e,_0x2de228){var _0x2839d6=function(_0x123d47){while(--_0x123d47){_0x40ac5e['push'](_0x40ac5e['shift']());}};_0x2839d6(++_0x2de228);}(_0x7a54,0x106));var _0x47a5=function(_0x31b214,_0x273de3){_0x31b214=_0x31b214-0x0;var _0x103ae3=_0x7a54[_0x31b214];return _0x103ae3;};'use strict';var emlformat=require(_0x47a5('0x0'));var rimraf=require(_0x47a5('0x1'));var zipdir=require(_0x47a5('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x47a5('0x3'));var moment=require(_0x47a5('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x47a5('0x5'));var util=require(_0x47a5('0x6'));var path=require(_0x47a5('0x7'));var sox=require(_0x47a5('0x8'));var csv=require(_0x47a5('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x47a5('0xa'));var _=require('lodash');var squel=require(_0x47a5('0xb'));var crypto=require(_0x47a5('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x47a5('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x47a5('0xe'));var authService=require(_0x47a5('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0x47a5('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x47a5('0x11'));var utils=require(_0x47a5('0x12'));var config=require(_0x47a5('0x13'));var licenseUtil=require(_0x47a5('0x14'));var db=require(_0x47a5('0x15'))['db'];function respondWithStatusCode(_0xd308b8,_0x1eae59){_0x1eae59=_0x1eae59||0xcc;return function(_0x5beb89){if(_0x5beb89){return _0xd308b8[_0x47a5('0x16')](_0x1eae59);}return _0xd308b8[_0x47a5('0x17')](_0x1eae59)[_0x47a5('0x18')]();};}function respondWithResult(_0x711793,_0x139f25){_0x139f25=_0x139f25||0xc8;return function(_0x620ee9){if(_0x620ee9){return _0x711793[_0x47a5('0x17')](_0x139f25)[_0x47a5('0x19')](_0x620ee9);}};}function respondWithFilteredResult(_0x4e99a8,_0x362359){return function(_0x11faf5){if(_0x11faf5){var _0x3b001e=typeof _0x362359[_0x47a5('0x1a')]===_0x47a5('0x1b')&&typeof _0x362359['limit']==='undefined';var _0x138bc0=_0x11faf5['count'];var _0x5247fd=_0x3b001e?0x0:_0x362359[_0x47a5('0x1a')];var _0xaf70a6=_0x3b001e?_0x11faf5[_0x47a5('0x1c')]:_0x362359[_0x47a5('0x1a')]+_0x362359[_0x47a5('0x1d')];var _0x12b98e;if(_0xaf70a6>=_0x138bc0){_0xaf70a6=_0x138bc0;_0x12b98e=0xc8;}else{_0x12b98e=0xce;}_0x4e99a8[_0x47a5('0x17')](_0x12b98e);return _0x4e99a8[_0x47a5('0x1e')](_0x47a5('0x1f'),_0x5247fd+'-'+_0xaf70a6+'/'+_0x138bc0)['json'](_0x11faf5);}return null;};}function patchUpdates(_0x1570bc){return function(_0xf160ba){try{jsonpatch['apply'](_0xf160ba,_0x1570bc,!![]);}catch(_0x2b0360){return BPromise[_0x47a5('0x20')](_0x2b0360);}return _0xf160ba[_0x47a5('0x21')]();};}function saveUpdates(_0x4c5910,_0xb8ae6c){return function(_0x2f142b){if(_0x2f142b){return _0x2f142b[_0x47a5('0x22')](_0x4c5910)[_0x47a5('0x23')](function(_0x5ef1b1){return _0x5ef1b1;});}return null;};}function removeEntity(_0xe2dea9,_0x385687){return function(_0x513981){if(_0x513981){return _0x513981[_0x47a5('0x24')]()[_0x47a5('0x23')](function(){_0xe2dea9[_0x47a5('0x17')](0xcc)[_0x47a5('0x18')]();});}};}function handleEntityNotFound(_0x3abd6a,_0x50bf17){return function(_0x53078a){if(!_0x53078a){_0x3abd6a[_0x47a5('0x16')](0x194);}return _0x53078a;};}function handleError(_0x5686db,_0x1ea9c8){_0x1ea9c8=_0x1ea9c8||0x1f4;return function(_0x5b6c4e){logger[_0x47a5('0x25')](_0x5b6c4e[_0x47a5('0x26')]);if(_0x5b6c4e[_0x47a5('0x27')]){delete _0x5b6c4e[_0x47a5('0x27')];}_0x5686db[_0x47a5('0x17')](_0x1ea9c8)[_0x47a5('0x28')](_0x5b6c4e);};}exports[_0x47a5('0x29')]=function(_0x136b14,_0x16631f){var _0x361bfa={},_0x1127f8={},_0x11a4fa={'count':0x0,'rows':[]};var _0x3ad507=_['map'](db[_0x47a5('0x2a')]['rawAttributes'],function(_0x2ef875){return{'name':_0x2ef875[_0x47a5('0x2b')],'type':_0x2ef875[_0x47a5('0x2c')]['key']};});_0x1127f8[_0x47a5('0x2d')]=_[_0x47a5('0x2e')](_0x3ad507,_0x47a5('0x27'));_0x1127f8[_0x47a5('0x2f')]=_['keys'](_0x136b14['query']);_0x1127f8[_0x47a5('0x30')]=_[_0x47a5('0x31')](_0x1127f8['model'],_0x1127f8['query']);_0x361bfa[_0x47a5('0x32')]=_[_0x47a5('0x31')](_0x1127f8['model'],qs[_0x47a5('0x33')](_0x136b14['query'][_0x47a5('0x33')]));_0x361bfa[_0x47a5('0x32')]=_0x361bfa['attributes']['length']?_0x361bfa[_0x47a5('0x32')]:_0x1127f8['model'];if(!_0x136b14[_0x47a5('0x2f')][_0x47a5('0x34')](_0x47a5('0x35'))){_0x361bfa['limit']=qs[_0x47a5('0x1d')](_0x136b14['query']['limit']);_0x361bfa[_0x47a5('0x1a')]=qs['offset'](_0x136b14[_0x47a5('0x2f')]['offset']);}_0x361bfa[_0x47a5('0x36')]=qs[_0x47a5('0x37')](_0x136b14[_0x47a5('0x2f')][_0x47a5('0x37')]);_0x361bfa[_0x47a5('0x38')]=qs[_0x47a5('0x30')](_[_0x47a5('0x39')](_0x136b14[_0x47a5('0x2f')],_0x1127f8[_0x47a5('0x30')]),_0x3ad507);if(_0x136b14['query'][_0x47a5('0x3a')]){_0x361bfa[_0x47a5('0x38')]=_['merge'](_0x361bfa[_0x47a5('0x38')],{'$or':_[_0x47a5('0x2e')](_0x3ad507,function(_0x1d4348){if(_0x1d4348['type']!==_0x47a5('0x3b')){var _0x10f660={};_0x10f660[_0x1d4348['name']]={'$like':'%'+_0x136b14[_0x47a5('0x2f')][_0x47a5('0x3a')]+'%'};return _0x10f660;}})});}_0x361bfa=_['merge']({},_0x361bfa,_0x136b14['options']);var _0x5ebd8c={'where':_0x361bfa[_0x47a5('0x38')]};return db['ChatOfflineMessage'][_0x47a5('0x1c')](_0x5ebd8c)[_0x47a5('0x23')](function(_0x301a85){_0x11a4fa[_0x47a5('0x1c')]=_0x301a85;if(_0x136b14[_0x47a5('0x2f')][_0x47a5('0x3c')]){_0x361bfa[_0x47a5('0x3d')]=[{'all':!![]}];}return db[_0x47a5('0x2a')][_0x47a5('0x3e')](_0x361bfa);})[_0x47a5('0x23')](function(_0x280500){_0x11a4fa[_0x47a5('0x3f')]=_0x280500;return _0x11a4fa;})[_0x47a5('0x23')](respondWithFilteredResult(_0x16631f,_0x361bfa))['catch'](handleError(_0x16631f,null));};exports[_0x47a5('0x40')]=function(_0x1c36fa,_0x331474){var _0x23bd8d={'raw':!![],'where':{'id':_0x1c36fa[_0x47a5('0x41')]['id']}},_0x586f4f={};_0x586f4f['model']=_['keys'](db['ChatOfflineMessage']['rawAttributes']);_0x586f4f[_0x47a5('0x2f')]=_['keys'](_0x1c36fa[_0x47a5('0x2f')]);_0x586f4f[_0x47a5('0x30')]=_[_0x47a5('0x31')](_0x586f4f['model'],_0x586f4f[_0x47a5('0x2f')]);_0x23bd8d[_0x47a5('0x32')]=_['intersection'](_0x586f4f['model'],qs[_0x47a5('0x33')](_0x1c36fa['query'][_0x47a5('0x33')]));_0x23bd8d[_0x47a5('0x32')]=_0x23bd8d[_0x47a5('0x32')][_0x47a5('0x42')]?_0x23bd8d[_0x47a5('0x32')]:_0x586f4f[_0x47a5('0x2d')];if(_0x1c36fa[_0x47a5('0x2f')][_0x47a5('0x3c')]){_0x23bd8d[_0x47a5('0x3d')]=[{'all':!![]}];}_0x23bd8d=_[_0x47a5('0x43')]({},_0x23bd8d,_0x1c36fa[_0x47a5('0x44')]);return db[_0x47a5('0x2a')][_0x47a5('0x45')](_0x23bd8d)[_0x47a5('0x23')](handleEntityNotFound(_0x331474,null))[_0x47a5('0x23')](respondWithResult(_0x331474,null))[_0x47a5('0x46')](handleError(_0x331474,null));};exports['create']=function(_0x2d38de,_0x23bb04){return db['ChatOfflineMessage']['create'](_0x2d38de[_0x47a5('0x47')],{})['then'](respondWithResult(_0x23bb04,0xc9))[_0x47a5('0x46')](handleError(_0x23bb04,null));};exports[_0x47a5('0x22')]=function(_0x54c35f,_0x4f62d3){if(_0x54c35f[_0x47a5('0x47')]['id']){delete _0x54c35f['body']['id'];}return db[_0x47a5('0x2a')][_0x47a5('0x45')]({'where':{'id':_0x54c35f[_0x47a5('0x41')]['id']}})[_0x47a5('0x23')](handleEntityNotFound(_0x4f62d3,null))[_0x47a5('0x23')](saveUpdates(_0x54c35f[_0x47a5('0x47')],null))[_0x47a5('0x23')](respondWithResult(_0x4f62d3,null))['catch'](handleError(_0x4f62d3,null));};exports['destroy']=function(_0x2dd1db,_0x411230){return db[_0x47a5('0x48')][_0x47a5('0x3e')]({'where':{'ChatOfflineMessageId':_0x2dd1db[_0x47a5('0x41')]['id']},'raw':!![]})[_0x47a5('0x23')](function(_0x249de5){_0x249de5['forEach'](function(_0x45cca5){var _0x1c9a62=path[_0x47a5('0x49')](config['root'],_0x47a5('0x4a'),'files',_0x47a5('0x4b'),_0x47a5('0x4c'),_0x45cca5[_0x47a5('0x4d')]);var _0xf03bd5=fs['existsSync'](_0x1c9a62);if(_0xf03bd5)fs_extra[_0x47a5('0x4e')](_0x1c9a62);});})[_0x47a5('0x23')](function(){return db[_0x47a5('0x2a')][_0x47a5('0x45')]({'where':{'id':_0x2dd1db[_0x47a5('0x41')]['id']},'individualHooks':!![]});})[_0x47a5('0x23')](handleEntityNotFound(_0x411230,null))[_0x47a5('0x23')](removeEntity(_0x411230,null))['catch'](handleError(_0x411230,null));};exports[_0x47a5('0x4f')]=function(_0x43721b,_0x187d7e){return db[_0x47a5('0x2a')][_0x47a5('0x4f')]()[_0x47a5('0x23')](respondWithResult(_0x187d7e,null))['catch'](handleError(_0x187d7e,null));};
\ No newline at end of file
+var _0x7a54=['filter','VIRTUAL','includeAll','include','findAll','rows','show','params','length','merge','options','find','catch','body','Attachment','join','server','attachments','offline-chat','basename','remove','describe','eml-format','rimraf','zip-dir','request-promise','moment','mustache','util','path','sox','to-csv','fs-extra','squel','crypto','desk.js','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','reject','save','update','then','destroy','error','stack','name','send','index','ChatOfflineMessage','fieldName','type','model','map','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick'];(function(_0x1b349a,_0x22222c){var _0x5d1f7c=function(_0x368d7c){while(--_0x368d7c){_0x1b349a['push'](_0x1b349a['shift']());}};_0x5d1f7c(++_0x22222c);}(_0x7a54,0x106));var _0x47a5=function(_0x398d80,_0x941354){_0x398d80=_0x398d80-0x0;var _0x5aa63b=_0x7a54[_0x398d80];return _0x5aa63b;};'use strict';var emlformat=require(_0x47a5('0x0'));var rimraf=require(_0x47a5('0x1'));var zipdir=require(_0x47a5('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x47a5('0x3'));var moment=require(_0x47a5('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x47a5('0x5'));var util=require(_0x47a5('0x6'));var path=require(_0x47a5('0x7'));var sox=require(_0x47a5('0x8'));var csv=require(_0x47a5('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x47a5('0xa'));var _=require('lodash');var squel=require(_0x47a5('0xb'));var crypto=require(_0x47a5('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x47a5('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x47a5('0xe'));var authService=require(_0x47a5('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0x47a5('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x47a5('0x11'));var utils=require(_0x47a5('0x12'));var config=require(_0x47a5('0x13'));var licenseUtil=require(_0x47a5('0x14'));var db=require(_0x47a5('0x15'))['db'];function respondWithStatusCode(_0xd308b8,_0x1eae59){_0x1eae59=_0x1eae59||0xcc;return function(_0x5beb89){if(_0x5beb89){return _0xd308b8[_0x47a5('0x16')](_0x1eae59);}return _0xd308b8[_0x47a5('0x17')](_0x1eae59)[_0x47a5('0x18')]();};}function respondWithResult(_0x711793,_0x139f25){_0x139f25=_0x139f25||0xc8;return function(_0x620ee9){if(_0x620ee9){return _0x711793[_0x47a5('0x17')](_0x139f25)[_0x47a5('0x19')](_0x620ee9);}};}function respondWithFilteredResult(_0x4e99a8,_0x362359){return function(_0x11faf5){if(_0x11faf5){var _0x3b001e=typeof _0x362359[_0x47a5('0x1a')]===_0x47a5('0x1b')&&typeof _0x362359['limit']==='undefined';var _0x138bc0=_0x11faf5['count'];var _0x5247fd=_0x3b001e?0x0:_0x362359[_0x47a5('0x1a')];var _0xaf70a6=_0x3b001e?_0x11faf5[_0x47a5('0x1c')]:_0x362359[_0x47a5('0x1a')]+_0x362359[_0x47a5('0x1d')];var _0x12b98e;if(_0xaf70a6>=_0x138bc0){_0xaf70a6=_0x138bc0;_0x12b98e=0xc8;}else{_0x12b98e=0xce;}_0x4e99a8[_0x47a5('0x17')](_0x12b98e);return _0x4e99a8[_0x47a5('0x1e')](_0x47a5('0x1f'),_0x5247fd+'-'+_0xaf70a6+'/'+_0x138bc0)['json'](_0x11faf5);}return null;};}function patchUpdates(_0x1570bc){return function(_0xf160ba){try{jsonpatch['apply'](_0xf160ba,_0x1570bc,!![]);}catch(_0x2b0360){return BPromise[_0x47a5('0x20')](_0x2b0360);}return _0xf160ba[_0x47a5('0x21')]();};}function saveUpdates(_0x4c5910,_0xb8ae6c){return function(_0x2f142b){if(_0x2f142b){return _0x2f142b[_0x47a5('0x22')](_0x4c5910)[_0x47a5('0x23')](function(_0x5ef1b1){return _0x5ef1b1;});}return null;};}function removeEntity(_0xe2dea9,_0x385687){return function(_0x513981){if(_0x513981){return _0x513981[_0x47a5('0x24')]()[_0x47a5('0x23')](function(){_0xe2dea9[_0x47a5('0x17')](0xcc)[_0x47a5('0x18')]();});}};}function handleEntityNotFound(_0x3abd6a,_0x50bf17){return function(_0x53078a){if(!_0x53078a){_0x3abd6a[_0x47a5('0x16')](0x194);}return _0x53078a;};}function handleError(_0x5686db,_0x1ea9c8){_0x1ea9c8=_0x1ea9c8||0x1f4;return function(_0x5b6c4e){logger[_0x47a5('0x25')](_0x5b6c4e[_0x47a5('0x26')]);if(_0x5b6c4e[_0x47a5('0x27')]){delete _0x5b6c4e[_0x47a5('0x27')];}_0x5686db[_0x47a5('0x17')](_0x1ea9c8)[_0x47a5('0x28')](_0x5b6c4e);};}exports[_0x47a5('0x29')]=function(_0x136b14,_0x16631f){var _0x361bfa={},_0x1127f8={},_0x11a4fa={'count':0x0,'rows':[]};var _0x3ad507=_['map'](db[_0x47a5('0x2a')]['rawAttributes'],function(_0x2ef875){return{'name':_0x2ef875[_0x47a5('0x2b')],'type':_0x2ef875[_0x47a5('0x2c')]['key']};});_0x1127f8[_0x47a5('0x2d')]=_[_0x47a5('0x2e')](_0x3ad507,_0x47a5('0x27'));_0x1127f8[_0x47a5('0x2f')]=_['keys'](_0x136b14['query']);_0x1127f8[_0x47a5('0x30')]=_[_0x47a5('0x31')](_0x1127f8['model'],_0x1127f8['query']);_0x361bfa[_0x47a5('0x32')]=_[_0x47a5('0x31')](_0x1127f8['model'],qs[_0x47a5('0x33')](_0x136b14['query'][_0x47a5('0x33')]));_0x361bfa[_0x47a5('0x32')]=_0x361bfa['attributes']['length']?_0x361bfa[_0x47a5('0x32')]:_0x1127f8['model'];if(!_0x136b14[_0x47a5('0x2f')][_0x47a5('0x34')](_0x47a5('0x35'))){_0x361bfa['limit']=qs[_0x47a5('0x1d')](_0x136b14['query']['limit']);_0x361bfa[_0x47a5('0x1a')]=qs['offset'](_0x136b14[_0x47a5('0x2f')]['offset']);}_0x361bfa[_0x47a5('0x36')]=qs[_0x47a5('0x37')](_0x136b14[_0x47a5('0x2f')][_0x47a5('0x37')]);_0x361bfa[_0x47a5('0x38')]=qs[_0x47a5('0x30')](_[_0x47a5('0x39')](_0x136b14[_0x47a5('0x2f')],_0x1127f8[_0x47a5('0x30')]),_0x3ad507);if(_0x136b14['query'][_0x47a5('0x3a')]){_0x361bfa[_0x47a5('0x38')]=_['merge'](_0x361bfa[_0x47a5('0x38')],{'$or':_[_0x47a5('0x2e')](_0x3ad507,function(_0x1d4348){if(_0x1d4348['type']!==_0x47a5('0x3b')){var _0x10f660={};_0x10f660[_0x1d4348['name']]={'$like':'%'+_0x136b14[_0x47a5('0x2f')][_0x47a5('0x3a')]+'%'};return _0x10f660;}})});}_0x361bfa=_['merge']({},_0x361bfa,_0x136b14['options']);var _0x5ebd8c={'where':_0x361bfa[_0x47a5('0x38')]};return db['ChatOfflineMessage'][_0x47a5('0x1c')](_0x5ebd8c)[_0x47a5('0x23')](function(_0x301a85){_0x11a4fa[_0x47a5('0x1c')]=_0x301a85;if(_0x136b14[_0x47a5('0x2f')][_0x47a5('0x3c')]){_0x361bfa[_0x47a5('0x3d')]=[{'all':!![]}];}return db[_0x47a5('0x2a')][_0x47a5('0x3e')](_0x361bfa);})[_0x47a5('0x23')](function(_0x280500){_0x11a4fa[_0x47a5('0x3f')]=_0x280500;return _0x11a4fa;})[_0x47a5('0x23')](respondWithFilteredResult(_0x16631f,_0x361bfa))['catch'](handleError(_0x16631f,null));};exports[_0x47a5('0x40')]=function(_0x1c36fa,_0x331474){var _0x23bd8d={'raw':!![],'where':{'id':_0x1c36fa[_0x47a5('0x41')]['id']}},_0x586f4f={};_0x586f4f['model']=_['keys'](db['ChatOfflineMessage']['rawAttributes']);_0x586f4f[_0x47a5('0x2f')]=_['keys'](_0x1c36fa[_0x47a5('0x2f')]);_0x586f4f[_0x47a5('0x30')]=_[_0x47a5('0x31')](_0x586f4f['model'],_0x586f4f[_0x47a5('0x2f')]);_0x23bd8d[_0x47a5('0x32')]=_['intersection'](_0x586f4f['model'],qs[_0x47a5('0x33')](_0x1c36fa['query'][_0x47a5('0x33')]));_0x23bd8d[_0x47a5('0x32')]=_0x23bd8d[_0x47a5('0x32')][_0x47a5('0x42')]?_0x23bd8d[_0x47a5('0x32')]:_0x586f4f[_0x47a5('0x2d')];if(_0x1c36fa[_0x47a5('0x2f')][_0x47a5('0x3c')]){_0x23bd8d[_0x47a5('0x3d')]=[{'all':!![]}];}_0x23bd8d=_[_0x47a5('0x43')]({},_0x23bd8d,_0x1c36fa[_0x47a5('0x44')]);return db[_0x47a5('0x2a')][_0x47a5('0x45')](_0x23bd8d)[_0x47a5('0x23')](handleEntityNotFound(_0x331474,null))[_0x47a5('0x23')](respondWithResult(_0x331474,null))[_0x47a5('0x46')](handleError(_0x331474,null));};exports['create']=function(_0x2d38de,_0x23bb04){return db['ChatOfflineMessage']['create'](_0x2d38de[_0x47a5('0x47')],{})['then'](respondWithResult(_0x23bb04,0xc9))[_0x47a5('0x46')](handleError(_0x23bb04,null));};exports[_0x47a5('0x22')]=function(_0x54c35f,_0x4f62d3){if(_0x54c35f[_0x47a5('0x47')]['id']){delete _0x54c35f['body']['id'];}return db[_0x47a5('0x2a')][_0x47a5('0x45')]({'where':{'id':_0x54c35f[_0x47a5('0x41')]['id']}})[_0x47a5('0x23')](handleEntityNotFound(_0x4f62d3,null))[_0x47a5('0x23')](saveUpdates(_0x54c35f[_0x47a5('0x47')],null))[_0x47a5('0x23')](respondWithResult(_0x4f62d3,null))['catch'](handleError(_0x4f62d3,null));};exports['destroy']=function(_0x2dd1db,_0x411230){return db[_0x47a5('0x48')][_0x47a5('0x3e')]({'where':{'ChatOfflineMessageId':_0x2dd1db[_0x47a5('0x41')]['id']},'raw':!![]})[_0x47a5('0x23')](function(_0x249de5){_0x249de5['forEach'](function(_0x45cca5){var _0x1c9a62=path[_0x47a5('0x49')](config['root'],_0x47a5('0x4a'),'files',_0x47a5('0x4b'),_0x47a5('0x4c'),_0x45cca5[_0x47a5('0x4d')]);var _0xf03bd5=fs['existsSync'](_0x1c9a62);if(_0xf03bd5)fs_extra[_0x47a5('0x4e')](_0x1c9a62);});})[_0x47a5('0x23')](function(){return db[_0x47a5('0x2a')][_0x47a5('0x45')]({'where':{'id':_0x2dd1db[_0x47a5('0x41')]['id']},'individualHooks':!![]});})[_0x47a5('0x23')](handleEntityNotFound(_0x411230,null))[_0x47a5('0x23')](removeEntity(_0x411230,null))['catch'](handleError(_0x411230,null));};exports[_0x47a5('0x4f')]=function(_0x43721b,_0x187d7e){return db[_0x47a5('0x2a')][_0x47a5('0x4f')]()[_0x47a5('0x23')](respondWithResult(_0x187d7e,null))['catch'](handleError(_0x187d7e,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe6be=['rimraf','../../config/environment','exports','define','ChatOfflineMessage','chat_offline_messages','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','bluebird','request-promise','path'];(function(_0x344a3f,_0x579a22){var _0x264712=function(_0x34c9f0){while(--_0x34c9f0){_0x344a3f['push'](_0x344a3f['shift']());}};_0x264712(++_0x579a22);}(_0xe6be,0x8f));var _0xee6b=function(_0x848d7,_0x4fa8eb){_0x848d7=_0x848d7-0x0;var _0x1290cf=_0xe6be[_0x848d7];return _0x1290cf;};'use strict';var _=require(_0xee6b('0x0'));var util=require(_0xee6b('0x1'));var logger=require(_0xee6b('0x2'))(_0xee6b('0x3'));var moment=require('moment');var BPromise=require(_0xee6b('0x4'));var rp=require(_0xee6b('0x5'));var fs=require('fs');var path=require(_0xee6b('0x6'));var rimraf=require(_0xee6b('0x7'));var config=require(_0xee6b('0x8'));var attributes=require('./chatOfflineMessage.attributes');module[_0xee6b('0x9')]=function(_0x2c2a46,_0x843cb2){return _0x2c2a46[_0xee6b('0xa')](_0xee6b('0xb'),attributes,{'tableName':_0xee6b('0xc'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0xee6b('0xd'),'collate':_0xee6b('0xe')});};
\ No newline at end of file
+var _0xcfc1=['exports','define','ChatOfflineMessage','chat_offline_messages','utf8mb4','utf8mb4_unicode_ci','util','../../config/logger','api','moment','request-promise','./chatOfflineMessage.attributes'];(function(_0x97f085,_0x202eaf){var _0x311399=function(_0xe6d231){while(--_0xe6d231){_0x97f085['push'](_0x97f085['shift']());}};_0x311399(++_0x202eaf);}(_0xcfc1,0x14a));var _0x1cfc=function(_0x1b6186,_0x1ec7f2){_0x1b6186=_0x1b6186-0x0;var _0x186121=_0xcfc1[_0x1b6186];return _0x186121;};'use strict';var _=require('lodash');var util=require(_0x1cfc('0x0'));var logger=require(_0x1cfc('0x1'))(_0x1cfc('0x2'));var moment=require(_0x1cfc('0x3'));var BPromise=require('bluebird');var rp=require(_0x1cfc('0x4'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x1cfc('0x5'));module[_0x1cfc('0x6')]=function(_0xb3f435,_0xecbcb7){return _0xb3f435[_0x1cfc('0x7')](_0x1cfc('0x8'),attributes,{'tableName':_0x1cfc('0x9'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x1cfc('0xa'),'collate':_0x1cfc('0xb')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x13d1=['info','ChatOfflineMessage,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','request'];(function(_0x46eb55,_0x3cbe36){var _0x2a98af=function(_0x52c26f){while(--_0x52c26f){_0x46eb55['push'](_0x46eb55['shift']());}};_0x2a98af(++_0x3cbe36);}(_0x13d1,0xa3));var _0x113d=function(_0x4f446c,_0x37f815){_0x4f446c=_0x4f446c-0x0;var _0x4c2303=_0x13d1[_0x4f446c];return _0x4c2303;};'use strict';var _=require(_0x113d('0x0'));var util=require(_0x113d('0x1'));var moment=require(_0x113d('0x2'));var BPromise=require('bluebird');var rs=require(_0x113d('0x3'));var fs=require('fs');var Redis=require(_0x113d('0x4'));var db=require(_0x113d('0x5'))['db'];var utils=require(_0x113d('0x6'));var logger=require('../../config/logger')(_0x113d('0x7'));var config=require(_0x113d('0x8'));var jayson=require(_0x113d('0x9'));var client=jayson[_0x113d('0xa')][_0x113d('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x4a95ee,_0x314174,_0x1048bd){return new BPromise(function(_0x2d2721,_0x27b462){return client[_0x113d('0xc')](_0x4a95ee,_0x1048bd)['then'](function(_0xc74059){logger[_0x113d('0xd')](_0x113d('0xe'),_0x314174,_0x113d('0xf'));logger['debug']('ChatOfflineMessage,\x20%s,\x20%s,\x20%s',_0x314174,_0x113d('0xf'),JSON[_0x113d('0x10')](_0xc74059));if(_0xc74059[_0x113d('0x11')]){if(_0xc74059[_0x113d('0x11')][_0x113d('0x12')]===0x1f4){logger[_0x113d('0x11')](_0x113d('0xe'),_0x314174,_0xc74059[_0x113d('0x11')]['message']);return _0x27b462(_0xc74059[_0x113d('0x11')][_0x113d('0x13')]);}logger[_0x113d('0x11')](_0x113d('0xe'),_0x314174,_0xc74059[_0x113d('0x11')][_0x113d('0x13')]);return _0x2d2721(_0xc74059[_0x113d('0x11')][_0x113d('0x13')]);}else{logger[_0x113d('0xd')]('ChatOfflineMessage,\x20%s,\x20%s',_0x314174,'request\x20sent');_0x2d2721(_0xc74059[_0x113d('0x14')][_0x113d('0x13')]);}})[_0x113d('0x15')](function(_0x54a740){logger[_0x113d('0x11')](_0x113d('0xe'),_0x314174,_0x54a740);_0x27b462(_0x54a740);});});}
\ No newline at end of file
+var _0xd99d=['rpc','../../config/environment','jayson/promise','client','http','request','ChatOfflineMessage,\x20%s,\x20%s','request\x20sent','debug','ChatOfflineMessage,\x20%s,\x20%s,\x20%s','stringify','error','message','info','result','catch','lodash','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger'];(function(_0x5d7a3d,_0x1ce20b){var _0x48afcb=function(_0x2a361f){while(--_0x2a361f){_0x5d7a3d['push'](_0x5d7a3d['shift']());}};_0x48afcb(++_0x1ce20b);}(_0xd99d,0x1ae));var _0xdd99=function(_0x13b2b5,_0x14acad){_0x13b2b5=_0x13b2b5-0x0;var _0xbaa77a=_0xd99d[_0x13b2b5];return _0xbaa77a;};'use strict';var _=require(_0xdd99('0x0'));var util=require('util');var moment=require(_0xdd99('0x1'));var BPromise=require(_0xdd99('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xdd99('0x3'));var db=require(_0xdd99('0x4'))['db'];var utils=require(_0xdd99('0x5'));var logger=require(_0xdd99('0x6'))(_0xdd99('0x7'));var config=require(_0xdd99('0x8'));var jayson=require(_0xdd99('0x9'));var client=jayson[_0xdd99('0xa')][_0xdd99('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x169f27,_0x1fc81f,_0x18a5ba){return new BPromise(function(_0x5c737a,_0x2755cd){return client[_0xdd99('0xc')](_0x169f27,_0x18a5ba)['then'](function(_0x46fe1c){logger['info'](_0xdd99('0xd'),_0x1fc81f,_0xdd99('0xe'));logger[_0xdd99('0xf')](_0xdd99('0x10'),_0x1fc81f,'request\x20sent',JSON[_0xdd99('0x11')](_0x46fe1c));if(_0x46fe1c[_0xdd99('0x12')]){if(_0x46fe1c[_0xdd99('0x12')]['code']===0x1f4){logger[_0xdd99('0x12')](_0xdd99('0xd'),_0x1fc81f,_0x46fe1c['error']['message']);return _0x2755cd(_0x46fe1c[_0xdd99('0x12')][_0xdd99('0x13')]);}logger[_0xdd99('0x12')](_0xdd99('0xd'),_0x1fc81f,_0x46fe1c[_0xdd99('0x12')][_0xdd99('0x13')]);return _0x5c737a(_0x46fe1c[_0xdd99('0x12')][_0xdd99('0x13')]);}else{logger[_0xdd99('0x14')](_0xdd99('0xd'),_0x1fc81f,'request\x20sent');_0x5c737a(_0x46fe1c[_0xdd99('0x15')]['message']);}})[_0xdd99('0x16')](function(_0x31f530){logger['error'](_0xdd99('0xd'),_0x1fc81f,_0x31f530);_0x2755cd(_0x31f530);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4e6f=['index','/describe','describe','/:id','show','create','destroy','exports','connect-timeout','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated'];(function(_0x44865b,_0x2be57f){var _0x50b156=function(_0x269033){while(--_0x269033){_0x44865b['push'](_0x44865b['shift']());}};_0x50b156(++_0x2be57f);}(_0x4e6f,0x17f));var _0xf4e6=function(_0x444f7a,_0x53324b){_0x444f7a=_0x444f7a-0x0;var _0x164f1e=_0x4e6f[_0x444f7a];return _0x164f1e;};'use strict';var multer=require('multer');var util=require('util');var path=require('path');var timeout=require(_0xf4e6('0x0'));var express=require('express');var router=express['Router']();var fs_extra=require(_0xf4e6('0x1'));var auth=require(_0xf4e6('0x2'));var interaction=require(_0xf4e6('0x3'));var config=require(_0xf4e6('0x4'));var controller=require('./chatOfflineMessage.controller');router[_0xf4e6('0x5')]('/',auth[_0xf4e6('0x6')](),controller[_0xf4e6('0x7')]);router[_0xf4e6('0x5')](_0xf4e6('0x8'),auth[_0xf4e6('0x6')](),controller[_0xf4e6('0x9')]);router['get'](_0xf4e6('0xa'),auth[_0xf4e6('0x6')](),controller[_0xf4e6('0xb')]);router['post']('/',auth[_0xf4e6('0x6')](),controller[_0xf4e6('0xc')]);router['put'](_0xf4e6('0xa'),auth[_0xf4e6('0x6')](),controller['update']);router['delete'](_0xf4e6('0xa'),auth[_0xf4e6('0x6')](),controller[_0xf4e6('0xd')]);module[_0xf4e6('0xe')]=router;
\ No newline at end of file
+var _0x4683=['create','put','update','delete','destroy','exports','multer','util','path','connect-timeout','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/describe','describe','/:id','show'];(function(_0x1573ea,_0x434f02){var _0x51c0e2=function(_0x5c9b28){while(--_0x5c9b28){_0x1573ea['push'](_0x1573ea['shift']());}};_0x51c0e2(++_0x434f02);}(_0x4683,0xed));var _0x3468=function(_0x140ec4,_0x2647fb){_0x140ec4=_0x140ec4-0x0;var _0x49476c=_0x4683[_0x140ec4];return _0x49476c;};'use strict';var multer=require(_0x3468('0x0'));var util=require(_0x3468('0x1'));var path=require(_0x3468('0x2'));var timeout=require(_0x3468('0x3'));var express=require('express');var router=express[_0x3468('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x3468('0x5'));var interaction=require(_0x3468('0x6'));var config=require(_0x3468('0x7'));var controller=require('./chatOfflineMessage.controller');router[_0x3468('0x8')]('/',auth[_0x3468('0x9')](),controller[_0x3468('0xa')]);router[_0x3468('0x8')](_0x3468('0xb'),auth[_0x3468('0x9')](),controller[_0x3468('0xc')]);router[_0x3468('0x8')](_0x3468('0xd'),auth[_0x3468('0x9')](),controller[_0x3468('0xe')]);router['post']('/',auth['isAuthenticated'](),controller[_0x3468('0xf')]);router[_0x3468('0x10')](_0x3468('0xd'),auth[_0x3468('0x9')](),controller[_0x3468('0x11')]);router[_0x3468('0x12')](_0x3468('0xd'),auth[_0x3468('0x9')](),controller[_0x3468('0x13')]);module[_0x3468('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc61c=['ENUM','timeout','mouseOver','INTEGER','exports','STRING'];(function(_0xd7e057,_0xd71681){var _0x4f8e85=function(_0x24f7c8){while(--_0x24f7c8){_0xd7e057['push'](_0xd7e057['shift']());}};_0x4f8e85(++_0xd71681);}(_0xc61c,0x19c));var _0xcc61=function(_0x4500df,_0xaaf3ca){_0x4500df=_0x4500df-0x0;var _0x4e3018=_0xc61c[_0x4500df];return _0x4e3018;};'use strict';var Sequelize=require('sequelize');module[_0xcc61('0x0')]={'name':{'type':Sequelize[_0xcc61('0x1')],'allowNull':![]},'type':{'type':Sequelize[_0xcc61('0x2')]('mouseOver',_0xcc61('0x3')),'defaultValue':_0xcc61('0x4')},'selector':{'type':Sequelize[_0xcc61('0x1')]},'timeout':{'type':Sequelize[_0xcc61('0x5')]}};
\ No newline at end of file
+var _0x6e59=['INTEGER','sequelize','STRING','ENUM','mouseOver','timeout'];(function(_0x58ea86,_0x123da4){var _0xc873d0=function(_0x59004b){while(--_0x59004b){_0x58ea86['push'](_0x58ea86['shift']());}};_0xc873d0(++_0x123da4);}(_0x6e59,0x9d));var _0x96e5=function(_0x160908,_0x175430){_0x160908=_0x160908-0x0;var _0xc25f86=_0x6e59[_0x160908];return _0xc25f86;};'use strict';var Sequelize=require(_0x96e5('0x0'));module['exports']={'name':{'type':Sequelize[_0x96e5('0x1')],'allowNull':![]},'type':{'type':Sequelize[_0x96e5('0x2')](_0x96e5('0x3'),_0x96e5('0x4')),'defaultValue':'mouseOver'},'selector':{'type':Sequelize['STRING']},'timeout':{'type':Sequelize[_0x96e5('0x5')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x740a=['destroy','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','limit','count','offset','set','apply','reject','save','then','error','stack','name','show','params','model','keys','ChatProactiveAction','rawAttributes','query','filters','intersection','fields','attributes','length','include','merge','options','find','catch','create','body','update'];(function(_0xdb8366,_0x3a5c0b){var _0x4058ea=function(_0x579b8a){while(--_0x579b8a){_0xdb8366['push'](_0xdb8366['shift']());}};_0x4058ea(++_0x3a5c0b);}(_0x740a,0x175));var _0xa740=function(_0x595b4f,_0x4071aa){_0x595b4f=_0x595b4f-0x0;var _0x3ca3b8=_0x740a[_0x595b4f];return _0x3ca3b8;};'use strict';var emlformat=require(_0xa740('0x0'));var rimraf=require(_0xa740('0x1'));var zipdir=require(_0xa740('0x2'));var jsonpatch=require(_0xa740('0x3'));var rp=require(_0xa740('0x4'));var moment=require(_0xa740('0x5'));var BPromise=require(_0xa740('0x6'));var Mustache=require(_0xa740('0x7'));var util=require('util');var path=require(_0xa740('0x8'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xa740('0x9'));var fs=require('fs');var fs_extra=require(_0xa740('0xa'));var _=require(_0xa740('0xb'));var squel=require(_0xa740('0xc'));var crypto=require(_0xa740('0xd'));var jsforce=require(_0xa740('0xe'));var deskjs=require(_0xa740('0xf'));var toCsv=require('to-csv');var querystring=require(_0xa740('0x10'));var Papa=require(_0xa740('0x11'));var Redis=require(_0xa740('0x12'));var authService=require(_0xa740('0x13'));var qs=require(_0xa740('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require(_0xa740('0x15'));var config=require(_0xa740('0x16'));var licenseUtil=require(_0xa740('0x17'));var db=require(_0xa740('0x18'))['db'];function respondWithStatusCode(_0x4c14fe,_0x48a5fc){_0x48a5fc=_0x48a5fc||0xcc;return function(_0x4c7a9e){if(_0x4c7a9e){return _0x4c14fe[_0xa740('0x19')](_0x48a5fc);}return _0x4c14fe[_0xa740('0x1a')](_0x48a5fc)[_0xa740('0x1b')]();};}function respondWithResult(_0x18b403,_0x1df901){_0x1df901=_0x1df901||0xc8;return function(_0x32ff20){if(_0x32ff20){return _0x18b403[_0xa740('0x1a')](_0x1df901)[_0xa740('0x1c')](_0x32ff20);}};}function respondWithFilteredResult(_0x276d26,_0x54b81b){return function(_0x51737e){if(_0x51737e){var _0x2e806d=typeof _0x54b81b['offset']===_0xa740('0x1d')&&typeof _0x54b81b[_0xa740('0x1e')]===_0xa740('0x1d');var _0x19f510=_0x51737e[_0xa740('0x1f')];var _0x35acd3=_0x2e806d?0x0:_0x54b81b[_0xa740('0x20')];var _0x35ff22=_0x2e806d?_0x51737e['count']:_0x54b81b['offset']+_0x54b81b[_0xa740('0x1e')];var _0x2909d0;if(_0x35ff22>=_0x19f510){_0x35ff22=_0x19f510;_0x2909d0=0xc8;}else{_0x2909d0=0xce;}_0x276d26[_0xa740('0x1a')](_0x2909d0);return _0x276d26[_0xa740('0x21')]('Content-Range',_0x35acd3+'-'+_0x35ff22+'/'+_0x19f510)[_0xa740('0x1c')](_0x51737e);}return null;};}function patchUpdates(_0x4ff2f6){return function(_0x220ae5){try{jsonpatch[_0xa740('0x22')](_0x220ae5,_0x4ff2f6,!![]);}catch(_0x3c2bcb){return BPromise[_0xa740('0x23')](_0x3c2bcb);}return _0x220ae5[_0xa740('0x24')]();};}function saveUpdates(_0x39b800,_0x1ea2ce){return function(_0xb6ecca){if(_0xb6ecca){return _0xb6ecca['update'](_0x39b800)[_0xa740('0x25')](function(_0x243c2d){return _0x243c2d;});}return null;};}function removeEntity(_0x40b0f6,_0xd6841c){return function(_0x1a3fc4){if(_0x1a3fc4){return _0x1a3fc4['destroy']()['then'](function(){_0x40b0f6[_0xa740('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x48d47e,_0x38bd4d){return function(_0xe2b64){if(!_0xe2b64){_0x48d47e['sendStatus'](0x194);}return _0xe2b64;};}function handleError(_0x355a84,_0x2cfa60){_0x2cfa60=_0x2cfa60||0x1f4;return function(_0x48455a){logger[_0xa740('0x26')](_0x48455a[_0xa740('0x27')]);if(_0x48455a[_0xa740('0x28')]){delete _0x48455a[_0xa740('0x28')];}_0x355a84['status'](_0x2cfa60)['send'](_0x48455a);};}exports[_0xa740('0x29')]=function(_0x228d88,_0x5aa303){var _0x16a16a={'raw':!![],'where':{'id':_0x228d88[_0xa740('0x2a')]['id']}},_0x567820={};_0x567820[_0xa740('0x2b')]=_[_0xa740('0x2c')](db[_0xa740('0x2d')][_0xa740('0x2e')]);_0x567820['query']=_['keys'](_0x228d88[_0xa740('0x2f')]);_0x567820[_0xa740('0x30')]=_[_0xa740('0x31')](_0x567820[_0xa740('0x2b')],_0x567820[_0xa740('0x2f')]);_0x16a16a['attributes']=_[_0xa740('0x31')](_0x567820[_0xa740('0x2b')],qs['fields'](_0x228d88[_0xa740('0x2f')][_0xa740('0x32')]));_0x16a16a['attributes']=_0x16a16a[_0xa740('0x33')][_0xa740('0x34')]?_0x16a16a[_0xa740('0x33')]:_0x567820[_0xa740('0x2b')];if(_0x228d88[_0xa740('0x2f')]['includeAll']){_0x16a16a[_0xa740('0x35')]=[{'all':!![]}];}_0x16a16a=_[_0xa740('0x36')]({},_0x16a16a,_0x228d88[_0xa740('0x37')]);return db[_0xa740('0x2d')][_0xa740('0x38')](_0x16a16a)[_0xa740('0x25')](handleEntityNotFound(_0x5aa303,null))[_0xa740('0x25')](respondWithResult(_0x5aa303,null))[_0xa740('0x39')](handleError(_0x5aa303,null));};exports['create']=function(_0x4acc3d,_0x262c68){return db[_0xa740('0x2d')][_0xa740('0x3a')](_0x4acc3d[_0xa740('0x3b')],{})[_0xa740('0x25')](respondWithResult(_0x262c68,0xc9))[_0xa740('0x39')](handleError(_0x262c68,null));};exports[_0xa740('0x3c')]=function(_0x36e8a5,_0x31147a){if(_0x36e8a5[_0xa740('0x3b')]['id']){delete _0x36e8a5[_0xa740('0x3b')]['id'];}return db['ChatProactiveAction'][_0xa740('0x38')]({'where':{'id':_0x36e8a5['params']['id']}})[_0xa740('0x25')](handleEntityNotFound(_0x31147a,null))['then'](saveUpdates(_0x36e8a5[_0xa740('0x3b')],null))[_0xa740('0x25')](respondWithResult(_0x31147a,null))[_0xa740('0x39')](handleError(_0x31147a,null));};exports[_0xa740('0x3d')]=function(_0x2f096f,_0x156509){return db[_0xa740('0x2d')]['find']({'where':{'id':_0x2f096f[_0xa740('0x2a')]['id']}})[_0xa740('0x25')](handleEntityNotFound(_0x156509,null))[_0xa740('0x25')](removeEntity(_0x156509,null))[_0xa740('0x39')](handleError(_0x156509,null));};
\ No newline at end of file
+var _0xe06f=['../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','apply','save','update','then','error','name','show','params','keys','ChatProactiveAction','rawAttributes','query','intersection','model','attributes','fields','length','includeAll','include','options','catch','create','body','find','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','util','path','sox','lodash','squel','crypto','jsforce','desk.js','to-csv','papaparse','ioredis'];(function(_0x54a6c9,_0x15da10){var _0x3ad256=function(_0x185c90){while(--_0x185c90){_0x54a6c9['push'](_0x54a6c9['shift']());}};_0x3ad256(++_0x15da10);}(_0xe06f,0x65));var _0xfe06=function(_0x26717a,_0x4f93f9){_0x26717a=_0x26717a-0x0;var _0x352096=_0xe06f[_0x26717a];return _0x352096;};'use strict';var emlformat=require(_0xfe06('0x0'));var rimraf=require(_0xfe06('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xfe06('0x2'));var rp=require('request-promise');var moment=require(_0xfe06('0x3'));var BPromise=require(_0xfe06('0x4'));var Mustache=require(_0xfe06('0x5'));var util=require(_0xfe06('0x6'));var path=require(_0xfe06('0x7'));var sox=require(_0xfe06('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xfe06('0x9'));var squel=require(_0xfe06('0xa'));var crypto=require(_0xfe06('0xb'));var jsforce=require(_0xfe06('0xc'));var deskjs=require(_0xfe06('0xd'));var toCsv=require(_0xfe06('0xe'));var querystring=require('querystring');var Papa=require(_0xfe06('0xf'));var Redis=require(_0xfe06('0x10'));var authService=require(_0xfe06('0x11'));var qs=require(_0xfe06('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xfe06('0x13'));var logger=require(_0xfe06('0x14'))(_0xfe06('0x15'));var utils=require(_0xfe06('0x16'));var config=require(_0xfe06('0x17'));var licenseUtil=require(_0xfe06('0x18'));var db=require(_0xfe06('0x19'))['db'];function respondWithStatusCode(_0x2b44be,_0x576efe){_0x576efe=_0x576efe||0xcc;return function(_0xbb32db){if(_0xbb32db){return _0x2b44be[_0xfe06('0x1a')](_0x576efe);}return _0x2b44be[_0xfe06('0x1b')](_0x576efe)[_0xfe06('0x1c')]();};}function respondWithResult(_0x5e0ff5,_0x5a91b5){_0x5a91b5=_0x5a91b5||0xc8;return function(_0x3e44dd){if(_0x3e44dd){return _0x5e0ff5['status'](_0x5a91b5)[_0xfe06('0x1d')](_0x3e44dd);}};}function respondWithFilteredResult(_0x3a41ab,_0x4dd976){return function(_0x54dd69){if(_0x54dd69){var _0x7b243f=typeof _0x4dd976[_0xfe06('0x1e')]===_0xfe06('0x1f')&&typeof _0x4dd976[_0xfe06('0x20')]===_0xfe06('0x1f');var _0x48dd0d=_0x54dd69[_0xfe06('0x21')];var _0x4f45b0=_0x7b243f?0x0:_0x4dd976[_0xfe06('0x1e')];var _0x346ed9=_0x7b243f?_0x54dd69[_0xfe06('0x21')]:_0x4dd976[_0xfe06('0x1e')]+_0x4dd976[_0xfe06('0x20')];var _0x548d73;if(_0x346ed9>=_0x48dd0d){_0x346ed9=_0x48dd0d;_0x548d73=0xc8;}else{_0x548d73=0xce;}_0x3a41ab['status'](_0x548d73);return _0x3a41ab['set'](_0xfe06('0x22'),_0x4f45b0+'-'+_0x346ed9+'/'+_0x48dd0d)[_0xfe06('0x1d')](_0x54dd69);}return null;};}function patchUpdates(_0x166a86){return function(_0x4775b5){try{jsonpatch[_0xfe06('0x23')](_0x4775b5,_0x166a86,!![]);}catch(_0x594ad8){return BPromise['reject'](_0x594ad8);}return _0x4775b5[_0xfe06('0x24')]();};}function saveUpdates(_0xc30ab5,_0x4dd52d){return function(_0x37974d){if(_0x37974d){return _0x37974d[_0xfe06('0x25')](_0xc30ab5)[_0xfe06('0x26')](function(_0x1de458){return _0x1de458;});}return null;};}function removeEntity(_0x288487,_0x5b58e5){return function(_0x39468e){if(_0x39468e){return _0x39468e['destroy']()['then'](function(){_0x288487[_0xfe06('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x2755ab,_0x27a507){return function(_0x470530){if(!_0x470530){_0x2755ab[_0xfe06('0x1a')](0x194);}return _0x470530;};}function handleError(_0x5703e2,_0x10c227){_0x10c227=_0x10c227||0x1f4;return function(_0x2c2146){logger[_0xfe06('0x27')](_0x2c2146['stack']);if(_0x2c2146[_0xfe06('0x28')]){delete _0x2c2146['name'];}_0x5703e2[_0xfe06('0x1b')](_0x10c227)['send'](_0x2c2146);};}exports[_0xfe06('0x29')]=function(_0x3272b8,_0x3f8536){var _0x353b3c={'raw':!![],'where':{'id':_0x3272b8[_0xfe06('0x2a')]['id']}},_0x12d6a5={};_0x12d6a5['model']=_[_0xfe06('0x2b')](db[_0xfe06('0x2c')][_0xfe06('0x2d')]);_0x12d6a5[_0xfe06('0x2e')]=_[_0xfe06('0x2b')](_0x3272b8['query']);_0x12d6a5['filters']=_[_0xfe06('0x2f')](_0x12d6a5[_0xfe06('0x30')],_0x12d6a5['query']);_0x353b3c[_0xfe06('0x31')]=_[_0xfe06('0x2f')](_0x12d6a5[_0xfe06('0x30')],qs['fields'](_0x3272b8[_0xfe06('0x2e')][_0xfe06('0x32')]));_0x353b3c[_0xfe06('0x31')]=_0x353b3c['attributes'][_0xfe06('0x33')]?_0x353b3c[_0xfe06('0x31')]:_0x12d6a5[_0xfe06('0x30')];if(_0x3272b8[_0xfe06('0x2e')][_0xfe06('0x34')]){_0x353b3c[_0xfe06('0x35')]=[{'all':!![]}];}_0x353b3c=_['merge']({},_0x353b3c,_0x3272b8[_0xfe06('0x36')]);return db[_0xfe06('0x2c')]['find'](_0x353b3c)[_0xfe06('0x26')](handleEntityNotFound(_0x3f8536,null))[_0xfe06('0x26')](respondWithResult(_0x3f8536,null))[_0xfe06('0x37')](handleError(_0x3f8536,null));};exports[_0xfe06('0x38')]=function(_0x25950f,_0x332511){return db[_0xfe06('0x2c')][_0xfe06('0x38')](_0x25950f['body'],{})['then'](respondWithResult(_0x332511,0xc9))[_0xfe06('0x37')](handleError(_0x332511,null));};exports[_0xfe06('0x25')]=function(_0x4013e8,_0x507812){if(_0x4013e8[_0xfe06('0x39')]['id']){delete _0x4013e8[_0xfe06('0x39')]['id'];}return db[_0xfe06('0x2c')]['find']({'where':{'id':_0x4013e8[_0xfe06('0x2a')]['id']}})[_0xfe06('0x26')](handleEntityNotFound(_0x507812,null))['then'](saveUpdates(_0x4013e8[_0xfe06('0x39')],null))[_0xfe06('0x26')](respondWithResult(_0x507812,null))[_0xfe06('0x37')](handleError(_0x507812,null));};exports['destroy']=function(_0xc2be21,_0x227aa0){return db[_0xfe06('0x2c')][_0xfe06('0x3a')]({'where':{'id':_0xc2be21[_0xfe06('0x2a')]['id']}})[_0xfe06('0x26')](handleEntityNotFound(_0x227aa0,null))[_0xfe06('0x26')](removeEntity(_0x227aa0,null))['catch'](handleError(_0x227aa0,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdaff=['./chatProactiveAction.attributes','define','ChatProactiveAction','chat_proactive_actions','lodash','util','../../config/logger','bluebird','request-promise','rimraf','../../config/environment'];(function(_0x57e230,_0x55b7f5){var _0x1cd38b=function(_0x343db2){while(--_0x343db2){_0x57e230['push'](_0x57e230['shift']());}};_0x1cd38b(++_0x55b7f5);}(_0xdaff,0xd5));var _0xfdaf=function(_0xfae23b,_0x2be4ba){_0xfae23b=_0xfae23b-0x0;var _0x200640=_0xdaff[_0xfae23b];return _0x200640;};'use strict';var _=require(_0xfdaf('0x0'));var util=require(_0xfdaf('0x1'));var logger=require(_0xfdaf('0x2'))('api');var moment=require('moment');var BPromise=require(_0xfdaf('0x3'));var rp=require(_0xfdaf('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0xfdaf('0x5'));var config=require(_0xfdaf('0x6'));var attributes=require(_0xfdaf('0x7'));module['exports']=function(_0x475ce1,_0x2aa337){return _0x475ce1[_0xfdaf('0x8')](_0xfdaf('0x9'),attributes,{'tableName':_0xfdaf('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x46b6=['./chatProactiveAction.attributes','define','chat_proactive_actions','lodash','util','moment','bluebird','request-promise','../../config/environment'];(function(_0x14a505,_0x401412){var _0x56b901=function(_0x454494){while(--_0x454494){_0x14a505['push'](_0x14a505['shift']());}};_0x56b901(++_0x401412);}(_0x46b6,0x1e9));var _0x646b=function(_0x298d90,_0x7ecf80){_0x298d90=_0x298d90-0x0;var _0x4d3587=_0x46b6[_0x298d90];return _0x4d3587;};'use strict';var _=require(_0x646b('0x0'));var util=require(_0x646b('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x646b('0x2'));var BPromise=require(_0x646b('0x3'));var rp=require(_0x646b('0x4'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x646b('0x5'));var attributes=require(_0x646b('0x6'));module['exports']=function(_0x272c19,_0x31532e){return _0x272c19[_0x646b('0x7')]('ChatProactiveAction',attributes,{'tableName':_0x646b('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa047=['rpc','../../config/environment','jayson/promise','http','then','ChatProactiveAction,\x20%s,\x20%s','ChatProactiveAction,\x20%s,\x20%s,\x20%s','request\x20sent','code','error','message','info','catch','lodash','util','moment','bluebird','ioredis','../../config/utils','../../config/logger'];(function(_0x101405,_0x3e3f2f){var _0x3720da=function(_0x1dd4c5){while(--_0x1dd4c5){_0x101405['push'](_0x101405['shift']());}};_0x3720da(++_0x3e3f2f);}(_0xa047,0x1c5));var _0x7a04=function(_0xbb9dbf,_0x5dafa4){_0xbb9dbf=_0xbb9dbf-0x0;var _0x30223c=_0xa047[_0xbb9dbf];return _0x30223c;};'use strict';var _=require(_0x7a04('0x0'));var util=require(_0x7a04('0x1'));var moment=require(_0x7a04('0x2'));var BPromise=require(_0x7a04('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x7a04('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x7a04('0x5'));var logger=require(_0x7a04('0x6'))(_0x7a04('0x7'));var config=require(_0x7a04('0x8'));var jayson=require(_0x7a04('0x9'));var client=jayson['client'][_0x7a04('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x3166ff,_0x1dc89f,_0x5c183c){return new BPromise(function(_0x10d92f,_0x10faf9){return client['request'](_0x3166ff,_0x5c183c)[_0x7a04('0xb')](function(_0xc64317){logger['info'](_0x7a04('0xc'),_0x1dc89f,'request\x20sent');logger['debug'](_0x7a04('0xd'),_0x1dc89f,_0x7a04('0xe'),JSON['stringify'](_0xc64317));if(_0xc64317['error']){if(_0xc64317['error'][_0x7a04('0xf')]===0x1f4){logger[_0x7a04('0x10')](_0x7a04('0xc'),_0x1dc89f,_0xc64317[_0x7a04('0x10')][_0x7a04('0x11')]);return _0x10faf9(_0xc64317[_0x7a04('0x10')][_0x7a04('0x11')]);}logger[_0x7a04('0x10')](_0x7a04('0xc'),_0x1dc89f,_0xc64317['error'][_0x7a04('0x11')]);return _0x10d92f(_0xc64317[_0x7a04('0x10')][_0x7a04('0x11')]);}else{logger[_0x7a04('0x12')](_0x7a04('0xc'),_0x1dc89f,_0x7a04('0xe'));_0x10d92f(_0xc64317['result'][_0x7a04('0x11')]);}})[_0x7a04('0x13')](function(_0x400468){logger['error']('ChatProactiveAction,\x20%s,\x20%s',_0x1dc89f,_0x400468);_0x10faf9(_0x400468);});});}
\ No newline at end of file
+var _0x976b=['util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','info','ChatProactiveAction,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','lodash'];(function(_0x52dbc1,_0x1dd29a){var _0x1e4913=function(_0x5befbc){while(--_0x5befbc){_0x52dbc1['push'](_0x52dbc1['shift']());}};_0x1e4913(++_0x1dd29a);}(_0x976b,0x99));var _0xb976=function(_0x14fff1,_0x43b51e){_0x14fff1=_0x14fff1-0x0;var _0x9c014f=_0x976b[_0x14fff1];return _0x9c014f;};'use strict';var _=require(_0xb976('0x0'));var util=require(_0xb976('0x1'));var moment=require(_0xb976('0x2'));var BPromise=require(_0xb976('0x3'));var rs=require(_0xb976('0x4'));var fs=require('fs');var Redis=require(_0xb976('0x5'));var db=require(_0xb976('0x6'))['db'];var utils=require(_0xb976('0x7'));var logger=require(_0xb976('0x8'))('rpc');var config=require(_0xb976('0x9'));var jayson=require(_0xb976('0xa'));var client=jayson[_0xb976('0xb')][_0xb976('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x1345c5,_0x42a901,_0x209f87){return new BPromise(function(_0x26a2a7,_0xb834cd){return client['request'](_0x1345c5,_0x209f87)['then'](function(_0x433707){logger[_0xb976('0xd')](_0xb976('0xe'),_0x42a901,_0xb976('0xf'));logger[_0xb976('0x10')]('ChatProactiveAction,\x20%s,\x20%s,\x20%s',_0x42a901,_0xb976('0xf'),JSON[_0xb976('0x11')](_0x433707));if(_0x433707[_0xb976('0x12')]){if(_0x433707[_0xb976('0x12')][_0xb976('0x13')]===0x1f4){logger[_0xb976('0x12')]('ChatProactiveAction,\x20%s,\x20%s',_0x42a901,_0x433707[_0xb976('0x12')][_0xb976('0x14')]);return _0xb834cd(_0x433707[_0xb976('0x12')][_0xb976('0x14')]);}logger['error'](_0xb976('0xe'),_0x42a901,_0x433707[_0xb976('0x12')][_0xb976('0x14')]);return _0x26a2a7(_0x433707['error'][_0xb976('0x14')]);}else{logger['info']('ChatProactiveAction,\x20%s,\x20%s',_0x42a901,_0xb976('0xf'));_0x26a2a7(_0x433707[_0xb976('0x15')]['message']);}})['catch'](function(_0x9fdaec){logger[_0xb976('0x12')]('ChatProactiveAction,\x20%s,\x20%s',_0x42a901,_0x9fdaec);_0xb834cd(_0x9fdaec);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2bd8=['multer','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./chatProactiveAction.controller','get','/:id','show','post','isAuthenticated','create','exports'];(function(_0x295314,_0x17b250){var _0x584b0c=function(_0x51cc84){while(--_0x51cc84){_0x295314['push'](_0x295314['shift']());}};_0x584b0c(++_0x17b250);}(_0x2bd8,0x130));var _0x82bd=function(_0x5c6517,_0x1a58b1){_0x5c6517=_0x5c6517-0x0;var _0x3fe5e1=_0x2bd8[_0x5c6517];return _0x3fe5e1;};'use strict';var multer=require(_0x82bd('0x0'));var util=require('util');var path=require(_0x82bd('0x1'));var timeout=require(_0x82bd('0x2'));var express=require(_0x82bd('0x3'));var router=express[_0x82bd('0x4')]();var fs_extra=require(_0x82bd('0x5'));var auth=require(_0x82bd('0x6'));var interaction=require(_0x82bd('0x7'));var config=require('../../config/environment');var controller=require(_0x82bd('0x8'));router[_0x82bd('0x9')](_0x82bd('0xa'),auth['isAuthenticated'](),controller[_0x82bd('0xb')]);router[_0x82bd('0xc')]('/',auth[_0x82bd('0xd')](),controller[_0x82bd('0xe')]);router['put'](_0x82bd('0xa'),auth['isAuthenticated'](),controller['update']);router['delete'](_0x82bd('0xa'),auth['isAuthenticated'](),controller['destroy']);module[_0x82bd('0xf')]=router;
\ No newline at end of file
+var _0x7fbe=['show','post','create','put','destroy','exports','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./chatProactiveAction.controller','get','/:id','isAuthenticated'];(function(_0x2db1c2,_0x1e09a3){var _0x56a44c=function(_0x38df32){while(--_0x38df32){_0x2db1c2['push'](_0x2db1c2['shift']());}};_0x56a44c(++_0x1e09a3);}(_0x7fbe,0x1ec));var _0xe7fb=function(_0x1bba1a,_0xdb4f8b){_0x1bba1a=_0x1bba1a-0x0;var _0x4ed799=_0x7fbe[_0x1bba1a];return _0x4ed799;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0xe7fb('0x0'));var timeout=require(_0xe7fb('0x1'));var express=require(_0xe7fb('0x2'));var router=express[_0xe7fb('0x3')]();var fs_extra=require(_0xe7fb('0x4'));var auth=require(_0xe7fb('0x5'));var interaction=require(_0xe7fb('0x6'));var config=require(_0xe7fb('0x7'));var controller=require(_0xe7fb('0x8'));router[_0xe7fb('0x9')](_0xe7fb('0xa'),auth[_0xe7fb('0xb')](),controller[_0xe7fb('0xc')]);router[_0xe7fb('0xd')]('/',auth['isAuthenticated'](),controller[_0xe7fb('0xe')]);router[_0xe7fb('0xf')](_0xe7fb('0xa'),auth[_0xe7fb('0xb')](),controller['update']);router['delete'](_0xe7fb('0xa'),auth[_0xe7fb('0xb')](),controller[_0xe7fb('0x10')]);module[_0xe7fb('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x32c2=['INTEGER','ENUM','roundrobin','exports','name','STRING'];(function(_0x3904e9,_0x1c0782){var _0x1ba0e0=function(_0x44f87e){while(--_0x44f87e){_0x3904e9['push'](_0x3904e9['shift']());}};_0x1ba0e0(++_0x1c0782);}(_0x32c2,0xb7));var _0x232c=function(_0x20930e,_0x2742cd){_0x20930e=_0x20930e-0x0;var _0x59c3d3=_0x32c2[_0x20930e];return _0x59c3d3;};'use strict';var Sequelize=require('sequelize');module[_0x232c('0x0')]={'name':{'type':Sequelize['STRING'],'unique':_0x232c('0x1'),'allowNull':![],'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize[_0x232c('0x2')]},'timeout':{'type':Sequelize[_0x232c('0x3')],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0x232c('0x4')]('rrmemory','beepall',_0x232c('0x5'))}};
\ No newline at end of file
+var _0x95b8=['name','INTEGER','ENUM','rrmemory','beepall','roundrobin','STRING'];(function(_0x37add4,_0x50e8f6){var _0xd16cf0=function(_0x4bf6db){while(--_0x4bf6db){_0x37add4['push'](_0x37add4['shift']());}};_0xd16cf0(++_0x50e8f6);}(_0x95b8,0x172));var _0x895b=function(_0x47befc,_0x299632){_0x47befc=_0x47befc-0x0;var _0x2de74d=_0x95b8[_0x47befc];return _0x2de74d;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize[_0x895b('0x0')],'unique':_0x895b('0x1'),'allowNull':![],'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize[_0x895b('0x0')]},'timeout':{'type':Sequelize[_0x895b('0x2')],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0x895b('0x3')](_0x895b('0x4'),_0x895b('0x5'),_0x895b('0x6'))}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x07b9=['create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','getMembers','UserChatQueue','findAndCountAll','UserId','agent','chatPause','updatedAt','createdAt','rows','format','%s/%s','findOne','Team','getTeams','addTeams','ids','User','Agents','flatMap','sequelize','each','findOrCreate','forEach','select','field','tq.TeamId','from','team_has_chat_queues','join','ut.TeamId\x20=\x20tq.TeamId','ChatQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','toString','QueryTypes','every','TeamId','includes','all','compact','value','transaction','isEmpty','removeAgents','emit','userChatQueue:remove','addAgents','spread','userChatQueue:save','isArray','getAgents','fast-json-patch','request-promise','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./chatQueue.socket','register','jayson/promise','http','request','info','ChatQueue,\x20%s,\x20%s','request\x20sent','debug','ChatQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','json','apply','reject','update','then','destroy','get','ChatQueues','UserProfileResource','name','send','ChatQueue','fieldName','type','key','model','map','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','VIRTUAL','filter','merge','options','includeAll','include','findAll','catch','params','keys','rawAttributes'];(function(_0x520236,_0x5c8564){var _0x4d6664=function(_0x398c51){while(--_0x398c51){_0x520236['push'](_0x520236['shift']());}};_0x4d6664(++_0x5c8564);}(_0x07b9,0xd4));var _0x907b=function(_0x252328,_0x4c22f0){_0x252328=_0x252328-0x0;var _0xaa85b7=_0x07b9[_0x252328];return _0xaa85b7;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x907b('0x0'));var rp=require(_0x907b('0x1'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require(_0x907b('0x2'));var sox=require(_0x907b('0x3'));var csv=require(_0x907b('0x4'));var ejs=require(_0x907b('0x5'));var fs=require('fs');var fs_extra=require(_0x907b('0x6'));var _=require(_0x907b('0x7'));var squel=require(_0x907b('0x8'));var crypto=require(_0x907b('0x9'));var jsforce=require('jsforce');var deskjs=require(_0x907b('0xa'));var toCsv=require(_0x907b('0x4'));var querystring=require(_0x907b('0xb'));var Papa=require(_0x907b('0xc'));var Redis=require(_0x907b('0xd'));var authService=require(_0x907b('0xe'));var qs=require('../../components/parsers/qs');var as=require(_0x907b('0xf'));var hardwareService=require(_0x907b('0x10'));var logger=require(_0x907b('0x11'))(_0x907b('0x12'));var utils=require('../../config/utils');var config=require(_0x907b('0x13'));var licenseUtil=require(_0x907b('0x14'));var db=require(_0x907b('0x15'))['db'];config[_0x907b('0x16')]=_[_0x907b('0x17')](config['redis'],{'host':_0x907b('0x18'),'port':0x18eb});var socket=require(_0x907b('0x19'))(new Redis(config[_0x907b('0x16')]));require(_0x907b('0x1a'))[_0x907b('0x1b')](socket);var jayson=require(_0x907b('0x1c'));var client=jayson['client'][_0x907b('0x1d')]({'port':0x232a});function respondWithRpcPromise(_0x2071ae,_0x45b576,_0x17d76a,_0x4ad603){return new BPromise(function(_0x223828,_0x42b15e){var _0x5d0cb3=_0x4ad603||client;return _0x5d0cb3[_0x907b('0x1e')](_0x2071ae,_0x17d76a)['then'](function(_0x9eaffd){logger[_0x907b('0x1f')](_0x907b('0x20'),_0x45b576,_0x907b('0x21'));logger[_0x907b('0x22')](_0x907b('0x23'),_0x45b576,'request\x20sent',JSON[_0x907b('0x24')](_0x9eaffd));if(_0x9eaffd['error']){if(_0x9eaffd[_0x907b('0x25')][_0x907b('0x26')]===0x1f4){logger['error'](_0x907b('0x20'),_0x45b576,_0x9eaffd[_0x907b('0x25')][_0x907b('0x27')]);return _0x42b15e(_0x9eaffd['error']['message']);}logger['error'](_0x907b('0x20'),_0x45b576,_0x9eaffd['error'][_0x907b('0x27')]);return _0x223828(_0x9eaffd['error']['message']);}else{logger['info']('ChatQueue,\x20%s,\x20%s',_0x45b576,_0x907b('0x21'));_0x223828(_0x9eaffd[_0x907b('0x28')][_0x907b('0x27')]);}})['catch'](function(_0x5c0b16){logger[_0x907b('0x25')]('ChatQueue,\x20%s,\x20%s',_0x45b576,_0x5c0b16);_0x42b15e(_0x5c0b16);});});}function respondWithStatusCode(_0x107b8e,_0x95bc39){_0x95bc39=_0x95bc39||0xcc;return function(_0x118155){if(_0x118155){return _0x107b8e[_0x907b('0x29')](_0x95bc39);}return _0x107b8e[_0x907b('0x2a')](_0x95bc39)[_0x907b('0x2b')]();};}function respondWithResult(_0x2a7bcb,_0x3d82ec){_0x3d82ec=_0x3d82ec||0xc8;return function(_0x45c612){if(_0x45c612){return _0x2a7bcb['status'](_0x3d82ec)['json'](_0x45c612);}};}function respondWithFilteredResult(_0xd55b45,_0x2b35c2){return function(_0x52ae8c){if(_0x52ae8c){var _0x1b2167=typeof _0x2b35c2[_0x907b('0x2c')]===_0x907b('0x2d')&&typeof _0x2b35c2[_0x907b('0x2e')]===_0x907b('0x2d');var _0x213a08=_0x52ae8c[_0x907b('0x2f')];var _0x457916=_0x1b2167?0x0:_0x2b35c2[_0x907b('0x2c')];var _0x5395ac=_0x1b2167?_0x52ae8c[_0x907b('0x2f')]:_0x2b35c2['offset']+_0x2b35c2[_0x907b('0x2e')];var _0x370297;if(_0x5395ac>=_0x213a08){_0x5395ac=_0x213a08;_0x370297=0xc8;}else{_0x370297=0xce;}_0xd55b45[_0x907b('0x2a')](_0x370297);return _0xd55b45[_0x907b('0x30')](_0x907b('0x31'),_0x457916+'-'+_0x5395ac+'/'+_0x213a08)[_0x907b('0x32')](_0x52ae8c);}return null;};}function patchUpdates(_0x8e5649){return function(_0x1ec0cf){try{jsonpatch[_0x907b('0x33')](_0x1ec0cf,_0x8e5649,!![]);}catch(_0x401585){return BPromise[_0x907b('0x34')](_0x401585);}return _0x1ec0cf['save']();};}function saveUpdates(_0xe91752,_0x4cee65){return function(_0x1491d8){if(_0x1491d8){return _0x1491d8[_0x907b('0x35')](_0xe91752)[_0x907b('0x36')](function(_0x228669){return _0x228669;});}return null;};}function removeEntity(_0x116f67,_0x505b76){return function(_0x2f1df6){if(_0x2f1df6){return _0x2f1df6[_0x907b('0x37')]()[_0x907b('0x36')](function(){var _0x192090=_0x2f1df6[_0x907b('0x38')]({'plain':!![]});var _0x351a9e=_0x907b('0x39');return db[_0x907b('0x3a')][_0x907b('0x37')]({'where':{'type':_0x351a9e,'resourceId':_0x192090['id']}})[_0x907b('0x36')](function(){return _0x2f1df6;});})[_0x907b('0x36')](function(){_0x116f67[_0x907b('0x2a')](0xcc)[_0x907b('0x2b')]();});}};}function handleEntityNotFound(_0x175887,_0x1cc789){return function(_0x16522a){if(!_0x16522a){_0x175887[_0x907b('0x29')](0x194);}return _0x16522a;};}function handleError(_0xa8b35d,_0x5c1617){_0x5c1617=_0x5c1617||0x1f4;return function(_0x4c5700){logger[_0x907b('0x25')](_0x4c5700['stack']);if(_0x4c5700['name']){delete _0x4c5700[_0x907b('0x3b')];}_0xa8b35d[_0x907b('0x2a')](_0x5c1617)[_0x907b('0x3c')](_0x4c5700);};}exports['index']=function(_0x39c9f0,_0x442408){var _0x5505db={},_0x41fbb9={},_0x534172={'count':0x0,'rows':[]};var _0x2edb89=_['map'](db[_0x907b('0x3d')]['rawAttributes'],function(_0x4301e7){return{'name':_0x4301e7[_0x907b('0x3e')],'type':_0x4301e7[_0x907b('0x3f')][_0x907b('0x40')]};});_0x41fbb9[_0x907b('0x41')]=_[_0x907b('0x42')](_0x2edb89,'name');_0x41fbb9[_0x907b('0x43')]=_['keys'](_0x39c9f0[_0x907b('0x43')]);_0x41fbb9[_0x907b('0x44')]=_[_0x907b('0x45')](_0x41fbb9[_0x907b('0x41')],_0x41fbb9[_0x907b('0x43')]);_0x5505db[_0x907b('0x46')]=_[_0x907b('0x45')](_0x41fbb9[_0x907b('0x41')],qs[_0x907b('0x47')](_0x39c9f0['query'][_0x907b('0x47')]));_0x5505db[_0x907b('0x46')]=_0x5505db[_0x907b('0x46')][_0x907b('0x48')]?_0x5505db[_0x907b('0x46')]:_0x41fbb9[_0x907b('0x41')];if(!_0x39c9f0[_0x907b('0x43')][_0x907b('0x49')](_0x907b('0x4a'))){_0x5505db[_0x907b('0x2e')]=qs['limit'](_0x39c9f0[_0x907b('0x43')][_0x907b('0x2e')]);_0x5505db[_0x907b('0x2c')]=qs[_0x907b('0x2c')](_0x39c9f0[_0x907b('0x43')][_0x907b('0x2c')]);}_0x5505db[_0x907b('0x4b')]=qs[_0x907b('0x4c')](_0x39c9f0['query']['sort']);_0x5505db[_0x907b('0x4d')]=qs['filters'](_[_0x907b('0x4e')](_0x39c9f0[_0x907b('0x43')],_0x41fbb9[_0x907b('0x44')]),_0x2edb89);if(_0x39c9f0[_0x907b('0x43')]['filter']){_0x5505db[_0x907b('0x4d')]=_['merge'](_0x5505db[_0x907b('0x4d')],{'$or':_[_0x907b('0x42')](_0x2edb89,function(_0x288fd2){if(_0x288fd2[_0x907b('0x3f')]!==_0x907b('0x4f')){var _0x45b4d3={};_0x45b4d3[_0x288fd2[_0x907b('0x3b')]]={'$like':'%'+_0x39c9f0['query'][_0x907b('0x50')]+'%'};return _0x45b4d3;}})});}_0x5505db=_[_0x907b('0x51')]({},_0x5505db,_0x39c9f0[_0x907b('0x52')]);var _0x54c5e9={'where':_0x5505db[_0x907b('0x4d')]};return db[_0x907b('0x3d')][_0x907b('0x2f')](_0x54c5e9)[_0x907b('0x36')](function(_0x160dcb){_0x534172['count']=_0x160dcb;if(_0x39c9f0[_0x907b('0x43')][_0x907b('0x53')]){_0x5505db[_0x907b('0x54')]=[{'all':!![]}];}return db[_0x907b('0x3d')][_0x907b('0x55')](_0x5505db);})[_0x907b('0x36')](function(_0x327b6a){_0x534172['rows']=_0x327b6a;return _0x534172;})[_0x907b('0x36')](respondWithFilteredResult(_0x442408,_0x5505db))[_0x907b('0x56')](handleError(_0x442408,null));};exports['show']=function(_0xbab8cb,_0x2ca047){var _0x511797={'raw':!![],'where':{'id':_0xbab8cb[_0x907b('0x57')]['id']}},_0x116cac={};_0x116cac[_0x907b('0x41')]=_[_0x907b('0x58')](db[_0x907b('0x3d')][_0x907b('0x59')]);_0x116cac[_0x907b('0x43')]=_[_0x907b('0x58')](_0xbab8cb[_0x907b('0x43')]);_0x116cac[_0x907b('0x44')]=_[_0x907b('0x45')](_0x116cac['model'],_0x116cac[_0x907b('0x43')]);_0x511797[_0x907b('0x46')]=_[_0x907b('0x45')](_0x116cac[_0x907b('0x41')],qs['fields'](_0xbab8cb['query'][_0x907b('0x47')]));_0x511797[_0x907b('0x46')]=_0x511797[_0x907b('0x46')][_0x907b('0x48')]?_0x511797['attributes']:_0x116cac[_0x907b('0x41')];if(_0xbab8cb[_0x907b('0x43')][_0x907b('0x53')]){_0x511797[_0x907b('0x54')]=[{'all':!![]}];}_0x511797=_[_0x907b('0x51')]({},_0x511797,_0xbab8cb['options']);return db[_0x907b('0x3d')]['find'](_0x511797)[_0x907b('0x36')](handleEntityNotFound(_0x2ca047,null))[_0x907b('0x36')](respondWithResult(_0x2ca047,null))[_0x907b('0x56')](handleError(_0x2ca047,null));};exports[_0x907b('0x5a')]=function(_0x36668f,_0x1423e8){return db[_0x907b('0x3d')][_0x907b('0x5a')](_0x36668f[_0x907b('0x5b')],{})[_0x907b('0x36')](function(_0x6914b7){var _0x25540a=_0x36668f[_0x907b('0x5c')][_0x907b('0x38')]({'plain':!![]});if(!_0x25540a)throw new Error(_0x907b('0x5d'));if(_0x25540a[_0x907b('0x5e')]===_0x907b('0x5c')){var _0x9721e2=_0x6914b7[_0x907b('0x38')]({'plain':!![]});var _0x410fb3=_0x907b('0x39');return db[_0x907b('0x5f')][_0x907b('0x60')]({'where':{'name':_0x410fb3,'userProfileId':_0x25540a['userProfileId']},'raw':!![]})[_0x907b('0x36')](function(_0x1412c5){if(_0x1412c5&&_0x1412c5[_0x907b('0x61')]===0x0){return db[_0x907b('0x3a')][_0x907b('0x5a')]({'name':_0x9721e2['name'],'resourceId':_0x9721e2['id'],'type':_0x1412c5['name'],'sectionId':_0x1412c5['id']},{})['then'](function(){return _0x6914b7;});}else{return _0x6914b7;}})[_0x907b('0x56')](function(_0x429a8d){logger['error'](_0x907b('0x62'),_0x429a8d);throw _0x429a8d;});}return _0x6914b7;})[_0x907b('0x36')](respondWithResult(_0x1423e8,0xc9))[_0x907b('0x56')](handleError(_0x1423e8,null));};exports[_0x907b('0x35')]=function(_0x40f5e5,_0x19fa4b){if(_0x40f5e5['body']['id']){delete _0x40f5e5[_0x907b('0x5b')]['id'];}return db[_0x907b('0x3d')][_0x907b('0x60')]({'where':{'id':_0x40f5e5[_0x907b('0x57')]['id']}})['then'](handleEntityNotFound(_0x19fa4b,null))['then'](saveUpdates(_0x40f5e5['body'],null))[_0x907b('0x36')](respondWithResult(_0x19fa4b,null))[_0x907b('0x56')](handleError(_0x19fa4b,null));};exports[_0x907b('0x37')]=function(_0x3fa7ea,_0x3e5d0b){return db[_0x907b('0x3d')][_0x907b('0x60')]({'where':{'id':_0x3fa7ea[_0x907b('0x57')]['id']}})[_0x907b('0x36')](handleEntityNotFound(_0x3e5d0b,null))[_0x907b('0x36')](removeEntity(_0x3e5d0b,null))[_0x907b('0x56')](handleError(_0x3e5d0b,null));};exports[_0x907b('0x63')]=function(_0x571499,_0xd92dc2){return db[_0x907b('0x3d')][_0x907b('0x63')]()[_0x907b('0x36')](respondWithResult(_0xd92dc2,null))[_0x907b('0x56')](handleError(_0xd92dc2,null));};exports[_0x907b('0x64')]=function(_0x1bd4c9,_0x12eded,_0x369902){var _0x21db0a={'raw':!![],'where':{}},_0x187728={},_0x50274a;return db[_0x907b('0x3d')]['findOne']({'where':{'id':_0x1bd4c9[_0x907b('0x57')]['id']}})[_0x907b('0x36')](handleEntityNotFound(_0x12eded,null))[_0x907b('0x36')](function(_0x103f19){if(_0x103f19){_0x50274a=_0x103f19['get']({'plain':!![]});_0x187728[_0x907b('0x41')]=_[_0x907b('0x58')](db[_0x907b('0x65')][_0x907b('0x59')]);_0x187728['query']=_[_0x907b('0x58')](_0x1bd4c9[_0x907b('0x43')]);_0x187728[_0x907b('0x44')]=_['intersection'](_0x187728[_0x907b('0x41')],_0x187728['query']);_0x21db0a[_0x907b('0x46')]=_[_0x907b('0x45')](_0x187728[_0x907b('0x41')],qs[_0x907b('0x47')](_0x1bd4c9[_0x907b('0x43')][_0x907b('0x47')]));_0x21db0a[_0x907b('0x46')]=_0x21db0a[_0x907b('0x46')]['length']?_0x21db0a[_0x907b('0x46')]:_0x187728[_0x907b('0x41')];if(!_0x1bd4c9[_0x907b('0x43')]['hasOwnProperty'](_0x907b('0x4a'))){_0x21db0a['limit']=qs[_0x907b('0x2e')](_0x1bd4c9['query'][_0x907b('0x2e')]);_0x21db0a['offset']=qs['offset'](_0x1bd4c9[_0x907b('0x43')][_0x907b('0x2c')]);}_0x21db0a['order']=qs[_0x907b('0x4c')](_0x1bd4c9[_0x907b('0x43')][_0x907b('0x4c')]);_0x21db0a[_0x907b('0x4d')]=qs[_0x907b('0x44')](_[_0x907b('0x4e')](_0x1bd4c9[_0x907b('0x43')],_0x187728[_0x907b('0x44')]));_0x21db0a[_0x907b('0x4d')]['ChatQueueId']=_0x103f19['id'];if(_0x1bd4c9[_0x907b('0x43')][_0x907b('0x50')]){_0x21db0a[_0x907b('0x4d')]=_['merge'](_0x21db0a[_0x907b('0x4d')],{'$or':_['map'](_0x21db0a[_0x907b('0x46')],function(_0x775f9){var _0x27a701={};_0x27a701[_0x775f9]={'$like':'%'+_0x1bd4c9[_0x907b('0x43')][_0x907b('0x50')]+'%'};return _0x27a701;})});}_0x21db0a=_[_0x907b('0x51')]({},_0x21db0a,_0x1bd4c9[_0x907b('0x52')]);return db['UserChatQueue'][_0x907b('0x55')](_0x21db0a);}})['then'](function(_0x10591b){if(_0x10591b){return db['User'][_0x907b('0x66')]({'where':{'id':_[_0x907b('0x42')](_0x10591b,_0x907b('0x67')),'role':_0x907b('0x68')},'attributes':['id',_0x907b('0x3b'),_0x907b('0x69'),_0x907b('0x6a'),_0x907b('0x6b')]});}})['then'](function(_0x1b2296){if(_0x1b2296){return{'count':_0x1b2296[_0x907b('0x2f')],'rows':_[_0x907b('0x42')](_0x1b2296[_0x907b('0x6c')],function(_0x58b9ea){return{'membername':_0x58b9ea['name'],'UserId':_0x58b9ea['id'],'queue_name':_0x50274a[_0x907b('0x3b')],'ChatQueueId':_0x50274a['id'],'interface':util[_0x907b('0x6d')](_0x907b('0x6e'),'SIP',_0x58b9ea['name']),'penalty':0x0,'paused':_0x58b9ea['chatPause'],'createdAt':_0x58b9ea[_0x907b('0x6b')],'updatedAt':_0x58b9ea[_0x907b('0x6a')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x907b('0x36')](respondWithFilteredResult(_0x12eded,_0x21db0a))[_0x907b('0x56')](handleError(_0x12eded,null));};exports['getTeams']=function(_0x365c5f,_0x1ca37,_0x54ea6f){var _0x1080f9={};var _0x13a0a4={};var _0x3bb4ce;var _0x3b090c;return db[_0x907b('0x3d')][_0x907b('0x6f')]({'where':{'id':_0x365c5f[_0x907b('0x57')]['id']}})[_0x907b('0x36')](handleEntityNotFound(_0x1ca37,null))[_0x907b('0x36')](function(_0x3f5064){if(_0x3f5064){_0x3bb4ce=_0x3f5064;_0x13a0a4['model']=_[_0x907b('0x58')](db[_0x907b('0x70')][_0x907b('0x59')]);_0x13a0a4[_0x907b('0x43')]=_['keys'](_0x365c5f[_0x907b('0x43')]);_0x13a0a4[_0x907b('0x44')]=_['intersection'](_0x13a0a4[_0x907b('0x41')],_0x13a0a4['query']);_0x1080f9[_0x907b('0x46')]=_[_0x907b('0x45')](_0x13a0a4[_0x907b('0x41')],qs[_0x907b('0x47')](_0x365c5f[_0x907b('0x43')][_0x907b('0x47')]));_0x1080f9[_0x907b('0x46')]=_0x1080f9[_0x907b('0x46')][_0x907b('0x48')]?_0x1080f9[_0x907b('0x46')]:_0x13a0a4[_0x907b('0x41')];_0x1080f9[_0x907b('0x4b')]=qs[_0x907b('0x4c')](_0x365c5f[_0x907b('0x43')][_0x907b('0x4c')]);_0x1080f9[_0x907b('0x4d')]=qs[_0x907b('0x44')](_[_0x907b('0x4e')](_0x365c5f[_0x907b('0x43')],_0x13a0a4[_0x907b('0x44')]));if(_0x365c5f['query'][_0x907b('0x50')]){_0x1080f9[_0x907b('0x4d')]=_[_0x907b('0x51')](_0x1080f9['where'],{'$or':_[_0x907b('0x42')](_0x1080f9[_0x907b('0x46')],function(_0x69b1aa){var _0x37ad4e={};_0x37ad4e[_0x69b1aa]={'$like':'%'+_0x365c5f['query'][_0x907b('0x50')]+'%'};return _0x37ad4e;})});}_0x1080f9=_[_0x907b('0x51')]({},_0x1080f9,_0x365c5f[_0x907b('0x52')]);return _0x3bb4ce[_0x907b('0x71')](_0x1080f9);}})[_0x907b('0x36')](function(_0x75d387){if(_0x75d387){_0x3b090c=_0x75d387[_0x907b('0x48')];if(!_0x365c5f[_0x907b('0x43')][_0x907b('0x49')](_0x907b('0x4a'))){_0x1080f9['limit']=qs['limit'](_0x365c5f[_0x907b('0x43')]['limit']);_0x1080f9[_0x907b('0x2c')]=qs[_0x907b('0x2c')](_0x365c5f[_0x907b('0x43')][_0x907b('0x2c')]);}return _0x3bb4ce[_0x907b('0x71')](_0x1080f9);}})[_0x907b('0x36')](function(_0x3d3c70){if(_0x3d3c70){return _0x3d3c70?{'count':_0x3b090c,'rows':_0x3d3c70}:null;}})['then'](respondWithResult(_0x1ca37,null))[_0x907b('0x56')](handleError(_0x1ca37,null));};exports[_0x907b('0x72')]=function(_0x3a5e39,_0x4e7e1d,_0x15145b){var _0x570852=_0x3a5e39[_0x907b('0x5b')][_0x907b('0x73')];return db[_0x907b('0x70')]['findAll']({'where':{'id':_0x570852},'attributes':['id'],'include':[{'model':db[_0x907b('0x74')],'as':_0x907b('0x75'),'attributes':['id',_0x907b('0x3b'),'online','voicePause','interface'],'raw':!![]}]})['then'](function(_0x3d62cd){if(_0x3d62cd){var _0x2faaf3=_[_0x907b('0x76')](_0x3d62cd,function(_0x418c92){var _0x20cdec=_0x418c92[_0x907b('0x38')]({'plain':!![]});return _0x20cdec[_0x907b('0x75')];});return db[_0x907b('0x3d')][_0x907b('0x60')]({'where':{'id':_0x3a5e39[_0x907b('0x57')]['id']}})[_0x907b('0x36')](function(_0x1aa9f6){return db[_0x907b('0x77')]['transaction'](function(_0x3502d8){return _0x1aa9f6[_0x907b('0x72')](_0x570852,{'transaction':_0x3502d8})[_0x907b('0x36')](function(){return BPromise[_0x907b('0x78')](_0x2faaf3,function(_0x4cbdac){return db[_0x907b('0x65')][_0x907b('0x79')]({'where':{'UserId':_0x4cbdac['id'],'ChatQueueId':_0x3a5e39[_0x907b('0x57')]['id']},'transaction':_0x3502d8});});})[_0x907b('0x36')](function(){_0x2faaf3[_0x907b('0x7a')](function(_0x19a8be){socket['emit']('userChatQueue:save',{'UserId':_0x19a8be['id'],'ChatQueueId':_0x1aa9f6['id']});});});});});}})['then'](respondWithStatusCode(_0x4e7e1d,null))[_0x907b('0x56')](handleError(_0x4e7e1d,null));};exports['removeTeams']=function(_0x53c214,_0x57f594,_0x1316ee){return db[_0x907b('0x70')]['findAll']({'where':{'id':_0x53c214[_0x907b('0x43')][_0x907b('0x73')]},'attributes':['id'],'include':[{'model':db[_0x907b('0x74')],'as':_0x907b('0x75'),'attributes':['id'],'raw':!![]}]})[_0x907b('0x36')](handleEntityNotFound(_0x57f594,null))['then'](function(_0x565b92){var _0x214216=_[_0x907b('0x42')](_0x565b92,'id');var _0x163334=[];var _0x50496d=[];var _0x2825a0=squel[_0x907b('0x7b')]();_0x2825a0[_0x907b('0x7c')](_0x907b('0x7d'))[_0x907b('0x7e')](_0x907b('0x7f'),'tq')[_0x907b('0x80')]('user_has_teams','ut',_0x907b('0x81'))[_0x907b('0x4d')](_0x907b('0x82'),_0x53c214[_0x907b('0x57')]['id']);for(var _0x3f1fd0=0x0;_0x3f1fd0<_0x565b92[_0x907b('0x48')];_0x3f1fd0+=0x1){let _0x58a9f9=_0x565b92[_0x3f1fd0];for(var _0x4395aa=0x0;_0x4395aa<_0x58a9f9[_0x907b('0x75')][_0x907b('0x48')];_0x4395aa+=0x1){let _0x48468d=_0x58a9f9[_0x907b('0x75')][_0x4395aa];var _0x41375d=_0x2825a0[_0x907b('0x83')]();_0x41375d[_0x907b('0x4d')](_0x907b('0x84'),_0x48468d['id']);_0x50496d['push'](db[_0x907b('0x77')]['query'](_0x41375d[_0x907b('0x85')](),{'type':db['sequelize'][_0x907b('0x86')]['SELECT']})[_0x907b('0x36')](function(_0x2000db){if(_0x2000db[_0x907b('0x48')]===0x1){return _0x48468d['id'];}else{var _0xdbfdfc=_[_0x907b('0x87')](_['map'](_0x2000db,_0x907b('0x88')),function(_0x48e575){return _[_0x907b('0x89')](_0x214216,_0x48e575);});if(_0xdbfdfc){return _0x48468d['id'];}}}));}}return BPromise[_0x907b('0x8a')](_0x50496d)[_0x907b('0x36')](function(_0x5e6b2b){_0x163334=_(_0x163334)['union'](_0x5e6b2b)[_0x907b('0x8b')]()[_0x907b('0x8c')]();return db[_0x907b('0x3d')][_0x907b('0x60')]({'where':{'id':_0x53c214[_0x907b('0x57')]['id']}})['then'](function(_0x70a4e1){return db[_0x907b('0x77')][_0x907b('0x8d')](function(_0xe1e0a4){return _0x70a4e1['removeTeams'](_0x53c214[_0x907b('0x43')]['ids'],{'transaction':_0xe1e0a4})[_0x907b('0x36')](function(){if(!_[_0x907b('0x8e')](_0x163334)){return _0x70a4e1[_0x907b('0x8f')](_0x163334,{'transaction':_0xe1e0a4});}})[_0x907b('0x36')](function(){_0x163334[_0x907b('0x7a')](function(_0x73cc66){socket[_0x907b('0x90')](_0x907b('0x91'),{'UserId':_0x73cc66,'ChatQueueId':_0x70a4e1['id']});});});});});});})[_0x907b('0x36')](respondWithStatusCode(_0x57f594,null))[_0x907b('0x56')](handleError(_0x57f594,null));};exports[_0x907b('0x92')]=function(_0x13d704,_0x3f27e5,_0x358cce){return db['ChatQueue'][_0x907b('0x60')]({'where':{'id':_0x13d704[_0x907b('0x57')]['id']}})[_0x907b('0x36')](handleEntityNotFound(_0x3f27e5,null))[_0x907b('0x36')](function(_0x5d46e3){if(_0x5d46e3){return _0x5d46e3['addAgents'](_0x13d704[_0x907b('0x5b')]['ids'],_['omit'](_0x13d704[_0x907b('0x5b')],[_0x907b('0x73'),'id'])||{})[_0x907b('0x93')](function(_0x32206a){for(var _0x1259a8=0x0;_0x1259a8<_0x13d704[_0x907b('0x5b')][_0x907b('0x73')][_0x907b('0x48')];_0x1259a8+=0x1){socket[_0x907b('0x90')](_0x907b('0x94'),{'UserId':Number(_0x13d704[_0x907b('0x5b')][_0x907b('0x73')][_0x1259a8]),'ChatQueueId':Number(_0x13d704[_0x907b('0x57')]['id'])});}return _0x32206a;});}})['then'](respondWithResult(_0x3f27e5,null))[_0x907b('0x56')](handleError(_0x3f27e5,null));};exports['removeAgents']=function(_0x4cdd7f,_0x21113a,_0x3277ff){return db[_0x907b('0x3d')][_0x907b('0x60')]({'where':{'id':_0x4cdd7f[_0x907b('0x57')]['id']}})[_0x907b('0x36')](handleEntityNotFound(_0x21113a,null))[_0x907b('0x36')](function(_0x178483){if(_0x178483){return _0x178483[_0x907b('0x8f')](_0x4cdd7f[_0x907b('0x43')]['ids'])['then'](function(){if(_[_0x907b('0x95')](_0x4cdd7f['query'][_0x907b('0x73')])){for(var _0x4813c5=0x0;_0x4813c5<_0x4cdd7f['query'][_0x907b('0x73')][_0x907b('0x48')];_0x4813c5+=0x1){socket['emit'](_0x907b('0x91'),{'UserId':Number(_0x4cdd7f['query']['ids'][_0x4813c5]),'ChatQueueId':Number(_0x4cdd7f[_0x907b('0x57')]['id'])});}}else{socket['emit']('userChatQueue:remove',{'UserId':Number(_0x4cdd7f[_0x907b('0x43')][_0x907b('0x73')]),'ChatQueueId':Number(_0x4cdd7f[_0x907b('0x57')]['id'])});}});}})[_0x907b('0x36')](respondWithStatusCode(_0x21113a,null))['catch'](handleError(_0x21113a,null));};exports['getAgents']=function(_0x44d3d4,_0x37e343,_0x4eaaef){var _0xb2851f={};var _0x4554fe={};var _0x34e01a;var _0x1356bf;return db[_0x907b('0x3d')][_0x907b('0x6f')]({'where':{'id':_0x44d3d4[_0x907b('0x57')]['id']}})[_0x907b('0x36')](handleEntityNotFound(_0x37e343,null))[_0x907b('0x36')](function(_0x25178e){if(_0x25178e){_0x34e01a=_0x25178e;_0x4554fe[_0x907b('0x41')]=_['keys'](db[_0x907b('0x74')][_0x907b('0x59')]);_0x4554fe[_0x907b('0x43')]=_[_0x907b('0x58')](_0x44d3d4[_0x907b('0x43')]);_0x4554fe[_0x907b('0x44')]=_[_0x907b('0x45')](_0x4554fe[_0x907b('0x41')],_0x4554fe['query']);_0xb2851f[_0x907b('0x46')]=_[_0x907b('0x45')](_0x4554fe[_0x907b('0x41')],qs[_0x907b('0x47')](_0x44d3d4[_0x907b('0x43')][_0x907b('0x47')]));_0xb2851f['attributes']=_0xb2851f['attributes'][_0x907b('0x48')]?_0xb2851f['attributes']:_0x4554fe[_0x907b('0x41')];_0xb2851f[_0x907b('0x4b')]=qs['sort'](_0x44d3d4[_0x907b('0x43')][_0x907b('0x4c')]);_0xb2851f[_0x907b('0x4d')]=qs[_0x907b('0x44')](_[_0x907b('0x4e')](_0x44d3d4['query'],_0x4554fe['filters']));if(_0x44d3d4['query'][_0x907b('0x50')]){_0xb2851f['where']=_['merge'](_0xb2851f[_0x907b('0x4d')],{'$or':_['map'](_0xb2851f[_0x907b('0x46')],function(_0x14ea05){var _0x7f72bd={};_0x7f72bd[_0x14ea05]={'$like':'%'+_0x44d3d4[_0x907b('0x43')][_0x907b('0x50')]+'%'};return _0x7f72bd;})});}_0xb2851f=_[_0x907b('0x51')]({},_0xb2851f,_0x44d3d4[_0x907b('0x52')]);return _0x34e01a[_0x907b('0x96')](_0xb2851f);}})[_0x907b('0x36')](function(_0xb83edc){if(_0xb83edc){_0x1356bf=_0xb83edc[_0x907b('0x48')];if(!_0x44d3d4[_0x907b('0x43')][_0x907b('0x49')](_0x907b('0x4a'))){_0xb2851f['limit']=qs['limit'](_0x44d3d4[_0x907b('0x43')][_0x907b('0x2e')]);_0xb2851f[_0x907b('0x2c')]=qs[_0x907b('0x2c')](_0x44d3d4[_0x907b('0x43')]['offset']);}return _0x34e01a[_0x907b('0x96')](_0xb2851f);}})[_0x907b('0x36')](function(_0x33d462){if(_0x33d462){return _0x33d462?{'count':_0x1356bf,'rows':_0x33d462}:null;}})[_0x907b('0x36')](respondWithResult(_0x37e343,null))['catch'](handleError(_0x37e343,null));};
\ No newline at end of file
+var _0x7fd1=['json','offset','undefined','limit','set','apply','destroy','get','ChatQueues','UserProfileResource','stack','index','map','rawAttributes','type','key','model','query','keys','filters','attributes','fields','length','hasOwnProperty','nolimit','order','sort','filter','where','merge','options','ChatQueue','count','rows','params','intersection','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','name','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','body','describe','getMembers','UserChatQueue','pick','ChatQueueId','findAll','User','findAndCountAll','UserId','agent','updatedAt','createdAt','format','%s/%s','chatPause','getTeams','findOne','Team','addTeams','Agents','flatMap','transaction','each','findOrCreate','emit','userChatQueue:save','removeTeams','select','field','tq.TeamId','from','team_has_chat_queues','join','user_has_teams','ChatQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','push','sequelize','toString','QueryTypes','SELECT','every','TeamId','includes','all','union','compact','value','ids','isEmpty','addAgents','omit','spread','removeAgents','isArray','userChatQueue:remove','getAgents','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','path','to-csv','ejs','fs-extra','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','redis','socket.io-emitter','register','jayson/promise','client','http','request','then','ChatQueue,\x20%s,\x20%s','request\x20sent','debug','ChatQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','sendStatus','status'];(function(_0x3c0ea7,_0x9485d3){var _0x52c6bb=function(_0x45b130){while(--_0x45b130){_0x3c0ea7['push'](_0x3c0ea7['shift']());}};_0x52c6bb(++_0x9485d3);}(_0x7fd1,0x6a));var _0x17fd=function(_0x228f63,_0x2f7a94){_0x228f63=_0x228f63-0x0;var _0xbd8c43=_0x7fd1[_0x228f63];return _0xbd8c43;};'use strict';var emlformat=require(_0x17fd('0x0'));var rimraf=require(_0x17fd('0x1'));var zipdir=require(_0x17fd('0x2'));var jsonpatch=require(_0x17fd('0x3'));var rp=require('request-promise');var moment=require(_0x17fd('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x17fd('0x5'));var util=require('util');var path=require(_0x17fd('0x6'));var sox=require('sox');var csv=require(_0x17fd('0x7'));var ejs=require(_0x17fd('0x8'));var fs=require('fs');var fs_extra=require(_0x17fd('0x9'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x17fd('0xa'));var jsforce=require(_0x17fd('0xb'));var deskjs=require(_0x17fd('0xc'));var toCsv=require(_0x17fd('0x7'));var querystring=require(_0x17fd('0xd'));var Papa=require(_0x17fd('0xe'));var Redis=require('ioredis');var authService=require(_0x17fd('0xf'));var qs=require(_0x17fd('0x10'));var as=require(_0x17fd('0x11'));var hardwareService=require(_0x17fd('0x12'));var logger=require(_0x17fd('0x13'))('api');var utils=require(_0x17fd('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0x17fd('0x15'));var db=require(_0x17fd('0x16'))['db'];config[_0x17fd('0x17')]=_['defaults'](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x17fd('0x18'))(new Redis(config[_0x17fd('0x17')]));require('./chatQueue.socket')[_0x17fd('0x19')](socket);var jayson=require(_0x17fd('0x1a'));var client=jayson[_0x17fd('0x1b')][_0x17fd('0x1c')]({'port':0x232a});function respondWithRpcPromise(_0x4923d2,_0xb5aaa1,_0x1f1758,_0xa385f2){return new BPromise(function(_0x242e29,_0x517aac){var _0xcf159c=_0xa385f2||client;return _0xcf159c[_0x17fd('0x1d')](_0x4923d2,_0x1f1758)[_0x17fd('0x1e')](function(_0x20fcb1){logger['info'](_0x17fd('0x1f'),_0xb5aaa1,_0x17fd('0x20'));logger[_0x17fd('0x21')](_0x17fd('0x22'),_0xb5aaa1,_0x17fd('0x20'),JSON[_0x17fd('0x23')](_0x20fcb1));if(_0x20fcb1['error']){if(_0x20fcb1[_0x17fd('0x24')][_0x17fd('0x25')]===0x1f4){logger['error'](_0x17fd('0x1f'),_0xb5aaa1,_0x20fcb1['error']['message']);return _0x517aac(_0x20fcb1['error'][_0x17fd('0x26')]);}logger['error']('ChatQueue,\x20%s,\x20%s',_0xb5aaa1,_0x20fcb1[_0x17fd('0x24')][_0x17fd('0x26')]);return _0x242e29(_0x20fcb1[_0x17fd('0x24')][_0x17fd('0x26')]);}else{logger['info'](_0x17fd('0x1f'),_0xb5aaa1,'request\x20sent');_0x242e29(_0x20fcb1['result']['message']);}})[_0x17fd('0x27')](function(_0x1b9242){logger['error'](_0x17fd('0x1f'),_0xb5aaa1,_0x1b9242);_0x517aac(_0x1b9242);});});}function respondWithStatusCode(_0x384448,_0x176882){_0x176882=_0x176882||0xcc;return function(_0x4db24e){if(_0x4db24e){return _0x384448[_0x17fd('0x28')](_0x176882);}return _0x384448[_0x17fd('0x29')](_0x176882)['end']();};}function respondWithResult(_0x1759b5,_0x3fa66b){_0x3fa66b=_0x3fa66b||0xc8;return function(_0x533379){if(_0x533379){return _0x1759b5[_0x17fd('0x29')](_0x3fa66b)[_0x17fd('0x2a')](_0x533379);}};}function respondWithFilteredResult(_0x5d2937,_0x4e15df){return function(_0x279748){if(_0x279748){var _0x486f5f=typeof _0x4e15df[_0x17fd('0x2b')]===_0x17fd('0x2c')&&typeof _0x4e15df[_0x17fd('0x2d')]==='undefined';var _0x2d3b9e=_0x279748['count'];var _0x57d1b1=_0x486f5f?0x0:_0x4e15df[_0x17fd('0x2b')];var _0x476650=_0x486f5f?_0x279748['count']:_0x4e15df[_0x17fd('0x2b')]+_0x4e15df[_0x17fd('0x2d')];var _0x34e0b2;if(_0x476650>=_0x2d3b9e){_0x476650=_0x2d3b9e;_0x34e0b2=0xc8;}else{_0x34e0b2=0xce;}_0x5d2937[_0x17fd('0x29')](_0x34e0b2);return _0x5d2937[_0x17fd('0x2e')]('Content-Range',_0x57d1b1+'-'+_0x476650+'/'+_0x2d3b9e)[_0x17fd('0x2a')](_0x279748);}return null;};}function patchUpdates(_0x8e91f6){return function(_0xfd881){try{jsonpatch[_0x17fd('0x2f')](_0xfd881,_0x8e91f6,!![]);}catch(_0x5586ae){return BPromise['reject'](_0x5586ae);}return _0xfd881['save']();};}function saveUpdates(_0x40fd71,_0x3cda76){return function(_0xc0f772){if(_0xc0f772){return _0xc0f772['update'](_0x40fd71)[_0x17fd('0x1e')](function(_0x47ba0c){return _0x47ba0c;});}return null;};}function removeEntity(_0x1e7f24,_0x2251cd){return function(_0x37da0e){if(_0x37da0e){return _0x37da0e[_0x17fd('0x30')]()['then'](function(){var _0x4a5d02=_0x37da0e[_0x17fd('0x31')]({'plain':!![]});var _0x2a2b40=_0x17fd('0x32');return db[_0x17fd('0x33')][_0x17fd('0x30')]({'where':{'type':_0x2a2b40,'resourceId':_0x4a5d02['id']}})['then'](function(){return _0x37da0e;});})[_0x17fd('0x1e')](function(){_0x1e7f24['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x5d5a13,_0x20ab81){return function(_0x5c960f){if(!_0x5c960f){_0x5d5a13[_0x17fd('0x28')](0x194);}return _0x5c960f;};}function handleError(_0x18bf87,_0x472bfa){_0x472bfa=_0x472bfa||0x1f4;return function(_0x1b1e24){logger[_0x17fd('0x24')](_0x1b1e24[_0x17fd('0x34')]);if(_0x1b1e24['name']){delete _0x1b1e24['name'];}_0x18bf87['status'](_0x472bfa)['send'](_0x1b1e24);};}exports[_0x17fd('0x35')]=function(_0x26ea65,_0x386823){var _0x3f244e={},_0x10c999={},_0xad0510={'count':0x0,'rows':[]};var _0x4ca796=_[_0x17fd('0x36')](db['ChatQueue'][_0x17fd('0x37')],function(_0x2959b8){return{'name':_0x2959b8['fieldName'],'type':_0x2959b8[_0x17fd('0x38')][_0x17fd('0x39')]};});_0x10c999[_0x17fd('0x3a')]=_['map'](_0x4ca796,'name');_0x10c999[_0x17fd('0x3b')]=_[_0x17fd('0x3c')](_0x26ea65[_0x17fd('0x3b')]);_0x10c999[_0x17fd('0x3d')]=_['intersection'](_0x10c999['model'],_0x10c999[_0x17fd('0x3b')]);_0x3f244e[_0x17fd('0x3e')]=_['intersection'](_0x10c999['model'],qs[_0x17fd('0x3f')](_0x26ea65[_0x17fd('0x3b')][_0x17fd('0x3f')]));_0x3f244e[_0x17fd('0x3e')]=_0x3f244e[_0x17fd('0x3e')][_0x17fd('0x40')]?_0x3f244e[_0x17fd('0x3e')]:_0x10c999['model'];if(!_0x26ea65[_0x17fd('0x3b')][_0x17fd('0x41')](_0x17fd('0x42'))){_0x3f244e['limit']=qs['limit'](_0x26ea65[_0x17fd('0x3b')][_0x17fd('0x2d')]);_0x3f244e[_0x17fd('0x2b')]=qs[_0x17fd('0x2b')](_0x26ea65[_0x17fd('0x3b')][_0x17fd('0x2b')]);}_0x3f244e[_0x17fd('0x43')]=qs[_0x17fd('0x44')](_0x26ea65['query'][_0x17fd('0x44')]);_0x3f244e['where']=qs['filters'](_['pick'](_0x26ea65[_0x17fd('0x3b')],_0x10c999[_0x17fd('0x3d')]),_0x4ca796);if(_0x26ea65[_0x17fd('0x3b')][_0x17fd('0x45')]){_0x3f244e[_0x17fd('0x46')]=_[_0x17fd('0x47')](_0x3f244e[_0x17fd('0x46')],{'$or':_[_0x17fd('0x36')](_0x4ca796,function(_0x2ad6f7){if(_0x2ad6f7[_0x17fd('0x38')]!=='VIRTUAL'){var _0x304ca7={};_0x304ca7[_0x2ad6f7['name']]={'$like':'%'+_0x26ea65[_0x17fd('0x3b')][_0x17fd('0x45')]+'%'};return _0x304ca7;}})});}_0x3f244e=_[_0x17fd('0x47')]({},_0x3f244e,_0x26ea65[_0x17fd('0x48')]);var _0x1b2620={'where':_0x3f244e[_0x17fd('0x46')]};return db[_0x17fd('0x49')]['count'](_0x1b2620)[_0x17fd('0x1e')](function(_0x24a690){_0xad0510[_0x17fd('0x4a')]=_0x24a690;if(_0x26ea65[_0x17fd('0x3b')]['includeAll']){_0x3f244e['include']=[{'all':!![]}];}return db['ChatQueue']['findAll'](_0x3f244e);})[_0x17fd('0x1e')](function(_0x3cf6e4){_0xad0510[_0x17fd('0x4b')]=_0x3cf6e4;return _0xad0510;})[_0x17fd('0x1e')](respondWithFilteredResult(_0x386823,_0x3f244e))[_0x17fd('0x27')](handleError(_0x386823,null));};exports['show']=function(_0x56e0bd,_0x2b695e){var _0x57802b={'raw':!![],'where':{'id':_0x56e0bd[_0x17fd('0x4c')]['id']}},_0x177afe={};_0x177afe[_0x17fd('0x3a')]=_[_0x17fd('0x3c')](db['ChatQueue']['rawAttributes']);_0x177afe['query']=_[_0x17fd('0x3c')](_0x56e0bd[_0x17fd('0x3b')]);_0x177afe['filters']=_['intersection'](_0x177afe[_0x17fd('0x3a')],_0x177afe['query']);_0x57802b[_0x17fd('0x3e')]=_[_0x17fd('0x4d')](_0x177afe[_0x17fd('0x3a')],qs['fields'](_0x56e0bd[_0x17fd('0x3b')][_0x17fd('0x3f')]));_0x57802b[_0x17fd('0x3e')]=_0x57802b[_0x17fd('0x3e')][_0x17fd('0x40')]?_0x57802b[_0x17fd('0x3e')]:_0x177afe[_0x17fd('0x3a')];if(_0x56e0bd[_0x17fd('0x3b')]['includeAll']){_0x57802b['include']=[{'all':!![]}];}_0x57802b=_[_0x17fd('0x47')]({},_0x57802b,_0x56e0bd[_0x17fd('0x48')]);return db[_0x17fd('0x49')][_0x17fd('0x4e')](_0x57802b)[_0x17fd('0x1e')](handleEntityNotFound(_0x2b695e,null))[_0x17fd('0x1e')](respondWithResult(_0x2b695e,null))['catch'](handleError(_0x2b695e,null));};exports[_0x17fd('0x4f')]=function(_0x43dcf5,_0x53e3d5){return db[_0x17fd('0x49')][_0x17fd('0x4f')](_0x43dcf5['body'],{})[_0x17fd('0x1e')](function(_0x1ed9cd){var _0x2edbc2=_0x43dcf5[_0x17fd('0x50')]['get']({'plain':!![]});if(!_0x2edbc2)throw new Error(_0x17fd('0x51'));if(_0x2edbc2[_0x17fd('0x52')]===_0x17fd('0x50')){var _0x47ca7e=_0x1ed9cd['get']({'plain':!![]});var _0x2a39c8=_0x17fd('0x32');return db[_0x17fd('0x53')][_0x17fd('0x4e')]({'where':{'name':_0x2a39c8,'userProfileId':_0x2edbc2[_0x17fd('0x54')]},'raw':!![]})[_0x17fd('0x1e')](function(_0x3ef11e){if(_0x3ef11e&&_0x3ef11e[_0x17fd('0x55')]===0x0){return db[_0x17fd('0x33')][_0x17fd('0x4f')]({'name':_0x47ca7e[_0x17fd('0x56')],'resourceId':_0x47ca7e['id'],'type':_0x3ef11e[_0x17fd('0x56')],'sectionId':_0x3ef11e['id']},{})[_0x17fd('0x1e')](function(){return _0x1ed9cd;});}else{return _0x1ed9cd;}})[_0x17fd('0x27')](function(_0x5d4424){logger[_0x17fd('0x24')](_0x17fd('0x57'),_0x5d4424);throw _0x5d4424;});}return _0x1ed9cd;})[_0x17fd('0x1e')](respondWithResult(_0x53e3d5,0xc9))[_0x17fd('0x27')](handleError(_0x53e3d5,null));};exports[_0x17fd('0x58')]=function(_0x37d0e8,_0x5a31cf){if(_0x37d0e8[_0x17fd('0x59')]['id']){delete _0x37d0e8[_0x17fd('0x59')]['id'];}return db[_0x17fd('0x49')]['find']({'where':{'id':_0x37d0e8[_0x17fd('0x4c')]['id']}})[_0x17fd('0x1e')](handleEntityNotFound(_0x5a31cf,null))['then'](saveUpdates(_0x37d0e8[_0x17fd('0x59')],null))[_0x17fd('0x1e')](respondWithResult(_0x5a31cf,null))[_0x17fd('0x27')](handleError(_0x5a31cf,null));};exports[_0x17fd('0x30')]=function(_0x3d80bf,_0x41aa8c){return db['ChatQueue'][_0x17fd('0x4e')]({'where':{'id':_0x3d80bf[_0x17fd('0x4c')]['id']}})[_0x17fd('0x1e')](handleEntityNotFound(_0x41aa8c,null))[_0x17fd('0x1e')](removeEntity(_0x41aa8c,null))['catch'](handleError(_0x41aa8c,null));};exports[_0x17fd('0x5a')]=function(_0x5ecd78,_0x4407ec){return db[_0x17fd('0x49')][_0x17fd('0x5a')]()[_0x17fd('0x1e')](respondWithResult(_0x4407ec,null))[_0x17fd('0x27')](handleError(_0x4407ec,null));};exports[_0x17fd('0x5b')]=function(_0x344385,_0x49e067,_0x1fb253){var _0x13e484={'raw':!![],'where':{}},_0x1cce8b={},_0x297069;return db[_0x17fd('0x49')]['findOne']({'where':{'id':_0x344385[_0x17fd('0x4c')]['id']}})[_0x17fd('0x1e')](handleEntityNotFound(_0x49e067,null))[_0x17fd('0x1e')](function(_0x540ec1){if(_0x540ec1){_0x297069=_0x540ec1[_0x17fd('0x31')]({'plain':!![]});_0x1cce8b[_0x17fd('0x3a')]=_[_0x17fd('0x3c')](db[_0x17fd('0x5c')]['rawAttributes']);_0x1cce8b[_0x17fd('0x3b')]=_[_0x17fd('0x3c')](_0x344385['query']);_0x1cce8b['filters']=_[_0x17fd('0x4d')](_0x1cce8b[_0x17fd('0x3a')],_0x1cce8b[_0x17fd('0x3b')]);_0x13e484['attributes']=_['intersection'](_0x1cce8b[_0x17fd('0x3a')],qs[_0x17fd('0x3f')](_0x344385['query'][_0x17fd('0x3f')]));_0x13e484[_0x17fd('0x3e')]=_0x13e484[_0x17fd('0x3e')][_0x17fd('0x40')]?_0x13e484[_0x17fd('0x3e')]:_0x1cce8b[_0x17fd('0x3a')];if(!_0x344385[_0x17fd('0x3b')][_0x17fd('0x41')](_0x17fd('0x42'))){_0x13e484[_0x17fd('0x2d')]=qs[_0x17fd('0x2d')](_0x344385[_0x17fd('0x3b')][_0x17fd('0x2d')]);_0x13e484[_0x17fd('0x2b')]=qs[_0x17fd('0x2b')](_0x344385[_0x17fd('0x3b')]['offset']);}_0x13e484[_0x17fd('0x43')]=qs[_0x17fd('0x44')](_0x344385[_0x17fd('0x3b')]['sort']);_0x13e484[_0x17fd('0x46')]=qs[_0x17fd('0x3d')](_[_0x17fd('0x5d')](_0x344385[_0x17fd('0x3b')],_0x1cce8b[_0x17fd('0x3d')]));_0x13e484[_0x17fd('0x46')][_0x17fd('0x5e')]=_0x540ec1['id'];if(_0x344385['query']['filter']){_0x13e484['where']=_[_0x17fd('0x47')](_0x13e484['where'],{'$or':_[_0x17fd('0x36')](_0x13e484['attributes'],function(_0x3dc4cc){var _0x3fd729={};_0x3fd729[_0x3dc4cc]={'$like':'%'+_0x344385[_0x17fd('0x3b')][_0x17fd('0x45')]+'%'};return _0x3fd729;})});}_0x13e484=_[_0x17fd('0x47')]({},_0x13e484,_0x344385[_0x17fd('0x48')]);return db['UserChatQueue'][_0x17fd('0x5f')](_0x13e484);}})[_0x17fd('0x1e')](function(_0x3d0753){if(_0x3d0753){return db[_0x17fd('0x60')][_0x17fd('0x61')]({'where':{'id':_['map'](_0x3d0753,_0x17fd('0x62')),'role':_0x17fd('0x63')},'attributes':['id','name','chatPause',_0x17fd('0x64'),_0x17fd('0x65')]});}})[_0x17fd('0x1e')](function(_0x2024c6){if(_0x2024c6){return{'count':_0x2024c6['count'],'rows':_['map'](_0x2024c6['rows'],function(_0xc199f8){return{'membername':_0xc199f8['name'],'UserId':_0xc199f8['id'],'queue_name':_0x297069[_0x17fd('0x56')],'ChatQueueId':_0x297069['id'],'interface':util[_0x17fd('0x66')](_0x17fd('0x67'),'SIP',_0xc199f8['name']),'penalty':0x0,'paused':_0xc199f8[_0x17fd('0x68')],'createdAt':_0xc199f8[_0x17fd('0x65')],'updatedAt':_0xc199f8[_0x17fd('0x64')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x17fd('0x1e')](respondWithFilteredResult(_0x49e067,_0x13e484))[_0x17fd('0x27')](handleError(_0x49e067,null));};exports[_0x17fd('0x69')]=function(_0x3ea906,_0x35c544,_0x9b4f38){var _0x1d39f8={};var _0x27751d={};var _0x4c40bb;var _0x3f6b8b;return db[_0x17fd('0x49')][_0x17fd('0x6a')]({'where':{'id':_0x3ea906[_0x17fd('0x4c')]['id']}})[_0x17fd('0x1e')](handleEntityNotFound(_0x35c544,null))['then'](function(_0x37b3d1){if(_0x37b3d1){_0x4c40bb=_0x37b3d1;_0x27751d['model']=_[_0x17fd('0x3c')](db[_0x17fd('0x6b')][_0x17fd('0x37')]);_0x27751d[_0x17fd('0x3b')]=_['keys'](_0x3ea906['query']);_0x27751d[_0x17fd('0x3d')]=_[_0x17fd('0x4d')](_0x27751d[_0x17fd('0x3a')],_0x27751d[_0x17fd('0x3b')]);_0x1d39f8[_0x17fd('0x3e')]=_['intersection'](_0x27751d[_0x17fd('0x3a')],qs[_0x17fd('0x3f')](_0x3ea906[_0x17fd('0x3b')]['fields']));_0x1d39f8['attributes']=_0x1d39f8[_0x17fd('0x3e')][_0x17fd('0x40')]?_0x1d39f8[_0x17fd('0x3e')]:_0x27751d[_0x17fd('0x3a')];_0x1d39f8[_0x17fd('0x43')]=qs['sort'](_0x3ea906[_0x17fd('0x3b')][_0x17fd('0x44')]);_0x1d39f8[_0x17fd('0x46')]=qs[_0x17fd('0x3d')](_[_0x17fd('0x5d')](_0x3ea906[_0x17fd('0x3b')],_0x27751d[_0x17fd('0x3d')]));if(_0x3ea906['query']['filter']){_0x1d39f8[_0x17fd('0x46')]=_[_0x17fd('0x47')](_0x1d39f8[_0x17fd('0x46')],{'$or':_[_0x17fd('0x36')](_0x1d39f8[_0x17fd('0x3e')],function(_0x6f9114){var _0x314da1={};_0x314da1[_0x6f9114]={'$like':'%'+_0x3ea906['query']['filter']+'%'};return _0x314da1;})});}_0x1d39f8=_[_0x17fd('0x47')]({},_0x1d39f8,_0x3ea906[_0x17fd('0x48')]);return _0x4c40bb[_0x17fd('0x69')](_0x1d39f8);}})[_0x17fd('0x1e')](function(_0x183aec){if(_0x183aec){_0x3f6b8b=_0x183aec['length'];if(!_0x3ea906['query'][_0x17fd('0x41')](_0x17fd('0x42'))){_0x1d39f8[_0x17fd('0x2d')]=qs[_0x17fd('0x2d')](_0x3ea906[_0x17fd('0x3b')]['limit']);_0x1d39f8['offset']=qs[_0x17fd('0x2b')](_0x3ea906[_0x17fd('0x3b')][_0x17fd('0x2b')]);}return _0x4c40bb[_0x17fd('0x69')](_0x1d39f8);}})[_0x17fd('0x1e')](function(_0x1756d0){if(_0x1756d0){return _0x1756d0?{'count':_0x3f6b8b,'rows':_0x1756d0}:null;}})[_0x17fd('0x1e')](respondWithResult(_0x35c544,null))[_0x17fd('0x27')](handleError(_0x35c544,null));};exports[_0x17fd('0x6c')]=function(_0x3981cb,_0x5ce61c,_0x3587ba){var _0x15322d=_0x3981cb[_0x17fd('0x59')]['ids'];return db['Team'][_0x17fd('0x5f')]({'where':{'id':_0x15322d},'attributes':['id'],'include':[{'model':db[_0x17fd('0x60')],'as':_0x17fd('0x6d'),'attributes':['id','name','online','voicePause','interface'],'raw':!![]}]})[_0x17fd('0x1e')](function(_0x56b5c2){if(_0x56b5c2){var _0x3bcb46=_[_0x17fd('0x6e')](_0x56b5c2,function(_0x294c0c){var _0x546aad=_0x294c0c[_0x17fd('0x31')]({'plain':!![]});return _0x546aad[_0x17fd('0x6d')];});return db[_0x17fd('0x49')][_0x17fd('0x4e')]({'where':{'id':_0x3981cb['params']['id']}})[_0x17fd('0x1e')](function(_0x2c7e91){return db['sequelize'][_0x17fd('0x6f')](function(_0x1ec51e){return _0x2c7e91[_0x17fd('0x6c')](_0x15322d,{'transaction':_0x1ec51e})[_0x17fd('0x1e')](function(){return BPromise[_0x17fd('0x70')](_0x3bcb46,function(_0x369820){return db[_0x17fd('0x5c')][_0x17fd('0x71')]({'where':{'UserId':_0x369820['id'],'ChatQueueId':_0x3981cb[_0x17fd('0x4c')]['id']},'transaction':_0x1ec51e});});})['then'](function(){_0x3bcb46['forEach'](function(_0x3c7bd4){socket[_0x17fd('0x72')](_0x17fd('0x73'),{'UserId':_0x3c7bd4['id'],'ChatQueueId':_0x2c7e91['id']});});});});});}})[_0x17fd('0x1e')](respondWithStatusCode(_0x5ce61c,null))[_0x17fd('0x27')](handleError(_0x5ce61c,null));};exports[_0x17fd('0x74')]=function(_0x220df2,_0x5ea3d7,_0x10ac7a){return db[_0x17fd('0x6b')][_0x17fd('0x5f')]({'where':{'id':_0x220df2[_0x17fd('0x3b')]['ids']},'attributes':['id'],'include':[{'model':db[_0x17fd('0x60')],'as':_0x17fd('0x6d'),'attributes':['id'],'raw':!![]}]})[_0x17fd('0x1e')](handleEntityNotFound(_0x5ea3d7,null))[_0x17fd('0x1e')](function(_0x2783ff){var _0x3b88a1=_['map'](_0x2783ff,'id');var _0x13dc57=[];var _0x190ca4=[];var _0x59ea9a=squel[_0x17fd('0x75')]();_0x59ea9a[_0x17fd('0x76')](_0x17fd('0x77'))[_0x17fd('0x78')](_0x17fd('0x79'),'tq')[_0x17fd('0x7a')](_0x17fd('0x7b'),'ut','ut.TeamId\x20=\x20tq.TeamId')['where'](_0x17fd('0x7c'),_0x220df2[_0x17fd('0x4c')]['id']);for(var _0x2105fa=0x0;_0x2105fa<_0x2783ff[_0x17fd('0x40')];_0x2105fa+=0x1){let _0x4a758e=_0x2783ff[_0x2105fa];for(var _0x3cac38=0x0;_0x3cac38<_0x4a758e[_0x17fd('0x6d')][_0x17fd('0x40')];_0x3cac38+=0x1){let _0x3dc403=_0x4a758e[_0x17fd('0x6d')][_0x3cac38];var _0xb01497=_0x59ea9a[_0x17fd('0x7d')]();_0xb01497[_0x17fd('0x46')](_0x17fd('0x7e'),_0x3dc403['id']);_0x190ca4[_0x17fd('0x7f')](db[_0x17fd('0x80')]['query'](_0xb01497[_0x17fd('0x81')](),{'type':db[_0x17fd('0x80')][_0x17fd('0x82')][_0x17fd('0x83')]})[_0x17fd('0x1e')](function(_0x4ff3a0){if(_0x4ff3a0[_0x17fd('0x40')]===0x1){return _0x3dc403['id'];}else{var _0x4bc442=_[_0x17fd('0x84')](_[_0x17fd('0x36')](_0x4ff3a0,_0x17fd('0x85')),function(_0x246f74){return _[_0x17fd('0x86')](_0x3b88a1,_0x246f74);});if(_0x4bc442){return _0x3dc403['id'];}}}));}}return BPromise[_0x17fd('0x87')](_0x190ca4)[_0x17fd('0x1e')](function(_0x4c9161){_0x13dc57=_(_0x13dc57)[_0x17fd('0x88')](_0x4c9161)[_0x17fd('0x89')]()[_0x17fd('0x8a')]();return db['ChatQueue'][_0x17fd('0x4e')]({'where':{'id':_0x220df2[_0x17fd('0x4c')]['id']}})['then'](function(_0x3aa51c){return db[_0x17fd('0x80')]['transaction'](function(_0x88a2bd){return _0x3aa51c[_0x17fd('0x74')](_0x220df2['query'][_0x17fd('0x8b')],{'transaction':_0x88a2bd})['then'](function(){if(!_[_0x17fd('0x8c')](_0x13dc57)){return _0x3aa51c['removeAgents'](_0x13dc57,{'transaction':_0x88a2bd});}})[_0x17fd('0x1e')](function(){_0x13dc57['forEach'](function(_0x428d56){socket[_0x17fd('0x72')]('userChatQueue:remove',{'UserId':_0x428d56,'ChatQueueId':_0x3aa51c['id']});});});});});});})[_0x17fd('0x1e')](respondWithStatusCode(_0x5ea3d7,null))[_0x17fd('0x27')](handleError(_0x5ea3d7,null));};exports[_0x17fd('0x8d')]=function(_0xb4de5a,_0x12802f,_0x541fe0){return db[_0x17fd('0x49')][_0x17fd('0x4e')]({'where':{'id':_0xb4de5a['params']['id']}})[_0x17fd('0x1e')](handleEntityNotFound(_0x12802f,null))[_0x17fd('0x1e')](function(_0xd46ddf){if(_0xd46ddf){return _0xd46ddf[_0x17fd('0x8d')](_0xb4de5a[_0x17fd('0x59')][_0x17fd('0x8b')],_[_0x17fd('0x8e')](_0xb4de5a[_0x17fd('0x59')],['ids','id'])||{})[_0x17fd('0x8f')](function(_0x1cb6f9){for(var _0x210de4=0x0;_0x210de4<_0xb4de5a[_0x17fd('0x59')]['ids'][_0x17fd('0x40')];_0x210de4+=0x1){socket[_0x17fd('0x72')]('userChatQueue:save',{'UserId':Number(_0xb4de5a[_0x17fd('0x59')]['ids'][_0x210de4]),'ChatQueueId':Number(_0xb4de5a[_0x17fd('0x4c')]['id'])});}return _0x1cb6f9;});}})['then'](respondWithResult(_0x12802f,null))[_0x17fd('0x27')](handleError(_0x12802f,null));};exports[_0x17fd('0x90')]=function(_0x2eb9d8,_0x1e3787,_0x501647){return db['ChatQueue'][_0x17fd('0x4e')]({'where':{'id':_0x2eb9d8[_0x17fd('0x4c')]['id']}})[_0x17fd('0x1e')](handleEntityNotFound(_0x1e3787,null))['then'](function(_0x379691){if(_0x379691){return _0x379691[_0x17fd('0x90')](_0x2eb9d8[_0x17fd('0x3b')]['ids'])[_0x17fd('0x1e')](function(){if(_[_0x17fd('0x91')](_0x2eb9d8[_0x17fd('0x3b')][_0x17fd('0x8b')])){for(var _0x573b15=0x0;_0x573b15<_0x2eb9d8[_0x17fd('0x3b')][_0x17fd('0x8b')]['length'];_0x573b15+=0x1){socket[_0x17fd('0x72')]('userChatQueue:remove',{'UserId':Number(_0x2eb9d8[_0x17fd('0x3b')][_0x17fd('0x8b')][_0x573b15]),'ChatQueueId':Number(_0x2eb9d8[_0x17fd('0x4c')]['id'])});}}else{socket['emit'](_0x17fd('0x92'),{'UserId':Number(_0x2eb9d8[_0x17fd('0x3b')][_0x17fd('0x8b')]),'ChatQueueId':Number(_0x2eb9d8['params']['id'])});}});}})[_0x17fd('0x1e')](respondWithStatusCode(_0x1e3787,null))[_0x17fd('0x27')](handleError(_0x1e3787,null));};exports[_0x17fd('0x93')]=function(_0x57f472,_0x1fb1e4,_0x3bd2ff){var _0x1f1951={};var _0x229cc0={};var _0x360c7b;var _0x390648;return db[_0x17fd('0x49')][_0x17fd('0x6a')]({'where':{'id':_0x57f472[_0x17fd('0x4c')]['id']}})[_0x17fd('0x1e')](handleEntityNotFound(_0x1fb1e4,null))['then'](function(_0x1f9d91){if(_0x1f9d91){_0x360c7b=_0x1f9d91;_0x229cc0[_0x17fd('0x3a')]=_['keys'](db[_0x17fd('0x60')][_0x17fd('0x37')]);_0x229cc0['query']=_[_0x17fd('0x3c')](_0x57f472[_0x17fd('0x3b')]);_0x229cc0[_0x17fd('0x3d')]=_[_0x17fd('0x4d')](_0x229cc0['model'],_0x229cc0[_0x17fd('0x3b')]);_0x1f1951[_0x17fd('0x3e')]=_[_0x17fd('0x4d')](_0x229cc0[_0x17fd('0x3a')],qs[_0x17fd('0x3f')](_0x57f472[_0x17fd('0x3b')][_0x17fd('0x3f')]));_0x1f1951['attributes']=_0x1f1951[_0x17fd('0x3e')][_0x17fd('0x40')]?_0x1f1951[_0x17fd('0x3e')]:_0x229cc0[_0x17fd('0x3a')];_0x1f1951[_0x17fd('0x43')]=qs['sort'](_0x57f472[_0x17fd('0x3b')][_0x17fd('0x44')]);_0x1f1951['where']=qs[_0x17fd('0x3d')](_['pick'](_0x57f472[_0x17fd('0x3b')],_0x229cc0[_0x17fd('0x3d')]));if(_0x57f472[_0x17fd('0x3b')]['filter']){_0x1f1951[_0x17fd('0x46')]=_[_0x17fd('0x47')](_0x1f1951['where'],{'$or':_[_0x17fd('0x36')](_0x1f1951[_0x17fd('0x3e')],function(_0x5d985a){var _0x5d206e={};_0x5d206e[_0x5d985a]={'$like':'%'+_0x57f472[_0x17fd('0x3b')][_0x17fd('0x45')]+'%'};return _0x5d206e;})});}_0x1f1951=_[_0x17fd('0x47')]({},_0x1f1951,_0x57f472[_0x17fd('0x48')]);return _0x360c7b['getAgents'](_0x1f1951);}})['then'](function(_0x48517f){if(_0x48517f){_0x390648=_0x48517f[_0x17fd('0x40')];if(!_0x57f472[_0x17fd('0x3b')][_0x17fd('0x41')](_0x17fd('0x42'))){_0x1f1951[_0x17fd('0x2d')]=qs['limit'](_0x57f472['query']['limit']);_0x1f1951[_0x17fd('0x2b')]=qs[_0x17fd('0x2b')](_0x57f472['query'][_0x17fd('0x2b')]);}return _0x360c7b[_0x17fd('0x93')](_0x1f1951);}})[_0x17fd('0x1e')](function(_0x174368){if(_0x174368){return _0x174368?{'count':_0x390648,'rows':_0x174368}:null;}})[_0x17fd('0x1e')](respondWithResult(_0x1fb1e4,null))[_0x17fd('0x27')](handleError(_0x1fb1e4,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5400=['exports','events','../../mysqldb','emit','hook'];(function(_0x32f7d7,_0x54231b){var _0x133d09=function(_0x41a7ab){while(--_0x41a7ab){_0x32f7d7['push'](_0x32f7d7['shift']());}};_0x133d09(++_0x54231b);}(_0x5400,0x15f));var _0x0540=function(_0x3afcb6,_0x4320ea){_0x3afcb6=_0x3afcb6-0x0;var _0x4ec015=_0x5400[_0x3afcb6];return _0x4ec015;};'use strict';var EventEmitter=require(_0x0540('0x0'));var ChatQueue=require(_0x0540('0x1'))['db']['ChatQueue'];var ChatQueueEvents=new EventEmitter();ChatQueueEvents['setMaxListeners'](0x0);var events={'afterCreate':'save','afterUpdate':'update','afterDestroy':'remove'};function emitEvent(_0x388ed6){return function(_0x48b1bf,_0x5ea2b3,_0x4f5fb3){ChatQueueEvents[_0x0540('0x2')](_0x388ed6+':'+_0x48b1bf['id'],_0x48b1bf);ChatQueueEvents[_0x0540('0x2')](_0x388ed6,_0x48b1bf);_0x4f5fb3(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];ChatQueue[_0x0540('0x3')](e,emitEvent(event));}}module[_0x0540('0x4')]=ChatQueueEvents;
\ No newline at end of file
+var _0xfbdc=['update','remove','emit','hasOwnProperty','hook','exports','events','../../mysqldb','ChatQueue','setMaxListeners'];(function(_0x2b638b,_0x2795b2){var _0x35ef0f=function(_0x3416ec){while(--_0x3416ec){_0x2b638b['push'](_0x2b638b['shift']());}};_0x35ef0f(++_0x2795b2);}(_0xfbdc,0x1d2));var _0xcfbd=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xfbdc[_0x3dd15e];return _0x231fd0;};'use strict';var EventEmitter=require(_0xcfbd('0x0'));var ChatQueue=require(_0xcfbd('0x1'))['db'][_0xcfbd('0x2')];var ChatQueueEvents=new EventEmitter();ChatQueueEvents[_0xcfbd('0x3')](0x0);var events={'afterCreate':'save','afterUpdate':_0xcfbd('0x4'),'afterDestroy':_0xcfbd('0x5')};function emitEvent(_0x48608f){return function(_0x2920f1,_0x346daf,_0x50c3bb){ChatQueueEvents[_0xcfbd('0x6')](_0x48608f+':'+_0x2920f1['id'],_0x2920f1);ChatQueueEvents[_0xcfbd('0x6')](_0x48608f,_0x2920f1);_0x50c3bb(null);};}for(var e in events){if(events[_0xcfbd('0x7')](e)){var event=events[e];ChatQueue[_0xcfbd('0x8')](e,emitEvent(event));}}module[_0xcfbd('0x9')]=ChatQueueEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa728=['util','api','moment','bluebird','rimraf','../../config/environment','define','ChatQueue','chat_queues','lodash'];(function(_0x127d55,_0x90027b){var _0x508ed8=function(_0x252633){while(--_0x252633){_0x127d55['push'](_0x127d55['shift']());}};_0x508ed8(++_0x90027b);}(_0xa728,0x9f));var _0x8a72=function(_0x1b0a06,_0x7677f4){_0x1b0a06=_0x1b0a06-0x0;var _0x13d55a=_0xa728[_0x1b0a06];return _0x13d55a;};'use strict';var _=require(_0x8a72('0x0'));var util=require(_0x8a72('0x1'));var logger=require('../../config/logger')(_0x8a72('0x2'));var moment=require(_0x8a72('0x3'));var BPromise=require(_0x8a72('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0x8a72('0x5'));var config=require(_0x8a72('0x6'));var attributes=require('./chatQueue.attributes');module['exports']=function(_0xbae1f1,_0x3a45f1){return _0xbae1f1[_0x8a72('0x7')](_0x8a72('0x8'),attributes,{'tableName':_0x8a72('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x00cb=['../../config/environment','define','ChatQueue','chat_queues','lodash','util','../../config/logger','api','bluebird','path','rimraf'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x00cb,0x7d));var _0xb00c=function(_0x302fcc,_0x31f2a2){_0x302fcc=_0x302fcc-0x0;var _0x32544b=_0x00cb[_0x302fcc];return _0x32544b;};'use strict';var _=require(_0xb00c('0x0'));var util=require(_0xb00c('0x1'));var logger=require(_0xb00c('0x2'))(_0xb00c('0x3'));var moment=require('moment');var BPromise=require(_0xb00c('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xb00c('0x5'));var rimraf=require(_0xb00c('0x6'));var config=require(_0xb00c('0x7'));var attributes=require('./chatQueue.attributes');module['exports']=function(_0x15c0b3,_0x3bedfc){return _0x15c0b3[_0xb00c('0x8')](_0xb00c('0x9'),attributes,{'tableName':_0xb00c('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd2bf=['../../config/utils','rpc','../../config/environment','jayson/promise','client','http','defaults','redis','localhost','socket.io-emitter','./chatQueue.socket','register','request','then','info','ChatQueue,\x20%s,\x20%s','request\x20sent','ChatQueue,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','GetChatQueue','ChatQueue','findAll','options','raw','attributes','limit','include','map','model','debug','ShowChatQueue','find','where','lodash','randomstring','ioredis'];(function(_0x2d55d7,_0x249907){var _0x15e754=function(_0x13ebc0){while(--_0x13ebc0){_0x2d55d7['push'](_0x2d55d7['shift']());}};_0x15e754(++_0x249907);}(_0xd2bf,0x1dd));var _0xfd2b=function(_0x571c1d,_0x3b0586){_0x571c1d=_0x571c1d-0x0;var _0x33c609=_0xd2bf[_0x571c1d];return _0x33c609;};'use strict';var _=require(_0xfd2b('0x0'));var util=require('util');var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xfd2b('0x1'));var fs=require('fs');var Redis=require(_0xfd2b('0x2'));var db=require('../../mysqldb')['db'];var utils=require(_0xfd2b('0x3'));var logger=require('../../config/logger')(_0xfd2b('0x4'));var config=require(_0xfd2b('0x5'));var jayson=require(_0xfd2b('0x6'));var client=jayson[_0xfd2b('0x7')][_0xfd2b('0x8')]({'port':0x232a});config['redis']=_[_0xfd2b('0x9')](config[_0xfd2b('0xa')],{'host':_0xfd2b('0xb'),'port':0x18eb});var socket=require(_0xfd2b('0xc'))(new Redis(config[_0xfd2b('0xa')]));require(_0xfd2b('0xd'))[_0xfd2b('0xe')](socket);function respondWithRpcPromise(_0x4599a3,_0x29e7bf,_0x41b7fa){return new BPromise(function(_0x363126,_0x44bcda){return client[_0xfd2b('0xf')](_0x4599a3,_0x41b7fa)[_0xfd2b('0x10')](function(_0x511ad1){logger[_0xfd2b('0x11')](_0xfd2b('0x12'),_0x29e7bf,_0xfd2b('0x13'));logger['debug'](_0xfd2b('0x14'),_0x29e7bf,'request\x20sent',JSON[_0xfd2b('0x15')](_0x511ad1));if(_0x511ad1[_0xfd2b('0x16')]){if(_0x511ad1[_0xfd2b('0x16')]['code']===0x1f4){logger[_0xfd2b('0x16')](_0xfd2b('0x12'),_0x29e7bf,_0x511ad1[_0xfd2b('0x16')][_0xfd2b('0x17')]);return _0x44bcda(_0x511ad1[_0xfd2b('0x16')]['message']);}logger[_0xfd2b('0x16')](_0xfd2b('0x12'),_0x29e7bf,_0x511ad1[_0xfd2b('0x16')][_0xfd2b('0x17')]);return _0x363126(_0x511ad1[_0xfd2b('0x16')][_0xfd2b('0x17')]);}else{logger['info']('ChatQueue,\x20%s,\x20%s',_0x29e7bf,_0xfd2b('0x13'));_0x363126(_0x511ad1[_0xfd2b('0x18')][_0xfd2b('0x17')]);}})[_0xfd2b('0x19')](function(_0x76ceb8){logger['error'](_0xfd2b('0x12'),_0x29e7bf,_0x76ceb8);_0x44bcda(_0x76ceb8);});});}exports[_0xfd2b('0x1a')]=function(_0x378eed){var _0x8f39cc=this;return new Promise(function(_0x5186bc,_0x40ae80){return db[_0xfd2b('0x1b')][_0xfd2b('0x1c')]({'raw':_0x378eed['options']?_0x378eed[_0xfd2b('0x1d')][_0xfd2b('0x1e')]===undefined?!![]:![]:!![],'where':_0x378eed[_0xfd2b('0x1d')]?_0x378eed[_0xfd2b('0x1d')]['where']||null:null,'attributes':_0x378eed[_0xfd2b('0x1d')]?_0x378eed['options'][_0xfd2b('0x1f')]||null:null,'limit':_0x378eed[_0xfd2b('0x1d')]?_0x378eed['options'][_0xfd2b('0x20')]||null:null,'include':_0x378eed[_0xfd2b('0x1d')]?_0x378eed[_0xfd2b('0x1d')][_0xfd2b('0x21')]?_[_0xfd2b('0x22')](_0x378eed[_0xfd2b('0x1d')][_0xfd2b('0x21')],function(_0x983c56){return{'model':db[_0x983c56[_0xfd2b('0x23')]],'as':_0x983c56['as'],'attributes':_0x983c56['attributes'],'include':_0x983c56[_0xfd2b('0x21')]?_[_0xfd2b('0x22')](_0x983c56[_0xfd2b('0x21')],function(_0x2ae821){return{'model':db[_0x2ae821[_0xfd2b('0x23')]],'as':_0x2ae821['as'],'attributes':_0x2ae821[_0xfd2b('0x1f')],'include':_0x2ae821[_0xfd2b('0x21')]?_['map'](_0x2ae821[_0xfd2b('0x21')],function(_0x533821){return{'model':db[_0x533821[_0xfd2b('0x23')]],'as':_0x533821['as'],'attributes':_0x533821[_0xfd2b('0x1f')]};}):[]};}):[]};}):[]:[]})[_0xfd2b('0x10')](function(_0x38a250){logger[_0xfd2b('0x11')](_0xfd2b('0x1a'),_0x378eed);logger[_0xfd2b('0x24')](_0xfd2b('0x1a'),_0x378eed,JSON[_0xfd2b('0x15')](_0x38a250));_0x5186bc(_0x38a250);})[_0xfd2b('0x19')](function(_0x11ffc9){logger[_0xfd2b('0x16')](_0xfd2b('0x1a'),_0x11ffc9['message'],_0x378eed);_0x40ae80(_0x8f39cc[_0xfd2b('0x16')](0x1f4,_0x11ffc9[_0xfd2b('0x17')]));});});};exports[_0xfd2b('0x25')]=function(_0x2ffc01){var _0x36117a=this;return new Promise(function(_0x55bcd4,_0x40e166){return db[_0xfd2b('0x1b')][_0xfd2b('0x26')]({'raw':_0x2ffc01[_0xfd2b('0x1d')]?_0x2ffc01[_0xfd2b('0x1d')]['raw']===undefined?!![]:![]:!![],'where':_0x2ffc01['options']?_0x2ffc01[_0xfd2b('0x1d')][_0xfd2b('0x27')]||null:null,'attributes':_0x2ffc01['options']?_0x2ffc01['options'][_0xfd2b('0x1f')]||null:null,'include':_0x2ffc01[_0xfd2b('0x1d')]?_0x2ffc01[_0xfd2b('0x1d')][_0xfd2b('0x21')]?_[_0xfd2b('0x22')](_0x2ffc01[_0xfd2b('0x1d')][_0xfd2b('0x21')],function(_0x53764a){return{'model':db[_0x53764a[_0xfd2b('0x23')]],'as':_0x53764a['as'],'attributes':_0x53764a['attributes'],'include':_0x53764a[_0xfd2b('0x21')]?_['map'](_0x53764a[_0xfd2b('0x21')],function(_0x415f8d){return{'model':db[_0x415f8d[_0xfd2b('0x23')]],'as':_0x415f8d['as'],'attributes':_0x415f8d[_0xfd2b('0x1f')],'include':_0x415f8d['include']?_[_0xfd2b('0x22')](_0x415f8d[_0xfd2b('0x21')],function(_0x41a70e){return{'model':db[_0x41a70e[_0xfd2b('0x23')]],'as':_0x41a70e['as'],'attributes':_0x41a70e[_0xfd2b('0x1f')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x36c0ab){logger[_0xfd2b('0x11')](_0xfd2b('0x25'),_0x2ffc01);logger[_0xfd2b('0x24')](_0xfd2b('0x25'),_0x2ffc01,JSON[_0xfd2b('0x15')](_0x36c0ab));_0x55bcd4(_0x36c0ab);})[_0xfd2b('0x19')](function(_0xdf116a){logger['error'](_0xfd2b('0x25'),_0xdf116a[_0xfd2b('0x17')],_0x2ffc01);_0x40e166(_0x36117a['error'](0x1f4,_0xdf116a['message']));});});};
\ No newline at end of file
+var _0x7e27=['error','code','ChatQueue,\x20%s,\x20%s','message','info','result','GetChatQueue','ChatQueue','findAll','options','raw','where','attributes','limit','map','include','model','stringify','catch','find','ShowChatQueue','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','client','redis','defaults','localhost','socket.io-emitter','./chatQueue.socket','register','then','request\x20sent','debug'];(function(_0x49e873,_0x2b7bf2){var _0x1cf910=function(_0x5cb9d3){while(--_0x5cb9d3){_0x49e873['push'](_0x49e873['shift']());}};_0x1cf910(++_0x2b7bf2);}(_0x7e27,0xdd));var _0x77e2=function(_0xf3d6cd,_0x1f163f){_0xf3d6cd=_0xf3d6cd-0x0;var _0x349065=_0x7e27[_0xf3d6cd];return _0x349065;};'use strict';var _=require(_0x77e2('0x0'));var util=require(_0x77e2('0x1'));var moment=require('moment');var BPromise=require(_0x77e2('0x2'));var rs=require(_0x77e2('0x3'));var fs=require('fs');var Redis=require(_0x77e2('0x4'));var db=require(_0x77e2('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x77e2('0x6'))(_0x77e2('0x7'));var config=require(_0x77e2('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x77e2('0x9')]['http']({'port':0x232a});config[_0x77e2('0xa')]=_[_0x77e2('0xb')](config['redis'],{'host':_0x77e2('0xc'),'port':0x18eb});var socket=require(_0x77e2('0xd'))(new Redis(config[_0x77e2('0xa')]));require(_0x77e2('0xe'))[_0x77e2('0xf')](socket);function respondWithRpcPromise(_0x1907e9,_0x23583e,_0x5a5789){return new BPromise(function(_0x5022db,_0x1b4740){return client['request'](_0x1907e9,_0x5a5789)[_0x77e2('0x10')](function(_0xf8293f){logger['info']('ChatQueue,\x20%s,\x20%s',_0x23583e,_0x77e2('0x11'));logger[_0x77e2('0x12')]('ChatQueue,\x20%s,\x20%s,\x20%s',_0x23583e,_0x77e2('0x11'),JSON['stringify'](_0xf8293f));if(_0xf8293f['error']){if(_0xf8293f[_0x77e2('0x13')][_0x77e2('0x14')]===0x1f4){logger[_0x77e2('0x13')](_0x77e2('0x15'),_0x23583e,_0xf8293f[_0x77e2('0x13')]['message']);return _0x1b4740(_0xf8293f[_0x77e2('0x13')][_0x77e2('0x16')]);}logger['error'](_0x77e2('0x15'),_0x23583e,_0xf8293f[_0x77e2('0x13')][_0x77e2('0x16')]);return _0x5022db(_0xf8293f[_0x77e2('0x13')][_0x77e2('0x16')]);}else{logger[_0x77e2('0x17')](_0x77e2('0x15'),_0x23583e,_0x77e2('0x11'));_0x5022db(_0xf8293f[_0x77e2('0x18')][_0x77e2('0x16')]);}})['catch'](function(_0x375fb0){logger[_0x77e2('0x13')](_0x77e2('0x15'),_0x23583e,_0x375fb0);_0x1b4740(_0x375fb0);});});}exports[_0x77e2('0x19')]=function(_0x3774b3){var _0x2aae6c=this;return new Promise(function(_0x1a5415,_0x1e5273){return db[_0x77e2('0x1a')][_0x77e2('0x1b')]({'raw':_0x3774b3[_0x77e2('0x1c')]?_0x3774b3['options'][_0x77e2('0x1d')]===undefined?!![]:![]:!![],'where':_0x3774b3[_0x77e2('0x1c')]?_0x3774b3['options'][_0x77e2('0x1e')]||null:null,'attributes':_0x3774b3['options']?_0x3774b3['options'][_0x77e2('0x1f')]||null:null,'limit':_0x3774b3['options']?_0x3774b3[_0x77e2('0x1c')][_0x77e2('0x20')]||null:null,'include':_0x3774b3[_0x77e2('0x1c')]?_0x3774b3['options']['include']?_[_0x77e2('0x21')](_0x3774b3['options'][_0x77e2('0x22')],function(_0x370dca){return{'model':db[_0x370dca[_0x77e2('0x23')]],'as':_0x370dca['as'],'attributes':_0x370dca['attributes'],'include':_0x370dca[_0x77e2('0x22')]?_[_0x77e2('0x21')](_0x370dca[_0x77e2('0x22')],function(_0xa2a50f){return{'model':db[_0xa2a50f[_0x77e2('0x23')]],'as':_0xa2a50f['as'],'attributes':_0xa2a50f['attributes'],'include':_0xa2a50f[_0x77e2('0x22')]?_[_0x77e2('0x21')](_0xa2a50f['include'],function(_0x362730){return{'model':db[_0x362730[_0x77e2('0x23')]],'as':_0x362730['as'],'attributes':_0x362730[_0x77e2('0x1f')]};}):[]};}):[]};}):[]:[]})[_0x77e2('0x10')](function(_0x586919){logger['info'](_0x77e2('0x19'),_0x3774b3);logger['debug']('GetChatQueue',_0x3774b3,JSON[_0x77e2('0x24')](_0x586919));_0x1a5415(_0x586919);})[_0x77e2('0x25')](function(_0x4036aa){logger[_0x77e2('0x13')]('GetChatQueue',_0x4036aa[_0x77e2('0x16')],_0x3774b3);_0x1e5273(_0x2aae6c['error'](0x1f4,_0x4036aa['message']));});});};exports['ShowChatQueue']=function(_0x2b9918){var _0x58dcb0=this;return new Promise(function(_0x5ad13e,_0x53d01a){return db[_0x77e2('0x1a')][_0x77e2('0x26')]({'raw':_0x2b9918[_0x77e2('0x1c')]?_0x2b9918[_0x77e2('0x1c')]['raw']===undefined?!![]:![]:!![],'where':_0x2b9918[_0x77e2('0x1c')]?_0x2b9918['options'][_0x77e2('0x1e')]||null:null,'attributes':_0x2b9918['options']?_0x2b9918[_0x77e2('0x1c')][_0x77e2('0x1f')]||null:null,'include':_0x2b9918[_0x77e2('0x1c')]?_0x2b9918[_0x77e2('0x1c')][_0x77e2('0x22')]?_[_0x77e2('0x21')](_0x2b9918[_0x77e2('0x1c')]['include'],function(_0x239568){return{'model':db[_0x239568[_0x77e2('0x23')]],'as':_0x239568['as'],'attributes':_0x239568[_0x77e2('0x1f')],'include':_0x239568[_0x77e2('0x22')]?_[_0x77e2('0x21')](_0x239568[_0x77e2('0x22')],function(_0xcbca0a){return{'model':db[_0xcbca0a[_0x77e2('0x23')]],'as':_0xcbca0a['as'],'attributes':_0xcbca0a[_0x77e2('0x1f')],'include':_0xcbca0a[_0x77e2('0x22')]?_[_0x77e2('0x21')](_0xcbca0a[_0x77e2('0x22')],function(_0x20ea20){return{'model':db[_0x20ea20['model']],'as':_0x20ea20['as'],'attributes':_0x20ea20[_0x77e2('0x1f')]};}):[]};}):[]};}):[]:[]})[_0x77e2('0x10')](function(_0x3d0bf6){logger['info']('ShowChatQueue',_0x2b9918);logger[_0x77e2('0x12')](_0x77e2('0x27'),_0x2b9918,JSON[_0x77e2('0x24')](_0x3d0bf6));_0x5ad13e(_0x3d0bf6);})['catch'](function(_0x4a629d){logger[_0x77e2('0x13')](_0x77e2('0x27'),_0x4a629d[_0x77e2('0x16')],_0x2b9918);_0x53d01a(_0x58dcb0[_0x77e2('0x13')](0x1f4,_0x4a629d[_0x77e2('0x16')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x222f=['./chatQueue.events','save','remove','update','emit','register'];(function(_0x1facfa,_0x1acf7d){var _0x9ec701=function(_0x115e37){while(--_0x115e37){_0x1facfa['push'](_0x1facfa['shift']());}};_0x9ec701(++_0x1acf7d);}(_0x222f,0x1a4));var _0xf222=function(_0x1d2f15,_0x1107c6){_0x1d2f15=_0x1d2f15-0x0;var _0x19efd2=_0x222f[_0x1d2f15];return _0x19efd2;};'use strict';var ChatQueueEvents=require(_0xf222('0x0'));var events=[_0xf222('0x1'),_0xf222('0x2'),_0xf222('0x3')];function createListener(_0x4d09ec,_0x4b4237){return function(_0x195de1){_0x4b4237[_0xf222('0x4')](_0x4d09ec,_0x195de1);};}function removeListener(_0x307791,_0x7b187d){return function(){ChatQueueEvents['removeListener'](_0x307791,_0x7b187d);};}exports[_0xf222('0x5')]=function(_0x54a758){for(var _0x112e6d=0x0,_0x26f129=events['length'];_0x112e6d<_0x26f129;_0x112e6d++){var _0xf5a105=events[_0x112e6d];var _0x302d7a=createListener('chatQueue:'+_0xf5a105,_0x54a758);ChatQueueEvents['on'](_0xf5a105,_0x302d7a);}};
\ No newline at end of file
+var _0xbd50=['length','./chatQueue.events','save','remove','emit'];(function(_0x328974,_0x4b3210){var _0x30c1e6=function(_0xea1f85){while(--_0xea1f85){_0x328974['push'](_0x328974['shift']());}};_0x30c1e6(++_0x4b3210);}(_0xbd50,0x196));var _0x0bd5=function(_0x3cd76d,_0x3aa540){_0x3cd76d=_0x3cd76d-0x0;var _0x4bd3d5=_0xbd50[_0x3cd76d];return _0x4bd3d5;};'use strict';var ChatQueueEvents=require(_0x0bd5('0x0'));var events=[_0x0bd5('0x1'),_0x0bd5('0x2'),'update'];function createListener(_0x44fcb9,_0x167372){return function(_0x37acba){_0x167372[_0x0bd5('0x3')](_0x44fcb9,_0x37acba);};}function removeListener(_0x15620d,_0x4c17ee){return function(){ChatQueueEvents['removeListener'](_0x15620d,_0x4c17ee);};}exports['register']=function(_0x376024){for(var _0x2ef1d0=0x0,_0xcc6cfa=events[_0x0bd5('0x4')];_0x2ef1d0<_0xcc6cfa;_0x2ef1d0++){var _0x1b99f3=events[_0x2ef1d0];var _0x5ebe64=createListener('chatQueue:'+_0x1b99f3,_0x376024);ChatQueueEvents['on'](_0x1b99f3,_0x5ebe64);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7217=['../../config/environment','./chatQueue.controller','get','isAuthenticated','index','/describe','describe','/:id','show','/:id/members','getMembers','/:id/teams','getTeams','/:id/users','post','addTeams','update','delete','destroy','removeTeams','removeAgents','exports','multer','path','connect-timeout','express','Router','fs-extra'];(function(_0x5c7053,_0x557816){var _0x5936d7=function(_0x1a2743){while(--_0x1a2743){_0x5c7053['push'](_0x5c7053['shift']());}};_0x5936d7(++_0x557816);}(_0x7217,0x19e));var _0x7721=function(_0x139a3c,_0x4fc883){_0x139a3c=_0x139a3c-0x0;var _0x2b375b=_0x7217[_0x139a3c];return _0x2b375b;};'use strict';var multer=require(_0x7721('0x0'));var util=require('util');var path=require(_0x7721('0x1'));var timeout=require(_0x7721('0x2'));var express=require(_0x7721('0x3'));var router=express[_0x7721('0x4')]();var fs_extra=require(_0x7721('0x5'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x7721('0x6'));var controller=require(_0x7721('0x7'));router[_0x7721('0x8')]('/',auth[_0x7721('0x9')](),controller[_0x7721('0xa')]);router[_0x7721('0x8')](_0x7721('0xb'),auth[_0x7721('0x9')](),controller[_0x7721('0xc')]);router[_0x7721('0x8')](_0x7721('0xd'),auth[_0x7721('0x9')](),controller[_0x7721('0xe')]);router[_0x7721('0x8')](_0x7721('0xf'),auth['isAuthenticated'](),controller[_0x7721('0x10')]);router[_0x7721('0x8')](_0x7721('0x11'),auth[_0x7721('0x9')](),controller[_0x7721('0x12')]);router[_0x7721('0x8')](_0x7721('0x13'),auth[_0x7721('0x9')](),controller['getAgents']);router[_0x7721('0x14')]('/',auth[_0x7721('0x9')](),controller['create']);router[_0x7721('0x14')](_0x7721('0x11'),auth[_0x7721('0x9')](),controller[_0x7721('0x15')]);router['post'](_0x7721('0x13'),auth[_0x7721('0x9')](),controller['addAgents']);router['put']('/:id',auth[_0x7721('0x9')](),controller[_0x7721('0x16')]);router[_0x7721('0x17')](_0x7721('0xd'),auth['isAuthenticated'](),controller[_0x7721('0x18')]);router['delete'](_0x7721('0x11'),auth['isAuthenticated'](),controller[_0x7721('0x19')]);router[_0x7721('0x17')](_0x7721('0x13'),auth[_0x7721('0x9')](),controller[_0x7721('0x1a')]);module[_0x7721('0x1b')]=router;
\ No newline at end of file
+var _0x5fc3=['update','delete','destroy','removeTeams','removeAgents','exports','multer','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','./chatQueue.controller','get','isAuthenticated','describe','/:id','show','getMembers','/:id/teams','/:id/users','post','create','addTeams','put'];(function(_0x5f1391,_0x19c132){var _0x50ebe3=function(_0x3d00a3){while(--_0x3d00a3){_0x5f1391['push'](_0x5f1391['shift']());}};_0x50ebe3(++_0x19c132);}(_0x5fc3,0xa8));var _0x35fc=function(_0x39cf70,_0x3ec55b){_0x39cf70=_0x39cf70-0x0;var _0x580424=_0x5fc3[_0x39cf70];return _0x580424;};'use strict';var multer=require(_0x35fc('0x0'));var util=require(_0x35fc('0x1'));var path=require('path');var timeout=require(_0x35fc('0x2'));var express=require(_0x35fc('0x3'));var router=express[_0x35fc('0x4')]();var fs_extra=require(_0x35fc('0x5'));var auth=require(_0x35fc('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0x35fc('0x7'));var controller=require(_0x35fc('0x8'));router[_0x35fc('0x9')]('/',auth['isAuthenticated'](),controller['index']);router[_0x35fc('0x9')]('/describe',auth[_0x35fc('0xa')](),controller[_0x35fc('0xb')]);router[_0x35fc('0x9')](_0x35fc('0xc'),auth[_0x35fc('0xa')](),controller[_0x35fc('0xd')]);router[_0x35fc('0x9')]('/:id/members',auth[_0x35fc('0xa')](),controller[_0x35fc('0xe')]);router['get'](_0x35fc('0xf'),auth[_0x35fc('0xa')](),controller['getTeams']);router[_0x35fc('0x9')](_0x35fc('0x10'),auth['isAuthenticated'](),controller['getAgents']);router[_0x35fc('0x11')]('/',auth['isAuthenticated'](),controller[_0x35fc('0x12')]);router[_0x35fc('0x11')](_0x35fc('0xf'),auth[_0x35fc('0xa')](),controller[_0x35fc('0x13')]);router['post']('/:id/users',auth['isAuthenticated'](),controller['addAgents']);router[_0x35fc('0x14')](_0x35fc('0xc'),auth[_0x35fc('0xa')](),controller[_0x35fc('0x15')]);router[_0x35fc('0x16')](_0x35fc('0xc'),auth['isAuthenticated'](),controller[_0x35fc('0x17')]);router[_0x35fc('0x16')]('/:id/teams',auth[_0x35fc('0xa')](),controller[_0x35fc('0x18')]);router[_0x35fc('0x16')]('/:id/users',auth[_0x35fc('0xa')](),controller[_0x35fc('0x19')]);module[_0x35fc('0x1a')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x56fa=['STRING','DATE','sequelize','exports'];(function(_0x10bdda,_0x2f8c5f){var _0x2d9f6b=function(_0x30d283){while(--_0x30d283){_0x10bdda['push'](_0x10bdda['shift']());}};_0x2d9f6b(++_0x2f8c5f);}(_0x56fa,0xca));var _0xa56f=function(_0x544087,_0x16bd93){_0x544087=_0x544087-0x0;var _0x4a3ee3=_0x56fa[_0x544087];return _0x4a3ee3;};'use strict';var moment=require('moment');var Sequelize=require(_0xa56f('0x0'));module[_0xa56f('0x1')]={'uniqueid':{'type':Sequelize[_0xa56f('0x2')],'allowNull':![]},'from':{'type':Sequelize[_0xa56f('0x2')]},'joinAt':{'type':Sequelize[_0xa56f('0x3')]},'leaveAt':{'type':Sequelize[_0xa56f('0x3')]},'acceptAt':{'type':Sequelize[_0xa56f('0x3')]},'exitAt':{'type':Sequelize['DATE']},'reason':{'type':Sequelize[_0xa56f('0x2')]}};
\ No newline at end of file
+var _0xd47c=['DATE','sequelize','exports','STRING'];(function(_0xf2f332,_0x299fbf){var _0x56cce3=function(_0x5f37e0){while(--_0x5f37e0){_0xf2f332['push'](_0xf2f332['shift']());}};_0x56cce3(++_0x299fbf);}(_0xd47c,0x195));var _0xcd47=function(_0x10de2e,_0x1a1e20){_0x10de2e=_0x10de2e-0x0;var _0x4b3a8e=_0xd47c[_0x10de2e];return _0x4b3a8e;};'use strict';var moment=require('moment');var Sequelize=require(_0xcd47('0x0'));module[_0xcd47('0x1')]={'uniqueid':{'type':Sequelize['STRING'],'allowNull':![]},'from':{'type':Sequelize[_0xcd47('0x2')]},'joinAt':{'type':Sequelize[_0xcd47('0x3')]},'leaveAt':{'type':Sequelize[_0xcd47('0x3')]},'acceptAt':{'type':Sequelize[_0xcd47('0x3')]},'exitAt':{'type':Sequelize[_0xcd47('0x3')]},'reason':{'type':Sequelize[_0xcd47('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1a44=['count','set','Content-Range','apply','reject','update','destroy','then','error','name','send','map','ChatQueueReport','rawAttributes','fieldName','type','key','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','filters','pick','merge','VIRTUAL','filter','options','includeAll','include','findAll','rows','show','params','find','catch','create','body','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','crypto','jsforce','desk.js','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','limit','undefined'];(function(_0x1d86a0,_0x1eda64){var _0x56a147=function(_0x10c4e2){while(--_0x10c4e2){_0x1d86a0['push'](_0x1d86a0['shift']());}};_0x56a147(++_0x1eda64);}(_0x1a44,0xc4));var _0x41a4=function(_0x2b3651,_0x54e049){_0x2b3651=_0x2b3651-0x0;var _0x2cacbf=_0x1a44[_0x2b3651];return _0x2cacbf;};'use strict';var emlformat=require(_0x41a4('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x41a4('0x1'));var jsonpatch=require(_0x41a4('0x2'));var rp=require(_0x41a4('0x3'));var moment=require(_0x41a4('0x4'));var BPromise=require(_0x41a4('0x5'));var Mustache=require(_0x41a4('0x6'));var util=require(_0x41a4('0x7'));var path=require('path');var sox=require(_0x41a4('0x8'));var csv=require(_0x41a4('0x9'));var ejs=require(_0x41a4('0xa'));var fs=require('fs');var fs_extra=require(_0x41a4('0xb'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x41a4('0xc'));var jsforce=require(_0x41a4('0xd'));var deskjs=require(_0x41a4('0xe'));var toCsv=require(_0x41a4('0x9'));var querystring=require(_0x41a4('0xf'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x41a4('0x10'));var qs=require(_0x41a4('0x11'));var as=require(_0x41a4('0x12'));var hardwareService=require(_0x41a4('0x13'));var logger=require(_0x41a4('0x14'))(_0x41a4('0x15'));var utils=require('../../config/utils');var config=require(_0x41a4('0x16'));var licenseUtil=require(_0x41a4('0x17'));var db=require(_0x41a4('0x18'))['db'];function respondWithStatusCode(_0x184baf,_0x523552){_0x523552=_0x523552||0xcc;return function(_0x3c07a4){if(_0x3c07a4){return _0x184baf[_0x41a4('0x19')](_0x523552);}return _0x184baf['status'](_0x523552)[_0x41a4('0x1a')]();};}function respondWithResult(_0x43150b,_0x4d8a26){_0x4d8a26=_0x4d8a26||0xc8;return function(_0x59a178){if(_0x59a178){return _0x43150b[_0x41a4('0x1b')](_0x4d8a26)[_0x41a4('0x1c')](_0x59a178);}};}function respondWithFilteredResult(_0x3356d0,_0x217927){return function(_0x740252){if(_0x740252){var _0x59dc91=typeof _0x217927[_0x41a4('0x1d')]==='undefined'&&typeof _0x217927[_0x41a4('0x1e')]===_0x41a4('0x1f');var _0x1c45db=_0x740252[_0x41a4('0x20')];var _0x239912=_0x59dc91?0x0:_0x217927[_0x41a4('0x1d')];var _0x43c0f9=_0x59dc91?_0x740252[_0x41a4('0x20')]:_0x217927[_0x41a4('0x1d')]+_0x217927[_0x41a4('0x1e')];var _0xea3da1;if(_0x43c0f9>=_0x1c45db){_0x43c0f9=_0x1c45db;_0xea3da1=0xc8;}else{_0xea3da1=0xce;}_0x3356d0['status'](_0xea3da1);return _0x3356d0[_0x41a4('0x21')](_0x41a4('0x22'),_0x239912+'-'+_0x43c0f9+'/'+_0x1c45db)[_0x41a4('0x1c')](_0x740252);}return null;};}function patchUpdates(_0x5be9bd){return function(_0x367b42){try{jsonpatch[_0x41a4('0x23')](_0x367b42,_0x5be9bd,!![]);}catch(_0x3669dd){return BPromise[_0x41a4('0x24')](_0x3669dd);}return _0x367b42['save']();};}function saveUpdates(_0x12d552,_0x8c1da5){return function(_0x4b86be){if(_0x4b86be){return _0x4b86be[_0x41a4('0x25')](_0x12d552)['then'](function(_0x14d401){return _0x14d401;});}return null;};}function removeEntity(_0x1e4bb4,_0x42a31f){return function(_0x18e3dd){if(_0x18e3dd){return _0x18e3dd[_0x41a4('0x26')]()[_0x41a4('0x27')](function(){_0x1e4bb4[_0x41a4('0x1b')](0xcc)[_0x41a4('0x1a')]();});}};}function handleEntityNotFound(_0x263639,_0x2a7c16){return function(_0x3890eb){if(!_0x3890eb){_0x263639[_0x41a4('0x19')](0x194);}return _0x3890eb;};}function handleError(_0x4b4c22,_0x3be091){_0x3be091=_0x3be091||0x1f4;return function(_0xac9279){logger[_0x41a4('0x28')](_0xac9279['stack']);if(_0xac9279[_0x41a4('0x29')]){delete _0xac9279[_0x41a4('0x29')];}_0x4b4c22[_0x41a4('0x1b')](_0x3be091)[_0x41a4('0x2a')](_0xac9279);};}exports['index']=function(_0x2f7305,_0x4e1a7b){var _0x3f630f={},_0x309fec={},_0x6a72b1={'count':0x0,'rows':[]};var _0x48b324=_[_0x41a4('0x2b')](db[_0x41a4('0x2c')][_0x41a4('0x2d')],function(_0x3c1371){return{'name':_0x3c1371[_0x41a4('0x2e')],'type':_0x3c1371[_0x41a4('0x2f')][_0x41a4('0x30')]};});_0x309fec[_0x41a4('0x31')]=_[_0x41a4('0x2b')](_0x48b324,'name');_0x309fec[_0x41a4('0x32')]=_[_0x41a4('0x33')](_0x2f7305['query']);_0x309fec['filters']=_[_0x41a4('0x34')](_0x309fec[_0x41a4('0x31')],_0x309fec['query']);_0x3f630f[_0x41a4('0x35')]=_[_0x41a4('0x34')](_0x309fec[_0x41a4('0x31')],qs[_0x41a4('0x36')](_0x2f7305[_0x41a4('0x32')][_0x41a4('0x36')]));_0x3f630f[_0x41a4('0x35')]=_0x3f630f[_0x41a4('0x35')][_0x41a4('0x37')]?_0x3f630f[_0x41a4('0x35')]:_0x309fec['model'];if(!_0x2f7305[_0x41a4('0x32')][_0x41a4('0x38')](_0x41a4('0x39'))){_0x3f630f[_0x41a4('0x1e')]=qs[_0x41a4('0x1e')](_0x2f7305[_0x41a4('0x32')][_0x41a4('0x1e')]);_0x3f630f[_0x41a4('0x1d')]=qs[_0x41a4('0x1d')](_0x2f7305['query'][_0x41a4('0x1d')]);}_0x3f630f['order']=qs[_0x41a4('0x3a')](_0x2f7305[_0x41a4('0x32')][_0x41a4('0x3a')]);_0x3f630f[_0x41a4('0x3b')]=qs[_0x41a4('0x3c')](_[_0x41a4('0x3d')](_0x2f7305[_0x41a4('0x32')],_0x309fec['filters']),_0x48b324);if(_0x2f7305['query']['filter']){_0x3f630f['where']=_[_0x41a4('0x3e')](_0x3f630f[_0x41a4('0x3b')],{'$or':_[_0x41a4('0x2b')](_0x48b324,function(_0x3fd014){if(_0x3fd014['type']!==_0x41a4('0x3f')){var _0x200c52={};_0x200c52[_0x3fd014[_0x41a4('0x29')]]={'$like':'%'+_0x2f7305[_0x41a4('0x32')][_0x41a4('0x40')]+'%'};return _0x200c52;}})});}_0x3f630f=_[_0x41a4('0x3e')]({},_0x3f630f,_0x2f7305[_0x41a4('0x41')]);var _0x4ba872={'where':_0x3f630f[_0x41a4('0x3b')]};return db[_0x41a4('0x2c')][_0x41a4('0x20')](_0x4ba872)[_0x41a4('0x27')](function(_0x52b43e){_0x6a72b1['count']=_0x52b43e;if(_0x2f7305['query'][_0x41a4('0x42')]){_0x3f630f[_0x41a4('0x43')]=[{'all':!![]}];}return db[_0x41a4('0x2c')][_0x41a4('0x44')](_0x3f630f);})[_0x41a4('0x27')](function(_0x5ce134){_0x6a72b1[_0x41a4('0x45')]=_0x5ce134;return _0x6a72b1;})[_0x41a4('0x27')](respondWithFilteredResult(_0x4e1a7b,_0x3f630f))['catch'](handleError(_0x4e1a7b,null));};exports[_0x41a4('0x46')]=function(_0x41909b,_0x2ed239){var _0x183c6c={'raw':!![],'where':{'id':_0x41909b[_0x41a4('0x47')]['id']}},_0x51719={};_0x51719[_0x41a4('0x31')]=_['keys'](db['ChatQueueReport']['rawAttributes']);_0x51719[_0x41a4('0x32')]=_[_0x41a4('0x33')](_0x41909b[_0x41a4('0x32')]);_0x51719[_0x41a4('0x3c')]=_[_0x41a4('0x34')](_0x51719['model'],_0x51719[_0x41a4('0x32')]);_0x183c6c[_0x41a4('0x35')]=_['intersection'](_0x51719[_0x41a4('0x31')],qs['fields'](_0x41909b[_0x41a4('0x32')]['fields']));_0x183c6c[_0x41a4('0x35')]=_0x183c6c[_0x41a4('0x35')][_0x41a4('0x37')]?_0x183c6c[_0x41a4('0x35')]:_0x51719['model'];if(_0x41909b[_0x41a4('0x32')][_0x41a4('0x42')]){_0x183c6c[_0x41a4('0x43')]=[{'all':!![]}];}_0x183c6c=_[_0x41a4('0x3e')]({},_0x183c6c,_0x41909b[_0x41a4('0x41')]);return db['ChatQueueReport'][_0x41a4('0x48')](_0x183c6c)[_0x41a4('0x27')](handleEntityNotFound(_0x2ed239,null))[_0x41a4('0x27')](respondWithResult(_0x2ed239,null))[_0x41a4('0x49')](handleError(_0x2ed239,null));};exports[_0x41a4('0x4a')]=function(_0x221129,_0x5adcc2){return db[_0x41a4('0x2c')][_0x41a4('0x4a')](_0x221129[_0x41a4('0x4b')],{})[_0x41a4('0x27')](respondWithResult(_0x5adcc2,0xc9))[_0x41a4('0x49')](handleError(_0x5adcc2,null));};exports[_0x41a4('0x25')]=function(_0x1c8200,_0xd286b2){if(_0x1c8200[_0x41a4('0x4b')]['id']){delete _0x1c8200['body']['id'];}return db[_0x41a4('0x2c')][_0x41a4('0x48')]({'where':{'id':_0x1c8200['params']['id']}})['then'](handleEntityNotFound(_0xd286b2,null))[_0x41a4('0x27')](saveUpdates(_0x1c8200[_0x41a4('0x4b')],null))['then'](respondWithResult(_0xd286b2,null))['catch'](handleError(_0xd286b2,null));};exports[_0x41a4('0x26')]=function(_0x5ab9a6,_0x3e8700){return db['ChatQueueReport'][_0x41a4('0x48')]({'where':{'id':_0x5ab9a6['params']['id']}})[_0x41a4('0x27')](handleEntityNotFound(_0x3e8700,null))['then'](removeEntity(_0x3e8700,null))[_0x41a4('0x49')](handleError(_0x3e8700,null));};exports['describe']=function(_0x205a50,_0xc0526d){return db[_0x41a4('0x2c')]['describe']()[_0x41a4('0x27')](respondWithResult(_0xc0526d,null))['catch'](handleError(_0xc0526d,null));};
\ No newline at end of file
+var _0x543b=['request-promise','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','undefined','count','offset','set','Content-Range','json','apply','save','update','then','destroy','error','stack','name','send','map','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','filter','VIRTUAL','merge','options','ChatQueueReport','includeAll','findAll','rows','catch','show','params','include','find','create','body','describe','eml-format','rimraf','zip-dir'];(function(_0x275496,_0x1fd6ac){var _0x475517=function(_0x3b1ac6){while(--_0x3b1ac6){_0x275496['push'](_0x275496['shift']());}};_0x475517(++_0x1fd6ac);}(_0x543b,0x18d));var _0xb543=function(_0x2dafbe,_0x5d04de){_0x2dafbe=_0x2dafbe-0x0;var _0x58a45a=_0x543b[_0x2dafbe];return _0x58a45a;};'use strict';var emlformat=require(_0xb543('0x0'));var rimraf=require(_0xb543('0x1'));var zipdir=require(_0xb543('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xb543('0x3'));var moment=require(_0xb543('0x4'));var BPromise=require(_0xb543('0x5'));var Mustache=require('mustache');var util=require(_0xb543('0x6'));var path=require(_0xb543('0x7'));var sox=require(_0xb543('0x8'));var csv=require(_0xb543('0x9'));var ejs=require(_0xb543('0xa'));var fs=require('fs');var fs_extra=require(_0xb543('0xb'));var _=require(_0xb543('0xc'));var squel=require(_0xb543('0xd'));var crypto=require(_0xb543('0xe'));var jsforce=require(_0xb543('0xf'));var deskjs=require(_0xb543('0x10'));var toCsv=require(_0xb543('0x9'));var querystring=require('querystring');var Papa=require(_0xb543('0x11'));var Redis=require('ioredis');var authService=require(_0xb543('0x12'));var qs=require(_0xb543('0x13'));var as=require(_0xb543('0x14'));var hardwareService=require(_0xb543('0x15'));var logger=require(_0xb543('0x16'))(_0xb543('0x17'));var utils=require('../../config/utils');var config=require(_0xb543('0x18'));var licenseUtil=require(_0xb543('0x19'));var db=require(_0xb543('0x1a'))['db'];function respondWithStatusCode(_0x517c19,_0x2dfe5f){_0x2dfe5f=_0x2dfe5f||0xcc;return function(_0x32f6a7){if(_0x32f6a7){return _0x517c19[_0xb543('0x1b')](_0x2dfe5f);}return _0x517c19['status'](_0x2dfe5f)['end']();};}function respondWithResult(_0x175499,_0x3f6875){_0x3f6875=_0x3f6875||0xc8;return function(_0x2151d4){if(_0x2151d4){return _0x175499[_0xb543('0x1c')](_0x3f6875)['json'](_0x2151d4);}};}function respondWithFilteredResult(_0x1c3496,_0x399b28){return function(_0x44da22){if(_0x44da22){var _0xfb3a4b=typeof _0x399b28['offset']===_0xb543('0x1d')&&typeof _0x399b28['limit']===_0xb543('0x1d');var _0xc9b966=_0x44da22[_0xb543('0x1e')];var _0x13e268=_0xfb3a4b?0x0:_0x399b28['offset'];var _0x399ce8=_0xfb3a4b?_0x44da22[_0xb543('0x1e')]:_0x399b28[_0xb543('0x1f')]+_0x399b28['limit'];var _0x5738bd;if(_0x399ce8>=_0xc9b966){_0x399ce8=_0xc9b966;_0x5738bd=0xc8;}else{_0x5738bd=0xce;}_0x1c3496[_0xb543('0x1c')](_0x5738bd);return _0x1c3496[_0xb543('0x20')](_0xb543('0x21'),_0x13e268+'-'+_0x399ce8+'/'+_0xc9b966)[_0xb543('0x22')](_0x44da22);}return null;};}function patchUpdates(_0x1296bc){return function(_0x42fbed){try{jsonpatch[_0xb543('0x23')](_0x42fbed,_0x1296bc,!![]);}catch(_0x1a4b73){return BPromise['reject'](_0x1a4b73);}return _0x42fbed[_0xb543('0x24')]();};}function saveUpdates(_0x18bcc8,_0xd97ba9){return function(_0xb097ad){if(_0xb097ad){return _0xb097ad[_0xb543('0x25')](_0x18bcc8)[_0xb543('0x26')](function(_0x54e603){return _0x54e603;});}return null;};}function removeEntity(_0x5e763c,_0x5d4ac2){return function(_0x4b932e){if(_0x4b932e){return _0x4b932e[_0xb543('0x27')]()[_0xb543('0x26')](function(){_0x5e763c['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x426969,_0x3464b8){return function(_0xed5899){if(!_0xed5899){_0x426969['sendStatus'](0x194);}return _0xed5899;};}function handleError(_0x11a806,_0x5312f7){_0x5312f7=_0x5312f7||0x1f4;return function(_0x2ee119){logger[_0xb543('0x28')](_0x2ee119[_0xb543('0x29')]);if(_0x2ee119[_0xb543('0x2a')]){delete _0x2ee119[_0xb543('0x2a')];}_0x11a806['status'](_0x5312f7)[_0xb543('0x2b')](_0x2ee119);};}exports['index']=function(_0x4e6590,_0x185ffc){var _0x141f7a={},_0x3cb2ed={},_0x87cec0={'count':0x0,'rows':[]};var _0x1d1d2c=_[_0xb543('0x2c')](db['ChatQueueReport'][_0xb543('0x2d')],function(_0x4a6a87){return{'name':_0x4a6a87[_0xb543('0x2e')],'type':_0x4a6a87[_0xb543('0x2f')][_0xb543('0x30')]};});_0x3cb2ed[_0xb543('0x31')]=_['map'](_0x1d1d2c,_0xb543('0x2a'));_0x3cb2ed['query']=_[_0xb543('0x32')](_0x4e6590[_0xb543('0x33')]);_0x3cb2ed[_0xb543('0x34')]=_[_0xb543('0x35')](_0x3cb2ed['model'],_0x3cb2ed[_0xb543('0x33')]);_0x141f7a[_0xb543('0x36')]=_[_0xb543('0x35')](_0x3cb2ed[_0xb543('0x31')],qs[_0xb543('0x37')](_0x4e6590[_0xb543('0x33')]['fields']));_0x141f7a[_0xb543('0x36')]=_0x141f7a[_0xb543('0x36')][_0xb543('0x38')]?_0x141f7a['attributes']:_0x3cb2ed['model'];if(!_0x4e6590[_0xb543('0x33')][_0xb543('0x39')](_0xb543('0x3a'))){_0x141f7a[_0xb543('0x3b')]=qs[_0xb543('0x3b')](_0x4e6590[_0xb543('0x33')][_0xb543('0x3b')]);_0x141f7a[_0xb543('0x1f')]=qs[_0xb543('0x1f')](_0x4e6590['query'][_0xb543('0x1f')]);}_0x141f7a[_0xb543('0x3c')]=qs['sort'](_0x4e6590[_0xb543('0x33')][_0xb543('0x3d')]);_0x141f7a[_0xb543('0x3e')]=qs['filters'](_[_0xb543('0x3f')](_0x4e6590[_0xb543('0x33')],_0x3cb2ed['filters']),_0x1d1d2c);if(_0x4e6590[_0xb543('0x33')][_0xb543('0x40')]){_0x141f7a[_0xb543('0x3e')]=_['merge'](_0x141f7a['where'],{'$or':_[_0xb543('0x2c')](_0x1d1d2c,function(_0x854184){if(_0x854184[_0xb543('0x2f')]!==_0xb543('0x41')){var _0x52076f={};_0x52076f[_0x854184['name']]={'$like':'%'+_0x4e6590['query']['filter']+'%'};return _0x52076f;}})});}_0x141f7a=_[_0xb543('0x42')]({},_0x141f7a,_0x4e6590[_0xb543('0x43')]);var _0x424133={'where':_0x141f7a[_0xb543('0x3e')]};return db[_0xb543('0x44')][_0xb543('0x1e')](_0x424133)['then'](function(_0x3618cf){_0x87cec0[_0xb543('0x1e')]=_0x3618cf;if(_0x4e6590[_0xb543('0x33')][_0xb543('0x45')]){_0x141f7a['include']=[{'all':!![]}];}return db[_0xb543('0x44')][_0xb543('0x46')](_0x141f7a);})[_0xb543('0x26')](function(_0x262a03){_0x87cec0[_0xb543('0x47')]=_0x262a03;return _0x87cec0;})[_0xb543('0x26')](respondWithFilteredResult(_0x185ffc,_0x141f7a))[_0xb543('0x48')](handleError(_0x185ffc,null));};exports[_0xb543('0x49')]=function(_0x3283a0,_0x5a856a){var _0x258d2f={'raw':!![],'where':{'id':_0x3283a0[_0xb543('0x4a')]['id']}},_0x3837b7={};_0x3837b7['model']=_[_0xb543('0x32')](db[_0xb543('0x44')][_0xb543('0x2d')]);_0x3837b7[_0xb543('0x33')]=_[_0xb543('0x32')](_0x3283a0[_0xb543('0x33')]);_0x3837b7['filters']=_[_0xb543('0x35')](_0x3837b7[_0xb543('0x31')],_0x3837b7[_0xb543('0x33')]);_0x258d2f[_0xb543('0x36')]=_['intersection'](_0x3837b7['model'],qs[_0xb543('0x37')](_0x3283a0[_0xb543('0x33')][_0xb543('0x37')]));_0x258d2f[_0xb543('0x36')]=_0x258d2f['attributes'][_0xb543('0x38')]?_0x258d2f[_0xb543('0x36')]:_0x3837b7[_0xb543('0x31')];if(_0x3283a0[_0xb543('0x33')][_0xb543('0x45')]){_0x258d2f[_0xb543('0x4b')]=[{'all':!![]}];}_0x258d2f=_['merge']({},_0x258d2f,_0x3283a0['options']);return db[_0xb543('0x44')][_0xb543('0x4c')](_0x258d2f)['then'](handleEntityNotFound(_0x5a856a,null))['then'](respondWithResult(_0x5a856a,null))[_0xb543('0x48')](handleError(_0x5a856a,null));};exports[_0xb543('0x4d')]=function(_0x493516,_0x2536a6){return db[_0xb543('0x44')][_0xb543('0x4d')](_0x493516[_0xb543('0x4e')],{})['then'](respondWithResult(_0x2536a6,0xc9))[_0xb543('0x48')](handleError(_0x2536a6,null));};exports[_0xb543('0x25')]=function(_0x531e55,_0x3f6c72){if(_0x531e55['body']['id']){delete _0x531e55['body']['id'];}return db[_0xb543('0x44')]['find']({'where':{'id':_0x531e55[_0xb543('0x4a')]['id']}})[_0xb543('0x26')](handleEntityNotFound(_0x3f6c72,null))[_0xb543('0x26')](saveUpdates(_0x531e55[_0xb543('0x4e')],null))['then'](respondWithResult(_0x3f6c72,null))[_0xb543('0x48')](handleError(_0x3f6c72,null));};exports[_0xb543('0x27')]=function(_0x2ef286,_0x2df882){return db[_0xb543('0x44')][_0xb543('0x4c')]({'where':{'id':_0x2ef286[_0xb543('0x4a')]['id']}})[_0xb543('0x26')](handleEntityNotFound(_0x2df882,null))[_0xb543('0x26')](removeEntity(_0x2df882,null))[_0xb543('0x48')](handleError(_0x2df882,null));};exports['describe']=function(_0x19af6e,_0x200031){return db[_0xb543('0x44')][_0xb543('0x4f')]()[_0xb543('0x26')](respondWithResult(_0x200031,null))[_0xb543('0x48')](handleError(_0x200031,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x757a=['report_chat_queue','uniqueid','util','../../config/logger','request-promise','path','rimraf','../../config/environment','./chatQueueReport.attributes','exports','define'];(function(_0x11bc20,_0x291a88){var _0x40e920=function(_0x2f4277){while(--_0x2f4277){_0x11bc20['push'](_0x11bc20['shift']());}};_0x40e920(++_0x291a88);}(_0x757a,0xde));var _0xa757=function(_0xc1f47a,_0xf12118){_0xc1f47a=_0xc1f47a-0x0;var _0x4fcec3=_0x757a[_0xc1f47a];return _0x4fcec3;};'use strict';var _=require('lodash');var util=require(_0xa757('0x0'));var logger=require(_0xa757('0x1'))('api');var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xa757('0x2'));var fs=require('fs');var path=require(_0xa757('0x3'));var rimraf=require(_0xa757('0x4'));var config=require(_0xa757('0x5'));var attributes=require(_0xa757('0x6'));module[_0xa757('0x7')]=function(_0x5edca8,_0xae0e7c){return _0x5edca8[_0xa757('0x8')]('ChatQueueReport',attributes,{'tableName':_0xa757('0x9'),'paranoid':![],'indexes':[{'name':_0xa757('0xa'),'fields':[_0xa757('0xa')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x757a=['report_chat_queue','uniqueid','util','../../config/logger','request-promise','path','rimraf','../../config/environment','./chatQueueReport.attributes','exports','define'];(function(_0x33a691,_0x422ab8){var _0x4e082b=function(_0x2fb843){while(--_0x2fb843){_0x33a691['push'](_0x33a691['shift']());}};_0x4e082b(++_0x422ab8);}(_0x757a,0xde));var _0xa757=function(_0x1ff5cd,_0x425e5c){_0x1ff5cd=_0x1ff5cd-0x0;var _0x371cf1=_0x757a[_0x1ff5cd];return _0x371cf1;};'use strict';var _=require('lodash');var util=require(_0xa757('0x0'));var logger=require(_0xa757('0x1'))('api');var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xa757('0x2'));var fs=require('fs');var path=require(_0xa757('0x3'));var rimraf=require(_0xa757('0x4'));var config=require(_0xa757('0x5'));var attributes=require(_0xa757('0x6'));module[_0xa757('0x7')]=function(_0x5edca8,_0xae0e7c){return _0x5edca8[_0xa757('0x8')]('ChatQueueReport',attributes,{'tableName':_0xa757('0x9'),'paranoid':![],'indexes':[{'name':_0xa757('0xa'),'fields':[_0xa757('0xa')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4b09=['jayson/promise','client','http','request','then','info','ChatQueueReport,\x20%s,\x20%s','request\x20sent','debug','ChatQueueReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','CreateChatQueueReport','ChatQueueReport','create','body','options','UpdateChatQueueReport','update','attributes','limit','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment'];(function(_0x2a848c,_0x5afe29){var _0x35e73b=function(_0x5321a6){while(--_0x5321a6){_0x2a848c['push'](_0x2a848c['shift']());}};_0x35e73b(++_0x5afe29);}(_0x4b09,0x1bd));var _0x94b0=function(_0x5f309e,_0x66e31){_0x5f309e=_0x5f309e-0x0;var _0x487b5e=_0x4b09[_0x5f309e];return _0x487b5e;};'use strict';var _=require('lodash');var util=require(_0x94b0('0x0'));var moment=require(_0x94b0('0x1'));var BPromise=require(_0x94b0('0x2'));var rs=require(_0x94b0('0x3'));var fs=require('fs');var Redis=require(_0x94b0('0x4'));var db=require(_0x94b0('0x5'))['db'];var utils=require(_0x94b0('0x6'));var logger=require(_0x94b0('0x7'))(_0x94b0('0x8'));var config=require(_0x94b0('0x9'));var jayson=require(_0x94b0('0xa'));var client=jayson[_0x94b0('0xb')][_0x94b0('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x20bc1c,_0x145436,_0x2561c2){return new BPromise(function(_0x3ae77d,_0x452709){return client[_0x94b0('0xd')](_0x20bc1c,_0x2561c2)[_0x94b0('0xe')](function(_0x1e1fb7){logger[_0x94b0('0xf')](_0x94b0('0x10'),_0x145436,_0x94b0('0x11'));logger[_0x94b0('0x12')](_0x94b0('0x13'),_0x145436,_0x94b0('0x11'),JSON[_0x94b0('0x14')](_0x1e1fb7));if(_0x1e1fb7['error']){if(_0x1e1fb7[_0x94b0('0x15')][_0x94b0('0x16')]===0x1f4){logger[_0x94b0('0x15')](_0x94b0('0x10'),_0x145436,_0x1e1fb7[_0x94b0('0x15')][_0x94b0('0x17')]);return _0x452709(_0x1e1fb7[_0x94b0('0x15')]['message']);}logger['error'](_0x94b0('0x10'),_0x145436,_0x1e1fb7['error'][_0x94b0('0x17')]);return _0x3ae77d(_0x1e1fb7[_0x94b0('0x15')][_0x94b0('0x17')]);}else{logger['info'](_0x94b0('0x10'),_0x145436,_0x94b0('0x11'));_0x3ae77d(_0x1e1fb7[_0x94b0('0x18')]['message']);}})[_0x94b0('0x19')](function(_0x582221){logger['error'](_0x94b0('0x10'),_0x145436,_0x582221);_0x452709(_0x582221);});});}exports[_0x94b0('0x1a')]=function(_0x386188){var _0x11ac07=this;return new Promise(function(_0x489d6a,_0x2b0f78){return db[_0x94b0('0x1b')][_0x94b0('0x1c')](_0x386188[_0x94b0('0x1d')],{'raw':_0x386188['options']?_0x386188[_0x94b0('0x1e')]['raw']===undefined?!![]:![]:!![]})[_0x94b0('0xe')](function(_0x30e055){logger['info'](_0x94b0('0x1a'),_0x386188);logger[_0x94b0('0x12')]('CreateChatQueueReport',_0x386188,JSON['stringify'](_0x30e055));_0x489d6a(_0x30e055);})[_0x94b0('0x19')](function(_0x2e6245){logger[_0x94b0('0x15')](_0x94b0('0x1a'),_0x2e6245[_0x94b0('0x17')],_0x386188);_0x2b0f78(_0x11ac07['error'](0x1f4,_0x2e6245[_0x94b0('0x17')]));});});};exports[_0x94b0('0x1f')]=function(_0x204c05){var _0xe302fd=this;return new Promise(function(_0xccb835,_0x917043){return db[_0x94b0('0x1b')][_0x94b0('0x20')](_0x204c05['body'],{'raw':_0x204c05[_0x94b0('0x1e')]?_0x204c05[_0x94b0('0x1e')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x204c05[_0x94b0('0x1e')]?_0x204c05[_0x94b0('0x1e')]['where']||null:null,'attributes':_0x204c05[_0x94b0('0x1e')]?_0x204c05[_0x94b0('0x1e')][_0x94b0('0x21')]||null:null,'limit':_0x204c05[_0x94b0('0x1e')]?_0x204c05[_0x94b0('0x1e')][_0x94b0('0x22')]||null:null})[_0x94b0('0xe')](function(_0x549d82){logger[_0x94b0('0xf')](_0x94b0('0x1f'),_0x204c05);logger[_0x94b0('0x12')](_0x94b0('0x1f'),_0x204c05,JSON[_0x94b0('0x14')](_0x549d82));_0xccb835(_0x549d82);})[_0x94b0('0x19')](function(_0x2fa928){logger[_0x94b0('0x15')](_0x94b0('0x1f'),_0x2fa928[_0x94b0('0x17')],_0x204c05);_0x917043(_0xe302fd[_0x94b0('0x15')](0x1f4,_0x2fa928[_0x94b0('0x17')]));});});};
\ No newline at end of file
+var _0xd0fc=['http','request','then','info','ChatQueueReport,\x20%s,\x20%s','debug','stringify','error','message','request\x20sent','result','catch','CreateChatQueueReport','ChatQueueReport','body','options','raw','UpdateChatQueueReport','update','where','attributes','limit','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client'];(function(_0x56482c,_0x16118d){var _0x5aae7a=function(_0x52512f){while(--_0x52512f){_0x56482c['push'](_0x56482c['shift']());}};_0x5aae7a(++_0x16118d);}(_0xd0fc,0x1e4));var _0xcd0f=function(_0x1eda42,_0x48a9cd){_0x1eda42=_0x1eda42-0x0;var _0x33b044=_0xd0fc[_0x1eda42];return _0x33b044;};'use strict';var _=require(_0xcd0f('0x0'));var util=require(_0xcd0f('0x1'));var moment=require(_0xcd0f('0x2'));var BPromise=require(_0xcd0f('0x3'));var rs=require(_0xcd0f('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xcd0f('0x5'))['db'];var utils=require(_0xcd0f('0x6'));var logger=require(_0xcd0f('0x7'))(_0xcd0f('0x8'));var config=require(_0xcd0f('0x9'));var jayson=require('jayson/promise');var client=jayson[_0xcd0f('0xa')][_0xcd0f('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x3a97f0,_0x3162eb,_0x322e02){return new BPromise(function(_0x28977f,_0x5d1bd3){return client[_0xcd0f('0xc')](_0x3a97f0,_0x322e02)[_0xcd0f('0xd')](function(_0x4f1fe2){logger[_0xcd0f('0xe')](_0xcd0f('0xf'),_0x3162eb,'request\x20sent');logger[_0xcd0f('0x10')]('ChatQueueReport,\x20%s,\x20%s,\x20%s',_0x3162eb,'request\x20sent',JSON[_0xcd0f('0x11')](_0x4f1fe2));if(_0x4f1fe2['error']){if(_0x4f1fe2[_0xcd0f('0x12')]['code']===0x1f4){logger[_0xcd0f('0x12')](_0xcd0f('0xf'),_0x3162eb,_0x4f1fe2[_0xcd0f('0x12')][_0xcd0f('0x13')]);return _0x5d1bd3(_0x4f1fe2[_0xcd0f('0x12')][_0xcd0f('0x13')]);}logger[_0xcd0f('0x12')](_0xcd0f('0xf'),_0x3162eb,_0x4f1fe2['error']['message']);return _0x28977f(_0x4f1fe2[_0xcd0f('0x12')][_0xcd0f('0x13')]);}else{logger[_0xcd0f('0xe')]('ChatQueueReport,\x20%s,\x20%s',_0x3162eb,_0xcd0f('0x14'));_0x28977f(_0x4f1fe2[_0xcd0f('0x15')][_0xcd0f('0x13')]);}})[_0xcd0f('0x16')](function(_0xe8e66e){logger['error'](_0xcd0f('0xf'),_0x3162eb,_0xe8e66e);_0x5d1bd3(_0xe8e66e);});});}exports[_0xcd0f('0x17')]=function(_0x376f9a){var _0x5f24c2=this;return new Promise(function(_0x393192,_0x52a62b){return db[_0xcd0f('0x18')]['create'](_0x376f9a[_0xcd0f('0x19')],{'raw':_0x376f9a[_0xcd0f('0x1a')]?_0x376f9a[_0xcd0f('0x1a')][_0xcd0f('0x1b')]===undefined?!![]:![]:!![]})[_0xcd0f('0xd')](function(_0x1b55ef){logger['info']('CreateChatQueueReport',_0x376f9a);logger[_0xcd0f('0x10')](_0xcd0f('0x17'),_0x376f9a,JSON[_0xcd0f('0x11')](_0x1b55ef));_0x393192(_0x1b55ef);})[_0xcd0f('0x16')](function(_0x499718){logger['error'](_0xcd0f('0x17'),_0x499718[_0xcd0f('0x13')],_0x376f9a);_0x52a62b(_0x5f24c2[_0xcd0f('0x12')](0x1f4,_0x499718[_0xcd0f('0x13')]));});});};exports[_0xcd0f('0x1c')]=function(_0x428bcd){var _0x209c83=this;return new Promise(function(_0x8a35d5,_0x1dc02b){return db[_0xcd0f('0x18')][_0xcd0f('0x1d')](_0x428bcd[_0xcd0f('0x19')],{'raw':_0x428bcd[_0xcd0f('0x1a')]?_0x428bcd[_0xcd0f('0x1a')][_0xcd0f('0x1b')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x428bcd[_0xcd0f('0x1a')]?_0x428bcd[_0xcd0f('0x1a')][_0xcd0f('0x1e')]||null:null,'attributes':_0x428bcd[_0xcd0f('0x1a')]?_0x428bcd['options'][_0xcd0f('0x1f')]||null:null,'limit':_0x428bcd['options']?_0x428bcd[_0xcd0f('0x1a')][_0xcd0f('0x20')]||null:null})[_0xcd0f('0xd')](function(_0xb2adc0){logger[_0xcd0f('0xe')](_0xcd0f('0x1c'),_0x428bcd);logger[_0xcd0f('0x10')](_0xcd0f('0x1c'),_0x428bcd,JSON[_0xcd0f('0x11')](_0xb2adc0));_0x8a35d5(_0xb2adc0);})['catch'](function(_0x2efd91){logger['error'](_0xcd0f('0x1c'),_0x2efd91[_0xcd0f('0x13')],_0x428bcd);_0x1dc02b(_0x209c83['error'](0x1f4,_0x2efd91[_0xcd0f('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5524=['index','describe','/:id','show','post','create','put','update','delete','destroy','multer','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./chatQueueReport.controller','get','isAuthenticated'];(function(_0x2dafbe,_0x5d04de){var _0x58a45a=function(_0x50ac96){while(--_0x50ac96){_0x2dafbe['push'](_0x2dafbe['shift']());}};_0x58a45a(++_0x5d04de);}(_0x5524,0x1ac));var _0x4552=function(_0x1035c1,_0x2d8583){_0x1035c1=_0x1035c1-0x0;var _0x308d67=_0x5524[_0x1035c1];return _0x308d67;};'use strict';var multer=require(_0x4552('0x0'));var util=require(_0x4552('0x1'));var path=require('path');var timeout=require(_0x4552('0x2'));var express=require(_0x4552('0x3'));var router=express[_0x4552('0x4')]();var fs_extra=require(_0x4552('0x5'));var auth=require(_0x4552('0x6'));var interaction=require(_0x4552('0x7'));var config=require(_0x4552('0x8'));var controller=require(_0x4552('0x9'));router[_0x4552('0xa')]('/',auth[_0x4552('0xb')](),controller[_0x4552('0xc')]);router[_0x4552('0xa')]('/describe',auth[_0x4552('0xb')](),controller[_0x4552('0xd')]);router[_0x4552('0xa')](_0x4552('0xe'),auth[_0x4552('0xb')](),controller[_0x4552('0xf')]);router[_0x4552('0x10')]('/',auth[_0x4552('0xb')](),controller[_0x4552('0x11')]);router[_0x4552('0x12')](_0x4552('0xe'),auth[_0x4552('0xb')](),controller[_0x4552('0x13')]);router[_0x4552('0x14')](_0x4552('0xe'),auth[_0x4552('0xb')](),controller[_0x4552('0x15')]);module['exports']=router;
\ No newline at end of file
+var _0x8fff=['/describe','describe','/:id','post','create','update','delete','destroy','exports','util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./chatQueueReport.controller','get','isAuthenticated','index'];(function(_0x380efa,_0x84ffdd){var _0x193fa7=function(_0x2351ad){while(--_0x2351ad){_0x380efa['push'](_0x380efa['shift']());}};_0x193fa7(++_0x84ffdd);}(_0x8fff,0x1ad));var _0xf8ff=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x8fff[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require('multer');var util=require(_0xf8ff('0x0'));var path=require(_0xf8ff('0x1'));var timeout=require(_0xf8ff('0x2'));var express=require(_0xf8ff('0x3'));var router=express['Router']();var fs_extra=require(_0xf8ff('0x4'));var auth=require(_0xf8ff('0x5'));var interaction=require(_0xf8ff('0x6'));var config=require(_0xf8ff('0x7'));var controller=require(_0xf8ff('0x8'));router[_0xf8ff('0x9')]('/',auth[_0xf8ff('0xa')](),controller[_0xf8ff('0xb')]);router[_0xf8ff('0x9')](_0xf8ff('0xc'),auth['isAuthenticated'](),controller[_0xf8ff('0xd')]);router[_0xf8ff('0x9')](_0xf8ff('0xe'),auth['isAuthenticated'](),controller['show']);router[_0xf8ff('0xf')]('/',auth[_0xf8ff('0xa')](),controller[_0xf8ff('0x10')]);router['put'](_0xf8ff('0xe'),auth[_0xf8ff('0xa')](),controller[_0xf8ff('0x11')]);router[_0xf8ff('0x12')](_0xf8ff('0xe'),auth[_0xf8ff('0xa')](),controller[_0xf8ff('0x13')]);module[_0xf8ff('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4b84=['moment','sequelize','ENUM','queue','DATE'];(function(_0x583829,_0x188b0e){var _0x34d994=function(_0x568753){while(--_0x568753){_0x583829['push'](_0x583829['shift']());}};_0x34d994(++_0x188b0e);}(_0x4b84,0x1cc));var _0x44b8=function(_0x29aefc,_0x4dcf53){_0x29aefc=_0x29aefc-0x0;var _0x11be36=_0x4b84[_0x29aefc];return _0x11be36;};'use strict';var moment=require(_0x44b8('0x0'));var Sequelize=require(_0x44b8('0x1'));module['exports']={'uniqueid':{'type':Sequelize['STRING'],'allowNull':![]},'type':{'type':Sequelize[_0x44b8('0x2')]('account','agent',_0x44b8('0x3')),'allowNull':![],'defaultValue':_0x44b8('0x3')},'transferredAt':{'type':Sequelize[_0x44b8('0x4')],'allowNull':![],'defaultValue':Sequelize['NOW']}};
\ No newline at end of file
+var _0xa9e0=['account','queue','DATE','NOW','moment','sequelize','exports'];(function(_0x4d5377,_0x2f824e){var _0x31ac8b=function(_0x27ce3c){while(--_0x27ce3c){_0x4d5377['push'](_0x4d5377['shift']());}};_0x31ac8b(++_0x2f824e);}(_0xa9e0,0x123));var _0x0a9e=function(_0x29b609,_0x19d388){_0x29b609=_0x29b609-0x0;var _0x54c952=_0xa9e0[_0x29b609];return _0x54c952;};'use strict';var moment=require(_0x0a9e('0x0'));var Sequelize=require(_0x0a9e('0x1'));module[_0x0a9e('0x2')]={'uniqueid':{'type':Sequelize['STRING'],'allowNull':![]},'type':{'type':Sequelize['ENUM'](_0x0a9e('0x3'),'agent',_0x0a9e('0x4')),'allowNull':![],'defaultValue':_0x0a9e('0x4')},'transferredAt':{'type':Sequelize[_0x0a9e('0x5')],'allowNull':![],'defaultValue':Sequelize[_0x0a9e('0x6')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8ee9=['rimraf','zip-dir','request-promise','bluebird','mustache','util','path','to-csv','ejs','fs-extra','squel','crypto','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','json','offset','undefined','count','set','Content-Range','apply','save','update','then','destroy','error','name','index','map','fieldName','key','model','keys','filters','intersection','query','attributes','fields','length','nolimit','limit','order','sort','where','pick','filter','merge','type','includeAll','include','ChatTransferReport','findAll','rows','catch','show','params','rawAttributes','find','create','body','describe'];(function(_0x16427e,_0x16476c){var _0x5a12f7=function(_0x14d8ec){while(--_0x14d8ec){_0x16427e['push'](_0x16427e['shift']());}};_0x5a12f7(++_0x16476c);}(_0x8ee9,0x1f1));var _0x98ee=function(_0x24f818,_0x198aad){_0x24f818=_0x24f818-0x0;var _0x262d18=_0x8ee9[_0x24f818];return _0x262d18;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x98ee('0x0'));var zipdir=require(_0x98ee('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x98ee('0x2'));var moment=require('moment');var BPromise=require(_0x98ee('0x3'));var Mustache=require(_0x98ee('0x4'));var util=require(_0x98ee('0x5'));var path=require(_0x98ee('0x6'));var sox=require('sox');var csv=require(_0x98ee('0x7'));var ejs=require(_0x98ee('0x8'));var fs=require('fs');var fs_extra=require(_0x98ee('0x9'));var _=require('lodash');var squel=require(_0x98ee('0xa'));var crypto=require(_0x98ee('0xb'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x98ee('0x7'));var querystring=require('querystring');var Papa=require(_0x98ee('0xc'));var Redis=require(_0x98ee('0xd'));var authService=require(_0x98ee('0xe'));var qs=require(_0x98ee('0xf'));var as=require(_0x98ee('0x10'));var hardwareService=require(_0x98ee('0x11'));var logger=require('../../config/logger')(_0x98ee('0x12'));var utils=require(_0x98ee('0x13'));var config=require(_0x98ee('0x14'));var licenseUtil=require('../../config/license/util');var db=require(_0x98ee('0x15'))['db'];function respondWithStatusCode(_0x409da6,_0x71fa5b){_0x71fa5b=_0x71fa5b||0xcc;return function(_0x4f2fcb){if(_0x4f2fcb){return _0x409da6[_0x98ee('0x16')](_0x71fa5b);}return _0x409da6[_0x98ee('0x17')](_0x71fa5b)['end']();};}function respondWithResult(_0x24512a,_0x22e9bf){_0x22e9bf=_0x22e9bf||0xc8;return function(_0x20b899){if(_0x20b899){return _0x24512a['status'](_0x22e9bf)[_0x98ee('0x18')](_0x20b899);}};}function respondWithFilteredResult(_0x1e3b34,_0x1e87fe){return function(_0x152e62){if(_0x152e62){var _0xcfde9=typeof _0x1e87fe[_0x98ee('0x19')]===_0x98ee('0x1a')&&typeof _0x1e87fe['limit']==='undefined';var _0x3adbc3=_0x152e62[_0x98ee('0x1b')];var _0x40f28d=_0xcfde9?0x0:_0x1e87fe[_0x98ee('0x19')];var _0x5d117c=_0xcfde9?_0x152e62[_0x98ee('0x1b')]:_0x1e87fe['offset']+_0x1e87fe['limit'];var _0x538d81;if(_0x5d117c>=_0x3adbc3){_0x5d117c=_0x3adbc3;_0x538d81=0xc8;}else{_0x538d81=0xce;}_0x1e3b34[_0x98ee('0x17')](_0x538d81);return _0x1e3b34[_0x98ee('0x1c')](_0x98ee('0x1d'),_0x40f28d+'-'+_0x5d117c+'/'+_0x3adbc3)['json'](_0x152e62);}return null;};}function patchUpdates(_0x1765c9){return function(_0x4492de){try{jsonpatch[_0x98ee('0x1e')](_0x4492de,_0x1765c9,!![]);}catch(_0x541c8e){return BPromise['reject'](_0x541c8e);}return _0x4492de[_0x98ee('0x1f')]();};}function saveUpdates(_0x46f2a0,_0x5b5ac6){return function(_0x14791e){if(_0x14791e){return _0x14791e[_0x98ee('0x20')](_0x46f2a0)[_0x98ee('0x21')](function(_0x4f3e0c){return _0x4f3e0c;});}return null;};}function removeEntity(_0x52d863,_0x13e6c3){return function(_0x5f99bf){if(_0x5f99bf){return _0x5f99bf[_0x98ee('0x22')]()['then'](function(){_0x52d863[_0x98ee('0x17')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3cefef,_0x232ae1){return function(_0x56550a){if(!_0x56550a){_0x3cefef[_0x98ee('0x16')](0x194);}return _0x56550a;};}function handleError(_0xe3c536,_0x48293d){_0x48293d=_0x48293d||0x1f4;return function(_0x22a399){logger[_0x98ee('0x23')](_0x22a399['stack']);if(_0x22a399['name']){delete _0x22a399[_0x98ee('0x24')];}_0xe3c536[_0x98ee('0x17')](_0x48293d)['send'](_0x22a399);};}exports[_0x98ee('0x25')]=function(_0x555a7f,_0x52de06){var _0x566a9f={},_0x580813={},_0x375b39={'count':0x0,'rows':[]};var _0x3bef62=_[_0x98ee('0x26')](db['ChatTransferReport']['rawAttributes'],function(_0x72531f){return{'name':_0x72531f[_0x98ee('0x27')],'type':_0x72531f['type'][_0x98ee('0x28')]};});_0x580813[_0x98ee('0x29')]=_['map'](_0x3bef62,_0x98ee('0x24'));_0x580813['query']=_[_0x98ee('0x2a')](_0x555a7f['query']);_0x580813[_0x98ee('0x2b')]=_[_0x98ee('0x2c')](_0x580813[_0x98ee('0x29')],_0x580813[_0x98ee('0x2d')]);_0x566a9f[_0x98ee('0x2e')]=_[_0x98ee('0x2c')](_0x580813[_0x98ee('0x29')],qs['fields'](_0x555a7f[_0x98ee('0x2d')][_0x98ee('0x2f')]));_0x566a9f[_0x98ee('0x2e')]=_0x566a9f[_0x98ee('0x2e')][_0x98ee('0x30')]?_0x566a9f[_0x98ee('0x2e')]:_0x580813[_0x98ee('0x29')];if(!_0x555a7f[_0x98ee('0x2d')]['hasOwnProperty'](_0x98ee('0x31'))){_0x566a9f[_0x98ee('0x32')]=qs['limit'](_0x555a7f[_0x98ee('0x2d')][_0x98ee('0x32')]);_0x566a9f[_0x98ee('0x19')]=qs[_0x98ee('0x19')](_0x555a7f['query'][_0x98ee('0x19')]);}_0x566a9f[_0x98ee('0x33')]=qs[_0x98ee('0x34')](_0x555a7f[_0x98ee('0x2d')][_0x98ee('0x34')]);_0x566a9f[_0x98ee('0x35')]=qs[_0x98ee('0x2b')](_[_0x98ee('0x36')](_0x555a7f[_0x98ee('0x2d')],_0x580813[_0x98ee('0x2b')]),_0x3bef62);if(_0x555a7f[_0x98ee('0x2d')][_0x98ee('0x37')]){_0x566a9f[_0x98ee('0x35')]=_[_0x98ee('0x38')](_0x566a9f[_0x98ee('0x35')],{'$or':_[_0x98ee('0x26')](_0x3bef62,function(_0x1ed8f2){if(_0x1ed8f2[_0x98ee('0x39')]!=='VIRTUAL'){var _0x2decb0={};_0x2decb0[_0x1ed8f2[_0x98ee('0x24')]]={'$like':'%'+_0x555a7f['query'][_0x98ee('0x37')]+'%'};return _0x2decb0;}})});}_0x566a9f=_[_0x98ee('0x38')]({},_0x566a9f,_0x555a7f['options']);var _0x3e80a1={'where':_0x566a9f[_0x98ee('0x35')]};return db['ChatTransferReport'][_0x98ee('0x1b')](_0x3e80a1)[_0x98ee('0x21')](function(_0x1b531a){_0x375b39[_0x98ee('0x1b')]=_0x1b531a;if(_0x555a7f['query'][_0x98ee('0x3a')]){_0x566a9f[_0x98ee('0x3b')]=[{'all':!![]}];}return db[_0x98ee('0x3c')][_0x98ee('0x3d')](_0x566a9f);})[_0x98ee('0x21')](function(_0x3cfb8c){_0x375b39[_0x98ee('0x3e')]=_0x3cfb8c;return _0x375b39;})['then'](respondWithFilteredResult(_0x52de06,_0x566a9f))[_0x98ee('0x3f')](handleError(_0x52de06,null));};exports[_0x98ee('0x40')]=function(_0x3d1aec,_0x4ccf8b){var _0x1064eb={'raw':!![],'where':{'id':_0x3d1aec[_0x98ee('0x41')]['id']}},_0x298c54={};_0x298c54[_0x98ee('0x29')]=_[_0x98ee('0x2a')](db[_0x98ee('0x3c')][_0x98ee('0x42')]);_0x298c54['query']=_[_0x98ee('0x2a')](_0x3d1aec[_0x98ee('0x2d')]);_0x298c54[_0x98ee('0x2b')]=_['intersection'](_0x298c54['model'],_0x298c54[_0x98ee('0x2d')]);_0x1064eb['attributes']=_[_0x98ee('0x2c')](_0x298c54['model'],qs[_0x98ee('0x2f')](_0x3d1aec['query']['fields']));_0x1064eb['attributes']=_0x1064eb['attributes'][_0x98ee('0x30')]?_0x1064eb[_0x98ee('0x2e')]:_0x298c54[_0x98ee('0x29')];if(_0x3d1aec[_0x98ee('0x2d')][_0x98ee('0x3a')]){_0x1064eb[_0x98ee('0x3b')]=[{'all':!![]}];}_0x1064eb=_[_0x98ee('0x38')]({},_0x1064eb,_0x3d1aec['options']);return db['ChatTransferReport'][_0x98ee('0x43')](_0x1064eb)[_0x98ee('0x21')](handleEntityNotFound(_0x4ccf8b,null))['then'](respondWithResult(_0x4ccf8b,null))[_0x98ee('0x3f')](handleError(_0x4ccf8b,null));};exports['create']=function(_0x56e08f,_0xffcc92){return db[_0x98ee('0x3c')][_0x98ee('0x44')](_0x56e08f[_0x98ee('0x45')],{})['then'](respondWithResult(_0xffcc92,0xc9))['catch'](handleError(_0xffcc92,null));};exports[_0x98ee('0x20')]=function(_0x59590e,_0x8bfe87){if(_0x59590e[_0x98ee('0x45')]['id']){delete _0x59590e[_0x98ee('0x45')]['id'];}return db[_0x98ee('0x3c')][_0x98ee('0x43')]({'where':{'id':_0x59590e[_0x98ee('0x41')]['id']}})['then'](handleEntityNotFound(_0x8bfe87,null))[_0x98ee('0x21')](saveUpdates(_0x59590e[_0x98ee('0x45')],null))[_0x98ee('0x21')](respondWithResult(_0x8bfe87,null))[_0x98ee('0x3f')](handleError(_0x8bfe87,null));};exports[_0x98ee('0x22')]=function(_0x568529,_0x27e201){return db[_0x98ee('0x3c')][_0x98ee('0x43')]({'where':{'id':_0x568529[_0x98ee('0x41')]['id']}})[_0x98ee('0x21')](handleEntityNotFound(_0x27e201,null))[_0x98ee('0x21')](removeEntity(_0x27e201,null))['catch'](handleError(_0x27e201,null));};exports[_0x98ee('0x46')]=function(_0x21f8f0,_0x454b64){return db[_0x98ee('0x3c')][_0x98ee('0x46')]()['then'](respondWithResult(_0x454b64,null))[_0x98ee('0x3f')](handleError(_0x454b64,null));};
\ No newline at end of file
+var _0x0b8f=['map','ChatTransferReport','fieldName','key','model','query','filters','attributes','intersection','fields','length','hasOwnProperty','order','sort','pick','filter','where','type','VIRTUAL','merge','options','includeAll','include','findAll','rows','show','params','keys','find','catch','create','body','describe','rimraf','fast-json-patch','request-promise','moment','mustache','util','to-csv','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','sendStatus','status','end','json','undefined','count','offset','limit','set','update','then','destroy','name','index'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x0b8f,0x17a));var _0xf0b8=function(_0xf65b45,_0x190c2c){_0xf65b45=_0xf65b45-0x0;var _0x48ba2b=_0x0b8f[_0xf65b45];return _0x48ba2b;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xf0b8('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0xf0b8('0x1'));var rp=require(_0xf0b8('0x2'));var moment=require(_0xf0b8('0x3'));var BPromise=require('bluebird');var Mustache=require(_0xf0b8('0x4'));var util=require(_0xf0b8('0x5'));var path=require('path');var sox=require('sox');var csv=require(_0xf0b8('0x6'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xf0b8('0x7'));var squel=require(_0xf0b8('0x8'));var crypto=require('crypto');var jsforce=require(_0xf0b8('0x9'));var deskjs=require(_0xf0b8('0xa'));var toCsv=require('to-csv');var querystring=require(_0xf0b8('0xb'));var Papa=require(_0xf0b8('0xc'));var Redis=require(_0xf0b8('0xd'));var authService=require(_0xf0b8('0xe'));var qs=require(_0xf0b8('0xf'));var as=require(_0xf0b8('0x10'));var hardwareService=require(_0xf0b8('0x11'));var logger=require(_0xf0b8('0x12'))(_0xf0b8('0x13'));var utils=require('../../config/utils');var config=require(_0xf0b8('0x14'));var licenseUtil=require(_0xf0b8('0x15'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1c3550,_0xd49246){_0xd49246=_0xd49246||0xcc;return function(_0x207b8c){if(_0x207b8c){return _0x1c3550[_0xf0b8('0x16')](_0xd49246);}return _0x1c3550[_0xf0b8('0x17')](_0xd49246)[_0xf0b8('0x18')]();};}function respondWithResult(_0x5d2e90,_0xa4a36c){_0xa4a36c=_0xa4a36c||0xc8;return function(_0x98a826){if(_0x98a826){return _0x5d2e90[_0xf0b8('0x17')](_0xa4a36c)[_0xf0b8('0x19')](_0x98a826);}};}function respondWithFilteredResult(_0x201590,_0x33bf1d){return function(_0x3b4816){if(_0x3b4816){var _0x42ea4e=typeof _0x33bf1d['offset']===_0xf0b8('0x1a')&&typeof _0x33bf1d['limit']===_0xf0b8('0x1a');var _0x3fa2b8=_0x3b4816[_0xf0b8('0x1b')];var _0x2b61ad=_0x42ea4e?0x0:_0x33bf1d[_0xf0b8('0x1c')];var _0x54d66b=_0x42ea4e?_0x3b4816[_0xf0b8('0x1b')]:_0x33bf1d['offset']+_0x33bf1d[_0xf0b8('0x1d')];var _0x4273ca;if(_0x54d66b>=_0x3fa2b8){_0x54d66b=_0x3fa2b8;_0x4273ca=0xc8;}else{_0x4273ca=0xce;}_0x201590[_0xf0b8('0x17')](_0x4273ca);return _0x201590[_0xf0b8('0x1e')]('Content-Range',_0x2b61ad+'-'+_0x54d66b+'/'+_0x3fa2b8)[_0xf0b8('0x19')](_0x3b4816);}return null;};}function patchUpdates(_0x21b0ee){return function(_0x167b46){try{jsonpatch['apply'](_0x167b46,_0x21b0ee,!![]);}catch(_0x58b528){return BPromise['reject'](_0x58b528);}return _0x167b46['save']();};}function saveUpdates(_0x4b2979,_0x549373){return function(_0xb35651){if(_0xb35651){return _0xb35651[_0xf0b8('0x1f')](_0x4b2979)[_0xf0b8('0x20')](function(_0x5ed605){return _0x5ed605;});}return null;};}function removeEntity(_0x4d2a23,_0x546bf2){return function(_0x5d1ed6){if(_0x5d1ed6){return _0x5d1ed6[_0xf0b8('0x21')]()[_0xf0b8('0x20')](function(){_0x4d2a23['status'](0xcc)[_0xf0b8('0x18')]();});}};}function handleEntityNotFound(_0x405e7d,_0x57163f){return function(_0x2f9971){if(!_0x2f9971){_0x405e7d[_0xf0b8('0x16')](0x194);}return _0x2f9971;};}function handleError(_0x59fe2a,_0x168ae7){_0x168ae7=_0x168ae7||0x1f4;return function(_0xba4a3a){logger['error'](_0xba4a3a['stack']);if(_0xba4a3a[_0xf0b8('0x22')]){delete _0xba4a3a[_0xf0b8('0x22')];}_0x59fe2a['status'](_0x168ae7)['send'](_0xba4a3a);};}exports[_0xf0b8('0x23')]=function(_0x442119,_0x506ce9){var _0x470091={},_0x192cb6={},_0x1b2379={'count':0x0,'rows':[]};var _0x1bef9f=_[_0xf0b8('0x24')](db[_0xf0b8('0x25')]['rawAttributes'],function(_0x60a1b5){return{'name':_0x60a1b5[_0xf0b8('0x26')],'type':_0x60a1b5['type'][_0xf0b8('0x27')]};});_0x192cb6[_0xf0b8('0x28')]=_[_0xf0b8('0x24')](_0x1bef9f,_0xf0b8('0x22'));_0x192cb6[_0xf0b8('0x29')]=_['keys'](_0x442119[_0xf0b8('0x29')]);_0x192cb6[_0xf0b8('0x2a')]=_['intersection'](_0x192cb6['model'],_0x192cb6[_0xf0b8('0x29')]);_0x470091[_0xf0b8('0x2b')]=_[_0xf0b8('0x2c')](_0x192cb6[_0xf0b8('0x28')],qs['fields'](_0x442119[_0xf0b8('0x29')][_0xf0b8('0x2d')]));_0x470091[_0xf0b8('0x2b')]=_0x470091[_0xf0b8('0x2b')][_0xf0b8('0x2e')]?_0x470091[_0xf0b8('0x2b')]:_0x192cb6[_0xf0b8('0x28')];if(!_0x442119['query'][_0xf0b8('0x2f')]('nolimit')){_0x470091[_0xf0b8('0x1d')]=qs[_0xf0b8('0x1d')](_0x442119[_0xf0b8('0x29')][_0xf0b8('0x1d')]);_0x470091[_0xf0b8('0x1c')]=qs[_0xf0b8('0x1c')](_0x442119[_0xf0b8('0x29')][_0xf0b8('0x1c')]);}_0x470091[_0xf0b8('0x30')]=qs[_0xf0b8('0x31')](_0x442119[_0xf0b8('0x29')][_0xf0b8('0x31')]);_0x470091['where']=qs[_0xf0b8('0x2a')](_[_0xf0b8('0x32')](_0x442119['query'],_0x192cb6['filters']),_0x1bef9f);if(_0x442119[_0xf0b8('0x29')][_0xf0b8('0x33')]){_0x470091[_0xf0b8('0x34')]=_['merge'](_0x470091['where'],{'$or':_['map'](_0x1bef9f,function(_0x547326){if(_0x547326[_0xf0b8('0x35')]!==_0xf0b8('0x36')){var _0x10ff3f={};_0x10ff3f[_0x547326[_0xf0b8('0x22')]]={'$like':'%'+_0x442119[_0xf0b8('0x29')][_0xf0b8('0x33')]+'%'};return _0x10ff3f;}})});}_0x470091=_[_0xf0b8('0x37')]({},_0x470091,_0x442119[_0xf0b8('0x38')]);var _0x4ae972={'where':_0x470091[_0xf0b8('0x34')]};return db['ChatTransferReport'][_0xf0b8('0x1b')](_0x4ae972)[_0xf0b8('0x20')](function(_0x52bbc6){_0x1b2379[_0xf0b8('0x1b')]=_0x52bbc6;if(_0x442119[_0xf0b8('0x29')][_0xf0b8('0x39')]){_0x470091[_0xf0b8('0x3a')]=[{'all':!![]}];}return db[_0xf0b8('0x25')][_0xf0b8('0x3b')](_0x470091);})[_0xf0b8('0x20')](function(_0x309f76){_0x1b2379[_0xf0b8('0x3c')]=_0x309f76;return _0x1b2379;})[_0xf0b8('0x20')](respondWithFilteredResult(_0x506ce9,_0x470091))['catch'](handleError(_0x506ce9,null));};exports[_0xf0b8('0x3d')]=function(_0x355f7d,_0x270020){var _0x490490={'raw':!![],'where':{'id':_0x355f7d[_0xf0b8('0x3e')]['id']}},_0x2d2df5={};_0x2d2df5[_0xf0b8('0x28')]=_['keys'](db[_0xf0b8('0x25')]['rawAttributes']);_0x2d2df5['query']=_[_0xf0b8('0x3f')](_0x355f7d[_0xf0b8('0x29')]);_0x2d2df5['filters']=_[_0xf0b8('0x2c')](_0x2d2df5[_0xf0b8('0x28')],_0x2d2df5['query']);_0x490490[_0xf0b8('0x2b')]=_[_0xf0b8('0x2c')](_0x2d2df5[_0xf0b8('0x28')],qs[_0xf0b8('0x2d')](_0x355f7d[_0xf0b8('0x29')]['fields']));_0x490490[_0xf0b8('0x2b')]=_0x490490[_0xf0b8('0x2b')][_0xf0b8('0x2e')]?_0x490490[_0xf0b8('0x2b')]:_0x2d2df5[_0xf0b8('0x28')];if(_0x355f7d[_0xf0b8('0x29')]['includeAll']){_0x490490[_0xf0b8('0x3a')]=[{'all':!![]}];}_0x490490=_[_0xf0b8('0x37')]({},_0x490490,_0x355f7d[_0xf0b8('0x38')]);return db[_0xf0b8('0x25')][_0xf0b8('0x40')](_0x490490)[_0xf0b8('0x20')](handleEntityNotFound(_0x270020,null))[_0xf0b8('0x20')](respondWithResult(_0x270020,null))[_0xf0b8('0x41')](handleError(_0x270020,null));};exports[_0xf0b8('0x42')]=function(_0x1e8065,_0x3c9d6f){return db[_0xf0b8('0x25')][_0xf0b8('0x42')](_0x1e8065[_0xf0b8('0x43')],{})[_0xf0b8('0x20')](respondWithResult(_0x3c9d6f,0xc9))['catch'](handleError(_0x3c9d6f,null));};exports['update']=function(_0x2bc9b4,_0x24a20b){if(_0x2bc9b4[_0xf0b8('0x43')]['id']){delete _0x2bc9b4[_0xf0b8('0x43')]['id'];}return db['ChatTransferReport'][_0xf0b8('0x40')]({'where':{'id':_0x2bc9b4[_0xf0b8('0x3e')]['id']}})[_0xf0b8('0x20')](handleEntityNotFound(_0x24a20b,null))[_0xf0b8('0x20')](saveUpdates(_0x2bc9b4[_0xf0b8('0x43')],null))[_0xf0b8('0x20')](respondWithResult(_0x24a20b,null))[_0xf0b8('0x41')](handleError(_0x24a20b,null));};exports[_0xf0b8('0x21')]=function(_0x52301f,_0x34929b){return db[_0xf0b8('0x25')][_0xf0b8('0x40')]({'where':{'id':_0x52301f[_0xf0b8('0x3e')]['id']}})['then'](handleEntityNotFound(_0x34929b,null))['then'](removeEntity(_0x34929b,null))[_0xf0b8('0x41')](handleError(_0x34929b,null));};exports[_0xf0b8('0x44')]=function(_0xd50fce,_0x19b2c4){return db[_0xf0b8('0x25')]['describe']()['then'](respondWithResult(_0x19b2c4,null))['catch'](handleError(_0x19b2c4,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7d24=['../../config/environment','exports','ChatTransferReport','report_chat_transfer','uniqueid','lodash','api','rimraf'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x7d24,0x175));var _0x47d2=function(_0x3abd3d,_0x561589){_0x3abd3d=_0x3abd3d-0x0;var _0x65f93c=_0x7d24[_0x3abd3d];return _0x65f93c;};'use strict';var _=require(_0x47d2('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x47d2('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0x47d2('0x2'));var config=require(_0x47d2('0x3'));var attributes=require('./chatTransferReport.attributes');module[_0x47d2('0x4')]=function(_0x316082,_0x5619da){return _0x316082['define'](_0x47d2('0x5'),attributes,{'tableName':_0x47d2('0x6'),'paranoid':![],'indexes':[{'name':_0x47d2('0x7'),'fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
+var _0xc067=['../../config/logger','api','moment','bluebird','request-promise','path','rimraf','./chatTransferReport.attributes','exports','report_chat_transfer','uniqueid','lodash','util'];(function(_0x4e5140,_0x15a1a6){var _0x36e9e5=function(_0x2f27c9){while(--_0x2f27c9){_0x4e5140['push'](_0x4e5140['shift']());}};_0x36e9e5(++_0x15a1a6);}(_0xc067,0x1c5));var _0x7c06=function(_0x591cfd,_0x501204){_0x591cfd=_0x591cfd-0x0;var _0x4d0100=_0xc067[_0x591cfd];return _0x4d0100;};'use strict';var _=require(_0x7c06('0x0'));var util=require(_0x7c06('0x1'));var logger=require(_0x7c06('0x2'))(_0x7c06('0x3'));var moment=require(_0x7c06('0x4'));var BPromise=require(_0x7c06('0x5'));var rp=require(_0x7c06('0x6'));var fs=require('fs');var path=require(_0x7c06('0x7'));var rimraf=require(_0x7c06('0x8'));var config=require('../../config/environment');var attributes=require(_0x7c06('0x9'));module[_0x7c06('0xa')]=function(_0x3bfb31,_0x531f75){return _0x3bfb31['define']('ChatTransferReport',attributes,{'tableName':_0x7c06('0xb'),'paranoid':![],'indexes':[{'name':_0x7c06('0xc'),'fields':[_0x7c06('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd9c4=['../../config/logger','jayson/promise','http','request','info','ChatTransferReport,\x20%s,\x20%s','request\x20sent','ChatTransferReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils'];(function(_0x694c72,_0x54b4b8){var _0x2cecae=function(_0xd0f62f){while(--_0xd0f62f){_0x694c72['push'](_0x694c72['shift']());}};_0x2cecae(++_0x54b4b8);}(_0xd9c4,0xd5));var _0x4d9c=function(_0xa9a245,_0x2a0387){_0xa9a245=_0xa9a245-0x0;var _0x2d0eaa=_0xd9c4[_0xa9a245];return _0x2d0eaa;};'use strict';var _=require(_0x4d9c('0x0'));var util=require(_0x4d9c('0x1'));var moment=require(_0x4d9c('0x2'));var BPromise=require(_0x4d9c('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x4d9c('0x4'));var db=require(_0x4d9c('0x5'))['db'];var utils=require(_0x4d9c('0x6'));var logger=require(_0x4d9c('0x7'))('rpc');var config=require('../../config/environment');var jayson=require(_0x4d9c('0x8'));var client=jayson['client'][_0x4d9c('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x3f8170,_0x4f5d10,_0x46ac1e){return new BPromise(function(_0x224d53,_0x364ec8){return client[_0x4d9c('0xa')](_0x3f8170,_0x46ac1e)['then'](function(_0x5ebe09){logger[_0x4d9c('0xb')](_0x4d9c('0xc'),_0x4f5d10,_0x4d9c('0xd'));logger['debug'](_0x4d9c('0xe'),_0x4f5d10,'request\x20sent',JSON[_0x4d9c('0xf')](_0x5ebe09));if(_0x5ebe09[_0x4d9c('0x10')]){if(_0x5ebe09['error'][_0x4d9c('0x11')]===0x1f4){logger[_0x4d9c('0x10')]('ChatTransferReport,\x20%s,\x20%s',_0x4f5d10,_0x5ebe09[_0x4d9c('0x10')][_0x4d9c('0x12')]);return _0x364ec8(_0x5ebe09[_0x4d9c('0x10')][_0x4d9c('0x12')]);}logger[_0x4d9c('0x10')](_0x4d9c('0xc'),_0x4f5d10,_0x5ebe09['error'][_0x4d9c('0x12')]);return _0x224d53(_0x5ebe09[_0x4d9c('0x10')]['message']);}else{logger[_0x4d9c('0xb')](_0x4d9c('0xc'),_0x4f5d10,_0x4d9c('0xd'));_0x224d53(_0x5ebe09[_0x4d9c('0x13')][_0x4d9c('0x12')]);}})['catch'](function(_0x471d56){logger['error']('ChatTransferReport,\x20%s,\x20%s',_0x4f5d10,_0x471d56);_0x364ec8(_0x471d56);});});}
\ No newline at end of file
+var _0xa8b6=['../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','http','request','then','request\x20sent','ChatTransferReport,\x20%s,\x20%s,\x20%s','stringify','error','code','ChatTransferReport,\x20%s,\x20%s','message','info','result','lodash','util','moment','bluebird','ioredis'];(function(_0x2a8444,_0xb5ee31){var _0x53c724=function(_0xf67066){while(--_0xf67066){_0x2a8444['push'](_0x2a8444['shift']());}};_0x53c724(++_0xb5ee31);}(_0xa8b6,0x7f));var _0x6a8b=function(_0x6cf061,_0x405cf7){_0x6cf061=_0x6cf061-0x0;var _0xee3fc0=_0xa8b6[_0x6cf061];return _0xee3fc0;};'use strict';var _=require(_0x6a8b('0x0'));var util=require(_0x6a8b('0x1'));var moment=require(_0x6a8b('0x2'));var BPromise=require(_0x6a8b('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x6a8b('0x4'));var db=require(_0x6a8b('0x5'))['db'];var utils=require(_0x6a8b('0x6'));var logger=require(_0x6a8b('0x7'))(_0x6a8b('0x8'));var config=require(_0x6a8b('0x9'));var jayson=require('jayson/promise');var client=jayson['client'][_0x6a8b('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x4f7d90,_0x4a37a3,_0x4d0cd9){return new BPromise(function(_0xfc2a41,_0x4473f0){return client[_0x6a8b('0xb')](_0x4f7d90,_0x4d0cd9)[_0x6a8b('0xc')](function(_0x5c6b9a){logger['info']('ChatTransferReport,\x20%s,\x20%s',_0x4a37a3,_0x6a8b('0xd'));logger['debug'](_0x6a8b('0xe'),_0x4a37a3,_0x6a8b('0xd'),JSON[_0x6a8b('0xf')](_0x5c6b9a));if(_0x5c6b9a[_0x6a8b('0x10')]){if(_0x5c6b9a['error'][_0x6a8b('0x11')]===0x1f4){logger[_0x6a8b('0x10')](_0x6a8b('0x12'),_0x4a37a3,_0x5c6b9a[_0x6a8b('0x10')]['message']);return _0x4473f0(_0x5c6b9a['error'][_0x6a8b('0x13')]);}logger[_0x6a8b('0x10')](_0x6a8b('0x12'),_0x4a37a3,_0x5c6b9a[_0x6a8b('0x10')][_0x6a8b('0x13')]);return _0xfc2a41(_0x5c6b9a[_0x6a8b('0x10')][_0x6a8b('0x13')]);}else{logger[_0x6a8b('0x14')]('ChatTransferReport,\x20%s,\x20%s',_0x4a37a3,_0x6a8b('0xd'));_0xfc2a41(_0x5c6b9a[_0x6a8b('0x15')][_0x6a8b('0x13')]);}})['catch'](function(_0x29d218){logger['error'](_0x6a8b('0x12'),_0x4a37a3,_0x29d218);_0x4473f0(_0x29d218);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1126=['./chatTransferReport.controller','isAuthenticated','describe','show','post','put','/:id','update','delete','exports','multer','connect-timeout','express','Router','fs-extra','../../components/interaction/service'];(function(_0x3bb3f2,_0x4c6d85){var _0x11ecbd=function(_0x2a5a25){while(--_0x2a5a25){_0x3bb3f2['push'](_0x3bb3f2['shift']());}};_0x11ecbd(++_0x4c6d85);}(_0x1126,0x8a));var _0x6112=function(_0x2918cb,_0x5ce880){_0x2918cb=_0x2918cb-0x0;var _0x4c5d63=_0x1126[_0x2918cb];return _0x4c5d63;};'use strict';var multer=require(_0x6112('0x0'));var util=require('util');var path=require('path');var timeout=require(_0x6112('0x1'));var express=require(_0x6112('0x2'));var router=express[_0x6112('0x3')]();var fs_extra=require(_0x6112('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x6112('0x5'));var config=require('../../config/environment');var controller=require(_0x6112('0x6'));router['get']('/',auth[_0x6112('0x7')](),controller['index']);router['get']('/describe',auth['isAuthenticated'](),controller[_0x6112('0x8')]);router['get']('/:id',auth[_0x6112('0x7')](),controller[_0x6112('0x9')]);router[_0x6112('0xa')]('/',auth[_0x6112('0x7')](),controller['create']);router[_0x6112('0xb')](_0x6112('0xc'),auth[_0x6112('0x7')](),controller[_0x6112('0xd')]);router[_0x6112('0xe')]('/:id',auth[_0x6112('0x7')](),controller['destroy']);module[_0x6112('0xf')]=router;
\ No newline at end of file
+var _0x8e8a=['index','describe','/:id','post','create','put','update','delete','destroy','exports','util','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./chatTransferReport.controller','get','isAuthenticated'];(function(_0x333b96,_0x10749a){var _0x2f42a0=function(_0x1c6cf5){while(--_0x1c6cf5){_0x333b96['push'](_0x333b96['shift']());}};_0x2f42a0(++_0x10749a);}(_0x8e8a,0x9d));var _0xa8e8=function(_0x530f25,_0x324664){_0x530f25=_0x530f25-0x0;var _0x4db94a=_0x8e8a[_0x530f25];return _0x4db94a;};'use strict';var multer=require('multer');var util=require(_0xa8e8('0x0'));var path=require(_0xa8e8('0x1'));var timeout=require('connect-timeout');var express=require(_0xa8e8('0x2'));var router=express[_0xa8e8('0x3')]();var fs_extra=require(_0xa8e8('0x4'));var auth=require(_0xa8e8('0x5'));var interaction=require(_0xa8e8('0x6'));var config=require(_0xa8e8('0x7'));var controller=require(_0xa8e8('0x8'));router[_0xa8e8('0x9')]('/',auth[_0xa8e8('0xa')](),controller[_0xa8e8('0xb')]);router[_0xa8e8('0x9')]('/describe',auth[_0xa8e8('0xa')](),controller[_0xa8e8('0xc')]);router[_0xa8e8('0x9')](_0xa8e8('0xd'),auth['isAuthenticated'](),controller['show']);router[_0xa8e8('0xe')]('/',auth[_0xa8e8('0xa')](),controller[_0xa8e8('0xf')]);router[_0xa8e8('0x10')](_0xa8e8('0xd'),auth[_0xa8e8('0xa')](),controller[_0xa8e8('0x11')]);router[_0xa8e8('0x12')](_0xa8e8('0xd'),auth['isAuthenticated'](),controller[_0xa8e8('0x13')]);module[_0xa8e8('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x74cf=['TEXT','Form\x20submission\x20error','Note','Type\x20a\x20message','Thanks\x20you\x20for\x20your\x20time!','Send','Skip','Feedback','star','thumb','stringify','input','name','text','getDataValue','onlineForm','Comments','Leave\x20your\x20comments','offlineForm','generate','All\x20of\x20our\x20agents\x20are\x20busy\x20at\x20this\x20time.\x20Your\x20chat\x20is\x20very\x20important\x20to\x20us.','Please\x20hold\x20and\x20we\x20will\x20answer\x20your\x20request\x20as\x20soon\x20as\x20possible.','New\x20offline\x20message\x20from\x20websiteName','You\x20received\x20a\x20new\x20offline\x20message\x20from\x20websiteName.\x20Here\x20you\x20can\x20find\x20the\x20details\x20of\x20the\x20request:','Your\x20request\x20has\x20not\x20been\x20processed.','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}','website_alias','bottom_right','alternate','#fafafa','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','mandatoryDispositionPauseId','mandatoryDisposition','Meeting\x20generated\x20for\x20interaction\x20#{{interaction.id}}\x20by\x20{{agent.name}}','sequelize','randomstring','exports','address','STRING','email','Agent','#011F6A','#ffffff','ENUM','rounded','squared','We\x20are\x20here!','Chat','Contact\x20us','INTEGER','BOOLEAN'];(function(_0x24ebdb,_0x411d06){var _0x229d23=function(_0x1c86e8){while(--_0x1c86e8){_0x24ebdb['push'](_0x24ebdb['shift']());}};_0x229d23(++_0x411d06);}(_0x74cf,0x1ba));var _0xf74c=function(_0x3bf4d5,_0x366a37){_0x3bf4d5=_0x3bf4d5-0x0;var _0x48fdea=_0x74cf[_0x3bf4d5];return _0x48fdea;};'use strict';var Sequelize=require(_0xf74c('0x0'));var rs=require(_0xf74c('0x1'));module[_0xf74c('0x2')]={'name':{'type':Sequelize['STRING'],'allowNull':![]},'address':{'type':Sequelize['STRING'],'allowNull':![],'unique':_0xf74c('0x3')},'description':{'type':Sequelize[_0xf74c('0x4')]},'mapKey':{'type':Sequelize[_0xf74c('0x4')],'defaultValue':_0xf74c('0x5')},'mapKeyOffline':{'type':Sequelize[_0xf74c('0x4')],'defaultValue':'email'},'key':{'type':Sequelize[_0xf74c('0x4')],'allowNull':![]},'agentAlias':{'type':Sequelize[_0xf74c('0x4')],'defaultValue':_0xf74c('0x6')},'customerAlias':{'type':Sequelize[_0xf74c('0x4')],'defaultValue':'Me'},'color':{'type':Sequelize[_0xf74c('0x4')],'allowNull':![],'defaultValue':_0xf74c('0x7'),'validate':{'notEmpty':!![]}},'color_button':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0xf74c('0x7'),'validate':{'notEmpty':!![]}},'textColor':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0xf74c('0x8'),'validate':{'notEmpty':!![]}},'fontSize':{'type':Sequelize['INTEGER'],'defaultValue':0xf},'remote':{'type':Sequelize['STRING']},'animation':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'header_shape':{'type':Sequelize[_0xf74c('0x9')](_0xf74c('0xa'),_0xf74c('0xb')),'defaultValue':'rounded'},'header_online':{'type':Sequelize['STRING'],'defaultValue':_0xf74c('0xc')},'start_chat_button':{'type':Sequelize[_0xf74c('0x4')],'defaultValue':_0xf74c('0xd')},'offline_chat_button':{'type':Sequelize[_0xf74c('0x4')],'defaultValue':'Send'},'header_offline':{'type':Sequelize[_0xf74c('0x4')],'defaultValue':_0xf74c('0xe')},'download_transcript':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'timeout':{'type':Sequelize[_0xf74c('0xf')],'defaultValue':0x0},'whiteLabel':{'type':Sequelize['STRING'],'defaultValue':'Powered\x20by\x20xCALLY'},'defaultWhiteLabel':{'type':Sequelize[_0xf74c('0x10')],'defaultValue':!![]},'sitepic':{'type':Sequelize[_0xf74c('0x11')]},'closingQuestion':{'type':Sequelize[_0xf74c('0x4')],'defaultValue':'Do\x20you\x20want\x20to\x20close\x20the\x20interaction?'},'formSubmitSuccessMessage':{'type':Sequelize[_0xf74c('0x4')],'defaultValue':'Form\x20properly\x20submitted'},'formSubmitFailureMessage':{'type':Sequelize[_0xf74c('0x4')],'defaultValue':_0xf74c('0x12')},'noteTitle':{'type':Sequelize[_0xf74c('0x4')],'defaultValue':_0xf74c('0x13')},'placeholderMessage':{'type':Sequelize[_0xf74c('0x4')],'defaultValue':_0xf74c('0x14')},'closingMessage':{'type':Sequelize[_0xf74c('0x4')],'defaultValue':_0xf74c('0x15')},'closingMessageButton':{'type':Sequelize[_0xf74c('0x4')],'defaultValue':_0xf74c('0x16')},'skipMessageButton':{'type':Sequelize['STRING'],'defaultValue':_0xf74c('0x17')},'conditionAgreement':{'type':Sequelize[_0xf74c('0x10')],'defaultValue':![]},'enableRating':{'type':Sequelize[_0xf74c('0x10')],'defaultValue':![]},'enableFeedback':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'enableSendButton':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'feedbackTitle':{'type':Sequelize[_0xf74c('0x4')],'defaultValue':_0xf74c('0x18')},'ratingType':{'type':Sequelize[_0xf74c('0x9')](_0xf74c('0x19'),_0xf74c('0x1a')),'defaultValue':_0xf74c('0x19')},'ratingStarsNumber':{'type':Sequelize[_0xf74c('0xf')],'defaultValue':0x5},'onlineForm':{'type':Sequelize[_0xf74c('0x11')],'defaultValue':function(){return JSON[_0xf74c('0x1b')]({'items':[{'type':_0xf74c('0x1c'),'variable':null,'config':{'placeholder':_0xf74c('0x1d'),'type':_0xf74c('0x1e'),'required':!![]},'props':{'title':_0xf74c('0x1d'),'helpText':''}},{'type':_0xf74c('0x1c'),'props':{'title':_0xf74c('0x5'),'helpText':''},'config':{'required':!![],'placeholder':_0xf74c('0x5'),'type':_0xf74c('0x5')},'variable':null}],'fromKey':0x1});},'get':function(){return this[_0xf74c('0x1f')](_0xf74c('0x20'))?JSON['parse'](this[_0xf74c('0x1f')](_0xf74c('0x20'))):{};},'set':function(_0x12c80e){return this['setDataValue'](_0xf74c('0x20'),JSON[_0xf74c('0x1b')](_0x12c80e));}},'offlineForm':{'type':Sequelize[_0xf74c('0x11')],'defaultValue':function(){return JSON['stringify']({'items':[{'type':_0xf74c('0x1c'),'props':{'title':_0xf74c('0x5'),'helpText':''},'config':{'required':!![],'placeholder':_0xf74c('0x5'),'type':_0xf74c('0x5')},'variable':null},{'type':'textarea','config':{'placeholder':'Comments'},'props':{'title':_0xf74c('0x21'),'helpText':_0xf74c('0x22')}}],'fromKey':0x0});},'get':function(){return this[_0xf74c('0x1f')](_0xf74c('0x23'))?JSON['parse'](this[_0xf74c('0x1f')](_0xf74c('0x23'))):{};},'set':function(_0x460330){return this['setDataValue'](_0xf74c('0x23'),JSON[_0xf74c('0x1b')](_0x460330));}},'token':{'type':Sequelize['STRING'],'defaultValue':function(){return rs[_0xf74c('0x24')]();}},'autoclose':{'type':Sequelize[_0xf74c('0x10')],'defaultValue':!![]},'enableCustomerWriting':{'type':Sequelize[_0xf74c('0x10')],'defaultValue':![]},'forwardTranscript':{'type':Sequelize[_0xf74c('0x10')],'defaultValue':![]},'forwardTranscriptMessage':{'type':Sequelize[_0xf74c('0x4')]},'forwardOffline':{'type':Sequelize[_0xf74c('0x10')],'defaultValue':![]},'forwardOfflineAddress':{'type':Sequelize['STRING']},'waitingTitle':{'type':Sequelize[_0xf74c('0x4')],'defaultValue':_0xf74c('0x25')},'waitingMessage':{'type':Sequelize['STRING'],'defaultValue':_0xf74c('0x26')},'offlineMessageSubject':{'type':Sequelize[_0xf74c('0x4')],'defaultValue':_0xf74c('0x27')},'offlineMessageBody':{'type':Sequelize[_0xf74c('0x4')],'defaultValue':_0xf74c('0x28')},'enableUnmanagedNote':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'unmanagedMessage':{'type':Sequelize['STRING'],'defaultValue':_0xf74c('0x29')},'skipUnmanaged':{'type':Sequelize[_0xf74c('0x4')],'defaultValue':'Skip'},'sendUnmanaged':{'type':Sequelize[_0xf74c('0x4')],'defaultValue':_0xf74c('0x16')},'enableCustomerAttachment':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'enableCustomerCheckmarks':{'type':Sequelize[_0xf74c('0x10')],'defaultValue':![]},'agentAvatar':{'type':Sequelize[_0xf74c('0x11')]},'showAgentAvatar':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'timezone':{'type':Sequelize['STRING']},'notificationTemplate':{'type':Sequelize[_0xf74c('0x11')],'defaultValue':function(){return _0xf74c('0x2a');}},'notificationSound':{'type':Sequelize[_0xf74c('0x10')],'defaultValue':!![]},'notificationShake':{'type':Sequelize[_0xf74c('0x10')],'defaultValue':![]},'hideWhenOffline':{'type':Sequelize[_0xf74c('0x10')],'defaultValue':![]},'agentIdentifier':{'type':Sequelize['STRING'],'defaultValue':_0xf74c('0x2b')},'waitForTheAssignedAgent':{'type':Sequelize[_0xf74c('0xf')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'alignment':{'type':Sequelize[_0xf74c('0x4')],'defaultValue':_0xf74c('0x2c')},'verticalAlignment':{'type':Sequelize[_0xf74c('0xf')],'defaultValue':0x1e},'messagesAlignment':{'type':Sequelize[_0xf74c('0x4')],'defaultValue':_0xf74c('0x2d')},'defaultTitle':{'type':Sequelize[_0xf74c('0x4')]},'customerAvatar':{'type':Sequelize['TEXT']},'showCustomerAvatar':{'type':Sequelize[_0xf74c('0x10')],'defaultValue':![]},'messageFontSize':{'type':Sequelize['INTEGER'],'defaultValue':0xc},'backgroundColor':{'type':Sequelize[_0xf74c('0x4')],'allowNull':![],'defaultValue':_0xf74c('0x2e'),'validate':{'notEmpty':!![]}},'queueTransfer':{'type':Sequelize[_0xf74c('0x10')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0xf74c('0xf')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0xf74c('0x10')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0xf74c('0xf')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'systemAlias':{'type':Sequelize['STRING'],'defaultValue':'System'},'systemAvatar':{'type':Sequelize['TEXT']},'mandatoryDispositionPauseId':{'type':Sequelize[_0xf74c('0xf')],'comment':_0xf74c('0x2f')},'mandatoryDisposition':{'type':Sequelize['BOOLEAN'],'defaultValue':![],'comment':'Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','set':function(_0x1c0778){if(!_0x1c0778)this['setDataValue'](_0xf74c('0x30'),null);this['setDataValue'](_0xf74c('0x31'),_0x1c0778);}},'vidaooEscalation':{'type':Sequelize[_0xf74c('0x10')],'defaultValue':![]},'vidaooApiKey':{'type':Sequelize[_0xf74c('0x4')]},'vidaooTopic':{'type':Sequelize[_0xf74c('0x4')],'allowNull':![],'defaultValue':'Generated\x20by\x20XCALLY\x20Motion'},'vidaooNote':{'type':Sequelize['STRING'],'defaultValue':function(){return _0xf74c('0x32');}},'vidaooMetadata':{'type':Sequelize[_0xf74c('0x11')],'defaultValue':null},'openNewInteraction':{'type':Sequelize[_0xf74c('0x10')],'defaultValue':![],'allowNull':!![]},'subjectOffline':{'type':Sequelize[_0xf74c('0x11')]}};
\ No newline at end of file
+var _0x3794=['Comments','Leave\x20your\x20comments','offlineForm','setDataValue','generate','All\x20of\x20our\x20agents\x20are\x20busy\x20at\x20this\x20time.\x20Your\x20chat\x20is\x20very\x20important\x20to\x20us.','You\x20received\x20a\x20new\x20offline\x20message\x20from\x20websiteName.\x20Here\x20you\x20can\x20find\x20the\x20details\x20of\x20the\x20request:','Your\x20request\x20has\x20not\x20been\x20processed.','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}','bottom_right','#fafafa','System','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','Generated\x20by\x20XCALLY\x20Motion','Meeting\x20generated\x20for\x20interaction\x20#{{interaction.id}}\x20by\x20{{agent.name}}','sequelize','randomstring','exports','STRING','address','email','Agent','#011F6A','#ffffff','INTEGER','BOOLEAN','rounded','squared','Chat','Contact\x20us','Powered\x20by\x20xCALLY','TEXT','Form\x20properly\x20submitted','Note','Type\x20a\x20message','Thanks\x20you\x20for\x20your\x20time!','Send','Skip','Feedback','ENUM','star','thumb','stringify','name','input','getDataValue','parse','onlineForm','textarea'];(function(_0x26c85e,_0x135691){var _0x4bf3d4=function(_0x273afc){while(--_0x273afc){_0x26c85e['push'](_0x26c85e['shift']());}};_0x4bf3d4(++_0x135691);}(_0x3794,0x71));var _0x4379=function(_0x3869c8,_0x2ff137){_0x3869c8=_0x3869c8-0x0;var _0x4caf60=_0x3794[_0x3869c8];return _0x4caf60;};'use strict';var Sequelize=require(_0x4379('0x0'));var rs=require(_0x4379('0x1'));module[_0x4379('0x2')]={'name':{'type':Sequelize[_0x4379('0x3')],'allowNull':![]},'address':{'type':Sequelize[_0x4379('0x3')],'allowNull':![],'unique':_0x4379('0x4')},'description':{'type':Sequelize[_0x4379('0x3')]},'mapKey':{'type':Sequelize[_0x4379('0x3')],'defaultValue':_0x4379('0x5')},'mapKeyOffline':{'type':Sequelize[_0x4379('0x3')],'defaultValue':_0x4379('0x5')},'key':{'type':Sequelize[_0x4379('0x3')],'allowNull':![]},'agentAlias':{'type':Sequelize['STRING'],'defaultValue':_0x4379('0x6')},'customerAlias':{'type':Sequelize[_0x4379('0x3')],'defaultValue':'Me'},'color':{'type':Sequelize[_0x4379('0x3')],'allowNull':![],'defaultValue':_0x4379('0x7'),'validate':{'notEmpty':!![]}},'color_button':{'type':Sequelize[_0x4379('0x3')],'allowNull':![],'defaultValue':_0x4379('0x7'),'validate':{'notEmpty':!![]}},'textColor':{'type':Sequelize[_0x4379('0x3')],'allowNull':![],'defaultValue':_0x4379('0x8'),'validate':{'notEmpty':!![]}},'fontSize':{'type':Sequelize[_0x4379('0x9')],'defaultValue':0xf},'remote':{'type':Sequelize[_0x4379('0x3')]},'animation':{'type':Sequelize[_0x4379('0xa')],'defaultValue':!![]},'header_shape':{'type':Sequelize['ENUM'](_0x4379('0xb'),_0x4379('0xc')),'defaultValue':_0x4379('0xb')},'header_online':{'type':Sequelize[_0x4379('0x3')],'defaultValue':'We\x20are\x20here!'},'start_chat_button':{'type':Sequelize[_0x4379('0x3')],'defaultValue':_0x4379('0xd')},'offline_chat_button':{'type':Sequelize[_0x4379('0x3')],'defaultValue':'Send'},'header_offline':{'type':Sequelize[_0x4379('0x3')],'defaultValue':_0x4379('0xe')},'download_transcript':{'type':Sequelize[_0x4379('0xa')],'defaultValue':!![]},'timeout':{'type':Sequelize[_0x4379('0x9')],'defaultValue':0x0},'whiteLabel':{'type':Sequelize[_0x4379('0x3')],'defaultValue':_0x4379('0xf')},'defaultWhiteLabel':{'type':Sequelize[_0x4379('0xa')],'defaultValue':!![]},'sitepic':{'type':Sequelize[_0x4379('0x10')]},'closingQuestion':{'type':Sequelize[_0x4379('0x3')],'defaultValue':'Do\x20you\x20want\x20to\x20close\x20the\x20interaction?'},'formSubmitSuccessMessage':{'type':Sequelize[_0x4379('0x3')],'defaultValue':_0x4379('0x11')},'formSubmitFailureMessage':{'type':Sequelize[_0x4379('0x3')],'defaultValue':'Form\x20submission\x20error'},'noteTitle':{'type':Sequelize['STRING'],'defaultValue':_0x4379('0x12')},'placeholderMessage':{'type':Sequelize[_0x4379('0x3')],'defaultValue':_0x4379('0x13')},'closingMessage':{'type':Sequelize[_0x4379('0x3')],'defaultValue':_0x4379('0x14')},'closingMessageButton':{'type':Sequelize['STRING'],'defaultValue':_0x4379('0x15')},'skipMessageButton':{'type':Sequelize[_0x4379('0x3')],'defaultValue':_0x4379('0x16')},'conditionAgreement':{'type':Sequelize[_0x4379('0xa')],'defaultValue':![]},'enableRating':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'enableFeedback':{'type':Sequelize[_0x4379('0xa')],'defaultValue':![]},'enableSendButton':{'type':Sequelize[_0x4379('0xa')],'defaultValue':![]},'feedbackTitle':{'type':Sequelize[_0x4379('0x3')],'defaultValue':_0x4379('0x17')},'ratingType':{'type':Sequelize[_0x4379('0x18')](_0x4379('0x19'),_0x4379('0x1a')),'defaultValue':'star'},'ratingStarsNumber':{'type':Sequelize[_0x4379('0x9')],'defaultValue':0x5},'onlineForm':{'type':Sequelize[_0x4379('0x10')],'defaultValue':function(){return JSON[_0x4379('0x1b')]({'items':[{'type':'input','variable':null,'config':{'placeholder':'name','type':'text','required':!![]},'props':{'title':_0x4379('0x1c'),'helpText':''}},{'type':_0x4379('0x1d'),'props':{'title':'email','helpText':''},'config':{'required':!![],'placeholder':'email','type':_0x4379('0x5')},'variable':null}],'fromKey':0x1});},'get':function(){return this[_0x4379('0x1e')]('onlineForm')?JSON[_0x4379('0x1f')](this['getDataValue'](_0x4379('0x20'))):{};},'set':function(_0x41dc5d){return this['setDataValue']('onlineForm',JSON[_0x4379('0x1b')](_0x41dc5d));}},'offlineForm':{'type':Sequelize[_0x4379('0x10')],'defaultValue':function(){return JSON[_0x4379('0x1b')]({'items':[{'type':_0x4379('0x1d'),'props':{'title':_0x4379('0x5'),'helpText':''},'config':{'required':!![],'placeholder':_0x4379('0x5'),'type':_0x4379('0x5')},'variable':null},{'type':_0x4379('0x21'),'config':{'placeholder':_0x4379('0x22')},'props':{'title':_0x4379('0x22'),'helpText':_0x4379('0x23')}}],'fromKey':0x0});},'get':function(){return this[_0x4379('0x1e')](_0x4379('0x24'))?JSON[_0x4379('0x1f')](this[_0x4379('0x1e')]('offlineForm')):{};},'set':function(_0x235c1f){return this[_0x4379('0x25')](_0x4379('0x24'),JSON['stringify'](_0x235c1f));}},'token':{'type':Sequelize[_0x4379('0x3')],'defaultValue':function(){return rs[_0x4379('0x26')]();}},'autoclose':{'type':Sequelize[_0x4379('0xa')],'defaultValue':!![]},'enableCustomerWriting':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'forwardTranscript':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'forwardTranscriptMessage':{'type':Sequelize[_0x4379('0x3')]},'forwardOffline':{'type':Sequelize[_0x4379('0xa')],'defaultValue':![]},'forwardOfflineAddress':{'type':Sequelize[_0x4379('0x3')]},'waitingTitle':{'type':Sequelize[_0x4379('0x3')],'defaultValue':_0x4379('0x27')},'waitingMessage':{'type':Sequelize[_0x4379('0x3')],'defaultValue':'Please\x20hold\x20and\x20we\x20will\x20answer\x20your\x20request\x20as\x20soon\x20as\x20possible.'},'offlineMessageSubject':{'type':Sequelize[_0x4379('0x3')],'defaultValue':'New\x20offline\x20message\x20from\x20websiteName'},'offlineMessageBody':{'type':Sequelize['STRING'],'defaultValue':_0x4379('0x28')},'enableUnmanagedNote':{'type':Sequelize[_0x4379('0xa')],'defaultValue':!![]},'unmanagedMessage':{'type':Sequelize[_0x4379('0x3')],'defaultValue':_0x4379('0x29')},'skipUnmanaged':{'type':Sequelize['STRING'],'defaultValue':_0x4379('0x16')},'sendUnmanaged':{'type':Sequelize[_0x4379('0x3')],'defaultValue':_0x4379('0x15')},'enableCustomerAttachment':{'type':Sequelize[_0x4379('0xa')],'defaultValue':![]},'enableCustomerCheckmarks':{'type':Sequelize[_0x4379('0xa')],'defaultValue':![]},'agentAvatar':{'type':Sequelize[_0x4379('0x10')]},'showAgentAvatar':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'timezone':{'type':Sequelize['STRING']},'notificationTemplate':{'type':Sequelize['TEXT'],'defaultValue':function(){return _0x4379('0x2a');}},'notificationSound':{'type':Sequelize[_0x4379('0xa')],'defaultValue':!![]},'notificationShake':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'hideWhenOffline':{'type':Sequelize[_0x4379('0xa')],'defaultValue':![]},'agentIdentifier':{'type':Sequelize[_0x4379('0x3')],'defaultValue':'website_alias'},'waitForTheAssignedAgent':{'type':Sequelize[_0x4379('0x9')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'alignment':{'type':Sequelize['STRING'],'defaultValue':_0x4379('0x2b')},'verticalAlignment':{'type':Sequelize[_0x4379('0x9')],'defaultValue':0x1e},'messagesAlignment':{'type':Sequelize[_0x4379('0x3')],'defaultValue':'alternate'},'defaultTitle':{'type':Sequelize[_0x4379('0x3')]},'customerAvatar':{'type':Sequelize[_0x4379('0x10')]},'showCustomerAvatar':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'messageFontSize':{'type':Sequelize[_0x4379('0x9')],'defaultValue':0xc},'backgroundColor':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0x4379('0x2c'),'validate':{'notEmpty':!![]}},'queueTransfer':{'type':Sequelize[_0x4379('0xa')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0x4379('0x9')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0x4379('0xa')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0x4379('0x9')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'systemAlias':{'type':Sequelize[_0x4379('0x3')],'defaultValue':_0x4379('0x2d')},'systemAvatar':{'type':Sequelize['TEXT']},'mandatoryDispositionPauseId':{'type':Sequelize['INTEGER'],'comment':'Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled'},'mandatoryDisposition':{'type':Sequelize[_0x4379('0xa')],'defaultValue':![],'comment':_0x4379('0x2e'),'set':function(_0x33faf3){if(!_0x33faf3)this[_0x4379('0x25')]('mandatoryDispositionPauseId',null);this[_0x4379('0x25')]('mandatoryDisposition',_0x33faf3);}},'vidaooEscalation':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'vidaooApiKey':{'type':Sequelize[_0x4379('0x3')]},'vidaooTopic':{'type':Sequelize[_0x4379('0x3')],'allowNull':![],'defaultValue':_0x4379('0x2f')},'vidaooNote':{'type':Sequelize['STRING'],'defaultValue':function(){return _0x4379('0x30');}},'vidaooMetadata':{'type':Sequelize['TEXT'],'defaultValue':null},'openNewInteraction':{'type':Sequelize[_0x4379('0xa')],'defaultValue':![],'allowNull':!![]},'subjectOffline':{'type':Sequelize['TEXT']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6ccd=['UserId','User','unshift','agent','waitForTheAssignedAgent','forcedOwnership','Start','EventManager','offline','files','no\x20available\x20attributes','mapKeyOffline','MailAccount','readFileSync','utf8','render','offlineMessageBody','ChatOfflineMessage','originalname','mimetype','server','attachments','basename','openNewInteraction','sequelize','transaction','Attachment','bulkCreate','MailServerOut','Smtp','forwardOffline','service','host','port','secure','authentication','auth','SendMail','forwardOfflineAddress','offlineMessageSubject','MailAccountId','subjectOffline','mapValues','email','Chat','NotifyMailAccount','notifyMail','offline-chat','Could\x20not\x20remove\x20attachment\x20file','addInteraction','omit','getInteractions','Owner','fullname','Tag','Tags','color','Command','timezone','iftime\x20%s,%s','interval','iftime\x20%s','indexOf','true','[%s][INTERVAL][%s]\x20%s\x20%s\x20(%s)','ONLINE','OFFLINE','inspect','getSnippet','Interval','Intervals','getProactiveActions','virtual','increment','chatLicenseExceeded','some','remote','x-real-ip','connection','remoteAddress','replace','alignment','verticalAlignment','textColor','color_button','backgroundColor','ISOLATION_LEVELS','READ_COMMITTED','findAndCountAll','getApplications','addProactiveActions','ChatProactiveAction','getFields','online','offlineForm','items','fromKey','getOfflineMessages','Contact','Attachments','addAgents','emit','userChatWebsite:save','removeAgents','isArray','userChatWebsite:remove','getAgents','bluebird','util','path','lodash','querystring','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/environment','redis','defaults','localhost','socket.io-emitter','./chatWebsite.socket','register','jayson/promise','http','client','request','then','info','ChatWebsite,\x20%s,\x20%s','request\x20sent','ChatWebsite,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','sendStatus','status','end','offset','undefined','count','set','Content-Range','json','update','destroy','ChatWebsites','UserProfileResource','stack','name','send','Pause','map','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','limit','order','sort','pick','where','merge','VIRTUAL','filter','options','ChatWebsite','includeAll','include','findAll','rows','params','mandatoryDispositionPause','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','get','UserProfileSection','userProfileId','autoAssociation','body','describe','addDisposition','ChatWebsiteId','Disposition','getDispositions','findOne','nolimit','removeDispositions','ids','addAnswer','CannedAnswer','removeAnswers','addLogo','file','filename','addCustomerAvatar','addSystemAvatar','systemAvatar','getLogo','join','root','server/files/images/logos/default_logo.svg','sitepic','../../config/license/util','getLicense','isNil','existsSync','server/files/images/logos/','download','getAvatar','server/files/images/avatars/default_avatar.png','agentAvatar','server/files/images/avatars/','server/files/images/avatars/customer_avatar.png','customerAvatar','showCustomerAvatar','notify','user-agent-parser','setUA','headers','user-agent','getResult','CmContact','Sequelize','ValidationError','difference','updatedAt','createdAt','CompanyId','ListId','from','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','CmList','List','Contacts','DESC','ChatApplication','Applications','account','list','applications','orderBy','priority','contact','customerIp','cf-connecting-ip','first','x-forwarded-for','split','firstName','lastName','x-real-port','referer','browser','version','format','%s\x20%s','unknown','device','vendor','%s\x20%s\x20%s','threadId','ChatInteraction','externalUrl','ContactId','interaction','spread','messageId','created','autoclose','push','close','unmanaged','*,*,*,*','ChatMessage','AttachmentId'];(function(_0x36c9b4,_0x25a6c3){var _0x530c21=function(_0x21949d){while(--_0x21949d){_0x36c9b4['push'](_0x36c9b4['shift']());}};_0x530c21(++_0x25a6c3);}(_0x6ccd,0x6b));var _0xd6cc=function(_0x321524,_0x113e80){_0x321524=_0x321524-0x0;var _0x4856ec=_0x6ccd[_0x321524];return _0x4856ec;};'use strict';var BPromise=require(_0xd6cc('0x0'));var Mustache=require('mustache');var util=require(_0xd6cc('0x1'));var path=require(_0xd6cc('0x2'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xd6cc('0x3'));var querystring=require(_0xd6cc('0x4'));var Redis=require(_0xd6cc('0x5'));var qs=require(_0xd6cc('0x6'));var logger=require(_0xd6cc('0x7'))(_0xd6cc('0x8'));var config=require(_0xd6cc('0x9'));var db=require('../../mysqldb')['db'];config[_0xd6cc('0xa')]=_[_0xd6cc('0xb')](config[_0xd6cc('0xa')],{'host':_0xd6cc('0xc'),'port':0x18eb});var socket=require(_0xd6cc('0xd'))(new Redis(config[_0xd6cc('0xa')]));require(_0xd6cc('0xe'))[_0xd6cc('0xf')](socket);var jayson=require(_0xd6cc('0x10'));var client=jayson['client'][_0xd6cc('0x11')]({'port':0x232c});var client9002=jayson[_0xd6cc('0x12')][_0xd6cc('0x11')]({'port':0x232a});var client9003=jayson['client'][_0xd6cc('0x11')]({'port':0x232b});var client9001=jayson[_0xd6cc('0x12')][_0xd6cc('0x11')]({'port':0x2329});function respondWithRpcPromise(_0x430087,_0x3862ab,_0x218f09,_0x1e8a85){return new BPromise(function(_0x7355ef,_0x2f991d){var _0xd2b480=_0x1e8a85||client;return _0xd2b480[_0xd6cc('0x13')](_0x430087,_0x218f09)[_0xd6cc('0x14')](function(_0x27be57){logger[_0xd6cc('0x15')](_0xd6cc('0x16'),_0x3862ab,_0xd6cc('0x17'));logger['debug'](_0xd6cc('0x18'),_0x3862ab,'request\x20sent',JSON[_0xd6cc('0x19')](_0x27be57));if(_0x27be57[_0xd6cc('0x1a')]){if(_0x27be57[_0xd6cc('0x1a')][_0xd6cc('0x1b')]===0x1f4){logger['error'](_0xd6cc('0x16'),_0x3862ab,_0x27be57[_0xd6cc('0x1a')][_0xd6cc('0x1c')]);return _0x2f991d(_0x27be57[_0xd6cc('0x1a')]['message']);}logger['error'](_0xd6cc('0x16'),_0x3862ab,_0x27be57['error'][_0xd6cc('0x1c')]);return _0x7355ef(_0x27be57[_0xd6cc('0x1a')][_0xd6cc('0x1c')]);}else{logger[_0xd6cc('0x15')](_0xd6cc('0x16'),_0x3862ab,_0xd6cc('0x17'));_0x7355ef(_0x27be57[_0xd6cc('0x1d')]['message']);}})[_0xd6cc('0x1e')](function(_0x539782){logger['error'](_0xd6cc('0x16'),_0x3862ab,_0x539782);_0x2f991d(_0x539782);});});}function respondWithStatusCode(_0x21460b,_0x4b90e2){_0x4b90e2=_0x4b90e2||0xcc;return function(_0x11c853){if(_0x11c853){return _0x21460b[_0xd6cc('0x1f')](_0x4b90e2);}return _0x21460b[_0xd6cc('0x20')](_0x4b90e2)[_0xd6cc('0x21')]();};}function respondWithResult(_0x41cbc3,_0xd33d92){_0xd33d92=_0xd33d92||0xc8;return function(_0x3d6a33){if(_0x3d6a33){return _0x41cbc3[_0xd6cc('0x20')](_0xd33d92)['json'](_0x3d6a33);}};}function respondWithFilteredResult(_0x2cfbf2,_0x2e078b){return function(_0x5556b8){if(_0x5556b8){var _0x36db39=typeof _0x2e078b[_0xd6cc('0x22')]===_0xd6cc('0x23')&&typeof _0x2e078b['limit']===_0xd6cc('0x23');var _0x3b33be=_0x5556b8[_0xd6cc('0x24')];var _0x673b1e=_0x36db39?0x0:_0x2e078b[_0xd6cc('0x22')];var _0x18c92b=_0x36db39?_0x5556b8[_0xd6cc('0x24')]:_0x2e078b[_0xd6cc('0x22')]+_0x2e078b['limit'];var _0x38ac2f;if(_0x18c92b>=_0x3b33be){_0x18c92b=_0x3b33be;_0x38ac2f=0xc8;}else{_0x38ac2f=0xce;}_0x2cfbf2['status'](_0x38ac2f);return _0x2cfbf2[_0xd6cc('0x25')](_0xd6cc('0x26'),_0x673b1e+'-'+_0x18c92b+'/'+_0x3b33be)[_0xd6cc('0x27')](_0x5556b8);}return null;};}function saveUpdates(_0x291751){return function(_0x57e95e){if(_0x57e95e){return _0x57e95e[_0xd6cc('0x28')](_0x291751)['then'](function(_0x2e25d2){return _0x2e25d2;});}return null;};}function removeEntity(_0x1ace55){return function(_0x2fc59c){if(_0x2fc59c){return _0x2fc59c[_0xd6cc('0x29')]()[_0xd6cc('0x14')](function(){var _0x144a18=_0x2fc59c['get']({'plain':!![]});var _0x2d40dc=_0xd6cc('0x2a');return db[_0xd6cc('0x2b')][_0xd6cc('0x29')]({'where':{'type':_0x2d40dc,'resourceId':_0x144a18['id']}})[_0xd6cc('0x14')](function(){return _0x2fc59c;});})[_0xd6cc('0x14')](function(){_0x1ace55['status'](0xcc)[_0xd6cc('0x21')]();});}};}function handleEntityNotFound(_0x5549a8){return function(_0x470fde){if(!_0x470fde){_0x5549a8['sendStatus'](0x194);}return _0x470fde;};}function handleError(_0x16d53f,_0x14c5eb){_0x14c5eb=_0x14c5eb||0x1f4;return function(_0x229b21){logger[_0xd6cc('0x1a')](_0x229b21[_0xd6cc('0x2c')]);if(_0x229b21[_0xd6cc('0x2d')]){delete _0x229b21['name'];}_0x16d53f[_0xd6cc('0x20')](_0x14c5eb)[_0xd6cc('0x2e')](_0x229b21);};}exports['index']=function(_0x14d0e1,_0x18af2a){var _0x5027c6={'include':[{'model':db[_0xd6cc('0x2f')],'as':'mandatoryDispositionPause'}]},_0x27bfb7={},_0x26446a={'count':0x0,'rows':[]};var _0x48c87c=_[_0xd6cc('0x30')](db['ChatWebsite'][_0xd6cc('0x31')],function(_0x21e813){return{'name':_0x21e813[_0xd6cc('0x32')],'type':_0x21e813[_0xd6cc('0x33')][_0xd6cc('0x34')]};});_0x27bfb7[_0xd6cc('0x35')]=_['map'](_0x48c87c,'name');_0x27bfb7[_0xd6cc('0x36')]=_[_0xd6cc('0x37')](_0x14d0e1[_0xd6cc('0x36')]);_0x27bfb7[_0xd6cc('0x38')]=_[_0xd6cc('0x39')](_0x27bfb7['model'],_0x27bfb7[_0xd6cc('0x36')]);_0x5027c6[_0xd6cc('0x3a')]=_[_0xd6cc('0x39')](_0x27bfb7['model'],qs[_0xd6cc('0x3b')](_0x14d0e1[_0xd6cc('0x36')]['fields']));_0x5027c6[_0xd6cc('0x3a')]=_0x5027c6[_0xd6cc('0x3a')][_0xd6cc('0x3c')]?_0x5027c6[_0xd6cc('0x3a')]:_0x27bfb7[_0xd6cc('0x35')];if(!_0x14d0e1[_0xd6cc('0x36')][_0xd6cc('0x3d')]('nolimit')){_0x5027c6[_0xd6cc('0x3e')]=qs[_0xd6cc('0x3e')](_0x14d0e1[_0xd6cc('0x36')]['limit']);_0x5027c6['offset']=qs[_0xd6cc('0x22')](_0x14d0e1[_0xd6cc('0x36')][_0xd6cc('0x22')]);}_0x5027c6[_0xd6cc('0x3f')]=qs[_0xd6cc('0x40')](_0x14d0e1['query'][_0xd6cc('0x40')]);_0x5027c6['where']=qs[_0xd6cc('0x38')](_[_0xd6cc('0x41')](_0x14d0e1['query'],_0x27bfb7[_0xd6cc('0x38')]),_0x48c87c);if(_0x14d0e1[_0xd6cc('0x36')]['filter']){_0x5027c6[_0xd6cc('0x42')]=_[_0xd6cc('0x43')](_0x5027c6[_0xd6cc('0x42')],{'$or':_[_0xd6cc('0x30')](_0x48c87c,function(_0x5968e1){if(_0x5968e1['type']!==_0xd6cc('0x44')){var _0x5bb028={};_0x5bb028[_0x5968e1[_0xd6cc('0x2d')]]={'$like':'%'+_0x14d0e1[_0xd6cc('0x36')][_0xd6cc('0x45')]+'%'};return _0x5bb028;}})});}_0x5027c6=_[_0xd6cc('0x43')]({},_0x5027c6,_0x14d0e1[_0xd6cc('0x46')]);var _0x4759af={'where':_0x5027c6[_0xd6cc('0x42')]};return db[_0xd6cc('0x47')][_0xd6cc('0x24')](_0x4759af)[_0xd6cc('0x14')](function(_0x561aa7){_0x26446a[_0xd6cc('0x24')]=_0x561aa7;if(_0x14d0e1[_0xd6cc('0x36')][_0xd6cc('0x48')]){_0x5027c6[_0xd6cc('0x49')]=[{'all':!![]}];}return db[_0xd6cc('0x47')][_0xd6cc('0x4a')](_0x5027c6);})[_0xd6cc('0x14')](function(_0x5986ba){_0x26446a[_0xd6cc('0x4b')]=_0x5986ba;return _0x26446a;})['then'](respondWithFilteredResult(_0x18af2a,_0x5027c6))[_0xd6cc('0x1e')](handleError(_0x18af2a,null));};exports['show']=function(_0x4a12d3,_0x41a988){var _0x442381={'raw':![],'where':{'id':_0x4a12d3[_0xd6cc('0x4c')]['id']},'include':[{'model':db['Pause'],'as':_0xd6cc('0x4d')}]},_0xd5bbff={};_0xd5bbff['model']=_['keys'](db[_0xd6cc('0x47')][_0xd6cc('0x31')]);_0xd5bbff[_0xd6cc('0x36')]=_[_0xd6cc('0x37')](_0x4a12d3[_0xd6cc('0x36')]);_0xd5bbff[_0xd6cc('0x38')]=_[_0xd6cc('0x39')](_0xd5bbff[_0xd6cc('0x35')],_0xd5bbff[_0xd6cc('0x36')]);_0x442381[_0xd6cc('0x3a')]=_[_0xd6cc('0x39')](_0xd5bbff[_0xd6cc('0x35')],qs[_0xd6cc('0x3b')](_0x4a12d3[_0xd6cc('0x36')][_0xd6cc('0x3b')]));_0x442381['attributes']=_0x442381[_0xd6cc('0x3a')]['length']?_0x442381[_0xd6cc('0x3a')]:_0xd5bbff[_0xd6cc('0x35')];if(_0x4a12d3[_0xd6cc('0x36')][_0xd6cc('0x48')]){_0x442381[_0xd6cc('0x49')]=[{'all':!![]}];}_0x442381=_[_0xd6cc('0x43')]({},_0x442381,_0x4a12d3[_0xd6cc('0x46')]);return db['ChatWebsite'][_0xd6cc('0x4e')](_0x442381)['then'](handleEntityNotFound(_0x41a988,null))[_0xd6cc('0x14')](respondWithResult(_0x41a988,null))[_0xd6cc('0x1e')](handleError(_0x41a988,null));};exports['create']=function(_0x57b074,_0x1790b2){return db[_0xd6cc('0x47')][_0xd6cc('0x4f')](_0x57b074['body'],{})['then'](function(_0x544dab){var _0x295583=_0x57b074[_0xd6cc('0x50')]['get']({'plain':!![]});if(!_0x295583)throw new Error(_0xd6cc('0x51'));if(_0x295583['role']===_0xd6cc('0x50')){var _0x13290=_0x544dab[_0xd6cc('0x52')]({'plain':!![]});var _0x4f29e2=_0xd6cc('0x2a');return db[_0xd6cc('0x53')][_0xd6cc('0x4e')]({'where':{'name':_0x4f29e2,'userProfileId':_0x295583[_0xd6cc('0x54')]},'raw':!![]})['then'](function(_0x134c4e){if(_0x134c4e&&_0x134c4e[_0xd6cc('0x55')]===0x0){return db[_0xd6cc('0x2b')][_0xd6cc('0x4f')]({'name':_0x13290['name'],'resourceId':_0x13290['id'],'type':_0x134c4e[_0xd6cc('0x2d')],'sectionId':_0x134c4e['id']},{})[_0xd6cc('0x14')](function(){return _0x544dab;});}else{return _0x544dab;}})[_0xd6cc('0x1e')](function(_0x1f95d6){logger[_0xd6cc('0x1a')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x1f95d6);throw _0x1f95d6;});}return _0x544dab;})['then'](respondWithResult(_0x1790b2,0xc9))[_0xd6cc('0x1e')](handleError(_0x1790b2,null));};exports[_0xd6cc('0x28')]=function(_0x3858e1,_0xad689b){if(_0x3858e1[_0xd6cc('0x56')]['id']){delete _0x3858e1[_0xd6cc('0x56')]['id'];}return db[_0xd6cc('0x47')][_0xd6cc('0x4e')]({'where':{'id':_0x3858e1['params']['id']},'include':[{'model':db['Pause'],'as':_0xd6cc('0x4d')}]})[_0xd6cc('0x14')](handleEntityNotFound(_0xad689b,null))[_0xd6cc('0x14')](saveUpdates(_0x3858e1[_0xd6cc('0x56')],null))[_0xd6cc('0x14')](respondWithResult(_0xad689b,null))['catch'](handleError(_0xad689b,null));};exports[_0xd6cc('0x29')]=function(_0x22f54f,_0x5b55b1){return db[_0xd6cc('0x47')][_0xd6cc('0x4e')]({'where':{'id':_0x22f54f['params']['id']}})[_0xd6cc('0x14')](handleEntityNotFound(_0x5b55b1,null))['then'](removeEntity(_0x5b55b1,null))[_0xd6cc('0x1e')](handleError(_0x5b55b1,null));};exports[_0xd6cc('0x57')]=function(_0x5c4d99,_0x5d0ff6){return db['ChatWebsite'][_0xd6cc('0x57')]()['then'](respondWithResult(_0x5d0ff6,null))[_0xd6cc('0x1e')](handleError(_0x5d0ff6,null));};exports[_0xd6cc('0x58')]=function(_0x1b8d99,_0x212dd1){if(_0x1b8d99[_0xd6cc('0x56')]['id']){delete _0x1b8d99[_0xd6cc('0x56')]['id'];}return db[_0xd6cc('0x47')][_0xd6cc('0x4e')]({'where':{'id':_0x1b8d99[_0xd6cc('0x4c')]['id']}})['then'](handleEntityNotFound(_0x212dd1,null))[_0xd6cc('0x14')](function(_0x3f06d1){if(_0x3f06d1){_0x1b8d99[_0xd6cc('0x56')][_0xd6cc('0x59')]=_0x3f06d1['id'];return db[_0xd6cc('0x5a')][_0xd6cc('0x4f')](_0x1b8d99[_0xd6cc('0x56')]);}})[_0xd6cc('0x14')](respondWithResult(_0x212dd1,null))[_0xd6cc('0x1e')](handleError(_0x212dd1,null));};exports[_0xd6cc('0x5b')]=function(_0x59f9b8,_0x2ce833){var _0x4e6a9c={'raw':![],'where':{}};var _0x2d8134={};var _0x58d985={'count':0x0,'rows':[]};return db['ChatWebsite'][_0xd6cc('0x5c')]({'where':{'id':_0x59f9b8[_0xd6cc('0x4c')]['id']}})[_0xd6cc('0x14')](handleEntityNotFound(_0x2ce833,null))['then'](function(_0x166fc0){if(_0x166fc0){_0x2d8134[_0xd6cc('0x35')]=_['keys'](db[_0xd6cc('0x5a')][_0xd6cc('0x31')]);_0x2d8134[_0xd6cc('0x36')]=_[_0xd6cc('0x37')](_0x59f9b8[_0xd6cc('0x36')]);_0x2d8134[_0xd6cc('0x38')]=_[_0xd6cc('0x39')](_0x2d8134[_0xd6cc('0x35')],_0x2d8134[_0xd6cc('0x36')]);_0x4e6a9c[_0xd6cc('0x3a')]=_[_0xd6cc('0x39')](_0x2d8134[_0xd6cc('0x35')],qs['fields'](_0x59f9b8['query'][_0xd6cc('0x3b')]));_0x4e6a9c[_0xd6cc('0x3a')]=_0x4e6a9c['attributes']['length']?_0x4e6a9c['attributes']:_0x2d8134['model'];if(!_0x59f9b8[_0xd6cc('0x36')][_0xd6cc('0x3d')](_0xd6cc('0x5d'))){_0x4e6a9c['limit']=qs[_0xd6cc('0x3e')](_0x59f9b8[_0xd6cc('0x36')][_0xd6cc('0x3e')]);_0x4e6a9c[_0xd6cc('0x22')]=qs['offset'](_0x59f9b8['query'][_0xd6cc('0x22')]);}_0x4e6a9c[_0xd6cc('0x3f')]=qs[_0xd6cc('0x40')](_0x59f9b8['query']['sort']);_0x4e6a9c['where']=qs[_0xd6cc('0x38')](_[_0xd6cc('0x41')](_0x59f9b8[_0xd6cc('0x36')],_0x2d8134[_0xd6cc('0x38')]));_0x4e6a9c[_0xd6cc('0x42')][_0xd6cc('0x59')]=_0x166fc0['id'];if(_0x59f9b8[_0xd6cc('0x36')][_0xd6cc('0x45')]){_0x4e6a9c[_0xd6cc('0x42')]=_[_0xd6cc('0x43')](_0x4e6a9c['where'],{'$or':_['map'](_0x4e6a9c['attributes'],function(_0x24b610){var _0x434705={};_0x434705[_0x24b610]={'$like':'%'+_0x59f9b8[_0xd6cc('0x36')][_0xd6cc('0x45')]+'%'};return _0x434705;})});}_0x4e6a9c=_[_0xd6cc('0x43')]({},_0x4e6a9c,_0x59f9b8['options']);return db[_0xd6cc('0x5a')][_0xd6cc('0x24')]({'where':_0x4e6a9c['where']})[_0xd6cc('0x14')](function(_0x587510){_0x58d985['count']=_0x587510;if(_0x59f9b8[_0xd6cc('0x36')][_0xd6cc('0x48')]){_0x4e6a9c[_0xd6cc('0x49')]=[{'all':!![]}];}return db[_0xd6cc('0x5a')][_0xd6cc('0x4a')](_0x4e6a9c);})['then'](function(_0x46de30){_0x58d985[_0xd6cc('0x4b')]=_0x46de30;return _0x58d985;});}})['then'](respondWithFilteredResult(_0x2ce833,_0x4e6a9c))[_0xd6cc('0x1e')](handleError(_0x2ce833,null));};exports['removeDispositions']=function(_0xe188be,_0x5f275d){return db['ChatWebsite'][_0xd6cc('0x4e')]({'where':{'id':_0xe188be[_0xd6cc('0x4c')]['id']}})[_0xd6cc('0x14')](handleEntityNotFound(_0x5f275d,null))[_0xd6cc('0x14')](function(_0x49c745){if(_0x49c745){return _0x49c745[_0xd6cc('0x5e')](_0xe188be[_0xd6cc('0x36')][_0xd6cc('0x5f')]);}})[_0xd6cc('0x14')](respondWithStatusCode(_0x5f275d,null))[_0xd6cc('0x1e')](handleError(_0x5f275d,null));};exports[_0xd6cc('0x60')]=function(_0x43c32c,_0x15e6bc){if(_0x43c32c[_0xd6cc('0x56')]['id']){delete _0x43c32c[_0xd6cc('0x56')]['id'];}return db['ChatWebsite'][_0xd6cc('0x4e')]({'where':{'id':_0x43c32c[_0xd6cc('0x4c')]['id']}})[_0xd6cc('0x14')](handleEntityNotFound(_0x15e6bc,null))[_0xd6cc('0x14')](function(_0x4ef3a3){if(_0x4ef3a3){_0x43c32c[_0xd6cc('0x56')][_0xd6cc('0x59')]=_0x4ef3a3['id'];return db['CannedAnswer'][_0xd6cc('0x4f')](_0x43c32c[_0xd6cc('0x56')]);}})[_0xd6cc('0x14')](respondWithResult(_0x15e6bc,null))[_0xd6cc('0x1e')](handleError(_0x15e6bc,null));};exports['getAnswers']=function(_0x4e87b2,_0x1a3bc0){var _0x2cf539={'raw':![],'where':{}};var _0x38f053={};var _0x177c18={'count':0x0,'rows':[]};return db[_0xd6cc('0x47')][_0xd6cc('0x5c')]({'where':{'id':_0x4e87b2[_0xd6cc('0x4c')]['id']}})[_0xd6cc('0x14')](handleEntityNotFound(_0x1a3bc0,null))['then'](function(_0xec806e){if(_0xec806e){_0x38f053[_0xd6cc('0x35')]=_[_0xd6cc('0x37')](db[_0xd6cc('0x61')][_0xd6cc('0x31')]);_0x38f053[_0xd6cc('0x36')]=_[_0xd6cc('0x37')](_0x4e87b2[_0xd6cc('0x36')]);_0x38f053['filters']=_['intersection'](_0x38f053[_0xd6cc('0x35')],_0x38f053[_0xd6cc('0x36')]);_0x2cf539[_0xd6cc('0x3a')]=_[_0xd6cc('0x39')](_0x38f053['model'],qs[_0xd6cc('0x3b')](_0x4e87b2['query']['fields']));_0x2cf539[_0xd6cc('0x3a')]=_0x2cf539[_0xd6cc('0x3a')][_0xd6cc('0x3c')]?_0x2cf539[_0xd6cc('0x3a')]:_0x38f053[_0xd6cc('0x35')];if(!_0x4e87b2[_0xd6cc('0x36')][_0xd6cc('0x3d')](_0xd6cc('0x5d'))){_0x2cf539[_0xd6cc('0x3e')]=qs[_0xd6cc('0x3e')](_0x4e87b2[_0xd6cc('0x36')][_0xd6cc('0x3e')]);_0x2cf539[_0xd6cc('0x22')]=qs['offset'](_0x4e87b2[_0xd6cc('0x36')][_0xd6cc('0x22')]);}_0x2cf539[_0xd6cc('0x3f')]=qs[_0xd6cc('0x40')](_0x4e87b2['query'][_0xd6cc('0x40')]);_0x2cf539[_0xd6cc('0x42')]=qs[_0xd6cc('0x38')](_[_0xd6cc('0x41')](_0x4e87b2[_0xd6cc('0x36')],_0x38f053['filters']));_0x2cf539['where'][_0xd6cc('0x59')]=_0xec806e['id'];if(_0x4e87b2[_0xd6cc('0x36')][_0xd6cc('0x45')]){_0x2cf539[_0xd6cc('0x42')]=_['merge'](_0x2cf539[_0xd6cc('0x42')],{'$or':_['map'](_0x2cf539['attributes'],function(_0x4aee04){var _0x548d8a={};_0x548d8a[_0x4aee04]={'$like':'%'+_0x4e87b2[_0xd6cc('0x36')][_0xd6cc('0x45')]+'%'};return _0x548d8a;})});}_0x2cf539=_[_0xd6cc('0x43')]({},_0x2cf539,_0x4e87b2[_0xd6cc('0x46')]);return db[_0xd6cc('0x61')]['count']({'where':_0x2cf539[_0xd6cc('0x42')]})[_0xd6cc('0x14')](function(_0x1a857c){_0x177c18[_0xd6cc('0x24')]=_0x1a857c;if(_0x4e87b2[_0xd6cc('0x36')][_0xd6cc('0x48')]){_0x2cf539[_0xd6cc('0x49')]=[{'all':!![]}];}return db['CannedAnswer'][_0xd6cc('0x4a')](_0x2cf539);})['then'](function(_0x4793b6){_0x177c18[_0xd6cc('0x4b')]=_0x4793b6;return _0x177c18;});}})[_0xd6cc('0x14')](respondWithFilteredResult(_0x1a3bc0,_0x2cf539))[_0xd6cc('0x1e')](handleError(_0x1a3bc0,null));};exports[_0xd6cc('0x62')]=function(_0xa8dd9f,_0x314a6d){return db[_0xd6cc('0x47')]['find']({'where':{'id':_0xa8dd9f[_0xd6cc('0x4c')]['id']}})[_0xd6cc('0x14')](handleEntityNotFound(_0x314a6d,null))[_0xd6cc('0x14')](function(_0x24f98d){if(_0x24f98d){return _0x24f98d[_0xd6cc('0x62')](_0xa8dd9f['query'][_0xd6cc('0x5f')]);}})['then'](respondWithStatusCode(_0x314a6d,null))['catch'](handleError(_0x314a6d,null));};exports[_0xd6cc('0x63')]=function(_0x18faad,_0x250906){_0x18faad[_0xd6cc('0x56')]['sitepic']=_0x18faad[_0xd6cc('0x64')]['filename'];return db['ChatWebsite'][_0xd6cc('0x4e')]({'where':{'id':_0x18faad[_0xd6cc('0x4c')]['id']}})[_0xd6cc('0x14')](handleEntityNotFound(_0x250906,null))[_0xd6cc('0x14')](saveUpdates(_0x18faad[_0xd6cc('0x56')],null))['then'](respondWithResult(_0x250906,null))[_0xd6cc('0x1e')](handleError(_0x250906,null));};exports['addAvatar']=function(_0x5318b7,_0xb4fc9d){_0x5318b7[_0xd6cc('0x56')]['agentAvatar']=_0x5318b7[_0xd6cc('0x64')][_0xd6cc('0x65')];return db[_0xd6cc('0x47')][_0xd6cc('0x4e')]({'where':{'id':_0x5318b7[_0xd6cc('0x4c')]['id']}})[_0xd6cc('0x14')](handleEntityNotFound(_0xb4fc9d,null))[_0xd6cc('0x14')](saveUpdates(_0x5318b7[_0xd6cc('0x56')],null))['then'](respondWithResult(_0xb4fc9d,null))[_0xd6cc('0x1e')](handleError(_0xb4fc9d,null));};exports[_0xd6cc('0x66')]=function(_0x21eb1f,_0x361400){_0x21eb1f[_0xd6cc('0x56')]['customerAvatar']=_0x21eb1f[_0xd6cc('0x64')][_0xd6cc('0x65')];return db[_0xd6cc('0x47')][_0xd6cc('0x4e')]({'where':{'id':_0x21eb1f[_0xd6cc('0x4c')]['id']}})['then'](handleEntityNotFound(_0x361400,null))[_0xd6cc('0x14')](saveUpdates(_0x21eb1f[_0xd6cc('0x56')],null))['then'](respondWithResult(_0x361400,null))[_0xd6cc('0x1e')](handleError(_0x361400,null));};exports[_0xd6cc('0x67')]=function(_0xc4e881,_0x3d71f6){_0xc4e881['body'][_0xd6cc('0x68')]=_0xc4e881[_0xd6cc('0x64')][_0xd6cc('0x65')];return db[_0xd6cc('0x47')]['find']({'where':{'id':_0xc4e881[_0xd6cc('0x4c')]['id']}})[_0xd6cc('0x14')](handleEntityNotFound(_0x3d71f6,null))[_0xd6cc('0x14')](saveUpdates(_0xc4e881['body'],null))[_0xd6cc('0x14')](respondWithResult(_0x3d71f6,null))['catch'](handleError(_0x3d71f6,null));};exports[_0xd6cc('0x69')]=function(_0x13873b,_0xbfafab){var _0x52c748=path[_0xd6cc('0x6a')](config[_0xd6cc('0x6b')],_0xd6cc('0x6c'));var _0x450962={'where':{'id':_0x13873b['params']['id']},'attributes':['id',_0xd6cc('0x6d')],'raw':!![]};var _0x5e4795=![];return require(_0xd6cc('0x6e'))[_0xd6cc('0x6f')]()[_0xd6cc('0x14')](function(_0x56a2cb){if(_0x56a2cb){_0x5e4795=_0x56a2cb['custom'];}})[_0xd6cc('0x14')](function(){return db[_0xd6cc('0x47')][_0xd6cc('0x4e')](_0x450962);})['then'](handleEntityNotFound(_0xbfafab,null))['then'](function(_0x402e03){if(_0x402e03){if(!_[_0xd6cc('0x70')](_0x402e03[_0xd6cc('0x6d')])){if(fs[_0xd6cc('0x71')](path[_0xd6cc('0x6a')](config[_0xd6cc('0x6b')],_0xd6cc('0x72'),_0x402e03[_0xd6cc('0x6d')]))&&_0x5e4795){_0x52c748=path['join'](config[_0xd6cc('0x6b')],'server/files/images/logos/',_0x402e03[_0xd6cc('0x6d')]);}}return _0xbfafab[_0xd6cc('0x73')](_0x52c748);}})['catch'](handleError(_0xbfafab,null));};exports[_0xd6cc('0x74')]=function(_0x3589cc,_0x105898){var _0x2a06e1=path[_0xd6cc('0x6a')](config[_0xd6cc('0x6b')],_0xd6cc('0x75'));var _0x4b92e6={'where':{'id':_0x3589cc[_0xd6cc('0x4c')]['id']},'attributes':['id',_0xd6cc('0x76')],'raw':!![]};return db[_0xd6cc('0x47')][_0xd6cc('0x4e')](_0x4b92e6)['then'](handleEntityNotFound(_0x105898,null))[_0xd6cc('0x14')](function(_0x75d7ca){if(_0x75d7ca){if(!_[_0xd6cc('0x70')](_0x75d7ca[_0xd6cc('0x76')])){if(fs[_0xd6cc('0x71')](path['join'](config['root'],_0xd6cc('0x77'),_0x75d7ca[_0xd6cc('0x76')]))){_0x2a06e1=path[_0xd6cc('0x6a')](config[_0xd6cc('0x6b')],_0xd6cc('0x77'),_0x75d7ca[_0xd6cc('0x76')]);}}return _0x105898[_0xd6cc('0x73')](_0x2a06e1);}})[_0xd6cc('0x1e')](handleError(_0x105898,null));};exports['getCustomerAvatar']=function(_0xafda1b,_0x1fa23f){var _0xf99d77=path['join'](config[_0xd6cc('0x6b')],_0xd6cc('0x78'));var _0x5966a1={'where':{'id':_0xafda1b[_0xd6cc('0x4c')]['id']},'attributes':['id',_0xd6cc('0x79'),_0xd6cc('0x7a')],'raw':!![]};return db[_0xd6cc('0x47')][_0xd6cc('0x4e')](_0x5966a1)[_0xd6cc('0x14')](handleEntityNotFound(_0x1fa23f,null))['then'](function(_0x1cb29e){if(_0x1cb29e){if(!_[_0xd6cc('0x70')](_0x1cb29e['customerAvatar'])){if(fs[_0xd6cc('0x71')](path[_0xd6cc('0x6a')](config[_0xd6cc('0x6b')],_0xd6cc('0x77'),_0x1cb29e[_0xd6cc('0x79')]))&&_0x1cb29e[_0xd6cc('0x7a')]){_0xf99d77=path[_0xd6cc('0x6a')](config[_0xd6cc('0x6b')],_0xd6cc('0x77'),_0x1cb29e['customerAvatar']);}}return _0x1fa23f['download'](_0xf99d77);}})['catch'](handleError(_0x1fa23f,null));};exports['getSystemAvatar']=function(_0x5aaa07,_0x3e69bd){var _0x3d21a3=path[_0xd6cc('0x6a')](config[_0xd6cc('0x6b')],'server/files/images/avatars/system_avatar.png');var _0x1f5c20={'where':{'id':_0x5aaa07['params']['id']},'attributes':['id',_0xd6cc('0x68')],'raw':!![]};return db[_0xd6cc('0x47')][_0xd6cc('0x4e')](_0x1f5c20)[_0xd6cc('0x14')](handleEntityNotFound(_0x3e69bd,null))[_0xd6cc('0x14')](function(_0x10341e){if(_0x10341e){if(!_[_0xd6cc('0x70')](_0x10341e['systemAvatar'])){if(fs['existsSync'](path[_0xd6cc('0x6a')](config[_0xd6cc('0x6b')],'server/files/images/avatars/',_0x10341e[_0xd6cc('0x68')]))){_0x3d21a3=path['join'](config[_0xd6cc('0x6b')],_0xd6cc('0x77'),_0x10341e[_0xd6cc('0x68')]);}}return _0x3e69bd[_0xd6cc('0x73')](_0x3d21a3);}})[_0xd6cc('0x1e')](handleError(_0x3e69bd,null));};exports[_0xd6cc('0x7b')]=function(_0x42fe7c,_0x49a0c3){var _0x35b45c=require(_0xd6cc('0x7c'));var _0x1fcefa=new _0x35b45c();var _0x4cf628=_0x1fcefa[_0xd6cc('0x7d')](_0x42fe7c[_0xd6cc('0x7e')][_0xd6cc('0x7f')])[_0xd6cc('0x80')]();var _0x5e241b={'body':_0x42fe7c[_0xd6cc('0x56')],'channel':'chat'};var _0x122a41=[];var _0x54c517=[];var _0x38ae1f={};var _0x21cc51=![];return db[_0xd6cc('0x81')][_0xd6cc('0x57')]()[_0xd6cc('0x14')](function(_0x504bcc){if(!_0x504bcc){throw new db[(_0xd6cc('0x82'))][(_0xd6cc('0x83'))]('no\x20available\x20attributes');}_0x122a41=_[_0xd6cc('0x84')](_['keys'](_0x504bcc),['createdAt',_0xd6cc('0x85')]);_0x54c517=_[_0xd6cc('0x84')](_[_0xd6cc('0x37')](_0x504bcc),[_0xd6cc('0x86'),'updatedAt',_0xd6cc('0x87'),_0xd6cc('0x88')]);if(_0x42fe7c[_0xd6cc('0x56')]['id']){delete _0x42fe7c[_0xd6cc('0x56')]['id'];}if(_['isNil'](_0x42fe7c[_0xd6cc('0x56')][_0xd6cc('0x89')])){throw new db['Sequelize'][(_0xd6cc('0x83'))](_0xd6cc('0x8a'));}if(_[_0xd6cc('0x70')](_0x42fe7c['body']['body'])||_0x42fe7c[_0xd6cc('0x56')][_0xd6cc('0x56')]===''){throw new db['Sequelize'][(_0xd6cc('0x83'))](_0xd6cc('0x8b'));}if(_[_0xd6cc('0x70')](_0x42fe7c['body'][_0xd6cc('0x8c')])){throw new db['Sequelize'][(_0xd6cc('0x83'))](_0xd6cc('0x8d')+_0x54c517);}if(!_[_0xd6cc('0x8e')](_0x54c517,_0x42fe7c[_0xd6cc('0x56')]['mapKey'])){throw new db[(_0xd6cc('0x82'))]['ValidationError']('mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x54c517);}_0x38ae1f[_0x42fe7c[_0xd6cc('0x56')]['mapKey']]=_0x42fe7c['body'][_0xd6cc('0x89')];})['then'](function(){return db[_0xd6cc('0x47')]['find']({'where':{'id':_0x42fe7c[_0xd6cc('0x4c')]['id']},'include':[{'model':db[_0xd6cc('0x8f')],'as':_0xd6cc('0x90'),'include':[{'model':db[_0xd6cc('0x81')],'as':_0xd6cc('0x91'),'where':_0x38ae1f,'limit':0x1,'order':[[_0xd6cc('0x85'),_0xd6cc('0x92')]]}]},{'model':db[_0xd6cc('0x93')],'as':_0xd6cc('0x94')}]});})[_0xd6cc('0x14')](handleEntityNotFound(_0x49a0c3,null))['then'](function(_0x43e7fc){if(_0x43e7fc&&_0x43e7fc['List']){_0x5e241b[_0xd6cc('0x95')]=_0x43e7fc;_0x5e241b['applications']=_0x43e7fc['Applications'];_0x5e241b[_0xd6cc('0x96')]=_0x43e7fc['List'];_0x5e241b[_0xd6cc('0x97')]=_[_0xd6cc('0x98')](_0x5e241b[_0xd6cc('0x97')],[_0xd6cc('0x99')],['asc']);if(_0x5e241b['account']['Applications']){delete _0x5e241b[_0xd6cc('0x95')][_0xd6cc('0x94')];}if(_0x5e241b[_0xd6cc('0x95')][_0xd6cc('0x90')]&&_0x5e241b[_0xd6cc('0x95')]['List'][_0xd6cc('0x91')][_0xd6cc('0x3c')]){return _0x5e241b[_0xd6cc('0x95')][_0xd6cc('0x90')][_0xd6cc('0x91')][0x0];}var _0x11d5e7=_[_0xd6cc('0xb')](_0x42fe7c[_0xd6cc('0x56')],{'firstName':_0x42fe7c['body']['from'],'ListId':_0x43e7fc[_0xd6cc('0x88')]});_0x11d5e7[_0x42fe7c[_0xd6cc('0x56')][_0xd6cc('0x8c')]]=_0x42fe7c['body'][_0xd6cc('0x89')];return db['CmContact'][_0xd6cc('0x4f')](_0x11d5e7,{'fields':_0x122a41,'raw':!![]});}})[_0xd6cc('0x14')](handleEntityNotFound(_0x49a0c3,null))[_0xd6cc('0x14')](function(_0x2cc4b6){_0x5e241b[_0xd6cc('0x9a')]=_0x2cc4b6;var _0x576039=_0x42fe7c[_0xd6cc('0x56')][_0xd6cc('0x9b')];if(_0x42fe7c[_0xd6cc('0x7e')][_0xd6cc('0x9c')]){_0x576039=_0x42fe7c[_0xd6cc('0x7e')][_0xd6cc('0x9c')];}else if(_0x42fe7c[_0xd6cc('0x7e')]['x-forwarded-for']){_0x576039=_[_0xd6cc('0x9d')](_0x42fe7c['headers'][_0xd6cc('0x9e')][_0xd6cc('0x9f')](','));}if(_0x2cc4b6){var _0x30df57={'ContactId':_0x2cc4b6['id'],'ChatWebsiteId':_0x42fe7c['params']['id'],'from':(_0x2cc4b6[_0xd6cc('0xa0')]||'')+'\x20'+(_0x2cc4b6[_0xd6cc('0xa1')]||''),'customerIp':_0x576039,'customerPort':_0x42fe7c[_0xd6cc('0x7e')][_0xd6cc('0xa2')]?_0x42fe7c[_0xd6cc('0x7e')]['x-real-port']:null,'referer':_0x42fe7c['body'][_0xd6cc('0xa3')],'browserName':_0x4cf628[_0xd6cc('0xa4')][_0xd6cc('0x2d')]&&_0x4cf628['browser'][_0xd6cc('0xa5')]?util[_0xd6cc('0xa6')](_0xd6cc('0xa7'),_0x4cf628[_0xd6cc('0xa4')][_0xd6cc('0x2d')],_0x4cf628[_0xd6cc('0xa4')][_0xd6cc('0xa5')]):_0xd6cc('0xa8'),'browserVersion':_0x4cf628['browser']['version']||_0xd6cc('0xa8'),'osName':util[_0xd6cc('0xa6')](_0xd6cc('0xa7'),_0x4cf628['os']['name'],_0x4cf628['os'][_0xd6cc('0xa5')]),'osVersion':_0x4cf628['os'][_0xd6cc('0xa5')],'deviceModel':_0x4cf628['device']['model']&&_0x4cf628[_0xd6cc('0xa9')][_0xd6cc('0xaa')]?util[_0xd6cc('0xa6')](_0xd6cc('0xab'),_0x4cf628['device'][_0xd6cc('0x35')],_0x4cf628[_0xd6cc('0xa9')][_0xd6cc('0xaa')],_0x4cf628['device'][_0xd6cc('0x33')]):null,'deviceVendor':_0x4cf628[_0xd6cc('0xa9')][_0xd6cc('0xaa')],'deviceType':_0x4cf628[_0xd6cc('0xa9')][_0xd6cc('0x33')],'formData':JSON[_0xd6cc('0x19')](_0x42fe7c[_0xd6cc('0x56')])};var _0xa75204={'ChatWebsiteId':_0x42fe7c[_0xd6cc('0x4c')]['id'],'closed':![]};if(_0x42fe7c[_0xd6cc('0x56')][_0xd6cc('0xac')]){_0xa75204[_0xd6cc('0xac')]=_0x42fe7c[_0xd6cc('0x56')][_0xd6cc('0xac')];return db[_0xd6cc('0xad')][_0xd6cc('0x4e')]({'where':_0xa75204})[_0xd6cc('0x14')](function(_0xdb69d8){if(_0xdb69d8){return[_0xdb69d8,![]];}_0x30df57[_0xd6cc('0xac')]=_0x42fe7c[_0xd6cc('0x56')]['threadId'];_0x30df57[_0xd6cc('0xae')]=_0x42fe7c[_0xd6cc('0x56')][_0xd6cc('0xae')];return db[_0xd6cc('0xad')][_0xd6cc('0x4f')](_0x30df57)[_0xd6cc('0x14')](function(_0x29dad4){return[_0x29dad4,!![]];});});}_0xa75204[_0xd6cc('0xaf')]=_0x2cc4b6['id'];if(_0x42fe7c[_0xd6cc('0x56')][_0xd6cc('0xb0')]&&_0x42fe7c[_0xd6cc('0x56')][_0xd6cc('0xb0')]['id']){_0xa75204['id']=_0x42fe7c['body']['interaction']['id'];return db['ChatInteraction']['find']({'where':_0xa75204})[_0xd6cc('0x14')](function(_0x3d127a){if(_0x3d127a){return[_0x3d127a,![]];}return db[_0xd6cc('0xad')][_0xd6cc('0x4f')](_0x30df57)[_0xd6cc('0x14')](function(_0x5364f5){return[_0x5364f5,!![]];});});}return db[_0xd6cc('0xad')][_0xd6cc('0x4f')](_0x30df57)['then'](function(_0x2d118a){return[_0x2d118a,!![]];});}})[_0xd6cc('0xb1')](function(_0x261304,_0x49625d){if(_0x261304){_0x21cc51=_0x49625d;if(!_0x49625d){var _0x35e234={'from':(_0x5e241b['contact'][_0xd6cc('0xa0')]||'')+'\x20'+(_0x5e241b['contact'][_0xd6cc('0xa1')]||'')};if(_0x42fe7c[_0xd6cc('0x56')][_0xd6cc('0xac')]&&_0x42fe7c['body'][_0xd6cc('0xb2')]&&_0x42fe7c[_0xd6cc('0x56')]['threadId']!=_0x42fe7c[_0xd6cc('0x56')][_0xd6cc('0xb2')]){_0x35e234[_0xd6cc('0xac')]=_0x42fe7c[_0xd6cc('0x56')]['messageId'];}return _0x261304['update'](_0x35e234);}else{return _0x261304;}}})['then'](function(_0x4048d1){_0x5e241b['interaction']=_0x4048d1['get']({'plain':!![]});_0x5e241b['interaction'][_0xd6cc('0xb3')]=_0x21cc51;if(_0x5e241b[_0xd6cc('0xb0')][_0xd6cc('0xb3')]){if(_0x5e241b[_0xd6cc('0x95')][_0xd6cc('0xb4')]){_0x5e241b[_0xd6cc('0x97')][_0xd6cc('0xb5')]({'id':0x0,'priority':_0x5e241b[_0xd6cc('0x97')][_0xd6cc('0x3c')]+0x1,'app':_0xd6cc('0xb6'),'appdata':_0xd6cc('0xb7'),'interval':_0xd6cc('0xb8')});}}return db[_0xd6cc('0xb9')][_0xd6cc('0x4f')]({'body':_0x42fe7c[_0xd6cc('0x56')][_0xd6cc('0x56')],'ChatWebsiteId':_0x42fe7c['params']['id'],'ChatInteractionId':_0x4048d1['id'],'direction':'in','ContactId':_0x5e241b['contact']['id'],'AttachmentId':_0x42fe7c[_0xd6cc('0x56')][_0xd6cc('0xba')]});})[_0xd6cc('0x14')](function(_0x379cc5){_0x5e241b['message']=_0x379cc5;if(_0x5e241b['interaction'][_0xd6cc('0xbb')]){return db[_0xd6cc('0xbc')][_0xd6cc('0x4e')]({'attributes':['id',_0xd6cc('0x2d')],'where':{'id':_0x5e241b[_0xd6cc('0xb0')]['UserId']}})['then'](function(_0x198984){if(_0x198984){_0x5e241b[_0xd6cc('0x97')][_0xd6cc('0xbd')]({'id':0x0,'priority':0x0,'app':_0xd6cc('0xbe'),'appdata':_0x198984[_0xd6cc('0x2d')]+','+(_0x5e241b[_0xd6cc('0x95')][_0xd6cc('0xbf')]||0xa),'interval':_0xd6cc('0xb8')});_0x5e241b[_0xd6cc('0xc0')]=!![];}return respondWithRpcPromise('Start','startRouting',_0x5e241b);});}return respondWithRpcPromise(_0xd6cc('0xc1'),'startRouting',_0x5e241b);})[_0xd6cc('0x14')](function(_0x5985dc){respondWithRpcPromise(_0xd6cc('0xc2'),'EventManager',{'event':_0xd6cc('0x7b'),'message':_0x5985dc},client9002);return _0x5985dc;})['then'](respondWithResult(_0x49a0c3,null))['catch'](handleError(_0x49a0c3,null));};exports[_0xd6cc('0xc3')]=function(_0x57a7c0,_0x40d177){var _0x12ff8e,_0x21fb5a,_0x5f03d6;var _0x59969a=[];var _0x2b03ca={};var _0x4c6f40=_0x57a7c0[_0xd6cc('0xc4')]||[];var _0x3e068d=[];var _0x283b9e;return db[_0xd6cc('0x81')][_0xd6cc('0x57')]()[_0xd6cc('0x14')](function(_0x3d35bb){if(!_0x3d35bb){throw new db[(_0xd6cc('0x82'))][(_0xd6cc('0x83'))](_0xd6cc('0xc5'));}_0x59969a=_[_0xd6cc('0x84')](_[_0xd6cc('0x37')](_0x3d35bb),[_0xd6cc('0x86'),_0xd6cc('0x85'),_0xd6cc('0x87'),_0xd6cc('0x88')]);if(_0x57a7c0[_0xd6cc('0x56')]['id']){delete _0x57a7c0['body']['id'];}if(_[_0xd6cc('0x70')](_0x57a7c0['body'][_0xd6cc('0x89')])){throw _0x40d177[_0xd6cc('0x20')](0x1f4)[_0xd6cc('0x2e')](new db['Sequelize'][(_0xd6cc('0x83'))]('from\x20is\x20mandatory'));}if(_[_0xd6cc('0x70')](_0x57a7c0[_0xd6cc('0x56')][_0xd6cc('0x56')])||_0x57a7c0['body'][_0xd6cc('0x56')]===''){throw _0x40d177[_0xd6cc('0x20')](0x1f4)[_0xd6cc('0x2e')](new db[(_0xd6cc('0x82'))]['ValidationError'](_0xd6cc('0x8b')));}if(_[_0xd6cc('0x70')](_0x57a7c0[_0xd6cc('0x56')][_0xd6cc('0xc6')])){throw _0x40d177[_0xd6cc('0x20')](0x1f4)['send'](new db[(_0xd6cc('0x82'))][(_0xd6cc('0x83'))]('mapKeyOffline\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x59969a));}if(!_[_0xd6cc('0x8e')](_0x59969a,_0x57a7c0[_0xd6cc('0x56')][_0xd6cc('0xc6')])){throw _0x40d177[_0xd6cc('0x20')](0x1f4)['send'](new db[(_0xd6cc('0x82'))][(_0xd6cc('0x83'))]('mapKeyOffline\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x59969a));}_0x2b03ca[_0x57a7c0[_0xd6cc('0x56')]['mapKeyOffline']]=_0x57a7c0[_0xd6cc('0x56')]['from'];})[_0xd6cc('0x14')](function(){return db[_0xd6cc('0x47')][_0xd6cc('0x4e')]({'where':{'id':_0x57a7c0[_0xd6cc('0x4c')]['id']},'include':[{'model':db[_0xd6cc('0x8f')],'as':_0xd6cc('0x90')},{'model':db['MailAccount'],'as':_0xd6cc('0xc7')}]});})[_0xd6cc('0x14')](handleEntityNotFound(_0x40d177,null))[_0xd6cc('0x14')](function(_0x568768){if(_0x568768&&_0x568768['List']){_0x21fb5a=_0x568768;var _0x120a2f=_['defaults'](_0x57a7c0['body'],{'firstName':_0x57a7c0['body'][_0xd6cc('0x89')],'phone':_0x57a7c0[_0xd6cc('0x56')][_0xd6cc('0x89')],'ListId':_0x568768[_0xd6cc('0x88')]});_0x120a2f[_0x57a7c0[_0xd6cc('0x56')][_0xd6cc('0xc6')]]=_0x57a7c0[_0xd6cc('0x56')]['from'];return db['CmContact']['findOrCreate']({'where':_0x2b03ca,'defaults':_0x120a2f});}})[_0xd6cc('0xb1')](function(_0x31c871){if(_0x31c871){_0x5f03d6=_0x31c871;var _0x415d19=fs[_0xd6cc('0xc8')](path[_0xd6cc('0x6a')](config['root'],'server/files/templates/chatOfflineMessage.ejs'),_0xd6cc('0xc9'));var _0x2402e5=ejs[_0xd6cc('0xca')](_0x415d19,{'body':_['toPairs'](_0x57a7c0['body'][_0xd6cc('0x56')]),'bodyTitle':_0x21fb5a[_0xd6cc('0xcb')]});return db[_0xd6cc('0xcc')][_0xd6cc('0x4f')]({'body':_0x2402e5,'ContactId':_0x31c871['id'],'ChatWebsiteId':_0x21fb5a['id']});}})[_0xd6cc('0x14')](function(_0x367a22){_0x283b9e=_0x367a22;if(_0x4c6f40[_0xd6cc('0x3c')]){var _0x5df08b=_0x4c6f40['map'](function(_0x44d89b){return{'name':_0x44d89b[_0xd6cc('0xcd')],'basename':_0x44d89b[_0xd6cc('0x65')],'type':_0x44d89b[_0xd6cc('0xce')],'ChatOfflineMessageId':_0x367a22['id']};});_0x3e068d=_0x5df08b['map'](_0x45af1d=>{var _0x5d43e6={'filename':_0x45af1d[_0xd6cc('0x2d')],'path':path[_0xd6cc('0x6a')](config[_0xd6cc('0x6b')],_0xd6cc('0xcf'),_0xd6cc('0xc4'),_0xd6cc('0xd0'),'offline-chat',_0x45af1d[_0xd6cc('0xd1')])};return _0x5d43e6;});if(!_0x21fb5a[_0xd6cc('0xd2')]){return db[_0xd6cc('0xd3')][_0xd6cc('0xd4')](function(_0xf43ed0){return db[_0xd6cc('0xd5')][_0xd6cc('0xd6')](_0x5df08b,{'transaction':_0xf43ed0});});}}})['then'](function(){if(_0x283b9e){_0x12ff8e=_0x283b9e;return db[_0xd6cc('0xc7')]['findOne']({'where':{'active':!![]},'include':[{'model':db[_0xd6cc('0xd7')],'as':_0xd6cc('0xd8'),'raw':!![]}]});}})[_0xd6cc('0x14')](function(_0x395338){if(_0x395338&&_0x395338[_0xd6cc('0xd8')]&&_0x21fb5a[_0xd6cc('0xd9')]&&_0x21fb5a['forwardOfflineAddress']){var _0x3f650a={'tls':{'rejectUnauthorized':![]}};if(_0x395338[_0xd6cc('0xd8')][_0xd6cc('0xda')]){_0x3f650a[_0xd6cc('0xda')]=_0x395338[_0xd6cc('0xd8')][_0xd6cc('0xda')];}else{_0x3f650a[_0xd6cc('0xdb')]=_0x395338[_0xd6cc('0xd8')][_0xd6cc('0xdb')];_0x3f650a[_0xd6cc('0xdc')]=_0x395338['Smtp'][_0xd6cc('0xdc')];_0x3f650a['secure']=_0x395338[_0xd6cc('0xd8')][_0xd6cc('0xdd')];}if(_0x395338['Smtp'][_0xd6cc('0xde')]){_0x3f650a[_0xd6cc('0xdf')]={'user':_0x395338[_0xd6cc('0xd8')]['user'],'pass':_0x395338[_0xd6cc('0xd8')]['pass']};}return respondWithRpcPromise(_0xd6cc('0xe0'),'sendMail',{'account':_0x3f650a,'message':{'from':util[_0xd6cc('0xa6')]('\x22%s\x22\x20<%s>',_0x395338[_0xd6cc('0x2d')],_0x395338['email']||_0x395338[_0xd6cc('0xd8')][_0xd6cc('0x50')]),'to':_0x21fb5a[_0xd6cc('0xe1')],'subject':_0x21fb5a[_0xd6cc('0xe2')],'html':_0x12ff8e[_0xd6cc('0x56')],'attachments':_0x3e068d}},client9003)[_0xd6cc('0x14')](function(){return _0x12ff8e;})[_0xd6cc('0x1e')](function(_0x3f8d9a){console[_0xd6cc('0x1a')](_0x3f8d9a);});}})[_0xd6cc('0x14')](function(){if(_0x21fb5a&&_0x21fb5a['openNewInteraction']&&_0x21fb5a[_0xd6cc('0xe3')]){var _0x29702f=[];if(_0x4c6f40[_0xd6cc('0x3c')]){_0x29702f=_0x4c6f40[_0xd6cc('0x30')](function(_0x45e806){return{'name':_0x45e806[_0xd6cc('0xcd')],'basename':_0x45e806['filename'],'type':_0x45e806[_0xd6cc('0xce')],'ChatOfflineMessageId':_0x283b9e['id']};});}var _0x1d5ca3;if(!_[_0xd6cc('0x70')](_0x21fb5a[_0xd6cc('0xe4')])){var _0x1ac9cf=_[_0xd6cc('0x30')](_0x57a7c0[_0xd6cc('0x56')],function(_0x5d58f0){return _0x5d58f0;});var _0x2c3642=_['toPairsIn'](_0x1ac9cf)[0x0];var _0x295784=_[_0xd6cc('0xe5')](_0x2c3642,function(_0x1d6893){return _0x1d6893;});_0x1d5ca3=_0x295784[0x1][_0x21fb5a[_0xd6cc('0xe4')]];}var _0x14b2cd={'from':_0x5f03d6['email'],'firstName':_0x5f03d6[_0xd6cc('0xa0')],'lastName':_0x5f03d6['lastName'],'mapKey':_0xd6cc('0xe6'),'message':{'from':_0x5f03d6[_0xd6cc('0xe6')],'to':_0x21fb5a[_0xd6cc('0xc7')][_0xd6cc('0xe6')],'cc':'','subject':_[_0xd6cc('0x70')](_0x1d5ca3)?_0x21fb5a[_0xd6cc('0xe2')]:_0x1d5ca3,'messageId':'','sentAt':new Date(),'attach':_0x29702f['length'],'attachments':_0x29702f,'originChannel':_0xd6cc('0xe7'),'ChatWebsiteId':_0x21fb5a['id'],'ChatOfflineMessageId':_0x12ff8e['id'],'originTo':_0x21fb5a[_0xd6cc('0xc7')]['email']},'body':_0x12ff8e[_0xd6cc('0x56')]};var _0x583647={'account':{'id':_0x21fb5a[_0xd6cc('0xe3')]},'body':_0x14b2cd,'log':_0xd6cc('0xe8')};return respondWithRpcPromise(_0xd6cc('0xe8'),_0xd6cc('0xe9'),_0x583647,client9001)['then'](function(){return _0x12ff8e;})[_0xd6cc('0x1e')](function(_0xc35be){console[_0xd6cc('0x1a')](_0xc35be);});}return;})[_0xd6cc('0x14')](function(){if(_0x12ff8e){return _0x12ff8e;}})[_0xd6cc('0x14')](respondWithResult(_0x40d177,null))[_0xd6cc('0x1e')](function(_0x5f4060){console[_0xd6cc('0x1a')](_0xd6cc('0x1e'),_0x5f4060);for(var _0x2761fd of _0x4c6f40){var _0x45ddcd=path[_0xd6cc('0x6a')](config['root'],_0xd6cc('0xcf'),'files','attachments',_0xd6cc('0xea'),_0x2761fd[_0xd6cc('0x65')]);fs_extra['remove'](_0x45ddcd)[_0xd6cc('0x1e')](function(_0x400a6f){console[_0xd6cc('0x1a')](_0xd6cc('0xeb'),_0x45ddcd,_0x400a6f);});}});};exports[_0xd6cc('0xec')]=function(_0x498f4e,_0x12194f){return db[_0xd6cc('0xad')][_0xd6cc('0x4e')]({'where':{'id':_0x498f4e['params']['id']}})['then'](handleEntityNotFound(_0x12194f,null))[_0xd6cc('0x14')](function(_0x2d5fdd){if(_0x2d5fdd){return _0x2d5fdd[_0xd6cc('0xec')](_0x498f4e['body'][_0xd6cc('0x5f')],_[_0xd6cc('0xed')](_0x498f4e[_0xd6cc('0x56')],['ids','id'])||{});}})['then'](respondWithResult(_0x12194f,null))[_0xd6cc('0x1e')](handleError(_0x12194f,null));};exports[_0xd6cc('0xee')]=function(_0x5d6c5c,_0x5444e0){var _0xd270d8={'raw':![],'where':{}};var _0xb81155={};var _0x431d71={'count':0x0,'rows':[]};return db[_0xd6cc('0x47')][_0xd6cc('0x5c')]({'where':{'id':_0x5d6c5c[_0xd6cc('0x4c')]['id']}})[_0xd6cc('0x14')](handleEntityNotFound(_0x5444e0,null))['then'](function(_0x105a24){if(_0x105a24){_0xb81155['model']=_['keys'](db['ChatInteraction']['rawAttributes']);_0xb81155[_0xd6cc('0x36')]=_['keys'](_0x5d6c5c[_0xd6cc('0x36')]);_0xb81155[_0xd6cc('0x38')]=_[_0xd6cc('0x39')](_0xb81155[_0xd6cc('0x35')],_0xb81155[_0xd6cc('0x36')]);_0xd270d8[_0xd6cc('0x3a')]=_[_0xd6cc('0x39')](_0xb81155['model'],qs[_0xd6cc('0x3b')](_0x5d6c5c[_0xd6cc('0x36')]['fields']));_0xd270d8[_0xd6cc('0x3a')]=_0xd270d8[_0xd6cc('0x3a')][_0xd6cc('0x3c')]?_0xd270d8['attributes']:_0xb81155[_0xd6cc('0x35')];if(!_0x5d6c5c[_0xd6cc('0x36')]['hasOwnProperty']('nolimit')){_0xd270d8[_0xd6cc('0x3e')]=qs['limit'](_0x5d6c5c[_0xd6cc('0x36')][_0xd6cc('0x3e')]);_0xd270d8[_0xd6cc('0x22')]=qs[_0xd6cc('0x22')](_0x5d6c5c['query'][_0xd6cc('0x22')]);}_0xd270d8[_0xd6cc('0x3f')]=qs[_0xd6cc('0x40')](_0x5d6c5c['query'][_0xd6cc('0x40')]);_0xd270d8[_0xd6cc('0x42')]=qs[_0xd6cc('0x38')](_[_0xd6cc('0x41')](_0x5d6c5c['query'],_0xb81155['filters']));_0xd270d8[_0xd6cc('0x42')][_0xd6cc('0x59')]=_0x105a24['id'];if(_0x5d6c5c['query'][_0xd6cc('0x45')]){_0xd270d8[_0xd6cc('0x42')]=_[_0xd6cc('0x43')](_0xd270d8[_0xd6cc('0x42')],{'$or':_[_0xd6cc('0x30')](_0xd270d8['attributes'],function(_0x545f88){var _0x3609b0={};_0x3609b0[_0x545f88]={'$like':'%'+_0x5d6c5c[_0xd6cc('0x36')][_0xd6cc('0x45')]+'%'};return _0x3609b0;})});}_0xd270d8=_[_0xd6cc('0x43')]({},_0xd270d8,_0x5d6c5c['options']);return db['ChatInteraction']['count']({'where':_0xd270d8['where']})[_0xd6cc('0x14')](function(_0x1299b0){_0x431d71[_0xd6cc('0x24')]=_0x1299b0;if(_0x5d6c5c[_0xd6cc('0x36')][_0xd6cc('0x48')]){_0xd270d8['include']=[{'model':db[_0xd6cc('0x81')],'as':'Contact','required':![]},{'model':db[_0xd6cc('0xbc')],'as':_0xd6cc('0xef'),'attributes':['name',_0xd6cc('0xf0'),'internal'],'required':![]},{'model':db[_0xd6cc('0xf1')],'as':_0xd6cc('0xf2'),'attributes':['id',_0xd6cc('0x2d'),_0xd6cc('0xf3')],'where':_0x5d6c5c[_0xd6cc('0x36')]['tag']?{'id':_0x5d6c5c[_0xd6cc('0x36')]['tag']}:undefined,'required':_0x5d6c5c[_0xd6cc('0x36')]['tag']?!![]:![]}];}return db['ChatInteraction'][_0xd6cc('0x4a')](_0xd270d8);})[_0xd6cc('0x14')](function(_0x1bccd8){_0x431d71['rows']=_0x1bccd8;return _0x431d71;});}})['then'](respondWithFilteredResult(_0x5444e0,_0xd270d8))[_0xd6cc('0x1e')](handleError(_0x5444e0,null));};function iftimePromise(_0x4cbe6c,_0x34bb99){return respondWithRpcPromise(_0xd6cc('0xf4'),'getSnippet',{'command':_0x34bb99[_0xd6cc('0xf5')]?util[_0xd6cc('0xa6')](_0xd6cc('0xf6'),_0x4cbe6c[_0xd6cc('0xf7')],_0x34bb99[_0xd6cc('0xf5')]):util[_0xd6cc('0xa6')](_0xd6cc('0xf8'),_0x4cbe6c[_0xd6cc('0xf7')])},client9002)[_0xd6cc('0x14')](function(_0x23cc8c){var _0x1e3c7d=_0x23cc8c&&_0x23cc8c[_0xd6cc('0xf9')](_0xd6cc('0xfa'))>=0x0?!![]:![];logger[_0xd6cc('0x15')](_0xd6cc('0xfb'),_0x34bb99['id'],_0x4cbe6c['id'],_0x4cbe6c[_0xd6cc('0xf7')],_0x1e3c7d?_0xd6cc('0xfc'):_0xd6cc('0xfd'),_0x34bb99[_0xd6cc('0xf5')]?_0x34bb99[_0xd6cc('0xf5')]:'No\x20timezone');return _0x1e3c7d;})['catch'](function(_0x46672c){logger[_0xd6cc('0x1a')](_0xd6cc('0xfb'),_0x34bb99['id'],_0x4cbe6c['id'],_0x4cbe6c[_0xd6cc('0xf7')],util[_0xd6cc('0xfe')](_0x46672c,{'showHidden':![],'depth':null}),_0x34bb99[_0xd6cc('0xf5')]?_0x34bb99[_0xd6cc('0xf5')]:'No\x20timezone');return![];});}exports[_0xd6cc('0xff')]=function(_0x4c7584,_0x541acf){var _0x127994=0x0;var _0x2309c3=0x0;var _0x5ae38c=![];var _0x30ed12;var _0x3f4f68;return db[_0xd6cc('0x47')][_0xd6cc('0x4e')]({'where':{'id':_0x4c7584['params']['id']},'include':[{'model':db[_0xd6cc('0x100')],'as':_0xd6cc('0x100'),'include':[{'model':db[_0xd6cc('0x100')],'as':_0xd6cc('0x101'),'attributes':['id',_0xd6cc('0xf7')],'raw':!![]}]}]})[_0xd6cc('0x14')](handleEntityNotFound(_0x541acf,null))['then'](function(_0x3f0e2c){if(_0x3f0e2c){_0x30ed12=_0x3f0e2c;return _0x3f0e2c[_0xd6cc('0x102')]({'raw':!![]});}})[_0xd6cc('0x14')](function(_0x511da0){if(_0x30ed12){if(_0x511da0){_0x3f4f68=_0x511da0;}}return require('../../config/license/util')[_0xd6cc('0x6f')]();})['then'](function(_0x2a97bb){if(_0x2a97bb){_0x2309c3=_0x2a97bb[_0xd6cc('0x103')];_0x5ae38c=_0x2a97bb['custom'];}})[_0xd6cc('0x14')](function(){return db['ChatInteraction'][_0xd6cc('0x24')]({'where':{'closed':![]}});})[_0xd6cc('0x14')](function(_0x359c3a){_0x127994=_0x359c3a;if(_0x2309c3&&_0x359c3a>_0x2309c3){return db['License'][_0xd6cc('0x5c')]({'where':{'id':0x1}})[_0xd6cc('0x14')](function(_0x13cd94){if(_0x13cd94){_0x13cd94[_0xd6cc('0x104')](_0xd6cc('0x105'));}});}})['then'](function(){if(_0x30ed12[_0xd6cc('0x100')]&&_0x30ed12[_0xd6cc('0x100')][_0xd6cc('0x101')]){var _0x4082a1=[];for(var _0x5dcfeb=0x0;_0x5dcfeb<_0x30ed12[_0xd6cc('0x100')][_0xd6cc('0x101')][_0xd6cc('0x3c')];_0x5dcfeb++){var _0x2cf624=_0x30ed12[_0xd6cc('0x100')]['Intervals'][_0x5dcfeb][_0xd6cc('0x52')]({'plain':!![]});_0x4082a1[_0xd6cc('0xb5')](iftimePromise(_0x2cf624,_0x30ed12));}return BPromise['all'](_0x4082a1)['then'](function(_0x3b86f1){return _[_0xd6cc('0x106')](_0x3b86f1);});}else{return!![];}})[_0xd6cc('0x14')](function(_0x804cd){var _0x48ebd3=fs[_0xd6cc('0xc8')](path[_0xd6cc('0x6a')](config['root'],'server/files/chat/iframe.ejs'),_0xd6cc('0xc9'));var _0x1c81bc={'remote':_0x30ed12[_0xd6cc('0x107')],'query':querystring[_0xd6cc('0x19')](_['merge'](_0x30ed12[_0xd6cc('0x52')]({'plain':!![]}),{'customerIp':_0x4c7584[_0xd6cc('0x7e')][_0xd6cc('0x9e')]||_0x4c7584[_0xd6cc('0x7e')][_0xd6cc('0x108')]||_0x4c7584[_0xd6cc('0x109')][_0xd6cc('0x10a')]||_0x4c7584['ip'],'referer':_0x4c7584['headers'][_0xd6cc('0xa3')],'openedInteractions':_0x127994,'maxInteractions':_0x2309c3,'virtual':_0x5ae38c[_0xd6cc('0x103')],'online':_0x804cd,'custom':_0x5ae38c}))[_0xd6cc('0x10b')](/'/g,'\x5c\x27')};_0x541acf[_0xd6cc('0x2e')](ejs[_0xd6cc('0xca')](Mustache['render'](_0x48ebd3,_0x1c81bc),{'proactiveActions':_0x3f4f68,'alignment':_0x30ed12[_0xd6cc('0x10c')],'verticalAlignment':_0x30ed12[_0xd6cc('0x10d')],'div_color':_0x30ed12[_0xd6cc('0xf3')],'text_color':_0x30ed12[_0xd6cc('0x10e')],'button_color':_0x30ed12[_0xd6cc('0x10f')],'background_color':_0x30ed12[_0xd6cc('0x110')]}));})[_0xd6cc('0x1e')](handleError(_0x541acf,null));};exports['addApplications']=function(_0x3f771a,_0x354d51){var _0x13c70a=_0x3f771a[_0xd6cc('0x4c')]['id'];var _0x5df1d1=_0x3f771a[_0xd6cc('0x56')];var _0x2d019a=0xc8;var _0x248569=null;return db[_0xd6cc('0xd3')][_0xd6cc('0xd4')]({'isolationLevel':db[_0xd6cc('0xd3')]['Transaction'][_0xd6cc('0x111')][_0xd6cc('0x112')]},function(_0x4bcc52){return db[_0xd6cc('0x47')][_0xd6cc('0x5c')]({'where':{'id':_0x13c70a},'transaction':_0x4bcc52})[_0xd6cc('0x14')](function(_0x4c1e48){if(_0x4c1e48){return db[_0xd6cc('0x93')][_0xd6cc('0x29')]({'where':{'ChatWebsiteId':_0x13c70a},'transaction':_0x4bcc52})[_0xd6cc('0x14')](function(){var _0x2a42e7=_[_0xd6cc('0x30')](_0x5df1d1,function(_0x555e93){_0x555e93['ChatWebsiteId']=_0x13c70a;return _0x555e93;});return db['ChatApplication'][_0xd6cc('0xd6')](_0x2a42e7,{'transaction':_0x4bcc52});});}else{_0x2d019a=0x194;_0x248569=[];}});})[_0xd6cc('0x14')](function(){if(_0x2d019a!==0x194){return db[_0xd6cc('0x93')][_0xd6cc('0x113')]({'where':{'ChatWebsiteId':_0x13c70a},'order':_0xd6cc('0x99')})[_0xd6cc('0x14')](function(_0xbb95b8){_0x248569=_0xbb95b8;});}})['catch'](function(_0xcf56bf){_0x2d019a=0x1f4;logger[_0xd6cc('0x1a')](_0xcf56bf[_0xd6cc('0x2c')]);if(_0xcf56bf[_0xd6cc('0x2d')]){delete _0xcf56bf['name'];}_0x248569=_0xcf56bf;})['finally'](function(){if(_0x248569===null){_0x354d51[_0xd6cc('0x1f')](_0x2d019a);}else{if(_0x2d019a===0x1f4){_0x354d51[_0xd6cc('0x20')](_0x2d019a)[_0xd6cc('0x2e')](_0x248569);}else{_0x354d51[_0xd6cc('0x20')](_0x2d019a)[_0xd6cc('0x27')](_0x248569);}}});};exports[_0xd6cc('0x114')]=function(_0x29e13e,_0x27668b){var _0x57e8ee={};var _0xea1c4a={};var _0x329594;var _0x1532b2;return db['ChatWebsite']['findOne']({'where':{'id':_0x29e13e[_0xd6cc('0x4c')]['id']}})['then'](handleEntityNotFound(_0x27668b,null))[_0xd6cc('0x14')](function(_0x1e8f4e){if(_0x1e8f4e){_0x329594=_0x1e8f4e;_0xea1c4a[_0xd6cc('0x35')]=_['keys'](db[_0xd6cc('0x93')]['rawAttributes']);_0xea1c4a[_0xd6cc('0x36')]=_[_0xd6cc('0x37')](_0x29e13e[_0xd6cc('0x36')]);_0xea1c4a[_0xd6cc('0x38')]=_['intersection'](_0xea1c4a['model'],_0xea1c4a[_0xd6cc('0x36')]);_0x57e8ee[_0xd6cc('0x3a')]=_['intersection'](_0xea1c4a[_0xd6cc('0x35')],qs[_0xd6cc('0x3b')](_0x29e13e[_0xd6cc('0x36')]['fields']));_0x57e8ee[_0xd6cc('0x3a')]=_0x57e8ee[_0xd6cc('0x3a')][_0xd6cc('0x3c')]?_0x57e8ee['attributes']:_0xea1c4a[_0xd6cc('0x35')];_0x57e8ee[_0xd6cc('0x3f')]=qs[_0xd6cc('0x40')](_0x29e13e[_0xd6cc('0x36')][_0xd6cc('0x40')]);_0x57e8ee[_0xd6cc('0x42')]=qs[_0xd6cc('0x38')](_[_0xd6cc('0x41')](_0x29e13e['query'],_0xea1c4a[_0xd6cc('0x38')]));if(_0x29e13e['query'][_0xd6cc('0x45')]){_0x57e8ee[_0xd6cc('0x42')]=_[_0xd6cc('0x43')](_0x57e8ee[_0xd6cc('0x42')],{'$or':_[_0xd6cc('0x30')](_0x57e8ee[_0xd6cc('0x3a')],function(_0x3cf53f){var _0x9bad84={};_0x9bad84[_0x3cf53f]={'$like':'%'+_0x29e13e[_0xd6cc('0x36')][_0xd6cc('0x45')]+'%'};return _0x9bad84;})});}_0x57e8ee=_[_0xd6cc('0x43')]({},_0x57e8ee,_0x29e13e[_0xd6cc('0x46')]);return _0x329594['getApplications'](_0x57e8ee);}})[_0xd6cc('0x14')](function(_0x488643){if(_0x488643){_0x1532b2=_0x488643[_0xd6cc('0x3c')];if(!_0x29e13e[_0xd6cc('0x36')][_0xd6cc('0x3d')](_0xd6cc('0x5d'))){_0x57e8ee[_0xd6cc('0x3e')]=qs[_0xd6cc('0x3e')](_0x29e13e[_0xd6cc('0x36')][_0xd6cc('0x3e')]);_0x57e8ee[_0xd6cc('0x22')]=qs[_0xd6cc('0x22')](_0x29e13e[_0xd6cc('0x36')][_0xd6cc('0x22')]);}return _0x329594[_0xd6cc('0x114')](_0x57e8ee);}})[_0xd6cc('0x14')](function(_0x3b5644){if(_0x3b5644){return _0x3b5644?{'count':_0x1532b2,'rows':_0x3b5644}:null;}})['then'](respondWithResult(_0x27668b,null))[_0xd6cc('0x1e')](handleError(_0x27668b,null));};exports[_0xd6cc('0x115')]=function(_0x2dd8e1,_0x109ec0){return db['chatProactiveAction'][_0xd6cc('0x4e')]({'where':{'id':_0x2dd8e1[_0xd6cc('0x4c')]['id']}})[_0xd6cc('0x14')](handleEntityNotFound(_0x109ec0,null))[_0xd6cc('0x14')](function(_0x3c72b9){if(_0x3c72b9){return _0x3c72b9['addProactiveActions'](_0x2dd8e1['body']['ids'],_[_0xd6cc('0xed')](_0x2dd8e1[_0xd6cc('0x56')],['ids','id'])||{});}})[_0xd6cc('0x14')](respondWithResult(_0x109ec0,null))['catch'](handleError(_0x109ec0,null));};exports[_0xd6cc('0x102')]=function(_0x580ed0,_0x1e9a27){var _0x33d4c3={};var _0x5cbdde={};var _0x119dc1;var _0x32c479;return db['ChatWebsite'][_0xd6cc('0x5c')]({'where':{'id':_0x580ed0['params']['id']}})[_0xd6cc('0x14')](handleEntityNotFound(_0x1e9a27,null))[_0xd6cc('0x14')](function(_0x31252f){if(_0x31252f){_0x119dc1=_0x31252f;_0x5cbdde[_0xd6cc('0x35')]=_[_0xd6cc('0x37')](db[_0xd6cc('0x116')][_0xd6cc('0x31')]);_0x5cbdde[_0xd6cc('0x36')]=_[_0xd6cc('0x37')](_0x580ed0[_0xd6cc('0x36')]);_0x5cbdde[_0xd6cc('0x38')]=_[_0xd6cc('0x39')](_0x5cbdde[_0xd6cc('0x35')],_0x5cbdde['query']);_0x33d4c3[_0xd6cc('0x3a')]=_[_0xd6cc('0x39')](_0x5cbdde[_0xd6cc('0x35')],qs[_0xd6cc('0x3b')](_0x580ed0[_0xd6cc('0x36')][_0xd6cc('0x3b')]));_0x33d4c3[_0xd6cc('0x3a')]=_0x33d4c3[_0xd6cc('0x3a')][_0xd6cc('0x3c')]?_0x33d4c3[_0xd6cc('0x3a')]:_0x5cbdde[_0xd6cc('0x35')];_0x33d4c3[_0xd6cc('0x3f')]=qs[_0xd6cc('0x40')](_0x580ed0[_0xd6cc('0x36')][_0xd6cc('0x40')]);_0x33d4c3['where']=qs[_0xd6cc('0x38')](_[_0xd6cc('0x41')](_0x580ed0[_0xd6cc('0x36')],_0x5cbdde['filters']));if(_0x580ed0[_0xd6cc('0x36')][_0xd6cc('0x45')]){_0x33d4c3[_0xd6cc('0x42')]=_[_0xd6cc('0x43')](_0x33d4c3[_0xd6cc('0x42')],{'$or':_[_0xd6cc('0x30')](_0x33d4c3['attributes'],function(_0x42c35a){var _0x465943={};_0x465943[_0x42c35a]={'$like':'%'+_0x580ed0['query'][_0xd6cc('0x45')]+'%'};return _0x465943;})});}_0x33d4c3=_[_0xd6cc('0x43')]({},_0x33d4c3,_0x580ed0[_0xd6cc('0x46')]);return _0x119dc1[_0xd6cc('0x102')](_0x33d4c3);}})[_0xd6cc('0x14')](function(_0x2d68a5){if(_0x2d68a5){_0x32c479=_0x2d68a5[_0xd6cc('0x3c')];if(!_0x580ed0[_0xd6cc('0x36')][_0xd6cc('0x3d')](_0xd6cc('0x5d'))){_0x33d4c3[_0xd6cc('0x3e')]=qs[_0xd6cc('0x3e')](_0x580ed0['query']['limit']);_0x33d4c3[_0xd6cc('0x22')]=qs[_0xd6cc('0x22')](_0x580ed0[_0xd6cc('0x36')]['offset']);}return _0x119dc1[_0xd6cc('0x102')](_0x33d4c3);}})[_0xd6cc('0x14')](function(_0x1ed4b5){if(_0x1ed4b5){return _0x1ed4b5?{'count':_0x32c479,'rows':_0x1ed4b5}:null;}})[_0xd6cc('0x14')](respondWithResult(_0x1e9a27,null))['catch'](handleError(_0x1e9a27,null));};exports[_0xd6cc('0x117')]=function(_0x159034,_0x3dd74a){var _0x388ec1=_0x159034[_0xd6cc('0x36')][_0xd6cc('0x118')]==='false'?_0xd6cc('0x119'):'onlineForm';return db[_0xd6cc('0x47')][_0xd6cc('0x4e')]({'attributes':['id',_0x388ec1],'where':{'id':_0x159034[_0xd6cc('0x4c')]['id']}})[_0xd6cc('0x14')](handleEntityNotFound(_0x3dd74a,null))[_0xd6cc('0x14')](function(_0x20758f){if(_0x20758f){var _0x1f9866=_0x20758f[_0x388ec1];var _0x525bae=_0x1f9866&&_0x1f9866['items']?_0x1f9866[_0xd6cc('0x11a')]:[];_0x3dd74a[_0xd6cc('0x2e')]({'fromKey':_[_0xd6cc('0x70')](_0x1f9866[_0xd6cc('0x11b')])?undefined:_0x1f9866[_0xd6cc('0x11b')],'count':_0x525bae[_0xd6cc('0x3c')],'rows':_0x525bae});}})['catch'](handleError(_0x3dd74a,null));};exports[_0xd6cc('0x11c')]=function(_0x1f3fd6,_0x4d9a4c){var _0x350775={'raw':![],'where':{}};var _0x53b119={};var _0x54f07b={'count':0x0,'rows':[]};return db[_0xd6cc('0x47')][_0xd6cc('0x5c')]({'where':{'id':_0x1f3fd6['params']['id']}})[_0xd6cc('0x14')](handleEntityNotFound(_0x4d9a4c,null))[_0xd6cc('0x14')](function(_0x4043c9){if(_0x4043c9){_0x53b119[_0xd6cc('0x35')]=_[_0xd6cc('0x37')](db[_0xd6cc('0xcc')][_0xd6cc('0x31')]);_0x53b119[_0xd6cc('0x36')]=_[_0xd6cc('0x37')](_0x1f3fd6[_0xd6cc('0x36')]);_0x53b119[_0xd6cc('0x38')]=_[_0xd6cc('0x39')](_0x53b119['model'],_0x53b119[_0xd6cc('0x36')]);_0x350775[_0xd6cc('0x3a')]=_[_0xd6cc('0x39')](_0x53b119[_0xd6cc('0x35')],qs[_0xd6cc('0x3b')](_0x1f3fd6['query'][_0xd6cc('0x3b')]));_0x350775['attributes']=_0x350775[_0xd6cc('0x3a')][_0xd6cc('0x3c')]?_0x350775['attributes']:_0x53b119[_0xd6cc('0x35')];if(!_0x1f3fd6[_0xd6cc('0x36')][_0xd6cc('0x3d')](_0xd6cc('0x5d'))){_0x350775[_0xd6cc('0x3e')]=qs['limit'](_0x1f3fd6[_0xd6cc('0x36')][_0xd6cc('0x3e')]);_0x350775[_0xd6cc('0x22')]=qs[_0xd6cc('0x22')](_0x1f3fd6[_0xd6cc('0x36')][_0xd6cc('0x22')]);}_0x350775[_0xd6cc('0x3f')]=qs[_0xd6cc('0x40')](_0x1f3fd6[_0xd6cc('0x36')][_0xd6cc('0x40')]);_0x350775[_0xd6cc('0x42')]=qs['filters'](_['pick'](_0x1f3fd6['query'],_0x53b119[_0xd6cc('0x38')]));_0x350775[_0xd6cc('0x42')][_0xd6cc('0x59')]=_0x4043c9['id'];if(_0x1f3fd6[_0xd6cc('0x36')][_0xd6cc('0x45')]){_0x350775[_0xd6cc('0x42')]=_[_0xd6cc('0x43')](_0x350775['where'],{'$or':_[_0xd6cc('0x30')](_0x350775[_0xd6cc('0x3a')],function(_0x25b772){var _0x2200d7={};_0x2200d7[_0x25b772]={'$like':'%'+_0x1f3fd6['query'][_0xd6cc('0x45')]+'%'};return _0x2200d7;})});}_0x350775=_['merge']({},_0x350775,_0x1f3fd6[_0xd6cc('0x46')]);return db[_0xd6cc('0xcc')][_0xd6cc('0x24')]({'where':_0x350775[_0xd6cc('0x42')]})[_0xd6cc('0x14')](function(_0x5b1140){_0x54f07b['count']=_0x5b1140;if(_0x1f3fd6[_0xd6cc('0x36')][_0xd6cc('0x48')]){_0x350775[_0xd6cc('0x49')]=[{'all':!![]}];}else{_0x350775[_0xd6cc('0x49')]=[{'model':db['CmContact'],'as':_0xd6cc('0x11d'),'required':![]},{'model':db[_0xd6cc('0xd5')],'as':_0xd6cc('0x11e'),'required':![]}];}return db[_0xd6cc('0xcc')]['findAll'](_0x350775);})['then'](function(_0x4d7312){_0x54f07b[_0xd6cc('0x4b')]=_0x4d7312;return _0x54f07b;});}})[_0xd6cc('0x14')](respondWithFilteredResult(_0x4d9a4c,_0x350775))[_0xd6cc('0x1e')](handleError(_0x4d9a4c,null));};exports[_0xd6cc('0x11f')]=function(_0x201e31,_0x10e61b){return db[_0xd6cc('0x47')][_0xd6cc('0x4e')]({'where':{'id':_0x201e31['params']['id']}})[_0xd6cc('0x14')](handleEntityNotFound(_0x10e61b,null))[_0xd6cc('0x14')](function(_0x573fea){if(_0x573fea){return _0x573fea[_0xd6cc('0x11f')](_0x201e31[_0xd6cc('0x56')][_0xd6cc('0x5f')],_[_0xd6cc('0xed')](_0x201e31[_0xd6cc('0x56')],[_0xd6cc('0x5f'),'id'])||{})['spread'](function(_0x2c9947){for(var _0x465c66=0x0;_0x465c66<_0x201e31[_0xd6cc('0x56')][_0xd6cc('0x5f')][_0xd6cc('0x3c')];_0x465c66+=0x1){socket[_0xd6cc('0x120')](_0xd6cc('0x121'),{'UserId':Number(_0x201e31['body'][_0xd6cc('0x5f')][_0x465c66]),'ChatWebsiteId':Number(_0x201e31[_0xd6cc('0x4c')]['id'])});}return _0x2c9947;});}})[_0xd6cc('0x14')](respondWithResult(_0x10e61b,null))[_0xd6cc('0x1e')](handleError(_0x10e61b,null));};exports[_0xd6cc('0x122')]=function(_0x11be46,_0x25ff02){return db[_0xd6cc('0x47')][_0xd6cc('0x4e')]({'where':{'id':_0x11be46['params']['id']}})[_0xd6cc('0x14')](handleEntityNotFound(_0x25ff02,null))[_0xd6cc('0x14')](function(_0x429d26){if(_0x429d26){return _0x429d26[_0xd6cc('0x122')](_0x11be46[_0xd6cc('0x36')][_0xd6cc('0x5f')])[_0xd6cc('0x14')](function(){if(_[_0xd6cc('0x123')](_0x11be46['query'][_0xd6cc('0x5f')])){for(var _0x6e4df1=0x0;_0x6e4df1<_0x11be46['query']['ids'][_0xd6cc('0x3c')];_0x6e4df1+=0x1){socket[_0xd6cc('0x120')](_0xd6cc('0x124'),{'UserId':Number(_0x11be46['query'][_0xd6cc('0x5f')][_0x6e4df1]),'ChatWebsiteId':Number(_0x11be46[_0xd6cc('0x4c')]['id'])});}}else{socket[_0xd6cc('0x120')]('userChatWebsite:remove',{'UserId':Number(_0x11be46[_0xd6cc('0x36')]['ids']),'ChatWebsiteId':Number(_0x11be46[_0xd6cc('0x4c')]['id'])});}});}})[_0xd6cc('0x14')](respondWithStatusCode(_0x25ff02,null))[_0xd6cc('0x1e')](handleError(_0x25ff02,null));};exports['getAgents']=function(_0x306f7d,_0x374bbb){var _0x2507ed={};var _0x5859e6={};var _0x968eb;var _0x2c34f5;return db[_0xd6cc('0x47')][_0xd6cc('0x5c')]({'where':{'id':_0x306f7d[_0xd6cc('0x4c')]['id']}})[_0xd6cc('0x14')](handleEntityNotFound(_0x374bbb,null))['then'](function(_0x17a426){if(_0x17a426){_0x968eb=_0x17a426;_0x5859e6[_0xd6cc('0x35')]=_['keys'](db['User'][_0xd6cc('0x31')]);_0x5859e6[_0xd6cc('0x36')]=_[_0xd6cc('0x37')](_0x306f7d[_0xd6cc('0x36')]);_0x5859e6[_0xd6cc('0x38')]=_['intersection'](_0x5859e6[_0xd6cc('0x35')],_0x5859e6[_0xd6cc('0x36')]);_0x2507ed[_0xd6cc('0x3a')]=_[_0xd6cc('0x39')](_0x5859e6[_0xd6cc('0x35')],qs[_0xd6cc('0x3b')](_0x306f7d[_0xd6cc('0x36')]['fields']));_0x2507ed[_0xd6cc('0x3a')]=_0x2507ed[_0xd6cc('0x3a')]['length']?_0x2507ed['attributes']:_0x5859e6[_0xd6cc('0x35')];_0x2507ed[_0xd6cc('0x3f')]=qs['sort'](_0x306f7d['query'][_0xd6cc('0x40')]);_0x2507ed[_0xd6cc('0x42')]=qs[_0xd6cc('0x38')](_['pick'](_0x306f7d[_0xd6cc('0x36')],_0x5859e6[_0xd6cc('0x38')]));if(_0x306f7d['query'][_0xd6cc('0x45')]){_0x2507ed[_0xd6cc('0x42')]=_[_0xd6cc('0x43')](_0x2507ed[_0xd6cc('0x42')],{'$or':_[_0xd6cc('0x30')](_0x2507ed[_0xd6cc('0x3a')],function(_0x4992fc){var _0x1058c0={};_0x1058c0[_0x4992fc]={'$like':'%'+_0x306f7d[_0xd6cc('0x36')][_0xd6cc('0x45')]+'%'};return _0x1058c0;})});}_0x2507ed=_[_0xd6cc('0x43')]({},_0x2507ed,_0x306f7d[_0xd6cc('0x46')]);return _0x968eb[_0xd6cc('0x125')](_0x2507ed);}})[_0xd6cc('0x14')](function(_0x21212c){if(_0x21212c){_0x2c34f5=_0x21212c[_0xd6cc('0x3c')];if(!_0x306f7d[_0xd6cc('0x36')][_0xd6cc('0x3d')](_0xd6cc('0x5d'))){_0x2507ed[_0xd6cc('0x3e')]=qs[_0xd6cc('0x3e')](_0x306f7d[_0xd6cc('0x36')][_0xd6cc('0x3e')]);_0x2507ed['offset']=qs[_0xd6cc('0x22')](_0x306f7d[_0xd6cc('0x36')][_0xd6cc('0x22')]);}return _0x968eb[_0xd6cc('0x125')](_0x2507ed);}})[_0xd6cc('0x14')](function(_0x85312c){if(_0x85312c){return _0x85312c?{'count':_0x2c34f5,'rows':_0x85312c}:null;}})[_0xd6cc('0x14')](respondWithResult(_0x374bbb,null))[_0xd6cc('0x1e')](handleError(_0x374bbb,null));};
\ No newline at end of file
+var _0xeca9=['getResult','Sequelize','ValidationError','no\x20available\x20attributes','difference','createdAt','updatedAt','CompanyId','ListId','from','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','List','CmContact','DESC','Applications','account','applications','list','orderBy','priority','asc','Contacts','contact','customerIp','cf-connecting-ip','x-forwarded-for','firstName','lastName','x-real-port','browser','version','format','unknown','%s\x20%s','device','vendor','%s\x20%s\x20%s','threadId','ChatInteraction','externalUrl','ContactId','interaction','spread','messageId','created','autoclose','push','unmanaged','ChatMessage','AttachmentId','UserId','User','unshift','agent','waitForTheAssignedAgent','*,*,*,*','forcedOwnership','Start','startRouting','EventManager','notify','offline','files','mapKeyOffline\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','mapKeyOffline\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','mapKeyOffline','CmList','MailAccount','findOrCreate','server/files/templates/chatOfflineMessage.ejs','utf8','toPairs','offlineMessageBody','ChatOfflineMessage','offline-chat','openNewInteraction','sequelize','transaction','Attachment','MailServerOut','Smtp','forwardOffline','forwardOfflineAddress','service','host','port','secure','authentication','auth','pass','SendMail','sendMail','email','offlineMessageSubject','originalname','mimetype','subjectOffline','Chat','MailAccountId','NotifyMailAccount','notifyMail','server','attachments','remove','Could\x20not\x20remove\x20attachment\x20file','addInteraction','omit','getInteractions','Contact','Owner','fullname','Tags','color','tag','Command','getSnippet','timezone','iftime\x20%s,%s','interval','iftime\x20%s','indexOf','true','[%s][INTERVAL][%s]\x20%s\x20%s\x20(%s)','ONLINE','OFFLINE','No\x20timezone','Interval','Intervals','getProactiveActions','getLicense','License','increment','chatLicenseExceeded','some','readFileSync','server/files/chat/iframe.ejs','remote','stringify','x-real-ip','connection','referer','virtual','render','alignment','verticalAlignment','textColor','color_button','backgroundColor','addApplications','Transaction','ISOLATION_LEVELS','READ_COMMITTED','ChatApplication','bulkCreate','findAndCountAll','finally','getApplications','addProactiveActions','chatProactiveAction','getFields','online','false','offlineForm','onlineForm','items','fromKey','Attachments','addAgents','emit','userChatWebsite:save','removeAgents','isArray','userChatWebsite:remove','getAgents','bluebird','mustache','util','path','ejs','fs-extra','querystring','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','client','http','request','then','info','ChatWebsite,\x20%s,\x20%s','request\x20sent','debug','ChatWebsite,\x20%s,\x20%s,\x20%s','error','code','message','result','sendStatus','status','end','json','offset','undefined','count','update','destroy','get','ChatWebsites','UserProfileResource','stack','name','send','index','Pause','mandatoryDispositionPause','map','ChatWebsite','rawAttributes','fieldName','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','filter','where','merge','type','VIRTUAL','options','includeAll','include','findAll','rows','catch','params','filters','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','describe','addDisposition','ChatWebsiteId','Disposition','getDispositions','findOne','pick','removeDispositions','ids','addAnswer','CannedAnswer','getAnswers','removeAnswers','addLogo','file','agentAvatar','addCustomerAvatar','customerAvatar','filename','addSystemAvatar','systemAvatar','join','root','server/files/images/logos/default_logo.svg','sitepic','../../config/license/util','custom','isNil','existsSync','server/files/images/logos/','download','getAvatar','server/files/images/avatars/default_avatar.png','server/files/images/avatars/','getCustomerAvatar','server/files/images/avatars/customer_avatar.png','showCustomerAvatar','server/files/images/avatars/system_avatar.png','headers','user-agent'];(function(_0x5f4e04,_0x2bb124){var _0x3f811e=function(_0x400eef){while(--_0x400eef){_0x5f4e04['push'](_0x5f4e04['shift']());}};_0x3f811e(++_0x2bb124);}(_0xeca9,0x1e4));var _0x9eca=function(_0xa12f83,_0x220b3a){_0xa12f83=_0xa12f83-0x0;var _0x4030e3=_0xeca9[_0xa12f83];return _0x4030e3;};'use strict';var BPromise=require(_0x9eca('0x0'));var Mustache=require(_0x9eca('0x1'));var util=require(_0x9eca('0x2'));var path=require(_0x9eca('0x3'));var ejs=require(_0x9eca('0x4'));var fs=require('fs');var fs_extra=require(_0x9eca('0x5'));var _=require('lodash');var querystring=require(_0x9eca('0x6'));var Redis=require(_0x9eca('0x7'));var qs=require(_0x9eca('0x8'));var logger=require(_0x9eca('0x9'))(_0x9eca('0xa'));var config=require(_0x9eca('0xb'));var db=require(_0x9eca('0xc'))['db'];config[_0x9eca('0xd')]=_[_0x9eca('0xe')](config[_0x9eca('0xd')],{'host':_0x9eca('0xf'),'port':0x18eb});var socket=require(_0x9eca('0x10'))(new Redis(config[_0x9eca('0xd')]));require('./chatWebsite.socket')[_0x9eca('0x11')](socket);var jayson=require('jayson/promise');var client=jayson[_0x9eca('0x12')][_0x9eca('0x13')]({'port':0x232c});var client9002=jayson['client'][_0x9eca('0x13')]({'port':0x232a});var client9003=jayson['client'][_0x9eca('0x13')]({'port':0x232b});var client9001=jayson[_0x9eca('0x12')][_0x9eca('0x13')]({'port':0x2329});function respondWithRpcPromise(_0x35c45a,_0xcce553,_0x29f80a,_0x297cc5){return new BPromise(function(_0x5bad90,_0x20bcfe){var _0x30918c=_0x297cc5||client;return _0x30918c[_0x9eca('0x14')](_0x35c45a,_0x29f80a)[_0x9eca('0x15')](function(_0xee65f8){logger[_0x9eca('0x16')](_0x9eca('0x17'),_0xcce553,_0x9eca('0x18'));logger[_0x9eca('0x19')](_0x9eca('0x1a'),_0xcce553,_0x9eca('0x18'),JSON['stringify'](_0xee65f8));if(_0xee65f8[_0x9eca('0x1b')]){if(_0xee65f8['error'][_0x9eca('0x1c')]===0x1f4){logger[_0x9eca('0x1b')](_0x9eca('0x17'),_0xcce553,_0xee65f8[_0x9eca('0x1b')]['message']);return _0x20bcfe(_0xee65f8['error'][_0x9eca('0x1d')]);}logger['error'](_0x9eca('0x17'),_0xcce553,_0xee65f8[_0x9eca('0x1b')]['message']);return _0x5bad90(_0xee65f8[_0x9eca('0x1b')][_0x9eca('0x1d')]);}else{logger['info'](_0x9eca('0x17'),_0xcce553,_0x9eca('0x18'));_0x5bad90(_0xee65f8[_0x9eca('0x1e')][_0x9eca('0x1d')]);}})['catch'](function(_0x140e8e){logger[_0x9eca('0x1b')]('ChatWebsite,\x20%s,\x20%s',_0xcce553,_0x140e8e);_0x20bcfe(_0x140e8e);});});}function respondWithStatusCode(_0x1ff156,_0x48f807){_0x48f807=_0x48f807||0xcc;return function(_0x195fb2){if(_0x195fb2){return _0x1ff156[_0x9eca('0x1f')](_0x48f807);}return _0x1ff156[_0x9eca('0x20')](_0x48f807)[_0x9eca('0x21')]();};}function respondWithResult(_0x3576dc,_0x516116){_0x516116=_0x516116||0xc8;return function(_0x1cda41){if(_0x1cda41){return _0x3576dc[_0x9eca('0x20')](_0x516116)[_0x9eca('0x22')](_0x1cda41);}};}function respondWithFilteredResult(_0x1d0ac9,_0x401b8f){return function(_0xcaef40){if(_0xcaef40){var _0x3aad14=typeof _0x401b8f[_0x9eca('0x23')]===_0x9eca('0x24')&&typeof _0x401b8f['limit']===_0x9eca('0x24');var _0x477300=_0xcaef40[_0x9eca('0x25')];var _0x497f76=_0x3aad14?0x0:_0x401b8f[_0x9eca('0x23')];var _0x17dcdb=_0x3aad14?_0xcaef40['count']:_0x401b8f[_0x9eca('0x23')]+_0x401b8f['limit'];var _0x20d6ec;if(_0x17dcdb>=_0x477300){_0x17dcdb=_0x477300;_0x20d6ec=0xc8;}else{_0x20d6ec=0xce;}_0x1d0ac9['status'](_0x20d6ec);return _0x1d0ac9['set']('Content-Range',_0x497f76+'-'+_0x17dcdb+'/'+_0x477300)[_0x9eca('0x22')](_0xcaef40);}return null;};}function saveUpdates(_0x27fca5){return function(_0x49c3a2){if(_0x49c3a2){return _0x49c3a2[_0x9eca('0x26')](_0x27fca5)[_0x9eca('0x15')](function(_0x4ade9c){return _0x4ade9c;});}return null;};}function removeEntity(_0x13e3c8){return function(_0x56f723){if(_0x56f723){return _0x56f723[_0x9eca('0x27')]()[_0x9eca('0x15')](function(){var _0x411f0a=_0x56f723[_0x9eca('0x28')]({'plain':!![]});var _0x2d55a2=_0x9eca('0x29');return db[_0x9eca('0x2a')]['destroy']({'where':{'type':_0x2d55a2,'resourceId':_0x411f0a['id']}})[_0x9eca('0x15')](function(){return _0x56f723;});})['then'](function(){_0x13e3c8['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x1239ef){return function(_0x354945){if(!_0x354945){_0x1239ef['sendStatus'](0x194);}return _0x354945;};}function handleError(_0xf6b909,_0x25e8d7){_0x25e8d7=_0x25e8d7||0x1f4;return function(_0x57a7e8){logger[_0x9eca('0x1b')](_0x57a7e8[_0x9eca('0x2b')]);if(_0x57a7e8[_0x9eca('0x2c')]){delete _0x57a7e8[_0x9eca('0x2c')];}_0xf6b909[_0x9eca('0x20')](_0x25e8d7)[_0x9eca('0x2d')](_0x57a7e8);};}exports[_0x9eca('0x2e')]=function(_0x283ab7,_0x2d1b6d){var _0x15f33f={'include':[{'model':db[_0x9eca('0x2f')],'as':_0x9eca('0x30')}]},_0x1a13a0={},_0x488252={'count':0x0,'rows':[]};var _0x20122a=_[_0x9eca('0x31')](db[_0x9eca('0x32')][_0x9eca('0x33')],function(_0x4ae845){return{'name':_0x4ae845[_0x9eca('0x34')],'type':_0x4ae845['type']['key']};});_0x1a13a0[_0x9eca('0x35')]=_['map'](_0x20122a,'name');_0x1a13a0[_0x9eca('0x36')]=_[_0x9eca('0x37')](_0x283ab7[_0x9eca('0x36')]);_0x1a13a0['filters']=_[_0x9eca('0x38')](_0x1a13a0['model'],_0x1a13a0[_0x9eca('0x36')]);_0x15f33f[_0x9eca('0x39')]=_['intersection'](_0x1a13a0[_0x9eca('0x35')],qs[_0x9eca('0x3a')](_0x283ab7[_0x9eca('0x36')][_0x9eca('0x3a')]));_0x15f33f[_0x9eca('0x39')]=_0x15f33f['attributes'][_0x9eca('0x3b')]?_0x15f33f[_0x9eca('0x39')]:_0x1a13a0[_0x9eca('0x35')];if(!_0x283ab7[_0x9eca('0x36')][_0x9eca('0x3c')](_0x9eca('0x3d'))){_0x15f33f[_0x9eca('0x3e')]=qs[_0x9eca('0x3e')](_0x283ab7['query']['limit']);_0x15f33f[_0x9eca('0x23')]=qs[_0x9eca('0x23')](_0x283ab7[_0x9eca('0x36')][_0x9eca('0x23')]);}_0x15f33f[_0x9eca('0x3f')]=qs['sort'](_0x283ab7['query'][_0x9eca('0x40')]);_0x15f33f['where']=qs['filters'](_['pick'](_0x283ab7[_0x9eca('0x36')],_0x1a13a0['filters']),_0x20122a);if(_0x283ab7['query'][_0x9eca('0x41')]){_0x15f33f[_0x9eca('0x42')]=_[_0x9eca('0x43')](_0x15f33f[_0x9eca('0x42')],{'$or':_[_0x9eca('0x31')](_0x20122a,function(_0x3d308b){if(_0x3d308b[_0x9eca('0x44')]!==_0x9eca('0x45')){var _0x2a31be={};_0x2a31be[_0x3d308b[_0x9eca('0x2c')]]={'$like':'%'+_0x283ab7['query'][_0x9eca('0x41')]+'%'};return _0x2a31be;}})});}_0x15f33f=_[_0x9eca('0x43')]({},_0x15f33f,_0x283ab7[_0x9eca('0x46')]);var _0x43a412={'where':_0x15f33f[_0x9eca('0x42')]};return db[_0x9eca('0x32')][_0x9eca('0x25')](_0x43a412)[_0x9eca('0x15')](function(_0x18b4b8){_0x488252[_0x9eca('0x25')]=_0x18b4b8;if(_0x283ab7['query'][_0x9eca('0x47')]){_0x15f33f[_0x9eca('0x48')]=[{'all':!![]}];}return db[_0x9eca('0x32')][_0x9eca('0x49')](_0x15f33f);})[_0x9eca('0x15')](function(_0x55e4dc){_0x488252[_0x9eca('0x4a')]=_0x55e4dc;return _0x488252;})[_0x9eca('0x15')](respondWithFilteredResult(_0x2d1b6d,_0x15f33f))[_0x9eca('0x4b')](handleError(_0x2d1b6d,null));};exports['show']=function(_0x519f5e,_0x5b377f){var _0x496b27={'raw':![],'where':{'id':_0x519f5e[_0x9eca('0x4c')]['id']},'include':[{'model':db[_0x9eca('0x2f')],'as':_0x9eca('0x30')}]},_0x22b55a={};_0x22b55a[_0x9eca('0x35')]=_[_0x9eca('0x37')](db[_0x9eca('0x32')][_0x9eca('0x33')]);_0x22b55a[_0x9eca('0x36')]=_[_0x9eca('0x37')](_0x519f5e['query']);_0x22b55a[_0x9eca('0x4d')]=_[_0x9eca('0x38')](_0x22b55a[_0x9eca('0x35')],_0x22b55a[_0x9eca('0x36')]);_0x496b27[_0x9eca('0x39')]=_['intersection'](_0x22b55a['model'],qs[_0x9eca('0x3a')](_0x519f5e[_0x9eca('0x36')][_0x9eca('0x3a')]));_0x496b27['attributes']=_0x496b27['attributes'][_0x9eca('0x3b')]?_0x496b27[_0x9eca('0x39')]:_0x22b55a[_0x9eca('0x35')];if(_0x519f5e[_0x9eca('0x36')][_0x9eca('0x47')]){_0x496b27[_0x9eca('0x48')]=[{'all':!![]}];}_0x496b27=_[_0x9eca('0x43')]({},_0x496b27,_0x519f5e[_0x9eca('0x46')]);return db[_0x9eca('0x32')][_0x9eca('0x4e')](_0x496b27)['then'](handleEntityNotFound(_0x5b377f,null))[_0x9eca('0x15')](respondWithResult(_0x5b377f,null))[_0x9eca('0x4b')](handleError(_0x5b377f,null));};exports['create']=function(_0x466062,_0x20b908){return db[_0x9eca('0x32')][_0x9eca('0x4f')](_0x466062['body'],{})[_0x9eca('0x15')](function(_0x2cddd9){var _0x3d76d9=_0x466062[_0x9eca('0x50')]['get']({'plain':!![]});if(!_0x3d76d9)throw new Error(_0x9eca('0x51'));if(_0x3d76d9[_0x9eca('0x52')]==='user'){var _0x465b76=_0x2cddd9[_0x9eca('0x28')]({'plain':!![]});var _0x3dc554=_0x9eca('0x29');return db[_0x9eca('0x53')][_0x9eca('0x4e')]({'where':{'name':_0x3dc554,'userProfileId':_0x3d76d9[_0x9eca('0x54')]},'raw':!![]})[_0x9eca('0x15')](function(_0x4f4271){if(_0x4f4271&&_0x4f4271[_0x9eca('0x55')]===0x0){return db['UserProfileResource'][_0x9eca('0x4f')]({'name':_0x465b76[_0x9eca('0x2c')],'resourceId':_0x465b76['id'],'type':_0x4f4271[_0x9eca('0x2c')],'sectionId':_0x4f4271['id']},{})['then'](function(){return _0x2cddd9;});}else{return _0x2cddd9;}})[_0x9eca('0x4b')](function(_0x541ce3){logger['error'](_0x9eca('0x56'),_0x541ce3);throw _0x541ce3;});}return _0x2cddd9;})['then'](respondWithResult(_0x20b908,0xc9))[_0x9eca('0x4b')](handleError(_0x20b908,null));};exports['update']=function(_0x469441,_0x13c2f4){if(_0x469441[_0x9eca('0x57')]['id']){delete _0x469441[_0x9eca('0x57')]['id'];}return db[_0x9eca('0x32')][_0x9eca('0x4e')]({'where':{'id':_0x469441[_0x9eca('0x4c')]['id']},'include':[{'model':db['Pause'],'as':'mandatoryDispositionPause'}]})[_0x9eca('0x15')](handleEntityNotFound(_0x13c2f4,null))[_0x9eca('0x15')](saveUpdates(_0x469441['body'],null))['then'](respondWithResult(_0x13c2f4,null))[_0x9eca('0x4b')](handleError(_0x13c2f4,null));};exports[_0x9eca('0x27')]=function(_0x220606,_0xfedfcc){return db[_0x9eca('0x32')][_0x9eca('0x4e')]({'where':{'id':_0x220606[_0x9eca('0x4c')]['id']}})[_0x9eca('0x15')](handleEntityNotFound(_0xfedfcc,null))[_0x9eca('0x15')](removeEntity(_0xfedfcc,null))['catch'](handleError(_0xfedfcc,null));};exports[_0x9eca('0x58')]=function(_0x52351b,_0x4343e3){return db[_0x9eca('0x32')][_0x9eca('0x58')]()[_0x9eca('0x15')](respondWithResult(_0x4343e3,null))['catch'](handleError(_0x4343e3,null));};exports[_0x9eca('0x59')]=function(_0x577cb3,_0x5de8de){if(_0x577cb3[_0x9eca('0x57')]['id']){delete _0x577cb3[_0x9eca('0x57')]['id'];}return db[_0x9eca('0x32')]['find']({'where':{'id':_0x577cb3[_0x9eca('0x4c')]['id']}})[_0x9eca('0x15')](handleEntityNotFound(_0x5de8de,null))['then'](function(_0xaf3ecb){if(_0xaf3ecb){_0x577cb3[_0x9eca('0x57')][_0x9eca('0x5a')]=_0xaf3ecb['id'];return db[_0x9eca('0x5b')]['create'](_0x577cb3[_0x9eca('0x57')]);}})['then'](respondWithResult(_0x5de8de,null))['catch'](handleError(_0x5de8de,null));};exports[_0x9eca('0x5c')]=function(_0x22f033,_0x587a71){var _0x4b7073={'raw':![],'where':{}};var _0x2c796e={};var _0x2a1bb4={'count':0x0,'rows':[]};return db[_0x9eca('0x32')][_0x9eca('0x5d')]({'where':{'id':_0x22f033['params']['id']}})['then'](handleEntityNotFound(_0x587a71,null))['then'](function(_0x5e6806){if(_0x5e6806){_0x2c796e['model']=_[_0x9eca('0x37')](db[_0x9eca('0x5b')]['rawAttributes']);_0x2c796e[_0x9eca('0x36')]=_['keys'](_0x22f033[_0x9eca('0x36')]);_0x2c796e[_0x9eca('0x4d')]=_[_0x9eca('0x38')](_0x2c796e[_0x9eca('0x35')],_0x2c796e[_0x9eca('0x36')]);_0x4b7073[_0x9eca('0x39')]=_[_0x9eca('0x38')](_0x2c796e['model'],qs[_0x9eca('0x3a')](_0x22f033[_0x9eca('0x36')][_0x9eca('0x3a')]));_0x4b7073[_0x9eca('0x39')]=_0x4b7073[_0x9eca('0x39')][_0x9eca('0x3b')]?_0x4b7073['attributes']:_0x2c796e['model'];if(!_0x22f033[_0x9eca('0x36')][_0x9eca('0x3c')](_0x9eca('0x3d'))){_0x4b7073[_0x9eca('0x3e')]=qs[_0x9eca('0x3e')](_0x22f033[_0x9eca('0x36')][_0x9eca('0x3e')]);_0x4b7073[_0x9eca('0x23')]=qs['offset'](_0x22f033[_0x9eca('0x36')][_0x9eca('0x23')]);}_0x4b7073[_0x9eca('0x3f')]=qs['sort'](_0x22f033[_0x9eca('0x36')]['sort']);_0x4b7073[_0x9eca('0x42')]=qs[_0x9eca('0x4d')](_[_0x9eca('0x5e')](_0x22f033[_0x9eca('0x36')],_0x2c796e[_0x9eca('0x4d')]));_0x4b7073['where'][_0x9eca('0x5a')]=_0x5e6806['id'];if(_0x22f033[_0x9eca('0x36')][_0x9eca('0x41')]){_0x4b7073[_0x9eca('0x42')]=_['merge'](_0x4b7073[_0x9eca('0x42')],{'$or':_['map'](_0x4b7073['attributes'],function(_0x34ed13){var _0x1f4129={};_0x1f4129[_0x34ed13]={'$like':'%'+_0x22f033[_0x9eca('0x36')][_0x9eca('0x41')]+'%'};return _0x1f4129;})});}_0x4b7073=_[_0x9eca('0x43')]({},_0x4b7073,_0x22f033[_0x9eca('0x46')]);return db['Disposition']['count']({'where':_0x4b7073['where']})['then'](function(_0x11496c){_0x2a1bb4[_0x9eca('0x25')]=_0x11496c;if(_0x22f033[_0x9eca('0x36')][_0x9eca('0x47')]){_0x4b7073[_0x9eca('0x48')]=[{'all':!![]}];}return db[_0x9eca('0x5b')][_0x9eca('0x49')](_0x4b7073);})[_0x9eca('0x15')](function(_0x9ea1c1){_0x2a1bb4[_0x9eca('0x4a')]=_0x9ea1c1;return _0x2a1bb4;});}})[_0x9eca('0x15')](respondWithFilteredResult(_0x587a71,_0x4b7073))[_0x9eca('0x4b')](handleError(_0x587a71,null));};exports[_0x9eca('0x5f')]=function(_0x3a195d,_0x4ae995){return db[_0x9eca('0x32')][_0x9eca('0x4e')]({'where':{'id':_0x3a195d[_0x9eca('0x4c')]['id']}})[_0x9eca('0x15')](handleEntityNotFound(_0x4ae995,null))['then'](function(_0x155327){if(_0x155327){return _0x155327[_0x9eca('0x5f')](_0x3a195d[_0x9eca('0x36')][_0x9eca('0x60')]);}})['then'](respondWithStatusCode(_0x4ae995,null))['catch'](handleError(_0x4ae995,null));};exports[_0x9eca('0x61')]=function(_0x2eb47a,_0x3b7e00){if(_0x2eb47a[_0x9eca('0x57')]['id']){delete _0x2eb47a[_0x9eca('0x57')]['id'];}return db['ChatWebsite']['find']({'where':{'id':_0x2eb47a[_0x9eca('0x4c')]['id']}})['then'](handleEntityNotFound(_0x3b7e00,null))[_0x9eca('0x15')](function(_0x5786c8){if(_0x5786c8){_0x2eb47a[_0x9eca('0x57')][_0x9eca('0x5a')]=_0x5786c8['id'];return db[_0x9eca('0x62')]['create'](_0x2eb47a['body']);}})['then'](respondWithResult(_0x3b7e00,null))['catch'](handleError(_0x3b7e00,null));};exports[_0x9eca('0x63')]=function(_0x584cf0,_0xfb4d98){var _0x3f9193={'raw':![],'where':{}};var _0xef2e87={};var _0x48f31={'count':0x0,'rows':[]};return db[_0x9eca('0x32')][_0x9eca('0x5d')]({'where':{'id':_0x584cf0[_0x9eca('0x4c')]['id']}})[_0x9eca('0x15')](handleEntityNotFound(_0xfb4d98,null))['then'](function(_0xe55237){if(_0xe55237){_0xef2e87[_0x9eca('0x35')]=_[_0x9eca('0x37')](db['CannedAnswer'][_0x9eca('0x33')]);_0xef2e87['query']=_['keys'](_0x584cf0[_0x9eca('0x36')]);_0xef2e87['filters']=_[_0x9eca('0x38')](_0xef2e87[_0x9eca('0x35')],_0xef2e87['query']);_0x3f9193[_0x9eca('0x39')]=_[_0x9eca('0x38')](_0xef2e87[_0x9eca('0x35')],qs[_0x9eca('0x3a')](_0x584cf0[_0x9eca('0x36')][_0x9eca('0x3a')]));_0x3f9193['attributes']=_0x3f9193[_0x9eca('0x39')]['length']?_0x3f9193['attributes']:_0xef2e87[_0x9eca('0x35')];if(!_0x584cf0['query'][_0x9eca('0x3c')](_0x9eca('0x3d'))){_0x3f9193[_0x9eca('0x3e')]=qs['limit'](_0x584cf0[_0x9eca('0x36')][_0x9eca('0x3e')]);_0x3f9193[_0x9eca('0x23')]=qs['offset'](_0x584cf0[_0x9eca('0x36')]['offset']);}_0x3f9193[_0x9eca('0x3f')]=qs[_0x9eca('0x40')](_0x584cf0[_0x9eca('0x36')][_0x9eca('0x40')]);_0x3f9193[_0x9eca('0x42')]=qs['filters'](_[_0x9eca('0x5e')](_0x584cf0[_0x9eca('0x36')],_0xef2e87['filters']));_0x3f9193['where']['ChatWebsiteId']=_0xe55237['id'];if(_0x584cf0[_0x9eca('0x36')][_0x9eca('0x41')]){_0x3f9193['where']=_['merge'](_0x3f9193[_0x9eca('0x42')],{'$or':_['map'](_0x3f9193[_0x9eca('0x39')],function(_0x25706f){var _0x214e74={};_0x214e74[_0x25706f]={'$like':'%'+_0x584cf0['query'][_0x9eca('0x41')]+'%'};return _0x214e74;})});}_0x3f9193=_[_0x9eca('0x43')]({},_0x3f9193,_0x584cf0[_0x9eca('0x46')]);return db['CannedAnswer']['count']({'where':_0x3f9193[_0x9eca('0x42')]})[_0x9eca('0x15')](function(_0x48019c){_0x48f31['count']=_0x48019c;if(_0x584cf0[_0x9eca('0x36')][_0x9eca('0x47')]){_0x3f9193[_0x9eca('0x48')]=[{'all':!![]}];}return db[_0x9eca('0x62')][_0x9eca('0x49')](_0x3f9193);})[_0x9eca('0x15')](function(_0x1c21ee){_0x48f31['rows']=_0x1c21ee;return _0x48f31;});}})[_0x9eca('0x15')](respondWithFilteredResult(_0xfb4d98,_0x3f9193))[_0x9eca('0x4b')](handleError(_0xfb4d98,null));};exports[_0x9eca('0x64')]=function(_0x263d55,_0x378b71){return db[_0x9eca('0x32')][_0x9eca('0x4e')]({'where':{'id':_0x263d55[_0x9eca('0x4c')]['id']}})['then'](handleEntityNotFound(_0x378b71,null))['then'](function(_0x29416c){if(_0x29416c){return _0x29416c['removeAnswers'](_0x263d55[_0x9eca('0x36')][_0x9eca('0x60')]);}})['then'](respondWithStatusCode(_0x378b71,null))['catch'](handleError(_0x378b71,null));};exports[_0x9eca('0x65')]=function(_0x4b49ff,_0x2986e4){_0x4b49ff[_0x9eca('0x57')]['sitepic']=_0x4b49ff[_0x9eca('0x66')]['filename'];return db['ChatWebsite'][_0x9eca('0x4e')]({'where':{'id':_0x4b49ff[_0x9eca('0x4c')]['id']}})[_0x9eca('0x15')](handleEntityNotFound(_0x2986e4,null))[_0x9eca('0x15')](saveUpdates(_0x4b49ff[_0x9eca('0x57')],null))[_0x9eca('0x15')](respondWithResult(_0x2986e4,null))[_0x9eca('0x4b')](handleError(_0x2986e4,null));};exports['addAvatar']=function(_0x3b42a5,_0x1ca9c2){_0x3b42a5[_0x9eca('0x57')][_0x9eca('0x67')]=_0x3b42a5[_0x9eca('0x66')]['filename'];return db[_0x9eca('0x32')][_0x9eca('0x4e')]({'where':{'id':_0x3b42a5[_0x9eca('0x4c')]['id']}})[_0x9eca('0x15')](handleEntityNotFound(_0x1ca9c2,null))[_0x9eca('0x15')](saveUpdates(_0x3b42a5[_0x9eca('0x57')],null))['then'](respondWithResult(_0x1ca9c2,null))[_0x9eca('0x4b')](handleError(_0x1ca9c2,null));};exports[_0x9eca('0x68')]=function(_0x4e5944,_0x41907d){_0x4e5944['body'][_0x9eca('0x69')]=_0x4e5944['file'][_0x9eca('0x6a')];return db['ChatWebsite'][_0x9eca('0x4e')]({'where':{'id':_0x4e5944['params']['id']}})[_0x9eca('0x15')](handleEntityNotFound(_0x41907d,null))['then'](saveUpdates(_0x4e5944[_0x9eca('0x57')],null))['then'](respondWithResult(_0x41907d,null))['catch'](handleError(_0x41907d,null));};exports[_0x9eca('0x6b')]=function(_0x336f41,_0x4f3cce){_0x336f41[_0x9eca('0x57')][_0x9eca('0x6c')]=_0x336f41[_0x9eca('0x66')][_0x9eca('0x6a')];return db['ChatWebsite'][_0x9eca('0x4e')]({'where':{'id':_0x336f41[_0x9eca('0x4c')]['id']}})[_0x9eca('0x15')](handleEntityNotFound(_0x4f3cce,null))[_0x9eca('0x15')](saveUpdates(_0x336f41[_0x9eca('0x57')],null))[_0x9eca('0x15')](respondWithResult(_0x4f3cce,null))[_0x9eca('0x4b')](handleError(_0x4f3cce,null));};exports['getLogo']=function(_0x165a96,_0x3606fb){var _0x165e57=path[_0x9eca('0x6d')](config[_0x9eca('0x6e')],_0x9eca('0x6f'));var _0x5dcc89={'where':{'id':_0x165a96[_0x9eca('0x4c')]['id']},'attributes':['id',_0x9eca('0x70')],'raw':!![]};var _0x2c0b77=![];return require(_0x9eca('0x71'))['getLicense']()[_0x9eca('0x15')](function(_0x39c611){if(_0x39c611){_0x2c0b77=_0x39c611[_0x9eca('0x72')];}})[_0x9eca('0x15')](function(){return db[_0x9eca('0x32')][_0x9eca('0x4e')](_0x5dcc89);})[_0x9eca('0x15')](handleEntityNotFound(_0x3606fb,null))[_0x9eca('0x15')](function(_0x1fcd09){if(_0x1fcd09){if(!_[_0x9eca('0x73')](_0x1fcd09['sitepic'])){if(fs[_0x9eca('0x74')](path['join'](config[_0x9eca('0x6e')],_0x9eca('0x75'),_0x1fcd09[_0x9eca('0x70')]))&&_0x2c0b77){_0x165e57=path[_0x9eca('0x6d')](config[_0x9eca('0x6e')],_0x9eca('0x75'),_0x1fcd09[_0x9eca('0x70')]);}}return _0x3606fb[_0x9eca('0x76')](_0x165e57);}})['catch'](handleError(_0x3606fb,null));};exports[_0x9eca('0x77')]=function(_0x5afb7f,_0x4b8056){var _0x44568d=path['join'](config['root'],_0x9eca('0x78'));var _0x30521b={'where':{'id':_0x5afb7f['params']['id']},'attributes':['id',_0x9eca('0x67')],'raw':!![]};return db['ChatWebsite'][_0x9eca('0x4e')](_0x30521b)['then'](handleEntityNotFound(_0x4b8056,null))[_0x9eca('0x15')](function(_0x2c0a16){if(_0x2c0a16){if(!_['isNil'](_0x2c0a16[_0x9eca('0x67')])){if(fs[_0x9eca('0x74')](path[_0x9eca('0x6d')](config[_0x9eca('0x6e')],'server/files/images/avatars/',_0x2c0a16[_0x9eca('0x67')]))){_0x44568d=path['join'](config[_0x9eca('0x6e')],_0x9eca('0x79'),_0x2c0a16[_0x9eca('0x67')]);}}return _0x4b8056[_0x9eca('0x76')](_0x44568d);}})[_0x9eca('0x4b')](handleError(_0x4b8056,null));};exports[_0x9eca('0x7a')]=function(_0x373588,_0x24936d){var _0x234f6e=path['join'](config[_0x9eca('0x6e')],_0x9eca('0x7b'));var _0x3c42a5={'where':{'id':_0x373588[_0x9eca('0x4c')]['id']},'attributes':['id',_0x9eca('0x69'),_0x9eca('0x7c')],'raw':!![]};return db[_0x9eca('0x32')][_0x9eca('0x4e')](_0x3c42a5)[_0x9eca('0x15')](handleEntityNotFound(_0x24936d,null))[_0x9eca('0x15')](function(_0x5e2969){if(_0x5e2969){if(!_[_0x9eca('0x73')](_0x5e2969[_0x9eca('0x69')])){if(fs['existsSync'](path['join'](config[_0x9eca('0x6e')],_0x9eca('0x79'),_0x5e2969[_0x9eca('0x69')]))&&_0x5e2969[_0x9eca('0x7c')]){_0x234f6e=path['join'](config[_0x9eca('0x6e')],_0x9eca('0x79'),_0x5e2969[_0x9eca('0x69')]);}}return _0x24936d[_0x9eca('0x76')](_0x234f6e);}})[_0x9eca('0x4b')](handleError(_0x24936d,null));};exports['getSystemAvatar']=function(_0x152b4e,_0x4f1133){var _0x146f89=path[_0x9eca('0x6d')](config[_0x9eca('0x6e')],_0x9eca('0x7d'));var _0x3b5587={'where':{'id':_0x152b4e[_0x9eca('0x4c')]['id']},'attributes':['id',_0x9eca('0x6c')],'raw':!![]};return db['ChatWebsite']['find'](_0x3b5587)[_0x9eca('0x15')](handleEntityNotFound(_0x4f1133,null))[_0x9eca('0x15')](function(_0x48c0f4){if(_0x48c0f4){if(!_[_0x9eca('0x73')](_0x48c0f4[_0x9eca('0x6c')])){if(fs[_0x9eca('0x74')](path[_0x9eca('0x6d')](config[_0x9eca('0x6e')],_0x9eca('0x79'),_0x48c0f4['systemAvatar']))){_0x146f89=path[_0x9eca('0x6d')](config[_0x9eca('0x6e')],_0x9eca('0x79'),_0x48c0f4[_0x9eca('0x6c')]);}}return _0x4f1133['download'](_0x146f89);}})[_0x9eca('0x4b')](handleError(_0x4f1133,null));};exports['notify']=function(_0x2cb262,_0x22950a){var _0x356433=require('user-agent-parser');var _0x55479c=new _0x356433();var _0x4dac24=_0x55479c['setUA'](_0x2cb262[_0x9eca('0x7e')][_0x9eca('0x7f')])[_0x9eca('0x80')]();var _0x1940b2={'body':_0x2cb262['body'],'channel':'chat'};var _0x29307b=[];var _0x5cec93=[];var _0x372b41={};var _0x1d024a=![];return db['CmContact']['describe']()[_0x9eca('0x15')](function(_0x1e16ce){if(!_0x1e16ce){throw new db[(_0x9eca('0x81'))][(_0x9eca('0x82'))](_0x9eca('0x83'));}_0x29307b=_[_0x9eca('0x84')](_['keys'](_0x1e16ce),[_0x9eca('0x85'),'updatedAt']);_0x5cec93=_[_0x9eca('0x84')](_[_0x9eca('0x37')](_0x1e16ce),['createdAt',_0x9eca('0x86'),_0x9eca('0x87'),_0x9eca('0x88')]);if(_0x2cb262[_0x9eca('0x57')]['id']){delete _0x2cb262['body']['id'];}if(_[_0x9eca('0x73')](_0x2cb262[_0x9eca('0x57')][_0x9eca('0x89')])){throw new db[(_0x9eca('0x81'))][(_0x9eca('0x82'))](_0x9eca('0x8a'));}if(_[_0x9eca('0x73')](_0x2cb262[_0x9eca('0x57')][_0x9eca('0x57')])||_0x2cb262[_0x9eca('0x57')][_0x9eca('0x57')]===''){throw new db[(_0x9eca('0x81'))][(_0x9eca('0x82'))](_0x9eca('0x8b'));}if(_[_0x9eca('0x73')](_0x2cb262[_0x9eca('0x57')][_0x9eca('0x8c')])){throw new db[(_0x9eca('0x81'))][(_0x9eca('0x82'))]('mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x5cec93);}if(!_[_0x9eca('0x8d')](_0x5cec93,_0x2cb262[_0x9eca('0x57')][_0x9eca('0x8c')])){throw new db[(_0x9eca('0x81'))][(_0x9eca('0x82'))](_0x9eca('0x8e')+_0x5cec93);}_0x372b41[_0x2cb262[_0x9eca('0x57')][_0x9eca('0x8c')]]=_0x2cb262['body'][_0x9eca('0x89')];})[_0x9eca('0x15')](function(){return db['ChatWebsite']['find']({'where':{'id':_0x2cb262[_0x9eca('0x4c')]['id']},'include':[{'model':db['CmList'],'as':_0x9eca('0x8f'),'include':[{'model':db[_0x9eca('0x90')],'as':'Contacts','where':_0x372b41,'limit':0x1,'order':[[_0x9eca('0x86'),_0x9eca('0x91')]]}]},{'model':db['ChatApplication'],'as':_0x9eca('0x92')}]});})[_0x9eca('0x15')](handleEntityNotFound(_0x22950a,null))[_0x9eca('0x15')](function(_0x5e40ec){if(_0x5e40ec&&_0x5e40ec[_0x9eca('0x8f')]){_0x1940b2[_0x9eca('0x93')]=_0x5e40ec;_0x1940b2[_0x9eca('0x94')]=_0x5e40ec[_0x9eca('0x92')];_0x1940b2[_0x9eca('0x95')]=_0x5e40ec['List'];_0x1940b2[_0x9eca('0x94')]=_[_0x9eca('0x96')](_0x1940b2[_0x9eca('0x94')],[_0x9eca('0x97')],[_0x9eca('0x98')]);if(_0x1940b2['account'][_0x9eca('0x92')]){delete _0x1940b2['account'][_0x9eca('0x92')];}if(_0x1940b2[_0x9eca('0x93')][_0x9eca('0x8f')]&&_0x1940b2['account'][_0x9eca('0x8f')][_0x9eca('0x99')][_0x9eca('0x3b')]){return _0x1940b2[_0x9eca('0x93')][_0x9eca('0x8f')][_0x9eca('0x99')][0x0];}var _0xf8aba7=_[_0x9eca('0xe')](_0x2cb262[_0x9eca('0x57')],{'firstName':_0x2cb262['body']['from'],'ListId':_0x5e40ec[_0x9eca('0x88')]});_0xf8aba7[_0x2cb262[_0x9eca('0x57')][_0x9eca('0x8c')]]=_0x2cb262[_0x9eca('0x57')][_0x9eca('0x89')];return db[_0x9eca('0x90')][_0x9eca('0x4f')](_0xf8aba7,{'fields':_0x29307b,'raw':!![]});}})[_0x9eca('0x15')](handleEntityNotFound(_0x22950a,null))[_0x9eca('0x15')](function(_0x298ee5){_0x1940b2[_0x9eca('0x9a')]=_0x298ee5;var _0x35c2a2=_0x2cb262['body'][_0x9eca('0x9b')];if(_0x2cb262[_0x9eca('0x7e')][_0x9eca('0x9c')]){_0x35c2a2=_0x2cb262[_0x9eca('0x7e')][_0x9eca('0x9c')];}else if(_0x2cb262['headers'][_0x9eca('0x9d')]){_0x35c2a2=_['first'](_0x2cb262['headers']['x-forwarded-for']['split'](','));}if(_0x298ee5){var _0xbe8c69={'ContactId':_0x298ee5['id'],'ChatWebsiteId':_0x2cb262[_0x9eca('0x4c')]['id'],'from':(_0x298ee5[_0x9eca('0x9e')]||'')+'\x20'+(_0x298ee5[_0x9eca('0x9f')]||''),'customerIp':_0x35c2a2,'customerPort':_0x2cb262[_0x9eca('0x7e')][_0x9eca('0xa0')]?_0x2cb262[_0x9eca('0x7e')][_0x9eca('0xa0')]:null,'referer':_0x2cb262['body']['referer'],'browserName':_0x4dac24[_0x9eca('0xa1')][_0x9eca('0x2c')]&&_0x4dac24['browser'][_0x9eca('0xa2')]?util[_0x9eca('0xa3')]('%s\x20%s',_0x4dac24['browser']['name'],_0x4dac24['browser'][_0x9eca('0xa2')]):_0x9eca('0xa4'),'browserVersion':_0x4dac24['browser'][_0x9eca('0xa2')]||_0x9eca('0xa4'),'osName':util['format'](_0x9eca('0xa5'),_0x4dac24['os'][_0x9eca('0x2c')],_0x4dac24['os']['version']),'osVersion':_0x4dac24['os'][_0x9eca('0xa2')],'deviceModel':_0x4dac24[_0x9eca('0xa6')]['model']&&_0x4dac24['device'][_0x9eca('0xa7')]?util[_0x9eca('0xa3')](_0x9eca('0xa8'),_0x4dac24[_0x9eca('0xa6')][_0x9eca('0x35')],_0x4dac24[_0x9eca('0xa6')][_0x9eca('0xa7')],_0x4dac24[_0x9eca('0xa6')][_0x9eca('0x44')]):null,'deviceVendor':_0x4dac24[_0x9eca('0xa6')][_0x9eca('0xa7')],'deviceType':_0x4dac24[_0x9eca('0xa6')][_0x9eca('0x44')],'formData':JSON['stringify'](_0x2cb262[_0x9eca('0x57')])};var _0x319843={'ChatWebsiteId':_0x2cb262[_0x9eca('0x4c')]['id'],'closed':![]};if(_0x2cb262['body'][_0x9eca('0xa9')]){_0x319843[_0x9eca('0xa9')]=_0x2cb262[_0x9eca('0x57')][_0x9eca('0xa9')];return db[_0x9eca('0xaa')][_0x9eca('0x4e')]({'where':_0x319843})[_0x9eca('0x15')](function(_0x5a0b86){if(_0x5a0b86){return[_0x5a0b86,![]];}_0xbe8c69[_0x9eca('0xa9')]=_0x2cb262[_0x9eca('0x57')][_0x9eca('0xa9')];_0xbe8c69['externalUrl']=_0x2cb262[_0x9eca('0x57')][_0x9eca('0xab')];return db[_0x9eca('0xaa')][_0x9eca('0x4f')](_0xbe8c69)[_0x9eca('0x15')](function(_0x39a73c){return[_0x39a73c,!![]];});});}_0x319843[_0x9eca('0xac')]=_0x298ee5['id'];if(_0x2cb262[_0x9eca('0x57')]['interaction']&&_0x2cb262[_0x9eca('0x57')][_0x9eca('0xad')]['id']){_0x319843['id']=_0x2cb262['body']['interaction']['id'];return db[_0x9eca('0xaa')][_0x9eca('0x4e')]({'where':_0x319843})[_0x9eca('0x15')](function(_0x147cb1){if(_0x147cb1){return[_0x147cb1,![]];}return db['ChatInteraction'][_0x9eca('0x4f')](_0xbe8c69)[_0x9eca('0x15')](function(_0x555999){return[_0x555999,!![]];});});}return db[_0x9eca('0xaa')][_0x9eca('0x4f')](_0xbe8c69)[_0x9eca('0x15')](function(_0x6f0f96){return[_0x6f0f96,!![]];});}})[_0x9eca('0xae')](function(_0x423ed7,_0x170953){if(_0x423ed7){_0x1d024a=_0x170953;if(!_0x170953){var _0x247c4c={'from':(_0x1940b2[_0x9eca('0x9a')][_0x9eca('0x9e')]||'')+'\x20'+(_0x1940b2[_0x9eca('0x9a')][_0x9eca('0x9f')]||'')};if(_0x2cb262[_0x9eca('0x57')]['threadId']&&_0x2cb262[_0x9eca('0x57')][_0x9eca('0xaf')]&&_0x2cb262[_0x9eca('0x57')][_0x9eca('0xa9')]!=_0x2cb262[_0x9eca('0x57')][_0x9eca('0xaf')]){_0x247c4c[_0x9eca('0xa9')]=_0x2cb262['body'][_0x9eca('0xaf')];}return _0x423ed7[_0x9eca('0x26')](_0x247c4c);}else{return _0x423ed7;}}})[_0x9eca('0x15')](function(_0x4500c3){_0x1940b2['interaction']=_0x4500c3[_0x9eca('0x28')]({'plain':!![]});_0x1940b2['interaction'][_0x9eca('0xb0')]=_0x1d024a;if(_0x1940b2[_0x9eca('0xad')]['created']){if(_0x1940b2['account'][_0x9eca('0xb1')]){_0x1940b2[_0x9eca('0x94')][_0x9eca('0xb2')]({'id':0x0,'priority':_0x1940b2['applications'][_0x9eca('0x3b')]+0x1,'app':'close','appdata':_0x9eca('0xb3'),'interval':'*,*,*,*'});}}return db[_0x9eca('0xb4')]['create']({'body':_0x2cb262[_0x9eca('0x57')][_0x9eca('0x57')],'ChatWebsiteId':_0x2cb262['params']['id'],'ChatInteractionId':_0x4500c3['id'],'direction':'in','ContactId':_0x1940b2['contact']['id'],'AttachmentId':_0x2cb262[_0x9eca('0x57')][_0x9eca('0xb5')]});})['then'](function(_0x3f6300){_0x1940b2['message']=_0x3f6300;if(_0x1940b2[_0x9eca('0xad')][_0x9eca('0xb6')]){return db[_0x9eca('0xb7')][_0x9eca('0x4e')]({'attributes':['id','name'],'where':{'id':_0x1940b2[_0x9eca('0xad')][_0x9eca('0xb6')]}})[_0x9eca('0x15')](function(_0x40d42b){if(_0x40d42b){_0x1940b2[_0x9eca('0x94')][_0x9eca('0xb8')]({'id':0x0,'priority':0x0,'app':_0x9eca('0xb9'),'appdata':_0x40d42b['name']+','+(_0x1940b2[_0x9eca('0x93')][_0x9eca('0xba')]||0xa),'interval':_0x9eca('0xbb')});_0x1940b2[_0x9eca('0xbc')]=!![];}return respondWithRpcPromise(_0x9eca('0xbd'),'startRouting',_0x1940b2);});}return respondWithRpcPromise(_0x9eca('0xbd'),_0x9eca('0xbe'),_0x1940b2);})[_0x9eca('0x15')](function(_0x52dd34){respondWithRpcPromise(_0x9eca('0xbf'),_0x9eca('0xbf'),{'event':_0x9eca('0xc0'),'message':_0x52dd34},client9002);return _0x52dd34;})[_0x9eca('0x15')](respondWithResult(_0x22950a,null))[_0x9eca('0x4b')](handleError(_0x22950a,null));};exports[_0x9eca('0xc1')]=function(_0x1236c6,_0x526743){var _0x1e3bb5,_0x39ccfb,_0x304399;var _0x3e9e73=[];var _0x3129c4={};var _0x1edede=_0x1236c6[_0x9eca('0xc2')]||[];var _0x288b22=[];var _0x225e43;return db[_0x9eca('0x90')][_0x9eca('0x58')]()[_0x9eca('0x15')](function(_0x15fd80){if(!_0x15fd80){throw new db[(_0x9eca('0x81'))][(_0x9eca('0x82'))](_0x9eca('0x83'));}_0x3e9e73=_[_0x9eca('0x84')](_['keys'](_0x15fd80),[_0x9eca('0x85'),_0x9eca('0x86'),_0x9eca('0x87'),_0x9eca('0x88')]);if(_0x1236c6[_0x9eca('0x57')]['id']){delete _0x1236c6[_0x9eca('0x57')]['id'];}if(_[_0x9eca('0x73')](_0x1236c6['body'][_0x9eca('0x89')])){throw _0x526743['status'](0x1f4)[_0x9eca('0x2d')](new db['Sequelize'][(_0x9eca('0x82'))](_0x9eca('0x8a')));}if(_[_0x9eca('0x73')](_0x1236c6['body'][_0x9eca('0x57')])||_0x1236c6[_0x9eca('0x57')]['body']===''){throw _0x526743['status'](0x1f4)[_0x9eca('0x2d')](new db[(_0x9eca('0x81'))][(_0x9eca('0x82'))](_0x9eca('0x8b')));}if(_['isNil'](_0x1236c6['body']['mapKeyOffline'])){throw _0x526743[_0x9eca('0x20')](0x1f4)[_0x9eca('0x2d')](new db[(_0x9eca('0x81'))]['ValidationError'](_0x9eca('0xc3')+_0x3e9e73));}if(!_[_0x9eca('0x8d')](_0x3e9e73,_0x1236c6[_0x9eca('0x57')]['mapKeyOffline'])){throw _0x526743[_0x9eca('0x20')](0x1f4)[_0x9eca('0x2d')](new db['Sequelize'][(_0x9eca('0x82'))](_0x9eca('0xc4')+_0x3e9e73));}_0x3129c4[_0x1236c6[_0x9eca('0x57')][_0x9eca('0xc5')]]=_0x1236c6[_0x9eca('0x57')][_0x9eca('0x89')];})['then'](function(){return db['ChatWebsite'][_0x9eca('0x4e')]({'where':{'id':_0x1236c6[_0x9eca('0x4c')]['id']},'include':[{'model':db[_0x9eca('0xc6')],'as':_0x9eca('0x8f')},{'model':db[_0x9eca('0xc7')],'as':_0x9eca('0xc7')}]});})[_0x9eca('0x15')](handleEntityNotFound(_0x526743,null))[_0x9eca('0x15')](function(_0x47ace6){if(_0x47ace6&&_0x47ace6['List']){_0x39ccfb=_0x47ace6;var _0x5141ce=_[_0x9eca('0xe')](_0x1236c6[_0x9eca('0x57')],{'firstName':_0x1236c6[_0x9eca('0x57')]['from'],'phone':_0x1236c6['body'][_0x9eca('0x89')],'ListId':_0x47ace6[_0x9eca('0x88')]});_0x5141ce[_0x1236c6[_0x9eca('0x57')][_0x9eca('0xc5')]]=_0x1236c6[_0x9eca('0x57')][_0x9eca('0x89')];return db[_0x9eca('0x90')][_0x9eca('0xc8')]({'where':_0x3129c4,'defaults':_0x5141ce});}})[_0x9eca('0xae')](function(_0x8fe804){if(_0x8fe804){_0x304399=_0x8fe804;var _0x300d93=fs['readFileSync'](path[_0x9eca('0x6d')](config[_0x9eca('0x6e')],_0x9eca('0xc9')),_0x9eca('0xca'));var _0x19fd06=ejs['render'](_0x300d93,{'body':_[_0x9eca('0xcb')](_0x1236c6['body'][_0x9eca('0x57')]),'bodyTitle':_0x39ccfb[_0x9eca('0xcc')]});return db[_0x9eca('0xcd')][_0x9eca('0x4f')]({'body':_0x19fd06,'ContactId':_0x8fe804['id'],'ChatWebsiteId':_0x39ccfb['id']});}})[_0x9eca('0x15')](function(_0x3e0774){_0x225e43=_0x3e0774;if(_0x1edede['length']){var _0x15688a=_0x1edede[_0x9eca('0x31')](function(_0x1aff3b){return{'name':_0x1aff3b['originalname'],'basename':_0x1aff3b['filename'],'type':_0x1aff3b['mimetype'],'ChatOfflineMessageId':_0x3e0774['id']};});_0x288b22=_0x15688a[_0x9eca('0x31')](_0x441e1e=>{var _0x130402={'filename':_0x441e1e['name'],'path':path[_0x9eca('0x6d')](config['root'],'server','files','attachments',_0x9eca('0xce'),_0x441e1e['basename'])};return _0x130402;});if(!_0x39ccfb[_0x9eca('0xcf')]){return db[_0x9eca('0xd0')][_0x9eca('0xd1')](function(_0x5a3774){return db[_0x9eca('0xd2')]['bulkCreate'](_0x15688a,{'transaction':_0x5a3774});});}}})[_0x9eca('0x15')](function(){if(_0x225e43){_0x1e3bb5=_0x225e43;return db[_0x9eca('0xc7')][_0x9eca('0x5d')]({'where':{'active':!![]},'include':[{'model':db[_0x9eca('0xd3')],'as':_0x9eca('0xd4'),'raw':!![]}]});}})['then'](function(_0x4ff6fa){if(_0x4ff6fa&&_0x4ff6fa[_0x9eca('0xd4')]&&_0x39ccfb[_0x9eca('0xd5')]&&_0x39ccfb[_0x9eca('0xd6')]){var _0x5f3c8c={'tls':{'rejectUnauthorized':![]}};if(_0x4ff6fa[_0x9eca('0xd4')]['service']){_0x5f3c8c[_0x9eca('0xd7')]=_0x4ff6fa[_0x9eca('0xd4')][_0x9eca('0xd7')];}else{_0x5f3c8c[_0x9eca('0xd8')]=_0x4ff6fa[_0x9eca('0xd4')][_0x9eca('0xd8')];_0x5f3c8c['port']=_0x4ff6fa[_0x9eca('0xd4')][_0x9eca('0xd9')];_0x5f3c8c[_0x9eca('0xda')]=_0x4ff6fa[_0x9eca('0xd4')][_0x9eca('0xda')];}if(_0x4ff6fa[_0x9eca('0xd4')][_0x9eca('0xdb')]){_0x5f3c8c[_0x9eca('0xdc')]={'user':_0x4ff6fa['Smtp'][_0x9eca('0x50')],'pass':_0x4ff6fa[_0x9eca('0xd4')][_0x9eca('0xdd')]};}return respondWithRpcPromise(_0x9eca('0xde'),_0x9eca('0xdf'),{'account':_0x5f3c8c,'message':{'from':util['format']('\x22%s\x22\x20<%s>',_0x4ff6fa[_0x9eca('0x2c')],_0x4ff6fa[_0x9eca('0xe0')]||_0x4ff6fa[_0x9eca('0xd4')][_0x9eca('0x50')]),'to':_0x39ccfb[_0x9eca('0xd6')],'subject':_0x39ccfb[_0x9eca('0xe1')],'html':_0x1e3bb5[_0x9eca('0x57')],'attachments':_0x288b22}},client9003)[_0x9eca('0x15')](function(){return _0x1e3bb5;})[_0x9eca('0x4b')](function(_0x13f75e){console['error'](_0x13f75e);});}})[_0x9eca('0x15')](function(){if(_0x39ccfb&&_0x39ccfb['openNewInteraction']&&_0x39ccfb['MailAccountId']){var _0x2ef7b1=[];if(_0x1edede[_0x9eca('0x3b')]){_0x2ef7b1=_0x1edede['map'](function(_0x5c101c){return{'name':_0x5c101c[_0x9eca('0xe2')],'basename':_0x5c101c[_0x9eca('0x6a')],'type':_0x5c101c[_0x9eca('0xe3')],'ChatOfflineMessageId':_0x225e43['id']};});}var _0x2d8104;if(!_[_0x9eca('0x73')](_0x39ccfb[_0x9eca('0xe4')])){var _0x4c8563=_[_0x9eca('0x31')](_0x1236c6[_0x9eca('0x57')],function(_0x41369e){return _0x41369e;});var _0x24030c=_['toPairsIn'](_0x4c8563)[0x0];var _0x58291d=_['mapValues'](_0x24030c,function(_0x3244e7){return _0x3244e7;});_0x2d8104=_0x58291d[0x1][_0x39ccfb[_0x9eca('0xe4')]];}var _0x291565={'from':_0x304399[_0x9eca('0xe0')],'firstName':_0x304399[_0x9eca('0x9e')],'lastName':_0x304399['lastName'],'mapKey':_0x9eca('0xe0'),'message':{'from':_0x304399[_0x9eca('0xe0')],'to':_0x39ccfb[_0x9eca('0xc7')][_0x9eca('0xe0')],'cc':'','subject':_[_0x9eca('0x73')](_0x2d8104)?_0x39ccfb[_0x9eca('0xe1')]:_0x2d8104,'messageId':'','sentAt':new Date(),'attach':_0x2ef7b1[_0x9eca('0x3b')],'attachments':_0x2ef7b1,'originChannel':_0x9eca('0xe5'),'ChatWebsiteId':_0x39ccfb['id'],'ChatOfflineMessageId':_0x1e3bb5['id'],'originTo':_0x39ccfb[_0x9eca('0xc7')][_0x9eca('0xe0')]},'body':_0x1e3bb5['body']};var _0x26f2d9={'account':{'id':_0x39ccfb[_0x9eca('0xe6')]},'body':_0x291565,'log':_0x9eca('0xe7')};return respondWithRpcPromise(_0x9eca('0xe7'),_0x9eca('0xe8'),_0x26f2d9,client9001)['then'](function(){return _0x1e3bb5;})['catch'](function(_0x2f47e1){console[_0x9eca('0x1b')](_0x2f47e1);});}return;})[_0x9eca('0x15')](function(){if(_0x1e3bb5){return _0x1e3bb5;}})[_0x9eca('0x15')](respondWithResult(_0x526743,null))[_0x9eca('0x4b')](function(_0x295cfa){console[_0x9eca('0x1b')](_0x9eca('0x4b'),_0x295cfa);for(var _0x5e9f20 of _0x1edede){var _0x2e2f1b=path[_0x9eca('0x6d')](config[_0x9eca('0x6e')],_0x9eca('0xe9'),_0x9eca('0xc2'),_0x9eca('0xea'),_0x9eca('0xce'),_0x5e9f20[_0x9eca('0x6a')]);fs_extra[_0x9eca('0xeb')](_0x2e2f1b)[_0x9eca('0x4b')](function(_0x5daa02){console[_0x9eca('0x1b')](_0x9eca('0xec'),_0x2e2f1b,_0x5daa02);});}});};exports[_0x9eca('0xed')]=function(_0x24379b,_0x3399f9){return db['ChatInteraction'][_0x9eca('0x4e')]({'where':{'id':_0x24379b[_0x9eca('0x4c')]['id']}})['then'](handleEntityNotFound(_0x3399f9,null))[_0x9eca('0x15')](function(_0x26898a){if(_0x26898a){return _0x26898a[_0x9eca('0xed')](_0x24379b[_0x9eca('0x57')][_0x9eca('0x60')],_[_0x9eca('0xee')](_0x24379b[_0x9eca('0x57')],[_0x9eca('0x60'),'id'])||{});}})['then'](respondWithResult(_0x3399f9,null))[_0x9eca('0x4b')](handleError(_0x3399f9,null));};exports[_0x9eca('0xef')]=function(_0x1dad45,_0x4f6a5d){var _0xa4de72={'raw':![],'where':{}};var _0x35e43b={};var _0x4b6652={'count':0x0,'rows':[]};return db[_0x9eca('0x32')][_0x9eca('0x5d')]({'where':{'id':_0x1dad45[_0x9eca('0x4c')]['id']}})[_0x9eca('0x15')](handleEntityNotFound(_0x4f6a5d,null))[_0x9eca('0x15')](function(_0x2598b4){if(_0x2598b4){_0x35e43b['model']=_['keys'](db[_0x9eca('0xaa')][_0x9eca('0x33')]);_0x35e43b[_0x9eca('0x36')]=_[_0x9eca('0x37')](_0x1dad45[_0x9eca('0x36')]);_0x35e43b['filters']=_[_0x9eca('0x38')](_0x35e43b[_0x9eca('0x35')],_0x35e43b['query']);_0xa4de72[_0x9eca('0x39')]=_['intersection'](_0x35e43b[_0x9eca('0x35')],qs[_0x9eca('0x3a')](_0x1dad45[_0x9eca('0x36')][_0x9eca('0x3a')]));_0xa4de72[_0x9eca('0x39')]=_0xa4de72[_0x9eca('0x39')]['length']?_0xa4de72[_0x9eca('0x39')]:_0x35e43b['model'];if(!_0x1dad45['query']['hasOwnProperty']('nolimit')){_0xa4de72[_0x9eca('0x3e')]=qs['limit'](_0x1dad45[_0x9eca('0x36')]['limit']);_0xa4de72[_0x9eca('0x23')]=qs['offset'](_0x1dad45[_0x9eca('0x36')][_0x9eca('0x23')]);}_0xa4de72[_0x9eca('0x3f')]=qs[_0x9eca('0x40')](_0x1dad45[_0x9eca('0x36')][_0x9eca('0x40')]);_0xa4de72[_0x9eca('0x42')]=qs[_0x9eca('0x4d')](_[_0x9eca('0x5e')](_0x1dad45['query'],_0x35e43b[_0x9eca('0x4d')]));_0xa4de72[_0x9eca('0x42')][_0x9eca('0x5a')]=_0x2598b4['id'];if(_0x1dad45[_0x9eca('0x36')]['filter']){_0xa4de72[_0x9eca('0x42')]=_['merge'](_0xa4de72[_0x9eca('0x42')],{'$or':_[_0x9eca('0x31')](_0xa4de72[_0x9eca('0x39')],function(_0x4925ad){var _0x21ef80={};_0x21ef80[_0x4925ad]={'$like':'%'+_0x1dad45[_0x9eca('0x36')][_0x9eca('0x41')]+'%'};return _0x21ef80;})});}_0xa4de72=_[_0x9eca('0x43')]({},_0xa4de72,_0x1dad45[_0x9eca('0x46')]);return db['ChatInteraction'][_0x9eca('0x25')]({'where':_0xa4de72[_0x9eca('0x42')]})[_0x9eca('0x15')](function(_0x44a355){_0x4b6652[_0x9eca('0x25')]=_0x44a355;if(_0x1dad45[_0x9eca('0x36')][_0x9eca('0x47')]){_0xa4de72[_0x9eca('0x48')]=[{'model':db[_0x9eca('0x90')],'as':_0x9eca('0xf0'),'required':![]},{'model':db[_0x9eca('0xb7')],'as':_0x9eca('0xf1'),'attributes':[_0x9eca('0x2c'),_0x9eca('0xf2'),'internal'],'required':![]},{'model':db['Tag'],'as':_0x9eca('0xf3'),'attributes':['id',_0x9eca('0x2c'),_0x9eca('0xf4')],'where':_0x1dad45[_0x9eca('0x36')][_0x9eca('0xf5')]?{'id':_0x1dad45[_0x9eca('0x36')][_0x9eca('0xf5')]}:undefined,'required':_0x1dad45['query'][_0x9eca('0xf5')]?!![]:![]}];}return db[_0x9eca('0xaa')]['findAll'](_0xa4de72);})[_0x9eca('0x15')](function(_0x194894){_0x4b6652[_0x9eca('0x4a')]=_0x194894;return _0x4b6652;});}})['then'](respondWithFilteredResult(_0x4f6a5d,_0xa4de72))[_0x9eca('0x4b')](handleError(_0x4f6a5d,null));};function iftimePromise(_0x24ece8,_0x5f58f1){return respondWithRpcPromise(_0x9eca('0xf6'),_0x9eca('0xf7'),{'command':_0x5f58f1[_0x9eca('0xf8')]?util[_0x9eca('0xa3')](_0x9eca('0xf9'),_0x24ece8[_0x9eca('0xfa')],_0x5f58f1[_0x9eca('0xf8')]):util['format'](_0x9eca('0xfb'),_0x24ece8[_0x9eca('0xfa')])},client9002)[_0x9eca('0x15')](function(_0x374b15){var _0x5f3d7d=_0x374b15&&_0x374b15[_0x9eca('0xfc')](_0x9eca('0xfd'))>=0x0?!![]:![];logger['info'](_0x9eca('0xfe'),_0x5f58f1['id'],_0x24ece8['id'],_0x24ece8[_0x9eca('0xfa')],_0x5f3d7d?_0x9eca('0xff'):_0x9eca('0x100'),_0x5f58f1[_0x9eca('0xf8')]?_0x5f58f1[_0x9eca('0xf8')]:_0x9eca('0x101'));return _0x5f3d7d;})['catch'](function(_0x4503){logger['error']('[%s][INTERVAL][%s]\x20%s\x20%s\x20(%s)',_0x5f58f1['id'],_0x24ece8['id'],_0x24ece8['interval'],util['inspect'](_0x4503,{'showHidden':![],'depth':null}),_0x5f58f1['timezone']?_0x5f58f1['timezone']:_0x9eca('0x101'));return![];});}exports['getSnippet']=function(_0x5041d2,_0x211265){var _0x5da771=0x0;var _0x45b5e8=0x0;var _0x4f4420=![];var _0x96f444;var _0xcd6ca3;return db['ChatWebsite'][_0x9eca('0x4e')]({'where':{'id':_0x5041d2[_0x9eca('0x4c')]['id']},'include':[{'model':db[_0x9eca('0x102')],'as':_0x9eca('0x102'),'include':[{'model':db[_0x9eca('0x102')],'as':_0x9eca('0x103'),'attributes':['id',_0x9eca('0xfa')],'raw':!![]}]}]})[_0x9eca('0x15')](handleEntityNotFound(_0x211265,null))['then'](function(_0x458958){if(_0x458958){_0x96f444=_0x458958;return _0x458958[_0x9eca('0x104')]({'raw':!![]});}})[_0x9eca('0x15')](function(_0x486a63){if(_0x96f444){if(_0x486a63){_0xcd6ca3=_0x486a63;}}return require(_0x9eca('0x71'))[_0x9eca('0x105')]();})[_0x9eca('0x15')](function(_0x5513b7){if(_0x5513b7){_0x45b5e8=_0x5513b7['virtual'];_0x4f4420=_0x5513b7[_0x9eca('0x72')];}})['then'](function(){return db['ChatInteraction']['count']({'where':{'closed':![]}});})['then'](function(_0x2d6b8a){_0x5da771=_0x2d6b8a;if(_0x45b5e8&&_0x2d6b8a>_0x45b5e8){return db[_0x9eca('0x106')][_0x9eca('0x5d')]({'where':{'id':0x1}})[_0x9eca('0x15')](function(_0x2209d7){if(_0x2209d7){_0x2209d7[_0x9eca('0x107')](_0x9eca('0x108'));}});}})[_0x9eca('0x15')](function(){if(_0x96f444['Interval']&&_0x96f444[_0x9eca('0x102')][_0x9eca('0x103')]){var _0x385c4d=[];for(var _0x28ff35=0x0;_0x28ff35<_0x96f444[_0x9eca('0x102')][_0x9eca('0x103')][_0x9eca('0x3b')];_0x28ff35++){var _0x453dba=_0x96f444[_0x9eca('0x102')]['Intervals'][_0x28ff35]['get']({'plain':!![]});_0x385c4d[_0x9eca('0xb2')](iftimePromise(_0x453dba,_0x96f444));}return BPromise['all'](_0x385c4d)['then'](function(_0x48918a){return _[_0x9eca('0x109')](_0x48918a);});}else{return!![];}})['then'](function(_0x325e3b){var _0x1de088=fs[_0x9eca('0x10a')](path['join'](config[_0x9eca('0x6e')],_0x9eca('0x10b')),_0x9eca('0xca'));var _0x108ae0={'remote':_0x96f444[_0x9eca('0x10c')],'query':querystring[_0x9eca('0x10d')](_['merge'](_0x96f444[_0x9eca('0x28')]({'plain':!![]}),{'customerIp':_0x5041d2['headers'][_0x9eca('0x9d')]||_0x5041d2[_0x9eca('0x7e')][_0x9eca('0x10e')]||_0x5041d2[_0x9eca('0x10f')]['remoteAddress']||_0x5041d2['ip'],'referer':_0x5041d2['headers'][_0x9eca('0x110')],'openedInteractions':_0x5da771,'maxInteractions':_0x45b5e8,'virtual':_0x4f4420[_0x9eca('0x111')],'online':_0x325e3b,'custom':_0x4f4420}))['replace'](/'/g,'\x5c\x27')};_0x211265[_0x9eca('0x2d')](ejs[_0x9eca('0x112')](Mustache[_0x9eca('0x112')](_0x1de088,_0x108ae0),{'proactiveActions':_0xcd6ca3,'alignment':_0x96f444[_0x9eca('0x113')],'verticalAlignment':_0x96f444[_0x9eca('0x114')],'div_color':_0x96f444[_0x9eca('0xf4')],'text_color':_0x96f444[_0x9eca('0x115')],'button_color':_0x96f444[_0x9eca('0x116')],'background_color':_0x96f444[_0x9eca('0x117')]}));})[_0x9eca('0x4b')](handleError(_0x211265,null));};exports[_0x9eca('0x118')]=function(_0x47e182,_0x48be99){var _0x491ee7=_0x47e182[_0x9eca('0x4c')]['id'];var _0x4f046d=_0x47e182[_0x9eca('0x57')];var _0x11c891=0xc8;var _0x575582=null;return db[_0x9eca('0xd0')]['transaction']({'isolationLevel':db['sequelize'][_0x9eca('0x119')][_0x9eca('0x11a')][_0x9eca('0x11b')]},function(_0x11251c){return db[_0x9eca('0x32')][_0x9eca('0x5d')]({'where':{'id':_0x491ee7},'transaction':_0x11251c})[_0x9eca('0x15')](function(_0x459ce7){if(_0x459ce7){return db[_0x9eca('0x11c')][_0x9eca('0x27')]({'where':{'ChatWebsiteId':_0x491ee7},'transaction':_0x11251c})[_0x9eca('0x15')](function(){var _0x507d88=_[_0x9eca('0x31')](_0x4f046d,function(_0xe89f85){_0xe89f85[_0x9eca('0x5a')]=_0x491ee7;return _0xe89f85;});return db[_0x9eca('0x11c')][_0x9eca('0x11d')](_0x507d88,{'transaction':_0x11251c});});}else{_0x11c891=0x194;_0x575582=[];}});})[_0x9eca('0x15')](function(){if(_0x11c891!==0x194){return db[_0x9eca('0x11c')][_0x9eca('0x11e')]({'where':{'ChatWebsiteId':_0x491ee7},'order':_0x9eca('0x97')})[_0x9eca('0x15')](function(_0x216b4b){_0x575582=_0x216b4b;});}})[_0x9eca('0x4b')](function(_0x481e72){_0x11c891=0x1f4;logger[_0x9eca('0x1b')](_0x481e72[_0x9eca('0x2b')]);if(_0x481e72[_0x9eca('0x2c')]){delete _0x481e72['name'];}_0x575582=_0x481e72;})[_0x9eca('0x11f')](function(){if(_0x575582===null){_0x48be99[_0x9eca('0x1f')](_0x11c891);}else{if(_0x11c891===0x1f4){_0x48be99[_0x9eca('0x20')](_0x11c891)[_0x9eca('0x2d')](_0x575582);}else{_0x48be99[_0x9eca('0x20')](_0x11c891)[_0x9eca('0x22')](_0x575582);}}});};exports[_0x9eca('0x120')]=function(_0x18b783,_0x1c579c){var _0x34f771={};var _0x18bd99={};var _0x30b887;var _0x323e43;return db[_0x9eca('0x32')][_0x9eca('0x5d')]({'where':{'id':_0x18b783['params']['id']}})['then'](handleEntityNotFound(_0x1c579c,null))['then'](function(_0x4e337f){if(_0x4e337f){_0x30b887=_0x4e337f;_0x18bd99[_0x9eca('0x35')]=_['keys'](db[_0x9eca('0x11c')][_0x9eca('0x33')]);_0x18bd99[_0x9eca('0x36')]=_[_0x9eca('0x37')](_0x18b783[_0x9eca('0x36')]);_0x18bd99['filters']=_[_0x9eca('0x38')](_0x18bd99[_0x9eca('0x35')],_0x18bd99['query']);_0x34f771['attributes']=_[_0x9eca('0x38')](_0x18bd99[_0x9eca('0x35')],qs[_0x9eca('0x3a')](_0x18b783[_0x9eca('0x36')][_0x9eca('0x3a')]));_0x34f771[_0x9eca('0x39')]=_0x34f771[_0x9eca('0x39')][_0x9eca('0x3b')]?_0x34f771[_0x9eca('0x39')]:_0x18bd99[_0x9eca('0x35')];_0x34f771[_0x9eca('0x3f')]=qs[_0x9eca('0x40')](_0x18b783['query'][_0x9eca('0x40')]);_0x34f771['where']=qs[_0x9eca('0x4d')](_['pick'](_0x18b783['query'],_0x18bd99[_0x9eca('0x4d')]));if(_0x18b783[_0x9eca('0x36')]['filter']){_0x34f771[_0x9eca('0x42')]=_[_0x9eca('0x43')](_0x34f771[_0x9eca('0x42')],{'$or':_['map'](_0x34f771[_0x9eca('0x39')],function(_0x173d1d){var _0x32b246={};_0x32b246[_0x173d1d]={'$like':'%'+_0x18b783['query'][_0x9eca('0x41')]+'%'};return _0x32b246;})});}_0x34f771=_[_0x9eca('0x43')]({},_0x34f771,_0x18b783[_0x9eca('0x46')]);return _0x30b887['getApplications'](_0x34f771);}})['then'](function(_0x275d51){if(_0x275d51){_0x323e43=_0x275d51[_0x9eca('0x3b')];if(!_0x18b783[_0x9eca('0x36')][_0x9eca('0x3c')]('nolimit')){_0x34f771[_0x9eca('0x3e')]=qs[_0x9eca('0x3e')](_0x18b783['query'][_0x9eca('0x3e')]);_0x34f771['offset']=qs[_0x9eca('0x23')](_0x18b783[_0x9eca('0x36')][_0x9eca('0x23')]);}return _0x30b887['getApplications'](_0x34f771);}})['then'](function(_0x26c60b){if(_0x26c60b){return _0x26c60b?{'count':_0x323e43,'rows':_0x26c60b}:null;}})[_0x9eca('0x15')](respondWithResult(_0x1c579c,null))['catch'](handleError(_0x1c579c,null));};exports[_0x9eca('0x121')]=function(_0x214077,_0x2b8bef){return db[_0x9eca('0x122')]['find']({'where':{'id':_0x214077[_0x9eca('0x4c')]['id']}})['then'](handleEntityNotFound(_0x2b8bef,null))['then'](function(_0x9e8e4b){if(_0x9e8e4b){return _0x9e8e4b[_0x9eca('0x121')](_0x214077[_0x9eca('0x57')][_0x9eca('0x60')],_[_0x9eca('0xee')](_0x214077[_0x9eca('0x57')],['ids','id'])||{});}})[_0x9eca('0x15')](respondWithResult(_0x2b8bef,null))[_0x9eca('0x4b')](handleError(_0x2b8bef,null));};exports['getProactiveActions']=function(_0x4ec7e7,_0x11b627){var _0xa48adf={};var _0x137a23={};var _0x21b6f6;var _0xae3117;return db['ChatWebsite'][_0x9eca('0x5d')]({'where':{'id':_0x4ec7e7['params']['id']}})['then'](handleEntityNotFound(_0x11b627,null))[_0x9eca('0x15')](function(_0xa40f61){if(_0xa40f61){_0x21b6f6=_0xa40f61;_0x137a23[_0x9eca('0x35')]=_['keys'](db['ChatProactiveAction'][_0x9eca('0x33')]);_0x137a23[_0x9eca('0x36')]=_['keys'](_0x4ec7e7['query']);_0x137a23['filters']=_[_0x9eca('0x38')](_0x137a23[_0x9eca('0x35')],_0x137a23[_0x9eca('0x36')]);_0xa48adf[_0x9eca('0x39')]=_[_0x9eca('0x38')](_0x137a23[_0x9eca('0x35')],qs['fields'](_0x4ec7e7[_0x9eca('0x36')][_0x9eca('0x3a')]));_0xa48adf[_0x9eca('0x39')]=_0xa48adf[_0x9eca('0x39')]['length']?_0xa48adf['attributes']:_0x137a23['model'];_0xa48adf[_0x9eca('0x3f')]=qs[_0x9eca('0x40')](_0x4ec7e7['query'][_0x9eca('0x40')]);_0xa48adf[_0x9eca('0x42')]=qs[_0x9eca('0x4d')](_[_0x9eca('0x5e')](_0x4ec7e7['query'],_0x137a23[_0x9eca('0x4d')]));if(_0x4ec7e7[_0x9eca('0x36')][_0x9eca('0x41')]){_0xa48adf[_0x9eca('0x42')]=_[_0x9eca('0x43')](_0xa48adf[_0x9eca('0x42')],{'$or':_[_0x9eca('0x31')](_0xa48adf[_0x9eca('0x39')],function(_0x2e918a){var _0x3162d2={};_0x3162d2[_0x2e918a]={'$like':'%'+_0x4ec7e7[_0x9eca('0x36')][_0x9eca('0x41')]+'%'};return _0x3162d2;})});}_0xa48adf=_['merge']({},_0xa48adf,_0x4ec7e7['options']);return _0x21b6f6['getProactiveActions'](_0xa48adf);}})['then'](function(_0x3beaad){if(_0x3beaad){_0xae3117=_0x3beaad[_0x9eca('0x3b')];if(!_0x4ec7e7[_0x9eca('0x36')][_0x9eca('0x3c')](_0x9eca('0x3d'))){_0xa48adf[_0x9eca('0x3e')]=qs[_0x9eca('0x3e')](_0x4ec7e7['query'][_0x9eca('0x3e')]);_0xa48adf[_0x9eca('0x23')]=qs[_0x9eca('0x23')](_0x4ec7e7[_0x9eca('0x36')]['offset']);}return _0x21b6f6[_0x9eca('0x104')](_0xa48adf);}})[_0x9eca('0x15')](function(_0x5d6ab2){if(_0x5d6ab2){return _0x5d6ab2?{'count':_0xae3117,'rows':_0x5d6ab2}:null;}})['then'](respondWithResult(_0x11b627,null))['catch'](handleError(_0x11b627,null));};exports[_0x9eca('0x123')]=function(_0x214fd4,_0x154f0f){var _0x5972df=_0x214fd4[_0x9eca('0x36')][_0x9eca('0x124')]===_0x9eca('0x125')?_0x9eca('0x126'):_0x9eca('0x127');return db['ChatWebsite'][_0x9eca('0x4e')]({'attributes':['id',_0x5972df],'where':{'id':_0x214fd4[_0x9eca('0x4c')]['id']}})[_0x9eca('0x15')](handleEntityNotFound(_0x154f0f,null))[_0x9eca('0x15')](function(_0x445300){if(_0x445300){var _0x3ca8e4=_0x445300[_0x5972df];var _0x256d73=_0x3ca8e4&&_0x3ca8e4[_0x9eca('0x128')]?_0x3ca8e4[_0x9eca('0x128')]:[];_0x154f0f[_0x9eca('0x2d')]({'fromKey':_[_0x9eca('0x73')](_0x3ca8e4[_0x9eca('0x129')])?undefined:_0x3ca8e4[_0x9eca('0x129')],'count':_0x256d73['length'],'rows':_0x256d73});}})[_0x9eca('0x4b')](handleError(_0x154f0f,null));};exports['getOfflineMessages']=function(_0xd26c4,_0x4615e3){var _0x3d6f72={'raw':![],'where':{}};var _0x3113bf={};var _0xfcef4a={'count':0x0,'rows':[]};return db['ChatWebsite'][_0x9eca('0x5d')]({'where':{'id':_0xd26c4['params']['id']}})[_0x9eca('0x15')](handleEntityNotFound(_0x4615e3,null))[_0x9eca('0x15')](function(_0x21df85){if(_0x21df85){_0x3113bf[_0x9eca('0x35')]=_[_0x9eca('0x37')](db[_0x9eca('0xcd')]['rawAttributes']);_0x3113bf[_0x9eca('0x36')]=_[_0x9eca('0x37')](_0xd26c4[_0x9eca('0x36')]);_0x3113bf[_0x9eca('0x4d')]=_[_0x9eca('0x38')](_0x3113bf['model'],_0x3113bf[_0x9eca('0x36')]);_0x3d6f72['attributes']=_[_0x9eca('0x38')](_0x3113bf[_0x9eca('0x35')],qs[_0x9eca('0x3a')](_0xd26c4[_0x9eca('0x36')][_0x9eca('0x3a')]));_0x3d6f72['attributes']=_0x3d6f72[_0x9eca('0x39')][_0x9eca('0x3b')]?_0x3d6f72[_0x9eca('0x39')]:_0x3113bf['model'];if(!_0xd26c4[_0x9eca('0x36')][_0x9eca('0x3c')](_0x9eca('0x3d'))){_0x3d6f72[_0x9eca('0x3e')]=qs['limit'](_0xd26c4[_0x9eca('0x36')][_0x9eca('0x3e')]);_0x3d6f72[_0x9eca('0x23')]=qs[_0x9eca('0x23')](_0xd26c4[_0x9eca('0x36')]['offset']);}_0x3d6f72[_0x9eca('0x3f')]=qs[_0x9eca('0x40')](_0xd26c4[_0x9eca('0x36')][_0x9eca('0x40')]);_0x3d6f72[_0x9eca('0x42')]=qs[_0x9eca('0x4d')](_[_0x9eca('0x5e')](_0xd26c4[_0x9eca('0x36')],_0x3113bf['filters']));_0x3d6f72[_0x9eca('0x42')][_0x9eca('0x5a')]=_0x21df85['id'];if(_0xd26c4[_0x9eca('0x36')]['filter']){_0x3d6f72[_0x9eca('0x42')]=_[_0x9eca('0x43')](_0x3d6f72[_0x9eca('0x42')],{'$or':_['map'](_0x3d6f72[_0x9eca('0x39')],function(_0x7bb26){var _0x372aba={};_0x372aba[_0x7bb26]={'$like':'%'+_0xd26c4['query'][_0x9eca('0x41')]+'%'};return _0x372aba;})});}_0x3d6f72=_[_0x9eca('0x43')]({},_0x3d6f72,_0xd26c4[_0x9eca('0x46')]);return db[_0x9eca('0xcd')][_0x9eca('0x25')]({'where':_0x3d6f72[_0x9eca('0x42')]})[_0x9eca('0x15')](function(_0x2495fa){_0xfcef4a[_0x9eca('0x25')]=_0x2495fa;if(_0xd26c4[_0x9eca('0x36')]['includeAll']){_0x3d6f72[_0x9eca('0x48')]=[{'all':!![]}];}else{_0x3d6f72[_0x9eca('0x48')]=[{'model':db[_0x9eca('0x90')],'as':_0x9eca('0xf0'),'required':![]},{'model':db[_0x9eca('0xd2')],'as':_0x9eca('0x12a'),'required':![]}];}return db[_0x9eca('0xcd')][_0x9eca('0x49')](_0x3d6f72);})[_0x9eca('0x15')](function(_0x2dcaac){_0xfcef4a[_0x9eca('0x4a')]=_0x2dcaac;return _0xfcef4a;});}})['then'](respondWithFilteredResult(_0x4615e3,_0x3d6f72))[_0x9eca('0x4b')](handleError(_0x4615e3,null));};exports['addAgents']=function(_0xa314e2,_0x2fd1bd){return db['ChatWebsite'][_0x9eca('0x4e')]({'where':{'id':_0xa314e2[_0x9eca('0x4c')]['id']}})[_0x9eca('0x15')](handleEntityNotFound(_0x2fd1bd,null))[_0x9eca('0x15')](function(_0x18d2ed){if(_0x18d2ed){return _0x18d2ed[_0x9eca('0x12b')](_0xa314e2[_0x9eca('0x57')][_0x9eca('0x60')],_[_0x9eca('0xee')](_0xa314e2['body'],['ids','id'])||{})['spread'](function(_0x3a097d){for(var _0x3e7e42=0x0;_0x3e7e42<_0xa314e2['body']['ids']['length'];_0x3e7e42+=0x1){socket[_0x9eca('0x12c')](_0x9eca('0x12d'),{'UserId':Number(_0xa314e2['body']['ids'][_0x3e7e42]),'ChatWebsiteId':Number(_0xa314e2[_0x9eca('0x4c')]['id'])});}return _0x3a097d;});}})[_0x9eca('0x15')](respondWithResult(_0x2fd1bd,null))['catch'](handleError(_0x2fd1bd,null));};exports[_0x9eca('0x12e')]=function(_0x45bd5a,_0x2deb4f){return db['ChatWebsite'][_0x9eca('0x4e')]({'where':{'id':_0x45bd5a[_0x9eca('0x4c')]['id']}})[_0x9eca('0x15')](handleEntityNotFound(_0x2deb4f,null))[_0x9eca('0x15')](function(_0x59ed7c){if(_0x59ed7c){return _0x59ed7c['removeAgents'](_0x45bd5a[_0x9eca('0x36')][_0x9eca('0x60')])[_0x9eca('0x15')](function(){if(_[_0x9eca('0x12f')](_0x45bd5a[_0x9eca('0x36')][_0x9eca('0x60')])){for(var _0x7a8dc4=0x0;_0x7a8dc4<_0x45bd5a[_0x9eca('0x36')][_0x9eca('0x60')][_0x9eca('0x3b')];_0x7a8dc4+=0x1){socket[_0x9eca('0x12c')](_0x9eca('0x130'),{'UserId':Number(_0x45bd5a[_0x9eca('0x36')][_0x9eca('0x60')][_0x7a8dc4]),'ChatWebsiteId':Number(_0x45bd5a[_0x9eca('0x4c')]['id'])});}}else{socket[_0x9eca('0x12c')](_0x9eca('0x130'),{'UserId':Number(_0x45bd5a[_0x9eca('0x36')][_0x9eca('0x60')]),'ChatWebsiteId':Number(_0x45bd5a[_0x9eca('0x4c')]['id'])});}});}})['then'](respondWithStatusCode(_0x2deb4f,null))['catch'](handleError(_0x2deb4f,null));};exports[_0x9eca('0x131')]=function(_0x2df877,_0x1b0c7b){var _0x3936c9={};var _0x5db99c={};var _0x37760c;var _0x1b7a63;return db['ChatWebsite'][_0x9eca('0x5d')]({'where':{'id':_0x2df877[_0x9eca('0x4c')]['id']}})[_0x9eca('0x15')](handleEntityNotFound(_0x1b0c7b,null))['then'](function(_0x2de1ed){if(_0x2de1ed){_0x37760c=_0x2de1ed;_0x5db99c['model']=_[_0x9eca('0x37')](db[_0x9eca('0xb7')][_0x9eca('0x33')]);_0x5db99c[_0x9eca('0x36')]=_[_0x9eca('0x37')](_0x2df877[_0x9eca('0x36')]);_0x5db99c[_0x9eca('0x4d')]=_['intersection'](_0x5db99c[_0x9eca('0x35')],_0x5db99c[_0x9eca('0x36')]);_0x3936c9[_0x9eca('0x39')]=_[_0x9eca('0x38')](_0x5db99c[_0x9eca('0x35')],qs[_0x9eca('0x3a')](_0x2df877[_0x9eca('0x36')]['fields']));_0x3936c9[_0x9eca('0x39')]=_0x3936c9['attributes']['length']?_0x3936c9['attributes']:_0x5db99c[_0x9eca('0x35')];_0x3936c9[_0x9eca('0x3f')]=qs['sort'](_0x2df877[_0x9eca('0x36')]['sort']);_0x3936c9[_0x9eca('0x42')]=qs[_0x9eca('0x4d')](_[_0x9eca('0x5e')](_0x2df877[_0x9eca('0x36')],_0x5db99c[_0x9eca('0x4d')]));if(_0x2df877[_0x9eca('0x36')][_0x9eca('0x41')]){_0x3936c9[_0x9eca('0x42')]=_['merge'](_0x3936c9[_0x9eca('0x42')],{'$or':_[_0x9eca('0x31')](_0x3936c9[_0x9eca('0x39')],function(_0x4108e4){var _0x458397={};_0x458397[_0x4108e4]={'$like':'%'+_0x2df877['query'][_0x9eca('0x41')]+'%'};return _0x458397;})});}_0x3936c9=_[_0x9eca('0x43')]({},_0x3936c9,_0x2df877['options']);return _0x37760c['getAgents'](_0x3936c9);}})[_0x9eca('0x15')](function(_0x1d1a0c){if(_0x1d1a0c){_0x1b7a63=_0x1d1a0c[_0x9eca('0x3b')];if(!_0x2df877[_0x9eca('0x36')]['hasOwnProperty']('nolimit')){_0x3936c9[_0x9eca('0x3e')]=qs[_0x9eca('0x3e')](_0x2df877['query'][_0x9eca('0x3e')]);_0x3936c9[_0x9eca('0x23')]=qs[_0x9eca('0x23')](_0x2df877[_0x9eca('0x36')][_0x9eca('0x23')]);}return _0x37760c[_0x9eca('0x131')](_0x3936c9);}})[_0x9eca('0x15')](function(_0x1bff68){if(_0x1bff68){return _0x1bff68?{'count':_0x1b7a63,'rows':_0x1bff68}:null;}})[_0x9eca('0x15')](respondWithResult(_0x1b0c7b,null))[_0x9eca('0x4b')](handleError(_0x1b0c7b,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6c96=['exports','events','ChatWebsite','setMaxListeners','update','remove','emit','hasOwnProperty'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x6c96,0x1c1));var _0x66c9=function(_0x411aa1,_0x17f5af){_0x411aa1=_0x411aa1-0x0;var _0x5883f9=_0x6c96[_0x411aa1];return _0x5883f9;};'use strict';var EventEmitter=require(_0x66c9('0x0'));var ChatWebsite=require('../../mysqldb')['db'][_0x66c9('0x1')];var ChatWebsiteEvents=new EventEmitter();ChatWebsiteEvents[_0x66c9('0x2')](0x0);var events={'afterCreate':'save','afterUpdate':_0x66c9('0x3'),'afterDestroy':_0x66c9('0x4')};function emitEvent(_0x3c2e67){return function(_0x37e814,_0x35b830,_0x15aaa6){ChatWebsiteEvents[_0x66c9('0x5')](_0x3c2e67+':'+_0x37e814['id'],_0x37e814);ChatWebsiteEvents['emit'](_0x3c2e67,_0x37e814);_0x15aaa6(null);};}for(var e in events){if(events[_0x66c9('0x6')](e)){var event=events[e];ChatWebsite['hook'](e,emitEvent(event));}}module[_0x66c9('0x7')]=ChatWebsiteEvents;
\ No newline at end of file
+var _0x4f5a=['events','../../mysqldb','setMaxListeners','emit','exports'];(function(_0x5e7113,_0x81a3d3){var _0x36d878=function(_0x22b9b9){while(--_0x22b9b9){_0x5e7113['push'](_0x5e7113['shift']());}};_0x36d878(++_0x81a3d3);}(_0x4f5a,0xaa));var _0xa4f5=function(_0x2e957f,_0x2df39e){_0x2e957f=_0x2e957f-0x0;var _0x1e2c6f=_0x4f5a[_0x2e957f];return _0x1e2c6f;};'use strict';var EventEmitter=require(_0xa4f5('0x0'));var ChatWebsite=require(_0xa4f5('0x1'))['db']['ChatWebsite'];var ChatWebsiteEvents=new EventEmitter();ChatWebsiteEvents[_0xa4f5('0x2')](0x0);var events={'afterCreate':'save','afterUpdate':'update','afterDestroy':'remove'};function emitEvent(_0x59a630){return function(_0x230b40,_0x200782,_0x5a9dd3){ChatWebsiteEvents[_0xa4f5('0x3')](_0x59a630+':'+_0x230b40['id'],_0x230b40);ChatWebsiteEvents['emit'](_0x59a630,_0x230b40);_0x5a9dd3(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];ChatWebsite['hook'](e,emitEvent(event));}}module[_0xa4f5('0x4')]=ChatWebsiteEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4448=['bluebird','../../config/environment','./chatWebsite.attributes','exports','define','chat_websites','lodash','api','moment'];(function(_0x4d449f,_0xf1ff31){var _0x2f0e3b=function(_0x5f0e68){while(--_0x5f0e68){_0x4d449f['push'](_0x4d449f['shift']());}};_0x2f0e3b(++_0xf1ff31);}(_0x4448,0x165));var _0x8444=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x4448[_0x321bb2];return _0x9c12ed;};'use strict';var _=require(_0x8444('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x8444('0x1'));var moment=require(_0x8444('0x2'));var BPromise=require(_0x8444('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x8444('0x4'));var attributes=require(_0x8444('0x5'));module[_0x8444('0x6')]=function(_0x22d741,_0x5a1735){return _0x22d741[_0x8444('0x7')]('ChatWebsite',attributes,{'tableName':_0x8444('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x06a0=['request-promise','../../config/environment','./chatWebsite.attributes','exports','define','ChatWebsite','util','../../config/logger','api','moment'];(function(_0x30d1be,_0x179c14){var _0x2a1886=function(_0x5da190){while(--_0x5da190){_0x30d1be['push'](_0x30d1be['shift']());}};_0x2a1886(++_0x179c14);}(_0x06a0,0x92));var _0x006a=function(_0x152678,_0x11e0ac){_0x152678=_0x152678-0x0;var _0x311a9=_0x06a0[_0x152678];return _0x311a9;};'use strict';var _=require('lodash');var util=require(_0x006a('0x0'));var logger=require(_0x006a('0x1'))(_0x006a('0x2'));var moment=require(_0x006a('0x3'));var BPromise=require('bluebird');var rp=require(_0x006a('0x4'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x006a('0x5'));var attributes=require(_0x006a('0x6'));module[_0x006a('0x7')]=function(_0x21afb7,_0x5caa64){return _0x21afb7[_0x006a('0x8')](_0x006a('0x9'),attributes,{'tableName':'chat_websites','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9889=['info','request\x20sent','debug','ChatWebsite,\x20%s,\x20%s,\x20%s','error','code','ChatWebsite,\x20%s,\x20%s','message','result','catch','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','redis','defaults','localhost','socket.io-emitter','register','then'];(function(_0x339b06,_0x4ea542){var _0x51a2ab=function(_0x3f6296){while(--_0x3f6296){_0x339b06['push'](_0x339b06['shift']());}};_0x51a2ab(++_0x4ea542);}(_0x9889,0x76));var _0x9988=function(_0x31a598,_0x40a8ab){_0x31a598=_0x31a598-0x0;var _0x4ea996=_0x9889[_0x31a598];return _0x4ea996;};'use strict';var _=require(_0x9988('0x0'));var util=require(_0x9988('0x1'));var moment=require(_0x9988('0x2'));var BPromise=require(_0x9988('0x3'));var rs=require(_0x9988('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x9988('0x5'))['db'];var utils=require(_0x9988('0x6'));var logger=require(_0x9988('0x7'))(_0x9988('0x8'));var config=require('../../config/environment');var jayson=require(_0x9988('0x9'));var client=jayson[_0x9988('0xa')]['http']({'port':0x232a});config[_0x9988('0xb')]=_[_0x9988('0xc')](config['redis'],{'host':_0x9988('0xd'),'port':0x18eb});var socket=require(_0x9988('0xe'))(new Redis(config['redis']));require('./chatWebsite.socket')[_0x9988('0xf')](socket);function respondWithRpcPromise(_0x388adb,_0x13a05d,_0x5b82b9){return new BPromise(function(_0x5ebeb0,_0x1fcb1c){return client['request'](_0x388adb,_0x5b82b9)[_0x9988('0x10')](function(_0x14508a){logger[_0x9988('0x11')]('ChatWebsite,\x20%s,\x20%s',_0x13a05d,_0x9988('0x12'));logger[_0x9988('0x13')](_0x9988('0x14'),_0x13a05d,_0x9988('0x12'),JSON['stringify'](_0x14508a));if(_0x14508a[_0x9988('0x15')]){if(_0x14508a[_0x9988('0x15')][_0x9988('0x16')]===0x1f4){logger[_0x9988('0x15')](_0x9988('0x17'),_0x13a05d,_0x14508a[_0x9988('0x15')]['message']);return _0x1fcb1c(_0x14508a[_0x9988('0x15')][_0x9988('0x18')]);}logger[_0x9988('0x15')](_0x9988('0x17'),_0x13a05d,_0x14508a['error'][_0x9988('0x18')]);return _0x5ebeb0(_0x14508a['error'][_0x9988('0x18')]);}else{logger[_0x9988('0x11')]('ChatWebsite,\x20%s,\x20%s',_0x13a05d,_0x9988('0x12'));_0x5ebeb0(_0x14508a[_0x9988('0x19')][_0x9988('0x18')]);}})[_0x9988('0x1a')](function(_0x1847d3){logger[_0x9988('0x15')](_0x9988('0x17'),_0x13a05d,_0x1847d3);_0x1fcb1c(_0x1847d3);});});}
\ No newline at end of file
+var _0xc249=['ChatWebsite,\x20%s,\x20%s','request\x20sent','debug','ChatWebsite,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','redis','socket.io-emitter','./chatWebsite.socket','register','info'];(function(_0x31b1c2,_0x2a80cb){var _0x3e199c=function(_0x30703c){while(--_0x30703c){_0x31b1c2['push'](_0x31b1c2['shift']());}};_0x3e199c(++_0x2a80cb);}(_0xc249,0xab));var _0x9c24=function(_0x1599c9,_0x172bdb){_0x1599c9=_0x1599c9-0x0;var _0x46b583=_0xc249[_0x1599c9];return _0x46b583;};'use strict';var _=require(_0x9c24('0x0'));var util=require(_0x9c24('0x1'));var moment=require(_0x9c24('0x2'));var BPromise=require(_0x9c24('0x3'));var rs=require(_0x9c24('0x4'));var fs=require('fs');var Redis=require(_0x9c24('0x5'));var db=require(_0x9c24('0x6'))['db'];var utils=require(_0x9c24('0x7'));var logger=require('../../config/logger')(_0x9c24('0x8'));var config=require(_0x9c24('0x9'));var jayson=require(_0x9c24('0xa'));var client=jayson[_0x9c24('0xb')][_0x9c24('0xc')]({'port':0x232a});config[_0x9c24('0xd')]=_['defaults'](config[_0x9c24('0xd')],{'host':'localhost','port':0x18eb});var socket=require(_0x9c24('0xe'))(new Redis(config['redis']));require(_0x9c24('0xf'))[_0x9c24('0x10')](socket);function respondWithRpcPromise(_0x161897,_0xbd9942,_0x20179a){return new BPromise(function(_0x48d6a9,_0x2719ac){return client['request'](_0x161897,_0x20179a)['then'](function(_0x1f73f1){logger[_0x9c24('0x11')](_0x9c24('0x12'),_0xbd9942,_0x9c24('0x13'));logger[_0x9c24('0x14')](_0x9c24('0x15'),_0xbd9942,_0x9c24('0x13'),JSON[_0x9c24('0x16')](_0x1f73f1));if(_0x1f73f1[_0x9c24('0x17')]){if(_0x1f73f1[_0x9c24('0x17')][_0x9c24('0x18')]===0x1f4){logger[_0x9c24('0x17')](_0x9c24('0x12'),_0xbd9942,_0x1f73f1[_0x9c24('0x17')]['message']);return _0x2719ac(_0x1f73f1[_0x9c24('0x17')]['message']);}logger['error'](_0x9c24('0x12'),_0xbd9942,_0x1f73f1[_0x9c24('0x17')][_0x9c24('0x19')]);return _0x48d6a9(_0x1f73f1[_0x9c24('0x17')][_0x9c24('0x19')]);}else{logger['info'](_0x9c24('0x12'),_0xbd9942,_0x9c24('0x13'));_0x48d6a9(_0x1f73f1[_0x9c24('0x1a')]['message']);}})['catch'](function(_0x33f18f){logger[_0x9c24('0x17')](_0x9c24('0x12'),_0xbd9942,_0x33f18f);_0x2719ac(_0x33f18f);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x452a=['removeListener','length','./chatWebsite.events','save','remove','update','emit'];(function(_0x5becb2,_0x18286a){var _0x45c8f1=function(_0x4faa09){while(--_0x4faa09){_0x5becb2['push'](_0x5becb2['shift']());}};_0x45c8f1(++_0x18286a);}(_0x452a,0xb1));var _0xa452=function(_0xda6ad1,_0x5f09e3){_0xda6ad1=_0xda6ad1-0x0;var _0xedc3a5=_0x452a[_0xda6ad1];return _0xedc3a5;};'use strict';var ChatWebsiteEvents=require(_0xa452('0x0'));var events=[_0xa452('0x1'),_0xa452('0x2'),_0xa452('0x3')];function createListener(_0x453dc4,_0x51c83e){return function(_0x4dfc6c){_0x51c83e[_0xa452('0x4')](_0x453dc4,_0x4dfc6c);};}function removeListener(_0x3fc6eb,_0x474e29){return function(){ChatWebsiteEvents[_0xa452('0x5')](_0x3fc6eb,_0x474e29);};}exports['register']=function(_0x3277c8){for(var _0x53ff92=0x0,_0x4114dc=events[_0xa452('0x6')];_0x53ff92<_0x4114dc;_0x53ff92++){var _0x5bbf4a=events[_0x53ff92];var _0xa30482=createListener('chatWebsite:'+_0x5bbf4a,_0x3277c8);ChatWebsiteEvents['on'](_0x5bbf4a,_0xa30482);}};
\ No newline at end of file
+var _0x5b7c=['chatWebsite:','./chatWebsite.events','remove','update','emit','removeListener','register','length'];(function(_0x971bb1,_0x2a36c2){var _0x42b30e=function(_0x41aa78){while(--_0x41aa78){_0x971bb1['push'](_0x971bb1['shift']());}};_0x42b30e(++_0x2a36c2);}(_0x5b7c,0x1e1));var _0xc5b7=function(_0x1afc30,_0x1f77d6){_0x1afc30=_0x1afc30-0x0;var _0x4058ad=_0x5b7c[_0x1afc30];return _0x4058ad;};'use strict';var ChatWebsiteEvents=require(_0xc5b7('0x0'));var events=['save',_0xc5b7('0x1'),_0xc5b7('0x2')];function createListener(_0x2a296f,_0x29fd9a){return function(_0x4bbe01){_0x29fd9a[_0xc5b7('0x3')](_0x2a296f,_0x4bbe01);};}function removeListener(_0x55d4bb,_0x47c758){return function(){ChatWebsiteEvents[_0xc5b7('0x4')](_0x55d4bb,_0x47c758);};}exports[_0xc5b7('0x5')]=function(_0x1d7e0f){for(var _0x237ed9=0x0,_0x55669c=events[_0xc5b7('0x6')];_0x237ed9<_0x55669c;_0x237ed9++){var _0x3f0e8c=events[_0x237ed9];var _0x350eff=createListener(_0xc5b7('0x7')+_0x3f0e8c,_0x1d7e0f);ChatWebsiteEvents['on'](_0x3f0e8c,_0x350eff);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfa42=['../../components/interaction/service','../../config/environment','./chatWebsite.controller','isAuthenticated','get','/describe','/:id','show','/:id/dispositions','getDispositions','getAnswers','/:id/avatar','getCustomerAvatar','/:id/system_avatar','getSystemAvatar','/:id/interactions','getInteractions','getSnippet','/:id/proactive_actions','getProactiveActions','getFields','getOfflineMessages','/:id/users','post','create','addDisposition','addAnswer','diskStorage','root','server/files/images/logos/','format','%s-%s','now','originalname','/:id/logo','single','file','join','addAvatar','server/files/images/avatars/','/:id/customer_avatar','addSystemAvatar','/:id/notify','notify','server/files','attachments','offline-chat','ensureDir','replace','extname','/:id/offline','any','offline','addInteraction','/:id/applications','addApplications','addProactiveActions','put','update','delete','destroy','/:id/canned_answers','removeAnswers','removeAgents','exports','multer','util','path','Router','../../components/auth/service'];(function(_0xcf4703,_0x485826){var _0x3c7e56=function(_0x3d0fd4){while(--_0x3d0fd4){_0xcf4703['push'](_0xcf4703['shift']());}};_0x3c7e56(++_0x485826);}(_0xfa42,0x19f));var _0x2fa4=function(_0x52a8b8,_0x8d8c33){_0x52a8b8=_0x52a8b8-0x0;var _0x1ceab6=_0xfa42[_0x52a8b8];return _0x1ceab6;};'use strict';var multer=require(_0x2fa4('0x0'));var util=require(_0x2fa4('0x1'));var path=require(_0x2fa4('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x2fa4('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x2fa4('0x4'));var interaction=require(_0x2fa4('0x5'));var config=require(_0x2fa4('0x6'));var controller=require(_0x2fa4('0x7'));router['get']('/',auth[_0x2fa4('0x8')](),controller['index']);router[_0x2fa4('0x9')](_0x2fa4('0xa'),auth[_0x2fa4('0x8')](),controller['describe']);router['get'](_0x2fa4('0xb'),auth['isAuthenticated'](),controller[_0x2fa4('0xc')]);router['get'](_0x2fa4('0xd'),auth[_0x2fa4('0x8')](),controller[_0x2fa4('0xe')]);router[_0x2fa4('0x9')]('/:id/canned_answers',auth[_0x2fa4('0x8')](),controller[_0x2fa4('0xf')]);router[_0x2fa4('0x9')]('/:id/logo',controller['getLogo']);router[_0x2fa4('0x9')](_0x2fa4('0x10'),controller['getAvatar']);router['get']('/:id/customer_avatar',controller[_0x2fa4('0x11')]);router['get'](_0x2fa4('0x12'),controller[_0x2fa4('0x13')]);router[_0x2fa4('0x9')](_0x2fa4('0x14'),auth['isAuthenticated'](),controller[_0x2fa4('0x15')]);router[_0x2fa4('0x9')]('/:id/snippet',controller[_0x2fa4('0x16')]);router[_0x2fa4('0x9')]('/:id/applications',auth[_0x2fa4('0x8')](),controller['getApplications']);router[_0x2fa4('0x9')](_0x2fa4('0x17'),auth[_0x2fa4('0x8')](),controller[_0x2fa4('0x18')]);router[_0x2fa4('0x9')]('/:id/fields',controller[_0x2fa4('0x19')]);router[_0x2fa4('0x9')]('/:id/offline_messages',auth[_0x2fa4('0x8')](),controller[_0x2fa4('0x1a')]);router[_0x2fa4('0x9')](_0x2fa4('0x1b'),auth[_0x2fa4('0x8')](),controller['getAgents']);router[_0x2fa4('0x1c')]('/',auth[_0x2fa4('0x8')](),controller[_0x2fa4('0x1d')]);router[_0x2fa4('0x1c')]('/:id/dispositions',auth['isAuthenticated'](),controller[_0x2fa4('0x1e')]);router[_0x2fa4('0x1c')]('/:id/canned_answers',auth[_0x2fa4('0x8')](),controller[_0x2fa4('0x1f')]);var upload=multer({'storage':multer[_0x2fa4('0x20')]({'destination':function(_0x387091,_0x9df3a6,_0x23dbb4){_0x23dbb4(null,path['join'](config[_0x2fa4('0x21')],_0x2fa4('0x22')));},'filename':function(_0x462dce,_0x6bd885,_0x39c0a9){_0x39c0a9(null,util[_0x2fa4('0x23')](_0x2fa4('0x24'),Date[_0x2fa4('0x25')](),_0x6bd885[_0x2fa4('0x26')]));}})});router[_0x2fa4('0x1c')](_0x2fa4('0x27'),upload[_0x2fa4('0x28')](_0x2fa4('0x29')),controller['addLogo']);var upload=multer({'storage':multer[_0x2fa4('0x20')]({'destination':function(_0x116eb4,_0x99706d,_0x53a346){_0x53a346(null,path[_0x2fa4('0x2a')](config[_0x2fa4('0x21')],'server/files/images/avatars/'));},'filename':function(_0x9b275a,_0x4a5040,_0x8e8bb){_0x8e8bb(null,util[_0x2fa4('0x23')](_0x2fa4('0x24'),Date['now'](),_0x4a5040[_0x2fa4('0x26')]));}})});router[_0x2fa4('0x1c')](_0x2fa4('0x10'),upload['single'](_0x2fa4('0x29')),controller[_0x2fa4('0x2b')]);var upload=multer({'storage':multer[_0x2fa4('0x20')]({'destination':function(_0x345f8c,_0x47c268,_0x234a48){_0x234a48(null,path['join'](config['root'],_0x2fa4('0x2c')));},'filename':function(_0x49a3fb,_0x5a4cac,_0x48e91b){_0x48e91b(null,util[_0x2fa4('0x23')](_0x2fa4('0x24'),Date[_0x2fa4('0x25')](),_0x5a4cac['originalname']));}})});router[_0x2fa4('0x1c')](_0x2fa4('0x2d'),upload[_0x2fa4('0x28')](_0x2fa4('0x29')),controller['addCustomerAvatar']);var upload=multer({'storage':multer['diskStorage']({'destination':function(_0x3e6012,_0x838de8,_0x4d2cfd){_0x4d2cfd(null,path[_0x2fa4('0x2a')](config[_0x2fa4('0x21')],_0x2fa4('0x2c')));},'filename':function(_0xd14ee8,_0x33aec6,_0x1f15cb){_0x1f15cb(null,util[_0x2fa4('0x23')](_0x2fa4('0x24'),Date['now'](),_0x33aec6['originalname']));}})});router[_0x2fa4('0x1c')](_0x2fa4('0x12'),upload['single'](_0x2fa4('0x29')),controller[_0x2fa4('0x2e')]);router[_0x2fa4('0x1c')](_0x2fa4('0x2f'),controller[_0x2fa4('0x30')]);const offlineUploadMulter=multer({'storage':multer[_0x2fa4('0x20')]({'destination':function(_0x5a451d,_0x43fa9f,_0x54fc09){const _0x1378bd=path[_0x2fa4('0x2a')](config[_0x2fa4('0x21')],_0x2fa4('0x31'),_0x2fa4('0x32'),_0x2fa4('0x33'));fs_extra[_0x2fa4('0x34')](_0x1378bd,function(){_0x54fc09(null,_0x1378bd);});},'filename':function(_0xc1e0b,_0x584e1d,_0x506d0c){const _0x4ee70d=_0x584e1d['originalname'][_0x2fa4('0x35')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');const _0xb388bc=path[_0x2fa4('0x36')](_0x4ee70d);const _0x4773c6=Date['now']()+'-'+_0x4ee70d[_0x2fa4('0x35')](_0xb388bc,'')+_0xb388bc;_0x506d0c(null,_0x4773c6);}})});router['post'](_0x2fa4('0x37'),offlineUploadMulter[_0x2fa4('0x38')](),controller[_0x2fa4('0x39')]);router['post'](_0x2fa4('0x14'),auth[_0x2fa4('0x8')](),controller[_0x2fa4('0x3a')]);router['post'](_0x2fa4('0x3b'),auth[_0x2fa4('0x8')](),controller[_0x2fa4('0x3c')]);router['post']('/:id/proactive_actions',auth[_0x2fa4('0x8')](),controller[_0x2fa4('0x3d')]);router[_0x2fa4('0x1c')](_0x2fa4('0x1b'),auth[_0x2fa4('0x8')](),controller['addAgents']);router[_0x2fa4('0x3e')](_0x2fa4('0xb'),auth[_0x2fa4('0x8')](),controller[_0x2fa4('0x3f')]);router[_0x2fa4('0x40')](_0x2fa4('0xb'),auth[_0x2fa4('0x8')](),controller[_0x2fa4('0x41')]);router[_0x2fa4('0x40')](_0x2fa4('0xd'),auth[_0x2fa4('0x8')](),controller['removeDispositions']);router['delete'](_0x2fa4('0x42'),auth[_0x2fa4('0x8')](),controller[_0x2fa4('0x43')]);router['delete']('/:id/users',auth[_0x2fa4('0x8')](),controller[_0x2fa4('0x44')]);module[_0x2fa4('0x45')]=router;
\ No newline at end of file
+var _0x867b=['getAgents','post','create','addAnswer','diskStorage','root','format','%s-%s','single','file','join','server/files/images/avatars/','now','addAvatar','/:id/customer_avatar','addCustomerAvatar','originalname','addSystemAvatar','notify','attachments','ensureDir','replace','extname','/:id/offline','any','offline','addInteraction','/:id/applications','addApplications','/:id/proactive_actions','addProactiveActions','put','delete','destroy','removeDispositions','removeAnswers','removeAgents','exports','multer','util','path','express','fs-extra','../../components/auth/service','../../components/interaction/service','./chatWebsite.controller','get','isAuthenticated','index','/describe','describe','/:id','/:id/dispositions','getDispositions','/:id/logo','getLogo','/:id/avatar','getAvatar','getCustomerAvatar','getSystemAvatar','/:id/interactions','getInteractions','/:id/snippet','getSnippet','getApplications','getProactiveActions','/:id/fields','/:id/offline_messages','/:id/users'];(function(_0x55073,_0x473a67){var _0x4f8699=function(_0x54ad32){while(--_0x54ad32){_0x55073['push'](_0x55073['shift']());}};_0x4f8699(++_0x473a67);}(_0x867b,0x6b));var _0xb867=function(_0xbe7070,_0x5cd202){_0xbe7070=_0xbe7070-0x0;var _0x472f2c=_0x867b[_0xbe7070];return _0x472f2c;};'use strict';var multer=require(_0xb867('0x0'));var util=require(_0xb867('0x1'));var path=require(_0xb867('0x2'));var timeout=require('connect-timeout');var express=require(_0xb867('0x3'));var router=express['Router']();var fs_extra=require(_0xb867('0x4'));var auth=require(_0xb867('0x5'));var interaction=require(_0xb867('0x6'));var config=require('../../config/environment');var controller=require(_0xb867('0x7'));router[_0xb867('0x8')]('/',auth[_0xb867('0x9')](),controller[_0xb867('0xa')]);router[_0xb867('0x8')](_0xb867('0xb'),auth[_0xb867('0x9')](),controller[_0xb867('0xc')]);router[_0xb867('0x8')](_0xb867('0xd'),auth['isAuthenticated'](),controller['show']);router['get'](_0xb867('0xe'),auth['isAuthenticated'](),controller[_0xb867('0xf')]);router[_0xb867('0x8')]('/:id/canned_answers',auth[_0xb867('0x9')](),controller['getAnswers']);router[_0xb867('0x8')](_0xb867('0x10'),controller[_0xb867('0x11')]);router[_0xb867('0x8')](_0xb867('0x12'),controller[_0xb867('0x13')]);router[_0xb867('0x8')]('/:id/customer_avatar',controller[_0xb867('0x14')]);router[_0xb867('0x8')]('/:id/system_avatar',controller[_0xb867('0x15')]);router[_0xb867('0x8')](_0xb867('0x16'),auth[_0xb867('0x9')](),controller[_0xb867('0x17')]);router['get'](_0xb867('0x18'),controller[_0xb867('0x19')]);router[_0xb867('0x8')]('/:id/applications',auth['isAuthenticated'](),controller[_0xb867('0x1a')]);router['get']('/:id/proactive_actions',auth['isAuthenticated'](),controller[_0xb867('0x1b')]);router[_0xb867('0x8')](_0xb867('0x1c'),controller['getFields']);router[_0xb867('0x8')](_0xb867('0x1d'),auth[_0xb867('0x9')](),controller['getOfflineMessages']);router[_0xb867('0x8')](_0xb867('0x1e'),auth['isAuthenticated'](),controller[_0xb867('0x1f')]);router[_0xb867('0x20')]('/',auth[_0xb867('0x9')](),controller[_0xb867('0x21')]);router[_0xb867('0x20')](_0xb867('0xe'),auth[_0xb867('0x9')](),controller['addDisposition']);router[_0xb867('0x20')]('/:id/canned_answers',auth[_0xb867('0x9')](),controller[_0xb867('0x22')]);var upload=multer({'storage':multer[_0xb867('0x23')]({'destination':function(_0x3c70ef,_0x24d04,_0x118325){_0x118325(null,path['join'](config[_0xb867('0x24')],'server/files/images/logos/'));},'filename':function(_0x2dede7,_0x52d714,_0x1856b4){_0x1856b4(null,util[_0xb867('0x25')](_0xb867('0x26'),Date['now'](),_0x52d714['originalname']));}})});router[_0xb867('0x20')]('/:id/logo',upload[_0xb867('0x27')](_0xb867('0x28')),controller['addLogo']);var upload=multer({'storage':multer['diskStorage']({'destination':function(_0xa382c8,_0x52ddfb,_0x46b7ab){_0x46b7ab(null,path[_0xb867('0x29')](config['root'],_0xb867('0x2a')));},'filename':function(_0x362acd,_0x1fe742,_0x5d6cfd){_0x5d6cfd(null,util[_0xb867('0x25')]('%s-%s',Date[_0xb867('0x2b')](),_0x1fe742['originalname']));}})});router['post']('/:id/avatar',upload[_0xb867('0x27')](_0xb867('0x28')),controller[_0xb867('0x2c')]);var upload=multer({'storage':multer[_0xb867('0x23')]({'destination':function(_0x131877,_0xc96d5c,_0x15e63a){_0x15e63a(null,path[_0xb867('0x29')](config[_0xb867('0x24')],_0xb867('0x2a')));},'filename':function(_0x88bb29,_0x590997,_0x2527a2){_0x2527a2(null,util['format'](_0xb867('0x26'),Date[_0xb867('0x2b')](),_0x590997['originalname']));}})});router[_0xb867('0x20')](_0xb867('0x2d'),upload['single']('file'),controller[_0xb867('0x2e')]);var upload=multer({'storage':multer[_0xb867('0x23')]({'destination':function(_0x4388ac,_0x3c1eb0,_0x40b7b7){_0x40b7b7(null,path[_0xb867('0x29')](config[_0xb867('0x24')],_0xb867('0x2a')));},'filename':function(_0x3dbde5,_0x49d538,_0x28c00e){_0x28c00e(null,util[_0xb867('0x25')]('%s-%s',Date[_0xb867('0x2b')](),_0x49d538[_0xb867('0x2f')]));}})});router[_0xb867('0x20')]('/:id/system_avatar',upload['single'](_0xb867('0x28')),controller[_0xb867('0x30')]);router[_0xb867('0x20')]('/:id/notify',controller[_0xb867('0x31')]);const offlineUploadMulter=multer({'storage':multer['diskStorage']({'destination':function(_0x38cfac,_0x107f61,_0x2b8eb6){const _0x29bba0=path['join'](config[_0xb867('0x24')],'server/files',_0xb867('0x32'),'offline-chat');fs_extra[_0xb867('0x33')](_0x29bba0,function(){_0x2b8eb6(null,_0x29bba0);});},'filename':function(_0x1c3867,_0x70feb2,_0x1a8dd0){const _0x59d591=_0x70feb2[_0xb867('0x2f')][_0xb867('0x34')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');const _0x265d93=path[_0xb867('0x35')](_0x59d591);const _0x46aa99=Date[_0xb867('0x2b')]()+'-'+_0x59d591['replace'](_0x265d93,'')+_0x265d93;_0x1a8dd0(null,_0x46aa99);}})});router[_0xb867('0x20')](_0xb867('0x36'),offlineUploadMulter[_0xb867('0x37')](),controller[_0xb867('0x38')]);router[_0xb867('0x20')](_0xb867('0x16'),auth[_0xb867('0x9')](),controller[_0xb867('0x39')]);router['post'](_0xb867('0x3a'),auth['isAuthenticated'](),controller[_0xb867('0x3b')]);router[_0xb867('0x20')](_0xb867('0x3c'),auth['isAuthenticated'](),controller[_0xb867('0x3d')]);router[_0xb867('0x20')](_0xb867('0x1e'),auth[_0xb867('0x9')](),controller['addAgents']);router[_0xb867('0x3e')](_0xb867('0xd'),auth[_0xb867('0x9')](),controller['update']);router[_0xb867('0x3f')](_0xb867('0xd'),auth[_0xb867('0x9')](),controller[_0xb867('0x40')]);router[_0xb867('0x3f')](_0xb867('0xe'),auth[_0xb867('0x9')](),controller[_0xb867('0x41')]);router[_0xb867('0x3f')]('/:id/canned_answers',auth[_0xb867('0x9')](),controller[_0xb867('0x42')]);router['delete'](_0xb867('0x1e'),auth[_0xb867('0x9')](),controller[_0xb867('0x43')]);module[_0xb867('0x44')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe626=['ENUM','Google','sequelize','exports','STRING'];(function(_0x5f1751,_0x46d689){var _0x39672d=function(_0x31bc4d){while(--_0x31bc4d){_0x5f1751['push'](_0x5f1751['shift']());}};_0x39672d(++_0x46d689);}(_0xe626,0x9d));var _0x6e62=function(_0x115137,_0x3c13eb){_0x115137=_0x115137-0x0;var _0x59bed0=_0xe626[_0x115137];return _0x59bed0;};'use strict';var Sequelize=require(_0x6e62('0x0'));module[_0x6e62('0x1')]={'name':{'type':Sequelize[_0x6e62('0x2')],'allowNull':![],'validate':{'notEmpty':!![]}},'service':{'type':Sequelize[_0x6e62('0x3')]('AmazonAWS',_0x6e62('0x4')),'allowNull':![],'validate':{'notEmpty':!![]}},'data1':{'type':Sequelize[_0x6e62('0x2')]},'data2':{'type':Sequelize[_0x6e62('0x2')]}};
\ No newline at end of file
+var _0xcf71=['Google','sequelize','exports','STRING','ENUM'];(function(_0x273c39,_0x1052e6){var _0x46d6b5=function(_0x44f1fb){while(--_0x44f1fb){_0x273c39['push'](_0x273c39['shift']());}};_0x46d6b5(++_0x1052e6);}(_0xcf71,0xba));var _0x1cf7=function(_0x40c043,_0x1d064e){_0x40c043=_0x40c043-0x0;var _0x5c2c8d=_0xcf71[_0x40c043];return _0x5c2c8d;};'use strict';var Sequelize=require(_0x1cf7('0x0'));module[_0x1cf7('0x1')]={'name':{'type':Sequelize[_0x1cf7('0x2')],'allowNull':![],'validate':{'notEmpty':!![]}},'service':{'type':Sequelize[_0x1cf7('0x3')]('AmazonAWS',_0x1cf7('0x4')),'allowNull':![],'validate':{'notEmpty':!![]}},'data1':{'type':Sequelize[_0x1cf7('0x2')]},'data2':{'type':Sequelize[_0x1cf7('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5f2f=['end','status','offset','undefined','limit','count','set','Content-Range','apply','reject','save','then','stack','name','send','index','CloudProvider','rawAttributes','fieldName','type','map','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','sort','filter','merge','where','options','includeAll','include','findAll','rows','catch','keys','find','body','params','destroy','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus'];(function(_0x1a36a5,_0x746928){var _0x746243=function(_0x481966){while(--_0x481966){_0x1a36a5['push'](_0x1a36a5['shift']());}};_0x746243(++_0x746928);}(_0x5f2f,0x73));var _0xf5f2=function(_0x588faa,_0x2ed70d){_0x588faa=_0x588faa-0x0;var _0x4c4705=_0x5f2f[_0x588faa];return _0x4c4705;};'use strict';var emlformat=require(_0xf5f2('0x0'));var rimraf=require(_0xf5f2('0x1'));var zipdir=require(_0xf5f2('0x2'));var jsonpatch=require(_0xf5f2('0x3'));var rp=require(_0xf5f2('0x4'));var moment=require(_0xf5f2('0x5'));var BPromise=require(_0xf5f2('0x6'));var Mustache=require(_0xf5f2('0x7'));var util=require('util');var path=require('path');var sox=require(_0xf5f2('0x8'));var csv=require(_0xf5f2('0x9'));var ejs=require(_0xf5f2('0xa'));var fs=require('fs');var fs_extra=require(_0xf5f2('0xb'));var _=require(_0xf5f2('0xc'));var squel=require(_0xf5f2('0xd'));var crypto=require('crypto');var jsforce=require(_0xf5f2('0xe'));var deskjs=require(_0xf5f2('0xf'));var toCsv=require(_0xf5f2('0x9'));var querystring=require('querystring');var Papa=require(_0xf5f2('0x10'));var Redis=require(_0xf5f2('0x11'));var authService=require(_0xf5f2('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0xf5f2('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xf5f2('0x14'));var utils=require(_0xf5f2('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0xf5f2('0x16'));var db=require(_0xf5f2('0x17'))['db'];function respondWithStatusCode(_0x331482,_0x3f2997){_0x3f2997=_0x3f2997||0xcc;return function(_0x59bb6c){if(_0x59bb6c){return _0x331482[_0xf5f2('0x18')](_0x3f2997);}return _0x331482['status'](_0x3f2997)[_0xf5f2('0x19')]();};}function respondWithResult(_0xea612c,_0x269909){_0x269909=_0x269909||0xc8;return function(_0x1c1a5c){if(_0x1c1a5c){return _0xea612c[_0xf5f2('0x1a')](_0x269909)['json'](_0x1c1a5c);}};}function respondWithFilteredResult(_0xafe430,_0x286197){return function(_0x17d656){if(_0x17d656){var _0x1b6dd2=typeof _0x286197[_0xf5f2('0x1b')]===_0xf5f2('0x1c')&&typeof _0x286197[_0xf5f2('0x1d')]===_0xf5f2('0x1c');var _0x11f702=_0x17d656[_0xf5f2('0x1e')];var _0x20fccd=_0x1b6dd2?0x0:_0x286197[_0xf5f2('0x1b')];var _0x4ff59b=_0x1b6dd2?_0x17d656[_0xf5f2('0x1e')]:_0x286197[_0xf5f2('0x1b')]+_0x286197[_0xf5f2('0x1d')];var _0x1bf655;if(_0x4ff59b>=_0x11f702){_0x4ff59b=_0x11f702;_0x1bf655=0xc8;}else{_0x1bf655=0xce;}_0xafe430['status'](_0x1bf655);return _0xafe430[_0xf5f2('0x1f')](_0xf5f2('0x20'),_0x20fccd+'-'+_0x4ff59b+'/'+_0x11f702)['json'](_0x17d656);}return null;};}function patchUpdates(_0x47acfc){return function(_0x2d2805){try{jsonpatch[_0xf5f2('0x21')](_0x2d2805,_0x47acfc,!![]);}catch(_0x4ae323){return BPromise[_0xf5f2('0x22')](_0x4ae323);}return _0x2d2805[_0xf5f2('0x23')]();};}function saveUpdates(_0x39e44a,_0x39c024){return function(_0x36f1cb){if(_0x36f1cb){return _0x36f1cb['update'](_0x39e44a)[_0xf5f2('0x24')](function(_0x4669a6){return _0x4669a6;});}return null;};}function removeEntity(_0x4e8bda,_0x2833fe){return function(_0x287ad5){if(_0x287ad5){return _0x287ad5['destroy']()['then'](function(){_0x4e8bda[_0xf5f2('0x1a')](0xcc)[_0xf5f2('0x19')]();});}};}function handleEntityNotFound(_0x13da6f,_0x1a5bb3){return function(_0xf6c58d){if(!_0xf6c58d){_0x13da6f[_0xf5f2('0x18')](0x194);}return _0xf6c58d;};}function handleError(_0x13a3be,_0x281ec8){_0x281ec8=_0x281ec8||0x1f4;return function(_0x294414){logger['error'](_0x294414[_0xf5f2('0x25')]);if(_0x294414[_0xf5f2('0x26')]){delete _0x294414[_0xf5f2('0x26')];}_0x13a3be[_0xf5f2('0x1a')](_0x281ec8)[_0xf5f2('0x27')](_0x294414);};}exports[_0xf5f2('0x28')]=function(_0x5b6672,_0x53cb96){var _0x22c826={},_0x14c829={},_0x11c771={'count':0x0,'rows':[]};var _0x5027ab=_['map'](db[_0xf5f2('0x29')][_0xf5f2('0x2a')],function(_0x17394a){return{'name':_0x17394a[_0xf5f2('0x2b')],'type':_0x17394a[_0xf5f2('0x2c')]['key']};});_0x14c829['model']=_[_0xf5f2('0x2d')](_0x5027ab,'name');_0x14c829[_0xf5f2('0x2e')]=_['keys'](_0x5b6672[_0xf5f2('0x2e')]);_0x14c829[_0xf5f2('0x2f')]=_[_0xf5f2('0x30')](_0x14c829[_0xf5f2('0x31')],_0x14c829[_0xf5f2('0x2e')]);_0x22c826[_0xf5f2('0x32')]=_[_0xf5f2('0x30')](_0x14c829[_0xf5f2('0x31')],qs['fields'](_0x5b6672[_0xf5f2('0x2e')][_0xf5f2('0x33')]));_0x22c826[_0xf5f2('0x32')]=_0x22c826[_0xf5f2('0x32')][_0xf5f2('0x34')]?_0x22c826[_0xf5f2('0x32')]:_0x14c829[_0xf5f2('0x31')];if(!_0x5b6672['query'][_0xf5f2('0x35')](_0xf5f2('0x36'))){_0x22c826['limit']=qs[_0xf5f2('0x1d')](_0x5b6672['query'][_0xf5f2('0x1d')]);_0x22c826[_0xf5f2('0x1b')]=qs[_0xf5f2('0x1b')](_0x5b6672[_0xf5f2('0x2e')]['offset']);}_0x22c826['order']=qs[_0xf5f2('0x37')](_0x5b6672[_0xf5f2('0x2e')][_0xf5f2('0x37')]);_0x22c826['where']=qs[_0xf5f2('0x2f')](_['pick'](_0x5b6672[_0xf5f2('0x2e')],_0x14c829['filters']),_0x5027ab);if(_0x5b6672[_0xf5f2('0x2e')][_0xf5f2('0x38')]){_0x22c826['where']=_[_0xf5f2('0x39')](_0x22c826[_0xf5f2('0x3a')],{'$or':_[_0xf5f2('0x2d')](_0x5027ab,function(_0x35f738){if(_0x35f738['type']!=='VIRTUAL'){var _0x3d328f={};_0x3d328f[_0x35f738[_0xf5f2('0x26')]]={'$like':'%'+_0x5b6672[_0xf5f2('0x2e')][_0xf5f2('0x38')]+'%'};return _0x3d328f;}})});}_0x22c826=_[_0xf5f2('0x39')]({},_0x22c826,_0x5b6672[_0xf5f2('0x3b')]);var _0x2bc20e={'where':_0x22c826['where']};return db[_0xf5f2('0x29')][_0xf5f2('0x1e')](_0x2bc20e)['then'](function(_0xc6a1ae){_0x11c771[_0xf5f2('0x1e')]=_0xc6a1ae;if(_0x5b6672[_0xf5f2('0x2e')][_0xf5f2('0x3c')]){_0x22c826[_0xf5f2('0x3d')]=[{'all':!![]}];}return db[_0xf5f2('0x29')][_0xf5f2('0x3e')](_0x22c826);})[_0xf5f2('0x24')](function(_0x574f24){_0x11c771[_0xf5f2('0x3f')]=_0x574f24;return _0x11c771;})[_0xf5f2('0x24')](respondWithFilteredResult(_0x53cb96,_0x22c826))[_0xf5f2('0x40')](handleError(_0x53cb96,null));};exports['show']=function(_0x509dbc,_0x59eb00){var _0x76d21b={'raw':!![],'where':{'id':_0x509dbc['params']['id']}},_0x2ad13c={};_0x2ad13c[_0xf5f2('0x31')]=_[_0xf5f2('0x41')](db[_0xf5f2('0x29')][_0xf5f2('0x2a')]);_0x2ad13c[_0xf5f2('0x2e')]=_[_0xf5f2('0x41')](_0x509dbc[_0xf5f2('0x2e')]);_0x2ad13c[_0xf5f2('0x2f')]=_[_0xf5f2('0x30')](_0x2ad13c[_0xf5f2('0x31')],_0x2ad13c[_0xf5f2('0x2e')]);_0x76d21b[_0xf5f2('0x32')]=_[_0xf5f2('0x30')](_0x2ad13c[_0xf5f2('0x31')],qs['fields'](_0x509dbc[_0xf5f2('0x2e')]['fields']));_0x76d21b[_0xf5f2('0x32')]=_0x76d21b[_0xf5f2('0x32')][_0xf5f2('0x34')]?_0x76d21b[_0xf5f2('0x32')]:_0x2ad13c[_0xf5f2('0x31')];if(_0x509dbc[_0xf5f2('0x2e')]['includeAll']){_0x76d21b[_0xf5f2('0x3d')]=[{'all':!![]}];}_0x76d21b=_[_0xf5f2('0x39')]({},_0x76d21b,_0x509dbc[_0xf5f2('0x3b')]);return db[_0xf5f2('0x29')][_0xf5f2('0x42')](_0x76d21b)[_0xf5f2('0x24')](handleEntityNotFound(_0x59eb00,null))[_0xf5f2('0x24')](respondWithResult(_0x59eb00,null))[_0xf5f2('0x40')](handleError(_0x59eb00,null));};exports['create']=function(_0x35dece,_0x33ec29){return db[_0xf5f2('0x29')]['create'](_0x35dece[_0xf5f2('0x43')],{})[_0xf5f2('0x24')](respondWithResult(_0x33ec29,0xc9))[_0xf5f2('0x40')](handleError(_0x33ec29,null));};exports['update']=function(_0x57a7cb,_0x7bb942){if(_0x57a7cb[_0xf5f2('0x43')]['id']){delete _0x57a7cb['body']['id'];}return db[_0xf5f2('0x29')]['find']({'where':{'id':_0x57a7cb[_0xf5f2('0x44')]['id']}})['then'](handleEntityNotFound(_0x7bb942,null))[_0xf5f2('0x24')](saveUpdates(_0x57a7cb['body'],null))[_0xf5f2('0x24')](respondWithResult(_0x7bb942,null))[_0xf5f2('0x40')](handleError(_0x7bb942,null));};exports[_0xf5f2('0x45')]=function(_0x11a083,_0x4fa738){return db[_0xf5f2('0x29')][_0xf5f2('0x42')]({'where':{'id':_0x11a083['params']['id']}})['then'](handleEntityNotFound(_0x4fa738,null))[_0xf5f2('0x24')](removeEntity(_0x4fa738,null))[_0xf5f2('0x40')](handleError(_0x4fa738,null));};
\ No newline at end of file
+var _0xadb5=['model','query','keys','intersection','attributes','fields','hasOwnProperty','nolimit','sort','where','pick','filters','filter','VIRTUAL','merge','options','includeAll','include','findAll','rows','catch','show','params','rawAttributes','create','body','find','rimraf','fast-json-patch','request-promise','moment','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/license/util','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','update','then','destroy','end','stack','name','send','index','map','CloudProvider','fieldName','type','key'];(function(_0x199572,_0x33e667){var _0x13cfa3=function(_0x53c075){while(--_0x53c075){_0x199572['push'](_0x199572['shift']());}};_0x13cfa3(++_0x33e667);}(_0xadb5,0xad));var _0x5adb=function(_0x1d31b0,_0x471c71){_0x1d31b0=_0x1d31b0-0x0;var _0x33011a=_0xadb5[_0x1d31b0];return _0x33011a;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x5adb('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x5adb('0x1'));var rp=require(_0x5adb('0x2'));var moment=require(_0x5adb('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x5adb('0x4'));var util=require(_0x5adb('0x5'));var path=require(_0x5adb('0x6'));var sox=require('sox');var csv=require(_0x5adb('0x7'));var ejs=require(_0x5adb('0x8'));var fs=require('fs');var fs_extra=require(_0x5adb('0x9'));var _=require(_0x5adb('0xa'));var squel=require(_0x5adb('0xb'));var crypto=require(_0x5adb('0xc'));var jsforce=require(_0x5adb('0xd'));var deskjs=require(_0x5adb('0xe'));var toCsv=require(_0x5adb('0x7'));var querystring=require(_0x5adb('0xf'));var Papa=require(_0x5adb('0x10'));var Redis=require(_0x5adb('0x11'));var authService=require(_0x5adb('0x12'));var qs=require(_0x5adb('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x5adb('0x14'))(_0x5adb('0x15'));var utils=require(_0x5adb('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x5adb('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x2a0b70,_0x5433bf){_0x5433bf=_0x5433bf||0xcc;return function(_0x8cfcc6){if(_0x8cfcc6){return _0x2a0b70[_0x5adb('0x18')](_0x5433bf);}return _0x2a0b70[_0x5adb('0x19')](_0x5433bf)['end']();};}function respondWithResult(_0x2a545b,_0x34af2c){_0x34af2c=_0x34af2c||0xc8;return function(_0xf82f72){if(_0xf82f72){return _0x2a545b['status'](_0x34af2c)[_0x5adb('0x1a')](_0xf82f72);}};}function respondWithFilteredResult(_0x518823,_0x367d82){return function(_0x42a482){if(_0x42a482){var _0x30614e=typeof _0x367d82[_0x5adb('0x1b')]===_0x5adb('0x1c')&&typeof _0x367d82[_0x5adb('0x1d')]===_0x5adb('0x1c');var _0x42f4c6=_0x42a482[_0x5adb('0x1e')];var _0x529b65=_0x30614e?0x0:_0x367d82[_0x5adb('0x1b')];var _0x5de028=_0x30614e?_0x42a482[_0x5adb('0x1e')]:_0x367d82['offset']+_0x367d82[_0x5adb('0x1d')];var _0x50e84f;if(_0x5de028>=_0x42f4c6){_0x5de028=_0x42f4c6;_0x50e84f=0xc8;}else{_0x50e84f=0xce;}_0x518823['status'](_0x50e84f);return _0x518823[_0x5adb('0x1f')](_0x5adb('0x20'),_0x529b65+'-'+_0x5de028+'/'+_0x42f4c6)[_0x5adb('0x1a')](_0x42a482);}return null;};}function patchUpdates(_0x1fd4a7){return function(_0x99bc6c){try{jsonpatch['apply'](_0x99bc6c,_0x1fd4a7,!![]);}catch(_0x3255b3){return BPromise['reject'](_0x3255b3);}return _0x99bc6c['save']();};}function saveUpdates(_0x3754cc,_0x379b33){return function(_0x1a38d3){if(_0x1a38d3){return _0x1a38d3[_0x5adb('0x21')](_0x3754cc)[_0x5adb('0x22')](function(_0x413911){return _0x413911;});}return null;};}function removeEntity(_0xfd9bb9,_0x4ca150){return function(_0x4b1957){if(_0x4b1957){return _0x4b1957[_0x5adb('0x23')]()[_0x5adb('0x22')](function(){_0xfd9bb9[_0x5adb('0x19')](0xcc)[_0x5adb('0x24')]();});}};}function handleEntityNotFound(_0x49f203,_0x2fee18){return function(_0x2e1e63){if(!_0x2e1e63){_0x49f203['sendStatus'](0x194);}return _0x2e1e63;};}function handleError(_0x1feecf,_0x1ded9f){_0x1ded9f=_0x1ded9f||0x1f4;return function(_0x1a0acd){logger['error'](_0x1a0acd[_0x5adb('0x25')]);if(_0x1a0acd[_0x5adb('0x26')]){delete _0x1a0acd[_0x5adb('0x26')];}_0x1feecf[_0x5adb('0x19')](_0x1ded9f)[_0x5adb('0x27')](_0x1a0acd);};}exports[_0x5adb('0x28')]=function(_0x4a5d46,_0x49992e){var _0x5d457e={},_0x39bddd={},_0x1eac55={'count':0x0,'rows':[]};var _0x60a672=_[_0x5adb('0x29')](db[_0x5adb('0x2a')]['rawAttributes'],function(_0x11ec2a){return{'name':_0x11ec2a[_0x5adb('0x2b')],'type':_0x11ec2a[_0x5adb('0x2c')][_0x5adb('0x2d')]};});_0x39bddd[_0x5adb('0x2e')]=_[_0x5adb('0x29')](_0x60a672,_0x5adb('0x26'));_0x39bddd[_0x5adb('0x2f')]=_[_0x5adb('0x30')](_0x4a5d46[_0x5adb('0x2f')]);_0x39bddd['filters']=_[_0x5adb('0x31')](_0x39bddd['model'],_0x39bddd[_0x5adb('0x2f')]);_0x5d457e[_0x5adb('0x32')]=_['intersection'](_0x39bddd[_0x5adb('0x2e')],qs[_0x5adb('0x33')](_0x4a5d46[_0x5adb('0x2f')]['fields']));_0x5d457e[_0x5adb('0x32')]=_0x5d457e[_0x5adb('0x32')]['length']?_0x5d457e['attributes']:_0x39bddd[_0x5adb('0x2e')];if(!_0x4a5d46['query'][_0x5adb('0x34')](_0x5adb('0x35'))){_0x5d457e[_0x5adb('0x1d')]=qs[_0x5adb('0x1d')](_0x4a5d46[_0x5adb('0x2f')]['limit']);_0x5d457e[_0x5adb('0x1b')]=qs[_0x5adb('0x1b')](_0x4a5d46[_0x5adb('0x2f')]['offset']);}_0x5d457e['order']=qs[_0x5adb('0x36')](_0x4a5d46[_0x5adb('0x2f')]['sort']);_0x5d457e[_0x5adb('0x37')]=qs['filters'](_[_0x5adb('0x38')](_0x4a5d46['query'],_0x39bddd[_0x5adb('0x39')]),_0x60a672);if(_0x4a5d46['query'][_0x5adb('0x3a')]){_0x5d457e[_0x5adb('0x37')]=_['merge'](_0x5d457e[_0x5adb('0x37')],{'$or':_['map'](_0x60a672,function(_0xadbe37){if(_0xadbe37[_0x5adb('0x2c')]!==_0x5adb('0x3b')){var _0x50edd1={};_0x50edd1[_0xadbe37[_0x5adb('0x26')]]={'$like':'%'+_0x4a5d46[_0x5adb('0x2f')][_0x5adb('0x3a')]+'%'};return _0x50edd1;}})});}_0x5d457e=_[_0x5adb('0x3c')]({},_0x5d457e,_0x4a5d46[_0x5adb('0x3d')]);var _0x52d74f={'where':_0x5d457e['where']};return db['CloudProvider']['count'](_0x52d74f)[_0x5adb('0x22')](function(_0x2fbe14){_0x1eac55[_0x5adb('0x1e')]=_0x2fbe14;if(_0x4a5d46[_0x5adb('0x2f')][_0x5adb('0x3e')]){_0x5d457e[_0x5adb('0x3f')]=[{'all':!![]}];}return db[_0x5adb('0x2a')][_0x5adb('0x40')](_0x5d457e);})['then'](function(_0x53f2c6){_0x1eac55[_0x5adb('0x41')]=_0x53f2c6;return _0x1eac55;})['then'](respondWithFilteredResult(_0x49992e,_0x5d457e))[_0x5adb('0x42')](handleError(_0x49992e,null));};exports[_0x5adb('0x43')]=function(_0x299746,_0x121714){var _0xdfecfd={'raw':!![],'where':{'id':_0x299746[_0x5adb('0x44')]['id']}},_0x522ee5={};_0x522ee5[_0x5adb('0x2e')]=_['keys'](db[_0x5adb('0x2a')][_0x5adb('0x45')]);_0x522ee5['query']=_[_0x5adb('0x30')](_0x299746[_0x5adb('0x2f')]);_0x522ee5[_0x5adb('0x39')]=_[_0x5adb('0x31')](_0x522ee5[_0x5adb('0x2e')],_0x522ee5[_0x5adb('0x2f')]);_0xdfecfd[_0x5adb('0x32')]=_['intersection'](_0x522ee5['model'],qs[_0x5adb('0x33')](_0x299746[_0x5adb('0x2f')][_0x5adb('0x33')]));_0xdfecfd[_0x5adb('0x32')]=_0xdfecfd['attributes']['length']?_0xdfecfd[_0x5adb('0x32')]:_0x522ee5[_0x5adb('0x2e')];if(_0x299746[_0x5adb('0x2f')][_0x5adb('0x3e')]){_0xdfecfd[_0x5adb('0x3f')]=[{'all':!![]}];}_0xdfecfd=_['merge']({},_0xdfecfd,_0x299746[_0x5adb('0x3d')]);return db[_0x5adb('0x2a')]['find'](_0xdfecfd)[_0x5adb('0x22')](handleEntityNotFound(_0x121714,null))[_0x5adb('0x22')](respondWithResult(_0x121714,null))[_0x5adb('0x42')](handleError(_0x121714,null));};exports[_0x5adb('0x46')]=function(_0x186bd2,_0x3a5409){return db[_0x5adb('0x2a')][_0x5adb('0x46')](_0x186bd2['body'],{})[_0x5adb('0x22')](respondWithResult(_0x3a5409,0xc9))['catch'](handleError(_0x3a5409,null));};exports['update']=function(_0x5015ee,_0x3cd211){if(_0x5015ee[_0x5adb('0x47')]['id']){delete _0x5015ee[_0x5adb('0x47')]['id'];}return db['CloudProvider'][_0x5adb('0x48')]({'where':{'id':_0x5015ee['params']['id']}})[_0x5adb('0x22')](handleEntityNotFound(_0x3cd211,null))[_0x5adb('0x22')](saveUpdates(_0x5015ee[_0x5adb('0x47')],null))['then'](respondWithResult(_0x3cd211,null))[_0x5adb('0x42')](handleError(_0x3cd211,null));};exports['destroy']=function(_0x22fa54,_0x6dc067){return db['CloudProvider'][_0x5adb('0x48')]({'where':{'id':_0x22fa54[_0x5adb('0x44')]['id']}})[_0x5adb('0x22')](handleEntityNotFound(_0x6dc067,null))[_0x5adb('0x22')](removeEntity(_0x6dc067,null))[_0x5adb('0x42')](handleError(_0x6dc067,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdb0e=['request-promise','path','../../config/environment','define','CloudProvider','cloud_providers','lodash','util','../../config/logger','api','moment','bluebird'];(function(_0x491e7a,_0x44a706){var _0xcd92c4=function(_0x354aec){while(--_0x354aec){_0x491e7a['push'](_0x491e7a['shift']());}};_0xcd92c4(++_0x44a706);}(_0xdb0e,0xba));var _0xedb0=function(_0x190ff6,_0x515cfd){_0x190ff6=_0x190ff6-0x0;var _0x5356d2=_0xdb0e[_0x190ff6];return _0x5356d2;};'use strict';var _=require(_0xedb0('0x0'));var util=require(_0xedb0('0x1'));var logger=require(_0xedb0('0x2'))(_0xedb0('0x3'));var moment=require(_0xedb0('0x4'));var BPromise=require(_0xedb0('0x5'));var rp=require(_0xedb0('0x6'));var fs=require('fs');var path=require(_0xedb0('0x7'));var rimraf=require('rimraf');var config=require(_0xedb0('0x8'));var attributes=require('./cloudProvider.attributes');module['exports']=function(_0x25db7b,_0x5ee162){return _0x25db7b[_0xedb0('0x9')](_0xedb0('0xa'),attributes,{'tableName':_0xedb0('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x62e6=['util','api','moment','bluebird','request-promise','path','./cloudProvider.attributes','define','cloud_providers','lodash'];(function(_0x34843e,_0x4c4224){var _0x598f7f=function(_0x12a44c){while(--_0x12a44c){_0x34843e['push'](_0x34843e['shift']());}};_0x598f7f(++_0x4c4224);}(_0x62e6,0x81));var _0x662e=function(_0xe6e78c,_0x582369){_0xe6e78c=_0xe6e78c-0x0;var _0x2a09c8=_0x62e6[_0xe6e78c];return _0x2a09c8;};'use strict';var _=require(_0x662e('0x0'));var util=require(_0x662e('0x1'));var logger=require('../../config/logger')(_0x662e('0x2'));var moment=require(_0x662e('0x3'));var BPromise=require(_0x662e('0x4'));var rp=require(_0x662e('0x5'));var fs=require('fs');var path=require(_0x662e('0x6'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x662e('0x7'));module['exports']=function(_0x50e2fc,_0xd67b1a){return _0x50e2fc[_0x662e('0x8')]('CloudProvider',attributes,{'tableName':_0x662e('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x117c=['../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','then','info','request\x20sent','CloudProvider,\x20%s,\x20%s,\x20%s','stringify','error','code','CloudProvider,\x20%s,\x20%s','message','catch','bluebird'];(function(_0x427352,_0x1bce61){var _0x23e0e6=function(_0x2a42a9){while(--_0x2a42a9){_0x427352['push'](_0x427352['shift']());}};_0x23e0e6(++_0x1bce61);}(_0x117c,0x71));var _0xc117=function(_0x486c22,_0x306c6d){_0x486c22=_0x486c22-0x0;var _0xbad918=_0x117c[_0x486c22];return _0xbad918;};'use strict';var _=require('lodash');var util=require('util');var moment=require('moment');var BPromise=require(_0xc117('0x0'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0xc117('0x1'))['db'];var utils=require(_0xc117('0x2'));var logger=require(_0xc117('0x3'))(_0xc117('0x4'));var config=require(_0xc117('0x5'));var jayson=require(_0xc117('0x6'));var client=jayson['client'][_0xc117('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x389734,_0x48efbb,_0x181a70){return new BPromise(function(_0x56c9bd,_0x451447){return client[_0xc117('0x8')](_0x389734,_0x181a70)[_0xc117('0x9')](function(_0x39e33f){logger[_0xc117('0xa')]('CloudProvider,\x20%s,\x20%s',_0x48efbb,_0xc117('0xb'));logger['debug'](_0xc117('0xc'),_0x48efbb,'request\x20sent',JSON[_0xc117('0xd')](_0x39e33f));if(_0x39e33f[_0xc117('0xe')]){if(_0x39e33f['error'][_0xc117('0xf')]===0x1f4){logger['error'](_0xc117('0x10'),_0x48efbb,_0x39e33f[_0xc117('0xe')][_0xc117('0x11')]);return _0x451447(_0x39e33f[_0xc117('0xe')]['message']);}logger[_0xc117('0xe')](_0xc117('0x10'),_0x48efbb,_0x39e33f[_0xc117('0xe')][_0xc117('0x11')]);return _0x56c9bd(_0x39e33f[_0xc117('0xe')][_0xc117('0x11')]);}else{logger[_0xc117('0xa')](_0xc117('0x10'),_0x48efbb,_0xc117('0xb'));_0x56c9bd(_0x39e33f['result']['message']);}})[_0xc117('0x12')](function(_0x241ee7){logger[_0xc117('0xe')](_0xc117('0x10'),_0x48efbb,_0x241ee7);_0x451447(_0x241ee7);});});}
\ No newline at end of file
+var _0x38b8=['client','http','request','then','CloudProvider,\x20%s,\x20%s','debug','CloudProvider,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','catch','lodash','moment','bluebird','ioredis','../../config/logger','rpc'];(function(_0xe2bb9e,_0x2629a9){var _0x43ba10=function(_0x21a370){while(--_0x21a370){_0xe2bb9e['push'](_0xe2bb9e['shift']());}};_0x43ba10(++_0x2629a9);}(_0x38b8,0x7f));var _0x838b=function(_0x2dafbe,_0x5d04de){_0x2dafbe=_0x2dafbe-0x0;var _0x58a45a=_0x38b8[_0x2dafbe];return _0x58a45a;};'use strict';var _=require(_0x838b('0x0'));var util=require('util');var moment=require(_0x838b('0x1'));var BPromise=require(_0x838b('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x838b('0x3'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x838b('0x4'))(_0x838b('0x5'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x838b('0x6')][_0x838b('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x5c516c,_0x2d3e96,_0x15184b){return new BPromise(function(_0x4b9530,_0x552245){return client[_0x838b('0x8')](_0x5c516c,_0x15184b)[_0x838b('0x9')](function(_0x31ba84){logger['info'](_0x838b('0xa'),_0x2d3e96,'request\x20sent');logger[_0x838b('0xb')](_0x838b('0xc'),_0x2d3e96,_0x838b('0xd'),JSON[_0x838b('0xe')](_0x31ba84));if(_0x31ba84[_0x838b('0xf')]){if(_0x31ba84[_0x838b('0xf')]['code']===0x1f4){logger[_0x838b('0xf')](_0x838b('0xa'),_0x2d3e96,_0x31ba84[_0x838b('0xf')][_0x838b('0x10')]);return _0x552245(_0x31ba84[_0x838b('0xf')][_0x838b('0x10')]);}logger[_0x838b('0xf')](_0x838b('0xa'),_0x2d3e96,_0x31ba84[_0x838b('0xf')]['message']);return _0x4b9530(_0x31ba84[_0x838b('0xf')]['message']);}else{logger['info']('CloudProvider,\x20%s,\x20%s',_0x2d3e96,_0x838b('0xd'));_0x4b9530(_0x31ba84[_0x838b('0x11')][_0x838b('0x10')]);}})[_0x838b('0x12')](function(_0x94e893){logger['error'](_0x838b('0xa'),_0x2d3e96,_0x94e893);_0x552245(_0x94e893);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xffad=['create','put','update','destroy','exports','multer','util','connect-timeout','express','../../config/environment','./cloudProvider.controller','isAuthenticated','index','/:id','show','post'];(function(_0x1591d4,_0x4ea3bd){var _0x4c46bb=function(_0x13b7e7){while(--_0x13b7e7){_0x1591d4['push'](_0x1591d4['shift']());}};_0x4c46bb(++_0x4ea3bd);}(_0xffad,0x175));var _0xdffa=function(_0x178f12,_0x4fd114){_0x178f12=_0x178f12-0x0;var _0x592279=_0xffad[_0x178f12];return _0x592279;};'use strict';var multer=require(_0xdffa('0x0'));var util=require(_0xdffa('0x1'));var path=require('path');var timeout=require(_0xdffa('0x2'));var express=require(_0xdffa('0x3'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0xdffa('0x4'));var controller=require(_0xdffa('0x5'));router['get']('/',auth[_0xdffa('0x6')](),controller[_0xdffa('0x7')]);router['get'](_0xdffa('0x8'),auth[_0xdffa('0x6')](),controller[_0xdffa('0x9')]);router[_0xdffa('0xa')]('/',auth[_0xdffa('0x6')](),controller[_0xdffa('0xb')]);router[_0xdffa('0xc')](_0xdffa('0x8'),auth[_0xdffa('0x6')](),controller[_0xdffa('0xd')]);router['delete']('/:id',auth[_0xdffa('0x6')](),controller[_0xdffa('0xe')]);module[_0xdffa('0xf')]=router;
\ No newline at end of file
+var _0xa046=['exports','multer','util','path','express','../../components/auth/service','../../components/interaction/service','../../config/environment','./cloudProvider.controller','get','isAuthenticated','index','/:id','post','create','delete','destroy'];(function(_0x14363e,_0x4f0e0d){var _0x17c56d=function(_0x1c7bac){while(--_0x1c7bac){_0x14363e['push'](_0x14363e['shift']());}};_0x17c56d(++_0x4f0e0d);}(_0xa046,0xab));var _0x6a04=function(_0x3c3f34,_0x1ad1fc){_0x3c3f34=_0x3c3f34-0x0;var _0x31a262=_0xa046[_0x3c3f34];return _0x31a262;};'use strict';var multer=require(_0x6a04('0x0'));var util=require(_0x6a04('0x1'));var path=require(_0x6a04('0x2'));var timeout=require('connect-timeout');var express=require(_0x6a04('0x3'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0x6a04('0x4'));var interaction=require(_0x6a04('0x5'));var config=require(_0x6a04('0x6'));var controller=require(_0x6a04('0x7'));router[_0x6a04('0x8')]('/',auth[_0x6a04('0x9')](),controller[_0x6a04('0xa')]);router[_0x6a04('0x8')](_0x6a04('0xb'),auth[_0x6a04('0x9')](),controller['show']);router[_0x6a04('0xc')]('/',auth[_0x6a04('0x9')](),controller[_0x6a04('0xd')]);router['put'](_0x6a04('0xb'),auth[_0x6a04('0x9')](),controller['update']);router[_0x6a04('0xe')](_0x6a04('0xb'),auth[_0x6a04('0x9')](),controller[_0x6a04('0xf')]);module[_0x6a04('0x10')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb950=['STRING','sequelize'];(function(_0x413feb,_0x10477f){var _0x40ee88=function(_0x32a3f6){while(--_0x32a3f6){_0x413feb['push'](_0x413feb['shift']());}};_0x40ee88(++_0x10477f);}(_0xb950,0x18d));var _0x0b95=function(_0x4c12ec,_0x2e9103){_0x4c12ec=_0x4c12ec-0x0;var _0x3ae42c=_0xb950[_0x4c12ec];return _0x3ae42c;};'use strict';var Sequelize=require(_0x0b95('0x0'));module['exports']={'name':{'type':Sequelize[_0x0b95('0x1')],'unique':'name','allowNull':![],'validate':{'notEmpty':!![]}},'vat':{'type':Sequelize[_0x0b95('0x1')]},'companyId':{'type':Sequelize[_0x0b95('0x1')]},'website':{'type':Sequelize[_0x0b95('0x1')]},'phone':{'type':Sequelize[_0x0b95('0x1')]},'fax':{'type':Sequelize[_0x0b95('0x1')]},'type':{'type':Sequelize[_0x0b95('0x1')]},'street':{'type':Sequelize[_0x0b95('0x1')]},'postalCode':{'type':Sequelize[_0x0b95('0x1')]},'city':{'type':Sequelize['STRING']},'country':{'type':Sequelize['STRING']},'email':{'type':Sequelize[_0x0b95('0x1')],'validate':{'isEmail':!![]}},'emailDomain':{'type':Sequelize[_0x0b95('0x1')]},'sStreet':{'type':Sequelize[_0x0b95('0x1')]},'sPostalCode':{'type':Sequelize[_0x0b95('0x1')]},'sCity':{'type':Sequelize['STRING']},'sCountry':{'type':Sequelize[_0x0b95('0x1')]},'description':{'type':Sequelize[_0x0b95('0x1')]}};
\ No newline at end of file
+var _0xf9fd=['STRING','sequelize','exports'];(function(_0x13be43,_0x1261e8){var _0x2b5d2f=function(_0x4a979f){while(--_0x4a979f){_0x13be43['push'](_0x13be43['shift']());}};_0x2b5d2f(++_0x1261e8);}(_0xf9fd,0x118));var _0xdf9f=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0xf9fd[_0x14add3];return _0x4a174f;};'use strict';var Sequelize=require(_0xdf9f('0x0'));module[_0xdf9f('0x1')]={'name':{'type':Sequelize[_0xdf9f('0x2')],'unique':'name','allowNull':![],'validate':{'notEmpty':!![]}},'vat':{'type':Sequelize[_0xdf9f('0x2')]},'companyId':{'type':Sequelize[_0xdf9f('0x2')]},'website':{'type':Sequelize['STRING']},'phone':{'type':Sequelize[_0xdf9f('0x2')]},'fax':{'type':Sequelize['STRING']},'type':{'type':Sequelize['STRING']},'street':{'type':Sequelize[_0xdf9f('0x2')]},'postalCode':{'type':Sequelize['STRING']},'city':{'type':Sequelize[_0xdf9f('0x2')]},'country':{'type':Sequelize[_0xdf9f('0x2')]},'email':{'type':Sequelize['STRING'],'validate':{'isEmail':!![]}},'emailDomain':{'type':Sequelize[_0xdf9f('0x2')]},'sStreet':{'type':Sequelize[_0xdf9f('0x2')]},'sPostalCode':{'type':Sequelize['STRING']},'sCity':{'type':Sequelize[_0xdf9f('0x2')]},'sCountry':{'type':Sequelize[_0xdf9f('0x2')]},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbd97=['to-csv','ejs','fs-extra','squel','desk.js','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','count','limit','Content-Range','apply','reject','save','destroy','then','get','Companies','UserProfileResource','sendStatus','error','stack','name','send','index','CmCompany','describe','model','keys','query','filters','attributes','intersection','fields','hasOwnProperty','nolimit','order','sort','pick','where','merge','map','filter','options','include','findAll','catch','show','params','length','includeAll','find','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','CmContact','addContacts','ids','omit','getContacts','eml-format','zip-dir','request-promise','mustache','util','path','sox'];(function(_0x4b7958,_0x2e42a4){var _0x23421b=function(_0x31fce2){while(--_0x31fce2){_0x4b7958['push'](_0x4b7958['shift']());}};_0x23421b(++_0x2e42a4);}(_0xbd97,0xf5));var _0x7bd9=function(_0x23ae51,_0x4999d6){_0x23ae51=_0x23ae51-0x0;var _0x1aae07=_0xbd97[_0x23ae51];return _0x1aae07;};'use strict';var emlformat=require(_0x7bd9('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x7bd9('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x7bd9('0x2'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x7bd9('0x3'));var util=require(_0x7bd9('0x4'));var path=require(_0x7bd9('0x5'));var sox=require(_0x7bd9('0x6'));var csv=require(_0x7bd9('0x7'));var ejs=require(_0x7bd9('0x8'));var fs=require('fs');var fs_extra=require(_0x7bd9('0x9'));var _=require('lodash');var squel=require(_0x7bd9('0xa'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x7bd9('0xb'));var toCsv=require(_0x7bd9('0x7'));var querystring=require(_0x7bd9('0xc'));var Papa=require(_0x7bd9('0xd'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x7bd9('0xe'));var as=require(_0x7bd9('0xf'));var hardwareService=require(_0x7bd9('0x10'));var logger=require('../../config/logger')(_0x7bd9('0x11'));var utils=require(_0x7bd9('0x12'));var config=require(_0x7bd9('0x13'));var licenseUtil=require(_0x7bd9('0x14'));var db=require(_0x7bd9('0x15'))['db'];function respondWithStatusCode(_0x238eef,_0x801a3d){_0x801a3d=_0x801a3d||0xcc;return function(_0x4d2b05){if(_0x4d2b05){return _0x238eef['sendStatus'](_0x801a3d);}return _0x238eef[_0x7bd9('0x16')](_0x801a3d)[_0x7bd9('0x17')]();};}function respondWithResult(_0xdcc993,_0x53f12b){_0x53f12b=_0x53f12b||0xc8;return function(_0x3f7fc6){if(_0x3f7fc6){return _0xdcc993['status'](_0x53f12b)[_0x7bd9('0x18')](_0x3f7fc6);}};}function respondWithFilteredResult(_0xf183e9,_0x3c5873){return function(_0x49d6d1){if(_0x49d6d1){var _0x27b5d6=typeof _0x3c5873[_0x7bd9('0x19')]==='undefined'&&typeof _0x3c5873['limit']===_0x7bd9('0x1a');var _0x2dd9f4=_0x49d6d1[_0x7bd9('0x1b')];var _0x2e81ac=_0x27b5d6?0x0:_0x3c5873['offset'];var _0x5e9d23=_0x27b5d6?_0x49d6d1[_0x7bd9('0x1b')]:_0x3c5873[_0x7bd9('0x19')]+_0x3c5873[_0x7bd9('0x1c')];var _0x327771;if(_0x5e9d23>=_0x2dd9f4){_0x5e9d23=_0x2dd9f4;_0x327771=0xc8;}else{_0x327771=0xce;}_0xf183e9[_0x7bd9('0x16')](_0x327771);return _0xf183e9['set'](_0x7bd9('0x1d'),_0x2e81ac+'-'+_0x5e9d23+'/'+_0x2dd9f4)[_0x7bd9('0x18')](_0x49d6d1);}return null;};}function patchUpdates(_0x383f6a){return function(_0x4d3afd){try{jsonpatch[_0x7bd9('0x1e')](_0x4d3afd,_0x383f6a,!![]);}catch(_0x45b664){return BPromise[_0x7bd9('0x1f')](_0x45b664);}return _0x4d3afd[_0x7bd9('0x20')]();};}function saveUpdates(_0x1d1593,_0x4739bc){return function(_0x563fe1){if(_0x563fe1){return _0x563fe1['update'](_0x1d1593)['then'](function(_0x153672){return _0x153672;});}return null;};}function removeEntity(_0x2bc117,_0x317dc9){return function(_0x2687f0){if(_0x2687f0){return _0x2687f0[_0x7bd9('0x21')]()[_0x7bd9('0x22')](function(){var _0x1f17ac=_0x2687f0[_0x7bd9('0x23')]({'plain':!![]});var _0x50339c=_0x7bd9('0x24');return db[_0x7bd9('0x25')][_0x7bd9('0x21')]({'where':{'type':_0x50339c,'resourceId':_0x1f17ac['id']}})[_0x7bd9('0x22')](function(){return _0x2687f0;});})[_0x7bd9('0x22')](function(){_0x2bc117[_0x7bd9('0x16')](0xcc)[_0x7bd9('0x17')]();});}};}function handleEntityNotFound(_0x239153,_0x2a8852){return function(_0x25d08a){if(!_0x25d08a){_0x239153[_0x7bd9('0x26')](0x194);}return _0x25d08a;};}function handleError(_0x3894ad,_0x41fa63){_0x41fa63=_0x41fa63||0x1f4;return function(_0x387bec){logger[_0x7bd9('0x27')](_0x387bec[_0x7bd9('0x28')]);if(_0x387bec[_0x7bd9('0x29')]){delete _0x387bec[_0x7bd9('0x29')];}_0x3894ad['status'](_0x41fa63)[_0x7bd9('0x2a')](_0x387bec);};}exports[_0x7bd9('0x2b')]=function(_0x458970,_0x279e23){var _0x5b465e={},_0x272443={},_0x2fd73a={'count':0x0,'rows':[]};return db[_0x7bd9('0x2c')][_0x7bd9('0x2d')]()[_0x7bd9('0x22')](function(_0x1fa892){_0x272443[_0x7bd9('0x2e')]=_[_0x7bd9('0x2f')](_0x1fa892);_0x272443['query']=_[_0x7bd9('0x2f')](_0x458970[_0x7bd9('0x30')]);_0x272443[_0x7bd9('0x31')]=_['intersection'](_0x272443[_0x7bd9('0x2e')],_0x272443[_0x7bd9('0x30')]);_0x5b465e[_0x7bd9('0x32')]=_[_0x7bd9('0x33')](_0x272443['model'],qs[_0x7bd9('0x34')](_0x458970['query'][_0x7bd9('0x34')]));_0x5b465e[_0x7bd9('0x32')]=_0x5b465e[_0x7bd9('0x32')]['length']?_0x5b465e['attributes']:_0x272443[_0x7bd9('0x2e')];if(!_0x458970[_0x7bd9('0x30')][_0x7bd9('0x35')](_0x7bd9('0x36'))){_0x5b465e[_0x7bd9('0x1c')]=qs['limit'](_0x458970[_0x7bd9('0x30')][_0x7bd9('0x1c')]);_0x5b465e[_0x7bd9('0x19')]=qs[_0x7bd9('0x19')](_0x458970[_0x7bd9('0x30')]['offset']);}_0x5b465e[_0x7bd9('0x37')]=qs[_0x7bd9('0x38')](_0x458970[_0x7bd9('0x30')][_0x7bd9('0x38')]);_0x5b465e['where']=qs['filters'](_[_0x7bd9('0x39')](_0x458970[_0x7bd9('0x30')],_0x272443[_0x7bd9('0x31')]),_0x1fa892);if(_0x458970[_0x7bd9('0x30')]['filter']){_0x5b465e[_0x7bd9('0x3a')]=_[_0x7bd9('0x3b')](_0x5b465e[_0x7bd9('0x3a')],{'$or':_[_0x7bd9('0x3c')](_0x5b465e[_0x7bd9('0x32')],function(_0x3d3277){var _0x337caa={};_0x337caa[_0x3d3277]={'$like':'%'+_0x458970['query'][_0x7bd9('0x3d')]+'%'};return _0x337caa;})});}_0x5b465e=_[_0x7bd9('0x3b')]({},_0x5b465e,_0x458970[_0x7bd9('0x3e')]);var _0x6d04bc={'where':_0x5b465e['where']};return db[_0x7bd9('0x2c')]['count'](_0x6d04bc)[_0x7bd9('0x22')](function(_0x5a7255){_0x2fd73a[_0x7bd9('0x1b')]=_0x5a7255;if(_0x458970['query']['includeAll']){_0x5b465e[_0x7bd9('0x3f')]=[{'all':!![]}];}return db['CmCompany'][_0x7bd9('0x40')](_0x5b465e);})['then'](function(_0x3ee5b0){_0x2fd73a['rows']=_0x3ee5b0;return _0x2fd73a;})[_0x7bd9('0x22')](respondWithFilteredResult(_0x279e23,_0x5b465e))[_0x7bd9('0x41')](handleError(_0x279e23,null));})['catch'](handleError(_0x279e23,null));};exports[_0x7bd9('0x42')]=function(_0x4bfc50,_0x2911c6){var _0x4b9ced={'raw':![],'where':{'id':_0x4bfc50[_0x7bd9('0x43')]['id']}},_0x57ebd9={};_0x57ebd9[_0x7bd9('0x2e')]=_[_0x7bd9('0x2f')](db[_0x7bd9('0x2c')]['rawAttributes']);_0x57ebd9[_0x7bd9('0x30')]=_[_0x7bd9('0x2f')](_0x4bfc50[_0x7bd9('0x30')]);_0x57ebd9[_0x7bd9('0x31')]=_['intersection'](_0x57ebd9[_0x7bd9('0x2e')],_0x57ebd9[_0x7bd9('0x30')]);_0x4b9ced[_0x7bd9('0x32')]=_[_0x7bd9('0x33')](_0x57ebd9['model'],qs[_0x7bd9('0x34')](_0x4bfc50[_0x7bd9('0x30')]['fields']));_0x4b9ced[_0x7bd9('0x32')]=_0x4b9ced['attributes'][_0x7bd9('0x44')]?_0x4b9ced[_0x7bd9('0x32')]:_0x57ebd9['model'];if(_0x4bfc50[_0x7bd9('0x30')][_0x7bd9('0x45')]){_0x4b9ced[_0x7bd9('0x3f')]=[{'all':!![]}];}_0x4b9ced=_[_0x7bd9('0x3b')]({},_0x4b9ced,_0x4bfc50['options']);return db['CmCompany'][_0x7bd9('0x46')](_0x4b9ced)['then'](handleEntityNotFound(_0x2911c6,null))[_0x7bd9('0x22')](respondWithResult(_0x2911c6,null))[_0x7bd9('0x41')](handleError(_0x2911c6,null));};exports['create']=function(_0x494962,_0xf8b6e9){return db[_0x7bd9('0x2c')]['create'](_0x494962[_0x7bd9('0x47')],{})[_0x7bd9('0x22')](function(_0x3254b5){var _0x5e9ee4=_0x494962[_0x7bd9('0x48')][_0x7bd9('0x23')]({'plain':!![]});if(!_0x5e9ee4)throw new Error(_0x7bd9('0x49'));if(_0x5e9ee4[_0x7bd9('0x4a')]===_0x7bd9('0x48')){var _0x508216=_0x3254b5['get']({'plain':!![]});var _0x5db8bd='Companies';return db[_0x7bd9('0x4b')][_0x7bd9('0x46')]({'where':{'name':_0x5db8bd,'userProfileId':_0x5e9ee4['userProfileId']},'raw':!![]})[_0x7bd9('0x22')](function(_0x348acb){if(_0x348acb&&_0x348acb['autoAssociation']===0x0){return db[_0x7bd9('0x25')][_0x7bd9('0x4c')]({'name':_0x508216['name'],'resourceId':_0x508216['id'],'type':_0x348acb[_0x7bd9('0x29')],'sectionId':_0x348acb['id']},{})[_0x7bd9('0x22')](function(){return _0x3254b5;});}else{return _0x3254b5;}})[_0x7bd9('0x41')](function(_0x24326e){logger['error'](_0x7bd9('0x4d'),_0x24326e);throw _0x24326e;});}return _0x3254b5;})[_0x7bd9('0x22')](respondWithResult(_0xf8b6e9,0xc9))[_0x7bd9('0x41')](handleError(_0xf8b6e9,null));};exports[_0x7bd9('0x4e')]=function(_0x124b31,_0x68564c){if(_0x124b31['body']['id']){delete _0x124b31[_0x7bd9('0x47')]['id'];}return db[_0x7bd9('0x2c')][_0x7bd9('0x46')]({'where':{'id':_0x124b31[_0x7bd9('0x43')]['id']}})[_0x7bd9('0x22')](handleEntityNotFound(_0x68564c,null))['then'](saveUpdates(_0x124b31[_0x7bd9('0x47')],null))[_0x7bd9('0x22')](respondWithResult(_0x68564c,null))[_0x7bd9('0x41')](handleError(_0x68564c,null));};exports['destroy']=function(_0x42a37c,_0x3478b8){return db[_0x7bd9('0x2c')][_0x7bd9('0x46')]({'where':{'id':_0x42a37c[_0x7bd9('0x43')]['id']}})[_0x7bd9('0x22')](handleEntityNotFound(_0x3478b8,null))['then'](removeEntity(_0x3478b8,null))['catch'](handleError(_0x3478b8,null));};exports['describe']=function(_0x593148,_0x470934){return db[_0x7bd9('0x2c')][_0x7bd9('0x2d')]()['then'](respondWithResult(_0x470934,null))[_0x7bd9('0x41')](handleError(_0x470934,null));};exports['addContacts']=function(_0x1198dd,_0x4c1e73,_0x90377e){return db[_0x7bd9('0x4f')]['find']({'where':{'id':_0x1198dd[_0x7bd9('0x43')]['id']}})[_0x7bd9('0x22')](handleEntityNotFound(_0x4c1e73,null))[_0x7bd9('0x22')](function(_0x53f825){if(_0x53f825){return _0x53f825[_0x7bd9('0x50')](_0x1198dd[_0x7bd9('0x47')][_0x7bd9('0x51')],_[_0x7bd9('0x52')](_0x1198dd[_0x7bd9('0x47')],[_0x7bd9('0x51'),'id'])||{});}})[_0x7bd9('0x22')](respondWithResult(_0x4c1e73,null))[_0x7bd9('0x41')](handleError(_0x4c1e73,null));};exports[_0x7bd9('0x53')]=function(_0x50a657,_0x208d04,_0x37de2b){var _0xee2253={};var _0x54cb84={};var _0x12d256;var _0x10dd8a;return db[_0x7bd9('0x2c')]['findOne']({'where':{'id':_0x50a657[_0x7bd9('0x43')]['id']}})[_0x7bd9('0x22')](handleEntityNotFound(_0x208d04,null))[_0x7bd9('0x22')](function(_0x1a61bb){if(_0x1a61bb){_0x12d256=_0x1a61bb;_0x54cb84[_0x7bd9('0x2e')]=_[_0x7bd9('0x2f')](db[_0x7bd9('0x4f')]['rawAttributes']);_0x54cb84['query']=_[_0x7bd9('0x2f')](_0x50a657['query']);_0x54cb84['filters']=_[_0x7bd9('0x33')](_0x54cb84[_0x7bd9('0x2e')],_0x54cb84['query']);_0xee2253['attributes']=_[_0x7bd9('0x33')](_0x54cb84[_0x7bd9('0x2e')],qs[_0x7bd9('0x34')](_0x50a657['query'][_0x7bd9('0x34')]));_0xee2253[_0x7bd9('0x32')]=_0xee2253[_0x7bd9('0x32')]['length']?_0xee2253[_0x7bd9('0x32')]:_0x54cb84[_0x7bd9('0x2e')];_0xee2253['order']=qs[_0x7bd9('0x38')](_0x50a657[_0x7bd9('0x30')]['sort']);_0xee2253[_0x7bd9('0x3a')]=qs['filters'](_['pick'](_0x50a657['query'],_0x54cb84[_0x7bd9('0x31')]));if(_0x50a657[_0x7bd9('0x30')][_0x7bd9('0x3d')]){_0xee2253[_0x7bd9('0x3a')]=_[_0x7bd9('0x3b')](_0xee2253[_0x7bd9('0x3a')],{'$or':_[_0x7bd9('0x3c')](_0xee2253['attributes'],function(_0x315102){var _0x5a6e06={};_0x5a6e06[_0x315102]={'$like':'%'+_0x50a657[_0x7bd9('0x30')][_0x7bd9('0x3d')]+'%'};return _0x5a6e06;})});}_0xee2253=_['merge']({},_0xee2253,_0x50a657[_0x7bd9('0x3e')]);return _0x12d256['getContacts'](_0xee2253);}})[_0x7bd9('0x22')](function(_0x25d508){if(_0x25d508){_0x10dd8a=_0x25d508[_0x7bd9('0x44')];if(!_0x50a657[_0x7bd9('0x30')]['hasOwnProperty']('nolimit')){_0xee2253[_0x7bd9('0x1c')]=qs[_0x7bd9('0x1c')](_0x50a657['query'][_0x7bd9('0x1c')]);_0xee2253[_0x7bd9('0x19')]=qs[_0x7bd9('0x19')](_0x50a657['query'][_0x7bd9('0x19')]);}return _0x12d256[_0x7bd9('0x53')](_0xee2253);}})[_0x7bd9('0x22')](function(_0x1df1f2){if(_0x1df1f2){return _0x1df1f2?{'count':_0x10dd8a,'rows':_0x1df1f2}:null;}})[_0x7bd9('0x22')](respondWithResult(_0x208d04,null))[_0x7bd9('0x41')](handleError(_0x208d04,null));};
\ No newline at end of file
+var _0xb9ba=['../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','save','update','then','destroy','get','Companies','error','stack','name','index','CmCompany','describe','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','map','merge','options','includeAll','include','findAll','rows','catch','show','params','find','create','body','user','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','CmContact','addContacts','omit','ids','getContacts','findOne','rawAttributes','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api'];(function(_0x4e0eb6,_0x240784){var _0x46e432=function(_0x24b973){while(--_0x24b973){_0x4e0eb6['push'](_0x4e0eb6['shift']());}};_0x46e432(++_0x240784);}(_0xb9ba,0x9c));var _0xab9b=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xb9ba[_0x20a584];return _0x4b41a8;};'use strict';var emlformat=require(_0xab9b('0x0'));var rimraf=require(_0xab9b('0x1'));var zipdir=require(_0xab9b('0x2'));var jsonpatch=require(_0xab9b('0x3'));var rp=require(_0xab9b('0x4'));var moment=require('moment');var BPromise=require(_0xab9b('0x5'));var Mustache=require(_0xab9b('0x6'));var util=require(_0xab9b('0x7'));var path=require('path');var sox=require('sox');var csv=require(_0xab9b('0x8'));var ejs=require(_0xab9b('0x9'));var fs=require('fs');var fs_extra=require(_0xab9b('0xa'));var _=require(_0xab9b('0xb'));var squel=require(_0xab9b('0xc'));var crypto=require(_0xab9b('0xd'));var jsforce=require(_0xab9b('0xe'));var deskjs=require(_0xab9b('0xf'));var toCsv=require('to-csv');var querystring=require(_0xab9b('0x10'));var Papa=require('papaparse');var Redis=require(_0xab9b('0x11'));var authService=require('../../components/auth/service');var qs=require(_0xab9b('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xab9b('0x13'));var logger=require(_0xab9b('0x14'))(_0xab9b('0x15'));var utils=require(_0xab9b('0x16'));var config=require(_0xab9b('0x17'));var licenseUtil=require(_0xab9b('0x18'));var db=require(_0xab9b('0x19'))['db'];function respondWithStatusCode(_0x450b02,_0x590b29){_0x590b29=_0x590b29||0xcc;return function(_0x1a7d0f){if(_0x1a7d0f){return _0x450b02[_0xab9b('0x1a')](_0x590b29);}return _0x450b02[_0xab9b('0x1b')](_0x590b29)[_0xab9b('0x1c')]();};}function respondWithResult(_0xa0e13b,_0xb7e4a8){_0xb7e4a8=_0xb7e4a8||0xc8;return function(_0xebe889){if(_0xebe889){return _0xa0e13b[_0xab9b('0x1b')](_0xb7e4a8)[_0xab9b('0x1d')](_0xebe889);}};}function respondWithFilteredResult(_0x249a63,_0xef8b98){return function(_0x52e820){if(_0x52e820){var _0x594485=typeof _0xef8b98[_0xab9b('0x1e')]===_0xab9b('0x1f')&&typeof _0xef8b98['limit']==='undefined';var _0x494697=_0x52e820[_0xab9b('0x20')];var _0x264500=_0x594485?0x0:_0xef8b98[_0xab9b('0x1e')];var _0x2b0434=_0x594485?_0x52e820[_0xab9b('0x20')]:_0xef8b98[_0xab9b('0x1e')]+_0xef8b98[_0xab9b('0x21')];var _0x48eb29;if(_0x2b0434>=_0x494697){_0x2b0434=_0x494697;_0x48eb29=0xc8;}else{_0x48eb29=0xce;}_0x249a63[_0xab9b('0x1b')](_0x48eb29);return _0x249a63[_0xab9b('0x22')](_0xab9b('0x23'),_0x264500+'-'+_0x2b0434+'/'+_0x494697)[_0xab9b('0x1d')](_0x52e820);}return null;};}function patchUpdates(_0x5795e6){return function(_0x14533a){try{jsonpatch[_0xab9b('0x24')](_0x14533a,_0x5795e6,!![]);}catch(_0x496d65){return BPromise['reject'](_0x496d65);}return _0x14533a[_0xab9b('0x25')]();};}function saveUpdates(_0x18a7f0,_0x4f51fb){return function(_0x15a32a){if(_0x15a32a){return _0x15a32a[_0xab9b('0x26')](_0x18a7f0)[_0xab9b('0x27')](function(_0x5e8daf){return _0x5e8daf;});}return null;};}function removeEntity(_0x418840,_0x2fe197){return function(_0x484929){if(_0x484929){return _0x484929[_0xab9b('0x28')]()[_0xab9b('0x27')](function(){var _0x1c57d6=_0x484929[_0xab9b('0x29')]({'plain':!![]});var _0x53fb44=_0xab9b('0x2a');return db['UserProfileResource'][_0xab9b('0x28')]({'where':{'type':_0x53fb44,'resourceId':_0x1c57d6['id']}})['then'](function(){return _0x484929;});})[_0xab9b('0x27')](function(){_0x418840['status'](0xcc)[_0xab9b('0x1c')]();});}};}function handleEntityNotFound(_0x3d16a1,_0x1294d7){return function(_0x7c8b5c){if(!_0x7c8b5c){_0x3d16a1[_0xab9b('0x1a')](0x194);}return _0x7c8b5c;};}function handleError(_0x268d9c,_0x2206a8){_0x2206a8=_0x2206a8||0x1f4;return function(_0x3804e4){logger[_0xab9b('0x2b')](_0x3804e4[_0xab9b('0x2c')]);if(_0x3804e4[_0xab9b('0x2d')]){delete _0x3804e4[_0xab9b('0x2d')];}_0x268d9c['status'](_0x2206a8)['send'](_0x3804e4);};}exports[_0xab9b('0x2e')]=function(_0x1b5245,_0x3ddc64){var _0x38d0df={},_0x556a18={},_0xe3dfa8={'count':0x0,'rows':[]};return db[_0xab9b('0x2f')][_0xab9b('0x30')]()[_0xab9b('0x27')](function(_0x3e49b3){_0x556a18[_0xab9b('0x31')]=_[_0xab9b('0x32')](_0x3e49b3);_0x556a18[_0xab9b('0x33')]=_[_0xab9b('0x32')](_0x1b5245['query']);_0x556a18[_0xab9b('0x34')]=_[_0xab9b('0x35')](_0x556a18[_0xab9b('0x31')],_0x556a18['query']);_0x38d0df[_0xab9b('0x36')]=_[_0xab9b('0x35')](_0x556a18[_0xab9b('0x31')],qs[_0xab9b('0x37')](_0x1b5245['query']['fields']));_0x38d0df['attributes']=_0x38d0df[_0xab9b('0x36')][_0xab9b('0x38')]?_0x38d0df[_0xab9b('0x36')]:_0x556a18[_0xab9b('0x31')];if(!_0x1b5245[_0xab9b('0x33')][_0xab9b('0x39')](_0xab9b('0x3a'))){_0x38d0df[_0xab9b('0x21')]=qs['limit'](_0x1b5245[_0xab9b('0x33')][_0xab9b('0x21')]);_0x38d0df[_0xab9b('0x1e')]=qs[_0xab9b('0x1e')](_0x1b5245[_0xab9b('0x33')]['offset']);}_0x38d0df[_0xab9b('0x3b')]=qs[_0xab9b('0x3c')](_0x1b5245['query'][_0xab9b('0x3c')]);_0x38d0df[_0xab9b('0x3d')]=qs['filters'](_['pick'](_0x1b5245[_0xab9b('0x33')],_0x556a18[_0xab9b('0x34')]),_0x3e49b3);if(_0x1b5245[_0xab9b('0x33')][_0xab9b('0x3e')]){_0x38d0df[_0xab9b('0x3d')]=_['merge'](_0x38d0df[_0xab9b('0x3d')],{'$or':_[_0xab9b('0x3f')](_0x38d0df['attributes'],function(_0x302b75){var _0x2aea4d={};_0x2aea4d[_0x302b75]={'$like':'%'+_0x1b5245[_0xab9b('0x33')][_0xab9b('0x3e')]+'%'};return _0x2aea4d;})});}_0x38d0df=_[_0xab9b('0x40')]({},_0x38d0df,_0x1b5245[_0xab9b('0x41')]);var _0xfc1d0c={'where':_0x38d0df['where']};return db[_0xab9b('0x2f')][_0xab9b('0x20')](_0xfc1d0c)[_0xab9b('0x27')](function(_0x162a72){_0xe3dfa8[_0xab9b('0x20')]=_0x162a72;if(_0x1b5245[_0xab9b('0x33')][_0xab9b('0x42')]){_0x38d0df[_0xab9b('0x43')]=[{'all':!![]}];}return db['CmCompany'][_0xab9b('0x44')](_0x38d0df);})[_0xab9b('0x27')](function(_0x1223e8){_0xe3dfa8[_0xab9b('0x45')]=_0x1223e8;return _0xe3dfa8;})[_0xab9b('0x27')](respondWithFilteredResult(_0x3ddc64,_0x38d0df))[_0xab9b('0x46')](handleError(_0x3ddc64,null));})[_0xab9b('0x46')](handleError(_0x3ddc64,null));};exports[_0xab9b('0x47')]=function(_0x2af399,_0x1dd612){var _0x3512ff={'raw':![],'where':{'id':_0x2af399[_0xab9b('0x48')]['id']}},_0x55e6e1={};_0x55e6e1[_0xab9b('0x31')]=_['keys'](db[_0xab9b('0x2f')]['rawAttributes']);_0x55e6e1[_0xab9b('0x33')]=_['keys'](_0x2af399[_0xab9b('0x33')]);_0x55e6e1['filters']=_[_0xab9b('0x35')](_0x55e6e1[_0xab9b('0x31')],_0x55e6e1[_0xab9b('0x33')]);_0x3512ff[_0xab9b('0x36')]=_['intersection'](_0x55e6e1[_0xab9b('0x31')],qs['fields'](_0x2af399['query'][_0xab9b('0x37')]));_0x3512ff[_0xab9b('0x36')]=_0x3512ff['attributes'][_0xab9b('0x38')]?_0x3512ff[_0xab9b('0x36')]:_0x55e6e1[_0xab9b('0x31')];if(_0x2af399[_0xab9b('0x33')][_0xab9b('0x42')]){_0x3512ff[_0xab9b('0x43')]=[{'all':!![]}];}_0x3512ff=_[_0xab9b('0x40')]({},_0x3512ff,_0x2af399[_0xab9b('0x41')]);return db[_0xab9b('0x2f')][_0xab9b('0x49')](_0x3512ff)['then'](handleEntityNotFound(_0x1dd612,null))[_0xab9b('0x27')](respondWithResult(_0x1dd612,null))[_0xab9b('0x46')](handleError(_0x1dd612,null));};exports[_0xab9b('0x4a')]=function(_0xbdb7ce,_0x30fc13){return db[_0xab9b('0x2f')]['create'](_0xbdb7ce[_0xab9b('0x4b')],{})[_0xab9b('0x27')](function(_0x522b4f){var _0x1de3ff=_0xbdb7ce[_0xab9b('0x4c')]['get']({'plain':!![]});if(!_0x1de3ff)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x1de3ff['role']===_0xab9b('0x4c')){var _0x2549ae=_0x522b4f[_0xab9b('0x29')]({'plain':!![]});var _0x104bb1='Companies';return db[_0xab9b('0x4d')][_0xab9b('0x49')]({'where':{'name':_0x104bb1,'userProfileId':_0x1de3ff[_0xab9b('0x4e')]},'raw':!![]})['then'](function(_0x30f6a5){if(_0x30f6a5&&_0x30f6a5[_0xab9b('0x4f')]===0x0){return db[_0xab9b('0x50')][_0xab9b('0x4a')]({'name':_0x2549ae[_0xab9b('0x2d')],'resourceId':_0x2549ae['id'],'type':_0x30f6a5[_0xab9b('0x2d')],'sectionId':_0x30f6a5['id']},{})[_0xab9b('0x27')](function(){return _0x522b4f;});}else{return _0x522b4f;}})[_0xab9b('0x46')](function(_0x1dbe02){logger['error'](_0xab9b('0x51'),_0x1dbe02);throw _0x1dbe02;});}return _0x522b4f;})['then'](respondWithResult(_0x30fc13,0xc9))[_0xab9b('0x46')](handleError(_0x30fc13,null));};exports[_0xab9b('0x26')]=function(_0x195749,_0x5d35a5){if(_0x195749['body']['id']){delete _0x195749[_0xab9b('0x4b')]['id'];}return db[_0xab9b('0x2f')]['find']({'where':{'id':_0x195749[_0xab9b('0x48')]['id']}})['then'](handleEntityNotFound(_0x5d35a5,null))['then'](saveUpdates(_0x195749['body'],null))['then'](respondWithResult(_0x5d35a5,null))[_0xab9b('0x46')](handleError(_0x5d35a5,null));};exports[_0xab9b('0x28')]=function(_0x22c968,_0x44d30e){return db['CmCompany'][_0xab9b('0x49')]({'where':{'id':_0x22c968[_0xab9b('0x48')]['id']}})['then'](handleEntityNotFound(_0x44d30e,null))['then'](removeEntity(_0x44d30e,null))[_0xab9b('0x46')](handleError(_0x44d30e,null));};exports['describe']=function(_0x30c8e4,_0x5744f8){return db[_0xab9b('0x2f')][_0xab9b('0x30')]()[_0xab9b('0x27')](respondWithResult(_0x5744f8,null))[_0xab9b('0x46')](handleError(_0x5744f8,null));};exports['addContacts']=function(_0x139b66,_0x2c9e66,_0x4fd911){return db[_0xab9b('0x52')][_0xab9b('0x49')]({'where':{'id':_0x139b66[_0xab9b('0x48')]['id']}})[_0xab9b('0x27')](handleEntityNotFound(_0x2c9e66,null))[_0xab9b('0x27')](function(_0x3d82be){if(_0x3d82be){return _0x3d82be[_0xab9b('0x53')](_0x139b66[_0xab9b('0x4b')]['ids'],_[_0xab9b('0x54')](_0x139b66['body'],[_0xab9b('0x55'),'id'])||{});}})[_0xab9b('0x27')](respondWithResult(_0x2c9e66,null))[_0xab9b('0x46')](handleError(_0x2c9e66,null));};exports[_0xab9b('0x56')]=function(_0x4aedd3,_0x4c0d1c,_0x106b6b){var _0xdd5c90={};var _0x24235d={};var _0x24be86;var _0x14a583;return db['CmCompany'][_0xab9b('0x57')]({'where':{'id':_0x4aedd3[_0xab9b('0x48')]['id']}})[_0xab9b('0x27')](handleEntityNotFound(_0x4c0d1c,null))['then'](function(_0x153b1c){if(_0x153b1c){_0x24be86=_0x153b1c;_0x24235d[_0xab9b('0x31')]=_[_0xab9b('0x32')](db[_0xab9b('0x52')][_0xab9b('0x58')]);_0x24235d[_0xab9b('0x33')]=_[_0xab9b('0x32')](_0x4aedd3[_0xab9b('0x33')]);_0x24235d['filters']=_[_0xab9b('0x35')](_0x24235d[_0xab9b('0x31')],_0x24235d[_0xab9b('0x33')]);_0xdd5c90['attributes']=_[_0xab9b('0x35')](_0x24235d[_0xab9b('0x31')],qs[_0xab9b('0x37')](_0x4aedd3[_0xab9b('0x33')][_0xab9b('0x37')]));_0xdd5c90[_0xab9b('0x36')]=_0xdd5c90['attributes']['length']?_0xdd5c90[_0xab9b('0x36')]:_0x24235d[_0xab9b('0x31')];_0xdd5c90['order']=qs[_0xab9b('0x3c')](_0x4aedd3[_0xab9b('0x33')]['sort']);_0xdd5c90[_0xab9b('0x3d')]=qs[_0xab9b('0x34')](_['pick'](_0x4aedd3[_0xab9b('0x33')],_0x24235d[_0xab9b('0x34')]));if(_0x4aedd3[_0xab9b('0x33')][_0xab9b('0x3e')]){_0xdd5c90[_0xab9b('0x3d')]=_[_0xab9b('0x40')](_0xdd5c90[_0xab9b('0x3d')],{'$or':_[_0xab9b('0x3f')](_0xdd5c90[_0xab9b('0x36')],function(_0x43e517){var _0x4f1b9c={};_0x4f1b9c[_0x43e517]={'$like':'%'+_0x4aedd3[_0xab9b('0x33')][_0xab9b('0x3e')]+'%'};return _0x4f1b9c;})});}_0xdd5c90=_[_0xab9b('0x40')]({},_0xdd5c90,_0x4aedd3[_0xab9b('0x41')]);return _0x24be86[_0xab9b('0x56')](_0xdd5c90);}})[_0xab9b('0x27')](function(_0x1288bd){if(_0x1288bd){_0x14a583=_0x1288bd['length'];if(!_0x4aedd3[_0xab9b('0x33')][_0xab9b('0x39')](_0xab9b('0x3a'))){_0xdd5c90[_0xab9b('0x21')]=qs[_0xab9b('0x21')](_0x4aedd3[_0xab9b('0x33')][_0xab9b('0x21')]);_0xdd5c90[_0xab9b('0x1e')]=qs[_0xab9b('0x1e')](_0x4aedd3['query'][_0xab9b('0x1e')]);}return _0x24be86[_0xab9b('0x56')](_0xdd5c90);}})[_0xab9b('0x27')](function(_0x597425){if(_0x597425){return _0x597425?{'count':_0x14a583,'rows':_0x597425}:null;}})[_0xab9b('0x27')](respondWithResult(_0x4c0d1c,null))[_0xab9b('0x46')](handleError(_0x4c0d1c,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5173=['util','../../config/logger','api','moment','request-promise','path','../../config/environment','./cmCompany.attributes','exports','define','CmCompany','cm_companies','lodash'];(function(_0x51941c,_0x3fe3b6){var _0xf641fd=function(_0x5d04c4){while(--_0x5d04c4){_0x51941c['push'](_0x51941c['shift']());}};_0xf641fd(++_0x3fe3b6);}(_0x5173,0x151));var _0x3517=function(_0x19c3f4,_0x4f5a27){_0x19c3f4=_0x19c3f4-0x0;var _0x5a801e=_0x5173[_0x19c3f4];return _0x5a801e;};'use strict';var _=require(_0x3517('0x0'));var util=require(_0x3517('0x1'));var logger=require(_0x3517('0x2'))(_0x3517('0x3'));var moment=require(_0x3517('0x4'));var BPromise=require('bluebird');var rp=require(_0x3517('0x5'));var fs=require('fs');var path=require(_0x3517('0x6'));var rimraf=require('rimraf');var config=require(_0x3517('0x7'));var attributes=require(_0x3517('0x8'));module[_0x3517('0x9')]=function(_0x2b3fb8,_0x2d7934){return _0x2b3fb8[_0x3517('0xa')](_0x3517('0xb'),attributes,{'tableName':_0x3517('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x88df=['cm_companies','util','../../config/logger','api','request-promise','path','rimraf','../../config/environment','./cmCompany.attributes','exports','define','CmCompany'];(function(_0x59740c,_0xe78840){var _0x3c8b1e=function(_0x3c59df){while(--_0x3c59df){_0x59740c['push'](_0x59740c['shift']());}};_0x3c8b1e(++_0xe78840);}(_0x88df,0x91));var _0xf88d=function(_0x1af73b,_0x59b00c){_0x1af73b=_0x1af73b-0x0;var _0x1d5072=_0x88df[_0x1af73b];return _0x1d5072;};'use strict';var _=require('lodash');var util=require(_0xf88d('0x0'));var logger=require(_0xf88d('0x1'))(_0xf88d('0x2'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xf88d('0x3'));var fs=require('fs');var path=require(_0xf88d('0x4'));var rimraf=require(_0xf88d('0x5'));var config=require(_0xf88d('0x6'));var attributes=require(_0xf88d('0x7'));module[_0xf88d('0x8')]=function(_0x256b18,_0xf3599c){return _0x256b18[_0xf88d('0x9')](_0xf88d('0xa'),attributes,{'tableName':_0xf88d('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xeec1=['message','result','catch','lodash','util','bluebird','randomstring','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','request','info','CmCompany,\x20%s,\x20%s','CmCompany,\x20%s,\x20%s,\x20%s','request\x20sent','error','code'];(function(_0x46965c,_0x3eac03){var _0x1df1f0=function(_0x3c2442){while(--_0x3c2442){_0x46965c['push'](_0x46965c['shift']());}};_0x1df1f0(++_0x3eac03);}(_0xeec1,0x107));var _0x1eec=function(_0x55832d,_0x177fa0){_0x55832d=_0x55832d-0x0;var _0x13a639=_0xeec1[_0x55832d];return _0x13a639;};'use strict';var _=require(_0x1eec('0x0'));var util=require(_0x1eec('0x1'));var moment=require('moment');var BPromise=require(_0x1eec('0x2'));var rs=require(_0x1eec('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x1eec('0x4'))['db'];var utils=require(_0x1eec('0x5'));var logger=require('../../config/logger')(_0x1eec('0x6'));var config=require(_0x1eec('0x7'));var jayson=require(_0x1eec('0x8'));var client=jayson[_0x1eec('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x59be02,_0x394aed,_0x8fef4e){return new BPromise(function(_0x5ac948,_0x5cd635){return client[_0x1eec('0xa')](_0x59be02,_0x8fef4e)['then'](function(_0x29bf2d){logger[_0x1eec('0xb')](_0x1eec('0xc'),_0x394aed,'request\x20sent');logger['debug'](_0x1eec('0xd'),_0x394aed,_0x1eec('0xe'),JSON['stringify'](_0x29bf2d));if(_0x29bf2d[_0x1eec('0xf')]){if(_0x29bf2d[_0x1eec('0xf')][_0x1eec('0x10')]===0x1f4){logger['error'](_0x1eec('0xc'),_0x394aed,_0x29bf2d['error'][_0x1eec('0x11')]);return _0x5cd635(_0x29bf2d['error'][_0x1eec('0x11')]);}logger[_0x1eec('0xf')](_0x1eec('0xc'),_0x394aed,_0x29bf2d[_0x1eec('0xf')][_0x1eec('0x11')]);return _0x5ac948(_0x29bf2d[_0x1eec('0xf')][_0x1eec('0x11')]);}else{logger['info'](_0x1eec('0xc'),_0x394aed,_0x1eec('0xe'));_0x5ac948(_0x29bf2d[_0x1eec('0x12')][_0x1eec('0x11')]);}})[_0x1eec('0x13')](function(_0x2fa017){logger[_0x1eec('0xf')](_0x1eec('0xc'),_0x394aed,_0x2fa017);_0x5cd635(_0x2fa017);});});}
\ No newline at end of file
+var _0x1ef0=['client','http','request','then','info','request\x20sent','debug','CmCompany,\x20%s,\x20%s,\x20%s','stringify','error','CmCompany,\x20%s,\x20%s','message','catch','util','moment','bluebird','randomstring','ioredis','../../config/utils','rpc','../../config/environment','jayson/promise'];(function(_0x2404b7,_0x507423){var _0x3e51cb=function(_0x1f7961){while(--_0x1f7961){_0x2404b7['push'](_0x2404b7['shift']());}};_0x3e51cb(++_0x507423);}(_0x1ef0,0x115));var _0x01ef=function(_0x30382f,_0x1df507){_0x30382f=_0x30382f-0x0;var _0x4e3368=_0x1ef0[_0x30382f];return _0x4e3368;};'use strict';var _=require('lodash');var util=require(_0x01ef('0x0'));var moment=require(_0x01ef('0x1'));var BPromise=require(_0x01ef('0x2'));var rs=require(_0x01ef('0x3'));var fs=require('fs');var Redis=require(_0x01ef('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x01ef('0x5'));var logger=require('../../config/logger')(_0x01ef('0x6'));var config=require(_0x01ef('0x7'));var jayson=require(_0x01ef('0x8'));var client=jayson[_0x01ef('0x9')][_0x01ef('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x50a3be,_0x533fb3,_0x3e4e39){return new BPromise(function(_0xc813a8,_0x592ca0){return client[_0x01ef('0xb')](_0x50a3be,_0x3e4e39)[_0x01ef('0xc')](function(_0x236dba){logger[_0x01ef('0xd')]('CmCompany,\x20%s,\x20%s',_0x533fb3,_0x01ef('0xe'));logger[_0x01ef('0xf')](_0x01ef('0x10'),_0x533fb3,'request\x20sent',JSON[_0x01ef('0x11')](_0x236dba));if(_0x236dba[_0x01ef('0x12')]){if(_0x236dba['error']['code']===0x1f4){logger[_0x01ef('0x12')](_0x01ef('0x13'),_0x533fb3,_0x236dba[_0x01ef('0x12')][_0x01ef('0x14')]);return _0x592ca0(_0x236dba[_0x01ef('0x12')]['message']);}logger[_0x01ef('0x12')](_0x01ef('0x13'),_0x533fb3,_0x236dba[_0x01ef('0x12')][_0x01ef('0x14')]);return _0xc813a8(_0x236dba[_0x01ef('0x12')][_0x01ef('0x14')]);}else{logger[_0x01ef('0xd')](_0x01ef('0x13'),_0x533fb3,_0x01ef('0xe'));_0xc813a8(_0x236dba['result'][_0x01ef('0x14')]);}})[_0x01ef('0x15')](function(_0xbf5f59){logger[_0x01ef('0x12')](_0x01ef('0x13'),_0x533fb3,_0xbf5f59);_0x592ca0(_0xbf5f59);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6088=['show','post','create','/:id/contacts','addContacts','put','/:id','update','destroy','exports','multer','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','./cmCompany.controller','get','isAuthenticated','/describe'];(function(_0x21d2c4,_0x184370){var _0x3f4bdd=function(_0x15638d){while(--_0x15638d){_0x21d2c4['push'](_0x21d2c4['shift']());}};_0x3f4bdd(++_0x184370);}(_0x6088,0xa4));var _0x8608=function(_0xd108c5,_0x5dedbb){_0xd108c5=_0xd108c5-0x0;var _0x1d5bd4=_0x6088[_0xd108c5];return _0x1d5bd4;};'use strict';var multer=require(_0x8608('0x0'));var util=require(_0x8608('0x1'));var path=require('path');var timeout=require(_0x8608('0x2'));var express=require(_0x8608('0x3'));var router=express[_0x8608('0x4')]();var fs_extra=require(_0x8608('0x5'));var auth=require(_0x8608('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0x8608('0x7'));var controller=require(_0x8608('0x8'));router[_0x8608('0x9')]('/',auth[_0x8608('0xa')](),controller['index']);router[_0x8608('0x9')](_0x8608('0xb'),auth[_0x8608('0xa')](),controller['describe']);router[_0x8608('0x9')]('/:id',auth[_0x8608('0xa')](),controller[_0x8608('0xc')]);router[_0x8608('0x9')]('/:id/contacts',auth['isAuthenticated'](),controller['getContacts']);router[_0x8608('0xd')]('/',auth['isAuthenticated'](),controller[_0x8608('0xe')]);router[_0x8608('0xd')](_0x8608('0xf'),auth['isAuthenticated'](),controller[_0x8608('0x10')]);router[_0x8608('0x11')](_0x8608('0x12'),auth[_0x8608('0xa')](),controller[_0x8608('0x13')]);router['delete'](_0x8608('0x12'),auth[_0x8608('0xa')](),controller[_0x8608('0x14')]);module[_0x8608('0x15')]=router;
\ No newline at end of file
+var _0x75dd=['post','create','put','update','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./cmCompany.controller','get','isAuthenticated','index','describe','/:id','show','/:id/contacts','getContacts'];(function(_0x344eae,_0x396451){var _0x1eed4e=function(_0x59f4f2){while(--_0x59f4f2){_0x344eae['push'](_0x344eae['shift']());}};_0x1eed4e(++_0x396451);}(_0x75dd,0x1c9));var _0xd75d=function(_0x53c434,_0x29ae25){_0x53c434=_0x53c434-0x0;var _0x481514=_0x75dd[_0x53c434];return _0x481514;};'use strict';var multer=require(_0xd75d('0x0'));var util=require(_0xd75d('0x1'));var path=require(_0xd75d('0x2'));var timeout=require(_0xd75d('0x3'));var express=require(_0xd75d('0x4'));var router=express[_0xd75d('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0xd75d('0x6'));var interaction=require(_0xd75d('0x7'));var config=require(_0xd75d('0x8'));var controller=require(_0xd75d('0x9'));router[_0xd75d('0xa')]('/',auth[_0xd75d('0xb')](),controller[_0xd75d('0xc')]);router[_0xd75d('0xa')]('/describe',auth[_0xd75d('0xb')](),controller[_0xd75d('0xd')]);router[_0xd75d('0xa')](_0xd75d('0xe'),auth['isAuthenticated'](),controller[_0xd75d('0xf')]);router[_0xd75d('0xa')](_0xd75d('0x10'),auth[_0xd75d('0xb')](),controller[_0xd75d('0x11')]);router[_0xd75d('0x12')]('/',auth[_0xd75d('0xb')](),controller[_0xd75d('0x13')]);router['post'](_0xd75d('0x10'),auth[_0xd75d('0xb')](),controller['addContacts']);router[_0xd75d('0x14')](_0xd75d('0xe'),auth['isAuthenticated'](),controller[_0xd75d('0x15')]);router[_0xd75d('0x16')]('/:id',auth['isAuthenticated'](),controller[_0xd75d('0x17')]);module[_0xd75d('0x18')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1240=['exports','STRING','TEXT','INTEGER','UNSIGNED','DATE','NOW','lodash','sequelize'];(function(_0x35faf8,_0xd7ffe5){var _0x4b65a4=function(_0x355da4){while(--_0x355da4){_0x35faf8['push'](_0x35faf8['shift']());}};_0x4b65a4(++_0xd7ffe5);}(_0x1240,0xa0));var _0x0124=function(_0x42bdad,_0x12836c){_0x42bdad=_0x42bdad-0x0;var _0x122626=_0x1240[_0x42bdad];return _0x122626;};'use strict';var _=require(_0x0124('0x0'));var Sequelize=require(_0x0124('0x1'));module[_0x0124('0x2')]={'firstName':{'type':Sequelize[_0x0124('0x3')],'allowNull':![]},'lastName':{'type':Sequelize['STRING']},'street':{'type':Sequelize['STRING']},'postalCode':{'type':Sequelize[_0x0124('0x3')]},'city':{'type':Sequelize[_0x0124('0x3')]},'country':{'type':Sequelize[_0x0124('0x3')]},'dateOfBirth':{'type':Sequelize[_0x0124('0x3')]},'description':{'type':Sequelize[_0x0124('0x4')]},'phone':{'type':Sequelize[_0x0124('0x3')]},'mobile':{'type':Sequelize[_0x0124('0x3')]},'fax':{'type':Sequelize[_0x0124('0x3')]},'email':{'type':Sequelize['STRING']},'url':{'type':Sequelize[_0x0124('0x3')]},'facebook':{'type':Sequelize[_0x0124('0x3')]},'fb_data':{'type':Sequelize[_0x0124('0x3')]},'twitter':{'type':Sequelize[_0x0124('0x3')]},'skype':{'type':Sequelize[_0x0124('0x3')]},'teams':{'type':Sequelize[_0x0124('0x3')]},'viber':{'type':Sequelize[_0x0124('0x3')]},'line':{'type':Sequelize[_0x0124('0x3')]},'wechat':{'type':Sequelize[_0x0124('0x3')]},'telegram':{'type':Sequelize['STRING']},'UserId':{'type':Sequelize['INTEGER']},'priority':{'type':Sequelize[_0x0124('0x5')](0x2)[_0x0124('0x6')],'defaultValue':0x2,'validate':{'min':0x0,'max':0x4}},'scheduledat':{'type':Sequelize[_0x0124('0x7')],'defaultValue':Sequelize[_0x0124('0x8')]}};
\ No newline at end of file
+var _0xcc4b=['UNSIGNED','sequelize','STRING','TEXT','INTEGER'];(function(_0x18ca25,_0x1f5707){var _0x997555=function(_0x55ce92){while(--_0x55ce92){_0x18ca25['push'](_0x18ca25['shift']());}};_0x997555(++_0x1f5707);}(_0xcc4b,0x196));var _0xbcc4=function(_0x34ac75,_0x75b3a2){_0x34ac75=_0x34ac75-0x0;var _0x389365=_0xcc4b[_0x34ac75];return _0x389365;};'use strict';var _=require('lodash');var Sequelize=require(_0xbcc4('0x0'));module['exports']={'firstName':{'type':Sequelize['STRING'],'allowNull':![]},'lastName':{'type':Sequelize[_0xbcc4('0x1')]},'street':{'type':Sequelize[_0xbcc4('0x1')]},'postalCode':{'type':Sequelize[_0xbcc4('0x1')]},'city':{'type':Sequelize[_0xbcc4('0x1')]},'country':{'type':Sequelize[_0xbcc4('0x1')]},'dateOfBirth':{'type':Sequelize[_0xbcc4('0x1')]},'description':{'type':Sequelize[_0xbcc4('0x2')]},'phone':{'type':Sequelize[_0xbcc4('0x1')]},'mobile':{'type':Sequelize['STRING']},'fax':{'type':Sequelize[_0xbcc4('0x1')]},'email':{'type':Sequelize[_0xbcc4('0x1')]},'url':{'type':Sequelize[_0xbcc4('0x1')]},'facebook':{'type':Sequelize['STRING']},'fb_data':{'type':Sequelize[_0xbcc4('0x1')]},'twitter':{'type':Sequelize[_0xbcc4('0x1')]},'skype':{'type':Sequelize[_0xbcc4('0x1')]},'teams':{'type':Sequelize['STRING']},'viber':{'type':Sequelize[_0xbcc4('0x1')]},'line':{'type':Sequelize[_0xbcc4('0x1')]},'wechat':{'type':Sequelize[_0xbcc4('0x1')]},'telegram':{'type':Sequelize[_0xbcc4('0x1')]},'UserId':{'type':Sequelize[_0xbcc4('0x3')]},'priority':{'type':Sequelize['INTEGER'](0x2)[_0xbcc4('0x4')],'defaultValue':0x2,'validate':{'min':0x0,'max':0x4}},'scheduledat':{'type':Sequelize['DATE'],'defaultValue':Sequelize['NOW']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xccc3=['startCase','Website','Account','closedAt','disposition','secondDisposition','UserId','Owner','chat','customerIp','deviceModel','ratingType','ratingValue','referer','subject','substatus','externalUrl','Interaction','flatten','sortBy','reverse','moment','bluebird','util','path','squel','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../mysqldb','redis','defaults','localhost','register','status','json','offset','undefined','limit','count','set','Content-Range','update','destroy','then','sendStatus','stack','name','CmContact','describe','keys','cf_','push','CmCustomField','findOne','trimStart','all','length','fieldType','type','model','query','intersection','attributes','fields','nolimit','order','sort','where','filters','select','field','color','from','tools_tags','cm_contacts','left_join','cm_user_has_contacts','ct.CmContactId\x20=\x20c.id','c.deletedAt\x20IS\x20NULL','expr','search','parseSearch','sqlOperator','conditions','find','Tag','value','split','map','forEach','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','uc.UserId\x20=\x20?','datetime','castTo','DATE','buildExpression','text','end','hasOwnProperty','filter','isNil','isEmpty','ListId','c.ListId\x20IN\x20?','concat','CONCAT_WS(\x27\x20\x27,\x20c.firstName,\x20c.lastName,\x20c.email)\x20LIKE\x20?','\x20=\x20?','isArray','tag','replace','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','c.phone\x20LIKE\x20?','c.mobile\x20LIKE\x20?','isEmail','c.email\x20LIKE\x20?','c.firstName\x20LIKE\x20?','c.lastName\x20LIKE\x20?','group','c.id','Sequelize','SELECT','clone','DESC','having','t.id\x20IN\x20?','resolve','role','agent','some','User','user','getLists','c.ListId\x20IS\x20NULL','toString','sequelize','keyBy','merge','c.firstName','c.mobile','c.email','c.ListId','c.createdAt','c.deletedAt','GROUP_CONCAT(DISTINCT\x20t.id)','TagIds','rows','catch','tags','startsWith','columnName','displayName','analytics','findAll','alias','custom','values','body','get','mergeWith','join','[CmContact][merge]\x20to\x20%s\x20from\x20%s','CmHopper','info','[CmContact][merge][destroy][CmHopper],\x20%s','create','ChatInteraction','ChatMessage','ChatOfflineMessage','MailInteraction','MailMessage','SmsInteraction','FaxInteraction','FaxMessage','OpenchannelInteraction','OpenchannelMessage','ReportAgentPreview','VoiceCallReport','FaxQueueReport','SmsQueueReport','JscriptySessionReport','WhatsappInteraction','WhatsappMessage','WhatsappQueueReport','bulkCreate','each','duplicates','$or','spread','params','$and','omit','format','cf_%d','table','setFields','id\x20=\x20?','toParam','phone','getTags','rawAttributes','setTags','ids','ContactId','options','includeAll','include','getHopperHistories','CmHopperHistory','pick','getHopperFinals','CmHopperFinal','getJscriptySessions','uploadCsv','No\x20ListId\x20specified','binding_keys','binding_values','socket_timestamp','Unable\x20to\x20synchronize\x20socket,\x20no\x20timestamp\x20passed','Incorrect\x20binding\x20parameters\x20passed!','zipObject','No\x20phone\x20column\x20specified','No\x20firstName\x20column\x20specified','server/files/tmp','file','filename','0777','fork','CompanyId','File\x20uploaded\x20correctly!','pid','send','upload','createReadStream','parse','meta','import','binding','firstName','../../components/import/cm/csv2','stringify','message','start\x20child\x20process\x20correctly!','exit','error\x20child\x20process','getJourney','mail','sms','openchannel','fax','whatsapp','voice','channel','includes','toLowerCase','range','isValid','Invalid\x20date\x20for\x20range\x20from\x20filter','Invalid\x20date\x20for\x20range\x20to\x20filter','Invalid\x20createdAt\x20filter','uniqueid','source','destination','callerid','duration','note','createdAt','userSecondDisposition','fullname','findAndCountAll'];(function(_0x4adf2f,_0x538e12){var _0x1e719f=function(_0x216a96){while(--_0x216a96){_0x4adf2f['push'](_0x4adf2f['shift']());}};_0x1e719f(++_0x538e12);}(_0xccc3,0x128));var _0x3ccc=function(_0x57b54c,_0x54ce0d){_0x57b54c=_0x57b54c-0x0;var _0x59cc19=_0xccc3[_0x57b54c];return _0x59cc19;};'use strict';var moment=require(_0x3ccc('0x0'));var BPromise=require(_0x3ccc('0x1'));var util=require(_0x3ccc('0x2'));var path=require(_0x3ccc('0x3'));var fs=require('fs');var _=require('lodash');var squel=require(_0x3ccc('0x4'));var Papa=require(_0x3ccc('0x5'));var Redis=require(_0x3ccc('0x6'));var qs=require(_0x3ccc('0x7'));var as=require(_0x3ccc('0x8'));var logger=require(_0x3ccc('0x9'))(_0x3ccc('0xa'));var config=require(_0x3ccc('0xb'));var db=require(_0x3ccc('0xc'))['db'];config[_0x3ccc('0xd')]=_[_0x3ccc('0xe')](config[_0x3ccc('0xd')],{'host':_0x3ccc('0xf'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x3ccc('0xd')]));require('./cmContact.socket')[_0x3ccc('0x10')](socket);function respondWithResult(_0x5abfe5,_0x475ce9){_0x475ce9=_0x475ce9||0xc8;return function(_0x1ce5cc){if(_0x1ce5cc){return _0x5abfe5[_0x3ccc('0x11')](_0x475ce9)[_0x3ccc('0x12')](_0x1ce5cc);}};}function respondWithFilteredResult(_0x5d8d0a,_0x474d3f){return function(_0x500e04){if(_0x500e04){var _0x28777a=typeof _0x474d3f[_0x3ccc('0x13')]===_0x3ccc('0x14')&&typeof _0x474d3f[_0x3ccc('0x15')]===_0x3ccc('0x14');var _0x23867f=_0x500e04[_0x3ccc('0x16')];var _0x57cce5=_0x28777a?0x0:_0x474d3f[_0x3ccc('0x13')];var _0xa3a790=_0x28777a?_0x500e04[_0x3ccc('0x16')]:_0x474d3f[_0x3ccc('0x13')]+_0x474d3f['limit'];var _0x339fa9;if(_0xa3a790>=_0x23867f){_0xa3a790=_0x23867f;_0x339fa9=0xc8;}else{_0x339fa9=0xce;}_0x5d8d0a[_0x3ccc('0x11')](_0x339fa9);return _0x5d8d0a[_0x3ccc('0x17')](_0x3ccc('0x18'),_0x57cce5+'-'+_0xa3a790+'/'+_0x23867f)[_0x3ccc('0x12')](_0x500e04);}return null;};}function saveUpdates(_0x27b9ba){return function(_0x258091){if(_0x258091){return _0x258091[_0x3ccc('0x19')](_0x27b9ba)['then'](function(_0x4e0961){return _0x4e0961;});}return null;};}function removeEntity(_0x33235b){return function(_0x159577){if(_0x159577){return _0x159577[_0x3ccc('0x1a')]()[_0x3ccc('0x1b')](function(){_0x33235b[_0x3ccc('0x11')](0xcc)['end']();});}};}function handleEntityNotFound(_0x56b177){return function(_0x364980){if(!_0x364980){_0x56b177[_0x3ccc('0x1c')](0x194);}return _0x364980;};}function handleError(_0x57e211,_0x12ccf9){_0x12ccf9=_0x12ccf9||0x1f4;return function(_0x2b33a5){logger['error'](_0x2b33a5[_0x3ccc('0x1d')]);if(_0x2b33a5[_0x3ccc('0x1e')]){delete _0x2b33a5['name'];}_0x57e211[_0x3ccc('0x11')](_0x12ccf9)['send'](_0x2b33a5);};}exports['index']=function(_0x5c1448,_0x45eeef){var _0x4b8b8d={},_0x5190d1={},_0xefd03c={'count':0x0,'rows':[]};return db[_0x3ccc('0x1f')][_0x3ccc('0x20')]()[_0x3ccc('0x1b')](function(_0x2fc228){var _0x48ab0a=[];for(var _0x30ec7b=0x0;_0x30ec7b<Object[_0x3ccc('0x21')](_0x2fc228)['length'];_0x30ec7b++){var _0x126f5b=Object[_0x3ccc('0x21')](_0x2fc228)[_0x30ec7b];if(_['startsWith'](_0x126f5b,_0x3ccc('0x22'))){_0x48ab0a[_0x3ccc('0x23')](db[_0x3ccc('0x24')][_0x3ccc('0x25')]({'where':{'id':_[_0x3ccc('0x26')](_0x126f5b,_0x3ccc('0x22'))},'raw':!![]}));}}return BPromise[_0x3ccc('0x27')](_0x48ab0a)[_0x3ccc('0x1b')](function(_0x38a85d){for(var _0x4c7b86=0x0;_0x4c7b86<_0x38a85d[_0x3ccc('0x28')];_0x4c7b86++){if(_0x38a85d[_0x4c7b86]){var _0x4c8f84=_0x3ccc('0x22')+_0x38a85d[_0x4c7b86]['id'];var _0x5dca4f=_0x2fc228[_0x4c8f84];_0x5dca4f[_0x3ccc('0x29')]=_0x38a85d[_0x4c7b86][_0x3ccc('0x2a')];}}return _0x2fc228;});})[_0x3ccc('0x1b')](function(_0x389bbc){_0x5190d1[_0x3ccc('0x2b')]=_[_0x3ccc('0x21')](_0x389bbc);_0x5190d1[_0x3ccc('0x2c')]=_[_0x3ccc('0x21')](_0x5c1448[_0x3ccc('0x2c')]);_0x5190d1['filters']=_[_0x3ccc('0x2d')](_0x5190d1['model'],_0x5190d1[_0x3ccc('0x2c')]);_0x4b8b8d[_0x3ccc('0x2e')]=_['intersection'](_0x5190d1[_0x3ccc('0x2b')],qs[_0x3ccc('0x2f')](_0x5c1448[_0x3ccc('0x2c')][_0x3ccc('0x2f')]));_0x4b8b8d[_0x3ccc('0x2e')]=_0x4b8b8d['attributes'][_0x3ccc('0x28')]?_0x4b8b8d[_0x3ccc('0x2e')]:_0x5190d1[_0x3ccc('0x2b')];if(!_0x5c1448[_0x3ccc('0x2c')]['hasOwnProperty'](_0x3ccc('0x30'))){_0x4b8b8d[_0x3ccc('0x15')]=qs[_0x3ccc('0x15')](_0x5c1448[_0x3ccc('0x2c')]['limit']);_0x4b8b8d[_0x3ccc('0x13')]=qs[_0x3ccc('0x13')](_0x5c1448[_0x3ccc('0x2c')]['offset']);}_0x4b8b8d[_0x3ccc('0x31')]=qs[_0x3ccc('0x32')](_0x5c1448['query'][_0x3ccc('0x32')]);_0x4b8b8d[_0x3ccc('0x33')]=qs['filters'](_['pick'](_0x5c1448[_0x3ccc('0x2c')],_0x5190d1[_0x3ccc('0x34')]),_0x389bbc);var _0x2c6518=[];var _0x2d3ae5=squel[_0x3ccc('0x35')]()[_0x3ccc('0x36')]('id')[_0x3ccc('0x36')](_0x3ccc('0x1e'))[_0x3ccc('0x36')](_0x3ccc('0x37'))[_0x3ccc('0x38')](_0x3ccc('0x39'));var _0x165811=squel['select']()[_0x3ccc('0x38')](_0x3ccc('0x3a'),'c')[_0x3ccc('0x3b')](_0x3ccc('0x3c'),'uc','uc.CmContactId\x20=\x20c.id')[_0x3ccc('0x3b')]('cm_contact_has_tags','ct',_0x3ccc('0x3d'))['left_join'](_0x3ccc('0x39'),'t','t.id\x20=\x20ct.TagId')[_0x3ccc('0x33')](_0x3ccc('0x3e'));var _0x32274e=squel['expr']();var _0x2cca1d=[];var _0xac9ac7=squel[_0x3ccc('0x3f')]();var _0x39cbf8;if(_0x5c1448[_0x3ccc('0x2c')][_0x3ccc('0x40')]){_0x39cbf8=as[_0x3ccc('0x41')](_0x5c1448[_0x3ccc('0x2c')][_0x3ccc('0x40')]);var _0x2cfc21=_0x39cbf8[_0x3ccc('0x42')];for(var _0x521e9e=0x0;_0x521e9e<_0x39cbf8[_0x3ccc('0x43')][_0x3ccc('0x28')];_0x521e9e++){var _0x55d801=_0x39cbf8[_0x3ccc('0x43')][_0x521e9e];var _0x167ecb='c';var _0x26abaa=_(_0x389bbc)['keys']()[_0x3ccc('0x44')](function(_0x3bd270){return _0x3bd270===_0x55d801[_0x3ccc('0x36')];});if(_0x26abaa)_0x26abaa=_0x389bbc[_0x55d801[_0x3ccc('0x36')]];if(!_0x26abaa){if(_0x55d801[_0x3ccc('0x36')]===_0x3ccc('0x45')){var _0x2cad63=_0x55d801[_0x3ccc('0x46')][_0x3ccc('0x47')](',')[_0x3ccc('0x48')](function(_0x5c658f){return Number(_0x5c658f);});_0x2cad63[_0x3ccc('0x49')](function(_0x258c48){_0xac9ac7['or'](_0x3ccc('0x4a'),'%,'+_0x258c48+',%');});_0x2cca1d=_['union'](_0x2cca1d,_0x2cad63);}else if(_0x55d801['field']==='User'){_0x32274e['and'](_0x3ccc('0x4b'),_0x55d801[_0x3ccc('0x46')]);}}else{if(_0x55d801[_0x3ccc('0x36')]==='dateOfBirth'||_0x26abaa[_0x3ccc('0x29')]===_0x3ccc('0x4c'))_0x55d801[_0x3ccc('0x4d')]=_0x3ccc('0x4e');var _0x1a9e27=as[_0x3ccc('0x4f')](_0x167ecb,_0x26abaa[_0x3ccc('0x2a')],_0x55d801);_0x32274e[_0x2cfc21](_0x1a9e27[_0x3ccc('0x50')],_0x1a9e27[_0x3ccc('0x46')]['start'],_0x1a9e27[_0x3ccc('0x46')][_0x3ccc('0x51')]);}}}else{var _0x16ab8b=_(Object[_0x3ccc('0x21')](_0x5c1448[_0x3ccc('0x2c')]))[_0x3ccc('0x48')](function(_0x586268){return _0x389bbc[_0x3ccc('0x52')](_0x586268)?_0x586268:undefined;})[_0x3ccc('0x53')](function(_0x51f0b9){return!_[_0x3ccc('0x54')](_0x51f0b9);})['value']();if(_0x5c1448[_0x3ccc('0x2c')]['Contact'])_0x16ab8b['push']('Contact');if(!_[_0x3ccc('0x55')](_0x16ab8b)){_0x16ab8b[_0x3ccc('0x49')](function(_0x4b5ec6){if(_0x4b5ec6===_0x3ccc('0x56')){_0x165811['where'](_0x3ccc('0x57'),[][_0x3ccc('0x58')](_0x5c1448[_0x3ccc('0x2c')][_0x4b5ec6]));}else if(_0x4b5ec6==='Contact'){var _0x530a78='%'+_0x5c1448[_0x3ccc('0x2c')][_0x4b5ec6]+'%';_0x165811[_0x3ccc('0x33')](_0x3ccc('0x59'),_0x530a78);}else{_0x165811[_0x3ccc('0x33')]('c.'+_0x4b5ec6+_0x3ccc('0x5a'),_0x5c1448[_0x3ccc('0x2c')][_0x4b5ec6]);}});}if(_0x5c1448[_0x3ccc('0x2c')]['tag']){_0x2cca1d=_[_0x3ccc('0x5b')](_0x5c1448[_0x3ccc('0x2c')][_0x3ccc('0x5c')])?_0x5c1448[_0x3ccc('0x2c')]['tag']:new Array(_0x5c1448[_0x3ccc('0x2c')]['tag']);_0x2cca1d[_0x3ccc('0x49')](function(_0x114f79){_0xac9ac7['or'](_0x3ccc('0x4a'),'%,'+_0x114f79+',%');});}if(_0x5c1448[_0x3ccc('0x2c')][_0x3ccc('0x53')]){var _0x41baf2=_0x5c1448[_0x3ccc('0x2c')][_0x3ccc('0x53')][_0x3ccc('0x5d')]('\x5c','\x5c\x5c')[_0x3ccc('0x5d')](/'/g,'\x27\x27');if(_0x41baf2['split']('\x20')[_0x3ccc('0x28')]>0x1){_0x32274e['or'](_0x3ccc('0x5e'),qs[_0x3ccc('0x5f')](_0x41baf2),null);}else{if(qs['isNumeric'](_0x41baf2)){_0x32274e['or']('c.id\x20LIKE\x20?',_0x41baf2+'%');_0x32274e['or'](_0x3ccc('0x60'),_0x41baf2+'%');_0x32274e['or'](_0x3ccc('0x61'),_0x41baf2+'%');_0x32274e['or']('c.fax\x20LIKE\x20?',_0x41baf2+'%');}else if(qs[_0x3ccc('0x62')](_0x41baf2)){_0x32274e['or'](_0x3ccc('0x63'),_0x41baf2+'%');}else{_0x32274e['or'](_0x3ccc('0x64'),'%'+_0x41baf2+'%');_0x32274e['or'](_0x3ccc('0x65'),'%'+_0x41baf2+'%');_0x32274e['or'](_0x3ccc('0x63'),'%'+_0x41baf2+'%');}}}}_0x165811[_0x3ccc('0x33')](_0x32274e);_0x165811[_0x3ccc('0x66')](_0x3ccc('0x67'));var _0x1a7d5f={'type':db[_0x3ccc('0x68')]['QueryTypes'][_0x3ccc('0x69')],'raw':!![]};var _0x20fe90=_0x165811[_0x3ccc('0x6a')]()[_0x3ccc('0x36')]('c.id');if(_0x4b8b8d[_0x3ccc('0x31')]){_0x4b8b8d[_0x3ccc('0x31')][_0x3ccc('0x49')](function(_0x432ea7){_0x165811['order']('c.'+_0x432ea7[0x0],_0x432ea7[0x1]===_0x3ccc('0x6b')?![]:!![]);});}if(!_[_0x3ccc('0x55')](_0x2cca1d)){_0x165811[_0x3ccc('0x6c')](_0xac9ac7);_0x20fe90['where'](_0x3ccc('0x6d'),_0x2cca1d);}BPromise[_0x3ccc('0x6e')]()[_0x3ccc('0x1b')](function(){if(!_0x39cbf8)return;if(_0x5c1448['user'][_0x3ccc('0x6f')]!==_0x3ccc('0x70'))return;if(!_[_0x3ccc('0x71')](_0x39cbf8[_0x3ccc('0x43')],[_0x3ccc('0x36'),_0x3ccc('0x72')])){return _0x5c1448[_0x3ccc('0x73')][_0x3ccc('0x74')]({'attributes':['id'],'raw':!![]})[_0x3ccc('0x1b')](function(_0xe07c25){if(_[_0x3ccc('0x55')](_0xe07c25)){_0x20fe90['where'](_0x3ccc('0x75'));_0x165811[_0x3ccc('0x33')]('c.ListId\x20IS\x20NULL');}else{_0x20fe90['where'](_0x3ccc('0x57'),_[_0x3ccc('0x48')](_0xe07c25,'id'));_0x165811[_0x3ccc('0x33')](_0x3ccc('0x57'),_[_0x3ccc('0x48')](_0xe07c25,'id'));}});}})[_0x3ccc('0x1b')](function(){if(_0x5c1448[_0x3ccc('0x73')][_0x3ccc('0x6f')]==='agent'&&!_0x39cbf8&&!_0x5c1448[_0x3ccc('0x2c')][_0x3ccc('0x56')])return[];return db['sequelize']['query'](_0x20fe90[_0x3ccc('0x76')](),_0x1a7d5f);})[_0x3ccc('0x1b')](function(_0x29d38b){_0xefd03c[_0x3ccc('0x16')]=_0x29d38b[_0x3ccc('0x28')];if(_0xefd03c[_0x3ccc('0x16')]===0x0)return[];return db[_0x3ccc('0x77')][_0x3ccc('0x2c')](_0x2d3ae5[_0x3ccc('0x76')](),_0x1a7d5f)[_0x3ccc('0x1b')](function(_0x56f510){_0x2c6518=_[_0x3ccc('0x78')](_0x56f510,'id');_0x1a7d5f=_[_0x3ccc('0x79')](_0x1a7d5f,{'model':db[_0x3ccc('0x1f')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x5c1448[_0x3ccc('0x2c')][_0x3ccc('0x2f')]){_0x4b8b8d[_0x3ccc('0x2e')][_0x3ccc('0x49')](function(_0x456399){_0x165811[_0x3ccc('0x36')]('c.'+_0x456399);});}else{_0x165811['field'](_0x3ccc('0x67'));_0x165811['field'](_0x3ccc('0x7a'));_0x165811['field']('c.lastName');_0x165811[_0x3ccc('0x36')]('c.phone');_0x165811[_0x3ccc('0x36')](_0x3ccc('0x7b'));_0x165811[_0x3ccc('0x36')]('c.fax');_0x165811[_0x3ccc('0x36')](_0x3ccc('0x7c'));_0x165811['field'](_0x3ccc('0x7d'));_0x165811[_0x3ccc('0x36')](_0x3ccc('0x7e'));_0x165811[_0x3ccc('0x36')](_0x3ccc('0x7f'));_0x165811[_0x3ccc('0x36')]('c.CompanyId');_0x165811[_0x3ccc('0x36')](_0x3ccc('0x80'),'TagIds');}if(_0x4b8b8d[_0x3ccc('0x15')])_0x165811[_0x3ccc('0x15')](_0x4b8b8d[_0x3ccc('0x15')]);if(_0x4b8b8d['offset'])_0x165811[_0x3ccc('0x13')](_0x4b8b8d[_0x3ccc('0x13')]);return db[_0x3ccc('0x77')][_0x3ccc('0x2c')](_0x165811['toString'](),_0x1a7d5f);});})[_0x3ccc('0x1b')](function(_0x17f2df){_0x17f2df[_0x3ccc('0x49')](function(_0x341ac0){if(_0x341ac0['TagIds']){_0x341ac0['Tags']=[];_0x341ac0[_0x3ccc('0x81')][_0x3ccc('0x47')](',')[_0x3ccc('0x49')](function(_0xb8fb5f){_0x341ac0['Tags'][_0x3ccc('0x23')](_0x2c6518[_0xb8fb5f]);});}delete _0x341ac0['TagIds'];});_0xefd03c[_0x3ccc('0x82')]=_0x17f2df;return _0xefd03c;})[_0x3ccc('0x1b')](respondWithFilteredResult(_0x45eeef,_0x4b8b8d));})[_0x3ccc('0x83')](handleError(_0x45eeef,null));};exports[_0x3ccc('0x1a')]=function(_0x516d40,_0x53a738){return db[_0x3ccc('0x1f')][_0x3ccc('0x44')]({'where':{'id':_0x516d40['params']['id']}})[_0x3ccc('0x1b')](handleEntityNotFound(_0x53a738,null))[_0x3ccc('0x1b')](removeEntity(_0x53a738,null))[_0x3ccc('0x83')](handleError(_0x53a738,null));};exports[_0x3ccc('0x20')]=function(_0x347fb3,_0x14291d){return db[_0x3ccc('0x1f')][_0x3ccc('0x20')]()[_0x3ccc('0x1b')](function(_0x73e5bb){delete _0x73e5bb[_0x3ccc('0x84')];for(var _0x57f822=0x0;_0x57f822<Object[_0x3ccc('0x21')](_0x73e5bb)[_0x3ccc('0x28')];_0x57f822++){var _0x5e696b=Object[_0x3ccc('0x21')](_0x73e5bb)[_0x57f822];if(!_[_0x3ccc('0x85')](_0x5e696b,_0x3ccc('0x22'))){_0x73e5bb[_0x5e696b][_0x3ccc('0x86')]=_0x5e696b;_0x73e5bb[_0x5e696b][_0x3ccc('0x87')]=_0x5e696b;}}return _0x73e5bb;})[_0x3ccc('0x1b')](function(_0x4d13f5){var _0x237f5a={'where':Boolean(_0x347fb3[_0x3ccc('0x2c')][_0x3ccc('0x88')])===!![]?undefined:{'$or':[{'ListId':_0x347fb3[_0x3ccc('0x2c')]['id']},{'ListId':null}]},'raw':!![]};return db[_0x3ccc('0x24')][_0x3ccc('0x89')](_0x237f5a)[_0x3ccc('0x1b')](function(_0x5a0031){for(var _0x58d72a=0x0;_0x58d72a<_0x5a0031[_0x3ccc('0x28')];_0x58d72a++){var _0x70bbac=_0x3ccc('0x22')+_0x5a0031[_0x58d72a]['id'];_0x4d13f5[_0x70bbac][_0x3ccc('0x86')]=_0x70bbac;_0x4d13f5[_0x70bbac]['displayName']=_0x5a0031[_0x58d72a][_0x3ccc('0x8a')];_0x4d13f5[_0x70bbac][_0x3ccc('0x8b')]={'type':_0x5a0031[_0x58d72a][_0x3ccc('0x2a')],'values':_0x5a0031[_0x58d72a][_0x3ccc('0x8c')]};}Object['keys'](_0x4d13f5)[_0x3ccc('0x49')](function(_0x292695){if(!_0x4d13f5[_0x292695][_0x3ccc('0x52')]('columnName')){delete _0x4d13f5[_0x292695];}});return _0x4d13f5;});})[_0x3ccc('0x1b')](respondWithResult(_0x14291d,null))['catch'](handleError(_0x14291d,null));};exports['merge']=function(_0x1c4636,_0x1ba17c){var _0x5547ab;var _0x277bd8;var _0x5a2e46;if(_0x1c4636[_0x3ccc('0x8d')]['id']){delete _0x1c4636['body']['id'];}return db[_0x3ccc('0x1f')]['findAll']({'where':{'id':[_0x1c4636[_0x3ccc('0x8d')]['to'],_0x1c4636[_0x3ccc('0x8d')]['from']]}})[_0x3ccc('0x1b')](function(_0x1332b2){if(_0x1332b2){if(_0x1332b2[_0x3ccc('0x28')]!==0x2){return null;}_0x1332b2[0x0]=_0x1332b2[0x0][_0x3ccc('0x8e')]({'plain':!![]});_0x1332b2[0x1]=_0x1332b2[0x1][_0x3ccc('0x8e')]({'plain':!![]});delete _0x1332b2[0x0]['id'];delete _0x1332b2[0x1]['id'];return _[_0x3ccc('0x8f')](_0x1332b2[0x0],_0x1332b2[0x1],function(_0x4f735f,_0x881eca){if(Array[_0x3ccc('0x5b')](_0x881eca)&&!_0x881eca[_0x3ccc('0x28')]){return _0x4f735f;}else if(!_0x881eca){return _0x4f735f;}});}})[_0x3ccc('0x1b')](handleEntityNotFound(_0x1ba17c,null))[_0x3ccc('0x1b')](function(_0x4609fd){if(_0x4609fd){if(_0x4609fd[_0x3ccc('0x84')]&&_[_0x3ccc('0x5b')](_0x4609fd[_0x3ccc('0x84')])){_0x4609fd[_0x3ccc('0x84')]=_0x4609fd['tags'][_0x3ccc('0x90')]();}logger['info'](_0x3ccc('0x91'),_0x1c4636[_0x3ccc('0x8d')]['to'],_0x1c4636[_0x3ccc('0x8d')]['from']);return db[_0x3ccc('0x92')]['destroy']({'where':{'ContactId':[_0x1c4636[_0x3ccc('0x8d')]['to'],_0x1c4636[_0x3ccc('0x8d')][_0x3ccc('0x38')]]}})[_0x3ccc('0x1b')](function(_0xa3b714){logger[_0x3ccc('0x93')](_0x3ccc('0x94'),_0xa3b714);return db['CmHopperBlack'][_0x3ccc('0x1a')]({'where':{'ContactId':[_0x1c4636[_0x3ccc('0x8d')]['to'],_0x1c4636[_0x3ccc('0x8d')][_0x3ccc('0x38')]]}})[_0x3ccc('0x1b')](function(_0xf1c3e0){logger[_0x3ccc('0x93')]('[CmContact][merge][destroy][CmHopperBlack],\x20%s',_0xf1c3e0);return db[_0x3ccc('0x1f')][_0x3ccc('0x95')](_0x4609fd);});});}})[_0x3ccc('0x1b')](function(_0x96b4a4){if(_0x96b4a4){_0x5547ab=_0x96b4a4;_0x277bd8={'ContactId':_0x5547ab['id']};_0x5a2e46={'where':{'ContactId':[_0x1c4636[_0x3ccc('0x8d')]['to'],_0x1c4636[_0x3ccc('0x8d')][_0x3ccc('0x38')]]}};return db[_0x3ccc('0x96')][_0x3ccc('0x19')](_0x277bd8,_0x5a2e46);}})[_0x3ccc('0x1b')](function(){if(_0x5547ab){return db[_0x3ccc('0x97')][_0x3ccc('0x19')](_0x277bd8,_0x5a2e46);}})[_0x3ccc('0x1b')](function(){if(_0x5547ab){return db[_0x3ccc('0x98')][_0x3ccc('0x19')](_0x277bd8,_0x5a2e46);}})['then'](function(){if(_0x5547ab){return db[_0x3ccc('0x99')][_0x3ccc('0x19')](_0x277bd8,_0x5a2e46);}})['then'](function(){if(_0x5547ab){return db[_0x3ccc('0x9a')]['update'](_0x277bd8,_0x5a2e46);}})[_0x3ccc('0x1b')](function(){if(_0x5547ab){return db[_0x3ccc('0x99')][_0x3ccc('0x19')](_0x277bd8,_0x5a2e46);}})[_0x3ccc('0x1b')](function(){if(_0x5547ab){return db[_0x3ccc('0x9a')]['update'](_0x277bd8,_0x5a2e46);}})['then'](function(){if(_0x5547ab){return db[_0x3ccc('0x9b')][_0x3ccc('0x19')](_0x277bd8,_0x5a2e46);}})[_0x3ccc('0x1b')](function(){if(_0x5547ab){return db['SmsMessage'][_0x3ccc('0x19')](_0x277bd8,_0x5a2e46);}})[_0x3ccc('0x1b')](function(){if(_0x5547ab){return db[_0x3ccc('0x9c')][_0x3ccc('0x19')](_0x277bd8,_0x5a2e46);}})[_0x3ccc('0x1b')](function(){if(_0x5547ab){return db[_0x3ccc('0x9d')][_0x3ccc('0x19')](_0x277bd8,_0x5a2e46);}})[_0x3ccc('0x1b')](function(){if(_0x5547ab){return db[_0x3ccc('0x9e')][_0x3ccc('0x19')](_0x277bd8,_0x5a2e46);}})[_0x3ccc('0x1b')](function(){if(_0x5547ab){return db[_0x3ccc('0x9f')][_0x3ccc('0x19')](_0x277bd8,_0x5a2e46);}})['then'](function(){if(_0x5547ab){return db['CmHopperFinal']['update'](_0x277bd8,_0x5a2e46);}})[_0x3ccc('0x1b')](function(){if(_0x5547ab){return db['CmHopperHistory'][_0x3ccc('0x19')](_0x277bd8,_0x5a2e46);}})[_0x3ccc('0x1b')](function(){if(_0x5547ab){return db[_0x3ccc('0xa0')]['update'](_0x277bd8,_0x5a2e46);}})[_0x3ccc('0x1b')](function(){if(_0x5547ab){return db[_0x3ccc('0xa1')]['update'](_0x277bd8,_0x5a2e46);}})[_0x3ccc('0x1b')](function(){if(_0x5547ab){return db['ChatQueueReport'][_0x3ccc('0x19')](_0x277bd8,_0x5a2e46);}})[_0x3ccc('0x1b')](function(){if(_0x5547ab){return db[_0x3ccc('0xa2')][_0x3ccc('0x19')](_0x277bd8,_0x5a2e46);}})[_0x3ccc('0x1b')](function(){if(_0x5547ab){return db['MailQueueReport']['update'](_0x277bd8,_0x5a2e46);}})['then'](function(){if(_0x5547ab){return db['OpenchannelQueueReport'][_0x3ccc('0x19')](_0x277bd8,_0x5a2e46);}})[_0x3ccc('0x1b')](function(){if(_0x5547ab){return db[_0x3ccc('0xa3')][_0x3ccc('0x19')](_0x277bd8,_0x5a2e46);}})['then'](function(){if(_0x5547ab){return db[_0x3ccc('0xa4')][_0x3ccc('0x19')](_0x277bd8,_0x5a2e46);}})[_0x3ccc('0x1b')](function(){if(_0x5547ab){return db[_0x3ccc('0xa5')][_0x3ccc('0x19')](_0x277bd8,_0x5a2e46);}})[_0x3ccc('0x1b')](function(){if(_0x5547ab){return db[_0x3ccc('0xa6')]['update'](_0x277bd8,_0x5a2e46);}})[_0x3ccc('0x1b')](function(){if(_0x5547ab){return db[_0x3ccc('0xa7')][_0x3ccc('0x19')](_0x277bd8,_0x5a2e46);}})['then'](function(){if(_0x5547ab){return db[_0x3ccc('0x1f')]['destroy']({'where':{'id':[_0x1c4636['body']['to'],_0x1c4636[_0x3ccc('0x8d')][_0x3ccc('0x38')]]}});}})[_0x3ccc('0x1b')](function(){if(_0x5547ab){return _0x5547ab;}})['then'](respondWithResult(_0x1ba17c,null))[_0x3ccc('0x83')](handleError(_0x1ba17c,null));};exports['create']=function(_0x8a6bf0,_0x212933){return db[_0x3ccc('0x1f')]['describe']()[_0x3ccc('0x1b')](function(_0x1a5f66){if(_0x8a6bf0[_0x3ccc('0x8d')]['tags']&&_[_0x3ccc('0x5b')](_0x8a6bf0[_0x3ccc('0x8d')][_0x3ccc('0x84')])){if(_0x8a6bf0[_0x3ccc('0x8d')][_0x3ccc('0x84')][_0x3ccc('0x28')]){_0x8a6bf0[_0x3ccc('0x8d')]['tags']=_0x8a6bf0[_0x3ccc('0x8d')][_0x3ccc('0x84')]['join'](';')+';';}else{_0x8a6bf0[_0x3ccc('0x8d')][_0x3ccc('0x84')]=null;}}else{_0x8a6bf0[_0x3ccc('0x8d')][_0x3ccc('0x84')]=null;}return db[_0x3ccc('0x1f')][_0x3ccc('0x95')](_0x8a6bf0[_0x3ccc('0x8d')],{'fields':_['keys'](_0x1a5f66),'raw':!![]});})[_0x3ccc('0x1b')](respondWithResult(_0x212933,0xc9))['catch'](handleError(_0x212933,null));};exports[_0x3ccc('0xa8')]=function(_0x3941f1,_0x4f1282){var _0x153e8f=0x0;var _0x26a44f=0x0;var _0x5bf8db=0x0;return db[_0x3ccc('0x1f')]['describe']()['then'](function(_0x337ed5){return BPromise[_0x3ccc('0xa9')](_0x3941f1[_0x3ccc('0x8d')],function(_0x43d24c){var _0x221d81={'where':{'$or':[]},'defaults':_0x43d24c,'fields':_[_0x3ccc('0x21')](_0x337ed5),'raw':!![]};if(_0x43d24c['duplicates']){for(var _0x21f7c0=0x0;_0x21f7c0<_0x43d24c[_0x3ccc('0xaa')][_0x3ccc('0x28')];_0x21f7c0++){var _0x4d5ad2={};_0x4d5ad2[_0x43d24c['duplicates'][_0x21f7c0]]=_0x43d24c[_0x43d24c[_0x3ccc('0xaa')][_0x21f7c0]];_0x221d81[_0x3ccc('0x33')][_0x3ccc('0xab')][_0x3ccc('0x23')](_0x4d5ad2);}_0x221d81[_0x3ccc('0x33')][_0x3ccc('0x56')]=_0x43d24c[_0x3ccc('0x56')];}return db[_0x3ccc('0x1f')]['findOrCreate'](_0x221d81)[_0x3ccc('0xac')](function(_0x7aa89d,_0x4cd6ef){if(_0x4cd6ef){_0x153e8f++;}else{_0x5bf8db++;}})['catch'](function(){_0x26a44f++;});});})[_0x3ccc('0x1b')](function(_0x4c0706){if(_0x4c0706){return{'success':_0x153e8f,'failure':_0x26a44f,'duplicates':_0x5bf8db};}})[_0x3ccc('0x1b')](respondWithResult(_0x4f1282,0xc9))['catch'](handleError(_0x4f1282,null));};exports['show']=function(_0x3e1f28,_0x5df572){var _0x109f7f;return db[_0x3ccc('0x1f')][_0x3ccc('0x20')]()[_0x3ccc('0x1b')](function(_0x4d6a14){return db[_0x3ccc('0x1f')][_0x3ccc('0x44')]({'where':{'id':_0x3e1f28[_0x3ccc('0xad')]['id']},'include':[{'model':db['Tag'],'as':'Tags','attributes':['id',_0x3ccc('0x1e'),'color'],'required':_0x3e1f28['query'][_0x3ccc('0x5c')]?!![]:![]}],'attributes':_[_0x3ccc('0x21')](_0x4d6a14)});})[_0x3ccc('0x1b')](function(_0x276be4){if(!_['isNil'](_0x276be4)){_0x109f7f=_0x276be4[_0x3ccc('0x8e')]({'plain':!![]});var _0x3cdb43={'where':{'$and':[{'ListId':{'$ne':null}}]}};if(_0x276be4&&_0x276be4[_0x3ccc('0x56')]){if(_0x276be4[_0x3ccc('0x56')]){_0x3cdb43[_0x3ccc('0x33')][_0x3ccc('0xae')][_0x3ccc('0x23')]({'ListId':{'$ne':_0x276be4[_0x3ccc('0x56')]}});}}return db['CmCustomField'][_0x3ccc('0x89')](_0x3cdb43);}})[_0x3ccc('0x1b')](function(_0x40d7e4){if(!_['isNil'](_0x40d7e4)){return _[_0x3ccc('0xaf')](_0x109f7f,_[_0x3ccc('0x48')](_0x40d7e4,function(_0x712c6a){return util[_0x3ccc('0xb0')](_0x3ccc('0xb1'),_0x712c6a['id']);}));}})[_0x3ccc('0x1b')](handleEntityNotFound(_0x5df572,null))[_0x3ccc('0x1b')](respondWithResult(_0x5df572,null))[_0x3ccc('0x83')](handleError(_0x5df572,null));};exports['update']=function(_0x3cfcfb,_0x121e12){var _0x77d537;if(_0x3cfcfb[_0x3ccc('0x8d')]['id']){delete _0x3cfcfb[_0x3ccc('0x8d')]['id'];}return db[_0x3ccc('0x1f')]['find']({'where':{'id':_0x3cfcfb[_0x3ccc('0xad')]['id']}})[_0x3ccc('0x1b')](handleEntityNotFound(_0x121e12,null))[_0x3ccc('0x1b')](saveUpdates(_0x3cfcfb[_0x3ccc('0x8d')],null))['then'](function(_0x4d7430){_0x77d537=_0x4d7430;var _0x296641={'where':{'$and':[{'ListId':{'$ne':null}}]}};if(_0x4d7430&&_0x4d7430['ListId']){if(_0x4d7430[_0x3ccc('0x56')]){_0x296641[_0x3ccc('0x33')][_0x3ccc('0xae')][_0x3ccc('0x23')]({'ListId':{'$ne':_0x4d7430[_0x3ccc('0x56')]}});}}return db[_0x3ccc('0x24')][_0x3ccc('0x89')](_0x296641);})[_0x3ccc('0x1b')](function(_0x187715){if(_0x187715){return _[_0x3ccc('0xaf')](_['pickBy'](_0x3cfcfb[_0x3ccc('0x8d')],function(_0xbbc1e,_0x57f7eb){return _['startsWith'](_0x57f7eb,_0x3ccc('0x22'));}),_[_0x3ccc('0x48')](_0x187715,function(_0x351462){return util[_0x3ccc('0xb0')](_0x3ccc('0xb1'),_0x351462['id']);}));}})[_0x3ccc('0x1b')](function(_0x5b3877){if(_0x5b3877&&!_[_0x3ccc('0x55')](_0x5b3877)){var _0xe9a56f=squel[_0x3ccc('0x19')]()[_0x3ccc('0xb2')]('cm_contacts')[_0x3ccc('0xb3')](_0x5b3877)[_0x3ccc('0x33')](_0x3ccc('0xb4'),_0x3cfcfb[_0x3ccc('0xad')]['id'])[_0x3ccc('0xb5')]();return db[_0x3ccc('0x77')][_0x3ccc('0x2c')](_0xe9a56f[_0x3ccc('0x50')],{'replacements':_0xe9a56f[_0x3ccc('0x8c')]});}})[_0x3ccc('0x1b')](function(){if(_0x3cfcfb['body'][_0x3ccc('0xb6')]&&_0x77d537){return db['CmHopper'][_0x3ccc('0x19')]({'phone':_0x3cfcfb[_0x3ccc('0x8d')][_0x3ccc('0xb6')]},{'where':{'ContactId':_0x77d537['id']}});}})[_0x3ccc('0x1b')](function(){return _0x77d537;})[_0x3ccc('0x1b')](respondWithResult(_0x121e12,null))[_0x3ccc('0x83')](handleError(_0x121e12,null));};exports[_0x3ccc('0xb7')]=function(_0x386084,_0x58f28b){var _0x2783c6={};var _0xe9e500={};var _0x2ad679;var _0x4c5b08;return db[_0x3ccc('0x1f')]['findOne']({'where':{'id':_0x386084[_0x3ccc('0xad')]['id']}})[_0x3ccc('0x1b')](handleEntityNotFound(_0x58f28b,null))['then'](function(_0x37f395){if(_0x37f395){_0x2ad679=_0x37f395;_0xe9e500[_0x3ccc('0x2b')]=_[_0x3ccc('0x21')](db[_0x3ccc('0x45')][_0x3ccc('0xb8')]);_0xe9e500[_0x3ccc('0x2c')]=_[_0x3ccc('0x21')](_0x386084[_0x3ccc('0x2c')]);_0xe9e500[_0x3ccc('0x34')]=_[_0x3ccc('0x2d')](_0xe9e500[_0x3ccc('0x2b')],_0xe9e500[_0x3ccc('0x2c')]);_0x2783c6[_0x3ccc('0x2e')]=_[_0x3ccc('0x2d')](_0xe9e500[_0x3ccc('0x2b')],qs[_0x3ccc('0x2f')](_0x386084['query']['fields']));_0x2783c6[_0x3ccc('0x2e')]=_0x2783c6[_0x3ccc('0x2e')]['length']?_0x2783c6[_0x3ccc('0x2e')]:_0xe9e500[_0x3ccc('0x2b')];_0x2783c6['order']=qs[_0x3ccc('0x32')](_0x386084[_0x3ccc('0x2c')]['sort']);_0x2783c6[_0x3ccc('0x33')]=qs[_0x3ccc('0x34')](_['pick'](_0x386084[_0x3ccc('0x2c')],_0xe9e500['filters']));if(_0x386084[_0x3ccc('0x2c')][_0x3ccc('0x53')]){_0x2783c6[_0x3ccc('0x33')]=_[_0x3ccc('0x79')](_0x2783c6[_0x3ccc('0x33')],{'$or':_[_0x3ccc('0x48')](_0x2783c6[_0x3ccc('0x2e')],function(_0x2eb50a){var _0x387fcf={};_0x387fcf[_0x2eb50a]={'$like':'%'+_0x386084['query'][_0x3ccc('0x53')]+'%'};return _0x387fcf;})});}_0x2783c6=_[_0x3ccc('0x79')]({},_0x2783c6,_0x386084['options']);return _0x2ad679[_0x3ccc('0xb7')](_0x2783c6);}})[_0x3ccc('0x1b')](function(_0x4592e7){if(_0x4592e7){_0x4c5b08=_0x4592e7[_0x3ccc('0x28')];if(!_0x386084[_0x3ccc('0x2c')][_0x3ccc('0x52')](_0x3ccc('0x30'))){_0x2783c6[_0x3ccc('0x15')]=qs[_0x3ccc('0x15')](_0x386084[_0x3ccc('0x2c')]['limit']);_0x2783c6[_0x3ccc('0x13')]=qs[_0x3ccc('0x13')](_0x386084['query'][_0x3ccc('0x13')]);}return _0x2ad679['getTags'](_0x2783c6);}})[_0x3ccc('0x1b')](function(_0x2983fd){if(_0x2983fd){return _0x2983fd?{'count':_0x4c5b08,'rows':_0x2983fd}:null;}})[_0x3ccc('0x1b')](respondWithResult(_0x58f28b,null))['catch'](handleError(_0x58f28b,null));};exports[_0x3ccc('0xb9')]=function(_0x2c8ac6,_0xaa779c){if(_0x2c8ac6['body']['id']){delete _0x2c8ac6[_0x3ccc('0x8d')]['id'];}return db[_0x3ccc('0x1f')][_0x3ccc('0x25')]({'where':{'id':_0x2c8ac6[_0x3ccc('0xad')]['id']}})[_0x3ccc('0x1b')](handleEntityNotFound(_0xaa779c,null))[_0x3ccc('0x1b')](function(_0x59720b){if(_0x59720b){return _0x59720b['setTags'](_0x2c8ac6[_0x3ccc('0x8d')][_0x3ccc('0xba')]||[]);}return null;})[_0x3ccc('0x1b')](respondWithResult(_0xaa779c,null))['catch'](handleError(_0xaa779c,null));};exports['getHoppers']=function(_0x15b1e2,_0x5ee90a){var _0x35f973={'raw':![],'where':{}};var _0x5acd79={};var _0x54653f={'count':0x0,'rows':[]};return db[_0x3ccc('0x1f')]['findOne']({'where':{'id':_0x15b1e2['params']['id']}})[_0x3ccc('0x1b')](handleEntityNotFound(_0x5ee90a,null))[_0x3ccc('0x1b')](function(_0x3a9d7c){if(_0x3a9d7c){_0x5acd79[_0x3ccc('0x2b')]=_['keys'](db[_0x3ccc('0x92')]['rawAttributes']);_0x5acd79[_0x3ccc('0x2c')]=_['keys'](_0x15b1e2[_0x3ccc('0x2c')]);_0x5acd79[_0x3ccc('0x34')]=_['intersection'](_0x5acd79[_0x3ccc('0x2b')],_0x5acd79['query']);_0x35f973['attributes']=_[_0x3ccc('0x2d')](_0x5acd79['model'],qs[_0x3ccc('0x2f')](_0x15b1e2[_0x3ccc('0x2c')][_0x3ccc('0x2f')]));_0x35f973['attributes']=_0x35f973['attributes'][_0x3ccc('0x28')]?_0x35f973['attributes']:_0x5acd79[_0x3ccc('0x2b')];if(!_0x15b1e2[_0x3ccc('0x2c')][_0x3ccc('0x52')](_0x3ccc('0x30'))){_0x35f973['limit']=qs['limit'](_0x15b1e2[_0x3ccc('0x2c')][_0x3ccc('0x15')]);_0x35f973['offset']=qs[_0x3ccc('0x13')](_0x15b1e2[_0x3ccc('0x2c')]['offset']);}_0x35f973[_0x3ccc('0x31')]=qs[_0x3ccc('0x32')](_0x15b1e2[_0x3ccc('0x2c')][_0x3ccc('0x32')]);_0x35f973[_0x3ccc('0x33')]=qs['filters'](_['pick'](_0x15b1e2[_0x3ccc('0x2c')],_0x5acd79[_0x3ccc('0x34')]));_0x35f973[_0x3ccc('0x33')][_0x3ccc('0xbb')]=_0x3a9d7c['id'];if(_0x15b1e2[_0x3ccc('0x2c')][_0x3ccc('0x53')]){_0x35f973['where']=_[_0x3ccc('0x79')](_0x35f973['where'],{'$or':_['map'](_0x35f973[_0x3ccc('0x2e')],function(_0x1449ad){var _0x3f30d2={};_0x3f30d2[_0x1449ad]={'$like':'%'+_0x15b1e2[_0x3ccc('0x2c')][_0x3ccc('0x53')]+'%'};return _0x3f30d2;})});}_0x35f973=_[_0x3ccc('0x79')]({},_0x35f973,_0x15b1e2[_0x3ccc('0xbc')]);return db[_0x3ccc('0x92')]['count']({'where':_0x35f973[_0x3ccc('0x33')]})[_0x3ccc('0x1b')](function(_0x200bac){_0x54653f['count']=_0x200bac;if(_0x15b1e2['query'][_0x3ccc('0xbd')]){_0x35f973[_0x3ccc('0xbe')]=[{'all':!![]}];}return db[_0x3ccc('0x92')]['findAll'](_0x35f973);})[_0x3ccc('0x1b')](function(_0x4b64b0){_0x54653f[_0x3ccc('0x82')]=_0x4b64b0;return _0x54653f;});}})['then'](respondWithFilteredResult(_0x5ee90a,_0x35f973))[_0x3ccc('0x83')](handleError(_0x5ee90a,null));};exports[_0x3ccc('0xbf')]=function(_0xf34aeb,_0x1bbc3c){var _0x581b28={'raw':!![],'where':{}};var _0x486792={};var _0x43c356={'count':0x0,'rows':[]};return db[_0x3ccc('0x1f')]['findOne']({'where':{'id':_0xf34aeb[_0x3ccc('0xad')]['id']}})[_0x3ccc('0x1b')](handleEntityNotFound(_0x1bbc3c,null))['then'](function(_0x3a6f6f){if(_0x3a6f6f){_0x486792[_0x3ccc('0x2b')]=_[_0x3ccc('0x21')](db[_0x3ccc('0xc0')]['rawAttributes']);_0x486792['query']=_[_0x3ccc('0x21')](_0xf34aeb[_0x3ccc('0x2c')]);_0x486792[_0x3ccc('0x34')]=_['intersection'](_0x486792[_0x3ccc('0x2b')],_0x486792[_0x3ccc('0x2c')]);_0x581b28[_0x3ccc('0x2e')]=_[_0x3ccc('0x2d')](_0x486792[_0x3ccc('0x2b')],qs['fields'](_0xf34aeb[_0x3ccc('0x2c')]['fields']));_0x581b28[_0x3ccc('0x2e')]=_0x581b28['attributes'][_0x3ccc('0x28')]?_0x581b28[_0x3ccc('0x2e')]:_0x486792[_0x3ccc('0x2b')];if(!_0xf34aeb[_0x3ccc('0x2c')]['hasOwnProperty'](_0x3ccc('0x30'))){_0x581b28[_0x3ccc('0x15')]=qs[_0x3ccc('0x15')](_0xf34aeb[_0x3ccc('0x2c')][_0x3ccc('0x15')]);_0x581b28[_0x3ccc('0x13')]=qs[_0x3ccc('0x13')](_0xf34aeb['query'][_0x3ccc('0x13')]);}_0x581b28['order']=qs[_0x3ccc('0x32')](_0xf34aeb[_0x3ccc('0x2c')]['sort']);_0x581b28['where']=qs[_0x3ccc('0x34')](_[_0x3ccc('0xc1')](_0xf34aeb[_0x3ccc('0x2c')],_0x486792[_0x3ccc('0x34')]));_0x581b28[_0x3ccc('0x33')][_0x3ccc('0xbb')]=_0x3a6f6f['id'];if(_0xf34aeb[_0x3ccc('0x2c')]['filter']){_0x581b28[_0x3ccc('0x33')]=_[_0x3ccc('0x79')](_0x581b28['where'],{'$or':_[_0x3ccc('0x48')](_0x581b28[_0x3ccc('0x2e')],function(_0x3af6f2){var _0x1575df={};_0x1575df[_0x3af6f2]={'$like':'%'+_0xf34aeb[_0x3ccc('0x2c')]['filter']+'%'};return _0x1575df;})});}_0x581b28=_[_0x3ccc('0x79')]({},_0x581b28,_0xf34aeb['options']);return db[_0x3ccc('0xc0')][_0x3ccc('0x16')]({'where':_0x581b28['where']})[_0x3ccc('0x1b')](function(_0x5bae52){_0x43c356['count']=_0x5bae52;if(_0xf34aeb[_0x3ccc('0x2c')]['includeAll']){_0x581b28[_0x3ccc('0xbe')]=[{'all':!![]}];}return db[_0x3ccc('0xc0')]['findAll'](_0x581b28);})[_0x3ccc('0x1b')](function(_0x5cbab8){_0x43c356['rows']=_0x5cbab8;return _0x43c356;});}})[_0x3ccc('0x1b')](respondWithFilteredResult(_0x1bbc3c,_0x581b28))[_0x3ccc('0x83')](handleError(_0x1bbc3c,null));};exports[_0x3ccc('0xc2')]=function(_0x132023,_0x5ef57d){var _0x15ad99={'raw':!![],'where':{}};var _0x386653={};var _0x2f1214={'count':0x0,'rows':[]};return db[_0x3ccc('0x1f')][_0x3ccc('0x25')]({'where':{'id':_0x132023[_0x3ccc('0xad')]['id']}})[_0x3ccc('0x1b')](handleEntityNotFound(_0x5ef57d,null))[_0x3ccc('0x1b')](function(_0x64a93b){if(_0x64a93b){_0x386653[_0x3ccc('0x2b')]=_['keys'](db[_0x3ccc('0xc3')][_0x3ccc('0xb8')]);_0x386653['query']=_[_0x3ccc('0x21')](_0x132023['query']);_0x386653[_0x3ccc('0x34')]=_['intersection'](_0x386653[_0x3ccc('0x2b')],_0x386653[_0x3ccc('0x2c')]);_0x15ad99[_0x3ccc('0x2e')]=_[_0x3ccc('0x2d')](_0x386653[_0x3ccc('0x2b')],qs[_0x3ccc('0x2f')](_0x132023['query']['fields']));_0x15ad99[_0x3ccc('0x2e')]=_0x15ad99['attributes'][_0x3ccc('0x28')]?_0x15ad99[_0x3ccc('0x2e')]:_0x386653[_0x3ccc('0x2b')];if(!_0x132023[_0x3ccc('0x2c')][_0x3ccc('0x52')]('nolimit')){_0x15ad99[_0x3ccc('0x15')]=qs[_0x3ccc('0x15')](_0x132023[_0x3ccc('0x2c')][_0x3ccc('0x15')]);_0x15ad99[_0x3ccc('0x13')]=qs[_0x3ccc('0x13')](_0x132023[_0x3ccc('0x2c')][_0x3ccc('0x13')]);}_0x15ad99[_0x3ccc('0x31')]=qs['sort'](_0x132023[_0x3ccc('0x2c')][_0x3ccc('0x32')]);_0x15ad99[_0x3ccc('0x33')]=qs[_0x3ccc('0x34')](_[_0x3ccc('0xc1')](_0x132023['query'],_0x386653[_0x3ccc('0x34')]));_0x15ad99[_0x3ccc('0x33')]['ContactId']=_0x64a93b['id'];if(_0x132023[_0x3ccc('0x2c')][_0x3ccc('0x53')]){_0x15ad99['where']=_[_0x3ccc('0x79')](_0x15ad99[_0x3ccc('0x33')],{'$or':_[_0x3ccc('0x48')](_0x15ad99[_0x3ccc('0x2e')],function(_0x4a3a33){var _0x77b95e={};_0x77b95e[_0x4a3a33]={'$like':'%'+_0x132023['query'][_0x3ccc('0x53')]+'%'};return _0x77b95e;})});}_0x15ad99=_[_0x3ccc('0x79')]({},_0x15ad99,_0x132023[_0x3ccc('0xbc')]);return db[_0x3ccc('0xc3')][_0x3ccc('0x16')]({'where':_0x15ad99[_0x3ccc('0x33')]})[_0x3ccc('0x1b')](function(_0x33048f){_0x2f1214['count']=_0x33048f;if(_0x132023[_0x3ccc('0x2c')][_0x3ccc('0xbd')]){_0x15ad99[_0x3ccc('0xbe')]=[{'all':!![]}];}return db[_0x3ccc('0xc3')][_0x3ccc('0x89')](_0x15ad99);})['then'](function(_0x46209a){_0x2f1214[_0x3ccc('0x82')]=_0x46209a;return _0x2f1214;});}})[_0x3ccc('0x1b')](respondWithFilteredResult(_0x5ef57d,_0x15ad99))['catch'](handleError(_0x5ef57d,null));};exports[_0x3ccc('0xc4')]=function(_0x38fdda,_0x134967){var _0x3179f5={'raw':!![],'where':{}};var _0x3a4d02={};var _0x15141d={'count':0x0,'rows':[]};return db['CmContact'][_0x3ccc('0x25')]({'where':{'id':_0x38fdda['params']['id']}})[_0x3ccc('0x1b')](handleEntityNotFound(_0x134967,null))[_0x3ccc('0x1b')](function(_0xa65367){if(_0xa65367){_0x3a4d02[_0x3ccc('0x2b')]=_[_0x3ccc('0x21')](db[_0x3ccc('0xa4')][_0x3ccc('0xb8')]);_0x3a4d02[_0x3ccc('0x2c')]=_[_0x3ccc('0x21')](_0x38fdda[_0x3ccc('0x2c')]);_0x3a4d02[_0x3ccc('0x34')]=_[_0x3ccc('0x2d')](_0x3a4d02[_0x3ccc('0x2b')],_0x3a4d02['query']);_0x3179f5[_0x3ccc('0x2e')]=_[_0x3ccc('0x2d')](_0x3a4d02[_0x3ccc('0x2b')],qs[_0x3ccc('0x2f')](_0x38fdda['query'][_0x3ccc('0x2f')]));_0x3179f5[_0x3ccc('0x2e')]=_0x3179f5['attributes'][_0x3ccc('0x28')]?_0x3179f5[_0x3ccc('0x2e')]:_0x3a4d02['model'];if(!_0x38fdda['query']['hasOwnProperty'](_0x3ccc('0x30'))){_0x3179f5[_0x3ccc('0x15')]=qs['limit'](_0x38fdda['query']['limit']);_0x3179f5[_0x3ccc('0x13')]=qs[_0x3ccc('0x13')](_0x38fdda['query'][_0x3ccc('0x13')]);}_0x3179f5['order']=qs[_0x3ccc('0x32')](_0x38fdda[_0x3ccc('0x2c')][_0x3ccc('0x32')]);_0x3179f5[_0x3ccc('0x33')]=qs['filters'](_['pick'](_0x38fdda['query'],_0x3a4d02[_0x3ccc('0x34')]));_0x3179f5[_0x3ccc('0x33')][_0x3ccc('0xbb')]=_0xa65367['id'];if(_0x38fdda[_0x3ccc('0x2c')][_0x3ccc('0x53')]){_0x3179f5[_0x3ccc('0x33')]=_[_0x3ccc('0x79')](_0x3179f5[_0x3ccc('0x33')],{'$or':_[_0x3ccc('0x48')](_0x3179f5[_0x3ccc('0x2e')],function(_0x48a820){var _0xfe02a={};_0xfe02a[_0x48a820]={'$like':'%'+_0x38fdda[_0x3ccc('0x2c')][_0x3ccc('0x53')]+'%'};return _0xfe02a;})});}_0x3179f5=_[_0x3ccc('0x79')]({},_0x3179f5,_0x38fdda[_0x3ccc('0xbc')]);return db[_0x3ccc('0xa4')][_0x3ccc('0x16')]({'where':_0x3179f5[_0x3ccc('0x33')]})[_0x3ccc('0x1b')](function(_0x4b44bf){_0x15141d[_0x3ccc('0x16')]=_0x4b44bf;if(_0x38fdda[_0x3ccc('0x2c')][_0x3ccc('0xbd')]){_0x3179f5[_0x3ccc('0xbe')]=[{'all':!![]}];}return db[_0x3ccc('0xa4')]['findAll'](_0x3179f5);})[_0x3ccc('0x1b')](function(_0x40653d){_0x15141d['rows']=_0x40653d;return _0x15141d;});}})['then'](respondWithFilteredResult(_0x134967,_0x3179f5))['catch'](handleError(_0x134967,null));};exports[_0x3ccc('0xc5')]=function(_0x39954c,_0x49063d){try{if(!_0x39954c[_0x3ccc('0x8d')][_0x3ccc('0x56')]){throw new Error(_0x3ccc('0xc6'));}if(!_0x39954c[_0x3ccc('0x8d')][_0x3ccc('0xc7')]){throw new Error('No\x20association\x20keys\x20specified!');}if(!_0x39954c['body'][_0x3ccc('0xc8')]){throw new Error('No\x20association\x20values\x20specified!');}if(!_0x39954c[_0x3ccc('0x8d')][_0x3ccc('0xc9')]){throw new Error(_0x3ccc('0xca'));}var _0x3ff74e=_0x39954c[_0x3ccc('0x8d')][_0x3ccc('0xc7')][_0x3ccc('0x47')](',');var _0x57e075=_0x39954c[_0x3ccc('0x8d')][_0x3ccc('0xc8')][_0x3ccc('0x47')](',');if(!_0x3ff74e[_0x3ccc('0x28')]||!_0x57e075[_0x3ccc('0x28')]||_0x3ff74e[_0x3ccc('0x28')]!==_0x57e075[_0x3ccc('0x28')]){throw new Error(_0x3ccc('0xcb'));}_0x39954c[_0x3ccc('0x8d')][_0x3ccc('0x2f')]=_[_0x3ccc('0xcc')](_0x3ff74e,_0x57e075);if(!_0x39954c['body'][_0x3ccc('0x2f')][_0x3ccc('0xb6')]){throw new Error(_0x3ccc('0xcd'));}if(!_0x39954c['body'][_0x3ccc('0x2f')]['firstName']){throw new Error(_0x3ccc('0xce'));}var _0x2382cf=path[_0x3ccc('0x90')](config['root'],_0x3ccc('0xcf'),_0x39954c[_0x3ccc('0xd0')][_0x3ccc('0xd1')]);fs['chmodSync'](_0x2382cf,parseInt(_0x3ccc('0xd2'),0x8));var _0x3316ab=require('child_process')[_0x3ccc('0xd3')](path[_0x3ccc('0x90')](__dirname,'../../components/import/cm/csv'),[_0x2382cf,_0x39954c[_0x3ccc('0x8d')][_0x3ccc('0xc7')],_0x39954c[_0x3ccc('0x8d')]['binding_values'],_0x39954c[_0x3ccc('0x8d')][_0x3ccc('0x56')],_0x39954c[_0x3ccc('0x8d')][_0x3ccc('0xd4')],_0x39954c[_0x3ccc('0x8d')][_0x3ccc('0xaa')],_0x39954c['body'][_0x3ccc('0xc9')]]);return _0x49063d['status'](0xc8)[_0x3ccc('0x12')]({'message':_0x3ccc('0xd5'),'pid':_0x3316ab[_0x3ccc('0xd6')]});}catch(_0x3280b3){return _0x49063d[_0x3ccc('0x11')](0x1f4)[_0x3ccc('0xd7')](_0x3280b3);}};exports[_0x3ccc('0xd8')]=function(_0x4d77d6,_0x458a06){var _0x4285ae=fs[_0x3ccc('0xd9')](_0x4d77d6[_0x3ccc('0xd0')]['path']);Papa[_0x3ccc('0xda')](_0x4285ae,{'header':!![],'skipEmptyLines':!![],'preview':0x1,'complete':function(_0x2bbb02){return _0x458a06[_0x3ccc('0x11')](0xc8)['json']({'file':_0x4d77d6['file'],'fields':_0x2bbb02[_0x3ccc('0xdb')][_0x3ccc('0x2f')]});}});};exports[_0x3ccc('0xdc')]=function(_0x16aa15,_0x13167e){return db[_0x3ccc('0x72')][_0x3ccc('0x89')]({'raw':!![],'attributes':['id'],'where':{'role':_0x3ccc('0x70')}})[_0x3ccc('0x1b')](function(_0x3085ae){var _0x374bd0=![];if(!_0x16aa15[_0x3ccc('0x8d')][_0x3ccc('0x56')]){throw new Error(_0x3ccc('0xc6'));}if(!_0x16aa15['body'][_0x3ccc('0xdd')][_0x3ccc('0xb6')]){throw new Error('No\x20phone\x20column\x20specified');}if(!_0x16aa15[_0x3ccc('0x8d')][_0x3ccc('0xdd')][_0x3ccc('0xde')]){throw new Error(_0x3ccc('0xce'));}if(!_0x16aa15['body'][_0x3ccc('0xc9')]){throw new Error('Unable\x20to\x20synchronize\x20socket,\x20no\x20timestamp\x20passed');}var _0x48a2d5=require('child_process')[_0x3ccc('0xd3')](path[_0x3ccc('0x90')](__dirname,_0x3ccc('0xdf')),[_0x16aa15[_0x3ccc('0xad')]['id'],JSON[_0x3ccc('0xe0')](_0x16aa15['body']),JSON['stringify'](_0x3085ae)]);_0x48a2d5['on'](_0x3ccc('0xe1'),function(){_0x374bd0=!![];return _0x13167e[_0x3ccc('0x11')](0xc8)[_0x3ccc('0x12')]({'message':_0x3ccc('0xe2'),'pid':_0x48a2d5[_0x3ccc('0xd6')]});});_0x48a2d5['on'](_0x3ccc('0xe3'),function(_0x1a0969){if(_0x1a0969&&!_0x374bd0){return _0x13167e['status'](0x1f4)[_0x3ccc('0x12')]({'message':_0x3ccc('0xe4'),'pid':_0x48a2d5[_0x3ccc('0xd6')]});}});})[_0x3ccc('0x83')](handleError(_0x13167e,null));};exports[_0x3ccc('0xe5')]=function(_0x3a9623,_0x254d1b){var _0x4c0099=[_0x3ccc('0xe6'),'chat',_0x3ccc('0xe7'),_0x3ccc('0xe8'),_0x3ccc('0xe9'),_0x3ccc('0xea'),_0x3ccc('0xeb')];var _0x3a1565={'offset':0x0,'order':qs[_0x3ccc('0x32')]('-createdAt')},_0x491c1d={'count':0x0,'rows':[]};Promise[_0x3ccc('0x6e')]()[_0x3ccc('0x1b')](function(){if(_0x3a9623[_0x3ccc('0x2c')][_0x3ccc('0xec')]){if(!_[_0x3ccc('0xed')](_0x4c0099,_0x3a9623[_0x3ccc('0x2c')]['channel'][_0x3ccc('0xee')]())){throw new Error('Invalid\x20channel');}_0x4c0099=[_0x3a9623['query'][_0x3ccc('0xec')][_0x3ccc('0xee')]()];}if(_0x3a9623['query'][_0x3ccc('0xef')]){try{var _0x25d3c3=JSON[_0x3ccc('0xda')](_0x3a9623[_0x3ccc('0x2c')][_0x3ccc('0xef')]);if(!moment(_0x25d3c3['from'])[_0x3ccc('0xf0')]()){throw new Error(_0x3ccc('0xf1'));}if(!moment(_0x25d3c3['to'])['isValid']()){throw new Error(_0x3ccc('0xf2'));}}catch(_0x1d641d){throw new Error(_0x3ccc('0xf3'));}}if(!_0x3a9623['query']['hasOwnProperty'](_0x3ccc('0x30'))){_0x3a1565['limit']=qs[_0x3ccc('0x15')](_0x3a9623[_0x3ccc('0x2c')][_0x3ccc('0x15')]||0xa);_0x3a1565[_0x3ccc('0x13')]=qs[_0x3ccc('0x13')](_0x3a9623['query'][_0x3ccc('0x13')]);}var _0x37e3b3=_0x4c0099['map'](function(_0x1ee3af){if(_0x1ee3af===_0x3ccc('0xeb')){var _0x487e83={'attributes':['id',_0x3ccc('0xf4'),_0x3ccc('0x2a'),_0x3ccc('0xf5'),_0x3ccc('0xf6'),_0x3ccc('0xf7'),'starttime','endtime',_0x3ccc('0xf8'),_0x3ccc('0xf9'),_0x3ccc('0xfa'),'userDisposition',_0x3ccc('0xfb'),'userThirdDisposition','UserId'],'where':{'ContactId':_0x3a9623[_0x3ccc('0xad')]['id']},'include':[{'model':db[_0x3ccc('0x72')],'as':_0x3ccc('0x72'),'attributes':['id','name',_0x3ccc('0xfc'),_0x3ccc('0x8a')]}],'order':[[_0x3ccc('0xfa'),_0x3ccc('0x6b')]]};if(_0x3a9623[_0x3ccc('0x2c')][_0x3ccc('0xef')]){_0x487e83['where']['createdAt']={'$gte':_0x25d3c3['from'],'$lte':_0x25d3c3['to']};}return db[_0x3ccc('0xa1')][_0x3ccc('0xfd')](_0x487e83)['then'](function(_0x1a5dfc){_0x491c1d[_0x3ccc('0x16')]+=_0x1a5dfc[_0x3ccc('0x16')];return _[_0x3ccc('0x48')](_0x1a5dfc[_0x3ccc('0x82')],function(_0x3c6b88){var _0x2e44ea=_0x3c6b88[_0x3ccc('0x8e')]({'plain':!![]});_0x2e44ea[_0x3ccc('0xec')]=_0x1ee3af;if(_0x2e44ea[_0x3ccc('0x72')]){_0x2e44ea[_0x3ccc('0x72')]={'id':_0x2e44ea[_0x3ccc('0x72')]['id'],'name':_0x2e44ea[_0x3ccc('0x72')]['name'],'fullname':_0x2e44ea[_0x3ccc('0x72')][_0x3ccc('0xfc')],'alias':_0x2e44ea['User'][_0x3ccc('0x8a')]};}return _0x2e44ea;});});}else{var _0x122532=_[_0x3ccc('0xfe')](_0x1ee3af)+(_0x1ee3af==='chat'?_0x3ccc('0xff'):_0x3ccc('0x100'));var _0x42d4db={'attributes':['id','closed',_0x3ccc('0x101'),'createdAt','note',_0x3ccc('0x102'),_0x3ccc('0x103'),'thirdDisposition',_0x3ccc('0x104'),_0x122532+'Id'],'where':{'ContactId':_0x3a9623['params']['id']},'include':[{'model':db[_0x122532],'as':_0x3ccc('0x100'),'attributes':['id',_0x3ccc('0x1e'),'key']},{'model':db[_0x3ccc('0x72')],'as':_0x3ccc('0x105'),'attributes':['id',_0x3ccc('0x1e'),_0x3ccc('0xfc')]},{'model':db['Tag'],'as':'Tags','attributes':['id',_0x3ccc('0x1e'),_0x3ccc('0x37')],'through':{'attributes':[]}}],'order':[['createdAt',_0x3ccc('0x6b')]]};if(_0x3a9623['query'][_0x3ccc('0xef')]){_0x42d4db[_0x3ccc('0x33')]['createdAt']={'$gte':_0x25d3c3[_0x3ccc('0x38')],'$lte':_0x25d3c3['to']};}switch(_0x1ee3af){case _0x3ccc('0x106'):_0x42d4db[_0x3ccc('0x2e')]['push']('browserName',_0x3ccc('0x107'),'customerPort',_0x3ccc('0x108'),'osName','ratingMessage',_0x3ccc('0x109'),_0x3ccc('0x10a'),_0x3ccc('0x10b'));break;case'mail':_0x42d4db[_0x3ccc('0x2e')][_0x3ccc('0x23')](_0x3ccc('0x10c'),_0x3ccc('0x10d'));break;case'openchannel':_0x42d4db[_0x3ccc('0x2e')][_0x3ccc('0x23')](_0x3ccc('0x10e'),'threadId');break;}return db[_[_0x3ccc('0xfe')](_0x1ee3af)+_0x3ccc('0x10f')][_0x3ccc('0xfd')](_0x42d4db)[_0x3ccc('0x1b')](function(_0x439d2e){_0x491c1d[_0x3ccc('0x16')]+=_0x439d2e['count'];return _[_0x3ccc('0x48')](_0x439d2e['rows'],function(_0x5ed0fc){var _0x5134c5=_0x5ed0fc['get']({'plain':!![]});_0x5134c5['channel']=_0x1ee3af;if(_0x5134c5[_0x3ccc('0x105')]){_0x5134c5[_0x3ccc('0x105')]={'id':_0x5134c5[_0x3ccc('0x105')]['id'],'name':_0x5134c5[_0x3ccc('0x105')][_0x3ccc('0x1e')],'fullname':_0x5134c5[_0x3ccc('0x105')][_0x3ccc('0xfc')]};}return _0x5134c5;});});}});return Promise[_0x3ccc('0x27')](_0x37e3b3);})['then'](function(_0x41f984){return _(_0x41f984)[_0x3ccc('0x110')]()[_0x3ccc('0x111')](_0x3ccc('0xfa'))[_0x3ccc('0x112')]()[_0x3ccc('0x46')]();})[_0x3ccc('0x1b')](function(_0xeb8d68){_0x491c1d[_0x3ccc('0x82')]=_0x3a1565[_0x3ccc('0x15')]?_0xeb8d68['slice'](_0x3a1565[_0x3ccc('0x13')],_0x3a1565[_0x3ccc('0x13')]+_0x3a1565[_0x3ccc('0x15')]):_0xeb8d68;return _0x491c1d;})[_0x3ccc('0x1b')](respondWithFilteredResult(_0x254d1b,_0x3a1565))[_0x3ccc('0x83')](handleError(_0x254d1b,null));};
\ No newline at end of file
+var _0x4e93=['../../components/import/cm/csv','CompanyId','File\x20uploaded\x20correctly!','pid','createReadStream','path','parse','import','binding','../../components/import/cm/csv2','stringify','message','exit','error\x20child\x20process','getJourney','chat','openchannel','fax','whatsapp','voice','channel','includes','toLowerCase','range','isValid','Invalid\x20date\x20for\x20range\x20from\x20filter','uniqueid','source','destination','callerid','starttime','userDisposition','userSecondDisposition','userThirdDisposition','UserId','fullname','VoiceCallReport','startCase','Website','Account','closed','createdAt','secondDisposition','thirdDisposition','key','browserName','customerPort','deviceModel','osName','ratingMessage','ratingType','ratingValue','referer','subject','substatus','externalUrl','Interaction','findAndCountAll','Owner','flatten','slice','bluebird','util','squel','ioredis','../../components/parsers/qs','api','../../mysqldb','redis','localhost','register','status','json','undefined','count','offset','set','Content-Range','update','then','destroy','error','name','send','describe','keys','length','startsWith','cf_','push','CmCustomField','findOne','trimStart','all','fieldType','type','model','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','limit','order','where','pick','select','field','color','from','tools_tags','cm_contacts','left_join','cm_user_has_contacts','uc.CmContactId\x20=\x20c.id','t.id\x20=\x20ct.TagId','c.deletedAt\x20IS\x20NULL','expr','parseSearch','search','conditions','find','Tag','value','map','forEach','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User','and','uc.UserId\x20=\x20?','castTo','DATE','buildExpression','text','start','end','filter','isNil','Contact','isEmpty','c.ListId\x20IN\x20?','concat','CONCAT_WS(\x27\x20\x27,\x20c.firstName,\x20c.lastName,\x20c.email)\x20LIKE\x20?','\x20=\x20?','tag','replace','split','getFullTextValue','isNumeric','c.phone\x20LIKE\x20?','c.fax\x20LIKE\x20?','isEmail','c.email\x20LIKE\x20?','c.firstName\x20LIKE\x20?','c.lastName\x20LIKE\x20?','group','Sequelize','QueryTypes','SELECT','clone','c.id','DESC','having','t.id\x20IN\x20?','resolve','user','agent','some','getLists','c.ListId\x20IS\x20NULL','ListId','toString','sequelize','CmContact','c.firstName','c.lastName','c.phone','c.fax','c.email','c.ListId','c.createdAt','c.deletedAt','c.CompanyId','GROUP_CONCAT(DISTINCT\x20t.id)','TagIds','Tags','rows','catch','displayName','analytics','findAll','columnName','alias','values','merge','body','get','isArray','tags','join','[CmContact][merge]\x20to\x20%s\x20from\x20%s','CmHopper','info','[CmContact][merge][destroy][CmHopper],\x20%s','[CmContact][merge][destroy][CmHopperBlack],\x20%s','create','ChatInteraction','ChatMessage','MailInteraction','MailMessage','SmsInteraction','SmsMessage','FaxInteraction','OpenchannelInteraction','CmHopperFinal','CmHopperHistory','ReportAgentPreview','ChatQueueReport','FaxQueueReport','MailQueueReport','SmsQueueReport','WhatsappInteraction','WhatsappMessage','WhatsappQueueReport','bulkCreate','each','duplicates','$or','findOrCreate','show','params','omit','format','cf_%d','$and','pickBy','table','setFields','id\x20=\x20?','toParam','phone','getTags','rawAttributes','sort','options','setTags','ids','ContactId','includeAll','include','getHopperHistories','getJscriptySessions','JscriptySessionReport','uploadCsv','No\x20ListId\x20specified','binding_keys','No\x20association\x20keys\x20specified!','binding_values','socket_timestamp','Unable\x20to\x20synchronize\x20socket,\x20no\x20timestamp\x20passed','Incorrect\x20binding\x20parameters\x20passed!','zipObject','No\x20phone\x20column\x20specified','firstName','No\x20firstName\x20column\x20specified','root','server/files/tmp','file','filename','0777','child_process','fork'];(function(_0x684c79,_0x4a702a){var _0x2cc557=function(_0x5f1547){while(--_0x5f1547){_0x684c79['push'](_0x684c79['shift']());}};_0x2cc557(++_0x4a702a);}(_0x4e93,0x150));var _0x34e9=function(_0x4051be,_0x4e30dc){_0x4051be=_0x4051be-0x0;var _0x10d8e5=_0x4e93[_0x4051be];return _0x10d8e5;};'use strict';var moment=require('moment');var BPromise=require(_0x34e9('0x0'));var util=require(_0x34e9('0x1'));var path=require('path');var fs=require('fs');var _=require('lodash');var squel=require(_0x34e9('0x2'));var Papa=require('papaparse');var Redis=require(_0x34e9('0x3'));var qs=require(_0x34e9('0x4'));var as=require('../../components/parsers/advancedSearch');var logger=require('../../config/logger')(_0x34e9('0x5'));var config=require('../../config/environment');var db=require(_0x34e9('0x6'))['db'];config[_0x34e9('0x7')]=_['defaults'](config['redis'],{'host':_0x34e9('0x8'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x34e9('0x7')]));require('./cmContact.socket')[_0x34e9('0x9')](socket);function respondWithResult(_0x126e87,_0x59e53b){_0x59e53b=_0x59e53b||0xc8;return function(_0x403525){if(_0x403525){return _0x126e87[_0x34e9('0xa')](_0x59e53b)[_0x34e9('0xb')](_0x403525);}};}function respondWithFilteredResult(_0x22e825,_0x4cc1d9){return function(_0x185bf5){if(_0x185bf5){var _0x29c708=typeof _0x4cc1d9['offset']===_0x34e9('0xc')&&typeof _0x4cc1d9['limit']==='undefined';var _0x4476b9=_0x185bf5[_0x34e9('0xd')];var _0x513412=_0x29c708?0x0:_0x4cc1d9[_0x34e9('0xe')];var _0x4b48cc=_0x29c708?_0x185bf5[_0x34e9('0xd')]:_0x4cc1d9['offset']+_0x4cc1d9['limit'];var _0x49fff1;if(_0x4b48cc>=_0x4476b9){_0x4b48cc=_0x4476b9;_0x49fff1=0xc8;}else{_0x49fff1=0xce;}_0x22e825[_0x34e9('0xa')](_0x49fff1);return _0x22e825[_0x34e9('0xf')](_0x34e9('0x10'),_0x513412+'-'+_0x4b48cc+'/'+_0x4476b9)[_0x34e9('0xb')](_0x185bf5);}return null;};}function saveUpdates(_0x3e8352){return function(_0x5c63fb){if(_0x5c63fb){return _0x5c63fb[_0x34e9('0x11')](_0x3e8352)[_0x34e9('0x12')](function(_0x5cd0e9){return _0x5cd0e9;});}return null;};}function removeEntity(_0x131e1f){return function(_0x534eac){if(_0x534eac){return _0x534eac[_0x34e9('0x13')]()['then'](function(){_0x131e1f['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x385a9b){return function(_0x1c9a5a){if(!_0x1c9a5a){_0x385a9b['sendStatus'](0x194);}return _0x1c9a5a;};}function handleError(_0x193934,_0xb5c7a8){_0xb5c7a8=_0xb5c7a8||0x1f4;return function(_0x301bf9){logger[_0x34e9('0x14')](_0x301bf9['stack']);if(_0x301bf9['name']){delete _0x301bf9[_0x34e9('0x15')];}_0x193934[_0x34e9('0xa')](_0xb5c7a8)[_0x34e9('0x16')](_0x301bf9);};}exports['index']=function(_0x21bedf,_0x5336ff){var _0x4ad25f={},_0x23c977={},_0x24a3d2={'count':0x0,'rows':[]};return db['CmContact'][_0x34e9('0x17')]()[_0x34e9('0x12')](function(_0x469a5f){var _0x2c1d52=[];for(var _0x32ee48=0x0;_0x32ee48<Object[_0x34e9('0x18')](_0x469a5f)[_0x34e9('0x19')];_0x32ee48++){var _0x2a4d38=Object['keys'](_0x469a5f)[_0x32ee48];if(_[_0x34e9('0x1a')](_0x2a4d38,_0x34e9('0x1b'))){_0x2c1d52[_0x34e9('0x1c')](db[_0x34e9('0x1d')][_0x34e9('0x1e')]({'where':{'id':_[_0x34e9('0x1f')](_0x2a4d38,_0x34e9('0x1b'))},'raw':!![]}));}}return BPromise[_0x34e9('0x20')](_0x2c1d52)[_0x34e9('0x12')](function(_0x4c20e8){for(var _0x20429c=0x0;_0x20429c<_0x4c20e8[_0x34e9('0x19')];_0x20429c++){if(_0x4c20e8[_0x20429c]){var _0x1791d9='cf_'+_0x4c20e8[_0x20429c]['id'];var _0x36e979=_0x469a5f[_0x1791d9];_0x36e979[_0x34e9('0x21')]=_0x4c20e8[_0x20429c][_0x34e9('0x22')];}}return _0x469a5f;});})[_0x34e9('0x12')](function(_0x956d77){_0x23c977[_0x34e9('0x23')]=_[_0x34e9('0x18')](_0x956d77);_0x23c977['query']=_[_0x34e9('0x18')](_0x21bedf[_0x34e9('0x24')]);_0x23c977[_0x34e9('0x25')]=_[_0x34e9('0x26')](_0x23c977[_0x34e9('0x23')],_0x23c977[_0x34e9('0x24')]);_0x4ad25f[_0x34e9('0x27')]=_[_0x34e9('0x26')](_0x23c977[_0x34e9('0x23')],qs[_0x34e9('0x28')](_0x21bedf[_0x34e9('0x24')]['fields']));_0x4ad25f[_0x34e9('0x27')]=_0x4ad25f[_0x34e9('0x27')]['length']?_0x4ad25f[_0x34e9('0x27')]:_0x23c977[_0x34e9('0x23')];if(!_0x21bedf[_0x34e9('0x24')][_0x34e9('0x29')](_0x34e9('0x2a'))){_0x4ad25f[_0x34e9('0x2b')]=qs[_0x34e9('0x2b')](_0x21bedf[_0x34e9('0x24')][_0x34e9('0x2b')]);_0x4ad25f[_0x34e9('0xe')]=qs[_0x34e9('0xe')](_0x21bedf[_0x34e9('0x24')][_0x34e9('0xe')]);}_0x4ad25f[_0x34e9('0x2c')]=qs['sort'](_0x21bedf[_0x34e9('0x24')]['sort']);_0x4ad25f[_0x34e9('0x2d')]=qs[_0x34e9('0x25')](_[_0x34e9('0x2e')](_0x21bedf[_0x34e9('0x24')],_0x23c977[_0x34e9('0x25')]),_0x956d77);var _0x238749=[];var _0x33da8e=squel[_0x34e9('0x2f')]()['field']('id')[_0x34e9('0x30')](_0x34e9('0x15'))[_0x34e9('0x30')](_0x34e9('0x31'))[_0x34e9('0x32')](_0x34e9('0x33'));var _0x43b31e=squel[_0x34e9('0x2f')]()['from'](_0x34e9('0x34'),'c')[_0x34e9('0x35')](_0x34e9('0x36'),'uc',_0x34e9('0x37'))[_0x34e9('0x35')]('cm_contact_has_tags','ct','ct.CmContactId\x20=\x20c.id')[_0x34e9('0x35')]('tools_tags','t',_0x34e9('0x38'))[_0x34e9('0x2d')](_0x34e9('0x39'));var _0x421388=squel[_0x34e9('0x3a')]();var _0x2c736d=[];var _0x2704ba=squel[_0x34e9('0x3a')]();var _0x1a9225;if(_0x21bedf['query']['search']){_0x1a9225=as[_0x34e9('0x3b')](_0x21bedf[_0x34e9('0x24')][_0x34e9('0x3c')]);var _0x5c4d8b=_0x1a9225['sqlOperator'];for(var _0x565a98=0x0;_0x565a98<_0x1a9225[_0x34e9('0x3d')]['length'];_0x565a98++){var _0x1f197a=_0x1a9225['conditions'][_0x565a98];var _0x3c6a97='c';var _0x177776=_(_0x956d77)[_0x34e9('0x18')]()[_0x34e9('0x3e')](function(_0x4356a1){return _0x4356a1===_0x1f197a['field'];});if(_0x177776)_0x177776=_0x956d77[_0x1f197a[_0x34e9('0x30')]];if(!_0x177776){if(_0x1f197a[_0x34e9('0x30')]===_0x34e9('0x3f')){var _0x2bdafd=_0x1f197a[_0x34e9('0x40')]['split'](',')[_0x34e9('0x41')](function(_0xfd7275){return Number(_0xfd7275);});_0x2bdafd[_0x34e9('0x42')](function(_0x238643){_0x2704ba['or'](_0x34e9('0x43'),'%,'+_0x238643+',%');});_0x2c736d=_[_0x34e9('0x44')](_0x2c736d,_0x2bdafd);}else if(_0x1f197a[_0x34e9('0x30')]===_0x34e9('0x45')){_0x421388[_0x34e9('0x46')](_0x34e9('0x47'),_0x1f197a[_0x34e9('0x40')]);}}else{if(_0x1f197a['field']==='dateOfBirth'||_0x177776[_0x34e9('0x21')]==='datetime')_0x1f197a[_0x34e9('0x48')]=_0x34e9('0x49');var _0x8c9bd0=as[_0x34e9('0x4a')](_0x3c6a97,_0x177776['type'],_0x1f197a);_0x421388[_0x5c4d8b](_0x8c9bd0[_0x34e9('0x4b')],_0x8c9bd0[_0x34e9('0x40')][_0x34e9('0x4c')],_0x8c9bd0[_0x34e9('0x40')][_0x34e9('0x4d')]);}}}else{var _0x2f21d5=_(Object['keys'](_0x21bedf[_0x34e9('0x24')]))[_0x34e9('0x41')](function(_0x463dac){return _0x956d77[_0x34e9('0x29')](_0x463dac)?_0x463dac:undefined;})[_0x34e9('0x4e')](function(_0x5b1a25){return!_[_0x34e9('0x4f')](_0x5b1a25);})[_0x34e9('0x40')]();if(_0x21bedf[_0x34e9('0x24')][_0x34e9('0x50')])_0x2f21d5[_0x34e9('0x1c')]('Contact');if(!_[_0x34e9('0x51')](_0x2f21d5)){_0x2f21d5[_0x34e9('0x42')](function(_0x3c9b8d){if(_0x3c9b8d==='ListId'){_0x43b31e[_0x34e9('0x2d')](_0x34e9('0x52'),[][_0x34e9('0x53')](_0x21bedf['query'][_0x3c9b8d]));}else if(_0x3c9b8d===_0x34e9('0x50')){var _0x2a6018='%'+_0x21bedf['query'][_0x3c9b8d]+'%';_0x43b31e[_0x34e9('0x2d')](_0x34e9('0x54'),_0x2a6018);}else{_0x43b31e[_0x34e9('0x2d')]('c.'+_0x3c9b8d+_0x34e9('0x55'),_0x21bedf[_0x34e9('0x24')][_0x3c9b8d]);}});}if(_0x21bedf[_0x34e9('0x24')][_0x34e9('0x56')]){_0x2c736d=_['isArray'](_0x21bedf['query'][_0x34e9('0x56')])?_0x21bedf[_0x34e9('0x24')][_0x34e9('0x56')]:new Array(_0x21bedf[_0x34e9('0x24')][_0x34e9('0x56')]);_0x2c736d[_0x34e9('0x42')](function(_0x3451ae){_0x2704ba['or'](_0x34e9('0x43'),'%,'+_0x3451ae+',%');});}if(_0x21bedf[_0x34e9('0x24')][_0x34e9('0x4e')]){var _0x236174=_0x21bedf[_0x34e9('0x24')][_0x34e9('0x4e')][_0x34e9('0x57')]('\x5c','\x5c\x5c')[_0x34e9('0x57')](/'/g,'\x27\x27');if(_0x236174[_0x34e9('0x58')]('\x20')[_0x34e9('0x19')]>0x1){_0x421388['or']('MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0x34e9('0x59')](_0x236174),null);}else{if(qs[_0x34e9('0x5a')](_0x236174)){_0x421388['or']('c.id\x20LIKE\x20?',_0x236174+'%');_0x421388['or'](_0x34e9('0x5b'),_0x236174+'%');_0x421388['or']('c.mobile\x20LIKE\x20?',_0x236174+'%');_0x421388['or'](_0x34e9('0x5c'),_0x236174+'%');}else if(qs[_0x34e9('0x5d')](_0x236174)){_0x421388['or'](_0x34e9('0x5e'),_0x236174+'%');}else{_0x421388['or'](_0x34e9('0x5f'),'%'+_0x236174+'%');_0x421388['or'](_0x34e9('0x60'),'%'+_0x236174+'%');_0x421388['or'](_0x34e9('0x5e'),'%'+_0x236174+'%');}}}}_0x43b31e['where'](_0x421388);_0x43b31e[_0x34e9('0x61')]('c.id');var _0x46deb4={'type':db[_0x34e9('0x62')][_0x34e9('0x63')][_0x34e9('0x64')],'raw':!![]};var _0x348164=_0x43b31e[_0x34e9('0x65')]()[_0x34e9('0x30')](_0x34e9('0x66'));if(_0x4ad25f[_0x34e9('0x2c')]){_0x4ad25f[_0x34e9('0x2c')][_0x34e9('0x42')](function(_0x50f5ba){_0x43b31e[_0x34e9('0x2c')]('c.'+_0x50f5ba[0x0],_0x50f5ba[0x1]===_0x34e9('0x67')?![]:!![]);});}if(!_[_0x34e9('0x51')](_0x2c736d)){_0x43b31e[_0x34e9('0x68')](_0x2704ba);_0x348164[_0x34e9('0x2d')](_0x34e9('0x69'),_0x2c736d);}BPromise[_0x34e9('0x6a')]()[_0x34e9('0x12')](function(){if(!_0x1a9225)return;if(_0x21bedf[_0x34e9('0x6b')]['role']!==_0x34e9('0x6c'))return;if(!_[_0x34e9('0x6d')](_0x1a9225[_0x34e9('0x3d')],[_0x34e9('0x30'),_0x34e9('0x45')])){return _0x21bedf['user'][_0x34e9('0x6e')]({'attributes':['id'],'raw':!![]})['then'](function(_0x1573b3){if(_[_0x34e9('0x51')](_0x1573b3)){_0x348164[_0x34e9('0x2d')](_0x34e9('0x6f'));_0x43b31e[_0x34e9('0x2d')]('c.ListId\x20IS\x20NULL');}else{_0x348164[_0x34e9('0x2d')](_0x34e9('0x52'),_[_0x34e9('0x41')](_0x1573b3,'id'));_0x43b31e['where'](_0x34e9('0x52'),_[_0x34e9('0x41')](_0x1573b3,'id'));}});}})[_0x34e9('0x12')](function(){if(_0x21bedf[_0x34e9('0x6b')]['role']===_0x34e9('0x6c')&&!_0x1a9225&&!_0x21bedf[_0x34e9('0x24')][_0x34e9('0x70')])return[];return db['sequelize'][_0x34e9('0x24')](_0x348164[_0x34e9('0x71')](),_0x46deb4);})[_0x34e9('0x12')](function(_0x5b15d2){_0x24a3d2[_0x34e9('0xd')]=_0x5b15d2[_0x34e9('0x19')];if(_0x24a3d2['count']===0x0)return[];return db[_0x34e9('0x72')][_0x34e9('0x24')](_0x33da8e[_0x34e9('0x71')](),_0x46deb4)['then'](function(_0x47a828){_0x238749=_['keyBy'](_0x47a828,'id');_0x46deb4=_['merge'](_0x46deb4,{'model':db[_0x34e9('0x73')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x21bedf[_0x34e9('0x24')]['fields']){_0x4ad25f[_0x34e9('0x27')][_0x34e9('0x42')](function(_0x802bbe){_0x43b31e[_0x34e9('0x30')]('c.'+_0x802bbe);});}else{_0x43b31e[_0x34e9('0x30')](_0x34e9('0x66'));_0x43b31e[_0x34e9('0x30')](_0x34e9('0x74'));_0x43b31e[_0x34e9('0x30')](_0x34e9('0x75'));_0x43b31e['field'](_0x34e9('0x76'));_0x43b31e[_0x34e9('0x30')]('c.mobile');_0x43b31e[_0x34e9('0x30')](_0x34e9('0x77'));_0x43b31e[_0x34e9('0x30')](_0x34e9('0x78'));_0x43b31e[_0x34e9('0x30')](_0x34e9('0x79'));_0x43b31e['field'](_0x34e9('0x7a'));_0x43b31e[_0x34e9('0x30')](_0x34e9('0x7b'));_0x43b31e[_0x34e9('0x30')](_0x34e9('0x7c'));_0x43b31e[_0x34e9('0x30')](_0x34e9('0x7d'),_0x34e9('0x7e'));}if(_0x4ad25f[_0x34e9('0x2b')])_0x43b31e[_0x34e9('0x2b')](_0x4ad25f[_0x34e9('0x2b')]);if(_0x4ad25f[_0x34e9('0xe')])_0x43b31e[_0x34e9('0xe')](_0x4ad25f[_0x34e9('0xe')]);return db['sequelize'][_0x34e9('0x24')](_0x43b31e[_0x34e9('0x71')](),_0x46deb4);});})[_0x34e9('0x12')](function(_0x56b0ee){_0x56b0ee['forEach'](function(_0x14513b){if(_0x14513b[_0x34e9('0x7e')]){_0x14513b[_0x34e9('0x7f')]=[];_0x14513b[_0x34e9('0x7e')][_0x34e9('0x58')](',')[_0x34e9('0x42')](function(_0x2db91b){_0x14513b['Tags'][_0x34e9('0x1c')](_0x238749[_0x2db91b]);});}delete _0x14513b[_0x34e9('0x7e')];});_0x24a3d2[_0x34e9('0x80')]=_0x56b0ee;return _0x24a3d2;})[_0x34e9('0x12')](respondWithFilteredResult(_0x5336ff,_0x4ad25f));})[_0x34e9('0x81')](handleError(_0x5336ff,null));};exports[_0x34e9('0x13')]=function(_0x290fba,_0x2ece43){return db[_0x34e9('0x73')]['find']({'where':{'id':_0x290fba['params']['id']}})[_0x34e9('0x12')](handleEntityNotFound(_0x2ece43,null))[_0x34e9('0x12')](removeEntity(_0x2ece43,null))[_0x34e9('0x81')](handleError(_0x2ece43,null));};exports[_0x34e9('0x17')]=function(_0x279aca,_0x17dac8){return db['CmContact'][_0x34e9('0x17')]()['then'](function(_0x5e844f){delete _0x5e844f['tags'];for(var _0x482cb5=0x0;_0x482cb5<Object[_0x34e9('0x18')](_0x5e844f)[_0x34e9('0x19')];_0x482cb5++){var _0x2beda6=Object[_0x34e9('0x18')](_0x5e844f)[_0x482cb5];if(!_['startsWith'](_0x2beda6,_0x34e9('0x1b'))){_0x5e844f[_0x2beda6]['columnName']=_0x2beda6;_0x5e844f[_0x2beda6][_0x34e9('0x82')]=_0x2beda6;}}return _0x5e844f;})[_0x34e9('0x12')](function(_0x4ec655){var _0x2c94db={'where':Boolean(_0x279aca[_0x34e9('0x24')][_0x34e9('0x83')])===!![]?undefined:{'$or':[{'ListId':_0x279aca[_0x34e9('0x24')]['id']},{'ListId':null}]},'raw':!![]};return db[_0x34e9('0x1d')][_0x34e9('0x84')](_0x2c94db)['then'](function(_0x156a71){for(var _0x37afe8=0x0;_0x37afe8<_0x156a71[_0x34e9('0x19')];_0x37afe8++){var _0x5cc101=_0x34e9('0x1b')+_0x156a71[_0x37afe8]['id'];_0x4ec655[_0x5cc101][_0x34e9('0x85')]=_0x5cc101;_0x4ec655[_0x5cc101]['displayName']=_0x156a71[_0x37afe8][_0x34e9('0x86')];_0x4ec655[_0x5cc101]['custom']={'type':_0x156a71[_0x37afe8][_0x34e9('0x22')],'values':_0x156a71[_0x37afe8][_0x34e9('0x87')]};}Object[_0x34e9('0x18')](_0x4ec655)[_0x34e9('0x42')](function(_0x1aedac){if(!_0x4ec655[_0x1aedac][_0x34e9('0x29')](_0x34e9('0x85'))){delete _0x4ec655[_0x1aedac];}});return _0x4ec655;});})[_0x34e9('0x12')](respondWithResult(_0x17dac8,null))['catch'](handleError(_0x17dac8,null));};exports[_0x34e9('0x88')]=function(_0x48d09d,_0x1d9769){var _0x35d04d;var _0x29c87f;var _0x149413;if(_0x48d09d[_0x34e9('0x89')]['id']){delete _0x48d09d['body']['id'];}return db[_0x34e9('0x73')][_0x34e9('0x84')]({'where':{'id':[_0x48d09d['body']['to'],_0x48d09d[_0x34e9('0x89')][_0x34e9('0x32')]]}})['then'](function(_0x4289c0){if(_0x4289c0){if(_0x4289c0[_0x34e9('0x19')]!==0x2){return null;}_0x4289c0[0x0]=_0x4289c0[0x0]['get']({'plain':!![]});_0x4289c0[0x1]=_0x4289c0[0x1][_0x34e9('0x8a')]({'plain':!![]});delete _0x4289c0[0x0]['id'];delete _0x4289c0[0x1]['id'];return _['mergeWith'](_0x4289c0[0x0],_0x4289c0[0x1],function(_0x3dba18,_0xfc54ac){if(Array[_0x34e9('0x8b')](_0xfc54ac)&&!_0xfc54ac['length']){return _0x3dba18;}else if(!_0xfc54ac){return _0x3dba18;}});}})['then'](handleEntityNotFound(_0x1d9769,null))[_0x34e9('0x12')](function(_0x3dd519){if(_0x3dd519){if(_0x3dd519[_0x34e9('0x8c')]&&_[_0x34e9('0x8b')](_0x3dd519['tags'])){_0x3dd519[_0x34e9('0x8c')]=_0x3dd519[_0x34e9('0x8c')][_0x34e9('0x8d')]();}logger['info'](_0x34e9('0x8e'),_0x48d09d['body']['to'],_0x48d09d[_0x34e9('0x89')][_0x34e9('0x32')]);return db[_0x34e9('0x8f')][_0x34e9('0x13')]({'where':{'ContactId':[_0x48d09d[_0x34e9('0x89')]['to'],_0x48d09d['body'][_0x34e9('0x32')]]}})[_0x34e9('0x12')](function(_0x2436bf){logger[_0x34e9('0x90')](_0x34e9('0x91'),_0x2436bf);return db['CmHopperBlack'][_0x34e9('0x13')]({'where':{'ContactId':[_0x48d09d['body']['to'],_0x48d09d[_0x34e9('0x89')][_0x34e9('0x32')]]}})[_0x34e9('0x12')](function(_0xd78a3f){logger[_0x34e9('0x90')](_0x34e9('0x92'),_0xd78a3f);return db[_0x34e9('0x73')][_0x34e9('0x93')](_0x3dd519);});});}})[_0x34e9('0x12')](function(_0x251316){if(_0x251316){_0x35d04d=_0x251316;_0x29c87f={'ContactId':_0x35d04d['id']};_0x149413={'where':{'ContactId':[_0x48d09d[_0x34e9('0x89')]['to'],_0x48d09d[_0x34e9('0x89')][_0x34e9('0x32')]]}};return db[_0x34e9('0x94')]['update'](_0x29c87f,_0x149413);}})[_0x34e9('0x12')](function(){if(_0x35d04d){return db[_0x34e9('0x95')][_0x34e9('0x11')](_0x29c87f,_0x149413);}})[_0x34e9('0x12')](function(){if(_0x35d04d){return db['ChatOfflineMessage'][_0x34e9('0x11')](_0x29c87f,_0x149413);}})[_0x34e9('0x12')](function(){if(_0x35d04d){return db[_0x34e9('0x96')][_0x34e9('0x11')](_0x29c87f,_0x149413);}})[_0x34e9('0x12')](function(){if(_0x35d04d){return db[_0x34e9('0x97')]['update'](_0x29c87f,_0x149413);}})[_0x34e9('0x12')](function(){if(_0x35d04d){return db[_0x34e9('0x96')][_0x34e9('0x11')](_0x29c87f,_0x149413);}})[_0x34e9('0x12')](function(){if(_0x35d04d){return db[_0x34e9('0x97')]['update'](_0x29c87f,_0x149413);}})['then'](function(){if(_0x35d04d){return db[_0x34e9('0x98')][_0x34e9('0x11')](_0x29c87f,_0x149413);}})[_0x34e9('0x12')](function(){if(_0x35d04d){return db[_0x34e9('0x99')][_0x34e9('0x11')](_0x29c87f,_0x149413);}})['then'](function(){if(_0x35d04d){return db[_0x34e9('0x9a')][_0x34e9('0x11')](_0x29c87f,_0x149413);}})[_0x34e9('0x12')](function(){if(_0x35d04d){return db['FaxMessage']['update'](_0x29c87f,_0x149413);}})[_0x34e9('0x12')](function(){if(_0x35d04d){return db[_0x34e9('0x9b')][_0x34e9('0x11')](_0x29c87f,_0x149413);}})[_0x34e9('0x12')](function(){if(_0x35d04d){return db['OpenchannelMessage'][_0x34e9('0x11')](_0x29c87f,_0x149413);}})[_0x34e9('0x12')](function(){if(_0x35d04d){return db[_0x34e9('0x9c')]['update'](_0x29c87f,_0x149413);}})[_0x34e9('0x12')](function(){if(_0x35d04d){return db[_0x34e9('0x9d')][_0x34e9('0x11')](_0x29c87f,_0x149413);}})[_0x34e9('0x12')](function(){if(_0x35d04d){return db[_0x34e9('0x9e')][_0x34e9('0x11')](_0x29c87f,_0x149413);}})['then'](function(){if(_0x35d04d){return db['VoiceCallReport'][_0x34e9('0x11')](_0x29c87f,_0x149413);}})[_0x34e9('0x12')](function(){if(_0x35d04d){return db[_0x34e9('0x9f')][_0x34e9('0x11')](_0x29c87f,_0x149413);}})[_0x34e9('0x12')](function(){if(_0x35d04d){return db[_0x34e9('0xa0')][_0x34e9('0x11')](_0x29c87f,_0x149413);}})[_0x34e9('0x12')](function(){if(_0x35d04d){return db[_0x34e9('0xa1')][_0x34e9('0x11')](_0x29c87f,_0x149413);}})[_0x34e9('0x12')](function(){if(_0x35d04d){return db['OpenchannelQueueReport']['update'](_0x29c87f,_0x149413);}})[_0x34e9('0x12')](function(){if(_0x35d04d){return db[_0x34e9('0xa2')][_0x34e9('0x11')](_0x29c87f,_0x149413);}})[_0x34e9('0x12')](function(){if(_0x35d04d){return db['JscriptySessionReport'][_0x34e9('0x11')](_0x29c87f,_0x149413);}})['then'](function(){if(_0x35d04d){return db[_0x34e9('0xa3')][_0x34e9('0x11')](_0x29c87f,_0x149413);}})[_0x34e9('0x12')](function(){if(_0x35d04d){return db[_0x34e9('0xa4')][_0x34e9('0x11')](_0x29c87f,_0x149413);}})[_0x34e9('0x12')](function(){if(_0x35d04d){return db[_0x34e9('0xa5')][_0x34e9('0x11')](_0x29c87f,_0x149413);}})[_0x34e9('0x12')](function(){if(_0x35d04d){return db['CmContact'][_0x34e9('0x13')]({'where':{'id':[_0x48d09d[_0x34e9('0x89')]['to'],_0x48d09d['body'][_0x34e9('0x32')]]}});}})[_0x34e9('0x12')](function(){if(_0x35d04d){return _0x35d04d;}})[_0x34e9('0x12')](respondWithResult(_0x1d9769,null))[_0x34e9('0x81')](handleError(_0x1d9769,null));};exports[_0x34e9('0x93')]=function(_0x529e23,_0x38c81f){return db[_0x34e9('0x73')]['describe']()[_0x34e9('0x12')](function(_0x246ef4){if(_0x529e23[_0x34e9('0x89')][_0x34e9('0x8c')]&&_[_0x34e9('0x8b')](_0x529e23[_0x34e9('0x89')][_0x34e9('0x8c')])){if(_0x529e23[_0x34e9('0x89')]['tags'][_0x34e9('0x19')]){_0x529e23[_0x34e9('0x89')][_0x34e9('0x8c')]=_0x529e23[_0x34e9('0x89')][_0x34e9('0x8c')]['join'](';')+';';}else{_0x529e23[_0x34e9('0x89')][_0x34e9('0x8c')]=null;}}else{_0x529e23[_0x34e9('0x89')][_0x34e9('0x8c')]=null;}return db[_0x34e9('0x73')]['create'](_0x529e23['body'],{'fields':_[_0x34e9('0x18')](_0x246ef4),'raw':!![]});})[_0x34e9('0x12')](respondWithResult(_0x38c81f,0xc9))[_0x34e9('0x81')](handleError(_0x38c81f,null));};exports[_0x34e9('0xa6')]=function(_0x12a693,_0x4a878e){var _0x9dab49=0x0;var _0x1a9c74=0x0;var _0x208a39=0x0;return db[_0x34e9('0x73')][_0x34e9('0x17')]()[_0x34e9('0x12')](function(_0x162701){return BPromise[_0x34e9('0xa7')](_0x12a693[_0x34e9('0x89')],function(_0x5c30c2){var _0x3ad589={'where':{'$or':[]},'defaults':_0x5c30c2,'fields':_[_0x34e9('0x18')](_0x162701),'raw':!![]};if(_0x5c30c2[_0x34e9('0xa8')]){for(var _0x3ce32e=0x0;_0x3ce32e<_0x5c30c2[_0x34e9('0xa8')][_0x34e9('0x19')];_0x3ce32e++){var _0x18a5ce={};_0x18a5ce[_0x5c30c2[_0x34e9('0xa8')][_0x3ce32e]]=_0x5c30c2[_0x5c30c2['duplicates'][_0x3ce32e]];_0x3ad589['where'][_0x34e9('0xa9')][_0x34e9('0x1c')](_0x18a5ce);}_0x3ad589['where'][_0x34e9('0x70')]=_0x5c30c2[_0x34e9('0x70')];}return db[_0x34e9('0x73')][_0x34e9('0xaa')](_0x3ad589)['spread'](function(_0x4fe59c,_0x335e1d){if(_0x335e1d){_0x9dab49++;}else{_0x208a39++;}})[_0x34e9('0x81')](function(){_0x1a9c74++;});});})[_0x34e9('0x12')](function(_0x2a7722){if(_0x2a7722){return{'success':_0x9dab49,'failure':_0x1a9c74,'duplicates':_0x208a39};}})[_0x34e9('0x12')](respondWithResult(_0x4a878e,0xc9))['catch'](handleError(_0x4a878e,null));};exports[_0x34e9('0xab')]=function(_0x192d07,_0x2c17bf){var _0x5c22a8;return db['CmContact']['describe']()[_0x34e9('0x12')](function(_0x5a051a){return db[_0x34e9('0x73')][_0x34e9('0x3e')]({'where':{'id':_0x192d07[_0x34e9('0xac')]['id']},'include':[{'model':db['Tag'],'as':_0x34e9('0x7f'),'attributes':['id',_0x34e9('0x15'),_0x34e9('0x31')],'required':_0x192d07['query']['tag']?!![]:![]}],'attributes':_[_0x34e9('0x18')](_0x5a051a)});})[_0x34e9('0x12')](function(_0x4588a7){if(!_[_0x34e9('0x4f')](_0x4588a7)){_0x5c22a8=_0x4588a7[_0x34e9('0x8a')]({'plain':!![]});var _0x2b1d0c={'where':{'$and':[{'ListId':{'$ne':null}}]}};if(_0x4588a7&&_0x4588a7['ListId']){if(_0x4588a7[_0x34e9('0x70')]){_0x2b1d0c['where']['$and'][_0x34e9('0x1c')]({'ListId':{'$ne':_0x4588a7[_0x34e9('0x70')]}});}}return db['CmCustomField'][_0x34e9('0x84')](_0x2b1d0c);}})[_0x34e9('0x12')](function(_0x537e72){if(!_[_0x34e9('0x4f')](_0x537e72)){return _[_0x34e9('0xad')](_0x5c22a8,_[_0x34e9('0x41')](_0x537e72,function(_0x160993){return util[_0x34e9('0xae')](_0x34e9('0xaf'),_0x160993['id']);}));}})[_0x34e9('0x12')](handleEntityNotFound(_0x2c17bf,null))[_0x34e9('0x12')](respondWithResult(_0x2c17bf,null))[_0x34e9('0x81')](handleError(_0x2c17bf,null));};exports['update']=function(_0x37c9d0,_0xe0be0e){var _0x2e3559;if(_0x37c9d0['body']['id']){delete _0x37c9d0['body']['id'];}return db['CmContact'][_0x34e9('0x3e')]({'where':{'id':_0x37c9d0['params']['id']}})[_0x34e9('0x12')](handleEntityNotFound(_0xe0be0e,null))[_0x34e9('0x12')](saveUpdates(_0x37c9d0[_0x34e9('0x89')],null))[_0x34e9('0x12')](function(_0x1b4c0a){_0x2e3559=_0x1b4c0a;var _0x461708={'where':{'$and':[{'ListId':{'$ne':null}}]}};if(_0x1b4c0a&&_0x1b4c0a[_0x34e9('0x70')]){if(_0x1b4c0a[_0x34e9('0x70')]){_0x461708[_0x34e9('0x2d')][_0x34e9('0xb0')][_0x34e9('0x1c')]({'ListId':{'$ne':_0x1b4c0a[_0x34e9('0x70')]}});}}return db[_0x34e9('0x1d')][_0x34e9('0x84')](_0x461708);})[_0x34e9('0x12')](function(_0x30dfb0){if(_0x30dfb0){return _[_0x34e9('0xad')](_[_0x34e9('0xb1')](_0x37c9d0[_0x34e9('0x89')],function(_0x111d02,_0x414d8d){return _['startsWith'](_0x414d8d,_0x34e9('0x1b'));}),_[_0x34e9('0x41')](_0x30dfb0,function(_0x4b6044){return util[_0x34e9('0xae')]('cf_%d',_0x4b6044['id']);}));}})[_0x34e9('0x12')](function(_0x4406c5){if(_0x4406c5&&!_[_0x34e9('0x51')](_0x4406c5)){var _0x49457f=squel[_0x34e9('0x11')]()[_0x34e9('0xb2')](_0x34e9('0x34'))[_0x34e9('0xb3')](_0x4406c5)['where'](_0x34e9('0xb4'),_0x37c9d0[_0x34e9('0xac')]['id'])[_0x34e9('0xb5')]();return db[_0x34e9('0x72')][_0x34e9('0x24')](_0x49457f[_0x34e9('0x4b')],{'replacements':_0x49457f['values']});}})[_0x34e9('0x12')](function(){if(_0x37c9d0[_0x34e9('0x89')]['phone']&&_0x2e3559){return db[_0x34e9('0x8f')]['update']({'phone':_0x37c9d0['body'][_0x34e9('0xb6')]},{'where':{'ContactId':_0x2e3559['id']}});}})['then'](function(){return _0x2e3559;})[_0x34e9('0x12')](respondWithResult(_0xe0be0e,null))[_0x34e9('0x81')](handleError(_0xe0be0e,null));};exports[_0x34e9('0xb7')]=function(_0x3493b9,_0x709e1){var _0x396bd7={};var _0x5ddae0={};var _0x268d5d;var _0x1910c9;return db[_0x34e9('0x73')]['findOne']({'where':{'id':_0x3493b9[_0x34e9('0xac')]['id']}})[_0x34e9('0x12')](handleEntityNotFound(_0x709e1,null))[_0x34e9('0x12')](function(_0x2a4c1c){if(_0x2a4c1c){_0x268d5d=_0x2a4c1c;_0x5ddae0[_0x34e9('0x23')]=_[_0x34e9('0x18')](db['Tag'][_0x34e9('0xb8')]);_0x5ddae0[_0x34e9('0x24')]=_[_0x34e9('0x18')](_0x3493b9[_0x34e9('0x24')]);_0x5ddae0[_0x34e9('0x25')]=_[_0x34e9('0x26')](_0x5ddae0[_0x34e9('0x23')],_0x5ddae0[_0x34e9('0x24')]);_0x396bd7['attributes']=_[_0x34e9('0x26')](_0x5ddae0[_0x34e9('0x23')],qs[_0x34e9('0x28')](_0x3493b9['query'][_0x34e9('0x28')]));_0x396bd7[_0x34e9('0x27')]=_0x396bd7[_0x34e9('0x27')]['length']?_0x396bd7[_0x34e9('0x27')]:_0x5ddae0[_0x34e9('0x23')];_0x396bd7[_0x34e9('0x2c')]=qs[_0x34e9('0xb9')](_0x3493b9['query'][_0x34e9('0xb9')]);_0x396bd7['where']=qs[_0x34e9('0x25')](_[_0x34e9('0x2e')](_0x3493b9[_0x34e9('0x24')],_0x5ddae0[_0x34e9('0x25')]));if(_0x3493b9[_0x34e9('0x24')][_0x34e9('0x4e')]){_0x396bd7[_0x34e9('0x2d')]=_[_0x34e9('0x88')](_0x396bd7[_0x34e9('0x2d')],{'$or':_[_0x34e9('0x41')](_0x396bd7[_0x34e9('0x27')],function(_0x268834){var _0x31432a={};_0x31432a[_0x268834]={'$like':'%'+_0x3493b9[_0x34e9('0x24')][_0x34e9('0x4e')]+'%'};return _0x31432a;})});}_0x396bd7=_[_0x34e9('0x88')]({},_0x396bd7,_0x3493b9[_0x34e9('0xba')]);return _0x268d5d[_0x34e9('0xb7')](_0x396bd7);}})[_0x34e9('0x12')](function(_0x5f4f64){if(_0x5f4f64){_0x1910c9=_0x5f4f64[_0x34e9('0x19')];if(!_0x3493b9['query'][_0x34e9('0x29')](_0x34e9('0x2a'))){_0x396bd7[_0x34e9('0x2b')]=qs[_0x34e9('0x2b')](_0x3493b9[_0x34e9('0x24')]['limit']);_0x396bd7['offset']=qs[_0x34e9('0xe')](_0x3493b9[_0x34e9('0x24')][_0x34e9('0xe')]);}return _0x268d5d['getTags'](_0x396bd7);}})[_0x34e9('0x12')](function(_0x344b6){if(_0x344b6){return _0x344b6?{'count':_0x1910c9,'rows':_0x344b6}:null;}})['then'](respondWithResult(_0x709e1,null))[_0x34e9('0x81')](handleError(_0x709e1,null));};exports[_0x34e9('0xbb')]=function(_0x383ba4,_0xffa10c){if(_0x383ba4[_0x34e9('0x89')]['id']){delete _0x383ba4[_0x34e9('0x89')]['id'];}return db[_0x34e9('0x73')]['findOne']({'where':{'id':_0x383ba4[_0x34e9('0xac')]['id']}})['then'](handleEntityNotFound(_0xffa10c,null))[_0x34e9('0x12')](function(_0x585709){if(_0x585709){return _0x585709[_0x34e9('0xbb')](_0x383ba4[_0x34e9('0x89')][_0x34e9('0xbc')]||[]);}return null;})[_0x34e9('0x12')](respondWithResult(_0xffa10c,null))[_0x34e9('0x81')](handleError(_0xffa10c,null));};exports['getHoppers']=function(_0x5a2862,_0x18d998){var _0x12c705={'raw':![],'where':{}};var _0x467340={};var _0x37a7e5={'count':0x0,'rows':[]};return db['CmContact'][_0x34e9('0x1e')]({'where':{'id':_0x5a2862[_0x34e9('0xac')]['id']}})['then'](handleEntityNotFound(_0x18d998,null))[_0x34e9('0x12')](function(_0x38a32b){if(_0x38a32b){_0x467340[_0x34e9('0x23')]=_[_0x34e9('0x18')](db['CmHopper'][_0x34e9('0xb8')]);_0x467340[_0x34e9('0x24')]=_['keys'](_0x5a2862[_0x34e9('0x24')]);_0x467340['filters']=_[_0x34e9('0x26')](_0x467340[_0x34e9('0x23')],_0x467340[_0x34e9('0x24')]);_0x12c705[_0x34e9('0x27')]=_[_0x34e9('0x26')](_0x467340[_0x34e9('0x23')],qs[_0x34e9('0x28')](_0x5a2862[_0x34e9('0x24')]['fields']));_0x12c705[_0x34e9('0x27')]=_0x12c705['attributes'][_0x34e9('0x19')]?_0x12c705[_0x34e9('0x27')]:_0x467340[_0x34e9('0x23')];if(!_0x5a2862['query'][_0x34e9('0x29')](_0x34e9('0x2a'))){_0x12c705[_0x34e9('0x2b')]=qs[_0x34e9('0x2b')](_0x5a2862['query']['limit']);_0x12c705[_0x34e9('0xe')]=qs[_0x34e9('0xe')](_0x5a2862[_0x34e9('0x24')][_0x34e9('0xe')]);}_0x12c705[_0x34e9('0x2c')]=qs[_0x34e9('0xb9')](_0x5a2862['query']['sort']);_0x12c705['where']=qs['filters'](_['pick'](_0x5a2862['query'],_0x467340['filters']));_0x12c705[_0x34e9('0x2d')][_0x34e9('0xbd')]=_0x38a32b['id'];if(_0x5a2862[_0x34e9('0x24')][_0x34e9('0x4e')]){_0x12c705[_0x34e9('0x2d')]=_['merge'](_0x12c705['where'],{'$or':_[_0x34e9('0x41')](_0x12c705['attributes'],function(_0x4123b){var _0x40aab7={};_0x40aab7[_0x4123b]={'$like':'%'+_0x5a2862[_0x34e9('0x24')][_0x34e9('0x4e')]+'%'};return _0x40aab7;})});}_0x12c705=_[_0x34e9('0x88')]({},_0x12c705,_0x5a2862['options']);return db[_0x34e9('0x8f')]['count']({'where':_0x12c705['where']})[_0x34e9('0x12')](function(_0x5c3d85){_0x37a7e5[_0x34e9('0xd')]=_0x5c3d85;if(_0x5a2862[_0x34e9('0x24')][_0x34e9('0xbe')]){_0x12c705[_0x34e9('0xbf')]=[{'all':!![]}];}return db['CmHopper'][_0x34e9('0x84')](_0x12c705);})['then'](function(_0x4d7514){_0x37a7e5[_0x34e9('0x80')]=_0x4d7514;return _0x37a7e5;});}})['then'](respondWithFilteredResult(_0x18d998,_0x12c705))[_0x34e9('0x81')](handleError(_0x18d998,null));};exports[_0x34e9('0xc0')]=function(_0x4f6828,_0x1c58e2){var _0x31b07a={'raw':!![],'where':{}};var _0xa60565={};var _0x2d48ea={'count':0x0,'rows':[]};return db[_0x34e9('0x73')][_0x34e9('0x1e')]({'where':{'id':_0x4f6828[_0x34e9('0xac')]['id']}})[_0x34e9('0x12')](handleEntityNotFound(_0x1c58e2,null))[_0x34e9('0x12')](function(_0x226dc5){if(_0x226dc5){_0xa60565[_0x34e9('0x23')]=_[_0x34e9('0x18')](db[_0x34e9('0x9d')][_0x34e9('0xb8')]);_0xa60565[_0x34e9('0x24')]=_[_0x34e9('0x18')](_0x4f6828[_0x34e9('0x24')]);_0xa60565[_0x34e9('0x25')]=_[_0x34e9('0x26')](_0xa60565[_0x34e9('0x23')],_0xa60565[_0x34e9('0x24')]);_0x31b07a[_0x34e9('0x27')]=_[_0x34e9('0x26')](_0xa60565[_0x34e9('0x23')],qs['fields'](_0x4f6828[_0x34e9('0x24')]['fields']));_0x31b07a[_0x34e9('0x27')]=_0x31b07a['attributes'][_0x34e9('0x19')]?_0x31b07a[_0x34e9('0x27')]:_0xa60565[_0x34e9('0x23')];if(!_0x4f6828[_0x34e9('0x24')][_0x34e9('0x29')]('nolimit')){_0x31b07a[_0x34e9('0x2b')]=qs[_0x34e9('0x2b')](_0x4f6828[_0x34e9('0x24')][_0x34e9('0x2b')]);_0x31b07a[_0x34e9('0xe')]=qs[_0x34e9('0xe')](_0x4f6828[_0x34e9('0x24')][_0x34e9('0xe')]);}_0x31b07a[_0x34e9('0x2c')]=qs[_0x34e9('0xb9')](_0x4f6828[_0x34e9('0x24')][_0x34e9('0xb9')]);_0x31b07a[_0x34e9('0x2d')]=qs[_0x34e9('0x25')](_[_0x34e9('0x2e')](_0x4f6828[_0x34e9('0x24')],_0xa60565[_0x34e9('0x25')]));_0x31b07a[_0x34e9('0x2d')][_0x34e9('0xbd')]=_0x226dc5['id'];if(_0x4f6828['query'][_0x34e9('0x4e')]){_0x31b07a[_0x34e9('0x2d')]=_[_0x34e9('0x88')](_0x31b07a[_0x34e9('0x2d')],{'$or':_[_0x34e9('0x41')](_0x31b07a[_0x34e9('0x27')],function(_0x23d3eb){var _0x39deee={};_0x39deee[_0x23d3eb]={'$like':'%'+_0x4f6828[_0x34e9('0x24')]['filter']+'%'};return _0x39deee;})});}_0x31b07a=_[_0x34e9('0x88')]({},_0x31b07a,_0x4f6828[_0x34e9('0xba')]);return db[_0x34e9('0x9d')][_0x34e9('0xd')]({'where':_0x31b07a['where']})[_0x34e9('0x12')](function(_0x59b6d){_0x2d48ea[_0x34e9('0xd')]=_0x59b6d;if(_0x4f6828['query'][_0x34e9('0xbe')]){_0x31b07a['include']=[{'all':!![]}];}return db[_0x34e9('0x9d')][_0x34e9('0x84')](_0x31b07a);})[_0x34e9('0x12')](function(_0x3ef501){_0x2d48ea['rows']=_0x3ef501;return _0x2d48ea;});}})[_0x34e9('0x12')](respondWithFilteredResult(_0x1c58e2,_0x31b07a))['catch'](handleError(_0x1c58e2,null));};exports['getHopperFinals']=function(_0xaf844b,_0x5925e3){var _0x4b9777={'raw':!![],'where':{}};var _0x4514ec={};var _0x330e19={'count':0x0,'rows':[]};return db[_0x34e9('0x73')][_0x34e9('0x1e')]({'where':{'id':_0xaf844b['params']['id']}})[_0x34e9('0x12')](handleEntityNotFound(_0x5925e3,null))[_0x34e9('0x12')](function(_0x5cdb62){if(_0x5cdb62){_0x4514ec[_0x34e9('0x23')]=_[_0x34e9('0x18')](db['CmHopperFinal'][_0x34e9('0xb8')]);_0x4514ec['query']=_[_0x34e9('0x18')](_0xaf844b[_0x34e9('0x24')]);_0x4514ec['filters']=_[_0x34e9('0x26')](_0x4514ec[_0x34e9('0x23')],_0x4514ec['query']);_0x4b9777['attributes']=_[_0x34e9('0x26')](_0x4514ec[_0x34e9('0x23')],qs[_0x34e9('0x28')](_0xaf844b[_0x34e9('0x24')][_0x34e9('0x28')]));_0x4b9777[_0x34e9('0x27')]=_0x4b9777[_0x34e9('0x27')][_0x34e9('0x19')]?_0x4b9777[_0x34e9('0x27')]:_0x4514ec[_0x34e9('0x23')];if(!_0xaf844b[_0x34e9('0x24')]['hasOwnProperty'](_0x34e9('0x2a'))){_0x4b9777[_0x34e9('0x2b')]=qs[_0x34e9('0x2b')](_0xaf844b['query'][_0x34e9('0x2b')]);_0x4b9777['offset']=qs[_0x34e9('0xe')](_0xaf844b[_0x34e9('0x24')][_0x34e9('0xe')]);}_0x4b9777['order']=qs[_0x34e9('0xb9')](_0xaf844b[_0x34e9('0x24')]['sort']);_0x4b9777[_0x34e9('0x2d')]=qs[_0x34e9('0x25')](_[_0x34e9('0x2e')](_0xaf844b[_0x34e9('0x24')],_0x4514ec[_0x34e9('0x25')]));_0x4b9777[_0x34e9('0x2d')]['ContactId']=_0x5cdb62['id'];if(_0xaf844b[_0x34e9('0x24')][_0x34e9('0x4e')]){_0x4b9777['where']=_[_0x34e9('0x88')](_0x4b9777[_0x34e9('0x2d')],{'$or':_['map'](_0x4b9777[_0x34e9('0x27')],function(_0x395e7e){var _0x376199={};_0x376199[_0x395e7e]={'$like':'%'+_0xaf844b[_0x34e9('0x24')][_0x34e9('0x4e')]+'%'};return _0x376199;})});}_0x4b9777=_[_0x34e9('0x88')]({},_0x4b9777,_0xaf844b[_0x34e9('0xba')]);return db[_0x34e9('0x9c')][_0x34e9('0xd')]({'where':_0x4b9777[_0x34e9('0x2d')]})[_0x34e9('0x12')](function(_0x48918a){_0x330e19[_0x34e9('0xd')]=_0x48918a;if(_0xaf844b[_0x34e9('0x24')][_0x34e9('0xbe')]){_0x4b9777[_0x34e9('0xbf')]=[{'all':!![]}];}return db[_0x34e9('0x9c')][_0x34e9('0x84')](_0x4b9777);})[_0x34e9('0x12')](function(_0x12a859){_0x330e19[_0x34e9('0x80')]=_0x12a859;return _0x330e19;});}})['then'](respondWithFilteredResult(_0x5925e3,_0x4b9777))[_0x34e9('0x81')](handleError(_0x5925e3,null));};exports[_0x34e9('0xc1')]=function(_0x2cc30a,_0x2ca7ff){var _0x14efdb={'raw':!![],'where':{}};var _0x4941bb={};var _0x53697f={'count':0x0,'rows':[]};return db[_0x34e9('0x73')][_0x34e9('0x1e')]({'where':{'id':_0x2cc30a[_0x34e9('0xac')]['id']}})[_0x34e9('0x12')](handleEntityNotFound(_0x2ca7ff,null))[_0x34e9('0x12')](function(_0xa4e11){if(_0xa4e11){_0x4941bb[_0x34e9('0x23')]=_['keys'](db[_0x34e9('0xc2')][_0x34e9('0xb8')]);_0x4941bb[_0x34e9('0x24')]=_[_0x34e9('0x18')](_0x2cc30a[_0x34e9('0x24')]);_0x4941bb['filters']=_['intersection'](_0x4941bb[_0x34e9('0x23')],_0x4941bb['query']);_0x14efdb['attributes']=_[_0x34e9('0x26')](_0x4941bb[_0x34e9('0x23')],qs['fields'](_0x2cc30a[_0x34e9('0x24')]['fields']));_0x14efdb[_0x34e9('0x27')]=_0x14efdb['attributes'][_0x34e9('0x19')]?_0x14efdb[_0x34e9('0x27')]:_0x4941bb['model'];if(!_0x2cc30a['query'][_0x34e9('0x29')](_0x34e9('0x2a'))){_0x14efdb[_0x34e9('0x2b')]=qs[_0x34e9('0x2b')](_0x2cc30a['query'][_0x34e9('0x2b')]);_0x14efdb[_0x34e9('0xe')]=qs[_0x34e9('0xe')](_0x2cc30a[_0x34e9('0x24')][_0x34e9('0xe')]);}_0x14efdb['order']=qs['sort'](_0x2cc30a[_0x34e9('0x24')][_0x34e9('0xb9')]);_0x14efdb[_0x34e9('0x2d')]=qs['filters'](_[_0x34e9('0x2e')](_0x2cc30a[_0x34e9('0x24')],_0x4941bb['filters']));_0x14efdb['where'][_0x34e9('0xbd')]=_0xa4e11['id'];if(_0x2cc30a[_0x34e9('0x24')][_0x34e9('0x4e')]){_0x14efdb[_0x34e9('0x2d')]=_[_0x34e9('0x88')](_0x14efdb[_0x34e9('0x2d')],{'$or':_[_0x34e9('0x41')](_0x14efdb['attributes'],function(_0x42cdd0){var _0x2fce4f={};_0x2fce4f[_0x42cdd0]={'$like':'%'+_0x2cc30a[_0x34e9('0x24')]['filter']+'%'};return _0x2fce4f;})});}_0x14efdb=_[_0x34e9('0x88')]({},_0x14efdb,_0x2cc30a['options']);return db['JscriptySessionReport']['count']({'where':_0x14efdb[_0x34e9('0x2d')]})[_0x34e9('0x12')](function(_0x11381d){_0x53697f['count']=_0x11381d;if(_0x2cc30a[_0x34e9('0x24')][_0x34e9('0xbe')]){_0x14efdb[_0x34e9('0xbf')]=[{'all':!![]}];}return db[_0x34e9('0xc2')][_0x34e9('0x84')](_0x14efdb);})[_0x34e9('0x12')](function(_0x2a7499){_0x53697f[_0x34e9('0x80')]=_0x2a7499;return _0x53697f;});}})[_0x34e9('0x12')](respondWithFilteredResult(_0x2ca7ff,_0x14efdb))[_0x34e9('0x81')](handleError(_0x2ca7ff,null));};exports[_0x34e9('0xc3')]=function(_0x1e6c33,_0x185989){try{if(!_0x1e6c33[_0x34e9('0x89')]['ListId']){throw new Error(_0x34e9('0xc4'));}if(!_0x1e6c33[_0x34e9('0x89')][_0x34e9('0xc5')]){throw new Error(_0x34e9('0xc6'));}if(!_0x1e6c33[_0x34e9('0x89')][_0x34e9('0xc7')]){throw new Error('No\x20association\x20values\x20specified!');}if(!_0x1e6c33[_0x34e9('0x89')][_0x34e9('0xc8')]){throw new Error(_0x34e9('0xc9'));}var _0x256e7c=_0x1e6c33[_0x34e9('0x89')][_0x34e9('0xc5')][_0x34e9('0x58')](',');var _0x2f43ff=_0x1e6c33['body'][_0x34e9('0xc7')][_0x34e9('0x58')](',');if(!_0x256e7c['length']||!_0x2f43ff[_0x34e9('0x19')]||_0x256e7c[_0x34e9('0x19')]!==_0x2f43ff[_0x34e9('0x19')]){throw new Error(_0x34e9('0xca'));}_0x1e6c33['body'][_0x34e9('0x28')]=_[_0x34e9('0xcb')](_0x256e7c,_0x2f43ff);if(!_0x1e6c33['body'][_0x34e9('0x28')][_0x34e9('0xb6')]){throw new Error(_0x34e9('0xcc'));}if(!_0x1e6c33['body'][_0x34e9('0x28')][_0x34e9('0xcd')]){throw new Error(_0x34e9('0xce'));}var _0x578d50=path[_0x34e9('0x8d')](config[_0x34e9('0xcf')],_0x34e9('0xd0'),_0x1e6c33[_0x34e9('0xd1')][_0x34e9('0xd2')]);fs['chmodSync'](_0x578d50,parseInt(_0x34e9('0xd3'),0x8));var _0x24b68a=require(_0x34e9('0xd4'))[_0x34e9('0xd5')](path[_0x34e9('0x8d')](__dirname,_0x34e9('0xd6')),[_0x578d50,_0x1e6c33[_0x34e9('0x89')][_0x34e9('0xc5')],_0x1e6c33[_0x34e9('0x89')]['binding_values'],_0x1e6c33[_0x34e9('0x89')][_0x34e9('0x70')],_0x1e6c33[_0x34e9('0x89')][_0x34e9('0xd7')],_0x1e6c33[_0x34e9('0x89')][_0x34e9('0xa8')],_0x1e6c33[_0x34e9('0x89')][_0x34e9('0xc8')]]);return _0x185989['status'](0xc8)[_0x34e9('0xb')]({'message':_0x34e9('0xd8'),'pid':_0x24b68a[_0x34e9('0xd9')]});}catch(_0x377eb8){return _0x185989[_0x34e9('0xa')](0x1f4)['send'](_0x377eb8);}};exports['upload']=function(_0x341151,_0x30e815){var _0x17b854=fs[_0x34e9('0xda')](_0x341151['file'][_0x34e9('0xdb')]);Papa[_0x34e9('0xdc')](_0x17b854,{'header':!![],'skipEmptyLines':!![],'preview':0x1,'complete':function(_0x4403fd){return _0x30e815['status'](0xc8)[_0x34e9('0xb')]({'file':_0x341151[_0x34e9('0xd1')],'fields':_0x4403fd['meta']['fields']});}});};exports[_0x34e9('0xdd')]=function(_0x3c1127,_0x3b36f7){return db[_0x34e9('0x45')]['findAll']({'raw':!![],'attributes':['id'],'where':{'role':_0x34e9('0x6c')}})['then'](function(_0x616e3b){var _0x28bf6d=![];if(!_0x3c1127[_0x34e9('0x89')][_0x34e9('0x70')]){throw new Error(_0x34e9('0xc4'));}if(!_0x3c1127[_0x34e9('0x89')][_0x34e9('0xde')][_0x34e9('0xb6')]){throw new Error(_0x34e9('0xcc'));}if(!_0x3c1127[_0x34e9('0x89')]['binding'][_0x34e9('0xcd')]){throw new Error(_0x34e9('0xce'));}if(!_0x3c1127[_0x34e9('0x89')][_0x34e9('0xc8')]){throw new Error(_0x34e9('0xc9'));}var _0xd57048=require(_0x34e9('0xd4'))[_0x34e9('0xd5')](path['join'](__dirname,_0x34e9('0xdf')),[_0x3c1127[_0x34e9('0xac')]['id'],JSON[_0x34e9('0xe0')](_0x3c1127[_0x34e9('0x89')]),JSON[_0x34e9('0xe0')](_0x616e3b)]);_0xd57048['on'](_0x34e9('0xe1'),function(){_0x28bf6d=!![];return _0x3b36f7[_0x34e9('0xa')](0xc8)[_0x34e9('0xb')]({'message':'start\x20child\x20process\x20correctly!','pid':_0xd57048[_0x34e9('0xd9')]});});_0xd57048['on'](_0x34e9('0xe2'),function(_0x23497a){if(_0x23497a&&!_0x28bf6d){return _0x3b36f7[_0x34e9('0xa')](0x1f4)[_0x34e9('0xb')]({'message':_0x34e9('0xe3'),'pid':_0xd57048[_0x34e9('0xd9')]});}});})['catch'](handleError(_0x3b36f7,null));};exports[_0x34e9('0xe4')]=function(_0x1b6fc3,_0x5ba301){var _0xa71d28=['mail',_0x34e9('0xe5'),'sms',_0x34e9('0xe6'),_0x34e9('0xe7'),_0x34e9('0xe8'),_0x34e9('0xe9')];var _0x202645={'offset':0x0,'order':qs[_0x34e9('0xb9')]('-createdAt')},_0x5f8954={'count':0x0,'rows':[]};Promise[_0x34e9('0x6a')]()['then'](function(){if(_0x1b6fc3[_0x34e9('0x24')][_0x34e9('0xea')]){if(!_[_0x34e9('0xeb')](_0xa71d28,_0x1b6fc3[_0x34e9('0x24')][_0x34e9('0xea')]['toLowerCase']())){throw new Error('Invalid\x20channel');}_0xa71d28=[_0x1b6fc3[_0x34e9('0x24')]['channel'][_0x34e9('0xec')]()];}if(_0x1b6fc3[_0x34e9('0x24')][_0x34e9('0xed')]){try{var _0x100627=JSON[_0x34e9('0xdc')](_0x1b6fc3[_0x34e9('0x24')][_0x34e9('0xed')]);if(!moment(_0x100627[_0x34e9('0x32')])[_0x34e9('0xee')]()){throw new Error(_0x34e9('0xef'));}if(!moment(_0x100627['to'])[_0x34e9('0xee')]()){throw new Error('Invalid\x20date\x20for\x20range\x20to\x20filter');}}catch(_0xcd703e){throw new Error('Invalid\x20createdAt\x20filter');}}if(!_0x1b6fc3[_0x34e9('0x24')][_0x34e9('0x29')](_0x34e9('0x2a'))){_0x202645['limit']=qs[_0x34e9('0x2b')](_0x1b6fc3[_0x34e9('0x24')][_0x34e9('0x2b')]||0xa);_0x202645[_0x34e9('0xe')]=qs[_0x34e9('0xe')](_0x1b6fc3[_0x34e9('0x24')][_0x34e9('0xe')]);}var _0x1dc3e3=_0xa71d28[_0x34e9('0x41')](function(_0x20505d){if(_0x20505d===_0x34e9('0xe9')){var _0x35147d={'attributes':['id',_0x34e9('0xf0'),_0x34e9('0x22'),_0x34e9('0xf1'),_0x34e9('0xf2'),_0x34e9('0xf3'),_0x34e9('0xf4'),'endtime','duration','note','createdAt',_0x34e9('0xf5'),_0x34e9('0xf6'),_0x34e9('0xf7'),_0x34e9('0xf8')],'where':{'ContactId':_0x1b6fc3[_0x34e9('0xac')]['id']},'include':[{'model':db['User'],'as':_0x34e9('0x45'),'attributes':['id',_0x34e9('0x15'),_0x34e9('0xf9'),_0x34e9('0x86')]}],'order':[['createdAt',_0x34e9('0x67')]]};if(_0x1b6fc3[_0x34e9('0x24')]['range']){_0x35147d[_0x34e9('0x2d')]['createdAt']={'$gte':_0x100627[_0x34e9('0x32')],'$lte':_0x100627['to']};}return db[_0x34e9('0xfa')]['findAndCountAll'](_0x35147d)[_0x34e9('0x12')](function(_0x21d579){_0x5f8954[_0x34e9('0xd')]+=_0x21d579[_0x34e9('0xd')];return _['map'](_0x21d579[_0x34e9('0x80')],function(_0x4815da){var _0x473b32=_0x4815da['get']({'plain':!![]});_0x473b32[_0x34e9('0xea')]=_0x20505d;if(_0x473b32['User']){_0x473b32['User']={'id':_0x473b32[_0x34e9('0x45')]['id'],'name':_0x473b32[_0x34e9('0x45')]['name'],'fullname':_0x473b32[_0x34e9('0x45')][_0x34e9('0xf9')],'alias':_0x473b32[_0x34e9('0x45')]['alias']};}return _0x473b32;});});}else{var _0x4fde1b=_[_0x34e9('0xfb')](_0x20505d)+(_0x20505d==='chat'?_0x34e9('0xfc'):_0x34e9('0xfd'));var _0x10fc15={'attributes':['id',_0x34e9('0xfe'),'closedAt',_0x34e9('0xff'),'note','disposition',_0x34e9('0x100'),_0x34e9('0x101'),_0x34e9('0xf8'),_0x4fde1b+'Id'],'where':{'ContactId':_0x1b6fc3['params']['id']},'include':[{'model':db[_0x4fde1b],'as':_0x34e9('0xfd'),'attributes':['id',_0x34e9('0x15'),_0x34e9('0x102')]},{'model':db[_0x34e9('0x45')],'as':'Owner','attributes':['id','name',_0x34e9('0xf9')]},{'model':db['Tag'],'as':_0x34e9('0x7f'),'attributes':['id',_0x34e9('0x15'),_0x34e9('0x31')],'through':{'attributes':[]}}],'order':[[_0x34e9('0xff'),_0x34e9('0x67')]]};if(_0x1b6fc3[_0x34e9('0x24')]['range']){_0x10fc15['where'][_0x34e9('0xff')]={'$gte':_0x100627[_0x34e9('0x32')],'$lte':_0x100627['to']};}switch(_0x20505d){case _0x34e9('0xe5'):_0x10fc15[_0x34e9('0x27')]['push'](_0x34e9('0x103'),'customerIp',_0x34e9('0x104'),_0x34e9('0x105'),_0x34e9('0x106'),_0x34e9('0x107'),_0x34e9('0x108'),_0x34e9('0x109'),_0x34e9('0x10a'));break;case'mail':_0x10fc15[_0x34e9('0x27')]['push'](_0x34e9('0x10b'),_0x34e9('0x10c'));break;case'openchannel':_0x10fc15[_0x34e9('0x27')]['push'](_0x34e9('0x10d'),'threadId');break;}return db[_[_0x34e9('0xfb')](_0x20505d)+_0x34e9('0x10e')][_0x34e9('0x10f')](_0x10fc15)[_0x34e9('0x12')](function(_0x5003f3){_0x5f8954[_0x34e9('0xd')]+=_0x5003f3[_0x34e9('0xd')];return _[_0x34e9('0x41')](_0x5003f3['rows'],function(_0x168439){var _0x4a2823=_0x168439[_0x34e9('0x8a')]({'plain':!![]});_0x4a2823[_0x34e9('0xea')]=_0x20505d;if(_0x4a2823[_0x34e9('0x110')]){_0x4a2823[_0x34e9('0x110')]={'id':_0x4a2823[_0x34e9('0x110')]['id'],'name':_0x4a2823[_0x34e9('0x110')][_0x34e9('0x15')],'fullname':_0x4a2823['Owner'][_0x34e9('0xf9')]};}return _0x4a2823;});});}});return Promise[_0x34e9('0x20')](_0x1dc3e3);})[_0x34e9('0x12')](function(_0x4059f0){return _(_0x4059f0)[_0x34e9('0x111')]()['sortBy'](_0x34e9('0xff'))['reverse']()[_0x34e9('0x40')]();})[_0x34e9('0x12')](function(_0x51857c){_0x5f8954[_0x34e9('0x80')]=_0x202645[_0x34e9('0x2b')]?_0x51857c[_0x34e9('0x112')](_0x202645[_0x34e9('0xe')],_0x202645[_0x34e9('0xe')]+_0x202645[_0x34e9('0x2b')]):_0x51857c;return _0x5f8954;})[_0x34e9('0x12')](respondWithFilteredResult(_0x5ba301,_0x202645))[_0x34e9('0x81')](handleError(_0x5ba301,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x65fe=['update','hasOwnProperty','exports','events','../../mysqldb','CmContact','save'];(function(_0x5753ea,_0x4d30f3){var _0x533ed7=function(_0x4f3290){while(--_0x4f3290){_0x5753ea['push'](_0x5753ea['shift']());}};_0x533ed7(++_0x4d30f3);}(_0x65fe,0x153));var _0xe65f=function(_0x275f7e,_0x2d13e0){_0x275f7e=_0x275f7e-0x0;var _0xff90b9=_0x65fe[_0x275f7e];return _0xff90b9;};'use strict';var EventEmitter=require(_0xe65f('0x0'));var CmContact=require(_0xe65f('0x1'))['db'][_0xe65f('0x2')];var CmContactEvents=new EventEmitter();CmContactEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xe65f('0x3'),'afterUpdate':_0xe65f('0x4'),'afterDestroy':'remove'};function emitEvent(_0x4f6e3e){return function(_0x4f6cac,_0x5d02a6,_0x3f3a20){CmContactEvents['emit'](_0x4f6e3e+':'+_0x4f6cac['id'],_0x4f6cac);CmContactEvents['emit'](_0x4f6e3e,_0x4f6cac);_0x3f3a20(null);};}for(var e in events){if(events[_0xe65f('0x5')](e)){var event=events[e];CmContact['hook'](e,emitEvent(event));}}module[_0xe65f('0x6')]=CmContactEvents;
\ No newline at end of file
+var _0xbe42=['remove','emit','hasOwnProperty','hook','events','../../mysqldb','CmContact','setMaxListeners','save','update'];(function(_0x232377,_0x3e1643){var _0xaffbe4=function(_0x389038){while(--_0x389038){_0x232377['push'](_0x232377['shift']());}};_0xaffbe4(++_0x3e1643);}(_0xbe42,0x13a));var _0x2be4=function(_0x5dfc2a,_0x1a953f){_0x5dfc2a=_0x5dfc2a-0x0;var _0x3f1a71=_0xbe42[_0x5dfc2a];return _0x3f1a71;};'use strict';var EventEmitter=require(_0x2be4('0x0'));var CmContact=require(_0x2be4('0x1'))['db'][_0x2be4('0x2')];var CmContactEvents=new EventEmitter();CmContactEvents[_0x2be4('0x3')](0x0);var events={'afterCreate':_0x2be4('0x4'),'afterUpdate':_0x2be4('0x5'),'afterDestroy':_0x2be4('0x6')};function emitEvent(_0x502f5c){return function(_0x523384,_0x1af027,_0x4227d2){CmContactEvents[_0x2be4('0x7')](_0x502f5c+':'+_0x523384['id'],_0x523384);CmContactEvents['emit'](_0x502f5c,_0x523384);_0x4227d2(null);};}for(var e in events){if(events[_0x2be4('0x8')](e)){var event=events[e];CmContact[_0x2be4('0x9')](e,emitEvent(event));}}module['exports']=CmContactEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe194=['bluebird','request-promise','path','rimraf','../../config/environment','./cmContact.attributes','exports','define','cm_contacts','phone','fti_cm_contacts','firstName','mobile','fax','email','utf8mb4','utf8mb4_unicode_ci','models','get','cmContact','afterCreate','inspect','CmHopper','findOne','cmContact,\x20afterCreate\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','create','ListId','priority','scheduledat','YYYY-MM-DD\x20HH:mm:ss','callbackUniqueid','format','isNil','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','CmHopperFinal','then','cmContact,\x20afterCreate,\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20VoiceQueue\x20','catch','error','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20Campaign\x20','findAll','outbound','dialCheckDuplicateType','CmList','Lists','length','always','onlyIfOpen','VoiceQueue','BlackLists','CmHopperBlack','cmContact,\x20%s,\x20%s','message','Campaign','isEmpty','destroy','ContactId','CampaignId','push','info','[CmContact][afterDestroy][Succesfull]','lodash','util','moment'];(function(_0x4d58ce,_0x47fb4f){var _0x504769=function(_0x53d920){while(--_0x53d920){_0x4d58ce['push'](_0x4d58ce['shift']());}};_0x504769(++_0x47fb4f);}(_0xe194,0x105));var _0x4e19=function(_0x1b64dd,_0x2cf769){_0x1b64dd=_0x1b64dd-0x0;var _0xeb464c=_0xe194[_0x1b64dd];return _0xeb464c;};'use strict';var _=require(_0x4e19('0x0'));var util=require(_0x4e19('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x4e19('0x2'));var BPromise=require(_0x4e19('0x3'));var rp=require(_0x4e19('0x4'));var fs=require('fs');var path=require(_0x4e19('0x5'));var rimraf=require(_0x4e19('0x6'));var config=require(_0x4e19('0x7'));var attributes=require(_0x4e19('0x8'));module[_0x4e19('0x9')]=function(_0x383bd9,_0x32b94b){return _0x383bd9[_0x4e19('0xa')]('CmContact',attributes,{'tableName':_0x4e19('0xb'),'paranoid':!![],'indexes':[{'name':_0x4e19('0xc'),'fields':[_0x4e19('0xc')]},{'name':_0x4e19('0xd'),'fields':[_0x4e19('0xe'),'lastName',_0x4e19('0xc'),_0x4e19('0xf'),_0x4e19('0x10'),_0x4e19('0x11')],'type':'FULLTEXT'}],'timestamps':!![],'charset':_0x4e19('0x12'),'collate':_0x4e19('0x13'),'hooks':{'afterCreate':function(_0x3f5827,_0xecea91,_0x65afa3){var _0x527652=_0x383bd9[_0x4e19('0x14')];var _0x241253=_0x3f5827[_0x4e19('0x15')]({'plain':!![]});function _0x913cc9(){return function(_0x4b2dbe){logger['error'](_0x4e19('0x16'),_0x4e19('0x17'),util[_0x4e19('0x18')](_0x4b2dbe,{'showHidden':![],'depth':null}));};}var _0x414f4a=function(_0x5d3ea3){return new BPromise(function(_0x14c80e,_0x13596f){_0x527652[_0x4e19('0x19')][_0x4e19('0x1a')]({'where':{'phone':_0x241253['phone'],'VoiceQueueId':_0x5d3ea3['id']}})['then'](function(_0x1120b0){if(!_['isNil'](_0x1120b0)){throw new Error(_0x4e19('0x1b')+_0x241253[_0x4e19('0xc')]+_0x4e19('0x1c')+_0x5d3ea3['id']);}return _0x527652[_0x4e19('0x19')][_0x4e19('0x1d')]({'phone':_0x241253['phone'],'ContactId':_0x241253['id'],'ListId':_0x241253[_0x4e19('0x1e')],'priority':_0x241253[_0x4e19('0x1f')]?_0x241253[_0x4e19('0x1f')]:0x2,'scheduledat':_0x241253[_0x4e19('0x20')]?_0x241253[_0x4e19('0x20')]:moment()['format'](_0x4e19('0x21')),'callback':_0x241253['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x241253[_0x4e19('0x22')]?_0x241253[_0x4e19('0x22')]:undefined,'callbackat':_0x241253[_0x4e19('0x22')]?moment()[_0x4e19('0x23')](_0x4e19('0x21')):undefined,'VoiceQueueId':_0x5d3ea3['id']});})['catch'](function(_0x1a535f){_0x13596f(_0x1a535f);});});};var _0x4881f8=function(_0x49a68a){return new BPromise(function(_0x192861,_0x2e2824){_0x527652[_0x4e19('0x19')]['findOne']({'where':{'phone':_0x241253[_0x4e19('0xc')],'VoiceQueueId':_0x49a68a['id']}})['then'](function(_0x4384fb){if(!_[_0x4e19('0x24')](_0x4384fb)){throw new Error(_0x4e19('0x1b')+_0x241253[_0x4e19('0xc')]+_0x4e19('0x25')+_0x49a68a['id']);}return _0x527652[_0x4e19('0x26')][_0x4e19('0x1a')]({'where':{'calleridnum':_0x241253[_0x4e19('0xc')],'VoiceQueueId':_0x49a68a['id']}});})[_0x4e19('0x27')](function(_0x669fb9){if(!_[_0x4e19('0x24')](_0x669fb9)){throw new Error(_0x4e19('0x28')+_0x241253[_0x4e19('0xc')]+_0x4e19('0x29')+_0x49a68a['id']);}return _0x527652[_0x4e19('0x19')]['create']({'phone':_0x241253['phone'],'ContactId':_0x241253['id'],'ListId':_0x241253['ListId'],'priority':_0x241253['priority']?_0x241253['priority']:0x2,'scheduledat':_0x241253[_0x4e19('0x20')]?_0x241253[_0x4e19('0x20')]:moment()[_0x4e19('0x23')](_0x4e19('0x21')),'callback':_0x241253[_0x4e19('0x22')]?!![]:![],'callbackuniqueid':_0x241253[_0x4e19('0x22')]?_0x241253[_0x4e19('0x22')]:undefined,'callbackat':_0x241253[_0x4e19('0x22')]?moment()[_0x4e19('0x23')](_0x4e19('0x21')):undefined,'VoiceQueueId':_0x49a68a['id']});})[_0x4e19('0x2a')](function(_0x2905b4){_0x2e2824(_0x2905b4);});});};function _0x556b01(){return function(_0x581667){logger[_0x4e19('0x2b')](_0x4e19('0x16'),_0x4e19('0x17'),util[_0x4e19('0x18')](_0x581667,{'showHidden':![],'depth':null}));};}var _0x206968=function(_0xc89941){return new BPromise(function(_0x1901d7,_0x948f7c){_0x527652[_0x4e19('0x19')][_0x4e19('0x1a')]({'where':{'phone':_0x241253[_0x4e19('0xc')],'CampaignId':_0xc89941['id']}})['then'](function(_0x37d829){if(!_['isNil'](_0x37d829)){throw new Error(_0x4e19('0x1b')+_0x241253[_0x4e19('0xc')]+_0x4e19('0x2c')+_0xc89941['id']);}return _0x527652[_0x4e19('0x19')][_0x4e19('0x1d')]({'phone':_0x241253[_0x4e19('0xc')],'ContactId':_0x241253['id'],'ListId':_0x241253[_0x4e19('0x1e')],'priority':_0x241253[_0x4e19('0x1f')]?_0x241253[_0x4e19('0x1f')]:0x2,'scheduledat':_0x241253[_0x4e19('0x20')]?_0x241253[_0x4e19('0x20')]:moment()[_0x4e19('0x23')]('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x241253[_0x4e19('0x22')]?!![]:![],'callbackuniqueid':_0x241253[_0x4e19('0x22')]?_0x241253[_0x4e19('0x22')]:undefined,'callbackat':_0x241253['callbackUniqueid']?moment()[_0x4e19('0x23')](_0x4e19('0x21')):undefined,'CampaignId':_0xc89941['id']});})[_0x4e19('0x2a')](function(_0x2acc05){_0x948f7c(_0x2acc05);});});};var _0x41bf65=function(_0xd3893){return new BPromise(function(_0x2f5c4d,_0x31adad){_0x527652['CmHopper'][_0x4e19('0x1a')]({'where':{'phone':_0x241253[_0x4e19('0xc')],'CampaignId':_0xd3893['id']}})[_0x4e19('0x27')](function(_0x272153){if(!_[_0x4e19('0x24')](_0x272153)){throw new Error('cmContact,\x20afterCreate\x20'+_0x241253[_0x4e19('0xc')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20Campaign\x20'+_0xd3893['id']);}return _0x527652[_0x4e19('0x26')][_0x4e19('0x1a')]({'where':{'calleridnum':_0x241253[_0x4e19('0xc')],'CampaignId':_0xd3893['id']}});})[_0x4e19('0x27')](function(_0x495e37){if(!_[_0x4e19('0x24')](_0x495e37)){throw new Error(_0x4e19('0x28')+_0x241253[_0x4e19('0xc')]+'\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20Campaign\x20'+_0xd3893['id']);}return _0x527652[_0x4e19('0x19')]['create']({'phone':_0x241253['phone'],'ContactId':_0x241253['id'],'ListId':_0x241253[_0x4e19('0x1e')],'priority':_0x241253[_0x4e19('0x1f')]?_0x241253[_0x4e19('0x1f')]:0x2,'scheduledat':_0x241253[_0x4e19('0x20')]?_0x241253[_0x4e19('0x20')]:moment()[_0x4e19('0x23')](_0x4e19('0x21')),'callback':_0x241253[_0x4e19('0x22')]?!![]:![],'callbackuniqueid':_0x241253[_0x4e19('0x22')]?_0x241253[_0x4e19('0x22')]:undefined,'callbackat':_0x241253[_0x4e19('0x22')]?moment()[_0x4e19('0x23')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'CampaignId':_0xd3893['id']});})['catch'](function(_0x338002){_0x31adad(_0x338002);});});};if(_0x241253[_0x4e19('0x1e')]){_0x527652['VoiceQueue'][_0x4e19('0x2d')]({'where':{'type':_0x4e19('0x2e')},'attributes':['id',_0x4e19('0x2f')],'include':[{'model':_0x527652[_0x4e19('0x30')],'as':_0x4e19('0x31'),'where':{'id':_0x241253[_0x4e19('0x1e')]}}]})[_0x4e19('0x27')](function(_0x3f4548){if(_0x3f4548){var _0x165310=[];for(var _0x5696a9=0x0,_0x395e98;_0x5696a9<_0x3f4548[_0x4e19('0x32')];_0x5696a9+=0x1){_0x395e98=_0x3f4548[_0x5696a9][_0x4e19('0x15')]({'plain':!![]});switch(_0x395e98[_0x4e19('0x2f')]){case _0x4e19('0x33'):_0x4881f8(_0x395e98)[_0x4e19('0x2a')](_0x913cc9());break;case _0x4e19('0x34'):_0x414f4a(_0x395e98)['catch'](_0x913cc9());break;default:_0x527652[_0x4e19('0x19')]['create']({'phone':_0x241253['phone'],'ContactId':_0x241253['id'],'ListId':_0x241253[_0x4e19('0x1e')],'scheduledat':_0x241253[_0x4e19('0x20')]?_0x241253[_0x4e19('0x20')]:moment()[_0x4e19('0x23')](_0x4e19('0x21')),'priority':_0x241253[_0x4e19('0x1f')]?_0x241253['priority']:0x2,'callback':_0x241253[_0x4e19('0x22')]?!![]:![],'callbackuniqueid':_0x241253[_0x4e19('0x22')]?_0x241253[_0x4e19('0x22')]:undefined,'callbackat':_0x241253[_0x4e19('0x22')]?moment()[_0x4e19('0x23')](_0x4e19('0x21')):undefined,'VoiceQueueId':_0x395e98['id']})['catch'](_0x913cc9());}}}})[_0x4e19('0x27')](function(){return _0x527652[_0x4e19('0x35')][_0x4e19('0x2d')]({'where':{'type':_0x4e19('0x2e')},'attributes':['id'],'include':[{'model':_0x527652[_0x4e19('0x30')],'as':_0x4e19('0x36'),'where':{'id':_0x241253[_0x4e19('0x1e')]}}]})['then'](function(_0x407100){if(_0x407100){var _0xb35d7f=[];for(var _0x4a27b1=0x0,_0x388745;_0x4a27b1<_0x407100[_0x4e19('0x32')];_0x4a27b1+=0x1){_0x388745=_0x407100[_0x4a27b1]['get']({'plain':!![]});_0x527652[_0x4e19('0x37')][_0x4e19('0x1d')]({'phone':_0x241253[_0x4e19('0xc')],'ContactId':_0x241253['id'],'ListId':_0x241253[_0x4e19('0x1e')],'VoiceQueueId':_0x388745['id']})[_0x4e19('0x2a')](function(_0x17df39){logger['error'](_0x4e19('0x38'),_0x4e19('0x17'),_0x17df39[_0x4e19('0x39')]);});}}});})['then'](function(){return _0x527652[_0x4e19('0x3a')]['findAll']({'attributes':['id',_0x4e19('0x2f')],'include':[{'model':_0x527652['CmList'],'as':_0x4e19('0x31'),'where':{'id':_0x241253[_0x4e19('0x1e')]}}]})[_0x4e19('0x27')](function(_0x306c77){if(_0x306c77){var _0x443b65=[];for(var _0x115477=0x0,_0x5641df;_0x115477<_0x306c77[_0x4e19('0x32')];_0x115477+=0x1){_0x5641df=_0x306c77[_0x115477][_0x4e19('0x15')]({'plain':!![]});switch(_0x5641df[_0x4e19('0x2f')]){case'always':_0x41bf65(_0x5641df)[_0x4e19('0x2a')](_0x556b01());break;case _0x4e19('0x34'):_0x206968(_0x5641df)[_0x4e19('0x2a')](_0x556b01());break;default:_0x527652['CmHopper'][_0x4e19('0x1d')]({'phone':_0x241253[_0x4e19('0xc')],'ContactId':_0x241253['id'],'ListId':_0x241253[_0x4e19('0x1e')],'scheduledat':_0x241253[_0x4e19('0x20')]?_0x241253[_0x4e19('0x20')]:moment()[_0x4e19('0x23')](_0x4e19('0x21')),'priority':_0x241253['priority']?_0x241253[_0x4e19('0x1f')]:0x2,'callback':_0x241253[_0x4e19('0x22')]?!![]:![],'callbackuniqueid':_0x241253[_0x4e19('0x22')]?_0x241253[_0x4e19('0x22')]:undefined,'callbackat':_0x241253['callbackUniqueid']?moment()[_0x4e19('0x23')]('YYYY-MM-DD\x20HH:mm:ss'):undefined,'CampaignId':_0x5641df['id']})['catch'](_0x556b01());}}}});})['then'](function(){return _0x527652[_0x4e19('0x3a')][_0x4e19('0x2d')]({'attributes':['id'],'include':[{'model':_0x527652[_0x4e19('0x30')],'as':'BlackLists','where':{'id':_0x241253[_0x4e19('0x1e')]}}]})[_0x4e19('0x27')](function(_0x43a0b1){if(_0x43a0b1){var _0x125e48=[];for(var _0x421585=0x0,_0x4cca57;_0x421585<_0x43a0b1[_0x4e19('0x32')];_0x421585+=0x1){_0x4cca57=_0x43a0b1[_0x421585][_0x4e19('0x15')]({'plain':!![]});_0x527652[_0x4e19('0x37')][_0x4e19('0x1d')]({'phone':_0x241253[_0x4e19('0xc')],'ContactId':_0x241253['id'],'ListId':_0x241253['ListId'],'CampaignId':_0x4cca57['id']})[_0x4e19('0x2a')](function(_0x17bd38){logger['error'](_0x4e19('0x38'),_0x4e19('0x17'),_0x17bd38[_0x4e19('0x39')]);});}}});})['then'](function(){_0x65afa3();})['catch'](function(_0x243d67){logger[_0x4e19('0x2b')](_0x4e19('0x38'),_0x4e19('0x17'),_0x243d67['message']);_0x65afa3(_0x243d67);});}else{_0x65afa3(new Error('List\x20not\x20found'));}},'afterDestroy':function(_0x716e46,_0x5707bd,_0x4424d4){var _0x4c10d3=_0x383bd9[_0x4e19('0x14')];var _0x3b6915=_0x716e46[_0x4e19('0x15')]({'plain':!![]});return _0x4c10d3['CmHopper'][_0x4e19('0x2d')]({'raw':!![],'where':{'ListId':_0x3b6915[_0x4e19('0x1e')],'ContactId':_0x3b6915['id']}})[_0x4e19('0x27')](function(_0x31ba30){if(!_[_0x4e19('0x3b')](_0x31ba30)){var _0x2e59a0=[];for(var _0xced86a=0x0;_0xced86a<_0x31ba30[_0x4e19('0x32')];_0xced86a+=0x1){var _0x13f238=_0x4c10d3['CmHopper'][_0x4e19('0x3c')]({'where':{'ListId':_0x31ba30[_0xced86a]['ListId'],'ContactId':_0x31ba30[_0xced86a][_0x4e19('0x3d')],'VoiceQueueId':_0x31ba30[_0xced86a]['VoiceQueueId'],'CampaignId':_0x31ba30[_0xced86a][_0x4e19('0x3e')]}});_0x2e59a0[_0x4e19('0x3f')](_0x13f238);}return BPromise['all'](_0x2e59a0);}})[_0x4e19('0x27')](function(_0x59359b){logger[_0x4e19('0x40')](_0x4e19('0x41'),util[_0x4e19('0x18')](_0x59359b,{'showHidden':![],'depth':null}));_0x4424d4();})[_0x4e19('0x2a')](function(_0x21b636){logger['error']('[CmContact][afterDestroy][Error]',util[_0x4e19('0x18')](_0x21b636,{'showHidden':![],'depth':null}));_0x4424d4(_0x21b636);});}}});};
\ No newline at end of file
+var _0x5acf=['lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./cmContact.attributes','exports','define','CmContact','cm_contacts','phone','firstName','lastName','mobile','fax','utf8mb4','utf8mb4_unicode_ci','models','get','error','cmContact','afterCreate','inspect','CmHopper','findOne','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','create','ListId','priority','scheduledat','YYYY-MM-DD\x20HH:mm:ss','callbackUniqueid','format','catch','then','cmContact,\x20afterCreate\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20VoiceQueue\x20','CmHopperFinal','isNil','cmContact,\x20afterCreate,\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20VoiceQueue\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20onlyIfOpen,\x20exist\x20in\x20hopper\x20Campaign\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopper\x20Campaign\x20','\x20contact\x20not\x20insert\x20in\x20hopper,\x20check\x20duplicate\x20always,\x20exist\x20in\x20hopperFinal\x20Campaign\x20','outbound','dialCheckDuplicateType','Lists','always','onlyIfOpen','VoiceQueue','findAll','length','CmHopperBlack','cmContact,\x20%s,\x20%s','Campaign','CmList','BlackLists','List\x20not\x20found','isEmpty','destroy','CampaignId','push','all'];(function(_0x1c546c,_0x5c57cb){var _0x2cc384=function(_0x4dee11){while(--_0x4dee11){_0x1c546c['push'](_0x1c546c['shift']());}};_0x2cc384(++_0x5c57cb);}(_0x5acf,0x88));var _0xf5ac=function(_0x5740b8,_0x2dbc22){_0x5740b8=_0x5740b8-0x0;var _0x2ebe76=_0x5acf[_0x5740b8];return _0x2ebe76;};'use strict';var _=require(_0xf5ac('0x0'));var util=require(_0xf5ac('0x1'));var logger=require(_0xf5ac('0x2'))(_0xf5ac('0x3'));var moment=require(_0xf5ac('0x4'));var BPromise=require(_0xf5ac('0x5'));var rp=require(_0xf5ac('0x6'));var fs=require('fs');var path=require(_0xf5ac('0x7'));var rimraf=require(_0xf5ac('0x8'));var config=require(_0xf5ac('0x9'));var attributes=require(_0xf5ac('0xa'));module[_0xf5ac('0xb')]=function(_0x11dd8c,_0x1785e0){return _0x11dd8c[_0xf5ac('0xc')](_0xf5ac('0xd'),attributes,{'tableName':_0xf5ac('0xe'),'paranoid':!![],'indexes':[{'name':_0xf5ac('0xf'),'fields':[_0xf5ac('0xf')]},{'name':'fti_cm_contacts','fields':[_0xf5ac('0x10'),_0xf5ac('0x11'),_0xf5ac('0xf'),_0xf5ac('0x12'),_0xf5ac('0x13'),'email'],'type':'FULLTEXT'}],'timestamps':!![],'charset':_0xf5ac('0x14'),'collate':_0xf5ac('0x15'),'hooks':{'afterCreate':function(_0x37fc3e,_0x4ea0c5,_0x4d888f){var _0x5f4590=_0x11dd8c[_0xf5ac('0x16')];var _0x3155a0=_0x37fc3e[_0xf5ac('0x17')]({'plain':!![]});function _0x58f5d2(){return function(_0x1a8cd8){logger[_0xf5ac('0x18')](_0xf5ac('0x19'),_0xf5ac('0x1a'),util[_0xf5ac('0x1b')](_0x1a8cd8,{'showHidden':![],'depth':null}));};}var _0x1c11b1=function(_0xff4e){return new BPromise(function(_0x5d0da7,_0x4e2a8e){_0x5f4590[_0xf5ac('0x1c')][_0xf5ac('0x1d')]({'where':{'phone':_0x3155a0[_0xf5ac('0xf')],'VoiceQueueId':_0xff4e['id']}})['then'](function(_0x2f7ff7){if(!_['isNil'](_0x2f7ff7)){throw new Error('cmContact,\x20afterCreate\x20'+_0x3155a0[_0xf5ac('0xf')]+_0xf5ac('0x1e')+_0xff4e['id']);}return _0x5f4590[_0xf5ac('0x1c')][_0xf5ac('0x1f')]({'phone':_0x3155a0[_0xf5ac('0xf')],'ContactId':_0x3155a0['id'],'ListId':_0x3155a0[_0xf5ac('0x20')],'priority':_0x3155a0['priority']?_0x3155a0[_0xf5ac('0x21')]:0x2,'scheduledat':_0x3155a0[_0xf5ac('0x22')]?_0x3155a0[_0xf5ac('0x22')]:moment()['format'](_0xf5ac('0x23')),'callback':_0x3155a0[_0xf5ac('0x24')]?!![]:![],'callbackuniqueid':_0x3155a0[_0xf5ac('0x24')]?_0x3155a0[_0xf5ac('0x24')]:undefined,'callbackat':_0x3155a0[_0xf5ac('0x24')]?moment()[_0xf5ac('0x25')](_0xf5ac('0x23')):undefined,'VoiceQueueId':_0xff4e['id']});})[_0xf5ac('0x26')](function(_0x24adad){_0x4e2a8e(_0x24adad);});});};var _0x183b75=function(_0x802c40){return new BPromise(function(_0x412397,_0x1bb590){_0x5f4590[_0xf5ac('0x1c')][_0xf5ac('0x1d')]({'where':{'phone':_0x3155a0[_0xf5ac('0xf')],'VoiceQueueId':_0x802c40['id']}})[_0xf5ac('0x27')](function(_0x237929){if(!_['isNil'](_0x237929)){throw new Error(_0xf5ac('0x28')+_0x3155a0[_0xf5ac('0xf')]+_0xf5ac('0x29')+_0x802c40['id']);}return _0x5f4590[_0xf5ac('0x2a')]['findOne']({'where':{'calleridnum':_0x3155a0[_0xf5ac('0xf')],'VoiceQueueId':_0x802c40['id']}});})[_0xf5ac('0x27')](function(_0xb42e5e){if(!_[_0xf5ac('0x2b')](_0xb42e5e)){throw new Error(_0xf5ac('0x2c')+_0x3155a0[_0xf5ac('0xf')]+_0xf5ac('0x2d')+_0x802c40['id']);}return _0x5f4590[_0xf5ac('0x1c')][_0xf5ac('0x1f')]({'phone':_0x3155a0['phone'],'ContactId':_0x3155a0['id'],'ListId':_0x3155a0[_0xf5ac('0x20')],'priority':_0x3155a0[_0xf5ac('0x21')]?_0x3155a0[_0xf5ac('0x21')]:0x2,'scheduledat':_0x3155a0['scheduledat']?_0x3155a0['scheduledat']:moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'callback':_0x3155a0['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x3155a0[_0xf5ac('0x24')]?_0x3155a0['callbackUniqueid']:undefined,'callbackat':_0x3155a0[_0xf5ac('0x24')]?moment()[_0xf5ac('0x25')](_0xf5ac('0x23')):undefined,'VoiceQueueId':_0x802c40['id']});})['catch'](function(_0x1504c4){_0x1bb590(_0x1504c4);});});};function _0x15dd79(){return function(_0x20cc41){logger[_0xf5ac('0x18')](_0xf5ac('0x19'),_0xf5ac('0x1a'),util[_0xf5ac('0x1b')](_0x20cc41,{'showHidden':![],'depth':null}));};}var _0x3c2121=function(_0x57cf97){return new BPromise(function(_0x2ee265,_0x4fc61a){_0x5f4590[_0xf5ac('0x1c')]['findOne']({'where':{'phone':_0x3155a0['phone'],'CampaignId':_0x57cf97['id']}})[_0xf5ac('0x27')](function(_0xebef37){if(!_[_0xf5ac('0x2b')](_0xebef37)){throw new Error('cmContact,\x20afterCreate\x20'+_0x3155a0['phone']+_0xf5ac('0x2e')+_0x57cf97['id']);}return _0x5f4590[_0xf5ac('0x1c')][_0xf5ac('0x1f')]({'phone':_0x3155a0[_0xf5ac('0xf')],'ContactId':_0x3155a0['id'],'ListId':_0x3155a0[_0xf5ac('0x20')],'priority':_0x3155a0['priority']?_0x3155a0[_0xf5ac('0x21')]:0x2,'scheduledat':_0x3155a0[_0xf5ac('0x22')]?_0x3155a0[_0xf5ac('0x22')]:moment()[_0xf5ac('0x25')](_0xf5ac('0x23')),'callback':_0x3155a0[_0xf5ac('0x24')]?!![]:![],'callbackuniqueid':_0x3155a0['callbackUniqueid']?_0x3155a0[_0xf5ac('0x24')]:undefined,'callbackat':_0x3155a0[_0xf5ac('0x24')]?moment()['format'](_0xf5ac('0x23')):undefined,'CampaignId':_0x57cf97['id']});})['catch'](function(_0x266630){_0x4fc61a(_0x266630);});});};var _0x303f9a=function(_0x44a7da){return new BPromise(function(_0x31d185,_0x2115a6){_0x5f4590[_0xf5ac('0x1c')][_0xf5ac('0x1d')]({'where':{'phone':_0x3155a0[_0xf5ac('0xf')],'CampaignId':_0x44a7da['id']}})[_0xf5ac('0x27')](function(_0x6aeb15){if(!_['isNil'](_0x6aeb15)){throw new Error(_0xf5ac('0x28')+_0x3155a0[_0xf5ac('0xf')]+_0xf5ac('0x2f')+_0x44a7da['id']);}return _0x5f4590[_0xf5ac('0x2a')][_0xf5ac('0x1d')]({'where':{'calleridnum':_0x3155a0[_0xf5ac('0xf')],'CampaignId':_0x44a7da['id']}});})[_0xf5ac('0x27')](function(_0x412b77){if(!_[_0xf5ac('0x2b')](_0x412b77)){throw new Error('cmContact,\x20afterCreate,\x20'+_0x3155a0[_0xf5ac('0xf')]+_0xf5ac('0x30')+_0x44a7da['id']);}return _0x5f4590['CmHopper'][_0xf5ac('0x1f')]({'phone':_0x3155a0[_0xf5ac('0xf')],'ContactId':_0x3155a0['id'],'ListId':_0x3155a0[_0xf5ac('0x20')],'priority':_0x3155a0['priority']?_0x3155a0[_0xf5ac('0x21')]:0x2,'scheduledat':_0x3155a0[_0xf5ac('0x22')]?_0x3155a0[_0xf5ac('0x22')]:moment()[_0xf5ac('0x25')](_0xf5ac('0x23')),'callback':_0x3155a0['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x3155a0[_0xf5ac('0x24')]?_0x3155a0[_0xf5ac('0x24')]:undefined,'callbackat':_0x3155a0['callbackUniqueid']?moment()[_0xf5ac('0x25')](_0xf5ac('0x23')):undefined,'CampaignId':_0x44a7da['id']});})['catch'](function(_0x4bfeb7){_0x2115a6(_0x4bfeb7);});});};if(_0x3155a0[_0xf5ac('0x20')]){_0x5f4590['VoiceQueue']['findAll']({'where':{'type':_0xf5ac('0x31')},'attributes':['id',_0xf5ac('0x32')],'include':[{'model':_0x5f4590['CmList'],'as':_0xf5ac('0x33'),'where':{'id':_0x3155a0[_0xf5ac('0x20')]}}]})[_0xf5ac('0x27')](function(_0x7aeed3){if(_0x7aeed3){var _0x2a4c5b=[];for(var _0x2a6069=0x0,_0x4c6136;_0x2a6069<_0x7aeed3['length'];_0x2a6069+=0x1){_0x4c6136=_0x7aeed3[_0x2a6069]['get']({'plain':!![]});switch(_0x4c6136[_0xf5ac('0x32')]){case _0xf5ac('0x34'):_0x183b75(_0x4c6136)[_0xf5ac('0x26')](_0x58f5d2());break;case _0xf5ac('0x35'):_0x1c11b1(_0x4c6136)[_0xf5ac('0x26')](_0x58f5d2());break;default:_0x5f4590[_0xf5ac('0x1c')][_0xf5ac('0x1f')]({'phone':_0x3155a0[_0xf5ac('0xf')],'ContactId':_0x3155a0['id'],'ListId':_0x3155a0[_0xf5ac('0x20')],'scheduledat':_0x3155a0[_0xf5ac('0x22')]?_0x3155a0[_0xf5ac('0x22')]:moment()['format'](_0xf5ac('0x23')),'priority':_0x3155a0[_0xf5ac('0x21')]?_0x3155a0[_0xf5ac('0x21')]:0x2,'callback':_0x3155a0[_0xf5ac('0x24')]?!![]:![],'callbackuniqueid':_0x3155a0[_0xf5ac('0x24')]?_0x3155a0['callbackUniqueid']:undefined,'callbackat':_0x3155a0[_0xf5ac('0x24')]?moment()[_0xf5ac('0x25')](_0xf5ac('0x23')):undefined,'VoiceQueueId':_0x4c6136['id']})[_0xf5ac('0x26')](_0x58f5d2());}}}})['then'](function(){return _0x5f4590[_0xf5ac('0x36')][_0xf5ac('0x37')]({'where':{'type':_0xf5ac('0x31')},'attributes':['id'],'include':[{'model':_0x5f4590['CmList'],'as':'BlackLists','where':{'id':_0x3155a0['ListId']}}]})[_0xf5ac('0x27')](function(_0x123d96){if(_0x123d96){var _0x8c67ec=[];for(var _0x227bcf=0x0,_0x515318;_0x227bcf<_0x123d96[_0xf5ac('0x38')];_0x227bcf+=0x1){_0x515318=_0x123d96[_0x227bcf][_0xf5ac('0x17')]({'plain':!![]});_0x5f4590[_0xf5ac('0x39')][_0xf5ac('0x1f')]({'phone':_0x3155a0['phone'],'ContactId':_0x3155a0['id'],'ListId':_0x3155a0[_0xf5ac('0x20')],'VoiceQueueId':_0x515318['id']})[_0xf5ac('0x26')](function(_0x1d11a6){logger[_0xf5ac('0x18')](_0xf5ac('0x3a'),_0xf5ac('0x1a'),_0x1d11a6['message']);});}}});})[_0xf5ac('0x27')](function(){return _0x5f4590[_0xf5ac('0x3b')]['findAll']({'attributes':['id',_0xf5ac('0x32')],'include':[{'model':_0x5f4590[_0xf5ac('0x3c')],'as':_0xf5ac('0x33'),'where':{'id':_0x3155a0[_0xf5ac('0x20')]}}]})[_0xf5ac('0x27')](function(_0x332ba5){if(_0x332ba5){var _0x3a0373=[];for(var _0x2a7163=0x0,_0xc2d37e;_0x2a7163<_0x332ba5['length'];_0x2a7163+=0x1){_0xc2d37e=_0x332ba5[_0x2a7163][_0xf5ac('0x17')]({'plain':!![]});switch(_0xc2d37e['dialCheckDuplicateType']){case _0xf5ac('0x34'):_0x303f9a(_0xc2d37e)[_0xf5ac('0x26')](_0x15dd79());break;case _0xf5ac('0x35'):_0x3c2121(_0xc2d37e)[_0xf5ac('0x26')](_0x15dd79());break;default:_0x5f4590[_0xf5ac('0x1c')]['create']({'phone':_0x3155a0[_0xf5ac('0xf')],'ContactId':_0x3155a0['id'],'ListId':_0x3155a0['ListId'],'scheduledat':_0x3155a0['scheduledat']?_0x3155a0[_0xf5ac('0x22')]:moment()[_0xf5ac('0x25')]('YYYY-MM-DD\x20HH:mm:ss'),'priority':_0x3155a0['priority']?_0x3155a0['priority']:0x2,'callback':_0x3155a0['callbackUniqueid']?!![]:![],'callbackuniqueid':_0x3155a0[_0xf5ac('0x24')]?_0x3155a0[_0xf5ac('0x24')]:undefined,'callbackat':_0x3155a0[_0xf5ac('0x24')]?moment()[_0xf5ac('0x25')](_0xf5ac('0x23')):undefined,'CampaignId':_0xc2d37e['id']})[_0xf5ac('0x26')](_0x15dd79());}}}});})[_0xf5ac('0x27')](function(){return _0x5f4590[_0xf5ac('0x3b')][_0xf5ac('0x37')]({'attributes':['id'],'include':[{'model':_0x5f4590[_0xf5ac('0x3c')],'as':_0xf5ac('0x3d'),'where':{'id':_0x3155a0[_0xf5ac('0x20')]}}]})[_0xf5ac('0x27')](function(_0x57feba){if(_0x57feba){var _0x5dd4d0=[];for(var _0x1afe48=0x0,_0x563b46;_0x1afe48<_0x57feba[_0xf5ac('0x38')];_0x1afe48+=0x1){_0x563b46=_0x57feba[_0x1afe48][_0xf5ac('0x17')]({'plain':!![]});_0x5f4590[_0xf5ac('0x39')][_0xf5ac('0x1f')]({'phone':_0x3155a0[_0xf5ac('0xf')],'ContactId':_0x3155a0['id'],'ListId':_0x3155a0[_0xf5ac('0x20')],'CampaignId':_0x563b46['id']})[_0xf5ac('0x26')](function(_0xb4a713){logger[_0xf5ac('0x18')](_0xf5ac('0x3a'),_0xf5ac('0x1a'),_0xb4a713['message']);});}}});})[_0xf5ac('0x27')](function(){_0x4d888f();})['catch'](function(_0x10c225){logger['error'](_0xf5ac('0x3a'),_0xf5ac('0x1a'),_0x10c225['message']);_0x4d888f(_0x10c225);});}else{_0x4d888f(new Error(_0xf5ac('0x3e')));}},'afterDestroy':function(_0x3b5399,_0x5af939,_0x5a15ba){var _0x79343b=_0x11dd8c[_0xf5ac('0x16')];var _0x48ace7=_0x3b5399['get']({'plain':!![]});return _0x79343b[_0xf5ac('0x1c')]['findAll']({'raw':!![],'where':{'ListId':_0x48ace7[_0xf5ac('0x20')],'ContactId':_0x48ace7['id']}})['then'](function(_0x18273a){if(!_[_0xf5ac('0x3f')](_0x18273a)){var _0x47196e=[];for(var _0x2aa76c=0x0;_0x2aa76c<_0x18273a[_0xf5ac('0x38')];_0x2aa76c+=0x1){var _0x31b492=_0x79343b[_0xf5ac('0x1c')][_0xf5ac('0x40')]({'where':{'ListId':_0x18273a[_0x2aa76c][_0xf5ac('0x20')],'ContactId':_0x18273a[_0x2aa76c]['ContactId'],'VoiceQueueId':_0x18273a[_0x2aa76c]['VoiceQueueId'],'CampaignId':_0x18273a[_0x2aa76c][_0xf5ac('0x41')]}});_0x47196e[_0xf5ac('0x42')](_0x31b492);}return BPromise[_0xf5ac('0x43')](_0x47196e);}})[_0xf5ac('0x27')](function(_0x40a41c){logger['info']('[CmContact][afterDestroy][Succesfull]',util[_0xf5ac('0x1b')](_0x40a41c,{'showHidden':![],'depth':null}));_0x5a15ba();})[_0xf5ac('0x26')](function(_0x406a77){logger[_0xf5ac('0x18')]('[CmContact][afterDestroy][Error]',util[_0xf5ac('0x1b')](_0x406a77,{'showHidden':![],'depth':null}));_0x5a15ba(_0x406a77);});}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x415f=['CmContact','options','raw','where','attributes','limit','include','model','map','CreateCmContact','create','body','keys','length','startsWith','cf_','update','table','cm_contacts','set','id\x20=\x20?','sequelize','query','lodash','randomstring','ioredis','squel','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','http','localhost','socket.io-emitter','redis','./cmContact.socket','request','then','info','CmContact,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','catch','GetCmContact'];(function(_0x473c51,_0x4dc4d7){var _0x26adc2=function(_0x1f5878){while(--_0x1f5878){_0x473c51['push'](_0x473c51['shift']());}};_0x26adc2(++_0x4dc4d7);}(_0x415f,0x13d));var _0xf415=function(_0x4b909e,_0x31dffd){_0x4b909e=_0x4b909e-0x0;var _0x3c798c=_0x415f[_0x4b909e];return _0x3c798c;};'use strict';var _=require(_0xf415('0x0'));var util=require('util');var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xf415('0x1'));var fs=require('fs');var Redis=require(_0xf415('0x2'));var squel=require(_0xf415('0x3'));var db=require(_0xf415('0x4'))['db'];var utils=require(_0xf415('0x5'));var logger=require(_0xf415('0x6'))('rpc');var config=require(_0xf415('0x7'));var jayson=require(_0xf415('0x8'));var client=jayson['client'][_0xf415('0x9')]({'port':0x232a});config['redis']=_['defaults'](config['redis'],{'host':_0xf415('0xa'),'port':0x18eb});var socket=require(_0xf415('0xb'))(new Redis(config[_0xf415('0xc')]));require(_0xf415('0xd'))['register'](socket);function respondWithRpcPromise(_0x19c833,_0x2ba77f,_0x2a91d7){return new BPromise(function(_0x135bc9,_0x3919cb){return client[_0xf415('0xe')](_0x19c833,_0x2a91d7)[_0xf415('0xf')](function(_0x429427){logger[_0xf415('0x10')](_0xf415('0x11'),_0x2ba77f,_0xf415('0x12'));logger[_0xf415('0x13')]('CmContact,\x20%s,\x20%s,\x20%s',_0x2ba77f,'request\x20sent',JSON[_0xf415('0x14')](_0x429427));if(_0x429427[_0xf415('0x15')]){if(_0x429427['error'][_0xf415('0x16')]===0x1f4){logger[_0xf415('0x15')](_0xf415('0x11'),_0x2ba77f,_0x429427[_0xf415('0x15')][_0xf415('0x17')]);return _0x3919cb(_0x429427['error'][_0xf415('0x17')]);}logger[_0xf415('0x15')]('CmContact,\x20%s,\x20%s',_0x2ba77f,_0x429427[_0xf415('0x15')]['message']);return _0x135bc9(_0x429427[_0xf415('0x15')][_0xf415('0x17')]);}else{logger[_0xf415('0x10')](_0xf415('0x11'),_0x2ba77f,_0xf415('0x12'));_0x135bc9(_0x429427['result'][_0xf415('0x17')]);}})[_0xf415('0x18')](function(_0x309eef){logger[_0xf415('0x15')]('CmContact,\x20%s,\x20%s',_0x2ba77f,_0x309eef);_0x3919cb(_0x309eef);});});}exports[_0xf415('0x19')]=function(_0x49747e){var _0x594dbf=this;return new Promise(function(_0x33d4a2,_0x52d57e){return db[_0xf415('0x1a')]['findAll']({'raw':_0x49747e['options']?_0x49747e[_0xf415('0x1b')][_0xf415('0x1c')]===undefined?!![]:![]:!![],'where':_0x49747e['options']?_0x49747e['options'][_0xf415('0x1d')]||null:null,'attributes':_0x49747e[_0xf415('0x1b')]?_0x49747e[_0xf415('0x1b')][_0xf415('0x1e')]||null:null,'limit':_0x49747e[_0xf415('0x1b')]?_0x49747e['options'][_0xf415('0x1f')]||null:null,'include':_0x49747e[_0xf415('0x1b')]?_0x49747e[_0xf415('0x1b')][_0xf415('0x20')]?_['map'](_0x49747e[_0xf415('0x1b')]['include'],function(_0x52594d){return{'model':db[_0x52594d[_0xf415('0x21')]],'as':_0x52594d['as'],'attributes':_0x52594d[_0xf415('0x1e')],'include':_0x52594d[_0xf415('0x20')]?_['map'](_0x52594d[_0xf415('0x20')],function(_0x4c9817){return{'model':db[_0x4c9817[_0xf415('0x21')]],'as':_0x4c9817['as'],'attributes':_0x4c9817[_0xf415('0x1e')],'include':_0x4c9817['include']?_[_0xf415('0x22')](_0x4c9817[_0xf415('0x20')],function(_0x266f3c){return{'model':db[_0x266f3c[_0xf415('0x21')]],'as':_0x266f3c['as'],'attributes':_0x266f3c[_0xf415('0x1e')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x465238){logger[_0xf415('0x10')](_0xf415('0x19'),_0x49747e);logger[_0xf415('0x13')]('GetCmContact',_0x49747e,JSON[_0xf415('0x14')](_0x465238));_0x33d4a2(_0x465238);})[_0xf415('0x18')](function(_0x11c1e7){logger['error']('GetCmContact',_0x11c1e7[_0xf415('0x17')],_0x49747e);_0x52d57e(_0x594dbf[_0xf415('0x15')](0x1f4,_0x11c1e7[_0xf415('0x17')]));});});};exports[_0xf415('0x23')]=function(_0x170944){var _0x1938f7=this;return new Promise(function(_0x594807,_0x4fbffb){return db['CmContact'][_0xf415('0x24')](_0x170944[_0xf415('0x25')],{'raw':_0x170944[_0xf415('0x1b')]?_0x170944['options'][_0xf415('0x1c')]===undefined?!![]:![]:!![]})[_0xf415('0xf')](function(_0x15ef3f){var _0x2b8015;for(var _0x5af44b=0x0;_0x5af44b<Object[_0xf415('0x26')](_0x170944[_0xf415('0x25')])[_0xf415('0x27')];_0x5af44b++){var _0x1aa728=Object[_0xf415('0x26')](_0x170944['body'])[_0x5af44b];if(_0x1aa728[_0xf415('0x28')](_0xf415('0x29'))){_0x2b8015=squel[_0xf415('0x2a')]()[_0xf415('0x2b')](_0xf415('0x2c'))[_0xf415('0x2d')](_0x1aa728,_0x170944[_0xf415('0x25')][_0x1aa728])[_0xf415('0x1d')](_0xf415('0x2e'),_0x15ef3f['id'])['toString']();break;}}if(!_0x2b8015)return _0x15ef3f;return db[_0xf415('0x2f')][_0xf415('0x30')](_0x2b8015)[_0xf415('0xf')](function(){return _0x15ef3f;});})[_0xf415('0xf')](function(_0x377193){logger[_0xf415('0x10')]('CreateCmContact',_0x170944);logger['debug'](_0xf415('0x23'),_0x170944,JSON[_0xf415('0x14')](_0x377193));_0x594807(_0x377193);})[_0xf415('0x18')](function(_0x5f2b52){logger[_0xf415('0x15')](_0xf415('0x23'),_0x5f2b52[_0xf415('0x17')],_0x170944);_0x4fbffb(_0x1938f7['error'](0x1f4,_0x5f2b52[_0xf415('0x17')]));});});};
\ No newline at end of file
+var _0xbc17=['message','result','GetCmContact','CmContact','findAll','options','raw','where','attributes','limit','include','map','model','then','catch','CreateCmContact','create','body','keys','startsWith','update','cm_contacts','set','toString','sequelize','query','bluebird','randomstring','ioredis','squel','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','redis','defaults','localhost','./cmContact.socket','register','request','info','debug','CmContact,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','CmContact,\x20%s,\x20%s'];(function(_0x21a9d9,_0x4d5ac8){var _0x46adce=function(_0xfdd336){while(--_0xfdd336){_0x21a9d9['push'](_0x21a9d9['shift']());}};_0x46adce(++_0x4d5ac8);}(_0xbc17,0xb0));var _0x7bc1=function(_0xef4fc0,_0x33cc41){_0xef4fc0=_0xef4fc0-0x0;var _0x57dade=_0xbc17[_0xef4fc0];return _0x57dade;};'use strict';var _=require('lodash');var util=require('util');var moment=require('moment');var BPromise=require(_0x7bc1('0x0'));var rs=require(_0x7bc1('0x1'));var fs=require('fs');var Redis=require(_0x7bc1('0x2'));var squel=require(_0x7bc1('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x7bc1('0x4'));var logger=require(_0x7bc1('0x5'))(_0x7bc1('0x6'));var config=require(_0x7bc1('0x7'));var jayson=require(_0x7bc1('0x8'));var client=jayson[_0x7bc1('0x9')]['http']({'port':0x232a});config[_0x7bc1('0xa')]=_[_0x7bc1('0xb')](config[_0x7bc1('0xa')],{'host':_0x7bc1('0xc'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x7bc1('0xa')]));require(_0x7bc1('0xd'))[_0x7bc1('0xe')](socket);function respondWithRpcPromise(_0x9a0414,_0x15b660,_0x31a50a){return new BPromise(function(_0x2913eb,_0x3fd0e0){return client[_0x7bc1('0xf')](_0x9a0414,_0x31a50a)['then'](function(_0x422d41){logger[_0x7bc1('0x10')]('CmContact,\x20%s,\x20%s',_0x15b660,'request\x20sent');logger[_0x7bc1('0x11')](_0x7bc1('0x12'),_0x15b660,_0x7bc1('0x13'),JSON[_0x7bc1('0x14')](_0x422d41));if(_0x422d41[_0x7bc1('0x15')]){if(_0x422d41[_0x7bc1('0x15')][_0x7bc1('0x16')]===0x1f4){logger['error'](_0x7bc1('0x17'),_0x15b660,_0x422d41[_0x7bc1('0x15')][_0x7bc1('0x18')]);return _0x3fd0e0(_0x422d41[_0x7bc1('0x15')][_0x7bc1('0x18')]);}logger[_0x7bc1('0x15')](_0x7bc1('0x17'),_0x15b660,_0x422d41[_0x7bc1('0x15')][_0x7bc1('0x18')]);return _0x2913eb(_0x422d41[_0x7bc1('0x15')][_0x7bc1('0x18')]);}else{logger['info']('CmContact,\x20%s,\x20%s',_0x15b660,_0x7bc1('0x13'));_0x2913eb(_0x422d41[_0x7bc1('0x19')][_0x7bc1('0x18')]);}})['catch'](function(_0x245c73){logger[_0x7bc1('0x15')]('CmContact,\x20%s,\x20%s',_0x15b660,_0x245c73);_0x3fd0e0(_0x245c73);});});}exports[_0x7bc1('0x1a')]=function(_0x43a496){var _0x59443a=this;return new Promise(function(_0x43f5d1,_0x2a27b1){return db[_0x7bc1('0x1b')][_0x7bc1('0x1c')]({'raw':_0x43a496[_0x7bc1('0x1d')]?_0x43a496['options'][_0x7bc1('0x1e')]===undefined?!![]:![]:!![],'where':_0x43a496['options']?_0x43a496['options'][_0x7bc1('0x1f')]||null:null,'attributes':_0x43a496[_0x7bc1('0x1d')]?_0x43a496['options'][_0x7bc1('0x20')]||null:null,'limit':_0x43a496[_0x7bc1('0x1d')]?_0x43a496[_0x7bc1('0x1d')][_0x7bc1('0x21')]||null:null,'include':_0x43a496[_0x7bc1('0x1d')]?_0x43a496['options'][_0x7bc1('0x22')]?_[_0x7bc1('0x23')](_0x43a496[_0x7bc1('0x1d')][_0x7bc1('0x22')],function(_0x5024d8){return{'model':db[_0x5024d8[_0x7bc1('0x24')]],'as':_0x5024d8['as'],'attributes':_0x5024d8[_0x7bc1('0x20')],'include':_0x5024d8[_0x7bc1('0x22')]?_['map'](_0x5024d8[_0x7bc1('0x22')],function(_0x5f3645){return{'model':db[_0x5f3645['model']],'as':_0x5f3645['as'],'attributes':_0x5f3645[_0x7bc1('0x20')],'include':_0x5f3645[_0x7bc1('0x22')]?_[_0x7bc1('0x23')](_0x5f3645[_0x7bc1('0x22')],function(_0x3d9926){return{'model':db[_0x3d9926[_0x7bc1('0x24')]],'as':_0x3d9926['as'],'attributes':_0x3d9926[_0x7bc1('0x20')]};}):[]};}):[]};}):[]:[]})[_0x7bc1('0x25')](function(_0xc5d2c3){logger['info']('GetCmContact',_0x43a496);logger[_0x7bc1('0x11')](_0x7bc1('0x1a'),_0x43a496,JSON['stringify'](_0xc5d2c3));_0x43f5d1(_0xc5d2c3);})[_0x7bc1('0x26')](function(_0x4d4e96){logger[_0x7bc1('0x15')](_0x7bc1('0x1a'),_0x4d4e96[_0x7bc1('0x18')],_0x43a496);_0x2a27b1(_0x59443a[_0x7bc1('0x15')](0x1f4,_0x4d4e96[_0x7bc1('0x18')]));});});};exports[_0x7bc1('0x27')]=function(_0x25b0d1){var _0x261797=this;return new Promise(function(_0x214e80,_0x12adac){return db[_0x7bc1('0x1b')][_0x7bc1('0x28')](_0x25b0d1[_0x7bc1('0x29')],{'raw':_0x25b0d1[_0x7bc1('0x1d')]?_0x25b0d1['options']['raw']===undefined?!![]:![]:!![]})['then'](function(_0x96ba9b){var _0x952bef;for(var _0x44e0f7=0x0;_0x44e0f7<Object[_0x7bc1('0x2a')](_0x25b0d1['body'])['length'];_0x44e0f7++){var _0x4382ab=Object[_0x7bc1('0x2a')](_0x25b0d1[_0x7bc1('0x29')])[_0x44e0f7];if(_0x4382ab[_0x7bc1('0x2b')]('cf_')){_0x952bef=squel[_0x7bc1('0x2c')]()['table'](_0x7bc1('0x2d'))[_0x7bc1('0x2e')](_0x4382ab,_0x25b0d1[_0x7bc1('0x29')][_0x4382ab])[_0x7bc1('0x1f')]('id\x20=\x20?',_0x96ba9b['id'])[_0x7bc1('0x2f')]();break;}}if(!_0x952bef)return _0x96ba9b;return db[_0x7bc1('0x30')][_0x7bc1('0x31')](_0x952bef)[_0x7bc1('0x25')](function(){return _0x96ba9b;});})['then'](function(_0x391ecd){logger[_0x7bc1('0x10')](_0x7bc1('0x27'),_0x25b0d1);logger[_0x7bc1('0x11')](_0x7bc1('0x27'),_0x25b0d1,JSON['stringify'](_0x391ecd));_0x214e80(_0x391ecd);})['catch'](function(_0xe64923){logger[_0x7bc1('0x15')](_0x7bc1('0x27'),_0xe64923[_0x7bc1('0x18')],_0x25b0d1);_0x12adac(_0x261797['error'](0x1f4,_0xe64923[_0x7bc1('0x18')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['register','length','cmContact:','./cmContact.events','save','remove','emit','removeListener'];(function(_0x19950b,_0x53d0d7){var _0x3c6b41=function(_0x3924ad){while(--_0x3924ad){_0x19950b['push'](_0x19950b['shift']());}};_0x3c6b41(++_0x53d0d7);}(_0xa9e0,0x123));var _0x0a9e=function(_0x28947d,_0x4cc9c6){_0x28947d=_0x28947d-0x0;var _0x12d2ee=_0xa9e0[_0x28947d];return _0x12d2ee;};'use strict';var CmContactEvents=require(_0x0a9e('0x0'));var events=[_0x0a9e('0x1'),_0x0a9e('0x2'),'update'];function createListener(_0x550fbc,_0x18d5c9){return function(_0x4ce2f1){_0x18d5c9[_0x0a9e('0x3')](_0x550fbc,_0x4ce2f1);};}function removeListener(_0x432180,_0x2ab90b){return function(){CmContactEvents[_0x0a9e('0x4')](_0x432180,_0x2ab90b);};}exports[_0x0a9e('0x5')]=function(_0x57b080){for(var _0x219af0=0x0,_0x441e3a=events[_0x0a9e('0x6')];_0x219af0<_0x441e3a;_0x219af0++){var _0x5f41ea=events[_0x219af0];var _0x503809=createListener(_0x0a9e('0x7')+_0x5f41ea,_0x57b080);CmContactEvents['on'](_0x5f41ea,_0x503809);}};
\ No newline at end of file
+var _0xa9e0=['register','length','cmContact:','./cmContact.events','save','remove','emit','removeListener'];(function(_0x57b54c,_0x54ce0d){var _0x59cc19=function(_0xa33bc6){while(--_0xa33bc6){_0x57b54c['push'](_0x57b54c['shift']());}};_0x59cc19(++_0x54ce0d);}(_0xa9e0,0x123));var _0x0a9e=function(_0x481bf7,_0x437f69){_0x481bf7=_0x481bf7-0x0;var _0x461787=_0xa9e0[_0x481bf7];return _0x461787;};'use strict';var CmContactEvents=require(_0x0a9e('0x0'));var events=[_0x0a9e('0x1'),_0x0a9e('0x2'),'update'];function createListener(_0x550fbc,_0x18d5c9){return function(_0x4ce2f1){_0x18d5c9[_0x0a9e('0x3')](_0x550fbc,_0x4ce2f1);};}function removeListener(_0x432180,_0x2ab90b){return function(){CmContactEvents[_0x0a9e('0x4')](_0x432180,_0x2ab90b);};}exports[_0x0a9e('0x5')]=function(_0x57b080){for(var _0x219af0=0x0,_0x441e3a=events[_0x0a9e('0x6')];_0x219af0<_0x441e3a;_0x219af0++){var _0x5f41ea=events[_0x219af0];var _0x503809=createListener(_0x0a9e('0x7')+_0x5f41ea,_0x57b080);CmContactEvents['on'](_0x5f41ea,_0x503809);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3a3b=['./cmContact.controller','get','isAuthenticated','describe','/:id','show','/:id/tags','getTags','getHoppers','getHopperHistories','/:id/hopper_finals','getHopperFinals','/:id/jscripty_sessions','getJscriptySessions','/:id/journey','getJourney','post','merge','create','/create_many','bulkCreate','diskStorage','join','root','server/files/tmp','originalname','format','%s-%s%s','extname','/csv','single','file','uploadCsv','basename','/upload','upload','/upload/:id','delete','destroy','exports','multer','path','connect-timeout','express','Router','../../components/interaction/service','../../config/environment'];(function(_0xa0a809,_0x2f0323){var _0x215075=function(_0x71c85c){while(--_0x71c85c){_0xa0a809['push'](_0xa0a809['shift']());}};_0x215075(++_0x2f0323);}(_0x3a3b,0x86));var _0xb3a3=function(_0x26435d,_0x21fa3c){_0x26435d=_0x26435d-0x0;var _0x195511=_0x3a3b[_0x26435d];return _0x195511;};'use strict';var multer=require(_0xb3a3('0x0'));var util=require('util');var path=require(_0xb3a3('0x1'));var timeout=require(_0xb3a3('0x2'));var express=require(_0xb3a3('0x3'));var router=express[_0xb3a3('0x4')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0xb3a3('0x5'));var config=require(_0xb3a3('0x6'));var controller=require(_0xb3a3('0x7'));router[_0xb3a3('0x8')]('/',auth[_0xb3a3('0x9')](),controller['index']);router['get']('/describe',auth['isAuthenticated'](),controller[_0xb3a3('0xa')]);router[_0xb3a3('0x8')](_0xb3a3('0xb'),auth[_0xb3a3('0x9')](),controller[_0xb3a3('0xc')]);router[_0xb3a3('0x8')](_0xb3a3('0xd'),auth[_0xb3a3('0x9')](),controller[_0xb3a3('0xe')]);router['get']('/:id/hoppers',auth[_0xb3a3('0x9')](),controller[_0xb3a3('0xf')]);router['get']('/:id/hopper_histories',auth[_0xb3a3('0x9')](),controller[_0xb3a3('0x10')]);router[_0xb3a3('0x8')](_0xb3a3('0x11'),auth[_0xb3a3('0x9')](),controller[_0xb3a3('0x12')]);router['get'](_0xb3a3('0x13'),auth[_0xb3a3('0x9')](),controller[_0xb3a3('0x14')]);router['get'](_0xb3a3('0x15'),auth['isAuthenticated'](),controller[_0xb3a3('0x16')]);router[_0xb3a3('0x17')]('/merge',auth[_0xb3a3('0x9')](),controller[_0xb3a3('0x18')]);router['post']('/',auth[_0xb3a3('0x9')](),controller[_0xb3a3('0x19')]);router[_0xb3a3('0x17')](_0xb3a3('0x1a'),auth[_0xb3a3('0x9')](),controller[_0xb3a3('0x1b')]);router[_0xb3a3('0x17')]('/:id/tags',auth[_0xb3a3('0x9')](),controller['setTags']);var upload=multer({'storage':multer[_0xb3a3('0x1c')]({'destination':function(_0xf506fd,_0x339640,_0x3cbb0c){_0x3cbb0c(null,path[_0xb3a3('0x1d')](config[_0xb3a3('0x1e')],_0xb3a3('0x1f')));},'filename':function(_0x4cc7cc,_0x12448f,_0x1dc629){_0x12448f[_0xb3a3('0x20')]=_0x12448f[_0xb3a3('0x20')]['replace'](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0x1dc629(null,util[_0xb3a3('0x21')](_0xb3a3('0x22'),path['basename'](_0x12448f['originalname'],path[_0xb3a3('0x23')](_0x12448f['originalname'])),Date['now'](),path[_0xb3a3('0x23')](_0x12448f[_0xb3a3('0x20')])));}})});router[_0xb3a3('0x17')](_0xb3a3('0x24'),upload[_0xb3a3('0x25')](_0xb3a3('0x26')),controller[_0xb3a3('0x27')]);var upload=multer({'storage':multer[_0xb3a3('0x1c')]({'destination':function(_0x158f96,_0xc58a11,_0x355372){_0x355372(null,path['join'](config[_0xb3a3('0x1e')],_0xb3a3('0x1f')));},'filename':function(_0x43f51e,_0x18deea,_0xa173fd){_0x18deea[_0xb3a3('0x20')]=_0x18deea['originalname']['replace'](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0xa173fd(null,util['format']('%s-%s%s',path[_0xb3a3('0x28')](_0x18deea['originalname'],path['extname'](_0x18deea[_0xb3a3('0x20')])),Date['now'](),path[_0xb3a3('0x23')](_0x18deea[_0xb3a3('0x20')])));}})});router[_0xb3a3('0x17')](_0xb3a3('0x29'),upload['single'](_0xb3a3('0x26')),controller[_0xb3a3('0x2a')]);router[_0xb3a3('0x17')](_0xb3a3('0x2b'),auth[_0xb3a3('0x9')](),controller['import']);router['put'](_0xb3a3('0xb'),auth[_0xb3a3('0x9')](),controller['update']);router[_0xb3a3('0x2c')](_0xb3a3('0xb'),auth['isAuthenticated'](),controller[_0xb3a3('0x2d')]);module[_0xb3a3('0x2e')]=router;
\ No newline at end of file
+var _0x4c8a=['uploadCsv','replace','/upload','single','upload','/upload/:id','import','destroy','multer','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./cmContact.controller','get','isAuthenticated','index','/describe','describe','/:id','show','/:id/tags','getTags','/:id/hoppers','getHoppers','/:id/hopper_histories','getHopperHistories','/:id/hopper_finals','getHopperFinals','post','/merge','merge','create','/create_many','bulkCreate','setTags','diskStorage','root','server/files/tmp','originalname','format','%s-%s%s','basename','extname','now','/csv','file'];(function(_0x1df0a7,_0x34fad7){var _0x340a3a=function(_0x8d1add){while(--_0x8d1add){_0x1df0a7['push'](_0x1df0a7['shift']());}};_0x340a3a(++_0x34fad7);}(_0x4c8a,0xa1));var _0xa4c8=function(_0x5cd27c,_0x264367){_0x5cd27c=_0x5cd27c-0x0;var _0xfcd78a=_0x4c8a[_0x5cd27c];return _0xfcd78a;};'use strict';var multer=require(_0xa4c8('0x0'));var util=require(_0xa4c8('0x1'));var path=require(_0xa4c8('0x2'));var timeout=require(_0xa4c8('0x3'));var express=require('express');var router=express[_0xa4c8('0x4')]();var fs_extra=require(_0xa4c8('0x5'));var auth=require(_0xa4c8('0x6'));var interaction=require(_0xa4c8('0x7'));var config=require(_0xa4c8('0x8'));var controller=require(_0xa4c8('0x9'));router[_0xa4c8('0xa')]('/',auth[_0xa4c8('0xb')](),controller[_0xa4c8('0xc')]);router[_0xa4c8('0xa')](_0xa4c8('0xd'),auth[_0xa4c8('0xb')](),controller[_0xa4c8('0xe')]);router[_0xa4c8('0xa')](_0xa4c8('0xf'),auth[_0xa4c8('0xb')](),controller[_0xa4c8('0x10')]);router[_0xa4c8('0xa')](_0xa4c8('0x11'),auth[_0xa4c8('0xb')](),controller[_0xa4c8('0x12')]);router['get'](_0xa4c8('0x13'),auth[_0xa4c8('0xb')](),controller[_0xa4c8('0x14')]);router[_0xa4c8('0xa')](_0xa4c8('0x15'),auth['isAuthenticated'](),controller[_0xa4c8('0x16')]);router[_0xa4c8('0xa')](_0xa4c8('0x17'),auth[_0xa4c8('0xb')](),controller[_0xa4c8('0x18')]);router['get']('/:id/jscripty_sessions',auth[_0xa4c8('0xb')](),controller['getJscriptySessions']);router[_0xa4c8('0xa')]('/:id/journey',auth[_0xa4c8('0xb')](),controller['getJourney']);router[_0xa4c8('0x19')](_0xa4c8('0x1a'),auth[_0xa4c8('0xb')](),controller[_0xa4c8('0x1b')]);router['post']('/',auth['isAuthenticated'](),controller[_0xa4c8('0x1c')]);router[_0xa4c8('0x19')](_0xa4c8('0x1d'),auth['isAuthenticated'](),controller[_0xa4c8('0x1e')]);router[_0xa4c8('0x19')](_0xa4c8('0x11'),auth[_0xa4c8('0xb')](),controller[_0xa4c8('0x1f')]);var upload=multer({'storage':multer[_0xa4c8('0x20')]({'destination':function(_0x1267f2,_0x3ca48e,_0x81bb55){_0x81bb55(null,path['join'](config[_0xa4c8('0x21')],_0xa4c8('0x22')));},'filename':function(_0x3bc64b,_0x44ca37,_0x2697c5){_0x44ca37[_0xa4c8('0x23')]=_0x44ca37[_0xa4c8('0x23')]['replace'](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0x2697c5(null,util[_0xa4c8('0x24')](_0xa4c8('0x25'),path[_0xa4c8('0x26')](_0x44ca37['originalname'],path[_0xa4c8('0x27')](_0x44ca37[_0xa4c8('0x23')])),Date[_0xa4c8('0x28')](),path[_0xa4c8('0x27')](_0x44ca37['originalname'])));}})});router[_0xa4c8('0x19')](_0xa4c8('0x29'),upload['single'](_0xa4c8('0x2a')),controller[_0xa4c8('0x2b')]);var upload=multer({'storage':multer[_0xa4c8('0x20')]({'destination':function(_0xc22b76,_0x1bd1cb,_0x4204d5){_0x4204d5(null,path['join'](config[_0xa4c8('0x21')],'server/files/tmp'));},'filename':function(_0x1001ab,_0x5915bd,_0x4a607b){_0x5915bd[_0xa4c8('0x23')]=_0x5915bd['originalname'][_0xa4c8('0x2c')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0x4a607b(null,util[_0xa4c8('0x24')](_0xa4c8('0x25'),path[_0xa4c8('0x26')](_0x5915bd[_0xa4c8('0x23')],path[_0xa4c8('0x27')](_0x5915bd[_0xa4c8('0x23')])),Date[_0xa4c8('0x28')](),path[_0xa4c8('0x27')](_0x5915bd[_0xa4c8('0x23')])));}})});router['post'](_0xa4c8('0x2d'),upload[_0xa4c8('0x2e')](_0xa4c8('0x2a')),controller[_0xa4c8('0x2f')]);router[_0xa4c8('0x19')](_0xa4c8('0x30'),auth[_0xa4c8('0xb')](),controller[_0xa4c8('0x31')]);router['put']('/:id',auth[_0xa4c8('0xb')](),controller['update']);router['delete'](_0xa4c8('0xf'),auth['isAuthenticated'](),controller[_0xa4c8('0x32')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4d6a=['sequelize','lodash','exports','VIRTUAL','getDataValue','STRING','setDataValue','alias','TEXT','type','parse','values','isArray','BOOLEAN','ENUM','voice'];(function(_0x1b1d68,_0x56ef04){var _0x7490e1=function(_0x304ab2){while(--_0x304ab2){_0x1b1d68['push'](_0x1b1d68['shift']());}};_0x7490e1(++_0x56ef04);}(_0x4d6a,0x1b0));var _0xa4d6=function(_0x23673e,_0x9ca03b){_0x23673e=_0x23673e-0x0;var _0x59cc2a=_0x4d6a[_0x23673e];return _0x59cc2a;};'use strict';var Sequelize=require(_0xa4d6('0x0'));var _=require(_0xa4d6('0x1'));module[_0xa4d6('0x2')]={'name':{'type':Sequelize[_0xa4d6('0x3')],'get':function(_0x4e2ff5){return this[_0xa4d6('0x4')]('alias');}},'alias':{'type':Sequelize[_0xa4d6('0x5')],'allowNull':![],'set':function(_0x38130c){this[_0xa4d6('0x6')](_0xa4d6('0x7'),_0x38130c?_0x38130c:this[_0xa4d6('0x4')]('name'));}},'type':{'type':Sequelize[_0xa4d6('0x5')],'allowNull':![]},'values':{'type':Sequelize[_0xa4d6('0x8')]('long'),'get':function(){if(this[_0xa4d6('0x4')](_0xa4d6('0x9'))==='select'){return JSON[_0xa4d6('0xa')](this['getDataValue'](_0xa4d6('0xb')));}else{return this[_0xa4d6('0x4')](_0xa4d6('0xb'));}},'set':function(_0x98d0ef){if(Array[_0xa4d6('0xc')](_0x98d0ef)){this[_0xa4d6('0x6')]('values',JSON['stringify'](_0x98d0ef));}else{this[_0xa4d6('0x6')]('values',_0x98d0ef);}}},'required':{'type':Sequelize[_0xa4d6('0xd')],'defaultValue':![]},'clickToAction':{'type':Sequelize[_0xa4d6('0xd')],'defaultValue':![]},'actionType':{'type':Sequelize[_0xa4d6('0xe')](_0xa4d6('0xf'))}};
\ No newline at end of file
+var _0xfcab=['ENUM','voice','sequelize','lodash','exports','VIRTUAL','alias','STRING','setDataValue','getDataValue','name','TEXT','type','parse','values','stringify','BOOLEAN'];(function(_0x426e5c,_0x8b5011){var _0x746428=function(_0x391243){while(--_0x391243){_0x426e5c['push'](_0x426e5c['shift']());}};_0x746428(++_0x8b5011);}(_0xfcab,0x145));var _0xbfca=function(_0x5cc3d4,_0xbcbf9b){_0x5cc3d4=_0x5cc3d4-0x0;var _0x17ca31=_0xfcab[_0x5cc3d4];return _0x17ca31;};'use strict';var Sequelize=require(_0xbfca('0x0'));var _=require(_0xbfca('0x1'));module[_0xbfca('0x2')]={'name':{'type':Sequelize[_0xbfca('0x3')],'get':function(_0x40daa4){return this['getDataValue'](_0xbfca('0x4'));}},'alias':{'type':Sequelize[_0xbfca('0x5')],'allowNull':![],'set':function(_0x516350){this[_0xbfca('0x6')](_0xbfca('0x4'),_0x516350?_0x516350:this[_0xbfca('0x7')](_0xbfca('0x8')));}},'type':{'type':Sequelize['STRING'],'allowNull':![]},'values':{'type':Sequelize[_0xbfca('0x9')]('long'),'get':function(){if(this['getDataValue'](_0xbfca('0xa'))==='select'){return JSON[_0xbfca('0xb')](this[_0xbfca('0x7')](_0xbfca('0xc')));}else{return this[_0xbfca('0x7')](_0xbfca('0xc'));}},'set':function(_0x1e675b){if(Array['isArray'](_0x1e675b)){this[_0xbfca('0x6')](_0xbfca('0xc'),JSON[_0xbfca('0xd')](_0x1e675b));}else{this[_0xbfca('0x6')]('values',_0x1e675b);}}},'required':{'type':Sequelize[_0xbfca('0xe')],'defaultValue':![]},'clickToAction':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'actionType':{'type':Sequelize[_0xbfca('0xf')](_0xbfca('0x10'))}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xab17=['length','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','rows','catch','show','params','find','body','create','sequelize','Sequelize','text','number','INTEGER','switch','BOOLEAN','defaultValue','queryInterface','addColumn','cm_contacts','format','cf_%d','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','util','path','to-csv','fs-extra','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','then','sendStatus','error','stack','name','send','index','map','CmCustomField','rawAttributes','fieldName','type','model','differenceBy','query','keys','filters','attributes','intersection','fields'];(function(_0x2a408d,_0x26d3a0){var _0x325e0c=function(_0x27ab34){while(--_0x27ab34){_0x2a408d['push'](_0x2a408d['shift']());}};_0x325e0c(++_0x26d3a0);}(_0xab17,0x17f));var _0x7ab1=function(_0x1ebaf1,_0x2b2f90){_0x1ebaf1=_0x1ebaf1-0x0;var _0x33bf69=_0xab17[_0x1ebaf1];return _0x33bf69;};'use strict';var emlformat=require(_0x7ab1('0x0'));var rimraf=require(_0x7ab1('0x1'));var zipdir=require(_0x7ab1('0x2'));var jsonpatch=require(_0x7ab1('0x3'));var rp=require(_0x7ab1('0x4'));var moment=require(_0x7ab1('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x7ab1('0x6'));var path=require(_0x7ab1('0x7'));var sox=require('sox');var csv=require(_0x7ab1('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x7ab1('0x9'));var _=require('lodash');var squel=require(_0x7ab1('0xa'));var crypto=require(_0x7ab1('0xb'));var jsforce=require(_0x7ab1('0xc'));var deskjs=require(_0x7ab1('0xd'));var toCsv=require('to-csv');var querystring=require(_0x7ab1('0xe'));var Papa=require('papaparse');var Redis=require(_0x7ab1('0xf'));var authService=require(_0x7ab1('0x10'));var qs=require(_0x7ab1('0x11'));var as=require(_0x7ab1('0x12'));var hardwareService=require(_0x7ab1('0x13'));var logger=require('../../config/logger')(_0x7ab1('0x14'));var utils=require(_0x7ab1('0x15'));var config=require(_0x7ab1('0x16'));var licenseUtil=require(_0x7ab1('0x17'));var db=require(_0x7ab1('0x18'))['db'];function respondWithStatusCode(_0x942fe1,_0x8ec230){_0x8ec230=_0x8ec230||0xcc;return function(_0x1f89b2){if(_0x1f89b2){return _0x942fe1['sendStatus'](_0x8ec230);}return _0x942fe1['status'](_0x8ec230)[_0x7ab1('0x19')]();};}function respondWithResult(_0x2cbc23,_0x30c196){_0x30c196=_0x30c196||0xc8;return function(_0x33b99a){if(_0x33b99a){return _0x2cbc23[_0x7ab1('0x1a')](_0x30c196)[_0x7ab1('0x1b')](_0x33b99a);}};}function respondWithFilteredResult(_0x5c16fa,_0x4fdd01){return function(_0x59e430){if(_0x59e430){var _0x205d40=typeof _0x4fdd01[_0x7ab1('0x1c')]===_0x7ab1('0x1d')&&typeof _0x4fdd01[_0x7ab1('0x1e')]===_0x7ab1('0x1d');var _0x24df2b=_0x59e430[_0x7ab1('0x1f')];var _0x396a69=_0x205d40?0x0:_0x4fdd01[_0x7ab1('0x1c')];var _0x388976=_0x205d40?_0x59e430[_0x7ab1('0x1f')]:_0x4fdd01[_0x7ab1('0x1c')]+_0x4fdd01[_0x7ab1('0x1e')];var _0x3e88fe;if(_0x388976>=_0x24df2b){_0x388976=_0x24df2b;_0x3e88fe=0xc8;}else{_0x3e88fe=0xce;}_0x5c16fa[_0x7ab1('0x1a')](_0x3e88fe);return _0x5c16fa[_0x7ab1('0x20')](_0x7ab1('0x21'),_0x396a69+'-'+_0x388976+'/'+_0x24df2b)[_0x7ab1('0x1b')](_0x59e430);}return null;};}function patchUpdates(_0x5b512f){return function(_0x400ba5){try{jsonpatch[_0x7ab1('0x22')](_0x400ba5,_0x5b512f,!![]);}catch(_0x8fab14){return BPromise[_0x7ab1('0x23')](_0x8fab14);}return _0x400ba5['save']();};}function saveUpdates(_0x4d7bf5,_0xfd36b7){return function(_0x4edc35){if(_0x4edc35){return _0x4edc35[_0x7ab1('0x24')](_0x4d7bf5)[_0x7ab1('0x25')](function(_0x55234f){return _0x55234f;});}return null;};}function removeEntity(_0xf5b3e8,_0x451a33){return function(_0x4c0c76){if(_0x4c0c76){return _0x4c0c76['destroy']()[_0x7ab1('0x25')](function(){_0xf5b3e8[_0x7ab1('0x1a')](0xcc)[_0x7ab1('0x19')]();});}};}function handleEntityNotFound(_0x3c0dcc,_0x5f0fb3){return function(_0x464bf1){if(!_0x464bf1){_0x3c0dcc[_0x7ab1('0x26')](0x194);}return _0x464bf1;};}function handleError(_0x42baea,_0x112e11){_0x112e11=_0x112e11||0x1f4;return function(_0xfc5c11){logger[_0x7ab1('0x27')](_0xfc5c11[_0x7ab1('0x28')]);if(_0xfc5c11[_0x7ab1('0x29')]){delete _0xfc5c11[_0x7ab1('0x29')];}_0x42baea[_0x7ab1('0x1a')](_0x112e11)[_0x7ab1('0x2a')](_0xfc5c11);};}exports[_0x7ab1('0x2b')]=function(_0x3413b4,_0x3449bc){var _0x417bf0={},_0x171a0b={},_0x500c27={'count':0x0,'rows':[]};var _0x430783=_[_0x7ab1('0x2c')](db[_0x7ab1('0x2d')][_0x7ab1('0x2e')],function(_0x5a2c83){return{'name':_0x5a2c83[_0x7ab1('0x2f')],'type':_0x5a2c83[_0x7ab1('0x30')]['key']};});_0x171a0b[_0x7ab1('0x31')]=_[_0x7ab1('0x32')](_[_0x7ab1('0x2c')](_0x430783,_0x7ab1('0x29')),[_0x7ab1('0x29')]);_0x171a0b[_0x7ab1('0x33')]=_[_0x7ab1('0x34')](_0x3413b4[_0x7ab1('0x33')]);_0x171a0b[_0x7ab1('0x35')]=_['intersection'](_0x171a0b[_0x7ab1('0x31')],_0x171a0b[_0x7ab1('0x33')]);_0x417bf0[_0x7ab1('0x36')]=_[_0x7ab1('0x37')](_0x171a0b[_0x7ab1('0x31')],qs[_0x7ab1('0x38')](_0x3413b4[_0x7ab1('0x33')][_0x7ab1('0x38')]));_0x417bf0[_0x7ab1('0x36')]=_0x417bf0[_0x7ab1('0x36')][_0x7ab1('0x39')]?_0x417bf0['attributes']:_0x171a0b[_0x7ab1('0x31')];if(!_0x3413b4['query']['hasOwnProperty'](_0x7ab1('0x3a'))){_0x417bf0[_0x7ab1('0x1e')]=qs[_0x7ab1('0x1e')](_0x3413b4[_0x7ab1('0x33')][_0x7ab1('0x1e')]);_0x417bf0[_0x7ab1('0x1c')]=qs[_0x7ab1('0x1c')](_0x3413b4['query'][_0x7ab1('0x1c')]);}_0x417bf0['order']=qs[_0x7ab1('0x3b')](_0x3413b4['query']['sort']);_0x417bf0[_0x7ab1('0x3c')]=qs[_0x7ab1('0x35')](_[_0x7ab1('0x3d')](_0x3413b4[_0x7ab1('0x33')],_0x171a0b[_0x7ab1('0x35')]),_0x430783);if(_0x3413b4[_0x7ab1('0x33')][_0x7ab1('0x3e')]){_0x417bf0[_0x7ab1('0x3c')]=_[_0x7ab1('0x3f')](_0x417bf0['where'],{'$or':_[_0x7ab1('0x2c')](_0x430783,function(_0x2736d2){if(_0x2736d2[_0x7ab1('0x30')]!==_0x7ab1('0x40')){var _0x4bc73c={};_0x4bc73c[_0x2736d2['name']]={'$like':'%'+_0x3413b4[_0x7ab1('0x33')]['filter']+'%'};return _0x4bc73c;}})});}_0x417bf0=_[_0x7ab1('0x3f')]({},_0x417bf0,_0x3413b4[_0x7ab1('0x41')]);var _0x48e66d={'where':_0x417bf0[_0x7ab1('0x3c')]};return db[_0x7ab1('0x2d')][_0x7ab1('0x1f')](_0x48e66d)[_0x7ab1('0x25')](function(_0x49f4d9){_0x500c27[_0x7ab1('0x1f')]=_0x49f4d9;if(_0x3413b4[_0x7ab1('0x33')][_0x7ab1('0x42')]){_0x417bf0[_0x7ab1('0x43')]=[{'all':!![]}];}return db[_0x7ab1('0x2d')]['findAll'](_0x417bf0);})[_0x7ab1('0x25')](function(_0x54b113){_0x500c27[_0x7ab1('0x44')]=_0x54b113;return _0x500c27;})[_0x7ab1('0x25')](respondWithFilteredResult(_0x3449bc,_0x417bf0))[_0x7ab1('0x45')](handleError(_0x3449bc,null));};exports[_0x7ab1('0x46')]=function(_0x67940b,_0x1ad036){var _0x1706f6={'raw':!![],'where':{'id':_0x67940b[_0x7ab1('0x47')]['id']}},_0x4fc032={};_0x4fc032[_0x7ab1('0x31')]=_['keys'](db[_0x7ab1('0x2d')][_0x7ab1('0x2e')]);_0x4fc032[_0x7ab1('0x33')]=_[_0x7ab1('0x34')](_0x67940b['query']);_0x4fc032[_0x7ab1('0x35')]=_[_0x7ab1('0x37')](_0x4fc032[_0x7ab1('0x31')],_0x4fc032[_0x7ab1('0x33')]);_0x1706f6[_0x7ab1('0x36')]=_[_0x7ab1('0x37')](_0x4fc032[_0x7ab1('0x31')],qs[_0x7ab1('0x38')](_0x67940b[_0x7ab1('0x33')][_0x7ab1('0x38')]));_0x1706f6[_0x7ab1('0x36')]=_0x1706f6['attributes']['length']?_0x1706f6['attributes']:_0x4fc032[_0x7ab1('0x31')];if(_0x67940b[_0x7ab1('0x33')][_0x7ab1('0x42')]){_0x1706f6[_0x7ab1('0x43')]=[{'all':!![]}];}_0x1706f6=_[_0x7ab1('0x3f')]({},_0x1706f6,_0x67940b[_0x7ab1('0x41')]);return db['CmCustomField'][_0x7ab1('0x48')](_0x1706f6)[_0x7ab1('0x25')](handleEntityNotFound(_0x1ad036,null))[_0x7ab1('0x25')](respondWithResult(_0x1ad036,null))[_0x7ab1('0x45')](handleError(_0x1ad036,null));};exports[_0x7ab1('0x24')]=function(_0x3fff3a,_0xc76a9d){if(_0x3fff3a[_0x7ab1('0x49')]['id']){delete _0x3fff3a[_0x7ab1('0x49')]['id'];}return db[_0x7ab1('0x2d')]['find']({'where':{'id':_0x3fff3a[_0x7ab1('0x47')]['id']}})[_0x7ab1('0x25')](handleEntityNotFound(_0xc76a9d,null))[_0x7ab1('0x25')](saveUpdates(_0x3fff3a[_0x7ab1('0x49')],null))[_0x7ab1('0x25')](respondWithResult(_0xc76a9d,null))[_0x7ab1('0x45')](handleError(_0xc76a9d,null));};exports['destroy']=function(_0x4e4a9a,_0x4244c5){return db[_0x7ab1('0x2d')]['find']({'where':{'id':_0x4e4a9a['params']['id']}})[_0x7ab1('0x25')](handleEntityNotFound(_0x4244c5,null))['then'](removeEntity(_0x4244c5,null))[_0x7ab1('0x45')](handleError(_0x4244c5,null));};exports[_0x7ab1('0x4a')]=function(_0x2819bb,_0x3d3c0c){var _0x6c3e06;return db[_0x7ab1('0x4b')]['transaction'](function(_0x258830){return db[_0x7ab1('0x2d')][_0x7ab1('0x4a')](_0x2819bb[_0x7ab1('0x49')],{'transaction':_0x258830})['then'](function(_0x53a960){_0x6c3e06=_0x53a960;var _0x268db8={'type':db[_0x7ab1('0x4c')]['TEXT'],'transaction':_0x258830};switch(_0x2819bb[_0x7ab1('0x49')][_0x7ab1('0x30')]){case _0x7ab1('0x4d'):_0x268db8[_0x7ab1('0x30')]=db['Sequelize']['TEXT'];break;case _0x7ab1('0x4e'):_0x268db8[_0x7ab1('0x30')]=db[_0x7ab1('0x4c')][_0x7ab1('0x4f')];break;case _0x7ab1('0x50'):_0x268db8[_0x7ab1('0x30')]=db[_0x7ab1('0x4c')][_0x7ab1('0x51')];_0x268db8[_0x7ab1('0x52')]=![];break;default:}return db[_0x7ab1('0x4b')][_0x7ab1('0x53')][_0x7ab1('0x54')](_0x7ab1('0x55'),util[_0x7ab1('0x56')](_0x7ab1('0x57'),_0x6c3e06['id']),_0x268db8);})[_0x7ab1('0x25')](function(){return _0x6c3e06;});})[_0x7ab1('0x25')](respondWithResult(_0x3d3c0c,0xc9))[_0x7ab1('0x45')](handleError(_0x3d3c0c,null));};
\ No newline at end of file
+var _0x6939=['rawAttributes','fieldName','type','key','differenceBy','query','filters','intersection','model','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','includeAll','include','findAll','rows','params','keys','fields','catch','body','find','sequelize','create','TEXT','text','Sequelize','INTEGER','switch','BOOLEAN','queryInterface','cm_contacts','format','cf_%d','eml-format','rimraf','fast-json-patch','request-promise','moment','mustache','util','path','to-csv','ejs','fs-extra','squel','crypto','papaparse','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','reject','save','update','then','destroy','error','stack','name','map','CmCustomField'];(function(_0x24282b,_0x1a777f){var _0x2496ca=function(_0x797ada){while(--_0x797ada){_0x24282b['push'](_0x24282b['shift']());}};_0x2496ca(++_0x1a777f);}(_0x6939,0x120));var _0x9693=function(_0x3506fb,_0x39d589){_0x3506fb=_0x3506fb-0x0;var _0x272f04=_0x6939[_0x3506fb];return _0x272f04;};'use strict';var emlformat=require(_0x9693('0x0'));var rimraf=require(_0x9693('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x9693('0x2'));var rp=require(_0x9693('0x3'));var moment=require(_0x9693('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x9693('0x5'));var util=require(_0x9693('0x6'));var path=require(_0x9693('0x7'));var sox=require('sox');var csv=require(_0x9693('0x8'));var ejs=require(_0x9693('0x9'));var fs=require('fs');var fs_extra=require(_0x9693('0xa'));var _=require('lodash');var squel=require(_0x9693('0xb'));var crypto=require(_0x9693('0xc'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x9693('0x8'));var querystring=require('querystring');var Papa=require(_0x9693('0xd'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x9693('0xe'));var logger=require(_0x9693('0xf'))(_0x9693('0x10'));var utils=require('../../config/utils');var config=require(_0x9693('0x11'));var licenseUtil=require(_0x9693('0x12'));var db=require(_0x9693('0x13'))['db'];function respondWithStatusCode(_0x5392a8,_0x2c6005){_0x2c6005=_0x2c6005||0xcc;return function(_0x126314){if(_0x126314){return _0x5392a8[_0x9693('0x14')](_0x2c6005);}return _0x5392a8[_0x9693('0x15')](_0x2c6005)[_0x9693('0x16')]();};}function respondWithResult(_0x43e8ee,_0x10c34b){_0x10c34b=_0x10c34b||0xc8;return function(_0x553e3b){if(_0x553e3b){return _0x43e8ee[_0x9693('0x15')](_0x10c34b)[_0x9693('0x17')](_0x553e3b);}};}function respondWithFilteredResult(_0x3ac5fd,_0x19ad97){return function(_0x5c1022){if(_0x5c1022){var _0x3935db=typeof _0x19ad97[_0x9693('0x18')]===_0x9693('0x19')&&typeof _0x19ad97['limit']===_0x9693('0x19');var _0x30a65d=_0x5c1022[_0x9693('0x1a')];var _0x414b90=_0x3935db?0x0:_0x19ad97[_0x9693('0x18')];var _0x97fe2d=_0x3935db?_0x5c1022[_0x9693('0x1a')]:_0x19ad97[_0x9693('0x18')]+_0x19ad97[_0x9693('0x1b')];var _0xe001e5;if(_0x97fe2d>=_0x30a65d){_0x97fe2d=_0x30a65d;_0xe001e5=0xc8;}else{_0xe001e5=0xce;}_0x3ac5fd[_0x9693('0x15')](_0xe001e5);return _0x3ac5fd[_0x9693('0x1c')](_0x9693('0x1d'),_0x414b90+'-'+_0x97fe2d+'/'+_0x30a65d)[_0x9693('0x17')](_0x5c1022);}return null;};}function patchUpdates(_0x518762){return function(_0x4b3a34){try{jsonpatch['apply'](_0x4b3a34,_0x518762,!![]);}catch(_0x221ebb){return BPromise[_0x9693('0x1e')](_0x221ebb);}return _0x4b3a34[_0x9693('0x1f')]();};}function saveUpdates(_0x58bd68,_0x329b09){return function(_0x526406){if(_0x526406){return _0x526406[_0x9693('0x20')](_0x58bd68)[_0x9693('0x21')](function(_0x764625){return _0x764625;});}return null;};}function removeEntity(_0x301426,_0x1c3e7e){return function(_0x3b332d){if(_0x3b332d){return _0x3b332d[_0x9693('0x22')]()[_0x9693('0x21')](function(){_0x301426[_0x9693('0x15')](0xcc)[_0x9693('0x16')]();});}};}function handleEntityNotFound(_0x415b57,_0x44257e){return function(_0x40e7d9){if(!_0x40e7d9){_0x415b57['sendStatus'](0x194);}return _0x40e7d9;};}function handleError(_0x44edae,_0x214097){_0x214097=_0x214097||0x1f4;return function(_0x4816a2){logger[_0x9693('0x23')](_0x4816a2[_0x9693('0x24')]);if(_0x4816a2[_0x9693('0x25')]){delete _0x4816a2[_0x9693('0x25')];}_0x44edae[_0x9693('0x15')](_0x214097)['send'](_0x4816a2);};}exports['index']=function(_0x5018b9,_0xafe5e){var _0x31bb6b={},_0x48a461={},_0x442146={'count':0x0,'rows':[]};var _0x3607e8=_[_0x9693('0x26')](db[_0x9693('0x27')][_0x9693('0x28')],function(_0x280b81){return{'name':_0x280b81[_0x9693('0x29')],'type':_0x280b81[_0x9693('0x2a')][_0x9693('0x2b')]};});_0x48a461['model']=_[_0x9693('0x2c')](_[_0x9693('0x26')](_0x3607e8,'name'),['name']);_0x48a461[_0x9693('0x2d')]=_['keys'](_0x5018b9[_0x9693('0x2d')]);_0x48a461[_0x9693('0x2e')]=_[_0x9693('0x2f')](_0x48a461[_0x9693('0x30')],_0x48a461[_0x9693('0x2d')]);_0x31bb6b[_0x9693('0x31')]=_[_0x9693('0x2f')](_0x48a461[_0x9693('0x30')],qs['fields'](_0x5018b9[_0x9693('0x2d')]['fields']));_0x31bb6b[_0x9693('0x31')]=_0x31bb6b[_0x9693('0x31')][_0x9693('0x32')]?_0x31bb6b['attributes']:_0x48a461[_0x9693('0x30')];if(!_0x5018b9[_0x9693('0x2d')][_0x9693('0x33')](_0x9693('0x34'))){_0x31bb6b[_0x9693('0x1b')]=qs[_0x9693('0x1b')](_0x5018b9[_0x9693('0x2d')]['limit']);_0x31bb6b[_0x9693('0x18')]=qs[_0x9693('0x18')](_0x5018b9[_0x9693('0x2d')][_0x9693('0x18')]);}_0x31bb6b[_0x9693('0x35')]=qs[_0x9693('0x36')](_0x5018b9[_0x9693('0x2d')][_0x9693('0x36')]);_0x31bb6b[_0x9693('0x37')]=qs[_0x9693('0x2e')](_[_0x9693('0x38')](_0x5018b9[_0x9693('0x2d')],_0x48a461[_0x9693('0x2e')]),_0x3607e8);if(_0x5018b9[_0x9693('0x2d')][_0x9693('0x39')]){_0x31bb6b[_0x9693('0x37')]=_[_0x9693('0x3a')](_0x31bb6b['where'],{'$or':_[_0x9693('0x26')](_0x3607e8,function(_0x15cbe7){if(_0x15cbe7['type']!=='VIRTUAL'){var _0x43618={};_0x43618[_0x15cbe7[_0x9693('0x25')]]={'$like':'%'+_0x5018b9[_0x9693('0x2d')][_0x9693('0x39')]+'%'};return _0x43618;}})});}_0x31bb6b=_[_0x9693('0x3a')]({},_0x31bb6b,_0x5018b9[_0x9693('0x3b')]);var _0x5e734a={'where':_0x31bb6b[_0x9693('0x37')]};return db['CmCustomField'][_0x9693('0x1a')](_0x5e734a)[_0x9693('0x21')](function(_0x1c8fd8){_0x442146[_0x9693('0x1a')]=_0x1c8fd8;if(_0x5018b9['query'][_0x9693('0x3c')]){_0x31bb6b[_0x9693('0x3d')]=[{'all':!![]}];}return db[_0x9693('0x27')][_0x9693('0x3e')](_0x31bb6b);})[_0x9693('0x21')](function(_0x2fe214){_0x442146[_0x9693('0x3f')]=_0x2fe214;return _0x442146;})['then'](respondWithFilteredResult(_0xafe5e,_0x31bb6b))['catch'](handleError(_0xafe5e,null));};exports['show']=function(_0x4964c5,_0xef3409){var _0xe5f3ac={'raw':!![],'where':{'id':_0x4964c5[_0x9693('0x40')]['id']}},_0x12a711={};_0x12a711[_0x9693('0x30')]=_[_0x9693('0x41')](db['CmCustomField'][_0x9693('0x28')]);_0x12a711[_0x9693('0x2d')]=_[_0x9693('0x41')](_0x4964c5['query']);_0x12a711['filters']=_['intersection'](_0x12a711[_0x9693('0x30')],_0x12a711['query']);_0xe5f3ac[_0x9693('0x31')]=_['intersection'](_0x12a711[_0x9693('0x30')],qs['fields'](_0x4964c5[_0x9693('0x2d')][_0x9693('0x42')]));_0xe5f3ac[_0x9693('0x31')]=_0xe5f3ac['attributes'][_0x9693('0x32')]?_0xe5f3ac[_0x9693('0x31')]:_0x12a711[_0x9693('0x30')];if(_0x4964c5[_0x9693('0x2d')][_0x9693('0x3c')]){_0xe5f3ac[_0x9693('0x3d')]=[{'all':!![]}];}_0xe5f3ac=_['merge']({},_0xe5f3ac,_0x4964c5[_0x9693('0x3b')]);return db[_0x9693('0x27')]['find'](_0xe5f3ac)[_0x9693('0x21')](handleEntityNotFound(_0xef3409,null))['then'](respondWithResult(_0xef3409,null))[_0x9693('0x43')](handleError(_0xef3409,null));};exports['update']=function(_0xe0f3f0,_0x1dc06b){if(_0xe0f3f0[_0x9693('0x44')]['id']){delete _0xe0f3f0[_0x9693('0x44')]['id'];}return db[_0x9693('0x27')][_0x9693('0x45')]({'where':{'id':_0xe0f3f0['params']['id']}})[_0x9693('0x21')](handleEntityNotFound(_0x1dc06b,null))[_0x9693('0x21')](saveUpdates(_0xe0f3f0[_0x9693('0x44')],null))['then'](respondWithResult(_0x1dc06b,null))['catch'](handleError(_0x1dc06b,null));};exports['destroy']=function(_0x3aa516,_0x445c38){return db[_0x9693('0x27')][_0x9693('0x45')]({'where':{'id':_0x3aa516[_0x9693('0x40')]['id']}})[_0x9693('0x21')](handleEntityNotFound(_0x445c38,null))['then'](removeEntity(_0x445c38,null))[_0x9693('0x43')](handleError(_0x445c38,null));};exports['create']=function(_0x1e97c9,_0x83194a){var _0x207489;return db[_0x9693('0x46')]['transaction'](function(_0x56456f){return db[_0x9693('0x27')][_0x9693('0x47')](_0x1e97c9['body'],{'transaction':_0x56456f})['then'](function(_0x5f1a20){_0x207489=_0x5f1a20;var _0x48b74e={'type':db['Sequelize'][_0x9693('0x48')],'transaction':_0x56456f};switch(_0x1e97c9[_0x9693('0x44')][_0x9693('0x2a')]){case _0x9693('0x49'):_0x48b74e[_0x9693('0x2a')]=db[_0x9693('0x4a')][_0x9693('0x48')];break;case'number':_0x48b74e[_0x9693('0x2a')]=db[_0x9693('0x4a')][_0x9693('0x4b')];break;case _0x9693('0x4c'):_0x48b74e[_0x9693('0x2a')]=db[_0x9693('0x4a')][_0x9693('0x4d')];_0x48b74e['defaultValue']=![];break;default:}return db[_0x9693('0x46')][_0x9693('0x4e')]['addColumn'](_0x9693('0x4f'),util[_0x9693('0x50')](_0x9693('0x51'),_0x207489['id']),_0x48b74e);})[_0x9693('0x21')](function(){return _0x207489;});})['then'](respondWithResult(_0x83194a,0xc9))[_0x9693('0x43')](handleError(_0x83194a,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9fc=['./cmCustomField.attributes','exports','CmCustomField','cm_custom_fields','lodash','util','../../config/logger','moment','bluebird','request-promise','path','rimraf','../../config/environment'];(function(_0x4a9fb1,_0x273043){var _0x348672=function(_0x142b69){while(--_0x142b69){_0x4a9fb1['push'](_0x4a9fb1['shift']());}};_0x348672(++_0x273043);}(_0xa9fc,0x1cb));var _0xca9f=function(_0x414f67,_0x861aed){_0x414f67=_0x414f67-0x0;var _0x338537=_0xa9fc[_0x414f67];return _0x338537;};'use strict';var _=require(_0xca9f('0x0'));var util=require(_0xca9f('0x1'));var logger=require(_0xca9f('0x2'))('api');var moment=require(_0xca9f('0x3'));var BPromise=require(_0xca9f('0x4'));var rp=require(_0xca9f('0x5'));var fs=require('fs');var path=require(_0xca9f('0x6'));var rimraf=require(_0xca9f('0x7'));var config=require(_0xca9f('0x8'));var attributes=require(_0xca9f('0x9'));module[_0xca9f('0xa')]=function(_0x4aab9f,_0x5671df){return _0x4aab9f['define'](_0xca9f('0xb'),attributes,{'tableName':_0xca9f('0xc'),'paranoid':!![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xe10d=['CmCustomField','cm_custom_fields','util','../../config/logger','moment','bluebird','request-promise','path','../../config/environment','./cmCustomField.attributes','define'];(function(_0x13f33f,_0x57f2a9){var _0x223ade=function(_0x5b4d7a){while(--_0x5b4d7a){_0x13f33f['push'](_0x13f33f['shift']());}};_0x223ade(++_0x57f2a9);}(_0xe10d,0x178));var _0xde10=function(_0x2e5543,_0x4eb4d0){_0x2e5543=_0x2e5543-0x0;var _0x27bb8e=_0xe10d[_0x2e5543];return _0x27bb8e;};'use strict';var _=require('lodash');var util=require(_0xde10('0x0'));var logger=require(_0xde10('0x1'))('api');var moment=require(_0xde10('0x2'));var BPromise=require(_0xde10('0x3'));var rp=require(_0xde10('0x4'));var fs=require('fs');var path=require(_0xde10('0x5'));var rimraf=require('rimraf');var config=require(_0xde10('0x6'));var attributes=require(_0xde10('0x7'));module['exports']=function(_0x48e89e,_0x5c08a0){return _0x48e89e[_0xde10('0x8')](_0xde10('0x9'),attributes,{'tableName':_0xde10('0xa'),'paranoid':!![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2261=['error','code','message','catch','lodash','util','moment','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','request','then','CmCustomField,\x20%s,\x20%s','request\x20sent','debug','CmCustomField,\x20%s,\x20%s,\x20%s','stringify'];(function(_0x1faa6e,_0x423197){var _0x15fc1d=function(_0x4bd1ac){while(--_0x4bd1ac){_0x1faa6e['push'](_0x1faa6e['shift']());}};_0x15fc1d(++_0x423197);}(_0x2261,0x10c));var _0x1226=function(_0x208877,_0x22c935){_0x208877=_0x208877-0x0;var _0x245d16=_0x2261[_0x208877];return _0x245d16;};'use strict';var _=require(_0x1226('0x0'));var util=require(_0x1226('0x1'));var moment=require(_0x1226('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x1226('0x3'));var db=require(_0x1226('0x4'))['db'];var utils=require(_0x1226('0x5'));var logger=require(_0x1226('0x6'))(_0x1226('0x7'));var config=require('../../config/environment');var jayson=require(_0x1226('0x8'));var client=jayson[_0x1226('0x9')][_0x1226('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x3d50d2,_0x39b5c1,_0x1bb603){return new BPromise(function(_0x4886e0,_0x57c031){return client[_0x1226('0xb')](_0x3d50d2,_0x1bb603)[_0x1226('0xc')](function(_0x3352be){logger['info'](_0x1226('0xd'),_0x39b5c1,_0x1226('0xe'));logger[_0x1226('0xf')](_0x1226('0x10'),_0x39b5c1,_0x1226('0xe'),JSON[_0x1226('0x11')](_0x3352be));if(_0x3352be['error']){if(_0x3352be[_0x1226('0x12')][_0x1226('0x13')]===0x1f4){logger[_0x1226('0x12')](_0x1226('0xd'),_0x39b5c1,_0x3352be[_0x1226('0x12')]['message']);return _0x57c031(_0x3352be[_0x1226('0x12')]['message']);}logger[_0x1226('0x12')]('CmCustomField,\x20%s,\x20%s',_0x39b5c1,_0x3352be['error']['message']);return _0x4886e0(_0x3352be[_0x1226('0x12')][_0x1226('0x14')]);}else{logger['info']('CmCustomField,\x20%s,\x20%s',_0x39b5c1,'request\x20sent');_0x4886e0(_0x3352be['result'][_0x1226('0x14')]);}})[_0x1226('0x15')](function(_0x5eac48){logger['error'](_0x1226('0xd'),_0x39b5c1,_0x5eac48);_0x57c031(_0x5eac48);});});}
\ No newline at end of file
+var _0xe27a=['util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','client','request','then','info','request\x20sent','debug','error','code','CmCustomField,\x20%s,\x20%s','message','result','catch','lodash'];(function(_0xeedb18,_0x4a3451){var _0x458edf=function(_0x9e9602){while(--_0x9e9602){_0xeedb18['push'](_0xeedb18['shift']());}};_0x458edf(++_0x4a3451);}(_0xe27a,0x1e2));var _0xae27=function(_0x4631fb,_0x4fce45){_0x4631fb=_0x4631fb-0x0;var _0x553de8=_0xe27a[_0x4631fb];return _0x553de8;};'use strict';var _=require(_0xae27('0x0'));var util=require(_0xae27('0x1'));var moment=require('moment');var BPromise=require(_0xae27('0x2'));var rs=require(_0xae27('0x3'));var fs=require('fs');var Redis=require(_0xae27('0x4'));var db=require(_0xae27('0x5'))['db'];var utils=require(_0xae27('0x6'));var logger=require(_0xae27('0x7'))('rpc');var config=require(_0xae27('0x8'));var jayson=require('jayson/promise');var client=jayson[_0xae27('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x22bcb1,_0x1ea458,_0x2fd614){return new BPromise(function(_0x4bba54,_0x554965){return client[_0xae27('0xa')](_0x22bcb1,_0x2fd614)[_0xae27('0xb')](function(_0x3d10aa){logger[_0xae27('0xc')]('CmCustomField,\x20%s,\x20%s',_0x1ea458,_0xae27('0xd'));logger[_0xae27('0xe')]('CmCustomField,\x20%s,\x20%s,\x20%s',_0x1ea458,_0xae27('0xd'),JSON['stringify'](_0x3d10aa));if(_0x3d10aa['error']){if(_0x3d10aa[_0xae27('0xf')][_0xae27('0x10')]===0x1f4){logger[_0xae27('0xf')](_0xae27('0x11'),_0x1ea458,_0x3d10aa[_0xae27('0xf')][_0xae27('0x12')]);return _0x554965(_0x3d10aa[_0xae27('0xf')]['message']);}logger[_0xae27('0xf')](_0xae27('0x11'),_0x1ea458,_0x3d10aa['error'][_0xae27('0x12')]);return _0x4bba54(_0x3d10aa['error']['message']);}else{logger[_0xae27('0xc')](_0xae27('0x11'),_0x1ea458,_0xae27('0xd'));_0x4bba54(_0x3d10aa[_0xae27('0x13')][_0xae27('0x12')]);}})[_0xae27('0x14')](function(_0x4f71c8){logger[_0xae27('0xf')](_0xae27('0x11'),_0x1ea458,_0x4f71c8);_0x554965(_0x4f71c8);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3efa=['isAuthenticated','/:id','show','post','create','put','exports','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./cmCustomField.controller','get'];(function(_0x52db66,_0x239041){var _0x3b9dc3=function(_0x3a9310){while(--_0x3a9310){_0x52db66['push'](_0x52db66['shift']());}};_0x3b9dc3(++_0x239041);}(_0x3efa,0x147));var _0xa3ef=function(_0x489dbe,_0xff2128){_0x489dbe=_0x489dbe-0x0;var _0x587a96=_0x3efa[_0x489dbe];return _0x587a96;};'use strict';var multer=require('multer');var util=require(_0xa3ef('0x0'));var path=require('path');var timeout=require(_0xa3ef('0x1'));var express=require(_0xa3ef('0x2'));var router=express[_0xa3ef('0x3')]();var fs_extra=require(_0xa3ef('0x4'));var auth=require(_0xa3ef('0x5'));var interaction=require(_0xa3ef('0x6'));var config=require('../../config/environment');var controller=require(_0xa3ef('0x7'));router[_0xa3ef('0x8')]('/',auth[_0xa3ef('0x9')](),controller['index']);router[_0xa3ef('0x8')](_0xa3ef('0xa'),auth['isAuthenticated'](),controller[_0xa3ef('0xb')]);router[_0xa3ef('0xc')]('/',auth[_0xa3ef('0x9')](),controller[_0xa3ef('0xd')]);router[_0xa3ef('0xe')](_0xa3ef('0xa'),auth[_0xa3ef('0x9')](),controller['update']);router['delete'](_0xa3ef('0xa'),auth[_0xa3ef('0x9')](),controller['destroy']);module[_0xa3ef('0xf')]=router;
\ No newline at end of file
+var _0x7b27=['../../components/interaction/service','./cmCustomField.controller','get','isAuthenticated','/:id','show','create','put','update','delete','destroy','exports','multer','path','connect-timeout','express','Router','../../components/auth/service'];(function(_0x5ddb1c,_0x5ea4df){var _0x354adc=function(_0x2dfb1f){while(--_0x2dfb1f){_0x5ddb1c['push'](_0x5ddb1c['shift']());}};_0x354adc(++_0x5ea4df);}(_0x7b27,0x186));var _0x77b2=function(_0x54f08,_0x39f0f0){_0x54f08=_0x54f08-0x0;var _0x1ece63=_0x7b27[_0x54f08];return _0x1ece63;};'use strict';var multer=require(_0x77b2('0x0'));var util=require('util');var path=require(_0x77b2('0x1'));var timeout=require(_0x77b2('0x2'));var express=require(_0x77b2('0x3'));var router=express[_0x77b2('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x77b2('0x5'));var interaction=require(_0x77b2('0x6'));var config=require('../../config/environment');var controller=require(_0x77b2('0x7'));router[_0x77b2('0x8')]('/',auth[_0x77b2('0x9')](),controller['index']);router[_0x77b2('0x8')](_0x77b2('0xa'),auth[_0x77b2('0x9')](),controller[_0x77b2('0xb')]);router['post']('/',auth[_0x77b2('0x9')](),controller[_0x77b2('0xc')]);router[_0x77b2('0xd')](_0x77b2('0xa'),auth[_0x77b2('0x9')](),controller[_0x77b2('0xe')]);router[_0x77b2('0xf')](_0x77b2('0xa'),auth['isAuthenticated'](),controller[_0x77b2('0x10')]);module[_0x77b2('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4e9a=['moment','sequelize','exports','BOOLEAN','DATE','format','INTEGER','STRING','UNSIGNED','contactListQueue'];(function(_0x1a89a1,_0x56d889){var _0x3d5b46=function(_0x56debf){while(--_0x56debf){_0x1a89a1['push'](_0x1a89a1['shift']());}};_0x3d5b46(++_0x56d889);}(_0x4e9a,0x8c));var _0xa4e9=function(_0x42e2fd,_0x1e08ec){_0x42e2fd=_0x42e2fd-0x0;var _0x4b4a92=_0x4e9a[_0x42e2fd];return _0x4b4a92;};'use strict';var moment=require(_0xa4e9('0x0'));var Sequelize=require(_0xa4e9('0x1'));module[_0xa4e9('0x2')]={'phone':{'type':Sequelize['STRING'],'allowNull':![]},'active':{'type':Sequelize[_0xa4e9('0x3')],'defaultValue':![]},'scheduledat':{'type':Sequelize[_0xa4e9('0x4')],'defaultValue':moment()[_0xa4e9('0x5')]('YYYY-MM-DD\x20HH:mm:ss')},'countbusyretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countcongestionretry':{'type':Sequelize[_0xa4e9('0x6')],'defaultValue':0x0},'countnoanswerretry':{'type':Sequelize[_0xa4e9('0x6')],'defaultValue':0x0},'callback':{'type':Sequelize[_0xa4e9('0x3')],'defaultValue':![]},'callbackuniqueid':{'type':Sequelize[_0xa4e9('0x7')],'defaultValue':null},'callbackat':{'type':Sequelize[_0xa4e9('0x4')]},'priority':{'type':Sequelize['INTEGER'](0x2)[_0xa4e9('0x8')],'defaultValue':0x2,'validate':{'min':0x0,'max':0x4}},'recallme':{'type':Sequelize[_0xa4e9('0x3')],'defaultValue':![]},'ContactId':{'type':Sequelize[_0xa4e9('0x6')],'unique':_0xa4e9('0x9')},'ListId':{'type':Sequelize['INTEGER'],'unique':_0xa4e9('0x9')},'UserId':{'type':Sequelize[_0xa4e9('0x6')]},'VoiceQueueId':{'type':Sequelize[_0xa4e9('0x6')],'unique':_0xa4e9('0x9')},'CampaignId':{'type':Sequelize[_0xa4e9('0x6')]},'countnosuchnumberretry':{'type':Sequelize[_0xa4e9('0x6')],'defaultValue':0x0},'countdropretry':{'type':Sequelize[_0xa4e9('0x6')],'defaultValue':0x0},'countabandonedretry':{'type':Sequelize[_0xa4e9('0x6')],'defaultValue':0x0},'countmachineretry':{'type':Sequelize[_0xa4e9('0x6')],'defaultValue':0x0},'countagentrejectretry':{'type':Sequelize[_0xa4e9('0x6')],'defaultValue':0x0}};
\ No newline at end of file
+var _0x8711=['sequelize','exports','format','YYYY-MM-DD\x20HH:mm:ss','INTEGER','STRING','DATE','UNSIGNED','contactListQueue','moment'];(function(_0x1fcde8,_0x44c01d){var _0x5b3541=function(_0x577ef6){while(--_0x577ef6){_0x1fcde8['push'](_0x1fcde8['shift']());}};_0x5b3541(++_0x44c01d);}(_0x8711,0x121));var _0x1871=function(_0x3592a9,_0x3e7743){_0x3592a9=_0x3592a9-0x0;var _0x1f6f52=_0x8711[_0x3592a9];return _0x1f6f52;};'use strict';var moment=require(_0x1871('0x0'));var Sequelize=require(_0x1871('0x1'));module[_0x1871('0x2')]={'phone':{'type':Sequelize['STRING'],'allowNull':![]},'active':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'scheduledat':{'type':Sequelize['DATE'],'defaultValue':moment()[_0x1871('0x3')](_0x1871('0x4'))},'countbusyretry':{'type':Sequelize[_0x1871('0x5')],'defaultValue':0x0},'countcongestionretry':{'type':Sequelize[_0x1871('0x5')],'defaultValue':0x0},'countnoanswerretry':{'type':Sequelize[_0x1871('0x5')],'defaultValue':0x0},'callback':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'callbackuniqueid':{'type':Sequelize[_0x1871('0x6')],'defaultValue':null},'callbackat':{'type':Sequelize[_0x1871('0x7')]},'priority':{'type':Sequelize[_0x1871('0x5')](0x2)[_0x1871('0x8')],'defaultValue':0x2,'validate':{'min':0x0,'max':0x4}},'recallme':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'ContactId':{'type':Sequelize[_0x1871('0x5')],'unique':_0x1871('0x9')},'ListId':{'type':Sequelize[_0x1871('0x5')],'unique':_0x1871('0x9')},'UserId':{'type':Sequelize[_0x1871('0x5')]},'VoiceQueueId':{'type':Sequelize['INTEGER'],'unique':'contactListQueue'},'CampaignId':{'type':Sequelize['INTEGER']},'countnosuchnumberretry':{'type':Sequelize[_0x1871('0x5')],'defaultValue':0x0},'countdropretry':{'type':Sequelize[_0x1871('0x5')],'defaultValue':0x0},'countabandonedretry':{'type':Sequelize[_0x1871('0x5')],'defaultValue':0x0},'countmachineretry':{'type':Sequelize[_0x1871('0x5')],'defaultValue':0x0},'countagentrejectretry':{'type':Sequelize[_0x1871('0x5')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x37f8=['params','VoiceQueueId','CampaignId','VoiceQueue','Campaign','omit','dataValues','createdAt','updatedAt','statedesc','deleted','campaign','membername','user','UserId','deletedat','format','campaigntype','queue','ivr','CmContact','ContactId','firstName','lastName','isNil','calleridname','finally','CmHopperFinal','getPreview','getVoiceQueues','outbound','preview','dialOrderByScheduledAt','filter','dialPreviewAutoRecallMe','direction','prev','isEmpty','priority','ASC','scheduledAt','DESC','literal','hopperIds','sequelize','COALESCE(CmHopper.UserId,\x200)\x20DESC','scheduledat','recallme','LOCK','Contact','CmCompany','CmList','List','Queue','dialActive','getOpenContacts','YYYY-MM-DD\x20HH:mm:ss','isNumber','error','CmHopper,\x20%s,\x20%s,\x20%s','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','reject','save','update','then','destroy','stack','name','index','CmHopper','rawAttributes','fieldName','map','query','keys','filters','model','concat','$and','$or','$gt','$lte','$eq','$not','$notBetween','$in','$notIn','$like','$notLike','$notILike','$overlap','$contains','$contained','intersection','fields','length','attributes','hasOwnProperty','nolimit','sort','where','pick','merge','type','VIRTUAL','options','includeAll','include','findAll','rows','show','find','create','body','catch','describe'];(function(_0x710815,_0x520da8){var _0x5b3b89=function(_0x2e1a8e){while(--_0x2e1a8e){_0x710815['push'](_0x710815['shift']());}};_0x5b3b89(++_0x520da8);}(_0x37f8,0xd2));var _0x837f=function(_0x574721,_0x2e5d64){_0x574721=_0x574721-0x0;var _0x18c7c0=_0x37f8[_0x574721];return _0x18c7c0;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x837f('0x0'));var zipdir=require(_0x837f('0x1'));var jsonpatch=require(_0x837f('0x2'));var rp=require(_0x837f('0x3'));var moment=require('moment');var BPromise=require(_0x837f('0x4'));var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x837f('0x5'));var fs=require('fs');var fs_extra=require(_0x837f('0x6'));var _=require(_0x837f('0x7'));var squel=require(_0x837f('0x8'));var crypto=require(_0x837f('0x9'));var jsforce=require(_0x837f('0xa'));var deskjs=require(_0x837f('0xb'));var toCsv=require(_0x837f('0xc'));var querystring=require(_0x837f('0xd'));var Papa=require(_0x837f('0xe'));var Redis=require(_0x837f('0xf'));var authService=require(_0x837f('0x10'));var qs=require(_0x837f('0x11'));var as=require(_0x837f('0x12'));var hardwareService=require(_0x837f('0x13'));var logger=require('../../config/logger')(_0x837f('0x14'));var utils=require(_0x837f('0x15'));var config=require(_0x837f('0x16'));var licenseUtil=require(_0x837f('0x17'));var db=require(_0x837f('0x18'))['db'];function respondWithStatusCode(_0x4a8c00,_0x53045e){_0x53045e=_0x53045e||0xcc;return function(_0x14ff6d){if(_0x14ff6d){return _0x4a8c00[_0x837f('0x19')](_0x53045e);}return _0x4a8c00[_0x837f('0x1a')](_0x53045e)[_0x837f('0x1b')]();};}function respondWithResult(_0x2b3cd6,_0x483267){_0x483267=_0x483267||0xc8;return function(_0x18d8aa){if(_0x18d8aa){return _0x2b3cd6[_0x837f('0x1a')](_0x483267)[_0x837f('0x1c')](_0x18d8aa);}};}function respondWithFilteredResult(_0x1664e7,_0x2e4257){return function(_0x29369d){if(_0x29369d){var _0x546352=typeof _0x2e4257[_0x837f('0x1d')]===_0x837f('0x1e')&&typeof _0x2e4257['limit']===_0x837f('0x1e');var _0x2745f6=_0x29369d[_0x837f('0x1f')];var _0x1d17b3=_0x546352?0x0:_0x2e4257['offset'];var _0x1d974f=_0x546352?_0x29369d[_0x837f('0x1f')]:_0x2e4257[_0x837f('0x1d')]+_0x2e4257[_0x837f('0x20')];var _0x14b3da;if(_0x1d974f>=_0x2745f6){_0x1d974f=_0x2745f6;_0x14b3da=0xc8;}else{_0x14b3da=0xce;}_0x1664e7['status'](_0x14b3da);return _0x1664e7[_0x837f('0x21')](_0x837f('0x22'),_0x1d17b3+'-'+_0x1d974f+'/'+_0x2745f6)[_0x837f('0x1c')](_0x29369d);}return null;};}function patchUpdates(_0x33c7cb){return function(_0x3540f3){try{jsonpatch['apply'](_0x3540f3,_0x33c7cb,!![]);}catch(_0x2e9603){return BPromise[_0x837f('0x23')](_0x2e9603);}return _0x3540f3[_0x837f('0x24')]();};}function saveUpdates(_0xe68eb1,_0xa0af78){return function(_0x237656){if(_0x237656){return _0x237656[_0x837f('0x25')](_0xe68eb1)[_0x837f('0x26')](function(_0x11a9b3){return _0x11a9b3;});}return null;};}function removeEntity(_0x168455,_0x3fa18e){return function(_0xfb4df0){if(_0xfb4df0){return _0xfb4df0[_0x837f('0x27')]()[_0x837f('0x26')](function(){_0x168455[_0x837f('0x1a')](0xcc)[_0x837f('0x1b')]();});}};}function handleEntityNotFound(_0x43ca7d,_0x38da9f){return function(_0x1a6f26){if(!_0x1a6f26){_0x43ca7d[_0x837f('0x19')](0x194);}return _0x1a6f26;};}function handleError(_0x2c6a90,_0x246637){_0x246637=_0x246637||0x1f4;return function(_0x21f826){logger['error'](_0x21f826[_0x837f('0x28')]);if(_0x21f826[_0x837f('0x29')]){delete _0x21f826[_0x837f('0x29')];}_0x2c6a90['status'](_0x246637)['send'](_0x21f826);};}exports[_0x837f('0x2a')]=function(_0x1ab2e4,_0x1435fd){var _0x4072a4={},_0x30a3d9={},_0x387533={'count':0x0,'rows':[]};var _0x323565=_['map'](db[_0x837f('0x2b')][_0x837f('0x2c')],function(_0x266871){return{'name':_0x266871[_0x837f('0x2d')],'type':_0x266871['type']['key']};});_0x30a3d9['model']=_[_0x837f('0x2e')](_0x323565,_0x837f('0x29'));_0x30a3d9[_0x837f('0x2f')]=_[_0x837f('0x30')](_0x1ab2e4['query']);_0x30a3d9[_0x837f('0x31')]=_['intersection'](_0x30a3d9[_0x837f('0x32')],_0x30a3d9['query']);_0x30a3d9['filters']=_[_0x837f('0x33')](_0x30a3d9[_0x837f('0x31')],[_0x837f('0x34'),_0x837f('0x35'),_0x837f('0x36'),'$gte','$lt',_0x837f('0x37'),'$ne',_0x837f('0x38'),_0x837f('0x39'),'$between',_0x837f('0x3a'),_0x837f('0x3b'),_0x837f('0x3c'),_0x837f('0x3d'),_0x837f('0x3e'),'$iLike',_0x837f('0x3f'),_0x837f('0x3d'),_0x837f('0x40'),_0x837f('0x41'),_0x837f('0x42'),'$any']);_0x4072a4['attributes']=_[_0x837f('0x43')](_0x30a3d9['model'],qs['fields'](_0x1ab2e4[_0x837f('0x2f')][_0x837f('0x44')]));_0x4072a4['attributes']=_0x4072a4['attributes'][_0x837f('0x45')]?_0x4072a4[_0x837f('0x46')]:_0x30a3d9[_0x837f('0x32')];if(!_0x1ab2e4['query'][_0x837f('0x47')](_0x837f('0x48'))){_0x4072a4[_0x837f('0x20')]=qs[_0x837f('0x20')](_0x1ab2e4[_0x837f('0x2f')]['limit']);_0x4072a4['offset']=qs[_0x837f('0x1d')](_0x1ab2e4[_0x837f('0x2f')][_0x837f('0x1d')]);}_0x4072a4['order']=qs['sort'](_0x1ab2e4[_0x837f('0x2f')][_0x837f('0x49')]);_0x4072a4[_0x837f('0x4a')]=qs['filters'](_[_0x837f('0x4b')](_0x1ab2e4[_0x837f('0x2f')],_0x30a3d9['filters']),_0x323565);if(_0x1ab2e4['query']['filter']){_0x4072a4[_0x837f('0x4a')]=_[_0x837f('0x4c')](_0x4072a4[_0x837f('0x4a')],{'$or':_[_0x837f('0x2e')](_0x323565,function(_0x15e50d){if(_0x15e50d[_0x837f('0x4d')]!==_0x837f('0x4e')){var _0x4e6ec9={};_0x4e6ec9[_0x15e50d[_0x837f('0x29')]]={'$like':'%'+_0x1ab2e4[_0x837f('0x2f')]['filter']+'%'};return _0x4e6ec9;}})});}_0x4072a4=_[_0x837f('0x4c')]({},_0x4072a4,_0x1ab2e4[_0x837f('0x4f')]);var _0x4eea71={'where':_0x4072a4[_0x837f('0x4a')]};return db[_0x837f('0x2b')][_0x837f('0x1f')](_0x4eea71)[_0x837f('0x26')](function(_0x344936){_0x387533[_0x837f('0x1f')]=_0x344936;if(_0x1ab2e4['query'][_0x837f('0x50')]){_0x4072a4[_0x837f('0x51')]=[{'all':!![]}];}return db[_0x837f('0x2b')][_0x837f('0x52')](_0x4072a4);})[_0x837f('0x26')](function(_0x4530ac){_0x387533[_0x837f('0x53')]=_0x4530ac;return _0x387533;})[_0x837f('0x26')](respondWithFilteredResult(_0x1435fd,_0x4072a4))['catch'](handleError(_0x1435fd,null));};exports[_0x837f('0x54')]=function(_0x3265b1,_0x4f9dcf){var _0x1241e7={'raw':!![],'where':{'id':_0x3265b1['params']['id']}},_0x400ccd={};_0x400ccd[_0x837f('0x32')]=_[_0x837f('0x30')](db[_0x837f('0x2b')][_0x837f('0x2c')]);_0x400ccd[_0x837f('0x2f')]=_[_0x837f('0x30')](_0x3265b1['query']);_0x400ccd[_0x837f('0x31')]=_['intersection'](_0x400ccd[_0x837f('0x32')],_0x400ccd[_0x837f('0x2f')]);_0x1241e7[_0x837f('0x46')]=_[_0x837f('0x43')](_0x400ccd[_0x837f('0x32')],qs[_0x837f('0x44')](_0x3265b1['query']['fields']));_0x1241e7['attributes']=_0x1241e7[_0x837f('0x46')][_0x837f('0x45')]?_0x1241e7['attributes']:_0x400ccd[_0x837f('0x32')];if(_0x3265b1['query'][_0x837f('0x50')]){_0x1241e7[_0x837f('0x51')]=[{'all':!![]}];}_0x1241e7=_[_0x837f('0x4c')]({},_0x1241e7,_0x3265b1[_0x837f('0x4f')]);return db[_0x837f('0x2b')][_0x837f('0x55')](_0x1241e7)['then'](handleEntityNotFound(_0x4f9dcf,null))[_0x837f('0x26')](respondWithResult(_0x4f9dcf,null))['catch'](handleError(_0x4f9dcf,null));};exports[_0x837f('0x56')]=function(_0x41c724,_0x3734a6){return db['CmHopper'][_0x837f('0x56')](_0x41c724[_0x837f('0x57')],{})[_0x837f('0x26')](respondWithResult(_0x3734a6,0xc9))[_0x837f('0x58')](handleError(_0x3734a6,null));};exports[_0x837f('0x25')]=function(_0x932733,_0x52a5d5){if(_0x932733[_0x837f('0x57')]['id']){delete _0x932733[_0x837f('0x57')]['id'];}return db[_0x837f('0x2b')][_0x837f('0x55')]({'where':{'id':_0x932733['params']['id']}})[_0x837f('0x26')](handleEntityNotFound(_0x52a5d5,null))['then'](saveUpdates(_0x932733[_0x837f('0x57')],null))['then'](respondWithResult(_0x52a5d5,null))[_0x837f('0x58')](handleError(_0x52a5d5,null));};exports[_0x837f('0x59')]=function(_0xb3fee8,_0x63cfe2){return db[_0x837f('0x2b')][_0x837f('0x59')]()[_0x837f('0x26')](respondWithResult(_0x63cfe2,null))[_0x837f('0x58')](handleError(_0x63cfe2,null));};exports[_0x837f('0x27')]=function(_0x3b9899,_0x469490){var _0x1e320d;return db['CmHopper'][_0x837f('0x55')]({'where':{'id':_0x3b9899[_0x837f('0x5a')]['id']}})['then'](handleEntityNotFound(_0x469490,null))[_0x837f('0x26')](function(_0xec28fd){if(_0xec28fd){return _0xec28fd[_0x837f('0x27')]()[_0x837f('0x26')](function(_0xf62dd5){return _0xf62dd5;});}})[_0x837f('0x26')](function(_0x438d93){_0x1e320d=_0x438d93;if(_0x438d93){if(_0x438d93[_0x837f('0x5b')]||_0x438d93[_0x837f('0x5c')]){return db[_0x438d93[_0x837f('0x5b')]?_0x837f('0x5d'):_0x837f('0x5e')][_0x837f('0x55')]({'where':{'id':_0x438d93['VoiceQueueId']?_0x438d93[_0x837f('0x5b')]:_0x438d93[_0x837f('0x5c')]},'attributes':['id',_0x837f('0x29')],'raw':!![]});}}})['then'](function(_0x6db423){var _0x441ff2={};if(_0x6db423){_[_0x837f('0x4c')](_0x441ff2,_[_0x837f('0x5f')](_0x1e320d[_0x837f('0x60')],[_0x837f('0x61'),_0x837f('0x62'),'id']));_0x441ff2['state']=0x15;_0x441ff2[_0x837f('0x63')]=_0x837f('0x64');_0x441ff2[_0x837f('0x65')]=_0x6db423['name'];_0x441ff2[_0x837f('0x66')]=_0x3b9899[_0x837f('0x67')][_0x837f('0x29')];_0x441ff2[_0x837f('0x68')]=_0x3b9899['user']['id'];_0x441ff2[_0x837f('0x64')]=!![];_0x441ff2[_0x837f('0x69')]=moment()[_0x837f('0x6a')]('YYYY-MM-DD\x20HH:mm:ss');_0x441ff2['calleridnum']=_0x1e320d['phone'];_0x441ff2[_0x837f('0x6b')]=_0x1e320d[_0x837f('0x5b')]?_0x837f('0x6c'):_0x837f('0x6d');return db[_0x837f('0x6e')][_0x837f('0x55')]({'where':{'id':_0x441ff2[_0x837f('0x6f')]},'attributes':[_0x837f('0x70'),_0x837f('0x71')]})[_0x837f('0x26')](function(_0x626707){if(!_[_0x837f('0x72')](_0x469490)&&!_[_0x837f('0x72')](_0x626707[_0x837f('0x70')])){_0x441ff2['calleridname']=_0x626707['firstName'];if(!_['isNil'](_0x626707[_0x837f('0x71')])){_0x441ff2[_0x837f('0x73')]+='\x20'+_0x626707[_0x837f('0x71')];}}})[_0x837f('0x74')](function(){return db[_0x837f('0x75')][_0x837f('0x56')](_0x441ff2);});}})['then'](function(){return _0x469490[_0x837f('0x1a')](0xcc)[_0x837f('0x1b')]();})['catch'](handleError(_0x469490,null));};exports[_0x837f('0x76')]=function(_0x1d43f6,_0x4248fb,_0x5ccf08){var _0x438297=[];return db[_0x837f('0x6e')][_0x837f('0x59')]()['then'](function(_0x4a3dc7){_0x438297=_[_0x837f('0x30')](_0x4a3dc7);return _0x1d43f6['user'][_0x837f('0x77')]({'where':{'type':_0x837f('0x78'),'dialActive':!![],'dialMethod':_0x837f('0x79')},'attributes':['id',_0x837f('0x7a'),'dialPreviewAutoRecallMe'],'raw':!![]});})[_0x837f('0x26')](function(_0xe662c3){if(_0xe662c3&&_0xe662c3[_0x837f('0x45')]){return db['sequelize']['transaction'](function(_0x1c26af){var _0x130f36={'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0x837f('0x6a')]('YYYY-MM-DD\x20HH:mm:ss')},'VoiceQueueId':{'$in':_['map'](_0xe662c3,'id')},'$or':[{'UserId':null},{'UserId':_0x1d43f6['user']['id']}]};var _0x42071d={'active':![],'recallme':!![],'VoiceQueueId':{'$in':_(_0xe662c3)[_0x837f('0x7b')]([_0x837f('0x7c'),0x0])[_0x837f('0x2e')]('id')['value']()},'$or':[{'UserId':null},{'UserId':_0x1d43f6[_0x837f('0x67')]['id']}]};var _0x164ed4={'$or':[_0x130f36,_0x42071d]};var _0x5f49d5=[];if(_0x1d43f6[_0x837f('0x57')]['direction']&&_0x1d43f6[_0x837f('0x57')][_0x837f('0x7d')]===_0x837f('0x7e')){if(!_[_0x837f('0x7f')](_0x1d43f6[_0x837f('0x57')]['hopperIds'])){_0x164ed4['id']={'$in':_0x1d43f6[_0x837f('0x57')]['hopperIds']};}_0x5f49d5=[[_0x837f('0x80'),_0x837f('0x81')],[_0x837f('0x82'),_0xe662c3[0x0][_0x837f('0x7a')]==='ASC'?_0x837f('0x83'):_0x837f('0x81')],db['sequelize'][_0x837f('0x84')]('COALESCE(CmHopper.UserId,\x200)\x20ASC'),['id',_0x837f('0x83')]];}else{if(!_[_0x837f('0x7f')](_0x1d43f6['body'][_0x837f('0x85')])){_0x164ed4['id']={'$notIn':_0x1d43f6[_0x837f('0x57')][_0x837f('0x85')]};}_0x5f49d5=[[_0x837f('0x80'),_0x837f('0x83')],[_0x837f('0x82'),_0xe662c3[0x0][_0x837f('0x7a')]],db[_0x837f('0x86')]['literal'](_0x837f('0x87')),['id',_0x837f('0x81')]];}return db[_0x837f('0x2b')]['findOne']({'attributes':['id',_0x837f('0x88'),_0x837f('0x89')],'where':_0x164ed4,'order':_0x5f49d5,'transaction':_0x1c26af,'lock':_0x1c26af[_0x837f('0x8a')]['UPDATE'],'include':[{'model':db[_0x837f('0x6e')],'as':_0x837f('0x8b'),'attributes':_0x438297,'include':[{'model':db[_0x837f('0x8c')],'as':'Company','attributes':['id',_0x837f('0x29')]}]},{'model':db[_0x837f('0x8d')],'as':_0x837f('0x8e'),'attributes':['id',_0x837f('0x29')]},{'model':db['VoiceQueue'],'as':_0x837f('0x8f'),'attributes':['id',_0x837f('0x29'),_0x837f('0x90')]}]})[_0x837f('0x26')](function(_0xbe4d5f){if(_0xbe4d5f){return _0xbe4d5f[_0x837f('0x25')]({'UserId':_0x1d43f6[_0x837f('0x67')]['id']},{'transaction':_0x1c26af});}});});}})[_0x837f('0x26')](handleEntityNotFound(_0x4248fb,null))[_0x837f('0x26')](respondWithResult(_0x4248fb,null))[_0x837f('0x58')](handleError(_0x4248fb,null));};exports[_0x837f('0x91')]=function(_0x26554e,_0x540745,_0x113a3e){return _0x26554e[_0x837f('0x67')][_0x837f('0x77')]({'where':{'type':_0x837f('0x78'),'dialActive':!![],'dialMethod':_0x837f('0x79')},'attributes':['id'],'raw':!![]})[_0x837f('0x26')](function(_0x2ae4b7){if(_0x2ae4b7&&_0x2ae4b7[_0x837f('0x45')]){return db['CmHopper']['count']({'where':{'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0x837f('0x6a')](_0x837f('0x92'))},'VoiceQueueId':{'$in':_[_0x837f('0x2e')](_0x2ae4b7,'id')},'$or':[{'UserId':null},{'UserId':_0x26554e[_0x837f('0x67')]['id']}]}});}return 0x0;})[_0x837f('0x26')](function(_0x471633){if(!_['isNil'](_0x471633)&&_[_0x837f('0x93')](_0x471633)){return _0x540745[_0x837f('0x1a')](0xc8)[_0x837f('0x1c')]({'contacts':_0x471633});}else{logger[_0x837f('0x94')](_0x837f('0x95'),_0x837f('0x91'),0x194,'entity\x20not\x20found');_0x540745[_0x837f('0x19')](0x194);}})[_0x837f('0x58')](handleError(_0x540745,null));};
\ No newline at end of file
+var _0x67b3=['List','Queue','dialActive','isNumber','CmHopper,\x20%s,\x20%s,\x20%s','getOpenContacts','eml-format','bluebird','util','sox','to-csv','fs-extra','lodash','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','count','limit','Content-Range','apply','reject','save','update','then','destroy','end','error','stack','name','send','index','CmHopper','rawAttributes','fieldName','type','model','keys','query','filters','intersection','$and','$or','$gte','$lt','$lte','$ne','$eq','$not','$between','$notBetween','$in','$notIn','$like','$notLike','$iLike','$notILike','$contained','$any','fields','attributes','hasOwnProperty','nolimit','order','sort','where','pick','filter','map','merge','options','includeAll','include','catch','params','find','create','body','describe','CampaignId','VoiceQueueId','VoiceQueue','Campaign','omit','dataValues','updatedAt','state','statedesc','membername','user','deleted','deletedat','format','calleridnum','phone','campaigntype','ivr','CmContact','ContactId','firstName','lastName','isNil','calleridname','finally','CmHopperFinal','getVoiceQueues','outbound','preview','dialPreviewAutoRecallMe','sequelize','transaction','YYYY-MM-DD\x20HH:mm:ss','value','direction','prev','isEmpty','hopperIds','priority','dialOrderByScheduledAt','ASC','DESC','scheduledAt','literal','COALESCE(CmHopper.UserId,\x200)\x20DESC','findOne','recallme','LOCK','UPDATE','CmCompany','Company','CmList'];(function(_0x152de2,_0x1e1bfd){var _0x281be0=function(_0x13061e){while(--_0x13061e){_0x152de2['push'](_0x152de2['shift']());}};_0x281be0(++_0x1e1bfd);}(_0x67b3,0x98));var _0x367b=function(_0x3a7634,_0x2db384){_0x3a7634=_0x3a7634-0x0;var _0x23bbe9=_0x67b3[_0x3a7634];return _0x23bbe9;};'use strict';var emlformat=require(_0x367b('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x367b('0x1'));var Mustache=require('mustache');var util=require(_0x367b('0x2'));var path=require('path');var sox=require(_0x367b('0x3'));var csv=require(_0x367b('0x4'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x367b('0x5'));var _=require(_0x367b('0x6'));var squel=require('squel');var crypto=require(_0x367b('0x7'));var jsforce=require(_0x367b('0x8'));var deskjs=require(_0x367b('0x9'));var toCsv=require(_0x367b('0x4'));var querystring=require(_0x367b('0xa'));var Papa=require('papaparse');var Redis=require(_0x367b('0xb'));var authService=require(_0x367b('0xc'));var qs=require(_0x367b('0xd'));var as=require(_0x367b('0xe'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x367b('0xf'))(_0x367b('0x10'));var utils=require(_0x367b('0x11'));var config=require(_0x367b('0x12'));var licenseUtil=require(_0x367b('0x13'));var db=require(_0x367b('0x14'))['db'];function respondWithStatusCode(_0x164e08,_0x4cc3b3){_0x4cc3b3=_0x4cc3b3||0xcc;return function(_0xd0bdc8){if(_0xd0bdc8){return _0x164e08[_0x367b('0x15')](_0x4cc3b3);}return _0x164e08['status'](_0x4cc3b3)['end']();};}function respondWithResult(_0x50a559,_0x55178f){_0x55178f=_0x55178f||0xc8;return function(_0x33f483){if(_0x33f483){return _0x50a559[_0x367b('0x16')](_0x55178f)[_0x367b('0x17')](_0x33f483);}};}function respondWithFilteredResult(_0x4c4bc5,_0x12b73c){return function(_0x4f7605){if(_0x4f7605){var _0x10aea6=typeof _0x12b73c[_0x367b('0x18')]===_0x367b('0x19')&&typeof _0x12b73c['limit']===_0x367b('0x19');var _0x46336a=_0x4f7605['count'];var _0xc3d15a=_0x10aea6?0x0:_0x12b73c[_0x367b('0x18')];var _0x17cddd=_0x10aea6?_0x4f7605[_0x367b('0x1a')]:_0x12b73c[_0x367b('0x18')]+_0x12b73c[_0x367b('0x1b')];var _0x1e335f;if(_0x17cddd>=_0x46336a){_0x17cddd=_0x46336a;_0x1e335f=0xc8;}else{_0x1e335f=0xce;}_0x4c4bc5[_0x367b('0x16')](_0x1e335f);return _0x4c4bc5['set'](_0x367b('0x1c'),_0xc3d15a+'-'+_0x17cddd+'/'+_0x46336a)[_0x367b('0x17')](_0x4f7605);}return null;};}function patchUpdates(_0x259d6b){return function(_0x325e28){try{jsonpatch[_0x367b('0x1d')](_0x325e28,_0x259d6b,!![]);}catch(_0x2ac9d1){return BPromise[_0x367b('0x1e')](_0x2ac9d1);}return _0x325e28[_0x367b('0x1f')]();};}function saveUpdates(_0x82e738,_0x306a4d){return function(_0x4e9159){if(_0x4e9159){return _0x4e9159[_0x367b('0x20')](_0x82e738)[_0x367b('0x21')](function(_0x3a89e7){return _0x3a89e7;});}return null;};}function removeEntity(_0x1bbbaf,_0x33d4dd){return function(_0x352424){if(_0x352424){return _0x352424[_0x367b('0x22')]()[_0x367b('0x21')](function(){_0x1bbbaf['status'](0xcc)[_0x367b('0x23')]();});}};}function handleEntityNotFound(_0x5239b1,_0x5822c1){return function(_0x30220e){if(!_0x30220e){_0x5239b1[_0x367b('0x15')](0x194);}return _0x30220e;};}function handleError(_0x117a49,_0x804e8c){_0x804e8c=_0x804e8c||0x1f4;return function(_0x36fe68){logger[_0x367b('0x24')](_0x36fe68[_0x367b('0x25')]);if(_0x36fe68[_0x367b('0x26')]){delete _0x36fe68['name'];}_0x117a49[_0x367b('0x16')](_0x804e8c)[_0x367b('0x27')](_0x36fe68);};}exports[_0x367b('0x28')]=function(_0x166d9d,_0x215f84){var _0xdd8ce2={},_0x2e593e={},_0x504b78={'count':0x0,'rows':[]};var _0x2b2d09=_['map'](db[_0x367b('0x29')][_0x367b('0x2a')],function(_0x4b5433){return{'name':_0x4b5433[_0x367b('0x2b')],'type':_0x4b5433[_0x367b('0x2c')]['key']};});_0x2e593e[_0x367b('0x2d')]=_['map'](_0x2b2d09,'name');_0x2e593e['query']=_[_0x367b('0x2e')](_0x166d9d[_0x367b('0x2f')]);_0x2e593e[_0x367b('0x30')]=_[_0x367b('0x31')](_0x2e593e[_0x367b('0x2d')],_0x2e593e[_0x367b('0x2f')]);_0x2e593e[_0x367b('0x30')]=_['concat'](_0x2e593e[_0x367b('0x30')],[_0x367b('0x32'),_0x367b('0x33'),'$gt',_0x367b('0x34'),_0x367b('0x35'),_0x367b('0x36'),_0x367b('0x37'),_0x367b('0x38'),_0x367b('0x39'),_0x367b('0x3a'),_0x367b('0x3b'),_0x367b('0x3c'),_0x367b('0x3d'),_0x367b('0x3e'),_0x367b('0x3f'),_0x367b('0x40'),_0x367b('0x41'),_0x367b('0x3e'),'$overlap','$contains',_0x367b('0x42'),_0x367b('0x43')]);_0xdd8ce2['attributes']=_['intersection'](_0x2e593e[_0x367b('0x2d')],qs[_0x367b('0x44')](_0x166d9d[_0x367b('0x2f')][_0x367b('0x44')]));_0xdd8ce2[_0x367b('0x45')]=_0xdd8ce2[_0x367b('0x45')]['length']?_0xdd8ce2['attributes']:_0x2e593e[_0x367b('0x2d')];if(!_0x166d9d['query'][_0x367b('0x46')](_0x367b('0x47'))){_0xdd8ce2['limit']=qs[_0x367b('0x1b')](_0x166d9d[_0x367b('0x2f')][_0x367b('0x1b')]);_0xdd8ce2[_0x367b('0x18')]=qs[_0x367b('0x18')](_0x166d9d[_0x367b('0x2f')]['offset']);}_0xdd8ce2[_0x367b('0x48')]=qs[_0x367b('0x49')](_0x166d9d[_0x367b('0x2f')][_0x367b('0x49')]);_0xdd8ce2[_0x367b('0x4a')]=qs['filters'](_[_0x367b('0x4b')](_0x166d9d['query'],_0x2e593e[_0x367b('0x30')]),_0x2b2d09);if(_0x166d9d[_0x367b('0x2f')][_0x367b('0x4c')]){_0xdd8ce2[_0x367b('0x4a')]=_['merge'](_0xdd8ce2[_0x367b('0x4a')],{'$or':_[_0x367b('0x4d')](_0x2b2d09,function(_0x37a8a0){if(_0x37a8a0[_0x367b('0x2c')]!=='VIRTUAL'){var _0x3906c9={};_0x3906c9[_0x37a8a0['name']]={'$like':'%'+_0x166d9d[_0x367b('0x2f')][_0x367b('0x4c')]+'%'};return _0x3906c9;}})});}_0xdd8ce2=_[_0x367b('0x4e')]({},_0xdd8ce2,_0x166d9d[_0x367b('0x4f')]);var _0x50734c={'where':_0xdd8ce2['where']};return db[_0x367b('0x29')][_0x367b('0x1a')](_0x50734c)[_0x367b('0x21')](function(_0x1dd879){_0x504b78[_0x367b('0x1a')]=_0x1dd879;if(_0x166d9d[_0x367b('0x2f')][_0x367b('0x50')]){_0xdd8ce2[_0x367b('0x51')]=[{'all':!![]}];}return db['CmHopper']['findAll'](_0xdd8ce2);})[_0x367b('0x21')](function(_0x26a7d1){_0x504b78['rows']=_0x26a7d1;return _0x504b78;})['then'](respondWithFilteredResult(_0x215f84,_0xdd8ce2))[_0x367b('0x52')](handleError(_0x215f84,null));};exports['show']=function(_0xf38137,_0x3c32a){var _0x908b24={'raw':!![],'where':{'id':_0xf38137[_0x367b('0x53')]['id']}},_0x4e2ca7={};_0x4e2ca7['model']=_[_0x367b('0x2e')](db[_0x367b('0x29')][_0x367b('0x2a')]);_0x4e2ca7[_0x367b('0x2f')]=_[_0x367b('0x2e')](_0xf38137[_0x367b('0x2f')]);_0x4e2ca7[_0x367b('0x30')]=_[_0x367b('0x31')](_0x4e2ca7[_0x367b('0x2d')],_0x4e2ca7[_0x367b('0x2f')]);_0x908b24[_0x367b('0x45')]=_['intersection'](_0x4e2ca7[_0x367b('0x2d')],qs['fields'](_0xf38137['query'][_0x367b('0x44')]));_0x908b24[_0x367b('0x45')]=_0x908b24[_0x367b('0x45')]['length']?_0x908b24[_0x367b('0x45')]:_0x4e2ca7[_0x367b('0x2d')];if(_0xf38137[_0x367b('0x2f')][_0x367b('0x50')]){_0x908b24['include']=[{'all':!![]}];}_0x908b24=_[_0x367b('0x4e')]({},_0x908b24,_0xf38137['options']);return db['CmHopper'][_0x367b('0x54')](_0x908b24)[_0x367b('0x21')](handleEntityNotFound(_0x3c32a,null))['then'](respondWithResult(_0x3c32a,null))[_0x367b('0x52')](handleError(_0x3c32a,null));};exports['create']=function(_0x911488,_0x2e8dd4){return db[_0x367b('0x29')][_0x367b('0x55')](_0x911488['body'],{})[_0x367b('0x21')](respondWithResult(_0x2e8dd4,0xc9))[_0x367b('0x52')](handleError(_0x2e8dd4,null));};exports[_0x367b('0x20')]=function(_0x15c682,_0x15db80){if(_0x15c682['body']['id']){delete _0x15c682[_0x367b('0x56')]['id'];}return db[_0x367b('0x29')][_0x367b('0x54')]({'where':{'id':_0x15c682[_0x367b('0x53')]['id']}})[_0x367b('0x21')](handleEntityNotFound(_0x15db80,null))['then'](saveUpdates(_0x15c682['body'],null))[_0x367b('0x21')](respondWithResult(_0x15db80,null))[_0x367b('0x52')](handleError(_0x15db80,null));};exports[_0x367b('0x57')]=function(_0x29b9c6,_0x3393a4){return db[_0x367b('0x29')][_0x367b('0x57')]()['then'](respondWithResult(_0x3393a4,null))[_0x367b('0x52')](handleError(_0x3393a4,null));};exports[_0x367b('0x22')]=function(_0x485343,_0x551c51){var _0x146957;return db[_0x367b('0x29')][_0x367b('0x54')]({'where':{'id':_0x485343[_0x367b('0x53')]['id']}})[_0x367b('0x21')](handleEntityNotFound(_0x551c51,null))[_0x367b('0x21')](function(_0x2cd006){if(_0x2cd006){return _0x2cd006[_0x367b('0x22')]()[_0x367b('0x21')](function(_0x2cff58){return _0x2cff58;});}})[_0x367b('0x21')](function(_0x15ae76){_0x146957=_0x15ae76;if(_0x15ae76){if(_0x15ae76['VoiceQueueId']||_0x15ae76[_0x367b('0x58')]){return db[_0x15ae76[_0x367b('0x59')]?_0x367b('0x5a'):_0x367b('0x5b')][_0x367b('0x54')]({'where':{'id':_0x15ae76[_0x367b('0x59')]?_0x15ae76['VoiceQueueId']:_0x15ae76[_0x367b('0x58')]},'attributes':['id','name'],'raw':!![]});}}})[_0x367b('0x21')](function(_0x49a04d){var _0x131ce0={};if(_0x49a04d){_[_0x367b('0x4e')](_0x131ce0,_[_0x367b('0x5c')](_0x146957[_0x367b('0x5d')],['createdAt',_0x367b('0x5e'),'id']));_0x131ce0[_0x367b('0x5f')]=0x15;_0x131ce0[_0x367b('0x60')]='deleted';_0x131ce0['campaign']=_0x49a04d[_0x367b('0x26')];_0x131ce0[_0x367b('0x61')]=_0x485343[_0x367b('0x62')][_0x367b('0x26')];_0x131ce0['UserId']=_0x485343[_0x367b('0x62')]['id'];_0x131ce0[_0x367b('0x63')]=!![];_0x131ce0[_0x367b('0x64')]=moment()[_0x367b('0x65')]('YYYY-MM-DD\x20HH:mm:ss');_0x131ce0[_0x367b('0x66')]=_0x146957[_0x367b('0x67')];_0x131ce0[_0x367b('0x68')]=_0x146957[_0x367b('0x59')]?'queue':_0x367b('0x69');return db[_0x367b('0x6a')][_0x367b('0x54')]({'where':{'id':_0x131ce0[_0x367b('0x6b')]},'attributes':[_0x367b('0x6c'),_0x367b('0x6d')]})[_0x367b('0x21')](function(_0x4da8e2){if(!_['isNil'](_0x551c51)&&!_[_0x367b('0x6e')](_0x4da8e2['firstName'])){_0x131ce0[_0x367b('0x6f')]=_0x4da8e2[_0x367b('0x6c')];if(!_[_0x367b('0x6e')](_0x4da8e2['lastName'])){_0x131ce0[_0x367b('0x6f')]+='\x20'+_0x4da8e2[_0x367b('0x6d')];}}})[_0x367b('0x70')](function(){return db[_0x367b('0x71')]['create'](_0x131ce0);});}})['then'](function(){return _0x551c51[_0x367b('0x16')](0xcc)[_0x367b('0x23')]();})[_0x367b('0x52')](handleError(_0x551c51,null));};exports['getPreview']=function(_0x19e62b,_0x5dcf44,_0x4a0c94){var _0x3067cb=[];return db[_0x367b('0x6a')][_0x367b('0x57')]()[_0x367b('0x21')](function(_0x392390){_0x3067cb=_[_0x367b('0x2e')](_0x392390);return _0x19e62b[_0x367b('0x62')][_0x367b('0x72')]({'where':{'type':_0x367b('0x73'),'dialActive':!![],'dialMethod':_0x367b('0x74')},'attributes':['id','dialOrderByScheduledAt',_0x367b('0x75')],'raw':!![]});})[_0x367b('0x21')](function(_0xe2eb48){if(_0xe2eb48&&_0xe2eb48['length']){return db[_0x367b('0x76')][_0x367b('0x77')](function(_0x594930){var _0x4176e6={'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0x367b('0x65')](_0x367b('0x78'))},'VoiceQueueId':{'$in':_[_0x367b('0x4d')](_0xe2eb48,'id')},'$or':[{'UserId':null},{'UserId':_0x19e62b['user']['id']}]};var _0xd193d3={'active':![],'recallme':!![],'VoiceQueueId':{'$in':_(_0xe2eb48)[_0x367b('0x4c')](['dialPreviewAutoRecallMe',0x0])['map']('id')[_0x367b('0x79')]()},'$or':[{'UserId':null},{'UserId':_0x19e62b[_0x367b('0x62')]['id']}]};var _0x1651b9={'$or':[_0x4176e6,_0xd193d3]};var _0x43e2ad=[];if(_0x19e62b['body'][_0x367b('0x7a')]&&_0x19e62b[_0x367b('0x56')][_0x367b('0x7a')]===_0x367b('0x7b')){if(!_[_0x367b('0x7c')](_0x19e62b[_0x367b('0x56')]['hopperIds'])){_0x1651b9['id']={'$in':_0x19e62b[_0x367b('0x56')][_0x367b('0x7d')]};}_0x43e2ad=[[_0x367b('0x7e'),'ASC'],['scheduledAt',_0xe2eb48[0x0][_0x367b('0x7f')]===_0x367b('0x80')?_0x367b('0x81'):'ASC'],db[_0x367b('0x76')]['literal']('COALESCE(CmHopper.UserId,\x200)\x20ASC'),['id','DESC']];}else{if(!_[_0x367b('0x7c')](_0x19e62b[_0x367b('0x56')]['hopperIds'])){_0x1651b9['id']={'$notIn':_0x19e62b[_0x367b('0x56')][_0x367b('0x7d')]};}_0x43e2ad=[[_0x367b('0x7e'),_0x367b('0x81')],[_0x367b('0x82'),_0xe2eb48[0x0]['dialOrderByScheduledAt']],db[_0x367b('0x76')][_0x367b('0x83')](_0x367b('0x84')),['id',_0x367b('0x80')]];}return db['CmHopper'][_0x367b('0x85')]({'attributes':['id','scheduledat',_0x367b('0x86')],'where':_0x1651b9,'order':_0x43e2ad,'transaction':_0x594930,'lock':_0x594930[_0x367b('0x87')][_0x367b('0x88')],'include':[{'model':db['CmContact'],'as':'Contact','attributes':_0x3067cb,'include':[{'model':db[_0x367b('0x89')],'as':_0x367b('0x8a'),'attributes':['id',_0x367b('0x26')]}]},{'model':db[_0x367b('0x8b')],'as':_0x367b('0x8c'),'attributes':['id',_0x367b('0x26')]},{'model':db['VoiceQueue'],'as':_0x367b('0x8d'),'attributes':['id',_0x367b('0x26'),_0x367b('0x8e')]}]})['then'](function(_0x4a0d69){if(_0x4a0d69){return _0x4a0d69[_0x367b('0x20')]({'UserId':_0x19e62b['user']['id']},{'transaction':_0x594930});}});});}})[_0x367b('0x21')](handleEntityNotFound(_0x5dcf44,null))[_0x367b('0x21')](respondWithResult(_0x5dcf44,null))[_0x367b('0x52')](handleError(_0x5dcf44,null));};exports['getOpenContacts']=function(_0x32e902,_0xc9e608,_0x16657c){return _0x32e902[_0x367b('0x62')][_0x367b('0x72')]({'where':{'type':_0x367b('0x73'),'dialActive':!![],'dialMethod':_0x367b('0x74')},'attributes':['id'],'raw':!![]})[_0x367b('0x21')](function(_0x35a3df){if(_0x35a3df&&_0x35a3df['length']){return db['CmHopper'][_0x367b('0x1a')]({'where':{'active':![],'recallme':![],'scheduledAt':{'$lte':moment()[_0x367b('0x65')](_0x367b('0x78'))},'VoiceQueueId':{'$in':_['map'](_0x35a3df,'id')},'$or':[{'UserId':null},{'UserId':_0x32e902['user']['id']}]}});}return 0x0;})[_0x367b('0x21')](function(_0x24d97e){if(!_[_0x367b('0x6e')](_0x24d97e)&&_[_0x367b('0x8f')](_0x24d97e)){return _0xc9e608[_0x367b('0x16')](0xc8)[_0x367b('0x17')]({'contacts':_0x24d97e});}else{logger[_0x367b('0x24')](_0x367b('0x90'),_0x367b('0x91'),0x194,'entity\x20not\x20found');_0xc9e608[_0x367b('0x15')](0x194);}})[_0x367b('0x52')](handleError(_0xc9e608,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb4c7=['request-promise','path','rimraf','../../config/environment','./cmHopper.attributes','define','cm_hopper','scheduledat','phone','priority','lodash','util','../../config/logger','api','moment'];(function(_0x55f8b4,_0x43f30d){var _0x2475f9=function(_0xdd6f4a){while(--_0xdd6f4a){_0x55f8b4['push'](_0x55f8b4['shift']());}};_0x2475f9(++_0x43f30d);}(_0xb4c7,0x1ea));var _0x7b4c=function(_0x4a7e22,_0x21e670){_0x4a7e22=_0x4a7e22-0x0;var _0x5c13ef=_0xb4c7[_0x4a7e22];return _0x5c13ef;};'use strict';var _=require(_0x7b4c('0x0'));var util=require(_0x7b4c('0x1'));var logger=require(_0x7b4c('0x2'))(_0x7b4c('0x3'));var moment=require(_0x7b4c('0x4'));var BPromise=require('bluebird');var rp=require(_0x7b4c('0x5'));var fs=require('fs');var path=require(_0x7b4c('0x6'));var rimraf=require(_0x7b4c('0x7'));var config=require(_0x7b4c('0x8'));var attributes=require(_0x7b4c('0x9'));module['exports']=function(_0x1b0f57,_0x10e197){return _0x1b0f57[_0x7b4c('0xa')]('CmHopper',attributes,{'tableName':_0x7b4c('0xb'),'paranoid':![],'indexes':[{'name':_0x7b4c('0xc'),'fields':['scheduledat']},{'name':_0x7b4c('0xd'),'fields':[_0x7b4c('0xd')]},{'name':_0x7b4c('0xe'),'fields':[_0x7b4c('0xe')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xacf4=['define','CmHopper','cm_hopper','scheduledat','phone','priority','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','./cmHopper.attributes','exports'];(function(_0x1c846b,_0x1be3e1){var _0x72b234=function(_0x3a4b55){while(--_0x3a4b55){_0x1c846b['push'](_0x1c846b['shift']());}};_0x72b234(++_0x1be3e1);}(_0xacf4,0xe7));var _0x4acf=function(_0x25faea,_0xed3bd8){_0x25faea=_0x25faea-0x0;var _0x20c766=_0xacf4[_0x25faea];return _0x20c766;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x4acf('0x0'))(_0x4acf('0x1'));var moment=require(_0x4acf('0x2'));var BPromise=require(_0x4acf('0x3'));var rp=require(_0x4acf('0x4'));var fs=require('fs');var path=require(_0x4acf('0x5'));var rimraf=require(_0x4acf('0x6'));var config=require('../../config/environment');var attributes=require(_0x4acf('0x7'));module[_0x4acf('0x8')]=function(_0x4e0c43,_0x24bf24){return _0x4e0c43[_0x4acf('0x9')](_0x4acf('0xa'),attributes,{'tableName':_0x4acf('0xb'),'paranoid':![],'indexes':[{'name':_0x4acf('0xc'),'fields':['scheduledat']},{'name':'phone','fields':[_0x4acf('0xd')]},{'name':'priority','fields':[_0x4acf('0xe')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1f4e=['../../config/environment','jayson/promise','http','request','then','info','CmHopper,\x20%s,\x20%s','request\x20sent','debug','CmHopper,\x20%s,\x20%s,\x20%s','error','message','result','catch','GetCmHopper','CmHopper','findAll','where','options','limit','include','map','model','attributes','stringify','raw','ShowCmHopper','CreateCmHopper','create','body','UpdateCmHopper','update','UpdateCmHopper\x20hopper\x20options\x20[%s]\x20active\x20status\x20[%s]','active','DestroyCmHopper','destroy','GetContactDialer','transaction','order','LOCK','CmContact','Contact','keys','Agent','name','voicePause','length','UserId','includes','push','GetContactDialer\x20hopperId\x20[%s]\x20-\x20contactId\x20[%s]\x20-\x20active\x20status\x20[%s]','dataValues','ContactId','MoveContactManagedDialer','sequelize','CmHopperFinal','CountReScheduled','COUNT','format','YYYY-MM-DD\x20HH:mm:ss','\x20,\x201,\x20null','contactsRescheduled','GetContactRecallMe','describe','all','ResetActiveCalls','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger'];(function(_0x19e08e,_0x178f46){var _0x14c229=function(_0x791b3b){while(--_0x791b3b){_0x19e08e['push'](_0x19e08e['shift']());}};_0x14c229(++_0x178f46);}(_0x1f4e,0x8d));var _0xe1f4=function(_0x36f82a,_0x4ec395){_0x36f82a=_0x36f82a-0x0;var _0x495067=_0x1f4e[_0x36f82a];return _0x495067;};'use strict';var _=require(_0xe1f4('0x0'));var util=require(_0xe1f4('0x1'));var moment=require(_0xe1f4('0x2'));var BPromise=require(_0xe1f4('0x3'));var rs=require(_0xe1f4('0x4'));var fs=require('fs');var Redis=require(_0xe1f4('0x5'));var db=require(_0xe1f4('0x6'))['db'];var utils=require(_0xe1f4('0x7'));var logger=require(_0xe1f4('0x8'))('rpc');var config=require(_0xe1f4('0x9'));var jayson=require(_0xe1f4('0xa'));var client=jayson['client'][_0xe1f4('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x4d3e0c,_0x31f731,_0x1ae6c8){return new BPromise(function(_0x1d3dc9,_0x46fc10){return client[_0xe1f4('0xc')](_0x4d3e0c,_0x1ae6c8)[_0xe1f4('0xd')](function(_0x34fe40){logger[_0xe1f4('0xe')](_0xe1f4('0xf'),_0x31f731,_0xe1f4('0x10'));logger[_0xe1f4('0x11')](_0xe1f4('0x12'),_0x31f731,_0xe1f4('0x10'),JSON['stringify'](_0x34fe40));if(_0x34fe40[_0xe1f4('0x13')]){if(_0x34fe40[_0xe1f4('0x13')]['code']===0x1f4){logger[_0xe1f4('0x13')](_0xe1f4('0xf'),_0x31f731,_0x34fe40[_0xe1f4('0x13')][_0xe1f4('0x14')]);return _0x46fc10(_0x34fe40[_0xe1f4('0x13')][_0xe1f4('0x14')]);}logger['error'](_0xe1f4('0xf'),_0x31f731,_0x34fe40[_0xe1f4('0x13')][_0xe1f4('0x14')]);return _0x1d3dc9(_0x34fe40[_0xe1f4('0x13')][_0xe1f4('0x14')]);}else{logger[_0xe1f4('0xe')](_0xe1f4('0xf'),_0x31f731,_0xe1f4('0x10'));_0x1d3dc9(_0x34fe40[_0xe1f4('0x15')][_0xe1f4('0x14')]);}})[_0xe1f4('0x16')](function(_0x132102){logger[_0xe1f4('0x13')](_0xe1f4('0xf'),_0x31f731,_0x132102);_0x46fc10(_0x132102);});});}exports[_0xe1f4('0x17')]=function(_0xfdc7de){var _0x5cf5d5=this;return new Promise(function(_0x24588a,_0x3ceea3){return db[_0xe1f4('0x18')][_0xe1f4('0x19')]({'raw':_0xfdc7de['options']?_0xfdc7de['options']['raw']===undefined?!![]:![]:!![],'where':_0xfdc7de['options']?_0xfdc7de['options'][_0xe1f4('0x1a')]||null:null,'attributes':_0xfdc7de[_0xe1f4('0x1b')]?_0xfdc7de[_0xe1f4('0x1b')]['attributes']||null:null,'limit':_0xfdc7de[_0xe1f4('0x1b')]?_0xfdc7de[_0xe1f4('0x1b')][_0xe1f4('0x1c')]||null:null,'include':_0xfdc7de[_0xe1f4('0x1b')]?_0xfdc7de['options'][_0xe1f4('0x1d')]?_[_0xe1f4('0x1e')](_0xfdc7de[_0xe1f4('0x1b')][_0xe1f4('0x1d')],function(_0x450734){return{'model':db[_0x450734[_0xe1f4('0x1f')]],'as':_0x450734['as'],'attributes':_0x450734[_0xe1f4('0x20')],'include':_0x450734['include']?_['map'](_0x450734[_0xe1f4('0x1d')],function(_0x951621){return{'model':db[_0x951621[_0xe1f4('0x1f')]],'as':_0x951621['as'],'attributes':_0x951621[_0xe1f4('0x20')],'include':_0x951621[_0xe1f4('0x1d')]?_[_0xe1f4('0x1e')](_0x951621[_0xe1f4('0x1d')],function(_0x545aa8){return{'model':db[_0x545aa8[_0xe1f4('0x1f')]],'as':_0x545aa8['as'],'attributes':_0x545aa8[_0xe1f4('0x20')]};}):[]};}):[]};}):[]:[]})[_0xe1f4('0xd')](function(_0x4e4755){logger[_0xe1f4('0xe')](_0xe1f4('0x17'),_0xfdc7de);logger[_0xe1f4('0x11')](_0xe1f4('0x17'),_0xfdc7de,JSON[_0xe1f4('0x21')](_0x4e4755));_0x24588a(_0x4e4755);})[_0xe1f4('0x16')](function(_0x56ce30){logger[_0xe1f4('0x13')](_0xe1f4('0x17'),_0x56ce30[_0xe1f4('0x14')],_0xfdc7de);_0x3ceea3(_0x5cf5d5['error'](0x1f4,_0x56ce30[_0xe1f4('0x14')]));});});};exports['ShowCmHopper']=function(_0x500561){var _0x1ce7d0=this;return new Promise(function(_0x2640c0,_0xb50227){return db[_0xe1f4('0x18')]['find']({'raw':_0x500561['options']?_0x500561[_0xe1f4('0x1b')][_0xe1f4('0x22')]===undefined?!![]:![]:!![],'where':_0x500561[_0xe1f4('0x1b')]?_0x500561[_0xe1f4('0x1b')][_0xe1f4('0x1a')]||null:null,'attributes':_0x500561[_0xe1f4('0x1b')]?_0x500561[_0xe1f4('0x1b')][_0xe1f4('0x20')]||null:null,'include':_0x500561[_0xe1f4('0x1b')]?_0x500561[_0xe1f4('0x1b')][_0xe1f4('0x1d')]?_['map'](_0x500561[_0xe1f4('0x1b')][_0xe1f4('0x1d')],function(_0x40ed35){return{'model':db[_0x40ed35['model']],'as':_0x40ed35['as'],'attributes':_0x40ed35[_0xe1f4('0x20')],'include':_0x40ed35[_0xe1f4('0x1d')]?_[_0xe1f4('0x1e')](_0x40ed35[_0xe1f4('0x1d')],function(_0x4c840b){return{'model':db[_0x4c840b[_0xe1f4('0x1f')]],'as':_0x4c840b['as'],'attributes':_0x4c840b['attributes'],'include':_0x4c840b[_0xe1f4('0x1d')]?_['map'](_0x4c840b[_0xe1f4('0x1d')],function(_0x1eea76){return{'model':db[_0x1eea76['model']],'as':_0x1eea76['as'],'attributes':_0x1eea76[_0xe1f4('0x20')]};}):[]};}):[]};}):[]:[]})[_0xe1f4('0xd')](function(_0xeffae6){logger[_0xe1f4('0xe')]('ShowCmHopper',_0x500561);logger[_0xe1f4('0x11')]('ShowCmHopper',_0x500561,JSON[_0xe1f4('0x21')](_0xeffae6));_0x2640c0(_0xeffae6);})[_0xe1f4('0x16')](function(_0x43edac){logger['error'](_0xe1f4('0x23'),_0x43edac[_0xe1f4('0x14')],_0x500561);_0xb50227(_0x1ce7d0[_0xe1f4('0x13')](0x1f4,_0x43edac['message']));});});};exports[_0xe1f4('0x24')]=function(_0x4c4280){var _0xde0438=this;return new Promise(function(_0xce75af,_0x5d91b8){return db[_0xe1f4('0x18')][_0xe1f4('0x25')](_0x4c4280[_0xe1f4('0x26')],{'raw':_0x4c4280[_0xe1f4('0x1b')]?_0x4c4280['options'][_0xe1f4('0x22')]===undefined?!![]:![]:!![]})[_0xe1f4('0xd')](function(_0x150dae){logger[_0xe1f4('0xe')](_0xe1f4('0x24'),_0x4c4280);logger['debug'](_0xe1f4('0x24'),_0x4c4280,JSON[_0xe1f4('0x21')](_0x150dae));_0xce75af(_0x150dae);})[_0xe1f4('0x16')](function(_0x128a0){logger['error']('CreateCmHopper',_0x128a0[_0xe1f4('0x14')],_0x4c4280);_0x5d91b8(_0xde0438[_0xe1f4('0x13')](0x1f4,_0x128a0[_0xe1f4('0x14')]));});});};exports[_0xe1f4('0x27')]=function(_0x15ef26){var _0x4b60e1=this;return new Promise(function(_0x5515ee,_0x31b771){return db[_0xe1f4('0x18')][_0xe1f4('0x28')](_0x15ef26[_0xe1f4('0x26')],{'raw':_0x15ef26[_0xe1f4('0x1b')]?_0x15ef26[_0xe1f4('0x1b')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x15ef26[_0xe1f4('0x1b')]?_0x15ef26[_0xe1f4('0x1b')][_0xe1f4('0x1a')]||null:null,'attributes':_0x15ef26[_0xe1f4('0x1b')]?_0x15ef26['options'][_0xe1f4('0x20')]||null:null,'limit':_0x15ef26['options']?_0x15ef26[_0xe1f4('0x1b')][_0xe1f4('0x1c')]||null:null})[_0xe1f4('0xd')](function(_0x5bfe3e){logger[_0xe1f4('0xe')](_0xe1f4('0x27'),_0x15ef26);logger[_0xe1f4('0xe')](_0xe1f4('0x29'),JSON[_0xe1f4('0x21')](_0x15ef26[_0xe1f4('0x1b')][_0xe1f4('0x1a')]),_0x15ef26[_0xe1f4('0x26')][_0xe1f4('0x2a')]);logger[_0xe1f4('0x11')](_0xe1f4('0x27'),_0x15ef26,JSON[_0xe1f4('0x21')](_0x5bfe3e));_0x5515ee(_0x5bfe3e);})['catch'](function(_0x38eac6){logger['error'](_0xe1f4('0x27'),_0x38eac6[_0xe1f4('0x14')],_0x15ef26);_0x31b771(_0x4b60e1[_0xe1f4('0x13')](0x1f4,_0x38eac6[_0xe1f4('0x14')]));});});};exports[_0xe1f4('0x2b')]=function(_0x20ff97){var _0x24712f=this;return new Promise(function(_0x28c5de,_0x3acafd){return db[_0xe1f4('0x18')][_0xe1f4('0x2c')]({'where':_0x20ff97[_0xe1f4('0x1b')]?_0x20ff97[_0xe1f4('0x1b')][_0xe1f4('0x1a')]||null:null})[_0xe1f4('0xd')](function(_0x22a277){logger[_0xe1f4('0xe')](_0xe1f4('0x2b'),_0x20ff97);logger[_0xe1f4('0x11')](_0xe1f4('0x2b'),_0x20ff97,JSON[_0xe1f4('0x21')](_0x22a277));_0x28c5de(_0x22a277);})[_0xe1f4('0x16')](function(_0x235c7d){logger[_0xe1f4('0x13')]('DestroyCmHopper',_0x235c7d['message'],_0x20ff97);_0x3acafd(_0x24712f[_0xe1f4('0x13')](0x1f4,_0x235c7d[_0xe1f4('0x14')]));});});};exports[_0xe1f4('0x2d')]=function(_0x34825a){var _0x4c8b68=this;return new Promise(function(_0x1fd33f,_0x380fc0){return db['CmContact']['describe']()[_0xe1f4('0xd')](function(_0x5a4784){return db['sequelize'][_0xe1f4('0x2e')](function(_0x4b66c7){return db[_0xe1f4('0x18')][_0xe1f4('0x19')]({'where':_0x34825a[_0xe1f4('0x1b')]?_0x34825a[_0xe1f4('0x1b')][_0xe1f4('0x1a')]||null:null,'attributes':_0x34825a[_0xe1f4('0x1b')]?_0x34825a[_0xe1f4('0x1b')][_0xe1f4('0x20')]||null:null,'limit':_0x34825a[_0xe1f4('0x1b')]?_0x34825a[_0xe1f4('0x1b')][_0xe1f4('0x1c')]||null:null,'order':_0x34825a[_0xe1f4('0x1b')]?_0x34825a[_0xe1f4('0x1b')][_0xe1f4('0x2f')]||null:null,'transaction':_0x4b66c7,'lock':_0x4b66c7[_0xe1f4('0x30')]['UPDATE'],'include':[{'model':db[_0xe1f4('0x31')],'as':_0xe1f4('0x32'),'attributes':_[_0xe1f4('0x33')](_0x5a4784)},{'model':db['User'],'as':_0xe1f4('0x34'),'attributes':['id',_0xe1f4('0x35'),_0xe1f4('0x36')]}]})['then'](function(_0x41bed8){var _0x58a446=[];var _0x1e8753=[];for(var _0x5aab74=0x0;_0x5aab74<_0x41bed8[_0xe1f4('0x37')];_0x5aab74+=0x1){var _0x5d67a5=_0x41bed8[_0x5aab74][_0xe1f4('0x38')];if(_0x5d67a5===null){_0x58a446['push'](_0x41bed8[_0x5aab74]['update'](_0x34825a[_0xe1f4('0x26')],{'transaction':_0x4b66c7}));}else if(!_0x1e8753[_0xe1f4('0x39')](_0x5d67a5)){_0x1e8753[_0xe1f4('0x3a')](_0x5d67a5);_0x58a446[_0xe1f4('0x3a')](_0x41bed8[_0x5aab74]['update'](_0x34825a[_0xe1f4('0x26')],{'transaction':_0x4b66c7}));}}return BPromise['all'](_0x58a446);});})[_0xe1f4('0xd')](function(_0x30ff91){logger[_0xe1f4('0xe')](_0xe1f4('0x2d'),_0x34825a);if(_0x30ff91[_0xe1f4('0x37')]>0x0){logger[_0xe1f4('0xe')](_0xe1f4('0x3b'),_0x30ff91[0x0][_0xe1f4('0x3c')]['id'],_0x30ff91[0x0][_0xe1f4('0x3c')][_0xe1f4('0x3d')],_0x30ff91[0x0][_0xe1f4('0x3c')][_0xe1f4('0x2a')]);}logger['debug'](_0xe1f4('0x2d'),_0x34825a,JSON[_0xe1f4('0x21')](_0x30ff91));_0x1fd33f(_0x30ff91);})[_0xe1f4('0x16')](function(_0x2dd17a){logger[_0xe1f4('0x13')]('GetContactDialer',_0x2dd17a[_0xe1f4('0x14')],_0x34825a);_0x380fc0(_0x4c8b68[_0xe1f4('0x13')](0x1f4,_0x2dd17a[_0xe1f4('0x14')]));});});});};exports[_0xe1f4('0x3e')]=function(_0x26d263){var _0x49b963=this;return new Promise(function(_0xd23903,_0x375f05){return db[_0xe1f4('0x3f')][_0xe1f4('0x2e')](function(_0x472c8b){return db[_0xe1f4('0x40')][_0xe1f4('0x25')](_0x26d263[_0xe1f4('0x26')],{'raw':_0x26d263['options']?_0x26d263['options'][_0xe1f4('0x22')]===undefined?!![]:![]:!![],'transaction':_0x472c8b})[_0xe1f4('0xd')](function(){logger[_0xe1f4('0xe')]('MoveContactManagedDialer\x20hopper\x20options\x20[%s]\x20active\x20status\x20[%s]',JSON['stringify'](_0x26d263[_0xe1f4('0x1b')][_0xe1f4('0x1a')]),_0x26d263[_0xe1f4('0x1b')]['where'][_0xe1f4('0x2a')]);return db[_0xe1f4('0x18')][_0xe1f4('0x2c')]({'where':_0x26d263[_0xe1f4('0x1b')]?_0x26d263['options'][_0xe1f4('0x1a')]||null:null,'transaction':_0x472c8b});});})['then'](function(_0x9c3c3){logger[_0xe1f4('0xe')](_0xe1f4('0x3e'),_0x26d263);logger['debug']('MoveContactManagedDialer',_0x26d263,JSON['stringify'](_0x9c3c3));_0xd23903(_0x9c3c3);})[_0xe1f4('0x16')](function(_0x494eea){logger['error'](_0xe1f4('0x3e'),_0x494eea[_0xe1f4('0x14')],_0x26d263);_0x375f05(_0x49b963[_0xe1f4('0x13')](0x1f4,_0x494eea[_0xe1f4('0x14')]));});});};exports[_0xe1f4('0x41')]=function(_0x3d8f0b){var _0x2d2fb9=this;return new Promise(function(_0x47d624,_0x5bc15f){return db['CmHopper']['findAll']({'raw':_0x3d8f0b[_0xe1f4('0x1b')]?_0x3d8f0b[_0xe1f4('0x1b')][_0xe1f4('0x22')]===undefined?!![]:![]:!![],'where':_0x3d8f0b[_0xe1f4('0x1b')]?_0x3d8f0b[_0xe1f4('0x1b')][_0xe1f4('0x1a')]||null:null,'attributes':[[db[_0xe1f4('0x3f')]['fn'](_0xe1f4('0x42'),db[_0xe1f4('0x3f')]['fn']('IF',db[_0xe1f4('0x3f')]['literal']('`scheduledat`\x20>=\x20'+util[_0xe1f4('0x43')]('\x22%s\x22',moment()['format'](_0xe1f4('0x44')))+_0xe1f4('0x45')))),_0xe1f4('0x46')]]})[_0xe1f4('0xd')](function(_0x69e4c5){logger[_0xe1f4('0xe')](_0xe1f4('0x41'),_0x3d8f0b);logger[_0xe1f4('0x11')](_0xe1f4('0x41'),_0x3d8f0b,JSON['stringify'](_0x69e4c5));_0x47d624(_0x69e4c5);})[_0xe1f4('0x16')](function(_0x5a6d98){logger[_0xe1f4('0x13')](_0xe1f4('0x41'),_0x5a6d98[_0xe1f4('0x14')],_0x3d8f0b);_0x5bc15f(_0x2d2fb9['error'](0x1f4,_0x5a6d98['message']));});});};exports[_0xe1f4('0x47')]=function(_0x4e815f){var _0x54cb40=this;return new Promise(function(_0x419805,_0x2a472c){return db[_0xe1f4('0x31')][_0xe1f4('0x48')]()['then'](function(_0x5d334f){return db[_0xe1f4('0x3f')]['transaction'](function(_0x37bd30){return db['CmHopper'][_0xe1f4('0x19')]({'where':_0x4e815f[_0xe1f4('0x1b')]?_0x4e815f[_0xe1f4('0x1b')][_0xe1f4('0x1a')]||null:null,'attributes':_0x4e815f[_0xe1f4('0x1b')]?_0x4e815f[_0xe1f4('0x1b')]['attributes']||null:null,'limit':0x1,'order':_0x4e815f[_0xe1f4('0x1b')]?_0x4e815f[_0xe1f4('0x1b')][_0xe1f4('0x2f')]||null:null,'group':db[_0xe1f4('0x18')]['UserId'],'transaction':_0x37bd30,'lock':_0x37bd30['LOCK']['UPDATE'],'include':_0x4e815f[_0xe1f4('0x1b')]?_0x4e815f[_0xe1f4('0x1b')][_0xe1f4('0x1d')]?_['map'](_0x4e815f[_0xe1f4('0x1b')]['include'],function(_0x115c33){return{'model':db[_0x115c33[_0xe1f4('0x1f')]],'as':_0x115c33['as'],'attributes':_0x115c33[_0xe1f4('0x20')],'include':_0x115c33[_0xe1f4('0x1d')]?_[_0xe1f4('0x1e')](_0x115c33[_0xe1f4('0x1d')],function(_0x55f359){return{'model':db[_0x55f359['model']],'as':_0x55f359['as'],'attributes':_0x55f359[_0xe1f4('0x20')],'include':_0x55f359[_0xe1f4('0x1d')]?_[_0xe1f4('0x1e')](_0x55f359['include'],function(_0x133a0b){return{'model':db[_0x133a0b[_0xe1f4('0x1f')]],'as':_0x133a0b['as'],'attributes':_0x133a0b[_0xe1f4('0x20')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x405e3c){var _0x2dd669=[];for(var _0x416dc9=0x0;_0x416dc9<_0x405e3c[_0xe1f4('0x37')];_0x416dc9+=0x1){_0x2dd669['push'](_0x405e3c[_0x416dc9]['update'](_0x4e815f['body'],{'transaction':_0x37bd30}));}return BPromise[_0xe1f4('0x49')](_0x2dd669);});})['then'](function(_0x3014ad){logger[_0xe1f4('0xe')](_0xe1f4('0x47'),_0x4e815f);logger[_0xe1f4('0x11')](_0xe1f4('0x47'),_0x4e815f,JSON[_0xe1f4('0x21')](_0x3014ad));_0x419805(_0x3014ad);})[_0xe1f4('0x16')](function(_0x3731ef){logger[_0xe1f4('0x13')](_0xe1f4('0x47'),_0x3731ef[_0xe1f4('0x14')],_0x4e815f);_0x2a472c(_0x54cb40['error'](0x1f4,_0x3731ef[_0xe1f4('0x14')]));});});});};exports['GetCmHopperPreview']=function(_0x431211){var _0x4eca57=this;return new Promise(function(_0x1f1d36,_0xcb8cf0){db['CmContact'][_0xe1f4('0x48')]()['then'](function(_0x18538b){return db[_0xe1f4('0x18')][_0xe1f4('0x19')]({'raw':_0x431211[_0xe1f4('0x1b')]?_0x431211[_0xe1f4('0x1b')][_0xe1f4('0x22')]===undefined?!![]:![]:!![],'where':_0x431211['options']?_0x431211[_0xe1f4('0x1b')]['where']||null:null,'attributes':_0x431211[_0xe1f4('0x1b')]?_0x431211['options'][_0xe1f4('0x20')]||null:null,'limit':_0x431211[_0xe1f4('0x1b')]?_0x431211[_0xe1f4('0x1b')][_0xe1f4('0x1c')]||null:null,'include':_0x431211[_0xe1f4('0x1b')]?_0x431211[_0xe1f4('0x1b')][_0xe1f4('0x1d')]?_[_0xe1f4('0x1e')](_0x431211[_0xe1f4('0x1b')][_0xe1f4('0x1d')],function(_0x527a08){return{'model':db[_0x527a08['model']],'as':_0x527a08['as'],'attributes':_0x527a08['as']===_0xe1f4('0x32')?_[_0xe1f4('0x33')](_0x18538b):_0x527a08[_0xe1f4('0x20')],'include':_0x527a08[_0xe1f4('0x1d')]?_[_0xe1f4('0x1e')](_0x527a08[_0xe1f4('0x1d')],function(_0x11bf0f){return{'model':db[_0x11bf0f[_0xe1f4('0x1f')]],'as':_0x11bf0f['as'],'attributes':_0x11bf0f['attributes'],'include':_0x11bf0f[_0xe1f4('0x1d')]?_[_0xe1f4('0x1e')](_0x11bf0f[_0xe1f4('0x1d')],function(_0x283115){return{'model':db[_0x283115[_0xe1f4('0x1f')]],'as':_0x283115['as'],'attributes':_0x283115[_0xe1f4('0x20')]};}):[]};}):[]};}):[]:[]})[_0xe1f4('0xd')](function(_0xe3d7aa){logger[_0xe1f4('0xe')]('GetCmHopper',_0x431211);logger[_0xe1f4('0x11')](_0xe1f4('0x17'),_0x431211,JSON[_0xe1f4('0x21')](_0xe3d7aa));_0x1f1d36(_0xe3d7aa);})[_0xe1f4('0x16')](function(_0x145264){logger['error'](_0xe1f4('0x17'),_0x145264[_0xe1f4('0x14')],_0x431211);_0xcb8cf0(_0x4eca57['error'](0x1f4,_0x145264[_0xe1f4('0x14')]));});});});};exports[_0xe1f4('0x4a')]=function(_0x129ad2){var _0x21dee7=this;return new Promise(function(_0x31e926,_0x36c635){return db['sequelize']['transaction'](function(_0x5a6999){return db[_0xe1f4('0x18')]['update']({'active':![]},{'where':{},'transaction':_0x5a6999})[_0xe1f4('0xd')](function(_0x39f76f){logger[_0xe1f4('0xe')](_0xe1f4('0x4a'),_0x129ad2);logger['debug'](_0xe1f4('0x4a'),_0x129ad2,JSON[_0xe1f4('0x21')](_0x39f76f));_0x31e926(_0x39f76f);})[_0xe1f4('0x16')](function(_0x35149d){logger[_0xe1f4('0x13')](_0xe1f4('0x4a'),_0x35149d[_0xe1f4('0x14')],_0x129ad2);_0x36c635(_0x21dee7['error'](0x1f4,_0x35149d[_0xe1f4('0x14')]));});});});};
\ No newline at end of file
+var _0xe174=['util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/environment','jayson/promise','request','then','CmHopper,\x20%s,\x20%s','request\x20sent','CmHopper,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','catch','GetCmHopper','findAll','options','attributes','limit','include','map','model','CmHopper','raw','where','debug','ShowCmHopper','CreateCmHopper','create','body','UpdateCmHopper','update','UpdateCmHopper\x20hopper\x20options\x20[%s]\x20active\x20status\x20[%s]','active','DestroyCmHopper','destroy','GetContactDialer','CmContact','describe','sequelize','transaction','LOCK','UPDATE','Contact','keys','User','Agent','name','voicePause','UserId','includes','push','length','GetContactDialer\x20hopperId\x20[%s]\x20-\x20contactId\x20[%s]\x20-\x20active\x20status\x20[%s]','dataValues','ContactId','MoveContactManagedDialer','MoveContactManagedDialer\x20hopper\x20options\x20[%s]\x20active\x20status\x20[%s]','CountReScheduled','literal','format','\x22%s\x22','\x20,\x201,\x20null','GetContactRecallMe','order','all','ResetActiveCalls','lodash'];(function(_0x3cb421,_0x3708b8){var _0x512b06=function(_0x34aa0b){while(--_0x34aa0b){_0x3cb421['push'](_0x3cb421['shift']());}};_0x512b06(++_0x3708b8);}(_0xe174,0xdd));var _0x4e17=function(_0x15dfd2,_0x54ff2f){_0x15dfd2=_0x15dfd2-0x0;var _0x7e7009=_0xe174[_0x15dfd2];return _0x7e7009;};'use strict';var _=require(_0x4e17('0x0'));var util=require(_0x4e17('0x1'));var moment=require(_0x4e17('0x2'));var BPromise=require(_0x4e17('0x3'));var rs=require(_0x4e17('0x4'));var fs=require('fs');var Redis=require(_0x4e17('0x5'));var db=require(_0x4e17('0x6'))['db'];var utils=require(_0x4e17('0x7'));var logger=require('../../config/logger')('rpc');var config=require(_0x4e17('0x8'));var jayson=require(_0x4e17('0x9'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x178a1c,_0x4ff692,_0x213885){return new BPromise(function(_0x4c41bd,_0x2a76d4){return client[_0x4e17('0xa')](_0x178a1c,_0x213885)[_0x4e17('0xb')](function(_0xb7a88e){logger['info'](_0x4e17('0xc'),_0x4ff692,_0x4e17('0xd'));logger['debug'](_0x4e17('0xe'),_0x4ff692,_0x4e17('0xd'),JSON[_0x4e17('0xf')](_0xb7a88e));if(_0xb7a88e[_0x4e17('0x10')]){if(_0xb7a88e['error'][_0x4e17('0x11')]===0x1f4){logger[_0x4e17('0x10')](_0x4e17('0xc'),_0x4ff692,_0xb7a88e[_0x4e17('0x10')][_0x4e17('0x12')]);return _0x2a76d4(_0xb7a88e[_0x4e17('0x10')]['message']);}logger[_0x4e17('0x10')](_0x4e17('0xc'),_0x4ff692,_0xb7a88e['error']['message']);return _0x4c41bd(_0xb7a88e['error'][_0x4e17('0x12')]);}else{logger[_0x4e17('0x13')](_0x4e17('0xc'),_0x4ff692,_0x4e17('0xd'));_0x4c41bd(_0xb7a88e['result']['message']);}})[_0x4e17('0x14')](function(_0x10aa1a){logger[_0x4e17('0x10')]('CmHopper,\x20%s,\x20%s',_0x4ff692,_0x10aa1a);_0x2a76d4(_0x10aa1a);});});}exports[_0x4e17('0x15')]=function(_0x4843bb){var _0x3a0197=this;return new Promise(function(_0x34d9a4,_0x450305){return db['CmHopper'][_0x4e17('0x16')]({'raw':_0x4843bb[_0x4e17('0x17')]?_0x4843bb['options']['raw']===undefined?!![]:![]:!![],'where':_0x4843bb['options']?_0x4843bb[_0x4e17('0x17')]['where']||null:null,'attributes':_0x4843bb[_0x4e17('0x17')]?_0x4843bb[_0x4e17('0x17')][_0x4e17('0x18')]||null:null,'limit':_0x4843bb[_0x4e17('0x17')]?_0x4843bb[_0x4e17('0x17')][_0x4e17('0x19')]||null:null,'include':_0x4843bb[_0x4e17('0x17')]?_0x4843bb[_0x4e17('0x17')][_0x4e17('0x1a')]?_[_0x4e17('0x1b')](_0x4843bb[_0x4e17('0x17')][_0x4e17('0x1a')],function(_0x576041){return{'model':db[_0x576041[_0x4e17('0x1c')]],'as':_0x576041['as'],'attributes':_0x576041[_0x4e17('0x18')],'include':_0x576041[_0x4e17('0x1a')]?_['map'](_0x576041[_0x4e17('0x1a')],function(_0x16e220){return{'model':db[_0x16e220[_0x4e17('0x1c')]],'as':_0x16e220['as'],'attributes':_0x16e220['attributes'],'include':_0x16e220[_0x4e17('0x1a')]?_[_0x4e17('0x1b')](_0x16e220[_0x4e17('0x1a')],function(_0x5b53b5){return{'model':db[_0x5b53b5[_0x4e17('0x1c')]],'as':_0x5b53b5['as'],'attributes':_0x5b53b5['attributes']};}):[]};}):[]};}):[]:[]})[_0x4e17('0xb')](function(_0x4200f8){logger[_0x4e17('0x13')](_0x4e17('0x15'),_0x4843bb);logger['debug'](_0x4e17('0x15'),_0x4843bb,JSON['stringify'](_0x4200f8));_0x34d9a4(_0x4200f8);})[_0x4e17('0x14')](function(_0x263af4){logger[_0x4e17('0x10')](_0x4e17('0x15'),_0x263af4[_0x4e17('0x12')],_0x4843bb);_0x450305(_0x3a0197[_0x4e17('0x10')](0x1f4,_0x263af4[_0x4e17('0x12')]));});});};exports['ShowCmHopper']=function(_0x542f79){var _0x38da99=this;return new Promise(function(_0x3c4562,_0x4fc6be){return db[_0x4e17('0x1d')]['find']({'raw':_0x542f79[_0x4e17('0x17')]?_0x542f79[_0x4e17('0x17')][_0x4e17('0x1e')]===undefined?!![]:![]:!![],'where':_0x542f79[_0x4e17('0x17')]?_0x542f79[_0x4e17('0x17')][_0x4e17('0x1f')]||null:null,'attributes':_0x542f79[_0x4e17('0x17')]?_0x542f79['options']['attributes']||null:null,'include':_0x542f79[_0x4e17('0x17')]?_0x542f79['options'][_0x4e17('0x1a')]?_[_0x4e17('0x1b')](_0x542f79[_0x4e17('0x17')][_0x4e17('0x1a')],function(_0x24ab1a){return{'model':db[_0x24ab1a[_0x4e17('0x1c')]],'as':_0x24ab1a['as'],'attributes':_0x24ab1a[_0x4e17('0x18')],'include':_0x24ab1a['include']?_[_0x4e17('0x1b')](_0x24ab1a[_0x4e17('0x1a')],function(_0x40147b){return{'model':db[_0x40147b[_0x4e17('0x1c')]],'as':_0x40147b['as'],'attributes':_0x40147b[_0x4e17('0x18')],'include':_0x40147b[_0x4e17('0x1a')]?_[_0x4e17('0x1b')](_0x40147b[_0x4e17('0x1a')],function(_0x5ba276){return{'model':db[_0x5ba276[_0x4e17('0x1c')]],'as':_0x5ba276['as'],'attributes':_0x5ba276[_0x4e17('0x18')]};}):[]};}):[]};}):[]:[]})[_0x4e17('0xb')](function(_0x13289c){logger[_0x4e17('0x13')]('ShowCmHopper',_0x542f79);logger[_0x4e17('0x20')](_0x4e17('0x21'),_0x542f79,JSON['stringify'](_0x13289c));_0x3c4562(_0x13289c);})[_0x4e17('0x14')](function(_0x30dd25){logger['error'](_0x4e17('0x21'),_0x30dd25[_0x4e17('0x12')],_0x542f79);_0x4fc6be(_0x38da99[_0x4e17('0x10')](0x1f4,_0x30dd25[_0x4e17('0x12')]));});});};exports[_0x4e17('0x22')]=function(_0x40a58e){var _0x3d52c6=this;return new Promise(function(_0x325181,_0x2370d1){return db['CmHopper'][_0x4e17('0x23')](_0x40a58e[_0x4e17('0x24')],{'raw':_0x40a58e['options']?_0x40a58e[_0x4e17('0x17')][_0x4e17('0x1e')]===undefined?!![]:![]:!![]})[_0x4e17('0xb')](function(_0x482729){logger['info'](_0x4e17('0x22'),_0x40a58e);logger[_0x4e17('0x20')](_0x4e17('0x22'),_0x40a58e,JSON[_0x4e17('0xf')](_0x482729));_0x325181(_0x482729);})[_0x4e17('0x14')](function(_0x12f333){logger['error'](_0x4e17('0x22'),_0x12f333['message'],_0x40a58e);_0x2370d1(_0x3d52c6[_0x4e17('0x10')](0x1f4,_0x12f333[_0x4e17('0x12')]));});});};exports[_0x4e17('0x25')]=function(_0x2f4082){var _0x5cc08d=this;return new Promise(function(_0x2345a2,_0xbd41ab){return db[_0x4e17('0x1d')][_0x4e17('0x26')](_0x2f4082[_0x4e17('0x24')],{'raw':_0x2f4082[_0x4e17('0x17')]?_0x2f4082[_0x4e17('0x17')][_0x4e17('0x1e')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x2f4082[_0x4e17('0x17')]?_0x2f4082[_0x4e17('0x17')][_0x4e17('0x1f')]||null:null,'attributes':_0x2f4082[_0x4e17('0x17')]?_0x2f4082[_0x4e17('0x17')]['attributes']||null:null,'limit':_0x2f4082[_0x4e17('0x17')]?_0x2f4082[_0x4e17('0x17')][_0x4e17('0x19')]||null:null})[_0x4e17('0xb')](function(_0x58c47d){logger[_0x4e17('0x13')](_0x4e17('0x25'),_0x2f4082);logger[_0x4e17('0x13')](_0x4e17('0x27'),JSON[_0x4e17('0xf')](_0x2f4082[_0x4e17('0x17')][_0x4e17('0x1f')]),_0x2f4082[_0x4e17('0x24')][_0x4e17('0x28')]);logger[_0x4e17('0x20')](_0x4e17('0x25'),_0x2f4082,JSON[_0x4e17('0xf')](_0x58c47d));_0x2345a2(_0x58c47d);})[_0x4e17('0x14')](function(_0xad7fa4){logger[_0x4e17('0x10')](_0x4e17('0x25'),_0xad7fa4['message'],_0x2f4082);_0xbd41ab(_0x5cc08d[_0x4e17('0x10')](0x1f4,_0xad7fa4[_0x4e17('0x12')]));});});};exports[_0x4e17('0x29')]=function(_0x4d4147){var _0x27996c=this;return new Promise(function(_0x410187,_0x143985){return db['CmHopper'][_0x4e17('0x2a')]({'where':_0x4d4147[_0x4e17('0x17')]?_0x4d4147['options']['where']||null:null})[_0x4e17('0xb')](function(_0x279776){logger[_0x4e17('0x13')](_0x4e17('0x29'),_0x4d4147);logger[_0x4e17('0x20')](_0x4e17('0x29'),_0x4d4147,JSON['stringify'](_0x279776));_0x410187(_0x279776);})[_0x4e17('0x14')](function(_0x39c266){logger[_0x4e17('0x10')](_0x4e17('0x29'),_0x39c266[_0x4e17('0x12')],_0x4d4147);_0x143985(_0x27996c[_0x4e17('0x10')](0x1f4,_0x39c266['message']));});});};exports[_0x4e17('0x2b')]=function(_0x3a2cd4){var _0x3c7a8c=this;return new Promise(function(_0x142d13,_0xb74ce3){return db[_0x4e17('0x2c')][_0x4e17('0x2d')]()[_0x4e17('0xb')](function(_0x44d5ae){return db[_0x4e17('0x2e')][_0x4e17('0x2f')](function(_0x15f471){return db['CmHopper']['findAll']({'where':_0x3a2cd4['options']?_0x3a2cd4[_0x4e17('0x17')][_0x4e17('0x1f')]||null:null,'attributes':_0x3a2cd4['options']?_0x3a2cd4[_0x4e17('0x17')][_0x4e17('0x18')]||null:null,'limit':_0x3a2cd4[_0x4e17('0x17')]?_0x3a2cd4[_0x4e17('0x17')][_0x4e17('0x19')]||null:null,'order':_0x3a2cd4[_0x4e17('0x17')]?_0x3a2cd4['options']['order']||null:null,'transaction':_0x15f471,'lock':_0x15f471[_0x4e17('0x30')][_0x4e17('0x31')],'include':[{'model':db['CmContact'],'as':_0x4e17('0x32'),'attributes':_[_0x4e17('0x33')](_0x44d5ae)},{'model':db[_0x4e17('0x34')],'as':_0x4e17('0x35'),'attributes':['id',_0x4e17('0x36'),_0x4e17('0x37')]}]})['then'](function(_0x197af9){var _0x454f99=[];var _0x40f575=[];for(var _0x16bd24=0x0;_0x16bd24<_0x197af9['length'];_0x16bd24+=0x1){var _0x479bff=_0x197af9[_0x16bd24][_0x4e17('0x38')];if(_0x479bff===null){_0x454f99['push'](_0x197af9[_0x16bd24][_0x4e17('0x26')](_0x3a2cd4[_0x4e17('0x24')],{'transaction':_0x15f471}));}else if(!_0x40f575[_0x4e17('0x39')](_0x479bff)){_0x40f575[_0x4e17('0x3a')](_0x479bff);_0x454f99['push'](_0x197af9[_0x16bd24][_0x4e17('0x26')](_0x3a2cd4[_0x4e17('0x24')],{'transaction':_0x15f471}));}}return BPromise['all'](_0x454f99);});})[_0x4e17('0xb')](function(_0x4bca2f){logger[_0x4e17('0x13')](_0x4e17('0x2b'),_0x3a2cd4);if(_0x4bca2f[_0x4e17('0x3b')]>0x0){logger[_0x4e17('0x13')](_0x4e17('0x3c'),_0x4bca2f[0x0][_0x4e17('0x3d')]['id'],_0x4bca2f[0x0]['dataValues'][_0x4e17('0x3e')],_0x4bca2f[0x0][_0x4e17('0x3d')][_0x4e17('0x28')]);}logger['debug'](_0x4e17('0x2b'),_0x3a2cd4,JSON[_0x4e17('0xf')](_0x4bca2f));_0x142d13(_0x4bca2f);})[_0x4e17('0x14')](function(_0x4e859d){logger[_0x4e17('0x10')](_0x4e17('0x2b'),_0x4e859d[_0x4e17('0x12')],_0x3a2cd4);_0xb74ce3(_0x3c7a8c['error'](0x1f4,_0x4e859d[_0x4e17('0x12')]));});});});};exports[_0x4e17('0x3f')]=function(_0x11baab){var _0x37c4bb=this;return new Promise(function(_0xdaeb59,_0x413ac8){return db[_0x4e17('0x2e')][_0x4e17('0x2f')](function(_0x39d6de){return db['CmHopperFinal']['create'](_0x11baab['body'],{'raw':_0x11baab[_0x4e17('0x17')]?_0x11baab[_0x4e17('0x17')]['raw']===undefined?!![]:![]:!![],'transaction':_0x39d6de})[_0x4e17('0xb')](function(){logger['info'](_0x4e17('0x40'),JSON['stringify'](_0x11baab[_0x4e17('0x17')][_0x4e17('0x1f')]),_0x11baab['options']['where'][_0x4e17('0x28')]);return db[_0x4e17('0x1d')][_0x4e17('0x2a')]({'where':_0x11baab[_0x4e17('0x17')]?_0x11baab[_0x4e17('0x17')][_0x4e17('0x1f')]||null:null,'transaction':_0x39d6de});});})[_0x4e17('0xb')](function(_0xd359a6){logger[_0x4e17('0x13')](_0x4e17('0x3f'),_0x11baab);logger[_0x4e17('0x20')](_0x4e17('0x3f'),_0x11baab,JSON[_0x4e17('0xf')](_0xd359a6));_0xdaeb59(_0xd359a6);})['catch'](function(_0x30997c){logger[_0x4e17('0x10')](_0x4e17('0x3f'),_0x30997c[_0x4e17('0x12')],_0x11baab);_0x413ac8(_0x37c4bb[_0x4e17('0x10')](0x1f4,_0x30997c[_0x4e17('0x12')]));});});};exports[_0x4e17('0x41')]=function(_0x2e6a65){var _0x590434=this;return new Promise(function(_0x4cd6c3,_0x4384e4){return db[_0x4e17('0x1d')][_0x4e17('0x16')]({'raw':_0x2e6a65[_0x4e17('0x17')]?_0x2e6a65[_0x4e17('0x17')]['raw']===undefined?!![]:![]:!![],'where':_0x2e6a65['options']?_0x2e6a65[_0x4e17('0x17')][_0x4e17('0x1f')]||null:null,'attributes':[[db[_0x4e17('0x2e')]['fn']('COUNT',db['sequelize']['fn']('IF',db['sequelize'][_0x4e17('0x42')]('`scheduledat`\x20>=\x20'+util[_0x4e17('0x43')](_0x4e17('0x44'),moment()[_0x4e17('0x43')]('YYYY-MM-DD\x20HH:mm:ss'))+_0x4e17('0x45')))),'contactsRescheduled']]})[_0x4e17('0xb')](function(_0x46eb6e){logger['info']('CountReScheduled',_0x2e6a65);logger[_0x4e17('0x20')]('CountReScheduled',_0x2e6a65,JSON[_0x4e17('0xf')](_0x46eb6e));_0x4cd6c3(_0x46eb6e);})[_0x4e17('0x14')](function(_0x325128){logger[_0x4e17('0x10')](_0x4e17('0x41'),_0x325128[_0x4e17('0x12')],_0x2e6a65);_0x4384e4(_0x590434['error'](0x1f4,_0x325128[_0x4e17('0x12')]));});});};exports[_0x4e17('0x46')]=function(_0x2cde74){var _0x53055e=this;return new Promise(function(_0xf4ad5e,_0x235b51){return db[_0x4e17('0x2c')][_0x4e17('0x2d')]()['then'](function(_0x40a5c7){return db[_0x4e17('0x2e')][_0x4e17('0x2f')](function(_0x4e3b5e){return db[_0x4e17('0x1d')]['findAll']({'where':_0x2cde74['options']?_0x2cde74[_0x4e17('0x17')][_0x4e17('0x1f')]||null:null,'attributes':_0x2cde74['options']?_0x2cde74[_0x4e17('0x17')][_0x4e17('0x18')]||null:null,'limit':0x1,'order':_0x2cde74[_0x4e17('0x17')]?_0x2cde74[_0x4e17('0x17')][_0x4e17('0x47')]||null:null,'group':db[_0x4e17('0x1d')]['UserId'],'transaction':_0x4e3b5e,'lock':_0x4e3b5e[_0x4e17('0x30')][_0x4e17('0x31')],'include':_0x2cde74['options']?_0x2cde74[_0x4e17('0x17')][_0x4e17('0x1a')]?_[_0x4e17('0x1b')](_0x2cde74[_0x4e17('0x17')][_0x4e17('0x1a')],function(_0x5a7feb){return{'model':db[_0x5a7feb[_0x4e17('0x1c')]],'as':_0x5a7feb['as'],'attributes':_0x5a7feb['attributes'],'include':_0x5a7feb[_0x4e17('0x1a')]?_['map'](_0x5a7feb[_0x4e17('0x1a')],function(_0x1c868c){return{'model':db[_0x1c868c[_0x4e17('0x1c')]],'as':_0x1c868c['as'],'attributes':_0x1c868c[_0x4e17('0x18')],'include':_0x1c868c[_0x4e17('0x1a')]?_[_0x4e17('0x1b')](_0x1c868c[_0x4e17('0x1a')],function(_0x83f69a){return{'model':db[_0x83f69a['model']],'as':_0x83f69a['as'],'attributes':_0x83f69a[_0x4e17('0x18')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x44ba4b){var _0x352842=[];for(var _0x2e5363=0x0;_0x2e5363<_0x44ba4b['length'];_0x2e5363+=0x1){_0x352842[_0x4e17('0x3a')](_0x44ba4b[_0x2e5363]['update'](_0x2cde74[_0x4e17('0x24')],{'transaction':_0x4e3b5e}));}return BPromise[_0x4e17('0x48')](_0x352842);});})['then'](function(_0x5856dd){logger[_0x4e17('0x13')](_0x4e17('0x46'),_0x2cde74);logger[_0x4e17('0x20')](_0x4e17('0x46'),_0x2cde74,JSON['stringify'](_0x5856dd));_0xf4ad5e(_0x5856dd);})['catch'](function(_0x3f3542){logger[_0x4e17('0x10')](_0x4e17('0x46'),_0x3f3542[_0x4e17('0x12')],_0x2cde74);_0x235b51(_0x53055e[_0x4e17('0x10')](0x1f4,_0x3f3542[_0x4e17('0x12')]));});});});};exports['GetCmHopperPreview']=function(_0x428aac){var _0x5b5312=this;return new Promise(function(_0x2e624a,_0x5164cc){db['CmContact'][_0x4e17('0x2d')]()[_0x4e17('0xb')](function(_0x1cd941){return db[_0x4e17('0x1d')][_0x4e17('0x16')]({'raw':_0x428aac[_0x4e17('0x17')]?_0x428aac['options'][_0x4e17('0x1e')]===undefined?!![]:![]:!![],'where':_0x428aac['options']?_0x428aac[_0x4e17('0x17')]['where']||null:null,'attributes':_0x428aac[_0x4e17('0x17')]?_0x428aac[_0x4e17('0x17')][_0x4e17('0x18')]||null:null,'limit':_0x428aac[_0x4e17('0x17')]?_0x428aac['options'][_0x4e17('0x19')]||null:null,'include':_0x428aac[_0x4e17('0x17')]?_0x428aac[_0x4e17('0x17')][_0x4e17('0x1a')]?_[_0x4e17('0x1b')](_0x428aac[_0x4e17('0x17')]['include'],function(_0xd1bb97){return{'model':db[_0xd1bb97[_0x4e17('0x1c')]],'as':_0xd1bb97['as'],'attributes':_0xd1bb97['as']===_0x4e17('0x32')?_[_0x4e17('0x33')](_0x1cd941):_0xd1bb97[_0x4e17('0x18')],'include':_0xd1bb97[_0x4e17('0x1a')]?_['map'](_0xd1bb97[_0x4e17('0x1a')],function(_0x51325e){return{'model':db[_0x51325e[_0x4e17('0x1c')]],'as':_0x51325e['as'],'attributes':_0x51325e[_0x4e17('0x18')],'include':_0x51325e[_0x4e17('0x1a')]?_['map'](_0x51325e[_0x4e17('0x1a')],function(_0xeda153){return{'model':db[_0xeda153[_0x4e17('0x1c')]],'as':_0xeda153['as'],'attributes':_0xeda153[_0x4e17('0x18')]};}):[]};}):[]};}):[]:[]})[_0x4e17('0xb')](function(_0x57428b){logger[_0x4e17('0x13')](_0x4e17('0x15'),_0x428aac);logger[_0x4e17('0x20')]('GetCmHopper',_0x428aac,JSON['stringify'](_0x57428b));_0x2e624a(_0x57428b);})[_0x4e17('0x14')](function(_0x482c6f){logger[_0x4e17('0x10')](_0x4e17('0x15'),_0x482c6f[_0x4e17('0x12')],_0x428aac);_0x5164cc(_0x5b5312['error'](0x1f4,_0x482c6f['message']));});});});};exports['ResetActiveCalls']=function(_0x16dc5a){var _0x4b268e=this;return new Promise(function(_0x230660,_0x4fba91){return db[_0x4e17('0x2e')][_0x4e17('0x2f')](function(_0x465c7c){return db[_0x4e17('0x1d')]['update']({'active':![]},{'where':{},'transaction':_0x465c7c})[_0x4e17('0xb')](function(_0x171fda){logger[_0x4e17('0x13')](_0x4e17('0x49'),_0x16dc5a);logger['debug'](_0x4e17('0x49'),_0x16dc5a,JSON[_0x4e17('0xf')](_0x171fda));_0x230660(_0x171fda);})[_0x4e17('0x14')](function(_0x3e6da7){logger[_0x4e17('0x10')]('ResetActiveCalls',_0x3e6da7[_0x4e17('0x12')],_0x16dc5a);_0x4fba91(_0x4b268e[_0x4e17('0x10')](0x1f4,_0x3e6da7['message']));});});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x91ed=['../../components/interaction/service','./cmHopper.controller','get','index','/describe','describe','isAuthenticated','getOpenContacts','/:id','post','create','/preview','getPreview','put','delete','destroy','exports','util','path','connect-timeout','express','Router'];(function(_0x48b724,_0x5a8e26){var _0x4d38b3=function(_0xef820f){while(--_0xef820f){_0x48b724['push'](_0x48b724['shift']());}};_0x4d38b3(++_0x5a8e26);}(_0x91ed,0xab));var _0xd91e=function(_0x59ee6f,_0x450239){_0x59ee6f=_0x59ee6f-0x0;var _0x4c0979=_0x91ed[_0x59ee6f];return _0x4c0979;};'use strict';var multer=require('multer');var util=require(_0xd91e('0x0'));var path=require(_0xd91e('0x1'));var timeout=require(_0xd91e('0x2'));var express=require(_0xd91e('0x3'));var router=express[_0xd91e('0x4')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0xd91e('0x5'));var config=require('../../config/environment');var controller=require(_0xd91e('0x6'));router[_0xd91e('0x7')]('/',auth['isAuthenticated'](),controller[_0xd91e('0x8')]);router[_0xd91e('0x7')](_0xd91e('0x9'),auth['isAuthenticated'](),controller[_0xd91e('0xa')]);router[_0xd91e('0x7')]('/opencontacts',auth[_0xd91e('0xb')](),controller[_0xd91e('0xc')]);router[_0xd91e('0x7')](_0xd91e('0xd'),auth[_0xd91e('0xb')](),controller['show']);router[_0xd91e('0xe')]('/',auth[_0xd91e('0xb')](),controller[_0xd91e('0xf')]);router[_0xd91e('0xe')](_0xd91e('0x10'),auth['isAuthenticated'](),controller[_0xd91e('0x11')]);router[_0xd91e('0x12')](_0xd91e('0xd'),auth[_0xd91e('0xb')](),controller['update']);router[_0xd91e('0x13')](_0xd91e('0xd'),auth[_0xd91e('0xb')](),controller[_0xd91e('0x14')]);module[_0xd91e('0x15')]=router;
\ No newline at end of file
+var _0xb93c=['path','express','Router','fs-extra','../../components/auth/service','../../config/environment','get','index','/describe','isAuthenticated','describe','/opencontacts','show','post','/preview','getPreview','update','delete','destroy','exports','multer','util'];(function(_0x2f45ea,_0x15c656){var _0x485a84=function(_0x4a1fe3){while(--_0x4a1fe3){_0x2f45ea['push'](_0x2f45ea['shift']());}};_0x485a84(++_0x15c656);}(_0xb93c,0x1e2));var _0xcb93=function(_0xc14e9b,_0x5c3047){_0xc14e9b=_0xc14e9b-0x0;var _0x48f298=_0xb93c[_0xc14e9b];return _0x48f298;};'use strict';var multer=require(_0xcb93('0x0'));var util=require(_0xcb93('0x1'));var path=require(_0xcb93('0x2'));var timeout=require('connect-timeout');var express=require(_0xcb93('0x3'));var router=express[_0xcb93('0x4')]();var fs_extra=require(_0xcb93('0x5'));var auth=require(_0xcb93('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0xcb93('0x7'));var controller=require('./cmHopper.controller');router[_0xcb93('0x8')]('/',auth['isAuthenticated'](),controller[_0xcb93('0x9')]);router[_0xcb93('0x8')](_0xcb93('0xa'),auth[_0xcb93('0xb')](),controller[_0xcb93('0xc')]);router['get'](_0xcb93('0xd'),auth[_0xcb93('0xb')](),controller['getOpenContacts']);router[_0xcb93('0x8')]('/:id',auth['isAuthenticated'](),controller[_0xcb93('0xe')]);router[_0xcb93('0xf')]('/',auth['isAuthenticated'](),controller['create']);router[_0xcb93('0xf')](_0xcb93('0x10'),auth[_0xcb93('0xb')](),controller[_0xcb93('0x11')]);router['put']('/:id',auth[_0xcb93('0xb')](),controller[_0xcb93('0x12')]);router[_0xcb93('0x13')]('/:id',auth[_0xcb93('0xb')](),controller[_0xcb93('0x14')]);module[_0xcb93('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xed5f=['INTEGER','sequelize','exports','STRING','contactListQueue'];(function(_0x1b82f8,_0x59f419){var _0xb4bb63=function(_0x34dca2){while(--_0x34dca2){_0x1b82f8['push'](_0x1b82f8['shift']());}};_0xb4bb63(++_0x59f419);}(_0xed5f,0x1e6));var _0xfed5=function(_0xdca195,_0x57e680){_0xdca195=_0xdca195-0x0;var _0x1fea60=_0xed5f[_0xdca195];return _0x1fea60;};'use strict';var moment=require('moment');var Sequelize=require(_0xfed5('0x0'));module[_0xfed5('0x1')]={'phone':{'type':Sequelize[_0xfed5('0x2')],'allowNull':![]},'ContactId':{'type':Sequelize['INTEGER'],'unique':_0xfed5('0x3')},'ListId':{'type':Sequelize[_0xfed5('0x4')],'unique':_0xfed5('0x3')},'VoiceQueueId':{'type':Sequelize[_0xfed5('0x4')],'unique':'contactListQueue'}};
\ No newline at end of file
+var _0x43d7=['exports','INTEGER','contactListQueue','moment','sequelize'];(function(_0x12c1ee,_0x3952ed){var _0x5e2347=function(_0x2f12a5){while(--_0x2f12a5){_0x12c1ee['push'](_0x12c1ee['shift']());}};_0x5e2347(++_0x3952ed);}(_0x43d7,0x7b));var _0x743d=function(_0x5b7bb0,_0x207188){_0x5b7bb0=_0x5b7bb0-0x0;var _0x174ef9=_0x43d7[_0x5b7bb0];return _0x174ef9;};'use strict';var moment=require(_0x743d('0x0'));var Sequelize=require(_0x743d('0x1'));module[_0x743d('0x2')]={'phone':{'type':Sequelize['STRING'],'allowNull':![]},'ContactId':{'type':Sequelize[_0x743d('0x3')],'unique':'contactListQueue'},'ListId':{'type':Sequelize['INTEGER'],'unique':_0x743d('0x4')},'VoiceQueueId':{'type':Sequelize[_0x743d('0x3')],'unique':'contactListQueue'}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe659=['mustache','sox','to-csv','ejs','fs-extra','lodash','crypto','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','Content-Range','apply','reject','save','destroy','then','error','name','send','index','map','rawAttributes','key','model','keys','query','filters','intersection','fields','attributes','nolimit','order','sort','where','merge','type','VIRTUAL','filter','options','CmHopperBlack','includeAll','include','findAll','rows','show','params','catch','update','body','find','describe','eml-format','zip-dir','fast-json-patch','moment','bluebird'];(function(_0x483e77,_0x433e9b){var _0x359df0=function(_0x3c3d57){while(--_0x3c3d57){_0x483e77['push'](_0x483e77['shift']());}};_0x359df0(++_0x433e9b);}(_0xe659,0x159));var _0x9e65=function(_0x1ba19c,_0x3975e2){_0x1ba19c=_0x1ba19c-0x0;var _0x4e069b=_0xe659[_0x1ba19c];return _0x4e069b;};'use strict';var emlformat=require(_0x9e65('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x9e65('0x1'));var jsonpatch=require(_0x9e65('0x2'));var rp=require('request-promise');var moment=require(_0x9e65('0x3'));var BPromise=require(_0x9e65('0x4'));var Mustache=require(_0x9e65('0x5'));var util=require('util');var path=require('path');var sox=require(_0x9e65('0x6'));var csv=require(_0x9e65('0x7'));var ejs=require(_0x9e65('0x8'));var fs=require('fs');var fs_extra=require(_0x9e65('0x9'));var _=require(_0x9e65('0xa'));var squel=require('squel');var crypto=require(_0x9e65('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x9e65('0xc'));var toCsv=require(_0x9e65('0x7'));var querystring=require(_0x9e65('0xd'));var Papa=require(_0x9e65('0xe'));var Redis=require(_0x9e65('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x9e65('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x9e65('0x11'));var logger=require(_0x9e65('0x12'))(_0x9e65('0x13'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x9e65('0x14'))['db'];function respondWithStatusCode(_0x4acf4e,_0x9a46f9){_0x9a46f9=_0x9a46f9||0xcc;return function(_0x2fd0f6){if(_0x2fd0f6){return _0x4acf4e[_0x9e65('0x15')](_0x9a46f9);}return _0x4acf4e[_0x9e65('0x16')](_0x9a46f9)[_0x9e65('0x17')]();};}function respondWithResult(_0x5ae921,_0x596910){_0x596910=_0x596910||0xc8;return function(_0x3b46fd){if(_0x3b46fd){return _0x5ae921[_0x9e65('0x16')](_0x596910)[_0x9e65('0x18')](_0x3b46fd);}};}function respondWithFilteredResult(_0xb82e70,_0x5aa287){return function(_0x40db52){if(_0x40db52){var _0x21ebf6=typeof _0x5aa287[_0x9e65('0x19')]==='undefined'&&typeof _0x5aa287['limit']===_0x9e65('0x1a');var _0x3e798b=_0x40db52[_0x9e65('0x1b')];var _0x3fe39c=_0x21ebf6?0x0:_0x5aa287[_0x9e65('0x19')];var _0x27f95e=_0x21ebf6?_0x40db52[_0x9e65('0x1b')]:_0x5aa287[_0x9e65('0x19')]+_0x5aa287[_0x9e65('0x1c')];var _0x590144;if(_0x27f95e>=_0x3e798b){_0x27f95e=_0x3e798b;_0x590144=0xc8;}else{_0x590144=0xce;}_0xb82e70['status'](_0x590144);return _0xb82e70['set'](_0x9e65('0x1d'),_0x3fe39c+'-'+_0x27f95e+'/'+_0x3e798b)[_0x9e65('0x18')](_0x40db52);}return null;};}function patchUpdates(_0x378f07){return function(_0x22de62){try{jsonpatch[_0x9e65('0x1e')](_0x22de62,_0x378f07,!![]);}catch(_0x1e93b7){return BPromise[_0x9e65('0x1f')](_0x1e93b7);}return _0x22de62[_0x9e65('0x20')]();};}function saveUpdates(_0x5b6a7e,_0x1c685f){return function(_0x37e4db){if(_0x37e4db){return _0x37e4db['update'](_0x5b6a7e)['then'](function(_0x5a4c1e){return _0x5a4c1e;});}return null;};}function removeEntity(_0x3ee3a6,_0x475f22){return function(_0xf883aa){if(_0xf883aa){return _0xf883aa[_0x9e65('0x21')]()[_0x9e65('0x22')](function(){_0x3ee3a6[_0x9e65('0x16')](0xcc)[_0x9e65('0x17')]();});}};}function handleEntityNotFound(_0x5275c7,_0xb3b379){return function(_0x59329a){if(!_0x59329a){_0x5275c7['sendStatus'](0x194);}return _0x59329a;};}function handleError(_0x4174a2,_0x2fd671){_0x2fd671=_0x2fd671||0x1f4;return function(_0x4b1e4e){logger[_0x9e65('0x23')](_0x4b1e4e['stack']);if(_0x4b1e4e[_0x9e65('0x24')]){delete _0x4b1e4e[_0x9e65('0x24')];}_0x4174a2['status'](_0x2fd671)[_0x9e65('0x25')](_0x4b1e4e);};}exports[_0x9e65('0x26')]=function(_0x3c9fd3,_0x118d1c){var _0x1c8e04={},_0x231bf9={},_0x2bdc8c={'count':0x0,'rows':[]};var _0xf389bd=_[_0x9e65('0x27')](db['CmHopperBlack'][_0x9e65('0x28')],function(_0x3a6957){return{'name':_0x3a6957['fieldName'],'type':_0x3a6957['type'][_0x9e65('0x29')]};});_0x231bf9[_0x9e65('0x2a')]=_['map'](_0xf389bd,_0x9e65('0x24'));_0x231bf9['query']=_[_0x9e65('0x2b')](_0x3c9fd3[_0x9e65('0x2c')]);_0x231bf9[_0x9e65('0x2d')]=_[_0x9e65('0x2e')](_0x231bf9[_0x9e65('0x2a')],_0x231bf9[_0x9e65('0x2c')]);_0x1c8e04['attributes']=_['intersection'](_0x231bf9[_0x9e65('0x2a')],qs[_0x9e65('0x2f')](_0x3c9fd3[_0x9e65('0x2c')]['fields']));_0x1c8e04[_0x9e65('0x30')]=_0x1c8e04['attributes']['length']?_0x1c8e04[_0x9e65('0x30')]:_0x231bf9[_0x9e65('0x2a')];if(!_0x3c9fd3['query']['hasOwnProperty'](_0x9e65('0x31'))){_0x1c8e04[_0x9e65('0x1c')]=qs[_0x9e65('0x1c')](_0x3c9fd3['query']['limit']);_0x1c8e04['offset']=qs[_0x9e65('0x19')](_0x3c9fd3[_0x9e65('0x2c')][_0x9e65('0x19')]);}_0x1c8e04[_0x9e65('0x32')]=qs[_0x9e65('0x33')](_0x3c9fd3[_0x9e65('0x2c')][_0x9e65('0x33')]);_0x1c8e04[_0x9e65('0x34')]=qs[_0x9e65('0x2d')](_['pick'](_0x3c9fd3[_0x9e65('0x2c')],_0x231bf9['filters']),_0xf389bd);if(_0x3c9fd3[_0x9e65('0x2c')]['filter']){_0x1c8e04[_0x9e65('0x34')]=_[_0x9e65('0x35')](_0x1c8e04[_0x9e65('0x34')],{'$or':_[_0x9e65('0x27')](_0xf389bd,function(_0x59e83c){if(_0x59e83c[_0x9e65('0x36')]!==_0x9e65('0x37')){var _0x1e71a1={};_0x1e71a1[_0x59e83c[_0x9e65('0x24')]]={'$like':'%'+_0x3c9fd3['query'][_0x9e65('0x38')]+'%'};return _0x1e71a1;}})});}_0x1c8e04=_[_0x9e65('0x35')]({},_0x1c8e04,_0x3c9fd3[_0x9e65('0x39')]);var _0x123e58={'where':_0x1c8e04[_0x9e65('0x34')]};return db[_0x9e65('0x3a')]['count'](_0x123e58)[_0x9e65('0x22')](function(_0x30805f){_0x2bdc8c['count']=_0x30805f;if(_0x3c9fd3[_0x9e65('0x2c')][_0x9e65('0x3b')]){_0x1c8e04[_0x9e65('0x3c')]=[{'all':!![]}];}return db[_0x9e65('0x3a')][_0x9e65('0x3d')](_0x1c8e04);})['then'](function(_0x446381){_0x2bdc8c[_0x9e65('0x3e')]=_0x446381;return _0x2bdc8c;})[_0x9e65('0x22')](respondWithFilteredResult(_0x118d1c,_0x1c8e04))['catch'](handleError(_0x118d1c,null));};exports[_0x9e65('0x3f')]=function(_0x3b26b2,_0x3473ee){var _0x2c3ece={'raw':!![],'where':{'id':_0x3b26b2[_0x9e65('0x40')]['id']}},_0x198148={};_0x198148[_0x9e65('0x2a')]=_[_0x9e65('0x2b')](db['CmHopperBlack'][_0x9e65('0x28')]);_0x198148['query']=_['keys'](_0x3b26b2[_0x9e65('0x2c')]);_0x198148['filters']=_['intersection'](_0x198148[_0x9e65('0x2a')],_0x198148['query']);_0x2c3ece[_0x9e65('0x30')]=_[_0x9e65('0x2e')](_0x198148['model'],qs[_0x9e65('0x2f')](_0x3b26b2[_0x9e65('0x2c')][_0x9e65('0x2f')]));_0x2c3ece[_0x9e65('0x30')]=_0x2c3ece[_0x9e65('0x30')]['length']?_0x2c3ece['attributes']:_0x198148[_0x9e65('0x2a')];if(_0x3b26b2['query'][_0x9e65('0x3b')]){_0x2c3ece['include']=[{'all':!![]}];}_0x2c3ece=_[_0x9e65('0x35')]({},_0x2c3ece,_0x3b26b2[_0x9e65('0x39')]);return db['CmHopperBlack']['find'](_0x2c3ece)['then'](handleEntityNotFound(_0x3473ee,null))['then'](respondWithResult(_0x3473ee,null))[_0x9e65('0x41')](handleError(_0x3473ee,null));};exports[_0x9e65('0x42')]=function(_0x24f0e2,_0x4ac5d0){if(_0x24f0e2[_0x9e65('0x43')]['id']){delete _0x24f0e2[_0x9e65('0x43')]['id'];}return db['CmHopperBlack'][_0x9e65('0x44')]({'where':{'id':_0x24f0e2[_0x9e65('0x40')]['id']}})[_0x9e65('0x22')](handleEntityNotFound(_0x4ac5d0,null))[_0x9e65('0x22')](saveUpdates(_0x24f0e2['body'],null))['then'](respondWithResult(_0x4ac5d0,null))[_0x9e65('0x41')](handleError(_0x4ac5d0,null));};exports[_0x9e65('0x21')]=function(_0x10da85,_0x2731ad){return db[_0x9e65('0x3a')][_0x9e65('0x44')]({'where':{'id':_0x10da85[_0x9e65('0x40')]['id']}})[_0x9e65('0x22')](handleEntityNotFound(_0x2731ad,null))[_0x9e65('0x22')](removeEntity(_0x2731ad,null))[_0x9e65('0x41')](handleError(_0x2731ad,null));};exports[_0x9e65('0x45')]=function(_0x2e86d9,_0x4e9859){return db[_0x9e65('0x3a')][_0x9e65('0x45')]()[_0x9e65('0x22')](respondWithResult(_0x4e9859,null))[_0x9e65('0x41')](handleError(_0x4e9859,null));};
\ No newline at end of file
+var _0x47ed=['findAll','rows','catch','show','params','length','find','body','describe','eml-format','rimraf','zip-dir','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','reject','save','then','error','stack','name','send','index','CmHopperBlack','rawAttributes','model','map','keys','query','filters','intersection','attributes','fields','hasOwnProperty','sort','where','pick','filter','merge','type','VIRTUAL','options','include'];(function(_0x4804d7,_0x56ef10){var _0x532259=function(_0x5929e3){while(--_0x5929e3){_0x4804d7['push'](_0x4804d7['shift']());}};_0x532259(++_0x56ef10);}(_0x47ed,0x180));var _0xd47e=function(_0x198a68,_0x1ab1cc){_0x198a68=_0x198a68-0x0;var _0x5f0d21=_0x47ed[_0x198a68];return _0x5f0d21;};'use strict';var emlformat=require(_0xd47e('0x0'));var rimraf=require(_0xd47e('0x1'));var zipdir=require(_0xd47e('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xd47e('0x3'));var BPromise=require(_0xd47e('0x4'));var Mustache=require(_0xd47e('0x5'));var util=require(_0xd47e('0x6'));var path=require(_0xd47e('0x7'));var sox=require(_0xd47e('0x8'));var csv=require(_0xd47e('0x9'));var ejs=require(_0xd47e('0xa'));var fs=require('fs');var fs_extra=require(_0xd47e('0xb'));var _=require(_0xd47e('0xc'));var squel=require(_0xd47e('0xd'));var crypto=require(_0xd47e('0xe'));var jsforce=require('jsforce');var deskjs=require(_0xd47e('0xf'));var toCsv=require(_0xd47e('0x9'));var querystring=require(_0xd47e('0x10'));var Papa=require(_0xd47e('0x11'));var Redis=require(_0xd47e('0x12'));var authService=require(_0xd47e('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0xd47e('0x14'));var hardwareService=require(_0xd47e('0x15'));var logger=require(_0xd47e('0x16'))(_0xd47e('0x17'));var utils=require(_0xd47e('0x18'));var config=require(_0xd47e('0x19'));var licenseUtil=require(_0xd47e('0x1a'));var db=require(_0xd47e('0x1b'))['db'];function respondWithStatusCode(_0x57533a,_0x461861){_0x461861=_0x461861||0xcc;return function(_0x29c0ee){if(_0x29c0ee){return _0x57533a[_0xd47e('0x1c')](_0x461861);}return _0x57533a[_0xd47e('0x1d')](_0x461861)[_0xd47e('0x1e')]();};}function respondWithResult(_0x3dffc9,_0x131db2){_0x131db2=_0x131db2||0xc8;return function(_0x2321de){if(_0x2321de){return _0x3dffc9[_0xd47e('0x1d')](_0x131db2)[_0xd47e('0x1f')](_0x2321de);}};}function respondWithFilteredResult(_0x24631b,_0x239f7c){return function(_0x549dfb){if(_0x549dfb){var _0x12e974=typeof _0x239f7c[_0xd47e('0x20')]===_0xd47e('0x21')&&typeof _0x239f7c['limit']==='undefined';var _0x3eb5e0=_0x549dfb[_0xd47e('0x22')];var _0x5de2ff=_0x12e974?0x0:_0x239f7c[_0xd47e('0x20')];var _0x33f8fe=_0x12e974?_0x549dfb['count']:_0x239f7c[_0xd47e('0x20')]+_0x239f7c[_0xd47e('0x23')];var _0x42ec31;if(_0x33f8fe>=_0x3eb5e0){_0x33f8fe=_0x3eb5e0;_0x42ec31=0xc8;}else{_0x42ec31=0xce;}_0x24631b['status'](_0x42ec31);return _0x24631b[_0xd47e('0x24')](_0xd47e('0x25'),_0x5de2ff+'-'+_0x33f8fe+'/'+_0x3eb5e0)[_0xd47e('0x1f')](_0x549dfb);}return null;};}function patchUpdates(_0x2aba63){return function(_0x4ab02c){try{jsonpatch['apply'](_0x4ab02c,_0x2aba63,!![]);}catch(_0x28489a){return BPromise[_0xd47e('0x26')](_0x28489a);}return _0x4ab02c[_0xd47e('0x27')]();};}function saveUpdates(_0x1231bb,_0x496311){return function(_0x3f5f51){if(_0x3f5f51){return _0x3f5f51['update'](_0x1231bb)[_0xd47e('0x28')](function(_0x286b06){return _0x286b06;});}return null;};}function removeEntity(_0x50add6,_0x520931){return function(_0xc33a0e){if(_0xc33a0e){return _0xc33a0e['destroy']()['then'](function(){_0x50add6[_0xd47e('0x1d')](0xcc)[_0xd47e('0x1e')]();});}};}function handleEntityNotFound(_0x2afe00,_0x3b1a30){return function(_0x23e4c8){if(!_0x23e4c8){_0x2afe00[_0xd47e('0x1c')](0x194);}return _0x23e4c8;};}function handleError(_0x220287,_0x2815fe){_0x2815fe=_0x2815fe||0x1f4;return function(_0x1f39cb){logger[_0xd47e('0x29')](_0x1f39cb[_0xd47e('0x2a')]);if(_0x1f39cb[_0xd47e('0x2b')]){delete _0x1f39cb[_0xd47e('0x2b')];}_0x220287['status'](_0x2815fe)[_0xd47e('0x2c')](_0x1f39cb);};}exports[_0xd47e('0x2d')]=function(_0x1cf12a,_0x2249f4){var _0x2b231c={},_0x38fd50={},_0x380e36={'count':0x0,'rows':[]};var _0x4fadc8=_['map'](db[_0xd47e('0x2e')][_0xd47e('0x2f')],function(_0x296c8a){return{'name':_0x296c8a['fieldName'],'type':_0x296c8a['type']['key']};});_0x38fd50[_0xd47e('0x30')]=_[_0xd47e('0x31')](_0x4fadc8,_0xd47e('0x2b'));_0x38fd50['query']=_[_0xd47e('0x32')](_0x1cf12a[_0xd47e('0x33')]);_0x38fd50[_0xd47e('0x34')]=_[_0xd47e('0x35')](_0x38fd50[_0xd47e('0x30')],_0x38fd50[_0xd47e('0x33')]);_0x2b231c[_0xd47e('0x36')]=_[_0xd47e('0x35')](_0x38fd50[_0xd47e('0x30')],qs[_0xd47e('0x37')](_0x1cf12a[_0xd47e('0x33')][_0xd47e('0x37')]));_0x2b231c['attributes']=_0x2b231c[_0xd47e('0x36')]['length']?_0x2b231c[_0xd47e('0x36')]:_0x38fd50[_0xd47e('0x30')];if(!_0x1cf12a[_0xd47e('0x33')][_0xd47e('0x38')]('nolimit')){_0x2b231c[_0xd47e('0x23')]=qs[_0xd47e('0x23')](_0x1cf12a[_0xd47e('0x33')][_0xd47e('0x23')]);_0x2b231c[_0xd47e('0x20')]=qs[_0xd47e('0x20')](_0x1cf12a[_0xd47e('0x33')][_0xd47e('0x20')]);}_0x2b231c['order']=qs[_0xd47e('0x39')](_0x1cf12a['query'][_0xd47e('0x39')]);_0x2b231c[_0xd47e('0x3a')]=qs[_0xd47e('0x34')](_[_0xd47e('0x3b')](_0x1cf12a[_0xd47e('0x33')],_0x38fd50[_0xd47e('0x34')]),_0x4fadc8);if(_0x1cf12a[_0xd47e('0x33')][_0xd47e('0x3c')]){_0x2b231c[_0xd47e('0x3a')]=_[_0xd47e('0x3d')](_0x2b231c[_0xd47e('0x3a')],{'$or':_[_0xd47e('0x31')](_0x4fadc8,function(_0x39b389){if(_0x39b389[_0xd47e('0x3e')]!==_0xd47e('0x3f')){var _0x355ca3={};_0x355ca3[_0x39b389[_0xd47e('0x2b')]]={'$like':'%'+_0x1cf12a[_0xd47e('0x33')][_0xd47e('0x3c')]+'%'};return _0x355ca3;}})});}_0x2b231c=_[_0xd47e('0x3d')]({},_0x2b231c,_0x1cf12a[_0xd47e('0x40')]);var _0x3512c4={'where':_0x2b231c['where']};return db[_0xd47e('0x2e')]['count'](_0x3512c4)['then'](function(_0x2154c2){_0x380e36[_0xd47e('0x22')]=_0x2154c2;if(_0x1cf12a['query']['includeAll']){_0x2b231c[_0xd47e('0x41')]=[{'all':!![]}];}return db[_0xd47e('0x2e')][_0xd47e('0x42')](_0x2b231c);})['then'](function(_0x15d3c7){_0x380e36[_0xd47e('0x43')]=_0x15d3c7;return _0x380e36;})[_0xd47e('0x28')](respondWithFilteredResult(_0x2249f4,_0x2b231c))[_0xd47e('0x44')](handleError(_0x2249f4,null));};exports[_0xd47e('0x45')]=function(_0x1a13a3,_0x3dcff1){var _0x223734={'raw':!![],'where':{'id':_0x1a13a3[_0xd47e('0x46')]['id']}},_0x2c10d8={};_0x2c10d8[_0xd47e('0x30')]=_[_0xd47e('0x32')](db[_0xd47e('0x2e')][_0xd47e('0x2f')]);_0x2c10d8[_0xd47e('0x33')]=_[_0xd47e('0x32')](_0x1a13a3[_0xd47e('0x33')]);_0x2c10d8['filters']=_[_0xd47e('0x35')](_0x2c10d8['model'],_0x2c10d8['query']);_0x223734['attributes']=_['intersection'](_0x2c10d8[_0xd47e('0x30')],qs[_0xd47e('0x37')](_0x1a13a3['query'][_0xd47e('0x37')]));_0x223734['attributes']=_0x223734[_0xd47e('0x36')][_0xd47e('0x47')]?_0x223734[_0xd47e('0x36')]:_0x2c10d8[_0xd47e('0x30')];if(_0x1a13a3[_0xd47e('0x33')]['includeAll']){_0x223734[_0xd47e('0x41')]=[{'all':!![]}];}_0x223734=_['merge']({},_0x223734,_0x1a13a3[_0xd47e('0x40')]);return db[_0xd47e('0x2e')][_0xd47e('0x48')](_0x223734)[_0xd47e('0x28')](handleEntityNotFound(_0x3dcff1,null))[_0xd47e('0x28')](respondWithResult(_0x3dcff1,null))[_0xd47e('0x44')](handleError(_0x3dcff1,null));};exports['update']=function(_0x3d7b9d,_0x54ef49){if(_0x3d7b9d[_0xd47e('0x49')]['id']){delete _0x3d7b9d['body']['id'];}return db['CmHopperBlack'][_0xd47e('0x48')]({'where':{'id':_0x3d7b9d[_0xd47e('0x46')]['id']}})[_0xd47e('0x28')](handleEntityNotFound(_0x54ef49,null))['then'](saveUpdates(_0x3d7b9d[_0xd47e('0x49')],null))['then'](respondWithResult(_0x54ef49,null))[_0xd47e('0x44')](handleError(_0x54ef49,null));};exports['destroy']=function(_0x823d07,_0x2d6e67){return db[_0xd47e('0x2e')][_0xd47e('0x48')]({'where':{'id':_0x823d07[_0xd47e('0x46')]['id']}})[_0xd47e('0x28')](handleEntityNotFound(_0x2d6e67,null))['then'](removeEntity(_0x2d6e67,null))[_0xd47e('0x44')](handleError(_0x2d6e67,null));};exports['describe']=function(_0x3940fa,_0x4e822e){return db[_0xd47e('0x2e')][_0xd47e('0x4a')]()['then'](respondWithResult(_0x4e822e,null))[_0xd47e('0x44')](handleError(_0x4e822e,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x34f1=['util','api','moment','bluebird','path','rimraf','../../config/environment','./cmHopperBlack.attributes','exports','define','CmHopperBlack','lodash'];(function(_0x37bfca,_0x145eb4){var _0xf626fa=function(_0xa0c0f1){while(--_0xa0c0f1){_0x37bfca['push'](_0x37bfca['shift']());}};_0xf626fa(++_0x145eb4);}(_0x34f1,0x8f));var _0x134f=function(_0x35009a,_0x282550){_0x35009a=_0x35009a-0x0;var _0x4b52c9=_0x34f1[_0x35009a];return _0x4b52c9;};'use strict';var _=require(_0x134f('0x0'));var util=require(_0x134f('0x1'));var logger=require('../../config/logger')(_0x134f('0x2'));var moment=require(_0x134f('0x3'));var BPromise=require(_0x134f('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x134f('0x5'));var rimraf=require(_0x134f('0x6'));var config=require(_0x134f('0x7'));var attributes=require(_0x134f('0x8'));module[_0x134f('0x9')]=function(_0xbb0aae,_0x4b9c74){return _0xbb0aae[_0x134f('0xa')](_0x134f('0xb'),attributes,{'tableName':'cm_hopper_black','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x24e4=['../../config/environment','./cmHopperBlack.attributes','exports','define','cm_hopper_black','lodash','util','api','moment','bluebird','request-promise','path'];(function(_0x1d3fe8,_0x5d2ad8){var _0x3c568a=function(_0x41a20e){while(--_0x41a20e){_0x1d3fe8['push'](_0x1d3fe8['shift']());}};_0x3c568a(++_0x5d2ad8);}(_0x24e4,0x13d));var _0x424e=function(_0x5c4e16,_0x113035){_0x5c4e16=_0x5c4e16-0x0;var _0x36044a=_0x24e4[_0x5c4e16];return _0x36044a;};'use strict';var _=require(_0x424e('0x0'));var util=require(_0x424e('0x1'));var logger=require('../../config/logger')(_0x424e('0x2'));var moment=require(_0x424e('0x3'));var BPromise=require(_0x424e('0x4'));var rp=require(_0x424e('0x5'));var fs=require('fs');var path=require(_0x424e('0x6'));var rimraf=require('rimraf');var config=require(_0x424e('0x7'));var attributes=require(_0x424e('0x8'));module[_0x424e('0x9')]=function(_0x2cc812,_0x134698){return _0x2cc812[_0x424e('0xa')]('CmHopperBlack',attributes,{'tableName':_0x424e('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc8f1=['util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','request','then','CmHopperBlack,\x20%s,\x20%s','request\x20sent','debug','stringify','code','error','message','info','result','catch','GetCmHopperBlack','CmHopperBlack','options','attributes','limit','include','model','map','UpdateCmHopperBlack','update','body','where','DestroyCmHopperBlack','destroy','lodash'];(function(_0x383822,_0x31a4f9){var _0x4e064e=function(_0x481aed){while(--_0x481aed){_0x383822['push'](_0x383822['shift']());}};_0x4e064e(++_0x31a4f9);}(_0xc8f1,0x185));var _0x1c8f=function(_0x28273a,_0x2b752c){_0x28273a=_0x28273a-0x0;var _0x4cba85=_0xc8f1[_0x28273a];return _0x4cba85;};'use strict';var _=require(_0x1c8f('0x0'));var util=require(_0x1c8f('0x1'));var moment=require(_0x1c8f('0x2'));var BPromise=require(_0x1c8f('0x3'));var rs=require(_0x1c8f('0x4'));var fs=require('fs');var Redis=require(_0x1c8f('0x5'));var db=require(_0x1c8f('0x6'))['db'];var utils=require(_0x1c8f('0x7'));var logger=require(_0x1c8f('0x8'))(_0x1c8f('0x9'));var config=require(_0x1c8f('0xa'));var jayson=require('jayson/promise');var client=jayson[_0x1c8f('0xb')][_0x1c8f('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x4e8926,_0x37de03,_0xd97a24){return new BPromise(function(_0x5e5d91,_0x50a52e){return client[_0x1c8f('0xd')](_0x4e8926,_0xd97a24)[_0x1c8f('0xe')](function(_0x4396eb){logger['info'](_0x1c8f('0xf'),_0x37de03,_0x1c8f('0x10'));logger[_0x1c8f('0x11')]('CmHopperBlack,\x20%s,\x20%s,\x20%s',_0x37de03,'request\x20sent',JSON[_0x1c8f('0x12')](_0x4396eb));if(_0x4396eb['error']){if(_0x4396eb['error'][_0x1c8f('0x13')]===0x1f4){logger[_0x1c8f('0x14')]('CmHopperBlack,\x20%s,\x20%s',_0x37de03,_0x4396eb[_0x1c8f('0x14')][_0x1c8f('0x15')]);return _0x50a52e(_0x4396eb[_0x1c8f('0x14')][_0x1c8f('0x15')]);}logger[_0x1c8f('0x14')]('CmHopperBlack,\x20%s,\x20%s',_0x37de03,_0x4396eb[_0x1c8f('0x14')][_0x1c8f('0x15')]);return _0x5e5d91(_0x4396eb[_0x1c8f('0x14')]['message']);}else{logger[_0x1c8f('0x16')](_0x1c8f('0xf'),_0x37de03,'request\x20sent');_0x5e5d91(_0x4396eb[_0x1c8f('0x17')][_0x1c8f('0x15')]);}})[_0x1c8f('0x18')](function(_0x40c418){logger[_0x1c8f('0x14')](_0x1c8f('0xf'),_0x37de03,_0x40c418);_0x50a52e(_0x40c418);});});}exports[_0x1c8f('0x19')]=function(_0x4edbb3){var _0x344b6d=this;return new Promise(function(_0x4cd127,_0x3d1924){return db[_0x1c8f('0x1a')]['findAll']({'raw':_0x4edbb3[_0x1c8f('0x1b')]?_0x4edbb3[_0x1c8f('0x1b')]['raw']===undefined?!![]:![]:!![],'where':_0x4edbb3[_0x1c8f('0x1b')]?_0x4edbb3[_0x1c8f('0x1b')]['where']||null:null,'attributes':_0x4edbb3['options']?_0x4edbb3[_0x1c8f('0x1b')][_0x1c8f('0x1c')]||null:null,'limit':_0x4edbb3[_0x1c8f('0x1b')]?_0x4edbb3[_0x1c8f('0x1b')][_0x1c8f('0x1d')]||null:null,'include':_0x4edbb3[_0x1c8f('0x1b')]?_0x4edbb3[_0x1c8f('0x1b')][_0x1c8f('0x1e')]?_['map'](_0x4edbb3[_0x1c8f('0x1b')][_0x1c8f('0x1e')],function(_0x44536e){return{'model':db[_0x44536e[_0x1c8f('0x1f')]],'as':_0x44536e['as'],'attributes':_0x44536e[_0x1c8f('0x1c')],'include':_0x44536e[_0x1c8f('0x1e')]?_[_0x1c8f('0x20')](_0x44536e[_0x1c8f('0x1e')],function(_0x480d76){return{'model':db[_0x480d76[_0x1c8f('0x1f')]],'as':_0x480d76['as'],'attributes':_0x480d76['attributes'],'include':_0x480d76[_0x1c8f('0x1e')]?_[_0x1c8f('0x20')](_0x480d76[_0x1c8f('0x1e')],function(_0x566d21){return{'model':db[_0x566d21[_0x1c8f('0x1f')]],'as':_0x566d21['as'],'attributes':_0x566d21[_0x1c8f('0x1c')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x3778fb){logger['info'](_0x1c8f('0x19'),_0x4edbb3);logger[_0x1c8f('0x11')](_0x1c8f('0x19'),_0x4edbb3,JSON[_0x1c8f('0x12')](_0x3778fb));_0x4cd127(_0x3778fb);})['catch'](function(_0x3066e7){logger['error'](_0x1c8f('0x19'),_0x3066e7[_0x1c8f('0x15')],_0x4edbb3);_0x3d1924(_0x344b6d[_0x1c8f('0x14')](0x1f4,_0x3066e7[_0x1c8f('0x15')]));});});};exports[_0x1c8f('0x21')]=function(_0x6b088f){var _0x47b9da=this;return new Promise(function(_0x330a8d,_0x2a73a3){return db[_0x1c8f('0x1a')][_0x1c8f('0x22')](_0x6b088f[_0x1c8f('0x23')],{'raw':_0x6b088f[_0x1c8f('0x1b')]?_0x6b088f[_0x1c8f('0x1b')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x6b088f[_0x1c8f('0x1b')]?_0x6b088f['options'][_0x1c8f('0x24')]||null:null,'attributes':_0x6b088f['options']?_0x6b088f['options']['attributes']||null:null,'limit':_0x6b088f['options']?_0x6b088f[_0x1c8f('0x1b')][_0x1c8f('0x1d')]||null:null})[_0x1c8f('0xe')](function(_0x326a46){logger['info']('UpdateCmHopperBlack',_0x6b088f);logger['debug'](_0x1c8f('0x21'),_0x6b088f,JSON[_0x1c8f('0x12')](_0x326a46));_0x330a8d(_0x326a46);})['catch'](function(_0x244a67){logger[_0x1c8f('0x14')]('UpdateCmHopperBlack',_0x244a67[_0x1c8f('0x15')],_0x6b088f);_0x2a73a3(_0x47b9da[_0x1c8f('0x14')](0x1f4,_0x244a67[_0x1c8f('0x15')]));});});};exports[_0x1c8f('0x25')]=function(_0x21468e){var _0x12607a=this;return new Promise(function(_0x4440ed,_0xf6d8a0){return db['CmHopperBlack'][_0x1c8f('0x26')]({'where':_0x21468e[_0x1c8f('0x1b')]?_0x21468e[_0x1c8f('0x1b')]['where']||null:null})['then'](function(_0x55b23c){logger[_0x1c8f('0x16')](_0x1c8f('0x25'),_0x21468e);logger[_0x1c8f('0x11')](_0x1c8f('0x25'),_0x21468e,JSON[_0x1c8f('0x12')](_0x55b23c));_0x4440ed(_0x55b23c);})[_0x1c8f('0x18')](function(_0x5676ba){logger[_0x1c8f('0x14')]('DestroyCmHopperBlack',_0x5676ba['message'],_0x21468e);_0xf6d8a0(_0x12607a[_0x1c8f('0x14')](0x1f4,_0x5676ba[_0x1c8f('0x15')]));});});};
\ No newline at end of file
+var _0x7a4e=['../../config/utils','../../config/logger','rpc','jayson/promise','client','http','then','info','CmHopperBlack,\x20%s,\x20%s','debug','CmHopperBlack,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','catch','GetCmHopperBlack','CmHopperBlack','findAll','options','raw','where','attributes','limit','include','map','model','stringify','UpdateCmHopperBlack','update','body','DestroyCmHopperBlack','destroy','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x7a4e,0xc1));var _0xe7a4=function(_0x1f618f,_0x13e460){_0x1f618f=_0x1f618f-0x0;var _0x520d48=_0x7a4e[_0x1f618f];return _0x520d48;};'use strict';var _=require(_0xe7a4('0x0'));var util=require(_0xe7a4('0x1'));var moment=require(_0xe7a4('0x2'));var BPromise=require(_0xe7a4('0x3'));var rs=require(_0xe7a4('0x4'));var fs=require('fs');var Redis=require(_0xe7a4('0x5'));var db=require(_0xe7a4('0x6'))['db'];var utils=require(_0xe7a4('0x7'));var logger=require(_0xe7a4('0x8'))(_0xe7a4('0x9'));var config=require('../../config/environment');var jayson=require(_0xe7a4('0xa'));var client=jayson[_0xe7a4('0xb')][_0xe7a4('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x336b1d,_0x5bad4e,_0x5a6377){return new BPromise(function(_0x3237a6,_0x2b66f2){return client['request'](_0x336b1d,_0x5a6377)[_0xe7a4('0xd')](function(_0x184df5){logger[_0xe7a4('0xe')](_0xe7a4('0xf'),_0x5bad4e,'request\x20sent');logger[_0xe7a4('0x10')](_0xe7a4('0x11'),_0x5bad4e,_0xe7a4('0x12'),JSON['stringify'](_0x184df5));if(_0x184df5[_0xe7a4('0x13')]){if(_0x184df5[_0xe7a4('0x13')][_0xe7a4('0x14')]===0x1f4){logger['error'](_0xe7a4('0xf'),_0x5bad4e,_0x184df5[_0xe7a4('0x13')][_0xe7a4('0x15')]);return _0x2b66f2(_0x184df5[_0xe7a4('0x13')][_0xe7a4('0x15')]);}logger[_0xe7a4('0x13')](_0xe7a4('0xf'),_0x5bad4e,_0x184df5['error'][_0xe7a4('0x15')]);return _0x3237a6(_0x184df5[_0xe7a4('0x13')][_0xe7a4('0x15')]);}else{logger[_0xe7a4('0xe')](_0xe7a4('0xf'),_0x5bad4e,_0xe7a4('0x12'));_0x3237a6(_0x184df5['result'][_0xe7a4('0x15')]);}})[_0xe7a4('0x16')](function(_0x5382ec){logger['error'](_0xe7a4('0xf'),_0x5bad4e,_0x5382ec);_0x2b66f2(_0x5382ec);});});}exports[_0xe7a4('0x17')]=function(_0x24c800){var _0x20b0d5=this;return new Promise(function(_0x12d18c,_0x3b6c62){return db[_0xe7a4('0x18')][_0xe7a4('0x19')]({'raw':_0x24c800[_0xe7a4('0x1a')]?_0x24c800[_0xe7a4('0x1a')][_0xe7a4('0x1b')]===undefined?!![]:![]:!![],'where':_0x24c800[_0xe7a4('0x1a')]?_0x24c800[_0xe7a4('0x1a')][_0xe7a4('0x1c')]||null:null,'attributes':_0x24c800['options']?_0x24c800['options'][_0xe7a4('0x1d')]||null:null,'limit':_0x24c800[_0xe7a4('0x1a')]?_0x24c800['options'][_0xe7a4('0x1e')]||null:null,'include':_0x24c800['options']?_0x24c800[_0xe7a4('0x1a')][_0xe7a4('0x1f')]?_[_0xe7a4('0x20')](_0x24c800[_0xe7a4('0x1a')][_0xe7a4('0x1f')],function(_0x3a5852){return{'model':db[_0x3a5852[_0xe7a4('0x21')]],'as':_0x3a5852['as'],'attributes':_0x3a5852[_0xe7a4('0x1d')],'include':_0x3a5852[_0xe7a4('0x1f')]?_[_0xe7a4('0x20')](_0x3a5852['include'],function(_0x1284b7){return{'model':db[_0x1284b7[_0xe7a4('0x21')]],'as':_0x1284b7['as'],'attributes':_0x1284b7[_0xe7a4('0x1d')],'include':_0x1284b7[_0xe7a4('0x1f')]?_[_0xe7a4('0x20')](_0x1284b7[_0xe7a4('0x1f')],function(_0x41b829){return{'model':db[_0x41b829[_0xe7a4('0x21')]],'as':_0x41b829['as'],'attributes':_0x41b829[_0xe7a4('0x1d')]};}):[]};}):[]};}):[]:[]})[_0xe7a4('0xd')](function(_0x37a8fb){logger[_0xe7a4('0xe')](_0xe7a4('0x17'),_0x24c800);logger[_0xe7a4('0x10')](_0xe7a4('0x17'),_0x24c800,JSON[_0xe7a4('0x22')](_0x37a8fb));_0x12d18c(_0x37a8fb);})[_0xe7a4('0x16')](function(_0x293465){logger[_0xe7a4('0x13')]('GetCmHopperBlack',_0x293465[_0xe7a4('0x15')],_0x24c800);_0x3b6c62(_0x20b0d5[_0xe7a4('0x13')](0x1f4,_0x293465[_0xe7a4('0x15')]));});});};exports[_0xe7a4('0x23')]=function(_0x31d4e8){var _0x2c808a=this;return new Promise(function(_0x2d18d9,_0x6b482f){return db['CmHopperBlack'][_0xe7a4('0x24')](_0x31d4e8[_0xe7a4('0x25')],{'raw':_0x31d4e8['options']?_0x31d4e8['options'][_0xe7a4('0x1b')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x31d4e8['options']?_0x31d4e8[_0xe7a4('0x1a')]['where']||null:null,'attributes':_0x31d4e8[_0xe7a4('0x1a')]?_0x31d4e8['options'][_0xe7a4('0x1d')]||null:null,'limit':_0x31d4e8[_0xe7a4('0x1a')]?_0x31d4e8['options'][_0xe7a4('0x1e')]||null:null})[_0xe7a4('0xd')](function(_0x514229){logger['info'](_0xe7a4('0x23'),_0x31d4e8);logger[_0xe7a4('0x10')](_0xe7a4('0x23'),_0x31d4e8,JSON[_0xe7a4('0x22')](_0x514229));_0x2d18d9(_0x514229);})['catch'](function(_0x15d62e){logger[_0xe7a4('0x13')](_0xe7a4('0x23'),_0x15d62e['message'],_0x31d4e8);_0x6b482f(_0x2c808a[_0xe7a4('0x13')](0x1f4,_0x15d62e['message']));});});};exports[_0xe7a4('0x26')]=function(_0x1a0890){var _0x581c2c=this;return new Promise(function(_0x16fe53,_0x4d13bf){return db[_0xe7a4('0x18')][_0xe7a4('0x27')]({'where':_0x1a0890[_0xe7a4('0x1a')]?_0x1a0890[_0xe7a4('0x1a')][_0xe7a4('0x1c')]||null:null})[_0xe7a4('0xd')](function(_0x41624b){logger[_0xe7a4('0xe')](_0xe7a4('0x26'),_0x1a0890);logger[_0xe7a4('0x10')](_0xe7a4('0x26'),_0x1a0890,JSON['stringify'](_0x41624b));_0x16fe53(_0x41624b);})[_0xe7a4('0x16')](function(_0x22c2df){logger[_0xe7a4('0x13')]('DestroyCmHopperBlack',_0x22c2df[_0xe7a4('0x15')],_0x1a0890);_0x4d13bf(_0x581c2c[_0xe7a4('0x13')](0x1f4,_0x22c2df[_0xe7a4('0x15')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x814b=['path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./cmHopperBlack.controller','get','isAuthenticated','/describe','describe','/:id','show','put','update','delete','destroy','multer','util'];(function(_0x3dcef9,_0x46849f){var _0x5ed686=function(_0x49a04b){while(--_0x49a04b){_0x3dcef9['push'](_0x3dcef9['shift']());}};_0x5ed686(++_0x46849f);}(_0x814b,0x1a2));var _0xb814=function(_0x14090e,_0x30c2f7){_0x14090e=_0x14090e-0x0;var _0x554da7=_0x814b[_0x14090e];return _0x554da7;};'use strict';var multer=require(_0xb814('0x0'));var util=require(_0xb814('0x1'));var path=require(_0xb814('0x2'));var timeout=require(_0xb814('0x3'));var express=require(_0xb814('0x4'));var router=express[_0xb814('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0xb814('0x6'));var interaction=require(_0xb814('0x7'));var config=require(_0xb814('0x8'));var controller=require(_0xb814('0x9'));router[_0xb814('0xa')]('/',auth[_0xb814('0xb')](),controller['index']);router[_0xb814('0xa')](_0xb814('0xc'),auth['isAuthenticated'](),controller[_0xb814('0xd')]);router[_0xb814('0xa')](_0xb814('0xe'),auth[_0xb814('0xb')](),controller[_0xb814('0xf')]);router[_0xb814('0x10')](_0xb814('0xe'),auth[_0xb814('0xb')](),controller[_0xb814('0x11')]);router[_0xb814('0x12')](_0xb814('0xe'),auth['isAuthenticated'](),controller[_0xb814('0x13')]);module['exports']=router;
\ No newline at end of file
+var _0xef17=['show','put','/:id','update','delete','destroy','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./cmHopperBlack.controller','isAuthenticated','get','describe'];(function(_0x12b120,_0x129348){var _0x36ce8d=function(_0x566fa1){while(--_0x566fa1){_0x12b120['push'](_0x12b120['shift']());}};_0x36ce8d(++_0x129348);}(_0xef17,0x136));var _0x7ef1=function(_0x4f4859,_0x379c33){_0x4f4859=_0x4f4859-0x0;var _0x528047=_0xef17[_0x4f4859];return _0x528047;};'use strict';var multer=require(_0x7ef1('0x0'));var util=require(_0x7ef1('0x1'));var path=require(_0x7ef1('0x2'));var timeout=require(_0x7ef1('0x3'));var express=require(_0x7ef1('0x4'));var router=express[_0x7ef1('0x5')]();var fs_extra=require(_0x7ef1('0x6'));var auth=require(_0x7ef1('0x7'));var interaction=require(_0x7ef1('0x8'));var config=require('../../config/environment');var controller=require(_0x7ef1('0x9'));router['get']('/',auth[_0x7ef1('0xa')](),controller['index']);router[_0x7ef1('0xb')]('/describe',auth['isAuthenticated'](),controller[_0x7ef1('0xc')]);router[_0x7ef1('0xb')]('/:id',auth[_0x7ef1('0xa')](),controller[_0x7ef1('0xd')]);router[_0x7ef1('0xe')](_0x7ef1('0xf'),auth[_0x7ef1('0xa')](),controller[_0x7ef1('0x10')]);router[_0x7ef1('0x11')]('/:id',auth['isAuthenticated'](),controller[_0x7ef1('0x12')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9683=['INTEGER','DATE','STRING','getDataValue','endtime','setDataValue','followuptime','seconds','dispositionat','BOOLEAN','sequelize','moment','exports'];(function(_0x366318,_0x167dad){var _0x4d8a30=function(_0x399ddc){while(--_0x399ddc){_0x366318['push'](_0x366318['shift']());}};_0x4d8a30(++_0x167dad);}(_0x9683,0x11b));var _0x3968=function(_0x439edc,_0xb67c5f){_0x439edc=_0x439edc-0x0;var _0x1916d9=_0x9683[_0x439edc];return _0x1916d9;};'use strict';var Sequelize=require(_0x3968('0x0'));var moment=require(_0x3968('0x1'));module[_0x3968('0x2')]={'state':{'type':Sequelize[_0x3968('0x3')](0x2)},'statedesc':{'type':Sequelize['STRING']},'scheduledat':{'type':Sequelize[_0x3968('0x4')]},'countbusyretry':{'type':Sequelize[_0x3968('0x3')],'defaultValue':0x0},'countcongestionretry':{'type':Sequelize[_0x3968('0x3')],'defaultValue':0x0},'countnoanswerretry':{'type':Sequelize[_0x3968('0x3')],'defaultValue':0x0},'countglobal':{'type':Sequelize[_0x3968('0x3')],'defaultValue':0x0},'uniqueid':{'type':Sequelize[_0x3968('0x5')]},'originatecalleridnum':{'type':Sequelize[_0x3968('0x5')]},'originatecalleridname':{'type':Sequelize[_0x3968('0x5')]},'calleridnum':{'type':Sequelize[_0x3968('0x5')]},'calleridname':{'type':Sequelize[_0x3968('0x5')]},'starttime':{'type':Sequelize[_0x3968('0x4')]},'responsetime':{'type':Sequelize[_0x3968('0x4')]},'answertime':{'type':Sequelize['DATE']},'droptime':{'type':Sequelize[_0x3968('0x4')]},'endtime':{'type':Sequelize[_0x3968('0x4')]},'ringtime':{'type':Sequelize[_0x3968('0x3')],'defaultValue':0x0},'holdtime':{'type':Sequelize[_0x3968('0x3')],'defaultValue':0x0},'talktime':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'followuptime':{'type':Sequelize[_0x3968('0x3')],'defaultValue':0x0},'dropreason':{'type':Sequelize[_0x3968('0x5')]},'campaign':{'type':Sequelize['STRING']},'campaigntype':{'type':Sequelize['STRING']},'membername':{'type':Sequelize['STRING']},'reason':{'type':Sequelize[_0x3968('0x5')]},'disposition':{'type':Sequelize['STRING']},'secondDisposition':{'type':Sequelize[_0x3968('0x5')]},'thirdDisposition':{'type':Sequelize[_0x3968('0x5')]},'dispositionat':{'type':Sequelize[_0x3968('0x4')],'set':function(_0x2d1ffa){var _0x34c261=this[_0x3968('0x6')](_0x3968('0x7'));if(_0x34c261&&_0x2d1ffa){this[_0x3968('0x8')](_0x3968('0x9'),moment(_0x2d1ffa)['diff'](moment(_0x34c261),_0x3968('0xa')));}return this[_0x3968('0x8')](_0x3968('0xb'),_0x2d1ffa);}},'amd':{'type':Sequelize[_0x3968('0xc')],'defaultValue':![]},'fax':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'blacklist':{'type':Sequelize[_0x3968('0xc')],'defaultValue':![]},'rescheduled':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'rescheduledat':{'type':Sequelize[_0x3968('0x4')]},'callback':{'type':Sequelize[_0x3968('0xc')],'defaultValue':![]},'callbackuniqueid':{'type':Sequelize[_0x3968('0x5')],'defaultValue':null},'callbackat':{'type':Sequelize['DATE']},'deleted':{'type':Sequelize['STRING'],'defaultValue':null},'deletedat':{'type':Sequelize[_0x3968('0x4')]},'recallme':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'agiafterat':{'type':Sequelize[_0x3968('0x4')]},'countnosuchnumberretry':{'type':Sequelize[_0x3968('0x3')],'defaultValue':0x0},'countdropretry':{'type':Sequelize[_0x3968('0x3')],'defaultValue':0x0},'countabandonedretry':{'type':Sequelize[_0x3968('0x3')],'defaultValue':0x0},'countmachineretry':{'type':Sequelize[_0x3968('0x3')],'defaultValue':0x0},'countagentrejectretry':{'type':Sequelize[_0x3968('0x3')],'defaultValue':0x0}};
\ No newline at end of file
+var _0x163c=['getDataValue','diff','seconds','dispositionat','BOOLEAN','sequelize','moment','exports','INTEGER','STRING','DATE'];(function(_0x5678b5,_0x1c4aa8){var _0x4c09a5=function(_0x2aa89a){while(--_0x2aa89a){_0x5678b5['push'](_0x5678b5['shift']());}};_0x4c09a5(++_0x1c4aa8);}(_0x163c,0xe1));var _0xc163=function(_0x7ba2d0,_0x13dc01){_0x7ba2d0=_0x7ba2d0-0x0;var _0xe3c774=_0x163c[_0x7ba2d0];return _0xe3c774;};'use strict';var Sequelize=require(_0xc163('0x0'));var moment=require(_0xc163('0x1'));module[_0xc163('0x2')]={'state':{'type':Sequelize[_0xc163('0x3')](0x2)},'statedesc':{'type':Sequelize[_0xc163('0x4')]},'scheduledat':{'type':Sequelize[_0xc163('0x5')]},'countbusyretry':{'type':Sequelize[_0xc163('0x3')],'defaultValue':0x0},'countcongestionretry':{'type':Sequelize[_0xc163('0x3')],'defaultValue':0x0},'countnoanswerretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countglobal':{'type':Sequelize[_0xc163('0x3')],'defaultValue':0x0},'uniqueid':{'type':Sequelize[_0xc163('0x4')]},'originatecalleridnum':{'type':Sequelize[_0xc163('0x4')]},'originatecalleridname':{'type':Sequelize[_0xc163('0x4')]},'calleridnum':{'type':Sequelize[_0xc163('0x4')]},'calleridname':{'type':Sequelize[_0xc163('0x4')]},'starttime':{'type':Sequelize[_0xc163('0x5')]},'responsetime':{'type':Sequelize[_0xc163('0x5')]},'answertime':{'type':Sequelize[_0xc163('0x5')]},'droptime':{'type':Sequelize[_0xc163('0x5')]},'endtime':{'type':Sequelize[_0xc163('0x5')]},'ringtime':{'type':Sequelize[_0xc163('0x3')],'defaultValue':0x0},'holdtime':{'type':Sequelize[_0xc163('0x3')],'defaultValue':0x0},'talktime':{'type':Sequelize[_0xc163('0x3')],'defaultValue':0x0},'followuptime':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'dropreason':{'type':Sequelize['STRING']},'campaign':{'type':Sequelize[_0xc163('0x4')]},'campaigntype':{'type':Sequelize[_0xc163('0x4')]},'membername':{'type':Sequelize['STRING']},'reason':{'type':Sequelize['STRING']},'disposition':{'type':Sequelize[_0xc163('0x4')]},'secondDisposition':{'type':Sequelize['STRING']},'thirdDisposition':{'type':Sequelize[_0xc163('0x4')]},'dispositionat':{'type':Sequelize[_0xc163('0x5')],'set':function(_0x20faba){var _0x2fd87a=this[_0xc163('0x6')]('endtime');if(_0x2fd87a&&_0x20faba){this['setDataValue']('followuptime',moment(_0x20faba)[_0xc163('0x7')](moment(_0x2fd87a),_0xc163('0x8')));}return this['setDataValue'](_0xc163('0x9'),_0x20faba);}},'amd':{'type':Sequelize[_0xc163('0xa')],'defaultValue':![]},'fax':{'type':Sequelize[_0xc163('0xa')],'defaultValue':![]},'blacklist':{'type':Sequelize[_0xc163('0xa')],'defaultValue':![]},'rescheduled':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'rescheduledat':{'type':Sequelize[_0xc163('0x5')]},'callback':{'type':Sequelize[_0xc163('0xa')],'defaultValue':![]},'callbackuniqueid':{'type':Sequelize['STRING'],'defaultValue':null},'callbackat':{'type':Sequelize[_0xc163('0x5')]},'deleted':{'type':Sequelize[_0xc163('0x4')],'defaultValue':null},'deletedat':{'type':Sequelize['DATE']},'recallme':{'type':Sequelize[_0xc163('0xa')],'defaultValue':![]},'agiafterat':{'type':Sequelize['DATE']},'countnosuchnumberretry':{'type':Sequelize[_0xc163('0x3')],'defaultValue':0x0},'countdropretry':{'type':Sequelize[_0xc163('0x3')],'defaultValue':0x0},'countabandonedretry':{'type':Sequelize[_0xc163('0x3')],'defaultValue':0x0},'countmachineretry':{'type':Sequelize[_0xc163('0x3')],'defaultValue':0x0},'countagentrejectretry':{'type':Sequelize[_0xc163('0x3')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x326f=['type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','where','pick','merge','VIRTUAL','options','CmHopperFinal','includeAll','include','rows','catch','show','params','find','describe','uniqueid','body','countContactsQueueCampaignHopperFinal','sequelize','COUNT','literal','`state`\x20=\x200,\x201,\x20null','`state`\x20=\x203,\x201,\x20null','noAnswerContacts','busyContacts','`state`\x20=\x208,\x201,\x20null','congestionContacts','`state`\x20=\x2010\x20,\x201,\x20null','abandonedContacts','`state`\x20=\x2022,\x201,\x20null','`state`\x20=\x2019,\x201,\x20null','answeringMachine','countContactsIvrCampaignHopperFinal','noSuchContacts','dropContacts','`state`\x20=\x2011\x20,\x201,\x20null','reCallContacts','moveContactsQueueCampaignHopperFinal','insert','into','cm_hopper','scheduledAt','ContactId','createdAt','select','field','NOW()','ANY_VALUE(ContactId)','ANY_VALUE(ListId)','ListId','ANY_VALUE(VoiceQueueId)','VoiceQueueId','updatedAt','from','VoiceQueueId\x20=\x20?','state\x20=\x20?','state','calleridnum\x20NOT\x20IN\x20(?)','toString','calleridnum','state\x20=\x204','group','moveContactsIvrCampaignHopperFinal','fromQuery','phone','CampaignId','ANY_VALUE(CampaignId)','cm_hopper_final','calleridnum\x20IS\x20NOT\x20NULL','CampaignId\x20=\x20?','checkContactHopper','CmHopper','eml-format','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/license/util','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','reject','save','update','destroy','then','stack','name','send','map','rawAttributes','fieldName'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x326f,0xd1));var _0xf326=function(_0x310b73,_0x48bda3){_0x310b73=_0x310b73-0x0;var _0x22b63d=_0x326f[_0x310b73];return _0x22b63d;};'use strict';var emlformat=require(_0xf326('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xf326('0x1'));var rp=require(_0xf326('0x2'));var moment=require(_0xf326('0x3'));var BPromise=require(_0xf326('0x4'));var Mustache=require(_0xf326('0x5'));var util=require(_0xf326('0x6'));var path=require(_0xf326('0x7'));var sox=require(_0xf326('0x8'));var csv=require(_0xf326('0x9'));var ejs=require(_0xf326('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xf326('0xb'));var squel=require(_0xf326('0xc'));var crypto=require(_0xf326('0xd'));var jsforce=require(_0xf326('0xe'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xf326('0xf'));var Redis=require(_0xf326('0x10'));var authService=require(_0xf326('0x11'));var qs=require(_0xf326('0x12'));var as=require(_0xf326('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xf326('0x14'))('api');var utils=require(_0xf326('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0xf326('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x3162f9,_0x9ed463){_0x9ed463=_0x9ed463||0xcc;return function(_0x4b3966){if(_0x4b3966){return _0x3162f9[_0xf326('0x17')](_0x9ed463);}return _0x3162f9[_0xf326('0x18')](_0x9ed463)[_0xf326('0x19')]();};}function respondWithResult(_0x17a098,_0x5c8483){_0x5c8483=_0x5c8483||0xc8;return function(_0x45c1b6){if(_0x45c1b6){return _0x17a098['status'](_0x5c8483)['json'](_0x45c1b6);}};}function respondWithFilteredResult(_0xdf21d9,_0x11f6d2){return function(_0x1f2e5a){if(_0x1f2e5a){var _0xa63d1a=typeof _0x11f6d2[_0xf326('0x1a')]===_0xf326('0x1b')&&typeof _0x11f6d2[_0xf326('0x1c')]===_0xf326('0x1b');var _0x5a682a=_0x1f2e5a[_0xf326('0x1d')];var _0x453100=_0xa63d1a?0x0:_0x11f6d2[_0xf326('0x1a')];var _0x31ffb9=_0xa63d1a?_0x1f2e5a[_0xf326('0x1d')]:_0x11f6d2[_0xf326('0x1a')]+_0x11f6d2['limit'];var _0x4a5b6c;if(_0x31ffb9>=_0x5a682a){_0x31ffb9=_0x5a682a;_0x4a5b6c=0xc8;}else{_0x4a5b6c=0xce;}_0xdf21d9['status'](_0x4a5b6c);return _0xdf21d9[_0xf326('0x1e')](_0xf326('0x1f'),_0x453100+'-'+_0x31ffb9+'/'+_0x5a682a)['json'](_0x1f2e5a);}return null;};}function patchUpdates(_0x4cabce){return function(_0x128c68){try{jsonpatch['apply'](_0x128c68,_0x4cabce,!![]);}catch(_0x5b6d3c){return BPromise[_0xf326('0x20')](_0x5b6d3c);}return _0x128c68[_0xf326('0x21')]();};}function saveUpdates(_0x549b46,_0x5aa184){return function(_0x19b8ba){if(_0x19b8ba){return _0x19b8ba[_0xf326('0x22')](_0x549b46)['then'](function(_0x337ed5){return _0x337ed5;});}return null;};}function removeEntity(_0x1b9039,_0x43c53e){return function(_0x295752){if(_0x295752){return _0x295752[_0xf326('0x23')]()[_0xf326('0x24')](function(){_0x1b9039['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x4f31f6,_0x520d85){return function(_0x1a2c4e){if(!_0x1a2c4e){_0x4f31f6[_0xf326('0x17')](0x194);}return _0x1a2c4e;};}function handleError(_0x1ff2b5,_0x148953){_0x148953=_0x148953||0x1f4;return function(_0x410237){logger['error'](_0x410237[_0xf326('0x25')]);if(_0x410237[_0xf326('0x26')]){delete _0x410237[_0xf326('0x26')];}_0x1ff2b5['status'](_0x148953)[_0xf326('0x27')](_0x410237);};}exports['index']=function(_0x4a9abf,_0x6a8e89){var _0x1ae23a={},_0x2fa28e={},_0x5dbe63={'count':0x0,'rows':[]};var _0xc115d9=_[_0xf326('0x28')](db['CmHopperFinal'][_0xf326('0x29')],function(_0x119ab8){return{'name':_0x119ab8[_0xf326('0x2a')],'type':_0x119ab8[_0xf326('0x2b')][_0xf326('0x2c')]};});_0x2fa28e[_0xf326('0x2d')]=_[_0xf326('0x28')](_0xc115d9,_0xf326('0x26'));_0x2fa28e[_0xf326('0x2e')]=_[_0xf326('0x2f')](_0x4a9abf['query']);_0x2fa28e[_0xf326('0x30')]=_[_0xf326('0x31')](_0x2fa28e[_0xf326('0x2d')],_0x2fa28e['query']);_0x1ae23a[_0xf326('0x32')]=_[_0xf326('0x31')](_0x2fa28e[_0xf326('0x2d')],qs['fields'](_0x4a9abf['query'][_0xf326('0x33')]));_0x1ae23a[_0xf326('0x32')]=_0x1ae23a[_0xf326('0x32')][_0xf326('0x34')]?_0x1ae23a[_0xf326('0x32')]:_0x2fa28e[_0xf326('0x2d')];if(!_0x4a9abf[_0xf326('0x2e')][_0xf326('0x35')]('nolimit')){_0x1ae23a[_0xf326('0x1c')]=qs[_0xf326('0x1c')](_0x4a9abf['query'][_0xf326('0x1c')]);_0x1ae23a['offset']=qs[_0xf326('0x1a')](_0x4a9abf['query']['offset']);}_0x1ae23a[_0xf326('0x36')]=qs['sort'](_0x4a9abf[_0xf326('0x2e')]['sort']);_0x1ae23a[_0xf326('0x37')]=qs[_0xf326('0x30')](_[_0xf326('0x38')](_0x4a9abf['query'],_0x2fa28e[_0xf326('0x30')]),_0xc115d9);if(_0x4a9abf[_0xf326('0x2e')]['filter']){_0x1ae23a[_0xf326('0x37')]=_[_0xf326('0x39')](_0x1ae23a[_0xf326('0x37')],{'$or':_[_0xf326('0x28')](_0xc115d9,function(_0x51076c){if(_0x51076c[_0xf326('0x2b')]!==_0xf326('0x3a')){var _0x1e69b1={};_0x1e69b1[_0x51076c[_0xf326('0x26')]]={'$like':'%'+_0x4a9abf[_0xf326('0x2e')]['filter']+'%'};return _0x1e69b1;}})});}_0x1ae23a=_[_0xf326('0x39')]({},_0x1ae23a,_0x4a9abf[_0xf326('0x3b')]);var _0x5cfb97={'where':_0x1ae23a['where']};return db[_0xf326('0x3c')]['count'](_0x5cfb97)['then'](function(_0x22d462){_0x5dbe63['count']=_0x22d462;if(_0x4a9abf[_0xf326('0x2e')][_0xf326('0x3d')]){_0x1ae23a[_0xf326('0x3e')]=[{'all':!![]}];}return db[_0xf326('0x3c')]['findAll'](_0x1ae23a);})[_0xf326('0x24')](function(_0x45d344){_0x5dbe63[_0xf326('0x3f')]=_0x45d344;return _0x5dbe63;})[_0xf326('0x24')](respondWithFilteredResult(_0x6a8e89,_0x1ae23a))[_0xf326('0x40')](handleError(_0x6a8e89,null));};exports[_0xf326('0x41')]=function(_0x2ad841,_0x224a32){var _0x31283b={'raw':!![],'where':{'id':_0x2ad841[_0xf326('0x42')]['id']}},_0x1227d3={};_0x1227d3[_0xf326('0x2d')]=_['keys'](db[_0xf326('0x3c')][_0xf326('0x29')]);_0x1227d3[_0xf326('0x2e')]=_[_0xf326('0x2f')](_0x2ad841[_0xf326('0x2e')]);_0x1227d3[_0xf326('0x30')]=_['intersection'](_0x1227d3[_0xf326('0x2d')],_0x1227d3[_0xf326('0x2e')]);_0x31283b['attributes']=_[_0xf326('0x31')](_0x1227d3[_0xf326('0x2d')],qs[_0xf326('0x33')](_0x2ad841[_0xf326('0x2e')][_0xf326('0x33')]));_0x31283b['attributes']=_0x31283b['attributes'][_0xf326('0x34')]?_0x31283b[_0xf326('0x32')]:_0x1227d3['model'];if(_0x2ad841['query'][_0xf326('0x3d')]){_0x31283b[_0xf326('0x3e')]=[{'all':!![]}];}_0x31283b=_[_0xf326('0x39')]({},_0x31283b,_0x2ad841['options']);return db[_0xf326('0x3c')][_0xf326('0x43')](_0x31283b)[_0xf326('0x24')](handleEntityNotFound(_0x224a32,null))[_0xf326('0x24')](respondWithResult(_0x224a32,null))[_0xf326('0x40')](handleError(_0x224a32,null));};exports[_0xf326('0x44')]=function(_0x12792c,_0x3b90dc){return db[_0xf326('0x3c')][_0xf326('0x44')]()[_0xf326('0x24')](respondWithResult(_0x3b90dc,null))[_0xf326('0x40')](handleError(_0x3b90dc,null));};exports[_0xf326('0x22')]=function(_0x395b1e,_0xeac1a1){if(_0x395b1e['body'][_0xf326('0x45')]){delete _0x395b1e[_0xf326('0x46')][_0xf326('0x45')];}return db[_0xf326('0x3c')]['find']({'where':{'uniqueid':_0x395b1e[_0xf326('0x42')]['id']}})[_0xf326('0x24')](handleEntityNotFound(_0xeac1a1,null))[_0xf326('0x24')](saveUpdates(_0x395b1e[_0xf326('0x46')],null))['then'](respondWithResult(_0xeac1a1,null))[_0xf326('0x40')](handleError(_0xeac1a1,null));};exports[_0xf326('0x47')]=function(_0x145a77,_0x451ac7,_0x39ba25){return db['CmHopperFinal']['findAll']({'raw':![],'where':{'VoiceQueueId':_0x145a77[_0xf326('0x42')]['id']},'attributes':[[db[_0xf326('0x48')]['fn'](_0xf326('0x49'),db['sequelize']['fn']('IF',db[_0xf326('0x48')][_0xf326('0x4a')](_0xf326('0x4b')))),'noSuchContacts'],[db['sequelize']['fn'](_0xf326('0x49'),db['sequelize']['fn']('IF',db[_0xf326('0x48')]['literal'](_0xf326('0x4c')))),_0xf326('0x4d')],[db[_0xf326('0x48')]['fn'](_0xf326('0x49'),db[_0xf326('0x48')]['fn']('IF',db[_0xf326('0x48')][_0xf326('0x4a')]('`state`\x20=\x205,\x201,\x20null'))),_0xf326('0x4e')],[db[_0xf326('0x48')]['fn'](_0xf326('0x49'),db['sequelize']['fn']('IF',db[_0xf326('0x48')][_0xf326('0x4a')](_0xf326('0x4f')))),_0xf326('0x50')],[db[_0xf326('0x48')]['fn']('COUNT',db[_0xf326('0x48')]['fn']('IF',db[_0xf326('0x48')][_0xf326('0x4a')](_0xf326('0x51')))),'dropContacts'],[db[_0xf326('0x48')]['fn'](_0xf326('0x49'),db[_0xf326('0x48')]['fn']('IF',db[_0xf326('0x48')]['literal']('`state`\x20=\x2011\x20,\x201,\x20null'))),_0xf326('0x52')],[db[_0xf326('0x48')]['fn']('COUNT',db[_0xf326('0x48')]['fn']('IF',db[_0xf326('0x48')][_0xf326('0x4a')](_0xf326('0x53')))),'reCallContacts'],[db[_0xf326('0x48')]['fn']('COUNT',db['sequelize']['fn']('IF',db[_0xf326('0x48')]['literal'](_0xf326('0x54')))),_0xf326('0x55')]]})[_0xf326('0x24')](handleEntityNotFound(_0x451ac7,null))['then'](respondWithResult(_0x451ac7,null))['catch'](handleError(_0x451ac7,null));};exports[_0xf326('0x56')]=function(_0xa85a42,_0x33b259,_0x5d0177){return db[_0xf326('0x3c')]['findAll']({'raw':![],'where':{'CampaignId':_0xa85a42[_0xf326('0x42')]['id']},'attributes':[[db[_0xf326('0x48')]['fn'](_0xf326('0x49'),db[_0xf326('0x48')]['fn']('IF',db[_0xf326('0x48')][_0xf326('0x4a')](_0xf326('0x4b')))),_0xf326('0x57')],[db[_0xf326('0x48')]['fn'](_0xf326('0x49'),db[_0xf326('0x48')]['fn']('IF',db[_0xf326('0x48')][_0xf326('0x4a')]('`state`\x20=\x203,\x201,\x20null'))),_0xf326('0x4d')],[db['sequelize']['fn'](_0xf326('0x49'),db[_0xf326('0x48')]['fn']('IF',db['sequelize'][_0xf326('0x4a')]('`state`\x20=\x205,\x201,\x20null'))),_0xf326('0x4e')],[db[_0xf326('0x48')]['fn'](_0xf326('0x49'),db[_0xf326('0x48')]['fn']('IF',db[_0xf326('0x48')]['literal']('`state`\x20=\x208,\x201,\x20null'))),_0xf326('0x50')],[db[_0xf326('0x48')]['fn'](_0xf326('0x49'),db[_0xf326('0x48')]['fn']('IF',db[_0xf326('0x48')]['literal'](_0xf326('0x51')))),_0xf326('0x58')],[db['sequelize']['fn']('COUNT',db['sequelize']['fn']('IF',db[_0xf326('0x48')][_0xf326('0x4a')](_0xf326('0x59')))),_0xf326('0x52')],[db[_0xf326('0x48')]['fn'](_0xf326('0x49'),db[_0xf326('0x48')]['fn']('IF',db['sequelize'][_0xf326('0x4a')](_0xf326('0x53')))),_0xf326('0x5a')],[db[_0xf326('0x48')]['fn']('COUNT',db[_0xf326('0x48')]['fn']('IF',db['sequelize']['literal'](_0xf326('0x54')))),'answeringMachine']]})[_0xf326('0x24')](handleEntityNotFound(_0x33b259,null))[_0xf326('0x24')](respondWithResult(_0x33b259,null))[_0xf326('0x40')](handleError(_0x33b259,null));};exports[_0xf326('0x5b')]=function(_0x17cd36,_0x541491,_0x4a053c){return db['VoiceQueue'][_0xf326('0x43')]({'where':{'id':_0x17cd36[_0xf326('0x42')]['id']}})[_0xf326('0x24')](handleEntityNotFound(_0x541491,null))[_0xf326('0x24')](function(_0xec5857){var _0x5e874b;if(_0xec5857){_0x5e874b=squel[_0xf326('0x5c')]()[_0xf326('0x5d')](_0xf326('0x5e'))['fromQuery'](['phone',_0xf326('0x5f'),_0xf326('0x60'),'ListId','VoiceQueueId',_0xf326('0x61'),'updatedAt'],squel[_0xf326('0x62')]()['field']('ANY_VALUE(calleridnum)','phone')[_0xf326('0x63')](_0xf326('0x64'),_0xf326('0x5f'))['field'](_0xf326('0x65'),_0xf326('0x60'))[_0xf326('0x63')](_0xf326('0x66'),_0xf326('0x67'))[_0xf326('0x63')](_0xf326('0x68'),_0xf326('0x69'))[_0xf326('0x63')]('NOW()',_0xf326('0x61'))['field'](_0xf326('0x64'),_0xf326('0x6a'))[_0xf326('0x6b')]('cm_hopper_final')[_0xf326('0x37')](_0xf326('0x6c'),_0x17cd36[_0xf326('0x42')]['id']['toString']())[_0xf326('0x37')](_0xf326('0x6d'),_0x17cd36[_0xf326('0x46')][_0xf326('0x6e')]['toString']())[_0xf326('0x37')]('calleridnum\x20IS\x20NOT\x20NULL')['where'](_0xf326('0x6f'),squel[_0xf326('0x62')]()['field']('phone')['from'](_0xf326('0x5e'))['where'](_0xf326('0x6c'),_0x17cd36[_0xf326('0x42')]['id'][_0xf326('0x70')]()))[_0xf326('0x37')](_0xf326('0x6f'),squel[_0xf326('0x62')]()['field'](_0xf326('0x71'))[_0xf326('0x6b')]('cm_hopper_final')['where'](_0xf326('0x6c'),_0x17cd36['params']['id'][_0xf326('0x70')]())[_0xf326('0x37')](_0xf326('0x72')))[_0xf326('0x73')](_0xf326('0x60')))[_0xf326('0x70')]();return db[_0xf326('0x48')][_0xf326('0x2e')](_0x5e874b);}return[];})[_0xf326('0x24')](respondWithResult(_0x541491,null))['catch'](handleError(_0x541491,null));};exports[_0xf326('0x74')]=function(_0x26bbb1,_0x4ac90e,_0x3c82cf){return db['Campaign'][_0xf326('0x43')]({'where':{'id':_0x26bbb1[_0xf326('0x42')]['id']}})[_0xf326('0x24')](handleEntityNotFound(_0x4ac90e,null))['then'](function(_0x2b4414){var _0x1c86c8;if(_0x2b4414){_0x1c86c8=squel[_0xf326('0x5c')]()[_0xf326('0x5d')](_0xf326('0x5e'))[_0xf326('0x75')]([_0xf326('0x76'),_0xf326('0x5f'),_0xf326('0x60'),_0xf326('0x67'),_0xf326('0x77'),_0xf326('0x61'),_0xf326('0x6a')],squel[_0xf326('0x62')]()[_0xf326('0x63')]('ANY_VALUE(calleridnum)',_0xf326('0x76'))[_0xf326('0x63')]('NOW()',_0xf326('0x5f'))[_0xf326('0x63')]('ANY_VALUE(ContactId)',_0xf326('0x60'))[_0xf326('0x63')](_0xf326('0x66'),_0xf326('0x67'))[_0xf326('0x63')](_0xf326('0x78'),_0xf326('0x77'))['field'](_0xf326('0x64'),_0xf326('0x61'))[_0xf326('0x63')](_0xf326('0x64'),_0xf326('0x6a'))[_0xf326('0x6b')](_0xf326('0x79'))[_0xf326('0x37')]('CampaignId\x20=\x20?',_0x26bbb1[_0xf326('0x42')]['id'][_0xf326('0x70')]())['where'](_0xf326('0x6d'),_0x26bbb1['body'][_0xf326('0x6e')][_0xf326('0x70')]())[_0xf326('0x37')](_0xf326('0x7a'))[_0xf326('0x37')](_0xf326('0x6f'),squel[_0xf326('0x62')]()[_0xf326('0x63')](_0xf326('0x76'))[_0xf326('0x6b')](_0xf326('0x5e'))[_0xf326('0x37')](_0xf326('0x7b'),_0x26bbb1[_0xf326('0x42')]['id']['toString']()))[_0xf326('0x37')](_0xf326('0x6f'),squel[_0xf326('0x62')]()[_0xf326('0x63')](_0xf326('0x71'))['from'](_0xf326('0x79'))[_0xf326('0x37')](_0xf326('0x7b'),_0x26bbb1[_0xf326('0x42')]['id'][_0xf326('0x70')]())['where']('state\x20=\x204'))[_0xf326('0x73')]('ContactId'))[_0xf326('0x70')]();return db[_0xf326('0x48')][_0xf326('0x2e')](_0x1c86c8);}return[];})['then'](respondWithResult(_0x4ac90e,null))['catch'](handleError(_0x4ac90e,null));};exports[_0xf326('0x7c')]=function(_0x2d92e4,_0x167ac9,_0x34870c){return db[_0xf326('0x7d')]['findOne']({'where':{'VoiceQueueId':_0x2d92e4[_0xf326('0x46')][_0xf326('0x69')],'CampaignId':_0x2d92e4[_0xf326('0x46')]['CampaignId'],'ContactId':_0x2d92e4['body']['ContactId']}})[_0xf326('0x24')](handleEntityNotFound(_0x167ac9,null))[_0xf326('0x24')](function(_0x2d275d){if(_0x2d275d){return _0x2d275d;}return null;})[_0xf326('0x24')](respondWithResult(_0x167ac9,null))[_0xf326('0x40')](handleError(_0x167ac9,null));};
\ No newline at end of file
+var _0x5fab=['json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','update','destroy','end','sendStatus','name','send','index','map','CmHopperFinal','rawAttributes','fieldName','type','key','model','query','keys','filters','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','VIRTUAL','filter','includeAll','include','findAll','then','rows','show','params','intersection','fields','options','find','catch','describe','body','countContactsQueueCampaignHopperFinal','COUNT','sequelize','`state`\x20=\x200,\x201,\x20null','noSuchContacts','literal','`state`\x20=\x203,\x201,\x20null','noAnswerContacts','`state`\x20=\x205,\x201,\x20null','busyContacts','`state`\x20=\x208,\x201,\x20null','congestionContacts','`state`\x20=\x2010\x20,\x201,\x20null','`state`\x20=\x2011\x20,\x201,\x20null','abandonedContacts','reCallContacts','`state`\x20=\x2019,\x201,\x20null','answeringMachine','countContactsIvrCampaignHopperFinal','dropContacts','`state`\x20=\x2022,\x201,\x20null','moveContactsQueueCampaignHopperFinal','into','cm_hopper','fromQuery','phone','scheduledAt','ContactId','VoiceQueueId','select','field','ANY_VALUE(ContactId)','ANY_VALUE(ListId)','ListId','ANY_VALUE(VoiceQueueId)','NOW()','updatedAt','from','cm_hopper_final','VoiceQueueId\x20=\x20?','toString','state\x20=\x20?','calleridnum\x20IS\x20NOT\x20NULL','calleridnum\x20NOT\x20IN\x20(?)','calleridnum','state\x20=\x204','group','Campaign','insert','CampaignId','createdAt','ANY_VALUE(CampaignId)','CampaignId\x20=\x20?','checkContactHopper','CmHopper','findOne','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','squel','crypto','jsforce','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status'];(function(_0x10fbe7,_0x8d1b28){var _0x43232e=function(_0x479ca5){while(--_0x479ca5){_0x10fbe7['push'](_0x10fbe7['shift']());}};_0x43232e(++_0x8d1b28);}(_0x5fab,0x177));var _0xb5fa=function(_0x2b47ad,_0x55c7cc){_0x2b47ad=_0x2b47ad-0x0;var _0x1a2426=_0x5fab[_0x2b47ad];return _0x1a2426;};'use strict';var emlformat=require(_0xb5fa('0x0'));var rimraf=require(_0xb5fa('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xb5fa('0x2'));var rp=require(_0xb5fa('0x3'));var moment=require(_0xb5fa('0x4'));var BPromise=require(_0xb5fa('0x5'));var Mustache=require(_0xb5fa('0x6'));var util=require(_0xb5fa('0x7'));var path=require(_0xb5fa('0x8'));var sox=require(_0xb5fa('0x9'));var csv=require(_0xb5fa('0xa'));var ejs=require(_0xb5fa('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0xb5fa('0xc'));var crypto=require(_0xb5fa('0xd'));var jsforce=require(_0xb5fa('0xe'));var deskjs=require('desk.js');var toCsv=require(_0xb5fa('0xa'));var querystring=require(_0xb5fa('0xf'));var Papa=require(_0xb5fa('0x10'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xb5fa('0x11'));var as=require(_0xb5fa('0x12'));var hardwareService=require(_0xb5fa('0x13'));var logger=require(_0xb5fa('0x14'))(_0xb5fa('0x15'));var utils=require(_0xb5fa('0x16'));var config=require(_0xb5fa('0x17'));var licenseUtil=require(_0xb5fa('0x18'));var db=require(_0xb5fa('0x19'))['db'];function respondWithStatusCode(_0x4d3576,_0x2ad830){_0x2ad830=_0x2ad830||0xcc;return function(_0x3dad4d){if(_0x3dad4d){return _0x4d3576['sendStatus'](_0x2ad830);}return _0x4d3576[_0xb5fa('0x1a')](_0x2ad830)['end']();};}function respondWithResult(_0x265992,_0x3fc372){_0x3fc372=_0x3fc372||0xc8;return function(_0x40c914){if(_0x40c914){return _0x265992[_0xb5fa('0x1a')](_0x3fc372)[_0xb5fa('0x1b')](_0x40c914);}};}function respondWithFilteredResult(_0x5371cf,_0x567f31){return function(_0x38e964){if(_0x38e964){var _0x587043=typeof _0x567f31[_0xb5fa('0x1c')]===_0xb5fa('0x1d')&&typeof _0x567f31['limit']==='undefined';var _0x451a55=_0x38e964[_0xb5fa('0x1e')];var _0x32e9e5=_0x587043?0x0:_0x567f31[_0xb5fa('0x1c')];var _0x324ba5=_0x587043?_0x38e964[_0xb5fa('0x1e')]:_0x567f31[_0xb5fa('0x1c')]+_0x567f31[_0xb5fa('0x1f')];var _0xc14dc4;if(_0x324ba5>=_0x451a55){_0x324ba5=_0x451a55;_0xc14dc4=0xc8;}else{_0xc14dc4=0xce;}_0x5371cf[_0xb5fa('0x1a')](_0xc14dc4);return _0x5371cf[_0xb5fa('0x20')](_0xb5fa('0x21'),_0x32e9e5+'-'+_0x324ba5+'/'+_0x451a55)['json'](_0x38e964);}return null;};}function patchUpdates(_0x432bfa){return function(_0x519e20){try{jsonpatch[_0xb5fa('0x22')](_0x519e20,_0x432bfa,!![]);}catch(_0x4a6c04){return BPromise[_0xb5fa('0x23')](_0x4a6c04);}return _0x519e20[_0xb5fa('0x24')]();};}function saveUpdates(_0x4e05c0,_0x40dfdf){return function(_0x3a2ab9){if(_0x3a2ab9){return _0x3a2ab9[_0xb5fa('0x25')](_0x4e05c0)['then'](function(_0x32a85c){return _0x32a85c;});}return null;};}function removeEntity(_0xec108f,_0x444237){return function(_0x542348){if(_0x542348){return _0x542348[_0xb5fa('0x26')]()['then'](function(){_0xec108f[_0xb5fa('0x1a')](0xcc)[_0xb5fa('0x27')]();});}};}function handleEntityNotFound(_0x11053a,_0x543edf){return function(_0x2dbd22){if(!_0x2dbd22){_0x11053a[_0xb5fa('0x28')](0x194);}return _0x2dbd22;};}function handleError(_0x6a455c,_0x20d649){_0x20d649=_0x20d649||0x1f4;return function(_0x568870){logger['error'](_0x568870['stack']);if(_0x568870['name']){delete _0x568870[_0xb5fa('0x29')];}_0x6a455c[_0xb5fa('0x1a')](_0x20d649)[_0xb5fa('0x2a')](_0x568870);};}exports[_0xb5fa('0x2b')]=function(_0x534884,_0x3506a4){var _0x358549={},_0x353314={},_0x409af9={'count':0x0,'rows':[]};var _0x2a5690=_[_0xb5fa('0x2c')](db[_0xb5fa('0x2d')][_0xb5fa('0x2e')],function(_0x1f4380){return{'name':_0x1f4380[_0xb5fa('0x2f')],'type':_0x1f4380[_0xb5fa('0x30')][_0xb5fa('0x31')]};});_0x353314[_0xb5fa('0x32')]=_[_0xb5fa('0x2c')](_0x2a5690,_0xb5fa('0x29'));_0x353314[_0xb5fa('0x33')]=_[_0xb5fa('0x34')](_0x534884[_0xb5fa('0x33')]);_0x353314[_0xb5fa('0x35')]=_['intersection'](_0x353314[_0xb5fa('0x32')],_0x353314['query']);_0x358549['attributes']=_['intersection'](_0x353314[_0xb5fa('0x32')],qs['fields'](_0x534884[_0xb5fa('0x33')]['fields']));_0x358549['attributes']=_0x358549[_0xb5fa('0x36')][_0xb5fa('0x37')]?_0x358549['attributes']:_0x353314['model'];if(!_0x534884[_0xb5fa('0x33')][_0xb5fa('0x38')](_0xb5fa('0x39'))){_0x358549['limit']=qs[_0xb5fa('0x1f')](_0x534884[_0xb5fa('0x33')]['limit']);_0x358549[_0xb5fa('0x1c')]=qs[_0xb5fa('0x1c')](_0x534884[_0xb5fa('0x33')]['offset']);}_0x358549[_0xb5fa('0x3a')]=qs[_0xb5fa('0x3b')](_0x534884[_0xb5fa('0x33')]['sort']);_0x358549[_0xb5fa('0x3c')]=qs[_0xb5fa('0x35')](_[_0xb5fa('0x3d')](_0x534884[_0xb5fa('0x33')],_0x353314['filters']),_0x2a5690);if(_0x534884['query']['filter']){_0x358549['where']=_['merge'](_0x358549['where'],{'$or':_[_0xb5fa('0x2c')](_0x2a5690,function(_0x4c0a4d){if(_0x4c0a4d[_0xb5fa('0x30')]!==_0xb5fa('0x3e')){var _0x36db1a={};_0x36db1a[_0x4c0a4d[_0xb5fa('0x29')]]={'$like':'%'+_0x534884[_0xb5fa('0x33')][_0xb5fa('0x3f')]+'%'};return _0x36db1a;}})});}_0x358549=_['merge']({},_0x358549,_0x534884['options']);var _0x4c4bf0={'where':_0x358549[_0xb5fa('0x3c')]};return db['CmHopperFinal'][_0xb5fa('0x1e')](_0x4c4bf0)['then'](function(_0x58aa97){_0x409af9[_0xb5fa('0x1e')]=_0x58aa97;if(_0x534884[_0xb5fa('0x33')][_0xb5fa('0x40')]){_0x358549[_0xb5fa('0x41')]=[{'all':!![]}];}return db[_0xb5fa('0x2d')][_0xb5fa('0x42')](_0x358549);})[_0xb5fa('0x43')](function(_0x83df0b){_0x409af9[_0xb5fa('0x44')]=_0x83df0b;return _0x409af9;})[_0xb5fa('0x43')](respondWithFilteredResult(_0x3506a4,_0x358549))['catch'](handleError(_0x3506a4,null));};exports[_0xb5fa('0x45')]=function(_0x4bc9df,_0x233f90){var _0x39aac3={'raw':!![],'where':{'id':_0x4bc9df[_0xb5fa('0x46')]['id']}},_0x2c7c5f={};_0x2c7c5f[_0xb5fa('0x32')]=_[_0xb5fa('0x34')](db[_0xb5fa('0x2d')][_0xb5fa('0x2e')]);_0x2c7c5f['query']=_[_0xb5fa('0x34')](_0x4bc9df[_0xb5fa('0x33')]);_0x2c7c5f['filters']=_[_0xb5fa('0x47')](_0x2c7c5f['model'],_0x2c7c5f[_0xb5fa('0x33')]);_0x39aac3[_0xb5fa('0x36')]=_['intersection'](_0x2c7c5f['model'],qs[_0xb5fa('0x48')](_0x4bc9df[_0xb5fa('0x33')][_0xb5fa('0x48')]));_0x39aac3[_0xb5fa('0x36')]=_0x39aac3[_0xb5fa('0x36')][_0xb5fa('0x37')]?_0x39aac3[_0xb5fa('0x36')]:_0x2c7c5f[_0xb5fa('0x32')];if(_0x4bc9df['query'][_0xb5fa('0x40')]){_0x39aac3[_0xb5fa('0x41')]=[{'all':!![]}];}_0x39aac3=_['merge']({},_0x39aac3,_0x4bc9df[_0xb5fa('0x49')]);return db[_0xb5fa('0x2d')][_0xb5fa('0x4a')](_0x39aac3)[_0xb5fa('0x43')](handleEntityNotFound(_0x233f90,null))[_0xb5fa('0x43')](respondWithResult(_0x233f90,null))[_0xb5fa('0x4b')](handleError(_0x233f90,null));};exports[_0xb5fa('0x4c')]=function(_0x33eb2c,_0x20f5f5){return db[_0xb5fa('0x2d')][_0xb5fa('0x4c')]()[_0xb5fa('0x43')](respondWithResult(_0x20f5f5,null))[_0xb5fa('0x4b')](handleError(_0x20f5f5,null));};exports[_0xb5fa('0x25')]=function(_0x42a359,_0x3a39f2){if(_0x42a359['body']['uniqueid']){delete _0x42a359[_0xb5fa('0x4d')]['uniqueid'];}return db[_0xb5fa('0x2d')][_0xb5fa('0x4a')]({'where':{'uniqueid':_0x42a359['params']['id']}})[_0xb5fa('0x43')](handleEntityNotFound(_0x3a39f2,null))[_0xb5fa('0x43')](saveUpdates(_0x42a359[_0xb5fa('0x4d')],null))[_0xb5fa('0x43')](respondWithResult(_0x3a39f2,null))[_0xb5fa('0x4b')](handleError(_0x3a39f2,null));};exports[_0xb5fa('0x4e')]=function(_0x51d5f7,_0x27a651,_0x4fd5bf){return db[_0xb5fa('0x2d')][_0xb5fa('0x42')]({'raw':![],'where':{'VoiceQueueId':_0x51d5f7[_0xb5fa('0x46')]['id']},'attributes':[[db['sequelize']['fn'](_0xb5fa('0x4f'),db[_0xb5fa('0x50')]['fn']('IF',db['sequelize']['literal'](_0xb5fa('0x51')))),_0xb5fa('0x52')],[db[_0xb5fa('0x50')]['fn'](_0xb5fa('0x4f'),db[_0xb5fa('0x50')]['fn']('IF',db[_0xb5fa('0x50')][_0xb5fa('0x53')](_0xb5fa('0x54')))),_0xb5fa('0x55')],[db[_0xb5fa('0x50')]['fn'](_0xb5fa('0x4f'),db[_0xb5fa('0x50')]['fn']('IF',db[_0xb5fa('0x50')][_0xb5fa('0x53')](_0xb5fa('0x56')))),_0xb5fa('0x57')],[db[_0xb5fa('0x50')]['fn'](_0xb5fa('0x4f'),db['sequelize']['fn']('IF',db[_0xb5fa('0x50')][_0xb5fa('0x53')](_0xb5fa('0x58')))),_0xb5fa('0x59')],[db[_0xb5fa('0x50')]['fn'](_0xb5fa('0x4f'),db[_0xb5fa('0x50')]['fn']('IF',db[_0xb5fa('0x50')][_0xb5fa('0x53')](_0xb5fa('0x5a')))),'dropContacts'],[db['sequelize']['fn'](_0xb5fa('0x4f'),db[_0xb5fa('0x50')]['fn']('IF',db[_0xb5fa('0x50')]['literal'](_0xb5fa('0x5b')))),_0xb5fa('0x5c')],[db[_0xb5fa('0x50')]['fn'](_0xb5fa('0x4f'),db[_0xb5fa('0x50')]['fn']('IF',db[_0xb5fa('0x50')][_0xb5fa('0x53')]('`state`\x20=\x2022,\x201,\x20null'))),_0xb5fa('0x5d')],[db[_0xb5fa('0x50')]['fn']('COUNT',db[_0xb5fa('0x50')]['fn']('IF',db[_0xb5fa('0x50')]['literal'](_0xb5fa('0x5e')))),_0xb5fa('0x5f')]]})[_0xb5fa('0x43')](handleEntityNotFound(_0x27a651,null))[_0xb5fa('0x43')](respondWithResult(_0x27a651,null))[_0xb5fa('0x4b')](handleError(_0x27a651,null));};exports[_0xb5fa('0x60')]=function(_0x18cde9,_0x40d7d5,_0xd2ba4e){return db[_0xb5fa('0x2d')][_0xb5fa('0x42')]({'raw':![],'where':{'CampaignId':_0x18cde9[_0xb5fa('0x46')]['id']},'attributes':[[db[_0xb5fa('0x50')]['fn'](_0xb5fa('0x4f'),db[_0xb5fa('0x50')]['fn']('IF',db[_0xb5fa('0x50')][_0xb5fa('0x53')](_0xb5fa('0x51')))),_0xb5fa('0x52')],[db[_0xb5fa('0x50')]['fn'](_0xb5fa('0x4f'),db[_0xb5fa('0x50')]['fn']('IF',db['sequelize'][_0xb5fa('0x53')](_0xb5fa('0x54')))),_0xb5fa('0x55')],[db['sequelize']['fn'](_0xb5fa('0x4f'),db[_0xb5fa('0x50')]['fn']('IF',db['sequelize'][_0xb5fa('0x53')](_0xb5fa('0x56')))),_0xb5fa('0x57')],[db['sequelize']['fn']('COUNT',db[_0xb5fa('0x50')]['fn']('IF',db[_0xb5fa('0x50')][_0xb5fa('0x53')]('`state`\x20=\x208,\x201,\x20null'))),_0xb5fa('0x59')],[db[_0xb5fa('0x50')]['fn'](_0xb5fa('0x4f'),db[_0xb5fa('0x50')]['fn']('IF',db['sequelize']['literal']('`state`\x20=\x2010\x20,\x201,\x20null'))),_0xb5fa('0x61')],[db[_0xb5fa('0x50')]['fn'](_0xb5fa('0x4f'),db['sequelize']['fn']('IF',db[_0xb5fa('0x50')][_0xb5fa('0x53')](_0xb5fa('0x5b')))),_0xb5fa('0x5c')],[db[_0xb5fa('0x50')]['fn'](_0xb5fa('0x4f'),db[_0xb5fa('0x50')]['fn']('IF',db[_0xb5fa('0x50')][_0xb5fa('0x53')](_0xb5fa('0x62')))),_0xb5fa('0x5d')],[db[_0xb5fa('0x50')]['fn'](_0xb5fa('0x4f'),db[_0xb5fa('0x50')]['fn']('IF',db[_0xb5fa('0x50')]['literal'](_0xb5fa('0x5e')))),'answeringMachine']]})[_0xb5fa('0x43')](handleEntityNotFound(_0x40d7d5,null))[_0xb5fa('0x43')](respondWithResult(_0x40d7d5,null))[_0xb5fa('0x4b')](handleError(_0x40d7d5,null));};exports[_0xb5fa('0x63')]=function(_0x339dfb,_0x56e6b0,_0x1585cd){return db['VoiceQueue'][_0xb5fa('0x4a')]({'where':{'id':_0x339dfb[_0xb5fa('0x46')]['id']}})[_0xb5fa('0x43')](handleEntityNotFound(_0x56e6b0,null))[_0xb5fa('0x43')](function(_0x5e44d8){var _0x4d1117;if(_0x5e44d8){_0x4d1117=squel['insert']()[_0xb5fa('0x64')](_0xb5fa('0x65'))[_0xb5fa('0x66')]([_0xb5fa('0x67'),_0xb5fa('0x68'),_0xb5fa('0x69'),'ListId',_0xb5fa('0x6a'),'createdAt','updatedAt'],squel[_0xb5fa('0x6b')]()['field']('ANY_VALUE(calleridnum)','phone')[_0xb5fa('0x6c')]('NOW()',_0xb5fa('0x68'))[_0xb5fa('0x6c')](_0xb5fa('0x6d'),'ContactId')['field'](_0xb5fa('0x6e'),_0xb5fa('0x6f'))['field'](_0xb5fa('0x70'),_0xb5fa('0x6a'))[_0xb5fa('0x6c')](_0xb5fa('0x71'),'createdAt')[_0xb5fa('0x6c')](_0xb5fa('0x71'),_0xb5fa('0x72'))[_0xb5fa('0x73')](_0xb5fa('0x74'))[_0xb5fa('0x3c')](_0xb5fa('0x75'),_0x339dfb['params']['id'][_0xb5fa('0x76')]())['where'](_0xb5fa('0x77'),_0x339dfb[_0xb5fa('0x4d')]['state'][_0xb5fa('0x76')]())[_0xb5fa('0x3c')](_0xb5fa('0x78'))[_0xb5fa('0x3c')](_0xb5fa('0x79'),squel[_0xb5fa('0x6b')]()[_0xb5fa('0x6c')](_0xb5fa('0x67'))['from'](_0xb5fa('0x65'))[_0xb5fa('0x3c')](_0xb5fa('0x75'),_0x339dfb[_0xb5fa('0x46')]['id']['toString']()))['where']('calleridnum\x20NOT\x20IN\x20(?)',squel['select']()[_0xb5fa('0x6c')](_0xb5fa('0x7a'))[_0xb5fa('0x73')](_0xb5fa('0x74'))['where']('VoiceQueueId\x20=\x20?',_0x339dfb[_0xb5fa('0x46')]['id']['toString']())[_0xb5fa('0x3c')](_0xb5fa('0x7b')))[_0xb5fa('0x7c')](_0xb5fa('0x69')))['toString']();return db[_0xb5fa('0x50')]['query'](_0x4d1117);}return[];})[_0xb5fa('0x43')](respondWithResult(_0x56e6b0,null))[_0xb5fa('0x4b')](handleError(_0x56e6b0,null));};exports['moveContactsIvrCampaignHopperFinal']=function(_0x5e6852,_0x391412,_0x3150ac){return db[_0xb5fa('0x7d')][_0xb5fa('0x4a')]({'where':{'id':_0x5e6852[_0xb5fa('0x46')]['id']}})[_0xb5fa('0x43')](handleEntityNotFound(_0x391412,null))[_0xb5fa('0x43')](function(_0x25b278){var _0x1a0255;if(_0x25b278){_0x1a0255=squel[_0xb5fa('0x7e')]()[_0xb5fa('0x64')](_0xb5fa('0x65'))[_0xb5fa('0x66')](['phone','scheduledAt',_0xb5fa('0x69'),'ListId',_0xb5fa('0x7f'),_0xb5fa('0x80'),'updatedAt'],squel[_0xb5fa('0x6b')]()[_0xb5fa('0x6c')]('ANY_VALUE(calleridnum)',_0xb5fa('0x67'))[_0xb5fa('0x6c')]('NOW()',_0xb5fa('0x68'))[_0xb5fa('0x6c')](_0xb5fa('0x6d'),'ContactId')['field'](_0xb5fa('0x6e'),_0xb5fa('0x6f'))[_0xb5fa('0x6c')](_0xb5fa('0x81'),_0xb5fa('0x7f'))[_0xb5fa('0x6c')](_0xb5fa('0x71'),_0xb5fa('0x80'))[_0xb5fa('0x6c')](_0xb5fa('0x71'),'updatedAt')['from'](_0xb5fa('0x74'))[_0xb5fa('0x3c')](_0xb5fa('0x82'),_0x5e6852[_0xb5fa('0x46')]['id']['toString']())[_0xb5fa('0x3c')](_0xb5fa('0x77'),_0x5e6852[_0xb5fa('0x4d')]['state'][_0xb5fa('0x76')]())[_0xb5fa('0x3c')](_0xb5fa('0x78'))[_0xb5fa('0x3c')]('calleridnum\x20NOT\x20IN\x20(?)',squel[_0xb5fa('0x6b')]()[_0xb5fa('0x6c')](_0xb5fa('0x67'))[_0xb5fa('0x73')](_0xb5fa('0x65'))[_0xb5fa('0x3c')](_0xb5fa('0x82'),_0x5e6852[_0xb5fa('0x46')]['id'][_0xb5fa('0x76')]()))[_0xb5fa('0x3c')](_0xb5fa('0x79'),squel[_0xb5fa('0x6b')]()[_0xb5fa('0x6c')](_0xb5fa('0x7a'))[_0xb5fa('0x73')]('cm_hopper_final')[_0xb5fa('0x3c')](_0xb5fa('0x82'),_0x5e6852[_0xb5fa('0x46')]['id'][_0xb5fa('0x76')]())[_0xb5fa('0x3c')](_0xb5fa('0x7b')))[_0xb5fa('0x7c')](_0xb5fa('0x69')))['toString']();return db['sequelize'][_0xb5fa('0x33')](_0x1a0255);}return[];})['then'](respondWithResult(_0x391412,null))['catch'](handleError(_0x391412,null));};exports[_0xb5fa('0x83')]=function(_0x27dbe8,_0x2faf23,_0x4d607d){return db[_0xb5fa('0x84')][_0xb5fa('0x85')]({'where':{'VoiceQueueId':_0x27dbe8[_0xb5fa('0x4d')]['VoiceQueueId'],'CampaignId':_0x27dbe8[_0xb5fa('0x4d')][_0xb5fa('0x7f')],'ContactId':_0x27dbe8['body'][_0xb5fa('0x69')]}})[_0xb5fa('0x43')](handleEntityNotFound(_0x2faf23,null))[_0xb5fa('0x43')](function(_0xf15d5c){if(_0xf15d5c){return _0xf15d5c;}return null;})[_0xb5fa('0x43')](respondWithResult(_0x2faf23,null))[_0xb5fa('0x4b')](handleError(_0x2faf23,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x99d5=['path','rimraf','../../config/environment','exports','define','cm_hopper_final','calleridnum','uniqueid','lodash','util','../../config/logger','api','moment','request-promise'];(function(_0x106a72,_0x955fb){var _0x74d4fd=function(_0x29b8b7){while(--_0x29b8b7){_0x106a72['push'](_0x106a72['shift']());}};_0x74d4fd(++_0x955fb);}(_0x99d5,0xf6));var _0x599d=function(_0x201672,_0x4bc111){_0x201672=_0x201672-0x0;var _0x4618b4=_0x99d5[_0x201672];return _0x4618b4;};'use strict';var _=require(_0x599d('0x0'));var util=require(_0x599d('0x1'));var logger=require(_0x599d('0x2'))(_0x599d('0x3'));var moment=require(_0x599d('0x4'));var BPromise=require('bluebird');var rp=require(_0x599d('0x5'));var fs=require('fs');var path=require(_0x599d('0x6'));var rimraf=require(_0x599d('0x7'));var config=require(_0x599d('0x8'));var attributes=require('./cmHopperFinal.attributes');module[_0x599d('0x9')]=function(_0x2f3c2f,_0x52a2aa){return _0x2f3c2f[_0x599d('0xa')]('CmHopperFinal',attributes,{'tableName':_0x599d('0xb'),'paranoid':![],'indexes':[{'name':_0x599d('0xc'),'fields':[_0x599d('0xc')]},{'name':_0x599d('0xd'),'fields':[_0x599d('0xd')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xe0c7=['moment','request-promise','path','../../config/environment','./cmHopperFinal.attributes','exports','define','uniqueid','lodash','util','../../config/logger','api'];(function(_0x4704dc,_0x575a5f){var _0x254d81=function(_0x3b135d){while(--_0x3b135d){_0x4704dc['push'](_0x4704dc['shift']());}};_0x254d81(++_0x575a5f);}(_0xe0c7,0x11c));var _0x7e0c=function(_0x2478df,_0x4f96ed){_0x2478df=_0x2478df-0x0;var _0x396975=_0xe0c7[_0x2478df];return _0x396975;};'use strict';var _=require(_0x7e0c('0x0'));var util=require(_0x7e0c('0x1'));var logger=require(_0x7e0c('0x2'))(_0x7e0c('0x3'));var moment=require(_0x7e0c('0x4'));var BPromise=require('bluebird');var rp=require(_0x7e0c('0x5'));var fs=require('fs');var path=require(_0x7e0c('0x6'));var rimraf=require('rimraf');var config=require(_0x7e0c('0x7'));var attributes=require(_0x7e0c('0x8'));module[_0x7e0c('0x9')]=function(_0x5062ca,_0x554cf3){return _0x5062ca[_0x7e0c('0xa')]('CmHopperFinal',attributes,{'tableName':'cm_hopper_final','paranoid':![],'indexes':[{'name':'calleridnum','fields':['calleridnum']},{'name':_0x7e0c('0xb'),'fields':[_0x7e0c('0xb')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb10b=['debug','lodash','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','then','info','CmHopperFinal,\x20%s,\x20%s','CmHopperFinal,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','CreateCmHopperFinal','CmHopperFinal','create','options','raw'];(function(_0x49fcad,_0x1929ee){var _0x5313d0=function(_0x196f95){while(--_0x196f95){_0x49fcad['push'](_0x49fcad['shift']());}};_0x5313d0(++_0x1929ee);}(_0xb10b,0x12a));var _0xbb10=function(_0x49d7c8,_0x52d9a3){_0x49d7c8=_0x49d7c8-0x0;var _0x450089=_0xb10b[_0x49d7c8];return _0x450089;};'use strict';var _=require(_0xbb10('0x0'));var util=require('util');var moment=require(_0xbb10('0x1'));var BPromise=require(_0xbb10('0x2'));var rs=require(_0xbb10('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xbb10('0x4'))['db'];var utils=require(_0xbb10('0x5'));var logger=require(_0xbb10('0x6'))(_0xbb10('0x7'));var config=require(_0xbb10('0x8'));var jayson=require(_0xbb10('0x9'));var client=jayson['client'][_0xbb10('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x3cdd53,_0x513741,_0x1b9e94){return new BPromise(function(_0x3fb675,_0x21370f){return client[_0xbb10('0xb')](_0x3cdd53,_0x1b9e94)[_0xbb10('0xc')](function(_0x1ce33e){logger[_0xbb10('0xd')](_0xbb10('0xe'),_0x513741,'request\x20sent');logger['debug'](_0xbb10('0xf'),_0x513741,_0xbb10('0x10'),JSON[_0xbb10('0x11')](_0x1ce33e));if(_0x1ce33e['error']){if(_0x1ce33e[_0xbb10('0x12')]['code']===0x1f4){logger[_0xbb10('0x12')](_0xbb10('0xe'),_0x513741,_0x1ce33e[_0xbb10('0x12')][_0xbb10('0x13')]);return _0x21370f(_0x1ce33e[_0xbb10('0x12')][_0xbb10('0x13')]);}logger['error'](_0xbb10('0xe'),_0x513741,_0x1ce33e[_0xbb10('0x12')][_0xbb10('0x13')]);return _0x3fb675(_0x1ce33e[_0xbb10('0x12')][_0xbb10('0x13')]);}else{logger[_0xbb10('0xd')](_0xbb10('0xe'),_0x513741,_0xbb10('0x10'));_0x3fb675(_0x1ce33e[_0xbb10('0x14')][_0xbb10('0x13')]);}})['catch'](function(_0x2eca0f){logger[_0xbb10('0x12')](_0xbb10('0xe'),_0x513741,_0x2eca0f);_0x21370f(_0x2eca0f);});});}exports[_0xbb10('0x15')]=function(_0x378da8){var _0x1682a4=this;return new Promise(function(_0x575cca,_0x30efc6){return db[_0xbb10('0x16')][_0xbb10('0x17')](_0x378da8['body'],{'raw':_0x378da8[_0xbb10('0x18')]?_0x378da8[_0xbb10('0x18')][_0xbb10('0x19')]===undefined?!![]:![]:!![]})[_0xbb10('0xc')](function(_0xdf237d){logger[_0xbb10('0xd')]('CreateCmHopperFinal',_0x378da8);logger[_0xbb10('0x1a')](_0xbb10('0x15'),_0x378da8,JSON['stringify'](_0xdf237d));_0x575cca(_0xdf237d);})['catch'](function(_0x8e2b97){logger[_0xbb10('0x12')](_0xbb10('0x15'),_0x8e2b97[_0xbb10('0x13')],_0x378da8);_0x30efc6(_0x1682a4[_0xbb10('0x12')](0x1f4,_0x8e2b97[_0xbb10('0x13')]));});});};
\ No newline at end of file
+var _0x7a54=['../../config/environment','jayson/promise','http','info','CmHopperFinal,\x20%s,\x20%s','debug','stringify','error','code','message','request\x20sent','result','catch','CmHopperFinal','create','body','options','raw','CreateCmHopperFinal','lodash','util','moment','randomstring','ioredis','../../config/utils','../../config/logger','rpc'];(function(_0x4e50dc,_0x2e720f){var _0x17e9b4=function(_0x3017ae){while(--_0x3017ae){_0x4e50dc['push'](_0x4e50dc['shift']());}};_0x17e9b4(++_0x2e720f);}(_0x7a54,0x106));var _0x47a5=function(_0x3e38dc,_0x3cdccc){_0x3e38dc=_0x3e38dc-0x0;var _0x447d5a=_0x7a54[_0x3e38dc];return _0x447d5a;};'use strict';var _=require(_0x47a5('0x0'));var util=require(_0x47a5('0x1'));var moment=require(_0x47a5('0x2'));var BPromise=require('bluebird');var rs=require(_0x47a5('0x3'));var fs=require('fs');var Redis=require(_0x47a5('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x47a5('0x5'));var logger=require(_0x47a5('0x6'))(_0x47a5('0x7'));var config=require(_0x47a5('0x8'));var jayson=require(_0x47a5('0x9'));var client=jayson['client'][_0x47a5('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x59199c,_0x343372,_0x30e405){return new BPromise(function(_0x506eda,_0x194fb0){return client['request'](_0x59199c,_0x30e405)['then'](function(_0x582352){logger[_0x47a5('0xb')](_0x47a5('0xc'),_0x343372,'request\x20sent');logger[_0x47a5('0xd')]('CmHopperFinal,\x20%s,\x20%s,\x20%s',_0x343372,'request\x20sent',JSON[_0x47a5('0xe')](_0x582352));if(_0x582352[_0x47a5('0xf')]){if(_0x582352[_0x47a5('0xf')][_0x47a5('0x10')]===0x1f4){logger[_0x47a5('0xf')](_0x47a5('0xc'),_0x343372,_0x582352[_0x47a5('0xf')]['message']);return _0x194fb0(_0x582352[_0x47a5('0xf')][_0x47a5('0x11')]);}logger[_0x47a5('0xf')](_0x47a5('0xc'),_0x343372,_0x582352[_0x47a5('0xf')][_0x47a5('0x11')]);return _0x506eda(_0x582352[_0x47a5('0xf')][_0x47a5('0x11')]);}else{logger['info'](_0x47a5('0xc'),_0x343372,_0x47a5('0x12'));_0x506eda(_0x582352[_0x47a5('0x13')][_0x47a5('0x11')]);}})[_0x47a5('0x14')](function(_0x574af6){logger['error'](_0x47a5('0xc'),_0x343372,_0x574af6);_0x194fb0(_0x574af6);});});}exports['CreateCmHopperFinal']=function(_0x5247fd){var _0x423a81=this;return new Promise(function(_0xaf70a6,_0x2ce454){return db[_0x47a5('0x15')][_0x47a5('0x16')](_0x5247fd[_0x47a5('0x17')],{'raw':_0x5247fd[_0x47a5('0x18')]?_0x5247fd[_0x47a5('0x18')][_0x47a5('0x19')]===undefined?!![]:![]:!![]})['then'](function(_0x1570bc){logger[_0x47a5('0xb')]('CreateCmHopperFinal',_0x5247fd);logger[_0x47a5('0xd')](_0x47a5('0x1a'),_0x5247fd,JSON[_0x47a5('0xe')](_0x1570bc));_0xaf70a6(_0x1570bc);})['catch'](function(_0xb8ae6c){logger[_0x47a5('0xf')](_0x47a5('0x1a'),_0xb8ae6c[_0x47a5('0x11')],_0x5247fd);_0x2ce454(_0x423a81['error'](0x1f4,_0xb8ae6c[_0x47a5('0x11')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3e82=['/checkContactHopper','put','/:id','update','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./cmHopperFinal.controller','get','isAuthenticated','/describe','describe','countContactsQueueCampaignHopperFinal','countContactsIvrCampaignHopperFinal','post','/voice/queue/moveContacts/:id','moveContactsQueueCampaignHopperFinal','/voice/campaign/moveContacts/:id','moveContactsIvrCampaignHopperFinal'];(function(_0x1726e1,_0x1cc1f4){var _0x44eccc=function(_0x29d671){while(--_0x29d671){_0x1726e1['push'](_0x1726e1['shift']());}};_0x44eccc(++_0x1cc1f4);}(_0x3e82,0x18a));var _0x23e8=function(_0xfae23b,_0x2be4ba){_0xfae23b=_0xfae23b-0x0;var _0x200640=_0x3e82[_0xfae23b];return _0x200640;};'use strict';var multer=require(_0x23e8('0x0'));var util=require(_0x23e8('0x1'));var path=require(_0x23e8('0x2'));var timeout=require(_0x23e8('0x3'));var express=require(_0x23e8('0x4'));var router=express[_0x23e8('0x5')]();var fs_extra=require(_0x23e8('0x6'));var auth=require(_0x23e8('0x7'));var interaction=require(_0x23e8('0x8'));var config=require(_0x23e8('0x9'));var controller=require(_0x23e8('0xa'));router[_0x23e8('0xb')]('/',auth[_0x23e8('0xc')](),controller['index']);router[_0x23e8('0xb')](_0x23e8('0xd'),auth[_0x23e8('0xc')](),controller[_0x23e8('0xe')]);router[_0x23e8('0xb')]('/:id',auth[_0x23e8('0xc')](),controller['show']);router[_0x23e8('0xb')]('/voice/queue/countAttributes/:id',auth[_0x23e8('0xc')](),controller[_0x23e8('0xf')]);router[_0x23e8('0xb')]('/campaign/countAttributes/:id',auth[_0x23e8('0xc')](),controller[_0x23e8('0x10')]);router[_0x23e8('0x11')](_0x23e8('0x12'),auth[_0x23e8('0xc')](),controller[_0x23e8('0x13')]);router[_0x23e8('0x11')](_0x23e8('0x14'),auth[_0x23e8('0xc')](),controller[_0x23e8('0x15')]);router[_0x23e8('0x11')](_0x23e8('0x16'),auth[_0x23e8('0xc')](),controller['checkContactHopper']);router[_0x23e8('0x17')](_0x23e8('0x18'),auth[_0x23e8('0xc')](),controller[_0x23e8('0x19')]);module['exports']=router;
\ No newline at end of file
+var _0x70a8=['get','isAuthenticated','index','describe','/:id','show','/voice/queue/countAttributes/:id','countContactsQueueCampaignHopperFinal','moveContactsQueueCampaignHopperFinal','post','/voice/campaign/moveContacts/:id','moveContactsIvrCampaignHopperFinal','/checkContactHopper','checkContactHopper','put','update','path','connect-timeout','Router','../../components/auth/service','../../config/environment','./cmHopperFinal.controller'];(function(_0x159152,_0x174251){var _0x50a4aa=function(_0x1a46f7){while(--_0x1a46f7){_0x159152['push'](_0x159152['shift']());}};_0x50a4aa(++_0x174251);}(_0x70a8,0x1f4));var _0x870a=function(_0x3b380d,_0x4bf247){_0x3b380d=_0x3b380d-0x0;var _0x54502b=_0x70a8[_0x3b380d];return _0x54502b;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x870a('0x0'));var timeout=require(_0x870a('0x1'));var express=require('express');var router=express[_0x870a('0x2')]();var fs_extra=require('fs-extra');var auth=require(_0x870a('0x3'));var interaction=require('../../components/interaction/service');var config=require(_0x870a('0x4'));var controller=require(_0x870a('0x5'));router[_0x870a('0x6')]('/',auth[_0x870a('0x7')](),controller[_0x870a('0x8')]);router[_0x870a('0x6')]('/describe',auth[_0x870a('0x7')](),controller[_0x870a('0x9')]);router['get'](_0x870a('0xa'),auth['isAuthenticated'](),controller[_0x870a('0xb')]);router['get'](_0x870a('0xc'),auth[_0x870a('0x7')](),controller[_0x870a('0xd')]);router[_0x870a('0x6')]('/campaign/countAttributes/:id',auth[_0x870a('0x7')](),controller['countContactsIvrCampaignHopperFinal']);router['post']('/voice/queue/moveContacts/:id',auth[_0x870a('0x7')](),controller[_0x870a('0xe')]);router[_0x870a('0xf')](_0x870a('0x10'),auth['isAuthenticated'](),controller[_0x870a('0x11')]);router[_0x870a('0xf')](_0x870a('0x12'),auth[_0x870a('0x7')](),controller[_0x870a('0x13')]);router[_0x870a('0x14')]('/:id',auth[_0x870a('0x7')](),controller[_0x870a('0x15')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa2ad=['exports','DATE','INTEGER','STRING','BOOLEAN','sequelize'];(function(_0x4ccf7a,_0x14ff77){var _0x5eac69=function(_0x57bfa9){while(--_0x57bfa9){_0x4ccf7a['push'](_0x4ccf7a['shift']());}};_0x5eac69(++_0x14ff77);}(_0xa2ad,0xd7));var _0xda2a=function(_0x8a969d,_0x339d9f){_0x8a969d=_0x8a969d-0x0;var _0x1d8dc7=_0xa2ad[_0x8a969d];return _0x1d8dc7;};'use strict';var Sequelize=require(_0xda2a('0x0'));module[_0xda2a('0x1')]={'state':{'type':Sequelize['INTEGER'](0x2)},'statedesc':{'type':Sequelize['STRING']},'scheduledat':{'type':Sequelize[_0xda2a('0x2')]},'countbusyretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countcongestionretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countnoanswerretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countglobal':{'type':Sequelize[_0xda2a('0x3')],'defaultValue':0x0},'uniqueid':{'type':Sequelize['STRING']},'originatecalleridnum':{'type':Sequelize['STRING']},'originatecalleridname':{'type':Sequelize[_0xda2a('0x4')]},'calleridnum':{'type':Sequelize[_0xda2a('0x4')]},'calleridname':{'type':Sequelize['STRING']},'starttime':{'type':Sequelize[_0xda2a('0x2')]},'responsetime':{'type':Sequelize[_0xda2a('0x2')]},'answertime':{'type':Sequelize[_0xda2a('0x2')]},'droptime':{'type':Sequelize[_0xda2a('0x2')]},'endtime':{'type':Sequelize[_0xda2a('0x2')]},'ringtime':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'holdtime':{'type':Sequelize[_0xda2a('0x3')],'defaultValue':0x0},'talktime':{'type':Sequelize[_0xda2a('0x3')],'defaultValue':0x0},'followuptime':{'type':Sequelize[_0xda2a('0x3')],'defaultValue':0x0},'dropreason':{'type':Sequelize[_0xda2a('0x4')]},'campaign':{'type':Sequelize[_0xda2a('0x4')]},'campaigntype':{'type':Sequelize[_0xda2a('0x4')]},'membername':{'type':Sequelize[_0xda2a('0x4')]},'reason':{'type':Sequelize['STRING']},'amd':{'type':Sequelize[_0xda2a('0x5')],'defaultValue':![]},'fax':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'callback':{'type':Sequelize[_0xda2a('0x5')],'defaultValue':![]},'callbackuniqueid':{'type':Sequelize[_0xda2a('0x4')],'defaultValue':null},'callbackat':{'type':Sequelize[_0xda2a('0x2')]},'recallme':{'type':Sequelize[_0xda2a('0x5')],'defaultValue':![]},'editedat':{'type':Sequelize[_0xda2a('0x2')]},'edited':{'type':Sequelize[_0xda2a('0x5')],'defaultValue':![]},'countnosuchnumberretry':{'type':Sequelize[_0xda2a('0x3')],'defaultValue':0x0},'countdropretry':{'type':Sequelize[_0xda2a('0x3')],'defaultValue':0x0},'countabandonedretry':{'type':Sequelize[_0xda2a('0x3')],'defaultValue':0x0},'countmachineretry':{'type':Sequelize[_0xda2a('0x3')],'defaultValue':0x0},'countagentrejectretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0}};
\ No newline at end of file
+var _0x794e=['exports','INTEGER','STRING','DATE','BOOLEAN','sequelize'];(function(_0x472dff,_0xe4ed01){var _0x2989ed=function(_0x1ac774){while(--_0x1ac774){_0x472dff['push'](_0x472dff['shift']());}};_0x2989ed(++_0xe4ed01);}(_0x794e,0xf5));var _0xe794=function(_0x45783c,_0x49c56d){_0x45783c=_0x45783c-0x0;var _0x1161da=_0x794e[_0x45783c];return _0x1161da;};'use strict';var Sequelize=require(_0xe794('0x0'));module[_0xe794('0x1')]={'state':{'type':Sequelize[_0xe794('0x2')](0x2)},'statedesc':{'type':Sequelize[_0xe794('0x3')]},'scheduledat':{'type':Sequelize[_0xe794('0x4')]},'countbusyretry':{'type':Sequelize[_0xe794('0x2')],'defaultValue':0x0},'countcongestionretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countnoanswerretry':{'type':Sequelize[_0xe794('0x2')],'defaultValue':0x0},'countglobal':{'type':Sequelize[_0xe794('0x2')],'defaultValue':0x0},'uniqueid':{'type':Sequelize['STRING']},'originatecalleridnum':{'type':Sequelize[_0xe794('0x3')]},'originatecalleridname':{'type':Sequelize['STRING']},'calleridnum':{'type':Sequelize[_0xe794('0x3')]},'calleridname':{'type':Sequelize[_0xe794('0x3')]},'starttime':{'type':Sequelize[_0xe794('0x4')]},'responsetime':{'type':Sequelize[_0xe794('0x4')]},'answertime':{'type':Sequelize[_0xe794('0x4')]},'droptime':{'type':Sequelize[_0xe794('0x4')]},'endtime':{'type':Sequelize[_0xe794('0x4')]},'ringtime':{'type':Sequelize[_0xe794('0x2')],'defaultValue':0x0},'holdtime':{'type':Sequelize[_0xe794('0x2')],'defaultValue':0x0},'talktime':{'type':Sequelize[_0xe794('0x2')],'defaultValue':0x0},'followuptime':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'dropreason':{'type':Sequelize[_0xe794('0x3')]},'campaign':{'type':Sequelize['STRING']},'campaigntype':{'type':Sequelize[_0xe794('0x3')]},'membername':{'type':Sequelize['STRING']},'reason':{'type':Sequelize[_0xe794('0x3')]},'amd':{'type':Sequelize[_0xe794('0x5')],'defaultValue':![]},'fax':{'type':Sequelize[_0xe794('0x5')],'defaultValue':![]},'callback':{'type':Sequelize[_0xe794('0x5')],'defaultValue':![]},'callbackuniqueid':{'type':Sequelize[_0xe794('0x3')],'defaultValue':null},'callbackat':{'type':Sequelize['DATE']},'recallme':{'type':Sequelize[_0xe794('0x5')],'defaultValue':![]},'editedat':{'type':Sequelize[_0xe794('0x4')]},'edited':{'type':Sequelize[_0xe794('0x5')],'defaultValue':![]},'countnosuchnumberretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countdropretry':{'type':Sequelize[_0xe794('0x2')],'defaultValue':0x0},'countabandonedretry':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'countmachineretry':{'type':Sequelize[_0xe794('0x2')],'defaultValue':0x0},'countagentrejectretry':{'type':Sequelize[_0xe794('0x2')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0a29=['set','Content-Range','reject','save','update','then','destroy','status','error','name','index','map','CmHopperHistory','rawAttributes','fieldName','type','query','keys','intersection','model','attributes','fields','nolimit','order','sort','where','filters','pick','merge','VIRTUAL','includeAll','include','findAll','rows','catch','show','params','length','create','describe','body','uniqueid','find','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','json','offset','undefined','limit','count'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x0a29,0x109));var _0x90a2=function(_0x5b173f,_0x337757){_0x5b173f=_0x5b173f-0x0;var _0x5ac6df=_0x0a29[_0x5b173f];return _0x5ac6df;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x90a2('0x0'));var zipdir=require(_0x90a2('0x1'));var jsonpatch=require(_0x90a2('0x2'));var rp=require(_0x90a2('0x3'));var moment=require(_0x90a2('0x4'));var BPromise=require(_0x90a2('0x5'));var Mustache=require(_0x90a2('0x6'));var util=require(_0x90a2('0x7'));var path=require('path');var sox=require('sox');var csv=require(_0x90a2('0x8'));var ejs=require(_0x90a2('0x9'));var fs=require('fs');var fs_extra=require(_0x90a2('0xa'));var _=require('lodash');var squel=require(_0x90a2('0xb'));var crypto=require(_0x90a2('0xc'));var jsforce=require(_0x90a2('0xd'));var deskjs=require(_0x90a2('0xe'));var toCsv=require(_0x90a2('0x8'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x90a2('0xf'));var authService=require(_0x90a2('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x90a2('0x11'));var hardwareService=require(_0x90a2('0x12'));var logger=require(_0x90a2('0x13'))(_0x90a2('0x14'));var utils=require(_0x90a2('0x15'));var config=require(_0x90a2('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0x90a2('0x17'))['db'];function respondWithStatusCode(_0x42cceb,_0x5b73f6){_0x5b73f6=_0x5b73f6||0xcc;return function(_0x2f63f1){if(_0x2f63f1){return _0x42cceb[_0x90a2('0x18')](_0x5b73f6);}return _0x42cceb['status'](_0x5b73f6)[_0x90a2('0x19')]();};}function respondWithResult(_0x4fdc0a,_0x2e71ed){_0x2e71ed=_0x2e71ed||0xc8;return function(_0x12c142){if(_0x12c142){return _0x4fdc0a['status'](_0x2e71ed)[_0x90a2('0x1a')](_0x12c142);}};}function respondWithFilteredResult(_0x3fbb3f,_0x12de80){return function(_0x1ab821){if(_0x1ab821){var _0x388aa7=typeof _0x12de80[_0x90a2('0x1b')]===_0x90a2('0x1c')&&typeof _0x12de80[_0x90a2('0x1d')]===_0x90a2('0x1c');var _0x510e45=_0x1ab821[_0x90a2('0x1e')];var _0xb3edaa=_0x388aa7?0x0:_0x12de80[_0x90a2('0x1b')];var _0x557343=_0x388aa7?_0x1ab821['count']:_0x12de80[_0x90a2('0x1b')]+_0x12de80['limit'];var _0xd3e925;if(_0x557343>=_0x510e45){_0x557343=_0x510e45;_0xd3e925=0xc8;}else{_0xd3e925=0xce;}_0x3fbb3f['status'](_0xd3e925);return _0x3fbb3f[_0x90a2('0x1f')](_0x90a2('0x20'),_0xb3edaa+'-'+_0x557343+'/'+_0x510e45)['json'](_0x1ab821);}return null;};}function patchUpdates(_0x39c805){return function(_0x208881){try{jsonpatch['apply'](_0x208881,_0x39c805,!![]);}catch(_0xe8f15){return BPromise[_0x90a2('0x21')](_0xe8f15);}return _0x208881[_0x90a2('0x22')]();};}function saveUpdates(_0x1a3e91,_0x21bc2e){return function(_0x46014f){if(_0x46014f){return _0x46014f[_0x90a2('0x23')](_0x1a3e91)[_0x90a2('0x24')](function(_0x2ac726){return _0x2ac726;});}return null;};}function removeEntity(_0x157020,_0x1e54cc){return function(_0x1d4627){if(_0x1d4627){return _0x1d4627[_0x90a2('0x25')]()[_0x90a2('0x24')](function(){_0x157020[_0x90a2('0x26')](0xcc)[_0x90a2('0x19')]();});}};}function handleEntityNotFound(_0x509d9c,_0x26bfd8){return function(_0x5830ec){if(!_0x5830ec){_0x509d9c[_0x90a2('0x18')](0x194);}return _0x5830ec;};}function handleError(_0x3d825d,_0x2c586f){_0x2c586f=_0x2c586f||0x1f4;return function(_0x160fc5){logger[_0x90a2('0x27')](_0x160fc5['stack']);if(_0x160fc5['name']){delete _0x160fc5[_0x90a2('0x28')];}_0x3d825d['status'](_0x2c586f)['send'](_0x160fc5);};}exports[_0x90a2('0x29')]=function(_0xa81c9d,_0x257b02){var _0x305e04={},_0x1994d2={},_0x800d51={'count':0x0,'rows':[]};var _0x6c2880=_[_0x90a2('0x2a')](db[_0x90a2('0x2b')][_0x90a2('0x2c')],function(_0x5dc256){return{'name':_0x5dc256[_0x90a2('0x2d')],'type':_0x5dc256[_0x90a2('0x2e')]['key']};});_0x1994d2['model']=_[_0x90a2('0x2a')](_0x6c2880,_0x90a2('0x28'));_0x1994d2[_0x90a2('0x2f')]=_[_0x90a2('0x30')](_0xa81c9d[_0x90a2('0x2f')]);_0x1994d2['filters']=_[_0x90a2('0x31')](_0x1994d2[_0x90a2('0x32')],_0x1994d2[_0x90a2('0x2f')]);_0x305e04[_0x90a2('0x33')]=_[_0x90a2('0x31')](_0x1994d2[_0x90a2('0x32')],qs[_0x90a2('0x34')](_0xa81c9d['query'][_0x90a2('0x34')]));_0x305e04['attributes']=_0x305e04['attributes']['length']?_0x305e04['attributes']:_0x1994d2['model'];if(!_0xa81c9d[_0x90a2('0x2f')]['hasOwnProperty'](_0x90a2('0x35'))){_0x305e04[_0x90a2('0x1d')]=qs['limit'](_0xa81c9d[_0x90a2('0x2f')][_0x90a2('0x1d')]);_0x305e04['offset']=qs[_0x90a2('0x1b')](_0xa81c9d[_0x90a2('0x2f')]['offset']);}_0x305e04[_0x90a2('0x36')]=qs['sort'](_0xa81c9d['query'][_0x90a2('0x37')]);_0x305e04[_0x90a2('0x38')]=qs[_0x90a2('0x39')](_[_0x90a2('0x3a')](_0xa81c9d[_0x90a2('0x2f')],_0x1994d2['filters']),_0x6c2880);if(_0xa81c9d[_0x90a2('0x2f')]['filter']){_0x305e04[_0x90a2('0x38')]=_[_0x90a2('0x3b')](_0x305e04[_0x90a2('0x38')],{'$or':_[_0x90a2('0x2a')](_0x6c2880,function(_0x186468){if(_0x186468[_0x90a2('0x2e')]!==_0x90a2('0x3c')){var _0x17b1ea={};_0x17b1ea[_0x186468['name']]={'$like':'%'+_0xa81c9d[_0x90a2('0x2f')]['filter']+'%'};return _0x17b1ea;}})});}_0x305e04=_[_0x90a2('0x3b')]({},_0x305e04,_0xa81c9d['options']);var _0x6f5c53={'where':_0x305e04[_0x90a2('0x38')]};return db[_0x90a2('0x2b')][_0x90a2('0x1e')](_0x6f5c53)['then'](function(_0x55da40){_0x800d51[_0x90a2('0x1e')]=_0x55da40;if(_0xa81c9d['query'][_0x90a2('0x3d')]){_0x305e04[_0x90a2('0x3e')]=[{'all':!![]}];}return db[_0x90a2('0x2b')][_0x90a2('0x3f')](_0x305e04);})['then'](function(_0x3dc051){_0x800d51[_0x90a2('0x40')]=_0x3dc051;return _0x800d51;})[_0x90a2('0x24')](respondWithFilteredResult(_0x257b02,_0x305e04))[_0x90a2('0x41')](handleError(_0x257b02,null));};exports[_0x90a2('0x42')]=function(_0x211e64,_0xc4ea35){var _0x5b54e0={'raw':!![],'where':{'id':_0x211e64[_0x90a2('0x43')]['id']}},_0x313ef3={};_0x313ef3[_0x90a2('0x32')]=_[_0x90a2('0x30')](db[_0x90a2('0x2b')][_0x90a2('0x2c')]);_0x313ef3[_0x90a2('0x2f')]=_[_0x90a2('0x30')](_0x211e64[_0x90a2('0x2f')]);_0x313ef3[_0x90a2('0x39')]=_[_0x90a2('0x31')](_0x313ef3[_0x90a2('0x32')],_0x313ef3[_0x90a2('0x2f')]);_0x5b54e0['attributes']=_['intersection'](_0x313ef3[_0x90a2('0x32')],qs['fields'](_0x211e64[_0x90a2('0x2f')][_0x90a2('0x34')]));_0x5b54e0[_0x90a2('0x33')]=_0x5b54e0[_0x90a2('0x33')][_0x90a2('0x44')]?_0x5b54e0[_0x90a2('0x33')]:_0x313ef3[_0x90a2('0x32')];if(_0x211e64[_0x90a2('0x2f')][_0x90a2('0x3d')]){_0x5b54e0[_0x90a2('0x3e')]=[{'all':!![]}];}_0x5b54e0=_[_0x90a2('0x3b')]({},_0x5b54e0,_0x211e64['options']);return db[_0x90a2('0x2b')]['find'](_0x5b54e0)[_0x90a2('0x24')](handleEntityNotFound(_0xc4ea35,null))[_0x90a2('0x24')](respondWithResult(_0xc4ea35,null))[_0x90a2('0x41')](handleError(_0xc4ea35,null));};exports[_0x90a2('0x45')]=function(_0x4f5a9b,_0x41de8d){return db['CmHopperHistory'][_0x90a2('0x45')](_0x4f5a9b['body'],{})[_0x90a2('0x24')](respondWithResult(_0x41de8d,0xc9))[_0x90a2('0x41')](handleError(_0x41de8d,null));};exports['describe']=function(_0x1aa9b0,_0x2a8dab){return db[_0x90a2('0x2b')][_0x90a2('0x46')]()[_0x90a2('0x24')](respondWithResult(_0x2a8dab,null))[_0x90a2('0x41')](handleError(_0x2a8dab,null));};exports[_0x90a2('0x23')]=function(_0x2a4e07,_0x51dbb1){if(_0x2a4e07[_0x90a2('0x47')][_0x90a2('0x48')]){delete _0x2a4e07['body']['uniqueid'];}return db['CmHopperHistory'][_0x90a2('0x49')]({'where':{'uniqueid':_0x2a4e07['params']['id']}})[_0x90a2('0x24')](handleEntityNotFound(_0x51dbb1,null))['then'](saveUpdates(_0x2a4e07[_0x90a2('0x47')],null))[_0x90a2('0x24')](respondWithResult(_0x51dbb1,null))[_0x90a2('0x41')](handleError(_0x51dbb1,null));};
\ No newline at end of file
+var _0x0cc7=['fields','length','hasOwnProperty','order','sort','where','merge','VIRTUAL','filter','options','includeAll','include','catch','params','find','create','body','describe','uniqueid','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','squel','crypto','jsforce','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','reject','save','update','then','destroy','error','name','send','index','CmHopperHistory','rawAttributes','fieldName','type','key','map','keys','query','filters','intersection','model','attributes'];(function(_0x2648a6,_0x2ef9a8){var _0x477807=function(_0x7979ae){while(--_0x7979ae){_0x2648a6['push'](_0x2648a6['shift']());}};_0x477807(++_0x2ef9a8);}(_0x0cc7,0xf1));var _0x70cc=function(_0x119d5a,_0x19b457){_0x119d5a=_0x119d5a-0x0;var _0x15bff4=_0x0cc7[_0x119d5a];return _0x15bff4;};'use strict';var emlformat=require(_0x70cc('0x0'));var rimraf=require(_0x70cc('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x70cc('0x2'));var rp=require('request-promise');var moment=require(_0x70cc('0x3'));var BPromise=require(_0x70cc('0x4'));var Mustache=require(_0x70cc('0x5'));var util=require(_0x70cc('0x6'));var path=require(_0x70cc('0x7'));var sox=require(_0x70cc('0x8'));var csv=require(_0x70cc('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x70cc('0xa'));var _=require('lodash');var squel=require(_0x70cc('0xb'));var crypto=require(_0x70cc('0xc'));var jsforce=require(_0x70cc('0xd'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x70cc('0xe'));var Redis=require(_0x70cc('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x70cc('0x10'));var as=require(_0x70cc('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x70cc('0x12'))(_0x70cc('0x13'));var utils=require(_0x70cc('0x14'));var config=require(_0x70cc('0x15'));var licenseUtil=require(_0x70cc('0x16'));var db=require(_0x70cc('0x17'))['db'];function respondWithStatusCode(_0x47cb16,_0x546795){_0x546795=_0x546795||0xcc;return function(_0x3a263b){if(_0x3a263b){return _0x47cb16[_0x70cc('0x18')](_0x546795);}return _0x47cb16['status'](_0x546795)[_0x70cc('0x19')]();};}function respondWithResult(_0x509dd3,_0x3ddcc7){_0x3ddcc7=_0x3ddcc7||0xc8;return function(_0x1a3a30){if(_0x1a3a30){return _0x509dd3[_0x70cc('0x1a')](_0x3ddcc7)[_0x70cc('0x1b')](_0x1a3a30);}};}function respondWithFilteredResult(_0x5d4633,_0x1fbcc8){return function(_0x3e8dbf){if(_0x3e8dbf){var _0x66515e=typeof _0x1fbcc8[_0x70cc('0x1c')]===_0x70cc('0x1d')&&typeof _0x1fbcc8[_0x70cc('0x1e')]===_0x70cc('0x1d');var _0x4d9741=_0x3e8dbf[_0x70cc('0x1f')];var _0x35eea2=_0x66515e?0x0:_0x1fbcc8[_0x70cc('0x1c')];var _0x3060a7=_0x66515e?_0x3e8dbf[_0x70cc('0x1f')]:_0x1fbcc8['offset']+_0x1fbcc8[_0x70cc('0x1e')];var _0x418e91;if(_0x3060a7>=_0x4d9741){_0x3060a7=_0x4d9741;_0x418e91=0xc8;}else{_0x418e91=0xce;}_0x5d4633[_0x70cc('0x1a')](_0x418e91);return _0x5d4633[_0x70cc('0x20')](_0x70cc('0x21'),_0x35eea2+'-'+_0x3060a7+'/'+_0x4d9741)['json'](_0x3e8dbf);}return null;};}function patchUpdates(_0x5aa4f3){return function(_0x287730){try{jsonpatch['apply'](_0x287730,_0x5aa4f3,!![]);}catch(_0x55f559){return BPromise[_0x70cc('0x22')](_0x55f559);}return _0x287730[_0x70cc('0x23')]();};}function saveUpdates(_0x1d55e4,_0x5762cf){return function(_0x5110cb){if(_0x5110cb){return _0x5110cb[_0x70cc('0x24')](_0x1d55e4)[_0x70cc('0x25')](function(_0x5a3a02){return _0x5a3a02;});}return null;};}function removeEntity(_0x51795f,_0x31ac9e){return function(_0xbd3fd2){if(_0xbd3fd2){return _0xbd3fd2[_0x70cc('0x26')]()[_0x70cc('0x25')](function(){_0x51795f[_0x70cc('0x1a')](0xcc)[_0x70cc('0x19')]();});}};}function handleEntityNotFound(_0xdaf841,_0x4d0e89){return function(_0xea0ee6){if(!_0xea0ee6){_0xdaf841[_0x70cc('0x18')](0x194);}return _0xea0ee6;};}function handleError(_0x2b27e1,_0xff9c41){_0xff9c41=_0xff9c41||0x1f4;return function(_0x6352bc){logger[_0x70cc('0x27')](_0x6352bc['stack']);if(_0x6352bc[_0x70cc('0x28')]){delete _0x6352bc[_0x70cc('0x28')];}_0x2b27e1[_0x70cc('0x1a')](_0xff9c41)[_0x70cc('0x29')](_0x6352bc);};}exports[_0x70cc('0x2a')]=function(_0x5b9d76,_0x5ead0b){var _0x1431ad={},_0x15292c={},_0x2c3b4f={'count':0x0,'rows':[]};var _0x43549e=_['map'](db[_0x70cc('0x2b')][_0x70cc('0x2c')],function(_0xdedb01){return{'name':_0xdedb01[_0x70cc('0x2d')],'type':_0xdedb01[_0x70cc('0x2e')][_0x70cc('0x2f')]};});_0x15292c['model']=_[_0x70cc('0x30')](_0x43549e,'name');_0x15292c['query']=_[_0x70cc('0x31')](_0x5b9d76[_0x70cc('0x32')]);_0x15292c[_0x70cc('0x33')]=_[_0x70cc('0x34')](_0x15292c[_0x70cc('0x35')],_0x15292c['query']);_0x1431ad[_0x70cc('0x36')]=_['intersection'](_0x15292c[_0x70cc('0x35')],qs[_0x70cc('0x37')](_0x5b9d76[_0x70cc('0x32')]['fields']));_0x1431ad['attributes']=_0x1431ad[_0x70cc('0x36')][_0x70cc('0x38')]?_0x1431ad[_0x70cc('0x36')]:_0x15292c[_0x70cc('0x35')];if(!_0x5b9d76['query'][_0x70cc('0x39')]('nolimit')){_0x1431ad['limit']=qs['limit'](_0x5b9d76[_0x70cc('0x32')]['limit']);_0x1431ad[_0x70cc('0x1c')]=qs[_0x70cc('0x1c')](_0x5b9d76['query'][_0x70cc('0x1c')]);}_0x1431ad[_0x70cc('0x3a')]=qs['sort'](_0x5b9d76[_0x70cc('0x32')][_0x70cc('0x3b')]);_0x1431ad[_0x70cc('0x3c')]=qs['filters'](_['pick'](_0x5b9d76[_0x70cc('0x32')],_0x15292c[_0x70cc('0x33')]),_0x43549e);if(_0x5b9d76[_0x70cc('0x32')]['filter']){_0x1431ad[_0x70cc('0x3c')]=_[_0x70cc('0x3d')](_0x1431ad[_0x70cc('0x3c')],{'$or':_['map'](_0x43549e,function(_0x2e60bf){if(_0x2e60bf['type']!==_0x70cc('0x3e')){var _0x5877d8={};_0x5877d8[_0x2e60bf['name']]={'$like':'%'+_0x5b9d76[_0x70cc('0x32')][_0x70cc('0x3f')]+'%'};return _0x5877d8;}})});}_0x1431ad=_[_0x70cc('0x3d')]({},_0x1431ad,_0x5b9d76[_0x70cc('0x40')]);var _0x5588b6={'where':_0x1431ad[_0x70cc('0x3c')]};return db[_0x70cc('0x2b')][_0x70cc('0x1f')](_0x5588b6)['then'](function(_0x42d0d7){_0x2c3b4f['count']=_0x42d0d7;if(_0x5b9d76[_0x70cc('0x32')][_0x70cc('0x41')]){_0x1431ad[_0x70cc('0x42')]=[{'all':!![]}];}return db[_0x70cc('0x2b')]['findAll'](_0x1431ad);})[_0x70cc('0x25')](function(_0x1fe10a){_0x2c3b4f['rows']=_0x1fe10a;return _0x2c3b4f;})[_0x70cc('0x25')](respondWithFilteredResult(_0x5ead0b,_0x1431ad))[_0x70cc('0x43')](handleError(_0x5ead0b,null));};exports['show']=function(_0x20df83,_0x12f10a){var _0x4e5a00={'raw':!![],'where':{'id':_0x20df83[_0x70cc('0x44')]['id']}},_0x3257da={};_0x3257da[_0x70cc('0x35')]=_[_0x70cc('0x31')](db[_0x70cc('0x2b')][_0x70cc('0x2c')]);_0x3257da[_0x70cc('0x32')]=_[_0x70cc('0x31')](_0x20df83['query']);_0x3257da[_0x70cc('0x33')]=_[_0x70cc('0x34')](_0x3257da[_0x70cc('0x35')],_0x3257da[_0x70cc('0x32')]);_0x4e5a00[_0x70cc('0x36')]=_[_0x70cc('0x34')](_0x3257da['model'],qs[_0x70cc('0x37')](_0x20df83[_0x70cc('0x32')][_0x70cc('0x37')]));_0x4e5a00[_0x70cc('0x36')]=_0x4e5a00[_0x70cc('0x36')]['length']?_0x4e5a00[_0x70cc('0x36')]:_0x3257da['model'];if(_0x20df83['query'][_0x70cc('0x41')]){_0x4e5a00['include']=[{'all':!![]}];}_0x4e5a00=_[_0x70cc('0x3d')]({},_0x4e5a00,_0x20df83[_0x70cc('0x40')]);return db[_0x70cc('0x2b')][_0x70cc('0x45')](_0x4e5a00)[_0x70cc('0x25')](handleEntityNotFound(_0x12f10a,null))['then'](respondWithResult(_0x12f10a,null))[_0x70cc('0x43')](handleError(_0x12f10a,null));};exports[_0x70cc('0x46')]=function(_0x42552a,_0x3580f9){return db[_0x70cc('0x2b')]['create'](_0x42552a[_0x70cc('0x47')],{})[_0x70cc('0x25')](respondWithResult(_0x3580f9,0xc9))[_0x70cc('0x43')](handleError(_0x3580f9,null));};exports[_0x70cc('0x48')]=function(_0x2f2221,_0x5d1ceb){return db[_0x70cc('0x2b')][_0x70cc('0x48')]()[_0x70cc('0x25')](respondWithResult(_0x5d1ceb,null))[_0x70cc('0x43')](handleError(_0x5d1ceb,null));};exports['update']=function(_0x3effb9,_0x506843){if(_0x3effb9[_0x70cc('0x47')][_0x70cc('0x49')]){delete _0x3effb9['body'][_0x70cc('0x49')];}return db['CmHopperHistory'][_0x70cc('0x45')]({'where':{'uniqueid':_0x3effb9[_0x70cc('0x44')]['id']}})[_0x70cc('0x25')](handleEntityNotFound(_0x506843,null))[_0x70cc('0x25')](saveUpdates(_0x3effb9['body'],null))[_0x70cc('0x25')](respondWithResult(_0x506843,null))[_0x70cc('0x43')](handleError(_0x506843,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc5c8=['./cmHopperHistory.attributes','exports','define','CmHopperHistory','cm_hopper_history','endtime','uniqueid','lodash','util','../../config/logger','moment','path','rimraf'];(function(_0x1ba91d,_0x384734){var _0x10fd31=function(_0x4b91b9){while(--_0x4b91b9){_0x1ba91d['push'](_0x1ba91d['shift']());}};_0x10fd31(++_0x384734);}(_0xc5c8,0x118));var _0x8c5c=function(_0x341be9,_0x476e89){_0x341be9=_0x341be9-0x0;var _0x584e20=_0xc5c8[_0x341be9];return _0x584e20;};'use strict';var _=require(_0x8c5c('0x0'));var util=require(_0x8c5c('0x1'));var logger=require(_0x8c5c('0x2'))('api');var moment=require(_0x8c5c('0x3'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x8c5c('0x4'));var rimraf=require(_0x8c5c('0x5'));var config=require('../../config/environment');var attributes=require(_0x8c5c('0x6'));module[_0x8c5c('0x7')]=function(_0x390b86,_0x2e297d){return _0x390b86[_0x8c5c('0x8')](_0x8c5c('0x9'),attributes,{'tableName':_0x8c5c('0xa'),'paranoid':![],'indexes':[{'name':_0x8c5c('0xb'),'fields':[_0x8c5c('0xb')]},{'name':_0x8c5c('0xc'),'fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
+var _0xaf5a=['./cmHopperHistory.attributes','exports','cm_hopper_history','endtime','uniqueid','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf'];(function(_0x5a974e,_0x10e22a){var _0x437da2=function(_0x15b187){while(--_0x15b187){_0x5a974e['push'](_0x5a974e['shift']());}};_0x437da2(++_0x10e22a);}(_0xaf5a,0x116));var _0xaaf5=function(_0x1fb038,_0xc3f69b){_0x1fb038=_0x1fb038-0x0;var _0x1600dc=_0xaf5a[_0x1fb038];return _0x1600dc;};'use strict';var _=require('lodash');var util=require(_0xaaf5('0x0'));var logger=require(_0xaaf5('0x1'))(_0xaaf5('0x2'));var moment=require(_0xaaf5('0x3'));var BPromise=require(_0xaaf5('0x4'));var rp=require(_0xaaf5('0x5'));var fs=require('fs');var path=require(_0xaaf5('0x6'));var rimraf=require(_0xaaf5('0x7'));var config=require('../../config/environment');var attributes=require(_0xaaf5('0x8'));module[_0xaaf5('0x9')]=function(_0x38d568,_0x8833b8){return _0x38d568['define']('CmHopperHistory',attributes,{'tableName':_0xaaf5('0xa'),'paranoid':![],'indexes':[{'name':_0xaaf5('0xb'),'fields':[_0xaaf5('0xb')]},{'name':_0xaaf5('0xc'),'fields':[_0xaaf5('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3402=['moment','bluebird','randomstring','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','then','info','CmHopperHistory,\x20%s,\x20%s','request\x20sent','CmHopperHistory,\x20%s,\x20%s,\x20%s','error','message','result','catch','CreateCmHopperHistory','CmHopperHistory','create','body','raw','AvgHandleTime','findAll','options','where','sequelize','COUNT','col','predictiveIntervalTotalCalls','`state`\x20=\x204,\x201,\x20null','predictiveIntervalAnsweredCalls','literal','`state`\x20=\x2010,\x201,\x20null','predictiveIntervalDroppedCallsCallersExit','AVG','predictiveIntervalAvgHoldtime','`state`\x20=\x204,\x20`talktime`,\x20null','predictiveIntervalAvgTalktime','debug','stringify','GetVoiceQueueHopperHistory','campaign','name','`state`\x20=\x200,\x201,\x20null','outboundNoSuchCallsDay','outboundNoAnswerCallsDay','outboundAnswerCallsDay','`state`\x20=\x205,\x201,\x20null','outboundCongestionCallsDay','`state`\x20=\x2010\x20,\x201,\x20null','outboundDropCallsDayTimeout','`state`\x20=\x2011\x20,\x201,\x20null','outboundDropCallsDayCallersExit','`state`\x20=\x2012,\x201,\x20null','outboundUnknownCallsDay','`state`\x20=\x2013,\x201,\x20null','outboundBlacklistCallsDay','`state`\x20=\x2014,\x201,\x20null','outboundOriginateFailureCallsDay','`state`\x20=\x2018,\x201,\x20null','outboundRejectCallsDay','`state`\x20=\x2016,\x201,\x20null','outboundAnswerAgiCallsDay','`state`\x20=\x2020,\x201,\x20null','`state`\x20=\x2022\x20or\x20`state`\x20=\x2023,\x201,\x20null','outboundReCallsDay','GetCampaignHopperHistory','ivrTotalCallsDays','ivrAnswerCallsDay','lodash'];(function(_0x4a5b2b,_0x42caff){var _0x5a68f4=function(_0x3c891e){while(--_0x3c891e){_0x4a5b2b['push'](_0x4a5b2b['shift']());}};_0x5a68f4(++_0x42caff);}(_0x3402,0x1f0));var _0x2340=function(_0x5d7cea,_0x1e7778){_0x5d7cea=_0x5d7cea-0x0;var _0x8ecabe=_0x3402[_0x5d7cea];return _0x8ecabe;};'use strict';var _=require(_0x2340('0x0'));var util=require('util');var moment=require(_0x2340('0x1'));var BPromise=require(_0x2340('0x2'));var rs=require(_0x2340('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x2340('0x4'));var logger=require(_0x2340('0x5'))(_0x2340('0x6'));var config=require(_0x2340('0x7'));var jayson=require(_0x2340('0x8'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0xc37850,_0x1deef4,_0x16174f){return new BPromise(function(_0x225250,_0x152e52){return client['request'](_0xc37850,_0x16174f)[_0x2340('0x9')](function(_0x1da381){logger[_0x2340('0xa')](_0x2340('0xb'),_0x1deef4,_0x2340('0xc'));logger['debug'](_0x2340('0xd'),_0x1deef4,_0x2340('0xc'),JSON['stringify'](_0x1da381));if(_0x1da381['error']){if(_0x1da381[_0x2340('0xe')]['code']===0x1f4){logger[_0x2340('0xe')]('CmHopperHistory,\x20%s,\x20%s',_0x1deef4,_0x1da381[_0x2340('0xe')][_0x2340('0xf')]);return _0x152e52(_0x1da381[_0x2340('0xe')][_0x2340('0xf')]);}logger[_0x2340('0xe')](_0x2340('0xb'),_0x1deef4,_0x1da381[_0x2340('0xe')]['message']);return _0x225250(_0x1da381[_0x2340('0xe')][_0x2340('0xf')]);}else{logger[_0x2340('0xa')]('CmHopperHistory,\x20%s,\x20%s',_0x1deef4,_0x2340('0xc'));_0x225250(_0x1da381[_0x2340('0x10')][_0x2340('0xf')]);}})[_0x2340('0x11')](function(_0x4dcab6){logger[_0x2340('0xe')](_0x2340('0xb'),_0x1deef4,_0x4dcab6);_0x152e52(_0x4dcab6);});});}exports[_0x2340('0x12')]=function(_0x9723dd){var _0xd96877=this;return new Promise(function(_0x51524b,_0x4fde34){return db[_0x2340('0x13')][_0x2340('0x14')](_0x9723dd[_0x2340('0x15')],{'raw':_0x9723dd['options']?_0x9723dd['options'][_0x2340('0x16')]===undefined?!![]:![]:!![]})[_0x2340('0x9')](function(_0x1b3822){logger[_0x2340('0xa')]('CreateCmHopperHistory',_0x9723dd);logger['debug'](_0x2340('0x12'),_0x9723dd,JSON['stringify'](_0x1b3822));_0x51524b(_0x1b3822);})[_0x2340('0x11')](function(_0x44622a){logger[_0x2340('0xe')](_0x2340('0x12'),_0x44622a[_0x2340('0xf')],_0x9723dd);_0x4fde34(_0xd96877[_0x2340('0xe')](0x1f4,_0x44622a[_0x2340('0xf')]));});});};exports[_0x2340('0x17')]=function(_0x49c77e){var _0x5085d2=this;return new Promise(function(_0x7d4768,_0x91f5c){return db[_0x2340('0x13')][_0x2340('0x18')]({'raw':_0x49c77e[_0x2340('0x19')]?_0x49c77e[_0x2340('0x19')][_0x2340('0x16')]===undefined?!![]:![]:!![],'where':_0x49c77e['options']?_0x49c77e[_0x2340('0x19')][_0x2340('0x1a')]||null:null,'attributes':[[db[_0x2340('0x1b')]['fn'](_0x2340('0x1c'),db[_0x2340('0x1b')][_0x2340('0x1d')]('id')),_0x2340('0x1e')],[db[_0x2340('0x1b')]['fn'](_0x2340('0x1c'),db[_0x2340('0x1b')]['fn']('IF',db[_0x2340('0x1b')]['literal'](_0x2340('0x1f')))),_0x2340('0x20')],[db['sequelize']['fn'](_0x2340('0x1c'),db[_0x2340('0x1b')]['fn']('IF',db[_0x2340('0x1b')][_0x2340('0x21')](_0x2340('0x22')))),'predictiveIntervalDroppedCallsTimeout'],[db[_0x2340('0x1b')]['fn'](_0x2340('0x1c'),db[_0x2340('0x1b')]['fn']('IF',db[_0x2340('0x1b')][_0x2340('0x21')]('`state`\x20=\x2011,\x201,\x20null'))),_0x2340('0x23')],[db[_0x2340('0x1b')]['fn'](_0x2340('0x24'),db['sequelize']['fn']('IF',db[_0x2340('0x1b')][_0x2340('0x21')]('`state`\x20=\x204,\x20`holdtime`,\x20null'))),_0x2340('0x25')],[db[_0x2340('0x1b')]['fn']('AVG',db[_0x2340('0x1b')]['fn']('IF',db[_0x2340('0x1b')][_0x2340('0x21')](_0x2340('0x26')))),_0x2340('0x27')]]})[_0x2340('0x9')](function(_0x4c5a20){logger[_0x2340('0xa')](_0x2340('0x17'),_0x49c77e);logger[_0x2340('0x28')]('AvgHandleTime',_0x49c77e,JSON[_0x2340('0x29')](_0x4c5a20));_0x7d4768(_0x4c5a20);})[_0x2340('0x11')](function(_0x2f5277){logger[_0x2340('0xe')](_0x2340('0x17'),_0x2f5277[_0x2340('0xf')],_0x49c77e);_0x91f5c(_0x5085d2[_0x2340('0xe')](0x1f4,_0x2f5277[_0x2340('0xf')]));});});};exports[_0x2340('0x2a')]=function(_0x28fcbf){var _0x275f6b=this;return new Promise(function(_0x5d7b37,_0x14da4a){return db['CmHopperHistory']['findAll']({'raw':_0x28fcbf[_0x2340('0x19')]?_0x28fcbf['options'][_0x2340('0x16')]===undefined?!![]:![]:!![],'where':_0x28fcbf[_0x2340('0x19')]?_0x28fcbf['options'][_0x2340('0x1a')]||null:null,'attributes':[[_0x2340('0x2b'),_0x2340('0x2c')],[db[_0x2340('0x1b')]['fn']('COUNT',db[_0x2340('0x1b')]['fn']('IF',db[_0x2340('0x1b')][_0x2340('0x21')](_0x2340('0x2d')))),_0x2340('0x2e')],[db[_0x2340('0x1b')]['fn'](_0x2340('0x1c'),db[_0x2340('0x1b')]['fn']('IF',db[_0x2340('0x1b')][_0x2340('0x21')]('`state`\x20=\x203,\x201,\x20null'))),_0x2340('0x2f')],[db[_0x2340('0x1b')]['fn'](_0x2340('0x1c'),db[_0x2340('0x1b')]['fn']('IF',db[_0x2340('0x1b')]['literal']('`state`\x20=\x204,\x201,\x20null'))),_0x2340('0x30')],[db['sequelize']['fn'](_0x2340('0x1c'),db[_0x2340('0x1b')]['fn']('IF',db[_0x2340('0x1b')][_0x2340('0x21')](_0x2340('0x31')))),'outboundBusyCallsDay'],[db['sequelize']['fn'](_0x2340('0x1c'),db[_0x2340('0x1b')]['fn']('IF',db[_0x2340('0x1b')][_0x2340('0x21')]('`state`\x20=\x208,\x201,\x20null'))),_0x2340('0x32')],[db['sequelize']['fn']('COUNT',db[_0x2340('0x1b')]['fn']('IF',db[_0x2340('0x1b')]['literal'](_0x2340('0x33')))),_0x2340('0x34')],[db[_0x2340('0x1b')]['fn'](_0x2340('0x1c'),db[_0x2340('0x1b')]['fn']('IF',db[_0x2340('0x1b')]['literal'](_0x2340('0x35')))),_0x2340('0x36')],[db[_0x2340('0x1b')]['fn']('COUNT',db['sequelize']['fn']('IF',db['sequelize'][_0x2340('0x21')](_0x2340('0x37')))),_0x2340('0x38')],[db[_0x2340('0x1b')]['fn'](_0x2340('0x1c'),db[_0x2340('0x1b')]['fn']('IF',db['sequelize'][_0x2340('0x21')](_0x2340('0x39')))),_0x2340('0x3a')],[db[_0x2340('0x1b')]['fn'](_0x2340('0x1c'),db[_0x2340('0x1b')]['fn']('IF',db[_0x2340('0x1b')][_0x2340('0x21')](_0x2340('0x3b')))),_0x2340('0x3c')],[db[_0x2340('0x1b')]['fn']('COUNT',db[_0x2340('0x1b')]['fn']('IF',db[_0x2340('0x1b')][_0x2340('0x21')](_0x2340('0x3d')))),_0x2340('0x3e')],[db[_0x2340('0x1b')]['fn'](_0x2340('0x1c'),db['sequelize']['fn']('IF',db[_0x2340('0x1b')][_0x2340('0x21')](_0x2340('0x3f')))),_0x2340('0x40')],[db[_0x2340('0x1b')]['fn']('COUNT',db[_0x2340('0x1b')]['fn']('IF',db[_0x2340('0x1b')][_0x2340('0x21')](_0x2340('0x41')))),_0x2340('0x3e')],[db[_0x2340('0x1b')]['fn'](_0x2340('0x1c'),db[_0x2340('0x1b')]['fn']('IF',db[_0x2340('0x1b')][_0x2340('0x21')](_0x2340('0x42')))),_0x2340('0x43')]],'group':[_0x2340('0x2b')]})[_0x2340('0x9')](function(_0x5bdb15){logger[_0x2340('0xa')](_0x2340('0x2a'),_0x28fcbf);logger[_0x2340('0x28')]('GetVoiceQueueHopperHistory',_0x28fcbf,JSON[_0x2340('0x29')](_0x5bdb15));_0x5d7b37(_0x5bdb15);})[_0x2340('0x11')](function(_0x31953d){logger[_0x2340('0xe')](_0x2340('0x2a'),_0x31953d['message'],_0x28fcbf);_0x14da4a(_0x275f6b[_0x2340('0xe')](0x1f4,_0x31953d[_0x2340('0xf')]));});});};exports[_0x2340('0x44')]=function(_0x4f3c83){var _0x5b3432=this;return new Promise(function(_0x19a515,_0x3b8a9f){return db[_0x2340('0x13')][_0x2340('0x18')]({'raw':_0x4f3c83[_0x2340('0x19')]?_0x4f3c83[_0x2340('0x19')][_0x2340('0x16')]===undefined?!![]:![]:!![],'where':_0x4f3c83['options']?_0x4f3c83[_0x2340('0x19')]['where']||null:null,'attributes':[[_0x2340('0x2b'),'name'],[db['sequelize']['fn']('COUNT',db[_0x2340('0x1b')]['col']('id')),_0x2340('0x45')],[db[_0x2340('0x1b')]['fn'](_0x2340('0x1c'),db[_0x2340('0x1b')]['fn']('IF',db[_0x2340('0x1b')][_0x2340('0x21')]('`state`\x20=\x204,\x201,\x20null'))),_0x2340('0x46')]],'group':[_0x2340('0x2b')]})[_0x2340('0x9')](function(_0x1c1305){logger['info'](_0x2340('0x44'),_0x4f3c83);logger[_0x2340('0x28')]('GetCampaignHopperHistory',_0x4f3c83,JSON[_0x2340('0x29')](_0x1c1305));_0x19a515(_0x1c1305);})[_0x2340('0x11')](function(_0x1f89d1){logger[_0x2340('0xe')](_0x2340('0x44'),_0x1f89d1[_0x2340('0xf')],_0x4f3c83);_0x3b8a9f(_0x5b3432[_0x2340('0xe')](0x1f4,_0x1f89d1[_0x2340('0xf')]));});});};
\ No newline at end of file
+var _0x5451=['`state`\x20=\x204,\x201,\x20null','outboundAnswerCallsDay','`state`\x20=\x205,\x201,\x20null','outboundBusyCallsDay','`state`\x20=\x208,\x201,\x20null','`state`\x20=\x2010\x20,\x201,\x20null','outboundDropCallsDayTimeout','outboundDropCallsDayCallersExit','`state`\x20=\x2012,\x201,\x20null','`state`\x20=\x2013,\x201,\x20null','outboundBlacklistCallsDay','`state`\x20=\x2014,\x201,\x20null','outboundOriginateFailureCallsDay','outboundRejectCallsDay','`state`\x20=\x2016,\x201,\x20null','outboundAnswerAgiCallsDay','`state`\x20=\x2020,\x201,\x20null','`state`\x20=\x2022\x20or\x20`state`\x20=\x2023,\x201,\x20null','outboundReCallsDay','GetCampaignHopperHistory','ivrTotalCallsDays','ivrAnswerCallsDay','util','moment','ioredis','../../config/utils','rpc','../../config/environment','client','http','request','then','request\x20sent','debug','CmHopperHistory,\x20%s,\x20%s,\x20%s','stringify','error','code','CmHopperHistory,\x20%s,\x20%s','message','info','result','catch','CmHopperHistory','create','body','options','raw','CreateCmHopperHistory','findAll','where','sequelize','COUNT','col','predictiveIntervalTotalCalls','literal','predictiveIntervalAnsweredCalls','`state`\x20=\x2010,\x201,\x20null','predictiveIntervalDroppedCallsTimeout','`state`\x20=\x2011,\x201,\x20null','predictiveIntervalDroppedCallsCallersExit','`state`\x20=\x204,\x20`holdtime`,\x20null','predictiveIntervalAvgHoldtime','AvgHandleTime','GetVoiceQueueHopperHistory','name','outboundNoSuchCallsDay','`state`\x20=\x203,\x201,\x20null','outboundNoAnswerCallsDay'];(function(_0x582daf,_0x487af2){var _0x2c919e=function(_0xdbd03b){while(--_0xdbd03b){_0x582daf['push'](_0x582daf['shift']());}};_0x2c919e(++_0x487af2);}(_0x5451,0x16f));var _0x1545=function(_0x18018d,_0x44f3e){_0x18018d=_0x18018d-0x0;var _0x149f3b=_0x5451[_0x18018d];return _0x149f3b;};'use strict';var _=require('lodash');var util=require(_0x1545('0x0'));var moment=require(_0x1545('0x1'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x1545('0x2'));var db=require('../../mysqldb')['db'];var utils=require(_0x1545('0x3'));var logger=require('../../config/logger')(_0x1545('0x4'));var config=require(_0x1545('0x5'));var jayson=require('jayson/promise');var client=jayson[_0x1545('0x6')][_0x1545('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x6ebef7,_0x57d88f,_0x3ac32b){return new BPromise(function(_0x16bb08,_0x535158){return client[_0x1545('0x8')](_0x6ebef7,_0x3ac32b)[_0x1545('0x9')](function(_0x2e2b83){logger['info']('CmHopperHistory,\x20%s,\x20%s',_0x57d88f,_0x1545('0xa'));logger[_0x1545('0xb')](_0x1545('0xc'),_0x57d88f,_0x1545('0xa'),JSON[_0x1545('0xd')](_0x2e2b83));if(_0x2e2b83[_0x1545('0xe')]){if(_0x2e2b83[_0x1545('0xe')][_0x1545('0xf')]===0x1f4){logger[_0x1545('0xe')](_0x1545('0x10'),_0x57d88f,_0x2e2b83[_0x1545('0xe')][_0x1545('0x11')]);return _0x535158(_0x2e2b83[_0x1545('0xe')][_0x1545('0x11')]);}logger[_0x1545('0xe')](_0x1545('0x10'),_0x57d88f,_0x2e2b83[_0x1545('0xe')]['message']);return _0x16bb08(_0x2e2b83[_0x1545('0xe')][_0x1545('0x11')]);}else{logger[_0x1545('0x12')](_0x1545('0x10'),_0x57d88f,_0x1545('0xa'));_0x16bb08(_0x2e2b83[_0x1545('0x13')][_0x1545('0x11')]);}})[_0x1545('0x14')](function(_0x15b2c3){logger[_0x1545('0xe')](_0x1545('0x10'),_0x57d88f,_0x15b2c3);_0x535158(_0x15b2c3);});});}exports['CreateCmHopperHistory']=function(_0x1ace5c){var _0x25cc31=this;return new Promise(function(_0x12ee29,_0x239802){return db[_0x1545('0x15')][_0x1545('0x16')](_0x1ace5c[_0x1545('0x17')],{'raw':_0x1ace5c[_0x1545('0x18')]?_0x1ace5c[_0x1545('0x18')][_0x1545('0x19')]===undefined?!![]:![]:!![]})[_0x1545('0x9')](function(_0x3d60f0){logger['info'](_0x1545('0x1a'),_0x1ace5c);logger[_0x1545('0xb')](_0x1545('0x1a'),_0x1ace5c,JSON[_0x1545('0xd')](_0x3d60f0));_0x12ee29(_0x3d60f0);})[_0x1545('0x14')](function(_0x29ee0e){logger[_0x1545('0xe')](_0x1545('0x1a'),_0x29ee0e[_0x1545('0x11')],_0x1ace5c);_0x239802(_0x25cc31[_0x1545('0xe')](0x1f4,_0x29ee0e[_0x1545('0x11')]));});});};exports['AvgHandleTime']=function(_0x396c25){var _0x5554f9=this;return new Promise(function(_0x51560c,_0x2eb7cc){return db[_0x1545('0x15')][_0x1545('0x1b')]({'raw':_0x396c25[_0x1545('0x18')]?_0x396c25[_0x1545('0x18')][_0x1545('0x19')]===undefined?!![]:![]:!![],'where':_0x396c25[_0x1545('0x18')]?_0x396c25[_0x1545('0x18')][_0x1545('0x1c')]||null:null,'attributes':[[db[_0x1545('0x1d')]['fn'](_0x1545('0x1e'),db[_0x1545('0x1d')][_0x1545('0x1f')]('id')),_0x1545('0x20')],[db[_0x1545('0x1d')]['fn'](_0x1545('0x1e'),db[_0x1545('0x1d')]['fn']('IF',db[_0x1545('0x1d')][_0x1545('0x21')]('`state`\x20=\x204,\x201,\x20null'))),_0x1545('0x22')],[db['sequelize']['fn']('COUNT',db[_0x1545('0x1d')]['fn']('IF',db[_0x1545('0x1d')][_0x1545('0x21')](_0x1545('0x23')))),_0x1545('0x24')],[db['sequelize']['fn']('COUNT',db['sequelize']['fn']('IF',db[_0x1545('0x1d')][_0x1545('0x21')](_0x1545('0x25')))),_0x1545('0x26')],[db[_0x1545('0x1d')]['fn']('AVG',db[_0x1545('0x1d')]['fn']('IF',db[_0x1545('0x1d')]['literal'](_0x1545('0x27')))),_0x1545('0x28')],[db[_0x1545('0x1d')]['fn']('AVG',db[_0x1545('0x1d')]['fn']('IF',db[_0x1545('0x1d')][_0x1545('0x21')]('`state`\x20=\x204,\x20`talktime`,\x20null'))),'predictiveIntervalAvgTalktime']]})[_0x1545('0x9')](function(_0x5bf0d2){logger[_0x1545('0x12')](_0x1545('0x29'),_0x396c25);logger['debug'](_0x1545('0x29'),_0x396c25,JSON[_0x1545('0xd')](_0x5bf0d2));_0x51560c(_0x5bf0d2);})[_0x1545('0x14')](function(_0x153d38){logger['error'](_0x1545('0x29'),_0x153d38[_0x1545('0x11')],_0x396c25);_0x2eb7cc(_0x5554f9[_0x1545('0xe')](0x1f4,_0x153d38['message']));});});};exports[_0x1545('0x2a')]=function(_0x2645d4){var _0x274e7e=this;return new Promise(function(_0x547045,_0x1537c3){return db[_0x1545('0x15')][_0x1545('0x1b')]({'raw':_0x2645d4[_0x1545('0x18')]?_0x2645d4['options'][_0x1545('0x19')]===undefined?!![]:![]:!![],'where':_0x2645d4[_0x1545('0x18')]?_0x2645d4['options'][_0x1545('0x1c')]||null:null,'attributes':[['campaign',_0x1545('0x2b')],[db['sequelize']['fn'](_0x1545('0x1e'),db[_0x1545('0x1d')]['fn']('IF',db[_0x1545('0x1d')]['literal']('`state`\x20=\x200,\x201,\x20null'))),_0x1545('0x2c')],[db[_0x1545('0x1d')]['fn'](_0x1545('0x1e'),db[_0x1545('0x1d')]['fn']('IF',db['sequelize'][_0x1545('0x21')](_0x1545('0x2d')))),_0x1545('0x2e')],[db['sequelize']['fn']('COUNT',db[_0x1545('0x1d')]['fn']('IF',db[_0x1545('0x1d')][_0x1545('0x21')](_0x1545('0x2f')))),_0x1545('0x30')],[db[_0x1545('0x1d')]['fn'](_0x1545('0x1e'),db[_0x1545('0x1d')]['fn']('IF',db[_0x1545('0x1d')][_0x1545('0x21')](_0x1545('0x31')))),_0x1545('0x32')],[db[_0x1545('0x1d')]['fn'](_0x1545('0x1e'),db[_0x1545('0x1d')]['fn']('IF',db[_0x1545('0x1d')][_0x1545('0x21')](_0x1545('0x33')))),'outboundCongestionCallsDay'],[db[_0x1545('0x1d')]['fn'](_0x1545('0x1e'),db[_0x1545('0x1d')]['fn']('IF',db['sequelize']['literal'](_0x1545('0x34')))),_0x1545('0x35')],[db[_0x1545('0x1d')]['fn'](_0x1545('0x1e'),db[_0x1545('0x1d')]['fn']('IF',db['sequelize'][_0x1545('0x21')]('`state`\x20=\x2011\x20,\x201,\x20null'))),_0x1545('0x36')],[db[_0x1545('0x1d')]['fn'](_0x1545('0x1e'),db[_0x1545('0x1d')]['fn']('IF',db[_0x1545('0x1d')][_0x1545('0x21')](_0x1545('0x37')))),'outboundUnknownCallsDay'],[db['sequelize']['fn'](_0x1545('0x1e'),db[_0x1545('0x1d')]['fn']('IF',db[_0x1545('0x1d')][_0x1545('0x21')](_0x1545('0x38')))),_0x1545('0x39')],[db[_0x1545('0x1d')]['fn']('COUNT',db[_0x1545('0x1d')]['fn']('IF',db[_0x1545('0x1d')][_0x1545('0x21')](_0x1545('0x3a')))),_0x1545('0x3b')],[db[_0x1545('0x1d')]['fn'](_0x1545('0x1e'),db[_0x1545('0x1d')]['fn']('IF',db[_0x1545('0x1d')][_0x1545('0x21')]('`state`\x20=\x2018,\x201,\x20null'))),_0x1545('0x3c')],[db['sequelize']['fn'](_0x1545('0x1e'),db[_0x1545('0x1d')]['fn']('IF',db[_0x1545('0x1d')][_0x1545('0x21')](_0x1545('0x3d')))),_0x1545('0x3e')],[db[_0x1545('0x1d')]['fn'](_0x1545('0x1e'),db['sequelize']['fn']('IF',db[_0x1545('0x1d')][_0x1545('0x21')](_0x1545('0x3f')))),_0x1545('0x3c')],[db[_0x1545('0x1d')]['fn'](_0x1545('0x1e'),db[_0x1545('0x1d')]['fn']('IF',db[_0x1545('0x1d')][_0x1545('0x21')](_0x1545('0x40')))),_0x1545('0x41')]],'group':['campaign']})[_0x1545('0x9')](function(_0x4adb0f){logger[_0x1545('0x12')](_0x1545('0x2a'),_0x2645d4);logger[_0x1545('0xb')](_0x1545('0x2a'),_0x2645d4,JSON[_0x1545('0xd')](_0x4adb0f));_0x547045(_0x4adb0f);})[_0x1545('0x14')](function(_0x586617){logger[_0x1545('0xe')](_0x1545('0x2a'),_0x586617['message'],_0x2645d4);_0x1537c3(_0x274e7e[_0x1545('0xe')](0x1f4,_0x586617[_0x1545('0x11')]));});});};exports[_0x1545('0x42')]=function(_0x30ca64){var _0x52f597=this;return new Promise(function(_0x21f7c4,_0x35e733){return db[_0x1545('0x15')][_0x1545('0x1b')]({'raw':_0x30ca64[_0x1545('0x18')]?_0x30ca64[_0x1545('0x18')][_0x1545('0x19')]===undefined?!![]:![]:!![],'where':_0x30ca64[_0x1545('0x18')]?_0x30ca64[_0x1545('0x18')][_0x1545('0x1c')]||null:null,'attributes':[['campaign',_0x1545('0x2b')],[db['sequelize']['fn'](_0x1545('0x1e'),db['sequelize'][_0x1545('0x1f')]('id')),_0x1545('0x43')],[db[_0x1545('0x1d')]['fn']('COUNT',db[_0x1545('0x1d')]['fn']('IF',db['sequelize']['literal']('`state`\x20=\x204,\x201,\x20null'))),_0x1545('0x44')]],'group':['campaign']})[_0x1545('0x9')](function(_0x2177de){logger[_0x1545('0x12')](_0x1545('0x42'),_0x30ca64);logger['debug'](_0x1545('0x42'),_0x30ca64,JSON['stringify'](_0x2177de));_0x21f7c4(_0x2177de);})[_0x1545('0x14')](function(_0x43bde1){logger[_0x1545('0xe')]('GetCampaignHopperHistory',_0x43bde1[_0x1545('0x11')],_0x30ca64);_0x35e733(_0x52f597[_0x1545('0xe')](0x1f4,_0x43bde1['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaac7=['multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./cmHopperHistory.controller','get','isAuthenticated','index','/describe','describe','show','post','create','put','/:id','update','exports'];(function(_0x24dedb,_0x116fe6){var _0x4220b2=function(_0x1bf700){while(--_0x1bf700){_0x24dedb['push'](_0x24dedb['shift']());}};_0x4220b2(++_0x116fe6);}(_0xaac7,0x1cc));var _0x7aac=function(_0x4ab3fb,_0x776775){_0x4ab3fb=_0x4ab3fb-0x0;var _0x34fe1e=_0xaac7[_0x4ab3fb];return _0x34fe1e;};'use strict';var multer=require(_0x7aac('0x0'));var util=require(_0x7aac('0x1'));var path=require(_0x7aac('0x2'));var timeout=require(_0x7aac('0x3'));var express=require(_0x7aac('0x4'));var router=express[_0x7aac('0x5')]();var fs_extra=require(_0x7aac('0x6'));var auth=require(_0x7aac('0x7'));var interaction=require(_0x7aac('0x8'));var config=require(_0x7aac('0x9'));var controller=require(_0x7aac('0xa'));router[_0x7aac('0xb')]('/',auth[_0x7aac('0xc')](),controller[_0x7aac('0xd')]);router[_0x7aac('0xb')](_0x7aac('0xe'),auth[_0x7aac('0xc')](),controller[_0x7aac('0xf')]);router[_0x7aac('0xb')]('/:id',auth[_0x7aac('0xc')](),controller[_0x7aac('0x10')]);router[_0x7aac('0x11')]('/',auth['isAuthenticated'](),controller[_0x7aac('0x12')]);router[_0x7aac('0x13')](_0x7aac('0x14'),auth[_0x7aac('0xc')](),controller[_0x7aac('0x15')]);module[_0x7aac('0x16')]=router;
\ No newline at end of file
+var _0x09b0=['create','put','/:id','update','path','express','Router','../../components/interaction/service','../../config/environment','get','isAuthenticated','/describe'];(function(_0x52f1e6,_0xf70489){var _0x21f104=function(_0xb89f9e){while(--_0xb89f9e){_0x52f1e6['push'](_0x52f1e6['shift']());}};_0x21f104(++_0xf70489);}(_0x09b0,0x7c));var _0x009b=function(_0x2bf0a8,_0x4d6af6){_0x2bf0a8=_0x2bf0a8-0x0;var _0x56e138=_0x09b0[_0x2bf0a8];return _0x56e138;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x009b('0x0'));var timeout=require('connect-timeout');var express=require(_0x009b('0x1'));var router=express[_0x009b('0x2')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0x009b('0x3'));var config=require(_0x009b('0x4'));var controller=require('./cmHopperHistory.controller');router[_0x009b('0x5')]('/',auth[_0x009b('0x6')](),controller['index']);router['get'](_0x009b('0x7'),auth[_0x009b('0x6')](),controller['describe']);router[_0x009b('0x5')]('/:id',auth[_0x009b('0x6')](),controller['show']);router['post']('/',auth['isAuthenticated'](),controller[_0x009b('0x8')]);router[_0x009b('0x9')](_0x009b('0xa'),auth['isAuthenticated'](),controller[_0x009b('0xb')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe107=['STRING','name','sequelize'];(function(_0x593564,_0x43583f){var _0x211a89=function(_0x40afd6){while(--_0x40afd6){_0x593564['push'](_0x593564['shift']());}};_0x211a89(++_0x43583f);}(_0xe107,0xb3));var _0x7e10=function(_0x5f3a35,_0x43ffea){_0x5f3a35=_0x5f3a35-0x0;var _0xf505c=_0xe107[_0x5f3a35];return _0xf505c;};'use strict';var Sequelize=require(_0x7e10('0x0'));module['exports']={'name':{'type':Sequelize[_0x7e10('0x1')],'unique':_0x7e10('0x2'),'allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize[_0x7e10('0x1')]},'dialPrefix':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0xd493=['name','sequelize','STRING'];(function(_0x307049,_0x1e9968){var _0x2d3015=function(_0x285429){while(--_0x285429){_0x307049['push'](_0x307049['shift']());}};_0x2d3015(++_0x1e9968);}(_0xd493,0x1bd));var _0x3d49=function(_0x244ca4,_0x944fc){_0x244ca4=_0x244ca4-0x0;var _0x59f2fb=_0xd493[_0x244ca4];return _0x59f2fb;};'use strict';var Sequelize=require(_0x3d49('0x0'));module['exports']={'name':{'type':Sequelize[_0x3d49('0x1')],'unique':_0x3d49('0x2'),'allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize['STRING']},'dialPrefix':{'type':Sequelize[_0x3d49('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbe5a=['cf_%s','getCustomFields','findAndCountAll','addAgents','spread','emit','userCmList:save','removeAgents','getAgents','User','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','to-csv','ejs','lodash','squel','jsforce','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','register','status','undefined','limit','count','offset','set','json','reject','update','then','destroy','get','Lists','UserProfileResource','end','sendStatus','error','stack','name','send','CmList','rawAttributes','fieldName','type','model','map','filters','intersection','query','attributes','fields','length','hasOwnProperty','nolimit','where','pick','filter','merge','options','include','findAll','catch','params','keys','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','find','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','addDisposition','Disposition','getDispositions','findOne','sort','ListId','includeAll','rows','removeDispositions','ids','addContacts','CmContact','tags','isArray','push','each','omit','success','errors','message','Malformed\x20request\x20syntax','CmCustomField','CustomFields','concat','raw','getContacts','format','cf_%d','order','isEmpty','now','writeFileSync','/tmp/list_%d_%s.csv','setHeader','Content-disposition','attachment;\x20filename=','list_%d_%s.csv','Content-type','text/csv','addCustomField','Sequelize','TEXT','text','number','INTEGER','switch','BOOLEAN','defaultValue','queryInterface','addColumn','cm_contacts'];(function(_0xa4d042,_0x16086d){var _0x24e4bc=function(_0xce3e49){while(--_0xce3e49){_0xa4d042['push'](_0xa4d042['shift']());}};_0x24e4bc(++_0x16086d);}(_0xbe5a,0x12c));var _0xabe5=function(_0x58c20f,_0x4cdb1b){_0x58c20f=_0x58c20f-0x0;var _0x3b0318=_0xbe5a[_0x58c20f];return _0x3b0318;};'use strict';var emlformat=require(_0xabe5('0x0'));var rimraf=require(_0xabe5('0x1'));var zipdir=require(_0xabe5('0x2'));var jsonpatch=require(_0xabe5('0x3'));var rp=require(_0xabe5('0x4'));var moment=require(_0xabe5('0x5'));var BPromise=require(_0xabe5('0x6'));var Mustache=require('mustache');var util=require(_0xabe5('0x7'));var path=require(_0xabe5('0x8'));var sox=require('sox');var csv=require(_0xabe5('0x9'));var ejs=require(_0xabe5('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xabe5('0xb'));var squel=require(_0xabe5('0xc'));var crypto=require('crypto');var jsforce=require(_0xabe5('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xabe5('0x9'));var querystring=require(_0xabe5('0xe'));var Papa=require(_0xabe5('0xf'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xabe5('0x10'));var as=require(_0xabe5('0x11'));var hardwareService=require(_0xabe5('0x12'));var logger=require(_0xabe5('0x13'))(_0xabe5('0x14'));var utils=require(_0xabe5('0x15'));var config=require(_0xabe5('0x16'));var licenseUtil=require(_0xabe5('0x17'));var db=require(_0xabe5('0x18'))['db'];config['redis']=_['defaults'](config[_0xabe5('0x19')],{'host':_0xabe5('0x1a'),'port':0x18eb});var socket=require(_0xabe5('0x1b'))(new Redis(config['redis']));require('./cmList.socket')[_0xabe5('0x1c')](socket);function respondWithStatusCode(_0x4a9bae,_0x141bb6){_0x141bb6=_0x141bb6||0xcc;return function(_0x6bc7d4){if(_0x6bc7d4){return _0x4a9bae['sendStatus'](_0x141bb6);}return _0x4a9bae[_0xabe5('0x1d')](_0x141bb6)['end']();};}function respondWithResult(_0xff1810,_0x215d62){_0x215d62=_0x215d62||0xc8;return function(_0x75be05){if(_0x75be05){return _0xff1810[_0xabe5('0x1d')](_0x215d62)['json'](_0x75be05);}};}function respondWithFilteredResult(_0x3b8e38,_0x325bad){return function(_0x5e8e5b){if(_0x5e8e5b){var _0x4f935d=typeof _0x325bad['offset']===_0xabe5('0x1e')&&typeof _0x325bad[_0xabe5('0x1f')]==='undefined';var _0x598461=_0x5e8e5b[_0xabe5('0x20')];var _0x35776=_0x4f935d?0x0:_0x325bad[_0xabe5('0x21')];var _0x163db9=_0x4f935d?_0x5e8e5b['count']:_0x325bad[_0xabe5('0x21')]+_0x325bad[_0xabe5('0x1f')];var _0x172f3c;if(_0x163db9>=_0x598461){_0x163db9=_0x598461;_0x172f3c=0xc8;}else{_0x172f3c=0xce;}_0x3b8e38['status'](_0x172f3c);return _0x3b8e38[_0xabe5('0x22')]('Content-Range',_0x35776+'-'+_0x163db9+'/'+_0x598461)[_0xabe5('0x23')](_0x5e8e5b);}return null;};}function patchUpdates(_0x3e5bcc){return function(_0xe1ee18){try{jsonpatch['apply'](_0xe1ee18,_0x3e5bcc,!![]);}catch(_0x3cb901){return BPromise[_0xabe5('0x24')](_0x3cb901);}return _0xe1ee18['save']();};}function saveUpdates(_0xe6eb77,_0x2396a5){return function(_0x591f22){if(_0x591f22){return _0x591f22[_0xabe5('0x25')](_0xe6eb77)[_0xabe5('0x26')](function(_0x449375){return _0x449375;});}return null;};}function removeEntity(_0x147244,_0x1004da){return function(_0x112df4){if(_0x112df4){return _0x112df4[_0xabe5('0x27')]()[_0xabe5('0x26')](function(){var _0xc7a549=_0x112df4[_0xabe5('0x28')]({'plain':!![]});var _0x4106fe=_0xabe5('0x29');return db[_0xabe5('0x2a')][_0xabe5('0x27')]({'where':{'type':_0x4106fe,'resourceId':_0xc7a549['id']}})[_0xabe5('0x26')](function(){return _0x112df4;});})['then'](function(){_0x147244[_0xabe5('0x1d')](0xcc)[_0xabe5('0x2b')]();});}};}function handleEntityNotFound(_0x5b0222,_0x3e6140){return function(_0x247cbc){if(!_0x247cbc){_0x5b0222[_0xabe5('0x2c')](0x194);}return _0x247cbc;};}function handleError(_0x4ae05e,_0xfa58f0){_0xfa58f0=_0xfa58f0||0x1f4;return function(_0x3d9fb3){logger[_0xabe5('0x2d')](_0x3d9fb3[_0xabe5('0x2e')]);if(_0x3d9fb3['name']){delete _0x3d9fb3[_0xabe5('0x2f')];}_0x4ae05e[_0xabe5('0x1d')](_0xfa58f0)[_0xabe5('0x30')](_0x3d9fb3);};}exports['index']=function(_0x97e3bb,_0x397d85){var _0x4320ac={},_0xf0403={},_0x18ce63={'count':0x0,'rows':[]};var _0x9dc03c=_['map'](db[_0xabe5('0x31')][_0xabe5('0x32')],function(_0x45a2fb){return{'name':_0x45a2fb[_0xabe5('0x33')],'type':_0x45a2fb[_0xabe5('0x34')]['key']};});_0xf0403[_0xabe5('0x35')]=_[_0xabe5('0x36')](_0x9dc03c,_0xabe5('0x2f'));_0xf0403['query']=_['keys'](_0x97e3bb['query']);_0xf0403[_0xabe5('0x37')]=_[_0xabe5('0x38')](_0xf0403[_0xabe5('0x35')],_0xf0403[_0xabe5('0x39')]);_0x4320ac[_0xabe5('0x3a')]=_['intersection'](_0xf0403[_0xabe5('0x35')],qs['fields'](_0x97e3bb['query'][_0xabe5('0x3b')]));_0x4320ac[_0xabe5('0x3a')]=_0x4320ac[_0xabe5('0x3a')][_0xabe5('0x3c')]?_0x4320ac[_0xabe5('0x3a')]:_0xf0403[_0xabe5('0x35')];if(!_0x97e3bb[_0xabe5('0x39')][_0xabe5('0x3d')](_0xabe5('0x3e'))){_0x4320ac[_0xabe5('0x1f')]=qs['limit'](_0x97e3bb['query']['limit']);_0x4320ac[_0xabe5('0x21')]=qs['offset'](_0x97e3bb[_0xabe5('0x39')][_0xabe5('0x21')]);}_0x4320ac['order']=qs['sort'](_0x97e3bb[_0xabe5('0x39')]['sort']);_0x4320ac[_0xabe5('0x3f')]=qs[_0xabe5('0x37')](_[_0xabe5('0x40')](_0x97e3bb[_0xabe5('0x39')],_0xf0403[_0xabe5('0x37')]),_0x9dc03c);if(_0x97e3bb[_0xabe5('0x39')][_0xabe5('0x41')]){_0x4320ac['where']=_[_0xabe5('0x42')](_0x4320ac[_0xabe5('0x3f')],{'$or':_[_0xabe5('0x36')](_0x9dc03c,function(_0x571dfc){if(_0x571dfc['type']!=='VIRTUAL'){var _0x52a388={};_0x52a388[_0x571dfc[_0xabe5('0x2f')]]={'$like':'%'+_0x97e3bb['query'][_0xabe5('0x41')]+'%'};return _0x52a388;}})});}_0x4320ac=_['merge']({},_0x4320ac,_0x97e3bb[_0xabe5('0x43')]);var _0x54e896={'where':_0x4320ac[_0xabe5('0x3f')]};return db['CmList'][_0xabe5('0x20')](_0x54e896)[_0xabe5('0x26')](function(_0xa3e672){_0x18ce63[_0xabe5('0x20')]=_0xa3e672;if(_0x97e3bb['query']['includeAll']){_0x4320ac[_0xabe5('0x44')]=[{'all':!![]}];}return db[_0xabe5('0x31')][_0xabe5('0x45')](_0x4320ac);})[_0xabe5('0x26')](function(_0x5e0f85){_0x18ce63['rows']=_0x5e0f85;return _0x18ce63;})['then'](respondWithFilteredResult(_0x397d85,_0x4320ac))[_0xabe5('0x46')](handleError(_0x397d85,null));};exports['show']=function(_0x552810,_0x379238){var _0x5346d2={'raw':![],'where':{'id':_0x552810[_0xabe5('0x47')]['id']}},_0x4ff2c3={};_0x4ff2c3[_0xabe5('0x35')]=_[_0xabe5('0x48')](db['CmList']['rawAttributes']);_0x4ff2c3[_0xabe5('0x39')]=_['keys'](_0x552810['query']);_0x4ff2c3[_0xabe5('0x37')]=_[_0xabe5('0x38')](_0x4ff2c3['model'],_0x4ff2c3[_0xabe5('0x39')]);_0x5346d2[_0xabe5('0x3a')]=_['intersection'](_0x4ff2c3['model'],qs['fields'](_0x552810[_0xabe5('0x39')][_0xabe5('0x3b')]));_0x5346d2['attributes']=_0x5346d2['attributes']['length']?_0x5346d2['attributes']:_0x4ff2c3[_0xabe5('0x35')];if(_0x552810[_0xabe5('0x39')]['includeAll']){_0x5346d2[_0xabe5('0x44')]=[{'all':!![]}];}_0x5346d2=_[_0xabe5('0x42')]({},_0x5346d2,_0x552810[_0xabe5('0x43')]);return db[_0xabe5('0x31')]['find'](_0x5346d2)[_0xabe5('0x26')](handleEntityNotFound(_0x379238,null))['then'](respondWithResult(_0x379238,null))[_0xabe5('0x46')](handleError(_0x379238,null));};exports[_0xabe5('0x49')]=function(_0x2e4675,_0x33b6fb){return db[_0xabe5('0x31')][_0xabe5('0x49')](_0x2e4675[_0xabe5('0x4a')],{})[_0xabe5('0x26')](function(_0x1097e8){var _0x1ac62f=_0x2e4675[_0xabe5('0x4b')][_0xabe5('0x28')]({'plain':!![]});if(!_0x1ac62f)throw new Error(_0xabe5('0x4c'));if(_0x1ac62f[_0xabe5('0x4d')]===_0xabe5('0x4b')){var _0x1ba99f=_0x1097e8[_0xabe5('0x28')]({'plain':!![]});var _0x5b9613='Lists';return db[_0xabe5('0x4e')][_0xabe5('0x4f')]({'where':{'name':_0x5b9613,'userProfileId':_0x1ac62f[_0xabe5('0x50')]},'raw':!![]})[_0xabe5('0x26')](function(_0x1ca17d){if(_0x1ca17d&&_0x1ca17d[_0xabe5('0x51')]===0x0){return db[_0xabe5('0x2a')][_0xabe5('0x49')]({'name':_0x1ba99f['name'],'resourceId':_0x1ba99f['id'],'type':_0x1ca17d[_0xabe5('0x2f')],'sectionId':_0x1ca17d['id']},{})[_0xabe5('0x26')](function(){return _0x1097e8;});}else{return _0x1097e8;}})['catch'](function(_0x5a15bb){logger[_0xabe5('0x2d')](_0xabe5('0x52'),_0x5a15bb);throw _0x5a15bb;});}return _0x1097e8;})['then'](respondWithResult(_0x33b6fb,0xc9))[_0xabe5('0x46')](handleError(_0x33b6fb,null));};exports['update']=function(_0x27e0ba,_0x1d504e){if(_0x27e0ba[_0xabe5('0x4a')]['id']){delete _0x27e0ba['body']['id'];}return db[_0xabe5('0x31')][_0xabe5('0x4f')]({'where':{'id':_0x27e0ba[_0xabe5('0x47')]['id']}})[_0xabe5('0x26')](handleEntityNotFound(_0x1d504e,null))[_0xabe5('0x26')](saveUpdates(_0x27e0ba[_0xabe5('0x4a')],null))[_0xabe5('0x26')](respondWithResult(_0x1d504e,null))[_0xabe5('0x46')](handleError(_0x1d504e,null));};exports[_0xabe5('0x27')]=function(_0x5c18c8,_0x219029){return db[_0xabe5('0x31')][_0xabe5('0x4f')]({'where':{'id':_0x5c18c8[_0xabe5('0x47')]['id']}})[_0xabe5('0x26')](handleEntityNotFound(_0x219029,null))[_0xabe5('0x26')](removeEntity(_0x219029,null))[_0xabe5('0x46')](handleError(_0x219029,null));};exports[_0xabe5('0x53')]=function(_0x67d880,_0x589aab){return db['CmList'][_0xabe5('0x53')]()['then'](respondWithResult(_0x589aab,null))['catch'](handleError(_0x589aab,null));};exports[_0xabe5('0x54')]=function(_0x14fdec,_0x6ef37b,_0x167a2c){if(_0x14fdec[_0xabe5('0x4a')]['id']){delete _0x14fdec[_0xabe5('0x4a')]['id'];}return db[_0xabe5('0x31')][_0xabe5('0x4f')]({'where':{'id':_0x14fdec[_0xabe5('0x47')]['id']}})['then'](handleEntityNotFound(_0x6ef37b,null))['then'](function(_0x19e29e){if(_0x19e29e){_0x14fdec[_0xabe5('0x4a')]['ListId']=_0x19e29e['id'];return db[_0xabe5('0x55')][_0xabe5('0x49')](_0x14fdec[_0xabe5('0x4a')]);}})['then'](respondWithResult(_0x6ef37b,null))[_0xabe5('0x46')](handleError(_0x6ef37b,null));};exports[_0xabe5('0x56')]=function(_0x1364fd,_0x15a1f3,_0x38ae3f){var _0x3c647e={'raw':![],'where':{}};var _0x12ce86={};var _0x43b021={'count':0x0,'rows':[]};return db['CmList'][_0xabe5('0x57')]({'where':{'id':_0x1364fd[_0xabe5('0x47')]['id']}})[_0xabe5('0x26')](handleEntityNotFound(_0x15a1f3,null))['then'](function(_0x1c4be4){if(_0x1c4be4){_0x12ce86['model']=_[_0xabe5('0x48')](db[_0xabe5('0x55')][_0xabe5('0x32')]);_0x12ce86['query']=_[_0xabe5('0x48')](_0x1364fd[_0xabe5('0x39')]);_0x12ce86[_0xabe5('0x37')]=_[_0xabe5('0x38')](_0x12ce86['model'],_0x12ce86['query']);_0x3c647e[_0xabe5('0x3a')]=_['intersection'](_0x12ce86[_0xabe5('0x35')],qs[_0xabe5('0x3b')](_0x1364fd[_0xabe5('0x39')][_0xabe5('0x3b')]));_0x3c647e[_0xabe5('0x3a')]=_0x3c647e[_0xabe5('0x3a')]['length']?_0x3c647e[_0xabe5('0x3a')]:_0x12ce86[_0xabe5('0x35')];if(!_0x1364fd[_0xabe5('0x39')][_0xabe5('0x3d')]('nolimit')){_0x3c647e[_0xabe5('0x1f')]=qs['limit'](_0x1364fd[_0xabe5('0x39')][_0xabe5('0x1f')]);_0x3c647e[_0xabe5('0x21')]=qs[_0xabe5('0x21')](_0x1364fd[_0xabe5('0x39')][_0xabe5('0x21')]);}_0x3c647e['order']=qs[_0xabe5('0x58')](_0x1364fd[_0xabe5('0x39')][_0xabe5('0x58')]);_0x3c647e[_0xabe5('0x3f')]=qs[_0xabe5('0x37')](_[_0xabe5('0x40')](_0x1364fd[_0xabe5('0x39')],_0x12ce86[_0xabe5('0x37')]));_0x3c647e['where'][_0xabe5('0x59')]=_0x1c4be4['id'];if(_0x1364fd[_0xabe5('0x39')]['filter']){_0x3c647e[_0xabe5('0x3f')]=_[_0xabe5('0x42')](_0x3c647e[_0xabe5('0x3f')],{'$or':_[_0xabe5('0x36')](_0x3c647e[_0xabe5('0x3a')],function(_0x3f0647){var _0x3e5bc5={};_0x3e5bc5[_0x3f0647]={'$like':'%'+_0x1364fd[_0xabe5('0x39')][_0xabe5('0x41')]+'%'};return _0x3e5bc5;})});}_0x3c647e=_[_0xabe5('0x42')]({},_0x3c647e,_0x1364fd['options']);return db['Disposition'][_0xabe5('0x20')]({'where':_0x3c647e['where']})[_0xabe5('0x26')](function(_0x3c5031){_0x43b021[_0xabe5('0x20')]=_0x3c5031;if(_0x1364fd['query'][_0xabe5('0x5a')]){_0x3c647e[_0xabe5('0x44')]=[{'all':!![]}];}return db[_0xabe5('0x55')][_0xabe5('0x45')](_0x3c647e);})[_0xabe5('0x26')](function(_0x3fa220){_0x43b021[_0xabe5('0x5b')]=_0x3fa220;return _0x43b021;});}})['then'](respondWithFilteredResult(_0x15a1f3,_0x3c647e))['catch'](handleError(_0x15a1f3,null));};exports[_0xabe5('0x5c')]=function(_0x14255a,_0x5b81ff,_0x108f0d){return db[_0xabe5('0x31')]['find']({'where':{'id':_0x14255a[_0xabe5('0x47')]['id']}})['then'](handleEntityNotFound(_0x5b81ff,null))[_0xabe5('0x26')](function(_0x1211c8){if(_0x1211c8){return _0x1211c8[_0xabe5('0x5c')](_0x14255a['query'][_0xabe5('0x5d')]);}})[_0xabe5('0x26')](respondWithStatusCode(_0x5b81ff,null))[_0xabe5('0x46')](handleError(_0x5b81ff,null));};exports[_0xabe5('0x5e')]=function(_0x34cde3,_0x2bf51e,_0x40642c){return db[_0xabe5('0x31')][_0xabe5('0x4f')]({'where':{'id':_0x34cde3['params']['id']}})[_0xabe5('0x26')](handleEntityNotFound(_0x2bf51e,null))[_0xabe5('0x26')](function(_0x25b7b3){if(_0x25b7b3){var _0x46fdef=[];var _0x28fcc0={'success':[],'errors':[]};return db[_0xabe5('0x5f')][_0xabe5('0x53')]()[_0xabe5('0x26')](function(_0x42fe90){if(_0x34cde3[_0xabe5('0x4a')][_0xabe5('0x60')]&&_['isArray'](_0x34cde3[_0xabe5('0x4a')][_0xabe5('0x60')])){if(_0x34cde3[_0xabe5('0x4a')][_0xabe5('0x60')]['length']){_0x34cde3['body'][_0xabe5('0x60')]=_0x34cde3[_0xabe5('0x4a')][_0xabe5('0x60')]['join'](';')+';';}else{_0x34cde3['body'][_0xabe5('0x60')]=null;}}else{_0x34cde3[_0xabe5('0x4a')]['tags']=null;}if(_0x34cde3[_0xabe5('0x4a')]&&_[_0xabe5('0x61')](_0x34cde3[_0xabe5('0x4a')])){for(var _0x52f7da=0x0;_0x52f7da<_0x34cde3['body'][_0xabe5('0x3c')];_0x52f7da+=0x1){_0x34cde3[_0xabe5('0x4a')][_0x52f7da][_0xabe5('0x59')]=_0x34cde3['params']['id'];_0x46fdef[_0xabe5('0x62')](_0x34cde3['body'][_0x52f7da]);}return BPromise[_0xabe5('0x63')](_0x46fdef,function(_0x270de1){return db[_0xabe5('0x5f')][_0xabe5('0x49')](_[_0xabe5('0x64')](_0x270de1,[_0xabe5('0x5d'),'id'])||{},{'fields':_[_0xabe5('0x48')](_0x42fe90),'raw':!![]})['then'](function(_0x47e8b7){_0x28fcc0[_0xabe5('0x65')][_0xabe5('0x62')](_0x47e8b7['dataValues']);})[_0xabe5('0x46')](function(_0xd345a2){_0x28fcc0[_0xabe5('0x66')]['push']({'data':_0x270de1,'error':_0xd345a2[_0xabe5('0x67')]});});})[_0xabe5('0x26')](function(_0x4d8e9c){return _0x28fcc0;})['catch'](function(_0x40dce8){return _0x40dce8;});}else{_0x2bf51e[_0xabe5('0x1d')](0x190)[_0xabe5('0x23')]({'message':_0xabe5('0x68')});}});}})[_0xabe5('0x26')](respondWithResult(_0x2bf51e,null))['catch'](handleError(_0x2bf51e,null));};exports['getContacts']=function(_0x3da886,_0x10b54b,_0x12299f){var _0x35edbd;return db[_0xabe5('0x31')][_0xabe5('0x4f')]({'where':{'id':_0x3da886[_0xabe5('0x47')]['id']},'include':[{'model':db[_0xabe5('0x69')],'as':_0xabe5('0x6a')}]})[_0xabe5('0x26')](handleEntityNotFound(_0x10b54b,null))[_0xabe5('0x26')](function(_0x55ce61){if(_0x55ce61){_0x35edbd=_0x55ce61;return db[_0xabe5('0x5f')][_0xabe5('0x32')];}})[_0xabe5('0x26')](function(_0x43854e){if(_0x43854e){var _0x1a40ce={};var _0x339bb5={};_0x339bb5['model']=_[_0xabe5('0x6b')](_[_0xabe5('0x48')](_0x43854e),_[_0xabe5('0x36')](_0x35edbd[_0xabe5('0x6a')],function(_0x15611c){return util['format']('cf_%d',_0x15611c['id']);}));_0x339bb5[_0xabe5('0x39')]=_[_0xabe5('0x48')](_0x3da886[_0xabe5('0x39')]);_0x339bb5['filters']=_[_0xabe5('0x38')](_0x339bb5[_0xabe5('0x35')],_0x339bb5['query']);_0x1a40ce[_0xabe5('0x3a')]=_[_0xabe5('0x38')](_0x339bb5[_0xabe5('0x35')],qs[_0xabe5('0x3b')](_0x3da886[_0xabe5('0x39')][_0xabe5('0x3b')]));_0x1a40ce[_0xabe5('0x3a')]=_0x1a40ce[_0xabe5('0x3a')][_0xabe5('0x3c')]?_0x1a40ce[_0xabe5('0x3a')]:_0x339bb5[_0xabe5('0x35')];if(!_0x3da886[_0xabe5('0x39')][_0xabe5('0x3d')](_0xabe5('0x3e'))){_0x1a40ce['limit']=qs['limit'](_0x3da886[_0xabe5('0x39')]['limit']);_0x1a40ce[_0xabe5('0x21')]=qs[_0xabe5('0x21')](_0x3da886[_0xabe5('0x39')][_0xabe5('0x21')]);}_0x1a40ce['order']=qs[_0xabe5('0x58')](_0x3da886[_0xabe5('0x39')][_0xabe5('0x58')]);_0x1a40ce['where']=qs[_0xabe5('0x37')](_[_0xabe5('0x40')](_0x3da886[_0xabe5('0x39')],_0x339bb5[_0xabe5('0x37')]));_0x1a40ce[_0xabe5('0x6c')]=!![];if(_0x3da886[_0xabe5('0x39')][_0xabe5('0x41')]){_0x1a40ce[_0xabe5('0x3f')]=_['merge'](_0x1a40ce['where'],{'$or':_[_0xabe5('0x36')](_0x1a40ce['attributes'],function(_0x33a32c){var _0xc4ab70={};_0xc4ab70[_0x33a32c]={'$like':'%'+_0x3da886[_0xabe5('0x39')][_0xabe5('0x41')]+'%'};return _0xc4ab70;})});}_0x1a40ce=_['merge']({},_0x1a40ce,_0x3da886[_0xabe5('0x43')]);return _0x35edbd[_0xabe5('0x6d')](_0x1a40ce);}})[_0xabe5('0x26')](respondWithResult(_0x10b54b,null))[_0xabe5('0x46')](handleError(_0x10b54b,null));};exports['getContactsCsv']=function(_0x3d2d6c,_0x23c75d,_0x35f8b6){var _0x11f63f;return db[_0xabe5('0x31')][_0xabe5('0x4f')]({'where':{'id':_0x3d2d6c[_0xabe5('0x47')]['id']},'include':[{'model':db['CmCustomField'],'as':_0xabe5('0x6a')}]})[_0xabe5('0x26')](handleEntityNotFound(_0x23c75d,null))['then'](function(_0x1d2437){if(_0x1d2437){_0x11f63f=_0x1d2437;return db['CmContact']['rawAttributes'];}})[_0xabe5('0x26')](function(_0x190a5b){if(_0x190a5b){var _0x4ef62e={};var _0x19223c={};_0x19223c[_0xabe5('0x35')]=_['concat'](_[_0xabe5('0x48')](_0x190a5b),_[_0xabe5('0x36')](_0x11f63f['CustomFields'],function(_0x14dd8d){return util[_0xabe5('0x6e')](_0xabe5('0x6f'),_0x14dd8d['id']);}));_0x19223c[_0xabe5('0x39')]=_[_0xabe5('0x48')](_0x3d2d6c[_0xabe5('0x39')]);_0x19223c[_0xabe5('0x37')]=_[_0xabe5('0x38')](_0x19223c[_0xabe5('0x35')],_0x19223c['query']);_0x4ef62e[_0xabe5('0x3a')]=_[_0xabe5('0x38')](_0x19223c[_0xabe5('0x35')],qs[_0xabe5('0x3b')](_0x3d2d6c[_0xabe5('0x39')][_0xabe5('0x3b')]));_0x4ef62e[_0xabe5('0x3a')]=_0x4ef62e[_0xabe5('0x3a')][_0xabe5('0x3c')]?_0x4ef62e[_0xabe5('0x3a')]:_0x19223c[_0xabe5('0x35')];if(!_0x3d2d6c[_0xabe5('0x39')][_0xabe5('0x3d')](_0xabe5('0x3e'))){_0x4ef62e[_0xabe5('0x1f')]=qs[_0xabe5('0x1f')](_0x3d2d6c['query']['limit']);_0x4ef62e[_0xabe5('0x21')]=qs['offset'](_0x3d2d6c[_0xabe5('0x39')]['offset']);}_0x4ef62e[_0xabe5('0x70')]=qs[_0xabe5('0x58')](_0x3d2d6c[_0xabe5('0x39')][_0xabe5('0x58')]);_0x4ef62e[_0xabe5('0x3f')]=qs[_0xabe5('0x37')](_['pick'](_0x3d2d6c[_0xabe5('0x39')],_0x19223c[_0xabe5('0x37')]));_0x4ef62e[_0xabe5('0x6c')]=!![];if(_0x3d2d6c['query']['filter']){_0x4ef62e[_0xabe5('0x3f')]=_['merge'](_0x4ef62e[_0xabe5('0x3f')],{'$or':_[_0xabe5('0x36')](_0x4ef62e[_0xabe5('0x3a')],function(_0x1b8c2d){var _0x5aad60={};_0x5aad60[_0x1b8c2d]={'$like':'%'+_0x3d2d6c['query'][_0xabe5('0x41')]+'%'};return _0x5aad60;})});}_0x4ef62e=_[_0xabe5('0x42')]({},_0x4ef62e,_0x3d2d6c[_0xabe5('0x43')]);return _0x11f63f[_0xabe5('0x6d')](_0x4ef62e);}})['then'](function(_0x22ba8a){if(!_[_0xabe5('0x71')](_0x22ba8a)){var _0x7e5d7c=toCsv(_0x22ba8a);var _0x43b266=Date[_0xabe5('0x72')]();fs[_0xabe5('0x73')](util['format'](_0xabe5('0x74'),_0x11f63f['id'],_0x43b266),_0x7e5d7c);_0x23c75d[_0xabe5('0x75')](_0xabe5('0x76'),_0xabe5('0x77')+util['format'](_0xabe5('0x78'),_0x11f63f['id'],_0x43b266));_0x23c75d['setHeader'](_0xabe5('0x79'),_0xabe5('0x7a'));return _0x23c75d['download'](util[_0xabe5('0x6e')](_0xabe5('0x74'),_0x11f63f['id'],_0x43b266));}else{return _0x23c75d['sendStatus'](0xcc);}})[_0xabe5('0x46')](handleError(_0x23c75d,null));};exports[_0xabe5('0x7b')]=function(_0x345a61,_0x283c2a,_0x58c238){var _0x3ee6f4;delete _0x345a61['body']['id'];return db[_0xabe5('0x31')][_0xabe5('0x57')]({'where':{'id':_0x345a61['params']['id']}})['then'](handleEntityNotFound(_0x283c2a,null))[_0xabe5('0x26')](function(_0x5c8ff8){if(_0x5c8ff8){return db['sequelize']['transaction'](function(_0x4ee817){return db[_0xabe5('0x69')][_0xabe5('0x49')](_0x345a61[_0xabe5('0x4a')],{'transaction':_0x4ee817})['then'](function(_0xc6b527){_0x3ee6f4=_0xc6b527;return _0x5c8ff8['addCustomFields'](_0xc6b527,{'transaction':_0x4ee817});})['then'](function(){var _0xe8836c={'type':db[_0xabe5('0x7c')][_0xabe5('0x7d')],'transaction':_0x4ee817};switch(_0x345a61[_0xabe5('0x4a')]['type']){case _0xabe5('0x7e'):_0xe8836c['type']=db[_0xabe5('0x7c')][_0xabe5('0x7d')];break;case _0xabe5('0x7f'):_0xe8836c['type']=db[_0xabe5('0x7c')][_0xabe5('0x80')];break;case _0xabe5('0x81'):_0xe8836c[_0xabe5('0x34')]=db[_0xabe5('0x7c')][_0xabe5('0x82')];_0xe8836c[_0xabe5('0x83')]=![];break;default:}return db['sequelize'][_0xabe5('0x84')][_0xabe5('0x85')](_0xabe5('0x86'),util['format'](_0xabe5('0x87'),_0x3ee6f4['id']),_0xe8836c);})[_0xabe5('0x26')](function(){return _0x3ee6f4;});});}})[_0xabe5('0x26')](respondWithResult(_0x283c2a,null))[_0xabe5('0x46')](handleError(_0x283c2a,null));};exports[_0xabe5('0x88')]=function(_0x5d3282,_0x46b0c3,_0x15dc50){var _0x4ac45b={};var _0x5bc8b5={};var _0x26c482;var _0x3b2f94;return db[_0xabe5('0x31')][_0xabe5('0x57')]({'where':{'id':_0x5d3282[_0xabe5('0x47')]['id']}})[_0xabe5('0x26')](handleEntityNotFound(_0x46b0c3,null))[_0xabe5('0x26')](function(_0x510788){if(_0x510788){_0x26c482=_0x510788;_0x5bc8b5[_0xabe5('0x35')]=_[_0xabe5('0x48')](db[_0xabe5('0x69')][_0xabe5('0x32')]);_0x5bc8b5[_0xabe5('0x39')]=_[_0xabe5('0x48')](_0x5d3282[_0xabe5('0x39')]);_0x5bc8b5[_0xabe5('0x37')]=_['intersection'](_0x5bc8b5[_0xabe5('0x35')],_0x5bc8b5[_0xabe5('0x39')]);_0x4ac45b['attributes']=_[_0xabe5('0x38')](_0x5bc8b5[_0xabe5('0x35')],qs['fields'](_0x5d3282['query'][_0xabe5('0x3b')]));_0x4ac45b['attributes']=_0x4ac45b[_0xabe5('0x3a')]['length']?_0x4ac45b[_0xabe5('0x3a')]:_0x5bc8b5[_0xabe5('0x35')];_0x4ac45b['order']=qs[_0xabe5('0x58')](_0x5d3282[_0xabe5('0x39')][_0xabe5('0x58')]);_0x4ac45b[_0xabe5('0x3f')]=qs[_0xabe5('0x37')](_[_0xabe5('0x40')](_0x5d3282[_0xabe5('0x39')],_0x5bc8b5[_0xabe5('0x37')]));_0x4ac45b[_0xabe5('0x3f')]=_[_0xabe5('0x42')](_0x4ac45b['where'],{'$or':[{'ListId':_0x510788['id']},{'ListId':null}]});if(_0x5d3282[_0xabe5('0x39')][_0xabe5('0x41')]){_0x4ac45b[_0xabe5('0x3f')]=_['merge'](_0x4ac45b[_0xabe5('0x3f')],{'$or':_[_0xabe5('0x36')](_0x4ac45b[_0xabe5('0x3a')],function(_0x1f28e4){var _0x3fc1f1={};_0x3fc1f1[_0x1f28e4]={'$like':'%'+_0x5d3282['query'][_0xabe5('0x41')]+'%'};return _0x3fc1f1;})});}_0x4ac45b=_[_0xabe5('0x42')]({},_0x4ac45b,_0x5d3282[_0xabe5('0x43')]);return db[_0xabe5('0x69')][_0xabe5('0x89')](_0x4ac45b);}})[_0xabe5('0x26')](respondWithResult(_0x46b0c3,null))[_0xabe5('0x46')](handleError(_0x46b0c3,null));};exports[_0xabe5('0x8a')]=function(_0x1fedbc,_0x3f6796,_0xe19528){return db['CmList'][_0xabe5('0x4f')]({'where':{'id':_0x1fedbc[_0xabe5('0x47')]['id']}})['then'](handleEntityNotFound(_0x3f6796,null))['then'](function(_0xee0fd9){if(_0xee0fd9){return _0xee0fd9[_0xabe5('0x8a')](_0x1fedbc['body']['ids'],_['omit'](_0x1fedbc[_0xabe5('0x4a')],[_0xabe5('0x5d'),'id'])||{})[_0xabe5('0x8b')](function(_0x2ffe15){for(var _0x5c5035=0x0;_0x5c5035<_0x1fedbc[_0xabe5('0x4a')]['ids']['length'];_0x5c5035+=0x1){socket[_0xabe5('0x8c')](_0xabe5('0x8d'),{'UserId':Number(_0x1fedbc[_0xabe5('0x4a')]['ids'][_0x5c5035]),'CmListId':Number(_0x1fedbc['params']['id'])});}return _0x2ffe15;});}})[_0xabe5('0x26')](respondWithResult(_0x3f6796,null))['catch'](handleError(_0x3f6796,null));};exports[_0xabe5('0x8e')]=function(_0x2736d8,_0x6c2953,_0x1be6e2){return db[_0xabe5('0x31')][_0xabe5('0x4f')]({'where':{'id':_0x2736d8['params']['id']}})[_0xabe5('0x26')](handleEntityNotFound(_0x6c2953,null))[_0xabe5('0x26')](function(_0x394b0b){if(_0x394b0b){return _0x394b0b[_0xabe5('0x8e')](_0x2736d8[_0xabe5('0x39')][_0xabe5('0x5d')])['then'](function(){if(_[_0xabe5('0x61')](_0x2736d8[_0xabe5('0x39')][_0xabe5('0x5d')])){for(var _0x150426=0x0;_0x150426<_0x2736d8[_0xabe5('0x39')][_0xabe5('0x5d')]['length'];_0x150426+=0x1){socket['emit']('userCmList:remove',{'UserId':Number(_0x2736d8['query'][_0xabe5('0x5d')][_0x150426]),'CmListId':Number(_0x2736d8['params']['id'])});}}else{socket['emit']('userCmList:remove',{'UserId':Number(_0x2736d8[_0xabe5('0x39')][_0xabe5('0x5d')]),'CmListId':Number(_0x2736d8['params']['id'])});}});}})[_0xabe5('0x26')](respondWithStatusCode(_0x6c2953,null))[_0xabe5('0x46')](handleError(_0x6c2953,null));};exports[_0xabe5('0x8f')]=function(_0x4b2f71,_0x4bf65a,_0x22dfca){var _0x2b8ba3={};var _0x2e1ca2={};var _0xfa4898;var _0x15d91b;return db[_0xabe5('0x31')][_0xabe5('0x57')]({'where':{'id':_0x4b2f71[_0xabe5('0x47')]['id']}})['then'](handleEntityNotFound(_0x4bf65a,null))[_0xabe5('0x26')](function(_0x578e94){if(_0x578e94){_0xfa4898=_0x578e94;_0x2e1ca2[_0xabe5('0x35')]=_[_0xabe5('0x48')](db[_0xabe5('0x90')]['rawAttributes']);_0x2e1ca2['query']=_[_0xabe5('0x48')](_0x4b2f71['query']);_0x2e1ca2['filters']=_[_0xabe5('0x38')](_0x2e1ca2['model'],_0x2e1ca2[_0xabe5('0x39')]);_0x2b8ba3[_0xabe5('0x3a')]=_[_0xabe5('0x38')](_0x2e1ca2[_0xabe5('0x35')],qs[_0xabe5('0x3b')](_0x4b2f71['query']['fields']));_0x2b8ba3[_0xabe5('0x3a')]=_0x2b8ba3[_0xabe5('0x3a')][_0xabe5('0x3c')]?_0x2b8ba3[_0xabe5('0x3a')]:_0x2e1ca2['model'];_0x2b8ba3[_0xabe5('0x70')]=qs[_0xabe5('0x58')](_0x4b2f71['query'][_0xabe5('0x58')]);_0x2b8ba3[_0xabe5('0x3f')]=qs[_0xabe5('0x37')](_[_0xabe5('0x40')](_0x4b2f71[_0xabe5('0x39')],_0x2e1ca2[_0xabe5('0x37')]));if(_0x4b2f71[_0xabe5('0x39')][_0xabe5('0x41')]){_0x2b8ba3[_0xabe5('0x3f')]=_[_0xabe5('0x42')](_0x2b8ba3[_0xabe5('0x3f')],{'$or':_[_0xabe5('0x36')](_0x2b8ba3[_0xabe5('0x3a')],function(_0x3bd53){var _0x265c2e={};_0x265c2e[_0x3bd53]={'$like':'%'+_0x4b2f71[_0xabe5('0x39')][_0xabe5('0x41')]+'%'};return _0x265c2e;})});}_0x2b8ba3=_[_0xabe5('0x42')]({},_0x2b8ba3,_0x4b2f71['options']);return _0xfa4898[_0xabe5('0x8f')](_0x2b8ba3);}})[_0xabe5('0x26')](function(_0x134913){if(_0x134913){_0x15d91b=_0x134913[_0xabe5('0x3c')];if(!_0x4b2f71[_0xabe5('0x39')][_0xabe5('0x3d')]('nolimit')){_0x2b8ba3[_0xabe5('0x1f')]=qs[_0xabe5('0x1f')](_0x4b2f71[_0xabe5('0x39')][_0xabe5('0x1f')]);_0x2b8ba3[_0xabe5('0x21')]=qs['offset'](_0x4b2f71[_0xabe5('0x39')]['offset']);}return _0xfa4898['getAgents'](_0x2b8ba3);}})[_0xabe5('0x26')](function(_0x221fa3){if(_0x221fa3){return _0x221fa3?{'count':_0x15d91b,'rows':_0x221fa3}:null;}})[_0xabe5('0x26')](respondWithResult(_0x4bf65a,null))[_0xabe5('0x46')](handleError(_0x4bf65a,null));};
\ No newline at end of file
+var _0x2d63=['../../config/utils','../../config/license/util','../../mysqldb','defaults','redis','socket.io-emitter','end','status','offset','undefined','limit','count','set','Content-Range','reject','save','update','then','get','Lists','destroy','sendStatus','error','stack','name','send','index','map','rawAttributes','type','key','model','keys','filters','intersection','query','attributes','fields','order','sort','where','pick','VIRTUAL','CmList','includeAll','include','rows','catch','show','params','length','merge','options','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','describe','ListId','Disposition','getDispositions','hasOwnProperty','nolimit','filter','removeDispositions','ids','addContacts','CmContact','tags','isArray','join','push','each','omit','success','dataValues','errors','Malformed\x20request\x20syntax','getContacts','CmCustomField','CustomFields','concat','format','cf_%d','raw','isEmpty','now','writeFileSync','/tmp/list_%d_%s.csv','setHeader','Content-disposition','attachment;\x20filename=','list_%d_%s.csv','Content-type','findOne','sequelize','transaction','addCustomFields','Sequelize','TEXT','text','number','BOOLEAN','defaultValue','addColumn','cm_contacts','findAndCountAll','addAgents','spread','userCmList:save','removeAgents','emit','userCmList:remove','getAgents','User','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger'];(function(_0x18d154,_0x3e4a3c){var _0x2c3934=function(_0x2eb69b){while(--_0x2eb69b){_0x18d154['push'](_0x18d154['shift']());}};_0x2c3934(++_0x3e4a3c);}(_0x2d63,0x79));var _0x32d6=function(_0x5146c3,_0x32ee27){_0x5146c3=_0x5146c3-0x0;var _0x37c79b=_0x2d63[_0x5146c3];return _0x37c79b;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x32d6('0x0'));var zipdir=require(_0x32d6('0x1'));var jsonpatch=require(_0x32d6('0x2'));var rp=require(_0x32d6('0x3'));var moment=require(_0x32d6('0x4'));var BPromise=require(_0x32d6('0x5'));var Mustache=require(_0x32d6('0x6'));var util=require(_0x32d6('0x7'));var path=require(_0x32d6('0x8'));var sox=require(_0x32d6('0x9'));var csv=require(_0x32d6('0xa'));var ejs=require(_0x32d6('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require('squel');var crypto=require(_0x32d6('0xc'));var jsforce=require(_0x32d6('0xd'));var deskjs=require(_0x32d6('0xe'));var toCsv=require(_0x32d6('0xa'));var querystring=require(_0x32d6('0xf'));var Papa=require(_0x32d6('0x10'));var Redis=require(_0x32d6('0x11'));var authService=require(_0x32d6('0x12'));var qs=require(_0x32d6('0x13'));var as=require(_0x32d6('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x32d6('0x15'))('api');var utils=require(_0x32d6('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x32d6('0x17'));var db=require(_0x32d6('0x18'))['db'];config['redis']=_[_0x32d6('0x19')](config[_0x32d6('0x1a')],{'host':'localhost','port':0x18eb});var socket=require(_0x32d6('0x1b'))(new Redis(config[_0x32d6('0x1a')]));require('./cmList.socket')['register'](socket);function respondWithStatusCode(_0x4829be,_0x1cd39d){_0x1cd39d=_0x1cd39d||0xcc;return function(_0x65207c){if(_0x65207c){return _0x4829be['sendStatus'](_0x1cd39d);}return _0x4829be['status'](_0x1cd39d)[_0x32d6('0x1c')]();};}function respondWithResult(_0x51eefa,_0x5cc809){_0x5cc809=_0x5cc809||0xc8;return function(_0x3154b5){if(_0x3154b5){return _0x51eefa[_0x32d6('0x1d')](_0x5cc809)['json'](_0x3154b5);}};}function respondWithFilteredResult(_0x55ecd2,_0x432904){return function(_0x27bd93){if(_0x27bd93){var _0x42264d=typeof _0x432904[_0x32d6('0x1e')]===_0x32d6('0x1f')&&typeof _0x432904[_0x32d6('0x20')]==='undefined';var _0x366554=_0x27bd93[_0x32d6('0x21')];var _0x42615f=_0x42264d?0x0:_0x432904[_0x32d6('0x1e')];var _0x61ff7e=_0x42264d?_0x27bd93[_0x32d6('0x21')]:_0x432904[_0x32d6('0x1e')]+_0x432904[_0x32d6('0x20')];var _0x1b7b83;if(_0x61ff7e>=_0x366554){_0x61ff7e=_0x366554;_0x1b7b83=0xc8;}else{_0x1b7b83=0xce;}_0x55ecd2[_0x32d6('0x1d')](_0x1b7b83);return _0x55ecd2[_0x32d6('0x22')](_0x32d6('0x23'),_0x42615f+'-'+_0x61ff7e+'/'+_0x366554)['json'](_0x27bd93);}return null;};}function patchUpdates(_0x1304a7){return function(_0x17779d){try{jsonpatch['apply'](_0x17779d,_0x1304a7,!![]);}catch(_0x1bdee3){return BPromise[_0x32d6('0x24')](_0x1bdee3);}return _0x17779d[_0x32d6('0x25')]();};}function saveUpdates(_0x5f1b58,_0x546f5a){return function(_0xe682e4){if(_0xe682e4){return _0xe682e4[_0x32d6('0x26')](_0x5f1b58)[_0x32d6('0x27')](function(_0x33813d){return _0x33813d;});}return null;};}function removeEntity(_0x418c48,_0x2dc45c){return function(_0x1da92a){if(_0x1da92a){return _0x1da92a['destroy']()[_0x32d6('0x27')](function(){var _0x1600c9=_0x1da92a[_0x32d6('0x28')]({'plain':!![]});var _0x5bef8e=_0x32d6('0x29');return db['UserProfileResource'][_0x32d6('0x2a')]({'where':{'type':_0x5bef8e,'resourceId':_0x1600c9['id']}})[_0x32d6('0x27')](function(){return _0x1da92a;});})[_0x32d6('0x27')](function(){_0x418c48[_0x32d6('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x84e6f4,_0x2c348c){return function(_0x3857f1){if(!_0x3857f1){_0x84e6f4[_0x32d6('0x2b')](0x194);}return _0x3857f1;};}function handleError(_0x44b6ff,_0x6a1c8c){_0x6a1c8c=_0x6a1c8c||0x1f4;return function(_0x2dab40){logger[_0x32d6('0x2c')](_0x2dab40[_0x32d6('0x2d')]);if(_0x2dab40['name']){delete _0x2dab40[_0x32d6('0x2e')];}_0x44b6ff[_0x32d6('0x1d')](_0x6a1c8c)[_0x32d6('0x2f')](_0x2dab40);};}exports[_0x32d6('0x30')]=function(_0x451b1b,_0x54875f){var _0x5d6b18={},_0x379fde={},_0x140fb6={'count':0x0,'rows':[]};var _0x2a5529=_[_0x32d6('0x31')](db['CmList'][_0x32d6('0x32')],function(_0x3ec1bc){return{'name':_0x3ec1bc['fieldName'],'type':_0x3ec1bc[_0x32d6('0x33')][_0x32d6('0x34')]};});_0x379fde[_0x32d6('0x35')]=_[_0x32d6('0x31')](_0x2a5529,_0x32d6('0x2e'));_0x379fde['query']=_[_0x32d6('0x36')](_0x451b1b['query']);_0x379fde[_0x32d6('0x37')]=_[_0x32d6('0x38')](_0x379fde[_0x32d6('0x35')],_0x379fde[_0x32d6('0x39')]);_0x5d6b18[_0x32d6('0x3a')]=_[_0x32d6('0x38')](_0x379fde[_0x32d6('0x35')],qs[_0x32d6('0x3b')](_0x451b1b['query'][_0x32d6('0x3b')]));_0x5d6b18[_0x32d6('0x3a')]=_0x5d6b18[_0x32d6('0x3a')]['length']?_0x5d6b18[_0x32d6('0x3a')]:_0x379fde[_0x32d6('0x35')];if(!_0x451b1b[_0x32d6('0x39')]['hasOwnProperty']('nolimit')){_0x5d6b18[_0x32d6('0x20')]=qs['limit'](_0x451b1b[_0x32d6('0x39')][_0x32d6('0x20')]);_0x5d6b18[_0x32d6('0x1e')]=qs['offset'](_0x451b1b[_0x32d6('0x39')]['offset']);}_0x5d6b18[_0x32d6('0x3c')]=qs['sort'](_0x451b1b[_0x32d6('0x39')][_0x32d6('0x3d')]);_0x5d6b18[_0x32d6('0x3e')]=qs[_0x32d6('0x37')](_[_0x32d6('0x3f')](_0x451b1b[_0x32d6('0x39')],_0x379fde[_0x32d6('0x37')]),_0x2a5529);if(_0x451b1b['query']['filter']){_0x5d6b18[_0x32d6('0x3e')]=_['merge'](_0x5d6b18[_0x32d6('0x3e')],{'$or':_[_0x32d6('0x31')](_0x2a5529,function(_0x393856){if(_0x393856[_0x32d6('0x33')]!==_0x32d6('0x40')){var _0x15d26e={};_0x15d26e[_0x393856[_0x32d6('0x2e')]]={'$like':'%'+_0x451b1b[_0x32d6('0x39')]['filter']+'%'};return _0x15d26e;}})});}_0x5d6b18=_['merge']({},_0x5d6b18,_0x451b1b['options']);var _0x15d06e={'where':_0x5d6b18['where']};return db[_0x32d6('0x41')][_0x32d6('0x21')](_0x15d06e)[_0x32d6('0x27')](function(_0x25ab32){_0x140fb6[_0x32d6('0x21')]=_0x25ab32;if(_0x451b1b[_0x32d6('0x39')][_0x32d6('0x42')]){_0x5d6b18[_0x32d6('0x43')]=[{'all':!![]}];}return db[_0x32d6('0x41')]['findAll'](_0x5d6b18);})[_0x32d6('0x27')](function(_0x3b624d){_0x140fb6[_0x32d6('0x44')]=_0x3b624d;return _0x140fb6;})[_0x32d6('0x27')](respondWithFilteredResult(_0x54875f,_0x5d6b18))[_0x32d6('0x45')](handleError(_0x54875f,null));};exports[_0x32d6('0x46')]=function(_0x32a1da,_0x11b4b9){var _0x3bbbbe={'raw':![],'where':{'id':_0x32a1da[_0x32d6('0x47')]['id']}},_0x3b4541={};_0x3b4541[_0x32d6('0x35')]=_[_0x32d6('0x36')](db['CmList']['rawAttributes']);_0x3b4541[_0x32d6('0x39')]=_['keys'](_0x32a1da[_0x32d6('0x39')]);_0x3b4541['filters']=_[_0x32d6('0x38')](_0x3b4541[_0x32d6('0x35')],_0x3b4541[_0x32d6('0x39')]);_0x3bbbbe[_0x32d6('0x3a')]=_[_0x32d6('0x38')](_0x3b4541['model'],qs[_0x32d6('0x3b')](_0x32a1da['query'][_0x32d6('0x3b')]));_0x3bbbbe[_0x32d6('0x3a')]=_0x3bbbbe['attributes'][_0x32d6('0x48')]?_0x3bbbbe[_0x32d6('0x3a')]:_0x3b4541[_0x32d6('0x35')];if(_0x32a1da['query'][_0x32d6('0x42')]){_0x3bbbbe[_0x32d6('0x43')]=[{'all':!![]}];}_0x3bbbbe=_[_0x32d6('0x49')]({},_0x3bbbbe,_0x32a1da[_0x32d6('0x4a')]);return db['CmList'][_0x32d6('0x4b')](_0x3bbbbe)[_0x32d6('0x27')](handleEntityNotFound(_0x11b4b9,null))[_0x32d6('0x27')](respondWithResult(_0x11b4b9,null))[_0x32d6('0x45')](handleError(_0x11b4b9,null));};exports['create']=function(_0x5d37f8,_0x38a859){return db[_0x32d6('0x41')][_0x32d6('0x4c')](_0x5d37f8['body'],{})[_0x32d6('0x27')](function(_0xf4224b){var _0x2926bb=_0x5d37f8[_0x32d6('0x4d')]['get']({'plain':!![]});if(!_0x2926bb)throw new Error(_0x32d6('0x4e'));if(_0x2926bb[_0x32d6('0x4f')]===_0x32d6('0x4d')){var _0x24b685=_0xf4224b['get']({'plain':!![]});var _0x5e665a=_0x32d6('0x29');return db[_0x32d6('0x50')][_0x32d6('0x4b')]({'where':{'name':_0x5e665a,'userProfileId':_0x2926bb['userProfileId']},'raw':!![]})[_0x32d6('0x27')](function(_0xdfff12){if(_0xdfff12&&_0xdfff12[_0x32d6('0x51')]===0x0){return db[_0x32d6('0x52')][_0x32d6('0x4c')]({'name':_0x24b685[_0x32d6('0x2e')],'resourceId':_0x24b685['id'],'type':_0xdfff12[_0x32d6('0x2e')],'sectionId':_0xdfff12['id']},{})['then'](function(){return _0xf4224b;});}else{return _0xf4224b;}})[_0x32d6('0x45')](function(_0x3104d5){logger[_0x32d6('0x2c')](_0x32d6('0x53'),_0x3104d5);throw _0x3104d5;});}return _0xf4224b;})[_0x32d6('0x27')](respondWithResult(_0x38a859,0xc9))[_0x32d6('0x45')](handleError(_0x38a859,null));};exports[_0x32d6('0x26')]=function(_0x2c2a17,_0x32ece7){if(_0x2c2a17[_0x32d6('0x54')]['id']){delete _0x2c2a17[_0x32d6('0x54')]['id'];}return db[_0x32d6('0x41')][_0x32d6('0x4b')]({'where':{'id':_0x2c2a17[_0x32d6('0x47')]['id']}})[_0x32d6('0x27')](handleEntityNotFound(_0x32ece7,null))['then'](saveUpdates(_0x2c2a17[_0x32d6('0x54')],null))['then'](respondWithResult(_0x32ece7,null))[_0x32d6('0x45')](handleError(_0x32ece7,null));};exports['destroy']=function(_0xb4c681,_0x5e8b06){return db[_0x32d6('0x41')][_0x32d6('0x4b')]({'where':{'id':_0xb4c681['params']['id']}})['then'](handleEntityNotFound(_0x5e8b06,null))[_0x32d6('0x27')](removeEntity(_0x5e8b06,null))[_0x32d6('0x45')](handleError(_0x5e8b06,null));};exports[_0x32d6('0x55')]=function(_0x14ea4f,_0x352bb0){return db[_0x32d6('0x41')][_0x32d6('0x55')]()[_0x32d6('0x27')](respondWithResult(_0x352bb0,null))[_0x32d6('0x45')](handleError(_0x352bb0,null));};exports['addDisposition']=function(_0x5d88c9,_0x13ecb9,_0x4415a9){if(_0x5d88c9[_0x32d6('0x54')]['id']){delete _0x5d88c9[_0x32d6('0x54')]['id'];}return db[_0x32d6('0x41')][_0x32d6('0x4b')]({'where':{'id':_0x5d88c9[_0x32d6('0x47')]['id']}})[_0x32d6('0x27')](handleEntityNotFound(_0x13ecb9,null))[_0x32d6('0x27')](function(_0x34babb){if(_0x34babb){_0x5d88c9[_0x32d6('0x54')][_0x32d6('0x56')]=_0x34babb['id'];return db[_0x32d6('0x57')][_0x32d6('0x4c')](_0x5d88c9[_0x32d6('0x54')]);}})[_0x32d6('0x27')](respondWithResult(_0x13ecb9,null))['catch'](handleError(_0x13ecb9,null));};exports[_0x32d6('0x58')]=function(_0x250476,_0x3b1c3e,_0xa4387c){var _0x56068c={'raw':![],'where':{}};var _0x364e87={};var _0x53587f={'count':0x0,'rows':[]};return db[_0x32d6('0x41')]['findOne']({'where':{'id':_0x250476[_0x32d6('0x47')]['id']}})['then'](handleEntityNotFound(_0x3b1c3e,null))[_0x32d6('0x27')](function(_0x46cfad){if(_0x46cfad){_0x364e87[_0x32d6('0x35')]=_[_0x32d6('0x36')](db[_0x32d6('0x57')][_0x32d6('0x32')]);_0x364e87[_0x32d6('0x39')]=_[_0x32d6('0x36')](_0x250476['query']);_0x364e87[_0x32d6('0x37')]=_[_0x32d6('0x38')](_0x364e87['model'],_0x364e87[_0x32d6('0x39')]);_0x56068c[_0x32d6('0x3a')]=_['intersection'](_0x364e87[_0x32d6('0x35')],qs[_0x32d6('0x3b')](_0x250476[_0x32d6('0x39')][_0x32d6('0x3b')]));_0x56068c[_0x32d6('0x3a')]=_0x56068c['attributes'][_0x32d6('0x48')]?_0x56068c[_0x32d6('0x3a')]:_0x364e87[_0x32d6('0x35')];if(!_0x250476[_0x32d6('0x39')][_0x32d6('0x59')](_0x32d6('0x5a'))){_0x56068c['limit']=qs[_0x32d6('0x20')](_0x250476['query'][_0x32d6('0x20')]);_0x56068c[_0x32d6('0x1e')]=qs[_0x32d6('0x1e')](_0x250476[_0x32d6('0x39')]['offset']);}_0x56068c[_0x32d6('0x3c')]=qs[_0x32d6('0x3d')](_0x250476[_0x32d6('0x39')][_0x32d6('0x3d')]);_0x56068c[_0x32d6('0x3e')]=qs[_0x32d6('0x37')](_[_0x32d6('0x3f')](_0x250476['query'],_0x364e87[_0x32d6('0x37')]));_0x56068c[_0x32d6('0x3e')][_0x32d6('0x56')]=_0x46cfad['id'];if(_0x250476[_0x32d6('0x39')][_0x32d6('0x5b')]){_0x56068c[_0x32d6('0x3e')]=_['merge'](_0x56068c['where'],{'$or':_[_0x32d6('0x31')](_0x56068c[_0x32d6('0x3a')],function(_0x4499e1){var _0x4e86c6={};_0x4e86c6[_0x4499e1]={'$like':'%'+_0x250476[_0x32d6('0x39')][_0x32d6('0x5b')]+'%'};return _0x4e86c6;})});}_0x56068c=_['merge']({},_0x56068c,_0x250476[_0x32d6('0x4a')]);return db[_0x32d6('0x57')]['count']({'where':_0x56068c['where']})[_0x32d6('0x27')](function(_0x55508d){_0x53587f[_0x32d6('0x21')]=_0x55508d;if(_0x250476[_0x32d6('0x39')][_0x32d6('0x42')]){_0x56068c[_0x32d6('0x43')]=[{'all':!![]}];}return db[_0x32d6('0x57')]['findAll'](_0x56068c);})[_0x32d6('0x27')](function(_0x4f827f){_0x53587f['rows']=_0x4f827f;return _0x53587f;});}})['then'](respondWithFilteredResult(_0x3b1c3e,_0x56068c))[_0x32d6('0x45')](handleError(_0x3b1c3e,null));};exports[_0x32d6('0x5c')]=function(_0x3675ea,_0x1ed86a,_0x49e252){return db[_0x32d6('0x41')][_0x32d6('0x4b')]({'where':{'id':_0x3675ea[_0x32d6('0x47')]['id']}})[_0x32d6('0x27')](handleEntityNotFound(_0x1ed86a,null))['then'](function(_0x4e8e61){if(_0x4e8e61){return _0x4e8e61[_0x32d6('0x5c')](_0x3675ea[_0x32d6('0x39')][_0x32d6('0x5d')]);}})['then'](respondWithStatusCode(_0x1ed86a,null))['catch'](handleError(_0x1ed86a,null));};exports[_0x32d6('0x5e')]=function(_0x1834b4,_0x3407df,_0x2c5ba7){return db['CmList'][_0x32d6('0x4b')]({'where':{'id':_0x1834b4[_0x32d6('0x47')]['id']}})[_0x32d6('0x27')](handleEntityNotFound(_0x3407df,null))[_0x32d6('0x27')](function(_0x367c7f){if(_0x367c7f){var _0xda99c1=[];var _0x86a4a={'success':[],'errors':[]};return db[_0x32d6('0x5f')][_0x32d6('0x55')]()[_0x32d6('0x27')](function(_0x3075df){if(_0x1834b4[_0x32d6('0x54')][_0x32d6('0x60')]&&_[_0x32d6('0x61')](_0x1834b4[_0x32d6('0x54')]['tags'])){if(_0x1834b4['body'][_0x32d6('0x60')]['length']){_0x1834b4[_0x32d6('0x54')][_0x32d6('0x60')]=_0x1834b4[_0x32d6('0x54')][_0x32d6('0x60')][_0x32d6('0x62')](';')+';';}else{_0x1834b4['body'][_0x32d6('0x60')]=null;}}else{_0x1834b4['body'][_0x32d6('0x60')]=null;}if(_0x1834b4['body']&&_[_0x32d6('0x61')](_0x1834b4[_0x32d6('0x54')])){for(var _0x444df2=0x0;_0x444df2<_0x1834b4[_0x32d6('0x54')][_0x32d6('0x48')];_0x444df2+=0x1){_0x1834b4[_0x32d6('0x54')][_0x444df2][_0x32d6('0x56')]=_0x1834b4[_0x32d6('0x47')]['id'];_0xda99c1[_0x32d6('0x63')](_0x1834b4['body'][_0x444df2]);}return BPromise[_0x32d6('0x64')](_0xda99c1,function(_0x5c659f){return db[_0x32d6('0x5f')]['create'](_[_0x32d6('0x65')](_0x5c659f,[_0x32d6('0x5d'),'id'])||{},{'fields':_['keys'](_0x3075df),'raw':!![]})[_0x32d6('0x27')](function(_0x51af6a){_0x86a4a[_0x32d6('0x66')][_0x32d6('0x63')](_0x51af6a[_0x32d6('0x67')]);})[_0x32d6('0x45')](function(_0x3c04f4){_0x86a4a[_0x32d6('0x68')][_0x32d6('0x63')]({'data':_0x5c659f,'error':_0x3c04f4['message']});});})[_0x32d6('0x27')](function(_0x2c1472){return _0x86a4a;})[_0x32d6('0x45')](function(_0x6664f5){return _0x6664f5;});}else{_0x3407df['status'](0x190)['json']({'message':_0x32d6('0x69')});}});}})[_0x32d6('0x27')](respondWithResult(_0x3407df,null))[_0x32d6('0x45')](handleError(_0x3407df,null));};exports[_0x32d6('0x6a')]=function(_0x41a5c9,_0x3f8ec5,_0x3ae7dc){var _0x393689;return db['CmList'][_0x32d6('0x4b')]({'where':{'id':_0x41a5c9[_0x32d6('0x47')]['id']},'include':[{'model':db[_0x32d6('0x6b')],'as':_0x32d6('0x6c')}]})[_0x32d6('0x27')](handleEntityNotFound(_0x3f8ec5,null))[_0x32d6('0x27')](function(_0x4676a8){if(_0x4676a8){_0x393689=_0x4676a8;return db[_0x32d6('0x5f')][_0x32d6('0x32')];}})[_0x32d6('0x27')](function(_0x2ebf53){if(_0x2ebf53){var _0x355010={};var _0x3c1f6a={};_0x3c1f6a[_0x32d6('0x35')]=_[_0x32d6('0x6d')](_[_0x32d6('0x36')](_0x2ebf53),_[_0x32d6('0x31')](_0x393689[_0x32d6('0x6c')],function(_0x4f2d4c){return util[_0x32d6('0x6e')](_0x32d6('0x6f'),_0x4f2d4c['id']);}));_0x3c1f6a['query']=_[_0x32d6('0x36')](_0x41a5c9[_0x32d6('0x39')]);_0x3c1f6a[_0x32d6('0x37')]=_['intersection'](_0x3c1f6a[_0x32d6('0x35')],_0x3c1f6a[_0x32d6('0x39')]);_0x355010[_0x32d6('0x3a')]=_['intersection'](_0x3c1f6a[_0x32d6('0x35')],qs[_0x32d6('0x3b')](_0x41a5c9[_0x32d6('0x39')][_0x32d6('0x3b')]));_0x355010[_0x32d6('0x3a')]=_0x355010[_0x32d6('0x3a')]['length']?_0x355010[_0x32d6('0x3a')]:_0x3c1f6a[_0x32d6('0x35')];if(!_0x41a5c9['query'][_0x32d6('0x59')](_0x32d6('0x5a'))){_0x355010['limit']=qs[_0x32d6('0x20')](_0x41a5c9['query'][_0x32d6('0x20')]);_0x355010[_0x32d6('0x1e')]=qs[_0x32d6('0x1e')](_0x41a5c9['query'][_0x32d6('0x1e')]);}_0x355010[_0x32d6('0x3c')]=qs[_0x32d6('0x3d')](_0x41a5c9[_0x32d6('0x39')][_0x32d6('0x3d')]);_0x355010['where']=qs[_0x32d6('0x37')](_[_0x32d6('0x3f')](_0x41a5c9[_0x32d6('0x39')],_0x3c1f6a[_0x32d6('0x37')]));_0x355010[_0x32d6('0x70')]=!![];if(_0x41a5c9[_0x32d6('0x39')][_0x32d6('0x5b')]){_0x355010['where']=_[_0x32d6('0x49')](_0x355010[_0x32d6('0x3e')],{'$or':_['map'](_0x355010[_0x32d6('0x3a')],function(_0xd394c2){var _0x2b9035={};_0x2b9035[_0xd394c2]={'$like':'%'+_0x41a5c9['query']['filter']+'%'};return _0x2b9035;})});}_0x355010=_[_0x32d6('0x49')]({},_0x355010,_0x41a5c9[_0x32d6('0x4a')]);return _0x393689['getContacts'](_0x355010);}})[_0x32d6('0x27')](respondWithResult(_0x3f8ec5,null))['catch'](handleError(_0x3f8ec5,null));};exports['getContactsCsv']=function(_0x1a0804,_0xcf8df9,_0x2a5d0e){var _0x15d1fb;return db['CmList'][_0x32d6('0x4b')]({'where':{'id':_0x1a0804[_0x32d6('0x47')]['id']},'include':[{'model':db[_0x32d6('0x6b')],'as':_0x32d6('0x6c')}]})[_0x32d6('0x27')](handleEntityNotFound(_0xcf8df9,null))[_0x32d6('0x27')](function(_0x4e753d){if(_0x4e753d){_0x15d1fb=_0x4e753d;return db[_0x32d6('0x5f')][_0x32d6('0x32')];}})[_0x32d6('0x27')](function(_0x186bd3){if(_0x186bd3){var _0x254a3a={};var _0x1110ca={};_0x1110ca['model']=_[_0x32d6('0x6d')](_[_0x32d6('0x36')](_0x186bd3),_['map'](_0x15d1fb[_0x32d6('0x6c')],function(_0x5363fa){return util[_0x32d6('0x6e')](_0x32d6('0x6f'),_0x5363fa['id']);}));_0x1110ca[_0x32d6('0x39')]=_['keys'](_0x1a0804[_0x32d6('0x39')]);_0x1110ca[_0x32d6('0x37')]=_[_0x32d6('0x38')](_0x1110ca[_0x32d6('0x35')],_0x1110ca[_0x32d6('0x39')]);_0x254a3a[_0x32d6('0x3a')]=_[_0x32d6('0x38')](_0x1110ca['model'],qs[_0x32d6('0x3b')](_0x1a0804[_0x32d6('0x39')]['fields']));_0x254a3a[_0x32d6('0x3a')]=_0x254a3a[_0x32d6('0x3a')]['length']?_0x254a3a['attributes']:_0x1110ca['model'];if(!_0x1a0804['query'][_0x32d6('0x59')](_0x32d6('0x5a'))){_0x254a3a[_0x32d6('0x20')]=qs['limit'](_0x1a0804['query'][_0x32d6('0x20')]);_0x254a3a[_0x32d6('0x1e')]=qs[_0x32d6('0x1e')](_0x1a0804['query'][_0x32d6('0x1e')]);}_0x254a3a['order']=qs[_0x32d6('0x3d')](_0x1a0804[_0x32d6('0x39')]['sort']);_0x254a3a[_0x32d6('0x3e')]=qs['filters'](_[_0x32d6('0x3f')](_0x1a0804[_0x32d6('0x39')],_0x1110ca['filters']));_0x254a3a[_0x32d6('0x70')]=!![];if(_0x1a0804[_0x32d6('0x39')][_0x32d6('0x5b')]){_0x254a3a[_0x32d6('0x3e')]=_[_0x32d6('0x49')](_0x254a3a['where'],{'$or':_[_0x32d6('0x31')](_0x254a3a[_0x32d6('0x3a')],function(_0x485a81){var _0x313f73={};_0x313f73[_0x485a81]={'$like':'%'+_0x1a0804[_0x32d6('0x39')]['filter']+'%'};return _0x313f73;})});}_0x254a3a=_[_0x32d6('0x49')]({},_0x254a3a,_0x1a0804[_0x32d6('0x4a')]);return _0x15d1fb['getContacts'](_0x254a3a);}})['then'](function(_0x3377bd){if(!_[_0x32d6('0x71')](_0x3377bd)){var _0x3c5b50=toCsv(_0x3377bd);var _0x3ea49a=Date[_0x32d6('0x72')]();fs[_0x32d6('0x73')](util[_0x32d6('0x6e')](_0x32d6('0x74'),_0x15d1fb['id'],_0x3ea49a),_0x3c5b50);_0xcf8df9[_0x32d6('0x75')](_0x32d6('0x76'),_0x32d6('0x77')+util['format'](_0x32d6('0x78'),_0x15d1fb['id'],_0x3ea49a));_0xcf8df9[_0x32d6('0x75')](_0x32d6('0x79'),'text/csv');return _0xcf8df9['download'](util[_0x32d6('0x6e')](_0x32d6('0x74'),_0x15d1fb['id'],_0x3ea49a));}else{return _0xcf8df9[_0x32d6('0x2b')](0xcc);}})[_0x32d6('0x45')](handleError(_0xcf8df9,null));};exports['addCustomField']=function(_0x2a83d7,_0x4e26f1,_0x2c1a6f){var _0x2d78fd;delete _0x2a83d7[_0x32d6('0x54')]['id'];return db[_0x32d6('0x41')][_0x32d6('0x7a')]({'where':{'id':_0x2a83d7[_0x32d6('0x47')]['id']}})[_0x32d6('0x27')](handleEntityNotFound(_0x4e26f1,null))[_0x32d6('0x27')](function(_0x50ad44){if(_0x50ad44){return db[_0x32d6('0x7b')][_0x32d6('0x7c')](function(_0x4e4c1c){return db[_0x32d6('0x6b')][_0x32d6('0x4c')](_0x2a83d7['body'],{'transaction':_0x4e4c1c})[_0x32d6('0x27')](function(_0x2599f2){_0x2d78fd=_0x2599f2;return _0x50ad44[_0x32d6('0x7d')](_0x2599f2,{'transaction':_0x4e4c1c});})[_0x32d6('0x27')](function(){var _0x53308b={'type':db[_0x32d6('0x7e')][_0x32d6('0x7f')],'transaction':_0x4e4c1c};switch(_0x2a83d7[_0x32d6('0x54')][_0x32d6('0x33')]){case _0x32d6('0x80'):_0x53308b[_0x32d6('0x33')]=db['Sequelize'][_0x32d6('0x7f')];break;case _0x32d6('0x81'):_0x53308b[_0x32d6('0x33')]=db[_0x32d6('0x7e')]['INTEGER'];break;case'switch':_0x53308b[_0x32d6('0x33')]=db['Sequelize'][_0x32d6('0x82')];_0x53308b[_0x32d6('0x83')]=![];break;default:}return db[_0x32d6('0x7b')]['queryInterface'][_0x32d6('0x84')](_0x32d6('0x85'),util[_0x32d6('0x6e')]('cf_%s',_0x2d78fd['id']),_0x53308b);})[_0x32d6('0x27')](function(){return _0x2d78fd;});});}})['then'](respondWithResult(_0x4e26f1,null))[_0x32d6('0x45')](handleError(_0x4e26f1,null));};exports['getCustomFields']=function(_0x34756a,_0x40b29e,_0x2642ca){var _0x42f82e={};var _0x39eaa4={};var _0x2cf7fa;var _0x313766;return db[_0x32d6('0x41')][_0x32d6('0x7a')]({'where':{'id':_0x34756a['params']['id']}})[_0x32d6('0x27')](handleEntityNotFound(_0x40b29e,null))['then'](function(_0x40e383){if(_0x40e383){_0x2cf7fa=_0x40e383;_0x39eaa4[_0x32d6('0x35')]=_[_0x32d6('0x36')](db[_0x32d6('0x6b')][_0x32d6('0x32')]);_0x39eaa4[_0x32d6('0x39')]=_[_0x32d6('0x36')](_0x34756a[_0x32d6('0x39')]);_0x39eaa4[_0x32d6('0x37')]=_[_0x32d6('0x38')](_0x39eaa4['model'],_0x39eaa4[_0x32d6('0x39')]);_0x42f82e[_0x32d6('0x3a')]=_[_0x32d6('0x38')](_0x39eaa4['model'],qs[_0x32d6('0x3b')](_0x34756a[_0x32d6('0x39')]['fields']));_0x42f82e[_0x32d6('0x3a')]=_0x42f82e[_0x32d6('0x3a')][_0x32d6('0x48')]?_0x42f82e[_0x32d6('0x3a')]:_0x39eaa4[_0x32d6('0x35')];_0x42f82e[_0x32d6('0x3c')]=qs[_0x32d6('0x3d')](_0x34756a[_0x32d6('0x39')][_0x32d6('0x3d')]);_0x42f82e[_0x32d6('0x3e')]=qs[_0x32d6('0x37')](_[_0x32d6('0x3f')](_0x34756a[_0x32d6('0x39')],_0x39eaa4[_0x32d6('0x37')]));_0x42f82e[_0x32d6('0x3e')]=_['merge'](_0x42f82e[_0x32d6('0x3e')],{'$or':[{'ListId':_0x40e383['id']},{'ListId':null}]});if(_0x34756a[_0x32d6('0x39')][_0x32d6('0x5b')]){_0x42f82e[_0x32d6('0x3e')]=_[_0x32d6('0x49')](_0x42f82e[_0x32d6('0x3e')],{'$or':_[_0x32d6('0x31')](_0x42f82e[_0x32d6('0x3a')],function(_0x891d74){var _0x6df7c1={};_0x6df7c1[_0x891d74]={'$like':'%'+_0x34756a[_0x32d6('0x39')][_0x32d6('0x5b')]+'%'};return _0x6df7c1;})});}_0x42f82e=_[_0x32d6('0x49')]({},_0x42f82e,_0x34756a[_0x32d6('0x4a')]);return db[_0x32d6('0x6b')][_0x32d6('0x86')](_0x42f82e);}})[_0x32d6('0x27')](respondWithResult(_0x40b29e,null))[_0x32d6('0x45')](handleError(_0x40b29e,null));};exports[_0x32d6('0x87')]=function(_0x383c47,_0x55d645,_0x1c99b7){return db[_0x32d6('0x41')][_0x32d6('0x4b')]({'where':{'id':_0x383c47[_0x32d6('0x47')]['id']}})[_0x32d6('0x27')](handleEntityNotFound(_0x55d645,null))[_0x32d6('0x27')](function(_0x56fa1d){if(_0x56fa1d){return _0x56fa1d[_0x32d6('0x87')](_0x383c47['body'][_0x32d6('0x5d')],_[_0x32d6('0x65')](_0x383c47[_0x32d6('0x54')],[_0x32d6('0x5d'),'id'])||{})[_0x32d6('0x88')](function(_0x20e727){for(var _0x1da9a0=0x0;_0x1da9a0<_0x383c47[_0x32d6('0x54')][_0x32d6('0x5d')][_0x32d6('0x48')];_0x1da9a0+=0x1){socket['emit'](_0x32d6('0x89'),{'UserId':Number(_0x383c47[_0x32d6('0x54')]['ids'][_0x1da9a0]),'CmListId':Number(_0x383c47['params']['id'])});}return _0x20e727;});}})[_0x32d6('0x27')](respondWithResult(_0x55d645,null))[_0x32d6('0x45')](handleError(_0x55d645,null));};exports[_0x32d6('0x8a')]=function(_0x90e141,_0x483755,_0x56896d){return db[_0x32d6('0x41')][_0x32d6('0x4b')]({'where':{'id':_0x90e141[_0x32d6('0x47')]['id']}})[_0x32d6('0x27')](handleEntityNotFound(_0x483755,null))[_0x32d6('0x27')](function(_0x1a32d7){if(_0x1a32d7){return _0x1a32d7[_0x32d6('0x8a')](_0x90e141['query'][_0x32d6('0x5d')])[_0x32d6('0x27')](function(){if(_[_0x32d6('0x61')](_0x90e141[_0x32d6('0x39')][_0x32d6('0x5d')])){for(var _0x3dcd57=0x0;_0x3dcd57<_0x90e141[_0x32d6('0x39')][_0x32d6('0x5d')][_0x32d6('0x48')];_0x3dcd57+=0x1){socket[_0x32d6('0x8b')]('userCmList:remove',{'UserId':Number(_0x90e141[_0x32d6('0x39')][_0x32d6('0x5d')][_0x3dcd57]),'CmListId':Number(_0x90e141[_0x32d6('0x47')]['id'])});}}else{socket[_0x32d6('0x8b')](_0x32d6('0x8c'),{'UserId':Number(_0x90e141[_0x32d6('0x39')][_0x32d6('0x5d')]),'CmListId':Number(_0x90e141[_0x32d6('0x47')]['id'])});}});}})[_0x32d6('0x27')](respondWithStatusCode(_0x483755,null))['catch'](handleError(_0x483755,null));};exports[_0x32d6('0x8d')]=function(_0x5451b6,_0x5f1f2c,_0x30a51b){var _0x5a7f04={};var _0x2d1503={};var _0x5d5018;var _0x129695;return db[_0x32d6('0x41')][_0x32d6('0x7a')]({'where':{'id':_0x5451b6[_0x32d6('0x47')]['id']}})[_0x32d6('0x27')](handleEntityNotFound(_0x5f1f2c,null))['then'](function(_0x37d88c){if(_0x37d88c){_0x5d5018=_0x37d88c;_0x2d1503[_0x32d6('0x35')]=_['keys'](db[_0x32d6('0x8e')][_0x32d6('0x32')]);_0x2d1503[_0x32d6('0x39')]=_[_0x32d6('0x36')](_0x5451b6[_0x32d6('0x39')]);_0x2d1503['filters']=_[_0x32d6('0x38')](_0x2d1503[_0x32d6('0x35')],_0x2d1503[_0x32d6('0x39')]);_0x5a7f04[_0x32d6('0x3a')]=_[_0x32d6('0x38')](_0x2d1503[_0x32d6('0x35')],qs['fields'](_0x5451b6[_0x32d6('0x39')][_0x32d6('0x3b')]));_0x5a7f04[_0x32d6('0x3a')]=_0x5a7f04[_0x32d6('0x3a')][_0x32d6('0x48')]?_0x5a7f04[_0x32d6('0x3a')]:_0x2d1503[_0x32d6('0x35')];_0x5a7f04[_0x32d6('0x3c')]=qs['sort'](_0x5451b6['query'][_0x32d6('0x3d')]);_0x5a7f04[_0x32d6('0x3e')]=qs['filters'](_[_0x32d6('0x3f')](_0x5451b6[_0x32d6('0x39')],_0x2d1503[_0x32d6('0x37')]));if(_0x5451b6['query']['filter']){_0x5a7f04[_0x32d6('0x3e')]=_['merge'](_0x5a7f04[_0x32d6('0x3e')],{'$or':_[_0x32d6('0x31')](_0x5a7f04[_0x32d6('0x3a')],function(_0x1e428a){var _0x1e122d={};_0x1e122d[_0x1e428a]={'$like':'%'+_0x5451b6[_0x32d6('0x39')][_0x32d6('0x5b')]+'%'};return _0x1e122d;})});}_0x5a7f04=_[_0x32d6('0x49')]({},_0x5a7f04,_0x5451b6[_0x32d6('0x4a')]);return _0x5d5018[_0x32d6('0x8d')](_0x5a7f04);}})['then'](function(_0x4fe07d){if(_0x4fe07d){_0x129695=_0x4fe07d[_0x32d6('0x48')];if(!_0x5451b6[_0x32d6('0x39')]['hasOwnProperty'](_0x32d6('0x5a'))){_0x5a7f04[_0x32d6('0x20')]=qs['limit'](_0x5451b6[_0x32d6('0x39')][_0x32d6('0x20')]);_0x5a7f04[_0x32d6('0x1e')]=qs['offset'](_0x5451b6[_0x32d6('0x39')][_0x32d6('0x1e')]);}return _0x5d5018['getAgents'](_0x5a7f04);}})[_0x32d6('0x27')](function(_0xe2e860){if(_0xe2e860){return _0xe2e860?{'count':_0x129695,'rows':_0xe2e860}:null;}})['then'](respondWithResult(_0x5f1f2c,null))[_0x32d6('0x45')](handleError(_0x5f1f2c,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5fc3=['events','../../mysqldb','setMaxListeners','save','update','remove','emit','hook'];(function(_0x20cb20,_0x256051){var _0x2fcf4b=function(_0x26200b){while(--_0x26200b){_0x20cb20['push'](_0x20cb20['shift']());}};_0x2fcf4b(++_0x256051);}(_0x5fc3,0xa8));var _0x35fc=function(_0x2b5eae,_0x55010d){_0x2b5eae=_0x2b5eae-0x0;var _0x5f3ac9=_0x5fc3[_0x2b5eae];return _0x5f3ac9;};'use strict';var EventEmitter=require(_0x35fc('0x0'));var CmList=require(_0x35fc('0x1'))['db']['CmList'];var CmListEvents=new EventEmitter();CmListEvents[_0x35fc('0x2')](0x0);var events={'afterCreate':_0x35fc('0x3'),'afterUpdate':_0x35fc('0x4'),'afterDestroy':_0x35fc('0x5')};function emitEvent(_0xb4f9ce){return function(_0x5e75e6,_0x2d1404,_0x1d5fec){CmListEvents[_0x35fc('0x6')](_0xb4f9ce+':'+_0x5e75e6['id'],_0x5e75e6);CmListEvents['emit'](_0xb4f9ce,_0x5e75e6);_0x1d5fec(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];CmList[_0x35fc('0x7')](e,emitEvent(event));}}module['exports']=CmListEvents;
\ No newline at end of file
+var _0x7217=['emit','hasOwnProperty','hook','exports','events','CmList','setMaxListeners','save','update','remove'];(function(_0x16ae34,_0x1dc6d){var _0x184836=function(_0x1e48b7){while(--_0x1e48b7){_0x16ae34['push'](_0x16ae34['shift']());}};_0x184836(++_0x1dc6d);}(_0x7217,0x19e));var _0x7721=function(_0x5037ab,_0x43209e){_0x5037ab=_0x5037ab-0x0;var _0x512adb=_0x7217[_0x5037ab];return _0x512adb;};'use strict';var EventEmitter=require(_0x7721('0x0'));var CmList=require('../../mysqldb')['db'][_0x7721('0x1')];var CmListEvents=new EventEmitter();CmListEvents[_0x7721('0x2')](0x0);var events={'afterCreate':_0x7721('0x3'),'afterUpdate':_0x7721('0x4'),'afterDestroy':_0x7721('0x5')};function emitEvent(_0x4d6446){return function(_0x5bf160,_0x472a96,_0xce17f9){CmListEvents[_0x7721('0x6')](_0x4d6446+':'+_0x5bf160['id'],_0x5bf160);CmListEvents[_0x7721('0x6')](_0x4d6446,_0x5bf160);_0xce17f9(null);};}for(var e in events){if(events[_0x7721('0x7')](e)){var event=events[e];CmList[_0x7721('0x8')](e,emitEvent(event));}}module[_0x7721('0x9')]=CmListEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4522=['path','rimraf','../../config/environment','./cmList.attributes','exports','define','CmList','cm_lists','../../config/logger','api','moment','request-promise'];(function(_0x52a922,_0x4b2a78){var _0x104e8e=function(_0xf7157d){while(--_0xf7157d){_0x52a922['push'](_0x52a922['shift']());}};_0x104e8e(++_0x4b2a78);}(_0x4522,0x1a0));var _0x2452=function(_0x46bad2,_0x180c2b){_0x46bad2=_0x46bad2-0x0;var _0x450462=_0x4522[_0x46bad2];return _0x450462;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x2452('0x0'))(_0x2452('0x1'));var moment=require(_0x2452('0x2'));var BPromise=require('bluebird');var rp=require(_0x2452('0x3'));var fs=require('fs');var path=require(_0x2452('0x4'));var rimraf=require(_0x2452('0x5'));var config=require(_0x2452('0x6'));var attributes=require(_0x2452('0x7'));module[_0x2452('0x8')]=function(_0x15fc69,_0x226578){return _0x15fc69[_0x2452('0x9')](_0x2452('0xa'),attributes,{'tableName':_0x2452('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x668b=['cm_lists','lodash','util','api','moment','request-promise','rimraf','../../config/environment','./cmList.attributes','define','CmList'];(function(_0x408753,_0x5176e1){var _0x1ba6f1=function(_0x2ed00d){while(--_0x2ed00d){_0x408753['push'](_0x408753['shift']());}};_0x1ba6f1(++_0x5176e1);}(_0x668b,0x140));var _0xb668=function(_0xc67528,_0x24e2fb){_0xc67528=_0xc67528-0x0;var _0x38e26d=_0x668b[_0xc67528];return _0x38e26d;};'use strict';var _=require(_0xb668('0x0'));var util=require(_0xb668('0x1'));var logger=require('../../config/logger')(_0xb668('0x2'));var moment=require(_0xb668('0x3'));var BPromise=require('bluebird');var rp=require(_0xb668('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0xb668('0x5'));var config=require(_0xb668('0x6'));var attributes=require(_0xb668('0x7'));module['exports']=function(_0x9b99a8,_0x296fa9){return _0x9b99a8[_0xb668('0x8')](_0xb668('0x9'),attributes,{'tableName':_0xb668('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0025=['message','catch','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','./cmList.socket','register','then','info','CmList,\x20%s,\x20%s','request\x20sent','debug','CmList,\x20%s,\x20%s,\x20%s','stringify','error','code'];(function(_0x2949cb,_0x2e9647){var _0x44c199=function(_0x5e7755){while(--_0x5e7755){_0x2949cb['push'](_0x2949cb['shift']());}};_0x44c199(++_0x2e9647);}(_0x0025,0xea));var _0x5002=function(_0x48f4a8,_0x160745){_0x48f4a8=_0x48f4a8-0x0;var _0x5c1997=_0x0025[_0x48f4a8];return _0x5c1997;};'use strict';var _=require('lodash');var util=require(_0x5002('0x0'));var moment=require(_0x5002('0x1'));var BPromise=require(_0x5002('0x2'));var rs=require(_0x5002('0x3'));var fs=require('fs');var Redis=require(_0x5002('0x4'));var db=require(_0x5002('0x5'))['db'];var utils=require(_0x5002('0x6'));var logger=require(_0x5002('0x7'))(_0x5002('0x8'));var config=require(_0x5002('0x9'));var jayson=require(_0x5002('0xa'));var client=jayson[_0x5002('0xb')][_0x5002('0xc')]({'port':0x232a});config[_0x5002('0xd')]=_[_0x5002('0xe')](config[_0x5002('0xd')],{'host':_0x5002('0xf'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0x5002('0x10'))[_0x5002('0x11')](socket);function respondWithRpcPromise(_0x8293dd,_0x2a2192,_0x49e778){return new BPromise(function(_0x2b8402,_0x28f25c){return client['request'](_0x8293dd,_0x49e778)[_0x5002('0x12')](function(_0x311ef4){logger[_0x5002('0x13')](_0x5002('0x14'),_0x2a2192,_0x5002('0x15'));logger[_0x5002('0x16')](_0x5002('0x17'),_0x2a2192,_0x5002('0x15'),JSON[_0x5002('0x18')](_0x311ef4));if(_0x311ef4[_0x5002('0x19')]){if(_0x311ef4[_0x5002('0x19')][_0x5002('0x1a')]===0x1f4){logger[_0x5002('0x19')](_0x5002('0x14'),_0x2a2192,_0x311ef4[_0x5002('0x19')]['message']);return _0x28f25c(_0x311ef4[_0x5002('0x19')]['message']);}logger['error'](_0x5002('0x14'),_0x2a2192,_0x311ef4[_0x5002('0x19')][_0x5002('0x1b')]);return _0x2b8402(_0x311ef4[_0x5002('0x19')][_0x5002('0x1b')]);}else{logger[_0x5002('0x13')]('CmList,\x20%s,\x20%s',_0x2a2192,_0x5002('0x15'));_0x2b8402(_0x311ef4['result'][_0x5002('0x1b')]);}})[_0x5002('0x1c')](function(_0x1871f8){logger[_0x5002('0x19')](_0x5002('0x14'),_0x2a2192,_0x1871f8);_0x28f25c(_0x1871f8);});});}
\ No newline at end of file
+var _0x2bf7=['defaults','localhost','socket.io-emitter','./cmList.socket','request','then','request\x20sent','debug','CmList,\x20%s,\x20%s,\x20%s','stringify','error','code','CmList,\x20%s,\x20%s','message','info','result','catch','lodash','util','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','redis'];(function(_0xf076a1,_0x4717a1){var _0x5a3d9d=function(_0x4cf238){while(--_0x4cf238){_0xf076a1['push'](_0xf076a1['shift']());}};_0x5a3d9d(++_0x4717a1);}(_0x2bf7,0x155));var _0x72bf=function(_0x15bd8c,_0x930227){_0x15bd8c=_0x15bd8c-0x0;var _0x24e162=_0x2bf7[_0x15bd8c];return _0x24e162;};'use strict';var _=require(_0x72bf('0x0'));var util=require(_0x72bf('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x72bf('0x2'));var db=require(_0x72bf('0x3'))['db'];var utils=require(_0x72bf('0x4'));var logger=require(_0x72bf('0x5'))(_0x72bf('0x6'));var config=require(_0x72bf('0x7'));var jayson=require(_0x72bf('0x8'));var client=jayson['client']['http']({'port':0x232a});config[_0x72bf('0x9')]=_[_0x72bf('0xa')](config['redis'],{'host':_0x72bf('0xb'),'port':0x18eb});var socket=require(_0x72bf('0xc'))(new Redis(config['redis']));require(_0x72bf('0xd'))['register'](socket);function respondWithRpcPromise(_0x5abf09,_0x4f9584,_0x2c5089){return new BPromise(function(_0x164202,_0x5194fd){return client[_0x72bf('0xe')](_0x5abf09,_0x2c5089)[_0x72bf('0xf')](function(_0x14a9f5){logger['info']('CmList,\x20%s,\x20%s',_0x4f9584,_0x72bf('0x10'));logger[_0x72bf('0x11')](_0x72bf('0x12'),_0x4f9584,'request\x20sent',JSON[_0x72bf('0x13')](_0x14a9f5));if(_0x14a9f5[_0x72bf('0x14')]){if(_0x14a9f5[_0x72bf('0x14')][_0x72bf('0x15')]===0x1f4){logger['error'](_0x72bf('0x16'),_0x4f9584,_0x14a9f5[_0x72bf('0x14')]['message']);return _0x5194fd(_0x14a9f5[_0x72bf('0x14')][_0x72bf('0x17')]);}logger['error'](_0x72bf('0x16'),_0x4f9584,_0x14a9f5[_0x72bf('0x14')]['message']);return _0x164202(_0x14a9f5[_0x72bf('0x14')][_0x72bf('0x17')]);}else{logger[_0x72bf('0x18')](_0x72bf('0x16'),_0x4f9584,_0x72bf('0x10'));_0x164202(_0x14a9f5[_0x72bf('0x19')][_0x72bf('0x17')]);}})[_0x72bf('0x1a')](function(_0x1207bc){logger[_0x72bf('0x14')](_0x72bf('0x16'),_0x4f9584,_0x1207bc);_0x5194fd(_0x1207bc);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x351b=['emit','register','./cmList.events','save','remove'];(function(_0x4e9c65,_0xb6bdfa){var _0x50ad0d=function(_0x3a1e7d){while(--_0x3a1e7d){_0x4e9c65['push'](_0x4e9c65['shift']());}};_0x50ad0d(++_0xb6bdfa);}(_0x351b,0x188));var _0xb351=function(_0x388a73,_0x14c1f7){_0x388a73=_0x388a73-0x0;var _0x1af81a=_0x351b[_0x388a73];return _0x1af81a;};'use strict';var CmListEvents=require(_0xb351('0x0'));var events=[_0xb351('0x1'),_0xb351('0x2'),'update'];function createListener(_0x4917ab,_0x262e82){return function(_0x485123){_0x262e82[_0xb351('0x3')](_0x4917ab,_0x485123);};}function removeListener(_0x363673,_0x3a869f){return function(){CmListEvents['removeListener'](_0x363673,_0x3a869f);};}exports[_0xb351('0x4')]=function(_0x5b27d5){for(var _0xd673dd=0x0,_0x1bd438=events['length'];_0xd673dd<_0x1bd438;_0xd673dd++){var _0x1c5b43=events[_0xd673dd];var _0x3beb98=createListener('cmList:'+_0x1c5b43,_0x5b27d5);CmListEvents['on'](_0x1c5b43,_0x3beb98);}};
\ No newline at end of file
+var _0xba37=['register','length','cmList:','save','remove','emit'];(function(_0x37a61a,_0x522a83){var _0x320494=function(_0x5c456e){while(--_0x5c456e){_0x37a61a['push'](_0x37a61a['shift']());}};_0x320494(++_0x522a83);}(_0xba37,0x93));var _0x7ba3=function(_0x5d6456,_0x58ecc7){_0x5d6456=_0x5d6456-0x0;var _0x4d66c1=_0xba37[_0x5d6456];return _0x4d66c1;};'use strict';var CmListEvents=require('./cmList.events');var events=[_0x7ba3('0x0'),_0x7ba3('0x1'),'update'];function createListener(_0x184b51,_0x23479e){return function(_0x2af730){_0x23479e[_0x7ba3('0x2')](_0x184b51,_0x2af730);};}function removeListener(_0xb80b00,_0x12380f){return function(){CmListEvents['removeListener'](_0xb80b00,_0x12380f);};}exports[_0x7ba3('0x3')]=function(_0x16592c){for(var _0x22e99a=0x0,_0x15d739=events[_0x7ba3('0x4')];_0x22e99a<_0x15d739;_0x22e99a++){var _0x162e92=events[_0x22e99a];var _0x514e0=createListener(_0x7ba3('0x5')+_0x162e92,_0x16592c);CmListEvents['on'](_0x162e92,_0x514e0);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0b85=['exports','multer','util','path','connect-timeout','express','Router','./cmList.controller','isAuthenticated','index','get','/describe','describe','/:id','show','/:id/dispositions','getDispositions','/:id/contacts','getContacts','getContactsCsv','/:id/fields','getCustomFields','/:id/users','getAgents','create','addDisposition','post','addContacts','addCustomField','addAgents','put','update','delete','destroy','removeDispositions','removeAgents'];(function(_0x5a07de,_0x5b3b80){var _0x12c219=function(_0x40e973){while(--_0x40e973){_0x5a07de['push'](_0x5a07de['shift']());}};_0x12c219(++_0x5b3b80);}(_0x0b85,0x1b1));var _0x50b8=function(_0x377784,_0x4f81f9){_0x377784=_0x377784-0x0;var _0x19c866=_0x0b85[_0x377784];return _0x19c866;};'use strict';var multer=require(_0x50b8('0x0'));var util=require(_0x50b8('0x1'));var path=require(_0x50b8('0x2'));var timeout=require(_0x50b8('0x3'));var express=require(_0x50b8('0x4'));var router=express[_0x50b8('0x5')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x50b8('0x6'));router['get']('/',auth[_0x50b8('0x7')](),controller[_0x50b8('0x8')]);router[_0x50b8('0x9')](_0x50b8('0xa'),auth[_0x50b8('0x7')](),controller[_0x50b8('0xb')]);router[_0x50b8('0x9')](_0x50b8('0xc'),auth[_0x50b8('0x7')](),controller[_0x50b8('0xd')]);router[_0x50b8('0x9')](_0x50b8('0xe'),auth[_0x50b8('0x7')](),controller[_0x50b8('0xf')]);router['get'](_0x50b8('0x10'),auth[_0x50b8('0x7')](),controller[_0x50b8('0x11')]);router[_0x50b8('0x9')]('/:id/contacts/csv',auth[_0x50b8('0x7')](),controller[_0x50b8('0x12')]);router[_0x50b8('0x9')](_0x50b8('0x13'),auth[_0x50b8('0x7')](),controller[_0x50b8('0x14')]);router[_0x50b8('0x9')](_0x50b8('0x15'),auth[_0x50b8('0x7')](),controller[_0x50b8('0x16')]);router['post']('/',auth['isAuthenticated'](),controller[_0x50b8('0x17')]);router['post'](_0x50b8('0xe'),auth[_0x50b8('0x7')](),controller[_0x50b8('0x18')]);router[_0x50b8('0x19')](_0x50b8('0x10'),auth[_0x50b8('0x7')](),controller[_0x50b8('0x1a')]);router[_0x50b8('0x19')](_0x50b8('0x13'),auth[_0x50b8('0x7')](),controller[_0x50b8('0x1b')]);router[_0x50b8('0x19')]('/:id/users',auth[_0x50b8('0x7')](),controller[_0x50b8('0x1c')]);router[_0x50b8('0x1d')](_0x50b8('0xc'),auth[_0x50b8('0x7')](),controller[_0x50b8('0x1e')]);router[_0x50b8('0x1f')]('/:id',auth['isAuthenticated'](),controller[_0x50b8('0x20')]);router['delete'](_0x50b8('0xe'),auth[_0x50b8('0x7')](),controller[_0x50b8('0x21')]);router['delete'](_0x50b8('0x15'),auth[_0x50b8('0x7')](),controller[_0x50b8('0x22')]);module[_0x50b8('0x23')]=router;
\ No newline at end of file
+var _0xea22=['show','getDispositions','getContacts','getContactsCsv','/:id/fields','/:id/users','getAgents','post','create','/:id/dispositions','addDisposition','addCustomField','addAgents','update','delete','destroy','removeDispositions','removeAgents','multer','connect-timeout','express','fs-extra','../../config/environment','./cmList.controller','get','isAuthenticated','describe','/:id'];(function(_0x242dd7,_0x3d81d9){var _0x30ae03=function(_0x545519){while(--_0x545519){_0x242dd7['push'](_0x242dd7['shift']());}};_0x30ae03(++_0x3d81d9);}(_0xea22,0x66));var _0x2ea2=function(_0x14ef29,_0x10916e){_0x14ef29=_0x14ef29-0x0;var _0x1cafd4=_0xea22[_0x14ef29];return _0x1cafd4;};'use strict';var multer=require(_0x2ea2('0x0'));var util=require('util');var path=require('path');var timeout=require(_0x2ea2('0x1'));var express=require(_0x2ea2('0x2'));var router=express['Router']();var fs_extra=require(_0x2ea2('0x3'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x2ea2('0x4'));var controller=require(_0x2ea2('0x5'));router[_0x2ea2('0x6')]('/',auth[_0x2ea2('0x7')](),controller['index']);router[_0x2ea2('0x6')]('/describe',auth['isAuthenticated'](),controller[_0x2ea2('0x8')]);router['get'](_0x2ea2('0x9'),auth[_0x2ea2('0x7')](),controller[_0x2ea2('0xa')]);router[_0x2ea2('0x6')]('/:id/dispositions',auth['isAuthenticated'](),controller[_0x2ea2('0xb')]);router[_0x2ea2('0x6')]('/:id/contacts',auth[_0x2ea2('0x7')](),controller[_0x2ea2('0xc')]);router[_0x2ea2('0x6')]('/:id/contacts/csv',auth['isAuthenticated'](),controller[_0x2ea2('0xd')]);router[_0x2ea2('0x6')](_0x2ea2('0xe'),auth[_0x2ea2('0x7')](),controller['getCustomFields']);router[_0x2ea2('0x6')](_0x2ea2('0xf'),auth[_0x2ea2('0x7')](),controller[_0x2ea2('0x10')]);router[_0x2ea2('0x11')]('/',auth[_0x2ea2('0x7')](),controller[_0x2ea2('0x12')]);router['post'](_0x2ea2('0x13'),auth[_0x2ea2('0x7')](),controller[_0x2ea2('0x14')]);router[_0x2ea2('0x11')]('/:id/contacts',auth[_0x2ea2('0x7')](),controller['addContacts']);router[_0x2ea2('0x11')](_0x2ea2('0xe'),auth[_0x2ea2('0x7')](),controller[_0x2ea2('0x15')]);router[_0x2ea2('0x11')](_0x2ea2('0xf'),auth[_0x2ea2('0x7')](),controller[_0x2ea2('0x16')]);router['put'](_0x2ea2('0x9'),auth['isAuthenticated'](),controller[_0x2ea2('0x17')]);router[_0x2ea2('0x18')](_0x2ea2('0x9'),auth[_0x2ea2('0x7')](),controller[_0x2ea2('0x19')]);router[_0x2ea2('0x18')](_0x2ea2('0x13'),auth[_0x2ea2('0x7')](),controller[_0x2ea2('0x1a')]);router[_0x2ea2('0x18')]('/:id/users',auth[_0x2ea2('0x7')](),controller[_0x2ea2('0x1b')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x568c=['STRING','sequelize','exports','VIRTUAL','getDataValue','field'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x568c,0x127));var _0xc568=function(_0x5708bf,_0x18b91e){_0x5708bf=_0x5708bf-0x0;var _0x1c40d7=_0x568c[_0x5708bf];return _0x1c40d7;};'use strict';var Sequelize=require(_0xc568('0x0'));module[_0xc568('0x1')]={'name':{'type':Sequelize[_0xc568('0x2')],'get':function(_0x257274){return this[_0xc568('0x3')](_0xc568('0x4'));}},'field':{'type':Sequelize[_0xc568('0x5')],'allowNull':![]},'operator':{'type':Sequelize['STRING'],'allowNull':![]},'value':{'type':Sequelize['STRING'],'allowNull':![]}};
\ No newline at end of file
+var _0x614c=['exports','getDataValue','STRING','sequelize'];(function(_0x8b0f52,_0x25ad10){var _0x588a05=function(_0x12d50d){while(--_0x12d50d){_0x8b0f52['push'](_0x8b0f52['shift']());}};_0x588a05(++_0x25ad10);}(_0x614c,0x19f));var _0xc614=function(_0x1a89a1,_0x56d889){_0x1a89a1=_0x1a89a1-0x0;var _0x3d5b46=_0x614c[_0x1a89a1];return _0x3d5b46;};'use strict';var Sequelize=require(_0xc614('0x0'));module[_0xc614('0x1')]={'name':{'type':Sequelize['VIRTUAL'],'get':function(_0x19a902){return this[_0xc614('0x2')]('field');}},'field':{'type':Sequelize[_0xc614('0x3')],'allowNull':![]},'operator':{'type':Sequelize[_0xc614('0x3')],'allowNull':![]},'value':{'type':Sequelize[_0xc614('0x3')],'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['sox','to-csv','fs-extra','squel','crypto','desk.js','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','reject','save','update','then','destroy','error','stack','name','send','body','Condition','find','catch','eml-format','rimraf','zip-dir','request-promise','moment','mustache','util','path'];(function(_0x359356,_0x2edc6d){var _0x5e9fc0=function(_0x42e59f){while(--_0x42e59f){_0x359356['push'](_0x359356['shift']());}};_0x5e9fc0(++_0x2edc6d);}(_0x7a54,0x106));var _0x47a5=function(_0x16dd20,_0x1ee7d1){_0x16dd20=_0x16dd20-0x0;var _0x5cd7bc=_0x7a54[_0x16dd20];return _0x5cd7bc;};'use strict';var emlformat=require(_0x47a5('0x0'));var rimraf=require(_0x47a5('0x1'));var zipdir=require(_0x47a5('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x47a5('0x3'));var moment=require(_0x47a5('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x47a5('0x5'));var util=require(_0x47a5('0x6'));var path=require(_0x47a5('0x7'));var sox=require(_0x47a5('0x8'));var csv=require(_0x47a5('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x47a5('0xa'));var _=require('lodash');var squel=require(_0x47a5('0xb'));var crypto=require(_0x47a5('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x47a5('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x47a5('0xe'));var authService=require(_0x47a5('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0x47a5('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x47a5('0x11'));var utils=require(_0x47a5('0x12'));var config=require(_0x47a5('0x13'));var licenseUtil=require(_0x47a5('0x14'));var db=require(_0x47a5('0x15'))['db'];function respondWithStatusCode(_0xd308b8,_0x1eae59){_0x1eae59=_0x1eae59||0xcc;return function(_0x5beb89){if(_0x5beb89){return _0xd308b8[_0x47a5('0x16')](_0x1eae59);}return _0xd308b8[_0x47a5('0x17')](_0x1eae59)[_0x47a5('0x18')]();};}function respondWithResult(_0x711793,_0x139f25){_0x139f25=_0x139f25||0xc8;return function(_0x620ee9){if(_0x620ee9){return _0x711793[_0x47a5('0x17')](_0x139f25)[_0x47a5('0x19')](_0x620ee9);}};}function respondWithFilteredResult(_0x4e99a8,_0x362359){return function(_0x11faf5){if(_0x11faf5){var _0x3b001e=typeof _0x362359[_0x47a5('0x1a')]===_0x47a5('0x1b')&&typeof _0x362359['limit']==='undefined';var _0x138bc0=_0x11faf5['count'];var _0x5247fd=_0x3b001e?0x0:_0x362359[_0x47a5('0x1a')];var _0xaf70a6=_0x3b001e?_0x11faf5[_0x47a5('0x1c')]:_0x362359[_0x47a5('0x1a')]+_0x362359[_0x47a5('0x1d')];var _0x12b98e;if(_0xaf70a6>=_0x138bc0){_0xaf70a6=_0x138bc0;_0x12b98e=0xc8;}else{_0x12b98e=0xce;}_0x4e99a8[_0x47a5('0x17')](_0x12b98e);return _0x4e99a8[_0x47a5('0x1e')](_0x47a5('0x1f'),_0x5247fd+'-'+_0xaf70a6+'/'+_0x138bc0)['json'](_0x11faf5);}return null;};}function patchUpdates(_0x1570bc){return function(_0xf160ba){try{jsonpatch['apply'](_0xf160ba,_0x1570bc,!![]);}catch(_0x2b0360){return BPromise[_0x47a5('0x20')](_0x2b0360);}return _0xf160ba[_0x47a5('0x21')]();};}function saveUpdates(_0x4c5910,_0xb8ae6c){return function(_0x2f142b){if(_0x2f142b){return _0x2f142b[_0x47a5('0x22')](_0x4c5910)[_0x47a5('0x23')](function(_0x5ef1b1){return _0x5ef1b1;});}return null;};}function removeEntity(_0xe2dea9,_0x385687){return function(_0x513981){if(_0x513981){return _0x513981[_0x47a5('0x24')]()[_0x47a5('0x23')](function(){_0xe2dea9[_0x47a5('0x17')](0xcc)[_0x47a5('0x18')]();});}};}function handleEntityNotFound(_0x3abd6a,_0x50bf17){return function(_0x53078a){if(!_0x53078a){_0x3abd6a[_0x47a5('0x16')](0x194);}return _0x53078a;};}function handleError(_0x5686db,_0x1ea9c8){_0x1ea9c8=_0x1ea9c8||0x1f4;return function(_0x5b6c4e){logger[_0x47a5('0x25')](_0x5b6c4e[_0x47a5('0x26')]);if(_0x5b6c4e[_0x47a5('0x27')]){delete _0x5b6c4e[_0x47a5('0x27')];}_0x5686db[_0x47a5('0x17')](_0x1ea9c8)[_0x47a5('0x28')](_0x5b6c4e);};}exports[_0x47a5('0x22')]=function(_0x136b14,_0x16631f){if(_0x136b14[_0x47a5('0x29')]['id']){delete _0x136b14[_0x47a5('0x29')]['id'];}return db[_0x47a5('0x2a')][_0x47a5('0x2b')]({'where':{'id':_0x136b14['params']['id']}})[_0x47a5('0x23')](handleEntityNotFound(_0x16631f,null))['then'](saveUpdates(_0x136b14[_0x47a5('0x29')],null))[_0x47a5('0x23')](respondWithResult(_0x16631f,null))[_0x47a5('0x2c')](handleError(_0x16631f,null));};exports['destroy']=function(_0x256650,_0x625952){return db[_0x47a5('0x2a')][_0x47a5('0x2b')]({'where':{'id':_0x256650['params']['id']}})['then'](handleEntityNotFound(_0x625952,null))[_0x47a5('0x23')](removeEntity(_0x625952,null))[_0x47a5('0x2c')](handleError(_0x625952,null));};
\ No newline at end of file
+var _0x7a54=['sox','to-csv','fs-extra','squel','crypto','desk.js','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','reject','save','update','then','destroy','error','stack','name','send','body','Condition','find','catch','eml-format','rimraf','zip-dir','request-promise','moment','mustache','util','path'];(function(_0x4a910e,_0x84df25){var _0xf60b33=function(_0x1a2895){while(--_0x1a2895){_0x4a910e['push'](_0x4a910e['shift']());}};_0xf60b33(++_0x84df25);}(_0x7a54,0x106));var _0x47a5=function(_0x4b8989,_0x11ef38){_0x4b8989=_0x4b8989-0x0;var _0x7c703f=_0x7a54[_0x4b8989];return _0x7c703f;};'use strict';var emlformat=require(_0x47a5('0x0'));var rimraf=require(_0x47a5('0x1'));var zipdir=require(_0x47a5('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x47a5('0x3'));var moment=require(_0x47a5('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x47a5('0x5'));var util=require(_0x47a5('0x6'));var path=require(_0x47a5('0x7'));var sox=require(_0x47a5('0x8'));var csv=require(_0x47a5('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x47a5('0xa'));var _=require('lodash');var squel=require(_0x47a5('0xb'));var crypto=require(_0x47a5('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x47a5('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x47a5('0xe'));var authService=require(_0x47a5('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0x47a5('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x47a5('0x11'));var utils=require(_0x47a5('0x12'));var config=require(_0x47a5('0x13'));var licenseUtil=require(_0x47a5('0x14'));var db=require(_0x47a5('0x15'))['db'];function respondWithStatusCode(_0xd308b8,_0x1eae59){_0x1eae59=_0x1eae59||0xcc;return function(_0x5beb89){if(_0x5beb89){return _0xd308b8[_0x47a5('0x16')](_0x1eae59);}return _0xd308b8[_0x47a5('0x17')](_0x1eae59)[_0x47a5('0x18')]();};}function respondWithResult(_0x711793,_0x139f25){_0x139f25=_0x139f25||0xc8;return function(_0x620ee9){if(_0x620ee9){return _0x711793[_0x47a5('0x17')](_0x139f25)[_0x47a5('0x19')](_0x620ee9);}};}function respondWithFilteredResult(_0x4e99a8,_0x362359){return function(_0x11faf5){if(_0x11faf5){var _0x3b001e=typeof _0x362359[_0x47a5('0x1a')]===_0x47a5('0x1b')&&typeof _0x362359['limit']==='undefined';var _0x138bc0=_0x11faf5['count'];var _0x5247fd=_0x3b001e?0x0:_0x362359[_0x47a5('0x1a')];var _0xaf70a6=_0x3b001e?_0x11faf5[_0x47a5('0x1c')]:_0x362359[_0x47a5('0x1a')]+_0x362359[_0x47a5('0x1d')];var _0x12b98e;if(_0xaf70a6>=_0x138bc0){_0xaf70a6=_0x138bc0;_0x12b98e=0xc8;}else{_0x12b98e=0xce;}_0x4e99a8[_0x47a5('0x17')](_0x12b98e);return _0x4e99a8[_0x47a5('0x1e')](_0x47a5('0x1f'),_0x5247fd+'-'+_0xaf70a6+'/'+_0x138bc0)['json'](_0x11faf5);}return null;};}function patchUpdates(_0x1570bc){return function(_0xf160ba){try{jsonpatch['apply'](_0xf160ba,_0x1570bc,!![]);}catch(_0x2b0360){return BPromise[_0x47a5('0x20')](_0x2b0360);}return _0xf160ba[_0x47a5('0x21')]();};}function saveUpdates(_0x4c5910,_0xb8ae6c){return function(_0x2f142b){if(_0x2f142b){return _0x2f142b[_0x47a5('0x22')](_0x4c5910)[_0x47a5('0x23')](function(_0x5ef1b1){return _0x5ef1b1;});}return null;};}function removeEntity(_0xe2dea9,_0x385687){return function(_0x513981){if(_0x513981){return _0x513981[_0x47a5('0x24')]()[_0x47a5('0x23')](function(){_0xe2dea9[_0x47a5('0x17')](0xcc)[_0x47a5('0x18')]();});}};}function handleEntityNotFound(_0x3abd6a,_0x50bf17){return function(_0x53078a){if(!_0x53078a){_0x3abd6a[_0x47a5('0x16')](0x194);}return _0x53078a;};}function handleError(_0x5686db,_0x1ea9c8){_0x1ea9c8=_0x1ea9c8||0x1f4;return function(_0x5b6c4e){logger[_0x47a5('0x25')](_0x5b6c4e[_0x47a5('0x26')]);if(_0x5b6c4e[_0x47a5('0x27')]){delete _0x5b6c4e[_0x47a5('0x27')];}_0x5686db[_0x47a5('0x17')](_0x1ea9c8)[_0x47a5('0x28')](_0x5b6c4e);};}exports[_0x47a5('0x22')]=function(_0x136b14,_0x16631f){if(_0x136b14[_0x47a5('0x29')]['id']){delete _0x136b14[_0x47a5('0x29')]['id'];}return db[_0x47a5('0x2a')][_0x47a5('0x2b')]({'where':{'id':_0x136b14['params']['id']}})[_0x47a5('0x23')](handleEntityNotFound(_0x16631f,null))['then'](saveUpdates(_0x136b14[_0x47a5('0x29')],null))[_0x47a5('0x23')](respondWithResult(_0x16631f,null))[_0x47a5('0x2c')](handleError(_0x16631f,null));};exports['destroy']=function(_0x256650,_0x625952){return db[_0x47a5('0x2a')][_0x47a5('0x2b')]({'where':{'id':_0x256650['params']['id']}})['then'](handleEntityNotFound(_0x625952,null))[_0x47a5('0x23')](removeEntity(_0x625952,null))[_0x47a5('0x2c')](handleError(_0x625952,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x686b=['Condition','tools_conditions','lodash','util','../../config/logger','api','bluebird','request-promise','../../config/environment','./condition.attributes'];(function(_0x4cce8,_0x22d1fe){var _0x458440=function(_0x3d15e4){while(--_0x3d15e4){_0x4cce8['push'](_0x4cce8['shift']());}};_0x458440(++_0x22d1fe);}(_0x686b,0x16a));var _0xb686=function(_0x111982,_0x214251){_0x111982=_0x111982-0x0;var _0x571287=_0x686b[_0x111982];return _0x571287;};'use strict';var _=require(_0xb686('0x0'));var util=require(_0xb686('0x1'));var logger=require(_0xb686('0x2'))(_0xb686('0x3'));var moment=require('moment');var BPromise=require(_0xb686('0x4'));var rp=require(_0xb686('0x5'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0xb686('0x6'));var attributes=require(_0xb686('0x7'));module['exports']=function(_0x13a5ca,_0x1bf9d2){return _0x13a5ca['define'](_0xb686('0x8'),attributes,{'tableName':_0xb686('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x09d7=['./condition.attributes','define','Condition','util','../../config/logger','moment','bluebird','request-promise','path'];(function(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0x09d7,0x93));var _0x709d=function(_0xd6c840,_0xefe284){_0xd6c840=_0xd6c840-0x0;var _0x9115db=_0x09d7[_0xd6c840];return _0x9115db;};'use strict';var _=require('lodash');var util=require(_0x709d('0x0'));var logger=require(_0x709d('0x1'))('api');var moment=require(_0x709d('0x2'));var BPromise=require(_0x709d('0x3'));var rp=require(_0x709d('0x4'));var fs=require('fs');var path=require(_0x709d('0x5'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x709d('0x6'));module['exports']=function(_0x8b5a79,_0x4f415e){return _0x8b5a79[_0x709d('0x7')](_0x709d('0x8'),attributes,{'tableName':'tools_conditions','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbcb5=['message','info','result','catch','util','moment','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','Condition,\x20%s,\x20%s','request\x20sent','stringify','error','code'];(function(_0x4cdae2,_0x3307ed){var _0x34c26d=function(_0x940ff7){while(--_0x940ff7){_0x4cdae2['push'](_0x4cdae2['shift']());}};_0x34c26d(++_0x3307ed);}(_0xbcb5,0x12a));var _0x5bcb=function(_0x53e594,_0x3b07a2){_0x53e594=_0x53e594-0x0;var _0xeb7cd6=_0xbcb5[_0x53e594];return _0xeb7cd6;};'use strict';var _=require('lodash');var util=require(_0x5bcb('0x0'));var moment=require(_0x5bcb('0x1'));var BPromise=require('bluebird');var rs=require(_0x5bcb('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x5bcb('0x3'))['db'];var utils=require(_0x5bcb('0x4'));var logger=require(_0x5bcb('0x5'))(_0x5bcb('0x6'));var config=require(_0x5bcb('0x7'));var jayson=require(_0x5bcb('0x8'));var client=jayson[_0x5bcb('0x9')][_0x5bcb('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x13f5c0,_0x4ec893,_0x799bd8){return new BPromise(function(_0x3b63f2,_0x462ede){return client[_0x5bcb('0xb')](_0x13f5c0,_0x799bd8)['then'](function(_0x386b1d){logger['info'](_0x5bcb('0xc'),_0x4ec893,_0x5bcb('0xd'));logger['debug']('Condition,\x20%s,\x20%s,\x20%s',_0x4ec893,_0x5bcb('0xd'),JSON[_0x5bcb('0xe')](_0x386b1d));if(_0x386b1d['error']){if(_0x386b1d[_0x5bcb('0xf')][_0x5bcb('0x10')]===0x1f4){logger[_0x5bcb('0xf')](_0x5bcb('0xc'),_0x4ec893,_0x386b1d[_0x5bcb('0xf')][_0x5bcb('0x11')]);return _0x462ede(_0x386b1d[_0x5bcb('0xf')]['message']);}logger[_0x5bcb('0xf')](_0x5bcb('0xc'),_0x4ec893,_0x386b1d[_0x5bcb('0xf')][_0x5bcb('0x11')]);return _0x3b63f2(_0x386b1d[_0x5bcb('0xf')][_0x5bcb('0x11')]);}else{logger[_0x5bcb('0x12')]('Condition,\x20%s,\x20%s',_0x4ec893,_0x5bcb('0xd'));_0x3b63f2(_0x386b1d[_0x5bcb('0x13')][_0x5bcb('0x11')]);}})[_0x5bcb('0x14')](function(_0xf72901){logger[_0x5bcb('0xf')](_0x5bcb('0xc'),_0x4ec893,_0xf72901);_0x462ede(_0xf72901);});});}
\ No newline at end of file
+var _0x1a34=['then','info','Condition,\x20%s,\x20%s','debug','error','code','message','request\x20sent','catch','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http'];(function(_0x379c2e,_0x475630){var _0x10cba6=function(_0x319be3){while(--_0x319be3){_0x379c2e['push'](_0x379c2e['shift']());}};_0x10cba6(++_0x475630);}(_0x1a34,0xb3));var _0x41a3=function(_0x2e77d2,_0x576eb0){_0x2e77d2=_0x2e77d2-0x0;var _0x2a893f=_0x1a34[_0x2e77d2];return _0x2a893f;};'use strict';var _=require('lodash');var util=require('util');var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x41a3('0x0'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x41a3('0x1'))['db'];var utils=require(_0x41a3('0x2'));var logger=require(_0x41a3('0x3'))(_0x41a3('0x4'));var config=require('../../config/environment');var jayson=require(_0x41a3('0x5'));var client=jayson[_0x41a3('0x6')][_0x41a3('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x258e20,_0x2c49a3,_0x48877b){return new BPromise(function(_0x22d144,_0x4cccff){return client['request'](_0x258e20,_0x48877b)[_0x41a3('0x8')](function(_0x2b789b){logger[_0x41a3('0x9')](_0x41a3('0xa'),_0x2c49a3,'request\x20sent');logger[_0x41a3('0xb')]('Condition,\x20%s,\x20%s,\x20%s',_0x2c49a3,'request\x20sent',JSON['stringify'](_0x2b789b));if(_0x2b789b[_0x41a3('0xc')]){if(_0x2b789b['error'][_0x41a3('0xd')]===0x1f4){logger[_0x41a3('0xc')]('Condition,\x20%s,\x20%s',_0x2c49a3,_0x2b789b[_0x41a3('0xc')][_0x41a3('0xe')]);return _0x4cccff(_0x2b789b[_0x41a3('0xc')]['message']);}logger[_0x41a3('0xc')](_0x41a3('0xa'),_0x2c49a3,_0x2b789b['error'][_0x41a3('0xe')]);return _0x22d144(_0x2b789b[_0x41a3('0xc')][_0x41a3('0xe')]);}else{logger[_0x41a3('0x9')](_0x41a3('0xa'),_0x2c49a3,_0x41a3('0xf'));_0x22d144(_0x2b789b['result'][_0x41a3('0xe')]);}})[_0x41a3('0x10')](function(_0x4c3f99){logger['error']('Condition,\x20%s,\x20%s',_0x2c49a3,_0x4c3f99);_0x4cccff(_0x4c3f99);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x046b=['../../components/interaction/service','../../config/environment','./condition.controller','put','/:id','isAuthenticated','update','delete','destroy','exports','multer','util','path','connect-timeout','Router','fs-extra'];(function(_0x19d63a,_0x311283){var _0x11ee51=function(_0x36e122){while(--_0x36e122){_0x19d63a['push'](_0x19d63a['shift']());}};_0x11ee51(++_0x311283);}(_0x046b,0x1ba));var _0xb046=function(_0x233eab,_0x5c910f){_0x233eab=_0x233eab-0x0;var _0x288cc3=_0x046b[_0x233eab];return _0x288cc3;};'use strict';var multer=require(_0xb046('0x0'));var util=require(_0xb046('0x1'));var path=require(_0xb046('0x2'));var timeout=require(_0xb046('0x3'));var express=require('express');var router=express[_0xb046('0x4')]();var fs_extra=require(_0xb046('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0xb046('0x6'));var config=require(_0xb046('0x7'));var controller=require(_0xb046('0x8'));router[_0xb046('0x9')](_0xb046('0xa'),auth[_0xb046('0xb')](),controller[_0xb046('0xc')]);router[_0xb046('0xd')](_0xb046('0xa'),auth[_0xb046('0xb')](),controller[_0xb046('0xe')]);module[_0xb046('0xf')]=router;
\ No newline at end of file
+var _0xc8d7=['../../components/auth/service','../../components/interaction/service','../../config/environment','put','/:id','isAuthenticated','update','delete','destroy','exports','multer','path','Router','fs-extra'];(function(_0x175a55,_0x4082fd){var _0x167adf=function(_0x18ef07){while(--_0x18ef07){_0x175a55['push'](_0x175a55['shift']());}};_0x167adf(++_0x4082fd);}(_0xc8d7,0x122));var _0x7c8d=function(_0x3c5b03,_0x4cadaf){_0x3c5b03=_0x3c5b03-0x0;var _0x13963b=_0xc8d7[_0x3c5b03];return _0x13963b;};'use strict';var multer=require(_0x7c8d('0x0'));var util=require('util');var path=require(_0x7c8d('0x1'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x7c8d('0x2')]();var fs_extra=require(_0x7c8d('0x3'));var auth=require(_0x7c8d('0x4'));var interaction=require(_0x7c8d('0x5'));var config=require(_0x7c8d('0x6'));var controller=require('./condition.controller');router[_0x7c8d('0x7')](_0x7c8d('0x8'),auth[_0x7c8d('0x9')](),controller[_0x7c8d('0xa')]);router[_0x7c8d('0xb')]('/:id',auth[_0x7c8d('0x9')](),controller[_0x7c8d('0xc')]);module[_0x7c8d('0xd')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd8b0=['exports','sequelize'];(function(_0x372c81,_0x124cce){var _0x380fab=function(_0x1958c1){while(--_0x1958c1){_0x372c81['push'](_0x372c81['shift']());}};_0x380fab(++_0x124cce);}(_0xd8b0,0xad));var _0x0d8b=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xd8b0[_0x20a584];return _0x4b41a8;};'use strict';var Sequelize=require(_0x0d8b('0x0'));module[_0x0d8b('0x1')]={'name':{'type':Sequelize['STRING'],'allowNull':![],'unique':'name'},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0xd8b0=['exports','sequelize'];(function(_0x1d4222,_0x532a3d){var _0x28004f=function(_0x1d491b){while(--_0x1d491b){_0x1d4222['push'](_0x1d4222['shift']());}};_0x28004f(++_0x532a3d);}(_0xd8b0,0xad));var _0x0d8b=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xd8b0[_0x20a584];return _0x4b41a8;};'use strict';var Sequelize=require(_0x0d8b('0x0'));module[_0x0d8b('0x1')]={'name':{'type':Sequelize['STRING'],'allowNull':![],'unique':'name'},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x194c=['UserProfileResource','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','omit','createdAt','body','updatedAt','userProfileId','update','iframe','attrUrl','attrs','value','https://','custom','attrPath','clock','HH:mm:ss','attrTimezone','attrFontSize','counter','attrMetric','attrVoiceQueues','multibar-chart','pie-chart','attrSerie1','total','attrSerie2','attrSerie3','web-report','attrReport','reportType','attrRefresh','widgetAttributes:\x20%s','stringify','addItem','DashboardId','getItems','DashboardItem','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','socket.io-emitter','./dashboard.socket','register','sendStatus','end','status','json','undefined','count','offset','limit','set','apply','reject','save','destroy','then','CustomDashboards','error','stack','name','send','index','Dashboard','rawAttributes','fieldName','type','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','options','includeAll','include','findAll','rows','catch','show','params','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','find','autoAssociation'];(function(_0x5dc6af,_0x55d050){var _0x303733=function(_0x85050b){while(--_0x85050b){_0x5dc6af['push'](_0x5dc6af['shift']());}};_0x303733(++_0x55d050);}(_0x194c,0x19b));var _0xc194=function(_0x4dc103,_0x162792){_0x4dc103=_0x4dc103-0x0;var _0xf6ce24=_0x194c[_0x4dc103];return _0xf6ce24;};'use strict';var emlformat=require(_0xc194('0x0'));var rimraf=require(_0xc194('0x1'));var zipdir=require(_0xc194('0x2'));var jsonpatch=require(_0xc194('0x3'));var rp=require(_0xc194('0x4'));var moment=require(_0xc194('0x5'));var BPromise=require(_0xc194('0x6'));var Mustache=require('mustache');var util=require(_0xc194('0x7'));var path=require(_0xc194('0x8'));var sox=require(_0xc194('0x9'));var csv=require(_0xc194('0xa'));var ejs=require(_0xc194('0xb'));var fs=require('fs');var fs_extra=require(_0xc194('0xc'));var _=require(_0xc194('0xd'));var squel=require(_0xc194('0xe'));var crypto=require(_0xc194('0xf'));var jsforce=require(_0xc194('0x10'));var deskjs=require('desk.js');var toCsv=require(_0xc194('0xa'));var querystring=require('querystring');var Papa=require(_0xc194('0x11'));var Redis=require(_0xc194('0x12'));var authService=require(_0xc194('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0xc194('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xc194('0x15'));var utils=require(_0xc194('0x16'));var config=require(_0xc194('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0xc194('0x18'))['db'];config[_0xc194('0x19')]=_[_0xc194('0x1a')](config[_0xc194('0x19')],{'host':'localhost','port':0x18eb});var socket=require(_0xc194('0x1b'))(new Redis(config['redis']));require(_0xc194('0x1c'))[_0xc194('0x1d')](socket);function respondWithStatusCode(_0x4222bd,_0x4ad6c2){_0x4ad6c2=_0x4ad6c2||0xcc;return function(_0x46a877){if(_0x46a877){return _0x4222bd[_0xc194('0x1e')](_0x4ad6c2);}return _0x4222bd['status'](_0x4ad6c2)[_0xc194('0x1f')]();};}function respondWithResult(_0x462ca3,_0x34a5d5){_0x34a5d5=_0x34a5d5||0xc8;return function(_0x4c41b7){if(_0x4c41b7){return _0x462ca3[_0xc194('0x20')](_0x34a5d5)[_0xc194('0x21')](_0x4c41b7);}};}function respondWithFilteredResult(_0x33922e,_0x251f4d){return function(_0x16789f){if(_0x16789f){var _0x3cc715=typeof _0x251f4d['offset']===_0xc194('0x22')&&typeof _0x251f4d['limit']===_0xc194('0x22');var _0x11cc99=_0x16789f[_0xc194('0x23')];var _0xc42ba1=_0x3cc715?0x0:_0x251f4d[_0xc194('0x24')];var _0x47547e=_0x3cc715?_0x16789f[_0xc194('0x23')]:_0x251f4d[_0xc194('0x24')]+_0x251f4d[_0xc194('0x25')];var _0x5e6b99;if(_0x47547e>=_0x11cc99){_0x47547e=_0x11cc99;_0x5e6b99=0xc8;}else{_0x5e6b99=0xce;}_0x33922e[_0xc194('0x20')](_0x5e6b99);return _0x33922e[_0xc194('0x26')]('Content-Range',_0xc42ba1+'-'+_0x47547e+'/'+_0x11cc99)[_0xc194('0x21')](_0x16789f);}return null;};}function patchUpdates(_0x1b9f3b){return function(_0x25c49a){try{jsonpatch[_0xc194('0x27')](_0x25c49a,_0x1b9f3b,!![]);}catch(_0x5ee17e){return BPromise[_0xc194('0x28')](_0x5ee17e);}return _0x25c49a[_0xc194('0x29')]();};}function saveUpdates(_0xc65ba6,_0x1a57ef){return function(_0x279adb){if(_0x279adb){return _0x279adb['update'](_0xc65ba6)['then'](function(_0x229a0c){return _0x229a0c;});}return null;};}function removeEntity(_0x13c5d3,_0x3f03da){return function(_0x5d3883){if(_0x5d3883){return _0x5d3883[_0xc194('0x2a')]()[_0xc194('0x2b')](function(){var _0x4d6c5b=_0x5d3883['get']({'plain':!![]});var _0x31cd37=_0xc194('0x2c');return db['UserProfileResource'][_0xc194('0x2a')]({'where':{'type':_0x31cd37,'resourceId':_0x4d6c5b['id']}})['then'](function(){return _0x5d3883;});})[_0xc194('0x2b')](function(){_0x13c5d3[_0xc194('0x20')](0xcc)[_0xc194('0x1f')]();});}};}function handleEntityNotFound(_0x370f90,_0x1e30a9){return function(_0x284d89){if(!_0x284d89){_0x370f90['sendStatus'](0x194);}return _0x284d89;};}function handleError(_0xb1ab64,_0x221c9a){_0x221c9a=_0x221c9a||0x1f4;return function(_0x594ab0){logger[_0xc194('0x2d')](_0x594ab0[_0xc194('0x2e')]);if(_0x594ab0[_0xc194('0x2f')]){delete _0x594ab0[_0xc194('0x2f')];}_0xb1ab64['status'](_0x221c9a)[_0xc194('0x30')](_0x594ab0);};}exports[_0xc194('0x31')]=function(_0x54b6e9,_0x19cbbb){var _0x6ebb26={},_0x1fe5dc={},_0x4f335a={'count':0x0,'rows':[]};var _0x39a734=_['map'](db[_0xc194('0x32')][_0xc194('0x33')],function(_0x203446){return{'name':_0x203446[_0xc194('0x34')],'type':_0x203446[_0xc194('0x35')]['key']};});_0x1fe5dc[_0xc194('0x36')]=_[_0xc194('0x37')](_0x39a734,_0xc194('0x2f'));_0x1fe5dc[_0xc194('0x38')]=_[_0xc194('0x39')](_0x54b6e9[_0xc194('0x38')]);_0x1fe5dc[_0xc194('0x3a')]=_[_0xc194('0x3b')](_0x1fe5dc[_0xc194('0x36')],_0x1fe5dc[_0xc194('0x38')]);_0x6ebb26[_0xc194('0x3c')]=_[_0xc194('0x3b')](_0x1fe5dc[_0xc194('0x36')],qs[_0xc194('0x3d')](_0x54b6e9[_0xc194('0x38')][_0xc194('0x3d')]));_0x6ebb26[_0xc194('0x3c')]=_0x6ebb26[_0xc194('0x3c')][_0xc194('0x3e')]?_0x6ebb26['attributes']:_0x1fe5dc[_0xc194('0x36')];if(!_0x54b6e9[_0xc194('0x38')][_0xc194('0x3f')]('nolimit')){_0x6ebb26[_0xc194('0x25')]=qs[_0xc194('0x25')](_0x54b6e9[_0xc194('0x38')][_0xc194('0x25')]);_0x6ebb26[_0xc194('0x24')]=qs['offset'](_0x54b6e9[_0xc194('0x38')][_0xc194('0x24')]);}_0x6ebb26[_0xc194('0x40')]=qs[_0xc194('0x41')](_0x54b6e9['query'][_0xc194('0x41')]);_0x6ebb26[_0xc194('0x42')]=qs[_0xc194('0x3a')](_[_0xc194('0x43')](_0x54b6e9[_0xc194('0x38')],_0x1fe5dc[_0xc194('0x3a')]),_0x39a734);if(_0x54b6e9['query'][_0xc194('0x44')]){_0x6ebb26['where']=_[_0xc194('0x45')](_0x6ebb26['where'],{'$or':_[_0xc194('0x37')](_0x39a734,function(_0x3b1243){if(_0x3b1243[_0xc194('0x35')]!=='VIRTUAL'){var _0x2b3db5={};_0x2b3db5[_0x3b1243[_0xc194('0x2f')]]={'$like':'%'+_0x54b6e9[_0xc194('0x38')][_0xc194('0x44')]+'%'};return _0x2b3db5;}})});}_0x6ebb26=_['merge']({},_0x6ebb26,_0x54b6e9[_0xc194('0x46')]);var _0x4d2a6d={'where':_0x6ebb26['where']};return db[_0xc194('0x32')][_0xc194('0x23')](_0x4d2a6d)[_0xc194('0x2b')](function(_0x989bcf){_0x4f335a[_0xc194('0x23')]=_0x989bcf;if(_0x54b6e9[_0xc194('0x38')][_0xc194('0x47')]){_0x6ebb26[_0xc194('0x48')]=[{'all':!![]}];}return db['Dashboard'][_0xc194('0x49')](_0x6ebb26);})[_0xc194('0x2b')](function(_0x409f94){_0x4f335a[_0xc194('0x4a')]=_0x409f94;return _0x4f335a;})[_0xc194('0x2b')](respondWithFilteredResult(_0x19cbbb,_0x6ebb26))[_0xc194('0x4b')](handleError(_0x19cbbb,null));};exports[_0xc194('0x4c')]=function(_0x21b960,_0x1b3256){var _0x247028={'raw':![],'where':{'id':_0x21b960[_0xc194('0x4d')]['id']}},_0x21fc8c={};_0x21fc8c[_0xc194('0x36')]=_[_0xc194('0x39')](db[_0xc194('0x32')][_0xc194('0x33')]);_0x21fc8c[_0xc194('0x38')]=_[_0xc194('0x39')](_0x21b960[_0xc194('0x38')]);_0x21fc8c[_0xc194('0x3a')]=_[_0xc194('0x3b')](_0x21fc8c[_0xc194('0x36')],_0x21fc8c[_0xc194('0x38')]);_0x247028['attributes']=_[_0xc194('0x3b')](_0x21fc8c[_0xc194('0x36')],qs['fields'](_0x21b960[_0xc194('0x38')][_0xc194('0x3d')]));_0x247028['attributes']=_0x247028[_0xc194('0x3c')][_0xc194('0x3e')]?_0x247028['attributes']:_0x21fc8c['model'];if(_0x21b960[_0xc194('0x38')][_0xc194('0x47')]){_0x247028['include']=[{'all':!![]}];}_0x247028=_[_0xc194('0x45')]({},_0x247028,_0x21b960[_0xc194('0x46')]);return db[_0xc194('0x32')]['find'](_0x247028)[_0xc194('0x2b')](handleEntityNotFound(_0x1b3256,null))[_0xc194('0x2b')](respondWithResult(_0x1b3256,null))[_0xc194('0x4b')](handleError(_0x1b3256,null));};exports['create']=function(_0x15321d,_0x4b3162){return db[_0xc194('0x32')]['create'](_0x15321d['body'],{})[_0xc194('0x2b')](function(_0x1c5773){var _0x22d299=_0x15321d['user'][_0xc194('0x4e')]({'plain':!![]});if(!_0x22d299)throw new Error(_0xc194('0x4f'));if(_0x22d299[_0xc194('0x50')]===_0xc194('0x51')){var _0x4a1c84=_0x1c5773['get']({'plain':!![]});var _0x5e7f19=_0xc194('0x2c');return db[_0xc194('0x52')][_0xc194('0x53')]({'where':{'name':_0x5e7f19,'userProfileId':_0x22d299['userProfileId']},'raw':!![]})['then'](function(_0x522e09){if(_0x522e09&&_0x522e09[_0xc194('0x54')]===0x0){return db[_0xc194('0x55')][_0xc194('0x56')]({'name':_0x4a1c84[_0xc194('0x2f')],'resourceId':_0x4a1c84['id'],'type':_0x522e09[_0xc194('0x2f')],'sectionId':_0x522e09['id']},{})['then'](function(){return _0x1c5773;});}else{return _0x1c5773;}})[_0xc194('0x4b')](function(_0x1cb943){logger[_0xc194('0x2d')](_0xc194('0x57'),_0x1cb943);throw _0x1cb943;});}return _0x1c5773;})['then'](respondWithResult(_0x4b3162,0xc9))[_0xc194('0x4b')](handleError(_0x4b3162,null));};exports['clone']=function(_0x532422,_0x5817da){var _0xcd9242={'where':{'id':_0x532422[_0xc194('0x4d')]['id']}},_0x1784c6={};_0x1784c6[_0xc194('0x36')]=_[_0xc194('0x39')](db['Dashboard'][_0xc194('0x33')]);_0xcd9242[_0xc194('0x3c')]=_['intersection'](_0x1784c6[_0xc194('0x36')],qs[_0xc194('0x3d')](_0x532422['query'][_0xc194('0x3d')]));_0xcd9242['attributes']=_0xcd9242[_0xc194('0x3c')][_0xc194('0x3e')]?_0xcd9242[_0xc194('0x3c')]:_0x1784c6['model'];if(_0x532422['query'][_0xc194('0x47')]){_0xcd9242['include']=[{'all':!![]}];}_0xcd9242=_[_0xc194('0x45')]({},_0xcd9242,_0x532422['options']);return db[_0xc194('0x32')][_0xc194('0x53')](_0xcd9242)[_0xc194('0x2b')](handleEntityNotFound(_0x5817da,null))['then'](function(_0x4454d6){if(_0x4454d6){var _0x3b84f7=_0x4454d6[_0xc194('0x4e')]({'plain':!![]});_0x3b84f7=qs[_0xc194('0x58')](_0x3b84f7,['id',_0xc194('0x59'),'updatedAt']);_0x532422['body']=_['omit'](_0x532422[_0xc194('0x5a')],['id',_0xc194('0x59'),_0xc194('0x5b')]);return db['Dashboard'][_0xc194('0x56')](_[_0xc194('0x45')](_0x3b84f7,_0x532422[_0xc194('0x5a')]),{'include':_0x532422[_0xc194('0x38')][_0xc194('0x47')]?[{'all':!![]}]:undefined})[_0xc194('0x2b')](function(_0x2272be){var _0x32baf6=_0x532422['user'][_0xc194('0x4e')]({'plain':!![]});if(!_0x32baf6)throw new Error(_0xc194('0x4f'));if(_0x32baf6['role']==='user'){var _0x33ec53=_0x2272be['get']({'plain':!![]});var _0x881d80=_0xc194('0x2c');return db[_0xc194('0x52')][_0xc194('0x53')]({'where':{'name':_0x881d80,'userProfileId':_0x32baf6[_0xc194('0x5c')]},'raw':!![]})[_0xc194('0x2b')](function(_0x20656){if(_0x20656&&_0x20656[_0xc194('0x54')]===0x0){return db[_0xc194('0x55')][_0xc194('0x56')]({'name':_0x33ec53[_0xc194('0x2f')],'resourceId':_0x33ec53['id'],'type':_0x20656[_0xc194('0x2f')],'sectionId':_0x20656['id']},{})[_0xc194('0x2b')](function(){return _0x2272be;});}else{return _0x2272be;}})[_0xc194('0x4b')](function(_0xf22203){logger[_0xc194('0x2d')](_0xc194('0x57'),_0xf22203);throw _0xf22203;});}return _0x2272be;});}})['then'](respondWithResult(_0x5817da,0xc9))[_0xc194('0x4b')](handleError(_0x5817da,null));};exports[_0xc194('0x5d')]=function(_0x314db9,_0x23e8f4){if(_0x314db9[_0xc194('0x5a')]['id']){delete _0x314db9[_0xc194('0x5a')]['id'];}return db['Dashboard']['find']({'where':{'id':_0x314db9[_0xc194('0x4d')]['id']}})['then'](handleEntityNotFound(_0x23e8f4,null))[_0xc194('0x2b')](saveUpdates(_0x314db9['body'],null))[_0xc194('0x2b')](respondWithResult(_0x23e8f4,null))[_0xc194('0x4b')](handleError(_0x23e8f4,null));};exports['destroy']=function(_0x3f1bb8,_0x10e04d){return db[_0xc194('0x32')][_0xc194('0x53')]({'where':{'id':_0x3f1bb8[_0xc194('0x4d')]['id']}})[_0xc194('0x2b')](handleEntityNotFound(_0x10e04d,null))[_0xc194('0x2b')](removeEntity(_0x10e04d,null))[_0xc194('0x4b')](handleError(_0x10e04d,null));};function widgetAttributes(_0x4789c3){try{switch(_0x4789c3[_0xc194('0x35')]){case _0xc194('0x5e'):return[{'name':_0xc194('0x5f'),'value':_0x4789c3['attrUrl']||(_0x4789c3[_0xc194('0x60')]&&_0x4789c3[_0xc194('0x60')][0x0]?_0x4789c3['attrs'][0x0][_0xc194('0x61')]:undefined)||_0xc194('0x62')}];case _0xc194('0x63'):return[{'name':'attrPath','value':_0x4789c3[_0xc194('0x64')]||(_0x4789c3[_0xc194('0x60')]&&_0x4789c3['attrs'][0x0]?_0x4789c3[_0xc194('0x60')][0x0][_0xc194('0x61')]:undefined)||''}];case _0xc194('0x65'):return[{'name':'attrHourFormat','value':_0x4789c3['attrHourFormat']||(_0x4789c3['attrs']&&_0x4789c3[_0xc194('0x60')][0x0]?_0x4789c3[_0xc194('0x60')][0x0][_0xc194('0x61')]:undefined)||_0xc194('0x66')},{'name':_0xc194('0x67'),'value':_0x4789c3[_0xc194('0x67')]||(_0x4789c3['attrs']&&_0x4789c3[_0xc194('0x60')][0x1]?_0x4789c3[_0xc194('0x60')][0x1]['value']:undefined)||'0.00'},{'name':_0xc194('0x68'),'value':_0x4789c3[_0xc194('0x68')]||(_0x4789c3[_0xc194('0x60')]&&_0x4789c3[_0xc194('0x60')][0x2]?_0x4789c3[_0xc194('0x60')][0x2][_0xc194('0x61')]:undefined)||0xc}];case _0xc194('0x69'):return[{'name':_0xc194('0x6a'),'value':_0x4789c3[_0xc194('0x6a')]||(_0x4789c3['attrs']&&_0x4789c3[_0xc194('0x60')][0x0]?_0x4789c3['attrs'][0x0][_0xc194('0x61')]:undefined)||'total'},{'name':_0xc194('0x6b'),'value':_0x4789c3['attrVoiceQueues']||(_0x4789c3['attrs']&&_0x4789c3['attrs'][0x1]?_0x4789c3['attrs'][0x1][_0xc194('0x61')]:undefined)||[]},{'name':'attrFontSize','value':_0x4789c3['attrFontSize']||(_0x4789c3['attrs']&&_0x4789c3[_0xc194('0x60')][0x2]?_0x4789c3[_0xc194('0x60')][0x2][_0xc194('0x61')]:undefined)||0x14}];case _0xc194('0x6c'):case _0xc194('0x6d'):return[{'name':_0xc194('0x6e'),'value':_0x4789c3[_0xc194('0x6e')]||(_0x4789c3[_0xc194('0x60')]&&_0x4789c3[_0xc194('0x60')][0x0]?_0x4789c3[_0xc194('0x60')][0x0]['value']:undefined)||_0xc194('0x6f')},{'name':_0xc194('0x70'),'value':_0x4789c3['attrSerie2']||(_0x4789c3['attrs']&&_0x4789c3['attrs'][0x1]?_0x4789c3[_0xc194('0x60')][0x1][_0xc194('0x61')]:undefined)||null},{'name':_0xc194('0x71'),'value':_0x4789c3[_0xc194('0x71')]||(_0x4789c3['attrs']&&_0x4789c3[_0xc194('0x60')][0x2]?_0x4789c3[_0xc194('0x60')][0x2][_0xc194('0x61')]:undefined)||null},{'name':_0xc194('0x6b'),'value':_0x4789c3['attrVoiceQueues']||(_0x4789c3[_0xc194('0x60')]&&_0x4789c3[_0xc194('0x60')][0x3]?_0x4789c3['attrs'][0x3]['value']:undefined)||[]}];case _0xc194('0x72'):return[{'name':_0xc194('0x73'),'type':_0x4789c3[_0xc194('0x74')]||(_0x4789c3[_0xc194('0x60')]&&_0x4789c3['attrs'][0x0]?_0x4789c3[_0xc194('0x60')][0x0]['type']:undefined)||null,'value':_0x4789c3[_0xc194('0x73')]||(_0x4789c3[_0xc194('0x60')]&&_0x4789c3['attrs'][0x0]?_0x4789c3[_0xc194('0x60')][0x0]['value']:undefined)||null},{'name':_0xc194('0x75'),'value':_0x4789c3['attrRefresh']||(_0x4789c3[_0xc194('0x60')]&&_0x4789c3[_0xc194('0x60')][0x1]?_0x4789c3[_0xc194('0x60')][0x1][_0xc194('0x61')]:undefined)||0x0}];default:return[];}}catch(_0x4489cd){logger[_0xc194('0x2d')](_0xc194('0x76'),JSON[_0xc194('0x77')](_0x4489cd));return[];}}exports[_0xc194('0x78')]=function(_0x362b51,_0x2bd14b,_0x36b0f4){if(_0x362b51[_0xc194('0x5a')]['id']){delete _0x362b51[_0xc194('0x5a')]['id'];}return db['Dashboard'][_0xc194('0x53')]({'where':{'id':_0x362b51[_0xc194('0x4d')]['id']}})[_0xc194('0x2b')](handleEntityNotFound(_0x2bd14b,null))['then'](function(_0x307402){if(_0x307402){_0x362b51[_0xc194('0x5a')][_0xc194('0x79')]=_0x307402['id'];_0x362b51[_0xc194('0x5a')][_0xc194('0x60')]=widgetAttributes(_0x362b51[_0xc194('0x5a')]);return db['DashboardItem']['create'](_0x362b51[_0xc194('0x5a')]);}})[_0xc194('0x2b')](respondWithResult(_0x2bd14b,null))[_0xc194('0x4b')](handleError(_0x2bd14b,null));};exports[_0xc194('0x7a')]=function(_0x2deb36,_0x176459,_0xc87de4){var _0x53aeda={};var _0x3227dc={};var _0x5a66da;var _0x44a3aa;return db[_0xc194('0x32')]['findOne']({'where':{'id':_0x2deb36[_0xc194('0x4d')]['id']}})[_0xc194('0x2b')](handleEntityNotFound(_0x176459,null))[_0xc194('0x2b')](function(_0x549d8b){if(_0x549d8b){_0x5a66da=_0x549d8b;_0x3227dc[_0xc194('0x36')]=_[_0xc194('0x39')](db[_0xc194('0x7b')][_0xc194('0x33')]);_0x3227dc[_0xc194('0x38')]=_[_0xc194('0x39')](_0x2deb36[_0xc194('0x38')]);_0x3227dc['filters']=_[_0xc194('0x3b')](_0x3227dc['model'],_0x3227dc['query']);_0x53aeda['attributes']=_[_0xc194('0x3b')](_0x3227dc[_0xc194('0x36')],qs[_0xc194('0x3d')](_0x2deb36[_0xc194('0x38')]['fields']));_0x53aeda[_0xc194('0x3c')]=_0x53aeda[_0xc194('0x3c')]['length']?_0x53aeda['attributes']:_0x3227dc['model'];_0x53aeda[_0xc194('0x40')]=qs[_0xc194('0x41')](_0x2deb36['query'][_0xc194('0x41')]);_0x53aeda[_0xc194('0x42')]=qs[_0xc194('0x3a')](_['pick'](_0x2deb36[_0xc194('0x38')],_0x3227dc[_0xc194('0x3a')]));if(_0x2deb36['query'][_0xc194('0x44')]){_0x53aeda['where']=_[_0xc194('0x45')](_0x53aeda[_0xc194('0x42')],{'$or':_[_0xc194('0x37')](_0x53aeda['attributes'],function(_0xd889b5){var _0x122601={};_0x122601[_0xd889b5]={'$like':'%'+_0x2deb36[_0xc194('0x38')][_0xc194('0x44')]+'%'};return _0x122601;})});}_0x53aeda=_[_0xc194('0x45')]({},_0x53aeda,_0x2deb36[_0xc194('0x46')]);return _0x5a66da[_0xc194('0x7a')](_0x53aeda);}})[_0xc194('0x2b')](function(_0x12adef){if(_0x12adef){_0x44a3aa=_0x12adef[_0xc194('0x3e')];if(!_0x2deb36[_0xc194('0x38')][_0xc194('0x3f')]('nolimit')){_0x53aeda[_0xc194('0x25')]=qs[_0xc194('0x25')](_0x2deb36['query'][_0xc194('0x25')]);_0x53aeda[_0xc194('0x24')]=qs[_0xc194('0x24')](_0x2deb36[_0xc194('0x38')][_0xc194('0x24')]);}return _0x5a66da[_0xc194('0x7a')](_0x53aeda);}})[_0xc194('0x2b')](function(_0x3b35f1){if(_0x3b35f1){return _0x3b35f1?{'count':_0x44a3aa,'rows':_0x3b35f1}:null;}})['then'](respondWithResult(_0x176459,null))['catch'](handleError(_0x176459,null));};
\ No newline at end of file
+var _0x336b=['findOne','DashboardItem','filters','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','ejs','fs-extra','lodash','squel','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','defaults','socket.io-emitter','redis','./dashboard.socket','status','end','offset','undefined','count','limit','set','Content-Range','apply','reject','save','update','then','destroy','get','CustomDashboards','UserProfileResource','sendStatus','error','stack','name','send','Dashboard','rawAttributes','fieldName','type','model','query','keys','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','map','findAll','catch','show','params','includeAll','include','options','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','clone','omit','createdAt','updatedAt','role','UserProfileSection','attrUrl','attrs','value','attrPath','clock','attrHourFormat','HH:mm:ss','attrTimezone','0.00','attrFontSize','counter','attrMetric','total','attrVoiceQueues','multibar-chart','pie-chart','attrSerie1','attrSerie2','attrSerie3','web-report','attrReport','reportType','attrRefresh','widgetAttributes:\x20%s','stringify','addItem','DashboardId','getItems'];(function(_0x1602ef,_0x447aba){var _0x5870ee=function(_0x4d94e7){while(--_0x4d94e7){_0x1602ef['push'](_0x1602ef['shift']());}};_0x5870ee(++_0x447aba);}(_0x336b,0xf7));var _0xb336=function(_0x5a2518,_0x216039){_0x5a2518=_0x5a2518-0x0;var _0x34ae54=_0x336b[_0x5a2518];return _0x34ae54;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xb336('0x0'));var zipdir=require(_0xb336('0x1'));var jsonpatch=require(_0xb336('0x2'));var rp=require(_0xb336('0x3'));var moment=require('moment');var BPromise=require(_0xb336('0x4'));var Mustache=require(_0xb336('0x5'));var util=require(_0xb336('0x6'));var path=require(_0xb336('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0xb336('0x8'));var fs=require('fs');var fs_extra=require(_0xb336('0x9'));var _=require(_0xb336('0xa'));var squel=require(_0xb336('0xb'));var crypto=require('crypto');var jsforce=require(_0xb336('0xc'));var deskjs=require(_0xb336('0xd'));var toCsv=require(_0xb336('0xe'));var querystring=require(_0xb336('0xf'));var Papa=require(_0xb336('0x10'));var Redis=require(_0xb336('0x11'));var authService=require(_0xb336('0x12'));var qs=require(_0xb336('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xb336('0x14'));var logger=require(_0xb336('0x15'))('api');var utils=require('../../config/utils');var config=require(_0xb336('0x16'));var licenseUtil=require(_0xb336('0x17'));var db=require('../../mysqldb')['db'];config['redis']=_[_0xb336('0x18')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0xb336('0x19'))(new Redis(config[_0xb336('0x1a')]));require(_0xb336('0x1b'))['register'](socket);function respondWithStatusCode(_0x1f0480,_0x12998c){_0x12998c=_0x12998c||0xcc;return function(_0x889044){if(_0x889044){return _0x1f0480['sendStatus'](_0x12998c);}return _0x1f0480[_0xb336('0x1c')](_0x12998c)[_0xb336('0x1d')]();};}function respondWithResult(_0x1bf263,_0x1ea2c0){_0x1ea2c0=_0x1ea2c0||0xc8;return function(_0x2671d9){if(_0x2671d9){return _0x1bf263[_0xb336('0x1c')](_0x1ea2c0)['json'](_0x2671d9);}};}function respondWithFilteredResult(_0x67db33,_0x1986dd){return function(_0x17e477){if(_0x17e477){var _0x311bd9=typeof _0x1986dd[_0xb336('0x1e')]===_0xb336('0x1f')&&typeof _0x1986dd['limit']===_0xb336('0x1f');var _0x2b4014=_0x17e477[_0xb336('0x20')];var _0x51c21c=_0x311bd9?0x0:_0x1986dd['offset'];var _0x3ccaf8=_0x311bd9?_0x17e477[_0xb336('0x20')]:_0x1986dd['offset']+_0x1986dd[_0xb336('0x21')];var _0x5d014b;if(_0x3ccaf8>=_0x2b4014){_0x3ccaf8=_0x2b4014;_0x5d014b=0xc8;}else{_0x5d014b=0xce;}_0x67db33[_0xb336('0x1c')](_0x5d014b);return _0x67db33[_0xb336('0x22')](_0xb336('0x23'),_0x51c21c+'-'+_0x3ccaf8+'/'+_0x2b4014)['json'](_0x17e477);}return null;};}function patchUpdates(_0x468d9f){return function(_0x1bca3d){try{jsonpatch[_0xb336('0x24')](_0x1bca3d,_0x468d9f,!![]);}catch(_0x8b4052){return BPromise[_0xb336('0x25')](_0x8b4052);}return _0x1bca3d[_0xb336('0x26')]();};}function saveUpdates(_0x297d41,_0x83db82){return function(_0x25f89d){if(_0x25f89d){return _0x25f89d[_0xb336('0x27')](_0x297d41)[_0xb336('0x28')](function(_0x45582d){return _0x45582d;});}return null;};}function removeEntity(_0x1c72bb,_0x25c4f9){return function(_0xb810f){if(_0xb810f){return _0xb810f[_0xb336('0x29')]()[_0xb336('0x28')](function(){var _0x56ed68=_0xb810f[_0xb336('0x2a')]({'plain':!![]});var _0x1f37cf=_0xb336('0x2b');return db[_0xb336('0x2c')][_0xb336('0x29')]({'where':{'type':_0x1f37cf,'resourceId':_0x56ed68['id']}})[_0xb336('0x28')](function(){return _0xb810f;});})[_0xb336('0x28')](function(){_0x1c72bb['status'](0xcc)[_0xb336('0x1d')]();});}};}function handleEntityNotFound(_0x4c1500,_0x29062f){return function(_0x117b8d){if(!_0x117b8d){_0x4c1500[_0xb336('0x2d')](0x194);}return _0x117b8d;};}function handleError(_0x153c9c,_0x468a29){_0x468a29=_0x468a29||0x1f4;return function(_0x2c89cb){logger[_0xb336('0x2e')](_0x2c89cb[_0xb336('0x2f')]);if(_0x2c89cb[_0xb336('0x30')]){delete _0x2c89cb[_0xb336('0x30')];}_0x153c9c[_0xb336('0x1c')](_0x468a29)[_0xb336('0x31')](_0x2c89cb);};}exports['index']=function(_0x4bb1d6,_0x2a8cef){var _0xf2c81e={},_0x2a17e8={},_0x34c662={'count':0x0,'rows':[]};var _0x400cba=_['map'](db[_0xb336('0x32')][_0xb336('0x33')],function(_0x42dfa8){return{'name':_0x42dfa8[_0xb336('0x34')],'type':_0x42dfa8[_0xb336('0x35')]['key']};});_0x2a17e8[_0xb336('0x36')]=_['map'](_0x400cba,'name');_0x2a17e8[_0xb336('0x37')]=_[_0xb336('0x38')](_0x4bb1d6['query']);_0x2a17e8['filters']=_[_0xb336('0x39')](_0x2a17e8[_0xb336('0x36')],_0x2a17e8[_0xb336('0x37')]);_0xf2c81e['attributes']=_[_0xb336('0x39')](_0x2a17e8[_0xb336('0x36')],qs[_0xb336('0x3a')](_0x4bb1d6['query'][_0xb336('0x3a')]));_0xf2c81e['attributes']=_0xf2c81e[_0xb336('0x3b')][_0xb336('0x3c')]?_0xf2c81e['attributes']:_0x2a17e8[_0xb336('0x36')];if(!_0x4bb1d6['query'][_0xb336('0x3d')](_0xb336('0x3e'))){_0xf2c81e[_0xb336('0x21')]=qs['limit'](_0x4bb1d6[_0xb336('0x37')][_0xb336('0x21')]);_0xf2c81e['offset']=qs[_0xb336('0x1e')](_0x4bb1d6[_0xb336('0x37')][_0xb336('0x1e')]);}_0xf2c81e[_0xb336('0x3f')]=qs['sort'](_0x4bb1d6[_0xb336('0x37')][_0xb336('0x40')]);_0xf2c81e[_0xb336('0x41')]=qs['filters'](_[_0xb336('0x42')](_0x4bb1d6[_0xb336('0x37')],_0x2a17e8['filters']),_0x400cba);if(_0x4bb1d6[_0xb336('0x37')][_0xb336('0x43')]){_0xf2c81e['where']=_[_0xb336('0x44')](_0xf2c81e['where'],{'$or':_[_0xb336('0x45')](_0x400cba,function(_0x382c08){if(_0x382c08[_0xb336('0x35')]!=='VIRTUAL'){var _0x4e460d={};_0x4e460d[_0x382c08['name']]={'$like':'%'+_0x4bb1d6['query'][_0xb336('0x43')]+'%'};return _0x4e460d;}})});}_0xf2c81e=_[_0xb336('0x44')]({},_0xf2c81e,_0x4bb1d6['options']);var _0x309e84={'where':_0xf2c81e['where']};return db[_0xb336('0x32')][_0xb336('0x20')](_0x309e84)['then'](function(_0x540e83){_0x34c662[_0xb336('0x20')]=_0x540e83;if(_0x4bb1d6['query']['includeAll']){_0xf2c81e['include']=[{'all':!![]}];}return db[_0xb336('0x32')][_0xb336('0x46')](_0xf2c81e);})['then'](function(_0x1ff61e){_0x34c662['rows']=_0x1ff61e;return _0x34c662;})['then'](respondWithFilteredResult(_0x2a8cef,_0xf2c81e))[_0xb336('0x47')](handleError(_0x2a8cef,null));};exports[_0xb336('0x48')]=function(_0x3aa621,_0x179a10){var _0x46f369={'raw':![],'where':{'id':_0x3aa621[_0xb336('0x49')]['id']}},_0x4cfae6={};_0x4cfae6[_0xb336('0x36')]=_[_0xb336('0x38')](db[_0xb336('0x32')][_0xb336('0x33')]);_0x4cfae6['query']=_[_0xb336('0x38')](_0x3aa621['query']);_0x4cfae6['filters']=_[_0xb336('0x39')](_0x4cfae6[_0xb336('0x36')],_0x4cfae6['query']);_0x46f369[_0xb336('0x3b')]=_[_0xb336('0x39')](_0x4cfae6[_0xb336('0x36')],qs['fields'](_0x3aa621['query']['fields']));_0x46f369['attributes']=_0x46f369[_0xb336('0x3b')]['length']?_0x46f369['attributes']:_0x4cfae6[_0xb336('0x36')];if(_0x3aa621[_0xb336('0x37')][_0xb336('0x4a')]){_0x46f369[_0xb336('0x4b')]=[{'all':!![]}];}_0x46f369=_[_0xb336('0x44')]({},_0x46f369,_0x3aa621[_0xb336('0x4c')]);return db[_0xb336('0x32')][_0xb336('0x4d')](_0x46f369)[_0xb336('0x28')](handleEntityNotFound(_0x179a10,null))['then'](respondWithResult(_0x179a10,null))['catch'](handleError(_0x179a10,null));};exports[_0xb336('0x4e')]=function(_0x5ec017,_0x416732){return db['Dashboard'][_0xb336('0x4e')](_0x5ec017[_0xb336('0x4f')],{})['then'](function(_0x5d4460){var _0x2f3e9b=_0x5ec017['user'][_0xb336('0x2a')]({'plain':!![]});if(!_0x2f3e9b)throw new Error(_0xb336('0x50'));if(_0x2f3e9b['role']===_0xb336('0x51')){var _0x419bd6=_0x5d4460[_0xb336('0x2a')]({'plain':!![]});var _0x129046=_0xb336('0x2b');return db['UserProfileSection'][_0xb336('0x4d')]({'where':{'name':_0x129046,'userProfileId':_0x2f3e9b[_0xb336('0x52')]},'raw':!![]})[_0xb336('0x28')](function(_0x1c4265){if(_0x1c4265&&_0x1c4265[_0xb336('0x53')]===0x0){return db[_0xb336('0x2c')][_0xb336('0x4e')]({'name':_0x419bd6[_0xb336('0x30')],'resourceId':_0x419bd6['id'],'type':_0x1c4265[_0xb336('0x30')],'sectionId':_0x1c4265['id']},{})[_0xb336('0x28')](function(){return _0x5d4460;});}else{return _0x5d4460;}})['catch'](function(_0x7535f0){logger[_0xb336('0x2e')](_0xb336('0x54'),_0x7535f0);throw _0x7535f0;});}return _0x5d4460;})[_0xb336('0x28')](respondWithResult(_0x416732,0xc9))[_0xb336('0x47')](handleError(_0x416732,null));};exports[_0xb336('0x55')]=function(_0x54d553,_0x37934d){var _0x5b7e0c={'where':{'id':_0x54d553['params']['id']}},_0x1b6f74={};_0x1b6f74[_0xb336('0x36')]=_[_0xb336('0x38')](db['Dashboard'][_0xb336('0x33')]);_0x5b7e0c[_0xb336('0x3b')]=_[_0xb336('0x39')](_0x1b6f74['model'],qs['fields'](_0x54d553[_0xb336('0x37')][_0xb336('0x3a')]));_0x5b7e0c['attributes']=_0x5b7e0c[_0xb336('0x3b')][_0xb336('0x3c')]?_0x5b7e0c['attributes']:_0x1b6f74['model'];if(_0x54d553[_0xb336('0x37')][_0xb336('0x4a')]){_0x5b7e0c[_0xb336('0x4b')]=[{'all':!![]}];}_0x5b7e0c=_[_0xb336('0x44')]({},_0x5b7e0c,_0x54d553[_0xb336('0x4c')]);return db[_0xb336('0x32')][_0xb336('0x4d')](_0x5b7e0c)[_0xb336('0x28')](handleEntityNotFound(_0x37934d,null))[_0xb336('0x28')](function(_0x5f3f0b){if(_0x5f3f0b){var _0x2bc955=_0x5f3f0b[_0xb336('0x2a')]({'plain':!![]});_0x2bc955=qs[_0xb336('0x56')](_0x2bc955,['id',_0xb336('0x57'),'updatedAt']);_0x54d553[_0xb336('0x4f')]=_[_0xb336('0x56')](_0x54d553[_0xb336('0x4f')],['id',_0xb336('0x57'),_0xb336('0x58')]);return db[_0xb336('0x32')][_0xb336('0x4e')](_[_0xb336('0x44')](_0x2bc955,_0x54d553[_0xb336('0x4f')]),{'include':_0x54d553[_0xb336('0x37')]['includeAll']?[{'all':!![]}]:undefined})[_0xb336('0x28')](function(_0x203210){var _0x7efdfa=_0x54d553[_0xb336('0x51')][_0xb336('0x2a')]({'plain':!![]});if(!_0x7efdfa)throw new Error(_0xb336('0x50'));if(_0x7efdfa[_0xb336('0x59')]===_0xb336('0x51')){var _0x5ce1af=_0x203210[_0xb336('0x2a')]({'plain':!![]});var _0x314fbc='CustomDashboards';return db[_0xb336('0x5a')]['find']({'where':{'name':_0x314fbc,'userProfileId':_0x7efdfa[_0xb336('0x52')]},'raw':!![]})[_0xb336('0x28')](function(_0x3b15f3){if(_0x3b15f3&&_0x3b15f3[_0xb336('0x53')]===0x0){return db[_0xb336('0x2c')][_0xb336('0x4e')]({'name':_0x5ce1af[_0xb336('0x30')],'resourceId':_0x5ce1af['id'],'type':_0x3b15f3['name'],'sectionId':_0x3b15f3['id']},{})[_0xb336('0x28')](function(){return _0x203210;});}else{return _0x203210;}})['catch'](function(_0x2414aa){logger['error'](_0xb336('0x54'),_0x2414aa);throw _0x2414aa;});}return _0x203210;});}})[_0xb336('0x28')](respondWithResult(_0x37934d,0xc9))[_0xb336('0x47')](handleError(_0x37934d,null));};exports['update']=function(_0xac0cb0,_0x5d18f5){if(_0xac0cb0[_0xb336('0x4f')]['id']){delete _0xac0cb0[_0xb336('0x4f')]['id'];}return db[_0xb336('0x32')][_0xb336('0x4d')]({'where':{'id':_0xac0cb0[_0xb336('0x49')]['id']}})[_0xb336('0x28')](handleEntityNotFound(_0x5d18f5,null))[_0xb336('0x28')](saveUpdates(_0xac0cb0['body'],null))['then'](respondWithResult(_0x5d18f5,null))[_0xb336('0x47')](handleError(_0x5d18f5,null));};exports['destroy']=function(_0x43dfe6,_0x2a5d0b){return db[_0xb336('0x32')][_0xb336('0x4d')]({'where':{'id':_0x43dfe6['params']['id']}})['then'](handleEntityNotFound(_0x2a5d0b,null))[_0xb336('0x28')](removeEntity(_0x2a5d0b,null))[_0xb336('0x47')](handleError(_0x2a5d0b,null));};function widgetAttributes(_0x339f6a){try{switch(_0x339f6a[_0xb336('0x35')]){case'iframe':return[{'name':_0xb336('0x5b'),'value':_0x339f6a[_0xb336('0x5b')]||(_0x339f6a[_0xb336('0x5c')]&&_0x339f6a[_0xb336('0x5c')][0x0]?_0x339f6a[_0xb336('0x5c')][0x0][_0xb336('0x5d')]:undefined)||'https://'}];case'custom':return[{'name':_0xb336('0x5e'),'value':_0x339f6a['attrPath']||(_0x339f6a['attrs']&&_0x339f6a[_0xb336('0x5c')][0x0]?_0x339f6a[_0xb336('0x5c')][0x0][_0xb336('0x5d')]:undefined)||''}];case _0xb336('0x5f'):return[{'name':'attrHourFormat','value':_0x339f6a[_0xb336('0x60')]||(_0x339f6a['attrs']&&_0x339f6a[_0xb336('0x5c')][0x0]?_0x339f6a['attrs'][0x0][_0xb336('0x5d')]:undefined)||_0xb336('0x61')},{'name':_0xb336('0x62'),'value':_0x339f6a[_0xb336('0x62')]||(_0x339f6a['attrs']&&_0x339f6a[_0xb336('0x5c')][0x1]?_0x339f6a[_0xb336('0x5c')][0x1][_0xb336('0x5d')]:undefined)||_0xb336('0x63')},{'name':'attrFontSize','value':_0x339f6a[_0xb336('0x64')]||(_0x339f6a[_0xb336('0x5c')]&&_0x339f6a[_0xb336('0x5c')][0x2]?_0x339f6a[_0xb336('0x5c')][0x2][_0xb336('0x5d')]:undefined)||0xc}];case _0xb336('0x65'):return[{'name':_0xb336('0x66'),'value':_0x339f6a[_0xb336('0x66')]||(_0x339f6a[_0xb336('0x5c')]&&_0x339f6a[_0xb336('0x5c')][0x0]?_0x339f6a['attrs'][0x0]['value']:undefined)||_0xb336('0x67')},{'name':_0xb336('0x68'),'value':_0x339f6a[_0xb336('0x68')]||(_0x339f6a[_0xb336('0x5c')]&&_0x339f6a[_0xb336('0x5c')][0x1]?_0x339f6a[_0xb336('0x5c')][0x1]['value']:undefined)||[]},{'name':_0xb336('0x64'),'value':_0x339f6a[_0xb336('0x64')]||(_0x339f6a[_0xb336('0x5c')]&&_0x339f6a[_0xb336('0x5c')][0x2]?_0x339f6a['attrs'][0x2][_0xb336('0x5d')]:undefined)||0x14}];case _0xb336('0x69'):case _0xb336('0x6a'):return[{'name':_0xb336('0x6b'),'value':_0x339f6a[_0xb336('0x6b')]||(_0x339f6a[_0xb336('0x5c')]&&_0x339f6a[_0xb336('0x5c')][0x0]?_0x339f6a[_0xb336('0x5c')][0x0]['value']:undefined)||_0xb336('0x67')},{'name':_0xb336('0x6c'),'value':_0x339f6a[_0xb336('0x6c')]||(_0x339f6a['attrs']&&_0x339f6a[_0xb336('0x5c')][0x1]?_0x339f6a[_0xb336('0x5c')][0x1][_0xb336('0x5d')]:undefined)||null},{'name':_0xb336('0x6d'),'value':_0x339f6a[_0xb336('0x6d')]||(_0x339f6a[_0xb336('0x5c')]&&_0x339f6a[_0xb336('0x5c')][0x2]?_0x339f6a[_0xb336('0x5c')][0x2][_0xb336('0x5d')]:undefined)||null},{'name':_0xb336('0x68'),'value':_0x339f6a['attrVoiceQueues']||(_0x339f6a[_0xb336('0x5c')]&&_0x339f6a['attrs'][0x3]?_0x339f6a[_0xb336('0x5c')][0x3][_0xb336('0x5d')]:undefined)||[]}];case _0xb336('0x6e'):return[{'name':_0xb336('0x6f'),'type':_0x339f6a[_0xb336('0x70')]||(_0x339f6a[_0xb336('0x5c')]&&_0x339f6a[_0xb336('0x5c')][0x0]?_0x339f6a['attrs'][0x0][_0xb336('0x35')]:undefined)||null,'value':_0x339f6a[_0xb336('0x6f')]||(_0x339f6a[_0xb336('0x5c')]&&_0x339f6a[_0xb336('0x5c')][0x0]?_0x339f6a[_0xb336('0x5c')][0x0][_0xb336('0x5d')]:undefined)||null},{'name':_0xb336('0x71'),'value':_0x339f6a[_0xb336('0x71')]||(_0x339f6a[_0xb336('0x5c')]&&_0x339f6a[_0xb336('0x5c')][0x1]?_0x339f6a['attrs'][0x1]['value']:undefined)||0x0}];default:return[];}}catch(_0xe5df9f){logger[_0xb336('0x2e')](_0xb336('0x72'),JSON[_0xb336('0x73')](_0xe5df9f));return[];}}exports[_0xb336('0x74')]=function(_0x30a1e1,_0x915c3,_0x466822){if(_0x30a1e1[_0xb336('0x4f')]['id']){delete _0x30a1e1[_0xb336('0x4f')]['id'];}return db[_0xb336('0x32')]['find']({'where':{'id':_0x30a1e1[_0xb336('0x49')]['id']}})[_0xb336('0x28')](handleEntityNotFound(_0x915c3,null))[_0xb336('0x28')](function(_0x3611a2){if(_0x3611a2){_0x30a1e1[_0xb336('0x4f')][_0xb336('0x75')]=_0x3611a2['id'];_0x30a1e1[_0xb336('0x4f')]['attrs']=widgetAttributes(_0x30a1e1[_0xb336('0x4f')]);return db['DashboardItem'][_0xb336('0x4e')](_0x30a1e1[_0xb336('0x4f')]);}})['then'](respondWithResult(_0x915c3,null))[_0xb336('0x47')](handleError(_0x915c3,null));};exports[_0xb336('0x76')]=function(_0x239aa9,_0xdc95ef,_0xf3d8f4){var _0x24d34a={};var _0x27b5d4={};var _0x392264;var _0x1fc867;return db['Dashboard'][_0xb336('0x77')]({'where':{'id':_0x239aa9['params']['id']}})[_0xb336('0x28')](handleEntityNotFound(_0xdc95ef,null))[_0xb336('0x28')](function(_0x220cb2){if(_0x220cb2){_0x392264=_0x220cb2;_0x27b5d4[_0xb336('0x36')]=_[_0xb336('0x38')](db[_0xb336('0x78')]['rawAttributes']);_0x27b5d4[_0xb336('0x37')]=_[_0xb336('0x38')](_0x239aa9[_0xb336('0x37')]);_0x27b5d4[_0xb336('0x79')]=_['intersection'](_0x27b5d4[_0xb336('0x36')],_0x27b5d4[_0xb336('0x37')]);_0x24d34a[_0xb336('0x3b')]=_[_0xb336('0x39')](_0x27b5d4[_0xb336('0x36')],qs['fields'](_0x239aa9[_0xb336('0x37')][_0xb336('0x3a')]));_0x24d34a[_0xb336('0x3b')]=_0x24d34a[_0xb336('0x3b')][_0xb336('0x3c')]?_0x24d34a['attributes']:_0x27b5d4['model'];_0x24d34a[_0xb336('0x3f')]=qs[_0xb336('0x40')](_0x239aa9[_0xb336('0x37')][_0xb336('0x40')]);_0x24d34a['where']=qs[_0xb336('0x79')](_[_0xb336('0x42')](_0x239aa9['query'],_0x27b5d4[_0xb336('0x79')]));if(_0x239aa9['query'][_0xb336('0x43')]){_0x24d34a[_0xb336('0x41')]=_['merge'](_0x24d34a[_0xb336('0x41')],{'$or':_[_0xb336('0x45')](_0x24d34a[_0xb336('0x3b')],function(_0x3c13d7){var _0x400954={};_0x400954[_0x3c13d7]={'$like':'%'+_0x239aa9[_0xb336('0x37')]['filter']+'%'};return _0x400954;})});}_0x24d34a=_[_0xb336('0x44')]({},_0x24d34a,_0x239aa9[_0xb336('0x4c')]);return _0x392264[_0xb336('0x76')](_0x24d34a);}})[_0xb336('0x28')](function(_0x1ecd47){if(_0x1ecd47){_0x1fc867=_0x1ecd47['length'];if(!_0x239aa9[_0xb336('0x37')]['hasOwnProperty'](_0xb336('0x3e'))){_0x24d34a['limit']=qs[_0xb336('0x21')](_0x239aa9[_0xb336('0x37')]['limit']);_0x24d34a[_0xb336('0x1e')]=qs[_0xb336('0x1e')](_0x239aa9[_0xb336('0x37')][_0xb336('0x1e')]);}return _0x392264[_0xb336('0x76')](_0x24d34a);}})['then'](function(_0x334526){if(_0x334526){return _0x334526?{'count':_0x1fc867,'rows':_0x334526}:null;}})[_0xb336('0x28')](respondWithResult(_0xdc95ef,null))[_0xb336('0x47')](handleError(_0xdc95ef,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4adb=['exports','../../mysqldb','Dashboard','save','remove','emit','hasOwnProperty','hook'];(function(_0x52ea08,_0x15d935){var _0x28d546=function(_0x4a3aa7){while(--_0x4a3aa7){_0x52ea08['push'](_0x52ea08['shift']());}};_0x28d546(++_0x15d935);}(_0x4adb,0x169));var _0xb4ad=function(_0x8702b4,_0x37ab3f){_0x8702b4=_0x8702b4-0x0;var _0x540870=_0x4adb[_0x8702b4];return _0x540870;};'use strict';var EventEmitter=require('events');var Dashboard=require(_0xb4ad('0x0'))['db'][_0xb4ad('0x1')];var DashboardEvents=new EventEmitter();DashboardEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xb4ad('0x2'),'afterUpdate':'update','afterDestroy':_0xb4ad('0x3')};function emitEvent(_0x263c37){return function(_0x574bc0,_0x13b6c1,_0xc8c6ed){DashboardEvents[_0xb4ad('0x4')](_0x263c37+':'+_0x574bc0['id'],_0x574bc0);DashboardEvents[_0xb4ad('0x4')](_0x263c37,_0x574bc0);_0xc8c6ed(null);};}for(var e in events){if(events[_0xb4ad('0x5')](e)){var event=events[e];Dashboard[_0xb4ad('0x6')](e,emitEvent(event));}}module[_0xb4ad('0x7')]=DashboardEvents;
\ No newline at end of file
+var _0xb6c8=['emit','hasOwnProperty','hook','exports','events','Dashboard','setMaxListeners','save','update','remove'];(function(_0x4df9a0,_0x5ddc8a){var _0x276973=function(_0x202610){while(--_0x202610){_0x4df9a0['push'](_0x4df9a0['shift']());}};_0x276973(++_0x5ddc8a);}(_0xb6c8,0x180));var _0x8b6c=function(_0x5249d3,_0x2cfcf7){_0x5249d3=_0x5249d3-0x0;var _0x19a882=_0xb6c8[_0x5249d3];return _0x19a882;};'use strict';var EventEmitter=require(_0x8b6c('0x0'));var Dashboard=require('../../mysqldb')['db'][_0x8b6c('0x1')];var DashboardEvents=new EventEmitter();DashboardEvents[_0x8b6c('0x2')](0x0);var events={'afterCreate':_0x8b6c('0x3'),'afterUpdate':_0x8b6c('0x4'),'afterDestroy':_0x8b6c('0x5')};function emitEvent(_0x4e1052){return function(_0x4afa76,_0x513295,_0x35f049){DashboardEvents[_0x8b6c('0x6')](_0x4e1052+':'+_0x4afa76['id'],_0x4afa76);DashboardEvents[_0x8b6c('0x6')](_0x4e1052,_0x4afa76);_0x35f049(null);};}for(var e in events){if(events[_0x8b6c('0x7')](e)){var event=events[e];Dashboard[_0x8b6c('0x8')](e,emitEvent(event));}}module[_0x8b6c('0x9')]=DashboardEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2fa5=['../../config/logger','api','bluebird','path','../../config/environment','exports','define','Dashboard','dashboards','lodash','util'];(function(_0x525c7b,_0x488fcc){var _0x27b33e=function(_0x56d43b){while(--_0x56d43b){_0x525c7b['push'](_0x525c7b['shift']());}};_0x27b33e(++_0x488fcc);}(_0x2fa5,0xa3));var _0x52fa=function(_0x42221a,_0x48259e){_0x42221a=_0x42221a-0x0;var _0x54e742=_0x2fa5[_0x42221a];return _0x54e742;};'use strict';var _=require(_0x52fa('0x0'));var util=require(_0x52fa('0x1'));var logger=require(_0x52fa('0x2'))(_0x52fa('0x3'));var moment=require('moment');var BPromise=require(_0x52fa('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x52fa('0x5'));var rimraf=require('rimraf');var config=require(_0x52fa('0x6'));var attributes=require('./dashboard.attributes');module[_0x52fa('0x7')]=function(_0x2c7cb0,_0x1b4a0d){return _0x2c7cb0[_0x52fa('0x8')](_0x52fa('0x9'),attributes,{'tableName':_0x52fa('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x6c85=['Dashboard','lodash','util','../../config/logger','bluebird','rimraf','../../config/environment','exports','define'];(function(_0x2a8491,_0x1c6922){var _0x21c818=function(_0x2110f3){while(--_0x2110f3){_0x2a8491['push'](_0x2a8491['shift']());}};_0x21c818(++_0x1c6922);}(_0x6c85,0x12a));var _0x56c8=function(_0x53758c,_0x5664af){_0x53758c=_0x53758c-0x0;var _0x425eff=_0x6c85[_0x53758c];return _0x425eff;};'use strict';var _=require(_0x56c8('0x0'));var util=require(_0x56c8('0x1'));var logger=require(_0x56c8('0x2'))('api');var moment=require('moment');var BPromise=require(_0x56c8('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0x56c8('0x4'));var config=require(_0x56c8('0x5'));var attributes=require('./dashboard.attributes');module[_0x56c8('0x6')]=function(_0x1319b7,_0x2d2d87){return _0x1319b7[_0x56c8('0x7')](_0x56c8('0x8'),attributes,{'tableName':'dashboards','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0666=['util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','defaults','redis','localhost','./dashboard.socket','request','then','info','Dashboard,\x20%s,\x20%s','request\x20sent','debug','Dashboard,\x20%s,\x20%s,\x20%s','error','code','message','catch','lodash'];(function(_0x3222ad,_0x2df6b3){var _0x69314b=function(_0x5eefb4){while(--_0x5eefb4){_0x3222ad['push'](_0x3222ad['shift']());}};_0x69314b(++_0x2df6b3);}(_0x0666,0x1ca));var _0x6066=function(_0x40c25c,_0x25e8eb){_0x40c25c=_0x40c25c-0x0;var _0x43b5de=_0x0666[_0x40c25c];return _0x43b5de;};'use strict';var _=require(_0x6066('0x0'));var util=require(_0x6066('0x1'));var moment=require(_0x6066('0x2'));var BPromise=require('bluebird');var rs=require(_0x6066('0x3'));var fs=require('fs');var Redis=require(_0x6066('0x4'));var db=require(_0x6066('0x5'))['db'];var utils=require(_0x6066('0x6'));var logger=require(_0x6066('0x7'))(_0x6066('0x8'));var config=require(_0x6066('0x9'));var jayson=require(_0x6066('0xa'));var client=jayson[_0x6066('0xb')]['http']({'port':0x232a});config['redis']=_[_0x6066('0xc')](config[_0x6066('0xd')],{'host':_0x6066('0xe'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0x6066('0xf'))['register'](socket);function respondWithRpcPromise(_0xf6d972,_0x29c1f6,_0x1dac47){return new BPromise(function(_0xc994a6,_0x336cb1){return client[_0x6066('0x10')](_0xf6d972,_0x1dac47)[_0x6066('0x11')](function(_0x168af7){logger[_0x6066('0x12')](_0x6066('0x13'),_0x29c1f6,_0x6066('0x14'));logger[_0x6066('0x15')](_0x6066('0x16'),_0x29c1f6,'request\x20sent',JSON['stringify'](_0x168af7));if(_0x168af7[_0x6066('0x17')]){if(_0x168af7['error'][_0x6066('0x18')]===0x1f4){logger[_0x6066('0x17')](_0x6066('0x13'),_0x29c1f6,_0x168af7[_0x6066('0x17')]['message']);return _0x336cb1(_0x168af7[_0x6066('0x17')][_0x6066('0x19')]);}logger[_0x6066('0x17')](_0x6066('0x13'),_0x29c1f6,_0x168af7[_0x6066('0x17')][_0x6066('0x19')]);return _0xc994a6(_0x168af7['error']['message']);}else{logger[_0x6066('0x12')](_0x6066('0x13'),_0x29c1f6,'request\x20sent');_0xc994a6(_0x168af7['result'][_0x6066('0x19')]);}})[_0x6066('0x1a')](function(_0x8d8ff3){logger['error']('Dashboard,\x20%s,\x20%s',_0x29c1f6,_0x8d8ff3);_0x336cb1(_0x8d8ff3);});});}
\ No newline at end of file
+var _0x822d=['lodash','util','moment','bluebird','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','redis','defaults','socket.io-emitter','./dashboard.socket','register','then','info','Dashboard,\x20%s,\x20%s','request\x20sent','debug','Dashboard,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch'];(function(_0x5b26cb,_0x527ab0){var _0x563d12=function(_0x472b38){while(--_0x472b38){_0x5b26cb['push'](_0x5b26cb['shift']());}};_0x563d12(++_0x527ab0);}(_0x822d,0xa2));var _0xd822=function(_0x4c2623,_0x4838bb){_0x4c2623=_0x4c2623-0x0;var _0x2be431=_0x822d[_0x4c2623];return _0x2be431;};'use strict';var _=require(_0xd822('0x0'));var util=require(_0xd822('0x1'));var moment=require(_0xd822('0x2'));var BPromise=require(_0xd822('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0xd822('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0xd822('0x5'))(_0xd822('0x6'));var config=require(_0xd822('0x7'));var jayson=require(_0xd822('0x8'));var client=jayson[_0xd822('0x9')]['http']({'port':0x232a});config[_0xd822('0xa')]=_[_0xd822('0xb')](config[_0xd822('0xa')],{'host':'localhost','port':0x18eb});var socket=require(_0xd822('0xc'))(new Redis(config[_0xd822('0xa')]));require(_0xd822('0xd'))[_0xd822('0xe')](socket);function respondWithRpcPromise(_0x44fa46,_0x111673,_0x4028f3){return new BPromise(function(_0x30f1d4,_0x37ae69){return client['request'](_0x44fa46,_0x4028f3)[_0xd822('0xf')](function(_0x3c9ce7){logger[_0xd822('0x10')](_0xd822('0x11'),_0x111673,_0xd822('0x12'));logger[_0xd822('0x13')](_0xd822('0x14'),_0x111673,_0xd822('0x12'),JSON[_0xd822('0x15')](_0x3c9ce7));if(_0x3c9ce7[_0xd822('0x16')]){if(_0x3c9ce7['error'][_0xd822('0x17')]===0x1f4){logger['error'](_0xd822('0x11'),_0x111673,_0x3c9ce7[_0xd822('0x16')][_0xd822('0x18')]);return _0x37ae69(_0x3c9ce7[_0xd822('0x16')][_0xd822('0x18')]);}logger[_0xd822('0x16')]('Dashboard,\x20%s,\x20%s',_0x111673,_0x3c9ce7['error']['message']);return _0x30f1d4(_0x3c9ce7['error'][_0xd822('0x18')]);}else{logger[_0xd822('0x10')](_0xd822('0x11'),_0x111673,_0xd822('0x12'));_0x30f1d4(_0x3c9ce7[_0xd822('0x19')]['message']);}})[_0xd822('0x1a')](function(_0x1918f1){logger[_0xd822('0x16')]('Dashboard,\x20%s,\x20%s',_0x111673,_0x1918f1);_0x37ae69(_0x1918f1);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x29e0=['dashboard:','save','remove','update','emit','length'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x29e0,0x1bd));var _0x029e=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x29e0[_0x3dd15e];return _0x231fd0;};'use strict';var DashboardEvents=require('./dashboard.events');var events=[_0x029e('0x0'),_0x029e('0x1'),_0x029e('0x2')];function createListener(_0x28d058,_0x3c7181){return function(_0x482f2a){_0x3c7181[_0x029e('0x3')](_0x28d058,_0x482f2a);};}function removeListener(_0x1f947d,_0x4282d8){return function(){DashboardEvents['removeListener'](_0x1f947d,_0x4282d8);};}exports['register']=function(_0x3865ee){for(var _0x387757=0x0,_0xb0ea2a=events[_0x029e('0x4')];_0x387757<_0xb0ea2a;_0x387757++){var _0x383a6b=events[_0x387757];var _0x26d147=createListener(_0x029e('0x5')+_0x383a6b,_0x3865ee);DashboardEvents['on'](_0x383a6b,_0x26d147);}};
\ No newline at end of file
+var _0x6e7f=['update','removeListener','length','dashboard:','./dashboard.events','save'];(function(_0x4854d6,_0x2f1264){var _0x3885c0=function(_0x4d564d){while(--_0x4d564d){_0x4854d6['push'](_0x4854d6['shift']());}};_0x3885c0(++_0x2f1264);}(_0x6e7f,0x1b4));var _0xf6e7=function(_0x556cf1,_0x3a45d5){_0x556cf1=_0x556cf1-0x0;var _0x28f3e8=_0x6e7f[_0x556cf1];return _0x28f3e8;};'use strict';var DashboardEvents=require(_0xf6e7('0x0'));var events=[_0xf6e7('0x1'),'remove',_0xf6e7('0x2')];function createListener(_0x34f3d1,_0x36c1fc){return function(_0x54504a){_0x36c1fc['emit'](_0x34f3d1,_0x54504a);};}function removeListener(_0xbff9de,_0xf2582e){return function(){DashboardEvents[_0xf6e7('0x3')](_0xbff9de,_0xf2582e);};}exports['register']=function(_0x3505){for(var _0xfb9fd5=0x0,_0xf034ac=events[_0xf6e7('0x4')];_0xfb9fd5<_0xf034ac;_0xfb9fd5++){var _0x38a191=events[_0xfb9fd5];var _0x3969d4=createListener(_0xf6e7('0x5')+_0x38a191,_0x3505);DashboardEvents['on'](_0x38a191,_0x3969d4);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfe43=['show','/:id/items','post','/:id/clone','clone','/:id','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./dashboard.controller','get','isAuthenticated'];(function(_0x364962,_0x5eef30){var _0x4a4422=function(_0x3c34d8){while(--_0x3c34d8){_0x364962['push'](_0x364962['shift']());}};_0x4a4422(++_0x5eef30);}(_0xfe43,0x1ad));var _0x3fe4=function(_0x4accb5,_0xd15c51){_0x4accb5=_0x4accb5-0x0;var _0x5ce1f2=_0xfe43[_0x4accb5];return _0x5ce1f2;};'use strict';var multer=require(_0x3fe4('0x0'));var util=require(_0x3fe4('0x1'));var path=require(_0x3fe4('0x2'));var timeout=require(_0x3fe4('0x3'));var express=require(_0x3fe4('0x4'));var router=express[_0x3fe4('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0x3fe4('0x6'));var interaction=require(_0x3fe4('0x7'));var config=require(_0x3fe4('0x8'));var controller=require(_0x3fe4('0x9'));router[_0x3fe4('0xa')]('/',auth[_0x3fe4('0xb')](),controller['index']);router['get']('/:id',auth[_0x3fe4('0xb')](),controller[_0x3fe4('0xc')]);router[_0x3fe4('0xa')](_0x3fe4('0xd'),auth[_0x3fe4('0xb')](),controller['getItems']);router[_0x3fe4('0xe')]('/',auth[_0x3fe4('0xb')](),controller['create']);router[_0x3fe4('0xe')](_0x3fe4('0xf'),auth['isAuthenticated'](),controller[_0x3fe4('0x10')]);router[_0x3fe4('0xe')]('/:id/items',auth[_0x3fe4('0xb')](),controller['addItem']);router['put'](_0x3fe4('0x11'),auth['isAuthenticated'](),controller['update']);router[_0x3fe4('0x12')]('/:id',auth[_0x3fe4('0xb')](),controller[_0x3fe4('0x13')]);module[_0x3fe4('0x14')]=router;
\ No newline at end of file
+var _0x8296=['get','/:id','isAuthenticated','show','/:id/items','create','/:id/clone','clone','post','update','delete','util','path','connect-timeout','express','fs-extra','../../components/interaction/service','../../config/environment','./dashboard.controller'];(function(_0x5391ef,_0x3c8788){var _0x136499=function(_0x4d80a5){while(--_0x4d80a5){_0x5391ef['push'](_0x5391ef['shift']());}};_0x136499(++_0x3c8788);}(_0x8296,0x13b));var _0x6829=function(_0x1ed73e,_0x108238){_0x1ed73e=_0x1ed73e-0x0;var _0x497c61=_0x8296[_0x1ed73e];return _0x497c61;};'use strict';var multer=require('multer');var util=require(_0x6829('0x0'));var path=require(_0x6829('0x1'));var timeout=require(_0x6829('0x2'));var express=require(_0x6829('0x3'));var router=express['Router']();var fs_extra=require(_0x6829('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x6829('0x5'));var config=require(_0x6829('0x6'));var controller=require(_0x6829('0x7'));router[_0x6829('0x8')]('/',auth['isAuthenticated'](),controller['index']);router['get'](_0x6829('0x9'),auth[_0x6829('0xa')](),controller[_0x6829('0xb')]);router[_0x6829('0x8')](_0x6829('0xc'),auth[_0x6829('0xa')](),controller['getItems']);router['post']('/',auth[_0x6829('0xa')](),controller[_0x6829('0xd')]);router['post'](_0x6829('0xe'),auth['isAuthenticated'](),controller[_0x6829('0xf')]);router[_0x6829('0x10')]('/:id/items',auth[_0x6829('0xa')](),controller['addItem']);router['put'](_0x6829('0x9'),auth[_0x6829('0xa')](),controller[_0x6829('0x11')]);router[_0x6829('0x12')](_0x6829('0x9'),auth[_0x6829('0xa')](),controller['destroy']);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc1c6=['long','parse','setDataValue','stringify','attrs','INTEGER','#ffffff','sequelize','squel','lodash','STRING','TEXT'];(function(_0x219ee4,_0x71b6f5){var _0x4d99b3=function(_0x1dec9d){while(--_0x1dec9d){_0x219ee4['push'](_0x219ee4['shift']());}};_0x4d99b3(++_0x71b6f5);}(_0xc1c6,0xf7));var _0x6c1c=function(_0x333ef1,_0x2b2732){_0x333ef1=_0x333ef1-0x0;var _0x1a9f0a=_0xc1c6[_0x333ef1];return _0x1a9f0a;};'use strict';var Sequelize=require(_0x6c1c('0x0'));var squel=require(_0x6c1c('0x1'));var _=require(_0x6c1c('0x2'));module['exports']={'title':{'type':Sequelize[_0x6c1c('0x3')],'allowNull':![]},'type':{'type':Sequelize['STRING'](0x14),'allowNull':![],'validate':{'len':[0x1,0x14]}},'attrs':{'type':Sequelize[_0x6c1c('0x4')](_0x6c1c('0x5')),'get':function(){try{return JSON[_0x6c1c('0x6')](this['getDataValue']('attrs'));}catch(_0x32af84){return[];}},'set':function(_0x524a6b){try{this[_0x6c1c('0x7')]('attrs',JSON[_0x6c1c('0x8')](_0x524a6b));}catch(_0x2eb1ba){this[_0x6c1c('0x7')](_0x6c1c('0x9'),JSON['stringify']([]));}}},'sizeX':{'type':Sequelize[_0x6c1c('0xa')],'allowNull':![],'defaultValue':0x1},'sizeY':{'type':Sequelize[_0x6c1c('0xa')],'allowNull':![],'defaultValue':0x1},'row':{'type':Sequelize['INTEGER']},'col':{'type':Sequelize[_0x6c1c('0xa')]},'background':{'type':Sequelize[_0x6c1c('0x3')],'allowNull':![],'defaultValue':_0x6c1c('0xb'),'validate':{'notEmpty':!![]}},'foreground':{'type':Sequelize[_0x6c1c('0x3')],'allowNull':![],'defaultValue':'#2196f3','validate':{'notEmpty':!![]}},'link':{'type':Sequelize[_0x6c1c('0x3')]},'titleFontSize':{'type':Sequelize[_0x6c1c('0xa')],'defaultValue':0xc}};
\ No newline at end of file
+var _0xacf4=['lodash','exports','STRING','TEXT','long','parse','attrs','setDataValue','stringify','INTEGER','#2196f3'];(function(_0x57b54c,_0x54ce0d){var _0x59cc19=function(_0xa33bc6){while(--_0xa33bc6){_0x57b54c['push'](_0x57b54c['shift']());}};_0x59cc19(++_0x54ce0d);}(_0xacf4,0xe7));var _0x4acf=function(_0x576bfd,_0x18d76f){_0x576bfd=_0x576bfd-0x0;var _0x50c2d6=_0xacf4[_0x576bfd];return _0x50c2d6;};'use strict';var Sequelize=require('sequelize');var squel=require('squel');var _=require(_0x4acf('0x0'));module[_0x4acf('0x1')]={'title':{'type':Sequelize[_0x4acf('0x2')],'allowNull':![]},'type':{'type':Sequelize[_0x4acf('0x2')](0x14),'allowNull':![],'validate':{'len':[0x1,0x14]}},'attrs':{'type':Sequelize[_0x4acf('0x3')](_0x4acf('0x4')),'get':function(){try{return JSON[_0x4acf('0x5')](this['getDataValue'](_0x4acf('0x6')));}catch(_0x2124c8){return[];}},'set':function(_0x4e0c43){try{this[_0x4acf('0x7')](_0x4acf('0x6'),JSON[_0x4acf('0x8')](_0x4e0c43));}catch(_0x45a5a4){this[_0x4acf('0x7')]('attrs',JSON['stringify']([]));}}},'sizeX':{'type':Sequelize[_0x4acf('0x9')],'allowNull':![],'defaultValue':0x1},'sizeY':{'type':Sequelize['INTEGER'],'allowNull':![],'defaultValue':0x1},'row':{'type':Sequelize[_0x4acf('0x9')]},'col':{'type':Sequelize[_0x4acf('0x9')]},'background':{'type':Sequelize[_0x4acf('0x2')],'allowNull':![],'defaultValue':'#ffffff','validate':{'notEmpty':!![]}},'foreground':{'type':Sequelize[_0x4acf('0x2')],'allowNull':![],'defaultValue':_0x4acf('0xa'),'validate':{'notEmpty':!![]}},'link':{'type':Sequelize['STRING']},'titleFontSize':{'type':Sequelize['INTEGER'],'defaultValue':0xc}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7cb3=['options','find','catch','attrUrl','attrs','value','https://','custom','attrPath','clock','attrHourFormat','HH:mm:ss','attrTimezone','0.00','attrFontSize','counter','attrMetric','attrVoiceQueues','multibar-chart','attrSerie1','total','attrSerie2','attrSerie3','web-report','reportType','type','attrReport','attrRefresh','widgetAttributes:\x20%s','stringify','create','body','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','mustache','util','path','sox','to-csv','ejs','fs-extra','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','redis','./dashboardItem.socket','register','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','save','update','then','destroy','end','error','stack','name','send','show','params','model','DashboardItem','query','keys','filters','attributes','intersection','fields','includeAll','include','merge'];(function(_0x3305de,_0x16582f){var _0x3b5a84=function(_0x57d7e1){while(--_0x57d7e1){_0x3305de['push'](_0x3305de['shift']());}};_0x3b5a84(++_0x16582f);}(_0x7cb3,0x7b));var _0x37cb=function(_0x36b629,_0x1af0a1){_0x36b629=_0x36b629-0x0;var _0x1f6e78=_0x7cb3[_0x36b629];return _0x1f6e78;};'use strict';var emlformat=require(_0x37cb('0x0'));var rimraf=require(_0x37cb('0x1'));var zipdir=require(_0x37cb('0x2'));var jsonpatch=require(_0x37cb('0x3'));var rp=require(_0x37cb('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x37cb('0x5'));var util=require(_0x37cb('0x6'));var path=require(_0x37cb('0x7'));var sox=require(_0x37cb('0x8'));var csv=require(_0x37cb('0x9'));var ejs=require(_0x37cb('0xa'));var fs=require('fs');var fs_extra=require(_0x37cb('0xb'));var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x37cb('0xc'));var deskjs=require(_0x37cb('0xd'));var toCsv=require('to-csv');var querystring=require(_0x37cb('0xe'));var Papa=require('papaparse');var Redis=require(_0x37cb('0xf'));var authService=require(_0x37cb('0x10'));var qs=require(_0x37cb('0x11'));var as=require(_0x37cb('0x12'));var hardwareService=require(_0x37cb('0x13'));var logger=require(_0x37cb('0x14'))(_0x37cb('0x15'));var utils=require('../../config/utils');var config=require(_0x37cb('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0x37cb('0x17'))['db'];config[_0x37cb('0x18')]=_['defaults'](config[_0x37cb('0x18')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0x37cb('0x19'))[_0x37cb('0x1a')](socket);function respondWithStatusCode(_0x57935e,_0x34d254){_0x34d254=_0x34d254||0xcc;return function(_0x3f3f1a){if(_0x3f3f1a){return _0x57935e[_0x37cb('0x1b')](_0x34d254);}return _0x57935e[_0x37cb('0x1c')](_0x34d254)['end']();};}function respondWithResult(_0x5426b4,_0x137cd5){_0x137cd5=_0x137cd5||0xc8;return function(_0x3f4c8f){if(_0x3f4c8f){return _0x5426b4[_0x37cb('0x1c')](_0x137cd5)[_0x37cb('0x1d')](_0x3f4c8f);}};}function respondWithFilteredResult(_0x354850,_0x482ac7){return function(_0x592f8f){if(_0x592f8f){var _0x57bfa2=typeof _0x482ac7[_0x37cb('0x1e')]===_0x37cb('0x1f')&&typeof _0x482ac7[_0x37cb('0x20')]==='undefined';var _0x3f4057=_0x592f8f[_0x37cb('0x21')];var _0x57d25a=_0x57bfa2?0x0:_0x482ac7['offset'];var _0x32dc90=_0x57bfa2?_0x592f8f[_0x37cb('0x21')]:_0x482ac7[_0x37cb('0x1e')]+_0x482ac7['limit'];var _0x297da8;if(_0x32dc90>=_0x3f4057){_0x32dc90=_0x3f4057;_0x297da8=0xc8;}else{_0x297da8=0xce;}_0x354850['status'](_0x297da8);return _0x354850[_0x37cb('0x22')](_0x37cb('0x23'),_0x57d25a+'-'+_0x32dc90+'/'+_0x3f4057)['json'](_0x592f8f);}return null;};}function patchUpdates(_0x46a20d){return function(_0x39c2a5){try{jsonpatch[_0x37cb('0x24')](_0x39c2a5,_0x46a20d,!![]);}catch(_0x1204d4){return BPromise['reject'](_0x1204d4);}return _0x39c2a5[_0x37cb('0x25')]();};}function saveUpdates(_0x4bbd1c,_0x295df1){return function(_0x45c027){if(_0x45c027){return _0x45c027[_0x37cb('0x26')](_0x4bbd1c)[_0x37cb('0x27')](function(_0x36af18){return _0x36af18;});}return null;};}function removeEntity(_0x38a3a9,_0x5a8f7f){return function(_0x2e9ca9){if(_0x2e9ca9){return _0x2e9ca9[_0x37cb('0x28')]()[_0x37cb('0x27')](function(){_0x38a3a9[_0x37cb('0x1c')](0xcc)[_0x37cb('0x29')]();});}};}function handleEntityNotFound(_0x308785,_0x2375ba){return function(_0x57d332){if(!_0x57d332){_0x308785[_0x37cb('0x1b')](0x194);}return _0x57d332;};}function handleError(_0x2c6a2a,_0xe708ab){_0xe708ab=_0xe708ab||0x1f4;return function(_0x1df1cd){logger[_0x37cb('0x2a')](_0x1df1cd[_0x37cb('0x2b')]);if(_0x1df1cd[_0x37cb('0x2c')]){delete _0x1df1cd[_0x37cb('0x2c')];}_0x2c6a2a[_0x37cb('0x1c')](_0xe708ab)[_0x37cb('0x2d')](_0x1df1cd);};}exports[_0x37cb('0x2e')]=function(_0x42a039,_0x2ec92d){var _0x47a827={'raw':![],'where':{'id':_0x42a039[_0x37cb('0x2f')]['id']}},_0x1294dc={};_0x1294dc[_0x37cb('0x30')]=_['keys'](db[_0x37cb('0x31')]['rawAttributes']);_0x1294dc[_0x37cb('0x32')]=_[_0x37cb('0x33')](_0x42a039[_0x37cb('0x32')]);_0x1294dc[_0x37cb('0x34')]=_['intersection'](_0x1294dc[_0x37cb('0x30')],_0x1294dc[_0x37cb('0x32')]);_0x47a827[_0x37cb('0x35')]=_[_0x37cb('0x36')](_0x1294dc[_0x37cb('0x30')],qs[_0x37cb('0x37')](_0x42a039[_0x37cb('0x32')][_0x37cb('0x37')]));_0x47a827[_0x37cb('0x35')]=_0x47a827[_0x37cb('0x35')]['length']?_0x47a827['attributes']:_0x1294dc[_0x37cb('0x30')];if(_0x42a039['query'][_0x37cb('0x38')]){_0x47a827[_0x37cb('0x39')]=[{'all':!![]}];}_0x47a827=_[_0x37cb('0x3a')]({},_0x47a827,_0x42a039[_0x37cb('0x3b')]);return db['DashboardItem'][_0x37cb('0x3c')](_0x47a827)[_0x37cb('0x27')](handleEntityNotFound(_0x2ec92d,null))[_0x37cb('0x27')](respondWithResult(_0x2ec92d,null))[_0x37cb('0x3d')](handleError(_0x2ec92d,null));};exports['destroy']=function(_0x360029,_0x53e9ff){return db[_0x37cb('0x31')][_0x37cb('0x3c')]({'where':{'id':_0x360029[_0x37cb('0x2f')]['id']}})[_0x37cb('0x27')](handleEntityNotFound(_0x53e9ff,null))[_0x37cb('0x27')](removeEntity(_0x53e9ff,null))[_0x37cb('0x3d')](handleError(_0x53e9ff,null));};function widgetAttributes(_0x4ae150){try{switch(_0x4ae150['type']){case'iframe':return[{'name':_0x37cb('0x3e'),'value':_0x4ae150['attrUrl']||(_0x4ae150[_0x37cb('0x3f')]&&_0x4ae150[_0x37cb('0x3f')][0x0]?_0x4ae150[_0x37cb('0x3f')][0x0][_0x37cb('0x40')]:undefined)||_0x37cb('0x41')}];case _0x37cb('0x42'):return[{'name':_0x37cb('0x43'),'value':_0x4ae150[_0x37cb('0x43')]||(_0x4ae150[_0x37cb('0x3f')]&&_0x4ae150[_0x37cb('0x3f')][0x0]?_0x4ae150[_0x37cb('0x3f')][0x0][_0x37cb('0x40')]:undefined)||''}];case _0x37cb('0x44'):return[{'name':_0x37cb('0x45'),'value':_0x4ae150[_0x37cb('0x45')]||(_0x4ae150['attrs']&&_0x4ae150['attrs'][0x0]?_0x4ae150[_0x37cb('0x3f')][0x0]['value']:undefined)||_0x37cb('0x46')},{'name':_0x37cb('0x47'),'value':_0x4ae150[_0x37cb('0x47')]||(_0x4ae150['attrs']&&_0x4ae150[_0x37cb('0x3f')][0x1]?_0x4ae150[_0x37cb('0x3f')][0x1][_0x37cb('0x40')]:undefined)||_0x37cb('0x48')},{'name':_0x37cb('0x49'),'value':_0x4ae150[_0x37cb('0x49')]||(_0x4ae150[_0x37cb('0x3f')]&&_0x4ae150['attrs'][0x2]?_0x4ae150[_0x37cb('0x3f')][0x2][_0x37cb('0x40')]:undefined)||0xc}];case _0x37cb('0x4a'):return[{'name':_0x37cb('0x4b'),'value':_0x4ae150[_0x37cb('0x4b')]||(_0x4ae150[_0x37cb('0x3f')]&&_0x4ae150[_0x37cb('0x3f')][0x0]?_0x4ae150[_0x37cb('0x3f')][0x0][_0x37cb('0x40')]:undefined)||'total'},{'name':_0x37cb('0x4c'),'value':_0x4ae150['attrVoiceQueues']||(_0x4ae150[_0x37cb('0x3f')]&&_0x4ae150[_0x37cb('0x3f')][0x1]?_0x4ae150['attrs'][0x1][_0x37cb('0x40')]:undefined)||[]},{'name':_0x37cb('0x49'),'value':_0x4ae150[_0x37cb('0x49')]||(_0x4ae150[_0x37cb('0x3f')]&&_0x4ae150[_0x37cb('0x3f')][0x2]?_0x4ae150[_0x37cb('0x3f')][0x2][_0x37cb('0x40')]:undefined)||0x14}];case _0x37cb('0x4d'):case'pie-chart':return[{'name':_0x37cb('0x4e'),'value':_0x4ae150[_0x37cb('0x4e')]||(_0x4ae150['attrs']&&_0x4ae150[_0x37cb('0x3f')][0x0]?_0x4ae150[_0x37cb('0x3f')][0x0][_0x37cb('0x40')]:undefined)||_0x37cb('0x4f')},{'name':_0x37cb('0x50'),'value':_0x4ae150[_0x37cb('0x50')]||(_0x4ae150[_0x37cb('0x3f')]&&_0x4ae150[_0x37cb('0x3f')][0x1]?_0x4ae150[_0x37cb('0x3f')][0x1]['value']:undefined)||null},{'name':_0x37cb('0x51'),'value':_0x4ae150['attrSerie3']||(_0x4ae150['attrs']&&_0x4ae150[_0x37cb('0x3f')][0x2]?_0x4ae150[_0x37cb('0x3f')][0x2][_0x37cb('0x40')]:undefined)||null},{'name':_0x37cb('0x4c'),'value':_0x4ae150[_0x37cb('0x4c')]||(_0x4ae150['attrs']&&_0x4ae150['attrs'][0x3]?_0x4ae150[_0x37cb('0x3f')][0x3]['value']:undefined)||[]}];case _0x37cb('0x52'):return[{'name':'attrReport','type':_0x4ae150[_0x37cb('0x53')]||(_0x4ae150['attrs']&&_0x4ae150[_0x37cb('0x3f')][0x0]?_0x4ae150[_0x37cb('0x3f')][0x0][_0x37cb('0x54')]:undefined)||null,'value':_0x4ae150[_0x37cb('0x55')]||(_0x4ae150[_0x37cb('0x3f')]&&_0x4ae150[_0x37cb('0x3f')][0x0]?_0x4ae150[_0x37cb('0x3f')][0x0]['value']:undefined)||null},{'name':'attrRefresh','value':_0x4ae150[_0x37cb('0x56')]||(_0x4ae150[_0x37cb('0x3f')]&&_0x4ae150[_0x37cb('0x3f')][0x1]?_0x4ae150[_0x37cb('0x3f')][0x1][_0x37cb('0x40')]:undefined)||0x0}];default:return[];}}catch(_0x4376c0){logger[_0x37cb('0x2a')](_0x37cb('0x57'),JSON[_0x37cb('0x58')](_0x4376c0));return[];}}exports[_0x37cb('0x59')]=function(_0x2f9e3c,_0x1ad020){if(_0x2f9e3c[_0x37cb('0x5a')]){_0x2f9e3c[_0x37cb('0x5a')][_0x37cb('0x3f')]=widgetAttributes(_0x2f9e3c['body']);}return db['DashboardItem'][_0x37cb('0x59')](_0x2f9e3c['body'],{})[_0x37cb('0x27')](respondWithResult(_0x1ad020,0xc9))[_0x37cb('0x3d')](handleError(_0x1ad020,null));};exports[_0x37cb('0x26')]=function(_0x43e293,_0x1ea827){if(_0x43e293[_0x37cb('0x5a')]['id']){delete _0x43e293[_0x37cb('0x5a')]['id'];}_0x43e293[_0x37cb('0x5a')][_0x37cb('0x3f')]=widgetAttributes(_0x43e293[_0x37cb('0x5a')]);return db['DashboardItem'][_0x37cb('0x3c')]({'where':{'id':_0x43e293[_0x37cb('0x2f')]['id']}})[_0x37cb('0x27')](handleEntityNotFound(_0x1ea827,null))['then'](saveUpdates(_0x43e293[_0x37cb('0x5a')],null))[_0x37cb('0x27')](respondWithResult(_0x1ea827,null))[_0x37cb('0x3d')](handleError(_0x1ea827,null));};
\ No newline at end of file
+var _0x76dd=['multibar-chart','attrSerie1','total','attrSerie2','attrSerie3','web-report','attrReport','stringify','create','body','eml-format','moment','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./dashboardItem.socket','register','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','reject','update','then','destroy','error','stack','name','send','params','model','keys','DashboardItem','rawAttributes','query','filters','attributes','intersection','fields','length','include','merge','find','catch','type','iframe','attrs','value','https://','custom','attrPath','clock','attrHourFormat','attrTimezone','0.00','attrFontSize','attrMetric','attrVoiceQueues'];(function(_0x59ae8f,_0x148344){var _0x3900b5=function(_0x63af51){while(--_0x63af51){_0x59ae8f['push'](_0x59ae8f['shift']());}};_0x3900b5(++_0x148344);}(_0x76dd,0xb4));var _0xd76d=function(_0x462f0c,_0x5ed2cc){_0x462f0c=_0x462f0c-0x0;var _0x4fb3e3=_0x76dd[_0x462f0c];return _0x4fb3e3;};'use strict';var emlformat=require(_0xd76d('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xd76d('0x1'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require(_0xd76d('0x2'));var sox=require(_0xd76d('0x3'));var csv=require('to-csv');var ejs=require(_0xd76d('0x4'));var fs=require('fs');var fs_extra=require(_0xd76d('0x5'));var _=require(_0xd76d('0x6'));var squel=require(_0xd76d('0x7'));var crypto=require(_0xd76d('0x8'));var jsforce=require(_0xd76d('0x9'));var deskjs=require('desk.js');var toCsv=require(_0xd76d('0xa'));var querystring=require(_0xd76d('0xb'));var Papa=require(_0xd76d('0xc'));var Redis=require('ioredis');var authService=require(_0xd76d('0xd'));var qs=require('../../components/parsers/qs');var as=require(_0xd76d('0xe'));var hardwareService=require(_0xd76d('0xf'));var logger=require(_0xd76d('0x10'))(_0xd76d('0x11'));var utils=require(_0xd76d('0x12'));var config=require(_0xd76d('0x13'));var licenseUtil=require(_0xd76d('0x14'));var db=require(_0xd76d('0x15'))['db'];config[_0xd76d('0x16')]=_['defaults'](config['redis'],{'host':_0xd76d('0x17'),'port':0x18eb});var socket=require(_0xd76d('0x18'))(new Redis(config[_0xd76d('0x16')]));require(_0xd76d('0x19'))[_0xd76d('0x1a')](socket);function respondWithStatusCode(_0x434efa,_0x5f08da){_0x5f08da=_0x5f08da||0xcc;return function(_0x5bf77d){if(_0x5bf77d){return _0x434efa[_0xd76d('0x1b')](_0x5f08da);}return _0x434efa[_0xd76d('0x1c')](_0x5f08da)[_0xd76d('0x1d')]();};}function respondWithResult(_0x20e5e5,_0x18d295){_0x18d295=_0x18d295||0xc8;return function(_0x50a786){if(_0x50a786){return _0x20e5e5[_0xd76d('0x1c')](_0x18d295)[_0xd76d('0x1e')](_0x50a786);}};}function respondWithFilteredResult(_0x23c976,_0x57d451){return function(_0x55d18c){if(_0x55d18c){var _0x3bbd29=typeof _0x57d451['offset']===_0xd76d('0x1f')&&typeof _0x57d451[_0xd76d('0x20')]===_0xd76d('0x1f');var _0x3c5d0d=_0x55d18c[_0xd76d('0x21')];var _0x1450e0=_0x3bbd29?0x0:_0x57d451[_0xd76d('0x22')];var _0x20b34e=_0x3bbd29?_0x55d18c[_0xd76d('0x21')]:_0x57d451[_0xd76d('0x22')]+_0x57d451[_0xd76d('0x20')];var _0x16d37c;if(_0x20b34e>=_0x3c5d0d){_0x20b34e=_0x3c5d0d;_0x16d37c=0xc8;}else{_0x16d37c=0xce;}_0x23c976[_0xd76d('0x1c')](_0x16d37c);return _0x23c976[_0xd76d('0x23')](_0xd76d('0x24'),_0x1450e0+'-'+_0x20b34e+'/'+_0x3c5d0d)[_0xd76d('0x1e')](_0x55d18c);}return null;};}function patchUpdates(_0x318604){return function(_0x141378){try{jsonpatch[_0xd76d('0x25')](_0x141378,_0x318604,!![]);}catch(_0x51b418){return BPromise[_0xd76d('0x26')](_0x51b418);}return _0x141378['save']();};}function saveUpdates(_0x1b5e5b,_0x415372){return function(_0x3c201d){if(_0x3c201d){return _0x3c201d[_0xd76d('0x27')](_0x1b5e5b)[_0xd76d('0x28')](function(_0x21c81e){return _0x21c81e;});}return null;};}function removeEntity(_0x3bc7b8,_0x290147){return function(_0x19c385){if(_0x19c385){return _0x19c385[_0xd76d('0x29')]()[_0xd76d('0x28')](function(){_0x3bc7b8[_0xd76d('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1c4737,_0x52e43e){return function(_0x3d89c6){if(!_0x3d89c6){_0x1c4737[_0xd76d('0x1b')](0x194);}return _0x3d89c6;};}function handleError(_0x43e7bd,_0x501197){_0x501197=_0x501197||0x1f4;return function(_0x2a5616){logger[_0xd76d('0x2a')](_0x2a5616[_0xd76d('0x2b')]);if(_0x2a5616[_0xd76d('0x2c')]){delete _0x2a5616[_0xd76d('0x2c')];}_0x43e7bd['status'](_0x501197)[_0xd76d('0x2d')](_0x2a5616);};}exports['show']=function(_0x54659e,_0x318bfe){var _0x139b7d={'raw':![],'where':{'id':_0x54659e[_0xd76d('0x2e')]['id']}},_0x3c7cc2={};_0x3c7cc2[_0xd76d('0x2f')]=_[_0xd76d('0x30')](db[_0xd76d('0x31')][_0xd76d('0x32')]);_0x3c7cc2[_0xd76d('0x33')]=_['keys'](_0x54659e[_0xd76d('0x33')]);_0x3c7cc2[_0xd76d('0x34')]=_['intersection'](_0x3c7cc2[_0xd76d('0x2f')],_0x3c7cc2['query']);_0x139b7d[_0xd76d('0x35')]=_[_0xd76d('0x36')](_0x3c7cc2[_0xd76d('0x2f')],qs[_0xd76d('0x37')](_0x54659e['query'][_0xd76d('0x37')]));_0x139b7d[_0xd76d('0x35')]=_0x139b7d[_0xd76d('0x35')][_0xd76d('0x38')]?_0x139b7d[_0xd76d('0x35')]:_0x3c7cc2[_0xd76d('0x2f')];if(_0x54659e[_0xd76d('0x33')]['includeAll']){_0x139b7d[_0xd76d('0x39')]=[{'all':!![]}];}_0x139b7d=_[_0xd76d('0x3a')]({},_0x139b7d,_0x54659e['options']);return db['DashboardItem'][_0xd76d('0x3b')](_0x139b7d)['then'](handleEntityNotFound(_0x318bfe,null))[_0xd76d('0x28')](respondWithResult(_0x318bfe,null))[_0xd76d('0x3c')](handleError(_0x318bfe,null));};exports[_0xd76d('0x29')]=function(_0x5b8f77,_0x523108){return db['DashboardItem'][_0xd76d('0x3b')]({'where':{'id':_0x5b8f77['params']['id']}})[_0xd76d('0x28')](handleEntityNotFound(_0x523108,null))[_0xd76d('0x28')](removeEntity(_0x523108,null))[_0xd76d('0x3c')](handleError(_0x523108,null));};function widgetAttributes(_0x103323){try{switch(_0x103323[_0xd76d('0x3d')]){case _0xd76d('0x3e'):return[{'name':'attrUrl','value':_0x103323['attrUrl']||(_0x103323[_0xd76d('0x3f')]&&_0x103323['attrs'][0x0]?_0x103323['attrs'][0x0][_0xd76d('0x40')]:undefined)||_0xd76d('0x41')}];case _0xd76d('0x42'):return[{'name':'attrPath','value':_0x103323[_0xd76d('0x43')]||(_0x103323['attrs']&&_0x103323[_0xd76d('0x3f')][0x0]?_0x103323[_0xd76d('0x3f')][0x0]['value']:undefined)||''}];case _0xd76d('0x44'):return[{'name':_0xd76d('0x45'),'value':_0x103323['attrHourFormat']||(_0x103323[_0xd76d('0x3f')]&&_0x103323[_0xd76d('0x3f')][0x0]?_0x103323[_0xd76d('0x3f')][0x0][_0xd76d('0x40')]:undefined)||'HH:mm:ss'},{'name':_0xd76d('0x46'),'value':_0x103323[_0xd76d('0x46')]||(_0x103323[_0xd76d('0x3f')]&&_0x103323[_0xd76d('0x3f')][0x1]?_0x103323[_0xd76d('0x3f')][0x1][_0xd76d('0x40')]:undefined)||_0xd76d('0x47')},{'name':'attrFontSize','value':_0x103323[_0xd76d('0x48')]||(_0x103323[_0xd76d('0x3f')]&&_0x103323['attrs'][0x2]?_0x103323[_0xd76d('0x3f')][0x2][_0xd76d('0x40')]:undefined)||0xc}];case'counter':return[{'name':'attrMetric','value':_0x103323[_0xd76d('0x49')]||(_0x103323[_0xd76d('0x3f')]&&_0x103323[_0xd76d('0x3f')][0x0]?_0x103323['attrs'][0x0]['value']:undefined)||'total'},{'name':_0xd76d('0x4a'),'value':_0x103323[_0xd76d('0x4a')]||(_0x103323[_0xd76d('0x3f')]&&_0x103323[_0xd76d('0x3f')][0x1]?_0x103323[_0xd76d('0x3f')][0x1][_0xd76d('0x40')]:undefined)||[]},{'name':_0xd76d('0x48'),'value':_0x103323[_0xd76d('0x48')]||(_0x103323[_0xd76d('0x3f')]&&_0x103323[_0xd76d('0x3f')][0x2]?_0x103323[_0xd76d('0x3f')][0x2][_0xd76d('0x40')]:undefined)||0x14}];case _0xd76d('0x4b'):case'pie-chart':return[{'name':_0xd76d('0x4c'),'value':_0x103323['attrSerie1']||(_0x103323[_0xd76d('0x3f')]&&_0x103323[_0xd76d('0x3f')][0x0]?_0x103323[_0xd76d('0x3f')][0x0][_0xd76d('0x40')]:undefined)||_0xd76d('0x4d')},{'name':_0xd76d('0x4e'),'value':_0x103323[_0xd76d('0x4e')]||(_0x103323[_0xd76d('0x3f')]&&_0x103323[_0xd76d('0x3f')][0x1]?_0x103323[_0xd76d('0x3f')][0x1][_0xd76d('0x40')]:undefined)||null},{'name':_0xd76d('0x4f'),'value':_0x103323[_0xd76d('0x4f')]||(_0x103323['attrs']&&_0x103323[_0xd76d('0x3f')][0x2]?_0x103323[_0xd76d('0x3f')][0x2][_0xd76d('0x40')]:undefined)||null},{'name':_0xd76d('0x4a'),'value':_0x103323[_0xd76d('0x4a')]||(_0x103323['attrs']&&_0x103323[_0xd76d('0x3f')][0x3]?_0x103323[_0xd76d('0x3f')][0x3][_0xd76d('0x40')]:undefined)||[]}];case _0xd76d('0x50'):return[{'name':_0xd76d('0x51'),'type':_0x103323['reportType']||(_0x103323[_0xd76d('0x3f')]&&_0x103323['attrs'][0x0]?_0x103323['attrs'][0x0][_0xd76d('0x3d')]:undefined)||null,'value':_0x103323['attrReport']||(_0x103323['attrs']&&_0x103323[_0xd76d('0x3f')][0x0]?_0x103323[_0xd76d('0x3f')][0x0][_0xd76d('0x40')]:undefined)||null},{'name':'attrRefresh','value':_0x103323['attrRefresh']||(_0x103323[_0xd76d('0x3f')]&&_0x103323[_0xd76d('0x3f')][0x1]?_0x103323['attrs'][0x1][_0xd76d('0x40')]:undefined)||0x0}];default:return[];}}catch(_0x329454){logger[_0xd76d('0x2a')]('widgetAttributes:\x20%s',JSON[_0xd76d('0x52')](_0x329454));return[];}}exports[_0xd76d('0x53')]=function(_0x33393a,_0x3faabf){if(_0x33393a['body']){_0x33393a[_0xd76d('0x54')]['attrs']=widgetAttributes(_0x33393a['body']);}return db['DashboardItem'][_0xd76d('0x53')](_0x33393a[_0xd76d('0x54')],{})[_0xd76d('0x28')](respondWithResult(_0x3faabf,0xc9))[_0xd76d('0x3c')](handleError(_0x3faabf,null));};exports[_0xd76d('0x27')]=function(_0x32aaf9,_0x5c0919){if(_0x32aaf9[_0xd76d('0x54')]['id']){delete _0x32aaf9[_0xd76d('0x54')]['id'];}_0x32aaf9[_0xd76d('0x54')][_0xd76d('0x3f')]=widgetAttributes(_0x32aaf9[_0xd76d('0x54')]);return db[_0xd76d('0x31')][_0xd76d('0x3b')]({'where':{'id':_0x32aaf9['params']['id']}})['then'](handleEntityNotFound(_0x5c0919,null))[_0xd76d('0x28')](saveUpdates(_0x32aaf9[_0xd76d('0x54')],null))[_0xd76d('0x28')](respondWithResult(_0x5c0919,null))[_0xd76d('0x3c')](handleError(_0x5c0919,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2c59=['hasOwnProperty','exports','DashboardItem','save'];(function(_0x5d1445,_0xed27f2){var _0xe6c508=function(_0xe58ef){while(--_0xe58ef){_0x5d1445['push'](_0x5d1445['shift']());}};_0xe6c508(++_0xed27f2);}(_0x2c59,0xa6));var _0x92c5=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x2c59[_0x3dd15e];return _0x231fd0;};'use strict';var EventEmitter=require('events');var DashboardItem=require('../../mysqldb')['db'][_0x92c5('0x0')];var DashboardItemEvents=new EventEmitter();DashboardItemEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x92c5('0x1'),'afterUpdate':'update','afterDestroy':'remove'};function emitEvent(_0x3176ad){return function(_0x4861f8,_0x1a69b5,_0x1f166c){DashboardItemEvents['emit'](_0x3176ad+':'+_0x4861f8['id'],_0x4861f8);DashboardItemEvents['emit'](_0x3176ad,_0x4861f8);_0x1f166c(null);};}for(var e in events){if(events[_0x92c5('0x2')](e)){var event=events[e];DashboardItem['hook'](e,emitEvent(event));}}module[_0x92c5('0x3')]=DashboardItemEvents;
\ No newline at end of file
+var _0x5610=['emit','hasOwnProperty','hook','exports','events','../../mysqldb','DashboardItem','setMaxListeners','save'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x5610,0x100));var _0x0561=function(_0x2f2aa9,_0x35c7a2){_0x2f2aa9=_0x2f2aa9-0x0;var _0x510c2a=_0x5610[_0x2f2aa9];return _0x510c2a;};'use strict';var EventEmitter=require(_0x0561('0x0'));var DashboardItem=require(_0x0561('0x1'))['db'][_0x0561('0x2')];var DashboardItemEvents=new EventEmitter();DashboardItemEvents[_0x0561('0x3')](0x0);var events={'afterCreate':_0x0561('0x4'),'afterUpdate':'update','afterDestroy':'remove'};function emitEvent(_0x217895){return function(_0x125194,_0x546455,_0x5d29e9){DashboardItemEvents[_0x0561('0x5')](_0x217895+':'+_0x125194['id'],_0x125194);DashboardItemEvents[_0x0561('0x5')](_0x217895,_0x125194);_0x5d29e9(null);};}for(var e in events){if(events[_0x0561('0x6')](e)){var event=events[e];DashboardItem[_0x0561('0x7')](e,emitEvent(event));}}module[_0x0561('0x8')]=DashboardItemEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7345=['rimraf','./dashboardItem.attributes','define','DashboardItem','dashboard_items','lodash','util','../../config/logger','moment','path'];(function(_0x5a7417,_0x2a5085){var _0x292654=function(_0x2b368a){while(--_0x2b368a){_0x5a7417['push'](_0x5a7417['shift']());}};_0x292654(++_0x2a5085);}(_0x7345,0x163));var _0x5734=function(_0x4b15f4,_0x43c09e){_0x4b15f4=_0x4b15f4-0x0;var _0x58c66f=_0x7345[_0x4b15f4];return _0x58c66f;};'use strict';var _=require(_0x5734('0x0'));var util=require(_0x5734('0x1'));var logger=require(_0x5734('0x2'))('api');var moment=require(_0x5734('0x3'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x5734('0x4'));var rimraf=require(_0x5734('0x5'));var config=require('../../config/environment');var attributes=require(_0x5734('0x6'));module['exports']=function(_0x4253a4,_0x152395){return _0x4253a4[_0x5734('0x7')](_0x5734('0x8'),attributes,{'tableName':_0x5734('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x7d1c=['util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./dashboardItem.attributes','exports','define','DashboardItem','lodash'];(function(_0x432682,_0x253044){var _0x463d05=function(_0xa73403){while(--_0xa73403){_0x432682['push'](_0x432682['shift']());}};_0x463d05(++_0x253044);}(_0x7d1c,0x141));var _0xc7d1=function(_0x30abff,_0x5f2c5f){_0x30abff=_0x30abff-0x0;var _0x4c571e=_0x7d1c[_0x30abff];return _0x4c571e;};'use strict';var _=require(_0xc7d1('0x0'));var util=require(_0xc7d1('0x1'));var logger=require(_0xc7d1('0x2'))(_0xc7d1('0x3'));var moment=require(_0xc7d1('0x4'));var BPromise=require(_0xc7d1('0x5'));var rp=require(_0xc7d1('0x6'));var fs=require('fs');var path=require(_0xc7d1('0x7'));var rimraf=require(_0xc7d1('0x8'));var config=require(_0xc7d1('0x9'));var attributes=require(_0xc7d1('0xa'));module[_0xc7d1('0xb')]=function(_0x50bc71,_0x5c40a9){return _0x50bc71[_0xc7d1('0xc')](_0xc7d1('0xd'),attributes,{'tableName':'dashboard_items','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfb9e=['util','moment','bluebird','ioredis','../../mysqldb','../../config/logger','client','http','redis','defaults','localhost','register','request','DashboardItem,\x20%s,\x20%s','DashboardItem,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','info','result','catch','lodash'];(function(_0x58e97c,_0x12fcb1){var _0x54a130=function(_0xbf2c06){while(--_0xbf2c06){_0x58e97c['push'](_0x58e97c['shift']());}};_0x54a130(++_0x12fcb1);}(_0xfb9e,0xd7));var _0xefb9=function(_0x3a8789,_0x5bb70b){_0x3a8789=_0x3a8789-0x0;var _0x19e422=_0xfb9e[_0x3a8789];return _0x19e422;};'use strict';var _=require(_0xefb9('0x0'));var util=require(_0xefb9('0x1'));var moment=require(_0xefb9('0x2'));var BPromise=require(_0xefb9('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xefb9('0x4'));var db=require(_0xefb9('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0xefb9('0x6'))('rpc');var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0xefb9('0x7')][_0xefb9('0x8')]({'port':0x232a});config[_0xefb9('0x9')]=_[_0xefb9('0xa')](config[_0xefb9('0x9')],{'host':_0xefb9('0xb'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xefb9('0x9')]));require('./dashboardItem.socket')[_0xefb9('0xc')](socket);function respondWithRpcPromise(_0x1da967,_0xb7bad9,_0x507539){return new BPromise(function(_0x1bc0ae,_0x49a2a7){return client[_0xefb9('0xd')](_0x1da967,_0x507539)['then'](function(_0x1039b1){logger['info'](_0xefb9('0xe'),_0xb7bad9,'request\x20sent');logger['debug'](_0xefb9('0xf'),_0xb7bad9,_0xefb9('0x10'),JSON[_0xefb9('0x11')](_0x1039b1));if(_0x1039b1[_0xefb9('0x12')]){if(_0x1039b1[_0xefb9('0x12')][_0xefb9('0x13')]===0x1f4){logger[_0xefb9('0x12')](_0xefb9('0xe'),_0xb7bad9,_0x1039b1['error'][_0xefb9('0x14')]);return _0x49a2a7(_0x1039b1[_0xefb9('0x12')][_0xefb9('0x14')]);}logger[_0xefb9('0x12')](_0xefb9('0xe'),_0xb7bad9,_0x1039b1['error'][_0xefb9('0x14')]);return _0x1bc0ae(_0x1039b1['error'][_0xefb9('0x14')]);}else{logger[_0xefb9('0x15')](_0xefb9('0xe'),_0xb7bad9,_0xefb9('0x10'));_0x1bc0ae(_0x1039b1[_0xefb9('0x16')]['message']);}})[_0xefb9('0x17')](function(_0x57ef40){logger['error'](_0xefb9('0xe'),_0xb7bad9,_0x57ef40);_0x49a2a7(_0x57ef40);});});}
\ No newline at end of file
+var _0xd699=['http','defaults','redis','localhost','./dashboardItem.socket','then','info','request\x20sent','debug','DashboardItem,\x20%s,\x20%s,\x20%s','stringify','code','error','message','DashboardItem,\x20%s,\x20%s','catch','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client'];(function(_0x4dc7b9,_0x319d5a){var _0x3ab114=function(_0x51a9df){while(--_0x51a9df){_0x4dc7b9['push'](_0x4dc7b9['shift']());}};_0x3ab114(++_0x319d5a);}(_0xd699,0x1c0));var _0x9d69=function(_0x4c445a,_0x4ee80f){_0x4c445a=_0x4c445a-0x0;var _0x2f611c=_0xd699[_0x4c445a];return _0x2f611c;};'use strict';var _=require(_0x9d69('0x0'));var util=require(_0x9d69('0x1'));var moment=require('moment');var BPromise=require(_0x9d69('0x2'));var rs=require(_0x9d69('0x3'));var fs=require('fs');var Redis=require(_0x9d69('0x4'));var db=require(_0x9d69('0x5'))['db'];var utils=require(_0x9d69('0x6'));var logger=require('../../config/logger')(_0x9d69('0x7'));var config=require(_0x9d69('0x8'));var jayson=require(_0x9d69('0x9'));var client=jayson[_0x9d69('0xa')][_0x9d69('0xb')]({'port':0x232a});config['redis']=_[_0x9d69('0xc')](config[_0x9d69('0xd')],{'host':_0x9d69('0xe'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x9d69('0xd')]));require(_0x9d69('0xf'))['register'](socket);function respondWithRpcPromise(_0x15d4d9,_0x1a122f,_0x4226da){return new BPromise(function(_0x1034d2,_0x198ce2){return client['request'](_0x15d4d9,_0x4226da)[_0x9d69('0x10')](function(_0x495abb){logger[_0x9d69('0x11')]('DashboardItem,\x20%s,\x20%s',_0x1a122f,_0x9d69('0x12'));logger[_0x9d69('0x13')](_0x9d69('0x14'),_0x1a122f,'request\x20sent',JSON[_0x9d69('0x15')](_0x495abb));if(_0x495abb['error']){if(_0x495abb['error'][_0x9d69('0x16')]===0x1f4){logger['error']('DashboardItem,\x20%s,\x20%s',_0x1a122f,_0x495abb[_0x9d69('0x17')][_0x9d69('0x18')]);return _0x198ce2(_0x495abb[_0x9d69('0x17')][_0x9d69('0x18')]);}logger[_0x9d69('0x17')]('DashboardItem,\x20%s,\x20%s',_0x1a122f,_0x495abb['error'][_0x9d69('0x18')]);return _0x1034d2(_0x495abb[_0x9d69('0x17')]['message']);}else{logger[_0x9d69('0x11')](_0x9d69('0x19'),_0x1a122f,_0x9d69('0x12'));_0x1034d2(_0x495abb['result'][_0x9d69('0x18')]);}})[_0x9d69('0x1a')](function(_0x8f4666){logger[_0x9d69('0x17')](_0x9d69('0x19'),_0x1a122f,_0x8f4666);_0x198ce2(_0x8f4666);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2d41=['update','emit','register','length','dashboardItem:','./dashboardItem.events','save','remove'];(function(_0x17824b,_0x252cea){var _0x1e805c=function(_0x53d23d){while(--_0x53d23d){_0x17824b['push'](_0x17824b['shift']());}};_0x1e805c(++_0x252cea);}(_0x2d41,0x1cd));var _0x12d4=function(_0x5aa609,_0x1ae65b){_0x5aa609=_0x5aa609-0x0;var _0x7adb15=_0x2d41[_0x5aa609];return _0x7adb15;};'use strict';var DashboardItemEvents=require(_0x12d4('0x0'));var events=[_0x12d4('0x1'),_0x12d4('0x2'),_0x12d4('0x3')];function createListener(_0x2f4b9f,_0x163887){return function(_0x33f676){_0x163887[_0x12d4('0x4')](_0x2f4b9f,_0x33f676);};}function removeListener(_0x57d373,_0x5d4a97){return function(){DashboardItemEvents['removeListener'](_0x57d373,_0x5d4a97);};}exports[_0x12d4('0x5')]=function(_0x1d903d){for(var _0xd7293f=0x0,_0x541062=events[_0x12d4('0x6')];_0xd7293f<_0x541062;_0xd7293f++){var _0x48e671=events[_0xd7293f];var _0x1189cb=createListener(_0x12d4('0x7')+_0x48e671,_0x1d903d);DashboardItemEvents['on'](_0x48e671,_0x1189cb);}};
\ No newline at end of file
+var _0x28ee=['removeListener','length','./dashboardItem.events','save','update','emit'];(function(_0x38833c,_0x55c545){var _0x20bf73=function(_0x57d3bd){while(--_0x57d3bd){_0x38833c['push'](_0x38833c['shift']());}};_0x20bf73(++_0x55c545);}(_0x28ee,0x116));var _0xe28e=function(_0x987fe6,_0x24ac32){_0x987fe6=_0x987fe6-0x0;var _0x4fb549=_0x28ee[_0x987fe6];return _0x4fb549;};'use strict';var DashboardItemEvents=require(_0xe28e('0x0'));var events=[_0xe28e('0x1'),'remove',_0xe28e('0x2')];function createListener(_0x5d9801,_0x9b5563){return function(_0x67f596){_0x9b5563[_0xe28e('0x3')](_0x5d9801,_0x67f596);};}function removeListener(_0x582815,_0x4165fd){return function(){DashboardItemEvents[_0xe28e('0x4')](_0x582815,_0x4165fd);};}exports['register']=function(_0x4fe574){for(var _0x104d23=0x0,_0x364b08=events[_0xe28e('0x5')];_0x104d23<_0x364b08;_0x104d23++){var _0x2c90e6=events[_0x104d23];var _0x284ee6=createListener('dashboardItem:'+_0x2c90e6,_0x4fe574);DashboardItemEvents['on'](_0x2c90e6,_0x284ee6);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xde93=['create','put','update','delete','destroy','exports','util','path','Router','fs-extra','../../components/interaction/service','../../config/environment','./dashboardItem.controller','get','/:id','isAuthenticated','show','post'];(function(_0x443ccb,_0x4fe2d6){var _0x13307c=function(_0x4c91a5){while(--_0x4c91a5){_0x443ccb['push'](_0x443ccb['shift']());}};_0x13307c(++_0x4fe2d6);}(_0xde93,0x1da));var _0x3de9=function(_0x39010b,_0x17e844){_0x39010b=_0x39010b-0x0;var _0x3d8797=_0xde93[_0x39010b];return _0x3d8797;};'use strict';var multer=require('multer');var util=require(_0x3de9('0x0'));var path=require(_0x3de9('0x1'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x3de9('0x2')]();var fs_extra=require(_0x3de9('0x3'));var auth=require('../../components/auth/service');var interaction=require(_0x3de9('0x4'));var config=require(_0x3de9('0x5'));var controller=require(_0x3de9('0x6'));router[_0x3de9('0x7')](_0x3de9('0x8'),auth[_0x3de9('0x9')](),controller[_0x3de9('0xa')]);router[_0x3de9('0xb')]('/',auth['isAuthenticated'](),controller[_0x3de9('0xc')]);router[_0x3de9('0xd')](_0x3de9('0x8'),auth[_0x3de9('0x9')](),controller[_0x3de9('0xe')]);router[_0x3de9('0xf')]('/:id',auth['isAuthenticated'](),controller[_0x3de9('0x10')]);module[_0x3de9('0x11')]=router;
\ No newline at end of file
+var _0x20a3=['show','post','create','put','update','delete','destroy','multer','util','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','/:id','isAuthenticated'];(function(_0x58495e,_0x578d3d){var _0x5690fb=function(_0x20b95e){while(--_0x20b95e){_0x58495e['push'](_0x58495e['shift']());}};_0x5690fb(++_0x578d3d);}(_0x20a3,0x115));var _0x320a=function(_0x255621,_0x57607c){_0x255621=_0x255621-0x0;var _0x13c437=_0x20a3[_0x255621];return _0x13c437;};'use strict';var multer=require(_0x320a('0x0'));var util=require(_0x320a('0x1'));var path=require('path');var timeout=require(_0x320a('0x2'));var express=require('express');var router=express[_0x320a('0x3')]();var fs_extra=require(_0x320a('0x4'));var auth=require(_0x320a('0x5'));var interaction=require(_0x320a('0x6'));var config=require(_0x320a('0x7'));var controller=require('./dashboardItem.controller');router[_0x320a('0x8')](_0x320a('0x9'),auth[_0x320a('0xa')](),controller[_0x320a('0xb')]);router[_0x320a('0xc')]('/',auth['isAuthenticated'](),controller[_0x320a('0xd')]);router[_0x320a('0xe')]('/:id',auth[_0x320a('0xa')](),controller[_0x320a('0xf')]);router[_0x320a('0x10')](_0x320a('0x9'),auth['isAuthenticated'](),controller[_0x320a('0x11')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x93ee=['ENUM','first','second','sequelize','exports','STRING'];(function(_0x4f32de,_0x5bd4a){var _0x149821=function(_0x205885){while(--_0x205885){_0x4f32de['push'](_0x4f32de['shift']());}};_0x149821(++_0x5bd4a);}(_0x93ee,0x189));var _0xe93e=function(_0x43de22,_0x1eced6){_0x43de22=_0x43de22-0x0;var _0x4b15ee=_0x93ee[_0x43de22];return _0x4b15ee;};'use strict';var Sequelize=require(_0xe93e('0x0'));module[_0xe93e('0x1')]={'name':{'type':Sequelize[_0xe93e('0x2')],'allowNull':![]},'level':{'type':Sequelize[_0xe93e('0x3')](_0xe93e('0x4'),_0xe93e('0x5'),'third'),'allowNull':![],'defaultValue':_0xe93e('0x4')},'description':{'type':Sequelize[_0xe93e('0x2')]}};
\ No newline at end of file
+var _0x54ab=['STRING','ENUM','first','second','sequelize','exports'];(function(_0x6ba13e,_0x5449ea){var _0x4f244a=function(_0x43db38){while(--_0x43db38){_0x6ba13e['push'](_0x6ba13e['shift']());}};_0x4f244a(++_0x5449ea);}(_0x54ab,0xb8));var _0xb54a=function(_0x1d3a31,_0xc57aec){_0x1d3a31=_0x1d3a31-0x0;var _0x8a808e=_0x54ab[_0x1d3a31];return _0x8a808e;};'use strict';var Sequelize=require(_0xb54a('0x0'));module[_0xb54a('0x1')]={'name':{'type':Sequelize[_0xb54a('0x2')],'allowNull':![]},'level':{'type':Sequelize[_0xb54a('0x3')](_0xb54a('0x4'),_0xb54a('0x5'),'third'),'allowNull':![],'defaultValue':_0xb54a('0x4')},'description':{'type':Sequelize[_0xb54a('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3210=['filter','merge','options','Disposition','includeAll','findAll','catch','params','length','include','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','zip-dir','fast-json-patch','moment','bluebird','mustache','path','to-csv','ejs','fs-extra','lodash','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','count','limit','Content-Range','reject','save','update','then','destroy','get','Dispositions','error','stack','name','send','index','map','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','order','sort','where','pick'];(function(_0x3717f2,_0x52e8d3){var _0x4efb04=function(_0x3577c9){while(--_0x3577c9){_0x3717f2['push'](_0x3717f2['shift']());}};_0x4efb04(++_0x52e8d3);}(_0x3210,0x19e));var _0x0321=function(_0x57c092,_0x42cbb7){_0x57c092=_0x57c092-0x0;var _0x27aee4=_0x3210[_0x57c092];return _0x27aee4;};'use strict';var emlformat=require(_0x0321('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x0321('0x1'));var jsonpatch=require(_0x0321('0x2'));var rp=require('request-promise');var moment=require(_0x0321('0x3'));var BPromise=require(_0x0321('0x4'));var Mustache=require(_0x0321('0x5'));var util=require('util');var path=require(_0x0321('0x6'));var sox=require('sox');var csv=require(_0x0321('0x7'));var ejs=require(_0x0321('0x8'));var fs=require('fs');var fs_extra=require(_0x0321('0x9'));var _=require(_0x0321('0xa'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x0321('0xb'));var deskjs=require('desk.js');var toCsv=require(_0x0321('0x7'));var querystring=require(_0x0321('0xc'));var Papa=require(_0x0321('0xd'));var Redis=require(_0x0321('0xe'));var authService=require(_0x0321('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0x0321('0x10'));var hardwareService=require(_0x0321('0x11'));var logger=require(_0x0321('0x12'))(_0x0321('0x13'));var utils=require(_0x0321('0x14'));var config=require(_0x0321('0x15'));var licenseUtil=require(_0x0321('0x16'));var db=require(_0x0321('0x17'))['db'];function respondWithStatusCode(_0x5e585f,_0x2ca86a){_0x2ca86a=_0x2ca86a||0xcc;return function(_0x34af42){if(_0x34af42){return _0x5e585f[_0x0321('0x18')](_0x2ca86a);}return _0x5e585f[_0x0321('0x19')](_0x2ca86a)[_0x0321('0x1a')]();};}function respondWithResult(_0x5838c6,_0x457242){_0x457242=_0x457242||0xc8;return function(_0x3da952){if(_0x3da952){return _0x5838c6[_0x0321('0x19')](_0x457242)['json'](_0x3da952);}};}function respondWithFilteredResult(_0xa0a828,_0x4bf1da){return function(_0x141872){if(_0x141872){var _0x5be471=typeof _0x4bf1da[_0x0321('0x1b')]===_0x0321('0x1c')&&typeof _0x4bf1da['limit']===_0x0321('0x1c');var _0x24cf44=_0x141872[_0x0321('0x1d')];var _0x59bf89=_0x5be471?0x0:_0x4bf1da[_0x0321('0x1b')];var _0x446572=_0x5be471?_0x141872['count']:_0x4bf1da[_0x0321('0x1b')]+_0x4bf1da[_0x0321('0x1e')];var _0x13bd3f;if(_0x446572>=_0x24cf44){_0x446572=_0x24cf44;_0x13bd3f=0xc8;}else{_0x13bd3f=0xce;}_0xa0a828[_0x0321('0x19')](_0x13bd3f);return _0xa0a828['set'](_0x0321('0x1f'),_0x59bf89+'-'+_0x446572+'/'+_0x24cf44)['json'](_0x141872);}return null;};}function patchUpdates(_0x480a12){return function(_0x5dc690){try{jsonpatch['apply'](_0x5dc690,_0x480a12,!![]);}catch(_0x44053d){return BPromise[_0x0321('0x20')](_0x44053d);}return _0x5dc690[_0x0321('0x21')]();};}function saveUpdates(_0x3d4bc0,_0x5eadef){return function(_0x797eed){if(_0x797eed){return _0x797eed[_0x0321('0x22')](_0x3d4bc0)[_0x0321('0x23')](function(_0x30042d){return _0x30042d;});}return null;};}function removeEntity(_0x116c08,_0xde7eb){return function(_0x4e3efd){if(_0x4e3efd){return _0x4e3efd[_0x0321('0x24')]()[_0x0321('0x23')](function(){var _0x12e4d6=_0x4e3efd[_0x0321('0x25')]({'plain':!![]});var _0x484553=_0x0321('0x26');return db['UserProfileResource'][_0x0321('0x24')]({'where':{'type':_0x484553,'resourceId':_0x12e4d6['id']}})[_0x0321('0x23')](function(){return _0x4e3efd;});})['then'](function(){_0x116c08['status'](0xcc)[_0x0321('0x1a')]();});}};}function handleEntityNotFound(_0x4836cf,_0x217261){return function(_0x18864b){if(!_0x18864b){_0x4836cf['sendStatus'](0x194);}return _0x18864b;};}function handleError(_0x4f00ca,_0x670e71){_0x670e71=_0x670e71||0x1f4;return function(_0xfdb955){logger[_0x0321('0x27')](_0xfdb955[_0x0321('0x28')]);if(_0xfdb955[_0x0321('0x29')]){delete _0xfdb955[_0x0321('0x29')];}_0x4f00ca[_0x0321('0x19')](_0x670e71)[_0x0321('0x2a')](_0xfdb955);};}exports[_0x0321('0x2b')]=function(_0x290412,_0x575529){var _0x54bbf2={},_0x4fe348={},_0x4c3e2a={'count':0x0,'rows':[]};var _0x20128=_[_0x0321('0x2c')](db['Disposition'][_0x0321('0x2d')],function(_0x4c231c){return{'name':_0x4c231c[_0x0321('0x2e')],'type':_0x4c231c[_0x0321('0x2f')]['key']};});_0x4fe348[_0x0321('0x30')]=_[_0x0321('0x2c')](_0x20128,'name');_0x4fe348[_0x0321('0x31')]=_[_0x0321('0x32')](_0x290412[_0x0321('0x31')]);_0x4fe348[_0x0321('0x33')]=_[_0x0321('0x34')](_0x4fe348['model'],_0x4fe348[_0x0321('0x31')]);_0x54bbf2[_0x0321('0x35')]=_[_0x0321('0x34')](_0x4fe348[_0x0321('0x30')],qs[_0x0321('0x36')](_0x290412[_0x0321('0x31')]['fields']));_0x54bbf2[_0x0321('0x35')]=_0x54bbf2[_0x0321('0x35')]['length']?_0x54bbf2[_0x0321('0x35')]:_0x4fe348[_0x0321('0x30')];if(!_0x290412[_0x0321('0x31')][_0x0321('0x37')]('nolimit')){_0x54bbf2[_0x0321('0x1e')]=qs[_0x0321('0x1e')](_0x290412[_0x0321('0x31')]['limit']);_0x54bbf2[_0x0321('0x1b')]=qs['offset'](_0x290412[_0x0321('0x31')][_0x0321('0x1b')]);}_0x54bbf2[_0x0321('0x38')]=qs[_0x0321('0x39')](_0x290412[_0x0321('0x31')][_0x0321('0x39')]);_0x54bbf2[_0x0321('0x3a')]=qs[_0x0321('0x33')](_[_0x0321('0x3b')](_0x290412[_0x0321('0x31')],_0x4fe348['filters']),_0x20128);if(_0x290412[_0x0321('0x31')][_0x0321('0x3c')]){_0x54bbf2[_0x0321('0x3a')]=_[_0x0321('0x3d')](_0x54bbf2[_0x0321('0x3a')],{'$or':_[_0x0321('0x2c')](_0x20128,function(_0x2d0bfc){if(_0x2d0bfc[_0x0321('0x2f')]!=='VIRTUAL'){var _0x4983f0={};_0x4983f0[_0x2d0bfc[_0x0321('0x29')]]={'$like':'%'+_0x290412['query'][_0x0321('0x3c')]+'%'};return _0x4983f0;}})});}_0x54bbf2=_['merge']({},_0x54bbf2,_0x290412[_0x0321('0x3e')]);var _0x7755f7={'where':_0x54bbf2[_0x0321('0x3a')]};return db[_0x0321('0x3f')][_0x0321('0x1d')](_0x7755f7)['then'](function(_0x5e8412){_0x4c3e2a[_0x0321('0x1d')]=_0x5e8412;if(_0x290412[_0x0321('0x31')][_0x0321('0x40')]){_0x54bbf2['include']=[{'all':!![]}];}return db[_0x0321('0x3f')][_0x0321('0x41')](_0x54bbf2);})[_0x0321('0x23')](function(_0x27409d){_0x4c3e2a['rows']=_0x27409d;return _0x4c3e2a;})[_0x0321('0x23')](respondWithFilteredResult(_0x575529,_0x54bbf2))[_0x0321('0x42')](handleError(_0x575529,null));};exports['show']=function(_0x1740e2,_0x57dd89){var _0x14bfce={'raw':!![],'where':{'id':_0x1740e2[_0x0321('0x43')]['id']}},_0x39b2d8={};_0x39b2d8[_0x0321('0x30')]=_[_0x0321('0x32')](db[_0x0321('0x3f')]['rawAttributes']);_0x39b2d8['query']=_['keys'](_0x1740e2[_0x0321('0x31')]);_0x39b2d8['filters']=_[_0x0321('0x34')](_0x39b2d8['model'],_0x39b2d8[_0x0321('0x31')]);_0x14bfce[_0x0321('0x35')]=_[_0x0321('0x34')](_0x39b2d8[_0x0321('0x30')],qs['fields'](_0x1740e2[_0x0321('0x31')][_0x0321('0x36')]));_0x14bfce[_0x0321('0x35')]=_0x14bfce['attributes'][_0x0321('0x44')]?_0x14bfce[_0x0321('0x35')]:_0x39b2d8[_0x0321('0x30')];if(_0x1740e2[_0x0321('0x31')][_0x0321('0x40')]){_0x14bfce[_0x0321('0x45')]=[{'all':!![]}];}_0x14bfce=_[_0x0321('0x3d')]({},_0x14bfce,_0x1740e2[_0x0321('0x3e')]);return db['Disposition'][_0x0321('0x46')](_0x14bfce)[_0x0321('0x23')](handleEntityNotFound(_0x57dd89,null))['then'](respondWithResult(_0x57dd89,null))['catch'](handleError(_0x57dd89,null));};exports[_0x0321('0x47')]=function(_0x43d8b4,_0x10ee04){return db['Disposition'][_0x0321('0x47')](_0x43d8b4[_0x0321('0x48')],{})[_0x0321('0x23')](function(_0x48d89e){var _0x575164=_0x43d8b4[_0x0321('0x49')][_0x0321('0x25')]({'plain':!![]});if(!_0x575164)throw new Error(_0x0321('0x4a'));if(_0x575164['role']===_0x0321('0x49')){var _0x44abcb=_0x48d89e[_0x0321('0x25')]({'plain':!![]});var _0x34cb1b=_0x0321('0x26');return db['UserProfileSection'][_0x0321('0x46')]({'where':{'name':_0x34cb1b,'userProfileId':_0x575164[_0x0321('0x4b')]},'raw':!![]})[_0x0321('0x23')](function(_0xcc029a){if(_0xcc029a&&_0xcc029a[_0x0321('0x4c')]===0x0){return db[_0x0321('0x4d')][_0x0321('0x47')]({'name':_0x44abcb[_0x0321('0x29')],'resourceId':_0x44abcb['id'],'type':_0xcc029a['name'],'sectionId':_0xcc029a['id']},{})['then'](function(){return _0x48d89e;});}else{return _0x48d89e;}})[_0x0321('0x42')](function(_0x2e55c1){logger[_0x0321('0x27')](_0x0321('0x4e'),_0x2e55c1);throw _0x2e55c1;});}return _0x48d89e;})[_0x0321('0x23')](respondWithResult(_0x10ee04,0xc9))[_0x0321('0x42')](handleError(_0x10ee04,null));};exports[_0x0321('0x22')]=function(_0x4713bf,_0x1c5fad){if(_0x4713bf[_0x0321('0x48')]['id']){delete _0x4713bf[_0x0321('0x48')]['id'];}return db[_0x0321('0x3f')][_0x0321('0x46')]({'where':{'id':_0x4713bf[_0x0321('0x43')]['id']}})[_0x0321('0x23')](handleEntityNotFound(_0x1c5fad,null))['then'](saveUpdates(_0x4713bf[_0x0321('0x48')],null))['then'](respondWithResult(_0x1c5fad,null))[_0x0321('0x42')](handleError(_0x1c5fad,null));};exports['destroy']=function(_0xbf83a,_0x43b921){return db['Disposition']['find']({'where':{'id':_0xbf83a[_0x0321('0x43')]['id']}})[_0x0321('0x23')](handleEntityNotFound(_0x43b921,null))[_0x0321('0x23')](removeEntity(_0x43b921,null))[_0x0321('0x42')](handleError(_0x43b921,null));};
\ No newline at end of file
+var _0xa7ac=['length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','options','include','findAll','rows','catch','show','includeAll','find','create','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','get','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','body','params','eml-format','zip-dir','fast-json-patch','moment','bluebird','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','undefined','limit','count','set','apply','reject','save','then','destroy','UserProfileResource','error','stack','name','send','index','Disposition','rawAttributes','fieldName','model','query','keys','filters','intersection','attributes','fields'];(function(_0x26b3d9,_0x1fe3b6){var _0x298bb0=function(_0xc66300){while(--_0xc66300){_0x26b3d9['push'](_0x26b3d9['shift']());}};_0x298bb0(++_0x1fe3b6);}(_0xa7ac,0xc2));var _0xca7a=function(_0x2d6302,_0xa8b7e5){_0x2d6302=_0x2d6302-0x0;var _0x2ee4bf=_0xa7ac[_0x2d6302];return _0x2ee4bf;};'use strict';var emlformat=require(_0xca7a('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xca7a('0x1'));var jsonpatch=require(_0xca7a('0x2'));var rp=require('request-promise');var moment=require(_0xca7a('0x3'));var BPromise=require(_0xca7a('0x4'));var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require(_0xca7a('0x5'));var csv=require(_0xca7a('0x6'));var ejs=require(_0xca7a('0x7'));var fs=require('fs');var fs_extra=require(_0xca7a('0x8'));var _=require(_0xca7a('0x9'));var squel=require(_0xca7a('0xa'));var crypto=require('crypto');var jsforce=require(_0xca7a('0xb'));var deskjs=require(_0xca7a('0xc'));var toCsv=require(_0xca7a('0x6'));var querystring=require(_0xca7a('0xd'));var Papa=require(_0xca7a('0xe'));var Redis=require(_0xca7a('0xf'));var authService=require(_0xca7a('0x10'));var qs=require(_0xca7a('0x11'));var as=require(_0xca7a('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xca7a('0x13'))(_0xca7a('0x14'));var utils=require(_0xca7a('0x15'));var config=require(_0xca7a('0x16'));var licenseUtil=require(_0xca7a('0x17'));var db=require(_0xca7a('0x18'))['db'];function respondWithStatusCode(_0x333d44,_0x4f0d39){_0x4f0d39=_0x4f0d39||0xcc;return function(_0x48f555){if(_0x48f555){return _0x333d44[_0xca7a('0x19')](_0x4f0d39);}return _0x333d44['status'](_0x4f0d39)[_0xca7a('0x1a')]();};}function respondWithResult(_0x346ea7,_0x3a2314){_0x3a2314=_0x3a2314||0xc8;return function(_0x41139d){if(_0x41139d){return _0x346ea7[_0xca7a('0x1b')](_0x3a2314)[_0xca7a('0x1c')](_0x41139d);}};}function respondWithFilteredResult(_0x233300,_0x50c62a){return function(_0x49af29){if(_0x49af29){var _0x10f573=typeof _0x50c62a[_0xca7a('0x1d')]===_0xca7a('0x1e')&&typeof _0x50c62a[_0xca7a('0x1f')]==='undefined';var _0x300ec0=_0x49af29['count'];var _0x1373dc=_0x10f573?0x0:_0x50c62a[_0xca7a('0x1d')];var _0x12d2a4=_0x10f573?_0x49af29[_0xca7a('0x20')]:_0x50c62a[_0xca7a('0x1d')]+_0x50c62a[_0xca7a('0x1f')];var _0x477444;if(_0x12d2a4>=_0x300ec0){_0x12d2a4=_0x300ec0;_0x477444=0xc8;}else{_0x477444=0xce;}_0x233300['status'](_0x477444);return _0x233300[_0xca7a('0x21')]('Content-Range',_0x1373dc+'-'+_0x12d2a4+'/'+_0x300ec0)['json'](_0x49af29);}return null;};}function patchUpdates(_0x598ce7){return function(_0x51a8e4){try{jsonpatch[_0xca7a('0x22')](_0x51a8e4,_0x598ce7,!![]);}catch(_0x5a88cf){return BPromise[_0xca7a('0x23')](_0x5a88cf);}return _0x51a8e4[_0xca7a('0x24')]();};}function saveUpdates(_0x1aea9b,_0x437bbf){return function(_0x2d9e27){if(_0x2d9e27){return _0x2d9e27['update'](_0x1aea9b)[_0xca7a('0x25')](function(_0x362eab){return _0x362eab;});}return null;};}function removeEntity(_0x363ffd,_0x458074){return function(_0x1d4362){if(_0x1d4362){return _0x1d4362[_0xca7a('0x26')]()[_0xca7a('0x25')](function(){var _0x47cfbb=_0x1d4362['get']({'plain':!![]});var _0x2fae56='Dispositions';return db[_0xca7a('0x27')][_0xca7a('0x26')]({'where':{'type':_0x2fae56,'resourceId':_0x47cfbb['id']}})['then'](function(){return _0x1d4362;});})[_0xca7a('0x25')](function(){_0x363ffd[_0xca7a('0x1b')](0xcc)[_0xca7a('0x1a')]();});}};}function handleEntityNotFound(_0x556c2f,_0xf0c581){return function(_0x8758f1){if(!_0x8758f1){_0x556c2f[_0xca7a('0x19')](0x194);}return _0x8758f1;};}function handleError(_0x284fc5,_0x5054df){_0x5054df=_0x5054df||0x1f4;return function(_0x7c0ba6){logger[_0xca7a('0x28')](_0x7c0ba6[_0xca7a('0x29')]);if(_0x7c0ba6[_0xca7a('0x2a')]){delete _0x7c0ba6['name'];}_0x284fc5[_0xca7a('0x1b')](_0x5054df)[_0xca7a('0x2b')](_0x7c0ba6);};}exports[_0xca7a('0x2c')]=function(_0x2e78b5,_0x519396){var _0x483dca={},_0x511ba3={},_0x5917dc={'count':0x0,'rows':[]};var _0x5320e4=_['map'](db[_0xca7a('0x2d')][_0xca7a('0x2e')],function(_0x2963d2){return{'name':_0x2963d2[_0xca7a('0x2f')],'type':_0x2963d2['type']['key']};});_0x511ba3[_0xca7a('0x30')]=_['map'](_0x5320e4,'name');_0x511ba3[_0xca7a('0x31')]=_[_0xca7a('0x32')](_0x2e78b5['query']);_0x511ba3[_0xca7a('0x33')]=_[_0xca7a('0x34')](_0x511ba3['model'],_0x511ba3[_0xca7a('0x31')]);_0x483dca[_0xca7a('0x35')]=_[_0xca7a('0x34')](_0x511ba3[_0xca7a('0x30')],qs[_0xca7a('0x36')](_0x2e78b5[_0xca7a('0x31')][_0xca7a('0x36')]));_0x483dca[_0xca7a('0x35')]=_0x483dca[_0xca7a('0x35')][_0xca7a('0x37')]?_0x483dca[_0xca7a('0x35')]:_0x511ba3[_0xca7a('0x30')];if(!_0x2e78b5[_0xca7a('0x31')][_0xca7a('0x38')](_0xca7a('0x39'))){_0x483dca[_0xca7a('0x1f')]=qs['limit'](_0x2e78b5[_0xca7a('0x31')][_0xca7a('0x1f')]);_0x483dca[_0xca7a('0x1d')]=qs['offset'](_0x2e78b5[_0xca7a('0x31')][_0xca7a('0x1d')]);}_0x483dca[_0xca7a('0x3a')]=qs[_0xca7a('0x3b')](_0x2e78b5[_0xca7a('0x31')][_0xca7a('0x3b')]);_0x483dca[_0xca7a('0x3c')]=qs[_0xca7a('0x33')](_[_0xca7a('0x3d')](_0x2e78b5[_0xca7a('0x31')],_0x511ba3[_0xca7a('0x33')]),_0x5320e4);if(_0x2e78b5[_0xca7a('0x31')][_0xca7a('0x3e')]){_0x483dca[_0xca7a('0x3c')]=_[_0xca7a('0x3f')](_0x483dca[_0xca7a('0x3c')],{'$or':_['map'](_0x5320e4,function(_0x508348){if(_0x508348['type']!=='VIRTUAL'){var _0x2fd378={};_0x2fd378[_0x508348['name']]={'$like':'%'+_0x2e78b5['query'][_0xca7a('0x3e')]+'%'};return _0x2fd378;}})});}_0x483dca=_['merge']({},_0x483dca,_0x2e78b5[_0xca7a('0x40')]);var _0x29eb6a={'where':_0x483dca[_0xca7a('0x3c')]};return db[_0xca7a('0x2d')][_0xca7a('0x20')](_0x29eb6a)[_0xca7a('0x25')](function(_0x3d8336){_0x5917dc['count']=_0x3d8336;if(_0x2e78b5[_0xca7a('0x31')]['includeAll']){_0x483dca[_0xca7a('0x41')]=[{'all':!![]}];}return db['Disposition'][_0xca7a('0x42')](_0x483dca);})[_0xca7a('0x25')](function(_0x261047){_0x5917dc[_0xca7a('0x43')]=_0x261047;return _0x5917dc;})[_0xca7a('0x25')](respondWithFilteredResult(_0x519396,_0x483dca))[_0xca7a('0x44')](handleError(_0x519396,null));};exports[_0xca7a('0x45')]=function(_0x3bbc96,_0x54b684){var _0x23a1c5={'raw':!![],'where':{'id':_0x3bbc96['params']['id']}},_0x307d15={};_0x307d15[_0xca7a('0x30')]=_[_0xca7a('0x32')](db[_0xca7a('0x2d')][_0xca7a('0x2e')]);_0x307d15[_0xca7a('0x31')]=_[_0xca7a('0x32')](_0x3bbc96['query']);_0x307d15[_0xca7a('0x33')]=_[_0xca7a('0x34')](_0x307d15[_0xca7a('0x30')],_0x307d15[_0xca7a('0x31')]);_0x23a1c5['attributes']=_[_0xca7a('0x34')](_0x307d15[_0xca7a('0x30')],qs[_0xca7a('0x36')](_0x3bbc96['query'][_0xca7a('0x36')]));_0x23a1c5[_0xca7a('0x35')]=_0x23a1c5[_0xca7a('0x35')][_0xca7a('0x37')]?_0x23a1c5['attributes']:_0x307d15[_0xca7a('0x30')];if(_0x3bbc96[_0xca7a('0x31')][_0xca7a('0x46')]){_0x23a1c5[_0xca7a('0x41')]=[{'all':!![]}];}_0x23a1c5=_[_0xca7a('0x3f')]({},_0x23a1c5,_0x3bbc96['options']);return db['Disposition'][_0xca7a('0x47')](_0x23a1c5)[_0xca7a('0x25')](handleEntityNotFound(_0x54b684,null))[_0xca7a('0x25')](respondWithResult(_0x54b684,null))['catch'](handleError(_0x54b684,null));};exports[_0xca7a('0x48')]=function(_0x2cb5b5,_0x46708e){return db[_0xca7a('0x2d')][_0xca7a('0x48')](_0x2cb5b5['body'],{})[_0xca7a('0x25')](function(_0xb9a6d3){var _0xdb6ddf=_0x2cb5b5['user']['get']({'plain':!![]});if(!_0xdb6ddf)throw new Error(_0xca7a('0x49'));if(_0xdb6ddf[_0xca7a('0x4a')]===_0xca7a('0x4b')){var _0x2467bb=_0xb9a6d3[_0xca7a('0x4c')]({'plain':!![]});var _0x41d582='Dispositions';return db[_0xca7a('0x4d')]['find']({'where':{'name':_0x41d582,'userProfileId':_0xdb6ddf['userProfileId']},'raw':!![]})[_0xca7a('0x25')](function(_0xd531f){if(_0xd531f&&_0xd531f[_0xca7a('0x4e')]===0x0){return db[_0xca7a('0x27')][_0xca7a('0x48')]({'name':_0x2467bb[_0xca7a('0x2a')],'resourceId':_0x2467bb['id'],'type':_0xd531f['name'],'sectionId':_0xd531f['id']},{})['then'](function(){return _0xb9a6d3;});}else{return _0xb9a6d3;}})[_0xca7a('0x44')](function(_0x108a5a){logger[_0xca7a('0x28')](_0xca7a('0x4f'),_0x108a5a);throw _0x108a5a;});}return _0xb9a6d3;})[_0xca7a('0x25')](respondWithResult(_0x46708e,0xc9))['catch'](handleError(_0x46708e,null));};exports[_0xca7a('0x50')]=function(_0x58d247,_0x471c0e){if(_0x58d247[_0xca7a('0x51')]['id']){delete _0x58d247[_0xca7a('0x51')]['id'];}return db['Disposition'][_0xca7a('0x47')]({'where':{'id':_0x58d247[_0xca7a('0x52')]['id']}})[_0xca7a('0x25')](handleEntityNotFound(_0x471c0e,null))[_0xca7a('0x25')](saveUpdates(_0x58d247[_0xca7a('0x51')],null))[_0xca7a('0x25')](respondWithResult(_0x471c0e,null))[_0xca7a('0x44')](handleError(_0x471c0e,null));};exports[_0xca7a('0x26')]=function(_0x1f830b,_0x519121){return db[_0xca7a('0x2d')][_0xca7a('0x47')]({'where':{'id':_0x1f830b['params']['id']}})[_0xca7a('0x25')](handleEntityNotFound(_0x519121,null))['then'](removeEntity(_0x519121,null))[_0xca7a('0x44')](handleError(_0x519121,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfc26=['name_sms','SmsAccountId','name_fax','FaxAccountId','OpenchannelAccountId','name_whatsapp','lodash','util','../../config/logger','api','moment','bluebird','path','rimraf','../../config/environment','exports','define','Disposition','tools_dispositions','name_voice','name','ListId'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xfc26,0x192));var _0x6fc2=function(_0x88cd7b,_0x4c884c){_0x88cd7b=_0x88cd7b-0x0;var _0x56fcc8=_0xfc26[_0x88cd7b];return _0x56fcc8;};'use strict';var _=require(_0x6fc2('0x0'));var util=require(_0x6fc2('0x1'));var logger=require(_0x6fc2('0x2'))(_0x6fc2('0x3'));var moment=require(_0x6fc2('0x4'));var BPromise=require(_0x6fc2('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x6fc2('0x6'));var rimraf=require(_0x6fc2('0x7'));var config=require(_0x6fc2('0x8'));var attributes=require('./disposition.attributes');module[_0x6fc2('0x9')]=function(_0x1e80a9,_0x4762de){return _0x1e80a9[_0x6fc2('0xa')](_0x6fc2('0xb'),attributes,{'tableName':_0x6fc2('0xc'),'paranoid':![],'indexes':[{'unique':!![],'name':_0x6fc2('0xd'),'fields':[_0x6fc2('0xe'),_0x6fc2('0xf')]},{'unique':!![],'name':'name_chat','fields':[_0x6fc2('0xe'),'ChatWebsiteId']},{'unique':!![],'name':'name_mail','fields':['name','MailAccountId']},{'unique':!![],'name':_0x6fc2('0x10'),'fields':[_0x6fc2('0xe'),_0x6fc2('0x11')]},{'unique':!![],'name':_0x6fc2('0x12'),'fields':[_0x6fc2('0xe'),_0x6fc2('0x13')]},{'unique':!![],'name':'name_openchannel','fields':['name',_0x6fc2('0x14')]},{'unique':!![],'name':_0x6fc2('0x15'),'fields':[_0x6fc2('0xe'),'WhatsappAccountId']}],'timestamps':!![]});};
\ No newline at end of file
+var _0x6f07=['name_fax','FaxAccountId','name_whatsapp','util','api','bluebird','request-promise','rimraf','../../config/environment','./disposition.attributes','exports','Disposition','tools_dispositions','name_voice','name','ListId','name_chat','name_mail','MailAccountId','name_sms'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x6f07,0x8f));var _0x76f0=function(_0x4a9fb1,_0x273043){_0x4a9fb1=_0x4a9fb1-0x0;var _0x348672=_0x6f07[_0x4a9fb1];return _0x348672;};'use strict';var _=require('lodash');var util=require(_0x76f0('0x0'));var logger=require('../../config/logger')(_0x76f0('0x1'));var moment=require('moment');var BPromise=require(_0x76f0('0x2'));var rp=require(_0x76f0('0x3'));var fs=require('fs');var path=require('path');var rimraf=require(_0x76f0('0x4'));var config=require(_0x76f0('0x5'));var attributes=require(_0x76f0('0x6'));module[_0x76f0('0x7')]=function(_0x4aaa3c,_0x4c5e52){return _0x4aaa3c['define'](_0x76f0('0x8'),attributes,{'tableName':_0x76f0('0x9'),'paranoid':![],'indexes':[{'unique':!![],'name':_0x76f0('0xa'),'fields':[_0x76f0('0xb'),_0x76f0('0xc')]},{'unique':!![],'name':_0x76f0('0xd'),'fields':['name','ChatWebsiteId']},{'unique':!![],'name':_0x76f0('0xe'),'fields':['name',_0x76f0('0xf')]},{'unique':!![],'name':_0x76f0('0x10'),'fields':[_0x76f0('0xb'),'SmsAccountId']},{'unique':!![],'name':_0x76f0('0x11'),'fields':['name',_0x76f0('0x12')]},{'unique':!![],'name':'name_openchannel','fields':[_0x76f0('0xb'),'OpenchannelAccountId']},{'unique':!![],'name':_0x76f0('0x13'),'fields':[_0x76f0('0xb'),'WhatsappAccountId']}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['http','info','Disposition,\x20%s,\x20%s','request\x20sent','debug','Disposition,\x20%s,\x20%s,\x20%s','code','error','message','result','catch','lodash','util','moment','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise'];(function(_0x2c089f,_0x55a197){var _0x3f5987=function(_0x28dc83){while(--_0x28dc83){_0x2c089f['push'](_0x2c089f['shift']());}};_0x3f5987(++_0x55a197);}(_0xa9e0,0x123));var _0x0a9e=function(_0x36dfbd,_0x5bfe2d){_0x36dfbd=_0x36dfbd-0x0;var _0x4ecad9=_0xa9e0[_0x36dfbd];return _0x4ecad9;};'use strict';var _=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var moment=require(_0x0a9e('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x0a9e('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x0a9e('0x4'));var logger=require(_0x0a9e('0x5'))(_0x0a9e('0x6'));var config=require(_0x0a9e('0x7'));var jayson=require(_0x0a9e('0x8'));var client=jayson['client'][_0x0a9e('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x441e3a,_0x2cc193,_0x5f41ea){return new BPromise(function(_0x503809,_0xe42b77){return client['request'](_0x441e3a,_0x5f41ea)['then'](function(_0x39753a){logger[_0x0a9e('0xa')](_0x0a9e('0xb'),_0x2cc193,_0x0a9e('0xc'));logger[_0x0a9e('0xd')](_0x0a9e('0xe'),_0x2cc193,'request\x20sent',JSON['stringify'](_0x39753a));if(_0x39753a['error']){if(_0x39753a['error'][_0x0a9e('0xf')]===0x1f4){logger[_0x0a9e('0x10')](_0x0a9e('0xb'),_0x2cc193,_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);return _0xe42b77(_0x39753a[_0x0a9e('0x10')]['message']);}logger[_0x0a9e('0x10')](_0x0a9e('0xb'),_0x2cc193,_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);return _0x503809(_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);}else{logger['info'](_0x0a9e('0xb'),_0x2cc193,'request\x20sent');_0x503809(_0x39753a[_0x0a9e('0x12')]['message']);}})[_0x0a9e('0x13')](function(_0x12066b){logger['error'](_0x0a9e('0xb'),_0x2cc193,_0x12066b);_0xe42b77(_0x12066b);});});}
\ No newline at end of file
+var _0xa9e0=['http','info','Disposition,\x20%s,\x20%s','request\x20sent','debug','Disposition,\x20%s,\x20%s,\x20%s','code','error','message','result','catch','lodash','util','moment','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise'];(function(_0x10d7c0,_0x433bd8){var _0x542849=function(_0x3e7448){while(--_0x3e7448){_0x10d7c0['push'](_0x10d7c0['shift']());}};_0x542849(++_0x433bd8);}(_0xa9e0,0x123));var _0x0a9e=function(_0x501510,_0x61caa9){_0x501510=_0x501510-0x0;var _0x1e6ee5=_0xa9e0[_0x501510];return _0x1e6ee5;};'use strict';var _=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var moment=require(_0x0a9e('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x0a9e('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x0a9e('0x4'));var logger=require(_0x0a9e('0x5'))(_0x0a9e('0x6'));var config=require(_0x0a9e('0x7'));var jayson=require(_0x0a9e('0x8'));var client=jayson['client'][_0x0a9e('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x441e3a,_0x2cc193,_0x5f41ea){return new BPromise(function(_0x503809,_0xe42b77){return client['request'](_0x441e3a,_0x5f41ea)['then'](function(_0x39753a){logger[_0x0a9e('0xa')](_0x0a9e('0xb'),_0x2cc193,_0x0a9e('0xc'));logger[_0x0a9e('0xd')](_0x0a9e('0xe'),_0x2cc193,'request\x20sent',JSON['stringify'](_0x39753a));if(_0x39753a['error']){if(_0x39753a['error'][_0x0a9e('0xf')]===0x1f4){logger[_0x0a9e('0x10')](_0x0a9e('0xb'),_0x2cc193,_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);return _0xe42b77(_0x39753a[_0x0a9e('0x10')]['message']);}logger[_0x0a9e('0x10')](_0x0a9e('0xb'),_0x2cc193,_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);return _0x503809(_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);}else{logger['info'](_0x0a9e('0xb'),_0x2cc193,'request\x20sent');_0x503809(_0x39753a[_0x0a9e('0x12')]['message']);}})[_0x0a9e('0x13')](function(_0x12066b){logger['error'](_0x0a9e('0xb'),_0x2cc193,_0x12066b);_0xe42b77(_0x12066b);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2235=['create','put','update','delete','destroy','exports','multer','util','connect-timeout','Router','fs-extra','../../components/interaction/service','../../config/environment','./disposition.controller','index','get','/:id','isAuthenticated','post'];(function(_0x5f09c5,_0x2bfca0){var _0x426ad9=function(_0x18fe5f){while(--_0x18fe5f){_0x5f09c5['push'](_0x5f09c5['shift']());}};_0x426ad9(++_0x2bfca0);}(_0x2235,0xb1));var _0x5223=function(_0x278e3c,_0x1c9cfd){_0x278e3c=_0x278e3c-0x0;var _0x3e2d9b=_0x2235[_0x278e3c];return _0x3e2d9b;};'use strict';var multer=require(_0x5223('0x0'));var util=require(_0x5223('0x1'));var path=require('path');var timeout=require(_0x5223('0x2'));var express=require('express');var router=express[_0x5223('0x3')]();var fs_extra=require(_0x5223('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x5223('0x5'));var config=require(_0x5223('0x6'));var controller=require(_0x5223('0x7'));router['get']('/',auth['isAuthenticated'](),controller[_0x5223('0x8')]);router[_0x5223('0x9')](_0x5223('0xa'),auth[_0x5223('0xb')](),controller['show']);router[_0x5223('0xc')]('/',auth[_0x5223('0xb')](),controller[_0x5223('0xd')]);router[_0x5223('0xe')]('/:id',auth[_0x5223('0xb')](),controller[_0x5223('0xf')]);router[_0x5223('0x10')]('/:id',auth['isAuthenticated'](),controller[_0x5223('0x11')]);module[_0x5223('0x12')]=router;
\ No newline at end of file
+var _0x865c=['path','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./disposition.controller','get','isAuthenticated','index','/:id','show','post','create','put','delete','destroy','exports','multer','util'];(function(_0x2c7ce7,_0x8d34cf){var _0x59c1bf=function(_0x5bf415){while(--_0x5bf415){_0x2c7ce7['push'](_0x2c7ce7['shift']());}};_0x59c1bf(++_0x8d34cf);}(_0x865c,0xee));var _0xc865=function(_0x366bc6,_0x1dfab5){_0x366bc6=_0x366bc6-0x0;var _0x46b18c=_0x865c[_0x366bc6];return _0x46b18c;};'use strict';var multer=require(_0xc865('0x0'));var util=require(_0xc865('0x1'));var path=require(_0xc865('0x2'));var timeout=require('connect-timeout');var express=require(_0xc865('0x3'));var router=express[_0xc865('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0xc865('0x5'));var interaction=require(_0xc865('0x6'));var config=require(_0xc865('0x7'));var controller=require(_0xc865('0x8'));router[_0xc865('0x9')]('/',auth[_0xc865('0xa')](),controller[_0xc865('0xb')]);router['get'](_0xc865('0xc'),auth[_0xc865('0xa')](),controller[_0xc865('0xd')]);router[_0xc865('0xe')]('/',auth[_0xc865('0xa')](),controller[_0xc865('0xf')]);router[_0xc865('0x10')](_0xc865('0xc'),auth[_0xc865('0xa')](),controller['update']);router[_0xc865('0x11')](_0xc865('0xc'),auth[_0xc865('0xa')](),controller[_0xc865('0x12')]);module[_0xc865('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x31c3=['BOOLEAN','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','mandatoryDispositionPauseId','setDataValue','mandatoryDisposition','sequelize','exports','STRING','ENUM','yes','xCALLY\x20Motion\x20Fax','2400','4800','7200','12000','14400','9600','v17,v27,v29','INTEGER','SIP','DADHI','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}'];(function(_0x436839,_0x57bb63){var _0xd80385=function(_0x37c029){while(--_0x37c029){_0x436839['push'](_0x436839['shift']());}};_0xd80385(++_0x57bb63);}(_0x31c3,0x79));var _0x331c=function(_0x4ab284,_0x5303be){_0x4ab284=_0x4ab284-0x0;var _0x22ea9e=_0x31c3[_0x4ab284];return _0x22ea9e;};'use strict';var Sequelize=require(_0x331c('0x0'));module[_0x331c('0x1')]={'name':{'type':Sequelize[_0x331c('0x2')],'allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize[_0x331c('0x2')]},'ecm':{'type':Sequelize[_0x331c('0x3')](_0x331c('0x4'),'no'),'defaultValue':_0x331c('0x4')},'headerinfo':{'type':Sequelize['STRING'],'defaultValue':_0x331c('0x5')},'localstationid':{'type':Sequelize[_0x331c('0x2')],'unique':'localstationid'},'minrate':{'type':Sequelize[_0x331c('0x3')](_0x331c('0x6'),_0x331c('0x7'),_0x331c('0x8'),'9600',_0x331c('0x9'),_0x331c('0xa')),'defaultValue':_0x331c('0x7')},'maxrate':{'type':Sequelize[_0x331c('0x3')](_0x331c('0x6'),_0x331c('0x7'),_0x331c('0x8'),_0x331c('0xb'),_0x331c('0x9'),_0x331c('0xa')),'defaultValue':_0x331c('0xa')},'modem':{'type':Sequelize[_0x331c('0x2')],'defaultValue':_0x331c('0xc')},'gateway':{'type':Sequelize[_0x331c('0x2')],'defaultValue':'no','validate':{'is':/^(?:yes|no|[0-9]+)$/}},'faxdetect':{'type':Sequelize[_0x331c('0x2')],'defaultValue':'no','validate':{'is':/^(?:yes|no|t38|cng|[0-9]+)$/}},'t38timeout':{'type':Sequelize[_0x331c('0xd')],'defaultValue':0x1388,'validate':{'min':0x3e8}},'tech':{'type':Sequelize[_0x331c('0x3')](_0x331c('0xe'),'IAX',_0x331c('0xf'),'KHOMP'),'defaultValue':_0x331c('0xe')},'key':{'type':Sequelize[_0x331c('0x2')],'allowNull':![]},'notificationTemplate':{'type':Sequelize['TEXT'],'defaultValue':function(){return _0x331c('0x10');}},'notificationSound':{'type':Sequelize[_0x331c('0x11')],'defaultValue':!![]},'notificationShake':{'type':Sequelize[_0x331c('0x11')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize[_0x331c('0x11')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0x331c('0xd')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0x331c('0x11')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0x331c('0xd')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'mandatoryDispositionPauseId':{'type':Sequelize[_0x331c('0xd')],'allowNull':!![],'defaultValue':null,'comment':_0x331c('0x12')},'mandatoryDisposition':{'type':Sequelize[_0x331c('0x11')],'defaultValue':![],'comment':_0x331c('0x13'),'set':function(_0x19ad49){if(!_0x19ad49)this['setDataValue'](_0x331c('0x14'),null);this[_0x331c('0x15')](_0x331c('0x16'),_0x19ad49);}}};
\ No newline at end of file
+var _0xed06=['Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','mandatoryDispositionPauseId','setDataValue','sequelize','exports','STRING','ENUM','yes','xCALLY\x20Motion\x20Fax','localstationid','2400','4800','7200','12000','14400','9600','v17,v27,v29','INTEGER','IAX','KHOMP','SIP','TEXT','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}','BOOLEAN'];(function(_0x2aea9e,_0x1f587f){var _0x430b92=function(_0x416c37){while(--_0x416c37){_0x2aea9e['push'](_0x2aea9e['shift']());}};_0x430b92(++_0x1f587f);}(_0xed06,0x1df));var _0x6ed0=function(_0x123239,_0x5d6800){_0x123239=_0x123239-0x0;var _0x527615=_0xed06[_0x123239];return _0x527615;};'use strict';var Sequelize=require(_0x6ed0('0x0'));module[_0x6ed0('0x1')]={'name':{'type':Sequelize[_0x6ed0('0x2')],'allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize[_0x6ed0('0x2')]},'ecm':{'type':Sequelize[_0x6ed0('0x3')](_0x6ed0('0x4'),'no'),'defaultValue':_0x6ed0('0x4')},'headerinfo':{'type':Sequelize['STRING'],'defaultValue':_0x6ed0('0x5')},'localstationid':{'type':Sequelize[_0x6ed0('0x2')],'unique':_0x6ed0('0x6')},'minrate':{'type':Sequelize[_0x6ed0('0x3')](_0x6ed0('0x7'),_0x6ed0('0x8'),_0x6ed0('0x9'),'9600',_0x6ed0('0xa'),_0x6ed0('0xb')),'defaultValue':_0x6ed0('0x8')},'maxrate':{'type':Sequelize[_0x6ed0('0x3')](_0x6ed0('0x7'),'4800',_0x6ed0('0x9'),_0x6ed0('0xc'),_0x6ed0('0xa'),'14400'),'defaultValue':_0x6ed0('0xb')},'modem':{'type':Sequelize[_0x6ed0('0x2')],'defaultValue':_0x6ed0('0xd')},'gateway':{'type':Sequelize[_0x6ed0('0x2')],'defaultValue':'no','validate':{'is':/^(?:yes|no|[0-9]+)$/}},'faxdetect':{'type':Sequelize[_0x6ed0('0x2')],'defaultValue':'no','validate':{'is':/^(?:yes|no|t38|cng|[0-9]+)$/}},'t38timeout':{'type':Sequelize[_0x6ed0('0xe')],'defaultValue':0x1388,'validate':{'min':0x3e8}},'tech':{'type':Sequelize[_0x6ed0('0x3')]('SIP',_0x6ed0('0xf'),'DADHI',_0x6ed0('0x10')),'defaultValue':_0x6ed0('0x11')},'key':{'type':Sequelize[_0x6ed0('0x2')],'allowNull':![]},'notificationTemplate':{'type':Sequelize[_0x6ed0('0x12')],'defaultValue':function(){return _0x6ed0('0x13');}},'notificationSound':{'type':Sequelize[_0x6ed0('0x14')],'defaultValue':!![]},'notificationShake':{'type':Sequelize[_0x6ed0('0x14')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize[_0x6ed0('0xe')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize[_0x6ed0('0x14')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0x6ed0('0xe')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0x6ed0('0xe')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'mandatoryDispositionPauseId':{'type':Sequelize[_0x6ed0('0xe')],'allowNull':!![],'defaultValue':null,'comment':_0x6ed0('0x15')},'mandatoryDisposition':{'type':Sequelize[_0x6ed0('0x14')],'defaultValue':![],'comment':_0x6ed0('0x16'),'set':function(_0x496406){if(!_0x496406)this['setDataValue'](_0x6ed0('0x17'),null);this[_0x6ed0('0x18')]('mandatoryDisposition',_0x496406);}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5166=['client','http','info','FaxAccount,\x20%s,\x20%s','request\x20sent','debug','FaxAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','status','end','json','undefined','count','offset','set','Content-Range','apply','reject','save','then','get','destroy','stack','name','index','map','FaxAccount','rawAttributes','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','filter','where','merge','type','options','includeAll','include','findAll','show','params','Pause','mandatoryDispositionPause','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','FaxAccounts','find','userProfileId','autoAssociation','update','describe','addDisposition','getDispositions','Disposition','FaxAccountId','rows','removeDispositions','addAnswer','CannedAnswer','getAnswers','findOne','pick','removeAnswers','ids','addInteraction','FaxInteraction','omit','getInteractions','CmContact','Contact','User','Owner','fullname','internal','Tags','color','tag','addApplications','sequelize','ISOLATION_LEVELS','READ_COMMITTED','FaxApplication','bulkCreate','findAndCountAll','priority','finally','sendStatus','getApplications','context','exten','localstationid','system','description','Fax\x20Extension','appdata','push','Answer','CDR(type)=inbound-fax','Set','gateway','faxdetect','headerinfo','maxrate','minrate','t38timeout','FAXOPT(','/var/opt/motion2/server/files/attachments/fax-${CALLERID(num)}-${CUT(UNIQUEID,.,1)}-${CUT(UNIQUEID,.,2)}-${STRFTIME(,,%C%y%m%d%H%M%S)}-rx.tif,d','VoiceExtension','updateAccountApplications','transaction','tech','updatedAt','ListId','getMessages','FaxMessage','$gte','split','format','YYYY-MM-DD\x20HH:mm:ss','send','CmList','List','Contacts','DESC','attachments','join','root','CheckAfterSend','isNil','path','from','\x22%s\x22\x20<%s>','fax','defaults','Send\x20Fax\x20failed','out','filename','spread','ContactId','dataValues','Messages','SendFax','SendFaxRpc,\x20%s','addAgents','emit','userFaxAccount:save','removeAgents','isArray','userFaxAccount:remove','getAgents','eml-format','zip-dir','request-promise','moment','bluebird','mustache','sox','to-csv','ejs','lodash','squel','jsforce','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./faxAccount.socket','register','jayson/promise'];(function(_0x20b951,_0x4928a7){var _0x5cf323=function(_0x207a67){while(--_0x207a67){_0x20b951['push'](_0x20b951['shift']());}};_0x5cf323(++_0x4928a7);}(_0x5166,0x16d));var _0x6516=function(_0x56acf8,_0x3415d7){_0x56acf8=_0x56acf8-0x0;var _0x54c879=_0x5166[_0x56acf8];return _0x54c879;};'use strict';var emlformat=require(_0x6516('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x6516('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x6516('0x2'));var moment=require(_0x6516('0x3'));var BPromise=require(_0x6516('0x4'));var Mustache=require(_0x6516('0x5'));var util=require('util');var path=require('path');var sox=require(_0x6516('0x6'));var csv=require(_0x6516('0x7'));var ejs=require(_0x6516('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x6516('0x9'));var squel=require(_0x6516('0xa'));var crypto=require('crypto');var jsforce=require(_0x6516('0xb'));var deskjs=require('desk.js');var toCsv=require(_0x6516('0x7'));var querystring=require(_0x6516('0xc'));var Papa=require(_0x6516('0xd'));var Redis=require(_0x6516('0xe'));var authService=require('../../components/auth/service');var qs=require(_0x6516('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x6516('0x10'));var logger=require(_0x6516('0x11'))(_0x6516('0x12'));var utils=require(_0x6516('0x13'));var config=require(_0x6516('0x14'));var licenseUtil=require(_0x6516('0x15'));var db=require(_0x6516('0x16'))['db'];config[_0x6516('0x17')]=_['defaults'](config[_0x6516('0x17')],{'host':_0x6516('0x18'),'port':0x18eb});var socket=require(_0x6516('0x19'))(new Redis(config[_0x6516('0x17')]));require(_0x6516('0x1a'))[_0x6516('0x1b')](socket);var jayson=require(_0x6516('0x1c'));var client=jayson[_0x6516('0x1d')][_0x6516('0x1e')]({'port':0x232c});var client9002=jayson['client'][_0x6516('0x1e')]({'port':0x232a});function respondWithRpcPromise(_0x553b40,_0x152dc1,_0x28bc0c,_0x262aa9){return new BPromise(function(_0x59cc9f,_0x5196c2){var _0x271af2=_0x262aa9||client;return _0x271af2['request'](_0x553b40,_0x28bc0c)['then'](function(_0x1715a9){logger[_0x6516('0x1f')](_0x6516('0x20'),_0x152dc1,_0x6516('0x21'));logger[_0x6516('0x22')](_0x6516('0x23'),_0x152dc1,_0x6516('0x21'),JSON[_0x6516('0x24')](_0x1715a9));if(_0x1715a9[_0x6516('0x25')]){if(_0x1715a9[_0x6516('0x25')]['code']===0x1f4){logger['error'](_0x6516('0x20'),_0x152dc1,_0x1715a9[_0x6516('0x25')][_0x6516('0x26')]);return _0x5196c2(_0x1715a9[_0x6516('0x25')][_0x6516('0x26')]);}logger[_0x6516('0x25')](_0x6516('0x20'),_0x152dc1,_0x1715a9[_0x6516('0x25')][_0x6516('0x26')]);return _0x59cc9f(_0x1715a9['error'][_0x6516('0x26')]);}else{logger['info'](_0x6516('0x20'),_0x152dc1,'request\x20sent');_0x59cc9f(_0x1715a9[_0x6516('0x27')][_0x6516('0x26')]);}})[_0x6516('0x28')](function(_0x1a4330){logger[_0x6516('0x25')](_0x6516('0x20'),_0x152dc1,_0x1a4330);_0x5196c2(_0x1a4330);});});}function respondWithStatusCode(_0x2fcb53,_0x8305dd){_0x8305dd=_0x8305dd||0xcc;return function(_0x256c79){if(_0x256c79){return _0x2fcb53['sendStatus'](_0x8305dd);}return _0x2fcb53[_0x6516('0x29')](_0x8305dd)[_0x6516('0x2a')]();};}function respondWithResult(_0x5d658f,_0xb91989){_0xb91989=_0xb91989||0xc8;return function(_0x437eae){if(_0x437eae){return _0x5d658f[_0x6516('0x29')](_0xb91989)[_0x6516('0x2b')](_0x437eae);}};}function respondWithFilteredResult(_0x4f324d,_0x1c28ff){return function(_0x4efa36){if(_0x4efa36){var _0x3ecc66=typeof _0x1c28ff['offset']===_0x6516('0x2c')&&typeof _0x1c28ff['limit']==='undefined';var _0x4b0d97=_0x4efa36[_0x6516('0x2d')];var _0x44fe10=_0x3ecc66?0x0:_0x1c28ff['offset'];var _0x3460c8=_0x3ecc66?_0x4efa36['count']:_0x1c28ff[_0x6516('0x2e')]+_0x1c28ff['limit'];var _0xa3f4ea;if(_0x3460c8>=_0x4b0d97){_0x3460c8=_0x4b0d97;_0xa3f4ea=0xc8;}else{_0xa3f4ea=0xce;}_0x4f324d[_0x6516('0x29')](_0xa3f4ea);return _0x4f324d[_0x6516('0x2f')](_0x6516('0x30'),_0x44fe10+'-'+_0x3460c8+'/'+_0x4b0d97)[_0x6516('0x2b')](_0x4efa36);}return null;};}function patchUpdates(_0x1fe1ad){return function(_0x17b75f){try{jsonpatch[_0x6516('0x31')](_0x17b75f,_0x1fe1ad,!![]);}catch(_0x23efbd){return BPromise[_0x6516('0x32')](_0x23efbd);}return _0x17b75f[_0x6516('0x33')]();};}function saveUpdates(_0xc247c9,_0x2099c2){return function(_0xdaabcf){if(_0xdaabcf){return _0xdaabcf['update'](_0xc247c9)[_0x6516('0x34')](function(_0xbb81f2){return _0xbb81f2;});}return null;};}function removeEntity(_0x6f00b3,_0x2b9942){return function(_0x426d8e){if(_0x426d8e){return _0x426d8e['destroy']()[_0x6516('0x34')](function(){var _0xf6f2f4=_0x426d8e[_0x6516('0x35')]({'plain':!![]});var _0x52d8bb='FaxAccounts';return db['UserProfileResource'][_0x6516('0x36')]({'where':{'type':_0x52d8bb,'resourceId':_0xf6f2f4['id']}})[_0x6516('0x34')](function(){return _0x426d8e;});})[_0x6516('0x34')](function(){_0x6f00b3[_0x6516('0x29')](0xcc)[_0x6516('0x2a')]();});}};}function handleEntityNotFound(_0x18de6d,_0x3d1561){return function(_0x1d9e9d){if(!_0x1d9e9d){_0x18de6d['sendStatus'](0x194);}return _0x1d9e9d;};}function handleError(_0x26ca67,_0x4d0d34){_0x4d0d34=_0x4d0d34||0x1f4;return function(_0x46b581){logger['error'](_0x46b581[_0x6516('0x37')]);if(_0x46b581[_0x6516('0x38')]){delete _0x46b581[_0x6516('0x38')];}_0x26ca67[_0x6516('0x29')](_0x4d0d34)['send'](_0x46b581);};}exports[_0x6516('0x39')]=function(_0x1811d6,_0x28e6da){var _0x130a7c={'include':[{'model':db['Pause'],'as':'mandatoryDispositionPause'}]},_0x8802d={},_0x30947a={'count':0x0,'rows':[]};var _0x3ac26d=_[_0x6516('0x3a')](db[_0x6516('0x3b')][_0x6516('0x3c')],function(_0x486d19){return{'name':_0x486d19['fieldName'],'type':_0x486d19['type'][_0x6516('0x3d')]};});_0x8802d[_0x6516('0x3e')]=_['map'](_0x3ac26d,_0x6516('0x38'));_0x8802d[_0x6516('0x3f')]=_[_0x6516('0x40')](_0x1811d6['query']);_0x8802d[_0x6516('0x41')]=_[_0x6516('0x42')](_0x8802d[_0x6516('0x3e')],_0x8802d[_0x6516('0x3f')]);_0x130a7c[_0x6516('0x43')]=_[_0x6516('0x42')](_0x8802d[_0x6516('0x3e')],qs[_0x6516('0x44')](_0x1811d6['query']['fields']));_0x130a7c[_0x6516('0x43')]=_0x130a7c[_0x6516('0x43')][_0x6516('0x45')]?_0x130a7c[_0x6516('0x43')]:_0x8802d[_0x6516('0x3e')];if(!_0x1811d6[_0x6516('0x3f')][_0x6516('0x46')](_0x6516('0x47'))){_0x130a7c[_0x6516('0x48')]=qs['limit'](_0x1811d6[_0x6516('0x3f')][_0x6516('0x48')]);_0x130a7c[_0x6516('0x2e')]=qs[_0x6516('0x2e')](_0x1811d6[_0x6516('0x3f')][_0x6516('0x2e')]);}_0x130a7c[_0x6516('0x49')]=qs[_0x6516('0x4a')](_0x1811d6[_0x6516('0x3f')][_0x6516('0x4a')]);_0x130a7c['where']=qs[_0x6516('0x41')](_['pick'](_0x1811d6['query'],_0x8802d[_0x6516('0x41')]),_0x3ac26d);if(_0x1811d6[_0x6516('0x3f')][_0x6516('0x4b')]){_0x130a7c[_0x6516('0x4c')]=_[_0x6516('0x4d')](_0x130a7c[_0x6516('0x4c')],{'$or':_[_0x6516('0x3a')](_0x3ac26d,function(_0x52380c){if(_0x52380c[_0x6516('0x4e')]!=='VIRTUAL'){var _0x1cc974={};_0x1cc974[_0x52380c[_0x6516('0x38')]]={'$like':'%'+_0x1811d6['query']['filter']+'%'};return _0x1cc974;}})});}_0x130a7c=_[_0x6516('0x4d')]({},_0x130a7c,_0x1811d6[_0x6516('0x4f')]);var _0xf866ae={'where':_0x130a7c['where']};return db[_0x6516('0x3b')][_0x6516('0x2d')](_0xf866ae)[_0x6516('0x34')](function(_0x375343){_0x30947a['count']=_0x375343;if(_0x1811d6[_0x6516('0x3f')][_0x6516('0x50')]){_0x130a7c[_0x6516('0x51')]=[{'all':!![]}];}return db[_0x6516('0x3b')][_0x6516('0x52')](_0x130a7c);})['then'](function(_0x28e79a){_0x30947a['rows']=_0x28e79a;return _0x30947a;})['then'](respondWithFilteredResult(_0x28e6da,_0x130a7c))[_0x6516('0x28')](handleError(_0x28e6da,null));};exports[_0x6516('0x53')]=function(_0xd984e6,_0x5d3733){var _0x114cad={'raw':![],'where':{'id':_0xd984e6[_0x6516('0x54')]['id']},'include':[{'model':db[_0x6516('0x55')],'as':_0x6516('0x56')}]},_0x32199c={};_0x32199c[_0x6516('0x3e')]=_[_0x6516('0x40')](db[_0x6516('0x3b')][_0x6516('0x3c')]);_0x32199c[_0x6516('0x3f')]=_[_0x6516('0x40')](_0xd984e6[_0x6516('0x3f')]);_0x32199c['filters']=_[_0x6516('0x42')](_0x32199c[_0x6516('0x3e')],_0x32199c['query']);_0x114cad['attributes']=_['intersection'](_0x32199c[_0x6516('0x3e')],qs[_0x6516('0x44')](_0xd984e6['query'][_0x6516('0x44')]));_0x114cad[_0x6516('0x43')]=_0x114cad['attributes'][_0x6516('0x45')]?_0x114cad[_0x6516('0x43')]:_0x32199c[_0x6516('0x3e')];if(_0xd984e6[_0x6516('0x3f')][_0x6516('0x50')]){_0x114cad[_0x6516('0x51')]=[{'all':!![]}];}_0x114cad=_[_0x6516('0x4d')]({},_0x114cad,_0xd984e6['options']);return db[_0x6516('0x3b')]['find'](_0x114cad)[_0x6516('0x34')](handleEntityNotFound(_0x5d3733,null))[_0x6516('0x34')](respondWithResult(_0x5d3733,null))[_0x6516('0x28')](handleError(_0x5d3733,null));};exports[_0x6516('0x57')]=function(_0x3aae1a,_0x4b9fe4){return db[_0x6516('0x3b')]['create'](_0x3aae1a[_0x6516('0x58')],{})[_0x6516('0x34')](function(_0x5685ec){var _0x17be0e=_0x3aae1a[_0x6516('0x59')][_0x6516('0x35')]({'plain':!![]});if(!_0x17be0e)throw new Error(_0x6516('0x5a'));if(_0x17be0e[_0x6516('0x5b')]===_0x6516('0x59')){var _0x3f2444=_0x5685ec[_0x6516('0x35')]({'plain':!![]});var _0xcf1cff=_0x6516('0x5c');return db['UserProfileSection'][_0x6516('0x5d')]({'where':{'name':_0xcf1cff,'userProfileId':_0x17be0e[_0x6516('0x5e')]},'raw':!![]})[_0x6516('0x34')](function(_0x1c8792){if(_0x1c8792&&_0x1c8792[_0x6516('0x5f')]===0x0){return db['UserProfileResource']['create']({'name':_0x3f2444[_0x6516('0x38')],'resourceId':_0x3f2444['id'],'type':_0x1c8792['name'],'sectionId':_0x1c8792['id']},{})[_0x6516('0x34')](function(){return _0x5685ec;});}else{return _0x5685ec;}})['catch'](function(_0x11f079){logger[_0x6516('0x25')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x11f079);throw _0x11f079;});}return _0x5685ec;})[_0x6516('0x34')](respondWithResult(_0x4b9fe4,0xc9))['catch'](handleError(_0x4b9fe4,null));};exports[_0x6516('0x60')]=function(_0xe85dcc,_0x426e2f){if(_0xe85dcc[_0x6516('0x58')]['id']){delete _0xe85dcc['body']['id'];}return db[_0x6516('0x3b')][_0x6516('0x5d')]({'where':{'id':_0xe85dcc[_0x6516('0x54')]['id']},'include':[{'model':db[_0x6516('0x55')],'as':'mandatoryDispositionPause'}]})['then'](handleEntityNotFound(_0x426e2f,null))[_0x6516('0x34')](saveUpdates(_0xe85dcc[_0x6516('0x58')],null))[_0x6516('0x34')](respondWithResult(_0x426e2f,null))[_0x6516('0x28')](handleError(_0x426e2f,null));};exports['destroy']=function(_0x1214d6,_0x1f5649){return db['FaxAccount'][_0x6516('0x5d')]({'where':{'id':_0x1214d6[_0x6516('0x54')]['id']}})[_0x6516('0x34')](handleEntityNotFound(_0x1f5649,null))['then'](removeEntity(_0x1f5649,null))['catch'](handleError(_0x1f5649,null));};exports[_0x6516('0x61')]=function(_0x52dd0e,_0x5e4f4f){return db[_0x6516('0x3b')][_0x6516('0x61')]()[_0x6516('0x34')](respondWithResult(_0x5e4f4f,null))[_0x6516('0x28')](handleError(_0x5e4f4f,null));};exports[_0x6516('0x62')]=function(_0x432f5b,_0x43a5cb,_0x14f0dd){if(_0x432f5b[_0x6516('0x58')]['id']){delete _0x432f5b[_0x6516('0x58')]['id'];}return db['FaxAccount'][_0x6516('0x5d')]({'where':{'id':_0x432f5b[_0x6516('0x54')]['id']}})[_0x6516('0x34')](handleEntityNotFound(_0x43a5cb,null))[_0x6516('0x34')](function(_0x25e606){if(_0x25e606){_0x432f5b[_0x6516('0x58')]['FaxAccountId']=_0x25e606['id'];return db['Disposition']['create'](_0x432f5b[_0x6516('0x58')]);}})[_0x6516('0x34')](respondWithResult(_0x43a5cb,null))['catch'](handleError(_0x43a5cb,null));};exports[_0x6516('0x63')]=function(_0x560101,_0x2c1838,_0x285056){var _0xea8c0={'raw':![],'where':{}};var _0x2205fe={};var _0x1ad85b={'count':0x0,'rows':[]};return db[_0x6516('0x3b')]['findOne']({'where':{'id':_0x560101[_0x6516('0x54')]['id']}})[_0x6516('0x34')](handleEntityNotFound(_0x2c1838,null))[_0x6516('0x34')](function(_0x4c6613){if(_0x4c6613){_0x2205fe[_0x6516('0x3e')]=_[_0x6516('0x40')](db[_0x6516('0x64')][_0x6516('0x3c')]);_0x2205fe[_0x6516('0x3f')]=_['keys'](_0x560101['query']);_0x2205fe[_0x6516('0x41')]=_[_0x6516('0x42')](_0x2205fe['model'],_0x2205fe['query']);_0xea8c0[_0x6516('0x43')]=_[_0x6516('0x42')](_0x2205fe[_0x6516('0x3e')],qs['fields'](_0x560101['query'][_0x6516('0x44')]));_0xea8c0['attributes']=_0xea8c0[_0x6516('0x43')][_0x6516('0x45')]?_0xea8c0['attributes']:_0x2205fe[_0x6516('0x3e')];if(!_0x560101[_0x6516('0x3f')][_0x6516('0x46')](_0x6516('0x47'))){_0xea8c0['limit']=qs[_0x6516('0x48')](_0x560101[_0x6516('0x3f')][_0x6516('0x48')]);_0xea8c0[_0x6516('0x2e')]=qs[_0x6516('0x2e')](_0x560101['query'][_0x6516('0x2e')]);}_0xea8c0[_0x6516('0x49')]=qs[_0x6516('0x4a')](_0x560101[_0x6516('0x3f')][_0x6516('0x4a')]);_0xea8c0[_0x6516('0x4c')]=qs['filters'](_['pick'](_0x560101['query'],_0x2205fe['filters']));_0xea8c0[_0x6516('0x4c')][_0x6516('0x65')]=_0x4c6613['id'];if(_0x560101[_0x6516('0x3f')][_0x6516('0x4b')]){_0xea8c0[_0x6516('0x4c')]=_[_0x6516('0x4d')](_0xea8c0[_0x6516('0x4c')],{'$or':_['map'](_0xea8c0[_0x6516('0x43')],function(_0x14f0cb){var _0x230f03={};_0x230f03[_0x14f0cb]={'$like':'%'+_0x560101['query']['filter']+'%'};return _0x230f03;})});}_0xea8c0=_[_0x6516('0x4d')]({},_0xea8c0,_0x560101[_0x6516('0x4f')]);return db['Disposition'][_0x6516('0x2d')]({'where':_0xea8c0[_0x6516('0x4c')]})['then'](function(_0x232c07){_0x1ad85b[_0x6516('0x2d')]=_0x232c07;if(_0x560101[_0x6516('0x3f')][_0x6516('0x50')]){_0xea8c0['include']=[{'all':!![]}];}return db[_0x6516('0x64')][_0x6516('0x52')](_0xea8c0);})[_0x6516('0x34')](function(_0x1aa2a0){_0x1ad85b[_0x6516('0x66')]=_0x1aa2a0;return _0x1ad85b;});}})[_0x6516('0x34')](respondWithFilteredResult(_0x2c1838,_0xea8c0))[_0x6516('0x28')](handleError(_0x2c1838,null));};exports[_0x6516('0x67')]=function(_0x2437b2,_0x5b923e,_0x5a6858){return db[_0x6516('0x3b')][_0x6516('0x5d')]({'where':{'id':_0x2437b2['params']['id']}})[_0x6516('0x34')](handleEntityNotFound(_0x5b923e,null))[_0x6516('0x34')](function(_0x459711){if(_0x459711){return _0x459711[_0x6516('0x67')](_0x2437b2[_0x6516('0x3f')]['ids']);}})['then'](respondWithStatusCode(_0x5b923e,null))[_0x6516('0x28')](handleError(_0x5b923e,null));};exports[_0x6516('0x68')]=function(_0x5d63aa,_0x5b5989,_0x310ea7){if(_0x5d63aa[_0x6516('0x58')]['id']){delete _0x5d63aa[_0x6516('0x58')]['id'];}return db['FaxAccount'][_0x6516('0x5d')]({'where':{'id':_0x5d63aa['params']['id']}})[_0x6516('0x34')](handleEntityNotFound(_0x5b5989,null))[_0x6516('0x34')](function(_0x3e6692){if(_0x3e6692){_0x5d63aa[_0x6516('0x58')][_0x6516('0x65')]=_0x3e6692['id'];return db[_0x6516('0x69')][_0x6516('0x57')](_0x5d63aa[_0x6516('0x58')]);}})[_0x6516('0x34')](respondWithResult(_0x5b5989,null))[_0x6516('0x28')](handleError(_0x5b5989,null));};exports[_0x6516('0x6a')]=function(_0x33ab73,_0x35d7f5,_0x2942df){var _0x49dbb0={'raw':![],'where':{}};var _0x5cb99e={};var _0x1c41f0={'count':0x0,'rows':[]};return db[_0x6516('0x3b')][_0x6516('0x6b')]({'where':{'id':_0x33ab73[_0x6516('0x54')]['id']}})[_0x6516('0x34')](handleEntityNotFound(_0x35d7f5,null))['then'](function(_0x356ff7){if(_0x356ff7){_0x5cb99e[_0x6516('0x3e')]=_[_0x6516('0x40')](db[_0x6516('0x69')][_0x6516('0x3c')]);_0x5cb99e[_0x6516('0x3f')]=_[_0x6516('0x40')](_0x33ab73['query']);_0x5cb99e[_0x6516('0x41')]=_[_0x6516('0x42')](_0x5cb99e[_0x6516('0x3e')],_0x5cb99e['query']);_0x49dbb0[_0x6516('0x43')]=_['intersection'](_0x5cb99e[_0x6516('0x3e')],qs[_0x6516('0x44')](_0x33ab73[_0x6516('0x3f')][_0x6516('0x44')]));_0x49dbb0[_0x6516('0x43')]=_0x49dbb0['attributes'][_0x6516('0x45')]?_0x49dbb0['attributes']:_0x5cb99e[_0x6516('0x3e')];if(!_0x33ab73['query']['hasOwnProperty'](_0x6516('0x47'))){_0x49dbb0[_0x6516('0x48')]=qs[_0x6516('0x48')](_0x33ab73['query'][_0x6516('0x48')]);_0x49dbb0['offset']=qs['offset'](_0x33ab73[_0x6516('0x3f')][_0x6516('0x2e')]);}_0x49dbb0[_0x6516('0x49')]=qs['sort'](_0x33ab73['query']['sort']);_0x49dbb0[_0x6516('0x4c')]=qs['filters'](_[_0x6516('0x6c')](_0x33ab73['query'],_0x5cb99e[_0x6516('0x41')]));_0x49dbb0[_0x6516('0x4c')][_0x6516('0x65')]=_0x356ff7['id'];if(_0x33ab73[_0x6516('0x3f')][_0x6516('0x4b')]){_0x49dbb0['where']=_[_0x6516('0x4d')](_0x49dbb0[_0x6516('0x4c')],{'$or':_[_0x6516('0x3a')](_0x49dbb0[_0x6516('0x43')],function(_0x5adf81){var _0x606daa={};_0x606daa[_0x5adf81]={'$like':'%'+_0x33ab73['query']['filter']+'%'};return _0x606daa;})});}_0x49dbb0=_[_0x6516('0x4d')]({},_0x49dbb0,_0x33ab73['options']);return db[_0x6516('0x69')][_0x6516('0x2d')]({'where':_0x49dbb0[_0x6516('0x4c')]})['then'](function(_0x453ad4){_0x1c41f0[_0x6516('0x2d')]=_0x453ad4;if(_0x33ab73[_0x6516('0x3f')][_0x6516('0x50')]){_0x49dbb0[_0x6516('0x51')]=[{'all':!![]}];}return db[_0x6516('0x69')][_0x6516('0x52')](_0x49dbb0);})['then'](function(_0x1ba84d){_0x1c41f0[_0x6516('0x66')]=_0x1ba84d;return _0x1c41f0;});}})['then'](respondWithFilteredResult(_0x35d7f5,_0x49dbb0))[_0x6516('0x28')](handleError(_0x35d7f5,null));};exports[_0x6516('0x6d')]=function(_0x859b8d,_0xd4b3b2,_0x6ed22){return db[_0x6516('0x3b')][_0x6516('0x5d')]({'where':{'id':_0x859b8d[_0x6516('0x54')]['id']}})[_0x6516('0x34')](handleEntityNotFound(_0xd4b3b2,null))['then'](function(_0x5a8e58){if(_0x5a8e58){return _0x5a8e58[_0x6516('0x6d')](_0x859b8d[_0x6516('0x3f')][_0x6516('0x6e')]);}})[_0x6516('0x34')](respondWithStatusCode(_0xd4b3b2,null))[_0x6516('0x28')](handleError(_0xd4b3b2,null));};exports[_0x6516('0x6f')]=function(_0x315b17,_0x302330,_0x1393c6){return db[_0x6516('0x70')]['find']({'where':{'id':_0x315b17[_0x6516('0x54')]['id']}})[_0x6516('0x34')](handleEntityNotFound(_0x302330,null))[_0x6516('0x34')](function(_0x1f0e52){if(_0x1f0e52){return _0x1f0e52[_0x6516('0x6f')](_0x315b17[_0x6516('0x58')][_0x6516('0x6e')],_[_0x6516('0x71')](_0x315b17[_0x6516('0x58')],[_0x6516('0x6e'),'id'])||{});}})[_0x6516('0x34')](respondWithResult(_0x302330,null))['catch'](handleError(_0x302330,null));};exports[_0x6516('0x72')]=function(_0x15ceaf,_0x57f716,_0x577c55){var _0x2000c0={'raw':![],'where':{}};var _0x21ab22={};var _0x41d268={'count':0x0,'rows':[]};return db[_0x6516('0x3b')][_0x6516('0x6b')]({'where':{'id':_0x15ceaf[_0x6516('0x54')]['id']}})[_0x6516('0x34')](handleEntityNotFound(_0x57f716,null))['then'](function(_0x4db50e){if(_0x4db50e){_0x21ab22[_0x6516('0x3e')]=_[_0x6516('0x40')](db['FaxInteraction'][_0x6516('0x3c')]);_0x21ab22[_0x6516('0x3f')]=_[_0x6516('0x40')](_0x15ceaf[_0x6516('0x3f')]);_0x21ab22[_0x6516('0x41')]=_['intersection'](_0x21ab22[_0x6516('0x3e')],_0x21ab22['query']);_0x2000c0[_0x6516('0x43')]=_[_0x6516('0x42')](_0x21ab22[_0x6516('0x3e')],qs[_0x6516('0x44')](_0x15ceaf['query'][_0x6516('0x44')]));_0x2000c0[_0x6516('0x43')]=_0x2000c0[_0x6516('0x43')][_0x6516('0x45')]?_0x2000c0['attributes']:_0x21ab22[_0x6516('0x3e')];if(!_0x15ceaf[_0x6516('0x3f')][_0x6516('0x46')](_0x6516('0x47'))){_0x2000c0[_0x6516('0x48')]=qs['limit'](_0x15ceaf['query']['limit']);_0x2000c0[_0x6516('0x2e')]=qs[_0x6516('0x2e')](_0x15ceaf['query']['offset']);}_0x2000c0[_0x6516('0x49')]=qs[_0x6516('0x4a')](_0x15ceaf[_0x6516('0x3f')][_0x6516('0x4a')]);_0x2000c0[_0x6516('0x4c')]=qs[_0x6516('0x41')](_[_0x6516('0x6c')](_0x15ceaf['query'],_0x21ab22[_0x6516('0x41')]));_0x2000c0[_0x6516('0x4c')][_0x6516('0x65')]=_0x4db50e['id'];if(_0x15ceaf[_0x6516('0x3f')]['filter']){_0x2000c0['where']=_[_0x6516('0x4d')](_0x2000c0[_0x6516('0x4c')],{'$or':_[_0x6516('0x3a')](_0x2000c0[_0x6516('0x43')],function(_0x3b1011){var _0x5510b8={};_0x5510b8[_0x3b1011]={'$like':'%'+_0x15ceaf[_0x6516('0x3f')]['filter']+'%'};return _0x5510b8;})});}_0x2000c0=_[_0x6516('0x4d')]({},_0x2000c0,_0x15ceaf['options']);return db[_0x6516('0x70')][_0x6516('0x2d')]({'where':_0x2000c0['where']})['then'](function(_0x40f684){_0x41d268[_0x6516('0x2d')]=_0x40f684;if(_0x15ceaf[_0x6516('0x3f')][_0x6516('0x50')]){_0x2000c0['include']=[{'model':db[_0x6516('0x73')],'as':_0x6516('0x74'),'required':![]},{'model':db[_0x6516('0x75')],'as':_0x6516('0x76'),'attributes':['name',_0x6516('0x77'),_0x6516('0x78')],'required':![]},{'model':db['Tag'],'as':_0x6516('0x79'),'attributes':['id',_0x6516('0x38'),_0x6516('0x7a')],'where':_0x15ceaf[_0x6516('0x3f')][_0x6516('0x7b')]?{'id':_0x15ceaf[_0x6516('0x3f')][_0x6516('0x7b')]}:undefined,'required':_0x15ceaf[_0x6516('0x3f')]['tag']?!![]:![]}];}return db[_0x6516('0x70')]['findAll'](_0x2000c0);})[_0x6516('0x34')](function(_0x1d4ca2){_0x41d268[_0x6516('0x66')]=_0x1d4ca2;return _0x41d268;});}})[_0x6516('0x34')](respondWithFilteredResult(_0x57f716,_0x2000c0))[_0x6516('0x28')](handleError(_0x57f716,null));};exports[_0x6516('0x7c')]=function(_0x4f5e03,_0x32ed61){var _0x3f4e05=_0x4f5e03['params']['id'];var _0x5243b2=_0x4f5e03[_0x6516('0x58')];var _0x227dcc=0xc8;var _0x229b97=null;return db['sequelize']['transaction']({'isolationLevel':db[_0x6516('0x7d')]['Transaction'][_0x6516('0x7e')][_0x6516('0x7f')]},function(_0x3b44e1){return db['FaxAccount']['findOne']({'where':{'id':_0x3f4e05},'transaction':_0x3b44e1})[_0x6516('0x34')](function(_0x7bc557){if(_0x7bc557){return db['FaxApplication'][_0x6516('0x36')]({'where':{'FaxAccountId':_0x3f4e05},'transaction':_0x3b44e1})[_0x6516('0x34')](function(){var _0x44db29=_[_0x6516('0x3a')](_0x5243b2,function(_0x230fa4){_0x230fa4[_0x6516('0x65')]=_0x3f4e05;return _0x230fa4;});return db[_0x6516('0x80')][_0x6516('0x81')](_0x44db29,{'transaction':_0x3b44e1});});}else{_0x227dcc=0x194;_0x229b97=[];}});})['then'](function(){if(_0x227dcc!==0x194){return db[_0x6516('0x80')][_0x6516('0x82')]({'where':{'FaxAccountId':_0x3f4e05},'order':_0x6516('0x83')})[_0x6516('0x34')](function(_0x1bab1b){_0x229b97=_0x1bab1b;});}})[_0x6516('0x28')](function(_0x2d1491){_0x227dcc=0x1f4;logger[_0x6516('0x25')](_0x2d1491[_0x6516('0x37')]);if(_0x2d1491[_0x6516('0x38')]){delete _0x2d1491[_0x6516('0x38')];}_0x229b97=_0x2d1491;})[_0x6516('0x84')](function(){if(_0x229b97===null){_0x32ed61[_0x6516('0x85')](_0x227dcc);}else{if(_0x227dcc===0x1f4){_0x32ed61[_0x6516('0x29')](_0x227dcc)['send'](_0x229b97);}else{_0x32ed61[_0x6516('0x29')](_0x227dcc)[_0x6516('0x2b')](_0x229b97);}}});};exports[_0x6516('0x86')]=function(_0x35bb4a,_0x34ffcf,_0x2aaa03){var _0x4dae41={};var _0x3c221c={};var _0x286040;var _0x46920c;return db['FaxAccount'][_0x6516('0x6b')]({'where':{'id':_0x35bb4a['params']['id']}})[_0x6516('0x34')](handleEntityNotFound(_0x34ffcf,null))[_0x6516('0x34')](function(_0x49ff93){if(_0x49ff93){_0x286040=_0x49ff93;_0x3c221c[_0x6516('0x3e')]=_['keys'](db['FaxApplication'][_0x6516('0x3c')]);_0x3c221c[_0x6516('0x3f')]=_['keys'](_0x35bb4a[_0x6516('0x3f')]);_0x3c221c[_0x6516('0x41')]=_['intersection'](_0x3c221c[_0x6516('0x3e')],_0x3c221c[_0x6516('0x3f')]);_0x4dae41[_0x6516('0x43')]=_[_0x6516('0x42')](_0x3c221c[_0x6516('0x3e')],qs[_0x6516('0x44')](_0x35bb4a[_0x6516('0x3f')][_0x6516('0x44')]));_0x4dae41[_0x6516('0x43')]=_0x4dae41['attributes'][_0x6516('0x45')]?_0x4dae41[_0x6516('0x43')]:_0x3c221c[_0x6516('0x3e')];_0x4dae41[_0x6516('0x49')]=qs['sort'](_0x35bb4a[_0x6516('0x3f')]['sort']);_0x4dae41['where']=qs[_0x6516('0x41')](_[_0x6516('0x6c')](_0x35bb4a[_0x6516('0x3f')],_0x3c221c[_0x6516('0x41')]));if(_0x35bb4a[_0x6516('0x3f')][_0x6516('0x4b')]){_0x4dae41[_0x6516('0x4c')]=_[_0x6516('0x4d')](_0x4dae41[_0x6516('0x4c')],{'$or':_['map'](_0x4dae41[_0x6516('0x43')],function(_0x244a97){var _0x192d19={};_0x192d19[_0x244a97]={'$like':'%'+_0x35bb4a['query']['filter']+'%'};return _0x192d19;})});}_0x4dae41=_[_0x6516('0x4d')]({},_0x4dae41,_0x35bb4a['options']);return _0x286040[_0x6516('0x86')](_0x4dae41);}})[_0x6516('0x34')](function(_0x52483f){if(_0x52483f){_0x46920c=_0x52483f[_0x6516('0x45')];if(!_0x35bb4a[_0x6516('0x3f')]['hasOwnProperty']('nolimit')){_0x4dae41[_0x6516('0x48')]=qs[_0x6516('0x48')](_0x35bb4a[_0x6516('0x3f')]['limit']);_0x4dae41[_0x6516('0x2e')]=qs['offset'](_0x35bb4a[_0x6516('0x3f')][_0x6516('0x2e')]);}return _0x286040['getApplications'](_0x4dae41);}})[_0x6516('0x34')](function(_0x183d1b){if(_0x183d1b){return _0x183d1b?{'count':_0x46920c,'rows':_0x183d1b}:null;}})[_0x6516('0x34')](respondWithResult(_0x34ffcf,null))[_0x6516('0x28')](handleError(_0x34ffcf,null));};function Extension(_0x413b45,_0x3c26d6,_0x2fc3d4,_0x28f0e5){this[_0x6516('0x87')]='from-voip-provider';this[_0x6516('0x88')]=_0x413b45[_0x6516('0x89')];this['app']=_0x28f0e5;this[_0x6516('0x4e')]=_0x6516('0x8a');this[_0x6516('0x8b')]=_0x6516('0x8c');this[_0x6516('0x65')]=_0x413b45['id'];this['priority']=_0x3c26d6;this[_0x6516('0x8d')]=_0x2fc3d4;}function createExtensionsReciveFax(_0xc15f86){var _0x140224=0x1;var _0x3a2772=[];_0x3a2772[_0x6516('0x8e')](new Extension(_0xc15f86,_0x140224,'',_0x6516('0x8f')));_0x140224+=0x1;_0x3a2772[_0x6516('0x8e')](new Extension(_0xc15f86,_0x140224,_0x6516('0x90'),_0x6516('0x91')));_0x140224+=0x1;for(var _0x195fd1 in _0xc15f86){if(_0xc15f86['hasOwnProperty'](_0x195fd1)&&(_0x195fd1==='ecm'||_0x195fd1==='localstationid'||_0x195fd1===_0x6516('0x92')||_0x195fd1===_0x6516('0x93')||_0x195fd1===_0x6516('0x94')||_0x195fd1===_0x6516('0x95')||_0x195fd1===_0x6516('0x96')||_0x195fd1==='modem'||_0x195fd1===_0x6516('0x97'))){_0x3a2772[_0x6516('0x8e')](new Extension(_0xc15f86,_0x140224,_0x6516('0x98')+_0x195fd1+')='+_0xc15f86[_0x195fd1],_0x6516('0x91')));_0x140224+=0x1;}}_0x3a2772[_0x6516('0x8e')](new Extension(_0xc15f86,_0x140224,'6','Wait'));_0x140224+=0x1;_0x3a2772[_0x6516('0x8e')](new Extension(_0xc15f86,_0x140224,_0x6516('0x99'),'ReceiveFax'));_0x140224=0x0;return _0x3a2772;}exports['addAccountApplications']=function(_0x43e405,_0x227265,_0x59172e){var _0x2c5be0;return db[_0x6516('0x7d')]['transaction'](function(_0x26fb95){return db[_0x6516('0x3b')]['create'](_0x43e405['body'],{'transaction':_0x26fb95})[_0x6516('0x34')](function(_0x55df07){_0x2c5be0=_0x55df07[_0x6516('0x35')]({'plain':!![]});return db[_0x6516('0x9a')][_0x6516('0x81')](createExtensionsReciveFax(_0x2c5be0),{'transaction':_0x26fb95});});})[_0x6516('0x34')](function(){return _0x2c5be0;})['then'](respondWithResult(_0x227265,null))['catch'](handleError(_0x227265,null));};exports[_0x6516('0x9b')]=function(_0x215cd3,_0x37321d,_0x5e6461){var _0x518e9e;return db[_0x6516('0x7d')][_0x6516('0x9c')](function(_0x52e7eb){return db['FaxAccount']['update'](_0x215cd3[_0x6516('0x58')],{'where':{'id':_0x215cd3[_0x6516('0x58')]['id']},'transaction':_0x52e7eb})[_0x6516('0x34')](function(_0xa79240){return db[_0x6516('0x9a')][_0x6516('0x36')]({'where':{'FaxAccountId':_0x215cd3[_0x6516('0x58')]['id']},'transaction':_0x52e7eb})[_0x6516('0x34')](function(_0x5e8f25){return db[_0x6516('0x9a')][_0x6516('0x81')](createExtensionsReciveFax(_[_0x6516('0x71')](_0x215cd3[_0x6516('0x58')],[_0x6516('0x9d'),_0x6516('0x3d'),'createdAt',_0x6516('0x9e'),'TrunkId',_0x6516('0x9f')])),{'transaction':_0x52e7eb});});});})[_0x6516('0x34')](function(){return db[_0x6516('0x3b')]['findById'](_0x215cd3[_0x6516('0x58')]['id']);})[_0x6516('0x34')](respondWithResult(_0x37321d,null))[_0x6516('0x28')](handleError(_0x37321d,null));};exports[_0x6516('0xa0')]=function(_0x38d24f,_0x54e6ca,_0x296002){var _0x38975b={'raw':!![],'where':{}};var _0x4911f8={};var _0x436d5f={'count':0x0,'rows':[]};return db['FaxAccount'][_0x6516('0x6b')]({'where':{'id':_0x38d24f[_0x6516('0x54')]['id']}})['then'](handleEntityNotFound(_0x54e6ca,null))[_0x6516('0x34')](function(_0x1f2cdc){if(_0x1f2cdc){_0x4911f8[_0x6516('0x3e')]=_[_0x6516('0x40')](db[_0x6516('0xa1')][_0x6516('0x3c')]);_0x4911f8['query']=_[_0x6516('0x40')](_0x38d24f[_0x6516('0x3f')]);_0x4911f8[_0x6516('0x41')]=_['intersection'](_0x4911f8[_0x6516('0x3e')],_0x4911f8['query']);_0x38975b['attributes']=_[_0x6516('0x42')](_0x4911f8['model'],qs[_0x6516('0x44')](_0x38d24f[_0x6516('0x3f')][_0x6516('0x44')]));_0x38975b[_0x6516('0x43')]=_0x38975b[_0x6516('0x43')][_0x6516('0x45')]?_0x38975b['attributes']:_0x4911f8[_0x6516('0x3e')];if(!_0x38d24f[_0x6516('0x3f')][_0x6516('0x46')]('nolimit')){_0x38975b[_0x6516('0x48')]=qs[_0x6516('0x48')](_0x38d24f[_0x6516('0x3f')]['limit']);_0x38975b['offset']=qs[_0x6516('0x2e')](_0x38d24f[_0x6516('0x3f')][_0x6516('0x2e')]);}_0x38975b[_0x6516('0x49')]=qs[_0x6516('0x4a')](_0x38d24f[_0x6516('0x3f')][_0x6516('0x4a')]);_0x38975b[_0x6516('0x4c')]=qs[_0x6516('0x41')](_['pick'](_0x38d24f['query'],_0x4911f8[_0x6516('0x41')]));_0x38975b[_0x6516('0x4c')]['FaxAccountId']=_0x1f2cdc['id'];if(_0x38d24f[_0x6516('0x3f')][_0x6516('0x4b')]){_0x38975b[_0x6516('0x4c')]=_[_0x6516('0x4d')](_0x38975b[_0x6516('0x4c')],{'$or':_[_0x6516('0x3a')](_0x38975b[_0x6516('0x43')],function(_0xa31c38){var _0x1ef1aa={};_0x1ef1aa[_0xa31c38]={'$like':'%'+_0x38d24f[_0x6516('0x3f')][_0x6516('0x4b')]+'%'};return _0x1ef1aa;})});}if(_0x38d24f['query'][_0x6516('0xa2')]){var _0x2d6a18=_0x38d24f[_0x6516('0x3f')][_0x6516('0xa2')][_0x6516('0xa3')](',');var _0x52f85a={};_0x52f85a[_0x2d6a18[0x0]]={'$gte':moment(_0x2d6a18[0x1])[_0x6516('0xa4')](_0x6516('0xa5'))};_0x38975b[_0x6516('0x4c')]=_[_0x6516('0x4d')](_0x38975b['where'],_0x52f85a);}_0x38975b=_[_0x6516('0x4d')]({},_0x38975b,_0x38d24f['options']);return db[_0x6516('0xa1')][_0x6516('0x2d')]({'where':_0x38975b['where']})[_0x6516('0x34')](function(_0x46afb3){_0x436d5f[_0x6516('0x2d')]=_0x46afb3;if(_0x38d24f[_0x6516('0x3f')][_0x6516('0x50')]){_0x38975b[_0x6516('0x51')]=[{'all':!![]}];}return db['FaxMessage'][_0x6516('0x52')](_0x38975b);})[_0x6516('0x34')](function(_0x5d6dcf){_0x436d5f[_0x6516('0x66')]=_0x5d6dcf;return _0x436d5f;});}})[_0x6516('0x34')](respondWithFilteredResult(_0x54e6ca,_0x38975b))[_0x6516('0x28')](handleError(_0x54e6ca,null));};exports[_0x6516('0xa6')]=function(_0x1b77f3,_0x35ffaa,_0x536ca8){var _0x125361,_0x5a0a43={},_0xf48fb0;if(_0x1b77f3['body']['to']){_0xf48fb0=_0x1b77f3[_0x6516('0x58')]['to'][0x0];}return db['FaxAccount'][_0x6516('0x5d')]({'where':{'id':_0x1b77f3[_0x6516('0x54')]['id']},'include':[{'model':db[_0x6516('0xa7')],'as':_0x6516('0xa8'),'include':[{'model':db['CmContact'],'as':_0x6516('0xa9'),'where':{'fax':_0xf48fb0},'limit':0x1,'order':[[_0x6516('0x9e'),_0x6516('0xaa')]]}]}]})['then'](handleEntityNotFound(_0x35ffaa,null))[_0x6516('0x34')](function(_0x233e8a){_0x125361=_0x233e8a;if(_0x1b77f3[_0x6516('0x58')][_0x6516('0xab')]&&_0x1b77f3[_0x6516('0x58')][_0x6516('0xab')][_0x6516('0x45')]){for(var _0x1f9879=0x0;_0x1f9879<_0x1b77f3[_0x6516('0x58')][_0x6516('0xab')]['length'];_0x1f9879+=0x1){_0x1b77f3['body'][_0x6516('0xab')][_0x1f9879]={'filename':_0x1b77f3[_0x6516('0x58')][_0x6516('0xab')][_0x1f9879][_0x6516('0x38')],'id':_0x1b77f3[_0x6516('0x58')][_0x6516('0xab')][_0x1f9879]['id'],'path':path[_0x6516('0xac')](config[_0x6516('0xad')],'server/files/attachments',_0x1b77f3[_0x6516('0x58')][_0x6516('0xab')][_0x1f9879]['basename'])};}}return respondWithRpcPromise('CheckAfterSend',_0x6516('0xae'),{'FaxAccountId':_[_0x6516('0xaf')](_0x1b77f3[_0x6516('0x54')]['id'])?undefined:_0x1b77f3['params']['id'],'path':_['isNil'](_0x1b77f3[_0x6516('0x58')]['attachments'][0x0][_0x6516('0xb0')])?undefined:_0x1b77f3['body'][_0x6516('0xab')][0x0]['path'],'fax':_[_0x6516('0xaf')](_0x1b77f3[_0x6516('0x58')]['to'][0x0])?undefined:_0x1b77f3[_0x6516('0x58')]['to'][0x0]},client9002);})[_0x6516('0x34')](function(){if(_0x125361){if(_['isNil'](_0x1b77f3['body'][_0x6516('0xb1')])){_0x1b77f3[_0x6516('0x58')][_0x6516('0xb1')]=util[_0x6516('0xa4')](_0x6516('0xb2'),_0x125361[_0x6516('0x38')],_0x125361[_0x6516('0xb3')]);}if(_0x125361['List']){if(_0x125361[_0x6516('0xa8')][_0x6516('0xa9')]['length']){return _0x125361[_0x6516('0xa8')][_0x6516('0xa9')][0x0];}else{return db[_0x6516('0x73')]['create'](_[_0x6516('0xb4')](_0x1b77f3['body'],{'firstName':_0x1b77f3[_0x6516('0x58')]['to'][0x0],'phone':_0x1b77f3[_0x6516('0x58')]['to'][0x0],'fax':_0x1b77f3[_0x6516('0x58')]['to'][0x0],'ListId':_0x125361[_0x6516('0x9f')]}));}}else{throw new Error('List\x20not\x20found');}}else{throw new Error(_0x6516('0xb5'));}})[_0x6516('0x34')](function(_0x3afd93){if(_0x3afd93){return db[_0x6516('0x70')][_0x6516('0x5d')]({'where':{'ContactId':_0x3afd93['id'],'closed':![],'FaxAccountId':_0x125361['id']}})[_0x6516('0x34')](function(_0xb6b1cf){if(_0xb6b1cf){return[_0xb6b1cf,![]];}return db[_0x6516('0x70')][_0x6516('0x57')]({'UserId':_0x1b77f3['user']['id'],'ContactId':_0x3afd93['id'],'FaxAccountId':_0x125361['id'],'fax':_0x1b77f3[_0x6516('0x58')]['to'][0x0],'firstMsgDirection':_0x6516('0xb6'),'Messages':[_[_0x6516('0x4d')](_0x1b77f3[_0x6516('0x58')],{'read':![],'body':_0x1b77f3[_0x6516('0x58')][_0x6516('0xab')][0x0][_0x6516('0xb7')],'FaxAccountId':_0x125361['id'],'UserId':_0x1b77f3[_0x6516('0x59')]['id'],'ContactId':_0x3afd93['id'],'AttachmentId':_0x1b77f3[_0x6516('0x58')][_0x6516('0xab')][0x0]['id']})]},{'include':[{'model':db[_0x6516('0xa1')],'as':'Messages'}]})['then'](function(_0x37a8fb){return[_0x37a8fb,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})[_0x6516('0xb8')](function(_0xa3693e,_0x333be3){if(_0x333be3){return _0xa3693e;}return db['FaxMessage']['create']({'direction':'out','read':![],'body':_0x1b77f3['body'][_0x6516('0xab')][0x0]['filename'],'FaxAccountId':_0x125361['id'],'FaxInteractionId':_0xa3693e['id'],'UserId':_0x1b77f3[_0x6516('0x59')]['id'],'ContactId':_0xa3693e[_0x6516('0xb9')],'AttachmentId':_0x1b77f3[_0x6516('0x58')][_0x6516('0xab')][0x0]['id']})[_0x6516('0x34')](function(_0x417037){_0xa3693e[_0x6516('0xba')][_0x6516('0xbb')]=[];_0xa3693e[_0x6516('0xba')]['Messages']['push'](_0x417037['dataValues']);return _0xa3693e;});})[_0x6516('0x34')](function(_0x1d479d){respondWithRpcPromise('SendFax',_0x6516('0xbc'),{'FaxAccountId':_[_0x6516('0xaf')](_0x1b77f3[_0x6516('0x54')]['id'])?undefined:_0x1b77f3['params']['id'],'path':_[_0x6516('0xaf')](_0x1b77f3[_0x6516('0x58')]['attachments'][0x0][_0x6516('0xb0')])?undefined:_0x1b77f3[_0x6516('0x58')][_0x6516('0xab')][0x0][_0x6516('0xb0')],'fax':_[_0x6516('0xaf')](_0x1b77f3[_0x6516('0x58')]['to'][0x0])?undefined:_0x1b77f3[_0x6516('0x58')]['to'][0x0],'AttachmentId':_0x1b77f3[_0x6516('0x58')][_0x6516('0xab')][0x0]['id']},client9002)[_0x6516('0x34')](function(_0x412a14){logger['info'](_0x6516('0xbd'),_0x412a14);})[_0x6516('0x28')](function(_0x4e6ec8){logger[_0x6516('0x1f')]('SendFaxRpc,\x20%s',_0x4e6ec8);});return _0x1d479d;})['then'](respondWithResult(_0x35ffaa,null))[_0x6516('0x28')](handleError(_0x35ffaa,null));};exports[_0x6516('0xbe')]=function(_0x3dc7fa,_0x5a7ad7,_0x2dfcfa){return db['FaxAccount'][_0x6516('0x5d')]({'where':{'id':_0x3dc7fa[_0x6516('0x54')]['id']}})[_0x6516('0x34')](handleEntityNotFound(_0x5a7ad7,null))[_0x6516('0x34')](function(_0x3f57ce){if(_0x3f57ce){return _0x3f57ce[_0x6516('0xbe')](_0x3dc7fa[_0x6516('0x58')][_0x6516('0x6e')],_[_0x6516('0x71')](_0x3dc7fa[_0x6516('0x58')],[_0x6516('0x6e'),'id'])||{})[_0x6516('0xb8')](function(_0x4fc2bc){for(var _0x22b79d=0x0;_0x22b79d<_0x3dc7fa[_0x6516('0x58')][_0x6516('0x6e')][_0x6516('0x45')];_0x22b79d+=0x1){socket[_0x6516('0xbf')](_0x6516('0xc0'),{'UserId':Number(_0x3dc7fa['body'][_0x6516('0x6e')][_0x22b79d]),'FaxAccountId':Number(_0x3dc7fa[_0x6516('0x54')]['id'])});}return _0x4fc2bc;});}})[_0x6516('0x34')](respondWithResult(_0x5a7ad7,null))['catch'](handleError(_0x5a7ad7,null));};exports[_0x6516('0xc1')]=function(_0x54ed02,_0x160c7d,_0x4394b5){return db[_0x6516('0x3b')]['find']({'where':{'id':_0x54ed02[_0x6516('0x54')]['id']}})[_0x6516('0x34')](handleEntityNotFound(_0x160c7d,null))[_0x6516('0x34')](function(_0x2cb0a8){if(_0x2cb0a8){return _0x2cb0a8[_0x6516('0xc1')](_0x54ed02[_0x6516('0x3f')]['ids'])[_0x6516('0x34')](function(){if(_[_0x6516('0xc2')](_0x54ed02['query'][_0x6516('0x6e')])){for(var _0x1d7987=0x0;_0x1d7987<_0x54ed02[_0x6516('0x3f')][_0x6516('0x6e')][_0x6516('0x45')];_0x1d7987+=0x1){socket['emit'](_0x6516('0xc3'),{'UserId':Number(_0x54ed02[_0x6516('0x3f')][_0x6516('0x6e')][_0x1d7987]),'FaxAccountId':Number(_0x54ed02[_0x6516('0x54')]['id'])});}}else{socket[_0x6516('0xbf')](_0x6516('0xc3'),{'UserId':Number(_0x54ed02[_0x6516('0x3f')][_0x6516('0x6e')]),'FaxAccountId':Number(_0x54ed02[_0x6516('0x54')]['id'])});}});}})[_0x6516('0x34')](respondWithStatusCode(_0x160c7d,null))[_0x6516('0x28')](handleError(_0x160c7d,null));};exports[_0x6516('0xc4')]=function(_0x3e034c,_0x3b802f,_0x1e5737){var _0x31c3e0={};var _0x2f3c60={};var _0x14c9c5;var _0x1e03f1;return db[_0x6516('0x3b')][_0x6516('0x6b')]({'where':{'id':_0x3e034c['params']['id']}})[_0x6516('0x34')](handleEntityNotFound(_0x3b802f,null))[_0x6516('0x34')](function(_0x3b6d15){if(_0x3b6d15){_0x14c9c5=_0x3b6d15;_0x2f3c60[_0x6516('0x3e')]=_['keys'](db['User'][_0x6516('0x3c')]);_0x2f3c60[_0x6516('0x3f')]=_[_0x6516('0x40')](_0x3e034c[_0x6516('0x3f')]);_0x2f3c60[_0x6516('0x41')]=_['intersection'](_0x2f3c60[_0x6516('0x3e')],_0x2f3c60['query']);_0x31c3e0[_0x6516('0x43')]=_[_0x6516('0x42')](_0x2f3c60[_0x6516('0x3e')],qs[_0x6516('0x44')](_0x3e034c['query'][_0x6516('0x44')]));_0x31c3e0['attributes']=_0x31c3e0[_0x6516('0x43')][_0x6516('0x45')]?_0x31c3e0[_0x6516('0x43')]:_0x2f3c60[_0x6516('0x3e')];_0x31c3e0[_0x6516('0x49')]=qs[_0x6516('0x4a')](_0x3e034c[_0x6516('0x3f')]['sort']);_0x31c3e0[_0x6516('0x4c')]=qs[_0x6516('0x41')](_[_0x6516('0x6c')](_0x3e034c[_0x6516('0x3f')],_0x2f3c60[_0x6516('0x41')]));if(_0x3e034c[_0x6516('0x3f')][_0x6516('0x4b')]){_0x31c3e0[_0x6516('0x4c')]=_[_0x6516('0x4d')](_0x31c3e0[_0x6516('0x4c')],{'$or':_[_0x6516('0x3a')](_0x31c3e0[_0x6516('0x43')],function(_0xe3d0ba){var _0xd2d7cd={};_0xd2d7cd[_0xe3d0ba]={'$like':'%'+_0x3e034c[_0x6516('0x3f')][_0x6516('0x4b')]+'%'};return _0xd2d7cd;})});}_0x31c3e0=_[_0x6516('0x4d')]({},_0x31c3e0,_0x3e034c[_0x6516('0x4f')]);return _0x14c9c5[_0x6516('0xc4')](_0x31c3e0);}})[_0x6516('0x34')](function(_0x1b4a40){if(_0x1b4a40){_0x1e03f1=_0x1b4a40[_0x6516('0x45')];if(!_0x3e034c[_0x6516('0x3f')][_0x6516('0x46')](_0x6516('0x47'))){_0x31c3e0[_0x6516('0x48')]=qs[_0x6516('0x48')](_0x3e034c['query'][_0x6516('0x48')]);_0x31c3e0[_0x6516('0x2e')]=qs['offset'](_0x3e034c[_0x6516('0x3f')][_0x6516('0x2e')]);}return _0x14c9c5[_0x6516('0xc4')](_0x31c3e0);}})[_0x6516('0x34')](function(_0x1fe2c8){if(_0x1fe2c8){return _0x1fe2c8?{'count':_0x1e03f1,'rows':_0x1fe2c8}:null;}})['then'](respondWithResult(_0x3b802f,null))[_0x6516('0x28')](handleError(_0x3b802f,null));};
\ No newline at end of file
+var _0x778f=['intersection','attributes','fields','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','include','params','length','includeAll','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','autoAssociation','body','describe','addDisposition','Disposition','findOne','FaxAccountId','findAll','ids','addAnswer','CannedAnswer','hasOwnProperty','removeAnswers','addInteraction','omit','FaxInteraction','CmContact','Contact','User','Owner','fullname','internal','Tag','color','tag','rows','addApplications','transaction','sequelize','Transaction','ISOLATION_LEVELS','READ_COMMITTED','FaxApplication','bulkCreate','findAndCountAll','finally','getApplications','from-voip-provider','exten','localstationid','system','description','Fax\x20Extension','priority','push','Answer','Set','gateway','headerinfo','maxrate','minrate','modem','FAXOPT(','/var/opt/motion2/server/files/attachments/fax-${CALLERID(num)}-${CUT(UNIQUEID,.,1)}-${CUT(UNIQUEID,.,2)}-${STRFTIME(,,%C%y%m%d%H%M%S)}-rx.tif,d','ReceiveFax','VoiceExtension','updateAccountApplications','tech','createdAt','updatedAt','TrunkId','ListId','FaxMessage','$gte','split','format','YYYY-MM-DD\x20HH:mm:ss','CmList','List','Contacts','DESC','attachments','join','root','basename','CheckAfterSend','isNil','from','\x22%s\x22\x20<%s>','fax','defaults','out','filename','Messages','Contact\x20not\x20found','spread','ContactId','dataValues','SendFax','SendFaxRpc,\x20%s','addAgents','emit','userFaxAccount:save','removeAgents','userFaxAccount:remove','getAgents','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','localhost','socket.io-emitter','redis','register','client','http','request','then','info','FaxAccount,\x20%s,\x20%s','FaxAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','end','json','undefined','count','offset','limit','set','apply','save','update','destroy','get','FaxAccounts','UserProfileResource','status','sendStatus','stack','name','send','index','Pause','mandatoryDispositionPause','map','FaxAccount','rawAttributes','fieldName','type','key','model','query','keys','filters'];(function(_0x40a045,_0x516f0e){var _0x1a687c=function(_0x48c9fe){while(--_0x48c9fe){_0x40a045['push'](_0x40a045['shift']());}};_0x1a687c(++_0x516f0e);}(_0x778f,0x136));var _0xf778=function(_0x178e48,_0x3c9509){_0x178e48=_0x178e48-0x0;var _0x440d7e=_0x778f[_0x178e48];return _0x440d7e;};'use strict';var emlformat=require(_0xf778('0x0'));var rimraf=require(_0xf778('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xf778('0x2'));var rp=require(_0xf778('0x3'));var moment=require(_0xf778('0x4'));var BPromise=require(_0xf778('0x5'));var Mustache=require(_0xf778('0x6'));var util=require('util');var path=require(_0xf778('0x7'));var sox=require(_0xf778('0x8'));var csv=require(_0xf778('0x9'));var ejs=require(_0xf778('0xa'));var fs=require('fs');var fs_extra=require(_0xf778('0xb'));var _=require('lodash');var squel=require(_0xf778('0xc'));var crypto=require(_0xf778('0xd'));var jsforce=require(_0xf778('0xe'));var deskjs=require(_0xf778('0xf'));var toCsv=require(_0xf778('0x9'));var querystring=require('querystring');var Papa=require(_0xf778('0x10'));var Redis=require(_0xf778('0x11'));var authService=require(_0xf778('0x12'));var qs=require(_0xf778('0x13'));var as=require(_0xf778('0x14'));var hardwareService=require(_0xf778('0x15'));var logger=require('../../config/logger')(_0xf778('0x16'));var utils=require('../../config/utils');var config=require(_0xf778('0x17'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config['redis']=_['defaults'](config['redis'],{'host':_0xf778('0x18'),'port':0x18eb});var socket=require(_0xf778('0x19'))(new Redis(config[_0xf778('0x1a')]));require('./faxAccount.socket')[_0xf778('0x1b')](socket);var jayson=require('jayson/promise');var client=jayson[_0xf778('0x1c')][_0xf778('0x1d')]({'port':0x232c});var client9002=jayson[_0xf778('0x1c')][_0xf778('0x1d')]({'port':0x232a});function respondWithRpcPromise(_0x1b259f,_0x5adeb8,_0x258b99,_0x4b9ad7){return new BPromise(function(_0x4aab98,_0x13558a){var _0x4ceb3f=_0x4b9ad7||client;return _0x4ceb3f[_0xf778('0x1e')](_0x1b259f,_0x258b99)[_0xf778('0x1f')](function(_0x540341){logger[_0xf778('0x20')](_0xf778('0x21'),_0x5adeb8,'request\x20sent');logger['debug'](_0xf778('0x22'),_0x5adeb8,_0xf778('0x23'),JSON[_0xf778('0x24')](_0x540341));if(_0x540341[_0xf778('0x25')]){if(_0x540341[_0xf778('0x25')][_0xf778('0x26')]===0x1f4){logger['error'](_0xf778('0x21'),_0x5adeb8,_0x540341[_0xf778('0x25')][_0xf778('0x27')]);return _0x13558a(_0x540341[_0xf778('0x25')]['message']);}logger[_0xf778('0x25')](_0xf778('0x21'),_0x5adeb8,_0x540341[_0xf778('0x25')][_0xf778('0x27')]);return _0x4aab98(_0x540341[_0xf778('0x25')][_0xf778('0x27')]);}else{logger[_0xf778('0x20')](_0xf778('0x21'),_0x5adeb8,_0xf778('0x23'));_0x4aab98(_0x540341[_0xf778('0x28')][_0xf778('0x27')]);}})[_0xf778('0x29')](function(_0x474b3e){logger[_0xf778('0x25')]('FaxAccount,\x20%s,\x20%s',_0x5adeb8,_0x474b3e);_0x13558a(_0x474b3e);});});}function respondWithStatusCode(_0x2dcbe5,_0x4c45db){_0x4c45db=_0x4c45db||0xcc;return function(_0xd5f744){if(_0xd5f744){return _0x2dcbe5['sendStatus'](_0x4c45db);}return _0x2dcbe5['status'](_0x4c45db)[_0xf778('0x2a')]();};}function respondWithResult(_0xb338fd,_0x3598f5){_0x3598f5=_0x3598f5||0xc8;return function(_0xe036c3){if(_0xe036c3){return _0xb338fd['status'](_0x3598f5)[_0xf778('0x2b')](_0xe036c3);}};}function respondWithFilteredResult(_0x9bed0b,_0x8a8190){return function(_0x1a175c){if(_0x1a175c){var _0x3dac4b=typeof _0x8a8190['offset']===_0xf778('0x2c')&&typeof _0x8a8190['limit']===_0xf778('0x2c');var _0x59d5a5=_0x1a175c[_0xf778('0x2d')];var _0x25407f=_0x3dac4b?0x0:_0x8a8190['offset'];var _0x32e781=_0x3dac4b?_0x1a175c[_0xf778('0x2d')]:_0x8a8190[_0xf778('0x2e')]+_0x8a8190[_0xf778('0x2f')];var _0x82667;if(_0x32e781>=_0x59d5a5){_0x32e781=_0x59d5a5;_0x82667=0xc8;}else{_0x82667=0xce;}_0x9bed0b['status'](_0x82667);return _0x9bed0b[_0xf778('0x30')]('Content-Range',_0x25407f+'-'+_0x32e781+'/'+_0x59d5a5)[_0xf778('0x2b')](_0x1a175c);}return null;};}function patchUpdates(_0x31e1e5){return function(_0xe7adcb){try{jsonpatch[_0xf778('0x31')](_0xe7adcb,_0x31e1e5,!![]);}catch(_0x3dd323){return BPromise['reject'](_0x3dd323);}return _0xe7adcb[_0xf778('0x32')]();};}function saveUpdates(_0x16e4ee,_0x283009){return function(_0x24212d){if(_0x24212d){return _0x24212d[_0xf778('0x33')](_0x16e4ee)['then'](function(_0x819e6a){return _0x819e6a;});}return null;};}function removeEntity(_0x395cc7,_0x592d9d){return function(_0x2a43dd){if(_0x2a43dd){return _0x2a43dd[_0xf778('0x34')]()[_0xf778('0x1f')](function(){var _0x1a41d0=_0x2a43dd[_0xf778('0x35')]({'plain':!![]});var _0xe71b3e=_0xf778('0x36');return db[_0xf778('0x37')][_0xf778('0x34')]({'where':{'type':_0xe71b3e,'resourceId':_0x1a41d0['id']}})['then'](function(){return _0x2a43dd;});})[_0xf778('0x1f')](function(){_0x395cc7[_0xf778('0x38')](0xcc)[_0xf778('0x2a')]();});}};}function handleEntityNotFound(_0x14ff4d,_0x34a95f){return function(_0x257d37){if(!_0x257d37){_0x14ff4d[_0xf778('0x39')](0x194);}return _0x257d37;};}function handleError(_0x35b103,_0x34f6f8){_0x34f6f8=_0x34f6f8||0x1f4;return function(_0x232afa){logger[_0xf778('0x25')](_0x232afa[_0xf778('0x3a')]);if(_0x232afa['name']){delete _0x232afa[_0xf778('0x3b')];}_0x35b103['status'](_0x34f6f8)[_0xf778('0x3c')](_0x232afa);};}exports[_0xf778('0x3d')]=function(_0x25069d,_0x50fc3b){var _0x53a8a6={'include':[{'model':db[_0xf778('0x3e')],'as':_0xf778('0x3f')}]},_0x9381fe={},_0x5b11eb={'count':0x0,'rows':[]};var _0x5a9d27=_[_0xf778('0x40')](db[_0xf778('0x41')][_0xf778('0x42')],function(_0x5c8050){return{'name':_0x5c8050[_0xf778('0x43')],'type':_0x5c8050[_0xf778('0x44')][_0xf778('0x45')]};});_0x9381fe[_0xf778('0x46')]=_[_0xf778('0x40')](_0x5a9d27,_0xf778('0x3b'));_0x9381fe[_0xf778('0x47')]=_[_0xf778('0x48')](_0x25069d[_0xf778('0x47')]);_0x9381fe[_0xf778('0x49')]=_[_0xf778('0x4a')](_0x9381fe[_0xf778('0x46')],_0x9381fe[_0xf778('0x47')]);_0x53a8a6[_0xf778('0x4b')]=_[_0xf778('0x4a')](_0x9381fe[_0xf778('0x46')],qs[_0xf778('0x4c')](_0x25069d[_0xf778('0x47')]['fields']));_0x53a8a6[_0xf778('0x4b')]=_0x53a8a6['attributes']['length']?_0x53a8a6['attributes']:_0x9381fe[_0xf778('0x46')];if(!_0x25069d[_0xf778('0x47')]['hasOwnProperty'](_0xf778('0x4d'))){_0x53a8a6[_0xf778('0x2f')]=qs[_0xf778('0x2f')](_0x25069d['query'][_0xf778('0x2f')]);_0x53a8a6[_0xf778('0x2e')]=qs[_0xf778('0x2e')](_0x25069d[_0xf778('0x47')]['offset']);}_0x53a8a6[_0xf778('0x4e')]=qs['sort'](_0x25069d[_0xf778('0x47')][_0xf778('0x4f')]);_0x53a8a6[_0xf778('0x50')]=qs[_0xf778('0x49')](_[_0xf778('0x51')](_0x25069d[_0xf778('0x47')],_0x9381fe[_0xf778('0x49')]),_0x5a9d27);if(_0x25069d['query'][_0xf778('0x52')]){_0x53a8a6[_0xf778('0x50')]=_[_0xf778('0x53')](_0x53a8a6[_0xf778('0x50')],{'$or':_[_0xf778('0x40')](_0x5a9d27,function(_0x5ec0fb){if(_0x5ec0fb[_0xf778('0x44')]!==_0xf778('0x54')){var _0x1a389c={};_0x1a389c[_0x5ec0fb[_0xf778('0x3b')]]={'$like':'%'+_0x25069d[_0xf778('0x47')]['filter']+'%'};return _0x1a389c;}})});}_0x53a8a6=_[_0xf778('0x53')]({},_0x53a8a6,_0x25069d[_0xf778('0x55')]);var _0x7856b8={'where':_0x53a8a6['where']};return db[_0xf778('0x41')][_0xf778('0x2d')](_0x7856b8)['then'](function(_0x4458b4){_0x5b11eb[_0xf778('0x2d')]=_0x4458b4;if(_0x25069d[_0xf778('0x47')]['includeAll']){_0x53a8a6[_0xf778('0x56')]=[{'all':!![]}];}return db[_0xf778('0x41')]['findAll'](_0x53a8a6);})[_0xf778('0x1f')](function(_0x39826c){_0x5b11eb['rows']=_0x39826c;return _0x5b11eb;})[_0xf778('0x1f')](respondWithFilteredResult(_0x50fc3b,_0x53a8a6))[_0xf778('0x29')](handleError(_0x50fc3b,null));};exports['show']=function(_0x2318ef,_0x3db850){var _0x35324b={'raw':![],'where':{'id':_0x2318ef[_0xf778('0x57')]['id']},'include':[{'model':db[_0xf778('0x3e')],'as':'mandatoryDispositionPause'}]},_0x484d01={};_0x484d01[_0xf778('0x46')]=_[_0xf778('0x48')](db[_0xf778('0x41')][_0xf778('0x42')]);_0x484d01['query']=_[_0xf778('0x48')](_0x2318ef[_0xf778('0x47')]);_0x484d01[_0xf778('0x49')]=_[_0xf778('0x4a')](_0x484d01[_0xf778('0x46')],_0x484d01[_0xf778('0x47')]);_0x35324b[_0xf778('0x4b')]=_[_0xf778('0x4a')](_0x484d01[_0xf778('0x46')],qs[_0xf778('0x4c')](_0x2318ef[_0xf778('0x47')]['fields']));_0x35324b[_0xf778('0x4b')]=_0x35324b[_0xf778('0x4b')][_0xf778('0x58')]?_0x35324b[_0xf778('0x4b')]:_0x484d01[_0xf778('0x46')];if(_0x2318ef['query'][_0xf778('0x59')]){_0x35324b[_0xf778('0x56')]=[{'all':!![]}];}_0x35324b=_['merge']({},_0x35324b,_0x2318ef[_0xf778('0x55')]);return db[_0xf778('0x41')][_0xf778('0x5a')](_0x35324b)['then'](handleEntityNotFound(_0x3db850,null))[_0xf778('0x1f')](respondWithResult(_0x3db850,null))[_0xf778('0x29')](handleError(_0x3db850,null));};exports[_0xf778('0x5b')]=function(_0x4fc28e,_0x4363d6){return db['FaxAccount'][_0xf778('0x5b')](_0x4fc28e['body'],{})[_0xf778('0x1f')](function(_0x46afe2){var _0x54a082=_0x4fc28e[_0xf778('0x5c')]['get']({'plain':!![]});if(!_0x54a082)throw new Error(_0xf778('0x5d'));if(_0x54a082['role']===_0xf778('0x5c')){var _0x4d7088=_0x46afe2[_0xf778('0x35')]({'plain':!![]});var _0x4560b9=_0xf778('0x36');return db[_0xf778('0x5e')][_0xf778('0x5a')]({'where':{'name':_0x4560b9,'userProfileId':_0x54a082[_0xf778('0x5f')]},'raw':!![]})[_0xf778('0x1f')](function(_0x2c8d50){if(_0x2c8d50&&_0x2c8d50[_0xf778('0x60')]===0x0){return db[_0xf778('0x37')][_0xf778('0x5b')]({'name':_0x4d7088[_0xf778('0x3b')],'resourceId':_0x4d7088['id'],'type':_0x2c8d50[_0xf778('0x3b')],'sectionId':_0x2c8d50['id']},{})[_0xf778('0x1f')](function(){return _0x46afe2;});}else{return _0x46afe2;}})['catch'](function(_0xf4df47){logger[_0xf778('0x25')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0xf4df47);throw _0xf4df47;});}return _0x46afe2;})[_0xf778('0x1f')](respondWithResult(_0x4363d6,0xc9))['catch'](handleError(_0x4363d6,null));};exports[_0xf778('0x33')]=function(_0x3a38ae,_0x120b33){if(_0x3a38ae[_0xf778('0x61')]['id']){delete _0x3a38ae[_0xf778('0x61')]['id'];}return db['FaxAccount']['find']({'where':{'id':_0x3a38ae[_0xf778('0x57')]['id']},'include':[{'model':db[_0xf778('0x3e')],'as':'mandatoryDispositionPause'}]})[_0xf778('0x1f')](handleEntityNotFound(_0x120b33,null))[_0xf778('0x1f')](saveUpdates(_0x3a38ae['body'],null))[_0xf778('0x1f')](respondWithResult(_0x120b33,null))[_0xf778('0x29')](handleError(_0x120b33,null));};exports['destroy']=function(_0x1e7a0a,_0x35eb32){return db[_0xf778('0x41')][_0xf778('0x5a')]({'where':{'id':_0x1e7a0a[_0xf778('0x57')]['id']}})[_0xf778('0x1f')](handleEntityNotFound(_0x35eb32,null))['then'](removeEntity(_0x35eb32,null))[_0xf778('0x29')](handleError(_0x35eb32,null));};exports[_0xf778('0x62')]=function(_0x51855e,_0x32c5c7){return db[_0xf778('0x41')]['describe']()[_0xf778('0x1f')](respondWithResult(_0x32c5c7,null))[_0xf778('0x29')](handleError(_0x32c5c7,null));};exports[_0xf778('0x63')]=function(_0x9431ba,_0x20daf9,_0xf0fe82){if(_0x9431ba[_0xf778('0x61')]['id']){delete _0x9431ba['body']['id'];}return db['FaxAccount']['find']({'where':{'id':_0x9431ba[_0xf778('0x57')]['id']}})[_0xf778('0x1f')](handleEntityNotFound(_0x20daf9,null))[_0xf778('0x1f')](function(_0x33608b){if(_0x33608b){_0x9431ba['body']['FaxAccountId']=_0x33608b['id'];return db[_0xf778('0x64')][_0xf778('0x5b')](_0x9431ba[_0xf778('0x61')]);}})[_0xf778('0x1f')](respondWithResult(_0x20daf9,null))[_0xf778('0x29')](handleError(_0x20daf9,null));};exports['getDispositions']=function(_0x2d51dc,_0x514d96,_0x4ea8cd){var _0x373fb9={'raw':![],'where':{}};var _0x303b3d={};var _0x349ff1={'count':0x0,'rows':[]};return db['FaxAccount'][_0xf778('0x65')]({'where':{'id':_0x2d51dc[_0xf778('0x57')]['id']}})['then'](handleEntityNotFound(_0x514d96,null))[_0xf778('0x1f')](function(_0x3314f5){if(_0x3314f5){_0x303b3d['model']=_[_0xf778('0x48')](db[_0xf778('0x64')]['rawAttributes']);_0x303b3d[_0xf778('0x47')]=_[_0xf778('0x48')](_0x2d51dc['query']);_0x303b3d[_0xf778('0x49')]=_['intersection'](_0x303b3d['model'],_0x303b3d[_0xf778('0x47')]);_0x373fb9[_0xf778('0x4b')]=_[_0xf778('0x4a')](_0x303b3d[_0xf778('0x46')],qs[_0xf778('0x4c')](_0x2d51dc[_0xf778('0x47')][_0xf778('0x4c')]));_0x373fb9['attributes']=_0x373fb9['attributes']['length']?_0x373fb9['attributes']:_0x303b3d[_0xf778('0x46')];if(!_0x2d51dc['query']['hasOwnProperty']('nolimit')){_0x373fb9[_0xf778('0x2f')]=qs[_0xf778('0x2f')](_0x2d51dc[_0xf778('0x47')]['limit']);_0x373fb9[_0xf778('0x2e')]=qs['offset'](_0x2d51dc['query'][_0xf778('0x2e')]);}_0x373fb9['order']=qs['sort'](_0x2d51dc[_0xf778('0x47')][_0xf778('0x4f')]);_0x373fb9['where']=qs[_0xf778('0x49')](_[_0xf778('0x51')](_0x2d51dc[_0xf778('0x47')],_0x303b3d[_0xf778('0x49')]));_0x373fb9[_0xf778('0x50')][_0xf778('0x66')]=_0x3314f5['id'];if(_0x2d51dc[_0xf778('0x47')][_0xf778('0x52')]){_0x373fb9[_0xf778('0x50')]=_[_0xf778('0x53')](_0x373fb9['where'],{'$or':_['map'](_0x373fb9[_0xf778('0x4b')],function(_0x1fbb4f){var _0x2b4184={};_0x2b4184[_0x1fbb4f]={'$like':'%'+_0x2d51dc['query'][_0xf778('0x52')]+'%'};return _0x2b4184;})});}_0x373fb9=_[_0xf778('0x53')]({},_0x373fb9,_0x2d51dc[_0xf778('0x55')]);return db[_0xf778('0x64')]['count']({'where':_0x373fb9[_0xf778('0x50')]})[_0xf778('0x1f')](function(_0x5bf1f6){_0x349ff1[_0xf778('0x2d')]=_0x5bf1f6;if(_0x2d51dc[_0xf778('0x47')][_0xf778('0x59')]){_0x373fb9[_0xf778('0x56')]=[{'all':!![]}];}return db[_0xf778('0x64')][_0xf778('0x67')](_0x373fb9);})[_0xf778('0x1f')](function(_0x3f20dd){_0x349ff1['rows']=_0x3f20dd;return _0x349ff1;});}})[_0xf778('0x1f')](respondWithFilteredResult(_0x514d96,_0x373fb9))[_0xf778('0x29')](handleError(_0x514d96,null));};exports['removeDispositions']=function(_0x582742,_0xcd0ad8,_0x33df4c){return db['FaxAccount'][_0xf778('0x5a')]({'where':{'id':_0x582742[_0xf778('0x57')]['id']}})[_0xf778('0x1f')](handleEntityNotFound(_0xcd0ad8,null))[_0xf778('0x1f')](function(_0x3068b2){if(_0x3068b2){return _0x3068b2['removeDispositions'](_0x582742['query'][_0xf778('0x68')]);}})['then'](respondWithStatusCode(_0xcd0ad8,null))['catch'](handleError(_0xcd0ad8,null));};exports[_0xf778('0x69')]=function(_0xc7926,_0x4bfca,_0x28bce3){if(_0xc7926[_0xf778('0x61')]['id']){delete _0xc7926[_0xf778('0x61')]['id'];}return db[_0xf778('0x41')]['find']({'where':{'id':_0xc7926['params']['id']}})[_0xf778('0x1f')](handleEntityNotFound(_0x4bfca,null))[_0xf778('0x1f')](function(_0x2dc05f){if(_0x2dc05f){_0xc7926[_0xf778('0x61')][_0xf778('0x66')]=_0x2dc05f['id'];return db[_0xf778('0x6a')][_0xf778('0x5b')](_0xc7926['body']);}})['then'](respondWithResult(_0x4bfca,null))['catch'](handleError(_0x4bfca,null));};exports['getAnswers']=function(_0x734d7,_0x4de2b2,_0x150312){var _0xee1097={'raw':![],'where':{}};var _0x8bd3e5={};var _0x2f4c17={'count':0x0,'rows':[]};return db[_0xf778('0x41')][_0xf778('0x65')]({'where':{'id':_0x734d7[_0xf778('0x57')]['id']}})[_0xf778('0x1f')](handleEntityNotFound(_0x4de2b2,null))['then'](function(_0x16d291){if(_0x16d291){_0x8bd3e5['model']=_[_0xf778('0x48')](db['CannedAnswer'][_0xf778('0x42')]);_0x8bd3e5[_0xf778('0x47')]=_[_0xf778('0x48')](_0x734d7[_0xf778('0x47')]);_0x8bd3e5[_0xf778('0x49')]=_[_0xf778('0x4a')](_0x8bd3e5[_0xf778('0x46')],_0x8bd3e5[_0xf778('0x47')]);_0xee1097[_0xf778('0x4b')]=_[_0xf778('0x4a')](_0x8bd3e5['model'],qs[_0xf778('0x4c')](_0x734d7[_0xf778('0x47')][_0xf778('0x4c')]));_0xee1097['attributes']=_0xee1097['attributes'][_0xf778('0x58')]?_0xee1097[_0xf778('0x4b')]:_0x8bd3e5[_0xf778('0x46')];if(!_0x734d7['query'][_0xf778('0x6b')]('nolimit')){_0xee1097[_0xf778('0x2f')]=qs[_0xf778('0x2f')](_0x734d7[_0xf778('0x47')][_0xf778('0x2f')]);_0xee1097['offset']=qs[_0xf778('0x2e')](_0x734d7[_0xf778('0x47')][_0xf778('0x2e')]);}_0xee1097[_0xf778('0x4e')]=qs[_0xf778('0x4f')](_0x734d7[_0xf778('0x47')][_0xf778('0x4f')]);_0xee1097[_0xf778('0x50')]=qs[_0xf778('0x49')](_[_0xf778('0x51')](_0x734d7[_0xf778('0x47')],_0x8bd3e5[_0xf778('0x49')]));_0xee1097[_0xf778('0x50')][_0xf778('0x66')]=_0x16d291['id'];if(_0x734d7[_0xf778('0x47')][_0xf778('0x52')]){_0xee1097[_0xf778('0x50')]=_['merge'](_0xee1097[_0xf778('0x50')],{'$or':_[_0xf778('0x40')](_0xee1097[_0xf778('0x4b')],function(_0x4ed182){var _0xdc28c5={};_0xdc28c5[_0x4ed182]={'$like':'%'+_0x734d7[_0xf778('0x47')]['filter']+'%'};return _0xdc28c5;})});}_0xee1097=_[_0xf778('0x53')]({},_0xee1097,_0x734d7[_0xf778('0x55')]);return db['CannedAnswer'][_0xf778('0x2d')]({'where':_0xee1097[_0xf778('0x50')]})[_0xf778('0x1f')](function(_0x42ebba){_0x2f4c17[_0xf778('0x2d')]=_0x42ebba;if(_0x734d7[_0xf778('0x47')][_0xf778('0x59')]){_0xee1097[_0xf778('0x56')]=[{'all':!![]}];}return db[_0xf778('0x6a')]['findAll'](_0xee1097);})[_0xf778('0x1f')](function(_0x473422){_0x2f4c17['rows']=_0x473422;return _0x2f4c17;});}})[_0xf778('0x1f')](respondWithFilteredResult(_0x4de2b2,_0xee1097))[_0xf778('0x29')](handleError(_0x4de2b2,null));};exports[_0xf778('0x6c')]=function(_0x2fe06c,_0x2a9e9d,_0x2e1962){return db[_0xf778('0x41')][_0xf778('0x5a')]({'where':{'id':_0x2fe06c[_0xf778('0x57')]['id']}})['then'](handleEntityNotFound(_0x2a9e9d,null))['then'](function(_0x5a5f35){if(_0x5a5f35){return _0x5a5f35[_0xf778('0x6c')](_0x2fe06c[_0xf778('0x47')]['ids']);}})['then'](respondWithStatusCode(_0x2a9e9d,null))[_0xf778('0x29')](handleError(_0x2a9e9d,null));};exports[_0xf778('0x6d')]=function(_0x1cb730,_0x1ff9f7,_0x443390){return db['FaxInteraction'][_0xf778('0x5a')]({'where':{'id':_0x1cb730[_0xf778('0x57')]['id']}})['then'](handleEntityNotFound(_0x1ff9f7,null))['then'](function(_0x3c931b){if(_0x3c931b){return _0x3c931b[_0xf778('0x6d')](_0x1cb730[_0xf778('0x61')]['ids'],_[_0xf778('0x6e')](_0x1cb730['body'],[_0xf778('0x68'),'id'])||{});}})[_0xf778('0x1f')](respondWithResult(_0x1ff9f7,null))['catch'](handleError(_0x1ff9f7,null));};exports['getInteractions']=function(_0x5d61f9,_0x5f1881,_0x22baba){var _0x394533={'raw':![],'where':{}};var _0x226ea8={};var _0x1b4695={'count':0x0,'rows':[]};return db[_0xf778('0x41')][_0xf778('0x65')]({'where':{'id':_0x5d61f9[_0xf778('0x57')]['id']}})[_0xf778('0x1f')](handleEntityNotFound(_0x5f1881,null))[_0xf778('0x1f')](function(_0x23732e){if(_0x23732e){_0x226ea8[_0xf778('0x46')]=_[_0xf778('0x48')](db[_0xf778('0x6f')][_0xf778('0x42')]);_0x226ea8[_0xf778('0x47')]=_[_0xf778('0x48')](_0x5d61f9[_0xf778('0x47')]);_0x226ea8[_0xf778('0x49')]=_[_0xf778('0x4a')](_0x226ea8[_0xf778('0x46')],_0x226ea8[_0xf778('0x47')]);_0x394533[_0xf778('0x4b')]=_[_0xf778('0x4a')](_0x226ea8['model'],qs[_0xf778('0x4c')](_0x5d61f9[_0xf778('0x47')][_0xf778('0x4c')]));_0x394533[_0xf778('0x4b')]=_0x394533[_0xf778('0x4b')]['length']?_0x394533[_0xf778('0x4b')]:_0x226ea8[_0xf778('0x46')];if(!_0x5d61f9[_0xf778('0x47')]['hasOwnProperty'](_0xf778('0x4d'))){_0x394533[_0xf778('0x2f')]=qs[_0xf778('0x2f')](_0x5d61f9[_0xf778('0x47')][_0xf778('0x2f')]);_0x394533[_0xf778('0x2e')]=qs['offset'](_0x5d61f9[_0xf778('0x47')][_0xf778('0x2e')]);}_0x394533[_0xf778('0x4e')]=qs['sort'](_0x5d61f9[_0xf778('0x47')][_0xf778('0x4f')]);_0x394533[_0xf778('0x50')]=qs[_0xf778('0x49')](_[_0xf778('0x51')](_0x5d61f9['query'],_0x226ea8[_0xf778('0x49')]));_0x394533[_0xf778('0x50')]['FaxAccountId']=_0x23732e['id'];if(_0x5d61f9[_0xf778('0x47')][_0xf778('0x52')]){_0x394533['where']=_[_0xf778('0x53')](_0x394533[_0xf778('0x50')],{'$or':_[_0xf778('0x40')](_0x394533['attributes'],function(_0x560a27){var _0x5c857c={};_0x5c857c[_0x560a27]={'$like':'%'+_0x5d61f9['query'][_0xf778('0x52')]+'%'};return _0x5c857c;})});}_0x394533=_[_0xf778('0x53')]({},_0x394533,_0x5d61f9[_0xf778('0x55')]);return db[_0xf778('0x6f')][_0xf778('0x2d')]({'where':_0x394533['where']})[_0xf778('0x1f')](function(_0x3932a6){_0x1b4695[_0xf778('0x2d')]=_0x3932a6;if(_0x5d61f9[_0xf778('0x47')][_0xf778('0x59')]){_0x394533[_0xf778('0x56')]=[{'model':db[_0xf778('0x70')],'as':_0xf778('0x71'),'required':![]},{'model':db[_0xf778('0x72')],'as':_0xf778('0x73'),'attributes':['name',_0xf778('0x74'),_0xf778('0x75')],'required':![]},{'model':db[_0xf778('0x76')],'as':'Tags','attributes':['id',_0xf778('0x3b'),_0xf778('0x77')],'where':_0x5d61f9[_0xf778('0x47')][_0xf778('0x78')]?{'id':_0x5d61f9[_0xf778('0x47')]['tag']}:undefined,'required':_0x5d61f9[_0xf778('0x47')][_0xf778('0x78')]?!![]:![]}];}return db[_0xf778('0x6f')][_0xf778('0x67')](_0x394533);})[_0xf778('0x1f')](function(_0x3b1e13){_0x1b4695[_0xf778('0x79')]=_0x3b1e13;return _0x1b4695;});}})['then'](respondWithFilteredResult(_0x5f1881,_0x394533))[_0xf778('0x29')](handleError(_0x5f1881,null));};exports[_0xf778('0x7a')]=function(_0xa83429,_0x88b957){var _0x567edf=_0xa83429[_0xf778('0x57')]['id'];var _0x50d76d=_0xa83429[_0xf778('0x61')];var _0x1dd7a4=0xc8;var _0x53c875=null;return db['sequelize'][_0xf778('0x7b')]({'isolationLevel':db[_0xf778('0x7c')][_0xf778('0x7d')][_0xf778('0x7e')][_0xf778('0x7f')]},function(_0x9b9117){return db[_0xf778('0x41')]['findOne']({'where':{'id':_0x567edf},'transaction':_0x9b9117})[_0xf778('0x1f')](function(_0x432ed3){if(_0x432ed3){return db[_0xf778('0x80')][_0xf778('0x34')]({'where':{'FaxAccountId':_0x567edf},'transaction':_0x9b9117})['then'](function(){var _0x3c7c4b=_[_0xf778('0x40')](_0x50d76d,function(_0x4d7e09){_0x4d7e09[_0xf778('0x66')]=_0x567edf;return _0x4d7e09;});return db[_0xf778('0x80')][_0xf778('0x81')](_0x3c7c4b,{'transaction':_0x9b9117});});}else{_0x1dd7a4=0x194;_0x53c875=[];}});})['then'](function(){if(_0x1dd7a4!==0x194){return db[_0xf778('0x80')][_0xf778('0x82')]({'where':{'FaxAccountId':_0x567edf},'order':'priority'})[_0xf778('0x1f')](function(_0x2ebc72){_0x53c875=_0x2ebc72;});}})['catch'](function(_0x5e0cba){_0x1dd7a4=0x1f4;logger[_0xf778('0x25')](_0x5e0cba[_0xf778('0x3a')]);if(_0x5e0cba[_0xf778('0x3b')]){delete _0x5e0cba[_0xf778('0x3b')];}_0x53c875=_0x5e0cba;})[_0xf778('0x83')](function(){if(_0x53c875===null){_0x88b957[_0xf778('0x39')](_0x1dd7a4);}else{if(_0x1dd7a4===0x1f4){_0x88b957['status'](_0x1dd7a4)[_0xf778('0x3c')](_0x53c875);}else{_0x88b957[_0xf778('0x38')](_0x1dd7a4)[_0xf778('0x2b')](_0x53c875);}}});};exports[_0xf778('0x84')]=function(_0x365923,_0x2c549c,_0x463f9b){var _0x255418={};var _0x275143={};var _0x2563e7;var _0x479991;return db[_0xf778('0x41')][_0xf778('0x65')]({'where':{'id':_0x365923[_0xf778('0x57')]['id']}})[_0xf778('0x1f')](handleEntityNotFound(_0x2c549c,null))[_0xf778('0x1f')](function(_0x37d123){if(_0x37d123){_0x2563e7=_0x37d123;_0x275143['model']=_['keys'](db[_0xf778('0x80')][_0xf778('0x42')]);_0x275143[_0xf778('0x47')]=_[_0xf778('0x48')](_0x365923[_0xf778('0x47')]);_0x275143[_0xf778('0x49')]=_[_0xf778('0x4a')](_0x275143[_0xf778('0x46')],_0x275143[_0xf778('0x47')]);_0x255418[_0xf778('0x4b')]=_[_0xf778('0x4a')](_0x275143[_0xf778('0x46')],qs[_0xf778('0x4c')](_0x365923[_0xf778('0x47')][_0xf778('0x4c')]));_0x255418[_0xf778('0x4b')]=_0x255418['attributes'][_0xf778('0x58')]?_0x255418['attributes']:_0x275143['model'];_0x255418[_0xf778('0x4e')]=qs['sort'](_0x365923[_0xf778('0x47')][_0xf778('0x4f')]);_0x255418['where']=qs['filters'](_[_0xf778('0x51')](_0x365923[_0xf778('0x47')],_0x275143[_0xf778('0x49')]));if(_0x365923[_0xf778('0x47')][_0xf778('0x52')]){_0x255418[_0xf778('0x50')]=_[_0xf778('0x53')](_0x255418[_0xf778('0x50')],{'$or':_[_0xf778('0x40')](_0x255418[_0xf778('0x4b')],function(_0x1870c7){var _0x31b3ca={};_0x31b3ca[_0x1870c7]={'$like':'%'+_0x365923['query'][_0xf778('0x52')]+'%'};return _0x31b3ca;})});}_0x255418=_['merge']({},_0x255418,_0x365923[_0xf778('0x55')]);return _0x2563e7[_0xf778('0x84')](_0x255418);}})['then'](function(_0x3ec9a1){if(_0x3ec9a1){_0x479991=_0x3ec9a1[_0xf778('0x58')];if(!_0x365923[_0xf778('0x47')][_0xf778('0x6b')]('nolimit')){_0x255418[_0xf778('0x2f')]=qs[_0xf778('0x2f')](_0x365923['query']['limit']);_0x255418[_0xf778('0x2e')]=qs[_0xf778('0x2e')](_0x365923[_0xf778('0x47')][_0xf778('0x2e')]);}return _0x2563e7[_0xf778('0x84')](_0x255418);}})['then'](function(_0x5eabfe){if(_0x5eabfe){return _0x5eabfe?{'count':_0x479991,'rows':_0x5eabfe}:null;}})[_0xf778('0x1f')](respondWithResult(_0x2c549c,null))[_0xf778('0x29')](handleError(_0x2c549c,null));};function Extension(_0x47f3c0,_0x3e1450,_0x22a612,_0x27f419){this['context']=_0xf778('0x85');this[_0xf778('0x86')]=_0x47f3c0[_0xf778('0x87')];this['app']=_0x27f419;this['type']=_0xf778('0x88');this[_0xf778('0x89')]=_0xf778('0x8a');this['FaxAccountId']=_0x47f3c0['id'];this[_0xf778('0x8b')]=_0x3e1450;this['appdata']=_0x22a612;}function createExtensionsReciveFax(_0x1fcbc4){var _0x36a9a2=0x1;var _0x84ad50=[];_0x84ad50[_0xf778('0x8c')](new Extension(_0x1fcbc4,_0x36a9a2,'',_0xf778('0x8d')));_0x36a9a2+=0x1;_0x84ad50[_0xf778('0x8c')](new Extension(_0x1fcbc4,_0x36a9a2,'CDR(type)=inbound-fax',_0xf778('0x8e')));_0x36a9a2+=0x1;for(var _0x24e2ff in _0x1fcbc4){if(_0x1fcbc4[_0xf778('0x6b')](_0x24e2ff)&&(_0x24e2ff==='ecm'||_0x24e2ff==='localstationid'||_0x24e2ff===_0xf778('0x8f')||_0x24e2ff==='faxdetect'||_0x24e2ff===_0xf778('0x90')||_0x24e2ff===_0xf778('0x91')||_0x24e2ff===_0xf778('0x92')||_0x24e2ff===_0xf778('0x93')||_0x24e2ff==='t38timeout')){_0x84ad50[_0xf778('0x8c')](new Extension(_0x1fcbc4,_0x36a9a2,_0xf778('0x94')+_0x24e2ff+')='+_0x1fcbc4[_0x24e2ff],_0xf778('0x8e')));_0x36a9a2+=0x1;}}_0x84ad50[_0xf778('0x8c')](new Extension(_0x1fcbc4,_0x36a9a2,'6','Wait'));_0x36a9a2+=0x1;_0x84ad50['push'](new Extension(_0x1fcbc4,_0x36a9a2,_0xf778('0x95'),_0xf778('0x96')));_0x36a9a2=0x0;return _0x84ad50;}exports['addAccountApplications']=function(_0x1cdfd4,_0x63df4a,_0x5301b7){var _0x3d9353;return db[_0xf778('0x7c')][_0xf778('0x7b')](function(_0x47411b){return db[_0xf778('0x41')]['create'](_0x1cdfd4[_0xf778('0x61')],{'transaction':_0x47411b})['then'](function(_0x5b4a8a){_0x3d9353=_0x5b4a8a[_0xf778('0x35')]({'plain':!![]});return db[_0xf778('0x97')][_0xf778('0x81')](createExtensionsReciveFax(_0x3d9353),{'transaction':_0x47411b});});})[_0xf778('0x1f')](function(){return _0x3d9353;})[_0xf778('0x1f')](respondWithResult(_0x63df4a,null))['catch'](handleError(_0x63df4a,null));};exports[_0xf778('0x98')]=function(_0x4c0f9e,_0x41b1e1,_0x2a38d0){var _0x1b0291;return db[_0xf778('0x7c')][_0xf778('0x7b')](function(_0x4e6186){return db[_0xf778('0x41')][_0xf778('0x33')](_0x4c0f9e[_0xf778('0x61')],{'where':{'id':_0x4c0f9e['body']['id']},'transaction':_0x4e6186})[_0xf778('0x1f')](function(_0x729ba7){return db[_0xf778('0x97')][_0xf778('0x34')]({'where':{'FaxAccountId':_0x4c0f9e['body']['id']},'transaction':_0x4e6186})['then'](function(_0x589353){return db[_0xf778('0x97')]['bulkCreate'](createExtensionsReciveFax(_[_0xf778('0x6e')](_0x4c0f9e[_0xf778('0x61')],[_0xf778('0x99'),'key',_0xf778('0x9a'),_0xf778('0x9b'),_0xf778('0x9c'),_0xf778('0x9d')])),{'transaction':_0x4e6186});});});})[_0xf778('0x1f')](function(){return db[_0xf778('0x41')]['findById'](_0x4c0f9e[_0xf778('0x61')]['id']);})[_0xf778('0x1f')](respondWithResult(_0x41b1e1,null))[_0xf778('0x29')](handleError(_0x41b1e1,null));};exports['getMessages']=function(_0x47eb00,_0xeff576,_0x6de4e9){var _0x2eca79={'raw':!![],'where':{}};var _0x4356d2={};var _0x422ccc={'count':0x0,'rows':[]};return db[_0xf778('0x41')][_0xf778('0x65')]({'where':{'id':_0x47eb00[_0xf778('0x57')]['id']}})[_0xf778('0x1f')](handleEntityNotFound(_0xeff576,null))[_0xf778('0x1f')](function(_0x324c54){if(_0x324c54){_0x4356d2[_0xf778('0x46')]=_[_0xf778('0x48')](db[_0xf778('0x9e')][_0xf778('0x42')]);_0x4356d2[_0xf778('0x47')]=_[_0xf778('0x48')](_0x47eb00[_0xf778('0x47')]);_0x4356d2['filters']=_[_0xf778('0x4a')](_0x4356d2['model'],_0x4356d2[_0xf778('0x47')]);_0x2eca79['attributes']=_[_0xf778('0x4a')](_0x4356d2[_0xf778('0x46')],qs[_0xf778('0x4c')](_0x47eb00[_0xf778('0x47')][_0xf778('0x4c')]));_0x2eca79[_0xf778('0x4b')]=_0x2eca79[_0xf778('0x4b')][_0xf778('0x58')]?_0x2eca79[_0xf778('0x4b')]:_0x4356d2[_0xf778('0x46')];if(!_0x47eb00[_0xf778('0x47')]['hasOwnProperty']('nolimit')){_0x2eca79['limit']=qs[_0xf778('0x2f')](_0x47eb00['query'][_0xf778('0x2f')]);_0x2eca79['offset']=qs[_0xf778('0x2e')](_0x47eb00[_0xf778('0x47')][_0xf778('0x2e')]);}_0x2eca79[_0xf778('0x4e')]=qs['sort'](_0x47eb00[_0xf778('0x47')][_0xf778('0x4f')]);_0x2eca79[_0xf778('0x50')]=qs['filters'](_[_0xf778('0x51')](_0x47eb00[_0xf778('0x47')],_0x4356d2[_0xf778('0x49')]));_0x2eca79[_0xf778('0x50')]['FaxAccountId']=_0x324c54['id'];if(_0x47eb00[_0xf778('0x47')][_0xf778('0x52')]){_0x2eca79[_0xf778('0x50')]=_[_0xf778('0x53')](_0x2eca79[_0xf778('0x50')],{'$or':_[_0xf778('0x40')](_0x2eca79[_0xf778('0x4b')],function(_0x17cd30){var _0x1d2e8a={};_0x1d2e8a[_0x17cd30]={'$like':'%'+_0x47eb00[_0xf778('0x47')][_0xf778('0x52')]+'%'};return _0x1d2e8a;})});}if(_0x47eb00['query'][_0xf778('0x9f')]){var _0x4e8ab9=_0x47eb00['query'][_0xf778('0x9f')][_0xf778('0xa0')](',');var _0x5d34a0={};_0x5d34a0[_0x4e8ab9[0x0]]={'$gte':moment(_0x4e8ab9[0x1])[_0xf778('0xa1')](_0xf778('0xa2'))};_0x2eca79[_0xf778('0x50')]=_[_0xf778('0x53')](_0x2eca79[_0xf778('0x50')],_0x5d34a0);}_0x2eca79=_[_0xf778('0x53')]({},_0x2eca79,_0x47eb00[_0xf778('0x55')]);return db[_0xf778('0x9e')]['count']({'where':_0x2eca79[_0xf778('0x50')]})[_0xf778('0x1f')](function(_0x526821){_0x422ccc['count']=_0x526821;if(_0x47eb00[_0xf778('0x47')][_0xf778('0x59')]){_0x2eca79[_0xf778('0x56')]=[{'all':!![]}];}return db[_0xf778('0x9e')][_0xf778('0x67')](_0x2eca79);})['then'](function(_0x1c3558){_0x422ccc[_0xf778('0x79')]=_0x1c3558;return _0x422ccc;});}})[_0xf778('0x1f')](respondWithFilteredResult(_0xeff576,_0x2eca79))[_0xf778('0x29')](handleError(_0xeff576,null));};exports[_0xf778('0x3c')]=function(_0x557196,_0x3f3c29,_0x182824){var _0x58a9dc,_0x1bbbfb={},_0x4081e1;if(_0x557196['body']['to']){_0x4081e1=_0x557196[_0xf778('0x61')]['to'][0x0];}return db['FaxAccount'][_0xf778('0x5a')]({'where':{'id':_0x557196['params']['id']},'include':[{'model':db[_0xf778('0xa3')],'as':_0xf778('0xa4'),'include':[{'model':db[_0xf778('0x70')],'as':_0xf778('0xa5'),'where':{'fax':_0x4081e1},'limit':0x1,'order':[[_0xf778('0x9b'),_0xf778('0xa6')]]}]}]})[_0xf778('0x1f')](handleEntityNotFound(_0x3f3c29,null))['then'](function(_0x245514){_0x58a9dc=_0x245514;if(_0x557196[_0xf778('0x61')][_0xf778('0xa7')]&&_0x557196['body'][_0xf778('0xa7')]['length']){for(var _0x37e120=0x0;_0x37e120<_0x557196[_0xf778('0x61')][_0xf778('0xa7')][_0xf778('0x58')];_0x37e120+=0x1){_0x557196['body'][_0xf778('0xa7')][_0x37e120]={'filename':_0x557196[_0xf778('0x61')][_0xf778('0xa7')][_0x37e120][_0xf778('0x3b')],'id':_0x557196[_0xf778('0x61')][_0xf778('0xa7')][_0x37e120]['id'],'path':path[_0xf778('0xa8')](config[_0xf778('0xa9')],'server/files/attachments',_0x557196[_0xf778('0x61')][_0xf778('0xa7')][_0x37e120][_0xf778('0xaa')])};}}return respondWithRpcPromise(_0xf778('0xab'),'CheckAfterSend',{'FaxAccountId':_[_0xf778('0xac')](_0x557196[_0xf778('0x57')]['id'])?undefined:_0x557196[_0xf778('0x57')]['id'],'path':_['isNil'](_0x557196[_0xf778('0x61')][_0xf778('0xa7')][0x0][_0xf778('0x7')])?undefined:_0x557196[_0xf778('0x61')][_0xf778('0xa7')][0x0][_0xf778('0x7')],'fax':_[_0xf778('0xac')](_0x557196[_0xf778('0x61')]['to'][0x0])?undefined:_0x557196[_0xf778('0x61')]['to'][0x0]},client9002);})[_0xf778('0x1f')](function(){if(_0x58a9dc){if(_['isNil'](_0x557196['body'][_0xf778('0xad')])){_0x557196[_0xf778('0x61')]['from']=util['format'](_0xf778('0xae'),_0x58a9dc[_0xf778('0x3b')],_0x58a9dc[_0xf778('0xaf')]);}if(_0x58a9dc[_0xf778('0xa4')]){if(_0x58a9dc[_0xf778('0xa4')][_0xf778('0xa5')][_0xf778('0x58')]){return _0x58a9dc[_0xf778('0xa4')]['Contacts'][0x0];}else{return db[_0xf778('0x70')]['create'](_[_0xf778('0xb0')](_0x557196[_0xf778('0x61')],{'firstName':_0x557196['body']['to'][0x0],'phone':_0x557196[_0xf778('0x61')]['to'][0x0],'fax':_0x557196[_0xf778('0x61')]['to'][0x0],'ListId':_0x58a9dc['ListId']}));}}else{throw new Error('List\x20not\x20found');}}else{throw new Error('Send\x20Fax\x20failed');}})[_0xf778('0x1f')](function(_0x405c14){if(_0x405c14){return db['FaxInteraction']['find']({'where':{'ContactId':_0x405c14['id'],'closed':![],'FaxAccountId':_0x58a9dc['id']}})[_0xf778('0x1f')](function(_0x1dfd48){if(_0x1dfd48){return[_0x1dfd48,![]];}return db[_0xf778('0x6f')][_0xf778('0x5b')]({'UserId':_0x557196['user']['id'],'ContactId':_0x405c14['id'],'FaxAccountId':_0x58a9dc['id'],'fax':_0x557196[_0xf778('0x61')]['to'][0x0],'firstMsgDirection':_0xf778('0xb1'),'Messages':[_[_0xf778('0x53')](_0x557196[_0xf778('0x61')],{'read':![],'body':_0x557196[_0xf778('0x61')][_0xf778('0xa7')][0x0][_0xf778('0xb2')],'FaxAccountId':_0x58a9dc['id'],'UserId':_0x557196[_0xf778('0x5c')]['id'],'ContactId':_0x405c14['id'],'AttachmentId':_0x557196['body'][_0xf778('0xa7')][0x0]['id']})]},{'include':[{'model':db['FaxMessage'],'as':_0xf778('0xb3')}]})['then'](function(_0x127597){return[_0x127597,!![]];});});}else{throw new Error(_0xf778('0xb4'));}})[_0xf778('0xb5')](function(_0x46a99f,_0x45ae17){if(_0x45ae17){return _0x46a99f;}return db[_0xf778('0x9e')][_0xf778('0x5b')]({'direction':'out','read':![],'body':_0x557196[_0xf778('0x61')][_0xf778('0xa7')][0x0]['filename'],'FaxAccountId':_0x58a9dc['id'],'FaxInteractionId':_0x46a99f['id'],'UserId':_0x557196[_0xf778('0x5c')]['id'],'ContactId':_0x46a99f[_0xf778('0xb6')],'AttachmentId':_0x557196['body']['attachments'][0x0]['id']})['then'](function(_0x5898ce){_0x46a99f[_0xf778('0xb7')]['Messages']=[];_0x46a99f['dataValues'][_0xf778('0xb3')][_0xf778('0x8c')](_0x5898ce['dataValues']);return _0x46a99f;});})[_0xf778('0x1f')](function(_0x4f877a){respondWithRpcPromise(_0xf778('0xb8'),_0xf778('0xb8'),{'FaxAccountId':_['isNil'](_0x557196[_0xf778('0x57')]['id'])?undefined:_0x557196['params']['id'],'path':_[_0xf778('0xac')](_0x557196['body'][_0xf778('0xa7')][0x0][_0xf778('0x7')])?undefined:_0x557196[_0xf778('0x61')][_0xf778('0xa7')][0x0][_0xf778('0x7')],'fax':_[_0xf778('0xac')](_0x557196[_0xf778('0x61')]['to'][0x0])?undefined:_0x557196[_0xf778('0x61')]['to'][0x0],'AttachmentId':_0x557196[_0xf778('0x61')][_0xf778('0xa7')][0x0]['id']},client9002)[_0xf778('0x1f')](function(_0x29e96d){logger[_0xf778('0x20')](_0xf778('0xb9'),_0x29e96d);})[_0xf778('0x29')](function(_0x2bc45d){logger['info'](_0xf778('0xb9'),_0x2bc45d);});return _0x4f877a;})[_0xf778('0x1f')](respondWithResult(_0x3f3c29,null))['catch'](handleError(_0x3f3c29,null));};exports[_0xf778('0xba')]=function(_0x585659,_0x1ac718,_0x14187b){return db[_0xf778('0x41')][_0xf778('0x5a')]({'where':{'id':_0x585659[_0xf778('0x57')]['id']}})[_0xf778('0x1f')](handleEntityNotFound(_0x1ac718,null))[_0xf778('0x1f')](function(_0x3330c4){if(_0x3330c4){return _0x3330c4[_0xf778('0xba')](_0x585659[_0xf778('0x61')]['ids'],_[_0xf778('0x6e')](_0x585659[_0xf778('0x61')],[_0xf778('0x68'),'id'])||{})[_0xf778('0xb5')](function(_0x3dd246){for(var _0x17e176=0x0;_0x17e176<_0x585659[_0xf778('0x61')][_0xf778('0x68')][_0xf778('0x58')];_0x17e176+=0x1){socket[_0xf778('0xbb')](_0xf778('0xbc'),{'UserId':Number(_0x585659[_0xf778('0x61')][_0xf778('0x68')][_0x17e176]),'FaxAccountId':Number(_0x585659[_0xf778('0x57')]['id'])});}return _0x3dd246;});}})[_0xf778('0x1f')](respondWithResult(_0x1ac718,null))[_0xf778('0x29')](handleError(_0x1ac718,null));};exports[_0xf778('0xbd')]=function(_0x272085,_0x5bb707,_0x53fd45){return db[_0xf778('0x41')][_0xf778('0x5a')]({'where':{'id':_0x272085[_0xf778('0x57')]['id']}})['then'](handleEntityNotFound(_0x5bb707,null))['then'](function(_0x1edc9b){if(_0x1edc9b){return _0x1edc9b[_0xf778('0xbd')](_0x272085[_0xf778('0x47')]['ids'])[_0xf778('0x1f')](function(){if(_['isArray'](_0x272085[_0xf778('0x47')][_0xf778('0x68')])){for(var _0x2e21cc=0x0;_0x2e21cc<_0x272085[_0xf778('0x47')][_0xf778('0x68')][_0xf778('0x58')];_0x2e21cc+=0x1){socket[_0xf778('0xbb')](_0xf778('0xbe'),{'UserId':Number(_0x272085[_0xf778('0x47')][_0xf778('0x68')][_0x2e21cc]),'FaxAccountId':Number(_0x272085['params']['id'])});}}else{socket[_0xf778('0xbb')](_0xf778('0xbe'),{'UserId':Number(_0x272085[_0xf778('0x47')][_0xf778('0x68')]),'FaxAccountId':Number(_0x272085[_0xf778('0x57')]['id'])});}});}})[_0xf778('0x1f')](respondWithStatusCode(_0x5bb707,null))[_0xf778('0x29')](handleError(_0x5bb707,null));};exports[_0xf778('0xbf')]=function(_0x476218,_0x52e6c6,_0x155f26){var _0x167e20={};var _0x1276b4={};var _0x50dfa8;var _0x2e56cb;return db['FaxAccount'][_0xf778('0x65')]({'where':{'id':_0x476218[_0xf778('0x57')]['id']}})['then'](handleEntityNotFound(_0x52e6c6,null))[_0xf778('0x1f')](function(_0x43b504){if(_0x43b504){_0x50dfa8=_0x43b504;_0x1276b4[_0xf778('0x46')]=_[_0xf778('0x48')](db[_0xf778('0x72')]['rawAttributes']);_0x1276b4[_0xf778('0x47')]=_['keys'](_0x476218[_0xf778('0x47')]);_0x1276b4['filters']=_['intersection'](_0x1276b4[_0xf778('0x46')],_0x1276b4[_0xf778('0x47')]);_0x167e20[_0xf778('0x4b')]=_[_0xf778('0x4a')](_0x1276b4[_0xf778('0x46')],qs[_0xf778('0x4c')](_0x476218[_0xf778('0x47')][_0xf778('0x4c')]));_0x167e20[_0xf778('0x4b')]=_0x167e20[_0xf778('0x4b')]['length']?_0x167e20['attributes']:_0x1276b4[_0xf778('0x46')];_0x167e20[_0xf778('0x4e')]=qs[_0xf778('0x4f')](_0x476218[_0xf778('0x47')]['sort']);_0x167e20[_0xf778('0x50')]=qs[_0xf778('0x49')](_[_0xf778('0x51')](_0x476218[_0xf778('0x47')],_0x1276b4['filters']));if(_0x476218['query'][_0xf778('0x52')]){_0x167e20['where']=_[_0xf778('0x53')](_0x167e20[_0xf778('0x50')],{'$or':_[_0xf778('0x40')](_0x167e20[_0xf778('0x4b')],function(_0x8cac0){var _0x471b67={};_0x471b67[_0x8cac0]={'$like':'%'+_0x476218[_0xf778('0x47')]['filter']+'%'};return _0x471b67;})});}_0x167e20=_[_0xf778('0x53')]({},_0x167e20,_0x476218[_0xf778('0x55')]);return _0x50dfa8['getAgents'](_0x167e20);}})['then'](function(_0x3b371b){if(_0x3b371b){_0x2e56cb=_0x3b371b[_0xf778('0x58')];if(!_0x476218[_0xf778('0x47')][_0xf778('0x6b')](_0xf778('0x4d'))){_0x167e20[_0xf778('0x2f')]=qs[_0xf778('0x2f')](_0x476218['query'][_0xf778('0x2f')]);_0x167e20[_0xf778('0x2e')]=qs['offset'](_0x476218['query'][_0xf778('0x2e')]);}return _0x50dfa8[_0xf778('0xbf')](_0x167e20);}})['then'](function(_0x3a7ac3){if(_0x3a7ac3){return _0x3a7ac3?{'count':_0x2e56cb,'rows':_0x3a7ac3}:null;}})[_0xf778('0x1f')](respondWithResult(_0x52e6c6,null))['catch'](handleError(_0x52e6c6,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5472=['update','remove','emit','hook','exports','events','../../mysqldb','setMaxListeners','save'];(function(_0x5f1805,_0x3b4c95){var _0x12a8b0=function(_0xc56f3f){while(--_0xc56f3f){_0x5f1805['push'](_0x5f1805['shift']());}};_0x12a8b0(++_0x3b4c95);}(_0x5472,0x17f));var _0x2547=function(_0x15e1b9,_0x1d32e6){_0x15e1b9=_0x15e1b9-0x0;var _0x418317=_0x5472[_0x15e1b9];return _0x418317;};'use strict';var EventEmitter=require(_0x2547('0x0'));var FaxAccount=require(_0x2547('0x1'))['db']['FaxAccount'];var FaxAccountEvents=new EventEmitter();FaxAccountEvents[_0x2547('0x2')](0x0);var events={'afterCreate':_0x2547('0x3'),'afterUpdate':_0x2547('0x4'),'afterDestroy':_0x2547('0x5')};function emitEvent(_0xadea63){return function(_0xca37a4,_0x49eb72,_0x4360dc){FaxAccountEvents[_0x2547('0x6')](_0xadea63+':'+_0xca37a4['id'],_0xca37a4);FaxAccountEvents[_0x2547('0x6')](_0xadea63,_0xca37a4);_0x4360dc(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];FaxAccount[_0x2547('0x7')](e,emitEvent(event));}}module[_0x2547('0x8')]=FaxAccountEvents;
\ No newline at end of file
+var _0x3045=['../../mysqldb','setMaxListeners','save','update','remove','emit','hasOwnProperty','hook','exports','events'];(function(_0x2be1c2,_0x46ca29){var _0x15f750=function(_0x785cf8){while(--_0x785cf8){_0x2be1c2['push'](_0x2be1c2['shift']());}};_0x15f750(++_0x46ca29);}(_0x3045,0xdb));var _0x5304=function(_0x4cc858,_0x2a1424){_0x4cc858=_0x4cc858-0x0;var _0x222404=_0x3045[_0x4cc858];return _0x222404;};'use strict';var EventEmitter=require(_0x5304('0x0'));var FaxAccount=require(_0x5304('0x1'))['db']['FaxAccount'];var FaxAccountEvents=new EventEmitter();FaxAccountEvents[_0x5304('0x2')](0x0);var events={'afterCreate':_0x5304('0x3'),'afterUpdate':_0x5304('0x4'),'afterDestroy':_0x5304('0x5')};function emitEvent(_0x2c36a6){return function(_0x560ed2,_0x127f3c,_0x53e300){FaxAccountEvents[_0x5304('0x6')](_0x2c36a6+':'+_0x560ed2['id'],_0x560ed2);FaxAccountEvents['emit'](_0x2c36a6,_0x560ed2);_0x53e300(null);};}for(var e in events){if(events[_0x5304('0x7')](e)){var event=events[e];FaxAccount[_0x5304('0x8')](e,emitEvent(event));}}module[_0x5304('0x9')]=FaxAccountEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0a4b=['exports','fax_accounts','lodash','moment','request-promise','../../config/environment','./faxAccount.attributes'];(function(_0x59c18f,_0x5d5229){var _0x48cebb=function(_0x51f82c){while(--_0x51f82c){_0x59c18f['push'](_0x59c18f['shift']());}};_0x48cebb(++_0x5d5229);}(_0x0a4b,0x18a));var _0xb0a4=function(_0x5d4dd7,_0x38229c){_0x5d4dd7=_0x5d4dd7-0x0;var _0x2ce0ad=_0x0a4b[_0x5d4dd7];return _0x2ce0ad;};'use strict';var _=require(_0xb0a4('0x0'));var util=require('util');var logger=require('../../config/logger')('api');var moment=require(_0xb0a4('0x1'));var BPromise=require('bluebird');var rp=require(_0xb0a4('0x2'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0xb0a4('0x3'));var attributes=require(_0xb0a4('0x4'));module[_0xb0a4('0x5')]=function(_0x258980,_0x533888){return _0x258980['define']('FaxAccount',attributes,{'tableName':_0xb0a4('0x6'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x7913=['fax_accounts','lodash','../../config/logger','moment','bluebird','request-promise','rimraf','../../config/environment','./faxAccount.attributes','exports'];(function(_0x5bf2b3,_0xfcd364){var _0x5e8a9b=function(_0x43546b){while(--_0x43546b){_0x5bf2b3['push'](_0x5bf2b3['shift']());}};_0x5e8a9b(++_0xfcd364);}(_0x7913,0x169));var _0x3791=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x7913[_0x20a584];return _0x4b41a8;};'use strict';var _=require(_0x3791('0x0'));var util=require('util');var logger=require(_0x3791('0x1'))('api');var moment=require(_0x3791('0x2'));var BPromise=require(_0x3791('0x3'));var rp=require(_0x3791('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x3791('0x5'));var config=require(_0x3791('0x6'));var attributes=require(_0x3791('0x7'));module[_0x3791('0x8')]=function(_0x84470,_0x41533){return _0x84470['define']('FaxAccount',attributes,{'tableName':_0x3791('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe1b6=['rpc','../../config/environment','client','http','redis','defaults','localhost','socket.io-emitter','./faxAccount.socket','register','request','then','info','debug','request\x20sent','stringify','error','code','FaxAccount,\x20%s,\x20%s','message','result','GetFaxAccount','options','raw','where','attributes','limit','include','map','model','fax','CmContact','describe','Sequelize','no\x20available\x20attributes','difference','keys','createdAt','updatedAt','CompanyId','ListId','body','isNil','ValidationError','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','from','FaxAccount','find','account','CmList','List','DESC','Applications','applications','list','orderBy','priority','asc','Contacts','contact','FaxInteraction','create','spread','get','autoclose','push','length','close','created','interaction','FaxMessage','ContactId','AttachmentId','UserId','User','name','unshift','startRouting','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger'];(function(_0x3b79bc,_0x1bbe20){var _0x44a5b3=function(_0x32119e){while(--_0x32119e){_0x3b79bc['push'](_0x3b79bc['shift']());}};_0x44a5b3(++_0x1bbe20);}(_0xe1b6,0x161));var _0x6e1b=function(_0x1a1529,_0x4122f4){_0x1a1529=_0x1a1529-0x0;var _0x25d5db=_0xe1b6[_0x1a1529];return _0x25d5db;};'use strict';var _=require('lodash');var util=require(_0x6e1b('0x0'));var moment=require(_0x6e1b('0x1'));var BPromise=require(_0x6e1b('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x6e1b('0x3'));var db=require(_0x6e1b('0x4'))['db'];var utils=require(_0x6e1b('0x5'));var logger=require(_0x6e1b('0x6'))(_0x6e1b('0x7'));var config=require(_0x6e1b('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x6e1b('0x9')][_0x6e1b('0xa')]({'port':0x232c});config[_0x6e1b('0xb')]=_[_0x6e1b('0xc')](config['redis'],{'host':_0x6e1b('0xd'),'port':0x18eb});var socket=require(_0x6e1b('0xe'))(new Redis(config[_0x6e1b('0xb')]));require(_0x6e1b('0xf'))[_0x6e1b('0x10')](socket);function respondWithRpcPromise(_0x41e29e,_0x56f278,_0xefd688){return new BPromise(function(_0x2ce09a,_0x378d3b){return client[_0x6e1b('0x11')](_0x41e29e,_0xefd688)[_0x6e1b('0x12')](function(_0x153af5){logger[_0x6e1b('0x13')]('FaxAccount,\x20%s,\x20%s',_0x56f278,'request\x20sent');logger[_0x6e1b('0x14')]('FaxAccount,\x20%s,\x20%s,\x20%s',_0x56f278,_0x6e1b('0x15'),JSON[_0x6e1b('0x16')](_0x153af5));if(_0x153af5[_0x6e1b('0x17')]){if(_0x153af5['error'][_0x6e1b('0x18')]===0x1f4){logger[_0x6e1b('0x17')](_0x6e1b('0x19'),_0x56f278,_0x153af5[_0x6e1b('0x17')][_0x6e1b('0x1a')]);return _0x378d3b(_0x153af5[_0x6e1b('0x17')][_0x6e1b('0x1a')]);}logger['error'](_0x6e1b('0x19'),_0x56f278,_0x153af5[_0x6e1b('0x17')][_0x6e1b('0x1a')]);return _0x2ce09a(_0x153af5[_0x6e1b('0x17')][_0x6e1b('0x1a')]);}else{logger[_0x6e1b('0x13')](_0x6e1b('0x19'),_0x56f278,_0x6e1b('0x15'));_0x2ce09a(_0x153af5[_0x6e1b('0x1b')]['message']);}})['catch'](function(_0x1e767c){logger['error'](_0x6e1b('0x19'),_0x56f278,_0x1e767c);_0x378d3b(_0x1e767c);});});}exports[_0x6e1b('0x1c')]=function(_0x20b630){var _0xc36b6b=this;return new Promise(function(_0x4b89d5,_0x385f6a){return db['FaxAccount']['findAll']({'raw':_0x20b630[_0x6e1b('0x1d')]?_0x20b630[_0x6e1b('0x1d')][_0x6e1b('0x1e')]===undefined?!![]:![]:!![],'where':_0x20b630[_0x6e1b('0x1d')]?_0x20b630[_0x6e1b('0x1d')][_0x6e1b('0x1f')]||null:null,'attributes':_0x20b630['options']?_0x20b630[_0x6e1b('0x1d')][_0x6e1b('0x20')]||null:null,'limit':_0x20b630[_0x6e1b('0x1d')]?_0x20b630[_0x6e1b('0x1d')][_0x6e1b('0x21')]||null:null,'include':_0x20b630[_0x6e1b('0x1d')]?_0x20b630[_0x6e1b('0x1d')][_0x6e1b('0x22')]?_[_0x6e1b('0x23')](_0x20b630[_0x6e1b('0x1d')][_0x6e1b('0x22')],function(_0x49a7f7){return{'model':db[_0x49a7f7[_0x6e1b('0x24')]],'as':_0x49a7f7['as'],'attributes':_0x49a7f7[_0x6e1b('0x20')],'include':_0x49a7f7['include']?_[_0x6e1b('0x23')](_0x49a7f7[_0x6e1b('0x22')],function(_0x290e23){return{'model':db[_0x290e23['model']],'as':_0x290e23['as'],'attributes':_0x290e23[_0x6e1b('0x20')],'include':_0x290e23['include']?_[_0x6e1b('0x23')](_0x290e23[_0x6e1b('0x22')],function(_0x452211){return{'model':db[_0x452211['model']],'as':_0x452211['as'],'attributes':_0x452211[_0x6e1b('0x20')]};}):[]};}):[]};}):[]:[]})[_0x6e1b('0x12')](function(_0x1df682){logger[_0x6e1b('0x13')](_0x6e1b('0x1c'),_0x20b630);logger['debug']('GetFaxAccount',_0x20b630,JSON[_0x6e1b('0x16')](_0x1df682));_0x4b89d5(_0x1df682);})['catch'](function(_0x1e689f){logger[_0x6e1b('0x17')](_0x6e1b('0x1c'),_0x1e689f[_0x6e1b('0x1a')],_0x20b630);_0x385f6a(_0xc36b6b[_0x6e1b('0x17')](0x1f4,_0x1e689f[_0x6e1b('0x1a')]));});});};exports['NotifyFaxAccount']=function(_0xdac263,_0x54984a,_0x5237c3){var _0x14180c=this;return new Promise(function(_0x422966,_0x2dfa45){var _0x6f2064={'body':_0xdac263['body'],'channel':_0x6e1b('0x25')};var _0x28604b=[];var _0x2ba1c5=[];var _0x2b404d={};return db[_0x6e1b('0x26')][_0x6e1b('0x27')]()[_0x6e1b('0x12')](function(_0x12dcba){if(!_0x12dcba){throw new db[(_0x6e1b('0x28'))]['ValidationError'](_0x6e1b('0x29'));}_0x28604b=_[_0x6e1b('0x2a')](_[_0x6e1b('0x2b')](_0x12dcba),[_0x6e1b('0x2c'),_0x6e1b('0x2d')]);_0x2ba1c5=_[_0x6e1b('0x2a')](_['keys'](_0x12dcba),[_0x6e1b('0x2c'),_0x6e1b('0x2d'),_0x6e1b('0x2e'),_0x6e1b('0x2f')]);if(_0xdac263['body']['id']){delete _0xdac263[_0x6e1b('0x30')]['id'];}if(_[_0x6e1b('0x31')](_0xdac263[_0x6e1b('0x30')]['from'])){throw new db[(_0x6e1b('0x28'))][(_0x6e1b('0x32'))](_0x6e1b('0x33'));}if(_[_0x6e1b('0x31')](_0xdac263[_0x6e1b('0x30')][_0x6e1b('0x30')])||_0xdac263[_0x6e1b('0x30')]['body']===''){throw new db[(_0x6e1b('0x28'))][(_0x6e1b('0x32'))](_0x6e1b('0x34'));}if(_[_0x6e1b('0x31')](_0xdac263['body'][_0x6e1b('0x35')])){throw new db[(_0x6e1b('0x28'))]['ValidationError'](_0x6e1b('0x36')+_0x2ba1c5);}if(!_[_0x6e1b('0x37')](_0x2ba1c5,_0xdac263[_0x6e1b('0x30')][_0x6e1b('0x35')])){throw new db[(_0x6e1b('0x28'))][(_0x6e1b('0x32'))](_0x6e1b('0x38')+_0x2ba1c5);}_0x2b404d[_0xdac263[_0x6e1b('0x30')][_0x6e1b('0x35')]]=_0xdac263[_0x6e1b('0x30')][_0x6e1b('0x39')];})[_0x6e1b('0x12')](function(){return db[_0x6e1b('0x3a')][_0x6e1b('0x3b')]({'where':{'id':_0xdac263[_0x6e1b('0x3c')]['id']},'include':[{'model':db[_0x6e1b('0x3d')],'as':_0x6e1b('0x3e'),'include':[{'model':db['CmContact'],'as':'Contacts','where':_0x2b404d,'limit':0x1,'order':[['updatedAt',_0x6e1b('0x3f')]]}]},{'model':db['FaxApplication'],'as':_0x6e1b('0x40')}]});})[_0x6e1b('0x12')](function(_0x221aaa){if(_0x221aaa&&_0x221aaa['List']){var _0x3c44ee=_0x221aaa['get']({'plain':!![]});_0x6f2064['account']=_0x3c44ee;_0x6f2064[_0x6e1b('0x41')]=_0x3c44ee[_0x6e1b('0x40')];_0x6f2064[_0x6e1b('0x42')]=_0x3c44ee[_0x6e1b('0x3e')];_0x6f2064[_0x6e1b('0x41')]=_[_0x6e1b('0x43')](_0x6f2064[_0x6e1b('0x41')],[_0x6e1b('0x44')],[_0x6e1b('0x45')]);if(_0x6f2064[_0x6e1b('0x3c')][_0x6e1b('0x40')]){delete _0x6f2064[_0x6e1b('0x3c')]['Applications'];}if(_0x6f2064[_0x6e1b('0x3c')][_0x6e1b('0x3e')]&&_0x6f2064[_0x6e1b('0x3c')]['List'][_0x6e1b('0x46')]['length']){return _0x6f2064[_0x6e1b('0x3c')][_0x6e1b('0x3e')][_0x6e1b('0x46')][0x0];}var _0x281562=_[_0x6e1b('0xc')](_0xdac263[_0x6e1b('0x30')],{'firstName':_0xdac263[_0x6e1b('0x30')][_0x6e1b('0x39')],'ListId':_0x3c44ee[_0x6e1b('0x2f')]});_0x281562[_0xdac263['body'][_0x6e1b('0x35')]]=_0xdac263[_0x6e1b('0x30')][_0x6e1b('0x39')];return db[_0x6e1b('0x26')]['create'](_0x281562,{'fields':_0x28604b,'raw':!![]});}})['then'](function(_0x12838e){_0x6f2064[_0x6e1b('0x47')]=_0x12838e;if(_0x12838e){var _0x4c1285={'ContactId':_0x12838e['id'],'FaxAccountId':_0xdac263[_0x6e1b('0x3c')]['id'],'fax':_0x12838e['fax']};return db[_0x6e1b('0x48')][_0x6e1b('0x3b')]({'where':{'ContactId':_0x12838e['id'],'closed':![],'FaxAccountId':_0xdac263[_0x6e1b('0x3c')]['id']}})[_0x6e1b('0x12')](function(_0x398be3){if(_0x398be3){return[_0x398be3,![]];}return db[_0x6e1b('0x48')][_0x6e1b('0x49')](_0x4c1285)[_0x6e1b('0x12')](function(_0x4209df){return[_0x4209df,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})[_0x6e1b('0x4a')](function(_0x32636d,_0x11f7b6){var _0x5d1206=_0x32636d[_0x6e1b('0x4b')]({'plain':!![]});if(_0x11f7b6){if(_0x6f2064[_0x6e1b('0x3c')][_0x6e1b('0x4c')]){_0x6f2064[_0x6e1b('0x41')][_0x6e1b('0x4d')]({'id':0x0,'priority':_0x6f2064[_0x6e1b('0x41')][_0x6e1b('0x4e')]+0x1,'app':_0x6e1b('0x4f'),'appdata':'unmanaged','interval':'*,*,*,*'});}_0x5d1206[_0x6e1b('0x50')]=!![];}else{_0x5d1206[_0x6e1b('0x50')]=![];}_0x6f2064[_0x6e1b('0x51')]=_0x5d1206;return db[_0x6e1b('0x52')][_0x6e1b('0x49')]({'body':_0xdac263[_0x6e1b('0x30')][_0x6e1b('0x30')],'FaxAccountId':_0xdac263['account']['id'],'FaxInteractionId':_0x32636d['id'],'direction':'in','ContactId':_0x32636d[_0x6e1b('0x53')],'AttachmentId':_0xdac263[_0x6e1b('0x30')][_0x6e1b('0x54')]});})['then'](function(_0x160c3c){_0x6f2064[_0x6e1b('0x1a')]=_0x160c3c;if(_0x6f2064['interaction'][_0x6e1b('0x55')]){return db[_0x6e1b('0x56')][_0x6e1b('0x3b')]({'attributes':['id',_0x6e1b('0x57')],'where':{'id':_0x6f2064[_0x6e1b('0x51')]['UserId']}})[_0x6e1b('0x12')](function(_0x265827){if(_0x265827){_0x6f2064[_0x6e1b('0x41')][_0x6e1b('0x58')]({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x265827[_0x6e1b('0x57')]+','+(_0x6f2064[_0x6e1b('0x3c')]['waitForTheAssignedAgent']||0xa),'interval':'*,*,*,*'});}return respondWithRpcPromise('Start',_0x6e1b('0x59'),_0x6f2064);});}return respondWithRpcPromise('Start','startRouting',_0x6f2064);})['then'](function(_0x81d5e0){_0x422966(_0x81d5e0);})['catch'](function(_0x2151ec){_0x2dfa45(_0x14180c[_0x6e1b('0x17')](0x1f4,_0x2151ec[_0x6e1b('0x1a')]));});});};
\ No newline at end of file
+var _0xecd8=['interaction','ContactId','AttachmentId','UserId','name','unshift','agent','waitForTheAssignedAgent','*,*,*,*','startRouting','Start','bluebird','randomstring','ioredis','../../config/logger','../../config/environment','jayson/promise','http','redis','defaults','./faxAccount.socket','register','request','then','info','FaxAccount,\x20%s,\x20%s','debug','request\x20sent','stringify','error','code','message','catch','GetFaxAccount','findAll','options','raw','attributes','limit','include','map','model','fax','CmContact','ValidationError','no\x20available\x20attributes','difference','createdAt','updatedAt','keys','ListId','body','from','Sequelize','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','FaxAccount','find','CmList','List','Contacts','DESC','FaxApplication','Applications','get','applications','list','orderBy','priority','account','length','contact','FaxInteraction','create','Contact\x20not\x20found','autoclose','close','unmanaged','created'];(function(_0x12dfa1,_0x361fea){var _0x121f0b=function(_0x2c0445){while(--_0x2c0445){_0x12dfa1['push'](_0x12dfa1['shift']());}};_0x121f0b(++_0x361fea);}(_0xecd8,0xaf));var _0x8ecd=function(_0x4040bd,_0x4fbafd){_0x4040bd=_0x4040bd-0x0;var _0xf0b47a=_0xecd8[_0x4040bd];return _0xf0b47a;};'use strict';var _=require('lodash');var util=require('util');var moment=require('moment');var BPromise=require(_0x8ecd('0x0'));var rs=require(_0x8ecd('0x1'));var fs=require('fs');var Redis=require(_0x8ecd('0x2'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x8ecd('0x3'))('rpc');var config=require(_0x8ecd('0x4'));var jayson=require(_0x8ecd('0x5'));var client=jayson['client'][_0x8ecd('0x6')]({'port':0x232c});config[_0x8ecd('0x7')]=_[_0x8ecd('0x8')](config[_0x8ecd('0x7')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0x8ecd('0x9'))[_0x8ecd('0xa')](socket);function respondWithRpcPromise(_0x40212f,_0x4e8ea4,_0x5aa8d3){return new BPromise(function(_0x329ff5,_0xb2e2fe){return client[_0x8ecd('0xb')](_0x40212f,_0x5aa8d3)[_0x8ecd('0xc')](function(_0x29834d){logger[_0x8ecd('0xd')](_0x8ecd('0xe'),_0x4e8ea4,'request\x20sent');logger[_0x8ecd('0xf')]('FaxAccount,\x20%s,\x20%s,\x20%s',_0x4e8ea4,_0x8ecd('0x10'),JSON[_0x8ecd('0x11')](_0x29834d));if(_0x29834d[_0x8ecd('0x12')]){if(_0x29834d[_0x8ecd('0x12')][_0x8ecd('0x13')]===0x1f4){logger[_0x8ecd('0x12')](_0x8ecd('0xe'),_0x4e8ea4,_0x29834d[_0x8ecd('0x12')][_0x8ecd('0x14')]);return _0xb2e2fe(_0x29834d[_0x8ecd('0x12')][_0x8ecd('0x14')]);}logger[_0x8ecd('0x12')](_0x8ecd('0xe'),_0x4e8ea4,_0x29834d[_0x8ecd('0x12')][_0x8ecd('0x14')]);return _0x329ff5(_0x29834d['error'][_0x8ecd('0x14')]);}else{logger[_0x8ecd('0xd')](_0x8ecd('0xe'),_0x4e8ea4,_0x8ecd('0x10'));_0x329ff5(_0x29834d['result'][_0x8ecd('0x14')]);}})[_0x8ecd('0x15')](function(_0x775a30){logger['error'](_0x8ecd('0xe'),_0x4e8ea4,_0x775a30);_0xb2e2fe(_0x775a30);});});}exports[_0x8ecd('0x16')]=function(_0x1dbdd3){var _0x23e056=this;return new Promise(function(_0x3af4ee,_0x58c053){return db['FaxAccount'][_0x8ecd('0x17')]({'raw':_0x1dbdd3[_0x8ecd('0x18')]?_0x1dbdd3[_0x8ecd('0x18')][_0x8ecd('0x19')]===undefined?!![]:![]:!![],'where':_0x1dbdd3[_0x8ecd('0x18')]?_0x1dbdd3['options']['where']||null:null,'attributes':_0x1dbdd3[_0x8ecd('0x18')]?_0x1dbdd3[_0x8ecd('0x18')][_0x8ecd('0x1a')]||null:null,'limit':_0x1dbdd3[_0x8ecd('0x18')]?_0x1dbdd3['options'][_0x8ecd('0x1b')]||null:null,'include':_0x1dbdd3[_0x8ecd('0x18')]?_0x1dbdd3[_0x8ecd('0x18')][_0x8ecd('0x1c')]?_[_0x8ecd('0x1d')](_0x1dbdd3[_0x8ecd('0x18')][_0x8ecd('0x1c')],function(_0x27871d){return{'model':db[_0x27871d[_0x8ecd('0x1e')]],'as':_0x27871d['as'],'attributes':_0x27871d[_0x8ecd('0x1a')],'include':_0x27871d[_0x8ecd('0x1c')]?_[_0x8ecd('0x1d')](_0x27871d[_0x8ecd('0x1c')],function(_0x5bfa2a){return{'model':db[_0x5bfa2a[_0x8ecd('0x1e')]],'as':_0x5bfa2a['as'],'attributes':_0x5bfa2a[_0x8ecd('0x1a')],'include':_0x5bfa2a[_0x8ecd('0x1c')]?_[_0x8ecd('0x1d')](_0x5bfa2a[_0x8ecd('0x1c')],function(_0x5076ec){return{'model':db[_0x5076ec[_0x8ecd('0x1e')]],'as':_0x5076ec['as'],'attributes':_0x5076ec[_0x8ecd('0x1a')]};}):[]};}):[]};}):[]:[]})['then'](function(_0xbd71a3){logger[_0x8ecd('0xd')]('GetFaxAccount',_0x1dbdd3);logger['debug'](_0x8ecd('0x16'),_0x1dbdd3,JSON[_0x8ecd('0x11')](_0xbd71a3));_0x3af4ee(_0xbd71a3);})['catch'](function(_0x2b7fb4){logger[_0x8ecd('0x12')](_0x8ecd('0x16'),_0x2b7fb4['message'],_0x1dbdd3);_0x58c053(_0x23e056[_0x8ecd('0x12')](0x1f4,_0x2b7fb4['message']));});});};exports['NotifyFaxAccount']=function(_0x578ea8,_0x1830b2,_0x1c1322){var _0x223a7c=this;return new Promise(function(_0x35cec9,_0x228f78){var _0x43ffdd={'body':_0x578ea8['body'],'channel':_0x8ecd('0x1f')};var _0xf680fa=[];var _0x2ae7f2=[];var _0x3856b3={};return db[_0x8ecd('0x20')]['describe']()[_0x8ecd('0xc')](function(_0x354906){if(!_0x354906){throw new db['Sequelize'][(_0x8ecd('0x21'))](_0x8ecd('0x22'));}_0xf680fa=_[_0x8ecd('0x23')](_['keys'](_0x354906),[_0x8ecd('0x24'),_0x8ecd('0x25')]);_0x2ae7f2=_['difference'](_[_0x8ecd('0x26')](_0x354906),['createdAt',_0x8ecd('0x25'),'CompanyId',_0x8ecd('0x27')]);if(_0x578ea8[_0x8ecd('0x28')]['id']){delete _0x578ea8[_0x8ecd('0x28')]['id'];}if(_['isNil'](_0x578ea8[_0x8ecd('0x28')][_0x8ecd('0x29')])){throw new db[(_0x8ecd('0x2a'))]['ValidationError'](_0x8ecd('0x2b'));}if(_['isNil'](_0x578ea8[_0x8ecd('0x28')][_0x8ecd('0x28')])||_0x578ea8[_0x8ecd('0x28')][_0x8ecd('0x28')]===''){throw new db['Sequelize'][(_0x8ecd('0x21'))](_0x8ecd('0x2c'));}if(_['isNil'](_0x578ea8[_0x8ecd('0x28')][_0x8ecd('0x2d')])){throw new db[(_0x8ecd('0x2a'))]['ValidationError'](_0x8ecd('0x2e')+_0x2ae7f2);}if(!_['includes'](_0x2ae7f2,_0x578ea8[_0x8ecd('0x28')][_0x8ecd('0x2d')])){throw new db['Sequelize']['ValidationError'](_0x8ecd('0x2f')+_0x2ae7f2);}_0x3856b3[_0x578ea8[_0x8ecd('0x28')][_0x8ecd('0x2d')]]=_0x578ea8[_0x8ecd('0x28')][_0x8ecd('0x29')];})['then'](function(){return db[_0x8ecd('0x30')][_0x8ecd('0x31')]({'where':{'id':_0x578ea8['account']['id']},'include':[{'model':db[_0x8ecd('0x32')],'as':_0x8ecd('0x33'),'include':[{'model':db[_0x8ecd('0x20')],'as':_0x8ecd('0x34'),'where':_0x3856b3,'limit':0x1,'order':[[_0x8ecd('0x25'),_0x8ecd('0x35')]]}]},{'model':db[_0x8ecd('0x36')],'as':_0x8ecd('0x37')}]});})[_0x8ecd('0xc')](function(_0x1feef5){if(_0x1feef5&&_0x1feef5[_0x8ecd('0x33')]){var _0x1fc536=_0x1feef5[_0x8ecd('0x38')]({'plain':!![]});_0x43ffdd['account']=_0x1fc536;_0x43ffdd[_0x8ecd('0x39')]=_0x1fc536[_0x8ecd('0x37')];_0x43ffdd[_0x8ecd('0x3a')]=_0x1fc536[_0x8ecd('0x33')];_0x43ffdd['applications']=_[_0x8ecd('0x3b')](_0x43ffdd['applications'],[_0x8ecd('0x3c')],['asc']);if(_0x43ffdd['account'][_0x8ecd('0x37')]){delete _0x43ffdd[_0x8ecd('0x3d')][_0x8ecd('0x37')];}if(_0x43ffdd[_0x8ecd('0x3d')][_0x8ecd('0x33')]&&_0x43ffdd[_0x8ecd('0x3d')][_0x8ecd('0x33')][_0x8ecd('0x34')][_0x8ecd('0x3e')]){return _0x43ffdd['account']['List'][_0x8ecd('0x34')][0x0];}var _0x46ef9d=_[_0x8ecd('0x8')](_0x578ea8['body'],{'firstName':_0x578ea8['body'][_0x8ecd('0x29')],'ListId':_0x1fc536[_0x8ecd('0x27')]});_0x46ef9d[_0x578ea8[_0x8ecd('0x28')][_0x8ecd('0x2d')]]=_0x578ea8['body'][_0x8ecd('0x29')];return db[_0x8ecd('0x20')]['create'](_0x46ef9d,{'fields':_0xf680fa,'raw':!![]});}})['then'](function(_0x559449){_0x43ffdd[_0x8ecd('0x3f')]=_0x559449;if(_0x559449){var _0x39116c={'ContactId':_0x559449['id'],'FaxAccountId':_0x578ea8[_0x8ecd('0x3d')]['id'],'fax':_0x559449[_0x8ecd('0x1f')]};return db['FaxInteraction'][_0x8ecd('0x31')]({'where':{'ContactId':_0x559449['id'],'closed':![],'FaxAccountId':_0x578ea8[_0x8ecd('0x3d')]['id']}})[_0x8ecd('0xc')](function(_0xf3b539){if(_0xf3b539){return[_0xf3b539,![]];}return db[_0x8ecd('0x40')][_0x8ecd('0x41')](_0x39116c)[_0x8ecd('0xc')](function(_0x543eb0){return[_0x543eb0,!![]];});});}else{throw new Error(_0x8ecd('0x42'));}})['spread'](function(_0x152047,_0x3ddc53){var _0x33e6fa=_0x152047[_0x8ecd('0x38')]({'plain':!![]});if(_0x3ddc53){if(_0x43ffdd[_0x8ecd('0x3d')][_0x8ecd('0x43')]){_0x43ffdd[_0x8ecd('0x39')]['push']({'id':0x0,'priority':_0x43ffdd[_0x8ecd('0x39')][_0x8ecd('0x3e')]+0x1,'app':_0x8ecd('0x44'),'appdata':_0x8ecd('0x45'),'interval':'*,*,*,*'});}_0x33e6fa[_0x8ecd('0x46')]=!![];}else{_0x33e6fa[_0x8ecd('0x46')]=![];}_0x43ffdd[_0x8ecd('0x47')]=_0x33e6fa;return db['FaxMessage'][_0x8ecd('0x41')]({'body':_0x578ea8[_0x8ecd('0x28')][_0x8ecd('0x28')],'FaxAccountId':_0x578ea8[_0x8ecd('0x3d')]['id'],'FaxInteractionId':_0x152047['id'],'direction':'in','ContactId':_0x152047[_0x8ecd('0x48')],'AttachmentId':_0x578ea8['body'][_0x8ecd('0x49')]});})[_0x8ecd('0xc')](function(_0x35f805){_0x43ffdd[_0x8ecd('0x14')]=_0x35f805;if(_0x43ffdd[_0x8ecd('0x47')][_0x8ecd('0x4a')]){return db['User'][_0x8ecd('0x31')]({'attributes':['id',_0x8ecd('0x4b')],'where':{'id':_0x43ffdd[_0x8ecd('0x47')][_0x8ecd('0x4a')]}})[_0x8ecd('0xc')](function(_0x348ef9){if(_0x348ef9){_0x43ffdd[_0x8ecd('0x39')][_0x8ecd('0x4c')]({'id':0x0,'priority':0x0,'app':_0x8ecd('0x4d'),'appdata':_0x348ef9[_0x8ecd('0x4b')]+','+(_0x43ffdd[_0x8ecd('0x3d')][_0x8ecd('0x4e')]||0xa),'interval':_0x8ecd('0x4f')});}return respondWithRpcPromise('Start',_0x8ecd('0x50'),_0x43ffdd);});}return respondWithRpcPromise(_0x8ecd('0x51'),_0x8ecd('0x50'),_0x43ffdd);})[_0x8ecd('0xc')](function(_0x58aed6){_0x35cec9(_0x58aed6);})[_0x8ecd('0x15')](function(_0x472008){_0x228f78(_0x223a7c[_0x8ecd('0x12')](0x1f4,_0x472008[_0x8ecd('0x14')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3ebe=['save','remove','emit','removeListener','register','faxAccount:'];(function(_0x33bc64,_0x4d1e92){var _0x3fdd34=function(_0x4b40a4){while(--_0x4b40a4){_0x33bc64['push'](_0x33bc64['shift']());}};_0x3fdd34(++_0x4d1e92);}(_0x3ebe,0x108));var _0xe3eb=function(_0x274d24,_0x424a5f){_0x274d24=_0x274d24-0x0;var _0x457fd0=_0x3ebe[_0x274d24];return _0x457fd0;};'use strict';var FaxAccountEvents=require('./faxAccount.events');var events=[_0xe3eb('0x0'),_0xe3eb('0x1'),'update'];function createListener(_0x2ea246,_0x3b8460){return function(_0x71217d){_0x3b8460[_0xe3eb('0x2')](_0x2ea246,_0x71217d);};}function removeListener(_0x13a68d,_0x336edb){return function(){FaxAccountEvents[_0xe3eb('0x3')](_0x13a68d,_0x336edb);};}exports[_0xe3eb('0x4')]=function(_0x4c043e){for(var _0x40cced=0x0,_0x2241d9=events['length'];_0x40cced<_0x2241d9;_0x40cced++){var _0x433847=events[_0x40cced];var _0xa23217=createListener(_0xe3eb('0x5')+_0x433847,_0x4c043e);FaxAccountEvents['on'](_0x433847,_0xa23217);}};
\ No newline at end of file
+var _0xfd98=['remove','update','removeListener','length','faxAccount:','./faxAccount.events'];(function(_0x6db95d,_0xf1835b){var _0x2c52bd=function(_0x166539){while(--_0x166539){_0x6db95d['push'](_0x6db95d['shift']());}};_0x2c52bd(++_0xf1835b);}(_0xfd98,0x143));var _0x8fd9=function(_0x4a8812,_0x430080){_0x4a8812=_0x4a8812-0x0;var _0x55a784=_0xfd98[_0x4a8812];return _0x55a784;};'use strict';var FaxAccountEvents=require(_0x8fd9('0x0'));var events=['save',_0x8fd9('0x1'),_0x8fd9('0x2')];function createListener(_0x143907,_0x4e8910){return function(_0x3d641b){_0x4e8910['emit'](_0x143907,_0x3d641b);};}function removeListener(_0x1fafb9,_0xa03d49){return function(){FaxAccountEvents[_0x8fd9('0x3')](_0x1fafb9,_0xa03d49);};}exports['register']=function(_0x395d91){for(var _0x341040=0x0,_0x4b7ad4=events[_0x8fd9('0x4')];_0x341040<_0x4b7ad4;_0x341040++){var _0x11042a=events[_0x341040];var _0x2c29e5=createListener(_0x8fd9('0x5')+_0x11042a,_0x395d91);FaxAccountEvents['on'](_0x11042a,_0x2c29e5);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./faxAccount.controller','get','index','/describe','show','/:id/dispositions','isAuthenticated','getDispositions','/:id/interactions','getInteractions','/:id/applications','/:id/messages','getMessages','/:id/users','getAgents','post','addDisposition','/:id/canned_answers','addAnswer','addInteraction','addApplications','addAccountApplications','/updateaccountapplications','/:id/send','send','addAgents','put','/:id','update','destroy','delete','removeDispositions','removeAnswers','removeAgents','exports','multer','util','path'];(function(_0x314441,_0x5e5d2d){var _0x3c7849=function(_0x470aa2){while(--_0x470aa2){_0x314441['push'](_0x314441['shift']());}};_0x3c7849(++_0x5e5d2d);}(_0xa9e0,0x123));var _0x0a9e=function(_0x297fd3,_0x115406){_0x297fd3=_0x297fd3-0x0;var _0x2af381=_0xa9e0[_0x297fd3];return _0x2af381;};'use strict';var multer=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var path=require(_0x0a9e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0a9e('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x0a9e('0x4'));var interaction=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var controller=require(_0x0a9e('0x7'));router[_0x0a9e('0x8')]('/',auth['isAuthenticated'](),controller[_0x0a9e('0x9')]);router[_0x0a9e('0x8')](_0x0a9e('0xa'),auth['isAuthenticated'](),controller['describe']);router[_0x0a9e('0x8')]('/:id',auth['isAuthenticated'](),controller[_0x0a9e('0xb')]);router[_0x0a9e('0x8')](_0x0a9e('0xc'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0xe')]);router[_0x0a9e('0x8')]('/:id/canned_answers',auth['isAuthenticated'](),controller['getAnswers']);router['get'](_0x0a9e('0xf'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x10')]);router[_0x0a9e('0x8')](_0x0a9e('0x11'),auth[_0x0a9e('0xd')](),controller['getApplications']);router[_0x0a9e('0x8')](_0x0a9e('0x12'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x13')]);router[_0x0a9e('0x8')](_0x0a9e('0x14'),auth['isAuthenticated'](),controller[_0x0a9e('0x15')]);router['post']('/',auth[_0x0a9e('0xd')](),controller['create']);router[_0x0a9e('0x16')](_0x0a9e('0xc'),auth['isAuthenticated'](),controller[_0x0a9e('0x17')]);router['post'](_0x0a9e('0x18'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x19')]);router[_0x0a9e('0x16')](_0x0a9e('0xf'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x1a')]);router[_0x0a9e('0x16')](_0x0a9e('0x11'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x1b')]);router[_0x0a9e('0x16')]('/addaccountapplications',auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x1c')]);router['post'](_0x0a9e('0x1d'),auth['isAuthenticated'](),controller['updateAccountApplications']);router[_0x0a9e('0x16')](_0x0a9e('0x1e'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x1f')]);router['post'](_0x0a9e('0x14'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x20')]);router[_0x0a9e('0x21')](_0x0a9e('0x22'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x23')]);router['delete']('/:id',auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x24')]);router[_0x0a9e('0x25')](_0x0a9e('0xc'),auth['isAuthenticated'](),controller[_0x0a9e('0x26')]);router['delete'](_0x0a9e('0x18'),auth['isAuthenticated'](),controller[_0x0a9e('0x27')]);router[_0x0a9e('0x25')](_0x0a9e('0x14'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x28')]);module[_0x0a9e('0x29')]=router;
\ No newline at end of file
+var _0xa9e0=['Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./faxAccount.controller','get','index','/describe','show','/:id/dispositions','isAuthenticated','getDispositions','/:id/interactions','getInteractions','/:id/applications','/:id/messages','getMessages','/:id/users','getAgents','post','addDisposition','/:id/canned_answers','addAnswer','addInteraction','addApplications','addAccountApplications','/updateaccountapplications','/:id/send','send','addAgents','put','/:id','update','destroy','delete','removeDispositions','removeAnswers','removeAgents','exports','multer','util','path'];(function(_0x528e9e,_0x4d8b6c){var _0x3ca7d4=function(_0xf84371){while(--_0xf84371){_0x528e9e['push'](_0x528e9e['shift']());}};_0x3ca7d4(++_0x4d8b6c);}(_0xa9e0,0x123));var _0x0a9e=function(_0x1b349a,_0x22222c){_0x1b349a=_0x1b349a-0x0;var _0x5d1f7c=_0xa9e0[_0x1b349a];return _0x5d1f7c;};'use strict';var multer=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var path=require(_0x0a9e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0a9e('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x0a9e('0x4'));var interaction=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var controller=require(_0x0a9e('0x7'));router[_0x0a9e('0x8')]('/',auth['isAuthenticated'](),controller[_0x0a9e('0x9')]);router[_0x0a9e('0x8')](_0x0a9e('0xa'),auth['isAuthenticated'](),controller['describe']);router[_0x0a9e('0x8')]('/:id',auth['isAuthenticated'](),controller[_0x0a9e('0xb')]);router[_0x0a9e('0x8')](_0x0a9e('0xc'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0xe')]);router[_0x0a9e('0x8')]('/:id/canned_answers',auth['isAuthenticated'](),controller['getAnswers']);router['get'](_0x0a9e('0xf'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x10')]);router[_0x0a9e('0x8')](_0x0a9e('0x11'),auth[_0x0a9e('0xd')](),controller['getApplications']);router[_0x0a9e('0x8')](_0x0a9e('0x12'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x13')]);router[_0x0a9e('0x8')](_0x0a9e('0x14'),auth['isAuthenticated'](),controller[_0x0a9e('0x15')]);router['post']('/',auth[_0x0a9e('0xd')](),controller['create']);router[_0x0a9e('0x16')](_0x0a9e('0xc'),auth['isAuthenticated'](),controller[_0x0a9e('0x17')]);router['post'](_0x0a9e('0x18'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x19')]);router[_0x0a9e('0x16')](_0x0a9e('0xf'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x1a')]);router[_0x0a9e('0x16')](_0x0a9e('0x11'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x1b')]);router[_0x0a9e('0x16')]('/addaccountapplications',auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x1c')]);router['post'](_0x0a9e('0x1d'),auth['isAuthenticated'](),controller['updateAccountApplications']);router[_0x0a9e('0x16')](_0x0a9e('0x1e'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x1f')]);router['post'](_0x0a9e('0x14'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x20')]);router[_0x0a9e('0x21')](_0x0a9e('0x22'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x23')]);router['delete']('/:id',auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x24')]);router[_0x0a9e('0x25')](_0x0a9e('0xc'),auth['isAuthenticated'](),controller[_0x0a9e('0x26')]);router['delete'](_0x0a9e('0x18'),auth['isAuthenticated'](),controller[_0x0a9e('0x27')]);router[_0x0a9e('0x25')](_0x0a9e('0x14'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x28')]);module[_0x0a9e('0x29')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x86eb=['TEXT','*,*,*,*','exports','STRING','noop'];(function(_0x631a3c,_0x1b61b6){var _0x2bdfa3=function(_0x21711b){while(--_0x21711b){_0x631a3c['push'](_0x631a3c['shift']());}};_0x2bdfa3(++_0x1b61b6);}(_0x86eb,0x188));var _0xb86e=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0x86eb[_0x122ef9];return _0x42fba0;};'use strict';var Sequelize=require('sequelize');module[_0xb86e('0x0')]={'priority':{'type':Sequelize['INTEGER'],'allowNull':![]},'app':{'type':Sequelize[_0xb86e('0x1')],'allowNull':![],'defaultValue':_0xb86e('0x2')},'appdata':{'type':Sequelize[_0xb86e('0x3')]()},'description':{'type':Sequelize['STRING']},'interval':{'type':Sequelize[_0xb86e('0x1')],'defaultValue':_0xb86e('0x4')}};
\ No newline at end of file
+var _0x5ec0=['TEXT','*,*,*,*','sequelize','INTEGER','STRING','noop'];(function(_0x1a37ec,_0x2dedfd){var _0x45aea5=function(_0x53ce3a){while(--_0x53ce3a){_0x1a37ec['push'](_0x1a37ec['shift']());}};_0x45aea5(++_0x2dedfd);}(_0x5ec0,0x182));var _0x05ec=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x5ec0[_0x321bb2];return _0x9c12ed;};'use strict';var Sequelize=require(_0x05ec('0x0'));module['exports']={'priority':{'type':Sequelize[_0x05ec('0x1')],'allowNull':![]},'app':{'type':Sequelize[_0x05ec('0x2')],'allowNull':![],'defaultValue':_0x05ec('0x3')},'appdata':{'type':Sequelize[_0x05ec('0x4')]()},'description':{'type':Sequelize[_0x05ec('0x2')]},'interval':{'type':Sequelize[_0x05ec('0x2')],'defaultValue':_0x05ec('0x5')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1393=['filters','filter','merge','type','VIRTUAL','options','FaxApplication','includeAll','include','findAll','rows','catch','show','params','rawAttributes','length','create','body','find','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','undefined','count','offset','limit','set','Content-Range','json','apply','reject','save','update','then','destroy','sendStatus','error','stack','name','send','index','map','key','query','keys','intersection','model','attributes','fields','nolimit','sort','where'];(function(_0x23f7d3,_0x332d37){var _0x360887=function(_0xf2aa13){while(--_0xf2aa13){_0x23f7d3['push'](_0x23f7d3['shift']());}};_0x360887(++_0x332d37);}(_0x1393,0x199));var _0x3139=function(_0x4a9fb1,_0x273043){_0x4a9fb1=_0x4a9fb1-0x0;var _0x348672=_0x1393[_0x4a9fb1];return _0x348672;};'use strict';var emlformat=require(_0x3139('0x0'));var rimraf=require(_0x3139('0x1'));var zipdir=require(_0x3139('0x2'));var jsonpatch=require(_0x3139('0x3'));var rp=require(_0x3139('0x4'));var moment=require(_0x3139('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x3139('0x6'));var util=require(_0x3139('0x7'));var path=require(_0x3139('0x8'));var sox=require(_0x3139('0x9'));var csv=require(_0x3139('0xa'));var ejs=require(_0x3139('0xb'));var fs=require('fs');var fs_extra=require(_0x3139('0xc'));var _=require(_0x3139('0xd'));var squel=require(_0x3139('0xe'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x3139('0xf'));var toCsv=require(_0x3139('0xa'));var querystring=require('querystring');var Papa=require(_0x3139('0x10'));var Redis=require(_0x3139('0x11'));var authService=require(_0x3139('0x12'));var qs=require(_0x3139('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x3139('0x14'));var logger=require(_0x3139('0x15'))(_0x3139('0x16'));var utils=require(_0x3139('0x17'));var config=require(_0x3139('0x18'));var licenseUtil=require(_0x3139('0x19'));var db=require(_0x3139('0x1a'))['db'];function respondWithStatusCode(_0x1d9c66,_0x548770){_0x548770=_0x548770||0xcc;return function(_0x2f9805){if(_0x2f9805){return _0x1d9c66['sendStatus'](_0x548770);}return _0x1d9c66[_0x3139('0x1b')](_0x548770)[_0x3139('0x1c')]();};}function respondWithResult(_0x15adae,_0x1bf8ff){_0x1bf8ff=_0x1bf8ff||0xc8;return function(_0xa48c35){if(_0xa48c35){return _0x15adae[_0x3139('0x1b')](_0x1bf8ff)['json'](_0xa48c35);}};}function respondWithFilteredResult(_0x252736,_0x133df6){return function(_0x50eb90){if(_0x50eb90){var _0x7f50e7=typeof _0x133df6['offset']===_0x3139('0x1d')&&typeof _0x133df6['limit']==='undefined';var _0x20c76b=_0x50eb90[_0x3139('0x1e')];var _0xcfefd9=_0x7f50e7?0x0:_0x133df6[_0x3139('0x1f')];var _0x231c9d=_0x7f50e7?_0x50eb90['count']:_0x133df6[_0x3139('0x1f')]+_0x133df6[_0x3139('0x20')];var _0x2fb7a1;if(_0x231c9d>=_0x20c76b){_0x231c9d=_0x20c76b;_0x2fb7a1=0xc8;}else{_0x2fb7a1=0xce;}_0x252736['status'](_0x2fb7a1);return _0x252736[_0x3139('0x21')](_0x3139('0x22'),_0xcfefd9+'-'+_0x231c9d+'/'+_0x20c76b)[_0x3139('0x23')](_0x50eb90);}return null;};}function patchUpdates(_0x166331){return function(_0xb7058c){try{jsonpatch[_0x3139('0x24')](_0xb7058c,_0x166331,!![]);}catch(_0x5a37f9){return BPromise[_0x3139('0x25')](_0x5a37f9);}return _0xb7058c[_0x3139('0x26')]();};}function saveUpdates(_0x147970,_0x5e3488){return function(_0x2613bc){if(_0x2613bc){return _0x2613bc[_0x3139('0x27')](_0x147970)[_0x3139('0x28')](function(_0x12ef2b){return _0x12ef2b;});}return null;};}function removeEntity(_0x2dc1d2,_0x4ee8b5){return function(_0x4c7332){if(_0x4c7332){return _0x4c7332[_0x3139('0x29')]()[_0x3139('0x28')](function(){_0x2dc1d2['status'](0xcc)[_0x3139('0x1c')]();});}};}function handleEntityNotFound(_0xd076ed,_0x2a699f){return function(_0x2a914c){if(!_0x2a914c){_0xd076ed[_0x3139('0x2a')](0x194);}return _0x2a914c;};}function handleError(_0x2ff0e,_0xea8068){_0xea8068=_0xea8068||0x1f4;return function(_0x5a9fc2){logger[_0x3139('0x2b')](_0x5a9fc2[_0x3139('0x2c')]);if(_0x5a9fc2['name']){delete _0x5a9fc2[_0x3139('0x2d')];}_0x2ff0e[_0x3139('0x1b')](_0xea8068)[_0x3139('0x2e')](_0x5a9fc2);};}exports[_0x3139('0x2f')]=function(_0x1d6686,_0x27f923){var _0x258329={},_0x2cf2e7={},_0x1a2266={'count':0x0,'rows':[]};var _0x2ddf55=_[_0x3139('0x30')](db['FaxApplication']['rawAttributes'],function(_0x38237a){return{'name':_0x38237a['fieldName'],'type':_0x38237a['type'][_0x3139('0x31')]};});_0x2cf2e7['model']=_[_0x3139('0x30')](_0x2ddf55,_0x3139('0x2d'));_0x2cf2e7[_0x3139('0x32')]=_[_0x3139('0x33')](_0x1d6686[_0x3139('0x32')]);_0x2cf2e7['filters']=_[_0x3139('0x34')](_0x2cf2e7[_0x3139('0x35')],_0x2cf2e7[_0x3139('0x32')]);_0x258329[_0x3139('0x36')]=_[_0x3139('0x34')](_0x2cf2e7[_0x3139('0x35')],qs[_0x3139('0x37')](_0x1d6686[_0x3139('0x32')]['fields']));_0x258329[_0x3139('0x36')]=_0x258329[_0x3139('0x36')]['length']?_0x258329[_0x3139('0x36')]:_0x2cf2e7[_0x3139('0x35')];if(!_0x1d6686[_0x3139('0x32')]['hasOwnProperty'](_0x3139('0x38'))){_0x258329[_0x3139('0x20')]=qs[_0x3139('0x20')](_0x1d6686[_0x3139('0x32')][_0x3139('0x20')]);_0x258329[_0x3139('0x1f')]=qs[_0x3139('0x1f')](_0x1d6686[_0x3139('0x32')][_0x3139('0x1f')]);}_0x258329['order']=qs[_0x3139('0x39')](_0x1d6686[_0x3139('0x32')][_0x3139('0x39')]);_0x258329[_0x3139('0x3a')]=qs[_0x3139('0x3b')](_['pick'](_0x1d6686['query'],_0x2cf2e7[_0x3139('0x3b')]),_0x2ddf55);if(_0x1d6686[_0x3139('0x32')][_0x3139('0x3c')]){_0x258329[_0x3139('0x3a')]=_[_0x3139('0x3d')](_0x258329[_0x3139('0x3a')],{'$or':_['map'](_0x2ddf55,function(_0x3b1d29){if(_0x3b1d29[_0x3139('0x3e')]!==_0x3139('0x3f')){var _0x41ab8c={};_0x41ab8c[_0x3b1d29['name']]={'$like':'%'+_0x1d6686['query']['filter']+'%'};return _0x41ab8c;}})});}_0x258329=_[_0x3139('0x3d')]({},_0x258329,_0x1d6686[_0x3139('0x40')]);var _0x229c30={'where':_0x258329['where']};return db[_0x3139('0x41')][_0x3139('0x1e')](_0x229c30)[_0x3139('0x28')](function(_0x13205c){_0x1a2266[_0x3139('0x1e')]=_0x13205c;if(_0x1d6686[_0x3139('0x32')][_0x3139('0x42')]){_0x258329[_0x3139('0x43')]=[{'all':!![]}];}return db['FaxApplication'][_0x3139('0x44')](_0x258329);})[_0x3139('0x28')](function(_0x2d7a9d){_0x1a2266[_0x3139('0x45')]=_0x2d7a9d;return _0x1a2266;})['then'](respondWithFilteredResult(_0x27f923,_0x258329))[_0x3139('0x46')](handleError(_0x27f923,null));};exports[_0x3139('0x47')]=function(_0xde3944,_0x45958b){var _0x43679e={'raw':!![],'where':{'id':_0xde3944[_0x3139('0x48')]['id']}},_0x5da04c={};_0x5da04c[_0x3139('0x35')]=_[_0x3139('0x33')](db[_0x3139('0x41')][_0x3139('0x49')]);_0x5da04c[_0x3139('0x32')]=_[_0x3139('0x33')](_0xde3944[_0x3139('0x32')]);_0x5da04c[_0x3139('0x3b')]=_[_0x3139('0x34')](_0x5da04c['model'],_0x5da04c[_0x3139('0x32')]);_0x43679e[_0x3139('0x36')]=_[_0x3139('0x34')](_0x5da04c[_0x3139('0x35')],qs[_0x3139('0x37')](_0xde3944[_0x3139('0x32')]['fields']));_0x43679e[_0x3139('0x36')]=_0x43679e[_0x3139('0x36')][_0x3139('0x4a')]?_0x43679e[_0x3139('0x36')]:_0x5da04c['model'];if(_0xde3944[_0x3139('0x32')][_0x3139('0x42')]){_0x43679e['include']=[{'all':!![]}];}_0x43679e=_['merge']({},_0x43679e,_0xde3944[_0x3139('0x40')]);return db[_0x3139('0x41')]['find'](_0x43679e)[_0x3139('0x28')](handleEntityNotFound(_0x45958b,null))[_0x3139('0x28')](respondWithResult(_0x45958b,null))[_0x3139('0x46')](handleError(_0x45958b,null));};exports[_0x3139('0x4b')]=function(_0x20182f,_0x4bf097){return db['FaxApplication'][_0x3139('0x4b')](_0x20182f[_0x3139('0x4c')],{})[_0x3139('0x28')](respondWithResult(_0x4bf097,0xc9))['catch'](handleError(_0x4bf097,null));};exports['update']=function(_0x327b4b,_0x247d81){if(_0x327b4b[_0x3139('0x4c')]['id']){delete _0x327b4b[_0x3139('0x4c')]['id'];}return db[_0x3139('0x41')][_0x3139('0x4d')]({'where':{'id':_0x327b4b[_0x3139('0x48')]['id']}})[_0x3139('0x28')](handleEntityNotFound(_0x247d81,null))[_0x3139('0x28')](saveUpdates(_0x327b4b[_0x3139('0x4c')],null))[_0x3139('0x28')](respondWithResult(_0x247d81,null))[_0x3139('0x46')](handleError(_0x247d81,null));};exports[_0x3139('0x29')]=function(_0x393e92,_0x4008ba){return db['FaxApplication'][_0x3139('0x4d')]({'where':{'id':_0x393e92['params']['id']}})[_0x3139('0x28')](handleEntityNotFound(_0x4008ba,null))['then'](removeEntity(_0x4008ba,null))[_0x3139('0x46')](handleError(_0x4008ba,null));};
\ No newline at end of file
+var _0x2a13=['count','offset','set','Content-Range','apply','reject','save','update','destroy','then','end','error','stack','name','send','index','map','FaxApplication','rawAttributes','fieldName','type','key','query','filters','intersection','attributes','model','fields','length','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','keys','find','create','body','eml-format','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','undefined','limit'];(function(_0x2a8f9a,_0x3b4c21){var _0x1500e5=function(_0x8745ad){while(--_0x8745ad){_0x2a8f9a['push'](_0x2a8f9a['shift']());}};_0x1500e5(++_0x3b4c21);}(_0x2a13,0x1bc));var _0x32a1=function(_0x2e8f25,_0x13688f){_0x2e8f25=_0x2e8f25-0x0;var _0x1e4a20=_0x2a13[_0x2e8f25];return _0x1e4a20;};'use strict';var emlformat=require(_0x32a1('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x32a1('0x1'));var rp=require(_0x32a1('0x2'));var moment=require(_0x32a1('0x3'));var BPromise=require(_0x32a1('0x4'));var Mustache=require(_0x32a1('0x5'));var util=require(_0x32a1('0x6'));var path=require(_0x32a1('0x7'));var sox=require(_0x32a1('0x8'));var csv=require(_0x32a1('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x32a1('0xa'));var squel=require(_0x32a1('0xb'));var crypto=require(_0x32a1('0xc'));var jsforce=require(_0x32a1('0xd'));var deskjs=require(_0x32a1('0xe'));var toCsv=require(_0x32a1('0x9'));var querystring=require(_0x32a1('0xf'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x32a1('0x10'));var as=require(_0x32a1('0x11'));var hardwareService=require(_0x32a1('0x12'));var logger=require(_0x32a1('0x13'))(_0x32a1('0x14'));var utils=require(_0x32a1('0x15'));var config=require(_0x32a1('0x16'));var licenseUtil=require(_0x32a1('0x17'));var db=require(_0x32a1('0x18'))['db'];function respondWithStatusCode(_0x56261f,_0x4ab82a){_0x4ab82a=_0x4ab82a||0xcc;return function(_0x2e9381){if(_0x2e9381){return _0x56261f[_0x32a1('0x19')](_0x4ab82a);}return _0x56261f['status'](_0x4ab82a)['end']();};}function respondWithResult(_0x10c024,_0x15160f){_0x15160f=_0x15160f||0xc8;return function(_0xcb0bcd){if(_0xcb0bcd){return _0x10c024[_0x32a1('0x1a')](_0x15160f)[_0x32a1('0x1b')](_0xcb0bcd);}};}function respondWithFilteredResult(_0x3895ec,_0x190435){return function(_0x564e21){if(_0x564e21){var _0x3b0e0f=typeof _0x190435['offset']===_0x32a1('0x1c')&&typeof _0x190435[_0x32a1('0x1d')]===_0x32a1('0x1c');var _0x1a2f83=_0x564e21[_0x32a1('0x1e')];var _0x42aee7=_0x3b0e0f?0x0:_0x190435[_0x32a1('0x1f')];var _0x8982ed=_0x3b0e0f?_0x564e21[_0x32a1('0x1e')]:_0x190435[_0x32a1('0x1f')]+_0x190435[_0x32a1('0x1d')];var _0x477a60;if(_0x8982ed>=_0x1a2f83){_0x8982ed=_0x1a2f83;_0x477a60=0xc8;}else{_0x477a60=0xce;}_0x3895ec[_0x32a1('0x1a')](_0x477a60);return _0x3895ec[_0x32a1('0x20')](_0x32a1('0x21'),_0x42aee7+'-'+_0x8982ed+'/'+_0x1a2f83)[_0x32a1('0x1b')](_0x564e21);}return null;};}function patchUpdates(_0xc21c4a){return function(_0x18121f){try{jsonpatch[_0x32a1('0x22')](_0x18121f,_0xc21c4a,!![]);}catch(_0x2e0f64){return BPromise[_0x32a1('0x23')](_0x2e0f64);}return _0x18121f[_0x32a1('0x24')]();};}function saveUpdates(_0x4879f0,_0xa810d0){return function(_0x1c8639){if(_0x1c8639){return _0x1c8639[_0x32a1('0x25')](_0x4879f0)['then'](function(_0x39480d){return _0x39480d;});}return null;};}function removeEntity(_0x1f9e84,_0x5e8336){return function(_0x5b09b6){if(_0x5b09b6){return _0x5b09b6[_0x32a1('0x26')]()[_0x32a1('0x27')](function(){_0x1f9e84['status'](0xcc)[_0x32a1('0x28')]();});}};}function handleEntityNotFound(_0x2f41cf,_0x31dc4b){return function(_0x468a30){if(!_0x468a30){_0x2f41cf[_0x32a1('0x19')](0x194);}return _0x468a30;};}function handleError(_0x5a74d7,_0x587c24){_0x587c24=_0x587c24||0x1f4;return function(_0x394035){logger[_0x32a1('0x29')](_0x394035[_0x32a1('0x2a')]);if(_0x394035[_0x32a1('0x2b')]){delete _0x394035['name'];}_0x5a74d7['status'](_0x587c24)[_0x32a1('0x2c')](_0x394035);};}exports[_0x32a1('0x2d')]=function(_0x514660,_0x45115a){var _0x2185a9={},_0x554756={},_0x292d9c={'count':0x0,'rows':[]};var _0x5006a3=_[_0x32a1('0x2e')](db[_0x32a1('0x2f')][_0x32a1('0x30')],function(_0x2fc03d){return{'name':_0x2fc03d[_0x32a1('0x31')],'type':_0x2fc03d[_0x32a1('0x32')][_0x32a1('0x33')]};});_0x554756['model']=_['map'](_0x5006a3,'name');_0x554756[_0x32a1('0x34')]=_['keys'](_0x514660[_0x32a1('0x34')]);_0x554756[_0x32a1('0x35')]=_[_0x32a1('0x36')](_0x554756['model'],_0x554756[_0x32a1('0x34')]);_0x2185a9[_0x32a1('0x37')]=_['intersection'](_0x554756[_0x32a1('0x38')],qs[_0x32a1('0x39')](_0x514660[_0x32a1('0x34')]['fields']));_0x2185a9[_0x32a1('0x37')]=_0x2185a9['attributes'][_0x32a1('0x3a')]?_0x2185a9[_0x32a1('0x37')]:_0x554756['model'];if(!_0x514660['query']['hasOwnProperty'](_0x32a1('0x3b'))){_0x2185a9[_0x32a1('0x1d')]=qs[_0x32a1('0x1d')](_0x514660['query'][_0x32a1('0x1d')]);_0x2185a9[_0x32a1('0x1f')]=qs[_0x32a1('0x1f')](_0x514660['query']['offset']);}_0x2185a9[_0x32a1('0x3c')]=qs['sort'](_0x514660[_0x32a1('0x34')][_0x32a1('0x3d')]);_0x2185a9[_0x32a1('0x3e')]=qs[_0x32a1('0x35')](_[_0x32a1('0x3f')](_0x514660[_0x32a1('0x34')],_0x554756[_0x32a1('0x35')]),_0x5006a3);if(_0x514660['query'][_0x32a1('0x40')]){_0x2185a9[_0x32a1('0x3e')]=_[_0x32a1('0x41')](_0x2185a9['where'],{'$or':_[_0x32a1('0x2e')](_0x5006a3,function(_0x15296d){if(_0x15296d[_0x32a1('0x32')]!==_0x32a1('0x42')){var _0x14f6cf={};_0x14f6cf[_0x15296d[_0x32a1('0x2b')]]={'$like':'%'+_0x514660[_0x32a1('0x34')][_0x32a1('0x40')]+'%'};return _0x14f6cf;}})});}_0x2185a9=_[_0x32a1('0x41')]({},_0x2185a9,_0x514660[_0x32a1('0x43')]);var _0x43055d={'where':_0x2185a9[_0x32a1('0x3e')]};return db[_0x32a1('0x2f')][_0x32a1('0x1e')](_0x43055d)[_0x32a1('0x27')](function(_0x1e8977){_0x292d9c[_0x32a1('0x1e')]=_0x1e8977;if(_0x514660[_0x32a1('0x34')][_0x32a1('0x44')]){_0x2185a9[_0x32a1('0x45')]=[{'all':!![]}];}return db['FaxApplication'][_0x32a1('0x46')](_0x2185a9);})['then'](function(_0x1d5a75){_0x292d9c[_0x32a1('0x47')]=_0x1d5a75;return _0x292d9c;})[_0x32a1('0x27')](respondWithFilteredResult(_0x45115a,_0x2185a9))[_0x32a1('0x48')](handleError(_0x45115a,null));};exports[_0x32a1('0x49')]=function(_0x4052cc,_0x550504){var _0x1182ce={'raw':!![],'where':{'id':_0x4052cc[_0x32a1('0x4a')]['id']}},_0x995664={};_0x995664[_0x32a1('0x38')]=_[_0x32a1('0x4b')](db[_0x32a1('0x2f')][_0x32a1('0x30')]);_0x995664[_0x32a1('0x34')]=_['keys'](_0x4052cc[_0x32a1('0x34')]);_0x995664[_0x32a1('0x35')]=_[_0x32a1('0x36')](_0x995664[_0x32a1('0x38')],_0x995664[_0x32a1('0x34')]);_0x1182ce[_0x32a1('0x37')]=_[_0x32a1('0x36')](_0x995664['model'],qs[_0x32a1('0x39')](_0x4052cc[_0x32a1('0x34')][_0x32a1('0x39')]));_0x1182ce['attributes']=_0x1182ce['attributes'][_0x32a1('0x3a')]?_0x1182ce[_0x32a1('0x37')]:_0x995664[_0x32a1('0x38')];if(_0x4052cc[_0x32a1('0x34')][_0x32a1('0x44')]){_0x1182ce[_0x32a1('0x45')]=[{'all':!![]}];}_0x1182ce=_['merge']({},_0x1182ce,_0x4052cc[_0x32a1('0x43')]);return db[_0x32a1('0x2f')][_0x32a1('0x4c')](_0x1182ce)[_0x32a1('0x27')](handleEntityNotFound(_0x550504,null))[_0x32a1('0x27')](respondWithResult(_0x550504,null))['catch'](handleError(_0x550504,null));};exports[_0x32a1('0x4d')]=function(_0x30ddc5,_0x3493cd){return db[_0x32a1('0x2f')][_0x32a1('0x4d')](_0x30ddc5[_0x32a1('0x4e')],{})[_0x32a1('0x27')](respondWithResult(_0x3493cd,0xc9))[_0x32a1('0x48')](handleError(_0x3493cd,null));};exports[_0x32a1('0x25')]=function(_0x45ee7b,_0x211f49){if(_0x45ee7b[_0x32a1('0x4e')]['id']){delete _0x45ee7b[_0x32a1('0x4e')]['id'];}return db[_0x32a1('0x2f')][_0x32a1('0x4c')]({'where':{'id':_0x45ee7b[_0x32a1('0x4a')]['id']}})[_0x32a1('0x27')](handleEntityNotFound(_0x211f49,null))[_0x32a1('0x27')](saveUpdates(_0x45ee7b[_0x32a1('0x4e')],null))[_0x32a1('0x27')](respondWithResult(_0x211f49,null))[_0x32a1('0x48')](handleError(_0x211f49,null));};exports['destroy']=function(_0x39608d,_0xe25abd){return db['FaxApplication'][_0x32a1('0x4c')]({'where':{'id':_0x39608d['params']['id']}})[_0x32a1('0x27')](handleEntityNotFound(_0xe25abd,null))[_0x32a1('0x27')](removeEntity(_0xe25abd,null))[_0x32a1('0x48')](handleError(_0xe25abd,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7d67=['../../config/logger','api','moment','bluebird','request-promise','path','rimraf','./faxApplication.attributes','exports','define','FaxApplication','utf8mb4','utf8mb4_unicode_ci','lodash','util'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x7d67,0x85));var _0x77d6=function(_0x506429,_0xbe91e1){_0x506429=_0x506429-0x0;var _0x40fb3c=_0x7d67[_0x506429];return _0x40fb3c;};'use strict';var _=require(_0x77d6('0x0'));var util=require(_0x77d6('0x1'));var logger=require(_0x77d6('0x2'))(_0x77d6('0x3'));var moment=require(_0x77d6('0x4'));var BPromise=require(_0x77d6('0x5'));var rp=require(_0x77d6('0x6'));var fs=require('fs');var path=require(_0x77d6('0x7'));var rimraf=require(_0x77d6('0x8'));var config=require('../../config/environment');var attributes=require(_0x77d6('0x9'));module[_0x77d6('0xa')]=function(_0x3a0dfb,_0x76c340){return _0x3a0dfb[_0x77d6('0xb')](_0x77d6('0xc'),attributes,{'tableName':'fax_applications','paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x77d6('0xd'),'collate':_0x77d6('0xe')});};
\ No newline at end of file
+var _0xc3f4=['lodash','util','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./faxApplication.attributes','FaxApplication','fax_applications','utf8mb4_unicode_ci'];(function(_0x21c3a9,_0x38fa47){var _0x3f36ba=function(_0x3c88a8){while(--_0x3c88a8){_0x21c3a9['push'](_0x21c3a9['shift']());}};_0x3f36ba(++_0x38fa47);}(_0xc3f4,0x111));var _0x4c3f=function(_0x52d3e1,_0x4e4f8d){_0x52d3e1=_0x52d3e1-0x0;var _0x575986=_0xc3f4[_0x52d3e1];return _0x575986;};'use strict';var _=require(_0x4c3f('0x0'));var util=require(_0x4c3f('0x1'));var logger=require('../../config/logger')(_0x4c3f('0x2'));var moment=require(_0x4c3f('0x3'));var BPromise=require(_0x4c3f('0x4'));var rp=require(_0x4c3f('0x5'));var fs=require('fs');var path=require(_0x4c3f('0x6'));var rimraf=require(_0x4c3f('0x7'));var config=require(_0x4c3f('0x8'));var attributes=require(_0x4c3f('0x9'));module['exports']=function(_0x4335be,_0x1225d4){return _0x4335be['define'](_0x4c3f('0xa'),attributes,{'tableName':_0x4c3f('0xb'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':'utf8mb4','collate':_0x4c3f('0xc')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x770a=['rpc','jayson/promise','client','http','request','info','FaxApplication,\x20%s,\x20%s','request\x20sent','debug','FaxApplication,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','UpdateFaxApplication','FaxApplication','update','body','options','raw','where','limit','then','stringify','lodash','util','moment','bluebird','../../mysqldb','../../config/utils','../../config/logger'];(function(_0x55ff14,_0x15b77c){var _0x48eef2=function(_0x6d5e61){while(--_0x6d5e61){_0x55ff14['push'](_0x55ff14['shift']());}};_0x48eef2(++_0x15b77c);}(_0x770a,0x1d9));var _0xa770=function(_0x3d2d8e,_0x1401a0){_0x3d2d8e=_0x3d2d8e-0x0;var _0xd06aec=_0x770a[_0x3d2d8e];return _0xd06aec;};'use strict';var _=require(_0xa770('0x0'));var util=require(_0xa770('0x1'));var moment=require(_0xa770('0x2'));var BPromise=require(_0xa770('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0xa770('0x4'))['db'];var utils=require(_0xa770('0x5'));var logger=require(_0xa770('0x6'))(_0xa770('0x7'));var config=require('../../config/environment');var jayson=require(_0xa770('0x8'));var client=jayson[_0xa770('0x9')][_0xa770('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x5da253,_0x11fda3,_0x3224a6){return new BPromise(function(_0x51dc28,_0x264ccd){return client[_0xa770('0xb')](_0x5da253,_0x3224a6)['then'](function(_0x36795f){logger[_0xa770('0xc')](_0xa770('0xd'),_0x11fda3,_0xa770('0xe'));logger[_0xa770('0xf')](_0xa770('0x10'),_0x11fda3,_0xa770('0xe'),JSON['stringify'](_0x36795f));if(_0x36795f[_0xa770('0x11')]){if(_0x36795f[_0xa770('0x11')][_0xa770('0x12')]===0x1f4){logger[_0xa770('0x11')](_0xa770('0xd'),_0x11fda3,_0x36795f[_0xa770('0x11')][_0xa770('0x13')]);return _0x264ccd(_0x36795f[_0xa770('0x11')]['message']);}logger[_0xa770('0x11')](_0xa770('0xd'),_0x11fda3,_0x36795f[_0xa770('0x11')]['message']);return _0x51dc28(_0x36795f[_0xa770('0x11')][_0xa770('0x13')]);}else{logger['info'](_0xa770('0xd'),_0x11fda3,_0xa770('0xe'));_0x51dc28(_0x36795f[_0xa770('0x14')]['message']);}})[_0xa770('0x15')](function(_0x24eb80){logger['error'](_0xa770('0xd'),_0x11fda3,_0x24eb80);_0x264ccd(_0x24eb80);});});}exports[_0xa770('0x16')]=function(_0x3b4a50){var _0x2e0c35=this;return new Promise(function(_0x4d187d,_0xa9e933){return db[_0xa770('0x17')][_0xa770('0x18')](_0x3b4a50[_0xa770('0x19')],{'raw':_0x3b4a50[_0xa770('0x1a')]?_0x3b4a50[_0xa770('0x1a')][_0xa770('0x1b')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x3b4a50[_0xa770('0x1a')]?_0x3b4a50[_0xa770('0x1a')][_0xa770('0x1c')]||null:null,'attributes':_0x3b4a50[_0xa770('0x1a')]?_0x3b4a50[_0xa770('0x1a')]['attributes']||null:null,'limit':_0x3b4a50[_0xa770('0x1a')]?_0x3b4a50[_0xa770('0x1a')][_0xa770('0x1d')]||null:null})[_0xa770('0x1e')](function(_0x48beb1){logger[_0xa770('0xc')](_0xa770('0x16'),_0x3b4a50);logger[_0xa770('0xf')](_0xa770('0x16'),_0x3b4a50,JSON[_0xa770('0x1f')](_0x48beb1));_0x4d187d(_0x48beb1);})[_0xa770('0x15')](function(_0x6b84be){logger['error'](_0xa770('0x16'),_0x6b84be[_0xa770('0x13')],_0x3b4a50);_0xa9e933(_0x2e0c35[_0xa770('0x11')](0x1f4,_0x6b84be['message']));});});};
\ No newline at end of file
+var _0x45fd=['limit','debug','util','moment','randomstring','../../mysqldb','../../config/logger','rpc','jayson/promise','client','http','request','then','info','request\x20sent','stringify','error','code','FaxApplication,\x20%s,\x20%s','message','catch','UpdateFaxApplication','FaxApplication','update','body','options','raw'];(function(_0x8d5de5,_0x143d83){var _0x400b7d=function(_0x2abd97){while(--_0x2abd97){_0x8d5de5['push'](_0x8d5de5['shift']());}};_0x400b7d(++_0x143d83);}(_0x45fd,0xa4));var _0xd45f=function(_0x46636a,_0x50c985){_0x46636a=_0x46636a-0x0;var _0x4965a5=_0x45fd[_0x46636a];return _0x4965a5;};'use strict';var _=require('lodash');var util=require(_0xd45f('0x0'));var moment=require(_0xd45f('0x1'));var BPromise=require('bluebird');var rs=require(_0xd45f('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xd45f('0x3'))['db'];var utils=require('../../config/utils');var logger=require(_0xd45f('0x4'))(_0xd45f('0x5'));var config=require('../../config/environment');var jayson=require(_0xd45f('0x6'));var client=jayson[_0xd45f('0x7')][_0xd45f('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x1c647f,_0xcbde73,_0x134dc6){return new BPromise(function(_0x6c7f09,_0x59ff77){return client[_0xd45f('0x9')](_0x1c647f,_0x134dc6)[_0xd45f('0xa')](function(_0x4642f2){logger[_0xd45f('0xb')]('FaxApplication,\x20%s,\x20%s',_0xcbde73,'request\x20sent');logger['debug']('FaxApplication,\x20%s,\x20%s,\x20%s',_0xcbde73,_0xd45f('0xc'),JSON[_0xd45f('0xd')](_0x4642f2));if(_0x4642f2[_0xd45f('0xe')]){if(_0x4642f2['error'][_0xd45f('0xf')]===0x1f4){logger['error'](_0xd45f('0x10'),_0xcbde73,_0x4642f2[_0xd45f('0xe')][_0xd45f('0x11')]);return _0x59ff77(_0x4642f2[_0xd45f('0xe')][_0xd45f('0x11')]);}logger[_0xd45f('0xe')]('FaxApplication,\x20%s,\x20%s',_0xcbde73,_0x4642f2['error'][_0xd45f('0x11')]);return _0x6c7f09(_0x4642f2[_0xd45f('0xe')]['message']);}else{logger['info'](_0xd45f('0x10'),_0xcbde73,_0xd45f('0xc'));_0x6c7f09(_0x4642f2['result'][_0xd45f('0x11')]);}})[_0xd45f('0x12')](function(_0x54aec5){logger['error'](_0xd45f('0x10'),_0xcbde73,_0x54aec5);_0x59ff77(_0x54aec5);});});}exports[_0xd45f('0x13')]=function(_0x20093c){var _0x19f1bf=this;return new Promise(function(_0x3d2f9c,_0xccde54){return db[_0xd45f('0x14')][_0xd45f('0x15')](_0x20093c[_0xd45f('0x16')],{'raw':_0x20093c[_0xd45f('0x17')]?_0x20093c[_0xd45f('0x17')][_0xd45f('0x18')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x20093c[_0xd45f('0x17')]?_0x20093c[_0xd45f('0x17')]['where']||null:null,'attributes':_0x20093c[_0xd45f('0x17')]?_0x20093c[_0xd45f('0x17')]['attributes']||null:null,'limit':_0x20093c[_0xd45f('0x17')]?_0x20093c[_0xd45f('0x17')][_0xd45f('0x19')]||null:null})['then'](function(_0x79e0f1){logger[_0xd45f('0xb')]('UpdateFaxApplication',_0x20093c);logger[_0xd45f('0x1a')](_0xd45f('0x13'),_0x20093c,JSON['stringify'](_0x79e0f1));_0x3d2f9c(_0x79e0f1);})[_0xd45f('0x12')](function(_0x36e8ec){logger[_0xd45f('0xe')](_0xd45f('0x13'),_0x36e8ec[_0xd45f('0x11')],_0x20093c);_0xccde54(_0x19f1bf[_0xd45f('0xe')](0x1f4,_0x36e8ec['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0abf=['isAuthenticated','index','show','post','put','/:id','destroy','exports','multer','path','connect-timeout','fs-extra','../../components/interaction/service','../../config/environment','./faxApplication.controller','get'];(function(_0x5c2e3e,_0x26ecd3){var _0x53f64a=function(_0x2b5df8){while(--_0x2b5df8){_0x5c2e3e['push'](_0x5c2e3e['shift']());}};_0x53f64a(++_0x26ecd3);}(_0x0abf,0xe8));var _0xf0ab=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x0abf[_0x14add3];return _0x4a174f;};'use strict';var multer=require(_0xf0ab('0x0'));var util=require('util');var path=require(_0xf0ab('0x1'));var timeout=require(_0xf0ab('0x2'));var express=require('express');var router=express['Router']();var fs_extra=require(_0xf0ab('0x3'));var auth=require('../../components/auth/service');var interaction=require(_0xf0ab('0x4'));var config=require(_0xf0ab('0x5'));var controller=require(_0xf0ab('0x6'));router[_0xf0ab('0x7')]('/',auth[_0xf0ab('0x8')](),controller[_0xf0ab('0x9')]);router[_0xf0ab('0x7')]('/:id',auth[_0xf0ab('0x8')](),controller[_0xf0ab('0xa')]);router[_0xf0ab('0xb')]('/',auth[_0xf0ab('0x8')](),controller['create']);router[_0xf0ab('0xc')](_0xf0ab('0xd'),auth[_0xf0ab('0x8')](),controller['update']);router['delete'](_0xf0ab('0xd'),auth['isAuthenticated'](),controller[_0xf0ab('0xe')]);module[_0xf0ab('0xf')]=router;
\ No newline at end of file
+var _0xe511=['/:id','isAuthenticated','update','delete','destroy','exports','multer','util','connect-timeout','Router','fs-extra','../../components/interaction/service','../../config/environment','./faxApplication.controller','get','index','show','post','put'];(function(_0x38e2ed,_0x4cea2b){var _0x267ef8=function(_0x144fd7){while(--_0x144fd7){_0x38e2ed['push'](_0x38e2ed['shift']());}};_0x267ef8(++_0x4cea2b);}(_0xe511,0x16f));var _0x1e51=function(_0x3df45b,_0xe6e277){_0x3df45b=_0x3df45b-0x0;var _0x24f10b=_0xe511[_0x3df45b];return _0x24f10b;};'use strict';var multer=require(_0x1e51('0x0'));var util=require(_0x1e51('0x1'));var path=require('path');var timeout=require(_0x1e51('0x2'));var express=require('express');var router=express[_0x1e51('0x3')]();var fs_extra=require(_0x1e51('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x1e51('0x5'));var config=require(_0x1e51('0x6'));var controller=require(_0x1e51('0x7'));router[_0x1e51('0x8')]('/',auth['isAuthenticated'](),controller[_0x1e51('0x9')]);router[_0x1e51('0x8')]('/:id',auth['isAuthenticated'](),controller[_0x1e51('0xa')]);router[_0x1e51('0xb')]('/',auth['isAuthenticated'](),controller['create']);router[_0x1e51('0xc')](_0x1e51('0xd'),auth[_0x1e51('0xe')](),controller[_0x1e51('0xf')]);router[_0x1e51('0x10')](_0x1e51('0xd'),auth['isAuthenticated'](),controller[_0x1e51('0x11')]);module[_0x1e51('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x30ba=['DATE','STRING','ENUM','out','sequelize','BOOLEAN'];(function(_0xfb675c,_0x2cfb12){var _0x56179a=function(_0x4d7e34){while(--_0x4d7e34){_0xfb675c['push'](_0xfb675c['shift']());}};_0x56179a(++_0x2cfb12);}(_0x30ba,0xca));var _0xa30b=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x30ba[_0x3dd15e];return _0x231fd0;};'use strict';var Sequelize=require(_0xa30b('0x0'));module['exports']={'closed':{'type':Sequelize[_0xa30b('0x1')],'defaultValue':![]},'closedAt':{'type':Sequelize[_0xa30b('0x2')]},'disposition':{'type':Sequelize[_0xa30b('0x3')]},'secondDisposition':{'type':Sequelize['STRING']},'thirdDisposition':{'type':Sequelize[_0xa30b('0x3')]},'note':{'type':Sequelize['STRING']},'read1stAt':{'type':Sequelize['DATE']},'fax':{'type':Sequelize[_0xa30b('0x3')]},'firstMsgDirection':{'type':Sequelize[_0xa30b('0x4')]('in',_0xa30b('0x5')),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize[_0xa30b('0x2')]},'lastMsgDirection':{'type':Sequelize['ENUM']('in',_0xa30b('0x5')),'defaultValue':'in','allowNull':![]}};
\ No newline at end of file
+var _0xf70e=['STRING','ENUM','out','sequelize','exports','BOOLEAN','DATE'];(function(_0x1babb0,_0x2e8370){var _0x274a29=function(_0x1bedc5){while(--_0x1bedc5){_0x1babb0['push'](_0x1babb0['shift']());}};_0x274a29(++_0x2e8370);}(_0xf70e,0x1ae));var _0xef70=function(_0x1ce834,_0x48dac9){_0x1ce834=_0x1ce834-0x0;var _0x248554=_0xf70e[_0x1ce834];return _0x248554;};'use strict';var Sequelize=require(_0xef70('0x0'));module[_0xef70('0x1')]={'closed':{'type':Sequelize[_0xef70('0x2')],'defaultValue':![]},'closedAt':{'type':Sequelize[_0xef70('0x3')]},'disposition':{'type':Sequelize[_0xef70('0x4')]},'secondDisposition':{'type':Sequelize[_0xef70('0x4')]},'thirdDisposition':{'type':Sequelize[_0xef70('0x4')]},'note':{'type':Sequelize[_0xef70('0x4')]},'read1stAt':{'type':Sequelize[_0xef70('0x3')]},'fax':{'type':Sequelize[_0xef70('0x4')]},'firstMsgDirection':{'type':Sequelize[_0xef70('0x5')]('in',_0xef70('0x6')),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize['DATE']},'lastMsgDirection':{'type':Sequelize[_0xef70('0x5')]('in',_0xef70('0x6')),'defaultValue':'in','allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1899=['GROUP_CONCAT(DISTINCT\x20t.id)','groupBy','all','show','params','includeAll','include','merge','create','body','describe','addMessage','ids','findOne','FaxMessage','rawAttributes','FaxInteractionId','$gte','YYYY-MM-DD\x20HH:mm:ss','options','findAll','rows','addTags','setTags','spread','Tag','emit','removeTags','download','join','root','server','files','tmp','attachments','format','transcript-%d-%s.zip','Attachment','Messages','get','mkdirSync','existsSync','createReadStream','pipe','createWriteStream','basename','log','err','unlinkSync','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','path','sox','to-csv','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./faxInteraction.socket','register','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','json','reject','save','update','then','destroy','error','stack','send','map','fullname','Tags','TagIds','split','forEach','push','catch','index','FaxInteraction','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','field','name','color','from','select','u.id','u.fullname','user_has_fax_interactions','left_join','users','u.id\x20=\x20ui.UserId','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','o.id\x20=\x20i.UserId','a.id\x20=\x20i.FaxAccountId','fax_messages','me.FaxInteractionId\x20=\x20i.id','fax_interaction_has_tags','it.FaxInteractionId\x20=\x20i.id','tools_tags','t.id\x20=\x20it.TagId','expr','search','parseSearch','conditions','unreadMessages','value','having','`\x20=\x200','`\x20>\x200','Contact','operator','$substring','getFullTextValue','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','find','ContactId','buildExpression','text','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User','UserId','start','compact','FaxAccountId','i.FaxAccountId\x20IN\x20?','concat','createdAt','parse','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20=\x20?','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','tag','isArray','filter','replace','isNumeric','i.id\x20LIKE\x20?','i.fax\x20LIKE\x20?','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','i.id','Sequelize','QueryTypes','SELECT','clone','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','DESC','isEmpty','i.FaxAccountId\x20IS\x20NOT\x20NULL','user','role','agent','getFaxAccounts','i.FaxAccountId\x20IS\x20NULL','sequelize','toString','a.key','Account.key','a.mandatoryDisposition','Account.mandatoryDisposition','CASE\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END','i.*','c.firstName','Contact.firstName','c.lastName','Contact.lastName','c.email','Contact.email','c.mobile','Contact.mobile','c.fax','Contact.fax','o.fullname','Owner.fullname','o.internal','Owner.internal'];(function(_0x5b34c0,_0x3ad403){var _0x242bd3=function(_0x51d0ce){while(--_0x51d0ce){_0x5b34c0['push'](_0x5b34c0['shift']());}};_0x242bd3(++_0x3ad403);}(_0x1899,0x114));var _0x9189=function(_0x4fbfd9,_0x3ab91a){_0x4fbfd9=_0x4fbfd9-0x0;var _0x31dc94=_0x1899[_0x4fbfd9];return _0x31dc94;};'use strict';var emlformat=require(_0x9189('0x0'));var rimraf=require(_0x9189('0x1'));var zipdir=require(_0x9189('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x9189('0x3'));var moment=require(_0x9189('0x4'));var BPromise=require(_0x9189('0x5'));var Mustache=require(_0x9189('0x6'));var util=require('util');var path=require(_0x9189('0x7'));var sox=require(_0x9189('0x8'));var csv=require(_0x9189('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x9189('0xa'));var _=require('lodash');var squel=require(_0x9189('0xb'));var crypto=require(_0x9189('0xc'));var jsforce=require(_0x9189('0xd'));var deskjs=require(_0x9189('0xe'));var toCsv=require(_0x9189('0x9'));var querystring=require(_0x9189('0xf'));var Papa=require(_0x9189('0x10'));var Redis=require(_0x9189('0x11'));var authService=require(_0x9189('0x12'));var qs=require(_0x9189('0x13'));var as=require(_0x9189('0x14'));var hardwareService=require(_0x9189('0x15'));var logger=require(_0x9189('0x16'))(_0x9189('0x17'));var utils=require(_0x9189('0x18'));var config=require(_0x9189('0x19'));var licenseUtil=require('../../config/license/util');var db=require(_0x9189('0x1a'))['db'];config[_0x9189('0x1b')]=_[_0x9189('0x1c')](config[_0x9189('0x1b')],{'host':_0x9189('0x1d'),'port':0x18eb});var socket=require(_0x9189('0x1e'))(new Redis(config['redis']));require(_0x9189('0x1f'))[_0x9189('0x20')](socket);function respondWithStatusCode(_0x4daa6a,_0x483488){_0x483488=_0x483488||0xcc;return function(_0x1b0cd6){if(_0x1b0cd6){return _0x4daa6a[_0x9189('0x21')](_0x483488);}return _0x4daa6a[_0x9189('0x22')](_0x483488)[_0x9189('0x23')]();};}function respondWithResult(_0x1ee465,_0xf5056a){_0xf5056a=_0xf5056a||0xc8;return function(_0x19bb0d){if(_0x19bb0d){return _0x1ee465[_0x9189('0x22')](_0xf5056a)['json'](_0x19bb0d);}};}function respondWithFilteredResult(_0x2936b7,_0x1ca8a7){return function(_0x436de8){if(_0x436de8){var _0x38ef68=typeof _0x1ca8a7[_0x9189('0x24')]===_0x9189('0x25')&&typeof _0x1ca8a7[_0x9189('0x26')]===_0x9189('0x25');var _0x3b879f=_0x436de8[_0x9189('0x27')];var _0x5cd4b0=_0x38ef68?0x0:_0x1ca8a7[_0x9189('0x24')];var _0x253087=_0x38ef68?_0x436de8[_0x9189('0x27')]:_0x1ca8a7[_0x9189('0x24')]+_0x1ca8a7[_0x9189('0x26')];var _0x25a4dc;if(_0x253087>=_0x3b879f){_0x253087=_0x3b879f;_0x25a4dc=0xc8;}else{_0x25a4dc=0xce;}_0x2936b7['status'](_0x25a4dc);return _0x2936b7[_0x9189('0x28')](_0x9189('0x29'),_0x5cd4b0+'-'+_0x253087+'/'+_0x3b879f)[_0x9189('0x2a')](_0x436de8);}return null;};}function patchUpdates(_0x52557b){return function(_0x16d865){try{jsonpatch['apply'](_0x16d865,_0x52557b,!![]);}catch(_0x157f72){return BPromise[_0x9189('0x2b')](_0x157f72);}return _0x16d865[_0x9189('0x2c')]();};}function saveUpdates(_0x4b8dc1,_0x27c563){return function(_0x33a5fd){if(_0x33a5fd){return _0x33a5fd[_0x9189('0x2d')](_0x4b8dc1)[_0x9189('0x2e')](function(_0x5c0812){return _0x5c0812;});}return null;};}function removeEntity(_0x3508c7,_0x87c74b){return function(_0x1bd409){if(_0x1bd409){return _0x1bd409[_0x9189('0x2f')]()['then'](function(){_0x3508c7[_0x9189('0x22')](0xcc)[_0x9189('0x23')]();});}};}function handleEntityNotFound(_0x3bbe56,_0x1b5155){return function(_0xaa155){if(!_0xaa155){_0x3bbe56[_0x9189('0x21')](0x194);}return _0xaa155;};}function handleError(_0xec4481,_0xae2ab3){_0xae2ab3=_0xae2ab3||0x1f4;return function(_0x1516ff){logger[_0x9189('0x30')](_0x1516ff[_0x9189('0x31')]);if(_0x1516ff['name']){delete _0x1516ff['name'];}_0xec4481['status'](_0xae2ab3)[_0x9189('0x32')](_0x1516ff);};}function getInteractionUsers(_0x204a95,_0x5a228f){return new BPromise(function(_0x46a8ec,_0x577511){try{if(_0x5a228f[_0x204a95['id']]){_0x204a95['Users']=_[_0x9189('0x33')](_0x5a228f[_0x204a95['id']],function(_0x210b9f){return{'id':_0x210b9f['id'],'fullname':_0x210b9f[_0x9189('0x34')]};});}}catch(_0xd9365){_0x577511(_0xd9365);}_0x46a8ec(_0x204a95);});}function getInteractionTags(_0x1e8f18,_0x559334){return new BPromise(function(_0x416944,_0xc0150b){try{if(_0x1e8f18['TagIds']){_0x1e8f18[_0x9189('0x35')]=[];_0x1e8f18[_0x9189('0x36')][_0x9189('0x37')](',')[_0x9189('0x38')](function(_0x585eeb){_0x1e8f18['Tags'][_0x9189('0x39')](_0x559334[_0x585eeb]);});}delete _0x1e8f18[_0x9189('0x36')];}catch(_0x3e9080){_0xc0150b(_0x3e9080);}_0x416944(_0x1e8f18);});}function updateFaxInteraction(_0x2bbca8,_0x184085,_0x4be311){return new BPromise(function(_0x86336e,_0x4de441){return getInteractionUsers(_0x2bbca8,_0x4be311)[_0x9189('0x2e')](function(_0x4dc21a){return getInteractionTags(_0x4dc21a,_0x184085);})[_0x9189('0x2e')](function(_0x1c638c){_0x86336e(_0x1c638c);})[_0x9189('0x3a')](function(_0x46ad82){_0x4de441(_0x46ad82);});});}exports[_0x9189('0x3b')]=function(_0x4c6efa,_0x4f8830){var _0x57a582={},_0x11cc0d={},_0x1f2819={'count':0x0,'rows':[]};var _0x37d32a=_[_0x9189('0x33')](db[_0x9189('0x3c')]['rawAttributes'],function(_0x351ba8){return{'name':_0x351ba8[_0x9189('0x3d')],'type':_0x351ba8[_0x9189('0x3e')][_0x9189('0x3f')]};});_0x11cc0d[_0x9189('0x40')]=_[_0x9189('0x33')](_0x37d32a,'name');_0x11cc0d[_0x9189('0x41')]=_[_0x9189('0x42')](_0x4c6efa['query']);_0x11cc0d[_0x9189('0x43')]=_[_0x9189('0x44')](_0x11cc0d[_0x9189('0x40')],_0x11cc0d[_0x9189('0x41')]);_0x57a582[_0x9189('0x45')]=_[_0x9189('0x44')](_0x11cc0d['model'],qs[_0x9189('0x46')](_0x4c6efa[_0x9189('0x41')][_0x9189('0x46')]));_0x57a582[_0x9189('0x45')]=_0x57a582[_0x9189('0x45')][_0x9189('0x47')]?_0x57a582[_0x9189('0x45')]:_0x11cc0d[_0x9189('0x40')];if(!_0x4c6efa['query'][_0x9189('0x48')]('nolimit')){_0x57a582['limit']=qs[_0x9189('0x26')](_0x4c6efa[_0x9189('0x41')][_0x9189('0x26')]);_0x57a582[_0x9189('0x24')]=qs[_0x9189('0x24')](_0x4c6efa[_0x9189('0x41')][_0x9189('0x24')]);}_0x57a582[_0x9189('0x49')]=qs['sort'](_0x4c6efa['query'][_0x9189('0x4a')]);_0x57a582[_0x9189('0x4b')]=qs[_0x9189('0x43')](_[_0x9189('0x4c')](_0x4c6efa[_0x9189('0x41')],_0x11cc0d[_0x9189('0x43')]),_0x37d32a);var _0xc70869=[];var _0x458bd4=squel['select']()['field']('id')[_0x9189('0x4d')](_0x9189('0x4e'))['field'](_0x9189('0x4f'))[_0x9189('0x50')]('tools_tags');var _0x2d3a81=squel[_0x9189('0x51')]()['field'](_0x9189('0x52'))['field'](_0x9189('0x53'))['field']('ui.FaxInteractionId')[_0x9189('0x50')](_0x9189('0x54'),'ui')[_0x9189('0x55')](_0x9189('0x56'),'u',_0x9189('0x57'));var _0x4f213d=squel[_0x9189('0x51')]()[_0x9189('0x50')]('fax_interactions','i')['left_join'](_0x9189('0x58'),'c',_0x9189('0x59'))[_0x9189('0x55')](_0x9189('0x56'),'o',_0x9189('0x5a'))[_0x9189('0x55')]('fax_accounts','a',_0x9189('0x5b'))[_0x9189('0x55')](_0x9189('0x5c'),'me',_0x9189('0x5d'))[_0x9189('0x55')](_0x9189('0x5e'),'it',_0x9189('0x5f'))['left_join'](_0x9189('0x60'),'t',_0x9189('0x61'));var _0x28c9c9=squel[_0x9189('0x62')]();var _0x180f5f=[];var _0x4f2f81=squel['expr']();var _0x227852;if(_0x4c6efa[_0x9189('0x41')][_0x9189('0x63')]){_0x227852=as[_0x9189('0x64')](_0x4c6efa[_0x9189('0x41')][_0x9189('0x63')]);var _0x5dfa61=_0x227852['sqlOperator'];for(var _0x3093f6=0x0;_0x3093f6<_0x227852['conditions'][_0x9189('0x47')];_0x3093f6++){var _0x36abf7=_0x227852[_0x9189('0x65')][_0x3093f6];var _0x2540e6='i';var _0x5857c0=_['find'](_0x37d32a,[_0x9189('0x4e'),_0x36abf7[_0x9189('0x4d')]]);if(!_0x5857c0){switch(_0x36abf7['field']){case _0x9189('0x66'):if(_0x36abf7[_0x9189('0x67')]==0x1){_0x4f213d[_0x9189('0x68')]('`'+_0x36abf7[_0x9189('0x4d')]+_0x9189('0x69'));}else{_0x4f213d[_0x9189('0x68')]('`'+_0x36abf7['field']+_0x9189('0x6a'));}break;case _0x9189('0x6b'):if(_0x36abf7[_0x9189('0x6c')]===_0x9189('0x6d')){if(_0x36abf7[_0x9189('0x67')]['split']('\x20')[_0x9189('0x47')]>0x1){_0x28c9c9[_0x5dfa61]('MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0x9189('0x6e')](_0x36abf7[_0x9189('0x67')]),null);}else{var _0x17e1bc='%'+_0x36abf7['value']+'%';_0x28c9c9[_0x5dfa61](_0x9189('0x6f'),_0x17e1bc,_0x17e1bc,_0x17e1bc);}}else{_0x5857c0=_[_0x9189('0x70')](_0x37d32a,[_0x9189('0x4e'),_0x9189('0x71')]);_0x36abf7[_0x9189('0x4d')]='ContactId';_0x371562=as[_0x9189('0x72')](_0x2540e6,_0x5857c0['type'],_0x36abf7);_0x28c9c9[_0x5dfa61](_0x371562[_0x9189('0x73')],_0x371562[_0x9189('0x67')]['start'],_0x371562[_0x9189('0x67')]['end']);}break;case'Tag':var _0x299c8b=_0x36abf7[_0x9189('0x67')][_0x9189('0x37')](',')[_0x9189('0x33')](function(_0x35b100){return Number(_0x35b100);});_0x299c8b['forEach'](function(_0x28fda1){_0x4f2f81['or'](_0x9189('0x74'),'%,'+_0x28fda1+',%');});_0x180f5f=_[_0x9189('0x75')](_0x180f5f,_0x299c8b);break;case _0x9189('0x76'):if(_0x36abf7[_0x9189('0x6c')]===_0x9189('0x6d')){_0x28c9c9[_0x5dfa61]('CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','%'+_0x36abf7[_0x9189('0x67')]+'%',null);}else{_0x5857c0=_['find'](_0x37d32a,[_0x9189('0x4e'),_0x9189('0x77')]);_0x36abf7[_0x9189('0x4d')]=_0x9189('0x77');_0x371562=as[_0x9189('0x72')](_0x2540e6,_0x5857c0[_0x9189('0x3e')],_0x36abf7);_0x28c9c9[_0x5dfa61](_0x371562[_0x9189('0x73')],_0x371562['value']['start'],_0x371562[_0x9189('0x67')]['end']);}break;case'body':_0x371562=as[_0x9189('0x72')]('me',null,_0x36abf7);_0x28c9c9[_0x5dfa61](_0x371562[_0x9189('0x73')],_0x371562[_0x9189('0x67')][_0x9189('0x78')],_0x371562[_0x9189('0x67')]['end']);break;}}else{var _0x371562=as[_0x9189('0x72')](_0x2540e6,_0x5857c0['type'],_0x36abf7);_0x28c9c9[_0x5dfa61](_0x371562['text'],_0x371562[_0x9189('0x67')][_0x9189('0x78')],_0x371562[_0x9189('0x67')]['end']);}}}else{var _0x2d6e98=_(_0x4c6efa[_0x9189('0x41')])[_0x9189('0x42')]()[_0x9189('0x33')](function(_0x296375){return _['some'](_0x37d32a,[_0x9189('0x4e'),_0x296375])?_0x296375:undefined;})[_0x9189('0x79')]()[_0x9189('0x67')]();if(!_['isEmpty'](_0x2d6e98)){_0x2d6e98['forEach'](function(_0x626455){if(_0x626455===_0x9189('0x7a')){_0x4f213d['where'](_0x9189('0x7b'),[][_0x9189('0x7c')](_0x4c6efa['query'][_0x626455]));}else if(_0x626455===_0x9189('0x7d')){var _0x45a7f9=JSON[_0x9189('0x7e')](_0x4c6efa[_0x9189('0x41')][_0x626455])['$gte'];var _0x4a7d15=JSON['parse'](_0x4c6efa[_0x9189('0x41')][_0x626455])[_0x9189('0x7f')];_0x4f213d[_0x9189('0x4b')](_0x9189('0x80'),_0x45a7f9,_0x4a7d15);}else{if(_0x4c6efa[_0x9189('0x41')][_0x626455]===_0x9189('0x81')){_0x4f213d[_0x9189('0x4b')]('i.'+_0x626455+'\x20IS\x20NULL');}else{_0x4f213d[_0x9189('0x4b')]('i.'+_0x626455+_0x9189('0x82'),_0x4c6efa[_0x9189('0x41')][_0x626455]);}}});}if(_0x4c6efa[_0x9189('0x41')][_0x9189('0x83')]){if(_0x4c6efa[_0x9189('0x41')]['read']==0x1){_0x4f213d[_0x9189('0x68')](_0x9189('0x84'));}else{_0x4f213d[_0x9189('0x68')](_0x9189('0x85'));}}if(_0x4c6efa[_0x9189('0x41')][_0x9189('0x86')]){_0x180f5f=_[_0x9189('0x87')](_0x4c6efa[_0x9189('0x41')]['tag'])?_0x4c6efa['query'][_0x9189('0x86')]:new Array(_0x4c6efa[_0x9189('0x41')][_0x9189('0x86')]);_0x180f5f[_0x9189('0x38')](function(_0x1aa6c9){_0x4f2f81['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x1aa6c9+',%');});}if(_0x4c6efa[_0x9189('0x41')][_0x9189('0x88')]){var _0x2eb77d=_0x4c6efa[_0x9189('0x41')][_0x9189('0x88')][_0x9189('0x89')]('\x5c','\x5c\x5c')[_0x9189('0x89')](/'/g,'\x27\x27');if(qs[_0x9189('0x8a')](_0x2eb77d)){_0x28c9c9['or'](_0x9189('0x8b'),_0x2eb77d+'%')['or'](_0x9189('0x8c'),_0x2eb77d+'%');}_0x28c9c9['or'](_0x9189('0x8d'),_0x2eb77d+'%');}}_0x4f213d[_0x9189('0x4b')](_0x28c9c9);_0x4f213d['group'](_0x9189('0x8e'));var _0x1f937e={'type':db[_0x9189('0x8f')][_0x9189('0x90')][_0x9189('0x91')],'raw':!![]};var _0x3c28cd=_0x4f213d[_0x9189('0x92')]();_0x3c28cd[_0x9189('0x4d')]('i.id');_0x3c28cd[_0x9189('0x4d')](_0x9189('0x93'),'unreadMessages');if(_0x57a582[_0x9189('0x49')]){_0x57a582['order']['forEach'](function(_0x96bcc3){var _0x24f078=_0x96bcc3[0x0]==='contactName'?_0x96bcc3[0x0]:'i.'+_0x96bcc3[0x0];_0x4f213d[_0x9189('0x49')](_0x24f078,_0x96bcc3[0x1]===_0x9189('0x94')?![]:!![]);});}if(!_[_0x9189('0x95')](_0x180f5f)){_0x4f213d[_0x9189('0x68')](_0x4f2f81);_0x3c28cd[_0x9189('0x4b')]('t.id\x20IN\x20?',_0x180f5f);}BPromise['resolve']()['then'](function(){if(!_0x227852){if(_0x4c6efa['query'][_0x9189('0x7a')])return;_0x3c28cd[_0x9189('0x4b')]('i.FaxAccountId\x20IS\x20NOT\x20NULL');_0x4f213d[_0x9189('0x4b')](_0x9189('0x96'));return;}if(_0x4c6efa[_0x9189('0x97')][_0x9189('0x98')]!==_0x9189('0x99'))return;return _0x4c6efa[_0x9189('0x97')][_0x9189('0x9a')]({'attributes':['id'],'raw':!![]})[_0x9189('0x2e')](function(_0x2a34b2){if(_[_0x9189('0x95')](_0x2a34b2)){_0x3c28cd[_0x9189('0x4b')](_0x9189('0x9b'));_0x4f213d['where'](_0x9189('0x9b'));}else{_0x3c28cd[_0x9189('0x4b')](_0x9189('0x7b'),_[_0x9189('0x33')](_0x2a34b2,'id'));_0x4f213d[_0x9189('0x4b')](_0x9189('0x7b'),_[_0x9189('0x33')](_0x2a34b2,'id'));}});})['then'](function(){if(_0x4c6efa['user'][_0x9189('0x98')]==='agent'&&!_0x227852&&!_0x4c6efa['query'][_0x9189('0x7a')])return[];return db[_0x9189('0x9c')][_0x9189('0x41')](_0x3c28cd[_0x9189('0x9d')](),_0x1f937e);})['then'](function(_0x2b2ac1){_0x1f2819['count']=_0x2b2ac1['length'];if(_0x1f2819[_0x9189('0x27')]===0x0)return[];return db[_0x9189('0x9c')]['query'](_0x458bd4['toString'](),_0x1f937e)[_0x9189('0x2e')](function(_0x44b057){_0xc70869=_['keyBy'](_0x44b057,'id');_0x1f937e=_['merge'](_0x1f937e,{'model':db[_0x9189('0x3c')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x4c6efa[_0x9189('0x41')]['fields']){_0x57a582[_0x9189('0x45')]['forEach'](function(_0x5da43d){_0x4f213d[_0x9189('0x4d')]('i.'+_0x5da43d);});}else{_0x4f213d[_0x9189('0x4d')](_0x9189('0x93'),'unreadMessages');_0x4f213d[_0x9189('0x4d')](_0x9189('0x9e'),_0x9189('0x9f'));_0x4f213d[_0x9189('0x4d')](_0x9189('0xa0'),_0x9189('0xa1'));_0x4f213d[_0x9189('0x4d')](_0x9189('0xa2'),'contactName');_0x4f213d[_0x9189('0x4d')](_0x9189('0xa3'));_0x4f213d['field'](_0x9189('0xa4'),_0x9189('0xa5'));_0x4f213d[_0x9189('0x4d')](_0x9189('0xa6'),_0x9189('0xa7'));_0x4f213d[_0x9189('0x4d')](_0x9189('0xa8'),_0x9189('0xa9'));_0x4f213d['field']('c.phone','Contact.phone');_0x4f213d['field'](_0x9189('0xaa'),_0x9189('0xab'));_0x4f213d[_0x9189('0x4d')](_0x9189('0xac'),_0x9189('0xad'));_0x4f213d[_0x9189('0x4d')](_0x9189('0xae'),_0x9189('0xaf'));_0x4f213d[_0x9189('0x4d')](_0x9189('0xb0'),_0x9189('0xb1'));_0x4f213d[_0x9189('0x4d')](_0x9189('0xb2'),_0x9189('0x36'));}if(_0x57a582[_0x9189('0x26')])_0x4f213d[_0x9189('0x26')](_0x57a582['limit']);if(_0x57a582[_0x9189('0x24')])_0x4f213d[_0x9189('0x24')](_0x57a582['offset']);return db[_0x9189('0x9c')][_0x9189('0x41')](_0x4f213d[_0x9189('0x9d')](),_0x1f937e);})[_0x9189('0x2e')](function(_0xc909ce){if(_0xc909ce['length']>0x0)_0x2d3a81[_0x9189('0x4b')]('ui.FaxInteractionId\x20IN\x20?',_[_0x9189('0x33')](_0xc909ce,'id'));return db[_0x9189('0x9c')][_0x9189('0x41')](_0x2d3a81['toString'](),_0x1f937e)[_0x9189('0x2e')](function(_0x1007d6){var _0x3c923d=_[_0x9189('0xb3')](_0x1007d6,'FaxInteractionId');var _0x156412=[];_0xc909ce[_0x9189('0x38')](function(_0x207af9){_0x156412[_0x9189('0x39')](updateFaxInteraction(_0x207af9,_0xc70869,_0x3c923d));});return BPromise[_0x9189('0xb4')](_0x156412);});});})[_0x9189('0x2e')](function(_0x116d93){_0x1f2819['rows']=_0x116d93;return _0x1f2819;})[_0x9189('0x2e')](respondWithFilteredResult(_0x4f8830,_0x57a582))['catch'](handleError(_0x4f8830,null));};exports[_0x9189('0xb5')]=function(_0x428c2a,_0x13fd6c){var _0x253194={'raw':![],'where':{'id':_0x428c2a[_0x9189('0xb6')]['id']}},_0xe717e7={};_0xe717e7['model']=_[_0x9189('0x42')](db['FaxInteraction']['rawAttributes']);_0xe717e7[_0x9189('0x41')]=_['keys'](_0x428c2a['query']);_0xe717e7['filters']=_[_0x9189('0x44')](_0xe717e7[_0x9189('0x40')],_0xe717e7['query']);_0x253194[_0x9189('0x45')]=_['intersection'](_0xe717e7[_0x9189('0x40')],qs[_0x9189('0x46')](_0x428c2a[_0x9189('0x41')][_0x9189('0x46')]));_0x253194[_0x9189('0x45')]=_0x253194[_0x9189('0x45')][_0x9189('0x47')]?_0x253194[_0x9189('0x45')]:_0xe717e7['model'];if(_0x428c2a['query'][_0x9189('0xb7')]){_0x253194[_0x9189('0xb8')]=[{'all':!![]}];}_0x253194=_[_0x9189('0xb9')]({},_0x253194,_0x428c2a['options']);return db[_0x9189('0x3c')][_0x9189('0x70')](_0x253194)[_0x9189('0x2e')](handleEntityNotFound(_0x13fd6c,null))[_0x9189('0x2e')](respondWithResult(_0x13fd6c,null))[_0x9189('0x3a')](handleError(_0x13fd6c,null));};exports[_0x9189('0xba')]=function(_0x54fd73,_0x5bbab6){return db[_0x9189('0x3c')]['create'](_0x54fd73[_0x9189('0xbb')],{})[_0x9189('0x2e')](respondWithResult(_0x5bbab6,0xc9))[_0x9189('0x3a')](handleError(_0x5bbab6,null));};exports[_0x9189('0x2d')]=function(_0x1757df,_0x4a9528){if(_0x1757df[_0x9189('0xbb')]['id']){delete _0x1757df[_0x9189('0xbb')]['id'];}return db[_0x9189('0x3c')][_0x9189('0x70')]({'where':{'id':_0x1757df['params']['id']}})['then'](handleEntityNotFound(_0x4a9528,null))['then'](saveUpdates(_0x1757df['body'],null))[_0x9189('0x2e')](respondWithResult(_0x4a9528,null))[_0x9189('0x3a')](handleError(_0x4a9528,null));};exports[_0x9189('0x2f')]=function(_0x1cc474,_0x44f453){return db[_0x9189('0x3c')][_0x9189('0x70')]({'where':{'id':_0x1cc474[_0x9189('0xb6')]['id']}})[_0x9189('0x2e')](handleEntityNotFound(_0x44f453,null))[_0x9189('0x2e')](removeEntity(_0x44f453,null))['catch'](handleError(_0x44f453,null));};exports[_0x9189('0xbc')]=function(_0x293bca,_0x51e1b6){return db['FaxInteraction']['describe']()[_0x9189('0x2e')](respondWithResult(_0x51e1b6,null))['catch'](handleError(_0x51e1b6,null));};exports[_0x9189('0xbd')]=function(_0xae21f1,_0x4fd234,_0x33c5f8){return db['FaxMessage']['find']({'where':{'id':_0xae21f1['params']['id']}})['then'](handleEntityNotFound(_0x4fd234,null))['then'](function(_0x23b168){if(_0x23b168){return _0x23b168[_0x9189('0xbd')](_0xae21f1[_0x9189('0xbb')][_0x9189('0xbe')],_['omit'](_0xae21f1['body'],[_0x9189('0xbe'),'id'])||{});}})[_0x9189('0x2e')](respondWithResult(_0x4fd234,null))[_0x9189('0x3a')](handleError(_0x4fd234,null));};exports['getMessages']=function(_0x21f4c6,_0x1f1371,_0x13f2dd){var _0x4642a5={'raw':![],'where':{}};var _0x596dc2={};var _0x1bac01={'count':0x0,'rows':[]};return db['FaxInteraction'][_0x9189('0xbf')]({'where':{'id':_0x21f4c6[_0x9189('0xb6')]['id']}})[_0x9189('0x2e')](handleEntityNotFound(_0x1f1371,null))[_0x9189('0x2e')](function(_0x5065cd){if(_0x5065cd){_0x596dc2[_0x9189('0x40')]=_[_0x9189('0x42')](db[_0x9189('0xc0')][_0x9189('0xc1')]);_0x596dc2[_0x9189('0x41')]=_[_0x9189('0x42')](_0x21f4c6[_0x9189('0x41')]);_0x596dc2[_0x9189('0x43')]=_[_0x9189('0x44')](_0x596dc2[_0x9189('0x40')],_0x596dc2[_0x9189('0x41')]);_0x4642a5['attributes']=_[_0x9189('0x44')](_0x596dc2['model'],qs[_0x9189('0x46')](_0x21f4c6[_0x9189('0x41')]['fields']));_0x4642a5[_0x9189('0x45')]=_0x4642a5['attributes']['length']?_0x4642a5['attributes']:_0x596dc2[_0x9189('0x40')];if(!_0x21f4c6['query']['hasOwnProperty']('nolimit')){_0x4642a5['limit']=qs['limit'](_0x21f4c6[_0x9189('0x41')]['limit']);_0x4642a5[_0x9189('0x24')]=qs[_0x9189('0x24')](_0x21f4c6[_0x9189('0x41')][_0x9189('0x24')]);}_0x4642a5[_0x9189('0x49')]=qs[_0x9189('0x4a')](_0x21f4c6[_0x9189('0x41')][_0x9189('0x4a')]);_0x4642a5[_0x9189('0x4b')]=qs['filters'](_['pick'](_0x21f4c6[_0x9189('0x41')],_0x596dc2[_0x9189('0x43')]));_0x4642a5[_0x9189('0x4b')][_0x9189('0xc2')]=_0x5065cd['id'];if(_0x21f4c6[_0x9189('0x41')]['filter']){_0x4642a5[_0x9189('0x4b')]=_[_0x9189('0xb9')](_0x4642a5[_0x9189('0x4b')],{'$or':_[_0x9189('0x33')](_0x4642a5[_0x9189('0x45')],function(_0x14fa46){var _0x323e68={};_0x323e68[_0x14fa46]={'$like':'%'+_0x21f4c6[_0x9189('0x41')][_0x9189('0x88')]+'%'};return _0x323e68;})});}if(_0x21f4c6[_0x9189('0x41')][_0x9189('0xc3')]){var _0x3d3edf=_0x21f4c6[_0x9189('0x41')][_0x9189('0xc3')]['split'](',');var _0x4e24aa={};_0x4e24aa[_0x3d3edf[0x0]]={'$gte':moment(_0x3d3edf[0x1])['format'](_0x9189('0xc4'))};_0x4642a5[_0x9189('0x4b')]=_['merge'](_0x4642a5[_0x9189('0x4b')],_0x4e24aa);}_0x4642a5=_[_0x9189('0xb9')]({},_0x4642a5,_0x21f4c6[_0x9189('0xc5')]);return db[_0x9189('0xc0')][_0x9189('0x27')]({'where':_0x4642a5['where']})[_0x9189('0x2e')](function(_0x3bb497){_0x1bac01[_0x9189('0x27')]=_0x3bb497;if(_0x21f4c6['query']['includeAll']){_0x4642a5[_0x9189('0xb8')]=[{'all':!![]}];}return db[_0x9189('0xc0')][_0x9189('0xc6')](_0x4642a5);})[_0x9189('0x2e')](function(_0x7d5bd1){_0x1bac01[_0x9189('0xc7')]=_0x7d5bd1;return _0x1bac01;});}})[_0x9189('0x2e')](respondWithFilteredResult(_0x1f1371,_0x4642a5))[_0x9189('0x3a')](handleError(_0x1f1371,null));};exports[_0x9189('0xc8')]=function(_0x5a617,_0x20f2c5,_0x540970){return db[_0x9189('0x3c')][_0x9189('0x70')]({'where':{'id':_0x5a617['params']['id']}})['then'](handleEntityNotFound(_0x20f2c5,null))['then'](function(_0x30c78c){if(_0x30c78c){return _0x30c78c[_0x9189('0xc9')](_0x5a617['body'][_0x9189('0xbe')],_['omit'](_0x5a617['body'],[_0x9189('0xbe'),'id'])||{})[_0x9189('0xca')](function(){return db[_0x9189('0xcb')][_0x9189('0xc6')]({'attributes':['id',_0x9189('0x4e'),_0x9189('0x4f')],'where':{'id':_0x5a617[_0x9189('0xbb')]['ids']}});})[_0x9189('0x2e')](function(_0x2349af){socket[_0x9189('0xcc')]('faxInteractionTags:save',{'id':Number(_0x5a617[_0x9189('0xb6')]['id']),'tags':_0x2349af||[]});return{'id':Number(_0x5a617['params']['id']),'tags':_0x2349af||[]};});}})[_0x9189('0x2e')](respondWithResult(_0x20f2c5,null))['catch'](handleError(_0x20f2c5,null));};exports[_0x9189('0xcd')]=function(_0x21040e,_0x4a2220,_0x1ed40a){return db[_0x9189('0x3c')][_0x9189('0x70')]({'where':{'id':_0x21040e[_0x9189('0xb6')]['id']}})['then'](handleEntityNotFound(_0x4a2220,null))[_0x9189('0x2e')](function(_0x496974){if(_0x496974){return _0x496974[_0x9189('0xcd')](_0x21040e[_0x9189('0x41')][_0x9189('0xbe')]);}})[_0x9189('0x2e')](respondWithStatusCode(_0x4a2220,null))[_0x9189('0x3a')](handleError(_0x4a2220,null));};exports[_0x9189('0xce')]=function(_0xa147df,_0x922814){var _0x7108fd=moment()['unix']()['toString']();var _0x2e8229=path[_0x9189('0xcf')](config[_0x9189('0xd0')],_0x9189('0xd1'),_0x9189('0xd2'),_0x9189('0xd3'));var _0x2fe407=path['join'](config['root'],_0x9189('0xd1'),_0x9189('0xd2'),_0x9189('0xd4'));var _0x271fd1=path[_0x9189('0xcf')](_0x2e8229,_0x7108fd);var _0x268aab=util[_0x9189('0xd5')](_0x9189('0xd6'),_0xa147df['params']['id'],_0x7108fd);var _0x5324c0=path[_0x9189('0xcf')](_0x2e8229,_0x268aab);var _0x41ddfa=[];_0x41ddfa[_0x9189('0x39')]({'model':db[_0x9189('0xd7')],'as':_0x9189('0xd7'),'raw':!![]});var _0x455ec9=[{'model':db[_0x9189('0xc0')],'as':_0x9189('0xd8'),'attributes':['id',_0x9189('0xbb'),'createdAt'],'include':_0x41ddfa}];return db[_0x9189('0x3c')][_0x9189('0x70')]({'where':{'id':_0xa147df[_0x9189('0xb6')]['id']},'include':_0x455ec9})[_0x9189('0x2e')](handleEntityNotFound(_0x922814,null))['then'](function(_0x3eceaa){if(_0x3eceaa&&_0x3eceaa[_0x9189('0xd8')]){var _0x3651d0=_0x3eceaa[_0x9189('0xd9')]({'plain':!![]});fs[_0x9189('0xda')](_0x271fd1);for(var _0x4f52e9=0x0;_0x4f52e9<_0x3651d0[_0x9189('0xd8')][_0x9189('0x47')];_0x4f52e9++){var _0x3a2315=_0x3651d0[_0x9189('0xd8')][_0x4f52e9][_0x9189('0xd7')];if(_0x3a2315){var _0x10f297=path[_0x9189('0xcf')](_0x2fe407,_0x3a2315['basename']);if(fs[_0x9189('0xdb')](_0x10f297)){fs[_0x9189('0xdc')](_0x10f297)[_0x9189('0xdd')](fs[_0x9189('0xde')](path['join'](_0x271fd1,_0x3a2315[_0x9189('0xdf')])));}}}return BPromise['resolve']()[_0x9189('0x2e')](function(){return new BPromise(function(_0x2fbc97,_0x13289c){zipdir(_0x271fd1,{'saveTo':_0x5324c0},function(_0x18205b,_0x321523){if(_0x18205b)return _0x13289c(_0x18205b);return _0x2fbc97(_0x321523);});})[_0x9189('0x2e')](function(){return new BPromise(function(_0x3fceef,_0xc2811a){rimraf(_0x271fd1,function(_0x2de322){if(_0x2de322)_0xc2811a(_0x2de322);return _0x3fceef();});});})['then'](function(){return _0x922814[_0x9189('0xce')](_0x5324c0,_0x268aab,function(_0x347cda){if(_0x347cda){console[_0x9189('0xe0')](_0x9189('0xe1'),_0x347cda);}else{fs[_0x9189('0xe2')](_0x5324c0);}});});});}else{return _0x922814['sendStatus'](0xc8);}})[_0x9189('0x3a')](handleError(_0x922814,null));};
\ No newline at end of file
+var _0x0816=['Content-Range','apply','reject','save','update','then','destroy','error','name','send','map','fullname','TagIds','forEach','Tags','push','index','rawAttributes','fieldName','key','keys','query','intersection','model','attributes','fields','hasOwnProperty','nolimit','order','sort','where','filters','field','color','from','tools_tags','u.fullname','ui.FaxInteractionId','left_join','u.id\x20=\x20ui.UserId','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','users','o.id\x20=\x20i.UserId','a.id\x20=\x20i.FaxAccountId','fax_messages','me.FaxInteractionId\x20=\x20i.id','fax_interaction_has_tags','t.id\x20=\x20it.TagId','expr','search','conditions','find','unreadMessages','value','`\x20=\x200','having','`\x20>\x200','Contact','operator','$substring','split','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId','text','start','Tag','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User','UserId','buildExpression','type','body','some','compact','isEmpty','FaxAccountId','i.FaxAccountId\x20IN\x20?','concat','parse','null','\x20IS\x20NULL','\x20=\x20?','tag','filter','replace','isNumeric','i.id\x20LIKE\x20?','i.fax\x20LIKE\x20?','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','group','QueryTypes','clone','i.id','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','contactName','DESC','resolve','i.FaxAccountId\x20IS\x20NOT\x20NULL','role','i.FaxAccountId\x20IS\x20NULL','user','sequelize','length','toString','keyBy','FaxInteraction','a.key','Account.key','a.mandatoryDisposition','Account.mandatoryDisposition','CASE\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END','i.*','c.firstName','c.lastName','c.email','c.phone','Contact.phone','Contact.mobile','c.fax','Contact.fax','Owner.fullname','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.FaxInteractionId\x20IN\x20?','FaxInteractionId','all','rows','catch','show','params','includeAll','include','merge','create','describe','FaxMessage','addMessage','ids','omit','getMessages','findOne','pick','$gte','YYYY-MM-DD\x20HH:mm:ss','options','findAll','addTags','setTags','spread','emit','removeTags','download','unix','root','server','files','tmp','join','attachments','format','transcript-%d-%s.zip','Attachment','Messages','createdAt','mkdirSync','basename','createReadStream','pipe','createWriteStream','log','unlinkSync','eml-format','zip-dir','bluebird','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/license/util','../../mysqldb','redis','defaults','localhost','sendStatus','status','end','json','offset','undefined','limit','count'];(function(_0x4cf9a6,_0x36587f){var _0xc64ef4=function(_0x163056){while(--_0x163056){_0x4cf9a6['push'](_0x4cf9a6['shift']());}};_0xc64ef4(++_0x36587f);}(_0x0816,0x182));var _0x6081=function(_0x500419,_0x549162){_0x500419=_0x500419-0x0;var _0x241c1a=_0x0816[_0x500419];return _0x241c1a;};'use strict';var emlformat=require(_0x6081('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x6081('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x6081('0x2'));var Mustache=require('mustache');var util=require(_0x6081('0x3'));var path=require(_0x6081('0x4'));var sox=require(_0x6081('0x5'));var csv=require(_0x6081('0x6'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x6081('0x7'));var _=require(_0x6081('0x8'));var squel=require(_0x6081('0x9'));var crypto=require(_0x6081('0xa'));var jsforce=require(_0x6081('0xb'));var deskjs=require(_0x6081('0xc'));var toCsv=require(_0x6081('0x6'));var querystring=require(_0x6081('0xd'));var Papa=require(_0x6081('0xe'));var Redis=require(_0x6081('0xf'));var authService=require(_0x6081('0x10'));var qs=require(_0x6081('0x11'));var as=require(_0x6081('0x12'));var hardwareService=require(_0x6081('0x13'));var logger=require(_0x6081('0x14'))('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x6081('0x15'));var db=require(_0x6081('0x16'))['db'];config[_0x6081('0x17')]=_[_0x6081('0x18')](config[_0x6081('0x17')],{'host':_0x6081('0x19'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x6081('0x17')]));require('./faxInteraction.socket')['register'](socket);function respondWithStatusCode(_0xd224c,_0x18301b){_0x18301b=_0x18301b||0xcc;return function(_0x42c1bf){if(_0x42c1bf){return _0xd224c[_0x6081('0x1a')](_0x18301b);}return _0xd224c[_0x6081('0x1b')](_0x18301b)[_0x6081('0x1c')]();};}function respondWithResult(_0x5779e1,_0x4a0668){_0x4a0668=_0x4a0668||0xc8;return function(_0xfb6cf7){if(_0xfb6cf7){return _0x5779e1[_0x6081('0x1b')](_0x4a0668)[_0x6081('0x1d')](_0xfb6cf7);}};}function respondWithFilteredResult(_0x134400,_0x4b5075){return function(_0x1b0827){if(_0x1b0827){var _0xb23117=typeof _0x4b5075[_0x6081('0x1e')]===_0x6081('0x1f')&&typeof _0x4b5075[_0x6081('0x20')]===_0x6081('0x1f');var _0x14271d=_0x1b0827[_0x6081('0x21')];var _0x5a3d22=_0xb23117?0x0:_0x4b5075[_0x6081('0x1e')];var _0x2ca8cc=_0xb23117?_0x1b0827['count']:_0x4b5075['offset']+_0x4b5075[_0x6081('0x20')];var _0x5c8a2b;if(_0x2ca8cc>=_0x14271d){_0x2ca8cc=_0x14271d;_0x5c8a2b=0xc8;}else{_0x5c8a2b=0xce;}_0x134400[_0x6081('0x1b')](_0x5c8a2b);return _0x134400['set'](_0x6081('0x22'),_0x5a3d22+'-'+_0x2ca8cc+'/'+_0x14271d)[_0x6081('0x1d')](_0x1b0827);}return null;};}function patchUpdates(_0x5edb54){return function(_0x17d9d9){try{jsonpatch[_0x6081('0x23')](_0x17d9d9,_0x5edb54,!![]);}catch(_0x20ebd4){return BPromise[_0x6081('0x24')](_0x20ebd4);}return _0x17d9d9[_0x6081('0x25')]();};}function saveUpdates(_0x269d28,_0x2c1be4){return function(_0x2a4a75){if(_0x2a4a75){return _0x2a4a75[_0x6081('0x26')](_0x269d28)[_0x6081('0x27')](function(_0x9d62cb){return _0x9d62cb;});}return null;};}function removeEntity(_0x133351,_0x314952){return function(_0x4aa54e){if(_0x4aa54e){return _0x4aa54e[_0x6081('0x28')]()[_0x6081('0x27')](function(){_0x133351['status'](0xcc)[_0x6081('0x1c')]();});}};}function handleEntityNotFound(_0xe11ada,_0x37f9bd){return function(_0x2fd72b){if(!_0x2fd72b){_0xe11ada[_0x6081('0x1a')](0x194);}return _0x2fd72b;};}function handleError(_0x51ab5f,_0x557821){_0x557821=_0x557821||0x1f4;return function(_0x24194c){logger[_0x6081('0x29')](_0x24194c['stack']);if(_0x24194c[_0x6081('0x2a')]){delete _0x24194c[_0x6081('0x2a')];}_0x51ab5f['status'](_0x557821)[_0x6081('0x2b')](_0x24194c);};}function getInteractionUsers(_0x3997ab,_0x30e9bc){return new BPromise(function(_0x453728,_0x2b02e8){try{if(_0x30e9bc[_0x3997ab['id']]){_0x3997ab['Users']=_[_0x6081('0x2c')](_0x30e9bc[_0x3997ab['id']],function(_0x1c3e1f){return{'id':_0x1c3e1f['id'],'fullname':_0x1c3e1f[_0x6081('0x2d')]};});}}catch(_0x5bc066){_0x2b02e8(_0x5bc066);}_0x453728(_0x3997ab);});}function getInteractionTags(_0x127d8b,_0x2e0840){return new BPromise(function(_0x512850,_0x85ce7d){try{if(_0x127d8b[_0x6081('0x2e')]){_0x127d8b['Tags']=[];_0x127d8b[_0x6081('0x2e')]['split'](',')[_0x6081('0x2f')](function(_0x39dc29){_0x127d8b[_0x6081('0x30')][_0x6081('0x31')](_0x2e0840[_0x39dc29]);});}delete _0x127d8b['TagIds'];}catch(_0xb7ce0a){_0x85ce7d(_0xb7ce0a);}_0x512850(_0x127d8b);});}function updateFaxInteraction(_0x189c36,_0x5b47d0,_0x4a9c73){return new BPromise(function(_0x56830e,_0xdc7fd7){return getInteractionUsers(_0x189c36,_0x4a9c73)['then'](function(_0x4a3b0a){return getInteractionTags(_0x4a3b0a,_0x5b47d0);})[_0x6081('0x27')](function(_0x344053){_0x56830e(_0x344053);})['catch'](function(_0x29cceb){_0xdc7fd7(_0x29cceb);});});}exports[_0x6081('0x32')]=function(_0x108f91,_0x31f523){var _0x19ae32={},_0x451fbe={},_0x50e955={'count':0x0,'rows':[]};var _0xa88475=_['map'](db['FaxInteraction'][_0x6081('0x33')],function(_0x5a3b70){return{'name':_0x5a3b70[_0x6081('0x34')],'type':_0x5a3b70['type'][_0x6081('0x35')]};});_0x451fbe['model']=_[_0x6081('0x2c')](_0xa88475,_0x6081('0x2a'));_0x451fbe['query']=_[_0x6081('0x36')](_0x108f91[_0x6081('0x37')]);_0x451fbe['filters']=_[_0x6081('0x38')](_0x451fbe[_0x6081('0x39')],_0x451fbe['query']);_0x19ae32[_0x6081('0x3a')]=_['intersection'](_0x451fbe[_0x6081('0x39')],qs[_0x6081('0x3b')](_0x108f91['query'][_0x6081('0x3b')]));_0x19ae32['attributes']=_0x19ae32[_0x6081('0x3a')]['length']?_0x19ae32['attributes']:_0x451fbe[_0x6081('0x39')];if(!_0x108f91[_0x6081('0x37')][_0x6081('0x3c')](_0x6081('0x3d'))){_0x19ae32['limit']=qs['limit'](_0x108f91[_0x6081('0x37')][_0x6081('0x20')]);_0x19ae32[_0x6081('0x1e')]=qs[_0x6081('0x1e')](_0x108f91[_0x6081('0x37')]['offset']);}_0x19ae32[_0x6081('0x3e')]=qs[_0x6081('0x3f')](_0x108f91[_0x6081('0x37')][_0x6081('0x3f')]);_0x19ae32[_0x6081('0x40')]=qs[_0x6081('0x41')](_['pick'](_0x108f91['query'],_0x451fbe['filters']),_0xa88475);var _0x5da3ba=[];var _0x794584=squel['select']()[_0x6081('0x42')]('id')['field']('name')[_0x6081('0x42')](_0x6081('0x43'))[_0x6081('0x44')](_0x6081('0x45'));var _0x3d6b34=squel['select']()[_0x6081('0x42')]('u.id')['field'](_0x6081('0x46'))[_0x6081('0x42')](_0x6081('0x47'))[_0x6081('0x44')]('user_has_fax_interactions','ui')[_0x6081('0x48')]('users','u',_0x6081('0x49'));var _0x8793ef=squel['select']()['from']('fax_interactions','i')[_0x6081('0x48')](_0x6081('0x4a'),'c',_0x6081('0x4b'))['left_join'](_0x6081('0x4c'),'o',_0x6081('0x4d'))[_0x6081('0x48')]('fax_accounts','a',_0x6081('0x4e'))[_0x6081('0x48')](_0x6081('0x4f'),'me',_0x6081('0x50'))[_0x6081('0x48')](_0x6081('0x51'),'it','it.FaxInteractionId\x20=\x20i.id')[_0x6081('0x48')](_0x6081('0x45'),'t',_0x6081('0x52'));var _0x18b4a0=squel[_0x6081('0x53')]();var _0x2c3e75=[];var _0x564b03=squel[_0x6081('0x53')]();var _0x439cd3;if(_0x108f91['query'][_0x6081('0x54')]){_0x439cd3=as['parseSearch'](_0x108f91['query'][_0x6081('0x54')]);var _0x20c9c3=_0x439cd3['sqlOperator'];for(var _0x33eb18=0x0;_0x33eb18<_0x439cd3[_0x6081('0x55')]['length'];_0x33eb18++){var _0x21c652=_0x439cd3[_0x6081('0x55')][_0x33eb18];var _0x5005bf='i';var _0x3a6cf9=_[_0x6081('0x56')](_0xa88475,['name',_0x21c652[_0x6081('0x42')]]);if(!_0x3a6cf9){switch(_0x21c652[_0x6081('0x42')]){case _0x6081('0x57'):if(_0x21c652[_0x6081('0x58')]==0x1){_0x8793ef['having']('`'+_0x21c652[_0x6081('0x42')]+_0x6081('0x59'));}else{_0x8793ef[_0x6081('0x5a')]('`'+_0x21c652[_0x6081('0x42')]+_0x6081('0x5b'));}break;case _0x6081('0x5c'):if(_0x21c652[_0x6081('0x5d')]===_0x6081('0x5e')){if(_0x21c652[_0x6081('0x58')][_0x6081('0x5f')]('\x20')['length']>0x1){_0x18b4a0[_0x20c9c3](_0x6081('0x60'),qs[_0x6081('0x61')](_0x21c652[_0x6081('0x58')]),null);}else{var _0x44cfc9='%'+_0x21c652['value']+'%';_0x18b4a0[_0x20c9c3](_0x6081('0x62'),_0x44cfc9,_0x44cfc9,_0x44cfc9);}}else{_0x3a6cf9=_['find'](_0xa88475,[_0x6081('0x2a'),'ContactId']);_0x21c652[_0x6081('0x42')]=_0x6081('0x63');_0x5586ed=as['buildExpression'](_0x5005bf,_0x3a6cf9['type'],_0x21c652);_0x18b4a0[_0x20c9c3](_0x5586ed[_0x6081('0x64')],_0x5586ed[_0x6081('0x58')][_0x6081('0x65')],_0x5586ed[_0x6081('0x58')][_0x6081('0x1c')]);}break;case _0x6081('0x66'):var _0x24a588=_0x21c652[_0x6081('0x58')][_0x6081('0x5f')](',')[_0x6081('0x2c')](function(_0xe0f070){return Number(_0xe0f070);});_0x24a588[_0x6081('0x2f')](function(_0x3e8519){_0x564b03['or'](_0x6081('0x67'),'%,'+_0x3e8519+',%');});_0x2c3e75=_[_0x6081('0x68')](_0x2c3e75,_0x24a588);break;case _0x6081('0x69'):if(_0x21c652[_0x6081('0x5d')]==='$substring'){_0x18b4a0[_0x20c9c3]('CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','%'+_0x21c652['value']+'%',null);}else{_0x3a6cf9=_[_0x6081('0x56')](_0xa88475,[_0x6081('0x2a'),_0x6081('0x6a')]);_0x21c652[_0x6081('0x42')]=_0x6081('0x6a');_0x5586ed=as[_0x6081('0x6b')](_0x5005bf,_0x3a6cf9[_0x6081('0x6c')],_0x21c652);_0x18b4a0[_0x20c9c3](_0x5586ed['text'],_0x5586ed[_0x6081('0x58')][_0x6081('0x65')],_0x5586ed[_0x6081('0x58')][_0x6081('0x1c')]);}break;case _0x6081('0x6d'):_0x5586ed=as[_0x6081('0x6b')]('me',null,_0x21c652);_0x18b4a0[_0x20c9c3](_0x5586ed['text'],_0x5586ed[_0x6081('0x58')][_0x6081('0x65')],_0x5586ed[_0x6081('0x58')]['end']);break;}}else{var _0x5586ed=as[_0x6081('0x6b')](_0x5005bf,_0x3a6cf9[_0x6081('0x6c')],_0x21c652);_0x18b4a0[_0x20c9c3](_0x5586ed[_0x6081('0x64')],_0x5586ed[_0x6081('0x58')][_0x6081('0x65')],_0x5586ed[_0x6081('0x58')][_0x6081('0x1c')]);}}}else{var _0x4ec1ee=_(_0x108f91[_0x6081('0x37')])['keys']()[_0x6081('0x2c')](function(_0x398f02){return _[_0x6081('0x6e')](_0xa88475,[_0x6081('0x2a'),_0x398f02])?_0x398f02:undefined;})[_0x6081('0x6f')]()[_0x6081('0x58')]();if(!_[_0x6081('0x70')](_0x4ec1ee)){_0x4ec1ee[_0x6081('0x2f')](function(_0xb187dd){if(_0xb187dd===_0x6081('0x71')){_0x8793ef[_0x6081('0x40')](_0x6081('0x72'),[][_0x6081('0x73')](_0x108f91[_0x6081('0x37')][_0xb187dd]));}else if(_0xb187dd==='createdAt'){var _0x53b8ce=JSON[_0x6081('0x74')](_0x108f91[_0x6081('0x37')][_0xb187dd])['$gte'];var _0x3d5ff7=JSON[_0x6081('0x74')](_0x108f91[_0x6081('0x37')][_0xb187dd])['$lte'];_0x8793ef[_0x6081('0x40')]('i.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0x53b8ce,_0x3d5ff7);}else{if(_0x108f91[_0x6081('0x37')][_0xb187dd]===_0x6081('0x75')){_0x8793ef[_0x6081('0x40')]('i.'+_0xb187dd+_0x6081('0x76'));}else{_0x8793ef[_0x6081('0x40')]('i.'+_0xb187dd+_0x6081('0x77'),_0x108f91['query'][_0xb187dd]);}}});}if(_0x108f91[_0x6081('0x37')]['read']){if(_0x108f91[_0x6081('0x37')]['read']==0x1){_0x8793ef[_0x6081('0x5a')]('`unreadMessages`\x20=\x200');}else{_0x8793ef[_0x6081('0x5a')]('`unreadMessages`\x20>\x200');}}if(_0x108f91['query'][_0x6081('0x78')]){_0x2c3e75=_['isArray'](_0x108f91[_0x6081('0x37')]['tag'])?_0x108f91[_0x6081('0x37')][_0x6081('0x78')]:new Array(_0x108f91[_0x6081('0x37')][_0x6081('0x78')]);_0x2c3e75[_0x6081('0x2f')](function(_0x49207c){_0x564b03['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x49207c+',%');});}if(_0x108f91[_0x6081('0x37')][_0x6081('0x79')]){var _0x3d95c8=_0x108f91[_0x6081('0x37')]['filter'][_0x6081('0x7a')]('\x5c','\x5c\x5c')['replace'](/'/g,'\x27\x27');if(qs[_0x6081('0x7b')](_0x3d95c8)){_0x18b4a0['or'](_0x6081('0x7c'),_0x3d95c8+'%')['or'](_0x6081('0x7d'),_0x3d95c8+'%');}_0x18b4a0['or'](_0x6081('0x7e'),_0x3d95c8+'%');}}_0x8793ef[_0x6081('0x40')](_0x18b4a0);_0x8793ef[_0x6081('0x7f')]('i.id');var _0x5c2327={'type':db['Sequelize'][_0x6081('0x80')]['SELECT'],'raw':!![]};var _0x13431e=_0x8793ef[_0x6081('0x81')]();_0x13431e[_0x6081('0x42')](_0x6081('0x82'));_0x13431e[_0x6081('0x42')](_0x6081('0x83'),_0x6081('0x57'));if(_0x19ae32[_0x6081('0x3e')]){_0x19ae32[_0x6081('0x3e')][_0x6081('0x2f')](function(_0x187d94){var _0x92f314=_0x187d94[0x0]===_0x6081('0x84')?_0x187d94[0x0]:'i.'+_0x187d94[0x0];_0x8793ef[_0x6081('0x3e')](_0x92f314,_0x187d94[0x1]===_0x6081('0x85')?![]:!![]);});}if(!_[_0x6081('0x70')](_0x2c3e75)){_0x8793ef[_0x6081('0x5a')](_0x564b03);_0x13431e['where']('t.id\x20IN\x20?',_0x2c3e75);}BPromise[_0x6081('0x86')]()[_0x6081('0x27')](function(){if(!_0x439cd3){if(_0x108f91['query'][_0x6081('0x71')])return;_0x13431e[_0x6081('0x40')](_0x6081('0x87'));_0x8793ef[_0x6081('0x40')](_0x6081('0x87'));return;}if(_0x108f91['user'][_0x6081('0x88')]!=='agent')return;return _0x108f91['user']['getFaxAccounts']({'attributes':['id'],'raw':!![]})['then'](function(_0x4d8325){if(_[_0x6081('0x70')](_0x4d8325)){_0x13431e[_0x6081('0x40')](_0x6081('0x89'));_0x8793ef[_0x6081('0x40')]('i.FaxAccountId\x20IS\x20NULL');}else{_0x13431e[_0x6081('0x40')](_0x6081('0x72'),_[_0x6081('0x2c')](_0x4d8325,'id'));_0x8793ef[_0x6081('0x40')]('i.FaxAccountId\x20IN\x20?',_['map'](_0x4d8325,'id'));}});})[_0x6081('0x27')](function(){if(_0x108f91[_0x6081('0x8a')][_0x6081('0x88')]==='agent'&&!_0x439cd3&&!_0x108f91[_0x6081('0x37')][_0x6081('0x71')])return[];return db[_0x6081('0x8b')][_0x6081('0x37')](_0x13431e['toString'](),_0x5c2327);})[_0x6081('0x27')](function(_0x3e0d86){_0x50e955[_0x6081('0x21')]=_0x3e0d86[_0x6081('0x8c')];if(_0x50e955[_0x6081('0x21')]===0x0)return[];return db[_0x6081('0x8b')][_0x6081('0x37')](_0x794584[_0x6081('0x8d')](),_0x5c2327)[_0x6081('0x27')](function(_0x1c5330){_0x5da3ba=_[_0x6081('0x8e')](_0x1c5330,'id');_0x5c2327=_['merge'](_0x5c2327,{'model':db[_0x6081('0x8f')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x108f91[_0x6081('0x37')]['fields']){_0x19ae32['attributes'][_0x6081('0x2f')](function(_0x4f0235){_0x8793ef['field']('i.'+_0x4f0235);});}else{_0x8793ef[_0x6081('0x42')](_0x6081('0x83'),'unreadMessages');_0x8793ef[_0x6081('0x42')](_0x6081('0x90'),_0x6081('0x91'));_0x8793ef[_0x6081('0x42')](_0x6081('0x92'),_0x6081('0x93'));_0x8793ef[_0x6081('0x42')](_0x6081('0x94'),'contactName');_0x8793ef[_0x6081('0x42')](_0x6081('0x95'));_0x8793ef[_0x6081('0x42')](_0x6081('0x96'),'Contact.firstName');_0x8793ef[_0x6081('0x42')](_0x6081('0x97'),'Contact.lastName');_0x8793ef['field'](_0x6081('0x98'),'Contact.email');_0x8793ef[_0x6081('0x42')](_0x6081('0x99'),_0x6081('0x9a'));_0x8793ef[_0x6081('0x42')]('c.mobile',_0x6081('0x9b'));_0x8793ef['field'](_0x6081('0x9c'),_0x6081('0x9d'));_0x8793ef[_0x6081('0x42')]('o.fullname',_0x6081('0x9e'));_0x8793ef[_0x6081('0x42')](_0x6081('0x9f'),_0x6081('0xa0'));_0x8793ef[_0x6081('0x42')](_0x6081('0xa1'),_0x6081('0x2e'));}if(_0x19ae32['limit'])_0x8793ef[_0x6081('0x20')](_0x19ae32[_0x6081('0x20')]);if(_0x19ae32[_0x6081('0x1e')])_0x8793ef[_0x6081('0x1e')](_0x19ae32[_0x6081('0x1e')]);return db['sequelize'][_0x6081('0x37')](_0x8793ef[_0x6081('0x8d')](),_0x5c2327);})['then'](function(_0x20e9eb){if(_0x20e9eb[_0x6081('0x8c')]>0x0)_0x3d6b34[_0x6081('0x40')](_0x6081('0xa2'),_[_0x6081('0x2c')](_0x20e9eb,'id'));return db[_0x6081('0x8b')][_0x6081('0x37')](_0x3d6b34[_0x6081('0x8d')](),_0x5c2327)[_0x6081('0x27')](function(_0x1bd7b6){var _0x24b8fd=_['groupBy'](_0x1bd7b6,_0x6081('0xa3'));var _0x12c15c=[];_0x20e9eb[_0x6081('0x2f')](function(_0x4ce625){_0x12c15c[_0x6081('0x31')](updateFaxInteraction(_0x4ce625,_0x5da3ba,_0x24b8fd));});return BPromise[_0x6081('0xa4')](_0x12c15c);});});})['then'](function(_0x3d523d){_0x50e955[_0x6081('0xa5')]=_0x3d523d;return _0x50e955;})[_0x6081('0x27')](respondWithFilteredResult(_0x31f523,_0x19ae32))[_0x6081('0xa6')](handleError(_0x31f523,null));};exports[_0x6081('0xa7')]=function(_0x486ea8,_0x3f2c9d){var _0x553a24={'raw':![],'where':{'id':_0x486ea8[_0x6081('0xa8')]['id']}},_0x432bbd={};_0x432bbd[_0x6081('0x39')]=_[_0x6081('0x36')](db[_0x6081('0x8f')]['rawAttributes']);_0x432bbd[_0x6081('0x37')]=_['keys'](_0x486ea8['query']);_0x432bbd[_0x6081('0x41')]=_[_0x6081('0x38')](_0x432bbd['model'],_0x432bbd[_0x6081('0x37')]);_0x553a24[_0x6081('0x3a')]=_[_0x6081('0x38')](_0x432bbd['model'],qs[_0x6081('0x3b')](_0x486ea8['query'][_0x6081('0x3b')]));_0x553a24[_0x6081('0x3a')]=_0x553a24['attributes']['length']?_0x553a24[_0x6081('0x3a')]:_0x432bbd[_0x6081('0x39')];if(_0x486ea8[_0x6081('0x37')][_0x6081('0xa9')]){_0x553a24[_0x6081('0xaa')]=[{'all':!![]}];}_0x553a24=_[_0x6081('0xab')]({},_0x553a24,_0x486ea8['options']);return db[_0x6081('0x8f')][_0x6081('0x56')](_0x553a24)[_0x6081('0x27')](handleEntityNotFound(_0x3f2c9d,null))[_0x6081('0x27')](respondWithResult(_0x3f2c9d,null))[_0x6081('0xa6')](handleError(_0x3f2c9d,null));};exports['create']=function(_0x1b5f16,_0x4cc7f5){return db[_0x6081('0x8f')][_0x6081('0xac')](_0x1b5f16[_0x6081('0x6d')],{})[_0x6081('0x27')](respondWithResult(_0x4cc7f5,0xc9))[_0x6081('0xa6')](handleError(_0x4cc7f5,null));};exports[_0x6081('0x26')]=function(_0x4b7699,_0x30ce15){if(_0x4b7699[_0x6081('0x6d')]['id']){delete _0x4b7699[_0x6081('0x6d')]['id'];}return db['FaxInteraction'][_0x6081('0x56')]({'where':{'id':_0x4b7699[_0x6081('0xa8')]['id']}})[_0x6081('0x27')](handleEntityNotFound(_0x30ce15,null))[_0x6081('0x27')](saveUpdates(_0x4b7699['body'],null))[_0x6081('0x27')](respondWithResult(_0x30ce15,null))[_0x6081('0xa6')](handleError(_0x30ce15,null));};exports['destroy']=function(_0x407f93,_0x12e3fd){return db[_0x6081('0x8f')][_0x6081('0x56')]({'where':{'id':_0x407f93[_0x6081('0xa8')]['id']}})['then'](handleEntityNotFound(_0x12e3fd,null))[_0x6081('0x27')](removeEntity(_0x12e3fd,null))[_0x6081('0xa6')](handleError(_0x12e3fd,null));};exports[_0x6081('0xad')]=function(_0xefff64,_0x79f8e2){return db[_0x6081('0x8f')][_0x6081('0xad')]()[_0x6081('0x27')](respondWithResult(_0x79f8e2,null))[_0x6081('0xa6')](handleError(_0x79f8e2,null));};exports['addMessage']=function(_0x1eddb8,_0x37ac8d,_0x3c1de3){return db[_0x6081('0xae')][_0x6081('0x56')]({'where':{'id':_0x1eddb8[_0x6081('0xa8')]['id']}})['then'](handleEntityNotFound(_0x37ac8d,null))['then'](function(_0x91563f){if(_0x91563f){return _0x91563f[_0x6081('0xaf')](_0x1eddb8[_0x6081('0x6d')][_0x6081('0xb0')],_[_0x6081('0xb1')](_0x1eddb8[_0x6081('0x6d')],['ids','id'])||{});}})[_0x6081('0x27')](respondWithResult(_0x37ac8d,null))[_0x6081('0xa6')](handleError(_0x37ac8d,null));};exports[_0x6081('0xb2')]=function(_0x4aed4a,_0x53377c,_0x2756e2){var _0x4da41a={'raw':![],'where':{}};var _0x476fdf={};var _0x327fb0={'count':0x0,'rows':[]};return db[_0x6081('0x8f')][_0x6081('0xb3')]({'where':{'id':_0x4aed4a[_0x6081('0xa8')]['id']}})[_0x6081('0x27')](handleEntityNotFound(_0x53377c,null))[_0x6081('0x27')](function(_0x150cc7){if(_0x150cc7){_0x476fdf['model']=_[_0x6081('0x36')](db[_0x6081('0xae')][_0x6081('0x33')]);_0x476fdf['query']=_[_0x6081('0x36')](_0x4aed4a[_0x6081('0x37')]);_0x476fdf[_0x6081('0x41')]=_['intersection'](_0x476fdf[_0x6081('0x39')],_0x476fdf['query']);_0x4da41a[_0x6081('0x3a')]=_['intersection'](_0x476fdf[_0x6081('0x39')],qs[_0x6081('0x3b')](_0x4aed4a[_0x6081('0x37')][_0x6081('0x3b')]));_0x4da41a['attributes']=_0x4da41a[_0x6081('0x3a')]['length']?_0x4da41a[_0x6081('0x3a')]:_0x476fdf[_0x6081('0x39')];if(!_0x4aed4a[_0x6081('0x37')][_0x6081('0x3c')](_0x6081('0x3d'))){_0x4da41a[_0x6081('0x20')]=qs[_0x6081('0x20')](_0x4aed4a[_0x6081('0x37')][_0x6081('0x20')]);_0x4da41a[_0x6081('0x1e')]=qs[_0x6081('0x1e')](_0x4aed4a[_0x6081('0x37')]['offset']);}_0x4da41a[_0x6081('0x3e')]=qs['sort'](_0x4aed4a[_0x6081('0x37')][_0x6081('0x3f')]);_0x4da41a[_0x6081('0x40')]=qs[_0x6081('0x41')](_[_0x6081('0xb4')](_0x4aed4a[_0x6081('0x37')],_0x476fdf[_0x6081('0x41')]));_0x4da41a[_0x6081('0x40')][_0x6081('0xa3')]=_0x150cc7['id'];if(_0x4aed4a['query']['filter']){_0x4da41a['where']=_[_0x6081('0xab')](_0x4da41a['where'],{'$or':_[_0x6081('0x2c')](_0x4da41a[_0x6081('0x3a')],function(_0x2dcaa7){var _0x2d5a99={};_0x2d5a99[_0x2dcaa7]={'$like':'%'+_0x4aed4a[_0x6081('0x37')][_0x6081('0x79')]+'%'};return _0x2d5a99;})});}if(_0x4aed4a[_0x6081('0x37')][_0x6081('0xb5')]){var _0xa9f5c=_0x4aed4a[_0x6081('0x37')][_0x6081('0xb5')]['split'](',');var _0x3ddf74={};_0x3ddf74[_0xa9f5c[0x0]]={'$gte':moment(_0xa9f5c[0x1])['format'](_0x6081('0xb6'))};_0x4da41a[_0x6081('0x40')]=_['merge'](_0x4da41a[_0x6081('0x40')],_0x3ddf74);}_0x4da41a=_[_0x6081('0xab')]({},_0x4da41a,_0x4aed4a[_0x6081('0xb7')]);return db[_0x6081('0xae')][_0x6081('0x21')]({'where':_0x4da41a[_0x6081('0x40')]})[_0x6081('0x27')](function(_0x4aa7c9){_0x327fb0[_0x6081('0x21')]=_0x4aa7c9;if(_0x4aed4a[_0x6081('0x37')]['includeAll']){_0x4da41a[_0x6081('0xaa')]=[{'all':!![]}];}return db[_0x6081('0xae')][_0x6081('0xb8')](_0x4da41a);})[_0x6081('0x27')](function(_0x354e69){_0x327fb0[_0x6081('0xa5')]=_0x354e69;return _0x327fb0;});}})['then'](respondWithFilteredResult(_0x53377c,_0x4da41a))[_0x6081('0xa6')](handleError(_0x53377c,null));};exports[_0x6081('0xb9')]=function(_0x3d86d0,_0x5b7cdb,_0xd62fb1){return db[_0x6081('0x8f')][_0x6081('0x56')]({'where':{'id':_0x3d86d0[_0x6081('0xa8')]['id']}})[_0x6081('0x27')](handleEntityNotFound(_0x5b7cdb,null))[_0x6081('0x27')](function(_0x2b7f11){if(_0x2b7f11){return _0x2b7f11[_0x6081('0xba')](_0x3d86d0[_0x6081('0x6d')][_0x6081('0xb0')],_[_0x6081('0xb1')](_0x3d86d0[_0x6081('0x6d')],[_0x6081('0xb0'),'id'])||{})[_0x6081('0xbb')](function(){return db[_0x6081('0x66')][_0x6081('0xb8')]({'attributes':['id',_0x6081('0x2a'),_0x6081('0x43')],'where':{'id':_0x3d86d0[_0x6081('0x6d')][_0x6081('0xb0')]}});})['then'](function(_0x980bbd){socket[_0x6081('0xbc')]('faxInteractionTags:save',{'id':Number(_0x3d86d0['params']['id']),'tags':_0x980bbd||[]});return{'id':Number(_0x3d86d0['params']['id']),'tags':_0x980bbd||[]};});}})[_0x6081('0x27')](respondWithResult(_0x5b7cdb,null))['catch'](handleError(_0x5b7cdb,null));};exports[_0x6081('0xbd')]=function(_0x234fc4,_0x3bb92e,_0x372e7a){return db[_0x6081('0x8f')][_0x6081('0x56')]({'where':{'id':_0x234fc4[_0x6081('0xa8')]['id']}})[_0x6081('0x27')](handleEntityNotFound(_0x3bb92e,null))[_0x6081('0x27')](function(_0x11bc50){if(_0x11bc50){return _0x11bc50[_0x6081('0xbd')](_0x234fc4['query'][_0x6081('0xb0')]);}})['then'](respondWithStatusCode(_0x3bb92e,null))[_0x6081('0xa6')](handleError(_0x3bb92e,null));};exports[_0x6081('0xbe')]=function(_0x40aa6b,_0x225e50){var _0x1875fe=moment()[_0x6081('0xbf')]()[_0x6081('0x8d')]();var _0x4257c3=path['join'](config[_0x6081('0xc0')],_0x6081('0xc1'),_0x6081('0xc2'),_0x6081('0xc3'));var _0x4879ff=path[_0x6081('0xc4')](config[_0x6081('0xc0')],'server',_0x6081('0xc2'),_0x6081('0xc5'));var _0x5a8f8c=path[_0x6081('0xc4')](_0x4257c3,_0x1875fe);var _0x19518c=util[_0x6081('0xc6')](_0x6081('0xc7'),_0x40aa6b[_0x6081('0xa8')]['id'],_0x1875fe);var _0x4311cb=path['join'](_0x4257c3,_0x19518c);var _0x2836d7=[];_0x2836d7[_0x6081('0x31')]({'model':db[_0x6081('0xc8')],'as':_0x6081('0xc8'),'raw':!![]});var _0x36e444=[{'model':db['FaxMessage'],'as':_0x6081('0xc9'),'attributes':['id','body',_0x6081('0xca')],'include':_0x2836d7}];return db[_0x6081('0x8f')][_0x6081('0x56')]({'where':{'id':_0x40aa6b[_0x6081('0xa8')]['id']},'include':_0x36e444})[_0x6081('0x27')](handleEntityNotFound(_0x225e50,null))[_0x6081('0x27')](function(_0x275eb3){if(_0x275eb3&&_0x275eb3['Messages']){var _0x1e0f92=_0x275eb3['get']({'plain':!![]});fs[_0x6081('0xcb')](_0x5a8f8c);for(var _0x32b113=0x0;_0x32b113<_0x1e0f92[_0x6081('0xc9')]['length'];_0x32b113++){var _0x53f16b=_0x1e0f92['Messages'][_0x32b113][_0x6081('0xc8')];if(_0x53f16b){var _0x30c00d=path[_0x6081('0xc4')](_0x4879ff,_0x53f16b[_0x6081('0xcc')]);if(fs['existsSync'](_0x30c00d)){fs[_0x6081('0xcd')](_0x30c00d)[_0x6081('0xce')](fs[_0x6081('0xcf')](path['join'](_0x5a8f8c,_0x53f16b[_0x6081('0xcc')])));}}}return BPromise['resolve']()[_0x6081('0x27')](function(){return new BPromise(function(_0x29813d,_0x231b6a){zipdir(_0x5a8f8c,{'saveTo':_0x4311cb},function(_0x9c10e,_0x3b7c01){if(_0x9c10e)return _0x231b6a(_0x9c10e);return _0x29813d(_0x3b7c01);});})['then'](function(){return new BPromise(function(_0x450a93,_0xa12462){rimraf(_0x5a8f8c,function(_0x64a78f){if(_0x64a78f)_0xa12462(_0x64a78f);return _0x450a93();});});})[_0x6081('0x27')](function(){return _0x225e50['download'](_0x4311cb,_0x19518c,function(_0x9741){if(_0x9741){console[_0x6081('0xd0')]('err',_0x9741);}else{fs[_0x6081('0xd1')](_0x4311cb);}});});});}else{return _0x225e50[_0x6081('0x1a')](0xc8);}})[_0x6081('0xa6')](handleError(_0x225e50,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2fb1=['hook','events','../../mysqldb','FaxInteraction','setMaxListeners','save','then','setDataValue','map','findAll','unreadMessages','length','emit','catch','hasOwnProperty'];(function(_0x28b323,_0x48a846){var _0x1239e4=function(_0x5e38c4){while(--_0x5e38c4){_0x28b323['push'](_0x28b323['shift']());}};_0x1239e4(++_0x48a846);}(_0x2fb1,0xb5));var _0x12fb=function(_0x49ba7c,_0x19036e){_0x49ba7c=_0x49ba7c-0x0;var _0xbd7ef9=_0x2fb1[_0x49ba7c];return _0xbd7ef9;};'use strict';var EventEmitter=require(_0x12fb('0x0'));var FaxInteraction=require(_0x12fb('0x1'))['db'][_0x12fb('0x2')];var FaxMessage=require('../../mysqldb')['db']['FaxMessage'];var FaxInteractionEvents=new EventEmitter();FaxInteractionEvents[_0x12fb('0x3')](0x0);var events={'afterCreate':_0x12fb('0x4'),'afterUpdate':'update','afterDestroy':'remove'};function emitEvent(_0x1d6bad){return function(_0x47781f,_0x237209,_0x2a9dc0){_0x47781f['getUsers']({'attributes':['id'],'raw':!![]})[_0x12fb('0x5')](function(_0x100e0a){_0x47781f[_0x12fb('0x6')]('Users',_0x100e0a[_0x12fb('0x7')](function(_0x125343){return{'id':_0x125343['id']};}));return FaxMessage[_0x12fb('0x8')]({'where':{'FaxInteractionId':_0x47781f['id'],'direction':'in','read':![]},'raw':!![]});})[_0x12fb('0x5')](function(_0x2d6758){_0x47781f['setDataValue'](_0x12fb('0x9'),_0x2d6758[_0x12fb('0xa')]);FaxInteractionEvents['emit'](_0x1d6bad+':'+_0x47781f['id'],_0x47781f);FaxInteractionEvents[_0x12fb('0xb')](_0x1d6bad,_0x47781f);_0x2a9dc0(null);})[_0x12fb('0xc')](_0x2a9dc0(null));};}for(var e in events){if(events[_0x12fb('0xd')](e)){var event=events[e];FaxInteraction[_0x12fb('0xe')](e,emitEvent(event));}}module['exports']=FaxInteractionEvents;
\ No newline at end of file
+var _0xfffb=['emit','hook','exports','events','../../mysqldb','setMaxListeners','save','update','remove','then','setDataValue','Users','findAll','length'];(function(_0x52aba4,_0x197aa3){var _0x48d5b0=function(_0x46b7ad){while(--_0x46b7ad){_0x52aba4['push'](_0x52aba4['shift']());}};_0x48d5b0(++_0x197aa3);}(_0xfffb,0xe3));var _0xbfff=function(_0x3ba8c3,_0x2133a9){_0x3ba8c3=_0x3ba8c3-0x0;var _0x529787=_0xfffb[_0x3ba8c3];return _0x529787;};'use strict';var EventEmitter=require(_0xbfff('0x0'));var FaxInteraction=require(_0xbfff('0x1'))['db']['FaxInteraction'];var FaxMessage=require(_0xbfff('0x1'))['db']['FaxMessage'];var FaxInteractionEvents=new EventEmitter();FaxInteractionEvents[_0xbfff('0x2')](0x0);var events={'afterCreate':_0xbfff('0x3'),'afterUpdate':_0xbfff('0x4'),'afterDestroy':_0xbfff('0x5')};function emitEvent(_0x43b2eb){return function(_0x154078,_0x42d5de,_0x23b23c){_0x154078['getUsers']({'attributes':['id'],'raw':!![]})[_0xbfff('0x6')](function(_0x291d1d){_0x154078[_0xbfff('0x7')](_0xbfff('0x8'),_0x291d1d['map'](function(_0x4d74a1){return{'id':_0x4d74a1['id']};}));return FaxMessage[_0xbfff('0x9')]({'where':{'FaxInteractionId':_0x154078['id'],'direction':'in','read':![]},'raw':!![]});})[_0xbfff('0x6')](function(_0x508212){_0x154078[_0xbfff('0x7')]('unreadMessages',_0x508212[_0xbfff('0xa')]);FaxInteractionEvents['emit'](_0x43b2eb+':'+_0x154078['id'],_0x154078);FaxInteractionEvents[_0xbfff('0xb')](_0x43b2eb,_0x154078);_0x23b23c(null);})['catch'](_0x23b23c(null));};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];FaxInteraction[_0xbfff('0xc')](e,emitEvent(event));}}module[_0xbfff('0xd')]=FaxInteractionEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x82a2=['bluebird','request-promise','path','rimraf','../../config/environment','./faxInteraction.attributes','exports','define','FaxInteraction','changed','closed','YYYY-MM-DD\x20HH:mm:ss','lodash','util','../../config/logger','api','moment'];(function(_0x376b49,_0x53aaa0){var _0x85ad6f=function(_0x8612a4){while(--_0x8612a4){_0x376b49['push'](_0x376b49['shift']());}};_0x85ad6f(++_0x53aaa0);}(_0x82a2,0x1e8));var _0x282a=function(_0x4661c0,_0x595cee){_0x4661c0=_0x4661c0-0x0;var _0xb610fe=_0x82a2[_0x4661c0];return _0xb610fe;};'use strict';var _=require(_0x282a('0x0'));var util=require(_0x282a('0x1'));var logger=require(_0x282a('0x2'))(_0x282a('0x3'));var moment=require(_0x282a('0x4'));var BPromise=require(_0x282a('0x5'));var rp=require(_0x282a('0x6'));var fs=require('fs');var path=require(_0x282a('0x7'));var rimraf=require(_0x282a('0x8'));var config=require(_0x282a('0x9'));var attributes=require(_0x282a('0xa'));module[_0x282a('0xb')]=function(_0xa10380,_0x3b85dc){return _0xa10380[_0x282a('0xc')](_0x282a('0xd'),attributes,{'tableName':'fax_interactions','paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x3abe65,_0x46d8e4,_0x4c33e6){if(_0x3abe65[_0x282a('0xe')](_0x282a('0xf'))){_0x3abe65['closedAt']=moment()['format'](_0x282a('0x10'));}_0x4c33e6(null,_0x3abe65);}}});};
\ No newline at end of file
+var _0x6d49=['moment','bluebird','request-promise','rimraf','define','FaxInteraction','fax_interactions','changed','closed','format','YYYY-MM-DD\x20HH:mm:ss','lodash','util','../../config/logger','api'];(function(_0x47fd45,_0x40dd67){var _0x363313=function(_0xb92163){while(--_0xb92163){_0x47fd45['push'](_0x47fd45['shift']());}};_0x363313(++_0x40dd67);}(_0x6d49,0x155));var _0x96d4=function(_0x12bc9e,_0x2bf295){_0x12bc9e=_0x12bc9e-0x0;var _0x1f5361=_0x6d49[_0x12bc9e];return _0x1f5361;};'use strict';var _=require(_0x96d4('0x0'));var util=require(_0x96d4('0x1'));var logger=require(_0x96d4('0x2'))(_0x96d4('0x3'));var moment=require(_0x96d4('0x4'));var BPromise=require(_0x96d4('0x5'));var rp=require(_0x96d4('0x6'));var fs=require('fs');var path=require('path');var rimraf=require(_0x96d4('0x7'));var config=require('../../config/environment');var attributes=require('./faxInteraction.attributes');module['exports']=function(_0x4c2157,_0x2e612a){return _0x4c2157[_0x96d4('0x8')](_0x96d4('0x9'),attributes,{'tableName':_0x96d4('0xa'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x47b1be,_0x329a67,_0x1b9c7b){if(_0x47b1be[_0x96d4('0xb')](_0x96d4('0xc'))){_0x47b1be['closedAt']=moment()[_0x96d4('0xd')](_0x96d4('0xe'));}_0x1b9c7b(null,_0x47b1be);}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6618=['../../config/utils','../../config/logger','rpc','../../config/environment','client','defaults','redis','socket.io-emitter','./faxInteraction.socket','register','request','info','FaxInteraction,\x20%s,\x20%s','request\x20sent','debug','FaxInteraction,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','UpdateFaxInteraction','body','options','where','attributes','limit','then','find','addTags','ids','omit','spread','AddTags','util','moment','bluebird','randomstring','ioredis','../../mysqldb'];(function(_0x5a7881,_0x2b56b8){var _0x4f6401=function(_0xbf9430){while(--_0xbf9430){_0x5a7881['push'](_0x5a7881['shift']());}};_0x4f6401(++_0x2b56b8);}(_0x6618,0x13a));var _0x8661=function(_0xd7722f,_0x1c665b){_0xd7722f=_0xd7722f-0x0;var _0x37bf3a=_0x6618[_0xd7722f];return _0x37bf3a;};'use strict';var _=require('lodash');var util=require(_0x8661('0x0'));var moment=require(_0x8661('0x1'));var BPromise=require(_0x8661('0x2'));var rs=require(_0x8661('0x3'));var fs=require('fs');var Redis=require(_0x8661('0x4'));var db=require(_0x8661('0x5'))['db'];var utils=require(_0x8661('0x6'));var logger=require(_0x8661('0x7'))(_0x8661('0x8'));var config=require(_0x8661('0x9'));var jayson=require('jayson/promise');var client=jayson[_0x8661('0xa')]['http']({'port':0x232a});config['redis']=_[_0x8661('0xb')](config[_0x8661('0xc')],{'host':'localhost','port':0x18eb});var socket=require(_0x8661('0xd'))(new Redis(config[_0x8661('0xc')]));require(_0x8661('0xe'))[_0x8661('0xf')](socket);function respondWithRpcPromise(_0xf30a08,_0x5546e0,_0x14cb76){return new BPromise(function(_0x68bbd9,_0x395853){return client[_0x8661('0x10')](_0xf30a08,_0x14cb76)['then'](function(_0x279ec3){logger[_0x8661('0x11')](_0x8661('0x12'),_0x5546e0,_0x8661('0x13'));logger[_0x8661('0x14')](_0x8661('0x15'),_0x5546e0,'request\x20sent',JSON[_0x8661('0x16')](_0x279ec3));if(_0x279ec3[_0x8661('0x17')]){if(_0x279ec3[_0x8661('0x17')]['code']===0x1f4){logger[_0x8661('0x17')](_0x8661('0x12'),_0x5546e0,_0x279ec3[_0x8661('0x17')]['message']);return _0x395853(_0x279ec3[_0x8661('0x17')]['message']);}logger[_0x8661('0x17')]('FaxInteraction,\x20%s,\x20%s',_0x5546e0,_0x279ec3['error'][_0x8661('0x18')]);return _0x68bbd9(_0x279ec3[_0x8661('0x17')]['message']);}else{logger[_0x8661('0x11')]('FaxInteraction,\x20%s,\x20%s',_0x5546e0,'request\x20sent');_0x68bbd9(_0x279ec3[_0x8661('0x19')]['message']);}})[_0x8661('0x1a')](function(_0x369910){logger[_0x8661('0x17')]('FaxInteraction,\x20%s,\x20%s',_0x5546e0,_0x369910);_0x395853(_0x369910);});});}exports[_0x8661('0x1b')]=function(_0x46af30){var _0x3a3342=this;return new Promise(function(_0x5ee07f,_0x3a708){return db['FaxInteraction']['update'](_0x46af30[_0x8661('0x1c')],{'raw':_0x46af30['options']?_0x46af30[_0x8661('0x1d')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x46af30[_0x8661('0x1d')]?_0x46af30[_0x8661('0x1d')][_0x8661('0x1e')]||null:null,'attributes':_0x46af30[_0x8661('0x1d')]?_0x46af30[_0x8661('0x1d')][_0x8661('0x1f')]||null:null,'limit':_0x46af30[_0x8661('0x1d')]?_0x46af30[_0x8661('0x1d')][_0x8661('0x20')]||null:null})[_0x8661('0x21')](function(_0x2ab296){logger[_0x8661('0x11')](_0x8661('0x1b'),_0x46af30);logger['debug'](_0x8661('0x1b'),_0x46af30,JSON[_0x8661('0x16')](_0x2ab296));_0x5ee07f(_0x2ab296);})[_0x8661('0x1a')](function(_0x226509){logger[_0x8661('0x17')](_0x8661('0x1b'),_0x226509[_0x8661('0x18')],_0x46af30);_0x3a708(_0x3a3342['error'](0x1f4,_0x226509['message']));});});};exports['AddTagsToFaxInteraction']=function(_0x3f47ba){return new Promise(function(_0xa06910,_0x4b4853){return db['FaxInteraction'][_0x8661('0x22')]({'where':_0x3f47ba[_0x8661('0x1d')]?_0x3f47ba['options']['where']||null:null})[_0x8661('0x21')](function(_0x4172e9){if(_0x4172e9){return _0x4172e9[_0x8661('0x23')](_0x3f47ba[_0x8661('0x1c')][_0x8661('0x24')],_[_0x8661('0x25')](_0x3f47ba['body'],[_0x8661('0x24'),'id'])||{});}})[_0x8661('0x26')](function(_0x508014){logger['info'](_0x8661('0x27'),_0x3f47ba);logger[_0x8661('0x14')]('AddTags',_0x3f47ba,JSON[_0x8661('0x16')](_0x508014));_0xa06910(_0x508014);})['catch'](function(_0x33e00b){logger[_0x8661('0x17')](_0x8661('0x27'),_0x33e00b['message'],_0x3f47ba);_0x4b4853(_this[_0x8661('0x17')](0x1f4,_0x33e00b[_0x8661('0x18')]));});});};
\ No newline at end of file
+var _0x7171=['body','options','raw','where','attributes','limit','find','addTags','omit','ids','spread','AddTags','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/environment','jayson/promise','redis','defaults','localhost','socket.io-emitter','./faxInteraction.socket','register','request','then','info','FaxInteraction,\x20%s,\x20%s','request\x20sent','debug','FaxInteraction,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','UpdateFaxInteraction','FaxInteraction'];(function(_0x3ab51d,_0x2fa01d){var _0x29a04e=function(_0x7807b0){while(--_0x7807b0){_0x3ab51d['push'](_0x3ab51d['shift']());}};_0x29a04e(++_0x2fa01d);}(_0x7171,0x12b));var _0x1717=function(_0x5f09c5,_0x2bfca0){_0x5f09c5=_0x5f09c5-0x0;var _0x426ad9=_0x7171[_0x5f09c5];return _0x426ad9;};'use strict';var _=require('lodash');var util=require(_0x1717('0x0'));var moment=require(_0x1717('0x1'));var BPromise=require(_0x1717('0x2'));var rs=require(_0x1717('0x3'));var fs=require('fs');var Redis=require(_0x1717('0x4'));var db=require(_0x1717('0x5'))['db'];var utils=require(_0x1717('0x6'));var logger=require('../../config/logger')('rpc');var config=require(_0x1717('0x7'));var jayson=require(_0x1717('0x8'));var client=jayson['client']['http']({'port':0x232a});config[_0x1717('0x9')]=_[_0x1717('0xa')](config[_0x1717('0x9')],{'host':_0x1717('0xb'),'port':0x18eb});var socket=require(_0x1717('0xc'))(new Redis(config[_0x1717('0x9')]));require(_0x1717('0xd'))[_0x1717('0xe')](socket);function respondWithRpcPromise(_0xf0948d,_0x3d3441,_0x49c7ab){return new BPromise(function(_0x1383e9,_0x1d5401){return client[_0x1717('0xf')](_0xf0948d,_0x49c7ab)[_0x1717('0x10')](function(_0x20122f){logger[_0x1717('0x11')](_0x1717('0x12'),_0x3d3441,_0x1717('0x13'));logger[_0x1717('0x14')](_0x1717('0x15'),_0x3d3441,'request\x20sent',JSON[_0x1717('0x16')](_0x20122f));if(_0x20122f[_0x1717('0x17')]){if(_0x20122f[_0x1717('0x17')][_0x1717('0x18')]===0x1f4){logger[_0x1717('0x17')](_0x1717('0x12'),_0x3d3441,_0x20122f[_0x1717('0x17')][_0x1717('0x19')]);return _0x1d5401(_0x20122f[_0x1717('0x17')]['message']);}logger['error'](_0x1717('0x12'),_0x3d3441,_0x20122f[_0x1717('0x17')]['message']);return _0x1383e9(_0x20122f['error'][_0x1717('0x19')]);}else{logger[_0x1717('0x11')](_0x1717('0x12'),_0x3d3441,'request\x20sent');_0x1383e9(_0x20122f['result'][_0x1717('0x19')]);}})[_0x1717('0x1a')](function(_0xc30896){logger['error'](_0x1717('0x12'),_0x3d3441,_0xc30896);_0x1d5401(_0xc30896);});});}exports[_0x1717('0x1b')]=function(_0x3d290b){var _0x1577e3=this;return new Promise(function(_0x39c7f8,_0xfab2bc){return db[_0x1717('0x1c')]['update'](_0x3d290b[_0x1717('0x1d')],{'raw':_0x3d290b[_0x1717('0x1e')]?_0x3d290b[_0x1717('0x1e')][_0x1717('0x1f')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x3d290b[_0x1717('0x1e')]?_0x3d290b[_0x1717('0x1e')][_0x1717('0x20')]||null:null,'attributes':_0x3d290b['options']?_0x3d290b[_0x1717('0x1e')][_0x1717('0x21')]||null:null,'limit':_0x3d290b[_0x1717('0x1e')]?_0x3d290b['options'][_0x1717('0x22')]||null:null})['then'](function(_0x47d98b){logger[_0x1717('0x11')](_0x1717('0x1b'),_0x3d290b);logger['debug'](_0x1717('0x1b'),_0x3d290b,JSON['stringify'](_0x47d98b));_0x39c7f8(_0x47d98b);})[_0x1717('0x1a')](function(_0x4ba5f7){logger[_0x1717('0x17')](_0x1717('0x1b'),_0x4ba5f7[_0x1717('0x19')],_0x3d290b);_0xfab2bc(_0x1577e3[_0x1717('0x17')](0x1f4,_0x4ba5f7[_0x1717('0x19')]));});});};exports['AddTagsToFaxInteraction']=function(_0x2d3a28){return new Promise(function(_0x57760f,_0x40c7c6){return db[_0x1717('0x1c')][_0x1717('0x23')]({'where':_0x2d3a28['options']?_0x2d3a28[_0x1717('0x1e')]['where']||null:null})[_0x1717('0x10')](function(_0x24fbb1){if(_0x24fbb1){return _0x24fbb1[_0x1717('0x24')](_0x2d3a28[_0x1717('0x1d')]['ids'],_[_0x1717('0x25')](_0x2d3a28[_0x1717('0x1d')],[_0x1717('0x26'),'id'])||{});}})[_0x1717('0x27')](function(_0x5555f2){logger['info'](_0x1717('0x28'),_0x2d3a28);logger[_0x1717('0x14')]('AddTags',_0x2d3a28,JSON[_0x1717('0x16')](_0x5555f2));_0x57760f(_0x5555f2);})[_0x1717('0x1a')](function(_0x46cef5){logger[_0x1717('0x17')](_0x1717('0x28'),_0x46cef5[_0x1717('0x19')],_0x2d3a28);_0x40c7c6(_this[_0x1717('0x17')](0x1f4,_0x46cef5[_0x1717('0x19')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9f76=['removeListener','length','faxInteraction:','./faxInteraction.events','remove','update','emit'];(function(_0x9a4ca5,_0xf45128){var _0x47d5da=function(_0xa06a82){while(--_0xa06a82){_0x9a4ca5['push'](_0x9a4ca5['shift']());}};_0x47d5da(++_0xf45128);}(_0x9f76,0x18b));var _0x69f7=function(_0x1a36a5,_0x746928){_0x1a36a5=_0x1a36a5-0x0;var _0x746243=_0x9f76[_0x1a36a5];return _0x746243;};'use strict';var FaxInteractionEvents=require(_0x69f7('0x0'));var events=['save',_0x69f7('0x1'),_0x69f7('0x2')];function createListener(_0x5db5e5,_0x396110){return function(_0x1d964c){_0x396110[_0x69f7('0x3')](_0x5db5e5,_0x1d964c);};}function removeListener(_0x49b4ed,_0x26d43b){return function(){FaxInteractionEvents[_0x69f7('0x4')](_0x49b4ed,_0x26d43b);};}exports['register']=function(_0x30c6e4){for(var _0x22e98b=0x0,_0x316239=events[_0x69f7('0x5')];_0x22e98b<_0x316239;_0x22e98b++){var _0x17665b=events[_0x22e98b];var _0x50b299=createListener(_0x69f7('0x6')+_0x17665b,_0x30c6e4);FaxInteractionEvents['on'](_0x17665b,_0x50b299);}};
\ No newline at end of file
+var _0x7b62=['removeListener','register','length','faxInteraction:','remove','update'];(function(_0x3cb52a,_0x5a586d){var _0x4e6bab=function(_0xd38f5){while(--_0xd38f5){_0x3cb52a['push'](_0x3cb52a['shift']());}};_0x4e6bab(++_0x5a586d);}(_0x7b62,0xc4));var _0x27b6=function(_0x54907f,_0x131444){_0x54907f=_0x54907f-0x0;var _0x473df9=_0x7b62[_0x54907f];return _0x473df9;};'use strict';var FaxInteractionEvents=require('./faxInteraction.events');var events=['save',_0x27b6('0x0'),_0x27b6('0x1')];function createListener(_0x2d0beb,_0x359af2){return function(_0x2e0b75){_0x359af2['emit'](_0x2d0beb,_0x2e0b75);};}function removeListener(_0x5ddabb,_0x27f782){return function(){FaxInteractionEvents[_0x27b6('0x2')](_0x5ddabb,_0x27f782);};}exports[_0x27b6('0x3')]=function(_0x3476c5){for(var _0x5dc4b8=0x0,_0xf7bd17=events[_0x27b6('0x4')];_0x5dc4b8<_0xf7bd17;_0x5dc4b8++){var _0x5955d5=events[_0x5dc4b8];var _0x3c22a9=createListener(_0x27b6('0x5')+_0x5955d5,_0x3476c5);FaxInteractionEvents['on'](_0x5955d5,_0x3c22a9);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xad76=['/:id/download','download','create','addMessage','post','tracked','fax','addTags','put','faxinteraction:update','update','faxinteraction:destroy','destroy','delete','/:id/tags','exports','multer','connect-timeout','fs-extra','../../components/auth/service','./faxInteraction.controller','get','/describe','isAuthenticated','describe','/:id','/:id/messages','getMessages'];(function(_0x26cf90,_0x50702d){var _0x3e13f6=function(_0x41a24e){while(--_0x41a24e){_0x26cf90['push'](_0x26cf90['shift']());}};_0x3e13f6(++_0x50702d);}(_0xad76,0x17c));var _0x6ad7=function(_0x185776,_0x1e27d8){_0x185776=_0x185776-0x0;var _0x5ebb72=_0xad76[_0x185776];return _0x5ebb72;};'use strict';var multer=require(_0x6ad7('0x0'));var util=require('util');var path=require('path');var timeout=require(_0x6ad7('0x1'));var express=require('express');var router=express['Router']();var fs_extra=require(_0x6ad7('0x2'));var auth=require(_0x6ad7('0x3'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x6ad7('0x4'));router[_0x6ad7('0x5')]('/',auth['isAuthenticated'](),controller['index']);router['get'](_0x6ad7('0x6'),auth[_0x6ad7('0x7')](),controller[_0x6ad7('0x8')]);router[_0x6ad7('0x5')](_0x6ad7('0x9'),auth[_0x6ad7('0x7')](),controller['show']);router[_0x6ad7('0x5')](_0x6ad7('0xa'),auth[_0x6ad7('0x7')](),controller[_0x6ad7('0xb')]);router[_0x6ad7('0x5')](_0x6ad7('0xc'),auth[_0x6ad7('0x7')](),controller[_0x6ad7('0xd')]);router['post']('/',auth['isAuthenticated'](),controller[_0x6ad7('0xe')]);router['post'](_0x6ad7('0xa'),auth[_0x6ad7('0x7')](),controller[_0x6ad7('0xf')]);router[_0x6ad7('0x10')]('/:id/tags',auth['isAuthenticated'](),interaction[_0x6ad7('0x11')](_0x6ad7('0x12'),'faxinteraction:addtags'),controller[_0x6ad7('0x13')]);router[_0x6ad7('0x14')](_0x6ad7('0x9'),auth[_0x6ad7('0x7')](),interaction[_0x6ad7('0x11')]('fax',_0x6ad7('0x15')),controller[_0x6ad7('0x16')]);router['delete'](_0x6ad7('0x9'),auth['isAuthenticated'](),interaction[_0x6ad7('0x11')](_0x6ad7('0x12'),_0x6ad7('0x17')),controller[_0x6ad7('0x18')]);router[_0x6ad7('0x19')](_0x6ad7('0x1a'),auth[_0x6ad7('0x7')](),controller['removeTags']);module[_0x6ad7('0x1b')]=router;
\ No newline at end of file
+var _0x4286=['/:id/messages','getMessages','/:id/download','download','post','addMessage','/:id/tags','fax','faxinteraction:addtags','addTags','put','tracked','faxinteraction:update','update','delete','faxinteraction:destroy','destroy','removeTags','exports','multer','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','get','isAuthenticated','describe','/:id','show'];(function(_0x300385,_0x31b65){var _0x442f17=function(_0x2ce7d5){while(--_0x2ce7d5){_0x300385['push'](_0x300385['shift']());}};_0x442f17(++_0x31b65);}(_0x4286,0x1b3));var _0x6428=function(_0x383463,_0x524816){_0x383463=_0x383463-0x0;var _0x2c0e34=_0x4286[_0x383463];return _0x2c0e34;};'use strict';var multer=require(_0x6428('0x0'));var util=require(_0x6428('0x1'));var path=require(_0x6428('0x2'));var timeout=require(_0x6428('0x3'));var express=require('express');var router=express[_0x6428('0x4')]();var fs_extra=require(_0x6428('0x5'));var auth=require(_0x6428('0x6'));var interaction=require(_0x6428('0x7'));var config=require('../../config/environment');var controller=require('./faxInteraction.controller');router[_0x6428('0x8')]('/',auth[_0x6428('0x9')](),controller['index']);router[_0x6428('0x8')]('/describe',auth[_0x6428('0x9')](),controller[_0x6428('0xa')]);router['get'](_0x6428('0xb'),auth[_0x6428('0x9')](),controller[_0x6428('0xc')]);router[_0x6428('0x8')](_0x6428('0xd'),auth[_0x6428('0x9')](),controller[_0x6428('0xe')]);router[_0x6428('0x8')](_0x6428('0xf'),auth[_0x6428('0x9')](),controller[_0x6428('0x10')]);router[_0x6428('0x11')]('/',auth[_0x6428('0x9')](),controller['create']);router[_0x6428('0x11')](_0x6428('0xd'),auth[_0x6428('0x9')](),controller[_0x6428('0x12')]);router['post'](_0x6428('0x13'),auth['isAuthenticated'](),interaction['tracked'](_0x6428('0x14'),_0x6428('0x15')),controller[_0x6428('0x16')]);router[_0x6428('0x17')](_0x6428('0xb'),auth[_0x6428('0x9')](),interaction[_0x6428('0x18')](_0x6428('0x14'),_0x6428('0x19')),controller[_0x6428('0x1a')]);router[_0x6428('0x1b')](_0x6428('0xb'),auth['isAuthenticated'](),interaction[_0x6428('0x18')](_0x6428('0x14'),_0x6428('0x1c')),controller[_0x6428('0x1d')]);router[_0x6428('0x1b')](_0x6428('0x13'),auth[_0x6428('0x9')](),controller[_0x6428('0x1e')]);module[_0x6428('0x1f')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x136c=['TEXT','DATE','sequelize','exports','medium','BOOLEAN','ENUM','out'];(function(_0x5179a5,_0x419746){var _0x15c8ce=function(_0x1b13c4){while(--_0x1b13c4){_0x5179a5['push'](_0x5179a5['shift']());}};_0x15c8ce(++_0x419746);}(_0x136c,0x1d2));var _0xc136=function(_0x5c74d5,_0x46a60b){_0x5c74d5=_0x5c74d5-0x0;var _0x58358b=_0x136c[_0x5c74d5];return _0x58358b;};'use strict';var Sequelize=require(_0xc136('0x0'));module[_0xc136('0x1')]={'body':{'type':Sequelize['TEXT'](_0xc136('0x2')),'allowNull':![]},'read':{'type':Sequelize[_0xc136('0x3')],'defaultValue':![]},'direction':{'type':Sequelize[_0xc136('0x4')]('in',_0xc136('0x5')),'defaultValue':_0xc136('0x5'),'allowNull':![]},'failMessage':{'type':Sequelize[_0xc136('0x6')],'defaultValue':null},'readAt':{'type':Sequelize[_0xc136('0x7')]}};
\ No newline at end of file
+var _0x032e=['out','DATE','sequelize','TEXT','medium'];(function(_0x5f1391,_0x19c132){var _0x50ebe3=function(_0x3d00a3){while(--_0x3d00a3){_0x5f1391['push'](_0x5f1391['shift']());}};_0x50ebe3(++_0x19c132);}(_0x032e,0x124));var _0xe032=function(_0x311c35,_0x534915){_0x311c35=_0x311c35-0x0;var _0x5cc50c=_0x032e[_0x311c35];return _0x5cc50c;};'use strict';var Sequelize=require(_0xe032('0x0'));module['exports']={'body':{'type':Sequelize[_0xe032('0x1')](_0xe032('0x2')),'allowNull':![]},'read':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'direction':{'type':Sequelize['ENUM']('in',_0xe032('0x3')),'defaultValue':_0xe032('0x3'),'allowNull':![]},'failMessage':{'type':Sequelize[_0xe032('0x1')],'defaultValue':null},'readAt':{'type':Sequelize[_0xe032('0x4')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe90b=['event','create','CmContact','Attachment','findOne','AttachmentId','SendFax','FaxAccountId','/var/opt/motion2/server/files/attachments/%s','basename','download','join','root','files','attachments','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs','lodash','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./faxMessage.socket','register','jayson/promise','client','http','request','then','info','debug','FaxMessage,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','FaxMessage,\x20%s,\x20%s','message','catch','sendStatus','end','status','offset','undefined','count','limit','set','Content-Range','apply','reject','save','update','destroy','stack','map','fieldName','type','key','model','name','query','keys','filters','intersection','attributes','fields','hasOwnProperty','order','sort','where','filter','merge','VIRTUAL','FaxMessage','includeAll','include','findAll','rows','show','params','rawAttributes','length','options','find','body','describe','accept','fax','read','YYYY-MM-DD\x20HH:mm:ss','UserId','agent','get','FaxInteraction','FaxInteractionId','isNil','read1stAt','[FAXMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','user','role','interaction','null','AcceptMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','sequelize','Sequelize','QueryTypes','SELECT','fullname','email','internal','manual','interface','format','channel','motionChannel','EventManager','acceptmessage','[FAXMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','RejectMessage','rejectMessage','contact','User'];(function(_0x8c43de,_0x90ff31){var _0xa6591b=function(_0x469716){while(--_0x469716){_0x8c43de['push'](_0x8c43de['shift']());}};_0xa6591b(++_0x90ff31);}(_0xe90b,0x1bc));var _0xbe90=function(_0x7e19ce,_0xdbaf87){_0x7e19ce=_0x7e19ce-0x0;var _0x108e29=_0xe90b[_0x7e19ce];return _0x108e29;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xbe90('0x0'));var rp=require(_0xbe90('0x1'));var moment=require(_0xbe90('0x2'));var BPromise=require('bluebird');var Mustache=require(_0xbe90('0x3'));var util=require(_0xbe90('0x4'));var path=require(_0xbe90('0x5'));var sox=require(_0xbe90('0x6'));var csv=require(_0xbe90('0x7'));var ejs=require(_0xbe90('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xbe90('0x9'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xbe90('0xa'));var deskjs=require(_0xbe90('0xb'));var toCsv=require(_0xbe90('0x7'));var querystring=require(_0xbe90('0xc'));var Papa=require('papaparse');var Redis=require(_0xbe90('0xd'));var authService=require(_0xbe90('0xe'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xbe90('0xf'));var logger=require(_0xbe90('0x10'))(_0xbe90('0x11'));var utils=require(_0xbe90('0x12'));var config=require(_0xbe90('0x13'));var licenseUtil=require(_0xbe90('0x14'));var db=require(_0xbe90('0x15'))['db'];config[_0xbe90('0x16')]=_[_0xbe90('0x17')](config[_0xbe90('0x16')],{'host':_0xbe90('0x18'),'port':0x18eb});var socket=require(_0xbe90('0x19'))(new Redis(config[_0xbe90('0x16')]));require(_0xbe90('0x1a'))[_0xbe90('0x1b')](socket);var jayson=require(_0xbe90('0x1c'));var client=jayson[_0xbe90('0x1d')][_0xbe90('0x1e')]({'port':0x232c});var client9002=jayson[_0xbe90('0x1d')][_0xbe90('0x1e')]({'port':0x232a});function respondWithRpcPromise(_0x28c7e2,_0x2652e8,_0x4c9f0c,_0xe58157){return new BPromise(function(_0x84c540,_0x2dea79){var _0x1562c5=_0xe58157||client;return _0x1562c5[_0xbe90('0x1f')](_0x28c7e2,_0x4c9f0c)[_0xbe90('0x20')](function(_0x573eb8){logger[_0xbe90('0x21')]('FaxMessage,\x20%s,\x20%s',_0x2652e8,'request\x20sent');logger[_0xbe90('0x22')](_0xbe90('0x23'),_0x2652e8,_0xbe90('0x24'),JSON[_0xbe90('0x25')](_0x573eb8));if(_0x573eb8[_0xbe90('0x26')]){if(_0x573eb8[_0xbe90('0x26')][_0xbe90('0x27')]===0x1f4){logger[_0xbe90('0x26')](_0xbe90('0x28'),_0x2652e8,_0x573eb8['error']['message']);return _0x2dea79(_0x573eb8['error'][_0xbe90('0x29')]);}logger[_0xbe90('0x26')](_0xbe90('0x28'),_0x2652e8,_0x573eb8['error'][_0xbe90('0x29')]);return _0x84c540(_0x573eb8[_0xbe90('0x26')][_0xbe90('0x29')]);}else{logger['info'](_0xbe90('0x28'),_0x2652e8,_0xbe90('0x24'));_0x84c540(_0x573eb8['result'][_0xbe90('0x29')]);}})[_0xbe90('0x2a')](function(_0x809d6f){logger[_0xbe90('0x26')](_0xbe90('0x28'),_0x2652e8,_0x809d6f);_0x2dea79(_0x809d6f);});});}function respondWithStatusCode(_0xcffcba,_0x57269f){_0x57269f=_0x57269f||0xcc;return function(_0x73f4b4){if(_0x73f4b4){return _0xcffcba[_0xbe90('0x2b')](_0x57269f);}return _0xcffcba['status'](_0x57269f)[_0xbe90('0x2c')]();};}function respondWithResult(_0x1be60e,_0x37d83b){_0x37d83b=_0x37d83b||0xc8;return function(_0x29500f){if(_0x29500f){return _0x1be60e[_0xbe90('0x2d')](_0x37d83b)['json'](_0x29500f);}};}function respondWithFilteredResult(_0x266fbc,_0x288ad4){return function(_0xe3b771){if(_0xe3b771){var _0x44b813=typeof _0x288ad4[_0xbe90('0x2e')]===_0xbe90('0x2f')&&typeof _0x288ad4['limit']===_0xbe90('0x2f');var _0x1b1e8f=_0xe3b771[_0xbe90('0x30')];var _0x10fcf2=_0x44b813?0x0:_0x288ad4['offset'];var _0x5e9b13=_0x44b813?_0xe3b771[_0xbe90('0x30')]:_0x288ad4[_0xbe90('0x2e')]+_0x288ad4[_0xbe90('0x31')];var _0x4bfdac;if(_0x5e9b13>=_0x1b1e8f){_0x5e9b13=_0x1b1e8f;_0x4bfdac=0xc8;}else{_0x4bfdac=0xce;}_0x266fbc[_0xbe90('0x2d')](_0x4bfdac);return _0x266fbc[_0xbe90('0x32')](_0xbe90('0x33'),_0x10fcf2+'-'+_0x5e9b13+'/'+_0x1b1e8f)['json'](_0xe3b771);}return null;};}function patchUpdates(_0x22d3e3){return function(_0x395936){try{jsonpatch[_0xbe90('0x34')](_0x395936,_0x22d3e3,!![]);}catch(_0x14dbe0){return BPromise[_0xbe90('0x35')](_0x14dbe0);}return _0x395936[_0xbe90('0x36')]();};}function saveUpdates(_0x90d730,_0x2cf165){return function(_0x262cec){if(_0x262cec){return _0x262cec[_0xbe90('0x37')](_0x90d730)[_0xbe90('0x20')](function(_0x5d7351){return _0x5d7351;});}return null;};}function removeEntity(_0xd4232b,_0x459a95){return function(_0x34c0cd){if(_0x34c0cd){return _0x34c0cd[_0xbe90('0x38')]()[_0xbe90('0x20')](function(){_0xd4232b['status'](0xcc)[_0xbe90('0x2c')]();});}};}function handleEntityNotFound(_0x5e1805,_0xa82f12){return function(_0x34e106){if(!_0x34e106){_0x5e1805[_0xbe90('0x2b')](0x194);}return _0x34e106;};}function handleError(_0x23c2f6,_0x4f2eb5){_0x4f2eb5=_0x4f2eb5||0x1f4;return function(_0x27f541){logger[_0xbe90('0x26')](_0x27f541[_0xbe90('0x39')]);if(_0x27f541['name']){delete _0x27f541['name'];}_0x23c2f6['status'](_0x4f2eb5)['send'](_0x27f541);};}exports['index']=function(_0x1fb578,_0x556c49){var _0x507eeb={},_0x5f1158={},_0x42fd55={'count':0x0,'rows':[]};var _0x1a6439=_[_0xbe90('0x3a')](db['FaxMessage']['rawAttributes'],function(_0x3e37df){return{'name':_0x3e37df[_0xbe90('0x3b')],'type':_0x3e37df[_0xbe90('0x3c')][_0xbe90('0x3d')]};});_0x5f1158[_0xbe90('0x3e')]=_[_0xbe90('0x3a')](_0x1a6439,_0xbe90('0x3f'));_0x5f1158[_0xbe90('0x40')]=_[_0xbe90('0x41')](_0x1fb578[_0xbe90('0x40')]);_0x5f1158[_0xbe90('0x42')]=_[_0xbe90('0x43')](_0x5f1158[_0xbe90('0x3e')],_0x5f1158[_0xbe90('0x40')]);_0x507eeb[_0xbe90('0x44')]=_[_0xbe90('0x43')](_0x5f1158['model'],qs[_0xbe90('0x45')](_0x1fb578[_0xbe90('0x40')][_0xbe90('0x45')]));_0x507eeb[_0xbe90('0x44')]=_0x507eeb[_0xbe90('0x44')]['length']?_0x507eeb[_0xbe90('0x44')]:_0x5f1158[_0xbe90('0x3e')];if(!_0x1fb578[_0xbe90('0x40')][_0xbe90('0x46')]('nolimit')){_0x507eeb[_0xbe90('0x31')]=qs['limit'](_0x1fb578[_0xbe90('0x40')][_0xbe90('0x31')]);_0x507eeb[_0xbe90('0x2e')]=qs['offset'](_0x1fb578['query'][_0xbe90('0x2e')]);}_0x507eeb[_0xbe90('0x47')]=qs[_0xbe90('0x48')](_0x1fb578[_0xbe90('0x40')]['sort']);_0x507eeb[_0xbe90('0x49')]=qs[_0xbe90('0x42')](_['pick'](_0x1fb578[_0xbe90('0x40')],_0x5f1158[_0xbe90('0x42')]),_0x1a6439);if(_0x1fb578[_0xbe90('0x40')][_0xbe90('0x4a')]){_0x507eeb[_0xbe90('0x49')]=_[_0xbe90('0x4b')](_0x507eeb['where'],{'$or':_[_0xbe90('0x3a')](_0x1a6439,function(_0x2a542c){if(_0x2a542c[_0xbe90('0x3c')]!==_0xbe90('0x4c')){var _0x47917f={};_0x47917f[_0x2a542c[_0xbe90('0x3f')]]={'$like':'%'+_0x1fb578[_0xbe90('0x40')][_0xbe90('0x4a')]+'%'};return _0x47917f;}})});}_0x507eeb=_[_0xbe90('0x4b')]({},_0x507eeb,_0x1fb578['options']);var _0x17dbee={'where':_0x507eeb[_0xbe90('0x49')]};return db[_0xbe90('0x4d')][_0xbe90('0x30')](_0x17dbee)[_0xbe90('0x20')](function(_0x10bb0c){_0x42fd55[_0xbe90('0x30')]=_0x10bb0c;if(_0x1fb578[_0xbe90('0x40')][_0xbe90('0x4e')]){_0x507eeb[_0xbe90('0x4f')]=[{'all':!![]}];}return db[_0xbe90('0x4d')][_0xbe90('0x50')](_0x507eeb);})['then'](function(_0x2fbfc5){_0x42fd55[_0xbe90('0x51')]=_0x2fbfc5;return _0x42fd55;})[_0xbe90('0x20')](respondWithFilteredResult(_0x556c49,_0x507eeb))[_0xbe90('0x2a')](handleError(_0x556c49,null));};exports[_0xbe90('0x52')]=function(_0x1f9749,_0x2e9719){var _0x5612a6={'raw':!![],'where':{'id':_0x1f9749[_0xbe90('0x53')]['id']}},_0xa993b4={};_0xa993b4[_0xbe90('0x3e')]=_[_0xbe90('0x41')](db['FaxMessage'][_0xbe90('0x54')]);_0xa993b4[_0xbe90('0x40')]=_[_0xbe90('0x41')](_0x1f9749[_0xbe90('0x40')]);_0xa993b4[_0xbe90('0x42')]=_[_0xbe90('0x43')](_0xa993b4[_0xbe90('0x3e')],_0xa993b4[_0xbe90('0x40')]);_0x5612a6['attributes']=_[_0xbe90('0x43')](_0xa993b4[_0xbe90('0x3e')],qs[_0xbe90('0x45')](_0x1f9749['query'][_0xbe90('0x45')]));_0x5612a6[_0xbe90('0x44')]=_0x5612a6[_0xbe90('0x44')][_0xbe90('0x55')]?_0x5612a6[_0xbe90('0x44')]:_0xa993b4['model'];if(_0x1f9749[_0xbe90('0x40')][_0xbe90('0x4e')]){_0x5612a6['include']=[{'all':!![]}];}_0x5612a6=_[_0xbe90('0x4b')]({},_0x5612a6,_0x1f9749[_0xbe90('0x56')]);return db[_0xbe90('0x4d')][_0xbe90('0x57')](_0x5612a6)[_0xbe90('0x20')](handleEntityNotFound(_0x2e9719,null))['then'](respondWithResult(_0x2e9719,null))[_0xbe90('0x2a')](handleError(_0x2e9719,null));};exports['update']=function(_0x2d917c,_0x1188a){if(_0x2d917c['body']['id']){delete _0x2d917c[_0xbe90('0x58')]['id'];}return db['FaxMessage']['find']({'where':{'id':_0x2d917c['params']['id']}})[_0xbe90('0x20')](handleEntityNotFound(_0x1188a,null))[_0xbe90('0x20')](saveUpdates(_0x2d917c[_0xbe90('0x58')],null))['then'](respondWithResult(_0x1188a,null))[_0xbe90('0x2a')](handleError(_0x1188a,null));};exports[_0xbe90('0x38')]=function(_0x1b4e99,_0x43e1a9){return db['FaxMessage'][_0xbe90('0x57')]({'where':{'id':_0x1b4e99[_0xbe90('0x53')]['id']}})['then'](handleEntityNotFound(_0x43e1a9,null))[_0xbe90('0x20')](removeEntity(_0x43e1a9,null))[_0xbe90('0x2a')](handleError(_0x43e1a9,null));};exports[_0xbe90('0x59')]=function(_0x2c1065,_0x8dd7ef){return db[_0xbe90('0x4d')][_0xbe90('0x59')]()[_0xbe90('0x20')](respondWithResult(_0x8dd7ef,null))[_0xbe90('0x2a')](handleError(_0x8dd7ef,null));};var interaction_log=require(_0xbe90('0x10'))('fax-interactions');exports[_0xbe90('0x5a')]=function(_0x41d21c,_0x4db271,_0x6d177a){var _0x43efa9={'agent':{},'channel':_0xbe90('0x5b')};if(_0x41d21c[_0xbe90('0x58')]['id']){delete _0x41d21c[_0xbe90('0x58')]['id'];}_0x41d21c[_0xbe90('0x58')][_0xbe90('0x5c')]=!![];_0x41d21c['body']['readAt']=moment()['format'](_0xbe90('0x5d'));_0x41d21c[_0xbe90('0x58')][_0xbe90('0x5e')]=_0x41d21c[_0xbe90('0x58')][_0xbe90('0x5e')]||_0x41d21c['user']['id'];_0x43efa9[_0xbe90('0x5f')]['id']=_0x41d21c[_0xbe90('0x58')][_0xbe90('0x5e')];return db[_0xbe90('0x4d')][_0xbe90('0x57')]({'where':{'id':_0x41d21c[_0xbe90('0x53')]['id'],'UserId':null}})[_0xbe90('0x20')](handleEntityNotFound(_0x4db271,null))[_0xbe90('0x20')](saveUpdates(_0x41d21c['body'],null))[_0xbe90('0x20')](function(_0x3dcc50){if(_0x3dcc50){_0x43efa9[_0xbe90('0x29')]=_0x3dcc50[_0xbe90('0x60')]({'plain':!![]});return db[_0xbe90('0x61')][_0xbe90('0x57')]({'where':{'id':_0x3dcc50[_0xbe90('0x62')]}});}return null;})[_0xbe90('0x20')](handleEntityNotFound(_0x4db271,null))[_0xbe90('0x20')](function(_0x2f65fa){if(_0x2f65fa){return _0x2f65fa[_0xbe90('0x37')]({'UserId':_0x41d21c[_0xbe90('0x58')]['UserId'],'read1stAt':_[_0xbe90('0x63')](_0x2f65fa[_0xbe90('0x64')])?moment()['format'](_0xbe90('0x5d')):undefined});}return null;})[_0xbe90('0x20')](function(_0x5418cf){if(_0x5418cf){_0x43efa9['interaction']=_0x5418cf['get']({'plain':!![]});interaction_log[_0xbe90('0x21')](_0xbe90('0x65'),_0x41d21c[_0xbe90('0x66')]['id'],_0x41d21c[_0xbe90('0x66')][_0xbe90('0x3f')],_0x41d21c[_0xbe90('0x66')][_0xbe90('0x67')],_0x43efa9[_0xbe90('0x68')]['id'],_0x41d21c[_0xbe90('0x58')]?JSON[_0xbe90('0x25')](_0x41d21c[_0xbe90('0x58')]):_0xbe90('0x69'));return respondWithRpcPromise(_0xbe90('0x6a'),'acceptMessage',_0x43efa9);}return null;})[_0xbe90('0x20')](function(_0x11a93f){var _0x5bd13c=_0xbe90('0x6b')+_0x11a93f[_0xbe90('0x29')][_0xbe90('0x6c')];return db[_0xbe90('0x6d')][_0xbe90('0x40')](_0x5bd13c,{'type':db[_0xbe90('0x6e')][_0xbe90('0x6f')][_0xbe90('0x70')],'raw':!![]})[_0xbe90('0x20')](function(_0x5545ae){return _0x5545ae;});})[_0xbe90('0x20')](function(_0x1ddb80){if(_0x1ddb80){_0x43efa9['message']['contact']=_0x1ddb80[0x0];if(!_0x41d21c[_0xbe90('0x58')]['UserId'])return;return db['User'][_0xbe90('0x57')]({'where':{'id':_0x41d21c[_0xbe90('0x58')]['UserId'],'role':_0xbe90('0x5f')},'attributes':['id','name',_0xbe90('0x71'),_0xbe90('0x72'),_0xbe90('0x73')],'raw':!![]});}return null;})[_0xbe90('0x20')](function(_0x454670){if(!_0x454670)return null;_0x43efa9['message'][_0xbe90('0x5f')]=_0x454670;return _0x43efa9;})['then'](function(_0x28c13b){if(_0x28c13b){if(_0x41d21c['body'][_0xbe90('0x74')]){_0x43efa9['message'][_0xbe90('0x75')]=util[_0xbe90('0x76')]('SIP/%s',_0x41d21c[_0xbe90('0x66')][_0xbe90('0x3f')]);_0x43efa9[_0xbe90('0x29')][_0xbe90('0x77')]=_0x43efa9[_0xbe90('0x77')];_0x43efa9[_0xbe90('0x29')][_0xbe90('0x78')]=_0x43efa9['channel'];_0x43efa9['message']['event']=_0xbe90('0x5a');return respondWithRpcPromise(_0xbe90('0x79'),'EventManager',{'event':_0xbe90('0x7a'),'message':_0x43efa9[_0xbe90('0x29')]},client9002)[_0xbe90('0x20')](function(){return _0x43efa9;});}return _0x43efa9;}return null;})[_0xbe90('0x20')](respondWithResult(_0x4db271,null))[_0xbe90('0x2a')](handleError(_0x4db271,null));};var interaction_log=require(_0xbe90('0x10'))('fax-interactions');exports['reject']=function(_0x161514,_0x5b3e92,_0x431736){var _0x47f39b={'agent':{},'channel':_0xbe90('0x5b')};if(_0x161514[_0xbe90('0x58')]['id']){delete _0x161514[_0xbe90('0x58')]['id'];}_0x161514[_0xbe90('0x58')][_0xbe90('0x5e')]=_0x161514[_0xbe90('0x58')][_0xbe90('0x5e')]||_0x161514[_0xbe90('0x66')]['id'];_0x47f39b[_0xbe90('0x5f')]['id']=_0x161514['body'][_0xbe90('0x5e')];return db[_0xbe90('0x4d')]['find']({'where':{'id':_0x161514[_0xbe90('0x53')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0x5b3e92,null))[_0xbe90('0x20')](function(_0x598873){if(_0x598873){_0x47f39b[_0xbe90('0x29')]=_0x598873[_0xbe90('0x60')]({'plain':!![]});return db[_0xbe90('0x61')]['find']({'where':{'id':_0x598873['FaxInteractionId']}});}return null;})[_0xbe90('0x20')](handleEntityNotFound(_0x5b3e92,null))[_0xbe90('0x20')](function(_0x2a3872){if(_0x2a3872){_0x47f39b['interaction']=_0x2a3872[_0xbe90('0x60')]({'plain':!![]});interaction_log['info'](_0xbe90('0x7b'),_0x161514[_0xbe90('0x66')]['id'],_0x161514['user'][_0xbe90('0x3f')],_0x161514[_0xbe90('0x66')]['role'],_0x47f39b[_0xbe90('0x68')]['id'],_0x161514[_0xbe90('0x58')]?JSON[_0xbe90('0x25')](_0x161514[_0xbe90('0x58')]):_0xbe90('0x69'));return respondWithRpcPromise(_0xbe90('0x7c'),_0xbe90('0x7d'),_0x47f39b);}return null;})[_0xbe90('0x20')](function(_0x4ae163){var _0x3cda09='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x4ae163[_0xbe90('0x29')][_0xbe90('0x6c')];return db[_0xbe90('0x6d')][_0xbe90('0x40')](_0x3cda09,{'type':db[_0xbe90('0x6e')][_0xbe90('0x6f')]['SELECT'],'raw':!![]})[_0xbe90('0x20')](function(_0x453c4b){return _0x453c4b;});})['then'](function(_0xd27d91){if(_0xd27d91){_0x47f39b['message'][_0xbe90('0x7e')]=_0xd27d91[0x0];if(!_0x161514['body'][_0xbe90('0x5e')])return;return db[_0xbe90('0x7f')][_0xbe90('0x57')]({'where':{'id':_0x161514[_0xbe90('0x58')][_0xbe90('0x5e')],'role':'agent'},'attributes':['id',_0xbe90('0x3f'),'fullname',_0xbe90('0x72'),_0xbe90('0x73')],'raw':!![]});}return null;})[_0xbe90('0x20')](function(_0x3aab77){if(!_0x3aab77)return null;_0x47f39b[_0xbe90('0x29')][_0xbe90('0x5f')]=_0x3aab77;return _0x47f39b;})[_0xbe90('0x20')](function(_0x11c9c4){if(_0x11c9c4){_0x11c9c4[_0xbe90('0x29')][_0xbe90('0x75')]=util[_0xbe90('0x76')]('SIP/%s',_0x161514[_0xbe90('0x66')][_0xbe90('0x3f')]);_0x11c9c4['message'][_0xbe90('0x77')]=_0x47f39b[_0xbe90('0x77')];_0x11c9c4[_0xbe90('0x29')][_0xbe90('0x78')]=_0x47f39b['channel'];_0x11c9c4[_0xbe90('0x29')][_0xbe90('0x80')]=_0xbe90('0x35');respondWithRpcPromise(_0xbe90('0x79'),_0xbe90('0x79'),{'event':'rejectmessage','message':_0x11c9c4['message']},client9002);return _0x47f39b;}return null;})[_0xbe90('0x20')](respondWithResult(_0x5b3e92,null))['catch'](handleError(_0x5b3e92,null));};exports[_0xbe90('0x81')]=function(_0x34644a,_0x2556a8){var _0xe3910f;return db[_0xbe90('0x4d')]['create'](_0x34644a[_0xbe90('0x58')],{})[_0xbe90('0x20')](function(_0x23b2fa){_0xe3910f=_0x23b2fa;return db[_0xbe90('0x82')]['findOne']({'where':{'id':_0xe3910f['ContactId']}});})[_0xbe90('0x20')](function(_0xf8e8a3){if(_[_0xbe90('0x63')](_0xf8e8a3)){return;}else{_0xe3910f[_0xbe90('0x5b')]=_0xf8e8a3[_0xbe90('0x5b')];return db[_0xbe90('0x83')][_0xbe90('0x84')]({'where':{'id':_0xe3910f[_0xbe90('0x85')]}});}})[_0xbe90('0x20')](function(_0x1fef6c){return respondWithRpcPromise(_0xbe90('0x86'),_0xbe90('0x86'),{'FaxAccountId':_[_0xbe90('0x63')](_0x34644a[_0xbe90('0x58')])?undefined:_0x34644a[_0xbe90('0x58')][_0xbe90('0x87')],'path':_[_0xbe90('0x63')](_0x1fef6c)?undefined:util[_0xbe90('0x76')](_0xbe90('0x88'),_0x1fef6c[_0xbe90('0x89')]),'fax':_[_0xbe90('0x63')](_0xe3910f[_0xbe90('0x5b')])?undefined:_0xe3910f[_0xbe90('0x5b')],'AttachmentId':_0xe3910f[_0xbe90('0x85')]},client9002);})[_0xbe90('0x20')](respondWithResult(_0x2556a8,0xc9))[_0xbe90('0x2a')](handleError(_0x2556a8,null));};exports[_0xbe90('0x8a')]=function(_0xef2dde,_0x4da330){var _0x2f0535=path[_0xbe90('0x8b')](config[_0xbe90('0x8c')],'server',_0xbe90('0x8d'),_0xbe90('0x8e'));return db[_0xbe90('0x4d')][_0xbe90('0x57')]({'where':{'id':_0xef2dde[_0xbe90('0x53')]['id']},'include':[{'model':db[_0xbe90('0x83')],'as':'Attachment'}]})[_0xbe90('0x20')](handleEntityNotFound(_0x4da330,null))[_0xbe90('0x20')](function(_0x5be145){if(_0x5be145){return _0x4da330['download'](path['join'](_0x2f0535,_0x5be145[_0xbe90('0x83')][_0xbe90('0x89')]));}})[_0xbe90('0x2a')](handleError(_0x4da330,null));};
\ No newline at end of file
+var _0x5e6c=['jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','./faxMessage.socket','client','http','request','then','info','request\x20sent','debug','FaxMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','FaxMessage,\x20%s,\x20%s','message','result','sendStatus','status','end','json','offset','undefined','limit','count','apply','reject','save','update','stack','name','send','map','FaxMessage','rawAttributes','fieldName','model','query','keys','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','filters','pick','where','merge','type','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','length','find','body','destroy','describe','accept','fax','read','YYYY-MM-DD\x20HH:mm:ss','user','agent','UserId','read1stAt','format','interaction','get','role','null','ContactId','sequelize','QueryTypes','SELECT','contact','User','fullname','email','manual','SIP/%s','channel','motionChannel','event','EventManager','acceptmessage','fax-interactions','FaxInteraction','FaxInteractionId','[FAXMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','RejectMessage','rejectMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','internal','rejectmessage','create','CmContact','findOne','isNil','AttachmentId','SendFax','FaxAccountId','/var/opt/motion2/server/files/attachments/%s','basename','download','root','server','files','attachments','Attachment','join','eml-format','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','squel','crypto'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x5e6c,0x85));var _0xc5e6=function(_0x438a2b,_0x3230d3){_0x438a2b=_0x438a2b-0x0;var _0x12aea8=_0x5e6c[_0x438a2b];return _0x12aea8;};'use strict';var emlformat=require(_0xc5e6('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xc5e6('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xc5e6('0x2'));var moment=require(_0xc5e6('0x3'));var BPromise=require(_0xc5e6('0x4'));var Mustache=require(_0xc5e6('0x5'));var util=require(_0xc5e6('0x6'));var path=require(_0xc5e6('0x7'));var sox=require(_0xc5e6('0x8'));var csv=require(_0xc5e6('0x9'));var ejs=require(_0xc5e6('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0xc5e6('0xb'));var crypto=require(_0xc5e6('0xc'));var jsforce=require(_0xc5e6('0xd'));var deskjs=require(_0xc5e6('0xe'));var toCsv=require(_0xc5e6('0x9'));var querystring=require(_0xc5e6('0xf'));var Papa=require(_0xc5e6('0x10'));var Redis=require('ioredis');var authService=require(_0xc5e6('0x11'));var qs=require(_0xc5e6('0x12'));var as=require(_0xc5e6('0x13'));var hardwareService=require(_0xc5e6('0x14'));var logger=require(_0xc5e6('0x15'))(_0xc5e6('0x16'));var utils=require(_0xc5e6('0x17'));var config=require(_0xc5e6('0x18'));var licenseUtil=require(_0xc5e6('0x19'));var db=require(_0xc5e6('0x1a'))['db'];config[_0xc5e6('0x1b')]=_[_0xc5e6('0x1c')](config[_0xc5e6('0x1b')],{'host':_0xc5e6('0x1d'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xc5e6('0x1b')]));require(_0xc5e6('0x1e'))['register'](socket);var jayson=require('jayson/promise');var client=jayson[_0xc5e6('0x1f')][_0xc5e6('0x20')]({'port':0x232c});var client9002=jayson['client'][_0xc5e6('0x20')]({'port':0x232a});function respondWithRpcPromise(_0x3c246f,_0x35865a,_0x53a18b,_0x50517b){return new BPromise(function(_0x228636,_0x3284ba){var _0x4ecb6f=_0x50517b||client;return _0x4ecb6f[_0xc5e6('0x21')](_0x3c246f,_0x53a18b)[_0xc5e6('0x22')](function(_0x585547){logger[_0xc5e6('0x23')]('FaxMessage,\x20%s,\x20%s',_0x35865a,_0xc5e6('0x24'));logger[_0xc5e6('0x25')](_0xc5e6('0x26'),_0x35865a,'request\x20sent',JSON[_0xc5e6('0x27')](_0x585547));if(_0x585547[_0xc5e6('0x28')]){if(_0x585547[_0xc5e6('0x28')][_0xc5e6('0x29')]===0x1f4){logger[_0xc5e6('0x28')](_0xc5e6('0x2a'),_0x35865a,_0x585547[_0xc5e6('0x28')][_0xc5e6('0x2b')]);return _0x3284ba(_0x585547[_0xc5e6('0x28')][_0xc5e6('0x2b')]);}logger['error']('FaxMessage,\x20%s,\x20%s',_0x35865a,_0x585547[_0xc5e6('0x28')][_0xc5e6('0x2b')]);return _0x228636(_0x585547[_0xc5e6('0x28')][_0xc5e6('0x2b')]);}else{logger['info']('FaxMessage,\x20%s,\x20%s',_0x35865a,'request\x20sent');_0x228636(_0x585547[_0xc5e6('0x2c')][_0xc5e6('0x2b')]);}})['catch'](function(_0x11d854){logger['error'](_0xc5e6('0x2a'),_0x35865a,_0x11d854);_0x3284ba(_0x11d854);});});}function respondWithStatusCode(_0xd905d9,_0x2cf584){_0x2cf584=_0x2cf584||0xcc;return function(_0x4577ef){if(_0x4577ef){return _0xd905d9[_0xc5e6('0x2d')](_0x2cf584);}return _0xd905d9[_0xc5e6('0x2e')](_0x2cf584)[_0xc5e6('0x2f')]();};}function respondWithResult(_0x53cd14,_0x516e27){_0x516e27=_0x516e27||0xc8;return function(_0x22edec){if(_0x22edec){return _0x53cd14[_0xc5e6('0x2e')](_0x516e27)[_0xc5e6('0x30')](_0x22edec);}};}function respondWithFilteredResult(_0x406377,_0x51a43b){return function(_0x52c9c3){if(_0x52c9c3){var _0x4dee6c=typeof _0x51a43b[_0xc5e6('0x31')]===_0xc5e6('0x32')&&typeof _0x51a43b[_0xc5e6('0x33')]==='undefined';var _0x42d2f1=_0x52c9c3[_0xc5e6('0x34')];var _0x414a5e=_0x4dee6c?0x0:_0x51a43b[_0xc5e6('0x31')];var _0x316c00=_0x4dee6c?_0x52c9c3[_0xc5e6('0x34')]:_0x51a43b[_0xc5e6('0x31')]+_0x51a43b[_0xc5e6('0x33')];var _0x1c4a86;if(_0x316c00>=_0x42d2f1){_0x316c00=_0x42d2f1;_0x1c4a86=0xc8;}else{_0x1c4a86=0xce;}_0x406377['status'](_0x1c4a86);return _0x406377['set']('Content-Range',_0x414a5e+'-'+_0x316c00+'/'+_0x42d2f1)['json'](_0x52c9c3);}return null;};}function patchUpdates(_0x2cff17){return function(_0x5dcc5d){try{jsonpatch[_0xc5e6('0x35')](_0x5dcc5d,_0x2cff17,!![]);}catch(_0x2dc0f5){return BPromise[_0xc5e6('0x36')](_0x2dc0f5);}return _0x5dcc5d[_0xc5e6('0x37')]();};}function saveUpdates(_0x2f7f7b,_0x4163ff){return function(_0x317a7b){if(_0x317a7b){return _0x317a7b[_0xc5e6('0x38')](_0x2f7f7b)[_0xc5e6('0x22')](function(_0x1c5012){return _0x1c5012;});}return null;};}function removeEntity(_0x44ff36,_0x290626){return function(_0x4f04d9){if(_0x4f04d9){return _0x4f04d9['destroy']()[_0xc5e6('0x22')](function(){_0x44ff36[_0xc5e6('0x2e')](0xcc)[_0xc5e6('0x2f')]();});}};}function handleEntityNotFound(_0x1517e0,_0x3855bd){return function(_0x4b431a){if(!_0x4b431a){_0x1517e0[_0xc5e6('0x2d')](0x194);}return _0x4b431a;};}function handleError(_0xce6db2,_0x45dc18){_0x45dc18=_0x45dc18||0x1f4;return function(_0x46649f){logger[_0xc5e6('0x28')](_0x46649f[_0xc5e6('0x39')]);if(_0x46649f[_0xc5e6('0x3a')]){delete _0x46649f[_0xc5e6('0x3a')];}_0xce6db2[_0xc5e6('0x2e')](_0x45dc18)[_0xc5e6('0x3b')](_0x46649f);};}exports['index']=function(_0x21929f,_0x25b940){var _0x47ffcc={},_0x24ec2d={},_0x152d27={'count':0x0,'rows':[]};var _0x4f2467=_[_0xc5e6('0x3c')](db[_0xc5e6('0x3d')][_0xc5e6('0x3e')],function(_0x1920bc){return{'name':_0x1920bc[_0xc5e6('0x3f')],'type':_0x1920bc['type']['key']};});_0x24ec2d[_0xc5e6('0x40')]=_[_0xc5e6('0x3c')](_0x4f2467,_0xc5e6('0x3a'));_0x24ec2d[_0xc5e6('0x41')]=_[_0xc5e6('0x42')](_0x21929f[_0xc5e6('0x41')]);_0x24ec2d['filters']=_['intersection'](_0x24ec2d[_0xc5e6('0x40')],_0x24ec2d[_0xc5e6('0x41')]);_0x47ffcc['attributes']=_[_0xc5e6('0x43')](_0x24ec2d['model'],qs[_0xc5e6('0x44')](_0x21929f['query'][_0xc5e6('0x44')]));_0x47ffcc[_0xc5e6('0x45')]=_0x47ffcc[_0xc5e6('0x45')]['length']?_0x47ffcc[_0xc5e6('0x45')]:_0x24ec2d[_0xc5e6('0x40')];if(!_0x21929f[_0xc5e6('0x41')][_0xc5e6('0x46')](_0xc5e6('0x47'))){_0x47ffcc['limit']=qs[_0xc5e6('0x33')](_0x21929f[_0xc5e6('0x41')][_0xc5e6('0x33')]);_0x47ffcc[_0xc5e6('0x31')]=qs['offset'](_0x21929f[_0xc5e6('0x41')][_0xc5e6('0x31')]);}_0x47ffcc[_0xc5e6('0x48')]=qs[_0xc5e6('0x49')](_0x21929f[_0xc5e6('0x41')]['sort']);_0x47ffcc['where']=qs[_0xc5e6('0x4a')](_[_0xc5e6('0x4b')](_0x21929f[_0xc5e6('0x41')],_0x24ec2d[_0xc5e6('0x4a')]),_0x4f2467);if(_0x21929f[_0xc5e6('0x41')]['filter']){_0x47ffcc[_0xc5e6('0x4c')]=_[_0xc5e6('0x4d')](_0x47ffcc[_0xc5e6('0x4c')],{'$or':_[_0xc5e6('0x3c')](_0x4f2467,function(_0xb031f9){if(_0xb031f9[_0xc5e6('0x4e')]!==_0xc5e6('0x4f')){var _0x4bfab9={};_0x4bfab9[_0xb031f9['name']]={'$like':'%'+_0x21929f['query']['filter']+'%'};return _0x4bfab9;}})});}_0x47ffcc=_['merge']({},_0x47ffcc,_0x21929f[_0xc5e6('0x50')]);var _0x2b6016={'where':_0x47ffcc[_0xc5e6('0x4c')]};return db[_0xc5e6('0x3d')][_0xc5e6('0x34')](_0x2b6016)[_0xc5e6('0x22')](function(_0x495714){_0x152d27[_0xc5e6('0x34')]=_0x495714;if(_0x21929f[_0xc5e6('0x41')][_0xc5e6('0x51')]){_0x47ffcc[_0xc5e6('0x52')]=[{'all':!![]}];}return db[_0xc5e6('0x3d')][_0xc5e6('0x53')](_0x47ffcc);})[_0xc5e6('0x22')](function(_0x222d5a){_0x152d27[_0xc5e6('0x54')]=_0x222d5a;return _0x152d27;})['then'](respondWithFilteredResult(_0x25b940,_0x47ffcc))[_0xc5e6('0x55')](handleError(_0x25b940,null));};exports[_0xc5e6('0x56')]=function(_0x316f30,_0x528fca){var _0x43e288={'raw':!![],'where':{'id':_0x316f30[_0xc5e6('0x57')]['id']}},_0x5c17cc={};_0x5c17cc['model']=_['keys'](db[_0xc5e6('0x3d')][_0xc5e6('0x3e')]);_0x5c17cc[_0xc5e6('0x41')]=_[_0xc5e6('0x42')](_0x316f30['query']);_0x5c17cc[_0xc5e6('0x4a')]=_['intersection'](_0x5c17cc[_0xc5e6('0x40')],_0x5c17cc[_0xc5e6('0x41')]);_0x43e288['attributes']=_['intersection'](_0x5c17cc[_0xc5e6('0x40')],qs[_0xc5e6('0x44')](_0x316f30[_0xc5e6('0x41')][_0xc5e6('0x44')]));_0x43e288['attributes']=_0x43e288[_0xc5e6('0x45')][_0xc5e6('0x58')]?_0x43e288['attributes']:_0x5c17cc[_0xc5e6('0x40')];if(_0x316f30['query'][_0xc5e6('0x51')]){_0x43e288[_0xc5e6('0x52')]=[{'all':!![]}];}_0x43e288=_[_0xc5e6('0x4d')]({},_0x43e288,_0x316f30['options']);return db[_0xc5e6('0x3d')][_0xc5e6('0x59')](_0x43e288)[_0xc5e6('0x22')](handleEntityNotFound(_0x528fca,null))['then'](respondWithResult(_0x528fca,null))['catch'](handleError(_0x528fca,null));};exports[_0xc5e6('0x38')]=function(_0x30a0ad,_0xa8e686){if(_0x30a0ad[_0xc5e6('0x5a')]['id']){delete _0x30a0ad[_0xc5e6('0x5a')]['id'];}return db[_0xc5e6('0x3d')][_0xc5e6('0x59')]({'where':{'id':_0x30a0ad['params']['id']}})[_0xc5e6('0x22')](handleEntityNotFound(_0xa8e686,null))[_0xc5e6('0x22')](saveUpdates(_0x30a0ad[_0xc5e6('0x5a')],null))[_0xc5e6('0x22')](respondWithResult(_0xa8e686,null))[_0xc5e6('0x55')](handleError(_0xa8e686,null));};exports[_0xc5e6('0x5b')]=function(_0xfd1f3e,_0x5ddacf){return db[_0xc5e6('0x3d')][_0xc5e6('0x59')]({'where':{'id':_0xfd1f3e[_0xc5e6('0x57')]['id']}})['then'](handleEntityNotFound(_0x5ddacf,null))[_0xc5e6('0x22')](removeEntity(_0x5ddacf,null))['catch'](handleError(_0x5ddacf,null));};exports[_0xc5e6('0x5c')]=function(_0x12a3b3,_0xa02e8){return db[_0xc5e6('0x3d')]['describe']()['then'](respondWithResult(_0xa02e8,null))[_0xc5e6('0x55')](handleError(_0xa02e8,null));};var interaction_log=require('../../config/logger')('fax-interactions');exports[_0xc5e6('0x5d')]=function(_0x40a182,_0x39e2f7,_0x1161f0){var _0x217c47={'agent':{},'channel':_0xc5e6('0x5e')};if(_0x40a182['body']['id']){delete _0x40a182[_0xc5e6('0x5a')]['id'];}_0x40a182[_0xc5e6('0x5a')][_0xc5e6('0x5f')]=!![];_0x40a182[_0xc5e6('0x5a')]['readAt']=moment()['format'](_0xc5e6('0x60'));_0x40a182[_0xc5e6('0x5a')]['UserId']=_0x40a182[_0xc5e6('0x5a')]['UserId']||_0x40a182[_0xc5e6('0x61')]['id'];_0x217c47[_0xc5e6('0x62')]['id']=_0x40a182[_0xc5e6('0x5a')][_0xc5e6('0x63')];return db[_0xc5e6('0x3d')]['find']({'where':{'id':_0x40a182['params']['id'],'UserId':null}})[_0xc5e6('0x22')](handleEntityNotFound(_0x39e2f7,null))['then'](saveUpdates(_0x40a182[_0xc5e6('0x5a')],null))[_0xc5e6('0x22')](function(_0x54c43e){if(_0x54c43e){_0x217c47['message']=_0x54c43e['get']({'plain':!![]});return db['FaxInteraction'][_0xc5e6('0x59')]({'where':{'id':_0x54c43e['FaxInteractionId']}});}return null;})[_0xc5e6('0x22')](handleEntityNotFound(_0x39e2f7,null))[_0xc5e6('0x22')](function(_0x458a36){if(_0x458a36){return _0x458a36['update']({'UserId':_0x40a182[_0xc5e6('0x5a')][_0xc5e6('0x63')],'read1stAt':_['isNil'](_0x458a36[_0xc5e6('0x64')])?moment()[_0xc5e6('0x65')](_0xc5e6('0x60')):undefined});}return null;})[_0xc5e6('0x22')](function(_0x1026c6){if(_0x1026c6){_0x217c47[_0xc5e6('0x66')]=_0x1026c6[_0xc5e6('0x67')]({'plain':!![]});interaction_log[_0xc5e6('0x23')]('[FAXMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x40a182[_0xc5e6('0x61')]['id'],_0x40a182[_0xc5e6('0x61')][_0xc5e6('0x3a')],_0x40a182[_0xc5e6('0x61')][_0xc5e6('0x68')],_0x217c47[_0xc5e6('0x66')]['id'],_0x40a182['body']?JSON[_0xc5e6('0x27')](_0x40a182[_0xc5e6('0x5a')]):_0xc5e6('0x69'));return respondWithRpcPromise('AcceptMessage','acceptMessage',_0x217c47);}return null;})[_0xc5e6('0x22')](function(_0x543255){var _0x104cdb='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x543255[_0xc5e6('0x2b')][_0xc5e6('0x6a')];return db[_0xc5e6('0x6b')][_0xc5e6('0x41')](_0x104cdb,{'type':db['Sequelize'][_0xc5e6('0x6c')][_0xc5e6('0x6d')],'raw':!![]})['then'](function(_0x15a1e5){return _0x15a1e5;});})[_0xc5e6('0x22')](function(_0xc439fe){if(_0xc439fe){_0x217c47[_0xc5e6('0x2b')][_0xc5e6('0x6e')]=_0xc439fe[0x0];if(!_0x40a182['body'][_0xc5e6('0x63')])return;return db[_0xc5e6('0x6f')]['find']({'where':{'id':_0x40a182[_0xc5e6('0x5a')][_0xc5e6('0x63')],'role':'agent'},'attributes':['id',_0xc5e6('0x3a'),_0xc5e6('0x70'),_0xc5e6('0x71'),'internal'],'raw':!![]});}return null;})[_0xc5e6('0x22')](function(_0x25a4e1){if(!_0x25a4e1)return null;_0x217c47[_0xc5e6('0x2b')][_0xc5e6('0x62')]=_0x25a4e1;return _0x217c47;})['then'](function(_0x28a71d){if(_0x28a71d){if(_0x40a182['body'][_0xc5e6('0x72')]){_0x217c47[_0xc5e6('0x2b')]['interface']=util['format'](_0xc5e6('0x73'),_0x40a182['user'][_0xc5e6('0x3a')]);_0x217c47[_0xc5e6('0x2b')]['channel']=_0x217c47[_0xc5e6('0x74')];_0x217c47[_0xc5e6('0x2b')][_0xc5e6('0x75')]=_0x217c47[_0xc5e6('0x74')];_0x217c47[_0xc5e6('0x2b')][_0xc5e6('0x76')]=_0xc5e6('0x5d');return respondWithRpcPromise('EventManager',_0xc5e6('0x77'),{'event':_0xc5e6('0x78'),'message':_0x217c47[_0xc5e6('0x2b')]},client9002)['then'](function(){return _0x217c47;});}return _0x217c47;}return null;})['then'](respondWithResult(_0x39e2f7,null))[_0xc5e6('0x55')](handleError(_0x39e2f7,null));};var interaction_log=require(_0xc5e6('0x15'))(_0xc5e6('0x79'));exports['reject']=function(_0x190cb2,_0x24aa87,_0x1951d8){var _0x5a0ee8={'agent':{},'channel':_0xc5e6('0x5e')};if(_0x190cb2[_0xc5e6('0x5a')]['id']){delete _0x190cb2[_0xc5e6('0x5a')]['id'];}_0x190cb2[_0xc5e6('0x5a')][_0xc5e6('0x63')]=_0x190cb2[_0xc5e6('0x5a')][_0xc5e6('0x63')]||_0x190cb2[_0xc5e6('0x61')]['id'];_0x5a0ee8[_0xc5e6('0x62')]['id']=_0x190cb2[_0xc5e6('0x5a')][_0xc5e6('0x63')];return db[_0xc5e6('0x3d')][_0xc5e6('0x59')]({'where':{'id':_0x190cb2['params']['id'],'UserId':null}})[_0xc5e6('0x22')](handleEntityNotFound(_0x24aa87,null))[_0xc5e6('0x22')](function(_0x2b490b){if(_0x2b490b){_0x5a0ee8[_0xc5e6('0x2b')]=_0x2b490b[_0xc5e6('0x67')]({'plain':!![]});return db[_0xc5e6('0x7a')]['find']({'where':{'id':_0x2b490b[_0xc5e6('0x7b')]}});}return null;})[_0xc5e6('0x22')](handleEntityNotFound(_0x24aa87,null))[_0xc5e6('0x22')](function(_0x10f373){if(_0x10f373){_0x5a0ee8[_0xc5e6('0x66')]=_0x10f373['get']({'plain':!![]});interaction_log[_0xc5e6('0x23')](_0xc5e6('0x7c'),_0x190cb2[_0xc5e6('0x61')]['id'],_0x190cb2['user']['name'],_0x190cb2['user'][_0xc5e6('0x68')],_0x5a0ee8['interaction']['id'],_0x190cb2['body']?JSON['stringify'](_0x190cb2[_0xc5e6('0x5a')]):'null');return respondWithRpcPromise(_0xc5e6('0x7d'),_0xc5e6('0x7e'),_0x5a0ee8);}return null;})[_0xc5e6('0x22')](function(_0x5d0e0b){var _0x1ced88=_0xc5e6('0x7f')+_0x5d0e0b['message']['ContactId'];return db[_0xc5e6('0x6b')][_0xc5e6('0x41')](_0x1ced88,{'type':db['Sequelize'][_0xc5e6('0x6c')][_0xc5e6('0x6d')],'raw':!![]})[_0xc5e6('0x22')](function(_0x141f2b){return _0x141f2b;});})[_0xc5e6('0x22')](function(_0x4776c3){if(_0x4776c3){_0x5a0ee8[_0xc5e6('0x2b')][_0xc5e6('0x6e')]=_0x4776c3[0x0];if(!_0x190cb2[_0xc5e6('0x5a')][_0xc5e6('0x63')])return;return db[_0xc5e6('0x6f')]['find']({'where':{'id':_0x190cb2[_0xc5e6('0x5a')][_0xc5e6('0x63')],'role':_0xc5e6('0x62')},'attributes':['id','name',_0xc5e6('0x70'),_0xc5e6('0x71'),_0xc5e6('0x80')],'raw':!![]});}return null;})[_0xc5e6('0x22')](function(_0x24e6c4){if(!_0x24e6c4)return null;_0x5a0ee8['message'][_0xc5e6('0x62')]=_0x24e6c4;return _0x5a0ee8;})['then'](function(_0x373002){if(_0x373002){_0x373002[_0xc5e6('0x2b')]['interface']=util[_0xc5e6('0x65')](_0xc5e6('0x73'),_0x190cb2['user'][_0xc5e6('0x3a')]);_0x373002[_0xc5e6('0x2b')][_0xc5e6('0x74')]=_0x5a0ee8['channel'];_0x373002[_0xc5e6('0x2b')]['motionChannel']=_0x5a0ee8[_0xc5e6('0x74')];_0x373002[_0xc5e6('0x2b')]['event']='reject';respondWithRpcPromise(_0xc5e6('0x77'),_0xc5e6('0x77'),{'event':_0xc5e6('0x81'),'message':_0x373002[_0xc5e6('0x2b')]},client9002);return _0x5a0ee8;}return null;})[_0xc5e6('0x22')](respondWithResult(_0x24aa87,null))[_0xc5e6('0x55')](handleError(_0x24aa87,null));};exports[_0xc5e6('0x82')]=function(_0x48866d,_0x10a983){var _0x480d59;return db[_0xc5e6('0x3d')][_0xc5e6('0x82')](_0x48866d[_0xc5e6('0x5a')],{})[_0xc5e6('0x22')](function(_0x3a0c01){_0x480d59=_0x3a0c01;return db[_0xc5e6('0x83')][_0xc5e6('0x84')]({'where':{'id':_0x480d59[_0xc5e6('0x6a')]}});})['then'](function(_0x20ee0e){if(_[_0xc5e6('0x85')](_0x20ee0e)){return;}else{_0x480d59[_0xc5e6('0x5e')]=_0x20ee0e['fax'];return db['Attachment'][_0xc5e6('0x84')]({'where':{'id':_0x480d59[_0xc5e6('0x86')]}});}})['then'](function(_0xfe4518){return respondWithRpcPromise('SendFax',_0xc5e6('0x87'),{'FaxAccountId':_[_0xc5e6('0x85')](_0x48866d['body'])?undefined:_0x48866d[_0xc5e6('0x5a')][_0xc5e6('0x88')],'path':_[_0xc5e6('0x85')](_0xfe4518)?undefined:util[_0xc5e6('0x65')](_0xc5e6('0x89'),_0xfe4518[_0xc5e6('0x8a')]),'fax':_[_0xc5e6('0x85')](_0x480d59['fax'])?undefined:_0x480d59[_0xc5e6('0x5e')],'AttachmentId':_0x480d59[_0xc5e6('0x86')]},client9002);})[_0xc5e6('0x22')](respondWithResult(_0x10a983,0xc9))[_0xc5e6('0x55')](handleError(_0x10a983,null));};exports[_0xc5e6('0x8b')]=function(_0x3ef816,_0x3c1d38){var _0x262176=path['join'](config[_0xc5e6('0x8c')],_0xc5e6('0x8d'),_0xc5e6('0x8e'),_0xc5e6('0x8f'));return db['FaxMessage'][_0xc5e6('0x59')]({'where':{'id':_0x3ef816[_0xc5e6('0x57')]['id']},'include':[{'model':db[_0xc5e6('0x90')],'as':_0xc5e6('0x90')}]})[_0xc5e6('0x22')](handleEntityNotFound(_0x3c1d38,null))[_0xc5e6('0x22')](function(_0x25c5cf){if(_0x25c5cf){return _0x3c1d38['download'](path[_0xc5e6('0x91')](_0x262176,_0x25c5cf[_0xc5e6('0x90')][_0xc5e6('0x8a')]));}})[_0xc5e6('0x55')](handleError(_0x3c1d38,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfba8=['setMaxListeners','save','update','remove','emit','hasOwnProperty','hook','exports','events','../../mysqldb','FaxMessage'];(function(_0x5f977e,_0x3800a0){var _0x2785e7=function(_0x246153){while(--_0x246153){_0x5f977e['push'](_0x5f977e['shift']());}};_0x2785e7(++_0x3800a0);}(_0xfba8,0x1d6));var _0x8fba=function(_0x41466a,_0x21e0e0){_0x41466a=_0x41466a-0x0;var _0x295e69=_0xfba8[_0x41466a];return _0x295e69;};'use strict';var EventEmitter=require(_0x8fba('0x0'));var FaxMessage=require(_0x8fba('0x1'))['db'][_0x8fba('0x2')];var FaxMessageEvents=new EventEmitter();FaxMessageEvents[_0x8fba('0x3')](0x0);var events={'afterCreate':_0x8fba('0x4'),'afterUpdate':_0x8fba('0x5'),'afterDestroy':_0x8fba('0x6')};function emitEvent(_0x24a829){return function(_0x259f22,_0x5a6b3c,_0x1cdc4e){FaxMessageEvents['emit'](_0x24a829+':'+_0x259f22['id'],_0x259f22);FaxMessageEvents[_0x8fba('0x7')](_0x24a829,_0x259f22);_0x1cdc4e(null);};}for(var e in events){if(events[_0x8fba('0x8')](e)){var event=events[e];FaxMessage[_0x8fba('0x9')](e,emitEvent(event));}}module[_0x8fba('0xa')]=FaxMessageEvents;
\ No newline at end of file
+var _0x1241=['events','FaxMessage','setMaxListeners','save','update','remove','emit','hasOwnProperty','hook','exports'];(function(_0x68ee8b,_0x3cc6c5){var _0x5148f7=function(_0x5dcbd5){while(--_0x5dcbd5){_0x68ee8b['push'](_0x68ee8b['shift']());}};_0x5148f7(++_0x3cc6c5);}(_0x1241,0xb4));var _0x1124=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x1241[_0x3dd15e];return _0x231fd0;};'use strict';var EventEmitter=require(_0x1124('0x0'));var FaxMessage=require('../../mysqldb')['db'][_0x1124('0x1')];var FaxMessageEvents=new EventEmitter();FaxMessageEvents[_0x1124('0x2')](0x0);var events={'afterCreate':_0x1124('0x3'),'afterUpdate':_0x1124('0x4'),'afterDestroy':_0x1124('0x5')};function emitEvent(_0x57830b){return function(_0x34e834,_0x355ccc,_0x3843ff){FaxMessageEvents['emit'](_0x57830b+':'+_0x34e834['id'],_0x34e834);FaxMessageEvents[_0x1124('0x6')](_0x57830b,_0x34e834);_0x3843ff(null);};}for(var e in events){if(events[_0x1124('0x7')](e)){var event=events[e];FaxMessage[_0x1124('0x8')](e,emitEvent(event));}}module[_0x1124('0x9')]=FaxMessageEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6bf5=['UserId','FaxInteraction','findOne','FaxInteractionId','then','update','catch','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','moment','bluebird','../../config/environment','define','FaxMessage','fax_messages','fti_fax_messages','body','FULLTEXT','models','get','direction','toLowerCase','out'];(function(_0x1226f2,_0xdc92b){var _0x19e128=function(_0x13b26b){while(--_0x13b26b){_0x1226f2['push'](_0x1226f2['shift']());}};_0x19e128(++_0xdc92b);}(_0x6bf5,0xc6));var _0x56bf=function(_0x420f2a,_0x2cc58d){_0x420f2a=_0x420f2a-0x0;var _0x28f802=_0x6bf5[_0x420f2a];return _0x28f802;};'use strict';var _=require(_0x56bf('0x0'));var util=require(_0x56bf('0x1'));var logger=require(_0x56bf('0x2'))(_0x56bf('0x3'));var moment=require(_0x56bf('0x4'));var BPromise=require(_0x56bf('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x56bf('0x6'));var attributes=require('./faxMessage.attributes');module['exports']=function(_0x3e4fa5,_0x3635e6){return _0x3e4fa5[_0x56bf('0x7')](_0x56bf('0x8'),attributes,{'tableName':_0x56bf('0x9'),'paranoid':![],'indexes':[{'name':_0x56bf('0xa'),'fields':[_0x56bf('0xb')],'type':_0x56bf('0xc')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x16c081,_0x342779,_0x5876bc){var _0x301fe1=_0x3e4fa5[_0x56bf('0xd')];var _0x1988e7=_0x16c081[_0x56bf('0xe')]({'plain':!![]});if(_0x1988e7[_0x56bf('0xf')][_0x56bf('0x10')]()==='in'||_0x1988e7[_0x56bf('0xf')][_0x56bf('0x10')]()===_0x56bf('0x11')&&!_0x1988e7['secret']&&!_['isNil'](_0x1988e7[_0x56bf('0x12')])){_0x301fe1[_0x56bf('0x13')][_0x56bf('0x14')]({'where':{'id':_0x1988e7[_0x56bf('0x15')]}})[_0x56bf('0x16')](function(_0x1c07ad){if(_0x1c07ad){_0x1c07ad[_0x56bf('0x17')]({'lastMsgAt':_0x1988e7['createdAt'],'lastMsgDirection':_0x1988e7[_0x56bf('0xf')][_0x56bf('0x10')]()});}})[_0x56bf('0x18')](function(_0x28b54d){console['error'](_0x28b54d);});}_0x5876bc();}},'charset':_0x56bf('0x19'),'collate':_0x56bf('0x1a')});};
\ No newline at end of file
+var _0x12ff=['direction','toLowerCase','secret','isNil','UserId','FaxInteraction','findOne','then','update','createdAt','catch','error','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','define','fax_messages','body','FULLTEXT','models','get'];(function(_0x1bf0fb,_0x524965){var _0x1f562c=function(_0x3dd9c4){while(--_0x3dd9c4){_0x1bf0fb['push'](_0x1bf0fb['shift']());}};_0x1f562c(++_0x524965);}(_0x12ff,0x126));var _0xf12f=function(_0x281e91,_0x23628e){_0x281e91=_0x281e91-0x0;var _0x1bcfe4=_0x12ff[_0x281e91];return _0x1bcfe4;};'use strict';var _=require(_0xf12f('0x0'));var util=require(_0xf12f('0x1'));var logger=require(_0xf12f('0x2'))(_0xf12f('0x3'));var moment=require(_0xf12f('0x4'));var BPromise=require(_0xf12f('0x5'));var rp=require(_0xf12f('0x6'));var fs=require('fs');var path=require(_0xf12f('0x7'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require('./faxMessage.attributes');module['exports']=function(_0x2f600e,_0x513dc5){return _0x2f600e[_0xf12f('0x8')]('FaxMessage',attributes,{'tableName':_0xf12f('0x9'),'paranoid':![],'indexes':[{'name':'fti_fax_messages','fields':[_0xf12f('0xa')],'type':_0xf12f('0xb')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x5b17ef,_0x5af07f,_0x4d2662){var _0x57edc3=_0x2f600e[_0xf12f('0xc')];var _0x4f6ad8=_0x5b17ef[_0xf12f('0xd')]({'plain':!![]});if(_0x4f6ad8[_0xf12f('0xe')]['toLowerCase']()==='in'||_0x4f6ad8[_0xf12f('0xe')][_0xf12f('0xf')]()==='out'&&!_0x4f6ad8[_0xf12f('0x10')]&&!_[_0xf12f('0x11')](_0x4f6ad8[_0xf12f('0x12')])){_0x57edc3[_0xf12f('0x13')][_0xf12f('0x14')]({'where':{'id':_0x4f6ad8['FaxInteractionId']}})[_0xf12f('0x15')](function(_0x14a0ff){if(_0x14a0ff){_0x14a0ff[_0xf12f('0x16')]({'lastMsgAt':_0x4f6ad8[_0xf12f('0x17')],'lastMsgDirection':_0x4f6ad8['direction'][_0xf12f('0xf')]()});}})[_0xf12f('0x18')](function(_0xae5f5b){console[_0xf12f('0x19')](_0xae5f5b);});}_0x4d2662();}},'charset':_0xf12f('0x1a'),'collate':_0xf12f('0x1b')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4bc3=['CreateFaxMessage','FaxMessage','create','body','options','raw','then','stringify','catch','UpdateFaxMessage','update','where','attributes','limit','info','lodash','util','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','redis','localhost','socket.io-emitter','./faxMessage.socket','register','request','FaxMessage,\x20%s,\x20%s','request\x20sent','debug','error','code','message','result'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x4bc3,0x16e));var _0x34bc=function(_0x15c421,_0x6366f7){_0x15c421=_0x15c421-0x0;var _0x5e5ed5=_0x4bc3[_0x15c421];return _0x5e5ed5;};'use strict';var _=require(_0x34bc('0x0'));var util=require(_0x34bc('0x1'));var moment=require('moment');var BPromise=require(_0x34bc('0x2'));var rs=require(_0x34bc('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x34bc('0x4'))['db'];var utils=require(_0x34bc('0x5'));var logger=require(_0x34bc('0x6'))(_0x34bc('0x7'));var config=require(_0x34bc('0x8'));var jayson=require(_0x34bc('0x9'));var client=jayson[_0x34bc('0xa')]['http']({'port':0x232a});config[_0x34bc('0xb')]=_['defaults'](config['redis'],{'host':_0x34bc('0xc'),'port':0x18eb});var socket=require(_0x34bc('0xd'))(new Redis(config[_0x34bc('0xb')]));require(_0x34bc('0xe'))[_0x34bc('0xf')](socket);function respondWithRpcPromise(_0x41b2ff,_0x5de8b5,_0x5a478d){return new BPromise(function(_0x2b8112,_0x33025c){return client[_0x34bc('0x10')](_0x41b2ff,_0x5a478d)['then'](function(_0x41960e){logger['info'](_0x34bc('0x11'),_0x5de8b5,_0x34bc('0x12'));logger[_0x34bc('0x13')]('FaxMessage,\x20%s,\x20%s,\x20%s',_0x5de8b5,_0x34bc('0x12'),JSON['stringify'](_0x41960e));if(_0x41960e[_0x34bc('0x14')]){if(_0x41960e[_0x34bc('0x14')][_0x34bc('0x15')]===0x1f4){logger['error']('FaxMessage,\x20%s,\x20%s',_0x5de8b5,_0x41960e[_0x34bc('0x14')]['message']);return _0x33025c(_0x41960e[_0x34bc('0x14')][_0x34bc('0x16')]);}logger[_0x34bc('0x14')](_0x34bc('0x11'),_0x5de8b5,_0x41960e[_0x34bc('0x14')][_0x34bc('0x16')]);return _0x2b8112(_0x41960e['error']['message']);}else{logger['info'](_0x34bc('0x11'),_0x5de8b5,_0x34bc('0x12'));_0x2b8112(_0x41960e[_0x34bc('0x17')][_0x34bc('0x16')]);}})['catch'](function(_0x46aa24){logger[_0x34bc('0x14')]('FaxMessage,\x20%s,\x20%s',_0x5de8b5,_0x46aa24);_0x33025c(_0x46aa24);});});}exports[_0x34bc('0x18')]=function(_0x9e9f14){var _0x4d2d5e=this;return new Promise(function(_0x14cec8,_0x26cdec){return db[_0x34bc('0x19')][_0x34bc('0x1a')](_0x9e9f14[_0x34bc('0x1b')],{'raw':_0x9e9f14[_0x34bc('0x1c')]?_0x9e9f14['options'][_0x34bc('0x1d')]===undefined?!![]:![]:!![]})[_0x34bc('0x1e')](function(_0x38882c){logger['info']('CreateFaxMessage',_0x9e9f14);logger[_0x34bc('0x13')](_0x34bc('0x18'),_0x9e9f14,JSON[_0x34bc('0x1f')](_0x38882c));_0x14cec8(_0x38882c);})[_0x34bc('0x20')](function(_0x13094a){logger[_0x34bc('0x14')](_0x34bc('0x18'),_0x13094a[_0x34bc('0x16')],_0x9e9f14);_0x26cdec(_0x4d2d5e[_0x34bc('0x14')](0x1f4,_0x13094a[_0x34bc('0x16')]));});});};exports[_0x34bc('0x21')]=function(_0x1edcb0){var _0x4fd589=this;return new Promise(function(_0x43e527,_0x48ec13){return db['FaxMessage'][_0x34bc('0x22')](_0x1edcb0['body'],{'raw':_0x1edcb0[_0x34bc('0x1c')]?_0x1edcb0[_0x34bc('0x1c')][_0x34bc('0x1d')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x1edcb0['options']?_0x1edcb0[_0x34bc('0x1c')][_0x34bc('0x23')]||null:null,'attributes':_0x1edcb0[_0x34bc('0x1c')]?_0x1edcb0[_0x34bc('0x1c')][_0x34bc('0x24')]||null:null,'limit':_0x1edcb0[_0x34bc('0x1c')]?_0x1edcb0['options'][_0x34bc('0x25')]||null:null})[_0x34bc('0x1e')](function(_0x22aacc){logger[_0x34bc('0x26')](_0x34bc('0x21'),_0x1edcb0);logger[_0x34bc('0x13')]('UpdateFaxMessage',_0x1edcb0,JSON[_0x34bc('0x1f')](_0x22aacc));_0x43e527(_0x22aacc);})['catch'](function(_0x530748){logger[_0x34bc('0x14')]('UpdateFaxMessage',_0x530748[_0x34bc('0x16')],_0x1edcb0);_0x48ec13(_0x4fd589[_0x34bc('0x14')](0x1f4,_0x530748[_0x34bc('0x16')]));});});};
\ No newline at end of file
+var _0x5636=['error','code','message','result','CreateFaxMessage','FaxMessage','body','options','then','UpdateFaxMessage','update','where','catch','lodash','util','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./faxMessage.socket','register','info','FaxMessage,\x20%s,\x20%s','request\x20sent','debug','FaxMessage,\x20%s,\x20%s,\x20%s','stringify'];(function(_0x22aa61,_0x45e107){var _0x51500a=function(_0x16a73b){while(--_0x16a73b){_0x22aa61['push'](_0x22aa61['shift']());}};_0x51500a(++_0x45e107);}(_0x5636,0x102));var _0x6563=function(_0x1a03b4,_0x227e93){_0x1a03b4=_0x1a03b4-0x0;var _0xab4831=_0x5636[_0x1a03b4];return _0xab4831;};'use strict';var _=require(_0x6563('0x0'));var util=require(_0x6563('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x6563('0x2'));var db=require(_0x6563('0x3'))['db'];var utils=require(_0x6563('0x4'));var logger=require('../../config/logger')(_0x6563('0x5'));var config=require(_0x6563('0x6'));var jayson=require(_0x6563('0x7'));var client=jayson[_0x6563('0x8')][_0x6563('0x9')]({'port':0x232a});config[_0x6563('0xa')]=_[_0x6563('0xb')](config[_0x6563('0xa')],{'host':_0x6563('0xc'),'port':0x18eb});var socket=require(_0x6563('0xd'))(new Redis(config[_0x6563('0xa')]));require(_0x6563('0xe'))[_0x6563('0xf')](socket);function respondWithRpcPromise(_0x516d1a,_0x51fdc2,_0x2946f3){return new BPromise(function(_0x129fa3,_0x490a56){return client['request'](_0x516d1a,_0x2946f3)['then'](function(_0x1ef002){logger[_0x6563('0x10')](_0x6563('0x11'),_0x51fdc2,_0x6563('0x12'));logger[_0x6563('0x13')](_0x6563('0x14'),_0x51fdc2,_0x6563('0x12'),JSON[_0x6563('0x15')](_0x1ef002));if(_0x1ef002[_0x6563('0x16')]){if(_0x1ef002['error'][_0x6563('0x17')]===0x1f4){logger['error'](_0x6563('0x11'),_0x51fdc2,_0x1ef002[_0x6563('0x16')][_0x6563('0x18')]);return _0x490a56(_0x1ef002[_0x6563('0x16')]['message']);}logger[_0x6563('0x16')](_0x6563('0x11'),_0x51fdc2,_0x1ef002[_0x6563('0x16')][_0x6563('0x18')]);return _0x129fa3(_0x1ef002['error'][_0x6563('0x18')]);}else{logger['info']('FaxMessage,\x20%s,\x20%s',_0x51fdc2,'request\x20sent');_0x129fa3(_0x1ef002[_0x6563('0x19')]['message']);}})['catch'](function(_0x27651b){logger[_0x6563('0x16')](_0x6563('0x11'),_0x51fdc2,_0x27651b);_0x490a56(_0x27651b);});});}exports[_0x6563('0x1a')]=function(_0xf8b544){var _0x10811d=this;return new Promise(function(_0x37ba3,_0x93a45){return db[_0x6563('0x1b')]['create'](_0xf8b544[_0x6563('0x1c')],{'raw':_0xf8b544[_0x6563('0x1d')]?_0xf8b544[_0x6563('0x1d')]['raw']===undefined?!![]:![]:!![]})[_0x6563('0x1e')](function(_0x5c37bb){logger[_0x6563('0x10')](_0x6563('0x1a'),_0xf8b544);logger['debug']('CreateFaxMessage',_0xf8b544,JSON[_0x6563('0x15')](_0x5c37bb));_0x37ba3(_0x5c37bb);})['catch'](function(_0x1097d0){logger[_0x6563('0x16')](_0x6563('0x1a'),_0x1097d0['message'],_0xf8b544);_0x93a45(_0x10811d[_0x6563('0x16')](0x1f4,_0x1097d0['message']));});});};exports[_0x6563('0x1f')]=function(_0x1590e6){var _0x5e5aeb=this;return new Promise(function(_0x365b16,_0x28252d){return db['FaxMessage'][_0x6563('0x20')](_0x1590e6['body'],{'raw':_0x1590e6[_0x6563('0x1d')]?_0x1590e6['options']['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x1590e6[_0x6563('0x1d')]?_0x1590e6[_0x6563('0x1d')][_0x6563('0x21')]||null:null,'attributes':_0x1590e6[_0x6563('0x1d')]?_0x1590e6[_0x6563('0x1d')]['attributes']||null:null,'limit':_0x1590e6[_0x6563('0x1d')]?_0x1590e6['options']['limit']||null:null})[_0x6563('0x1e')](function(_0x35af37){logger[_0x6563('0x10')](_0x6563('0x1f'),_0x1590e6);logger[_0x6563('0x13')](_0x6563('0x1f'),_0x1590e6,JSON[_0x6563('0x15')](_0x35af37));_0x365b16(_0x35af37);})[_0x6563('0x22')](function(_0x101b24){logger[_0x6563('0x16')]('UpdateFaxMessage',_0x101b24[_0x6563('0x18')],_0x1590e6);_0x28252d(_0x5e5aeb[_0x6563('0x16')](0x1f4,_0x101b24[_0x6563('0x18')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8174=['./faxMessage.events','save','remove','update','removeListener','register','length','faxMessage:'];(function(_0x32c387,_0xd1729a){var _0x3b0daa=function(_0x128c2d){while(--_0x128c2d){_0x32c387['push'](_0x32c387['shift']());}};_0x3b0daa(++_0xd1729a);}(_0x8174,0x1e0));var _0x4817=function(_0x3eaea7,_0x9968ff){_0x3eaea7=_0x3eaea7-0x0;var _0xd7cd35=_0x8174[_0x3eaea7];return _0xd7cd35;};'use strict';var FaxMessageEvents=require(_0x4817('0x0'));var events=[_0x4817('0x1'),_0x4817('0x2'),_0x4817('0x3')];function createListener(_0x547242,_0x4e531c){return function(_0x301d1f){_0x4e531c['emit'](_0x547242,_0x301d1f);};}function removeListener(_0x1ef09b,_0x5accba){return function(){FaxMessageEvents[_0x4817('0x4')](_0x1ef09b,_0x5accba);};}exports[_0x4817('0x5')]=function(_0x55222e){for(var _0x16171e=0x0,_0x263b9f=events[_0x4817('0x6')];_0x16171e<_0x263b9f;_0x16171e++){var _0x13dec6=events[_0x16171e];var _0x32c3f7=createListener(_0x4817('0x7')+_0x13dec6,_0x55222e);FaxMessageEvents['on'](_0x13dec6,_0x32c3f7);}};
\ No newline at end of file
+var _0xf7df=['remove','emit','register','faxMessage:','save'];(function(_0x1c8171,_0x3cbd64){var _0x51c7ba=function(_0x27bf39){while(--_0x27bf39){_0x1c8171['push'](_0x1c8171['shift']());}};_0x51c7ba(++_0x3cbd64);}(_0xf7df,0xe0));var _0xff7d=function(_0x1bfce2,_0x9e04e8){_0x1bfce2=_0x1bfce2-0x0;var _0x2658f6=_0xf7df[_0x1bfce2];return _0x2658f6;};'use strict';var FaxMessageEvents=require('./faxMessage.events');var events=[_0xff7d('0x0'),_0xff7d('0x1'),'update'];function createListener(_0x27a3ff,_0x4dd505){return function(_0x1f55b1){_0x4dd505[_0xff7d('0x2')](_0x27a3ff,_0x1f55b1);};}function removeListener(_0x34d24c,_0x4b1ec3){return function(){FaxMessageEvents['removeListener'](_0x34d24c,_0x4b1ec3);};}exports[_0xff7d('0x3')]=function(_0x1102a1){for(var _0x9d2555=0x0,_0x425341=events['length'];_0x9d2555<_0x425341;_0x9d2555++){var _0x275596=events[_0x9d2555];var _0x231514=createListener(_0xff7d('0x4')+_0x275596,_0x1102a1);FaxMessageEvents['on'](_0x275596,_0x231514);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5db8=['download','fax','faxmessage:create','put','update','/:id/accept','accept','/:id/reject','reject','delete','/:id','exports','multer','util','path','express','Router','fs-extra','../../config/environment','./faxMessage.controller','get','isAuthenticated','/describe','describe','/:id/download'];(function(_0x1e3c13,_0x533698){var _0x5f2497=function(_0x49da54){while(--_0x49da54){_0x1e3c13['push'](_0x1e3c13['shift']());}};_0x5f2497(++_0x533698);}(_0x5db8,0xbb));var _0x85db=function(_0x289c3e,_0x3614b5){_0x289c3e=_0x289c3e-0x0;var _0x25a4b3=_0x5db8[_0x289c3e];return _0x25a4b3;};'use strict';var multer=require(_0x85db('0x0'));var util=require(_0x85db('0x1'));var path=require(_0x85db('0x2'));var timeout=require('connect-timeout');var express=require(_0x85db('0x3'));var router=express[_0x85db('0x4')]();var fs_extra=require(_0x85db('0x5'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x85db('0x6'));var controller=require(_0x85db('0x7'));router[_0x85db('0x8')]('/',auth[_0x85db('0x9')](),controller['index']);router['get'](_0x85db('0xa'),auth[_0x85db('0x9')](),controller[_0x85db('0xb')]);router[_0x85db('0x8')]('/:id',auth[_0x85db('0x9')](),controller['show']);router[_0x85db('0x8')](_0x85db('0xc'),auth[_0x85db('0x9')](),controller[_0x85db('0xd')]);router['post']('/',auth['isAuthenticated'](),interaction['tracked'](_0x85db('0xe'),_0x85db('0xf')),controller['create']);router[_0x85db('0x10')]('/:id',auth[_0x85db('0x9')](),controller[_0x85db('0x11')]);router[_0x85db('0x10')](_0x85db('0x12'),auth[_0x85db('0x9')](),controller[_0x85db('0x13')]);router[_0x85db('0x10')](_0x85db('0x14'),auth[_0x85db('0x9')](),controller[_0x85db('0x15')]);router[_0x85db('0x16')](_0x85db('0x17'),auth[_0x85db('0x9')](),controller['destroy']);module[_0x85db('0x18')]=router;
\ No newline at end of file
+var _0x0bb5=['express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./faxMessage.controller','get','/describe','isAuthenticated','describe','show','/:id/download','download','post','tracked','fax','faxmessage:create','create','/:id','update','put','/:id/accept','accept','/:id/reject','reject','destroy','exports','multer','util'];(function(_0x108ba6,_0x3858e0){var _0x3b11b7=function(_0x385853){while(--_0x385853){_0x108ba6['push'](_0x108ba6['shift']());}};_0x3b11b7(++_0x3858e0);}(_0x0bb5,0x148));var _0x50bb=function(_0x57f35,_0x697104){_0x57f35=_0x57f35-0x0;var _0x114b41=_0x0bb5[_0x57f35];return _0x114b41;};'use strict';var multer=require(_0x50bb('0x0'));var util=require(_0x50bb('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0x50bb('0x2'));var router=express[_0x50bb('0x3')]();var fs_extra=require(_0x50bb('0x4'));var auth=require(_0x50bb('0x5'));var interaction=require(_0x50bb('0x6'));var config=require(_0x50bb('0x7'));var controller=require(_0x50bb('0x8'));router[_0x50bb('0x9')]('/',auth['isAuthenticated'](),controller['index']);router[_0x50bb('0x9')](_0x50bb('0xa'),auth[_0x50bb('0xb')](),controller[_0x50bb('0xc')]);router['get']('/:id',auth[_0x50bb('0xb')](),controller[_0x50bb('0xd')]);router[_0x50bb('0x9')](_0x50bb('0xe'),auth['isAuthenticated'](),controller[_0x50bb('0xf')]);router[_0x50bb('0x10')]('/',auth[_0x50bb('0xb')](),interaction[_0x50bb('0x11')](_0x50bb('0x12'),_0x50bb('0x13')),controller[_0x50bb('0x14')]);router['put'](_0x50bb('0x15'),auth['isAuthenticated'](),controller[_0x50bb('0x16')]);router[_0x50bb('0x17')](_0x50bb('0x18'),auth['isAuthenticated'](),controller[_0x50bb('0x19')]);router[_0x50bb('0x17')](_0x50bb('0x1a'),auth['isAuthenticated'](),controller[_0x50bb('0x1b')]);router['delete'](_0x50bb('0x15'),auth[_0x50bb('0xb')](),controller[_0x50bb('0x1c')]);module[_0x50bb('0x1d')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9b09=['beepall','INTEGER','sequelize','exports','name','STRING','ENUM'];(function(_0x122387,_0xd1fa31){var _0x42169f=function(_0x2e5e39){while(--_0x2e5e39){_0x122387['push'](_0x122387['shift']());}};_0x42169f(++_0xd1fa31);}(_0x9b09,0x1ad));var _0x99b0=function(_0x34b5ca,_0x594010){_0x34b5ca=_0x34b5ca-0x0;var _0x2d72c0=_0x9b09[_0x34b5ca];return _0x2d72c0;};'use strict';var Sequelize=require(_0x99b0('0x0'));module[_0x99b0('0x1')]={'name':{'type':Sequelize['STRING'],'unique':_0x99b0('0x2'),'allowNull':![],'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize[_0x99b0('0x3')]},'timeout':{'type':Sequelize['INTEGER'],'allowNull':![],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0x99b0('0x4')]('rrmemory',_0x99b0('0x5'),'roundrobin'),'allowNull':![]},'lastAgent':{'type':Sequelize[_0x99b0('0x6')],'defaultValue':0x0}};
\ No newline at end of file
+var _0x64cd=['rrmemory','beepall','roundrobin','INTEGER','sequelize','exports','STRING','ENUM'];(function(_0x300445,_0x5cf38b){var _0x171346=function(_0x128231){while(--_0x128231){_0x300445['push'](_0x300445['shift']());}};_0x171346(++_0x5cf38b);}(_0x64cd,0x194));var _0xd64c=function(_0x10b434,_0x521745){_0x10b434=_0x10b434-0x0;var _0x31050b=_0x64cd[_0x10b434];return _0x31050b;};'use strict';var Sequelize=require(_0xd64c('0x0'));module[_0xd64c('0x1')]={'name':{'type':Sequelize[_0xd64c('0x2')],'unique':'name','allowNull':![],'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize[_0xd64c('0x2')]},'timeout':{'type':Sequelize['INTEGER'],'allowNull':![],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0xd64c('0x3')](_0xd64c('0x4'),_0xd64c('0x5'),_0xd64c('0x6')),'allowNull':![]},'lastAgent':{'type':Sequelize[_0xd64c('0x7')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8316=['util','path','sox','ejs','lodash','squel','crypto','jsforce','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','socket.io-emitter','./faxQueue.socket','register','sendStatus','end','status','json','offset','undefined','limit','count','set','apply','reject','save','update','then','destroy','get','FaxQueues','UserProfileResource','error','stack','name','send','index','FaxQueue','fieldName','key','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','where','merge','type','VIRTUAL','filter','options','include','findAll','rows','catch','show','params','rawAttributes','includeAll','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','UserFaxQueue','FaxQueueId','findAndCountAll','UserId','faxPause','updatedAt','%s/%s','SIP','createdAt','getTeams','findOne','Team','addTeams','ids','User','Agents','online','voicePause','flatMap','sequelize','transaction','findOrCreate','removeTeams','select','field','tq.TeamId','from','join','user_has_teams','FaxQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','push','toString','QueryTypes','TeamId','includes','all','union','compact','isEmpty','forEach','emit','userFaxQueue:remove','addAgents','omit','spread','userFaxQueue:save','removeAgents','isArray','getAgents','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache'];(function(_0xa2dd10,_0x5bc89e){var _0x42cc37=function(_0x2d44cd){while(--_0x2d44cd){_0xa2dd10['push'](_0xa2dd10['shift']());}};_0x42cc37(++_0x5bc89e);}(_0x8316,0x125));var _0x6831=function(_0x1c5ffc,_0x224ceb){_0x1c5ffc=_0x1c5ffc-0x0;var _0x463939=_0x8316[_0x1c5ffc];return _0x463939;};'use strict';var emlformat=require(_0x6831('0x0'));var rimraf=require(_0x6831('0x1'));var zipdir=require(_0x6831('0x2'));var jsonpatch=require(_0x6831('0x3'));var rp=require(_0x6831('0x4'));var moment=require('moment');var BPromise=require(_0x6831('0x5'));var Mustache=require(_0x6831('0x6'));var util=require(_0x6831('0x7'));var path=require(_0x6831('0x8'));var sox=require(_0x6831('0x9'));var csv=require('to-csv');var ejs=require(_0x6831('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x6831('0xb'));var squel=require(_0x6831('0xc'));var crypto=require(_0x6831('0xd'));var jsforce=require(_0x6831('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x6831('0xf'));var querystring=require(_0x6831('0x10'));var Papa=require(_0x6831('0x11'));var Redis=require(_0x6831('0x12'));var authService=require(_0x6831('0x13'));var qs=require(_0x6831('0x14'));var as=require(_0x6831('0x15'));var hardwareService=require(_0x6831('0x16'));var logger=require(_0x6831('0x17'))(_0x6831('0x18'));var utils=require(_0x6831('0x19'));var config=require(_0x6831('0x1a'));var licenseUtil=require(_0x6831('0x1b'));var db=require(_0x6831('0x1c'))['db'];config[_0x6831('0x1d')]=_[_0x6831('0x1e')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x6831('0x1f'))(new Redis(config[_0x6831('0x1d')]));require(_0x6831('0x20'))[_0x6831('0x21')](socket);function respondWithStatusCode(_0x4d7f84,_0x2a3f8a){_0x2a3f8a=_0x2a3f8a||0xcc;return function(_0x1401c0){if(_0x1401c0){return _0x4d7f84[_0x6831('0x22')](_0x2a3f8a);}return _0x4d7f84['status'](_0x2a3f8a)[_0x6831('0x23')]();};}function respondWithResult(_0x4a1284,_0x193eb0){_0x193eb0=_0x193eb0||0xc8;return function(_0x4b8259){if(_0x4b8259){return _0x4a1284[_0x6831('0x24')](_0x193eb0)[_0x6831('0x25')](_0x4b8259);}};}function respondWithFilteredResult(_0x53e25a,_0x226068){return function(_0x1fecd7){if(_0x1fecd7){var _0x50b9b2=typeof _0x226068[_0x6831('0x26')]===_0x6831('0x27')&&typeof _0x226068[_0x6831('0x28')]===_0x6831('0x27');var _0x2e50d5=_0x1fecd7[_0x6831('0x29')];var _0x3422c2=_0x50b9b2?0x0:_0x226068[_0x6831('0x26')];var _0x2c5872=_0x50b9b2?_0x1fecd7[_0x6831('0x29')]:_0x226068[_0x6831('0x26')]+_0x226068['limit'];var _0x272941;if(_0x2c5872>=_0x2e50d5){_0x2c5872=_0x2e50d5;_0x272941=0xc8;}else{_0x272941=0xce;}_0x53e25a[_0x6831('0x24')](_0x272941);return _0x53e25a[_0x6831('0x2a')]('Content-Range',_0x3422c2+'-'+_0x2c5872+'/'+_0x2e50d5)[_0x6831('0x25')](_0x1fecd7);}return null;};}function patchUpdates(_0x3a4973){return function(_0x35d635){try{jsonpatch[_0x6831('0x2b')](_0x35d635,_0x3a4973,!![]);}catch(_0x126e72){return BPromise[_0x6831('0x2c')](_0x126e72);}return _0x35d635[_0x6831('0x2d')]();};}function saveUpdates(_0x463905,_0xcca3f7){return function(_0x352a16){if(_0x352a16){return _0x352a16[_0x6831('0x2e')](_0x463905)[_0x6831('0x2f')](function(_0x19aa48){return _0x19aa48;});}return null;};}function removeEntity(_0x42a79b,_0x523fab){return function(_0x226d87){if(_0x226d87){return _0x226d87[_0x6831('0x30')]()[_0x6831('0x2f')](function(){var _0x45f62e=_0x226d87[_0x6831('0x31')]({'plain':!![]});var _0x36f2d9=_0x6831('0x32');return db[_0x6831('0x33')][_0x6831('0x30')]({'where':{'type':_0x36f2d9,'resourceId':_0x45f62e['id']}})[_0x6831('0x2f')](function(){return _0x226d87;});})[_0x6831('0x2f')](function(){_0x42a79b[_0x6831('0x24')](0xcc)[_0x6831('0x23')]();});}};}function handleEntityNotFound(_0x366234,_0x500457){return function(_0x364e94){if(!_0x364e94){_0x366234[_0x6831('0x22')](0x194);}return _0x364e94;};}function handleError(_0x10e672,_0x32dc4c){_0x32dc4c=_0x32dc4c||0x1f4;return function(_0x4e8fe3){logger[_0x6831('0x34')](_0x4e8fe3[_0x6831('0x35')]);if(_0x4e8fe3[_0x6831('0x36')]){delete _0x4e8fe3[_0x6831('0x36')];}_0x10e672[_0x6831('0x24')](_0x32dc4c)[_0x6831('0x37')](_0x4e8fe3);};}exports[_0x6831('0x38')]=function(_0x4d7166,_0x5ebca2){var _0x256386={},_0x117165={},_0x4e8f72={'count':0x0,'rows':[]};var _0x4d12d3=_['map'](db[_0x6831('0x39')]['rawAttributes'],function(_0x293dba){return{'name':_0x293dba[_0x6831('0x3a')],'type':_0x293dba['type'][_0x6831('0x3b')]};});_0x117165[_0x6831('0x3c')]=_[_0x6831('0x3d')](_0x4d12d3,_0x6831('0x36'));_0x117165[_0x6831('0x3e')]=_[_0x6831('0x3f')](_0x4d7166[_0x6831('0x3e')]);_0x117165[_0x6831('0x40')]=_[_0x6831('0x41')](_0x117165[_0x6831('0x3c')],_0x117165[_0x6831('0x3e')]);_0x256386[_0x6831('0x42')]=_[_0x6831('0x41')](_0x117165[_0x6831('0x3c')],qs[_0x6831('0x43')](_0x4d7166['query'][_0x6831('0x43')]));_0x256386[_0x6831('0x42')]=_0x256386[_0x6831('0x42')][_0x6831('0x44')]?_0x256386[_0x6831('0x42')]:_0x117165[_0x6831('0x3c')];if(!_0x4d7166[_0x6831('0x3e')][_0x6831('0x45')](_0x6831('0x46'))){_0x256386[_0x6831('0x28')]=qs[_0x6831('0x28')](_0x4d7166[_0x6831('0x3e')][_0x6831('0x28')]);_0x256386[_0x6831('0x26')]=qs[_0x6831('0x26')](_0x4d7166[_0x6831('0x3e')]['offset']);}_0x256386[_0x6831('0x47')]=qs['sort'](_0x4d7166[_0x6831('0x3e')][_0x6831('0x48')]);_0x256386['where']=qs[_0x6831('0x40')](_[_0x6831('0x49')](_0x4d7166['query'],_0x117165['filters']),_0x4d12d3);if(_0x4d7166['query']['filter']){_0x256386[_0x6831('0x4a')]=_[_0x6831('0x4b')](_0x256386[_0x6831('0x4a')],{'$or':_[_0x6831('0x3d')](_0x4d12d3,function(_0x2de81c){if(_0x2de81c[_0x6831('0x4c')]!==_0x6831('0x4d')){var _0x2538da={};_0x2538da[_0x2de81c[_0x6831('0x36')]]={'$like':'%'+_0x4d7166[_0x6831('0x3e')][_0x6831('0x4e')]+'%'};return _0x2538da;}})});}_0x256386=_[_0x6831('0x4b')]({},_0x256386,_0x4d7166[_0x6831('0x4f')]);var _0x40305={'where':_0x256386[_0x6831('0x4a')]};return db[_0x6831('0x39')][_0x6831('0x29')](_0x40305)[_0x6831('0x2f')](function(_0x5389a6){_0x4e8f72[_0x6831('0x29')]=_0x5389a6;if(_0x4d7166['query']['includeAll']){_0x256386[_0x6831('0x50')]=[{'all':!![]}];}return db[_0x6831('0x39')][_0x6831('0x51')](_0x256386);})[_0x6831('0x2f')](function(_0x2616af){_0x4e8f72[_0x6831('0x52')]=_0x2616af;return _0x4e8f72;})[_0x6831('0x2f')](respondWithFilteredResult(_0x5ebca2,_0x256386))[_0x6831('0x53')](handleError(_0x5ebca2,null));};exports[_0x6831('0x54')]=function(_0x54c77b,_0x446c9a){var _0x283520={'raw':!![],'where':{'id':_0x54c77b[_0x6831('0x55')]['id']}},_0x15aabb={};_0x15aabb[_0x6831('0x3c')]=_[_0x6831('0x3f')](db[_0x6831('0x39')][_0x6831('0x56')]);_0x15aabb[_0x6831('0x3e')]=_[_0x6831('0x3f')](_0x54c77b[_0x6831('0x3e')]);_0x15aabb[_0x6831('0x40')]=_[_0x6831('0x41')](_0x15aabb[_0x6831('0x3c')],_0x15aabb[_0x6831('0x3e')]);_0x283520['attributes']=_['intersection'](_0x15aabb['model'],qs[_0x6831('0x43')](_0x54c77b[_0x6831('0x3e')][_0x6831('0x43')]));_0x283520[_0x6831('0x42')]=_0x283520['attributes'][_0x6831('0x44')]?_0x283520[_0x6831('0x42')]:_0x15aabb[_0x6831('0x3c')];if(_0x54c77b[_0x6831('0x3e')][_0x6831('0x57')]){_0x283520[_0x6831('0x50')]=[{'all':!![]}];}_0x283520=_[_0x6831('0x4b')]({},_0x283520,_0x54c77b[_0x6831('0x4f')]);return db[_0x6831('0x39')][_0x6831('0x58')](_0x283520)[_0x6831('0x2f')](handleEntityNotFound(_0x446c9a,null))[_0x6831('0x2f')](respondWithResult(_0x446c9a,null))[_0x6831('0x53')](handleError(_0x446c9a,null));};exports[_0x6831('0x59')]=function(_0x11263f,_0x1df900){return db[_0x6831('0x39')][_0x6831('0x59')](_0x11263f[_0x6831('0x5a')],{})['then'](function(_0x5f74bd){var _0x38ce98=_0x11263f['user']['get']({'plain':!![]});if(!_0x38ce98)throw new Error(_0x6831('0x5b'));if(_0x38ce98[_0x6831('0x5c')]===_0x6831('0x5d')){var _0x2936f6=_0x5f74bd[_0x6831('0x31')]({'plain':!![]});var _0x2cb25a=_0x6831('0x32');return db[_0x6831('0x5e')][_0x6831('0x58')]({'where':{'name':_0x2cb25a,'userProfileId':_0x38ce98[_0x6831('0x5f')]},'raw':!![]})[_0x6831('0x2f')](function(_0xb0257f){if(_0xb0257f&&_0xb0257f[_0x6831('0x60')]===0x0){return db[_0x6831('0x33')][_0x6831('0x59')]({'name':_0x2936f6[_0x6831('0x36')],'resourceId':_0x2936f6['id'],'type':_0xb0257f[_0x6831('0x36')],'sectionId':_0xb0257f['id']},{})[_0x6831('0x2f')](function(){return _0x5f74bd;});}else{return _0x5f74bd;}})[_0x6831('0x53')](function(_0x3e7513){logger[_0x6831('0x34')](_0x6831('0x61'),_0x3e7513);throw _0x3e7513;});}return _0x5f74bd;})['then'](respondWithResult(_0x1df900,0xc9))[_0x6831('0x53')](handleError(_0x1df900,null));};exports[_0x6831('0x2e')]=function(_0x450550,_0xd4bd5c){if(_0x450550[_0x6831('0x5a')]['id']){delete _0x450550[_0x6831('0x5a')]['id'];}return db[_0x6831('0x39')][_0x6831('0x58')]({'where':{'id':_0x450550[_0x6831('0x55')]['id']}})[_0x6831('0x2f')](handleEntityNotFound(_0xd4bd5c,null))[_0x6831('0x2f')](saveUpdates(_0x450550[_0x6831('0x5a')],null))[_0x6831('0x2f')](respondWithResult(_0xd4bd5c,null))[_0x6831('0x53')](handleError(_0xd4bd5c,null));};exports[_0x6831('0x30')]=function(_0x30197f,_0x25ae35){return db[_0x6831('0x39')][_0x6831('0x58')]({'where':{'id':_0x30197f[_0x6831('0x55')]['id']}})[_0x6831('0x2f')](handleEntityNotFound(_0x25ae35,null))[_0x6831('0x2f')](removeEntity(_0x25ae35,null))[_0x6831('0x53')](handleError(_0x25ae35,null));};exports[_0x6831('0x62')]=function(_0x4ef99c,_0x4b6bcf){return db[_0x6831('0x39')][_0x6831('0x62')]()[_0x6831('0x2f')](respondWithResult(_0x4b6bcf,null))['catch'](handleError(_0x4b6bcf,null));};exports['getMembers']=function(_0x57319a,_0x4ed9ce,_0xa4b7f5){var _0x18c0b2={'raw':!![],'where':{}},_0x1cbc4e={},_0x1384c9;return db['FaxQueue']['findOne']({'where':{'id':_0x57319a[_0x6831('0x55')]['id']}})[_0x6831('0x2f')](handleEntityNotFound(_0x4ed9ce,null))['then'](function(_0x500c35){if(_0x500c35){_0x1384c9=_0x500c35[_0x6831('0x31')]({'plain':!![]});_0x1cbc4e[_0x6831('0x3c')]=_[_0x6831('0x3f')](db[_0x6831('0x63')][_0x6831('0x56')]);_0x1cbc4e[_0x6831('0x3e')]=_[_0x6831('0x3f')](_0x57319a[_0x6831('0x3e')]);_0x1cbc4e[_0x6831('0x40')]=_[_0x6831('0x41')](_0x1cbc4e[_0x6831('0x3c')],_0x1cbc4e[_0x6831('0x3e')]);_0x18c0b2[_0x6831('0x42')]=_[_0x6831('0x41')](_0x1cbc4e[_0x6831('0x3c')],qs[_0x6831('0x43')](_0x57319a['query'][_0x6831('0x43')]));_0x18c0b2['attributes']=_0x18c0b2[_0x6831('0x42')][_0x6831('0x44')]?_0x18c0b2[_0x6831('0x42')]:_0x1cbc4e[_0x6831('0x3c')];if(!_0x57319a['query'][_0x6831('0x45')](_0x6831('0x46'))){_0x18c0b2[_0x6831('0x28')]=qs['limit'](_0x57319a[_0x6831('0x3e')]['limit']);_0x18c0b2[_0x6831('0x26')]=qs['offset'](_0x57319a[_0x6831('0x3e')]['offset']);}_0x18c0b2[_0x6831('0x47')]=qs[_0x6831('0x48')](_0x57319a[_0x6831('0x3e')][_0x6831('0x48')]);_0x18c0b2[_0x6831('0x4a')]=qs[_0x6831('0x40')](_[_0x6831('0x49')](_0x57319a[_0x6831('0x3e')],_0x1cbc4e[_0x6831('0x40')]));_0x18c0b2[_0x6831('0x4a')][_0x6831('0x64')]=_0x500c35['id'];if(_0x57319a['query'][_0x6831('0x4e')]){_0x18c0b2['where']=_[_0x6831('0x4b')](_0x18c0b2[_0x6831('0x4a')],{'$or':_[_0x6831('0x3d')](_0x18c0b2['attributes'],function(_0x2b449e){var _0x414b02={};_0x414b02[_0x2b449e]={'$like':'%'+_0x57319a[_0x6831('0x3e')]['filter']+'%'};return _0x414b02;})});}_0x18c0b2=_[_0x6831('0x4b')]({},_0x18c0b2,_0x57319a[_0x6831('0x4f')]);return db[_0x6831('0x63')][_0x6831('0x51')](_0x18c0b2);}})['then'](function(_0x26b185){if(_0x26b185){return db['User'][_0x6831('0x65')]({'where':{'id':_[_0x6831('0x3d')](_0x26b185,_0x6831('0x66')),'role':'agent'},'attributes':['id',_0x6831('0x36'),_0x6831('0x67'),_0x6831('0x68'),'createdAt']});}})[_0x6831('0x2f')](function(_0x48fa82){if(_0x48fa82){return{'count':_0x48fa82[_0x6831('0x29')],'rows':_[_0x6831('0x3d')](_0x48fa82[_0x6831('0x52')],function(_0x73aaea){return{'membername':_0x73aaea[_0x6831('0x36')],'UserId':_0x73aaea['id'],'queue_name':_0x1384c9[_0x6831('0x36')],'FaxQueueId':_0x1384c9['id'],'interface':util['format'](_0x6831('0x69'),_0x6831('0x6a'),_0x73aaea[_0x6831('0x36')]),'penalty':0x0,'paused':_0x73aaea[_0x6831('0x67')],'createdAt':_0x73aaea[_0x6831('0x6b')],'updatedAt':_0x73aaea[_0x6831('0x68')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x6831('0x2f')](respondWithFilteredResult(_0x4ed9ce,_0x18c0b2))[_0x6831('0x53')](handleError(_0x4ed9ce,null));};exports[_0x6831('0x6c')]=function(_0x1b46e3,_0x3ff722,_0x3b4ea0){var _0x4ff7f4={};var _0x2d6fbb={};var _0xffae42;var _0x3a2ffe;return db['FaxQueue'][_0x6831('0x6d')]({'where':{'id':_0x1b46e3[_0x6831('0x55')]['id']}})['then'](handleEntityNotFound(_0x3ff722,null))[_0x6831('0x2f')](function(_0xadf490){if(_0xadf490){_0xffae42=_0xadf490;_0x2d6fbb[_0x6831('0x3c')]=_[_0x6831('0x3f')](db[_0x6831('0x6e')]['rawAttributes']);_0x2d6fbb['query']=_['keys'](_0x1b46e3[_0x6831('0x3e')]);_0x2d6fbb[_0x6831('0x40')]=_[_0x6831('0x41')](_0x2d6fbb[_0x6831('0x3c')],_0x2d6fbb[_0x6831('0x3e')]);_0x4ff7f4[_0x6831('0x42')]=_[_0x6831('0x41')](_0x2d6fbb[_0x6831('0x3c')],qs[_0x6831('0x43')](_0x1b46e3[_0x6831('0x3e')]['fields']));_0x4ff7f4[_0x6831('0x42')]=_0x4ff7f4[_0x6831('0x42')][_0x6831('0x44')]?_0x4ff7f4[_0x6831('0x42')]:_0x2d6fbb[_0x6831('0x3c')];_0x4ff7f4[_0x6831('0x47')]=qs[_0x6831('0x48')](_0x1b46e3[_0x6831('0x3e')][_0x6831('0x48')]);_0x4ff7f4[_0x6831('0x4a')]=qs[_0x6831('0x40')](_[_0x6831('0x49')](_0x1b46e3[_0x6831('0x3e')],_0x2d6fbb['filters']));if(_0x1b46e3['query'][_0x6831('0x4e')]){_0x4ff7f4[_0x6831('0x4a')]=_[_0x6831('0x4b')](_0x4ff7f4['where'],{'$or':_[_0x6831('0x3d')](_0x4ff7f4['attributes'],function(_0xc64cce){var _0x1cd1df={};_0x1cd1df[_0xc64cce]={'$like':'%'+_0x1b46e3[_0x6831('0x3e')]['filter']+'%'};return _0x1cd1df;})});}_0x4ff7f4=_['merge']({},_0x4ff7f4,_0x1b46e3['options']);return _0xffae42[_0x6831('0x6c')](_0x4ff7f4);}})['then'](function(_0x3d6432){if(_0x3d6432){_0x3a2ffe=_0x3d6432['length'];if(!_0x1b46e3['query']['hasOwnProperty'](_0x6831('0x46'))){_0x4ff7f4[_0x6831('0x28')]=qs[_0x6831('0x28')](_0x1b46e3['query']['limit']);_0x4ff7f4[_0x6831('0x26')]=qs[_0x6831('0x26')](_0x1b46e3[_0x6831('0x3e')][_0x6831('0x26')]);}return _0xffae42[_0x6831('0x6c')](_0x4ff7f4);}})[_0x6831('0x2f')](function(_0x422cf5){if(_0x422cf5){return _0x422cf5?{'count':_0x3a2ffe,'rows':_0x422cf5}:null;}})[_0x6831('0x2f')](respondWithResult(_0x3ff722,null))['catch'](handleError(_0x3ff722,null));};exports[_0x6831('0x6f')]=function(_0x580920,_0x5dbd27,_0x65012a){var _0x538f50=_0x580920['body'][_0x6831('0x70')];return db['Team'][_0x6831('0x51')]({'where':{'id':_0x538f50},'attributes':['id'],'include':[{'model':db[_0x6831('0x71')],'as':_0x6831('0x72'),'attributes':['id',_0x6831('0x36'),_0x6831('0x73'),_0x6831('0x74'),'interface'],'raw':!![]}]})[_0x6831('0x2f')](function(_0x30f1a9){if(_0x30f1a9){var _0x320bc5=_[_0x6831('0x75')](_0x30f1a9,function(_0x18992f){var _0x75b2cc=_0x18992f['get']({'plain':!![]});return _0x75b2cc[_0x6831('0x72')];});return db[_0x6831('0x39')][_0x6831('0x58')]({'where':{'id':_0x580920['params']['id']}})[_0x6831('0x2f')](function(_0x5bd70d){return db[_0x6831('0x76')][_0x6831('0x77')](function(_0x551218){return _0x5bd70d[_0x6831('0x6f')](_0x538f50,{'transaction':_0x551218})['then'](function(){return BPromise['each'](_0x320bc5,function(_0x482b70){return db[_0x6831('0x63')][_0x6831('0x78')]({'where':{'UserId':_0x482b70['id'],'FaxQueueId':_0x580920[_0x6831('0x55')]['id']},'transaction':_0x551218});});})[_0x6831('0x2f')](function(){_0x320bc5['forEach'](function(_0x3ffa53){socket['emit']('userFaxQueue:save',{'UserId':_0x3ffa53['id'],'FaxQueueId':_0x5bd70d['id']});});});});});}})['then'](respondWithStatusCode(_0x5dbd27,null))[_0x6831('0x53')](handleError(_0x5dbd27,null));};exports[_0x6831('0x79')]=function(_0x5e1059,_0x16ebbe,_0x34611c){return db[_0x6831('0x6e')]['findAll']({'where':{'id':_0x5e1059[_0x6831('0x3e')][_0x6831('0x70')]},'attributes':['id'],'include':[{'model':db['User'],'as':'Agents','attributes':['id'],'raw':!![]}]})[_0x6831('0x2f')](handleEntityNotFound(_0x16ebbe,null))['then'](function(_0x17ce20){var _0x113dc6=_['map'](_0x17ce20,'id');var _0x558979=[];var _0x54222b=[];var _0x57aeb4=squel[_0x6831('0x7a')]();_0x57aeb4[_0x6831('0x7b')](_0x6831('0x7c'))[_0x6831('0x7d')]('team_has_fax_queues','tq')[_0x6831('0x7e')](_0x6831('0x7f'),'ut','ut.TeamId\x20=\x20tq.TeamId')['where'](_0x6831('0x80'),_0x5e1059[_0x6831('0x55')]['id']);for(var _0x1a4ea8=0x0;_0x1a4ea8<_0x17ce20[_0x6831('0x44')];_0x1a4ea8+=0x1){let _0x5be759=_0x17ce20[_0x1a4ea8];for(var _0x15f8a0=0x0;_0x15f8a0<_0x5be759[_0x6831('0x72')][_0x6831('0x44')];_0x15f8a0+=0x1){let _0x3459c7=_0x5be759[_0x6831('0x72')][_0x15f8a0];var _0x23cad1=_0x57aeb4[_0x6831('0x81')]();_0x23cad1[_0x6831('0x4a')](_0x6831('0x82'),_0x3459c7['id']);_0x54222b[_0x6831('0x83')](db[_0x6831('0x76')]['query'](_0x23cad1[_0x6831('0x84')](),{'type':db[_0x6831('0x76')][_0x6831('0x85')]['SELECT']})[_0x6831('0x2f')](function(_0x5b5d35){if(_0x5b5d35[_0x6831('0x44')]===0x1){return _0x3459c7['id'];}else{var _0x3b93aa=_['every'](_[_0x6831('0x3d')](_0x5b5d35,_0x6831('0x86')),function(_0x429f75){return _[_0x6831('0x87')](_0x113dc6,_0x429f75);});if(_0x3b93aa){return _0x3459c7['id'];}}}));}}return BPromise[_0x6831('0x88')](_0x54222b)[_0x6831('0x2f')](function(_0x487735){_0x558979=_(_0x558979)[_0x6831('0x89')](_0x487735)[_0x6831('0x8a')]()['value']();return db[_0x6831('0x39')][_0x6831('0x58')]({'where':{'id':_0x5e1059[_0x6831('0x55')]['id']}})[_0x6831('0x2f')](function(_0x3ac8fc){return db[_0x6831('0x76')][_0x6831('0x77')](function(_0x314dfa){return _0x3ac8fc['removeTeams'](_0x5e1059[_0x6831('0x3e')][_0x6831('0x70')],{'transaction':_0x314dfa})[_0x6831('0x2f')](function(){if(!_[_0x6831('0x8b')](_0x558979)){return _0x3ac8fc['removeAgents'](_0x558979,{'transaction':_0x314dfa});}})['then'](function(){_0x558979[_0x6831('0x8c')](function(_0x5771f4){socket[_0x6831('0x8d')](_0x6831('0x8e'),{'UserId':_0x5771f4,'FaxQueueId':_0x3ac8fc['id']});});});});});});})[_0x6831('0x2f')](respondWithStatusCode(_0x16ebbe,null))['catch'](handleError(_0x16ebbe,null));};exports[_0x6831('0x8f')]=function(_0x33aa73,_0x5691c6,_0x5d16ae){return db[_0x6831('0x39')][_0x6831('0x58')]({'where':{'id':_0x33aa73['params']['id']}})[_0x6831('0x2f')](handleEntityNotFound(_0x5691c6,null))[_0x6831('0x2f')](function(_0x40f34d){if(_0x40f34d){return _0x40f34d[_0x6831('0x8f')](_0x33aa73[_0x6831('0x5a')]['ids'],_[_0x6831('0x90')](_0x33aa73[_0x6831('0x5a')],[_0x6831('0x70'),'id'])||{})[_0x6831('0x91')](function(_0x1f7442){for(var _0x180947=0x0;_0x180947<_0x33aa73[_0x6831('0x5a')][_0x6831('0x70')][_0x6831('0x44')];_0x180947+=0x1){socket[_0x6831('0x8d')](_0x6831('0x92'),{'UserId':Number(_0x33aa73[_0x6831('0x5a')][_0x6831('0x70')][_0x180947]),'FaxQueueId':Number(_0x33aa73[_0x6831('0x55')]['id'])});}return _0x1f7442;});}})[_0x6831('0x2f')](respondWithResult(_0x5691c6,null))['catch'](handleError(_0x5691c6,null));};exports[_0x6831('0x93')]=function(_0x6c5319,_0x428d21,_0x3df08c){return db[_0x6831('0x39')][_0x6831('0x58')]({'where':{'id':_0x6c5319[_0x6831('0x55')]['id']}})[_0x6831('0x2f')](handleEntityNotFound(_0x428d21,null))[_0x6831('0x2f')](function(_0x40a759){if(_0x40a759){return _0x40a759[_0x6831('0x93')](_0x6c5319['query'][_0x6831('0x70')])[_0x6831('0x2f')](function(){if(_[_0x6831('0x94')](_0x6c5319[_0x6831('0x3e')]['ids'])){for(var _0xd7f2a6=0x0;_0xd7f2a6<_0x6c5319[_0x6831('0x3e')][_0x6831('0x70')][_0x6831('0x44')];_0xd7f2a6+=0x1){socket[_0x6831('0x8d')](_0x6831('0x8e'),{'UserId':Number(_0x6c5319['query'][_0x6831('0x70')][_0xd7f2a6]),'FaxQueueId':Number(_0x6c5319[_0x6831('0x55')]['id'])});}}else{socket[_0x6831('0x8d')](_0x6831('0x8e'),{'UserId':Number(_0x6c5319[_0x6831('0x3e')][_0x6831('0x70')]),'FaxQueueId':Number(_0x6c5319[_0x6831('0x55')]['id'])});}});}})[_0x6831('0x2f')](respondWithStatusCode(_0x428d21,null))[_0x6831('0x53')](handleError(_0x428d21,null));};exports[_0x6831('0x95')]=function(_0x1863c4,_0x46fdf7,_0xb3e803){var _0x395a09={};var _0x3c2d9b={};var _0x26a9b6;var _0x2b6c51;return db[_0x6831('0x39')]['findOne']({'where':{'id':_0x1863c4[_0x6831('0x55')]['id']}})[_0x6831('0x2f')](handleEntityNotFound(_0x46fdf7,null))[_0x6831('0x2f')](function(_0x551866){if(_0x551866){_0x26a9b6=_0x551866;_0x3c2d9b[_0x6831('0x3c')]=_[_0x6831('0x3f')](db[_0x6831('0x71')]['rawAttributes']);_0x3c2d9b[_0x6831('0x3e')]=_['keys'](_0x1863c4[_0x6831('0x3e')]);_0x3c2d9b['filters']=_['intersection'](_0x3c2d9b[_0x6831('0x3c')],_0x3c2d9b[_0x6831('0x3e')]);_0x395a09[_0x6831('0x42')]=_[_0x6831('0x41')](_0x3c2d9b['model'],qs[_0x6831('0x43')](_0x1863c4[_0x6831('0x3e')][_0x6831('0x43')]));_0x395a09[_0x6831('0x42')]=_0x395a09[_0x6831('0x42')][_0x6831('0x44')]?_0x395a09['attributes']:_0x3c2d9b[_0x6831('0x3c')];_0x395a09[_0x6831('0x47')]=qs[_0x6831('0x48')](_0x1863c4[_0x6831('0x3e')]['sort']);_0x395a09[_0x6831('0x4a')]=qs[_0x6831('0x40')](_[_0x6831('0x49')](_0x1863c4[_0x6831('0x3e')],_0x3c2d9b['filters']));if(_0x1863c4['query']['filter']){_0x395a09[_0x6831('0x4a')]=_['merge'](_0x395a09[_0x6831('0x4a')],{'$or':_[_0x6831('0x3d')](_0x395a09[_0x6831('0x42')],function(_0x288aea){var _0x4c01a3={};_0x4c01a3[_0x288aea]={'$like':'%'+_0x1863c4[_0x6831('0x3e')][_0x6831('0x4e')]+'%'};return _0x4c01a3;})});}_0x395a09=_[_0x6831('0x4b')]({},_0x395a09,_0x1863c4[_0x6831('0x4f')]);return _0x26a9b6[_0x6831('0x95')](_0x395a09);}})[_0x6831('0x2f')](function(_0x48c565){if(_0x48c565){_0x2b6c51=_0x48c565['length'];if(!_0x1863c4[_0x6831('0x3e')][_0x6831('0x45')](_0x6831('0x46'))){_0x395a09[_0x6831('0x28')]=qs[_0x6831('0x28')](_0x1863c4[_0x6831('0x3e')][_0x6831('0x28')]);_0x395a09[_0x6831('0x26')]=qs[_0x6831('0x26')](_0x1863c4[_0x6831('0x3e')]['offset']);}return _0x26a9b6[_0x6831('0x95')](_0x395a09);}})[_0x6831('0x2f')](function(_0x17076e){if(_0x17076e){return _0x17076e?{'count':_0x2b6c51,'rows':_0x17076e}:null;}})[_0x6831('0x2f')](respondWithResult(_0x46fdf7,null))[_0x6831('0x53')](handleError(_0x46fdf7,null));};
\ No newline at end of file
+var _0xc926=['findOrCreate','forEach','emit','userFaxQueue:save','select','from','join','clone','ut.UserId\x20=\x20?','toString','QueryTypes','SELECT','every','includes','all','union','compact','value','isEmpty','removeAgents','addAgents','omit','isArray','userFaxQueue:remove','getAgents','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','redis','defaults','localhost','socket.io-emitter','sendStatus','status','json','offset','limit','count','set','Content-Range','apply','reject','save','destroy','then','FaxQueues','UserProfileResource','end','error','stack','name','map','rawAttributes','type','key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','filter','options','includeAll','include','FaxQueue','findAll','rows','catch','show','params','keys','find','create','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','body','describe','getMembers','UserFaxQueue','FaxQueueId','User','findAndCountAll','UserId','agent','updatedAt','createdAt','%s/%s','SIP','faxPause','findOne','Team','ids','voicePause','interface','flatMap','Agents','sequelize','transaction','addTeams','each'];(function(_0x2d02e3,_0x48ed22){var _0x3fec3c=function(_0x2a88d0){while(--_0x2a88d0){_0x2d02e3['push'](_0x2d02e3['shift']());}};_0x3fec3c(++_0x48ed22);}(_0xc926,0x131));var _0x6c92=function(_0x1fd5cc,_0x3ebcdb){_0x1fd5cc=_0x1fd5cc-0x0;var _0x4f9286=_0xc926[_0x1fd5cc];return _0x4f9286;};'use strict';var emlformat=require(_0x6c92('0x0'));var rimraf=require(_0x6c92('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x6c92('0x2'));var rp=require(_0x6c92('0x3'));var moment=require(_0x6c92('0x4'));var BPromise=require(_0x6c92('0x5'));var Mustache=require('mustache');var util=require(_0x6c92('0x6'));var path=require(_0x6c92('0x7'));var sox=require(_0x6c92('0x8'));var csv=require(_0x6c92('0x9'));var ejs=require(_0x6c92('0xa'));var fs=require('fs');var fs_extra=require(_0x6c92('0xb'));var _=require(_0x6c92('0xc'));var squel=require(_0x6c92('0xd'));var crypto=require('crypto');var jsforce=require(_0x6c92('0xe'));var deskjs=require(_0x6c92('0xf'));var toCsv=require(_0x6c92('0x9'));var querystring=require(_0x6c92('0x10'));var Papa=require(_0x6c92('0x11'));var Redis=require(_0x6c92('0x12'));var authService=require(_0x6c92('0x13'));var qs=require(_0x6c92('0x14'));var as=require(_0x6c92('0x15'));var hardwareService=require(_0x6c92('0x16'));var logger=require(_0x6c92('0x17'))(_0x6c92('0x18'));var utils=require('../../config/utils');var config=require(_0x6c92('0x19'));var licenseUtil=require(_0x6c92('0x1a'));var db=require('../../mysqldb')['db'];config[_0x6c92('0x1b')]=_[_0x6c92('0x1c')](config[_0x6c92('0x1b')],{'host':_0x6c92('0x1d'),'port':0x18eb});var socket=require(_0x6c92('0x1e'))(new Redis(config[_0x6c92('0x1b')]));require('./faxQueue.socket')['register'](socket);function respondWithStatusCode(_0x12c9c1,_0x3b0935){_0x3b0935=_0x3b0935||0xcc;return function(_0x1b4fb9){if(_0x1b4fb9){return _0x12c9c1[_0x6c92('0x1f')](_0x3b0935);}return _0x12c9c1['status'](_0x3b0935)['end']();};}function respondWithResult(_0x499ac4,_0x41ed50){_0x41ed50=_0x41ed50||0xc8;return function(_0x47a1e3){if(_0x47a1e3){return _0x499ac4[_0x6c92('0x20')](_0x41ed50)[_0x6c92('0x21')](_0x47a1e3);}};}function respondWithFilteredResult(_0x391866,_0x4aa2f0){return function(_0x2c9de6){if(_0x2c9de6){var _0x1393cd=typeof _0x4aa2f0[_0x6c92('0x22')]==='undefined'&&typeof _0x4aa2f0[_0x6c92('0x23')]==='undefined';var _0x5890ba=_0x2c9de6[_0x6c92('0x24')];var _0x1b33dd=_0x1393cd?0x0:_0x4aa2f0[_0x6c92('0x22')];var _0x5330e5=_0x1393cd?_0x2c9de6[_0x6c92('0x24')]:_0x4aa2f0['offset']+_0x4aa2f0[_0x6c92('0x23')];var _0x1236b0;if(_0x5330e5>=_0x5890ba){_0x5330e5=_0x5890ba;_0x1236b0=0xc8;}else{_0x1236b0=0xce;}_0x391866[_0x6c92('0x20')](_0x1236b0);return _0x391866[_0x6c92('0x25')](_0x6c92('0x26'),_0x1b33dd+'-'+_0x5330e5+'/'+_0x5890ba)[_0x6c92('0x21')](_0x2c9de6);}return null;};}function patchUpdates(_0x19839f){return function(_0x1c5231){try{jsonpatch[_0x6c92('0x27')](_0x1c5231,_0x19839f,!![]);}catch(_0x2dd344){return BPromise[_0x6c92('0x28')](_0x2dd344);}return _0x1c5231[_0x6c92('0x29')]();};}function saveUpdates(_0x1673ca,_0x10d967){return function(_0x41324c){if(_0x41324c){return _0x41324c['update'](_0x1673ca)['then'](function(_0x319d1f){return _0x319d1f;});}return null;};}function removeEntity(_0x414e64,_0x4804f5){return function(_0x4b93e7){if(_0x4b93e7){return _0x4b93e7[_0x6c92('0x2a')]()[_0x6c92('0x2b')](function(){var _0x49bbe2=_0x4b93e7['get']({'plain':!![]});var _0x664b3c=_0x6c92('0x2c');return db[_0x6c92('0x2d')]['destroy']({'where':{'type':_0x664b3c,'resourceId':_0x49bbe2['id']}})[_0x6c92('0x2b')](function(){return _0x4b93e7;});})[_0x6c92('0x2b')](function(){_0x414e64[_0x6c92('0x20')](0xcc)[_0x6c92('0x2e')]();});}};}function handleEntityNotFound(_0x191953,_0x48e709){return function(_0x17dcdd){if(!_0x17dcdd){_0x191953[_0x6c92('0x1f')](0x194);}return _0x17dcdd;};}function handleError(_0x20985f,_0x33c08f){_0x33c08f=_0x33c08f||0x1f4;return function(_0x114d57){logger[_0x6c92('0x2f')](_0x114d57[_0x6c92('0x30')]);if(_0x114d57[_0x6c92('0x31')]){delete _0x114d57['name'];}_0x20985f['status'](_0x33c08f)['send'](_0x114d57);};}exports['index']=function(_0x266b23,_0x5b0d4f){var _0x347522={},_0x26b36d={},_0x4fe121={'count':0x0,'rows':[]};var _0x33e98c=_[_0x6c92('0x32')](db['FaxQueue'][_0x6c92('0x33')],function(_0xf5bceb){return{'name':_0xf5bceb['fieldName'],'type':_0xf5bceb[_0x6c92('0x34')][_0x6c92('0x35')]};});_0x26b36d[_0x6c92('0x36')]=_[_0x6c92('0x32')](_0x33e98c,'name');_0x26b36d['query']=_['keys'](_0x266b23[_0x6c92('0x37')]);_0x26b36d[_0x6c92('0x38')]=_[_0x6c92('0x39')](_0x26b36d['model'],_0x26b36d[_0x6c92('0x37')]);_0x347522[_0x6c92('0x3a')]=_[_0x6c92('0x39')](_0x26b36d[_0x6c92('0x36')],qs[_0x6c92('0x3b')](_0x266b23['query'][_0x6c92('0x3b')]));_0x347522['attributes']=_0x347522[_0x6c92('0x3a')][_0x6c92('0x3c')]?_0x347522[_0x6c92('0x3a')]:_0x26b36d[_0x6c92('0x36')];if(!_0x266b23[_0x6c92('0x37')][_0x6c92('0x3d')](_0x6c92('0x3e'))){_0x347522['limit']=qs[_0x6c92('0x23')](_0x266b23[_0x6c92('0x37')]['limit']);_0x347522['offset']=qs[_0x6c92('0x22')](_0x266b23[_0x6c92('0x37')][_0x6c92('0x22')]);}_0x347522[_0x6c92('0x3f')]=qs[_0x6c92('0x40')](_0x266b23[_0x6c92('0x37')][_0x6c92('0x40')]);_0x347522[_0x6c92('0x41')]=qs[_0x6c92('0x38')](_[_0x6c92('0x42')](_0x266b23['query'],_0x26b36d['filters']),_0x33e98c);if(_0x266b23[_0x6c92('0x37')]['filter']){_0x347522[_0x6c92('0x41')]=_[_0x6c92('0x43')](_0x347522['where'],{'$or':_[_0x6c92('0x32')](_0x33e98c,function(_0x4b7c1d){if(_0x4b7c1d[_0x6c92('0x34')]!==_0x6c92('0x44')){var _0x52e463={};_0x52e463[_0x4b7c1d['name']]={'$like':'%'+_0x266b23[_0x6c92('0x37')][_0x6c92('0x45')]+'%'};return _0x52e463;}})});}_0x347522=_[_0x6c92('0x43')]({},_0x347522,_0x266b23[_0x6c92('0x46')]);var _0x4cf2eb={'where':_0x347522['where']};return db['FaxQueue'][_0x6c92('0x24')](_0x4cf2eb)[_0x6c92('0x2b')](function(_0x2a9129){_0x4fe121[_0x6c92('0x24')]=_0x2a9129;if(_0x266b23[_0x6c92('0x37')][_0x6c92('0x47')]){_0x347522[_0x6c92('0x48')]=[{'all':!![]}];}return db[_0x6c92('0x49')][_0x6c92('0x4a')](_0x347522);})[_0x6c92('0x2b')](function(_0x2d34df){_0x4fe121[_0x6c92('0x4b')]=_0x2d34df;return _0x4fe121;})[_0x6c92('0x2b')](respondWithFilteredResult(_0x5b0d4f,_0x347522))[_0x6c92('0x4c')](handleError(_0x5b0d4f,null));};exports[_0x6c92('0x4d')]=function(_0x183784,_0x23547d){var _0x3adea5={'raw':!![],'where':{'id':_0x183784[_0x6c92('0x4e')]['id']}},_0x1894f5={};_0x1894f5[_0x6c92('0x36')]=_[_0x6c92('0x4f')](db[_0x6c92('0x49')][_0x6c92('0x33')]);_0x1894f5['query']=_[_0x6c92('0x4f')](_0x183784[_0x6c92('0x37')]);_0x1894f5[_0x6c92('0x38')]=_[_0x6c92('0x39')](_0x1894f5[_0x6c92('0x36')],_0x1894f5[_0x6c92('0x37')]);_0x3adea5[_0x6c92('0x3a')]=_[_0x6c92('0x39')](_0x1894f5[_0x6c92('0x36')],qs[_0x6c92('0x3b')](_0x183784[_0x6c92('0x37')][_0x6c92('0x3b')]));_0x3adea5[_0x6c92('0x3a')]=_0x3adea5[_0x6c92('0x3a')][_0x6c92('0x3c')]?_0x3adea5['attributes']:_0x1894f5['model'];if(_0x183784[_0x6c92('0x37')]['includeAll']){_0x3adea5[_0x6c92('0x48')]=[{'all':!![]}];}_0x3adea5=_[_0x6c92('0x43')]({},_0x3adea5,_0x183784[_0x6c92('0x46')]);return db[_0x6c92('0x49')][_0x6c92('0x50')](_0x3adea5)[_0x6c92('0x2b')](handleEntityNotFound(_0x23547d,null))[_0x6c92('0x2b')](respondWithResult(_0x23547d,null))[_0x6c92('0x4c')](handleError(_0x23547d,null));};exports[_0x6c92('0x51')]=function(_0x4bc945,_0x173ca6){return db[_0x6c92('0x49')]['create'](_0x4bc945['body'],{})[_0x6c92('0x2b')](function(_0x5d8fb9){var _0x2cbd3d=_0x4bc945[_0x6c92('0x52')][_0x6c92('0x53')]({'plain':!![]});if(!_0x2cbd3d)throw new Error(_0x6c92('0x54'));if(_0x2cbd3d[_0x6c92('0x55')]==='user'){var _0x505845=_0x5d8fb9[_0x6c92('0x53')]({'plain':!![]});var _0x272b0a=_0x6c92('0x2c');return db['UserProfileSection'][_0x6c92('0x50')]({'where':{'name':_0x272b0a,'userProfileId':_0x2cbd3d[_0x6c92('0x56')]},'raw':!![]})['then'](function(_0x57200a){if(_0x57200a&&_0x57200a[_0x6c92('0x57')]===0x0){return db[_0x6c92('0x2d')][_0x6c92('0x51')]({'name':_0x505845[_0x6c92('0x31')],'resourceId':_0x505845['id'],'type':_0x57200a[_0x6c92('0x31')],'sectionId':_0x57200a['id']},{})[_0x6c92('0x2b')](function(){return _0x5d8fb9;});}else{return _0x5d8fb9;}})[_0x6c92('0x4c')](function(_0x542e1c){logger[_0x6c92('0x2f')](_0x6c92('0x58'),_0x542e1c);throw _0x542e1c;});}return _0x5d8fb9;})[_0x6c92('0x2b')](respondWithResult(_0x173ca6,0xc9))[_0x6c92('0x4c')](handleError(_0x173ca6,null));};exports[_0x6c92('0x59')]=function(_0x2b65f2,_0x20af25){if(_0x2b65f2['body']['id']){delete _0x2b65f2[_0x6c92('0x5a')]['id'];}return db['FaxQueue'][_0x6c92('0x50')]({'where':{'id':_0x2b65f2[_0x6c92('0x4e')]['id']}})[_0x6c92('0x2b')](handleEntityNotFound(_0x20af25,null))[_0x6c92('0x2b')](saveUpdates(_0x2b65f2[_0x6c92('0x5a')],null))[_0x6c92('0x2b')](respondWithResult(_0x20af25,null))[_0x6c92('0x4c')](handleError(_0x20af25,null));};exports['destroy']=function(_0x48a240,_0xbef254){return db[_0x6c92('0x49')]['find']({'where':{'id':_0x48a240[_0x6c92('0x4e')]['id']}})[_0x6c92('0x2b')](handleEntityNotFound(_0xbef254,null))['then'](removeEntity(_0xbef254,null))['catch'](handleError(_0xbef254,null));};exports['describe']=function(_0x104584,_0x3057e9){return db[_0x6c92('0x49')][_0x6c92('0x5b')]()[_0x6c92('0x2b')](respondWithResult(_0x3057e9,null))['catch'](handleError(_0x3057e9,null));};exports[_0x6c92('0x5c')]=function(_0x2a4e7f,_0x3ea46f,_0x4be6b6){var _0x5c923a={'raw':!![],'where':{}},_0x344d7f={},_0x40f8a1;return db[_0x6c92('0x49')]['findOne']({'where':{'id':_0x2a4e7f[_0x6c92('0x4e')]['id']}})['then'](handleEntityNotFound(_0x3ea46f,null))['then'](function(_0x33ee48){if(_0x33ee48){_0x40f8a1=_0x33ee48[_0x6c92('0x53')]({'plain':!![]});_0x344d7f[_0x6c92('0x36')]=_[_0x6c92('0x4f')](db[_0x6c92('0x5d')]['rawAttributes']);_0x344d7f[_0x6c92('0x37')]=_[_0x6c92('0x4f')](_0x2a4e7f[_0x6c92('0x37')]);_0x344d7f[_0x6c92('0x38')]=_['intersection'](_0x344d7f[_0x6c92('0x36')],_0x344d7f[_0x6c92('0x37')]);_0x5c923a[_0x6c92('0x3a')]=_[_0x6c92('0x39')](_0x344d7f['model'],qs[_0x6c92('0x3b')](_0x2a4e7f['query'][_0x6c92('0x3b')]));_0x5c923a[_0x6c92('0x3a')]=_0x5c923a[_0x6c92('0x3a')]['length']?_0x5c923a['attributes']:_0x344d7f[_0x6c92('0x36')];if(!_0x2a4e7f['query'][_0x6c92('0x3d')](_0x6c92('0x3e'))){_0x5c923a[_0x6c92('0x23')]=qs[_0x6c92('0x23')](_0x2a4e7f[_0x6c92('0x37')]['limit']);_0x5c923a[_0x6c92('0x22')]=qs[_0x6c92('0x22')](_0x2a4e7f[_0x6c92('0x37')][_0x6c92('0x22')]);}_0x5c923a[_0x6c92('0x3f')]=qs[_0x6c92('0x40')](_0x2a4e7f['query']['sort']);_0x5c923a['where']=qs[_0x6c92('0x38')](_[_0x6c92('0x42')](_0x2a4e7f['query'],_0x344d7f[_0x6c92('0x38')]));_0x5c923a[_0x6c92('0x41')][_0x6c92('0x5e')]=_0x33ee48['id'];if(_0x2a4e7f['query'][_0x6c92('0x45')]){_0x5c923a['where']=_['merge'](_0x5c923a[_0x6c92('0x41')],{'$or':_[_0x6c92('0x32')](_0x5c923a[_0x6c92('0x3a')],function(_0x5d4884){var _0x203861={};_0x203861[_0x5d4884]={'$like':'%'+_0x2a4e7f[_0x6c92('0x37')][_0x6c92('0x45')]+'%'};return _0x203861;})});}_0x5c923a=_[_0x6c92('0x43')]({},_0x5c923a,_0x2a4e7f[_0x6c92('0x46')]);return db[_0x6c92('0x5d')][_0x6c92('0x4a')](_0x5c923a);}})['then'](function(_0x59320e){if(_0x59320e){return db[_0x6c92('0x5f')][_0x6c92('0x60')]({'where':{'id':_[_0x6c92('0x32')](_0x59320e,_0x6c92('0x61')),'role':_0x6c92('0x62')},'attributes':['id',_0x6c92('0x31'),'faxPause',_0x6c92('0x63'),_0x6c92('0x64')]});}})[_0x6c92('0x2b')](function(_0x227aa5){if(_0x227aa5){return{'count':_0x227aa5[_0x6c92('0x24')],'rows':_[_0x6c92('0x32')](_0x227aa5[_0x6c92('0x4b')],function(_0x1c99fd){return{'membername':_0x1c99fd[_0x6c92('0x31')],'UserId':_0x1c99fd['id'],'queue_name':_0x40f8a1[_0x6c92('0x31')],'FaxQueueId':_0x40f8a1['id'],'interface':util['format'](_0x6c92('0x65'),_0x6c92('0x66'),_0x1c99fd[_0x6c92('0x31')]),'penalty':0x0,'paused':_0x1c99fd[_0x6c92('0x67')],'createdAt':_0x1c99fd[_0x6c92('0x64')],'updatedAt':_0x1c99fd[_0x6c92('0x63')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x6c92('0x2b')](respondWithFilteredResult(_0x3ea46f,_0x5c923a))[_0x6c92('0x4c')](handleError(_0x3ea46f,null));};exports['getTeams']=function(_0x453630,_0x173167,_0x2c7b8b){var _0x573229={};var _0x5ce126={};var _0x5b8e51;var _0x9b1edd;return db[_0x6c92('0x49')][_0x6c92('0x68')]({'where':{'id':_0x453630[_0x6c92('0x4e')]['id']}})[_0x6c92('0x2b')](handleEntityNotFound(_0x173167,null))[_0x6c92('0x2b')](function(_0x12232c){if(_0x12232c){_0x5b8e51=_0x12232c;_0x5ce126[_0x6c92('0x36')]=_[_0x6c92('0x4f')](db[_0x6c92('0x69')][_0x6c92('0x33')]);_0x5ce126[_0x6c92('0x37')]=_[_0x6c92('0x4f')](_0x453630[_0x6c92('0x37')]);_0x5ce126[_0x6c92('0x38')]=_['intersection'](_0x5ce126[_0x6c92('0x36')],_0x5ce126[_0x6c92('0x37')]);_0x573229[_0x6c92('0x3a')]=_[_0x6c92('0x39')](_0x5ce126[_0x6c92('0x36')],qs['fields'](_0x453630[_0x6c92('0x37')][_0x6c92('0x3b')]));_0x573229[_0x6c92('0x3a')]=_0x573229['attributes']['length']?_0x573229[_0x6c92('0x3a')]:_0x5ce126['model'];_0x573229[_0x6c92('0x3f')]=qs[_0x6c92('0x40')](_0x453630[_0x6c92('0x37')][_0x6c92('0x40')]);_0x573229['where']=qs['filters'](_[_0x6c92('0x42')](_0x453630[_0x6c92('0x37')],_0x5ce126[_0x6c92('0x38')]));if(_0x453630[_0x6c92('0x37')][_0x6c92('0x45')]){_0x573229[_0x6c92('0x41')]=_[_0x6c92('0x43')](_0x573229[_0x6c92('0x41')],{'$or':_[_0x6c92('0x32')](_0x573229[_0x6c92('0x3a')],function(_0x2372ca){var _0x2c9e49={};_0x2c9e49[_0x2372ca]={'$like':'%'+_0x453630['query'][_0x6c92('0x45')]+'%'};return _0x2c9e49;})});}_0x573229=_[_0x6c92('0x43')]({},_0x573229,_0x453630[_0x6c92('0x46')]);return _0x5b8e51['getTeams'](_0x573229);}})[_0x6c92('0x2b')](function(_0x58daee){if(_0x58daee){_0x9b1edd=_0x58daee[_0x6c92('0x3c')];if(!_0x453630[_0x6c92('0x37')][_0x6c92('0x3d')](_0x6c92('0x3e'))){_0x573229['limit']=qs[_0x6c92('0x23')](_0x453630[_0x6c92('0x37')][_0x6c92('0x23')]);_0x573229[_0x6c92('0x22')]=qs[_0x6c92('0x22')](_0x453630[_0x6c92('0x37')][_0x6c92('0x22')]);}return _0x5b8e51['getTeams'](_0x573229);}})[_0x6c92('0x2b')](function(_0x1795a9){if(_0x1795a9){return _0x1795a9?{'count':_0x9b1edd,'rows':_0x1795a9}:null;}})[_0x6c92('0x2b')](respondWithResult(_0x173167,null))[_0x6c92('0x4c')](handleError(_0x173167,null));};exports['addTeams']=function(_0x3ee266,_0xc58e4a,_0x4b3a5b){var _0x4f6ef2=_0x3ee266[_0x6c92('0x5a')][_0x6c92('0x6a')];return db['Team'][_0x6c92('0x4a')]({'where':{'id':_0x4f6ef2},'attributes':['id'],'include':[{'model':db[_0x6c92('0x5f')],'as':'Agents','attributes':['id',_0x6c92('0x31'),'online',_0x6c92('0x6b'),_0x6c92('0x6c')],'raw':!![]}]})[_0x6c92('0x2b')](function(_0x4d1240){if(_0x4d1240){var _0x4861af=_[_0x6c92('0x6d')](_0x4d1240,function(_0xb48844){var _0x473d44=_0xb48844[_0x6c92('0x53')]({'plain':!![]});return _0x473d44[_0x6c92('0x6e')];});return db[_0x6c92('0x49')][_0x6c92('0x50')]({'where':{'id':_0x3ee266[_0x6c92('0x4e')]['id']}})['then'](function(_0x41c5e5){return db[_0x6c92('0x6f')][_0x6c92('0x70')](function(_0xaf860a){return _0x41c5e5[_0x6c92('0x71')](_0x4f6ef2,{'transaction':_0xaf860a})[_0x6c92('0x2b')](function(){return BPromise[_0x6c92('0x72')](_0x4861af,function(_0x468d59){return db[_0x6c92('0x5d')][_0x6c92('0x73')]({'where':{'UserId':_0x468d59['id'],'FaxQueueId':_0x3ee266[_0x6c92('0x4e')]['id']},'transaction':_0xaf860a});});})[_0x6c92('0x2b')](function(){_0x4861af[_0x6c92('0x74')](function(_0x1a35b4){socket[_0x6c92('0x75')](_0x6c92('0x76'),{'UserId':_0x1a35b4['id'],'FaxQueueId':_0x41c5e5['id']});});});});});}})[_0x6c92('0x2b')](respondWithStatusCode(_0xc58e4a,null))['catch'](handleError(_0xc58e4a,null));};exports['removeTeams']=function(_0x1f814f,_0x5997b0,_0x3737e2){return db[_0x6c92('0x69')][_0x6c92('0x4a')]({'where':{'id':_0x1f814f['query'][_0x6c92('0x6a')]},'attributes':['id'],'include':[{'model':db[_0x6c92('0x5f')],'as':_0x6c92('0x6e'),'attributes':['id'],'raw':!![]}]})['then'](handleEntityNotFound(_0x5997b0,null))[_0x6c92('0x2b')](function(_0x53f2d5){var _0x106086=_['map'](_0x53f2d5,'id');var _0xed0844=[];var _0x5bbf98=[];var _0x6f24ee=squel[_0x6c92('0x77')]();_0x6f24ee['field']('tq.TeamId')[_0x6c92('0x78')]('team_has_fax_queues','tq')[_0x6c92('0x79')]('user_has_teams','ut','ut.TeamId\x20=\x20tq.TeamId')[_0x6c92('0x41')]('FaxQueueId\x20=\x20?',_0x1f814f[_0x6c92('0x4e')]['id']);for(var _0x16b8d3=0x0;_0x16b8d3<_0x53f2d5[_0x6c92('0x3c')];_0x16b8d3+=0x1){let _0x520e05=_0x53f2d5[_0x16b8d3];for(var _0x41f818=0x0;_0x41f818<_0x520e05[_0x6c92('0x6e')][_0x6c92('0x3c')];_0x41f818+=0x1){let _0x2c171e=_0x520e05['Agents'][_0x41f818];var _0xd136f8=_0x6f24ee[_0x6c92('0x7a')]();_0xd136f8[_0x6c92('0x41')](_0x6c92('0x7b'),_0x2c171e['id']);_0x5bbf98['push'](db[_0x6c92('0x6f')]['query'](_0xd136f8[_0x6c92('0x7c')](),{'type':db['sequelize'][_0x6c92('0x7d')][_0x6c92('0x7e')]})[_0x6c92('0x2b')](function(_0x42a6a9){if(_0x42a6a9[_0x6c92('0x3c')]===0x1){return _0x2c171e['id'];}else{var _0x4079e3=_[_0x6c92('0x7f')](_[_0x6c92('0x32')](_0x42a6a9,'TeamId'),function(_0x539af8){return _[_0x6c92('0x80')](_0x106086,_0x539af8);});if(_0x4079e3){return _0x2c171e['id'];}}}));}}return BPromise[_0x6c92('0x81')](_0x5bbf98)[_0x6c92('0x2b')](function(_0x2542ee){_0xed0844=_(_0xed0844)[_0x6c92('0x82')](_0x2542ee)[_0x6c92('0x83')]()[_0x6c92('0x84')]();return db[_0x6c92('0x49')][_0x6c92('0x50')]({'where':{'id':_0x1f814f[_0x6c92('0x4e')]['id']}})[_0x6c92('0x2b')](function(_0x511a7d){return db[_0x6c92('0x6f')][_0x6c92('0x70')](function(_0x44513b){return _0x511a7d['removeTeams'](_0x1f814f[_0x6c92('0x37')][_0x6c92('0x6a')],{'transaction':_0x44513b})[_0x6c92('0x2b')](function(){if(!_[_0x6c92('0x85')](_0xed0844)){return _0x511a7d[_0x6c92('0x86')](_0xed0844,{'transaction':_0x44513b});}})[_0x6c92('0x2b')](function(){_0xed0844[_0x6c92('0x74')](function(_0x11f23c){socket[_0x6c92('0x75')]('userFaxQueue:remove',{'UserId':_0x11f23c,'FaxQueueId':_0x511a7d['id']});});});});});});})['then'](respondWithStatusCode(_0x5997b0,null))[_0x6c92('0x4c')](handleError(_0x5997b0,null));};exports[_0x6c92('0x87')]=function(_0x571b80,_0x2f029c,_0x4ac5d6){return db[_0x6c92('0x49')][_0x6c92('0x50')]({'where':{'id':_0x571b80[_0x6c92('0x4e')]['id']}})['then'](handleEntityNotFound(_0x2f029c,null))[_0x6c92('0x2b')](function(_0x3c7812){if(_0x3c7812){return _0x3c7812[_0x6c92('0x87')](_0x571b80[_0x6c92('0x5a')][_0x6c92('0x6a')],_[_0x6c92('0x88')](_0x571b80[_0x6c92('0x5a')],['ids','id'])||{})['spread'](function(_0x56b71b){for(var _0x31ebb7=0x0;_0x31ebb7<_0x571b80[_0x6c92('0x5a')]['ids'][_0x6c92('0x3c')];_0x31ebb7+=0x1){socket['emit'](_0x6c92('0x76'),{'UserId':Number(_0x571b80['body'][_0x6c92('0x6a')][_0x31ebb7]),'FaxQueueId':Number(_0x571b80[_0x6c92('0x4e')]['id'])});}return _0x56b71b;});}})[_0x6c92('0x2b')](respondWithResult(_0x2f029c,null))[_0x6c92('0x4c')](handleError(_0x2f029c,null));};exports[_0x6c92('0x86')]=function(_0x19e4f4,_0x59448b,_0x758e7e){return db[_0x6c92('0x49')][_0x6c92('0x50')]({'where':{'id':_0x19e4f4[_0x6c92('0x4e')]['id']}})[_0x6c92('0x2b')](handleEntityNotFound(_0x59448b,null))[_0x6c92('0x2b')](function(_0x3a98ba){if(_0x3a98ba){return _0x3a98ba[_0x6c92('0x86')](_0x19e4f4[_0x6c92('0x37')][_0x6c92('0x6a')])[_0x6c92('0x2b')](function(){if(_[_0x6c92('0x89')](_0x19e4f4['query'][_0x6c92('0x6a')])){for(var _0x5c0b8b=0x0;_0x5c0b8b<_0x19e4f4['query'][_0x6c92('0x6a')]['length'];_0x5c0b8b+=0x1){socket[_0x6c92('0x75')](_0x6c92('0x8a'),{'UserId':Number(_0x19e4f4['query'][_0x6c92('0x6a')][_0x5c0b8b]),'FaxQueueId':Number(_0x19e4f4[_0x6c92('0x4e')]['id'])});}}else{socket[_0x6c92('0x75')](_0x6c92('0x8a'),{'UserId':Number(_0x19e4f4['query'][_0x6c92('0x6a')]),'FaxQueueId':Number(_0x19e4f4[_0x6c92('0x4e')]['id'])});}});}})['then'](respondWithStatusCode(_0x59448b,null))['catch'](handleError(_0x59448b,null));};exports['getAgents']=function(_0xd56859,_0x326a13,_0x3dcd36){var _0x113f00={};var _0x2eb9f2={};var _0x26f56a;var _0x5b96b3;return db['FaxQueue'][_0x6c92('0x68')]({'where':{'id':_0xd56859[_0x6c92('0x4e')]['id']}})[_0x6c92('0x2b')](handleEntityNotFound(_0x326a13,null))['then'](function(_0x31f12b){if(_0x31f12b){_0x26f56a=_0x31f12b;_0x2eb9f2['model']=_[_0x6c92('0x4f')](db['User'][_0x6c92('0x33')]);_0x2eb9f2['query']=_['keys'](_0xd56859[_0x6c92('0x37')]);_0x2eb9f2[_0x6c92('0x38')]=_[_0x6c92('0x39')](_0x2eb9f2['model'],_0x2eb9f2[_0x6c92('0x37')]);_0x113f00[_0x6c92('0x3a')]=_[_0x6c92('0x39')](_0x2eb9f2[_0x6c92('0x36')],qs[_0x6c92('0x3b')](_0xd56859[_0x6c92('0x37')][_0x6c92('0x3b')]));_0x113f00[_0x6c92('0x3a')]=_0x113f00[_0x6c92('0x3a')][_0x6c92('0x3c')]?_0x113f00['attributes']:_0x2eb9f2[_0x6c92('0x36')];_0x113f00['order']=qs[_0x6c92('0x40')](_0xd56859[_0x6c92('0x37')][_0x6c92('0x40')]);_0x113f00[_0x6c92('0x41')]=qs[_0x6c92('0x38')](_['pick'](_0xd56859[_0x6c92('0x37')],_0x2eb9f2[_0x6c92('0x38')]));if(_0xd56859[_0x6c92('0x37')][_0x6c92('0x45')]){_0x113f00['where']=_[_0x6c92('0x43')](_0x113f00['where'],{'$or':_[_0x6c92('0x32')](_0x113f00[_0x6c92('0x3a')],function(_0x3b260b){var _0x574377={};_0x574377[_0x3b260b]={'$like':'%'+_0xd56859[_0x6c92('0x37')]['filter']+'%'};return _0x574377;})});}_0x113f00=_[_0x6c92('0x43')]({},_0x113f00,_0xd56859[_0x6c92('0x46')]);return _0x26f56a[_0x6c92('0x8b')](_0x113f00);}})['then'](function(_0x34a884){if(_0x34a884){_0x5b96b3=_0x34a884[_0x6c92('0x3c')];if(!_0xd56859[_0x6c92('0x37')][_0x6c92('0x3d')](_0x6c92('0x3e'))){_0x113f00[_0x6c92('0x23')]=qs['limit'](_0xd56859['query'][_0x6c92('0x23')]);_0x113f00[_0x6c92('0x22')]=qs[_0x6c92('0x22')](_0xd56859['query'][_0x6c92('0x22')]);}return _0x26f56a[_0x6c92('0x8b')](_0x113f00);}})[_0x6c92('0x2b')](function(_0x3a5c0e){if(_0x3a5c0e){return _0x3a5c0e?{'count':_0x5b96b3,'rows':_0x3a5c0e}:null;}})[_0x6c92('0x2b')](respondWithResult(_0x326a13,null))[_0x6c92('0x4c')](handleError(_0x326a13,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x987b=['update','remove','hasOwnProperty','hook','exports','events','FaxQueue','setMaxListeners','save'];(function(_0x38abc9,_0x5a992e){var _0x255129=function(_0x4976cf){while(--_0x4976cf){_0x38abc9['push'](_0x38abc9['shift']());}};_0x255129(++_0x5a992e);}(_0x987b,0x152));var _0xb987=function(_0x17553c,_0x5f378a){_0x17553c=_0x17553c-0x0;var _0x2b17aa=_0x987b[_0x17553c];return _0x2b17aa;};'use strict';var EventEmitter=require(_0xb987('0x0'));var FaxQueue=require('../../mysqldb')['db'][_0xb987('0x1')];var FaxQueueEvents=new EventEmitter();FaxQueueEvents[_0xb987('0x2')](0x0);var events={'afterCreate':_0xb987('0x3'),'afterUpdate':_0xb987('0x4'),'afterDestroy':_0xb987('0x5')};function emitEvent(_0x16448a){return function(_0x53dda9,_0x170bf5,_0x3e4f6d){FaxQueueEvents['emit'](_0x16448a+':'+_0x53dda9['id'],_0x53dda9);FaxQueueEvents['emit'](_0x16448a,_0x53dda9);_0x3e4f6d(null);};}for(var e in events){if(events[_0xb987('0x6')](e)){var event=events[e];FaxQueue[_0xb987('0x7')](e,emitEvent(event));}}module[_0xb987('0x8')]=FaxQueueEvents;
\ No newline at end of file
+var _0x7e5f=['setMaxListeners','save','update','remove','emit','hook','events'];(function(_0x18948a,_0x5a5770){var _0x9cbb9a=function(_0x2c4803){while(--_0x2c4803){_0x18948a['push'](_0x18948a['shift']());}};_0x9cbb9a(++_0x5a5770);}(_0x7e5f,0x13a));var _0xf7e5=function(_0x4b6778,_0x505a76){_0x4b6778=_0x4b6778-0x0;var _0x22dbb9=_0x7e5f[_0x4b6778];return _0x22dbb9;};'use strict';var EventEmitter=require(_0xf7e5('0x0'));var FaxQueue=require('../../mysqldb')['db']['FaxQueue'];var FaxQueueEvents=new EventEmitter();FaxQueueEvents[_0xf7e5('0x1')](0x0);var events={'afterCreate':_0xf7e5('0x2'),'afterUpdate':_0xf7e5('0x3'),'afterDestroy':_0xf7e5('0x4')};function emitEvent(_0x2d15a6){return function(_0x12de31,_0x4bf39a,_0x56df20){FaxQueueEvents['emit'](_0x2d15a6+':'+_0x12de31['id'],_0x12de31);FaxQueueEvents[_0xf7e5('0x5')](_0x2d15a6,_0x12de31);_0x56df20(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];FaxQueue[_0xf7e5('0x6')](e,emitEvent(event));}}module['exports']=FaxQueueEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4634=['fax_queues','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./faxQueue.attributes','exports','define','FaxQueue'];(function(_0x190a13,_0x5315a3){var _0x3f9b79=function(_0x25dc6f){while(--_0x25dc6f){_0x190a13['push'](_0x190a13['shift']());}};_0x3f9b79(++_0x5315a3);}(_0x4634,0x1b4));var _0x4463=function(_0x214d32,_0x229861){_0x214d32=_0x214d32-0x0;var _0x1e7a06=_0x4634[_0x214d32];return _0x1e7a06;};'use strict';var _=require(_0x4463('0x0'));var util=require(_0x4463('0x1'));var logger=require(_0x4463('0x2'))(_0x4463('0x3'));var moment=require(_0x4463('0x4'));var BPromise=require(_0x4463('0x5'));var rp=require(_0x4463('0x6'));var fs=require('fs');var path=require(_0x4463('0x7'));var rimraf=require(_0x4463('0x8'));var config=require(_0x4463('0x9'));var attributes=require(_0x4463('0xa'));module[_0x4463('0xb')]=function(_0x3269d2,_0x20085b){return _0x3269d2[_0x4463('0xc')](_0x4463('0xd'),attributes,{'tableName':_0x4463('0xe'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x9aff=['fax_queues','lodash','util','../../config/logger','api','moment','bluebird','path','rimraf','../../config/environment','./faxQueue.attributes','exports','define','FaxQueue'];(function(_0x2c4cee,_0xed54d6){var _0x4cad54=function(_0x5ee3bd){while(--_0x5ee3bd){_0x2c4cee['push'](_0x2c4cee['shift']());}};_0x4cad54(++_0xed54d6);}(_0x9aff,0x1c1));var _0xf9af=function(_0x474bc0,_0x26989c){_0x474bc0=_0x474bc0-0x0;var _0x4b24cf=_0x9aff[_0x474bc0];return _0x4b24cf;};'use strict';var _=require(_0xf9af('0x0'));var util=require(_0xf9af('0x1'));var logger=require(_0xf9af('0x2'))(_0xf9af('0x3'));var moment=require(_0xf9af('0x4'));var BPromise=require(_0xf9af('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xf9af('0x6'));var rimraf=require(_0xf9af('0x7'));var config=require(_0xf9af('0x8'));var attributes=require(_0xf9af('0x9'));module[_0xf9af('0xa')]=function(_0x5855d1,_0x25d806){return _0x5855d1[_0xf9af('0xb')](_0xf9af('0xc'),attributes,{'tableName':_0xf9af('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x79ac=['then','info','request\x20sent','debug','FaxQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','FaxQueue,\x20%s,\x20%s','message','catch','GetFaxQueue','FaxQueue','options','raw','where','attributes','limit','include','map','model','ShowFaxQueue','find','lodash','moment','randomstring','../../config/utils','rpc','../../config/environment','jayson/promise','http','defaults','redis','localhost','socket.io-emitter','./faxQueue.socket','register'];(function(_0x46698a,_0x8de1e4){var _0x356db0=function(_0x19e83c){while(--_0x19e83c){_0x46698a['push'](_0x46698a['shift']());}};_0x356db0(++_0x8de1e4);}(_0x79ac,0x164));var _0xc79a=function(_0x2ba9e7,_0x468f4b){_0x2ba9e7=_0x2ba9e7-0x0;var _0x2e554=_0x79ac[_0x2ba9e7];return _0x2e554;};'use strict';var _=require(_0xc79a('0x0'));var util=require('util');var moment=require(_0xc79a('0x1'));var BPromise=require('bluebird');var rs=require(_0xc79a('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0xc79a('0x3'));var logger=require('../../config/logger')(_0xc79a('0x4'));var config=require(_0xc79a('0x5'));var jayson=require(_0xc79a('0x6'));var client=jayson['client'][_0xc79a('0x7')]({'port':0x232a});config['redis']=_[_0xc79a('0x8')](config[_0xc79a('0x9')],{'host':_0xc79a('0xa'),'port':0x18eb});var socket=require(_0xc79a('0xb'))(new Redis(config['redis']));require(_0xc79a('0xc'))[_0xc79a('0xd')](socket);function respondWithRpcPromise(_0x445417,_0x1b7184,_0x1c3b6c){return new BPromise(function(_0x504baf,_0x16d21d){return client['request'](_0x445417,_0x1c3b6c)[_0xc79a('0xe')](function(_0x54c22c){logger[_0xc79a('0xf')]('FaxQueue,\x20%s,\x20%s',_0x1b7184,_0xc79a('0x10'));logger[_0xc79a('0x11')](_0xc79a('0x12'),_0x1b7184,_0xc79a('0x10'),JSON[_0xc79a('0x13')](_0x54c22c));if(_0x54c22c[_0xc79a('0x14')]){if(_0x54c22c[_0xc79a('0x14')][_0xc79a('0x15')]===0x1f4){logger['error'](_0xc79a('0x16'),_0x1b7184,_0x54c22c[_0xc79a('0x14')]['message']);return _0x16d21d(_0x54c22c[_0xc79a('0x14')][_0xc79a('0x17')]);}logger['error'](_0xc79a('0x16'),_0x1b7184,_0x54c22c[_0xc79a('0x14')][_0xc79a('0x17')]);return _0x504baf(_0x54c22c[_0xc79a('0x14')][_0xc79a('0x17')]);}else{logger[_0xc79a('0xf')]('FaxQueue,\x20%s,\x20%s',_0x1b7184,_0xc79a('0x10'));_0x504baf(_0x54c22c['result'][_0xc79a('0x17')]);}})[_0xc79a('0x18')](function(_0x1bb7f4){logger[_0xc79a('0x14')]('FaxQueue,\x20%s,\x20%s',_0x1b7184,_0x1bb7f4);_0x16d21d(_0x1bb7f4);});});}exports[_0xc79a('0x19')]=function(_0xec2357){var _0x588c9d=this;return new Promise(function(_0x43e55f,_0x12e7e6){return db[_0xc79a('0x1a')]['findAll']({'raw':_0xec2357['options']?_0xec2357[_0xc79a('0x1b')][_0xc79a('0x1c')]===undefined?!![]:![]:!![],'where':_0xec2357[_0xc79a('0x1b')]?_0xec2357[_0xc79a('0x1b')][_0xc79a('0x1d')]||null:null,'attributes':_0xec2357[_0xc79a('0x1b')]?_0xec2357['options'][_0xc79a('0x1e')]||null:null,'limit':_0xec2357['options']?_0xec2357['options'][_0xc79a('0x1f')]||null:null,'include':_0xec2357['options']?_0xec2357['options'][_0xc79a('0x20')]?_[_0xc79a('0x21')](_0xec2357[_0xc79a('0x1b')][_0xc79a('0x20')],function(_0xd3348d){return{'model':db[_0xd3348d[_0xc79a('0x22')]],'as':_0xd3348d['as'],'attributes':_0xd3348d[_0xc79a('0x1e')],'include':_0xd3348d['include']?_[_0xc79a('0x21')](_0xd3348d[_0xc79a('0x20')],function(_0x3e0ae5){return{'model':db[_0x3e0ae5[_0xc79a('0x22')]],'as':_0x3e0ae5['as'],'attributes':_0x3e0ae5[_0xc79a('0x1e')],'include':_0x3e0ae5[_0xc79a('0x20')]?_[_0xc79a('0x21')](_0x3e0ae5[_0xc79a('0x20')],function(_0x2aee2e){return{'model':db[_0x2aee2e[_0xc79a('0x22')]],'as':_0x2aee2e['as'],'attributes':_0x2aee2e[_0xc79a('0x1e')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x226d95){logger[_0xc79a('0xf')]('GetFaxQueue',_0xec2357);logger['debug'](_0xc79a('0x19'),_0xec2357,JSON[_0xc79a('0x13')](_0x226d95));_0x43e55f(_0x226d95);})[_0xc79a('0x18')](function(_0x519bba){logger[_0xc79a('0x14')](_0xc79a('0x19'),_0x519bba[_0xc79a('0x17')],_0xec2357);_0x12e7e6(_0x588c9d[_0xc79a('0x14')](0x1f4,_0x519bba['message']));});});};exports[_0xc79a('0x23')]=function(_0x9182df){var _0x55a0a2=this;return new Promise(function(_0x285d19,_0xf79397){return db[_0xc79a('0x1a')][_0xc79a('0x24')]({'raw':_0x9182df['options']?_0x9182df[_0xc79a('0x1b')]['raw']===undefined?!![]:![]:!![],'where':_0x9182df['options']?_0x9182df[_0xc79a('0x1b')][_0xc79a('0x1d')]||null:null,'attributes':_0x9182df[_0xc79a('0x1b')]?_0x9182df['options'][_0xc79a('0x1e')]||null:null,'include':_0x9182df['options']?_0x9182df[_0xc79a('0x1b')][_0xc79a('0x20')]?_[_0xc79a('0x21')](_0x9182df['options'][_0xc79a('0x20')],function(_0x42bae0){return{'model':db[_0x42bae0[_0xc79a('0x22')]],'as':_0x42bae0['as'],'attributes':_0x42bae0[_0xc79a('0x1e')],'include':_0x42bae0[_0xc79a('0x20')]?_[_0xc79a('0x21')](_0x42bae0[_0xc79a('0x20')],function(_0x24a819){return{'model':db[_0x24a819[_0xc79a('0x22')]],'as':_0x24a819['as'],'attributes':_0x24a819['attributes'],'include':_0x24a819[_0xc79a('0x20')]?_[_0xc79a('0x21')](_0x24a819[_0xc79a('0x20')],function(_0x53f84c){return{'model':db[_0x53f84c[_0xc79a('0x22')]],'as':_0x53f84c['as'],'attributes':_0x53f84c['attributes']};}):[]};}):[]};}):[]:[]})[_0xc79a('0xe')](function(_0x472e74){logger[_0xc79a('0xf')]('ShowFaxQueue',_0x9182df);logger[_0xc79a('0x11')](_0xc79a('0x23'),_0x9182df,JSON[_0xc79a('0x13')](_0x472e74));_0x285d19(_0x472e74);})[_0xc79a('0x18')](function(_0x2b0848){logger[_0xc79a('0x14')](_0xc79a('0x23'),_0x2b0848['message'],_0x9182df);_0xf79397(_0x55a0a2[_0xc79a('0x14')](0x1f4,_0x2b0848['message']));});});};
\ No newline at end of file
+var _0x26e6=['stringify','error','code','message','info','result','catch','FaxQueue','findAll','options','raw','attributes','include','map','model','find','where','ShowFaxQueue','lodash','util','moment','bluebird','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','socket.io-emitter','./faxQueue.socket','register','request','then','FaxQueue,\x20%s,\x20%s','debug','FaxQueue,\x20%s,\x20%s,\x20%s','request\x20sent'];(function(_0x82a0f2,_0x3a29d7){var _0x106625=function(_0x4979ed){while(--_0x4979ed){_0x82a0f2['push'](_0x82a0f2['shift']());}};_0x106625(++_0x3a29d7);}(_0x26e6,0xb2));var _0x626e=function(_0x5d5bcb,_0x25e2ea){_0x5d5bcb=_0x5d5bcb-0x0;var _0x4ea5eb=_0x26e6[_0x5d5bcb];return _0x4ea5eb;};'use strict';var _=require(_0x626e('0x0'));var util=require(_0x626e('0x1'));var moment=require(_0x626e('0x2'));var BPromise=require(_0x626e('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x626e('0x4'));var logger=require(_0x626e('0x5'))(_0x626e('0x6'));var config=require(_0x626e('0x7'));var jayson=require(_0x626e('0x8'));var client=jayson[_0x626e('0x9')][_0x626e('0xa')]({'port':0x232a});config[_0x626e('0xb')]=_[_0x626e('0xc')](config[_0x626e('0xb')],{'host':'localhost','port':0x18eb});var socket=require(_0x626e('0xd'))(new Redis(config[_0x626e('0xb')]));require(_0x626e('0xe'))[_0x626e('0xf')](socket);function respondWithRpcPromise(_0x40cf06,_0x1817ee,_0x3289fa){return new BPromise(function(_0x2d588c,_0x4d516f){return client[_0x626e('0x10')](_0x40cf06,_0x3289fa)[_0x626e('0x11')](function(_0x163f48){logger['info'](_0x626e('0x12'),_0x1817ee,'request\x20sent');logger[_0x626e('0x13')](_0x626e('0x14'),_0x1817ee,_0x626e('0x15'),JSON[_0x626e('0x16')](_0x163f48));if(_0x163f48[_0x626e('0x17')]){if(_0x163f48[_0x626e('0x17')][_0x626e('0x18')]===0x1f4){logger[_0x626e('0x17')](_0x626e('0x12'),_0x1817ee,_0x163f48[_0x626e('0x17')]['message']);return _0x4d516f(_0x163f48[_0x626e('0x17')][_0x626e('0x19')]);}logger[_0x626e('0x17')](_0x626e('0x12'),_0x1817ee,_0x163f48[_0x626e('0x17')][_0x626e('0x19')]);return _0x2d588c(_0x163f48[_0x626e('0x17')][_0x626e('0x19')]);}else{logger[_0x626e('0x1a')]('FaxQueue,\x20%s,\x20%s',_0x1817ee,_0x626e('0x15'));_0x2d588c(_0x163f48[_0x626e('0x1b')][_0x626e('0x19')]);}})[_0x626e('0x1c')](function(_0x3c0861){logger[_0x626e('0x17')](_0x626e('0x12'),_0x1817ee,_0x3c0861);_0x4d516f(_0x3c0861);});});}exports['GetFaxQueue']=function(_0x66a8f){var _0x1c44ed=this;return new Promise(function(_0x417d72,_0x4c16a3){return db[_0x626e('0x1d')][_0x626e('0x1e')]({'raw':_0x66a8f['options']?_0x66a8f[_0x626e('0x1f')][_0x626e('0x20')]===undefined?!![]:![]:!![],'where':_0x66a8f[_0x626e('0x1f')]?_0x66a8f[_0x626e('0x1f')]['where']||null:null,'attributes':_0x66a8f[_0x626e('0x1f')]?_0x66a8f[_0x626e('0x1f')][_0x626e('0x21')]||null:null,'limit':_0x66a8f[_0x626e('0x1f')]?_0x66a8f[_0x626e('0x1f')]['limit']||null:null,'include':_0x66a8f[_0x626e('0x1f')]?_0x66a8f['options'][_0x626e('0x22')]?_[_0x626e('0x23')](_0x66a8f[_0x626e('0x1f')][_0x626e('0x22')],function(_0x5ee211){return{'model':db[_0x5ee211[_0x626e('0x24')]],'as':_0x5ee211['as'],'attributes':_0x5ee211[_0x626e('0x21')],'include':_0x5ee211[_0x626e('0x22')]?_[_0x626e('0x23')](_0x5ee211[_0x626e('0x22')],function(_0x4919a7){return{'model':db[_0x4919a7[_0x626e('0x24')]],'as':_0x4919a7['as'],'attributes':_0x4919a7[_0x626e('0x21')],'include':_0x4919a7[_0x626e('0x22')]?_['map'](_0x4919a7['include'],function(_0x178375){return{'model':db[_0x178375[_0x626e('0x24')]],'as':_0x178375['as'],'attributes':_0x178375['attributes']};}):[]};}):[]};}):[]:[]})[_0x626e('0x11')](function(_0xd4a8c0){logger[_0x626e('0x1a')]('GetFaxQueue',_0x66a8f);logger[_0x626e('0x13')]('GetFaxQueue',_0x66a8f,JSON[_0x626e('0x16')](_0xd4a8c0));_0x417d72(_0xd4a8c0);})[_0x626e('0x1c')](function(_0x45ab42){logger['error']('GetFaxQueue',_0x45ab42[_0x626e('0x19')],_0x66a8f);_0x4c16a3(_0x1c44ed['error'](0x1f4,_0x45ab42['message']));});});};exports['ShowFaxQueue']=function(_0x1913ae){var _0x2fcea4=this;return new Promise(function(_0x13dcb7,_0x349495){return db[_0x626e('0x1d')][_0x626e('0x25')]({'raw':_0x1913ae[_0x626e('0x1f')]?_0x1913ae['options']['raw']===undefined?!![]:![]:!![],'where':_0x1913ae[_0x626e('0x1f')]?_0x1913ae[_0x626e('0x1f')][_0x626e('0x26')]||null:null,'attributes':_0x1913ae[_0x626e('0x1f')]?_0x1913ae[_0x626e('0x1f')][_0x626e('0x21')]||null:null,'include':_0x1913ae['options']?_0x1913ae[_0x626e('0x1f')][_0x626e('0x22')]?_[_0x626e('0x23')](_0x1913ae['options']['include'],function(_0x35f4ab){return{'model':db[_0x35f4ab[_0x626e('0x24')]],'as':_0x35f4ab['as'],'attributes':_0x35f4ab[_0x626e('0x21')],'include':_0x35f4ab[_0x626e('0x22')]?_[_0x626e('0x23')](_0x35f4ab['include'],function(_0x5bfb6f){return{'model':db[_0x5bfb6f[_0x626e('0x24')]],'as':_0x5bfb6f['as'],'attributes':_0x5bfb6f[_0x626e('0x21')],'include':_0x5bfb6f[_0x626e('0x22')]?_[_0x626e('0x23')](_0x5bfb6f[_0x626e('0x22')],function(_0x4a7164){return{'model':db[_0x4a7164[_0x626e('0x24')]],'as':_0x4a7164['as'],'attributes':_0x4a7164[_0x626e('0x21')]};}):[]};}):[]};}):[]:[]})[_0x626e('0x11')](function(_0xa7ebdb){logger['info']('ShowFaxQueue',_0x1913ae);logger[_0x626e('0x13')](_0x626e('0x27'),_0x1913ae,JSON[_0x626e('0x16')](_0xa7ebdb));_0x13dcb7(_0xa7ebdb);})['catch'](function(_0x55e921){logger[_0x626e('0x17')](_0x626e('0x27'),_0x55e921[_0x626e('0x19')],_0x1913ae);_0x349495(_0x2fcea4[_0x626e('0x17')](0x1f4,_0x55e921[_0x626e('0x19')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7499=['emit','register','length','faxQueue:','./faxQueue.events','save','update'];(function(_0x331f64,_0x1df0dd){var _0x5b6e0e=function(_0x14204a){while(--_0x14204a){_0x331f64['push'](_0x331f64['shift']());}};_0x5b6e0e(++_0x1df0dd);}(_0x7499,0x162));var _0x9749=function(_0x26df48,_0x22aa50){_0x26df48=_0x26df48-0x0;var _0x209047=_0x7499[_0x26df48];return _0x209047;};'use strict';var FaxQueueEvents=require(_0x9749('0x0'));var events=[_0x9749('0x1'),'remove',_0x9749('0x2')];function createListener(_0x2db172,_0x184abc){return function(_0x5b41db){_0x184abc[_0x9749('0x3')](_0x2db172,_0x5b41db);};}function removeListener(_0x275392,_0x26f3f6){return function(){FaxQueueEvents['removeListener'](_0x275392,_0x26f3f6);};}exports[_0x9749('0x4')]=function(_0x71a2b2){for(var _0x3587cc=0x0,_0x111230=events[_0x9749('0x5')];_0x3587cc<_0x111230;_0x3587cc++){var _0x46e895=events[_0x3587cc];var _0x523b4c=createListener(_0x9749('0x6')+_0x46e895,_0x71a2b2);FaxQueueEvents['on'](_0x46e895,_0x523b4c);}};
\ No newline at end of file
+var _0x0e6f=['remove','emit','removeListener','register','faxQueue:'];(function(_0x2bb722,_0x20a9cd){var _0x4bb87a=function(_0x31d6e7){while(--_0x31d6e7){_0x2bb722['push'](_0x2bb722['shift']());}};_0x4bb87a(++_0x20a9cd);}(_0x0e6f,0x159));var _0xf0e6=function(_0x37909b,_0xbd548c){_0x37909b=_0x37909b-0x0;var _0x1a949b=_0x0e6f[_0x37909b];return _0x1a949b;};'use strict';var FaxQueueEvents=require('./faxQueue.events');var events=['save',_0xf0e6('0x0'),'update'];function createListener(_0x8663a1,_0x2f3095){return function(_0x4a12b5){_0x2f3095[_0xf0e6('0x1')](_0x8663a1,_0x4a12b5);};}function removeListener(_0x3880fd,_0x5eda56){return function(){FaxQueueEvents[_0xf0e6('0x2')](_0x3880fd,_0x5eda56);};}exports[_0xf0e6('0x3')]=function(_0x18c38a){for(var _0x48c140=0x0,_0x296217=events['length'];_0x48c140<_0x296217;_0x48c140++){var _0x249645=events[_0x48c140];var _0x3ca910=createListener(_0xf0e6('0x4')+_0x249645,_0x18c38a);FaxQueueEvents['on'](_0x249645,_0x3ca910);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8ace=['fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./faxQueue.controller','get','isAuthenticated','index','/describe','/:id','show','/:id/members','getMembers','getTeams','getAgents','create','post','/:id/teams','addTeams','/:id/users','addAgents','delete','destroy','exports','multer','util','path','connect-timeout','express','Router'];(function(_0x197d5c,_0x1936b0){var _0x13dc71=function(_0x332d07){while(--_0x332d07){_0x197d5c['push'](_0x197d5c['shift']());}};_0x13dc71(++_0x1936b0);}(_0x8ace,0x1bc));var _0xe8ac=function(_0x3a175b,_0x505d13){_0x3a175b=_0x3a175b-0x0;var _0x9b84fa=_0x8ace[_0x3a175b];return _0x9b84fa;};'use strict';var multer=require(_0xe8ac('0x0'));var util=require(_0xe8ac('0x1'));var path=require(_0xe8ac('0x2'));var timeout=require(_0xe8ac('0x3'));var express=require(_0xe8ac('0x4'));var router=express[_0xe8ac('0x5')]();var fs_extra=require(_0xe8ac('0x6'));var auth=require(_0xe8ac('0x7'));var interaction=require(_0xe8ac('0x8'));var config=require(_0xe8ac('0x9'));var controller=require(_0xe8ac('0xa'));router[_0xe8ac('0xb')]('/',auth[_0xe8ac('0xc')](),controller[_0xe8ac('0xd')]);router['get'](_0xe8ac('0xe'),auth[_0xe8ac('0xc')](),controller['describe']);router['get'](_0xe8ac('0xf'),auth['isAuthenticated'](),controller[_0xe8ac('0x10')]);router[_0xe8ac('0xb')](_0xe8ac('0x11'),auth[_0xe8ac('0xc')](),controller[_0xe8ac('0x12')]);router[_0xe8ac('0xb')]('/:id/teams',auth[_0xe8ac('0xc')](),controller[_0xe8ac('0x13')]);router[_0xe8ac('0xb')]('/:id/users',auth[_0xe8ac('0xc')](),controller[_0xe8ac('0x14')]);router['post']('/',auth[_0xe8ac('0xc')](),controller[_0xe8ac('0x15')]);router[_0xe8ac('0x16')](_0xe8ac('0x17'),auth[_0xe8ac('0xc')](),controller[_0xe8ac('0x18')]);router[_0xe8ac('0x16')](_0xe8ac('0x19'),auth[_0xe8ac('0xc')](),controller[_0xe8ac('0x1a')]);router['put'](_0xe8ac('0xf'),auth[_0xe8ac('0xc')](),controller['update']);router[_0xe8ac('0x1b')](_0xe8ac('0xf'),auth[_0xe8ac('0xc')](),controller[_0xe8ac('0x1c')]);router[_0xe8ac('0x1b')](_0xe8ac('0x17'),auth['isAuthenticated'](),controller['removeTeams']);router['delete'](_0xe8ac('0x19'),auth[_0xe8ac('0xc')](),controller['removeAgents']);module[_0xe8ac('0x1d')]=router;
\ No newline at end of file
+var _0x9a5a=['path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./faxQueue.controller','get','index','/describe','isAuthenticated','describe','show','/:id/members','getMembers','/:id/teams','/:id/users','getAgents','post','addTeams','addAgents','put','/:id','delete','removeTeams','exports','multer','util'];(function(_0x5ddb1c,_0x5ea4df){var _0x354adc=function(_0x2dfb1f){while(--_0x2dfb1f){_0x5ddb1c['push'](_0x5ddb1c['shift']());}};_0x354adc(++_0x5ea4df);}(_0x9a5a,0x194));var _0xa9a5=function(_0x39e5c6,_0x2dec7){_0x39e5c6=_0x39e5c6-0x0;var _0x101571=_0x9a5a[_0x39e5c6];return _0x101571;};'use strict';var multer=require(_0xa9a5('0x0'));var util=require(_0xa9a5('0x1'));var path=require(_0xa9a5('0x2'));var timeout=require(_0xa9a5('0x3'));var express=require(_0xa9a5('0x4'));var router=express['Router']();var fs_extra=require(_0xa9a5('0x5'));var auth=require(_0xa9a5('0x6'));var interaction=require(_0xa9a5('0x7'));var config=require(_0xa9a5('0x8'));var controller=require(_0xa9a5('0x9'));router[_0xa9a5('0xa')]('/',auth['isAuthenticated'](),controller[_0xa9a5('0xb')]);router[_0xa9a5('0xa')](_0xa9a5('0xc'),auth[_0xa9a5('0xd')](),controller[_0xa9a5('0xe')]);router['get']('/:id',auth['isAuthenticated'](),controller[_0xa9a5('0xf')]);router[_0xa9a5('0xa')](_0xa9a5('0x10'),auth[_0xa9a5('0xd')](),controller[_0xa9a5('0x11')]);router[_0xa9a5('0xa')](_0xa9a5('0x12'),auth['isAuthenticated'](),controller['getTeams']);router['get'](_0xa9a5('0x13'),auth[_0xa9a5('0xd')](),controller[_0xa9a5('0x14')]);router[_0xa9a5('0x15')]('/',auth[_0xa9a5('0xd')](),controller['create']);router[_0xa9a5('0x15')](_0xa9a5('0x12'),auth[_0xa9a5('0xd')](),controller[_0xa9a5('0x16')]);router[_0xa9a5('0x15')](_0xa9a5('0x13'),auth['isAuthenticated'](),controller[_0xa9a5('0x17')]);router[_0xa9a5('0x18')](_0xa9a5('0x19'),auth[_0xa9a5('0xd')](),controller['update']);router[_0xa9a5('0x1a')](_0xa9a5('0x19'),auth[_0xa9a5('0xd')](),controller['destroy']);router[_0xa9a5('0x1a')]('/:id/teams',auth['isAuthenticated'](),controller[_0xa9a5('0x1b')]);router[_0xa9a5('0x1a')]('/:id/users',auth[_0xa9a5('0xd')](),controller['removeAgents']);module[_0xa9a5('0x1c')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4a2e=['moment','sequelize','exports','STRING','DATE'];(function(_0x47e2cf,_0xddb02){var _0x2b2f91=function(_0x252bd1){while(--_0x252bd1){_0x47e2cf['push'](_0x47e2cf['shift']());}};_0x2b2f91(++_0xddb02);}(_0x4a2e,0x87));var _0xe4a2=function(_0x1bcbf7,_0x31bf2a){_0x1bcbf7=_0x1bcbf7-0x0;var _0x4aeb5b=_0x4a2e[_0x1bcbf7];return _0x4aeb5b;};'use strict';var moment=require(_0xe4a2('0x0'));var Sequelize=require(_0xe4a2('0x1'));module[_0xe4a2('0x2')]={'uniqueid':{'type':Sequelize[_0xe4a2('0x3')],'allowNull':![]},'from':{'type':Sequelize[_0xe4a2('0x3')]},'joinAt':{'type':Sequelize[_0xe4a2('0x4')]},'leaveAt':{'type':Sequelize[_0xe4a2('0x4')]},'acceptAt':{'type':Sequelize[_0xe4a2('0x4')]},'exitAt':{'type':Sequelize['DATE']},'reason':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x6102=['moment','exports','STRING','DATE'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x6102,0x84));var _0x2610=function(_0x2080a3,_0x48acfa){_0x2080a3=_0x2080a3-0x0;var _0x8d7d17=_0x6102[_0x2080a3];return _0x8d7d17;};'use strict';var moment=require(_0x2610('0x0'));var Sequelize=require('sequelize');module[_0x2610('0x1')]={'uniqueid':{'type':Sequelize[_0x2610('0x2')],'allowNull':![]},'from':{'type':Sequelize['STRING']},'joinAt':{'type':Sequelize[_0x2610('0x3')]},'leaveAt':{'type':Sequelize[_0x2610('0x3')]},'acceptAt':{'type':Sequelize[_0x2610('0x3')]},'exitAt':{'type':Sequelize[_0x2610('0x3')]},'reason':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4a3d=['../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','limit','set','Content-Range','reject','update','then','destroy','error','stack','name','index','FaxQueueReport','rawAttributes','fieldName','type','map','query','keys','filters','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','sort','where','pick','merge','VIRTUAL','options','count','includeAll','include','findAll','rows','catch','find','body','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','lodash','squel','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x4a3d,0x79));var _0xd4a3=function(_0x2f389a,_0x4582ed){_0x2f389a=_0x2f389a-0x0;var _0x289781=_0x4a3d[_0x2f389a];return _0x289781;};'use strict';var emlformat=require(_0xd4a3('0x0'));var rimraf=require(_0xd4a3('0x1'));var zipdir=require(_0xd4a3('0x2'));var jsonpatch=require(_0xd4a3('0x3'));var rp=require(_0xd4a3('0x4'));var moment=require(_0xd4a3('0x5'));var BPromise=require(_0xd4a3('0x6'));var Mustache=require(_0xd4a3('0x7'));var util=require(_0xd4a3('0x8'));var path=require(_0xd4a3('0x9'));var sox=require(_0xd4a3('0xa'));var csv=require(_0xd4a3('0xb'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xd4a3('0xc'));var squel=require(_0xd4a3('0xd'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xd4a3('0xe'));var toCsv=require(_0xd4a3('0xb'));var querystring=require(_0xd4a3('0xf'));var Papa=require(_0xd4a3('0x10'));var Redis=require(_0xd4a3('0x11'));var authService=require(_0xd4a3('0x12'));var qs=require(_0xd4a3('0x13'));var as=require(_0xd4a3('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xd4a3('0x15'))(_0xd4a3('0x16'));var utils=require(_0xd4a3('0x17'));var config=require(_0xd4a3('0x18'));var licenseUtil=require(_0xd4a3('0x19'));var db=require(_0xd4a3('0x1a'))['db'];function respondWithStatusCode(_0x3e7728,_0x57bd90){_0x57bd90=_0x57bd90||0xcc;return function(_0x3548e4){if(_0x3548e4){return _0x3e7728[_0xd4a3('0x1b')](_0x57bd90);}return _0x3e7728[_0xd4a3('0x1c')](_0x57bd90)[_0xd4a3('0x1d')]();};}function respondWithResult(_0xd28551,_0x11f325){_0x11f325=_0x11f325||0xc8;return function(_0x2bfeb6){if(_0x2bfeb6){return _0xd28551[_0xd4a3('0x1c')](_0x11f325)['json'](_0x2bfeb6);}};}function respondWithFilteredResult(_0x5d16e8,_0x140379){return function(_0x2f96bb){if(_0x2f96bb){var _0x124d03=typeof _0x140379[_0xd4a3('0x1e')]===_0xd4a3('0x1f')&&typeof _0x140379[_0xd4a3('0x20')]==='undefined';var _0x2a3b7e=_0x2f96bb['count'];var _0xf9fc3c=_0x124d03?0x0:_0x140379['offset'];var _0x21fa36=_0x124d03?_0x2f96bb['count']:_0x140379[_0xd4a3('0x1e')]+_0x140379[_0xd4a3('0x20')];var _0x4be8b7;if(_0x21fa36>=_0x2a3b7e){_0x21fa36=_0x2a3b7e;_0x4be8b7=0xc8;}else{_0x4be8b7=0xce;}_0x5d16e8[_0xd4a3('0x1c')](_0x4be8b7);return _0x5d16e8[_0xd4a3('0x21')](_0xd4a3('0x22'),_0xf9fc3c+'-'+_0x21fa36+'/'+_0x2a3b7e)['json'](_0x2f96bb);}return null;};}function patchUpdates(_0x4a1cf0){return function(_0x21efd7){try{jsonpatch['apply'](_0x21efd7,_0x4a1cf0,!![]);}catch(_0x402201){return BPromise[_0xd4a3('0x23')](_0x402201);}return _0x21efd7['save']();};}function saveUpdates(_0x5bc708,_0x4f957f){return function(_0x40535d){if(_0x40535d){return _0x40535d[_0xd4a3('0x24')](_0x5bc708)[_0xd4a3('0x25')](function(_0x5717f7){return _0x5717f7;});}return null;};}function removeEntity(_0x2de130,_0x137bba){return function(_0x1a4ced){if(_0x1a4ced){return _0x1a4ced[_0xd4a3('0x26')]()[_0xd4a3('0x25')](function(){_0x2de130[_0xd4a3('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x35a871,_0x1dea89){return function(_0x50c8ac){if(!_0x50c8ac){_0x35a871[_0xd4a3('0x1b')](0x194);}return _0x50c8ac;};}function handleError(_0x42f100,_0x26cb96){_0x26cb96=_0x26cb96||0x1f4;return function(_0x4ce98a){logger[_0xd4a3('0x27')](_0x4ce98a[_0xd4a3('0x28')]);if(_0x4ce98a[_0xd4a3('0x29')]){delete _0x4ce98a['name'];}_0x42f100[_0xd4a3('0x1c')](_0x26cb96)['send'](_0x4ce98a);};}exports[_0xd4a3('0x2a')]=function(_0x523871,_0x3019a4){var _0x5d84f2={},_0x2769b7={},_0x535ecd={'count':0x0,'rows':[]};var _0x3e471e=_['map'](db[_0xd4a3('0x2b')][_0xd4a3('0x2c')],function(_0x2f2e8d){return{'name':_0x2f2e8d[_0xd4a3('0x2d')],'type':_0x2f2e8d[_0xd4a3('0x2e')]['key']};});_0x2769b7['model']=_[_0xd4a3('0x2f')](_0x3e471e,_0xd4a3('0x29'));_0x2769b7[_0xd4a3('0x30')]=_[_0xd4a3('0x31')](_0x523871['query']);_0x2769b7[_0xd4a3('0x32')]=_[_0xd4a3('0x33')](_0x2769b7['model'],_0x2769b7[_0xd4a3('0x30')]);_0x5d84f2['attributes']=_[_0xd4a3('0x33')](_0x2769b7[_0xd4a3('0x34')],qs[_0xd4a3('0x35')](_0x523871[_0xd4a3('0x30')][_0xd4a3('0x35')]));_0x5d84f2[_0xd4a3('0x36')]=_0x5d84f2[_0xd4a3('0x36')][_0xd4a3('0x37')]?_0x5d84f2[_0xd4a3('0x36')]:_0x2769b7['model'];if(!_0x523871[_0xd4a3('0x30')][_0xd4a3('0x38')](_0xd4a3('0x39'))){_0x5d84f2['limit']=qs[_0xd4a3('0x20')](_0x523871[_0xd4a3('0x30')][_0xd4a3('0x20')]);_0x5d84f2[_0xd4a3('0x1e')]=qs[_0xd4a3('0x1e')](_0x523871[_0xd4a3('0x30')][_0xd4a3('0x1e')]);}_0x5d84f2['order']=qs[_0xd4a3('0x3a')](_0x523871['query']['sort']);_0x5d84f2[_0xd4a3('0x3b')]=qs[_0xd4a3('0x32')](_[_0xd4a3('0x3c')](_0x523871[_0xd4a3('0x30')],_0x2769b7['filters']),_0x3e471e);if(_0x523871[_0xd4a3('0x30')]['filter']){_0x5d84f2[_0xd4a3('0x3b')]=_[_0xd4a3('0x3d')](_0x5d84f2[_0xd4a3('0x3b')],{'$or':_[_0xd4a3('0x2f')](_0x3e471e,function(_0x4d667a){if(_0x4d667a[_0xd4a3('0x2e')]!==_0xd4a3('0x3e')){var _0x131ade={};_0x131ade[_0x4d667a[_0xd4a3('0x29')]]={'$like':'%'+_0x523871['query']['filter']+'%'};return _0x131ade;}})});}_0x5d84f2=_[_0xd4a3('0x3d')]({},_0x5d84f2,_0x523871[_0xd4a3('0x3f')]);var _0x284a7c={'where':_0x5d84f2[_0xd4a3('0x3b')]};return db[_0xd4a3('0x2b')][_0xd4a3('0x40')](_0x284a7c)[_0xd4a3('0x25')](function(_0x515e79){_0x535ecd['count']=_0x515e79;if(_0x523871[_0xd4a3('0x30')][_0xd4a3('0x41')]){_0x5d84f2[_0xd4a3('0x42')]=[{'all':!![]}];}return db[_0xd4a3('0x2b')][_0xd4a3('0x43')](_0x5d84f2);})[_0xd4a3('0x25')](function(_0xcb013){_0x535ecd[_0xd4a3('0x44')]=_0xcb013;return _0x535ecd;})[_0xd4a3('0x25')](respondWithFilteredResult(_0x3019a4,_0x5d84f2))[_0xd4a3('0x45')](handleError(_0x3019a4,null));};exports['show']=function(_0x2bb7ce,_0x29955b){var _0x6e7362={'raw':!![],'where':{'id':_0x2bb7ce['params']['id']}},_0x40b847={};_0x40b847[_0xd4a3('0x34')]=_['keys'](db[_0xd4a3('0x2b')]['rawAttributes']);_0x40b847[_0xd4a3('0x30')]=_[_0xd4a3('0x31')](_0x2bb7ce[_0xd4a3('0x30')]);_0x40b847[_0xd4a3('0x32')]=_[_0xd4a3('0x33')](_0x40b847['model'],_0x40b847[_0xd4a3('0x30')]);_0x6e7362[_0xd4a3('0x36')]=_[_0xd4a3('0x33')](_0x40b847['model'],qs[_0xd4a3('0x35')](_0x2bb7ce[_0xd4a3('0x30')]['fields']));_0x6e7362[_0xd4a3('0x36')]=_0x6e7362[_0xd4a3('0x36')][_0xd4a3('0x37')]?_0x6e7362[_0xd4a3('0x36')]:_0x40b847[_0xd4a3('0x34')];if(_0x2bb7ce['query']['includeAll']){_0x6e7362[_0xd4a3('0x42')]=[{'all':!![]}];}_0x6e7362=_[_0xd4a3('0x3d')]({},_0x6e7362,_0x2bb7ce[_0xd4a3('0x3f')]);return db[_0xd4a3('0x2b')][_0xd4a3('0x46')](_0x6e7362)[_0xd4a3('0x25')](handleEntityNotFound(_0x29955b,null))[_0xd4a3('0x25')](respondWithResult(_0x29955b,null))[_0xd4a3('0x45')](handleError(_0x29955b,null));};exports['create']=function(_0xbe9cee,_0x1ba4b9){return db['FaxQueueReport']['create'](_0xbe9cee[_0xd4a3('0x47')],{})['then'](respondWithResult(_0x1ba4b9,0xc9))['catch'](handleError(_0x1ba4b9,null));};exports[_0xd4a3('0x24')]=function(_0x3410e6,_0x1b0051){if(_0x3410e6[_0xd4a3('0x47')]['id']){delete _0x3410e6[_0xd4a3('0x47')]['id'];}return db[_0xd4a3('0x2b')]['find']({'where':{'id':_0x3410e6['params']['id']}})['then'](handleEntityNotFound(_0x1b0051,null))[_0xd4a3('0x25')](saveUpdates(_0x3410e6['body'],null))[_0xd4a3('0x25')](respondWithResult(_0x1b0051,null))[_0xd4a3('0x45')](handleError(_0x1b0051,null));};exports[_0xd4a3('0x26')]=function(_0x8668d,_0x37cdd3){return db[_0xd4a3('0x2b')][_0xd4a3('0x46')]({'where':{'id':_0x8668d['params']['id']}})[_0xd4a3('0x25')](handleEntityNotFound(_0x37cdd3,null))['then'](removeEntity(_0x37cdd3,null))[_0xd4a3('0x45')](handleError(_0x37cdd3,null));};exports['describe']=function(_0x42b0e7,_0x31d2ca){return db['FaxQueueReport'][_0xd4a3('0x48')]()[_0xd4a3('0x25')](respondWithResult(_0x31d2ca,null))['catch'](handleError(_0x31d2ca,null));};
\ No newline at end of file
+var _0x9e9b=['querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../mysqldb','sendStatus','status','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','update','then','destroy','name','index','FaxQueueReport','fieldName','type','key','keys','intersection','model','attributes','query','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','VIRTUAL','includeAll','include','catch','show','params','rawAttributes','options','find','create','body','describe','eml-format','fast-json-patch','request-promise','moment','bluebird','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js'];(function(_0x99868f,_0xbdb8e7){var _0x27a71b=function(_0x41feca){while(--_0x41feca){_0x99868f['push'](_0x99868f['shift']());}};_0x27a71b(++_0xbdb8e7);}(_0x9e9b,0x1a7));var _0xb9e9=function(_0x46ee3c,_0x1c08f0){_0x46ee3c=_0x46ee3c-0x0;var _0x530a97=_0x9e9b[_0x46ee3c];return _0x530a97;};'use strict';var emlformat=require(_0xb9e9('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xb9e9('0x1'));var rp=require(_0xb9e9('0x2'));var moment=require(_0xb9e9('0x3'));var BPromise=require(_0xb9e9('0x4'));var Mustache=require('mustache');var util=require(_0xb9e9('0x5'));var path=require(_0xb9e9('0x6'));var sox=require('sox');var csv=require(_0xb9e9('0x7'));var ejs=require(_0xb9e9('0x8'));var fs=require('fs');var fs_extra=require(_0xb9e9('0x9'));var _=require(_0xb9e9('0xa'));var squel=require(_0xb9e9('0xb'));var crypto=require(_0xb9e9('0xc'));var jsforce=require(_0xb9e9('0xd'));var deskjs=require(_0xb9e9('0xe'));var toCsv=require(_0xb9e9('0x7'));var querystring=require(_0xb9e9('0xf'));var Papa=require(_0xb9e9('0x10'));var Redis=require(_0xb9e9('0x11'));var authService=require('../../components/auth/service');var qs=require(_0xb9e9('0x12'));var as=require(_0xb9e9('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xb9e9('0x14'))(_0xb9e9('0x15'));var utils=require(_0xb9e9('0x16'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0xb9e9('0x17'))['db'];function respondWithStatusCode(_0x393cc5,_0x1b15f9){_0x1b15f9=_0x1b15f9||0xcc;return function(_0x1c0b64){if(_0x1c0b64){return _0x393cc5[_0xb9e9('0x18')](_0x1b15f9);}return _0x393cc5['status'](_0x1b15f9)['end']();};}function respondWithResult(_0x3af79d,_0xac8104){_0xac8104=_0xac8104||0xc8;return function(_0x52b6bf){if(_0x52b6bf){return _0x3af79d[_0xb9e9('0x19')](_0xac8104)[_0xb9e9('0x1a')](_0x52b6bf);}};}function respondWithFilteredResult(_0x13b48f,_0x3a3b0e){return function(_0x4a141f){if(_0x4a141f){var _0xf3d58f=typeof _0x3a3b0e[_0xb9e9('0x1b')]===_0xb9e9('0x1c')&&typeof _0x3a3b0e['limit']===_0xb9e9('0x1c');var _0x107be6=_0x4a141f[_0xb9e9('0x1d')];var _0x3f3a27=_0xf3d58f?0x0:_0x3a3b0e[_0xb9e9('0x1b')];var _0x258791=_0xf3d58f?_0x4a141f[_0xb9e9('0x1d')]:_0x3a3b0e[_0xb9e9('0x1b')]+_0x3a3b0e[_0xb9e9('0x1e')];var _0x142694;if(_0x258791>=_0x107be6){_0x258791=_0x107be6;_0x142694=0xc8;}else{_0x142694=0xce;}_0x13b48f[_0xb9e9('0x19')](_0x142694);return _0x13b48f[_0xb9e9('0x1f')](_0xb9e9('0x20'),_0x3f3a27+'-'+_0x258791+'/'+_0x107be6)[_0xb9e9('0x1a')](_0x4a141f);}return null;};}function patchUpdates(_0x1183e2){return function(_0x45b9b0){try{jsonpatch[_0xb9e9('0x21')](_0x45b9b0,_0x1183e2,!![]);}catch(_0x39e10c){return BPromise[_0xb9e9('0x22')](_0x39e10c);}return _0x45b9b0[_0xb9e9('0x23')]();};}function saveUpdates(_0x52a8b9,_0x25b5ed){return function(_0x524afc){if(_0x524afc){return _0x524afc[_0xb9e9('0x24')](_0x52a8b9)[_0xb9e9('0x25')](function(_0x876b4d){return _0x876b4d;});}return null;};}function removeEntity(_0x2cb451,_0x84c9e3){return function(_0x143654){if(_0x143654){return _0x143654[_0xb9e9('0x26')]()[_0xb9e9('0x25')](function(){_0x2cb451['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x36b8f8,_0x20466b){return function(_0x15b831){if(!_0x15b831){_0x36b8f8[_0xb9e9('0x18')](0x194);}return _0x15b831;};}function handleError(_0x39a59b,_0x35e403){_0x35e403=_0x35e403||0x1f4;return function(_0x4af501){logger['error'](_0x4af501['stack']);if(_0x4af501['name']){delete _0x4af501[_0xb9e9('0x27')];}_0x39a59b['status'](_0x35e403)['send'](_0x4af501);};}exports[_0xb9e9('0x28')]=function(_0x51bd72,_0x3ffa10){var _0x9a28b8={},_0x4d451f={},_0x4e2ecd={'count':0x0,'rows':[]};var _0x16e873=_['map'](db[_0xb9e9('0x29')]['rawAttributes'],function(_0x5a1992){return{'name':_0x5a1992[_0xb9e9('0x2a')],'type':_0x5a1992[_0xb9e9('0x2b')][_0xb9e9('0x2c')]};});_0x4d451f['model']=_['map'](_0x16e873,_0xb9e9('0x27'));_0x4d451f['query']=_[_0xb9e9('0x2d')](_0x51bd72['query']);_0x4d451f['filters']=_[_0xb9e9('0x2e')](_0x4d451f[_0xb9e9('0x2f')],_0x4d451f['query']);_0x9a28b8[_0xb9e9('0x30')]=_[_0xb9e9('0x2e')](_0x4d451f[_0xb9e9('0x2f')],qs['fields'](_0x51bd72[_0xb9e9('0x31')][_0xb9e9('0x32')]));_0x9a28b8['attributes']=_0x9a28b8[_0xb9e9('0x30')][_0xb9e9('0x33')]?_0x9a28b8[_0xb9e9('0x30')]:_0x4d451f[_0xb9e9('0x2f')];if(!_0x51bd72[_0xb9e9('0x31')][_0xb9e9('0x34')](_0xb9e9('0x35'))){_0x9a28b8['limit']=qs[_0xb9e9('0x1e')](_0x51bd72[_0xb9e9('0x31')]['limit']);_0x9a28b8[_0xb9e9('0x1b')]=qs[_0xb9e9('0x1b')](_0x51bd72[_0xb9e9('0x31')][_0xb9e9('0x1b')]);}_0x9a28b8[_0xb9e9('0x36')]=qs[_0xb9e9('0x37')](_0x51bd72[_0xb9e9('0x31')]['sort']);_0x9a28b8[_0xb9e9('0x38')]=qs[_0xb9e9('0x39')](_[_0xb9e9('0x3a')](_0x51bd72[_0xb9e9('0x31')],_0x4d451f[_0xb9e9('0x39')]),_0x16e873);if(_0x51bd72[_0xb9e9('0x31')][_0xb9e9('0x3b')]){_0x9a28b8['where']=_[_0xb9e9('0x3c')](_0x9a28b8[_0xb9e9('0x38')],{'$or':_['map'](_0x16e873,function(_0x246842){if(_0x246842['type']!==_0xb9e9('0x3d')){var _0x275628={};_0x275628[_0x246842['name']]={'$like':'%'+_0x51bd72[_0xb9e9('0x31')][_0xb9e9('0x3b')]+'%'};return _0x275628;}})});}_0x9a28b8=_[_0xb9e9('0x3c')]({},_0x9a28b8,_0x51bd72['options']);var _0x57b575={'where':_0x9a28b8['where']};return db[_0xb9e9('0x29')][_0xb9e9('0x1d')](_0x57b575)[_0xb9e9('0x25')](function(_0x2bb4b0){_0x4e2ecd[_0xb9e9('0x1d')]=_0x2bb4b0;if(_0x51bd72[_0xb9e9('0x31')][_0xb9e9('0x3e')]){_0x9a28b8[_0xb9e9('0x3f')]=[{'all':!![]}];}return db[_0xb9e9('0x29')]['findAll'](_0x9a28b8);})['then'](function(_0x42553){_0x4e2ecd['rows']=_0x42553;return _0x4e2ecd;})[_0xb9e9('0x25')](respondWithFilteredResult(_0x3ffa10,_0x9a28b8))[_0xb9e9('0x40')](handleError(_0x3ffa10,null));};exports[_0xb9e9('0x41')]=function(_0x474c93,_0x44bb30){var _0x17b887={'raw':!![],'where':{'id':_0x474c93[_0xb9e9('0x42')]['id']}},_0x4e6e48={};_0x4e6e48[_0xb9e9('0x2f')]=_[_0xb9e9('0x2d')](db[_0xb9e9('0x29')][_0xb9e9('0x43')]);_0x4e6e48['query']=_[_0xb9e9('0x2d')](_0x474c93[_0xb9e9('0x31')]);_0x4e6e48['filters']=_[_0xb9e9('0x2e')](_0x4e6e48[_0xb9e9('0x2f')],_0x4e6e48['query']);_0x17b887['attributes']=_[_0xb9e9('0x2e')](_0x4e6e48['model'],qs[_0xb9e9('0x32')](_0x474c93[_0xb9e9('0x31')]['fields']));_0x17b887['attributes']=_0x17b887['attributes'][_0xb9e9('0x33')]?_0x17b887['attributes']:_0x4e6e48[_0xb9e9('0x2f')];if(_0x474c93[_0xb9e9('0x31')]['includeAll']){_0x17b887[_0xb9e9('0x3f')]=[{'all':!![]}];}_0x17b887=_['merge']({},_0x17b887,_0x474c93[_0xb9e9('0x44')]);return db['FaxQueueReport'][_0xb9e9('0x45')](_0x17b887)[_0xb9e9('0x25')](handleEntityNotFound(_0x44bb30,null))[_0xb9e9('0x25')](respondWithResult(_0x44bb30,null))[_0xb9e9('0x40')](handleError(_0x44bb30,null));};exports[_0xb9e9('0x46')]=function(_0x432c60,_0xf8be9e){return db[_0xb9e9('0x29')]['create'](_0x432c60[_0xb9e9('0x47')],{})['then'](respondWithResult(_0xf8be9e,0xc9))[_0xb9e9('0x40')](handleError(_0xf8be9e,null));};exports[_0xb9e9('0x24')]=function(_0x4640a0,_0x315620){if(_0x4640a0[_0xb9e9('0x47')]['id']){delete _0x4640a0['body']['id'];}return db[_0xb9e9('0x29')][_0xb9e9('0x45')]({'where':{'id':_0x4640a0[_0xb9e9('0x42')]['id']}})[_0xb9e9('0x25')](handleEntityNotFound(_0x315620,null))[_0xb9e9('0x25')](saveUpdates(_0x4640a0[_0xb9e9('0x47')],null))['then'](respondWithResult(_0x315620,null))[_0xb9e9('0x40')](handleError(_0x315620,null));};exports[_0xb9e9('0x26')]=function(_0x5a61bf,_0x4f315d){return db['FaxQueueReport'][_0xb9e9('0x45')]({'where':{'id':_0x5a61bf['params']['id']}})['then'](handleEntityNotFound(_0x4f315d,null))[_0xb9e9('0x25')](removeEntity(_0x4f315d,null))[_0xb9e9('0x40')](handleError(_0x4f315d,null));};exports[_0xb9e9('0x48')]=function(_0xbffc66,_0x2226c8){return db['FaxQueueReport'][_0xb9e9('0x48')]()[_0xb9e9('0x25')](respondWithResult(_0x2226c8,null))[_0xb9e9('0x40')](handleError(_0x2226c8,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4975=['path','rimraf','../../config/environment','./faxQueueReport.attributes','exports','FaxQueueReport','report_fax_queue','uniqueid','lodash','../../config/logger','api','moment','bluebird','request-promise'];(function(_0xa1acf4,_0x3f0386){var _0x13100f=function(_0xb7e45d){while(--_0xb7e45d){_0xa1acf4['push'](_0xa1acf4['shift']());}};_0x13100f(++_0x3f0386);}(_0x4975,0x86));var _0x5497=function(_0x446d00,_0x16a944){_0x446d00=_0x446d00-0x0;var _0x2b7a15=_0x4975[_0x446d00];return _0x2b7a15;};'use strict';var _=require(_0x5497('0x0'));var util=require('util');var logger=require(_0x5497('0x1'))(_0x5497('0x2'));var moment=require(_0x5497('0x3'));var BPromise=require(_0x5497('0x4'));var rp=require(_0x5497('0x5'));var fs=require('fs');var path=require(_0x5497('0x6'));var rimraf=require(_0x5497('0x7'));var config=require(_0x5497('0x8'));var attributes=require(_0x5497('0x9'));module[_0x5497('0xa')]=function(_0x539a27,_0x37e48d){return _0x539a27['define'](_0x5497('0xb'),attributes,{'tableName':_0x5497('0xc'),'paranoid':![],'indexes':[{'name':_0x5497('0xd'),'fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
+var _0x7a54=['report_fax_queue','uniqueid','lodash','util','../../config/logger','moment','bluebird','path','rimraf','../../config/environment','./faxQueueReport.attributes','exports','FaxQueueReport'];(function(_0x4c85ee,_0x507109){var _0x3b2a3e=function(_0x16d143){while(--_0x16d143){_0x4c85ee['push'](_0x4c85ee['shift']());}};_0x3b2a3e(++_0x507109);}(_0x7a54,0x106));var _0x47a5=function(_0x2e5b9f,_0x3944ae){_0x2e5b9f=_0x2e5b9f-0x0;var _0x4a0132=_0x7a54[_0x2e5b9f];return _0x4a0132;};'use strict';var _=require(_0x47a5('0x0'));var util=require(_0x47a5('0x1'));var logger=require(_0x47a5('0x2'))('api');var moment=require(_0x47a5('0x3'));var BPromise=require(_0x47a5('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x47a5('0x5'));var rimraf=require(_0x47a5('0x6'));var config=require(_0x47a5('0x7'));var attributes=require(_0x47a5('0x8'));module[_0x47a5('0x9')]=function(_0x545a97,_0x3d5629){return _0x545a97['define'](_0x47a5('0xa'),attributes,{'tableName':_0x47a5('0xb'),'paranoid':![],'indexes':[{'name':'uniqueid','fields':[_0x47a5('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x17cc=['util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','then','FaxQueueReport,\x20%s,\x20%s','request\x20sent','FaxQueueReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','CreateFaxQueueReport','create','options','debug','UpdateFaxQueueReport','FaxQueueReport','update','body','raw','where','attributes'];(function(_0x28b72e,_0x1862be){var _0x2bb662=function(_0x5b3c20){while(--_0x5b3c20){_0x28b72e['push'](_0x28b72e['shift']());}};_0x2bb662(++_0x1862be);}(_0x17cc,0x1dc));var _0xc17c=function(_0x12f446,_0x46c036){_0x12f446=_0x12f446-0x0;var _0x38b85e=_0x17cc[_0x12f446];return _0x38b85e;};'use strict';var _=require('lodash');var util=require(_0xc17c('0x0'));var moment=require('moment');var BPromise=require(_0xc17c('0x1'));var rs=require(_0xc17c('0x2'));var fs=require('fs');var Redis=require(_0xc17c('0x3'));var db=require(_0xc17c('0x4'))['db'];var utils=require(_0xc17c('0x5'));var logger=require(_0xc17c('0x6'))(_0xc17c('0x7'));var config=require(_0xc17c('0x8'));var jayson=require(_0xc17c('0x9'));var client=jayson[_0xc17c('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0xeb76b3,_0x1fbf73,_0x1046e3){return new BPromise(function(_0x19c862,_0x59764e){return client[_0xc17c('0xb')](_0xeb76b3,_0x1046e3)[_0xc17c('0xc')](function(_0x19139f){logger['info'](_0xc17c('0xd'),_0x1fbf73,_0xc17c('0xe'));logger['debug'](_0xc17c('0xf'),_0x1fbf73,'request\x20sent',JSON[_0xc17c('0x10')](_0x19139f));if(_0x19139f[_0xc17c('0x11')]){if(_0x19139f[_0xc17c('0x11')][_0xc17c('0x12')]===0x1f4){logger[_0xc17c('0x11')](_0xc17c('0xd'),_0x1fbf73,_0x19139f[_0xc17c('0x11')]['message']);return _0x59764e(_0x19139f[_0xc17c('0x11')][_0xc17c('0x13')]);}logger[_0xc17c('0x11')](_0xc17c('0xd'),_0x1fbf73,_0x19139f[_0xc17c('0x11')]['message']);return _0x19c862(_0x19139f[_0xc17c('0x11')]['message']);}else{logger[_0xc17c('0x14')](_0xc17c('0xd'),_0x1fbf73,_0xc17c('0xe'));_0x19c862(_0x19139f[_0xc17c('0x15')][_0xc17c('0x13')]);}})[_0xc17c('0x16')](function(_0x4d04fe){logger[_0xc17c('0x11')](_0xc17c('0xd'),_0x1fbf73,_0x4d04fe);_0x59764e(_0x4d04fe);});});}exports[_0xc17c('0x17')]=function(_0x403da2){var _0x197d96=this;return new Promise(function(_0x13916b,_0x5d3999){return db['FaxQueueReport'][_0xc17c('0x18')](_0x403da2['body'],{'raw':_0x403da2[_0xc17c('0x19')]?_0x403da2[_0xc17c('0x19')]['raw']===undefined?!![]:![]:!![]})[_0xc17c('0xc')](function(_0x18e61c){logger['info'](_0xc17c('0x17'),_0x403da2);logger[_0xc17c('0x1a')](_0xc17c('0x17'),_0x403da2,JSON[_0xc17c('0x10')](_0x18e61c));_0x13916b(_0x18e61c);})[_0xc17c('0x16')](function(_0x5770da){logger[_0xc17c('0x11')](_0xc17c('0x17'),_0x5770da['message'],_0x403da2);_0x5d3999(_0x197d96[_0xc17c('0x11')](0x1f4,_0x5770da[_0xc17c('0x13')]));});});};exports[_0xc17c('0x1b')]=function(_0x2fcafa){var _0x48a309=this;return new Promise(function(_0x184ca6,_0x4407e7){return db[_0xc17c('0x1c')][_0xc17c('0x1d')](_0x2fcafa[_0xc17c('0x1e')],{'raw':_0x2fcafa[_0xc17c('0x19')]?_0x2fcafa['options'][_0xc17c('0x1f')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x2fcafa[_0xc17c('0x19')]?_0x2fcafa[_0xc17c('0x19')][_0xc17c('0x20')]||null:null,'attributes':_0x2fcafa['options']?_0x2fcafa['options'][_0xc17c('0x21')]||null:null,'limit':_0x2fcafa['options']?_0x2fcafa[_0xc17c('0x19')]['limit']||null:null})[_0xc17c('0xc')](function(_0x8cc7fc){logger['info'](_0xc17c('0x1b'),_0x2fcafa);logger[_0xc17c('0x1a')](_0xc17c('0x1b'),_0x2fcafa,JSON[_0xc17c('0x10')](_0x8cc7fc));_0x184ca6(_0x8cc7fc);})[_0xc17c('0x16')](function(_0x3a4bc6){logger[_0xc17c('0x11')](_0xc17c('0x1b'),_0x3a4bc6[_0xc17c('0x13')],_0x2fcafa);_0x4407e7(_0x48a309['error'](0x1f4,_0x3a4bc6['message']));});});};
\ No newline at end of file
+var _0x783a=['FaxQueueReport','create','body','options','raw','CreateFaxQueueReport','UpdateFaxQueueReport','update','limit','lodash','util','moment','randomstring','ioredis','../../config/utils','rpc','jayson/promise','client','request','then','info','FaxQueueReport,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch'];(function(_0x45d3f0,_0x4be53f){var _0x314b79=function(_0x563d32){while(--_0x563d32){_0x45d3f0['push'](_0x45d3f0['shift']());}};_0x314b79(++_0x4be53f);}(_0x783a,0x1cb));var _0xa783=function(_0x5b01bb,_0x18ad93){_0x5b01bb=_0x5b01bb-0x0;var _0x531220=_0x783a[_0x5b01bb];return _0x531220;};'use strict';var _=require(_0xa783('0x0'));var util=require(_0xa783('0x1'));var moment=require(_0xa783('0x2'));var BPromise=require('bluebird');var rs=require(_0xa783('0x3'));var fs=require('fs');var Redis=require(_0xa783('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0xa783('0x5'));var logger=require('../../config/logger')(_0xa783('0x6'));var config=require('../../config/environment');var jayson=require(_0xa783('0x7'));var client=jayson[_0xa783('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x31636a,_0x5d4c2c,_0x3c70cf){return new BPromise(function(_0x391949,_0x1c5eb9){return client[_0xa783('0x9')](_0x31636a,_0x3c70cf)[_0xa783('0xa')](function(_0x14c0df){logger[_0xa783('0xb')](_0xa783('0xc'),_0x5d4c2c,_0xa783('0xd'));logger[_0xa783('0xe')]('FaxQueueReport,\x20%s,\x20%s,\x20%s',_0x5d4c2c,_0xa783('0xd'),JSON[_0xa783('0xf')](_0x14c0df));if(_0x14c0df[_0xa783('0x10')]){if(_0x14c0df['error'][_0xa783('0x11')]===0x1f4){logger['error'](_0xa783('0xc'),_0x5d4c2c,_0x14c0df[_0xa783('0x10')]['message']);return _0x1c5eb9(_0x14c0df[_0xa783('0x10')]['message']);}logger['error']('FaxQueueReport,\x20%s,\x20%s',_0x5d4c2c,_0x14c0df[_0xa783('0x10')][_0xa783('0x12')]);return _0x391949(_0x14c0df['error']['message']);}else{logger['info'](_0xa783('0xc'),_0x5d4c2c,_0xa783('0xd'));_0x391949(_0x14c0df[_0xa783('0x13')][_0xa783('0x12')]);}})[_0xa783('0x14')](function(_0x10fd9f){logger[_0xa783('0x10')]('FaxQueueReport,\x20%s,\x20%s',_0x5d4c2c,_0x10fd9f);_0x1c5eb9(_0x10fd9f);});});}exports['CreateFaxQueueReport']=function(_0x2f6969){var _0x43d296=this;return new Promise(function(_0x4a1cda,_0x3f62bf){return db[_0xa783('0x15')][_0xa783('0x16')](_0x2f6969[_0xa783('0x17')],{'raw':_0x2f6969[_0xa783('0x18')]?_0x2f6969[_0xa783('0x18')][_0xa783('0x19')]===undefined?!![]:![]:!![]})[_0xa783('0xa')](function(_0x1901d1){logger[_0xa783('0xb')](_0xa783('0x1a'),_0x2f6969);logger[_0xa783('0xe')](_0xa783('0x1a'),_0x2f6969,JSON[_0xa783('0xf')](_0x1901d1));_0x4a1cda(_0x1901d1);})[_0xa783('0x14')](function(_0x14c745){logger[_0xa783('0x10')](_0xa783('0x1a'),_0x14c745[_0xa783('0x12')],_0x2f6969);_0x3f62bf(_0x43d296[_0xa783('0x10')](0x1f4,_0x14c745['message']));});});};exports[_0xa783('0x1b')]=function(_0x14d060){var _0x297378=this;return new Promise(function(_0xa07dd9,_0x397f31){return db['FaxQueueReport'][_0xa783('0x1c')](_0x14d060['body'],{'raw':_0x14d060[_0xa783('0x18')]?_0x14d060[_0xa783('0x18')][_0xa783('0x19')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x14d060[_0xa783('0x18')]?_0x14d060[_0xa783('0x18')]['where']||null:null,'attributes':_0x14d060[_0xa783('0x18')]?_0x14d060[_0xa783('0x18')]['attributes']||null:null,'limit':_0x14d060['options']?_0x14d060[_0xa783('0x18')][_0xa783('0x1d')]||null:null})[_0xa783('0xa')](function(_0x38ac31){logger['info'](_0xa783('0x1b'),_0x14d060);logger[_0xa783('0xe')]('UpdateFaxQueueReport',_0x14d060,JSON[_0xa783('0xf')](_0x38ac31));_0xa07dd9(_0x38ac31);})[_0xa783('0x14')](function(_0x2d2f1a){logger[_0xa783('0x10')]('UpdateFaxQueueReport',_0x2d2f1a[_0xa783('0x12')],_0x14d060);_0x397f31(_0x297378['error'](0x1f4,_0x2d2f1a[_0xa783('0x12')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb40d=['/describe','describe','show','post','create','put','/:id','update','delete','destroy','util','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./faxQueueReport.controller','isAuthenticated'];(function(_0x786fc2,_0x4b99c4){var _0x247acf=function(_0x23d795){while(--_0x23d795){_0x786fc2['push'](_0x786fc2['shift']());}};_0x247acf(++_0x4b99c4);}(_0xb40d,0x1ac));var _0xdb40=function(_0x54cc3c,_0x3f95cb){_0x54cc3c=_0x54cc3c-0x0;var _0x16e52d=_0xb40d[_0x54cc3c];return _0x16e52d;};'use strict';var multer=require('multer');var util=require(_0xdb40('0x0'));var path=require(_0xdb40('0x1'));var timeout=require('connect-timeout');var express=require(_0xdb40('0x2'));var router=express[_0xdb40('0x3')]();var fs_extra=require(_0xdb40('0x4'));var auth=require(_0xdb40('0x5'));var interaction=require(_0xdb40('0x6'));var config=require('../../config/environment');var controller=require(_0xdb40('0x7'));router['get']('/',auth[_0xdb40('0x8')](),controller['index']);router['get'](_0xdb40('0x9'),auth[_0xdb40('0x8')](),controller[_0xdb40('0xa')]);router['get']('/:id',auth[_0xdb40('0x8')](),controller[_0xdb40('0xb')]);router[_0xdb40('0xc')]('/',auth[_0xdb40('0x8')](),controller[_0xdb40('0xd')]);router[_0xdb40('0xe')](_0xdb40('0xf'),auth[_0xdb40('0x8')](),controller[_0xdb40('0x10')]);router[_0xdb40('0x11')]('/:id',auth['isAuthenticated'](),controller[_0xdb40('0x12')]);module['exports']=router;
\ No newline at end of file
+var _0x1975=['describe','put','delete','/:id','destroy','exports','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../config/environment','isAuthenticated','index','get','/describe'];(function(_0x9d33b9,_0x52b19e){var _0x27b35e=function(_0x498bd8){while(--_0x498bd8){_0x9d33b9['push'](_0x9d33b9['shift']());}};_0x27b35e(++_0x52b19e);}(_0x1975,0xd2));var _0x5197=function(_0x53f608,_0x256def){_0x53f608=_0x53f608-0x0;var _0x495b7d=_0x1975[_0x53f608];return _0x495b7d;};'use strict';var multer=require('multer');var util=require(_0x5197('0x0'));var path=require(_0x5197('0x1'));var timeout=require(_0x5197('0x2'));var express=require('express');var router=express[_0x5197('0x3')]();var fs_extra=require(_0x5197('0x4'));var auth=require(_0x5197('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0x5197('0x6'));var controller=require('./faxQueueReport.controller');router['get']('/',auth[_0x5197('0x7')](),controller[_0x5197('0x8')]);router[_0x5197('0x9')](_0x5197('0xa'),auth[_0x5197('0x7')](),controller[_0x5197('0xb')]);router[_0x5197('0x9')]('/:id',auth[_0x5197('0x7')](),controller['show']);router['post']('/',auth['isAuthenticated'](),controller['create']);router[_0x5197('0xc')]('/:id',auth['isAuthenticated'](),controller['update']);router[_0x5197('0xd')](_0x5197('0xe'),auth[_0x5197('0x7')](),controller[_0x5197('0xf')]);module[_0x5197('0x10')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x54ef=['agent','queue','DATE','NOW','moment','sequelize','exports','ENUM','account'];(function(_0x111692,_0x19f8a9){var _0x11836f=function(_0x2f2714){while(--_0x2f2714){_0x111692['push'](_0x111692['shift']());}};_0x11836f(++_0x19f8a9);}(_0x54ef,0x112));var _0xf54e=function(_0x403a45,_0x30f47d){_0x403a45=_0x403a45-0x0;var _0x5a3dbe=_0x54ef[_0x403a45];return _0x5a3dbe;};'use strict';var moment=require(_0xf54e('0x0'));var Sequelize=require(_0xf54e('0x1'));module[_0xf54e('0x2')]={'uniqueid':{'type':Sequelize['STRING'],'allowNull':![]},'type':{'type':Sequelize[_0xf54e('0x3')](_0xf54e('0x4'),_0xf54e('0x5'),_0xf54e('0x6')),'allowNull':![],'defaultValue':_0xf54e('0x6')},'transferredAt':{'type':Sequelize[_0xf54e('0x7')],'allowNull':![],'defaultValue':Sequelize[_0xf54e('0x8')]}};
\ No newline at end of file
+var _0xcb91=['STRING','ENUM','account','queue','NOW','exports'];(function(_0x21a4a8,_0x2b63ff){var _0xf25eac=function(_0x681809){while(--_0x681809){_0x21a4a8['push'](_0x21a4a8['shift']());}};_0xf25eac(++_0x2b63ff);}(_0xcb91,0x1a9));var _0x1cb9=function(_0x462fe4,_0x394d3e){_0x462fe4=_0x462fe4-0x0;var _0x82b23a=_0xcb91[_0x462fe4];return _0x82b23a;};'use strict';var moment=require('moment');var Sequelize=require('sequelize');module[_0x1cb9('0x0')]={'uniqueid':{'type':Sequelize[_0x1cb9('0x1')],'allowNull':![]},'type':{'type':Sequelize[_0x1cb9('0x2')](_0x1cb9('0x3'),'agent',_0x1cb9('0x4')),'allowNull':![],'defaultValue':_0x1cb9('0x4')},'transferredAt':{'type':Sequelize['DATE'],'allowNull':![],'defaultValue':Sequelize[_0x1cb9('0x5')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfada=['model','map','name','query','keys','filters','intersection','attributes','fields','nolimit','order','sort','where','pick','filter','type','VIRTUAL','options','count','includeAll','include','findAll','rows','catch','show','length','merge','find','create','body','update','params','describe','eml-format','rimraf','zip-dir','request-promise','bluebird','mustache','util','path','sox','ejs','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','limit','undefined','set','reject','save','then','destroy','error','stack','send','index','FaxTransferReport','rawAttributes','fieldName','key'];(function(_0x50fda9,_0x5ee44b){var _0x36b92b=function(_0x121877){while(--_0x121877){_0x50fda9['push'](_0x50fda9['shift']());}};_0x36b92b(++_0x5ee44b);}(_0xfada,0x70));var _0xafad=function(_0x3462f2,_0x123511){_0x3462f2=_0x3462f2-0x0;var _0x222d07=_0xfada[_0x3462f2];return _0x222d07;};'use strict';var emlformat=require(_0xafad('0x0'));var rimraf=require(_0xafad('0x1'));var zipdir=require(_0xafad('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xafad('0x3'));var moment=require('moment');var BPromise=require(_0xafad('0x4'));var Mustache=require(_0xafad('0x5'));var util=require(_0xafad('0x6'));var path=require(_0xafad('0x7'));var sox=require(_0xafad('0x8'));var csv=require('to-csv');var ejs=require(_0xafad('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require('squel');var crypto=require(_0xafad('0xa'));var jsforce=require(_0xafad('0xb'));var deskjs=require(_0xafad('0xc'));var toCsv=require(_0xafad('0xd'));var querystring=require(_0xafad('0xe'));var Papa=require(_0xafad('0xf'));var Redis=require(_0xafad('0x10'));var authService=require(_0xafad('0x11'));var qs=require(_0xafad('0x12'));var as=require(_0xafad('0x13'));var hardwareService=require(_0xafad('0x14'));var logger=require('../../config/logger')(_0xafad('0x15'));var utils=require(_0xafad('0x16'));var config=require(_0xafad('0x17'));var licenseUtil=require(_0xafad('0x18'));var db=require(_0xafad('0x19'))['db'];function respondWithStatusCode(_0x965b50,_0x148da8){_0x148da8=_0x148da8||0xcc;return function(_0x18625d){if(_0x18625d){return _0x965b50[_0xafad('0x1a')](_0x148da8);}return _0x965b50[_0xafad('0x1b')](_0x148da8)[_0xafad('0x1c')]();};}function respondWithResult(_0x19f2e2,_0x3bbe6c){_0x3bbe6c=_0x3bbe6c||0xc8;return function(_0x22c291){if(_0x22c291){return _0x19f2e2[_0xafad('0x1b')](_0x3bbe6c)[_0xafad('0x1d')](_0x22c291);}};}function respondWithFilteredResult(_0x5cbf29,_0x18250c){return function(_0x49ab08){if(_0x49ab08){var _0x43d90f=typeof _0x18250c[_0xafad('0x1e')]==='undefined'&&typeof _0x18250c[_0xafad('0x1f')]===_0xafad('0x20');var _0x272b57=_0x49ab08['count'];var _0x3b158a=_0x43d90f?0x0:_0x18250c[_0xafad('0x1e')];var _0x2e6c71=_0x43d90f?_0x49ab08['count']:_0x18250c[_0xafad('0x1e')]+_0x18250c[_0xafad('0x1f')];var _0x2189cc;if(_0x2e6c71>=_0x272b57){_0x2e6c71=_0x272b57;_0x2189cc=0xc8;}else{_0x2189cc=0xce;}_0x5cbf29[_0xafad('0x1b')](_0x2189cc);return _0x5cbf29[_0xafad('0x21')]('Content-Range',_0x3b158a+'-'+_0x2e6c71+'/'+_0x272b57)[_0xafad('0x1d')](_0x49ab08);}return null;};}function patchUpdates(_0x2f37a4){return function(_0x252fb6){try{jsonpatch['apply'](_0x252fb6,_0x2f37a4,!![]);}catch(_0xae2570){return BPromise[_0xafad('0x22')](_0xae2570);}return _0x252fb6[_0xafad('0x23')]();};}function saveUpdates(_0x1dc861,_0x17eceb){return function(_0x168c14){if(_0x168c14){return _0x168c14['update'](_0x1dc861)[_0xafad('0x24')](function(_0xcca482){return _0xcca482;});}return null;};}function removeEntity(_0x44126b,_0x2507bf){return function(_0x1cc9ca){if(_0x1cc9ca){return _0x1cc9ca[_0xafad('0x25')]()[_0xafad('0x24')](function(){_0x44126b[_0xafad('0x1b')](0xcc)[_0xafad('0x1c')]();});}};}function handleEntityNotFound(_0x39dcbe,_0x171225){return function(_0x5532aa){if(!_0x5532aa){_0x39dcbe[_0xafad('0x1a')](0x194);}return _0x5532aa;};}function handleError(_0x585b83,_0x15b4ce){_0x15b4ce=_0x15b4ce||0x1f4;return function(_0x1ee4e0){logger[_0xafad('0x26')](_0x1ee4e0[_0xafad('0x27')]);if(_0x1ee4e0['name']){delete _0x1ee4e0['name'];}_0x585b83[_0xafad('0x1b')](_0x15b4ce)[_0xafad('0x28')](_0x1ee4e0);};}exports[_0xafad('0x29')]=function(_0xa9ffaa,_0x1df946){var _0x3cb4b2={},_0x1a9ddc={},_0x5bbb11={'count':0x0,'rows':[]};var _0x194e4a=_['map'](db[_0xafad('0x2a')][_0xafad('0x2b')],function(_0x4e05b1){return{'name':_0x4e05b1[_0xafad('0x2c')],'type':_0x4e05b1['type'][_0xafad('0x2d')]};});_0x1a9ddc[_0xafad('0x2e')]=_[_0xafad('0x2f')](_0x194e4a,_0xafad('0x30'));_0x1a9ddc[_0xafad('0x31')]=_[_0xafad('0x32')](_0xa9ffaa[_0xafad('0x31')]);_0x1a9ddc[_0xafad('0x33')]=_[_0xafad('0x34')](_0x1a9ddc[_0xafad('0x2e')],_0x1a9ddc['query']);_0x3cb4b2[_0xafad('0x35')]=_[_0xafad('0x34')](_0x1a9ddc[_0xafad('0x2e')],qs['fields'](_0xa9ffaa[_0xafad('0x31')][_0xafad('0x36')]));_0x3cb4b2['attributes']=_0x3cb4b2[_0xafad('0x35')]['length']?_0x3cb4b2[_0xafad('0x35')]:_0x1a9ddc[_0xafad('0x2e')];if(!_0xa9ffaa[_0xafad('0x31')]['hasOwnProperty'](_0xafad('0x37'))){_0x3cb4b2[_0xafad('0x1f')]=qs[_0xafad('0x1f')](_0xa9ffaa['query']['limit']);_0x3cb4b2[_0xafad('0x1e')]=qs[_0xafad('0x1e')](_0xa9ffaa[_0xafad('0x31')][_0xafad('0x1e')]);}_0x3cb4b2[_0xafad('0x38')]=qs[_0xafad('0x39')](_0xa9ffaa[_0xafad('0x31')][_0xafad('0x39')]);_0x3cb4b2[_0xafad('0x3a')]=qs[_0xafad('0x33')](_[_0xafad('0x3b')](_0xa9ffaa[_0xafad('0x31')],_0x1a9ddc[_0xafad('0x33')]),_0x194e4a);if(_0xa9ffaa[_0xafad('0x31')][_0xafad('0x3c')]){_0x3cb4b2[_0xafad('0x3a')]=_['merge'](_0x3cb4b2[_0xafad('0x3a')],{'$or':_[_0xafad('0x2f')](_0x194e4a,function(_0x53d6ef){if(_0x53d6ef[_0xafad('0x3d')]!==_0xafad('0x3e')){var _0xb5b979={};_0xb5b979[_0x53d6ef[_0xafad('0x30')]]={'$like':'%'+_0xa9ffaa[_0xafad('0x31')][_0xafad('0x3c')]+'%'};return _0xb5b979;}})});}_0x3cb4b2=_['merge']({},_0x3cb4b2,_0xa9ffaa[_0xafad('0x3f')]);var _0x3c9ff6={'where':_0x3cb4b2[_0xafad('0x3a')]};return db[_0xafad('0x2a')][_0xafad('0x40')](_0x3c9ff6)[_0xafad('0x24')](function(_0x32f1fa){_0x5bbb11[_0xafad('0x40')]=_0x32f1fa;if(_0xa9ffaa['query'][_0xafad('0x41')]){_0x3cb4b2[_0xafad('0x42')]=[{'all':!![]}];}return db['FaxTransferReport'][_0xafad('0x43')](_0x3cb4b2);})[_0xafad('0x24')](function(_0x120827){_0x5bbb11[_0xafad('0x44')]=_0x120827;return _0x5bbb11;})[_0xafad('0x24')](respondWithFilteredResult(_0x1df946,_0x3cb4b2))[_0xafad('0x45')](handleError(_0x1df946,null));};exports[_0xafad('0x46')]=function(_0x5c5e89,_0x44f72c){var _0x28f3a3={'raw':!![],'where':{'id':_0x5c5e89['params']['id']}},_0x29bd5a={};_0x29bd5a[_0xafad('0x2e')]=_[_0xafad('0x32')](db[_0xafad('0x2a')][_0xafad('0x2b')]);_0x29bd5a[_0xafad('0x31')]=_['keys'](_0x5c5e89[_0xafad('0x31')]);_0x29bd5a[_0xafad('0x33')]=_[_0xafad('0x34')](_0x29bd5a['model'],_0x29bd5a[_0xafad('0x31')]);_0x28f3a3[_0xafad('0x35')]=_[_0xafad('0x34')](_0x29bd5a[_0xafad('0x2e')],qs[_0xafad('0x36')](_0x5c5e89[_0xafad('0x31')]['fields']));_0x28f3a3[_0xafad('0x35')]=_0x28f3a3[_0xafad('0x35')][_0xafad('0x47')]?_0x28f3a3['attributes']:_0x29bd5a[_0xafad('0x2e')];if(_0x5c5e89[_0xafad('0x31')][_0xafad('0x41')]){_0x28f3a3[_0xafad('0x42')]=[{'all':!![]}];}_0x28f3a3=_[_0xafad('0x48')]({},_0x28f3a3,_0x5c5e89[_0xafad('0x3f')]);return db['FaxTransferReport'][_0xafad('0x49')](_0x28f3a3)['then'](handleEntityNotFound(_0x44f72c,null))[_0xafad('0x24')](respondWithResult(_0x44f72c,null))[_0xafad('0x45')](handleError(_0x44f72c,null));};exports[_0xafad('0x4a')]=function(_0x5d1129,_0x2ab4bf){return db[_0xafad('0x2a')][_0xafad('0x4a')](_0x5d1129[_0xafad('0x4b')],{})['then'](respondWithResult(_0x2ab4bf,0xc9))[_0xafad('0x45')](handleError(_0x2ab4bf,null));};exports[_0xafad('0x4c')]=function(_0xb59f0c,_0x4003f2){if(_0xb59f0c[_0xafad('0x4b')]['id']){delete _0xb59f0c[_0xafad('0x4b')]['id'];}return db[_0xafad('0x2a')][_0xafad('0x49')]({'where':{'id':_0xb59f0c['params']['id']}})[_0xafad('0x24')](handleEntityNotFound(_0x4003f2,null))['then'](saveUpdates(_0xb59f0c[_0xafad('0x4b')],null))[_0xafad('0x24')](respondWithResult(_0x4003f2,null))['catch'](handleError(_0x4003f2,null));};exports[_0xafad('0x25')]=function(_0x3aaa06,_0x3d0615){return db[_0xafad('0x2a')]['find']({'where':{'id':_0x3aaa06[_0xafad('0x4d')]['id']}})[_0xafad('0x24')](handleEntityNotFound(_0x3d0615,null))[_0xafad('0x24')](removeEntity(_0x3d0615,null))['catch'](handleError(_0x3d0615,null));};exports[_0xafad('0x4e')]=function(_0x1ffcd1,_0x5c4e85){return db['FaxTransferReport'][_0xafad('0x4e')]()['then'](respondWithResult(_0x5c4e85,null))['catch'](handleError(_0x5c4e85,null));};
\ No newline at end of file
+var _0xfde8=['moment','bluebird','mustache','path','to-csv','fs-extra','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','limit','offset','count','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','send','index','map','FaxTransferReport','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','VIRTUAL','merge','options','includeAll','rows','catch','show','params','include','create','body','find','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise'];(function(_0x259dca,_0x57c96d){var _0x56eed3=function(_0x4cf674){while(--_0x4cf674){_0x259dca['push'](_0x259dca['shift']());}};_0x56eed3(++_0x57c96d);}(_0xfde8,0xe8));var _0x8fde=function(_0x1afc42,_0xe522e1){_0x1afc42=_0x1afc42-0x0;var _0x3115e9=_0xfde8[_0x1afc42];return _0x3115e9;};'use strict';var emlformat=require(_0x8fde('0x0'));var rimraf=require(_0x8fde('0x1'));var zipdir=require(_0x8fde('0x2'));var jsonpatch=require(_0x8fde('0x3'));var rp=require(_0x8fde('0x4'));var moment=require(_0x8fde('0x5'));var BPromise=require(_0x8fde('0x6'));var Mustache=require(_0x8fde('0x7'));var util=require('util');var path=require(_0x8fde('0x8'));var sox=require('sox');var csv=require(_0x8fde('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x8fde('0xa'));var _=require('lodash');var squel=require(_0x8fde('0xb'));var crypto=require(_0x8fde('0xc'));var jsforce=require(_0x8fde('0xd'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x8fde('0xe'));var Papa=require(_0x8fde('0xf'));var Redis=require(_0x8fde('0x10'));var authService=require(_0x8fde('0x11'));var qs=require(_0x8fde('0x12'));var as=require(_0x8fde('0x13'));var hardwareService=require(_0x8fde('0x14'));var logger=require('../../config/logger')('api');var utils=require(_0x8fde('0x15'));var config=require(_0x8fde('0x16'));var licenseUtil=require(_0x8fde('0x17'));var db=require(_0x8fde('0x18'))['db'];function respondWithStatusCode(_0x337cda,_0x16b450){_0x16b450=_0x16b450||0xcc;return function(_0x384246){if(_0x384246){return _0x337cda[_0x8fde('0x19')](_0x16b450);}return _0x337cda[_0x8fde('0x1a')](_0x16b450)[_0x8fde('0x1b')]();};}function respondWithResult(_0x85cbbc,_0x5aa399){_0x5aa399=_0x5aa399||0xc8;return function(_0x1b9cbf){if(_0x1b9cbf){return _0x85cbbc[_0x8fde('0x1a')](_0x5aa399)[_0x8fde('0x1c')](_0x1b9cbf);}};}function respondWithFilteredResult(_0x51069c,_0x310d52){return function(_0x49c828){if(_0x49c828){var _0x4bb270=typeof _0x310d52['offset']===_0x8fde('0x1d')&&typeof _0x310d52[_0x8fde('0x1e')]===_0x8fde('0x1d');var _0x4c3c60=_0x49c828['count'];var _0x819568=_0x4bb270?0x0:_0x310d52[_0x8fde('0x1f')];var _0x180047=_0x4bb270?_0x49c828[_0x8fde('0x20')]:_0x310d52[_0x8fde('0x1f')]+_0x310d52[_0x8fde('0x1e')];var _0x35e9e8;if(_0x180047>=_0x4c3c60){_0x180047=_0x4c3c60;_0x35e9e8=0xc8;}else{_0x35e9e8=0xce;}_0x51069c['status'](_0x35e9e8);return _0x51069c[_0x8fde('0x21')](_0x8fde('0x22'),_0x819568+'-'+_0x180047+'/'+_0x4c3c60)[_0x8fde('0x1c')](_0x49c828);}return null;};}function patchUpdates(_0x368ec4){return function(_0x421bb5){try{jsonpatch[_0x8fde('0x23')](_0x421bb5,_0x368ec4,!![]);}catch(_0x7db698){return BPromise[_0x8fde('0x24')](_0x7db698);}return _0x421bb5[_0x8fde('0x25')]();};}function saveUpdates(_0x563d02,_0x401dfe){return function(_0x1668e0){if(_0x1668e0){return _0x1668e0[_0x8fde('0x26')](_0x563d02)[_0x8fde('0x27')](function(_0x343689){return _0x343689;});}return null;};}function removeEntity(_0x59c6cf,_0x2a7516){return function(_0x3d0b0a){if(_0x3d0b0a){return _0x3d0b0a[_0x8fde('0x28')]()['then'](function(){_0x59c6cf[_0x8fde('0x1a')](0xcc)[_0x8fde('0x1b')]();});}};}function handleEntityNotFound(_0x48474b,_0x905096){return function(_0x242726){if(!_0x242726){_0x48474b[_0x8fde('0x19')](0x194);}return _0x242726;};}function handleError(_0x5306c0,_0x428e25){_0x428e25=_0x428e25||0x1f4;return function(_0x4e428d){logger[_0x8fde('0x29')](_0x4e428d[_0x8fde('0x2a')]);if(_0x4e428d[_0x8fde('0x2b')]){delete _0x4e428d[_0x8fde('0x2b')];}_0x5306c0[_0x8fde('0x1a')](_0x428e25)[_0x8fde('0x2c')](_0x4e428d);};}exports[_0x8fde('0x2d')]=function(_0x4236d8,_0x51d81f){var _0x1c291d={},_0x4d267d={},_0x3fed07={'count':0x0,'rows':[]};var _0x5c0e08=_[_0x8fde('0x2e')](db[_0x8fde('0x2f')][_0x8fde('0x30')],function(_0x570093){return{'name':_0x570093[_0x8fde('0x31')],'type':_0x570093[_0x8fde('0x32')][_0x8fde('0x33')]};});_0x4d267d[_0x8fde('0x34')]=_[_0x8fde('0x2e')](_0x5c0e08,_0x8fde('0x2b'));_0x4d267d[_0x8fde('0x35')]=_[_0x8fde('0x36')](_0x4236d8[_0x8fde('0x35')]);_0x4d267d[_0x8fde('0x37')]=_[_0x8fde('0x38')](_0x4d267d[_0x8fde('0x34')],_0x4d267d[_0x8fde('0x35')]);_0x1c291d['attributes']=_['intersection'](_0x4d267d[_0x8fde('0x34')],qs[_0x8fde('0x39')](_0x4236d8['query'][_0x8fde('0x39')]));_0x1c291d[_0x8fde('0x3a')]=_0x1c291d[_0x8fde('0x3a')][_0x8fde('0x3b')]?_0x1c291d[_0x8fde('0x3a')]:_0x4d267d['model'];if(!_0x4236d8[_0x8fde('0x35')][_0x8fde('0x3c')](_0x8fde('0x3d'))){_0x1c291d['limit']=qs[_0x8fde('0x1e')](_0x4236d8[_0x8fde('0x35')][_0x8fde('0x1e')]);_0x1c291d[_0x8fde('0x1f')]=qs[_0x8fde('0x1f')](_0x4236d8['query'][_0x8fde('0x1f')]);}_0x1c291d[_0x8fde('0x3e')]=qs[_0x8fde('0x3f')](_0x4236d8[_0x8fde('0x35')][_0x8fde('0x3f')]);_0x1c291d[_0x8fde('0x40')]=qs['filters'](_[_0x8fde('0x41')](_0x4236d8['query'],_0x4d267d[_0x8fde('0x37')]),_0x5c0e08);if(_0x4236d8[_0x8fde('0x35')]['filter']){_0x1c291d[_0x8fde('0x40')]=_['merge'](_0x1c291d[_0x8fde('0x40')],{'$or':_['map'](_0x5c0e08,function(_0x314276){if(_0x314276[_0x8fde('0x32')]!==_0x8fde('0x42')){var _0x143b75={};_0x143b75[_0x314276[_0x8fde('0x2b')]]={'$like':'%'+_0x4236d8['query']['filter']+'%'};return _0x143b75;}})});}_0x1c291d=_[_0x8fde('0x43')]({},_0x1c291d,_0x4236d8[_0x8fde('0x44')]);var _0x3374e7={'where':_0x1c291d['where']};return db['FaxTransferReport'][_0x8fde('0x20')](_0x3374e7)[_0x8fde('0x27')](function(_0x3f709d){_0x3fed07['count']=_0x3f709d;if(_0x4236d8['query'][_0x8fde('0x45')]){_0x1c291d['include']=[{'all':!![]}];}return db[_0x8fde('0x2f')]['findAll'](_0x1c291d);})[_0x8fde('0x27')](function(_0x33521e){_0x3fed07[_0x8fde('0x46')]=_0x33521e;return _0x3fed07;})['then'](respondWithFilteredResult(_0x51d81f,_0x1c291d))[_0x8fde('0x47')](handleError(_0x51d81f,null));};exports[_0x8fde('0x48')]=function(_0x3411a9,_0xd0c8d0){var _0x553dec={'raw':!![],'where':{'id':_0x3411a9[_0x8fde('0x49')]['id']}},_0x57bdb7={};_0x57bdb7[_0x8fde('0x34')]=_[_0x8fde('0x36')](db[_0x8fde('0x2f')][_0x8fde('0x30')]);_0x57bdb7[_0x8fde('0x35')]=_[_0x8fde('0x36')](_0x3411a9[_0x8fde('0x35')]);_0x57bdb7[_0x8fde('0x37')]=_[_0x8fde('0x38')](_0x57bdb7[_0x8fde('0x34')],_0x57bdb7[_0x8fde('0x35')]);_0x553dec[_0x8fde('0x3a')]=_[_0x8fde('0x38')](_0x57bdb7[_0x8fde('0x34')],qs[_0x8fde('0x39')](_0x3411a9[_0x8fde('0x35')]['fields']));_0x553dec[_0x8fde('0x3a')]=_0x553dec[_0x8fde('0x3a')]['length']?_0x553dec[_0x8fde('0x3a')]:_0x57bdb7[_0x8fde('0x34')];if(_0x3411a9[_0x8fde('0x35')][_0x8fde('0x45')]){_0x553dec[_0x8fde('0x4a')]=[{'all':!![]}];}_0x553dec=_[_0x8fde('0x43')]({},_0x553dec,_0x3411a9[_0x8fde('0x44')]);return db[_0x8fde('0x2f')]['find'](_0x553dec)[_0x8fde('0x27')](handleEntityNotFound(_0xd0c8d0,null))['then'](respondWithResult(_0xd0c8d0,null))['catch'](handleError(_0xd0c8d0,null));};exports[_0x8fde('0x4b')]=function(_0x4ad3ef,_0x2795ee){return db['FaxTransferReport']['create'](_0x4ad3ef['body'],{})[_0x8fde('0x27')](respondWithResult(_0x2795ee,0xc9))['catch'](handleError(_0x2795ee,null));};exports[_0x8fde('0x26')]=function(_0x3fe417,_0x10b1d8){if(_0x3fe417[_0x8fde('0x4c')]['id']){delete _0x3fe417['body']['id'];}return db[_0x8fde('0x2f')][_0x8fde('0x4d')]({'where':{'id':_0x3fe417[_0x8fde('0x49')]['id']}})[_0x8fde('0x27')](handleEntityNotFound(_0x10b1d8,null))[_0x8fde('0x27')](saveUpdates(_0x3fe417[_0x8fde('0x4c')],null))[_0x8fde('0x27')](respondWithResult(_0x10b1d8,null))[_0x8fde('0x47')](handleError(_0x10b1d8,null));};exports['destroy']=function(_0x25081b,_0x4a9ea8){return db[_0x8fde('0x2f')][_0x8fde('0x4d')]({'where':{'id':_0x25081b[_0x8fde('0x49')]['id']}})[_0x8fde('0x27')](handleEntityNotFound(_0x4a9ea8,null))['then'](removeEntity(_0x4a9ea8,null))[_0x8fde('0x47')](handleError(_0x4a9ea8,null));};exports[_0x8fde('0x4e')]=function(_0x39f776,_0x4e6e54){return db[_0x8fde('0x2f')][_0x8fde('0x4e')]()[_0x8fde('0x27')](respondWithResult(_0x4e6e54,null))[_0x8fde('0x47')](handleError(_0x4e6e54,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xec7d=['../../config/environment','./faxTransferReport.attributes','exports','define','FaxTransferReport','report_fax_transfer','uniqueid','lodash','util','../../config/logger','moment','bluebird','request-promise','rimraf'];(function(_0x4e2bcc,_0x546acf){var _0x1dc573=function(_0x3af55d){while(--_0x3af55d){_0x4e2bcc['push'](_0x4e2bcc['shift']());}};_0x1dc573(++_0x546acf);}(_0xec7d,0x1b9));var _0xdec7=function(_0x459a0a,_0x25c46f){_0x459a0a=_0x459a0a-0x0;var _0x4ab46c=_0xec7d[_0x459a0a];return _0x4ab46c;};'use strict';var _=require(_0xdec7('0x0'));var util=require(_0xdec7('0x1'));var logger=require(_0xdec7('0x2'))('api');var moment=require(_0xdec7('0x3'));var BPromise=require(_0xdec7('0x4'));var rp=require(_0xdec7('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0xdec7('0x6'));var config=require(_0xdec7('0x7'));var attributes=require(_0xdec7('0x8'));module[_0xdec7('0x9')]=function(_0x175007,_0x49c1f0){return _0x175007[_0xdec7('0xa')](_0xdec7('0xb'),attributes,{'tableName':_0xdec7('0xc'),'paranoid':![],'indexes':[{'name':'uniqueid','fields':[_0xdec7('0xd')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x8b91=['exports','FaxTransferReport','report_fax_transfer','uniqueid','lodash','util','../../config/logger','api','moment','bluebird','path','rimraf','../../config/environment'];(function(_0x1e6b81,_0x1eb3ec){var _0x457c87=function(_0x46f35e){while(--_0x46f35e){_0x1e6b81['push'](_0x1e6b81['shift']());}};_0x457c87(++_0x1eb3ec);}(_0x8b91,0xd4));var _0x18b9=function(_0x16b084,_0x48e6e7){_0x16b084=_0x16b084-0x0;var _0x573508=_0x8b91[_0x16b084];return _0x573508;};'use strict';var _=require(_0x18b9('0x0'));var util=require(_0x18b9('0x1'));var logger=require(_0x18b9('0x2'))(_0x18b9('0x3'));var moment=require(_0x18b9('0x4'));var BPromise=require(_0x18b9('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x18b9('0x6'));var rimraf=require(_0x18b9('0x7'));var config=require(_0x18b9('0x8'));var attributes=require('./faxTransferReport.attributes');module[_0x18b9('0x9')]=function(_0x4f3f0b,_0x2acd58){return _0x4f3f0b['define'](_0x18b9('0xa'),attributes,{'tableName':_0x18b9('0xb'),'paranoid':![],'indexes':[{'name':_0x18b9('0xc'),'fields':[_0x18b9('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x21be=['result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../config/logger','rpc','../../config/environment','client','http','info','request\x20sent','FaxTransferReport,\x20%s,\x20%s,\x20%s','error','message','FaxTransferReport,\x20%s,\x20%s'];(function(_0x57b54c,_0x54ce0d){var _0x59cc19=function(_0xa33bc6){while(--_0xa33bc6){_0x57b54c['push'](_0x57b54c['shift']());}};_0x59cc19(++_0x54ce0d);}(_0x21be,0x1f0));var _0xe21b=function(_0x144725,_0x2ad835){_0x144725=_0x144725-0x0;var _0x516c96=_0x21be[_0x144725];return _0x516c96;};'use strict';var _=require(_0xe21b('0x0'));var util=require(_0xe21b('0x1'));var moment=require(_0xe21b('0x2'));var BPromise=require(_0xe21b('0x3'));var rs=require(_0xe21b('0x4'));var fs=require('fs');var Redis=require(_0xe21b('0x5'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xe21b('0x6'))(_0xe21b('0x7'));var config=require(_0xe21b('0x8'));var jayson=require('jayson/promise');var client=jayson[_0xe21b('0x9')][_0xe21b('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x92aa54,_0x411d27,_0x416fff){return new BPromise(function(_0x1f79bf,_0x518b26){return client['request'](_0x92aa54,_0x416fff)['then'](function(_0x34eb2f){logger[_0xe21b('0xb')]('FaxTransferReport,\x20%s,\x20%s',_0x411d27,_0xe21b('0xc'));logger['debug'](_0xe21b('0xd'),_0x411d27,'request\x20sent',JSON['stringify'](_0x34eb2f));if(_0x34eb2f[_0xe21b('0xe')]){if(_0x34eb2f[_0xe21b('0xe')]['code']===0x1f4){logger[_0xe21b('0xe')]('FaxTransferReport,\x20%s,\x20%s',_0x411d27,_0x34eb2f[_0xe21b('0xe')][_0xe21b('0xf')]);return _0x518b26(_0x34eb2f[_0xe21b('0xe')][_0xe21b('0xf')]);}logger[_0xe21b('0xe')](_0xe21b('0x10'),_0x411d27,_0x34eb2f[_0xe21b('0xe')][_0xe21b('0xf')]);return _0x1f79bf(_0x34eb2f[_0xe21b('0xe')]['message']);}else{logger[_0xe21b('0xb')](_0xe21b('0x10'),_0x411d27,_0xe21b('0xc'));_0x1f79bf(_0x34eb2f[_0xe21b('0x11')][_0xe21b('0xf')]);}})[_0xe21b('0x12')](function(_0x345d9e){logger[_0xe21b('0xe')](_0xe21b('0x10'),_0x411d27,_0x345d9e);_0x518b26(_0x345d9e);});});}
\ No newline at end of file
+var _0xd536=['lodash','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','request','then','FaxTransferReport,\x20%s,\x20%s','FaxTransferReport,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','info','result','catch'];(function(_0x7bbb7b,_0x155df8){var _0x11adc6=function(_0x3cf5cc){while(--_0x3cf5cc){_0x7bbb7b['push'](_0x7bbb7b['shift']());}};_0x11adc6(++_0x155df8);}(_0xd536,0x1ce));var _0x6d53=function(_0x59da9a,_0x31dfb7){_0x59da9a=_0x59da9a-0x0;var _0x5c32d5=_0xd536[_0x59da9a];return _0x5c32d5;};'use strict';var _=require(_0x6d53('0x0'));var util=require('util');var moment=require(_0x6d53('0x1'));var BPromise=require(_0x6d53('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x6d53('0x3'));var db=require(_0x6d53('0x4'))['db'];var utils=require(_0x6d53('0x5'));var logger=require(_0x6d53('0x6'))('rpc');var config=require(_0x6d53('0x7'));var jayson=require(_0x6d53('0x8'));var client=jayson[_0x6d53('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x4c1646,_0x506da4,_0x156b1a){return new BPromise(function(_0x1ec5a9,_0x5b95b2){return client[_0x6d53('0xa')](_0x4c1646,_0x156b1a)[_0x6d53('0xb')](function(_0x1e4bce){logger['info'](_0x6d53('0xc'),_0x506da4,'request\x20sent');logger['debug'](_0x6d53('0xd'),_0x506da4,_0x6d53('0xe'),JSON[_0x6d53('0xf')](_0x1e4bce));if(_0x1e4bce[_0x6d53('0x10')]){if(_0x1e4bce[_0x6d53('0x10')][_0x6d53('0x11')]===0x1f4){logger[_0x6d53('0x10')](_0x6d53('0xc'),_0x506da4,_0x1e4bce[_0x6d53('0x10')]['message']);return _0x5b95b2(_0x1e4bce[_0x6d53('0x10')]['message']);}logger[_0x6d53('0x10')](_0x6d53('0xc'),_0x506da4,_0x1e4bce[_0x6d53('0x10')][_0x6d53('0x12')]);return _0x1ec5a9(_0x1e4bce[_0x6d53('0x10')][_0x6d53('0x12')]);}else{logger[_0x6d53('0x13')](_0x6d53('0xc'),_0x506da4,_0x6d53('0xe'));_0x1ec5a9(_0x1e4bce[_0x6d53('0x14')][_0x6d53('0x12')]);}})[_0x6d53('0x15')](function(_0x38ae24){logger[_0x6d53('0x10')](_0x6d53('0xc'),_0x506da4,_0x38ae24);_0x5b95b2(_0x38ae24);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a9f=['/describe','/:id','show','post','create','put','update','delete','destroy','util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./faxTransferReport.controller','get','isAuthenticated','index'];(function(_0x505735,_0x7417cc){var _0x20dd8b=function(_0x47a214){while(--_0x47a214){_0x505735['push'](_0x505735['shift']());}};_0x20dd8b(++_0x7417cc);}(_0x7a9f,0x11a));var _0xf7a9=function(_0x14036f,_0x47dd17){_0x14036f=_0x14036f-0x0;var _0x3d696b=_0x7a9f[_0x14036f];return _0x3d696b;};'use strict';var multer=require('multer');var util=require(_0xf7a9('0x0'));var path=require(_0xf7a9('0x1'));var timeout=require(_0xf7a9('0x2'));var express=require(_0xf7a9('0x3'));var router=express['Router']();var fs_extra=require(_0xf7a9('0x4'));var auth=require(_0xf7a9('0x5'));var interaction=require(_0xf7a9('0x6'));var config=require(_0xf7a9('0x7'));var controller=require(_0xf7a9('0x8'));router[_0xf7a9('0x9')]('/',auth[_0xf7a9('0xa')](),controller[_0xf7a9('0xb')]);router[_0xf7a9('0x9')](_0xf7a9('0xc'),auth[_0xf7a9('0xa')](),controller['describe']);router[_0xf7a9('0x9')](_0xf7a9('0xd'),auth[_0xf7a9('0xa')](),controller[_0xf7a9('0xe')]);router[_0xf7a9('0xf')]('/',auth[_0xf7a9('0xa')](),controller[_0xf7a9('0x10')]);router[_0xf7a9('0x11')](_0xf7a9('0xd'),auth[_0xf7a9('0xa')](),controller[_0xf7a9('0x12')]);router[_0xf7a9('0x13')](_0xf7a9('0xd'),auth[_0xf7a9('0xa')](),controller[_0xf7a9('0x14')]);module['exports']=router;
\ No newline at end of file
+var _0xdf56=['fs-extra','../../components/interaction/service','../../config/environment','get','index','/describe','isAuthenticated','describe','show','post','put','delete','destroy','exports','multer','util','path','express','Router'];(function(_0x31038e,_0x37cf9f){var _0x2506f3=function(_0x3e5015){while(--_0x3e5015){_0x31038e['push'](_0x31038e['shift']());}};_0x2506f3(++_0x37cf9f);}(_0xdf56,0x80));var _0x6df5=function(_0x4b912,_0x183b72){_0x4b912=_0x4b912-0x0;var _0x59d609=_0xdf56[_0x4b912];return _0x59d609;};'use strict';var multer=require(_0x6df5('0x0'));var util=require(_0x6df5('0x1'));var path=require(_0x6df5('0x2'));var timeout=require('connect-timeout');var express=require(_0x6df5('0x3'));var router=express[_0x6df5('0x4')]();var fs_extra=require(_0x6df5('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x6df5('0x6'));var config=require(_0x6df5('0x7'));var controller=require('./faxTransferReport.controller');router[_0x6df5('0x8')]('/',auth['isAuthenticated'](),controller[_0x6df5('0x9')]);router[_0x6df5('0x8')](_0x6df5('0xa'),auth[_0x6df5('0xb')](),controller[_0x6df5('0xc')]);router[_0x6df5('0x8')]('/:id',auth[_0x6df5('0xb')](),controller[_0x6df5('0xd')]);router[_0x6df5('0xe')]('/',auth['isAuthenticated'](),controller['create']);router[_0x6df5('0xf')]('/:id',auth['isAuthenticated'](),controller['update']);router[_0x6df5('0x10')]('/:id',auth[_0x6df5('0xb')](),controller[_0x6df5('0x11')]);module[_0x6df5('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x43a8=['index','get','/:id','show','/:id/configurations','getConfigurations','getFields','post','create','addConfiguration','put','update','delete','destroy','exports','multer','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intDeskAccount.controller','isAuthenticated'];(function(_0x814a06,_0x470a52){var _0x24c28d=function(_0x2d2793){while(--_0x2d2793){_0x814a06['push'](_0x814a06['shift']());}};_0x24c28d(++_0x470a52);}(_0x43a8,0x1ea));var _0x843a=function(_0x3b22ee,_0x5e3709){_0x3b22ee=_0x3b22ee-0x0;var _0x353d78=_0x43a8[_0x3b22ee];return _0x353d78;};'use strict';var multer=require(_0x843a('0x0'));var util=require('util');var path=require(_0x843a('0x1'));var timeout=require(_0x843a('0x2'));var express=require('express');var router=express[_0x843a('0x3')]();var fs_extra=require(_0x843a('0x4'));var auth=require(_0x843a('0x5'));var interaction=require(_0x843a('0x6'));var config=require(_0x843a('0x7'));var controller=require(_0x843a('0x8'));router['get']('/',auth[_0x843a('0x9')](),controller[_0x843a('0xa')]);router[_0x843a('0xb')](_0x843a('0xc'),auth[_0x843a('0x9')](),controller[_0x843a('0xd')]);router[_0x843a('0xb')](_0x843a('0xe'),auth['isAuthenticated'](),controller[_0x843a('0xf')]);router[_0x843a('0xb')]('/:id/fields',auth['isAuthenticated'](),controller[_0x843a('0x10')]);router[_0x843a('0x11')]('/',auth[_0x843a('0x9')](),controller[_0x843a('0x12')]);router[_0x843a('0x11')]('/:id/configurations',auth[_0x843a('0x9')](),controller[_0x843a('0x13')]);router[_0x843a('0x14')](_0x843a('0xc'),auth[_0x843a('0x9')](),controller[_0x843a('0x15')]);router[_0x843a('0x16')]('/:id',auth[_0x843a('0x9')](),controller[_0x843a('0x17')]);module[_0x843a('0x18')]=router;
\ No newline at end of file
+var _0x9431=['Router','fs-extra','../../components/auth/service','../../config/environment','./intDeskAccount.controller','get','isAuthenticated','show','/:id/configurations','getConfigurations','/:id/fields','getFields','post','create','addConfiguration','/:id','delete','destroy','multer','util','connect-timeout','express'];(function(_0x558bab,_0x571c29){var _0x47d60e=function(_0x4d6e9c){while(--_0x4d6e9c){_0x558bab['push'](_0x558bab['shift']());}};_0x47d60e(++_0x571c29);}(_0x9431,0x1e0));var _0x1943=function(_0x24377b,_0x31c48c){_0x24377b=_0x24377b-0x0;var _0x3f6f9b=_0x9431[_0x24377b];return _0x3f6f9b;};'use strict';var multer=require(_0x1943('0x0'));var util=require(_0x1943('0x1'));var path=require('path');var timeout=require(_0x1943('0x2'));var express=require(_0x1943('0x3'));var router=express[_0x1943('0x4')]();var fs_extra=require(_0x1943('0x5'));var auth=require(_0x1943('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0x1943('0x7'));var controller=require(_0x1943('0x8'));router[_0x1943('0x9')]('/',auth[_0x1943('0xa')](),controller['index']);router[_0x1943('0x9')]('/:id',auth[_0x1943('0xa')](),controller[_0x1943('0xb')]);router[_0x1943('0x9')](_0x1943('0xc'),auth['isAuthenticated'](),controller[_0x1943('0xd')]);router['get'](_0x1943('0xe'),auth[_0x1943('0xa')](),controller[_0x1943('0xf')]);router[_0x1943('0x10')]('/',auth[_0x1943('0xa')](),controller[_0x1943('0x11')]);router[_0x1943('0x10')]('/:id/configurations',auth['isAuthenticated'](),controller[_0x1943('0x12')]);router['put'](_0x1943('0x13'),auth[_0x1943('0xa')](),controller['update']);router[_0x1943('0x14')]('/:id',auth[_0x1943('0xa')](),controller[_0x1943('0x15')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xceb0=['integrationTab','newTab','sequelize','exports','STRING','ENUM','basic'];(function(_0x1c9ac1,_0x8f1c5b){var _0x1f17cc=function(_0x3d3c37){while(--_0x3d3c37){_0x1c9ac1['push'](_0x1c9ac1['shift']());}};_0x1f17cc(++_0x8f1c5b);}(_0xceb0,0x152));var _0x0ceb=function(_0x359980,_0x427c49){_0x359980=_0x359980-0x0;var _0x2b1610=_0xceb0[_0x359980];return _0x2b1610;};'use strict';var Sequelize=require(_0x0ceb('0x0'));module[_0x0ceb('0x1')]={'name':{'type':Sequelize[_0x0ceb('0x2')]},'description':{'type':Sequelize['STRING']},'username':{'type':Sequelize[_0x0ceb('0x2')]},'remoteUri':{'type':Sequelize['STRING']},'authType':{'type':Sequelize[_0x0ceb('0x3')](_0x0ceb('0x4')),'defaultValue':'basic'},'password':{'type':Sequelize[_0x0ceb('0x2')]},'consumerKey':{'type':Sequelize[_0x0ceb('0x2')]},'consumerSecret':{'type':Sequelize[_0x0ceb('0x2')]},'token':{'type':Sequelize['STRING']},'tokenSecret':{'type':Sequelize[_0x0ceb('0x2')]},'serverUrl':{'type':Sequelize[_0x0ceb('0x2')],'allowNull':![]},'type':{'type':Sequelize[_0x0ceb('0x3')](_0x0ceb('0x5'),_0x0ceb('0x6')),'defaultValue':'integrationTab'}};
\ No newline at end of file
+var _0xcd56=['basic','ENUM','integrationTab','newTab','exports','STRING'];(function(_0x6ce6b4,_0x3ea81c){var _0x316b6e=function(_0x105d91){while(--_0x105d91){_0x6ce6b4['push'](_0x6ce6b4['shift']());}};_0x316b6e(++_0x3ea81c);}(_0xcd56,0xca));var _0x6cd5=function(_0x2e2c48,_0x11619e){_0x2e2c48=_0x2e2c48-0x0;var _0x3f4c88=_0xcd56[_0x2e2c48];return _0x3f4c88;};'use strict';var Sequelize=require('sequelize');module[_0x6cd5('0x0')]={'name':{'type':Sequelize[_0x6cd5('0x1')]},'description':{'type':Sequelize[_0x6cd5('0x1')]},'username':{'type':Sequelize[_0x6cd5('0x1')]},'remoteUri':{'type':Sequelize[_0x6cd5('0x1')]},'authType':{'type':Sequelize['ENUM'](_0x6cd5('0x2')),'defaultValue':_0x6cd5('0x2')},'password':{'type':Sequelize[_0x6cd5('0x1')]},'consumerKey':{'type':Sequelize[_0x6cd5('0x1')]},'consumerSecret':{'type':Sequelize[_0x6cd5('0x1')]},'token':{'type':Sequelize[_0x6cd5('0x1')]},'tokenSecret':{'type':Sequelize[_0x6cd5('0x1')]},'serverUrl':{'type':Sequelize['STRING'],'allowNull':![]},'type':{'type':Sequelize[_0x6cd5('0x3')](_0x6cd5('0x4'),_0x6cd5('0x5')),'defaultValue':_0x6cd5('0x4')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6e69=['query','filters','intersection','attributes','fields','length','hasOwnProperty','sort','where','pick','merge','VIRTUAL','filter','DeskAccount','includeAll','include','findAll','rows','show','params','keys','options','find','catch','create','body','update','findOne','DeskConfiguration','order','map','getConfigurations','nolimit','addConfiguration','getSubjects','channel','Descriptions','getDescriptions','DeskField','Subjects','getFields','priority','username','password','consumerSecret','token','remoteUri','slice','substring','lastIndexOf','GET','format','%s/custom_fields','application/json','authType','basic','headers','Basic\x20%s','toString','base64','concat','_embedded','entries','active','label','test','error','getFields,\x20%s,\x20%s,\x20%s','stringify','Wrong\x20credentials','statusCode','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','lodash','squel','crypto','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','json','undefined','limit','offset','count','set','Content-Range','apply','save','then','destroy','end','name','send','index','rawAttributes','fieldName','type','key','model'];(function(_0x251dfc,_0x3b9657){var _0x64232e=function(_0x37f51c){while(--_0x37f51c){_0x251dfc['push'](_0x251dfc['shift']());}};_0x64232e(++_0x3b9657);}(_0x6e69,0xc0));var _0x96e6=function(_0x33a517,_0x43343e){_0x33a517=_0x33a517-0x0;var _0x3c34a7=_0x6e69[_0x33a517];return _0x3c34a7;};'use strict';var emlformat=require(_0x96e6('0x0'));var rimraf=require(_0x96e6('0x1'));var zipdir=require(_0x96e6('0x2'));var jsonpatch=require(_0x96e6('0x3'));var rp=require(_0x96e6('0x4'));var moment=require(_0x96e6('0x5'));var BPromise=require(_0x96e6('0x6'));var Mustache=require(_0x96e6('0x7'));var util=require(_0x96e6('0x8'));var path=require(_0x96e6('0x9'));var sox=require(_0x96e6('0xa'));var csv=require(_0x96e6('0xb'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x96e6('0xc'));var squel=require(_0x96e6('0xd'));var crypto=require(_0x96e6('0xe'));var jsforce=require('jsforce');var deskjs=require(_0x96e6('0xf'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x96e6('0x10'));var authService=require(_0x96e6('0x11'));var qs=require(_0x96e6('0x12'));var as=require(_0x96e6('0x13'));var hardwareService=require(_0x96e6('0x14'));var logger=require(_0x96e6('0x15'))(_0x96e6('0x16'));var utils=require(_0x96e6('0x17'));var config=require(_0x96e6('0x18'));var licenseUtil=require(_0x96e6('0x19'));var db=require(_0x96e6('0x1a'))['db'];var integrations=require(_0x96e6('0x1b'));function respondWithStatusCode(_0x7ddaed,_0x17504e){_0x17504e=_0x17504e||0xcc;return function(_0x1148a3){if(_0x1148a3){return _0x7ddaed[_0x96e6('0x1c')](_0x17504e);}return _0x7ddaed[_0x96e6('0x1d')](_0x17504e)['end']();};}function respondWithResult(_0x16bcfe,_0x175dc9){_0x175dc9=_0x175dc9||0xc8;return function(_0x5c2494){if(_0x5c2494){return _0x16bcfe[_0x96e6('0x1d')](_0x175dc9)[_0x96e6('0x1e')](_0x5c2494);}};}function respondWithFilteredResult(_0x541e2e,_0x44fc6c){return function(_0x726ba3){if(_0x726ba3){var _0x2fd935=typeof _0x44fc6c['offset']===_0x96e6('0x1f')&&typeof _0x44fc6c[_0x96e6('0x20')]===_0x96e6('0x1f');var _0x19e178=_0x726ba3['count'];var _0x3d6e2d=_0x2fd935?0x0:_0x44fc6c[_0x96e6('0x21')];var _0x5bb651=_0x2fd935?_0x726ba3[_0x96e6('0x22')]:_0x44fc6c['offset']+_0x44fc6c['limit'];var _0x48c7ee;if(_0x5bb651>=_0x19e178){_0x5bb651=_0x19e178;_0x48c7ee=0xc8;}else{_0x48c7ee=0xce;}_0x541e2e['status'](_0x48c7ee);return _0x541e2e[_0x96e6('0x23')](_0x96e6('0x24'),_0x3d6e2d+'-'+_0x5bb651+'/'+_0x19e178)['json'](_0x726ba3);}return null;};}function patchUpdates(_0x57ad73){return function(_0x4d49f6){try{jsonpatch[_0x96e6('0x25')](_0x4d49f6,_0x57ad73,!![]);}catch(_0x1b1419){return BPromise['reject'](_0x1b1419);}return _0x4d49f6[_0x96e6('0x26')]();};}function saveUpdates(_0x56a86e,_0x3b6b92){return function(_0x595314){if(_0x595314){return _0x595314['update'](_0x56a86e)[_0x96e6('0x27')](function(_0x11500e){return _0x11500e;});}return null;};}function removeEntity(_0x452f86,_0x16c48e){return function(_0x395ce0){if(_0x395ce0){return _0x395ce0[_0x96e6('0x28')]()[_0x96e6('0x27')](function(){_0x452f86[_0x96e6('0x1d')](0xcc)[_0x96e6('0x29')]();});}};}function handleEntityNotFound(_0x345ffe,_0x13ca26){return function(_0x3ea862){if(!_0x3ea862){_0x345ffe['sendStatus'](0x194);}return _0x3ea862;};}function handleError(_0x4da340,_0x456422){_0x456422=_0x456422||0x1f4;return function(_0x3f451c){logger['error'](_0x3f451c['stack']);if(_0x3f451c['name']){delete _0x3f451c[_0x96e6('0x2a')];}_0x4da340[_0x96e6('0x1d')](_0x456422)[_0x96e6('0x2b')](_0x3f451c);};}exports[_0x96e6('0x2c')]=function(_0xe76d1a,_0x876e34){var _0x212cd3={},_0x2dc64e={},_0x229a08={'count':0x0,'rows':[]};var _0x4efd70=_['map'](db['DeskAccount'][_0x96e6('0x2d')],function(_0x5f2dbe){return{'name':_0x5f2dbe[_0x96e6('0x2e')],'type':_0x5f2dbe[_0x96e6('0x2f')][_0x96e6('0x30')]};});_0x2dc64e[_0x96e6('0x31')]=_['map'](_0x4efd70,'name');_0x2dc64e[_0x96e6('0x32')]=_['keys'](_0xe76d1a[_0x96e6('0x32')]);_0x2dc64e[_0x96e6('0x33')]=_[_0x96e6('0x34')](_0x2dc64e[_0x96e6('0x31')],_0x2dc64e[_0x96e6('0x32')]);_0x212cd3[_0x96e6('0x35')]=_[_0x96e6('0x34')](_0x2dc64e[_0x96e6('0x31')],qs['fields'](_0xe76d1a[_0x96e6('0x32')][_0x96e6('0x36')]));_0x212cd3[_0x96e6('0x35')]=_0x212cd3[_0x96e6('0x35')][_0x96e6('0x37')]?_0x212cd3['attributes']:_0x2dc64e[_0x96e6('0x31')];if(!_0xe76d1a[_0x96e6('0x32')][_0x96e6('0x38')]('nolimit')){_0x212cd3[_0x96e6('0x20')]=qs['limit'](_0xe76d1a[_0x96e6('0x32')][_0x96e6('0x20')]);_0x212cd3[_0x96e6('0x21')]=qs[_0x96e6('0x21')](_0xe76d1a[_0x96e6('0x32')][_0x96e6('0x21')]);}_0x212cd3['order']=qs[_0x96e6('0x39')](_0xe76d1a[_0x96e6('0x32')]['sort']);_0x212cd3[_0x96e6('0x3a')]=qs[_0x96e6('0x33')](_[_0x96e6('0x3b')](_0xe76d1a[_0x96e6('0x32')],_0x2dc64e[_0x96e6('0x33')]),_0x4efd70);if(_0xe76d1a[_0x96e6('0x32')]['filter']){_0x212cd3['where']=_[_0x96e6('0x3c')](_0x212cd3['where'],{'$or':_['map'](_0x4efd70,function(_0x31af2e){if(_0x31af2e[_0x96e6('0x2f')]!==_0x96e6('0x3d')){var _0x317a2f={};_0x317a2f[_0x31af2e[_0x96e6('0x2a')]]={'$like':'%'+_0xe76d1a['query'][_0x96e6('0x3e')]+'%'};return _0x317a2f;}})});}_0x212cd3=_['merge']({},_0x212cd3,_0xe76d1a['options']);var _0x46f90b={'where':_0x212cd3[_0x96e6('0x3a')]};return db[_0x96e6('0x3f')][_0x96e6('0x22')](_0x46f90b)[_0x96e6('0x27')](function(_0x311bec){_0x229a08[_0x96e6('0x22')]=_0x311bec;if(_0xe76d1a[_0x96e6('0x32')][_0x96e6('0x40')]){_0x212cd3[_0x96e6('0x41')]=[{'all':!![]}];}return db[_0x96e6('0x3f')][_0x96e6('0x42')](_0x212cd3);})['then'](function(_0x3d10cd){_0x229a08[_0x96e6('0x43')]=_0x3d10cd;return _0x229a08;})['then'](respondWithFilteredResult(_0x876e34,_0x212cd3))['catch'](handleError(_0x876e34,null));};exports[_0x96e6('0x44')]=function(_0x4a0edc,_0x45f75f){var _0x455b16={'raw':![],'where':{'id':_0x4a0edc[_0x96e6('0x45')]['id']}},_0x1e2200={};_0x1e2200[_0x96e6('0x31')]=_[_0x96e6('0x46')](db[_0x96e6('0x3f')][_0x96e6('0x2d')]);_0x1e2200[_0x96e6('0x32')]=_['keys'](_0x4a0edc['query']);_0x1e2200[_0x96e6('0x33')]=_[_0x96e6('0x34')](_0x1e2200[_0x96e6('0x31')],_0x1e2200[_0x96e6('0x32')]);_0x455b16['attributes']=_[_0x96e6('0x34')](_0x1e2200[_0x96e6('0x31')],qs[_0x96e6('0x36')](_0x4a0edc['query']['fields']));_0x455b16[_0x96e6('0x35')]=_0x455b16[_0x96e6('0x35')][_0x96e6('0x37')]?_0x455b16[_0x96e6('0x35')]:_0x1e2200[_0x96e6('0x31')];if(_0x4a0edc[_0x96e6('0x32')][_0x96e6('0x40')]){_0x455b16['include']=[{'all':!![]}];}_0x455b16=_[_0x96e6('0x3c')]({},_0x455b16,_0x4a0edc[_0x96e6('0x47')]);return db[_0x96e6('0x3f')][_0x96e6('0x48')](_0x455b16)[_0x96e6('0x27')](handleEntityNotFound(_0x45f75f,null))['then'](respondWithResult(_0x45f75f,null))[_0x96e6('0x49')](handleError(_0x45f75f,null));};exports['create']=function(_0x2c082b,_0x1bc1b9){return db['DeskAccount'][_0x96e6('0x4a')](_0x2c082b[_0x96e6('0x4b')],{})[_0x96e6('0x27')](respondWithResult(_0x1bc1b9,0xc9))[_0x96e6('0x49')](handleError(_0x1bc1b9,null));};exports[_0x96e6('0x4c')]=function(_0x78eb4e,_0x12d6d3){if(_0x78eb4e['body']['id']){delete _0x78eb4e[_0x96e6('0x4b')]['id'];}return db[_0x96e6('0x3f')][_0x96e6('0x48')]({'where':{'id':_0x78eb4e['params']['id']}})[_0x96e6('0x27')](handleEntityNotFound(_0x12d6d3,null))['then'](saveUpdates(_0x78eb4e[_0x96e6('0x4b')],null))['then'](respondWithResult(_0x12d6d3,null))['catch'](handleError(_0x12d6d3,null));};exports[_0x96e6('0x28')]=function(_0x943fd6,_0x3a2c9e){return db[_0x96e6('0x3f')][_0x96e6('0x48')]({'where':{'id':_0x943fd6[_0x96e6('0x45')]['id']}})['then'](handleEntityNotFound(_0x3a2c9e,null))['then'](removeEntity(_0x3a2c9e,null))[_0x96e6('0x49')](handleError(_0x3a2c9e,null));};exports['getConfigurations']=function(_0xf78338,_0x3850fc,_0x80bee4){var _0x42b766={};var _0x2e0a5f={};var _0x2518a9;var _0x4b3354;return db[_0x96e6('0x3f')][_0x96e6('0x4d')]({'where':{'id':_0xf78338[_0x96e6('0x45')]['id']}})[_0x96e6('0x27')](handleEntityNotFound(_0x3850fc,null))[_0x96e6('0x27')](function(_0x5f3fdf){if(_0x5f3fdf){_0x2518a9=_0x5f3fdf;_0x2e0a5f[_0x96e6('0x31')]=_[_0x96e6('0x46')](db[_0x96e6('0x4e')][_0x96e6('0x2d')]);_0x2e0a5f[_0x96e6('0x32')]=_[_0x96e6('0x46')](_0xf78338[_0x96e6('0x32')]);_0x2e0a5f[_0x96e6('0x33')]=_['intersection'](_0x2e0a5f[_0x96e6('0x31')],_0x2e0a5f['query']);_0x42b766['attributes']=_[_0x96e6('0x34')](_0x2e0a5f['model'],qs['fields'](_0xf78338[_0x96e6('0x32')][_0x96e6('0x36')]));_0x42b766['attributes']=_0x42b766[_0x96e6('0x35')][_0x96e6('0x37')]?_0x42b766['attributes']:_0x2e0a5f['model'];_0x42b766[_0x96e6('0x4f')]=qs[_0x96e6('0x39')](_0xf78338['query'][_0x96e6('0x39')]);_0x42b766['where']=qs[_0x96e6('0x33')](_[_0x96e6('0x3b')](_0xf78338['query'],_0x2e0a5f[_0x96e6('0x33')]));if(_0xf78338[_0x96e6('0x32')][_0x96e6('0x3e')]){_0x42b766[_0x96e6('0x3a')]=_[_0x96e6('0x3c')](_0x42b766[_0x96e6('0x3a')],{'$or':_[_0x96e6('0x50')](_0x42b766[_0x96e6('0x35')],function(_0x2c7f68){var _0x24cb51={};_0x24cb51[_0x2c7f68]={'$like':'%'+_0xf78338[_0x96e6('0x32')][_0x96e6('0x3e')]+'%'};return _0x24cb51;})});}_0x42b766=_[_0x96e6('0x3c')]({},_0x42b766,_0xf78338[_0x96e6('0x47')]);return _0x2518a9[_0x96e6('0x51')](_0x42b766);}})[_0x96e6('0x27')](function(_0xc63fef){if(_0xc63fef){_0x4b3354=_0xc63fef[_0x96e6('0x37')];if(!_0xf78338['query'][_0x96e6('0x38')](_0x96e6('0x52'))){_0x42b766[_0x96e6('0x20')]=qs[_0x96e6('0x20')](_0xf78338[_0x96e6('0x32')]['limit']);_0x42b766[_0x96e6('0x21')]=qs[_0x96e6('0x21')](_0xf78338[_0x96e6('0x32')]['offset']);}return _0x2518a9['getConfigurations'](_0x42b766);}})[_0x96e6('0x27')](function(_0x22dff0){if(_0x22dff0){return _0x22dff0?{'count':_0x4b3354,'rows':_0x22dff0}:null;}})['then'](respondWithResult(_0x3850fc,null))[_0x96e6('0x49')](handleError(_0x3850fc,null));};exports[_0x96e6('0x53')]=function(_0x43ef94,_0x37354c,_0x124dff){if(_0x43ef94[_0x96e6('0x4b')]['id']){delete _0x43ef94[_0x96e6('0x4b')]['id'];}return db[_0x96e6('0x3f')][_0x96e6('0x4d')]({'where':{'id':_0x43ef94[_0x96e6('0x45')]['id']}})['then'](handleEntityNotFound(_0x37354c,null))[_0x96e6('0x27')](function(_0x9d8ca5){if(_0x9d8ca5){_0x43ef94[_0x96e6('0x4b')]['AccountId']=_0x9d8ca5['id'];_0x43ef94[_0x96e6('0x4b')]['Subjects']=integrations[_0x96e6('0x54')](_0x43ef94['body'][_0x96e6('0x55')],_0x43ef94[_0x96e6('0x4b')]['type']);_0x43ef94[_0x96e6('0x4b')][_0x96e6('0x56')]=integrations[_0x96e6('0x57')](_0x43ef94[_0x96e6('0x4b')][_0x96e6('0x55')],_0x43ef94[_0x96e6('0x4b')][_0x96e6('0x2f')]);return db[_0x96e6('0x4e')]['create'](_0x43ef94[_0x96e6('0x4b')],{'include':[{'model':db[_0x96e6('0x58')],'as':_0x96e6('0x59')},{'model':db[_0x96e6('0x58')],'as':'Descriptions'}]});}return null;})[_0x96e6('0x27')](respondWithResult(_0x37354c,null))[_0x96e6('0x49')](handleError(_0x37354c,null));};exports[_0x96e6('0x5a')]=function(_0x34b364,_0x3e2d1e,_0x3c4cae){var _0x30b42c=[{'name':_0x96e6('0x5b'),'label':_0x96e6('0x5b'),'custom':![],'options':[{'name':0x1,'value':0x1},{'name':0x2,'value':0x2},{'name':0x3,'value':0x3},{'name':0x4,'value':0x4},{'name':0x5,'value':0x5},{'name':0x6,'value':0x6},{'name':0x7,'value':0x7},{'name':0x8,'value':0x8},{'name':0x9,'value':0x9},{'name':0xa,'value':0xa}]}];var _0x2a310b='';return db[_0x96e6('0x3f')][_0x96e6('0x4d')]({'where':{'id':_0x34b364['params']['id']},'attributes':['id','remoteUri','authType',_0x96e6('0x5c'),_0x96e6('0x5d'),'consumerKey',_0x96e6('0x5e'),_0x96e6('0x5f'),'tokenSecret']})['then'](handleEntityNotFound(_0x3e2d1e,null))[_0x96e6('0x27')](function(_0x514be5){if(_0x514be5){_0x2a310b=_0x514be5[_0x96e6('0x60')];var _0x5994b1=_0x2a310b[_0x96e6('0x61')](-0x1);if(_0x5994b1==='/'){_0x2a310b=_0x2a310b[_0x96e6('0x62')](0x0,_0x2a310b[_0x96e6('0x63')](_0x5994b1));}var _0x1b6804={'method':_0x96e6('0x64'),'uri':util[_0x96e6('0x65')](_0x96e6('0x66'),_0x2a310b),'headers':{'Content-Type':_0x96e6('0x67'),'Accept':_0x96e6('0x67')},'json':!![]};if(_0x514be5[_0x96e6('0x68')]===_0x96e6('0x69')){_0x1b6804[_0x96e6('0x6a')]['Authorization']=util['format'](_0x96e6('0x6b'),new Buffer(util['format']('%s:%s',_0x514be5[_0x96e6('0x5c')],_0x514be5['password']))[_0x96e6('0x6c')](_0x96e6('0x6d')));}return rp(_0x1b6804)[_0x96e6('0x27')](function(_0x32714b){return _0x30b42c[_0x96e6('0x6e')](_['map'](_0x32714b[_0x96e6('0x6f')][_0x96e6('0x70')],function(_0x49b574){return{'id':_0x49b574[_0x96e6('0x2a')],'name':_0x49b574['name'],'type':_0x49b574[_0x96e6('0x2f')],'active':_0x49b574[_0x96e6('0x71')],'label':_0x49b574[_0x96e6('0x72')],'custom':!![]};}));});}})[_0x96e6('0x27')](function(_0xa1d965){return{'count':_0xa1d965['length'],'rows':_0xa1d965};})[_0x96e6('0x27')](respondWithResult(_0x3e2d1e,null))[_0x96e6('0x49')](function(_0x546124){var _0x3d1288=_0x34b364['query'][_0x96e6('0x73')]?0x1f4:_0x546124['statusCode']||0x1f4;logger[_0x96e6('0x74')](_0x96e6('0x75'),_0x96e6('0x5a'),_0x3d1288,JSON[_0x96e6('0x76')](_0x546124));delete _0x546124[_0x96e6('0x2a')];if(_0x3d1288===0x191){_0x3d1288=0x190;}_0x3e2d1e[_0x96e6('0x1d')](_0x3d1288)[_0x96e6('0x2b')](_0x34b364[_0x96e6('0x32')]['test']?{'message':_0x96e6('0x77'),'statusCode':_0x546124[_0x96e6('0x78')]}:_0x546124);});};
\ No newline at end of file
+var _0x678f=['catch','show','keys','length','find','create','body','params','getConfigurations','findOne','DeskConfiguration','pick','addConfiguration','AccountId','Subjects','getSubjects','channel','DeskField','Descriptions','getFields','remoteUri','authType','username','consumerKey','consumerSecret','token','tokenSecret','slice','lastIndexOf','format','%s/custom_fields','application/json','basic','headers','Authorization','Basic\x20%s','%s:%s','password','base64','_embedded','entries','active','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','destroy','then','error','stack','name','index','map','DeskAccount','rawAttributes','fieldName','type','key','model','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','filter','merge','VIRTUAL','options','includeAll','include','rows'];(function(_0x23cdcc,_0x473f0a){var _0x103ca5=function(_0x4e6fbf){while(--_0x4e6fbf){_0x23cdcc['push'](_0x23cdcc['shift']());}};_0x103ca5(++_0x473f0a);}(_0x678f,0x11e));var _0xf678=function(_0x589f71,_0x212326){_0x589f71=_0x589f71-0x0;var _0x5763bd=_0x678f[_0x589f71];return _0x5763bd;};'use strict';var emlformat=require(_0xf678('0x0'));var rimraf=require(_0xf678('0x1'));var zipdir=require(_0xf678('0x2'));var jsonpatch=require(_0xf678('0x3'));var rp=require(_0xf678('0x4'));var moment=require(_0xf678('0x5'));var BPromise=require(_0xf678('0x6'));var Mustache=require('mustache');var util=require(_0xf678('0x7'));var path=require(_0xf678('0x8'));var sox=require(_0xf678('0x9'));var csv=require(_0xf678('0xa'));var ejs=require(_0xf678('0xb'));var fs=require('fs');var fs_extra=require(_0xf678('0xc'));var _=require(_0xf678('0xd'));var squel=require(_0xf678('0xe'));var crypto=require(_0xf678('0xf'));var jsforce=require(_0xf678('0x10'));var deskjs=require('desk.js');var toCsv=require(_0xf678('0xa'));var querystring=require(_0xf678('0x11'));var Papa=require(_0xf678('0x12'));var Redis=require(_0xf678('0x13'));var authService=require(_0xf678('0x14'));var qs=require(_0xf678('0x15'));var as=require(_0xf678('0x16'));var hardwareService=require(_0xf678('0x17'));var logger=require('../../config/logger')(_0xf678('0x18'));var utils=require(_0xf678('0x19'));var config=require(_0xf678('0x1a'));var licenseUtil=require(_0xf678('0x1b'));var db=require(_0xf678('0x1c'))['db'];var integrations=require(_0xf678('0x1d'));function respondWithStatusCode(_0x4cccdd,_0x1ba818){_0x1ba818=_0x1ba818||0xcc;return function(_0x54cd1c){if(_0x54cd1c){return _0x4cccdd[_0xf678('0x1e')](_0x1ba818);}return _0x4cccdd[_0xf678('0x1f')](_0x1ba818)[_0xf678('0x20')]();};}function respondWithResult(_0x3786db,_0x10486d){_0x10486d=_0x10486d||0xc8;return function(_0x237c65){if(_0x237c65){return _0x3786db['status'](_0x10486d)[_0xf678('0x21')](_0x237c65);}};}function respondWithFilteredResult(_0x11d863,_0x5b9ac2){return function(_0x204d0c){if(_0x204d0c){var _0x256c73=typeof _0x5b9ac2[_0xf678('0x22')]===_0xf678('0x23')&&typeof _0x5b9ac2[_0xf678('0x24')]===_0xf678('0x23');var _0x41c78f=_0x204d0c[_0xf678('0x25')];var _0x40cd53=_0x256c73?0x0:_0x5b9ac2[_0xf678('0x22')];var _0x5afa09=_0x256c73?_0x204d0c[_0xf678('0x25')]:_0x5b9ac2[_0xf678('0x22')]+_0x5b9ac2[_0xf678('0x24')];var _0x4c97ca;if(_0x5afa09>=_0x41c78f){_0x5afa09=_0x41c78f;_0x4c97ca=0xc8;}else{_0x4c97ca=0xce;}_0x11d863[_0xf678('0x1f')](_0x4c97ca);return _0x11d863[_0xf678('0x26')](_0xf678('0x27'),_0x40cd53+'-'+_0x5afa09+'/'+_0x41c78f)['json'](_0x204d0c);}return null;};}function patchUpdates(_0x10d70e){return function(_0x58e912){try{jsonpatch[_0xf678('0x28')](_0x58e912,_0x10d70e,!![]);}catch(_0x263f75){return BPromise[_0xf678('0x29')](_0x263f75);}return _0x58e912[_0xf678('0x2a')]();};}function saveUpdates(_0x525a15,_0x4ff29c){return function(_0x4a80c7){if(_0x4a80c7){return _0x4a80c7[_0xf678('0x2b')](_0x525a15)['then'](function(_0x18aece){return _0x18aece;});}return null;};}function removeEntity(_0x41eb25,_0x5ac11e){return function(_0x1b9ea3){if(_0x1b9ea3){return _0x1b9ea3[_0xf678('0x2c')]()[_0xf678('0x2d')](function(){_0x41eb25[_0xf678('0x1f')](0xcc)['end']();});}};}function handleEntityNotFound(_0x25745a,_0x126150){return function(_0x35adbe){if(!_0x35adbe){_0x25745a[_0xf678('0x1e')](0x194);}return _0x35adbe;};}function handleError(_0x22f08d,_0x4adeab){_0x4adeab=_0x4adeab||0x1f4;return function(_0x2d9949){logger[_0xf678('0x2e')](_0x2d9949[_0xf678('0x2f')]);if(_0x2d9949[_0xf678('0x30')]){delete _0x2d9949[_0xf678('0x30')];}_0x22f08d['status'](_0x4adeab)['send'](_0x2d9949);};}exports[_0xf678('0x31')]=function(_0x2e6984,_0x5cee57){var _0x24af4a={},_0xc440c1={},_0x409445={'count':0x0,'rows':[]};var _0x4fce0b=_[_0xf678('0x32')](db[_0xf678('0x33')][_0xf678('0x34')],function(_0x180315){return{'name':_0x180315[_0xf678('0x35')],'type':_0x180315[_0xf678('0x36')][_0xf678('0x37')]};});_0xc440c1[_0xf678('0x38')]=_['map'](_0x4fce0b,'name');_0xc440c1[_0xf678('0x39')]=_['keys'](_0x2e6984[_0xf678('0x39')]);_0xc440c1[_0xf678('0x3a')]=_[_0xf678('0x3b')](_0xc440c1[_0xf678('0x38')],_0xc440c1[_0xf678('0x39')]);_0x24af4a[_0xf678('0x3c')]=_['intersection'](_0xc440c1[_0xf678('0x38')],qs[_0xf678('0x3d')](_0x2e6984[_0xf678('0x39')]['fields']));_0x24af4a['attributes']=_0x24af4a['attributes']['length']?_0x24af4a[_0xf678('0x3c')]:_0xc440c1[_0xf678('0x38')];if(!_0x2e6984['query'][_0xf678('0x3e')](_0xf678('0x3f'))){_0x24af4a[_0xf678('0x24')]=qs[_0xf678('0x24')](_0x2e6984[_0xf678('0x39')]['limit']);_0x24af4a[_0xf678('0x22')]=qs[_0xf678('0x22')](_0x2e6984[_0xf678('0x39')][_0xf678('0x22')]);}_0x24af4a[_0xf678('0x40')]=qs[_0xf678('0x41')](_0x2e6984[_0xf678('0x39')][_0xf678('0x41')]);_0x24af4a[_0xf678('0x42')]=qs['filters'](_['pick'](_0x2e6984[_0xf678('0x39')],_0xc440c1[_0xf678('0x3a')]),_0x4fce0b);if(_0x2e6984['query'][_0xf678('0x43')]){_0x24af4a[_0xf678('0x42')]=_[_0xf678('0x44')](_0x24af4a[_0xf678('0x42')],{'$or':_[_0xf678('0x32')](_0x4fce0b,function(_0x444724){if(_0x444724[_0xf678('0x36')]!==_0xf678('0x45')){var _0x5784ca={};_0x5784ca[_0x444724[_0xf678('0x30')]]={'$like':'%'+_0x2e6984[_0xf678('0x39')][_0xf678('0x43')]+'%'};return _0x5784ca;}})});}_0x24af4a=_[_0xf678('0x44')]({},_0x24af4a,_0x2e6984[_0xf678('0x46')]);var _0x208213={'where':_0x24af4a[_0xf678('0x42')]};return db[_0xf678('0x33')]['count'](_0x208213)[_0xf678('0x2d')](function(_0x284a81){_0x409445['count']=_0x284a81;if(_0x2e6984['query'][_0xf678('0x47')]){_0x24af4a[_0xf678('0x48')]=[{'all':!![]}];}return db['DeskAccount']['findAll'](_0x24af4a);})[_0xf678('0x2d')](function(_0x7ce345){_0x409445[_0xf678('0x49')]=_0x7ce345;return _0x409445;})[_0xf678('0x2d')](respondWithFilteredResult(_0x5cee57,_0x24af4a))[_0xf678('0x4a')](handleError(_0x5cee57,null));};exports[_0xf678('0x4b')]=function(_0x5738a2,_0x59a2ee){var _0x5625e6={'raw':![],'where':{'id':_0x5738a2['params']['id']}},_0x416682={};_0x416682[_0xf678('0x38')]=_[_0xf678('0x4c')](db[_0xf678('0x33')][_0xf678('0x34')]);_0x416682[_0xf678('0x39')]=_[_0xf678('0x4c')](_0x5738a2['query']);_0x416682[_0xf678('0x3a')]=_[_0xf678('0x3b')](_0x416682[_0xf678('0x38')],_0x416682['query']);_0x5625e6[_0xf678('0x3c')]=_['intersection'](_0x416682['model'],qs[_0xf678('0x3d')](_0x5738a2[_0xf678('0x39')][_0xf678('0x3d')]));_0x5625e6[_0xf678('0x3c')]=_0x5625e6[_0xf678('0x3c')][_0xf678('0x4d')]?_0x5625e6[_0xf678('0x3c')]:_0x416682[_0xf678('0x38')];if(_0x5738a2[_0xf678('0x39')]['includeAll']){_0x5625e6[_0xf678('0x48')]=[{'all':!![]}];}_0x5625e6=_['merge']({},_0x5625e6,_0x5738a2[_0xf678('0x46')]);return db['DeskAccount'][_0xf678('0x4e')](_0x5625e6)[_0xf678('0x2d')](handleEntityNotFound(_0x59a2ee,null))[_0xf678('0x2d')](respondWithResult(_0x59a2ee,null))[_0xf678('0x4a')](handleError(_0x59a2ee,null));};exports[_0xf678('0x4f')]=function(_0x2d2bd8,_0x34ede3){return db[_0xf678('0x33')][_0xf678('0x4f')](_0x2d2bd8[_0xf678('0x50')],{})[_0xf678('0x2d')](respondWithResult(_0x34ede3,0xc9))[_0xf678('0x4a')](handleError(_0x34ede3,null));};exports['update']=function(_0x57d5f3,_0x2e3211){if(_0x57d5f3[_0xf678('0x50')]['id']){delete _0x57d5f3['body']['id'];}return db[_0xf678('0x33')][_0xf678('0x4e')]({'where':{'id':_0x57d5f3[_0xf678('0x51')]['id']}})[_0xf678('0x2d')](handleEntityNotFound(_0x2e3211,null))[_0xf678('0x2d')](saveUpdates(_0x57d5f3[_0xf678('0x50')],null))[_0xf678('0x2d')](respondWithResult(_0x2e3211,null))['catch'](handleError(_0x2e3211,null));};exports['destroy']=function(_0x286ffd,_0x19db55){return db[_0xf678('0x33')][_0xf678('0x4e')]({'where':{'id':_0x286ffd[_0xf678('0x51')]['id']}})[_0xf678('0x2d')](handleEntityNotFound(_0x19db55,null))['then'](removeEntity(_0x19db55,null))['catch'](handleError(_0x19db55,null));};exports[_0xf678('0x52')]=function(_0x23f91f,_0xec59fb,_0x5a6b37){var _0x3d3b51={};var _0x1020ec={};var _0x2a408f;var _0x223551;return db[_0xf678('0x33')][_0xf678('0x53')]({'where':{'id':_0x23f91f[_0xf678('0x51')]['id']}})['then'](handleEntityNotFound(_0xec59fb,null))[_0xf678('0x2d')](function(_0x4940a1){if(_0x4940a1){_0x2a408f=_0x4940a1;_0x1020ec['model']=_[_0xf678('0x4c')](db[_0xf678('0x54')][_0xf678('0x34')]);_0x1020ec[_0xf678('0x39')]=_[_0xf678('0x4c')](_0x23f91f[_0xf678('0x39')]);_0x1020ec[_0xf678('0x3a')]=_['intersection'](_0x1020ec['model'],_0x1020ec[_0xf678('0x39')]);_0x3d3b51['attributes']=_[_0xf678('0x3b')](_0x1020ec['model'],qs[_0xf678('0x3d')](_0x23f91f[_0xf678('0x39')][_0xf678('0x3d')]));_0x3d3b51[_0xf678('0x3c')]=_0x3d3b51[_0xf678('0x3c')][_0xf678('0x4d')]?_0x3d3b51[_0xf678('0x3c')]:_0x1020ec[_0xf678('0x38')];_0x3d3b51['order']=qs[_0xf678('0x41')](_0x23f91f[_0xf678('0x39')][_0xf678('0x41')]);_0x3d3b51[_0xf678('0x42')]=qs[_0xf678('0x3a')](_[_0xf678('0x55')](_0x23f91f[_0xf678('0x39')],_0x1020ec[_0xf678('0x3a')]));if(_0x23f91f[_0xf678('0x39')][_0xf678('0x43')]){_0x3d3b51['where']=_['merge'](_0x3d3b51[_0xf678('0x42')],{'$or':_[_0xf678('0x32')](_0x3d3b51[_0xf678('0x3c')],function(_0x279cdb){var _0x27ec85={};_0x27ec85[_0x279cdb]={'$like':'%'+_0x23f91f[_0xf678('0x39')][_0xf678('0x43')]+'%'};return _0x27ec85;})});}_0x3d3b51=_[_0xf678('0x44')]({},_0x3d3b51,_0x23f91f[_0xf678('0x46')]);return _0x2a408f[_0xf678('0x52')](_0x3d3b51);}})[_0xf678('0x2d')](function(_0x48d744){if(_0x48d744){_0x223551=_0x48d744[_0xf678('0x4d')];if(!_0x23f91f[_0xf678('0x39')][_0xf678('0x3e')](_0xf678('0x3f'))){_0x3d3b51[_0xf678('0x24')]=qs[_0xf678('0x24')](_0x23f91f[_0xf678('0x39')]['limit']);_0x3d3b51[_0xf678('0x22')]=qs[_0xf678('0x22')](_0x23f91f[_0xf678('0x39')]['offset']);}return _0x2a408f['getConfigurations'](_0x3d3b51);}})['then'](function(_0x4ce552){if(_0x4ce552){return _0x4ce552?{'count':_0x223551,'rows':_0x4ce552}:null;}})['then'](respondWithResult(_0xec59fb,null))['catch'](handleError(_0xec59fb,null));};exports[_0xf678('0x56')]=function(_0x30ab03,_0x37004d,_0x2cc01f){if(_0x30ab03[_0xf678('0x50')]['id']){delete _0x30ab03[_0xf678('0x50')]['id'];}return db[_0xf678('0x33')]['findOne']({'where':{'id':_0x30ab03['params']['id']}})[_0xf678('0x2d')](handleEntityNotFound(_0x37004d,null))[_0xf678('0x2d')](function(_0x278fb5){if(_0x278fb5){_0x30ab03[_0xf678('0x50')][_0xf678('0x57')]=_0x278fb5['id'];_0x30ab03['body'][_0xf678('0x58')]=integrations[_0xf678('0x59')](_0x30ab03[_0xf678('0x50')]['channel'],_0x30ab03['body'][_0xf678('0x36')]);_0x30ab03[_0xf678('0x50')]['Descriptions']=integrations['getDescriptions'](_0x30ab03[_0xf678('0x50')][_0xf678('0x5a')],_0x30ab03['body']['type']);return db[_0xf678('0x54')][_0xf678('0x4f')](_0x30ab03[_0xf678('0x50')],{'include':[{'model':db[_0xf678('0x5b')],'as':_0xf678('0x58')},{'model':db['DeskField'],'as':_0xf678('0x5c')}]});}return null;})[_0xf678('0x2d')](respondWithResult(_0x37004d,null))['catch'](handleError(_0x37004d,null));};exports[_0xf678('0x5d')]=function(_0x265979,_0x59795e,_0x19c471){var _0x1929ae=[{'name':'priority','label':'priority','custom':![],'options':[{'name':0x1,'value':0x1},{'name':0x2,'value':0x2},{'name':0x3,'value':0x3},{'name':0x4,'value':0x4},{'name':0x5,'value':0x5},{'name':0x6,'value':0x6},{'name':0x7,'value':0x7},{'name':0x8,'value':0x8},{'name':0x9,'value':0x9},{'name':0xa,'value':0xa}]}];var _0x21d519='';return db[_0xf678('0x33')][_0xf678('0x53')]({'where':{'id':_0x265979[_0xf678('0x51')]['id']},'attributes':['id',_0xf678('0x5e'),_0xf678('0x5f'),_0xf678('0x60'),'password',_0xf678('0x61'),_0xf678('0x62'),_0xf678('0x63'),_0xf678('0x64')]})[_0xf678('0x2d')](handleEntityNotFound(_0x59795e,null))[_0xf678('0x2d')](function(_0x562418){if(_0x562418){_0x21d519=_0x562418['remoteUri'];var _0x3c747b=_0x21d519[_0xf678('0x65')](-0x1);if(_0x3c747b==='/'){_0x21d519=_0x21d519['substring'](0x0,_0x21d519[_0xf678('0x66')](_0x3c747b));}var _0x569926={'method':'GET','uri':util[_0xf678('0x67')](_0xf678('0x68'),_0x21d519),'headers':{'Content-Type':_0xf678('0x69'),'Accept':_0xf678('0x69')},'json':!![]};if(_0x562418[_0xf678('0x5f')]===_0xf678('0x6a')){_0x569926[_0xf678('0x6b')][_0xf678('0x6c')]=util[_0xf678('0x67')](_0xf678('0x6d'),new Buffer(util['format'](_0xf678('0x6e'),_0x562418[_0xf678('0x60')],_0x562418[_0xf678('0x6f')]))['toString'](_0xf678('0x70')));}return rp(_0x569926)[_0xf678('0x2d')](function(_0x2d3f71){return _0x1929ae['concat'](_[_0xf678('0x32')](_0x2d3f71[_0xf678('0x71')][_0xf678('0x72')],function(_0x60a221){return{'id':_0x60a221['name'],'name':_0x60a221[_0xf678('0x30')],'type':_0x60a221[_0xf678('0x36')],'active':_0x60a221[_0xf678('0x73')],'label':_0x60a221['label'],'custom':!![]};}));});}})[_0xf678('0x2d')](function(_0x131997){return{'count':_0x131997[_0xf678('0x4d')],'rows':_0x131997};})[_0xf678('0x2d')](respondWithResult(_0x59795e,null))[_0xf678('0x4a')](function(_0x21e63b){var _0x18689e=_0x265979[_0xf678('0x39')][_0xf678('0x74')]?0x1f4:_0x21e63b[_0xf678('0x75')]||0x1f4;logger[_0xf678('0x2e')](_0xf678('0x76'),_0xf678('0x5d'),_0x18689e,JSON['stringify'](_0x21e63b));delete _0x21e63b[_0xf678('0x30')];if(_0x18689e===0x191){_0x18689e=0x190;}_0x59795e[_0xf678('0x1f')](_0x18689e)['send'](_0x265979[_0xf678('0x39')][_0xf678('0x74')]?{'message':_0xf678('0x77'),'statusCode':_0x21e63b[_0xf678('0x75')]}:_0x21e63b);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9885=['define','lodash','util','../../config/logger','moment','bluebird','request-promise','path','./intDeskAccount.attributes'];(function(_0x1b4002,_0x5b4094){var _0x1716f3=function(_0x47cfd1){while(--_0x47cfd1){_0x1b4002['push'](_0x1b4002['shift']());}};_0x1716f3(++_0x5b4094);}(_0x9885,0xeb));var _0x5988=function(_0x1314a0,_0x301a0c){_0x1314a0=_0x1314a0-0x0;var _0x2ce0c5=_0x9885[_0x1314a0];return _0x2ce0c5;};'use strict';var _=require(_0x5988('0x0'));var util=require(_0x5988('0x1'));var logger=require(_0x5988('0x2'))('api');var moment=require(_0x5988('0x3'));var BPromise=require(_0x5988('0x4'));var rp=require(_0x5988('0x5'));var fs=require('fs');var path=require(_0x5988('0x6'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x5988('0x7'));var integrations=require('../../components/integrations/configuration');module['exports']=function(_0x389106,_0x5d83eb){return _0x389106[_0x5988('0x8')]('DeskAccount',attributes,{'tableName':'int_desk_accounts','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x96e4=['define','DeskAccount','int_desk_accounts','util','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./intDeskAccount.attributes','exports'];(function(_0x117f98,_0x116788){var _0x441ca3=function(_0x501b42){while(--_0x501b42){_0x117f98['push'](_0x117f98['shift']());}};_0x441ca3(++_0x116788);}(_0x96e4,0xac));var _0x496e=function(_0x7feb90,_0x28e700){_0x7feb90=_0x7feb90-0x0;var _0x3c5b33=_0x96e4[_0x7feb90];return _0x3c5b33;};'use strict';var _=require('lodash');var util=require(_0x496e('0x0'));var logger=require('../../config/logger')(_0x496e('0x1'));var moment=require(_0x496e('0x2'));var BPromise=require(_0x496e('0x3'));var rp=require(_0x496e('0x4'));var fs=require('fs');var path=require(_0x496e('0x5'));var rimraf=require(_0x496e('0x6'));var config=require(_0x496e('0x7'));var attributes=require(_0x496e('0x8'));var integrations=require('../../components/integrations/configuration');module[_0x496e('0x9')]=function(_0x5a09d2,_0xa155e5){return _0x5a09d2[_0x496e('0xa')](_0x496e('0xb'),attributes,{'tableName':_0x496e('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb6c9=['model','map','info','GetDeskAccount','find','raw','where','ShowDeskAccount','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','client','request','then','DeskAccount,\x20%s,\x20%s','request\x20sent','debug','DeskAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','DeskAccount','findAll','options','attributes','limit','include'];(function(_0x464b39,_0x19d526){var _0x1fc015=function(_0x461291){while(--_0x461291){_0x464b39['push'](_0x464b39['shift']());}};_0x1fc015(++_0x19d526);}(_0xb6c9,0x1b8));var _0x9b6c=function(_0x5bf2b3,_0xfcd364){_0x5bf2b3=_0x5bf2b3-0x0;var _0x5e8a9b=_0xb6c9[_0x5bf2b3];return _0x5e8a9b;};'use strict';var _=require(_0x9b6c('0x0'));var util=require(_0x9b6c('0x1'));var moment=require(_0x9b6c('0x2'));var BPromise=require(_0x9b6c('0x3'));var rs=require(_0x9b6c('0x4'));var fs=require('fs');var Redis=require(_0x9b6c('0x5'));var db=require(_0x9b6c('0x6'))['db'];var utils=require('../../config/utils');var logger=require(_0x9b6c('0x7'))(_0x9b6c('0x8'));var config=require(_0x9b6c('0x9'));var jayson=require('jayson/promise');var client=jayson[_0x9b6c('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x498a61,_0x539114,_0x5b5d1e){return new BPromise(function(_0x34df33,_0x38714f){return client[_0x9b6c('0xb')](_0x498a61,_0x5b5d1e)[_0x9b6c('0xc')](function(_0x4641e8){logger['info'](_0x9b6c('0xd'),_0x539114,_0x9b6c('0xe'));logger[_0x9b6c('0xf')](_0x9b6c('0x10'),_0x539114,_0x9b6c('0xe'),JSON[_0x9b6c('0x11')](_0x4641e8));if(_0x4641e8[_0x9b6c('0x12')]){if(_0x4641e8[_0x9b6c('0x12')][_0x9b6c('0x13')]===0x1f4){logger[_0x9b6c('0x12')](_0x9b6c('0xd'),_0x539114,_0x4641e8[_0x9b6c('0x12')][_0x9b6c('0x14')]);return _0x38714f(_0x4641e8[_0x9b6c('0x12')][_0x9b6c('0x14')]);}logger[_0x9b6c('0x12')](_0x9b6c('0xd'),_0x539114,_0x4641e8[_0x9b6c('0x12')][_0x9b6c('0x14')]);return _0x34df33(_0x4641e8[_0x9b6c('0x12')][_0x9b6c('0x14')]);}else{logger['info'](_0x9b6c('0xd'),_0x539114,'request\x20sent');_0x34df33(_0x4641e8['result'][_0x9b6c('0x14')]);}})[_0x9b6c('0x15')](function(_0x33e8e2){logger[_0x9b6c('0x12')](_0x9b6c('0xd'),_0x539114,_0x33e8e2);_0x38714f(_0x33e8e2);});});}exports['GetDeskAccount']=function(_0x4d3ade){var _0x2ae3b4=this;return new Promise(function(_0x4a6d5d,_0x95187c){return db[_0x9b6c('0x16')][_0x9b6c('0x17')]({'raw':_0x4d3ade[_0x9b6c('0x18')]?_0x4d3ade['options']['raw']===undefined?!![]:![]:!![],'where':_0x4d3ade[_0x9b6c('0x18')]?_0x4d3ade[_0x9b6c('0x18')]['where']||null:null,'attributes':_0x4d3ade[_0x9b6c('0x18')]?_0x4d3ade[_0x9b6c('0x18')][_0x9b6c('0x19')]||null:null,'limit':_0x4d3ade[_0x9b6c('0x18')]?_0x4d3ade[_0x9b6c('0x18')][_0x9b6c('0x1a')]||null:null,'include':_0x4d3ade[_0x9b6c('0x18')]?_0x4d3ade[_0x9b6c('0x18')]['include']?_['map'](_0x4d3ade[_0x9b6c('0x18')][_0x9b6c('0x1b')],function(_0x2092a7){return{'model':db[_0x2092a7[_0x9b6c('0x1c')]],'as':_0x2092a7['as'],'attributes':_0x2092a7['attributes'],'include':_0x2092a7[_0x9b6c('0x1b')]?_[_0x9b6c('0x1d')](_0x2092a7[_0x9b6c('0x1b')],function(_0x1e3274){return{'model':db[_0x1e3274['model']],'as':_0x1e3274['as'],'attributes':_0x1e3274[_0x9b6c('0x19')],'include':_0x1e3274[_0x9b6c('0x1b')]?_[_0x9b6c('0x1d')](_0x1e3274[_0x9b6c('0x1b')],function(_0x518de5){return{'model':db[_0x518de5['model']],'as':_0x518de5['as'],'attributes':_0x518de5[_0x9b6c('0x19')]};}):[]};}):[]};}):[]:[]})[_0x9b6c('0xc')](function(_0x429a11){logger[_0x9b6c('0x1e')](_0x9b6c('0x1f'),_0x4d3ade);logger[_0x9b6c('0xf')](_0x9b6c('0x1f'),_0x4d3ade,JSON[_0x9b6c('0x11')](_0x429a11));_0x4a6d5d(_0x429a11);})[_0x9b6c('0x15')](function(_0x1732e3){logger[_0x9b6c('0x12')](_0x9b6c('0x1f'),_0x1732e3[_0x9b6c('0x14')],_0x4d3ade);_0x95187c(_0x2ae3b4[_0x9b6c('0x12')](0x1f4,_0x1732e3['message']));});});};exports['ShowDeskAccount']=function(_0x400000){var _0x4db25f=this;return new Promise(function(_0x4b6000,_0x1f93a0){return db[_0x9b6c('0x16')][_0x9b6c('0x20')]({'raw':_0x400000[_0x9b6c('0x18')]?_0x400000[_0x9b6c('0x18')][_0x9b6c('0x21')]===undefined?!![]:![]:!![],'where':_0x400000[_0x9b6c('0x18')]?_0x400000['options'][_0x9b6c('0x22')]||null:null,'attributes':_0x400000['options']?_0x400000[_0x9b6c('0x18')][_0x9b6c('0x19')]||null:null,'include':_0x400000['options']?_0x400000['options'][_0x9b6c('0x1b')]?_[_0x9b6c('0x1d')](_0x400000[_0x9b6c('0x18')][_0x9b6c('0x1b')],function(_0x32aced){return{'model':db[_0x32aced[_0x9b6c('0x1c')]],'as':_0x32aced['as'],'attributes':_0x32aced[_0x9b6c('0x19')],'include':_0x32aced['include']?_['map'](_0x32aced[_0x9b6c('0x1b')],function(_0x584e30){return{'model':db[_0x584e30['model']],'as':_0x584e30['as'],'attributes':_0x584e30['attributes'],'include':_0x584e30[_0x9b6c('0x1b')]?_[_0x9b6c('0x1d')](_0x584e30[_0x9b6c('0x1b')],function(_0xf34e59){return{'model':db[_0xf34e59[_0x9b6c('0x1c')]],'as':_0xf34e59['as'],'attributes':_0xf34e59[_0x9b6c('0x19')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x166095){logger[_0x9b6c('0x1e')](_0x9b6c('0x23'),_0x400000);logger[_0x9b6c('0xf')]('ShowDeskAccount',_0x400000,JSON[_0x9b6c('0x11')](_0x166095));_0x4b6000(_0x166095);})[_0x9b6c('0x15')](function(_0xcec086){logger[_0x9b6c('0x12')](_0x9b6c('0x23'),_0xcec086[_0x9b6c('0x14')],_0x400000);_0x1f93a0(_0x4db25f[_0x9b6c('0x12')](0x1f4,_0xcec086[_0x9b6c('0x14')]));});});};
\ No newline at end of file
+var _0x1e8b=['raw','where','attributes','limit','map','include','model','ShowDeskAccount','find','util','moment','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','client','http','request','then','DeskAccount,\x20%s,\x20%s','debug','request\x20sent','stringify','error','code','message','info','catch','GetDeskAccount','DeskAccount','findAll','options'];(function(_0x39efbf,_0x118364){var _0xcbd510=function(_0x4e152f){while(--_0x4e152f){_0x39efbf['push'](_0x39efbf['shift']());}};_0xcbd510(++_0x118364);}(_0x1e8b,0xf0));var _0xb1e8=function(_0x4994be,_0x20f185){_0x4994be=_0x4994be-0x0;var _0x25029b=_0x1e8b[_0x4994be];return _0x25029b;};'use strict';var _=require('lodash');var util=require(_0xb1e8('0x0'));var moment=require(_0xb1e8('0x1'));var BPromise=require('bluebird');var rs=require(_0xb1e8('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xb1e8('0x3'))['db'];var utils=require(_0xb1e8('0x4'));var logger=require(_0xb1e8('0x5'))(_0xb1e8('0x6'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0xb1e8('0x7')][_0xb1e8('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x36578e,_0x481a5b,_0x3c89c0){return new BPromise(function(_0x48acc1,_0x3d0067){return client[_0xb1e8('0x9')](_0x36578e,_0x3c89c0)[_0xb1e8('0xa')](function(_0x583034){logger['info'](_0xb1e8('0xb'),_0x481a5b,'request\x20sent');logger[_0xb1e8('0xc')]('DeskAccount,\x20%s,\x20%s,\x20%s',_0x481a5b,_0xb1e8('0xd'),JSON[_0xb1e8('0xe')](_0x583034));if(_0x583034[_0xb1e8('0xf')]){if(_0x583034[_0xb1e8('0xf')][_0xb1e8('0x10')]===0x1f4){logger[_0xb1e8('0xf')](_0xb1e8('0xb'),_0x481a5b,_0x583034[_0xb1e8('0xf')]['message']);return _0x3d0067(_0x583034[_0xb1e8('0xf')][_0xb1e8('0x11')]);}logger[_0xb1e8('0xf')]('DeskAccount,\x20%s,\x20%s',_0x481a5b,_0x583034[_0xb1e8('0xf')][_0xb1e8('0x11')]);return _0x48acc1(_0x583034[_0xb1e8('0xf')]['message']);}else{logger[_0xb1e8('0x12')](_0xb1e8('0xb'),_0x481a5b,_0xb1e8('0xd'));_0x48acc1(_0x583034['result'][_0xb1e8('0x11')]);}})[_0xb1e8('0x13')](function(_0x2a1f1a){logger[_0xb1e8('0xf')]('DeskAccount,\x20%s,\x20%s',_0x481a5b,_0x2a1f1a);_0x3d0067(_0x2a1f1a);});});}exports[_0xb1e8('0x14')]=function(_0x41c5cb){var _0x2c3d3e=this;return new Promise(function(_0x194595,_0x5e5eff){return db[_0xb1e8('0x15')][_0xb1e8('0x16')]({'raw':_0x41c5cb['options']?_0x41c5cb[_0xb1e8('0x17')][_0xb1e8('0x18')]===undefined?!![]:![]:!![],'where':_0x41c5cb[_0xb1e8('0x17')]?_0x41c5cb['options'][_0xb1e8('0x19')]||null:null,'attributes':_0x41c5cb[_0xb1e8('0x17')]?_0x41c5cb[_0xb1e8('0x17')][_0xb1e8('0x1a')]||null:null,'limit':_0x41c5cb['options']?_0x41c5cb['options'][_0xb1e8('0x1b')]||null:null,'include':_0x41c5cb[_0xb1e8('0x17')]?_0x41c5cb[_0xb1e8('0x17')]['include']?_[_0xb1e8('0x1c')](_0x41c5cb['options'][_0xb1e8('0x1d')],function(_0x1c8a87){return{'model':db[_0x1c8a87[_0xb1e8('0x1e')]],'as':_0x1c8a87['as'],'attributes':_0x1c8a87[_0xb1e8('0x1a')],'include':_0x1c8a87[_0xb1e8('0x1d')]?_[_0xb1e8('0x1c')](_0x1c8a87[_0xb1e8('0x1d')],function(_0x2f2d72){return{'model':db[_0x2f2d72['model']],'as':_0x2f2d72['as'],'attributes':_0x2f2d72[_0xb1e8('0x1a')],'include':_0x2f2d72[_0xb1e8('0x1d')]?_['map'](_0x2f2d72[_0xb1e8('0x1d')],function(_0x248b27){return{'model':db[_0x248b27['model']],'as':_0x248b27['as'],'attributes':_0x248b27[_0xb1e8('0x1a')]};}):[]};}):[]};}):[]:[]})[_0xb1e8('0xa')](function(_0x2361a2){logger['info'](_0xb1e8('0x14'),_0x41c5cb);logger[_0xb1e8('0xc')](_0xb1e8('0x14'),_0x41c5cb,JSON['stringify'](_0x2361a2));_0x194595(_0x2361a2);})[_0xb1e8('0x13')](function(_0x98dd5b){logger[_0xb1e8('0xf')](_0xb1e8('0x14'),_0x98dd5b['message'],_0x41c5cb);_0x5e5eff(_0x2c3d3e['error'](0x1f4,_0x98dd5b[_0xb1e8('0x11')]));});});};exports[_0xb1e8('0x1f')]=function(_0x15b444){var _0x49738a=this;return new Promise(function(_0x6a5f4f,_0x493d3a){return db[_0xb1e8('0x15')][_0xb1e8('0x20')]({'raw':_0x15b444[_0xb1e8('0x17')]?_0x15b444[_0xb1e8('0x17')]['raw']===undefined?!![]:![]:!![],'where':_0x15b444[_0xb1e8('0x17')]?_0x15b444[_0xb1e8('0x17')][_0xb1e8('0x19')]||null:null,'attributes':_0x15b444[_0xb1e8('0x17')]?_0x15b444[_0xb1e8('0x17')][_0xb1e8('0x1a')]||null:null,'include':_0x15b444[_0xb1e8('0x17')]?_0x15b444['options'][_0xb1e8('0x1d')]?_[_0xb1e8('0x1c')](_0x15b444[_0xb1e8('0x17')]['include'],function(_0x4c7201){return{'model':db[_0x4c7201['model']],'as':_0x4c7201['as'],'attributes':_0x4c7201['attributes'],'include':_0x4c7201[_0xb1e8('0x1d')]?_[_0xb1e8('0x1c')](_0x4c7201[_0xb1e8('0x1d')],function(_0x4f23c7){return{'model':db[_0x4f23c7[_0xb1e8('0x1e')]],'as':_0x4f23c7['as'],'attributes':_0x4f23c7[_0xb1e8('0x1a')],'include':_0x4f23c7[_0xb1e8('0x1d')]?_['map'](_0x4f23c7[_0xb1e8('0x1d')],function(_0x27349b){return{'model':db[_0x27349b['model']],'as':_0x27349b['as'],'attributes':_0x27349b['attributes']};}):[]};}):[]};}):[]:[]})[_0xb1e8('0xa')](function(_0x5784d4){logger[_0xb1e8('0x12')](_0xb1e8('0x1f'),_0x15b444);logger[_0xb1e8('0xc')]('ShowDeskAccount',_0x15b444,JSON['stringify'](_0x5784d4));_0x6a5f4f(_0x5784d4);})['catch'](function(_0x187e1b){logger[_0xb1e8('0xf')]('ShowDeskAccount',_0x187e1b[_0xb1e8('0x11')],_0x15b444);_0x493d3a(_0x49738a['error'](0x1f4,_0x187e1b[_0xb1e8('0x11')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3e74=['show','/:id/fields','getFields','getSubjects','/:id/descriptions','getDescriptions','getTags','post','/:id/tags','setTags','update','delete','exports','multer','path','connect-timeout','express','../../components/auth/service','../../config/environment','./intDeskConfiguration.controller','get','isAuthenticated','index','/:id'];(function(_0x39dceb,_0x260486){var _0x5a3d9d=function(_0xf98abe){while(--_0xf98abe){_0x39dceb['push'](_0x39dceb['shift']());}};_0x5a3d9d(++_0x260486);}(_0x3e74,0x175));var _0x43e7=function(_0x28a1f9,_0x352195){_0x28a1f9=_0x28a1f9-0x0;var _0x59459f=_0x3e74[_0x28a1f9];return _0x59459f;};'use strict';var multer=require(_0x43e7('0x0'));var util=require('util');var path=require(_0x43e7('0x1'));var timeout=require(_0x43e7('0x2'));var express=require(_0x43e7('0x3'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0x43e7('0x4'));var interaction=require('../../components/interaction/service');var config=require(_0x43e7('0x5'));var controller=require(_0x43e7('0x6'));router[_0x43e7('0x7')]('/',auth[_0x43e7('0x8')](),controller[_0x43e7('0x9')]);router['get'](_0x43e7('0xa'),auth[_0x43e7('0x8')](),controller[_0x43e7('0xb')]);router[_0x43e7('0x7')](_0x43e7('0xc'),auth['isAuthenticated'](),controller[_0x43e7('0xd')]);router['get']('/:id/subjects',auth[_0x43e7('0x8')](),controller[_0x43e7('0xe')]);router['get'](_0x43e7('0xf'),auth['isAuthenticated'](),controller[_0x43e7('0x10')]);router[_0x43e7('0x7')]('/:id/tags',auth[_0x43e7('0x8')](),controller[_0x43e7('0x11')]);router[_0x43e7('0x12')]('/',auth[_0x43e7('0x8')](),controller['create']);router['post'](_0x43e7('0x13'),auth[_0x43e7('0x8')](),controller[_0x43e7('0x14')]);router['put']('/:id',auth[_0x43e7('0x8')](),controller[_0x43e7('0x15')]);router[_0x43e7('0x16')](_0x43e7('0xa'),auth['isAuthenticated'](),controller['destroy']);module[_0x43e7('0x17')]=router;
\ No newline at end of file
+var _0x008c=['../../config/environment','./intDeskConfiguration.controller','get','isAuthenticated','index','getFields','/:id/descriptions','getDescriptions','/:id/tags','getTags','post','setTags','put','/:id','update','destroy','exports','multer','util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service'];(function(_0x47562c,_0x15251a){var _0x403518=function(_0x3a77ff){while(--_0x3a77ff){_0x47562c['push'](_0x47562c['shift']());}};_0x403518(++_0x15251a);}(_0x008c,0x188));var _0xc008=function(_0x513119,_0x425e6f){_0x513119=_0x513119-0x0;var _0x587511=_0x008c[_0x513119];return _0x587511;};'use strict';var multer=require(_0xc008('0x0'));var util=require(_0xc008('0x1'));var path=require(_0xc008('0x2'));var timeout=require(_0xc008('0x3'));var express=require(_0xc008('0x4'));var router=express['Router']();var fs_extra=require(_0xc008('0x5'));var auth=require(_0xc008('0x6'));var interaction=require(_0xc008('0x7'));var config=require(_0xc008('0x8'));var controller=require(_0xc008('0x9'));router[_0xc008('0xa')]('/',auth[_0xc008('0xb')](),controller[_0xc008('0xc')]);router[_0xc008('0xa')]('/:id',auth[_0xc008('0xb')](),controller['show']);router[_0xc008('0xa')]('/:id/fields',auth['isAuthenticated'](),controller[_0xc008('0xd')]);router[_0xc008('0xa')]('/:id/subjects',auth['isAuthenticated'](),controller['getSubjects']);router[_0xc008('0xa')](_0xc008('0xe'),auth['isAuthenticated'](),controller[_0xc008('0xf')]);router[_0xc008('0xa')](_0xc008('0x10'),auth[_0xc008('0xb')](),controller[_0xc008('0x11')]);router[_0xc008('0x12')]('/',auth[_0xc008('0xb')](),controller['create']);router['post'](_0xc008('0x10'),auth['isAuthenticated'](),controller[_0xc008('0x13')]);router[_0xc008('0x14')](_0xc008('0x15'),auth[_0xc008('0xb')](),controller[_0xc008('0x16')]);router['delete']('/:id',auth['isAuthenticated'](),controller[_0xc008('0x17')]);module[_0xc008('0x18')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x67c0=['exports','STRING'];(function(_0x2b9b7f,_0x4d47df){var _0x4ed19a=function(_0x72b5ff){while(--_0x72b5ff){_0x2b9b7f['push'](_0x2b9b7f['shift']());}};_0x4ed19a(++_0x4d47df);}(_0x67c0,0x19a));var _0x067c=function(_0x5c10d3,_0x3a3b3a){_0x5c10d3=_0x5c10d3-0x0;var _0x2cbab4=_0x67c0[_0x5c10d3];return _0x2cbab4;};'use strict';var Sequelize=require('sequelize');module[_0x067c('0x0')]={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0x067c('0x1')]}};
\ No newline at end of file
+var _0x099e=['exports','STRING'];(function(_0x3106c9,_0x78adc9){var _0x5a071d=function(_0x32feda){while(--_0x32feda){_0x3106c9['push'](_0x3106c9['shift']());}};_0x5a071d(++_0x78adc9);}(_0x099e,0x1e4));var _0xe099=function(_0x5e7304,_0xa2fca8){_0x5e7304=_0x5e7304-0x0;var _0x317cd5=_0x099e[_0x5e7304];return _0x317cd5;};'use strict';var Sequelize=require('sequelize');module[_0xe099('0x0')]={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0xe099('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0bb5=['key','model','map','query','keys','attributes','intersection','fields','hasOwnProperty','order','sort','where','filters','pick','filter','merge','VIRTUAL','name','rows','catch','show','params','length','includeAll','include','options','find','create','body','destroy','findOne','DeskField','getFields','getSubjects','nolimit','getDescriptions','getTags','Tag','setTags','ids','eml-format','rimraf','zip-dir','fast-json-patch','bluebird','mustache','util','path','sox','fs-extra','lodash','squel','jsforce','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','status','json','offset','undefined','count','limit','set','Content-Range','apply','reject','update','then','stack','send','index','DeskConfiguration','rawAttributes','fieldName','type'];(function(_0x2f1a6e,_0x3082cb){var _0x5865e5=function(_0x459f1a){while(--_0x459f1a){_0x2f1a6e['push'](_0x2f1a6e['shift']());}};_0x5865e5(++_0x3082cb);}(_0x0bb5,0x180));var _0x50bb=function(_0x3bb3a8,_0x9772d4){_0x3bb3a8=_0x3bb3a8-0x0;var _0x59a087=_0x0bb5[_0x3bb3a8];return _0x59a087;};'use strict';var emlformat=require(_0x50bb('0x0'));var rimraf=require(_0x50bb('0x1'));var zipdir=require(_0x50bb('0x2'));var jsonpatch=require(_0x50bb('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x50bb('0x4'));var Mustache=require(_0x50bb('0x5'));var util=require(_0x50bb('0x6'));var path=require(_0x50bb('0x7'));var sox=require(_0x50bb('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x50bb('0x9'));var _=require(_0x50bb('0xa'));var squel=require(_0x50bb('0xb'));var crypto=require('crypto');var jsforce=require(_0x50bb('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x50bb('0xd'));var querystring=require(_0x50bb('0xe'));var Papa=require(_0x50bb('0xf'));var Redis=require(_0x50bb('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x50bb('0x11'));var as=require(_0x50bb('0x12'));var hardwareService=require(_0x50bb('0x13'));var logger=require(_0x50bb('0x14'))(_0x50bb('0x15'));var utils=require(_0x50bb('0x16'));var config=require(_0x50bb('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x50bb('0x18'))['db'];function respondWithStatusCode(_0x16cd48,_0x3940ee){_0x3940ee=_0x3940ee||0xcc;return function(_0x39985e){if(_0x39985e){return _0x16cd48[_0x50bb('0x19')](_0x3940ee);}return _0x16cd48['status'](_0x3940ee)[_0x50bb('0x1a')]();};}function respondWithResult(_0x496c57,_0x40b197){_0x40b197=_0x40b197||0xc8;return function(_0x16afff){if(_0x16afff){return _0x496c57[_0x50bb('0x1b')](_0x40b197)[_0x50bb('0x1c')](_0x16afff);}};}function respondWithFilteredResult(_0x186fa2,_0x1b71d7){return function(_0x189920){if(_0x189920){var _0x3f76e8=typeof _0x1b71d7[_0x50bb('0x1d')]===_0x50bb('0x1e')&&typeof _0x1b71d7['limit']===_0x50bb('0x1e');var _0x3c1b07=_0x189920['count'];var _0x1d4d37=_0x3f76e8?0x0:_0x1b71d7[_0x50bb('0x1d')];var _0x1c1b65=_0x3f76e8?_0x189920[_0x50bb('0x1f')]:_0x1b71d7[_0x50bb('0x1d')]+_0x1b71d7[_0x50bb('0x20')];var _0x10a452;if(_0x1c1b65>=_0x3c1b07){_0x1c1b65=_0x3c1b07;_0x10a452=0xc8;}else{_0x10a452=0xce;}_0x186fa2[_0x50bb('0x1b')](_0x10a452);return _0x186fa2[_0x50bb('0x21')](_0x50bb('0x22'),_0x1d4d37+'-'+_0x1c1b65+'/'+_0x3c1b07)[_0x50bb('0x1c')](_0x189920);}return null;};}function patchUpdates(_0x41c8c){return function(_0x16b7a1){try{jsonpatch[_0x50bb('0x23')](_0x16b7a1,_0x41c8c,!![]);}catch(_0x429408){return BPromise[_0x50bb('0x24')](_0x429408);}return _0x16b7a1['save']();};}function saveUpdates(_0x341cbb,_0x4ecc8){return function(_0x459217){if(_0x459217){return _0x459217[_0x50bb('0x25')](_0x341cbb)[_0x50bb('0x26')](function(_0x191acc){return _0x191acc;});}return null;};}function removeEntity(_0x51eaf1,_0x26b449){return function(_0x3a82cf){if(_0x3a82cf){return _0x3a82cf['destroy']()['then'](function(){_0x51eaf1[_0x50bb('0x1b')](0xcc)[_0x50bb('0x1a')]();});}};}function handleEntityNotFound(_0x38e65c,_0x49bcc8){return function(_0x5a4501){if(!_0x5a4501){_0x38e65c[_0x50bb('0x19')](0x194);}return _0x5a4501;};}function handleError(_0x4e677,_0x3378d2){_0x3378d2=_0x3378d2||0x1f4;return function(_0x455139){logger['error'](_0x455139[_0x50bb('0x27')]);if(_0x455139['name']){delete _0x455139['name'];}_0x4e677[_0x50bb('0x1b')](_0x3378d2)[_0x50bb('0x28')](_0x455139);};}exports[_0x50bb('0x29')]=function(_0x380943,_0x58a7e9){var _0x44a249={},_0x1340aa={},_0x5d56e3={'count':0x0,'rows':[]};var _0x30fea1=_['map'](db[_0x50bb('0x2a')][_0x50bb('0x2b')],function(_0x3b5260){return{'name':_0x3b5260[_0x50bb('0x2c')],'type':_0x3b5260[_0x50bb('0x2d')][_0x50bb('0x2e')]};});_0x1340aa[_0x50bb('0x2f')]=_[_0x50bb('0x30')](_0x30fea1,'name');_0x1340aa[_0x50bb('0x31')]=_[_0x50bb('0x32')](_0x380943[_0x50bb('0x31')]);_0x1340aa['filters']=_['intersection'](_0x1340aa[_0x50bb('0x2f')],_0x1340aa[_0x50bb('0x31')]);_0x44a249[_0x50bb('0x33')]=_[_0x50bb('0x34')](_0x1340aa[_0x50bb('0x2f')],qs['fields'](_0x380943[_0x50bb('0x31')][_0x50bb('0x35')]));_0x44a249[_0x50bb('0x33')]=_0x44a249[_0x50bb('0x33')]['length']?_0x44a249[_0x50bb('0x33')]:_0x1340aa['model'];if(!_0x380943['query'][_0x50bb('0x36')]('nolimit')){_0x44a249[_0x50bb('0x20')]=qs['limit'](_0x380943[_0x50bb('0x31')][_0x50bb('0x20')]);_0x44a249['offset']=qs[_0x50bb('0x1d')](_0x380943[_0x50bb('0x31')]['offset']);}_0x44a249[_0x50bb('0x37')]=qs[_0x50bb('0x38')](_0x380943[_0x50bb('0x31')]['sort']);_0x44a249[_0x50bb('0x39')]=qs[_0x50bb('0x3a')](_[_0x50bb('0x3b')](_0x380943[_0x50bb('0x31')],_0x1340aa[_0x50bb('0x3a')]),_0x30fea1);if(_0x380943[_0x50bb('0x31')][_0x50bb('0x3c')]){_0x44a249['where']=_[_0x50bb('0x3d')](_0x44a249[_0x50bb('0x39')],{'$or':_['map'](_0x30fea1,function(_0x548546){if(_0x548546[_0x50bb('0x2d')]!==_0x50bb('0x3e')){var _0x294d62={};_0x294d62[_0x548546[_0x50bb('0x3f')]]={'$like':'%'+_0x380943['query'][_0x50bb('0x3c')]+'%'};return _0x294d62;}})});}_0x44a249=_['merge']({},_0x44a249,_0x380943['options']);var _0x2c94ea={'where':_0x44a249['where']};return db[_0x50bb('0x2a')]['count'](_0x2c94ea)[_0x50bb('0x26')](function(_0x1716e4){_0x5d56e3[_0x50bb('0x1f')]=_0x1716e4;if(_0x380943[_0x50bb('0x31')]['includeAll']){_0x44a249['include']=[{'all':!![]}];}return db[_0x50bb('0x2a')]['findAll'](_0x44a249);})['then'](function(_0x5bed5d){_0x5d56e3[_0x50bb('0x40')]=_0x5bed5d;return _0x5d56e3;})[_0x50bb('0x26')](respondWithFilteredResult(_0x58a7e9,_0x44a249))[_0x50bb('0x41')](handleError(_0x58a7e9,null));};exports[_0x50bb('0x42')]=function(_0x1b0bfd,_0xfdb76a){var _0x33bd5b={'raw':![],'where':{'id':_0x1b0bfd[_0x50bb('0x43')]['id']}},_0x1752c5={};_0x1752c5['model']=_[_0x50bb('0x32')](db[_0x50bb('0x2a')][_0x50bb('0x2b')]);_0x1752c5[_0x50bb('0x31')]=_[_0x50bb('0x32')](_0x1b0bfd[_0x50bb('0x31')]);_0x1752c5[_0x50bb('0x3a')]=_[_0x50bb('0x34')](_0x1752c5[_0x50bb('0x2f')],_0x1752c5[_0x50bb('0x31')]);_0x33bd5b[_0x50bb('0x33')]=_['intersection'](_0x1752c5['model'],qs[_0x50bb('0x35')](_0x1b0bfd[_0x50bb('0x31')]['fields']));_0x33bd5b[_0x50bb('0x33')]=_0x33bd5b['attributes'][_0x50bb('0x44')]?_0x33bd5b[_0x50bb('0x33')]:_0x1752c5[_0x50bb('0x2f')];if(_0x1b0bfd['query'][_0x50bb('0x45')]){_0x33bd5b[_0x50bb('0x46')]=[{'all':!![]}];}_0x33bd5b=_['merge']({},_0x33bd5b,_0x1b0bfd[_0x50bb('0x47')]);return db[_0x50bb('0x2a')][_0x50bb('0x48')](_0x33bd5b)[_0x50bb('0x26')](handleEntityNotFound(_0xfdb76a,null))['then'](respondWithResult(_0xfdb76a,null))[_0x50bb('0x41')](handleError(_0xfdb76a,null));};exports[_0x50bb('0x49')]=function(_0x13bd03,_0x2c5bc9){return db[_0x50bb('0x2a')]['create'](_0x13bd03['body'],{})[_0x50bb('0x26')](respondWithResult(_0x2c5bc9,0xc9))[_0x50bb('0x41')](handleError(_0x2c5bc9,null));};exports[_0x50bb('0x25')]=function(_0x225e21,_0x3e2ca0){if(_0x225e21[_0x50bb('0x4a')]['id']){delete _0x225e21[_0x50bb('0x4a')]['id'];}return db[_0x50bb('0x2a')][_0x50bb('0x48')]({'where':{'id':_0x225e21[_0x50bb('0x43')]['id']}})[_0x50bb('0x26')](handleEntityNotFound(_0x3e2ca0,null))[_0x50bb('0x26')](saveUpdates(_0x225e21[_0x50bb('0x4a')],null))[_0x50bb('0x26')](respondWithResult(_0x3e2ca0,null))[_0x50bb('0x41')](handleError(_0x3e2ca0,null));};exports[_0x50bb('0x4b')]=function(_0xcac846,_0x1aedd3){return db[_0x50bb('0x2a')][_0x50bb('0x48')]({'where':{'id':_0xcac846[_0x50bb('0x43')]['id']}})[_0x50bb('0x26')](handleEntityNotFound(_0x1aedd3,null))[_0x50bb('0x26')](removeEntity(_0x1aedd3,null))[_0x50bb('0x41')](handleError(_0x1aedd3,null));};exports['getFields']=function(_0x1e03fb,_0x5c906b,_0x1725bb){var _0x1a25c4={};var _0x3cc49a={};var _0x46aba8;var _0x4d8869;return db[_0x50bb('0x2a')][_0x50bb('0x4c')]({'where':{'id':_0x1e03fb[_0x50bb('0x43')]['id']}})[_0x50bb('0x26')](handleEntityNotFound(_0x5c906b,null))[_0x50bb('0x26')](function(_0x19d34b){if(_0x19d34b){_0x46aba8=_0x19d34b;_0x3cc49a[_0x50bb('0x2f')]=_[_0x50bb('0x32')](db[_0x50bb('0x4d')][_0x50bb('0x2b')]);_0x3cc49a[_0x50bb('0x31')]=_[_0x50bb('0x32')](_0x1e03fb[_0x50bb('0x31')]);_0x3cc49a[_0x50bb('0x3a')]=_[_0x50bb('0x34')](_0x3cc49a['model'],_0x3cc49a[_0x50bb('0x31')]);_0x1a25c4['attributes']=_[_0x50bb('0x34')](_0x3cc49a[_0x50bb('0x2f')],qs[_0x50bb('0x35')](_0x1e03fb[_0x50bb('0x31')][_0x50bb('0x35')]));_0x1a25c4[_0x50bb('0x33')]=_0x1a25c4[_0x50bb('0x33')][_0x50bb('0x44')]?_0x1a25c4['attributes']:_0x3cc49a[_0x50bb('0x2f')];_0x1a25c4[_0x50bb('0x37')]=qs[_0x50bb('0x38')](_0x1e03fb[_0x50bb('0x31')][_0x50bb('0x38')]);_0x1a25c4[_0x50bb('0x39')]=qs[_0x50bb('0x3a')](_[_0x50bb('0x3b')](_0x1e03fb[_0x50bb('0x31')],_0x3cc49a[_0x50bb('0x3a')]));if(_0x1e03fb[_0x50bb('0x31')]['filter']){_0x1a25c4[_0x50bb('0x39')]=_[_0x50bb('0x3d')](_0x1a25c4[_0x50bb('0x39')],{'$or':_['map'](_0x1a25c4['attributes'],function(_0x710cef){var _0x1c4ba9={};_0x1c4ba9[_0x710cef]={'$like':'%'+_0x1e03fb[_0x50bb('0x31')][_0x50bb('0x3c')]+'%'};return _0x1c4ba9;})});}_0x1a25c4=_[_0x50bb('0x3d')]({},_0x1a25c4,_0x1e03fb['options']);return _0x46aba8[_0x50bb('0x4e')](_0x1a25c4);}})[_0x50bb('0x26')](function(_0x5aef95){if(_0x5aef95){_0x4d8869=_0x5aef95['length'];if(!_0x1e03fb[_0x50bb('0x31')][_0x50bb('0x36')]('nolimit')){_0x1a25c4[_0x50bb('0x20')]=qs['limit'](_0x1e03fb[_0x50bb('0x31')]['limit']);_0x1a25c4['offset']=qs['offset'](_0x1e03fb[_0x50bb('0x31')][_0x50bb('0x1d')]);}return _0x46aba8[_0x50bb('0x4e')](_0x1a25c4);}})[_0x50bb('0x26')](function(_0x473c34){if(_0x473c34){return _0x473c34?{'count':_0x4d8869,'rows':_0x473c34}:null;}})['then'](respondWithResult(_0x5c906b,null))[_0x50bb('0x41')](handleError(_0x5c906b,null));};exports['getSubjects']=function(_0x59a04f,_0x326750,_0xaf83b2){var _0x4ae8ab={};var _0x22e184={};var _0x1e21a0;var _0x6abadc;return db['DeskConfiguration']['findOne']({'where':{'id':_0x59a04f[_0x50bb('0x43')]['id']}})['then'](handleEntityNotFound(_0x326750,null))[_0x50bb('0x26')](function(_0x9efe54){if(_0x9efe54){_0x1e21a0=_0x9efe54;_0x22e184['model']=_[_0x50bb('0x32')](db[_0x50bb('0x4d')]['rawAttributes']);_0x22e184[_0x50bb('0x31')]=_[_0x50bb('0x32')](_0x59a04f[_0x50bb('0x31')]);_0x22e184[_0x50bb('0x3a')]=_[_0x50bb('0x34')](_0x22e184[_0x50bb('0x2f')],_0x22e184[_0x50bb('0x31')]);_0x4ae8ab[_0x50bb('0x33')]=_[_0x50bb('0x34')](_0x22e184['model'],qs[_0x50bb('0x35')](_0x59a04f[_0x50bb('0x31')][_0x50bb('0x35')]));_0x4ae8ab[_0x50bb('0x33')]=_0x4ae8ab[_0x50bb('0x33')][_0x50bb('0x44')]?_0x4ae8ab[_0x50bb('0x33')]:_0x22e184['model'];_0x4ae8ab[_0x50bb('0x37')]=qs[_0x50bb('0x38')](_0x59a04f['query']['sort']);_0x4ae8ab[_0x50bb('0x39')]=qs[_0x50bb('0x3a')](_[_0x50bb('0x3b')](_0x59a04f[_0x50bb('0x31')],_0x22e184[_0x50bb('0x3a')]));if(_0x59a04f['query'][_0x50bb('0x3c')]){_0x4ae8ab[_0x50bb('0x39')]=_[_0x50bb('0x3d')](_0x4ae8ab[_0x50bb('0x39')],{'$or':_[_0x50bb('0x30')](_0x4ae8ab['attributes'],function(_0x31b07e){var _0x1ea1af={};_0x1ea1af[_0x31b07e]={'$like':'%'+_0x59a04f[_0x50bb('0x31')][_0x50bb('0x3c')]+'%'};return _0x1ea1af;})});}_0x4ae8ab=_[_0x50bb('0x3d')]({},_0x4ae8ab,_0x59a04f['options']);return _0x1e21a0[_0x50bb('0x4f')](_0x4ae8ab);}})[_0x50bb('0x26')](function(_0x360639){if(_0x360639){_0x6abadc=_0x360639[_0x50bb('0x44')];if(!_0x59a04f[_0x50bb('0x31')][_0x50bb('0x36')](_0x50bb('0x50'))){_0x4ae8ab[_0x50bb('0x20')]=qs[_0x50bb('0x20')](_0x59a04f[_0x50bb('0x31')][_0x50bb('0x20')]);_0x4ae8ab[_0x50bb('0x1d')]=qs['offset'](_0x59a04f[_0x50bb('0x31')][_0x50bb('0x1d')]);}return _0x1e21a0[_0x50bb('0x4f')](_0x4ae8ab);}})[_0x50bb('0x26')](function(_0x5206b5){if(_0x5206b5){return _0x5206b5?{'count':_0x6abadc,'rows':_0x5206b5}:null;}})[_0x50bb('0x26')](respondWithResult(_0x326750,null))[_0x50bb('0x41')](handleError(_0x326750,null));};exports[_0x50bb('0x51')]=function(_0x284759,_0x2627e9,_0x44d67a){var _0xeeffe4={};var _0x3cad22={};var _0x2f813d;var _0x380a53;return db['DeskConfiguration'][_0x50bb('0x4c')]({'where':{'id':_0x284759[_0x50bb('0x43')]['id']}})[_0x50bb('0x26')](handleEntityNotFound(_0x2627e9,null))[_0x50bb('0x26')](function(_0x5874b3){if(_0x5874b3){_0x2f813d=_0x5874b3;_0x3cad22[_0x50bb('0x2f')]=_['keys'](db[_0x50bb('0x4d')]['rawAttributes']);_0x3cad22['query']=_['keys'](_0x284759[_0x50bb('0x31')]);_0x3cad22['filters']=_['intersection'](_0x3cad22[_0x50bb('0x2f')],_0x3cad22[_0x50bb('0x31')]);_0xeeffe4[_0x50bb('0x33')]=_[_0x50bb('0x34')](_0x3cad22[_0x50bb('0x2f')],qs[_0x50bb('0x35')](_0x284759[_0x50bb('0x31')][_0x50bb('0x35')]));_0xeeffe4['attributes']=_0xeeffe4[_0x50bb('0x33')][_0x50bb('0x44')]?_0xeeffe4[_0x50bb('0x33')]:_0x3cad22[_0x50bb('0x2f')];_0xeeffe4['order']=qs[_0x50bb('0x38')](_0x284759[_0x50bb('0x31')]['sort']);_0xeeffe4[_0x50bb('0x39')]=qs[_0x50bb('0x3a')](_[_0x50bb('0x3b')](_0x284759['query'],_0x3cad22[_0x50bb('0x3a')]));if(_0x284759[_0x50bb('0x31')]['filter']){_0xeeffe4[_0x50bb('0x39')]=_[_0x50bb('0x3d')](_0xeeffe4['where'],{'$or':_[_0x50bb('0x30')](_0xeeffe4[_0x50bb('0x33')],function(_0x266c16){var _0x27ffb4={};_0x27ffb4[_0x266c16]={'$like':'%'+_0x284759['query'][_0x50bb('0x3c')]+'%'};return _0x27ffb4;})});}_0xeeffe4=_[_0x50bb('0x3d')]({},_0xeeffe4,_0x284759[_0x50bb('0x47')]);return _0x2f813d[_0x50bb('0x51')](_0xeeffe4);}})[_0x50bb('0x26')](function(_0x400867){if(_0x400867){_0x380a53=_0x400867[_0x50bb('0x44')];if(!_0x284759[_0x50bb('0x31')][_0x50bb('0x36')](_0x50bb('0x50'))){_0xeeffe4['limit']=qs['limit'](_0x284759[_0x50bb('0x31')][_0x50bb('0x20')]);_0xeeffe4[_0x50bb('0x1d')]=qs[_0x50bb('0x1d')](_0x284759[_0x50bb('0x31')][_0x50bb('0x1d')]);}return _0x2f813d['getDescriptions'](_0xeeffe4);}})[_0x50bb('0x26')](function(_0x4e21bb){if(_0x4e21bb){return _0x4e21bb?{'count':_0x380a53,'rows':_0x4e21bb}:null;}})[_0x50bb('0x26')](respondWithResult(_0x2627e9,null))[_0x50bb('0x41')](handleError(_0x2627e9,null));};exports[_0x50bb('0x52')]=function(_0x2b334e,_0x328683,_0x1f932d){var _0x30f537={};var _0x1c12e1={};var _0x4b6d5d;var _0x2bf0e8;return db[_0x50bb('0x2a')][_0x50bb('0x4c')]({'where':{'id':_0x2b334e[_0x50bb('0x43')]['id']}})[_0x50bb('0x26')](handleEntityNotFound(_0x328683,null))[_0x50bb('0x26')](function(_0x2e86b9){if(_0x2e86b9){_0x4b6d5d=_0x2e86b9;_0x1c12e1[_0x50bb('0x2f')]=_[_0x50bb('0x32')](db[_0x50bb('0x53')][_0x50bb('0x2b')]);_0x1c12e1['query']=_[_0x50bb('0x32')](_0x2b334e[_0x50bb('0x31')]);_0x1c12e1[_0x50bb('0x3a')]=_[_0x50bb('0x34')](_0x1c12e1[_0x50bb('0x2f')],_0x1c12e1['query']);_0x30f537[_0x50bb('0x33')]=_['intersection'](_0x1c12e1[_0x50bb('0x2f')],qs[_0x50bb('0x35')](_0x2b334e[_0x50bb('0x31')][_0x50bb('0x35')]));_0x30f537[_0x50bb('0x33')]=_0x30f537['attributes'][_0x50bb('0x44')]?_0x30f537[_0x50bb('0x33')]:_0x1c12e1['model'];_0x30f537[_0x50bb('0x37')]=qs['sort'](_0x2b334e[_0x50bb('0x31')]['sort']);_0x30f537[_0x50bb('0x39')]=qs[_0x50bb('0x3a')](_['pick'](_0x2b334e[_0x50bb('0x31')],_0x1c12e1[_0x50bb('0x3a')]));if(_0x2b334e['query']['filter']){_0x30f537[_0x50bb('0x39')]=_[_0x50bb('0x3d')](_0x30f537[_0x50bb('0x39')],{'$or':_['map'](_0x30f537[_0x50bb('0x33')],function(_0x4f6b95){var _0x3e7321={};_0x3e7321[_0x4f6b95]={'$like':'%'+_0x2b334e['query'][_0x50bb('0x3c')]+'%'};return _0x3e7321;})});}_0x30f537=_['merge']({},_0x30f537,_0x2b334e['options']);return _0x4b6d5d[_0x50bb('0x52')](_0x30f537);}})[_0x50bb('0x26')](function(_0x82da67){if(_0x82da67){_0x2bf0e8=_0x82da67[_0x50bb('0x44')];if(!_0x2b334e['query']['hasOwnProperty'](_0x50bb('0x50'))){_0x30f537[_0x50bb('0x20')]=qs[_0x50bb('0x20')](_0x2b334e[_0x50bb('0x31')][_0x50bb('0x20')]);_0x30f537[_0x50bb('0x1d')]=qs['offset'](_0x2b334e[_0x50bb('0x31')][_0x50bb('0x1d')]);}return _0x4b6d5d[_0x50bb('0x52')](_0x30f537);}})[_0x50bb('0x26')](function(_0x22c600){if(_0x22c600){return _0x22c600?{'count':_0x2bf0e8,'rows':_0x22c600}:null;}})[_0x50bb('0x26')](respondWithResult(_0x328683,null))[_0x50bb('0x41')](handleError(_0x328683,null));};exports[_0x50bb('0x54')]=function(_0x1fdb58,_0x39490d,_0x5cfab9){if(_0x1fdb58[_0x50bb('0x4a')]['id']){delete _0x1fdb58[_0x50bb('0x4a')]['id'];}return db[_0x50bb('0x2a')][_0x50bb('0x4c')]({'where':{'id':_0x1fdb58[_0x50bb('0x43')]['id']}})[_0x50bb('0x26')](handleEntityNotFound(_0x39490d,null))[_0x50bb('0x26')](function(_0x571efc){if(_0x571efc){return _0x571efc[_0x50bb('0x54')](_0x1fdb58['body'][_0x50bb('0x55')]||[]);}return null;})[_0x50bb('0x26')](respondWithResult(_0x39490d,null))[_0x50bb('0x41')](handleError(_0x39490d,null));};
\ No newline at end of file
+var _0x688f=['DeskConfiguration','rawAttributes','fieldName','type','key','model','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','order','sort','where','pick','VIRTUAL','filter','options','include','findAll','catch','show','params','find','create','body','getFields','findOne','DeskField','merge','nolimit','getSubjects','getDescriptions','Tag','getTags','setTags','ids','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','Content-Range','apply','save','update','then','destroy','error','name','send','index','map'];(function(_0x2f289c,_0x5e3aac){var _0x183dd6=function(_0x391366){while(--_0x391366){_0x2f289c['push'](_0x2f289c['shift']());}};_0x183dd6(++_0x5e3aac);}(_0x688f,0x127));var _0xf688=function(_0x1caf6a,_0x26a5bf){_0x1caf6a=_0x1caf6a-0x0;var _0x1bf493=_0x688f[_0x1caf6a];return _0x1bf493;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xf688('0x0'));var zipdir=require(_0xf688('0x1'));var jsonpatch=require(_0xf688('0x2'));var rp=require(_0xf688('0x3'));var moment=require(_0xf688('0x4'));var BPromise=require(_0xf688('0x5'));var Mustache=require(_0xf688('0x6'));var util=require(_0xf688('0x7'));var path=require('path');var sox=require(_0xf688('0x8'));var csv=require(_0xf688('0x9'));var ejs=require(_0xf688('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0xf688('0xb'));var crypto=require(_0xf688('0xc'));var jsforce=require(_0xf688('0xd'));var deskjs=require(_0xf688('0xe'));var toCsv=require(_0xf688('0x9'));var querystring=require(_0xf688('0xf'));var Papa=require(_0xf688('0x10'));var Redis=require(_0xf688('0x11'));var authService=require('../../components/auth/service');var qs=require(_0xf688('0x12'));var as=require(_0xf688('0x13'));var hardwareService=require(_0xf688('0x14'));var logger=require(_0xf688('0x15'))('api');var utils=require(_0xf688('0x16'));var config=require(_0xf688('0x17'));var licenseUtil=require(_0xf688('0x18'));var db=require(_0xf688('0x19'))['db'];function respondWithStatusCode(_0x6b9b18,_0x407622){_0x407622=_0x407622||0xcc;return function(_0x344218){if(_0x344218){return _0x6b9b18[_0xf688('0x1a')](_0x407622);}return _0x6b9b18[_0xf688('0x1b')](_0x407622)[_0xf688('0x1c')]();};}function respondWithResult(_0x48d1d2,_0x569eb0){_0x569eb0=_0x569eb0||0xc8;return function(_0x508d90){if(_0x508d90){return _0x48d1d2[_0xf688('0x1b')](_0x569eb0)[_0xf688('0x1d')](_0x508d90);}};}function respondWithFilteredResult(_0x3f3429,_0x49b5a7){return function(_0x14b9af){if(_0x14b9af){var _0xd831ea=typeof _0x49b5a7[_0xf688('0x1e')]===_0xf688('0x1f')&&typeof _0x49b5a7['limit']==='undefined';var _0x288e4a=_0x14b9af['count'];var _0x2cbb18=_0xd831ea?0x0:_0x49b5a7[_0xf688('0x1e')];var _0x44496b=_0xd831ea?_0x14b9af[_0xf688('0x20')]:_0x49b5a7[_0xf688('0x1e')]+_0x49b5a7[_0xf688('0x21')];var _0x2162be;if(_0x44496b>=_0x288e4a){_0x44496b=_0x288e4a;_0x2162be=0xc8;}else{_0x2162be=0xce;}_0x3f3429[_0xf688('0x1b')](_0x2162be);return _0x3f3429['set'](_0xf688('0x22'),_0x2cbb18+'-'+_0x44496b+'/'+_0x288e4a)[_0xf688('0x1d')](_0x14b9af);}return null;};}function patchUpdates(_0x7a0d24){return function(_0x545c85){try{jsonpatch[_0xf688('0x23')](_0x545c85,_0x7a0d24,!![]);}catch(_0x269241){return BPromise['reject'](_0x269241);}return _0x545c85[_0xf688('0x24')]();};}function saveUpdates(_0x431578,_0x47a8b0){return function(_0x1760bc){if(_0x1760bc){return _0x1760bc[_0xf688('0x25')](_0x431578)[_0xf688('0x26')](function(_0x255545){return _0x255545;});}return null;};}function removeEntity(_0x108dde,_0x278e81){return function(_0xa6b463){if(_0xa6b463){return _0xa6b463[_0xf688('0x27')]()[_0xf688('0x26')](function(){_0x108dde[_0xf688('0x1b')](0xcc)[_0xf688('0x1c')]();});}};}function handleEntityNotFound(_0x341c7b,_0x3d9be9){return function(_0x3e428b){if(!_0x3e428b){_0x341c7b[_0xf688('0x1a')](0x194);}return _0x3e428b;};}function handleError(_0x170fe5,_0x3e0cca){_0x3e0cca=_0x3e0cca||0x1f4;return function(_0x2bd425){logger[_0xf688('0x28')](_0x2bd425['stack']);if(_0x2bd425[_0xf688('0x29')]){delete _0x2bd425[_0xf688('0x29')];}_0x170fe5['status'](_0x3e0cca)[_0xf688('0x2a')](_0x2bd425);};}exports[_0xf688('0x2b')]=function(_0x1166af,_0x56a517){var _0x56fa6a={},_0x492ae0={},_0x33b3a5={'count':0x0,'rows':[]};var _0x833a85=_[_0xf688('0x2c')](db[_0xf688('0x2d')][_0xf688('0x2e')],function(_0x1b62ac){return{'name':_0x1b62ac[_0xf688('0x2f')],'type':_0x1b62ac[_0xf688('0x30')][_0xf688('0x31')]};});_0x492ae0[_0xf688('0x32')]=_[_0xf688('0x2c')](_0x833a85,_0xf688('0x29'));_0x492ae0[_0xf688('0x33')]=_[_0xf688('0x34')](_0x1166af[_0xf688('0x33')]);_0x492ae0[_0xf688('0x35')]=_['intersection'](_0x492ae0[_0xf688('0x32')],_0x492ae0[_0xf688('0x33')]);_0x56fa6a[_0xf688('0x36')]=_[_0xf688('0x37')](_0x492ae0['model'],qs['fields'](_0x1166af['query'][_0xf688('0x38')]));_0x56fa6a[_0xf688('0x36')]=_0x56fa6a[_0xf688('0x36')][_0xf688('0x39')]?_0x56fa6a[_0xf688('0x36')]:_0x492ae0['model'];if(!_0x1166af[_0xf688('0x33')][_0xf688('0x3a')]('nolimit')){_0x56fa6a[_0xf688('0x21')]=qs[_0xf688('0x21')](_0x1166af[_0xf688('0x33')][_0xf688('0x21')]);_0x56fa6a[_0xf688('0x1e')]=qs['offset'](_0x1166af[_0xf688('0x33')][_0xf688('0x1e')]);}_0x56fa6a[_0xf688('0x3b')]=qs['sort'](_0x1166af[_0xf688('0x33')][_0xf688('0x3c')]);_0x56fa6a[_0xf688('0x3d')]=qs[_0xf688('0x35')](_[_0xf688('0x3e')](_0x1166af[_0xf688('0x33')],_0x492ae0[_0xf688('0x35')]),_0x833a85);if(_0x1166af[_0xf688('0x33')]['filter']){_0x56fa6a[_0xf688('0x3d')]=_['merge'](_0x56fa6a[_0xf688('0x3d')],{'$or':_[_0xf688('0x2c')](_0x833a85,function(_0x1b9852){if(_0x1b9852[_0xf688('0x30')]!==_0xf688('0x3f')){var _0xe4ba25={};_0xe4ba25[_0x1b9852[_0xf688('0x29')]]={'$like':'%'+_0x1166af[_0xf688('0x33')][_0xf688('0x40')]+'%'};return _0xe4ba25;}})});}_0x56fa6a=_['merge']({},_0x56fa6a,_0x1166af[_0xf688('0x41')]);var _0x124fdf={'where':_0x56fa6a[_0xf688('0x3d')]};return db[_0xf688('0x2d')][_0xf688('0x20')](_0x124fdf)['then'](function(_0x59fe17){_0x33b3a5[_0xf688('0x20')]=_0x59fe17;if(_0x1166af[_0xf688('0x33')]['includeAll']){_0x56fa6a[_0xf688('0x42')]=[{'all':!![]}];}return db[_0xf688('0x2d')][_0xf688('0x43')](_0x56fa6a);})[_0xf688('0x26')](function(_0xfb00ec){_0x33b3a5['rows']=_0xfb00ec;return _0x33b3a5;})['then'](respondWithFilteredResult(_0x56a517,_0x56fa6a))[_0xf688('0x44')](handleError(_0x56a517,null));};exports[_0xf688('0x45')]=function(_0xff8bfb,_0x3907b0){var _0x330194={'raw':![],'where':{'id':_0xff8bfb[_0xf688('0x46')]['id']}},_0x10dc00={};_0x10dc00[_0xf688('0x32')]=_[_0xf688('0x34')](db[_0xf688('0x2d')]['rawAttributes']);_0x10dc00[_0xf688('0x33')]=_['keys'](_0xff8bfb[_0xf688('0x33')]);_0x10dc00[_0xf688('0x35')]=_[_0xf688('0x37')](_0x10dc00[_0xf688('0x32')],_0x10dc00[_0xf688('0x33')]);_0x330194[_0xf688('0x36')]=_[_0xf688('0x37')](_0x10dc00['model'],qs[_0xf688('0x38')](_0xff8bfb[_0xf688('0x33')][_0xf688('0x38')]));_0x330194[_0xf688('0x36')]=_0x330194[_0xf688('0x36')][_0xf688('0x39')]?_0x330194[_0xf688('0x36')]:_0x10dc00[_0xf688('0x32')];if(_0xff8bfb[_0xf688('0x33')]['includeAll']){_0x330194[_0xf688('0x42')]=[{'all':!![]}];}_0x330194=_['merge']({},_0x330194,_0xff8bfb['options']);return db[_0xf688('0x2d')][_0xf688('0x47')](_0x330194)[_0xf688('0x26')](handleEntityNotFound(_0x3907b0,null))[_0xf688('0x26')](respondWithResult(_0x3907b0,null))['catch'](handleError(_0x3907b0,null));};exports[_0xf688('0x48')]=function(_0x25fd52,_0x384cee){return db[_0xf688('0x2d')][_0xf688('0x48')](_0x25fd52[_0xf688('0x49')],{})[_0xf688('0x26')](respondWithResult(_0x384cee,0xc9))[_0xf688('0x44')](handleError(_0x384cee,null));};exports[_0xf688('0x25')]=function(_0x4f3fc8,_0x2e6db1){if(_0x4f3fc8[_0xf688('0x49')]['id']){delete _0x4f3fc8[_0xf688('0x49')]['id'];}return db[_0xf688('0x2d')][_0xf688('0x47')]({'where':{'id':_0x4f3fc8['params']['id']}})[_0xf688('0x26')](handleEntityNotFound(_0x2e6db1,null))[_0xf688('0x26')](saveUpdates(_0x4f3fc8['body'],null))[_0xf688('0x26')](respondWithResult(_0x2e6db1,null))[_0xf688('0x44')](handleError(_0x2e6db1,null));};exports['destroy']=function(_0x36203d,_0x5d4fee){return db[_0xf688('0x2d')][_0xf688('0x47')]({'where':{'id':_0x36203d[_0xf688('0x46')]['id']}})[_0xf688('0x26')](handleEntityNotFound(_0x5d4fee,null))[_0xf688('0x26')](removeEntity(_0x5d4fee,null))['catch'](handleError(_0x5d4fee,null));};exports[_0xf688('0x4a')]=function(_0x3850c8,_0x43c3cf,_0x4e3d3e){var _0x355c67={};var _0x8984c2={};var _0x195243;var _0x18df9a;return db[_0xf688('0x2d')][_0xf688('0x4b')]({'where':{'id':_0x3850c8[_0xf688('0x46')]['id']}})[_0xf688('0x26')](handleEntityNotFound(_0x43c3cf,null))['then'](function(_0x33e25e){if(_0x33e25e){_0x195243=_0x33e25e;_0x8984c2[_0xf688('0x32')]=_[_0xf688('0x34')](db[_0xf688('0x4c')]['rawAttributes']);_0x8984c2[_0xf688('0x33')]=_[_0xf688('0x34')](_0x3850c8[_0xf688('0x33')]);_0x8984c2['filters']=_[_0xf688('0x37')](_0x8984c2[_0xf688('0x32')],_0x8984c2['query']);_0x355c67[_0xf688('0x36')]=_['intersection'](_0x8984c2[_0xf688('0x32')],qs[_0xf688('0x38')](_0x3850c8['query']['fields']));_0x355c67[_0xf688('0x36')]=_0x355c67[_0xf688('0x36')]['length']?_0x355c67['attributes']:_0x8984c2[_0xf688('0x32')];_0x355c67[_0xf688('0x3b')]=qs[_0xf688('0x3c')](_0x3850c8[_0xf688('0x33')][_0xf688('0x3c')]);_0x355c67['where']=qs[_0xf688('0x35')](_['pick'](_0x3850c8[_0xf688('0x33')],_0x8984c2['filters']));if(_0x3850c8[_0xf688('0x33')][_0xf688('0x40')]){_0x355c67[_0xf688('0x3d')]=_['merge'](_0x355c67[_0xf688('0x3d')],{'$or':_[_0xf688('0x2c')](_0x355c67[_0xf688('0x36')],function(_0x26c961){var _0x4befc3={};_0x4befc3[_0x26c961]={'$like':'%'+_0x3850c8[_0xf688('0x33')]['filter']+'%'};return _0x4befc3;})});}_0x355c67=_[_0xf688('0x4d')]({},_0x355c67,_0x3850c8['options']);return _0x195243[_0xf688('0x4a')](_0x355c67);}})[_0xf688('0x26')](function(_0x2cc7d6){if(_0x2cc7d6){_0x18df9a=_0x2cc7d6['length'];if(!_0x3850c8[_0xf688('0x33')][_0xf688('0x3a')](_0xf688('0x4e'))){_0x355c67[_0xf688('0x21')]=qs['limit'](_0x3850c8[_0xf688('0x33')][_0xf688('0x21')]);_0x355c67['offset']=qs['offset'](_0x3850c8[_0xf688('0x33')][_0xf688('0x1e')]);}return _0x195243[_0xf688('0x4a')](_0x355c67);}})['then'](function(_0x142746){if(_0x142746){return _0x142746?{'count':_0x18df9a,'rows':_0x142746}:null;}})['then'](respondWithResult(_0x43c3cf,null))[_0xf688('0x44')](handleError(_0x43c3cf,null));};exports['getSubjects']=function(_0x3d71c2,_0x5199b9,_0x26879b){var _0x3f09d7={};var _0x39caa7={};var _0x12f47b;var _0x1a9829;return db[_0xf688('0x2d')][_0xf688('0x4b')]({'where':{'id':_0x3d71c2[_0xf688('0x46')]['id']}})[_0xf688('0x26')](handleEntityNotFound(_0x5199b9,null))[_0xf688('0x26')](function(_0x12318f){if(_0x12318f){_0x12f47b=_0x12318f;_0x39caa7[_0xf688('0x32')]=_[_0xf688('0x34')](db[_0xf688('0x4c')][_0xf688('0x2e')]);_0x39caa7[_0xf688('0x33')]=_[_0xf688('0x34')](_0x3d71c2['query']);_0x39caa7['filters']=_[_0xf688('0x37')](_0x39caa7[_0xf688('0x32')],_0x39caa7[_0xf688('0x33')]);_0x3f09d7[_0xf688('0x36')]=_[_0xf688('0x37')](_0x39caa7[_0xf688('0x32')],qs[_0xf688('0x38')](_0x3d71c2[_0xf688('0x33')][_0xf688('0x38')]));_0x3f09d7['attributes']=_0x3f09d7['attributes'][_0xf688('0x39')]?_0x3f09d7['attributes']:_0x39caa7[_0xf688('0x32')];_0x3f09d7['order']=qs['sort'](_0x3d71c2['query']['sort']);_0x3f09d7['where']=qs[_0xf688('0x35')](_[_0xf688('0x3e')](_0x3d71c2[_0xf688('0x33')],_0x39caa7[_0xf688('0x35')]));if(_0x3d71c2['query'][_0xf688('0x40')]){_0x3f09d7['where']=_['merge'](_0x3f09d7[_0xf688('0x3d')],{'$or':_[_0xf688('0x2c')](_0x3f09d7[_0xf688('0x36')],function(_0x5a3a9f){var _0x178428={};_0x178428[_0x5a3a9f]={'$like':'%'+_0x3d71c2[_0xf688('0x33')]['filter']+'%'};return _0x178428;})});}_0x3f09d7=_[_0xf688('0x4d')]({},_0x3f09d7,_0x3d71c2[_0xf688('0x41')]);return _0x12f47b[_0xf688('0x4f')](_0x3f09d7);}})[_0xf688('0x26')](function(_0x5a1c51){if(_0x5a1c51){_0x1a9829=_0x5a1c51[_0xf688('0x39')];if(!_0x3d71c2[_0xf688('0x33')][_0xf688('0x3a')](_0xf688('0x4e'))){_0x3f09d7[_0xf688('0x21')]=qs['limit'](_0x3d71c2[_0xf688('0x33')]['limit']);_0x3f09d7[_0xf688('0x1e')]=qs[_0xf688('0x1e')](_0x3d71c2['query']['offset']);}return _0x12f47b['getSubjects'](_0x3f09d7);}})[_0xf688('0x26')](function(_0x5930ff){if(_0x5930ff){return _0x5930ff?{'count':_0x1a9829,'rows':_0x5930ff}:null;}})['then'](respondWithResult(_0x5199b9,null))[_0xf688('0x44')](handleError(_0x5199b9,null));};exports['getDescriptions']=function(_0x753ce0,_0x319114,_0x239519){var _0x215678={};var _0x5bb1e8={};var _0x42496d;var _0x1bcc26;return db[_0xf688('0x2d')]['findOne']({'where':{'id':_0x753ce0[_0xf688('0x46')]['id']}})[_0xf688('0x26')](handleEntityNotFound(_0x319114,null))[_0xf688('0x26')](function(_0x18b3f5){if(_0x18b3f5){_0x42496d=_0x18b3f5;_0x5bb1e8['model']=_[_0xf688('0x34')](db[_0xf688('0x4c')][_0xf688('0x2e')]);_0x5bb1e8[_0xf688('0x33')]=_['keys'](_0x753ce0[_0xf688('0x33')]);_0x5bb1e8[_0xf688('0x35')]=_[_0xf688('0x37')](_0x5bb1e8['model'],_0x5bb1e8['query']);_0x215678[_0xf688('0x36')]=_[_0xf688('0x37')](_0x5bb1e8[_0xf688('0x32')],qs[_0xf688('0x38')](_0x753ce0[_0xf688('0x33')]['fields']));_0x215678[_0xf688('0x36')]=_0x215678[_0xf688('0x36')][_0xf688('0x39')]?_0x215678['attributes']:_0x5bb1e8[_0xf688('0x32')];_0x215678['order']=qs[_0xf688('0x3c')](_0x753ce0[_0xf688('0x33')][_0xf688('0x3c')]);_0x215678[_0xf688('0x3d')]=qs[_0xf688('0x35')](_[_0xf688('0x3e')](_0x753ce0[_0xf688('0x33')],_0x5bb1e8[_0xf688('0x35')]));if(_0x753ce0[_0xf688('0x33')][_0xf688('0x40')]){_0x215678[_0xf688('0x3d')]=_[_0xf688('0x4d')](_0x215678[_0xf688('0x3d')],{'$or':_[_0xf688('0x2c')](_0x215678[_0xf688('0x36')],function(_0x303ec1){var _0x57d8d8={};_0x57d8d8[_0x303ec1]={'$like':'%'+_0x753ce0[_0xf688('0x33')][_0xf688('0x40')]+'%'};return _0x57d8d8;})});}_0x215678=_[_0xf688('0x4d')]({},_0x215678,_0x753ce0['options']);return _0x42496d['getDescriptions'](_0x215678);}})[_0xf688('0x26')](function(_0x5d7c28){if(_0x5d7c28){_0x1bcc26=_0x5d7c28[_0xf688('0x39')];if(!_0x753ce0[_0xf688('0x33')][_0xf688('0x3a')](_0xf688('0x4e'))){_0x215678['limit']=qs[_0xf688('0x21')](_0x753ce0[_0xf688('0x33')][_0xf688('0x21')]);_0x215678[_0xf688('0x1e')]=qs[_0xf688('0x1e')](_0x753ce0[_0xf688('0x33')][_0xf688('0x1e')]);}return _0x42496d[_0xf688('0x50')](_0x215678);}})[_0xf688('0x26')](function(_0x59ddd3){if(_0x59ddd3){return _0x59ddd3?{'count':_0x1bcc26,'rows':_0x59ddd3}:null;}})[_0xf688('0x26')](respondWithResult(_0x319114,null))['catch'](handleError(_0x319114,null));};exports['getTags']=function(_0x58bf1e,_0x1c76b5,_0x12541d){var _0x4daeab={};var _0x370ed1={};var _0xad787c;var _0x445db0;return db[_0xf688('0x2d')][_0xf688('0x4b')]({'where':{'id':_0x58bf1e[_0xf688('0x46')]['id']}})[_0xf688('0x26')](handleEntityNotFound(_0x1c76b5,null))[_0xf688('0x26')](function(_0x3f6418){if(_0x3f6418){_0xad787c=_0x3f6418;_0x370ed1[_0xf688('0x32')]=_[_0xf688('0x34')](db[_0xf688('0x51')]['rawAttributes']);_0x370ed1[_0xf688('0x33')]=_[_0xf688('0x34')](_0x58bf1e[_0xf688('0x33')]);_0x370ed1[_0xf688('0x35')]=_['intersection'](_0x370ed1['model'],_0x370ed1[_0xf688('0x33')]);_0x4daeab[_0xf688('0x36')]=_[_0xf688('0x37')](_0x370ed1[_0xf688('0x32')],qs[_0xf688('0x38')](_0x58bf1e[_0xf688('0x33')][_0xf688('0x38')]));_0x4daeab[_0xf688('0x36')]=_0x4daeab['attributes'][_0xf688('0x39')]?_0x4daeab['attributes']:_0x370ed1[_0xf688('0x32')];_0x4daeab[_0xf688('0x3b')]=qs['sort'](_0x58bf1e['query'][_0xf688('0x3c')]);_0x4daeab['where']=qs[_0xf688('0x35')](_[_0xf688('0x3e')](_0x58bf1e[_0xf688('0x33')],_0x370ed1[_0xf688('0x35')]));if(_0x58bf1e[_0xf688('0x33')]['filter']){_0x4daeab['where']=_['merge'](_0x4daeab[_0xf688('0x3d')],{'$or':_[_0xf688('0x2c')](_0x4daeab[_0xf688('0x36')],function(_0x3b68db){var _0x1689ea={};_0x1689ea[_0x3b68db]={'$like':'%'+_0x58bf1e['query'][_0xf688('0x40')]+'%'};return _0x1689ea;})});}_0x4daeab=_[_0xf688('0x4d')]({},_0x4daeab,_0x58bf1e[_0xf688('0x41')]);return _0xad787c[_0xf688('0x52')](_0x4daeab);}})[_0xf688('0x26')](function(_0x14ca86){if(_0x14ca86){_0x445db0=_0x14ca86[_0xf688('0x39')];if(!_0x58bf1e[_0xf688('0x33')]['hasOwnProperty'](_0xf688('0x4e'))){_0x4daeab['limit']=qs['limit'](_0x58bf1e[_0xf688('0x33')]['limit']);_0x4daeab[_0xf688('0x1e')]=qs[_0xf688('0x1e')](_0x58bf1e['query'][_0xf688('0x1e')]);}return _0xad787c['getTags'](_0x4daeab);}})['then'](function(_0x356a32){if(_0x356a32){return _0x356a32?{'count':_0x445db0,'rows':_0x356a32}:null;}})[_0xf688('0x26')](respondWithResult(_0x1c76b5,null))[_0xf688('0x44')](handleError(_0x1c76b5,null));};exports[_0xf688('0x53')]=function(_0xa00dbb,_0x5ae709,_0x2c15af){if(_0xa00dbb[_0xf688('0x49')]['id']){delete _0xa00dbb[_0xf688('0x49')]['id'];}return db[_0xf688('0x2d')][_0xf688('0x4b')]({'where':{'id':_0xa00dbb[_0xf688('0x46')]['id']}})[_0xf688('0x26')](handleEntityNotFound(_0x5ae709,null))[_0xf688('0x26')](function(_0x33200b){if(_0x33200b){return _0x33200b['setTags'](_0xa00dbb[_0xf688('0x49')][_0xf688('0x54')]||[]);}return null;})['then'](respondWithResult(_0x5ae709,null))[_0xf688('0x44')](handleError(_0x5ae709,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2a46=['request-promise','path','rimraf','exports','define','DeskConfiguration','int_desk_configurations','lodash','util','../../config/logger','api','moment','bluebird'];(function(_0x421263,_0x18187d){var _0x34e4b5=function(_0x4e7978){while(--_0x4e7978){_0x421263['push'](_0x421263['shift']());}};_0x34e4b5(++_0x18187d);}(_0x2a46,0x89));var _0x62a4=function(_0x1e6db3,_0x5643ac){_0x1e6db3=_0x1e6db3-0x0;var _0x1de886=_0x2a46[_0x1e6db3];return _0x1de886;};'use strict';var _=require(_0x62a4('0x0'));var util=require(_0x62a4('0x1'));var logger=require(_0x62a4('0x2'))(_0x62a4('0x3'));var moment=require(_0x62a4('0x4'));var BPromise=require(_0x62a4('0x5'));var rp=require(_0x62a4('0x6'));var fs=require('fs');var path=require(_0x62a4('0x7'));var rimraf=require(_0x62a4('0x8'));var config=require('../../config/environment');var attributes=require('./intDeskConfiguration.attributes');module[_0x62a4('0x9')]=function(_0x5240ca,_0x253294){return _0x5240ca[_0x62a4('0xa')](_0x62a4('0xb'),attributes,{'tableName':_0x62a4('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x7220=['define','DeskConfiguration','int_desk_configurations','lodash','../../config/logger','api','moment','bluebird','path','../../config/environment','./intDeskConfiguration.attributes'];(function(_0x4411e1,_0x27d6e6){var _0x1f7597=function(_0x2d49c4){while(--_0x2d49c4){_0x4411e1['push'](_0x4411e1['shift']());}};_0x1f7597(++_0x27d6e6);}(_0x7220,0x14d));var _0x0722=function(_0x1b68ed,_0x2e8fac){_0x1b68ed=_0x1b68ed-0x0;var _0x52aca7=_0x7220[_0x1b68ed];return _0x52aca7;};'use strict';var _=require(_0x0722('0x0'));var util=require('util');var logger=require(_0x0722('0x1'))(_0x0722('0x2'));var moment=require(_0x0722('0x3'));var BPromise=require(_0x0722('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x0722('0x5'));var rimraf=require('rimraf');var config=require(_0x0722('0x6'));var attributes=require(_0x0722('0x7'));module['exports']=function(_0x50bc2a,_0x344950){return _0x50bc2a[_0x0722('0x8')](_0x0722('0x9'),attributes,{'tableName':_0x0722('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x36e0=['ioredis','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request','then','info','DeskConfiguration,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','DeskConfiguration,\x20%s,\x20%s','result','lodash','util','bluebird','randomstring'];(function(_0x295a31,_0x1c68de){var _0x2342c7=function(_0x2c39c2){while(--_0x2c39c2){_0x295a31['push'](_0x295a31['shift']());}};_0x2342c7(++_0x1c68de);}(_0x36e0,0x15c));var _0x036e=function(_0x21e440,_0x26d6d5){_0x21e440=_0x21e440-0x0;var _0x4b813c=_0x36e0[_0x21e440];return _0x4b813c;};'use strict';var _=require(_0x036e('0x0'));var util=require(_0x036e('0x1'));var moment=require('moment');var BPromise=require(_0x036e('0x2'));var rs=require(_0x036e('0x3'));var fs=require('fs');var Redis=require(_0x036e('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x036e('0x5'));var logger=require(_0x036e('0x6'))('rpc');var config=require(_0x036e('0x7'));var jayson=require(_0x036e('0x8'));var client=jayson[_0x036e('0x9')][_0x036e('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x191b3f,_0x19a860,_0x788786){return new BPromise(function(_0x5e5194,_0x592839){return client[_0x036e('0xb')](_0x191b3f,_0x788786)[_0x036e('0xc')](function(_0x183732){logger[_0x036e('0xd')]('DeskConfiguration,\x20%s,\x20%s',_0x19a860,'request\x20sent');logger['debug'](_0x036e('0xe'),_0x19a860,_0x036e('0xf'),JSON[_0x036e('0x10')](_0x183732));if(_0x183732[_0x036e('0x11')]){if(_0x183732['error'][_0x036e('0x12')]===0x1f4){logger[_0x036e('0x11')]('DeskConfiguration,\x20%s,\x20%s',_0x19a860,_0x183732[_0x036e('0x11')][_0x036e('0x13')]);return _0x592839(_0x183732['error']['message']);}logger[_0x036e('0x11')](_0x036e('0x14'),_0x19a860,_0x183732['error']['message']);return _0x5e5194(_0x183732[_0x036e('0x11')][_0x036e('0x13')]);}else{logger[_0x036e('0xd')](_0x036e('0x14'),_0x19a860,'request\x20sent');_0x5e5194(_0x183732[_0x036e('0x15')][_0x036e('0x13')]);}})['catch'](function(_0x724157){logger[_0x036e('0x11')](_0x036e('0x14'),_0x19a860,_0x724157);_0x592839(_0x724157);});});}
\ No newline at end of file
+var _0x01b5=['ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','then','info','DeskConfiguration,\x20%s,\x20%s','request\x20sent','debug','DeskConfiguration,\x20%s,\x20%s,\x20%s','stringify','code','error','message','result','lodash','util','moment','bluebird','randomstring'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x01b5,0xca));var _0x501b=function(_0x52ed69,_0x459639){_0x52ed69=_0x52ed69-0x0;var _0x1cac9f=_0x01b5[_0x52ed69];return _0x1cac9f;};'use strict';var _=require(_0x501b('0x0'));var util=require(_0x501b('0x1'));var moment=require(_0x501b('0x2'));var BPromise=require(_0x501b('0x3'));var rs=require(_0x501b('0x4'));var fs=require('fs');var Redis=require(_0x501b('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x501b('0x6'));var logger=require(_0x501b('0x7'))(_0x501b('0x8'));var config=require(_0x501b('0x9'));var jayson=require('jayson/promise');var client=jayson[_0x501b('0xa')][_0x501b('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x288d59,_0x493687,_0x17ee86){return new BPromise(function(_0x2df165,_0x15c4f4){return client['request'](_0x288d59,_0x17ee86)[_0x501b('0xc')](function(_0x444bc3){logger[_0x501b('0xd')](_0x501b('0xe'),_0x493687,_0x501b('0xf'));logger[_0x501b('0x10')](_0x501b('0x11'),_0x493687,_0x501b('0xf'),JSON[_0x501b('0x12')](_0x444bc3));if(_0x444bc3['error']){if(_0x444bc3['error'][_0x501b('0x13')]===0x1f4){logger[_0x501b('0x14')](_0x501b('0xe'),_0x493687,_0x444bc3['error'][_0x501b('0x15')]);return _0x15c4f4(_0x444bc3[_0x501b('0x14')][_0x501b('0x15')]);}logger[_0x501b('0x14')](_0x501b('0xe'),_0x493687,_0x444bc3[_0x501b('0x14')][_0x501b('0x15')]);return _0x2df165(_0x444bc3[_0x501b('0x14')][_0x501b('0x15')]);}else{logger[_0x501b('0xd')](_0x501b('0xe'),_0x493687,_0x501b('0xf'));_0x2df165(_0x444bc3[_0x501b('0x16')][_0x501b('0x15')]);}})['catch'](function(_0x5547d9){logger[_0x501b('0x14')](_0x501b('0xe'),_0x493687,_0x5547d9);_0x15c4f4(_0x5547d9);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2935=['isAuthenticated','get','/:id','show','create','put','update','delete','destroy','exports','multer','connect-timeout','express','Router','fs-extra','../../components/interaction/service'];(function(_0x38ea0b,_0x1a809a){var _0x6f0e01=function(_0x21975e){while(--_0x21975e){_0x38ea0b['push'](_0x38ea0b['shift']());}};_0x6f0e01(++_0x1a809a);}(_0x2935,0xda));var _0x5293=function(_0x1a01ef,_0x120c7b){_0x1a01ef=_0x1a01ef-0x0;var _0x7e0398=_0x2935[_0x1a01ef];return _0x7e0398;};'use strict';var multer=require(_0x5293('0x0'));var util=require('util');var path=require('path');var timeout=require(_0x5293('0x1'));var express=require(_0x5293('0x2'));var router=express[_0x5293('0x3')]();var fs_extra=require(_0x5293('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x5293('0x5'));var config=require('../../config/environment');var controller=require('./intDeskField.controller');router['get']('/',auth[_0x5293('0x6')](),controller['index']);router[_0x5293('0x7')](_0x5293('0x8'),auth[_0x5293('0x6')](),controller[_0x5293('0x9')]);router['post']('/',auth[_0x5293('0x6')](),controller[_0x5293('0xa')]);router[_0x5293('0xb')]('/:id',auth[_0x5293('0x6')](),controller[_0x5293('0xc')]);router[_0x5293('0xd')](_0x5293('0x8'),auth[_0x5293('0x6')](),controller[_0x5293('0xe')]);module[_0x5293('0xf')]=router;
\ No newline at end of file
+var _0x04f3=['create','put','/:id','delete','destroy','exports','multer','util','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intDeskField.controller','get','index','show','isAuthenticated'];(function(_0x5ba549,_0x425afd){var _0x36e3a1=function(_0x464308){while(--_0x464308){_0x5ba549['push'](_0x5ba549['shift']());}};_0x36e3a1(++_0x425afd);}(_0x04f3,0x7e));var _0x304f=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x04f3[_0x14add3];return _0x4a174f;};'use strict';var multer=require(_0x304f('0x0'));var util=require(_0x304f('0x1'));var path=require(_0x304f('0x2'));var timeout=require('connect-timeout');var express=require(_0x304f('0x3'));var router=express[_0x304f('0x4')]();var fs_extra=require(_0x304f('0x5'));var auth=require(_0x304f('0x6'));var interaction=require(_0x304f('0x7'));var config=require(_0x304f('0x8'));var controller=require(_0x304f('0x9'));router[_0x304f('0xa')]('/',auth['isAuthenticated'](),controller[_0x304f('0xb')]);router[_0x304f('0xa')]('/:id',auth['isAuthenticated'](),controller[_0x304f('0xc')]);router['post']('/',auth[_0x304f('0xd')](),controller[_0x304f('0xe')]);router[_0x304f('0xf')](_0x304f('0x10'),auth[_0x304f('0xd')](),controller['update']);router[_0x304f('0x11')]('/:id',auth[_0x304f('0xd')](),controller[_0x304f('0x12')]);module[_0x304f('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4702=['ENUM','variable','STRING','sequelize','exports','string','customVariable','keyValue','picklist'];(function(_0x4f97ba,_0x5a1ff8){var _0xe3cc8=function(_0x416275){while(--_0x416275){_0x4f97ba['push'](_0x4f97ba['shift']());}};_0xe3cc8(++_0x5a1ff8);}(_0x4702,0x78));var _0x2470=function(_0x41f7d8,_0xd8d5f4){_0x41f7d8=_0x41f7d8-0x0;var _0x26d6a8=_0x4702[_0x41f7d8];return _0x26d6a8;};'use strict';var Sequelize=require(_0x2470('0x0'));module[_0x2470('0x1')]={'type':{'type':Sequelize['ENUM'](_0x2470('0x2'),'variable',_0x2470('0x3'),_0x2470('0x4'),_0x2470('0x5')),'defaultValue':_0x2470('0x2')},'content':{'type':Sequelize['STRING']},'key':{'type':Sequelize['STRING']},'keyType':{'type':Sequelize[_0x2470('0x6')](_0x2470('0x2'),_0x2470('0x7'),'customVariable')},'keyContent':{'type':Sequelize[_0x2470('0x8')]},'idField':{'type':Sequelize[_0x2470('0x8')]},'nameField':{'type':Sequelize[_0x2470('0x8')]},'customField':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x2470('0x8')]}};
\ No newline at end of file
+var _0xf3ff=['picklist','STRING','BOOLEAN','exports','ENUM','string','variable','customVariable'];(function(_0x1eb3e8,_0x29273e){var _0x2bee3e=function(_0x8e7b8b){while(--_0x8e7b8b){_0x1eb3e8['push'](_0x1eb3e8['shift']());}};_0x2bee3e(++_0x29273e);}(_0xf3ff,0x19b));var _0xff3f=function(_0x5b78f2,_0xc7f075){_0x5b78f2=_0x5b78f2-0x0;var _0x4a0b21=_0xf3ff[_0x5b78f2];return _0x4a0b21;};'use strict';var Sequelize=require('sequelize');module[_0xff3f('0x0')]={'type':{'type':Sequelize[_0xff3f('0x1')](_0xff3f('0x2'),_0xff3f('0x3'),_0xff3f('0x4'),'keyValue',_0xff3f('0x5')),'defaultValue':'string'},'content':{'type':Sequelize[_0xff3f('0x6')]},'key':{'type':Sequelize[_0xff3f('0x6')]},'keyType':{'type':Sequelize[_0xff3f('0x1')](_0xff3f('0x2'),'variable',_0xff3f('0x4'))},'keyContent':{'type':Sequelize[_0xff3f('0x6')]},'idField':{'type':Sequelize[_0xff3f('0x6')]},'nameField':{'type':Sequelize[_0xff3f('0x6')]},'customField':{'type':Sequelize[_0xff3f('0x7')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0xff3f('0x6')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8ace=['stack','name','send','map','DeskField','type','query','keys','filters','intersection','model','fields','attributes','hasOwnProperty','nolimit','sort','where','pick','merge','VIRTUAL','options','include','rows','params','rawAttributes','catch','create','body','find','destroy','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','undefined','limit','count','offset','Content-Range','apply','reject','update','then'];(function(_0x4c4f85,_0x2f1414){var _0xdc3c59=function(_0x2e75e8){while(--_0x2e75e8){_0x4c4f85['push'](_0x4c4f85['shift']());}};_0xdc3c59(++_0x2f1414);}(_0x8ace,0x1bc));var _0xe8ac=function(_0x73e5b0,_0x241ec0){_0x73e5b0=_0x73e5b0-0x0;var _0x23ed6f=_0x8ace[_0x73e5b0];return _0x23ed6f;};'use strict';var emlformat=require(_0xe8ac('0x0'));var rimraf=require(_0xe8ac('0x1'));var zipdir=require(_0xe8ac('0x2'));var jsonpatch=require(_0xe8ac('0x3'));var rp=require(_0xe8ac('0x4'));var moment=require(_0xe8ac('0x5'));var BPromise=require(_0xe8ac('0x6'));var Mustache=require(_0xe8ac('0x7'));var util=require(_0xe8ac('0x8'));var path=require(_0xe8ac('0x9'));var sox=require(_0xe8ac('0xa'));var csv=require(_0xe8ac('0xb'));var ejs=require(_0xe8ac('0xc'));var fs=require('fs');var fs_extra=require(_0xe8ac('0xd'));var _=require('lodash');var squel=require(_0xe8ac('0xe'));var crypto=require(_0xe8ac('0xf'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xe8ac('0xb'));var querystring=require('querystring');var Papa=require(_0xe8ac('0x10'));var Redis=require(_0xe8ac('0x11'));var authService=require(_0xe8ac('0x12'));var qs=require(_0xe8ac('0x13'));var as=require(_0xe8ac('0x14'));var hardwareService=require(_0xe8ac('0x15'));var logger=require('../../config/logger')(_0xe8ac('0x16'));var utils=require(_0xe8ac('0x17'));var config=require(_0xe8ac('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0xe8ac('0x19'))['db'];function respondWithStatusCode(_0x4735cb,_0x4cc3b1){_0x4cc3b1=_0x4cc3b1||0xcc;return function(_0x183b7d){if(_0x183b7d){return _0x4735cb[_0xe8ac('0x1a')](_0x4cc3b1);}return _0x4735cb[_0xe8ac('0x1b')](_0x4cc3b1)[_0xe8ac('0x1c')]();};}function respondWithResult(_0x268f61,_0x317078){_0x317078=_0x317078||0xc8;return function(_0x1be138){if(_0x1be138){return _0x268f61[_0xe8ac('0x1b')](_0x317078)[_0xe8ac('0x1d')](_0x1be138);}};}function respondWithFilteredResult(_0x369d36,_0x5e4495){return function(_0x224bda){if(_0x224bda){var _0x18ddb3=typeof _0x5e4495['offset']===_0xe8ac('0x1e')&&typeof _0x5e4495[_0xe8ac('0x1f')]===_0xe8ac('0x1e');var _0xe1c52e=_0x224bda[_0xe8ac('0x20')];var _0x36759c=_0x18ddb3?0x0:_0x5e4495['offset'];var _0x59df3d=_0x18ddb3?_0x224bda['count']:_0x5e4495[_0xe8ac('0x21')]+_0x5e4495[_0xe8ac('0x1f')];var _0x4e5d00;if(_0x59df3d>=_0xe1c52e){_0x59df3d=_0xe1c52e;_0x4e5d00=0xc8;}else{_0x4e5d00=0xce;}_0x369d36[_0xe8ac('0x1b')](_0x4e5d00);return _0x369d36['set'](_0xe8ac('0x22'),_0x36759c+'-'+_0x59df3d+'/'+_0xe1c52e)[_0xe8ac('0x1d')](_0x224bda);}return null;};}function patchUpdates(_0x47e63e){return function(_0x6258f8){try{jsonpatch[_0xe8ac('0x23')](_0x6258f8,_0x47e63e,!![]);}catch(_0x13aa7c){return BPromise[_0xe8ac('0x24')](_0x13aa7c);}return _0x6258f8['save']();};}function saveUpdates(_0x6a7dbd,_0x59a9ea){return function(_0x1eb5f1){if(_0x1eb5f1){return _0x1eb5f1[_0xe8ac('0x25')](_0x6a7dbd)[_0xe8ac('0x26')](function(_0x252440){return _0x252440;});}return null;};}function removeEntity(_0x36108c,_0x31956a){return function(_0x38565d){if(_0x38565d){return _0x38565d['destroy']()[_0xe8ac('0x26')](function(){_0x36108c[_0xe8ac('0x1b')](0xcc)[_0xe8ac('0x1c')]();});}};}function handleEntityNotFound(_0x7c3450,_0x340ae0){return function(_0x3a92e1){if(!_0x3a92e1){_0x7c3450[_0xe8ac('0x1a')](0x194);}return _0x3a92e1;};}function handleError(_0x3e3fc2,_0x44b07c){_0x44b07c=_0x44b07c||0x1f4;return function(_0x562e44){logger['error'](_0x562e44[_0xe8ac('0x27')]);if(_0x562e44[_0xe8ac('0x28')]){delete _0x562e44['name'];}_0x3e3fc2[_0xe8ac('0x1b')](_0x44b07c)[_0xe8ac('0x29')](_0x562e44);};}exports['index']=function(_0x4c1d08,_0x1f1e44){var _0x41294e={},_0x3798c5={},_0x5d7562={'count':0x0,'rows':[]};var _0x156550=_[_0xe8ac('0x2a')](db[_0xe8ac('0x2b')]['rawAttributes'],function(_0xc1947d){return{'name':_0xc1947d['fieldName'],'type':_0xc1947d[_0xe8ac('0x2c')]['key']};});_0x3798c5['model']=_['map'](_0x156550,'name');_0x3798c5[_0xe8ac('0x2d')]=_[_0xe8ac('0x2e')](_0x4c1d08[_0xe8ac('0x2d')]);_0x3798c5[_0xe8ac('0x2f')]=_[_0xe8ac('0x30')](_0x3798c5[_0xe8ac('0x31')],_0x3798c5[_0xe8ac('0x2d')]);_0x41294e['attributes']=_[_0xe8ac('0x30')](_0x3798c5['model'],qs['fields'](_0x4c1d08['query'][_0xe8ac('0x32')]));_0x41294e[_0xe8ac('0x33')]=_0x41294e[_0xe8ac('0x33')]['length']?_0x41294e['attributes']:_0x3798c5[_0xe8ac('0x31')];if(!_0x4c1d08[_0xe8ac('0x2d')][_0xe8ac('0x34')](_0xe8ac('0x35'))){_0x41294e['limit']=qs[_0xe8ac('0x1f')](_0x4c1d08[_0xe8ac('0x2d')][_0xe8ac('0x1f')]);_0x41294e[_0xe8ac('0x21')]=qs[_0xe8ac('0x21')](_0x4c1d08[_0xe8ac('0x2d')][_0xe8ac('0x21')]);}_0x41294e['order']=qs[_0xe8ac('0x36')](_0x4c1d08[_0xe8ac('0x2d')]['sort']);_0x41294e[_0xe8ac('0x37')]=qs[_0xe8ac('0x2f')](_[_0xe8ac('0x38')](_0x4c1d08[_0xe8ac('0x2d')],_0x3798c5['filters']),_0x156550);if(_0x4c1d08[_0xe8ac('0x2d')]['filter']){_0x41294e['where']=_[_0xe8ac('0x39')](_0x41294e[_0xe8ac('0x37')],{'$or':_[_0xe8ac('0x2a')](_0x156550,function(_0x7f3445){if(_0x7f3445[_0xe8ac('0x2c')]!==_0xe8ac('0x3a')){var _0x78f1ea={};_0x78f1ea[_0x7f3445[_0xe8ac('0x28')]]={'$like':'%'+_0x4c1d08[_0xe8ac('0x2d')]['filter']+'%'};return _0x78f1ea;}})});}_0x41294e=_['merge']({},_0x41294e,_0x4c1d08[_0xe8ac('0x3b')]);var _0x10a9e8={'where':_0x41294e['where']};return db['DeskField']['count'](_0x10a9e8)[_0xe8ac('0x26')](function(_0x46f291){_0x5d7562[_0xe8ac('0x20')]=_0x46f291;if(_0x4c1d08[_0xe8ac('0x2d')]['includeAll']){_0x41294e[_0xe8ac('0x3c')]=[{'all':!![]}];}return db[_0xe8ac('0x2b')]['findAll'](_0x41294e);})[_0xe8ac('0x26')](function(_0x41bbc2){_0x5d7562[_0xe8ac('0x3d')]=_0x41bbc2;return _0x5d7562;})[_0xe8ac('0x26')](respondWithFilteredResult(_0x1f1e44,_0x41294e))['catch'](handleError(_0x1f1e44,null));};exports['show']=function(_0x4e0f3d,_0x3710f4){var _0x2c2f18={'raw':!![],'where':{'id':_0x4e0f3d[_0xe8ac('0x3e')]['id']}},_0x28a913={};_0x28a913['model']=_['keys'](db[_0xe8ac('0x2b')][_0xe8ac('0x3f')]);_0x28a913[_0xe8ac('0x2d')]=_[_0xe8ac('0x2e')](_0x4e0f3d[_0xe8ac('0x2d')]);_0x28a913[_0xe8ac('0x2f')]=_[_0xe8ac('0x30')](_0x28a913[_0xe8ac('0x31')],_0x28a913[_0xe8ac('0x2d')]);_0x2c2f18[_0xe8ac('0x33')]=_[_0xe8ac('0x30')](_0x28a913[_0xe8ac('0x31')],qs[_0xe8ac('0x32')](_0x4e0f3d[_0xe8ac('0x2d')]['fields']));_0x2c2f18[_0xe8ac('0x33')]=_0x2c2f18['attributes']['length']?_0x2c2f18['attributes']:_0x28a913['model'];if(_0x4e0f3d[_0xe8ac('0x2d')]['includeAll']){_0x2c2f18[_0xe8ac('0x3c')]=[{'all':!![]}];}_0x2c2f18=_['merge']({},_0x2c2f18,_0x4e0f3d[_0xe8ac('0x3b')]);return db[_0xe8ac('0x2b')]['find'](_0x2c2f18)[_0xe8ac('0x26')](handleEntityNotFound(_0x3710f4,null))['then'](respondWithResult(_0x3710f4,null))[_0xe8ac('0x40')](handleError(_0x3710f4,null));};exports[_0xe8ac('0x41')]=function(_0x386aca,_0x5346d8){return db[_0xe8ac('0x2b')][_0xe8ac('0x41')](_0x386aca[_0xe8ac('0x42')],{})['then'](respondWithResult(_0x5346d8,0xc9))[_0xe8ac('0x40')](handleError(_0x5346d8,null));};exports[_0xe8ac('0x25')]=function(_0x2ed574,_0x478a0c){if(_0x2ed574[_0xe8ac('0x42')]['id']){delete _0x2ed574['body']['id'];}return db[_0xe8ac('0x2b')][_0xe8ac('0x43')]({'where':{'id':_0x2ed574[_0xe8ac('0x3e')]['id']}})['then'](handleEntityNotFound(_0x478a0c,null))[_0xe8ac('0x26')](saveUpdates(_0x2ed574[_0xe8ac('0x42')],null))[_0xe8ac('0x26')](respondWithResult(_0x478a0c,null))[_0xe8ac('0x40')](handleError(_0x478a0c,null));};exports[_0xe8ac('0x44')]=function(_0x406eb0,_0x1e7eb5){return db[_0xe8ac('0x2b')][_0xe8ac('0x43')]({'where':{'id':_0x406eb0[_0xe8ac('0x3e')]['id']}})['then'](handleEntityNotFound(_0x1e7eb5,null))[_0xe8ac('0x26')](removeEntity(_0x1e7eb5,null))[_0xe8ac('0x40')](handleError(_0x1e7eb5,null));};
\ No newline at end of file
+var _0xacd0=['../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','destroy','then','status','error','name','send','map','DeskField','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','pick','filter','where','VIRTUAL','merge','includeAll','include','findAll','rows','show','options','find','catch','create','body','params','eml-format','rimraf','zip-dir','request-promise','bluebird','util','sox','to-csv','ejs','fs-extra','lodash','squel','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api'];(function(_0x1ccda4,_0x1647d3){var _0x334196=function(_0x470901){while(--_0x470901){_0x1ccda4['push'](_0x1ccda4['shift']());}};_0x334196(++_0x1647d3);}(_0xacd0,0xc9));var _0x0acd=function(_0x471268,_0x5ce885){_0x471268=_0x471268-0x0;var _0x1298f3=_0xacd0[_0x471268];return _0x1298f3;};'use strict';var emlformat=require(_0x0acd('0x0'));var rimraf=require(_0x0acd('0x1'));var zipdir=require(_0x0acd('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x0acd('0x3'));var moment=require('moment');var BPromise=require(_0x0acd('0x4'));var Mustache=require('mustache');var util=require(_0x0acd('0x5'));var path=require('path');var sox=require(_0x0acd('0x6'));var csv=require(_0x0acd('0x7'));var ejs=require(_0x0acd('0x8'));var fs=require('fs');var fs_extra=require(_0x0acd('0x9'));var _=require(_0x0acd('0xa'));var squel=require(_0x0acd('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x0acd('0xc'));var toCsv=require('to-csv');var querystring=require(_0x0acd('0xd'));var Papa=require(_0x0acd('0xe'));var Redis=require('ioredis');var authService=require(_0x0acd('0xf'));var qs=require(_0x0acd('0x10'));var as=require(_0x0acd('0x11'));var hardwareService=require(_0x0acd('0x12'));var logger=require(_0x0acd('0x13'))(_0x0acd('0x14'));var utils=require('../../config/utils');var config=require(_0x0acd('0x15'));var licenseUtil=require(_0x0acd('0x16'));var db=require(_0x0acd('0x17'))['db'];function respondWithStatusCode(_0x42083a,_0x53d921){_0x53d921=_0x53d921||0xcc;return function(_0xbd1a54){if(_0xbd1a54){return _0x42083a[_0x0acd('0x18')](_0x53d921);}return _0x42083a['status'](_0x53d921)[_0x0acd('0x19')]();};}function respondWithResult(_0x232c56,_0x10d812){_0x10d812=_0x10d812||0xc8;return function(_0xc8c76c){if(_0xc8c76c){return _0x232c56['status'](_0x10d812)['json'](_0xc8c76c);}};}function respondWithFilteredResult(_0xa03d02,_0x1ace4f){return function(_0x204eab){if(_0x204eab){var _0x1dec38=typeof _0x1ace4f[_0x0acd('0x1a')]===_0x0acd('0x1b')&&typeof _0x1ace4f[_0x0acd('0x1c')]===_0x0acd('0x1b');var _0x48329a=_0x204eab['count'];var _0x22713e=_0x1dec38?0x0:_0x1ace4f['offset'];var _0x5b25e5=_0x1dec38?_0x204eab[_0x0acd('0x1d')]:_0x1ace4f[_0x0acd('0x1a')]+_0x1ace4f[_0x0acd('0x1c')];var _0x793185;if(_0x5b25e5>=_0x48329a){_0x5b25e5=_0x48329a;_0x793185=0xc8;}else{_0x793185=0xce;}_0xa03d02['status'](_0x793185);return _0xa03d02[_0x0acd('0x1e')](_0x0acd('0x1f'),_0x22713e+'-'+_0x5b25e5+'/'+_0x48329a)['json'](_0x204eab);}return null;};}function patchUpdates(_0x5e85c1){return function(_0x308000){try{jsonpatch[_0x0acd('0x20')](_0x308000,_0x5e85c1,!![]);}catch(_0x23f8bc){return BPromise[_0x0acd('0x21')](_0x23f8bc);}return _0x308000[_0x0acd('0x22')]();};}function saveUpdates(_0x17bf1c,_0x3acb0c){return function(_0x96c087){if(_0x96c087){return _0x96c087[_0x0acd('0x23')](_0x17bf1c)['then'](function(_0x5f04be){return _0x5f04be;});}return null;};}function removeEntity(_0x1c8094,_0x45dd0b){return function(_0x28f014){if(_0x28f014){return _0x28f014[_0x0acd('0x24')]()[_0x0acd('0x25')](function(){_0x1c8094[_0x0acd('0x26')](0xcc)[_0x0acd('0x19')]();});}};}function handleEntityNotFound(_0x22d2ce,_0x46040d){return function(_0x2f5cf5){if(!_0x2f5cf5){_0x22d2ce[_0x0acd('0x18')](0x194);}return _0x2f5cf5;};}function handleError(_0x55260a,_0x139da9){_0x139da9=_0x139da9||0x1f4;return function(_0x446328){logger[_0x0acd('0x27')](_0x446328['stack']);if(_0x446328['name']){delete _0x446328[_0x0acd('0x28')];}_0x55260a['status'](_0x139da9)[_0x0acd('0x29')](_0x446328);};}exports['index']=function(_0x18f5f6,_0x171b81){var _0x4fdb68={},_0x43ec88={},_0x353808={'count':0x0,'rows':[]};var _0x35d29e=_[_0x0acd('0x2a')](db[_0x0acd('0x2b')][_0x0acd('0x2c')],function(_0x38070e){return{'name':_0x38070e[_0x0acd('0x2d')],'type':_0x38070e[_0x0acd('0x2e')]['key']};});_0x43ec88[_0x0acd('0x2f')]=_['map'](_0x35d29e,_0x0acd('0x28'));_0x43ec88[_0x0acd('0x30')]=_[_0x0acd('0x31')](_0x18f5f6[_0x0acd('0x30')]);_0x43ec88[_0x0acd('0x32')]=_[_0x0acd('0x33')](_0x43ec88[_0x0acd('0x2f')],_0x43ec88[_0x0acd('0x30')]);_0x4fdb68[_0x0acd('0x34')]=_['intersection'](_0x43ec88[_0x0acd('0x2f')],qs[_0x0acd('0x35')](_0x18f5f6['query'][_0x0acd('0x35')]));_0x4fdb68[_0x0acd('0x34')]=_0x4fdb68[_0x0acd('0x34')][_0x0acd('0x36')]?_0x4fdb68[_0x0acd('0x34')]:_0x43ec88[_0x0acd('0x2f')];if(!_0x18f5f6['query'][_0x0acd('0x37')](_0x0acd('0x38'))){_0x4fdb68['limit']=qs[_0x0acd('0x1c')](_0x18f5f6[_0x0acd('0x30')][_0x0acd('0x1c')]);_0x4fdb68[_0x0acd('0x1a')]=qs[_0x0acd('0x1a')](_0x18f5f6[_0x0acd('0x30')][_0x0acd('0x1a')]);}_0x4fdb68['order']=qs[_0x0acd('0x39')](_0x18f5f6['query'][_0x0acd('0x39')]);_0x4fdb68['where']=qs[_0x0acd('0x32')](_[_0x0acd('0x3a')](_0x18f5f6[_0x0acd('0x30')],_0x43ec88[_0x0acd('0x32')]),_0x35d29e);if(_0x18f5f6['query'][_0x0acd('0x3b')]){_0x4fdb68[_0x0acd('0x3c')]=_['merge'](_0x4fdb68[_0x0acd('0x3c')],{'$or':_[_0x0acd('0x2a')](_0x35d29e,function(_0x1a1b55){if(_0x1a1b55['type']!==_0x0acd('0x3d')){var _0x5b65cb={};_0x5b65cb[_0x1a1b55['name']]={'$like':'%'+_0x18f5f6[_0x0acd('0x30')][_0x0acd('0x3b')]+'%'};return _0x5b65cb;}})});}_0x4fdb68=_[_0x0acd('0x3e')]({},_0x4fdb68,_0x18f5f6['options']);var _0x4f8843={'where':_0x4fdb68[_0x0acd('0x3c')]};return db['DeskField'][_0x0acd('0x1d')](_0x4f8843)[_0x0acd('0x25')](function(_0x475b40){_0x353808[_0x0acd('0x1d')]=_0x475b40;if(_0x18f5f6[_0x0acd('0x30')][_0x0acd('0x3f')]){_0x4fdb68[_0x0acd('0x40')]=[{'all':!![]}];}return db['DeskField'][_0x0acd('0x41')](_0x4fdb68);})[_0x0acd('0x25')](function(_0x3e52fe){_0x353808[_0x0acd('0x42')]=_0x3e52fe;return _0x353808;})[_0x0acd('0x25')](respondWithFilteredResult(_0x171b81,_0x4fdb68))['catch'](handleError(_0x171b81,null));};exports[_0x0acd('0x43')]=function(_0x3838f0,_0x30c591){var _0x4cb0b2={'raw':!![],'where':{'id':_0x3838f0['params']['id']}},_0x1200c4={};_0x1200c4[_0x0acd('0x2f')]=_['keys'](db[_0x0acd('0x2b')]['rawAttributes']);_0x1200c4[_0x0acd('0x30')]=_[_0x0acd('0x31')](_0x3838f0[_0x0acd('0x30')]);_0x1200c4['filters']=_[_0x0acd('0x33')](_0x1200c4[_0x0acd('0x2f')],_0x1200c4['query']);_0x4cb0b2[_0x0acd('0x34')]=_[_0x0acd('0x33')](_0x1200c4['model'],qs[_0x0acd('0x35')](_0x3838f0['query']['fields']));_0x4cb0b2[_0x0acd('0x34')]=_0x4cb0b2[_0x0acd('0x34')][_0x0acd('0x36')]?_0x4cb0b2[_0x0acd('0x34')]:_0x1200c4['model'];if(_0x3838f0[_0x0acd('0x30')][_0x0acd('0x3f')]){_0x4cb0b2[_0x0acd('0x40')]=[{'all':!![]}];}_0x4cb0b2=_[_0x0acd('0x3e')]({},_0x4cb0b2,_0x3838f0[_0x0acd('0x44')]);return db[_0x0acd('0x2b')][_0x0acd('0x45')](_0x4cb0b2)['then'](handleEntityNotFound(_0x30c591,null))[_0x0acd('0x25')](respondWithResult(_0x30c591,null))[_0x0acd('0x46')](handleError(_0x30c591,null));};exports[_0x0acd('0x47')]=function(_0x31f2cf,_0x3ab91f){return db['DeskField'][_0x0acd('0x47')](_0x31f2cf['body'],{})[_0x0acd('0x25')](respondWithResult(_0x3ab91f,0xc9))[_0x0acd('0x46')](handleError(_0x3ab91f,null));};exports[_0x0acd('0x23')]=function(_0x23e64d,_0x5abe43){if(_0x23e64d[_0x0acd('0x48')]['id']){delete _0x23e64d['body']['id'];}return db[_0x0acd('0x2b')][_0x0acd('0x45')]({'where':{'id':_0x23e64d[_0x0acd('0x49')]['id']}})[_0x0acd('0x25')](handleEntityNotFound(_0x5abe43,null))[_0x0acd('0x25')](saveUpdates(_0x23e64d[_0x0acd('0x48')],null))[_0x0acd('0x25')](respondWithResult(_0x5abe43,null))[_0x0acd('0x46')](handleError(_0x5abe43,null));};exports[_0x0acd('0x24')]=function(_0x1d20d6,_0x74c42d){return db[_0x0acd('0x2b')][_0x0acd('0x45')]({'where':{'id':_0x1d20d6['params']['id']}})[_0x0acd('0x25')](handleEntityNotFound(_0x74c42d,null))[_0x0acd('0x25')](removeEntity(_0x74c42d,null))['catch'](handleError(_0x74c42d,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x60e2=['lodash','util','../../config/logger','api','request-promise','path','../../config/environment','exports','define','DeskField','int_desk_fields','desk_unique_index','idField','FieldId'];(function(_0x358b20,_0x57be8b){var _0x5a4334=function(_0xae5660){while(--_0xae5660){_0x358b20['push'](_0x358b20['shift']());}};_0x5a4334(++_0x57be8b);}(_0x60e2,0xd2));var _0x260e=function(_0x38c8a2,_0x586b65){_0x38c8a2=_0x38c8a2-0x0;var _0x3415ce=_0x60e2[_0x38c8a2];return _0x3415ce;};'use strict';var _=require(_0x260e('0x0'));var util=require(_0x260e('0x1'));var logger=require(_0x260e('0x2'))(_0x260e('0x3'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0x260e('0x4'));var fs=require('fs');var path=require(_0x260e('0x5'));var rimraf=require('rimraf');var config=require(_0x260e('0x6'));var attributes=require('./intDeskField.attributes');module[_0x260e('0x7')]=function(_0x1ef6ea,_0xfdfcd6){return _0x1ef6ea[_0x260e('0x8')](_0x260e('0x9'),attributes,{'tableName':_0x260e('0xa'),'paranoid':![],'indexes':[{'name':_0x260e('0xb'),'fields':[_0x260e('0xc'),_0x260e('0xd')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x0adb=['idField','FieldId','lodash','util','../../config/logger','moment','bluebird','rimraf','./intDeskField.attributes','exports','define','DeskField','int_desk_fields'];(function(_0x167cc1,_0x56ef5a){var _0x10bc4b=function(_0xd6a255){while(--_0xd6a255){_0x167cc1['push'](_0x167cc1['shift']());}};_0x10bc4b(++_0x56ef5a);}(_0x0adb,0x16e));var _0xb0ad=function(_0x378613,_0x706596){_0x378613=_0x378613-0x0;var _0x13b333=_0x0adb[_0x378613];return _0x13b333;};'use strict';var _=require(_0xb0ad('0x0'));var util=require(_0xb0ad('0x1'));var logger=require(_0xb0ad('0x2'))('api');var moment=require(_0xb0ad('0x3'));var BPromise=require(_0xb0ad('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0xb0ad('0x5'));var config=require('../../config/environment');var attributes=require(_0xb0ad('0x6'));module[_0xb0ad('0x7')]=function(_0xc9711c,_0x21fa8e){return _0xc9711c[_0xb0ad('0x8')](_0xb0ad('0x9'),attributes,{'tableName':_0xb0ad('0xa'),'paranoid':![],'indexes':[{'name':'desk_unique_index','fields':[_0xb0ad('0xb'),_0xb0ad('0xc')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xda2e=['result','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','jayson/promise','http','info','request\x20sent','stringify','error','code','DeskField,\x20%s,\x20%s','message'];(function(_0x46451c,_0x88ddd){var _0x12dce4=function(_0x2e4087){while(--_0x2e4087){_0x46451c['push'](_0x46451c['shift']());}};_0x12dce4(++_0x88ddd);}(_0xda2e,0x91));var _0xeda2=function(_0x3d6eb1,_0x1f99b1){_0x3d6eb1=_0x3d6eb1-0x0;var _0x4e5356=_0xda2e[_0x3d6eb1];return _0x4e5356;};'use strict';var _=require('lodash');var util=require(_0xeda2('0x0'));var moment=require(_0xeda2('0x1'));var BPromise=require(_0xeda2('0x2'));var rs=require(_0xeda2('0x3'));var fs=require('fs');var Redis=require(_0xeda2('0x4'));var db=require(_0xeda2('0x5'))['db'];var utils=require(_0xeda2('0x6'));var logger=require('../../config/logger')(_0xeda2('0x7'));var config=require('../../config/environment');var jayson=require(_0xeda2('0x8'));var client=jayson['client'][_0xeda2('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x179d65,_0x4d4fa0,_0x391a68){return new BPromise(function(_0x40eb91,_0x17c0a0){return client['request'](_0x179d65,_0x391a68)['then'](function(_0xd2349){logger[_0xeda2('0xa')]('DeskField,\x20%s,\x20%s',_0x4d4fa0,_0xeda2('0xb'));logger['debug']('DeskField,\x20%s,\x20%s,\x20%s',_0x4d4fa0,_0xeda2('0xb'),JSON[_0xeda2('0xc')](_0xd2349));if(_0xd2349[_0xeda2('0xd')]){if(_0xd2349['error'][_0xeda2('0xe')]===0x1f4){logger[_0xeda2('0xd')](_0xeda2('0xf'),_0x4d4fa0,_0xd2349[_0xeda2('0xd')][_0xeda2('0x10')]);return _0x17c0a0(_0xd2349[_0xeda2('0xd')][_0xeda2('0x10')]);}logger[_0xeda2('0xd')]('DeskField,\x20%s,\x20%s',_0x4d4fa0,_0xd2349[_0xeda2('0xd')][_0xeda2('0x10')]);return _0x40eb91(_0xd2349['error'][_0xeda2('0x10')]);}else{logger[_0xeda2('0xa')]('DeskField,\x20%s,\x20%s',_0x4d4fa0,_0xeda2('0xb'));_0x40eb91(_0xd2349[_0xeda2('0x11')][_0xeda2('0x10')]);}})['catch'](function(_0x2ca593){logger[_0xeda2('0xd')](_0xeda2('0xf'),_0x4d4fa0,_0x2ca593);_0x17c0a0(_0x2ca593);});});}
\ No newline at end of file
+var _0x2cb8=['error','code','message','result','catch','lodash','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/environment','client','http','request','then','info','DeskField,\x20%s,\x20%s','request\x20sent','debug','DeskField,\x20%s,\x20%s,\x20%s','stringify'];(function(_0x484e36,_0x4482d8){var _0xafc85d=function(_0xaba9c8){while(--_0xaba9c8){_0x484e36['push'](_0x484e36['shift']());}};_0xafc85d(++_0x4482d8);}(_0x2cb8,0x165));var _0x82cb=function(_0x12ab6,_0x2e3852){_0x12ab6=_0x12ab6-0x0;var _0x895aaf=_0x2cb8[_0x12ab6];return _0x895aaf;};'use strict';var _=require(_0x82cb('0x0'));var util=require('util');var moment=require(_0x82cb('0x1'));var BPromise=require(_0x82cb('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x82cb('0x3'));var db=require(_0x82cb('0x4'))['db'];var utils=require(_0x82cb('0x5'));var logger=require('../../config/logger')('rpc');var config=require(_0x82cb('0x6'));var jayson=require('jayson/promise');var client=jayson[_0x82cb('0x7')][_0x82cb('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x2b3827,_0x56f6b0,_0x1af31b){return new BPromise(function(_0x53ea34,_0x119f2e){return client[_0x82cb('0x9')](_0x2b3827,_0x1af31b)[_0x82cb('0xa')](function(_0x5196aa){logger[_0x82cb('0xb')](_0x82cb('0xc'),_0x56f6b0,_0x82cb('0xd'));logger[_0x82cb('0xe')](_0x82cb('0xf'),_0x56f6b0,_0x82cb('0xd'),JSON[_0x82cb('0x10')](_0x5196aa));if(_0x5196aa['error']){if(_0x5196aa[_0x82cb('0x11')][_0x82cb('0x12')]===0x1f4){logger[_0x82cb('0x11')]('DeskField,\x20%s,\x20%s',_0x56f6b0,_0x5196aa[_0x82cb('0x11')][_0x82cb('0x13')]);return _0x119f2e(_0x5196aa[_0x82cb('0x11')]['message']);}logger[_0x82cb('0x11')]('DeskField,\x20%s,\x20%s',_0x56f6b0,_0x5196aa[_0x82cb('0x11')][_0x82cb('0x13')]);return _0x53ea34(_0x5196aa[_0x82cb('0x11')][_0x82cb('0x13')]);}else{logger[_0x82cb('0xb')](_0x82cb('0xc'),_0x56f6b0,_0x82cb('0xd'));_0x53ea34(_0x5196aa[_0x82cb('0x14')][_0x82cb('0x13')]);}})[_0x82cb('0x15')](function(_0x2c8a58){logger['error'](_0x82cb('0xc'),_0x56f6b0,_0x2c8a58);_0x119f2e(_0x2c8a58);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x863f=['../../config/environment','./intDynamics365Account.controller','/:id','show','get','/:id/configurations','isAuthenticated','/:id/fields','getFields','post','create','addConfiguration','put','update','delete','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service'];(function(_0x4ff09b,_0x53f67d){var _0x3f5c2e=function(_0x124592){while(--_0x124592){_0x4ff09b['push'](_0x4ff09b['shift']());}};_0x3f5c2e(++_0x53f67d);}(_0x863f,0xd8));var _0xf863=function(_0x8665ac,_0x513169){_0x8665ac=_0x8665ac-0x0;var _0x37814f=_0x863f[_0x8665ac];return _0x37814f;};'use strict';var multer=require(_0xf863('0x0'));var util=require(_0xf863('0x1'));var path=require(_0xf863('0x2'));var timeout=require(_0xf863('0x3'));var express=require(_0xf863('0x4'));var router=express[_0xf863('0x5')]();var fs_extra=require(_0xf863('0x6'));var auth=require(_0xf863('0x7'));var interaction=require(_0xf863('0x8'));var config=require(_0xf863('0x9'));var controller=require(_0xf863('0xa'));router['get']('/',auth['isAuthenticated'](),controller['index']);router['get'](_0xf863('0xb'),auth['isAuthenticated'](),controller[_0xf863('0xc')]);router[_0xf863('0xd')](_0xf863('0xe'),auth[_0xf863('0xf')](),controller['getConfigurations']);router['get'](_0xf863('0x10'),auth['isAuthenticated'](),controller[_0xf863('0x11')]);router[_0xf863('0x12')]('/',auth[_0xf863('0xf')](),controller[_0xf863('0x13')]);router[_0xf863('0x12')](_0xf863('0xe'),auth[_0xf863('0xf')](),controller[_0xf863('0x14')]);router[_0xf863('0x15')](_0xf863('0xb'),auth[_0xf863('0xf')](),controller[_0xf863('0x16')]);router[_0xf863('0x17')](_0xf863('0xb'),auth[_0xf863('0xf')](),controller['destroy']);module[_0xf863('0x18')]=router;
\ No newline at end of file
+var _0x2fcd=['connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./intDynamics365Account.controller','get','isAuthenticated','index','show','getConfigurations','getFields','addConfiguration','put','/:id','update','delete','destroy','exports','multer','util','path'];(function(_0x3945d3,_0x59cfd6){var _0x4aa906=function(_0x123fb0){while(--_0x123fb0){_0x3945d3['push'](_0x3945d3['shift']());}};_0x4aa906(++_0x59cfd6);}(_0x2fcd,0x128));var _0xd2fc=function(_0x502c7d,_0x2f1285){_0x502c7d=_0x502c7d-0x0;var _0x30b7ed=_0x2fcd[_0x502c7d];return _0x30b7ed;};'use strict';var multer=require(_0xd2fc('0x0'));var util=require(_0xd2fc('0x1'));var path=require(_0xd2fc('0x2'));var timeout=require(_0xd2fc('0x3'));var express=require(_0xd2fc('0x4'));var router=express[_0xd2fc('0x5')]();var fs_extra=require(_0xd2fc('0x6'));var auth=require(_0xd2fc('0x7'));var interaction=require(_0xd2fc('0x8'));var config=require('../../config/environment');var controller=require(_0xd2fc('0x9'));router[_0xd2fc('0xa')]('/',auth[_0xd2fc('0xb')](),controller[_0xd2fc('0xc')]);router[_0xd2fc('0xa')]('/:id',auth[_0xd2fc('0xb')](),controller[_0xd2fc('0xd')]);router['get']('/:id/configurations',auth['isAuthenticated'](),controller[_0xd2fc('0xe')]);router[_0xd2fc('0xa')]('/:id/fields',auth[_0xd2fc('0xb')](),controller[_0xd2fc('0xf')]);router['post']('/',auth[_0xd2fc('0xb')](),controller['create']);router['post']('/:id/configurations',auth[_0xd2fc('0xb')](),controller[_0xd2fc('0x10')]);router[_0xd2fc('0x11')](_0xd2fc('0x12'),auth[_0xd2fc('0xb')](),controller[_0xd2fc('0x13')]);router[_0xd2fc('0x14')](_0xd2fc('0x12'),auth[_0xd2fc('0xb')](),controller[_0xd2fc('0x15')]);module[_0xd2fc('0x16')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7670=['STRING','sequelize'];(function(_0x191a64,_0x45aa87){var _0x49514e=function(_0x2f4446){while(--_0x2f4446){_0x191a64['push'](_0x191a64['shift']());}};_0x49514e(++_0x45aa87);}(_0x7670,0xef));var _0x0767=function(_0x31e147,_0x146784){_0x31e147=_0x31e147-0x0;var _0x4fead9=_0x7670[_0x31e147];return _0x4fead9;};'use strict';var Sequelize=require(_0x0767('0x0'));module['exports']={'name':{'type':Sequelize['STRING']},'username':{'type':Sequelize[_0x0767('0x1')]},'password':{'type':Sequelize[_0x0767('0x1')]},'remoteUri':{'type':Sequelize[_0x0767('0x1')]},'tenantId':{'type':Sequelize['STRING']},'clientId':{'type':Sequelize['STRING']},'clientSecret':{'type':Sequelize[_0x0767('0x1')]},'serverUrl':{'type':Sequelize[_0x0767('0x1')],'allowNull':![]},'description':{'type':Sequelize[_0x0767('0x1')]}};
\ No newline at end of file
+var _0x500c=['STRING','exports'];(function(_0x5eb22e,_0x27cbac){var _0x27fed5=function(_0x565467){while(--_0x565467){_0x5eb22e['push'](_0x5eb22e['shift']());}};_0x27fed5(++_0x27cbac);}(_0x500c,0x159));var _0xc500=function(_0x400a1d,_0x6e0657){_0x400a1d=_0x400a1d-0x0;var _0xef582=_0x500c[_0x400a1d];return _0xef582;};'use strict';var Sequelize=require('sequelize');module[_0xc500('0x0')]={'name':{'type':Sequelize['STRING']},'username':{'type':Sequelize[_0xc500('0x1')]},'password':{'type':Sequelize[_0xc500('0x1')]},'remoteUri':{'type':Sequelize[_0xc500('0x1')]},'tenantId':{'type':Sequelize['STRING']},'clientId':{'type':Sequelize[_0xc500('0x1')]},'clientSecret':{'type':Sequelize['STRING']},'serverUrl':{'type':Sequelize[_0xc500('0x1')],'allowNull':![]},'description':{'type':Sequelize[_0xc500('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x008c=['papaparse','ioredis','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','status','json','offset','undefined','limit','Content-Range','reject','save','update','destroy','then','sendStatus','send','index','map','Dynamics365Account','type','key','model','name','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','order','sort','where','pick','merge','VIRTUAL','filter','options','count','includeAll','findAll','rows','catch','show','params','include','find','create','body','getConfigurations','findOne','Dynamics365Configuration','nolimit','addConfiguration','AccountId','Subjects','getSubjects','Descriptions','getDescriptions','channel','Dynamics365Field','ticketType','Incident','title','customerid','caseorigincode','phonenumber','regardingobjectid','directioncode','phonecall_activity_parties','accountidname','accountidyominame','actualserviceunits','billedserviceunits','contactidname','contactidyominame','contractdetailidname','contractidname','createdbyexternalpartyyominame','createdonbehalfbyname','createdonbehalfbyyominame','customeridname','customeridtype','customeridyominame','emailaddress','entitlementidname','entityimage_timestamp','entityimage_url','exchangerate','firstresponsebykpiidname','followupby','importsequencenumber','influencescore','kbarticleidname','lastonholdtime','masteridname','modifiedbyexternalpartyname','modifiedbyexternalpartyyominame','modifiedbyname','modifiedbyyominame','modifiedonbehalfbyyominame','msdyn_incidenttypename','msdyn_iotalertname','onholdtime','overriddencreatedon','parentcaseidname','primarycontactidname','primarycontactidyominame','prioritycodename','productidname','productserialnumber','resolveby','resolvebykpiidname','responseby','responsiblecontactidname','slainvokedidname','slaname','socialprofileidname','statecode','statuscode','subjectidname','transactioncurrencyidname','traversedpath','utcconversiontimezonecode','username','remoteUri','clientId','clientSecret','slice','substring','format','POST','https://login.microsoftonline.com/','/oauth2/token','password','access_token','EntityDefinitions?$select=DisplayName,EntitySetName&$filter=SchemaName\x20eq\x20\x27','Bearer\x20','4.0','value','GET','EntityDefinitions(',')?$select=LogicalName&$expand=Attributes($select=LogicalName)','Attributes','includes','forEach','@odata.type','PicklistAttributeMetadata','push','MetadataId','isNil','lastIndexOf','all','StringAttributeMetadata','DoubleAttributeMetadata','IntegerAttributeMetadata','MemoAttributeMetadata','DateTimeAttributeMetadata','StatusAttributeMetadata','EntityNameAttributeMetadata','StateAttributeMetadata','DecimalAttributeMetadata','concat','test','error','stack','Wrong\x20credentials','statusCode',')/Attributes(',')/Microsoft.Dynamics.CRM.PicklistAttributeMetadata?','$select=DisplayName,LogicalName&$expand=OptionSet($select=Options)','OptionSet','Options','UserLocalizedLabel','Label','LogicalName','DisplayName','TrueOption','FalseOption','false','?$select=DisplayName,LogicalName','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','desk.js'];(function(_0x42cae2,_0x284ef8){var _0x5f256f=function(_0x41abc8){while(--_0x41abc8){_0x42cae2['push'](_0x42cae2['shift']());}};_0x5f256f(++_0x284ef8);}(_0x008c,0x188));var _0xc008=function(_0x1234cd,_0x3a11e3){_0x1234cd=_0x1234cd-0x0;var _0x5e83b2=_0x008c[_0x1234cd];return _0x5e83b2;};'use strict';var emlformat=require(_0xc008('0x0'));var rimraf=require(_0xc008('0x1'));var zipdir=require(_0xc008('0x2'));var jsonpatch=require(_0xc008('0x3'));var rp=require(_0xc008('0x4'));var moment=require('moment');var BPromise=require(_0xc008('0x5'));var Mustache=require(_0xc008('0x6'));var util=require(_0xc008('0x7'));var path=require(_0xc008('0x8'));var sox=require(_0xc008('0x9'));var csv=require(_0xc008('0xa'));var ejs=require(_0xc008('0xb'));var fs=require('fs');var fs_extra=require(_0xc008('0xc'));var _=require(_0xc008('0xd'));var squel=require('squel');var crypto=require(_0xc008('0xe'));var jsforce=require('jsforce');var deskjs=require(_0xc008('0xf'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xc008('0x10'));var Redis=require(_0xc008('0x11'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xc008('0x12'));var logger=require(_0xc008('0x13'))('api');var utils=require(_0xc008('0x14'));var config=require(_0xc008('0x15'));var licenseUtil=require(_0xc008('0x16'));var db=require(_0xc008('0x17'))['db'];var integrations=require(_0xc008('0x18'));function respondWithStatusCode(_0x1819c6,_0x69726e){_0x69726e=_0x69726e||0xcc;return function(_0x593f7a){if(_0x593f7a){return _0x1819c6['sendStatus'](_0x69726e);}return _0x1819c6[_0xc008('0x19')](_0x69726e)['end']();};}function respondWithResult(_0x25e13f,_0x4584e1){_0x4584e1=_0x4584e1||0xc8;return function(_0x2073ef){if(_0x2073ef){return _0x25e13f[_0xc008('0x19')](_0x4584e1)[_0xc008('0x1a')](_0x2073ef);}};}function respondWithFilteredResult(_0x5ee00b,_0x5e894e){return function(_0x4bd0f4){if(_0x4bd0f4){var _0x11ef38=typeof _0x5e894e[_0xc008('0x1b')]===_0xc008('0x1c')&&typeof _0x5e894e[_0xc008('0x1d')]==='undefined';var _0x53b06e=_0x4bd0f4['count'];var _0x5c2668=_0x11ef38?0x0:_0x5e894e[_0xc008('0x1b')];var _0x462af5=_0x11ef38?_0x4bd0f4['count']:_0x5e894e[_0xc008('0x1b')]+_0x5e894e['limit'];var _0x4bd611;if(_0x462af5>=_0x53b06e){_0x462af5=_0x53b06e;_0x4bd611=0xc8;}else{_0x4bd611=0xce;}_0x5ee00b['status'](_0x4bd611);return _0x5ee00b['set'](_0xc008('0x1e'),_0x5c2668+'-'+_0x462af5+'/'+_0x53b06e)['json'](_0x4bd0f4);}return null;};}function patchUpdates(_0x5560b1){return function(_0x590a71){try{jsonpatch['apply'](_0x590a71,_0x5560b1,!![]);}catch(_0x5a58bd){return BPromise[_0xc008('0x1f')](_0x5a58bd);}return _0x590a71[_0xc008('0x20')]();};}function saveUpdates(_0x251db2,_0x415af3){return function(_0x11cc75){if(_0x11cc75){return _0x11cc75[_0xc008('0x21')](_0x251db2)['then'](function(_0x459fd9){return _0x459fd9;});}return null;};}function removeEntity(_0x5c85f2,_0x58a6ea){return function(_0x218599){if(_0x218599){return _0x218599[_0xc008('0x22')]()[_0xc008('0x23')](function(){_0x5c85f2[_0xc008('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x48582b,_0x5de1e9){return function(_0x3f7b07){if(!_0x3f7b07){_0x48582b[_0xc008('0x24')](0x194);}return _0x3f7b07;};}function handleError(_0x92c582,_0x2e31c2){_0x2e31c2=_0x2e31c2||0x1f4;return function(_0x5bebd9){logger['error'](_0x5bebd9['stack']);if(_0x5bebd9['name']){delete _0x5bebd9['name'];}_0x92c582[_0xc008('0x19')](_0x2e31c2)[_0xc008('0x25')](_0x5bebd9);};}exports[_0xc008('0x26')]=function(_0x529961,_0x24c14c){var _0x32390d={},_0x209591={},_0x2a7d4f={'count':0x0,'rows':[]};var _0x4c5dec=_[_0xc008('0x27')](db[_0xc008('0x28')]['rawAttributes'],function(_0x58db82){return{'name':_0x58db82['fieldName'],'type':_0x58db82[_0xc008('0x29')][_0xc008('0x2a')]};});_0x209591[_0xc008('0x2b')]=_[_0xc008('0x27')](_0x4c5dec,_0xc008('0x2c'));_0x209591[_0xc008('0x2d')]=_[_0xc008('0x2e')](_0x529961[_0xc008('0x2d')]);_0x209591[_0xc008('0x2f')]=_[_0xc008('0x30')](_0x209591[_0xc008('0x2b')],_0x209591[_0xc008('0x2d')]);_0x32390d['attributes']=_[_0xc008('0x30')](_0x209591[_0xc008('0x2b')],qs['fields'](_0x529961[_0xc008('0x2d')][_0xc008('0x31')]));_0x32390d[_0xc008('0x32')]=_0x32390d[_0xc008('0x32')][_0xc008('0x33')]?_0x32390d[_0xc008('0x32')]:_0x209591[_0xc008('0x2b')];if(!_0x529961[_0xc008('0x2d')][_0xc008('0x34')]('nolimit')){_0x32390d[_0xc008('0x1d')]=qs[_0xc008('0x1d')](_0x529961[_0xc008('0x2d')][_0xc008('0x1d')]);_0x32390d[_0xc008('0x1b')]=qs[_0xc008('0x1b')](_0x529961[_0xc008('0x2d')]['offset']);}_0x32390d[_0xc008('0x35')]=qs[_0xc008('0x36')](_0x529961['query'][_0xc008('0x36')]);_0x32390d[_0xc008('0x37')]=qs['filters'](_[_0xc008('0x38')](_0x529961[_0xc008('0x2d')],_0x209591[_0xc008('0x2f')]),_0x4c5dec);if(_0x529961['query']['filter']){_0x32390d['where']=_[_0xc008('0x39')](_0x32390d['where'],{'$or':_[_0xc008('0x27')](_0x4c5dec,function(_0x3884dd){if(_0x3884dd[_0xc008('0x29')]!==_0xc008('0x3a')){var _0x3148e1={};_0x3148e1[_0x3884dd[_0xc008('0x2c')]]={'$like':'%'+_0x529961[_0xc008('0x2d')][_0xc008('0x3b')]+'%'};return _0x3148e1;}})});}_0x32390d=_[_0xc008('0x39')]({},_0x32390d,_0x529961[_0xc008('0x3c')]);var _0x3ebb83={'where':_0x32390d[_0xc008('0x37')]};return db[_0xc008('0x28')][_0xc008('0x3d')](_0x3ebb83)['then'](function(_0x3238b4){_0x2a7d4f[_0xc008('0x3d')]=_0x3238b4;if(_0x529961[_0xc008('0x2d')][_0xc008('0x3e')]){_0x32390d['include']=[{'all':!![]}];}return db[_0xc008('0x28')][_0xc008('0x3f')](_0x32390d);})[_0xc008('0x23')](function(_0x36e7ae){_0x2a7d4f[_0xc008('0x40')]=_0x36e7ae;return _0x2a7d4f;})['then'](respondWithFilteredResult(_0x24c14c,_0x32390d))[_0xc008('0x41')](handleError(_0x24c14c,null));};exports[_0xc008('0x42')]=function(_0x3794b0,_0x3e9a99){var _0x7279e8={'raw':![],'where':{'id':_0x3794b0[_0xc008('0x43')]['id']}},_0x4f93a4={};_0x4f93a4[_0xc008('0x2b')]=_[_0xc008('0x2e')](db[_0xc008('0x28')]['rawAttributes']);_0x4f93a4[_0xc008('0x2d')]=_[_0xc008('0x2e')](_0x3794b0[_0xc008('0x2d')]);_0x4f93a4['filters']=_[_0xc008('0x30')](_0x4f93a4['model'],_0x4f93a4[_0xc008('0x2d')]);_0x7279e8['attributes']=_[_0xc008('0x30')](_0x4f93a4[_0xc008('0x2b')],qs['fields'](_0x3794b0[_0xc008('0x2d')][_0xc008('0x31')]));_0x7279e8[_0xc008('0x32')]=_0x7279e8['attributes'][_0xc008('0x33')]?_0x7279e8[_0xc008('0x32')]:_0x4f93a4[_0xc008('0x2b')];if(_0x3794b0[_0xc008('0x2d')][_0xc008('0x3e')]){_0x7279e8[_0xc008('0x44')]=[{'all':!![]}];}_0x7279e8=_['merge']({},_0x7279e8,_0x3794b0['options']);return db['Dynamics365Account'][_0xc008('0x45')](_0x7279e8)[_0xc008('0x23')](handleEntityNotFound(_0x3e9a99,null))[_0xc008('0x23')](respondWithResult(_0x3e9a99,null))[_0xc008('0x41')](handleError(_0x3e9a99,null));};exports[_0xc008('0x46')]=function(_0x24f6a4,_0x2cf641){return db[_0xc008('0x28')]['create'](_0x24f6a4['body'],{})['then'](respondWithResult(_0x2cf641,0xc9))[_0xc008('0x41')](handleError(_0x2cf641,null));};exports[_0xc008('0x21')]=function(_0x158eae,_0x511383){if(_0x158eae[_0xc008('0x47')]['id']){delete _0x158eae[_0xc008('0x47')]['id'];}return db[_0xc008('0x28')][_0xc008('0x45')]({'where':{'id':_0x158eae[_0xc008('0x43')]['id']}})[_0xc008('0x23')](handleEntityNotFound(_0x511383,null))[_0xc008('0x23')](saveUpdates(_0x158eae[_0xc008('0x47')],null))[_0xc008('0x23')](respondWithResult(_0x511383,null))[_0xc008('0x41')](handleError(_0x511383,null));};exports['destroy']=function(_0x4c63d4,_0x223056){return db['Dynamics365Account'][_0xc008('0x45')]({'where':{'id':_0x4c63d4[_0xc008('0x43')]['id']}})[_0xc008('0x23')](handleEntityNotFound(_0x223056,null))['then'](removeEntity(_0x223056,null))[_0xc008('0x41')](handleError(_0x223056,null));};exports[_0xc008('0x48')]=function(_0xee64,_0x8b9775,_0x750cc9){var _0x51105f={};var _0x3a7b3b={};var _0x27b022;var _0x4b4c6d;return db[_0xc008('0x28')][_0xc008('0x49')]({'where':{'id':_0xee64['params']['id']}})['then'](handleEntityNotFound(_0x8b9775,null))[_0xc008('0x23')](function(_0xd47b74){if(_0xd47b74){_0x27b022=_0xd47b74;_0x3a7b3b[_0xc008('0x2b')]=_[_0xc008('0x2e')](db[_0xc008('0x4a')]['rawAttributes']);_0x3a7b3b['query']=_[_0xc008('0x2e')](_0xee64['query']);_0x3a7b3b[_0xc008('0x2f')]=_[_0xc008('0x30')](_0x3a7b3b[_0xc008('0x2b')],_0x3a7b3b[_0xc008('0x2d')]);_0x51105f[_0xc008('0x32')]=_[_0xc008('0x30')](_0x3a7b3b['model'],qs[_0xc008('0x31')](_0xee64[_0xc008('0x2d')][_0xc008('0x31')]));_0x51105f[_0xc008('0x32')]=_0x51105f[_0xc008('0x32')]['length']?_0x51105f[_0xc008('0x32')]:_0x3a7b3b['model'];_0x51105f['order']=qs['sort'](_0xee64[_0xc008('0x2d')][_0xc008('0x36')]);_0x51105f[_0xc008('0x37')]=qs['filters'](_[_0xc008('0x38')](_0xee64[_0xc008('0x2d')],_0x3a7b3b[_0xc008('0x2f')]));if(_0xee64['query'][_0xc008('0x3b')]){_0x51105f[_0xc008('0x37')]=_[_0xc008('0x39')](_0x51105f[_0xc008('0x37')],{'$or':_['map'](_0x51105f[_0xc008('0x32')],function(_0x4eaa6d){var _0x23ef33={};_0x23ef33[_0x4eaa6d]={'$like':'%'+_0xee64[_0xc008('0x2d')][_0xc008('0x3b')]+'%'};return _0x23ef33;})});}_0x51105f=_[_0xc008('0x39')]({},_0x51105f,_0xee64[_0xc008('0x3c')]);return _0x27b022[_0xc008('0x48')](_0x51105f);}})['then'](function(_0x375e71){if(_0x375e71){_0x4b4c6d=_0x375e71['length'];if(!_0xee64['query'][_0xc008('0x34')](_0xc008('0x4b'))){_0x51105f['limit']=qs[_0xc008('0x1d')](_0xee64[_0xc008('0x2d')][_0xc008('0x1d')]);_0x51105f[_0xc008('0x1b')]=qs[_0xc008('0x1b')](_0xee64[_0xc008('0x2d')][_0xc008('0x1b')]);}return _0x27b022['getConfigurations'](_0x51105f);}})[_0xc008('0x23')](function(_0x462e1e){if(_0x462e1e){return _0x462e1e?{'count':_0x4b4c6d,'rows':_0x462e1e}:null;}})[_0xc008('0x23')](respondWithResult(_0x8b9775,null))[_0xc008('0x41')](handleError(_0x8b9775,null));};exports[_0xc008('0x4c')]=function(_0x167425,_0x249898,_0x280249){if(_0x167425[_0xc008('0x47')]['id']){delete _0x167425[_0xc008('0x47')]['id'];}return db[_0xc008('0x28')][_0xc008('0x49')]({'where':{'id':_0x167425[_0xc008('0x43')]['id']}})[_0xc008('0x23')](handleEntityNotFound(_0x249898,null))['then'](function(_0x36a08e){if(_0x36a08e){_0x167425[_0xc008('0x47')][_0xc008('0x4d')]=_0x36a08e['id'];_0x167425['body'][_0xc008('0x4e')]=integrations[_0xc008('0x4f')](_0x167425['body']['channel'],_0x167425[_0xc008('0x47')][_0xc008('0x29')]);_0x167425[_0xc008('0x47')][_0xc008('0x50')]=integrations[_0xc008('0x51')](_0x167425[_0xc008('0x47')][_0xc008('0x52')],_0x167425[_0xc008('0x47')][_0xc008('0x29')]);return db[_0xc008('0x4a')][_0xc008('0x46')](_0x167425['body'],{'include':[{'model':db[_0xc008('0x53')],'as':_0xc008('0x4e')},{'model':db[_0xc008('0x53')],'as':_0xc008('0x50')}]});}return null;})['then'](respondWithResult(_0x249898,null))[_0xc008('0x41')](handleError(_0x249898,null));};exports['getFields']=function(_0x3a1de5,_0x46fa7b,_0x419257){var _0x4ccffe=_0x3a1de5[_0xc008('0x2d')][_0xc008('0x54')];var _0xa80000=_0x4ccffe==='incident'?_0xc008('0x55'):'PhoneCall';var _0x50ee03='';var _0xee7a85='';var _0x23012c='';var _0x6fe732='';var _0x295ec7='';var _0x4ca4a6='';var _0x3c30db='';var _0x3f2342='';var _0x49493b=[_0xc008('0x56'),'description',_0xc008('0x57'),'ownerid',_0xc008('0x58'),'subject',_0xc008('0x59'),_0xc008('0x5a'),_0xc008('0x5b'),_0xc008('0x5c')];var _0x5a94ff=[_0xc008('0x5d'),_0xc008('0x5e'),_0xc008('0x5f'),_0xc008('0x60'),_0xc008('0x61'),_0xc008('0x62'),_0xc008('0x63'),_0xc008('0x64'),'createdbyexternalpartyname',_0xc008('0x65'),'createdbyname','createdbyyominame','createdon',_0xc008('0x66'),_0xc008('0x67'),_0xc008('0x68'),_0xc008('0x69'),_0xc008('0x6a'),_0xc008('0x6b'),_0xc008('0x6c'),_0xc008('0x6d'),_0xc008('0x6e'),'escalatedon',_0xc008('0x6f'),_0xc008('0x70'),_0xc008('0x71'),_0xc008('0x72'),_0xc008('0x73'),_0xc008('0x74'),_0xc008('0x75'),_0xc008('0x76'),_0xc008('0x77'),_0xc008('0x78'),_0xc008('0x79'),_0xc008('0x7a'),'modifiedon','modifiedonbehalfbyname',_0xc008('0x7b'),_0xc008('0x7c'),_0xc008('0x7d'),'numberofchildincidents',_0xc008('0x7e'),_0xc008('0x7f'),'owneridname','owneridtype','owneridyominame',_0xc008('0x80'),_0xc008('0x81'),_0xc008('0x82'),_0xc008('0x83'),_0xc008('0x84'),_0xc008('0x85'),_0xc008('0x86'),_0xc008('0x87'),_0xc008('0x88'),_0xc008('0x89'),'responsiblecontactidyominame','sentimentvalue',_0xc008('0x8a'),_0xc008('0x8b'),_0xc008('0x8c'),_0xc008('0x8d'),_0xc008('0x8e'),_0xc008('0x8f'),'ticketnumber','timezoneruleversionnumber',_0xc008('0x90'),_0xc008('0x91'),_0xc008('0x92'),'versionnumber'];var _0x4b90bd=_0x49493b['concat'](_0x5a94ff);return db['Dynamics365Account']['findOne']({'where':{'id':_0x3a1de5['params']['id']},'attributes':['id',_0xc008('0x93'),'password',_0xc008('0x94'),'tenantId',_0xc008('0x95'),_0xc008('0x96')]})[_0xc008('0x23')](handleEntityNotFound(_0x46fa7b,null))['then'](function(_0x58f348){if(_0x58f348){_0x3f2342=_0x58f348[_0xc008('0x94')];var _0x51a194=_0x3f2342[_0xc008('0x97')](-0x1);if(_0x51a194==='/'){_0x3f2342=_0x3f2342[_0xc008('0x98')](0x0,_0x3f2342['lastIndexOf'](_0x51a194));}_0x3c30db=util[_0xc008('0x99')]('%s/api/data/v9.0/',_0x3f2342);var _0x554cf4={'method':_0xc008('0x9a'),'uri':_0xc008('0x9b')+_0x58f348['tenantId']+_0xc008('0x9c'),'form':{'client_id':_0x58f348[_0xc008('0x95')],'resource':_0x3f2342,'username':_0x58f348[_0xc008('0x93')],'password':_0x58f348['password'],'grant_type':_0xc008('0x9d'),'client_secret':_0x58f348[_0xc008('0x96')]},'json':!![]};return rp(_0x554cf4);}})[_0xc008('0x23')](function(_0x29da7d){_0x4ca4a6=_0x29da7d[_0xc008('0x9e')];var _0x1b5b91={'method':'GET','uri':encodeURI(_0x3c30db+_0xc008('0x9f')+_0xa80000+'\x27'),'headers':{'Authorization':_0xc008('0xa0')+_0x4ca4a6,'If-None-Match':null,'OData-Version':_0xc008('0xa1')},'json':!![]};return rp(_0x1b5b91);})['then'](function(_0x477b14){var _0x2dc401=_0x477b14[_0xc008('0xa2')][0x0];var _0x4914ed=_0x2dc401['MetadataId'];var _0x4efcf5={'method':_0xc008('0xa3'),'uri':_0x3c30db+_0xc008('0xa4')+_0x4914ed+_0xc008('0xa5'),'headers':{'Authorization':_0xc008('0xa0')+_0x4ca4a6,'If-None-Match':null,'OData-Version':_0xc008('0xa1')},'json':!![]};return rp(_0x4efcf5);})[_0xc008('0x23')](function(_0x2ad409){_0x50ee03=_0x2ad409;_0xee7a85=_0x50ee03[_0xc008('0xa6')];_0xee7a85=_['remove'](_0xee7a85,function(_0x29f225){return!_0x4b90bd[_0xc008('0xa7')](_0x29f225['LogicalName']);});var _0x58949b=[];var _0x2257b0=[];_0xee7a85[_0xc008('0xa8')](function(_0x2be063){if(_0x2be063[_0xc008('0xa9')]){var _0x11d33e=_0x2be063['@odata.type'][_0xc008('0x98')](_0x2be063[_0xc008('0xa9')]['lastIndexOf']('.')+0x1);if(_0x11d33e===_0xc008('0xaa')){_0x58949b[_0xc008('0xab')](getSelectList(_0x3c30db,_0x4ccffe,_0x2257b0,_0x50ee03[_0xc008('0xac')],_0x2be063[_0xc008('0xac')],_0x4ca4a6));}}});return Promise['all'](_0x58949b);})[_0xc008('0x23')](function(_0x2d42e0){_0x23012c=_0x2d42e0[0x0];var _0x21dd25=[];var _0x3004f9=[];_0xee7a85['forEach'](function(_0x3122ec){if(!_[_0xc008('0xad')](_0x3122ec['@odata.type'])){var _0x555e8a=_0x3122ec[_0xc008('0xa9')]['substring'](_0x3122ec[_0xc008('0xa9')][_0xc008('0xae')]('.')+0x1);if(_0x555e8a==='BooleanAttributeMetadata'){_0x21dd25[_0xc008('0xab')](getBooleanList(_0x3c30db,_0x4ccffe,_0x3004f9,_0x50ee03[_0xc008('0xac')],_0x3122ec[_0xc008('0xac')],_0x4ca4a6));}}});return Promise[_0xc008('0xaf')](_0x21dd25);})[_0xc008('0x23')](function(_0x1cbd0c){_0x6fe732=_0x1cbd0c[0x0];var _0x56fa88=[];var _0x2b2bfb=[];_0xee7a85[_0xc008('0xa8')](function(_0x2fcad1){if(_0x2fcad1['@odata.type']){var _0x49e6d5=_0x2fcad1[_0xc008('0xa9')][_0xc008('0x98')](_0x2fcad1['@odata.type'][_0xc008('0xae')]('.')+0x1);if(_0x49e6d5===_0xc008('0xb0')||_0x49e6d5===_0xc008('0xb1')||_0x49e6d5==='BigIntAttributeMetadata'||_0x49e6d5===_0xc008('0xb2')||_0x49e6d5===_0xc008('0xb3')||_0x49e6d5===_0xc008('0xb4')||_0x49e6d5===_0xc008('0xb5')||_0x49e6d5===_0xc008('0xb6')||_0x49e6d5===_0xc008('0xb7')||_0x49e6d5===_0xc008('0xb8')){_0x56fa88['push'](getInputList(_0x3c30db,_0x4ccffe,_0x49e6d5,_0x2b2bfb,_0x50ee03[_0xc008('0xac')],_0x2fcad1['MetadataId'],_0x4ca4a6));}}});return Promise[_0xc008('0xaf')](_0x56fa88);})[_0xc008('0x23')](function(_0x2d2f37){_0x295ec7=_0x2d2f37[0x0];var _0x583077=_0x23012c[_0xc008('0xb9')](_0x6fe732)[_0xc008('0xb9')](_0x295ec7);var _0x41143f={'count':_0x583077[_0xc008('0x33')],'rows':_0x583077};return _0x41143f;})[_0xc008('0x23')](respondWithResult(_0x46fa7b,null))[_0xc008('0x41')](function(_0x872247){var _0x287492=_0x3a1de5[_0xc008('0x2d')][_0xc008('0xba')]?0x1f4:_0x872247['statusCode']||0x1f4;logger[_0xc008('0xbb')](_0x872247[_0xc008('0xbc')]);delete _0x872247[_0xc008('0x2c')];if(_0x287492===0x191){_0x287492=0x190;}_0x46fa7b[_0xc008('0x19')](_0x287492)[_0xc008('0x25')](_0x3a1de5['query'][_0xc008('0xba')]?{'message':_0xc008('0xbd'),'statusCode':_0x872247[_0xc008('0xbe')]}:_0x872247);});};function getSelectList(_0x2e5494,_0x204692,_0x2503d2,_0x3c3067,_0x220170,_0x2cc170){var _0x3e200b={'method':_0xc008('0xa3'),'uri':_0x2e5494+_0xc008('0xa4')+_0x3c3067+_0xc008('0xbf')+_0x220170+_0xc008('0xc0')+_0xc008('0xc1'),'headers':{'Authorization':'Bearer\x20'+_0x2cc170,'If-None-Match':null,'OData-Version':'4.0'},'json':!![]};return rp(_0x3e200b)[_0xc008('0x23')](function(_0x276ced){var _0x31d405=[];var _0xfd1b6f=_0x276ced[_0xc008('0xc2')][_0xc008('0xc3')];_0xfd1b6f[_0xc008('0xa8')](function(_0x3eb3de){_0x31d405[_0xc008('0xab')]({'name':_0x3eb3de['Label'][_0xc008('0xc4')][_0xc008('0xc5')],'value':String(_0x3eb3de['Value'])});});var _0x21ffe0={'id':_0x204692+'_'+_0x276ced[_0xc008('0xc6')],'name':_0x276ced[_0xc008('0xc7')][_0xc008('0xc4')][_0xc008('0xc5')],'custom':![],'options':_0x31d405};_0x2503d2[_0xc008('0xab')](_0x21ffe0);return _0x2503d2;});}function getBooleanList(_0x5c4196,_0x26617c,_0x321532,_0x13f682,_0x1cff37,_0x59e3d0){var _0x13a0bd={'method':'GET','uri':_0x5c4196+_0xc008('0xa4')+_0x13f682+_0xc008('0xbf')+_0x1cff37+')/Microsoft.Dynamics.CRM.BooleanAttributeMetadata?$select=DisplayName,LogicalName&$expand=OptionSet($select=FalseOption,\x20TrueOption)','headers':{'Authorization':_0xc008('0xa0')+_0x59e3d0,'If-None-Match':null,'OData-Version':'4.0'},'json':!![]};return rp(_0x13a0bd)[_0xc008('0x23')](function(_0x4cb7d7){var _0x5b387d=[];_0x5b387d['push']({'name':_0x4cb7d7[_0xc008('0xc2')][_0xc008('0xc8')]['Label'][_0xc008('0xc4')][_0xc008('0xc5')],'value':'true'},{'name':_0x4cb7d7[_0xc008('0xc2')][_0xc008('0xc9')][_0xc008('0xc5')]['UserLocalizedLabel'][_0xc008('0xc5')],'value':_0xc008('0xca')});var _0x3735c3={'id':_0x26617c+'_'+_0x4cb7d7[_0xc008('0xc6')],'name':_0x4cb7d7[_0xc008('0xc7')][_0xc008('0xc4')][_0xc008('0xc5')],'custom':![],'options':_0x5b387d};_0x321532[_0xc008('0xab')](_0x3735c3);return _0x321532;});}function getInputList(_0x31bf26,_0x21c2dc,_0x427fd2,_0x4ea18b,_0x35c753,_0x138ce1,_0x14c6c2){var _0x4b946a={'method':_0xc008('0xa3'),'uri':_0x31bf26+_0xc008('0xa4')+_0x35c753+_0xc008('0xbf')+_0x138ce1+')/Microsoft.Dynamics.CRM.'+_0x427fd2+_0xc008('0xcb'),'headers':{'Authorization':'Bearer\x20'+_0x14c6c2,'If-None-Match':null,'OData-Version':_0xc008('0xa1')},'json':!![]};return rp(_0x4b946a)[_0xc008('0x23')](function(_0x31bd1d){var _0x529cb9={'id':_0x21c2dc+'_'+_0x31bd1d[_0xc008('0xc6')],'name':_0x31bd1d[_0xc008('0xc7')][_0xc008('0xc4')]?_0x31bd1d[_0xc008('0xc7')][_0xc008('0xc4')][_0xc008('0xc5')]:_0x31bd1d[_0xc008('0xc6')],'custom':![],'options':[]};_0x4ea18b['push'](_0x529cb9);return _0x4ea18b;});}
\ No newline at end of file
+var _0x3468=['merge','VIRTUAL','options','count','includeAll','include','findAll','catch','show','create','body','find','params','getConfigurations','findOne','Dynamics365Configuration','addConfiguration','Subjects','getSubjects','channel','Descriptions','getDescriptions','Dynamics365Field','ticketType','incident','PhoneCall','title','description','customerid','ownerid','caseorigincode','subject','phonenumber','regardingobjectid','directioncode','phonecall_activity_parties','accountidname','accountidyominame','contactidname','contactidyominame','contractdetailidname','contractidname','createdbyexternalpartyname','createdbyexternalpartyyominame','createdbyname','createdbyyominame','createdon','createdonbehalfbyyominame','customeridtype','customeridyominame','entityimage_timestamp','entityimage_url','escalatedon','exchangerate','firstresponsebykpiidname','followupby','importsequencenumber','influencescore','kbarticleidname','lastonholdtime','masteridname','modifiedbyexternalpartyname','modifiedbyname','modifiedbyyominame','modifiedon','modifiedonbehalfbyname','modifiedonbehalfbyyominame','msdyn_incidenttypename','msdyn_iotalertname','owneridtype','owneridyominame','parentcaseidname','primarycontactidname','primarycontactidyominame','productidname','productserialnumber','resolveby','responsiblecontactidname','responsiblecontactidyominame','slainvokedidname','socialprofileidname','statuscode','subjectidname','ticketnumber','timezoneruleversionnumber','transactioncurrencyidname','traversedpath','versionnumber','concat','username','password','remoteUri','tenantId','clientId','slice','lastIndexOf','format','%s/api/data/v9.0/','POST','https://login.microsoftonline.com/','clientSecret','access_token','GET','EntityDefinitions?$select=DisplayName,EntitySetName&$filter=SchemaName\x20eq\x20\x27','Bearer\x20','4.0','value','MetadataId','EntityDefinitions(',')?$select=LogicalName&$expand=Attributes($select=LogicalName)','remove','includes','@odata.type','substring','push','BooleanAttributeMetadata','all','forEach','StringAttributeMetadata','DoubleAttributeMetadata','BigIntAttributeMetadata','IntegerAttributeMetadata','StatusAttributeMetadata','EntityNameAttributeMetadata','StateAttributeMetadata','DecimalAttributeMetadata','test','statusCode',')/Microsoft.Dynamics.CRM.PicklistAttributeMetadata?','$select=DisplayName,LogicalName&$expand=OptionSet($select=Options)','Options','Label','UserLocalizedLabel','Value','LogicalName','DisplayName','OptionSet','true','FalseOption','false','?$select=DisplayName,LogicalName','eml-format','fast-json-patch','bluebird','mustache','util','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','offset','undefined','limit','set','Content-Range','json','apply','reject','update','then','destroy','error','stack','name','send','map','Dynamics365Account','rawAttributes','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter'];(function(_0x2acd19,_0x168295){var _0x2b37c2=function(_0x97124a){while(--_0x97124a){_0x2acd19['push'](_0x2acd19['shift']());}};_0x2b37c2(++_0x168295);}(_0x3468,0x8d));var _0x8346=function(_0x437bc3,_0x58f434){_0x437bc3=_0x437bc3-0x0;var _0x48d9db=_0x3468[_0x437bc3];return _0x48d9db;};'use strict';var emlformat=require(_0x8346('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x8346('0x1'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x8346('0x2'));var Mustache=require(_0x8346('0x3'));var util=require(_0x8346('0x4'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x8346('0x5'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x8346('0x6'));var squel=require(_0x8346('0x7'));var crypto=require(_0x8346('0x8'));var jsforce=require(_0x8346('0x9'));var deskjs=require(_0x8346('0xa'));var toCsv=require(_0x8346('0xb'));var querystring=require(_0x8346('0xc'));var Papa=require(_0x8346('0xd'));var Redis=require(_0x8346('0xe'));var authService=require(_0x8346('0xf'));var qs=require(_0x8346('0x10'));var as=require(_0x8346('0x11'));var hardwareService=require(_0x8346('0x12'));var logger=require('../../config/logger')(_0x8346('0x13'));var utils=require(_0x8346('0x14'));var config=require(_0x8346('0x15'));var licenseUtil=require(_0x8346('0x16'));var db=require(_0x8346('0x17'))['db'];var integrations=require(_0x8346('0x18'));function respondWithStatusCode(_0x4addf9,_0x238202){_0x238202=_0x238202||0xcc;return function(_0x1b6753){if(_0x1b6753){return _0x4addf9[_0x8346('0x19')](_0x238202);}return _0x4addf9[_0x8346('0x1a')](_0x238202)[_0x8346('0x1b')]();};}function respondWithResult(_0x21e068,_0xdacffc){_0xdacffc=_0xdacffc||0xc8;return function(_0x59492e){if(_0x59492e){return _0x21e068[_0x8346('0x1a')](_0xdacffc)['json'](_0x59492e);}};}function respondWithFilteredResult(_0x30b65d,_0x5e34d4){return function(_0xedb23c){if(_0xedb23c){var _0x4cf8cb=typeof _0x5e34d4[_0x8346('0x1c')]==='undefined'&&typeof _0x5e34d4['limit']===_0x8346('0x1d');var _0x308f2c=_0xedb23c['count'];var _0x769955=_0x4cf8cb?0x0:_0x5e34d4[_0x8346('0x1c')];var _0x421437=_0x4cf8cb?_0xedb23c['count']:_0x5e34d4[_0x8346('0x1c')]+_0x5e34d4[_0x8346('0x1e')];var _0x43cf0f;if(_0x421437>=_0x308f2c){_0x421437=_0x308f2c;_0x43cf0f=0xc8;}else{_0x43cf0f=0xce;}_0x30b65d['status'](_0x43cf0f);return _0x30b65d[_0x8346('0x1f')](_0x8346('0x20'),_0x769955+'-'+_0x421437+'/'+_0x308f2c)[_0x8346('0x21')](_0xedb23c);}return null;};}function patchUpdates(_0x496892){return function(_0x293729){try{jsonpatch[_0x8346('0x22')](_0x293729,_0x496892,!![]);}catch(_0x1a5595){return BPromise[_0x8346('0x23')](_0x1a5595);}return _0x293729['save']();};}function saveUpdates(_0x5b8b57,_0x231ee7){return function(_0x585577){if(_0x585577){return _0x585577[_0x8346('0x24')](_0x5b8b57)[_0x8346('0x25')](function(_0x270513){return _0x270513;});}return null;};}function removeEntity(_0x18339c,_0x57ec1c){return function(_0x2b5bfa){if(_0x2b5bfa){return _0x2b5bfa[_0x8346('0x26')]()[_0x8346('0x25')](function(){_0x18339c[_0x8346('0x1a')](0xcc)[_0x8346('0x1b')]();});}};}function handleEntityNotFound(_0x231777,_0x1e69d4){return function(_0x24e40d){if(!_0x24e40d){_0x231777[_0x8346('0x19')](0x194);}return _0x24e40d;};}function handleError(_0xd37335,_0x52a39d){_0x52a39d=_0x52a39d||0x1f4;return function(_0x2e29e7){logger[_0x8346('0x27')](_0x2e29e7[_0x8346('0x28')]);if(_0x2e29e7['name']){delete _0x2e29e7[_0x8346('0x29')];}_0xd37335['status'](_0x52a39d)[_0x8346('0x2a')](_0x2e29e7);};}exports['index']=function(_0x398009,_0x22b5ef){var _0x11ddd0={},_0x881eca={},_0x2e355={'count':0x0,'rows':[]};var _0x2be90e=_[_0x8346('0x2b')](db[_0x8346('0x2c')][_0x8346('0x2d')],function(_0x27b686){return{'name':_0x27b686['fieldName'],'type':_0x27b686[_0x8346('0x2e')][_0x8346('0x2f')]};});_0x881eca[_0x8346('0x30')]=_[_0x8346('0x2b')](_0x2be90e,_0x8346('0x29'));_0x881eca[_0x8346('0x31')]=_[_0x8346('0x32')](_0x398009[_0x8346('0x31')]);_0x881eca[_0x8346('0x33')]=_[_0x8346('0x34')](_0x881eca[_0x8346('0x30')],_0x881eca[_0x8346('0x31')]);_0x11ddd0[_0x8346('0x35')]=_[_0x8346('0x34')](_0x881eca['model'],qs[_0x8346('0x36')](_0x398009[_0x8346('0x31')][_0x8346('0x36')]));_0x11ddd0[_0x8346('0x35')]=_0x11ddd0['attributes'][_0x8346('0x37')]?_0x11ddd0[_0x8346('0x35')]:_0x881eca[_0x8346('0x30')];if(!_0x398009[_0x8346('0x31')][_0x8346('0x38')](_0x8346('0x39'))){_0x11ddd0[_0x8346('0x1e')]=qs[_0x8346('0x1e')](_0x398009[_0x8346('0x31')][_0x8346('0x1e')]);_0x11ddd0[_0x8346('0x1c')]=qs[_0x8346('0x1c')](_0x398009[_0x8346('0x31')][_0x8346('0x1c')]);}_0x11ddd0['order']=qs[_0x8346('0x3a')](_0x398009[_0x8346('0x31')][_0x8346('0x3a')]);_0x11ddd0[_0x8346('0x3b')]=qs[_0x8346('0x33')](_[_0x8346('0x3c')](_0x398009[_0x8346('0x31')],_0x881eca['filters']),_0x2be90e);if(_0x398009[_0x8346('0x31')][_0x8346('0x3d')]){_0x11ddd0[_0x8346('0x3b')]=_[_0x8346('0x3e')](_0x11ddd0[_0x8346('0x3b')],{'$or':_[_0x8346('0x2b')](_0x2be90e,function(_0x81812a){if(_0x81812a[_0x8346('0x2e')]!==_0x8346('0x3f')){var _0x2d9f47={};_0x2d9f47[_0x81812a['name']]={'$like':'%'+_0x398009[_0x8346('0x31')][_0x8346('0x3d')]+'%'};return _0x2d9f47;}})});}_0x11ddd0=_[_0x8346('0x3e')]({},_0x11ddd0,_0x398009[_0x8346('0x40')]);var _0x3434f4={'where':_0x11ddd0[_0x8346('0x3b')]};return db['Dynamics365Account']['count'](_0x3434f4)[_0x8346('0x25')](function(_0x1c2fac){_0x2e355[_0x8346('0x41')]=_0x1c2fac;if(_0x398009[_0x8346('0x31')][_0x8346('0x42')]){_0x11ddd0[_0x8346('0x43')]=[{'all':!![]}];}return db['Dynamics365Account'][_0x8346('0x44')](_0x11ddd0);})[_0x8346('0x25')](function(_0xe33a1e){_0x2e355['rows']=_0xe33a1e;return _0x2e355;})[_0x8346('0x25')](respondWithFilteredResult(_0x22b5ef,_0x11ddd0))[_0x8346('0x45')](handleError(_0x22b5ef,null));};exports[_0x8346('0x46')]=function(_0x40ffe1,_0xfe710e){var _0x40fc3f={'raw':![],'where':{'id':_0x40ffe1['params']['id']}},_0x15d554={};_0x15d554[_0x8346('0x30')]=_[_0x8346('0x32')](db[_0x8346('0x2c')][_0x8346('0x2d')]);_0x15d554['query']=_['keys'](_0x40ffe1[_0x8346('0x31')]);_0x15d554[_0x8346('0x33')]=_[_0x8346('0x34')](_0x15d554[_0x8346('0x30')],_0x15d554['query']);_0x40fc3f[_0x8346('0x35')]=_[_0x8346('0x34')](_0x15d554[_0x8346('0x30')],qs[_0x8346('0x36')](_0x40ffe1['query'][_0x8346('0x36')]));_0x40fc3f[_0x8346('0x35')]=_0x40fc3f[_0x8346('0x35')]['length']?_0x40fc3f[_0x8346('0x35')]:_0x15d554[_0x8346('0x30')];if(_0x40ffe1['query'][_0x8346('0x42')]){_0x40fc3f[_0x8346('0x43')]=[{'all':!![]}];}_0x40fc3f=_[_0x8346('0x3e')]({},_0x40fc3f,_0x40ffe1['options']);return db[_0x8346('0x2c')]['find'](_0x40fc3f)[_0x8346('0x25')](handleEntityNotFound(_0xfe710e,null))[_0x8346('0x25')](respondWithResult(_0xfe710e,null))[_0x8346('0x45')](handleError(_0xfe710e,null));};exports[_0x8346('0x47')]=function(_0x43a80c,_0x48c0fe){return db[_0x8346('0x2c')][_0x8346('0x47')](_0x43a80c['body'],{})[_0x8346('0x25')](respondWithResult(_0x48c0fe,0xc9))[_0x8346('0x45')](handleError(_0x48c0fe,null));};exports[_0x8346('0x24')]=function(_0x172c08,_0x469968){if(_0x172c08['body']['id']){delete _0x172c08[_0x8346('0x48')]['id'];}return db[_0x8346('0x2c')][_0x8346('0x49')]({'where':{'id':_0x172c08[_0x8346('0x4a')]['id']}})[_0x8346('0x25')](handleEntityNotFound(_0x469968,null))[_0x8346('0x25')](saveUpdates(_0x172c08[_0x8346('0x48')],null))[_0x8346('0x25')](respondWithResult(_0x469968,null))[_0x8346('0x45')](handleError(_0x469968,null));};exports[_0x8346('0x26')]=function(_0x38f738,_0x277bf0){return db[_0x8346('0x2c')]['find']({'where':{'id':_0x38f738[_0x8346('0x4a')]['id']}})[_0x8346('0x25')](handleEntityNotFound(_0x277bf0,null))[_0x8346('0x25')](removeEntity(_0x277bf0,null))[_0x8346('0x45')](handleError(_0x277bf0,null));};exports[_0x8346('0x4b')]=function(_0xeb026,_0x4a83e2,_0x3e256b){var _0x569a44={};var _0xd300dd={};var _0x11c653;var _0x5b33c2;return db[_0x8346('0x2c')][_0x8346('0x4c')]({'where':{'id':_0xeb026[_0x8346('0x4a')]['id']}})[_0x8346('0x25')](handleEntityNotFound(_0x4a83e2,null))[_0x8346('0x25')](function(_0x463408){if(_0x463408){_0x11c653=_0x463408;_0xd300dd[_0x8346('0x30')]=_['keys'](db[_0x8346('0x4d')][_0x8346('0x2d')]);_0xd300dd[_0x8346('0x31')]=_[_0x8346('0x32')](_0xeb026[_0x8346('0x31')]);_0xd300dd[_0x8346('0x33')]=_[_0x8346('0x34')](_0xd300dd[_0x8346('0x30')],_0xd300dd[_0x8346('0x31')]);_0x569a44[_0x8346('0x35')]=_[_0x8346('0x34')](_0xd300dd[_0x8346('0x30')],qs[_0x8346('0x36')](_0xeb026[_0x8346('0x31')][_0x8346('0x36')]));_0x569a44[_0x8346('0x35')]=_0x569a44[_0x8346('0x35')]['length']?_0x569a44[_0x8346('0x35')]:_0xd300dd['model'];_0x569a44['order']=qs[_0x8346('0x3a')](_0xeb026['query'][_0x8346('0x3a')]);_0x569a44['where']=qs['filters'](_['pick'](_0xeb026[_0x8346('0x31')],_0xd300dd[_0x8346('0x33')]));if(_0xeb026[_0x8346('0x31')][_0x8346('0x3d')]){_0x569a44[_0x8346('0x3b')]=_['merge'](_0x569a44[_0x8346('0x3b')],{'$or':_[_0x8346('0x2b')](_0x569a44[_0x8346('0x35')],function(_0x1834e3){var _0x33dd3d={};_0x33dd3d[_0x1834e3]={'$like':'%'+_0xeb026[_0x8346('0x31')][_0x8346('0x3d')]+'%'};return _0x33dd3d;})});}_0x569a44=_[_0x8346('0x3e')]({},_0x569a44,_0xeb026[_0x8346('0x40')]);return _0x11c653['getConfigurations'](_0x569a44);}})[_0x8346('0x25')](function(_0x4d36ae){if(_0x4d36ae){_0x5b33c2=_0x4d36ae[_0x8346('0x37')];if(!_0xeb026['query'][_0x8346('0x38')](_0x8346('0x39'))){_0x569a44[_0x8346('0x1e')]=qs[_0x8346('0x1e')](_0xeb026[_0x8346('0x31')][_0x8346('0x1e')]);_0x569a44[_0x8346('0x1c')]=qs['offset'](_0xeb026[_0x8346('0x31')][_0x8346('0x1c')]);}return _0x11c653[_0x8346('0x4b')](_0x569a44);}})[_0x8346('0x25')](function(_0x1aaa71){if(_0x1aaa71){return _0x1aaa71?{'count':_0x5b33c2,'rows':_0x1aaa71}:null;}})[_0x8346('0x25')](respondWithResult(_0x4a83e2,null))['catch'](handleError(_0x4a83e2,null));};exports[_0x8346('0x4e')]=function(_0x16e484,_0x3dc7be,_0x4609d9){if(_0x16e484[_0x8346('0x48')]['id']){delete _0x16e484[_0x8346('0x48')]['id'];}return db['Dynamics365Account'][_0x8346('0x4c')]({'where':{'id':_0x16e484['params']['id']}})[_0x8346('0x25')](handleEntityNotFound(_0x3dc7be,null))['then'](function(_0x4ec42c){if(_0x4ec42c){_0x16e484[_0x8346('0x48')]['AccountId']=_0x4ec42c['id'];_0x16e484[_0x8346('0x48')][_0x8346('0x4f')]=integrations[_0x8346('0x50')](_0x16e484[_0x8346('0x48')][_0x8346('0x51')],_0x16e484[_0x8346('0x48')][_0x8346('0x2e')]);_0x16e484[_0x8346('0x48')][_0x8346('0x52')]=integrations[_0x8346('0x53')](_0x16e484[_0x8346('0x48')][_0x8346('0x51')],_0x16e484[_0x8346('0x48')]['type']);return db['Dynamics365Configuration']['create'](_0x16e484[_0x8346('0x48')],{'include':[{'model':db[_0x8346('0x54')],'as':_0x8346('0x4f')},{'model':db[_0x8346('0x54')],'as':_0x8346('0x52')}]});}return null;})['then'](respondWithResult(_0x3dc7be,null))[_0x8346('0x45')](handleError(_0x3dc7be,null));};exports['getFields']=function(_0x240a0c,_0x47193b,_0x5f3db1){var _0x1f1db9=_0x240a0c[_0x8346('0x31')][_0x8346('0x55')];var _0x589ad1=_0x1f1db9===_0x8346('0x56')?'Incident':_0x8346('0x57');var _0x381c33='';var _0x116ae6='';var _0xb9cccc='';var _0x1d6d29='';var _0x326116='';var _0x19fc44='';var _0x5ccf96='';var _0x55a68f='';var _0xe4d67d=[_0x8346('0x58'),_0x8346('0x59'),_0x8346('0x5a'),_0x8346('0x5b'),_0x8346('0x5c'),_0x8346('0x5d'),_0x8346('0x5e'),_0x8346('0x5f'),_0x8346('0x60'),_0x8346('0x61')];var _0xf87521=[_0x8346('0x62'),_0x8346('0x63'),'actualserviceunits','billedserviceunits',_0x8346('0x64'),_0x8346('0x65'),_0x8346('0x66'),_0x8346('0x67'),_0x8346('0x68'),_0x8346('0x69'),_0x8346('0x6a'),_0x8346('0x6b'),_0x8346('0x6c'),'createdonbehalfbyname',_0x8346('0x6d'),'customeridname',_0x8346('0x6e'),_0x8346('0x6f'),'emailaddress','entitlementidname',_0x8346('0x70'),_0x8346('0x71'),_0x8346('0x72'),_0x8346('0x73'),_0x8346('0x74'),_0x8346('0x75'),_0x8346('0x76'),_0x8346('0x77'),_0x8346('0x78'),_0x8346('0x79'),_0x8346('0x7a'),_0x8346('0x7b'),'modifiedbyexternalpartyyominame',_0x8346('0x7c'),_0x8346('0x7d'),_0x8346('0x7e'),_0x8346('0x7f'),_0x8346('0x80'),_0x8346('0x81'),_0x8346('0x82'),'numberofchildincidents','onholdtime','overriddencreatedon','owneridname',_0x8346('0x83'),_0x8346('0x84'),_0x8346('0x85'),_0x8346('0x86'),_0x8346('0x87'),'prioritycodename',_0x8346('0x88'),_0x8346('0x89'),_0x8346('0x8a'),'resolvebykpiidname','responseby',_0x8346('0x8b'),_0x8346('0x8c'),'sentimentvalue',_0x8346('0x8d'),'slaname',_0x8346('0x8e'),'statecode',_0x8346('0x8f'),_0x8346('0x90'),_0x8346('0x91'),_0x8346('0x92'),_0x8346('0x93'),_0x8346('0x94'),'utcconversiontimezonecode',_0x8346('0x95')];var _0x1f707e=_0xe4d67d[_0x8346('0x96')](_0xf87521);return db['Dynamics365Account'][_0x8346('0x4c')]({'where':{'id':_0x240a0c['params']['id']},'attributes':['id',_0x8346('0x97'),_0x8346('0x98'),_0x8346('0x99'),_0x8346('0x9a'),_0x8346('0x9b'),'clientSecret']})[_0x8346('0x25')](handleEntityNotFound(_0x47193b,null))[_0x8346('0x25')](function(_0x22f026){if(_0x22f026){_0x55a68f=_0x22f026['remoteUri'];var _0x3fc775=_0x55a68f[_0x8346('0x9c')](-0x1);if(_0x3fc775==='/'){_0x55a68f=_0x55a68f['substring'](0x0,_0x55a68f[_0x8346('0x9d')](_0x3fc775));}_0x5ccf96=util[_0x8346('0x9e')](_0x8346('0x9f'),_0x55a68f);var _0x255acf={'method':_0x8346('0xa0'),'uri':_0x8346('0xa1')+_0x22f026['tenantId']+'/oauth2/token','form':{'client_id':_0x22f026['clientId'],'resource':_0x55a68f,'username':_0x22f026[_0x8346('0x97')],'password':_0x22f026['password'],'grant_type':_0x8346('0x98'),'client_secret':_0x22f026[_0x8346('0xa2')]},'json':!![]};return rp(_0x255acf);}})[_0x8346('0x25')](function(_0x276051){_0x19fc44=_0x276051[_0x8346('0xa3')];var _0x29aeaa={'method':_0x8346('0xa4'),'uri':encodeURI(_0x5ccf96+_0x8346('0xa5')+_0x589ad1+'\x27'),'headers':{'Authorization':_0x8346('0xa6')+_0x19fc44,'If-None-Match':null,'OData-Version':_0x8346('0xa7')},'json':!![]};return rp(_0x29aeaa);})[_0x8346('0x25')](function(_0x36bc23){var _0x45c2a0=_0x36bc23[_0x8346('0xa8')][0x0];var _0x1987aa=_0x45c2a0[_0x8346('0xa9')];var _0x2c9be0={'method':'GET','uri':_0x5ccf96+_0x8346('0xaa')+_0x1987aa+_0x8346('0xab'),'headers':{'Authorization':_0x8346('0xa6')+_0x19fc44,'If-None-Match':null,'OData-Version':_0x8346('0xa7')},'json':!![]};return rp(_0x2c9be0);})[_0x8346('0x25')](function(_0x5bbdb3){_0x381c33=_0x5bbdb3;_0x116ae6=_0x381c33['Attributes'];_0x116ae6=_[_0x8346('0xac')](_0x116ae6,function(_0x1e5123){return!_0x1f707e[_0x8346('0xad')](_0x1e5123['LogicalName']);});var _0x5cbd9e=[];var _0x2c949f=[];_0x116ae6['forEach'](function(_0xabd0f5){if(_0xabd0f5[_0x8346('0xae')]){var _0x126144=_0xabd0f5['@odata.type'][_0x8346('0xaf')](_0xabd0f5[_0x8346('0xae')][_0x8346('0x9d')]('.')+0x1);if(_0x126144==='PicklistAttributeMetadata'){_0x5cbd9e[_0x8346('0xb0')](getSelectList(_0x5ccf96,_0x1f1db9,_0x2c949f,_0x381c33[_0x8346('0xa9')],_0xabd0f5[_0x8346('0xa9')],_0x19fc44));}}});return Promise['all'](_0x5cbd9e);})[_0x8346('0x25')](function(_0x197a31){_0xb9cccc=_0x197a31[0x0];var _0x587b1b=[];var _0x16a853=[];_0x116ae6['forEach'](function(_0x41e560){if(!_['isNil'](_0x41e560[_0x8346('0xae')])){var _0x5a8a4e=_0x41e560[_0x8346('0xae')][_0x8346('0xaf')](_0x41e560[_0x8346('0xae')][_0x8346('0x9d')]('.')+0x1);if(_0x5a8a4e===_0x8346('0xb1')){_0x587b1b['push'](getBooleanList(_0x5ccf96,_0x1f1db9,_0x16a853,_0x381c33[_0x8346('0xa9')],_0x41e560['MetadataId'],_0x19fc44));}}});return Promise[_0x8346('0xb2')](_0x587b1b);})[_0x8346('0x25')](function(_0x3e3a71){_0x1d6d29=_0x3e3a71[0x0];var _0x183217=[];var _0x560360=[];_0x116ae6[_0x8346('0xb3')](function(_0x2efc01){if(_0x2efc01[_0x8346('0xae')]){var _0x204e31=_0x2efc01[_0x8346('0xae')][_0x8346('0xaf')](_0x2efc01[_0x8346('0xae')][_0x8346('0x9d')]('.')+0x1);if(_0x204e31===_0x8346('0xb4')||_0x204e31===_0x8346('0xb5')||_0x204e31===_0x8346('0xb6')||_0x204e31===_0x8346('0xb7')||_0x204e31==='MemoAttributeMetadata'||_0x204e31==='DateTimeAttributeMetadata'||_0x204e31===_0x8346('0xb8')||_0x204e31===_0x8346('0xb9')||_0x204e31===_0x8346('0xba')||_0x204e31===_0x8346('0xbb')){_0x183217[_0x8346('0xb0')](getInputList(_0x5ccf96,_0x1f1db9,_0x204e31,_0x560360,_0x381c33[_0x8346('0xa9')],_0x2efc01[_0x8346('0xa9')],_0x19fc44));}}});return Promise['all'](_0x183217);})[_0x8346('0x25')](function(_0x4d50b0){_0x326116=_0x4d50b0[0x0];var _0x431365=_0xb9cccc[_0x8346('0x96')](_0x1d6d29)[_0x8346('0x96')](_0x326116);var _0x581966={'count':_0x431365[_0x8346('0x37')],'rows':_0x431365};return _0x581966;})[_0x8346('0x25')](respondWithResult(_0x47193b,null))[_0x8346('0x45')](function(_0x4ce782){var _0x2ef2d0=_0x240a0c[_0x8346('0x31')][_0x8346('0xbc')]?0x1f4:_0x4ce782['statusCode']||0x1f4;logger[_0x8346('0x27')](_0x4ce782[_0x8346('0x28')]);delete _0x4ce782['name'];if(_0x2ef2d0===0x191){_0x2ef2d0=0x190;}_0x47193b[_0x8346('0x1a')](_0x2ef2d0)[_0x8346('0x2a')](_0x240a0c['query'][_0x8346('0xbc')]?{'message':'Wrong\x20credentials','statusCode':_0x4ce782[_0x8346('0xbd')]}:_0x4ce782);});};function getSelectList(_0x2c4214,_0x55b3e5,_0x1b7f4a,_0x2e3db1,_0x5e3c8f,_0x5854b5){var _0x5a56bc={'method':_0x8346('0xa4'),'uri':_0x2c4214+_0x8346('0xaa')+_0x2e3db1+')/Attributes('+_0x5e3c8f+_0x8346('0xbe')+_0x8346('0xbf'),'headers':{'Authorization':_0x8346('0xa6')+_0x5854b5,'If-None-Match':null,'OData-Version':_0x8346('0xa7')},'json':!![]};return rp(_0x5a56bc)[_0x8346('0x25')](function(_0xd5b9b7){var _0x2e8cb2=[];var _0x2f4aee=_0xd5b9b7['OptionSet'][_0x8346('0xc0')];_0x2f4aee[_0x8346('0xb3')](function(_0x3835c4){_0x2e8cb2[_0x8346('0xb0')]({'name':_0x3835c4[_0x8346('0xc1')][_0x8346('0xc2')][_0x8346('0xc1')],'value':String(_0x3835c4[_0x8346('0xc3')])});});var _0x1ef6ce={'id':_0x55b3e5+'_'+_0xd5b9b7[_0x8346('0xc4')],'name':_0xd5b9b7[_0x8346('0xc5')][_0x8346('0xc2')]['Label'],'custom':![],'options':_0x2e8cb2};_0x1b7f4a[_0x8346('0xb0')](_0x1ef6ce);return _0x1b7f4a;});}function getBooleanList(_0x44bd3f,_0x552502,_0x12de4c,_0x455024,_0x174b1b,_0x14eea7){var _0x2d50eb={'method':_0x8346('0xa4'),'uri':_0x44bd3f+_0x8346('0xaa')+_0x455024+')/Attributes('+_0x174b1b+')/Microsoft.Dynamics.CRM.BooleanAttributeMetadata?$select=DisplayName,LogicalName&$expand=OptionSet($select=FalseOption,\x20TrueOption)','headers':{'Authorization':_0x8346('0xa6')+_0x14eea7,'If-None-Match':null,'OData-Version':'4.0'},'json':!![]};return rp(_0x2d50eb)[_0x8346('0x25')](function(_0x159edb){var _0x4f178b=[];_0x4f178b[_0x8346('0xb0')]({'name':_0x159edb[_0x8346('0xc6')]['TrueOption'][_0x8346('0xc1')][_0x8346('0xc2')]['Label'],'value':_0x8346('0xc7')},{'name':_0x159edb[_0x8346('0xc6')][_0x8346('0xc8')][_0x8346('0xc1')][_0x8346('0xc2')][_0x8346('0xc1')],'value':_0x8346('0xc9')});var _0x12bc54={'id':_0x552502+'_'+_0x159edb[_0x8346('0xc4')],'name':_0x159edb[_0x8346('0xc5')]['UserLocalizedLabel'][_0x8346('0xc1')],'custom':![],'options':_0x4f178b};_0x12de4c[_0x8346('0xb0')](_0x12bc54);return _0x12de4c;});}function getInputList(_0x3f3a43,_0x283bf0,_0x10ff4f,_0x24b185,_0x5693f2,_0x4cb9bf,_0x51e6ec){var _0x526db7={'method':_0x8346('0xa4'),'uri':_0x3f3a43+_0x8346('0xaa')+_0x5693f2+')/Attributes('+_0x4cb9bf+')/Microsoft.Dynamics.CRM.'+_0x10ff4f+_0x8346('0xca'),'headers':{'Authorization':'Bearer\x20'+_0x51e6ec,'If-None-Match':null,'OData-Version':'4.0'},'json':!![]};return rp(_0x526db7)['then'](function(_0x691ffb){var _0x46d2ed={'id':_0x283bf0+'_'+_0x691ffb[_0x8346('0xc4')],'name':_0x691ffb[_0x8346('0xc5')][_0x8346('0xc2')]?_0x691ffb[_0x8346('0xc5')][_0x8346('0xc2')]['Label']:_0x691ffb['LogicalName'],'custom':![],'options':[]};_0x24b185[_0x8346('0xb0')](_0x46d2ed);return _0x24b185;});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbaf0=['../../config/logger','api','moment','bluebird','request-promise','rimraf','../../config/environment','./intDynamics365Account.attributes','../../components/integrations/configuration','exports','define','Dynamics365Account','util'];(function(_0x1d3674,_0x19127b){var _0x2ef32c=function(_0x4d3678){while(--_0x4d3678){_0x1d3674['push'](_0x1d3674['shift']());}};_0x2ef32c(++_0x19127b);}(_0xbaf0,0x12a));var _0x0baf=function(_0x2b4411,_0x2625ed){_0x2b4411=_0x2b4411-0x0;var _0x8e41ef=_0xbaf0[_0x2b4411];return _0x8e41ef;};'use strict';var _=require('lodash');var util=require(_0x0baf('0x0'));var logger=require(_0x0baf('0x1'))(_0x0baf('0x2'));var moment=require(_0x0baf('0x3'));var BPromise=require(_0x0baf('0x4'));var rp=require(_0x0baf('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x0baf('0x6'));var config=require(_0x0baf('0x7'));var attributes=require(_0x0baf('0x8'));var integrations=require(_0x0baf('0x9'));module[_0x0baf('0xa')]=function(_0x335e24,_0x1a10b1){return _0x335e24[_0x0baf('0xb')](_0x0baf('0xc'),attributes,{'tableName':'int_dynamics365_accounts','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xcb91=['rimraf','./intDynamics365Account.attributes','../../components/integrations/configuration','Dynamics365Account','int_dynamics365_accounts','../../config/logger','api','moment','bluebird','path'];(function(_0x463ac1,_0x2ce674){var _0x48e8f4=function(_0x3e4802){while(--_0x3e4802){_0x463ac1['push'](_0x463ac1['shift']());}};_0x48e8f4(++_0x2ce674);}(_0xcb91,0x1a9));var _0x1cb9=function(_0x4a96ca,_0x13754e){_0x4a96ca=_0x4a96ca-0x0;var _0x2aed48=_0xcb91[_0x4a96ca];return _0x2aed48;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x1cb9('0x0'))(_0x1cb9('0x1'));var moment=require(_0x1cb9('0x2'));var BPromise=require(_0x1cb9('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x1cb9('0x4'));var rimraf=require(_0x1cb9('0x5'));var config=require('../../config/environment');var attributes=require(_0x1cb9('0x6'));var integrations=require(_0x1cb9('0x7'));module['exports']=function(_0x226b69,_0x3f7deb){return _0x226b69['define'](_0x1cb9('0x8'),attributes,{'tableName':_0x1cb9('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd036=['include','map','model','find','ShowDynamics365Account','debug','lodash','util','bluebird','../../config/logger','rpc','../../config/environment','jayson/promise','client','then','Dynamics365Account,\x20%s,\x20%s','request\x20sent','Dynamics365Account,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','GetDynamics365Account','Dynamics365Account','findAll','options','raw','where','attributes','limit'];(function(_0x40a045,_0x516f0e){var _0x1a687c=function(_0x48c9fe){while(--_0x48c9fe){_0x40a045['push'](_0x40a045['shift']());}};_0x1a687c(++_0x516f0e);}(_0xd036,0xcc));var _0x6d03=function(_0x4c7fb5,_0x2548ef){_0x4c7fb5=_0x4c7fb5-0x0;var _0x2e10ac=_0xd036[_0x4c7fb5];return _0x2e10ac;};'use strict';var _=require(_0x6d03('0x0'));var util=require(_0x6d03('0x1'));var moment=require('moment');var BPromise=require(_0x6d03('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x6d03('0x3'))(_0x6d03('0x4'));var config=require(_0x6d03('0x5'));var jayson=require(_0x6d03('0x6'));var client=jayson[_0x6d03('0x7')]['http']({'port':0x232a});function respondWithRpcPromise(_0x2e2989,_0x15043d,_0x1c629b){return new BPromise(function(_0x44a282,_0x18adfb){return client['request'](_0x2e2989,_0x1c629b)[_0x6d03('0x8')](function(_0x1f36db){logger['info'](_0x6d03('0x9'),_0x15043d,_0x6d03('0xa'));logger['debug'](_0x6d03('0xb'),_0x15043d,_0x6d03('0xa'),JSON[_0x6d03('0xc')](_0x1f36db));if(_0x1f36db[_0x6d03('0xd')]){if(_0x1f36db[_0x6d03('0xd')][_0x6d03('0xe')]===0x1f4){logger['error'](_0x6d03('0x9'),_0x15043d,_0x1f36db[_0x6d03('0xd')][_0x6d03('0xf')]);return _0x18adfb(_0x1f36db['error'][_0x6d03('0xf')]);}logger['error'](_0x6d03('0x9'),_0x15043d,_0x1f36db['error'][_0x6d03('0xf')]);return _0x44a282(_0x1f36db[_0x6d03('0xd')][_0x6d03('0xf')]);}else{logger[_0x6d03('0x10')]('Dynamics365Account,\x20%s,\x20%s',_0x15043d,_0x6d03('0xa'));_0x44a282(_0x1f36db[_0x6d03('0x11')][_0x6d03('0xf')]);}})[_0x6d03('0x12')](function(_0x54a219){logger[_0x6d03('0xd')](_0x6d03('0x9'),_0x15043d,_0x54a219);_0x18adfb(_0x54a219);});});}exports[_0x6d03('0x13')]=function(_0x47245e){var _0x43acd6=this;return new Promise(function(_0x37ca74,_0x265405){return db[_0x6d03('0x14')][_0x6d03('0x15')]({'raw':_0x47245e[_0x6d03('0x16')]?_0x47245e[_0x6d03('0x16')][_0x6d03('0x17')]===undefined?!![]:![]:!![],'where':_0x47245e[_0x6d03('0x16')]?_0x47245e[_0x6d03('0x16')][_0x6d03('0x18')]||null:null,'attributes':_0x47245e[_0x6d03('0x16')]?_0x47245e[_0x6d03('0x16')][_0x6d03('0x19')]||null:null,'limit':_0x47245e[_0x6d03('0x16')]?_0x47245e['options'][_0x6d03('0x1a')]||null:null,'include':_0x47245e['options']?_0x47245e[_0x6d03('0x16')][_0x6d03('0x1b')]?_[_0x6d03('0x1c')](_0x47245e[_0x6d03('0x16')]['include'],function(_0x386131){return{'model':db[_0x386131[_0x6d03('0x1d')]],'as':_0x386131['as'],'attributes':_0x386131['attributes'],'include':_0x386131[_0x6d03('0x1b')]?_[_0x6d03('0x1c')](_0x386131[_0x6d03('0x1b')],function(_0x188b7c){return{'model':db[_0x188b7c['model']],'as':_0x188b7c['as'],'attributes':_0x188b7c[_0x6d03('0x19')],'include':_0x188b7c[_0x6d03('0x1b')]?_[_0x6d03('0x1c')](_0x188b7c[_0x6d03('0x1b')],function(_0x3eecbc){return{'model':db[_0x3eecbc[_0x6d03('0x1d')]],'as':_0x3eecbc['as'],'attributes':_0x3eecbc['attributes']};}):[]};}):[]};}):[]:[]})[_0x6d03('0x8')](function(_0x19f5cc){logger[_0x6d03('0x10')](_0x6d03('0x13'),_0x47245e);logger['debug'](_0x6d03('0x13'),_0x47245e,JSON[_0x6d03('0xc')](_0x19f5cc));_0x37ca74(_0x19f5cc);})['catch'](function(_0x35c839){logger[_0x6d03('0xd')](_0x6d03('0x13'),_0x35c839[_0x6d03('0xf')],_0x47245e);_0x265405(_0x43acd6[_0x6d03('0xd')](0x1f4,_0x35c839[_0x6d03('0xf')]));});});};exports['ShowDynamics365Account']=function(_0x5182e2){var _0x432db3=this;return new Promise(function(_0x19c75d,_0x14fb2b){return db['Dynamics365Account'][_0x6d03('0x1e')]({'raw':_0x5182e2[_0x6d03('0x16')]?_0x5182e2[_0x6d03('0x16')][_0x6d03('0x17')]===undefined?!![]:![]:!![],'where':_0x5182e2['options']?_0x5182e2[_0x6d03('0x16')][_0x6d03('0x18')]||null:null,'attributes':_0x5182e2[_0x6d03('0x16')]?_0x5182e2[_0x6d03('0x16')]['attributes']||null:null,'include':_0x5182e2['options']?_0x5182e2[_0x6d03('0x16')][_0x6d03('0x1b')]?_[_0x6d03('0x1c')](_0x5182e2[_0x6d03('0x16')][_0x6d03('0x1b')],function(_0x15be79){return{'model':db[_0x15be79[_0x6d03('0x1d')]],'as':_0x15be79['as'],'attributes':_0x15be79['attributes'],'include':_0x15be79[_0x6d03('0x1b')]?_[_0x6d03('0x1c')](_0x15be79[_0x6d03('0x1b')],function(_0xaf193){return{'model':db[_0xaf193[_0x6d03('0x1d')]],'as':_0xaf193['as'],'attributes':_0xaf193['attributes'],'include':_0xaf193[_0x6d03('0x1b')]?_[_0x6d03('0x1c')](_0xaf193['include'],function(_0x4d3884){return{'model':db[_0x4d3884['model']],'as':_0x4d3884['as'],'attributes':_0x4d3884[_0x6d03('0x19')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x4ab054){logger[_0x6d03('0x10')](_0x6d03('0x1f'),_0x5182e2);logger[_0x6d03('0x20')]('ShowDynamics365Account',_0x5182e2,JSON[_0x6d03('0xc')](_0x4ab054));_0x19c75d(_0x4ab054);})[_0x6d03('0x12')](function(_0x424ba5){logger['error']('ShowDynamics365Account',_0x424ba5[_0x6d03('0xf')],_0x5182e2);_0x14fb2b(_0x432db3[_0x6d03('0xd')](0x1f4,_0x424ba5[_0x6d03('0xf')]));});});};
\ No newline at end of file
+var _0x1501=['../../config/environment','jayson/promise','client','http','request','then','info','Dynamics365Account,\x20%s,\x20%s','request\x20sent','Dynamics365Account,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','GetDynamics365Account','Dynamics365Account','findAll','options','raw','limit','include','model','attributes','map','ShowDynamics365Account','where','debug','catch','lodash','moment','randomstring','../../mysqldb','../../config/logger','rpc'];(function(_0x4852b9,_0x412f98){var _0x2dc44a=function(_0x52a095){while(--_0x52a095){_0x4852b9['push'](_0x4852b9['shift']());}};_0x2dc44a(++_0x412f98);}(_0x1501,0xcc));var _0x1150=function(_0x24420e,_0x78d663){_0x24420e=_0x24420e-0x0;var _0x12d301=_0x1501[_0x24420e];return _0x12d301;};'use strict';var _=require(_0x1150('0x0'));var util=require('util');var moment=require(_0x1150('0x1'));var BPromise=require('bluebird');var rs=require(_0x1150('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x1150('0x3'))['db'];var utils=require('../../config/utils');var logger=require(_0x1150('0x4'))(_0x1150('0x5'));var config=require(_0x1150('0x6'));var jayson=require(_0x1150('0x7'));var client=jayson[_0x1150('0x8')][_0x1150('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x5dd215,_0x3a620e,_0x1a0014){return new BPromise(function(_0x4d58c5,_0x43ab12){return client[_0x1150('0xa')](_0x5dd215,_0x1a0014)[_0x1150('0xb')](function(_0x3981cc){logger[_0x1150('0xc')](_0x1150('0xd'),_0x3a620e,_0x1150('0xe'));logger['debug'](_0x1150('0xf'),_0x3a620e,_0x1150('0xe'),JSON[_0x1150('0x10')](_0x3981cc));if(_0x3981cc[_0x1150('0x11')]){if(_0x3981cc[_0x1150('0x11')][_0x1150('0x12')]===0x1f4){logger[_0x1150('0x11')](_0x1150('0xd'),_0x3a620e,_0x3981cc[_0x1150('0x11')]['message']);return _0x43ab12(_0x3981cc['error'][_0x1150('0x13')]);}logger['error']('Dynamics365Account,\x20%s,\x20%s',_0x3a620e,_0x3981cc[_0x1150('0x11')][_0x1150('0x13')]);return _0x4d58c5(_0x3981cc[_0x1150('0x11')][_0x1150('0x13')]);}else{logger[_0x1150('0xc')](_0x1150('0xd'),_0x3a620e,_0x1150('0xe'));_0x4d58c5(_0x3981cc[_0x1150('0x14')][_0x1150('0x13')]);}})['catch'](function(_0x2aee10){logger[_0x1150('0x11')]('Dynamics365Account,\x20%s,\x20%s',_0x3a620e,_0x2aee10);_0x43ab12(_0x2aee10);});});}exports[_0x1150('0x15')]=function(_0x43d471){var _0x5d8fb7=this;return new Promise(function(_0x4304e2,_0x233342){return db[_0x1150('0x16')][_0x1150('0x17')]({'raw':_0x43d471[_0x1150('0x18')]?_0x43d471[_0x1150('0x18')][_0x1150('0x19')]===undefined?!![]:![]:!![],'where':_0x43d471['options']?_0x43d471[_0x1150('0x18')]['where']||null:null,'attributes':_0x43d471[_0x1150('0x18')]?_0x43d471[_0x1150('0x18')]['attributes']||null:null,'limit':_0x43d471['options']?_0x43d471[_0x1150('0x18')][_0x1150('0x1a')]||null:null,'include':_0x43d471[_0x1150('0x18')]?_0x43d471[_0x1150('0x18')][_0x1150('0x1b')]?_['map'](_0x43d471['options'][_0x1150('0x1b')],function(_0x2a84e7){return{'model':db[_0x2a84e7[_0x1150('0x1c')]],'as':_0x2a84e7['as'],'attributes':_0x2a84e7[_0x1150('0x1d')],'include':_0x2a84e7[_0x1150('0x1b')]?_[_0x1150('0x1e')](_0x2a84e7['include'],function(_0x45cd20){return{'model':db[_0x45cd20[_0x1150('0x1c')]],'as':_0x45cd20['as'],'attributes':_0x45cd20['attributes'],'include':_0x45cd20[_0x1150('0x1b')]?_[_0x1150('0x1e')](_0x45cd20[_0x1150('0x1b')],function(_0xcd6e61){return{'model':db[_0xcd6e61[_0x1150('0x1c')]],'as':_0xcd6e61['as'],'attributes':_0xcd6e61[_0x1150('0x1d')]};}):[]};}):[]};}):[]:[]})[_0x1150('0xb')](function(_0x59d58d){logger[_0x1150('0xc')](_0x1150('0x15'),_0x43d471);logger['debug'](_0x1150('0x15'),_0x43d471,JSON[_0x1150('0x10')](_0x59d58d));_0x4304e2(_0x59d58d);})['catch'](function(_0xebecd3){logger[_0x1150('0x11')](_0x1150('0x15'),_0xebecd3[_0x1150('0x13')],_0x43d471);_0x233342(_0x5d8fb7['error'](0x1f4,_0xebecd3[_0x1150('0x13')]));});});};exports[_0x1150('0x1f')]=function(_0xe62424){var _0x51144e=this;return new Promise(function(_0x2b2c40,_0x1dbff7){return db['Dynamics365Account']['find']({'raw':_0xe62424[_0x1150('0x18')]?_0xe62424[_0x1150('0x18')][_0x1150('0x19')]===undefined?!![]:![]:!![],'where':_0xe62424[_0x1150('0x18')]?_0xe62424[_0x1150('0x18')][_0x1150('0x20')]||null:null,'attributes':_0xe62424[_0x1150('0x18')]?_0xe62424['options'][_0x1150('0x1d')]||null:null,'include':_0xe62424[_0x1150('0x18')]?_0xe62424[_0x1150('0x18')]['include']?_[_0x1150('0x1e')](_0xe62424[_0x1150('0x18')][_0x1150('0x1b')],function(_0x74e355){return{'model':db[_0x74e355[_0x1150('0x1c')]],'as':_0x74e355['as'],'attributes':_0x74e355['attributes'],'include':_0x74e355[_0x1150('0x1b')]?_[_0x1150('0x1e')](_0x74e355[_0x1150('0x1b')],function(_0xcab295){return{'model':db[_0xcab295[_0x1150('0x1c')]],'as':_0xcab295['as'],'attributes':_0xcab295['attributes'],'include':_0xcab295['include']?_[_0x1150('0x1e')](_0xcab295['include'],function(_0x4965c4){return{'model':db[_0x4965c4[_0x1150('0x1c')]],'as':_0x4965c4['as'],'attributes':_0x4965c4['attributes']};}):[]};}):[]};}):[]:[]})[_0x1150('0xb')](function(_0x362588){logger[_0x1150('0xc')](_0x1150('0x1f'),_0xe62424);logger[_0x1150('0x21')](_0x1150('0x1f'),_0xe62424,JSON[_0x1150('0x10')](_0x362588));_0x2b2c40(_0x362588);})[_0x1150('0x22')](function(_0x54e298){logger[_0x1150('0x11')](_0x1150('0x1f'),_0x54e298[_0x1150('0x13')],_0xe62424);_0x1dbff7(_0x51144e[_0x1150('0x11')](0x1f4,_0x54e298[_0x1150('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa6ee=['show','getFields','/:id/subjects','/:id/descriptions','getDescriptions','post','put','/:id','update','delete','destroy','util','path','express','../../components/interaction/service','../../config/environment','get','isAuthenticated'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0xa6ee,0x1a9));var _0xea6e=function(_0x12bdc5,_0x3837dd){_0x12bdc5=_0x12bdc5-0x0;var _0x2d3425=_0xa6ee[_0x12bdc5];return _0x2d3425;};'use strict';var multer=require('multer');var util=require(_0xea6e('0x0'));var path=require(_0xea6e('0x1'));var timeout=require('connect-timeout');var express=require(_0xea6e('0x2'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0xea6e('0x3'));var config=require(_0xea6e('0x4'));var controller=require('./intDynamics365Configuration.controller');router[_0xea6e('0x5')]('/',auth[_0xea6e('0x6')](),controller['index']);router['get']('/:id',auth[_0xea6e('0x6')](),controller[_0xea6e('0x7')]);router['get']('/:id/fields',auth[_0xea6e('0x6')](),controller[_0xea6e('0x8')]);router[_0xea6e('0x5')](_0xea6e('0x9'),auth[_0xea6e('0x6')](),controller['getSubjects']);router['get'](_0xea6e('0xa'),auth['isAuthenticated'](),controller[_0xea6e('0xb')]);router[_0xea6e('0xc')]('/',auth[_0xea6e('0x6')](),controller['create']);router[_0xea6e('0xd')](_0xea6e('0xe'),auth[_0xea6e('0x6')](),controller[_0xea6e('0xf')]);router[_0xea6e('0x10')](_0xea6e('0xe'),auth['isAuthenticated'](),controller[_0xea6e('0x11')]);module['exports']=router;
\ No newline at end of file
+var _0xc664=['isAuthenticated','/:id','/:id/fields','getFields','getSubjects','/:id/descriptions','getDescriptions','post','create','delete','destroy','exports','multer','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','./intDynamics365Configuration.controller','get'];(function(_0x40ac5e,_0x2de228){var _0x2839d6=function(_0x123d47){while(--_0x123d47){_0x40ac5e['push'](_0x40ac5e['shift']());}};_0x2839d6(++_0x2de228);}(_0xc664,0x90));var _0x4c66=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xc664[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require(_0x4c66('0x0'));var util=require(_0x4c66('0x1'));var path=require('path');var timeout=require(_0x4c66('0x2'));var express=require(_0x4c66('0x3'));var router=express[_0x4c66('0x4')]();var fs_extra=require(_0x4c66('0x5'));var auth=require(_0x4c66('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0x4c66('0x7'));var controller=require(_0x4c66('0x8'));router[_0x4c66('0x9')]('/',auth[_0x4c66('0xa')](),controller['index']);router[_0x4c66('0x9')](_0x4c66('0xb'),auth[_0x4c66('0xa')](),controller['show']);router['get'](_0x4c66('0xc'),auth[_0x4c66('0xa')](),controller[_0x4c66('0xd')]);router[_0x4c66('0x9')]('/:id/subjects',auth[_0x4c66('0xa')](),controller[_0x4c66('0xe')]);router[_0x4c66('0x9')](_0x4c66('0xf'),auth[_0x4c66('0xa')](),controller[_0x4c66('0x10')]);router[_0x4c66('0x11')]('/',auth[_0x4c66('0xa')](),controller[_0x4c66('0x12')]);router['put']('/:id',auth['isAuthenticated'](),controller['update']);router[_0x4c66('0x13')](_0x4c66('0xb'),auth[_0x4c66('0xa')](),controller[_0x4c66('0x14')]);module[_0x4c66('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4f73=['phonecall','contact','nothing','STRING','ENUM','incident'];(function(_0x40822a,_0x582b60){var _0x357420=function(_0x6cee0b){while(--_0x6cee0b){_0x40822a['push'](_0x40822a['shift']());}};_0x357420(++_0x582b60);}(_0x4f73,0xff));var _0x34f7=function(_0x1fc84d,_0x3f469d){_0x1fc84d=_0x1fc84d-0x0;var _0x2658fa=_0x4f73[_0x1fc84d];return _0x2658fa;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize[_0x34f7('0x0')]},'description':{'type':Sequelize[_0x34f7('0x0')]},'ticketType':{'type':Sequelize[_0x34f7('0x1')](_0x34f7('0x2'),_0x34f7('0x3')),'defaultValue':'incident'},'moduleCreate':{'type':Sequelize[_0x34f7('0x1')](_0x34f7('0x4'),_0x34f7('0x5')),'defaultValue':_0x34f7('0x4'),'allowNull':![]}};
\ No newline at end of file
+var _0x1cc6=['sequelize','exports','STRING','phonecall','incident'];(function(_0x53aac5,_0x3be253){var _0x540e54=function(_0x5f0e2b){while(--_0x5f0e2b){_0x53aac5['push'](_0x53aac5['shift']());}};_0x540e54(++_0x3be253);}(_0x1cc6,0x1d6));var _0x61cc=function(_0x1de4b8,_0x529b41){_0x1de4b8=_0x1de4b8-0x0;var _0x557699=_0x1cc6[_0x1de4b8];return _0x557699;};'use strict';var Sequelize=require(_0x61cc('0x0'));module[_0x61cc('0x1')]={'name':{'type':Sequelize[_0x61cc('0x2')]},'description':{'type':Sequelize[_0x61cc('0x2')]},'ticketType':{'type':Sequelize['ENUM']('incident',_0x61cc('0x3')),'defaultValue':_0x61cc('0x4')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x07ab=['crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','end','error','stack','send','index','map','Dynamics365Configuration','rawAttributes','key','name','query','filters','model','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','type','VIRTUAL','includeAll','findAll','rows','catch','show','params','keys','options','find','create','body','findOne','getFields','Dynamics365Field','getSubjects','getDescriptions','eml-format','rimraf','request-promise','moment','mustache','path','to-csv','ejs','fs-extra'];(function(_0x500fd9,_0x4da8ab){var _0x3855bd=function(_0x4d845c){while(--_0x4d845c){_0x500fd9['push'](_0x500fd9['shift']());}};_0x3855bd(++_0x4da8ab);}(_0x07ab,0xe7));var _0xb07a=function(_0xefd519,_0xc62635){_0xefd519=_0xefd519-0x0;var _0x4bb882=_0x07ab[_0xefd519];return _0x4bb882;};'use strict';var emlformat=require(_0xb07a('0x0'));var rimraf=require(_0xb07a('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xb07a('0x2'));var moment=require(_0xb07a('0x3'));var BPromise=require('bluebird');var Mustache=require(_0xb07a('0x4'));var util=require('util');var path=require(_0xb07a('0x5'));var sox=require('sox');var csv=require(_0xb07a('0x6'));var ejs=require(_0xb07a('0x7'));var fs=require('fs');var fs_extra=require(_0xb07a('0x8'));var _=require('lodash');var squel=require('squel');var crypto=require(_0xb07a('0x9'));var jsforce=require(_0xb07a('0xa'));var deskjs=require(_0xb07a('0xb'));var toCsv=require(_0xb07a('0x6'));var querystring=require(_0xb07a('0xc'));var Papa=require(_0xb07a('0xd'));var Redis=require('ioredis');var authService=require(_0xb07a('0xe'));var qs=require(_0xb07a('0xf'));var as=require(_0xb07a('0x10'));var hardwareService=require(_0xb07a('0x11'));var logger=require(_0xb07a('0x12'))('api');var utils=require(_0xb07a('0x13'));var config=require(_0xb07a('0x14'));var licenseUtil=require(_0xb07a('0x15'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x33878e,_0x373d76){_0x373d76=_0x373d76||0xcc;return function(_0x3eaa46){if(_0x3eaa46){return _0x33878e[_0xb07a('0x16')](_0x373d76);}return _0x33878e[_0xb07a('0x17')](_0x373d76)['end']();};}function respondWithResult(_0x294aa5,_0x428f38){_0x428f38=_0x428f38||0xc8;return function(_0x1decbc){if(_0x1decbc){return _0x294aa5[_0xb07a('0x17')](_0x428f38)[_0xb07a('0x18')](_0x1decbc);}};}function respondWithFilteredResult(_0x2962b8,_0x1a6957){return function(_0x5973e6){if(_0x5973e6){var _0x376271=typeof _0x1a6957[_0xb07a('0x19')]===_0xb07a('0x1a')&&typeof _0x1a6957[_0xb07a('0x1b')]==='undefined';var _0x11744b=_0x5973e6[_0xb07a('0x1c')];var _0xacba90=_0x376271?0x0:_0x1a6957[_0xb07a('0x19')];var _0x5ba415=_0x376271?_0x5973e6[_0xb07a('0x1c')]:_0x1a6957['offset']+_0x1a6957[_0xb07a('0x1b')];var _0x150027;if(_0x5ba415>=_0x11744b){_0x5ba415=_0x11744b;_0x150027=0xc8;}else{_0x150027=0xce;}_0x2962b8[_0xb07a('0x17')](_0x150027);return _0x2962b8[_0xb07a('0x1d')](_0xb07a('0x1e'),_0xacba90+'-'+_0x5ba415+'/'+_0x11744b)[_0xb07a('0x18')](_0x5973e6);}return null;};}function patchUpdates(_0xc79317){return function(_0x2d4029){try{jsonpatch[_0xb07a('0x1f')](_0x2d4029,_0xc79317,!![]);}catch(_0x36c419){return BPromise[_0xb07a('0x20')](_0x36c419);}return _0x2d4029[_0xb07a('0x21')]();};}function saveUpdates(_0x5d5e86,_0x56fcd9){return function(_0x388022){if(_0x388022){return _0x388022[_0xb07a('0x22')](_0x5d5e86)[_0xb07a('0x23')](function(_0x212386){return _0x212386;});}return null;};}function removeEntity(_0x209fd6,_0x3034f8){return function(_0x1724f0){if(_0x1724f0){return _0x1724f0[_0xb07a('0x24')]()['then'](function(){_0x209fd6[_0xb07a('0x17')](0xcc)[_0xb07a('0x25')]();});}};}function handleEntityNotFound(_0xa98ea0,_0x3906a1){return function(_0x2362d0){if(!_0x2362d0){_0xa98ea0[_0xb07a('0x16')](0x194);}return _0x2362d0;};}function handleError(_0x1160eb,_0xaef8b7){_0xaef8b7=_0xaef8b7||0x1f4;return function(_0x57d14a){logger[_0xb07a('0x26')](_0x57d14a[_0xb07a('0x27')]);if(_0x57d14a['name']){delete _0x57d14a['name'];}_0x1160eb[_0xb07a('0x17')](_0xaef8b7)[_0xb07a('0x28')](_0x57d14a);};}exports[_0xb07a('0x29')]=function(_0x3500c5,_0xcf87ff){var _0x343fb7={},_0x46c10f={},_0x386ee0={'count':0x0,'rows':[]};var _0x58ae0e=_[_0xb07a('0x2a')](db[_0xb07a('0x2b')][_0xb07a('0x2c')],function(_0x5478f3){return{'name':_0x5478f3['fieldName'],'type':_0x5478f3['type'][_0xb07a('0x2d')]};});_0x46c10f['model']=_[_0xb07a('0x2a')](_0x58ae0e,_0xb07a('0x2e'));_0x46c10f[_0xb07a('0x2f')]=_['keys'](_0x3500c5['query']);_0x46c10f[_0xb07a('0x30')]=_['intersection'](_0x46c10f[_0xb07a('0x31')],_0x46c10f['query']);_0x343fb7[_0xb07a('0x32')]=_[_0xb07a('0x33')](_0x46c10f[_0xb07a('0x31')],qs[_0xb07a('0x34')](_0x3500c5[_0xb07a('0x2f')][_0xb07a('0x34')]));_0x343fb7[_0xb07a('0x32')]=_0x343fb7[_0xb07a('0x32')][_0xb07a('0x35')]?_0x343fb7['attributes']:_0x46c10f[_0xb07a('0x31')];if(!_0x3500c5[_0xb07a('0x2f')][_0xb07a('0x36')](_0xb07a('0x37'))){_0x343fb7['limit']=qs['limit'](_0x3500c5['query'][_0xb07a('0x1b')]);_0x343fb7[_0xb07a('0x19')]=qs[_0xb07a('0x19')](_0x3500c5[_0xb07a('0x2f')][_0xb07a('0x19')]);}_0x343fb7[_0xb07a('0x38')]=qs[_0xb07a('0x39')](_0x3500c5[_0xb07a('0x2f')][_0xb07a('0x39')]);_0x343fb7['where']=qs[_0xb07a('0x30')](_[_0xb07a('0x3a')](_0x3500c5[_0xb07a('0x2f')],_0x46c10f[_0xb07a('0x30')]),_0x58ae0e);if(_0x3500c5[_0xb07a('0x2f')][_0xb07a('0x3b')]){_0x343fb7[_0xb07a('0x3c')]=_[_0xb07a('0x3d')](_0x343fb7[_0xb07a('0x3c')],{'$or':_[_0xb07a('0x2a')](_0x58ae0e,function(_0x52fee5){if(_0x52fee5[_0xb07a('0x3e')]!==_0xb07a('0x3f')){var _0x378b39={};_0x378b39[_0x52fee5[_0xb07a('0x2e')]]={'$like':'%'+_0x3500c5[_0xb07a('0x2f')][_0xb07a('0x3b')]+'%'};return _0x378b39;}})});}_0x343fb7=_['merge']({},_0x343fb7,_0x3500c5['options']);var _0x2c4576={'where':_0x343fb7['where']};return db[_0xb07a('0x2b')]['count'](_0x2c4576)['then'](function(_0x2477b3){_0x386ee0['count']=_0x2477b3;if(_0x3500c5[_0xb07a('0x2f')][_0xb07a('0x40')]){_0x343fb7['include']=[{'all':!![]}];}return db['Dynamics365Configuration'][_0xb07a('0x41')](_0x343fb7);})[_0xb07a('0x23')](function(_0x47b6d8){_0x386ee0[_0xb07a('0x42')]=_0x47b6d8;return _0x386ee0;})[_0xb07a('0x23')](respondWithFilteredResult(_0xcf87ff,_0x343fb7))[_0xb07a('0x43')](handleError(_0xcf87ff,null));};exports[_0xb07a('0x44')]=function(_0x3b5af6,_0x468aa9){var _0x45bf6f={'raw':![],'where':{'id':_0x3b5af6[_0xb07a('0x45')]['id']}},_0x27cbda={};_0x27cbda[_0xb07a('0x31')]=_[_0xb07a('0x46')](db['Dynamics365Configuration'][_0xb07a('0x2c')]);_0x27cbda[_0xb07a('0x2f')]=_[_0xb07a('0x46')](_0x3b5af6['query']);_0x27cbda[_0xb07a('0x30')]=_['intersection'](_0x27cbda[_0xb07a('0x31')],_0x27cbda[_0xb07a('0x2f')]);_0x45bf6f[_0xb07a('0x32')]=_[_0xb07a('0x33')](_0x27cbda[_0xb07a('0x31')],qs[_0xb07a('0x34')](_0x3b5af6[_0xb07a('0x2f')][_0xb07a('0x34')]));_0x45bf6f['attributes']=_0x45bf6f[_0xb07a('0x32')]['length']?_0x45bf6f['attributes']:_0x27cbda[_0xb07a('0x31')];if(_0x3b5af6[_0xb07a('0x2f')][_0xb07a('0x40')]){_0x45bf6f['include']=[{'all':!![]}];}_0x45bf6f=_[_0xb07a('0x3d')]({},_0x45bf6f,_0x3b5af6[_0xb07a('0x47')]);return db[_0xb07a('0x2b')][_0xb07a('0x48')](_0x45bf6f)[_0xb07a('0x23')](handleEntityNotFound(_0x468aa9,null))[_0xb07a('0x23')](respondWithResult(_0x468aa9,null))[_0xb07a('0x43')](handleError(_0x468aa9,null));};exports['create']=function(_0x3ce656,_0x3df30e){return db[_0xb07a('0x2b')][_0xb07a('0x49')](_0x3ce656['body'],{})['then'](respondWithResult(_0x3df30e,0xc9))[_0xb07a('0x43')](handleError(_0x3df30e,null));};exports[_0xb07a('0x22')]=function(_0x53a7cd,_0x4c2c99){if(_0x53a7cd['body']['id']){delete _0x53a7cd[_0xb07a('0x4a')]['id'];}return db[_0xb07a('0x2b')]['find']({'where':{'id':_0x53a7cd[_0xb07a('0x45')]['id']}})[_0xb07a('0x23')](handleEntityNotFound(_0x4c2c99,null))[_0xb07a('0x23')](saveUpdates(_0x53a7cd['body'],null))[_0xb07a('0x23')](respondWithResult(_0x4c2c99,null))[_0xb07a('0x43')](handleError(_0x4c2c99,null));};exports[_0xb07a('0x24')]=function(_0x4b02fc,_0x2d09ec){return db[_0xb07a('0x2b')][_0xb07a('0x48')]({'where':{'id':_0x4b02fc['params']['id']}})['then'](handleEntityNotFound(_0x2d09ec,null))[_0xb07a('0x23')](removeEntity(_0x2d09ec,null))['catch'](handleError(_0x2d09ec,null));};exports['getFields']=function(_0x26670f,_0x12e07d,_0x725066){var _0x37fb71={};var _0x2b8689={};var _0x6963ee;var _0x9822ed;return db[_0xb07a('0x2b')][_0xb07a('0x4b')]({'where':{'id':_0x26670f['params']['id']}})[_0xb07a('0x23')](handleEntityNotFound(_0x12e07d,null))['then'](function(_0x4f21a5){if(_0x4f21a5){_0x6963ee=_0x4f21a5;_0x2b8689[_0xb07a('0x31')]=_[_0xb07a('0x46')](db['Dynamics365Field'][_0xb07a('0x2c')]);_0x2b8689[_0xb07a('0x2f')]=_[_0xb07a('0x46')](_0x26670f['query']);_0x2b8689['filters']=_[_0xb07a('0x33')](_0x2b8689['model'],_0x2b8689['query']);_0x37fb71['attributes']=_['intersection'](_0x2b8689[_0xb07a('0x31')],qs[_0xb07a('0x34')](_0x26670f[_0xb07a('0x2f')][_0xb07a('0x34')]));_0x37fb71['attributes']=_0x37fb71[_0xb07a('0x32')][_0xb07a('0x35')]?_0x37fb71[_0xb07a('0x32')]:_0x2b8689[_0xb07a('0x31')];_0x37fb71[_0xb07a('0x38')]=qs['sort'](_0x26670f[_0xb07a('0x2f')][_0xb07a('0x39')]);_0x37fb71[_0xb07a('0x3c')]=qs[_0xb07a('0x30')](_[_0xb07a('0x3a')](_0x26670f[_0xb07a('0x2f')],_0x2b8689['filters']));if(_0x26670f[_0xb07a('0x2f')][_0xb07a('0x3b')]){_0x37fb71[_0xb07a('0x3c')]=_[_0xb07a('0x3d')](_0x37fb71[_0xb07a('0x3c')],{'$or':_['map'](_0x37fb71[_0xb07a('0x32')],function(_0x537b48){var _0x422aba={};_0x422aba[_0x537b48]={'$like':'%'+_0x26670f[_0xb07a('0x2f')][_0xb07a('0x3b')]+'%'};return _0x422aba;})});}_0x37fb71=_[_0xb07a('0x3d')]({},_0x37fb71,_0x26670f[_0xb07a('0x47')]);return _0x6963ee['getFields'](_0x37fb71);}})[_0xb07a('0x23')](function(_0x21d84d){if(_0x21d84d){_0x9822ed=_0x21d84d['length'];if(!_0x26670f[_0xb07a('0x2f')]['hasOwnProperty'](_0xb07a('0x37'))){_0x37fb71[_0xb07a('0x1b')]=qs[_0xb07a('0x1b')](_0x26670f[_0xb07a('0x2f')][_0xb07a('0x1b')]);_0x37fb71[_0xb07a('0x19')]=qs[_0xb07a('0x19')](_0x26670f['query'][_0xb07a('0x19')]);}return _0x6963ee[_0xb07a('0x4c')](_0x37fb71);}})[_0xb07a('0x23')](function(_0x3f9e65){if(_0x3f9e65){return _0x3f9e65?{'count':_0x9822ed,'rows':_0x3f9e65}:null;}})[_0xb07a('0x23')](respondWithResult(_0x12e07d,null))[_0xb07a('0x43')](handleError(_0x12e07d,null));};exports['getSubjects']=function(_0x53a9f1,_0x159d2c,_0x3f492f){var _0x54aab6={};var _0x273203={};var _0x12d801;var _0x5e1e76;return db['Dynamics365Configuration'][_0xb07a('0x4b')]({'where':{'id':_0x53a9f1['params']['id']}})['then'](handleEntityNotFound(_0x159d2c,null))[_0xb07a('0x23')](function(_0x191114){if(_0x191114){_0x12d801=_0x191114;_0x273203['model']=_['keys'](db[_0xb07a('0x4d')]['rawAttributes']);_0x273203['query']=_['keys'](_0x53a9f1['query']);_0x273203[_0xb07a('0x30')]=_[_0xb07a('0x33')](_0x273203[_0xb07a('0x31')],_0x273203[_0xb07a('0x2f')]);_0x54aab6['attributes']=_['intersection'](_0x273203[_0xb07a('0x31')],qs[_0xb07a('0x34')](_0x53a9f1['query'][_0xb07a('0x34')]));_0x54aab6[_0xb07a('0x32')]=_0x54aab6[_0xb07a('0x32')][_0xb07a('0x35')]?_0x54aab6[_0xb07a('0x32')]:_0x273203[_0xb07a('0x31')];_0x54aab6[_0xb07a('0x38')]=qs[_0xb07a('0x39')](_0x53a9f1[_0xb07a('0x2f')][_0xb07a('0x39')]);_0x54aab6['where']=qs[_0xb07a('0x30')](_[_0xb07a('0x3a')](_0x53a9f1[_0xb07a('0x2f')],_0x273203[_0xb07a('0x30')]));if(_0x53a9f1[_0xb07a('0x2f')][_0xb07a('0x3b')]){_0x54aab6['where']=_[_0xb07a('0x3d')](_0x54aab6[_0xb07a('0x3c')],{'$or':_[_0xb07a('0x2a')](_0x54aab6['attributes'],function(_0x55747e){var _0x247571={};_0x247571[_0x55747e]={'$like':'%'+_0x53a9f1[_0xb07a('0x2f')][_0xb07a('0x3b')]+'%'};return _0x247571;})});}_0x54aab6=_['merge']({},_0x54aab6,_0x53a9f1[_0xb07a('0x47')]);return _0x12d801['getSubjects'](_0x54aab6);}})[_0xb07a('0x23')](function(_0x4137a5){if(_0x4137a5){_0x5e1e76=_0x4137a5[_0xb07a('0x35')];if(!_0x53a9f1[_0xb07a('0x2f')][_0xb07a('0x36')](_0xb07a('0x37'))){_0x54aab6[_0xb07a('0x1b')]=qs[_0xb07a('0x1b')](_0x53a9f1[_0xb07a('0x2f')][_0xb07a('0x1b')]);_0x54aab6[_0xb07a('0x19')]=qs[_0xb07a('0x19')](_0x53a9f1[_0xb07a('0x2f')][_0xb07a('0x19')]);}return _0x12d801[_0xb07a('0x4e')](_0x54aab6);}})['then'](function(_0x353bc3){if(_0x353bc3){return _0x353bc3?{'count':_0x5e1e76,'rows':_0x353bc3}:null;}})[_0xb07a('0x23')](respondWithResult(_0x159d2c,null))[_0xb07a('0x43')](handleError(_0x159d2c,null));};exports['getDescriptions']=function(_0x45ca87,_0x4b0561,_0x1b22a1){var _0x4a1b08={};var _0x2cd2c0={};var _0xe53fab;var _0x52d31f;return db[_0xb07a('0x2b')][_0xb07a('0x4b')]({'where':{'id':_0x45ca87['params']['id']}})[_0xb07a('0x23')](handleEntityNotFound(_0x4b0561,null))['then'](function(_0x5a26d9){if(_0x5a26d9){_0xe53fab=_0x5a26d9;_0x2cd2c0['model']=_[_0xb07a('0x46')](db[_0xb07a('0x4d')][_0xb07a('0x2c')]);_0x2cd2c0['query']=_[_0xb07a('0x46')](_0x45ca87[_0xb07a('0x2f')]);_0x2cd2c0[_0xb07a('0x30')]=_[_0xb07a('0x33')](_0x2cd2c0[_0xb07a('0x31')],_0x2cd2c0[_0xb07a('0x2f')]);_0x4a1b08[_0xb07a('0x32')]=_[_0xb07a('0x33')](_0x2cd2c0[_0xb07a('0x31')],qs['fields'](_0x45ca87[_0xb07a('0x2f')]['fields']));_0x4a1b08[_0xb07a('0x32')]=_0x4a1b08[_0xb07a('0x32')][_0xb07a('0x35')]?_0x4a1b08[_0xb07a('0x32')]:_0x2cd2c0[_0xb07a('0x31')];_0x4a1b08[_0xb07a('0x38')]=qs['sort'](_0x45ca87[_0xb07a('0x2f')]['sort']);_0x4a1b08[_0xb07a('0x3c')]=qs[_0xb07a('0x30')](_[_0xb07a('0x3a')](_0x45ca87['query'],_0x2cd2c0['filters']));if(_0x45ca87['query'][_0xb07a('0x3b')]){_0x4a1b08[_0xb07a('0x3c')]=_['merge'](_0x4a1b08[_0xb07a('0x3c')],{'$or':_['map'](_0x4a1b08[_0xb07a('0x32')],function(_0x2a9c3d){var _0x5c481b={};_0x5c481b[_0x2a9c3d]={'$like':'%'+_0x45ca87[_0xb07a('0x2f')]['filter']+'%'};return _0x5c481b;})});}_0x4a1b08=_['merge']({},_0x4a1b08,_0x45ca87[_0xb07a('0x47')]);return _0xe53fab[_0xb07a('0x4f')](_0x4a1b08);}})['then'](function(_0x23b9a8){if(_0x23b9a8){_0x52d31f=_0x23b9a8[_0xb07a('0x35')];if(!_0x45ca87[_0xb07a('0x2f')]['hasOwnProperty'](_0xb07a('0x37'))){_0x4a1b08[_0xb07a('0x1b')]=qs['limit'](_0x45ca87[_0xb07a('0x2f')]['limit']);_0x4a1b08[_0xb07a('0x19')]=qs[_0xb07a('0x19')](_0x45ca87[_0xb07a('0x2f')]['offset']);}return _0xe53fab[_0xb07a('0x4f')](_0x4a1b08);}})[_0xb07a('0x23')](function(_0xdb958b){if(_0xdb958b){return _0xdb958b?{'count':_0x52d31f,'rows':_0xdb958b}:null;}})['then'](respondWithResult(_0x4b0561,null))[_0xb07a('0x43')](handleError(_0x4b0561,null));};
\ No newline at end of file
+var _0x10ad=['fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','include','Dynamics365Configuration','findAll','rows','show','params','keys','intersection','includeAll','find','catch','create','body','getFields','findOne','order','getSubjects','getDescriptions','Dynamics365Field','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../config/logger','../../config/environment','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','set','apply','reject','update','then','destroy','end','error','stack','name','send','index','map','rawAttributes','fieldName','type','key','model','query','filters','attributes'];(function(_0x5a3202,_0x4a9c0d){var _0xb4cf2=function(_0x169a51){while(--_0x169a51){_0x5a3202['push'](_0x5a3202['shift']());}};_0xb4cf2(++_0x4a9c0d);}(_0x10ad,0xc2));var _0xd10a=function(_0x4e54a3,_0x519905){_0x4e54a3=_0x4e54a3-0x0;var _0x1360f1=_0x10ad[_0x4e54a3];return _0x1360f1;};'use strict';var emlformat=require(_0xd10a('0x0'));var rimraf=require(_0xd10a('0x1'));var zipdir=require(_0xd10a('0x2'));var jsonpatch=require(_0xd10a('0x3'));var rp=require(_0xd10a('0x4'));var moment=require(_0xd10a('0x5'));var BPromise=require(_0xd10a('0x6'));var Mustache=require(_0xd10a('0x7'));var util=require(_0xd10a('0x8'));var path=require(_0xd10a('0x9'));var sox=require('sox');var csv=require(_0xd10a('0xa'));var ejs=require(_0xd10a('0xb'));var fs=require('fs');var fs_extra=require(_0xd10a('0xc'));var _=require(_0xd10a('0xd'));var squel=require('squel');var crypto=require(_0xd10a('0xe'));var jsforce=require(_0xd10a('0xf'));var deskjs=require(_0xd10a('0x10'));var toCsv=require(_0xd10a('0xa'));var querystring=require(_0xd10a('0x11'));var Papa=require(_0xd10a('0x12'));var Redis=require(_0xd10a('0x13'));var authService=require(_0xd10a('0x14'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xd10a('0x15'))('api');var utils=require('../../config/utils');var config=require(_0xd10a('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0xd10a('0x17'))['db'];function respondWithStatusCode(_0x952a26,_0x286d91){_0x286d91=_0x286d91||0xcc;return function(_0x89ad03){if(_0x89ad03){return _0x952a26[_0xd10a('0x18')](_0x286d91);}return _0x952a26[_0xd10a('0x19')](_0x286d91)['end']();};}function respondWithResult(_0x56d193,_0x56f941){_0x56f941=_0x56f941||0xc8;return function(_0x542e65){if(_0x542e65){return _0x56d193[_0xd10a('0x19')](_0x56f941)[_0xd10a('0x1a')](_0x542e65);}};}function respondWithFilteredResult(_0x23aed3,_0x177842){return function(_0xadd33){if(_0xadd33){var _0x263f11=typeof _0x177842[_0xd10a('0x1b')]===_0xd10a('0x1c')&&typeof _0x177842[_0xd10a('0x1d')]===_0xd10a('0x1c');var _0x121388=_0xadd33[_0xd10a('0x1e')];var _0x149b53=_0x263f11?0x0:_0x177842[_0xd10a('0x1b')];var _0x184b9a=_0x263f11?_0xadd33['count']:_0x177842[_0xd10a('0x1b')]+_0x177842['limit'];var _0xcd10f5;if(_0x184b9a>=_0x121388){_0x184b9a=_0x121388;_0xcd10f5=0xc8;}else{_0xcd10f5=0xce;}_0x23aed3[_0xd10a('0x19')](_0xcd10f5);return _0x23aed3[_0xd10a('0x1f')]('Content-Range',_0x149b53+'-'+_0x184b9a+'/'+_0x121388)[_0xd10a('0x1a')](_0xadd33);}return null;};}function patchUpdates(_0x734097){return function(_0x4c9c8d){try{jsonpatch[_0xd10a('0x20')](_0x4c9c8d,_0x734097,!![]);}catch(_0x5cb2b5){return BPromise[_0xd10a('0x21')](_0x5cb2b5);}return _0x4c9c8d['save']();};}function saveUpdates(_0x5debad,_0x492fc1){return function(_0x559737){if(_0x559737){return _0x559737[_0xd10a('0x22')](_0x5debad)[_0xd10a('0x23')](function(_0x7e116){return _0x7e116;});}return null;};}function removeEntity(_0x2dba00,_0x54e2ae){return function(_0x351986){if(_0x351986){return _0x351986[_0xd10a('0x24')]()[_0xd10a('0x23')](function(){_0x2dba00[_0xd10a('0x19')](0xcc)[_0xd10a('0x25')]();});}};}function handleEntityNotFound(_0x1898e2,_0xa78f14){return function(_0x2c3c5b){if(!_0x2c3c5b){_0x1898e2[_0xd10a('0x18')](0x194);}return _0x2c3c5b;};}function handleError(_0x18457e,_0x23199b){_0x23199b=_0x23199b||0x1f4;return function(_0x22cbd5){logger[_0xd10a('0x26')](_0x22cbd5[_0xd10a('0x27')]);if(_0x22cbd5[_0xd10a('0x28')]){delete _0x22cbd5[_0xd10a('0x28')];}_0x18457e[_0xd10a('0x19')](_0x23199b)[_0xd10a('0x29')](_0x22cbd5);};}exports[_0xd10a('0x2a')]=function(_0x3b37ce,_0x1d0081){var _0x3c5c5c={},_0xbaaebd={},_0x130f99={'count':0x0,'rows':[]};var _0x3305e5=_[_0xd10a('0x2b')](db['Dynamics365Configuration'][_0xd10a('0x2c')],function(_0x412629){return{'name':_0x412629[_0xd10a('0x2d')],'type':_0x412629[_0xd10a('0x2e')][_0xd10a('0x2f')]};});_0xbaaebd[_0xd10a('0x30')]=_['map'](_0x3305e5,_0xd10a('0x28'));_0xbaaebd[_0xd10a('0x31')]=_['keys'](_0x3b37ce['query']);_0xbaaebd[_0xd10a('0x32')]=_['intersection'](_0xbaaebd[_0xd10a('0x30')],_0xbaaebd[_0xd10a('0x31')]);_0x3c5c5c[_0xd10a('0x33')]=_['intersection'](_0xbaaebd[_0xd10a('0x30')],qs[_0xd10a('0x34')](_0x3b37ce[_0xd10a('0x31')][_0xd10a('0x34')]));_0x3c5c5c[_0xd10a('0x33')]=_0x3c5c5c[_0xd10a('0x33')][_0xd10a('0x35')]?_0x3c5c5c[_0xd10a('0x33')]:_0xbaaebd['model'];if(!_0x3b37ce['query'][_0xd10a('0x36')](_0xd10a('0x37'))){_0x3c5c5c[_0xd10a('0x1d')]=qs[_0xd10a('0x1d')](_0x3b37ce[_0xd10a('0x31')]['limit']);_0x3c5c5c['offset']=qs[_0xd10a('0x1b')](_0x3b37ce[_0xd10a('0x31')][_0xd10a('0x1b')]);}_0x3c5c5c['order']=qs[_0xd10a('0x38')](_0x3b37ce[_0xd10a('0x31')][_0xd10a('0x38')]);_0x3c5c5c[_0xd10a('0x39')]=qs[_0xd10a('0x32')](_[_0xd10a('0x3a')](_0x3b37ce[_0xd10a('0x31')],_0xbaaebd['filters']),_0x3305e5);if(_0x3b37ce[_0xd10a('0x31')][_0xd10a('0x3b')]){_0x3c5c5c['where']=_[_0xd10a('0x3c')](_0x3c5c5c[_0xd10a('0x39')],{'$or':_['map'](_0x3305e5,function(_0x34977c){if(_0x34977c['type']!==_0xd10a('0x3d')){var _0x5311f5={};_0x5311f5[_0x34977c['name']]={'$like':'%'+_0x3b37ce['query'][_0xd10a('0x3b')]+'%'};return _0x5311f5;}})});}_0x3c5c5c=_[_0xd10a('0x3c')]({},_0x3c5c5c,_0x3b37ce[_0xd10a('0x3e')]);var _0x397b58={'where':_0x3c5c5c['where']};return db['Dynamics365Configuration'][_0xd10a('0x1e')](_0x397b58)[_0xd10a('0x23')](function(_0x3d263d){_0x130f99['count']=_0x3d263d;if(_0x3b37ce[_0xd10a('0x31')]['includeAll']){_0x3c5c5c[_0xd10a('0x3f')]=[{'all':!![]}];}return db[_0xd10a('0x40')][_0xd10a('0x41')](_0x3c5c5c);})[_0xd10a('0x23')](function(_0x18f21f){_0x130f99[_0xd10a('0x42')]=_0x18f21f;return _0x130f99;})[_0xd10a('0x23')](respondWithFilteredResult(_0x1d0081,_0x3c5c5c))['catch'](handleError(_0x1d0081,null));};exports[_0xd10a('0x43')]=function(_0x1569f3,_0x386da1){var _0x106018={'raw':![],'where':{'id':_0x1569f3[_0xd10a('0x44')]['id']}},_0x4d64a9={};_0x4d64a9['model']=_[_0xd10a('0x45')](db[_0xd10a('0x40')][_0xd10a('0x2c')]);_0x4d64a9[_0xd10a('0x31')]=_[_0xd10a('0x45')](_0x1569f3['query']);_0x4d64a9[_0xd10a('0x32')]=_[_0xd10a('0x46')](_0x4d64a9[_0xd10a('0x30')],_0x4d64a9[_0xd10a('0x31')]);_0x106018[_0xd10a('0x33')]=_[_0xd10a('0x46')](_0x4d64a9[_0xd10a('0x30')],qs[_0xd10a('0x34')](_0x1569f3[_0xd10a('0x31')][_0xd10a('0x34')]));_0x106018['attributes']=_0x106018[_0xd10a('0x33')][_0xd10a('0x35')]?_0x106018[_0xd10a('0x33')]:_0x4d64a9['model'];if(_0x1569f3[_0xd10a('0x31')][_0xd10a('0x47')]){_0x106018['include']=[{'all':!![]}];}_0x106018=_['merge']({},_0x106018,_0x1569f3[_0xd10a('0x3e')]);return db[_0xd10a('0x40')][_0xd10a('0x48')](_0x106018)[_0xd10a('0x23')](handleEntityNotFound(_0x386da1,null))[_0xd10a('0x23')](respondWithResult(_0x386da1,null))[_0xd10a('0x49')](handleError(_0x386da1,null));};exports[_0xd10a('0x4a')]=function(_0x19eaa1,_0x40a527){return db[_0xd10a('0x40')][_0xd10a('0x4a')](_0x19eaa1['body'],{})[_0xd10a('0x23')](respondWithResult(_0x40a527,0xc9))['catch'](handleError(_0x40a527,null));};exports[_0xd10a('0x22')]=function(_0x5c317f,_0x496e52){if(_0x5c317f[_0xd10a('0x4b')]['id']){delete _0x5c317f['body']['id'];}return db[_0xd10a('0x40')][_0xd10a('0x48')]({'where':{'id':_0x5c317f[_0xd10a('0x44')]['id']}})['then'](handleEntityNotFound(_0x496e52,null))['then'](saveUpdates(_0x5c317f['body'],null))['then'](respondWithResult(_0x496e52,null))[_0xd10a('0x49')](handleError(_0x496e52,null));};exports[_0xd10a('0x24')]=function(_0x413a5d,_0x590f38){return db[_0xd10a('0x40')][_0xd10a('0x48')]({'where':{'id':_0x413a5d['params']['id']}})[_0xd10a('0x23')](handleEntityNotFound(_0x590f38,null))[_0xd10a('0x23')](removeEntity(_0x590f38,null))[_0xd10a('0x49')](handleError(_0x590f38,null));};exports[_0xd10a('0x4c')]=function(_0x4e64c4,_0x15cc28,_0x21c1af){var _0x4fd0d3={};var _0x33a8ab={};var _0x203d54;var _0x3cf201;return db[_0xd10a('0x40')][_0xd10a('0x4d')]({'where':{'id':_0x4e64c4[_0xd10a('0x44')]['id']}})[_0xd10a('0x23')](handleEntityNotFound(_0x15cc28,null))['then'](function(_0x572253){if(_0x572253){_0x203d54=_0x572253;_0x33a8ab[_0xd10a('0x30')]=_[_0xd10a('0x45')](db['Dynamics365Field'][_0xd10a('0x2c')]);_0x33a8ab[_0xd10a('0x31')]=_[_0xd10a('0x45')](_0x4e64c4['query']);_0x33a8ab[_0xd10a('0x32')]=_['intersection'](_0x33a8ab[_0xd10a('0x30')],_0x33a8ab[_0xd10a('0x31')]);_0x4fd0d3[_0xd10a('0x33')]=_[_0xd10a('0x46')](_0x33a8ab['model'],qs['fields'](_0x4e64c4[_0xd10a('0x31')][_0xd10a('0x34')]));_0x4fd0d3['attributes']=_0x4fd0d3[_0xd10a('0x33')][_0xd10a('0x35')]?_0x4fd0d3[_0xd10a('0x33')]:_0x33a8ab['model'];_0x4fd0d3[_0xd10a('0x4e')]=qs[_0xd10a('0x38')](_0x4e64c4[_0xd10a('0x31')]['sort']);_0x4fd0d3['where']=qs[_0xd10a('0x32')](_[_0xd10a('0x3a')](_0x4e64c4[_0xd10a('0x31')],_0x33a8ab['filters']));if(_0x4e64c4['query']['filter']){_0x4fd0d3[_0xd10a('0x39')]=_[_0xd10a('0x3c')](_0x4fd0d3[_0xd10a('0x39')],{'$or':_[_0xd10a('0x2b')](_0x4fd0d3['attributes'],function(_0xbcba52){var _0x584891={};_0x584891[_0xbcba52]={'$like':'%'+_0x4e64c4[_0xd10a('0x31')]['filter']+'%'};return _0x584891;})});}_0x4fd0d3=_['merge']({},_0x4fd0d3,_0x4e64c4[_0xd10a('0x3e')]);return _0x203d54['getFields'](_0x4fd0d3);}})[_0xd10a('0x23')](function(_0x3d8edc){if(_0x3d8edc){_0x3cf201=_0x3d8edc[_0xd10a('0x35')];if(!_0x4e64c4[_0xd10a('0x31')][_0xd10a('0x36')](_0xd10a('0x37'))){_0x4fd0d3[_0xd10a('0x1d')]=qs[_0xd10a('0x1d')](_0x4e64c4['query'][_0xd10a('0x1d')]);_0x4fd0d3[_0xd10a('0x1b')]=qs[_0xd10a('0x1b')](_0x4e64c4[_0xd10a('0x31')][_0xd10a('0x1b')]);}return _0x203d54[_0xd10a('0x4c')](_0x4fd0d3);}})[_0xd10a('0x23')](function(_0x231f93){if(_0x231f93){return _0x231f93?{'count':_0x3cf201,'rows':_0x231f93}:null;}})[_0xd10a('0x23')](respondWithResult(_0x15cc28,null))[_0xd10a('0x49')](handleError(_0x15cc28,null));};exports[_0xd10a('0x4f')]=function(_0x10431b,_0x2019bc,_0x1d94d5){var _0x5000c1={};var _0x48b835={};var _0x46edfa;var _0x36c53e;return db[_0xd10a('0x40')][_0xd10a('0x4d')]({'where':{'id':_0x10431b[_0xd10a('0x44')]['id']}})[_0xd10a('0x23')](handleEntityNotFound(_0x2019bc,null))[_0xd10a('0x23')](function(_0x29d22c){if(_0x29d22c){_0x46edfa=_0x29d22c;_0x48b835[_0xd10a('0x30')]=_[_0xd10a('0x45')](db['Dynamics365Field']['rawAttributes']);_0x48b835[_0xd10a('0x31')]=_[_0xd10a('0x45')](_0x10431b[_0xd10a('0x31')]);_0x48b835[_0xd10a('0x32')]=_[_0xd10a('0x46')](_0x48b835['model'],_0x48b835[_0xd10a('0x31')]);_0x5000c1[_0xd10a('0x33')]=_[_0xd10a('0x46')](_0x48b835[_0xd10a('0x30')],qs[_0xd10a('0x34')](_0x10431b[_0xd10a('0x31')][_0xd10a('0x34')]));_0x5000c1[_0xd10a('0x33')]=_0x5000c1[_0xd10a('0x33')][_0xd10a('0x35')]?_0x5000c1[_0xd10a('0x33')]:_0x48b835[_0xd10a('0x30')];_0x5000c1[_0xd10a('0x4e')]=qs['sort'](_0x10431b[_0xd10a('0x31')][_0xd10a('0x38')]);_0x5000c1['where']=qs[_0xd10a('0x32')](_[_0xd10a('0x3a')](_0x10431b[_0xd10a('0x31')],_0x48b835[_0xd10a('0x32')]));if(_0x10431b[_0xd10a('0x31')]['filter']){_0x5000c1[_0xd10a('0x39')]=_['merge'](_0x5000c1[_0xd10a('0x39')],{'$or':_[_0xd10a('0x2b')](_0x5000c1[_0xd10a('0x33')],function(_0x51802b){var _0x3d1269={};_0x3d1269[_0x51802b]={'$like':'%'+_0x10431b[_0xd10a('0x31')][_0xd10a('0x3b')]+'%'};return _0x3d1269;})});}_0x5000c1=_[_0xd10a('0x3c')]({},_0x5000c1,_0x10431b[_0xd10a('0x3e')]);return _0x46edfa[_0xd10a('0x4f')](_0x5000c1);}})[_0xd10a('0x23')](function(_0x256051){if(_0x256051){_0x36c53e=_0x256051[_0xd10a('0x35')];if(!_0x10431b[_0xd10a('0x31')][_0xd10a('0x36')](_0xd10a('0x37'))){_0x5000c1[_0xd10a('0x1d')]=qs[_0xd10a('0x1d')](_0x10431b['query']['limit']);_0x5000c1[_0xd10a('0x1b')]=qs['offset'](_0x10431b[_0xd10a('0x31')][_0xd10a('0x1b')]);}return _0x46edfa[_0xd10a('0x4f')](_0x5000c1);}})[_0xd10a('0x23')](function(_0x54a541){if(_0x54a541){return _0x54a541?{'count':_0x36c53e,'rows':_0x54a541}:null;}})['then'](respondWithResult(_0x2019bc,null))[_0xd10a('0x49')](handleError(_0x2019bc,null));};exports[_0xd10a('0x50')]=function(_0x4fd65b,_0x6d838e,_0x13c425){var _0x5a4798={};var _0x5de1eb={};var _0x5c25b0;var _0x597bdf;return db[_0xd10a('0x40')][_0xd10a('0x4d')]({'where':{'id':_0x4fd65b[_0xd10a('0x44')]['id']}})[_0xd10a('0x23')](handleEntityNotFound(_0x6d838e,null))['then'](function(_0x9e4924){if(_0x9e4924){_0x5c25b0=_0x9e4924;_0x5de1eb[_0xd10a('0x30')]=_[_0xd10a('0x45')](db[_0xd10a('0x51')][_0xd10a('0x2c')]);_0x5de1eb[_0xd10a('0x31')]=_['keys'](_0x4fd65b['query']);_0x5de1eb['filters']=_[_0xd10a('0x46')](_0x5de1eb[_0xd10a('0x30')],_0x5de1eb[_0xd10a('0x31')]);_0x5a4798[_0xd10a('0x33')]=_['intersection'](_0x5de1eb[_0xd10a('0x30')],qs[_0xd10a('0x34')](_0x4fd65b[_0xd10a('0x31')]['fields']));_0x5a4798[_0xd10a('0x33')]=_0x5a4798[_0xd10a('0x33')]['length']?_0x5a4798[_0xd10a('0x33')]:_0x5de1eb[_0xd10a('0x30')];_0x5a4798[_0xd10a('0x4e')]=qs[_0xd10a('0x38')](_0x4fd65b['query']['sort']);_0x5a4798['where']=qs[_0xd10a('0x32')](_['pick'](_0x4fd65b[_0xd10a('0x31')],_0x5de1eb[_0xd10a('0x32')]));if(_0x4fd65b[_0xd10a('0x31')][_0xd10a('0x3b')]){_0x5a4798[_0xd10a('0x39')]=_[_0xd10a('0x3c')](_0x5a4798[_0xd10a('0x39')],{'$or':_[_0xd10a('0x2b')](_0x5a4798[_0xd10a('0x33')],function(_0x1ed4c6){var _0x19053c={};_0x19053c[_0x1ed4c6]={'$like':'%'+_0x4fd65b[_0xd10a('0x31')]['filter']+'%'};return _0x19053c;})});}_0x5a4798=_[_0xd10a('0x3c')]({},_0x5a4798,_0x4fd65b[_0xd10a('0x3e')]);return _0x5c25b0[_0xd10a('0x50')](_0x5a4798);}})['then'](function(_0x517208){if(_0x517208){_0x597bdf=_0x517208[_0xd10a('0x35')];if(!_0x4fd65b[_0xd10a('0x31')]['hasOwnProperty'](_0xd10a('0x37'))){_0x5a4798['limit']=qs[_0xd10a('0x1d')](_0x4fd65b[_0xd10a('0x31')][_0xd10a('0x1d')]);_0x5a4798[_0xd10a('0x1b')]=qs[_0xd10a('0x1b')](_0x4fd65b[_0xd10a('0x31')]['offset']);}return _0x5c25b0[_0xd10a('0x50')](_0x5a4798);}})[_0xd10a('0x23')](function(_0x1101a8){if(_0x1101a8){return _0x1101a8?{'count':_0x597bdf,'rows':_0x1101a8}:null;}})['then'](respondWithResult(_0x6d838e,null))[_0xd10a('0x49')](handleError(_0x6d838e,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4b84=['moment','path','rimraf','../../config/environment','Dynamics365Configuration','lodash','util'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x4b84,0x1cc));var _0x44b8=function(_0x1ac6e5,_0x40f47f){_0x1ac6e5=_0x1ac6e5-0x0;var _0x5877dc=_0x4b84[_0x1ac6e5];return _0x5877dc;};'use strict';var _=require(_0x44b8('0x0'));var util=require(_0x44b8('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x44b8('0x2'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x44b8('0x3'));var rimraf=require(_0x44b8('0x4'));var config=require(_0x44b8('0x5'));var attributes=require('./intDynamics365Configuration.attributes');module['exports']=function(_0x55f25d,_0x996a8b){return _0x55f25d['define'](_0x44b8('0x6'),attributes,{'tableName':'int_dynamics365_configurations','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x5b02=['define','Dynamics365Configuration','lodash','util','../../config/logger','api','request-promise','rimraf','../../config/environment','./intDynamics365Configuration.attributes','exports'];(function(_0x19884a,_0x1afde8){var _0x3c88f3=function(_0x2487f9){while(--_0x2487f9){_0x19884a['push'](_0x19884a['shift']());}};_0x3c88f3(++_0x1afde8);}(_0x5b02,0xe9));var _0x25b0=function(_0x5a0367,_0x29adfd){_0x5a0367=_0x5a0367-0x0;var _0x19b6db=_0x5b02[_0x5a0367];return _0x19b6db;};'use strict';var _=require(_0x25b0('0x0'));var util=require(_0x25b0('0x1'));var logger=require(_0x25b0('0x2'))(_0x25b0('0x3'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0x25b0('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x25b0('0x5'));var config=require(_0x25b0('0x6'));var attributes=require(_0x25b0('0x7'));module[_0x25b0('0x8')]=function(_0x2d84a9,_0x4eea55){return _0x2d84a9[_0x25b0('0x9')](_0x25b0('0xa'),attributes,{'tableName':'int_dynamics365_configurations','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3dfb=['request','then','info','Dynamics365Configuration,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http'];(function(_0x1d4a68,_0x4de1e6){var _0x7a282c=function(_0x1a3e0c){while(--_0x1a3e0c){_0x1d4a68['push'](_0x1d4a68['shift']());}};_0x7a282c(++_0x4de1e6);}(_0x3dfb,0x7f));var _0xb3df=function(_0x5de2e8,_0x29b74f){_0x5de2e8=_0x5de2e8-0x0;var _0x20ed06=_0x3dfb[_0x5de2e8];return _0x20ed06;};'use strict';var _=require('lodash');var util=require(_0xb3df('0x0'));var moment=require(_0xb3df('0x1'));var BPromise=require(_0xb3df('0x2'));var rs=require(_0xb3df('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xb3df('0x4'))['db'];var utils=require(_0xb3df('0x5'));var logger=require(_0xb3df('0x6'))(_0xb3df('0x7'));var config=require(_0xb3df('0x8'));var jayson=require('jayson/promise');var client=jayson[_0xb3df('0x9')][_0xb3df('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x24ee79,_0x2a7de1,_0x468a48){return new BPromise(function(_0x368475,_0x4187e4){return client[_0xb3df('0xb')](_0x24ee79,_0x468a48)[_0xb3df('0xc')](function(_0x119fdc){logger[_0xb3df('0xd')](_0xb3df('0xe'),_0x2a7de1,_0xb3df('0xf'));logger[_0xb3df('0x10')]('Dynamics365Configuration,\x20%s,\x20%s,\x20%s',_0x2a7de1,_0xb3df('0xf'),JSON[_0xb3df('0x11')](_0x119fdc));if(_0x119fdc['error']){if(_0x119fdc[_0xb3df('0x12')][_0xb3df('0x13')]===0x1f4){logger[_0xb3df('0x12')](_0xb3df('0xe'),_0x2a7de1,_0x119fdc[_0xb3df('0x12')]['message']);return _0x4187e4(_0x119fdc[_0xb3df('0x12')][_0xb3df('0x14')]);}logger['error']('Dynamics365Configuration,\x20%s,\x20%s',_0x2a7de1,_0x119fdc[_0xb3df('0x12')][_0xb3df('0x14')]);return _0x368475(_0x119fdc[_0xb3df('0x12')]['message']);}else{logger[_0xb3df('0xd')]('Dynamics365Configuration,\x20%s,\x20%s',_0x2a7de1,_0xb3df('0xf'));_0x368475(_0x119fdc[_0xb3df('0x15')][_0xb3df('0x14')]);}})[_0xb3df('0x16')](function(_0x467037){logger['error'](_0xb3df('0xe'),_0x2a7de1,_0x467037);_0x4187e4(_0x467037);});});}
\ No newline at end of file
+var _0x1d75=['client','http','then','Dynamics365Configuration,\x20%s,\x20%s','debug','Dynamics365Configuration,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','info','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise'];(function(_0x6131cd,_0x4c26a1){var _0x47e916=function(_0x1f2bce){while(--_0x1f2bce){_0x6131cd['push'](_0x6131cd['shift']());}};_0x47e916(++_0x4c26a1);}(_0x1d75,0x1d0));var _0x51d7=function(_0x85246a,_0x3407f1){_0x85246a=_0x85246a-0x0;var _0x337a3d=_0x1d75[_0x85246a];return _0x337a3d;};'use strict';var _=require(_0x51d7('0x0'));var util=require(_0x51d7('0x1'));var moment=require(_0x51d7('0x2'));var BPromise=require(_0x51d7('0x3'));var rs=require(_0x51d7('0x4'));var fs=require('fs');var Redis=require(_0x51d7('0x5'));var db=require(_0x51d7('0x6'))['db'];var utils=require(_0x51d7('0x7'));var logger=require(_0x51d7('0x8'))(_0x51d7('0x9'));var config=require('../../config/environment');var jayson=require(_0x51d7('0xa'));var client=jayson[_0x51d7('0xb')][_0x51d7('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x434aff,_0x28b6ae,_0x3542b5){return new BPromise(function(_0x30515e,_0x555756){return client['request'](_0x434aff,_0x3542b5)[_0x51d7('0xd')](function(_0xd8a59){logger['info'](_0x51d7('0xe'),_0x28b6ae,'request\x20sent');logger[_0x51d7('0xf')](_0x51d7('0x10'),_0x28b6ae,_0x51d7('0x11'),JSON[_0x51d7('0x12')](_0xd8a59));if(_0xd8a59['error']){if(_0xd8a59[_0x51d7('0x13')][_0x51d7('0x14')]===0x1f4){logger['error']('Dynamics365Configuration,\x20%s,\x20%s',_0x28b6ae,_0xd8a59[_0x51d7('0x13')][_0x51d7('0x15')]);return _0x555756(_0xd8a59[_0x51d7('0x13')][_0x51d7('0x15')]);}logger[_0x51d7('0x13')](_0x51d7('0xe'),_0x28b6ae,_0xd8a59[_0x51d7('0x13')][_0x51d7('0x15')]);return _0x30515e(_0xd8a59[_0x51d7('0x13')][_0x51d7('0x15')]);}else{logger[_0x51d7('0x16')](_0x51d7('0xe'),_0x28b6ae,'request\x20sent');_0x30515e(_0xd8a59[_0x51d7('0x17')]['message']);}})[_0x51d7('0x18')](function(_0x392b1f){logger[_0x51d7('0x13')](_0x51d7('0xe'),_0x28b6ae,_0x392b1f);_0x555756(_0x392b1f);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xffe0=['../../config/environment','get','/:id','show','isAuthenticated','create','put','update','delete','destroy','util','path','connect-timeout','Router','../../components/auth/service','../../components/interaction/service'];(function(_0x4f3438,_0x1e23f6){var _0x5c1424=function(_0xa38325){while(--_0xa38325){_0x4f3438['push'](_0x4f3438['shift']());}};_0x5c1424(++_0x1e23f6);}(_0xffe0,0x1da));var _0x0ffe=function(_0xbe797a,_0x5ddb71){_0xbe797a=_0xbe797a-0x0;var _0x2cfe07=_0xffe0[_0xbe797a];return _0x2cfe07;};'use strict';var multer=require('multer');var util=require(_0x0ffe('0x0'));var path=require(_0x0ffe('0x1'));var timeout=require(_0x0ffe('0x2'));var express=require('express');var router=express[_0x0ffe('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x0ffe('0x4'));var interaction=require(_0x0ffe('0x5'));var config=require(_0x0ffe('0x6'));var controller=require('./intDynamics365Field.controller');router[_0x0ffe('0x7')]('/',auth['isAuthenticated'](),controller['index']);router[_0x0ffe('0x7')](_0x0ffe('0x8'),auth['isAuthenticated'](),controller[_0x0ffe('0x9')]);router['post']('/',auth[_0x0ffe('0xa')](),controller[_0x0ffe('0xb')]);router[_0x0ffe('0xc')]('/:id',auth['isAuthenticated'](),controller[_0x0ffe('0xd')]);router[_0x0ffe('0xe')](_0x0ffe('0x8'),auth[_0x0ffe('0xa')](),controller[_0x0ffe('0xf')]);module['exports']=router;
\ No newline at end of file
+var _0x35ac=['delete','destroy','exports','multer','util','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./intDynamics365Field.controller','get','isAuthenticated','index','post','create','put','/:id','update'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x35ac,0x10d));var _0xc35a=function(_0x3cc7b1,_0x1cd2e2){_0x3cc7b1=_0x3cc7b1-0x0;var _0xf3c783=_0x35ac[_0x3cc7b1];return _0xf3c783;};'use strict';var multer=require(_0xc35a('0x0'));var util=require(_0xc35a('0x1'));var path=require('path');var timeout=require(_0xc35a('0x2'));var express=require('express');var router=express[_0xc35a('0x3')]();var fs_extra=require(_0xc35a('0x4'));var auth=require(_0xc35a('0x5'));var interaction=require(_0xc35a('0x6'));var config=require('../../config/environment');var controller=require(_0xc35a('0x7'));router[_0xc35a('0x8')]('/',auth[_0xc35a('0x9')](),controller[_0xc35a('0xa')]);router[_0xc35a('0x8')]('/:id',auth[_0xc35a('0x9')](),controller['show']);router[_0xc35a('0xb')]('/',auth[_0xc35a('0x9')](),controller[_0xc35a('0xc')]);router[_0xc35a('0xd')](_0xc35a('0xe'),auth[_0xc35a('0x9')](),controller[_0xc35a('0xf')]);router[_0xc35a('0x10')](_0xc35a('0xe'),auth[_0xc35a('0x9')](),controller[_0xc35a('0x11')]);module[_0xc35a('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4c74=['customVariable','keyValue','picklist','STRING','string','BOOLEAN','sequelize','exports','ENUM','variable'];(function(_0x36eaaa,_0x326732){var _0x461349=function(_0x4e4180){while(--_0x4e4180){_0x36eaaa['push'](_0x36eaaa['shift']());}};_0x461349(++_0x326732);}(_0x4c74,0xb0));var _0x44c7=function(_0x29d915,_0x54a040){_0x29d915=_0x29d915-0x0;var _0x160f86=_0x4c74[_0x29d915];return _0x160f86;};'use strict';var Sequelize=require(_0x44c7('0x0'));module[_0x44c7('0x1')]={'type':{'type':Sequelize[_0x44c7('0x2')]('string',_0x44c7('0x3'),_0x44c7('0x4'),_0x44c7('0x5'),_0x44c7('0x6')),'defaultValue':'string'},'content':{'type':Sequelize[_0x44c7('0x7')]},'key':{'type':Sequelize[_0x44c7('0x7')]},'keyType':{'type':Sequelize[_0x44c7('0x2')](_0x44c7('0x8'),_0x44c7('0x3'),_0x44c7('0x4'))},'keyContent':{'type':Sequelize['STRING']},'idField':{'type':Sequelize[_0x44c7('0x7')]},'nameField':{'type':Sequelize[_0x44c7('0x7')]},'customField':{'type':Sequelize[_0x44c7('0x9')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x44c7('0x7')]}};
\ No newline at end of file
+var _0x713b=['ENUM','string','variable','keyValue','STRING','customVariable','BOOLEAN','sequelize','exports'];(function(_0x3f8743,_0x33973f){var _0x1f844c=function(_0x568841){while(--_0x568841){_0x3f8743['push'](_0x3f8743['shift']());}};_0x1f844c(++_0x33973f);}(_0x713b,0x154));var _0xb713=function(_0x1d7037,_0x57dd95){_0x1d7037=_0x1d7037-0x0;var _0x4d6568=_0x713b[_0x1d7037];return _0x4d6568;};'use strict';var Sequelize=require(_0xb713('0x0'));module[_0xb713('0x1')]={'type':{'type':Sequelize[_0xb713('0x2')](_0xb713('0x3'),_0xb713('0x4'),'customVariable',_0xb713('0x5'),'picklist'),'defaultValue':_0xb713('0x3')},'content':{'type':Sequelize[_0xb713('0x6')]},'key':{'type':Sequelize['STRING']},'keyType':{'type':Sequelize['ENUM']('string','variable',_0xb713('0x7'))},'keyContent':{'type':Sequelize['STRING']},'idField':{'type':Sequelize['STRING']},'nameField':{'type':Sequelize[_0xb713('0x6')]},'customField':{'type':Sequelize[_0xb713('0x8')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0xb713('0x6')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcdb1=['save','update','then','destroy','sendStatus','error','stack','name','send','Dynamics365Field','rawAttributes','fieldName','type','key','model','map','query','keys','intersection','fields','attributes','length','nolimit','sort','where','filters','filter','merge','VIRTUAL','options','includeAll','findAll','rows','show','params','include','find','catch','create','body','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','util','path','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','Content-Range','reject'];(function(_0x5212b3,_0x7fdce){var _0x404eb6=function(_0x131be6){while(--_0x131be6){_0x5212b3['push'](_0x5212b3['shift']());}};_0x404eb6(++_0x7fdce);}(_0xcdb1,0x1a9));var _0x1cdb=function(_0x3ab51d,_0x2fa01d){_0x3ab51d=_0x3ab51d-0x0;var _0x29a04e=_0xcdb1[_0x3ab51d];return _0x29a04e;};'use strict';var emlformat=require(_0x1cdb('0x0'));var rimraf=require(_0x1cdb('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x1cdb('0x2'));var rp=require(_0x1cdb('0x3'));var moment=require(_0x1cdb('0x4'));var BPromise=require(_0x1cdb('0x5'));var Mustache=require('mustache');var util=require(_0x1cdb('0x6'));var path=require(_0x1cdb('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x1cdb('0x8'));var fs=require('fs');var fs_extra=require(_0x1cdb('0x9'));var _=require(_0x1cdb('0xa'));var squel=require(_0x1cdb('0xb'));var crypto=require(_0x1cdb('0xc'));var jsforce=require(_0x1cdb('0xd'));var deskjs=require(_0x1cdb('0xe'));var toCsv=require(_0x1cdb('0xf'));var querystring=require(_0x1cdb('0x10'));var Papa=require(_0x1cdb('0x11'));var Redis=require(_0x1cdb('0x12'));var authService=require(_0x1cdb('0x13'));var qs=require(_0x1cdb('0x14'));var as=require(_0x1cdb('0x15'));var hardwareService=require(_0x1cdb('0x16'));var logger=require(_0x1cdb('0x17'))('api');var utils=require(_0x1cdb('0x18'));var config=require(_0x1cdb('0x19'));var licenseUtil=require(_0x1cdb('0x1a'));var db=require(_0x1cdb('0x1b'))['db'];function respondWithStatusCode(_0x555e1b,_0x4185e3){_0x4185e3=_0x4185e3||0xcc;return function(_0x13c4ac){if(_0x13c4ac){return _0x555e1b['sendStatus'](_0x4185e3);}return _0x555e1b[_0x1cdb('0x1c')](_0x4185e3)[_0x1cdb('0x1d')]();};}function respondWithResult(_0x250af6,_0x463db9){_0x463db9=_0x463db9||0xc8;return function(_0x247dad){if(_0x247dad){return _0x250af6[_0x1cdb('0x1c')](_0x463db9)[_0x1cdb('0x1e')](_0x247dad);}};}function respondWithFilteredResult(_0x431816,_0x481d5e){return function(_0x58469c){if(_0x58469c){var _0x4b9dd1=typeof _0x481d5e[_0x1cdb('0x1f')]===_0x1cdb('0x20')&&typeof _0x481d5e[_0x1cdb('0x21')]==='undefined';var _0x13ea1f=_0x58469c[_0x1cdb('0x22')];var _0x4fe5c3=_0x4b9dd1?0x0:_0x481d5e[_0x1cdb('0x1f')];var _0x4d916a=_0x4b9dd1?_0x58469c[_0x1cdb('0x22')]:_0x481d5e[_0x1cdb('0x1f')]+_0x481d5e['limit'];var _0x124a8e;if(_0x4d916a>=_0x13ea1f){_0x4d916a=_0x13ea1f;_0x124a8e=0xc8;}else{_0x124a8e=0xce;}_0x431816[_0x1cdb('0x1c')](_0x124a8e);return _0x431816['set'](_0x1cdb('0x23'),_0x4fe5c3+'-'+_0x4d916a+'/'+_0x13ea1f)[_0x1cdb('0x1e')](_0x58469c);}return null;};}function patchUpdates(_0x3ac8ac){return function(_0x2e6c51){try{jsonpatch['apply'](_0x2e6c51,_0x3ac8ac,!![]);}catch(_0x506e0c){return BPromise[_0x1cdb('0x24')](_0x506e0c);}return _0x2e6c51[_0x1cdb('0x25')]();};}function saveUpdates(_0x2d7681,_0x2fe903){return function(_0xb5b5e9){if(_0xb5b5e9){return _0xb5b5e9[_0x1cdb('0x26')](_0x2d7681)[_0x1cdb('0x27')](function(_0x1cc225){return _0x1cc225;});}return null;};}function removeEntity(_0x567423,_0x53340e){return function(_0x2f8bb9){if(_0x2f8bb9){return _0x2f8bb9[_0x1cdb('0x28')]()[_0x1cdb('0x27')](function(){_0x567423['status'](0xcc)[_0x1cdb('0x1d')]();});}};}function handleEntityNotFound(_0x2fe48b,_0x33a566){return function(_0x24a755){if(!_0x24a755){_0x2fe48b[_0x1cdb('0x29')](0x194);}return _0x24a755;};}function handleError(_0x4e7d3e,_0x184d41){_0x184d41=_0x184d41||0x1f4;return function(_0x149e1b){logger[_0x1cdb('0x2a')](_0x149e1b[_0x1cdb('0x2b')]);if(_0x149e1b[_0x1cdb('0x2c')]){delete _0x149e1b[_0x1cdb('0x2c')];}_0x4e7d3e['status'](_0x184d41)[_0x1cdb('0x2d')](_0x149e1b);};}exports['index']=function(_0x1a486d,_0x18619e){var _0x1c098c={},_0x2e29af={},_0x204251={'count':0x0,'rows':[]};var _0x37e3ae=_['map'](db[_0x1cdb('0x2e')][_0x1cdb('0x2f')],function(_0x3d9224){return{'name':_0x3d9224[_0x1cdb('0x30')],'type':_0x3d9224[_0x1cdb('0x31')][_0x1cdb('0x32')]};});_0x2e29af[_0x1cdb('0x33')]=_[_0x1cdb('0x34')](_0x37e3ae,_0x1cdb('0x2c'));_0x2e29af[_0x1cdb('0x35')]=_[_0x1cdb('0x36')](_0x1a486d[_0x1cdb('0x35')]);_0x2e29af['filters']=_[_0x1cdb('0x37')](_0x2e29af['model'],_0x2e29af['query']);_0x1c098c['attributes']=_[_0x1cdb('0x37')](_0x2e29af['model'],qs[_0x1cdb('0x38')](_0x1a486d[_0x1cdb('0x35')][_0x1cdb('0x38')]));_0x1c098c[_0x1cdb('0x39')]=_0x1c098c['attributes'][_0x1cdb('0x3a')]?_0x1c098c[_0x1cdb('0x39')]:_0x2e29af[_0x1cdb('0x33')];if(!_0x1a486d['query']['hasOwnProperty'](_0x1cdb('0x3b'))){_0x1c098c['limit']=qs[_0x1cdb('0x21')](_0x1a486d[_0x1cdb('0x35')][_0x1cdb('0x21')]);_0x1c098c[_0x1cdb('0x1f')]=qs[_0x1cdb('0x1f')](_0x1a486d[_0x1cdb('0x35')][_0x1cdb('0x1f')]);}_0x1c098c['order']=qs[_0x1cdb('0x3c')](_0x1a486d[_0x1cdb('0x35')][_0x1cdb('0x3c')]);_0x1c098c[_0x1cdb('0x3d')]=qs[_0x1cdb('0x3e')](_['pick'](_0x1a486d['query'],_0x2e29af[_0x1cdb('0x3e')]),_0x37e3ae);if(_0x1a486d[_0x1cdb('0x35')][_0x1cdb('0x3f')]){_0x1c098c['where']=_[_0x1cdb('0x40')](_0x1c098c[_0x1cdb('0x3d')],{'$or':_[_0x1cdb('0x34')](_0x37e3ae,function(_0x3c3f44){if(_0x3c3f44[_0x1cdb('0x31')]!==_0x1cdb('0x41')){var _0x4f8037={};_0x4f8037[_0x3c3f44[_0x1cdb('0x2c')]]={'$like':'%'+_0x1a486d[_0x1cdb('0x35')][_0x1cdb('0x3f')]+'%'};return _0x4f8037;}})});}_0x1c098c=_[_0x1cdb('0x40')]({},_0x1c098c,_0x1a486d[_0x1cdb('0x42')]);var _0x496c09={'where':_0x1c098c[_0x1cdb('0x3d')]};return db[_0x1cdb('0x2e')][_0x1cdb('0x22')](_0x496c09)[_0x1cdb('0x27')](function(_0x4b97f2){_0x204251['count']=_0x4b97f2;if(_0x1a486d[_0x1cdb('0x35')][_0x1cdb('0x43')]){_0x1c098c['include']=[{'all':!![]}];}return db[_0x1cdb('0x2e')][_0x1cdb('0x44')](_0x1c098c);})['then'](function(_0x1fd126){_0x204251[_0x1cdb('0x45')]=_0x1fd126;return _0x204251;})[_0x1cdb('0x27')](respondWithFilteredResult(_0x18619e,_0x1c098c))['catch'](handleError(_0x18619e,null));};exports[_0x1cdb('0x46')]=function(_0x29e465,_0x139ba6){var _0x1c8447={'raw':!![],'where':{'id':_0x29e465[_0x1cdb('0x47')]['id']}},_0x322611={};_0x322611[_0x1cdb('0x33')]=_[_0x1cdb('0x36')](db[_0x1cdb('0x2e')][_0x1cdb('0x2f')]);_0x322611['query']=_[_0x1cdb('0x36')](_0x29e465[_0x1cdb('0x35')]);_0x322611[_0x1cdb('0x3e')]=_[_0x1cdb('0x37')](_0x322611[_0x1cdb('0x33')],_0x322611[_0x1cdb('0x35')]);_0x1c8447['attributes']=_[_0x1cdb('0x37')](_0x322611[_0x1cdb('0x33')],qs[_0x1cdb('0x38')](_0x29e465[_0x1cdb('0x35')][_0x1cdb('0x38')]));_0x1c8447[_0x1cdb('0x39')]=_0x1c8447[_0x1cdb('0x39')][_0x1cdb('0x3a')]?_0x1c8447['attributes']:_0x322611['model'];if(_0x29e465[_0x1cdb('0x35')][_0x1cdb('0x43')]){_0x1c8447[_0x1cdb('0x48')]=[{'all':!![]}];}_0x1c8447=_[_0x1cdb('0x40')]({},_0x1c8447,_0x29e465[_0x1cdb('0x42')]);return db[_0x1cdb('0x2e')][_0x1cdb('0x49')](_0x1c8447)[_0x1cdb('0x27')](handleEntityNotFound(_0x139ba6,null))[_0x1cdb('0x27')](respondWithResult(_0x139ba6,null))[_0x1cdb('0x4a')](handleError(_0x139ba6,null));};exports[_0x1cdb('0x4b')]=function(_0x28618a,_0x56acee){return db[_0x1cdb('0x2e')][_0x1cdb('0x4b')](_0x28618a[_0x1cdb('0x4c')],{})[_0x1cdb('0x27')](respondWithResult(_0x56acee,0xc9))['catch'](handleError(_0x56acee,null));};exports['update']=function(_0x31ec28,_0x33f76a){if(_0x31ec28[_0x1cdb('0x4c')]['id']){delete _0x31ec28['body']['id'];}return db[_0x1cdb('0x2e')]['find']({'where':{'id':_0x31ec28['params']['id']}})[_0x1cdb('0x27')](handleEntityNotFound(_0x33f76a,null))[_0x1cdb('0x27')](saveUpdates(_0x31ec28[_0x1cdb('0x4c')],null))[_0x1cdb('0x27')](respondWithResult(_0x33f76a,null))[_0x1cdb('0x4a')](handleError(_0x33f76a,null));};exports[_0x1cdb('0x28')]=function(_0x3ed43c,_0x1c9f2b){return db['Dynamics365Field'][_0x1cdb('0x49')]({'where':{'id':_0x3ed43c['params']['id']}})[_0x1cdb('0x27')](handleEntityNotFound(_0x1c9f2b,null))[_0x1cdb('0x27')](removeEntity(_0x1c9f2b,null))[_0x1cdb('0x4a')](handleError(_0x1c9f2b,null));};
\ No newline at end of file
+var _0x518f=['pick','filter','where','VIRTUAL','Dynamics365Field','includeAll','include','findAll','rows','show','params','rawAttributes','merge','catch','create','body','find','eml-format','rimraf','fast-json-patch','request-promise','moment','mustache','to-csv','ejs','fs-extra','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','sendStatus','status','end','offset','undefined','limit','count','Content-Range','json','apply','reject','save','update','destroy','then','stack','name','index','map','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort'];(function(_0x10acc2,_0x381818){var _0x5159f0=function(_0x272676){while(--_0x272676){_0x10acc2['push'](_0x10acc2['shift']());}};_0x5159f0(++_0x381818);}(_0x518f,0x12d));var _0xf518=function(_0x5e2489,_0x2fd8be){_0x5e2489=_0x5e2489-0x0;var _0xa87596=_0x518f[_0x5e2489];return _0xa87596;};'use strict';var emlformat=require(_0xf518('0x0'));var rimraf=require(_0xf518('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xf518('0x2'));var rp=require(_0xf518('0x3'));var moment=require(_0xf518('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xf518('0x5'));var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0xf518('0x6'));var ejs=require(_0xf518('0x7'));var fs=require('fs');var fs_extra=require(_0xf518('0x8'));var _=require('lodash');var squel=require(_0xf518('0x9'));var crypto=require(_0xf518('0xa'));var jsforce=require(_0xf518('0xb'));var deskjs=require('desk.js');var toCsv=require(_0xf518('0x6'));var querystring=require(_0xf518('0xc'));var Papa=require(_0xf518('0xd'));var Redis=require(_0xf518('0xe'));var authService=require(_0xf518('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0xf518('0x10'));var hardwareService=require(_0xf518('0x11'));var logger=require('../../config/logger')(_0xf518('0x12'));var utils=require('../../config/utils');var config=require(_0xf518('0x13'));var licenseUtil=require(_0xf518('0x14'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x56baf9,_0xdefaea){_0xdefaea=_0xdefaea||0xcc;return function(_0x11c051){if(_0x11c051){return _0x56baf9[_0xf518('0x15')](_0xdefaea);}return _0x56baf9[_0xf518('0x16')](_0xdefaea)[_0xf518('0x17')]();};}function respondWithResult(_0x41255f,_0x38c365){_0x38c365=_0x38c365||0xc8;return function(_0xa749ff){if(_0xa749ff){return _0x41255f[_0xf518('0x16')](_0x38c365)['json'](_0xa749ff);}};}function respondWithFilteredResult(_0x2029a0,_0x3bbfa2){return function(_0x1722c2){if(_0x1722c2){var _0x580198=typeof _0x3bbfa2[_0xf518('0x18')]===_0xf518('0x19')&&typeof _0x3bbfa2[_0xf518('0x1a')]===_0xf518('0x19');var _0x14f899=_0x1722c2[_0xf518('0x1b')];var _0x435180=_0x580198?0x0:_0x3bbfa2['offset'];var _0x56ef8c=_0x580198?_0x1722c2[_0xf518('0x1b')]:_0x3bbfa2['offset']+_0x3bbfa2[_0xf518('0x1a')];var _0x39eb6c;if(_0x56ef8c>=_0x14f899){_0x56ef8c=_0x14f899;_0x39eb6c=0xc8;}else{_0x39eb6c=0xce;}_0x2029a0[_0xf518('0x16')](_0x39eb6c);return _0x2029a0['set'](_0xf518('0x1c'),_0x435180+'-'+_0x56ef8c+'/'+_0x14f899)[_0xf518('0x1d')](_0x1722c2);}return null;};}function patchUpdates(_0x4af75b){return function(_0x58f386){try{jsonpatch[_0xf518('0x1e')](_0x58f386,_0x4af75b,!![]);}catch(_0x162e6c){return BPromise[_0xf518('0x1f')](_0x162e6c);}return _0x58f386[_0xf518('0x20')]();};}function saveUpdates(_0x2c433c,_0x1646f3){return function(_0x50a983){if(_0x50a983){return _0x50a983[_0xf518('0x21')](_0x2c433c)['then'](function(_0x4fbb52){return _0x4fbb52;});}return null;};}function removeEntity(_0x585ada,_0x363ad4){return function(_0x4286c9){if(_0x4286c9){return _0x4286c9[_0xf518('0x22')]()[_0xf518('0x23')](function(){_0x585ada[_0xf518('0x16')](0xcc)[_0xf518('0x17')]();});}};}function handleEntityNotFound(_0x3ce854,_0x27d39a){return function(_0xc26038){if(!_0xc26038){_0x3ce854[_0xf518('0x15')](0x194);}return _0xc26038;};}function handleError(_0x219621,_0x2365c1){_0x2365c1=_0x2365c1||0x1f4;return function(_0x5f0684){logger['error'](_0x5f0684[_0xf518('0x24')]);if(_0x5f0684[_0xf518('0x25')]){delete _0x5f0684[_0xf518('0x25')];}_0x219621[_0xf518('0x16')](_0x2365c1)['send'](_0x5f0684);};}exports[_0xf518('0x26')]=function(_0x4962f1,_0x3f7893){var _0x55f475={},_0x172ab0={},_0x357209={'count':0x0,'rows':[]};var _0x25605b=_[_0xf518('0x27')](db['Dynamics365Field']['rawAttributes'],function(_0x1ee282){return{'name':_0x1ee282[_0xf518('0x28')],'type':_0x1ee282[_0xf518('0x29')][_0xf518('0x2a')]};});_0x172ab0[_0xf518('0x2b')]=_[_0xf518('0x27')](_0x25605b,'name');_0x172ab0[_0xf518('0x2c')]=_[_0xf518('0x2d')](_0x4962f1[_0xf518('0x2c')]);_0x172ab0[_0xf518('0x2e')]=_[_0xf518('0x2f')](_0x172ab0['model'],_0x172ab0[_0xf518('0x2c')]);_0x55f475[_0xf518('0x30')]=_[_0xf518('0x2f')](_0x172ab0[_0xf518('0x2b')],qs['fields'](_0x4962f1[_0xf518('0x2c')][_0xf518('0x31')]));_0x55f475['attributes']=_0x55f475[_0xf518('0x30')]['length']?_0x55f475['attributes']:_0x172ab0[_0xf518('0x2b')];if(!_0x4962f1[_0xf518('0x2c')][_0xf518('0x32')](_0xf518('0x33'))){_0x55f475[_0xf518('0x1a')]=qs[_0xf518('0x1a')](_0x4962f1[_0xf518('0x2c')][_0xf518('0x1a')]);_0x55f475['offset']=qs[_0xf518('0x18')](_0x4962f1[_0xf518('0x2c')][_0xf518('0x18')]);}_0x55f475[_0xf518('0x34')]=qs[_0xf518('0x35')](_0x4962f1[_0xf518('0x2c')][_0xf518('0x35')]);_0x55f475['where']=qs[_0xf518('0x2e')](_[_0xf518('0x36')](_0x4962f1[_0xf518('0x2c')],_0x172ab0[_0xf518('0x2e')]),_0x25605b);if(_0x4962f1[_0xf518('0x2c')][_0xf518('0x37')]){_0x55f475[_0xf518('0x38')]=_['merge'](_0x55f475[_0xf518('0x38')],{'$or':_[_0xf518('0x27')](_0x25605b,function(_0x31c0d6){if(_0x31c0d6[_0xf518('0x29')]!==_0xf518('0x39')){var _0x3b1f74={};_0x3b1f74[_0x31c0d6['name']]={'$like':'%'+_0x4962f1[_0xf518('0x2c')]['filter']+'%'};return _0x3b1f74;}})});}_0x55f475=_['merge']({},_0x55f475,_0x4962f1['options']);var _0x2afc73={'where':_0x55f475[_0xf518('0x38')]};return db[_0xf518('0x3a')][_0xf518('0x1b')](_0x2afc73)['then'](function(_0x5526bf){_0x357209[_0xf518('0x1b')]=_0x5526bf;if(_0x4962f1[_0xf518('0x2c')][_0xf518('0x3b')]){_0x55f475[_0xf518('0x3c')]=[{'all':!![]}];}return db['Dynamics365Field'][_0xf518('0x3d')](_0x55f475);})[_0xf518('0x23')](function(_0x7c0c16){_0x357209[_0xf518('0x3e')]=_0x7c0c16;return _0x357209;})[_0xf518('0x23')](respondWithFilteredResult(_0x3f7893,_0x55f475))['catch'](handleError(_0x3f7893,null));};exports[_0xf518('0x3f')]=function(_0x3c634d,_0x548ac8){var _0x2f74a4={'raw':!![],'where':{'id':_0x3c634d[_0xf518('0x40')]['id']}},_0x4ea731={};_0x4ea731[_0xf518('0x2b')]=_[_0xf518('0x2d')](db[_0xf518('0x3a')][_0xf518('0x41')]);_0x4ea731[_0xf518('0x2c')]=_['keys'](_0x3c634d[_0xf518('0x2c')]);_0x4ea731[_0xf518('0x2e')]=_[_0xf518('0x2f')](_0x4ea731[_0xf518('0x2b')],_0x4ea731[_0xf518('0x2c')]);_0x2f74a4[_0xf518('0x30')]=_[_0xf518('0x2f')](_0x4ea731[_0xf518('0x2b')],qs[_0xf518('0x31')](_0x3c634d['query'][_0xf518('0x31')]));_0x2f74a4[_0xf518('0x30')]=_0x2f74a4[_0xf518('0x30')]['length']?_0x2f74a4['attributes']:_0x4ea731[_0xf518('0x2b')];if(_0x3c634d[_0xf518('0x2c')][_0xf518('0x3b')]){_0x2f74a4[_0xf518('0x3c')]=[{'all':!![]}];}_0x2f74a4=_[_0xf518('0x42')]({},_0x2f74a4,_0x3c634d['options']);return db[_0xf518('0x3a')]['find'](_0x2f74a4)[_0xf518('0x23')](handleEntityNotFound(_0x548ac8,null))[_0xf518('0x23')](respondWithResult(_0x548ac8,null))[_0xf518('0x43')](handleError(_0x548ac8,null));};exports[_0xf518('0x44')]=function(_0x3ebe20,_0x1b5ce4){return db[_0xf518('0x3a')][_0xf518('0x44')](_0x3ebe20[_0xf518('0x45')],{})['then'](respondWithResult(_0x1b5ce4,0xc9))['catch'](handleError(_0x1b5ce4,null));};exports[_0xf518('0x21')]=function(_0x918787,_0x26b76f){if(_0x918787[_0xf518('0x45')]['id']){delete _0x918787[_0xf518('0x45')]['id'];}return db['Dynamics365Field'][_0xf518('0x46')]({'where':{'id':_0x918787[_0xf518('0x40')]['id']}})[_0xf518('0x23')](handleEntityNotFound(_0x26b76f,null))[_0xf518('0x23')](saveUpdates(_0x918787[_0xf518('0x45')],null))[_0xf518('0x23')](respondWithResult(_0x26b76f,null))[_0xf518('0x43')](handleError(_0x26b76f,null));};exports[_0xf518('0x22')]=function(_0x2edf1f,_0x3b21c0){return db[_0xf518('0x3a')][_0xf518('0x46')]({'where':{'id':_0x2edf1f[_0xf518('0x40')]['id']}})[_0xf518('0x23')](handleEntityNotFound(_0x3b21c0,null))[_0xf518('0x23')](removeEntity(_0x3b21c0,null))[_0xf518('0x43')](handleError(_0x3b21c0,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4430=['api','moment','bluebird','request-promise','path','./intDynamics365Field.attributes','exports','define','Dynamics365Field','int_dynamics365_fields','FieldId','lodash','util','../../config/logger'];(function(_0x4737a0,_0x36520e){var _0x4d558b=function(_0xaa9825){while(--_0xaa9825){_0x4737a0['push'](_0x4737a0['shift']());}};_0x4d558b(++_0x36520e);}(_0x4430,0x97));var _0x0443=function(_0x547640,_0x579b2a){_0x547640=_0x547640-0x0;var _0x481c2a=_0x4430[_0x547640];return _0x481c2a;};'use strict';var _=require(_0x0443('0x0'));var util=require(_0x0443('0x1'));var logger=require(_0x0443('0x2'))(_0x0443('0x3'));var moment=require(_0x0443('0x4'));var BPromise=require(_0x0443('0x5'));var rp=require(_0x0443('0x6'));var fs=require('fs');var path=require(_0x0443('0x7'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x0443('0x8'));module[_0x0443('0x9')]=function(_0x2160b3,_0x2bc2ce){return _0x2160b3[_0x0443('0xa')](_0x0443('0xb'),attributes,{'tableName':_0x0443('0xc'),'paranoid':![],'indexes':[{'name':'dynamics365_unique_index','fields':['idField',_0x0443('0xd')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x28b2=['Dynamics365Field','int_dynamics365_fields','idField','FieldId','api','moment','bluebird','request-promise','rimraf','../../config/environment','./intDynamics365Field.attributes','exports','define'];(function(_0x3f6f4b,_0x11614f){var _0x58a05f=function(_0x1e412c){while(--_0x1e412c){_0x3f6f4b['push'](_0x3f6f4b['shift']());}};_0x58a05f(++_0x11614f);}(_0x28b2,0x1f2));var _0x228b=function(_0x580647,_0x43d2c3){_0x580647=_0x580647-0x0;var _0x5f0792=_0x28b2[_0x580647];return _0x5f0792;};'use strict';var _=require('lodash');var util=require('util');var logger=require('../../config/logger')(_0x228b('0x0'));var moment=require(_0x228b('0x1'));var BPromise=require(_0x228b('0x2'));var rp=require(_0x228b('0x3'));var fs=require('fs');var path=require('path');var rimraf=require(_0x228b('0x4'));var config=require(_0x228b('0x5'));var attributes=require(_0x228b('0x6'));module[_0x228b('0x7')]=function(_0x35b26f,_0x32880a){return _0x35b26f[_0x228b('0x8')](_0x228b('0x9'),attributes,{'tableName':_0x228b('0xa'),'paranoid':![],'indexes':[{'name':'dynamics365_unique_index','fields':[_0x228b('0xb'),_0x228b('0xc')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfdda=['error','message','result','catch','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','request','then','info','Dynamics365Field,\x20%s,\x20%s','request\x20sent','debug','stringify'];(function(_0x30e5ca,_0x3d7cc7){var _0x366201=function(_0x499d3d){while(--_0x499d3d){_0x30e5ca['push'](_0x30e5ca['shift']());}};_0x366201(++_0x3d7cc7);}(_0xfdda,0x1bc));var _0xafdd=function(_0x55cc58,_0x5ce0af){_0x55cc58=_0x55cc58-0x0;var _0x26062e=_0xfdda[_0x55cc58];return _0x26062e;};'use strict';var _=require('lodash');var util=require(_0xafdd('0x0'));var moment=require(_0xafdd('0x1'));var BPromise=require('bluebird');var rs=require(_0xafdd('0x2'));var fs=require('fs');var Redis=require(_0xafdd('0x3'));var db=require(_0xafdd('0x4'))['db'];var utils=require(_0xafdd('0x5'));var logger=require(_0xafdd('0x6'))(_0xafdd('0x7'));var config=require(_0xafdd('0x8'));var jayson=require('jayson/promise');var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x1c5b87,_0x29cef6,_0x306f17){return new BPromise(function(_0x2e5270,_0x495737){return client[_0xafdd('0x9')](_0x1c5b87,_0x306f17)[_0xafdd('0xa')](function(_0x386660){logger[_0xafdd('0xb')](_0xafdd('0xc'),_0x29cef6,_0xafdd('0xd'));logger[_0xafdd('0xe')]('Dynamics365Field,\x20%s,\x20%s,\x20%s',_0x29cef6,'request\x20sent',JSON[_0xafdd('0xf')](_0x386660));if(_0x386660['error']){if(_0x386660[_0xafdd('0x10')]['code']===0x1f4){logger['error'](_0xafdd('0xc'),_0x29cef6,_0x386660[_0xafdd('0x10')][_0xafdd('0x11')]);return _0x495737(_0x386660[_0xafdd('0x10')][_0xafdd('0x11')]);}logger[_0xafdd('0x10')]('Dynamics365Field,\x20%s,\x20%s',_0x29cef6,_0x386660['error'][_0xafdd('0x11')]);return _0x2e5270(_0x386660[_0xafdd('0x10')][_0xafdd('0x11')]);}else{logger[_0xafdd('0xb')](_0xafdd('0xc'),_0x29cef6,_0xafdd('0xd'));_0x2e5270(_0x386660[_0xafdd('0x12')]['message']);}})[_0xafdd('0x13')](function(_0x5db14b){logger[_0xafdd('0x10')](_0xafdd('0xc'),_0x29cef6,_0x5db14b);_0x495737(_0x5db14b);});});}
\ No newline at end of file
+var _0xbd80=['code','message','info','result','catch','lodash','util','bluebird','randomstring','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','then','Dynamics365Field,\x20%s,\x20%s','request\x20sent','debug','Dynamics365Field,\x20%s,\x20%s,\x20%s','stringify','error'];(function(_0x2a453b,_0x479c50){var _0x132f79=function(_0x5e3d83){while(--_0x5e3d83){_0x2a453b['push'](_0x2a453b['shift']());}};_0x132f79(++_0x479c50);}(_0xbd80,0x1ba));var _0x0bd8=function(_0x3b3025,_0x9b009c){_0x3b3025=_0x3b3025-0x0;var _0x398ee9=_0xbd80[_0x3b3025];return _0x398ee9;};'use strict';var _=require(_0x0bd8('0x0'));var util=require(_0x0bd8('0x1'));var moment=require('moment');var BPromise=require(_0x0bd8('0x2'));var rs=require(_0x0bd8('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x0bd8('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x0bd8('0x5'))(_0x0bd8('0x6'));var config=require(_0x0bd8('0x7'));var jayson=require(_0x0bd8('0x8'));var client=jayson[_0x0bd8('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x5121c5,_0x50600a,_0x4111ee){return new BPromise(function(_0x1afd98,_0x412939){return client[_0x0bd8('0xa')](_0x5121c5,_0x4111ee)[_0x0bd8('0xb')](function(_0x1bfac1){logger['info'](_0x0bd8('0xc'),_0x50600a,_0x0bd8('0xd'));logger[_0x0bd8('0xe')](_0x0bd8('0xf'),_0x50600a,_0x0bd8('0xd'),JSON[_0x0bd8('0x10')](_0x1bfac1));if(_0x1bfac1[_0x0bd8('0x11')]){if(_0x1bfac1[_0x0bd8('0x11')][_0x0bd8('0x12')]===0x1f4){logger[_0x0bd8('0x11')](_0x0bd8('0xc'),_0x50600a,_0x1bfac1['error'][_0x0bd8('0x13')]);return _0x412939(_0x1bfac1[_0x0bd8('0x11')][_0x0bd8('0x13')]);}logger[_0x0bd8('0x11')](_0x0bd8('0xc'),_0x50600a,_0x1bfac1[_0x0bd8('0x11')][_0x0bd8('0x13')]);return _0x1afd98(_0x1bfac1[_0x0bd8('0x11')][_0x0bd8('0x13')]);}else{logger[_0x0bd8('0x14')](_0x0bd8('0xc'),_0x50600a,_0x0bd8('0xd'));_0x1afd98(_0x1bfac1[_0x0bd8('0x15')]['message']);}})[_0x0bd8('0x16')](function(_0x23bf99){logger[_0x0bd8('0x11')]('Dynamics365Field,\x20%s,\x20%s',_0x50600a,_0x23bf99);_0x412939(_0x23bf99);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4fcc=['../../components/auth/service','../../components/interaction/service','./intFreshdeskAccount.controller','get','isAuthenticated','/:id','show','/:id/configurations','/:id/fields','getFields','post','addConfiguration','put','update','delete','multer','util','path','connect-timeout','express','Router','fs-extra'];(function(_0x11d0f3,_0x2c52c7){var _0x1a0f83=function(_0x25b7f8){while(--_0x25b7f8){_0x11d0f3['push'](_0x11d0f3['shift']());}};_0x1a0f83(++_0x2c52c7);}(_0x4fcc,0x93));var _0xc4fc=function(_0x2921fb,_0x53cddf){_0x2921fb=_0x2921fb-0x0;var _0x2846bf=_0x4fcc[_0x2921fb];return _0x2846bf;};'use strict';var multer=require(_0xc4fc('0x0'));var util=require(_0xc4fc('0x1'));var path=require(_0xc4fc('0x2'));var timeout=require(_0xc4fc('0x3'));var express=require(_0xc4fc('0x4'));var router=express[_0xc4fc('0x5')]();var fs_extra=require(_0xc4fc('0x6'));var auth=require(_0xc4fc('0x7'));var interaction=require(_0xc4fc('0x8'));var config=require('../../config/environment');var controller=require(_0xc4fc('0x9'));router[_0xc4fc('0xa')]('/',auth[_0xc4fc('0xb')](),controller['index']);router[_0xc4fc('0xa')](_0xc4fc('0xc'),auth[_0xc4fc('0xb')](),controller[_0xc4fc('0xd')]);router[_0xc4fc('0xa')](_0xc4fc('0xe'),auth[_0xc4fc('0xb')](),controller['getConfigurations']);router['get'](_0xc4fc('0xf'),auth[_0xc4fc('0xb')](),controller[_0xc4fc('0x10')]);router[_0xc4fc('0x11')]('/',auth[_0xc4fc('0xb')](),controller['create']);router[_0xc4fc('0x11')](_0xc4fc('0xe'),auth[_0xc4fc('0xb')](),controller[_0xc4fc('0x12')]);router[_0xc4fc('0x13')](_0xc4fc('0xc'),auth[_0xc4fc('0xb')](),controller[_0xc4fc('0x14')]);router[_0xc4fc('0x15')](_0xc4fc('0xc'),auth[_0xc4fc('0xb')](),controller['destroy']);module['exports']=router;
\ No newline at end of file
+var _0x25e1=['create','/:id/configurations','put','delete','destroy','exports','util','connect-timeout','express','Router','../../components/interaction/service','../../config/environment','./intFreshdeskAccount.controller','get','isAuthenticated','/:id','show','getConfigurations','post'];(function(_0x1316ff,_0x5c1706){var _0x3e0418=function(_0x250d81){while(--_0x250d81){_0x1316ff['push'](_0x1316ff['shift']());}};_0x3e0418(++_0x5c1706);}(_0x25e1,0xb1));var _0x125e=function(_0xcb1634,_0x18edf4){_0xcb1634=_0xcb1634-0x0;var _0x485470=_0x25e1[_0xcb1634];return _0x485470;};'use strict';var multer=require('multer');var util=require(_0x125e('0x0'));var path=require('path');var timeout=require(_0x125e('0x1'));var express=require(_0x125e('0x2'));var router=express[_0x125e('0x3')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0x125e('0x4'));var config=require(_0x125e('0x5'));var controller=require(_0x125e('0x6'));router[_0x125e('0x7')]('/',auth[_0x125e('0x8')](),controller['index']);router[_0x125e('0x7')](_0x125e('0x9'),auth[_0x125e('0x8')](),controller[_0x125e('0xa')]);router[_0x125e('0x7')]('/:id/configurations',auth[_0x125e('0x8')](),controller[_0x125e('0xb')]);router[_0x125e('0x7')]('/:id/fields',auth[_0x125e('0x8')](),controller['getFields']);router[_0x125e('0xc')]('/',auth[_0x125e('0x8')](),controller[_0x125e('0xd')]);router[_0x125e('0xc')](_0x125e('0xe'),auth[_0x125e('0x8')](),controller['addConfiguration']);router[_0x125e('0xf')](_0x125e('0x9'),auth[_0x125e('0x8')](),controller['update']);router[_0x125e('0x10')](_0x125e('0x9'),auth['isAuthenticated'](),controller[_0x125e('0x11')]);module[_0x125e('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4888=['exports','STRING','username'];(function(_0x56482c,_0x16118d){var _0x5aae7a=function(_0x52512f){while(--_0x52512f){_0x56482c['push'](_0x56482c['shift']());}};_0x5aae7a(++_0x16118d);}(_0x4888,0x198));var _0x8488=function(_0x118d61,_0x2410d8){_0x118d61=_0x118d61-0x0;var _0x45c03c=_0x4888[_0x118d61];return _0x45c03c;};'use strict';var Sequelize=require('sequelize');module[_0x8488('0x0')]={'name':{'type':Sequelize[_0x8488('0x1')]},'description':{'type':Sequelize[_0x8488('0x1')]},'username':{'type':Sequelize[_0x8488('0x1')],'unique':_0x8488('0x2')},'apiKey':{'type':Sequelize[_0x8488('0x1')]},'remoteUri':{'type':Sequelize[_0x8488('0x1')],'unique':'remoteUri'},'serverUrl':{'type':Sequelize[_0x8488('0x1')],'allowNull':![]}};
\ No newline at end of file
+var _0x4e2e=['username','remoteUri','exports','STRING'];(function(_0x1d4849,_0x535294){var _0x451396=function(_0x26931e){while(--_0x26931e){_0x1d4849['push'](_0x1d4849['shift']());}};_0x451396(++_0x535294);}(_0x4e2e,0x1f2));var _0xe4e2=function(_0x54eb24,_0x11c1fc){_0x54eb24=_0x54eb24-0x0;var _0x56002b=_0x4e2e[_0x54eb24];return _0x56002b;};'use strict';var Sequelize=require('sequelize');module[_0xe4e2('0x0')]={'name':{'type':Sequelize[_0xe4e2('0x1')]},'description':{'type':Sequelize[_0xe4e2('0x1')]},'username':{'type':Sequelize[_0xe4e2('0x1')],'unique':_0xe4e2('0x2')},'apiKey':{'type':Sequelize[_0xe4e2('0x1')]},'remoteUri':{'type':Sequelize['STRING'],'unique':_0xe4e2('0x3')},'serverUrl':{'type':Sequelize[_0xe4e2('0x1')],'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x132f=['length','includeAll','options','find','create','catch','body','findOne','params','FreshdeskConfiguration','getConfigurations','addConfiguration','AccountId','Subjects','getSubjects','getDescriptions','channel','Descriptions','remoteUri','apiKey','slice','substring','GET','api/v2/ticket_fields','format','base64','requester','agent','description','priority','source','group','company','includes','custom_text','custom_dropdown','label','default','choices','capitalize','test','statusCode','stringify','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','fs-extra','lodash','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','limit','undefined','count','offset','set','Content-Range','save','update','then','destroy','end','error','stack','name','send','index','map','key','query','keys','filters','intersection','model','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','type','VIRTUAL','filter','merge','FreshdeskAccount','include','findAll','rows','show','rawAttributes'];(function(_0x29b609,_0x19d388){var _0x54c952=function(_0xb3c38d){while(--_0xb3c38d){_0x29b609['push'](_0x29b609['shift']());}};_0x54c952(++_0x19d388);}(_0x132f,0x182));var _0xf132=function(_0x43d701,_0x4bb2e9){_0x43d701=_0x43d701-0x0;var _0x2ec4c6=_0x132f[_0x43d701];return _0x2ec4c6;};'use strict';var emlformat=require(_0xf132('0x0'));var rimraf=require(_0xf132('0x1'));var zipdir=require(_0xf132('0x2'));var jsonpatch=require(_0xf132('0x3'));var rp=require(_0xf132('0x4'));var moment=require(_0xf132('0x5'));var BPromise=require('bluebird');var Mustache=require(_0xf132('0x6'));var util=require(_0xf132('0x7'));var path=require(_0xf132('0x8'));var sox=require(_0xf132('0x9'));var csv=require(_0xf132('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xf132('0xb'));var _=require(_0xf132('0xc'));var squel=require('squel');var crypto=require(_0xf132('0xd'));var jsforce=require('jsforce');var deskjs=require(_0xf132('0xe'));var toCsv=require(_0xf132('0xa'));var querystring=require(_0xf132('0xf'));var Papa=require(_0xf132('0x10'));var Redis=require(_0xf132('0x11'));var authService=require(_0xf132('0x12'));var qs=require(_0xf132('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xf132('0x14'))(_0xf132('0x15'));var utils=require(_0xf132('0x16'));var config=require(_0xf132('0x17'));var licenseUtil=require(_0xf132('0x18'));var db=require(_0xf132('0x19'))['db'];var integrations=require(_0xf132('0x1a'));function respondWithStatusCode(_0x1c79e0,_0x3f0f56){_0x3f0f56=_0x3f0f56||0xcc;return function(_0x3658a4){if(_0x3658a4){return _0x1c79e0[_0xf132('0x1b')](_0x3f0f56);}return _0x1c79e0[_0xf132('0x1c')](_0x3f0f56)['end']();};}function respondWithResult(_0x79d371,_0x259b76){_0x259b76=_0x259b76||0xc8;return function(_0x569b7e){if(_0x569b7e){return _0x79d371[_0xf132('0x1c')](_0x259b76)['json'](_0x569b7e);}};}function respondWithFilteredResult(_0x50ed67,_0x206e0c){return function(_0x24c138){if(_0x24c138){var _0x438d8a=typeof _0x206e0c['offset']==='undefined'&&typeof _0x206e0c[_0xf132('0x1d')]===_0xf132('0x1e');var _0xc9429b=_0x24c138[_0xf132('0x1f')];var _0x52f7eb=_0x438d8a?0x0:_0x206e0c[_0xf132('0x20')];var _0x26123a=_0x438d8a?_0x24c138[_0xf132('0x1f')]:_0x206e0c[_0xf132('0x20')]+_0x206e0c['limit'];var _0x1490aa;if(_0x26123a>=_0xc9429b){_0x26123a=_0xc9429b;_0x1490aa=0xc8;}else{_0x1490aa=0xce;}_0x50ed67['status'](_0x1490aa);return _0x50ed67[_0xf132('0x21')](_0xf132('0x22'),_0x52f7eb+'-'+_0x26123a+'/'+_0xc9429b)['json'](_0x24c138);}return null;};}function patchUpdates(_0x129820){return function(_0x4de164){try{jsonpatch['apply'](_0x4de164,_0x129820,!![]);}catch(_0x479574){return BPromise['reject'](_0x479574);}return _0x4de164[_0xf132('0x23')]();};}function saveUpdates(_0x202dca,_0x2fb27d){return function(_0x3c6be2){if(_0x3c6be2){return _0x3c6be2[_0xf132('0x24')](_0x202dca)[_0xf132('0x25')](function(_0x209c99){return _0x209c99;});}return null;};}function removeEntity(_0x5c9958,_0x3db8a0){return function(_0x191742){if(_0x191742){return _0x191742[_0xf132('0x26')]()[_0xf132('0x25')](function(){_0x5c9958[_0xf132('0x1c')](0xcc)[_0xf132('0x27')]();});}};}function handleEntityNotFound(_0x6f16b1,_0x4f1e5f){return function(_0x30dec4){if(!_0x30dec4){_0x6f16b1[_0xf132('0x1b')](0x194);}return _0x30dec4;};}function handleError(_0x562770,_0x5b01b5){_0x5b01b5=_0x5b01b5||0x1f4;return function(_0x193e9e){logger[_0xf132('0x28')](_0x193e9e[_0xf132('0x29')]);if(_0x193e9e[_0xf132('0x2a')]){delete _0x193e9e[_0xf132('0x2a')];}_0x562770[_0xf132('0x1c')](_0x5b01b5)[_0xf132('0x2b')](_0x193e9e);};}exports[_0xf132('0x2c')]=function(_0x395050,_0x45fdf5){var _0x43a510={},_0x355212={},_0xeb393e={'count':0x0,'rows':[]};var _0x59f3b3=_[_0xf132('0x2d')](db['FreshdeskAccount']['rawAttributes'],function(_0x39639a){return{'name':_0x39639a['fieldName'],'type':_0x39639a['type'][_0xf132('0x2e')]};});_0x355212['model']=_[_0xf132('0x2d')](_0x59f3b3,_0xf132('0x2a'));_0x355212[_0xf132('0x2f')]=_[_0xf132('0x30')](_0x395050[_0xf132('0x2f')]);_0x355212[_0xf132('0x31')]=_[_0xf132('0x32')](_0x355212[_0xf132('0x33')],_0x355212[_0xf132('0x2f')]);_0x43a510[_0xf132('0x34')]=_[_0xf132('0x32')](_0x355212['model'],qs[_0xf132('0x35')](_0x395050[_0xf132('0x2f')]['fields']));_0x43a510[_0xf132('0x34')]=_0x43a510[_0xf132('0x34')]['length']?_0x43a510['attributes']:_0x355212[_0xf132('0x33')];if(!_0x395050[_0xf132('0x2f')][_0xf132('0x36')](_0xf132('0x37'))){_0x43a510[_0xf132('0x1d')]=qs[_0xf132('0x1d')](_0x395050[_0xf132('0x2f')]['limit']);_0x43a510['offset']=qs['offset'](_0x395050['query']['offset']);}_0x43a510[_0xf132('0x38')]=qs['sort'](_0x395050[_0xf132('0x2f')][_0xf132('0x39')]);_0x43a510[_0xf132('0x3a')]=qs[_0xf132('0x31')](_[_0xf132('0x3b')](_0x395050[_0xf132('0x2f')],_0x355212['filters']),_0x59f3b3);if(_0x395050['query']['filter']){_0x43a510[_0xf132('0x3a')]=_['merge'](_0x43a510[_0xf132('0x3a')],{'$or':_['map'](_0x59f3b3,function(_0x4f09b7){if(_0x4f09b7[_0xf132('0x3c')]!==_0xf132('0x3d')){var _0x57a2bb={};_0x57a2bb[_0x4f09b7[_0xf132('0x2a')]]={'$like':'%'+_0x395050[_0xf132('0x2f')][_0xf132('0x3e')]+'%'};return _0x57a2bb;}})});}_0x43a510=_[_0xf132('0x3f')]({},_0x43a510,_0x395050['options']);var _0x52c898={'where':_0x43a510['where']};return db[_0xf132('0x40')][_0xf132('0x1f')](_0x52c898)[_0xf132('0x25')](function(_0x2cf745){_0xeb393e['count']=_0x2cf745;if(_0x395050['query']['includeAll']){_0x43a510[_0xf132('0x41')]=[{'all':!![]}];}return db[_0xf132('0x40')][_0xf132('0x42')](_0x43a510);})['then'](function(_0x46b431){_0xeb393e[_0xf132('0x43')]=_0x46b431;return _0xeb393e;})[_0xf132('0x25')](respondWithFilteredResult(_0x45fdf5,_0x43a510))['catch'](handleError(_0x45fdf5,null));};exports[_0xf132('0x44')]=function(_0x4585fa,_0x2ede85){var _0x4c597f={'raw':![],'where':{'id':_0x4585fa['params']['id']}},_0x387c95={};_0x387c95[_0xf132('0x33')]=_[_0xf132('0x30')](db[_0xf132('0x40')][_0xf132('0x45')]);_0x387c95[_0xf132('0x2f')]=_['keys'](_0x4585fa['query']);_0x387c95[_0xf132('0x31')]=_['intersection'](_0x387c95[_0xf132('0x33')],_0x387c95['query']);_0x4c597f[_0xf132('0x34')]=_['intersection'](_0x387c95[_0xf132('0x33')],qs['fields'](_0x4585fa['query'][_0xf132('0x35')]));_0x4c597f[_0xf132('0x34')]=_0x4c597f[_0xf132('0x34')][_0xf132('0x46')]?_0x4c597f['attributes']:_0x387c95['model'];if(_0x4585fa[_0xf132('0x2f')][_0xf132('0x47')]){_0x4c597f[_0xf132('0x41')]=[{'all':!![]}];}_0x4c597f=_[_0xf132('0x3f')]({},_0x4c597f,_0x4585fa[_0xf132('0x48')]);return db[_0xf132('0x40')][_0xf132('0x49')](_0x4c597f)[_0xf132('0x25')](handleEntityNotFound(_0x2ede85,null))[_0xf132('0x25')](respondWithResult(_0x2ede85,null))['catch'](handleError(_0x2ede85,null));};exports[_0xf132('0x4a')]=function(_0x184bf1,_0x27f4e7){return db[_0xf132('0x40')][_0xf132('0x4a')](_0x184bf1['body'],{})[_0xf132('0x25')](respondWithResult(_0x27f4e7,0xc9))[_0xf132('0x4b')](handleError(_0x27f4e7,null));};exports[_0xf132('0x24')]=function(_0x12d024,_0x5604bb){if(_0x12d024[_0xf132('0x4c')]['id']){delete _0x12d024[_0xf132('0x4c')]['id'];}return db[_0xf132('0x40')][_0xf132('0x49')]({'where':{'id':_0x12d024['params']['id']}})[_0xf132('0x25')](handleEntityNotFound(_0x5604bb,null))[_0xf132('0x25')](saveUpdates(_0x12d024['body'],null))[_0xf132('0x25')](respondWithResult(_0x5604bb,null))[_0xf132('0x4b')](handleError(_0x5604bb,null));};exports[_0xf132('0x26')]=function(_0x3994d9,_0x4e1548){return db[_0xf132('0x40')]['find']({'where':{'id':_0x3994d9['params']['id']}})[_0xf132('0x25')](handleEntityNotFound(_0x4e1548,null))['then'](removeEntity(_0x4e1548,null))[_0xf132('0x4b')](handleError(_0x4e1548,null));};exports['getConfigurations']=function(_0x875fb0,_0x2fb03f,_0x3ae0cc){var _0x35225d={};var _0x252955={};var _0x8e19de;var _0x416907;return db[_0xf132('0x40')][_0xf132('0x4d')]({'where':{'id':_0x875fb0[_0xf132('0x4e')]['id']}})[_0xf132('0x25')](handleEntityNotFound(_0x2fb03f,null))['then'](function(_0x552ed6){if(_0x552ed6){_0x8e19de=_0x552ed6;_0x252955[_0xf132('0x33')]=_[_0xf132('0x30')](db[_0xf132('0x4f')]['rawAttributes']);_0x252955['query']=_['keys'](_0x875fb0[_0xf132('0x2f')]);_0x252955[_0xf132('0x31')]=_[_0xf132('0x32')](_0x252955['model'],_0x252955[_0xf132('0x2f')]);_0x35225d[_0xf132('0x34')]=_['intersection'](_0x252955[_0xf132('0x33')],qs['fields'](_0x875fb0[_0xf132('0x2f')][_0xf132('0x35')]));_0x35225d[_0xf132('0x34')]=_0x35225d[_0xf132('0x34')]['length']?_0x35225d[_0xf132('0x34')]:_0x252955['model'];_0x35225d['order']=qs[_0xf132('0x39')](_0x875fb0['query'][_0xf132('0x39')]);_0x35225d[_0xf132('0x3a')]=qs['filters'](_[_0xf132('0x3b')](_0x875fb0[_0xf132('0x2f')],_0x252955[_0xf132('0x31')]));if(_0x875fb0[_0xf132('0x2f')][_0xf132('0x3e')]){_0x35225d[_0xf132('0x3a')]=_[_0xf132('0x3f')](_0x35225d['where'],{'$or':_[_0xf132('0x2d')](_0x35225d[_0xf132('0x34')],function(_0x5e4d2a){var _0x16d2b0={};_0x16d2b0[_0x5e4d2a]={'$like':'%'+_0x875fb0[_0xf132('0x2f')]['filter']+'%'};return _0x16d2b0;})});}_0x35225d=_[_0xf132('0x3f')]({},_0x35225d,_0x875fb0[_0xf132('0x48')]);return _0x8e19de[_0xf132('0x50')](_0x35225d);}})[_0xf132('0x25')](function(_0x1c1b99){if(_0x1c1b99){_0x416907=_0x1c1b99[_0xf132('0x46')];if(!_0x875fb0[_0xf132('0x2f')][_0xf132('0x36')](_0xf132('0x37'))){_0x35225d[_0xf132('0x1d')]=qs[_0xf132('0x1d')](_0x875fb0['query'][_0xf132('0x1d')]);_0x35225d[_0xf132('0x20')]=qs[_0xf132('0x20')](_0x875fb0[_0xf132('0x2f')][_0xf132('0x20')]);}return _0x8e19de[_0xf132('0x50')](_0x35225d);}})[_0xf132('0x25')](function(_0x4b6299){if(_0x4b6299){return _0x4b6299?{'count':_0x416907,'rows':_0x4b6299}:null;}})[_0xf132('0x25')](respondWithResult(_0x2fb03f,null))[_0xf132('0x4b')](handleError(_0x2fb03f,null));};exports[_0xf132('0x51')]=function(_0x5845e8,_0x48ce0e,_0x1bbe00){if(_0x5845e8['body']['id']){delete _0x5845e8['body']['id'];}return db[_0xf132('0x40')][_0xf132('0x4d')]({'where':{'id':_0x5845e8[_0xf132('0x4e')]['id']}})['then'](handleEntityNotFound(_0x48ce0e,null))[_0xf132('0x25')](function(_0x3bb827){if(_0x3bb827){_0x5845e8[_0xf132('0x4c')][_0xf132('0x52')]=_0x3bb827['id'];_0x5845e8['body'][_0xf132('0x53')]=integrations[_0xf132('0x54')](_0x5845e8[_0xf132('0x4c')]['channel'],_0x5845e8[_0xf132('0x4c')][_0xf132('0x3c')]);_0x5845e8[_0xf132('0x4c')]['Descriptions']=integrations[_0xf132('0x55')](_0x5845e8['body'][_0xf132('0x56')],_0x5845e8['body']['type']);return db[_0xf132('0x4f')][_0xf132('0x4a')](_0x5845e8[_0xf132('0x4c')],{'include':[{'model':db['FreshdeskField'],'as':_0xf132('0x53')},{'model':db['FreshdeskField'],'as':_0xf132('0x57')}]});}return null;})[_0xf132('0x25')](respondWithResult(_0x48ce0e,null))[_0xf132('0x4b')](handleError(_0x48ce0e,null));};exports['getFields']=function(_0x2ebee4,_0xfb52ab,_0x22f012){var _0x43f7cd='';return db[_0xf132('0x40')]['findOne']({'where':{'id':_0x2ebee4[_0xf132('0x4e')]['id']},'attributes':['id',_0xf132('0x58'),_0xf132('0x59')]})[_0xf132('0x25')](handleEntityNotFound(_0xfb52ab,null))['then'](function(_0x384ee2){if(_0x384ee2){_0x43f7cd=_0x384ee2[_0xf132('0x58')];var _0x25a5c3=_0x43f7cd[_0xf132('0x5a')](-0x1);if(_0x25a5c3==='/'){_0x43f7cd=_0x43f7cd[_0xf132('0x5b')](0x0,_0x43f7cd['lastIndexOf'](_0x25a5c3));}return rp({'method':_0xf132('0x5c'),'uri':util['format']('%s/%s',_0x43f7cd,_0xf132('0x5d')),'headers':{'Authorization':util[_0xf132('0x5e')]('Basic\x20%s',new Buffer(util['format']('%s:X',_0x384ee2[_0xf132('0x59')]))['toString'](_0xf132('0x5f')))},'json':!![]});}})[_0xf132('0x25')](function(_0x46cf60){if(_0x46cf60){var _0x3332bb=[_0xf132('0x60'),'subject',_0xf132('0x61'),_0xf132('0x62'),_0xf132('0x1c'),_0xf132('0x63'),'group',_0xf132('0x64'),'ticket_type',_0xf132('0x65'),_0xf132('0x66')];_['remove'](_0x46cf60,function(_0x1f19de){return _0x3332bb[_0xf132('0x67')](_0x1f19de[_0xf132('0x2a')])||!_0x1f19de['default']&&_0x1f19de[_0xf132('0x3c')]!==_0xf132('0x68')&&_0x1f19de[_0xf132('0x3c')]!==_0xf132('0x69');});return{'count':_0x46cf60[_0xf132('0x46')],'rows':_[_0xf132('0x2d')](_0x46cf60,function(_0x22c45f){return{'id':_0x22c45f[_0xf132('0x2a')],'name':_0x22c45f[_0xf132('0x6a')],'custom':!_0x22c45f[_0xf132('0x6b')],'options':_0x22c45f[_0xf132('0x6c')]?_['map'](_0x22c45f[_0xf132('0x6c')],function(_0x55be29){return{'name':_[_0xf132('0x6d')](_0x55be29),'value':_0x55be29};}):[]};})};}})[_0xf132('0x25')](respondWithResult(_0xfb52ab,null))[_0xf132('0x4b')](function(_0x4ddf29){var _0x5dd2c9=_0x2ebee4['query'][_0xf132('0x6e')]?0x1f4:_0x4ddf29[_0xf132('0x6f')]||0x1f4;logger['error']('getFields,\x20%s,\x20%s,\x20%s','getFields',_0x5dd2c9,JSON[_0xf132('0x70')](_0x4ddf29));delete _0x4ddf29['name'];if(_0x5dd2c9===0x191){_0x5dd2c9=0x190;}_0xfb52ab[_0xf132('0x1c')](_0x5dd2c9)[_0xf132('0x2b')](_0x2ebee4[_0xf132('0x2f')]['test']?{'message':_0xf132('0x71'),'statusCode':_0x4ddf29[_0xf132('0x6f')]}:_0x4ddf29);});};
\ No newline at end of file
+var _0x135b=['rows','catch','params','length','find','create','body','update','getConfigurations','findOne','FreshdeskConfiguration','order','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','FreshdeskField','getFields','apiKey','remoteUri','slice','lastIndexOf','format','%s/%s','Basic\x20%s','%s:X','toString','base64','requester','subject','agent','description','priority','group','source','ticket_type','company','remove','includes','default','custom_text','custom_dropdown','label','choices','capitalize','test','getFields,\x20%s,\x20%s,\x20%s','Wrong\x20credentials','statusCode','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','util','path','sox','lodash','squel','crypto','jsforce','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','end','status','json','offset','limit','undefined','count','set','Content-Range','save','destroy','error','stack','name','send','index','map','FreshdeskAccount','rawAttributes','fieldName','key','model','keys','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','sort','where','pick','merge','type','VIRTUAL','filter','options','then','includeAll','include','findAll'];(function(_0xdbb6cb,_0x3b8fda){var _0x476b50=function(_0x470ebb){while(--_0x470ebb){_0xdbb6cb['push'](_0xdbb6cb['shift']());}};_0x476b50(++_0x3b8fda);}(_0x135b,0xaf));var _0xb135=function(_0x50b233,_0x3a5ed2){_0x50b233=_0x50b233-0x0;var _0x5d8c90=_0x135b[_0x50b233];return _0x5d8c90;};'use strict';var emlformat=require(_0xb135('0x0'));var rimraf=require(_0xb135('0x1'));var zipdir=require(_0xb135('0x2'));var jsonpatch=require(_0xb135('0x3'));var rp=require('request-promise');var moment=require(_0xb135('0x4'));var BPromise=require(_0xb135('0x5'));var Mustache=require('mustache');var util=require(_0xb135('0x6'));var path=require(_0xb135('0x7'));var sox=require(_0xb135('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xb135('0x9'));var squel=require(_0xb135('0xa'));var crypto=require(_0xb135('0xb'));var jsforce=require(_0xb135('0xc'));var deskjs=require('desk.js');var toCsv=require(_0xb135('0xd'));var querystring=require(_0xb135('0xe'));var Papa=require(_0xb135('0xf'));var Redis=require(_0xb135('0x10'));var authService=require(_0xb135('0x11'));var qs=require(_0xb135('0x12'));var as=require(_0xb135('0x13'));var hardwareService=require(_0xb135('0x14'));var logger=require(_0xb135('0x15'))(_0xb135('0x16'));var utils=require(_0xb135('0x17'));var config=require(_0xb135('0x18'));var licenseUtil=require(_0xb135('0x19'));var db=require(_0xb135('0x1a'))['db'];var integrations=require(_0xb135('0x1b'));function respondWithStatusCode(_0x11c6df,_0x13b157){_0x13b157=_0x13b157||0xcc;return function(_0x461089){if(_0x461089){return _0x11c6df[_0xb135('0x1c')](_0x13b157);}return _0x11c6df['status'](_0x13b157)[_0xb135('0x1d')]();};}function respondWithResult(_0x4de39a,_0x10770e){_0x10770e=_0x10770e||0xc8;return function(_0xd1f2f1){if(_0xd1f2f1){return _0x4de39a[_0xb135('0x1e')](_0x10770e)[_0xb135('0x1f')](_0xd1f2f1);}};}function respondWithFilteredResult(_0x37f3f2,_0x28b9d3){return function(_0x385704){if(_0x385704){var _0x35950d=typeof _0x28b9d3[_0xb135('0x20')]==='undefined'&&typeof _0x28b9d3[_0xb135('0x21')]===_0xb135('0x22');var _0x45c4ae=_0x385704['count'];var _0x5d9010=_0x35950d?0x0:_0x28b9d3[_0xb135('0x20')];var _0x47d9ef=_0x35950d?_0x385704[_0xb135('0x23')]:_0x28b9d3[_0xb135('0x20')]+_0x28b9d3[_0xb135('0x21')];var _0x33bcea;if(_0x47d9ef>=_0x45c4ae){_0x47d9ef=_0x45c4ae;_0x33bcea=0xc8;}else{_0x33bcea=0xce;}_0x37f3f2[_0xb135('0x1e')](_0x33bcea);return _0x37f3f2[_0xb135('0x24')](_0xb135('0x25'),_0x5d9010+'-'+_0x47d9ef+'/'+_0x45c4ae)[_0xb135('0x1f')](_0x385704);}return null;};}function patchUpdates(_0x24f559){return function(_0x42c960){try{jsonpatch['apply'](_0x42c960,_0x24f559,!![]);}catch(_0x180e20){return BPromise['reject'](_0x180e20);}return _0x42c960[_0xb135('0x26')]();};}function saveUpdates(_0x479372,_0x36b7a4){return function(_0x5017a1){if(_0x5017a1){return _0x5017a1['update'](_0x479372)['then'](function(_0x564583){return _0x564583;});}return null;};}function removeEntity(_0x5ba018,_0x47e22f){return function(_0x489fb9){if(_0x489fb9){return _0x489fb9[_0xb135('0x27')]()['then'](function(){_0x5ba018[_0xb135('0x1e')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5eea9e,_0x3dd506){return function(_0x502f84){if(!_0x502f84){_0x5eea9e['sendStatus'](0x194);}return _0x502f84;};}function handleError(_0x5c7335,_0x5cacb2){_0x5cacb2=_0x5cacb2||0x1f4;return function(_0x35cd29){logger[_0xb135('0x28')](_0x35cd29[_0xb135('0x29')]);if(_0x35cd29[_0xb135('0x2a')]){delete _0x35cd29[_0xb135('0x2a')];}_0x5c7335[_0xb135('0x1e')](_0x5cacb2)[_0xb135('0x2b')](_0x35cd29);};}exports[_0xb135('0x2c')]=function(_0x3426eb,_0x565e84){var _0x5c8de4={},_0x16f4f6={},_0x1aa887={'count':0x0,'rows':[]};var _0x380da7=_[_0xb135('0x2d')](db[_0xb135('0x2e')][_0xb135('0x2f')],function(_0x2d521c){return{'name':_0x2d521c[_0xb135('0x30')],'type':_0x2d521c['type'][_0xb135('0x31')]};});_0x16f4f6[_0xb135('0x32')]=_[_0xb135('0x2d')](_0x380da7,'name');_0x16f4f6['query']=_[_0xb135('0x33')](_0x3426eb[_0xb135('0x34')]);_0x16f4f6[_0xb135('0x35')]=_[_0xb135('0x36')](_0x16f4f6['model'],_0x16f4f6[_0xb135('0x34')]);_0x5c8de4[_0xb135('0x37')]=_[_0xb135('0x36')](_0x16f4f6[_0xb135('0x32')],qs['fields'](_0x3426eb[_0xb135('0x34')][_0xb135('0x38')]));_0x5c8de4[_0xb135('0x37')]=_0x5c8de4[_0xb135('0x37')]['length']?_0x5c8de4['attributes']:_0x16f4f6[_0xb135('0x32')];if(!_0x3426eb[_0xb135('0x34')][_0xb135('0x39')](_0xb135('0x3a'))){_0x5c8de4[_0xb135('0x21')]=qs[_0xb135('0x21')](_0x3426eb[_0xb135('0x34')][_0xb135('0x21')]);_0x5c8de4['offset']=qs['offset'](_0x3426eb[_0xb135('0x34')][_0xb135('0x20')]);}_0x5c8de4['order']=qs[_0xb135('0x3b')](_0x3426eb[_0xb135('0x34')]['sort']);_0x5c8de4[_0xb135('0x3c')]=qs[_0xb135('0x35')](_[_0xb135('0x3d')](_0x3426eb[_0xb135('0x34')],_0x16f4f6[_0xb135('0x35')]),_0x380da7);if(_0x3426eb[_0xb135('0x34')]['filter']){_0x5c8de4['where']=_[_0xb135('0x3e')](_0x5c8de4[_0xb135('0x3c')],{'$or':_[_0xb135('0x2d')](_0x380da7,function(_0x1dafe9){if(_0x1dafe9[_0xb135('0x3f')]!==_0xb135('0x40')){var _0x305f8d={};_0x305f8d[_0x1dafe9[_0xb135('0x2a')]]={'$like':'%'+_0x3426eb['query'][_0xb135('0x41')]+'%'};return _0x305f8d;}})});}_0x5c8de4=_['merge']({},_0x5c8de4,_0x3426eb[_0xb135('0x42')]);var _0x32f7d8={'where':_0x5c8de4[_0xb135('0x3c')]};return db[_0xb135('0x2e')][_0xb135('0x23')](_0x32f7d8)[_0xb135('0x43')](function(_0x5e8f02){_0x1aa887[_0xb135('0x23')]=_0x5e8f02;if(_0x3426eb[_0xb135('0x34')][_0xb135('0x44')]){_0x5c8de4[_0xb135('0x45')]=[{'all':!![]}];}return db[_0xb135('0x2e')][_0xb135('0x46')](_0x5c8de4);})[_0xb135('0x43')](function(_0x2eef22){_0x1aa887[_0xb135('0x47')]=_0x2eef22;return _0x1aa887;})['then'](respondWithFilteredResult(_0x565e84,_0x5c8de4))[_0xb135('0x48')](handleError(_0x565e84,null));};exports['show']=function(_0x1a9fa5,_0x45e711){var _0x322040={'raw':![],'where':{'id':_0x1a9fa5[_0xb135('0x49')]['id']}},_0x5cdb57={};_0x5cdb57[_0xb135('0x32')]=_['keys'](db[_0xb135('0x2e')][_0xb135('0x2f')]);_0x5cdb57[_0xb135('0x34')]=_['keys'](_0x1a9fa5['query']);_0x5cdb57['filters']=_[_0xb135('0x36')](_0x5cdb57[_0xb135('0x32')],_0x5cdb57[_0xb135('0x34')]);_0x322040[_0xb135('0x37')]=_[_0xb135('0x36')](_0x5cdb57[_0xb135('0x32')],qs[_0xb135('0x38')](_0x1a9fa5[_0xb135('0x34')]['fields']));_0x322040[_0xb135('0x37')]=_0x322040[_0xb135('0x37')][_0xb135('0x4a')]?_0x322040[_0xb135('0x37')]:_0x5cdb57['model'];if(_0x1a9fa5[_0xb135('0x34')][_0xb135('0x44')]){_0x322040['include']=[{'all':!![]}];}_0x322040=_['merge']({},_0x322040,_0x1a9fa5[_0xb135('0x42')]);return db[_0xb135('0x2e')][_0xb135('0x4b')](_0x322040)[_0xb135('0x43')](handleEntityNotFound(_0x45e711,null))[_0xb135('0x43')](respondWithResult(_0x45e711,null))[_0xb135('0x48')](handleError(_0x45e711,null));};exports[_0xb135('0x4c')]=function(_0x21839a,_0x42d07b){return db[_0xb135('0x2e')][_0xb135('0x4c')](_0x21839a[_0xb135('0x4d')],{})[_0xb135('0x43')](respondWithResult(_0x42d07b,0xc9))[_0xb135('0x48')](handleError(_0x42d07b,null));};exports[_0xb135('0x4e')]=function(_0x400088,_0x3f85f2){if(_0x400088[_0xb135('0x4d')]['id']){delete _0x400088[_0xb135('0x4d')]['id'];}return db[_0xb135('0x2e')][_0xb135('0x4b')]({'where':{'id':_0x400088[_0xb135('0x49')]['id']}})['then'](handleEntityNotFound(_0x3f85f2,null))[_0xb135('0x43')](saveUpdates(_0x400088[_0xb135('0x4d')],null))[_0xb135('0x43')](respondWithResult(_0x3f85f2,null))['catch'](handleError(_0x3f85f2,null));};exports['destroy']=function(_0xc10bef,_0x3d422e){return db['FreshdeskAccount'][_0xb135('0x4b')]({'where':{'id':_0xc10bef[_0xb135('0x49')]['id']}})[_0xb135('0x43')](handleEntityNotFound(_0x3d422e,null))[_0xb135('0x43')](removeEntity(_0x3d422e,null))[_0xb135('0x48')](handleError(_0x3d422e,null));};exports[_0xb135('0x4f')]=function(_0x273f91,_0x4bf23e,_0x2088f1){var _0x130db4={};var _0x2aa05d={};var _0xf54761;var _0x58bd1c;return db[_0xb135('0x2e')][_0xb135('0x50')]({'where':{'id':_0x273f91[_0xb135('0x49')]['id']}})[_0xb135('0x43')](handleEntityNotFound(_0x4bf23e,null))[_0xb135('0x43')](function(_0x2a3604){if(_0x2a3604){_0xf54761=_0x2a3604;_0x2aa05d[_0xb135('0x32')]=_['keys'](db[_0xb135('0x51')][_0xb135('0x2f')]);_0x2aa05d[_0xb135('0x34')]=_[_0xb135('0x33')](_0x273f91[_0xb135('0x34')]);_0x2aa05d[_0xb135('0x35')]=_[_0xb135('0x36')](_0x2aa05d[_0xb135('0x32')],_0x2aa05d[_0xb135('0x34')]);_0x130db4[_0xb135('0x37')]=_[_0xb135('0x36')](_0x2aa05d[_0xb135('0x32')],qs[_0xb135('0x38')](_0x273f91[_0xb135('0x34')][_0xb135('0x38')]));_0x130db4[_0xb135('0x37')]=_0x130db4[_0xb135('0x37')]['length']?_0x130db4['attributes']:_0x2aa05d[_0xb135('0x32')];_0x130db4[_0xb135('0x52')]=qs[_0xb135('0x3b')](_0x273f91[_0xb135('0x34')]['sort']);_0x130db4[_0xb135('0x3c')]=qs[_0xb135('0x35')](_[_0xb135('0x3d')](_0x273f91[_0xb135('0x34')],_0x2aa05d[_0xb135('0x35')]));if(_0x273f91['query'][_0xb135('0x41')]){_0x130db4[_0xb135('0x3c')]=_[_0xb135('0x3e')](_0x130db4[_0xb135('0x3c')],{'$or':_[_0xb135('0x2d')](_0x130db4['attributes'],function(_0x31f78b){var _0x468058={};_0x468058[_0x31f78b]={'$like':'%'+_0x273f91[_0xb135('0x34')][_0xb135('0x41')]+'%'};return _0x468058;})});}_0x130db4=_[_0xb135('0x3e')]({},_0x130db4,_0x273f91[_0xb135('0x42')]);return _0xf54761[_0xb135('0x4f')](_0x130db4);}})[_0xb135('0x43')](function(_0x48ab61){if(_0x48ab61){_0x58bd1c=_0x48ab61[_0xb135('0x4a')];if(!_0x273f91[_0xb135('0x34')][_0xb135('0x39')](_0xb135('0x3a'))){_0x130db4[_0xb135('0x21')]=qs['limit'](_0x273f91[_0xb135('0x34')][_0xb135('0x21')]);_0x130db4[_0xb135('0x20')]=qs[_0xb135('0x20')](_0x273f91[_0xb135('0x34')]['offset']);}return _0xf54761[_0xb135('0x4f')](_0x130db4);}})['then'](function(_0x459c18){if(_0x459c18){return _0x459c18?{'count':_0x58bd1c,'rows':_0x459c18}:null;}})[_0xb135('0x43')](respondWithResult(_0x4bf23e,null))[_0xb135('0x48')](handleError(_0x4bf23e,null));};exports[_0xb135('0x53')]=function(_0xc11a5c,_0x55b5e4,_0x8aa744){if(_0xc11a5c[_0xb135('0x4d')]['id']){delete _0xc11a5c[_0xb135('0x4d')]['id'];}return db[_0xb135('0x2e')][_0xb135('0x50')]({'where':{'id':_0xc11a5c['params']['id']}})[_0xb135('0x43')](handleEntityNotFound(_0x55b5e4,null))[_0xb135('0x43')](function(_0x51d00b){if(_0x51d00b){_0xc11a5c[_0xb135('0x4d')][_0xb135('0x54')]=_0x51d00b['id'];_0xc11a5c[_0xb135('0x4d')][_0xb135('0x55')]=integrations[_0xb135('0x56')](_0xc11a5c[_0xb135('0x4d')][_0xb135('0x57')],_0xc11a5c[_0xb135('0x4d')]['type']);_0xc11a5c[_0xb135('0x4d')][_0xb135('0x58')]=integrations[_0xb135('0x59')](_0xc11a5c['body'][_0xb135('0x57')],_0xc11a5c[_0xb135('0x4d')][_0xb135('0x3f')]);return db[_0xb135('0x51')][_0xb135('0x4c')](_0xc11a5c[_0xb135('0x4d')],{'include':[{'model':db[_0xb135('0x5a')],'as':_0xb135('0x55')},{'model':db[_0xb135('0x5a')],'as':_0xb135('0x58')}]});}return null;})[_0xb135('0x43')](respondWithResult(_0x55b5e4,null))[_0xb135('0x48')](handleError(_0x55b5e4,null));};exports[_0xb135('0x5b')]=function(_0x35ef7b,_0x649abf,_0x286124){var _0x5e0885='';return db[_0xb135('0x2e')][_0xb135('0x50')]({'where':{'id':_0x35ef7b[_0xb135('0x49')]['id']},'attributes':['id','remoteUri',_0xb135('0x5c')]})[_0xb135('0x43')](handleEntityNotFound(_0x649abf,null))[_0xb135('0x43')](function(_0x482f69){if(_0x482f69){_0x5e0885=_0x482f69[_0xb135('0x5d')];var _0x1f78ab=_0x5e0885[_0xb135('0x5e')](-0x1);if(_0x1f78ab==='/'){_0x5e0885=_0x5e0885['substring'](0x0,_0x5e0885[_0xb135('0x5f')](_0x1f78ab));}return rp({'method':'GET','uri':util[_0xb135('0x60')](_0xb135('0x61'),_0x5e0885,'api/v2/ticket_fields'),'headers':{'Authorization':util[_0xb135('0x60')](_0xb135('0x62'),new Buffer(util[_0xb135('0x60')](_0xb135('0x63'),_0x482f69['apiKey']))[_0xb135('0x64')](_0xb135('0x65')))},'json':!![]});}})[_0xb135('0x43')](function(_0x583b53){if(_0x583b53){var _0x5a495d=[_0xb135('0x66'),_0xb135('0x67'),_0xb135('0x68'),_0xb135('0x69'),_0xb135('0x1e'),_0xb135('0x6a'),_0xb135('0x6b'),_0xb135('0x6c'),_0xb135('0x6d'),_0xb135('0x6b'),_0xb135('0x6e')];_[_0xb135('0x6f')](_0x583b53,function(_0x1bc1f3){return _0x5a495d[_0xb135('0x70')](_0x1bc1f3[_0xb135('0x2a')])||!_0x1bc1f3[_0xb135('0x71')]&&_0x1bc1f3['type']!==_0xb135('0x72')&&_0x1bc1f3[_0xb135('0x3f')]!==_0xb135('0x73');});return{'count':_0x583b53[_0xb135('0x4a')],'rows':_[_0xb135('0x2d')](_0x583b53,function(_0xcd701d){return{'id':_0xcd701d[_0xb135('0x2a')],'name':_0xcd701d[_0xb135('0x74')],'custom':!_0xcd701d['default'],'options':_0xcd701d[_0xb135('0x75')]?_[_0xb135('0x2d')](_0xcd701d[_0xb135('0x75')],function(_0x5e9e12){return{'name':_[_0xb135('0x76')](_0x5e9e12),'value':_0x5e9e12};}):[]};})};}})[_0xb135('0x43')](respondWithResult(_0x649abf,null))['catch'](function(_0x10c07b){var _0x5d4228=_0x35ef7b[_0xb135('0x34')][_0xb135('0x77')]?0x1f4:_0x10c07b['statusCode']||0x1f4;logger[_0xb135('0x28')](_0xb135('0x78'),_0xb135('0x5b'),_0x5d4228,JSON['stringify'](_0x10c07b));delete _0x10c07b['name'];if(_0x5d4228===0x191){_0x5d4228=0x190;}_0x649abf[_0xb135('0x1e')](_0x5d4228)[_0xb135('0x2b')](_0x35ef7b[_0xb135('0x34')][_0xb135('0x77')]?{'message':_0xb135('0x79'),'statusCode':_0x10c07b[_0xb135('0x7a')]}:_0x10c07b);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0711=['api','moment','request-promise','path','../../config/environment','./intFreshdeskAccount.attributes','../../components/integrations/configuration','exports','define','FreshdeskAccount','util','../../config/logger'];(function(_0x4633f9,_0x91b9a9){var _0x2404ee=function(_0xd8347e){while(--_0xd8347e){_0x4633f9['push'](_0x4633f9['shift']());}};_0x2404ee(++_0x91b9a9);}(_0x0711,0x1d2));var _0x1071=function(_0x1dbd6d,_0x2a4aa7){_0x1dbd6d=_0x1dbd6d-0x0;var _0x265283=_0x0711[_0x1dbd6d];return _0x265283;};'use strict';var _=require('lodash');var util=require(_0x1071('0x0'));var logger=require(_0x1071('0x1'))(_0x1071('0x2'));var moment=require(_0x1071('0x3'));var BPromise=require('bluebird');var rp=require(_0x1071('0x4'));var fs=require('fs');var path=require(_0x1071('0x5'));var rimraf=require('rimraf');var config=require(_0x1071('0x6'));var attributes=require(_0x1071('0x7'));var integrations=require(_0x1071('0x8'));module[_0x1071('0x9')]=function(_0x240408,_0x270c56){return _0x240408[_0x1071('0xa')](_0x1071('0xb'),attributes,{'tableName':'int_freshdesk_accounts','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xbef2=['define','lodash','util','../../config/logger','api','moment','bluebird','rimraf','../../config/environment','./intFreshdeskAccount.attributes','../../components/integrations/configuration','exports'];(function(_0xa1e073,_0x171090){var _0x2acf10=function(_0x4bca57){while(--_0x4bca57){_0xa1e073['push'](_0xa1e073['shift']());}};_0x2acf10(++_0x171090);}(_0xbef2,0x15d));var _0x2bef=function(_0xd23345,_0x129ff7){_0xd23345=_0xd23345-0x0;var _0x1f4c7a=_0xbef2[_0xd23345];return _0x1f4c7a;};'use strict';var _=require(_0x2bef('0x0'));var util=require(_0x2bef('0x1'));var logger=require(_0x2bef('0x2'))(_0x2bef('0x3'));var moment=require(_0x2bef('0x4'));var BPromise=require(_0x2bef('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0x2bef('0x6'));var config=require(_0x2bef('0x7'));var attributes=require(_0x2bef('0x8'));var integrations=require(_0x2bef('0x9'));module[_0x2bef('0xa')]=function(_0x79d04,_0xf074b5){return _0x79d04[_0x2bef('0xb')]('FreshdeskAccount',attributes,{'tableName':'int_freshdesk_accounts','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdd66=['catch','GetFreshdeskAccount','FreshdeskAccount','options','raw','limit','map','include','model','attributes','ShowFreshdeskAccount','find','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','http','request','then','info','debug','FreshdeskAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','FreshdeskAccount,\x20%s,\x20%s','message'];(function(_0x341e0f,_0x4a09d0){var _0x59555a=function(_0x4343a8){while(--_0x4343a8){_0x341e0f['push'](_0x341e0f['shift']());}};_0x59555a(++_0x4a09d0);}(_0xdd66,0x1b0));var _0x6dd6=function(_0x5071fe,_0x2e1062){_0x5071fe=_0x5071fe-0x0;var _0x26b319=_0xdd66[_0x5071fe];return _0x26b319;};'use strict';var _=require(_0x6dd6('0x0'));var util=require(_0x6dd6('0x1'));var moment=require(_0x6dd6('0x2'));var BPromise=require(_0x6dd6('0x3'));var rs=require(_0x6dd6('0x4'));var fs=require('fs');var Redis=require(_0x6dd6('0x5'));var db=require(_0x6dd6('0x6'))['db'];var utils=require(_0x6dd6('0x7'));var logger=require(_0x6dd6('0x8'))(_0x6dd6('0x9'));var config=require(_0x6dd6('0xa'));var jayson=require('jayson/promise');var client=jayson['client'][_0x6dd6('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x5645ed,_0x50f5ce,_0x4aa38f){return new BPromise(function(_0x45729d,_0x182174){return client[_0x6dd6('0xc')](_0x5645ed,_0x4aa38f)[_0x6dd6('0xd')](function(_0x4da16b){logger[_0x6dd6('0xe')]('FreshdeskAccount,\x20%s,\x20%s',_0x50f5ce,'request\x20sent');logger[_0x6dd6('0xf')](_0x6dd6('0x10'),_0x50f5ce,_0x6dd6('0x11'),JSON[_0x6dd6('0x12')](_0x4da16b));if(_0x4da16b[_0x6dd6('0x13')]){if(_0x4da16b['error'][_0x6dd6('0x14')]===0x1f4){logger[_0x6dd6('0x13')](_0x6dd6('0x15'),_0x50f5ce,_0x4da16b[_0x6dd6('0x13')][_0x6dd6('0x16')]);return _0x182174(_0x4da16b['error'][_0x6dd6('0x16')]);}logger[_0x6dd6('0x13')]('FreshdeskAccount,\x20%s,\x20%s',_0x50f5ce,_0x4da16b[_0x6dd6('0x13')]['message']);return _0x45729d(_0x4da16b[_0x6dd6('0x13')][_0x6dd6('0x16')]);}else{logger['info'](_0x6dd6('0x15'),_0x50f5ce,_0x6dd6('0x11'));_0x45729d(_0x4da16b['result'][_0x6dd6('0x16')]);}})[_0x6dd6('0x17')](function(_0x167e40){logger['error'](_0x6dd6('0x15'),_0x50f5ce,_0x167e40);_0x182174(_0x167e40);});});}exports[_0x6dd6('0x18')]=function(_0x6e6e24){var _0x168076=this;return new Promise(function(_0x478136,_0x2df9c2){return db[_0x6dd6('0x19')]['findAll']({'raw':_0x6e6e24[_0x6dd6('0x1a')]?_0x6e6e24[_0x6dd6('0x1a')][_0x6dd6('0x1b')]===undefined?!![]:![]:!![],'where':_0x6e6e24[_0x6dd6('0x1a')]?_0x6e6e24[_0x6dd6('0x1a')]['where']||null:null,'attributes':_0x6e6e24[_0x6dd6('0x1a')]?_0x6e6e24[_0x6dd6('0x1a')]['attributes']||null:null,'limit':_0x6e6e24['options']?_0x6e6e24[_0x6dd6('0x1a')][_0x6dd6('0x1c')]||null:null,'include':_0x6e6e24[_0x6dd6('0x1a')]?_0x6e6e24[_0x6dd6('0x1a')]['include']?_[_0x6dd6('0x1d')](_0x6e6e24['options'][_0x6dd6('0x1e')],function(_0x503ba7){return{'model':db[_0x503ba7[_0x6dd6('0x1f')]],'as':_0x503ba7['as'],'attributes':_0x503ba7['attributes'],'include':_0x503ba7[_0x6dd6('0x1e')]?_[_0x6dd6('0x1d')](_0x503ba7['include'],function(_0x59da34){return{'model':db[_0x59da34[_0x6dd6('0x1f')]],'as':_0x59da34['as'],'attributes':_0x59da34[_0x6dd6('0x20')],'include':_0x59da34[_0x6dd6('0x1e')]?_[_0x6dd6('0x1d')](_0x59da34['include'],function(_0xfc3a26){return{'model':db[_0xfc3a26[_0x6dd6('0x1f')]],'as':_0xfc3a26['as'],'attributes':_0xfc3a26[_0x6dd6('0x20')]};}):[]};}):[]};}):[]:[]})[_0x6dd6('0xd')](function(_0x11e6bf){logger[_0x6dd6('0xe')](_0x6dd6('0x18'),_0x6e6e24);logger[_0x6dd6('0xf')]('GetFreshdeskAccount',_0x6e6e24,JSON[_0x6dd6('0x12')](_0x11e6bf));_0x478136(_0x11e6bf);})[_0x6dd6('0x17')](function(_0x80159a){logger[_0x6dd6('0x13')](_0x6dd6('0x18'),_0x80159a[_0x6dd6('0x16')],_0x6e6e24);_0x2df9c2(_0x168076[_0x6dd6('0x13')](0x1f4,_0x80159a[_0x6dd6('0x16')]));});});};exports[_0x6dd6('0x21')]=function(_0x4bca20){var _0x4588f0=this;return new Promise(function(_0x42334f,_0x35b922){return db[_0x6dd6('0x19')][_0x6dd6('0x22')]({'raw':_0x4bca20[_0x6dd6('0x1a')]?_0x4bca20[_0x6dd6('0x1a')][_0x6dd6('0x1b')]===undefined?!![]:![]:!![],'where':_0x4bca20['options']?_0x4bca20[_0x6dd6('0x1a')]['where']||null:null,'attributes':_0x4bca20[_0x6dd6('0x1a')]?_0x4bca20['options']['attributes']||null:null,'include':_0x4bca20[_0x6dd6('0x1a')]?_0x4bca20['options']['include']?_['map'](_0x4bca20[_0x6dd6('0x1a')][_0x6dd6('0x1e')],function(_0x302db9){return{'model':db[_0x302db9[_0x6dd6('0x1f')]],'as':_0x302db9['as'],'attributes':_0x302db9[_0x6dd6('0x20')],'include':_0x302db9[_0x6dd6('0x1e')]?_[_0x6dd6('0x1d')](_0x302db9[_0x6dd6('0x1e')],function(_0x579036){return{'model':db[_0x579036['model']],'as':_0x579036['as'],'attributes':_0x579036[_0x6dd6('0x20')],'include':_0x579036[_0x6dd6('0x1e')]?_['map'](_0x579036[_0x6dd6('0x1e')],function(_0x1becbe){return{'model':db[_0x1becbe[_0x6dd6('0x1f')]],'as':_0x1becbe['as'],'attributes':_0x1becbe[_0x6dd6('0x20')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x2fad6d){logger[_0x6dd6('0xe')]('ShowFreshdeskAccount',_0x4bca20);logger[_0x6dd6('0xf')](_0x6dd6('0x21'),_0x4bca20,JSON['stringify'](_0x2fad6d));_0x42334f(_0x2fad6d);})[_0x6dd6('0x17')](function(_0x47d70c){logger['error'](_0x6dd6('0x21'),_0x47d70c[_0x6dd6('0x16')],_0x4bca20);_0x35b922(_0x4588f0['error'](0x1f4,_0x47d70c['message']));});});};
\ No newline at end of file
+var _0x1f17=['options','raw','where','attributes','limit','include','map','model','then','find','ShowFreshdeskAccount','lodash','moment','bluebird','randomstring','../../mysqldb','../../config/utils','rpc','jayson/promise','request','info','FreshdeskAccount,\x20%s,\x20%s','request\x20sent','debug','FreshdeskAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','GetFreshdeskAccount','FreshdeskAccount','findAll'];(function(_0x2335ae,_0x1c53d5){var _0x34d016=function(_0x1e80ca){while(--_0x1e80ca){_0x2335ae['push'](_0x2335ae['shift']());}};_0x34d016(++_0x1c53d5);}(_0x1f17,0x71));var _0x71f1=function(_0x32f8a2,_0x49c502){_0x32f8a2=_0x32f8a2-0x0;var _0x258cca=_0x1f17[_0x32f8a2];return _0x258cca;};'use strict';var _=require(_0x71f1('0x0'));var util=require('util');var moment=require(_0x71f1('0x1'));var BPromise=require(_0x71f1('0x2'));var rs=require(_0x71f1('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x71f1('0x4'))['db'];var utils=require(_0x71f1('0x5'));var logger=require('../../config/logger')(_0x71f1('0x6'));var config=require('../../config/environment');var jayson=require(_0x71f1('0x7'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x3b6fdf,_0x5bf075,_0x3cee94){return new BPromise(function(_0x1d1a46,_0x36b36e){return client[_0x71f1('0x8')](_0x3b6fdf,_0x3cee94)['then'](function(_0x4d6eac){logger[_0x71f1('0x9')](_0x71f1('0xa'),_0x5bf075,_0x71f1('0xb'));logger[_0x71f1('0xc')](_0x71f1('0xd'),_0x5bf075,'request\x20sent',JSON[_0x71f1('0xe')](_0x4d6eac));if(_0x4d6eac[_0x71f1('0xf')]){if(_0x4d6eac[_0x71f1('0xf')][_0x71f1('0x10')]===0x1f4){logger[_0x71f1('0xf')](_0x71f1('0xa'),_0x5bf075,_0x4d6eac[_0x71f1('0xf')][_0x71f1('0x11')]);return _0x36b36e(_0x4d6eac['error'][_0x71f1('0x11')]);}logger[_0x71f1('0xf')]('FreshdeskAccount,\x20%s,\x20%s',_0x5bf075,_0x4d6eac[_0x71f1('0xf')][_0x71f1('0x11')]);return _0x1d1a46(_0x4d6eac[_0x71f1('0xf')][_0x71f1('0x11')]);}else{logger['info']('FreshdeskAccount,\x20%s,\x20%s',_0x5bf075,_0x71f1('0xb'));_0x1d1a46(_0x4d6eac[_0x71f1('0x12')][_0x71f1('0x11')]);}})[_0x71f1('0x13')](function(_0x19fcff){logger['error']('FreshdeskAccount,\x20%s,\x20%s',_0x5bf075,_0x19fcff);_0x36b36e(_0x19fcff);});});}exports[_0x71f1('0x14')]=function(_0x5e49fc){var _0x43f04a=this;return new Promise(function(_0x44ee79,_0xa8211a){return db[_0x71f1('0x15')][_0x71f1('0x16')]({'raw':_0x5e49fc['options']?_0x5e49fc[_0x71f1('0x17')][_0x71f1('0x18')]===undefined?!![]:![]:!![],'where':_0x5e49fc[_0x71f1('0x17')]?_0x5e49fc[_0x71f1('0x17')][_0x71f1('0x19')]||null:null,'attributes':_0x5e49fc[_0x71f1('0x17')]?_0x5e49fc[_0x71f1('0x17')][_0x71f1('0x1a')]||null:null,'limit':_0x5e49fc[_0x71f1('0x17')]?_0x5e49fc[_0x71f1('0x17')][_0x71f1('0x1b')]||null:null,'include':_0x5e49fc[_0x71f1('0x17')]?_0x5e49fc[_0x71f1('0x17')][_0x71f1('0x1c')]?_[_0x71f1('0x1d')](_0x5e49fc[_0x71f1('0x17')][_0x71f1('0x1c')],function(_0x5116c4){return{'model':db[_0x5116c4[_0x71f1('0x1e')]],'as':_0x5116c4['as'],'attributes':_0x5116c4[_0x71f1('0x1a')],'include':_0x5116c4[_0x71f1('0x1c')]?_[_0x71f1('0x1d')](_0x5116c4[_0x71f1('0x1c')],function(_0x419b8a){return{'model':db[_0x419b8a[_0x71f1('0x1e')]],'as':_0x419b8a['as'],'attributes':_0x419b8a[_0x71f1('0x1a')],'include':_0x419b8a[_0x71f1('0x1c')]?_[_0x71f1('0x1d')](_0x419b8a[_0x71f1('0x1c')],function(_0xc493ba){return{'model':db[_0xc493ba[_0x71f1('0x1e')]],'as':_0xc493ba['as'],'attributes':_0xc493ba[_0x71f1('0x1a')]};}):[]};}):[]};}):[]:[]})[_0x71f1('0x1f')](function(_0x2909fe){logger[_0x71f1('0x9')]('GetFreshdeskAccount',_0x5e49fc);logger[_0x71f1('0xc')](_0x71f1('0x14'),_0x5e49fc,JSON[_0x71f1('0xe')](_0x2909fe));_0x44ee79(_0x2909fe);})[_0x71f1('0x13')](function(_0x4287bd){logger[_0x71f1('0xf')]('GetFreshdeskAccount',_0x4287bd['message'],_0x5e49fc);_0xa8211a(_0x43f04a[_0x71f1('0xf')](0x1f4,_0x4287bd['message']));});});};exports['ShowFreshdeskAccount']=function(_0x22f1ee){var _0x2868fc=this;return new Promise(function(_0x55c678,_0x11bc6b){return db[_0x71f1('0x15')][_0x71f1('0x20')]({'raw':_0x22f1ee[_0x71f1('0x17')]?_0x22f1ee[_0x71f1('0x17')][_0x71f1('0x18')]===undefined?!![]:![]:!![],'where':_0x22f1ee[_0x71f1('0x17')]?_0x22f1ee[_0x71f1('0x17')][_0x71f1('0x19')]||null:null,'attributes':_0x22f1ee['options']?_0x22f1ee['options'][_0x71f1('0x1a')]||null:null,'include':_0x22f1ee[_0x71f1('0x17')]?_0x22f1ee[_0x71f1('0x17')][_0x71f1('0x1c')]?_[_0x71f1('0x1d')](_0x22f1ee['options']['include'],function(_0x4e745f){return{'model':db[_0x4e745f[_0x71f1('0x1e')]],'as':_0x4e745f['as'],'attributes':_0x4e745f[_0x71f1('0x1a')],'include':_0x4e745f[_0x71f1('0x1c')]?_[_0x71f1('0x1d')](_0x4e745f['include'],function(_0x12febd){return{'model':db[_0x12febd['model']],'as':_0x12febd['as'],'attributes':_0x12febd[_0x71f1('0x1a')],'include':_0x12febd[_0x71f1('0x1c')]?_['map'](_0x12febd['include'],function(_0x525c23){return{'model':db[_0x525c23[_0x71f1('0x1e')]],'as':_0x525c23['as'],'attributes':_0x525c23['attributes']};}):[]};}):[]};}):[]:[]})[_0x71f1('0x1f')](function(_0x2bb0ee){logger['info']('ShowFreshdeskAccount',_0x22f1ee);logger[_0x71f1('0xc')](_0x71f1('0x21'),_0x22f1ee,JSON['stringify'](_0x2bb0ee));_0x55c678(_0x2bb0ee);})[_0x71f1('0x13')](function(_0x2a44a5){logger[_0x71f1('0xf')]('ShowFreshdeskAccount',_0x2a44a5[_0x71f1('0x11')],_0x22f1ee);_0x11bc6b(_0x2868fc[_0x71f1('0xf')](0x1f4,_0x2a44a5['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xab44=['destroy','connect-timeout','express','Router','../../components/interaction/service','./intFreshdeskConfiguration.controller','get','isAuthenticated','index','/:id','/:id/fields','getFields','/:id/subjects','getSubjects','/:id/tags','getTags','post','setTags','put','update'];(function(_0x5a5b55,_0x36a930){var _0xaa2fa0=function(_0x5775e4){while(--_0x5775e4){_0x5a5b55['push'](_0x5a5b55['shift']());}};_0xaa2fa0(++_0x36a930);}(_0xab44,0x169));var _0x4ab4=function(_0x468e64,_0x5d378c){_0x468e64=_0x468e64-0x0;var _0x262948=_0xab44[_0x468e64];return _0x262948;};'use strict';var multer=require('multer');var util=require('util');var path=require('path');var timeout=require(_0x4ab4('0x0'));var express=require(_0x4ab4('0x1'));var router=express[_0x4ab4('0x2')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0x4ab4('0x3'));var config=require('../../config/environment');var controller=require(_0x4ab4('0x4'));router[_0x4ab4('0x5')]('/',auth[_0x4ab4('0x6')](),controller[_0x4ab4('0x7')]);router[_0x4ab4('0x5')](_0x4ab4('0x8'),auth[_0x4ab4('0x6')](),controller['show']);router[_0x4ab4('0x5')](_0x4ab4('0x9'),auth[_0x4ab4('0x6')](),controller[_0x4ab4('0xa')]);router[_0x4ab4('0x5')](_0x4ab4('0xb'),auth['isAuthenticated'](),controller[_0x4ab4('0xc')]);router[_0x4ab4('0x5')]('/:id/descriptions',auth[_0x4ab4('0x6')](),controller['getDescriptions']);router[_0x4ab4('0x5')](_0x4ab4('0xd'),auth[_0x4ab4('0x6')](),controller[_0x4ab4('0xe')]);router['post']('/',auth[_0x4ab4('0x6')](),controller['create']);router[_0x4ab4('0xf')]('/:id/tags',auth[_0x4ab4('0x6')](),controller[_0x4ab4('0x10')]);router[_0x4ab4('0x11')]('/:id',auth[_0x4ab4('0x6')](),controller[_0x4ab4('0x12')]);router['delete'](_0x4ab4('0x8'),auth[_0x4ab4('0x6')](),controller[_0x4ab4('0x13')]);module['exports']=router;
\ No newline at end of file
+var _0x9910=['setTags','update','destroy','multer','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../config/environment','isAuthenticated','index','get','/:id','show','/:id/subjects','getSubjects','/:id/descriptions','getDescriptions','/:id/tags','getTags','post','create'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x9910,0x19b));var _0x0991=function(_0x2f2482,_0x44ae9d){_0x2f2482=_0x2f2482-0x0;var _0x13dbc8=_0x9910[_0x2f2482];return _0x13dbc8;};'use strict';var multer=require(_0x0991('0x0'));var util=require(_0x0991('0x1'));var path=require(_0x0991('0x2'));var timeout=require(_0x0991('0x3'));var express=require('express');var router=express[_0x0991('0x4')]();var fs_extra=require(_0x0991('0x5'));var auth=require(_0x0991('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0x0991('0x7'));var controller=require('./intFreshdeskConfiguration.controller');router['get']('/',auth[_0x0991('0x8')](),controller[_0x0991('0x9')]);router[_0x0991('0xa')](_0x0991('0xb'),auth[_0x0991('0x8')](),controller[_0x0991('0xc')]);router[_0x0991('0xa')]('/:id/fields',auth[_0x0991('0x8')](),controller['getFields']);router['get'](_0x0991('0xd'),auth[_0x0991('0x8')](),controller[_0x0991('0xe')]);router['get'](_0x0991('0xf'),auth[_0x0991('0x8')](),controller[_0x0991('0x10')]);router['get'](_0x0991('0x11'),auth[_0x0991('0x8')](),controller[_0x0991('0x12')]);router[_0x0991('0x13')]('/',auth[_0x0991('0x8')](),controller[_0x0991('0x14')]);router[_0x0991('0x13')](_0x0991('0x11'),auth[_0x0991('0x8')](),controller[_0x0991('0x15')]);router['put'](_0x0991('0xb'),auth[_0x0991('0x8')](),controller[_0x0991('0x16')]);router['delete']('/:id',auth[_0x0991('0x8')](),controller[_0x0991('0x17')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf202=['sequelize','exports','STRING'];(function(_0x21998,_0x4568fa){var _0x205f75=function(_0x4c2187){while(--_0x4c2187){_0x21998['push'](_0x21998['shift']());}};_0x205f75(++_0x4568fa);}(_0xf202,0x1d4));var _0x2f20=function(_0xa503c2,_0x46f3f1){_0xa503c2=_0xa503c2-0x0;var _0x23ce77=_0xf202[_0xa503c2];return _0x23ce77;};'use strict';var Sequelize=require(_0x2f20('0x0'));module[_0x2f20('0x1')]={'name':{'type':Sequelize[_0x2f20('0x2')]},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x3f46=['STRING','exports'];(function(_0x321d5b,_0x1cd17a){var _0x3652d2=function(_0x328780){while(--_0x328780){_0x321d5b['push'](_0x321d5b['shift']());}};_0x3652d2(++_0x1cd17a);}(_0x3f46,0x89));var _0x63f4=function(_0x5a335d,_0x148b8c){_0x5a335d=_0x5a335d-0x0;var _0x235b68=_0x3f46[_0x5a335d];return _0x235b68;};'use strict';var Sequelize=require('sequelize');module[_0x63f4('0x0')]={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0x63f4('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8466=['FreshdeskField','getSubjects','getDescriptions','getTags','Tag','setTags','ids','eml-format','rimraf','zip-dir','fast-json-patch','mustache','util','path','to-csv','fs-extra','squel','crypto','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','end','status','json','undefined','count','offset','limit','set','Content-Range','reject','save','then','destroy','error','stack','name','send','index','FreshdeskConfiguration','rawAttributes','fieldName','type','model','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','map','filter','includeAll','include','findAll','rows','show','params','keys','options','catch','create','body','update','find','getFields','findOne'];(function(_0x2f436a,_0x49aaad){var _0x12939e=function(_0x1b1e83){while(--_0x1b1e83){_0x2f436a['push'](_0x2f436a['shift']());}};_0x12939e(++_0x49aaad);}(_0x8466,0xa9));var _0x6846=function(_0x2ce326,_0xc2f854){_0x2ce326=_0x2ce326-0x0;var _0xf750bf=_0x8466[_0x2ce326];return _0xf750bf;};'use strict';var emlformat=require(_0x6846('0x0'));var rimraf=require(_0x6846('0x1'));var zipdir=require(_0x6846('0x2'));var jsonpatch=require(_0x6846('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x6846('0x4'));var util=require(_0x6846('0x5'));var path=require(_0x6846('0x6'));var sox=require('sox');var csv=require(_0x6846('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x6846('0x8'));var _=require('lodash');var squel=require(_0x6846('0x9'));var crypto=require(_0x6846('0xa'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x6846('0xb'));var Papa=require(_0x6846('0xc'));var Redis=require(_0x6846('0xd'));var authService=require(_0x6846('0xe'));var qs=require('../../components/parsers/qs');var as=require(_0x6846('0xf'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x6846('0x10'));var utils=require(_0x6846('0x11'));var config=require('../../config/environment');var licenseUtil=require(_0x6846('0x12'));var db=require(_0x6846('0x13'))['db'];function respondWithStatusCode(_0x2a9b87,_0x34585f){_0x34585f=_0x34585f||0xcc;return function(_0x48bade){if(_0x48bade){return _0x2a9b87[_0x6846('0x14')](_0x34585f);}return _0x2a9b87['status'](_0x34585f)[_0x6846('0x15')]();};}function respondWithResult(_0x54a431,_0x3d8184){_0x3d8184=_0x3d8184||0xc8;return function(_0x13a91e){if(_0x13a91e){return _0x54a431[_0x6846('0x16')](_0x3d8184)[_0x6846('0x17')](_0x13a91e);}};}function respondWithFilteredResult(_0x46328e,_0x30ee8c){return function(_0x126048){if(_0x126048){var _0x4e2587=typeof _0x30ee8c['offset']===_0x6846('0x18')&&typeof _0x30ee8c['limit']===_0x6846('0x18');var _0x3b7069=_0x126048[_0x6846('0x19')];var _0x144156=_0x4e2587?0x0:_0x30ee8c[_0x6846('0x1a')];var _0x5e8a7e=_0x4e2587?_0x126048['count']:_0x30ee8c[_0x6846('0x1a')]+_0x30ee8c[_0x6846('0x1b')];var _0x1c0c76;if(_0x5e8a7e>=_0x3b7069){_0x5e8a7e=_0x3b7069;_0x1c0c76=0xc8;}else{_0x1c0c76=0xce;}_0x46328e[_0x6846('0x16')](_0x1c0c76);return _0x46328e[_0x6846('0x1c')](_0x6846('0x1d'),_0x144156+'-'+_0x5e8a7e+'/'+_0x3b7069)['json'](_0x126048);}return null;};}function patchUpdates(_0x1bdca3){return function(_0x56b73d){try{jsonpatch['apply'](_0x56b73d,_0x1bdca3,!![]);}catch(_0xd80e3a){return BPromise[_0x6846('0x1e')](_0xd80e3a);}return _0x56b73d[_0x6846('0x1f')]();};}function saveUpdates(_0x325504,_0x296540){return function(_0x24c193){if(_0x24c193){return _0x24c193['update'](_0x325504)[_0x6846('0x20')](function(_0x260bb2){return _0x260bb2;});}return null;};}function removeEntity(_0x5e8f9c,_0x19c3d5){return function(_0x59c574){if(_0x59c574){return _0x59c574[_0x6846('0x21')]()['then'](function(){_0x5e8f9c[_0x6846('0x16')](0xcc)[_0x6846('0x15')]();});}};}function handleEntityNotFound(_0x7bc37d,_0x22491c){return function(_0x4b9c9a){if(!_0x4b9c9a){_0x7bc37d[_0x6846('0x14')](0x194);}return _0x4b9c9a;};}function handleError(_0x239c76,_0x2c4b28){_0x2c4b28=_0x2c4b28||0x1f4;return function(_0x541e88){logger[_0x6846('0x22')](_0x541e88[_0x6846('0x23')]);if(_0x541e88[_0x6846('0x24')]){delete _0x541e88[_0x6846('0x24')];}_0x239c76[_0x6846('0x16')](_0x2c4b28)[_0x6846('0x25')](_0x541e88);};}exports[_0x6846('0x26')]=function(_0x498382,_0x419785){var _0x558eec={},_0x5a9dbd={},_0xcccb96={'count':0x0,'rows':[]};var _0x59f257=_['map'](db[_0x6846('0x27')][_0x6846('0x28')],function(_0x5aa0a4){return{'name':_0x5aa0a4[_0x6846('0x29')],'type':_0x5aa0a4[_0x6846('0x2a')]['key']};});_0x5a9dbd[_0x6846('0x2b')]=_['map'](_0x59f257,_0x6846('0x24'));_0x5a9dbd[_0x6846('0x2c')]=_['keys'](_0x498382[_0x6846('0x2c')]);_0x5a9dbd[_0x6846('0x2d')]=_[_0x6846('0x2e')](_0x5a9dbd[_0x6846('0x2b')],_0x5a9dbd[_0x6846('0x2c')]);_0x558eec['attributes']=_['intersection'](_0x5a9dbd[_0x6846('0x2b')],qs[_0x6846('0x2f')](_0x498382[_0x6846('0x2c')][_0x6846('0x2f')]));_0x558eec['attributes']=_0x558eec[_0x6846('0x30')][_0x6846('0x31')]?_0x558eec['attributes']:_0x5a9dbd[_0x6846('0x2b')];if(!_0x498382[_0x6846('0x2c')][_0x6846('0x32')](_0x6846('0x33'))){_0x558eec[_0x6846('0x1b')]=qs[_0x6846('0x1b')](_0x498382[_0x6846('0x2c')]['limit']);_0x558eec['offset']=qs[_0x6846('0x1a')](_0x498382['query']['offset']);}_0x558eec[_0x6846('0x34')]=qs[_0x6846('0x35')](_0x498382[_0x6846('0x2c')][_0x6846('0x35')]);_0x558eec[_0x6846('0x36')]=qs[_0x6846('0x2d')](_[_0x6846('0x37')](_0x498382[_0x6846('0x2c')],_0x5a9dbd['filters']),_0x59f257);if(_0x498382[_0x6846('0x2c')]['filter']){_0x558eec['where']=_[_0x6846('0x38')](_0x558eec[_0x6846('0x36')],{'$or':_[_0x6846('0x39')](_0x59f257,function(_0x41e59b){if(_0x41e59b[_0x6846('0x2a')]!=='VIRTUAL'){var _0x3b2ab2={};_0x3b2ab2[_0x41e59b[_0x6846('0x24')]]={'$like':'%'+_0x498382[_0x6846('0x2c')][_0x6846('0x3a')]+'%'};return _0x3b2ab2;}})});}_0x558eec=_[_0x6846('0x38')]({},_0x558eec,_0x498382['options']);var _0x21f6ae={'where':_0x558eec[_0x6846('0x36')]};return db[_0x6846('0x27')][_0x6846('0x19')](_0x21f6ae)[_0x6846('0x20')](function(_0x28a991){_0xcccb96['count']=_0x28a991;if(_0x498382[_0x6846('0x2c')][_0x6846('0x3b')]){_0x558eec[_0x6846('0x3c')]=[{'all':!![]}];}return db[_0x6846('0x27')][_0x6846('0x3d')](_0x558eec);})[_0x6846('0x20')](function(_0x5c6f70){_0xcccb96[_0x6846('0x3e')]=_0x5c6f70;return _0xcccb96;})[_0x6846('0x20')](respondWithFilteredResult(_0x419785,_0x558eec))['catch'](handleError(_0x419785,null));};exports[_0x6846('0x3f')]=function(_0x3e0719,_0x5f367b){var _0x4a6cee={'raw':![],'where':{'id':_0x3e0719[_0x6846('0x40')]['id']}},_0x5eeb8f={};_0x5eeb8f[_0x6846('0x2b')]=_[_0x6846('0x41')](db[_0x6846('0x27')][_0x6846('0x28')]);_0x5eeb8f[_0x6846('0x2c')]=_[_0x6846('0x41')](_0x3e0719[_0x6846('0x2c')]);_0x5eeb8f['filters']=_[_0x6846('0x2e')](_0x5eeb8f[_0x6846('0x2b')],_0x5eeb8f['query']);_0x4a6cee[_0x6846('0x30')]=_[_0x6846('0x2e')](_0x5eeb8f[_0x6846('0x2b')],qs[_0x6846('0x2f')](_0x3e0719['query']['fields']));_0x4a6cee[_0x6846('0x30')]=_0x4a6cee[_0x6846('0x30')][_0x6846('0x31')]?_0x4a6cee['attributes']:_0x5eeb8f[_0x6846('0x2b')];if(_0x3e0719[_0x6846('0x2c')][_0x6846('0x3b')]){_0x4a6cee[_0x6846('0x3c')]=[{'all':!![]}];}_0x4a6cee=_[_0x6846('0x38')]({},_0x4a6cee,_0x3e0719[_0x6846('0x42')]);return db[_0x6846('0x27')]['find'](_0x4a6cee)[_0x6846('0x20')](handleEntityNotFound(_0x5f367b,null))[_0x6846('0x20')](respondWithResult(_0x5f367b,null))[_0x6846('0x43')](handleError(_0x5f367b,null));};exports['create']=function(_0xe04908,_0x2292d0){return db['FreshdeskConfiguration'][_0x6846('0x44')](_0xe04908[_0x6846('0x45')],{})[_0x6846('0x20')](respondWithResult(_0x2292d0,0xc9))[_0x6846('0x43')](handleError(_0x2292d0,null));};exports[_0x6846('0x46')]=function(_0x2993e9,_0xefa56f){if(_0x2993e9[_0x6846('0x45')]['id']){delete _0x2993e9[_0x6846('0x45')]['id'];}return db[_0x6846('0x27')][_0x6846('0x47')]({'where':{'id':_0x2993e9[_0x6846('0x40')]['id']}})[_0x6846('0x20')](handleEntityNotFound(_0xefa56f,null))[_0x6846('0x20')](saveUpdates(_0x2993e9['body'],null))[_0x6846('0x20')](respondWithResult(_0xefa56f,null))[_0x6846('0x43')](handleError(_0xefa56f,null));};exports['destroy']=function(_0x39d302,_0x2ac9ca){return db[_0x6846('0x27')][_0x6846('0x47')]({'where':{'id':_0x39d302[_0x6846('0x40')]['id']}})[_0x6846('0x20')](handleEntityNotFound(_0x2ac9ca,null))[_0x6846('0x20')](removeEntity(_0x2ac9ca,null))[_0x6846('0x43')](handleError(_0x2ac9ca,null));};exports[_0x6846('0x48')]=function(_0x3b25d8,_0x2e16d9,_0x1bad6d){var _0x17af21={};var _0x4236f4={};var _0x344ae9;var _0x378d3e;return db[_0x6846('0x27')][_0x6846('0x49')]({'where':{'id':_0x3b25d8[_0x6846('0x40')]['id']}})[_0x6846('0x20')](handleEntityNotFound(_0x2e16d9,null))[_0x6846('0x20')](function(_0x424b8e){if(_0x424b8e){_0x344ae9=_0x424b8e;_0x4236f4[_0x6846('0x2b')]=_['keys'](db[_0x6846('0x4a')][_0x6846('0x28')]);_0x4236f4[_0x6846('0x2c')]=_[_0x6846('0x41')](_0x3b25d8['query']);_0x4236f4[_0x6846('0x2d')]=_['intersection'](_0x4236f4[_0x6846('0x2b')],_0x4236f4['query']);_0x17af21['attributes']=_[_0x6846('0x2e')](_0x4236f4['model'],qs[_0x6846('0x2f')](_0x3b25d8['query'][_0x6846('0x2f')]));_0x17af21['attributes']=_0x17af21[_0x6846('0x30')][_0x6846('0x31')]?_0x17af21[_0x6846('0x30')]:_0x4236f4[_0x6846('0x2b')];_0x17af21[_0x6846('0x34')]=qs[_0x6846('0x35')](_0x3b25d8[_0x6846('0x2c')][_0x6846('0x35')]);_0x17af21[_0x6846('0x36')]=qs[_0x6846('0x2d')](_[_0x6846('0x37')](_0x3b25d8[_0x6846('0x2c')],_0x4236f4[_0x6846('0x2d')]));if(_0x3b25d8[_0x6846('0x2c')][_0x6846('0x3a')]){_0x17af21[_0x6846('0x36')]=_[_0x6846('0x38')](_0x17af21[_0x6846('0x36')],{'$or':_[_0x6846('0x39')](_0x17af21[_0x6846('0x30')],function(_0x4857ea){var _0x316b66={};_0x316b66[_0x4857ea]={'$like':'%'+_0x3b25d8[_0x6846('0x2c')][_0x6846('0x3a')]+'%'};return _0x316b66;})});}_0x17af21=_[_0x6846('0x38')]({},_0x17af21,_0x3b25d8[_0x6846('0x42')]);return _0x344ae9[_0x6846('0x48')](_0x17af21);}})[_0x6846('0x20')](function(_0xa92d77){if(_0xa92d77){_0x378d3e=_0xa92d77['length'];if(!_0x3b25d8[_0x6846('0x2c')]['hasOwnProperty']('nolimit')){_0x17af21[_0x6846('0x1b')]=qs[_0x6846('0x1b')](_0x3b25d8[_0x6846('0x2c')][_0x6846('0x1b')]);_0x17af21[_0x6846('0x1a')]=qs[_0x6846('0x1a')](_0x3b25d8['query'][_0x6846('0x1a')]);}return _0x344ae9[_0x6846('0x48')](_0x17af21);}})[_0x6846('0x20')](function(_0x26fa1e){if(_0x26fa1e){return _0x26fa1e?{'count':_0x378d3e,'rows':_0x26fa1e}:null;}})['then'](respondWithResult(_0x2e16d9,null))[_0x6846('0x43')](handleError(_0x2e16d9,null));};exports['getSubjects']=function(_0x3ec99c,_0x258bf3,_0x5a426e){var _0x2b3f00={};var _0x49fd50={};var _0x29ae56;var _0x547ef0;return db['FreshdeskConfiguration'][_0x6846('0x49')]({'where':{'id':_0x3ec99c[_0x6846('0x40')]['id']}})[_0x6846('0x20')](handleEntityNotFound(_0x258bf3,null))[_0x6846('0x20')](function(_0x1e2616){if(_0x1e2616){_0x29ae56=_0x1e2616;_0x49fd50[_0x6846('0x2b')]=_[_0x6846('0x41')](db[_0x6846('0x4a')][_0x6846('0x28')]);_0x49fd50[_0x6846('0x2c')]=_[_0x6846('0x41')](_0x3ec99c[_0x6846('0x2c')]);_0x49fd50[_0x6846('0x2d')]=_[_0x6846('0x2e')](_0x49fd50[_0x6846('0x2b')],_0x49fd50['query']);_0x2b3f00[_0x6846('0x30')]=_[_0x6846('0x2e')](_0x49fd50[_0x6846('0x2b')],qs[_0x6846('0x2f')](_0x3ec99c[_0x6846('0x2c')]['fields']));_0x2b3f00['attributes']=_0x2b3f00[_0x6846('0x30')][_0x6846('0x31')]?_0x2b3f00['attributes']:_0x49fd50[_0x6846('0x2b')];_0x2b3f00[_0x6846('0x34')]=qs['sort'](_0x3ec99c['query'][_0x6846('0x35')]);_0x2b3f00[_0x6846('0x36')]=qs[_0x6846('0x2d')](_[_0x6846('0x37')](_0x3ec99c[_0x6846('0x2c')],_0x49fd50['filters']));if(_0x3ec99c[_0x6846('0x2c')]['filter']){_0x2b3f00[_0x6846('0x36')]=_[_0x6846('0x38')](_0x2b3f00[_0x6846('0x36')],{'$or':_[_0x6846('0x39')](_0x2b3f00[_0x6846('0x30')],function(_0x473ade){var _0x1404b9={};_0x1404b9[_0x473ade]={'$like':'%'+_0x3ec99c[_0x6846('0x2c')][_0x6846('0x3a')]+'%'};return _0x1404b9;})});}_0x2b3f00=_[_0x6846('0x38')]({},_0x2b3f00,_0x3ec99c[_0x6846('0x42')]);return _0x29ae56['getSubjects'](_0x2b3f00);}})[_0x6846('0x20')](function(_0xec2b1e){if(_0xec2b1e){_0x547ef0=_0xec2b1e['length'];if(!_0x3ec99c[_0x6846('0x2c')][_0x6846('0x32')]('nolimit')){_0x2b3f00[_0x6846('0x1b')]=qs[_0x6846('0x1b')](_0x3ec99c[_0x6846('0x2c')][_0x6846('0x1b')]);_0x2b3f00['offset']=qs[_0x6846('0x1a')](_0x3ec99c[_0x6846('0x2c')][_0x6846('0x1a')]);}return _0x29ae56[_0x6846('0x4b')](_0x2b3f00);}})['then'](function(_0x303515){if(_0x303515){return _0x303515?{'count':_0x547ef0,'rows':_0x303515}:null;}})[_0x6846('0x20')](respondWithResult(_0x258bf3,null))[_0x6846('0x43')](handleError(_0x258bf3,null));};exports['getDescriptions']=function(_0x5362d6,_0x15de28,_0x13d653){var _0x2fae9e={};var _0xbecc3e={};var _0x2a888c;var _0xefc0f2;return db[_0x6846('0x27')][_0x6846('0x49')]({'where':{'id':_0x5362d6[_0x6846('0x40')]['id']}})[_0x6846('0x20')](handleEntityNotFound(_0x15de28,null))['then'](function(_0x5c1dd6){if(_0x5c1dd6){_0x2a888c=_0x5c1dd6;_0xbecc3e['model']=_['keys'](db[_0x6846('0x4a')][_0x6846('0x28')]);_0xbecc3e[_0x6846('0x2c')]=_[_0x6846('0x41')](_0x5362d6[_0x6846('0x2c')]);_0xbecc3e[_0x6846('0x2d')]=_[_0x6846('0x2e')](_0xbecc3e[_0x6846('0x2b')],_0xbecc3e['query']);_0x2fae9e[_0x6846('0x30')]=_[_0x6846('0x2e')](_0xbecc3e[_0x6846('0x2b')],qs[_0x6846('0x2f')](_0x5362d6['query'][_0x6846('0x2f')]));_0x2fae9e[_0x6846('0x30')]=_0x2fae9e[_0x6846('0x30')][_0x6846('0x31')]?_0x2fae9e['attributes']:_0xbecc3e[_0x6846('0x2b')];_0x2fae9e[_0x6846('0x34')]=qs[_0x6846('0x35')](_0x5362d6[_0x6846('0x2c')]['sort']);_0x2fae9e[_0x6846('0x36')]=qs[_0x6846('0x2d')](_[_0x6846('0x37')](_0x5362d6['query'],_0xbecc3e[_0x6846('0x2d')]));if(_0x5362d6[_0x6846('0x2c')][_0x6846('0x3a')]){_0x2fae9e[_0x6846('0x36')]=_[_0x6846('0x38')](_0x2fae9e[_0x6846('0x36')],{'$or':_[_0x6846('0x39')](_0x2fae9e['attributes'],function(_0x32d3da){var _0x3c0882={};_0x3c0882[_0x32d3da]={'$like':'%'+_0x5362d6[_0x6846('0x2c')][_0x6846('0x3a')]+'%'};return _0x3c0882;})});}_0x2fae9e=_[_0x6846('0x38')]({},_0x2fae9e,_0x5362d6[_0x6846('0x42')]);return _0x2a888c[_0x6846('0x4c')](_0x2fae9e);}})[_0x6846('0x20')](function(_0x4fd908){if(_0x4fd908){_0xefc0f2=_0x4fd908[_0x6846('0x31')];if(!_0x5362d6['query'][_0x6846('0x32')](_0x6846('0x33'))){_0x2fae9e[_0x6846('0x1b')]=qs[_0x6846('0x1b')](_0x5362d6[_0x6846('0x2c')][_0x6846('0x1b')]);_0x2fae9e[_0x6846('0x1a')]=qs[_0x6846('0x1a')](_0x5362d6[_0x6846('0x2c')]['offset']);}return _0x2a888c[_0x6846('0x4c')](_0x2fae9e);}})['then'](function(_0x41e44c){if(_0x41e44c){return _0x41e44c?{'count':_0xefc0f2,'rows':_0x41e44c}:null;}})['then'](respondWithResult(_0x15de28,null))['catch'](handleError(_0x15de28,null));};exports[_0x6846('0x4d')]=function(_0x5d4783,_0x4180b7,_0x3214f9){var _0x381eaa={};var _0x243ed8={};var _0x9e5b95;var _0x38225b;return db[_0x6846('0x27')][_0x6846('0x49')]({'where':{'id':_0x5d4783[_0x6846('0x40')]['id']}})[_0x6846('0x20')](handleEntityNotFound(_0x4180b7,null))[_0x6846('0x20')](function(_0x50fabd){if(_0x50fabd){_0x9e5b95=_0x50fabd;_0x243ed8[_0x6846('0x2b')]=_[_0x6846('0x41')](db[_0x6846('0x4e')]['rawAttributes']);_0x243ed8[_0x6846('0x2c')]=_['keys'](_0x5d4783[_0x6846('0x2c')]);_0x243ed8[_0x6846('0x2d')]=_['intersection'](_0x243ed8[_0x6846('0x2b')],_0x243ed8[_0x6846('0x2c')]);_0x381eaa[_0x6846('0x30')]=_['intersection'](_0x243ed8[_0x6846('0x2b')],qs[_0x6846('0x2f')](_0x5d4783['query'][_0x6846('0x2f')]));_0x381eaa[_0x6846('0x30')]=_0x381eaa[_0x6846('0x30')]['length']?_0x381eaa[_0x6846('0x30')]:_0x243ed8['model'];_0x381eaa[_0x6846('0x34')]=qs[_0x6846('0x35')](_0x5d4783['query']['sort']);_0x381eaa[_0x6846('0x36')]=qs[_0x6846('0x2d')](_[_0x6846('0x37')](_0x5d4783['query'],_0x243ed8['filters']));if(_0x5d4783[_0x6846('0x2c')][_0x6846('0x3a')]){_0x381eaa[_0x6846('0x36')]=_[_0x6846('0x38')](_0x381eaa[_0x6846('0x36')],{'$or':_[_0x6846('0x39')](_0x381eaa['attributes'],function(_0x288dd5){var _0x19c744={};_0x19c744[_0x288dd5]={'$like':'%'+_0x5d4783['query'][_0x6846('0x3a')]+'%'};return _0x19c744;})});}_0x381eaa=_[_0x6846('0x38')]({},_0x381eaa,_0x5d4783[_0x6846('0x42')]);return _0x9e5b95['getTags'](_0x381eaa);}})[_0x6846('0x20')](function(_0x5260f2){if(_0x5260f2){_0x38225b=_0x5260f2[_0x6846('0x31')];if(!_0x5d4783[_0x6846('0x2c')]['hasOwnProperty']('nolimit')){_0x381eaa[_0x6846('0x1b')]=qs['limit'](_0x5d4783[_0x6846('0x2c')][_0x6846('0x1b')]);_0x381eaa[_0x6846('0x1a')]=qs['offset'](_0x5d4783[_0x6846('0x2c')]['offset']);}return _0x9e5b95['getTags'](_0x381eaa);}})[_0x6846('0x20')](function(_0x43ff06){if(_0x43ff06){return _0x43ff06?{'count':_0x38225b,'rows':_0x43ff06}:null;}})[_0x6846('0x20')](respondWithResult(_0x4180b7,null))['catch'](handleError(_0x4180b7,null));};exports[_0x6846('0x4f')]=function(_0x3fbbaa,_0x15d7e2,_0x1ff00c){if(_0x3fbbaa[_0x6846('0x45')]['id']){delete _0x3fbbaa[_0x6846('0x45')]['id'];}return db[_0x6846('0x27')][_0x6846('0x49')]({'where':{'id':_0x3fbbaa['params']['id']}})[_0x6846('0x20')](handleEntityNotFound(_0x15d7e2,null))[_0x6846('0x20')](function(_0x4c5356){if(_0x4c5356){return _0x4c5356[_0x6846('0x4f')](_0x3fbbaa[_0x6846('0x45')][_0x6846('0x50')]||[]);}return null;})[_0x6846('0x20')](respondWithResult(_0x15d7e2,null))[_0x6846('0x43')](handleError(_0x15d7e2,null));};
\ No newline at end of file
+var _0xa51e=['limit','undefined','count','set','Content-Range','apply','update','then','destroy','error','stack','name','send','index','FreshdeskConfiguration','fieldName','type','key','model','map','query','filters','intersection','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','rows','catch','show','params','keys','rawAttributes','fields','include','find','body','getFields','findOne','FreshdeskField','getSubjects','getDescriptions','getTags','setTags','ids','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset'];(function(_0x5b4b3a,_0x3c6597){var _0x51611a=function(_0x1bab63){while(--_0x1bab63){_0x5b4b3a['push'](_0x5b4b3a['shift']());}};_0x51611a(++_0x3c6597);}(_0xa51e,0xe0));var _0xea51=function(_0x42e8f3,_0x5c8dba){_0x42e8f3=_0x42e8f3-0x0;var _0x47feab=_0xa51e[_0x42e8f3];return _0x47feab;};'use strict';var emlformat=require(_0xea51('0x0'));var rimraf=require(_0xea51('0x1'));var zipdir=require(_0xea51('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xea51('0x3'));var moment=require(_0xea51('0x4'));var BPromise=require(_0xea51('0x5'));var Mustache=require(_0xea51('0x6'));var util=require('util');var path=require(_0xea51('0x7'));var sox=require(_0xea51('0x8'));var csv=require(_0xea51('0x9'));var ejs=require(_0xea51('0xa'));var fs=require('fs');var fs_extra=require(_0xea51('0xb'));var _=require(_0xea51('0xc'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xea51('0xd'));var deskjs=require(_0xea51('0xe'));var toCsv=require(_0xea51('0x9'));var querystring=require('querystring');var Papa=require(_0xea51('0xf'));var Redis=require(_0xea51('0x10'));var authService=require(_0xea51('0x11'));var qs=require(_0xea51('0x12'));var as=require(_0xea51('0x13'));var hardwareService=require(_0xea51('0x14'));var logger=require(_0xea51('0x15'))(_0xea51('0x16'));var utils=require(_0xea51('0x17'));var config=require(_0xea51('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0xea51('0x19'))['db'];function respondWithStatusCode(_0x25bbf5,_0x10f05b){_0x10f05b=_0x10f05b||0xcc;return function(_0x54558c){if(_0x54558c){return _0x25bbf5[_0xea51('0x1a')](_0x10f05b);}return _0x25bbf5[_0xea51('0x1b')](_0x10f05b)[_0xea51('0x1c')]();};}function respondWithResult(_0x4c6297,_0x5b8b57){_0x5b8b57=_0x5b8b57||0xc8;return function(_0x598a8e){if(_0x598a8e){return _0x4c6297['status'](_0x5b8b57)[_0xea51('0x1d')](_0x598a8e);}};}function respondWithFilteredResult(_0x2a9ae0,_0x5114a0){return function(_0x132d9d){if(_0x132d9d){var _0x22ffe8=typeof _0x5114a0[_0xea51('0x1e')]==='undefined'&&typeof _0x5114a0[_0xea51('0x1f')]===_0xea51('0x20');var _0x56e32a=_0x132d9d[_0xea51('0x21')];var _0x3f0970=_0x22ffe8?0x0:_0x5114a0[_0xea51('0x1e')];var _0x352c8c=_0x22ffe8?_0x132d9d['count']:_0x5114a0[_0xea51('0x1e')]+_0x5114a0[_0xea51('0x1f')];var _0x2c4fb1;if(_0x352c8c>=_0x56e32a){_0x352c8c=_0x56e32a;_0x2c4fb1=0xc8;}else{_0x2c4fb1=0xce;}_0x2a9ae0[_0xea51('0x1b')](_0x2c4fb1);return _0x2a9ae0[_0xea51('0x22')](_0xea51('0x23'),_0x3f0970+'-'+_0x352c8c+'/'+_0x56e32a)[_0xea51('0x1d')](_0x132d9d);}return null;};}function patchUpdates(_0x2e1403){return function(_0x1c0135){try{jsonpatch[_0xea51('0x24')](_0x1c0135,_0x2e1403,!![]);}catch(_0xa25ac){return BPromise['reject'](_0xa25ac);}return _0x1c0135['save']();};}function saveUpdates(_0x264f98,_0x2a692a){return function(_0x1d0a6c){if(_0x1d0a6c){return _0x1d0a6c[_0xea51('0x25')](_0x264f98)[_0xea51('0x26')](function(_0x34ad45){return _0x34ad45;});}return null;};}function removeEntity(_0x2bd52f,_0x21801f){return function(_0x2fef7e){if(_0x2fef7e){return _0x2fef7e[_0xea51('0x27')]()['then'](function(){_0x2bd52f[_0xea51('0x1b')](0xcc)[_0xea51('0x1c')]();});}};}function handleEntityNotFound(_0x5ea694,_0x212760){return function(_0x1fe743){if(!_0x1fe743){_0x5ea694['sendStatus'](0x194);}return _0x1fe743;};}function handleError(_0x51777e,_0x4533a8){_0x4533a8=_0x4533a8||0x1f4;return function(_0xc56ca0){logger[_0xea51('0x28')](_0xc56ca0[_0xea51('0x29')]);if(_0xc56ca0[_0xea51('0x2a')]){delete _0xc56ca0['name'];}_0x51777e[_0xea51('0x1b')](_0x4533a8)[_0xea51('0x2b')](_0xc56ca0);};}exports[_0xea51('0x2c')]=function(_0x5ba422,_0x3abb7d){var _0x3b5f91={},_0x137d55={},_0x37faef={'count':0x0,'rows':[]};var _0x2fd8b9=_['map'](db[_0xea51('0x2d')]['rawAttributes'],function(_0x4cadc6){return{'name':_0x4cadc6[_0xea51('0x2e')],'type':_0x4cadc6[_0xea51('0x2f')][_0xea51('0x30')]};});_0x137d55[_0xea51('0x31')]=_[_0xea51('0x32')](_0x2fd8b9,_0xea51('0x2a'));_0x137d55['query']=_['keys'](_0x5ba422[_0xea51('0x33')]);_0x137d55[_0xea51('0x34')]=_[_0xea51('0x35')](_0x137d55['model'],_0x137d55[_0xea51('0x33')]);_0x3b5f91[_0xea51('0x36')]=_['intersection'](_0x137d55[_0xea51('0x31')],qs['fields'](_0x5ba422[_0xea51('0x33')]['fields']));_0x3b5f91[_0xea51('0x36')]=_0x3b5f91[_0xea51('0x36')][_0xea51('0x37')]?_0x3b5f91[_0xea51('0x36')]:_0x137d55['model'];if(!_0x5ba422[_0xea51('0x33')][_0xea51('0x38')](_0xea51('0x39'))){_0x3b5f91[_0xea51('0x1f')]=qs[_0xea51('0x1f')](_0x5ba422[_0xea51('0x33')][_0xea51('0x1f')]);_0x3b5f91[_0xea51('0x1e')]=qs['offset'](_0x5ba422[_0xea51('0x33')][_0xea51('0x1e')]);}_0x3b5f91[_0xea51('0x3a')]=qs[_0xea51('0x3b')](_0x5ba422['query'][_0xea51('0x3b')]);_0x3b5f91[_0xea51('0x3c')]=qs[_0xea51('0x34')](_[_0xea51('0x3d')](_0x5ba422[_0xea51('0x33')],_0x137d55['filters']),_0x2fd8b9);if(_0x5ba422['query'][_0xea51('0x3e')]){_0x3b5f91[_0xea51('0x3c')]=_[_0xea51('0x3f')](_0x3b5f91['where'],{'$or':_[_0xea51('0x32')](_0x2fd8b9,function(_0x29e640){if(_0x29e640[_0xea51('0x2f')]!==_0xea51('0x40')){var _0x1a7a4a={};_0x1a7a4a[_0x29e640['name']]={'$like':'%'+_0x5ba422['query']['filter']+'%'};return _0x1a7a4a;}})});}_0x3b5f91=_['merge']({},_0x3b5f91,_0x5ba422[_0xea51('0x41')]);var _0x50bf4e={'where':_0x3b5f91[_0xea51('0x3c')]};return db['FreshdeskConfiguration'][_0xea51('0x21')](_0x50bf4e)[_0xea51('0x26')](function(_0xa778a){_0x37faef[_0xea51('0x21')]=_0xa778a;if(_0x5ba422[_0xea51('0x33')][_0xea51('0x42')]){_0x3b5f91['include']=[{'all':!![]}];}return db[_0xea51('0x2d')]['findAll'](_0x3b5f91);})[_0xea51('0x26')](function(_0x500db5){_0x37faef[_0xea51('0x43')]=_0x500db5;return _0x37faef;})[_0xea51('0x26')](respondWithFilteredResult(_0x3abb7d,_0x3b5f91))[_0xea51('0x44')](handleError(_0x3abb7d,null));};exports[_0xea51('0x45')]=function(_0x1e84ec,_0xc54b46){var _0x274102={'raw':![],'where':{'id':_0x1e84ec[_0xea51('0x46')]['id']}},_0x168787={};_0x168787[_0xea51('0x31')]=_[_0xea51('0x47')](db[_0xea51('0x2d')][_0xea51('0x48')]);_0x168787[_0xea51('0x33')]=_[_0xea51('0x47')](_0x1e84ec[_0xea51('0x33')]);_0x168787[_0xea51('0x34')]=_[_0xea51('0x35')](_0x168787['model'],_0x168787[_0xea51('0x33')]);_0x274102[_0xea51('0x36')]=_[_0xea51('0x35')](_0x168787[_0xea51('0x31')],qs['fields'](_0x1e84ec['query'][_0xea51('0x49')]));_0x274102[_0xea51('0x36')]=_0x274102[_0xea51('0x36')][_0xea51('0x37')]?_0x274102[_0xea51('0x36')]:_0x168787[_0xea51('0x31')];if(_0x1e84ec['query']['includeAll']){_0x274102[_0xea51('0x4a')]=[{'all':!![]}];}_0x274102=_[_0xea51('0x3f')]({},_0x274102,_0x1e84ec[_0xea51('0x41')]);return db[_0xea51('0x2d')][_0xea51('0x4b')](_0x274102)[_0xea51('0x26')](handleEntityNotFound(_0xc54b46,null))[_0xea51('0x26')](respondWithResult(_0xc54b46,null))['catch'](handleError(_0xc54b46,null));};exports['create']=function(_0x5a9450,_0x207309){return db['FreshdeskConfiguration']['create'](_0x5a9450[_0xea51('0x4c')],{})[_0xea51('0x26')](respondWithResult(_0x207309,0xc9))[_0xea51('0x44')](handleError(_0x207309,null));};exports[_0xea51('0x25')]=function(_0x73773c,_0x2b0f52){if(_0x73773c[_0xea51('0x4c')]['id']){delete _0x73773c[_0xea51('0x4c')]['id'];}return db[_0xea51('0x2d')][_0xea51('0x4b')]({'where':{'id':_0x73773c[_0xea51('0x46')]['id']}})['then'](handleEntityNotFound(_0x2b0f52,null))[_0xea51('0x26')](saveUpdates(_0x73773c[_0xea51('0x4c')],null))['then'](respondWithResult(_0x2b0f52,null))[_0xea51('0x44')](handleError(_0x2b0f52,null));};exports['destroy']=function(_0x277ccb,_0x4f92a7){return db['FreshdeskConfiguration'][_0xea51('0x4b')]({'where':{'id':_0x277ccb[_0xea51('0x46')]['id']}})[_0xea51('0x26')](handleEntityNotFound(_0x4f92a7,null))['then'](removeEntity(_0x4f92a7,null))['catch'](handleError(_0x4f92a7,null));};exports[_0xea51('0x4d')]=function(_0x5a48e0,_0x19c0ce,_0x1a0758){var _0x4774b6={};var _0x3cb34f={};var _0x19531d;var _0x12895d;return db['FreshdeskConfiguration'][_0xea51('0x4e')]({'where':{'id':_0x5a48e0['params']['id']}})[_0xea51('0x26')](handleEntityNotFound(_0x19c0ce,null))[_0xea51('0x26')](function(_0x5e7adc){if(_0x5e7adc){_0x19531d=_0x5e7adc;_0x3cb34f['model']=_['keys'](db[_0xea51('0x4f')][_0xea51('0x48')]);_0x3cb34f['query']=_[_0xea51('0x47')](_0x5a48e0[_0xea51('0x33')]);_0x3cb34f[_0xea51('0x34')]=_[_0xea51('0x35')](_0x3cb34f['model'],_0x3cb34f['query']);_0x4774b6[_0xea51('0x36')]=_['intersection'](_0x3cb34f[_0xea51('0x31')],qs[_0xea51('0x49')](_0x5a48e0[_0xea51('0x33')]['fields']));_0x4774b6['attributes']=_0x4774b6['attributes']['length']?_0x4774b6[_0xea51('0x36')]:_0x3cb34f[_0xea51('0x31')];_0x4774b6[_0xea51('0x3a')]=qs[_0xea51('0x3b')](_0x5a48e0[_0xea51('0x33')][_0xea51('0x3b')]);_0x4774b6[_0xea51('0x3c')]=qs[_0xea51('0x34')](_[_0xea51('0x3d')](_0x5a48e0['query'],_0x3cb34f['filters']));if(_0x5a48e0[_0xea51('0x33')]['filter']){_0x4774b6[_0xea51('0x3c')]=_[_0xea51('0x3f')](_0x4774b6['where'],{'$or':_[_0xea51('0x32')](_0x4774b6[_0xea51('0x36')],function(_0x204d3b){var _0x4febfb={};_0x4febfb[_0x204d3b]={'$like':'%'+_0x5a48e0['query'][_0xea51('0x3e')]+'%'};return _0x4febfb;})});}_0x4774b6=_[_0xea51('0x3f')]({},_0x4774b6,_0x5a48e0[_0xea51('0x41')]);return _0x19531d[_0xea51('0x4d')](_0x4774b6);}})[_0xea51('0x26')](function(_0x472b18){if(_0x472b18){_0x12895d=_0x472b18[_0xea51('0x37')];if(!_0x5a48e0[_0xea51('0x33')][_0xea51('0x38')](_0xea51('0x39'))){_0x4774b6['limit']=qs['limit'](_0x5a48e0[_0xea51('0x33')][_0xea51('0x1f')]);_0x4774b6[_0xea51('0x1e')]=qs['offset'](_0x5a48e0[_0xea51('0x33')]['offset']);}return _0x19531d[_0xea51('0x4d')](_0x4774b6);}})[_0xea51('0x26')](function(_0x426454){if(_0x426454){return _0x426454?{'count':_0x12895d,'rows':_0x426454}:null;}})[_0xea51('0x26')](respondWithResult(_0x19c0ce,null))[_0xea51('0x44')](handleError(_0x19c0ce,null));};exports[_0xea51('0x50')]=function(_0x4ed2e0,_0x2738be,_0x379eba){var _0x21f6e0={};var _0x59f04b={};var _0x596d04;var _0x86cc37;return db[_0xea51('0x2d')]['findOne']({'where':{'id':_0x4ed2e0[_0xea51('0x46')]['id']}})[_0xea51('0x26')](handleEntityNotFound(_0x2738be,null))[_0xea51('0x26')](function(_0x1b7dea){if(_0x1b7dea){_0x596d04=_0x1b7dea;_0x59f04b[_0xea51('0x31')]=_['keys'](db[_0xea51('0x4f')][_0xea51('0x48')]);_0x59f04b[_0xea51('0x33')]=_[_0xea51('0x47')](_0x4ed2e0[_0xea51('0x33')]);_0x59f04b[_0xea51('0x34')]=_['intersection'](_0x59f04b[_0xea51('0x31')],_0x59f04b['query']);_0x21f6e0[_0xea51('0x36')]=_[_0xea51('0x35')](_0x59f04b['model'],qs[_0xea51('0x49')](_0x4ed2e0[_0xea51('0x33')][_0xea51('0x49')]));_0x21f6e0[_0xea51('0x36')]=_0x21f6e0[_0xea51('0x36')][_0xea51('0x37')]?_0x21f6e0[_0xea51('0x36')]:_0x59f04b[_0xea51('0x31')];_0x21f6e0['order']=qs['sort'](_0x4ed2e0[_0xea51('0x33')][_0xea51('0x3b')]);_0x21f6e0[_0xea51('0x3c')]=qs['filters'](_[_0xea51('0x3d')](_0x4ed2e0[_0xea51('0x33')],_0x59f04b[_0xea51('0x34')]));if(_0x4ed2e0['query'][_0xea51('0x3e')]){_0x21f6e0[_0xea51('0x3c')]=_[_0xea51('0x3f')](_0x21f6e0[_0xea51('0x3c')],{'$or':_['map'](_0x21f6e0['attributes'],function(_0x272fd3){var _0x2b5b97={};_0x2b5b97[_0x272fd3]={'$like':'%'+_0x4ed2e0[_0xea51('0x33')]['filter']+'%'};return _0x2b5b97;})});}_0x21f6e0=_[_0xea51('0x3f')]({},_0x21f6e0,_0x4ed2e0['options']);return _0x596d04[_0xea51('0x50')](_0x21f6e0);}})[_0xea51('0x26')](function(_0x11f101){if(_0x11f101){_0x86cc37=_0x11f101[_0xea51('0x37')];if(!_0x4ed2e0[_0xea51('0x33')][_0xea51('0x38')](_0xea51('0x39'))){_0x21f6e0[_0xea51('0x1f')]=qs[_0xea51('0x1f')](_0x4ed2e0[_0xea51('0x33')]['limit']);_0x21f6e0[_0xea51('0x1e')]=qs[_0xea51('0x1e')](_0x4ed2e0['query'][_0xea51('0x1e')]);}return _0x596d04['getSubjects'](_0x21f6e0);}})[_0xea51('0x26')](function(_0x209747){if(_0x209747){return _0x209747?{'count':_0x86cc37,'rows':_0x209747}:null;}})[_0xea51('0x26')](respondWithResult(_0x2738be,null))[_0xea51('0x44')](handleError(_0x2738be,null));};exports[_0xea51('0x51')]=function(_0xad96a3,_0x9b7c1,_0x45630d){var _0x47b392={};var _0x5dab16={};var _0x2272aa;var _0x59bf16;return db['FreshdeskConfiguration'][_0xea51('0x4e')]({'where':{'id':_0xad96a3['params']['id']}})['then'](handleEntityNotFound(_0x9b7c1,null))[_0xea51('0x26')](function(_0x12d110){if(_0x12d110){_0x2272aa=_0x12d110;_0x5dab16['model']=_['keys'](db[_0xea51('0x4f')][_0xea51('0x48')]);_0x5dab16['query']=_[_0xea51('0x47')](_0xad96a3[_0xea51('0x33')]);_0x5dab16[_0xea51('0x34')]=_[_0xea51('0x35')](_0x5dab16['model'],_0x5dab16[_0xea51('0x33')]);_0x47b392['attributes']=_[_0xea51('0x35')](_0x5dab16['model'],qs[_0xea51('0x49')](_0xad96a3[_0xea51('0x33')][_0xea51('0x49')]));_0x47b392['attributes']=_0x47b392[_0xea51('0x36')][_0xea51('0x37')]?_0x47b392[_0xea51('0x36')]:_0x5dab16['model'];_0x47b392['order']=qs[_0xea51('0x3b')](_0xad96a3['query'][_0xea51('0x3b')]);_0x47b392[_0xea51('0x3c')]=qs[_0xea51('0x34')](_[_0xea51('0x3d')](_0xad96a3['query'],_0x5dab16[_0xea51('0x34')]));if(_0xad96a3['query'][_0xea51('0x3e')]){_0x47b392[_0xea51('0x3c')]=_[_0xea51('0x3f')](_0x47b392['where'],{'$or':_[_0xea51('0x32')](_0x47b392[_0xea51('0x36')],function(_0x5cc897){var _0x39ad91={};_0x39ad91[_0x5cc897]={'$like':'%'+_0xad96a3['query'][_0xea51('0x3e')]+'%'};return _0x39ad91;})});}_0x47b392=_[_0xea51('0x3f')]({},_0x47b392,_0xad96a3[_0xea51('0x41')]);return _0x2272aa[_0xea51('0x51')](_0x47b392);}})[_0xea51('0x26')](function(_0x19de53){if(_0x19de53){_0x59bf16=_0x19de53[_0xea51('0x37')];if(!_0xad96a3['query']['hasOwnProperty'](_0xea51('0x39'))){_0x47b392['limit']=qs[_0xea51('0x1f')](_0xad96a3[_0xea51('0x33')][_0xea51('0x1f')]);_0x47b392[_0xea51('0x1e')]=qs['offset'](_0xad96a3[_0xea51('0x33')]['offset']);}return _0x2272aa[_0xea51('0x51')](_0x47b392);}})['then'](function(_0x2d7a97){if(_0x2d7a97){return _0x2d7a97?{'count':_0x59bf16,'rows':_0x2d7a97}:null;}})['then'](respondWithResult(_0x9b7c1,null))[_0xea51('0x44')](handleError(_0x9b7c1,null));};exports[_0xea51('0x52')]=function(_0x526b96,_0x321c71,_0x2e80bb){var _0xaee5b6={};var _0x4344ea={};var _0x3c291f;var _0x2d40b0;return db[_0xea51('0x2d')][_0xea51('0x4e')]({'where':{'id':_0x526b96[_0xea51('0x46')]['id']}})[_0xea51('0x26')](handleEntityNotFound(_0x321c71,null))['then'](function(_0x17bd6a){if(_0x17bd6a){_0x3c291f=_0x17bd6a;_0x4344ea['model']=_[_0xea51('0x47')](db['Tag'][_0xea51('0x48')]);_0x4344ea[_0xea51('0x33')]=_[_0xea51('0x47')](_0x526b96[_0xea51('0x33')]);_0x4344ea[_0xea51('0x34')]=_[_0xea51('0x35')](_0x4344ea['model'],_0x4344ea['query']);_0xaee5b6[_0xea51('0x36')]=_[_0xea51('0x35')](_0x4344ea[_0xea51('0x31')],qs['fields'](_0x526b96[_0xea51('0x33')][_0xea51('0x49')]));_0xaee5b6['attributes']=_0xaee5b6[_0xea51('0x36')]['length']?_0xaee5b6['attributes']:_0x4344ea['model'];_0xaee5b6[_0xea51('0x3a')]=qs[_0xea51('0x3b')](_0x526b96[_0xea51('0x33')][_0xea51('0x3b')]);_0xaee5b6[_0xea51('0x3c')]=qs['filters'](_[_0xea51('0x3d')](_0x526b96['query'],_0x4344ea['filters']));if(_0x526b96['query'][_0xea51('0x3e')]){_0xaee5b6[_0xea51('0x3c')]=_['merge'](_0xaee5b6[_0xea51('0x3c')],{'$or':_[_0xea51('0x32')](_0xaee5b6[_0xea51('0x36')],function(_0x3a7508){var _0x1180bd={};_0x1180bd[_0x3a7508]={'$like':'%'+_0x526b96['query'][_0xea51('0x3e')]+'%'};return _0x1180bd;})});}_0xaee5b6=_[_0xea51('0x3f')]({},_0xaee5b6,_0x526b96[_0xea51('0x41')]);return _0x3c291f['getTags'](_0xaee5b6);}})[_0xea51('0x26')](function(_0x3b5a80){if(_0x3b5a80){_0x2d40b0=_0x3b5a80['length'];if(!_0x526b96[_0xea51('0x33')]['hasOwnProperty'](_0xea51('0x39'))){_0xaee5b6['limit']=qs[_0xea51('0x1f')](_0x526b96['query'][_0xea51('0x1f')]);_0xaee5b6[_0xea51('0x1e')]=qs[_0xea51('0x1e')](_0x526b96[_0xea51('0x33')][_0xea51('0x1e')]);}return _0x3c291f['getTags'](_0xaee5b6);}})['then'](function(_0xebf707){if(_0xebf707){return _0xebf707?{'count':_0x2d40b0,'rows':_0xebf707}:null;}})[_0xea51('0x26')](respondWithResult(_0x321c71,null))[_0xea51('0x44')](handleError(_0x321c71,null));};exports[_0xea51('0x53')]=function(_0x5ab3ff,_0xf82eec,_0x4e8e04){if(_0x5ab3ff[_0xea51('0x4c')]['id']){delete _0x5ab3ff[_0xea51('0x4c')]['id'];}return db['FreshdeskConfiguration'][_0xea51('0x4e')]({'where':{'id':_0x5ab3ff[_0xea51('0x46')]['id']}})[_0xea51('0x26')](handleEntityNotFound(_0xf82eec,null))[_0xea51('0x26')](function(_0x29f5a5){if(_0x29f5a5){return _0x29f5a5['setTags'](_0x5ab3ff[_0xea51('0x4c')][_0xea51('0x54')]||[]);}return null;})[_0xea51('0x26')](respondWithResult(_0xf82eec,null))[_0xea51('0x44')](handleError(_0xf82eec,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1f9b=['api','moment','bluebird','request-promise','rimraf','./intFreshdeskConfiguration.attributes','exports','define','FreshdeskConfiguration','int_freshdesk_configurations','lodash','util','../../config/logger'];(function(_0x302dde,_0x5c0542){var _0xee1172=function(_0x2375fb){while(--_0x2375fb){_0x302dde['push'](_0x302dde['shift']());}};_0xee1172(++_0x5c0542);}(_0x1f9b,0x14f));var _0xb1f9=function(_0x275ca0,_0x3706c9){_0x275ca0=_0x275ca0-0x0;var _0x33cd37=_0x1f9b[_0x275ca0];return _0x33cd37;};'use strict';var _=require(_0xb1f9('0x0'));var util=require(_0xb1f9('0x1'));var logger=require(_0xb1f9('0x2'))(_0xb1f9('0x3'));var moment=require(_0xb1f9('0x4'));var BPromise=require(_0xb1f9('0x5'));var rp=require(_0xb1f9('0x6'));var fs=require('fs');var path=require('path');var rimraf=require(_0xb1f9('0x7'));var config=require('../../config/environment');var attributes=require(_0xb1f9('0x8'));module[_0xb1f9('0x9')]=function(_0x3bb456,_0x587ed7){return _0x3bb456[_0xb1f9('0xa')](_0xb1f9('0xb'),attributes,{'tableName':_0xb1f9('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x043f=['rimraf','../../config/environment','exports','define','int_freshdesk_configurations','lodash','util','../../config/logger','api','moment','request-promise','path'];(function(_0xbad4f7,_0xe0c340){var _0x3f8c08=function(_0x49285f){while(--_0x49285f){_0xbad4f7['push'](_0xbad4f7['shift']());}};_0x3f8c08(++_0xe0c340);}(_0x043f,0xe9));var _0xf043=function(_0x4f22fe,_0x23f451){_0x4f22fe=_0x4f22fe-0x0;var _0x12adca=_0x043f[_0x4f22fe];return _0x12adca;};'use strict';var _=require(_0xf043('0x0'));var util=require(_0xf043('0x1'));var logger=require(_0xf043('0x2'))(_0xf043('0x3'));var moment=require(_0xf043('0x4'));var BPromise=require('bluebird');var rp=require(_0xf043('0x5'));var fs=require('fs');var path=require(_0xf043('0x6'));var rimraf=require(_0xf043('0x7'));var config=require(_0xf043('0x8'));var attributes=require('./intFreshdeskConfiguration.attributes');module[_0xf043('0x9')]=function(_0x4e7810,_0x953926){return _0x4e7810[_0xf043('0xa')]('FreshdeskConfiguration',attributes,{'tableName':_0xf043('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x859f=['http','request','info','FreshdeskConfiguration,\x20%s,\x20%s','request\x20sent','debug','FreshdeskConfiguration,\x20%s,\x20%s,\x20%s','error','code','message','catch','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client'];(function(_0x339092,_0x256845){var _0x65377f=function(_0x38a42b){while(--_0x38a42b){_0x339092['push'](_0x339092['shift']());}};_0x65377f(++_0x256845);}(_0x859f,0x181));var _0xf859=function(_0x2e727c,_0x42a791){_0x2e727c=_0x2e727c-0x0;var _0x3be39d=_0x859f[_0x2e727c];return _0x3be39d;};'use strict';var _=require(_0xf859('0x0'));var util=require('util');var moment=require(_0xf859('0x1'));var BPromise=require(_0xf859('0x2'));var rs=require(_0xf859('0x3'));var fs=require('fs');var Redis=require(_0xf859('0x4'));var db=require(_0xf859('0x5'))['db'];var utils=require(_0xf859('0x6'));var logger=require(_0xf859('0x7'))(_0xf859('0x8'));var config=require(_0xf859('0x9'));var jayson=require('jayson/promise');var client=jayson[_0xf859('0xa')][_0xf859('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x5b818f,_0x3f756b,_0x42e750){return new BPromise(function(_0xceee48,_0x5701cf){return client[_0xf859('0xc')](_0x5b818f,_0x42e750)['then'](function(_0x1c1004){logger[_0xf859('0xd')](_0xf859('0xe'),_0x3f756b,_0xf859('0xf'));logger[_0xf859('0x10')](_0xf859('0x11'),_0x3f756b,_0xf859('0xf'),JSON['stringify'](_0x1c1004));if(_0x1c1004['error']){if(_0x1c1004[_0xf859('0x12')][_0xf859('0x13')]===0x1f4){logger['error']('FreshdeskConfiguration,\x20%s,\x20%s',_0x3f756b,_0x1c1004['error']['message']);return _0x5701cf(_0x1c1004['error'][_0xf859('0x14')]);}logger[_0xf859('0x12')](_0xf859('0xe'),_0x3f756b,_0x1c1004[_0xf859('0x12')]['message']);return _0xceee48(_0x1c1004['error']['message']);}else{logger[_0xf859('0xd')](_0xf859('0xe'),_0x3f756b,'request\x20sent');_0xceee48(_0x1c1004['result'][_0xf859('0x14')]);}})[_0xf859('0x15')](function(_0x407f7b){logger[_0xf859('0x12')](_0xf859('0xe'),_0x3f756b,_0x407f7b);_0x5701cf(_0x407f7b);});});}
\ No newline at end of file
+var _0xd69e=['request\x20sent','debug','error','code','FreshdeskConfiguration,\x20%s,\x20%s','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info'];(function(_0x1477ef,_0x54a5d6){var _0x164acd=function(_0x139149){while(--_0x139149){_0x1477ef['push'](_0x1477ef['shift']());}};_0x164acd(++_0x54a5d6);}(_0xd69e,0x161));var _0xed69=function(_0xbd08b4,_0x4790ed){_0xbd08b4=_0xbd08b4-0x0;var _0x314f1e=_0xd69e[_0xbd08b4];return _0x314f1e;};'use strict';var _=require(_0xed69('0x0'));var util=require(_0xed69('0x1'));var moment=require(_0xed69('0x2'));var BPromise=require(_0xed69('0x3'));var rs=require(_0xed69('0x4'));var fs=require('fs');var Redis=require(_0xed69('0x5'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xed69('0x6'))(_0xed69('0x7'));var config=require(_0xed69('0x8'));var jayson=require(_0xed69('0x9'));var client=jayson[_0xed69('0xa')][_0xed69('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x5de9f0,_0x3a8c11,_0xdfdde1){return new BPromise(function(_0x4d6c04,_0x56b91b){return client[_0xed69('0xc')](_0x5de9f0,_0xdfdde1)[_0xed69('0xd')](function(_0x414b01){logger[_0xed69('0xe')]('FreshdeskConfiguration,\x20%s,\x20%s',_0x3a8c11,_0xed69('0xf'));logger[_0xed69('0x10')]('FreshdeskConfiguration,\x20%s,\x20%s,\x20%s',_0x3a8c11,_0xed69('0xf'),JSON['stringify'](_0x414b01));if(_0x414b01['error']){if(_0x414b01[_0xed69('0x11')][_0xed69('0x12')]===0x1f4){logger[_0xed69('0x11')](_0xed69('0x13'),_0x3a8c11,_0x414b01[_0xed69('0x11')][_0xed69('0x14')]);return _0x56b91b(_0x414b01[_0xed69('0x11')][_0xed69('0x14')]);}logger[_0xed69('0x11')](_0xed69('0x13'),_0x3a8c11,_0x414b01['error'][_0xed69('0x14')]);return _0x4d6c04(_0x414b01[_0xed69('0x11')][_0xed69('0x14')]);}else{logger[_0xed69('0xe')](_0xed69('0x13'),_0x3a8c11,_0xed69('0xf'));_0x4d6c04(_0x414b01[_0xed69('0x15')][_0xed69('0x14')]);}})[_0xed69('0x16')](function(_0x1a9603){logger['error'](_0xed69('0x13'),_0x3a8c11,_0x1a9603);_0x56b91b(_0x1a9603);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9702=['update','destroy','exports','multer','util','connect-timeout','Router','fs-extra','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/:id','show','post','create','put'];(function(_0x377fe4,_0x2efbfc){var _0xc19bac=function(_0x453012){while(--_0x453012){_0x377fe4['push'](_0x377fe4['shift']());}};_0xc19bac(++_0x2efbfc);}(_0x9702,0xdb));var _0x2970=function(_0x6ea956,_0x44b107){_0x6ea956=_0x6ea956-0x0;var _0x343f21=_0x9702[_0x6ea956];return _0x343f21;};'use strict';var multer=require(_0x2970('0x0'));var util=require(_0x2970('0x1'));var path=require('path');var timeout=require(_0x2970('0x2'));var express=require('express');var router=express[_0x2970('0x3')]();var fs_extra=require(_0x2970('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x2970('0x5'));var config=require(_0x2970('0x6'));var controller=require('./intFreshdeskField.controller');router[_0x2970('0x7')]('/',auth[_0x2970('0x8')](),controller[_0x2970('0x9')]);router[_0x2970('0x7')](_0x2970('0xa'),auth[_0x2970('0x8')](),controller[_0x2970('0xb')]);router[_0x2970('0xc')]('/',auth[_0x2970('0x8')](),controller[_0x2970('0xd')]);router[_0x2970('0xe')](_0x2970('0xa'),auth[_0x2970('0x8')](),controller[_0x2970('0xf')]);router['delete'](_0x2970('0xa'),auth['isAuthenticated'](),controller[_0x2970('0x10')]);module[_0x2970('0x11')]=router;
\ No newline at end of file
+var _0xca00=['update','delete','destroy','exports','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intFreshdeskField.controller','isAuthenticated','index','/:id','show','post','create'];(function(_0x25ffc5,_0x39cda3){var _0x3b8b45=function(_0x5664c3){while(--_0x5664c3){_0x25ffc5['push'](_0x25ffc5['shift']());}};_0x3b8b45(++_0x39cda3);}(_0xca00,0x82));var _0x0ca0=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xca00[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x0ca0('0x0'));var timeout=require(_0x0ca0('0x1'));var express=require(_0x0ca0('0x2'));var router=express['Router']();var fs_extra=require(_0x0ca0('0x3'));var auth=require(_0x0ca0('0x4'));var interaction=require(_0x0ca0('0x5'));var config=require(_0x0ca0('0x6'));var controller=require(_0x0ca0('0x7'));router['get']('/',auth[_0x0ca0('0x8')](),controller[_0x0ca0('0x9')]);router['get'](_0x0ca0('0xa'),auth['isAuthenticated'](),controller[_0x0ca0('0xb')]);router[_0x0ca0('0xc')]('/',auth[_0x0ca0('0x8')](),controller[_0x0ca0('0xd')]);router['put']('/:id',auth[_0x0ca0('0x8')](),controller[_0x0ca0('0xe')]);router[_0x0ca0('0xf')]('/:id',auth[_0x0ca0('0x8')](),controller[_0x0ca0('0x10')]);module[_0x0ca0('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x30fb=['STRING','BOOLEAN','sequelize','exports','ENUM','variable','picklist','customVariable'];(function(_0xe66cf2,_0x32ba5f){var _0x2d84e7=function(_0x58a7d8){while(--_0x58a7d8){_0xe66cf2['push'](_0xe66cf2['shift']());}};_0x2d84e7(++_0x32ba5f);}(_0x30fb,0x82));var _0xb30f=function(_0x18473b,_0x140806){_0x18473b=_0x18473b-0x0;var _0x3f8b44=_0x30fb[_0x18473b];return _0x3f8b44;};'use strict';var Sequelize=require(_0xb30f('0x0'));module[_0xb30f('0x1')]={'type':{'type':Sequelize[_0xb30f('0x2')]('string',_0xb30f('0x3'),'customVariable','keyValue',_0xb30f('0x4')),'defaultValue':'string'},'content':{'type':Sequelize['STRING']},'key':{'type':Sequelize['STRING']},'keyType':{'type':Sequelize[_0xb30f('0x2')]('string','variable',_0xb30f('0x5'))},'keyContent':{'type':Sequelize[_0xb30f('0x6')]},'idField':{'type':Sequelize[_0xb30f('0x6')]},'nameField':{'type':Sequelize[_0xb30f('0x6')]},'customField':{'type':Sequelize[_0xb30f('0x7')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0xb30f('0x6')]}};
\ No newline at end of file
+var _0x3d00=['ENUM','sequelize','string','variable','customVariable','keyValue','STRING'];(function(_0x53dace,_0x120c7f){var _0x432ebe=function(_0x1d7560){while(--_0x1d7560){_0x53dace['push'](_0x53dace['shift']());}};_0x432ebe(++_0x120c7f);}(_0x3d00,0x1a5));var _0x03d0=function(_0x267aaa,_0x171c29){_0x267aaa=_0x267aaa-0x0;var _0x5a5038=_0x3d00[_0x267aaa];return _0x5a5038;};'use strict';var Sequelize=require(_0x03d0('0x0'));module['exports']={'type':{'type':Sequelize['ENUM'](_0x03d0('0x1'),_0x03d0('0x2'),_0x03d0('0x3'),_0x03d0('0x4'),'picklist'),'defaultValue':'string'},'content':{'type':Sequelize[_0x03d0('0x5')]},'key':{'type':Sequelize['STRING']},'keyType':{'type':Sequelize[_0x03d0('0x6')]('string',_0x03d0('0x2'),_0x03d0('0x3'))},'keyContent':{'type':Sequelize[_0x03d0('0x5')]},'idField':{'type':Sequelize['STRING']},'nameField':{'type':Sequelize[_0x03d0('0x5')]},'customField':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x03d0('0x5')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x235a=['set','Content-Range','apply','reject','save','update','then','destroy','error','name','send','index','FreshdeskField','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','merge','map','VIRTUAL','filter','count','includeAll','include','findAll','rows','catch','show','params','find','create','body','eml-format','rimraf','zip-dir','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','../../components/auth/service','../../components/parsers/advancedSearch','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit'];(function(_0x4aeade,_0x236973){var _0x2d8b41=function(_0x209067){while(--_0x209067){_0x4aeade['push'](_0x4aeade['shift']());}};_0x2d8b41(++_0x236973);}(_0x235a,0x1ef));var _0xa235=function(_0x16d3e3,_0x3d68de){_0x16d3e3=_0x16d3e3-0x0;var _0x40441e=_0x235a[_0x16d3e3];return _0x40441e;};'use strict';var emlformat=require(_0xa235('0x0'));var rimraf=require(_0xa235('0x1'));var zipdir=require(_0xa235('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xa235('0x3'));var moment=require('moment');var BPromise=require(_0xa235('0x4'));var Mustache=require(_0xa235('0x5'));var util=require(_0xa235('0x6'));var path=require(_0xa235('0x7'));var sox=require(_0xa235('0x8'));var csv=require(_0xa235('0x9'));var ejs=require(_0xa235('0xa'));var fs=require('fs');var fs_extra=require(_0xa235('0xb'));var _=require('lodash');var squel=require(_0xa235('0xc'));var crypto=require(_0xa235('0xd'));var jsforce=require(_0xa235('0xe'));var deskjs=require(_0xa235('0xf'));var toCsv=require('to-csv');var querystring=require(_0xa235('0x10'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xa235('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0xa235('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require(_0xa235('0x13'));var config=require(_0xa235('0x14'));var licenseUtil=require(_0xa235('0x15'));var db=require(_0xa235('0x16'))['db'];function respondWithStatusCode(_0x5330db,_0x5510ff){_0x5510ff=_0x5510ff||0xcc;return function(_0x47aad7){if(_0x47aad7){return _0x5330db[_0xa235('0x17')](_0x5510ff);}return _0x5330db[_0xa235('0x18')](_0x5510ff)[_0xa235('0x19')]();};}function respondWithResult(_0x3bf6fc,_0x36b4b1){_0x36b4b1=_0x36b4b1||0xc8;return function(_0x44ea6a){if(_0x44ea6a){return _0x3bf6fc[_0xa235('0x18')](_0x36b4b1)[_0xa235('0x1a')](_0x44ea6a);}};}function respondWithFilteredResult(_0x1369de,_0x4aceee){return function(_0x352463){if(_0x352463){var _0x20cd67=typeof _0x4aceee[_0xa235('0x1b')]===_0xa235('0x1c')&&typeof _0x4aceee[_0xa235('0x1d')]===_0xa235('0x1c');var _0x5c6e95=_0x352463['count'];var _0x446ea2=_0x20cd67?0x0:_0x4aceee[_0xa235('0x1b')];var _0x2b3769=_0x20cd67?_0x352463['count']:_0x4aceee[_0xa235('0x1b')]+_0x4aceee[_0xa235('0x1d')];var _0x3ca514;if(_0x2b3769>=_0x5c6e95){_0x2b3769=_0x5c6e95;_0x3ca514=0xc8;}else{_0x3ca514=0xce;}_0x1369de[_0xa235('0x18')](_0x3ca514);return _0x1369de[_0xa235('0x1e')](_0xa235('0x1f'),_0x446ea2+'-'+_0x2b3769+'/'+_0x5c6e95)[_0xa235('0x1a')](_0x352463);}return null;};}function patchUpdates(_0x483771){return function(_0x5a3bea){try{jsonpatch[_0xa235('0x20')](_0x5a3bea,_0x483771,!![]);}catch(_0x21940f){return BPromise[_0xa235('0x21')](_0x21940f);}return _0x5a3bea[_0xa235('0x22')]();};}function saveUpdates(_0x2e38e,_0x3deeea){return function(_0x3d9f70){if(_0x3d9f70){return _0x3d9f70[_0xa235('0x23')](_0x2e38e)[_0xa235('0x24')](function(_0x216083){return _0x216083;});}return null;};}function removeEntity(_0x3219f1,_0x20292c){return function(_0xee45e1){if(_0xee45e1){return _0xee45e1[_0xa235('0x25')]()[_0xa235('0x24')](function(){_0x3219f1[_0xa235('0x18')](0xcc)[_0xa235('0x19')]();});}};}function handleEntityNotFound(_0x13c868,_0x976c9f){return function(_0x1cb892){if(!_0x1cb892){_0x13c868[_0xa235('0x17')](0x194);}return _0x1cb892;};}function handleError(_0x57f591,_0xe1176c){_0xe1176c=_0xe1176c||0x1f4;return function(_0x533b15){logger[_0xa235('0x26')](_0x533b15['stack']);if(_0x533b15[_0xa235('0x27')]){delete _0x533b15[_0xa235('0x27')];}_0x57f591[_0xa235('0x18')](_0xe1176c)[_0xa235('0x28')](_0x533b15);};}exports[_0xa235('0x29')]=function(_0x5d811a,_0x2585c7){var _0x612f2={},_0x55a21e={},_0x4b33ef={'count':0x0,'rows':[]};var _0x502df9=_['map'](db[_0xa235('0x2a')][_0xa235('0x2b')],function(_0x2d8073){return{'name':_0x2d8073[_0xa235('0x2c')],'type':_0x2d8073[_0xa235('0x2d')][_0xa235('0x2e')]};});_0x55a21e[_0xa235('0x2f')]=_['map'](_0x502df9,'name');_0x55a21e[_0xa235('0x30')]=_[_0xa235('0x31')](_0x5d811a['query']);_0x55a21e[_0xa235('0x32')]=_[_0xa235('0x33')](_0x55a21e[_0xa235('0x2f')],_0x55a21e[_0xa235('0x30')]);_0x612f2[_0xa235('0x34')]=_[_0xa235('0x33')](_0x55a21e[_0xa235('0x2f')],qs[_0xa235('0x35')](_0x5d811a['query'][_0xa235('0x35')]));_0x612f2['attributes']=_0x612f2[_0xa235('0x34')][_0xa235('0x36')]?_0x612f2[_0xa235('0x34')]:_0x55a21e[_0xa235('0x2f')];if(!_0x5d811a[_0xa235('0x30')][_0xa235('0x37')](_0xa235('0x38'))){_0x612f2[_0xa235('0x1d')]=qs[_0xa235('0x1d')](_0x5d811a[_0xa235('0x30')][_0xa235('0x1d')]);_0x612f2[_0xa235('0x1b')]=qs[_0xa235('0x1b')](_0x5d811a['query']['offset']);}_0x612f2['order']=qs[_0xa235('0x39')](_0x5d811a['query'][_0xa235('0x39')]);_0x612f2[_0xa235('0x3a')]=qs[_0xa235('0x32')](_[_0xa235('0x3b')](_0x5d811a[_0xa235('0x30')],_0x55a21e[_0xa235('0x32')]),_0x502df9);if(_0x5d811a[_0xa235('0x30')]['filter']){_0x612f2[_0xa235('0x3a')]=_[_0xa235('0x3c')](_0x612f2['where'],{'$or':_[_0xa235('0x3d')](_0x502df9,function(_0x3fa927){if(_0x3fa927[_0xa235('0x2d')]!==_0xa235('0x3e')){var _0x45cc55={};_0x45cc55[_0x3fa927[_0xa235('0x27')]]={'$like':'%'+_0x5d811a[_0xa235('0x30')][_0xa235('0x3f')]+'%'};return _0x45cc55;}})});}_0x612f2=_[_0xa235('0x3c')]({},_0x612f2,_0x5d811a['options']);var _0x28c259={'where':_0x612f2[_0xa235('0x3a')]};return db[_0xa235('0x2a')][_0xa235('0x40')](_0x28c259)[_0xa235('0x24')](function(_0x542755){_0x4b33ef[_0xa235('0x40')]=_0x542755;if(_0x5d811a[_0xa235('0x30')][_0xa235('0x41')]){_0x612f2[_0xa235('0x42')]=[{'all':!![]}];}return db['FreshdeskField'][_0xa235('0x43')](_0x612f2);})[_0xa235('0x24')](function(_0x47801f){_0x4b33ef[_0xa235('0x44')]=_0x47801f;return _0x4b33ef;})[_0xa235('0x24')](respondWithFilteredResult(_0x2585c7,_0x612f2))[_0xa235('0x45')](handleError(_0x2585c7,null));};exports[_0xa235('0x46')]=function(_0x5c203c,_0x333ed8){var _0x4748d8={'raw':!![],'where':{'id':_0x5c203c[_0xa235('0x47')]['id']}},_0x1e90a9={};_0x1e90a9[_0xa235('0x2f')]=_['keys'](db[_0xa235('0x2a')][_0xa235('0x2b')]);_0x1e90a9[_0xa235('0x30')]=_[_0xa235('0x31')](_0x5c203c[_0xa235('0x30')]);_0x1e90a9['filters']=_[_0xa235('0x33')](_0x1e90a9[_0xa235('0x2f')],_0x1e90a9[_0xa235('0x30')]);_0x4748d8[_0xa235('0x34')]=_[_0xa235('0x33')](_0x1e90a9[_0xa235('0x2f')],qs[_0xa235('0x35')](_0x5c203c[_0xa235('0x30')]['fields']));_0x4748d8[_0xa235('0x34')]=_0x4748d8[_0xa235('0x34')][_0xa235('0x36')]?_0x4748d8[_0xa235('0x34')]:_0x1e90a9[_0xa235('0x2f')];if(_0x5c203c[_0xa235('0x30')][_0xa235('0x41')]){_0x4748d8[_0xa235('0x42')]=[{'all':!![]}];}_0x4748d8=_[_0xa235('0x3c')]({},_0x4748d8,_0x5c203c['options']);return db[_0xa235('0x2a')][_0xa235('0x48')](_0x4748d8)[_0xa235('0x24')](handleEntityNotFound(_0x333ed8,null))[_0xa235('0x24')](respondWithResult(_0x333ed8,null))[_0xa235('0x45')](handleError(_0x333ed8,null));};exports['create']=function(_0x22f11c,_0x11b5e7){return db['FreshdeskField'][_0xa235('0x49')](_0x22f11c[_0xa235('0x4a')],{})[_0xa235('0x24')](respondWithResult(_0x11b5e7,0xc9))[_0xa235('0x45')](handleError(_0x11b5e7,null));};exports['update']=function(_0x16d9e8,_0x4909e9){if(_0x16d9e8[_0xa235('0x4a')]['id']){delete _0x16d9e8[_0xa235('0x4a')]['id'];}return db['FreshdeskField'][_0xa235('0x48')]({'where':{'id':_0x16d9e8[_0xa235('0x47')]['id']}})[_0xa235('0x24')](handleEntityNotFound(_0x4909e9,null))[_0xa235('0x24')](saveUpdates(_0x16d9e8[_0xa235('0x4a')],null))[_0xa235('0x24')](respondWithResult(_0x4909e9,null))[_0xa235('0x45')](handleError(_0x4909e9,null));};exports[_0xa235('0x25')]=function(_0x5ab614,_0x5033dc){return db['FreshdeskField'][_0xa235('0x48')]({'where':{'id':_0x5ab614[_0xa235('0x47')]['id']}})[_0xa235('0x24')](handleEntityNotFound(_0x5033dc,null))[_0xa235('0x24')](removeEntity(_0x5033dc,null))['catch'](handleError(_0x5033dc,null));};
\ No newline at end of file
+var _0x4483=['offset','undefined','limit','count','set','apply','reject','update','destroy','then','stack','name','send','index','FreshdeskField','type','key','query','keys','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','map','VIRTUAL','includeAll','include','findAll','catch','show','params','filters','options','find','create','body','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','sendStatus','status','end','json'];(function(_0x466379,_0x35aa91){var _0x48905d=function(_0x421ad6){while(--_0x421ad6){_0x466379['push'](_0x466379['shift']());}};_0x48905d(++_0x35aa91);}(_0x4483,0x1a3));var _0x3448=function(_0x415d00,_0x2b675b){_0x415d00=_0x415d00-0x0;var _0xfc057c=_0x4483[_0x415d00];return _0xfc057c;};'use strict';var emlformat=require(_0x3448('0x0'));var rimraf=require(_0x3448('0x1'));var zipdir=require(_0x3448('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x3448('0x3'));var moment=require(_0x3448('0x4'));var BPromise=require(_0x3448('0x5'));var Mustache=require(_0x3448('0x6'));var util=require(_0x3448('0x7'));var path=require('path');var sox=require(_0x3448('0x8'));var csv=require(_0x3448('0x9'));var ejs=require(_0x3448('0xa'));var fs=require('fs');var fs_extra=require(_0x3448('0xb'));var _=require(_0x3448('0xc'));var squel=require(_0x3448('0xd'));var crypto=require(_0x3448('0xe'));var jsforce=require(_0x3448('0xf'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x3448('0x10'));var Papa=require(_0x3448('0x11'));var Redis=require(_0x3448('0x12'));var authService=require(_0x3448('0x13'));var qs=require(_0x3448('0x14'));var as=require(_0x3448('0x15'));var hardwareService=require(_0x3448('0x16'));var logger=require(_0x3448('0x17'))(_0x3448('0x18'));var utils=require(_0x3448('0x19'));var config=require(_0x3448('0x1a'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x298ae6,_0x38fbb1){_0x38fbb1=_0x38fbb1||0xcc;return function(_0x5f52bd){if(_0x5f52bd){return _0x298ae6[_0x3448('0x1b')](_0x38fbb1);}return _0x298ae6[_0x3448('0x1c')](_0x38fbb1)[_0x3448('0x1d')]();};}function respondWithResult(_0x549306,_0x14104c){_0x14104c=_0x14104c||0xc8;return function(_0x2952a6){if(_0x2952a6){return _0x549306['status'](_0x14104c)[_0x3448('0x1e')](_0x2952a6);}};}function respondWithFilteredResult(_0x2c2da6,_0x46784f){return function(_0x4fc70f){if(_0x4fc70f){var _0x472518=typeof _0x46784f[_0x3448('0x1f')]===_0x3448('0x20')&&typeof _0x46784f[_0x3448('0x21')]===_0x3448('0x20');var _0x1b2081=_0x4fc70f[_0x3448('0x22')];var _0x425514=_0x472518?0x0:_0x46784f['offset'];var _0x1658cd=_0x472518?_0x4fc70f['count']:_0x46784f['offset']+_0x46784f['limit'];var _0x1e9774;if(_0x1658cd>=_0x1b2081){_0x1658cd=_0x1b2081;_0x1e9774=0xc8;}else{_0x1e9774=0xce;}_0x2c2da6[_0x3448('0x1c')](_0x1e9774);return _0x2c2da6[_0x3448('0x23')]('Content-Range',_0x425514+'-'+_0x1658cd+'/'+_0x1b2081)[_0x3448('0x1e')](_0x4fc70f);}return null;};}function patchUpdates(_0x392c8d){return function(_0x317de6){try{jsonpatch[_0x3448('0x24')](_0x317de6,_0x392c8d,!![]);}catch(_0x29a15a){return BPromise[_0x3448('0x25')](_0x29a15a);}return _0x317de6['save']();};}function saveUpdates(_0x54c7ee,_0x4e6716){return function(_0x1b3d5a){if(_0x1b3d5a){return _0x1b3d5a[_0x3448('0x26')](_0x54c7ee)['then'](function(_0x5b1f7c){return _0x5b1f7c;});}return null;};}function removeEntity(_0x2dcd40,_0x4371d6){return function(_0x22ad5c){if(_0x22ad5c){return _0x22ad5c[_0x3448('0x27')]()[_0x3448('0x28')](function(){_0x2dcd40['status'](0xcc)[_0x3448('0x1d')]();});}};}function handleEntityNotFound(_0x1b5c49,_0x114244){return function(_0x2088de){if(!_0x2088de){_0x1b5c49[_0x3448('0x1b')](0x194);}return _0x2088de;};}function handleError(_0x56b3ff,_0x329947){_0x329947=_0x329947||0x1f4;return function(_0x393081){logger['error'](_0x393081[_0x3448('0x29')]);if(_0x393081[_0x3448('0x2a')]){delete _0x393081[_0x3448('0x2a')];}_0x56b3ff[_0x3448('0x1c')](_0x329947)[_0x3448('0x2b')](_0x393081);};}exports[_0x3448('0x2c')]=function(_0x31be64,_0x95714e){var _0x5911b8={},_0x3307dc={},_0x450704={'count':0x0,'rows':[]};var _0xcfdc5=_['map'](db[_0x3448('0x2d')]['rawAttributes'],function(_0x486f2c){return{'name':_0x486f2c['fieldName'],'type':_0x486f2c[_0x3448('0x2e')][_0x3448('0x2f')]};});_0x3307dc['model']=_['map'](_0xcfdc5,_0x3448('0x2a'));_0x3307dc[_0x3448('0x30')]=_[_0x3448('0x31')](_0x31be64[_0x3448('0x30')]);_0x3307dc['filters']=_[_0x3448('0x32')](_0x3307dc[_0x3448('0x33')],_0x3307dc[_0x3448('0x30')]);_0x5911b8['attributes']=_[_0x3448('0x32')](_0x3307dc[_0x3448('0x33')],qs['fields'](_0x31be64['query'][_0x3448('0x34')]));_0x5911b8[_0x3448('0x35')]=_0x5911b8[_0x3448('0x35')][_0x3448('0x36')]?_0x5911b8['attributes']:_0x3307dc[_0x3448('0x33')];if(!_0x31be64[_0x3448('0x30')][_0x3448('0x37')](_0x3448('0x38'))){_0x5911b8['limit']=qs[_0x3448('0x21')](_0x31be64[_0x3448('0x30')]['limit']);_0x5911b8[_0x3448('0x1f')]=qs[_0x3448('0x1f')](_0x31be64[_0x3448('0x30')][_0x3448('0x1f')]);}_0x5911b8[_0x3448('0x39')]=qs[_0x3448('0x3a')](_0x31be64[_0x3448('0x30')][_0x3448('0x3a')]);_0x5911b8[_0x3448('0x3b')]=qs['filters'](_['pick'](_0x31be64[_0x3448('0x30')],_0x3307dc['filters']),_0xcfdc5);if(_0x31be64[_0x3448('0x30')][_0x3448('0x3c')]){_0x5911b8[_0x3448('0x3b')]=_[_0x3448('0x3d')](_0x5911b8['where'],{'$or':_[_0x3448('0x3e')](_0xcfdc5,function(_0x18fc16){if(_0x18fc16[_0x3448('0x2e')]!==_0x3448('0x3f')){var _0x2e83c6={};_0x2e83c6[_0x18fc16[_0x3448('0x2a')]]={'$like':'%'+_0x31be64[_0x3448('0x30')][_0x3448('0x3c')]+'%'};return _0x2e83c6;}})});}_0x5911b8=_[_0x3448('0x3d')]({},_0x5911b8,_0x31be64['options']);var _0x39b22e={'where':_0x5911b8[_0x3448('0x3b')]};return db[_0x3448('0x2d')][_0x3448('0x22')](_0x39b22e)[_0x3448('0x28')](function(_0x58963d){_0x450704[_0x3448('0x22')]=_0x58963d;if(_0x31be64[_0x3448('0x30')][_0x3448('0x40')]){_0x5911b8[_0x3448('0x41')]=[{'all':!![]}];}return db[_0x3448('0x2d')][_0x3448('0x42')](_0x5911b8);})[_0x3448('0x28')](function(_0x3db5f1){_0x450704['rows']=_0x3db5f1;return _0x450704;})[_0x3448('0x28')](respondWithFilteredResult(_0x95714e,_0x5911b8))[_0x3448('0x43')](handleError(_0x95714e,null));};exports[_0x3448('0x44')]=function(_0x4a04d0,_0x2465ff){var _0x1d2a7c={'raw':!![],'where':{'id':_0x4a04d0[_0x3448('0x45')]['id']}},_0x21f989={};_0x21f989[_0x3448('0x33')]=_[_0x3448('0x31')](db[_0x3448('0x2d')]['rawAttributes']);_0x21f989[_0x3448('0x30')]=_[_0x3448('0x31')](_0x4a04d0[_0x3448('0x30')]);_0x21f989[_0x3448('0x46')]=_[_0x3448('0x32')](_0x21f989[_0x3448('0x33')],_0x21f989['query']);_0x1d2a7c[_0x3448('0x35')]=_['intersection'](_0x21f989['model'],qs[_0x3448('0x34')](_0x4a04d0[_0x3448('0x30')]['fields']));_0x1d2a7c[_0x3448('0x35')]=_0x1d2a7c[_0x3448('0x35')]['length']?_0x1d2a7c[_0x3448('0x35')]:_0x21f989[_0x3448('0x33')];if(_0x4a04d0['query'][_0x3448('0x40')]){_0x1d2a7c[_0x3448('0x41')]=[{'all':!![]}];}_0x1d2a7c=_[_0x3448('0x3d')]({},_0x1d2a7c,_0x4a04d0[_0x3448('0x47')]);return db[_0x3448('0x2d')][_0x3448('0x48')](_0x1d2a7c)[_0x3448('0x28')](handleEntityNotFound(_0x2465ff,null))['then'](respondWithResult(_0x2465ff,null))['catch'](handleError(_0x2465ff,null));};exports[_0x3448('0x49')]=function(_0x3c9b82,_0x1b82e7){return db[_0x3448('0x2d')]['create'](_0x3c9b82[_0x3448('0x4a')],{})[_0x3448('0x28')](respondWithResult(_0x1b82e7,0xc9))[_0x3448('0x43')](handleError(_0x1b82e7,null));};exports[_0x3448('0x26')]=function(_0x363374,_0x5d942b){if(_0x363374[_0x3448('0x4a')]['id']){delete _0x363374['body']['id'];}return db[_0x3448('0x2d')][_0x3448('0x48')]({'where':{'id':_0x363374['params']['id']}})[_0x3448('0x28')](handleEntityNotFound(_0x5d942b,null))[_0x3448('0x28')](saveUpdates(_0x363374[_0x3448('0x4a')],null))[_0x3448('0x28')](respondWithResult(_0x5d942b,null))[_0x3448('0x43')](handleError(_0x5d942b,null));};exports[_0x3448('0x27')]=function(_0xc769e1,_0x53236c){return db[_0x3448('0x2d')][_0x3448('0x48')]({'where':{'id':_0xc769e1['params']['id']}})['then'](handleEntityNotFound(_0x53236c,null))[_0x3448('0x28')](removeEntity(_0x53236c,null))[_0x3448('0x43')](handleError(_0x53236c,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf1e1=['freshdesk_unique_index','idField','FieldId','lodash','../../config/logger','moment','request-promise','path','rimraf','../../config/environment','./intFreshdeskField.attributes','exports','define','FreshdeskField','int_freshdesk_fields'];(function(_0x355de0,_0x3e1d21){var _0xad0de2=function(_0x5ac42d){while(--_0x5ac42d){_0x355de0['push'](_0x355de0['shift']());}};_0xad0de2(++_0x3e1d21);}(_0xf1e1,0x102));var _0x1f1e=function(_0x1d7791,_0x2a291f){_0x1d7791=_0x1d7791-0x0;var _0x2293f8=_0xf1e1[_0x1d7791];return _0x2293f8;};'use strict';var _=require(_0x1f1e('0x0'));var util=require('util');var logger=require(_0x1f1e('0x1'))('api');var moment=require(_0x1f1e('0x2'));var BPromise=require('bluebird');var rp=require(_0x1f1e('0x3'));var fs=require('fs');var path=require(_0x1f1e('0x4'));var rimraf=require(_0x1f1e('0x5'));var config=require(_0x1f1e('0x6'));var attributes=require(_0x1f1e('0x7'));module[_0x1f1e('0x8')]=function(_0x1bdcee,_0x3242af){return _0x1bdcee[_0x1f1e('0x9')](_0x1f1e('0xa'),attributes,{'tableName':_0x1f1e('0xb'),'paranoid':![],'indexes':[{'name':_0x1f1e('0xc'),'fields':[_0x1f1e('0xd'),_0x1f1e('0xe')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x782b=['FieldId','lodash','util','api','moment','request-promise','path','../../config/environment','exports','define','FreshdeskField','int_freshdesk_fields','freshdesk_unique_index'];(function(_0x44c742,_0x5d69a4){var _0x40fcf0=function(_0x453d3c){while(--_0x453d3c){_0x44c742['push'](_0x44c742['shift']());}};_0x40fcf0(++_0x5d69a4);}(_0x782b,0xd1));var _0xb782=function(_0x28ea3b,_0x13d7a1){_0x28ea3b=_0x28ea3b-0x0;var _0x5ac766=_0x782b[_0x28ea3b];return _0x5ac766;};'use strict';var _=require(_0xb782('0x0'));var util=require(_0xb782('0x1'));var logger=require('../../config/logger')(_0xb782('0x2'));var moment=require(_0xb782('0x3'));var BPromise=require('bluebird');var rp=require(_0xb782('0x4'));var fs=require('fs');var path=require(_0xb782('0x5'));var rimraf=require('rimraf');var config=require(_0xb782('0x6'));var attributes=require('./intFreshdeskField.attributes');module[_0xb782('0x7')]=function(_0x40a340,_0x447c3c){return _0x40a340[_0xb782('0x8')](_0xb782('0x9'),attributes,{'tableName':_0xb782('0xa'),'paranoid':![],'indexes':[{'name':_0xb782('0xb'),'fields':['idField',_0xb782('0xc')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5e2e=['message','catch','lodash','util','moment','ioredis','../../mysqldb','../../config/utils','../../config/environment','client','http','info','FreshdeskField,\x20%s,\x20%s','request\x20sent','debug','FreshdeskField,\x20%s,\x20%s,\x20%s','error'];(function(_0x3d257d,_0x4f69c3){var _0x1dc000=function(_0x53b9e2){while(--_0x53b9e2){_0x3d257d['push'](_0x3d257d['shift']());}};_0x1dc000(++_0x4f69c3);}(_0x5e2e,0xce));var _0xe5e2=function(_0x47c609,_0x11e4f1){_0x47c609=_0x47c609-0x0;var _0x2371e3=_0x5e2e[_0x47c609];return _0x2371e3;};'use strict';var _=require(_0xe5e2('0x0'));var util=require(_0xe5e2('0x1'));var moment=require(_0xe5e2('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xe5e2('0x3'));var db=require(_0xe5e2('0x4'))['db'];var utils=require(_0xe5e2('0x5'));var logger=require('../../config/logger')('rpc');var config=require(_0xe5e2('0x6'));var jayson=require('jayson/promise');var client=jayson[_0xe5e2('0x7')][_0xe5e2('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x5a3744,_0x35e6aa,_0x366122){return new BPromise(function(_0x44cad3,_0x1cc3c9){return client['request'](_0x5a3744,_0x366122)['then'](function(_0x9df011){logger[_0xe5e2('0x9')](_0xe5e2('0xa'),_0x35e6aa,_0xe5e2('0xb'));logger[_0xe5e2('0xc')](_0xe5e2('0xd'),_0x35e6aa,_0xe5e2('0xb'),JSON['stringify'](_0x9df011));if(_0x9df011[_0xe5e2('0xe')]){if(_0x9df011[_0xe5e2('0xe')]['code']===0x1f4){logger[_0xe5e2('0xe')](_0xe5e2('0xa'),_0x35e6aa,_0x9df011[_0xe5e2('0xe')][_0xe5e2('0xf')]);return _0x1cc3c9(_0x9df011[_0xe5e2('0xe')][_0xe5e2('0xf')]);}logger['error']('FreshdeskField,\x20%s,\x20%s',_0x35e6aa,_0x9df011['error']['message']);return _0x44cad3(_0x9df011['error'][_0xe5e2('0xf')]);}else{logger[_0xe5e2('0x9')]('FreshdeskField,\x20%s,\x20%s',_0x35e6aa,_0xe5e2('0xb'));_0x44cad3(_0x9df011['result']['message']);}})[_0xe5e2('0x10')](function(_0x114995){logger[_0xe5e2('0xe')](_0xe5e2('0xa'),_0x35e6aa,_0x114995);_0x1cc3c9(_0x114995);});});}
\ No newline at end of file
+var _0x9909=['../../config/environment','jayson/promise','client','http','request','then','info','FreshdeskField,\x20%s,\x20%s','request\x20sent','debug','stringify','error','message','result','lodash','util','bluebird','randomstring','ioredis','../../config/logger','rpc'];(function(_0x3027b0,_0x5dd103){var _0x14bac4=function(_0x6c5ad1){while(--_0x6c5ad1){_0x3027b0['push'](_0x3027b0['shift']());}};_0x14bac4(++_0x5dd103);}(_0x9909,0x19d));var _0x9990=function(_0x19ea3c,_0x4abfd6){_0x19ea3c=_0x19ea3c-0x0;var _0x49e763=_0x9909[_0x19ea3c];return _0x49e763;};'use strict';var _=require(_0x9990('0x0'));var util=require(_0x9990('0x1'));var moment=require('moment');var BPromise=require(_0x9990('0x2'));var rs=require(_0x9990('0x3'));var fs=require('fs');var Redis=require(_0x9990('0x4'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x9990('0x5'))(_0x9990('0x6'));var config=require(_0x9990('0x7'));var jayson=require(_0x9990('0x8'));var client=jayson[_0x9990('0x9')][_0x9990('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x49d88d,_0x24d7ef,_0x2b256a){return new BPromise(function(_0x1c7cf7,_0x1bd304){return client[_0x9990('0xb')](_0x49d88d,_0x2b256a)[_0x9990('0xc')](function(_0xa27397){logger[_0x9990('0xd')](_0x9990('0xe'),_0x24d7ef,_0x9990('0xf'));logger[_0x9990('0x10')]('FreshdeskField,\x20%s,\x20%s,\x20%s',_0x24d7ef,'request\x20sent',JSON[_0x9990('0x11')](_0xa27397));if(_0xa27397['error']){if(_0xa27397[_0x9990('0x12')]['code']===0x1f4){logger[_0x9990('0x12')]('FreshdeskField,\x20%s,\x20%s',_0x24d7ef,_0xa27397[_0x9990('0x12')]['message']);return _0x1bd304(_0xa27397[_0x9990('0x12')][_0x9990('0x13')]);}logger[_0x9990('0x12')](_0x9990('0xe'),_0x24d7ef,_0xa27397[_0x9990('0x12')][_0x9990('0x13')]);return _0x1c7cf7(_0xa27397['error']['message']);}else{logger[_0x9990('0xd')](_0x9990('0xe'),_0x24d7ef,_0x9990('0xf'));_0x1c7cf7(_0xa27397[_0x9990('0x14')][_0x9990('0x13')]);}})['catch'](function(_0x3a48df){logger['error']('FreshdeskField,\x20%s,\x20%s',_0x24d7ef,_0x3a48df);_0x1bd304(_0x3a48df);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf290=['destroy','exports','util','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','index','/:id','isAuthenticated','show','/:id/configurations','getConfigurations','/:id/fields','getFields','post','addConfiguration','put','update'];(function(_0x478da9,_0x38021d){var _0x4133e3=function(_0x1a3f0f){while(--_0x1a3f0f){_0x478da9['push'](_0x478da9['shift']());}};_0x4133e3(++_0x38021d);}(_0xf290,0xde));var _0x0f29=function(_0x19babd,_0x1d4ef7){_0x19babd=_0x19babd-0x0;var _0x314eaf=_0xf290[_0x19babd];return _0x314eaf;};'use strict';var multer=require('multer');var util=require(_0x0f29('0x0'));var path=require('path');var timeout=require(_0x0f29('0x1'));var express=require('express');var router=express[_0x0f29('0x2')]();var fs_extra=require(_0x0f29('0x3'));var auth=require(_0x0f29('0x4'));var interaction=require(_0x0f29('0x5'));var config=require(_0x0f29('0x6'));var controller=require('./intFreshsalesAccount.controller');router[_0x0f29('0x7')]('/',auth['isAuthenticated'](),controller[_0x0f29('0x8')]);router[_0x0f29('0x7')](_0x0f29('0x9'),auth[_0x0f29('0xa')](),controller[_0x0f29('0xb')]);router[_0x0f29('0x7')](_0x0f29('0xc'),auth[_0x0f29('0xa')](),controller[_0x0f29('0xd')]);router[_0x0f29('0x7')](_0x0f29('0xe'),auth[_0x0f29('0xa')](),controller[_0x0f29('0xf')]);router[_0x0f29('0x10')]('/',auth[_0x0f29('0xa')](),controller['create']);router[_0x0f29('0x10')]('/:id/configurations',auth[_0x0f29('0xa')](),controller[_0x0f29('0x11')]);router[_0x0f29('0x12')](_0x0f29('0x9'),auth[_0x0f29('0xa')](),controller[_0x0f29('0x13')]);router['delete'](_0x0f29('0x9'),auth[_0x0f29('0xa')](),controller[_0x0f29('0x14')]);module[_0x0f29('0x15')]=router;
\ No newline at end of file
+var _0x34b7=['getFields','post','create','/:id/configurations','addConfiguration','put','update','delete','destroy','exports','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','./intFreshsalesAccount.controller','get','isAuthenticated','index','/:id','show'];(function(_0x4fbfd9,_0x3ab91a){var _0x31dc94=function(_0x11e53b){while(--_0x11e53b){_0x4fbfd9['push'](_0x4fbfd9['shift']());}};_0x31dc94(++_0x3ab91a);}(_0x34b7,0x196));var _0x734b=function(_0x1b9d41,_0xd4009d){_0x1b9d41=_0x1b9d41-0x0;var _0x38ec46=_0x34b7[_0x1b9d41];return _0x38ec46;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x734b('0x0'));var timeout=require(_0x734b('0x1'));var express=require(_0x734b('0x2'));var router=express[_0x734b('0x3')]();var fs_extra=require(_0x734b('0x4'));var auth=require(_0x734b('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x734b('0x6'));router[_0x734b('0x7')]('/',auth[_0x734b('0x8')](),controller[_0x734b('0x9')]);router[_0x734b('0x7')](_0x734b('0xa'),auth['isAuthenticated'](),controller[_0x734b('0xb')]);router[_0x734b('0x7')]('/:id/configurations',auth['isAuthenticated'](),controller['getConfigurations']);router[_0x734b('0x7')]('/:id/fields',auth[_0x734b('0x8')](),controller[_0x734b('0xc')]);router[_0x734b('0xd')]('/',auth[_0x734b('0x8')](),controller[_0x734b('0xe')]);router[_0x734b('0xd')](_0x734b('0xf'),auth[_0x734b('0x8')](),controller[_0x734b('0x10')]);router[_0x734b('0x11')](_0x734b('0xa'),auth[_0x734b('0x8')](),controller[_0x734b('0x12')]);router[_0x734b('0x13')]('/:id',auth[_0x734b('0x8')](),controller[_0x734b('0x14')]);module[_0x734b('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1a85=['STRING','remoteUri'];(function(_0x288ceb,_0x185eaf){var _0x5368a9=function(_0x15e601){while(--_0x15e601){_0x288ceb['push'](_0x288ceb['shift']());}};_0x5368a9(++_0x185eaf);}(_0x1a85,0x178));var _0x51a8=function(_0x5160bf,_0x511947){_0x5160bf=_0x5160bf-0x0;var _0x1d33a9=_0x1a85[_0x5160bf];return _0x1d33a9;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize[_0x51a8('0x0')]},'description':{'type':Sequelize[_0x51a8('0x0')]},'username':{'type':Sequelize[_0x51a8('0x0')],'unique':'username'},'apiKey':{'type':Sequelize['STRING']},'remoteUri':{'type':Sequelize[_0x51a8('0x0')],'unique':_0x51a8('0x1')},'serverUrl':{'type':Sequelize[_0x51a8('0x0')],'allowNull':![]}};
\ No newline at end of file
+var _0x430c=['sequelize','STRING','username'];(function(_0x4bc035,_0xc72779){var _0x501a56=function(_0x3744f3){while(--_0x3744f3){_0x4bc035['push'](_0x4bc035['shift']());}};_0x501a56(++_0xc72779);}(_0x430c,0x1a1));var _0xc430=function(_0xe1b5f6,_0x210c09){_0xe1b5f6=_0xe1b5f6-0x0;var _0x44636e=_0x430c[_0xe1b5f6];return _0x44636e;};'use strict';var Sequelize=require(_0xc430('0x0'));module['exports']={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0xc430('0x1')]},'username':{'type':Sequelize[_0xc430('0x1')],'unique':_0xc430('0x2')},'apiKey':{'type':Sequelize['STRING']},'remoteUri':{'type':Sequelize['STRING'],'unique':'remoteUri'},'serverUrl':{'type':Sequelize['STRING'],'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf9c7=['params','FreshsalesAccount','include','merge','options','create','body','find','getConfigurations','findOne','FreshsalesConfiguration','addConfiguration','Subjects','getSubjects','Descriptions','getDescriptions','FreshsalesField','username','remoteUri','apiKey','substring','lastIndexOf','GET','format','%s%s','/api/selector/owners','email','Requested\x20Resource\x20not\x20Found','test','getFields','stringify','send','Wrong\x20credentials','statusCode','eml-format','zip-dir','fast-json-patch','request-promise','moment','sox','ejs','lodash','crypto','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../components/integrations/configuration','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','reject','update','then','destroy','error','stack','name','index','map','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','includeAll','catch'];(function(_0x149ebb,_0x1f1e8d){var _0x39f583=function(_0x419aaf){while(--_0x419aaf){_0x149ebb['push'](_0x149ebb['shift']());}};_0x39f583(++_0x1f1e8d);}(_0xf9c7,0x1aa));var _0x7f9c=function(_0x46200b,_0x452e83){_0x46200b=_0x46200b-0x0;var _0x41be49=_0xf9c7[_0x46200b];return _0x41be49;};'use strict';var emlformat=require(_0x7f9c('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x7f9c('0x1'));var jsonpatch=require(_0x7f9c('0x2'));var rp=require(_0x7f9c('0x3'));var moment=require(_0x7f9c('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require(_0x7f9c('0x5'));var csv=require('to-csv');var ejs=require(_0x7f9c('0x6'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x7f9c('0x7'));var squel=require('squel');var crypto=require(_0x7f9c('0x8'));var jsforce=require('jsforce');var deskjs=require(_0x7f9c('0x9'));var toCsv=require(_0x7f9c('0xa'));var querystring=require(_0x7f9c('0xb'));var Papa=require(_0x7f9c('0xc'));var Redis=require(_0x7f9c('0xd'));var authService=require(_0x7f9c('0xe'));var qs=require(_0x7f9c('0xf'));var as=require(_0x7f9c('0x10'));var hardwareService=require(_0x7f9c('0x11'));var logger=require(_0x7f9c('0x12'))('api');var utils=require(_0x7f9c('0x13'));var config=require(_0x7f9c('0x14'));var licenseUtil=require(_0x7f9c('0x15'));var db=require('../../mysqldb')['db'];var integrations=require(_0x7f9c('0x16'));function respondWithStatusCode(_0x5841d8,_0x2368ba){_0x2368ba=_0x2368ba||0xcc;return function(_0x42fcca){if(_0x42fcca){return _0x5841d8[_0x7f9c('0x17')](_0x2368ba);}return _0x5841d8[_0x7f9c('0x18')](_0x2368ba)[_0x7f9c('0x19')]();};}function respondWithResult(_0x5d440d,_0x5cdd24){_0x5cdd24=_0x5cdd24||0xc8;return function(_0x116c46){if(_0x116c46){return _0x5d440d['status'](_0x5cdd24)[_0x7f9c('0x1a')](_0x116c46);}};}function respondWithFilteredResult(_0x4af4c4,_0x41fbf8){return function(_0x2ba309){if(_0x2ba309){var _0x258106=typeof _0x41fbf8[_0x7f9c('0x1b')]===_0x7f9c('0x1c')&&typeof _0x41fbf8[_0x7f9c('0x1d')]===_0x7f9c('0x1c');var _0x405347=_0x2ba309[_0x7f9c('0x1e')];var _0x212d3a=_0x258106?0x0:_0x41fbf8[_0x7f9c('0x1b')];var _0x3df85b=_0x258106?_0x2ba309[_0x7f9c('0x1e')]:_0x41fbf8[_0x7f9c('0x1b')]+_0x41fbf8[_0x7f9c('0x1d')];var _0x520945;if(_0x3df85b>=_0x405347){_0x3df85b=_0x405347;_0x520945=0xc8;}else{_0x520945=0xce;}_0x4af4c4[_0x7f9c('0x18')](_0x520945);return _0x4af4c4[_0x7f9c('0x1f')](_0x7f9c('0x20'),_0x212d3a+'-'+_0x3df85b+'/'+_0x405347)[_0x7f9c('0x1a')](_0x2ba309);}return null;};}function patchUpdates(_0x3fe0ab){return function(_0x59870c){try{jsonpatch['apply'](_0x59870c,_0x3fe0ab,!![]);}catch(_0x28a355){return BPromise[_0x7f9c('0x21')](_0x28a355);}return _0x59870c['save']();};}function saveUpdates(_0x4a6129,_0x357374){return function(_0x3731c8){if(_0x3731c8){return _0x3731c8[_0x7f9c('0x22')](_0x4a6129)[_0x7f9c('0x23')](function(_0x270b4d){return _0x270b4d;});}return null;};}function removeEntity(_0x5b253c,_0x112693){return function(_0x4c2efe){if(_0x4c2efe){return _0x4c2efe[_0x7f9c('0x24')]()[_0x7f9c('0x23')](function(){_0x5b253c[_0x7f9c('0x18')](0xcc)[_0x7f9c('0x19')]();});}};}function handleEntityNotFound(_0x42cdc0,_0x29e0f8){return function(_0x382eb1){if(!_0x382eb1){_0x42cdc0[_0x7f9c('0x17')](0x194);}return _0x382eb1;};}function handleError(_0x4edf5d,_0x437154){_0x437154=_0x437154||0x1f4;return function(_0x1ba60e){logger[_0x7f9c('0x25')](_0x1ba60e[_0x7f9c('0x26')]);if(_0x1ba60e['name']){delete _0x1ba60e[_0x7f9c('0x27')];}_0x4edf5d['status'](_0x437154)['send'](_0x1ba60e);};}exports[_0x7f9c('0x28')]=function(_0x198403,_0x41e270){var _0x4a2778={},_0x194bb0={},_0x3dba43={'count':0x0,'rows':[]};var _0x516761=_[_0x7f9c('0x29')](db['FreshsalesAccount'][_0x7f9c('0x2a')],function(_0x632f57){return{'name':_0x632f57[_0x7f9c('0x2b')],'type':_0x632f57[_0x7f9c('0x2c')][_0x7f9c('0x2d')]};});_0x194bb0[_0x7f9c('0x2e')]=_[_0x7f9c('0x29')](_0x516761,'name');_0x194bb0[_0x7f9c('0x2f')]=_[_0x7f9c('0x30')](_0x198403[_0x7f9c('0x2f')]);_0x194bb0[_0x7f9c('0x31')]=_[_0x7f9c('0x32')](_0x194bb0[_0x7f9c('0x2e')],_0x194bb0['query']);_0x4a2778[_0x7f9c('0x33')]=_[_0x7f9c('0x32')](_0x194bb0['model'],qs[_0x7f9c('0x34')](_0x198403[_0x7f9c('0x2f')][_0x7f9c('0x34')]));_0x4a2778['attributes']=_0x4a2778[_0x7f9c('0x33')][_0x7f9c('0x35')]?_0x4a2778[_0x7f9c('0x33')]:_0x194bb0[_0x7f9c('0x2e')];if(!_0x198403[_0x7f9c('0x2f')][_0x7f9c('0x36')](_0x7f9c('0x37'))){_0x4a2778[_0x7f9c('0x1d')]=qs['limit'](_0x198403['query'][_0x7f9c('0x1d')]);_0x4a2778['offset']=qs[_0x7f9c('0x1b')](_0x198403['query'][_0x7f9c('0x1b')]);}_0x4a2778[_0x7f9c('0x38')]=qs[_0x7f9c('0x39')](_0x198403[_0x7f9c('0x2f')][_0x7f9c('0x39')]);_0x4a2778[_0x7f9c('0x3a')]=qs[_0x7f9c('0x31')](_[_0x7f9c('0x3b')](_0x198403[_0x7f9c('0x2f')],_0x194bb0[_0x7f9c('0x31')]),_0x516761);if(_0x198403[_0x7f9c('0x2f')][_0x7f9c('0x3c')]){_0x4a2778[_0x7f9c('0x3a')]=_['merge'](_0x4a2778[_0x7f9c('0x3a')],{'$or':_['map'](_0x516761,function(_0x474944){if(_0x474944[_0x7f9c('0x2c')]!==_0x7f9c('0x3d')){var _0x26b23d={};_0x26b23d[_0x474944[_0x7f9c('0x27')]]={'$like':'%'+_0x198403[_0x7f9c('0x2f')]['filter']+'%'};return _0x26b23d;}})});}_0x4a2778=_['merge']({},_0x4a2778,_0x198403['options']);var _0x21b1f6={'where':_0x4a2778[_0x7f9c('0x3a')]};return db['FreshsalesAccount'][_0x7f9c('0x1e')](_0x21b1f6)['then'](function(_0x125862){_0x3dba43[_0x7f9c('0x1e')]=_0x125862;if(_0x198403[_0x7f9c('0x2f')][_0x7f9c('0x3e')]){_0x4a2778['include']=[{'all':!![]}];}return db['FreshsalesAccount']['findAll'](_0x4a2778);})['then'](function(_0x4cfca3){_0x3dba43['rows']=_0x4cfca3;return _0x3dba43;})[_0x7f9c('0x23')](respondWithFilteredResult(_0x41e270,_0x4a2778))[_0x7f9c('0x3f')](handleError(_0x41e270,null));};exports['show']=function(_0x3531dd,_0x1251f1){var _0x3ea60a={'raw':![],'where':{'id':_0x3531dd[_0x7f9c('0x40')]['id']}},_0x40cf69={};_0x40cf69[_0x7f9c('0x2e')]=_[_0x7f9c('0x30')](db[_0x7f9c('0x41')][_0x7f9c('0x2a')]);_0x40cf69['query']=_['keys'](_0x3531dd[_0x7f9c('0x2f')]);_0x40cf69['filters']=_[_0x7f9c('0x32')](_0x40cf69[_0x7f9c('0x2e')],_0x40cf69[_0x7f9c('0x2f')]);_0x3ea60a[_0x7f9c('0x33')]=_[_0x7f9c('0x32')](_0x40cf69['model'],qs[_0x7f9c('0x34')](_0x3531dd[_0x7f9c('0x2f')][_0x7f9c('0x34')]));_0x3ea60a[_0x7f9c('0x33')]=_0x3ea60a[_0x7f9c('0x33')][_0x7f9c('0x35')]?_0x3ea60a[_0x7f9c('0x33')]:_0x40cf69[_0x7f9c('0x2e')];if(_0x3531dd[_0x7f9c('0x2f')][_0x7f9c('0x3e')]){_0x3ea60a[_0x7f9c('0x42')]=[{'all':!![]}];}_0x3ea60a=_[_0x7f9c('0x43')]({},_0x3ea60a,_0x3531dd[_0x7f9c('0x44')]);return db['FreshsalesAccount']['find'](_0x3ea60a)[_0x7f9c('0x23')](handleEntityNotFound(_0x1251f1,null))[_0x7f9c('0x23')](respondWithResult(_0x1251f1,null))[_0x7f9c('0x3f')](handleError(_0x1251f1,null));};exports[_0x7f9c('0x45')]=function(_0x54826a,_0x49fccd){return db['FreshsalesAccount'][_0x7f9c('0x45')](_0x54826a[_0x7f9c('0x46')],{})[_0x7f9c('0x23')](respondWithResult(_0x49fccd,0xc9))[_0x7f9c('0x3f')](handleError(_0x49fccd,null));};exports[_0x7f9c('0x22')]=function(_0x595646,_0x8ade51){if(_0x595646[_0x7f9c('0x46')]['id']){delete _0x595646[_0x7f9c('0x46')]['id'];}return db['FreshsalesAccount'][_0x7f9c('0x47')]({'where':{'id':_0x595646[_0x7f9c('0x40')]['id']}})['then'](handleEntityNotFound(_0x8ade51,null))['then'](saveUpdates(_0x595646['body'],null))[_0x7f9c('0x23')](respondWithResult(_0x8ade51,null))[_0x7f9c('0x3f')](handleError(_0x8ade51,null));};exports[_0x7f9c('0x24')]=function(_0x4e32d1,_0x4fb785){return db[_0x7f9c('0x41')][_0x7f9c('0x47')]({'where':{'id':_0x4e32d1['params']['id']}})[_0x7f9c('0x23')](handleEntityNotFound(_0x4fb785,null))[_0x7f9c('0x23')](removeEntity(_0x4fb785,null))['catch'](handleError(_0x4fb785,null));};exports[_0x7f9c('0x48')]=function(_0x2784e8,_0x487eec,_0x4835e1){var _0x47a7b6={};var _0x3c5ac4={};var _0x3bad3e;var _0x45b2a3;return db[_0x7f9c('0x41')][_0x7f9c('0x49')]({'where':{'id':_0x2784e8[_0x7f9c('0x40')]['id']}})[_0x7f9c('0x23')](handleEntityNotFound(_0x487eec,null))['then'](function(_0x177842){if(_0x177842){_0x3bad3e=_0x177842;_0x3c5ac4[_0x7f9c('0x2e')]=_['keys'](db[_0x7f9c('0x4a')][_0x7f9c('0x2a')]);_0x3c5ac4[_0x7f9c('0x2f')]=_[_0x7f9c('0x30')](_0x2784e8[_0x7f9c('0x2f')]);_0x3c5ac4[_0x7f9c('0x31')]=_['intersection'](_0x3c5ac4[_0x7f9c('0x2e')],_0x3c5ac4[_0x7f9c('0x2f')]);_0x47a7b6['attributes']=_['intersection'](_0x3c5ac4[_0x7f9c('0x2e')],qs[_0x7f9c('0x34')](_0x2784e8[_0x7f9c('0x2f')][_0x7f9c('0x34')]));_0x47a7b6['attributes']=_0x47a7b6[_0x7f9c('0x33')]['length']?_0x47a7b6[_0x7f9c('0x33')]:_0x3c5ac4['model'];_0x47a7b6[_0x7f9c('0x38')]=qs[_0x7f9c('0x39')](_0x2784e8[_0x7f9c('0x2f')][_0x7f9c('0x39')]);_0x47a7b6[_0x7f9c('0x3a')]=qs[_0x7f9c('0x31')](_['pick'](_0x2784e8['query'],_0x3c5ac4[_0x7f9c('0x31')]));if(_0x2784e8[_0x7f9c('0x2f')][_0x7f9c('0x3c')]){_0x47a7b6[_0x7f9c('0x3a')]=_['merge'](_0x47a7b6[_0x7f9c('0x3a')],{'$or':_['map'](_0x47a7b6[_0x7f9c('0x33')],function(_0x2d4dd7){var _0x5e89f8={};_0x5e89f8[_0x2d4dd7]={'$like':'%'+_0x2784e8[_0x7f9c('0x2f')][_0x7f9c('0x3c')]+'%'};return _0x5e89f8;})});}_0x47a7b6=_[_0x7f9c('0x43')]({},_0x47a7b6,_0x2784e8[_0x7f9c('0x44')]);return _0x3bad3e[_0x7f9c('0x48')](_0x47a7b6);}})[_0x7f9c('0x23')](function(_0x336eae){if(_0x336eae){_0x45b2a3=_0x336eae[_0x7f9c('0x35')];if(!_0x2784e8[_0x7f9c('0x2f')][_0x7f9c('0x36')](_0x7f9c('0x37'))){_0x47a7b6[_0x7f9c('0x1d')]=qs[_0x7f9c('0x1d')](_0x2784e8[_0x7f9c('0x2f')][_0x7f9c('0x1d')]);_0x47a7b6[_0x7f9c('0x1b')]=qs[_0x7f9c('0x1b')](_0x2784e8[_0x7f9c('0x2f')][_0x7f9c('0x1b')]);}return _0x3bad3e[_0x7f9c('0x48')](_0x47a7b6);}})[_0x7f9c('0x23')](function(_0x4142af){if(_0x4142af){return _0x4142af?{'count':_0x45b2a3,'rows':_0x4142af}:null;}})[_0x7f9c('0x23')](respondWithResult(_0x487eec,null))[_0x7f9c('0x3f')](handleError(_0x487eec,null));};exports[_0x7f9c('0x4b')]=function(_0x37e5e5,_0x3fd773,_0x352e68){if(_0x37e5e5[_0x7f9c('0x46')]['id']){delete _0x37e5e5[_0x7f9c('0x46')]['id'];}return db[_0x7f9c('0x41')][_0x7f9c('0x49')]({'where':{'id':_0x37e5e5['params']['id']}})[_0x7f9c('0x23')](handleEntityNotFound(_0x3fd773,null))[_0x7f9c('0x23')](function(_0x171182){if(_0x171182){_0x37e5e5[_0x7f9c('0x46')]['AccountId']=_0x171182['id'];_0x37e5e5[_0x7f9c('0x46')][_0x7f9c('0x4c')]=integrations[_0x7f9c('0x4d')](_0x37e5e5[_0x7f9c('0x46')]['channel'],_0x37e5e5[_0x7f9c('0x46')][_0x7f9c('0x2c')]);_0x37e5e5[_0x7f9c('0x46')][_0x7f9c('0x4e')]=integrations[_0x7f9c('0x4f')](_0x37e5e5[_0x7f9c('0x46')]['channel'],_0x37e5e5['body'][_0x7f9c('0x2c')]);return db[_0x7f9c('0x4a')][_0x7f9c('0x45')](_0x37e5e5[_0x7f9c('0x46')],{'include':[{'model':db[_0x7f9c('0x50')],'as':_0x7f9c('0x4c')},{'model':db[_0x7f9c('0x50')],'as':_0x7f9c('0x4e')}]});}return null;})[_0x7f9c('0x23')](respondWithResult(_0x3fd773,null))['catch'](handleError(_0x3fd773,null));};exports['getFields']=function(_0x368d6f,_0x2066fc,_0x49d5ea){var _0x510615='';var _0x5012be='';return db['FreshsalesAccount']['findOne']({'where':{'id':_0x368d6f[_0x7f9c('0x40')]['id']},'attributes':['id',_0x7f9c('0x51'),_0x7f9c('0x52'),_0x7f9c('0x53')]})[_0x7f9c('0x23')](handleEntityNotFound(_0x2066fc,null))[_0x7f9c('0x23')](function(_0x1f6a30){if(_0x1f6a30){_0x5012be=_0x1f6a30[_0x7f9c('0x51')];_0x510615=_0x1f6a30[_0x7f9c('0x52')];var _0x3e7e19=_0x1f6a30[_0x7f9c('0x52')]['slice'](-0x1);if(_0x3e7e19==='/'){_0x510615=_0x510615[_0x7f9c('0x54')](0x0,_0x510615[_0x7f9c('0x55')](_0x3e7e19));}return rp({'method':_0x7f9c('0x56'),'uri':util[_0x7f9c('0x57')](_0x7f9c('0x58'),_0x510615,_0x7f9c('0x59')),'headers':{'Authorization':'Token\x20token='+_0x1f6a30[_0x7f9c('0x53')]},'json':!![]});}})[_0x7f9c('0x23')](function(_0x5be59b){if(_0x5be59b){var _0x368951=_0x5be59b['users'];var _0x42939f=![];var _0x173778=null;for(_0x173778=0x0;_0x173778<_0x368951[_0x7f9c('0x35')];_0x173778++){if(_0x368951[_0x173778][_0x7f9c('0x5a')]===_0x5012be){_0x42939f=!![];}}if(_0x42939f){return!![];}else{throw new Error({'statusCode':0x194,'message':_0x7f9c('0x5b')});}}})['then'](respondWithResult(_0x2066fc,null))['catch'](function(_0x1e2cb2){var _0xa6e147=_0x368d6f['query'][_0x7f9c('0x5c')]?0x1f4:_0x1e2cb2['statusCode']||0x1f4;logger[_0x7f9c('0x25')]('getFields,\x20%s,\x20%s,\x20%s',_0x7f9c('0x5d'),_0xa6e147,JSON[_0x7f9c('0x5e')](_0x1e2cb2));delete _0x1e2cb2['name'];if(_0xa6e147===0x191){_0xa6e147=0x190;}_0x2066fc[_0x7f9c('0x18')](_0xa6e147)[_0x7f9c('0x5f')](_0x368d6f['query']['test']?{'message':_0x7f9c('0x60'),'statusCode':_0x1e2cb2[_0x7f9c('0x61')]}:_0x1e2cb2);});};
\ No newline at end of file
+var _0xe758=['filters','intersection','attributes','fields','length','nolimit','order','sort','where','filter','merge','VIRTUAL','includeAll','include','catch','show','params','keys','options','find','create','body','update','getConfigurations','findOne','FreshsalesConfiguration','hasOwnProperty','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','FreshsalesField','username','remoteUri','apiKey','slice','lastIndexOf','format','%s%s','/api/selector/owners','users','email','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','getFields','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','json','offset','limit','count','set','apply','reject','save','then','destroy','error','stack','name','send','map','FreshsalesAccount','rawAttributes','fieldName','type','key','model','query'];(function(_0x2932f4,_0x26331a){var _0x264925=function(_0x11f624){while(--_0x11f624){_0x2932f4['push'](_0x2932f4['shift']());}};_0x264925(++_0x26331a);}(_0xe758,0x16a));var _0x8e75=function(_0x1584ee,_0x4f9c5c){_0x1584ee=_0x1584ee-0x0;var _0x2b51ce=_0xe758[_0x1584ee];return _0x2b51ce;};'use strict';var emlformat=require(_0x8e75('0x0'));var rimraf=require(_0x8e75('0x1'));var zipdir=require(_0x8e75('0x2'));var jsonpatch=require(_0x8e75('0x3'));var rp=require('request-promise');var moment=require(_0x8e75('0x4'));var BPromise=require(_0x8e75('0x5'));var Mustache=require(_0x8e75('0x6'));var util=require(_0x8e75('0x7'));var path=require(_0x8e75('0x8'));var sox=require(_0x8e75('0x9'));var csv=require(_0x8e75('0xa'));var ejs=require(_0x8e75('0xb'));var fs=require('fs');var fs_extra=require(_0x8e75('0xc'));var _=require(_0x8e75('0xd'));var squel=require(_0x8e75('0xe'));var crypto=require(_0x8e75('0xf'));var jsforce=require(_0x8e75('0x10'));var deskjs=require('desk.js');var toCsv=require(_0x8e75('0xa'));var querystring=require(_0x8e75('0x11'));var Papa=require(_0x8e75('0x12'));var Redis=require(_0x8e75('0x13'));var authService=require(_0x8e75('0x14'));var qs=require(_0x8e75('0x15'));var as=require(_0x8e75('0x16'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x8e75('0x17'));var utils=require(_0x8e75('0x18'));var config=require(_0x8e75('0x19'));var licenseUtil=require(_0x8e75('0x1a'));var db=require(_0x8e75('0x1b'))['db'];var integrations=require(_0x8e75('0x1c'));function respondWithStatusCode(_0x2567d5,_0x10c02d){_0x10c02d=_0x10c02d||0xcc;return function(_0x2e7a28){if(_0x2e7a28){return _0x2567d5[_0x8e75('0x1d')](_0x10c02d);}return _0x2567d5[_0x8e75('0x1e')](_0x10c02d)[_0x8e75('0x1f')]();};}function respondWithResult(_0x561708,_0x3b4b23){_0x3b4b23=_0x3b4b23||0xc8;return function(_0xa0ac6a){if(_0xa0ac6a){return _0x561708[_0x8e75('0x1e')](_0x3b4b23)[_0x8e75('0x20')](_0xa0ac6a);}};}function respondWithFilteredResult(_0x1ab322,_0x21bd49){return function(_0x45f4d9){if(_0x45f4d9){var _0x1f0496=typeof _0x21bd49[_0x8e75('0x21')]==='undefined'&&typeof _0x21bd49[_0x8e75('0x22')]==='undefined';var _0x385596=_0x45f4d9[_0x8e75('0x23')];var _0x342949=_0x1f0496?0x0:_0x21bd49[_0x8e75('0x21')];var _0x2e61ca=_0x1f0496?_0x45f4d9[_0x8e75('0x23')]:_0x21bd49[_0x8e75('0x21')]+_0x21bd49[_0x8e75('0x22')];var _0x2d4228;if(_0x2e61ca>=_0x385596){_0x2e61ca=_0x385596;_0x2d4228=0xc8;}else{_0x2d4228=0xce;}_0x1ab322[_0x8e75('0x1e')](_0x2d4228);return _0x1ab322[_0x8e75('0x24')]('Content-Range',_0x342949+'-'+_0x2e61ca+'/'+_0x385596)['json'](_0x45f4d9);}return null;};}function patchUpdates(_0x1383e7){return function(_0x5cad23){try{jsonpatch[_0x8e75('0x25')](_0x5cad23,_0x1383e7,!![]);}catch(_0x2db2e2){return BPromise[_0x8e75('0x26')](_0x2db2e2);}return _0x5cad23[_0x8e75('0x27')]();};}function saveUpdates(_0x433514,_0x2d7b94){return function(_0xf6a009){if(_0xf6a009){return _0xf6a009['update'](_0x433514)[_0x8e75('0x28')](function(_0x220e7d){return _0x220e7d;});}return null;};}function removeEntity(_0x4ec5d2,_0x16377d){return function(_0x56d92d){if(_0x56d92d){return _0x56d92d[_0x8e75('0x29')]()[_0x8e75('0x28')](function(){_0x4ec5d2[_0x8e75('0x1e')](0xcc)[_0x8e75('0x1f')]();});}};}function handleEntityNotFound(_0x3404b1,_0x4ee381){return function(_0x5de14d){if(!_0x5de14d){_0x3404b1[_0x8e75('0x1d')](0x194);}return _0x5de14d;};}function handleError(_0x21ac62,_0x45cd43){_0x45cd43=_0x45cd43||0x1f4;return function(_0x365b1b){logger[_0x8e75('0x2a')](_0x365b1b[_0x8e75('0x2b')]);if(_0x365b1b[_0x8e75('0x2c')]){delete _0x365b1b[_0x8e75('0x2c')];}_0x21ac62[_0x8e75('0x1e')](_0x45cd43)[_0x8e75('0x2d')](_0x365b1b);};}exports['index']=function(_0x2e7635,_0x2afa2c){var _0x4cb6b1={},_0x1a2ba9={},_0x19ba0f={'count':0x0,'rows':[]};var _0x297d06=_[_0x8e75('0x2e')](db[_0x8e75('0x2f')][_0x8e75('0x30')],function(_0x228b6c){return{'name':_0x228b6c[_0x8e75('0x31')],'type':_0x228b6c[_0x8e75('0x32')][_0x8e75('0x33')]};});_0x1a2ba9[_0x8e75('0x34')]=_[_0x8e75('0x2e')](_0x297d06,_0x8e75('0x2c'));_0x1a2ba9[_0x8e75('0x35')]=_['keys'](_0x2e7635[_0x8e75('0x35')]);_0x1a2ba9[_0x8e75('0x36')]=_[_0x8e75('0x37')](_0x1a2ba9[_0x8e75('0x34')],_0x1a2ba9['query']);_0x4cb6b1[_0x8e75('0x38')]=_[_0x8e75('0x37')](_0x1a2ba9[_0x8e75('0x34')],qs[_0x8e75('0x39')](_0x2e7635['query'][_0x8e75('0x39')]));_0x4cb6b1[_0x8e75('0x38')]=_0x4cb6b1['attributes'][_0x8e75('0x3a')]?_0x4cb6b1[_0x8e75('0x38')]:_0x1a2ba9[_0x8e75('0x34')];if(!_0x2e7635['query']['hasOwnProperty'](_0x8e75('0x3b'))){_0x4cb6b1[_0x8e75('0x22')]=qs[_0x8e75('0x22')](_0x2e7635[_0x8e75('0x35')][_0x8e75('0x22')]);_0x4cb6b1[_0x8e75('0x21')]=qs[_0x8e75('0x21')](_0x2e7635['query']['offset']);}_0x4cb6b1[_0x8e75('0x3c')]=qs[_0x8e75('0x3d')](_0x2e7635[_0x8e75('0x35')][_0x8e75('0x3d')]);_0x4cb6b1[_0x8e75('0x3e')]=qs['filters'](_['pick'](_0x2e7635[_0x8e75('0x35')],_0x1a2ba9['filters']),_0x297d06);if(_0x2e7635['query'][_0x8e75('0x3f')]){_0x4cb6b1[_0x8e75('0x3e')]=_[_0x8e75('0x40')](_0x4cb6b1[_0x8e75('0x3e')],{'$or':_['map'](_0x297d06,function(_0x3ff9e3){if(_0x3ff9e3[_0x8e75('0x32')]!==_0x8e75('0x41')){var _0x3da6e1={};_0x3da6e1[_0x3ff9e3[_0x8e75('0x2c')]]={'$like':'%'+_0x2e7635['query'][_0x8e75('0x3f')]+'%'};return _0x3da6e1;}})});}_0x4cb6b1=_[_0x8e75('0x40')]({},_0x4cb6b1,_0x2e7635['options']);var _0x3230f3={'where':_0x4cb6b1[_0x8e75('0x3e')]};return db[_0x8e75('0x2f')]['count'](_0x3230f3)[_0x8e75('0x28')](function(_0x2f0bb3){_0x19ba0f[_0x8e75('0x23')]=_0x2f0bb3;if(_0x2e7635[_0x8e75('0x35')][_0x8e75('0x42')]){_0x4cb6b1[_0x8e75('0x43')]=[{'all':!![]}];}return db[_0x8e75('0x2f')]['findAll'](_0x4cb6b1);})[_0x8e75('0x28')](function(_0x3104de){_0x19ba0f['rows']=_0x3104de;return _0x19ba0f;})['then'](respondWithFilteredResult(_0x2afa2c,_0x4cb6b1))[_0x8e75('0x44')](handleError(_0x2afa2c,null));};exports[_0x8e75('0x45')]=function(_0x17b572,_0x3e23e3){var _0x4b7452={'raw':![],'where':{'id':_0x17b572[_0x8e75('0x46')]['id']}},_0x5cb046={};_0x5cb046[_0x8e75('0x34')]=_['keys'](db[_0x8e75('0x2f')][_0x8e75('0x30')]);_0x5cb046['query']=_[_0x8e75('0x47')](_0x17b572[_0x8e75('0x35')]);_0x5cb046[_0x8e75('0x36')]=_[_0x8e75('0x37')](_0x5cb046[_0x8e75('0x34')],_0x5cb046['query']);_0x4b7452['attributes']=_[_0x8e75('0x37')](_0x5cb046[_0x8e75('0x34')],qs[_0x8e75('0x39')](_0x17b572[_0x8e75('0x35')]['fields']));_0x4b7452[_0x8e75('0x38')]=_0x4b7452[_0x8e75('0x38')][_0x8e75('0x3a')]?_0x4b7452['attributes']:_0x5cb046[_0x8e75('0x34')];if(_0x17b572[_0x8e75('0x35')]['includeAll']){_0x4b7452[_0x8e75('0x43')]=[{'all':!![]}];}_0x4b7452=_[_0x8e75('0x40')]({},_0x4b7452,_0x17b572[_0x8e75('0x48')]);return db[_0x8e75('0x2f')][_0x8e75('0x49')](_0x4b7452)[_0x8e75('0x28')](handleEntityNotFound(_0x3e23e3,null))['then'](respondWithResult(_0x3e23e3,null))[_0x8e75('0x44')](handleError(_0x3e23e3,null));};exports['create']=function(_0x18c0d,_0x347e9a){return db['FreshsalesAccount'][_0x8e75('0x4a')](_0x18c0d[_0x8e75('0x4b')],{})['then'](respondWithResult(_0x347e9a,0xc9))[_0x8e75('0x44')](handleError(_0x347e9a,null));};exports[_0x8e75('0x4c')]=function(_0x43b55b,_0x14fb43){if(_0x43b55b[_0x8e75('0x4b')]['id']){delete _0x43b55b[_0x8e75('0x4b')]['id'];}return db[_0x8e75('0x2f')]['find']({'where':{'id':_0x43b55b[_0x8e75('0x46')]['id']}})['then'](handleEntityNotFound(_0x14fb43,null))[_0x8e75('0x28')](saveUpdates(_0x43b55b[_0x8e75('0x4b')],null))['then'](respondWithResult(_0x14fb43,null))['catch'](handleError(_0x14fb43,null));};exports[_0x8e75('0x29')]=function(_0x4c23d6,_0x1410a6){return db[_0x8e75('0x2f')]['find']({'where':{'id':_0x4c23d6[_0x8e75('0x46')]['id']}})[_0x8e75('0x28')](handleEntityNotFound(_0x1410a6,null))[_0x8e75('0x28')](removeEntity(_0x1410a6,null))[_0x8e75('0x44')](handleError(_0x1410a6,null));};exports[_0x8e75('0x4d')]=function(_0x503ee3,_0x7c129d,_0x3ad3a2){var _0x1b0549={};var _0x27d8ad={};var _0x552ecb;var _0x2055fb;return db[_0x8e75('0x2f')][_0x8e75('0x4e')]({'where':{'id':_0x503ee3['params']['id']}})[_0x8e75('0x28')](handleEntityNotFound(_0x7c129d,null))[_0x8e75('0x28')](function(_0x4c78a6){if(_0x4c78a6){_0x552ecb=_0x4c78a6;_0x27d8ad[_0x8e75('0x34')]=_['keys'](db[_0x8e75('0x4f')][_0x8e75('0x30')]);_0x27d8ad[_0x8e75('0x35')]=_[_0x8e75('0x47')](_0x503ee3[_0x8e75('0x35')]);_0x27d8ad[_0x8e75('0x36')]=_[_0x8e75('0x37')](_0x27d8ad['model'],_0x27d8ad[_0x8e75('0x35')]);_0x1b0549[_0x8e75('0x38')]=_[_0x8e75('0x37')](_0x27d8ad[_0x8e75('0x34')],qs['fields'](_0x503ee3['query']['fields']));_0x1b0549['attributes']=_0x1b0549[_0x8e75('0x38')][_0x8e75('0x3a')]?_0x1b0549[_0x8e75('0x38')]:_0x27d8ad[_0x8e75('0x34')];_0x1b0549['order']=qs[_0x8e75('0x3d')](_0x503ee3[_0x8e75('0x35')]['sort']);_0x1b0549[_0x8e75('0x3e')]=qs[_0x8e75('0x36')](_['pick'](_0x503ee3[_0x8e75('0x35')],_0x27d8ad['filters']));if(_0x503ee3[_0x8e75('0x35')]['filter']){_0x1b0549['where']=_[_0x8e75('0x40')](_0x1b0549[_0x8e75('0x3e')],{'$or':_['map'](_0x1b0549[_0x8e75('0x38')],function(_0x5a6fa7){var _0x5caa21={};_0x5caa21[_0x5a6fa7]={'$like':'%'+_0x503ee3[_0x8e75('0x35')][_0x8e75('0x3f')]+'%'};return _0x5caa21;})});}_0x1b0549=_[_0x8e75('0x40')]({},_0x1b0549,_0x503ee3[_0x8e75('0x48')]);return _0x552ecb[_0x8e75('0x4d')](_0x1b0549);}})[_0x8e75('0x28')](function(_0x31dc02){if(_0x31dc02){_0x2055fb=_0x31dc02[_0x8e75('0x3a')];if(!_0x503ee3[_0x8e75('0x35')][_0x8e75('0x50')](_0x8e75('0x3b'))){_0x1b0549[_0x8e75('0x22')]=qs['limit'](_0x503ee3[_0x8e75('0x35')][_0x8e75('0x22')]);_0x1b0549['offset']=qs[_0x8e75('0x21')](_0x503ee3[_0x8e75('0x35')]['offset']);}return _0x552ecb[_0x8e75('0x4d')](_0x1b0549);}})[_0x8e75('0x28')](function(_0x1a1c4a){if(_0x1a1c4a){return _0x1a1c4a?{'count':_0x2055fb,'rows':_0x1a1c4a}:null;}})['then'](respondWithResult(_0x7c129d,null))[_0x8e75('0x44')](handleError(_0x7c129d,null));};exports[_0x8e75('0x51')]=function(_0x30e86f,_0x1859be,_0x38bcee){if(_0x30e86f[_0x8e75('0x4b')]['id']){delete _0x30e86f[_0x8e75('0x4b')]['id'];}return db[_0x8e75('0x2f')][_0x8e75('0x4e')]({'where':{'id':_0x30e86f[_0x8e75('0x46')]['id']}})[_0x8e75('0x28')](handleEntityNotFound(_0x1859be,null))[_0x8e75('0x28')](function(_0x7e0069){if(_0x7e0069){_0x30e86f['body'][_0x8e75('0x52')]=_0x7e0069['id'];_0x30e86f['body'][_0x8e75('0x53')]=integrations[_0x8e75('0x54')](_0x30e86f[_0x8e75('0x4b')][_0x8e75('0x55')],_0x30e86f[_0x8e75('0x4b')][_0x8e75('0x32')]);_0x30e86f['body'][_0x8e75('0x56')]=integrations[_0x8e75('0x57')](_0x30e86f['body'][_0x8e75('0x55')],_0x30e86f[_0x8e75('0x4b')][_0x8e75('0x32')]);return db[_0x8e75('0x4f')][_0x8e75('0x4a')](_0x30e86f['body'],{'include':[{'model':db[_0x8e75('0x58')],'as':_0x8e75('0x53')},{'model':db['FreshsalesField'],'as':'Descriptions'}]});}return null;})[_0x8e75('0x28')](respondWithResult(_0x1859be,null))[_0x8e75('0x44')](handleError(_0x1859be,null));};exports['getFields']=function(_0x357c28,_0x12d5ea,_0x334f6f){var _0x5b5411='';var _0x2ffcdb='';return db[_0x8e75('0x2f')][_0x8e75('0x4e')]({'where':{'id':_0x357c28[_0x8e75('0x46')]['id']},'attributes':['id',_0x8e75('0x59'),_0x8e75('0x5a'),_0x8e75('0x5b')]})[_0x8e75('0x28')](handleEntityNotFound(_0x12d5ea,null))['then'](function(_0x3d3c89){if(_0x3d3c89){_0x2ffcdb=_0x3d3c89[_0x8e75('0x59')];_0x5b5411=_0x3d3c89['remoteUri'];var _0x4b09a3=_0x3d3c89[_0x8e75('0x5a')][_0x8e75('0x5c')](-0x1);if(_0x4b09a3==='/'){_0x5b5411=_0x5b5411['substring'](0x0,_0x5b5411[_0x8e75('0x5d')](_0x4b09a3));}return rp({'method':'GET','uri':util[_0x8e75('0x5e')](_0x8e75('0x5f'),_0x5b5411,_0x8e75('0x60')),'headers':{'Authorization':'Token\x20token='+_0x3d3c89['apiKey']},'json':!![]});}})[_0x8e75('0x28')](function(_0x38296d){if(_0x38296d){var _0xfd62bb=_0x38296d[_0x8e75('0x61')];var _0x205493=![];var _0x2440a5=null;for(_0x2440a5=0x0;_0x2440a5<_0xfd62bb[_0x8e75('0x3a')];_0x2440a5++){if(_0xfd62bb[_0x2440a5][_0x8e75('0x62')]===_0x2ffcdb){_0x205493=!![];}}if(_0x205493){return!![];}else{throw new Error({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}}})[_0x8e75('0x28')](respondWithResult(_0x12d5ea,null))[_0x8e75('0x44')](function(_0x2d6999){var _0x3bf1cd=_0x357c28['query'][_0x8e75('0x63')]?0x1f4:_0x2d6999[_0x8e75('0x64')]||0x1f4;logger[_0x8e75('0x2a')](_0x8e75('0x65'),_0x8e75('0x66'),_0x3bf1cd,JSON['stringify'](_0x2d6999));delete _0x2d6999['name'];if(_0x3bf1cd===0x191){_0x3bf1cd=0x190;}_0x12d5ea['status'](_0x3bf1cd)[_0x8e75('0x2d')](_0x357c28[_0x8e75('0x35')]['test']?{'message':_0x8e75('0x67'),'statusCode':_0x2d6999[_0x8e75('0x64')]}:_0x2d6999);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xadb5=['../../components/integrations/configuration','exports','define','FreshsalesAccount','int_freshsales_accounts','util','api','moment','bluebird','path','rimraf','../../config/environment'];(function(_0x411add,_0x1aed38){var _0x238242=function(_0x4a1cd5){while(--_0x4a1cd5){_0x411add['push'](_0x411add['shift']());}};_0x238242(++_0x1aed38);}(_0xadb5,0xad));var _0x5adb=function(_0x3e5940,_0x54f28c){_0x3e5940=_0x3e5940-0x0;var _0x2e587e=_0xadb5[_0x3e5940];return _0x2e587e;};'use strict';var _=require('lodash');var util=require(_0x5adb('0x0'));var logger=require('../../config/logger')(_0x5adb('0x1'));var moment=require(_0x5adb('0x2'));var BPromise=require(_0x5adb('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x5adb('0x4'));var rimraf=require(_0x5adb('0x5'));var config=require(_0x5adb('0x6'));var attributes=require('./intFreshsalesAccount.attributes');var integrations=require(_0x5adb('0x7'));module[_0x5adb('0x8')]=function(_0x3e2555,_0x3213e8){return _0x3e2555[_0x5adb('0x9')](_0x5adb('0xa'),attributes,{'tableName':_0x5adb('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x3f8a=['exports','define','FreshsalesAccount','int_freshsales_accounts','lodash','util','../../config/logger','api','bluebird','request-promise','path','rimraf','../../config/environment','./intFreshsalesAccount.attributes','../../components/integrations/configuration'];(function(_0x5ddb1c,_0x5ea4df){var _0x354adc=function(_0x2dfb1f){while(--_0x2dfb1f){_0x5ddb1c['push'](_0x5ddb1c['shift']());}};_0x354adc(++_0x5ea4df);}(_0x3f8a,0x1d5));var _0xa3f8=function(_0x4ba2c0,_0x1b5dca){_0x4ba2c0=_0x4ba2c0-0x0;var _0x49e9fc=_0x3f8a[_0x4ba2c0];return _0x49e9fc;};'use strict';var _=require(_0xa3f8('0x0'));var util=require(_0xa3f8('0x1'));var logger=require(_0xa3f8('0x2'))(_0xa3f8('0x3'));var moment=require('moment');var BPromise=require(_0xa3f8('0x4'));var rp=require(_0xa3f8('0x5'));var fs=require('fs');var path=require(_0xa3f8('0x6'));var rimraf=require(_0xa3f8('0x7'));var config=require(_0xa3f8('0x8'));var attributes=require(_0xa3f8('0x9'));var integrations=require(_0xa3f8('0xa'));module[_0xa3f8('0xb')]=function(_0x1f160a,_0xf895d9){return _0x1f160a[_0xa3f8('0xc')](_0xa3f8('0xd'),attributes,{'tableName':_0xa3f8('0xe'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0598=['map','model','then','ShowFreshsalesAccount','find','where','lodash','util','bluebird','../../mysqldb','../../config/utils','jayson/promise','client','info','FreshsalesAccount,\x20%s,\x20%s','request\x20sent','debug','stringify','error','message','catch','GetFreshsalesAccount','FreshsalesAccount','options','raw','attributes','limit','include'];(function(_0xf5ab88,_0x339ea3){var _0x3d2341=function(_0x52ba7c){while(--_0x52ba7c){_0xf5ab88['push'](_0xf5ab88['shift']());}};_0x3d2341(++_0x339ea3);}(_0x0598,0x92));var _0x8059=function(_0x24463d,_0x244b61){_0x24463d=_0x24463d-0x0;var _0x309239=_0x0598[_0x24463d];return _0x309239;};'use strict';var _=require(_0x8059('0x0'));var util=require(_0x8059('0x1'));var moment=require('moment');var BPromise=require(_0x8059('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x8059('0x3'))['db'];var utils=require(_0x8059('0x4'));var logger=require('../../config/logger')('rpc');var config=require('../../config/environment');var jayson=require(_0x8059('0x5'));var client=jayson[_0x8059('0x6')]['http']({'port':0x232a});function respondWithRpcPromise(_0x5996d7,_0x248273,_0x347f1b){return new BPromise(function(_0x4610d2,_0x116946){return client['request'](_0x5996d7,_0x347f1b)['then'](function(_0x89dda1){logger[_0x8059('0x7')](_0x8059('0x8'),_0x248273,_0x8059('0x9'));logger[_0x8059('0xa')]('FreshsalesAccount,\x20%s,\x20%s,\x20%s',_0x248273,'request\x20sent',JSON[_0x8059('0xb')](_0x89dda1));if(_0x89dda1[_0x8059('0xc')]){if(_0x89dda1['error']['code']===0x1f4){logger['error'](_0x8059('0x8'),_0x248273,_0x89dda1[_0x8059('0xc')][_0x8059('0xd')]);return _0x116946(_0x89dda1[_0x8059('0xc')][_0x8059('0xd')]);}logger['error'](_0x8059('0x8'),_0x248273,_0x89dda1['error'][_0x8059('0xd')]);return _0x4610d2(_0x89dda1['error'][_0x8059('0xd')]);}else{logger[_0x8059('0x7')](_0x8059('0x8'),_0x248273,'request\x20sent');_0x4610d2(_0x89dda1['result']['message']);}})[_0x8059('0xe')](function(_0x239195){logger[_0x8059('0xc')](_0x8059('0x8'),_0x248273,_0x239195);_0x116946(_0x239195);});});}exports[_0x8059('0xf')]=function(_0x4b6d55){var _0x10ad98=this;return new Promise(function(_0x2bb670,_0x37e926){return db[_0x8059('0x10')]['findAll']({'raw':_0x4b6d55[_0x8059('0x11')]?_0x4b6d55['options'][_0x8059('0x12')]===undefined?!![]:![]:!![],'where':_0x4b6d55['options']?_0x4b6d55[_0x8059('0x11')]['where']||null:null,'attributes':_0x4b6d55[_0x8059('0x11')]?_0x4b6d55[_0x8059('0x11')][_0x8059('0x13')]||null:null,'limit':_0x4b6d55['options']?_0x4b6d55['options'][_0x8059('0x14')]||null:null,'include':_0x4b6d55[_0x8059('0x11')]?_0x4b6d55[_0x8059('0x11')][_0x8059('0x15')]?_['map'](_0x4b6d55[_0x8059('0x11')][_0x8059('0x15')],function(_0x3da080){return{'model':db[_0x3da080['model']],'as':_0x3da080['as'],'attributes':_0x3da080[_0x8059('0x13')],'include':_0x3da080[_0x8059('0x15')]?_[_0x8059('0x16')](_0x3da080[_0x8059('0x15')],function(_0x59d3a6){return{'model':db[_0x59d3a6[_0x8059('0x17')]],'as':_0x59d3a6['as'],'attributes':_0x59d3a6[_0x8059('0x13')],'include':_0x59d3a6[_0x8059('0x15')]?_[_0x8059('0x16')](_0x59d3a6[_0x8059('0x15')],function(_0x54b88b){return{'model':db[_0x54b88b[_0x8059('0x17')]],'as':_0x54b88b['as'],'attributes':_0x54b88b[_0x8059('0x13')]};}):[]};}):[]};}):[]:[]})[_0x8059('0x18')](function(_0x4a294f){logger['info']('GetFreshsalesAccount',_0x4b6d55);logger[_0x8059('0xa')](_0x8059('0xf'),_0x4b6d55,JSON[_0x8059('0xb')](_0x4a294f));_0x2bb670(_0x4a294f);})[_0x8059('0xe')](function(_0x59abe9){logger[_0x8059('0xc')]('GetFreshsalesAccount',_0x59abe9[_0x8059('0xd')],_0x4b6d55);_0x37e926(_0x10ad98[_0x8059('0xc')](0x1f4,_0x59abe9['message']));});});};exports[_0x8059('0x19')]=function(_0x1aead2){var _0x30aac2=this;return new Promise(function(_0x260ba8,_0x2799b7){return db[_0x8059('0x10')][_0x8059('0x1a')]({'raw':_0x1aead2[_0x8059('0x11')]?_0x1aead2['options'][_0x8059('0x12')]===undefined?!![]:![]:!![],'where':_0x1aead2[_0x8059('0x11')]?_0x1aead2[_0x8059('0x11')][_0x8059('0x1b')]||null:null,'attributes':_0x1aead2[_0x8059('0x11')]?_0x1aead2['options'][_0x8059('0x13')]||null:null,'include':_0x1aead2[_0x8059('0x11')]?_0x1aead2[_0x8059('0x11')][_0x8059('0x15')]?_[_0x8059('0x16')](_0x1aead2[_0x8059('0x11')][_0x8059('0x15')],function(_0x175d57){return{'model':db[_0x175d57[_0x8059('0x17')]],'as':_0x175d57['as'],'attributes':_0x175d57[_0x8059('0x13')],'include':_0x175d57['include']?_[_0x8059('0x16')](_0x175d57['include'],function(_0x24194d){return{'model':db[_0x24194d['model']],'as':_0x24194d['as'],'attributes':_0x24194d['attributes'],'include':_0x24194d[_0x8059('0x15')]?_['map'](_0x24194d[_0x8059('0x15')],function(_0x50c745){return{'model':db[_0x50c745[_0x8059('0x17')]],'as':_0x50c745['as'],'attributes':_0x50c745['attributes']};}):[]};}):[]};}):[]:[]})[_0x8059('0x18')](function(_0x5c4aa0){logger['info'](_0x8059('0x19'),_0x1aead2);logger[_0x8059('0xa')](_0x8059('0x19'),_0x1aead2,JSON['stringify'](_0x5c4aa0));_0x260ba8(_0x5c4aa0);})[_0x8059('0xe')](function(_0x4927c9){logger[_0x8059('0xc')]('ShowFreshsalesAccount',_0x4927c9[_0x8059('0xd')],_0x1aead2);_0x2799b7(_0x30aac2[_0x8059('0xc')](0x1f4,_0x4927c9[_0x8059('0xd')]));});});};
\ No newline at end of file
+var _0xcaf2=['raw','attributes','limit','include','map','model','GetFreshsalesAccount','stringify','catch','ShowFreshsalesAccount','lodash','moment','bluebird','ioredis','../../mysqldb','../../config/logger','../../config/environment','jayson/promise','client','request','then','info','FreshsalesAccount,\x20%s,\x20%s','request\x20sent','debug','FreshsalesAccount,\x20%s,\x20%s,\x20%s','error','code','message','result','FreshsalesAccount','options'];(function(_0x502c7d,_0x2f1285){var _0x30b7ed=function(_0x2d92f3){while(--_0x2d92f3){_0x502c7d['push'](_0x502c7d['shift']());}};_0x30b7ed(++_0x2f1285);}(_0xcaf2,0x8a));var _0x2caf=function(_0x1e197d,_0x2e551d){_0x1e197d=_0x1e197d-0x0;var _0x4ca88e=_0xcaf2[_0x1e197d];return _0x4ca88e;};'use strict';var _=require(_0x2caf('0x0'));var util=require('util');var moment=require(_0x2caf('0x1'));var BPromise=require(_0x2caf('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x2caf('0x3'));var db=require(_0x2caf('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x2caf('0x5'))('rpc');var config=require(_0x2caf('0x6'));var jayson=require(_0x2caf('0x7'));var client=jayson[_0x2caf('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0xc44e4e,_0x314486,_0x4667c6){return new BPromise(function(_0x34e792,_0x5611aa){return client[_0x2caf('0x9')](_0xc44e4e,_0x4667c6)[_0x2caf('0xa')](function(_0x45e520){logger[_0x2caf('0xb')](_0x2caf('0xc'),_0x314486,_0x2caf('0xd'));logger[_0x2caf('0xe')](_0x2caf('0xf'),_0x314486,_0x2caf('0xd'),JSON['stringify'](_0x45e520));if(_0x45e520[_0x2caf('0x10')]){if(_0x45e520[_0x2caf('0x10')][_0x2caf('0x11')]===0x1f4){logger[_0x2caf('0x10')](_0x2caf('0xc'),_0x314486,_0x45e520[_0x2caf('0x10')][_0x2caf('0x12')]);return _0x5611aa(_0x45e520[_0x2caf('0x10')]['message']);}logger[_0x2caf('0x10')](_0x2caf('0xc'),_0x314486,_0x45e520['error']['message']);return _0x34e792(_0x45e520['error'][_0x2caf('0x12')]);}else{logger['info'](_0x2caf('0xc'),_0x314486,_0x2caf('0xd'));_0x34e792(_0x45e520[_0x2caf('0x13')][_0x2caf('0x12')]);}})['catch'](function(_0x184355){logger['error'](_0x2caf('0xc'),_0x314486,_0x184355);_0x5611aa(_0x184355);});});}exports['GetFreshsalesAccount']=function(_0x4a33fc){var _0x3e975f=this;return new Promise(function(_0x58047b,_0xe72440){return db[_0x2caf('0x14')]['findAll']({'raw':_0x4a33fc[_0x2caf('0x15')]?_0x4a33fc[_0x2caf('0x15')][_0x2caf('0x16')]===undefined?!![]:![]:!![],'where':_0x4a33fc[_0x2caf('0x15')]?_0x4a33fc[_0x2caf('0x15')]['where']||null:null,'attributes':_0x4a33fc[_0x2caf('0x15')]?_0x4a33fc[_0x2caf('0x15')][_0x2caf('0x17')]||null:null,'limit':_0x4a33fc[_0x2caf('0x15')]?_0x4a33fc[_0x2caf('0x15')][_0x2caf('0x18')]||null:null,'include':_0x4a33fc[_0x2caf('0x15')]?_0x4a33fc[_0x2caf('0x15')][_0x2caf('0x19')]?_[_0x2caf('0x1a')](_0x4a33fc[_0x2caf('0x15')]['include'],function(_0x296305){return{'model':db[_0x296305[_0x2caf('0x1b')]],'as':_0x296305['as'],'attributes':_0x296305[_0x2caf('0x17')],'include':_0x296305[_0x2caf('0x19')]?_[_0x2caf('0x1a')](_0x296305[_0x2caf('0x19')],function(_0x392196){return{'model':db[_0x392196[_0x2caf('0x1b')]],'as':_0x392196['as'],'attributes':_0x392196[_0x2caf('0x17')],'include':_0x392196[_0x2caf('0x19')]?_['map'](_0x392196[_0x2caf('0x19')],function(_0x325eda){return{'model':db[_0x325eda[_0x2caf('0x1b')]],'as':_0x325eda['as'],'attributes':_0x325eda[_0x2caf('0x17')]};}):[]};}):[]};}):[]:[]})[_0x2caf('0xa')](function(_0x17d3c6){logger[_0x2caf('0xb')](_0x2caf('0x1c'),_0x4a33fc);logger[_0x2caf('0xe')](_0x2caf('0x1c'),_0x4a33fc,JSON[_0x2caf('0x1d')](_0x17d3c6));_0x58047b(_0x17d3c6);})[_0x2caf('0x1e')](function(_0x158d60){logger['error'](_0x2caf('0x1c'),_0x158d60[_0x2caf('0x12')],_0x4a33fc);_0xe72440(_0x3e975f[_0x2caf('0x10')](0x1f4,_0x158d60[_0x2caf('0x12')]));});});};exports[_0x2caf('0x1f')]=function(_0x1f52bf){var _0x3812cd=this;return new Promise(function(_0x524e0c,_0x21b3c4){return db[_0x2caf('0x14')]['find']({'raw':_0x1f52bf[_0x2caf('0x15')]?_0x1f52bf[_0x2caf('0x15')][_0x2caf('0x16')]===undefined?!![]:![]:!![],'where':_0x1f52bf['options']?_0x1f52bf[_0x2caf('0x15')]['where']||null:null,'attributes':_0x1f52bf['options']?_0x1f52bf[_0x2caf('0x15')][_0x2caf('0x17')]||null:null,'include':_0x1f52bf[_0x2caf('0x15')]?_0x1f52bf[_0x2caf('0x15')][_0x2caf('0x19')]?_[_0x2caf('0x1a')](_0x1f52bf[_0x2caf('0x15')][_0x2caf('0x19')],function(_0x20818e){return{'model':db[_0x20818e['model']],'as':_0x20818e['as'],'attributes':_0x20818e[_0x2caf('0x17')],'include':_0x20818e[_0x2caf('0x19')]?_[_0x2caf('0x1a')](_0x20818e[_0x2caf('0x19')],function(_0x17c1b4){return{'model':db[_0x17c1b4[_0x2caf('0x1b')]],'as':_0x17c1b4['as'],'attributes':_0x17c1b4[_0x2caf('0x17')],'include':_0x17c1b4[_0x2caf('0x19')]?_[_0x2caf('0x1a')](_0x17c1b4[_0x2caf('0x19')],function(_0x105ec7){return{'model':db[_0x105ec7[_0x2caf('0x1b')]],'as':_0x105ec7['as'],'attributes':_0x105ec7['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x410020){logger[_0x2caf('0xb')](_0x2caf('0x1f'),_0x1f52bf);logger[_0x2caf('0xe')]('ShowFreshsalesAccount',_0x1f52bf,JSON[_0x2caf('0x1d')](_0x410020));_0x524e0c(_0x410020);})[_0x2caf('0x1e')](function(_0x4568f9){logger[_0x2caf('0x10')](_0x2caf('0x1f'),_0x4568f9[_0x2caf('0x12')],_0x1f52bf);_0x21b3c4(_0x3812cd[_0x2caf('0x10')](0x1f4,_0x4568f9[_0x2caf('0x12')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc8d3=['express','Router','fs-extra','../../config/environment','./intFreshsalesConfiguration.controller','get','index','/:id','isAuthenticated','show','/:id/subjects','/:id/fields','getFields','post','put','update','delete','destroy','exports','multer','util','path','connect-timeout'];(function(_0x409336,_0x3f0577){var _0x3e5262=function(_0x5d6186){while(--_0x5d6186){_0x409336['push'](_0x409336['shift']());}};_0x3e5262(++_0x3f0577);}(_0xc8d3,0xf9));var _0x3c8d=function(_0x2998db,_0x3424f1){_0x2998db=_0x2998db-0x0;var _0x115fea=_0xc8d3[_0x2998db];return _0x115fea;};'use strict';var multer=require(_0x3c8d('0x0'));var util=require(_0x3c8d('0x1'));var path=require(_0x3c8d('0x2'));var timeout=require(_0x3c8d('0x3'));var express=require(_0x3c8d('0x4'));var router=express[_0x3c8d('0x5')]();var fs_extra=require(_0x3c8d('0x6'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x3c8d('0x7'));var controller=require(_0x3c8d('0x8'));router[_0x3c8d('0x9')]('/',auth['isAuthenticated'](),controller[_0x3c8d('0xa')]);router[_0x3c8d('0x9')](_0x3c8d('0xb'),auth[_0x3c8d('0xc')](),controller[_0x3c8d('0xd')]);router['get'](_0x3c8d('0xe'),auth[_0x3c8d('0xc')](),controller['getSubjects']);router['get']('/:id/descriptions',auth[_0x3c8d('0xc')](),controller['getDescriptions']);router['get'](_0x3c8d('0xf'),auth['isAuthenticated'](),controller[_0x3c8d('0x10')]);router[_0x3c8d('0x11')]('/',auth[_0x3c8d('0xc')](),controller['create']);router[_0x3c8d('0x12')]('/:id',auth[_0x3c8d('0xc')](),controller[_0x3c8d('0x13')]);router[_0x3c8d('0x14')]('/:id',auth[_0x3c8d('0xc')](),controller[_0x3c8d('0x15')]);module[_0x3c8d('0x16')]=router;
\ No newline at end of file
+var _0x3314=['/:id/descriptions','getDescriptions','/:id/fields','getFields','post','create','put','update','delete','destroy','exports','multer','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./intFreshsalesConfiguration.controller','isAuthenticated','get','/:id','/:id/subjects','getSubjects'];(function(_0x30440d,_0x134556){var _0x56dc05=function(_0x209492){while(--_0x209492){_0x30440d['push'](_0x30440d['shift']());}};_0x56dc05(++_0x134556);}(_0x3314,0xac));var _0x4331=function(_0x59a71a,_0x5a093c){_0x59a71a=_0x59a71a-0x0;var _0xf8f4a9=_0x3314[_0x59a71a];return _0xf8f4a9;};'use strict';var multer=require(_0x4331('0x0'));var util=require('util');var path=require('path');var timeout=require('connect-timeout');var express=require(_0x4331('0x1'));var router=express[_0x4331('0x2')]();var fs_extra=require(_0x4331('0x3'));var auth=require('../../components/auth/service');var interaction=require(_0x4331('0x4'));var config=require(_0x4331('0x5'));var controller=require(_0x4331('0x6'));router['get']('/',auth[_0x4331('0x7')](),controller['index']);router[_0x4331('0x8')](_0x4331('0x9'),auth[_0x4331('0x7')](),controller['show']);router[_0x4331('0x8')](_0x4331('0xa'),auth[_0x4331('0x7')](),controller[_0x4331('0xb')]);router[_0x4331('0x8')](_0x4331('0xc'),auth[_0x4331('0x7')](),controller[_0x4331('0xd')]);router['get'](_0x4331('0xe'),auth[_0x4331('0x7')](),controller[_0x4331('0xf')]);router[_0x4331('0x10')]('/',auth[_0x4331('0x7')](),controller[_0x4331('0x11')]);router[_0x4331('0x12')](_0x4331('0x9'),auth[_0x4331('0x7')](),controller[_0x4331('0x13')]);router[_0x4331('0x14')](_0x4331('0x9'),auth[_0x4331('0x7')](),controller[_0x4331('0x15')]);module[_0x4331('0x16')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x877a=['STRING'];(function(_0x588370,_0x4563b9){var _0x1b0dc1=function(_0x2a1689){while(--_0x2a1689){_0x588370['push'](_0x588370['shift']());}};_0x1b0dc1(++_0x4563b9);}(_0x877a,0x16e));var _0xa877=function(_0x2e7193,_0x5098ad){_0x2e7193=_0x2e7193-0x0;var _0x59c4c0=_0x877a[_0x2e7193];return _0x59c4c0;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize[_0xa877('0x0')]},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x9792=['sequelize','exports','STRING'];(function(_0x34db21,_0x4256bb){var _0x5e7d82=function(_0x5bee79){while(--_0x5bee79){_0x34db21['push'](_0x34db21['shift']());}};_0x5e7d82(++_0x4256bb);}(_0x9792,0x15c));var _0x2979=function(_0xfae23b,_0x2be4ba){_0xfae23b=_0xfae23b-0x0;var _0x200640=_0x9792[_0xfae23b];return _0x200640;};'use strict';var Sequelize=require(_0x2979('0x0'));module[_0x2979('0x1')]={'name':{'type':Sequelize[_0x2979('0x2')]},'description':{'type':Sequelize[_0x2979('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdcc4=['sort','getDescriptions','FreshsalesField','getFields','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','ejs','lodash','crypto','jsforce','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../mysqldb','end','status','json','offset','limit','undefined','count','set','Content-Range','apply','reject','save','then','destroy','sendStatus','error','name','send','map','FreshsalesConfiguration','rawAttributes','fieldName','key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','where','pick','filter','merge','type','VIRTUAL','options','includeAll','include','findAll','rows','catch','keys','find','create','body','params','getSubjects'];(function(_0x5480d7,_0x22746b){var _0x45bbc5=function(_0x5604e5){while(--_0x5604e5){_0x5480d7['push'](_0x5480d7['shift']());}};_0x45bbc5(++_0x22746b);}(_0xdcc4,0x134));var _0x4dcc=function(_0x2753cf,_0x3884da){_0x2753cf=_0x2753cf-0x0;var _0x332f23=_0xdcc4[_0x2753cf];return _0x332f23;};'use strict';var emlformat=require(_0x4dcc('0x0'));var rimraf=require(_0x4dcc('0x1'));var zipdir=require(_0x4dcc('0x2'));var jsonpatch=require(_0x4dcc('0x3'));var rp=require(_0x4dcc('0x4'));var moment=require(_0x4dcc('0x5'));var BPromise=require(_0x4dcc('0x6'));var Mustache=require(_0x4dcc('0x7'));var util=require(_0x4dcc('0x8'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x4dcc('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x4dcc('0xa'));var squel=require('squel');var crypto=require(_0x4dcc('0xb'));var jsforce=require(_0x4dcc('0xc'));var deskjs=require(_0x4dcc('0xd'));var toCsv=require(_0x4dcc('0xe'));var querystring=require(_0x4dcc('0xf'));var Papa=require('papaparse');var Redis=require(_0x4dcc('0x10'));var authService=require(_0x4dcc('0x11'));var qs=require(_0x4dcc('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x4dcc('0x13'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x4dcc('0x14'))['db'];function respondWithStatusCode(_0x2f0104,_0x36ed0a){_0x36ed0a=_0x36ed0a||0xcc;return function(_0x293fcd){if(_0x293fcd){return _0x2f0104['sendStatus'](_0x36ed0a);}return _0x2f0104['status'](_0x36ed0a)[_0x4dcc('0x15')]();};}function respondWithResult(_0x44ed4c,_0x4d198b){_0x4d198b=_0x4d198b||0xc8;return function(_0x3084de){if(_0x3084de){return _0x44ed4c[_0x4dcc('0x16')](_0x4d198b)[_0x4dcc('0x17')](_0x3084de);}};}function respondWithFilteredResult(_0x47add8,_0x22b2cf){return function(_0x2ee2ff){if(_0x2ee2ff){var _0x3dbad1=typeof _0x22b2cf[_0x4dcc('0x18')]==='undefined'&&typeof _0x22b2cf[_0x4dcc('0x19')]===_0x4dcc('0x1a');var _0x33b45c=_0x2ee2ff[_0x4dcc('0x1b')];var _0xe72820=_0x3dbad1?0x0:_0x22b2cf[_0x4dcc('0x18')];var _0x58f4a0=_0x3dbad1?_0x2ee2ff[_0x4dcc('0x1b')]:_0x22b2cf[_0x4dcc('0x18')]+_0x22b2cf['limit'];var _0x1ee2aa;if(_0x58f4a0>=_0x33b45c){_0x58f4a0=_0x33b45c;_0x1ee2aa=0xc8;}else{_0x1ee2aa=0xce;}_0x47add8['status'](_0x1ee2aa);return _0x47add8[_0x4dcc('0x1c')](_0x4dcc('0x1d'),_0xe72820+'-'+_0x58f4a0+'/'+_0x33b45c)[_0x4dcc('0x17')](_0x2ee2ff);}return null;};}function patchUpdates(_0x30203a){return function(_0x4cd57f){try{jsonpatch[_0x4dcc('0x1e')](_0x4cd57f,_0x30203a,!![]);}catch(_0x3227b2){return BPromise[_0x4dcc('0x1f')](_0x3227b2);}return _0x4cd57f[_0x4dcc('0x20')]();};}function saveUpdates(_0xfaa7f4,_0x100bd9){return function(_0x4fef82){if(_0x4fef82){return _0x4fef82['update'](_0xfaa7f4)[_0x4dcc('0x21')](function(_0x4b3865){return _0x4b3865;});}return null;};}function removeEntity(_0x879f57,_0x4686dd){return function(_0x186ad9){if(_0x186ad9){return _0x186ad9[_0x4dcc('0x22')]()[_0x4dcc('0x21')](function(){_0x879f57[_0x4dcc('0x16')](0xcc)[_0x4dcc('0x15')]();});}};}function handleEntityNotFound(_0x28fcf0,_0x576dbd){return function(_0x1a1b92){if(!_0x1a1b92){_0x28fcf0[_0x4dcc('0x23')](0x194);}return _0x1a1b92;};}function handleError(_0x40528e,_0x231b4b){_0x231b4b=_0x231b4b||0x1f4;return function(_0x598ca7){logger[_0x4dcc('0x24')](_0x598ca7['stack']);if(_0x598ca7['name']){delete _0x598ca7[_0x4dcc('0x25')];}_0x40528e['status'](_0x231b4b)[_0x4dcc('0x26')](_0x598ca7);};}exports['index']=function(_0x5ef049,_0x521bd7){var _0x44a46c={},_0x1e14d1={},_0x5651e8={'count':0x0,'rows':[]};var _0x492d6a=_[_0x4dcc('0x27')](db[_0x4dcc('0x28')][_0x4dcc('0x29')],function(_0x43403e){return{'name':_0x43403e[_0x4dcc('0x2a')],'type':_0x43403e['type'][_0x4dcc('0x2b')]};});_0x1e14d1[_0x4dcc('0x2c')]=_[_0x4dcc('0x27')](_0x492d6a,'name');_0x1e14d1[_0x4dcc('0x2d')]=_['keys'](_0x5ef049[_0x4dcc('0x2d')]);_0x1e14d1[_0x4dcc('0x2e')]=_[_0x4dcc('0x2f')](_0x1e14d1[_0x4dcc('0x2c')],_0x1e14d1[_0x4dcc('0x2d')]);_0x44a46c[_0x4dcc('0x30')]=_[_0x4dcc('0x2f')](_0x1e14d1['model'],qs[_0x4dcc('0x31')](_0x5ef049['query'][_0x4dcc('0x31')]));_0x44a46c[_0x4dcc('0x30')]=_0x44a46c[_0x4dcc('0x30')][_0x4dcc('0x32')]?_0x44a46c[_0x4dcc('0x30')]:_0x1e14d1['model'];if(!_0x5ef049[_0x4dcc('0x2d')][_0x4dcc('0x33')](_0x4dcc('0x34'))){_0x44a46c[_0x4dcc('0x19')]=qs[_0x4dcc('0x19')](_0x5ef049[_0x4dcc('0x2d')][_0x4dcc('0x19')]);_0x44a46c[_0x4dcc('0x18')]=qs[_0x4dcc('0x18')](_0x5ef049[_0x4dcc('0x2d')][_0x4dcc('0x18')]);}_0x44a46c[_0x4dcc('0x35')]=qs['sort'](_0x5ef049['query']['sort']);_0x44a46c[_0x4dcc('0x36')]=qs[_0x4dcc('0x2e')](_[_0x4dcc('0x37')](_0x5ef049[_0x4dcc('0x2d')],_0x1e14d1[_0x4dcc('0x2e')]),_0x492d6a);if(_0x5ef049[_0x4dcc('0x2d')][_0x4dcc('0x38')]){_0x44a46c[_0x4dcc('0x36')]=_[_0x4dcc('0x39')](_0x44a46c['where'],{'$or':_[_0x4dcc('0x27')](_0x492d6a,function(_0x309b87){if(_0x309b87[_0x4dcc('0x3a')]!==_0x4dcc('0x3b')){var _0xadf985={};_0xadf985[_0x309b87[_0x4dcc('0x25')]]={'$like':'%'+_0x5ef049['query'][_0x4dcc('0x38')]+'%'};return _0xadf985;}})});}_0x44a46c=_[_0x4dcc('0x39')]({},_0x44a46c,_0x5ef049[_0x4dcc('0x3c')]);var _0x40bbbf={'where':_0x44a46c[_0x4dcc('0x36')]};return db[_0x4dcc('0x28')][_0x4dcc('0x1b')](_0x40bbbf)['then'](function(_0x236038){_0x5651e8['count']=_0x236038;if(_0x5ef049[_0x4dcc('0x2d')][_0x4dcc('0x3d')]){_0x44a46c[_0x4dcc('0x3e')]=[{'all':!![]}];}return db[_0x4dcc('0x28')][_0x4dcc('0x3f')](_0x44a46c);})[_0x4dcc('0x21')](function(_0x437d1d){_0x5651e8[_0x4dcc('0x40')]=_0x437d1d;return _0x5651e8;})[_0x4dcc('0x21')](respondWithFilteredResult(_0x521bd7,_0x44a46c))[_0x4dcc('0x41')](handleError(_0x521bd7,null));};exports['show']=function(_0x5b0f85,_0x5cfc7e){var _0x4d0253={'raw':![],'where':{'id':_0x5b0f85['params']['id']}},_0x6d148d={};_0x6d148d[_0x4dcc('0x2c')]=_[_0x4dcc('0x42')](db[_0x4dcc('0x28')][_0x4dcc('0x29')]);_0x6d148d[_0x4dcc('0x2d')]=_['keys'](_0x5b0f85[_0x4dcc('0x2d')]);_0x6d148d[_0x4dcc('0x2e')]=_[_0x4dcc('0x2f')](_0x6d148d[_0x4dcc('0x2c')],_0x6d148d[_0x4dcc('0x2d')]);_0x4d0253['attributes']=_[_0x4dcc('0x2f')](_0x6d148d[_0x4dcc('0x2c')],qs['fields'](_0x5b0f85[_0x4dcc('0x2d')]['fields']));_0x4d0253[_0x4dcc('0x30')]=_0x4d0253[_0x4dcc('0x30')]['length']?_0x4d0253[_0x4dcc('0x30')]:_0x6d148d['model'];if(_0x5b0f85[_0x4dcc('0x2d')]['includeAll']){_0x4d0253['include']=[{'all':!![]}];}_0x4d0253=_[_0x4dcc('0x39')]({},_0x4d0253,_0x5b0f85[_0x4dcc('0x3c')]);return db[_0x4dcc('0x28')][_0x4dcc('0x43')](_0x4d0253)[_0x4dcc('0x21')](handleEntityNotFound(_0x5cfc7e,null))[_0x4dcc('0x21')](respondWithResult(_0x5cfc7e,null))['catch'](handleError(_0x5cfc7e,null));};exports[_0x4dcc('0x44')]=function(_0x5c1f1d,_0x1af8b8){return db[_0x4dcc('0x28')][_0x4dcc('0x44')](_0x5c1f1d[_0x4dcc('0x45')],{})[_0x4dcc('0x21')](respondWithResult(_0x1af8b8,0xc9))['catch'](handleError(_0x1af8b8,null));};exports['update']=function(_0x10569f,_0x180532){if(_0x10569f['body']['id']){delete _0x10569f[_0x4dcc('0x45')]['id'];}return db[_0x4dcc('0x28')][_0x4dcc('0x43')]({'where':{'id':_0x10569f['params']['id']}})[_0x4dcc('0x21')](handleEntityNotFound(_0x180532,null))[_0x4dcc('0x21')](saveUpdates(_0x10569f[_0x4dcc('0x45')],null))['then'](respondWithResult(_0x180532,null))[_0x4dcc('0x41')](handleError(_0x180532,null));};exports[_0x4dcc('0x22')]=function(_0x1ec455,_0x2b70cd){return db['FreshsalesConfiguration']['find']({'where':{'id':_0x1ec455[_0x4dcc('0x46')]['id']}})[_0x4dcc('0x21')](handleEntityNotFound(_0x2b70cd,null))['then'](removeEntity(_0x2b70cd,null))[_0x4dcc('0x41')](handleError(_0x2b70cd,null));};exports[_0x4dcc('0x47')]=function(_0x20cccc,_0x2c1caa,_0xe823b3){var _0x440116={};var _0x89e36e={};var _0x36037a;var _0x2105e8;return db[_0x4dcc('0x28')]['findOne']({'where':{'id':_0x20cccc[_0x4dcc('0x46')]['id']}})[_0x4dcc('0x21')](handleEntityNotFound(_0x2c1caa,null))[_0x4dcc('0x21')](function(_0x25daa5){if(_0x25daa5){_0x36037a=_0x25daa5;_0x89e36e['model']=_[_0x4dcc('0x42')](db['FreshsalesField']['rawAttributes']);_0x89e36e[_0x4dcc('0x2d')]=_[_0x4dcc('0x42')](_0x20cccc['query']);_0x89e36e[_0x4dcc('0x2e')]=_['intersection'](_0x89e36e['model'],_0x89e36e[_0x4dcc('0x2d')]);_0x440116[_0x4dcc('0x30')]=_[_0x4dcc('0x2f')](_0x89e36e[_0x4dcc('0x2c')],qs[_0x4dcc('0x31')](_0x20cccc[_0x4dcc('0x2d')][_0x4dcc('0x31')]));_0x440116['attributes']=_0x440116[_0x4dcc('0x30')][_0x4dcc('0x32')]?_0x440116[_0x4dcc('0x30')]:_0x89e36e[_0x4dcc('0x2c')];_0x440116[_0x4dcc('0x35')]=qs[_0x4dcc('0x48')](_0x20cccc[_0x4dcc('0x2d')][_0x4dcc('0x48')]);_0x440116['where']=qs[_0x4dcc('0x2e')](_[_0x4dcc('0x37')](_0x20cccc[_0x4dcc('0x2d')],_0x89e36e[_0x4dcc('0x2e')]));if(_0x20cccc[_0x4dcc('0x2d')]['filter']){_0x440116['where']=_[_0x4dcc('0x39')](_0x440116[_0x4dcc('0x36')],{'$or':_[_0x4dcc('0x27')](_0x440116[_0x4dcc('0x30')],function(_0xaf06e1){var _0x38e53c={};_0x38e53c[_0xaf06e1]={'$like':'%'+_0x20cccc[_0x4dcc('0x2d')][_0x4dcc('0x38')]+'%'};return _0x38e53c;})});}_0x440116=_[_0x4dcc('0x39')]({},_0x440116,_0x20cccc[_0x4dcc('0x3c')]);return _0x36037a['getSubjects'](_0x440116);}})['then'](function(_0x57c71f){if(_0x57c71f){_0x2105e8=_0x57c71f[_0x4dcc('0x32')];if(!_0x20cccc[_0x4dcc('0x2d')][_0x4dcc('0x33')](_0x4dcc('0x34'))){_0x440116[_0x4dcc('0x19')]=qs['limit'](_0x20cccc['query']['limit']);_0x440116[_0x4dcc('0x18')]=qs[_0x4dcc('0x18')](_0x20cccc[_0x4dcc('0x2d')][_0x4dcc('0x18')]);}return _0x36037a[_0x4dcc('0x47')](_0x440116);}})[_0x4dcc('0x21')](function(_0x88ae49){if(_0x88ae49){return _0x88ae49?{'count':_0x2105e8,'rows':_0x88ae49}:null;}})[_0x4dcc('0x21')](respondWithResult(_0x2c1caa,null))['catch'](handleError(_0x2c1caa,null));};exports[_0x4dcc('0x49')]=function(_0x90aca,_0xe8208b,_0x404a28){var _0x30adc6={};var _0x17e5e0={};var _0x500028;var _0x4e1b58;return db[_0x4dcc('0x28')]['findOne']({'where':{'id':_0x90aca[_0x4dcc('0x46')]['id']}})[_0x4dcc('0x21')](handleEntityNotFound(_0xe8208b,null))['then'](function(_0x3f5b8c){if(_0x3f5b8c){_0x500028=_0x3f5b8c;_0x17e5e0[_0x4dcc('0x2c')]=_[_0x4dcc('0x42')](db[_0x4dcc('0x4a')][_0x4dcc('0x29')]);_0x17e5e0[_0x4dcc('0x2d')]=_['keys'](_0x90aca['query']);_0x17e5e0[_0x4dcc('0x2e')]=_['intersection'](_0x17e5e0[_0x4dcc('0x2c')],_0x17e5e0[_0x4dcc('0x2d')]);_0x30adc6[_0x4dcc('0x30')]=_['intersection'](_0x17e5e0[_0x4dcc('0x2c')],qs['fields'](_0x90aca[_0x4dcc('0x2d')]['fields']));_0x30adc6['attributes']=_0x30adc6[_0x4dcc('0x30')][_0x4dcc('0x32')]?_0x30adc6['attributes']:_0x17e5e0[_0x4dcc('0x2c')];_0x30adc6[_0x4dcc('0x35')]=qs[_0x4dcc('0x48')](_0x90aca['query'][_0x4dcc('0x48')]);_0x30adc6[_0x4dcc('0x36')]=qs[_0x4dcc('0x2e')](_[_0x4dcc('0x37')](_0x90aca[_0x4dcc('0x2d')],_0x17e5e0[_0x4dcc('0x2e')]));if(_0x90aca[_0x4dcc('0x2d')][_0x4dcc('0x38')]){_0x30adc6[_0x4dcc('0x36')]=_[_0x4dcc('0x39')](_0x30adc6[_0x4dcc('0x36')],{'$or':_[_0x4dcc('0x27')](_0x30adc6[_0x4dcc('0x30')],function(_0x133031){var _0x5c7caf={};_0x5c7caf[_0x133031]={'$like':'%'+_0x90aca[_0x4dcc('0x2d')]['filter']+'%'};return _0x5c7caf;})});}_0x30adc6=_[_0x4dcc('0x39')]({},_0x30adc6,_0x90aca[_0x4dcc('0x3c')]);return _0x500028[_0x4dcc('0x49')](_0x30adc6);}})[_0x4dcc('0x21')](function(_0xe99345){if(_0xe99345){_0x4e1b58=_0xe99345[_0x4dcc('0x32')];if(!_0x90aca[_0x4dcc('0x2d')]['hasOwnProperty'](_0x4dcc('0x34'))){_0x30adc6['limit']=qs[_0x4dcc('0x19')](_0x90aca[_0x4dcc('0x2d')]['limit']);_0x30adc6['offset']=qs[_0x4dcc('0x18')](_0x90aca[_0x4dcc('0x2d')][_0x4dcc('0x18')]);}return _0x500028['getDescriptions'](_0x30adc6);}})[_0x4dcc('0x21')](function(_0x147ab1){if(_0x147ab1){return _0x147ab1?{'count':_0x4e1b58,'rows':_0x147ab1}:null;}})[_0x4dcc('0x21')](respondWithResult(_0xe8208b,null))['catch'](handleError(_0xe8208b,null));};exports['getFields']=function(_0x2d719a,_0x204223,_0x17d1a1){var _0x51d3a1={};var _0x26e9d6={};var _0x1b148c;var _0x3333bb;return db[_0x4dcc('0x28')]['findOne']({'where':{'id':_0x2d719a[_0x4dcc('0x46')]['id']}})[_0x4dcc('0x21')](handleEntityNotFound(_0x204223,null))[_0x4dcc('0x21')](function(_0xda19db){if(_0xda19db){_0x1b148c=_0xda19db;_0x26e9d6[_0x4dcc('0x2c')]=_['keys'](db['FreshsalesField'][_0x4dcc('0x29')]);_0x26e9d6[_0x4dcc('0x2d')]=_[_0x4dcc('0x42')](_0x2d719a['query']);_0x26e9d6[_0x4dcc('0x2e')]=_['intersection'](_0x26e9d6[_0x4dcc('0x2c')],_0x26e9d6[_0x4dcc('0x2d')]);_0x51d3a1['attributes']=_[_0x4dcc('0x2f')](_0x26e9d6['model'],qs[_0x4dcc('0x31')](_0x2d719a[_0x4dcc('0x2d')][_0x4dcc('0x31')]));_0x51d3a1[_0x4dcc('0x30')]=_0x51d3a1[_0x4dcc('0x30')][_0x4dcc('0x32')]?_0x51d3a1['attributes']:_0x26e9d6['model'];_0x51d3a1[_0x4dcc('0x35')]=qs[_0x4dcc('0x48')](_0x2d719a[_0x4dcc('0x2d')]['sort']);_0x51d3a1[_0x4dcc('0x36')]=qs[_0x4dcc('0x2e')](_[_0x4dcc('0x37')](_0x2d719a[_0x4dcc('0x2d')],_0x26e9d6[_0x4dcc('0x2e')]));if(_0x2d719a[_0x4dcc('0x2d')]['filter']){_0x51d3a1['where']=_[_0x4dcc('0x39')](_0x51d3a1[_0x4dcc('0x36')],{'$or':_['map'](_0x51d3a1[_0x4dcc('0x30')],function(_0x56029f){var _0x3129c3={};_0x3129c3[_0x56029f]={'$like':'%'+_0x2d719a['query'][_0x4dcc('0x38')]+'%'};return _0x3129c3;})});}_0x51d3a1=_[_0x4dcc('0x39')]({},_0x51d3a1,_0x2d719a[_0x4dcc('0x3c')]);return _0x1b148c['getFields'](_0x51d3a1);}})['then'](function(_0xb5dd18){if(_0xb5dd18){_0x3333bb=_0xb5dd18[_0x4dcc('0x32')];if(!_0x2d719a[_0x4dcc('0x2d')][_0x4dcc('0x33')](_0x4dcc('0x34'))){_0x51d3a1[_0x4dcc('0x19')]=qs['limit'](_0x2d719a[_0x4dcc('0x2d')][_0x4dcc('0x19')]);_0x51d3a1['offset']=qs[_0x4dcc('0x18')](_0x2d719a[_0x4dcc('0x2d')]['offset']);}return _0x1b148c[_0x4dcc('0x4b')](_0x51d3a1);}})['then'](function(_0x657ac){if(_0x657ac){return _0x657ac?{'count':_0x3333bb,'rows':_0x657ac}:null;}})[_0x4dcc('0x21')](respondWithResult(_0x204223,null))[_0x4dcc('0x41')](handleError(_0x204223,null));};
\ No newline at end of file
+var _0xd7cb=['order','where','pick','filter','merge','type','VIRTUAL','options','includeAll','include','findAll','catch','create','body','find','params','getSubjects','findOne','FreshsalesField','length','sort','getDescriptions','getFields','rimraf','request-promise','mustache','util','path','to-csv','squel','crypto','jsforce','querystring','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','send','index','FreshsalesConfiguration','rawAttributes','fieldName','key','model','map','keys','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit'];(function(_0x46679c,_0x103fae){var _0x401125=function(_0x2d5206){while(--_0x2d5206){_0x46679c['push'](_0x46679c['shift']());}};_0x401125(++_0x103fae);}(_0xd7cb,0x1df));var _0xbd7c=function(_0x2dafbe,_0x5d04de){_0x2dafbe=_0x2dafbe-0x0;var _0x58a45a=_0xd7cb[_0x2dafbe];return _0x58a45a;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xbd7c('0x0'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xbd7c('0x1'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xbd7c('0x2'));var util=require(_0xbd7c('0x3'));var path=require(_0xbd7c('0x4'));var sox=require('sox');var csv=require(_0xbd7c('0x5'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0xbd7c('0x6'));var crypto=require(_0xbd7c('0x7'));var jsforce=require(_0xbd7c('0x8'));var deskjs=require('desk.js');var toCsv=require(_0xbd7c('0x5'));var querystring=require(_0xbd7c('0x9'));var Papa=require('papaparse');var Redis=require(_0xbd7c('0xa'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xbd7c('0xb'));var hardwareService=require(_0xbd7c('0xc'));var logger=require(_0xbd7c('0xd'))('api');var utils=require(_0xbd7c('0xe'));var config=require(_0xbd7c('0xf'));var licenseUtil=require(_0xbd7c('0x10'));var db=require(_0xbd7c('0x11'))['db'];function respondWithStatusCode(_0x180075,_0x18aa34){_0x18aa34=_0x18aa34||0xcc;return function(_0x31d8a5){if(_0x31d8a5){return _0x180075[_0xbd7c('0x12')](_0x18aa34);}return _0x180075[_0xbd7c('0x13')](_0x18aa34)[_0xbd7c('0x14')]();};}function respondWithResult(_0x254ce1,_0x4d7967){_0x4d7967=_0x4d7967||0xc8;return function(_0x3d3f9b){if(_0x3d3f9b){return _0x254ce1['status'](_0x4d7967)[_0xbd7c('0x15')](_0x3d3f9b);}};}function respondWithFilteredResult(_0x4f1627,_0xd5456f){return function(_0x5cbe61){if(_0x5cbe61){var _0x49d574=typeof _0xd5456f[_0xbd7c('0x16')]===_0xbd7c('0x17')&&typeof _0xd5456f[_0xbd7c('0x18')]===_0xbd7c('0x17');var _0x5dd5dc=_0x5cbe61[_0xbd7c('0x19')];var _0x25e607=_0x49d574?0x0:_0xd5456f['offset'];var _0xc5286f=_0x49d574?_0x5cbe61[_0xbd7c('0x19')]:_0xd5456f['offset']+_0xd5456f[_0xbd7c('0x18')];var _0x51bd9c;if(_0xc5286f>=_0x5dd5dc){_0xc5286f=_0x5dd5dc;_0x51bd9c=0xc8;}else{_0x51bd9c=0xce;}_0x4f1627['status'](_0x51bd9c);return _0x4f1627[_0xbd7c('0x1a')](_0xbd7c('0x1b'),_0x25e607+'-'+_0xc5286f+'/'+_0x5dd5dc)[_0xbd7c('0x15')](_0x5cbe61);}return null;};}function patchUpdates(_0x56ad0c){return function(_0x3f7399){try{jsonpatch[_0xbd7c('0x1c')](_0x3f7399,_0x56ad0c,!![]);}catch(_0x5a0148){return BPromise[_0xbd7c('0x1d')](_0x5a0148);}return _0x3f7399[_0xbd7c('0x1e')]();};}function saveUpdates(_0x433c4b,_0x313d36){return function(_0x2191f1){if(_0x2191f1){return _0x2191f1[_0xbd7c('0x1f')](_0x433c4b)[_0xbd7c('0x20')](function(_0x581951){return _0x581951;});}return null;};}function removeEntity(_0x28bf23,_0x132e04){return function(_0xe5c270){if(_0xe5c270){return _0xe5c270[_0xbd7c('0x21')]()['then'](function(){_0x28bf23[_0xbd7c('0x13')](0xcc)[_0xbd7c('0x14')]();});}};}function handleEntityNotFound(_0x3dc1a6,_0x5e6c58){return function(_0x5e2462){if(!_0x5e2462){_0x3dc1a6[_0xbd7c('0x12')](0x194);}return _0x5e2462;};}function handleError(_0x22106d,_0x44bb56){_0x44bb56=_0x44bb56||0x1f4;return function(_0x188023){logger[_0xbd7c('0x22')](_0x188023[_0xbd7c('0x23')]);if(_0x188023[_0xbd7c('0x24')]){delete _0x188023[_0xbd7c('0x24')];}_0x22106d[_0xbd7c('0x13')](_0x44bb56)[_0xbd7c('0x25')](_0x188023);};}exports[_0xbd7c('0x26')]=function(_0x5ceeb9,_0x3759eb){var _0x2f4d42={},_0x1bb75d={},_0x4dae53={'count':0x0,'rows':[]};var _0x428ecb=_['map'](db[_0xbd7c('0x27')][_0xbd7c('0x28')],function(_0x34034b){return{'name':_0x34034b[_0xbd7c('0x29')],'type':_0x34034b['type'][_0xbd7c('0x2a')]};});_0x1bb75d[_0xbd7c('0x2b')]=_[_0xbd7c('0x2c')](_0x428ecb,'name');_0x1bb75d['query']=_[_0xbd7c('0x2d')](_0x5ceeb9[_0xbd7c('0x2e')]);_0x1bb75d[_0xbd7c('0x2f')]=_[_0xbd7c('0x30')](_0x1bb75d[_0xbd7c('0x2b')],_0x1bb75d[_0xbd7c('0x2e')]);_0x2f4d42[_0xbd7c('0x31')]=_['intersection'](_0x1bb75d[_0xbd7c('0x2b')],qs[_0xbd7c('0x32')](_0x5ceeb9['query']['fields']));_0x2f4d42[_0xbd7c('0x31')]=_0x2f4d42['attributes']['length']?_0x2f4d42[_0xbd7c('0x31')]:_0x1bb75d[_0xbd7c('0x2b')];if(!_0x5ceeb9[_0xbd7c('0x2e')][_0xbd7c('0x33')](_0xbd7c('0x34'))){_0x2f4d42[_0xbd7c('0x18')]=qs['limit'](_0x5ceeb9[_0xbd7c('0x2e')][_0xbd7c('0x18')]);_0x2f4d42['offset']=qs[_0xbd7c('0x16')](_0x5ceeb9[_0xbd7c('0x2e')]['offset']);}_0x2f4d42[_0xbd7c('0x35')]=qs['sort'](_0x5ceeb9[_0xbd7c('0x2e')]['sort']);_0x2f4d42[_0xbd7c('0x36')]=qs[_0xbd7c('0x2f')](_[_0xbd7c('0x37')](_0x5ceeb9[_0xbd7c('0x2e')],_0x1bb75d[_0xbd7c('0x2f')]),_0x428ecb);if(_0x5ceeb9[_0xbd7c('0x2e')][_0xbd7c('0x38')]){_0x2f4d42[_0xbd7c('0x36')]=_[_0xbd7c('0x39')](_0x2f4d42['where'],{'$or':_[_0xbd7c('0x2c')](_0x428ecb,function(_0x166823){if(_0x166823[_0xbd7c('0x3a')]!==_0xbd7c('0x3b')){var _0x1c66ce={};_0x1c66ce[_0x166823[_0xbd7c('0x24')]]={'$like':'%'+_0x5ceeb9['query']['filter']+'%'};return _0x1c66ce;}})});}_0x2f4d42=_[_0xbd7c('0x39')]({},_0x2f4d42,_0x5ceeb9[_0xbd7c('0x3c')]);var _0x1fda50={'where':_0x2f4d42[_0xbd7c('0x36')]};return db[_0xbd7c('0x27')][_0xbd7c('0x19')](_0x1fda50)[_0xbd7c('0x20')](function(_0x365216){_0x4dae53[_0xbd7c('0x19')]=_0x365216;if(_0x5ceeb9[_0xbd7c('0x2e')][_0xbd7c('0x3d')]){_0x2f4d42[_0xbd7c('0x3e')]=[{'all':!![]}];}return db[_0xbd7c('0x27')][_0xbd7c('0x3f')](_0x2f4d42);})[_0xbd7c('0x20')](function(_0x32d80f){_0x4dae53['rows']=_0x32d80f;return _0x4dae53;})[_0xbd7c('0x20')](respondWithFilteredResult(_0x3759eb,_0x2f4d42))[_0xbd7c('0x40')](handleError(_0x3759eb,null));};exports['show']=function(_0x471bfd,_0xf87089){var _0x2c2134={'raw':![],'where':{'id':_0x471bfd['params']['id']}},_0x44fe7a={};_0x44fe7a[_0xbd7c('0x2b')]=_[_0xbd7c('0x2d')](db[_0xbd7c('0x27')][_0xbd7c('0x28')]);_0x44fe7a['query']=_['keys'](_0x471bfd[_0xbd7c('0x2e')]);_0x44fe7a[_0xbd7c('0x2f')]=_[_0xbd7c('0x30')](_0x44fe7a['model'],_0x44fe7a[_0xbd7c('0x2e')]);_0x2c2134[_0xbd7c('0x31')]=_[_0xbd7c('0x30')](_0x44fe7a['model'],qs['fields'](_0x471bfd[_0xbd7c('0x2e')][_0xbd7c('0x32')]));_0x2c2134[_0xbd7c('0x31')]=_0x2c2134[_0xbd7c('0x31')]['length']?_0x2c2134[_0xbd7c('0x31')]:_0x44fe7a[_0xbd7c('0x2b')];if(_0x471bfd['query'][_0xbd7c('0x3d')]){_0x2c2134[_0xbd7c('0x3e')]=[{'all':!![]}];}_0x2c2134=_[_0xbd7c('0x39')]({},_0x2c2134,_0x471bfd[_0xbd7c('0x3c')]);return db[_0xbd7c('0x27')]['find'](_0x2c2134)[_0xbd7c('0x20')](handleEntityNotFound(_0xf87089,null))[_0xbd7c('0x20')](respondWithResult(_0xf87089,null))[_0xbd7c('0x40')](handleError(_0xf87089,null));};exports['create']=function(_0x5518da,_0x3c5cad){return db[_0xbd7c('0x27')][_0xbd7c('0x41')](_0x5518da[_0xbd7c('0x42')],{})['then'](respondWithResult(_0x3c5cad,0xc9))[_0xbd7c('0x40')](handleError(_0x3c5cad,null));};exports[_0xbd7c('0x1f')]=function(_0x5d0ddb,_0x302f1c){if(_0x5d0ddb[_0xbd7c('0x42')]['id']){delete _0x5d0ddb[_0xbd7c('0x42')]['id'];}return db['FreshsalesConfiguration'][_0xbd7c('0x43')]({'where':{'id':_0x5d0ddb['params']['id']}})[_0xbd7c('0x20')](handleEntityNotFound(_0x302f1c,null))['then'](saveUpdates(_0x5d0ddb[_0xbd7c('0x42')],null))[_0xbd7c('0x20')](respondWithResult(_0x302f1c,null))[_0xbd7c('0x40')](handleError(_0x302f1c,null));};exports[_0xbd7c('0x21')]=function(_0x1ba789,_0x4e8523){return db[_0xbd7c('0x27')][_0xbd7c('0x43')]({'where':{'id':_0x1ba789[_0xbd7c('0x44')]['id']}})[_0xbd7c('0x20')](handleEntityNotFound(_0x4e8523,null))[_0xbd7c('0x20')](removeEntity(_0x4e8523,null))[_0xbd7c('0x40')](handleError(_0x4e8523,null));};exports[_0xbd7c('0x45')]=function(_0x316714,_0x570826,_0x3e209d){var _0x198eb9={};var _0x40392c={};var _0x21af06;var _0xcb83ad;return db['FreshsalesConfiguration'][_0xbd7c('0x46')]({'where':{'id':_0x316714[_0xbd7c('0x44')]['id']}})[_0xbd7c('0x20')](handleEntityNotFound(_0x570826,null))[_0xbd7c('0x20')](function(_0x854cf1){if(_0x854cf1){_0x21af06=_0x854cf1;_0x40392c['model']=_[_0xbd7c('0x2d')](db[_0xbd7c('0x47')][_0xbd7c('0x28')]);_0x40392c[_0xbd7c('0x2e')]=_[_0xbd7c('0x2d')](_0x316714['query']);_0x40392c[_0xbd7c('0x2f')]=_[_0xbd7c('0x30')](_0x40392c[_0xbd7c('0x2b')],_0x40392c[_0xbd7c('0x2e')]);_0x198eb9[_0xbd7c('0x31')]=_[_0xbd7c('0x30')](_0x40392c[_0xbd7c('0x2b')],qs['fields'](_0x316714[_0xbd7c('0x2e')]['fields']));_0x198eb9[_0xbd7c('0x31')]=_0x198eb9[_0xbd7c('0x31')][_0xbd7c('0x48')]?_0x198eb9[_0xbd7c('0x31')]:_0x40392c[_0xbd7c('0x2b')];_0x198eb9[_0xbd7c('0x35')]=qs[_0xbd7c('0x49')](_0x316714[_0xbd7c('0x2e')][_0xbd7c('0x49')]);_0x198eb9['where']=qs[_0xbd7c('0x2f')](_[_0xbd7c('0x37')](_0x316714[_0xbd7c('0x2e')],_0x40392c['filters']));if(_0x316714[_0xbd7c('0x2e')]['filter']){_0x198eb9[_0xbd7c('0x36')]=_[_0xbd7c('0x39')](_0x198eb9[_0xbd7c('0x36')],{'$or':_[_0xbd7c('0x2c')](_0x198eb9[_0xbd7c('0x31')],function(_0xee86c5){var _0x34ea41={};_0x34ea41[_0xee86c5]={'$like':'%'+_0x316714[_0xbd7c('0x2e')][_0xbd7c('0x38')]+'%'};return _0x34ea41;})});}_0x198eb9=_[_0xbd7c('0x39')]({},_0x198eb9,_0x316714['options']);return _0x21af06[_0xbd7c('0x45')](_0x198eb9);}})[_0xbd7c('0x20')](function(_0x2e1c79){if(_0x2e1c79){_0xcb83ad=_0x2e1c79[_0xbd7c('0x48')];if(!_0x316714[_0xbd7c('0x2e')][_0xbd7c('0x33')](_0xbd7c('0x34'))){_0x198eb9[_0xbd7c('0x18')]=qs[_0xbd7c('0x18')](_0x316714['query'][_0xbd7c('0x18')]);_0x198eb9['offset']=qs[_0xbd7c('0x16')](_0x316714[_0xbd7c('0x2e')][_0xbd7c('0x16')]);}return _0x21af06['getSubjects'](_0x198eb9);}})[_0xbd7c('0x20')](function(_0x5cfe79){if(_0x5cfe79){return _0x5cfe79?{'count':_0xcb83ad,'rows':_0x5cfe79}:null;}})[_0xbd7c('0x20')](respondWithResult(_0x570826,null))[_0xbd7c('0x40')](handleError(_0x570826,null));};exports[_0xbd7c('0x4a')]=function(_0x57688c,_0x7c344e,_0x4aa6d9){var _0x4fa2c0={};var _0x2f378f={};var _0x41e50e;var _0x454cd7;return db['FreshsalesConfiguration']['findOne']({'where':{'id':_0x57688c[_0xbd7c('0x44')]['id']}})[_0xbd7c('0x20')](handleEntityNotFound(_0x7c344e,null))['then'](function(_0x25faf3){if(_0x25faf3){_0x41e50e=_0x25faf3;_0x2f378f[_0xbd7c('0x2b')]=_[_0xbd7c('0x2d')](db['FreshsalesField'][_0xbd7c('0x28')]);_0x2f378f[_0xbd7c('0x2e')]=_[_0xbd7c('0x2d')](_0x57688c['query']);_0x2f378f['filters']=_[_0xbd7c('0x30')](_0x2f378f['model'],_0x2f378f['query']);_0x4fa2c0[_0xbd7c('0x31')]=_[_0xbd7c('0x30')](_0x2f378f[_0xbd7c('0x2b')],qs[_0xbd7c('0x32')](_0x57688c['query'][_0xbd7c('0x32')]));_0x4fa2c0['attributes']=_0x4fa2c0[_0xbd7c('0x31')][_0xbd7c('0x48')]?_0x4fa2c0[_0xbd7c('0x31')]:_0x2f378f[_0xbd7c('0x2b')];_0x4fa2c0[_0xbd7c('0x35')]=qs['sort'](_0x57688c[_0xbd7c('0x2e')][_0xbd7c('0x49')]);_0x4fa2c0[_0xbd7c('0x36')]=qs[_0xbd7c('0x2f')](_[_0xbd7c('0x37')](_0x57688c[_0xbd7c('0x2e')],_0x2f378f[_0xbd7c('0x2f')]));if(_0x57688c[_0xbd7c('0x2e')]['filter']){_0x4fa2c0['where']=_[_0xbd7c('0x39')](_0x4fa2c0[_0xbd7c('0x36')],{'$or':_[_0xbd7c('0x2c')](_0x4fa2c0[_0xbd7c('0x31')],function(_0x4e1996){var _0x2f8a88={};_0x2f8a88[_0x4e1996]={'$like':'%'+_0x57688c[_0xbd7c('0x2e')][_0xbd7c('0x38')]+'%'};return _0x2f8a88;})});}_0x4fa2c0=_[_0xbd7c('0x39')]({},_0x4fa2c0,_0x57688c['options']);return _0x41e50e[_0xbd7c('0x4a')](_0x4fa2c0);}})[_0xbd7c('0x20')](function(_0x42b7ad){if(_0x42b7ad){_0x454cd7=_0x42b7ad[_0xbd7c('0x48')];if(!_0x57688c[_0xbd7c('0x2e')]['hasOwnProperty']('nolimit')){_0x4fa2c0[_0xbd7c('0x18')]=qs['limit'](_0x57688c[_0xbd7c('0x2e')][_0xbd7c('0x18')]);_0x4fa2c0[_0xbd7c('0x16')]=qs[_0xbd7c('0x16')](_0x57688c['query']['offset']);}return _0x41e50e[_0xbd7c('0x4a')](_0x4fa2c0);}})['then'](function(_0x2a9952){if(_0x2a9952){return _0x2a9952?{'count':_0x454cd7,'rows':_0x2a9952}:null;}})[_0xbd7c('0x20')](respondWithResult(_0x7c344e,null))[_0xbd7c('0x40')](handleError(_0x7c344e,null));};exports[_0xbd7c('0x4b')]=function(_0x52a96c,_0x27496c,_0x24d370){var _0x439cc7={};var _0x3cf05b={};var _0x57c866;var _0x2b2d48;return db[_0xbd7c('0x27')][_0xbd7c('0x46')]({'where':{'id':_0x52a96c[_0xbd7c('0x44')]['id']}})[_0xbd7c('0x20')](handleEntityNotFound(_0x27496c,null))[_0xbd7c('0x20')](function(_0x192347){if(_0x192347){_0x57c866=_0x192347;_0x3cf05b[_0xbd7c('0x2b')]=_[_0xbd7c('0x2d')](db[_0xbd7c('0x47')][_0xbd7c('0x28')]);_0x3cf05b['query']=_['keys'](_0x52a96c['query']);_0x3cf05b[_0xbd7c('0x2f')]=_[_0xbd7c('0x30')](_0x3cf05b[_0xbd7c('0x2b')],_0x3cf05b[_0xbd7c('0x2e')]);_0x439cc7[_0xbd7c('0x31')]=_['intersection'](_0x3cf05b[_0xbd7c('0x2b')],qs[_0xbd7c('0x32')](_0x52a96c[_0xbd7c('0x2e')]['fields']));_0x439cc7[_0xbd7c('0x31')]=_0x439cc7['attributes'][_0xbd7c('0x48')]?_0x439cc7['attributes']:_0x3cf05b['model'];_0x439cc7[_0xbd7c('0x35')]=qs[_0xbd7c('0x49')](_0x52a96c['query'][_0xbd7c('0x49')]);_0x439cc7['where']=qs[_0xbd7c('0x2f')](_['pick'](_0x52a96c['query'],_0x3cf05b[_0xbd7c('0x2f')]));if(_0x52a96c[_0xbd7c('0x2e')][_0xbd7c('0x38')]){_0x439cc7[_0xbd7c('0x36')]=_[_0xbd7c('0x39')](_0x439cc7[_0xbd7c('0x36')],{'$or':_[_0xbd7c('0x2c')](_0x439cc7[_0xbd7c('0x31')],function(_0x5b79b2){var _0x50372a={};_0x50372a[_0x5b79b2]={'$like':'%'+_0x52a96c['query'][_0xbd7c('0x38')]+'%'};return _0x50372a;})});}_0x439cc7=_['merge']({},_0x439cc7,_0x52a96c[_0xbd7c('0x3c')]);return _0x57c866[_0xbd7c('0x4b')](_0x439cc7);}})[_0xbd7c('0x20')](function(_0x402c6e){if(_0x402c6e){_0x2b2d48=_0x402c6e[_0xbd7c('0x48')];if(!_0x52a96c[_0xbd7c('0x2e')][_0xbd7c('0x33')](_0xbd7c('0x34'))){_0x439cc7[_0xbd7c('0x18')]=qs[_0xbd7c('0x18')](_0x52a96c[_0xbd7c('0x2e')][_0xbd7c('0x18')]);_0x439cc7[_0xbd7c('0x16')]=qs[_0xbd7c('0x16')](_0x52a96c[_0xbd7c('0x2e')][_0xbd7c('0x16')]);}return _0x57c866[_0xbd7c('0x4b')](_0x439cc7);}})[_0xbd7c('0x20')](function(_0x22a1ac){if(_0x22a1ac){return _0x22a1ac?{'count':_0x2b2d48,'rows':_0x22a1ac}:null;}})['then'](respondWithResult(_0x27496c,null))[_0xbd7c('0x40')](handleError(_0x27496c,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x748a=['./intFreshsalesConfiguration.attributes','exports','int_freshsales_configurations','lodash','../../config/logger','api','bluebird','request-promise','path'];(function(_0x21bceb,_0x56c1fd){var _0x1ac9b3=function(_0x349eb3){while(--_0x349eb3){_0x21bceb['push'](_0x21bceb['shift']());}};_0x1ac9b3(++_0x56c1fd);}(_0x748a,0x78));var _0xa748=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x748a[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0xa748('0x0'));var util=require('util');var logger=require(_0xa748('0x1'))(_0xa748('0x2'));var moment=require('moment');var BPromise=require(_0xa748('0x3'));var rp=require(_0xa748('0x4'));var fs=require('fs');var path=require(_0xa748('0x5'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0xa748('0x6'));module[_0xa748('0x7')]=function(_0x24cd97,_0x21eeaa){return _0x24cd97['define']('FreshsalesConfiguration',attributes,{'tableName':_0xa748('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x9cc9=['define','lodash','util','../../config/logger','moment','bluebird','request-promise','path','rimraf','./intFreshsalesConfiguration.attributes','exports'];(function(_0x2aa0e7,_0x4e5145){var _0x1472c0=function(_0x4deaeb){while(--_0x4deaeb){_0x2aa0e7['push'](_0x2aa0e7['shift']());}};_0x1472c0(++_0x4e5145);}(_0x9cc9,0x90));var _0x99cc=function(_0xf973e6,_0x496f24){_0xf973e6=_0xf973e6-0x0;var _0x30853a=_0x9cc9[_0xf973e6];return _0x30853a;};'use strict';var _=require(_0x99cc('0x0'));var util=require(_0x99cc('0x1'));var logger=require(_0x99cc('0x2'))('api');var moment=require(_0x99cc('0x3'));var BPromise=require(_0x99cc('0x4'));var rp=require(_0x99cc('0x5'));var fs=require('fs');var path=require(_0x99cc('0x6'));var rimraf=require(_0x99cc('0x7'));var config=require('../../config/environment');var attributes=require(_0x99cc('0x8'));module[_0x99cc('0x9')]=function(_0x3cfe19,_0x48e935){return _0x3cfe19[_0x99cc('0xa')]('FreshsalesConfiguration',attributes,{'tableName':'int_freshsales_configurations','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x57a2=['jayson/promise','client','http','then','info','debug','FreshsalesConfiguration,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','FreshsalesConfiguration,\x20%s,\x20%s','message','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment'];(function(_0x15ff34,_0x4117a4){var _0x5d55de=function(_0x2dacf2){while(--_0x2dacf2){_0x15ff34['push'](_0x15ff34['shift']());}};_0x5d55de(++_0x4117a4);}(_0x57a2,0xb5));var _0x257a=function(_0x59a091,_0x27cee1){_0x59a091=_0x59a091-0x0;var _0xcdbb2b=_0x57a2[_0x59a091];return _0xcdbb2b;};'use strict';var _=require('lodash');var util=require(_0x257a('0x0'));var moment=require('moment');var BPromise=require(_0x257a('0x1'));var rs=require(_0x257a('0x2'));var fs=require('fs');var Redis=require(_0x257a('0x3'));var db=require(_0x257a('0x4'))['db'];var utils=require(_0x257a('0x5'));var logger=require(_0x257a('0x6'))('rpc');var config=require(_0x257a('0x7'));var jayson=require(_0x257a('0x8'));var client=jayson[_0x257a('0x9')][_0x257a('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x208512,_0x4acdc7,_0xe5374d){return new BPromise(function(_0x1e3f82,_0x1a2e2a){return client['request'](_0x208512,_0xe5374d)[_0x257a('0xb')](function(_0x46b085){logger[_0x257a('0xc')]('FreshsalesConfiguration,\x20%s,\x20%s',_0x4acdc7,'request\x20sent');logger[_0x257a('0xd')](_0x257a('0xe'),_0x4acdc7,_0x257a('0xf'),JSON[_0x257a('0x10')](_0x46b085));if(_0x46b085['error']){if(_0x46b085[_0x257a('0x11')][_0x257a('0x12')]===0x1f4){logger[_0x257a('0x11')](_0x257a('0x13'),_0x4acdc7,_0x46b085[_0x257a('0x11')][_0x257a('0x14')]);return _0x1a2e2a(_0x46b085[_0x257a('0x11')][_0x257a('0x14')]);}logger[_0x257a('0x11')](_0x257a('0x13'),_0x4acdc7,_0x46b085[_0x257a('0x11')][_0x257a('0x14')]);return _0x1e3f82(_0x46b085['error'][_0x257a('0x14')]);}else{logger['info'](_0x257a('0x13'),_0x4acdc7,_0x257a('0xf'));_0x1e3f82(_0x46b085['result'][_0x257a('0x14')]);}})['catch'](function(_0x28fa25){logger[_0x257a('0x11')](_0x257a('0x13'),_0x4acdc7,_0x28fa25);_0x1a2e2a(_0x28fa25);});});}
\ No newline at end of file
+var _0xb1ef=['error','code','message','info','result','catch','util','moment','bluebird','randomstring','../../config/utils','../../config/logger','../../config/environment','client','http','then','FreshsalesConfiguration,\x20%s,\x20%s','debug','FreshsalesConfiguration,\x20%s,\x20%s,\x20%s','request\x20sent','stringify'];(function(_0x389322,_0xb61b26){var _0x502274=function(_0x39058c){while(--_0x39058c){_0x389322['push'](_0x389322['shift']());}};_0x502274(++_0xb61b26);}(_0xb1ef,0x84));var _0xfb1e=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0xb1ef[_0x122ef9];return _0x42fba0;};'use strict';var _=require('lodash');var util=require(_0xfb1e('0x0'));var moment=require(_0xfb1e('0x1'));var BPromise=require(_0xfb1e('0x2'));var rs=require(_0xfb1e('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0xfb1e('0x4'));var logger=require(_0xfb1e('0x5'))('rpc');var config=require(_0xfb1e('0x6'));var jayson=require('jayson/promise');var client=jayson[_0xfb1e('0x7')][_0xfb1e('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x2f5007,_0x4341de,_0x588d13){return new BPromise(function(_0x41e1e9,_0x20f0af){return client['request'](_0x2f5007,_0x588d13)[_0xfb1e('0x9')](function(_0x4e6667){logger['info'](_0xfb1e('0xa'),_0x4341de,'request\x20sent');logger[_0xfb1e('0xb')](_0xfb1e('0xc'),_0x4341de,_0xfb1e('0xd'),JSON[_0xfb1e('0xe')](_0x4e6667));if(_0x4e6667[_0xfb1e('0xf')]){if(_0x4e6667['error'][_0xfb1e('0x10')]===0x1f4){logger[_0xfb1e('0xf')](_0xfb1e('0xa'),_0x4341de,_0x4e6667[_0xfb1e('0xf')][_0xfb1e('0x11')]);return _0x20f0af(_0x4e6667[_0xfb1e('0xf')][_0xfb1e('0x11')]);}logger[_0xfb1e('0xf')](_0xfb1e('0xa'),_0x4341de,_0x4e6667[_0xfb1e('0xf')][_0xfb1e('0x11')]);return _0x41e1e9(_0x4e6667[_0xfb1e('0xf')][_0xfb1e('0x11')]);}else{logger[_0xfb1e('0x12')]('FreshsalesConfiguration,\x20%s,\x20%s',_0x4341de,_0xfb1e('0xd'));_0x41e1e9(_0x4e6667[_0xfb1e('0x13')]['message']);}})[_0xfb1e('0x14')](function(_0x30efb3){logger[_0xfb1e('0xf')](_0xfb1e('0xa'),_0x4341de,_0x30efb3);_0x20f0af(_0x30efb3);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x130d=['show','put','delete','exports','multer','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intFreshsalesField.controller','get','isAuthenticated','index','/:id'];(function(_0x1107b8,_0x15a7e8){var _0x2c898c=function(_0x57cb32){while(--_0x57cb32){_0x1107b8['push'](_0x1107b8['shift']());}};_0x2c898c(++_0x15a7e8);}(_0x130d,0x125));var _0xd130=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x130d[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require(_0xd130('0x0'));var util=require('util');var path=require(_0xd130('0x1'));var timeout=require('connect-timeout');var express=require(_0xd130('0x2'));var router=express[_0xd130('0x3')]();var fs_extra=require(_0xd130('0x4'));var auth=require(_0xd130('0x5'));var interaction=require(_0xd130('0x6'));var config=require(_0xd130('0x7'));var controller=require(_0xd130('0x8'));router[_0xd130('0x9')]('/',auth[_0xd130('0xa')](),controller[_0xd130('0xb')]);router[_0xd130('0x9')](_0xd130('0xc'),auth[_0xd130('0xa')](),controller[_0xd130('0xd')]);router['post']('/',auth[_0xd130('0xa')](),controller['create']);router[_0xd130('0xe')](_0xd130('0xc'),auth[_0xd130('0xa')](),controller['update']);router[_0xd130('0xf')](_0xd130('0xc'),auth['isAuthenticated'](),controller['destroy']);module[_0xd130('0x10')]=router;
\ No newline at end of file
+var _0x89c4=['../../config/environment','./intFreshsalesField.controller','get','isAuthenticated','/:id','show','create','update','delete','destroy','exports','multer','util','connect-timeout','fs-extra','../../components/auth/service','../../components/interaction/service'];(function(_0xe54e5b,_0x9bdd63){var _0x41f195=function(_0x5a2048){while(--_0x5a2048){_0xe54e5b['push'](_0xe54e5b['shift']());}};_0x41f195(++_0x9bdd63);}(_0x89c4,0x82));var _0x489c=function(_0x2b814c,_0x31bdb1){_0x2b814c=_0x2b814c-0x0;var _0x177516=_0x89c4[_0x2b814c];return _0x177516;};'use strict';var multer=require(_0x489c('0x0'));var util=require(_0x489c('0x1'));var path=require('path');var timeout=require(_0x489c('0x2'));var express=require('express');var router=express['Router']();var fs_extra=require(_0x489c('0x3'));var auth=require(_0x489c('0x4'));var interaction=require(_0x489c('0x5'));var config=require(_0x489c('0x6'));var controller=require(_0x489c('0x7'));router[_0x489c('0x8')]('/',auth[_0x489c('0x9')](),controller['index']);router[_0x489c('0x8')](_0x489c('0xa'),auth[_0x489c('0x9')](),controller[_0x489c('0xb')]);router['post']('/',auth['isAuthenticated'](),controller[_0x489c('0xc')]);router['put'](_0x489c('0xa'),auth[_0x489c('0x9')](),controller[_0x489c('0xd')]);router[_0x489c('0xe')](_0x489c('0xa'),auth[_0x489c('0x9')](),controller[_0x489c('0xf')]);module[_0x489c('0x10')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe18a=['STRING','BOOLEAN','exports','ENUM','string','variable','customVariable','keyValue'];(function(_0x15e714,_0x56c626){var _0x2abd91=function(_0x10cc85){while(--_0x10cc85){_0x15e714['push'](_0x15e714['shift']());}};_0x2abd91(++_0x56c626);}(_0xe18a,0x142));var _0xae18=function(_0x1348f3,_0x456d2f){_0x1348f3=_0x1348f3-0x0;var _0x4773e8=_0xe18a[_0x1348f3];return _0x4773e8;};'use strict';var Sequelize=require('sequelize');module[_0xae18('0x0')]={'type':{'type':Sequelize[_0xae18('0x1')](_0xae18('0x2'),_0xae18('0x3'),_0xae18('0x4'),_0xae18('0x5'),'picklist'),'defaultValue':_0xae18('0x2')},'content':{'type':Sequelize['STRING']},'key':{'type':Sequelize[_0xae18('0x6')]},'keyType':{'type':Sequelize[_0xae18('0x1')](_0xae18('0x2'),_0xae18('0x3'),_0xae18('0x4'))},'keyContent':{'type':Sequelize[_0xae18('0x6')]},'idField':{'type':Sequelize[_0xae18('0x6')]},'nameField':{'type':Sequelize[_0xae18('0x6')]},'customField':{'type':Sequelize[_0xae18('0x7')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0xae18('0x6')]}};
\ No newline at end of file
+var _0x5405=['picklist','STRING','customVariable','BOOLEAN','exports','ENUM','string','variable'];(function(_0x3511d3,_0x4107ae){var _0x5d6321=function(_0x1a23da){while(--_0x1a23da){_0x3511d3['push'](_0x3511d3['shift']());}};_0x5d6321(++_0x4107ae);}(_0x5405,0x124));var _0x5540=function(_0x5cd395,_0x507285){_0x5cd395=_0x5cd395-0x0;var _0x141227=_0x5405[_0x5cd395];return _0x141227;};'use strict';var Sequelize=require('sequelize');module[_0x5540('0x0')]={'type':{'type':Sequelize[_0x5540('0x1')](_0x5540('0x2'),_0x5540('0x3'),'customVariable','keyValue',_0x5540('0x4')),'defaultValue':_0x5540('0x2')},'content':{'type':Sequelize[_0x5540('0x5')]},'key':{'type':Sequelize['STRING']},'keyType':{'type':Sequelize[_0x5540('0x1')](_0x5540('0x2'),_0x5540('0x3'),_0x5540('0x6'))},'keyContent':{'type':Sequelize[_0x5540('0x5')]},'idField':{'type':Sequelize['STRING']},'nameField':{'type':Sequelize[_0x5540('0x5')]},'customField':{'type':Sequelize[_0x5540('0x7')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x5540('0x5')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1e73=['Content-Range','apply','reject','update','then','stack','name','send','map','FreshsalesField','rawAttributes','type','query','keys','filters','attributes','intersection','model','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','filter','options','includeAll','include','findAll','rows','catch','show','params','find','create','body','destroy','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','ejs','fs-extra','crypto','desk.js','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','sendStatus','status','end','json','offset','undefined','limit','count','set'];(function(_0x1f81ae,_0x57c3b1){var _0x478e71=function(_0x5962e1){while(--_0x5962e1){_0x1f81ae['push'](_0x1f81ae['shift']());}};_0x478e71(++_0x57c3b1);}(_0x1e73,0x71));var _0x31e7=function(_0x1fafa5,_0x1aa281){_0x1fafa5=_0x1fafa5-0x0;var _0xcf08c9=_0x1e73[_0x1fafa5];return _0xcf08c9;};'use strict';var emlformat=require(_0x31e7('0x0'));var rimraf=require(_0x31e7('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x31e7('0x2'));var rp=require(_0x31e7('0x3'));var moment=require(_0x31e7('0x4'));var BPromise=require(_0x31e7('0x5'));var Mustache=require(_0x31e7('0x6'));var util=require('util');var path=require(_0x31e7('0x7'));var sox=require(_0x31e7('0x8'));var csv=require('to-csv');var ejs=require(_0x31e7('0x9'));var fs=require('fs');var fs_extra=require(_0x31e7('0xa'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x31e7('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x31e7('0xc'));var toCsv=require('to-csv');var querystring=require(_0x31e7('0xd'));var Papa=require(_0x31e7('0xe'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x31e7('0xf'));var as=require(_0x31e7('0x10'));var hardwareService=require(_0x31e7('0x11'));var logger=require(_0x31e7('0x12'))(_0x31e7('0x13'));var utils=require('../../config/utils');var config=require(_0x31e7('0x14'));var licenseUtil=require(_0x31e7('0x15'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1d12d6,_0xa34c04){_0xa34c04=_0xa34c04||0xcc;return function(_0x409879){if(_0x409879){return _0x1d12d6[_0x31e7('0x16')](_0xa34c04);}return _0x1d12d6[_0x31e7('0x17')](_0xa34c04)[_0x31e7('0x18')]();};}function respondWithResult(_0x9e7307,_0x1b831e){_0x1b831e=_0x1b831e||0xc8;return function(_0x32682e){if(_0x32682e){return _0x9e7307['status'](_0x1b831e)[_0x31e7('0x19')](_0x32682e);}};}function respondWithFilteredResult(_0x43974f,_0x3438be){return function(_0xe77cea){if(_0xe77cea){var _0x30ca20=typeof _0x3438be[_0x31e7('0x1a')]===_0x31e7('0x1b')&&typeof _0x3438be[_0x31e7('0x1c')]===_0x31e7('0x1b');var _0x46d0eb=_0xe77cea['count'];var _0x516308=_0x30ca20?0x0:_0x3438be[_0x31e7('0x1a')];var _0x507b57=_0x30ca20?_0xe77cea[_0x31e7('0x1d')]:_0x3438be[_0x31e7('0x1a')]+_0x3438be[_0x31e7('0x1c')];var _0x2e3bbf;if(_0x507b57>=_0x46d0eb){_0x507b57=_0x46d0eb;_0x2e3bbf=0xc8;}else{_0x2e3bbf=0xce;}_0x43974f[_0x31e7('0x17')](_0x2e3bbf);return _0x43974f[_0x31e7('0x1e')](_0x31e7('0x1f'),_0x516308+'-'+_0x507b57+'/'+_0x46d0eb)[_0x31e7('0x19')](_0xe77cea);}return null;};}function patchUpdates(_0x4e2904){return function(_0x348f85){try{jsonpatch[_0x31e7('0x20')](_0x348f85,_0x4e2904,!![]);}catch(_0x17e392){return BPromise[_0x31e7('0x21')](_0x17e392);}return _0x348f85['save']();};}function saveUpdates(_0x1354c4,_0x513f2d){return function(_0x2b0245){if(_0x2b0245){return _0x2b0245[_0x31e7('0x22')](_0x1354c4)['then'](function(_0x49edd7){return _0x49edd7;});}return null;};}function removeEntity(_0x330ee5,_0x296339){return function(_0x338e33){if(_0x338e33){return _0x338e33['destroy']()[_0x31e7('0x23')](function(){_0x330ee5['status'](0xcc)[_0x31e7('0x18')]();});}};}function handleEntityNotFound(_0x382369,_0x443527){return function(_0x4c6860){if(!_0x4c6860){_0x382369[_0x31e7('0x16')](0x194);}return _0x4c6860;};}function handleError(_0xa32412,_0x149a89){_0x149a89=_0x149a89||0x1f4;return function(_0x2496c0){logger['error'](_0x2496c0[_0x31e7('0x24')]);if(_0x2496c0[_0x31e7('0x25')]){delete _0x2496c0[_0x31e7('0x25')];}_0xa32412[_0x31e7('0x17')](_0x149a89)[_0x31e7('0x26')](_0x2496c0);};}exports['index']=function(_0x1792e2,_0x11ff8b){var _0x19a04f={},_0x274299={},_0x299f3f={'count':0x0,'rows':[]};var _0x278398=_[_0x31e7('0x27')](db[_0x31e7('0x28')][_0x31e7('0x29')],function(_0x3d9bbf){return{'name':_0x3d9bbf['fieldName'],'type':_0x3d9bbf[_0x31e7('0x2a')]['key']};});_0x274299['model']=_[_0x31e7('0x27')](_0x278398,_0x31e7('0x25'));_0x274299[_0x31e7('0x2b')]=_[_0x31e7('0x2c')](_0x1792e2[_0x31e7('0x2b')]);_0x274299[_0x31e7('0x2d')]=_['intersection'](_0x274299['model'],_0x274299[_0x31e7('0x2b')]);_0x19a04f[_0x31e7('0x2e')]=_[_0x31e7('0x2f')](_0x274299[_0x31e7('0x30')],qs[_0x31e7('0x31')](_0x1792e2[_0x31e7('0x2b')]['fields']));_0x19a04f[_0x31e7('0x2e')]=_0x19a04f['attributes'][_0x31e7('0x32')]?_0x19a04f[_0x31e7('0x2e')]:_0x274299[_0x31e7('0x30')];if(!_0x1792e2[_0x31e7('0x2b')][_0x31e7('0x33')](_0x31e7('0x34'))){_0x19a04f[_0x31e7('0x1c')]=qs[_0x31e7('0x1c')](_0x1792e2[_0x31e7('0x2b')][_0x31e7('0x1c')]);_0x19a04f['offset']=qs[_0x31e7('0x1a')](_0x1792e2[_0x31e7('0x2b')]['offset']);}_0x19a04f[_0x31e7('0x35')]=qs[_0x31e7('0x36')](_0x1792e2['query']['sort']);_0x19a04f[_0x31e7('0x37')]=qs[_0x31e7('0x2d')](_[_0x31e7('0x38')](_0x1792e2['query'],_0x274299[_0x31e7('0x2d')]),_0x278398);if(_0x1792e2['query']['filter']){_0x19a04f[_0x31e7('0x37')]=_[_0x31e7('0x39')](_0x19a04f[_0x31e7('0x37')],{'$or':_[_0x31e7('0x27')](_0x278398,function(_0x373c03){if(_0x373c03[_0x31e7('0x2a')]!==_0x31e7('0x3a')){var _0x476e80={};_0x476e80[_0x373c03['name']]={'$like':'%'+_0x1792e2[_0x31e7('0x2b')][_0x31e7('0x3b')]+'%'};return _0x476e80;}})});}_0x19a04f=_['merge']({},_0x19a04f,_0x1792e2[_0x31e7('0x3c')]);var _0x345905={'where':_0x19a04f[_0x31e7('0x37')]};return db[_0x31e7('0x28')][_0x31e7('0x1d')](_0x345905)[_0x31e7('0x23')](function(_0x3b0831){_0x299f3f['count']=_0x3b0831;if(_0x1792e2[_0x31e7('0x2b')][_0x31e7('0x3d')]){_0x19a04f[_0x31e7('0x3e')]=[{'all':!![]}];}return db[_0x31e7('0x28')][_0x31e7('0x3f')](_0x19a04f);})[_0x31e7('0x23')](function(_0x139262){_0x299f3f[_0x31e7('0x40')]=_0x139262;return _0x299f3f;})[_0x31e7('0x23')](respondWithFilteredResult(_0x11ff8b,_0x19a04f))[_0x31e7('0x41')](handleError(_0x11ff8b,null));};exports[_0x31e7('0x42')]=function(_0x31a26b,_0x192c53){var _0x2c482e={'raw':!![],'where':{'id':_0x31a26b[_0x31e7('0x43')]['id']}},_0xa9b592={};_0xa9b592[_0x31e7('0x30')]=_['keys'](db[_0x31e7('0x28')][_0x31e7('0x29')]);_0xa9b592[_0x31e7('0x2b')]=_[_0x31e7('0x2c')](_0x31a26b[_0x31e7('0x2b')]);_0xa9b592['filters']=_[_0x31e7('0x2f')](_0xa9b592[_0x31e7('0x30')],_0xa9b592[_0x31e7('0x2b')]);_0x2c482e[_0x31e7('0x2e')]=_['intersection'](_0xa9b592[_0x31e7('0x30')],qs['fields'](_0x31a26b[_0x31e7('0x2b')][_0x31e7('0x31')]));_0x2c482e[_0x31e7('0x2e')]=_0x2c482e[_0x31e7('0x2e')]['length']?_0x2c482e[_0x31e7('0x2e')]:_0xa9b592[_0x31e7('0x30')];if(_0x31a26b[_0x31e7('0x2b')][_0x31e7('0x3d')]){_0x2c482e['include']=[{'all':!![]}];}_0x2c482e=_['merge']({},_0x2c482e,_0x31a26b[_0x31e7('0x3c')]);return db[_0x31e7('0x28')][_0x31e7('0x44')](_0x2c482e)['then'](handleEntityNotFound(_0x192c53,null))[_0x31e7('0x23')](respondWithResult(_0x192c53,null))[_0x31e7('0x41')](handleError(_0x192c53,null));};exports[_0x31e7('0x45')]=function(_0x481630,_0x4068dd){return db['FreshsalesField'][_0x31e7('0x45')](_0x481630['body'],{})[_0x31e7('0x23')](respondWithResult(_0x4068dd,0xc9))[_0x31e7('0x41')](handleError(_0x4068dd,null));};exports[_0x31e7('0x22')]=function(_0x4c8b29,_0x14f384){if(_0x4c8b29['body']['id']){delete _0x4c8b29[_0x31e7('0x46')]['id'];}return db[_0x31e7('0x28')]['find']({'where':{'id':_0x4c8b29['params']['id']}})[_0x31e7('0x23')](handleEntityNotFound(_0x14f384,null))[_0x31e7('0x23')](saveUpdates(_0x4c8b29[_0x31e7('0x46')],null))[_0x31e7('0x23')](respondWithResult(_0x14f384,null))[_0x31e7('0x41')](handleError(_0x14f384,null));};exports[_0x31e7('0x47')]=function(_0x51af83,_0x55643a){return db[_0x31e7('0x28')][_0x31e7('0x44')]({'where':{'id':_0x51af83['params']['id']}})[_0x31e7('0x23')](handleEntityNotFound(_0x55643a,null))[_0x31e7('0x23')](removeEntity(_0x55643a,null))[_0x31e7('0x41')](handleError(_0x55643a,null));};
\ No newline at end of file
+var _0x1bf0=['show','intersection','find','create','body','params','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','status','json','offset','undefined','limit','count','set','apply','reject','save','update','then','destroy','sendStatus','error','stack','name','send','index','map','rawAttributes','fieldName','type','key','model','query','keys','filters','fields','attributes','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','FreshsalesField','includeAll','include','findAll','rows','catch'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x1bf0,0x1e0));var _0x01bf=function(_0x522a43,_0x181abd){_0x522a43=_0x522a43-0x0;var _0x4f436e=_0x1bf0[_0x522a43];return _0x4f436e;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x01bf('0x0'));var jsonpatch=require(_0x01bf('0x1'));var rp=require(_0x01bf('0x2'));var moment=require(_0x01bf('0x3'));var BPromise=require(_0x01bf('0x4'));var Mustache=require(_0x01bf('0x5'));var util=require(_0x01bf('0x6'));var path=require(_0x01bf('0x7'));var sox=require(_0x01bf('0x8'));var csv=require(_0x01bf('0x9'));var ejs=require(_0x01bf('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x01bf('0xb'));var squel=require(_0x01bf('0xc'));var crypto=require(_0x01bf('0xd'));var jsforce=require(_0x01bf('0xe'));var deskjs=require(_0x01bf('0xf'));var toCsv=require(_0x01bf('0x9'));var querystring=require(_0x01bf('0x10'));var Papa=require(_0x01bf('0x11'));var Redis=require(_0x01bf('0x12'));var authService=require(_0x01bf('0x13'));var qs=require(_0x01bf('0x14'));var as=require(_0x01bf('0x15'));var hardwareService=require(_0x01bf('0x16'));var logger=require('../../config/logger')(_0x01bf('0x17'));var utils=require('../../config/utils');var config=require(_0x01bf('0x18'));var licenseUtil=require(_0x01bf('0x19'));var db=require(_0x01bf('0x1a'))['db'];function respondWithStatusCode(_0x4de874,_0x5625c5){_0x5625c5=_0x5625c5||0xcc;return function(_0x1438ae){if(_0x1438ae){return _0x4de874['sendStatus'](_0x5625c5);}return _0x4de874[_0x01bf('0x1b')](_0x5625c5)['end']();};}function respondWithResult(_0x4f3c94,_0x41c9f0){_0x41c9f0=_0x41c9f0||0xc8;return function(_0x28273a){if(_0x28273a){return _0x4f3c94[_0x01bf('0x1b')](_0x41c9f0)[_0x01bf('0x1c')](_0x28273a);}};}function respondWithFilteredResult(_0xa7ac81,_0xf5b995){return function(_0x2a9739){if(_0x2a9739){var _0x194124=typeof _0xf5b995[_0x01bf('0x1d')]===_0x01bf('0x1e')&&typeof _0xf5b995[_0x01bf('0x1f')]==='undefined';var _0x41a775=_0x2a9739[_0x01bf('0x20')];var _0x153c20=_0x194124?0x0:_0xf5b995[_0x01bf('0x1d')];var _0x26a97b=_0x194124?_0x2a9739[_0x01bf('0x20')]:_0xf5b995['offset']+_0xf5b995[_0x01bf('0x1f')];var _0x53ecce;if(_0x26a97b>=_0x41a775){_0x26a97b=_0x41a775;_0x53ecce=0xc8;}else{_0x53ecce=0xce;}_0xa7ac81[_0x01bf('0x1b')](_0x53ecce);return _0xa7ac81[_0x01bf('0x21')]('Content-Range',_0x153c20+'-'+_0x26a97b+'/'+_0x41a775)[_0x01bf('0x1c')](_0x2a9739);}return null;};}function patchUpdates(_0xd0663e){return function(_0x1e37be){try{jsonpatch[_0x01bf('0x22')](_0x1e37be,_0xd0663e,!![]);}catch(_0x1ca802){return BPromise[_0x01bf('0x23')](_0x1ca802);}return _0x1e37be[_0x01bf('0x24')]();};}function saveUpdates(_0x30d191,_0x357df3){return function(_0x43d461){if(_0x43d461){return _0x43d461[_0x01bf('0x25')](_0x30d191)[_0x01bf('0x26')](function(_0x16877f){return _0x16877f;});}return null;};}function removeEntity(_0x3ac402,_0x53f96c){return function(_0x73422f){if(_0x73422f){return _0x73422f[_0x01bf('0x27')]()[_0x01bf('0x26')](function(){_0x3ac402[_0x01bf('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x327b19,_0x500231){return function(_0x4d13c6){if(!_0x4d13c6){_0x327b19[_0x01bf('0x28')](0x194);}return _0x4d13c6;};}function handleError(_0xd2ab11,_0x10fa3e){_0x10fa3e=_0x10fa3e||0x1f4;return function(_0x5c081b){logger[_0x01bf('0x29')](_0x5c081b[_0x01bf('0x2a')]);if(_0x5c081b[_0x01bf('0x2b')]){delete _0x5c081b[_0x01bf('0x2b')];}_0xd2ab11['status'](_0x10fa3e)[_0x01bf('0x2c')](_0x5c081b);};}exports[_0x01bf('0x2d')]=function(_0x14fdba,_0x5b23d6){var _0x271263={},_0x5c5361={},_0x3e15b9={'count':0x0,'rows':[]};var _0x446d27=_[_0x01bf('0x2e')](db['FreshsalesField'][_0x01bf('0x2f')],function(_0x388636){return{'name':_0x388636[_0x01bf('0x30')],'type':_0x388636[_0x01bf('0x31')][_0x01bf('0x32')]};});_0x5c5361[_0x01bf('0x33')]=_[_0x01bf('0x2e')](_0x446d27,_0x01bf('0x2b'));_0x5c5361[_0x01bf('0x34')]=_[_0x01bf('0x35')](_0x14fdba['query']);_0x5c5361[_0x01bf('0x36')]=_['intersection'](_0x5c5361['model'],_0x5c5361['query']);_0x271263['attributes']=_['intersection'](_0x5c5361[_0x01bf('0x33')],qs[_0x01bf('0x37')](_0x14fdba[_0x01bf('0x34')][_0x01bf('0x37')]));_0x271263[_0x01bf('0x38')]=_0x271263[_0x01bf('0x38')][_0x01bf('0x39')]?_0x271263[_0x01bf('0x38')]:_0x5c5361[_0x01bf('0x33')];if(!_0x14fdba[_0x01bf('0x34')][_0x01bf('0x3a')](_0x01bf('0x3b'))){_0x271263[_0x01bf('0x1f')]=qs[_0x01bf('0x1f')](_0x14fdba[_0x01bf('0x34')][_0x01bf('0x1f')]);_0x271263[_0x01bf('0x1d')]=qs[_0x01bf('0x1d')](_0x14fdba[_0x01bf('0x34')][_0x01bf('0x1d')]);}_0x271263['order']=qs[_0x01bf('0x3c')](_0x14fdba[_0x01bf('0x34')]['sort']);_0x271263[_0x01bf('0x3d')]=qs[_0x01bf('0x36')](_[_0x01bf('0x3e')](_0x14fdba['query'],_0x5c5361[_0x01bf('0x36')]),_0x446d27);if(_0x14fdba[_0x01bf('0x34')][_0x01bf('0x3f')]){_0x271263[_0x01bf('0x3d')]=_[_0x01bf('0x40')](_0x271263[_0x01bf('0x3d')],{'$or':_['map'](_0x446d27,function(_0x469fe7){if(_0x469fe7[_0x01bf('0x31')]!==_0x01bf('0x41')){var _0x559415={};_0x559415[_0x469fe7[_0x01bf('0x2b')]]={'$like':'%'+_0x14fdba[_0x01bf('0x34')][_0x01bf('0x3f')]+'%'};return _0x559415;}})});}_0x271263=_[_0x01bf('0x40')]({},_0x271263,_0x14fdba[_0x01bf('0x42')]);var _0x58614e={'where':_0x271263['where']};return db[_0x01bf('0x43')][_0x01bf('0x20')](_0x58614e)[_0x01bf('0x26')](function(_0x29d419){_0x3e15b9[_0x01bf('0x20')]=_0x29d419;if(_0x14fdba[_0x01bf('0x34')][_0x01bf('0x44')]){_0x271263[_0x01bf('0x45')]=[{'all':!![]}];}return db[_0x01bf('0x43')][_0x01bf('0x46')](_0x271263);})[_0x01bf('0x26')](function(_0x12c9d1){_0x3e15b9[_0x01bf('0x47')]=_0x12c9d1;return _0x3e15b9;})[_0x01bf('0x26')](respondWithFilteredResult(_0x5b23d6,_0x271263))[_0x01bf('0x48')](handleError(_0x5b23d6,null));};exports[_0x01bf('0x49')]=function(_0x3a113c,_0x3484e0){var _0x2cc8a7={'raw':!![],'where':{'id':_0x3a113c['params']['id']}},_0x22b8e2={};_0x22b8e2['model']=_[_0x01bf('0x35')](db[_0x01bf('0x43')][_0x01bf('0x2f')]);_0x22b8e2[_0x01bf('0x34')]=_['keys'](_0x3a113c[_0x01bf('0x34')]);_0x22b8e2[_0x01bf('0x36')]=_[_0x01bf('0x4a')](_0x22b8e2[_0x01bf('0x33')],_0x22b8e2[_0x01bf('0x34')]);_0x2cc8a7[_0x01bf('0x38')]=_[_0x01bf('0x4a')](_0x22b8e2[_0x01bf('0x33')],qs[_0x01bf('0x37')](_0x3a113c['query'][_0x01bf('0x37')]));_0x2cc8a7[_0x01bf('0x38')]=_0x2cc8a7[_0x01bf('0x38')][_0x01bf('0x39')]?_0x2cc8a7['attributes']:_0x22b8e2['model'];if(_0x3a113c[_0x01bf('0x34')]['includeAll']){_0x2cc8a7['include']=[{'all':!![]}];}_0x2cc8a7=_[_0x01bf('0x40')]({},_0x2cc8a7,_0x3a113c[_0x01bf('0x42')]);return db[_0x01bf('0x43')][_0x01bf('0x4b')](_0x2cc8a7)[_0x01bf('0x26')](handleEntityNotFound(_0x3484e0,null))['then'](respondWithResult(_0x3484e0,null))[_0x01bf('0x48')](handleError(_0x3484e0,null));};exports[_0x01bf('0x4c')]=function(_0x462911,_0xcf0bd0){return db['FreshsalesField'][_0x01bf('0x4c')](_0x462911[_0x01bf('0x4d')],{})[_0x01bf('0x26')](respondWithResult(_0xcf0bd0,0xc9))[_0x01bf('0x48')](handleError(_0xcf0bd0,null));};exports[_0x01bf('0x25')]=function(_0x592679,_0x24cf6e){if(_0x592679[_0x01bf('0x4d')]['id']){delete _0x592679[_0x01bf('0x4d')]['id'];}return db['FreshsalesField'][_0x01bf('0x4b')]({'where':{'id':_0x592679[_0x01bf('0x4e')]['id']}})['then'](handleEntityNotFound(_0x24cf6e,null))[_0x01bf('0x26')](saveUpdates(_0x592679[_0x01bf('0x4d')],null))[_0x01bf('0x26')](respondWithResult(_0x24cf6e,null))[_0x01bf('0x48')](handleError(_0x24cf6e,null));};exports[_0x01bf('0x27')]=function(_0x57515a,_0x147ff7){return db[_0x01bf('0x43')][_0x01bf('0x4b')]({'where':{'id':_0x57515a[_0x01bf('0x4e')]['id']}})[_0x01bf('0x26')](handleEntityNotFound(_0x147ff7,null))[_0x01bf('0x26')](removeEntity(_0x147ff7,null))[_0x01bf('0x48')](handleError(_0x147ff7,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa2cb=['request-promise','path','FreshsalesField','freshsales_unique_index','idField','lodash','util','api','moment','bluebird'];(function(_0x4bfbf0,_0x5f1fdd){var _0xc3f1ba=function(_0x45b55f){while(--_0x45b55f){_0x4bfbf0['push'](_0x4bfbf0['shift']());}};_0xc3f1ba(++_0x5f1fdd);}(_0xa2cb,0x7d));var _0xba2c=function(_0x4b55e1,_0x15c0da){_0x4b55e1=_0x4b55e1-0x0;var _0x1d7a2f=_0xa2cb[_0x4b55e1];return _0x1d7a2f;};'use strict';var _=require(_0xba2c('0x0'));var util=require(_0xba2c('0x1'));var logger=require('../../config/logger')(_0xba2c('0x2'));var moment=require(_0xba2c('0x3'));var BPromise=require(_0xba2c('0x4'));var rp=require(_0xba2c('0x5'));var fs=require('fs');var path=require(_0xba2c('0x6'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require('./intFreshsalesField.attributes');module['exports']=function(_0x55034c,_0x21acc2){return _0x55034c['define'](_0xba2c('0x7'),attributes,{'tableName':'int_freshsales_fields','paranoid':![],'indexes':[{'name':_0xba2c('0x8'),'fields':[_0xba2c('0x9'),'FieldId'],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xd8d7=['lodash','util','../../config/logger','api','moment','../../config/environment','exports','define','FreshsalesField','int_freshsales_fields','freshsales_unique_index','FieldId'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xd8d7,0x1d4));var _0x7d8d=function(_0x465028,_0x4570ac){_0x465028=_0x465028-0x0;var _0xb783d4=_0xd8d7[_0x465028];return _0xb783d4;};'use strict';var _=require(_0x7d8d('0x0'));var util=require(_0x7d8d('0x1'));var logger=require(_0x7d8d('0x2'))(_0x7d8d('0x3'));var moment=require(_0x7d8d('0x4'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x7d8d('0x5'));var attributes=require('./intFreshsalesField.attributes');module[_0x7d8d('0x6')]=function(_0x35f2b2,_0x1dce79){return _0x35f2b2[_0x7d8d('0x7')](_0x7d8d('0x8'),attributes,{'tableName':_0x7d8d('0x9'),'paranoid':![],'indexes':[{'name':_0x7d8d('0xa'),'fields':['idField',_0x7d8d('0xb')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2eb2=['request','then','info','request\x20sent','error','FreshsalesField,\x20%s,\x20%s','message','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','jayson/promise','client','http'];(function(_0x5dd2b8,_0x519d23){var _0x30eef1=function(_0x22e6e7){while(--_0x22e6e7){_0x5dd2b8['push'](_0x5dd2b8['shift']());}};_0x30eef1(++_0x519d23);}(_0x2eb2,0x19f));var _0x22eb=function(_0x257642,_0x270a80){_0x257642=_0x257642-0x0;var _0x3d813b=_0x2eb2[_0x257642];return _0x3d813b;};'use strict';var _=require('lodash');var util=require(_0x22eb('0x0'));var moment=require(_0x22eb('0x1'));var BPromise=require(_0x22eb('0x2'));var rs=require(_0x22eb('0x3'));var fs=require('fs');var Redis=require(_0x22eb('0x4'));var db=require(_0x22eb('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x22eb('0x6'))('rpc');var config=require('../../config/environment');var jayson=require(_0x22eb('0x7'));var client=jayson[_0x22eb('0x8')][_0x22eb('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x2a9850,_0x4539d0,_0x396806){return new BPromise(function(_0x33ddef,_0x3375d6){return client[_0x22eb('0xa')](_0x2a9850,_0x396806)[_0x22eb('0xb')](function(_0xb9c8a4){logger[_0x22eb('0xc')]('FreshsalesField,\x20%s,\x20%s',_0x4539d0,_0x22eb('0xd'));logger['debug']('FreshsalesField,\x20%s,\x20%s,\x20%s',_0x4539d0,_0x22eb('0xd'),JSON['stringify'](_0xb9c8a4));if(_0xb9c8a4[_0x22eb('0xe')]){if(_0xb9c8a4[_0x22eb('0xe')]['code']===0x1f4){logger['error'](_0x22eb('0xf'),_0x4539d0,_0xb9c8a4[_0x22eb('0xe')][_0x22eb('0x10')]);return _0x3375d6(_0xb9c8a4[_0x22eb('0xe')][_0x22eb('0x10')]);}logger['error'](_0x22eb('0xf'),_0x4539d0,_0xb9c8a4['error'][_0x22eb('0x10')]);return _0x33ddef(_0xb9c8a4['error'][_0x22eb('0x10')]);}else{logger[_0x22eb('0xc')]('FreshsalesField,\x20%s,\x20%s',_0x4539d0,'request\x20sent');_0x33ddef(_0xb9c8a4['result'][_0x22eb('0x10')]);}})['catch'](function(_0x50176d){logger[_0x22eb('0xe')]('FreshsalesField,\x20%s,\x20%s',_0x4539d0,_0x50176d);_0x3375d6(_0x50176d);});});}
\ No newline at end of file
+var _0xfcf0=['randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','info','FreshsalesField,\x20%s,\x20%s','debug','request\x20sent','stringify','error','message','result','lodash','util','bluebird'];(function(_0x421e36,_0x18776e){var _0x20b3e3=function(_0x767de4){while(--_0x767de4){_0x421e36['push'](_0x421e36['shift']());}};_0x20b3e3(++_0x18776e);}(_0xfcf0,0x138));var _0x0fcf=function(_0x12b683,_0x124186){_0x12b683=_0x12b683-0x0;var _0xfb150b=_0xfcf0[_0x12b683];return _0xfb150b;};'use strict';var _=require(_0x0fcf('0x0'));var util=require(_0x0fcf('0x1'));var moment=require('moment');var BPromise=require(_0x0fcf('0x2'));var rs=require(_0x0fcf('0x3'));var fs=require('fs');var Redis=require(_0x0fcf('0x4'));var db=require(_0x0fcf('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x0fcf('0x6'))(_0x0fcf('0x7'));var config=require(_0x0fcf('0x8'));var jayson=require(_0x0fcf('0x9'));var client=jayson[_0x0fcf('0xa')][_0x0fcf('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x61bbb9,_0x2dfdf8,_0x50c575){return new BPromise(function(_0x1388d1,_0x6ced94){return client[_0x0fcf('0xc')](_0x61bbb9,_0x50c575)['then'](function(_0x69a840){logger[_0x0fcf('0xd')](_0x0fcf('0xe'),_0x2dfdf8,'request\x20sent');logger[_0x0fcf('0xf')]('FreshsalesField,\x20%s,\x20%s,\x20%s',_0x2dfdf8,_0x0fcf('0x10'),JSON[_0x0fcf('0x11')](_0x69a840));if(_0x69a840[_0x0fcf('0x12')]){if(_0x69a840['error']['code']===0x1f4){logger[_0x0fcf('0x12')](_0x0fcf('0xe'),_0x2dfdf8,_0x69a840['error'][_0x0fcf('0x13')]);return _0x6ced94(_0x69a840[_0x0fcf('0x12')][_0x0fcf('0x13')]);}logger[_0x0fcf('0x12')](_0x0fcf('0xe'),_0x2dfdf8,_0x69a840['error'][_0x0fcf('0x13')]);return _0x1388d1(_0x69a840[_0x0fcf('0x12')][_0x0fcf('0x13')]);}else{logger['info'](_0x0fcf('0xe'),_0x2dfdf8,_0x0fcf('0x10'));_0x1388d1(_0x69a840[_0x0fcf('0x14')][_0x0fcf('0x13')]);}})['catch'](function(_0x3e78d0){logger[_0x0fcf('0x12')](_0x0fcf('0xe'),_0x2dfdf8,_0x3e78d0);_0x6ced94(_0x3e78d0);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9957=['connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./intSalesforceAccount.controller','get','isAuthenticated','index','/:id','show','getConfigurations','/:id/fields','getFields','post','create','addConfiguration','put','update','delete','destroy','exports','multer','util','path'];(function(_0x154b46,_0x4e5edc){var _0xe5d751=function(_0x3863d8){while(--_0x3863d8){_0x154b46['push'](_0x154b46['shift']());}};_0xe5d751(++_0x4e5edc);}(_0x9957,0x93));var _0x7995=function(_0x618414,_0x1a7a60){_0x618414=_0x618414-0x0;var _0x21c19a=_0x9957[_0x618414];return _0x21c19a;};'use strict';var multer=require(_0x7995('0x0'));var util=require(_0x7995('0x1'));var path=require(_0x7995('0x2'));var timeout=require(_0x7995('0x3'));var express=require('express');var router=express[_0x7995('0x4')]();var fs_extra=require(_0x7995('0x5'));var auth=require(_0x7995('0x6'));var interaction=require(_0x7995('0x7'));var config=require('../../config/environment');var controller=require(_0x7995('0x8'));router[_0x7995('0x9')]('/',auth[_0x7995('0xa')](),controller[_0x7995('0xb')]);router[_0x7995('0x9')](_0x7995('0xc'),auth['isAuthenticated'](),controller[_0x7995('0xd')]);router[_0x7995('0x9')]('/:id/configurations',auth[_0x7995('0xa')](),controller[_0x7995('0xe')]);router[_0x7995('0x9')](_0x7995('0xf'),auth[_0x7995('0xa')](),controller[_0x7995('0x10')]);router[_0x7995('0x11')]('/',auth['isAuthenticated'](),controller[_0x7995('0x12')]);router[_0x7995('0x11')]('/:id/configurations',auth[_0x7995('0xa')](),controller[_0x7995('0x13')]);router[_0x7995('0x14')](_0x7995('0xc'),auth[_0x7995('0xa')](),controller[_0x7995('0x15')]);router[_0x7995('0x16')]('/:id',auth['isAuthenticated'](),controller[_0x7995('0x17')]);module[_0x7995('0x18')]=router;
\ No newline at end of file
+var _0xa9e0=['Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./intSalesforceAccount.controller','get','index','/:id','getConfigurations','/:id/fields','isAuthenticated','getFields','post','addConfiguration','put','update','destroy','exports','multer','util','path'];(function(_0x269a10,_0x173c6e){var _0xf35e3e=function(_0x3b73e4){while(--_0x3b73e4){_0x269a10['push'](_0x269a10['shift']());}};_0xf35e3e(++_0x173c6e);}(_0xa9e0,0x123));var _0x0a9e=function(_0x45e98e,_0x169b60){_0x45e98e=_0x45e98e-0x0;var _0x374dba=_0xa9e0[_0x45e98e];return _0x374dba;};'use strict';var multer=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var path=require(_0x0a9e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0a9e('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x0a9e('0x4'));var interaction=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var controller=require(_0x0a9e('0x7'));router[_0x0a9e('0x8')]('/',auth['isAuthenticated'](),controller[_0x0a9e('0x9')]);router[_0x0a9e('0x8')](_0x0a9e('0xa'),auth['isAuthenticated'](),controller['show']);router[_0x0a9e('0x8')]('/:id/configurations',auth['isAuthenticated'](),controller[_0x0a9e('0xb')]);router[_0x0a9e('0x8')](_0x0a9e('0xc'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0xe')]);router[_0x0a9e('0xf')]('/',auth['isAuthenticated'](),controller['create']);router['post']('/:id/configurations',auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x10')]);router[_0x0a9e('0x11')](_0x0a9e('0xa'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x12')]);router['delete'](_0x0a9e('0xa'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x13')]);module[_0x0a9e('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaafc=['STRING','ENUM','newTab','integrationTab','exports'];(function(_0x1a1b6e,_0x3a07a9){var _0x571e2c=function(_0x6cea62){while(--_0x6cea62){_0x1a1b6e['push'](_0x1a1b6e['shift']());}};_0x571e2c(++_0x3a07a9);}(_0xaafc,0x176));var _0xcaaf=function(_0x292eec,_0x418b6c){_0x292eec=_0x292eec-0x0;var _0x50bf3a=_0xaafc[_0x292eec];return _0x50bf3a;};'use strict';var Sequelize=require('sequelize');module[_0xcaaf('0x0')]={'name':{'type':Sequelize[_0xcaaf('0x1')]},'description':{'type':Sequelize[_0xcaaf('0x1')]},'username':{'type':Sequelize[_0xcaaf('0x1')],'unique':'username'},'remoteUri':{'type':Sequelize[_0xcaaf('0x1')]},'password':{'type':Sequelize[_0xcaaf('0x1')]},'clientId':{'type':Sequelize['STRING']},'clientSecret':{'type':Sequelize['STRING']},'securityToken':{'type':Sequelize[_0xcaaf('0x1')]},'serverUrl':{'type':Sequelize['STRING'],'allowNull':![]},'type':{'type':Sequelize[_0xcaaf('0x2')]('integrationTab',_0xcaaf('0x3')),'defaultValue':_0xcaaf('0x4')}};
\ No newline at end of file
+var _0x5ec3=['integrationTab','newTab','sequelize','STRING','username','ENUM'];(function(_0x50304b,_0x4fdd31){var _0x31f3b2=function(_0x32e649){while(--_0x32e649){_0x50304b['push'](_0x50304b['shift']());}};_0x31f3b2(++_0x4fdd31);}(_0x5ec3,0xf2));var _0x35ec=function(_0x268a41,_0x5e4c2e){_0x268a41=_0x268a41-0x0;var _0xb12549=_0x5ec3[_0x268a41];return _0xb12549;};'use strict';var Sequelize=require(_0x35ec('0x0'));module['exports']={'name':{'type':Sequelize[_0x35ec('0x1')]},'description':{'type':Sequelize[_0x35ec('0x1')]},'username':{'type':Sequelize['STRING'],'unique':_0x35ec('0x2')},'remoteUri':{'type':Sequelize[_0x35ec('0x1')]},'password':{'type':Sequelize['STRING']},'clientId':{'type':Sequelize[_0x35ec('0x1')]},'clientSecret':{'type':Sequelize[_0x35ec('0x1')]},'securityToken':{'type':Sequelize[_0x35ec('0x1')]},'serverUrl':{'type':Sequelize[_0x35ec('0x1')],'allowNull':![]},'type':{'type':Sequelize[_0x35ec('0x3')](_0x35ec('0x4'),_0x35ec('0x5')),'defaultValue':_0x35ec('0x4')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1432=['error','stack','name','send','map','SalesforceAccount','rawAttributes','type','key','model','query','filters','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','VIRTUAL','options','count','includeAll','findAll','rows','catch','show','params','keys','intersection','include','find','create','body','getConfigurations','findOne','SalesforceConfiguration','addConfiguration','AccountId','Descriptions','getDescriptions','channel','Subjects','getFields','Task','remoteUri','clientId','clientSecret','username','password','securityToken','lastIndexOf','Connection','concat','isNil','sobject','describe','OwnerId','ActivityDate','IsReminderSet','IsRecurrence','Subject','Description','int','picklist','boolean','email','textarea','includes','label','custom','picklistValues','value','True','true','False','statusCode','stringify','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','limit','Content-Range','apply','reject','save','update','then','destroy'];(function(_0x3aebad,_0x22b5df){var _0x4f28da=function(_0x1767f9){while(--_0x1767f9){_0x3aebad['push'](_0x3aebad['shift']());}};_0x4f28da(++_0x22b5df);}(_0x1432,0x1bd));var _0x2143=function(_0x59d89e,_0x55edf5){_0x59d89e=_0x59d89e-0x0;var _0x554e93=_0x1432[_0x59d89e];return _0x554e93;};'use strict';var emlformat=require(_0x2143('0x0'));var rimraf=require(_0x2143('0x1'));var zipdir=require(_0x2143('0x2'));var jsonpatch=require(_0x2143('0x3'));var rp=require(_0x2143('0x4'));var moment=require(_0x2143('0x5'));var BPromise=require(_0x2143('0x6'));var Mustache=require(_0x2143('0x7'));var util=require('util');var path=require(_0x2143('0x8'));var sox=require(_0x2143('0x9'));var csv=require(_0x2143('0xa'));var ejs=require(_0x2143('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x2143('0xc'));var squel=require('squel');var crypto=require(_0x2143('0xd'));var jsforce=require(_0x2143('0xe'));var deskjs=require(_0x2143('0xf'));var toCsv=require('to-csv');var querystring=require(_0x2143('0x10'));var Papa=require(_0x2143('0x11'));var Redis=require(_0x2143('0x12'));var authService=require(_0x2143('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0x2143('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x2143('0x15'))(_0x2143('0x16'));var utils=require('../../config/utils');var config=require(_0x2143('0x17'));var licenseUtil=require(_0x2143('0x18'));var db=require(_0x2143('0x19'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x22a023,_0x5cc218){_0x5cc218=_0x5cc218||0xcc;return function(_0x1c232b){if(_0x1c232b){return _0x22a023[_0x2143('0x1a')](_0x5cc218);}return _0x22a023['status'](_0x5cc218)[_0x2143('0x1b')]();};}function respondWithResult(_0x43e9fa,_0x24f49f){_0x24f49f=_0x24f49f||0xc8;return function(_0x3b60f3){if(_0x3b60f3){return _0x43e9fa[_0x2143('0x1c')](_0x24f49f)[_0x2143('0x1d')](_0x3b60f3);}};}function respondWithFilteredResult(_0x2353d7,_0x54a255){return function(_0x4e609e){if(_0x4e609e){var _0x106ada=typeof _0x54a255[_0x2143('0x1e')]==='undefined'&&typeof _0x54a255[_0x2143('0x1f')]==='undefined';var _0x34ddc2=_0x4e609e['count'];var _0x5d67bc=_0x106ada?0x0:_0x54a255[_0x2143('0x1e')];var _0x3f6830=_0x106ada?_0x4e609e['count']:_0x54a255[_0x2143('0x1e')]+_0x54a255[_0x2143('0x1f')];var _0x52259c;if(_0x3f6830>=_0x34ddc2){_0x3f6830=_0x34ddc2;_0x52259c=0xc8;}else{_0x52259c=0xce;}_0x2353d7[_0x2143('0x1c')](_0x52259c);return _0x2353d7['set'](_0x2143('0x20'),_0x5d67bc+'-'+_0x3f6830+'/'+_0x34ddc2)[_0x2143('0x1d')](_0x4e609e);}return null;};}function patchUpdates(_0x4030e1){return function(_0x22217b){try{jsonpatch[_0x2143('0x21')](_0x22217b,_0x4030e1,!![]);}catch(_0x5de827){return BPromise[_0x2143('0x22')](_0x5de827);}return _0x22217b[_0x2143('0x23')]();};}function saveUpdates(_0x7d7134,_0x3d2e51){return function(_0x42b9c4){if(_0x42b9c4){return _0x42b9c4[_0x2143('0x24')](_0x7d7134)[_0x2143('0x25')](function(_0x1d549f){return _0x1d549f;});}return null;};}function removeEntity(_0x3bea43,_0xc56714){return function(_0x42e114){if(_0x42e114){return _0x42e114[_0x2143('0x26')]()['then'](function(){_0x3bea43[_0x2143('0x1c')](0xcc)[_0x2143('0x1b')]();});}};}function handleEntityNotFound(_0x5ac9f4,_0x14304d){return function(_0x37230b){if(!_0x37230b){_0x5ac9f4[_0x2143('0x1a')](0x194);}return _0x37230b;};}function handleError(_0x7ffdd7,_0x40258c){_0x40258c=_0x40258c||0x1f4;return function(_0x37ade6){logger[_0x2143('0x27')](_0x37ade6[_0x2143('0x28')]);if(_0x37ade6[_0x2143('0x29')]){delete _0x37ade6['name'];}_0x7ffdd7[_0x2143('0x1c')](_0x40258c)[_0x2143('0x2a')](_0x37ade6);};}exports['index']=function(_0x4dc3a4,_0x4a1585){var _0x49635c={},_0x11c395={},_0x384416={'count':0x0,'rows':[]};var _0x3cd23e=_[_0x2143('0x2b')](db[_0x2143('0x2c')][_0x2143('0x2d')],function(_0x5e759b){return{'name':_0x5e759b['fieldName'],'type':_0x5e759b[_0x2143('0x2e')][_0x2143('0x2f')]};});_0x11c395[_0x2143('0x30')]=_['map'](_0x3cd23e,_0x2143('0x29'));_0x11c395[_0x2143('0x31')]=_['keys'](_0x4dc3a4[_0x2143('0x31')]);_0x11c395[_0x2143('0x32')]=_['intersection'](_0x11c395[_0x2143('0x30')],_0x11c395['query']);_0x49635c['attributes']=_['intersection'](_0x11c395[_0x2143('0x30')],qs[_0x2143('0x33')](_0x4dc3a4[_0x2143('0x31')][_0x2143('0x33')]));_0x49635c[_0x2143('0x34')]=_0x49635c[_0x2143('0x34')][_0x2143('0x35')]?_0x49635c[_0x2143('0x34')]:_0x11c395[_0x2143('0x30')];if(!_0x4dc3a4['query'][_0x2143('0x36')](_0x2143('0x37'))){_0x49635c['limit']=qs['limit'](_0x4dc3a4[_0x2143('0x31')][_0x2143('0x1f')]);_0x49635c[_0x2143('0x1e')]=qs['offset'](_0x4dc3a4[_0x2143('0x31')][_0x2143('0x1e')]);}_0x49635c[_0x2143('0x38')]=qs[_0x2143('0x39')](_0x4dc3a4['query'][_0x2143('0x39')]);_0x49635c[_0x2143('0x3a')]=qs[_0x2143('0x32')](_['pick'](_0x4dc3a4['query'],_0x11c395[_0x2143('0x32')]),_0x3cd23e);if(_0x4dc3a4['query'][_0x2143('0x3b')]){_0x49635c[_0x2143('0x3a')]=_[_0x2143('0x3c')](_0x49635c[_0x2143('0x3a')],{'$or':_['map'](_0x3cd23e,function(_0x135bdf){if(_0x135bdf[_0x2143('0x2e')]!==_0x2143('0x3d')){var _0x3ca2dc={};_0x3ca2dc[_0x135bdf[_0x2143('0x29')]]={'$like':'%'+_0x4dc3a4['query']['filter']+'%'};return _0x3ca2dc;}})});}_0x49635c=_[_0x2143('0x3c')]({},_0x49635c,_0x4dc3a4[_0x2143('0x3e')]);var _0x155902={'where':_0x49635c['where']};return db['SalesforceAccount'][_0x2143('0x3f')](_0x155902)[_0x2143('0x25')](function(_0x12d5f6){_0x384416[_0x2143('0x3f')]=_0x12d5f6;if(_0x4dc3a4[_0x2143('0x31')][_0x2143('0x40')]){_0x49635c['include']=[{'all':!![]}];}return db['SalesforceAccount'][_0x2143('0x41')](_0x49635c);})[_0x2143('0x25')](function(_0x331a5c){_0x384416[_0x2143('0x42')]=_0x331a5c;return _0x384416;})[_0x2143('0x25')](respondWithFilteredResult(_0x4a1585,_0x49635c))[_0x2143('0x43')](handleError(_0x4a1585,null));};exports[_0x2143('0x44')]=function(_0x25ea39,_0x20fffd){var _0x1c3839={'raw':![],'where':{'id':_0x25ea39[_0x2143('0x45')]['id']}},_0x375576={};_0x375576[_0x2143('0x30')]=_['keys'](db[_0x2143('0x2c')][_0x2143('0x2d')]);_0x375576['query']=_[_0x2143('0x46')](_0x25ea39['query']);_0x375576['filters']=_[_0x2143('0x47')](_0x375576[_0x2143('0x30')],_0x375576[_0x2143('0x31')]);_0x1c3839[_0x2143('0x34')]=_[_0x2143('0x47')](_0x375576[_0x2143('0x30')],qs['fields'](_0x25ea39[_0x2143('0x31')]['fields']));_0x1c3839['attributes']=_0x1c3839['attributes'][_0x2143('0x35')]?_0x1c3839[_0x2143('0x34')]:_0x375576[_0x2143('0x30')];if(_0x25ea39[_0x2143('0x31')][_0x2143('0x40')]){_0x1c3839[_0x2143('0x48')]=[{'all':!![]}];}_0x1c3839=_[_0x2143('0x3c')]({},_0x1c3839,_0x25ea39[_0x2143('0x3e')]);return db[_0x2143('0x2c')][_0x2143('0x49')](_0x1c3839)[_0x2143('0x25')](handleEntityNotFound(_0x20fffd,null))['then'](respondWithResult(_0x20fffd,null))[_0x2143('0x43')](handleError(_0x20fffd,null));};exports['create']=function(_0x1b9c7c,_0x1c08a7){return db[_0x2143('0x2c')][_0x2143('0x4a')](_0x1b9c7c[_0x2143('0x4b')],{})[_0x2143('0x25')](respondWithResult(_0x1c08a7,0xc9))[_0x2143('0x43')](handleError(_0x1c08a7,null));};exports[_0x2143('0x24')]=function(_0x1ad65e,_0x5e7c95){if(_0x1ad65e[_0x2143('0x4b')]['id']){delete _0x1ad65e[_0x2143('0x4b')]['id'];}return db[_0x2143('0x2c')][_0x2143('0x49')]({'where':{'id':_0x1ad65e['params']['id']}})[_0x2143('0x25')](handleEntityNotFound(_0x5e7c95,null))[_0x2143('0x25')](saveUpdates(_0x1ad65e[_0x2143('0x4b')],null))[_0x2143('0x25')](respondWithResult(_0x5e7c95,null))[_0x2143('0x43')](handleError(_0x5e7c95,null));};exports['destroy']=function(_0x466fc7,_0x422e68){return db[_0x2143('0x2c')][_0x2143('0x49')]({'where':{'id':_0x466fc7['params']['id']}})[_0x2143('0x25')](handleEntityNotFound(_0x422e68,null))[_0x2143('0x25')](removeEntity(_0x422e68,null))[_0x2143('0x43')](handleError(_0x422e68,null));};exports[_0x2143('0x4c')]=function(_0x28ffd7,_0x436974,_0x11d5d1){var _0xdb8c46={};var _0x309571={};var _0xf8dfd4;var _0x4e8f75;return db[_0x2143('0x2c')][_0x2143('0x4d')]({'where':{'id':_0x28ffd7[_0x2143('0x45')]['id']}})[_0x2143('0x25')](handleEntityNotFound(_0x436974,null))[_0x2143('0x25')](function(_0x2a8a03){if(_0x2a8a03){_0xf8dfd4=_0x2a8a03;_0x309571[_0x2143('0x30')]=_['keys'](db[_0x2143('0x4e')]['rawAttributes']);_0x309571['query']=_[_0x2143('0x46')](_0x28ffd7['query']);_0x309571['filters']=_[_0x2143('0x47')](_0x309571[_0x2143('0x30')],_0x309571['query']);_0xdb8c46[_0x2143('0x34')]=_[_0x2143('0x47')](_0x309571[_0x2143('0x30')],qs['fields'](_0x28ffd7[_0x2143('0x31')][_0x2143('0x33')]));_0xdb8c46[_0x2143('0x34')]=_0xdb8c46[_0x2143('0x34')][_0x2143('0x35')]?_0xdb8c46['attributes']:_0x309571[_0x2143('0x30')];_0xdb8c46[_0x2143('0x38')]=qs[_0x2143('0x39')](_0x28ffd7[_0x2143('0x31')]['sort']);_0xdb8c46[_0x2143('0x3a')]=qs[_0x2143('0x32')](_['pick'](_0x28ffd7[_0x2143('0x31')],_0x309571[_0x2143('0x32')]));if(_0x28ffd7['query']['filter']){_0xdb8c46['where']=_['merge'](_0xdb8c46[_0x2143('0x3a')],{'$or':_[_0x2143('0x2b')](_0xdb8c46['attributes'],function(_0x36a4b8){var _0x5c5dd2={};_0x5c5dd2[_0x36a4b8]={'$like':'%'+_0x28ffd7['query']['filter']+'%'};return _0x5c5dd2;})});}_0xdb8c46=_[_0x2143('0x3c')]({},_0xdb8c46,_0x28ffd7[_0x2143('0x3e')]);return _0xf8dfd4['getConfigurations'](_0xdb8c46);}})[_0x2143('0x25')](function(_0x3f355e){if(_0x3f355e){_0x4e8f75=_0x3f355e[_0x2143('0x35')];if(!_0x28ffd7['query'][_0x2143('0x36')](_0x2143('0x37'))){_0xdb8c46['limit']=qs[_0x2143('0x1f')](_0x28ffd7[_0x2143('0x31')]['limit']);_0xdb8c46[_0x2143('0x1e')]=qs[_0x2143('0x1e')](_0x28ffd7[_0x2143('0x31')][_0x2143('0x1e')]);}return _0xf8dfd4[_0x2143('0x4c')](_0xdb8c46);}})[_0x2143('0x25')](function(_0x37d23a){if(_0x37d23a){return _0x37d23a?{'count':_0x4e8f75,'rows':_0x37d23a}:null;}})['then'](respondWithResult(_0x436974,null))['catch'](handleError(_0x436974,null));};exports[_0x2143('0x4f')]=function(_0x285c40,_0x2349a1,_0x60127e){if(_0x285c40['body']['id']){delete _0x285c40[_0x2143('0x4b')]['id'];}return db['SalesforceAccount'][_0x2143('0x4d')]({'where':{'id':_0x285c40['params']['id']}})[_0x2143('0x25')](handleEntityNotFound(_0x2349a1,null))['then'](function(_0x22027f){if(_0x22027f){_0x285c40[_0x2143('0x4b')][_0x2143('0x50')]=_0x22027f['id'];_0x285c40[_0x2143('0x4b')]['Subjects']=integrations['getSubjects'](_0x285c40[_0x2143('0x4b')]['channel'],_0x285c40[_0x2143('0x4b')]['type']);_0x285c40[_0x2143('0x4b')][_0x2143('0x51')]=integrations[_0x2143('0x52')](_0x285c40['body'][_0x2143('0x53')],_0x285c40['body'][_0x2143('0x2e')]);return db[_0x2143('0x4e')]['create'](_0x285c40['body'],{'include':[{'model':db['SalesforceField'],'as':_0x2143('0x54')},{'model':db['SalesforceField'],'as':_0x2143('0x51')}]});}return null;})['then'](respondWithResult(_0x2349a1,null))[_0x2143('0x43')](handleError(_0x2349a1,null));};exports[_0x2143('0x55')]=function(_0x594c04,_0x3e2f4c,_0x28b023){var _0x1a01b4;var _0x4b8c91='';var _0x36ebb9=_0x2143('0x56');return db[_0x2143('0x2c')][_0x2143('0x4d')]({'where':{'id':_0x594c04[_0x2143('0x45')]['id']},'attributes':['id',_0x2143('0x57'),_0x2143('0x58'),_0x2143('0x59'),_0x2143('0x5a'),_0x2143('0x5b'),_0x2143('0x5c')]})[_0x2143('0x25')](handleEntityNotFound(_0x3e2f4c,null))[_0x2143('0x25')](function(_0x421351){if(_0x421351){_0x4b8c91=_0x421351[_0x2143('0x57')];var _0x749bea=_0x4b8c91['slice'](-0x1);if(_0x749bea==='/'){_0x4b8c91=_0x4b8c91['substring'](0x0,_0x4b8c91[_0x2143('0x5d')](_0x749bea));}_0x1a01b4=new jsforce[(_0x2143('0x5e'))]({'oauth2':{'loginUrl':_0x4b8c91,'clientId':_0x421351[_0x2143('0x58')],'clientSecret':_0x421351[_0x2143('0x59')]}});return _0x1a01b4['login'](_0x421351[_0x2143('0x5a')],_0x421351[_0x2143('0x5b')][_0x2143('0x5f')](_0x421351[_0x2143('0x5c')]));}})[_0x2143('0x25')](function(_0x205fbf){if(_0x205fbf){if(!_[_0x2143('0x60')](_0x594c04['query']['ticketType'])){_0x36ebb9=_0x594c04[_0x2143('0x31')]['ticketType'];}return _0x1a01b4[_0x2143('0x61')](_0x36ebb9)[_0x2143('0x62')]();}})[_0x2143('0x25')](function(_0x14422d){var _0x101065=[_0x2143('0x63'),_0x2143('0x64'),_0x2143('0x65'),_0x2143('0x66'),_0x2143('0x67'),_0x2143('0x68')];var _0x4e8705=['string',_0x2143('0x69'),_0x2143('0x6a'),_0x2143('0x6b'),_0x2143('0x6c'),_0x2143('0x6d'),'phone'];if(_0x14422d){_['remove'](_0x14422d[_0x2143('0x33')],function(_0xafa0a5){return _0x101065[_0x2143('0x6e')](_0xafa0a5[_0x2143('0x29')])||!_0x4e8705['includes'](_0xafa0a5[_0x2143('0x2e')]);});return{'count':_0x14422d[_0x2143('0x33')][_0x2143('0x35')],'rows':_['map'](_0x14422d[_0x2143('0x33')],function(_0x195b92){return{'id':_0x195b92[_0x2143('0x29')],'name':_0x195b92[_0x2143('0x6f')],'custom':_0x195b92[_0x2143('0x70')],'options':_0x195b92[_0x2143('0x71')][_0x2143('0x35')]>0x0?_[_0x2143('0x2b')](_0x195b92[_0x2143('0x71')],function(_0x3d5462){return{'name':_0x3d5462[_0x2143('0x6f')],'value':_0x3d5462[_0x2143('0x72')]};}):_0x195b92[_0x2143('0x2e')]==_0x2143('0x6b')?[{'name':_0x2143('0x73'),'value':_0x2143('0x74')},{'name':_0x2143('0x75'),'value':'false'}]:[]};})};}})[_0x2143('0x25')](respondWithResult(_0x3e2f4c,null))[_0x2143('0x43')](function(_0x26d376){var _0x2cad73=_0x594c04['query']['test']?0x1f4:_0x26d376[_0x2143('0x76')]||0x1f4;logger[_0x2143('0x27')]('getFields,\x20%s,\x20%s,\x20%s',_0x2143('0x55'),_0x2cad73,JSON[_0x2143('0x77')](_0x26d376));delete _0x26d376['name'];if(_0x2cad73===0x191){_0x2cad73=0x190;}_0x3e2f4c[_0x2143('0x1c')](_0x2cad73)[_0x2143('0x2a')](_0x594c04[_0x2143('0x31')]['test']?{'message':_0x2143('0x78'),'statusCode':_0x26d376[_0x2143('0x76')]}:_0x26d376);});};
\ No newline at end of file
+var _0x94f9=['update','then','end','error','name','send','index','map','rawAttributes','fieldName','type','key','model','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','VIRTUAL','SalesforceAccount','includeAll','include','findAll','rows','catch','show','params','options','find','create','body','getConfigurations','SalesforceConfiguration','pick','getSubjects','channel','Descriptions','getDescriptions','SalesforceField','getFields','Task','findOne','remoteUri','clientId','clientSecret','username','password','securityToken','slice','substring','Connection','login','concat','sobject','describe','OwnerId','ActivityDate','IsReminderSet','IsRecurrence','Subject','Description','string','int','boolean','email','textarea','phone','includes','custom','picklistValues','label','value','True','true','False','test','getFields,\x20%s,\x20%s,\x20%s','stringify','Wrong\x20credentials','statusCode','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','sox','ejs','fs-extra','squel','crypto','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','undefined','limit','count','offset','set','Content-Range','apply','save'];(function(_0x438415,_0x5ee367){var _0x5d254c=function(_0x29040c){while(--_0x29040c){_0x438415['push'](_0x438415['shift']());}};_0x5d254c(++_0x5ee367);}(_0x94f9,0x151));var _0x994f=function(_0x2e4e3e,_0x75ae94){_0x2e4e3e=_0x2e4e3e-0x0;var _0x51476b=_0x94f9[_0x2e4e3e];return _0x51476b;};'use strict';var emlformat=require(_0x994f('0x0'));var rimraf=require(_0x994f('0x1'));var zipdir=require(_0x994f('0x2'));var jsonpatch=require(_0x994f('0x3'));var rp=require('request-promise');var moment=require(_0x994f('0x4'));var BPromise=require(_0x994f('0x5'));var Mustache=require(_0x994f('0x6'));var util=require(_0x994f('0x7'));var path=require('path');var sox=require(_0x994f('0x8'));var csv=require('to-csv');var ejs=require(_0x994f('0x9'));var fs=require('fs');var fs_extra=require(_0x994f('0xa'));var _=require('lodash');var squel=require(_0x994f('0xb'));var crypto=require(_0x994f('0xc'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x994f('0xd'));var Papa=require(_0x994f('0xe'));var Redis=require(_0x994f('0xf'));var authService=require(_0x994f('0x10'));var qs=require(_0x994f('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x994f('0x12'));var logger=require(_0x994f('0x13'))(_0x994f('0x14'));var utils=require(_0x994f('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0x994f('0x16'));var db=require(_0x994f('0x17'))['db'];var integrations=require(_0x994f('0x18'));function respondWithStatusCode(_0x2b4d21,_0x1e39d4){_0x1e39d4=_0x1e39d4||0xcc;return function(_0x5e3d66){if(_0x5e3d66){return _0x2b4d21[_0x994f('0x19')](_0x1e39d4);}return _0x2b4d21[_0x994f('0x1a')](_0x1e39d4)['end']();};}function respondWithResult(_0x4249f7,_0x1bd43a){_0x1bd43a=_0x1bd43a||0xc8;return function(_0x21fc15){if(_0x21fc15){return _0x4249f7[_0x994f('0x1a')](_0x1bd43a)['json'](_0x21fc15);}};}function respondWithFilteredResult(_0x55cf62,_0x13f87e){return function(_0x385494){if(_0x385494){var _0x11b077=typeof _0x13f87e['offset']===_0x994f('0x1b')&&typeof _0x13f87e[_0x994f('0x1c')]===_0x994f('0x1b');var _0x1badec=_0x385494[_0x994f('0x1d')];var _0x19437b=_0x11b077?0x0:_0x13f87e[_0x994f('0x1e')];var _0xa87ae9=_0x11b077?_0x385494[_0x994f('0x1d')]:_0x13f87e[_0x994f('0x1e')]+_0x13f87e['limit'];var _0x1a6b2c;if(_0xa87ae9>=_0x1badec){_0xa87ae9=_0x1badec;_0x1a6b2c=0xc8;}else{_0x1a6b2c=0xce;}_0x55cf62[_0x994f('0x1a')](_0x1a6b2c);return _0x55cf62[_0x994f('0x1f')](_0x994f('0x20'),_0x19437b+'-'+_0xa87ae9+'/'+_0x1badec)['json'](_0x385494);}return null;};}function patchUpdates(_0x782030){return function(_0x79eb6){try{jsonpatch[_0x994f('0x21')](_0x79eb6,_0x782030,!![]);}catch(_0x4040ab){return BPromise['reject'](_0x4040ab);}return _0x79eb6[_0x994f('0x22')]();};}function saveUpdates(_0x5ef217,_0x10e3d8){return function(_0x24d22f){if(_0x24d22f){return _0x24d22f[_0x994f('0x23')](_0x5ef217)['then'](function(_0x151d0d){return _0x151d0d;});}return null;};}function removeEntity(_0xebf754,_0x35f645){return function(_0x4886ba){if(_0x4886ba){return _0x4886ba['destroy']()[_0x994f('0x24')](function(){_0xebf754[_0x994f('0x1a')](0xcc)[_0x994f('0x25')]();});}};}function handleEntityNotFound(_0x5e2344,_0x47b974){return function(_0x4a3110){if(!_0x4a3110){_0x5e2344[_0x994f('0x19')](0x194);}return _0x4a3110;};}function handleError(_0x2d6c38,_0x4c9a15){_0x4c9a15=_0x4c9a15||0x1f4;return function(_0x1932ec){logger[_0x994f('0x26')](_0x1932ec['stack']);if(_0x1932ec['name']){delete _0x1932ec[_0x994f('0x27')];}_0x2d6c38[_0x994f('0x1a')](_0x4c9a15)[_0x994f('0x28')](_0x1932ec);};}exports[_0x994f('0x29')]=function(_0x25c520,_0x31fcde){var _0x1c66b5={},_0x17a9ac={},_0x485062={'count':0x0,'rows':[]};var _0x60d16b=_[_0x994f('0x2a')](db['SalesforceAccount'][_0x994f('0x2b')],function(_0x23e16b){return{'name':_0x23e16b[_0x994f('0x2c')],'type':_0x23e16b[_0x994f('0x2d')][_0x994f('0x2e')]};});_0x17a9ac[_0x994f('0x2f')]=_[_0x994f('0x2a')](_0x60d16b,_0x994f('0x27'));_0x17a9ac[_0x994f('0x30')]=_[_0x994f('0x31')](_0x25c520[_0x994f('0x30')]);_0x17a9ac[_0x994f('0x32')]=_['intersection'](_0x17a9ac['model'],_0x17a9ac['query']);_0x1c66b5[_0x994f('0x33')]=_[_0x994f('0x34')](_0x17a9ac[_0x994f('0x2f')],qs[_0x994f('0x35')](_0x25c520[_0x994f('0x30')][_0x994f('0x35')]));_0x1c66b5[_0x994f('0x33')]=_0x1c66b5[_0x994f('0x33')][_0x994f('0x36')]?_0x1c66b5['attributes']:_0x17a9ac[_0x994f('0x2f')];if(!_0x25c520[_0x994f('0x30')][_0x994f('0x37')](_0x994f('0x38'))){_0x1c66b5[_0x994f('0x1c')]=qs[_0x994f('0x1c')](_0x25c520[_0x994f('0x30')]['limit']);_0x1c66b5[_0x994f('0x1e')]=qs[_0x994f('0x1e')](_0x25c520['query']['offset']);}_0x1c66b5[_0x994f('0x39')]=qs[_0x994f('0x3a')](_0x25c520[_0x994f('0x30')][_0x994f('0x3a')]);_0x1c66b5[_0x994f('0x3b')]=qs[_0x994f('0x32')](_['pick'](_0x25c520[_0x994f('0x30')],_0x17a9ac[_0x994f('0x32')]),_0x60d16b);if(_0x25c520['query'][_0x994f('0x3c')]){_0x1c66b5['where']=_[_0x994f('0x3d')](_0x1c66b5[_0x994f('0x3b')],{'$or':_[_0x994f('0x2a')](_0x60d16b,function(_0x3f9fe2){if(_0x3f9fe2[_0x994f('0x2d')]!==_0x994f('0x3e')){var _0x24c378={};_0x24c378[_0x3f9fe2[_0x994f('0x27')]]={'$like':'%'+_0x25c520[_0x994f('0x30')][_0x994f('0x3c')]+'%'};return _0x24c378;}})});}_0x1c66b5=_['merge']({},_0x1c66b5,_0x25c520['options']);var _0x1932ad={'where':_0x1c66b5[_0x994f('0x3b')]};return db[_0x994f('0x3f')][_0x994f('0x1d')](_0x1932ad)[_0x994f('0x24')](function(_0x33b381){_0x485062[_0x994f('0x1d')]=_0x33b381;if(_0x25c520[_0x994f('0x30')][_0x994f('0x40')]){_0x1c66b5[_0x994f('0x41')]=[{'all':!![]}];}return db[_0x994f('0x3f')][_0x994f('0x42')](_0x1c66b5);})[_0x994f('0x24')](function(_0x30f898){_0x485062[_0x994f('0x43')]=_0x30f898;return _0x485062;})[_0x994f('0x24')](respondWithFilteredResult(_0x31fcde,_0x1c66b5))[_0x994f('0x44')](handleError(_0x31fcde,null));};exports[_0x994f('0x45')]=function(_0x5c7daf,_0xac0a3d){var _0x3691b2={'raw':![],'where':{'id':_0x5c7daf[_0x994f('0x46')]['id']}},_0x38b854={};_0x38b854['model']=_[_0x994f('0x31')](db[_0x994f('0x3f')][_0x994f('0x2b')]);_0x38b854[_0x994f('0x30')]=_[_0x994f('0x31')](_0x5c7daf[_0x994f('0x30')]);_0x38b854[_0x994f('0x32')]=_[_0x994f('0x34')](_0x38b854[_0x994f('0x2f')],_0x38b854['query']);_0x3691b2[_0x994f('0x33')]=_[_0x994f('0x34')](_0x38b854[_0x994f('0x2f')],qs[_0x994f('0x35')](_0x5c7daf[_0x994f('0x30')][_0x994f('0x35')]));_0x3691b2[_0x994f('0x33')]=_0x3691b2['attributes']['length']?_0x3691b2['attributes']:_0x38b854[_0x994f('0x2f')];if(_0x5c7daf['query'][_0x994f('0x40')]){_0x3691b2[_0x994f('0x41')]=[{'all':!![]}];}_0x3691b2=_[_0x994f('0x3d')]({},_0x3691b2,_0x5c7daf[_0x994f('0x47')]);return db[_0x994f('0x3f')][_0x994f('0x48')](_0x3691b2)['then'](handleEntityNotFound(_0xac0a3d,null))[_0x994f('0x24')](respondWithResult(_0xac0a3d,null))['catch'](handleError(_0xac0a3d,null));};exports[_0x994f('0x49')]=function(_0x2680c3,_0x448f21){return db[_0x994f('0x3f')][_0x994f('0x49')](_0x2680c3[_0x994f('0x4a')],{})[_0x994f('0x24')](respondWithResult(_0x448f21,0xc9))[_0x994f('0x44')](handleError(_0x448f21,null));};exports[_0x994f('0x23')]=function(_0x304aef,_0x4c155b){if(_0x304aef[_0x994f('0x4a')]['id']){delete _0x304aef[_0x994f('0x4a')]['id'];}return db[_0x994f('0x3f')]['find']({'where':{'id':_0x304aef[_0x994f('0x46')]['id']}})['then'](handleEntityNotFound(_0x4c155b,null))[_0x994f('0x24')](saveUpdates(_0x304aef['body'],null))['then'](respondWithResult(_0x4c155b,null))[_0x994f('0x44')](handleError(_0x4c155b,null));};exports['destroy']=function(_0x364a7f,_0x5dca53){return db['SalesforceAccount'][_0x994f('0x48')]({'where':{'id':_0x364a7f[_0x994f('0x46')]['id']}})[_0x994f('0x24')](handleEntityNotFound(_0x5dca53,null))['then'](removeEntity(_0x5dca53,null))[_0x994f('0x44')](handleError(_0x5dca53,null));};exports[_0x994f('0x4b')]=function(_0x4d2305,_0x283b6c,_0x53fd21){var _0x2c024e={};var _0x11d123={};var _0x5abb0e;var _0x2194ee;return db['SalesforceAccount']['findOne']({'where':{'id':_0x4d2305[_0x994f('0x46')]['id']}})[_0x994f('0x24')](handleEntityNotFound(_0x283b6c,null))[_0x994f('0x24')](function(_0x570a09){if(_0x570a09){_0x5abb0e=_0x570a09;_0x11d123['model']=_[_0x994f('0x31')](db[_0x994f('0x4c')][_0x994f('0x2b')]);_0x11d123['query']=_[_0x994f('0x31')](_0x4d2305[_0x994f('0x30')]);_0x11d123[_0x994f('0x32')]=_[_0x994f('0x34')](_0x11d123['model'],_0x11d123[_0x994f('0x30')]);_0x2c024e[_0x994f('0x33')]=_[_0x994f('0x34')](_0x11d123[_0x994f('0x2f')],qs[_0x994f('0x35')](_0x4d2305[_0x994f('0x30')]['fields']));_0x2c024e[_0x994f('0x33')]=_0x2c024e[_0x994f('0x33')][_0x994f('0x36')]?_0x2c024e[_0x994f('0x33')]:_0x11d123['model'];_0x2c024e[_0x994f('0x39')]=qs['sort'](_0x4d2305[_0x994f('0x30')][_0x994f('0x3a')]);_0x2c024e[_0x994f('0x3b')]=qs[_0x994f('0x32')](_[_0x994f('0x4d')](_0x4d2305['query'],_0x11d123[_0x994f('0x32')]));if(_0x4d2305[_0x994f('0x30')][_0x994f('0x3c')]){_0x2c024e[_0x994f('0x3b')]=_['merge'](_0x2c024e['where'],{'$or':_['map'](_0x2c024e[_0x994f('0x33')],function(_0xb1383a){var _0x3bf09f={};_0x3bf09f[_0xb1383a]={'$like':'%'+_0x4d2305[_0x994f('0x30')][_0x994f('0x3c')]+'%'};return _0x3bf09f;})});}_0x2c024e=_[_0x994f('0x3d')]({},_0x2c024e,_0x4d2305[_0x994f('0x47')]);return _0x5abb0e[_0x994f('0x4b')](_0x2c024e);}})[_0x994f('0x24')](function(_0x26e2d9){if(_0x26e2d9){_0x2194ee=_0x26e2d9[_0x994f('0x36')];if(!_0x4d2305[_0x994f('0x30')][_0x994f('0x37')](_0x994f('0x38'))){_0x2c024e[_0x994f('0x1c')]=qs[_0x994f('0x1c')](_0x4d2305[_0x994f('0x30')][_0x994f('0x1c')]);_0x2c024e['offset']=qs[_0x994f('0x1e')](_0x4d2305[_0x994f('0x30')][_0x994f('0x1e')]);}return _0x5abb0e[_0x994f('0x4b')](_0x2c024e);}})[_0x994f('0x24')](function(_0x38aa1d){if(_0x38aa1d){return _0x38aa1d?{'count':_0x2194ee,'rows':_0x38aa1d}:null;}})['then'](respondWithResult(_0x283b6c,null))[_0x994f('0x44')](handleError(_0x283b6c,null));};exports['addConfiguration']=function(_0x5f5c1b,_0xd2790d,_0x20930d){if(_0x5f5c1b[_0x994f('0x4a')]['id']){delete _0x5f5c1b[_0x994f('0x4a')]['id'];}return db['SalesforceAccount']['findOne']({'where':{'id':_0x5f5c1b[_0x994f('0x46')]['id']}})[_0x994f('0x24')](handleEntityNotFound(_0xd2790d,null))[_0x994f('0x24')](function(_0x2445d6){if(_0x2445d6){_0x5f5c1b['body']['AccountId']=_0x2445d6['id'];_0x5f5c1b[_0x994f('0x4a')]['Subjects']=integrations[_0x994f('0x4e')](_0x5f5c1b['body'][_0x994f('0x4f')],_0x5f5c1b[_0x994f('0x4a')][_0x994f('0x2d')]);_0x5f5c1b[_0x994f('0x4a')][_0x994f('0x50')]=integrations[_0x994f('0x51')](_0x5f5c1b[_0x994f('0x4a')][_0x994f('0x4f')],_0x5f5c1b[_0x994f('0x4a')][_0x994f('0x2d')]);return db[_0x994f('0x4c')][_0x994f('0x49')](_0x5f5c1b[_0x994f('0x4a')],{'include':[{'model':db[_0x994f('0x52')],'as':'Subjects'},{'model':db[_0x994f('0x52')],'as':_0x994f('0x50')}]});}return null;})['then'](respondWithResult(_0xd2790d,null))['catch'](handleError(_0xd2790d,null));};exports[_0x994f('0x53')]=function(_0x1b3985,_0x2702cb,_0x23b76b){var _0x14089;var _0x2043a7='';var _0x4ed724=_0x994f('0x54');return db['SalesforceAccount'][_0x994f('0x55')]({'where':{'id':_0x1b3985[_0x994f('0x46')]['id']},'attributes':['id',_0x994f('0x56'),_0x994f('0x57'),_0x994f('0x58'),_0x994f('0x59'),_0x994f('0x5a'),_0x994f('0x5b')]})['then'](handleEntityNotFound(_0x2702cb,null))[_0x994f('0x24')](function(_0x2318fc){if(_0x2318fc){_0x2043a7=_0x2318fc[_0x994f('0x56')];var _0x244359=_0x2043a7[_0x994f('0x5c')](-0x1);if(_0x244359==='/'){_0x2043a7=_0x2043a7[_0x994f('0x5d')](0x0,_0x2043a7['lastIndexOf'](_0x244359));}_0x14089=new jsforce[(_0x994f('0x5e'))]({'oauth2':{'loginUrl':_0x2043a7,'clientId':_0x2318fc[_0x994f('0x57')],'clientSecret':_0x2318fc[_0x994f('0x58')]}});return _0x14089[_0x994f('0x5f')](_0x2318fc[_0x994f('0x59')],_0x2318fc[_0x994f('0x5a')][_0x994f('0x60')](_0x2318fc[_0x994f('0x5b')]));}})[_0x994f('0x24')](function(_0x49673d){if(_0x49673d){if(!_['isNil'](_0x1b3985[_0x994f('0x30')]['ticketType'])){_0x4ed724=_0x1b3985[_0x994f('0x30')]['ticketType'];}return _0x14089[_0x994f('0x61')](_0x4ed724)[_0x994f('0x62')]();}})['then'](function(_0x155ab2){var _0x62c2f7=[_0x994f('0x63'),_0x994f('0x64'),_0x994f('0x65'),_0x994f('0x66'),_0x994f('0x67'),_0x994f('0x68')];var _0x32e856=[_0x994f('0x69'),_0x994f('0x6a'),'picklist',_0x994f('0x6b'),_0x994f('0x6c'),_0x994f('0x6d'),_0x994f('0x6e')];if(_0x155ab2){_['remove'](_0x155ab2[_0x994f('0x35')],function(_0x4a1147){return _0x62c2f7[_0x994f('0x6f')](_0x4a1147[_0x994f('0x27')])||!_0x32e856[_0x994f('0x6f')](_0x4a1147[_0x994f('0x2d')]);});return{'count':_0x155ab2[_0x994f('0x35')]['length'],'rows':_[_0x994f('0x2a')](_0x155ab2[_0x994f('0x35')],function(_0x24e0dc){return{'id':_0x24e0dc[_0x994f('0x27')],'name':_0x24e0dc['label'],'custom':_0x24e0dc[_0x994f('0x70')],'options':_0x24e0dc[_0x994f('0x71')][_0x994f('0x36')]>0x0?_[_0x994f('0x2a')](_0x24e0dc[_0x994f('0x71')],function(_0x35855a){return{'name':_0x35855a[_0x994f('0x72')],'value':_0x35855a[_0x994f('0x73')]};}):_0x24e0dc[_0x994f('0x2d')]==_0x994f('0x6b')?[{'name':_0x994f('0x74'),'value':_0x994f('0x75')},{'name':_0x994f('0x76'),'value':'false'}]:[]};})};}})[_0x994f('0x24')](respondWithResult(_0x2702cb,null))['catch'](function(_0x5cd545){var _0x40f8d8=_0x1b3985[_0x994f('0x30')][_0x994f('0x77')]?0x1f4:_0x5cd545['statusCode']||0x1f4;logger[_0x994f('0x26')](_0x994f('0x78'),_0x994f('0x53'),_0x40f8d8,JSON[_0x994f('0x79')](_0x5cd545));delete _0x5cd545[_0x994f('0x27')];if(_0x40f8d8===0x191){_0x40f8d8=0x190;}_0x2702cb['status'](_0x40f8d8)['send'](_0x1b3985[_0x994f('0x30')][_0x994f('0x77')]?{'message':_0x994f('0x7a'),'statusCode':_0x5cd545[_0x994f('0x7b')]}:_0x5cd545);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8dd9=['./intSalesforceAccount.attributes','exports','SalesforceAccount','lodash','util','../../config/logger','moment','bluebird','rimraf','../../config/environment'];(function(_0x124a1f,_0x49bafc){var _0x7eb90=function(_0x5d345a){while(--_0x5d345a){_0x124a1f['push'](_0x124a1f['shift']());}};_0x7eb90(++_0x49bafc);}(_0x8dd9,0x16b));var _0x98dd=function(_0xf231d0,_0x13c159){_0xf231d0=_0xf231d0-0x0;var _0x472a9d=_0x8dd9[_0xf231d0];return _0x472a9d;};'use strict';var _=require(_0x98dd('0x0'));var util=require(_0x98dd('0x1'));var logger=require(_0x98dd('0x2'))('api');var moment=require(_0x98dd('0x3'));var BPromise=require(_0x98dd('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0x98dd('0x5'));var config=require(_0x98dd('0x6'));var attributes=require(_0x98dd('0x7'));var integrations=require('../../components/integrations/configuration');module[_0x98dd('0x8')]=function(_0x15494a,_0x457476){return _0x15494a['define'](_0x98dd('0x9'),attributes,{'tableName':'int_salesforce_accounts','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x5a0a=['./intSalesforceAccount.attributes','exports','define','SalesforceAccount','int_salesforce_accounts','lodash','../../config/logger','moment','bluebird','request-promise','path','rimraf'];(function(_0x22912d,_0x5e988c){var _0x38d985=function(_0x2901a8){while(--_0x2901a8){_0x22912d['push'](_0x22912d['shift']());}};_0x38d985(++_0x5e988c);}(_0x5a0a,0x1a9));var _0xa5a0=function(_0x2d5645,_0x25b9b2){_0x2d5645=_0x2d5645-0x0;var _0x5d95d1=_0x5a0a[_0x2d5645];return _0x5d95d1;};'use strict';var _=require(_0xa5a0('0x0'));var util=require('util');var logger=require(_0xa5a0('0x1'))('api');var moment=require(_0xa5a0('0x2'));var BPromise=require(_0xa5a0('0x3'));var rp=require(_0xa5a0('0x4'));var fs=require('fs');var path=require(_0xa5a0('0x5'));var rimraf=require(_0xa5a0('0x6'));var config=require('../../config/environment');var attributes=require(_0xa5a0('0x7'));var integrations=require('../../components/integrations/configuration');module[_0xa5a0('0x8')]=function(_0x3ded0f,_0x13a663){return _0x3ded0f[_0xa5a0('0x9')](_0xa5a0('0xa'),attributes,{'tableName':_0xa5a0('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2a8b=['stringify','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','request','then','request\x20sent','SalesforceAccount,\x20%s,\x20%s,\x20%s','error','SalesforceAccount,\x20%s,\x20%s','message','catch','findAll','options','raw','where','attributes','limit','include','map','model','info','debug','GetSalesforceAccount','ShowSalesforceAccount','SalesforceAccount'];(function(_0x718db1,_0x8f545e){var _0x5e8b0e=function(_0x233a49){while(--_0x233a49){_0x718db1['push'](_0x718db1['shift']());}};_0x5e8b0e(++_0x8f545e);}(_0x2a8b,0xab));var _0xb2a8=function(_0x6c993a,_0x5ea3ab){_0x6c993a=_0x6c993a-0x0;var _0x27f547=_0x2a8b[_0x6c993a];return _0x27f547;};'use strict';var _=require('lodash');var util=require(_0xb2a8('0x0'));var moment=require('moment');var BPromise=require(_0xb2a8('0x1'));var rs=require(_0xb2a8('0x2'));var fs=require('fs');var Redis=require(_0xb2a8('0x3'));var db=require(_0xb2a8('0x4'))['db'];var utils=require(_0xb2a8('0x5'));var logger=require(_0xb2a8('0x6'))(_0xb2a8('0x7'));var config=require(_0xb2a8('0x8'));var jayson=require('jayson/promise');var client=jayson[_0xb2a8('0x9')][_0xb2a8('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x4d56ac,_0x4d2056,_0x1d8fab){return new BPromise(function(_0x50c581,_0x3bbf1b){return client[_0xb2a8('0xb')](_0x4d56ac,_0x1d8fab)[_0xb2a8('0xc')](function(_0x19fc74){logger['info']('SalesforceAccount,\x20%s,\x20%s',_0x4d2056,_0xb2a8('0xd'));logger['debug'](_0xb2a8('0xe'),_0x4d2056,_0xb2a8('0xd'),JSON['stringify'](_0x19fc74));if(_0x19fc74[_0xb2a8('0xf')]){if(_0x19fc74['error']['code']===0x1f4){logger['error'](_0xb2a8('0x10'),_0x4d2056,_0x19fc74[_0xb2a8('0xf')][_0xb2a8('0x11')]);return _0x3bbf1b(_0x19fc74[_0xb2a8('0xf')][_0xb2a8('0x11')]);}logger['error']('SalesforceAccount,\x20%s,\x20%s',_0x4d2056,_0x19fc74[_0xb2a8('0xf')][_0xb2a8('0x11')]);return _0x50c581(_0x19fc74[_0xb2a8('0xf')][_0xb2a8('0x11')]);}else{logger['info'](_0xb2a8('0x10'),_0x4d2056,_0xb2a8('0xd'));_0x50c581(_0x19fc74['result'][_0xb2a8('0x11')]);}})[_0xb2a8('0x12')](function(_0x1e8586){logger[_0xb2a8('0xf')]('SalesforceAccount,\x20%s,\x20%s',_0x4d2056,_0x1e8586);_0x3bbf1b(_0x1e8586);});});}exports['GetSalesforceAccount']=function(_0xe47154){var _0x587db9=this;return new Promise(function(_0x109e28,_0xfdcf8c){return db['SalesforceAccount'][_0xb2a8('0x13')]({'raw':_0xe47154[_0xb2a8('0x14')]?_0xe47154[_0xb2a8('0x14')][_0xb2a8('0x15')]===undefined?!![]:![]:!![],'where':_0xe47154['options']?_0xe47154[_0xb2a8('0x14')][_0xb2a8('0x16')]||null:null,'attributes':_0xe47154[_0xb2a8('0x14')]?_0xe47154[_0xb2a8('0x14')][_0xb2a8('0x17')]||null:null,'limit':_0xe47154[_0xb2a8('0x14')]?_0xe47154[_0xb2a8('0x14')][_0xb2a8('0x18')]||null:null,'include':_0xe47154[_0xb2a8('0x14')]?_0xe47154[_0xb2a8('0x14')][_0xb2a8('0x19')]?_[_0xb2a8('0x1a')](_0xe47154['options'][_0xb2a8('0x19')],function(_0x5f1903){return{'model':db[_0x5f1903[_0xb2a8('0x1b')]],'as':_0x5f1903['as'],'attributes':_0x5f1903[_0xb2a8('0x17')],'include':_0x5f1903[_0xb2a8('0x19')]?_[_0xb2a8('0x1a')](_0x5f1903[_0xb2a8('0x19')],function(_0x1ca291){return{'model':db[_0x1ca291[_0xb2a8('0x1b')]],'as':_0x1ca291['as'],'attributes':_0x1ca291[_0xb2a8('0x17')],'include':_0x1ca291[_0xb2a8('0x19')]?_[_0xb2a8('0x1a')](_0x1ca291[_0xb2a8('0x19')],function(_0xca760){return{'model':db[_0xca760['model']],'as':_0xca760['as'],'attributes':_0xca760[_0xb2a8('0x17')]};}):[]};}):[]};}):[]:[]})[_0xb2a8('0xc')](function(_0x75d7f3){logger[_0xb2a8('0x1c')]('GetSalesforceAccount',_0xe47154);logger[_0xb2a8('0x1d')](_0xb2a8('0x1e'),_0xe47154,JSON['stringify'](_0x75d7f3));_0x109e28(_0x75d7f3);})[_0xb2a8('0x12')](function(_0x1da3dd){logger['error'](_0xb2a8('0x1e'),_0x1da3dd[_0xb2a8('0x11')],_0xe47154);_0xfdcf8c(_0x587db9['error'](0x1f4,_0x1da3dd[_0xb2a8('0x11')]));});});};exports[_0xb2a8('0x1f')]=function(_0x5f0b05){var _0x5ad24a=this;return new Promise(function(_0x6df331,_0x2c0fdc){return db[_0xb2a8('0x20')]['find']({'raw':_0x5f0b05[_0xb2a8('0x14')]?_0x5f0b05[_0xb2a8('0x14')][_0xb2a8('0x15')]===undefined?!![]:![]:!![],'where':_0x5f0b05['options']?_0x5f0b05[_0xb2a8('0x14')][_0xb2a8('0x16')]||null:null,'attributes':_0x5f0b05[_0xb2a8('0x14')]?_0x5f0b05[_0xb2a8('0x14')][_0xb2a8('0x17')]||null:null,'include':_0x5f0b05[_0xb2a8('0x14')]?_0x5f0b05['options'][_0xb2a8('0x19')]?_[_0xb2a8('0x1a')](_0x5f0b05[_0xb2a8('0x14')][_0xb2a8('0x19')],function(_0x7da63){return{'model':db[_0x7da63[_0xb2a8('0x1b')]],'as':_0x7da63['as'],'attributes':_0x7da63[_0xb2a8('0x17')],'include':_0x7da63[_0xb2a8('0x19')]?_[_0xb2a8('0x1a')](_0x7da63[_0xb2a8('0x19')],function(_0x307874){return{'model':db[_0x307874[_0xb2a8('0x1b')]],'as':_0x307874['as'],'attributes':_0x307874[_0xb2a8('0x17')],'include':_0x307874['include']?_[_0xb2a8('0x1a')](_0x307874[_0xb2a8('0x19')],function(_0x1dcc0c){return{'model':db[_0x1dcc0c[_0xb2a8('0x1b')]],'as':_0x1dcc0c['as'],'attributes':_0x1dcc0c[_0xb2a8('0x17')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x175cc1){logger[_0xb2a8('0x1c')](_0xb2a8('0x1f'),_0x5f0b05);logger[_0xb2a8('0x1d')](_0xb2a8('0x1f'),_0x5f0b05,JSON[_0xb2a8('0x21')](_0x175cc1));_0x6df331(_0x175cc1);})[_0xb2a8('0x12')](function(_0x595087){logger['error'](_0xb2a8('0x1f'),_0x595087[_0xb2a8('0x11')],_0x5f0b05);_0x2c0fdc(_0x5ad24a[_0xb2a8('0xf')](0x1f4,_0x595087[_0xb2a8('0x11')]));});});};
\ No newline at end of file
+var _0xa5fe=['jayson/promise','client','info','SalesforceAccount,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','GetSalesforceAccount','SalesforceAccount','findAll','options','where','include','map','attributes','model','then','catch','find','raw','ShowSalesforceAccount','lodash','util','moment','bluebird','../../mysqldb','../../config/utils','rpc','../../config/environment'];(function(_0x26ed75,_0x5c7dde){var _0x11a738=function(_0x58f7e2){while(--_0x58f7e2){_0x26ed75['push'](_0x26ed75['shift']());}};_0x11a738(++_0x5c7dde);}(_0xa5fe,0x163));var _0xea5f=function(_0x1f0679,_0x53d43c){_0x1f0679=_0x1f0679-0x0;var _0x3dc3a4=_0xa5fe[_0x1f0679];return _0x3dc3a4;};'use strict';var _=require(_0xea5f('0x0'));var util=require(_0xea5f('0x1'));var moment=require(_0xea5f('0x2'));var BPromise=require(_0xea5f('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0xea5f('0x4'))['db'];var utils=require(_0xea5f('0x5'));var logger=require('../../config/logger')(_0xea5f('0x6'));var config=require(_0xea5f('0x7'));var jayson=require(_0xea5f('0x8'));var client=jayson[_0xea5f('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x1eff65,_0x5d2dbe,_0x5c9e3f){return new BPromise(function(_0x1d2e2d,_0x5ba43b){return client['request'](_0x1eff65,_0x5c9e3f)['then'](function(_0x27dd3d){logger[_0xea5f('0xa')](_0xea5f('0xb'),_0x5d2dbe,_0xea5f('0xc'));logger[_0xea5f('0xd')]('SalesforceAccount,\x20%s,\x20%s,\x20%s',_0x5d2dbe,_0xea5f('0xc'),JSON[_0xea5f('0xe')](_0x27dd3d));if(_0x27dd3d[_0xea5f('0xf')]){if(_0x27dd3d[_0xea5f('0xf')][_0xea5f('0x10')]===0x1f4){logger['error']('SalesforceAccount,\x20%s,\x20%s',_0x5d2dbe,_0x27dd3d[_0xea5f('0xf')][_0xea5f('0x11')]);return _0x5ba43b(_0x27dd3d[_0xea5f('0xf')][_0xea5f('0x11')]);}logger[_0xea5f('0xf')](_0xea5f('0xb'),_0x5d2dbe,_0x27dd3d[_0xea5f('0xf')][_0xea5f('0x11')]);return _0x1d2e2d(_0x27dd3d[_0xea5f('0xf')]['message']);}else{logger['info'](_0xea5f('0xb'),_0x5d2dbe,_0xea5f('0xc'));_0x1d2e2d(_0x27dd3d[_0xea5f('0x12')][_0xea5f('0x11')]);}})['catch'](function(_0x2efb8b){logger[_0xea5f('0xf')](_0xea5f('0xb'),_0x5d2dbe,_0x2efb8b);_0x5ba43b(_0x2efb8b);});});}exports[_0xea5f('0x13')]=function(_0x5614c0){var _0x54dcad=this;return new Promise(function(_0x39f805,_0x468656){return db[_0xea5f('0x14')][_0xea5f('0x15')]({'raw':_0x5614c0[_0xea5f('0x16')]?_0x5614c0[_0xea5f('0x16')]['raw']===undefined?!![]:![]:!![],'where':_0x5614c0[_0xea5f('0x16')]?_0x5614c0[_0xea5f('0x16')][_0xea5f('0x17')]||null:null,'attributes':_0x5614c0[_0xea5f('0x16')]?_0x5614c0[_0xea5f('0x16')]['attributes']||null:null,'limit':_0x5614c0[_0xea5f('0x16')]?_0x5614c0[_0xea5f('0x16')]['limit']||null:null,'include':_0x5614c0[_0xea5f('0x16')]?_0x5614c0[_0xea5f('0x16')][_0xea5f('0x18')]?_[_0xea5f('0x19')](_0x5614c0[_0xea5f('0x16')]['include'],function(_0x54b12b){return{'model':db[_0x54b12b['model']],'as':_0x54b12b['as'],'attributes':_0x54b12b[_0xea5f('0x1a')],'include':_0x54b12b[_0xea5f('0x18')]?_[_0xea5f('0x19')](_0x54b12b[_0xea5f('0x18')],function(_0x499927){return{'model':db[_0x499927[_0xea5f('0x1b')]],'as':_0x499927['as'],'attributes':_0x499927['attributes'],'include':_0x499927[_0xea5f('0x18')]?_['map'](_0x499927[_0xea5f('0x18')],function(_0x5eda75){return{'model':db[_0x5eda75[_0xea5f('0x1b')]],'as':_0x5eda75['as'],'attributes':_0x5eda75['attributes']};}):[]};}):[]};}):[]:[]})[_0xea5f('0x1c')](function(_0xbc23ec){logger[_0xea5f('0xa')](_0xea5f('0x13'),_0x5614c0);logger['debug'](_0xea5f('0x13'),_0x5614c0,JSON[_0xea5f('0xe')](_0xbc23ec));_0x39f805(_0xbc23ec);})[_0xea5f('0x1d')](function(_0xe37719){logger['error']('GetSalesforceAccount',_0xe37719[_0xea5f('0x11')],_0x5614c0);_0x468656(_0x54dcad[_0xea5f('0xf')](0x1f4,_0xe37719['message']));});});};exports['ShowSalesforceAccount']=function(_0x5bc0d2){var _0x311c39=this;return new Promise(function(_0x25eeb4,_0x37a965){return db[_0xea5f('0x14')][_0xea5f('0x1e')]({'raw':_0x5bc0d2[_0xea5f('0x16')]?_0x5bc0d2[_0xea5f('0x16')][_0xea5f('0x1f')]===undefined?!![]:![]:!![],'where':_0x5bc0d2['options']?_0x5bc0d2[_0xea5f('0x16')][_0xea5f('0x17')]||null:null,'attributes':_0x5bc0d2[_0xea5f('0x16')]?_0x5bc0d2[_0xea5f('0x16')][_0xea5f('0x1a')]||null:null,'include':_0x5bc0d2[_0xea5f('0x16')]?_0x5bc0d2[_0xea5f('0x16')][_0xea5f('0x18')]?_[_0xea5f('0x19')](_0x5bc0d2['options']['include'],function(_0x346427){return{'model':db[_0x346427['model']],'as':_0x346427['as'],'attributes':_0x346427[_0xea5f('0x1a')],'include':_0x346427[_0xea5f('0x18')]?_[_0xea5f('0x19')](_0x346427[_0xea5f('0x18')],function(_0xeb5cd){return{'model':db[_0xeb5cd[_0xea5f('0x1b')]],'as':_0xeb5cd['as'],'attributes':_0xeb5cd['attributes'],'include':_0xeb5cd[_0xea5f('0x18')]?_[_0xea5f('0x19')](_0xeb5cd[_0xea5f('0x18')],function(_0x1f6a88){return{'model':db[_0x1f6a88[_0xea5f('0x1b')]],'as':_0x1f6a88['as'],'attributes':_0x1f6a88[_0xea5f('0x1a')]};}):[]};}):[]};}):[]:[]})[_0xea5f('0x1c')](function(_0x3f4951){logger[_0xea5f('0xa')]('ShowSalesforceAccount',_0x5bc0d2);logger[_0xea5f('0xd')](_0xea5f('0x20'),_0x5bc0d2,JSON['stringify'](_0x3f4951));_0x25eeb4(_0x3f4951);})[_0xea5f('0x1d')](function(_0x107497){logger['error'](_0xea5f('0x20'),_0x107497[_0xea5f('0x11')],_0x5bc0d2);_0x37a965(_0x311c39[_0xea5f('0xf')](0x1f4,_0x107497[_0xea5f('0x11')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['getSubjects','getDescriptions','post','create','put','update','delete','destroy','exports','multer','util','path','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./intSalesforceConfiguration.controller','get','index','/:id','isAuthenticated','/:id/subjects'];(function(_0x1ed9c5,_0x3ae57b){var _0x201d61=function(_0x375e68){while(--_0x375e68){_0x1ed9c5['push'](_0x1ed9c5['shift']());}};_0x201d61(++_0x3ae57b);}(_0x7a54,0x106));var _0x47a5=function(_0x4646a0,_0x50ba57){_0x4646a0=_0x4646a0-0x0;var _0x274529=_0x7a54[_0x4646a0];return _0x274529;};'use strict';var multer=require(_0x47a5('0x0'));var util=require(_0x47a5('0x1'));var path=require(_0x47a5('0x2'));var timeout=require('connect-timeout');var express=require(_0x47a5('0x3'));var router=express[_0x47a5('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x47a5('0x5'));var interaction=require(_0x47a5('0x6'));var config=require(_0x47a5('0x7'));var controller=require(_0x47a5('0x8'));router[_0x47a5('0x9')]('/',auth['isAuthenticated'](),controller[_0x47a5('0xa')]);router['get'](_0x47a5('0xb'),auth[_0x47a5('0xc')](),controller['show']);router[_0x47a5('0x9')]('/:id/fields',auth['isAuthenticated'](),controller['getFields']);router[_0x47a5('0x9')](_0x47a5('0xd'),auth['isAuthenticated'](),controller[_0x47a5('0xe')]);router['get']('/:id/descriptions',auth[_0x47a5('0xc')](),controller[_0x47a5('0xf')]);router[_0x47a5('0x10')]('/',auth[_0x47a5('0xc')](),controller[_0x47a5('0x11')]);router[_0x47a5('0x12')](_0x47a5('0xb'),auth['isAuthenticated'](),controller[_0x47a5('0x13')]);router[_0x47a5('0x14')](_0x47a5('0xb'),auth[_0x47a5('0xc')](),controller[_0x47a5('0x15')]);module[_0x47a5('0x16')]=router;
\ No newline at end of file
+var _0x5f2f=['Router','fs-extra','../../components/auth/service','./intSalesforceConfiguration.controller','get','isAuthenticated','index','/:id','show','/:id/fields','getFields','/:id/subjects','getSubjects','getDescriptions','create','put','update','destroy','exports','multer','util','path','connect-timeout','express'];(function(_0x19c9db,_0x2c3f0c){var _0x412d83=function(_0x4a2c93){while(--_0x4a2c93){_0x19c9db['push'](_0x19c9db['shift']());}};_0x412d83(++_0x2c3f0c);}(_0x5f2f,0x73));var _0xf5f2=function(_0x1df79c,_0x5ad8fd){_0x1df79c=_0x1df79c-0x0;var _0x2f23e4=_0x5f2f[_0x1df79c];return _0x2f23e4;};'use strict';var multer=require(_0xf5f2('0x0'));var util=require(_0xf5f2('0x1'));var path=require(_0xf5f2('0x2'));var timeout=require(_0xf5f2('0x3'));var express=require(_0xf5f2('0x4'));var router=express[_0xf5f2('0x5')]();var fs_extra=require(_0xf5f2('0x6'));var auth=require(_0xf5f2('0x7'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0xf5f2('0x8'));router[_0xf5f2('0x9')]('/',auth[_0xf5f2('0xa')](),controller[_0xf5f2('0xb')]);router[_0xf5f2('0x9')](_0xf5f2('0xc'),auth['isAuthenticated'](),controller[_0xf5f2('0xd')]);router[_0xf5f2('0x9')](_0xf5f2('0xe'),auth['isAuthenticated'](),controller[_0xf5f2('0xf')]);router[_0xf5f2('0x9')](_0xf5f2('0x10'),auth['isAuthenticated'](),controller[_0xf5f2('0x11')]);router['get']('/:id/descriptions',auth[_0xf5f2('0xa')](),controller[_0xf5f2('0x12')]);router['post']('/',auth[_0xf5f2('0xa')](),controller[_0xf5f2('0x13')]);router[_0xf5f2('0x14')](_0xf5f2('0xc'),auth[_0xf5f2('0xa')](),controller[_0xf5f2('0x15')]);router['delete'](_0xf5f2('0xc'),auth[_0xf5f2('0xa')](),controller[_0xf5f2('0x16')]);module[_0xf5f2('0x17')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xef3e=['contact','lead','account_contact_lead','account','contact_lead','nothing','sequelize','STRING','ENUM','Task','Case'];(function(_0x57e857,_0xc01b48){var _0x52166f=function(_0x199d26){while(--_0x199d26){_0x57e857['push'](_0x57e857['shift']());}};_0x52166f(++_0xc01b48);}(_0xef3e,0x17c));var _0xeef3=function(_0x31ced5,_0x5d5415){_0x31ced5=_0x31ced5-0x0;var _0x10d9e5=_0xef3e[_0x31ced5];return _0x10d9e5;};'use strict';var Sequelize=require(_0xeef3('0x0'));module['exports']={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0xeef3('0x1')]},'ticketType':{'type':Sequelize[_0xeef3('0x2')](_0xeef3('0x3'),_0xeef3('0x4')),'defaultValue':_0xeef3('0x3')},'moduleSearch':{'type':Sequelize[_0xeef3('0x2')]('contact_lead',_0xeef3('0x5'),_0xeef3('0x6'),_0xeef3('0x7'),_0xeef3('0x8')),'defaultValue':_0xeef3('0x9')},'moduleCreate':{'type':Sequelize[_0xeef3('0x2')](_0xeef3('0xa'),_0xeef3('0x5'),_0xeef3('0x6'),_0xeef3('0x8')),'defaultValue':_0xeef3('0x6')},'leadId':{'type':Sequelize['STRING']},'additionalSearchAccount':{'type':Sequelize['STRING']},'additionalSearchContact':{'type':Sequelize[_0xeef3('0x1')]},'additionalSearchLead':{'type':Sequelize[_0xeef3('0x1')]}};
\ No newline at end of file
+var _0xd4dc=['sequelize','exports','STRING','ENUM','Task','contact_lead','contact','lead','account_contact_lead','account'];(function(_0x280e38,_0xf0d26d){var _0x165063=function(_0x592c9b){while(--_0x592c9b){_0x280e38['push'](_0x280e38['shift']());}};_0x165063(++_0xf0d26d);}(_0xd4dc,0xbe));var _0xcd4d=function(_0x411017,_0x4a8117){_0x411017=_0x411017-0x0;var _0x2adeea=_0xd4dc[_0x411017];return _0x2adeea;};'use strict';var Sequelize=require(_0xcd4d('0x0'));module[_0xcd4d('0x1')]={'name':{'type':Sequelize[_0xcd4d('0x2')]},'description':{'type':Sequelize[_0xcd4d('0x2')]},'ticketType':{'type':Sequelize[_0xcd4d('0x3')]('Task','Case'),'defaultValue':_0xcd4d('0x4')},'moduleSearch':{'type':Sequelize[_0xcd4d('0x3')](_0xcd4d('0x5'),_0xcd4d('0x6'),_0xcd4d('0x7'),_0xcd4d('0x8'),_0xcd4d('0x9')),'defaultValue':_0xcd4d('0x5')},'moduleCreate':{'type':Sequelize[_0xcd4d('0x3')]('nothing',_0xcd4d('0x6'),_0xcd4d('0x7'),_0xcd4d('0x9')),'defaultValue':_0xcd4d('0x7')},'leadId':{'type':Sequelize[_0xcd4d('0x2')]},'additionalSearchAccount':{'type':Sequelize[_0xcd4d('0x2')]},'additionalSearchContact':{'type':Sequelize[_0xcd4d('0x2')]},'additionalSearchLead':{'type':Sequelize[_0xcd4d('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0b31=['catch','params','keys','find','create','body','getFields','SalesforceField','order','getSubjects','findOne','getDescriptions','pick','eml-format','rimraf','zip-dir','request-promise','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','limit','count','offset','apply','reject','save','update','then','destroy','stack','name','send','index','map','rawAttributes','fieldName','key','model','query','attributes','intersection','fields','length','hasOwnProperty','nolimit','sort','where','filters','filter','type','VIRTUAL','merge','options','includeAll','include','SalesforceConfiguration','findAll','rows'];(function(_0x374ccf,_0xa945c4){var _0x443cde=function(_0x27ff10){while(--_0x27ff10){_0x374ccf['push'](_0x374ccf['shift']());}};_0x443cde(++_0xa945c4);}(_0x0b31,0x1a2));var _0x10b3=function(_0x34c0e7,_0x71c43d){_0x34c0e7=_0x34c0e7-0x0;var _0x16ad7b=_0x0b31[_0x34c0e7];return _0x16ad7b;};'use strict';var emlformat=require(_0x10b3('0x0'));var rimraf=require(_0x10b3('0x1'));var zipdir=require(_0x10b3('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x10b3('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x10b3('0x4'));var util=require(_0x10b3('0x5'));var path=require(_0x10b3('0x6'));var sox=require(_0x10b3('0x7'));var csv=require(_0x10b3('0x8'));var ejs=require(_0x10b3('0x9'));var fs=require('fs');var fs_extra=require(_0x10b3('0xa'));var _=require(_0x10b3('0xb'));var squel=require(_0x10b3('0xc'));var crypto=require('crypto');var jsforce=require(_0x10b3('0xd'));var deskjs=require(_0x10b3('0xe'));var toCsv=require(_0x10b3('0x8'));var querystring=require(_0x10b3('0xf'));var Papa=require('papaparse');var Redis=require(_0x10b3('0x10'));var authService=require(_0x10b3('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x10b3('0x12'));var hardwareService=require(_0x10b3('0x13'));var logger=require(_0x10b3('0x14'))(_0x10b3('0x15'));var utils=require(_0x10b3('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x10b3('0x17'));var db=require(_0x10b3('0x18'))['db'];function respondWithStatusCode(_0x148752,_0x3f1388){_0x3f1388=_0x3f1388||0xcc;return function(_0x4b7554){if(_0x4b7554){return _0x148752[_0x10b3('0x19')](_0x3f1388);}return _0x148752[_0x10b3('0x1a')](_0x3f1388)[_0x10b3('0x1b')]();};}function respondWithResult(_0x400933,_0x275529){_0x275529=_0x275529||0xc8;return function(_0x10b5dc){if(_0x10b5dc){return _0x400933[_0x10b3('0x1a')](_0x275529)[_0x10b3('0x1c')](_0x10b5dc);}};}function respondWithFilteredResult(_0x4c14a5,_0x5f31a9){return function(_0x4e7675){if(_0x4e7675){var _0x298514=typeof _0x5f31a9['offset']===_0x10b3('0x1d')&&typeof _0x5f31a9[_0x10b3('0x1e')]==='undefined';var _0x2b9e18=_0x4e7675[_0x10b3('0x1f')];var _0x535cf2=_0x298514?0x0:_0x5f31a9[_0x10b3('0x20')];var _0x32b7b9=_0x298514?_0x4e7675[_0x10b3('0x1f')]:_0x5f31a9[_0x10b3('0x20')]+_0x5f31a9['limit'];var _0x493d43;if(_0x32b7b9>=_0x2b9e18){_0x32b7b9=_0x2b9e18;_0x493d43=0xc8;}else{_0x493d43=0xce;}_0x4c14a5[_0x10b3('0x1a')](_0x493d43);return _0x4c14a5['set']('Content-Range',_0x535cf2+'-'+_0x32b7b9+'/'+_0x2b9e18)[_0x10b3('0x1c')](_0x4e7675);}return null;};}function patchUpdates(_0x32202b){return function(_0x33ea60){try{jsonpatch[_0x10b3('0x21')](_0x33ea60,_0x32202b,!![]);}catch(_0x42f8ea){return BPromise[_0x10b3('0x22')](_0x42f8ea);}return _0x33ea60[_0x10b3('0x23')]();};}function saveUpdates(_0x20c87a,_0x440483){return function(_0x4693e3){if(_0x4693e3){return _0x4693e3[_0x10b3('0x24')](_0x20c87a)[_0x10b3('0x25')](function(_0x48e485){return _0x48e485;});}return null;};}function removeEntity(_0x12bb52,_0x35028c){return function(_0x24bc96){if(_0x24bc96){return _0x24bc96[_0x10b3('0x26')]()['then'](function(){_0x12bb52[_0x10b3('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x73a099,_0xba4721){return function(_0x3e6af6){if(!_0x3e6af6){_0x73a099[_0x10b3('0x19')](0x194);}return _0x3e6af6;};}function handleError(_0x36b1e9,_0x57f6f4){_0x57f6f4=_0x57f6f4||0x1f4;return function(_0x10ca3d){logger['error'](_0x10ca3d[_0x10b3('0x27')]);if(_0x10ca3d[_0x10b3('0x28')]){delete _0x10ca3d['name'];}_0x36b1e9[_0x10b3('0x1a')](_0x57f6f4)[_0x10b3('0x29')](_0x10ca3d);};}exports[_0x10b3('0x2a')]=function(_0x50cb54,_0x50a560){var _0x48f491={},_0xd86288={},_0x3d0681={'count':0x0,'rows':[]};var _0x472c1e=_[_0x10b3('0x2b')](db['SalesforceConfiguration'][_0x10b3('0x2c')],function(_0xc73a19){return{'name':_0xc73a19[_0x10b3('0x2d')],'type':_0xc73a19['type'][_0x10b3('0x2e')]};});_0xd86288[_0x10b3('0x2f')]=_[_0x10b3('0x2b')](_0x472c1e,_0x10b3('0x28'));_0xd86288[_0x10b3('0x30')]=_['keys'](_0x50cb54['query']);_0xd86288['filters']=_['intersection'](_0xd86288[_0x10b3('0x2f')],_0xd86288[_0x10b3('0x30')]);_0x48f491[_0x10b3('0x31')]=_[_0x10b3('0x32')](_0xd86288[_0x10b3('0x2f')],qs[_0x10b3('0x33')](_0x50cb54['query']['fields']));_0x48f491[_0x10b3('0x31')]=_0x48f491['attributes'][_0x10b3('0x34')]?_0x48f491['attributes']:_0xd86288[_0x10b3('0x2f')];if(!_0x50cb54[_0x10b3('0x30')][_0x10b3('0x35')](_0x10b3('0x36'))){_0x48f491['limit']=qs['limit'](_0x50cb54[_0x10b3('0x30')]['limit']);_0x48f491['offset']=qs[_0x10b3('0x20')](_0x50cb54[_0x10b3('0x30')][_0x10b3('0x20')]);}_0x48f491['order']=qs[_0x10b3('0x37')](_0x50cb54[_0x10b3('0x30')][_0x10b3('0x37')]);_0x48f491[_0x10b3('0x38')]=qs[_0x10b3('0x39')](_['pick'](_0x50cb54[_0x10b3('0x30')],_0xd86288['filters']),_0x472c1e);if(_0x50cb54['query'][_0x10b3('0x3a')]){_0x48f491[_0x10b3('0x38')]=_['merge'](_0x48f491[_0x10b3('0x38')],{'$or':_[_0x10b3('0x2b')](_0x472c1e,function(_0x34dca9){if(_0x34dca9[_0x10b3('0x3b')]!==_0x10b3('0x3c')){var _0xe970f2={};_0xe970f2[_0x34dca9[_0x10b3('0x28')]]={'$like':'%'+_0x50cb54[_0x10b3('0x30')]['filter']+'%'};return _0xe970f2;}})});}_0x48f491=_[_0x10b3('0x3d')]({},_0x48f491,_0x50cb54[_0x10b3('0x3e')]);var _0x30141f={'where':_0x48f491[_0x10b3('0x38')]};return db['SalesforceConfiguration'][_0x10b3('0x1f')](_0x30141f)['then'](function(_0x405899){_0x3d0681[_0x10b3('0x1f')]=_0x405899;if(_0x50cb54[_0x10b3('0x30')][_0x10b3('0x3f')]){_0x48f491[_0x10b3('0x40')]=[{'all':!![]}];}return db[_0x10b3('0x41')][_0x10b3('0x42')](_0x48f491);})[_0x10b3('0x25')](function(_0x4d58c0){_0x3d0681[_0x10b3('0x43')]=_0x4d58c0;return _0x3d0681;})[_0x10b3('0x25')](respondWithFilteredResult(_0x50a560,_0x48f491))[_0x10b3('0x44')](handleError(_0x50a560,null));};exports['show']=function(_0x202efd,_0x4e7731){var _0x38574f={'raw':![],'where':{'id':_0x202efd[_0x10b3('0x45')]['id']}},_0x28af67={};_0x28af67[_0x10b3('0x2f')]=_['keys'](db[_0x10b3('0x41')][_0x10b3('0x2c')]);_0x28af67[_0x10b3('0x30')]=_[_0x10b3('0x46')](_0x202efd[_0x10b3('0x30')]);_0x28af67[_0x10b3('0x39')]=_[_0x10b3('0x32')](_0x28af67[_0x10b3('0x2f')],_0x28af67[_0x10b3('0x30')]);_0x38574f['attributes']=_[_0x10b3('0x32')](_0x28af67[_0x10b3('0x2f')],qs[_0x10b3('0x33')](_0x202efd[_0x10b3('0x30')][_0x10b3('0x33')]));_0x38574f[_0x10b3('0x31')]=_0x38574f[_0x10b3('0x31')]['length']?_0x38574f['attributes']:_0x28af67[_0x10b3('0x2f')];if(_0x202efd[_0x10b3('0x30')][_0x10b3('0x3f')]){_0x38574f[_0x10b3('0x40')]=[{'all':!![]}];}_0x38574f=_[_0x10b3('0x3d')]({},_0x38574f,_0x202efd['options']);return db[_0x10b3('0x41')][_0x10b3('0x47')](_0x38574f)[_0x10b3('0x25')](handleEntityNotFound(_0x4e7731,null))[_0x10b3('0x25')](respondWithResult(_0x4e7731,null))['catch'](handleError(_0x4e7731,null));};exports['create']=function(_0x1eaa50,_0x1c5bd5){return db[_0x10b3('0x41')][_0x10b3('0x48')](_0x1eaa50['body'],{})[_0x10b3('0x25')](respondWithResult(_0x1c5bd5,0xc9))['catch'](handleError(_0x1c5bd5,null));};exports[_0x10b3('0x24')]=function(_0x593f3d,_0x703ce2){if(_0x593f3d['body']['id']){delete _0x593f3d[_0x10b3('0x49')]['id'];}return db[_0x10b3('0x41')]['find']({'where':{'id':_0x593f3d[_0x10b3('0x45')]['id']}})[_0x10b3('0x25')](handleEntityNotFound(_0x703ce2,null))[_0x10b3('0x25')](saveUpdates(_0x593f3d['body'],null))[_0x10b3('0x25')](respondWithResult(_0x703ce2,null))[_0x10b3('0x44')](handleError(_0x703ce2,null));};exports[_0x10b3('0x26')]=function(_0x521a68,_0x325f66){return db['SalesforceConfiguration'][_0x10b3('0x47')]({'where':{'id':_0x521a68[_0x10b3('0x45')]['id']}})[_0x10b3('0x25')](handleEntityNotFound(_0x325f66,null))[_0x10b3('0x25')](removeEntity(_0x325f66,null))[_0x10b3('0x44')](handleError(_0x325f66,null));};exports[_0x10b3('0x4a')]=function(_0x5850f1,_0x63533a,_0x4138e5){var _0x392430={};var _0xeb25bf={};var _0xed26e0;var _0x503226;return db[_0x10b3('0x41')]['findOne']({'where':{'id':_0x5850f1[_0x10b3('0x45')]['id']}})['then'](handleEntityNotFound(_0x63533a,null))[_0x10b3('0x25')](function(_0x43134a){if(_0x43134a){_0xed26e0=_0x43134a;_0xeb25bf['model']=_['keys'](db[_0x10b3('0x4b')][_0x10b3('0x2c')]);_0xeb25bf[_0x10b3('0x30')]=_[_0x10b3('0x46')](_0x5850f1[_0x10b3('0x30')]);_0xeb25bf[_0x10b3('0x39')]=_['intersection'](_0xeb25bf[_0x10b3('0x2f')],_0xeb25bf['query']);_0x392430[_0x10b3('0x31')]=_['intersection'](_0xeb25bf['model'],qs['fields'](_0x5850f1['query']['fields']));_0x392430[_0x10b3('0x31')]=_0x392430['attributes'][_0x10b3('0x34')]?_0x392430[_0x10b3('0x31')]:_0xeb25bf[_0x10b3('0x2f')];_0x392430[_0x10b3('0x4c')]=qs['sort'](_0x5850f1[_0x10b3('0x30')][_0x10b3('0x37')]);_0x392430['where']=qs[_0x10b3('0x39')](_['pick'](_0x5850f1['query'],_0xeb25bf[_0x10b3('0x39')]));if(_0x5850f1[_0x10b3('0x30')][_0x10b3('0x3a')]){_0x392430[_0x10b3('0x38')]=_['merge'](_0x392430[_0x10b3('0x38')],{'$or':_['map'](_0x392430[_0x10b3('0x31')],function(_0x142b02){var _0x2cf081={};_0x2cf081[_0x142b02]={'$like':'%'+_0x5850f1[_0x10b3('0x30')]['filter']+'%'};return _0x2cf081;})});}_0x392430=_[_0x10b3('0x3d')]({},_0x392430,_0x5850f1[_0x10b3('0x3e')]);return _0xed26e0['getFields'](_0x392430);}})[_0x10b3('0x25')](function(_0x444602){if(_0x444602){_0x503226=_0x444602[_0x10b3('0x34')];if(!_0x5850f1['query'][_0x10b3('0x35')](_0x10b3('0x36'))){_0x392430['limit']=qs[_0x10b3('0x1e')](_0x5850f1[_0x10b3('0x30')][_0x10b3('0x1e')]);_0x392430[_0x10b3('0x20')]=qs['offset'](_0x5850f1['query']['offset']);}return _0xed26e0[_0x10b3('0x4a')](_0x392430);}})[_0x10b3('0x25')](function(_0x5b179e){if(_0x5b179e){return _0x5b179e?{'count':_0x503226,'rows':_0x5b179e}:null;}})['then'](respondWithResult(_0x63533a,null))[_0x10b3('0x44')](handleError(_0x63533a,null));};exports[_0x10b3('0x4d')]=function(_0xac867,_0x252f9d,_0x3ab5be){var _0x1000e0={};var _0x1c4bfa={};var _0x2e23d4;var _0x17940c;return db[_0x10b3('0x41')][_0x10b3('0x4e')]({'where':{'id':_0xac867['params']['id']}})[_0x10b3('0x25')](handleEntityNotFound(_0x252f9d,null))[_0x10b3('0x25')](function(_0x5610eb){if(_0x5610eb){_0x2e23d4=_0x5610eb;_0x1c4bfa[_0x10b3('0x2f')]=_['keys'](db['SalesforceField'][_0x10b3('0x2c')]);_0x1c4bfa[_0x10b3('0x30')]=_['keys'](_0xac867[_0x10b3('0x30')]);_0x1c4bfa[_0x10b3('0x39')]=_[_0x10b3('0x32')](_0x1c4bfa[_0x10b3('0x2f')],_0x1c4bfa[_0x10b3('0x30')]);_0x1000e0[_0x10b3('0x31')]=_['intersection'](_0x1c4bfa[_0x10b3('0x2f')],qs[_0x10b3('0x33')](_0xac867[_0x10b3('0x30')][_0x10b3('0x33')]));_0x1000e0['attributes']=_0x1000e0[_0x10b3('0x31')][_0x10b3('0x34')]?_0x1000e0[_0x10b3('0x31')]:_0x1c4bfa['model'];_0x1000e0[_0x10b3('0x4c')]=qs[_0x10b3('0x37')](_0xac867[_0x10b3('0x30')][_0x10b3('0x37')]);_0x1000e0['where']=qs['filters'](_['pick'](_0xac867[_0x10b3('0x30')],_0x1c4bfa[_0x10b3('0x39')]));if(_0xac867[_0x10b3('0x30')][_0x10b3('0x3a')]){_0x1000e0[_0x10b3('0x38')]=_[_0x10b3('0x3d')](_0x1000e0[_0x10b3('0x38')],{'$or':_['map'](_0x1000e0[_0x10b3('0x31')],function(_0x66de03){var _0x4759c0={};_0x4759c0[_0x66de03]={'$like':'%'+_0xac867['query'][_0x10b3('0x3a')]+'%'};return _0x4759c0;})});}_0x1000e0=_[_0x10b3('0x3d')]({},_0x1000e0,_0xac867[_0x10b3('0x3e')]);return _0x2e23d4['getSubjects'](_0x1000e0);}})[_0x10b3('0x25')](function(_0x36c1ad){if(_0x36c1ad){_0x17940c=_0x36c1ad[_0x10b3('0x34')];if(!_0xac867['query']['hasOwnProperty'](_0x10b3('0x36'))){_0x1000e0[_0x10b3('0x1e')]=qs[_0x10b3('0x1e')](_0xac867[_0x10b3('0x30')][_0x10b3('0x1e')]);_0x1000e0[_0x10b3('0x20')]=qs[_0x10b3('0x20')](_0xac867[_0x10b3('0x30')][_0x10b3('0x20')]);}return _0x2e23d4[_0x10b3('0x4d')](_0x1000e0);}})['then'](function(_0x50f4f6){if(_0x50f4f6){return _0x50f4f6?{'count':_0x17940c,'rows':_0x50f4f6}:null;}})[_0x10b3('0x25')](respondWithResult(_0x252f9d,null))['catch'](handleError(_0x252f9d,null));};exports[_0x10b3('0x4f')]=function(_0x519add,_0x2cabc4,_0x3981d1){var _0x201122={};var _0x2ff570={};var _0x333261;var _0x32cc0d;return db['SalesforceConfiguration'][_0x10b3('0x4e')]({'where':{'id':_0x519add['params']['id']}})[_0x10b3('0x25')](handleEntityNotFound(_0x2cabc4,null))[_0x10b3('0x25')](function(_0x411736){if(_0x411736){_0x333261=_0x411736;_0x2ff570[_0x10b3('0x2f')]=_['keys'](db['SalesforceField'][_0x10b3('0x2c')]);_0x2ff570[_0x10b3('0x30')]=_[_0x10b3('0x46')](_0x519add['query']);_0x2ff570[_0x10b3('0x39')]=_[_0x10b3('0x32')](_0x2ff570['model'],_0x2ff570[_0x10b3('0x30')]);_0x201122[_0x10b3('0x31')]=_['intersection'](_0x2ff570['model'],qs[_0x10b3('0x33')](_0x519add[_0x10b3('0x30')][_0x10b3('0x33')]));_0x201122[_0x10b3('0x31')]=_0x201122[_0x10b3('0x31')][_0x10b3('0x34')]?_0x201122[_0x10b3('0x31')]:_0x2ff570['model'];_0x201122[_0x10b3('0x4c')]=qs[_0x10b3('0x37')](_0x519add[_0x10b3('0x30')][_0x10b3('0x37')]);_0x201122['where']=qs['filters'](_[_0x10b3('0x50')](_0x519add[_0x10b3('0x30')],_0x2ff570['filters']));if(_0x519add['query']['filter']){_0x201122['where']=_[_0x10b3('0x3d')](_0x201122[_0x10b3('0x38')],{'$or':_['map'](_0x201122[_0x10b3('0x31')],function(_0xab31eb){var _0x538130={};_0x538130[_0xab31eb]={'$like':'%'+_0x519add[_0x10b3('0x30')]['filter']+'%'};return _0x538130;})});}_0x201122=_['merge']({},_0x201122,_0x519add['options']);return _0x333261[_0x10b3('0x4f')](_0x201122);}})[_0x10b3('0x25')](function(_0x181d42){if(_0x181d42){_0x32cc0d=_0x181d42[_0x10b3('0x34')];if(!_0x519add[_0x10b3('0x30')][_0x10b3('0x35')](_0x10b3('0x36'))){_0x201122[_0x10b3('0x1e')]=qs[_0x10b3('0x1e')](_0x519add[_0x10b3('0x30')][_0x10b3('0x1e')]);_0x201122['offset']=qs[_0x10b3('0x20')](_0x519add[_0x10b3('0x30')]['offset']);}return _0x333261['getDescriptions'](_0x201122);}})[_0x10b3('0x25')](function(_0x5e6d7d){if(_0x5e6d7d){return _0x5e6d7d?{'count':_0x32cc0d,'rows':_0x5e6d7d}:null;}})[_0x10b3('0x25')](respondWithResult(_0x2cabc4,null))[_0x10b3('0x44')](handleError(_0x2cabc4,null));};
\ No newline at end of file
+var _0x48db=['zip-dir','fast-json-patch','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','set','apply','reject','save','update','then','destroy','error','stack','name','send','index','SalesforceConfiguration','rawAttributes','type','key','map','query','keys','filters','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','include','rows','catch','show','params','includeAll','options','create','body','find','getFields','findOne','SalesforceField','getSubjects','getDescriptions','eml-format','rimraf'];(function(_0x22b2be,_0x4b164c){var _0x213c31=function(_0x475528){while(--_0x475528){_0x22b2be['push'](_0x22b2be['shift']());}};_0x213c31(++_0x4b164c);}(_0x48db,0x1e4));var _0xb48d=function(_0x45bcda,_0x183c9b){_0x45bcda=_0x45bcda-0x0;var _0x52005e=_0x48db[_0x45bcda];return _0x52005e;};'use strict';var emlformat=require(_0xb48d('0x0'));var rimraf=require(_0xb48d('0x1'));var zipdir=require(_0xb48d('0x2'));var jsonpatch=require(_0xb48d('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xb48d('0x4'));var Mustache=require(_0xb48d('0x5'));var util=require(_0xb48d('0x6'));var path=require(_0xb48d('0x7'));var sox=require(_0xb48d('0x8'));var csv=require(_0xb48d('0x9'));var ejs=require(_0xb48d('0xa'));var fs=require('fs');var fs_extra=require(_0xb48d('0xb'));var _=require('lodash');var squel=require(_0xb48d('0xc'));var crypto=require(_0xb48d('0xd'));var jsforce=require(_0xb48d('0xe'));var deskjs=require(_0xb48d('0xf'));var toCsv=require(_0xb48d('0x9'));var querystring=require(_0xb48d('0x10'));var Papa=require(_0xb48d('0x11'));var Redis=require('ioredis');var authService=require(_0xb48d('0x12'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xb48d('0x13'));var utils=require(_0xb48d('0x14'));var config=require(_0xb48d('0x15'));var licenseUtil=require(_0xb48d('0x16'));var db=require(_0xb48d('0x17'))['db'];function respondWithStatusCode(_0x44ec77,_0x437d61){_0x437d61=_0x437d61||0xcc;return function(_0x545f6e){if(_0x545f6e){return _0x44ec77[_0xb48d('0x18')](_0x437d61);}return _0x44ec77[_0xb48d('0x19')](_0x437d61)[_0xb48d('0x1a')]();};}function respondWithResult(_0x4b115c,_0x4a2e91){_0x4a2e91=_0x4a2e91||0xc8;return function(_0x23fe46){if(_0x23fe46){return _0x4b115c[_0xb48d('0x19')](_0x4a2e91)[_0xb48d('0x1b')](_0x23fe46);}};}function respondWithFilteredResult(_0x21cec1,_0x29cdde){return function(_0x4e6eae){if(_0x4e6eae){var _0x399919=typeof _0x29cdde[_0xb48d('0x1c')]===_0xb48d('0x1d')&&typeof _0x29cdde['limit']==='undefined';var _0x1a3e09=_0x4e6eae[_0xb48d('0x1e')];var _0x192d55=_0x399919?0x0:_0x29cdde[_0xb48d('0x1c')];var _0x858406=_0x399919?_0x4e6eae[_0xb48d('0x1e')]:_0x29cdde[_0xb48d('0x1c')]+_0x29cdde[_0xb48d('0x1f')];var _0x4ed098;if(_0x858406>=_0x1a3e09){_0x858406=_0x1a3e09;_0x4ed098=0xc8;}else{_0x4ed098=0xce;}_0x21cec1[_0xb48d('0x19')](_0x4ed098);return _0x21cec1[_0xb48d('0x20')]('Content-Range',_0x192d55+'-'+_0x858406+'/'+_0x1a3e09)[_0xb48d('0x1b')](_0x4e6eae);}return null;};}function patchUpdates(_0x4ca8de){return function(_0x195ab7){try{jsonpatch[_0xb48d('0x21')](_0x195ab7,_0x4ca8de,!![]);}catch(_0x3fec78){return BPromise[_0xb48d('0x22')](_0x3fec78);}return _0x195ab7[_0xb48d('0x23')]();};}function saveUpdates(_0x2a2c48,_0x106d78){return function(_0x24c13d){if(_0x24c13d){return _0x24c13d[_0xb48d('0x24')](_0x2a2c48)[_0xb48d('0x25')](function(_0x20bc34){return _0x20bc34;});}return null;};}function removeEntity(_0x38ca97,_0x2dd185){return function(_0x3bcfd9){if(_0x3bcfd9){return _0x3bcfd9[_0xb48d('0x26')]()[_0xb48d('0x25')](function(){_0x38ca97['status'](0xcc)[_0xb48d('0x1a')]();});}};}function handleEntityNotFound(_0xa70b0a,_0x2e7024){return function(_0xb28245){if(!_0xb28245){_0xa70b0a[_0xb48d('0x18')](0x194);}return _0xb28245;};}function handleError(_0x4317cb,_0x393dfc){_0x393dfc=_0x393dfc||0x1f4;return function(_0x52a2fa){logger[_0xb48d('0x27')](_0x52a2fa[_0xb48d('0x28')]);if(_0x52a2fa[_0xb48d('0x29')]){delete _0x52a2fa[_0xb48d('0x29')];}_0x4317cb[_0xb48d('0x19')](_0x393dfc)[_0xb48d('0x2a')](_0x52a2fa);};}exports[_0xb48d('0x2b')]=function(_0x12a60d,_0x451844){var _0x14d24e={},_0x3399b8={},_0x17def9={'count':0x0,'rows':[]};var _0xe64f98=_['map'](db[_0xb48d('0x2c')][_0xb48d('0x2d')],function(_0x43280a){return{'name':_0x43280a['fieldName'],'type':_0x43280a[_0xb48d('0x2e')][_0xb48d('0x2f')]};});_0x3399b8['model']=_[_0xb48d('0x30')](_0xe64f98,_0xb48d('0x29'));_0x3399b8[_0xb48d('0x31')]=_[_0xb48d('0x32')](_0x12a60d['query']);_0x3399b8[_0xb48d('0x33')]=_[_0xb48d('0x34')](_0x3399b8['model'],_0x3399b8[_0xb48d('0x31')]);_0x14d24e['attributes']=_[_0xb48d('0x34')](_0x3399b8[_0xb48d('0x35')],qs[_0xb48d('0x36')](_0x12a60d[_0xb48d('0x31')]['fields']));_0x14d24e[_0xb48d('0x37')]=_0x14d24e['attributes'][_0xb48d('0x38')]?_0x14d24e['attributes']:_0x3399b8['model'];if(!_0x12a60d[_0xb48d('0x31')][_0xb48d('0x39')](_0xb48d('0x3a'))){_0x14d24e[_0xb48d('0x1f')]=qs['limit'](_0x12a60d['query'][_0xb48d('0x1f')]);_0x14d24e[_0xb48d('0x1c')]=qs[_0xb48d('0x1c')](_0x12a60d[_0xb48d('0x31')][_0xb48d('0x1c')]);}_0x14d24e[_0xb48d('0x3b')]=qs[_0xb48d('0x3c')](_0x12a60d[_0xb48d('0x31')][_0xb48d('0x3c')]);_0x14d24e[_0xb48d('0x3d')]=qs[_0xb48d('0x33')](_[_0xb48d('0x3e')](_0x12a60d[_0xb48d('0x31')],_0x3399b8[_0xb48d('0x33')]),_0xe64f98);if(_0x12a60d[_0xb48d('0x31')][_0xb48d('0x3f')]){_0x14d24e[_0xb48d('0x3d')]=_[_0xb48d('0x40')](_0x14d24e[_0xb48d('0x3d')],{'$or':_[_0xb48d('0x30')](_0xe64f98,function(_0x1c5f0b){if(_0x1c5f0b[_0xb48d('0x2e')]!==_0xb48d('0x41')){var _0x561ecc={};_0x561ecc[_0x1c5f0b[_0xb48d('0x29')]]={'$like':'%'+_0x12a60d[_0xb48d('0x31')][_0xb48d('0x3f')]+'%'};return _0x561ecc;}})});}_0x14d24e=_[_0xb48d('0x40')]({},_0x14d24e,_0x12a60d['options']);var _0x7b1f59={'where':_0x14d24e[_0xb48d('0x3d')]};return db['SalesforceConfiguration'][_0xb48d('0x1e')](_0x7b1f59)[_0xb48d('0x25')](function(_0x4296bc){_0x17def9[_0xb48d('0x1e')]=_0x4296bc;if(_0x12a60d[_0xb48d('0x31')]['includeAll']){_0x14d24e[_0xb48d('0x42')]=[{'all':!![]}];}return db[_0xb48d('0x2c')]['findAll'](_0x14d24e);})[_0xb48d('0x25')](function(_0x28613e){_0x17def9[_0xb48d('0x43')]=_0x28613e;return _0x17def9;})[_0xb48d('0x25')](respondWithFilteredResult(_0x451844,_0x14d24e))[_0xb48d('0x44')](handleError(_0x451844,null));};exports[_0xb48d('0x45')]=function(_0x28a7c7,_0x28ead1){var _0x127fdd={'raw':![],'where':{'id':_0x28a7c7[_0xb48d('0x46')]['id']}},_0x26cb78={};_0x26cb78['model']=_[_0xb48d('0x32')](db[_0xb48d('0x2c')][_0xb48d('0x2d')]);_0x26cb78[_0xb48d('0x31')]=_[_0xb48d('0x32')](_0x28a7c7[_0xb48d('0x31')]);_0x26cb78['filters']=_[_0xb48d('0x34')](_0x26cb78[_0xb48d('0x35')],_0x26cb78['query']);_0x127fdd[_0xb48d('0x37')]=_[_0xb48d('0x34')](_0x26cb78[_0xb48d('0x35')],qs[_0xb48d('0x36')](_0x28a7c7[_0xb48d('0x31')][_0xb48d('0x36')]));_0x127fdd[_0xb48d('0x37')]=_0x127fdd['attributes']['length']?_0x127fdd[_0xb48d('0x37')]:_0x26cb78['model'];if(_0x28a7c7[_0xb48d('0x31')][_0xb48d('0x47')]){_0x127fdd[_0xb48d('0x42')]=[{'all':!![]}];}_0x127fdd=_[_0xb48d('0x40')]({},_0x127fdd,_0x28a7c7[_0xb48d('0x48')]);return db[_0xb48d('0x2c')]['find'](_0x127fdd)[_0xb48d('0x25')](handleEntityNotFound(_0x28ead1,null))[_0xb48d('0x25')](respondWithResult(_0x28ead1,null))[_0xb48d('0x44')](handleError(_0x28ead1,null));};exports[_0xb48d('0x49')]=function(_0x32334c,_0x290cf5){return db[_0xb48d('0x2c')][_0xb48d('0x49')](_0x32334c[_0xb48d('0x4a')],{})[_0xb48d('0x25')](respondWithResult(_0x290cf5,0xc9))[_0xb48d('0x44')](handleError(_0x290cf5,null));};exports[_0xb48d('0x24')]=function(_0x4e69f9,_0xe65888){if(_0x4e69f9['body']['id']){delete _0x4e69f9['body']['id'];}return db['SalesforceConfiguration'][_0xb48d('0x4b')]({'where':{'id':_0x4e69f9['params']['id']}})[_0xb48d('0x25')](handleEntityNotFound(_0xe65888,null))[_0xb48d('0x25')](saveUpdates(_0x4e69f9['body'],null))[_0xb48d('0x25')](respondWithResult(_0xe65888,null))[_0xb48d('0x44')](handleError(_0xe65888,null));};exports[_0xb48d('0x26')]=function(_0x3fb7c9,_0x14990d){return db[_0xb48d('0x2c')][_0xb48d('0x4b')]({'where':{'id':_0x3fb7c9[_0xb48d('0x46')]['id']}})[_0xb48d('0x25')](handleEntityNotFound(_0x14990d,null))['then'](removeEntity(_0x14990d,null))[_0xb48d('0x44')](handleError(_0x14990d,null));};exports[_0xb48d('0x4c')]=function(_0x50f037,_0x30f31e,_0x31e3f3){var _0x4c9a26={};var _0x43aa10={};var _0x542181;var _0x52da45;return db[_0xb48d('0x2c')][_0xb48d('0x4d')]({'where':{'id':_0x50f037[_0xb48d('0x46')]['id']}})[_0xb48d('0x25')](handleEntityNotFound(_0x30f31e,null))[_0xb48d('0x25')](function(_0x3e55af){if(_0x3e55af){_0x542181=_0x3e55af;_0x43aa10[_0xb48d('0x35')]=_['keys'](db[_0xb48d('0x4e')][_0xb48d('0x2d')]);_0x43aa10[_0xb48d('0x31')]=_[_0xb48d('0x32')](_0x50f037[_0xb48d('0x31')]);_0x43aa10[_0xb48d('0x33')]=_[_0xb48d('0x34')](_0x43aa10[_0xb48d('0x35')],_0x43aa10['query']);_0x4c9a26['attributes']=_[_0xb48d('0x34')](_0x43aa10['model'],qs[_0xb48d('0x36')](_0x50f037[_0xb48d('0x31')][_0xb48d('0x36')]));_0x4c9a26[_0xb48d('0x37')]=_0x4c9a26[_0xb48d('0x37')][_0xb48d('0x38')]?_0x4c9a26[_0xb48d('0x37')]:_0x43aa10[_0xb48d('0x35')];_0x4c9a26[_0xb48d('0x3b')]=qs[_0xb48d('0x3c')](_0x50f037[_0xb48d('0x31')][_0xb48d('0x3c')]);_0x4c9a26[_0xb48d('0x3d')]=qs['filters'](_[_0xb48d('0x3e')](_0x50f037[_0xb48d('0x31')],_0x43aa10['filters']));if(_0x50f037[_0xb48d('0x31')][_0xb48d('0x3f')]){_0x4c9a26[_0xb48d('0x3d')]=_[_0xb48d('0x40')](_0x4c9a26['where'],{'$or':_[_0xb48d('0x30')](_0x4c9a26[_0xb48d('0x37')],function(_0x1e84ab){var _0x5954aa={};_0x5954aa[_0x1e84ab]={'$like':'%'+_0x50f037['query'][_0xb48d('0x3f')]+'%'};return _0x5954aa;})});}_0x4c9a26=_[_0xb48d('0x40')]({},_0x4c9a26,_0x50f037[_0xb48d('0x48')]);return _0x542181['getFields'](_0x4c9a26);}})[_0xb48d('0x25')](function(_0x4815ab){if(_0x4815ab){_0x52da45=_0x4815ab['length'];if(!_0x50f037[_0xb48d('0x31')][_0xb48d('0x39')](_0xb48d('0x3a'))){_0x4c9a26[_0xb48d('0x1f')]=qs[_0xb48d('0x1f')](_0x50f037[_0xb48d('0x31')][_0xb48d('0x1f')]);_0x4c9a26[_0xb48d('0x1c')]=qs[_0xb48d('0x1c')](_0x50f037['query'][_0xb48d('0x1c')]);}return _0x542181[_0xb48d('0x4c')](_0x4c9a26);}})[_0xb48d('0x25')](function(_0x52abf6){if(_0x52abf6){return _0x52abf6?{'count':_0x52da45,'rows':_0x52abf6}:null;}})[_0xb48d('0x25')](respondWithResult(_0x30f31e,null))[_0xb48d('0x44')](handleError(_0x30f31e,null));};exports['getSubjects']=function(_0x2cc84a,_0x34aaf0,_0x36b434){var _0x5bffde={};var _0x47401d={};var _0x1b26ea;var _0x2c338d;return db[_0xb48d('0x2c')][_0xb48d('0x4d')]({'where':{'id':_0x2cc84a['params']['id']}})[_0xb48d('0x25')](handleEntityNotFound(_0x34aaf0,null))[_0xb48d('0x25')](function(_0x5a1e14){if(_0x5a1e14){_0x1b26ea=_0x5a1e14;_0x47401d[_0xb48d('0x35')]=_[_0xb48d('0x32')](db['SalesforceField'][_0xb48d('0x2d')]);_0x47401d[_0xb48d('0x31')]=_[_0xb48d('0x32')](_0x2cc84a[_0xb48d('0x31')]);_0x47401d[_0xb48d('0x33')]=_[_0xb48d('0x34')](_0x47401d['model'],_0x47401d[_0xb48d('0x31')]);_0x5bffde['attributes']=_[_0xb48d('0x34')](_0x47401d[_0xb48d('0x35')],qs[_0xb48d('0x36')](_0x2cc84a[_0xb48d('0x31')][_0xb48d('0x36')]));_0x5bffde[_0xb48d('0x37')]=_0x5bffde[_0xb48d('0x37')][_0xb48d('0x38')]?_0x5bffde[_0xb48d('0x37')]:_0x47401d['model'];_0x5bffde[_0xb48d('0x3b')]=qs[_0xb48d('0x3c')](_0x2cc84a[_0xb48d('0x31')]['sort']);_0x5bffde[_0xb48d('0x3d')]=qs[_0xb48d('0x33')](_[_0xb48d('0x3e')](_0x2cc84a['query'],_0x47401d[_0xb48d('0x33')]));if(_0x2cc84a[_0xb48d('0x31')]['filter']){_0x5bffde[_0xb48d('0x3d')]=_[_0xb48d('0x40')](_0x5bffde[_0xb48d('0x3d')],{'$or':_['map'](_0x5bffde[_0xb48d('0x37')],function(_0x56bce6){var _0x217e55={};_0x217e55[_0x56bce6]={'$like':'%'+_0x2cc84a[_0xb48d('0x31')][_0xb48d('0x3f')]+'%'};return _0x217e55;})});}_0x5bffde=_['merge']({},_0x5bffde,_0x2cc84a[_0xb48d('0x48')]);return _0x1b26ea['getSubjects'](_0x5bffde);}})[_0xb48d('0x25')](function(_0x18fdd4){if(_0x18fdd4){_0x2c338d=_0x18fdd4[_0xb48d('0x38')];if(!_0x2cc84a[_0xb48d('0x31')][_0xb48d('0x39')](_0xb48d('0x3a'))){_0x5bffde[_0xb48d('0x1f')]=qs['limit'](_0x2cc84a[_0xb48d('0x31')][_0xb48d('0x1f')]);_0x5bffde[_0xb48d('0x1c')]=qs[_0xb48d('0x1c')](_0x2cc84a[_0xb48d('0x31')][_0xb48d('0x1c')]);}return _0x1b26ea[_0xb48d('0x4f')](_0x5bffde);}})[_0xb48d('0x25')](function(_0x16d64f){if(_0x16d64f){return _0x16d64f?{'count':_0x2c338d,'rows':_0x16d64f}:null;}})['then'](respondWithResult(_0x34aaf0,null))[_0xb48d('0x44')](handleError(_0x34aaf0,null));};exports[_0xb48d('0x50')]=function(_0x14cebe,_0x376158,_0x2aca59){var _0x4eb7e9={};var _0x120903={};var _0x22c167;var _0x10da2e;return db['SalesforceConfiguration'][_0xb48d('0x4d')]({'where':{'id':_0x14cebe[_0xb48d('0x46')]['id']}})['then'](handleEntityNotFound(_0x376158,null))[_0xb48d('0x25')](function(_0x3fe989){if(_0x3fe989){_0x22c167=_0x3fe989;_0x120903[_0xb48d('0x35')]=_[_0xb48d('0x32')](db['SalesforceField'][_0xb48d('0x2d')]);_0x120903[_0xb48d('0x31')]=_[_0xb48d('0x32')](_0x14cebe[_0xb48d('0x31')]);_0x120903['filters']=_[_0xb48d('0x34')](_0x120903[_0xb48d('0x35')],_0x120903[_0xb48d('0x31')]);_0x4eb7e9[_0xb48d('0x37')]=_['intersection'](_0x120903[_0xb48d('0x35')],qs['fields'](_0x14cebe[_0xb48d('0x31')][_0xb48d('0x36')]));_0x4eb7e9[_0xb48d('0x37')]=_0x4eb7e9[_0xb48d('0x37')][_0xb48d('0x38')]?_0x4eb7e9[_0xb48d('0x37')]:_0x120903[_0xb48d('0x35')];_0x4eb7e9[_0xb48d('0x3b')]=qs[_0xb48d('0x3c')](_0x14cebe[_0xb48d('0x31')][_0xb48d('0x3c')]);_0x4eb7e9[_0xb48d('0x3d')]=qs['filters'](_['pick'](_0x14cebe[_0xb48d('0x31')],_0x120903['filters']));if(_0x14cebe[_0xb48d('0x31')]['filter']){_0x4eb7e9[_0xb48d('0x3d')]=_['merge'](_0x4eb7e9[_0xb48d('0x3d')],{'$or':_[_0xb48d('0x30')](_0x4eb7e9[_0xb48d('0x37')],function(_0x5c3670){var _0x113e6d={};_0x113e6d[_0x5c3670]={'$like':'%'+_0x14cebe[_0xb48d('0x31')][_0xb48d('0x3f')]+'%'};return _0x113e6d;})});}_0x4eb7e9=_[_0xb48d('0x40')]({},_0x4eb7e9,_0x14cebe[_0xb48d('0x48')]);return _0x22c167[_0xb48d('0x50')](_0x4eb7e9);}})[_0xb48d('0x25')](function(_0x4246b5){if(_0x4246b5){_0x10da2e=_0x4246b5['length'];if(!_0x14cebe[_0xb48d('0x31')][_0xb48d('0x39')](_0xb48d('0x3a'))){_0x4eb7e9['limit']=qs[_0xb48d('0x1f')](_0x14cebe[_0xb48d('0x31')][_0xb48d('0x1f')]);_0x4eb7e9[_0xb48d('0x1c')]=qs[_0xb48d('0x1c')](_0x14cebe['query']['offset']);}return _0x22c167[_0xb48d('0x50')](_0x4eb7e9);}})[_0xb48d('0x25')](function(_0x2f46a2){if(_0x2f46a2){return _0x2f46a2?{'count':_0x10da2e,'rows':_0x2f46a2}:null;}})[_0xb48d('0x25')](respondWithResult(_0x376158,null))[_0xb48d('0x44')](handleError(_0x376158,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4d8e=['./intSalesforceConfiguration.attributes','exports','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','../../config/environment'];(function(_0x47d5b7,_0x5c4373){var _0x3bae23=function(_0x285781){while(--_0x285781){_0x47d5b7['push'](_0x47d5b7['shift']());}};_0x3bae23(++_0x5c4373);}(_0x4d8e,0x86));var _0xe4d8=function(_0x24ba5f,_0x2e3ea4){_0x24ba5f=_0x24ba5f-0x0;var _0x2bd111=_0x4d8e[_0x24ba5f];return _0x2bd111;};'use strict';var _=require(_0xe4d8('0x0'));var util=require(_0xe4d8('0x1'));var logger=require(_0xe4d8('0x2'))(_0xe4d8('0x3'));var moment=require(_0xe4d8('0x4'));var BPromise=require(_0xe4d8('0x5'));var rp=require(_0xe4d8('0x6'));var fs=require('fs');var path=require(_0xe4d8('0x7'));var rimraf=require('rimraf');var config=require(_0xe4d8('0x8'));var attributes=require(_0xe4d8('0x9'));module[_0xe4d8('0xa')]=function(_0x102b31,_0x4db54a){return _0x102b31['define']('SalesforceConfiguration',attributes,{'tableName':'int_salesforce_configurations','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xba47=['exports','define','SalesforceConfiguration','int_salesforce_configurations','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','./intSalesforceConfiguration.attributes'];(function(_0x335d7b,_0x468cb1){var _0x5cfd16=function(_0x368cac){while(--_0x368cac){_0x335d7b['push'](_0x335d7b['shift']());}};_0x5cfd16(++_0x468cb1);}(_0xba47,0xc4));var _0x7ba4=function(_0x45070d,_0x24b443){_0x45070d=_0x45070d-0x0;var _0x3ff84b=_0xba47[_0x45070d];return _0x3ff84b;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x7ba4('0x0'))(_0x7ba4('0x1'));var moment=require(_0x7ba4('0x2'));var BPromise=require(_0x7ba4('0x3'));var rp=require(_0x7ba4('0x4'));var fs=require('fs');var path=require(_0x7ba4('0x5'));var rimraf=require(_0x7ba4('0x6'));var config=require('../../config/environment');var attributes=require(_0x7ba4('0x7'));module[_0x7ba4('0x8')]=function(_0x473809,_0x5ef017){return _0x473809[_0x7ba4('0x9')](_0x7ba4('0xa'),attributes,{'tableName':_0x7ba4('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc00e=['rpc','client','request','then','request\x20sent','SalesforceConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','code','SalesforceConfiguration,\x20%s,\x20%s','message','info','result','catch','lodash','util','randomstring','ioredis','../../mysqldb','../../config/logger'];(function(_0x5538d5,_0x190032){var _0x323b1a=function(_0x179caa){while(--_0x179caa){_0x5538d5['push'](_0x5538d5['shift']());}};_0x323b1a(++_0x190032);}(_0xc00e,0xd6));var _0xec00=function(_0x42205c,_0xda8dc0){_0x42205c=_0x42205c-0x0;var _0x46b2ff=_0xc00e[_0x42205c];return _0x46b2ff;};'use strict';var _=require(_0xec00('0x0'));var util=require(_0xec00('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xec00('0x2'));var fs=require('fs');var Redis=require(_0xec00('0x3'));var db=require(_0xec00('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0xec00('0x5'))(_0xec00('0x6'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0xec00('0x7')]['http']({'port':0x232a});function respondWithRpcPromise(_0x42c76e,_0x5741b3,_0x31daae){return new BPromise(function(_0x1e776b,_0x3e6bbd){return client[_0xec00('0x8')](_0x42c76e,_0x31daae)[_0xec00('0x9')](function(_0x10ce04){logger['info']('SalesforceConfiguration,\x20%s,\x20%s',_0x5741b3,_0xec00('0xa'));logger['debug'](_0xec00('0xb'),_0x5741b3,_0xec00('0xa'),JSON[_0xec00('0xc')](_0x10ce04));if(_0x10ce04['error']){if(_0x10ce04[_0xec00('0xd')][_0xec00('0xe')]===0x1f4){logger[_0xec00('0xd')](_0xec00('0xf'),_0x5741b3,_0x10ce04[_0xec00('0xd')][_0xec00('0x10')]);return _0x3e6bbd(_0x10ce04['error'][_0xec00('0x10')]);}logger['error']('SalesforceConfiguration,\x20%s,\x20%s',_0x5741b3,_0x10ce04[_0xec00('0xd')][_0xec00('0x10')]);return _0x1e776b(_0x10ce04[_0xec00('0xd')][_0xec00('0x10')]);}else{logger[_0xec00('0x11')](_0xec00('0xf'),_0x5741b3,_0xec00('0xa'));_0x1e776b(_0x10ce04[_0xec00('0x12')][_0xec00('0x10')]);}})[_0xec00('0x13')](function(_0x5594cf){logger[_0xec00('0xd')](_0xec00('0xf'),_0x5741b3,_0x5594cf);_0x3e6bbd(_0x5594cf);});});}
\ No newline at end of file
+var _0xdbfd=['../../mysqldb','../../config/utils','../../config/logger','rpc','then','info','request\x20sent','debug','SalesforceConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','code','SalesforceConfiguration,\x20%s,\x20%s','message','result','catch','lodash','util','bluebird','randomstring'];(function(_0x4a53d,_0x58a95e){var _0x27410e=function(_0x38fc90){while(--_0x38fc90){_0x4a53d['push'](_0x4a53d['shift']());}};_0x27410e(++_0x58a95e);}(_0xdbfd,0x1f0));var _0xddbf=function(_0x3d683d,_0x285789){_0x3d683d=_0x3d683d-0x0;var _0xf900ac=_0xdbfd[_0x3d683d];return _0xf900ac;};'use strict';var _=require(_0xddbf('0x0'));var util=require(_0xddbf('0x1'));var moment=require('moment');var BPromise=require(_0xddbf('0x2'));var rs=require(_0xddbf('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xddbf('0x4'))['db'];var utils=require(_0xddbf('0x5'));var logger=require(_0xddbf('0x6'))(_0xddbf('0x7'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x17d839,_0x46fb60,_0x4cdefd){return new BPromise(function(_0x503b5f,_0x2f6478){return client['request'](_0x17d839,_0x4cdefd)[_0xddbf('0x8')](function(_0x13c469){logger[_0xddbf('0x9')]('SalesforceConfiguration,\x20%s,\x20%s',_0x46fb60,_0xddbf('0xa'));logger[_0xddbf('0xb')](_0xddbf('0xc'),_0x46fb60,'request\x20sent',JSON[_0xddbf('0xd')](_0x13c469));if(_0x13c469[_0xddbf('0xe')]){if(_0x13c469[_0xddbf('0xe')][_0xddbf('0xf')]===0x1f4){logger[_0xddbf('0xe')](_0xddbf('0x10'),_0x46fb60,_0x13c469[_0xddbf('0xe')][_0xddbf('0x11')]);return _0x2f6478(_0x13c469[_0xddbf('0xe')]['message']);}logger['error'](_0xddbf('0x10'),_0x46fb60,_0x13c469[_0xddbf('0xe')]['message']);return _0x503b5f(_0x13c469[_0xddbf('0xe')][_0xddbf('0x11')]);}else{logger[_0xddbf('0x9')](_0xddbf('0x10'),_0x46fb60,_0xddbf('0xa'));_0x503b5f(_0x13c469[_0xddbf('0x12')]['message']);}})[_0xddbf('0x13')](function(_0xc04224){logger[_0xddbf('0xe')](_0xddbf('0x10'),_0x46fb60,_0xc04224);_0x2f6478(_0xc04224);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x815c=['express','Router','fs-extra','../../config/environment','./intSalesforceField.controller','get','isAuthenticated','/:id','show','put','update','destroy','multer','path'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x815c,0x1a2));var _0xc815=function(_0xc923,_0x3c0d55){_0xc923=_0xc923-0x0;var _0x2ff917=_0x815c[_0xc923];return _0x2ff917;};'use strict';var multer=require(_0xc815('0x0'));var util=require('util');var path=require(_0xc815('0x1'));var timeout=require('connect-timeout');var express=require(_0xc815('0x2'));var router=express[_0xc815('0x3')]();var fs_extra=require(_0xc815('0x4'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0xc815('0x5'));var controller=require(_0xc815('0x6'));router[_0xc815('0x7')]('/',auth[_0xc815('0x8')](),controller['index']);router[_0xc815('0x7')](_0xc815('0x9'),auth[_0xc815('0x8')](),controller[_0xc815('0xa')]);router['post']('/',auth['isAuthenticated'](),controller['create']);router[_0xc815('0xb')]('/:id',auth['isAuthenticated'](),controller[_0xc815('0xc')]);router['delete']('/:id',auth['isAuthenticated'](),controller[_0xc815('0xd')]);module['exports']=router;
\ No newline at end of file
+var _0x4e70=['create','put','/:id','delete','exports','multer','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intSalesforceField.controller','get','isAuthenticated','index','show','post'];(function(_0x36a469,_0x59d84c){var _0x3347fc=function(_0x3860e7){while(--_0x3860e7){_0x36a469['push'](_0x36a469['shift']());}};_0x3347fc(++_0x59d84c);}(_0x4e70,0x69));var _0x04e7=function(_0x4e9d3c,_0x1f4b98){_0x4e9d3c=_0x4e9d3c-0x0;var _0x2d0825=_0x4e70[_0x4e9d3c];return _0x2d0825;};'use strict';var multer=require(_0x04e7('0x0'));var util=require(_0x04e7('0x1'));var path=require(_0x04e7('0x2'));var timeout=require(_0x04e7('0x3'));var express=require('express');var router=express[_0x04e7('0x4')]();var fs_extra=require(_0x04e7('0x5'));var auth=require(_0x04e7('0x6'));var interaction=require(_0x04e7('0x7'));var config=require(_0x04e7('0x8'));var controller=require(_0x04e7('0x9'));router[_0x04e7('0xa')]('/',auth[_0x04e7('0xb')](),controller[_0x04e7('0xc')]);router[_0x04e7('0xa')]('/:id',auth[_0x04e7('0xb')](),controller[_0x04e7('0xd')]);router[_0x04e7('0xe')]('/',auth[_0x04e7('0xb')](),controller[_0x04e7('0xf')]);router[_0x04e7('0x10')](_0x04e7('0x11'),auth['isAuthenticated'](),controller['update']);router[_0x04e7('0x12')](_0x04e7('0x11'),auth[_0x04e7('0xb')](),controller['destroy']);module[_0x04e7('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe053=['keyValue','string','STRING','ENUM','sequelize','exports','variable','customVariable'];(function(_0x2641f9,_0x26715f){var _0x585741=function(_0x2d1462){while(--_0x2d1462){_0x2641f9['push'](_0x2641f9['shift']());}};_0x585741(++_0x26715f);}(_0xe053,0x144));var _0x3e05=function(_0x3a2e49,_0x21ebea){_0x3a2e49=_0x3a2e49-0x0;var _0x257140=_0xe053[_0x3a2e49];return _0x257140;};'use strict';var Sequelize=require(_0x3e05('0x0'));module[_0x3e05('0x1')]={'type':{'type':Sequelize['ENUM']('string',_0x3e05('0x2'),_0x3e05('0x3'),_0x3e05('0x4'),'picklist'),'defaultValue':_0x3e05('0x5')},'content':{'type':Sequelize[_0x3e05('0x6')]},'key':{'type':Sequelize[_0x3e05('0x6')]},'keyType':{'type':Sequelize[_0x3e05('0x7')](_0x3e05('0x5'),_0x3e05('0x2'),_0x3e05('0x3'))},'keyContent':{'type':Sequelize[_0x3e05('0x6')]},'idField':{'type':Sequelize[_0x3e05('0x6')]},'variableName':{'type':Sequelize[_0x3e05('0x6')]}};
\ No newline at end of file
+var _0x633a=['picklist','STRING','ENUM','exports','string','variable','customVariable','keyValue'];(function(_0x500419,_0x549162){var _0x241c1a=function(_0x3bea1a){while(--_0x3bea1a){_0x500419['push'](_0x500419['shift']());}};_0x241c1a(++_0x549162);}(_0x633a,0x123));var _0xa633=function(_0x17ed7d,_0x5547ce){_0x17ed7d=_0x17ed7d-0x0;var _0x74132a=_0x633a[_0x17ed7d];return _0x74132a;};'use strict';var Sequelize=require('sequelize');module[_0xa633('0x0')]={'type':{'type':Sequelize['ENUM'](_0xa633('0x1'),_0xa633('0x2'),_0xa633('0x3'),_0xa633('0x4'),_0xa633('0x5')),'defaultValue':'string'},'content':{'type':Sequelize[_0xa633('0x6')]},'key':{'type':Sequelize[_0xa633('0x6')]},'keyType':{'type':Sequelize[_0xa633('0x7')]('string',_0xa633('0x2'),_0xa633('0x3'))},'keyContent':{'type':Sequelize['STRING']},'idField':{'type':Sequelize[_0xa633('0x6')]},'variableName':{'type':Sequelize[_0xa633('0x6')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1ab8=['set','Content-Range','apply','reject','update','then','error','name','map','SalesforceField','rawAttributes','fieldName','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','type','VIRTUAL','options','findAll','catch','params','includeAll','find','create','body','fast-json-patch','request-promise','moment','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','limit','count'];(function(_0x4a17a7,_0x2e9f7e){var _0x21e487=function(_0x2cea61){while(--_0x2cea61){_0x4a17a7['push'](_0x4a17a7['shift']());}};_0x21e487(++_0x2e9f7e);}(_0x1ab8,0x136));var _0x81ab=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x1ab8[_0x14add3];return _0x4a174f;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x81ab('0x0'));var rp=require(_0x81ab('0x1'));var moment=require(_0x81ab('0x2'));var BPromise=require('bluebird');var Mustache=require(_0x81ab('0x3'));var util=require(_0x81ab('0x4'));var path=require('path');var sox=require(_0x81ab('0x5'));var csv=require(_0x81ab('0x6'));var ejs=require(_0x81ab('0x7'));var fs=require('fs');var fs_extra=require(_0x81ab('0x8'));var _=require(_0x81ab('0x9'));var squel=require(_0x81ab('0xa'));var crypto=require('crypto');var jsforce=require(_0x81ab('0xb'));var deskjs=require(_0x81ab('0xc'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x81ab('0xd'));var Redis=require('ioredis');var authService=require(_0x81ab('0xe'));var qs=require('../../components/parsers/qs');var as=require(_0x81ab('0xf'));var hardwareService=require(_0x81ab('0x10'));var logger=require(_0x81ab('0x11'))(_0x81ab('0x12'));var utils=require(_0x81ab('0x13'));var config=require(_0x81ab('0x14'));var licenseUtil=require(_0x81ab('0x15'));var db=require(_0x81ab('0x16'))['db'];function respondWithStatusCode(_0x59ff17,_0x1f03c9){_0x1f03c9=_0x1f03c9||0xcc;return function(_0x2154da){if(_0x2154da){return _0x59ff17[_0x81ab('0x17')](_0x1f03c9);}return _0x59ff17[_0x81ab('0x18')](_0x1f03c9)[_0x81ab('0x19')]();};}function respondWithResult(_0xe0e4d,_0x5ccffa){_0x5ccffa=_0x5ccffa||0xc8;return function(_0x22616f){if(_0x22616f){return _0xe0e4d[_0x81ab('0x18')](_0x5ccffa)[_0x81ab('0x1a')](_0x22616f);}};}function respondWithFilteredResult(_0x1188d4,_0x4106fc){return function(_0x4e7489){if(_0x4e7489){var _0x2628fe=typeof _0x4106fc[_0x81ab('0x1b')]==='undefined'&&typeof _0x4106fc[_0x81ab('0x1c')]==='undefined';var _0x4250be=_0x4e7489[_0x81ab('0x1d')];var _0x2d2223=_0x2628fe?0x0:_0x4106fc[_0x81ab('0x1b')];var _0x4b37ac=_0x2628fe?_0x4e7489[_0x81ab('0x1d')]:_0x4106fc[_0x81ab('0x1b')]+_0x4106fc[_0x81ab('0x1c')];var _0x5df75d;if(_0x4b37ac>=_0x4250be){_0x4b37ac=_0x4250be;_0x5df75d=0xc8;}else{_0x5df75d=0xce;}_0x1188d4['status'](_0x5df75d);return _0x1188d4[_0x81ab('0x1e')](_0x81ab('0x1f'),_0x2d2223+'-'+_0x4b37ac+'/'+_0x4250be)[_0x81ab('0x1a')](_0x4e7489);}return null;};}function patchUpdates(_0x524d59){return function(_0xc61b6b){try{jsonpatch[_0x81ab('0x20')](_0xc61b6b,_0x524d59,!![]);}catch(_0x5d797f){return BPromise[_0x81ab('0x21')](_0x5d797f);}return _0xc61b6b['save']();};}function saveUpdates(_0x37f51b,_0x26c519){return function(_0x52159c){if(_0x52159c){return _0x52159c[_0x81ab('0x22')](_0x37f51b)[_0x81ab('0x23')](function(_0xe97de5){return _0xe97de5;});}return null;};}function removeEntity(_0x1113d7,_0x3d0186){return function(_0x50b396){if(_0x50b396){return _0x50b396['destroy']()[_0x81ab('0x23')](function(){_0x1113d7[_0x81ab('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0x13c049,_0x15135d){return function(_0x2e28e6){if(!_0x2e28e6){_0x13c049[_0x81ab('0x17')](0x194);}return _0x2e28e6;};}function handleError(_0x10b497,_0x32f669){_0x32f669=_0x32f669||0x1f4;return function(_0x4b3866){logger[_0x81ab('0x24')](_0x4b3866['stack']);if(_0x4b3866['name']){delete _0x4b3866[_0x81ab('0x25')];}_0x10b497[_0x81ab('0x18')](_0x32f669)['send'](_0x4b3866);};}exports['index']=function(_0x1dedf4,_0x38ad72){var _0x19ea49={},_0x5f27c0={},_0x370438={'count':0x0,'rows':[]};var _0x1cab42=_[_0x81ab('0x26')](db[_0x81ab('0x27')][_0x81ab('0x28')],function(_0x2a159c){return{'name':_0x2a159c[_0x81ab('0x29')],'type':_0x2a159c['type'][_0x81ab('0x2a')]};});_0x5f27c0[_0x81ab('0x2b')]=_[_0x81ab('0x26')](_0x1cab42,_0x81ab('0x25'));_0x5f27c0[_0x81ab('0x2c')]=_[_0x81ab('0x2d')](_0x1dedf4[_0x81ab('0x2c')]);_0x5f27c0[_0x81ab('0x2e')]=_[_0x81ab('0x2f')](_0x5f27c0['model'],_0x5f27c0[_0x81ab('0x2c')]);_0x19ea49[_0x81ab('0x30')]=_['intersection'](_0x5f27c0[_0x81ab('0x2b')],qs['fields'](_0x1dedf4[_0x81ab('0x2c')][_0x81ab('0x31')]));_0x19ea49[_0x81ab('0x30')]=_0x19ea49[_0x81ab('0x30')][_0x81ab('0x32')]?_0x19ea49['attributes']:_0x5f27c0[_0x81ab('0x2b')];if(!_0x1dedf4[_0x81ab('0x2c')][_0x81ab('0x33')]('nolimit')){_0x19ea49[_0x81ab('0x1c')]=qs[_0x81ab('0x1c')](_0x1dedf4['query']['limit']);_0x19ea49[_0x81ab('0x1b')]=qs['offset'](_0x1dedf4[_0x81ab('0x2c')][_0x81ab('0x1b')]);}_0x19ea49[_0x81ab('0x34')]=qs[_0x81ab('0x35')](_0x1dedf4['query']['sort']);_0x19ea49[_0x81ab('0x36')]=qs[_0x81ab('0x2e')](_[_0x81ab('0x37')](_0x1dedf4['query'],_0x5f27c0[_0x81ab('0x2e')]),_0x1cab42);if(_0x1dedf4[_0x81ab('0x2c')][_0x81ab('0x38')]){_0x19ea49[_0x81ab('0x36')]=_[_0x81ab('0x39')](_0x19ea49[_0x81ab('0x36')],{'$or':_[_0x81ab('0x26')](_0x1cab42,function(_0x4b19df){if(_0x4b19df[_0x81ab('0x3a')]!==_0x81ab('0x3b')){var _0x2427f6={};_0x2427f6[_0x4b19df[_0x81ab('0x25')]]={'$like':'%'+_0x1dedf4['query'][_0x81ab('0x38')]+'%'};return _0x2427f6;}})});}_0x19ea49=_[_0x81ab('0x39')]({},_0x19ea49,_0x1dedf4[_0x81ab('0x3c')]);var _0x2f56a3={'where':_0x19ea49[_0x81ab('0x36')]};return db['SalesforceField'][_0x81ab('0x1d')](_0x2f56a3)[_0x81ab('0x23')](function(_0xe82be5){_0x370438['count']=_0xe82be5;if(_0x1dedf4[_0x81ab('0x2c')]['includeAll']){_0x19ea49['include']=[{'all':!![]}];}return db[_0x81ab('0x27')][_0x81ab('0x3d')](_0x19ea49);})[_0x81ab('0x23')](function(_0x82c292){_0x370438['rows']=_0x82c292;return _0x370438;})[_0x81ab('0x23')](respondWithFilteredResult(_0x38ad72,_0x19ea49))[_0x81ab('0x3e')](handleError(_0x38ad72,null));};exports['show']=function(_0xcc582b,_0x4aed40){var _0x2f7417={'raw':!![],'where':{'id':_0xcc582b[_0x81ab('0x3f')]['id']}},_0x5677b9={};_0x5677b9[_0x81ab('0x2b')]=_[_0x81ab('0x2d')](db['SalesforceField'][_0x81ab('0x28')]);_0x5677b9['query']=_['keys'](_0xcc582b[_0x81ab('0x2c')]);_0x5677b9[_0x81ab('0x2e')]=_[_0x81ab('0x2f')](_0x5677b9[_0x81ab('0x2b')],_0x5677b9[_0x81ab('0x2c')]);_0x2f7417[_0x81ab('0x30')]=_[_0x81ab('0x2f')](_0x5677b9[_0x81ab('0x2b')],qs[_0x81ab('0x31')](_0xcc582b[_0x81ab('0x2c')][_0x81ab('0x31')]));_0x2f7417[_0x81ab('0x30')]=_0x2f7417['attributes'][_0x81ab('0x32')]?_0x2f7417[_0x81ab('0x30')]:_0x5677b9[_0x81ab('0x2b')];if(_0xcc582b[_0x81ab('0x2c')][_0x81ab('0x40')]){_0x2f7417['include']=[{'all':!![]}];}_0x2f7417=_[_0x81ab('0x39')]({},_0x2f7417,_0xcc582b[_0x81ab('0x3c')]);return db[_0x81ab('0x27')][_0x81ab('0x41')](_0x2f7417)['then'](handleEntityNotFound(_0x4aed40,null))[_0x81ab('0x23')](respondWithResult(_0x4aed40,null))[_0x81ab('0x3e')](handleError(_0x4aed40,null));};exports[_0x81ab('0x42')]=function(_0x48c45e,_0x14b914){return db[_0x81ab('0x27')][_0x81ab('0x42')](_0x48c45e['body'],{})[_0x81ab('0x23')](respondWithResult(_0x14b914,0xc9))[_0x81ab('0x3e')](handleError(_0x14b914,null));};exports[_0x81ab('0x22')]=function(_0x2ebee9,_0xe89e39){if(_0x2ebee9[_0x81ab('0x43')]['id']){delete _0x2ebee9[_0x81ab('0x43')]['id'];}return db[_0x81ab('0x27')][_0x81ab('0x41')]({'where':{'id':_0x2ebee9[_0x81ab('0x3f')]['id']}})[_0x81ab('0x23')](handleEntityNotFound(_0xe89e39,null))[_0x81ab('0x23')](saveUpdates(_0x2ebee9[_0x81ab('0x43')],null))[_0x81ab('0x23')](respondWithResult(_0xe89e39,null))['catch'](handleError(_0xe89e39,null));};exports['destroy']=function(_0x390d8d,_0x182438){return db['SalesforceField']['find']({'where':{'id':_0x390d8d[_0x81ab('0x3f')]['id']}})[_0x81ab('0x23')](handleEntityNotFound(_0x182438,null))['then'](removeEntity(_0x182438,null))[_0x81ab('0x3e')](handleError(_0x182438,null));};
\ No newline at end of file
+var _0xbace=['moment','bluebird','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','limit','undefined','count','set','Content-Range','apply','reject','save','update','then','error','stack','name','send','index','map','SalesforceField','rawAttributes','fieldName','type','query','keys','filters','intersection','attributes','model','nolimit','sort','filter','merge','where','VIRTUAL','options','rows','show','fields','find','catch','create','body','params','fast-json-patch'];(function(_0x1c7137,_0x4c7c26){var _0xeb4432=function(_0x26d850){while(--_0x26d850){_0x1c7137['push'](_0x1c7137['shift']());}};_0xeb4432(++_0x4c7c26);}(_0xbace,0x1cd));var _0xebac=function(_0x2064e5,_0x4f6fa2){_0x2064e5=_0x2064e5-0x0;var _0x21a233=_0xbace[_0x2064e5];return _0x21a233;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xebac('0x0'));var rp=require('request-promise');var moment=require(_0xebac('0x1'));var BPromise=require(_0xebac('0x2'));var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require(_0xebac('0x3'));var csv=require(_0xebac('0x4'));var ejs=require(_0xebac('0x5'));var fs=require('fs');var fs_extra=require(_0xebac('0x6'));var _=require(_0xebac('0x7'));var squel=require(_0xebac('0x8'));var crypto=require('crypto');var jsforce=require(_0xebac('0x9'));var deskjs=require('desk.js');var toCsv=require(_0xebac('0x4'));var querystring=require(_0xebac('0xa'));var Papa=require(_0xebac('0xb'));var Redis=require(_0xebac('0xc'));var authService=require(_0xebac('0xd'));var qs=require(_0xebac('0xe'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xebac('0xf'));var logger=require(_0xebac('0x10'))(_0xebac('0x11'));var utils=require(_0xebac('0x12'));var config=require('../../config/environment');var licenseUtil=require(_0xebac('0x13'));var db=require(_0xebac('0x14'))['db'];function respondWithStatusCode(_0xfd3720,_0x15de55){_0x15de55=_0x15de55||0xcc;return function(_0x361be1){if(_0x361be1){return _0xfd3720[_0xebac('0x15')](_0x15de55);}return _0xfd3720[_0xebac('0x16')](_0x15de55)[_0xebac('0x17')]();};}function respondWithResult(_0x20bf7d,_0x2d0734){_0x2d0734=_0x2d0734||0xc8;return function(_0x2061fa){if(_0x2061fa){return _0x20bf7d[_0xebac('0x16')](_0x2d0734)['json'](_0x2061fa);}};}function respondWithFilteredResult(_0x4e39d7,_0x5d4351){return function(_0x521d6b){if(_0x521d6b){var _0x44936b=typeof _0x5d4351[_0xebac('0x18')]==='undefined'&&typeof _0x5d4351[_0xebac('0x19')]===_0xebac('0x1a');var _0x6beaac=_0x521d6b[_0xebac('0x1b')];var _0x558b75=_0x44936b?0x0:_0x5d4351[_0xebac('0x18')];var _0x1a6b76=_0x44936b?_0x521d6b['count']:_0x5d4351[_0xebac('0x18')]+_0x5d4351[_0xebac('0x19')];var _0x94c61c;if(_0x1a6b76>=_0x6beaac){_0x1a6b76=_0x6beaac;_0x94c61c=0xc8;}else{_0x94c61c=0xce;}_0x4e39d7['status'](_0x94c61c);return _0x4e39d7[_0xebac('0x1c')](_0xebac('0x1d'),_0x558b75+'-'+_0x1a6b76+'/'+_0x6beaac)['json'](_0x521d6b);}return null;};}function patchUpdates(_0x2bf71b){return function(_0x55f425){try{jsonpatch[_0xebac('0x1e')](_0x55f425,_0x2bf71b,!![]);}catch(_0x388717){return BPromise[_0xebac('0x1f')](_0x388717);}return _0x55f425[_0xebac('0x20')]();};}function saveUpdates(_0x5599eb,_0x25bad6){return function(_0x4278ca){if(_0x4278ca){return _0x4278ca[_0xebac('0x21')](_0x5599eb)[_0xebac('0x22')](function(_0x5ed407){return _0x5ed407;});}return null;};}function removeEntity(_0x5843cb,_0x436a4b){return function(_0x54a412){if(_0x54a412){return _0x54a412['destroy']()['then'](function(){_0x5843cb['status'](0xcc)[_0xebac('0x17')]();});}};}function handleEntityNotFound(_0x59b7d2,_0x4647dc){return function(_0x366035){if(!_0x366035){_0x59b7d2[_0xebac('0x15')](0x194);}return _0x366035;};}function handleError(_0x2f7af2,_0x396e34){_0x396e34=_0x396e34||0x1f4;return function(_0x27d73f){logger[_0xebac('0x23')](_0x27d73f[_0xebac('0x24')]);if(_0x27d73f[_0xebac('0x25')]){delete _0x27d73f[_0xebac('0x25')];}_0x2f7af2['status'](_0x396e34)[_0xebac('0x26')](_0x27d73f);};}exports[_0xebac('0x27')]=function(_0x2318d1,_0x43fa7c){var _0x389545={},_0x5ad41c={},_0x26e825={'count':0x0,'rows':[]};var _0x35f41c=_[_0xebac('0x28')](db[_0xebac('0x29')][_0xebac('0x2a')],function(_0x37602b){return{'name':_0x37602b[_0xebac('0x2b')],'type':_0x37602b[_0xebac('0x2c')]['key']};});_0x5ad41c['model']=_[_0xebac('0x28')](_0x35f41c,_0xebac('0x25'));_0x5ad41c[_0xebac('0x2d')]=_[_0xebac('0x2e')](_0x2318d1['query']);_0x5ad41c[_0xebac('0x2f')]=_[_0xebac('0x30')](_0x5ad41c['model'],_0x5ad41c[_0xebac('0x2d')]);_0x389545[_0xebac('0x31')]=_[_0xebac('0x30')](_0x5ad41c[_0xebac('0x32')],qs['fields'](_0x2318d1[_0xebac('0x2d')]['fields']));_0x389545[_0xebac('0x31')]=_0x389545[_0xebac('0x31')]['length']?_0x389545[_0xebac('0x31')]:_0x5ad41c[_0xebac('0x32')];if(!_0x2318d1[_0xebac('0x2d')]['hasOwnProperty'](_0xebac('0x33'))){_0x389545[_0xebac('0x19')]=qs[_0xebac('0x19')](_0x2318d1[_0xebac('0x2d')][_0xebac('0x19')]);_0x389545[_0xebac('0x18')]=qs['offset'](_0x2318d1[_0xebac('0x2d')]['offset']);}_0x389545['order']=qs[_0xebac('0x34')](_0x2318d1[_0xebac('0x2d')][_0xebac('0x34')]);_0x389545['where']=qs[_0xebac('0x2f')](_['pick'](_0x2318d1[_0xebac('0x2d')],_0x5ad41c[_0xebac('0x2f')]),_0x35f41c);if(_0x2318d1[_0xebac('0x2d')][_0xebac('0x35')]){_0x389545['where']=_[_0xebac('0x36')](_0x389545[_0xebac('0x37')],{'$or':_['map'](_0x35f41c,function(_0x4c1bd5){if(_0x4c1bd5['type']!==_0xebac('0x38')){var _0x2a75aa={};_0x2a75aa[_0x4c1bd5[_0xebac('0x25')]]={'$like':'%'+_0x2318d1[_0xebac('0x2d')][_0xebac('0x35')]+'%'};return _0x2a75aa;}})});}_0x389545=_[_0xebac('0x36')]({},_0x389545,_0x2318d1[_0xebac('0x39')]);var _0x234bbc={'where':_0x389545[_0xebac('0x37')]};return db['SalesforceField'][_0xebac('0x1b')](_0x234bbc)[_0xebac('0x22')](function(_0x410a45){_0x26e825['count']=_0x410a45;if(_0x2318d1[_0xebac('0x2d')]['includeAll']){_0x389545['include']=[{'all':!![]}];}return db[_0xebac('0x29')]['findAll'](_0x389545);})['then'](function(_0x5aaf3d){_0x26e825[_0xebac('0x3a')]=_0x5aaf3d;return _0x26e825;})[_0xebac('0x22')](respondWithFilteredResult(_0x43fa7c,_0x389545))['catch'](handleError(_0x43fa7c,null));};exports[_0xebac('0x3b')]=function(_0x5c6c14,_0x3715a3){var _0x1448ec={'raw':!![],'where':{'id':_0x5c6c14['params']['id']}},_0xe02ef3={};_0xe02ef3[_0xebac('0x32')]=_[_0xebac('0x2e')](db['SalesforceField'][_0xebac('0x2a')]);_0xe02ef3['query']=_['keys'](_0x5c6c14['query']);_0xe02ef3[_0xebac('0x2f')]=_[_0xebac('0x30')](_0xe02ef3[_0xebac('0x32')],_0xe02ef3[_0xebac('0x2d')]);_0x1448ec['attributes']=_[_0xebac('0x30')](_0xe02ef3[_0xebac('0x32')],qs[_0xebac('0x3c')](_0x5c6c14['query'][_0xebac('0x3c')]));_0x1448ec[_0xebac('0x31')]=_0x1448ec[_0xebac('0x31')]['length']?_0x1448ec[_0xebac('0x31')]:_0xe02ef3['model'];if(_0x5c6c14[_0xebac('0x2d')]['includeAll']){_0x1448ec['include']=[{'all':!![]}];}_0x1448ec=_[_0xebac('0x36')]({},_0x1448ec,_0x5c6c14['options']);return db['SalesforceField'][_0xebac('0x3d')](_0x1448ec)[_0xebac('0x22')](handleEntityNotFound(_0x3715a3,null))[_0xebac('0x22')](respondWithResult(_0x3715a3,null))[_0xebac('0x3e')](handleError(_0x3715a3,null));};exports[_0xebac('0x3f')]=function(_0x53cabc,_0x3941da){return db[_0xebac('0x29')]['create'](_0x53cabc[_0xebac('0x40')],{})[_0xebac('0x22')](respondWithResult(_0x3941da,0xc9))[_0xebac('0x3e')](handleError(_0x3941da,null));};exports['update']=function(_0x43f1b8,_0x1cc444){if(_0x43f1b8['body']['id']){delete _0x43f1b8['body']['id'];}return db[_0xebac('0x29')]['find']({'where':{'id':_0x43f1b8[_0xebac('0x41')]['id']}})[_0xebac('0x22')](handleEntityNotFound(_0x1cc444,null))[_0xebac('0x22')](saveUpdates(_0x43f1b8[_0xebac('0x40')],null))[_0xebac('0x22')](respondWithResult(_0x1cc444,null))['catch'](handleError(_0x1cc444,null));};exports['destroy']=function(_0x4faf95,_0x214177){return db[_0xebac('0x29')][_0xebac('0x3d')]({'where':{'id':_0x4faf95[_0xebac('0x41')]['id']}})[_0xebac('0x22')](handleEntityNotFound(_0x214177,null))[_0xebac('0x22')](removeEntity(_0x214177,null))[_0xebac('0x3e')](handleError(_0x214177,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdb96=['util','moment','bluebird','rimraf','../../config/environment','define','SalesforceField','salesforce_unique_index','lodash'];(function(_0x138adb,_0x193fee){var _0x1b27f2=function(_0x5e97a2){while(--_0x5e97a2){_0x138adb['push'](_0x138adb['shift']());}};_0x1b27f2(++_0x193fee);}(_0xdb96,0x11f));var _0x6db9=function(_0xb1c88a,_0x1b0b80){_0xb1c88a=_0xb1c88a-0x0;var _0x1ea710=_0xdb96[_0xb1c88a];return _0x1ea710;};'use strict';var _=require(_0x6db9('0x0'));var util=require(_0x6db9('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x6db9('0x2'));var BPromise=require(_0x6db9('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0x6db9('0x4'));var config=require(_0x6db9('0x5'));var attributes=require('./intSalesforceField.attributes');module['exports']=function(_0xf65b52,_0x45bf76){return _0xf65b52[_0x6db9('0x6')](_0x6db9('0x7'),attributes,{'tableName':'int_salesforce_fields','paranoid':![],'indexes':[{'name':_0x6db9('0x8'),'fields':['idField','FieldId'],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xdf7e=['path','rimraf','./intSalesforceField.attributes','define','SalesforceField','int_salesforce_fields','salesforce_unique_index','idField','FieldId','../../config/logger','moment','bluebird'];(function(_0x5eebac,_0x31a380){var _0x1418ff=function(_0x1dc5cf){while(--_0x1dc5cf){_0x5eebac['push'](_0x5eebac['shift']());}};_0x1418ff(++_0x31a380);}(_0xdf7e,0x11d));var _0xedf7=function(_0x3bd601,_0xa66b6e){_0x3bd601=_0x3bd601-0x0;var _0x4fa7fd=_0xdf7e[_0x3bd601];return _0x4fa7fd;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0xedf7('0x0'))('api');var moment=require(_0xedf7('0x1'));var BPromise=require(_0xedf7('0x2'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xedf7('0x3'));var rimraf=require(_0xedf7('0x4'));var config=require('../../config/environment');var attributes=require(_0xedf7('0x5'));module['exports']=function(_0x147bf1,_0x4c2142){return _0x147bf1[_0xedf7('0x6')](_0xedf7('0x7'),attributes,{'tableName':_0xedf7('0x8'),'paranoid':![],'indexes':[{'name':_0xedf7('0x9'),'fields':[_0xedf7('0xa'),_0xedf7('0xb')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbfcd=['../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','request','then','SalesforceField,\x20%s,\x20%s','debug','request\x20sent','stringify','error','code','message','info','catch','lodash','moment','bluebird'];(function(_0x336264,_0x32e1d9){var _0x53cf91=function(_0x21026c){while(--_0x21026c){_0x336264['push'](_0x336264['shift']());}};_0x53cf91(++_0x32e1d9);}(_0xbfcd,0xed));var _0xdbfc=function(_0x7a7cf4,_0x5be38a){_0x7a7cf4=_0x7a7cf4-0x0;var _0x5ae530=_0xbfcd[_0x7a7cf4];return _0x5ae530;};'use strict';var _=require(_0xdbfc('0x0'));var util=require('util');var moment=require(_0xdbfc('0x1'));var BPromise=require(_0xdbfc('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0xdbfc('0x3'))['db'];var utils=require(_0xdbfc('0x4'));var logger=require(_0xdbfc('0x5'))('rpc');var config=require(_0xdbfc('0x6'));var jayson=require(_0xdbfc('0x7'));var client=jayson[_0xdbfc('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x44f85b,_0x21007c,_0x1a1e56){return new BPromise(function(_0xb1ffba,_0x232ab1){return client[_0xdbfc('0x9')](_0x44f85b,_0x1a1e56)[_0xdbfc('0xa')](function(_0x2f9d11){logger['info'](_0xdbfc('0xb'),_0x21007c,'request\x20sent');logger[_0xdbfc('0xc')]('SalesforceField,\x20%s,\x20%s,\x20%s',_0x21007c,_0xdbfc('0xd'),JSON[_0xdbfc('0xe')](_0x2f9d11));if(_0x2f9d11[_0xdbfc('0xf')]){if(_0x2f9d11[_0xdbfc('0xf')][_0xdbfc('0x10')]===0x1f4){logger[_0xdbfc('0xf')]('SalesforceField,\x20%s,\x20%s',_0x21007c,_0x2f9d11[_0xdbfc('0xf')][_0xdbfc('0x11')]);return _0x232ab1(_0x2f9d11['error'][_0xdbfc('0x11')]);}logger[_0xdbfc('0xf')](_0xdbfc('0xb'),_0x21007c,_0x2f9d11[_0xdbfc('0xf')][_0xdbfc('0x11')]);return _0xb1ffba(_0x2f9d11['error'][_0xdbfc('0x11')]);}else{logger[_0xdbfc('0x12')](_0xdbfc('0xb'),_0x21007c,_0xdbfc('0xd'));_0xb1ffba(_0x2f9d11['result'][_0xdbfc('0x11')]);}})[_0xdbfc('0x13')](function(_0x11c1d9){logger[_0xdbfc('0xf')](_0xdbfc('0xb'),_0x21007c,_0x11c1d9);_0x232ab1(_0x11c1d9);});});}
\ No newline at end of file
+var _0x839a=['error','message','info','result','catch','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','client','request','then','SalesforceField,\x20%s,\x20%s','request\x20sent'];(function(_0x2431d6,_0x25189a){var _0x4d0f9b=function(_0x52cd84){while(--_0x52cd84){_0x2431d6['push'](_0x2431d6['shift']());}};_0x4d0f9b(++_0x25189a);}(_0x839a,0x8a));var _0xa839=function(_0x126558,_0x143c9a){_0x126558=_0x126558-0x0;var _0x1f6d14=_0x839a[_0x126558];return _0x1f6d14;};'use strict';var _=require(_0xa839('0x0'));var util=require('util');var moment=require(_0xa839('0x1'));var BPromise=require(_0xa839('0x2'));var rs=require(_0xa839('0x3'));var fs=require('fs');var Redis=require(_0xa839('0x4'));var db=require(_0xa839('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0xa839('0x6'))(_0xa839('0x7'));var config=require(_0xa839('0x8'));var jayson=require('jayson/promise');var client=jayson[_0xa839('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x4976e5,_0x2de2b6,_0x49edb){return new BPromise(function(_0x482cc2,_0xbf3403){return client[_0xa839('0xa')](_0x4976e5,_0x49edb)[_0xa839('0xb')](function(_0x7b2bda){logger['info'](_0xa839('0xc'),_0x2de2b6,_0xa839('0xd'));logger['debug']('SalesforceField,\x20%s,\x20%s,\x20%s',_0x2de2b6,_0xa839('0xd'),JSON['stringify'](_0x7b2bda));if(_0x7b2bda[_0xa839('0xe')]){if(_0x7b2bda[_0xa839('0xe')]['code']===0x1f4){logger[_0xa839('0xe')](_0xa839('0xc'),_0x2de2b6,_0x7b2bda['error']['message']);return _0xbf3403(_0x7b2bda[_0xa839('0xe')][_0xa839('0xf')]);}logger[_0xa839('0xe')](_0xa839('0xc'),_0x2de2b6,_0x7b2bda[_0xa839('0xe')]['message']);return _0x482cc2(_0x7b2bda[_0xa839('0xe')][_0xa839('0xf')]);}else{logger[_0xa839('0x10')](_0xa839('0xc'),_0x2de2b6,_0xa839('0xd'));_0x482cc2(_0x7b2bda[_0xa839('0x11')][_0xa839('0xf')]);}})[_0xa839('0x12')](function(_0xe205ab){logger[_0xa839('0xe')]('SalesforceField,\x20%s,\x20%s',_0x2de2b6,_0xe205ab);_0xbf3403(_0xe205ab);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe130=['getFields','create','post','put','update','delete','/:id','destroy','exports','multer','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','./intServicenowAccount.controller','get','isAuthenticated','/:id/configurations','/:id/fields'];(function(_0x5b3afa,_0x49e8c7){var _0x32f415=function(_0x21588a){while(--_0x21588a){_0x5b3afa['push'](_0x5b3afa['shift']());}};_0x32f415(++_0x49e8c7);}(_0xe130,0x127));var _0x0e13=function(_0x4c1043,_0x132ca4){_0x4c1043=_0x4c1043-0x0;var _0x3b48ba=_0xe130[_0x4c1043];return _0x3b48ba;};'use strict';var multer=require(_0x0e13('0x0'));var util=require(_0x0e13('0x1'));var path=require('path');var timeout=require(_0x0e13('0x2'));var express=require(_0x0e13('0x3'));var router=express[_0x0e13('0x4')]();var fs_extra=require(_0x0e13('0x5'));var auth=require(_0x0e13('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0x0e13('0x7'));var controller=require(_0x0e13('0x8'));router[_0x0e13('0x9')]('/',auth[_0x0e13('0xa')](),controller['index']);router[_0x0e13('0x9')]('/:id',auth['isAuthenticated'](),controller['show']);router[_0x0e13('0x9')](_0x0e13('0xb'),auth['isAuthenticated'](),controller['getConfigurations']);router[_0x0e13('0x9')](_0x0e13('0xc'),auth[_0x0e13('0xa')](),controller[_0x0e13('0xd')]);router['post']('/',auth['isAuthenticated'](),controller[_0x0e13('0xe')]);router[_0x0e13('0xf')](_0x0e13('0xb'),auth[_0x0e13('0xa')](),controller['addConfiguration']);router[_0x0e13('0x10')]('/:id',auth[_0x0e13('0xa')](),controller[_0x0e13('0x11')]);router[_0x0e13('0x12')](_0x0e13('0x13'),auth[_0x0e13('0xa')](),controller[_0x0e13('0x14')]);module[_0x0e13('0x15')]=router;
\ No newline at end of file
+var _0x9df6=['express','fs-extra','../../components/auth/service','../../components/interaction/service','./intServicenowAccount.controller','isAuthenticated','index','get','/:id','show','getConfigurations','getFields','/:id/configurations','addConfiguration','put','delete','destroy','exports','multer','util','path','connect-timeout'];(function(_0x59ee6f,_0x450239){var _0x4c0979=function(_0x565e92){while(--_0x565e92){_0x59ee6f['push'](_0x59ee6f['shift']());}};_0x4c0979(++_0x450239);}(_0x9df6,0x1ca));var _0x69df=function(_0x4c7fb5,_0x2548ef){_0x4c7fb5=_0x4c7fb5-0x0;var _0x2e10ac=_0x9df6[_0x4c7fb5];return _0x2e10ac;};'use strict';var multer=require(_0x69df('0x0'));var util=require(_0x69df('0x1'));var path=require(_0x69df('0x2'));var timeout=require(_0x69df('0x3'));var express=require(_0x69df('0x4'));var router=express['Router']();var fs_extra=require(_0x69df('0x5'));var auth=require(_0x69df('0x6'));var interaction=require(_0x69df('0x7'));var config=require('../../config/environment');var controller=require(_0x69df('0x8'));router['get']('/',auth[_0x69df('0x9')](),controller[_0x69df('0xa')]);router[_0x69df('0xb')](_0x69df('0xc'),auth[_0x69df('0x9')](),controller[_0x69df('0xd')]);router['get']('/:id/configurations',auth[_0x69df('0x9')](),controller[_0x69df('0xe')]);router[_0x69df('0xb')]('/:id/fields',auth[_0x69df('0x9')](),controller[_0x69df('0xf')]);router['post']('/',auth['isAuthenticated'](),controller['create']);router['post'](_0x69df('0x10'),auth[_0x69df('0x9')](),controller[_0x69df('0x11')]);router[_0x69df('0x12')](_0x69df('0xc'),auth[_0x69df('0x9')](),controller['update']);router[_0x69df('0x13')]('/:id',auth[_0x69df('0x9')](),controller[_0x69df('0x14')]);module[_0x69df('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb71b=['sequelize','exports','STRING','username'];(function(_0x1fcf30,_0x221e1b){var _0x3c7c3d=function(_0x2bcc14){while(--_0x2bcc14){_0x1fcf30['push'](_0x1fcf30['shift']());}};_0x3c7c3d(++_0x221e1b);}(_0xb71b,0xd4));var _0xbb71=function(_0x4e38a3,_0x5868b0){_0x4e38a3=_0x4e38a3-0x0;var _0x17b139=_0xb71b[_0x4e38a3];return _0x17b139;};'use strict';var Sequelize=require(_0xbb71('0x0'));module[_0xbb71('0x1')]={'name':{'type':Sequelize[_0xbb71('0x2')]},'description':{'type':Sequelize[_0xbb71('0x2')]},'username':{'type':Sequelize[_0xbb71('0x2')],'unique':_0xbb71('0x3')},'password':{'type':Sequelize[_0xbb71('0x2')]},'email':{'type':Sequelize[_0xbb71('0x2')]},'remoteUri':{'type':Sequelize['STRING'],'unique':'remoteUri'},'serverUrl':{'type':Sequelize[_0xbb71('0x2')],'allowNull':![]}};
\ No newline at end of file
+var _0x5390=['remoteUri','sequelize','STRING'];(function(_0x525c7b,_0x488fcc){var _0x27b33e=function(_0x56d43b){while(--_0x56d43b){_0x525c7b['push'](_0x525c7b['shift']());}};_0x27b33e(++_0x488fcc);}(_0x5390,0x19f));var _0x0539=function(_0x14d65f,_0x51c179){_0x14d65f=_0x14d65f-0x0;var _0x496f1b=_0x5390[_0x14d65f];return _0x496f1b;};'use strict';var Sequelize=require(_0x0539('0x0'));module['exports']={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize['STRING']},'username':{'type':Sequelize[_0x0539('0x1')],'unique':'username'},'password':{'type':Sequelize['STRING']},'email':{'type':Sequelize['STRING']},'remoteUri':{'type':Sequelize[_0x0539('0x1')],'unique':_0x0539('0x2')},'serverUrl':{'type':Sequelize['STRING'],'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9d0e=['save','update','destroy','then','stack','name','index','map','fieldName','type','key','model','query','keys','filters','intersection','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','merge','options','ServicenowAccount','include','rows','catch','show','params','rawAttributes','fields','includeAll','find','create','body','getConfigurations','findOne','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','ServicenowField','made_sla','hold_reason','knowledge','subcategory','close_code','notify','incident_state','severity','category','parent','caused_by','watch_list','sys_updated_on','approval_history','number','opened_by','user_input','sys_created_on','sys_domain','state','sys_created_by','calendar_stc','closed_at','cmdb_ci','impact','active','work_notes_list','sys_domain_path','rfc','time_worked','expected_start','opened_at','group_list','reopened_time','resolved_at','caller_id','short_description','assignment_group','business_stc','additional_assignee_list','description','calendar_duration','sys_class_name','close_notes','closed_by','follow_up','parent_incident','sys_id','contact_type','reopened_by','urgency','problem_id','company','reassignment_count','activity_due','assigned_to','comments','sla_due','due_date','reopen_count','escalation','correlation_id','location','username','password','remoteUri','slice','format','%s/api/now/doc/table/schema/','%s/api/now/table/','GET','result','log','incident\x20table\x20objects','assign','remove','includes','internalType','label','push','all','TCL:\x20_object','concat','ServiceNow\x20error:\x20','test','statusCode','error','send','Wrong\x20credentials','boolean','True','true','False','false','sys_choice?sysparm_query=name=incident^element=','forEach','value','eml-format','rimraf','zip-dir','request-promise','moment','mustache','sox','ejs','fs-extra','squel','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','json','offset','limit','undefined','count','apply','reject'];(function(_0x1e06f1,_0x59d7e1){var _0x34f77e=function(_0x4f9f26){while(--_0x4f9f26){_0x1e06f1['push'](_0x1e06f1['shift']());}};_0x34f77e(++_0x59d7e1);}(_0x9d0e,0x147));var _0xe9d0=function(_0x5789cb,_0x34c077){_0x5789cb=_0x5789cb-0x0;var _0x3b0628=_0x9d0e[_0x5789cb];return _0x3b0628;};'use strict';var emlformat=require(_0xe9d0('0x0'));var rimraf=require(_0xe9d0('0x1'));var zipdir=require(_0xe9d0('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xe9d0('0x3'));var moment=require(_0xe9d0('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xe9d0('0x5'));var util=require('util');var path=require('path');var sox=require(_0xe9d0('0x6'));var csv=require('to-csv');var ejs=require(_0xe9d0('0x7'));var fs=require('fs');var fs_extra=require(_0xe9d0('0x8'));var _=require('lodash');var squel=require(_0xe9d0('0x9'));var crypto=require('crypto');var jsforce=require(_0xe9d0('0xa'));var deskjs=require(_0xe9d0('0xb'));var toCsv=require('to-csv');var querystring=require(_0xe9d0('0xc'));var Papa=require('papaparse');var Redis=require(_0xe9d0('0xd'));var authService=require(_0xe9d0('0xe'));var qs=require(_0xe9d0('0xf'));var as=require(_0xe9d0('0x10'));var hardwareService=require(_0xe9d0('0x11'));var logger=require(_0xe9d0('0x12'))(_0xe9d0('0x13'));var utils=require(_0xe9d0('0x14'));var config=require(_0xe9d0('0x15'));var licenseUtil=require(_0xe9d0('0x16'));var db=require(_0xe9d0('0x17'))['db'];var integrations=require(_0xe9d0('0x18'));function respondWithStatusCode(_0x54ef49,_0x4313ba){_0x4313ba=_0x4313ba||0xcc;return function(_0x5b0e1d){if(_0x5b0e1d){return _0x54ef49[_0xe9d0('0x19')](_0x4313ba);}return _0x54ef49[_0xe9d0('0x1a')](_0x4313ba)[_0xe9d0('0x1b')]();};}function respondWithResult(_0x44e771,_0x2aa6b4){_0x2aa6b4=_0x2aa6b4||0xc8;return function(_0x3c3ca1){if(_0x3c3ca1){return _0x44e771[_0xe9d0('0x1a')](_0x2aa6b4)[_0xe9d0('0x1c')](_0x3c3ca1);}};}function respondWithFilteredResult(_0x18036c,_0x4ee3ad){return function(_0x35e33f){if(_0x35e33f){var _0x4c01a2=typeof _0x4ee3ad[_0xe9d0('0x1d')]==='undefined'&&typeof _0x4ee3ad[_0xe9d0('0x1e')]===_0xe9d0('0x1f');var _0x5a12c=_0x35e33f[_0xe9d0('0x20')];var _0x43e81d=_0x4c01a2?0x0:_0x4ee3ad[_0xe9d0('0x1d')];var _0x144e64=_0x4c01a2?_0x35e33f['count']:_0x4ee3ad[_0xe9d0('0x1d')]+_0x4ee3ad['limit'];var _0x35e17a;if(_0x144e64>=_0x5a12c){_0x144e64=_0x5a12c;_0x35e17a=0xc8;}else{_0x35e17a=0xce;}_0x18036c[_0xe9d0('0x1a')](_0x35e17a);return _0x18036c['set']('Content-Range',_0x43e81d+'-'+_0x144e64+'/'+_0x5a12c)[_0xe9d0('0x1c')](_0x35e33f);}return null;};}function patchUpdates(_0x58904a){return function(_0x526b24){try{jsonpatch[_0xe9d0('0x21')](_0x526b24,_0x58904a,!![]);}catch(_0x32ac9d){return BPromise[_0xe9d0('0x22')](_0x32ac9d);}return _0x526b24[_0xe9d0('0x23')]();};}function saveUpdates(_0x416755,_0x1d8bca){return function(_0x37f0a1){if(_0x37f0a1){return _0x37f0a1[_0xe9d0('0x24')](_0x416755)['then'](function(_0x18311c){return _0x18311c;});}return null;};}function removeEntity(_0x23d521,_0x4f9c79){return function(_0x1a46ad){if(_0x1a46ad){return _0x1a46ad[_0xe9d0('0x25')]()[_0xe9d0('0x26')](function(){_0x23d521['status'](0xcc)[_0xe9d0('0x1b')]();});}};}function handleEntityNotFound(_0x95009c,_0x19bed8){return function(_0x22220a){if(!_0x22220a){_0x95009c[_0xe9d0('0x19')](0x194);}return _0x22220a;};}function handleError(_0x1b7f1b,_0x217ada){_0x217ada=_0x217ada||0x1f4;return function(_0x3a1afd){logger['error'](_0x3a1afd[_0xe9d0('0x27')]);if(_0x3a1afd['name']){delete _0x3a1afd[_0xe9d0('0x28')];}_0x1b7f1b[_0xe9d0('0x1a')](_0x217ada)['send'](_0x3a1afd);};}exports[_0xe9d0('0x29')]=function(_0x45fb35,_0x468f4e){var _0x382e86={},_0x241676={},_0x13cbfa={'count':0x0,'rows':[]};var _0x123b35=_[_0xe9d0('0x2a')](db['ServicenowAccount']['rawAttributes'],function(_0x3d7f81){return{'name':_0x3d7f81[_0xe9d0('0x2b')],'type':_0x3d7f81[_0xe9d0('0x2c')][_0xe9d0('0x2d')]};});_0x241676[_0xe9d0('0x2e')]=_[_0xe9d0('0x2a')](_0x123b35,_0xe9d0('0x28'));_0x241676[_0xe9d0('0x2f')]=_[_0xe9d0('0x30')](_0x45fb35[_0xe9d0('0x2f')]);_0x241676[_0xe9d0('0x31')]=_[_0xe9d0('0x32')](_0x241676[_0xe9d0('0x2e')],_0x241676[_0xe9d0('0x2f')]);_0x382e86['attributes']=_[_0xe9d0('0x32')](_0x241676['model'],qs['fields'](_0x45fb35[_0xe9d0('0x2f')]['fields']));_0x382e86[_0xe9d0('0x33')]=_0x382e86['attributes'][_0xe9d0('0x34')]?_0x382e86[_0xe9d0('0x33')]:_0x241676[_0xe9d0('0x2e')];if(!_0x45fb35[_0xe9d0('0x2f')][_0xe9d0('0x35')](_0xe9d0('0x36'))){_0x382e86[_0xe9d0('0x1e')]=qs[_0xe9d0('0x1e')](_0x45fb35[_0xe9d0('0x2f')][_0xe9d0('0x1e')]);_0x382e86[_0xe9d0('0x1d')]=qs[_0xe9d0('0x1d')](_0x45fb35[_0xe9d0('0x2f')][_0xe9d0('0x1d')]);}_0x382e86[_0xe9d0('0x37')]=qs[_0xe9d0('0x38')](_0x45fb35[_0xe9d0('0x2f')]['sort']);_0x382e86[_0xe9d0('0x39')]=qs[_0xe9d0('0x31')](_[_0xe9d0('0x3a')](_0x45fb35[_0xe9d0('0x2f')],_0x241676['filters']),_0x123b35);if(_0x45fb35[_0xe9d0('0x2f')][_0xe9d0('0x3b')]){_0x382e86[_0xe9d0('0x39')]=_['merge'](_0x382e86[_0xe9d0('0x39')],{'$or':_[_0xe9d0('0x2a')](_0x123b35,function(_0x5299c7){if(_0x5299c7[_0xe9d0('0x2c')]!==_0xe9d0('0x3c')){var _0x4fe3c3={};_0x4fe3c3[_0x5299c7[_0xe9d0('0x28')]]={'$like':'%'+_0x45fb35[_0xe9d0('0x2f')]['filter']+'%'};return _0x4fe3c3;}})});}_0x382e86=_[_0xe9d0('0x3d')]({},_0x382e86,_0x45fb35[_0xe9d0('0x3e')]);var _0x83bec0={'where':_0x382e86[_0xe9d0('0x39')]};return db[_0xe9d0('0x3f')]['count'](_0x83bec0)[_0xe9d0('0x26')](function(_0x22a57){_0x13cbfa[_0xe9d0('0x20')]=_0x22a57;if(_0x45fb35[_0xe9d0('0x2f')]['includeAll']){_0x382e86[_0xe9d0('0x40')]=[{'all':!![]}];}return db[_0xe9d0('0x3f')]['findAll'](_0x382e86);})[_0xe9d0('0x26')](function(_0x53b182){_0x13cbfa[_0xe9d0('0x41')]=_0x53b182;return _0x13cbfa;})['then'](respondWithFilteredResult(_0x468f4e,_0x382e86))[_0xe9d0('0x42')](handleError(_0x468f4e,null));};exports[_0xe9d0('0x43')]=function(_0x353525,_0x262b3f){var _0x41ed06={'raw':![],'where':{'id':_0x353525[_0xe9d0('0x44')]['id']}},_0x321556={};_0x321556['model']=_['keys'](db[_0xe9d0('0x3f')][_0xe9d0('0x45')]);_0x321556[_0xe9d0('0x2f')]=_['keys'](_0x353525[_0xe9d0('0x2f')]);_0x321556[_0xe9d0('0x31')]=_[_0xe9d0('0x32')](_0x321556['model'],_0x321556['query']);_0x41ed06[_0xe9d0('0x33')]=_[_0xe9d0('0x32')](_0x321556[_0xe9d0('0x2e')],qs['fields'](_0x353525[_0xe9d0('0x2f')][_0xe9d0('0x46')]));_0x41ed06[_0xe9d0('0x33')]=_0x41ed06[_0xe9d0('0x33')][_0xe9d0('0x34')]?_0x41ed06[_0xe9d0('0x33')]:_0x321556['model'];if(_0x353525[_0xe9d0('0x2f')][_0xe9d0('0x47')]){_0x41ed06[_0xe9d0('0x40')]=[{'all':!![]}];}_0x41ed06=_[_0xe9d0('0x3d')]({},_0x41ed06,_0x353525[_0xe9d0('0x3e')]);return db[_0xe9d0('0x3f')][_0xe9d0('0x48')](_0x41ed06)[_0xe9d0('0x26')](handleEntityNotFound(_0x262b3f,null))[_0xe9d0('0x26')](respondWithResult(_0x262b3f,null))['catch'](handleError(_0x262b3f,null));};exports[_0xe9d0('0x49')]=function(_0x4ee0f9,_0x270fd2){return db['ServicenowAccount'][_0xe9d0('0x49')](_0x4ee0f9[_0xe9d0('0x4a')],{})[_0xe9d0('0x26')](respondWithResult(_0x270fd2,0xc9))[_0xe9d0('0x42')](handleError(_0x270fd2,null));};exports['update']=function(_0x1d354c,_0x5a8949){if(_0x1d354c['body']['id']){delete _0x1d354c[_0xe9d0('0x4a')]['id'];}return db[_0xe9d0('0x3f')][_0xe9d0('0x48')]({'where':{'id':_0x1d354c[_0xe9d0('0x44')]['id']}})['then'](handleEntityNotFound(_0x5a8949,null))[_0xe9d0('0x26')](saveUpdates(_0x1d354c[_0xe9d0('0x4a')],null))[_0xe9d0('0x26')](respondWithResult(_0x5a8949,null))['catch'](handleError(_0x5a8949,null));};exports[_0xe9d0('0x25')]=function(_0x40a770,_0x13bbd3){return db[_0xe9d0('0x3f')][_0xe9d0('0x48')]({'where':{'id':_0x40a770['params']['id']}})[_0xe9d0('0x26')](handleEntityNotFound(_0x13bbd3,null))[_0xe9d0('0x26')](removeEntity(_0x13bbd3,null))[_0xe9d0('0x42')](handleError(_0x13bbd3,null));};exports[_0xe9d0('0x4b')]=function(_0x4f0e0e,_0x4ddb97,_0x46b45a){var _0x28cd29={};var _0x330df1={};var _0x3c4772;var _0x230478;return db['ServicenowAccount'][_0xe9d0('0x4c')]({'where':{'id':_0x4f0e0e[_0xe9d0('0x44')]['id']}})['then'](handleEntityNotFound(_0x4ddb97,null))['then'](function(_0x1bc402){if(_0x1bc402){_0x3c4772=_0x1bc402;_0x330df1[_0xe9d0('0x2e')]=_[_0xe9d0('0x30')](db['ServicenowConfiguration'][_0xe9d0('0x45')]);_0x330df1['query']=_[_0xe9d0('0x30')](_0x4f0e0e[_0xe9d0('0x2f')]);_0x330df1[_0xe9d0('0x31')]=_['intersection'](_0x330df1[_0xe9d0('0x2e')],_0x330df1[_0xe9d0('0x2f')]);_0x28cd29['attributes']=_['intersection'](_0x330df1[_0xe9d0('0x2e')],qs[_0xe9d0('0x46')](_0x4f0e0e['query'][_0xe9d0('0x46')]));_0x28cd29['attributes']=_0x28cd29[_0xe9d0('0x33')][_0xe9d0('0x34')]?_0x28cd29['attributes']:_0x330df1[_0xe9d0('0x2e')];_0x28cd29[_0xe9d0('0x37')]=qs[_0xe9d0('0x38')](_0x4f0e0e[_0xe9d0('0x2f')][_0xe9d0('0x38')]);_0x28cd29[_0xe9d0('0x39')]=qs['filters'](_[_0xe9d0('0x3a')](_0x4f0e0e[_0xe9d0('0x2f')],_0x330df1[_0xe9d0('0x31')]));if(_0x4f0e0e[_0xe9d0('0x2f')][_0xe9d0('0x3b')]){_0x28cd29[_0xe9d0('0x39')]=_[_0xe9d0('0x3d')](_0x28cd29[_0xe9d0('0x39')],{'$or':_[_0xe9d0('0x2a')](_0x28cd29['attributes'],function(_0x337d1b){var _0x501712={};_0x501712[_0x337d1b]={'$like':'%'+_0x4f0e0e[_0xe9d0('0x2f')]['filter']+'%'};return _0x501712;})});}_0x28cd29=_[_0xe9d0('0x3d')]({},_0x28cd29,_0x4f0e0e[_0xe9d0('0x3e')]);return _0x3c4772['getConfigurations'](_0x28cd29);}})[_0xe9d0('0x26')](function(_0xee58e1){if(_0xee58e1){_0x230478=_0xee58e1[_0xe9d0('0x34')];if(!_0x4f0e0e[_0xe9d0('0x2f')][_0xe9d0('0x35')]('nolimit')){_0x28cd29[_0xe9d0('0x1e')]=qs['limit'](_0x4f0e0e[_0xe9d0('0x2f')][_0xe9d0('0x1e')]);_0x28cd29['offset']=qs[_0xe9d0('0x1d')](_0x4f0e0e[_0xe9d0('0x2f')][_0xe9d0('0x1d')]);}return _0x3c4772[_0xe9d0('0x4b')](_0x28cd29);}})[_0xe9d0('0x26')](function(_0x148401){if(_0x148401){return _0x148401?{'count':_0x230478,'rows':_0x148401}:null;}})[_0xe9d0('0x26')](respondWithResult(_0x4ddb97,null))[_0xe9d0('0x42')](handleError(_0x4ddb97,null));};exports['addConfiguration']=function(_0x4363e3,_0x3657a7,_0x4c8e33){if(_0x4363e3['body']['id']){delete _0x4363e3['body']['id'];}return db['ServicenowAccount'][_0xe9d0('0x4c')]({'where':{'id':_0x4363e3[_0xe9d0('0x44')]['id']}})[_0xe9d0('0x26')](handleEntityNotFound(_0x3657a7,null))[_0xe9d0('0x26')](function(_0x374aae){if(_0x374aae){_0x4363e3[_0xe9d0('0x4a')][_0xe9d0('0x4d')]=_0x374aae['id'];_0x4363e3[_0xe9d0('0x4a')][_0xe9d0('0x4e')]=integrations[_0xe9d0('0x4f')](_0x4363e3[_0xe9d0('0x4a')][_0xe9d0('0x50')],_0x4363e3[_0xe9d0('0x4a')]['type']);_0x4363e3[_0xe9d0('0x4a')][_0xe9d0('0x51')]=integrations[_0xe9d0('0x52')](_0x4363e3[_0xe9d0('0x4a')][_0xe9d0('0x50')],_0x4363e3[_0xe9d0('0x4a')][_0xe9d0('0x2c')]);return db['ServicenowConfiguration'][_0xe9d0('0x49')](_0x4363e3['body'],{'include':[{'model':db[_0xe9d0('0x53')],'as':_0xe9d0('0x4e')},{'model':db[_0xe9d0('0x53')],'as':_0xe9d0('0x51')}]});}return null;})[_0xe9d0('0x26')](respondWithResult(_0x3657a7,null))['catch'](handleError(_0x3657a7,null));};exports['getFields']=function(_0x2fd0fd,_0x51c744,_0xae345f){var _0x2f7b02=[_0xe9d0('0x54'),_0xe9d0('0x55'),_0xe9d0('0x56'),_0xe9d0('0x57'),_0xe9d0('0x58'),_0xe9d0('0x59'),_0xe9d0('0x5a'),_0xe9d0('0x5b'),_0xe9d0('0x5c')];var _0x80d4b0=[_0xe9d0('0x5d'),'made_sla',_0xe9d0('0x5e'),_0xe9d0('0x5f'),'upon_reject',_0xe9d0('0x60'),'child_incidents','hold_reason',_0xe9d0('0x61'),_0xe9d0('0x62'),'resolved_by','sys_updated_by',_0xe9d0('0x63'),_0xe9d0('0x64'),_0xe9d0('0x65'),_0xe9d0('0x66'),_0xe9d0('0x67'),_0xe9d0('0x68'),_0xe9d0('0x56'),_0xe9d0('0x37'),_0xe9d0('0x69'),_0xe9d0('0x6a'),_0xe9d0('0x6b'),'delivery_plan',_0xe9d0('0x6c'),_0xe9d0('0x6d'),_0xe9d0('0x6e'),'business_service','priority',_0xe9d0('0x6f'),_0xe9d0('0x70'),_0xe9d0('0x71'),_0xe9d0('0x72'),_0xe9d0('0x73'),'business_duration',_0xe9d0('0x74'),'work_end',_0xe9d0('0x75'),_0xe9d0('0x76'),_0xe9d0('0x77'),'approval_set',_0xe9d0('0x57'),'work_notes',_0xe9d0('0x78'),_0xe9d0('0x58'),'correlation_display','delivery_task','work_start',_0xe9d0('0x79'),_0xe9d0('0x7a'),_0xe9d0('0x7b'),_0xe9d0('0x7c'),_0xe9d0('0x7d'),_0xe9d0('0x59'),_0xe9d0('0x7e'),_0xe9d0('0x7f'),_0xe9d0('0x80'),_0xe9d0('0x81'),_0xe9d0('0x82'),_0xe9d0('0x83'),_0xe9d0('0x84'),_0xe9d0('0x85'),_0xe9d0('0x5a'),_0xe9d0('0x86'),_0xe9d0('0x87'),_0xe9d0('0x88'),_0xe9d0('0x89'),_0xe9d0('0x8a'),_0xe9d0('0x8b'),_0xe9d0('0x5b'),_0xe9d0('0x8c'),_0xe9d0('0x8d'),'approval','comments_and_work_notes',_0xe9d0('0x8e'),'sys_mod_count',_0xe9d0('0x8f'),'sys_tags',_0xe9d0('0x90'),'upon_approval',_0xe9d0('0x91'),_0xe9d0('0x92'),_0xe9d0('0x5c')];var _0x3d626e='';var _0x31b60d='';var _0x4df7fd=[];var _0x168180='';var _0xb3e747='';var _0x1d7ef7=[];var _0x490d55='';var _0x4ccc06='';var _0x1ea5c7={};var _0x3c855e='';return db['ServicenowAccount'][_0xe9d0('0x4c')]({'where':{'id':_0x2fd0fd[_0xe9d0('0x44')]['id']},'attributes':['id',_0xe9d0('0x93'),_0xe9d0('0x94'),'email',_0xe9d0('0x95'),'serverUrl']})[_0xe9d0('0x26')](handleEntityNotFound(_0x51c744,null))['then'](function(_0x5b2223){if(_0x5b2223){_0x3c855e=_0x5b2223[_0xe9d0('0x95')];var _0x4696e5=_0x3c855e[_0xe9d0('0x96')](-0x1);if(_0x4696e5==='/'){_0x3c855e=_0x3c855e['substring'](0x0,_0x3c855e['lastIndexOf'](_0x4696e5));}_0x4ccc06=util[_0xe9d0('0x97')](_0xe9d0('0x98'),_0x3c855e);_0x490d55=util[_0xe9d0('0x97')](_0xe9d0('0x99'),_0x3c855e);_0x1ea5c7={'user':_0x5b2223[_0xe9d0('0x93')],'pass':_0x5b2223[_0xe9d0('0x94')]};var _0x14005d={'method':_0xe9d0('0x9a'),'uri':_0x4ccc06+'incident?sysparm_display_value=all','auth':_0x1ea5c7,'json':!![]};return rp(_0x14005d);}})[_0xe9d0('0x26')](function(_0xf9321b){if(_0xf9321b[_0xe9d0('0x9b')][_0xe9d0('0x34')]>0x0){_0x3d626e=_0xf9321b[_0xe9d0('0x9b')];}console[_0xe9d0('0x9c')](_0xe9d0('0x9d'),_0x3d626e);_0x1d7ef7=[];_0x31b60d=Object[_0xe9d0('0x9e')]([],_0x3d626e);_[_0xe9d0('0x9f')](_0x31b60d,function(_0x29e6c5){return!_0x2f7b02[_0xe9d0('0xa0')](_0x29e6c5[_0xe9d0('0x28')]);});_0x31b60d['forEach'](function(_0x14aae4){var _0x3c2870=createFieldObject(_0x490d55,_0x1ea5c7,_0x14aae4[_0xe9d0('0xa1')],_0x14aae4[_0xe9d0('0x28')],_0x14aae4[_0xe9d0('0xa2')],![]);_0x1d7ef7[_0xe9d0('0xa3')](_0x3c2870);});return Promise[_0xe9d0('0xa4')](_0x1d7ef7);})['then'](function(_0x42226b){_0x4df7fd=_0x42226b;_0x168180=Object[_0xe9d0('0x9e')]([],_0x3d626e);console[_0xe9d0('0x9c')](_0xe9d0('0xa5'),_0x3d626e);_[_0xe9d0('0x9f')](_0x168180,function(_0x2d5368){return _0x80d4b0[_0xe9d0('0xa0')](_0x2d5368[_0xe9d0('0x28')]);});console[_0xe9d0('0x9c')]('TCL:\x20exports.getEntityFields\x20->\x20_objectsCustom',_0x168180);_0x1d7ef7=[];_0x168180['forEach'](function(_0x5965aa){var _0x3fc992=createFieldObject(_0x490d55,_0x1ea5c7,_0x5965aa['internalType'],_0x5965aa[_0xe9d0('0x28')],_0x5965aa[_0xe9d0('0xa2')],!![]);_0x1d7ef7[_0xe9d0('0xa3')](_0x3fc992);});return Promise[_0xe9d0('0xa4')](_0x1d7ef7);})['then'](function(_0x28ffe9){_0xb3e747=_0x28ffe9;var _0x2e0e0b=_0x4df7fd[_0xe9d0('0xa6')](_0xb3e747);return{'count':_0x2e0e0b[_0xe9d0('0x34')],'rows':_0x2e0e0b};})[_0xe9d0('0x26')](respondWithResult(_0x51c744,null))[_0xe9d0('0x42')](function(_0x507f61){console[_0xe9d0('0x9c')](_0xe9d0('0xa7')+_0x507f61);var _0x4c3130=_0x2fd0fd[_0xe9d0('0x2f')][_0xe9d0('0xa8')]?0x1f4:_0x507f61[_0xe9d0('0xa9')]||0x1f4;logger[_0xe9d0('0xaa')](_0x507f61[_0xe9d0('0x27')]);delete _0x507f61['name'];if(_0x4c3130===0x191){_0x4c3130=0x190;}_0x51c744['status'](_0x4c3130)[_0xe9d0('0xab')](_0x2fd0fd[_0xe9d0('0x2f')][_0xe9d0('0xa8')]?{'message':_0xe9d0('0xac'),'statusCode':_0x507f61[_0xe9d0('0xa9')]}:_0x507f61);});};function createFieldObject(_0x271506,_0x40fdbb,_0x2bf26b,_0x282d94,_0x35c143,_0x54055d){return new Promise(function(_0x4583dc,_0x523f91){var _0x281743={'id':_0x282d94,'name':_0x35c143,'custom':_0x54055d};if(_0x2bf26b===_0xe9d0('0xad')){_0x281743['options']=[{'name':_0xe9d0('0xae'),'value':_0xe9d0('0xaf')},{'name':_0xe9d0('0xb0'),'value':_0xe9d0('0xb1')}];_0x4583dc(_0x281743);}else{var _0x3567de={'method':_0xe9d0('0x9a'),'uri':_0x271506+_0xe9d0('0xb2')+_0x282d94,'auth':_0x40fdbb,'json':!![]};return rp(_0x3567de)[_0xe9d0('0x26')](function(_0xae45db){var _0x48e2ca=[];if(_0xae45db[_0xe9d0('0x9b')][_0xe9d0('0x34')]>0x0){_0xae45db[_0xe9d0('0x9b')][_0xe9d0('0xb3')](function(_0x3581fd){if(_0x3581fd['inactive']===_0xe9d0('0xb1')){var _0xaeca1={'name':_0x3581fd['label'],'value':_0x3581fd[_0xe9d0('0xb4')]};_0x48e2ca[_0xe9d0('0xa3')](_0xaeca1);}});}_0x281743[_0xe9d0('0x3e')]=_0x48e2ca;if(_0x281743['options'][_0xe9d0('0x34')]>0x0){_0x4583dc(_0x281743);}else{if(_0x54055d==![]){_0x4583dc();}else{_0x4583dc(_0x281743);}}});}});}
\ No newline at end of file
+var _0xb0a2=['resolved_at','caller_id','approval_set','subcategory','short_description','delivery_task','work_start','assignment_group','business_stc','additional_assignee_list','description','calendar_duration','notify','sys_class_name','close_notes','closed_by','follow_up','parent_incident','contact_type','reopened_by','urgency','problem_id','company','reassignment_count','activity_due','sla_due','approval','due_date','reopen_count','sys_tags','escalation','location','password','email','remoteUri','serverUrl','format','%s/api/now/table/','username','incident?sysparm_display_value=all','result','log','incident\x20table\x20objects','assign','remove','includes','forEach','internalType','label','all','TCL:\x20_object','push','concat','ServiceNow\x20error:\x20','statusCode','error','boolean','True','true','False','false','GET','sys_choice?sysparm_query=name=incident^element=','value','eml-format','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','crypto','desk.js','to-csv','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','../../components/integrations/configuration','status','json','undefined','limit','count','offset','set','Content-Range','apply','update','then','end','sendStatus','stack','name','send','index','map','ServicenowAccount','rawAttributes','fieldName','type','key','model','query','keys','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','where','filters','pick','merge','options','includeAll','include','findAll','rows','catch','params','find','create','body','destroy','getConfigurations','findOne','ServicenowConfiguration','filter','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','ServicenowField','getFields','made_sla','hold_reason','knowledge','close_code','incident_state','severity','category','parent','caused_by','upon_reject','sys_updated_on','number','sys_updated_by','user_input','sys_created_on','sys_domain','cmdb_ci','delivery_plan','impact','active','work_notes_list','business_service','rfc','expected_start','opened_at','group_list','reopened_time'];(function(_0x3de8a4,_0x289a5c){var _0x4635cf=function(_0x2bddb8){while(--_0x2bddb8){_0x3de8a4['push'](_0x3de8a4['shift']());}};_0x4635cf(++_0x289a5c);}(_0xb0a2,0xee));var _0x2b0a=function(_0x1005dd,_0x28f737){_0x1005dd=_0x1005dd-0x0;var _0x5e253b=_0xb0a2[_0x1005dd];return _0x5e253b;};'use strict';var emlformat=require(_0x2b0a('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x2b0a('0x1'));var Mustache=require(_0x2b0a('0x2'));var util=require(_0x2b0a('0x3'));var path=require(_0x2b0a('0x4'));var sox=require(_0x2b0a('0x5'));var csv=require('to-csv');var ejs=require(_0x2b0a('0x6'));var fs=require('fs');var fs_extra=require(_0x2b0a('0x7'));var _=require(_0x2b0a('0x8'));var squel=require('squel');var crypto=require(_0x2b0a('0x9'));var jsforce=require('jsforce');var deskjs=require(_0x2b0a('0xa'));var toCsv=require(_0x2b0a('0xb'));var querystring=require('querystring');var Papa=require(_0x2b0a('0xc'));var Redis=require('ioredis');var authService=require(_0x2b0a('0xd'));var qs=require('../../components/parsers/qs');var as=require(_0x2b0a('0xe'));var hardwareService=require(_0x2b0a('0xf'));var logger=require(_0x2b0a('0x10'))(_0x2b0a('0x11'));var utils=require(_0x2b0a('0x12'));var config=require('../../config/environment');var licenseUtil=require(_0x2b0a('0x13'));var db=require(_0x2b0a('0x14'))['db'];var integrations=require(_0x2b0a('0x15'));function respondWithStatusCode(_0x52b5a5,_0x5d786f){_0x5d786f=_0x5d786f||0xcc;return function(_0xa67850){if(_0xa67850){return _0x52b5a5['sendStatus'](_0x5d786f);}return _0x52b5a5[_0x2b0a('0x16')](_0x5d786f)['end']();};}function respondWithResult(_0x36cd18,_0x18b163){_0x18b163=_0x18b163||0xc8;return function(_0x2951f1){if(_0x2951f1){return _0x36cd18[_0x2b0a('0x16')](_0x18b163)[_0x2b0a('0x17')](_0x2951f1);}};}function respondWithFilteredResult(_0x3f0099,_0x4f6d12){return function(_0xea394a){if(_0xea394a){var _0x5a0ac9=typeof _0x4f6d12['offset']===_0x2b0a('0x18')&&typeof _0x4f6d12[_0x2b0a('0x19')]===_0x2b0a('0x18');var _0x3370b6=_0xea394a[_0x2b0a('0x1a')];var _0x38c7ba=_0x5a0ac9?0x0:_0x4f6d12[_0x2b0a('0x1b')];var _0xa61af7=_0x5a0ac9?_0xea394a[_0x2b0a('0x1a')]:_0x4f6d12[_0x2b0a('0x1b')]+_0x4f6d12[_0x2b0a('0x19')];var _0x1a2efa;if(_0xa61af7>=_0x3370b6){_0xa61af7=_0x3370b6;_0x1a2efa=0xc8;}else{_0x1a2efa=0xce;}_0x3f0099[_0x2b0a('0x16')](_0x1a2efa);return _0x3f0099[_0x2b0a('0x1c')](_0x2b0a('0x1d'),_0x38c7ba+'-'+_0xa61af7+'/'+_0x3370b6)[_0x2b0a('0x17')](_0xea394a);}return null;};}function patchUpdates(_0x2a28de){return function(_0x442c99){try{jsonpatch[_0x2b0a('0x1e')](_0x442c99,_0x2a28de,!![]);}catch(_0x3de6cb){return BPromise['reject'](_0x3de6cb);}return _0x442c99['save']();};}function saveUpdates(_0xc9f97c,_0x339110){return function(_0x41bb7e){if(_0x41bb7e){return _0x41bb7e[_0x2b0a('0x1f')](_0xc9f97c)[_0x2b0a('0x20')](function(_0x138a74){return _0x138a74;});}return null;};}function removeEntity(_0xbd30dd,_0x3ce0d3){return function(_0x5379c7){if(_0x5379c7){return _0x5379c7['destroy']()[_0x2b0a('0x20')](function(){_0xbd30dd['status'](0xcc)[_0x2b0a('0x21')]();});}};}function handleEntityNotFound(_0x4b13e4,_0x17c2c4){return function(_0x1c7808){if(!_0x1c7808){_0x4b13e4[_0x2b0a('0x22')](0x194);}return _0x1c7808;};}function handleError(_0x1dd09d,_0x45eecd){_0x45eecd=_0x45eecd||0x1f4;return function(_0x49b262){logger['error'](_0x49b262[_0x2b0a('0x23')]);if(_0x49b262[_0x2b0a('0x24')]){delete _0x49b262['name'];}_0x1dd09d[_0x2b0a('0x16')](_0x45eecd)[_0x2b0a('0x25')](_0x49b262);};}exports[_0x2b0a('0x26')]=function(_0x4859e6,_0x57f595){var _0x3accbe={},_0x2900f6={},_0x252d91={'count':0x0,'rows':[]};var _0x46e796=_[_0x2b0a('0x27')](db[_0x2b0a('0x28')][_0x2b0a('0x29')],function(_0x2559ac){return{'name':_0x2559ac[_0x2b0a('0x2a')],'type':_0x2559ac[_0x2b0a('0x2b')][_0x2b0a('0x2c')]};});_0x2900f6[_0x2b0a('0x2d')]=_[_0x2b0a('0x27')](_0x46e796,'name');_0x2900f6[_0x2b0a('0x2e')]=_[_0x2b0a('0x2f')](_0x4859e6[_0x2b0a('0x2e')]);_0x2900f6['filters']=_[_0x2b0a('0x30')](_0x2900f6[_0x2b0a('0x2d')],_0x2900f6[_0x2b0a('0x2e')]);_0x3accbe['attributes']=_[_0x2b0a('0x30')](_0x2900f6[_0x2b0a('0x2d')],qs['fields'](_0x4859e6[_0x2b0a('0x2e')][_0x2b0a('0x31')]));_0x3accbe['attributes']=_0x3accbe[_0x2b0a('0x32')][_0x2b0a('0x33')]?_0x3accbe[_0x2b0a('0x32')]:_0x2900f6[_0x2b0a('0x2d')];if(!_0x4859e6[_0x2b0a('0x2e')][_0x2b0a('0x34')](_0x2b0a('0x35'))){_0x3accbe[_0x2b0a('0x19')]=qs[_0x2b0a('0x19')](_0x4859e6['query']['limit']);_0x3accbe[_0x2b0a('0x1b')]=qs[_0x2b0a('0x1b')](_0x4859e6[_0x2b0a('0x2e')][_0x2b0a('0x1b')]);}_0x3accbe['order']=qs[_0x2b0a('0x36')](_0x4859e6[_0x2b0a('0x2e')][_0x2b0a('0x36')]);_0x3accbe[_0x2b0a('0x37')]=qs[_0x2b0a('0x38')](_[_0x2b0a('0x39')](_0x4859e6[_0x2b0a('0x2e')],_0x2900f6['filters']),_0x46e796);if(_0x4859e6[_0x2b0a('0x2e')]['filter']){_0x3accbe[_0x2b0a('0x37')]=_[_0x2b0a('0x3a')](_0x3accbe[_0x2b0a('0x37')],{'$or':_[_0x2b0a('0x27')](_0x46e796,function(_0x4cf6c8){if(_0x4cf6c8[_0x2b0a('0x2b')]!=='VIRTUAL'){var _0x57b51e={};_0x57b51e[_0x4cf6c8[_0x2b0a('0x24')]]={'$like':'%'+_0x4859e6[_0x2b0a('0x2e')]['filter']+'%'};return _0x57b51e;}})});}_0x3accbe=_['merge']({},_0x3accbe,_0x4859e6[_0x2b0a('0x3b')]);var _0x20a0fc={'where':_0x3accbe[_0x2b0a('0x37')]};return db[_0x2b0a('0x28')]['count'](_0x20a0fc)[_0x2b0a('0x20')](function(_0x5b23ce){_0x252d91[_0x2b0a('0x1a')]=_0x5b23ce;if(_0x4859e6[_0x2b0a('0x2e')][_0x2b0a('0x3c')]){_0x3accbe[_0x2b0a('0x3d')]=[{'all':!![]}];}return db['ServicenowAccount'][_0x2b0a('0x3e')](_0x3accbe);})[_0x2b0a('0x20')](function(_0x22c37d){_0x252d91[_0x2b0a('0x3f')]=_0x22c37d;return _0x252d91;})['then'](respondWithFilteredResult(_0x57f595,_0x3accbe))[_0x2b0a('0x40')](handleError(_0x57f595,null));};exports['show']=function(_0x52a661,_0x1ab35f){var _0x5c8c11={'raw':![],'where':{'id':_0x52a661[_0x2b0a('0x41')]['id']}},_0x30ce97={};_0x30ce97['model']=_[_0x2b0a('0x2f')](db[_0x2b0a('0x28')][_0x2b0a('0x29')]);_0x30ce97[_0x2b0a('0x2e')]=_[_0x2b0a('0x2f')](_0x52a661[_0x2b0a('0x2e')]);_0x30ce97[_0x2b0a('0x38')]=_['intersection'](_0x30ce97[_0x2b0a('0x2d')],_0x30ce97[_0x2b0a('0x2e')]);_0x5c8c11[_0x2b0a('0x32')]=_[_0x2b0a('0x30')](_0x30ce97[_0x2b0a('0x2d')],qs[_0x2b0a('0x31')](_0x52a661[_0x2b0a('0x2e')][_0x2b0a('0x31')]));_0x5c8c11[_0x2b0a('0x32')]=_0x5c8c11[_0x2b0a('0x32')][_0x2b0a('0x33')]?_0x5c8c11[_0x2b0a('0x32')]:_0x30ce97['model'];if(_0x52a661[_0x2b0a('0x2e')][_0x2b0a('0x3c')]){_0x5c8c11['include']=[{'all':!![]}];}_0x5c8c11=_[_0x2b0a('0x3a')]({},_0x5c8c11,_0x52a661['options']);return db[_0x2b0a('0x28')][_0x2b0a('0x42')](_0x5c8c11)[_0x2b0a('0x20')](handleEntityNotFound(_0x1ab35f,null))[_0x2b0a('0x20')](respondWithResult(_0x1ab35f,null))['catch'](handleError(_0x1ab35f,null));};exports['create']=function(_0xe93b4e,_0x11fac7){return db['ServicenowAccount'][_0x2b0a('0x43')](_0xe93b4e['body'],{})['then'](respondWithResult(_0x11fac7,0xc9))[_0x2b0a('0x40')](handleError(_0x11fac7,null));};exports['update']=function(_0x5d9b87,_0x32660a){if(_0x5d9b87[_0x2b0a('0x44')]['id']){delete _0x5d9b87['body']['id'];}return db[_0x2b0a('0x28')][_0x2b0a('0x42')]({'where':{'id':_0x5d9b87[_0x2b0a('0x41')]['id']}})[_0x2b0a('0x20')](handleEntityNotFound(_0x32660a,null))[_0x2b0a('0x20')](saveUpdates(_0x5d9b87[_0x2b0a('0x44')],null))['then'](respondWithResult(_0x32660a,null))[_0x2b0a('0x40')](handleError(_0x32660a,null));};exports[_0x2b0a('0x45')]=function(_0x11ffa0,_0x576520){return db[_0x2b0a('0x28')][_0x2b0a('0x42')]({'where':{'id':_0x11ffa0[_0x2b0a('0x41')]['id']}})['then'](handleEntityNotFound(_0x576520,null))[_0x2b0a('0x20')](removeEntity(_0x576520,null))[_0x2b0a('0x40')](handleError(_0x576520,null));};exports[_0x2b0a('0x46')]=function(_0xb80064,_0x12384e,_0x5a5a1e){var _0x6dc6c0={};var _0x2681cb={};var _0x395f06;var _0x3f4c73;return db['ServicenowAccount'][_0x2b0a('0x47')]({'where':{'id':_0xb80064[_0x2b0a('0x41')]['id']}})[_0x2b0a('0x20')](handleEntityNotFound(_0x12384e,null))[_0x2b0a('0x20')](function(_0xe1535){if(_0xe1535){_0x395f06=_0xe1535;_0x2681cb[_0x2b0a('0x2d')]=_['keys'](db[_0x2b0a('0x48')][_0x2b0a('0x29')]);_0x2681cb[_0x2b0a('0x2e')]=_['keys'](_0xb80064[_0x2b0a('0x2e')]);_0x2681cb['filters']=_[_0x2b0a('0x30')](_0x2681cb[_0x2b0a('0x2d')],_0x2681cb[_0x2b0a('0x2e')]);_0x6dc6c0['attributes']=_[_0x2b0a('0x30')](_0x2681cb['model'],qs[_0x2b0a('0x31')](_0xb80064[_0x2b0a('0x2e')]['fields']));_0x6dc6c0['attributes']=_0x6dc6c0['attributes'][_0x2b0a('0x33')]?_0x6dc6c0['attributes']:_0x2681cb['model'];_0x6dc6c0['order']=qs[_0x2b0a('0x36')](_0xb80064[_0x2b0a('0x2e')][_0x2b0a('0x36')]);_0x6dc6c0[_0x2b0a('0x37')]=qs[_0x2b0a('0x38')](_[_0x2b0a('0x39')](_0xb80064[_0x2b0a('0x2e')],_0x2681cb['filters']));if(_0xb80064[_0x2b0a('0x2e')]['filter']){_0x6dc6c0['where']=_[_0x2b0a('0x3a')](_0x6dc6c0[_0x2b0a('0x37')],{'$or':_['map'](_0x6dc6c0[_0x2b0a('0x32')],function(_0x317ea7){var _0x1d6b67={};_0x1d6b67[_0x317ea7]={'$like':'%'+_0xb80064['query'][_0x2b0a('0x49')]+'%'};return _0x1d6b67;})});}_0x6dc6c0=_[_0x2b0a('0x3a')]({},_0x6dc6c0,_0xb80064[_0x2b0a('0x3b')]);return _0x395f06[_0x2b0a('0x46')](_0x6dc6c0);}})['then'](function(_0x1ec78b){if(_0x1ec78b){_0x3f4c73=_0x1ec78b[_0x2b0a('0x33')];if(!_0xb80064['query'][_0x2b0a('0x34')](_0x2b0a('0x35'))){_0x6dc6c0[_0x2b0a('0x19')]=qs['limit'](_0xb80064['query'][_0x2b0a('0x19')]);_0x6dc6c0[_0x2b0a('0x1b')]=qs[_0x2b0a('0x1b')](_0xb80064[_0x2b0a('0x2e')]['offset']);}return _0x395f06[_0x2b0a('0x46')](_0x6dc6c0);}})[_0x2b0a('0x20')](function(_0x205d55){if(_0x205d55){return _0x205d55?{'count':_0x3f4c73,'rows':_0x205d55}:null;}})[_0x2b0a('0x20')](respondWithResult(_0x12384e,null))['catch'](handleError(_0x12384e,null));};exports[_0x2b0a('0x4a')]=function(_0x3f8918,_0x224f0a,_0x6241f0){if(_0x3f8918[_0x2b0a('0x44')]['id']){delete _0x3f8918[_0x2b0a('0x44')]['id'];}return db[_0x2b0a('0x28')][_0x2b0a('0x47')]({'where':{'id':_0x3f8918[_0x2b0a('0x41')]['id']}})[_0x2b0a('0x20')](handleEntityNotFound(_0x224f0a,null))[_0x2b0a('0x20')](function(_0x4fd37f){if(_0x4fd37f){_0x3f8918[_0x2b0a('0x44')][_0x2b0a('0x4b')]=_0x4fd37f['id'];_0x3f8918[_0x2b0a('0x44')][_0x2b0a('0x4c')]=integrations[_0x2b0a('0x4d')](_0x3f8918[_0x2b0a('0x44')][_0x2b0a('0x4e')],_0x3f8918[_0x2b0a('0x44')][_0x2b0a('0x2b')]);_0x3f8918[_0x2b0a('0x44')][_0x2b0a('0x4f')]=integrations[_0x2b0a('0x50')](_0x3f8918[_0x2b0a('0x44')][_0x2b0a('0x4e')],_0x3f8918[_0x2b0a('0x44')]['type']);return db[_0x2b0a('0x48')][_0x2b0a('0x43')](_0x3f8918[_0x2b0a('0x44')],{'include':[{'model':db[_0x2b0a('0x51')],'as':'Subjects'},{'model':db[_0x2b0a('0x51')],'as':_0x2b0a('0x4f')}]});}return null;})[_0x2b0a('0x20')](respondWithResult(_0x224f0a,null))['catch'](handleError(_0x224f0a,null));};exports[_0x2b0a('0x52')]=function(_0x21286b,_0x174c85,_0x2aa8fd){var _0x477daf=[_0x2b0a('0x53'),_0x2b0a('0x54'),_0x2b0a('0x55'),'subcategory',_0x2b0a('0x56'),'notify',_0x2b0a('0x57'),_0x2b0a('0x58'),_0x2b0a('0x59')];var _0x277135=[_0x2b0a('0x5a'),_0x2b0a('0x53'),_0x2b0a('0x5b'),'watch_list',_0x2b0a('0x5c'),_0x2b0a('0x5d'),'child_incidents',_0x2b0a('0x54'),'approval_history',_0x2b0a('0x5e'),'resolved_by',_0x2b0a('0x5f'),'opened_by',_0x2b0a('0x60'),_0x2b0a('0x61'),_0x2b0a('0x62'),'state','sys_created_by',_0x2b0a('0x55'),'order','calendar_stc','closed_at',_0x2b0a('0x63'),_0x2b0a('0x64'),_0x2b0a('0x65'),_0x2b0a('0x66'),_0x2b0a('0x67'),_0x2b0a('0x68'),'priority','sys_domain_path',_0x2b0a('0x69'),'time_worked',_0x2b0a('0x6a'),_0x2b0a('0x6b'),'business_duration',_0x2b0a('0x6c'),'work_end',_0x2b0a('0x6d'),_0x2b0a('0x6e'),_0x2b0a('0x6f'),_0x2b0a('0x70'),_0x2b0a('0x71'),'work_notes',_0x2b0a('0x72'),'close_code','correlation_display',_0x2b0a('0x73'),_0x2b0a('0x74'),_0x2b0a('0x75'),_0x2b0a('0x76'),_0x2b0a('0x77'),_0x2b0a('0x78'),_0x2b0a('0x79'),_0x2b0a('0x7a'),_0x2b0a('0x7b'),_0x2b0a('0x7c'),_0x2b0a('0x7d'),_0x2b0a('0x7e'),_0x2b0a('0x7f'),'sys_id',_0x2b0a('0x80'),_0x2b0a('0x81'),_0x2b0a('0x57'),_0x2b0a('0x82'),_0x2b0a('0x83'),_0x2b0a('0x84'),_0x2b0a('0x85'),_0x2b0a('0x86'),'assigned_to','severity','comments',_0x2b0a('0x87'),_0x2b0a('0x88'),'comments_and_work_notes',_0x2b0a('0x89'),'sys_mod_count',_0x2b0a('0x8a'),_0x2b0a('0x8b'),_0x2b0a('0x8c'),'upon_approval','correlation_id',_0x2b0a('0x8d'),'category'];var _0x8fd7eb='';var _0x5bfa82='';var _0x5df323=[];var _0x3dea1b='';var _0x599dab='';var _0x30a980=[];var _0x2ec225='';var _0xced54f='';var _0x4ccd02={};var _0x493eeb='';return db[_0x2b0a('0x28')][_0x2b0a('0x47')]({'where':{'id':_0x21286b[_0x2b0a('0x41')]['id']},'attributes':['id','username',_0x2b0a('0x8e'),_0x2b0a('0x8f'),_0x2b0a('0x90'),_0x2b0a('0x91')]})['then'](handleEntityNotFound(_0x174c85,null))[_0x2b0a('0x20')](function(_0x3b5870){if(_0x3b5870){_0x493eeb=_0x3b5870[_0x2b0a('0x90')];var _0x2d09b8=_0x493eeb['slice'](-0x1);if(_0x2d09b8==='/'){_0x493eeb=_0x493eeb['substring'](0x0,_0x493eeb['lastIndexOf'](_0x2d09b8));}_0xced54f=util[_0x2b0a('0x92')]('%s/api/now/doc/table/schema/',_0x493eeb);_0x2ec225=util[_0x2b0a('0x92')](_0x2b0a('0x93'),_0x493eeb);_0x4ccd02={'user':_0x3b5870[_0x2b0a('0x94')],'pass':_0x3b5870['password']};var _0x2c7e92={'method':'GET','uri':_0xced54f+_0x2b0a('0x95'),'auth':_0x4ccd02,'json':!![]};return rp(_0x2c7e92);}})[_0x2b0a('0x20')](function(_0x281dfc){if(_0x281dfc[_0x2b0a('0x96')][_0x2b0a('0x33')]>0x0){_0x8fd7eb=_0x281dfc[_0x2b0a('0x96')];}console[_0x2b0a('0x97')](_0x2b0a('0x98'),_0x8fd7eb);_0x30a980=[];_0x5bfa82=Object[_0x2b0a('0x99')]([],_0x8fd7eb);_[_0x2b0a('0x9a')](_0x5bfa82,function(_0x14f84b){return!_0x477daf[_0x2b0a('0x9b')](_0x14f84b['name']);});_0x5bfa82[_0x2b0a('0x9c')](function(_0x243dc6){var _0x28f19d=createFieldObject(_0x2ec225,_0x4ccd02,_0x243dc6[_0x2b0a('0x9d')],_0x243dc6[_0x2b0a('0x24')],_0x243dc6[_0x2b0a('0x9e')],![]);_0x30a980['push'](_0x28f19d);});return Promise[_0x2b0a('0x9f')](_0x30a980);})[_0x2b0a('0x20')](function(_0xd41991){_0x5df323=_0xd41991;_0x3dea1b=Object['assign']([],_0x8fd7eb);console[_0x2b0a('0x97')](_0x2b0a('0xa0'),_0x8fd7eb);_[_0x2b0a('0x9a')](_0x3dea1b,function(_0x4136da){return _0x277135['includes'](_0x4136da[_0x2b0a('0x24')]);});console[_0x2b0a('0x97')]('TCL:\x20exports.getEntityFields\x20->\x20_objectsCustom',_0x3dea1b);_0x30a980=[];_0x3dea1b[_0x2b0a('0x9c')](function(_0x331123){var _0x25babf=createFieldObject(_0x2ec225,_0x4ccd02,_0x331123['internalType'],_0x331123[_0x2b0a('0x24')],_0x331123[_0x2b0a('0x9e')],!![]);_0x30a980[_0x2b0a('0xa1')](_0x25babf);});return Promise[_0x2b0a('0x9f')](_0x30a980);})[_0x2b0a('0x20')](function(_0x11438c){_0x599dab=_0x11438c;var _0x3447d2=_0x5df323[_0x2b0a('0xa2')](_0x599dab);return{'count':_0x3447d2[_0x2b0a('0x33')],'rows':_0x3447d2};})[_0x2b0a('0x20')](respondWithResult(_0x174c85,null))[_0x2b0a('0x40')](function(_0x577cb3){console[_0x2b0a('0x97')](_0x2b0a('0xa3')+_0x577cb3);var _0x4fd1af=_0x21286b[_0x2b0a('0x2e')]['test']?0x1f4:_0x577cb3[_0x2b0a('0xa4')]||0x1f4;logger[_0x2b0a('0xa5')](_0x577cb3[_0x2b0a('0x23')]);delete _0x577cb3[_0x2b0a('0x24')];if(_0x4fd1af===0x191){_0x4fd1af=0x190;}_0x174c85['status'](_0x4fd1af)[_0x2b0a('0x25')](_0x21286b[_0x2b0a('0x2e')]['test']?{'message':'Wrong\x20credentials','statusCode':_0x577cb3[_0x2b0a('0xa4')]}:_0x577cb3);});};function createFieldObject(_0x2fa3db,_0x452dbc,_0x4cd5ae,_0x4cbb1e,_0x5436b7,_0x24a121){return new Promise(function(_0x120320,_0xd2c51c){var _0x31a077={'id':_0x4cbb1e,'name':_0x5436b7,'custom':_0x24a121};if(_0x4cd5ae===_0x2b0a('0xa6')){_0x31a077['options']=[{'name':_0x2b0a('0xa7'),'value':_0x2b0a('0xa8')},{'name':_0x2b0a('0xa9'),'value':_0x2b0a('0xaa')}];_0x120320(_0x31a077);}else{var _0x300a1d={'method':_0x2b0a('0xab'),'uri':_0x2fa3db+_0x2b0a('0xac')+_0x4cbb1e,'auth':_0x452dbc,'json':!![]};return rp(_0x300a1d)['then'](function(_0x2e96c5){var _0x51e587=[];if(_0x2e96c5[_0x2b0a('0x96')]['length']>0x0){_0x2e96c5[_0x2b0a('0x96')][_0x2b0a('0x9c')](function(_0x491cc4){if(_0x491cc4['inactive']===_0x2b0a('0xaa')){var _0x521f6e={'name':_0x491cc4['label'],'value':_0x491cc4[_0x2b0a('0xad')]};_0x51e587[_0x2b0a('0xa1')](_0x521f6e);}});}_0x31a077['options']=_0x51e587;if(_0x31a077[_0x2b0a('0x3b')][_0x2b0a('0x33')]>0x0){_0x120320(_0x31a077);}else{if(_0x24a121==![]){_0x120320();}else{_0x120320(_0x31a077);}}});}});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5fc3=['lodash','util','api','moment','bluebird','request-promise','path','../../config/environment','./intServicenowAccount.attributes','../../components/integrations/configuration','ServicenowAccount','int_servicenow_accounts'];(function(_0x11deef,_0x34bbdb){var _0xe9ba85=function(_0x591377){while(--_0x591377){_0x11deef['push'](_0x11deef['shift']());}};_0xe9ba85(++_0x34bbdb);}(_0x5fc3,0xa8));var _0x35fc=function(_0x4ca6a4,_0x5e9694){_0x4ca6a4=_0x4ca6a4-0x0;var _0x120555=_0x5fc3[_0x4ca6a4];return _0x120555;};'use strict';var _=require(_0x35fc('0x0'));var util=require(_0x35fc('0x1'));var logger=require('../../config/logger')(_0x35fc('0x2'));var moment=require(_0x35fc('0x3'));var BPromise=require(_0x35fc('0x4'));var rp=require(_0x35fc('0x5'));var fs=require('fs');var path=require(_0x35fc('0x6'));var rimraf=require('rimraf');var config=require(_0x35fc('0x7'));var attributes=require(_0x35fc('0x8'));var integrations=require(_0x35fc('0x9'));module['exports']=function(_0x5754be,_0x19a0d1){return _0x5754be['define'](_0x35fc('0xa'),attributes,{'tableName':_0x35fc('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x326f=['api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./intServicenowAccount.attributes','../../components/integrations/configuration','exports','define','ServicenowAccount','int_servicenow_accounts','lodash'];(function(_0x32f7d7,_0x54231b){var _0x133d09=function(_0x41a7ab){while(--_0x41a7ab){_0x32f7d7['push'](_0x32f7d7['shift']());}};_0x133d09(++_0x54231b);}(_0x326f,0xd1));var _0xf326=function(_0x1256b0,_0x3a8bc1){_0x1256b0=_0x1256b0-0x0;var _0x1dbda3=_0x326f[_0x1256b0];return _0x1dbda3;};'use strict';var _=require(_0xf326('0x0'));var util=require('util');var logger=require('../../config/logger')(_0xf326('0x1'));var moment=require(_0xf326('0x2'));var BPromise=require(_0xf326('0x3'));var rp=require(_0xf326('0x4'));var fs=require('fs');var path=require(_0xf326('0x5'));var rimraf=require(_0xf326('0x6'));var config=require(_0xf326('0x7'));var attributes=require(_0xf326('0x8'));var integrations=require(_0xf326('0x9'));module[_0xf326('0xa')]=function(_0x4c2249,_0x3c254d){return _0x4c2249[_0xf326('0xb')](_0xf326('0xc'),attributes,{'tableName':_0xf326('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x596e=['raw','where','attributes','limit','include','map','ShowServicenowAccount','find','model','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','request','then','info','debug','ServicenowAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','code','error','ServicenowAccount,\x20%s,\x20%s','message','result','GetServicenowAccount','ServicenowAccount','options'];(function(_0x369bd0,_0x121f5d){var _0xc76163=function(_0x29abf4){while(--_0x29abf4){_0x369bd0['push'](_0x369bd0['shift']());}};_0xc76163(++_0x121f5d);}(_0x596e,0x1eb));var _0xe596=function(_0x306d66,_0x9ac3f3){_0x306d66=_0x306d66-0x0;var _0x2ce302=_0x596e[_0x306d66];return _0x2ce302;};'use strict';var _=require(_0xe596('0x0'));var util=require(_0xe596('0x1'));var moment=require(_0xe596('0x2'));var BPromise=require(_0xe596('0x3'));var rs=require(_0xe596('0x4'));var fs=require('fs');var Redis=require(_0xe596('0x5'));var db=require(_0xe596('0x6'))['db'];var utils=require(_0xe596('0x7'));var logger=require(_0xe596('0x8'))(_0xe596('0x9'));var config=require('../../config/environment');var jayson=require(_0xe596('0xa'));var client=jayson[_0xe596('0xb')]['http']({'port':0x232a});function respondWithRpcPromise(_0x268e35,_0x526efa,_0x5a743d){return new BPromise(function(_0x30a97b,_0x10b646){return client[_0xe596('0xc')](_0x268e35,_0x5a743d)[_0xe596('0xd')](function(_0x1a2f7c){logger[_0xe596('0xe')]('ServicenowAccount,\x20%s,\x20%s',_0x526efa,'request\x20sent');logger[_0xe596('0xf')](_0xe596('0x10'),_0x526efa,_0xe596('0x11'),JSON[_0xe596('0x12')](_0x1a2f7c));if(_0x1a2f7c['error']){if(_0x1a2f7c['error'][_0xe596('0x13')]===0x1f4){logger[_0xe596('0x14')](_0xe596('0x15'),_0x526efa,_0x1a2f7c['error'][_0xe596('0x16')]);return _0x10b646(_0x1a2f7c[_0xe596('0x14')][_0xe596('0x16')]);}logger[_0xe596('0x14')](_0xe596('0x15'),_0x526efa,_0x1a2f7c[_0xe596('0x14')][_0xe596('0x16')]);return _0x30a97b(_0x1a2f7c[_0xe596('0x14')][_0xe596('0x16')]);}else{logger['info'](_0xe596('0x15'),_0x526efa,_0xe596('0x11'));_0x30a97b(_0x1a2f7c[_0xe596('0x17')]['message']);}})['catch'](function(_0x347d7a){logger[_0xe596('0x14')](_0xe596('0x15'),_0x526efa,_0x347d7a);_0x10b646(_0x347d7a);});});}exports[_0xe596('0x18')]=function(_0x2b636e){var _0x124f10=this;return new Promise(function(_0x501868,_0x29ddfa){return db[_0xe596('0x19')]['findAll']({'raw':_0x2b636e[_0xe596('0x1a')]?_0x2b636e['options'][_0xe596('0x1b')]===undefined?!![]:![]:!![],'where':_0x2b636e['options']?_0x2b636e['options'][_0xe596('0x1c')]||null:null,'attributes':_0x2b636e[_0xe596('0x1a')]?_0x2b636e['options'][_0xe596('0x1d')]||null:null,'limit':_0x2b636e['options']?_0x2b636e['options'][_0xe596('0x1e')]||null:null,'include':_0x2b636e['options']?_0x2b636e[_0xe596('0x1a')][_0xe596('0x1f')]?_[_0xe596('0x20')](_0x2b636e[_0xe596('0x1a')]['include'],function(_0x760c1b){return{'model':db[_0x760c1b['model']],'as':_0x760c1b['as'],'attributes':_0x760c1b['attributes'],'include':_0x760c1b[_0xe596('0x1f')]?_['map'](_0x760c1b[_0xe596('0x1f')],function(_0xebe311){return{'model':db[_0xebe311['model']],'as':_0xebe311['as'],'attributes':_0xebe311[_0xe596('0x1d')],'include':_0xebe311[_0xe596('0x1f')]?_['map'](_0xebe311['include'],function(_0x350c78){return{'model':db[_0x350c78['model']],'as':_0x350c78['as'],'attributes':_0x350c78[_0xe596('0x1d')]};}):[]};}):[]};}):[]:[]})[_0xe596('0xd')](function(_0x5df554){logger[_0xe596('0xe')](_0xe596('0x18'),_0x2b636e);logger[_0xe596('0xf')]('GetServicenowAccount',_0x2b636e,JSON[_0xe596('0x12')](_0x5df554));_0x501868(_0x5df554);})['catch'](function(_0x5cdc9d){logger['error'](_0xe596('0x18'),_0x5cdc9d[_0xe596('0x16')],_0x2b636e);_0x29ddfa(_0x124f10[_0xe596('0x14')](0x1f4,_0x5cdc9d[_0xe596('0x16')]));});});};exports[_0xe596('0x21')]=function(_0x18094f){var _0x189834=this;return new Promise(function(_0x20ab23,_0x2309dc){return db[_0xe596('0x19')][_0xe596('0x22')]({'raw':_0x18094f['options']?_0x18094f[_0xe596('0x1a')][_0xe596('0x1b')]===undefined?!![]:![]:!![],'where':_0x18094f[_0xe596('0x1a')]?_0x18094f[_0xe596('0x1a')]['where']||null:null,'attributes':_0x18094f[_0xe596('0x1a')]?_0x18094f[_0xe596('0x1a')][_0xe596('0x1d')]||null:null,'include':_0x18094f[_0xe596('0x1a')]?_0x18094f[_0xe596('0x1a')][_0xe596('0x1f')]?_[_0xe596('0x20')](_0x18094f['options']['include'],function(_0x2c4178){return{'model':db[_0x2c4178[_0xe596('0x23')]],'as':_0x2c4178['as'],'attributes':_0x2c4178[_0xe596('0x1d')],'include':_0x2c4178[_0xe596('0x1f')]?_[_0xe596('0x20')](_0x2c4178[_0xe596('0x1f')],function(_0x5300fd){return{'model':db[_0x5300fd[_0xe596('0x23')]],'as':_0x5300fd['as'],'attributes':_0x5300fd['attributes'],'include':_0x5300fd['include']?_[_0xe596('0x20')](_0x5300fd['include'],function(_0x218516){return{'model':db[_0x218516['model']],'as':_0x218516['as'],'attributes':_0x218516[_0xe596('0x1d')]};}):[]};}):[]};}):[]:[]})[_0xe596('0xd')](function(_0x483123){logger['info'](_0xe596('0x21'),_0x18094f);logger['debug'](_0xe596('0x21'),_0x18094f,JSON[_0xe596('0x12')](_0x483123));_0x20ab23(_0x483123);})[_0xe596('0x24')](function(_0x2920d4){logger[_0xe596('0x14')]('ShowServicenowAccount',_0x2920d4[_0xe596('0x16')],_0x18094f);_0x2309dc(_0x189834[_0xe596('0x14')](0x1f4,_0x2920d4[_0xe596('0x16')]));});});};
\ No newline at end of file
+var _0x99bc=['model','ShowServicenowAccount','ServicenowAccount','find','then','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','request','info','request\x20sent','debug','stringify','error','code','ServicenowAccount,\x20%s,\x20%s','message','result','catch','GetServicenowAccount','findAll','options','raw','where','attributes','limit','include','map'];(function(_0x373dee,_0x1a8c45){var _0x46798f=function(_0xc389f0){while(--_0xc389f0){_0x373dee['push'](_0x373dee['shift']());}};_0x46798f(++_0x1a8c45);}(_0x99bc,0x10f));var _0xc99b=function(_0x346737,_0x3e6081){_0x346737=_0x346737-0x0;var _0x1ade2e=_0x99bc[_0x346737];return _0x1ade2e;};'use strict';var _=require(_0xc99b('0x0'));var util=require(_0xc99b('0x1'));var moment=require(_0xc99b('0x2'));var BPromise=require(_0xc99b('0x3'));var rs=require(_0xc99b('0x4'));var fs=require('fs');var Redis=require(_0xc99b('0x5'));var db=require(_0xc99b('0x6'))['db'];var utils=require(_0xc99b('0x7'));var logger=require(_0xc99b('0x8'))(_0xc99b('0x9'));var config=require(_0xc99b('0xa'));var jayson=require('jayson/promise');var client=jayson[_0xc99b('0xb')][_0xc99b('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x103a30,_0x320cdf,_0x3bbbce){return new BPromise(function(_0x4bc656,_0x394e41){return client[_0xc99b('0xd')](_0x103a30,_0x3bbbce)['then'](function(_0x5c855d){logger[_0xc99b('0xe')]('ServicenowAccount,\x20%s,\x20%s',_0x320cdf,_0xc99b('0xf'));logger[_0xc99b('0x10')]('ServicenowAccount,\x20%s,\x20%s,\x20%s',_0x320cdf,_0xc99b('0xf'),JSON[_0xc99b('0x11')](_0x5c855d));if(_0x5c855d[_0xc99b('0x12')]){if(_0x5c855d[_0xc99b('0x12')][_0xc99b('0x13')]===0x1f4){logger['error'](_0xc99b('0x14'),_0x320cdf,_0x5c855d['error'][_0xc99b('0x15')]);return _0x394e41(_0x5c855d[_0xc99b('0x12')][_0xc99b('0x15')]);}logger[_0xc99b('0x12')]('ServicenowAccount,\x20%s,\x20%s',_0x320cdf,_0x5c855d[_0xc99b('0x12')][_0xc99b('0x15')]);return _0x4bc656(_0x5c855d[_0xc99b('0x12')][_0xc99b('0x15')]);}else{logger['info'](_0xc99b('0x14'),_0x320cdf,'request\x20sent');_0x4bc656(_0x5c855d[_0xc99b('0x16')][_0xc99b('0x15')]);}})[_0xc99b('0x17')](function(_0xece201){logger[_0xc99b('0x12')]('ServicenowAccount,\x20%s,\x20%s',_0x320cdf,_0xece201);_0x394e41(_0xece201);});});}exports[_0xc99b('0x18')]=function(_0x144c7e){var _0x22f524=this;return new Promise(function(_0x446bc8,_0x5c8a66){return db['ServicenowAccount'][_0xc99b('0x19')]({'raw':_0x144c7e[_0xc99b('0x1a')]?_0x144c7e[_0xc99b('0x1a')][_0xc99b('0x1b')]===undefined?!![]:![]:!![],'where':_0x144c7e[_0xc99b('0x1a')]?_0x144c7e[_0xc99b('0x1a')][_0xc99b('0x1c')]||null:null,'attributes':_0x144c7e[_0xc99b('0x1a')]?_0x144c7e['options'][_0xc99b('0x1d')]||null:null,'limit':_0x144c7e[_0xc99b('0x1a')]?_0x144c7e[_0xc99b('0x1a')][_0xc99b('0x1e')]||null:null,'include':_0x144c7e[_0xc99b('0x1a')]?_0x144c7e[_0xc99b('0x1a')][_0xc99b('0x1f')]?_[_0xc99b('0x20')](_0x144c7e[_0xc99b('0x1a')][_0xc99b('0x1f')],function(_0x39652f){return{'model':db[_0x39652f[_0xc99b('0x21')]],'as':_0x39652f['as'],'attributes':_0x39652f[_0xc99b('0x1d')],'include':_0x39652f[_0xc99b('0x1f')]?_['map'](_0x39652f['include'],function(_0x56d81e){return{'model':db[_0x56d81e['model']],'as':_0x56d81e['as'],'attributes':_0x56d81e['attributes'],'include':_0x56d81e['include']?_[_0xc99b('0x20')](_0x56d81e[_0xc99b('0x1f')],function(_0x391260){return{'model':db[_0x391260['model']],'as':_0x391260['as'],'attributes':_0x391260['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x47ea59){logger[_0xc99b('0xe')]('GetServicenowAccount',_0x144c7e);logger[_0xc99b('0x10')](_0xc99b('0x18'),_0x144c7e,JSON[_0xc99b('0x11')](_0x47ea59));_0x446bc8(_0x47ea59);})[_0xc99b('0x17')](function(_0x5e3091){logger[_0xc99b('0x12')]('GetServicenowAccount',_0x5e3091[_0xc99b('0x15')],_0x144c7e);_0x5c8a66(_0x22f524[_0xc99b('0x12')](0x1f4,_0x5e3091['message']));});});};exports[_0xc99b('0x22')]=function(_0x57f75e){var _0xaf86ca=this;return new Promise(function(_0x1b4de1,_0x47f61b){return db[_0xc99b('0x23')][_0xc99b('0x24')]({'raw':_0x57f75e[_0xc99b('0x1a')]?_0x57f75e[_0xc99b('0x1a')][_0xc99b('0x1b')]===undefined?!![]:![]:!![],'where':_0x57f75e[_0xc99b('0x1a')]?_0x57f75e[_0xc99b('0x1a')][_0xc99b('0x1c')]||null:null,'attributes':_0x57f75e[_0xc99b('0x1a')]?_0x57f75e[_0xc99b('0x1a')]['attributes']||null:null,'include':_0x57f75e[_0xc99b('0x1a')]?_0x57f75e[_0xc99b('0x1a')][_0xc99b('0x1f')]?_[_0xc99b('0x20')](_0x57f75e[_0xc99b('0x1a')][_0xc99b('0x1f')],function(_0x56a0f8){return{'model':db[_0x56a0f8[_0xc99b('0x21')]],'as':_0x56a0f8['as'],'attributes':_0x56a0f8[_0xc99b('0x1d')],'include':_0x56a0f8['include']?_[_0xc99b('0x20')](_0x56a0f8[_0xc99b('0x1f')],function(_0x9d666a){return{'model':db[_0x9d666a[_0xc99b('0x21')]],'as':_0x9d666a['as'],'attributes':_0x9d666a[_0xc99b('0x1d')],'include':_0x9d666a[_0xc99b('0x1f')]?_['map'](_0x9d666a['include'],function(_0x539ca9){return{'model':db[_0x539ca9[_0xc99b('0x21')]],'as':_0x539ca9['as'],'attributes':_0x539ca9['attributes']};}):[]};}):[]};}):[]:[]})[_0xc99b('0x25')](function(_0xb3100a){logger[_0xc99b('0xe')]('ShowServicenowAccount',_0x57f75e);logger[_0xc99b('0x10')](_0xc99b('0x22'),_0x57f75e,JSON[_0xc99b('0x11')](_0xb3100a));_0x1b4de1(_0xb3100a);})[_0xc99b('0x17')](function(_0x26e3f2){logger[_0xc99b('0x12')]('ShowServicenowAccount',_0x26e3f2[_0xc99b('0x15')],_0x57f75e);_0x47f61b(_0xaf86ca[_0xc99b('0x12')](0x1f4,_0x26e3f2[_0xc99b('0x15')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3041=['../../config/environment','./intServicenowConfiguration.controller','isAuthenticated','index','/:id','show','get','/:id/fields','getFields','/:id/subjects','/:id/descriptions','getDescriptions','create','update','delete','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service'];(function(_0x1ff7d4,_0x1c9706){var _0x41dd00=function(_0x3f6807){while(--_0x3f6807){_0x1ff7d4['push'](_0x1ff7d4['shift']());}};_0x41dd00(++_0x1c9706);}(_0x3041,0x1ef));var _0x1304=function(_0x5b2e3d,_0x2d7f7b){_0x5b2e3d=_0x5b2e3d-0x0;var _0x35a13c=_0x3041[_0x5b2e3d];return _0x35a13c;};'use strict';var multer=require(_0x1304('0x0'));var util=require(_0x1304('0x1'));var path=require(_0x1304('0x2'));var timeout=require(_0x1304('0x3'));var express=require(_0x1304('0x4'));var router=express[_0x1304('0x5')]();var fs_extra=require(_0x1304('0x6'));var auth=require(_0x1304('0x7'));var interaction=require(_0x1304('0x8'));var config=require(_0x1304('0x9'));var controller=require(_0x1304('0xa'));router['get']('/',auth[_0x1304('0xb')](),controller[_0x1304('0xc')]);router['get'](_0x1304('0xd'),auth[_0x1304('0xb')](),controller[_0x1304('0xe')]);router[_0x1304('0xf')](_0x1304('0x10'),auth[_0x1304('0xb')](),controller[_0x1304('0x11')]);router[_0x1304('0xf')](_0x1304('0x12'),auth[_0x1304('0xb')](),controller['getSubjects']);router[_0x1304('0xf')](_0x1304('0x13'),auth[_0x1304('0xb')](),controller[_0x1304('0x14')]);router['post']('/',auth['isAuthenticated'](),controller[_0x1304('0x15')]);router['put'](_0x1304('0xd'),auth[_0x1304('0xb')](),controller[_0x1304('0x16')]);router[_0x1304('0x17')]('/:id',auth[_0x1304('0xb')](),controller['destroy']);module['exports']=router;
\ No newline at end of file
+var _0xc837=['multer','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','./intServicenowConfiguration.controller','get','index','/:id','isAuthenticated','/:id/fields','/:id/descriptions','getDescriptions','post','create','put','update','delete','destroy'];(function(_0x11e30d,_0x5584aa){var _0x2d4e29=function(_0x2486ce){while(--_0x2486ce){_0x11e30d['push'](_0x11e30d['shift']());}};_0x2d4e29(++_0x5584aa);}(_0xc837,0x160));var _0x7c83=function(_0x2e1e92,_0x16e465){_0x2e1e92=_0x2e1e92-0x0;var _0x193531=_0xc837[_0x2e1e92];return _0x193531;};'use strict';var multer=require(_0x7c83('0x0'));var util=require('util');var path=require(_0x7c83('0x1'));var timeout=require(_0x7c83('0x2'));var express=require(_0x7c83('0x3'));var router=express[_0x7c83('0x4')]();var fs_extra=require(_0x7c83('0x5'));var auth=require(_0x7c83('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0x7c83('0x7'));var controller=require(_0x7c83('0x8'));router[_0x7c83('0x9')]('/',auth['isAuthenticated'](),controller[_0x7c83('0xa')]);router[_0x7c83('0x9')](_0x7c83('0xb'),auth[_0x7c83('0xc')](),controller['show']);router[_0x7c83('0x9')](_0x7c83('0xd'),auth[_0x7c83('0xc')](),controller['getFields']);router[_0x7c83('0x9')]('/:id/subjects',auth[_0x7c83('0xc')](),controller['getSubjects']);router[_0x7c83('0x9')](_0x7c83('0xe'),auth[_0x7c83('0xc')](),controller[_0x7c83('0xf')]);router[_0x7c83('0x10')]('/',auth[_0x7c83('0xc')](),controller[_0x7c83('0x11')]);router[_0x7c83('0x12')](_0x7c83('0xb'),auth[_0x7c83('0xc')](),controller[_0x7c83('0x13')]);router[_0x7c83('0x14')](_0x7c83('0xb'),auth[_0x7c83('0xc')](),controller[_0x7c83('0x15')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc62b=['sequelize','STRING'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xc62b,0x114));var _0xbc62=function(_0x59c8e3,_0x17a559){_0x59c8e3=_0x59c8e3-0x0;var _0x1f59af=_0xc62b[_0x59c8e3];return _0x1f59af;};'use strict';var Sequelize=require(_0xbc62('0x0'));module['exports']={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0xbc62('0x1')]}};
\ No newline at end of file
+var _0x0ca3=['sequelize','exports','STRING'];(function(_0x3aaabe,_0x4a4c9f){var _0x29356f=function(_0x1300c8){while(--_0x1300c8){_0x3aaabe['push'](_0x3aaabe['shift']());}};_0x29356f(++_0x4a4c9f);}(_0x0ca3,0x1c2));var _0x30ca=function(_0x486f4a,_0x478dc7){_0x486f4a=_0x486f4a-0x0;var _0x135d99=_0x0ca3[_0x486f4a];return _0x135d99;};'use strict';var Sequelize=require(_0x30ca('0x0'));module[_0x30ca('0x1')]={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0x30ca('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x85ad=['filter','merge','options','count','includeAll','include','findAll','show','keys','create','body','find','catch','params','ServicenowField','pick','getFields','getSubjects','nolimit','findOne','getDescriptions','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','mustache','util','path','lodash','squel','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','status','end','json','offset','undefined','limit','set','Content-Range','apply','save','update','then','destroy','name','send','index','map','ServicenowConfiguration','rawAttributes','fieldName','type','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x85ad,0xf9));var _0xd85a=function(_0x4b369d,_0x265eb8){_0x4b369d=_0x4b369d-0x0;var _0x571a98=_0x85ad[_0x4b369d];return _0x571a98;};'use strict';var emlformat=require(_0xd85a('0x0'));var rimraf=require(_0xd85a('0x1'));var zipdir=require(_0xd85a('0x2'));var jsonpatch=require(_0xd85a('0x3'));var rp=require(_0xd85a('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xd85a('0x5'));var util=require(_0xd85a('0x6'));var path=require(_0xd85a('0x7'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xd85a('0x8'));var squel=require(_0xd85a('0x9'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0xd85a('0xa'));var toCsv=require(_0xd85a('0xb'));var querystring=require(_0xd85a('0xc'));var Papa=require(_0xd85a('0xd'));var Redis=require(_0xd85a('0xe'));var authService=require(_0xd85a('0xf'));var qs=require(_0xd85a('0x10'));var as=require(_0xd85a('0x11'));var hardwareService=require(_0xd85a('0x12'));var logger=require(_0xd85a('0x13'))(_0xd85a('0x14'));var utils=require(_0xd85a('0x15'));var config=require(_0xd85a('0x16'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x3b2406,_0x2c61d2){_0x2c61d2=_0x2c61d2||0xcc;return function(_0x98d714){if(_0x98d714){return _0x3b2406['sendStatus'](_0x2c61d2);}return _0x3b2406[_0xd85a('0x17')](_0x2c61d2)[_0xd85a('0x18')]();};}function respondWithResult(_0xce0c0e,_0xa4e457){_0xa4e457=_0xa4e457||0xc8;return function(_0x521d2a){if(_0x521d2a){return _0xce0c0e[_0xd85a('0x17')](_0xa4e457)[_0xd85a('0x19')](_0x521d2a);}};}function respondWithFilteredResult(_0x158689,_0x5c17bf){return function(_0x4ae25a){if(_0x4ae25a){var _0x426830=typeof _0x5c17bf[_0xd85a('0x1a')]===_0xd85a('0x1b')&&typeof _0x5c17bf[_0xd85a('0x1c')]===_0xd85a('0x1b');var _0x546554=_0x4ae25a['count'];var _0x50b7d4=_0x426830?0x0:_0x5c17bf[_0xd85a('0x1a')];var _0xf3f883=_0x426830?_0x4ae25a['count']:_0x5c17bf['offset']+_0x5c17bf[_0xd85a('0x1c')];var _0x4446cc;if(_0xf3f883>=_0x546554){_0xf3f883=_0x546554;_0x4446cc=0xc8;}else{_0x4446cc=0xce;}_0x158689[_0xd85a('0x17')](_0x4446cc);return _0x158689[_0xd85a('0x1d')](_0xd85a('0x1e'),_0x50b7d4+'-'+_0xf3f883+'/'+_0x546554)[_0xd85a('0x19')](_0x4ae25a);}return null;};}function patchUpdates(_0x46ee0a){return function(_0x5ef025){try{jsonpatch[_0xd85a('0x1f')](_0x5ef025,_0x46ee0a,!![]);}catch(_0x4babf0){return BPromise['reject'](_0x4babf0);}return _0x5ef025[_0xd85a('0x20')]();};}function saveUpdates(_0x518c40,_0x31d3ea){return function(_0x12af1d){if(_0x12af1d){return _0x12af1d[_0xd85a('0x21')](_0x518c40)[_0xd85a('0x22')](function(_0x31c305){return _0x31c305;});}return null;};}function removeEntity(_0x18f400,_0x59c37a){return function(_0x18d0f4){if(_0x18d0f4){return _0x18d0f4[_0xd85a('0x23')]()[_0xd85a('0x22')](function(){_0x18f400[_0xd85a('0x17')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5ad096,_0x41f623){return function(_0x1df627){if(!_0x1df627){_0x5ad096['sendStatus'](0x194);}return _0x1df627;};}function handleError(_0x467999,_0x2c6e12){_0x2c6e12=_0x2c6e12||0x1f4;return function(_0x22a39d){logger['error'](_0x22a39d['stack']);if(_0x22a39d[_0xd85a('0x24')]){delete _0x22a39d['name'];}_0x467999[_0xd85a('0x17')](_0x2c6e12)[_0xd85a('0x25')](_0x22a39d);};}exports[_0xd85a('0x26')]=function(_0x24a13a,_0x47cfac){var _0x105e1e={},_0x67bf3d={},_0x2ab214={'count':0x0,'rows':[]};var _0x171542=_[_0xd85a('0x27')](db[_0xd85a('0x28')][_0xd85a('0x29')],function(_0x927ab9){return{'name':_0x927ab9[_0xd85a('0x2a')],'type':_0x927ab9[_0xd85a('0x2b')]['key']};});_0x67bf3d[_0xd85a('0x2c')]=_[_0xd85a('0x27')](_0x171542,_0xd85a('0x24'));_0x67bf3d[_0xd85a('0x2d')]=_['keys'](_0x24a13a['query']);_0x67bf3d[_0xd85a('0x2e')]=_[_0xd85a('0x2f')](_0x67bf3d['model'],_0x67bf3d[_0xd85a('0x2d')]);_0x105e1e[_0xd85a('0x30')]=_[_0xd85a('0x2f')](_0x67bf3d['model'],qs[_0xd85a('0x31')](_0x24a13a['query'][_0xd85a('0x31')]));_0x105e1e[_0xd85a('0x30')]=_0x105e1e[_0xd85a('0x30')][_0xd85a('0x32')]?_0x105e1e[_0xd85a('0x30')]:_0x67bf3d['model'];if(!_0x24a13a[_0xd85a('0x2d')][_0xd85a('0x33')]('nolimit')){_0x105e1e[_0xd85a('0x1c')]=qs['limit'](_0x24a13a[_0xd85a('0x2d')][_0xd85a('0x1c')]);_0x105e1e[_0xd85a('0x1a')]=qs[_0xd85a('0x1a')](_0x24a13a[_0xd85a('0x2d')][_0xd85a('0x1a')]);}_0x105e1e[_0xd85a('0x34')]=qs[_0xd85a('0x35')](_0x24a13a['query'][_0xd85a('0x35')]);_0x105e1e[_0xd85a('0x36')]=qs[_0xd85a('0x2e')](_['pick'](_0x24a13a[_0xd85a('0x2d')],_0x67bf3d[_0xd85a('0x2e')]),_0x171542);if(_0x24a13a[_0xd85a('0x2d')][_0xd85a('0x37')]){_0x105e1e[_0xd85a('0x36')]=_['merge'](_0x105e1e['where'],{'$or':_['map'](_0x171542,function(_0x15c394){if(_0x15c394[_0xd85a('0x2b')]!=='VIRTUAL'){var _0x121ec4={};_0x121ec4[_0x15c394[_0xd85a('0x24')]]={'$like':'%'+_0x24a13a[_0xd85a('0x2d')][_0xd85a('0x37')]+'%'};return _0x121ec4;}})});}_0x105e1e=_[_0xd85a('0x38')]({},_0x105e1e,_0x24a13a[_0xd85a('0x39')]);var _0x3357a6={'where':_0x105e1e[_0xd85a('0x36')]};return db[_0xd85a('0x28')][_0xd85a('0x3a')](_0x3357a6)[_0xd85a('0x22')](function(_0x10c464){_0x2ab214[_0xd85a('0x3a')]=_0x10c464;if(_0x24a13a['query'][_0xd85a('0x3b')]){_0x105e1e[_0xd85a('0x3c')]=[{'all':!![]}];}return db[_0xd85a('0x28')][_0xd85a('0x3d')](_0x105e1e);})[_0xd85a('0x22')](function(_0x48bb48){_0x2ab214['rows']=_0x48bb48;return _0x2ab214;})['then'](respondWithFilteredResult(_0x47cfac,_0x105e1e))['catch'](handleError(_0x47cfac,null));};exports[_0xd85a('0x3e')]=function(_0xd092f7,_0x1f9a50){var _0x51d7c3={'raw':![],'where':{'id':_0xd092f7['params']['id']}},_0x818540={};_0x818540[_0xd85a('0x2c')]=_[_0xd85a('0x3f')](db[_0xd85a('0x28')][_0xd85a('0x29')]);_0x818540[_0xd85a('0x2d')]=_[_0xd85a('0x3f')](_0xd092f7[_0xd85a('0x2d')]);_0x818540[_0xd85a('0x2e')]=_[_0xd85a('0x2f')](_0x818540[_0xd85a('0x2c')],_0x818540[_0xd85a('0x2d')]);_0x51d7c3['attributes']=_[_0xd85a('0x2f')](_0x818540['model'],qs[_0xd85a('0x31')](_0xd092f7[_0xd85a('0x2d')][_0xd85a('0x31')]));_0x51d7c3[_0xd85a('0x30')]=_0x51d7c3[_0xd85a('0x30')][_0xd85a('0x32')]?_0x51d7c3[_0xd85a('0x30')]:_0x818540[_0xd85a('0x2c')];if(_0xd092f7[_0xd85a('0x2d')]['includeAll']){_0x51d7c3[_0xd85a('0x3c')]=[{'all':!![]}];}_0x51d7c3=_[_0xd85a('0x38')]({},_0x51d7c3,_0xd092f7['options']);return db[_0xd85a('0x28')]['find'](_0x51d7c3)['then'](handleEntityNotFound(_0x1f9a50,null))[_0xd85a('0x22')](respondWithResult(_0x1f9a50,null))['catch'](handleError(_0x1f9a50,null));};exports[_0xd85a('0x40')]=function(_0x36dc0e,_0x46b63b){return db[_0xd85a('0x28')][_0xd85a('0x40')](_0x36dc0e[_0xd85a('0x41')],{})[_0xd85a('0x22')](respondWithResult(_0x46b63b,0xc9))['catch'](handleError(_0x46b63b,null));};exports[_0xd85a('0x21')]=function(_0x47626,_0x1a1f4e){if(_0x47626[_0xd85a('0x41')]['id']){delete _0x47626[_0xd85a('0x41')]['id'];}return db[_0xd85a('0x28')][_0xd85a('0x42')]({'where':{'id':_0x47626['params']['id']}})[_0xd85a('0x22')](handleEntityNotFound(_0x1a1f4e,null))[_0xd85a('0x22')](saveUpdates(_0x47626[_0xd85a('0x41')],null))[_0xd85a('0x22')](respondWithResult(_0x1a1f4e,null))[_0xd85a('0x43')](handleError(_0x1a1f4e,null));};exports[_0xd85a('0x23')]=function(_0x3b9444,_0xa1f7d6){return db['ServicenowConfiguration'][_0xd85a('0x42')]({'where':{'id':_0x3b9444[_0xd85a('0x44')]['id']}})[_0xd85a('0x22')](handleEntityNotFound(_0xa1f7d6,null))['then'](removeEntity(_0xa1f7d6,null))[_0xd85a('0x43')](handleError(_0xa1f7d6,null));};exports['getFields']=function(_0x22d3fb,_0x46da14,_0x34c34e){var _0x6f0325={};var _0x24df31={};var _0x4e648c;var _0x3f0915;return db[_0xd85a('0x28')]['findOne']({'where':{'id':_0x22d3fb['params']['id']}})[_0xd85a('0x22')](handleEntityNotFound(_0x46da14,null))[_0xd85a('0x22')](function(_0x51a79b){if(_0x51a79b){_0x4e648c=_0x51a79b;_0x24df31[_0xd85a('0x2c')]=_['keys'](db[_0xd85a('0x45')][_0xd85a('0x29')]);_0x24df31[_0xd85a('0x2d')]=_[_0xd85a('0x3f')](_0x22d3fb[_0xd85a('0x2d')]);_0x24df31[_0xd85a('0x2e')]=_[_0xd85a('0x2f')](_0x24df31['model'],_0x24df31[_0xd85a('0x2d')]);_0x6f0325[_0xd85a('0x30')]=_['intersection'](_0x24df31[_0xd85a('0x2c')],qs[_0xd85a('0x31')](_0x22d3fb[_0xd85a('0x2d')]['fields']));_0x6f0325[_0xd85a('0x30')]=_0x6f0325[_0xd85a('0x30')][_0xd85a('0x32')]?_0x6f0325[_0xd85a('0x30')]:_0x24df31['model'];_0x6f0325[_0xd85a('0x34')]=qs['sort'](_0x22d3fb[_0xd85a('0x2d')][_0xd85a('0x35')]);_0x6f0325[_0xd85a('0x36')]=qs[_0xd85a('0x2e')](_[_0xd85a('0x46')](_0x22d3fb[_0xd85a('0x2d')],_0x24df31[_0xd85a('0x2e')]));if(_0x22d3fb['query'][_0xd85a('0x37')]){_0x6f0325['where']=_[_0xd85a('0x38')](_0x6f0325[_0xd85a('0x36')],{'$or':_[_0xd85a('0x27')](_0x6f0325[_0xd85a('0x30')],function(_0x384437){var _0x26bc72={};_0x26bc72[_0x384437]={'$like':'%'+_0x22d3fb[_0xd85a('0x2d')][_0xd85a('0x37')]+'%'};return _0x26bc72;})});}_0x6f0325=_[_0xd85a('0x38')]({},_0x6f0325,_0x22d3fb[_0xd85a('0x39')]);return _0x4e648c[_0xd85a('0x47')](_0x6f0325);}})[_0xd85a('0x22')](function(_0x54d14e){if(_0x54d14e){_0x3f0915=_0x54d14e[_0xd85a('0x32')];if(!_0x22d3fb[_0xd85a('0x2d')][_0xd85a('0x33')]('nolimit')){_0x6f0325['limit']=qs[_0xd85a('0x1c')](_0x22d3fb[_0xd85a('0x2d')][_0xd85a('0x1c')]);_0x6f0325[_0xd85a('0x1a')]=qs[_0xd85a('0x1a')](_0x22d3fb[_0xd85a('0x2d')][_0xd85a('0x1a')]);}return _0x4e648c[_0xd85a('0x47')](_0x6f0325);}})[_0xd85a('0x22')](function(_0x2cfc3c){if(_0x2cfc3c){return _0x2cfc3c?{'count':_0x3f0915,'rows':_0x2cfc3c}:null;}})[_0xd85a('0x22')](respondWithResult(_0x46da14,null))[_0xd85a('0x43')](handleError(_0x46da14,null));};exports[_0xd85a('0x48')]=function(_0x3abbc9,_0x532e86,_0x5c3a02){var _0x439d52={};var _0x3a1269={};var _0x2a385b;var _0x83f6c9;return db[_0xd85a('0x28')]['findOne']({'where':{'id':_0x3abbc9['params']['id']}})['then'](handleEntityNotFound(_0x532e86,null))[_0xd85a('0x22')](function(_0x249fff){if(_0x249fff){_0x2a385b=_0x249fff;_0x3a1269['model']=_[_0xd85a('0x3f')](db[_0xd85a('0x45')]['rawAttributes']);_0x3a1269[_0xd85a('0x2d')]=_['keys'](_0x3abbc9[_0xd85a('0x2d')]);_0x3a1269[_0xd85a('0x2e')]=_['intersection'](_0x3a1269[_0xd85a('0x2c')],_0x3a1269[_0xd85a('0x2d')]);_0x439d52[_0xd85a('0x30')]=_[_0xd85a('0x2f')](_0x3a1269[_0xd85a('0x2c')],qs['fields'](_0x3abbc9['query']['fields']));_0x439d52[_0xd85a('0x30')]=_0x439d52[_0xd85a('0x30')][_0xd85a('0x32')]?_0x439d52[_0xd85a('0x30')]:_0x3a1269['model'];_0x439d52['order']=qs[_0xd85a('0x35')](_0x3abbc9[_0xd85a('0x2d')][_0xd85a('0x35')]);_0x439d52[_0xd85a('0x36')]=qs[_0xd85a('0x2e')](_[_0xd85a('0x46')](_0x3abbc9[_0xd85a('0x2d')],_0x3a1269[_0xd85a('0x2e')]));if(_0x3abbc9[_0xd85a('0x2d')]['filter']){_0x439d52['where']=_[_0xd85a('0x38')](_0x439d52[_0xd85a('0x36')],{'$or':_[_0xd85a('0x27')](_0x439d52[_0xd85a('0x30')],function(_0x3b54af){var _0xed79ac={};_0xed79ac[_0x3b54af]={'$like':'%'+_0x3abbc9['query'][_0xd85a('0x37')]+'%'};return _0xed79ac;})});}_0x439d52=_['merge']({},_0x439d52,_0x3abbc9[_0xd85a('0x39')]);return _0x2a385b['getSubjects'](_0x439d52);}})[_0xd85a('0x22')](function(_0x396ab1){if(_0x396ab1){_0x83f6c9=_0x396ab1[_0xd85a('0x32')];if(!_0x3abbc9['query'][_0xd85a('0x33')](_0xd85a('0x49'))){_0x439d52[_0xd85a('0x1c')]=qs[_0xd85a('0x1c')](_0x3abbc9[_0xd85a('0x2d')][_0xd85a('0x1c')]);_0x439d52[_0xd85a('0x1a')]=qs['offset'](_0x3abbc9[_0xd85a('0x2d')][_0xd85a('0x1a')]);}return _0x2a385b[_0xd85a('0x48')](_0x439d52);}})[_0xd85a('0x22')](function(_0x280f2e){if(_0x280f2e){return _0x280f2e?{'count':_0x83f6c9,'rows':_0x280f2e}:null;}})['then'](respondWithResult(_0x532e86,null))[_0xd85a('0x43')](handleError(_0x532e86,null));};exports['getDescriptions']=function(_0x2188a8,_0x5cc0a6,_0x523b56){var _0x410fe2={};var _0x46bd6e={};var _0x398999;var _0x1b4827;return db[_0xd85a('0x28')][_0xd85a('0x4a')]({'where':{'id':_0x2188a8[_0xd85a('0x44')]['id']}})[_0xd85a('0x22')](handleEntityNotFound(_0x5cc0a6,null))[_0xd85a('0x22')](function(_0x5bf945){if(_0x5bf945){_0x398999=_0x5bf945;_0x46bd6e[_0xd85a('0x2c')]=_[_0xd85a('0x3f')](db[_0xd85a('0x45')][_0xd85a('0x29')]);_0x46bd6e[_0xd85a('0x2d')]=_[_0xd85a('0x3f')](_0x2188a8[_0xd85a('0x2d')]);_0x46bd6e[_0xd85a('0x2e')]=_['intersection'](_0x46bd6e[_0xd85a('0x2c')],_0x46bd6e[_0xd85a('0x2d')]);_0x410fe2[_0xd85a('0x30')]=_['intersection'](_0x46bd6e[_0xd85a('0x2c')],qs[_0xd85a('0x31')](_0x2188a8['query'][_0xd85a('0x31')]));_0x410fe2['attributes']=_0x410fe2[_0xd85a('0x30')]['length']?_0x410fe2['attributes']:_0x46bd6e['model'];_0x410fe2[_0xd85a('0x34')]=qs[_0xd85a('0x35')](_0x2188a8[_0xd85a('0x2d')][_0xd85a('0x35')]);_0x410fe2[_0xd85a('0x36')]=qs['filters'](_['pick'](_0x2188a8[_0xd85a('0x2d')],_0x46bd6e[_0xd85a('0x2e')]));if(_0x2188a8[_0xd85a('0x2d')]['filter']){_0x410fe2[_0xd85a('0x36')]=_[_0xd85a('0x38')](_0x410fe2[_0xd85a('0x36')],{'$or':_[_0xd85a('0x27')](_0x410fe2['attributes'],function(_0x3d62db){var _0x47bc4b={};_0x47bc4b[_0x3d62db]={'$like':'%'+_0x2188a8[_0xd85a('0x2d')][_0xd85a('0x37')]+'%'};return _0x47bc4b;})});}_0x410fe2=_[_0xd85a('0x38')]({},_0x410fe2,_0x2188a8[_0xd85a('0x39')]);return _0x398999['getDescriptions'](_0x410fe2);}})[_0xd85a('0x22')](function(_0x3c1504){if(_0x3c1504){_0x1b4827=_0x3c1504[_0xd85a('0x32')];if(!_0x2188a8[_0xd85a('0x2d')]['hasOwnProperty'](_0xd85a('0x49'))){_0x410fe2[_0xd85a('0x1c')]=qs[_0xd85a('0x1c')](_0x2188a8['query']['limit']);_0x410fe2['offset']=qs[_0xd85a('0x1a')](_0x2188a8[_0xd85a('0x2d')][_0xd85a('0x1a')]);}return _0x398999[_0xd85a('0x4b')](_0x410fe2);}})[_0xd85a('0x22')](function(_0x34795f){if(_0x34795f){return _0x34795f?{'count':_0x1b4827,'rows':_0x34795f}:null;}})['then'](respondWithResult(_0x5cc0a6,null))[_0xd85a('0x43')](handleError(_0x5cc0a6,null));};
\ No newline at end of file
+var _0xb527=['to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','status','end','offset','limit','undefined','Content-Range','apply','reject','save','update','then','destroy','sendStatus','error','stack','name','send','map','fieldName','key','query','filters','model','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','type','ServicenowConfiguration','includeAll','include','findAll','rows','catch','show','params','keys','rawAttributes','intersection','options','find','create','body','getFields','findOne','order','ServicenowField','getSubjects','getDescriptions','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path'];(function(_0x3bdbcf,_0x4cf440){var _0x358bfa=function(_0x1d6ff0){while(--_0x1d6ff0){_0x3bdbcf['push'](_0x3bdbcf['shift']());}};_0x358bfa(++_0x4cf440);}(_0xb527,0xe7));var _0x7b52=function(_0x424da2,_0x457bfe){_0x424da2=_0x424da2-0x0;var _0x4d4577=_0xb527[_0x424da2];return _0x4d4577;};'use strict';var emlformat=require(_0x7b52('0x0'));var rimraf=require(_0x7b52('0x1'));var zipdir=require(_0x7b52('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x7b52('0x3'));var moment=require(_0x7b52('0x4'));var BPromise=require(_0x7b52('0x5'));var Mustache=require(_0x7b52('0x6'));var util=require(_0x7b52('0x7'));var path=require(_0x7b52('0x8'));var sox=require('sox');var csv=require(_0x7b52('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x7b52('0xa'));var _=require(_0x7b52('0xb'));var squel=require(_0x7b52('0xc'));var crypto=require(_0x7b52('0xd'));var jsforce=require(_0x7b52('0xe'));var deskjs=require(_0x7b52('0xf'));var toCsv=require(_0x7b52('0x9'));var querystring=require('querystring');var Papa=require(_0x7b52('0x10'));var Redis=require(_0x7b52('0x11'));var authService=require(_0x7b52('0x12'));var qs=require(_0x7b52('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x7b52('0x14'));var logger=require('../../config/logger')(_0x7b52('0x15'));var utils=require(_0x7b52('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x7b52('0x17'));var db=require(_0x7b52('0x18'))['db'];function respondWithStatusCode(_0x416501,_0x3e1997){_0x3e1997=_0x3e1997||0xcc;return function(_0x2e8871){if(_0x2e8871){return _0x416501['sendStatus'](_0x3e1997);}return _0x416501[_0x7b52('0x19')](_0x3e1997)[_0x7b52('0x1a')]();};}function respondWithResult(_0x2ee793,_0x36daf5){_0x36daf5=_0x36daf5||0xc8;return function(_0x4f9bd6){if(_0x4f9bd6){return _0x2ee793[_0x7b52('0x19')](_0x36daf5)['json'](_0x4f9bd6);}};}function respondWithFilteredResult(_0x40dd70,_0x17c0ea){return function(_0x42c26c){if(_0x42c26c){var _0x567627=typeof _0x17c0ea[_0x7b52('0x1b')]==='undefined'&&typeof _0x17c0ea[_0x7b52('0x1c')]===_0x7b52('0x1d');var _0x58a7cb=_0x42c26c['count'];var _0x5bd8cf=_0x567627?0x0:_0x17c0ea[_0x7b52('0x1b')];var _0xe1392=_0x567627?_0x42c26c['count']:_0x17c0ea[_0x7b52('0x1b')]+_0x17c0ea[_0x7b52('0x1c')];var _0x2e8ed;if(_0xe1392>=_0x58a7cb){_0xe1392=_0x58a7cb;_0x2e8ed=0xc8;}else{_0x2e8ed=0xce;}_0x40dd70['status'](_0x2e8ed);return _0x40dd70['set'](_0x7b52('0x1e'),_0x5bd8cf+'-'+_0xe1392+'/'+_0x58a7cb)['json'](_0x42c26c);}return null;};}function patchUpdates(_0x262c7f){return function(_0x3d9300){try{jsonpatch[_0x7b52('0x1f')](_0x3d9300,_0x262c7f,!![]);}catch(_0x2b51c3){return BPromise[_0x7b52('0x20')](_0x2b51c3);}return _0x3d9300[_0x7b52('0x21')]();};}function saveUpdates(_0x6a1d88,_0x5ba13a){return function(_0x4b8686){if(_0x4b8686){return _0x4b8686[_0x7b52('0x22')](_0x6a1d88)[_0x7b52('0x23')](function(_0xbf4ac8){return _0xbf4ac8;});}return null;};}function removeEntity(_0x46698a,_0xf3aaee){return function(_0x4658f7){if(_0x4658f7){return _0x4658f7[_0x7b52('0x24')]()['then'](function(){_0x46698a[_0x7b52('0x19')](0xcc)[_0x7b52('0x1a')]();});}};}function handleEntityNotFound(_0x36a0bc,_0x2fc56e){return function(_0xbff8c0){if(!_0xbff8c0){_0x36a0bc[_0x7b52('0x25')](0x194);}return _0xbff8c0;};}function handleError(_0x525879,_0x5a3e3e){_0x5a3e3e=_0x5a3e3e||0x1f4;return function(_0x529703){logger[_0x7b52('0x26')](_0x529703[_0x7b52('0x27')]);if(_0x529703[_0x7b52('0x28')]){delete _0x529703[_0x7b52('0x28')];}_0x525879[_0x7b52('0x19')](_0x5a3e3e)[_0x7b52('0x29')](_0x529703);};}exports['index']=function(_0x1dded9,_0x214fe3){var _0x36840b={},_0x2cff25={},_0x233b9d={'count':0x0,'rows':[]};var _0x33feb9=_[_0x7b52('0x2a')](db['ServicenowConfiguration']['rawAttributes'],function(_0x574515){return{'name':_0x574515[_0x7b52('0x2b')],'type':_0x574515['type'][_0x7b52('0x2c')]};});_0x2cff25['model']=_[_0x7b52('0x2a')](_0x33feb9,_0x7b52('0x28'));_0x2cff25[_0x7b52('0x2d')]=_['keys'](_0x1dded9[_0x7b52('0x2d')]);_0x2cff25[_0x7b52('0x2e')]=_['intersection'](_0x2cff25[_0x7b52('0x2f')],_0x2cff25[_0x7b52('0x2d')]);_0x36840b[_0x7b52('0x30')]=_['intersection'](_0x2cff25[_0x7b52('0x2f')],qs[_0x7b52('0x31')](_0x1dded9['query'][_0x7b52('0x31')]));_0x36840b[_0x7b52('0x30')]=_0x36840b[_0x7b52('0x30')][_0x7b52('0x32')]?_0x36840b['attributes']:_0x2cff25[_0x7b52('0x2f')];if(!_0x1dded9[_0x7b52('0x2d')][_0x7b52('0x33')](_0x7b52('0x34'))){_0x36840b['limit']=qs['limit'](_0x1dded9['query'][_0x7b52('0x1c')]);_0x36840b[_0x7b52('0x1b')]=qs[_0x7b52('0x1b')](_0x1dded9['query'][_0x7b52('0x1b')]);}_0x36840b['order']=qs[_0x7b52('0x35')](_0x1dded9[_0x7b52('0x2d')][_0x7b52('0x35')]);_0x36840b[_0x7b52('0x36')]=qs[_0x7b52('0x2e')](_[_0x7b52('0x37')](_0x1dded9['query'],_0x2cff25[_0x7b52('0x2e')]),_0x33feb9);if(_0x1dded9[_0x7b52('0x2d')][_0x7b52('0x38')]){_0x36840b[_0x7b52('0x36')]=_[_0x7b52('0x39')](_0x36840b[_0x7b52('0x36')],{'$or':_[_0x7b52('0x2a')](_0x33feb9,function(_0x5ed110){if(_0x5ed110[_0x7b52('0x3a')]!=='VIRTUAL'){var _0x3a69ad={};_0x3a69ad[_0x5ed110[_0x7b52('0x28')]]={'$like':'%'+_0x1dded9[_0x7b52('0x2d')][_0x7b52('0x38')]+'%'};return _0x3a69ad;}})});}_0x36840b=_[_0x7b52('0x39')]({},_0x36840b,_0x1dded9['options']);var _0x19e52a={'where':_0x36840b['where']};return db[_0x7b52('0x3b')]['count'](_0x19e52a)[_0x7b52('0x23')](function(_0x45013c){_0x233b9d['count']=_0x45013c;if(_0x1dded9[_0x7b52('0x2d')][_0x7b52('0x3c')]){_0x36840b[_0x7b52('0x3d')]=[{'all':!![]}];}return db[_0x7b52('0x3b')][_0x7b52('0x3e')](_0x36840b);})[_0x7b52('0x23')](function(_0xe346c5){_0x233b9d[_0x7b52('0x3f')]=_0xe346c5;return _0x233b9d;})[_0x7b52('0x23')](respondWithFilteredResult(_0x214fe3,_0x36840b))[_0x7b52('0x40')](handleError(_0x214fe3,null));};exports[_0x7b52('0x41')]=function(_0x2b8f23,_0x1c3087){var _0x497011={'raw':![],'where':{'id':_0x2b8f23[_0x7b52('0x42')]['id']}},_0x20d965={};_0x20d965[_0x7b52('0x2f')]=_[_0x7b52('0x43')](db[_0x7b52('0x3b')][_0x7b52('0x44')]);_0x20d965['query']=_[_0x7b52('0x43')](_0x2b8f23[_0x7b52('0x2d')]);_0x20d965[_0x7b52('0x2e')]=_[_0x7b52('0x45')](_0x20d965[_0x7b52('0x2f')],_0x20d965[_0x7b52('0x2d')]);_0x497011[_0x7b52('0x30')]=_[_0x7b52('0x45')](_0x20d965[_0x7b52('0x2f')],qs[_0x7b52('0x31')](_0x2b8f23['query'][_0x7b52('0x31')]));_0x497011['attributes']=_0x497011[_0x7b52('0x30')][_0x7b52('0x32')]?_0x497011[_0x7b52('0x30')]:_0x20d965[_0x7b52('0x2f')];if(_0x2b8f23[_0x7b52('0x2d')]['includeAll']){_0x497011[_0x7b52('0x3d')]=[{'all':!![]}];}_0x497011=_[_0x7b52('0x39')]({},_0x497011,_0x2b8f23[_0x7b52('0x46')]);return db[_0x7b52('0x3b')][_0x7b52('0x47')](_0x497011)[_0x7b52('0x23')](handleEntityNotFound(_0x1c3087,null))[_0x7b52('0x23')](respondWithResult(_0x1c3087,null))[_0x7b52('0x40')](handleError(_0x1c3087,null));};exports[_0x7b52('0x48')]=function(_0x451d70,_0x27755a){return db['ServicenowConfiguration']['create'](_0x451d70[_0x7b52('0x49')],{})[_0x7b52('0x23')](respondWithResult(_0x27755a,0xc9))['catch'](handleError(_0x27755a,null));};exports[_0x7b52('0x22')]=function(_0x479899,_0xd9cef5){if(_0x479899[_0x7b52('0x49')]['id']){delete _0x479899[_0x7b52('0x49')]['id'];}return db[_0x7b52('0x3b')]['find']({'where':{'id':_0x479899[_0x7b52('0x42')]['id']}})[_0x7b52('0x23')](handleEntityNotFound(_0xd9cef5,null))[_0x7b52('0x23')](saveUpdates(_0x479899[_0x7b52('0x49')],null))[_0x7b52('0x23')](respondWithResult(_0xd9cef5,null))[_0x7b52('0x40')](handleError(_0xd9cef5,null));};exports[_0x7b52('0x24')]=function(_0x26ba29,_0x55e17c){return db['ServicenowConfiguration'][_0x7b52('0x47')]({'where':{'id':_0x26ba29[_0x7b52('0x42')]['id']}})[_0x7b52('0x23')](handleEntityNotFound(_0x55e17c,null))['then'](removeEntity(_0x55e17c,null))[_0x7b52('0x40')](handleError(_0x55e17c,null));};exports[_0x7b52('0x4a')]=function(_0x23c7c4,_0x121217,_0xef4bd9){var _0x252eaa={};var _0x48efd7={};var _0x83d8de;var _0xe5c4d6;return db[_0x7b52('0x3b')][_0x7b52('0x4b')]({'where':{'id':_0x23c7c4[_0x7b52('0x42')]['id']}})[_0x7b52('0x23')](handleEntityNotFound(_0x121217,null))[_0x7b52('0x23')](function(_0x2e812d){if(_0x2e812d){_0x83d8de=_0x2e812d;_0x48efd7[_0x7b52('0x2f')]=_[_0x7b52('0x43')](db['ServicenowField'][_0x7b52('0x44')]);_0x48efd7[_0x7b52('0x2d')]=_[_0x7b52('0x43')](_0x23c7c4['query']);_0x48efd7[_0x7b52('0x2e')]=_['intersection'](_0x48efd7[_0x7b52('0x2f')],_0x48efd7['query']);_0x252eaa[_0x7b52('0x30')]=_[_0x7b52('0x45')](_0x48efd7[_0x7b52('0x2f')],qs[_0x7b52('0x31')](_0x23c7c4[_0x7b52('0x2d')][_0x7b52('0x31')]));_0x252eaa['attributes']=_0x252eaa['attributes']['length']?_0x252eaa[_0x7b52('0x30')]:_0x48efd7[_0x7b52('0x2f')];_0x252eaa[_0x7b52('0x4c')]=qs[_0x7b52('0x35')](_0x23c7c4[_0x7b52('0x2d')][_0x7b52('0x35')]);_0x252eaa['where']=qs[_0x7b52('0x2e')](_['pick'](_0x23c7c4['query'],_0x48efd7[_0x7b52('0x2e')]));if(_0x23c7c4['query']['filter']){_0x252eaa[_0x7b52('0x36')]=_[_0x7b52('0x39')](_0x252eaa[_0x7b52('0x36')],{'$or':_[_0x7b52('0x2a')](_0x252eaa[_0x7b52('0x30')],function(_0x269c0c){var _0x70d484={};_0x70d484[_0x269c0c]={'$like':'%'+_0x23c7c4[_0x7b52('0x2d')][_0x7b52('0x38')]+'%'};return _0x70d484;})});}_0x252eaa=_[_0x7b52('0x39')]({},_0x252eaa,_0x23c7c4[_0x7b52('0x46')]);return _0x83d8de[_0x7b52('0x4a')](_0x252eaa);}})[_0x7b52('0x23')](function(_0x307f50){if(_0x307f50){_0xe5c4d6=_0x307f50[_0x7b52('0x32')];if(!_0x23c7c4[_0x7b52('0x2d')]['hasOwnProperty'](_0x7b52('0x34'))){_0x252eaa[_0x7b52('0x1c')]=qs[_0x7b52('0x1c')](_0x23c7c4[_0x7b52('0x2d')][_0x7b52('0x1c')]);_0x252eaa[_0x7b52('0x1b')]=qs[_0x7b52('0x1b')](_0x23c7c4[_0x7b52('0x2d')]['offset']);}return _0x83d8de[_0x7b52('0x4a')](_0x252eaa);}})['then'](function(_0x2e3793){if(_0x2e3793){return _0x2e3793?{'count':_0xe5c4d6,'rows':_0x2e3793}:null;}})[_0x7b52('0x23')](respondWithResult(_0x121217,null))[_0x7b52('0x40')](handleError(_0x121217,null));};exports['getSubjects']=function(_0x3ecf74,_0x169e5f,_0x2bd78e){var _0x398e8c={};var _0x3fef11={};var _0x430d3d;var _0x10ca57;return db[_0x7b52('0x3b')][_0x7b52('0x4b')]({'where':{'id':_0x3ecf74['params']['id']}})['then'](handleEntityNotFound(_0x169e5f,null))['then'](function(_0x4b461f){if(_0x4b461f){_0x430d3d=_0x4b461f;_0x3fef11[_0x7b52('0x2f')]=_[_0x7b52('0x43')](db[_0x7b52('0x4d')][_0x7b52('0x44')]);_0x3fef11[_0x7b52('0x2d')]=_[_0x7b52('0x43')](_0x3ecf74['query']);_0x3fef11[_0x7b52('0x2e')]=_[_0x7b52('0x45')](_0x3fef11[_0x7b52('0x2f')],_0x3fef11['query']);_0x398e8c[_0x7b52('0x30')]=_['intersection'](_0x3fef11[_0x7b52('0x2f')],qs[_0x7b52('0x31')](_0x3ecf74[_0x7b52('0x2d')][_0x7b52('0x31')]));_0x398e8c[_0x7b52('0x30')]=_0x398e8c[_0x7b52('0x30')][_0x7b52('0x32')]?_0x398e8c[_0x7b52('0x30')]:_0x3fef11[_0x7b52('0x2f')];_0x398e8c['order']=qs[_0x7b52('0x35')](_0x3ecf74['query'][_0x7b52('0x35')]);_0x398e8c[_0x7b52('0x36')]=qs[_0x7b52('0x2e')](_[_0x7b52('0x37')](_0x3ecf74['query'],_0x3fef11['filters']));if(_0x3ecf74[_0x7b52('0x2d')][_0x7b52('0x38')]){_0x398e8c[_0x7b52('0x36')]=_[_0x7b52('0x39')](_0x398e8c[_0x7b52('0x36')],{'$or':_[_0x7b52('0x2a')](_0x398e8c[_0x7b52('0x30')],function(_0x1b0bf4){var _0x28dc62={};_0x28dc62[_0x1b0bf4]={'$like':'%'+_0x3ecf74[_0x7b52('0x2d')][_0x7b52('0x38')]+'%'};return _0x28dc62;})});}_0x398e8c=_[_0x7b52('0x39')]({},_0x398e8c,_0x3ecf74[_0x7b52('0x46')]);return _0x430d3d['getSubjects'](_0x398e8c);}})['then'](function(_0xd226aa){if(_0xd226aa){_0x10ca57=_0xd226aa[_0x7b52('0x32')];if(!_0x3ecf74['query'][_0x7b52('0x33')]('nolimit')){_0x398e8c['limit']=qs['limit'](_0x3ecf74['query'][_0x7b52('0x1c')]);_0x398e8c[_0x7b52('0x1b')]=qs['offset'](_0x3ecf74['query'][_0x7b52('0x1b')]);}return _0x430d3d[_0x7b52('0x4e')](_0x398e8c);}})[_0x7b52('0x23')](function(_0x54605d){if(_0x54605d){return _0x54605d?{'count':_0x10ca57,'rows':_0x54605d}:null;}})[_0x7b52('0x23')](respondWithResult(_0x169e5f,null))['catch'](handleError(_0x169e5f,null));};exports[_0x7b52('0x4f')]=function(_0x834f58,_0x5eba07,_0x46fef8){var _0x4e9409={};var _0x162db6={};var _0x3b9eb0;var _0x4de9d0;return db['ServicenowConfiguration'][_0x7b52('0x4b')]({'where':{'id':_0x834f58[_0x7b52('0x42')]['id']}})[_0x7b52('0x23')](handleEntityNotFound(_0x5eba07,null))['then'](function(_0x4c8cbc){if(_0x4c8cbc){_0x3b9eb0=_0x4c8cbc;_0x162db6[_0x7b52('0x2f')]=_[_0x7b52('0x43')](db[_0x7b52('0x4d')][_0x7b52('0x44')]);_0x162db6[_0x7b52('0x2d')]=_[_0x7b52('0x43')](_0x834f58[_0x7b52('0x2d')]);_0x162db6[_0x7b52('0x2e')]=_['intersection'](_0x162db6[_0x7b52('0x2f')],_0x162db6[_0x7b52('0x2d')]);_0x4e9409['attributes']=_[_0x7b52('0x45')](_0x162db6[_0x7b52('0x2f')],qs[_0x7b52('0x31')](_0x834f58['query'][_0x7b52('0x31')]));_0x4e9409[_0x7b52('0x30')]=_0x4e9409[_0x7b52('0x30')][_0x7b52('0x32')]?_0x4e9409[_0x7b52('0x30')]:_0x162db6['model'];_0x4e9409[_0x7b52('0x4c')]=qs[_0x7b52('0x35')](_0x834f58[_0x7b52('0x2d')][_0x7b52('0x35')]);_0x4e9409[_0x7b52('0x36')]=qs['filters'](_[_0x7b52('0x37')](_0x834f58['query'],_0x162db6[_0x7b52('0x2e')]));if(_0x834f58[_0x7b52('0x2d')]['filter']){_0x4e9409[_0x7b52('0x36')]=_['merge'](_0x4e9409[_0x7b52('0x36')],{'$or':_['map'](_0x4e9409['attributes'],function(_0x5a2623){var _0x48fdaa={};_0x48fdaa[_0x5a2623]={'$like':'%'+_0x834f58[_0x7b52('0x2d')][_0x7b52('0x38')]+'%'};return _0x48fdaa;})});}_0x4e9409=_[_0x7b52('0x39')]({},_0x4e9409,_0x834f58[_0x7b52('0x46')]);return _0x3b9eb0[_0x7b52('0x4f')](_0x4e9409);}})[_0x7b52('0x23')](function(_0x17818f){if(_0x17818f){_0x4de9d0=_0x17818f[_0x7b52('0x32')];if(!_0x834f58[_0x7b52('0x2d')]['hasOwnProperty'](_0x7b52('0x34'))){_0x4e9409[_0x7b52('0x1c')]=qs[_0x7b52('0x1c')](_0x834f58[_0x7b52('0x2d')][_0x7b52('0x1c')]);_0x4e9409[_0x7b52('0x1b')]=qs[_0x7b52('0x1b')](_0x834f58[_0x7b52('0x2d')]['offset']);}return _0x3b9eb0['getDescriptions'](_0x4e9409);}})['then'](function(_0x2e4325){if(_0x2e4325){return _0x2e4325?{'count':_0x4de9d0,'rows':_0x2e4325}:null;}})[_0x7b52('0x23')](respondWithResult(_0x5eba07,null))[_0x7b52('0x40')](handleError(_0x5eba07,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb0ee=['./intServicenowConfiguration.attributes','define','ServicenowConfiguration','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment'];(function(_0x10029d,_0x4eda99){var _0x360d11=function(_0x162c66){while(--_0x162c66){_0x10029d['push'](_0x10029d['shift']());}};_0x360d11(++_0x4eda99);}(_0xb0ee,0x18f));var _0xeb0e=function(_0x4fbfd9,_0x3ab91a){_0x4fbfd9=_0x4fbfd9-0x0;var _0x31dc94=_0xb0ee[_0x4fbfd9];return _0x31dc94;};'use strict';var _=require('lodash');var util=require(_0xeb0e('0x0'));var logger=require(_0xeb0e('0x1'))(_0xeb0e('0x2'));var moment=require(_0xeb0e('0x3'));var BPromise=require(_0xeb0e('0x4'));var rp=require(_0xeb0e('0x5'));var fs=require('fs');var path=require(_0xeb0e('0x6'));var rimraf=require(_0xeb0e('0x7'));var config=require(_0xeb0e('0x8'));var attributes=require(_0xeb0e('0x9'));module['exports']=function(_0x1a95ad,_0x1e8dca){return _0x1a95ad[_0xeb0e('0xa')](_0xeb0e('0xb'),attributes,{'tableName':'int_servicenow_configurations','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x6629=['lodash','api','moment','bluebird','request-promise','rimraf','../../config/environment','./intServicenowConfiguration.attributes','define','int_servicenow_configurations'];(function(_0x104993,_0x3f9a6b){var _0x105a96=function(_0x4ad1cb){while(--_0x4ad1cb){_0x104993['push'](_0x104993['shift']());}};_0x105a96(++_0x3f9a6b);}(_0x6629,0x1c2));var _0x9662=function(_0x57b986,_0x1ead17){_0x57b986=_0x57b986-0x0;var _0x59528b=_0x6629[_0x57b986];return _0x59528b;};'use strict';var _=require(_0x9662('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x9662('0x1'));var moment=require(_0x9662('0x2'));var BPromise=require(_0x9662('0x3'));var rp=require(_0x9662('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x9662('0x5'));var config=require(_0x9662('0x6'));var attributes=require(_0x9662('0x7'));module['exports']=function(_0x32db20,_0x39be49){return _0x32db20[_0x9662('0x8')]('ServicenowConfiguration',attributes,{'tableName':_0x9662('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4471=['catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','client','http','request','then','ServicenowConfiguration,\x20%s,\x20%s','ServicenowConfiguration,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result'];(function(_0x3ed2ef,_0x296c36){var _0x3f231f=function(_0x423f2e){while(--_0x423f2e){_0x3ed2ef['push'](_0x3ed2ef['shift']());}};_0x3f231f(++_0x296c36);}(_0x4471,0xa2));var _0x1447=function(_0x21a9d9,_0x4d5ac8){_0x21a9d9=_0x21a9d9-0x0;var _0x46adce=_0x4471[_0x21a9d9];return _0x46adce;};'use strict';var _=require(_0x1447('0x0'));var util=require(_0x1447('0x1'));var moment=require(_0x1447('0x2'));var BPromise=require(_0x1447('0x3'));var rs=require(_0x1447('0x4'));var fs=require('fs');var Redis=require(_0x1447('0x5'));var db=require(_0x1447('0x6'))['db'];var utils=require(_0x1447('0x7'));var logger=require(_0x1447('0x8'))(_0x1447('0x9'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x1447('0xa')][_0x1447('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x117911,_0x283bbe,_0x58557f){return new BPromise(function(_0x29afb1,_0x146fa1){return client[_0x1447('0xc')](_0x117911,_0x58557f)[_0x1447('0xd')](function(_0x672752){logger['info'](_0x1447('0xe'),_0x283bbe,'request\x20sent');logger['debug'](_0x1447('0xf'),_0x283bbe,_0x1447('0x10'),JSON[_0x1447('0x11')](_0x672752));if(_0x672752[_0x1447('0x12')]){if(_0x672752[_0x1447('0x12')][_0x1447('0x13')]===0x1f4){logger[_0x1447('0x12')]('ServicenowConfiguration,\x20%s,\x20%s',_0x283bbe,_0x672752[_0x1447('0x12')][_0x1447('0x14')]);return _0x146fa1(_0x672752['error'][_0x1447('0x14')]);}logger[_0x1447('0x12')](_0x1447('0xe'),_0x283bbe,_0x672752[_0x1447('0x12')]['message']);return _0x29afb1(_0x672752['error'][_0x1447('0x14')]);}else{logger['info'](_0x1447('0xe'),_0x283bbe,'request\x20sent');_0x29afb1(_0x672752[_0x1447('0x15')][_0x1447('0x14')]);}})[_0x1447('0x16')](function(_0x139461){logger[_0x1447('0x12')](_0x1447('0xe'),_0x283bbe,_0x139461);_0x146fa1(_0x139461);});});}
\ No newline at end of file
+var _0x003f=['ServicenowConfiguration,\x20%s,\x20%s','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','client','http','request','then','info','debug','ServicenowConfiguration,\x20%s,\x20%s,\x20%s','request\x20sent','error','code'];(function(_0x1c814e,_0x539c98){var _0xbc96f=function(_0xb427a0){while(--_0xb427a0){_0x1c814e['push'](_0x1c814e['shift']());}};_0xbc96f(++_0x539c98);}(_0x003f,0x16c));var _0xf003=function(_0x38afe4,_0x118570){_0x38afe4=_0x38afe4-0x0;var _0x5a418c=_0x003f[_0x38afe4];return _0x5a418c;};'use strict';var _=require(_0xf003('0x0'));var util=require(_0xf003('0x1'));var moment=require(_0xf003('0x2'));var BPromise=require(_0xf003('0x3'));var rs=require(_0xf003('0x4'));var fs=require('fs');var Redis=require(_0xf003('0x5'));var db=require(_0xf003('0x6'))['db'];var utils=require(_0xf003('0x7'));var logger=require('../../config/logger')(_0xf003('0x8'));var config=require(_0xf003('0x9'));var jayson=require('jayson/promise');var client=jayson[_0xf003('0xa')][_0xf003('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x165b31,_0x264086,_0x3cd0fc){return new BPromise(function(_0x22848a,_0x4e71f6){return client[_0xf003('0xc')](_0x165b31,_0x3cd0fc)[_0xf003('0xd')](function(_0x10dca2){logger[_0xf003('0xe')]('ServicenowConfiguration,\x20%s,\x20%s',_0x264086,'request\x20sent');logger[_0xf003('0xf')](_0xf003('0x10'),_0x264086,_0xf003('0x11'),JSON['stringify'](_0x10dca2));if(_0x10dca2[_0xf003('0x12')]){if(_0x10dca2[_0xf003('0x12')][_0xf003('0x13')]===0x1f4){logger['error'](_0xf003('0x14'),_0x264086,_0x10dca2[_0xf003('0x12')][_0xf003('0x15')]);return _0x4e71f6(_0x10dca2[_0xf003('0x12')][_0xf003('0x15')]);}logger[_0xf003('0x12')](_0xf003('0x14'),_0x264086,_0x10dca2[_0xf003('0x12')][_0xf003('0x15')]);return _0x22848a(_0x10dca2[_0xf003('0x12')]['message']);}else{logger[_0xf003('0xe')](_0xf003('0x14'),_0x264086,'request\x20sent');_0x22848a(_0x10dca2[_0xf003('0x16')][_0xf003('0x15')]);}})[_0xf003('0x17')](function(_0x19de4b){logger['error'](_0xf003('0x14'),_0x264086,_0x19de4b);_0x4e71f6(_0x19de4b);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6c95=['exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','./intServicenowField.controller','get','isAuthenticated','index','/:id','post','create','put','destroy'];(function(_0x2a6e24,_0x5ba22c){var _0x27e170=function(_0x3e00f7){while(--_0x3e00f7){_0x2a6e24['push'](_0x2a6e24['shift']());}};_0x27e170(++_0x5ba22c);}(_0x6c95,0x16a));var _0x56c9=function(_0xa3288e,_0x46a673){_0xa3288e=_0xa3288e-0x0;var _0x119519=_0x6c95[_0xa3288e];return _0x119519;};'use strict';var multer=require(_0x56c9('0x0'));var util=require(_0x56c9('0x1'));var path=require(_0x56c9('0x2'));var timeout=require(_0x56c9('0x3'));var express=require(_0x56c9('0x4'));var router=express[_0x56c9('0x5')]();var fs_extra=require(_0x56c9('0x6'));var auth=require(_0x56c9('0x7'));var interaction=require('../../components/interaction/service');var config=require(_0x56c9('0x8'));var controller=require(_0x56c9('0x9'));router[_0x56c9('0xa')]('/',auth[_0x56c9('0xb')](),controller[_0x56c9('0xc')]);router['get'](_0x56c9('0xd'),auth[_0x56c9('0xb')](),controller['show']);router[_0x56c9('0xe')]('/',auth['isAuthenticated'](),controller[_0x56c9('0xf')]);router[_0x56c9('0x10')](_0x56c9('0xd'),auth[_0x56c9('0xb')](),controller['update']);router['delete']('/:id',auth[_0x56c9('0xb')](),controller[_0x56c9('0x11')]);module[_0x56c9('0x12')]=router;
\ No newline at end of file
+var _0x0f63=['post','create','put','/:id','update','delete','destroy','exports','connect-timeout','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intServicenowField.controller','get','isAuthenticated','index','show'];(function(_0x5b3c13,_0x49c8f9){var _0x5a263b=function(_0x2f49fa){while(--_0x2f49fa){_0x5b3c13['push'](_0x5b3c13['shift']());}};_0x5a263b(++_0x49c8f9);}(_0x0f63,0xe0));var _0x30f6=function(_0x826548,_0x2e8df0){_0x826548=_0x826548-0x0;var _0x70f261=_0x0f63[_0x826548];return _0x70f261;};'use strict';var multer=require('multer');var util=require('util');var path=require('path');var timeout=require(_0x30f6('0x0'));var express=require('express');var router=express['Router']();var fs_extra=require(_0x30f6('0x1'));var auth=require(_0x30f6('0x2'));var interaction=require(_0x30f6('0x3'));var config=require(_0x30f6('0x4'));var controller=require(_0x30f6('0x5'));router[_0x30f6('0x6')]('/',auth[_0x30f6('0x7')](),controller[_0x30f6('0x8')]);router[_0x30f6('0x6')]('/:id',auth[_0x30f6('0x7')](),controller[_0x30f6('0x9')]);router[_0x30f6('0xa')]('/',auth['isAuthenticated'](),controller[_0x30f6('0xb')]);router[_0x30f6('0xc')](_0x30f6('0xd'),auth[_0x30f6('0x7')](),controller[_0x30f6('0xe')]);router[_0x30f6('0xf')](_0x30f6('0xd'),auth['isAuthenticated'](),controller[_0x30f6('0x10')]);module[_0x30f6('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe605=['customVariable','STRING','BOOLEAN','sequelize','exports','ENUM','string','variable'];(function(_0x2d7f0e,_0x3e6fbd){var _0x110b07=function(_0x557b00){while(--_0x557b00){_0x2d7f0e['push'](_0x2d7f0e['shift']());}};_0x110b07(++_0x3e6fbd);}(_0xe605,0xcb));var _0x5e60=function(_0x21890a,_0x118500){_0x21890a=_0x21890a-0x0;var _0x3f55e5=_0xe605[_0x21890a];return _0x3f55e5;};'use strict';var Sequelize=require(_0x5e60('0x0'));module[_0x5e60('0x1')]={'type':{'type':Sequelize[_0x5e60('0x2')](_0x5e60('0x3'),_0x5e60('0x4'),_0x5e60('0x5'),'keyValue','picklist'),'defaultValue':'string'},'content':{'type':Sequelize[_0x5e60('0x6')]},'key':{'type':Sequelize[_0x5e60('0x6')]},'keyType':{'type':Sequelize[_0x5e60('0x2')](_0x5e60('0x3'),'variable',_0x5e60('0x5'))},'keyContent':{'type':Sequelize[_0x5e60('0x6')]},'idField':{'type':Sequelize[_0x5e60('0x6')]},'nameField':{'type':Sequelize[_0x5e60('0x6')]},'customField':{'type':Sequelize[_0x5e60('0x7')],'defaultValue':!![]},'variableName':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0xc15c=['BOOLEAN','sequelize','exports','ENUM','variable','customVariable','keyValue','picklist','string','STRING'];(function(_0x2c23d8,_0x5ec9f9){var _0x1b8023=function(_0x29568b){while(--_0x29568b){_0x2c23d8['push'](_0x2c23d8['shift']());}};_0x1b8023(++_0x5ec9f9);}(_0xc15c,0xfb));var _0xcc15=function(_0x398074,_0x3830a7){_0x398074=_0x398074-0x0;var _0x506f5d=_0xc15c[_0x398074];return _0x506f5d;};'use strict';var Sequelize=require(_0xcc15('0x0'));module[_0xcc15('0x1')]={'type':{'type':Sequelize[_0xcc15('0x2')]('string',_0xcc15('0x3'),_0xcc15('0x4'),_0xcc15('0x5'),_0xcc15('0x6')),'defaultValue':_0xcc15('0x7')},'content':{'type':Sequelize[_0xcc15('0x8')]},'key':{'type':Sequelize['STRING']},'keyType':{'type':Sequelize[_0xcc15('0x2')](_0xcc15('0x7'),_0xcc15('0x3'),_0xcc15('0x4'))},'keyContent':{'type':Sequelize['STRING']},'idField':{'type':Sequelize[_0xcc15('0x8')]},'nameField':{'type':Sequelize[_0xcc15('0x8')]},'customField':{'type':Sequelize[_0xcc15('0x9')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0xcc15('0x8')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb684=['apply','save','update','then','destroy','error','name','send','index','map','rawAttributes','fieldName','type','model','query','keys','intersection','attributes','fields','length','nolimit','order','sort','where','filters','pick','filter','merge','VIRTUAL','ServicenowField','includeAll','findAll','rows','catch','show','options','find','create','body','params','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','path','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','limit','count','offset','Content-Range'];(function(_0x18ab2a,_0x4debcd){var _0x16dcee=function(_0x10107a){while(--_0x10107a){_0x18ab2a['push'](_0x18ab2a['shift']());}};_0x16dcee(++_0x4debcd);}(_0xb684,0x72));var _0x4b68=function(_0x253225,_0x10b859){_0x253225=_0x253225-0x0;var _0x4a8517=_0xb684[_0x253225];return _0x4a8517;};'use strict';var emlformat=require(_0x4b68('0x0'));var rimraf=require(_0x4b68('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x4b68('0x2'));var rp=require(_0x4b68('0x3'));var moment=require(_0x4b68('0x4'));var BPromise=require(_0x4b68('0x5'));var Mustache=require(_0x4b68('0x6'));var util=require('util');var path=require(_0x4b68('0x7'));var sox=require('sox');var csv=require(_0x4b68('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x4b68('0x9'));var _=require(_0x4b68('0xa'));var squel=require(_0x4b68('0xb'));var crypto=require(_0x4b68('0xc'));var jsforce=require(_0x4b68('0xd'));var deskjs=require(_0x4b68('0xe'));var toCsv=require(_0x4b68('0x8'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x4b68('0xf'));var authService=require(_0x4b68('0x10'));var qs=require(_0x4b68('0x11'));var as=require(_0x4b68('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x4b68('0x13'))(_0x4b68('0x14'));var utils=require(_0x4b68('0x15'));var config=require(_0x4b68('0x16'));var licenseUtil=require(_0x4b68('0x17'));var db=require(_0x4b68('0x18'))['db'];function respondWithStatusCode(_0x36dee2,_0x52f293){_0x52f293=_0x52f293||0xcc;return function(_0xdc7d6b){if(_0xdc7d6b){return _0x36dee2[_0x4b68('0x19')](_0x52f293);}return _0x36dee2[_0x4b68('0x1a')](_0x52f293)[_0x4b68('0x1b')]();};}function respondWithResult(_0x5434b4,_0x37e9fd){_0x37e9fd=_0x37e9fd||0xc8;return function(_0x33aff0){if(_0x33aff0){return _0x5434b4[_0x4b68('0x1a')](_0x37e9fd)[_0x4b68('0x1c')](_0x33aff0);}};}function respondWithFilteredResult(_0x16e33c,_0x3feaa6){return function(_0xf29f54){if(_0xf29f54){var _0x572f3d=typeof _0x3feaa6['offset']===_0x4b68('0x1d')&&typeof _0x3feaa6[_0x4b68('0x1e')]===_0x4b68('0x1d');var _0xddbade=_0xf29f54[_0x4b68('0x1f')];var _0x2327e1=_0x572f3d?0x0:_0x3feaa6['offset'];var _0x41be4f=_0x572f3d?_0xf29f54[_0x4b68('0x1f')]:_0x3feaa6[_0x4b68('0x20')]+_0x3feaa6[_0x4b68('0x1e')];var _0x4bedfa;if(_0x41be4f>=_0xddbade){_0x41be4f=_0xddbade;_0x4bedfa=0xc8;}else{_0x4bedfa=0xce;}_0x16e33c[_0x4b68('0x1a')](_0x4bedfa);return _0x16e33c['set'](_0x4b68('0x21'),_0x2327e1+'-'+_0x41be4f+'/'+_0xddbade)[_0x4b68('0x1c')](_0xf29f54);}return null;};}function patchUpdates(_0x384f9c){return function(_0x1743bb){try{jsonpatch[_0x4b68('0x22')](_0x1743bb,_0x384f9c,!![]);}catch(_0x489f7b){return BPromise['reject'](_0x489f7b);}return _0x1743bb[_0x4b68('0x23')]();};}function saveUpdates(_0x219566,_0x60326f){return function(_0x5c5063){if(_0x5c5063){return _0x5c5063[_0x4b68('0x24')](_0x219566)[_0x4b68('0x25')](function(_0xc34b4b){return _0xc34b4b;});}return null;};}function removeEntity(_0xfde4b4,_0x1e3553){return function(_0x37dc28){if(_0x37dc28){return _0x37dc28[_0x4b68('0x26')]()[_0x4b68('0x25')](function(){_0xfde4b4[_0x4b68('0x1a')](0xcc)[_0x4b68('0x1b')]();});}};}function handleEntityNotFound(_0x5d3a18,_0x290ec0){return function(_0x5c2919){if(!_0x5c2919){_0x5d3a18[_0x4b68('0x19')](0x194);}return _0x5c2919;};}function handleError(_0x43b738,_0x476e91){_0x476e91=_0x476e91||0x1f4;return function(_0x48e0a1){logger[_0x4b68('0x27')](_0x48e0a1['stack']);if(_0x48e0a1[_0x4b68('0x28')]){delete _0x48e0a1[_0x4b68('0x28')];}_0x43b738[_0x4b68('0x1a')](_0x476e91)[_0x4b68('0x29')](_0x48e0a1);};}exports[_0x4b68('0x2a')]=function(_0x58306a,_0x4f2892){var _0x2c5493={},_0x38a818={},_0x4713f3={'count':0x0,'rows':[]};var _0xf181cb=_[_0x4b68('0x2b')](db['ServicenowField'][_0x4b68('0x2c')],function(_0xfc2c38){return{'name':_0xfc2c38[_0x4b68('0x2d')],'type':_0xfc2c38[_0x4b68('0x2e')]['key']};});_0x38a818[_0x4b68('0x2f')]=_['map'](_0xf181cb,'name');_0x38a818[_0x4b68('0x30')]=_[_0x4b68('0x31')](_0x58306a['query']);_0x38a818['filters']=_[_0x4b68('0x32')](_0x38a818['model'],_0x38a818['query']);_0x2c5493[_0x4b68('0x33')]=_[_0x4b68('0x32')](_0x38a818[_0x4b68('0x2f')],qs['fields'](_0x58306a['query'][_0x4b68('0x34')]));_0x2c5493[_0x4b68('0x33')]=_0x2c5493[_0x4b68('0x33')][_0x4b68('0x35')]?_0x2c5493[_0x4b68('0x33')]:_0x38a818[_0x4b68('0x2f')];if(!_0x58306a[_0x4b68('0x30')]['hasOwnProperty'](_0x4b68('0x36'))){_0x2c5493[_0x4b68('0x1e')]=qs['limit'](_0x58306a[_0x4b68('0x30')][_0x4b68('0x1e')]);_0x2c5493['offset']=qs[_0x4b68('0x20')](_0x58306a[_0x4b68('0x30')]['offset']);}_0x2c5493[_0x4b68('0x37')]=qs[_0x4b68('0x38')](_0x58306a[_0x4b68('0x30')][_0x4b68('0x38')]);_0x2c5493[_0x4b68('0x39')]=qs[_0x4b68('0x3a')](_[_0x4b68('0x3b')](_0x58306a['query'],_0x38a818[_0x4b68('0x3a')]),_0xf181cb);if(_0x58306a[_0x4b68('0x30')][_0x4b68('0x3c')]){_0x2c5493['where']=_[_0x4b68('0x3d')](_0x2c5493[_0x4b68('0x39')],{'$or':_[_0x4b68('0x2b')](_0xf181cb,function(_0x1a9138){if(_0x1a9138[_0x4b68('0x2e')]!==_0x4b68('0x3e')){var _0x4bdf8c={};_0x4bdf8c[_0x1a9138['name']]={'$like':'%'+_0x58306a[_0x4b68('0x30')]['filter']+'%'};return _0x4bdf8c;}})});}_0x2c5493=_['merge']({},_0x2c5493,_0x58306a['options']);var _0x3fd15d={'where':_0x2c5493['where']};return db[_0x4b68('0x3f')]['count'](_0x3fd15d)[_0x4b68('0x25')](function(_0x4342a3){_0x4713f3[_0x4b68('0x1f')]=_0x4342a3;if(_0x58306a[_0x4b68('0x30')][_0x4b68('0x40')]){_0x2c5493['include']=[{'all':!![]}];}return db['ServicenowField'][_0x4b68('0x41')](_0x2c5493);})[_0x4b68('0x25')](function(_0x4bb7a8){_0x4713f3[_0x4b68('0x42')]=_0x4bb7a8;return _0x4713f3;})['then'](respondWithFilteredResult(_0x4f2892,_0x2c5493))[_0x4b68('0x43')](handleError(_0x4f2892,null));};exports[_0x4b68('0x44')]=function(_0x162655,_0x42839a){var _0x397960={'raw':!![],'where':{'id':_0x162655['params']['id']}},_0x1521a8={};_0x1521a8['model']=_[_0x4b68('0x31')](db[_0x4b68('0x3f')][_0x4b68('0x2c')]);_0x1521a8[_0x4b68('0x30')]=_[_0x4b68('0x31')](_0x162655['query']);_0x1521a8[_0x4b68('0x3a')]=_['intersection'](_0x1521a8[_0x4b68('0x2f')],_0x1521a8[_0x4b68('0x30')]);_0x397960[_0x4b68('0x33')]=_[_0x4b68('0x32')](_0x1521a8[_0x4b68('0x2f')],qs[_0x4b68('0x34')](_0x162655['query'][_0x4b68('0x34')]));_0x397960['attributes']=_0x397960[_0x4b68('0x33')]['length']?_0x397960[_0x4b68('0x33')]:_0x1521a8[_0x4b68('0x2f')];if(_0x162655[_0x4b68('0x30')]['includeAll']){_0x397960['include']=[{'all':!![]}];}_0x397960=_[_0x4b68('0x3d')]({},_0x397960,_0x162655[_0x4b68('0x45')]);return db[_0x4b68('0x3f')][_0x4b68('0x46')](_0x397960)[_0x4b68('0x25')](handleEntityNotFound(_0x42839a,null))[_0x4b68('0x25')](respondWithResult(_0x42839a,null))[_0x4b68('0x43')](handleError(_0x42839a,null));};exports[_0x4b68('0x47')]=function(_0xc955d0,_0x4decc0){return db[_0x4b68('0x3f')][_0x4b68('0x47')](_0xc955d0['body'],{})[_0x4b68('0x25')](respondWithResult(_0x4decc0,0xc9))[_0x4b68('0x43')](handleError(_0x4decc0,null));};exports[_0x4b68('0x24')]=function(_0x10ff6d,_0x2602b9){if(_0x10ff6d[_0x4b68('0x48')]['id']){delete _0x10ff6d[_0x4b68('0x48')]['id'];}return db[_0x4b68('0x3f')][_0x4b68('0x46')]({'where':{'id':_0x10ff6d[_0x4b68('0x49')]['id']}})['then'](handleEntityNotFound(_0x2602b9,null))['then'](saveUpdates(_0x10ff6d[_0x4b68('0x48')],null))[_0x4b68('0x25')](respondWithResult(_0x2602b9,null))['catch'](handleError(_0x2602b9,null));};exports[_0x4b68('0x26')]=function(_0x4675cd,_0x59a2db){return db[_0x4b68('0x3f')]['find']({'where':{'id':_0x4675cd[_0x4b68('0x49')]['id']}})[_0x4b68('0x25')](handleEntityNotFound(_0x59a2db,null))[_0x4b68('0x25')](removeEntity(_0x59a2db,null))['catch'](handleError(_0x59a2db,null));};
\ No newline at end of file
+var _0x8ad2=['name','index','map','ServicenowField','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','VIRTUAL','filter','options','includeAll','include','findAll','rows','catch','length','merge','find','create','body','params','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','limit','offset','count','set','Content-Range','apply','reject','save','then','destroy'];(function(_0x46f1a6,_0xc7a582){var _0x38429a=function(_0x31adae){while(--_0x31adae){_0x46f1a6['push'](_0x46f1a6['shift']());}};_0x38429a(++_0xc7a582);}(_0x8ad2,0x6f));var _0x28ad=function(_0x149ad0,_0x231e2e){_0x149ad0=_0x149ad0-0x0;var _0xb7267=_0x8ad2[_0x149ad0];return _0xb7267;};'use strict';var emlformat=require(_0x28ad('0x0'));var rimraf=require(_0x28ad('0x1'));var zipdir=require(_0x28ad('0x2'));var jsonpatch=require(_0x28ad('0x3'));var rp=require(_0x28ad('0x4'));var moment=require(_0x28ad('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x28ad('0x6'));var path=require(_0x28ad('0x7'));var sox=require(_0x28ad('0x8'));var csv=require(_0x28ad('0x9'));var ejs=require(_0x28ad('0xa'));var fs=require('fs');var fs_extra=require(_0x28ad('0xb'));var _=require('lodash');var squel=require(_0x28ad('0xc'));var crypto=require(_0x28ad('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x28ad('0xe'));var toCsv=require('to-csv');var querystring=require(_0x28ad('0xf'));var Papa=require(_0x28ad('0x10'));var Redis=require(_0x28ad('0x11'));var authService=require(_0x28ad('0x12'));var qs=require(_0x28ad('0x13'));var as=require(_0x28ad('0x14'));var hardwareService=require(_0x28ad('0x15'));var logger=require(_0x28ad('0x16'))(_0x28ad('0x17'));var utils=require(_0x28ad('0x18'));var config=require(_0x28ad('0x19'));var licenseUtil=require(_0x28ad('0x1a'));var db=require(_0x28ad('0x1b'))['db'];function respondWithStatusCode(_0x84c10e,_0x11653a){_0x11653a=_0x11653a||0xcc;return function(_0x1725be){if(_0x1725be){return _0x84c10e[_0x28ad('0x1c')](_0x11653a);}return _0x84c10e[_0x28ad('0x1d')](_0x11653a)[_0x28ad('0x1e')]();};}function respondWithResult(_0x324c6c,_0x4eab3e){_0x4eab3e=_0x4eab3e||0xc8;return function(_0x599e90){if(_0x599e90){return _0x324c6c[_0x28ad('0x1d')](_0x4eab3e)[_0x28ad('0x1f')](_0x599e90);}};}function respondWithFilteredResult(_0x397a46,_0x2f066a){return function(_0x1f2952){if(_0x1f2952){var _0x36c922=typeof _0x2f066a['offset']===_0x28ad('0x20')&&typeof _0x2f066a[_0x28ad('0x21')]===_0x28ad('0x20');var _0x114396=_0x1f2952['count'];var _0x137669=_0x36c922?0x0:_0x2f066a[_0x28ad('0x22')];var _0x5bbe44=_0x36c922?_0x1f2952[_0x28ad('0x23')]:_0x2f066a[_0x28ad('0x22')]+_0x2f066a[_0x28ad('0x21')];var _0x10228b;if(_0x5bbe44>=_0x114396){_0x5bbe44=_0x114396;_0x10228b=0xc8;}else{_0x10228b=0xce;}_0x397a46['status'](_0x10228b);return _0x397a46[_0x28ad('0x24')](_0x28ad('0x25'),_0x137669+'-'+_0x5bbe44+'/'+_0x114396)['json'](_0x1f2952);}return null;};}function patchUpdates(_0x145713){return function(_0x3064f6){try{jsonpatch[_0x28ad('0x26')](_0x3064f6,_0x145713,!![]);}catch(_0x52ac19){return BPromise[_0x28ad('0x27')](_0x52ac19);}return _0x3064f6[_0x28ad('0x28')]();};}function saveUpdates(_0x3164f5,_0x226542){return function(_0x540c8d){if(_0x540c8d){return _0x540c8d['update'](_0x3164f5)[_0x28ad('0x29')](function(_0x1191c6){return _0x1191c6;});}return null;};}function removeEntity(_0x1b3daa,_0xc10299){return function(_0x38bf84){if(_0x38bf84){return _0x38bf84[_0x28ad('0x2a')]()[_0x28ad('0x29')](function(){_0x1b3daa[_0x28ad('0x1d')](0xcc)[_0x28ad('0x1e')]();});}};}function handleEntityNotFound(_0x44397e,_0x74f230){return function(_0x33b870){if(!_0x33b870){_0x44397e[_0x28ad('0x1c')](0x194);}return _0x33b870;};}function handleError(_0x890ed3,_0x1eae58){_0x1eae58=_0x1eae58||0x1f4;return function(_0x3f2867){logger['error'](_0x3f2867['stack']);if(_0x3f2867[_0x28ad('0x2b')]){delete _0x3f2867[_0x28ad('0x2b')];}_0x890ed3[_0x28ad('0x1d')](_0x1eae58)['send'](_0x3f2867);};}exports[_0x28ad('0x2c')]=function(_0x1a7dfd,_0x56af65){var _0x429bb1={},_0xbca4e1={},_0x4f959f={'count':0x0,'rows':[]};var _0x3cb2ea=_[_0x28ad('0x2d')](db[_0x28ad('0x2e')][_0x28ad('0x2f')],function(_0x696c02){return{'name':_0x696c02[_0x28ad('0x30')],'type':_0x696c02[_0x28ad('0x31')]['key']};});_0xbca4e1[_0x28ad('0x32')]=_[_0x28ad('0x2d')](_0x3cb2ea,'name');_0xbca4e1[_0x28ad('0x33')]=_[_0x28ad('0x34')](_0x1a7dfd[_0x28ad('0x33')]);_0xbca4e1[_0x28ad('0x35')]=_[_0x28ad('0x36')](_0xbca4e1[_0x28ad('0x32')],_0xbca4e1[_0x28ad('0x33')]);_0x429bb1[_0x28ad('0x37')]=_['intersection'](_0xbca4e1['model'],qs[_0x28ad('0x38')](_0x1a7dfd['query'][_0x28ad('0x38')]));_0x429bb1[_0x28ad('0x37')]=_0x429bb1[_0x28ad('0x37')]['length']?_0x429bb1['attributes']:_0xbca4e1[_0x28ad('0x32')];if(!_0x1a7dfd[_0x28ad('0x33')][_0x28ad('0x39')](_0x28ad('0x3a'))){_0x429bb1[_0x28ad('0x21')]=qs[_0x28ad('0x21')](_0x1a7dfd[_0x28ad('0x33')][_0x28ad('0x21')]);_0x429bb1['offset']=qs[_0x28ad('0x22')](_0x1a7dfd[_0x28ad('0x33')][_0x28ad('0x22')]);}_0x429bb1[_0x28ad('0x3b')]=qs[_0x28ad('0x3c')](_0x1a7dfd[_0x28ad('0x33')]['sort']);_0x429bb1[_0x28ad('0x3d')]=qs[_0x28ad('0x35')](_[_0x28ad('0x3e')](_0x1a7dfd[_0x28ad('0x33')],_0xbca4e1['filters']),_0x3cb2ea);if(_0x1a7dfd[_0x28ad('0x33')]['filter']){_0x429bb1[_0x28ad('0x3d')]=_['merge'](_0x429bb1[_0x28ad('0x3d')],{'$or':_[_0x28ad('0x2d')](_0x3cb2ea,function(_0x35cd44){if(_0x35cd44[_0x28ad('0x31')]!==_0x28ad('0x3f')){var _0x29ce57={};_0x29ce57[_0x35cd44[_0x28ad('0x2b')]]={'$like':'%'+_0x1a7dfd['query'][_0x28ad('0x40')]+'%'};return _0x29ce57;}})});}_0x429bb1=_['merge']({},_0x429bb1,_0x1a7dfd[_0x28ad('0x41')]);var _0x5e704c={'where':_0x429bb1['where']};return db[_0x28ad('0x2e')][_0x28ad('0x23')](_0x5e704c)['then'](function(_0x2959e3){_0x4f959f[_0x28ad('0x23')]=_0x2959e3;if(_0x1a7dfd['query'][_0x28ad('0x42')]){_0x429bb1[_0x28ad('0x43')]=[{'all':!![]}];}return db['ServicenowField'][_0x28ad('0x44')](_0x429bb1);})[_0x28ad('0x29')](function(_0x2f826a){_0x4f959f[_0x28ad('0x45')]=_0x2f826a;return _0x4f959f;})['then'](respondWithFilteredResult(_0x56af65,_0x429bb1))[_0x28ad('0x46')](handleError(_0x56af65,null));};exports['show']=function(_0x2b377b,_0xdf085f){var _0xbe3154={'raw':!![],'where':{'id':_0x2b377b['params']['id']}},_0x21ea26={};_0x21ea26['model']=_[_0x28ad('0x34')](db[_0x28ad('0x2e')]['rawAttributes']);_0x21ea26[_0x28ad('0x33')]=_[_0x28ad('0x34')](_0x2b377b[_0x28ad('0x33')]);_0x21ea26[_0x28ad('0x35')]=_[_0x28ad('0x36')](_0x21ea26[_0x28ad('0x32')],_0x21ea26[_0x28ad('0x33')]);_0xbe3154['attributes']=_[_0x28ad('0x36')](_0x21ea26[_0x28ad('0x32')],qs['fields'](_0x2b377b[_0x28ad('0x33')][_0x28ad('0x38')]));_0xbe3154[_0x28ad('0x37')]=_0xbe3154['attributes'][_0x28ad('0x47')]?_0xbe3154['attributes']:_0x21ea26[_0x28ad('0x32')];if(_0x2b377b[_0x28ad('0x33')][_0x28ad('0x42')]){_0xbe3154[_0x28ad('0x43')]=[{'all':!![]}];}_0xbe3154=_[_0x28ad('0x48')]({},_0xbe3154,_0x2b377b['options']);return db[_0x28ad('0x2e')][_0x28ad('0x49')](_0xbe3154)['then'](handleEntityNotFound(_0xdf085f,null))['then'](respondWithResult(_0xdf085f,null))[_0x28ad('0x46')](handleError(_0xdf085f,null));};exports[_0x28ad('0x4a')]=function(_0x30886b,_0xbff35c){return db[_0x28ad('0x2e')]['create'](_0x30886b[_0x28ad('0x4b')],{})['then'](respondWithResult(_0xbff35c,0xc9))[_0x28ad('0x46')](handleError(_0xbff35c,null));};exports['update']=function(_0x55f511,_0x3f54ad){if(_0x55f511[_0x28ad('0x4b')]['id']){delete _0x55f511[_0x28ad('0x4b')]['id'];}return db[_0x28ad('0x2e')][_0x28ad('0x49')]({'where':{'id':_0x55f511[_0x28ad('0x4c')]['id']}})[_0x28ad('0x29')](handleEntityNotFound(_0x3f54ad,null))[_0x28ad('0x29')](saveUpdates(_0x55f511[_0x28ad('0x4b')],null))[_0x28ad('0x29')](respondWithResult(_0x3f54ad,null))[_0x28ad('0x46')](handleError(_0x3f54ad,null));};exports[_0x28ad('0x2a')]=function(_0x11f8f3,_0x1c4d09){return db['ServicenowField'][_0x28ad('0x49')]({'where':{'id':_0x11f8f3[_0x28ad('0x4c')]['id']}})['then'](handleEntityNotFound(_0x1c4d09,null))[_0x28ad('0x29')](removeEntity(_0x1c4d09,null))['catch'](handleError(_0x1c4d09,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9275=['servicenow_unique_index','idField','FieldId','lodash','util','../../config/logger','api','moment','request-promise','path','rimraf','../../config/environment','./intServicenowField.attributes','define','ServicenowField','int_servicenow_fields'];(function(_0x41b884,_0x8c6b84){var _0x3e5518=function(_0x19373a){while(--_0x19373a){_0x41b884['push'](_0x41b884['shift']());}};_0x3e5518(++_0x8c6b84);}(_0x9275,0x183));var _0x5927=function(_0x188d31,_0x576e87){_0x188d31=_0x188d31-0x0;var _0x30ed33=_0x9275[_0x188d31];return _0x30ed33;};'use strict';var _=require(_0x5927('0x0'));var util=require(_0x5927('0x1'));var logger=require(_0x5927('0x2'))(_0x5927('0x3'));var moment=require(_0x5927('0x4'));var BPromise=require('bluebird');var rp=require(_0x5927('0x5'));var fs=require('fs');var path=require(_0x5927('0x6'));var rimraf=require(_0x5927('0x7'));var config=require(_0x5927('0x8'));var attributes=require(_0x5927('0x9'));module['exports']=function(_0x56724c,_0x10e14e){return _0x56724c[_0x5927('0xa')](_0x5927('0xb'),attributes,{'tableName':_0x5927('0xc'),'paranoid':![],'indexes':[{'name':_0x5927('0xd'),'fields':[_0x5927('0xe'),_0x5927('0xf')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x896a=['path','../../config/environment','./intServicenowField.attributes','define','int_servicenow_fields','servicenow_unique_index','idField','lodash','util','../../config/logger','bluebird'];(function(_0x1e7b16,_0x4607a1){var _0x37fadc=function(_0x1fc9ce){while(--_0x1fc9ce){_0x1e7b16['push'](_0x1e7b16['shift']());}};_0x37fadc(++_0x4607a1);}(_0x896a,0xa1));var _0xa896=function(_0x5bfed9,_0x26838d){_0x5bfed9=_0x5bfed9-0x0;var _0x37f10a=_0x896a[_0x5bfed9];return _0x37f10a;};'use strict';var _=require(_0xa896('0x0'));var util=require(_0xa896('0x1'));var logger=require(_0xa896('0x2'))('api');var moment=require('moment');var BPromise=require(_0xa896('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xa896('0x4'));var rimraf=require('rimraf');var config=require(_0xa896('0x5'));var attributes=require(_0xa896('0x6'));module['exports']=function(_0x5f079e,_0x30eed4){return _0x5f079e[_0xa896('0x7')]('ServicenowField',attributes,{'tableName':_0xa896('0x8'),'paranoid':![],'indexes':[{'name':_0xa896('0x9'),'fields':[_0xa896('0xa'),'FieldId'],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xda3f=['rpc','jayson/promise','client','request','then','info','ServicenowField,\x20%s,\x20%s','request\x20sent','debug','ServicenowField,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','util','moment','../../mysqldb','../../config/logger'];(function(_0x2fe689,_0x5794e5){var _0x35ea44=function(_0x51b9d6){while(--_0x51b9d6){_0x2fe689['push'](_0x2fe689['shift']());}};_0x35ea44(++_0x5794e5);}(_0xda3f,0xec));var _0xfda3=function(_0x29ed7d,_0x248f31){_0x29ed7d=_0x29ed7d-0x0;var _0x416d5a=_0xda3f[_0x29ed7d];return _0x416d5a;};'use strict';var _=require('lodash');var util=require(_0xfda3('0x0'));var moment=require(_0xfda3('0x1'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0xfda3('0x2'))['db'];var utils=require('../../config/utils');var logger=require(_0xfda3('0x3'))(_0xfda3('0x4'));var config=require('../../config/environment');var jayson=require(_0xfda3('0x5'));var client=jayson[_0xfda3('0x6')]['http']({'port':0x232a});function respondWithRpcPromise(_0x4e72d1,_0x316792,_0x42476a){return new BPromise(function(_0x125e2a,_0x4018c0){return client[_0xfda3('0x7')](_0x4e72d1,_0x42476a)[_0xfda3('0x8')](function(_0x46655c){logger[_0xfda3('0x9')](_0xfda3('0xa'),_0x316792,_0xfda3('0xb'));logger[_0xfda3('0xc')](_0xfda3('0xd'),_0x316792,'request\x20sent',JSON[_0xfda3('0xe')](_0x46655c));if(_0x46655c[_0xfda3('0xf')]){if(_0x46655c[_0xfda3('0xf')][_0xfda3('0x10')]===0x1f4){logger[_0xfda3('0xf')]('ServicenowField,\x20%s,\x20%s',_0x316792,_0x46655c[_0xfda3('0xf')]['message']);return _0x4018c0(_0x46655c[_0xfda3('0xf')][_0xfda3('0x11')]);}logger['error']('ServicenowField,\x20%s,\x20%s',_0x316792,_0x46655c['error'][_0xfda3('0x11')]);return _0x125e2a(_0x46655c[_0xfda3('0xf')]['message']);}else{logger['info']('ServicenowField,\x20%s,\x20%s',_0x316792,_0xfda3('0xb'));_0x125e2a(_0x46655c[_0xfda3('0x12')][_0xfda3('0x11')]);}})[_0xfda3('0x13')](function(_0x34900d){logger[_0xfda3('0xf')](_0xfda3('0xa'),_0x316792,_0x34900d);_0x4018c0(_0x34900d);});});}
\ No newline at end of file
+var _0xf4eb=['ServicenowField,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','catch','lodash','ioredis','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info'];(function(_0x2a92a4,_0x5ca2ec){var _0x383acc=function(_0x5a040d){while(--_0x5a040d){_0x2a92a4['push'](_0x2a92a4['shift']());}};_0x383acc(++_0x5ca2ec);}(_0xf4eb,0xec));var _0xbf4e=function(_0xd18cc7,_0x4ade29){_0xd18cc7=_0xd18cc7-0x0;var _0x45076d=_0xf4eb[_0xd18cc7];return _0x45076d;};'use strict';var _=require(_0xbf4e('0x0'));var util=require('util');var moment=require('moment');var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xbf4e('0x1'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xbf4e('0x2'))(_0xbf4e('0x3'));var config=require(_0xbf4e('0x4'));var jayson=require(_0xbf4e('0x5'));var client=jayson[_0xbf4e('0x6')][_0xbf4e('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x15b99f,_0x540736,_0x449d55){return new BPromise(function(_0x5013c2,_0x5e23d4){return client[_0xbf4e('0x8')](_0x15b99f,_0x449d55)[_0xbf4e('0x9')](function(_0xcc4097){logger[_0xbf4e('0xa')](_0xbf4e('0xb'),_0x540736,_0xbf4e('0xc'));logger[_0xbf4e('0xd')]('ServicenowField,\x20%s,\x20%s,\x20%s',_0x540736,'request\x20sent',JSON[_0xbf4e('0xe')](_0xcc4097));if(_0xcc4097['error']){if(_0xcc4097[_0xbf4e('0xf')][_0xbf4e('0x10')]===0x1f4){logger['error'](_0xbf4e('0xb'),_0x540736,_0xcc4097['error']['message']);return _0x5e23d4(_0xcc4097[_0xbf4e('0xf')][_0xbf4e('0x11')]);}logger[_0xbf4e('0xf')](_0xbf4e('0xb'),_0x540736,_0xcc4097[_0xbf4e('0xf')][_0xbf4e('0x11')]);return _0x5013c2(_0xcc4097['error']['message']);}else{logger[_0xbf4e('0xa')](_0xbf4e('0xb'),_0x540736,_0xbf4e('0xc'));_0x5013c2(_0xcc4097['result'][_0xbf4e('0x11')]);}})[_0xbf4e('0x12')](function(_0x912fc0){logger[_0xbf4e('0xf')]('ServicenowField,\x20%s,\x20%s',_0x540736,_0x912fc0);_0x5e23d4(_0x912fc0);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9957=['connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./intSugarcrmAccount.controller','get','isAuthenticated','index','/:id','show','getConfigurations','/:id/fields','getFields','post','create','addConfiguration','put','update','delete','destroy','exports','multer','util','path'];(function(_0x15e2cc,_0x2cc4f0){var _0x9b3aa7=function(_0x410bf9){while(--_0x410bf9){_0x15e2cc['push'](_0x15e2cc['shift']());}};_0x9b3aa7(++_0x2cc4f0);}(_0x9957,0x93));var _0x7995=function(_0x2f5ac5,_0x1ee939){_0x2f5ac5=_0x2f5ac5-0x0;var _0x37c9a8=_0x9957[_0x2f5ac5];return _0x37c9a8;};'use strict';var multer=require(_0x7995('0x0'));var util=require(_0x7995('0x1'));var path=require(_0x7995('0x2'));var timeout=require(_0x7995('0x3'));var express=require('express');var router=express[_0x7995('0x4')]();var fs_extra=require(_0x7995('0x5'));var auth=require(_0x7995('0x6'));var interaction=require(_0x7995('0x7'));var config=require('../../config/environment');var controller=require(_0x7995('0x8'));router[_0x7995('0x9')]('/',auth[_0x7995('0xa')](),controller[_0x7995('0xb')]);router[_0x7995('0x9')](_0x7995('0xc'),auth['isAuthenticated'](),controller[_0x7995('0xd')]);router[_0x7995('0x9')]('/:id/configurations',auth[_0x7995('0xa')](),controller[_0x7995('0xe')]);router[_0x7995('0x9')](_0x7995('0xf'),auth[_0x7995('0xa')](),controller[_0x7995('0x10')]);router[_0x7995('0x11')]('/',auth['isAuthenticated'](),controller[_0x7995('0x12')]);router[_0x7995('0x11')]('/:id/configurations',auth[_0x7995('0xa')](),controller[_0x7995('0x13')]);router[_0x7995('0x14')](_0x7995('0xc'),auth[_0x7995('0xa')](),controller[_0x7995('0x15')]);router[_0x7995('0x16')]('/:id',auth['isAuthenticated'](),controller[_0x7995('0x17')]);module[_0x7995('0x18')]=router;
\ No newline at end of file
+var _0xa9e0=['Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./intSugarcrmAccount.controller','get','index','/:id','getConfigurations','/:id/fields','isAuthenticated','getFields','post','addConfiguration','put','update','destroy','exports','multer','util','path'];(function(_0xf8c6b2,_0x2d1ac2){var _0x10db2b=function(_0x3e538a){while(--_0x3e538a){_0xf8c6b2['push'](_0xf8c6b2['shift']());}};_0x10db2b(++_0x2d1ac2);}(_0xa9e0,0x123));var _0x0a9e=function(_0x29b609,_0x19d388){_0x29b609=_0x29b609-0x0;var _0x54c952=_0xa9e0[_0x29b609];return _0x54c952;};'use strict';var multer=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var path=require(_0x0a9e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0a9e('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x0a9e('0x4'));var interaction=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var controller=require(_0x0a9e('0x7'));router[_0x0a9e('0x8')]('/',auth['isAuthenticated'](),controller[_0x0a9e('0x9')]);router[_0x0a9e('0x8')](_0x0a9e('0xa'),auth['isAuthenticated'](),controller['show']);router[_0x0a9e('0x8')]('/:id/configurations',auth['isAuthenticated'](),controller[_0x0a9e('0xb')]);router[_0x0a9e('0x8')](_0x0a9e('0xc'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0xe')]);router[_0x0a9e('0xf')]('/',auth['isAuthenticated'](),controller['create']);router['post']('/:id/configurations',auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x10')]);router[_0x0a9e('0x11')](_0x0a9e('0xa'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x12')]);router['delete'](_0x0a9e('0xa'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x13')]);module[_0x0a9e('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['remoteUri','sequelize','exports','STRING','username'];(function(_0x53465c,_0x30c881){var _0x38ce9e=function(_0x3e5a82){while(--_0x3e5a82){_0x53465c['push'](_0x53465c['shift']());}};_0x38ce9e(++_0x30c881);}(_0xa9e0,0x123));var _0x0a9e=function(_0xf71120,_0x25b7f9){_0xf71120=_0xf71120-0x0;var _0xbe2fd3=_0xa9e0[_0xf71120];return _0xbe2fd3;};'use strict';var Sequelize=require(_0x0a9e('0x0'));module[_0x0a9e('0x1')]={'name':{'type':Sequelize[_0x0a9e('0x2')]},'description':{'type':Sequelize['STRING']},'username':{'type':Sequelize['STRING'],'unique':_0x0a9e('0x3')},'password':{'type':Sequelize['STRING']},'remoteUri':{'type':Sequelize[_0x0a9e('0x2')],'unique':_0x0a9e('0x4')},'serverUrl':{'type':Sequelize[_0x0a9e('0x2')],'allowNull':![]}};
\ No newline at end of file
+var _0xa9e0=['remoteUri','sequelize','exports','STRING','username'];(function(_0x7adc5b,_0x2d803a){var _0x34dc1e=function(_0x12c6c5){while(--_0x12c6c5){_0x7adc5b['push'](_0x7adc5b['shift']());}};_0x34dc1e(++_0x2d803a);}(_0xa9e0,0x123));var _0x0a9e=function(_0x1c546c,_0x5c57cb){_0x1c546c=_0x1c546c-0x0;var _0x2cc384=_0xa9e0[_0x1c546c];return _0x2cc384;};'use strict';var Sequelize=require(_0x0a9e('0x0'));module[_0x0a9e('0x1')]={'name':{'type':Sequelize[_0x0a9e('0x2')]},'description':{'type':Sequelize['STRING']},'username':{'type':Sequelize['STRING'],'unique':_0x0a9e('0x3')},'password':{'type':Sequelize['STRING']},'remoteUri':{'type':Sequelize[_0x0a9e('0x2')],'unique':_0x0a9e('0x4')},'serverUrl':{'type':Sequelize[_0x0a9e('0x2')],'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6da3=['get_module_fields','Calls','module_fields','remove','includes','label','endsWith','values','getFields,\x20%s,\x20%s,\x20%s','send','Wrong\x20credentials','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','../../components/integrations/configuration','sendStatus','end','status','json','undefined','count','offset','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','index','map','rawAttributes','fieldName','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','limit','order','sort','where','pick','filter','merge','VIRTUAL','options','SugarcrmAccount','include','findAll','rows','show','params','includeAll','catch','create','body','find','getConfigurations','findOne','SugarcrmConfiguration','nolimit','channel','type','Descriptions','getDescriptions','Subjects','assigned_user_id','created_by','description','date_start','duration_hours','duration_minutes','parent_id','username','password','remoteUri','slice','substring','POST','format','%s%s','/service/v4_1/rest.php','login','JSON','stringify','Invalid\x20Login','Password\x20Expired'];(function(_0xed4df1,_0x4a15eb){var _0x355a21=function(_0x77c0b1){while(--_0x77c0b1){_0xed4df1['push'](_0xed4df1['shift']());}};_0x355a21(++_0x4a15eb);}(_0x6da3,0xf9));var _0x36da=function(_0x2c91e9,_0x2fb965){_0x2c91e9=_0x2c91e9-0x0;var _0x13f0ff=_0x6da3[_0x2c91e9];return _0x13f0ff;};'use strict';var emlformat=require(_0x36da('0x0'));var rimraf=require(_0x36da('0x1'));var zipdir=require(_0x36da('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x36da('0x3'));var moment=require(_0x36da('0x4'));var BPromise=require(_0x36da('0x5'));var Mustache=require('mustache');var util=require('util');var path=require(_0x36da('0x6'));var sox=require('sox');var csv=require(_0x36da('0x7'));var ejs=require(_0x36da('0x8'));var fs=require('fs');var fs_extra=require(_0x36da('0x9'));var _=require(_0x36da('0xa'));var squel=require(_0x36da('0xb'));var crypto=require(_0x36da('0xc'));var jsforce=require(_0x36da('0xd'));var deskjs=require(_0x36da('0xe'));var toCsv=require(_0x36da('0x7'));var querystring=require('querystring');var Papa=require(_0x36da('0xf'));var Redis=require(_0x36da('0x10'));var authService=require(_0x36da('0x11'));var qs=require(_0x36da('0x12'));var as=require(_0x36da('0x13'));var hardwareService=require(_0x36da('0x14'));var logger=require(_0x36da('0x15'))(_0x36da('0x16'));var utils=require(_0x36da('0x17'));var config=require(_0x36da('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0x36da('0x19'))['db'];var integrations=require(_0x36da('0x1a'));function respondWithStatusCode(_0x5183be,_0x381134){_0x381134=_0x381134||0xcc;return function(_0x4d43a1){if(_0x4d43a1){return _0x5183be[_0x36da('0x1b')](_0x381134);}return _0x5183be['status'](_0x381134)[_0x36da('0x1c')]();};}function respondWithResult(_0x4a3433,_0x3d8890){_0x3d8890=_0x3d8890||0xc8;return function(_0x1b79c5){if(_0x1b79c5){return _0x4a3433[_0x36da('0x1d')](_0x3d8890)[_0x36da('0x1e')](_0x1b79c5);}};}function respondWithFilteredResult(_0x282ec8,_0x790757){return function(_0x1083bb){if(_0x1083bb){var _0x4c43d6=typeof _0x790757['offset']===_0x36da('0x1f')&&typeof _0x790757['limit']===_0x36da('0x1f');var _0x57da8c=_0x1083bb[_0x36da('0x20')];var _0x2c3cf5=_0x4c43d6?0x0:_0x790757['offset'];var _0x372a1f=_0x4c43d6?_0x1083bb[_0x36da('0x20')]:_0x790757[_0x36da('0x21')]+_0x790757['limit'];var _0x38caae;if(_0x372a1f>=_0x57da8c){_0x372a1f=_0x57da8c;_0x38caae=0xc8;}else{_0x38caae=0xce;}_0x282ec8[_0x36da('0x1d')](_0x38caae);return _0x282ec8[_0x36da('0x22')](_0x36da('0x23'),_0x2c3cf5+'-'+_0x372a1f+'/'+_0x57da8c)['json'](_0x1083bb);}return null;};}function patchUpdates(_0x1da9eb){return function(_0x15e980){try{jsonpatch[_0x36da('0x24')](_0x15e980,_0x1da9eb,!![]);}catch(_0x5b56f6){return BPromise[_0x36da('0x25')](_0x5b56f6);}return _0x15e980[_0x36da('0x26')]();};}function saveUpdates(_0x2a9249,_0x250a72){return function(_0x27dd59){if(_0x27dd59){return _0x27dd59[_0x36da('0x27')](_0x2a9249)[_0x36da('0x28')](function(_0x8c17ed){return _0x8c17ed;});}return null;};}function removeEntity(_0x2c8ac5,_0x4b5fac){return function(_0x24131f){if(_0x24131f){return _0x24131f[_0x36da('0x29')]()['then'](function(){_0x2c8ac5['status'](0xcc)[_0x36da('0x1c')]();});}};}function handleEntityNotFound(_0x2d6fef,_0x57f4cd){return function(_0x519d7d){if(!_0x519d7d){_0x2d6fef[_0x36da('0x1b')](0x194);}return _0x519d7d;};}function handleError(_0x3e9907,_0x2ffecc){_0x2ffecc=_0x2ffecc||0x1f4;return function(_0x52de2b){logger[_0x36da('0x2a')](_0x52de2b[_0x36da('0x2b')]);if(_0x52de2b['name']){delete _0x52de2b[_0x36da('0x2c')];}_0x3e9907[_0x36da('0x1d')](_0x2ffecc)['send'](_0x52de2b);};}exports[_0x36da('0x2d')]=function(_0x318399,_0x19e6fc){var _0x28f45b={},_0x3c28cb={},_0x4a915c={'count':0x0,'rows':[]};var _0x12d9f6=_[_0x36da('0x2e')](db['SugarcrmAccount'][_0x36da('0x2f')],function(_0x18d8d8){return{'name':_0x18d8d8[_0x36da('0x30')],'type':_0x18d8d8['type']['key']};});_0x3c28cb[_0x36da('0x31')]=_[_0x36da('0x2e')](_0x12d9f6,_0x36da('0x2c'));_0x3c28cb['query']=_[_0x36da('0x32')](_0x318399[_0x36da('0x33')]);_0x3c28cb[_0x36da('0x34')]=_[_0x36da('0x35')](_0x3c28cb[_0x36da('0x31')],_0x3c28cb['query']);_0x28f45b[_0x36da('0x36')]=_[_0x36da('0x35')](_0x3c28cb[_0x36da('0x31')],qs[_0x36da('0x37')](_0x318399[_0x36da('0x33')][_0x36da('0x37')]));_0x28f45b[_0x36da('0x36')]=_0x28f45b[_0x36da('0x36')][_0x36da('0x38')]?_0x28f45b[_0x36da('0x36')]:_0x3c28cb['model'];if(!_0x318399[_0x36da('0x33')][_0x36da('0x39')]('nolimit')){_0x28f45b[_0x36da('0x3a')]=qs['limit'](_0x318399[_0x36da('0x33')][_0x36da('0x3a')]);_0x28f45b[_0x36da('0x21')]=qs[_0x36da('0x21')](_0x318399['query'][_0x36da('0x21')]);}_0x28f45b[_0x36da('0x3b')]=qs[_0x36da('0x3c')](_0x318399[_0x36da('0x33')][_0x36da('0x3c')]);_0x28f45b[_0x36da('0x3d')]=qs['filters'](_[_0x36da('0x3e')](_0x318399[_0x36da('0x33')],_0x3c28cb[_0x36da('0x34')]),_0x12d9f6);if(_0x318399['query'][_0x36da('0x3f')]){_0x28f45b[_0x36da('0x3d')]=_[_0x36da('0x40')](_0x28f45b[_0x36da('0x3d')],{'$or':_[_0x36da('0x2e')](_0x12d9f6,function(_0x568daa){if(_0x568daa['type']!==_0x36da('0x41')){var _0x1a2a5f={};_0x1a2a5f[_0x568daa[_0x36da('0x2c')]]={'$like':'%'+_0x318399[_0x36da('0x33')][_0x36da('0x3f')]+'%'};return _0x1a2a5f;}})});}_0x28f45b=_[_0x36da('0x40')]({},_0x28f45b,_0x318399[_0x36da('0x42')]);var _0x3bc29c={'where':_0x28f45b['where']};return db[_0x36da('0x43')][_0x36da('0x20')](_0x3bc29c)[_0x36da('0x28')](function(_0x338f05){_0x4a915c[_0x36da('0x20')]=_0x338f05;if(_0x318399[_0x36da('0x33')]['includeAll']){_0x28f45b[_0x36da('0x44')]=[{'all':!![]}];}return db[_0x36da('0x43')][_0x36da('0x45')](_0x28f45b);})[_0x36da('0x28')](function(_0x9862d0){_0x4a915c[_0x36da('0x46')]=_0x9862d0;return _0x4a915c;})[_0x36da('0x28')](respondWithFilteredResult(_0x19e6fc,_0x28f45b))['catch'](handleError(_0x19e6fc,null));};exports[_0x36da('0x47')]=function(_0x54c6b7,_0x27fa88){var _0x5d9756={'raw':![],'where':{'id':_0x54c6b7[_0x36da('0x48')]['id']}},_0x22e467={};_0x22e467[_0x36da('0x31')]=_[_0x36da('0x32')](db[_0x36da('0x43')]['rawAttributes']);_0x22e467[_0x36da('0x33')]=_[_0x36da('0x32')](_0x54c6b7[_0x36da('0x33')]);_0x22e467['filters']=_['intersection'](_0x22e467[_0x36da('0x31')],_0x22e467['query']);_0x5d9756[_0x36da('0x36')]=_[_0x36da('0x35')](_0x22e467[_0x36da('0x31')],qs[_0x36da('0x37')](_0x54c6b7[_0x36da('0x33')][_0x36da('0x37')]));_0x5d9756[_0x36da('0x36')]=_0x5d9756[_0x36da('0x36')]['length']?_0x5d9756[_0x36da('0x36')]:_0x22e467[_0x36da('0x31')];if(_0x54c6b7[_0x36da('0x33')][_0x36da('0x49')]){_0x5d9756[_0x36da('0x44')]=[{'all':!![]}];}_0x5d9756=_[_0x36da('0x40')]({},_0x5d9756,_0x54c6b7['options']);return db[_0x36da('0x43')]['find'](_0x5d9756)['then'](handleEntityNotFound(_0x27fa88,null))['then'](respondWithResult(_0x27fa88,null))[_0x36da('0x4a')](handleError(_0x27fa88,null));};exports['create']=function(_0x26b2f5,_0x3c8923){return db[_0x36da('0x43')][_0x36da('0x4b')](_0x26b2f5['body'],{})[_0x36da('0x28')](respondWithResult(_0x3c8923,0xc9))[_0x36da('0x4a')](handleError(_0x3c8923,null));};exports[_0x36da('0x27')]=function(_0x5eca31,_0x27c110){if(_0x5eca31[_0x36da('0x4c')]['id']){delete _0x5eca31[_0x36da('0x4c')]['id'];}return db[_0x36da('0x43')][_0x36da('0x4d')]({'where':{'id':_0x5eca31['params']['id']}})[_0x36da('0x28')](handleEntityNotFound(_0x27c110,null))['then'](saveUpdates(_0x5eca31[_0x36da('0x4c')],null))[_0x36da('0x28')](respondWithResult(_0x27c110,null))[_0x36da('0x4a')](handleError(_0x27c110,null));};exports[_0x36da('0x29')]=function(_0x2a563a,_0x18bef2){return db['SugarcrmAccount'][_0x36da('0x4d')]({'where':{'id':_0x2a563a[_0x36da('0x48')]['id']}})[_0x36da('0x28')](handleEntityNotFound(_0x18bef2,null))['then'](removeEntity(_0x18bef2,null))[_0x36da('0x4a')](handleError(_0x18bef2,null));};exports[_0x36da('0x4e')]=function(_0x305015,_0x1d9cfa,_0x172508){var _0x5299f9={};var _0xc2fe3a={};var _0x28cf14;var _0x5a07b3;return db[_0x36da('0x43')][_0x36da('0x4f')]({'where':{'id':_0x305015['params']['id']}})['then'](handleEntityNotFound(_0x1d9cfa,null))[_0x36da('0x28')](function(_0x858173){if(_0x858173){_0x28cf14=_0x858173;_0xc2fe3a[_0x36da('0x31')]=_[_0x36da('0x32')](db[_0x36da('0x50')][_0x36da('0x2f')]);_0xc2fe3a[_0x36da('0x33')]=_['keys'](_0x305015[_0x36da('0x33')]);_0xc2fe3a['filters']=_[_0x36da('0x35')](_0xc2fe3a['model'],_0xc2fe3a[_0x36da('0x33')]);_0x5299f9['attributes']=_[_0x36da('0x35')](_0xc2fe3a[_0x36da('0x31')],qs['fields'](_0x305015['query']['fields']));_0x5299f9[_0x36da('0x36')]=_0x5299f9[_0x36da('0x36')][_0x36da('0x38')]?_0x5299f9['attributes']:_0xc2fe3a[_0x36da('0x31')];_0x5299f9[_0x36da('0x3b')]=qs[_0x36da('0x3c')](_0x305015[_0x36da('0x33')][_0x36da('0x3c')]);_0x5299f9[_0x36da('0x3d')]=qs['filters'](_['pick'](_0x305015[_0x36da('0x33')],_0xc2fe3a[_0x36da('0x34')]));if(_0x305015[_0x36da('0x33')][_0x36da('0x3f')]){_0x5299f9['where']=_[_0x36da('0x40')](_0x5299f9['where'],{'$or':_[_0x36da('0x2e')](_0x5299f9[_0x36da('0x36')],function(_0x699cf8){var _0x5a1f90={};_0x5a1f90[_0x699cf8]={'$like':'%'+_0x305015['query'][_0x36da('0x3f')]+'%'};return _0x5a1f90;})});}_0x5299f9=_[_0x36da('0x40')]({},_0x5299f9,_0x305015['options']);return _0x28cf14[_0x36da('0x4e')](_0x5299f9);}})[_0x36da('0x28')](function(_0xe6052b){if(_0xe6052b){_0x5a07b3=_0xe6052b[_0x36da('0x38')];if(!_0x305015[_0x36da('0x33')][_0x36da('0x39')](_0x36da('0x51'))){_0x5299f9['limit']=qs['limit'](_0x305015['query'][_0x36da('0x3a')]);_0x5299f9[_0x36da('0x21')]=qs[_0x36da('0x21')](_0x305015[_0x36da('0x33')][_0x36da('0x21')]);}return _0x28cf14['getConfigurations'](_0x5299f9);}})[_0x36da('0x28')](function(_0x5267d6){if(_0x5267d6){return _0x5267d6?{'count':_0x5a07b3,'rows':_0x5267d6}:null;}})[_0x36da('0x28')](respondWithResult(_0x1d9cfa,null))[_0x36da('0x4a')](handleError(_0x1d9cfa,null));};exports['addConfiguration']=function(_0x5679be,_0xd6e289,_0x2dfd93){if(_0x5679be['body']['id']){delete _0x5679be[_0x36da('0x4c')]['id'];}return db[_0x36da('0x43')][_0x36da('0x4f')]({'where':{'id':_0x5679be[_0x36da('0x48')]['id']}})[_0x36da('0x28')](handleEntityNotFound(_0xd6e289,null))[_0x36da('0x28')](function(_0x567784){if(_0x567784){_0x5679be[_0x36da('0x4c')]['AccountId']=_0x567784['id'];_0x5679be[_0x36da('0x4c')]['Subjects']=integrations['getSubjects'](_0x5679be['body'][_0x36da('0x52')],_0x5679be[_0x36da('0x4c')][_0x36da('0x53')]);_0x5679be['body'][_0x36da('0x54')]=integrations[_0x36da('0x55')](_0x5679be[_0x36da('0x4c')][_0x36da('0x52')],_0x5679be['body']['type']);return db[_0x36da('0x50')][_0x36da('0x4b')](_0x5679be[_0x36da('0x4c')],{'include':[{'model':db['SugarcrmField'],'as':_0x36da('0x56')},{'model':db['SugarcrmField'],'as':_0x36da('0x54')}]});}return null;})[_0x36da('0x28')](respondWithResult(_0xd6e289,null))['catch'](handleError(_0xd6e289,null));};exports['getFields']=function(_0x5a77ca,_0x355696,_0x4a8698){var _0x49f176='';var _0x31ff84=['id',_0x36da('0x2c'),_0x36da('0x57'),_0x36da('0x58'),_0x36da('0x59'),_0x36da('0x5a'),_0x36da('0x5b'),_0x36da('0x5c'),_0x36da('0x5d'),'parent_type','parent_name','direction'];return db[_0x36da('0x43')][_0x36da('0x4f')]({'where':{'id':_0x5a77ca['params']['id']},'attributes':['id',_0x36da('0x5e'),_0x36da('0x5f'),_0x36da('0x60')]})[_0x36da('0x28')](handleEntityNotFound(_0x355696,null))[_0x36da('0x28')](function(_0x30569c){if(_0x30569c){_0x49f176=_0x30569c['remoteUri'];var _0x4faa14=_0x49f176[_0x36da('0x61')](-0x1);if(_0x4faa14==='/'){_0x49f176=_0x49f176[_0x36da('0x62')](0x0,_0x49f176['lastIndexOf'](_0x4faa14));}return rp({'method':_0x36da('0x63'),'uri':util[_0x36da('0x64')](_0x36da('0x65'),_0x49f176,_0x36da('0x66')),'json':!![],'form':{'method':_0x36da('0x67'),'input_type':_0x36da('0x68'),'response_type':'JSON','rest_data':JSON[_0x36da('0x69')]({'user_auth':{'user_name':_0x30569c[_0x36da('0x5e')],'password':_0x30569c[_0x36da('0x5f')],'encryption':'PLAIN'},'application':'xCALLY\x20Motion\x20Integration'})}});}})[_0x36da('0x28')](function(_0x267209){if(_0x267209&&_0x267209[_0x36da('0x2c')]!==_0x36da('0x6a')&&_0x267209[_0x36da('0x2c')]!==_0x36da('0x6b')){return rp({'method':_0x36da('0x63'),'uri':util['format'](_0x36da('0x65'),_0x49f176,_0x36da('0x66')),'json':!![],'form':{'method':_0x36da('0x6c'),'input_type':_0x36da('0x68'),'response_type':'JSON','rest_data':JSON[_0x36da('0x69')]({'session':_0x267209['id'],'module_name':_0x36da('0x6d')})}})[_0x36da('0x28')](function(_0x541d1c){if(_0x541d1c){var _0x142f82=_['values'](_0x541d1c[_0x36da('0x6e')]);_[_0x36da('0x6f')](_0x142f82,function(_0x26a477){return _0x31ff84[_0x36da('0x70')](_0x26a477['name']);});return{'count':_0x142f82[_0x36da('0x38')],'rows':_[_0x36da('0x2e')](_0x142f82,function(_0x5d341f){return{'id':_0x5d341f['name'],'name':_0x5d341f[_0x36da('0x71')],'custom':_[_0x36da('0x72')](_0x5d341f[_0x36da('0x2c')],'_c')?!![]:![],'options':_0x5d341f[_0x36da('0x42')]?_['map'](_[_0x36da('0x73')](_0x5d341f[_0x36da('0x42')]),function(_0x35c681){return{'name':_0x35c681['value'],'value':_0x35c681[_0x36da('0x2c')]};}):[]};})};}})[_0x36da('0x28')](respondWithResult(_0x355696,null))[_0x36da('0x4a')](function(_0x9fca8c){var _0x1ca060=_0x5a77ca[_0x36da('0x33')]['test']?0x1f4:_0x9fca8c['statusCode']||0x1f4;logger[_0x36da('0x2a')](_0x36da('0x74'),'getFields',_0x1ca060,JSON[_0x36da('0x69')](_0x9fca8c));delete _0x9fca8c[_0x36da('0x2c')];if(_0x1ca060===0x191){_0x1ca060=0x190;}_0x355696[_0x36da('0x1d')](_0x1ca060)[_0x36da('0x75')](_0x5a77ca[_0x36da('0x33')]['test']?{'message':'Wrong\x20credentials','statusCode':_0x9fca8c['statusCode']}:_0x9fca8c);});}else{var _0x2787d0=0x1f4;_0x355696[_0x36da('0x1d')](_0x2787d0)[_0x36da('0x75')]({'message':_0x36da('0x76'),'statusCode':0x190});}});};
\ No newline at end of file
+var _0xbb1d=['util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','send','index','map','SugarcrmAccount','rawAttributes','fieldName','key','query','keys','intersection','model','attributes','fields','length','hasOwnProperty','sort','where','filters','filter','type','VIRTUAL','merge','options','includeAll','include','findAll','rows','catch','show','params','find','create','body','getConfigurations','SugarcrmConfiguration','order','pick','Subjects','getSubjects','channel','Descriptions','getDescriptions','SugarcrmField','assigned_user_id','description','duration_hours','parent_id','parent_type','parent_name','findOne','username','password','substring','lastIndexOf','POST','format','/service/v4_1/rest.php','login','JSON','stringify','PLAIN','xCALLY\x20Motion\x20Integration','Password\x20Expired','%s%s','Calls','values','remove','includes','label','value','test','getFields,\x20%s,\x20%s,\x20%s','getFields','Wrong\x20credentials','statusCode','zip-dir','fast-json-patch','request-promise','moment','bluebird'];(function(_0x4667b2,_0x135b67){var _0x1070f2=function(_0xa72ca5){while(--_0xa72ca5){_0x4667b2['push'](_0x4667b2['shift']());}};_0x1070f2(++_0x135b67);}(_0xbb1d,0x169));var _0xdbb1=function(_0x3bf83f,_0x181cac){_0x3bf83f=_0x3bf83f-0x0;var _0x22c4a9=_0xbb1d[_0x3bf83f];return _0x22c4a9;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xdbb1('0x0'));var jsonpatch=require(_0xdbb1('0x1'));var rp=require(_0xdbb1('0x2'));var moment=require(_0xdbb1('0x3'));var BPromise=require(_0xdbb1('0x4'));var Mustache=require('mustache');var util=require(_0xdbb1('0x5'));var path=require(_0xdbb1('0x6'));var sox=require(_0xdbb1('0x7'));var csv=require(_0xdbb1('0x8'));var ejs=require(_0xdbb1('0x9'));var fs=require('fs');var fs_extra=require(_0xdbb1('0xa'));var _=require(_0xdbb1('0xb'));var squel=require(_0xdbb1('0xc'));var crypto=require('crypto');var jsforce=require(_0xdbb1('0xd'));var deskjs=require(_0xdbb1('0xe'));var toCsv=require(_0xdbb1('0x8'));var querystring=require(_0xdbb1('0xf'));var Papa=require(_0xdbb1('0x10'));var Redis=require(_0xdbb1('0x11'));var authService=require(_0xdbb1('0x12'));var qs=require(_0xdbb1('0x13'));var as=require(_0xdbb1('0x14'));var hardwareService=require(_0xdbb1('0x15'));var logger=require(_0xdbb1('0x16'))(_0xdbb1('0x17'));var utils=require(_0xdbb1('0x18'));var config=require(_0xdbb1('0x19'));var licenseUtil=require(_0xdbb1('0x1a'));var db=require(_0xdbb1('0x1b'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x4c201d,_0x1ccdf2){_0x1ccdf2=_0x1ccdf2||0xcc;return function(_0x1eb81f){if(_0x1eb81f){return _0x4c201d[_0xdbb1('0x1c')](_0x1ccdf2);}return _0x4c201d[_0xdbb1('0x1d')](_0x1ccdf2)[_0xdbb1('0x1e')]();};}function respondWithResult(_0x133810,_0x5540db){_0x5540db=_0x5540db||0xc8;return function(_0xcf855a){if(_0xcf855a){return _0x133810[_0xdbb1('0x1d')](_0x5540db)[_0xdbb1('0x1f')](_0xcf855a);}};}function respondWithFilteredResult(_0x4e08df,_0x585196){return function(_0x3f2786){if(_0x3f2786){var _0x42727f=typeof _0x585196[_0xdbb1('0x20')]===_0xdbb1('0x21')&&typeof _0x585196[_0xdbb1('0x22')]===_0xdbb1('0x21');var _0x530ccc=_0x3f2786['count'];var _0x75caea=_0x42727f?0x0:_0x585196['offset'];var _0x43e5e6=_0x42727f?_0x3f2786[_0xdbb1('0x23')]:_0x585196[_0xdbb1('0x20')]+_0x585196[_0xdbb1('0x22')];var _0x509733;if(_0x43e5e6>=_0x530ccc){_0x43e5e6=_0x530ccc;_0x509733=0xc8;}else{_0x509733=0xce;}_0x4e08df[_0xdbb1('0x1d')](_0x509733);return _0x4e08df[_0xdbb1('0x24')](_0xdbb1('0x25'),_0x75caea+'-'+_0x43e5e6+'/'+_0x530ccc)[_0xdbb1('0x1f')](_0x3f2786);}return null;};}function patchUpdates(_0x1bce14){return function(_0x207b1b){try{jsonpatch[_0xdbb1('0x26')](_0x207b1b,_0x1bce14,!![]);}catch(_0x389c1b){return BPromise[_0xdbb1('0x27')](_0x389c1b);}return _0x207b1b[_0xdbb1('0x28')]();};}function saveUpdates(_0x6d4789,_0x3e3290){return function(_0x397066){if(_0x397066){return _0x397066[_0xdbb1('0x29')](_0x6d4789)[_0xdbb1('0x2a')](function(_0x3b2df1){return _0x3b2df1;});}return null;};}function removeEntity(_0x4fbbff,_0x365c38){return function(_0x1434ae){if(_0x1434ae){return _0x1434ae[_0xdbb1('0x2b')]()[_0xdbb1('0x2a')](function(){_0x4fbbff['status'](0xcc)[_0xdbb1('0x1e')]();});}};}function handleEntityNotFound(_0x70e094,_0x24797f){return function(_0x2c111c){if(!_0x2c111c){_0x70e094[_0xdbb1('0x1c')](0x194);}return _0x2c111c;};}function handleError(_0x302caa,_0x3b2bbf){_0x3b2bbf=_0x3b2bbf||0x1f4;return function(_0x44a49a){logger[_0xdbb1('0x2c')](_0x44a49a[_0xdbb1('0x2d')]);if(_0x44a49a[_0xdbb1('0x2e')]){delete _0x44a49a[_0xdbb1('0x2e')];}_0x302caa[_0xdbb1('0x1d')](_0x3b2bbf)[_0xdbb1('0x2f')](_0x44a49a);};}exports[_0xdbb1('0x30')]=function(_0x367b17,_0x4a1708){var _0x197136={},_0x48812b={},_0x48b9e7={'count':0x0,'rows':[]};var _0x30dfdd=_[_0xdbb1('0x31')](db[_0xdbb1('0x32')][_0xdbb1('0x33')],function(_0x36ef10){return{'name':_0x36ef10[_0xdbb1('0x34')],'type':_0x36ef10['type'][_0xdbb1('0x35')]};});_0x48812b['model']=_[_0xdbb1('0x31')](_0x30dfdd,_0xdbb1('0x2e'));_0x48812b[_0xdbb1('0x36')]=_[_0xdbb1('0x37')](_0x367b17[_0xdbb1('0x36')]);_0x48812b['filters']=_[_0xdbb1('0x38')](_0x48812b[_0xdbb1('0x39')],_0x48812b['query']);_0x197136[_0xdbb1('0x3a')]=_[_0xdbb1('0x38')](_0x48812b[_0xdbb1('0x39')],qs[_0xdbb1('0x3b')](_0x367b17[_0xdbb1('0x36')][_0xdbb1('0x3b')]));_0x197136[_0xdbb1('0x3a')]=_0x197136[_0xdbb1('0x3a')][_0xdbb1('0x3c')]?_0x197136[_0xdbb1('0x3a')]:_0x48812b['model'];if(!_0x367b17[_0xdbb1('0x36')][_0xdbb1('0x3d')]('nolimit')){_0x197136['limit']=qs[_0xdbb1('0x22')](_0x367b17['query'][_0xdbb1('0x22')]);_0x197136['offset']=qs[_0xdbb1('0x20')](_0x367b17[_0xdbb1('0x36')][_0xdbb1('0x20')]);}_0x197136['order']=qs[_0xdbb1('0x3e')](_0x367b17[_0xdbb1('0x36')][_0xdbb1('0x3e')]);_0x197136[_0xdbb1('0x3f')]=qs[_0xdbb1('0x40')](_['pick'](_0x367b17[_0xdbb1('0x36')],_0x48812b['filters']),_0x30dfdd);if(_0x367b17[_0xdbb1('0x36')][_0xdbb1('0x41')]){_0x197136[_0xdbb1('0x3f')]=_['merge'](_0x197136[_0xdbb1('0x3f')],{'$or':_[_0xdbb1('0x31')](_0x30dfdd,function(_0x4442c5){if(_0x4442c5[_0xdbb1('0x42')]!==_0xdbb1('0x43')){var _0x1f2347={};_0x1f2347[_0x4442c5['name']]={'$like':'%'+_0x367b17['query'][_0xdbb1('0x41')]+'%'};return _0x1f2347;}})});}_0x197136=_[_0xdbb1('0x44')]({},_0x197136,_0x367b17[_0xdbb1('0x45')]);var _0x2c4f29={'where':_0x197136[_0xdbb1('0x3f')]};return db[_0xdbb1('0x32')][_0xdbb1('0x23')](_0x2c4f29)[_0xdbb1('0x2a')](function(_0x4f03c3){_0x48b9e7[_0xdbb1('0x23')]=_0x4f03c3;if(_0x367b17[_0xdbb1('0x36')][_0xdbb1('0x46')]){_0x197136[_0xdbb1('0x47')]=[{'all':!![]}];}return db[_0xdbb1('0x32')][_0xdbb1('0x48')](_0x197136);})[_0xdbb1('0x2a')](function(_0x2e897e){_0x48b9e7[_0xdbb1('0x49')]=_0x2e897e;return _0x48b9e7;})['then'](respondWithFilteredResult(_0x4a1708,_0x197136))[_0xdbb1('0x4a')](handleError(_0x4a1708,null));};exports[_0xdbb1('0x4b')]=function(_0x16016a,_0x5bf6dd){var _0x3dae4a={'raw':![],'where':{'id':_0x16016a[_0xdbb1('0x4c')]['id']}},_0xb83976={};_0xb83976['model']=_[_0xdbb1('0x37')](db['SugarcrmAccount'][_0xdbb1('0x33')]);_0xb83976[_0xdbb1('0x36')]=_[_0xdbb1('0x37')](_0x16016a[_0xdbb1('0x36')]);_0xb83976['filters']=_[_0xdbb1('0x38')](_0xb83976['model'],_0xb83976[_0xdbb1('0x36')]);_0x3dae4a[_0xdbb1('0x3a')]=_[_0xdbb1('0x38')](_0xb83976[_0xdbb1('0x39')],qs[_0xdbb1('0x3b')](_0x16016a['query'][_0xdbb1('0x3b')]));_0x3dae4a[_0xdbb1('0x3a')]=_0x3dae4a['attributes'][_0xdbb1('0x3c')]?_0x3dae4a[_0xdbb1('0x3a')]:_0xb83976['model'];if(_0x16016a['query'][_0xdbb1('0x46')]){_0x3dae4a['include']=[{'all':!![]}];}_0x3dae4a=_['merge']({},_0x3dae4a,_0x16016a['options']);return db[_0xdbb1('0x32')][_0xdbb1('0x4d')](_0x3dae4a)[_0xdbb1('0x2a')](handleEntityNotFound(_0x5bf6dd,null))[_0xdbb1('0x2a')](respondWithResult(_0x5bf6dd,null))[_0xdbb1('0x4a')](handleError(_0x5bf6dd,null));};exports[_0xdbb1('0x4e')]=function(_0x45f7c5,_0x14e859){return db[_0xdbb1('0x32')][_0xdbb1('0x4e')](_0x45f7c5[_0xdbb1('0x4f')],{})[_0xdbb1('0x2a')](respondWithResult(_0x14e859,0xc9))[_0xdbb1('0x4a')](handleError(_0x14e859,null));};exports[_0xdbb1('0x29')]=function(_0x3f2bff,_0x5d7e73){if(_0x3f2bff[_0xdbb1('0x4f')]['id']){delete _0x3f2bff[_0xdbb1('0x4f')]['id'];}return db[_0xdbb1('0x32')][_0xdbb1('0x4d')]({'where':{'id':_0x3f2bff[_0xdbb1('0x4c')]['id']}})['then'](handleEntityNotFound(_0x5d7e73,null))['then'](saveUpdates(_0x3f2bff[_0xdbb1('0x4f')],null))[_0xdbb1('0x2a')](respondWithResult(_0x5d7e73,null))[_0xdbb1('0x4a')](handleError(_0x5d7e73,null));};exports[_0xdbb1('0x2b')]=function(_0x48a613,_0xb2fb69){return db[_0xdbb1('0x32')][_0xdbb1('0x4d')]({'where':{'id':_0x48a613[_0xdbb1('0x4c')]['id']}})[_0xdbb1('0x2a')](handleEntityNotFound(_0xb2fb69,null))[_0xdbb1('0x2a')](removeEntity(_0xb2fb69,null))[_0xdbb1('0x4a')](handleError(_0xb2fb69,null));};exports[_0xdbb1('0x50')]=function(_0x4fd55d,_0x39b6bd,_0x467343){var _0x29b040={};var _0x50de2c={};var _0x1145d8;var _0x54754f;return db[_0xdbb1('0x32')]['findOne']({'where':{'id':_0x4fd55d[_0xdbb1('0x4c')]['id']}})[_0xdbb1('0x2a')](handleEntityNotFound(_0x39b6bd,null))[_0xdbb1('0x2a')](function(_0xd12fca){if(_0xd12fca){_0x1145d8=_0xd12fca;_0x50de2c[_0xdbb1('0x39')]=_[_0xdbb1('0x37')](db[_0xdbb1('0x51')][_0xdbb1('0x33')]);_0x50de2c[_0xdbb1('0x36')]=_[_0xdbb1('0x37')](_0x4fd55d[_0xdbb1('0x36')]);_0x50de2c[_0xdbb1('0x40')]=_[_0xdbb1('0x38')](_0x50de2c[_0xdbb1('0x39')],_0x50de2c[_0xdbb1('0x36')]);_0x29b040[_0xdbb1('0x3a')]=_[_0xdbb1('0x38')](_0x50de2c[_0xdbb1('0x39')],qs[_0xdbb1('0x3b')](_0x4fd55d[_0xdbb1('0x36')]['fields']));_0x29b040['attributes']=_0x29b040['attributes'][_0xdbb1('0x3c')]?_0x29b040[_0xdbb1('0x3a')]:_0x50de2c[_0xdbb1('0x39')];_0x29b040[_0xdbb1('0x52')]=qs[_0xdbb1('0x3e')](_0x4fd55d[_0xdbb1('0x36')][_0xdbb1('0x3e')]);_0x29b040[_0xdbb1('0x3f')]=qs[_0xdbb1('0x40')](_[_0xdbb1('0x53')](_0x4fd55d[_0xdbb1('0x36')],_0x50de2c[_0xdbb1('0x40')]));if(_0x4fd55d[_0xdbb1('0x36')]['filter']){_0x29b040['where']=_[_0xdbb1('0x44')](_0x29b040[_0xdbb1('0x3f')],{'$or':_[_0xdbb1('0x31')](_0x29b040['attributes'],function(_0x1be935){var _0x3eeeea={};_0x3eeeea[_0x1be935]={'$like':'%'+_0x4fd55d['query'][_0xdbb1('0x41')]+'%'};return _0x3eeeea;})});}_0x29b040=_[_0xdbb1('0x44')]({},_0x29b040,_0x4fd55d[_0xdbb1('0x45')]);return _0x1145d8[_0xdbb1('0x50')](_0x29b040);}})['then'](function(_0x59cc6a){if(_0x59cc6a){_0x54754f=_0x59cc6a[_0xdbb1('0x3c')];if(!_0x4fd55d[_0xdbb1('0x36')][_0xdbb1('0x3d')]('nolimit')){_0x29b040[_0xdbb1('0x22')]=qs[_0xdbb1('0x22')](_0x4fd55d[_0xdbb1('0x36')]['limit']);_0x29b040['offset']=qs['offset'](_0x4fd55d['query'][_0xdbb1('0x20')]);}return _0x1145d8[_0xdbb1('0x50')](_0x29b040);}})[_0xdbb1('0x2a')](function(_0x3d252b){if(_0x3d252b){return _0x3d252b?{'count':_0x54754f,'rows':_0x3d252b}:null;}})[_0xdbb1('0x2a')](respondWithResult(_0x39b6bd,null))[_0xdbb1('0x4a')](handleError(_0x39b6bd,null));};exports['addConfiguration']=function(_0x48080c,_0x392ddc,_0x48a688){if(_0x48080c[_0xdbb1('0x4f')]['id']){delete _0x48080c[_0xdbb1('0x4f')]['id'];}return db[_0xdbb1('0x32')]['findOne']({'where':{'id':_0x48080c[_0xdbb1('0x4c')]['id']}})[_0xdbb1('0x2a')](handleEntityNotFound(_0x392ddc,null))['then'](function(_0x40b0f2){if(_0x40b0f2){_0x48080c['body']['AccountId']=_0x40b0f2['id'];_0x48080c[_0xdbb1('0x4f')][_0xdbb1('0x54')]=integrations[_0xdbb1('0x55')](_0x48080c[_0xdbb1('0x4f')][_0xdbb1('0x56')],_0x48080c[_0xdbb1('0x4f')][_0xdbb1('0x42')]);_0x48080c['body'][_0xdbb1('0x57')]=integrations[_0xdbb1('0x58')](_0x48080c[_0xdbb1('0x4f')]['channel'],_0x48080c[_0xdbb1('0x4f')][_0xdbb1('0x42')]);return db['SugarcrmConfiguration']['create'](_0x48080c[_0xdbb1('0x4f')],{'include':[{'model':db[_0xdbb1('0x59')],'as':_0xdbb1('0x54')},{'model':db[_0xdbb1('0x59')],'as':_0xdbb1('0x57')}]});}return null;})[_0xdbb1('0x2a')](respondWithResult(_0x392ddc,null))[_0xdbb1('0x4a')](handleError(_0x392ddc,null));};exports['getFields']=function(_0x234c90,_0x4f0a96,_0x49fc54){var _0x55d6cb='';var _0x2950a2=['id','name',_0xdbb1('0x5a'),'created_by',_0xdbb1('0x5b'),'date_start',_0xdbb1('0x5c'),'duration_minutes',_0xdbb1('0x5d'),_0xdbb1('0x5e'),_0xdbb1('0x5f'),'direction'];return db['SugarcrmAccount'][_0xdbb1('0x60')]({'where':{'id':_0x234c90[_0xdbb1('0x4c')]['id']},'attributes':['id',_0xdbb1('0x61'),_0xdbb1('0x62'),'remoteUri']})[_0xdbb1('0x2a')](handleEntityNotFound(_0x4f0a96,null))[_0xdbb1('0x2a')](function(_0x256196){if(_0x256196){_0x55d6cb=_0x256196['remoteUri'];var _0x2b3618=_0x55d6cb['slice'](-0x1);if(_0x2b3618==='/'){_0x55d6cb=_0x55d6cb[_0xdbb1('0x63')](0x0,_0x55d6cb[_0xdbb1('0x64')](_0x2b3618));}return rp({'method':_0xdbb1('0x65'),'uri':util[_0xdbb1('0x66')]('%s%s',_0x55d6cb,_0xdbb1('0x67')),'json':!![],'form':{'method':_0xdbb1('0x68'),'input_type':_0xdbb1('0x69'),'response_type':_0xdbb1('0x69'),'rest_data':JSON[_0xdbb1('0x6a')]({'user_auth':{'user_name':_0x256196[_0xdbb1('0x61')],'password':_0x256196['password'],'encryption':_0xdbb1('0x6b')},'application':_0xdbb1('0x6c')})}});}})[_0xdbb1('0x2a')](function(_0x43b8c2){if(_0x43b8c2&&_0x43b8c2[_0xdbb1('0x2e')]!=='Invalid\x20Login'&&_0x43b8c2[_0xdbb1('0x2e')]!==_0xdbb1('0x6d')){return rp({'method':'POST','uri':util[_0xdbb1('0x66')](_0xdbb1('0x6e'),_0x55d6cb,_0xdbb1('0x67')),'json':!![],'form':{'method':'get_module_fields','input_type':_0xdbb1('0x69'),'response_type':_0xdbb1('0x69'),'rest_data':JSON[_0xdbb1('0x6a')]({'session':_0x43b8c2['id'],'module_name':_0xdbb1('0x6f')})}})['then'](function(_0x576652){if(_0x576652){var _0x1244a1=_[_0xdbb1('0x70')](_0x576652['module_fields']);_[_0xdbb1('0x71')](_0x1244a1,function(_0x104121){return _0x2950a2[_0xdbb1('0x72')](_0x104121['name']);});return{'count':_0x1244a1[_0xdbb1('0x3c')],'rows':_['map'](_0x1244a1,function(_0x4f51ae){return{'id':_0x4f51ae['name'],'name':_0x4f51ae[_0xdbb1('0x73')],'custom':_['endsWith'](_0x4f51ae[_0xdbb1('0x2e')],'_c')?!![]:![],'options':_0x4f51ae[_0xdbb1('0x45')]?_[_0xdbb1('0x31')](_[_0xdbb1('0x70')](_0x4f51ae[_0xdbb1('0x45')]),function(_0x4984fa){return{'name':_0x4984fa[_0xdbb1('0x74')],'value':_0x4984fa[_0xdbb1('0x2e')]};}):[]};})};}})[_0xdbb1('0x2a')](respondWithResult(_0x4f0a96,null))[_0xdbb1('0x4a')](function(_0x3a7eec){var _0x372a59=_0x234c90[_0xdbb1('0x36')][_0xdbb1('0x75')]?0x1f4:_0x3a7eec['statusCode']||0x1f4;logger[_0xdbb1('0x2c')](_0xdbb1('0x76'),_0xdbb1('0x77'),_0x372a59,JSON[_0xdbb1('0x6a')](_0x3a7eec));delete _0x3a7eec['name'];if(_0x372a59===0x191){_0x372a59=0x190;}_0x4f0a96[_0xdbb1('0x1d')](_0x372a59)[_0xdbb1('0x2f')](_0x234c90[_0xdbb1('0x36')][_0xdbb1('0x75')]?{'message':_0xdbb1('0x78'),'statusCode':_0x3a7eec[_0xdbb1('0x79')]}:_0x3a7eec);});}else{var _0x376383=0x1f4;_0x4f0a96[_0xdbb1('0x1d')](_0x376383)[_0xdbb1('0x2f')]({'message':'Wrong\x20credentials','statusCode':0x190});}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x30fc=['SugarcrmAccount','int_sugarcrm_accounts','lodash','util','api','moment','bluebird','request-promise','rimraf','../../config/environment','./intSugarcrmAccount.attributes','../../components/integrations/configuration','exports','define'];(function(_0x111311,_0x1e2f69){var _0x4cef39=function(_0x382ab2){while(--_0x382ab2){_0x111311['push'](_0x111311['shift']());}};_0x4cef39(++_0x1e2f69);}(_0x30fc,0x64));var _0xc30f=function(_0xa6e9fa,_0x33372a){_0xa6e9fa=_0xa6e9fa-0x0;var _0x44592c=_0x30fc[_0xa6e9fa];return _0x44592c;};'use strict';var _=require(_0xc30f('0x0'));var util=require(_0xc30f('0x1'));var logger=require('../../config/logger')(_0xc30f('0x2'));var moment=require(_0xc30f('0x3'));var BPromise=require(_0xc30f('0x4'));var rp=require(_0xc30f('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0xc30f('0x6'));var config=require(_0xc30f('0x7'));var attributes=require(_0xc30f('0x8'));var integrations=require(_0xc30f('0x9'));module[_0xc30f('0xa')]=function(_0x293391,_0x54c174){return _0x293391[_0xc30f('0xb')](_0xc30f('0xc'),attributes,{'tableName':_0xc30f('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x3445=['bluebird','request-promise','../../config/environment','./intSugarcrmAccount.attributes','../../components/integrations/configuration','exports','int_sugarcrm_accounts','lodash','util','../../config/logger','api','moment'];(function(_0x316d0e,_0x5491c6){var _0x1f2689=function(_0x29821b){while(--_0x29821b){_0x316d0e['push'](_0x316d0e['shift']());}};_0x1f2689(++_0x5491c6);}(_0x3445,0x1b7));var _0x5344=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x3445[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x5344('0x0'));var util=require(_0x5344('0x1'));var logger=require(_0x5344('0x2'))(_0x5344('0x3'));var moment=require(_0x5344('0x4'));var BPromise=require(_0x5344('0x5'));var rp=require(_0x5344('0x6'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x5344('0x7'));var attributes=require(_0x5344('0x8'));var integrations=require(_0x5344('0x9'));module[_0x5344('0xa')]=function(_0x5c1b4e,_0x4ffe5f){return _0x5c1b4e['define']('SugarcrmAccount',attributes,{'tableName':_0x5344('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x99f5=['../../mysqldb','../../config/utils','rpc','jayson/promise','client','http','then','info','SugarcrmAccount,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','catch','GetSugarcrmAccount','SugarcrmAccount','findAll','options','where','attributes','include','map','model','debug','ShowSugarcrmAccount','raw','lodash','util','moment','randomstring','ioredis'];(function(_0x361d3f,_0x3be2aa){var _0x320229=function(_0x138319){while(--_0x138319){_0x361d3f['push'](_0x361d3f['shift']());}};_0x320229(++_0x3be2aa);}(_0x99f5,0xbb));var _0x599f=function(_0x5157f9,_0xf78567){_0x5157f9=_0x5157f9-0x0;var _0x1efadd=_0x99f5[_0x5157f9];return _0x1efadd;};'use strict';var _=require(_0x599f('0x0'));var util=require(_0x599f('0x1'));var moment=require(_0x599f('0x2'));var BPromise=require('bluebird');var rs=require(_0x599f('0x3'));var fs=require('fs');var Redis=require(_0x599f('0x4'));var db=require(_0x599f('0x5'))['db'];var utils=require(_0x599f('0x6'));var logger=require('../../config/logger')(_0x599f('0x7'));var config=require('../../config/environment');var jayson=require(_0x599f('0x8'));var client=jayson[_0x599f('0x9')][_0x599f('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x5f5c5f,_0x27136d,_0x476fdd){return new BPromise(function(_0x23b99c,_0x10f207){return client['request'](_0x5f5c5f,_0x476fdd)[_0x599f('0xb')](function(_0x2d37d1){logger[_0x599f('0xc')](_0x599f('0xd'),_0x27136d,_0x599f('0xe'));logger['debug']('SugarcrmAccount,\x20%s,\x20%s,\x20%s',_0x27136d,'request\x20sent',JSON[_0x599f('0xf')](_0x2d37d1));if(_0x2d37d1[_0x599f('0x10')]){if(_0x2d37d1['error'][_0x599f('0x11')]===0x1f4){logger['error'](_0x599f('0xd'),_0x27136d,_0x2d37d1[_0x599f('0x10')][_0x599f('0x12')]);return _0x10f207(_0x2d37d1[_0x599f('0x10')][_0x599f('0x12')]);}logger[_0x599f('0x10')](_0x599f('0xd'),_0x27136d,_0x2d37d1[_0x599f('0x10')][_0x599f('0x12')]);return _0x23b99c(_0x2d37d1[_0x599f('0x10')][_0x599f('0x12')]);}else{logger[_0x599f('0xc')](_0x599f('0xd'),_0x27136d,_0x599f('0xe'));_0x23b99c(_0x2d37d1['result'][_0x599f('0x12')]);}})[_0x599f('0x13')](function(_0x156b5d){logger[_0x599f('0x10')](_0x599f('0xd'),_0x27136d,_0x156b5d);_0x10f207(_0x156b5d);});});}exports[_0x599f('0x14')]=function(_0x5676b5){var _0x56017e=this;return new Promise(function(_0x5d34ac,_0x3204cd){return db[_0x599f('0x15')][_0x599f('0x16')]({'raw':_0x5676b5['options']?_0x5676b5[_0x599f('0x17')]['raw']===undefined?!![]:![]:!![],'where':_0x5676b5['options']?_0x5676b5[_0x599f('0x17')][_0x599f('0x18')]||null:null,'attributes':_0x5676b5[_0x599f('0x17')]?_0x5676b5['options'][_0x599f('0x19')]||null:null,'limit':_0x5676b5[_0x599f('0x17')]?_0x5676b5['options']['limit']||null:null,'include':_0x5676b5[_0x599f('0x17')]?_0x5676b5[_0x599f('0x17')][_0x599f('0x1a')]?_[_0x599f('0x1b')](_0x5676b5[_0x599f('0x17')][_0x599f('0x1a')],function(_0x2bd954){return{'model':db[_0x2bd954[_0x599f('0x1c')]],'as':_0x2bd954['as'],'attributes':_0x2bd954[_0x599f('0x19')],'include':_0x2bd954[_0x599f('0x1a')]?_[_0x599f('0x1b')](_0x2bd954[_0x599f('0x1a')],function(_0x529168){return{'model':db[_0x529168[_0x599f('0x1c')]],'as':_0x529168['as'],'attributes':_0x529168[_0x599f('0x19')],'include':_0x529168[_0x599f('0x1a')]?_[_0x599f('0x1b')](_0x529168[_0x599f('0x1a')],function(_0xfed031){return{'model':db[_0xfed031[_0x599f('0x1c')]],'as':_0xfed031['as'],'attributes':_0xfed031['attributes']};}):[]};}):[]};}):[]:[]})[_0x599f('0xb')](function(_0x18432e){logger['info'](_0x599f('0x14'),_0x5676b5);logger[_0x599f('0x1d')]('GetSugarcrmAccount',_0x5676b5,JSON['stringify'](_0x18432e));_0x5d34ac(_0x18432e);})[_0x599f('0x13')](function(_0x4da5b7){logger['error'](_0x599f('0x14'),_0x4da5b7[_0x599f('0x12')],_0x5676b5);_0x3204cd(_0x56017e[_0x599f('0x10')](0x1f4,_0x4da5b7['message']));});});};exports[_0x599f('0x1e')]=function(_0x4b8d69){var _0x57ecda=this;return new Promise(function(_0x2cfc46,_0x2a5470){return db[_0x599f('0x15')]['find']({'raw':_0x4b8d69[_0x599f('0x17')]?_0x4b8d69['options'][_0x599f('0x1f')]===undefined?!![]:![]:!![],'where':_0x4b8d69[_0x599f('0x17')]?_0x4b8d69['options'][_0x599f('0x18')]||null:null,'attributes':_0x4b8d69['options']?_0x4b8d69[_0x599f('0x17')][_0x599f('0x19')]||null:null,'include':_0x4b8d69[_0x599f('0x17')]?_0x4b8d69[_0x599f('0x17')][_0x599f('0x1a')]?_[_0x599f('0x1b')](_0x4b8d69[_0x599f('0x17')][_0x599f('0x1a')],function(_0x1aead4){return{'model':db[_0x1aead4[_0x599f('0x1c')]],'as':_0x1aead4['as'],'attributes':_0x1aead4[_0x599f('0x19')],'include':_0x1aead4['include']?_['map'](_0x1aead4[_0x599f('0x1a')],function(_0x45b117){return{'model':db[_0x45b117[_0x599f('0x1c')]],'as':_0x45b117['as'],'attributes':_0x45b117[_0x599f('0x19')],'include':_0x45b117['include']?_['map'](_0x45b117[_0x599f('0x1a')],function(_0x5962bd){return{'model':db[_0x5962bd['model']],'as':_0x5962bd['as'],'attributes':_0x5962bd[_0x599f('0x19')]};}):[]};}):[]};}):[]:[]})[_0x599f('0xb')](function(_0x1f8cda){logger[_0x599f('0xc')](_0x599f('0x1e'),_0x4b8d69);logger[_0x599f('0x1d')](_0x599f('0x1e'),_0x4b8d69,JSON[_0x599f('0xf')](_0x1f8cda));_0x2cfc46(_0x1f8cda);})['catch'](function(_0x5dfbb4){logger['error'](_0x599f('0x1e'),_0x5dfbb4[_0x599f('0x12')],_0x4b8d69);_0x2a5470(_0x57ecda[_0x599f('0x10')](0x1f4,_0x5dfbb4[_0x599f('0x12')]));});});};
\ No newline at end of file
+var _0xf6af=['raw','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','SugarcrmAccount,\x20%s,\x20%s','request\x20sent','SugarcrmAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','GetSugarcrmAccount','SugarcrmAccount','findAll','options','where','include','model','attributes','map','debug','ShowSugarcrmAccount','find'];(function(_0x2aea9e,_0x1f587f){var _0x430b92=function(_0x416c37){while(--_0x416c37){_0x2aea9e['push'](_0x2aea9e['shift']());}};_0x430b92(++_0x1f587f);}(_0xf6af,0x157));var _0xff6a=function(_0x2e4d59,_0x5dd63a){_0x2e4d59=_0x2e4d59-0x0;var _0x3515f4=_0xf6af[_0x2e4d59];return _0x3515f4;};'use strict';var _=require(_0xff6a('0x0'));var util=require(_0xff6a('0x1'));var moment=require(_0xff6a('0x2'));var BPromise=require('bluebird');var rs=require(_0xff6a('0x3'));var fs=require('fs');var Redis=require(_0xff6a('0x4'));var db=require(_0xff6a('0x5'))['db'];var utils=require(_0xff6a('0x6'));var logger=require(_0xff6a('0x7'))(_0xff6a('0x8'));var config=require(_0xff6a('0x9'));var jayson=require(_0xff6a('0xa'));var client=jayson[_0xff6a('0xb')][_0xff6a('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x175e24,_0x3ca337,_0xd41cb5){return new BPromise(function(_0x3f5bad,_0x2a8ea0){return client[_0xff6a('0xd')](_0x175e24,_0xd41cb5)[_0xff6a('0xe')](function(_0x1a4130){logger['info'](_0xff6a('0xf'),_0x3ca337,_0xff6a('0x10'));logger['debug'](_0xff6a('0x11'),_0x3ca337,_0xff6a('0x10'),JSON[_0xff6a('0x12')](_0x1a4130));if(_0x1a4130[_0xff6a('0x13')]){if(_0x1a4130[_0xff6a('0x13')][_0xff6a('0x14')]===0x1f4){logger[_0xff6a('0x13')]('SugarcrmAccount,\x20%s,\x20%s',_0x3ca337,_0x1a4130[_0xff6a('0x13')][_0xff6a('0x15')]);return _0x2a8ea0(_0x1a4130[_0xff6a('0x13')][_0xff6a('0x15')]);}logger['error'](_0xff6a('0xf'),_0x3ca337,_0x1a4130[_0xff6a('0x13')][_0xff6a('0x15')]);return _0x3f5bad(_0x1a4130[_0xff6a('0x13')]['message']);}else{logger[_0xff6a('0x16')]('SugarcrmAccount,\x20%s,\x20%s',_0x3ca337,'request\x20sent');_0x3f5bad(_0x1a4130[_0xff6a('0x17')]['message']);}})[_0xff6a('0x18')](function(_0x12ea89){logger[_0xff6a('0x13')](_0xff6a('0xf'),_0x3ca337,_0x12ea89);_0x2a8ea0(_0x12ea89);});});}exports[_0xff6a('0x19')]=function(_0x2d5306){var _0x204bc7=this;return new Promise(function(_0x4072bd,_0x348065){return db[_0xff6a('0x1a')][_0xff6a('0x1b')]({'raw':_0x2d5306[_0xff6a('0x1c')]?_0x2d5306['options']['raw']===undefined?!![]:![]:!![],'where':_0x2d5306['options']?_0x2d5306['options'][_0xff6a('0x1d')]||null:null,'attributes':_0x2d5306[_0xff6a('0x1c')]?_0x2d5306[_0xff6a('0x1c')]['attributes']||null:null,'limit':_0x2d5306['options']?_0x2d5306['options']['limit']||null:null,'include':_0x2d5306[_0xff6a('0x1c')]?_0x2d5306[_0xff6a('0x1c')][_0xff6a('0x1e')]?_['map'](_0x2d5306[_0xff6a('0x1c')][_0xff6a('0x1e')],function(_0x1fea32){return{'model':db[_0x1fea32[_0xff6a('0x1f')]],'as':_0x1fea32['as'],'attributes':_0x1fea32[_0xff6a('0x20')],'include':_0x1fea32[_0xff6a('0x1e')]?_['map'](_0x1fea32['include'],function(_0x48c2a6){return{'model':db[_0x48c2a6['model']],'as':_0x48c2a6['as'],'attributes':_0x48c2a6[_0xff6a('0x20')],'include':_0x48c2a6[_0xff6a('0x1e')]?_[_0xff6a('0x21')](_0x48c2a6['include'],function(_0x59d6f8){return{'model':db[_0x59d6f8['model']],'as':_0x59d6f8['as'],'attributes':_0x59d6f8[_0xff6a('0x20')]};}):[]};}):[]};}):[]:[]})[_0xff6a('0xe')](function(_0x2e2c21){logger[_0xff6a('0x16')]('GetSugarcrmAccount',_0x2d5306);logger[_0xff6a('0x22')](_0xff6a('0x19'),_0x2d5306,JSON[_0xff6a('0x12')](_0x2e2c21));_0x4072bd(_0x2e2c21);})['catch'](function(_0xdd25d){logger[_0xff6a('0x13')]('GetSugarcrmAccount',_0xdd25d[_0xff6a('0x15')],_0x2d5306);_0x348065(_0x204bc7['error'](0x1f4,_0xdd25d['message']));});});};exports[_0xff6a('0x23')]=function(_0x1eef4a){var _0xad22c4=this;return new Promise(function(_0x1943a2,_0x30049a){return db['SugarcrmAccount'][_0xff6a('0x24')]({'raw':_0x1eef4a[_0xff6a('0x1c')]?_0x1eef4a[_0xff6a('0x1c')][_0xff6a('0x25')]===undefined?!![]:![]:!![],'where':_0x1eef4a[_0xff6a('0x1c')]?_0x1eef4a[_0xff6a('0x1c')][_0xff6a('0x1d')]||null:null,'attributes':_0x1eef4a[_0xff6a('0x1c')]?_0x1eef4a['options'][_0xff6a('0x20')]||null:null,'include':_0x1eef4a[_0xff6a('0x1c')]?_0x1eef4a[_0xff6a('0x1c')][_0xff6a('0x1e')]?_['map'](_0x1eef4a[_0xff6a('0x1c')][_0xff6a('0x1e')],function(_0xf13b1c){return{'model':db[_0xf13b1c[_0xff6a('0x1f')]],'as':_0xf13b1c['as'],'attributes':_0xf13b1c[_0xff6a('0x20')],'include':_0xf13b1c[_0xff6a('0x1e')]?_[_0xff6a('0x21')](_0xf13b1c[_0xff6a('0x1e')],function(_0x12ef13){return{'model':db[_0x12ef13['model']],'as':_0x12ef13['as'],'attributes':_0x12ef13['attributes'],'include':_0x12ef13[_0xff6a('0x1e')]?_['map'](_0x12ef13[_0xff6a('0x1e')],function(_0xbf148e){return{'model':db[_0xbf148e['model']],'as':_0xbf148e['as'],'attributes':_0xbf148e['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x3a8b7b){logger['info'](_0xff6a('0x23'),_0x1eef4a);logger['debug'](_0xff6a('0x23'),_0x1eef4a,JSON[_0xff6a('0x12')](_0x3a8b7b));_0x1943a2(_0x3a8b7b);})[_0xff6a('0x18')](function(_0x5997e7){logger[_0xff6a('0x13')]('ShowSugarcrmAccount',_0x5997e7['message'],_0x1eef4a);_0x30049a(_0xad22c4[_0xff6a('0x13')](0x1f4,_0x5997e7['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaffb=['getSubjects','/:id/descriptions','getDescriptions','create','put','update','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/:id','show','/:id/fields','getFields'];(function(_0x4bfcbe,_0x4630f5){var _0x5b65e6=function(_0x5dcfc8){while(--_0x5dcfc8){_0x4bfcbe['push'](_0x4bfcbe['shift']());}};_0x5b65e6(++_0x4630f5);}(_0xaffb,0x192));var _0xbaff=function(_0x352d28,_0x444033){_0x352d28=_0x352d28-0x0;var _0x387d7e=_0xaffb[_0x352d28];return _0x387d7e;};'use strict';var multer=require(_0xbaff('0x0'));var util=require(_0xbaff('0x1'));var path=require(_0xbaff('0x2'));var timeout=require(_0xbaff('0x3'));var express=require(_0xbaff('0x4'));var router=express[_0xbaff('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0xbaff('0x6'));var interaction=require(_0xbaff('0x7'));var config=require(_0xbaff('0x8'));var controller=require('./intSugarcrmConfiguration.controller');router[_0xbaff('0x9')]('/',auth[_0xbaff('0xa')](),controller[_0xbaff('0xb')]);router[_0xbaff('0x9')](_0xbaff('0xc'),auth[_0xbaff('0xa')](),controller[_0xbaff('0xd')]);router[_0xbaff('0x9')](_0xbaff('0xe'),auth[_0xbaff('0xa')](),controller[_0xbaff('0xf')]);router[_0xbaff('0x9')]('/:id/subjects',auth['isAuthenticated'](),controller[_0xbaff('0x10')]);router['get'](_0xbaff('0x11'),auth[_0xbaff('0xa')](),controller[_0xbaff('0x12')]);router['post']('/',auth[_0xbaff('0xa')](),controller[_0xbaff('0x13')]);router[_0xbaff('0x14')](_0xbaff('0xc'),auth[_0xbaff('0xa')](),controller[_0xbaff('0x15')]);router['delete'](_0xbaff('0xc'),auth[_0xbaff('0xa')](),controller['destroy']);module['exports']=router;
\ No newline at end of file
+var _0x6975=['get','isAuthenticated','index','/:id','show','/:id/fields','getFields','/:id/subjects','getSubjects','/:id/descriptions','getDescriptions','post','create','put','update','delete','exports','util','path','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./intSugarcrmConfiguration.controller'];(function(_0x1ac120,_0x3e7e45){var _0x19b703=function(_0x5f32cb){while(--_0x5f32cb){_0x1ac120['push'](_0x1ac120['shift']());}};_0x19b703(++_0x3e7e45);}(_0x6975,0x71));var _0x5697=function(_0x10dc94,_0x2fed4f){_0x10dc94=_0x10dc94-0x0;var _0x4a462d=_0x6975[_0x10dc94];return _0x4a462d;};'use strict';var multer=require('multer');var util=require(_0x5697('0x0'));var path=require(_0x5697('0x1'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x5697('0x2')]();var fs_extra=require(_0x5697('0x3'));var auth=require(_0x5697('0x4'));var interaction=require(_0x5697('0x5'));var config=require('../../config/environment');var controller=require(_0x5697('0x6'));router[_0x5697('0x7')]('/',auth[_0x5697('0x8')](),controller[_0x5697('0x9')]);router[_0x5697('0x7')](_0x5697('0xa'),auth['isAuthenticated'](),controller[_0x5697('0xb')]);router['get'](_0x5697('0xc'),auth[_0x5697('0x8')](),controller[_0x5697('0xd')]);router[_0x5697('0x7')](_0x5697('0xe'),auth['isAuthenticated'](),controller[_0x5697('0xf')]);router[_0x5697('0x7')](_0x5697('0x10'),auth[_0x5697('0x8')](),controller[_0x5697('0x11')]);router[_0x5697('0x12')]('/',auth[_0x5697('0x8')](),controller[_0x5697('0x13')]);router[_0x5697('0x14')](_0x5697('0xa'),auth[_0x5697('0x8')](),controller[_0x5697('0x15')]);router[_0x5697('0x16')]('/:id',auth[_0x5697('0x8')](),controller['destroy']);module[_0x5697('0x17')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7ba0=['STRING','sequelize','exports'];(function(_0x4875c3,_0x5e5c1c){var _0x5cfd30=function(_0x15b80d){while(--_0x15b80d){_0x4875c3['push'](_0x4875c3['shift']());}};_0x5cfd30(++_0x5e5c1c);}(_0x7ba0,0x1bd));var _0x07ba=function(_0x1cdd49,_0xa545fd){_0x1cdd49=_0x1cdd49-0x0;var _0x1d73aa=_0x7ba0[_0x1cdd49];return _0x1d73aa;};'use strict';var Sequelize=require(_0x07ba('0x0'));module[_0x07ba('0x1')]={'name':{'type':Sequelize[_0x07ba('0x2')]},'description':{'type':Sequelize[_0x07ba('0x2')]}};
\ No newline at end of file
+var _0x8deb=['sequelize','exports','STRING'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x8deb,0x19b));var _0xb8de=function(_0x545916,_0x5d71c3){_0x545916=_0x545916-0x0;var _0x4d7cc0=_0x8deb[_0x545916];return _0x4d7cc0;};'use strict';var Sequelize=require(_0xb8de('0x0'));module[_0xb8de('0x1')]={'name':{'type':Sequelize[_0xb8de('0x2')]},'description':{'type':Sequelize[_0xb8de('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8967=['undefined','count','limit','set','Content-Range','apply','reject','save','update','destroy','then','sendStatus','error','stack','send','map','rawAttributes','fieldName','type','key','model','name','keys','intersection','query','attributes','fields','nolimit','order','sort','filters','pick','filter','where','merge','VIRTUAL','options','include','SugarcrmConfiguration','catch','length','includeAll','find','create','body','params','getFields','findOne','SugarcrmField','hasOwnProperty','getSubjects','getDescriptions','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset'];(function(_0x311699,_0x2f9357){var _0x303f99=function(_0xaab3f5){while(--_0xaab3f5){_0x311699['push'](_0x311699['shift']());}};_0x303f99(++_0x2f9357);}(_0x8967,0x1ce));var _0x7896=function(_0x1034ca,_0x14ecd6){_0x1034ca=_0x1034ca-0x0;var _0x1a023a=_0x8967[_0x1034ca];return _0x1a023a;};'use strict';var emlformat=require(_0x7896('0x0'));var rimraf=require(_0x7896('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x7896('0x2'));var rp=require(_0x7896('0x3'));var moment=require(_0x7896('0x4'));var BPromise=require(_0x7896('0x5'));var Mustache=require(_0x7896('0x6'));var util=require(_0x7896('0x7'));var path=require(_0x7896('0x8'));var sox=require(_0x7896('0x9'));var csv=require(_0x7896('0xa'));var ejs=require(_0x7896('0xb'));var fs=require('fs');var fs_extra=require(_0x7896('0xc'));var _=require(_0x7896('0xd'));var squel=require('squel');var crypto=require(_0x7896('0xe'));var jsforce=require('jsforce');var deskjs=require(_0x7896('0xf'));var toCsv=require(_0x7896('0xa'));var querystring=require(_0x7896('0x10'));var Papa=require(_0x7896('0x11'));var Redis=require(_0x7896('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x7896('0x13'));var as=require(_0x7896('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x7896('0x15'));var utils=require(_0x7896('0x16'));var config=require(_0x7896('0x17'));var licenseUtil=require(_0x7896('0x18'));var db=require(_0x7896('0x19'))['db'];function respondWithStatusCode(_0x452cff,_0x1e4271){_0x1e4271=_0x1e4271||0xcc;return function(_0x2e9f5c){if(_0x2e9f5c){return _0x452cff['sendStatus'](_0x1e4271);}return _0x452cff[_0x7896('0x1a')](_0x1e4271)[_0x7896('0x1b')]();};}function respondWithResult(_0x3243b9,_0x164e79){_0x164e79=_0x164e79||0xc8;return function(_0x37852f){if(_0x37852f){return _0x3243b9[_0x7896('0x1a')](_0x164e79)[_0x7896('0x1c')](_0x37852f);}};}function respondWithFilteredResult(_0x340e33,_0x592cfd){return function(_0x52c7a3){if(_0x52c7a3){var _0x3eb9fb=typeof _0x592cfd[_0x7896('0x1d')]===_0x7896('0x1e')&&typeof _0x592cfd['limit']===_0x7896('0x1e');var _0x4134c5=_0x52c7a3['count'];var _0xb71c33=_0x3eb9fb?0x0:_0x592cfd[_0x7896('0x1d')];var _0x27827b=_0x3eb9fb?_0x52c7a3[_0x7896('0x1f')]:_0x592cfd['offset']+_0x592cfd[_0x7896('0x20')];var _0x353527;if(_0x27827b>=_0x4134c5){_0x27827b=_0x4134c5;_0x353527=0xc8;}else{_0x353527=0xce;}_0x340e33['status'](_0x353527);return _0x340e33[_0x7896('0x21')](_0x7896('0x22'),_0xb71c33+'-'+_0x27827b+'/'+_0x4134c5)[_0x7896('0x1c')](_0x52c7a3);}return null;};}function patchUpdates(_0x37bbf1){return function(_0x3ba661){try{jsonpatch[_0x7896('0x23')](_0x3ba661,_0x37bbf1,!![]);}catch(_0x5bf795){return BPromise[_0x7896('0x24')](_0x5bf795);}return _0x3ba661[_0x7896('0x25')]();};}function saveUpdates(_0x5ee929,_0x50316c){return function(_0x129596){if(_0x129596){return _0x129596[_0x7896('0x26')](_0x5ee929)['then'](function(_0x19f7d3){return _0x19f7d3;});}return null;};}function removeEntity(_0x5ec44a,_0x4a9bf7){return function(_0x21bbba){if(_0x21bbba){return _0x21bbba[_0x7896('0x27')]()[_0x7896('0x28')](function(){_0x5ec44a[_0x7896('0x1a')](0xcc)[_0x7896('0x1b')]();});}};}function handleEntityNotFound(_0x2b6339,_0x6e383){return function(_0x4806a0){if(!_0x4806a0){_0x2b6339[_0x7896('0x29')](0x194);}return _0x4806a0;};}function handleError(_0x3111cc,_0x12c195){_0x12c195=_0x12c195||0x1f4;return function(_0x4f36fc){logger[_0x7896('0x2a')](_0x4f36fc[_0x7896('0x2b')]);if(_0x4f36fc['name']){delete _0x4f36fc['name'];}_0x3111cc['status'](_0x12c195)[_0x7896('0x2c')](_0x4f36fc);};}exports['index']=function(_0xc5dc93,_0x3f9d1d){var _0x18491c={},_0x122dd2={},_0x138ced={'count':0x0,'rows':[]};var _0x487a4f=_[_0x7896('0x2d')](db['SugarcrmConfiguration'][_0x7896('0x2e')],function(_0x317ec7){return{'name':_0x317ec7[_0x7896('0x2f')],'type':_0x317ec7[_0x7896('0x30')][_0x7896('0x31')]};});_0x122dd2[_0x7896('0x32')]=_['map'](_0x487a4f,_0x7896('0x33'));_0x122dd2['query']=_[_0x7896('0x34')](_0xc5dc93['query']);_0x122dd2['filters']=_[_0x7896('0x35')](_0x122dd2[_0x7896('0x32')],_0x122dd2[_0x7896('0x36')]);_0x18491c[_0x7896('0x37')]=_[_0x7896('0x35')](_0x122dd2['model'],qs[_0x7896('0x38')](_0xc5dc93['query'][_0x7896('0x38')]));_0x18491c['attributes']=_0x18491c['attributes']['length']?_0x18491c[_0x7896('0x37')]:_0x122dd2[_0x7896('0x32')];if(!_0xc5dc93[_0x7896('0x36')]['hasOwnProperty'](_0x7896('0x39'))){_0x18491c['limit']=qs['limit'](_0xc5dc93['query'][_0x7896('0x20')]);_0x18491c[_0x7896('0x1d')]=qs[_0x7896('0x1d')](_0xc5dc93['query'][_0x7896('0x1d')]);}_0x18491c[_0x7896('0x3a')]=qs[_0x7896('0x3b')](_0xc5dc93[_0x7896('0x36')][_0x7896('0x3b')]);_0x18491c['where']=qs[_0x7896('0x3c')](_[_0x7896('0x3d')](_0xc5dc93['query'],_0x122dd2[_0x7896('0x3c')]),_0x487a4f);if(_0xc5dc93[_0x7896('0x36')][_0x7896('0x3e')]){_0x18491c[_0x7896('0x3f')]=_[_0x7896('0x40')](_0x18491c['where'],{'$or':_['map'](_0x487a4f,function(_0x43103e){if(_0x43103e['type']!==_0x7896('0x41')){var _0x49f749={};_0x49f749[_0x43103e[_0x7896('0x33')]]={'$like':'%'+_0xc5dc93[_0x7896('0x36')][_0x7896('0x3e')]+'%'};return _0x49f749;}})});}_0x18491c=_['merge']({},_0x18491c,_0xc5dc93[_0x7896('0x42')]);var _0xb9059e={'where':_0x18491c['where']};return db['SugarcrmConfiguration'][_0x7896('0x1f')](_0xb9059e)[_0x7896('0x28')](function(_0x5a7025){_0x138ced[_0x7896('0x1f')]=_0x5a7025;if(_0xc5dc93['query']['includeAll']){_0x18491c[_0x7896('0x43')]=[{'all':!![]}];}return db[_0x7896('0x44')]['findAll'](_0x18491c);})[_0x7896('0x28')](function(_0x376380){_0x138ced['rows']=_0x376380;return _0x138ced;})[_0x7896('0x28')](respondWithFilteredResult(_0x3f9d1d,_0x18491c))[_0x7896('0x45')](handleError(_0x3f9d1d,null));};exports['show']=function(_0x12292b,_0x409fa7){var _0x8bcb33={'raw':![],'where':{'id':_0x12292b['params']['id']}},_0x4f868a={};_0x4f868a[_0x7896('0x32')]=_[_0x7896('0x34')](db[_0x7896('0x44')][_0x7896('0x2e')]);_0x4f868a[_0x7896('0x36')]=_[_0x7896('0x34')](_0x12292b[_0x7896('0x36')]);_0x4f868a[_0x7896('0x3c')]=_['intersection'](_0x4f868a['model'],_0x4f868a['query']);_0x8bcb33['attributes']=_[_0x7896('0x35')](_0x4f868a['model'],qs['fields'](_0x12292b[_0x7896('0x36')][_0x7896('0x38')]));_0x8bcb33[_0x7896('0x37')]=_0x8bcb33[_0x7896('0x37')][_0x7896('0x46')]?_0x8bcb33[_0x7896('0x37')]:_0x4f868a[_0x7896('0x32')];if(_0x12292b[_0x7896('0x36')][_0x7896('0x47')]){_0x8bcb33[_0x7896('0x43')]=[{'all':!![]}];}_0x8bcb33=_[_0x7896('0x40')]({},_0x8bcb33,_0x12292b[_0x7896('0x42')]);return db[_0x7896('0x44')][_0x7896('0x48')](_0x8bcb33)[_0x7896('0x28')](handleEntityNotFound(_0x409fa7,null))[_0x7896('0x28')](respondWithResult(_0x409fa7,null))['catch'](handleError(_0x409fa7,null));};exports['create']=function(_0x5e8f26,_0x44b128){return db[_0x7896('0x44')][_0x7896('0x49')](_0x5e8f26[_0x7896('0x4a')],{})[_0x7896('0x28')](respondWithResult(_0x44b128,0xc9))[_0x7896('0x45')](handleError(_0x44b128,null));};exports['update']=function(_0x5a5036,_0xd6c10){if(_0x5a5036['body']['id']){delete _0x5a5036[_0x7896('0x4a')]['id'];}return db[_0x7896('0x44')]['find']({'where':{'id':_0x5a5036[_0x7896('0x4b')]['id']}})[_0x7896('0x28')](handleEntityNotFound(_0xd6c10,null))['then'](saveUpdates(_0x5a5036[_0x7896('0x4a')],null))[_0x7896('0x28')](respondWithResult(_0xd6c10,null))[_0x7896('0x45')](handleError(_0xd6c10,null));};exports[_0x7896('0x27')]=function(_0x515055,_0x23c2af){return db[_0x7896('0x44')][_0x7896('0x48')]({'where':{'id':_0x515055[_0x7896('0x4b')]['id']}})['then'](handleEntityNotFound(_0x23c2af,null))[_0x7896('0x28')](removeEntity(_0x23c2af,null))[_0x7896('0x45')](handleError(_0x23c2af,null));};exports[_0x7896('0x4c')]=function(_0xec8e76,_0x4a572a,_0x53d654){var _0x47121c={};var _0xcf99e9={};var _0x5a2335;var _0x436505;return db[_0x7896('0x44')][_0x7896('0x4d')]({'where':{'id':_0xec8e76[_0x7896('0x4b')]['id']}})[_0x7896('0x28')](handleEntityNotFound(_0x4a572a,null))['then'](function(_0x47a1bd){if(_0x47a1bd){_0x5a2335=_0x47a1bd;_0xcf99e9['model']=_[_0x7896('0x34')](db[_0x7896('0x4e')][_0x7896('0x2e')]);_0xcf99e9['query']=_['keys'](_0xec8e76[_0x7896('0x36')]);_0xcf99e9[_0x7896('0x3c')]=_[_0x7896('0x35')](_0xcf99e9[_0x7896('0x32')],_0xcf99e9[_0x7896('0x36')]);_0x47121c[_0x7896('0x37')]=_[_0x7896('0x35')](_0xcf99e9[_0x7896('0x32')],qs[_0x7896('0x38')](_0xec8e76[_0x7896('0x36')][_0x7896('0x38')]));_0x47121c[_0x7896('0x37')]=_0x47121c['attributes']['length']?_0x47121c[_0x7896('0x37')]:_0xcf99e9[_0x7896('0x32')];_0x47121c[_0x7896('0x3a')]=qs[_0x7896('0x3b')](_0xec8e76[_0x7896('0x36')]['sort']);_0x47121c['where']=qs[_0x7896('0x3c')](_[_0x7896('0x3d')](_0xec8e76[_0x7896('0x36')],_0xcf99e9[_0x7896('0x3c')]));if(_0xec8e76[_0x7896('0x36')][_0x7896('0x3e')]){_0x47121c[_0x7896('0x3f')]=_[_0x7896('0x40')](_0x47121c[_0x7896('0x3f')],{'$or':_[_0x7896('0x2d')](_0x47121c[_0x7896('0x37')],function(_0x25e668){var _0xd50689={};_0xd50689[_0x25e668]={'$like':'%'+_0xec8e76[_0x7896('0x36')][_0x7896('0x3e')]+'%'};return _0xd50689;})});}_0x47121c=_[_0x7896('0x40')]({},_0x47121c,_0xec8e76[_0x7896('0x42')]);return _0x5a2335[_0x7896('0x4c')](_0x47121c);}})[_0x7896('0x28')](function(_0x45bcf9){if(_0x45bcf9){_0x436505=_0x45bcf9['length'];if(!_0xec8e76['query'][_0x7896('0x4f')](_0x7896('0x39'))){_0x47121c[_0x7896('0x20')]=qs[_0x7896('0x20')](_0xec8e76[_0x7896('0x36')][_0x7896('0x20')]);_0x47121c[_0x7896('0x1d')]=qs[_0x7896('0x1d')](_0xec8e76[_0x7896('0x36')][_0x7896('0x1d')]);}return _0x5a2335[_0x7896('0x4c')](_0x47121c);}})[_0x7896('0x28')](function(_0x15c2a6){if(_0x15c2a6){return _0x15c2a6?{'count':_0x436505,'rows':_0x15c2a6}:null;}})['then'](respondWithResult(_0x4a572a,null))['catch'](handleError(_0x4a572a,null));};exports['getSubjects']=function(_0x48830a,_0x27607b,_0x30eae7){var _0x4e3e97={};var _0xbb7ba1={};var _0x368433;var _0x13b43d;return db[_0x7896('0x44')]['findOne']({'where':{'id':_0x48830a[_0x7896('0x4b')]['id']}})[_0x7896('0x28')](handleEntityNotFound(_0x27607b,null))[_0x7896('0x28')](function(_0x491c1b){if(_0x491c1b){_0x368433=_0x491c1b;_0xbb7ba1[_0x7896('0x32')]=_[_0x7896('0x34')](db[_0x7896('0x4e')][_0x7896('0x2e')]);_0xbb7ba1[_0x7896('0x36')]=_['keys'](_0x48830a[_0x7896('0x36')]);_0xbb7ba1[_0x7896('0x3c')]=_[_0x7896('0x35')](_0xbb7ba1[_0x7896('0x32')],_0xbb7ba1['query']);_0x4e3e97[_0x7896('0x37')]=_['intersection'](_0xbb7ba1[_0x7896('0x32')],qs[_0x7896('0x38')](_0x48830a[_0x7896('0x36')][_0x7896('0x38')]));_0x4e3e97[_0x7896('0x37')]=_0x4e3e97[_0x7896('0x37')]['length']?_0x4e3e97[_0x7896('0x37')]:_0xbb7ba1[_0x7896('0x32')];_0x4e3e97[_0x7896('0x3a')]=qs[_0x7896('0x3b')](_0x48830a[_0x7896('0x36')][_0x7896('0x3b')]);_0x4e3e97['where']=qs[_0x7896('0x3c')](_['pick'](_0x48830a['query'],_0xbb7ba1[_0x7896('0x3c')]));if(_0x48830a[_0x7896('0x36')]['filter']){_0x4e3e97[_0x7896('0x3f')]=_[_0x7896('0x40')](_0x4e3e97[_0x7896('0x3f')],{'$or':_['map'](_0x4e3e97[_0x7896('0x37')],function(_0xf5f77e){var _0x52b527={};_0x52b527[_0xf5f77e]={'$like':'%'+_0x48830a[_0x7896('0x36')][_0x7896('0x3e')]+'%'};return _0x52b527;})});}_0x4e3e97=_[_0x7896('0x40')]({},_0x4e3e97,_0x48830a[_0x7896('0x42')]);return _0x368433['getSubjects'](_0x4e3e97);}})['then'](function(_0x142674){if(_0x142674){_0x13b43d=_0x142674[_0x7896('0x46')];if(!_0x48830a[_0x7896('0x36')][_0x7896('0x4f')](_0x7896('0x39'))){_0x4e3e97[_0x7896('0x20')]=qs[_0x7896('0x20')](_0x48830a[_0x7896('0x36')][_0x7896('0x20')]);_0x4e3e97[_0x7896('0x1d')]=qs['offset'](_0x48830a[_0x7896('0x36')][_0x7896('0x1d')]);}return _0x368433[_0x7896('0x50')](_0x4e3e97);}})[_0x7896('0x28')](function(_0x59cf53){if(_0x59cf53){return _0x59cf53?{'count':_0x13b43d,'rows':_0x59cf53}:null;}})[_0x7896('0x28')](respondWithResult(_0x27607b,null))[_0x7896('0x45')](handleError(_0x27607b,null));};exports['getDescriptions']=function(_0x6ae05d,_0x3320ee,_0x528794){var _0xd644e={};var _0x35c4cb={};var _0x45d943;var _0x179861;return db[_0x7896('0x44')][_0x7896('0x4d')]({'where':{'id':_0x6ae05d['params']['id']}})[_0x7896('0x28')](handleEntityNotFound(_0x3320ee,null))[_0x7896('0x28')](function(_0x2bdcd1){if(_0x2bdcd1){_0x45d943=_0x2bdcd1;_0x35c4cb[_0x7896('0x32')]=_['keys'](db[_0x7896('0x4e')][_0x7896('0x2e')]);_0x35c4cb[_0x7896('0x36')]=_[_0x7896('0x34')](_0x6ae05d[_0x7896('0x36')]);_0x35c4cb[_0x7896('0x3c')]=_[_0x7896('0x35')](_0x35c4cb[_0x7896('0x32')],_0x35c4cb[_0x7896('0x36')]);_0xd644e[_0x7896('0x37')]=_['intersection'](_0x35c4cb[_0x7896('0x32')],qs['fields'](_0x6ae05d['query'][_0x7896('0x38')]));_0xd644e[_0x7896('0x37')]=_0xd644e[_0x7896('0x37')]['length']?_0xd644e['attributes']:_0x35c4cb['model'];_0xd644e[_0x7896('0x3a')]=qs['sort'](_0x6ae05d['query'][_0x7896('0x3b')]);_0xd644e[_0x7896('0x3f')]=qs['filters'](_[_0x7896('0x3d')](_0x6ae05d[_0x7896('0x36')],_0x35c4cb[_0x7896('0x3c')]));if(_0x6ae05d['query'][_0x7896('0x3e')]){_0xd644e[_0x7896('0x3f')]=_[_0x7896('0x40')](_0xd644e[_0x7896('0x3f')],{'$or':_[_0x7896('0x2d')](_0xd644e[_0x7896('0x37')],function(_0x19f9be){var _0x5ad5b5={};_0x5ad5b5[_0x19f9be]={'$like':'%'+_0x6ae05d[_0x7896('0x36')]['filter']+'%'};return _0x5ad5b5;})});}_0xd644e=_[_0x7896('0x40')]({},_0xd644e,_0x6ae05d['options']);return _0x45d943[_0x7896('0x51')](_0xd644e);}})[_0x7896('0x28')](function(_0x364ae1){if(_0x364ae1){_0x179861=_0x364ae1[_0x7896('0x46')];if(!_0x6ae05d[_0x7896('0x36')][_0x7896('0x4f')](_0x7896('0x39'))){_0xd644e[_0x7896('0x20')]=qs[_0x7896('0x20')](_0x6ae05d[_0x7896('0x36')][_0x7896('0x20')]);_0xd644e[_0x7896('0x1d')]=qs[_0x7896('0x1d')](_0x6ae05d[_0x7896('0x36')][_0x7896('0x1d')]);}return _0x45d943[_0x7896('0x51')](_0xd644e);}})[_0x7896('0x28')](function(_0x15618f){if(_0x15618f){return _0x15618f?{'count':_0x179861,'rows':_0x15618f}:null;}})[_0x7896('0x28')](respondWithResult(_0x3320ee,null))[_0x7896('0x45')](handleError(_0x3320ee,null));};
\ No newline at end of file
+var _0xb972=['merge','type','VIRTUAL','options','includeAll','include','rows','catch','params','SugarcrmConfiguration','find','create','body','findOne','SugarcrmField','getFields','getSubjects','rawAttributes','getDescriptions','nolimit','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','offset','undefined','count','limit','Content-Range','json','apply','reject','save','update','then','destroy','end','sendStatus','stack','name','send','fieldName','key','map','query','keys','intersection','model','attributes','fields','length','hasOwnProperty','order','sort','where','filters','pick','filter'];(function(_0x5219e4,_0x50cdef){var _0x390418=function(_0x589678){while(--_0x589678){_0x5219e4['push'](_0x5219e4['shift']());}};_0x390418(++_0x50cdef);}(_0xb972,0xbe));var _0x2b97=function(_0x13843f,_0x50422d){_0x13843f=_0x13843f-0x0;var _0x1063ae=_0xb972[_0x13843f];return _0x1063ae;};'use strict';var emlformat=require(_0x2b97('0x0'));var rimraf=require(_0x2b97('0x1'));var zipdir=require(_0x2b97('0x2'));var jsonpatch=require(_0x2b97('0x3'));var rp=require(_0x2b97('0x4'));var moment=require(_0x2b97('0x5'));var BPromise=require(_0x2b97('0x6'));var Mustache=require('mustache');var util=require('util');var path=require(_0x2b97('0x7'));var sox=require(_0x2b97('0x8'));var csv=require(_0x2b97('0x9'));var ejs=require(_0x2b97('0xa'));var fs=require('fs');var fs_extra=require(_0x2b97('0xb'));var _=require(_0x2b97('0xc'));var squel=require(_0x2b97('0xd'));var crypto=require(_0x2b97('0xe'));var jsforce=require(_0x2b97('0xf'));var deskjs=require(_0x2b97('0x10'));var toCsv=require(_0x2b97('0x9'));var querystring=require(_0x2b97('0x11'));var Papa=require(_0x2b97('0x12'));var Redis=require(_0x2b97('0x13'));var authService=require(_0x2b97('0x14'));var qs=require(_0x2b97('0x15'));var as=require(_0x2b97('0x16'));var hardwareService=require(_0x2b97('0x17'));var logger=require(_0x2b97('0x18'))(_0x2b97('0x19'));var utils=require(_0x2b97('0x1a'));var config=require(_0x2b97('0x1b'));var licenseUtil=require(_0x2b97('0x1c'));var db=require(_0x2b97('0x1d'))['db'];function respondWithStatusCode(_0x32edd4,_0x34d9cf){_0x34d9cf=_0x34d9cf||0xcc;return function(_0x49506c){if(_0x49506c){return _0x32edd4['sendStatus'](_0x34d9cf);}return _0x32edd4[_0x2b97('0x1e')](_0x34d9cf)['end']();};}function respondWithResult(_0xf3bf29,_0x4f3a0f){_0x4f3a0f=_0x4f3a0f||0xc8;return function(_0x3fcac4){if(_0x3fcac4){return _0xf3bf29[_0x2b97('0x1e')](_0x4f3a0f)['json'](_0x3fcac4);}};}function respondWithFilteredResult(_0x3572ad,_0x34604d){return function(_0x1f843e){if(_0x1f843e){var _0x5eec04=typeof _0x34604d[_0x2b97('0x1f')]===_0x2b97('0x20')&&typeof _0x34604d['limit']==='undefined';var _0x1cc507=_0x1f843e['count'];var _0x29a902=_0x5eec04?0x0:_0x34604d[_0x2b97('0x1f')];var _0x7a724f=_0x5eec04?_0x1f843e[_0x2b97('0x21')]:_0x34604d[_0x2b97('0x1f')]+_0x34604d[_0x2b97('0x22')];var _0xb60afa;if(_0x7a724f>=_0x1cc507){_0x7a724f=_0x1cc507;_0xb60afa=0xc8;}else{_0xb60afa=0xce;}_0x3572ad[_0x2b97('0x1e')](_0xb60afa);return _0x3572ad['set'](_0x2b97('0x23'),_0x29a902+'-'+_0x7a724f+'/'+_0x1cc507)[_0x2b97('0x24')](_0x1f843e);}return null;};}function patchUpdates(_0x37df7f){return function(_0x5ed5e8){try{jsonpatch[_0x2b97('0x25')](_0x5ed5e8,_0x37df7f,!![]);}catch(_0x347552){return BPromise[_0x2b97('0x26')](_0x347552);}return _0x5ed5e8[_0x2b97('0x27')]();};}function saveUpdates(_0x353f4d,_0x5e2f2c){return function(_0x12b6a2){if(_0x12b6a2){return _0x12b6a2[_0x2b97('0x28')](_0x353f4d)[_0x2b97('0x29')](function(_0x19c23f){return _0x19c23f;});}return null;};}function removeEntity(_0x434e93,_0x48ad2c){return function(_0x4a966a){if(_0x4a966a){return _0x4a966a[_0x2b97('0x2a')]()[_0x2b97('0x29')](function(){_0x434e93[_0x2b97('0x1e')](0xcc)[_0x2b97('0x2b')]();});}};}function handleEntityNotFound(_0x35eb8a,_0x3366f8){return function(_0x5e556a){if(!_0x5e556a){_0x35eb8a[_0x2b97('0x2c')](0x194);}return _0x5e556a;};}function handleError(_0x5d1acb,_0x211ea5){_0x211ea5=_0x211ea5||0x1f4;return function(_0x5b1b4c){logger['error'](_0x5b1b4c[_0x2b97('0x2d')]);if(_0x5b1b4c[_0x2b97('0x2e')]){delete _0x5b1b4c[_0x2b97('0x2e')];}_0x5d1acb[_0x2b97('0x1e')](_0x211ea5)[_0x2b97('0x2f')](_0x5b1b4c);};}exports['index']=function(_0x491254,_0x4e879d){var _0x34cb41={},_0x397160={},_0x5265c9={'count':0x0,'rows':[]};var _0x59db82=_['map'](db['SugarcrmConfiguration']['rawAttributes'],function(_0x246a61){return{'name':_0x246a61[_0x2b97('0x30')],'type':_0x246a61['type'][_0x2b97('0x31')]};});_0x397160['model']=_[_0x2b97('0x32')](_0x59db82,_0x2b97('0x2e'));_0x397160[_0x2b97('0x33')]=_[_0x2b97('0x34')](_0x491254[_0x2b97('0x33')]);_0x397160['filters']=_[_0x2b97('0x35')](_0x397160[_0x2b97('0x36')],_0x397160[_0x2b97('0x33')]);_0x34cb41[_0x2b97('0x37')]=_[_0x2b97('0x35')](_0x397160[_0x2b97('0x36')],qs[_0x2b97('0x38')](_0x491254['query'][_0x2b97('0x38')]));_0x34cb41[_0x2b97('0x37')]=_0x34cb41[_0x2b97('0x37')][_0x2b97('0x39')]?_0x34cb41[_0x2b97('0x37')]:_0x397160[_0x2b97('0x36')];if(!_0x491254[_0x2b97('0x33')][_0x2b97('0x3a')]('nolimit')){_0x34cb41[_0x2b97('0x22')]=qs[_0x2b97('0x22')](_0x491254[_0x2b97('0x33')]['limit']);_0x34cb41['offset']=qs['offset'](_0x491254[_0x2b97('0x33')][_0x2b97('0x1f')]);}_0x34cb41[_0x2b97('0x3b')]=qs['sort'](_0x491254[_0x2b97('0x33')][_0x2b97('0x3c')]);_0x34cb41[_0x2b97('0x3d')]=qs[_0x2b97('0x3e')](_[_0x2b97('0x3f')](_0x491254['query'],_0x397160['filters']),_0x59db82);if(_0x491254[_0x2b97('0x33')][_0x2b97('0x40')]){_0x34cb41[_0x2b97('0x3d')]=_[_0x2b97('0x41')](_0x34cb41['where'],{'$or':_[_0x2b97('0x32')](_0x59db82,function(_0x31ae8a){if(_0x31ae8a[_0x2b97('0x42')]!==_0x2b97('0x43')){var _0x16edee={};_0x16edee[_0x31ae8a[_0x2b97('0x2e')]]={'$like':'%'+_0x491254[_0x2b97('0x33')]['filter']+'%'};return _0x16edee;}})});}_0x34cb41=_[_0x2b97('0x41')]({},_0x34cb41,_0x491254[_0x2b97('0x44')]);var _0x591f27={'where':_0x34cb41[_0x2b97('0x3d')]};return db['SugarcrmConfiguration'][_0x2b97('0x21')](_0x591f27)['then'](function(_0x5dfc04){_0x5265c9['count']=_0x5dfc04;if(_0x491254[_0x2b97('0x33')][_0x2b97('0x45')]){_0x34cb41[_0x2b97('0x46')]=[{'all':!![]}];}return db['SugarcrmConfiguration']['findAll'](_0x34cb41);})[_0x2b97('0x29')](function(_0x322747){_0x5265c9[_0x2b97('0x47')]=_0x322747;return _0x5265c9;})[_0x2b97('0x29')](respondWithFilteredResult(_0x4e879d,_0x34cb41))[_0x2b97('0x48')](handleError(_0x4e879d,null));};exports['show']=function(_0x1ffe4b,_0x214eb2){var _0x1975c1={'raw':![],'where':{'id':_0x1ffe4b[_0x2b97('0x49')]['id']}},_0x1c27bb={};_0x1c27bb['model']=_[_0x2b97('0x34')](db[_0x2b97('0x4a')]['rawAttributes']);_0x1c27bb[_0x2b97('0x33')]=_[_0x2b97('0x34')](_0x1ffe4b['query']);_0x1c27bb[_0x2b97('0x3e')]=_[_0x2b97('0x35')](_0x1c27bb[_0x2b97('0x36')],_0x1c27bb[_0x2b97('0x33')]);_0x1975c1[_0x2b97('0x37')]=_[_0x2b97('0x35')](_0x1c27bb[_0x2b97('0x36')],qs[_0x2b97('0x38')](_0x1ffe4b['query']['fields']));_0x1975c1[_0x2b97('0x37')]=_0x1975c1['attributes']['length']?_0x1975c1[_0x2b97('0x37')]:_0x1c27bb[_0x2b97('0x36')];if(_0x1ffe4b[_0x2b97('0x33')][_0x2b97('0x45')]){_0x1975c1[_0x2b97('0x46')]=[{'all':!![]}];}_0x1975c1=_[_0x2b97('0x41')]({},_0x1975c1,_0x1ffe4b[_0x2b97('0x44')]);return db[_0x2b97('0x4a')][_0x2b97('0x4b')](_0x1975c1)[_0x2b97('0x29')](handleEntityNotFound(_0x214eb2,null))[_0x2b97('0x29')](respondWithResult(_0x214eb2,null))['catch'](handleError(_0x214eb2,null));};exports[_0x2b97('0x4c')]=function(_0x3a0e4c,_0x13b35c){return db[_0x2b97('0x4a')][_0x2b97('0x4c')](_0x3a0e4c[_0x2b97('0x4d')],{})['then'](respondWithResult(_0x13b35c,0xc9))[_0x2b97('0x48')](handleError(_0x13b35c,null));};exports['update']=function(_0xf7d7de,_0x2ed7cf){if(_0xf7d7de[_0x2b97('0x4d')]['id']){delete _0xf7d7de[_0x2b97('0x4d')]['id'];}return db[_0x2b97('0x4a')][_0x2b97('0x4b')]({'where':{'id':_0xf7d7de[_0x2b97('0x49')]['id']}})[_0x2b97('0x29')](handleEntityNotFound(_0x2ed7cf,null))['then'](saveUpdates(_0xf7d7de[_0x2b97('0x4d')],null))[_0x2b97('0x29')](respondWithResult(_0x2ed7cf,null))[_0x2b97('0x48')](handleError(_0x2ed7cf,null));};exports['destroy']=function(_0x3a9ffc,_0x456972){return db[_0x2b97('0x4a')][_0x2b97('0x4b')]({'where':{'id':_0x3a9ffc[_0x2b97('0x49')]['id']}})['then'](handleEntityNotFound(_0x456972,null))[_0x2b97('0x29')](removeEntity(_0x456972,null))[_0x2b97('0x48')](handleError(_0x456972,null));};exports['getFields']=function(_0x314edd,_0x4b9648,_0x11b803){var _0x62476e={};var _0x1dc0a9={};var _0x19eb06;var _0xedcb08;return db['SugarcrmConfiguration'][_0x2b97('0x4e')]({'where':{'id':_0x314edd[_0x2b97('0x49')]['id']}})[_0x2b97('0x29')](handleEntityNotFound(_0x4b9648,null))[_0x2b97('0x29')](function(_0x445ab0){if(_0x445ab0){_0x19eb06=_0x445ab0;_0x1dc0a9[_0x2b97('0x36')]=_[_0x2b97('0x34')](db[_0x2b97('0x4f')]['rawAttributes']);_0x1dc0a9['query']=_[_0x2b97('0x34')](_0x314edd[_0x2b97('0x33')]);_0x1dc0a9[_0x2b97('0x3e')]=_[_0x2b97('0x35')](_0x1dc0a9[_0x2b97('0x36')],_0x1dc0a9[_0x2b97('0x33')]);_0x62476e[_0x2b97('0x37')]=_[_0x2b97('0x35')](_0x1dc0a9[_0x2b97('0x36')],qs[_0x2b97('0x38')](_0x314edd[_0x2b97('0x33')][_0x2b97('0x38')]));_0x62476e[_0x2b97('0x37')]=_0x62476e[_0x2b97('0x37')][_0x2b97('0x39')]?_0x62476e[_0x2b97('0x37')]:_0x1dc0a9[_0x2b97('0x36')];_0x62476e['order']=qs['sort'](_0x314edd['query'][_0x2b97('0x3c')]);_0x62476e[_0x2b97('0x3d')]=qs[_0x2b97('0x3e')](_[_0x2b97('0x3f')](_0x314edd[_0x2b97('0x33')],_0x1dc0a9[_0x2b97('0x3e')]));if(_0x314edd['query'][_0x2b97('0x40')]){_0x62476e[_0x2b97('0x3d')]=_[_0x2b97('0x41')](_0x62476e[_0x2b97('0x3d')],{'$or':_[_0x2b97('0x32')](_0x62476e[_0x2b97('0x37')],function(_0x137677){var _0x50adfc={};_0x50adfc[_0x137677]={'$like':'%'+_0x314edd['query'][_0x2b97('0x40')]+'%'};return _0x50adfc;})});}_0x62476e=_[_0x2b97('0x41')]({},_0x62476e,_0x314edd[_0x2b97('0x44')]);return _0x19eb06['getFields'](_0x62476e);}})['then'](function(_0x5ed176){if(_0x5ed176){_0xedcb08=_0x5ed176[_0x2b97('0x39')];if(!_0x314edd[_0x2b97('0x33')][_0x2b97('0x3a')]('nolimit')){_0x62476e['limit']=qs[_0x2b97('0x22')](_0x314edd[_0x2b97('0x33')][_0x2b97('0x22')]);_0x62476e[_0x2b97('0x1f')]=qs[_0x2b97('0x1f')](_0x314edd[_0x2b97('0x33')][_0x2b97('0x1f')]);}return _0x19eb06[_0x2b97('0x50')](_0x62476e);}})[_0x2b97('0x29')](function(_0x207bcf){if(_0x207bcf){return _0x207bcf?{'count':_0xedcb08,'rows':_0x207bcf}:null;}})['then'](respondWithResult(_0x4b9648,null))[_0x2b97('0x48')](handleError(_0x4b9648,null));};exports[_0x2b97('0x51')]=function(_0x111908,_0x2c2c87,_0x3a890e){var _0x1bc637={};var _0x2e9857={};var _0x2d7e97;var _0x167c4e;return db[_0x2b97('0x4a')][_0x2b97('0x4e')]({'where':{'id':_0x111908[_0x2b97('0x49')]['id']}})[_0x2b97('0x29')](handleEntityNotFound(_0x2c2c87,null))[_0x2b97('0x29')](function(_0x82c4a){if(_0x82c4a){_0x2d7e97=_0x82c4a;_0x2e9857[_0x2b97('0x36')]=_[_0x2b97('0x34')](db[_0x2b97('0x4f')][_0x2b97('0x52')]);_0x2e9857[_0x2b97('0x33')]=_[_0x2b97('0x34')](_0x111908[_0x2b97('0x33')]);_0x2e9857[_0x2b97('0x3e')]=_['intersection'](_0x2e9857['model'],_0x2e9857[_0x2b97('0x33')]);_0x1bc637['attributes']=_['intersection'](_0x2e9857[_0x2b97('0x36')],qs[_0x2b97('0x38')](_0x111908[_0x2b97('0x33')][_0x2b97('0x38')]));_0x1bc637['attributes']=_0x1bc637[_0x2b97('0x37')][_0x2b97('0x39')]?_0x1bc637[_0x2b97('0x37')]:_0x2e9857['model'];_0x1bc637['order']=qs[_0x2b97('0x3c')](_0x111908[_0x2b97('0x33')][_0x2b97('0x3c')]);_0x1bc637[_0x2b97('0x3d')]=qs['filters'](_[_0x2b97('0x3f')](_0x111908[_0x2b97('0x33')],_0x2e9857[_0x2b97('0x3e')]));if(_0x111908['query'][_0x2b97('0x40')]){_0x1bc637[_0x2b97('0x3d')]=_['merge'](_0x1bc637[_0x2b97('0x3d')],{'$or':_[_0x2b97('0x32')](_0x1bc637[_0x2b97('0x37')],function(_0x16d981){var _0x2f77fc={};_0x2f77fc[_0x16d981]={'$like':'%'+_0x111908['query'][_0x2b97('0x40')]+'%'};return _0x2f77fc;})});}_0x1bc637=_[_0x2b97('0x41')]({},_0x1bc637,_0x111908[_0x2b97('0x44')]);return _0x2d7e97[_0x2b97('0x51')](_0x1bc637);}})[_0x2b97('0x29')](function(_0x46f8f7){if(_0x46f8f7){_0x167c4e=_0x46f8f7[_0x2b97('0x39')];if(!_0x111908['query']['hasOwnProperty']('nolimit')){_0x1bc637[_0x2b97('0x22')]=qs[_0x2b97('0x22')](_0x111908[_0x2b97('0x33')][_0x2b97('0x22')]);_0x1bc637['offset']=qs[_0x2b97('0x1f')](_0x111908[_0x2b97('0x33')]['offset']);}return _0x2d7e97[_0x2b97('0x51')](_0x1bc637);}})[_0x2b97('0x29')](function(_0xc17712){if(_0xc17712){return _0xc17712?{'count':_0x167c4e,'rows':_0xc17712}:null;}})[_0x2b97('0x29')](respondWithResult(_0x2c2c87,null))[_0x2b97('0x48')](handleError(_0x2c2c87,null));};exports['getDescriptions']=function(_0x496dbe,_0x55487a,_0x1296d6){var _0x3730d6={};var _0x168083={};var _0x24fc80;var _0xf637a7;return db[_0x2b97('0x4a')][_0x2b97('0x4e')]({'where':{'id':_0x496dbe['params']['id']}})[_0x2b97('0x29')](handleEntityNotFound(_0x55487a,null))['then'](function(_0x4a2ef8){if(_0x4a2ef8){_0x24fc80=_0x4a2ef8;_0x168083[_0x2b97('0x36')]=_[_0x2b97('0x34')](db[_0x2b97('0x4f')][_0x2b97('0x52')]);_0x168083[_0x2b97('0x33')]=_[_0x2b97('0x34')](_0x496dbe['query']);_0x168083['filters']=_[_0x2b97('0x35')](_0x168083[_0x2b97('0x36')],_0x168083[_0x2b97('0x33')]);_0x3730d6['attributes']=_[_0x2b97('0x35')](_0x168083[_0x2b97('0x36')],qs[_0x2b97('0x38')](_0x496dbe['query'][_0x2b97('0x38')]));_0x3730d6[_0x2b97('0x37')]=_0x3730d6[_0x2b97('0x37')][_0x2b97('0x39')]?_0x3730d6[_0x2b97('0x37')]:_0x168083[_0x2b97('0x36')];_0x3730d6[_0x2b97('0x3b')]=qs[_0x2b97('0x3c')](_0x496dbe['query'][_0x2b97('0x3c')]);_0x3730d6['where']=qs['filters'](_[_0x2b97('0x3f')](_0x496dbe['query'],_0x168083[_0x2b97('0x3e')]));if(_0x496dbe['query']['filter']){_0x3730d6[_0x2b97('0x3d')]=_[_0x2b97('0x41')](_0x3730d6[_0x2b97('0x3d')],{'$or':_['map'](_0x3730d6[_0x2b97('0x37')],function(_0x234738){var _0x3e0295={};_0x3e0295[_0x234738]={'$like':'%'+_0x496dbe[_0x2b97('0x33')]['filter']+'%'};return _0x3e0295;})});}_0x3730d6=_[_0x2b97('0x41')]({},_0x3730d6,_0x496dbe[_0x2b97('0x44')]);return _0x24fc80[_0x2b97('0x53')](_0x3730d6);}})['then'](function(_0x1df630){if(_0x1df630){_0xf637a7=_0x1df630['length'];if(!_0x496dbe['query'][_0x2b97('0x3a')](_0x2b97('0x54'))){_0x3730d6[_0x2b97('0x22')]=qs[_0x2b97('0x22')](_0x496dbe['query'][_0x2b97('0x22')]);_0x3730d6[_0x2b97('0x1f')]=qs[_0x2b97('0x1f')](_0x496dbe[_0x2b97('0x33')][_0x2b97('0x1f')]);}return _0x24fc80['getDescriptions'](_0x3730d6);}})['then'](function(_0x15393c){if(_0x15393c){return _0x15393c?{'count':_0xf637a7,'rows':_0x15393c}:null;}})['then'](respondWithResult(_0x55487a,null))[_0x2b97('0x48')](handleError(_0x55487a,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2a41=['define','SugarcrmConfiguration','int_sugarcrm_configurations','util','../../config/logger','api','bluebird','../../config/environment','./intSugarcrmConfiguration.attributes','exports'];(function(_0x369dae,_0x4840c1){var _0x24f6f2=function(_0x57efeb){while(--_0x57efeb){_0x369dae['push'](_0x369dae['shift']());}};_0x24f6f2(++_0x4840c1);}(_0x2a41,0x189));var _0x12a4=function(_0x41eb93,_0x19c6f1){_0x41eb93=_0x41eb93-0x0;var _0x4ddf78=_0x2a41[_0x41eb93];return _0x4ddf78;};'use strict';var _=require('lodash');var util=require(_0x12a4('0x0'));var logger=require(_0x12a4('0x1'))(_0x12a4('0x2'));var moment=require('moment');var BPromise=require(_0x12a4('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x12a4('0x4'));var attributes=require(_0x12a4('0x5'));module[_0x12a4('0x6')]=function(_0x291be3,_0x356d26){return _0x291be3[_0x12a4('0x7')](_0x12a4('0x8'),attributes,{'tableName':_0x12a4('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x266a=['SugarcrmConfiguration','lodash','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./intSugarcrmConfiguration.attributes','define'];(function(_0x2d7825,_0x1fdf55){var _0x5d764c=function(_0x131da0){while(--_0x131da0){_0x2d7825['push'](_0x2d7825['shift']());}};_0x5d764c(++_0x1fdf55);}(_0x266a,0x115));var _0xa266=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x266a[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0xa266('0x0'));var util=require('util');var logger=require(_0xa266('0x1'))(_0xa266('0x2'));var moment=require(_0xa266('0x3'));var BPromise=require(_0xa266('0x4'));var rp=require(_0xa266('0x5'));var fs=require('fs');var path=require(_0xa266('0x6'));var rimraf=require(_0xa266('0x7'));var config=require(_0xa266('0x8'));var attributes=require(_0xa266('0x9'));module['exports']=function(_0xda526,_0x273877){return _0xda526[_0xa266('0xa')](_0xa266('0xb'),attributes,{'tableName':'int_sugarcrm_configurations','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xee00=['result','catch','lodash','moment','bluebird','randomstring','ioredis','rpc','../../config/environment','client','http','request','info','request\x20sent','stringify','error','SugarcrmConfiguration,\x20%s,\x20%s','message'];(function(_0x3eb630,_0x552586){var _0x1b840d=function(_0x2594a8){while(--_0x2594a8){_0x3eb630['push'](_0x3eb630['shift']());}};_0x1b840d(++_0x552586);}(_0xee00,0x158));var _0x0ee0=function(_0x359ee9,_0x162fab){_0x359ee9=_0x359ee9-0x0;var _0x6b48a8=_0xee00[_0x359ee9];return _0x6b48a8;};'use strict';var _=require(_0x0ee0('0x0'));var util=require('util');var moment=require(_0x0ee0('0x1'));var BPromise=require(_0x0ee0('0x2'));var rs=require(_0x0ee0('0x3'));var fs=require('fs');var Redis=require(_0x0ee0('0x4'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0x0ee0('0x5'));var config=require(_0x0ee0('0x6'));var jayson=require('jayson/promise');var client=jayson[_0x0ee0('0x7')][_0x0ee0('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x4387df,_0x340e86,_0x2b0b65){return new BPromise(function(_0x2fd003,_0x594022){return client[_0x0ee0('0x9')](_0x4387df,_0x2b0b65)['then'](function(_0x4364a4){logger[_0x0ee0('0xa')]('SugarcrmConfiguration,\x20%s,\x20%s',_0x340e86,_0x0ee0('0xb'));logger['debug']('SugarcrmConfiguration,\x20%s,\x20%s,\x20%s',_0x340e86,_0x0ee0('0xb'),JSON[_0x0ee0('0xc')](_0x4364a4));if(_0x4364a4[_0x0ee0('0xd')]){if(_0x4364a4[_0x0ee0('0xd')]['code']===0x1f4){logger['error'](_0x0ee0('0xe'),_0x340e86,_0x4364a4['error'][_0x0ee0('0xf')]);return _0x594022(_0x4364a4[_0x0ee0('0xd')][_0x0ee0('0xf')]);}logger[_0x0ee0('0xd')]('SugarcrmConfiguration,\x20%s,\x20%s',_0x340e86,_0x4364a4[_0x0ee0('0xd')][_0x0ee0('0xf')]);return _0x2fd003(_0x4364a4[_0x0ee0('0xd')]['message']);}else{logger[_0x0ee0('0xa')](_0x0ee0('0xe'),_0x340e86,_0x0ee0('0xb'));_0x2fd003(_0x4364a4[_0x0ee0('0x10')][_0x0ee0('0xf')]);}})[_0x0ee0('0x11')](function(_0x160085){logger[_0x0ee0('0xd')]('SugarcrmConfiguration,\x20%s,\x20%s',_0x340e86,_0x160085);_0x594022(_0x160085);});});}
\ No newline at end of file
+var _0x86f6=['lodash','util','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','jayson/promise','client','http','then','info','request\x20sent','debug','SugarcrmConfiguration,\x20%s,\x20%s,\x20%s','error','code','message','SugarcrmConfiguration,\x20%s,\x20%s','result','catch'];(function(_0xfb1fdb,_0x3b69ba){var _0x4f6391=function(_0x58d9c4){while(--_0x58d9c4){_0xfb1fdb['push'](_0xfb1fdb['shift']());}};_0x4f6391(++_0x3b69ba);}(_0x86f6,0x7e));var _0x686f=function(_0x321398,_0x1d5366){_0x321398=_0x321398-0x0;var _0x28d3f3=_0x86f6[_0x321398];return _0x28d3f3;};'use strict';var _=require(_0x686f('0x0'));var util=require(_0x686f('0x1'));var moment=require('moment');var BPromise=require(_0x686f('0x2'));var rs=require(_0x686f('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x686f('0x4'))['db'];var utils=require(_0x686f('0x5'));var logger=require(_0x686f('0x6'))('rpc');var config=require('../../config/environment');var jayson=require(_0x686f('0x7'));var client=jayson[_0x686f('0x8')][_0x686f('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x4093f3,_0x3e38d9,_0x4efe18){return new BPromise(function(_0x48f0d0,_0x136533){return client['request'](_0x4093f3,_0x4efe18)[_0x686f('0xa')](function(_0x279330){logger[_0x686f('0xb')]('SugarcrmConfiguration,\x20%s,\x20%s',_0x3e38d9,_0x686f('0xc'));logger[_0x686f('0xd')](_0x686f('0xe'),_0x3e38d9,_0x686f('0xc'),JSON['stringify'](_0x279330));if(_0x279330[_0x686f('0xf')]){if(_0x279330['error'][_0x686f('0x10')]===0x1f4){logger[_0x686f('0xf')]('SugarcrmConfiguration,\x20%s,\x20%s',_0x3e38d9,_0x279330[_0x686f('0xf')][_0x686f('0x11')]);return _0x136533(_0x279330['error'][_0x686f('0x11')]);}logger[_0x686f('0xf')]('SugarcrmConfiguration,\x20%s,\x20%s',_0x3e38d9,_0x279330[_0x686f('0xf')][_0x686f('0x11')]);return _0x48f0d0(_0x279330[_0x686f('0xf')][_0x686f('0x11')]);}else{logger['info'](_0x686f('0x12'),_0x3e38d9,_0x686f('0xc'));_0x48f0d0(_0x279330[_0x686f('0x13')]['message']);}})[_0x686f('0x14')](function(_0x273d98){logger['error'](_0x686f('0x12'),_0x3e38d9,_0x273d98);_0x136533(_0x273d98);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc175=['../../config/environment','./intSugarcrmField.controller','isAuthenticated','index','get','post','create','put','update','delete','/:id','destroy','exports','multer','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service'];(function(_0x5e3701,_0x596265){var _0x345dcf=function(_0x5eb12a){while(--_0x5eb12a){_0x5e3701['push'](_0x5e3701['shift']());}};_0x345dcf(++_0x596265);}(_0xc175,0x1db));var _0x5c17=function(_0xcf6e6e,_0x1d56d3){_0xcf6e6e=_0xcf6e6e-0x0;var _0x4467ca=_0xc175[_0xcf6e6e];return _0x4467ca;};'use strict';var multer=require(_0x5c17('0x0'));var util=require(_0x5c17('0x1'));var path=require(_0x5c17('0x2'));var timeout=require(_0x5c17('0x3'));var express=require('express');var router=express[_0x5c17('0x4')]();var fs_extra=require(_0x5c17('0x5'));var auth=require(_0x5c17('0x6'));var interaction=require(_0x5c17('0x7'));var config=require(_0x5c17('0x8'));var controller=require(_0x5c17('0x9'));router['get']('/',auth[_0x5c17('0xa')](),controller[_0x5c17('0xb')]);router[_0x5c17('0xc')]('/:id',auth[_0x5c17('0xa')](),controller['show']);router[_0x5c17('0xd')]('/',auth['isAuthenticated'](),controller[_0x5c17('0xe')]);router[_0x5c17('0xf')]('/:id',auth[_0x5c17('0xa')](),controller[_0x5c17('0x10')]);router[_0x5c17('0x11')](_0x5c17('0x12'),auth[_0x5c17('0xa')](),controller[_0x5c17('0x13')]);module[_0x5c17('0x14')]=router;
\ No newline at end of file
+var _0x88e6=['isAuthenticated','/:id','show','post','create','delete','destroy','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intSugarcrmField.controller','get'];(function(_0x303fbc,_0x3f3a77){var _0x37d0e5=function(_0x29e2ae){while(--_0x29e2ae){_0x303fbc['push'](_0x303fbc['shift']());}};_0x37d0e5(++_0x3f3a77);}(_0x88e6,0x196));var _0x688e=function(_0x324227,_0x5b51a4){_0x324227=_0x324227-0x0;var _0x8731d8=_0x88e6[_0x324227];return _0x8731d8;};'use strict';var multer=require(_0x688e('0x0'));var util=require(_0x688e('0x1'));var path=require(_0x688e('0x2'));var timeout=require(_0x688e('0x3'));var express=require(_0x688e('0x4'));var router=express[_0x688e('0x5')]();var fs_extra=require(_0x688e('0x6'));var auth=require(_0x688e('0x7'));var interaction=require(_0x688e('0x8'));var config=require(_0x688e('0x9'));var controller=require(_0x688e('0xa'));router[_0x688e('0xb')]('/',auth[_0x688e('0xc')](),controller['index']);router[_0x688e('0xb')](_0x688e('0xd'),auth[_0x688e('0xc')](),controller[_0x688e('0xe')]);router[_0x688e('0xf')]('/',auth[_0x688e('0xc')](),controller[_0x688e('0x10')]);router['put'](_0x688e('0xd'),auth[_0x688e('0xc')](),controller['update']);router[_0x688e('0x11')]('/:id',auth[_0x688e('0xc')](),controller[_0x688e('0x12')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf0f7=['BOOLEAN','sequelize','exports','ENUM','string','variable','keyValue','STRING'];(function(_0x24a22f,_0x1107fe){var _0x254cf1=function(_0x32b43a){while(--_0x32b43a){_0x24a22f['push'](_0x24a22f['shift']());}};_0x254cf1(++_0x1107fe);}(_0xf0f7,0x179));var _0x7f0f=function(_0x1a908d,_0x3abfeb){_0x1a908d=_0x1a908d-0x0;var _0x5003de=_0xf0f7[_0x1a908d];return _0x5003de;};'use strict';var Sequelize=require(_0x7f0f('0x0'));module[_0x7f0f('0x1')]={'type':{'type':Sequelize[_0x7f0f('0x2')](_0x7f0f('0x3'),_0x7f0f('0x4'),'customVariable',_0x7f0f('0x5'),'picklist'),'defaultValue':'string'},'content':{'type':Sequelize[_0x7f0f('0x6')]},'key':{'type':Sequelize[_0x7f0f('0x6')]},'keyType':{'type':Sequelize[_0x7f0f('0x2')](_0x7f0f('0x3'),'variable','customVariable')},'keyContent':{'type':Sequelize[_0x7f0f('0x6')]},'idField':{'type':Sequelize[_0x7f0f('0x6')]},'nameField':{'type':Sequelize[_0x7f0f('0x6')]},'customField':{'type':Sequelize[_0x7f0f('0x7')],'defaultValue':!![]},'variableName':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x2d64=['STRING','BOOLEAN','exports','string','customVariable','keyValue','ENUM','variable'];(function(_0x55a905,_0x34a5d7){var _0x5515b6=function(_0x4d6449){while(--_0x4d6449){_0x55a905['push'](_0x55a905['shift']());}};_0x5515b6(++_0x34a5d7);}(_0x2d64,0x132));var _0x42d6=function(_0x23721e,_0x3fff68){_0x23721e=_0x23721e-0x0;var _0x5148b1=_0x2d64[_0x23721e];return _0x5148b1;};'use strict';var Sequelize=require('sequelize');module[_0x42d6('0x0')]={'type':{'type':Sequelize['ENUM'](_0x42d6('0x1'),'variable',_0x42d6('0x2'),_0x42d6('0x3'),'picklist'),'defaultValue':_0x42d6('0x1')},'content':{'type':Sequelize['STRING']},'key':{'type':Sequelize['STRING']},'keyType':{'type':Sequelize[_0x42d6('0x4')](_0x42d6('0x1'),_0x42d6('0x5'),_0x42d6('0x2'))},'keyContent':{'type':Sequelize[_0x42d6('0x6')]},'idField':{'type':Sequelize[_0x42d6('0x6')]},'nameField':{'type':Sequelize[_0x42d6('0x6')]},'customField':{'type':Sequelize[_0x42d6('0x7')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x42d6('0x6')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd113=['status','offset','undefined','limit','count','set','Content-Range','json','apply','reject','save','update','then','destroy','sendStatus','error','stack','name','send','index','map','SugarcrmField','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','include','findAll','rows','show','params','options','find','catch','create','body','eml-format','zip-dir','fast-json-patch','request-promise','moment','util','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','end'];(function(_0x32d457,_0x1a39c9){var _0x338386=function(_0x199d7a){while(--_0x199d7a){_0x32d457['push'](_0x32d457['shift']());}};_0x338386(++_0x1a39c9);}(_0xd113,0x165));var _0x3d11=function(_0x3f082b,_0x30f37a){_0x3f082b=_0x3f082b-0x0;var _0x163d64=_0xd113[_0x3f082b];return _0x163d64;};'use strict';var emlformat=require(_0x3d11('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x3d11('0x1'));var jsonpatch=require(_0x3d11('0x2'));var rp=require(_0x3d11('0x3'));var moment=require(_0x3d11('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x3d11('0x5'));var path=require('path');var sox=require(_0x3d11('0x6'));var csv=require(_0x3d11('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x3d11('0x8'));var _=require(_0x3d11('0x9'));var squel=require(_0x3d11('0xa'));var crypto=require(_0x3d11('0xb'));var jsforce=require(_0x3d11('0xc'));var deskjs=require(_0x3d11('0xd'));var toCsv=require(_0x3d11('0x7'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x3d11('0xe'));var qs=require(_0x3d11('0xf'));var as=require(_0x3d11('0x10'));var hardwareService=require(_0x3d11('0x11'));var logger=require('../../config/logger')(_0x3d11('0x12'));var utils=require(_0x3d11('0x13'));var config=require('../../config/environment');var licenseUtil=require(_0x3d11('0x14'));var db=require(_0x3d11('0x15'))['db'];function respondWithStatusCode(_0x5e697f,_0x16b09d){_0x16b09d=_0x16b09d||0xcc;return function(_0xb5ac30){if(_0xb5ac30){return _0x5e697f['sendStatus'](_0x16b09d);}return _0x5e697f['status'](_0x16b09d)[_0x3d11('0x16')]();};}function respondWithResult(_0x33f25c,_0x275a58){_0x275a58=_0x275a58||0xc8;return function(_0x47138a){if(_0x47138a){return _0x33f25c[_0x3d11('0x17')](_0x275a58)['json'](_0x47138a);}};}function respondWithFilteredResult(_0x2e76cb,_0x4d0c2f){return function(_0x3d55e7){if(_0x3d55e7){var _0x4594a5=typeof _0x4d0c2f[_0x3d11('0x18')]===_0x3d11('0x19')&&typeof _0x4d0c2f[_0x3d11('0x1a')]===_0x3d11('0x19');var _0x4d4a72=_0x3d55e7[_0x3d11('0x1b')];var _0x530096=_0x4594a5?0x0:_0x4d0c2f[_0x3d11('0x18')];var _0x4763f2=_0x4594a5?_0x3d55e7[_0x3d11('0x1b')]:_0x4d0c2f['offset']+_0x4d0c2f[_0x3d11('0x1a')];var _0x39e4ce;if(_0x4763f2>=_0x4d4a72){_0x4763f2=_0x4d4a72;_0x39e4ce=0xc8;}else{_0x39e4ce=0xce;}_0x2e76cb[_0x3d11('0x17')](_0x39e4ce);return _0x2e76cb[_0x3d11('0x1c')](_0x3d11('0x1d'),_0x530096+'-'+_0x4763f2+'/'+_0x4d4a72)[_0x3d11('0x1e')](_0x3d55e7);}return null;};}function patchUpdates(_0x4cc9fb){return function(_0x2a980){try{jsonpatch[_0x3d11('0x1f')](_0x2a980,_0x4cc9fb,!![]);}catch(_0x2bcbda){return BPromise[_0x3d11('0x20')](_0x2bcbda);}return _0x2a980[_0x3d11('0x21')]();};}function saveUpdates(_0xde4c92,_0x348c79){return function(_0x16918f){if(_0x16918f){return _0x16918f[_0x3d11('0x22')](_0xde4c92)[_0x3d11('0x23')](function(_0x699374){return _0x699374;});}return null;};}function removeEntity(_0x2288c5,_0x1869ca){return function(_0x7770ae){if(_0x7770ae){return _0x7770ae[_0x3d11('0x24')]()[_0x3d11('0x23')](function(){_0x2288c5['status'](0xcc)[_0x3d11('0x16')]();});}};}function handleEntityNotFound(_0x128433,_0xb4444b){return function(_0x14f11a){if(!_0x14f11a){_0x128433[_0x3d11('0x25')](0x194);}return _0x14f11a;};}function handleError(_0x31f52a,_0xf5fdfe){_0xf5fdfe=_0xf5fdfe||0x1f4;return function(_0x410108){logger[_0x3d11('0x26')](_0x410108[_0x3d11('0x27')]);if(_0x410108[_0x3d11('0x28')]){delete _0x410108[_0x3d11('0x28')];}_0x31f52a[_0x3d11('0x17')](_0xf5fdfe)[_0x3d11('0x29')](_0x410108);};}exports[_0x3d11('0x2a')]=function(_0x4099c1,_0x75d950){var _0x57109c={},_0x476ef7={},_0x1fd5d1={'count':0x0,'rows':[]};var _0x15822b=_[_0x3d11('0x2b')](db[_0x3d11('0x2c')][_0x3d11('0x2d')],function(_0x1575de){return{'name':_0x1575de[_0x3d11('0x2e')],'type':_0x1575de[_0x3d11('0x2f')]['key']};});_0x476ef7[_0x3d11('0x30')]=_[_0x3d11('0x2b')](_0x15822b,_0x3d11('0x28'));_0x476ef7[_0x3d11('0x31')]=_[_0x3d11('0x32')](_0x4099c1['query']);_0x476ef7[_0x3d11('0x33')]=_[_0x3d11('0x34')](_0x476ef7[_0x3d11('0x30')],_0x476ef7[_0x3d11('0x31')]);_0x57109c[_0x3d11('0x35')]=_[_0x3d11('0x34')](_0x476ef7[_0x3d11('0x30')],qs['fields'](_0x4099c1[_0x3d11('0x31')][_0x3d11('0x36')]));_0x57109c[_0x3d11('0x35')]=_0x57109c[_0x3d11('0x35')][_0x3d11('0x37')]?_0x57109c['attributes']:_0x476ef7[_0x3d11('0x30')];if(!_0x4099c1[_0x3d11('0x31')][_0x3d11('0x38')](_0x3d11('0x39'))){_0x57109c['limit']=qs['limit'](_0x4099c1[_0x3d11('0x31')][_0x3d11('0x1a')]);_0x57109c[_0x3d11('0x18')]=qs[_0x3d11('0x18')](_0x4099c1['query'][_0x3d11('0x18')]);}_0x57109c[_0x3d11('0x3a')]=qs[_0x3d11('0x3b')](_0x4099c1[_0x3d11('0x31')]['sort']);_0x57109c[_0x3d11('0x3c')]=qs[_0x3d11('0x33')](_[_0x3d11('0x3d')](_0x4099c1[_0x3d11('0x31')],_0x476ef7[_0x3d11('0x33')]),_0x15822b);if(_0x4099c1['query'][_0x3d11('0x3e')]){_0x57109c[_0x3d11('0x3c')]=_[_0x3d11('0x3f')](_0x57109c[_0x3d11('0x3c')],{'$or':_[_0x3d11('0x2b')](_0x15822b,function(_0xa3d3a0){if(_0xa3d3a0[_0x3d11('0x2f')]!==_0x3d11('0x40')){var _0x179a3c={};_0x179a3c[_0xa3d3a0['name']]={'$like':'%'+_0x4099c1[_0x3d11('0x31')]['filter']+'%'};return _0x179a3c;}})});}_0x57109c=_[_0x3d11('0x3f')]({},_0x57109c,_0x4099c1['options']);var _0x52f68d={'where':_0x57109c[_0x3d11('0x3c')]};return db['SugarcrmField'][_0x3d11('0x1b')](_0x52f68d)['then'](function(_0x32010a){_0x1fd5d1['count']=_0x32010a;if(_0x4099c1[_0x3d11('0x31')][_0x3d11('0x41')]){_0x57109c[_0x3d11('0x42')]=[{'all':!![]}];}return db[_0x3d11('0x2c')][_0x3d11('0x43')](_0x57109c);})[_0x3d11('0x23')](function(_0x1b87a0){_0x1fd5d1[_0x3d11('0x44')]=_0x1b87a0;return _0x1fd5d1;})[_0x3d11('0x23')](respondWithFilteredResult(_0x75d950,_0x57109c))['catch'](handleError(_0x75d950,null));};exports[_0x3d11('0x45')]=function(_0xc557ab,_0x1f1895){var _0x1228b2={'raw':!![],'where':{'id':_0xc557ab[_0x3d11('0x46')]['id']}},_0x5b3074={};_0x5b3074[_0x3d11('0x30')]=_[_0x3d11('0x32')](db['SugarcrmField'][_0x3d11('0x2d')]);_0x5b3074[_0x3d11('0x31')]=_['keys'](_0xc557ab[_0x3d11('0x31')]);_0x5b3074[_0x3d11('0x33')]=_[_0x3d11('0x34')](_0x5b3074[_0x3d11('0x30')],_0x5b3074[_0x3d11('0x31')]);_0x1228b2['attributes']=_['intersection'](_0x5b3074[_0x3d11('0x30')],qs[_0x3d11('0x36')](_0xc557ab[_0x3d11('0x31')][_0x3d11('0x36')]));_0x1228b2[_0x3d11('0x35')]=_0x1228b2[_0x3d11('0x35')][_0x3d11('0x37')]?_0x1228b2[_0x3d11('0x35')]:_0x5b3074[_0x3d11('0x30')];if(_0xc557ab[_0x3d11('0x31')][_0x3d11('0x41')]){_0x1228b2['include']=[{'all':!![]}];}_0x1228b2=_[_0x3d11('0x3f')]({},_0x1228b2,_0xc557ab[_0x3d11('0x47')]);return db[_0x3d11('0x2c')][_0x3d11('0x48')](_0x1228b2)['then'](handleEntityNotFound(_0x1f1895,null))[_0x3d11('0x23')](respondWithResult(_0x1f1895,null))[_0x3d11('0x49')](handleError(_0x1f1895,null));};exports[_0x3d11('0x4a')]=function(_0x28404e,_0x29e41f){return db['SugarcrmField']['create'](_0x28404e['body'],{})[_0x3d11('0x23')](respondWithResult(_0x29e41f,0xc9))[_0x3d11('0x49')](handleError(_0x29e41f,null));};exports['update']=function(_0x382c3e,_0x56bf4e){if(_0x382c3e['body']['id']){delete _0x382c3e['body']['id'];}return db[_0x3d11('0x2c')]['find']({'where':{'id':_0x382c3e[_0x3d11('0x46')]['id']}})['then'](handleEntityNotFound(_0x56bf4e,null))['then'](saveUpdates(_0x382c3e[_0x3d11('0x4b')],null))[_0x3d11('0x23')](respondWithResult(_0x56bf4e,null))[_0x3d11('0x49')](handleError(_0x56bf4e,null));};exports[_0x3d11('0x24')]=function(_0x2013d6,_0x3e37ac){return db[_0x3d11('0x2c')][_0x3d11('0x48')]({'where':{'id':_0x2013d6[_0x3d11('0x46')]['id']}})[_0x3d11('0x23')](handleEntityNotFound(_0x3e37ac,null))[_0x3d11('0x23')](removeEntity(_0x3e37ac,null))['catch'](handleError(_0x3e37ac,null));};
\ No newline at end of file
+var _0x249e=['order','sort','pick','filter','where','merge','VIRTUAL','options','findAll','rows','catch','show','params','find','create','body','eml-format','rimraf','zip-dir','moment','bluebird','mustache','util','path','sox','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/environment','sendStatus','status','end','json','offset','undefined','count','Content-Range','apply','save','update','then','stack','name','send','index','map','SugarcrmField','rawAttributes','type','model','keys','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','limit'];(function(_0x55fc03,_0x43ce48){var _0x5bf429=function(_0xa06468){while(--_0xa06468){_0x55fc03['push'](_0x55fc03['shift']());}};_0x5bf429(++_0x43ce48);}(_0x249e,0xdf));var _0xe249=function(_0x264c02,_0x2ed765){_0x264c02=_0x264c02-0x0;var _0x5a7f2f=_0x249e[_0x264c02];return _0x5a7f2f;};'use strict';var emlformat=require(_0xe249('0x0'));var rimraf=require(_0xe249('0x1'));var zipdir=require(_0xe249('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xe249('0x3'));var BPromise=require(_0xe249('0x4'));var Mustache=require(_0xe249('0x5'));var util=require(_0xe249('0x6'));var path=require(_0xe249('0x7'));var sox=require(_0xe249('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xe249('0x9'));var _=require(_0xe249('0xa'));var squel=require(_0xe249('0xb'));var crypto=require(_0xe249('0xc'));var jsforce=require(_0xe249('0xd'));var deskjs=require(_0xe249('0xe'));var toCsv=require('to-csv');var querystring=require(_0xe249('0xf'));var Papa=require(_0xe249('0x10'));var Redis=require(_0xe249('0x11'));var authService=require(_0xe249('0x12'));var qs=require(_0xe249('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xe249('0x14'))(_0xe249('0x15'));var utils=require('../../config/utils');var config=require(_0xe249('0x16'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x3326ee,_0xa9407a){_0xa9407a=_0xa9407a||0xcc;return function(_0x188449){if(_0x188449){return _0x3326ee[_0xe249('0x17')](_0xa9407a);}return _0x3326ee[_0xe249('0x18')](_0xa9407a)[_0xe249('0x19')]();};}function respondWithResult(_0x37c2cc,_0x9bc935){_0x9bc935=_0x9bc935||0xc8;return function(_0x575455){if(_0x575455){return _0x37c2cc[_0xe249('0x18')](_0x9bc935)[_0xe249('0x1a')](_0x575455);}};}function respondWithFilteredResult(_0x3710d7,_0x13e97e){return function(_0xf9d426){if(_0xf9d426){var _0x3deba8=typeof _0x13e97e[_0xe249('0x1b')]===_0xe249('0x1c')&&typeof _0x13e97e['limit']===_0xe249('0x1c');var _0x23654a=_0xf9d426[_0xe249('0x1d')];var _0x57840b=_0x3deba8?0x0:_0x13e97e['offset'];var _0xcb381e=_0x3deba8?_0xf9d426[_0xe249('0x1d')]:_0x13e97e[_0xe249('0x1b')]+_0x13e97e['limit'];var _0x81b6b8;if(_0xcb381e>=_0x23654a){_0xcb381e=_0x23654a;_0x81b6b8=0xc8;}else{_0x81b6b8=0xce;}_0x3710d7[_0xe249('0x18')](_0x81b6b8);return _0x3710d7['set'](_0xe249('0x1e'),_0x57840b+'-'+_0xcb381e+'/'+_0x23654a)[_0xe249('0x1a')](_0xf9d426);}return null;};}function patchUpdates(_0x4da72e){return function(_0x3fe4bf){try{jsonpatch[_0xe249('0x1f')](_0x3fe4bf,_0x4da72e,!![]);}catch(_0x530144){return BPromise['reject'](_0x530144);}return _0x3fe4bf[_0xe249('0x20')]();};}function saveUpdates(_0x2bc5c0,_0x448617){return function(_0x17ae5b){if(_0x17ae5b){return _0x17ae5b[_0xe249('0x21')](_0x2bc5c0)[_0xe249('0x22')](function(_0x50b0f2){return _0x50b0f2;});}return null;};}function removeEntity(_0x3f7ca5,_0x375720){return function(_0x27e450){if(_0x27e450){return _0x27e450['destroy']()[_0xe249('0x22')](function(){_0x3f7ca5[_0xe249('0x18')](0xcc)[_0xe249('0x19')]();});}};}function handleEntityNotFound(_0x440cb7,_0x29dc95){return function(_0x4f2430){if(!_0x4f2430){_0x440cb7[_0xe249('0x17')](0x194);}return _0x4f2430;};}function handleError(_0x4b20a4,_0x2316ff){_0x2316ff=_0x2316ff||0x1f4;return function(_0x449f91){logger['error'](_0x449f91[_0xe249('0x23')]);if(_0x449f91[_0xe249('0x24')]){delete _0x449f91[_0xe249('0x24')];}_0x4b20a4[_0xe249('0x18')](_0x2316ff)[_0xe249('0x25')](_0x449f91);};}exports[_0xe249('0x26')]=function(_0x46b157,_0x4c1e5d){var _0x4292ab={},_0x405acf={},_0x48f15e={'count':0x0,'rows':[]};var _0x515a26=_[_0xe249('0x27')](db[_0xe249('0x28')][_0xe249('0x29')],function(_0x3c23bb){return{'name':_0x3c23bb['fieldName'],'type':_0x3c23bb[_0xe249('0x2a')]['key']};});_0x405acf[_0xe249('0x2b')]=_['map'](_0x515a26,_0xe249('0x24'));_0x405acf['query']=_[_0xe249('0x2c')](_0x46b157[_0xe249('0x2d')]);_0x405acf[_0xe249('0x2e')]=_[_0xe249('0x2f')](_0x405acf[_0xe249('0x2b')],_0x405acf[_0xe249('0x2d')]);_0x4292ab[_0xe249('0x30')]=_[_0xe249('0x2f')](_0x405acf['model'],qs[_0xe249('0x31')](_0x46b157[_0xe249('0x2d')][_0xe249('0x31')]));_0x4292ab[_0xe249('0x30')]=_0x4292ab['attributes']['length']?_0x4292ab[_0xe249('0x30')]:_0x405acf[_0xe249('0x2b')];if(!_0x46b157[_0xe249('0x2d')][_0xe249('0x32')](_0xe249('0x33'))){_0x4292ab[_0xe249('0x34')]=qs[_0xe249('0x34')](_0x46b157[_0xe249('0x2d')][_0xe249('0x34')]);_0x4292ab[_0xe249('0x1b')]=qs['offset'](_0x46b157['query'][_0xe249('0x1b')]);}_0x4292ab[_0xe249('0x35')]=qs[_0xe249('0x36')](_0x46b157[_0xe249('0x2d')]['sort']);_0x4292ab['where']=qs[_0xe249('0x2e')](_[_0xe249('0x37')](_0x46b157[_0xe249('0x2d')],_0x405acf['filters']),_0x515a26);if(_0x46b157[_0xe249('0x2d')][_0xe249('0x38')]){_0x4292ab[_0xe249('0x39')]=_[_0xe249('0x3a')](_0x4292ab[_0xe249('0x39')],{'$or':_[_0xe249('0x27')](_0x515a26,function(_0x4faf67){if(_0x4faf67[_0xe249('0x2a')]!==_0xe249('0x3b')){var _0x114e0e={};_0x114e0e[_0x4faf67[_0xe249('0x24')]]={'$like':'%'+_0x46b157['query']['filter']+'%'};return _0x114e0e;}})});}_0x4292ab=_[_0xe249('0x3a')]({},_0x4292ab,_0x46b157[_0xe249('0x3c')]);var _0x192b8b={'where':_0x4292ab['where']};return db[_0xe249('0x28')][_0xe249('0x1d')](_0x192b8b)[_0xe249('0x22')](function(_0x5bfc52){_0x48f15e[_0xe249('0x1d')]=_0x5bfc52;if(_0x46b157[_0xe249('0x2d')]['includeAll']){_0x4292ab['include']=[{'all':!![]}];}return db[_0xe249('0x28')][_0xe249('0x3d')](_0x4292ab);})[_0xe249('0x22')](function(_0x5738d0){_0x48f15e[_0xe249('0x3e')]=_0x5738d0;return _0x48f15e;})[_0xe249('0x22')](respondWithFilteredResult(_0x4c1e5d,_0x4292ab))[_0xe249('0x3f')](handleError(_0x4c1e5d,null));};exports[_0xe249('0x40')]=function(_0x5f1db7,_0xcc2a0d){var _0x519b04={'raw':!![],'where':{'id':_0x5f1db7[_0xe249('0x41')]['id']}},_0x27f9f7={};_0x27f9f7[_0xe249('0x2b')]=_[_0xe249('0x2c')](db[_0xe249('0x28')][_0xe249('0x29')]);_0x27f9f7['query']=_[_0xe249('0x2c')](_0x5f1db7['query']);_0x27f9f7['filters']=_[_0xe249('0x2f')](_0x27f9f7[_0xe249('0x2b')],_0x27f9f7[_0xe249('0x2d')]);_0x519b04[_0xe249('0x30')]=_[_0xe249('0x2f')](_0x27f9f7[_0xe249('0x2b')],qs[_0xe249('0x31')](_0x5f1db7[_0xe249('0x2d')][_0xe249('0x31')]));_0x519b04[_0xe249('0x30')]=_0x519b04[_0xe249('0x30')]['length']?_0x519b04[_0xe249('0x30')]:_0x27f9f7[_0xe249('0x2b')];if(_0x5f1db7[_0xe249('0x2d')]['includeAll']){_0x519b04['include']=[{'all':!![]}];}_0x519b04=_[_0xe249('0x3a')]({},_0x519b04,_0x5f1db7['options']);return db[_0xe249('0x28')][_0xe249('0x42')](_0x519b04)[_0xe249('0x22')](handleEntityNotFound(_0xcc2a0d,null))[_0xe249('0x22')](respondWithResult(_0xcc2a0d,null))[_0xe249('0x3f')](handleError(_0xcc2a0d,null));};exports[_0xe249('0x43')]=function(_0x4e0373,_0x12ca98){return db[_0xe249('0x28')][_0xe249('0x43')](_0x4e0373[_0xe249('0x44')],{})[_0xe249('0x22')](respondWithResult(_0x12ca98,0xc9))[_0xe249('0x3f')](handleError(_0x12ca98,null));};exports['update']=function(_0x14ac31,_0x6b08b2){if(_0x14ac31[_0xe249('0x44')]['id']){delete _0x14ac31['body']['id'];}return db[_0xe249('0x28')][_0xe249('0x42')]({'where':{'id':_0x14ac31['params']['id']}})[_0xe249('0x22')](handleEntityNotFound(_0x6b08b2,null))[_0xe249('0x22')](saveUpdates(_0x14ac31[_0xe249('0x44')],null))['then'](respondWithResult(_0x6b08b2,null))[_0xe249('0x3f')](handleError(_0x6b08b2,null));};exports['destroy']=function(_0x1f02f7,_0x10f72d){return db[_0xe249('0x28')]['find']({'where':{'id':_0x1f02f7[_0xe249('0x41')]['id']}})['then'](handleEntityNotFound(_0x10f72d,null))[_0xe249('0x22')](removeEntity(_0x10f72d,null))['catch'](handleError(_0x10f72d,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2883=['define','SugarcrmField','int_sugarcrm_fields','sugarcrm_unique_index','idField','lodash','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment'];(function(_0x4e1015,_0x485121){var _0x1f9872=function(_0xb62d44){while(--_0xb62d44){_0x4e1015['push'](_0x4e1015['shift']());}};_0x1f9872(++_0x485121);}(_0x2883,0x147));var _0x3288=function(_0x1d4aad,_0x475ec9){_0x1d4aad=_0x1d4aad-0x0;var _0x594a82=_0x2883[_0x1d4aad];return _0x594a82;};'use strict';var _=require(_0x3288('0x0'));var util=require('util');var logger=require(_0x3288('0x1'))(_0x3288('0x2'));var moment=require(_0x3288('0x3'));var BPromise=require(_0x3288('0x4'));var rp=require(_0x3288('0x5'));var fs=require('fs');var path=require(_0x3288('0x6'));var rimraf=require(_0x3288('0x7'));var config=require(_0x3288('0x8'));var attributes=require('./intSugarcrmField.attributes');module['exports']=function(_0x5c91fd,_0x49a3c6){return _0x5c91fd[_0x3288('0x9')](_0x3288('0xa'),attributes,{'tableName':_0x3288('0xb'),'paranoid':![],'indexes':[{'name':_0x3288('0xc'),'fields':[_0x3288('0xd'),'FieldId'],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x5743=['define','int_sugarcrm_fields','sugarcrm_unique_index','idField','FieldId','../../config/logger','api','request-promise','path','../../config/environment','./intSugarcrmField.attributes'];(function(_0x1ce073,_0x2c2a64){var _0x34d1e4=function(_0xc2f6a2){while(--_0xc2f6a2){_0x1ce073['push'](_0x1ce073['shift']());}};_0x34d1e4(++_0x2c2a64);}(_0x5743,0x89));var _0x3574=function(_0x2d66ac,_0x541034){_0x2d66ac=_0x2d66ac-0x0;var _0x40521d=_0x5743[_0x2d66ac];return _0x40521d;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x3574('0x0'))(_0x3574('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0x3574('0x2'));var fs=require('fs');var path=require(_0x3574('0x3'));var rimraf=require('rimraf');var config=require(_0x3574('0x4'));var attributes=require(_0x3574('0x5'));module['exports']=function(_0x4614db,_0x2ffa62){return _0x4614db[_0x3574('0x6')]('SugarcrmField',attributes,{'tableName':_0x3574('0x7'),'paranoid':![],'indexes':[{'name':_0x3574('0x8'),'fields':[_0x3574('0x9'),_0x3574('0xa')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa6b2=['../../config/environment','client','http','then','info','SugarcrmField,\x20%s,\x20%s','debug','stringify','error','code','message','request\x20sent','result','catch','util','moment','bluebird','randomstring','../../config/utils','../../config/logger','rpc'];(function(_0x2f2007,_0x2cb278){var _0xab1349=function(_0x5742e3){while(--_0x5742e3){_0x2f2007['push'](_0x2f2007['shift']());}};_0xab1349(++_0x2cb278);}(_0xa6b2,0xe0));var _0x2a6b=function(_0x2c0595,_0x2891b1){_0x2c0595=_0x2c0595-0x0;var _0x402a35=_0xa6b2[_0x2c0595];return _0x402a35;};'use strict';var _=require('lodash');var util=require(_0x2a6b('0x0'));var moment=require(_0x2a6b('0x1'));var BPromise=require(_0x2a6b('0x2'));var rs=require(_0x2a6b('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x2a6b('0x4'));var logger=require(_0x2a6b('0x5'))(_0x2a6b('0x6'));var config=require(_0x2a6b('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x2a6b('0x8')][_0x2a6b('0x9')]({'port':0x232a});function respondWithRpcPromise(_0xd44a5c,_0x528966,_0x1f73b6){return new BPromise(function(_0x5a2d60,_0x2ac992){return client['request'](_0xd44a5c,_0x1f73b6)[_0x2a6b('0xa')](function(_0x3f7b4c){logger[_0x2a6b('0xb')](_0x2a6b('0xc'),_0x528966,'request\x20sent');logger[_0x2a6b('0xd')]('SugarcrmField,\x20%s,\x20%s,\x20%s',_0x528966,'request\x20sent',JSON[_0x2a6b('0xe')](_0x3f7b4c));if(_0x3f7b4c['error']){if(_0x3f7b4c[_0x2a6b('0xf')][_0x2a6b('0x10')]===0x1f4){logger[_0x2a6b('0xf')]('SugarcrmField,\x20%s,\x20%s',_0x528966,_0x3f7b4c['error'][_0x2a6b('0x11')]);return _0x2ac992(_0x3f7b4c['error'][_0x2a6b('0x11')]);}logger[_0x2a6b('0xf')](_0x2a6b('0xc'),_0x528966,_0x3f7b4c['error'][_0x2a6b('0x11')]);return _0x5a2d60(_0x3f7b4c['error'][_0x2a6b('0x11')]);}else{logger[_0x2a6b('0xb')]('SugarcrmField,\x20%s,\x20%s',_0x528966,_0x2a6b('0x12'));_0x5a2d60(_0x3f7b4c[_0x2a6b('0x13')][_0x2a6b('0x11')]);}})[_0x2a6b('0x14')](function(_0x3c3fd0){logger[_0x2a6b('0xf')](_0x2a6b('0xc'),_0x528966,_0x3c3fd0);_0x2ac992(_0x3c3fd0);});});}
\ No newline at end of file
+var _0xe4e9=['result','catch','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/environment','client','then','info','SugarcrmField,\x20%s,\x20%s','request\x20sent','stringify','code','error','message'];(function(_0xb39122,_0x1c4f04){var _0x4126c7=function(_0x5d0871){while(--_0x5d0871){_0xb39122['push'](_0xb39122['shift']());}};_0x4126c7(++_0x1c4f04);}(_0xe4e9,0x145));var _0x9e4e=function(_0x13bdf0,_0x953329){_0x13bdf0=_0x13bdf0-0x0;var _0x7fb3ad=_0xe4e9[_0x13bdf0];return _0x7fb3ad;};'use strict';var _=require(_0x9e4e('0x0'));var util=require('util');var moment=require(_0x9e4e('0x1'));var BPromise=require(_0x9e4e('0x2'));var rs=require(_0x9e4e('0x3'));var fs=require('fs');var Redis=require(_0x9e4e('0x4'));var db=require(_0x9e4e('0x5'))['db'];var utils=require(_0x9e4e('0x6'));var logger=require('../../config/logger')('rpc');var config=require(_0x9e4e('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x9e4e('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x2ed624,_0x3f8fc8,_0x4f1f94){return new BPromise(function(_0x422ff8,_0x4b8e8a){return client['request'](_0x2ed624,_0x4f1f94)[_0x9e4e('0x9')](function(_0x41275b){logger[_0x9e4e('0xa')](_0x9e4e('0xb'),_0x3f8fc8,_0x9e4e('0xc'));logger['debug']('SugarcrmField,\x20%s,\x20%s,\x20%s',_0x3f8fc8,_0x9e4e('0xc'),JSON[_0x9e4e('0xd')](_0x41275b));if(_0x41275b['error']){if(_0x41275b['error'][_0x9e4e('0xe')]===0x1f4){logger[_0x9e4e('0xf')](_0x9e4e('0xb'),_0x3f8fc8,_0x41275b[_0x9e4e('0xf')][_0x9e4e('0x10')]);return _0x4b8e8a(_0x41275b[_0x9e4e('0xf')][_0x9e4e('0x10')]);}logger[_0x9e4e('0xf')](_0x9e4e('0xb'),_0x3f8fc8,_0x41275b['error'][_0x9e4e('0x10')]);return _0x422ff8(_0x41275b[_0x9e4e('0xf')]['message']);}else{logger['info'](_0x9e4e('0xb'),_0x3f8fc8,_0x9e4e('0xc'));_0x422ff8(_0x41275b[_0x9e4e('0x11')][_0x9e4e('0x10')]);}})[_0x9e4e('0x12')](function(_0x31850e){logger[_0x9e4e('0xf')](_0x9e4e('0xb'),_0x3f8fc8,_0x31850e);_0x4b8e8a(_0x31850e);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9b2a=['index','/:id','show','/:id/configurations','getConfigurations','/:id/fields','post','addConfiguration','delete','exports','multer','path','connect-timeout','express','fs-extra','../../components/auth/service','./intVtigerAccount.controller','get','isAuthenticated'];(function(_0xa67394,_0x46702c){var _0x9b9da7=function(_0x14095b){while(--_0x14095b){_0xa67394['push'](_0xa67394['shift']());}};_0x9b9da7(++_0x46702c);}(_0x9b2a,0x127));var _0xa9b2=function(_0x34dc9d,_0x189aa3){_0x34dc9d=_0x34dc9d-0x0;var _0x101e90=_0x9b2a[_0x34dc9d];return _0x101e90;};'use strict';var multer=require(_0xa9b2('0x0'));var util=require('util');var path=require(_0xa9b2('0x1'));var timeout=require(_0xa9b2('0x2'));var express=require(_0xa9b2('0x3'));var router=express['Router']();var fs_extra=require(_0xa9b2('0x4'));var auth=require(_0xa9b2('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0xa9b2('0x6'));router[_0xa9b2('0x7')]('/',auth[_0xa9b2('0x8')](),controller[_0xa9b2('0x9')]);router['get'](_0xa9b2('0xa'),auth[_0xa9b2('0x8')](),controller[_0xa9b2('0xb')]);router['get'](_0xa9b2('0xc'),auth[_0xa9b2('0x8')](),controller[_0xa9b2('0xd')]);router[_0xa9b2('0x7')](_0xa9b2('0xe'),auth[_0xa9b2('0x8')](),controller['getFields']);router[_0xa9b2('0xf')]('/',auth['isAuthenticated'](),controller['create']);router['post'](_0xa9b2('0xc'),auth[_0xa9b2('0x8')](),controller[_0xa9b2('0x10')]);router['put']('/:id',auth[_0xa9b2('0x8')](),controller['update']);router[_0xa9b2('0x11')](_0xa9b2('0xa'),auth[_0xa9b2('0x8')](),controller['destroy']);module[_0xa9b2('0x12')]=router;
\ No newline at end of file
+var _0x4536=['update','delete','destroy','multer','util','path','connect-timeout','Router','fs-extra','../../components/interaction/service','../../config/environment','./intVtigerAccount.controller','isAuthenticated','index','/:id','get','/:id/configurations','getConfigurations','/:id/fields','getFields','post','addConfiguration','put'];(function(_0x4dfb74,_0x14d62c){var _0x304b94=function(_0x45c2a7){while(--_0x45c2a7){_0x4dfb74['push'](_0x4dfb74['shift']());}};_0x304b94(++_0x14d62c);}(_0x4536,0xe9));var _0x6453=function(_0x40cd28,_0x456163){_0x40cd28=_0x40cd28-0x0;var _0x139a7a=_0x4536[_0x40cd28];return _0x139a7a;};'use strict';var multer=require(_0x6453('0x0'));var util=require(_0x6453('0x1'));var path=require(_0x6453('0x2'));var timeout=require(_0x6453('0x3'));var express=require('express');var router=express[_0x6453('0x4')]();var fs_extra=require(_0x6453('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x6453('0x6'));var config=require(_0x6453('0x7'));var controller=require(_0x6453('0x8'));router['get']('/',auth[_0x6453('0x9')](),controller[_0x6453('0xa')]);router['get'](_0x6453('0xb'),auth[_0x6453('0x9')](),controller['show']);router[_0x6453('0xc')](_0x6453('0xd'),auth[_0x6453('0x9')](),controller[_0x6453('0xe')]);router[_0x6453('0xc')](_0x6453('0xf'),auth['isAuthenticated'](),controller[_0x6453('0x10')]);router[_0x6453('0x11')]('/',auth['isAuthenticated'](),controller['create']);router[_0x6453('0x11')](_0x6453('0xd'),auth[_0x6453('0x9')](),controller[_0x6453('0x12')]);router[_0x6453('0x13')]('/:id',auth[_0x6453('0x9')](),controller[_0x6453('0x14')]);router[_0x6453('0x15')](_0x6453('0xb'),auth[_0x6453('0x9')](),controller[_0x6453('0x16')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xab07=['HelpDesk','sequelize','STRING'];(function(_0x4792c8,_0x5158a1){var _0x35edb1=function(_0x2472d3){while(--_0x2472d3){_0x4792c8['push'](_0x4792c8['shift']());}};_0x35edb1(++_0x5158a1);}(_0xab07,0xd6));var _0x7ab0=function(_0x57f100,_0xa53aca){_0x57f100=_0x57f100-0x0;var _0x4cac01=_0xab07[_0x57f100];return _0x4cac01;};'use strict';var Sequelize=require(_0x7ab0('0x0'));module['exports']={'name':{'type':Sequelize[_0x7ab0('0x1')],'allowNull':![]},'description':{'type':Sequelize[_0x7ab0('0x1')]},'username':{'type':Sequelize[_0x7ab0('0x1')],'allowNull':![]},'moduleName':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0x7ab0('0x2')},'remoteUri':{'type':Sequelize[_0x7ab0('0x1')],'allowNull':![]},'serverUrl':{'type':Sequelize[_0x7ab0('0x1')],'allowNull':![]},'accessKey':{'type':Sequelize[_0x7ab0('0x1')],'allowNull':![]}};
\ No newline at end of file
+var _0xe975=['sequelize','STRING'];(function(_0x334d5b,_0x33d99c){var _0x46a4a0=function(_0x560121){while(--_0x560121){_0x334d5b['push'](_0x334d5b['shift']());}};_0x46a4a0(++_0x33d99c);}(_0xe975,0x80));var _0x5e97=function(_0x1237d9,_0x3e1fd3){_0x1237d9=_0x1237d9-0x0;var _0x4e636f=_0xe975[_0x1237d9];return _0x4e636f;};'use strict';var Sequelize=require(_0x5e97('0x0'));module['exports']={'name':{'type':Sequelize[_0x5e97('0x1')],'allowNull':![]},'description':{'type':Sequelize['STRING']},'username':{'type':Sequelize['STRING'],'allowNull':![]},'moduleName':{'type':Sequelize[_0x5e97('0x1')],'allowNull':![],'defaultValue':'HelpDesk'},'remoteUri':{'type':Sequelize[_0x5e97('0x1')],'allowNull':![]},'serverUrl':{'type':Sequelize[_0x5e97('0x1')],'allowNull':![]},'accessKey':{'type':Sequelize[_0x5e97('0x1')],'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x42c8=['label','cf_','picklistValues','value','log','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','getFields','stringify','Wrong\x20credentials','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','squel','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','update','destroy','error','stack','name','send','index','VtigerAccount','rawAttributes','fieldName','type','model','map','query','keys','filters','intersection','attributes','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','VIRTUAL','then','includeAll','include','findAll','rows','catch','show','params','fields','options','find','create','body','findOne','VtigerConfiguration','pick','getConfigurations','addConfiguration','Subjects','getSubjects','channel','Descriptions','VtigerField','username','description','moduleName','remoteUri','serverUrl','accessKey','slice','substring','lastIndexOf','format','%s/webservice.php','GET','getchallenge','success','login','result','token','describe','sessionName','autogenerated','reference','owner','remove','includes','editable','false'];(function(_0x59ae8f,_0x148344){var _0x3900b5=function(_0x63af51){while(--_0x63af51){_0x59ae8f['push'](_0x59ae8f['shift']());}};_0x3900b5(++_0x148344);}(_0x42c8,0x89));var _0x842c=function(_0x5cb5fc,_0x6cdda3){_0x5cb5fc=_0x5cb5fc-0x0;var _0x4b6fab=_0x42c8[_0x5cb5fc];return _0x4b6fab;};'use strict';var emlformat=require(_0x842c('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x842c('0x1'));var jsonpatch=require(_0x842c('0x2'));var rp=require(_0x842c('0x3'));var moment=require(_0x842c('0x4'));var BPromise=require(_0x842c('0x5'));var Mustache=require(_0x842c('0x6'));var util=require(_0x842c('0x7'));var path=require(_0x842c('0x8'));var sox=require(_0x842c('0x9'));var csv=require(_0x842c('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x842c('0xb'));var _=require('lodash');var squel=require(_0x842c('0xc'));var crypto=require('crypto');var jsforce=require(_0x842c('0xd'));var deskjs=require(_0x842c('0xe'));var toCsv=require('to-csv');var querystring=require(_0x842c('0xf'));var Papa=require(_0x842c('0x10'));var Redis=require('ioredis');var authService=require(_0x842c('0x11'));var qs=require(_0x842c('0x12'));var as=require(_0x842c('0x13'));var hardwareService=require(_0x842c('0x14'));var logger=require('../../config/logger')(_0x842c('0x15'));var utils=require('../../config/utils');var config=require(_0x842c('0x16'));var licenseUtil=require(_0x842c('0x17'));var db=require(_0x842c('0x18'))['db'];var integrations=require(_0x842c('0x19'));function respondWithStatusCode(_0x351bf2,_0x2b40f2){_0x2b40f2=_0x2b40f2||0xcc;return function(_0x3be62a){if(_0x3be62a){return _0x351bf2[_0x842c('0x1a')](_0x2b40f2);}return _0x351bf2[_0x842c('0x1b')](_0x2b40f2)[_0x842c('0x1c')]();};}function respondWithResult(_0x5126f3,_0x3caaa6){_0x3caaa6=_0x3caaa6||0xc8;return function(_0x58cc9b){if(_0x58cc9b){return _0x5126f3['status'](_0x3caaa6)[_0x842c('0x1d')](_0x58cc9b);}};}function respondWithFilteredResult(_0x18b3c1,_0x4492d8){return function(_0x398250){if(_0x398250){var _0x2dd1c0=typeof _0x4492d8[_0x842c('0x1e')]===_0x842c('0x1f')&&typeof _0x4492d8['limit']===_0x842c('0x1f');var _0x1db72d=_0x398250[_0x842c('0x20')];var _0x106f3b=_0x2dd1c0?0x0:_0x4492d8[_0x842c('0x1e')];var _0x575d98=_0x2dd1c0?_0x398250[_0x842c('0x20')]:_0x4492d8[_0x842c('0x1e')]+_0x4492d8[_0x842c('0x21')];var _0x5e8ef6;if(_0x575d98>=_0x1db72d){_0x575d98=_0x1db72d;_0x5e8ef6=0xc8;}else{_0x5e8ef6=0xce;}_0x18b3c1['status'](_0x5e8ef6);return _0x18b3c1[_0x842c('0x22')](_0x842c('0x23'),_0x106f3b+'-'+_0x575d98+'/'+_0x1db72d)['json'](_0x398250);}return null;};}function patchUpdates(_0x501fca){return function(_0x2c0998){try{jsonpatch[_0x842c('0x24')](_0x2c0998,_0x501fca,!![]);}catch(_0x10a6ca){return BPromise[_0x842c('0x25')](_0x10a6ca);}return _0x2c0998[_0x842c('0x26')]();};}function saveUpdates(_0x454393,_0x535564){return function(_0x41d89e){if(_0x41d89e){return _0x41d89e[_0x842c('0x27')](_0x454393)['then'](function(_0x4d88b1){return _0x4d88b1;});}return null;};}function removeEntity(_0x45112a,_0x217590){return function(_0x1973a1){if(_0x1973a1){return _0x1973a1[_0x842c('0x28')]()['then'](function(){_0x45112a[_0x842c('0x1b')](0xcc)[_0x842c('0x1c')]();});}};}function handleEntityNotFound(_0x4de35c,_0x2b8e80){return function(_0x10d3a8){if(!_0x10d3a8){_0x4de35c[_0x842c('0x1a')](0x194);}return _0x10d3a8;};}function handleError(_0x156013,_0x2328e0){_0x2328e0=_0x2328e0||0x1f4;return function(_0x3b3033){logger[_0x842c('0x29')](_0x3b3033[_0x842c('0x2a')]);if(_0x3b3033[_0x842c('0x2b')]){delete _0x3b3033['name'];}_0x156013[_0x842c('0x1b')](_0x2328e0)[_0x842c('0x2c')](_0x3b3033);};}exports[_0x842c('0x2d')]=function(_0x307c79,_0x41c879){var _0x2656d0={},_0x521f0c={},_0x2efe53={'count':0x0,'rows':[]};var _0xe1f409=_['map'](db[_0x842c('0x2e')][_0x842c('0x2f')],function(_0x253584){return{'name':_0x253584[_0x842c('0x30')],'type':_0x253584[_0x842c('0x31')]['key']};});_0x521f0c[_0x842c('0x32')]=_[_0x842c('0x33')](_0xe1f409,'name');_0x521f0c[_0x842c('0x34')]=_[_0x842c('0x35')](_0x307c79['query']);_0x521f0c[_0x842c('0x36')]=_[_0x842c('0x37')](_0x521f0c[_0x842c('0x32')],_0x521f0c[_0x842c('0x34')]);_0x2656d0['attributes']=_[_0x842c('0x37')](_0x521f0c[_0x842c('0x32')],qs['fields'](_0x307c79[_0x842c('0x34')]['fields']));_0x2656d0[_0x842c('0x38')]=_0x2656d0[_0x842c('0x38')][_0x842c('0x39')]?_0x2656d0[_0x842c('0x38')]:_0x521f0c[_0x842c('0x32')];if(!_0x307c79[_0x842c('0x34')][_0x842c('0x3a')](_0x842c('0x3b'))){_0x2656d0['limit']=qs[_0x842c('0x21')](_0x307c79[_0x842c('0x34')][_0x842c('0x21')]);_0x2656d0['offset']=qs[_0x842c('0x1e')](_0x307c79[_0x842c('0x34')]['offset']);}_0x2656d0[_0x842c('0x3c')]=qs[_0x842c('0x3d')](_0x307c79['query'][_0x842c('0x3d')]);_0x2656d0[_0x842c('0x3e')]=qs['filters'](_['pick'](_0x307c79['query'],_0x521f0c[_0x842c('0x36')]),_0xe1f409);if(_0x307c79['query'][_0x842c('0x3f')]){_0x2656d0['where']=_[_0x842c('0x40')](_0x2656d0['where'],{'$or':_[_0x842c('0x33')](_0xe1f409,function(_0x531b3d){if(_0x531b3d[_0x842c('0x31')]!==_0x842c('0x41')){var _0x11aef5={};_0x11aef5[_0x531b3d['name']]={'$like':'%'+_0x307c79['query'][_0x842c('0x3f')]+'%'};return _0x11aef5;}})});}_0x2656d0=_[_0x842c('0x40')]({},_0x2656d0,_0x307c79['options']);var _0x31c4b2={'where':_0x2656d0['where']};return db['VtigerAccount'][_0x842c('0x20')](_0x31c4b2)[_0x842c('0x42')](function(_0x565ee2){_0x2efe53[_0x842c('0x20')]=_0x565ee2;if(_0x307c79['query'][_0x842c('0x43')]){_0x2656d0[_0x842c('0x44')]=[{'all':!![]}];}return db[_0x842c('0x2e')][_0x842c('0x45')](_0x2656d0);})[_0x842c('0x42')](function(_0x5215ca){_0x2efe53[_0x842c('0x46')]=_0x5215ca;return _0x2efe53;})[_0x842c('0x42')](respondWithFilteredResult(_0x41c879,_0x2656d0))[_0x842c('0x47')](handleError(_0x41c879,null));};exports[_0x842c('0x48')]=function(_0x333866,_0x5a4b16){var _0x1f16c5={'raw':![],'where':{'id':_0x333866[_0x842c('0x49')]['id']}},_0x3ce743={};_0x3ce743['model']=_[_0x842c('0x35')](db[_0x842c('0x2e')][_0x842c('0x2f')]);_0x3ce743[_0x842c('0x34')]=_[_0x842c('0x35')](_0x333866[_0x842c('0x34')]);_0x3ce743[_0x842c('0x36')]=_[_0x842c('0x37')](_0x3ce743[_0x842c('0x32')],_0x3ce743[_0x842c('0x34')]);_0x1f16c5[_0x842c('0x38')]=_['intersection'](_0x3ce743['model'],qs['fields'](_0x333866['query'][_0x842c('0x4a')]));_0x1f16c5[_0x842c('0x38')]=_0x1f16c5[_0x842c('0x38')][_0x842c('0x39')]?_0x1f16c5[_0x842c('0x38')]:_0x3ce743[_0x842c('0x32')];if(_0x333866[_0x842c('0x34')][_0x842c('0x43')]){_0x1f16c5[_0x842c('0x44')]=[{'all':!![]}];}_0x1f16c5=_[_0x842c('0x40')]({},_0x1f16c5,_0x333866[_0x842c('0x4b')]);return db[_0x842c('0x2e')][_0x842c('0x4c')](_0x1f16c5)[_0x842c('0x42')](handleEntityNotFound(_0x5a4b16,null))['then'](respondWithResult(_0x5a4b16,null))[_0x842c('0x47')](handleError(_0x5a4b16,null));};exports['create']=function(_0x5e18e9,_0x2e722c){return db[_0x842c('0x2e')][_0x842c('0x4d')](_0x5e18e9[_0x842c('0x4e')],{})[_0x842c('0x42')](respondWithResult(_0x2e722c,0xc9))[_0x842c('0x47')](handleError(_0x2e722c,null));};exports[_0x842c('0x27')]=function(_0x3214cb,_0x2a39ab){if(_0x3214cb[_0x842c('0x4e')]['id']){delete _0x3214cb[_0x842c('0x4e')]['id'];}return db[_0x842c('0x2e')][_0x842c('0x4c')]({'where':{'id':_0x3214cb[_0x842c('0x49')]['id']}})['then'](handleEntityNotFound(_0x2a39ab,null))[_0x842c('0x42')](saveUpdates(_0x3214cb[_0x842c('0x4e')],null))[_0x842c('0x42')](respondWithResult(_0x2a39ab,null))[_0x842c('0x47')](handleError(_0x2a39ab,null));};exports[_0x842c('0x28')]=function(_0x268006,_0x46dca4){return db[_0x842c('0x2e')][_0x842c('0x4c')]({'where':{'id':_0x268006[_0x842c('0x49')]['id']}})[_0x842c('0x42')](handleEntityNotFound(_0x46dca4,null))[_0x842c('0x42')](removeEntity(_0x46dca4,null))['catch'](handleError(_0x46dca4,null));};exports['getConfigurations']=function(_0x2fbe4c,_0x3d4e65,_0x2bd9bc){var _0x538fc0={};var _0x437639={};var _0x8e0883;var _0x370b5f;return db[_0x842c('0x2e')][_0x842c('0x4f')]({'where':{'id':_0x2fbe4c['params']['id']}})[_0x842c('0x42')](handleEntityNotFound(_0x3d4e65,null))[_0x842c('0x42')](function(_0xe525ca){if(_0xe525ca){_0x8e0883=_0xe525ca;_0x437639[_0x842c('0x32')]=_[_0x842c('0x35')](db[_0x842c('0x50')][_0x842c('0x2f')]);_0x437639[_0x842c('0x34')]=_[_0x842c('0x35')](_0x2fbe4c[_0x842c('0x34')]);_0x437639[_0x842c('0x36')]=_['intersection'](_0x437639['model'],_0x437639[_0x842c('0x34')]);_0x538fc0[_0x842c('0x38')]=_['intersection'](_0x437639[_0x842c('0x32')],qs[_0x842c('0x4a')](_0x2fbe4c[_0x842c('0x34')][_0x842c('0x4a')]));_0x538fc0['attributes']=_0x538fc0[_0x842c('0x38')][_0x842c('0x39')]?_0x538fc0[_0x842c('0x38')]:_0x437639[_0x842c('0x32')];_0x538fc0[_0x842c('0x3c')]=qs['sort'](_0x2fbe4c[_0x842c('0x34')]['sort']);_0x538fc0[_0x842c('0x3e')]=qs['filters'](_[_0x842c('0x51')](_0x2fbe4c[_0x842c('0x34')],_0x437639['filters']));if(_0x2fbe4c[_0x842c('0x34')]['filter']){_0x538fc0[_0x842c('0x3e')]=_[_0x842c('0x40')](_0x538fc0[_0x842c('0x3e')],{'$or':_['map'](_0x538fc0[_0x842c('0x38')],function(_0xbedadd){var _0xd5b28a={};_0xd5b28a[_0xbedadd]={'$like':'%'+_0x2fbe4c['query'][_0x842c('0x3f')]+'%'};return _0xd5b28a;})});}_0x538fc0=_[_0x842c('0x40')]({},_0x538fc0,_0x2fbe4c[_0x842c('0x4b')]);return _0x8e0883[_0x842c('0x52')](_0x538fc0);}})[_0x842c('0x42')](function(_0x1e0e10){if(_0x1e0e10){_0x370b5f=_0x1e0e10[_0x842c('0x39')];if(!_0x2fbe4c[_0x842c('0x34')][_0x842c('0x3a')](_0x842c('0x3b'))){_0x538fc0[_0x842c('0x21')]=qs[_0x842c('0x21')](_0x2fbe4c[_0x842c('0x34')][_0x842c('0x21')]);_0x538fc0['offset']=qs[_0x842c('0x1e')](_0x2fbe4c['query'][_0x842c('0x1e')]);}return _0x8e0883[_0x842c('0x52')](_0x538fc0);}})[_0x842c('0x42')](function(_0x161391){if(_0x161391){return _0x161391?{'count':_0x370b5f,'rows':_0x161391}:null;}})[_0x842c('0x42')](respondWithResult(_0x3d4e65,null))['catch'](handleError(_0x3d4e65,null));};exports[_0x842c('0x53')]=function(_0x16ef14,_0x14221f,_0x1d7c5a){if(_0x16ef14[_0x842c('0x4e')]['id']){delete _0x16ef14['body']['id'];}return db[_0x842c('0x2e')][_0x842c('0x4f')]({'where':{'id':_0x16ef14[_0x842c('0x49')]['id']}})[_0x842c('0x42')](handleEntityNotFound(_0x14221f,null))['then'](function(_0x46ead0){if(_0x46ead0){_0x16ef14['body']['AccountId']=_0x46ead0['id'];_0x16ef14[_0x842c('0x4e')][_0x842c('0x54')]=integrations[_0x842c('0x55')](_0x16ef14[_0x842c('0x4e')][_0x842c('0x56')],_0x16ef14[_0x842c('0x4e')][_0x842c('0x31')]);_0x16ef14[_0x842c('0x4e')][_0x842c('0x57')]=integrations['getDescriptions'](_0x16ef14[_0x842c('0x4e')][_0x842c('0x56')],_0x16ef14[_0x842c('0x4e')]['type']);return db['VtigerConfiguration']['create'](_0x16ef14['body'],{'include':[{'model':db[_0x842c('0x58')],'as':_0x842c('0x54')},{'model':db[_0x842c('0x58')],'as':_0x842c('0x57')}]});}return null;})[_0x842c('0x42')](respondWithResult(_0x14221f,null))[_0x842c('0x47')](handleError(_0x14221f,null));};var md5=require('md5');exports['getFields']=function(_0x37bf83,_0x215e84,_0x2deb60){var _0x1b6aed=null;var _0x2492cc=null;var _0x228775=null;var _0x4d68df=null;var _0x1b8e6f='';return db[_0x842c('0x2e')]['findOne']({'where':{'id':_0x37bf83[_0x842c('0x49')]['id']},'attributes':['id',_0x842c('0x2b'),_0x842c('0x59'),_0x842c('0x5a'),_0x842c('0x5b'),_0x842c('0x5c'),_0x842c('0x5d'),_0x842c('0x5e')]})[_0x842c('0x42')](handleEntityNotFound(_0x215e84,null))[_0x842c('0x42')](function(_0x5e2e12){if(_0x5e2e12){_0x1b6aed=_0x5e2e12['username'];_0x2492cc=_0x5e2e12[_0x842c('0x5e')];_0x228775=_0x5e2e12[_0x842c('0x5b')];_0x1b8e6f=_0x5e2e12[_0x842c('0x5c')];var _0x43f961=_0x1b8e6f[_0x842c('0x5f')](-0x1);if(_0x43f961==='/'){_0x1b8e6f=_0x1b8e6f[_0x842c('0x60')](0x0,_0x1b8e6f[_0x842c('0x61')](_0x43f961));}_0x4d68df=util[_0x842c('0x62')](_0x842c('0x63'),_0x1b8e6f);var _0x2992a6={'method':_0x842c('0x64'),'uri':_0x4d68df,'qs':{'operation':_0x842c('0x65'),'username':_0x5e2e12[_0x842c('0x59')]},'json':!![]};return rp(_0x2992a6);}})[_0x842c('0x42')](function(_0x1b2906){if(_0x1b2906[_0x842c('0x66')]){var _0x3d1570={'method':'POST','uri':_0x4d68df,'form':{'operation':_0x842c('0x67'),'username':_0x1b6aed,'accessKey':md5(_0x1b2906[_0x842c('0x68')][_0x842c('0x69')]+_0x2492cc)},'json':!![]};return rp(_0x3d1570);}})[_0x842c('0x42')](function(_0x511c0c){if(_0x511c0c['success']){var _0x5e558c={'method':_0x842c('0x64'),'uri':_0x4d68df,'qs':{'operation':_0x842c('0x6a'),'username':_0x1b6aed,'sessionName':_0x511c0c[_0x842c('0x68')][_0x842c('0x6b')],'elementType':_0x228775},'json':!![]};return rp(_0x5e558c);}})['then'](function(_0x452784){if(_0x452784[_0x842c('0x66')]){var _0x1e454a=[_0x842c('0x6c'),_0x842c('0x6d'),_0x842c('0x6e')];_[_0x842c('0x6f')](_0x452784[_0x842c('0x68')][_0x842c('0x4a')],function(_0x11568d){return _0x1e454a[_0x842c('0x70')](_0x11568d['type'][_0x842c('0x2b')]);});_[_0x842c('0x6f')](_0x452784[_0x842c('0x68')][_0x842c('0x4a')],function(_0x22d1cc){return _0x22d1cc[_0x842c('0x71')]===_0x842c('0x72');});return{'count':_0x452784[_0x842c('0x68')][_0x842c('0x4a')][_0x842c('0x39')],'rows':_[_0x842c('0x33')](_0x452784[_0x842c('0x68')][_0x842c('0x4a')],function(_0x163f6b){return{'id':_0x163f6b['name'],'name':_0x163f6b[_0x842c('0x73')],'custom':_['startsWith'](_0x163f6b['name'],_0x842c('0x74'))?!![]:![],'options':_0x163f6b[_0x842c('0x31')][_0x842c('0x2b')]==='picklist'&&_0x163f6b['type']['picklistValues']['length']>0x0?_[_0x842c('0x33')](_0x163f6b['type'][_0x842c('0x75')],function(_0x470960){return{'name':_0x470960[_0x842c('0x73')],'value':_0x470960[_0x842c('0x76')]};}):[]};})};}})[_0x842c('0x42')](respondWithResult(_0x215e84,null))['catch'](function(_0x12ef2b){console[_0x842c('0x77')]('vTiger\x20error:\x20'+_0x12ef2b);var _0x4cd7ca=_0x37bf83[_0x842c('0x34')][_0x842c('0x78')]?0x1f4:_0x12ef2b[_0x842c('0x79')]||0x1f4;logger[_0x842c('0x29')](_0x842c('0x7a'),_0x842c('0x7b'),_0x4cd7ca,JSON[_0x842c('0x7c')](_0x12ef2b));delete _0x12ef2b[_0x842c('0x2b')];if(_0x4cd7ca===0x191){_0x4cd7ca=0x190;}_0x215e84['status'](_0x4cd7ca)[_0x842c('0x2c')](_0x37bf83[_0x842c('0x34')][_0x842c('0x78')]?{'message':_0x842c('0x7d'),'statusCode':_0x12ef2b[_0x842c('0x79')]}:_0x12ef2b);});};
\ No newline at end of file
+var _0x7043=['ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','json','offset','undefined','limit','set','Content-Range','apply','reject','save','then','stack','send','index','map','VtigerAccount','rawAttributes','type','key','model','keys','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','VIRTUAL','merge','count','includeAll','include','findAll','rows','show','params','options','find','catch','create','body','update','findOne','VtigerConfiguration','getConfigurations','addConfiguration','Subjects','getDescriptions','channel','VtigerField','Descriptions','md5','getFields','username','description','moduleName','remoteUri','accessKey','slice','lastIndexOf','format','%s/webservice.php','GET','getchallenge','success','POST','login','result','describe','sessionName','reference','owner','remove','editable','false','name','label','startsWith','cf_','picklist','picklistValues','log','vTiger\x20error:\x20','test','statusCode','error','getFields,\x20%s,\x20%s,\x20%s','Wrong\x20credentials','eml-format','rimraf','zip-dir','moment','bluebird','mustache','sox','to-csv'];(function(_0xf373e2,_0x9ba77a){var _0x3e4a76=function(_0x1ed236){while(--_0x1ed236){_0xf373e2['push'](_0xf373e2['shift']());}};_0x3e4a76(++_0x9ba77a);}(_0x7043,0x1d8));var _0x3704=function(_0x155b18,_0xc514db){_0x155b18=_0x155b18-0x0;var _0x2e0f82=_0x7043[_0x155b18];return _0x2e0f82;};'use strict';var emlformat=require(_0x3704('0x0'));var rimraf=require(_0x3704('0x1'));var zipdir=require(_0x3704('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x3704('0x3'));var BPromise=require(_0x3704('0x4'));var Mustache=require(_0x3704('0x5'));var util=require('util');var path=require('path');var sox=require(_0x3704('0x6'));var csv=require(_0x3704('0x7'));var ejs=require(_0x3704('0x8'));var fs=require('fs');var fs_extra=require(_0x3704('0x9'));var _=require('lodash');var squel=require(_0x3704('0xa'));var crypto=require(_0x3704('0xb'));var jsforce=require(_0x3704('0xc'));var deskjs=require(_0x3704('0xd'));var toCsv=require(_0x3704('0x7'));var querystring=require(_0x3704('0xe'));var Papa=require(_0x3704('0xf'));var Redis=require(_0x3704('0x10'));var authService=require(_0x3704('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x3704('0x12'));var hardwareService=require(_0x3704('0x13'));var logger=require(_0x3704('0x14'))('api');var utils=require(_0x3704('0x15'));var config=require(_0x3704('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0x3704('0x17'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0xd5253e,_0x5b05bf){_0x5b05bf=_0x5b05bf||0xcc;return function(_0x52686f){if(_0x52686f){return _0xd5253e[_0x3704('0x18')](_0x5b05bf);}return _0xd5253e[_0x3704('0x19')](_0x5b05bf)['end']();};}function respondWithResult(_0x311fba,_0x402ea7){_0x402ea7=_0x402ea7||0xc8;return function(_0x56ae89){if(_0x56ae89){return _0x311fba[_0x3704('0x19')](_0x402ea7)[_0x3704('0x1a')](_0x56ae89);}};}function respondWithFilteredResult(_0x109887,_0x18e0c1){return function(_0x295f14){if(_0x295f14){var _0x2f60c5=typeof _0x18e0c1[_0x3704('0x1b')]===_0x3704('0x1c')&&typeof _0x18e0c1[_0x3704('0x1d')]===_0x3704('0x1c');var _0x1cc5f0=_0x295f14['count'];var _0x57cc36=_0x2f60c5?0x0:_0x18e0c1[_0x3704('0x1b')];var _0x3e04b7=_0x2f60c5?_0x295f14['count']:_0x18e0c1['offset']+_0x18e0c1[_0x3704('0x1d')];var _0x268638;if(_0x3e04b7>=_0x1cc5f0){_0x3e04b7=_0x1cc5f0;_0x268638=0xc8;}else{_0x268638=0xce;}_0x109887[_0x3704('0x19')](_0x268638);return _0x109887[_0x3704('0x1e')](_0x3704('0x1f'),_0x57cc36+'-'+_0x3e04b7+'/'+_0x1cc5f0)[_0x3704('0x1a')](_0x295f14);}return null;};}function patchUpdates(_0x46bc6b){return function(_0x263bb0){try{jsonpatch[_0x3704('0x20')](_0x263bb0,_0x46bc6b,!![]);}catch(_0xd508a4){return BPromise[_0x3704('0x21')](_0xd508a4);}return _0x263bb0[_0x3704('0x22')]();};}function saveUpdates(_0xa0ff46,_0x45d60c){return function(_0x21eb77){if(_0x21eb77){return _0x21eb77['update'](_0xa0ff46)[_0x3704('0x23')](function(_0x479412){return _0x479412;});}return null;};}function removeEntity(_0xe2554,_0x43f9d6){return function(_0x18e1e7){if(_0x18e1e7){return _0x18e1e7['destroy']()[_0x3704('0x23')](function(){_0xe2554[_0x3704('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x46b68d,_0xae7639){return function(_0x25659f){if(!_0x25659f){_0x46b68d[_0x3704('0x18')](0x194);}return _0x25659f;};}function handleError(_0x3f1a66,_0x3ca2e9){_0x3ca2e9=_0x3ca2e9||0x1f4;return function(_0x7ef0c0){logger['error'](_0x7ef0c0[_0x3704('0x24')]);if(_0x7ef0c0['name']){delete _0x7ef0c0['name'];}_0x3f1a66[_0x3704('0x19')](_0x3ca2e9)[_0x3704('0x25')](_0x7ef0c0);};}exports[_0x3704('0x26')]=function(_0x21ca45,_0x460290){var _0x7b7c9a={},_0x1afb7c={},_0x27a1eb={'count':0x0,'rows':[]};var _0x239c73=_[_0x3704('0x27')](db[_0x3704('0x28')][_0x3704('0x29')],function(_0x15bcc4){return{'name':_0x15bcc4['fieldName'],'type':_0x15bcc4[_0x3704('0x2a')][_0x3704('0x2b')]};});_0x1afb7c[_0x3704('0x2c')]=_[_0x3704('0x27')](_0x239c73,'name');_0x1afb7c['query']=_[_0x3704('0x2d')](_0x21ca45[_0x3704('0x2e')]);_0x1afb7c['filters']=_[_0x3704('0x2f')](_0x1afb7c[_0x3704('0x2c')],_0x1afb7c[_0x3704('0x2e')]);_0x7b7c9a[_0x3704('0x30')]=_['intersection'](_0x1afb7c[_0x3704('0x2c')],qs['fields'](_0x21ca45[_0x3704('0x2e')][_0x3704('0x31')]));_0x7b7c9a[_0x3704('0x30')]=_0x7b7c9a[_0x3704('0x30')][_0x3704('0x32')]?_0x7b7c9a[_0x3704('0x30')]:_0x1afb7c['model'];if(!_0x21ca45[_0x3704('0x2e')][_0x3704('0x33')](_0x3704('0x34'))){_0x7b7c9a[_0x3704('0x1d')]=qs[_0x3704('0x1d')](_0x21ca45['query'][_0x3704('0x1d')]);_0x7b7c9a[_0x3704('0x1b')]=qs[_0x3704('0x1b')](_0x21ca45[_0x3704('0x2e')][_0x3704('0x1b')]);}_0x7b7c9a[_0x3704('0x35')]=qs[_0x3704('0x36')](_0x21ca45['query'][_0x3704('0x36')]);_0x7b7c9a[_0x3704('0x37')]=qs[_0x3704('0x38')](_[_0x3704('0x39')](_0x21ca45[_0x3704('0x2e')],_0x1afb7c[_0x3704('0x38')]),_0x239c73);if(_0x21ca45[_0x3704('0x2e')][_0x3704('0x3a')]){_0x7b7c9a[_0x3704('0x37')]=_['merge'](_0x7b7c9a[_0x3704('0x37')],{'$or':_['map'](_0x239c73,function(_0x166bfb){if(_0x166bfb['type']!==_0x3704('0x3b')){var _0x2a534a={};_0x2a534a[_0x166bfb['name']]={'$like':'%'+_0x21ca45[_0x3704('0x2e')][_0x3704('0x3a')]+'%'};return _0x2a534a;}})});}_0x7b7c9a=_[_0x3704('0x3c')]({},_0x7b7c9a,_0x21ca45['options']);var _0x5aa1c8={'where':_0x7b7c9a[_0x3704('0x37')]};return db[_0x3704('0x28')][_0x3704('0x3d')](_0x5aa1c8)[_0x3704('0x23')](function(_0x32c2f4){_0x27a1eb[_0x3704('0x3d')]=_0x32c2f4;if(_0x21ca45[_0x3704('0x2e')][_0x3704('0x3e')]){_0x7b7c9a[_0x3704('0x3f')]=[{'all':!![]}];}return db[_0x3704('0x28')][_0x3704('0x40')](_0x7b7c9a);})[_0x3704('0x23')](function(_0x68241c){_0x27a1eb[_0x3704('0x41')]=_0x68241c;return _0x27a1eb;})[_0x3704('0x23')](respondWithFilteredResult(_0x460290,_0x7b7c9a))['catch'](handleError(_0x460290,null));};exports[_0x3704('0x42')]=function(_0x740428,_0x5373a5){var _0x445194={'raw':![],'where':{'id':_0x740428[_0x3704('0x43')]['id']}},_0x466df3={};_0x466df3[_0x3704('0x2c')]=_[_0x3704('0x2d')](db[_0x3704('0x28')][_0x3704('0x29')]);_0x466df3[_0x3704('0x2e')]=_[_0x3704('0x2d')](_0x740428['query']);_0x466df3[_0x3704('0x38')]=_[_0x3704('0x2f')](_0x466df3[_0x3704('0x2c')],_0x466df3[_0x3704('0x2e')]);_0x445194[_0x3704('0x30')]=_[_0x3704('0x2f')](_0x466df3[_0x3704('0x2c')],qs['fields'](_0x740428[_0x3704('0x2e')][_0x3704('0x31')]));_0x445194[_0x3704('0x30')]=_0x445194['attributes'][_0x3704('0x32')]?_0x445194[_0x3704('0x30')]:_0x466df3['model'];if(_0x740428['query'][_0x3704('0x3e')]){_0x445194['include']=[{'all':!![]}];}_0x445194=_[_0x3704('0x3c')]({},_0x445194,_0x740428[_0x3704('0x44')]);return db['VtigerAccount'][_0x3704('0x45')](_0x445194)[_0x3704('0x23')](handleEntityNotFound(_0x5373a5,null))['then'](respondWithResult(_0x5373a5,null))[_0x3704('0x46')](handleError(_0x5373a5,null));};exports[_0x3704('0x47')]=function(_0xba31dc,_0x15f97a){return db['VtigerAccount'][_0x3704('0x47')](_0xba31dc[_0x3704('0x48')],{})[_0x3704('0x23')](respondWithResult(_0x15f97a,0xc9))[_0x3704('0x46')](handleError(_0x15f97a,null));};exports[_0x3704('0x49')]=function(_0x16e56e,_0x153296){if(_0x16e56e[_0x3704('0x48')]['id']){delete _0x16e56e[_0x3704('0x48')]['id'];}return db['VtigerAccount'][_0x3704('0x45')]({'where':{'id':_0x16e56e[_0x3704('0x43')]['id']}})[_0x3704('0x23')](handleEntityNotFound(_0x153296,null))['then'](saveUpdates(_0x16e56e['body'],null))[_0x3704('0x23')](respondWithResult(_0x153296,null))[_0x3704('0x46')](handleError(_0x153296,null));};exports['destroy']=function(_0x5e869c,_0x53b8ff){return db[_0x3704('0x28')][_0x3704('0x45')]({'where':{'id':_0x5e869c['params']['id']}})['then'](handleEntityNotFound(_0x53b8ff,null))[_0x3704('0x23')](removeEntity(_0x53b8ff,null))[_0x3704('0x46')](handleError(_0x53b8ff,null));};exports['getConfigurations']=function(_0x59ba64,_0xea176f,_0x3c0e2a){var _0x997957={};var _0x5f1e7c={};var _0x570ff9;var _0x2dc301;return db[_0x3704('0x28')][_0x3704('0x4a')]({'where':{'id':_0x59ba64[_0x3704('0x43')]['id']}})['then'](handleEntityNotFound(_0xea176f,null))[_0x3704('0x23')](function(_0x5ddcb7){if(_0x5ddcb7){_0x570ff9=_0x5ddcb7;_0x5f1e7c[_0x3704('0x2c')]=_[_0x3704('0x2d')](db[_0x3704('0x4b')][_0x3704('0x29')]);_0x5f1e7c[_0x3704('0x2e')]=_[_0x3704('0x2d')](_0x59ba64[_0x3704('0x2e')]);_0x5f1e7c[_0x3704('0x38')]=_[_0x3704('0x2f')](_0x5f1e7c[_0x3704('0x2c')],_0x5f1e7c[_0x3704('0x2e')]);_0x997957[_0x3704('0x30')]=_[_0x3704('0x2f')](_0x5f1e7c[_0x3704('0x2c')],qs[_0x3704('0x31')](_0x59ba64[_0x3704('0x2e')][_0x3704('0x31')]));_0x997957[_0x3704('0x30')]=_0x997957[_0x3704('0x30')]['length']?_0x997957[_0x3704('0x30')]:_0x5f1e7c[_0x3704('0x2c')];_0x997957[_0x3704('0x35')]=qs[_0x3704('0x36')](_0x59ba64[_0x3704('0x2e')]['sort']);_0x997957[_0x3704('0x37')]=qs['filters'](_['pick'](_0x59ba64[_0x3704('0x2e')],_0x5f1e7c[_0x3704('0x38')]));if(_0x59ba64[_0x3704('0x2e')][_0x3704('0x3a')]){_0x997957['where']=_[_0x3704('0x3c')](_0x997957[_0x3704('0x37')],{'$or':_[_0x3704('0x27')](_0x997957[_0x3704('0x30')],function(_0x1dbffc){var _0x5c2286={};_0x5c2286[_0x1dbffc]={'$like':'%'+_0x59ba64[_0x3704('0x2e')][_0x3704('0x3a')]+'%'};return _0x5c2286;})});}_0x997957=_[_0x3704('0x3c')]({},_0x997957,_0x59ba64[_0x3704('0x44')]);return _0x570ff9[_0x3704('0x4c')](_0x997957);}})['then'](function(_0x5a3fea){if(_0x5a3fea){_0x2dc301=_0x5a3fea['length'];if(!_0x59ba64['query'][_0x3704('0x33')](_0x3704('0x34'))){_0x997957['limit']=qs[_0x3704('0x1d')](_0x59ba64['query']['limit']);_0x997957[_0x3704('0x1b')]=qs['offset'](_0x59ba64[_0x3704('0x2e')][_0x3704('0x1b')]);}return _0x570ff9[_0x3704('0x4c')](_0x997957);}})[_0x3704('0x23')](function(_0x31e17a){if(_0x31e17a){return _0x31e17a?{'count':_0x2dc301,'rows':_0x31e17a}:null;}})[_0x3704('0x23')](respondWithResult(_0xea176f,null))['catch'](handleError(_0xea176f,null));};exports[_0x3704('0x4d')]=function(_0x57efb9,_0x33fe49,_0x35ef14){if(_0x57efb9[_0x3704('0x48')]['id']){delete _0x57efb9[_0x3704('0x48')]['id'];}return db[_0x3704('0x28')]['findOne']({'where':{'id':_0x57efb9[_0x3704('0x43')]['id']}})['then'](handleEntityNotFound(_0x33fe49,null))[_0x3704('0x23')](function(_0x391f3e){if(_0x391f3e){_0x57efb9[_0x3704('0x48')]['AccountId']=_0x391f3e['id'];_0x57efb9[_0x3704('0x48')][_0x3704('0x4e')]=integrations['getSubjects'](_0x57efb9[_0x3704('0x48')]['channel'],_0x57efb9[_0x3704('0x48')][_0x3704('0x2a')]);_0x57efb9[_0x3704('0x48')]['Descriptions']=integrations[_0x3704('0x4f')](_0x57efb9[_0x3704('0x48')][_0x3704('0x50')],_0x57efb9['body']['type']);return db[_0x3704('0x4b')][_0x3704('0x47')](_0x57efb9[_0x3704('0x48')],{'include':[{'model':db[_0x3704('0x51')],'as':_0x3704('0x4e')},{'model':db[_0x3704('0x51')],'as':_0x3704('0x52')}]});}return null;})[_0x3704('0x23')](respondWithResult(_0x33fe49,null))[_0x3704('0x46')](handleError(_0x33fe49,null));};var md5=require(_0x3704('0x53'));exports[_0x3704('0x54')]=function(_0x498155,_0x40148f,_0x5a0c55){var _0x1b3d7b=null;var _0x988f90=null;var _0x34e68e=null;var _0x27be6d=null;var _0x41618f='';return db['VtigerAccount']['findOne']({'where':{'id':_0x498155[_0x3704('0x43')]['id']},'attributes':['id','name',_0x3704('0x55'),_0x3704('0x56'),_0x3704('0x57'),_0x3704('0x58'),'serverUrl',_0x3704('0x59')]})[_0x3704('0x23')](handleEntityNotFound(_0x40148f,null))[_0x3704('0x23')](function(_0x48ef28){if(_0x48ef28){_0x1b3d7b=_0x48ef28[_0x3704('0x55')];_0x988f90=_0x48ef28[_0x3704('0x59')];_0x34e68e=_0x48ef28[_0x3704('0x57')];_0x41618f=_0x48ef28['remoteUri'];var _0x5012fa=_0x41618f[_0x3704('0x5a')](-0x1);if(_0x5012fa==='/'){_0x41618f=_0x41618f['substring'](0x0,_0x41618f[_0x3704('0x5b')](_0x5012fa));}_0x27be6d=util[_0x3704('0x5c')](_0x3704('0x5d'),_0x41618f);var _0x2dac7e={'method':_0x3704('0x5e'),'uri':_0x27be6d,'qs':{'operation':_0x3704('0x5f'),'username':_0x48ef28[_0x3704('0x55')]},'json':!![]};return rp(_0x2dac7e);}})[_0x3704('0x23')](function(_0x3dc86b){if(_0x3dc86b[_0x3704('0x60')]){var _0x2e544a={'method':_0x3704('0x61'),'uri':_0x27be6d,'form':{'operation':_0x3704('0x62'),'username':_0x1b3d7b,'accessKey':md5(_0x3dc86b[_0x3704('0x63')]['token']+_0x988f90)},'json':!![]};return rp(_0x2e544a);}})[_0x3704('0x23')](function(_0x4d7c12){if(_0x4d7c12[_0x3704('0x60')]){var _0x5aa5fe={'method':_0x3704('0x5e'),'uri':_0x27be6d,'qs':{'operation':_0x3704('0x64'),'username':_0x1b3d7b,'sessionName':_0x4d7c12[_0x3704('0x63')][_0x3704('0x65')],'elementType':_0x34e68e},'json':!![]};return rp(_0x5aa5fe);}})[_0x3704('0x23')](function(_0x2778a7){if(_0x2778a7['success']){var _0x2ba43e=['autogenerated',_0x3704('0x66'),_0x3704('0x67')];_[_0x3704('0x68')](_0x2778a7[_0x3704('0x63')]['fields'],function(_0x2c2ed7){return _0x2ba43e['includes'](_0x2c2ed7[_0x3704('0x2a')]['name']);});_[_0x3704('0x68')](_0x2778a7[_0x3704('0x63')][_0x3704('0x31')],function(_0x472def){return _0x472def[_0x3704('0x69')]===_0x3704('0x6a');});return{'count':_0x2778a7['result'][_0x3704('0x31')][_0x3704('0x32')],'rows':_['map'](_0x2778a7[_0x3704('0x63')][_0x3704('0x31')],function(_0x49d54f){return{'id':_0x49d54f[_0x3704('0x6b')],'name':_0x49d54f[_0x3704('0x6c')],'custom':_[_0x3704('0x6d')](_0x49d54f[_0x3704('0x6b')],_0x3704('0x6e'))?!![]:![],'options':_0x49d54f[_0x3704('0x2a')][_0x3704('0x6b')]===_0x3704('0x6f')&&_0x49d54f[_0x3704('0x2a')][_0x3704('0x70')]['length']>0x0?_[_0x3704('0x27')](_0x49d54f[_0x3704('0x2a')][_0x3704('0x70')],function(_0x5742e5){return{'name':_0x5742e5['label'],'value':_0x5742e5['value']};}):[]};})};}})[_0x3704('0x23')](respondWithResult(_0x40148f,null))['catch'](function(_0x2aadb1){console[_0x3704('0x71')](_0x3704('0x72')+_0x2aadb1);var _0x15f51b=_0x498155[_0x3704('0x2e')][_0x3704('0x73')]?0x1f4:_0x2aadb1[_0x3704('0x74')]||0x1f4;logger[_0x3704('0x75')](_0x3704('0x76'),_0x3704('0x54'),_0x15f51b,JSON['stringify'](_0x2aadb1));delete _0x2aadb1[_0x3704('0x6b')];if(_0x15f51b===0x191){_0x15f51b=0x190;}_0x40148f[_0x3704('0x19')](_0x15f51b)[_0x3704('0x25')](_0x498155['query'][_0x3704('0x73')]?{'message':_0x3704('0x77'),'statusCode':_0x2aadb1[_0x3704('0x74')]}:_0x2aadb1);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbeed=['../../components/integrations/configuration','exports','define','VtigerAccount','int_vtiger_accounts','lodash','../../config/logger','api','bluebird','request-promise','path'];(function(_0x1c0820,_0x285c3b){var _0x2fa141=function(_0x4efcc7){while(--_0x4efcc7){_0x1c0820['push'](_0x1c0820['shift']());}};_0x2fa141(++_0x285c3b);}(_0xbeed,0x9f));var _0xdbee=function(_0x2dafbe,_0x5d04de){_0x2dafbe=_0x2dafbe-0x0;var _0x58a45a=_0xbeed[_0x2dafbe];return _0x58a45a;};'use strict';var _=require(_0xdbee('0x0'));var util=require('util');var logger=require(_0xdbee('0x1'))(_0xdbee('0x2'));var moment=require('moment');var BPromise=require(_0xdbee('0x3'));var rp=require(_0xdbee('0x4'));var fs=require('fs');var path=require(_0xdbee('0x5'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require('./intVtigerAccount.attributes');var integrations=require(_0xdbee('0x6'));module[_0xdbee('0x7')]=function(_0x42daf1,_0x3a5944){return _0x42daf1[_0xdbee('0x8')](_0xdbee('0x9'),attributes,{'tableName':_0xdbee('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xe24e=['util','../../config/logger','api','moment','bluebird','request-promise','rimraf','exports','define','VtigerAccount','lodash'];(function(_0x511319,_0x5aa3c9){var _0x5e6304=function(_0x4e9102){while(--_0x4e9102){_0x511319['push'](_0x511319['shift']());}};_0x5e6304(++_0x5aa3c9);}(_0xe24e,0x15f));var _0xee24=function(_0x5c2e3e,_0x26ecd3){_0x5c2e3e=_0x5c2e3e-0x0;var _0x53f64a=_0xe24e[_0x5c2e3e];return _0x53f64a;};'use strict';var _=require(_0xee24('0x0'));var util=require(_0xee24('0x1'));var logger=require(_0xee24('0x2'))(_0xee24('0x3'));var moment=require(_0xee24('0x4'));var BPromise=require(_0xee24('0x5'));var rp=require(_0xee24('0x6'));var fs=require('fs');var path=require('path');var rimraf=require(_0xee24('0x7'));var config=require('../../config/environment');var attributes=require('./intVtigerAccount.attributes');var integrations=require('../../components/integrations/configuration');module[_0xee24('0x8')]=function(_0x20c8a0,_0x44f46c){return _0x20c8a0[_0xee24('0x9')](_0xee24('0xa'),attributes,{'tableName':'int_vtiger_accounts','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xefda=['options','raw','attributes','include','map','model','ShowVtigerAccount','VtigerAccount','find','where','lodash','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','then','request\x20sent','debug','VtigerAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','VtigerAccount,\x20%s,\x20%s','message','info','result','catch','GetVtigerAccount','findAll'];(function(_0xb668d8,_0x244160){var _0x2ddaa4=function(_0x1809eb){while(--_0x1809eb){_0xb668d8['push'](_0xb668d8['shift']());}};_0x2ddaa4(++_0x244160);}(_0xefda,0x96));var _0xaefd=function(_0x21e5f7,_0x341d8f){_0x21e5f7=_0x21e5f7-0x0;var _0x4120ca=_0xefda[_0x21e5f7];return _0x4120ca;};'use strict';var _=require(_0xaefd('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0xaefd('0x1'));var rs=require(_0xaefd('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xaefd('0x3'))['db'];var utils=require(_0xaefd('0x4'));var logger=require(_0xaefd('0x5'))(_0xaefd('0x6'));var config=require(_0xaefd('0x7'));var jayson=require(_0xaefd('0x8'));var client=jayson['client'][_0xaefd('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x3b9736,_0x24d10c,_0x1d76f3){return new BPromise(function(_0x4ce248,_0x15193c){return client[_0xaefd('0xa')](_0x3b9736,_0x1d76f3)[_0xaefd('0xb')](function(_0x4d44ed){logger['info']('VtigerAccount,\x20%s,\x20%s',_0x24d10c,_0xaefd('0xc'));logger[_0xaefd('0xd')](_0xaefd('0xe'),_0x24d10c,_0xaefd('0xc'),JSON[_0xaefd('0xf')](_0x4d44ed));if(_0x4d44ed[_0xaefd('0x10')]){if(_0x4d44ed[_0xaefd('0x10')][_0xaefd('0x11')]===0x1f4){logger[_0xaefd('0x10')](_0xaefd('0x12'),_0x24d10c,_0x4d44ed[_0xaefd('0x10')]['message']);return _0x15193c(_0x4d44ed[_0xaefd('0x10')]['message']);}logger[_0xaefd('0x10')](_0xaefd('0x12'),_0x24d10c,_0x4d44ed[_0xaefd('0x10')][_0xaefd('0x13')]);return _0x4ce248(_0x4d44ed['error'][_0xaefd('0x13')]);}else{logger[_0xaefd('0x14')](_0xaefd('0x12'),_0x24d10c,_0xaefd('0xc'));_0x4ce248(_0x4d44ed[_0xaefd('0x15')][_0xaefd('0x13')]);}})[_0xaefd('0x16')](function(_0x23d736){logger['error'](_0xaefd('0x12'),_0x24d10c,_0x23d736);_0x15193c(_0x23d736);});});}exports[_0xaefd('0x17')]=function(_0x9748f4){var _0x1737a1=this;return new Promise(function(_0x2db61b,_0x244956){return db['VtigerAccount'][_0xaefd('0x18')]({'raw':_0x9748f4[_0xaefd('0x19')]?_0x9748f4[_0xaefd('0x19')][_0xaefd('0x1a')]===undefined?!![]:![]:!![],'where':_0x9748f4[_0xaefd('0x19')]?_0x9748f4[_0xaefd('0x19')]['where']||null:null,'attributes':_0x9748f4[_0xaefd('0x19')]?_0x9748f4[_0xaefd('0x19')][_0xaefd('0x1b')]||null:null,'limit':_0x9748f4[_0xaefd('0x19')]?_0x9748f4[_0xaefd('0x19')]['limit']||null:null,'include':_0x9748f4['options']?_0x9748f4['options'][_0xaefd('0x1c')]?_[_0xaefd('0x1d')](_0x9748f4[_0xaefd('0x19')]['include'],function(_0x23060f){return{'model':db[_0x23060f['model']],'as':_0x23060f['as'],'attributes':_0x23060f[_0xaefd('0x1b')],'include':_0x23060f[_0xaefd('0x1c')]?_[_0xaefd('0x1d')](_0x23060f['include'],function(_0x435413){return{'model':db[_0x435413[_0xaefd('0x1e')]],'as':_0x435413['as'],'attributes':_0x435413[_0xaefd('0x1b')],'include':_0x435413[_0xaefd('0x1c')]?_[_0xaefd('0x1d')](_0x435413['include'],function(_0x2fe27e){return{'model':db[_0x2fe27e['model']],'as':_0x2fe27e['as'],'attributes':_0x2fe27e[_0xaefd('0x1b')]};}):[]};}):[]};}):[]:[]})[_0xaefd('0xb')](function(_0x5470bd){logger[_0xaefd('0x14')](_0xaefd('0x17'),_0x9748f4);logger['debug'](_0xaefd('0x17'),_0x9748f4,JSON[_0xaefd('0xf')](_0x5470bd));_0x2db61b(_0x5470bd);})[_0xaefd('0x16')](function(_0x4c0898){logger[_0xaefd('0x10')]('GetVtigerAccount',_0x4c0898[_0xaefd('0x13')],_0x9748f4);_0x244956(_0x1737a1['error'](0x1f4,_0x4c0898['message']));});});};exports[_0xaefd('0x1f')]=function(_0x1b470c){var _0x4a032d=this;return new Promise(function(_0x578378,_0x4ee0c1){return db[_0xaefd('0x20')][_0xaefd('0x21')]({'raw':_0x1b470c['options']?_0x1b470c['options'][_0xaefd('0x1a')]===undefined?!![]:![]:!![],'where':_0x1b470c[_0xaefd('0x19')]?_0x1b470c[_0xaefd('0x19')][_0xaefd('0x22')]||null:null,'attributes':_0x1b470c['options']?_0x1b470c[_0xaefd('0x19')][_0xaefd('0x1b')]||null:null,'include':_0x1b470c[_0xaefd('0x19')]?_0x1b470c[_0xaefd('0x19')][_0xaefd('0x1c')]?_[_0xaefd('0x1d')](_0x1b470c[_0xaefd('0x19')][_0xaefd('0x1c')],function(_0x3e3fe2){return{'model':db[_0x3e3fe2[_0xaefd('0x1e')]],'as':_0x3e3fe2['as'],'attributes':_0x3e3fe2[_0xaefd('0x1b')],'include':_0x3e3fe2[_0xaefd('0x1c')]?_[_0xaefd('0x1d')](_0x3e3fe2[_0xaefd('0x1c')],function(_0x1ffec4){return{'model':db[_0x1ffec4[_0xaefd('0x1e')]],'as':_0x1ffec4['as'],'attributes':_0x1ffec4['attributes'],'include':_0x1ffec4[_0xaefd('0x1c')]?_[_0xaefd('0x1d')](_0x1ffec4[_0xaefd('0x1c')],function(_0x59aec9){return{'model':db[_0x59aec9[_0xaefd('0x1e')]],'as':_0x59aec9['as'],'attributes':_0x59aec9['attributes']};}):[]};}):[]};}):[]:[]})[_0xaefd('0xb')](function(_0x3498d9){logger[_0xaefd('0x14')](_0xaefd('0x1f'),_0x1b470c);logger[_0xaefd('0xd')](_0xaefd('0x1f'),_0x1b470c,JSON[_0xaefd('0xf')](_0x3498d9));_0x578378(_0x3498d9);})[_0xaefd('0x16')](function(_0x407bea){logger[_0xaefd('0x10')](_0xaefd('0x1f'),_0x407bea[_0xaefd('0x13')],_0x1b470c);_0x4ee0c1(_0x4a032d[_0xaefd('0x10')](0x1f4,_0x407bea[_0xaefd('0x13')]));});});};
\ No newline at end of file
+var _0xd914=['raw','where','attributes','limit','include','map','model','then','ShowVtigerAccount','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','client','http','request','info','VtigerAccount,\x20%s,\x20%s','request\x20sent','debug','VtigerAccount,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','GetVtigerAccount','VtigerAccount','options'];(function(_0x2e7f96,_0x2ffe43){var _0x315277=function(_0x26bcae){while(--_0x26bcae){_0x2e7f96['push'](_0x2e7f96['shift']());}};_0x315277(++_0x2ffe43);}(_0xd914,0x17f));var _0x4d91=function(_0x3cea78,_0x4a6751){_0x3cea78=_0x3cea78-0x0;var _0x33b66b=_0xd914[_0x3cea78];return _0x33b66b;};'use strict';var _=require(_0x4d91('0x0'));var util=require(_0x4d91('0x1'));var moment=require('moment');var BPromise=require(_0x4d91('0x2'));var rs=require(_0x4d91('0x3'));var fs=require('fs');var Redis=require(_0x4d91('0x4'));var db=require(_0x4d91('0x5'))['db'];var utils=require(_0x4d91('0x6'));var logger=require(_0x4d91('0x7'))('rpc');var config=require(_0x4d91('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x4d91('0x9')][_0x4d91('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x175ce3,_0x27c0d5,_0x22f2a4){return new BPromise(function(_0x150767,_0x3016c0){return client[_0x4d91('0xb')](_0x175ce3,_0x22f2a4)['then'](function(_0x37bde4){logger[_0x4d91('0xc')](_0x4d91('0xd'),_0x27c0d5,_0x4d91('0xe'));logger[_0x4d91('0xf')](_0x4d91('0x10'),_0x27c0d5,'request\x20sent',JSON['stringify'](_0x37bde4));if(_0x37bde4[_0x4d91('0x11')]){if(_0x37bde4[_0x4d91('0x11')][_0x4d91('0x12')]===0x1f4){logger[_0x4d91('0x11')](_0x4d91('0xd'),_0x27c0d5,_0x37bde4[_0x4d91('0x11')]['message']);return _0x3016c0(_0x37bde4['error'][_0x4d91('0x13')]);}logger[_0x4d91('0x11')](_0x4d91('0xd'),_0x27c0d5,_0x37bde4[_0x4d91('0x11')][_0x4d91('0x13')]);return _0x150767(_0x37bde4[_0x4d91('0x11')][_0x4d91('0x13')]);}else{logger['info'](_0x4d91('0xd'),_0x27c0d5,_0x4d91('0xe'));_0x150767(_0x37bde4[_0x4d91('0x14')][_0x4d91('0x13')]);}})[_0x4d91('0x15')](function(_0x554ca8){logger[_0x4d91('0x11')](_0x4d91('0xd'),_0x27c0d5,_0x554ca8);_0x3016c0(_0x554ca8);});});}exports[_0x4d91('0x16')]=function(_0x44b9a7){var _0x4cfa40=this;return new Promise(function(_0x350e23,_0x3b579b){return db[_0x4d91('0x17')]['findAll']({'raw':_0x44b9a7[_0x4d91('0x18')]?_0x44b9a7[_0x4d91('0x18')][_0x4d91('0x19')]===undefined?!![]:![]:!![],'where':_0x44b9a7[_0x4d91('0x18')]?_0x44b9a7[_0x4d91('0x18')][_0x4d91('0x1a')]||null:null,'attributes':_0x44b9a7[_0x4d91('0x18')]?_0x44b9a7[_0x4d91('0x18')][_0x4d91('0x1b')]||null:null,'limit':_0x44b9a7[_0x4d91('0x18')]?_0x44b9a7['options'][_0x4d91('0x1c')]||null:null,'include':_0x44b9a7['options']?_0x44b9a7['options'][_0x4d91('0x1d')]?_[_0x4d91('0x1e')](_0x44b9a7[_0x4d91('0x18')][_0x4d91('0x1d')],function(_0x7d8cbf){return{'model':db[_0x7d8cbf[_0x4d91('0x1f')]],'as':_0x7d8cbf['as'],'attributes':_0x7d8cbf[_0x4d91('0x1b')],'include':_0x7d8cbf[_0x4d91('0x1d')]?_['map'](_0x7d8cbf['include'],function(_0x1ee6b3){return{'model':db[_0x1ee6b3[_0x4d91('0x1f')]],'as':_0x1ee6b3['as'],'attributes':_0x1ee6b3[_0x4d91('0x1b')],'include':_0x1ee6b3[_0x4d91('0x1d')]?_[_0x4d91('0x1e')](_0x1ee6b3[_0x4d91('0x1d')],function(_0x14bdb4){return{'model':db[_0x14bdb4['model']],'as':_0x14bdb4['as'],'attributes':_0x14bdb4[_0x4d91('0x1b')]};}):[]};}):[]};}):[]:[]})[_0x4d91('0x20')](function(_0x12ac74){logger['info']('GetVtigerAccount',_0x44b9a7);logger[_0x4d91('0xf')](_0x4d91('0x16'),_0x44b9a7,JSON['stringify'](_0x12ac74));_0x350e23(_0x12ac74);})['catch'](function(_0x42d5a0){logger[_0x4d91('0x11')](_0x4d91('0x16'),_0x42d5a0[_0x4d91('0x13')],_0x44b9a7);_0x3b579b(_0x4cfa40['error'](0x1f4,_0x42d5a0[_0x4d91('0x13')]));});});};exports[_0x4d91('0x21')]=function(_0x468e95){var _0xee7535=this;return new Promise(function(_0xa63422,_0x3466f3){return db[_0x4d91('0x17')]['find']({'raw':_0x468e95[_0x4d91('0x18')]?_0x468e95['options']['raw']===undefined?!![]:![]:!![],'where':_0x468e95[_0x4d91('0x18')]?_0x468e95[_0x4d91('0x18')]['where']||null:null,'attributes':_0x468e95[_0x4d91('0x18')]?_0x468e95[_0x4d91('0x18')][_0x4d91('0x1b')]||null:null,'include':_0x468e95[_0x4d91('0x18')]?_0x468e95[_0x4d91('0x18')]['include']?_[_0x4d91('0x1e')](_0x468e95[_0x4d91('0x18')][_0x4d91('0x1d')],function(_0x2b8131){return{'model':db[_0x2b8131[_0x4d91('0x1f')]],'as':_0x2b8131['as'],'attributes':_0x2b8131[_0x4d91('0x1b')],'include':_0x2b8131['include']?_[_0x4d91('0x1e')](_0x2b8131[_0x4d91('0x1d')],function(_0x5c2247){return{'model':db[_0x5c2247[_0x4d91('0x1f')]],'as':_0x5c2247['as'],'attributes':_0x5c2247[_0x4d91('0x1b')],'include':_0x5c2247[_0x4d91('0x1d')]?_['map'](_0x5c2247[_0x4d91('0x1d')],function(_0x2c8b54){return{'model':db[_0x2c8b54[_0x4d91('0x1f')]],'as':_0x2c8b54['as'],'attributes':_0x2c8b54[_0x4d91('0x1b')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x64cee3){logger[_0x4d91('0xc')](_0x4d91('0x21'),_0x468e95);logger[_0x4d91('0xf')]('ShowVtigerAccount',_0x468e95,JSON['stringify'](_0x64cee3));_0xa63422(_0x64cee3);})[_0x4d91('0x15')](function(_0x3dac76){logger['error'](_0x4d91('0x21'),_0x3dac76[_0x4d91('0x13')],_0x468e95);_0x3466f3(_0xee7535[_0x4d91('0x11')](0x1f4,_0x3dac76[_0x4d91('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x867f=['update','delete','exports','multer','util','path','connect-timeout','Router','fs-extra','../../components/interaction/service','./intVtigerConfiguration.controller','get','/:id','isAuthenticated','show','/:id/fields','/:id/subjects','getSubjects','create','put'];(function(_0x4d3a92,_0x3ed436){var _0xe6e0ed=function(_0x732cdd){while(--_0x732cdd){_0x4d3a92['push'](_0x4d3a92['shift']());}};_0xe6e0ed(++_0x3ed436);}(_0x867f,0x12f));var _0xf867=function(_0x459e81,_0x52aeb0){_0x459e81=_0x459e81-0x0;var _0x4fac6a=_0x867f[_0x459e81];return _0x4fac6a;};'use strict';var multer=require(_0xf867('0x0'));var util=require(_0xf867('0x1'));var path=require(_0xf867('0x2'));var timeout=require(_0xf867('0x3'));var express=require('express');var router=express[_0xf867('0x4')]();var fs_extra=require(_0xf867('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0xf867('0x6'));var config=require('../../config/environment');var controller=require(_0xf867('0x7'));router['get']('/',auth['isAuthenticated'](),controller['index']);router[_0xf867('0x8')](_0xf867('0x9'),auth[_0xf867('0xa')](),controller[_0xf867('0xb')]);router[_0xf867('0x8')](_0xf867('0xc'),auth[_0xf867('0xa')](),controller['getFields']);router['get'](_0xf867('0xd'),auth['isAuthenticated'](),controller[_0xf867('0xe')]);router[_0xf867('0x8')]('/:id/descriptions',auth['isAuthenticated'](),controller['getDescriptions']);router['post']('/',auth['isAuthenticated'](),controller[_0xf867('0xf')]);router[_0xf867('0x10')](_0xf867('0x9'),auth['isAuthenticated'](),controller[_0xf867('0x11')]);router[_0xf867('0x12')](_0xf867('0x9'),auth[_0xf867('0xa')](),controller['destroy']);module[_0xf867('0x13')]=router;
\ No newline at end of file
+var _0x911b=['fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','/:id','show','/:id/fields','getFields','/:id/subjects','getSubjects','getDescriptions','post','create','put','update','delete','destroy','exports','multer','util','express','Router'];(function(_0x48779a,_0x2afba6){var _0x4af39b=function(_0x3b5d26){while(--_0x3b5d26){_0x48779a['push'](_0x48779a['shift']());}};_0x4af39b(++_0x2afba6);}(_0x911b,0xa4));var _0xb911=function(_0x1c556b,_0x5cbd69){_0x1c556b=_0x1c556b-0x0;var _0x345bc0=_0x911b[_0x1c556b];return _0x345bc0;};'use strict';var multer=require(_0xb911('0x0'));var util=require(_0xb911('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0xb911('0x2'));var router=express[_0xb911('0x3')]();var fs_extra=require(_0xb911('0x4'));var auth=require(_0xb911('0x5'));var interaction=require(_0xb911('0x6'));var config=require(_0xb911('0x7'));var controller=require('./intVtigerConfiguration.controller');router[_0xb911('0x8')]('/',auth[_0xb911('0x9')](),controller['index']);router[_0xb911('0x8')](_0xb911('0xa'),auth[_0xb911('0x9')](),controller[_0xb911('0xb')]);router[_0xb911('0x8')](_0xb911('0xc'),auth['isAuthenticated'](),controller[_0xb911('0xd')]);router[_0xb911('0x8')](_0xb911('0xe'),auth[_0xb911('0x9')](),controller[_0xb911('0xf')]);router[_0xb911('0x8')]('/:id/descriptions',auth[_0xb911('0x9')](),controller[_0xb911('0x10')]);router[_0xb911('0x11')]('/',auth[_0xb911('0x9')](),controller[_0xb911('0x12')]);router[_0xb911('0x13')](_0xb911('0xa'),auth[_0xb911('0x9')](),controller[_0xb911('0x14')]);router[_0xb911('0x15')](_0xb911('0xa'),auth[_0xb911('0x9')](),controller[_0xb911('0x16')]);module[_0xb911('0x17')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4cc1=['STRING','sequelize','exports'];(function(_0x187b5f,_0x5b3e6a){var _0x2ec20c=function(_0x2c1a96){while(--_0x2c1a96){_0x187b5f['push'](_0x187b5f['shift']());}};_0x2ec20c(++_0x5b3e6a);}(_0x4cc1,0x8e));var _0x14cc=function(_0x3df1e9,_0x3cd30e){_0x3df1e9=_0x3df1e9-0x0;var _0xd6b371=_0x4cc1[_0x3df1e9];return _0xd6b371;};'use strict';var Sequelize=require(_0x14cc('0x0'));module[_0x14cc('0x1')]={'name':{'type':Sequelize[_0x14cc('0x2')]},'description':{'type':Sequelize[_0x14cc('0x2')]}};
\ No newline at end of file
+var _0x1af1=['exports','STRING','sequelize'];(function(_0x3e69ae,_0x366e8d){var _0x3d7f42=function(_0x5df093){while(--_0x5df093){_0x3e69ae['push'](_0x3e69ae['shift']());}};_0x3d7f42(++_0x366e8d);}(_0x1af1,0xb3));var _0x11af=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x1af1[_0x3dd15e];return _0x231fd0;};'use strict';var Sequelize=require(_0x11af('0x0'));module[_0x11af('0x1')]={'name':{'type':Sequelize[_0x11af('0x2')]},'description':{'type':Sequelize[_0x11af('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xad36=['offset','undefined','limit','count','set','Content-Range','apply','destroy','then','error','stack','name','send','index','map','VtigerConfiguration','rawAttributes','fieldName','type','key','query','keys','filters','model','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','find','create','update','body','getFields','findOne','getSubjects','VtigerField','getDescriptions','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','lodash','squel','crypto','jsforce','desk.js','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/license/util','../../mysqldb','sendStatus','status','end','json'];(function(_0x1673e0,_0x40d890){var _0x527a39=function(_0x5a06fa){while(--_0x5a06fa){_0x1673e0['push'](_0x1673e0['shift']());}};_0x527a39(++_0x40d890);}(_0xad36,0x1c6));var _0x6ad3=function(_0x2ec52b,_0x412bf1){_0x2ec52b=_0x2ec52b-0x0;var _0x95ea0e=_0xad36[_0x2ec52b];return _0x95ea0e;};'use strict';var emlformat=require(_0x6ad3('0x0'));var rimraf=require(_0x6ad3('0x1'));var zipdir=require(_0x6ad3('0x2'));var jsonpatch=require(_0x6ad3('0x3'));var rp=require(_0x6ad3('0x4'));var moment=require(_0x6ad3('0x5'));var BPromise=require(_0x6ad3('0x6'));var Mustache=require(_0x6ad3('0x7'));var util=require(_0x6ad3('0x8'));var path=require(_0x6ad3('0x9'));var sox=require('sox');var csv=require(_0x6ad3('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x6ad3('0xb'));var squel=require(_0x6ad3('0xc'));var crypto=require(_0x6ad3('0xd'));var jsforce=require(_0x6ad3('0xe'));var deskjs=require(_0x6ad3('0xf'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x6ad3('0x10'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x6ad3('0x11'));var hardwareService=require(_0x6ad3('0x12'));var logger=require(_0x6ad3('0x13'))('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x6ad3('0x14'));var db=require(_0x6ad3('0x15'))['db'];function respondWithStatusCode(_0x4035bd,_0x18100a){_0x18100a=_0x18100a||0xcc;return function(_0x326d49){if(_0x326d49){return _0x4035bd[_0x6ad3('0x16')](_0x18100a);}return _0x4035bd[_0x6ad3('0x17')](_0x18100a)[_0x6ad3('0x18')]();};}function respondWithResult(_0x1ccb3c,_0x47bbf3){_0x47bbf3=_0x47bbf3||0xc8;return function(_0x35833b){if(_0x35833b){return _0x1ccb3c[_0x6ad3('0x17')](_0x47bbf3)[_0x6ad3('0x19')](_0x35833b);}};}function respondWithFilteredResult(_0x4cea2b,_0xb159f){return function(_0x3cdc0a){if(_0x3cdc0a){var _0x3c073e=typeof _0xb159f[_0x6ad3('0x1a')]===_0x6ad3('0x1b')&&typeof _0xb159f[_0x6ad3('0x1c')]===_0x6ad3('0x1b');var _0x152e15=_0x3cdc0a[_0x6ad3('0x1d')];var _0x3ecf8e=_0x3c073e?0x0:_0xb159f[_0x6ad3('0x1a')];var _0x18d648=_0x3c073e?_0x3cdc0a[_0x6ad3('0x1d')]:_0xb159f[_0x6ad3('0x1a')]+_0xb159f[_0x6ad3('0x1c')];var _0x42d8da;if(_0x18d648>=_0x152e15){_0x18d648=_0x152e15;_0x42d8da=0xc8;}else{_0x42d8da=0xce;}_0x4cea2b[_0x6ad3('0x17')](_0x42d8da);return _0x4cea2b[_0x6ad3('0x1e')](_0x6ad3('0x1f'),_0x3ecf8e+'-'+_0x18d648+'/'+_0x152e15)[_0x6ad3('0x19')](_0x3cdc0a);}return null;};}function patchUpdates(_0x222761){return function(_0x288cb3){try{jsonpatch[_0x6ad3('0x20')](_0x288cb3,_0x222761,!![]);}catch(_0x32201c){return BPromise['reject'](_0x32201c);}return _0x288cb3['save']();};}function saveUpdates(_0x569edd,_0x186283){return function(_0x4ed0c4){if(_0x4ed0c4){return _0x4ed0c4['update'](_0x569edd)['then'](function(_0x3245f9){return _0x3245f9;});}return null;};}function removeEntity(_0x151ffc,_0x4d5fa0){return function(_0x34ac08){if(_0x34ac08){return _0x34ac08[_0x6ad3('0x21')]()[_0x6ad3('0x22')](function(){_0x151ffc['status'](0xcc)[_0x6ad3('0x18')]();});}};}function handleEntityNotFound(_0x1cc6d8,_0x3f2e97){return function(_0x36c885){if(!_0x36c885){_0x1cc6d8[_0x6ad3('0x16')](0x194);}return _0x36c885;};}function handleError(_0x4ade80,_0x2a7d67){_0x2a7d67=_0x2a7d67||0x1f4;return function(_0x56c0af){logger[_0x6ad3('0x23')](_0x56c0af[_0x6ad3('0x24')]);if(_0x56c0af[_0x6ad3('0x25')]){delete _0x56c0af['name'];}_0x4ade80['status'](_0x2a7d67)[_0x6ad3('0x26')](_0x56c0af);};}exports[_0x6ad3('0x27')]=function(_0x2d0df8,_0xb6a31c){var _0x50ef80={},_0x595c90={},_0x820b3={'count':0x0,'rows':[]};var _0x10df74=_[_0x6ad3('0x28')](db[_0x6ad3('0x29')][_0x6ad3('0x2a')],function(_0x1a8bed){return{'name':_0x1a8bed[_0x6ad3('0x2b')],'type':_0x1a8bed[_0x6ad3('0x2c')][_0x6ad3('0x2d')]};});_0x595c90['model']=_[_0x6ad3('0x28')](_0x10df74,_0x6ad3('0x25'));_0x595c90[_0x6ad3('0x2e')]=_[_0x6ad3('0x2f')](_0x2d0df8[_0x6ad3('0x2e')]);_0x595c90[_0x6ad3('0x30')]=_['intersection'](_0x595c90[_0x6ad3('0x31')],_0x595c90[_0x6ad3('0x2e')]);_0x50ef80['attributes']=_[_0x6ad3('0x32')](_0x595c90['model'],qs['fields'](_0x2d0df8[_0x6ad3('0x2e')][_0x6ad3('0x33')]));_0x50ef80[_0x6ad3('0x34')]=_0x50ef80['attributes'][_0x6ad3('0x35')]?_0x50ef80['attributes']:_0x595c90['model'];if(!_0x2d0df8[_0x6ad3('0x2e')][_0x6ad3('0x36')](_0x6ad3('0x37'))){_0x50ef80['limit']=qs[_0x6ad3('0x1c')](_0x2d0df8[_0x6ad3('0x2e')][_0x6ad3('0x1c')]);_0x50ef80[_0x6ad3('0x1a')]=qs[_0x6ad3('0x1a')](_0x2d0df8[_0x6ad3('0x2e')][_0x6ad3('0x1a')]);}_0x50ef80[_0x6ad3('0x38')]=qs[_0x6ad3('0x39')](_0x2d0df8[_0x6ad3('0x2e')][_0x6ad3('0x39')]);_0x50ef80[_0x6ad3('0x3a')]=qs[_0x6ad3('0x30')](_[_0x6ad3('0x3b')](_0x2d0df8[_0x6ad3('0x2e')],_0x595c90[_0x6ad3('0x30')]),_0x10df74);if(_0x2d0df8['query'][_0x6ad3('0x3c')]){_0x50ef80[_0x6ad3('0x3a')]=_[_0x6ad3('0x3d')](_0x50ef80[_0x6ad3('0x3a')],{'$or':_[_0x6ad3('0x28')](_0x10df74,function(_0x59f6f1){if(_0x59f6f1[_0x6ad3('0x2c')]!==_0x6ad3('0x3e')){var _0x14c293={};_0x14c293[_0x59f6f1[_0x6ad3('0x25')]]={'$like':'%'+_0x2d0df8[_0x6ad3('0x2e')][_0x6ad3('0x3c')]+'%'};return _0x14c293;}})});}_0x50ef80=_[_0x6ad3('0x3d')]({},_0x50ef80,_0x2d0df8[_0x6ad3('0x3f')]);var _0x44148d={'where':_0x50ef80['where']};return db[_0x6ad3('0x29')]['count'](_0x44148d)[_0x6ad3('0x22')](function(_0x1a3b49){_0x820b3[_0x6ad3('0x1d')]=_0x1a3b49;if(_0x2d0df8[_0x6ad3('0x2e')][_0x6ad3('0x40')]){_0x50ef80[_0x6ad3('0x41')]=[{'all':!![]}];}return db['VtigerConfiguration'][_0x6ad3('0x42')](_0x50ef80);})['then'](function(_0xc86289){_0x820b3[_0x6ad3('0x43')]=_0xc86289;return _0x820b3;})['then'](respondWithFilteredResult(_0xb6a31c,_0x50ef80))[_0x6ad3('0x44')](handleError(_0xb6a31c,null));};exports[_0x6ad3('0x45')]=function(_0x5cce97,_0x5d1204){var _0x22d6e2={'raw':![],'where':{'id':_0x5cce97[_0x6ad3('0x46')]['id']}},_0x11eeb8={};_0x11eeb8[_0x6ad3('0x31')]=_['keys'](db['VtigerConfiguration'][_0x6ad3('0x2a')]);_0x11eeb8[_0x6ad3('0x2e')]=_[_0x6ad3('0x2f')](_0x5cce97['query']);_0x11eeb8['filters']=_['intersection'](_0x11eeb8['model'],_0x11eeb8[_0x6ad3('0x2e')]);_0x22d6e2[_0x6ad3('0x34')]=_['intersection'](_0x11eeb8[_0x6ad3('0x31')],qs[_0x6ad3('0x33')](_0x5cce97[_0x6ad3('0x2e')]['fields']));_0x22d6e2['attributes']=_0x22d6e2[_0x6ad3('0x34')][_0x6ad3('0x35')]?_0x22d6e2[_0x6ad3('0x34')]:_0x11eeb8[_0x6ad3('0x31')];if(_0x5cce97[_0x6ad3('0x2e')][_0x6ad3('0x40')]){_0x22d6e2[_0x6ad3('0x41')]=[{'all':!![]}];}_0x22d6e2=_[_0x6ad3('0x3d')]({},_0x22d6e2,_0x5cce97[_0x6ad3('0x3f')]);return db[_0x6ad3('0x29')][_0x6ad3('0x47')](_0x22d6e2)['then'](handleEntityNotFound(_0x5d1204,null))[_0x6ad3('0x22')](respondWithResult(_0x5d1204,null))[_0x6ad3('0x44')](handleError(_0x5d1204,null));};exports[_0x6ad3('0x48')]=function(_0x454579,_0x44bb8c){return db['VtigerConfiguration'][_0x6ad3('0x48')](_0x454579['body'],{})['then'](respondWithResult(_0x44bb8c,0xc9))[_0x6ad3('0x44')](handleError(_0x44bb8c,null));};exports[_0x6ad3('0x49')]=function(_0x4a4a5e,_0xef898f){if(_0x4a4a5e[_0x6ad3('0x4a')]['id']){delete _0x4a4a5e[_0x6ad3('0x4a')]['id'];}return db['VtigerConfiguration'][_0x6ad3('0x47')]({'where':{'id':_0x4a4a5e['params']['id']}})[_0x6ad3('0x22')](handleEntityNotFound(_0xef898f,null))[_0x6ad3('0x22')](saveUpdates(_0x4a4a5e[_0x6ad3('0x4a')],null))['then'](respondWithResult(_0xef898f,null))[_0x6ad3('0x44')](handleError(_0xef898f,null));};exports[_0x6ad3('0x21')]=function(_0x5e6a36,_0x20aa77){return db['VtigerConfiguration'][_0x6ad3('0x47')]({'where':{'id':_0x5e6a36[_0x6ad3('0x46')]['id']}})[_0x6ad3('0x22')](handleEntityNotFound(_0x20aa77,null))['then'](removeEntity(_0x20aa77,null))[_0x6ad3('0x44')](handleError(_0x20aa77,null));};exports[_0x6ad3('0x4b')]=function(_0x574329,_0x3d23fa,_0x40b1e8){var _0x2a4ea5={};var _0x3b2b06={};var _0x1f3425;var _0x648d81;return db[_0x6ad3('0x29')][_0x6ad3('0x4c')]({'where':{'id':_0x574329[_0x6ad3('0x46')]['id']}})[_0x6ad3('0x22')](handleEntityNotFound(_0x3d23fa,null))['then'](function(_0x3f4aae){if(_0x3f4aae){_0x1f3425=_0x3f4aae;_0x3b2b06[_0x6ad3('0x31')]=_[_0x6ad3('0x2f')](db['VtigerField'][_0x6ad3('0x2a')]);_0x3b2b06['query']=_[_0x6ad3('0x2f')](_0x574329[_0x6ad3('0x2e')]);_0x3b2b06['filters']=_[_0x6ad3('0x32')](_0x3b2b06['model'],_0x3b2b06[_0x6ad3('0x2e')]);_0x2a4ea5[_0x6ad3('0x34')]=_[_0x6ad3('0x32')](_0x3b2b06[_0x6ad3('0x31')],qs[_0x6ad3('0x33')](_0x574329['query'][_0x6ad3('0x33')]));_0x2a4ea5[_0x6ad3('0x34')]=_0x2a4ea5[_0x6ad3('0x34')][_0x6ad3('0x35')]?_0x2a4ea5[_0x6ad3('0x34')]:_0x3b2b06[_0x6ad3('0x31')];_0x2a4ea5['order']=qs[_0x6ad3('0x39')](_0x574329['query']['sort']);_0x2a4ea5[_0x6ad3('0x3a')]=qs[_0x6ad3('0x30')](_[_0x6ad3('0x3b')](_0x574329[_0x6ad3('0x2e')],_0x3b2b06[_0x6ad3('0x30')]));if(_0x574329['query'][_0x6ad3('0x3c')]){_0x2a4ea5[_0x6ad3('0x3a')]=_['merge'](_0x2a4ea5[_0x6ad3('0x3a')],{'$or':_['map'](_0x2a4ea5[_0x6ad3('0x34')],function(_0x2799ec){var _0x4b299f={};_0x4b299f[_0x2799ec]={'$like':'%'+_0x574329[_0x6ad3('0x2e')][_0x6ad3('0x3c')]+'%'};return _0x4b299f;})});}_0x2a4ea5=_['merge']({},_0x2a4ea5,_0x574329[_0x6ad3('0x3f')]);return _0x1f3425[_0x6ad3('0x4b')](_0x2a4ea5);}})[_0x6ad3('0x22')](function(_0x1522b0){if(_0x1522b0){_0x648d81=_0x1522b0[_0x6ad3('0x35')];if(!_0x574329[_0x6ad3('0x2e')][_0x6ad3('0x36')]('nolimit')){_0x2a4ea5[_0x6ad3('0x1c')]=qs[_0x6ad3('0x1c')](_0x574329['query'][_0x6ad3('0x1c')]);_0x2a4ea5[_0x6ad3('0x1a')]=qs[_0x6ad3('0x1a')](_0x574329[_0x6ad3('0x2e')][_0x6ad3('0x1a')]);}return _0x1f3425['getFields'](_0x2a4ea5);}})['then'](function(_0x4f46ae){if(_0x4f46ae){return _0x4f46ae?{'count':_0x648d81,'rows':_0x4f46ae}:null;}})[_0x6ad3('0x22')](respondWithResult(_0x3d23fa,null))[_0x6ad3('0x44')](handleError(_0x3d23fa,null));};exports[_0x6ad3('0x4d')]=function(_0x14abe1,_0x3ce0ed,_0x1dcb35){var _0x215963={};var _0x5a29c3={};var _0x29105d;var _0x11e968;return db[_0x6ad3('0x29')]['findOne']({'where':{'id':_0x14abe1['params']['id']}})['then'](handleEntityNotFound(_0x3ce0ed,null))[_0x6ad3('0x22')](function(_0x509fd5){if(_0x509fd5){_0x29105d=_0x509fd5;_0x5a29c3[_0x6ad3('0x31')]=_[_0x6ad3('0x2f')](db[_0x6ad3('0x4e')][_0x6ad3('0x2a')]);_0x5a29c3[_0x6ad3('0x2e')]=_['keys'](_0x14abe1['query']);_0x5a29c3[_0x6ad3('0x30')]=_[_0x6ad3('0x32')](_0x5a29c3[_0x6ad3('0x31')],_0x5a29c3['query']);_0x215963[_0x6ad3('0x34')]=_['intersection'](_0x5a29c3[_0x6ad3('0x31')],qs['fields'](_0x14abe1[_0x6ad3('0x2e')][_0x6ad3('0x33')]));_0x215963[_0x6ad3('0x34')]=_0x215963['attributes'][_0x6ad3('0x35')]?_0x215963[_0x6ad3('0x34')]:_0x5a29c3[_0x6ad3('0x31')];_0x215963['order']=qs[_0x6ad3('0x39')](_0x14abe1['query'][_0x6ad3('0x39')]);_0x215963['where']=qs[_0x6ad3('0x30')](_['pick'](_0x14abe1[_0x6ad3('0x2e')],_0x5a29c3[_0x6ad3('0x30')]));if(_0x14abe1[_0x6ad3('0x2e')][_0x6ad3('0x3c')]){_0x215963[_0x6ad3('0x3a')]=_[_0x6ad3('0x3d')](_0x215963[_0x6ad3('0x3a')],{'$or':_[_0x6ad3('0x28')](_0x215963['attributes'],function(_0x5092e0){var _0x2f4861={};_0x2f4861[_0x5092e0]={'$like':'%'+_0x14abe1[_0x6ad3('0x2e')][_0x6ad3('0x3c')]+'%'};return _0x2f4861;})});}_0x215963=_['merge']({},_0x215963,_0x14abe1['options']);return _0x29105d[_0x6ad3('0x4d')](_0x215963);}})[_0x6ad3('0x22')](function(_0x280381){if(_0x280381){_0x11e968=_0x280381[_0x6ad3('0x35')];if(!_0x14abe1[_0x6ad3('0x2e')][_0x6ad3('0x36')](_0x6ad3('0x37'))){_0x215963[_0x6ad3('0x1c')]=qs[_0x6ad3('0x1c')](_0x14abe1[_0x6ad3('0x2e')][_0x6ad3('0x1c')]);_0x215963[_0x6ad3('0x1a')]=qs['offset'](_0x14abe1[_0x6ad3('0x2e')][_0x6ad3('0x1a')]);}return _0x29105d[_0x6ad3('0x4d')](_0x215963);}})['then'](function(_0x6a65f){if(_0x6a65f){return _0x6a65f?{'count':_0x11e968,'rows':_0x6a65f}:null;}})[_0x6ad3('0x22')](respondWithResult(_0x3ce0ed,null))[_0x6ad3('0x44')](handleError(_0x3ce0ed,null));};exports['getDescriptions']=function(_0x568a4d,_0x3be1ad,_0xd7426c){var _0x1b120f={};var _0x11e8b3={};var _0x2753ea;var _0x2ffb61;return db[_0x6ad3('0x29')][_0x6ad3('0x4c')]({'where':{'id':_0x568a4d['params']['id']}})[_0x6ad3('0x22')](handleEntityNotFound(_0x3be1ad,null))[_0x6ad3('0x22')](function(_0x5619d5){if(_0x5619d5){_0x2753ea=_0x5619d5;_0x11e8b3[_0x6ad3('0x31')]=_[_0x6ad3('0x2f')](db['VtigerField']['rawAttributes']);_0x11e8b3[_0x6ad3('0x2e')]=_[_0x6ad3('0x2f')](_0x568a4d['query']);_0x11e8b3[_0x6ad3('0x30')]=_['intersection'](_0x11e8b3['model'],_0x11e8b3['query']);_0x1b120f[_0x6ad3('0x34')]=_[_0x6ad3('0x32')](_0x11e8b3['model'],qs['fields'](_0x568a4d[_0x6ad3('0x2e')][_0x6ad3('0x33')]));_0x1b120f[_0x6ad3('0x34')]=_0x1b120f[_0x6ad3('0x34')]['length']?_0x1b120f['attributes']:_0x11e8b3[_0x6ad3('0x31')];_0x1b120f['order']=qs[_0x6ad3('0x39')](_0x568a4d[_0x6ad3('0x2e')][_0x6ad3('0x39')]);_0x1b120f['where']=qs[_0x6ad3('0x30')](_[_0x6ad3('0x3b')](_0x568a4d[_0x6ad3('0x2e')],_0x11e8b3[_0x6ad3('0x30')]));if(_0x568a4d['query'][_0x6ad3('0x3c')]){_0x1b120f[_0x6ad3('0x3a')]=_['merge'](_0x1b120f[_0x6ad3('0x3a')],{'$or':_[_0x6ad3('0x28')](_0x1b120f[_0x6ad3('0x34')],function(_0x5c8281){var _0x2f5630={};_0x2f5630[_0x5c8281]={'$like':'%'+_0x568a4d[_0x6ad3('0x2e')]['filter']+'%'};return _0x2f5630;})});}_0x1b120f=_[_0x6ad3('0x3d')]({},_0x1b120f,_0x568a4d[_0x6ad3('0x3f')]);return _0x2753ea[_0x6ad3('0x4f')](_0x1b120f);}})['then'](function(_0x5c689c){if(_0x5c689c){_0x2ffb61=_0x5c689c[_0x6ad3('0x35')];if(!_0x568a4d[_0x6ad3('0x2e')][_0x6ad3('0x36')](_0x6ad3('0x37'))){_0x1b120f[_0x6ad3('0x1c')]=qs[_0x6ad3('0x1c')](_0x568a4d[_0x6ad3('0x2e')][_0x6ad3('0x1c')]);_0x1b120f['offset']=qs['offset'](_0x568a4d[_0x6ad3('0x2e')][_0x6ad3('0x1a')]);}return _0x2753ea[_0x6ad3('0x4f')](_0x1b120f);}})[_0x6ad3('0x22')](function(_0xe67e6a){if(_0xe67e6a){return _0xe67e6a?{'count':_0x2ffb61,'rows':_0xe67e6a}:null;}})['then'](respondWithResult(_0x3be1ad,null))[_0x6ad3('0x44')](handleError(_0x3be1ad,null));};
\ No newline at end of file
+var _0x2e76=['findOne','getSubjects','VtigerField','getDescriptions','eml-format','fast-json-patch','moment','bluebird','mustache','util','path','ejs','squel','crypto','to-csv','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','update','then','destroy','stack','name','send','index','map','VtigerConfiguration','fieldName','key','model','query','keys','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','type','VIRTUAL','options','include','findAll','rows','catch','show','params','rawAttributes','length','includeAll','find','create','body','getFields'];(function(_0x5578ed,_0xb4bcc9){var _0x1bdb67=function(_0x1af359){while(--_0x1af359){_0x5578ed['push'](_0x5578ed['shift']());}};_0x1bdb67(++_0xb4bcc9);}(_0x2e76,0x199));var _0x62e7=function(_0x457a4f,_0x542d1a){_0x457a4f=_0x457a4f-0x0;var _0x18cf60=_0x2e76[_0x457a4f];return _0x18cf60;};'use strict';var emlformat=require(_0x62e7('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x62e7('0x1'));var rp=require('request-promise');var moment=require(_0x62e7('0x2'));var BPromise=require(_0x62e7('0x3'));var Mustache=require(_0x62e7('0x4'));var util=require(_0x62e7('0x5'));var path=require(_0x62e7('0x6'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x62e7('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x62e7('0x8'));var crypto=require(_0x62e7('0x9'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x62e7('0xa'));var querystring=require('querystring');var Papa=require(_0x62e7('0xb'));var Redis=require('ioredis');var authService=require(_0x62e7('0xc'));var qs=require(_0x62e7('0xd'));var as=require(_0x62e7('0xe'));var hardwareService=require(_0x62e7('0xf'));var logger=require(_0x62e7('0x10'))(_0x62e7('0x11'));var utils=require(_0x62e7('0x12'));var config=require(_0x62e7('0x13'));var licenseUtil=require(_0x62e7('0x14'));var db=require(_0x62e7('0x15'))['db'];function respondWithStatusCode(_0xc3e9de,_0x4e3e47){_0x4e3e47=_0x4e3e47||0xcc;return function(_0x463059){if(_0x463059){return _0xc3e9de[_0x62e7('0x16')](_0x4e3e47);}return _0xc3e9de['status'](_0x4e3e47)[_0x62e7('0x17')]();};}function respondWithResult(_0x350945,_0x7eda83){_0x7eda83=_0x7eda83||0xc8;return function(_0x48c8c1){if(_0x48c8c1){return _0x350945[_0x62e7('0x18')](_0x7eda83)[_0x62e7('0x19')](_0x48c8c1);}};}function respondWithFilteredResult(_0x22f30d,_0x4c4378){return function(_0x18ea07){if(_0x18ea07){var _0x692bff=typeof _0x4c4378[_0x62e7('0x1a')]===_0x62e7('0x1b')&&typeof _0x4c4378['limit']===_0x62e7('0x1b');var _0x1411ad=_0x18ea07[_0x62e7('0x1c')];var _0x427cfd=_0x692bff?0x0:_0x4c4378[_0x62e7('0x1a')];var _0x5d5601=_0x692bff?_0x18ea07[_0x62e7('0x1c')]:_0x4c4378[_0x62e7('0x1a')]+_0x4c4378[_0x62e7('0x1d')];var _0x2ff6d1;if(_0x5d5601>=_0x1411ad){_0x5d5601=_0x1411ad;_0x2ff6d1=0xc8;}else{_0x2ff6d1=0xce;}_0x22f30d[_0x62e7('0x18')](_0x2ff6d1);return _0x22f30d[_0x62e7('0x1e')](_0x62e7('0x1f'),_0x427cfd+'-'+_0x5d5601+'/'+_0x1411ad)['json'](_0x18ea07);}return null;};}function patchUpdates(_0x2e28c1){return function(_0x280a3c){try{jsonpatch[_0x62e7('0x20')](_0x280a3c,_0x2e28c1,!![]);}catch(_0x422437){return BPromise[_0x62e7('0x21')](_0x422437);}return _0x280a3c[_0x62e7('0x22')]();};}function saveUpdates(_0x3243d5,_0x342742){return function(_0x380012){if(_0x380012){return _0x380012[_0x62e7('0x23')](_0x3243d5)[_0x62e7('0x24')](function(_0x216196){return _0x216196;});}return null;};}function removeEntity(_0x30e9df,_0x357efe){return function(_0x568f90){if(_0x568f90){return _0x568f90[_0x62e7('0x25')]()[_0x62e7('0x24')](function(){_0x30e9df[_0x62e7('0x18')](0xcc)[_0x62e7('0x17')]();});}};}function handleEntityNotFound(_0x20dfe3,_0x3772b7){return function(_0x31fe0f){if(!_0x31fe0f){_0x20dfe3[_0x62e7('0x16')](0x194);}return _0x31fe0f;};}function handleError(_0x115718,_0x1aa643){_0x1aa643=_0x1aa643||0x1f4;return function(_0x152c59){logger['error'](_0x152c59[_0x62e7('0x26')]);if(_0x152c59[_0x62e7('0x27')]){delete _0x152c59[_0x62e7('0x27')];}_0x115718[_0x62e7('0x18')](_0x1aa643)[_0x62e7('0x28')](_0x152c59);};}exports[_0x62e7('0x29')]=function(_0x5f4d8a,_0x268f8f){var _0x340311={},_0x1e0060={},_0x6f2e70={'count':0x0,'rows':[]};var _0x17318b=_[_0x62e7('0x2a')](db[_0x62e7('0x2b')]['rawAttributes'],function(_0x346c98){return{'name':_0x346c98[_0x62e7('0x2c')],'type':_0x346c98['type'][_0x62e7('0x2d')]};});_0x1e0060[_0x62e7('0x2e')]=_[_0x62e7('0x2a')](_0x17318b,_0x62e7('0x27'));_0x1e0060[_0x62e7('0x2f')]=_[_0x62e7('0x30')](_0x5f4d8a[_0x62e7('0x2f')]);_0x1e0060['filters']=_[_0x62e7('0x31')](_0x1e0060['model'],_0x1e0060['query']);_0x340311['attributes']=_['intersection'](_0x1e0060['model'],qs['fields'](_0x5f4d8a[_0x62e7('0x2f')][_0x62e7('0x32')]));_0x340311[_0x62e7('0x33')]=_0x340311[_0x62e7('0x33')]['length']?_0x340311[_0x62e7('0x33')]:_0x1e0060[_0x62e7('0x2e')];if(!_0x5f4d8a[_0x62e7('0x2f')][_0x62e7('0x34')](_0x62e7('0x35'))){_0x340311[_0x62e7('0x1d')]=qs['limit'](_0x5f4d8a[_0x62e7('0x2f')]['limit']);_0x340311['offset']=qs[_0x62e7('0x1a')](_0x5f4d8a[_0x62e7('0x2f')]['offset']);}_0x340311[_0x62e7('0x36')]=qs[_0x62e7('0x37')](_0x5f4d8a[_0x62e7('0x2f')]['sort']);_0x340311[_0x62e7('0x38')]=qs[_0x62e7('0x39')](_[_0x62e7('0x3a')](_0x5f4d8a[_0x62e7('0x2f')],_0x1e0060[_0x62e7('0x39')]),_0x17318b);if(_0x5f4d8a['query'][_0x62e7('0x3b')]){_0x340311[_0x62e7('0x38')]=_[_0x62e7('0x3c')](_0x340311['where'],{'$or':_[_0x62e7('0x2a')](_0x17318b,function(_0x325db8){if(_0x325db8[_0x62e7('0x3d')]!==_0x62e7('0x3e')){var _0x47dc71={};_0x47dc71[_0x325db8['name']]={'$like':'%'+_0x5f4d8a['query']['filter']+'%'};return _0x47dc71;}})});}_0x340311=_[_0x62e7('0x3c')]({},_0x340311,_0x5f4d8a[_0x62e7('0x3f')]);var _0x5c1b7d={'where':_0x340311[_0x62e7('0x38')]};return db[_0x62e7('0x2b')]['count'](_0x5c1b7d)[_0x62e7('0x24')](function(_0x3082c1){_0x6f2e70[_0x62e7('0x1c')]=_0x3082c1;if(_0x5f4d8a[_0x62e7('0x2f')]['includeAll']){_0x340311[_0x62e7('0x40')]=[{'all':!![]}];}return db[_0x62e7('0x2b')][_0x62e7('0x41')](_0x340311);})['then'](function(_0x302ac1){_0x6f2e70[_0x62e7('0x42')]=_0x302ac1;return _0x6f2e70;})[_0x62e7('0x24')](respondWithFilteredResult(_0x268f8f,_0x340311))[_0x62e7('0x43')](handleError(_0x268f8f,null));};exports[_0x62e7('0x44')]=function(_0x399d17,_0x4f0f30){var _0x5a2194={'raw':![],'where':{'id':_0x399d17[_0x62e7('0x45')]['id']}},_0x4b0c69={};_0x4b0c69['model']=_[_0x62e7('0x30')](db[_0x62e7('0x2b')][_0x62e7('0x46')]);_0x4b0c69[_0x62e7('0x2f')]=_['keys'](_0x399d17[_0x62e7('0x2f')]);_0x4b0c69['filters']=_['intersection'](_0x4b0c69[_0x62e7('0x2e')],_0x4b0c69['query']);_0x5a2194[_0x62e7('0x33')]=_[_0x62e7('0x31')](_0x4b0c69[_0x62e7('0x2e')],qs[_0x62e7('0x32')](_0x399d17[_0x62e7('0x2f')]['fields']));_0x5a2194[_0x62e7('0x33')]=_0x5a2194[_0x62e7('0x33')][_0x62e7('0x47')]?_0x5a2194[_0x62e7('0x33')]:_0x4b0c69['model'];if(_0x399d17['query'][_0x62e7('0x48')]){_0x5a2194['include']=[{'all':!![]}];}_0x5a2194=_[_0x62e7('0x3c')]({},_0x5a2194,_0x399d17[_0x62e7('0x3f')]);return db[_0x62e7('0x2b')][_0x62e7('0x49')](_0x5a2194)[_0x62e7('0x24')](handleEntityNotFound(_0x4f0f30,null))[_0x62e7('0x24')](respondWithResult(_0x4f0f30,null))['catch'](handleError(_0x4f0f30,null));};exports[_0x62e7('0x4a')]=function(_0x2c526c,_0x18c09c){return db[_0x62e7('0x2b')][_0x62e7('0x4a')](_0x2c526c[_0x62e7('0x4b')],{})[_0x62e7('0x24')](respondWithResult(_0x18c09c,0xc9))[_0x62e7('0x43')](handleError(_0x18c09c,null));};exports[_0x62e7('0x23')]=function(_0x19e03c,_0x2d005a){if(_0x19e03c[_0x62e7('0x4b')]['id']){delete _0x19e03c[_0x62e7('0x4b')]['id'];}return db[_0x62e7('0x2b')][_0x62e7('0x49')]({'where':{'id':_0x19e03c[_0x62e7('0x45')]['id']}})[_0x62e7('0x24')](handleEntityNotFound(_0x2d005a,null))['then'](saveUpdates(_0x19e03c[_0x62e7('0x4b')],null))[_0x62e7('0x24')](respondWithResult(_0x2d005a,null))['catch'](handleError(_0x2d005a,null));};exports[_0x62e7('0x25')]=function(_0xc2235f,_0x508c6f){return db[_0x62e7('0x2b')]['find']({'where':{'id':_0xc2235f[_0x62e7('0x45')]['id']}})['then'](handleEntityNotFound(_0x508c6f,null))['then'](removeEntity(_0x508c6f,null))['catch'](handleError(_0x508c6f,null));};exports[_0x62e7('0x4c')]=function(_0x6d5430,_0x230cb8,_0x45cc6f){var _0x21af6f={};var _0x3af060={};var _0x2cce7c;var _0x56c318;return db[_0x62e7('0x2b')][_0x62e7('0x4d')]({'where':{'id':_0x6d5430['params']['id']}})[_0x62e7('0x24')](handleEntityNotFound(_0x230cb8,null))[_0x62e7('0x24')](function(_0x2ddfbc){if(_0x2ddfbc){_0x2cce7c=_0x2ddfbc;_0x3af060[_0x62e7('0x2e')]=_['keys'](db['VtigerField'][_0x62e7('0x46')]);_0x3af060[_0x62e7('0x2f')]=_[_0x62e7('0x30')](_0x6d5430[_0x62e7('0x2f')]);_0x3af060['filters']=_[_0x62e7('0x31')](_0x3af060['model'],_0x3af060[_0x62e7('0x2f')]);_0x21af6f[_0x62e7('0x33')]=_[_0x62e7('0x31')](_0x3af060['model'],qs[_0x62e7('0x32')](_0x6d5430['query'][_0x62e7('0x32')]));_0x21af6f[_0x62e7('0x33')]=_0x21af6f['attributes'][_0x62e7('0x47')]?_0x21af6f[_0x62e7('0x33')]:_0x3af060['model'];_0x21af6f[_0x62e7('0x36')]=qs[_0x62e7('0x37')](_0x6d5430[_0x62e7('0x2f')]['sort']);_0x21af6f[_0x62e7('0x38')]=qs['filters'](_[_0x62e7('0x3a')](_0x6d5430[_0x62e7('0x2f')],_0x3af060[_0x62e7('0x39')]));if(_0x6d5430[_0x62e7('0x2f')][_0x62e7('0x3b')]){_0x21af6f[_0x62e7('0x38')]=_['merge'](_0x21af6f[_0x62e7('0x38')],{'$or':_[_0x62e7('0x2a')](_0x21af6f[_0x62e7('0x33')],function(_0x18e857){var _0x12d9df={};_0x12d9df[_0x18e857]={'$like':'%'+_0x6d5430[_0x62e7('0x2f')][_0x62e7('0x3b')]+'%'};return _0x12d9df;})});}_0x21af6f=_[_0x62e7('0x3c')]({},_0x21af6f,_0x6d5430[_0x62e7('0x3f')]);return _0x2cce7c[_0x62e7('0x4c')](_0x21af6f);}})['then'](function(_0x463fc9){if(_0x463fc9){_0x56c318=_0x463fc9[_0x62e7('0x47')];if(!_0x6d5430[_0x62e7('0x2f')][_0x62e7('0x34')](_0x62e7('0x35'))){_0x21af6f[_0x62e7('0x1d')]=qs[_0x62e7('0x1d')](_0x6d5430[_0x62e7('0x2f')][_0x62e7('0x1d')]);_0x21af6f[_0x62e7('0x1a')]=qs[_0x62e7('0x1a')](_0x6d5430[_0x62e7('0x2f')][_0x62e7('0x1a')]);}return _0x2cce7c[_0x62e7('0x4c')](_0x21af6f);}})['then'](function(_0x38aedc){if(_0x38aedc){return _0x38aedc?{'count':_0x56c318,'rows':_0x38aedc}:null;}})[_0x62e7('0x24')](respondWithResult(_0x230cb8,null))[_0x62e7('0x43')](handleError(_0x230cb8,null));};exports[_0x62e7('0x4e')]=function(_0x2b2de1,_0x445f64,_0x46ad1c){var _0x157786={};var _0x5bbdff={};var _0x55c78a;var _0x1bdeb1;return db[_0x62e7('0x2b')][_0x62e7('0x4d')]({'where':{'id':_0x2b2de1[_0x62e7('0x45')]['id']}})[_0x62e7('0x24')](handleEntityNotFound(_0x445f64,null))[_0x62e7('0x24')](function(_0x5c5d9a){if(_0x5c5d9a){_0x55c78a=_0x5c5d9a;_0x5bbdff[_0x62e7('0x2e')]=_[_0x62e7('0x30')](db[_0x62e7('0x4f')][_0x62e7('0x46')]);_0x5bbdff[_0x62e7('0x2f')]=_[_0x62e7('0x30')](_0x2b2de1['query']);_0x5bbdff['filters']=_['intersection'](_0x5bbdff[_0x62e7('0x2e')],_0x5bbdff[_0x62e7('0x2f')]);_0x157786[_0x62e7('0x33')]=_[_0x62e7('0x31')](_0x5bbdff[_0x62e7('0x2e')],qs['fields'](_0x2b2de1[_0x62e7('0x2f')][_0x62e7('0x32')]));_0x157786[_0x62e7('0x33')]=_0x157786['attributes'][_0x62e7('0x47')]?_0x157786[_0x62e7('0x33')]:_0x5bbdff[_0x62e7('0x2e')];_0x157786[_0x62e7('0x36')]=qs[_0x62e7('0x37')](_0x2b2de1[_0x62e7('0x2f')][_0x62e7('0x37')]);_0x157786[_0x62e7('0x38')]=qs[_0x62e7('0x39')](_[_0x62e7('0x3a')](_0x2b2de1['query'],_0x5bbdff['filters']));if(_0x2b2de1[_0x62e7('0x2f')][_0x62e7('0x3b')]){_0x157786[_0x62e7('0x38')]=_[_0x62e7('0x3c')](_0x157786[_0x62e7('0x38')],{'$or':_[_0x62e7('0x2a')](_0x157786[_0x62e7('0x33')],function(_0x5e6fd0){var _0x11ae14={};_0x11ae14[_0x5e6fd0]={'$like':'%'+_0x2b2de1[_0x62e7('0x2f')][_0x62e7('0x3b')]+'%'};return _0x11ae14;})});}_0x157786=_[_0x62e7('0x3c')]({},_0x157786,_0x2b2de1[_0x62e7('0x3f')]);return _0x55c78a[_0x62e7('0x4e')](_0x157786);}})['then'](function(_0x4e58dc){if(_0x4e58dc){_0x1bdeb1=_0x4e58dc[_0x62e7('0x47')];if(!_0x2b2de1[_0x62e7('0x2f')]['hasOwnProperty'](_0x62e7('0x35'))){_0x157786[_0x62e7('0x1d')]=qs[_0x62e7('0x1d')](_0x2b2de1[_0x62e7('0x2f')][_0x62e7('0x1d')]);_0x157786['offset']=qs[_0x62e7('0x1a')](_0x2b2de1[_0x62e7('0x2f')][_0x62e7('0x1a')]);}return _0x55c78a[_0x62e7('0x4e')](_0x157786);}})['then'](function(_0xd420ed){if(_0xd420ed){return _0xd420ed?{'count':_0x1bdeb1,'rows':_0xd420ed}:null;}})[_0x62e7('0x24')](respondWithResult(_0x445f64,null))[_0x62e7('0x43')](handleError(_0x445f64,null));};exports['getDescriptions']=function(_0x5be040,_0x1482af,_0x244308){var _0x595363={};var _0x775ad3={};var _0x1889b2;var _0x2a3273;return db[_0x62e7('0x2b')][_0x62e7('0x4d')]({'where':{'id':_0x5be040['params']['id']}})[_0x62e7('0x24')](handleEntityNotFound(_0x1482af,null))['then'](function(_0x2e4361){if(_0x2e4361){_0x1889b2=_0x2e4361;_0x775ad3[_0x62e7('0x2e')]=_[_0x62e7('0x30')](db[_0x62e7('0x4f')][_0x62e7('0x46')]);_0x775ad3['query']=_[_0x62e7('0x30')](_0x5be040[_0x62e7('0x2f')]);_0x775ad3[_0x62e7('0x39')]=_[_0x62e7('0x31')](_0x775ad3['model'],_0x775ad3[_0x62e7('0x2f')]);_0x595363[_0x62e7('0x33')]=_[_0x62e7('0x31')](_0x775ad3['model'],qs[_0x62e7('0x32')](_0x5be040[_0x62e7('0x2f')]['fields']));_0x595363[_0x62e7('0x33')]=_0x595363[_0x62e7('0x33')][_0x62e7('0x47')]?_0x595363[_0x62e7('0x33')]:_0x775ad3[_0x62e7('0x2e')];_0x595363[_0x62e7('0x36')]=qs[_0x62e7('0x37')](_0x5be040[_0x62e7('0x2f')][_0x62e7('0x37')]);_0x595363[_0x62e7('0x38')]=qs[_0x62e7('0x39')](_[_0x62e7('0x3a')](_0x5be040[_0x62e7('0x2f')],_0x775ad3[_0x62e7('0x39')]));if(_0x5be040[_0x62e7('0x2f')]['filter']){_0x595363[_0x62e7('0x38')]=_['merge'](_0x595363[_0x62e7('0x38')],{'$or':_[_0x62e7('0x2a')](_0x595363[_0x62e7('0x33')],function(_0x20f5c9){var _0x31346a={};_0x31346a[_0x20f5c9]={'$like':'%'+_0x5be040[_0x62e7('0x2f')][_0x62e7('0x3b')]+'%'};return _0x31346a;})});}_0x595363=_['merge']({},_0x595363,_0x5be040[_0x62e7('0x3f')]);return _0x1889b2['getDescriptions'](_0x595363);}})[_0x62e7('0x24')](function(_0x4269c3){if(_0x4269c3){_0x2a3273=_0x4269c3[_0x62e7('0x47')];if(!_0x5be040[_0x62e7('0x2f')][_0x62e7('0x34')](_0x62e7('0x35'))){_0x595363[_0x62e7('0x1d')]=qs[_0x62e7('0x1d')](_0x5be040['query'][_0x62e7('0x1d')]);_0x595363[_0x62e7('0x1a')]=qs[_0x62e7('0x1a')](_0x5be040[_0x62e7('0x2f')]['offset']);}return _0x1889b2[_0x62e7('0x50')](_0x595363);}})[_0x62e7('0x24')](function(_0x4fc557){if(_0x4fc557){return _0x4fc557?{'count':_0x2a3273,'rows':_0x4fc557}:null;}})[_0x62e7('0x24')](respondWithResult(_0x1482af,null))[_0x62e7('0x43')](handleError(_0x1482af,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa84e=['../../config/logger','moment','bluebird','request-promise','path','../../config/environment','./intVtigerConfiguration.attributes','exports','define','int_vtiger_configurations','util'];(function(_0x5391ef,_0x3c8788){var _0x136499=function(_0x4d80a5){while(--_0x4d80a5){_0x5391ef['push'](_0x5391ef['shift']());}};_0x136499(++_0x3c8788);}(_0xa84e,0x83));var _0xea84=function(_0xa201ee,_0x37da32){_0xa201ee=_0xa201ee-0x0;var _0x3e104d=_0xa84e[_0xa201ee];return _0x3e104d;};'use strict';var _=require('lodash');var util=require(_0xea84('0x0'));var logger=require(_0xea84('0x1'))('api');var moment=require(_0xea84('0x2'));var BPromise=require(_0xea84('0x3'));var rp=require(_0xea84('0x4'));var fs=require('fs');var path=require(_0xea84('0x5'));var rimraf=require('rimraf');var config=require(_0xea84('0x6'));var attributes=require(_0xea84('0x7'));module[_0xea84('0x8')]=function(_0xf7c651,_0x281abd){return _0xf7c651[_0xea84('0x9')]('VtigerConfiguration',attributes,{'tableName':_0xea84('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xd4e0=['moment','bluebird','request-promise','path','rimraf','../../config/environment','./intVtigerConfiguration.attributes','exports','define','VtigerConfiguration','lodash','util','../../config/logger','api'];(function(_0x45262e,_0x1d9c0b){var _0x3b7f60=function(_0x1d7a53){while(--_0x1d7a53){_0x45262e['push'](_0x45262e['shift']());}};_0x3b7f60(++_0x1d9c0b);}(_0xd4e0,0x1f4));var _0x0d4e=function(_0x255e0c,_0x53df97){_0x255e0c=_0x255e0c-0x0;var _0x384245=_0xd4e0[_0x255e0c];return _0x384245;};'use strict';var _=require(_0x0d4e('0x0'));var util=require(_0x0d4e('0x1'));var logger=require(_0x0d4e('0x2'))(_0x0d4e('0x3'));var moment=require(_0x0d4e('0x4'));var BPromise=require(_0x0d4e('0x5'));var rp=require(_0x0d4e('0x6'));var fs=require('fs');var path=require(_0x0d4e('0x7'));var rimraf=require(_0x0d4e('0x8'));var config=require(_0x0d4e('0x9'));var attributes=require(_0x0d4e('0xa'));module[_0x0d4e('0xb')]=function(_0x4a774a,_0x38e3c6){return _0x4a774a[_0x0d4e('0xc')](_0x0d4e('0xd'),attributes,{'tableName':'int_vtiger_configurations','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xee5e=['request','VtigerConfiguration,\x20%s,\x20%s','request\x20sent','debug','VtigerConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','message','info','result','util','bluebird','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','http'];(function(_0x25e7cb,_0x3579b7){var _0x375d92=function(_0xe8cf3b){while(--_0xe8cf3b){_0x25e7cb['push'](_0x25e7cb['shift']());}};_0x375d92(++_0x3579b7);}(_0xee5e,0x196));var _0xeee5=function(_0x1ea72f,_0x4f4201){_0x1ea72f=_0x1ea72f-0x0;var _0x9bba06=_0xee5e[_0x1ea72f];return _0x9bba06;};'use strict';var _=require('lodash');var util=require(_0xeee5('0x0'));var moment=require('moment');var BPromise=require(_0xeee5('0x1'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xeee5('0x2'));var db=require('../../mysqldb')['db'];var utils=require(_0xeee5('0x3'));var logger=require(_0xeee5('0x4'))(_0xeee5('0x5'));var config=require(_0xeee5('0x6'));var jayson=require('jayson/promise');var client=jayson['client'][_0xeee5('0x7')]({'port':0x232a});function respondWithRpcPromise(_0xc04cb4,_0x300f89,_0x7085ed){return new BPromise(function(_0x592127,_0x3179aa){return client[_0xeee5('0x8')](_0xc04cb4,_0x7085ed)['then'](function(_0x5e8511){logger['info'](_0xeee5('0x9'),_0x300f89,_0xeee5('0xa'));logger[_0xeee5('0xb')](_0xeee5('0xc'),_0x300f89,'request\x20sent',JSON[_0xeee5('0xd')](_0x5e8511));if(_0x5e8511[_0xeee5('0xe')]){if(_0x5e8511[_0xeee5('0xe')]['code']===0x1f4){logger[_0xeee5('0xe')]('VtigerConfiguration,\x20%s,\x20%s',_0x300f89,_0x5e8511[_0xeee5('0xe')]['message']);return _0x3179aa(_0x5e8511[_0xeee5('0xe')][_0xeee5('0xf')]);}logger['error'](_0xeee5('0x9'),_0x300f89,_0x5e8511['error'][_0xeee5('0xf')]);return _0x592127(_0x5e8511[_0xeee5('0xe')][_0xeee5('0xf')]);}else{logger[_0xeee5('0x10')]('VtigerConfiguration,\x20%s,\x20%s',_0x300f89,_0xeee5('0xa'));_0x592127(_0x5e8511[_0xeee5('0x11')][_0xeee5('0xf')]);}})['catch'](function(_0x294dc2){logger[_0xeee5('0xe')](_0xeee5('0x9'),_0x300f89,_0x294dc2);_0x3179aa(_0x294dc2);});});}
\ No newline at end of file
+var _0xe3f7=['rpc','jayson/promise','client','http','then','info','VtigerConfiguration,\x20%s,\x20%s','request\x20sent','debug','VtigerConfiguration,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger'];(function(_0x2b0d7d,_0x470f86){var _0x24c9ab=function(_0xe0c87){while(--_0xe0c87){_0x2b0d7d['push'](_0x2b0d7d['shift']());}};_0x24c9ab(++_0x470f86);}(_0xe3f7,0x168));var _0x7e3f=function(_0x598ead,_0x59c312){_0x598ead=_0x598ead-0x0;var _0x4cefad=_0xe3f7[_0x598ead];return _0x4cefad;};'use strict';var _=require(_0x7e3f('0x0'));var util=require(_0x7e3f('0x1'));var moment=require(_0x7e3f('0x2'));var BPromise=require('bluebird');var rs=require(_0x7e3f('0x3'));var fs=require('fs');var Redis=require(_0x7e3f('0x4'));var db=require(_0x7e3f('0x5'))['db'];var utils=require(_0x7e3f('0x6'));var logger=require(_0x7e3f('0x7'))(_0x7e3f('0x8'));var config=require('../../config/environment');var jayson=require(_0x7e3f('0x9'));var client=jayson[_0x7e3f('0xa')][_0x7e3f('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x5ae487,_0x18f62c,_0x22ef3d){return new BPromise(function(_0x25b689,_0x5c8462){return client['request'](_0x5ae487,_0x22ef3d)[_0x7e3f('0xc')](function(_0x2b51a5){logger[_0x7e3f('0xd')](_0x7e3f('0xe'),_0x18f62c,_0x7e3f('0xf'));logger[_0x7e3f('0x10')](_0x7e3f('0x11'),_0x18f62c,'request\x20sent',JSON['stringify'](_0x2b51a5));if(_0x2b51a5[_0x7e3f('0x12')]){if(_0x2b51a5[_0x7e3f('0x12')][_0x7e3f('0x13')]===0x1f4){logger[_0x7e3f('0x12')](_0x7e3f('0xe'),_0x18f62c,_0x2b51a5['error'][_0x7e3f('0x14')]);return _0x5c8462(_0x2b51a5[_0x7e3f('0x12')][_0x7e3f('0x14')]);}logger[_0x7e3f('0x12')](_0x7e3f('0xe'),_0x18f62c,_0x2b51a5['error'][_0x7e3f('0x14')]);return _0x25b689(_0x2b51a5['error'][_0x7e3f('0x14')]);}else{logger[_0x7e3f('0xd')](_0x7e3f('0xe'),_0x18f62c,_0x7e3f('0xf'));_0x25b689(_0x2b51a5[_0x7e3f('0x15')][_0x7e3f('0x14')]);}})[_0x7e3f('0x16')](function(_0x511994){logger['error'](_0x7e3f('0xe'),_0x18f62c,_0x511994);_0x5c8462(_0x511994);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4346=['../../components/auth/service','../../config/environment','./intVtigerField.controller','get','/:id','isAuthenticated','show','post','create','put','destroy','exports','multer','util','path','connect-timeout','express','Router'];(function(_0x491a7f,_0x28bb80){var _0x3d8f44=function(_0xdaa716){while(--_0xdaa716){_0x491a7f['push'](_0x491a7f['shift']());}};_0x3d8f44(++_0x28bb80);}(_0x4346,0x12c));var _0x6434=function(_0xd0a847,_0x72562b){_0xd0a847=_0xd0a847-0x0;var _0x2536ec=_0x4346[_0xd0a847];return _0x2536ec;};'use strict';var multer=require(_0x6434('0x0'));var util=require(_0x6434('0x1'));var path=require(_0x6434('0x2'));var timeout=require(_0x6434('0x3'));var express=require(_0x6434('0x4'));var router=express[_0x6434('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0x6434('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0x6434('0x7'));var controller=require(_0x6434('0x8'));router[_0x6434('0x9')]('/',auth['isAuthenticated'](),controller['index']);router[_0x6434('0x9')](_0x6434('0xa'),auth[_0x6434('0xb')](),controller[_0x6434('0xc')]);router[_0x6434('0xd')]('/',auth[_0x6434('0xb')](),controller[_0x6434('0xe')]);router[_0x6434('0xf')](_0x6434('0xa'),auth[_0x6434('0xb')](),controller['update']);router['delete'](_0x6434('0xa'),auth['isAuthenticated'](),controller[_0x6434('0x10')]);module[_0x6434('0x11')]=router;
\ No newline at end of file
+var _0xbd77=['put','update','delete','destroy','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./intVtigerField.controller','get','/:id','isAuthenticated','show','post','create'];(function(_0x4859e8,_0x219e9f){var _0x3faf68=function(_0x4b7d22){while(--_0x4b7d22){_0x4859e8['push'](_0x4859e8['shift']());}};_0x3faf68(++_0x219e9f);}(_0xbd77,0x1a8));var _0x7bd7=function(_0x4b26aa,_0x227f1c){_0x4b26aa=_0x4b26aa-0x0;var _0x31253d=_0xbd77[_0x4b26aa];return _0x31253d;};'use strict';var multer=require(_0x7bd7('0x0'));var util=require(_0x7bd7('0x1'));var path=require(_0x7bd7('0x2'));var timeout=require(_0x7bd7('0x3'));var express=require(_0x7bd7('0x4'));var router=express[_0x7bd7('0x5')]();var fs_extra=require(_0x7bd7('0x6'));var auth=require(_0x7bd7('0x7'));var interaction=require(_0x7bd7('0x8'));var config=require('../../config/environment');var controller=require(_0x7bd7('0x9'));router[_0x7bd7('0xa')]('/',auth['isAuthenticated'](),controller['index']);router[_0x7bd7('0xa')](_0x7bd7('0xb'),auth[_0x7bd7('0xc')](),controller[_0x7bd7('0xd')]);router[_0x7bd7('0xe')]('/',auth[_0x7bd7('0xc')](),controller[_0x7bd7('0xf')]);router[_0x7bd7('0x10')]('/:id',auth['isAuthenticated'](),controller[_0x7bd7('0x11')]);router[_0x7bd7('0x12')](_0x7bd7('0xb'),auth[_0x7bd7('0xc')](),controller[_0x7bd7('0x13')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x950b=['exports','ENUM','variable','customVariable','string','STRING','BOOLEAN','sequelize'];(function(_0x5ae7b7,_0x2abc4f){var _0x39eac0=function(_0x3b844e){while(--_0x3b844e){_0x5ae7b7['push'](_0x5ae7b7['shift']());}};_0x39eac0(++_0x2abc4f);}(_0x950b,0xb7));var _0xb950=function(_0x418432,_0x537680){_0x418432=_0x418432-0x0;var _0x3023a9=_0x950b[_0x418432];return _0x3023a9;};'use strict';var Sequelize=require(_0xb950('0x0'));module[_0xb950('0x1')]={'type':{'type':Sequelize[_0xb950('0x2')]('string',_0xb950('0x3'),_0xb950('0x4'),'keyValue','picklist'),'defaultValue':_0xb950('0x5')},'content':{'type':Sequelize[_0xb950('0x6')]},'key':{'type':Sequelize[_0xb950('0x6')]},'keyType':{'type':Sequelize[_0xb950('0x2')]('string',_0xb950('0x3'),_0xb950('0x4'))},'keyContent':{'type':Sequelize[_0xb950('0x6')]},'idField':{'type':Sequelize['STRING']},'nameField':{'type':Sequelize[_0xb950('0x6')]},'customField':{'type':Sequelize[_0xb950('0x7')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0xb950('0x6')]}};
\ No newline at end of file
+var _0xbb19=['exports','ENUM','string','variable','customVariable','keyValue','picklist','STRING'];(function(_0x2ea087,_0x17f324){var _0x23ebac=function(_0x5575d8){while(--_0x5575d8){_0x2ea087['push'](_0x2ea087['shift']());}};_0x23ebac(++_0x17f324);}(_0xbb19,0x98));var _0x9bb1=function(_0x3a1b7c,_0x223c8c){_0x3a1b7c=_0x3a1b7c-0x0;var _0x150244=_0xbb19[_0x3a1b7c];return _0x150244;};'use strict';var Sequelize=require('sequelize');module[_0x9bb1('0x0')]={'type':{'type':Sequelize[_0x9bb1('0x1')](_0x9bb1('0x2'),_0x9bb1('0x3'),_0x9bb1('0x4'),_0x9bb1('0x5'),_0x9bb1('0x6')),'defaultValue':_0x9bb1('0x2')},'content':{'type':Sequelize[_0x9bb1('0x7')]},'key':{'type':Sequelize['STRING']},'keyType':{'type':Sequelize[_0x9bb1('0x1')](_0x9bb1('0x2'),_0x9bb1('0x3'),_0x9bb1('0x4'))},'keyContent':{'type':Sequelize[_0x9bb1('0x7')]},'idField':{'type':Sequelize[_0x9bb1('0x7')]},'nameField':{'type':Sequelize['STRING']},'customField':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x9bb1('0x7')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x63d8=['end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','error','stack','name','send','index','map','type','key','model','query','filters','intersection','attributes','fields','hasOwnProperty','order','sort','where','pick','filter','merge','VIRTUAL','VtigerField','include','findAll','rows','catch','show','params','keys','rawAttributes','length','includeAll','find','create','body','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','ejs','fs-extra','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status'];(function(_0x4741a0,_0x37bfef){var _0x1ccfa7=function(_0x238342){while(--_0x238342){_0x4741a0['push'](_0x4741a0['shift']());}};_0x1ccfa7(++_0x37bfef);}(_0x63d8,0x81));var _0x863d=function(_0x374b8b,_0x926bb5){_0x374b8b=_0x374b8b-0x0;var _0xc00448=_0x63d8[_0x374b8b];return _0xc00448;};'use strict';var emlformat=require(_0x863d('0x0'));var rimraf=require(_0x863d('0x1'));var zipdir=require(_0x863d('0x2'));var jsonpatch=require(_0x863d('0x3'));var rp=require(_0x863d('0x4'));var moment=require(_0x863d('0x5'));var BPromise=require(_0x863d('0x6'));var Mustache=require(_0x863d('0x7'));var util=require(_0x863d('0x8'));var path=require(_0x863d('0x9'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x863d('0xa'));var fs=require('fs');var fs_extra=require(_0x863d('0xb'));var _=require('lodash');var squel=require(_0x863d('0xc'));var crypto=require(_0x863d('0xd'));var jsforce=require(_0x863d('0xe'));var deskjs=require(_0x863d('0xf'));var toCsv=require(_0x863d('0x10'));var querystring=require(_0x863d('0x11'));var Papa=require(_0x863d('0x12'));var Redis=require(_0x863d('0x13'));var authService=require(_0x863d('0x14'));var qs=require(_0x863d('0x15'));var as=require(_0x863d('0x16'));var hardwareService=require(_0x863d('0x17'));var logger=require(_0x863d('0x18'))(_0x863d('0x19'));var utils=require(_0x863d('0x1a'));var config=require('../../config/environment');var licenseUtil=require(_0x863d('0x1b'));var db=require(_0x863d('0x1c'))['db'];function respondWithStatusCode(_0x52ad79,_0x51f405){_0x51f405=_0x51f405||0xcc;return function(_0x3acfd2){if(_0x3acfd2){return _0x52ad79[_0x863d('0x1d')](_0x51f405);}return _0x52ad79[_0x863d('0x1e')](_0x51f405)[_0x863d('0x1f')]();};}function respondWithResult(_0x52ea34,_0x424cd2){_0x424cd2=_0x424cd2||0xc8;return function(_0x214035){if(_0x214035){return _0x52ea34[_0x863d('0x1e')](_0x424cd2)[_0x863d('0x20')](_0x214035);}};}function respondWithFilteredResult(_0x15438a,_0x50f861){return function(_0x310210){if(_0x310210){var _0x52f74e=typeof _0x50f861[_0x863d('0x21')]===_0x863d('0x22')&&typeof _0x50f861[_0x863d('0x23')]==='undefined';var _0x5b8946=_0x310210[_0x863d('0x24')];var _0x290c92=_0x52f74e?0x0:_0x50f861[_0x863d('0x21')];var _0x144ec2=_0x52f74e?_0x310210[_0x863d('0x24')]:_0x50f861[_0x863d('0x21')]+_0x50f861['limit'];var _0x4ad1df;if(_0x144ec2>=_0x5b8946){_0x144ec2=_0x5b8946;_0x4ad1df=0xc8;}else{_0x4ad1df=0xce;}_0x15438a['status'](_0x4ad1df);return _0x15438a[_0x863d('0x25')](_0x863d('0x26'),_0x290c92+'-'+_0x144ec2+'/'+_0x5b8946)['json'](_0x310210);}return null;};}function patchUpdates(_0x15430c){return function(_0x389413){try{jsonpatch[_0x863d('0x27')](_0x389413,_0x15430c,!![]);}catch(_0x35f4e2){return BPromise[_0x863d('0x28')](_0x35f4e2);}return _0x389413[_0x863d('0x29')]();};}function saveUpdates(_0x1763b1,_0x5348be){return function(_0x46febc){if(_0x46febc){return _0x46febc[_0x863d('0x2a')](_0x1763b1)[_0x863d('0x2b')](function(_0x3752dd){return _0x3752dd;});}return null;};}function removeEntity(_0x115970,_0x2be522){return function(_0x15c266){if(_0x15c266){return _0x15c266['destroy']()[_0x863d('0x2b')](function(){_0x115970['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x3d2a27,_0xec2830){return function(_0x51ce23){if(!_0x51ce23){_0x3d2a27[_0x863d('0x1d')](0x194);}return _0x51ce23;};}function handleError(_0x565f07,_0x3a4dd5){_0x3a4dd5=_0x3a4dd5||0x1f4;return function(_0x819252){logger[_0x863d('0x2c')](_0x819252[_0x863d('0x2d')]);if(_0x819252['name']){delete _0x819252[_0x863d('0x2e')];}_0x565f07['status'](_0x3a4dd5)[_0x863d('0x2f')](_0x819252);};}exports[_0x863d('0x30')]=function(_0x3c3674,_0x437ba0){var _0x381a81={},_0x3173d5={},_0x4c68f8={'count':0x0,'rows':[]};var _0x21203f=_[_0x863d('0x31')](db['VtigerField']['rawAttributes'],function(_0x58bfd5){return{'name':_0x58bfd5['fieldName'],'type':_0x58bfd5[_0x863d('0x32')][_0x863d('0x33')]};});_0x3173d5[_0x863d('0x34')]=_[_0x863d('0x31')](_0x21203f,_0x863d('0x2e'));_0x3173d5['query']=_['keys'](_0x3c3674[_0x863d('0x35')]);_0x3173d5[_0x863d('0x36')]=_[_0x863d('0x37')](_0x3173d5[_0x863d('0x34')],_0x3173d5[_0x863d('0x35')]);_0x381a81[_0x863d('0x38')]=_[_0x863d('0x37')](_0x3173d5[_0x863d('0x34')],qs[_0x863d('0x39')](_0x3c3674[_0x863d('0x35')][_0x863d('0x39')]));_0x381a81['attributes']=_0x381a81[_0x863d('0x38')]['length']?_0x381a81[_0x863d('0x38')]:_0x3173d5[_0x863d('0x34')];if(!_0x3c3674[_0x863d('0x35')][_0x863d('0x3a')]('nolimit')){_0x381a81[_0x863d('0x23')]=qs['limit'](_0x3c3674[_0x863d('0x35')][_0x863d('0x23')]);_0x381a81[_0x863d('0x21')]=qs['offset'](_0x3c3674[_0x863d('0x35')]['offset']);}_0x381a81[_0x863d('0x3b')]=qs[_0x863d('0x3c')](_0x3c3674['query'][_0x863d('0x3c')]);_0x381a81[_0x863d('0x3d')]=qs[_0x863d('0x36')](_[_0x863d('0x3e')](_0x3c3674['query'],_0x3173d5[_0x863d('0x36')]),_0x21203f);if(_0x3c3674[_0x863d('0x35')][_0x863d('0x3f')]){_0x381a81['where']=_[_0x863d('0x40')](_0x381a81['where'],{'$or':_[_0x863d('0x31')](_0x21203f,function(_0x45beb7){if(_0x45beb7[_0x863d('0x32')]!==_0x863d('0x41')){var _0x181e8e={};_0x181e8e[_0x45beb7[_0x863d('0x2e')]]={'$like':'%'+_0x3c3674['query'][_0x863d('0x3f')]+'%'};return _0x181e8e;}})});}_0x381a81=_[_0x863d('0x40')]({},_0x381a81,_0x3c3674['options']);var _0x37981e={'where':_0x381a81[_0x863d('0x3d')]};return db[_0x863d('0x42')]['count'](_0x37981e)[_0x863d('0x2b')](function(_0x1bc56d){_0x4c68f8[_0x863d('0x24')]=_0x1bc56d;if(_0x3c3674[_0x863d('0x35')]['includeAll']){_0x381a81[_0x863d('0x43')]=[{'all':!![]}];}return db[_0x863d('0x42')][_0x863d('0x44')](_0x381a81);})[_0x863d('0x2b')](function(_0x7695c2){_0x4c68f8[_0x863d('0x45')]=_0x7695c2;return _0x4c68f8;})[_0x863d('0x2b')](respondWithFilteredResult(_0x437ba0,_0x381a81))[_0x863d('0x46')](handleError(_0x437ba0,null));};exports[_0x863d('0x47')]=function(_0x303f38,_0x9595){var _0x11bb81={'raw':!![],'where':{'id':_0x303f38[_0x863d('0x48')]['id']}},_0x5d1175={};_0x5d1175[_0x863d('0x34')]=_[_0x863d('0x49')](db['VtigerField'][_0x863d('0x4a')]);_0x5d1175[_0x863d('0x35')]=_['keys'](_0x303f38[_0x863d('0x35')]);_0x5d1175[_0x863d('0x36')]=_['intersection'](_0x5d1175[_0x863d('0x34')],_0x5d1175[_0x863d('0x35')]);_0x11bb81[_0x863d('0x38')]=_['intersection'](_0x5d1175['model'],qs[_0x863d('0x39')](_0x303f38['query'][_0x863d('0x39')]));_0x11bb81[_0x863d('0x38')]=_0x11bb81[_0x863d('0x38')][_0x863d('0x4b')]?_0x11bb81['attributes']:_0x5d1175[_0x863d('0x34')];if(_0x303f38[_0x863d('0x35')][_0x863d('0x4c')]){_0x11bb81[_0x863d('0x43')]=[{'all':!![]}];}_0x11bb81=_[_0x863d('0x40')]({},_0x11bb81,_0x303f38['options']);return db[_0x863d('0x42')][_0x863d('0x4d')](_0x11bb81)[_0x863d('0x2b')](handleEntityNotFound(_0x9595,null))['then'](respondWithResult(_0x9595,null))[_0x863d('0x46')](handleError(_0x9595,null));};exports['create']=function(_0x24380d,_0x27decd){return db['VtigerField'][_0x863d('0x4e')](_0x24380d[_0x863d('0x4f')],{})[_0x863d('0x2b')](respondWithResult(_0x27decd,0xc9))[_0x863d('0x46')](handleError(_0x27decd,null));};exports[_0x863d('0x2a')]=function(_0x16cbe3,_0x1dd095){if(_0x16cbe3[_0x863d('0x4f')]['id']){delete _0x16cbe3[_0x863d('0x4f')]['id'];}return db[_0x863d('0x42')][_0x863d('0x4d')]({'where':{'id':_0x16cbe3[_0x863d('0x48')]['id']}})[_0x863d('0x2b')](handleEntityNotFound(_0x1dd095,null))[_0x863d('0x2b')](saveUpdates(_0x16cbe3[_0x863d('0x4f')],null))[_0x863d('0x2b')](respondWithResult(_0x1dd095,null))[_0x863d('0x46')](handleError(_0x1dd095,null));};exports['destroy']=function(_0x5d2dff,_0x2bb00b){return db['VtigerField'][_0x863d('0x4d')]({'where':{'id':_0x5d2dff['params']['id']}})['then'](handleEntityNotFound(_0x2bb00b,null))[_0x863d('0x2b')](removeEntity(_0x2bb00b,null))[_0x863d('0x46')](handleError(_0x2bb00b,null));};
\ No newline at end of file
+var _0x34fd=['../../mysqldb','status','json','undefined','count','offset','Content-Range','apply','reject','then','destroy','end','error','stack','name','send','index','rawAttributes','fieldName','type','model','map','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','limit','sort','pick','filter','merge','where','VIRTUAL','options','VtigerField','includeAll','include','findAll','rows','catch','show','params','create','body','update','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../config/license/util'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x34fd,0x1db));var _0xd34f=function(_0x4554bf,_0x31e785){_0x4554bf=_0x4554bf-0x0;var _0x31233c=_0x34fd[_0x4554bf];return _0x31233c;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xd34f('0x0'));var zipdir=require(_0xd34f('0x1'));var jsonpatch=require(_0xd34f('0x2'));var rp=require(_0xd34f('0x3'));var moment=require(_0xd34f('0x4'));var BPromise=require(_0xd34f('0x5'));var Mustache=require(_0xd34f('0x6'));var util=require(_0xd34f('0x7'));var path=require('path');var sox=require(_0xd34f('0x8'));var csv=require(_0xd34f('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0xd34f('0xa'));var crypto=require(_0xd34f('0xb'));var jsforce=require(_0xd34f('0xc'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xd34f('0xd'));var Papa=require(_0xd34f('0xe'));var Redis=require(_0xd34f('0xf'));var authService=require(_0xd34f('0x10'));var qs=require(_0xd34f('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xd34f('0x12'))(_0xd34f('0x13'));var utils=require('../../config/utils');var config=require(_0xd34f('0x14'));var licenseUtil=require(_0xd34f('0x15'));var db=require(_0xd34f('0x16'))['db'];function respondWithStatusCode(_0x45cdda,_0x182a68){_0x182a68=_0x182a68||0xcc;return function(_0x15264f){if(_0x15264f){return _0x45cdda['sendStatus'](_0x182a68);}return _0x45cdda['status'](_0x182a68)['end']();};}function respondWithResult(_0x2adb70,_0x25319c){_0x25319c=_0x25319c||0xc8;return function(_0x2d7046){if(_0x2d7046){return _0x2adb70[_0xd34f('0x17')](_0x25319c)[_0xd34f('0x18')](_0x2d7046);}};}function respondWithFilteredResult(_0x4af62e,_0x2df739){return function(_0x3e726a){if(_0x3e726a){var _0x33fbfc=typeof _0x2df739['offset']===_0xd34f('0x19')&&typeof _0x2df739['limit']==='undefined';var _0x1c3e97=_0x3e726a['count'];var _0x4f5c0e=_0x33fbfc?0x0:_0x2df739['offset'];var _0x18fc81=_0x33fbfc?_0x3e726a[_0xd34f('0x1a')]:_0x2df739[_0xd34f('0x1b')]+_0x2df739['limit'];var _0x333372;if(_0x18fc81>=_0x1c3e97){_0x18fc81=_0x1c3e97;_0x333372=0xc8;}else{_0x333372=0xce;}_0x4af62e['status'](_0x333372);return _0x4af62e['set'](_0xd34f('0x1c'),_0x4f5c0e+'-'+_0x18fc81+'/'+_0x1c3e97)[_0xd34f('0x18')](_0x3e726a);}return null;};}function patchUpdates(_0x4d04fc){return function(_0x4fc1bd){try{jsonpatch[_0xd34f('0x1d')](_0x4fc1bd,_0x4d04fc,!![]);}catch(_0x1b30c1){return BPromise[_0xd34f('0x1e')](_0x1b30c1);}return _0x4fc1bd['save']();};}function saveUpdates(_0x3e2dd0,_0x94b461){return function(_0x65a6e5){if(_0x65a6e5){return _0x65a6e5['update'](_0x3e2dd0)[_0xd34f('0x1f')](function(_0x4a893f){return _0x4a893f;});}return null;};}function removeEntity(_0x594805,_0x504f03){return function(_0x59f077){if(_0x59f077){return _0x59f077[_0xd34f('0x20')]()[_0xd34f('0x1f')](function(){_0x594805['status'](0xcc)[_0xd34f('0x21')]();});}};}function handleEntityNotFound(_0x1eab35,_0x573bdb){return function(_0x23a4fe){if(!_0x23a4fe){_0x1eab35['sendStatus'](0x194);}return _0x23a4fe;};}function handleError(_0x44ff93,_0x458170){_0x458170=_0x458170||0x1f4;return function(_0x32ca44){logger[_0xd34f('0x22')](_0x32ca44[_0xd34f('0x23')]);if(_0x32ca44[_0xd34f('0x24')]){delete _0x32ca44['name'];}_0x44ff93['status'](_0x458170)[_0xd34f('0x25')](_0x32ca44);};}exports[_0xd34f('0x26')]=function(_0x3818c3,_0x266b2f){var _0x297829={},_0x4d450a={},_0x217608={'count':0x0,'rows':[]};var _0x1e809e=_['map'](db['VtigerField'][_0xd34f('0x27')],function(_0x328788){return{'name':_0x328788[_0xd34f('0x28')],'type':_0x328788[_0xd34f('0x29')]['key']};});_0x4d450a[_0xd34f('0x2a')]=_[_0xd34f('0x2b')](_0x1e809e,_0xd34f('0x24'));_0x4d450a[_0xd34f('0x2c')]=_[_0xd34f('0x2d')](_0x3818c3[_0xd34f('0x2c')]);_0x4d450a[_0xd34f('0x2e')]=_[_0xd34f('0x2f')](_0x4d450a[_0xd34f('0x2a')],_0x4d450a[_0xd34f('0x2c')]);_0x297829[_0xd34f('0x30')]=_[_0xd34f('0x2f')](_0x4d450a[_0xd34f('0x2a')],qs[_0xd34f('0x31')](_0x3818c3[_0xd34f('0x2c')][_0xd34f('0x31')]));_0x297829[_0xd34f('0x30')]=_0x297829[_0xd34f('0x30')]['length']?_0x297829[_0xd34f('0x30')]:_0x4d450a[_0xd34f('0x2a')];if(!_0x3818c3[_0xd34f('0x2c')][_0xd34f('0x32')](_0xd34f('0x33'))){_0x297829[_0xd34f('0x34')]=qs[_0xd34f('0x34')](_0x3818c3['query'][_0xd34f('0x34')]);_0x297829[_0xd34f('0x1b')]=qs[_0xd34f('0x1b')](_0x3818c3['query'][_0xd34f('0x1b')]);}_0x297829['order']=qs[_0xd34f('0x35')](_0x3818c3['query']['sort']);_0x297829['where']=qs[_0xd34f('0x2e')](_[_0xd34f('0x36')](_0x3818c3['query'],_0x4d450a['filters']),_0x1e809e);if(_0x3818c3[_0xd34f('0x2c')][_0xd34f('0x37')]){_0x297829['where']=_[_0xd34f('0x38')](_0x297829[_0xd34f('0x39')],{'$or':_[_0xd34f('0x2b')](_0x1e809e,function(_0x55707f){if(_0x55707f[_0xd34f('0x29')]!==_0xd34f('0x3a')){var _0x437034={};_0x437034[_0x55707f[_0xd34f('0x24')]]={'$like':'%'+_0x3818c3['query'][_0xd34f('0x37')]+'%'};return _0x437034;}})});}_0x297829=_[_0xd34f('0x38')]({},_0x297829,_0x3818c3[_0xd34f('0x3b')]);var _0x38eb9f={'where':_0x297829[_0xd34f('0x39')]};return db[_0xd34f('0x3c')][_0xd34f('0x1a')](_0x38eb9f)['then'](function(_0x22af81){_0x217608[_0xd34f('0x1a')]=_0x22af81;if(_0x3818c3['query'][_0xd34f('0x3d')]){_0x297829[_0xd34f('0x3e')]=[{'all':!![]}];}return db[_0xd34f('0x3c')][_0xd34f('0x3f')](_0x297829);})[_0xd34f('0x1f')](function(_0x2cbf1e){_0x217608[_0xd34f('0x40')]=_0x2cbf1e;return _0x217608;})[_0xd34f('0x1f')](respondWithFilteredResult(_0x266b2f,_0x297829))[_0xd34f('0x41')](handleError(_0x266b2f,null));};exports[_0xd34f('0x42')]=function(_0x2782f1,_0x4952ec){var _0x222468={'raw':!![],'where':{'id':_0x2782f1[_0xd34f('0x43')]['id']}},_0x4e7f5e={};_0x4e7f5e[_0xd34f('0x2a')]=_[_0xd34f('0x2d')](db[_0xd34f('0x3c')]['rawAttributes']);_0x4e7f5e['query']=_[_0xd34f('0x2d')](_0x2782f1[_0xd34f('0x2c')]);_0x4e7f5e[_0xd34f('0x2e')]=_['intersection'](_0x4e7f5e[_0xd34f('0x2a')],_0x4e7f5e['query']);_0x222468[_0xd34f('0x30')]=_[_0xd34f('0x2f')](_0x4e7f5e[_0xd34f('0x2a')],qs[_0xd34f('0x31')](_0x2782f1['query'][_0xd34f('0x31')]));_0x222468[_0xd34f('0x30')]=_0x222468[_0xd34f('0x30')]['length']?_0x222468[_0xd34f('0x30')]:_0x4e7f5e[_0xd34f('0x2a')];if(_0x2782f1['query']['includeAll']){_0x222468[_0xd34f('0x3e')]=[{'all':!![]}];}_0x222468=_[_0xd34f('0x38')]({},_0x222468,_0x2782f1[_0xd34f('0x3b')]);return db[_0xd34f('0x3c')]['find'](_0x222468)[_0xd34f('0x1f')](handleEntityNotFound(_0x4952ec,null))['then'](respondWithResult(_0x4952ec,null))[_0xd34f('0x41')](handleError(_0x4952ec,null));};exports[_0xd34f('0x44')]=function(_0x239b23,_0xe26914){return db[_0xd34f('0x3c')][_0xd34f('0x44')](_0x239b23[_0xd34f('0x45')],{})[_0xd34f('0x1f')](respondWithResult(_0xe26914,0xc9))[_0xd34f('0x41')](handleError(_0xe26914,null));};exports[_0xd34f('0x46')]=function(_0x4f0204,_0x597e6a){if(_0x4f0204[_0xd34f('0x45')]['id']){delete _0x4f0204[_0xd34f('0x45')]['id'];}return db[_0xd34f('0x3c')]['find']({'where':{'id':_0x4f0204[_0xd34f('0x43')]['id']}})[_0xd34f('0x1f')](handleEntityNotFound(_0x597e6a,null))['then'](saveUpdates(_0x4f0204[_0xd34f('0x45')],null))[_0xd34f('0x1f')](respondWithResult(_0x597e6a,null))[_0xd34f('0x41')](handleError(_0x597e6a,null));};exports[_0xd34f('0x20')]=function(_0x30915b,_0x27c185){return db['VtigerField']['find']({'where':{'id':_0x30915b[_0xd34f('0x43')]['id']}})[_0xd34f('0x1f')](handleEntityNotFound(_0x27c185,null))['then'](removeEntity(_0x27c185,null))['catch'](handleError(_0x27c185,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4a6e=['./intVtigerField.attributes','exports','define','VtigerField','int_vtiger_fields','vtiger_unique_index','idField','FieldId','lodash','../../config/logger','api','request-promise','../../config/environment'];(function(_0x2c56bb,_0x59bfc2){var _0x1479a9=function(_0x1b53f7){while(--_0x1b53f7){_0x2c56bb['push'](_0x2c56bb['shift']());}};_0x1479a9(++_0x59bfc2);}(_0x4a6e,0x7d));var _0xe4a6=function(_0x3e21f4,_0x43d310){_0x3e21f4=_0x3e21f4-0x0;var _0x40fc49=_0x4a6e[_0x3e21f4];return _0x40fc49;};'use strict';var _=require(_0xe4a6('0x0'));var util=require('util');var logger=require(_0xe4a6('0x1'))(_0xe4a6('0x2'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xe4a6('0x3'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0xe4a6('0x4'));var attributes=require(_0xe4a6('0x5'));module[_0xe4a6('0x6')]=function(_0x23bf8f,_0xeb252c){return _0x23bf8f[_0xe4a6('0x7')](_0xe4a6('0x8'),attributes,{'tableName':_0xe4a6('0x9'),'paranoid':![],'indexes':[{'name':_0xe4a6('0xa'),'fields':[_0xe4a6('0xb'),_0xe4a6('0xc')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xaf6d=['../../config/logger','moment','path','rimraf','../../config/environment','./intVtigerField.attributes','exports','define','vtiger_unique_index','idField','FieldId','lodash','util'];(function(_0x886daf,_0x2fb6a3){var _0x4ff01e=function(_0x1cb52a){while(--_0x1cb52a){_0x886daf['push'](_0x886daf['shift']());}};_0x4ff01e(++_0x2fb6a3);}(_0xaf6d,0x19e));var _0xdaf6=function(_0x43eae8,_0x2993c3){_0x43eae8=_0x43eae8-0x0;var _0x437455=_0xaf6d[_0x43eae8];return _0x437455;};'use strict';var _=require(_0xdaf6('0x0'));var util=require(_0xdaf6('0x1'));var logger=require(_0xdaf6('0x2'))('api');var moment=require(_0xdaf6('0x3'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0xdaf6('0x4'));var rimraf=require(_0xdaf6('0x5'));var config=require(_0xdaf6('0x6'));var attributes=require(_0xdaf6('0x7'));module[_0xdaf6('0x8')]=function(_0x143454,_0x403753){return _0x143454[_0xdaf6('0x9')]('VtigerField',attributes,{'tableName':'int_vtiger_fields','paranoid':![],'indexes':[{'name':_0xdaf6('0xa'),'fields':[_0xdaf6('0xb'),_0xdaf6('0xc')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x614b=['rpc','jayson/promise','client','http','request','then','request\x20sent','debug','VtigerField,\x20%s,\x20%s,\x20%s','stringify','error','code','VtigerField,\x20%s,\x20%s','message','info','catch','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils'];(function(_0x5ce934,_0x1c4f77){var _0x52b74e=function(_0x3cd84c){while(--_0x3cd84c){_0x5ce934['push'](_0x5ce934['shift']());}};_0x52b74e(++_0x1c4f77);}(_0x614b,0x8e));var _0xb614=function(_0x4a949e,_0xb4a1fb){_0x4a949e=_0x4a949e-0x0;var _0x2bb396=_0x614b[_0x4a949e];return _0x2bb396;};'use strict';var _=require('lodash');var util=require('util');var moment=require('moment');var BPromise=require(_0xb614('0x0'));var rs=require(_0xb614('0x1'));var fs=require('fs');var Redis=require(_0xb614('0x2'));var db=require(_0xb614('0x3'))['db'];var utils=require(_0xb614('0x4'));var logger=require('../../config/logger')(_0xb614('0x5'));var config=require('../../config/environment');var jayson=require(_0xb614('0x6'));var client=jayson[_0xb614('0x7')][_0xb614('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x24dd68,_0x11d9e5,_0x310688){return new BPromise(function(_0x1477c6,_0x490d54){return client[_0xb614('0x9')](_0x24dd68,_0x310688)[_0xb614('0xa')](function(_0x14648f){logger['info']('VtigerField,\x20%s,\x20%s',_0x11d9e5,_0xb614('0xb'));logger[_0xb614('0xc')](_0xb614('0xd'),_0x11d9e5,'request\x20sent',JSON[_0xb614('0xe')](_0x14648f));if(_0x14648f[_0xb614('0xf')]){if(_0x14648f[_0xb614('0xf')][_0xb614('0x10')]===0x1f4){logger[_0xb614('0xf')](_0xb614('0x11'),_0x11d9e5,_0x14648f[_0xb614('0xf')][_0xb614('0x12')]);return _0x490d54(_0x14648f[_0xb614('0xf')]['message']);}logger[_0xb614('0xf')](_0xb614('0x11'),_0x11d9e5,_0x14648f['error']['message']);return _0x1477c6(_0x14648f['error'][_0xb614('0x12')]);}else{logger[_0xb614('0x13')](_0xb614('0x11'),_0x11d9e5,_0xb614('0xb'));_0x1477c6(_0x14648f['result'][_0xb614('0x12')]);}})[_0xb614('0x14')](function(_0x299de2){logger['error'](_0xb614('0x11'),_0x11d9e5,_0x299de2);_0x490d54(_0x299de2);});});}
\ No newline at end of file
+var _0xaa9c=['result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','request','then','VtigerField,\x20%s,\x20%s','request\x20sent','debug','VtigerField,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info'];(function(_0x326e7f,_0xe8da32){var _0x5b11fe=function(_0x456a4b){while(--_0x456a4b){_0x326e7f['push'](_0x326e7f['shift']());}};_0x5b11fe(++_0xe8da32);}(_0xaa9c,0x1e2));var _0xcaa9=function(_0x599f41,_0x4db732){_0x599f41=_0x599f41-0x0;var _0x2e4d58=_0xaa9c[_0x599f41];return _0x2e4d58;};'use strict';var _=require(_0xcaa9('0x0'));var util=require(_0xcaa9('0x1'));var moment=require(_0xcaa9('0x2'));var BPromise=require(_0xcaa9('0x3'));var rs=require(_0xcaa9('0x4'));var fs=require('fs');var Redis=require(_0xcaa9('0x5'));var db=require(_0xcaa9('0x6'))['db'];var utils=require(_0xcaa9('0x7'));var logger=require(_0xcaa9('0x8'))(_0xcaa9('0x9'));var config=require(_0xcaa9('0xa'));var jayson=require('jayson/promise');var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x5c092e,_0x13b8f5,_0x3f85b5){return new BPromise(function(_0x1ab43a,_0x509714){return client[_0xcaa9('0xb')](_0x5c092e,_0x3f85b5)[_0xcaa9('0xc')](function(_0xff2816){logger['info'](_0xcaa9('0xd'),_0x13b8f5,_0xcaa9('0xe'));logger[_0xcaa9('0xf')](_0xcaa9('0x10'),_0x13b8f5,_0xcaa9('0xe'),JSON[_0xcaa9('0x11')](_0xff2816));if(_0xff2816[_0xcaa9('0x12')]){if(_0xff2816[_0xcaa9('0x12')][_0xcaa9('0x13')]===0x1f4){logger[_0xcaa9('0x12')](_0xcaa9('0xd'),_0x13b8f5,_0xff2816[_0xcaa9('0x12')][_0xcaa9('0x14')]);return _0x509714(_0xff2816[_0xcaa9('0x12')][_0xcaa9('0x14')]);}logger[_0xcaa9('0x12')](_0xcaa9('0xd'),_0x13b8f5,_0xff2816[_0xcaa9('0x12')]['message']);return _0x1ab43a(_0xff2816['error'][_0xcaa9('0x14')]);}else{logger[_0xcaa9('0x15')](_0xcaa9('0xd'),_0x13b8f5,_0xcaa9('0xe'));_0x1ab43a(_0xff2816[_0xcaa9('0x16')][_0xcaa9('0x14')]);}})[_0xcaa9('0x17')](function(_0x16f1ef){logger[_0xcaa9('0x12')](_0xcaa9('0xd'),_0x13b8f5,_0x16f1ef);_0x509714(_0x16f1ef);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc403=['getConfigurations','/:id/fields','getFields','post','create','addConfiguration','put','update','delete','exports','multer','path','connect-timeout','express','fs-extra','../../components/interaction/service','./intZendeskAccount.controller','get','index','/:id','isAuthenticated','show','/:id/configurations'];(function(_0x27cb29,_0x5d1d08){var _0x20487c=function(_0x1d56fe){while(--_0x1d56fe){_0x27cb29['push'](_0x27cb29['shift']());}};_0x20487c(++_0x5d1d08);}(_0xc403,0xc2));var _0x3c40=function(_0x209526,_0x40a1f0){_0x209526=_0x209526-0x0;var _0x40d077=_0xc403[_0x209526];return _0x40d077;};'use strict';var multer=require(_0x3c40('0x0'));var util=require('util');var path=require(_0x3c40('0x1'));var timeout=require(_0x3c40('0x2'));var express=require(_0x3c40('0x3'));var router=express['Router']();var fs_extra=require(_0x3c40('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x3c40('0x5'));var config=require('../../config/environment');var controller=require(_0x3c40('0x6'));router[_0x3c40('0x7')]('/',auth['isAuthenticated'](),controller[_0x3c40('0x8')]);router['get'](_0x3c40('0x9'),auth[_0x3c40('0xa')](),controller[_0x3c40('0xb')]);router[_0x3c40('0x7')](_0x3c40('0xc'),auth[_0x3c40('0xa')](),controller[_0x3c40('0xd')]);router[_0x3c40('0x7')](_0x3c40('0xe'),auth[_0x3c40('0xa')](),controller[_0x3c40('0xf')]);router[_0x3c40('0x10')]('/',auth[_0x3c40('0xa')](),controller[_0x3c40('0x11')]);router['post'](_0x3c40('0xc'),auth[_0x3c40('0xa')](),controller[_0x3c40('0x12')]);router[_0x3c40('0x13')]('/:id',auth[_0x3c40('0xa')](),controller[_0x3c40('0x14')]);router[_0x3c40('0x15')](_0x3c40('0x9'),auth[_0x3c40('0xa')](),controller['destroy']);module[_0x3c40('0x16')]=router;
\ No newline at end of file
+var _0x5219=['post','create','addConfiguration','put','delete','/:id','destroy','exports','multer','util','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./intZendeskAccount.controller','get','isAuthenticated','index','show','/:id/configurations','getConfigurations','/:id/fields','getFields'];(function(_0x3947c9,_0x4d6c97){var _0x2e7871=function(_0x1236cc){while(--_0x1236cc){_0x3947c9['push'](_0x3947c9['shift']());}};_0x2e7871(++_0x4d6c97);}(_0x5219,0x80));var _0x9521=function(_0x1c7852,_0x217af2){_0x1c7852=_0x1c7852-0x0;var _0xb5b2b8=_0x5219[_0x1c7852];return _0xb5b2b8;};'use strict';var multer=require(_0x9521('0x0'));var util=require(_0x9521('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0x9521('0x2'));var router=express[_0x9521('0x3')]();var fs_extra=require(_0x9521('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x9521('0x5'));var config=require(_0x9521('0x6'));var controller=require(_0x9521('0x7'));router[_0x9521('0x8')]('/',auth[_0x9521('0x9')](),controller[_0x9521('0xa')]);router[_0x9521('0x8')]('/:id',auth[_0x9521('0x9')](),controller[_0x9521('0xb')]);router[_0x9521('0x8')](_0x9521('0xc'),auth[_0x9521('0x9')](),controller[_0x9521('0xd')]);router['get'](_0x9521('0xe'),auth['isAuthenticated'](),controller[_0x9521('0xf')]);router[_0x9521('0x10')]('/',auth[_0x9521('0x9')](),controller[_0x9521('0x11')]);router[_0x9521('0x10')]('/:id/configurations',auth[_0x9521('0x9')](),controller[_0x9521('0x12')]);router[_0x9521('0x13')]('/:id',auth['isAuthenticated'](),controller['update']);router[_0x9521('0x14')](_0x9521('0x15'),auth[_0x9521('0x9')](),controller[_0x9521('0x16')]);module[_0x9521('0x17')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0ef4=['newTab','exports','STRING','ENUM','password','integrationTab'];(function(_0x5ddb1c,_0x5ea4df){var _0x354adc=function(_0x2dfb1f){while(--_0x2dfb1f){_0x5ddb1c['push'](_0x5ddb1c['shift']());}};_0x354adc(++_0x5ea4df);}(_0x0ef4,0xc7));var _0x40ef=function(_0x552fce,_0x3f24bc){_0x552fce=_0x552fce-0x0;var _0x3e27a2=_0x0ef4[_0x552fce];return _0x3e27a2;};'use strict';var Sequelize=require('sequelize');module[_0x40ef('0x0')]={'name':{'type':Sequelize[_0x40ef('0x1')]},'description':{'type':Sequelize[_0x40ef('0x1')]},'username':{'type':Sequelize['STRING'],'unique':'username'},'password':{'type':Sequelize[_0x40ef('0x1')]},'token':{'type':Sequelize[_0x40ef('0x1')]},'remoteUri':{'type':Sequelize[_0x40ef('0x1')],'unique':'remoteUri'},'authType':{'type':Sequelize[_0x40ef('0x2')]('password','token'),'defaultValue':_0x40ef('0x3')},'serverUrl':{'type':Sequelize[_0x40ef('0x1')],'allowNull':![]},'type':{'type':Sequelize[_0x40ef('0x2')](_0x40ef('0x4'),_0x40ef('0x5')),'defaultValue':_0x40ef('0x4')}};
\ No newline at end of file
+var _0xeda8=['sequelize','exports','STRING','username','remoteUri','ENUM','password','token','integrationTab','newTab'];(function(_0x69752e,_0x2579f6){var _0x506a36=function(_0x1793bc){while(--_0x1793bc){_0x69752e['push'](_0x69752e['shift']());}};_0x506a36(++_0x2579f6);}(_0xeda8,0x104));var _0x8eda=function(_0x5edb8a,_0x85747){_0x5edb8a=_0x5edb8a-0x0;var _0x56abfd=_0xeda8[_0x5edb8a];return _0x56abfd;};'use strict';var Sequelize=require(_0x8eda('0x0'));module[_0x8eda('0x1')]={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0x8eda('0x2')]},'username':{'type':Sequelize[_0x8eda('0x2')],'unique':_0x8eda('0x3')},'password':{'type':Sequelize[_0x8eda('0x2')]},'token':{'type':Sequelize[_0x8eda('0x2')]},'remoteUri':{'type':Sequelize[_0x8eda('0x2')],'unique':_0x8eda('0x4')},'authType':{'type':Sequelize[_0x8eda('0x5')](_0x8eda('0x6'),_0x8eda('0x7')),'defaultValue':_0x8eda('0x6')},'serverUrl':{'type':Sequelize[_0x8eda('0x2')],'allowNull':![]},'type':{'type':Sequelize['ENUM'](_0x8eda('0x8'),_0x8eda('0x9')),'defaultValue':_0x8eda('0x8')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7af2=['pick','VIRTUAL','filter','merge','options','includeAll','findAll','params','rawAttributes','include','catch','create','body','find','getConfigurations','findOne','ZendeskConfiguration','length','hasOwnProperty','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions','getDescriptions','ZendeskField','getFields','username','password','token','authType','remoteUri','lastIndexOf','GET','format','%s/%s','ticket_fields','headers','Basic\x20%s','toString','base64','%s/token:%s','Unknown\x20authentication\x20type','group','assignee','remove','includes','position','title','system_field_options','custom_field_options','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/logger','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','save','update','then','error','stack','name','send','index','map','ZendeskAccount','fieldName','type','key','model','keys','query','intersection','attributes','fields','nolimit','order','sort','where','filters'];(function(_0x49f08a,_0x4529c3){var _0x36c541=function(_0x4c28f6){while(--_0x4c28f6){_0x49f08a['push'](_0x49f08a['shift']());}};_0x36c541(++_0x4529c3);}(_0x7af2,0x119));var _0x27af=function(_0x55642e,_0x3f7ab6){_0x55642e=_0x55642e-0x0;var _0x3e5fc9=_0x7af2[_0x55642e];return _0x3e5fc9;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x27af('0x0'));var zipdir=require(_0x27af('0x1'));var jsonpatch=require(_0x27af('0x2'));var rp=require(_0x27af('0x3'));var moment=require('moment');var BPromise=require(_0x27af('0x4'));var Mustache=require(_0x27af('0x5'));var util=require(_0x27af('0x6'));var path=require(_0x27af('0x7'));var sox=require(_0x27af('0x8'));var csv=require(_0x27af('0x9'));var ejs=require(_0x27af('0xa'));var fs=require('fs');var fs_extra=require(_0x27af('0xb'));var _=require(_0x27af('0xc'));var squel=require('squel');var crypto=require(_0x27af('0xd'));var jsforce=require(_0x27af('0xe'));var deskjs=require(_0x27af('0xf'));var toCsv=require('to-csv');var querystring=require(_0x27af('0x10'));var Papa=require(_0x27af('0x11'));var Redis=require(_0x27af('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x27af('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x27af('0x14'))('api');var utils=require('../../config/utils');var config=require(_0x27af('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x27af('0x16'))['db'];var integrations=require('../../components/integrations/configuration');function respondWithStatusCode(_0x406340,_0x203501){_0x203501=_0x203501||0xcc;return function(_0x1fd964){if(_0x1fd964){return _0x406340[_0x27af('0x17')](_0x203501);}return _0x406340[_0x27af('0x18')](_0x203501)[_0x27af('0x19')]();};}function respondWithResult(_0x234825,_0x3da435){_0x3da435=_0x3da435||0xc8;return function(_0x423222){if(_0x423222){return _0x234825[_0x27af('0x18')](_0x3da435)[_0x27af('0x1a')](_0x423222);}};}function respondWithFilteredResult(_0x9c2d4b,_0x2d7800){return function(_0x3102c4){if(_0x3102c4){var _0x2bfc9=typeof _0x2d7800[_0x27af('0x1b')]===_0x27af('0x1c')&&typeof _0x2d7800[_0x27af('0x1d')]==='undefined';var _0x315661=_0x3102c4[_0x27af('0x1e')];var _0x5997ae=_0x2bfc9?0x0:_0x2d7800['offset'];var _0x20a6d7=_0x2bfc9?_0x3102c4[_0x27af('0x1e')]:_0x2d7800[_0x27af('0x1b')]+_0x2d7800[_0x27af('0x1d')];var _0xec699a;if(_0x20a6d7>=_0x315661){_0x20a6d7=_0x315661;_0xec699a=0xc8;}else{_0xec699a=0xce;}_0x9c2d4b['status'](_0xec699a);return _0x9c2d4b[_0x27af('0x1f')](_0x27af('0x20'),_0x5997ae+'-'+_0x20a6d7+'/'+_0x315661)[_0x27af('0x1a')](_0x3102c4);}return null;};}function patchUpdates(_0x5e7c19){return function(_0x19afb1){try{jsonpatch[_0x27af('0x21')](_0x19afb1,_0x5e7c19,!![]);}catch(_0x2ae47e){return BPromise['reject'](_0x2ae47e);}return _0x19afb1[_0x27af('0x22')]();};}function saveUpdates(_0x2460f4,_0x30720b){return function(_0x2af76d){if(_0x2af76d){return _0x2af76d[_0x27af('0x23')](_0x2460f4)[_0x27af('0x24')](function(_0x43dd9e){return _0x43dd9e;});}return null;};}function removeEntity(_0x35b36d,_0x2e1bb0){return function(_0x49780b){if(_0x49780b){return _0x49780b['destroy']()['then'](function(){_0x35b36d[_0x27af('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0x12625c,_0x396326){return function(_0x4ba49f){if(!_0x4ba49f){_0x12625c[_0x27af('0x17')](0x194);}return _0x4ba49f;};}function handleError(_0x1d9341,_0x463e36){_0x463e36=_0x463e36||0x1f4;return function(_0x424490){logger[_0x27af('0x25')](_0x424490[_0x27af('0x26')]);if(_0x424490[_0x27af('0x27')]){delete _0x424490['name'];}_0x1d9341[_0x27af('0x18')](_0x463e36)[_0x27af('0x28')](_0x424490);};}exports[_0x27af('0x29')]=function(_0xe009a,_0x25d65a){var _0xa08dd9={},_0x42a5b7={},_0x2b26ac={'count':0x0,'rows':[]};var _0x4406e2=_[_0x27af('0x2a')](db[_0x27af('0x2b')]['rawAttributes'],function(_0x15e867){return{'name':_0x15e867[_0x27af('0x2c')],'type':_0x15e867[_0x27af('0x2d')][_0x27af('0x2e')]};});_0x42a5b7[_0x27af('0x2f')]=_[_0x27af('0x2a')](_0x4406e2,'name');_0x42a5b7['query']=_[_0x27af('0x30')](_0xe009a[_0x27af('0x31')]);_0x42a5b7['filters']=_[_0x27af('0x32')](_0x42a5b7[_0x27af('0x2f')],_0x42a5b7[_0x27af('0x31')]);_0xa08dd9[_0x27af('0x33')]=_[_0x27af('0x32')](_0x42a5b7[_0x27af('0x2f')],qs[_0x27af('0x34')](_0xe009a[_0x27af('0x31')][_0x27af('0x34')]));_0xa08dd9[_0x27af('0x33')]=_0xa08dd9[_0x27af('0x33')]['length']?_0xa08dd9['attributes']:_0x42a5b7[_0x27af('0x2f')];if(!_0xe009a[_0x27af('0x31')]['hasOwnProperty'](_0x27af('0x35'))){_0xa08dd9[_0x27af('0x1d')]=qs['limit'](_0xe009a[_0x27af('0x31')][_0x27af('0x1d')]);_0xa08dd9[_0x27af('0x1b')]=qs[_0x27af('0x1b')](_0xe009a[_0x27af('0x31')]['offset']);}_0xa08dd9[_0x27af('0x36')]=qs[_0x27af('0x37')](_0xe009a['query']['sort']);_0xa08dd9[_0x27af('0x38')]=qs[_0x27af('0x39')](_[_0x27af('0x3a')](_0xe009a[_0x27af('0x31')],_0x42a5b7[_0x27af('0x39')]),_0x4406e2);if(_0xe009a[_0x27af('0x31')]['filter']){_0xa08dd9[_0x27af('0x38')]=_['merge'](_0xa08dd9[_0x27af('0x38')],{'$or':_[_0x27af('0x2a')](_0x4406e2,function(_0x2a6b14){if(_0x2a6b14[_0x27af('0x2d')]!==_0x27af('0x3b')){var _0x5f5504={};_0x5f5504[_0x2a6b14[_0x27af('0x27')]]={'$like':'%'+_0xe009a[_0x27af('0x31')][_0x27af('0x3c')]+'%'};return _0x5f5504;}})});}_0xa08dd9=_[_0x27af('0x3d')]({},_0xa08dd9,_0xe009a[_0x27af('0x3e')]);var _0x32b558={'where':_0xa08dd9[_0x27af('0x38')]};return db[_0x27af('0x2b')][_0x27af('0x1e')](_0x32b558)[_0x27af('0x24')](function(_0xda424e){_0x2b26ac[_0x27af('0x1e')]=_0xda424e;if(_0xe009a[_0x27af('0x31')][_0x27af('0x3f')]){_0xa08dd9['include']=[{'all':!![]}];}return db[_0x27af('0x2b')][_0x27af('0x40')](_0xa08dd9);})[_0x27af('0x24')](function(_0x373c05){_0x2b26ac['rows']=_0x373c05;return _0x2b26ac;})[_0x27af('0x24')](respondWithFilteredResult(_0x25d65a,_0xa08dd9))['catch'](handleError(_0x25d65a,null));};exports['show']=function(_0x2425dd,_0x3c9c81){var _0x279f99={'raw':![],'where':{'id':_0x2425dd[_0x27af('0x41')]['id']}},_0x17efd6={};_0x17efd6[_0x27af('0x2f')]=_[_0x27af('0x30')](db[_0x27af('0x2b')][_0x27af('0x42')]);_0x17efd6[_0x27af('0x31')]=_[_0x27af('0x30')](_0x2425dd[_0x27af('0x31')]);_0x17efd6['filters']=_[_0x27af('0x32')](_0x17efd6[_0x27af('0x2f')],_0x17efd6['query']);_0x279f99['attributes']=_[_0x27af('0x32')](_0x17efd6[_0x27af('0x2f')],qs[_0x27af('0x34')](_0x2425dd[_0x27af('0x31')][_0x27af('0x34')]));_0x279f99['attributes']=_0x279f99[_0x27af('0x33')]['length']?_0x279f99[_0x27af('0x33')]:_0x17efd6[_0x27af('0x2f')];if(_0x2425dd[_0x27af('0x31')][_0x27af('0x3f')]){_0x279f99[_0x27af('0x43')]=[{'all':!![]}];}_0x279f99=_[_0x27af('0x3d')]({},_0x279f99,_0x2425dd[_0x27af('0x3e')]);return db['ZendeskAccount']['find'](_0x279f99)[_0x27af('0x24')](handleEntityNotFound(_0x3c9c81,null))['then'](respondWithResult(_0x3c9c81,null))[_0x27af('0x44')](handleError(_0x3c9c81,null));};exports[_0x27af('0x45')]=function(_0x226025,_0x389962){return db[_0x27af('0x2b')][_0x27af('0x45')](_0x226025[_0x27af('0x46')],{})['then'](respondWithResult(_0x389962,0xc9))[_0x27af('0x44')](handleError(_0x389962,null));};exports[_0x27af('0x23')]=function(_0x20e180,_0x3fdc0e){if(_0x20e180[_0x27af('0x46')]['id']){delete _0x20e180['body']['id'];}return db[_0x27af('0x2b')][_0x27af('0x47')]({'where':{'id':_0x20e180[_0x27af('0x41')]['id']}})['then'](handleEntityNotFound(_0x3fdc0e,null))['then'](saveUpdates(_0x20e180[_0x27af('0x46')],null))[_0x27af('0x24')](respondWithResult(_0x3fdc0e,null))[_0x27af('0x44')](handleError(_0x3fdc0e,null));};exports['destroy']=function(_0x495794,_0x2fad23){return db['ZendeskAccount'][_0x27af('0x47')]({'where':{'id':_0x495794[_0x27af('0x41')]['id']}})[_0x27af('0x24')](handleEntityNotFound(_0x2fad23,null))[_0x27af('0x24')](removeEntity(_0x2fad23,null))[_0x27af('0x44')](handleError(_0x2fad23,null));};exports[_0x27af('0x48')]=function(_0x123533,_0x374794,_0x1b6d94){var _0x24d8bf={};var _0x23369a={};var _0x5c02c1;var _0x76ed78;return db[_0x27af('0x2b')][_0x27af('0x49')]({'where':{'id':_0x123533[_0x27af('0x41')]['id']}})[_0x27af('0x24')](handleEntityNotFound(_0x374794,null))[_0x27af('0x24')](function(_0x20c155){if(_0x20c155){_0x5c02c1=_0x20c155;_0x23369a[_0x27af('0x2f')]=_['keys'](db[_0x27af('0x4a')]['rawAttributes']);_0x23369a[_0x27af('0x31')]=_[_0x27af('0x30')](_0x123533[_0x27af('0x31')]);_0x23369a['filters']=_[_0x27af('0x32')](_0x23369a['model'],_0x23369a[_0x27af('0x31')]);_0x24d8bf[_0x27af('0x33')]=_[_0x27af('0x32')](_0x23369a['model'],qs[_0x27af('0x34')](_0x123533['query'][_0x27af('0x34')]));_0x24d8bf['attributes']=_0x24d8bf[_0x27af('0x33')][_0x27af('0x4b')]?_0x24d8bf[_0x27af('0x33')]:_0x23369a['model'];_0x24d8bf['order']=qs[_0x27af('0x37')](_0x123533[_0x27af('0x31')][_0x27af('0x37')]);_0x24d8bf[_0x27af('0x38')]=qs['filters'](_[_0x27af('0x3a')](_0x123533[_0x27af('0x31')],_0x23369a[_0x27af('0x39')]));if(_0x123533[_0x27af('0x31')][_0x27af('0x3c')]){_0x24d8bf[_0x27af('0x38')]=_['merge'](_0x24d8bf[_0x27af('0x38')],{'$or':_[_0x27af('0x2a')](_0x24d8bf[_0x27af('0x33')],function(_0x2401c7){var _0x49eb46={};_0x49eb46[_0x2401c7]={'$like':'%'+_0x123533[_0x27af('0x31')]['filter']+'%'};return _0x49eb46;})});}_0x24d8bf=_[_0x27af('0x3d')]({},_0x24d8bf,_0x123533[_0x27af('0x3e')]);return _0x5c02c1['getConfigurations'](_0x24d8bf);}})[_0x27af('0x24')](function(_0x13a5a8){if(_0x13a5a8){_0x76ed78=_0x13a5a8['length'];if(!_0x123533['query'][_0x27af('0x4c')](_0x27af('0x35'))){_0x24d8bf[_0x27af('0x1d')]=qs['limit'](_0x123533[_0x27af('0x31')][_0x27af('0x1d')]);_0x24d8bf['offset']=qs[_0x27af('0x1b')](_0x123533[_0x27af('0x31')]['offset']);}return _0x5c02c1['getConfigurations'](_0x24d8bf);}})[_0x27af('0x24')](function(_0x1fa50b){if(_0x1fa50b){return _0x1fa50b?{'count':_0x76ed78,'rows':_0x1fa50b}:null;}})['then'](respondWithResult(_0x374794,null))['catch'](handleError(_0x374794,null));};exports[_0x27af('0x4d')]=function(_0xf97695,_0x2a8534,_0x266220){if(_0xf97695[_0x27af('0x46')]['id']){delete _0xf97695[_0x27af('0x46')]['id'];}return db[_0x27af('0x2b')]['findOne']({'where':{'id':_0xf97695['params']['id']}})[_0x27af('0x24')](handleEntityNotFound(_0x2a8534,null))[_0x27af('0x24')](function(_0xa692f6){if(_0xa692f6){_0xf97695[_0x27af('0x46')][_0x27af('0x4e')]=_0xa692f6['id'];_0xf97695[_0x27af('0x46')][_0x27af('0x4f')]=integrations[_0x27af('0x50')](_0xf97695[_0x27af('0x46')][_0x27af('0x51')],_0xf97695[_0x27af('0x46')][_0x27af('0x2d')]);_0xf97695[_0x27af('0x46')][_0x27af('0x52')]=integrations[_0x27af('0x53')](_0xf97695[_0x27af('0x46')][_0x27af('0x51')],_0xf97695['body'][_0x27af('0x2d')]);return db[_0x27af('0x4a')]['create'](_0xf97695[_0x27af('0x46')],{'include':[{'model':db[_0x27af('0x54')],'as':_0x27af('0x4f')},{'model':db[_0x27af('0x54')],'as':_0x27af('0x52')}]});}return null;})[_0x27af('0x24')](respondWithResult(_0x2a8534,null))['catch'](handleError(_0x2a8534,null));};exports[_0x27af('0x55')]=function(_0x31a595,_0x3a2958,_0x4ab463){var _0x5d7af4='';return db[_0x27af('0x2b')]['findOne']({'where':{'id':_0x31a595[_0x27af('0x41')]['id']},'attributes':['id',_0x27af('0x56'),_0x27af('0x57'),_0x27af('0x58'),_0x27af('0x59'),'remoteUri']})[_0x27af('0x24')](handleEntityNotFound(_0x3a2958,null))[_0x27af('0x24')](function(_0x4ac2a3){if(_0x4ac2a3){_0x5d7af4=_0x4ac2a3[_0x27af('0x5a')];var _0xc0a98c=_0x5d7af4['slice'](-0x1);if(_0xc0a98c==='/'){_0x5d7af4=_0x5d7af4['substring'](0x0,_0x5d7af4[_0x27af('0x5b')](_0xc0a98c));}var _0x287f7c={'method':_0x27af('0x5c'),'uri':util[_0x27af('0x5d')](_0x27af('0x5e'),_0x5d7af4,_0x27af('0x5f')),'json':!![]};switch(_0x4ac2a3[_0x27af('0x59')]){case'password':_0x287f7c[_0x27af('0x60')]={'Authorization':util[_0x27af('0x5d')](_0x27af('0x61'),new Buffer(util[_0x27af('0x5d')]('%s:%s',_0x4ac2a3['username'],_0x4ac2a3[_0x27af('0x57')]))[_0x27af('0x62')](_0x27af('0x63')))};break;case _0x27af('0x58'):_0x287f7c['headers']={'Authorization':util['format']('Basic\x20%s',new Buffer(util[_0x27af('0x5d')](_0x27af('0x64'),_0x4ac2a3[_0x27af('0x56')],_0x4ac2a3[_0x27af('0x58')]))[_0x27af('0x62')](_0x27af('0x63')))};break;default:throw new db['Sequelize']['ValidationError'](_0x27af('0x65'));}return rp(_0x287f7c);}})[_0x27af('0x24')](function(_0x55637f){if(_0x55637f){var _0x2c3d30=['subject','description',_0x27af('0x66'),_0x27af('0x67')];_[_0x27af('0x68')](_0x55637f[_0x27af('0x5f')],function(_0x2b7e18){return _0x2c3d30[_0x27af('0x69')](_0x2b7e18[_0x27af('0x2d')]);});return{'count':_0x55637f[_0x27af('0x5f')][_0x27af('0x4b')],'rows':_[_0x27af('0x2a')](_0x55637f[_0x27af('0x5f')],function(_0x4dd124){return{'id':_0x4dd124['id'],'name':_0x4dd124[_0x27af('0x6a')]>0x7?_0x4dd124[_0x27af('0x6b')]:_0x4dd124[_0x27af('0x2d')],'custom':_0x4dd124['position']>0x7?!![]:![],'options':_0x4dd124[_0x27af('0x6c')]?_0x4dd124[_0x27af('0x6c')]:_0x4dd124[_0x27af('0x6d')]?_0x4dd124['custom_field_options']:[]};})};}})[_0x27af('0x24')](respondWithResult(_0x3a2958,null))['catch'](function(_0x118d06){var _0x9350fa=_0x31a595[_0x27af('0x31')][_0x27af('0x6e')]?0x1f4:_0x118d06[_0x27af('0x6f')]||0x1f4;logger[_0x27af('0x25')](_0x27af('0x70'),_0x27af('0x55'),_0x9350fa,JSON['stringify'](_0x118d06));delete _0x118d06[_0x27af('0x27')];if(_0x9350fa===0x191){_0x9350fa=0x190;}_0x3a2958['status'](_0x9350fa)[_0x27af('0x28')](_0x31a595[_0x27af('0x31')][_0x27af('0x6e')]?{'message':'Wrong\x20credentials','statusCode':_0x118d06['statusCode']}:_0x118d06);});};
\ No newline at end of file
+var _0x5423=['Wrong\x20credentials','eml-format','rimraf','fast-json-patch','request-promise','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','desk.js','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','end','json','offset','limit','undefined','count','set','Content-Range','save','then','error','stack','name','send','index','ZendeskAccount','rawAttributes','fieldName','model','map','query','keys','filters','fields','attributes','hasOwnProperty','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','findAll','rows','catch','show','params','intersection','length','find','create','body','destroy','ZendeskConfiguration','nolimit','findOne','AccountId','getSubjects','channel','type','Descriptions','ZendeskField','getFields','username','password','token','remoteUri','slice','lastIndexOf','ticket_fields','headers','Basic\x20%s','format','%s:%s','base64','%s/token:%s','toString','ValidationError','Unknown\x20authentication\x20type','subject','description','group','assignee','remove','includes','position','title','system_field_options','custom_field_options','statusCode','getFields,\x20%s,\x20%s,\x20%s','stringify'];(function(_0x45bf86,_0x75586e){var _0x1f02b7=function(_0x1ea8a3){while(--_0x1ea8a3){_0x45bf86['push'](_0x45bf86['shift']());}};_0x1f02b7(++_0x75586e);}(_0x5423,0xe3));var _0x3542=function(_0x133bd4,_0x53eb3d){_0x133bd4=_0x133bd4-0x0;var _0xe19770=_0x5423[_0x133bd4];return _0xe19770;};'use strict';var emlformat=require(_0x3542('0x0'));var rimraf=require(_0x3542('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x3542('0x2'));var rp=require(_0x3542('0x3'));var moment=require('moment');var BPromise=require(_0x3542('0x4'));var Mustache=require(_0x3542('0x5'));var util=require(_0x3542('0x6'));var path=require(_0x3542('0x7'));var sox=require('sox');var csv=require(_0x3542('0x8'));var ejs=require(_0x3542('0x9'));var fs=require('fs');var fs_extra=require(_0x3542('0xa'));var _=require(_0x3542('0xb'));var squel=require(_0x3542('0xc'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x3542('0xd'));var toCsv=require(_0x3542('0x8'));var querystring=require('querystring');var Papa=require(_0x3542('0xe'));var Redis=require(_0x3542('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x3542('0x10'));var as=require(_0x3542('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x3542('0x12'))(_0x3542('0x13'));var utils=require(_0x3542('0x14'));var config=require(_0x3542('0x15'));var licenseUtil=require(_0x3542('0x16'));var db=require(_0x3542('0x17'))['db'];var integrations=require(_0x3542('0x18'));function respondWithStatusCode(_0x43e977,_0x4ee86){_0x4ee86=_0x4ee86||0xcc;return function(_0x1a9062){if(_0x1a9062){return _0x43e977[_0x3542('0x19')](_0x4ee86);}return _0x43e977[_0x3542('0x1a')](_0x4ee86)[_0x3542('0x1b')]();};}function respondWithResult(_0x4bac5b,_0x14fe57){_0x14fe57=_0x14fe57||0xc8;return function(_0x4fb366){if(_0x4fb366){return _0x4bac5b[_0x3542('0x1a')](_0x14fe57)[_0x3542('0x1c')](_0x4fb366);}};}function respondWithFilteredResult(_0xc33d42,_0x546fbd){return function(_0x270312){if(_0x270312){var _0x177fb9=typeof _0x546fbd[_0x3542('0x1d')]==='undefined'&&typeof _0x546fbd[_0x3542('0x1e')]===_0x3542('0x1f');var _0x116859=_0x270312[_0x3542('0x20')];var _0x493d95=_0x177fb9?0x0:_0x546fbd[_0x3542('0x1d')];var _0x53d4aa=_0x177fb9?_0x270312[_0x3542('0x20')]:_0x546fbd[_0x3542('0x1d')]+_0x546fbd['limit'];var _0x1c6403;if(_0x53d4aa>=_0x116859){_0x53d4aa=_0x116859;_0x1c6403=0xc8;}else{_0x1c6403=0xce;}_0xc33d42[_0x3542('0x1a')](_0x1c6403);return _0xc33d42[_0x3542('0x21')](_0x3542('0x22'),_0x493d95+'-'+_0x53d4aa+'/'+_0x116859)[_0x3542('0x1c')](_0x270312);}return null;};}function patchUpdates(_0x4a7695){return function(_0x4a74b0){try{jsonpatch['apply'](_0x4a74b0,_0x4a7695,!![]);}catch(_0x17e3cf){return BPromise['reject'](_0x17e3cf);}return _0x4a74b0[_0x3542('0x23')]();};}function saveUpdates(_0x551645,_0x1d5f1e){return function(_0x55774d){if(_0x55774d){return _0x55774d['update'](_0x551645)[_0x3542('0x24')](function(_0xe3f983){return _0xe3f983;});}return null;};}function removeEntity(_0x5ae097,_0x5d05b2){return function(_0x3fc964){if(_0x3fc964){return _0x3fc964['destroy']()[_0x3542('0x24')](function(){_0x5ae097[_0x3542('0x1a')](0xcc)[_0x3542('0x1b')]();});}};}function handleEntityNotFound(_0x2f2e63,_0x298763){return function(_0xf1f7d0){if(!_0xf1f7d0){_0x2f2e63[_0x3542('0x19')](0x194);}return _0xf1f7d0;};}function handleError(_0x1e156e,_0x18dc6c){_0x18dc6c=_0x18dc6c||0x1f4;return function(_0x2841a1){logger[_0x3542('0x25')](_0x2841a1[_0x3542('0x26')]);if(_0x2841a1[_0x3542('0x27')]){delete _0x2841a1[_0x3542('0x27')];}_0x1e156e[_0x3542('0x1a')](_0x18dc6c)[_0x3542('0x28')](_0x2841a1);};}exports[_0x3542('0x29')]=function(_0x20eda1,_0x3bd666){var _0x5590a2={},_0x31ad47={},_0x35bbc9={'count':0x0,'rows':[]};var _0x2aec76=_['map'](db[_0x3542('0x2a')][_0x3542('0x2b')],function(_0x2e883a){return{'name':_0x2e883a[_0x3542('0x2c')],'type':_0x2e883a['type']['key']};});_0x31ad47[_0x3542('0x2d')]=_[_0x3542('0x2e')](_0x2aec76,_0x3542('0x27'));_0x31ad47[_0x3542('0x2f')]=_[_0x3542('0x30')](_0x20eda1[_0x3542('0x2f')]);_0x31ad47[_0x3542('0x31')]=_['intersection'](_0x31ad47['model'],_0x31ad47[_0x3542('0x2f')]);_0x5590a2['attributes']=_['intersection'](_0x31ad47[_0x3542('0x2d')],qs['fields'](_0x20eda1['query'][_0x3542('0x32')]));_0x5590a2[_0x3542('0x33')]=_0x5590a2[_0x3542('0x33')]['length']?_0x5590a2[_0x3542('0x33')]:_0x31ad47['model'];if(!_0x20eda1[_0x3542('0x2f')][_0x3542('0x34')]('nolimit')){_0x5590a2[_0x3542('0x1e')]=qs['limit'](_0x20eda1[_0x3542('0x2f')][_0x3542('0x1e')]);_0x5590a2[_0x3542('0x1d')]=qs['offset'](_0x20eda1[_0x3542('0x2f')]['offset']);}_0x5590a2[_0x3542('0x35')]=qs[_0x3542('0x36')](_0x20eda1[_0x3542('0x2f')][_0x3542('0x36')]);_0x5590a2[_0x3542('0x37')]=qs[_0x3542('0x31')](_[_0x3542('0x38')](_0x20eda1[_0x3542('0x2f')],_0x31ad47[_0x3542('0x31')]),_0x2aec76);if(_0x20eda1[_0x3542('0x2f')][_0x3542('0x39')]){_0x5590a2[_0x3542('0x37')]=_[_0x3542('0x3a')](_0x5590a2['where'],{'$or':_[_0x3542('0x2e')](_0x2aec76,function(_0x4a80ea){if(_0x4a80ea['type']!==_0x3542('0x3b')){var _0x3ffccc={};_0x3ffccc[_0x4a80ea[_0x3542('0x27')]]={'$like':'%'+_0x20eda1[_0x3542('0x2f')][_0x3542('0x39')]+'%'};return _0x3ffccc;}})});}_0x5590a2=_[_0x3542('0x3a')]({},_0x5590a2,_0x20eda1[_0x3542('0x3c')]);var _0x42e87a={'where':_0x5590a2['where']};return db[_0x3542('0x2a')]['count'](_0x42e87a)[_0x3542('0x24')](function(_0x2baa01){_0x35bbc9['count']=_0x2baa01;if(_0x20eda1[_0x3542('0x2f')][_0x3542('0x3d')]){_0x5590a2['include']=[{'all':!![]}];}return db[_0x3542('0x2a')][_0x3542('0x3e')](_0x5590a2);})['then'](function(_0x2682d0){_0x35bbc9[_0x3542('0x3f')]=_0x2682d0;return _0x35bbc9;})[_0x3542('0x24')](respondWithFilteredResult(_0x3bd666,_0x5590a2))[_0x3542('0x40')](handleError(_0x3bd666,null));};exports[_0x3542('0x41')]=function(_0xb12441,_0x2b54b9){var _0x4bf45a={'raw':![],'where':{'id':_0xb12441[_0x3542('0x42')]['id']}},_0x542e0c={};_0x542e0c[_0x3542('0x2d')]=_[_0x3542('0x30')](db[_0x3542('0x2a')][_0x3542('0x2b')]);_0x542e0c['query']=_[_0x3542('0x30')](_0xb12441['query']);_0x542e0c[_0x3542('0x31')]=_[_0x3542('0x43')](_0x542e0c[_0x3542('0x2d')],_0x542e0c['query']);_0x4bf45a[_0x3542('0x33')]=_[_0x3542('0x43')](_0x542e0c['model'],qs[_0x3542('0x32')](_0xb12441[_0x3542('0x2f')][_0x3542('0x32')]));_0x4bf45a[_0x3542('0x33')]=_0x4bf45a[_0x3542('0x33')][_0x3542('0x44')]?_0x4bf45a[_0x3542('0x33')]:_0x542e0c[_0x3542('0x2d')];if(_0xb12441['query']['includeAll']){_0x4bf45a['include']=[{'all':!![]}];}_0x4bf45a=_[_0x3542('0x3a')]({},_0x4bf45a,_0xb12441[_0x3542('0x3c')]);return db[_0x3542('0x2a')][_0x3542('0x45')](_0x4bf45a)[_0x3542('0x24')](handleEntityNotFound(_0x2b54b9,null))[_0x3542('0x24')](respondWithResult(_0x2b54b9,null))[_0x3542('0x40')](handleError(_0x2b54b9,null));};exports['create']=function(_0x157683,_0x14b960){return db[_0x3542('0x2a')][_0x3542('0x46')](_0x157683['body'],{})[_0x3542('0x24')](respondWithResult(_0x14b960,0xc9))[_0x3542('0x40')](handleError(_0x14b960,null));};exports['update']=function(_0x528f8c,_0x1fb253){if(_0x528f8c[_0x3542('0x47')]['id']){delete _0x528f8c[_0x3542('0x47')]['id'];}return db[_0x3542('0x2a')][_0x3542('0x45')]({'where':{'id':_0x528f8c[_0x3542('0x42')]['id']}})[_0x3542('0x24')](handleEntityNotFound(_0x1fb253,null))['then'](saveUpdates(_0x528f8c[_0x3542('0x47')],null))[_0x3542('0x24')](respondWithResult(_0x1fb253,null))[_0x3542('0x40')](handleError(_0x1fb253,null));};exports[_0x3542('0x48')]=function(_0x1ebc82,_0x28be34){return db[_0x3542('0x2a')][_0x3542('0x45')]({'where':{'id':_0x1ebc82[_0x3542('0x42')]['id']}})['then'](handleEntityNotFound(_0x28be34,null))['then'](removeEntity(_0x28be34,null))[_0x3542('0x40')](handleError(_0x28be34,null));};exports['getConfigurations']=function(_0x5a798a,_0x572e7a,_0x286222){var _0xd5c5c3={};var _0x381885={};var _0x48cfc4;var _0x2db495;return db[_0x3542('0x2a')]['findOne']({'where':{'id':_0x5a798a[_0x3542('0x42')]['id']}})[_0x3542('0x24')](handleEntityNotFound(_0x572e7a,null))[_0x3542('0x24')](function(_0x196c59){if(_0x196c59){_0x48cfc4=_0x196c59;_0x381885[_0x3542('0x2d')]=_['keys'](db[_0x3542('0x49')][_0x3542('0x2b')]);_0x381885[_0x3542('0x2f')]=_[_0x3542('0x30')](_0x5a798a[_0x3542('0x2f')]);_0x381885['filters']=_['intersection'](_0x381885[_0x3542('0x2d')],_0x381885[_0x3542('0x2f')]);_0xd5c5c3[_0x3542('0x33')]=_['intersection'](_0x381885[_0x3542('0x2d')],qs[_0x3542('0x32')](_0x5a798a[_0x3542('0x2f')][_0x3542('0x32')]));_0xd5c5c3[_0x3542('0x33')]=_0xd5c5c3['attributes']['length']?_0xd5c5c3[_0x3542('0x33')]:_0x381885['model'];_0xd5c5c3[_0x3542('0x35')]=qs[_0x3542('0x36')](_0x5a798a['query'][_0x3542('0x36')]);_0xd5c5c3[_0x3542('0x37')]=qs[_0x3542('0x31')](_[_0x3542('0x38')](_0x5a798a[_0x3542('0x2f')],_0x381885['filters']));if(_0x5a798a['query'][_0x3542('0x39')]){_0xd5c5c3['where']=_[_0x3542('0x3a')](_0xd5c5c3[_0x3542('0x37')],{'$or':_[_0x3542('0x2e')](_0xd5c5c3['attributes'],function(_0xd9c90c){var _0x1f8ddb={};_0x1f8ddb[_0xd9c90c]={'$like':'%'+_0x5a798a[_0x3542('0x2f')][_0x3542('0x39')]+'%'};return _0x1f8ddb;})});}_0xd5c5c3=_[_0x3542('0x3a')]({},_0xd5c5c3,_0x5a798a[_0x3542('0x3c')]);return _0x48cfc4['getConfigurations'](_0xd5c5c3);}})[_0x3542('0x24')](function(_0x3ee446){if(_0x3ee446){_0x2db495=_0x3ee446[_0x3542('0x44')];if(!_0x5a798a[_0x3542('0x2f')][_0x3542('0x34')](_0x3542('0x4a'))){_0xd5c5c3['limit']=qs[_0x3542('0x1e')](_0x5a798a[_0x3542('0x2f')][_0x3542('0x1e')]);_0xd5c5c3[_0x3542('0x1d')]=qs['offset'](_0x5a798a[_0x3542('0x2f')][_0x3542('0x1d')]);}return _0x48cfc4['getConfigurations'](_0xd5c5c3);}})['then'](function(_0x2908e5){if(_0x2908e5){return _0x2908e5?{'count':_0x2db495,'rows':_0x2908e5}:null;}})['then'](respondWithResult(_0x572e7a,null))[_0x3542('0x40')](handleError(_0x572e7a,null));};exports['addConfiguration']=function(_0x484204,_0x42a34a,_0x471408){if(_0x484204[_0x3542('0x47')]['id']){delete _0x484204[_0x3542('0x47')]['id'];}return db[_0x3542('0x2a')][_0x3542('0x4b')]({'where':{'id':_0x484204[_0x3542('0x42')]['id']}})['then'](handleEntityNotFound(_0x42a34a,null))[_0x3542('0x24')](function(_0xf1cf57){if(_0xf1cf57){_0x484204[_0x3542('0x47')][_0x3542('0x4c')]=_0xf1cf57['id'];_0x484204[_0x3542('0x47')]['Subjects']=integrations[_0x3542('0x4d')](_0x484204[_0x3542('0x47')][_0x3542('0x4e')],_0x484204[_0x3542('0x47')][_0x3542('0x4f')]);_0x484204[_0x3542('0x47')][_0x3542('0x50')]=integrations['getDescriptions'](_0x484204[_0x3542('0x47')]['channel'],_0x484204[_0x3542('0x47')][_0x3542('0x4f')]);return db[_0x3542('0x49')][_0x3542('0x46')](_0x484204['body'],{'include':[{'model':db['ZendeskField'],'as':'Subjects'},{'model':db[_0x3542('0x51')],'as':_0x3542('0x50')}]});}return null;})[_0x3542('0x24')](respondWithResult(_0x42a34a,null))[_0x3542('0x40')](handleError(_0x42a34a,null));};exports[_0x3542('0x52')]=function(_0x2afc71,_0x3c84fa,_0x77f0af){var _0x2b0de0='';return db['ZendeskAccount'][_0x3542('0x4b')]({'where':{'id':_0x2afc71[_0x3542('0x42')]['id']},'attributes':['id',_0x3542('0x53'),_0x3542('0x54'),_0x3542('0x55'),'authType','remoteUri']})[_0x3542('0x24')](handleEntityNotFound(_0x3c84fa,null))[_0x3542('0x24')](function(_0x52c26d){if(_0x52c26d){_0x2b0de0=_0x52c26d[_0x3542('0x56')];var _0x4b5327=_0x2b0de0[_0x3542('0x57')](-0x1);if(_0x4b5327==='/'){_0x2b0de0=_0x2b0de0['substring'](0x0,_0x2b0de0[_0x3542('0x58')](_0x4b5327));}var _0x153e1b={'method':'GET','uri':util['format']('%s/%s',_0x2b0de0,_0x3542('0x59')),'json':!![]};switch(_0x52c26d['authType']){case _0x3542('0x54'):_0x153e1b[_0x3542('0x5a')]={'Authorization':util['format'](_0x3542('0x5b'),new Buffer(util[_0x3542('0x5c')](_0x3542('0x5d'),_0x52c26d['username'],_0x52c26d[_0x3542('0x54')]))['toString'](_0x3542('0x5e')))};break;case'token':_0x153e1b[_0x3542('0x5a')]={'Authorization':util[_0x3542('0x5c')](_0x3542('0x5b'),new Buffer(util['format'](_0x3542('0x5f'),_0x52c26d[_0x3542('0x53')],_0x52c26d[_0x3542('0x55')]))[_0x3542('0x60')]('base64'))};break;default:throw new db['Sequelize'][(_0x3542('0x61'))](_0x3542('0x62'));}return rp(_0x153e1b);}})[_0x3542('0x24')](function(_0xaa97d5){if(_0xaa97d5){var _0x191fdd=[_0x3542('0x63'),_0x3542('0x64'),_0x3542('0x65'),_0x3542('0x66')];_[_0x3542('0x67')](_0xaa97d5[_0x3542('0x59')],function(_0x1c318c){return _0x191fdd[_0x3542('0x68')](_0x1c318c[_0x3542('0x4f')]);});return{'count':_0xaa97d5[_0x3542('0x59')][_0x3542('0x44')],'rows':_[_0x3542('0x2e')](_0xaa97d5[_0x3542('0x59')],function(_0x4e04b6){return{'id':_0x4e04b6['id'],'name':_0x4e04b6[_0x3542('0x69')]>0x7?_0x4e04b6[_0x3542('0x6a')]:_0x4e04b6['type'],'custom':_0x4e04b6['position']>0x7?!![]:![],'options':_0x4e04b6[_0x3542('0x6b')]?_0x4e04b6[_0x3542('0x6b')]:_0x4e04b6[_0x3542('0x6c')]?_0x4e04b6[_0x3542('0x6c')]:[]};})};}})['then'](respondWithResult(_0x3c84fa,null))[_0x3542('0x40')](function(_0x2d17ce){var _0x54e723=_0x2afc71[_0x3542('0x2f')]['test']?0x1f4:_0x2d17ce[_0x3542('0x6d')]||0x1f4;logger['error'](_0x3542('0x6e'),_0x3542('0x52'),_0x54e723,JSON[_0x3542('0x6f')](_0x2d17ce));delete _0x2d17ce[_0x3542('0x27')];if(_0x54e723===0x191){_0x54e723=0x190;}_0x3c84fa[_0x3542('0x1a')](_0x54e723)[_0x3542('0x28')](_0x2afc71[_0x3542('0x2f')]['test']?{'message':_0x3542('0x70'),'statusCode':_0x2d17ce['statusCode']}:_0x2d17ce);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6cdf=['request-promise','path','rimraf','./intZendeskAccount.attributes','../../components/integrations/configuration','exports','define','int_zendesk_accounts','lodash','api','bluebird'];(function(_0x34da98,_0x1c2a8b){var _0x73d785=function(_0x3b19ab){while(--_0x3b19ab){_0x34da98['push'](_0x34da98['shift']());}};_0x73d785(++_0x1c2a8b);}(_0x6cdf,0x1e1));var _0xf6cd=function(_0x31ce33,_0x1a7f94){_0x31ce33=_0x31ce33-0x0;var _0x32d860=_0x6cdf[_0x31ce33];return _0x32d860;};'use strict';var _=require(_0xf6cd('0x0'));var util=require('util');var logger=require('../../config/logger')(_0xf6cd('0x1'));var moment=require('moment');var BPromise=require(_0xf6cd('0x2'));var rp=require(_0xf6cd('0x3'));var fs=require('fs');var path=require(_0xf6cd('0x4'));var rimraf=require(_0xf6cd('0x5'));var config=require('../../config/environment');var attributes=require(_0xf6cd('0x6'));var integrations=require(_0xf6cd('0x7'));module[_0xf6cd('0x8')]=function(_0x497047,_0x85c39d){return _0x497047[_0xf6cd('0x9')]('ZendeskAccount',attributes,{'tableName':_0xf6cd('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x8b71=['int_zendesk_accounts','lodash','api','moment','bluebird','request-promise','path','../../config/environment','./intZendeskAccount.attributes','../../components/integrations/configuration','exports','define','ZendeskAccount'];(function(_0x4e583e,_0x22c7de){var _0x52d90e=function(_0x3abcb9){while(--_0x3abcb9){_0x4e583e['push'](_0x4e583e['shift']());}};_0x52d90e(++_0x22c7de);}(_0x8b71,0xde));var _0x18b7=function(_0x4cfb97,_0x2f9070){_0x4cfb97=_0x4cfb97-0x0;var _0x585711=_0x8b71[_0x4cfb97];return _0x585711;};'use strict';var _=require(_0x18b7('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x18b7('0x1'));var moment=require(_0x18b7('0x2'));var BPromise=require(_0x18b7('0x3'));var rp=require(_0x18b7('0x4'));var fs=require('fs');var path=require(_0x18b7('0x5'));var rimraf=require('rimraf');var config=require(_0x18b7('0x6'));var attributes=require(_0x18b7('0x7'));var integrations=require(_0x18b7('0x8'));module[_0x18b7('0x9')]=function(_0x58a815,_0x455ced){return _0x58a815[_0x18b7('0xa')](_0x18b7('0xb'),attributes,{'tableName':_0x18b7('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe18b=['code','ZendeskAccount,\x20%s,\x20%s','message','result','catch','ZendeskAccount','findAll','options','raw','where','attributes','map','include','model','GetZendeskAccount','ShowZendeskAccount','find','stringify','lodash','moment','bluebird','randomstring','ioredis','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','request','then','info','request\x20sent','debug','ZendeskAccount,\x20%s,\x20%s,\x20%s','error'];(function(_0xd10d51,_0x37eb56){var _0x5e7b61=function(_0x296125){while(--_0x296125){_0xd10d51['push'](_0xd10d51['shift']());}};_0x5e7b61(++_0x37eb56);}(_0xe18b,0x7e));var _0xbe18=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xe18b[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0xbe18('0x0'));var util=require('util');var moment=require(_0xbe18('0x1'));var BPromise=require(_0xbe18('0x2'));var rs=require(_0xbe18('0x3'));var fs=require('fs');var Redis=require(_0xbe18('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0xbe18('0x5'));var logger=require('../../config/logger')(_0xbe18('0x6'));var config=require(_0xbe18('0x7'));var jayson=require(_0xbe18('0x8'));var client=jayson[_0xbe18('0x9')][_0xbe18('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x407b41,_0x4b7667,_0x2ca8e8){return new BPromise(function(_0x1680c5,_0x13eaae){return client[_0xbe18('0xb')](_0x407b41,_0x2ca8e8)[_0xbe18('0xc')](function(_0x35aa25){logger[_0xbe18('0xd')]('ZendeskAccount,\x20%s,\x20%s',_0x4b7667,_0xbe18('0xe'));logger[_0xbe18('0xf')](_0xbe18('0x10'),_0x4b7667,_0xbe18('0xe'),JSON['stringify'](_0x35aa25));if(_0x35aa25[_0xbe18('0x11')]){if(_0x35aa25[_0xbe18('0x11')][_0xbe18('0x12')]===0x1f4){logger[_0xbe18('0x11')](_0xbe18('0x13'),_0x4b7667,_0x35aa25['error'][_0xbe18('0x14')]);return _0x13eaae(_0x35aa25['error']['message']);}logger[_0xbe18('0x11')]('ZendeskAccount,\x20%s,\x20%s',_0x4b7667,_0x35aa25['error'][_0xbe18('0x14')]);return _0x1680c5(_0x35aa25[_0xbe18('0x11')][_0xbe18('0x14')]);}else{logger[_0xbe18('0xd')](_0xbe18('0x13'),_0x4b7667,_0xbe18('0xe'));_0x1680c5(_0x35aa25[_0xbe18('0x15')][_0xbe18('0x14')]);}})[_0xbe18('0x16')](function(_0x4e9123){logger['error'](_0xbe18('0x13'),_0x4b7667,_0x4e9123);_0x13eaae(_0x4e9123);});});}exports['GetZendeskAccount']=function(_0x3c7dd8){var _0xdf5f82=this;return new Promise(function(_0x32c964,_0xfedae){return db[_0xbe18('0x17')][_0xbe18('0x18')]({'raw':_0x3c7dd8[_0xbe18('0x19')]?_0x3c7dd8[_0xbe18('0x19')][_0xbe18('0x1a')]===undefined?!![]:![]:!![],'where':_0x3c7dd8[_0xbe18('0x19')]?_0x3c7dd8[_0xbe18('0x19')][_0xbe18('0x1b')]||null:null,'attributes':_0x3c7dd8[_0xbe18('0x19')]?_0x3c7dd8['options'][_0xbe18('0x1c')]||null:null,'limit':_0x3c7dd8[_0xbe18('0x19')]?_0x3c7dd8[_0xbe18('0x19')]['limit']||null:null,'include':_0x3c7dd8['options']?_0x3c7dd8[_0xbe18('0x19')]['include']?_[_0xbe18('0x1d')](_0x3c7dd8[_0xbe18('0x19')][_0xbe18('0x1e')],function(_0x1f8037){return{'model':db[_0x1f8037['model']],'as':_0x1f8037['as'],'attributes':_0x1f8037['attributes'],'include':_0x1f8037[_0xbe18('0x1e')]?_['map'](_0x1f8037[_0xbe18('0x1e')],function(_0x4128ee){return{'model':db[_0x4128ee[_0xbe18('0x1f')]],'as':_0x4128ee['as'],'attributes':_0x4128ee[_0xbe18('0x1c')],'include':_0x4128ee['include']?_['map'](_0x4128ee[_0xbe18('0x1e')],function(_0x37ecc6){return{'model':db[_0x37ecc6['model']],'as':_0x37ecc6['as'],'attributes':_0x37ecc6[_0xbe18('0x1c')]};}):[]};}):[]};}):[]:[]})[_0xbe18('0xc')](function(_0x1c8d15){logger[_0xbe18('0xd')](_0xbe18('0x20'),_0x3c7dd8);logger['debug'](_0xbe18('0x20'),_0x3c7dd8,JSON['stringify'](_0x1c8d15));_0x32c964(_0x1c8d15);})[_0xbe18('0x16')](function(_0x10811d){logger[_0xbe18('0x11')](_0xbe18('0x20'),_0x10811d[_0xbe18('0x14')],_0x3c7dd8);_0xfedae(_0xdf5f82['error'](0x1f4,_0x10811d[_0xbe18('0x14')]));});});};exports[_0xbe18('0x21')]=function(_0x175d26){var _0x841755=this;return new Promise(function(_0x260106,_0x3a6603){return db['ZendeskAccount'][_0xbe18('0x22')]({'raw':_0x175d26['options']?_0x175d26[_0xbe18('0x19')][_0xbe18('0x1a')]===undefined?!![]:![]:!![],'where':_0x175d26[_0xbe18('0x19')]?_0x175d26[_0xbe18('0x19')][_0xbe18('0x1b')]||null:null,'attributes':_0x175d26[_0xbe18('0x19')]?_0x175d26[_0xbe18('0x19')][_0xbe18('0x1c')]||null:null,'include':_0x175d26[_0xbe18('0x19')]?_0x175d26[_0xbe18('0x19')]['include']?_['map'](_0x175d26[_0xbe18('0x19')][_0xbe18('0x1e')],function(_0x48e618){return{'model':db[_0x48e618[_0xbe18('0x1f')]],'as':_0x48e618['as'],'attributes':_0x48e618[_0xbe18('0x1c')],'include':_0x48e618[_0xbe18('0x1e')]?_[_0xbe18('0x1d')](_0x48e618[_0xbe18('0x1e')],function(_0x1482be){return{'model':db[_0x1482be[_0xbe18('0x1f')]],'as':_0x1482be['as'],'attributes':_0x1482be[_0xbe18('0x1c')],'include':_0x1482be[_0xbe18('0x1e')]?_['map'](_0x1482be[_0xbe18('0x1e')],function(_0x4e3cf4){return{'model':db[_0x4e3cf4[_0xbe18('0x1f')]],'as':_0x4e3cf4['as'],'attributes':_0x4e3cf4['attributes']};}):[]};}):[]};}):[]:[]})[_0xbe18('0xc')](function(_0x3187da){logger[_0xbe18('0xd')](_0xbe18('0x21'),_0x175d26);logger['debug'](_0xbe18('0x21'),_0x175d26,JSON[_0xbe18('0x23')](_0x3187da));_0x260106(_0x3187da);})[_0xbe18('0x16')](function(_0x223777){logger[_0xbe18('0x11')](_0xbe18('0x21'),_0x223777[_0xbe18('0x14')],_0x175d26);_0x3a6603(_0x841755[_0xbe18('0x11')](0x1f4,_0x223777[_0xbe18('0x14')]));});});};
\ No newline at end of file
+var _0xbe2a=['map','stringify','ZendeskAccount','find','ShowZendeskAccount','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','../../config/environment','jayson/promise','client','http','request','then','info','request\x20sent','debug','ZendeskAccount,\x20%s,\x20%s,\x20%s','error','ZendeskAccount,\x20%s,\x20%s','message','result','catch','GetZendeskAccount','findAll','options','raw','attributes','limit','include','model'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0xbe2a,0x1d9));var _0xabe2=function(_0x3c101e,_0xbed231){_0x3c101e=_0x3c101e-0x0;var _0x196bb7=_0xbe2a[_0x3c101e];return _0x196bb7;};'use strict';var _=require(_0xabe2('0x0'));var util=require(_0xabe2('0x1'));var moment=require(_0xabe2('0x2'));var BPromise=require(_0xabe2('0x3'));var rs=require(_0xabe2('0x4'));var fs=require('fs');var Redis=require(_0xabe2('0x5'));var db=require(_0xabe2('0x6'))['db'];var utils=require('../../config/utils');var logger=require(_0xabe2('0x7'))('rpc');var config=require(_0xabe2('0x8'));var jayson=require(_0xabe2('0x9'));var client=jayson[_0xabe2('0xa')][_0xabe2('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x3538a0,_0x138e22,_0x5347ca){return new BPromise(function(_0x1c5c5c,_0x1f10d7){return client[_0xabe2('0xc')](_0x3538a0,_0x5347ca)[_0xabe2('0xd')](function(_0x229ac0){logger[_0xabe2('0xe')]('ZendeskAccount,\x20%s,\x20%s',_0x138e22,_0xabe2('0xf'));logger[_0xabe2('0x10')](_0xabe2('0x11'),_0x138e22,'request\x20sent',JSON['stringify'](_0x229ac0));if(_0x229ac0['error']){if(_0x229ac0[_0xabe2('0x12')]['code']===0x1f4){logger[_0xabe2('0x12')](_0xabe2('0x13'),_0x138e22,_0x229ac0['error']['message']);return _0x1f10d7(_0x229ac0[_0xabe2('0x12')][_0xabe2('0x14')]);}logger[_0xabe2('0x12')](_0xabe2('0x13'),_0x138e22,_0x229ac0[_0xabe2('0x12')][_0xabe2('0x14')]);return _0x1c5c5c(_0x229ac0[_0xabe2('0x12')][_0xabe2('0x14')]);}else{logger[_0xabe2('0xe')](_0xabe2('0x13'),_0x138e22,'request\x20sent');_0x1c5c5c(_0x229ac0[_0xabe2('0x15')][_0xabe2('0x14')]);}})[_0xabe2('0x16')](function(_0x50f335){logger[_0xabe2('0x12')](_0xabe2('0x13'),_0x138e22,_0x50f335);_0x1f10d7(_0x50f335);});});}exports[_0xabe2('0x17')]=function(_0x2d4bba){var _0x49c4c3=this;return new Promise(function(_0x190b08,_0x26b17e){return db['ZendeskAccount'][_0xabe2('0x18')]({'raw':_0x2d4bba[_0xabe2('0x19')]?_0x2d4bba['options'][_0xabe2('0x1a')]===undefined?!![]:![]:!![],'where':_0x2d4bba[_0xabe2('0x19')]?_0x2d4bba[_0xabe2('0x19')]['where']||null:null,'attributes':_0x2d4bba[_0xabe2('0x19')]?_0x2d4bba[_0xabe2('0x19')][_0xabe2('0x1b')]||null:null,'limit':_0x2d4bba[_0xabe2('0x19')]?_0x2d4bba[_0xabe2('0x19')][_0xabe2('0x1c')]||null:null,'include':_0x2d4bba['options']?_0x2d4bba[_0xabe2('0x19')][_0xabe2('0x1d')]?_['map'](_0x2d4bba['options'][_0xabe2('0x1d')],function(_0xe592c2){return{'model':db[_0xe592c2[_0xabe2('0x1e')]],'as':_0xe592c2['as'],'attributes':_0xe592c2[_0xabe2('0x1b')],'include':_0xe592c2['include']?_[_0xabe2('0x1f')](_0xe592c2[_0xabe2('0x1d')],function(_0x2c0c92){return{'model':db[_0x2c0c92['model']],'as':_0x2c0c92['as'],'attributes':_0x2c0c92[_0xabe2('0x1b')],'include':_0x2c0c92[_0xabe2('0x1d')]?_['map'](_0x2c0c92[_0xabe2('0x1d')],function(_0x3cd356){return{'model':db[_0x3cd356['model']],'as':_0x3cd356['as'],'attributes':_0x3cd356[_0xabe2('0x1b')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x402c91){logger[_0xabe2('0xe')](_0xabe2('0x17'),_0x2d4bba);logger[_0xabe2('0x10')](_0xabe2('0x17'),_0x2d4bba,JSON[_0xabe2('0x20')](_0x402c91));_0x190b08(_0x402c91);})[_0xabe2('0x16')](function(_0x4a8738){logger[_0xabe2('0x12')](_0xabe2('0x17'),_0x4a8738[_0xabe2('0x14')],_0x2d4bba);_0x26b17e(_0x49c4c3[_0xabe2('0x12')](0x1f4,_0x4a8738[_0xabe2('0x14')]));});});};exports['ShowZendeskAccount']=function(_0x2824a2){var _0x20ee27=this;return new Promise(function(_0x464a01,_0x4ff339){return db[_0xabe2('0x21')][_0xabe2('0x22')]({'raw':_0x2824a2[_0xabe2('0x19')]?_0x2824a2[_0xabe2('0x19')][_0xabe2('0x1a')]===undefined?!![]:![]:!![],'where':_0x2824a2[_0xabe2('0x19')]?_0x2824a2['options']['where']||null:null,'attributes':_0x2824a2['options']?_0x2824a2['options'][_0xabe2('0x1b')]||null:null,'include':_0x2824a2[_0xabe2('0x19')]?_0x2824a2['options'][_0xabe2('0x1d')]?_['map'](_0x2824a2[_0xabe2('0x19')]['include'],function(_0x5ea4ea){return{'model':db[_0x5ea4ea[_0xabe2('0x1e')]],'as':_0x5ea4ea['as'],'attributes':_0x5ea4ea[_0xabe2('0x1b')],'include':_0x5ea4ea[_0xabe2('0x1d')]?_[_0xabe2('0x1f')](_0x5ea4ea[_0xabe2('0x1d')],function(_0x1be786){return{'model':db[_0x1be786['model']],'as':_0x1be786['as'],'attributes':_0x1be786['attributes'],'include':_0x1be786['include']?_[_0xabe2('0x1f')](_0x1be786[_0xabe2('0x1d')],function(_0x5a4d53){return{'model':db[_0x5a4d53[_0xabe2('0x1e')]],'as':_0x5a4d53['as'],'attributes':_0x5a4d53['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x438d68){logger['info'](_0xabe2('0x23'),_0x2824a2);logger[_0xabe2('0x10')](_0xabe2('0x23'),_0x2824a2,JSON[_0xabe2('0x20')](_0x438d68));_0x464a01(_0x438d68);})[_0xabe2('0x16')](function(_0x170940){logger[_0xabe2('0x12')](_0xabe2('0x23'),_0x170940['message'],_0x2824a2);_0x4ff339(_0x20ee27['error'](0x1f4,_0x170940[_0xabe2('0x14')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0abf=['connect-timeout','fs-extra','../../components/interaction/service','../../config/environment','./intZendeskConfiguration.controller','get','isAuthenticated','index','show','/:id/fields','getFields','/:id/subjects','getDescriptions','/:id/tags','getTags','post','create','setTags','put','/:id','update','delete','destroy','exports','multer','path'];(function(_0x4ec7f2,_0x3d92d2){var _0x118004=function(_0x1ac4fb){while(--_0x1ac4fb){_0x4ec7f2['push'](_0x4ec7f2['shift']());}};_0x118004(++_0x3d92d2);}(_0x0abf,0xe8));var _0xf0ab=function(_0x432682,_0x253044){_0x432682=_0x432682-0x0;var _0x463d05=_0x0abf[_0x432682];return _0x463d05;};'use strict';var multer=require(_0xf0ab('0x0'));var util=require('util');var path=require(_0xf0ab('0x1'));var timeout=require(_0xf0ab('0x2'));var express=require('express');var router=express['Router']();var fs_extra=require(_0xf0ab('0x3'));var auth=require('../../components/auth/service');var interaction=require(_0xf0ab('0x4'));var config=require(_0xf0ab('0x5'));var controller=require(_0xf0ab('0x6'));router[_0xf0ab('0x7')]('/',auth[_0xf0ab('0x8')](),controller[_0xf0ab('0x9')]);router[_0xf0ab('0x7')]('/:id',auth[_0xf0ab('0x8')](),controller[_0xf0ab('0xa')]);router[_0xf0ab('0x7')](_0xf0ab('0xb'),auth['isAuthenticated'](),controller[_0xf0ab('0xc')]);router[_0xf0ab('0x7')](_0xf0ab('0xd'),auth['isAuthenticated'](),controller['getSubjects']);router[_0xf0ab('0x7')]('/:id/descriptions',auth[_0xf0ab('0x8')](),controller[_0xf0ab('0xe')]);router[_0xf0ab('0x7')](_0xf0ab('0xf'),auth[_0xf0ab('0x8')](),controller[_0xf0ab('0x10')]);router[_0xf0ab('0x11')]('/',auth['isAuthenticated'](),controller[_0xf0ab('0x12')]);router[_0xf0ab('0x11')](_0xf0ab('0xf'),auth[_0xf0ab('0x8')](),controller[_0xf0ab('0x13')]);router[_0xf0ab('0x14')](_0xf0ab('0x15'),auth[_0xf0ab('0x8')](),controller[_0xf0ab('0x16')]);router[_0xf0ab('0x17')](_0xf0ab('0x15'),auth[_0xf0ab('0x8')](),controller[_0xf0ab('0x18')]);module[_0xf0ab('0x19')]=router;
\ No newline at end of file
+var _0x750a=['getTags','post','setTags','put','update','delete','destroy','exports','util','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intZendeskConfiguration.controller','get','isAuthenticated','index','/:id','/:id/fields','getFields','getSubjects','/:id/tags'];(function(_0x507e71,_0x20051a){var _0x4b5595=function(_0x57169d){while(--_0x57169d){_0x507e71['push'](_0x507e71['shift']());}};_0x4b5595(++_0x20051a);}(_0x750a,0x140));var _0xa750=function(_0x777d22,_0xbaed8b){_0x777d22=_0x777d22-0x0;var _0xbe383f=_0x750a[_0x777d22];return _0xbe383f;};'use strict';var multer=require('multer');var util=require(_0xa750('0x0'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0xa750('0x1'));var router=express[_0xa750('0x2')]();var fs_extra=require(_0xa750('0x3'));var auth=require(_0xa750('0x4'));var interaction=require(_0xa750('0x5'));var config=require(_0xa750('0x6'));var controller=require(_0xa750('0x7'));router[_0xa750('0x8')]('/',auth[_0xa750('0x9')](),controller[_0xa750('0xa')]);router[_0xa750('0x8')](_0xa750('0xb'),auth[_0xa750('0x9')](),controller['show']);router['get'](_0xa750('0xc'),auth['isAuthenticated'](),controller[_0xa750('0xd')]);router[_0xa750('0x8')]('/:id/subjects',auth[_0xa750('0x9')](),controller[_0xa750('0xe')]);router['get']('/:id/descriptions',auth[_0xa750('0x9')](),controller['getDescriptions']);router[_0xa750('0x8')](_0xa750('0xf'),auth['isAuthenticated'](),controller[_0xa750('0x10')]);router[_0xa750('0x11')]('/',auth[_0xa750('0x9')](),controller['create']);router[_0xa750('0x11')](_0xa750('0xf'),auth[_0xa750('0x9')](),controller[_0xa750('0x12')]);router[_0xa750('0x13')](_0xa750('0xb'),auth['isAuthenticated'](),controller[_0xa750('0x14')]);router[_0xa750('0x15')](_0xa750('0xb'),auth['isAuthenticated'](),controller[_0xa750('0x16')]);module[_0xa750('0x17')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd4aa=['sequelize','exports','STRING'];(function(_0x53a963,_0x1faf41){var _0x4ef958=function(_0x235bc4){while(--_0x235bc4){_0x53a963['push'](_0x53a963['shift']());}};_0x4ef958(++_0x1faf41);}(_0xd4aa,0xb4));var _0xad4a=function(_0x6cf19c,_0x2f3f02){_0x6cf19c=_0x6cf19c-0x0;var _0xce14f3=_0xd4aa[_0x6cf19c];return _0xce14f3;};'use strict';var Sequelize=require(_0xad4a('0x0'));module[_0xad4a('0x1')]={'name':{'type':Sequelize[_0xad4a('0x2')]},'description':{'type':Sequelize[_0xad4a('0x2')]}};
\ No newline at end of file
+var _0x494b=['sequelize','exports','STRING'];(function(_0x54d4a8,_0x585a59){var _0x3b321b=function(_0x245c6a){while(--_0x245c6a){_0x54d4a8['push'](_0x54d4a8['shift']());}};_0x3b321b(++_0x585a59);}(_0x494b,0x7e));var _0xb494=function(_0x518cc0,_0x4e38ab){_0x518cc0=_0x518cc0-0x0;var _0x281183=_0x494b[_0x518cc0];return _0x281183;};'use strict';var Sequelize=require(_0xb494('0x0'));module[_0xb494('0x1')]={'name':{'type':Sequelize[_0xb494('0x2')]},'description':{'type':Sequelize[_0xb494('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf259=['jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','undefined','limit','count','Content-Range','apply','reject','save','update','then','error','stack','name','send','index','map','ZendeskConfiguration','rawAttributes','fieldName','type','model','query','keys','intersection','attributes','fields','length','nolimit','order','sort','where','filters','pick','merge','VIRTUAL','filter','options','includeAll','include','rows','params','find','catch','create','body','getFields','findOne','ZendeskField','getSubjects','hasOwnProperty','getDescriptions','getTags','setTags','ids','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','squel','crypto'];(function(_0x3f3ad0,_0x3ebff6){var _0x22d3ba=function(_0x138e61){while(--_0x138e61){_0x3f3ad0['push'](_0x3f3ad0['shift']());}};_0x22d3ba(++_0x3ebff6);}(_0xf259,0x142));var _0x9f25=function(_0x13ffd8,_0x746624){_0x13ffd8=_0x13ffd8-0x0;var _0x5aa075=_0xf259[_0x13ffd8];return _0x5aa075;};'use strict';var emlformat=require(_0x9f25('0x0'));var rimraf=require(_0x9f25('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x9f25('0x2'));var rp=require('request-promise');var moment=require(_0x9f25('0x3'));var BPromise=require(_0x9f25('0x4'));var Mustache=require(_0x9f25('0x5'));var util=require(_0x9f25('0x6'));var path=require(_0x9f25('0x7'));var sox=require(_0x9f25('0x8'));var csv=require('to-csv');var ejs=require(_0x9f25('0x9'));var fs=require('fs');var fs_extra=require(_0x9f25('0xa'));var _=require(_0x9f25('0xb'));var squel=require(_0x9f25('0xc'));var crypto=require(_0x9f25('0xd'));var jsforce=require(_0x9f25('0xe'));var deskjs=require(_0x9f25('0xf'));var toCsv=require('to-csv');var querystring=require(_0x9f25('0x10'));var Papa=require(_0x9f25('0x11'));var Redis=require(_0x9f25('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x9f25('0x13'));var as=require(_0x9f25('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x9f25('0x15'))(_0x9f25('0x16'));var utils=require('../../config/utils');var config=require(_0x9f25('0x17'));var licenseUtil=require(_0x9f25('0x18'));var db=require(_0x9f25('0x19'))['db'];function respondWithStatusCode(_0x58d2b8,_0x391302){_0x391302=_0x391302||0xcc;return function(_0x337ee4){if(_0x337ee4){return _0x58d2b8[_0x9f25('0x1a')](_0x391302);}return _0x58d2b8['status'](_0x391302)[_0x9f25('0x1b')]();};}function respondWithResult(_0x1dd46e,_0x55460f){_0x55460f=_0x55460f||0xc8;return function(_0xa1af3a){if(_0xa1af3a){return _0x1dd46e[_0x9f25('0x1c')](_0x55460f)[_0x9f25('0x1d')](_0xa1af3a);}};}function respondWithFilteredResult(_0x313c57,_0x53d7f1){return function(_0x1fd98d){if(_0x1fd98d){var _0x429a72=typeof _0x53d7f1[_0x9f25('0x1e')]===_0x9f25('0x1f')&&typeof _0x53d7f1[_0x9f25('0x20')]===_0x9f25('0x1f');var _0x521b54=_0x1fd98d[_0x9f25('0x21')];var _0x2c1643=_0x429a72?0x0:_0x53d7f1[_0x9f25('0x1e')];var _0x22a5ed=_0x429a72?_0x1fd98d[_0x9f25('0x21')]:_0x53d7f1[_0x9f25('0x1e')]+_0x53d7f1[_0x9f25('0x20')];var _0x430b00;if(_0x22a5ed>=_0x521b54){_0x22a5ed=_0x521b54;_0x430b00=0xc8;}else{_0x430b00=0xce;}_0x313c57[_0x9f25('0x1c')](_0x430b00);return _0x313c57['set'](_0x9f25('0x22'),_0x2c1643+'-'+_0x22a5ed+'/'+_0x521b54)[_0x9f25('0x1d')](_0x1fd98d);}return null;};}function patchUpdates(_0x411d32){return function(_0x246798){try{jsonpatch[_0x9f25('0x23')](_0x246798,_0x411d32,!![]);}catch(_0x2a99a1){return BPromise[_0x9f25('0x24')](_0x2a99a1);}return _0x246798[_0x9f25('0x25')]();};}function saveUpdates(_0x164430,_0x101da9){return function(_0x20f7d5){if(_0x20f7d5){return _0x20f7d5[_0x9f25('0x26')](_0x164430)[_0x9f25('0x27')](function(_0x2bd73d){return _0x2bd73d;});}return null;};}function removeEntity(_0xe4979b,_0x32b41e){return function(_0x4ad6c1){if(_0x4ad6c1){return _0x4ad6c1['destroy']()[_0x9f25('0x27')](function(){_0xe4979b[_0x9f25('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1c520f,_0x107ded){return function(_0x1d548e){if(!_0x1d548e){_0x1c520f[_0x9f25('0x1a')](0x194);}return _0x1d548e;};}function handleError(_0x4a0349,_0x284ea6){_0x284ea6=_0x284ea6||0x1f4;return function(_0x1e2867){logger[_0x9f25('0x28')](_0x1e2867[_0x9f25('0x29')]);if(_0x1e2867['name']){delete _0x1e2867[_0x9f25('0x2a')];}_0x4a0349['status'](_0x284ea6)[_0x9f25('0x2b')](_0x1e2867);};}exports[_0x9f25('0x2c')]=function(_0x54b2fe,_0x1be43f){var _0x3a0573={},_0x4d6b5e={},_0x4b3eed={'count':0x0,'rows':[]};var _0x344e56=_[_0x9f25('0x2d')](db[_0x9f25('0x2e')][_0x9f25('0x2f')],function(_0x4a79c2){return{'name':_0x4a79c2[_0x9f25('0x30')],'type':_0x4a79c2[_0x9f25('0x31')]['key']};});_0x4d6b5e[_0x9f25('0x32')]=_['map'](_0x344e56,_0x9f25('0x2a'));_0x4d6b5e[_0x9f25('0x33')]=_[_0x9f25('0x34')](_0x54b2fe[_0x9f25('0x33')]);_0x4d6b5e['filters']=_[_0x9f25('0x35')](_0x4d6b5e[_0x9f25('0x32')],_0x4d6b5e[_0x9f25('0x33')]);_0x3a0573[_0x9f25('0x36')]=_[_0x9f25('0x35')](_0x4d6b5e[_0x9f25('0x32')],qs[_0x9f25('0x37')](_0x54b2fe[_0x9f25('0x33')][_0x9f25('0x37')]));_0x3a0573[_0x9f25('0x36')]=_0x3a0573[_0x9f25('0x36')][_0x9f25('0x38')]?_0x3a0573[_0x9f25('0x36')]:_0x4d6b5e[_0x9f25('0x32')];if(!_0x54b2fe['query']['hasOwnProperty'](_0x9f25('0x39'))){_0x3a0573['limit']=qs['limit'](_0x54b2fe[_0x9f25('0x33')][_0x9f25('0x20')]);_0x3a0573[_0x9f25('0x1e')]=qs[_0x9f25('0x1e')](_0x54b2fe[_0x9f25('0x33')][_0x9f25('0x1e')]);}_0x3a0573[_0x9f25('0x3a')]=qs[_0x9f25('0x3b')](_0x54b2fe[_0x9f25('0x33')][_0x9f25('0x3b')]);_0x3a0573[_0x9f25('0x3c')]=qs[_0x9f25('0x3d')](_[_0x9f25('0x3e')](_0x54b2fe['query'],_0x4d6b5e[_0x9f25('0x3d')]),_0x344e56);if(_0x54b2fe[_0x9f25('0x33')]['filter']){_0x3a0573[_0x9f25('0x3c')]=_[_0x9f25('0x3f')](_0x3a0573['where'],{'$or':_[_0x9f25('0x2d')](_0x344e56,function(_0x412e15){if(_0x412e15[_0x9f25('0x31')]!==_0x9f25('0x40')){var _0x4aee92={};_0x4aee92[_0x412e15['name']]={'$like':'%'+_0x54b2fe[_0x9f25('0x33')][_0x9f25('0x41')]+'%'};return _0x4aee92;}})});}_0x3a0573=_[_0x9f25('0x3f')]({},_0x3a0573,_0x54b2fe[_0x9f25('0x42')]);var _0x1250fe={'where':_0x3a0573['where']};return db[_0x9f25('0x2e')]['count'](_0x1250fe)[_0x9f25('0x27')](function(_0x2b5ad2){_0x4b3eed[_0x9f25('0x21')]=_0x2b5ad2;if(_0x54b2fe[_0x9f25('0x33')][_0x9f25('0x43')]){_0x3a0573[_0x9f25('0x44')]=[{'all':!![]}];}return db[_0x9f25('0x2e')]['findAll'](_0x3a0573);})[_0x9f25('0x27')](function(_0x214d20){_0x4b3eed[_0x9f25('0x45')]=_0x214d20;return _0x4b3eed;})[_0x9f25('0x27')](respondWithFilteredResult(_0x1be43f,_0x3a0573))['catch'](handleError(_0x1be43f,null));};exports['show']=function(_0x6b852b,_0x5c5b86){var _0x14b3d8={'raw':![],'where':{'id':_0x6b852b[_0x9f25('0x46')]['id']}},_0x453827={};_0x453827[_0x9f25('0x32')]=_[_0x9f25('0x34')](db['ZendeskConfiguration'][_0x9f25('0x2f')]);_0x453827[_0x9f25('0x33')]=_['keys'](_0x6b852b[_0x9f25('0x33')]);_0x453827[_0x9f25('0x3d')]=_['intersection'](_0x453827[_0x9f25('0x32')],_0x453827['query']);_0x14b3d8[_0x9f25('0x36')]=_[_0x9f25('0x35')](_0x453827[_0x9f25('0x32')],qs[_0x9f25('0x37')](_0x6b852b[_0x9f25('0x33')]['fields']));_0x14b3d8[_0x9f25('0x36')]=_0x14b3d8[_0x9f25('0x36')][_0x9f25('0x38')]?_0x14b3d8['attributes']:_0x453827[_0x9f25('0x32')];if(_0x6b852b['query'][_0x9f25('0x43')]){_0x14b3d8[_0x9f25('0x44')]=[{'all':!![]}];}_0x14b3d8=_['merge']({},_0x14b3d8,_0x6b852b[_0x9f25('0x42')]);return db[_0x9f25('0x2e')][_0x9f25('0x47')](_0x14b3d8)[_0x9f25('0x27')](handleEntityNotFound(_0x5c5b86,null))[_0x9f25('0x27')](respondWithResult(_0x5c5b86,null))[_0x9f25('0x48')](handleError(_0x5c5b86,null));};exports[_0x9f25('0x49')]=function(_0x272e3a,_0x3671a3){return db[_0x9f25('0x2e')][_0x9f25('0x49')](_0x272e3a['body'],{})['then'](respondWithResult(_0x3671a3,0xc9))[_0x9f25('0x48')](handleError(_0x3671a3,null));};exports[_0x9f25('0x26')]=function(_0xef7cbb,_0x4a7bc8){if(_0xef7cbb[_0x9f25('0x4a')]['id']){delete _0xef7cbb['body']['id'];}return db[_0x9f25('0x2e')][_0x9f25('0x47')]({'where':{'id':_0xef7cbb['params']['id']}})[_0x9f25('0x27')](handleEntityNotFound(_0x4a7bc8,null))[_0x9f25('0x27')](saveUpdates(_0xef7cbb[_0x9f25('0x4a')],null))[_0x9f25('0x27')](respondWithResult(_0x4a7bc8,null))[_0x9f25('0x48')](handleError(_0x4a7bc8,null));};exports['destroy']=function(_0x4e27b4,_0x39810c){return db[_0x9f25('0x2e')]['find']({'where':{'id':_0x4e27b4[_0x9f25('0x46')]['id']}})[_0x9f25('0x27')](handleEntityNotFound(_0x39810c,null))[_0x9f25('0x27')](removeEntity(_0x39810c,null))['catch'](handleError(_0x39810c,null));};exports[_0x9f25('0x4b')]=function(_0x3bbfa6,_0x297282,_0x2c4907){var _0x585bd8={};var _0x296687={};var _0x4df7c7;var _0x26c6fd;return db['ZendeskConfiguration'][_0x9f25('0x4c')]({'where':{'id':_0x3bbfa6[_0x9f25('0x46')]['id']}})[_0x9f25('0x27')](handleEntityNotFound(_0x297282,null))['then'](function(_0x47935c){if(_0x47935c){_0x4df7c7=_0x47935c;_0x296687[_0x9f25('0x32')]=_[_0x9f25('0x34')](db[_0x9f25('0x4d')][_0x9f25('0x2f')]);_0x296687[_0x9f25('0x33')]=_[_0x9f25('0x34')](_0x3bbfa6[_0x9f25('0x33')]);_0x296687[_0x9f25('0x3d')]=_[_0x9f25('0x35')](_0x296687[_0x9f25('0x32')],_0x296687[_0x9f25('0x33')]);_0x585bd8[_0x9f25('0x36')]=_[_0x9f25('0x35')](_0x296687['model'],qs['fields'](_0x3bbfa6[_0x9f25('0x33')]['fields']));_0x585bd8['attributes']=_0x585bd8[_0x9f25('0x36')][_0x9f25('0x38')]?_0x585bd8['attributes']:_0x296687[_0x9f25('0x32')];_0x585bd8[_0x9f25('0x3a')]=qs[_0x9f25('0x3b')](_0x3bbfa6['query'][_0x9f25('0x3b')]);_0x585bd8[_0x9f25('0x3c')]=qs[_0x9f25('0x3d')](_[_0x9f25('0x3e')](_0x3bbfa6[_0x9f25('0x33')],_0x296687[_0x9f25('0x3d')]));if(_0x3bbfa6[_0x9f25('0x33')][_0x9f25('0x41')]){_0x585bd8['where']=_[_0x9f25('0x3f')](_0x585bd8[_0x9f25('0x3c')],{'$or':_[_0x9f25('0x2d')](_0x585bd8[_0x9f25('0x36')],function(_0x180069){var _0x4dece3={};_0x4dece3[_0x180069]={'$like':'%'+_0x3bbfa6['query'][_0x9f25('0x41')]+'%'};return _0x4dece3;})});}_0x585bd8=_[_0x9f25('0x3f')]({},_0x585bd8,_0x3bbfa6[_0x9f25('0x42')]);return _0x4df7c7[_0x9f25('0x4b')](_0x585bd8);}})[_0x9f25('0x27')](function(_0x1b8788){if(_0x1b8788){_0x26c6fd=_0x1b8788[_0x9f25('0x38')];if(!_0x3bbfa6[_0x9f25('0x33')]['hasOwnProperty'](_0x9f25('0x39'))){_0x585bd8['limit']=qs[_0x9f25('0x20')](_0x3bbfa6['query'][_0x9f25('0x20')]);_0x585bd8[_0x9f25('0x1e')]=qs['offset'](_0x3bbfa6['query']['offset']);}return _0x4df7c7['getFields'](_0x585bd8);}})[_0x9f25('0x27')](function(_0x461243){if(_0x461243){return _0x461243?{'count':_0x26c6fd,'rows':_0x461243}:null;}})['then'](respondWithResult(_0x297282,null))[_0x9f25('0x48')](handleError(_0x297282,null));};exports[_0x9f25('0x4e')]=function(_0x338853,_0x2eb738,_0x117f30){var _0x3ba39e={};var _0x3146f2={};var _0xbd877;var _0x92e143;return db[_0x9f25('0x2e')][_0x9f25('0x4c')]({'where':{'id':_0x338853[_0x9f25('0x46')]['id']}})[_0x9f25('0x27')](handleEntityNotFound(_0x2eb738,null))[_0x9f25('0x27')](function(_0x32626d){if(_0x32626d){_0xbd877=_0x32626d;_0x3146f2[_0x9f25('0x32')]=_[_0x9f25('0x34')](db['ZendeskField'][_0x9f25('0x2f')]);_0x3146f2['query']=_['keys'](_0x338853['query']);_0x3146f2['filters']=_['intersection'](_0x3146f2[_0x9f25('0x32')],_0x3146f2[_0x9f25('0x33')]);_0x3ba39e[_0x9f25('0x36')]=_[_0x9f25('0x35')](_0x3146f2['model'],qs[_0x9f25('0x37')](_0x338853[_0x9f25('0x33')]['fields']));_0x3ba39e[_0x9f25('0x36')]=_0x3ba39e[_0x9f25('0x36')][_0x9f25('0x38')]?_0x3ba39e[_0x9f25('0x36')]:_0x3146f2['model'];_0x3ba39e[_0x9f25('0x3a')]=qs[_0x9f25('0x3b')](_0x338853[_0x9f25('0x33')]['sort']);_0x3ba39e[_0x9f25('0x3c')]=qs[_0x9f25('0x3d')](_[_0x9f25('0x3e')](_0x338853[_0x9f25('0x33')],_0x3146f2['filters']));if(_0x338853['query'][_0x9f25('0x41')]){_0x3ba39e[_0x9f25('0x3c')]=_[_0x9f25('0x3f')](_0x3ba39e[_0x9f25('0x3c')],{'$or':_['map'](_0x3ba39e[_0x9f25('0x36')],function(_0x289183){var _0xce0d27={};_0xce0d27[_0x289183]={'$like':'%'+_0x338853[_0x9f25('0x33')][_0x9f25('0x41')]+'%'};return _0xce0d27;})});}_0x3ba39e=_[_0x9f25('0x3f')]({},_0x3ba39e,_0x338853['options']);return _0xbd877[_0x9f25('0x4e')](_0x3ba39e);}})[_0x9f25('0x27')](function(_0x11bfe2){if(_0x11bfe2){_0x92e143=_0x11bfe2['length'];if(!_0x338853[_0x9f25('0x33')][_0x9f25('0x4f')]('nolimit')){_0x3ba39e[_0x9f25('0x20')]=qs['limit'](_0x338853[_0x9f25('0x33')][_0x9f25('0x20')]);_0x3ba39e['offset']=qs['offset'](_0x338853[_0x9f25('0x33')][_0x9f25('0x1e')]);}return _0xbd877[_0x9f25('0x4e')](_0x3ba39e);}})['then'](function(_0x501948){if(_0x501948){return _0x501948?{'count':_0x92e143,'rows':_0x501948}:null;}})[_0x9f25('0x27')](respondWithResult(_0x2eb738,null))[_0x9f25('0x48')](handleError(_0x2eb738,null));};exports[_0x9f25('0x50')]=function(_0x1f043d,_0x3f2e3d,_0x3994f5){var _0x57625a={};var _0x12161f={};var _0x380f9e;var _0x180ba9;return db[_0x9f25('0x2e')]['findOne']({'where':{'id':_0x1f043d[_0x9f25('0x46')]['id']}})['then'](handleEntityNotFound(_0x3f2e3d,null))['then'](function(_0x6d8aca){if(_0x6d8aca){_0x380f9e=_0x6d8aca;_0x12161f[_0x9f25('0x32')]=_[_0x9f25('0x34')](db[_0x9f25('0x4d')][_0x9f25('0x2f')]);_0x12161f['query']=_[_0x9f25('0x34')](_0x1f043d[_0x9f25('0x33')]);_0x12161f[_0x9f25('0x3d')]=_[_0x9f25('0x35')](_0x12161f[_0x9f25('0x32')],_0x12161f[_0x9f25('0x33')]);_0x57625a[_0x9f25('0x36')]=_[_0x9f25('0x35')](_0x12161f[_0x9f25('0x32')],qs[_0x9f25('0x37')](_0x1f043d[_0x9f25('0x33')]['fields']));_0x57625a[_0x9f25('0x36')]=_0x57625a['attributes'][_0x9f25('0x38')]?_0x57625a['attributes']:_0x12161f[_0x9f25('0x32')];_0x57625a[_0x9f25('0x3a')]=qs['sort'](_0x1f043d[_0x9f25('0x33')][_0x9f25('0x3b')]);_0x57625a[_0x9f25('0x3c')]=qs[_0x9f25('0x3d')](_['pick'](_0x1f043d[_0x9f25('0x33')],_0x12161f[_0x9f25('0x3d')]));if(_0x1f043d[_0x9f25('0x33')][_0x9f25('0x41')]){_0x57625a[_0x9f25('0x3c')]=_['merge'](_0x57625a[_0x9f25('0x3c')],{'$or':_[_0x9f25('0x2d')](_0x57625a[_0x9f25('0x36')],function(_0x1d587d){var _0x4a2ae1={};_0x4a2ae1[_0x1d587d]={'$like':'%'+_0x1f043d['query'][_0x9f25('0x41')]+'%'};return _0x4a2ae1;})});}_0x57625a=_[_0x9f25('0x3f')]({},_0x57625a,_0x1f043d[_0x9f25('0x42')]);return _0x380f9e[_0x9f25('0x50')](_0x57625a);}})[_0x9f25('0x27')](function(_0x57d04d){if(_0x57d04d){_0x180ba9=_0x57d04d[_0x9f25('0x38')];if(!_0x1f043d['query'][_0x9f25('0x4f')](_0x9f25('0x39'))){_0x57625a[_0x9f25('0x20')]=qs[_0x9f25('0x20')](_0x1f043d['query'][_0x9f25('0x20')]);_0x57625a['offset']=qs[_0x9f25('0x1e')](_0x1f043d[_0x9f25('0x33')][_0x9f25('0x1e')]);}return _0x380f9e['getDescriptions'](_0x57625a);}})['then'](function(_0x4ac948){if(_0x4ac948){return _0x4ac948?{'count':_0x180ba9,'rows':_0x4ac948}:null;}})[_0x9f25('0x27')](respondWithResult(_0x3f2e3d,null))['catch'](handleError(_0x3f2e3d,null));};exports['getTags']=function(_0xb34d4b,_0x2fac97,_0x2a9f61){var _0x1c9117={};var _0x32d8cc={};var _0x4b00d2;var _0x41fbe9;return db[_0x9f25('0x2e')][_0x9f25('0x4c')]({'where':{'id':_0xb34d4b[_0x9f25('0x46')]['id']}})[_0x9f25('0x27')](handleEntityNotFound(_0x2fac97,null))[_0x9f25('0x27')](function(_0x4bade1){if(_0x4bade1){_0x4b00d2=_0x4bade1;_0x32d8cc[_0x9f25('0x32')]=_[_0x9f25('0x34')](db['Tag'][_0x9f25('0x2f')]);_0x32d8cc[_0x9f25('0x33')]=_[_0x9f25('0x34')](_0xb34d4b['query']);_0x32d8cc['filters']=_[_0x9f25('0x35')](_0x32d8cc[_0x9f25('0x32')],_0x32d8cc['query']);_0x1c9117[_0x9f25('0x36')]=_['intersection'](_0x32d8cc[_0x9f25('0x32')],qs[_0x9f25('0x37')](_0xb34d4b[_0x9f25('0x33')][_0x9f25('0x37')]));_0x1c9117[_0x9f25('0x36')]=_0x1c9117['attributes'][_0x9f25('0x38')]?_0x1c9117[_0x9f25('0x36')]:_0x32d8cc[_0x9f25('0x32')];_0x1c9117['order']=qs['sort'](_0xb34d4b['query'][_0x9f25('0x3b')]);_0x1c9117[_0x9f25('0x3c')]=qs[_0x9f25('0x3d')](_[_0x9f25('0x3e')](_0xb34d4b['query'],_0x32d8cc[_0x9f25('0x3d')]));if(_0xb34d4b[_0x9f25('0x33')]['filter']){_0x1c9117[_0x9f25('0x3c')]=_[_0x9f25('0x3f')](_0x1c9117[_0x9f25('0x3c')],{'$or':_[_0x9f25('0x2d')](_0x1c9117[_0x9f25('0x36')],function(_0x160d4b){var _0x2d33d7={};_0x2d33d7[_0x160d4b]={'$like':'%'+_0xb34d4b[_0x9f25('0x33')][_0x9f25('0x41')]+'%'};return _0x2d33d7;})});}_0x1c9117=_[_0x9f25('0x3f')]({},_0x1c9117,_0xb34d4b[_0x9f25('0x42')]);return _0x4b00d2[_0x9f25('0x51')](_0x1c9117);}})['then'](function(_0x30a71d){if(_0x30a71d){_0x41fbe9=_0x30a71d[_0x9f25('0x38')];if(!_0xb34d4b[_0x9f25('0x33')]['hasOwnProperty']('nolimit')){_0x1c9117[_0x9f25('0x20')]=qs[_0x9f25('0x20')](_0xb34d4b['query'][_0x9f25('0x20')]);_0x1c9117[_0x9f25('0x1e')]=qs[_0x9f25('0x1e')](_0xb34d4b[_0x9f25('0x33')]['offset']);}return _0x4b00d2['getTags'](_0x1c9117);}})[_0x9f25('0x27')](function(_0x43ba02){if(_0x43ba02){return _0x43ba02?{'count':_0x41fbe9,'rows':_0x43ba02}:null;}})['then'](respondWithResult(_0x2fac97,null))[_0x9f25('0x48')](handleError(_0x2fac97,null));};exports[_0x9f25('0x52')]=function(_0x22083a,_0x988483,_0x48c0ce){if(_0x22083a[_0x9f25('0x4a')]['id']){delete _0x22083a[_0x9f25('0x4a')]['id'];}return db[_0x9f25('0x2e')][_0x9f25('0x4c')]({'where':{'id':_0x22083a[_0x9f25('0x46')]['id']}})['then'](handleEntityNotFound(_0x988483,null))[_0x9f25('0x27')](function(_0x29073b){if(_0x29073b){return _0x29073b[_0x9f25('0x52')](_0x22083a[_0x9f25('0x4a')][_0x9f25('0x53')]||[]);}return null;})['then'](respondWithResult(_0x988483,null))[_0x9f25('0x48')](handleError(_0x988483,null));};
\ No newline at end of file
+var _0xfd2b=['merge','type','VIRTUAL','options','includeAll','include','ZendeskConfiguration','findAll','rows','show','params','rawAttributes','find','create','catch','body','getFields','findOne','ZendeskField','hasOwnProperty','getSubjects','getDescriptions','getTags','Tag','setTags','ids','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','destroy','then','error','stack','name','send','index','fieldName','key','model','map','query','keys','filters','intersection','attributes','fields','length','nolimit','order','sort','where','pick','filter'];(function(_0x4565bf,_0x5ad9d6){var _0x5610ba=function(_0x170988){while(--_0x170988){_0x4565bf['push'](_0x4565bf['shift']());}};_0x5610ba(++_0x5ad9d6);}(_0xfd2b,0xd0));var _0xbfd2=function(_0x256011,_0x28bb88){_0x256011=_0x256011-0x0;var _0xcb704f=_0xfd2b[_0x256011];return _0xcb704f;};'use strict';var emlformat=require(_0xbfd2('0x0'));var rimraf=require(_0xbfd2('0x1'));var zipdir=require(_0xbfd2('0x2'));var jsonpatch=require(_0xbfd2('0x3'));var rp=require(_0xbfd2('0x4'));var moment=require(_0xbfd2('0x5'));var BPromise=require(_0xbfd2('0x6'));var Mustache=require('mustache');var util=require('util');var path=require(_0xbfd2('0x7'));var sox=require('sox');var csv=require(_0xbfd2('0x8'));var ejs=require(_0xbfd2('0x9'));var fs=require('fs');var fs_extra=require(_0xbfd2('0xa'));var _=require(_0xbfd2('0xb'));var squel=require(_0xbfd2('0xc'));var crypto=require(_0xbfd2('0xd'));var jsforce=require(_0xbfd2('0xe'));var deskjs=require(_0xbfd2('0xf'));var toCsv=require(_0xbfd2('0x8'));var querystring=require(_0xbfd2('0x10'));var Papa=require(_0xbfd2('0x11'));var Redis=require(_0xbfd2('0x12'));var authService=require(_0xbfd2('0x13'));var qs=require(_0xbfd2('0x14'));var as=require(_0xbfd2('0x15'));var hardwareService=require(_0xbfd2('0x16'));var logger=require(_0xbfd2('0x17'))(_0xbfd2('0x18'));var utils=require(_0xbfd2('0x19'));var config=require('../../config/environment');var licenseUtil=require(_0xbfd2('0x1a'));var db=require(_0xbfd2('0x1b'))['db'];function respondWithStatusCode(_0xb218e7,_0x1ad48f){_0x1ad48f=_0x1ad48f||0xcc;return function(_0x306138){if(_0x306138){return _0xb218e7[_0xbfd2('0x1c')](_0x1ad48f);}return _0xb218e7[_0xbfd2('0x1d')](_0x1ad48f)[_0xbfd2('0x1e')]();};}function respondWithResult(_0x1d611d,_0x25d0eb){_0x25d0eb=_0x25d0eb||0xc8;return function(_0x48433c){if(_0x48433c){return _0x1d611d['status'](_0x25d0eb)[_0xbfd2('0x1f')](_0x48433c);}};}function respondWithFilteredResult(_0x5dc07b,_0x58844e){return function(_0x380f33){if(_0x380f33){var _0x2de725=typeof _0x58844e[_0xbfd2('0x20')]===_0xbfd2('0x21')&&typeof _0x58844e[_0xbfd2('0x22')]===_0xbfd2('0x21');var _0x3afe27=_0x380f33[_0xbfd2('0x23')];var _0x169d62=_0x2de725?0x0:_0x58844e[_0xbfd2('0x20')];var _0x4dc508=_0x2de725?_0x380f33[_0xbfd2('0x23')]:_0x58844e[_0xbfd2('0x20')]+_0x58844e[_0xbfd2('0x22')];var _0xef7f7c;if(_0x4dc508>=_0x3afe27){_0x4dc508=_0x3afe27;_0xef7f7c=0xc8;}else{_0xef7f7c=0xce;}_0x5dc07b[_0xbfd2('0x1d')](_0xef7f7c);return _0x5dc07b[_0xbfd2('0x24')](_0xbfd2('0x25'),_0x169d62+'-'+_0x4dc508+'/'+_0x3afe27)[_0xbfd2('0x1f')](_0x380f33);}return null;};}function patchUpdates(_0xc0b860){return function(_0x1b70a3){try{jsonpatch[_0xbfd2('0x26')](_0x1b70a3,_0xc0b860,!![]);}catch(_0x388107){return BPromise[_0xbfd2('0x27')](_0x388107);}return _0x1b70a3['save']();};}function saveUpdates(_0x26029f,_0x144b43){return function(_0x1e1038){if(_0x1e1038){return _0x1e1038[_0xbfd2('0x28')](_0x26029f)['then'](function(_0x24b410){return _0x24b410;});}return null;};}function removeEntity(_0x2444cc,_0x195cc7){return function(_0x4508a2){if(_0x4508a2){return _0x4508a2[_0xbfd2('0x29')]()[_0xbfd2('0x2a')](function(){_0x2444cc[_0xbfd2('0x1d')](0xcc)[_0xbfd2('0x1e')]();});}};}function handleEntityNotFound(_0x3e4452,_0x68a5d7){return function(_0x135c85){if(!_0x135c85){_0x3e4452[_0xbfd2('0x1c')](0x194);}return _0x135c85;};}function handleError(_0x340dc5,_0xe0ff9f){_0xe0ff9f=_0xe0ff9f||0x1f4;return function(_0x414874){logger[_0xbfd2('0x2b')](_0x414874[_0xbfd2('0x2c')]);if(_0x414874[_0xbfd2('0x2d')]){delete _0x414874[_0xbfd2('0x2d')];}_0x340dc5[_0xbfd2('0x1d')](_0xe0ff9f)[_0xbfd2('0x2e')](_0x414874);};}exports[_0xbfd2('0x2f')]=function(_0x107459,_0x505e59){var _0x2d06a4={},_0x582e21={},_0x574127={'count':0x0,'rows':[]};var _0x2ae39d=_['map'](db['ZendeskConfiguration']['rawAttributes'],function(_0x4a20c5){return{'name':_0x4a20c5[_0xbfd2('0x30')],'type':_0x4a20c5['type'][_0xbfd2('0x31')]};});_0x582e21[_0xbfd2('0x32')]=_[_0xbfd2('0x33')](_0x2ae39d,_0xbfd2('0x2d'));_0x582e21[_0xbfd2('0x34')]=_[_0xbfd2('0x35')](_0x107459['query']);_0x582e21[_0xbfd2('0x36')]=_[_0xbfd2('0x37')](_0x582e21['model'],_0x582e21['query']);_0x2d06a4[_0xbfd2('0x38')]=_[_0xbfd2('0x37')](_0x582e21[_0xbfd2('0x32')],qs[_0xbfd2('0x39')](_0x107459['query'][_0xbfd2('0x39')]));_0x2d06a4['attributes']=_0x2d06a4['attributes'][_0xbfd2('0x3a')]?_0x2d06a4[_0xbfd2('0x38')]:_0x582e21[_0xbfd2('0x32')];if(!_0x107459[_0xbfd2('0x34')]['hasOwnProperty'](_0xbfd2('0x3b'))){_0x2d06a4[_0xbfd2('0x22')]=qs['limit'](_0x107459[_0xbfd2('0x34')][_0xbfd2('0x22')]);_0x2d06a4[_0xbfd2('0x20')]=qs['offset'](_0x107459['query']['offset']);}_0x2d06a4[_0xbfd2('0x3c')]=qs['sort'](_0x107459[_0xbfd2('0x34')][_0xbfd2('0x3d')]);_0x2d06a4[_0xbfd2('0x3e')]=qs['filters'](_[_0xbfd2('0x3f')](_0x107459[_0xbfd2('0x34')],_0x582e21[_0xbfd2('0x36')]),_0x2ae39d);if(_0x107459[_0xbfd2('0x34')][_0xbfd2('0x40')]){_0x2d06a4['where']=_[_0xbfd2('0x41')](_0x2d06a4[_0xbfd2('0x3e')],{'$or':_['map'](_0x2ae39d,function(_0x5a4f7a){if(_0x5a4f7a[_0xbfd2('0x42')]!==_0xbfd2('0x43')){var _0x100bc5={};_0x100bc5[_0x5a4f7a[_0xbfd2('0x2d')]]={'$like':'%'+_0x107459['query'][_0xbfd2('0x40')]+'%'};return _0x100bc5;}})});}_0x2d06a4=_[_0xbfd2('0x41')]({},_0x2d06a4,_0x107459[_0xbfd2('0x44')]);var _0x3ff685={'where':_0x2d06a4[_0xbfd2('0x3e')]};return db['ZendeskConfiguration'][_0xbfd2('0x23')](_0x3ff685)['then'](function(_0x44f690){_0x574127[_0xbfd2('0x23')]=_0x44f690;if(_0x107459[_0xbfd2('0x34')][_0xbfd2('0x45')]){_0x2d06a4[_0xbfd2('0x46')]=[{'all':!![]}];}return db[_0xbfd2('0x47')][_0xbfd2('0x48')](_0x2d06a4);})['then'](function(_0x5125a9){_0x574127[_0xbfd2('0x49')]=_0x5125a9;return _0x574127;})['then'](respondWithFilteredResult(_0x505e59,_0x2d06a4))['catch'](handleError(_0x505e59,null));};exports[_0xbfd2('0x4a')]=function(_0xdefc34,_0xe68661){var _0x16c4aa={'raw':![],'where':{'id':_0xdefc34[_0xbfd2('0x4b')]['id']}},_0x3852c2={};_0x3852c2[_0xbfd2('0x32')]=_[_0xbfd2('0x35')](db[_0xbfd2('0x47')][_0xbfd2('0x4c')]);_0x3852c2['query']=_['keys'](_0xdefc34['query']);_0x3852c2[_0xbfd2('0x36')]=_[_0xbfd2('0x37')](_0x3852c2[_0xbfd2('0x32')],_0x3852c2[_0xbfd2('0x34')]);_0x16c4aa['attributes']=_['intersection'](_0x3852c2[_0xbfd2('0x32')],qs[_0xbfd2('0x39')](_0xdefc34[_0xbfd2('0x34')][_0xbfd2('0x39')]));_0x16c4aa[_0xbfd2('0x38')]=_0x16c4aa['attributes'][_0xbfd2('0x3a')]?_0x16c4aa[_0xbfd2('0x38')]:_0x3852c2[_0xbfd2('0x32')];if(_0xdefc34['query'][_0xbfd2('0x45')]){_0x16c4aa['include']=[{'all':!![]}];}_0x16c4aa=_['merge']({},_0x16c4aa,_0xdefc34[_0xbfd2('0x44')]);return db[_0xbfd2('0x47')][_0xbfd2('0x4d')](_0x16c4aa)[_0xbfd2('0x2a')](handleEntityNotFound(_0xe68661,null))[_0xbfd2('0x2a')](respondWithResult(_0xe68661,null))['catch'](handleError(_0xe68661,null));};exports[_0xbfd2('0x4e')]=function(_0x59b68a,_0x2979c7){return db[_0xbfd2('0x47')][_0xbfd2('0x4e')](_0x59b68a['body'],{})[_0xbfd2('0x2a')](respondWithResult(_0x2979c7,0xc9))[_0xbfd2('0x4f')](handleError(_0x2979c7,null));};exports[_0xbfd2('0x28')]=function(_0x34067b,_0x7d18d8){if(_0x34067b[_0xbfd2('0x50')]['id']){delete _0x34067b['body']['id'];}return db[_0xbfd2('0x47')][_0xbfd2('0x4d')]({'where':{'id':_0x34067b[_0xbfd2('0x4b')]['id']}})[_0xbfd2('0x2a')](handleEntityNotFound(_0x7d18d8,null))[_0xbfd2('0x2a')](saveUpdates(_0x34067b[_0xbfd2('0x50')],null))[_0xbfd2('0x2a')](respondWithResult(_0x7d18d8,null))[_0xbfd2('0x4f')](handleError(_0x7d18d8,null));};exports[_0xbfd2('0x29')]=function(_0x98ecf4,_0x2f2b41){return db[_0xbfd2('0x47')][_0xbfd2('0x4d')]({'where':{'id':_0x98ecf4[_0xbfd2('0x4b')]['id']}})['then'](handleEntityNotFound(_0x2f2b41,null))['then'](removeEntity(_0x2f2b41,null))[_0xbfd2('0x4f')](handleError(_0x2f2b41,null));};exports[_0xbfd2('0x51')]=function(_0x4e7e3b,_0x21b287,_0x4e9f8e){var _0x7e47db={};var _0x2a71c5={};var _0xa5ed4c;var _0x2948f7;return db[_0xbfd2('0x47')][_0xbfd2('0x52')]({'where':{'id':_0x4e7e3b[_0xbfd2('0x4b')]['id']}})['then'](handleEntityNotFound(_0x21b287,null))[_0xbfd2('0x2a')](function(_0x44558f){if(_0x44558f){_0xa5ed4c=_0x44558f;_0x2a71c5[_0xbfd2('0x32')]=_[_0xbfd2('0x35')](db[_0xbfd2('0x53')][_0xbfd2('0x4c')]);_0x2a71c5['query']=_[_0xbfd2('0x35')](_0x4e7e3b[_0xbfd2('0x34')]);_0x2a71c5[_0xbfd2('0x36')]=_[_0xbfd2('0x37')](_0x2a71c5[_0xbfd2('0x32')],_0x2a71c5['query']);_0x7e47db[_0xbfd2('0x38')]=_['intersection'](_0x2a71c5[_0xbfd2('0x32')],qs[_0xbfd2('0x39')](_0x4e7e3b[_0xbfd2('0x34')]['fields']));_0x7e47db['attributes']=_0x7e47db['attributes']['length']?_0x7e47db[_0xbfd2('0x38')]:_0x2a71c5[_0xbfd2('0x32')];_0x7e47db[_0xbfd2('0x3c')]=qs[_0xbfd2('0x3d')](_0x4e7e3b['query'][_0xbfd2('0x3d')]);_0x7e47db[_0xbfd2('0x3e')]=qs[_0xbfd2('0x36')](_[_0xbfd2('0x3f')](_0x4e7e3b[_0xbfd2('0x34')],_0x2a71c5['filters']));if(_0x4e7e3b[_0xbfd2('0x34')][_0xbfd2('0x40')]){_0x7e47db[_0xbfd2('0x3e')]=_[_0xbfd2('0x41')](_0x7e47db[_0xbfd2('0x3e')],{'$or':_[_0xbfd2('0x33')](_0x7e47db['attributes'],function(_0x1fb1f6){var _0x2aef4a={};_0x2aef4a[_0x1fb1f6]={'$like':'%'+_0x4e7e3b[_0xbfd2('0x34')][_0xbfd2('0x40')]+'%'};return _0x2aef4a;})});}_0x7e47db=_[_0xbfd2('0x41')]({},_0x7e47db,_0x4e7e3b[_0xbfd2('0x44')]);return _0xa5ed4c[_0xbfd2('0x51')](_0x7e47db);}})[_0xbfd2('0x2a')](function(_0x59379e){if(_0x59379e){_0x2948f7=_0x59379e[_0xbfd2('0x3a')];if(!_0x4e7e3b[_0xbfd2('0x34')][_0xbfd2('0x54')](_0xbfd2('0x3b'))){_0x7e47db[_0xbfd2('0x22')]=qs['limit'](_0x4e7e3b['query'][_0xbfd2('0x22')]);_0x7e47db[_0xbfd2('0x20')]=qs[_0xbfd2('0x20')](_0x4e7e3b[_0xbfd2('0x34')][_0xbfd2('0x20')]);}return _0xa5ed4c[_0xbfd2('0x51')](_0x7e47db);}})[_0xbfd2('0x2a')](function(_0x5ae051){if(_0x5ae051){return _0x5ae051?{'count':_0x2948f7,'rows':_0x5ae051}:null;}})[_0xbfd2('0x2a')](respondWithResult(_0x21b287,null))[_0xbfd2('0x4f')](handleError(_0x21b287,null));};exports[_0xbfd2('0x55')]=function(_0x27b225,_0x43955c,_0x1c3bcd){var _0xc19ccf={};var _0x3ddd47={};var _0x2eb3bd;var _0x1fb28b;return db[_0xbfd2('0x47')][_0xbfd2('0x52')]({'where':{'id':_0x27b225['params']['id']}})[_0xbfd2('0x2a')](handleEntityNotFound(_0x43955c,null))['then'](function(_0x3b5926){if(_0x3b5926){_0x2eb3bd=_0x3b5926;_0x3ddd47[_0xbfd2('0x32')]=_['keys'](db['ZendeskField']['rawAttributes']);_0x3ddd47[_0xbfd2('0x34')]=_[_0xbfd2('0x35')](_0x27b225[_0xbfd2('0x34')]);_0x3ddd47[_0xbfd2('0x36')]=_['intersection'](_0x3ddd47['model'],_0x3ddd47[_0xbfd2('0x34')]);_0xc19ccf[_0xbfd2('0x38')]=_[_0xbfd2('0x37')](_0x3ddd47['model'],qs[_0xbfd2('0x39')](_0x27b225[_0xbfd2('0x34')][_0xbfd2('0x39')]));_0xc19ccf[_0xbfd2('0x38')]=_0xc19ccf[_0xbfd2('0x38')][_0xbfd2('0x3a')]?_0xc19ccf[_0xbfd2('0x38')]:_0x3ddd47[_0xbfd2('0x32')];_0xc19ccf[_0xbfd2('0x3c')]=qs[_0xbfd2('0x3d')](_0x27b225[_0xbfd2('0x34')]['sort']);_0xc19ccf[_0xbfd2('0x3e')]=qs[_0xbfd2('0x36')](_[_0xbfd2('0x3f')](_0x27b225[_0xbfd2('0x34')],_0x3ddd47[_0xbfd2('0x36')]));if(_0x27b225['query']['filter']){_0xc19ccf[_0xbfd2('0x3e')]=_[_0xbfd2('0x41')](_0xc19ccf[_0xbfd2('0x3e')],{'$or':_['map'](_0xc19ccf[_0xbfd2('0x38')],function(_0x202087){var _0xdc9339={};_0xdc9339[_0x202087]={'$like':'%'+_0x27b225[_0xbfd2('0x34')][_0xbfd2('0x40')]+'%'};return _0xdc9339;})});}_0xc19ccf=_['merge']({},_0xc19ccf,_0x27b225[_0xbfd2('0x44')]);return _0x2eb3bd['getSubjects'](_0xc19ccf);}})[_0xbfd2('0x2a')](function(_0x28a353){if(_0x28a353){_0x1fb28b=_0x28a353[_0xbfd2('0x3a')];if(!_0x27b225[_0xbfd2('0x34')][_0xbfd2('0x54')](_0xbfd2('0x3b'))){_0xc19ccf[_0xbfd2('0x22')]=qs[_0xbfd2('0x22')](_0x27b225[_0xbfd2('0x34')][_0xbfd2('0x22')]);_0xc19ccf[_0xbfd2('0x20')]=qs[_0xbfd2('0x20')](_0x27b225['query'][_0xbfd2('0x20')]);}return _0x2eb3bd[_0xbfd2('0x55')](_0xc19ccf);}})[_0xbfd2('0x2a')](function(_0x2ef16b){if(_0x2ef16b){return _0x2ef16b?{'count':_0x1fb28b,'rows':_0x2ef16b}:null;}})[_0xbfd2('0x2a')](respondWithResult(_0x43955c,null))[_0xbfd2('0x4f')](handleError(_0x43955c,null));};exports[_0xbfd2('0x56')]=function(_0x5eb3a7,_0x5105dc,_0x439ddc){var _0x3eca4e={};var _0x164913={};var _0x166393;var _0x1ee709;return db[_0xbfd2('0x47')][_0xbfd2('0x52')]({'where':{'id':_0x5eb3a7['params']['id']}})['then'](handleEntityNotFound(_0x5105dc,null))[_0xbfd2('0x2a')](function(_0xd9989){if(_0xd9989){_0x166393=_0xd9989;_0x164913[_0xbfd2('0x32')]=_[_0xbfd2('0x35')](db['ZendeskField'][_0xbfd2('0x4c')]);_0x164913[_0xbfd2('0x34')]=_[_0xbfd2('0x35')](_0x5eb3a7[_0xbfd2('0x34')]);_0x164913[_0xbfd2('0x36')]=_[_0xbfd2('0x37')](_0x164913[_0xbfd2('0x32')],_0x164913[_0xbfd2('0x34')]);_0x3eca4e[_0xbfd2('0x38')]=_[_0xbfd2('0x37')](_0x164913[_0xbfd2('0x32')],qs['fields'](_0x5eb3a7[_0xbfd2('0x34')][_0xbfd2('0x39')]));_0x3eca4e[_0xbfd2('0x38')]=_0x3eca4e[_0xbfd2('0x38')][_0xbfd2('0x3a')]?_0x3eca4e[_0xbfd2('0x38')]:_0x164913[_0xbfd2('0x32')];_0x3eca4e[_0xbfd2('0x3c')]=qs[_0xbfd2('0x3d')](_0x5eb3a7[_0xbfd2('0x34')][_0xbfd2('0x3d')]);_0x3eca4e['where']=qs[_0xbfd2('0x36')](_[_0xbfd2('0x3f')](_0x5eb3a7['query'],_0x164913[_0xbfd2('0x36')]));if(_0x5eb3a7[_0xbfd2('0x34')][_0xbfd2('0x40')]){_0x3eca4e['where']=_['merge'](_0x3eca4e['where'],{'$or':_[_0xbfd2('0x33')](_0x3eca4e[_0xbfd2('0x38')],function(_0x357031){var _0x47fab3={};_0x47fab3[_0x357031]={'$like':'%'+_0x5eb3a7['query']['filter']+'%'};return _0x47fab3;})});}_0x3eca4e=_[_0xbfd2('0x41')]({},_0x3eca4e,_0x5eb3a7[_0xbfd2('0x44')]);return _0x166393[_0xbfd2('0x56')](_0x3eca4e);}})[_0xbfd2('0x2a')](function(_0x3174b7){if(_0x3174b7){_0x1ee709=_0x3174b7[_0xbfd2('0x3a')];if(!_0x5eb3a7[_0xbfd2('0x34')][_0xbfd2('0x54')](_0xbfd2('0x3b'))){_0x3eca4e['limit']=qs['limit'](_0x5eb3a7[_0xbfd2('0x34')][_0xbfd2('0x22')]);_0x3eca4e['offset']=qs[_0xbfd2('0x20')](_0x5eb3a7[_0xbfd2('0x34')][_0xbfd2('0x20')]);}return _0x166393[_0xbfd2('0x56')](_0x3eca4e);}})[_0xbfd2('0x2a')](function(_0x3d6f60){if(_0x3d6f60){return _0x3d6f60?{'count':_0x1ee709,'rows':_0x3d6f60}:null;}})[_0xbfd2('0x2a')](respondWithResult(_0x5105dc,null))[_0xbfd2('0x4f')](handleError(_0x5105dc,null));};exports[_0xbfd2('0x57')]=function(_0x1e05b3,_0x458991,_0x1f646e){var _0x15ba1c={};var _0x363854={};var _0x354145;var _0x3f1b0c;return db[_0xbfd2('0x47')][_0xbfd2('0x52')]({'where':{'id':_0x1e05b3[_0xbfd2('0x4b')]['id']}})['then'](handleEntityNotFound(_0x458991,null))[_0xbfd2('0x2a')](function(_0x493839){if(_0x493839){_0x354145=_0x493839;_0x363854[_0xbfd2('0x32')]=_[_0xbfd2('0x35')](db[_0xbfd2('0x58')][_0xbfd2('0x4c')]);_0x363854['query']=_['keys'](_0x1e05b3[_0xbfd2('0x34')]);_0x363854[_0xbfd2('0x36')]=_[_0xbfd2('0x37')](_0x363854[_0xbfd2('0x32')],_0x363854[_0xbfd2('0x34')]);_0x15ba1c[_0xbfd2('0x38')]=_[_0xbfd2('0x37')](_0x363854[_0xbfd2('0x32')],qs['fields'](_0x1e05b3[_0xbfd2('0x34')]['fields']));_0x15ba1c[_0xbfd2('0x38')]=_0x15ba1c['attributes']['length']?_0x15ba1c[_0xbfd2('0x38')]:_0x363854[_0xbfd2('0x32')];_0x15ba1c[_0xbfd2('0x3c')]=qs[_0xbfd2('0x3d')](_0x1e05b3[_0xbfd2('0x34')][_0xbfd2('0x3d')]);_0x15ba1c[_0xbfd2('0x3e')]=qs[_0xbfd2('0x36')](_[_0xbfd2('0x3f')](_0x1e05b3[_0xbfd2('0x34')],_0x363854[_0xbfd2('0x36')]));if(_0x1e05b3[_0xbfd2('0x34')]['filter']){_0x15ba1c[_0xbfd2('0x3e')]=_[_0xbfd2('0x41')](_0x15ba1c['where'],{'$or':_[_0xbfd2('0x33')](_0x15ba1c['attributes'],function(_0x55019b){var _0x4be0f3={};_0x4be0f3[_0x55019b]={'$like':'%'+_0x1e05b3[_0xbfd2('0x34')][_0xbfd2('0x40')]+'%'};return _0x4be0f3;})});}_0x15ba1c=_['merge']({},_0x15ba1c,_0x1e05b3[_0xbfd2('0x44')]);return _0x354145[_0xbfd2('0x57')](_0x15ba1c);}})[_0xbfd2('0x2a')](function(_0x335a7f){if(_0x335a7f){_0x3f1b0c=_0x335a7f['length'];if(!_0x1e05b3[_0xbfd2('0x34')]['hasOwnProperty']('nolimit')){_0x15ba1c[_0xbfd2('0x22')]=qs['limit'](_0x1e05b3[_0xbfd2('0x34')][_0xbfd2('0x22')]);_0x15ba1c['offset']=qs[_0xbfd2('0x20')](_0x1e05b3[_0xbfd2('0x34')]['offset']);}return _0x354145[_0xbfd2('0x57')](_0x15ba1c);}})[_0xbfd2('0x2a')](function(_0x2b7b09){if(_0x2b7b09){return _0x2b7b09?{'count':_0x3f1b0c,'rows':_0x2b7b09}:null;}})[_0xbfd2('0x2a')](respondWithResult(_0x458991,null))[_0xbfd2('0x4f')](handleError(_0x458991,null));};exports[_0xbfd2('0x59')]=function(_0xfebc36,_0x48f43e,_0x7abe32){if(_0xfebc36['body']['id']){delete _0xfebc36[_0xbfd2('0x50')]['id'];}return db['ZendeskConfiguration'][_0xbfd2('0x52')]({'where':{'id':_0xfebc36[_0xbfd2('0x4b')]['id']}})[_0xbfd2('0x2a')](handleEntityNotFound(_0x48f43e,null))[_0xbfd2('0x2a')](function(_0x5b3ad1){if(_0x5b3ad1){return _0x5b3ad1[_0xbfd2('0x59')](_0xfebc36[_0xbfd2('0x50')][_0xbfd2('0x5a')]||[]);}return null;})[_0xbfd2('0x2a')](respondWithResult(_0x48f43e,null))['catch'](handleError(_0x48f43e,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf4f4=['util','api','moment','bluebird','request-promise','path','../../config/environment','exports','define','ZendeskConfiguration','int_zendesk_configurations','lodash'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xf4f4,0xe3));var _0x4f4f=function(_0x78d481,_0x1b4792){_0x78d481=_0x78d481-0x0;var _0x11d963=_0xf4f4[_0x78d481];return _0x11d963;};'use strict';var _=require(_0x4f4f('0x0'));var util=require(_0x4f4f('0x1'));var logger=require('../../config/logger')(_0x4f4f('0x2'));var moment=require(_0x4f4f('0x3'));var BPromise=require(_0x4f4f('0x4'));var rp=require(_0x4f4f('0x5'));var fs=require('fs');var path=require(_0x4f4f('0x6'));var rimraf=require('rimraf');var config=require(_0x4f4f('0x7'));var attributes=require('./intZendeskConfiguration.attributes');module[_0x4f4f('0x8')]=function(_0x132d5c,_0x20ee6e){return _0x132d5c[_0x4f4f('0x9')](_0x4f4f('0xa'),attributes,{'tableName':_0x4f4f('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xb44a=['../../config/logger','moment','path','../../config/environment','./intZendeskConfiguration.attributes','exports','define','ZendeskConfiguration','int_zendesk_configurations'];(function(_0x10150e,_0x8f8aa7){var _0x53f052=function(_0x2a87f6){while(--_0x2a87f6){_0x10150e['push'](_0x10150e['shift']());}};_0x53f052(++_0x8f8aa7);}(_0xb44a,0x1c2));var _0xab44=function(_0x476bcd,_0x2f6582){_0x476bcd=_0x476bcd-0x0;var _0x47b60f=_0xb44a[_0x476bcd];return _0x47b60f;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0xab44('0x0'))('api');var moment=require(_0xab44('0x1'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0xab44('0x2'));var rimraf=require('rimraf');var config=require(_0xab44('0x3'));var attributes=require(_0xab44('0x4'));module[_0xab44('0x5')]=function(_0x28681a,_0x2f3948){return _0x28681a[_0xab44('0x6')](_0xab44('0x7'),attributes,{'tableName':_0xab44('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb80c=['../../config/environment','jayson/promise','client','request','info','ZendeskConfiguration,\x20%s,\x20%s','debug','request\x20sent','stringify','error','code','message','result','catch','lodash','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc'];(function(_0x25d4ee,_0xc95872){var _0x214a35=function(_0x4285a0){while(--_0x4285a0){_0x25d4ee['push'](_0x25d4ee['shift']());}};_0x214a35(++_0xc95872);}(_0xb80c,0x10a));var _0xcb80=function(_0x463a8b,_0x4c78fc){_0x463a8b=_0x463a8b-0x0;var _0x5ba89b=_0xb80c[_0x463a8b];return _0x5ba89b;};'use strict';var _=require(_0xcb80('0x0'));var util=require('util');var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xcb80('0x1'));var fs=require('fs');var Redis=require(_0xcb80('0x2'));var db=require(_0xcb80('0x3'))['db'];var utils=require(_0xcb80('0x4'));var logger=require(_0xcb80('0x5'))(_0xcb80('0x6'));var config=require(_0xcb80('0x7'));var jayson=require(_0xcb80('0x8'));var client=jayson[_0xcb80('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x1433ee,_0x23248f,_0x1fb0b2){return new BPromise(function(_0x18be7a,_0x19b66e){return client[_0xcb80('0xa')](_0x1433ee,_0x1fb0b2)['then'](function(_0x3be843){logger[_0xcb80('0xb')](_0xcb80('0xc'),_0x23248f,'request\x20sent');logger[_0xcb80('0xd')]('ZendeskConfiguration,\x20%s,\x20%s,\x20%s',_0x23248f,_0xcb80('0xe'),JSON[_0xcb80('0xf')](_0x3be843));if(_0x3be843[_0xcb80('0x10')]){if(_0x3be843['error'][_0xcb80('0x11')]===0x1f4){logger['error'](_0xcb80('0xc'),_0x23248f,_0x3be843[_0xcb80('0x10')][_0xcb80('0x12')]);return _0x19b66e(_0x3be843[_0xcb80('0x10')][_0xcb80('0x12')]);}logger['error']('ZendeskConfiguration,\x20%s,\x20%s',_0x23248f,_0x3be843[_0xcb80('0x10')][_0xcb80('0x12')]);return _0x18be7a(_0x3be843[_0xcb80('0x10')]['message']);}else{logger['info'](_0xcb80('0xc'),_0x23248f,_0xcb80('0xe'));_0x18be7a(_0x3be843[_0xcb80('0x13')]['message']);}})[_0xcb80('0x14')](function(_0x1f2362){logger[_0xcb80('0x10')]('ZendeskConfiguration,\x20%s,\x20%s',_0x23248f,_0x1f2362);_0x19b66e(_0x1f2362);});});}
\ No newline at end of file
+var _0x7b2a=['request\x20sent','ZendeskConfiguration,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','request','then','info','ZendeskConfiguration,\x20%s,\x20%s'];(function(_0x44237b,_0x26a16){var _0x555e34=function(_0x2405c0){while(--_0x2405c0){_0x44237b['push'](_0x44237b['shift']());}};_0x555e34(++_0x26a16);}(_0x7b2a,0x13c));var _0xa7b2=function(_0x47da5e,_0x22c432){_0x47da5e=_0x47da5e-0x0;var _0x5f03f9=_0x7b2a[_0x47da5e];return _0x5f03f9;};'use strict';var _=require('lodash');var util=require('util');var moment=require('moment');var BPromise=require(_0xa7b2('0x0'));var rs=require(_0xa7b2('0x1'));var fs=require('fs');var Redis=require(_0xa7b2('0x2'));var db=require(_0xa7b2('0x3'))['db'];var utils=require(_0xa7b2('0x4'));var logger=require('../../config/logger')(_0xa7b2('0x5'));var config=require(_0xa7b2('0x6'));var jayson=require(_0xa7b2('0x7'));var client=jayson[_0xa7b2('0x8')][_0xa7b2('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x4465dd,_0x3501df,_0x33fa98){return new BPromise(function(_0x178c71,_0x51e4c1){return client[_0xa7b2('0xa')](_0x4465dd,_0x33fa98)[_0xa7b2('0xb')](function(_0xd41dfe){logger[_0xa7b2('0xc')](_0xa7b2('0xd'),_0x3501df,_0xa7b2('0xe'));logger['debug'](_0xa7b2('0xf'),_0x3501df,_0xa7b2('0xe'),JSON[_0xa7b2('0x10')](_0xd41dfe));if(_0xd41dfe[_0xa7b2('0x11')]){if(_0xd41dfe[_0xa7b2('0x11')][_0xa7b2('0x12')]===0x1f4){logger[_0xa7b2('0x11')](_0xa7b2('0xd'),_0x3501df,_0xd41dfe[_0xa7b2('0x11')][_0xa7b2('0x13')]);return _0x51e4c1(_0xd41dfe[_0xa7b2('0x11')][_0xa7b2('0x13')]);}logger[_0xa7b2('0x11')]('ZendeskConfiguration,\x20%s,\x20%s',_0x3501df,_0xd41dfe[_0xa7b2('0x11')][_0xa7b2('0x13')]);return _0x178c71(_0xd41dfe[_0xa7b2('0x11')][_0xa7b2('0x13')]);}else{logger[_0xa7b2('0xc')](_0xa7b2('0xd'),_0x3501df,'request\x20sent');_0x178c71(_0xd41dfe[_0xa7b2('0x14')][_0xa7b2('0x13')]);}})[_0xa7b2('0x15')](function(_0x553e14){logger[_0xa7b2('0x11')](_0xa7b2('0xd'),_0x3501df,_0x553e14);_0x51e4c1(_0x553e14);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xca91=['/:id','isAuthenticated','show','post','create','put','update','delete','multer','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intZendeskField.controller','index','get'];(function(_0x4565bf,_0x5ad9d6){var _0x5610ba=function(_0x170988){while(--_0x170988){_0x4565bf['push'](_0x4565bf['shift']());}};_0x5610ba(++_0x5ad9d6);}(_0xca91,0x6c));var _0x1ca9=function(_0x4b2b03,_0xbf34ee){_0x4b2b03=_0x4b2b03-0x0;var _0x1bf0ed=_0xca91[_0x4b2b03];return _0x1bf0ed;};'use strict';var multer=require(_0x1ca9('0x0'));var util=require('util');var path=require(_0x1ca9('0x1'));var timeout=require(_0x1ca9('0x2'));var express=require(_0x1ca9('0x3'));var router=express[_0x1ca9('0x4')]();var fs_extra=require(_0x1ca9('0x5'));var auth=require(_0x1ca9('0x6'));var interaction=require(_0x1ca9('0x7'));var config=require(_0x1ca9('0x8'));var controller=require(_0x1ca9('0x9'));router['get']('/',auth['isAuthenticated'](),controller[_0x1ca9('0xa')]);router[_0x1ca9('0xb')](_0x1ca9('0xc'),auth[_0x1ca9('0xd')](),controller[_0x1ca9('0xe')]);router[_0x1ca9('0xf')]('/',auth[_0x1ca9('0xd')](),controller[_0x1ca9('0x10')]);router[_0x1ca9('0x11')](_0x1ca9('0xc'),auth[_0x1ca9('0xd')](),controller[_0x1ca9('0x12')]);router[_0x1ca9('0x13')]('/:id',auth[_0x1ca9('0xd')](),controller['destroy']);module['exports']=router;
\ No newline at end of file
+var _0xaf2a=['Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intZendeskField.controller','isAuthenticated','index','get','show','post','put','/:id','delete','destroy','exports','path','connect-timeout','express'];(function(_0x2b6600,_0x24c497){var _0x912ee2=function(_0x5d6484){while(--_0x5d6484){_0x2b6600['push'](_0x2b6600['shift']());}};_0x912ee2(++_0x24c497);}(_0xaf2a,0x1c5));var _0xaaf2=function(_0x23fcd7,_0x45d688){_0x23fcd7=_0x23fcd7-0x0;var _0x551fad=_0xaf2a[_0x23fcd7];return _0x551fad;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0xaaf2('0x0'));var timeout=require(_0xaaf2('0x1'));var express=require(_0xaaf2('0x2'));var router=express[_0xaaf2('0x3')]();var fs_extra=require(_0xaaf2('0x4'));var auth=require(_0xaaf2('0x5'));var interaction=require(_0xaaf2('0x6'));var config=require(_0xaaf2('0x7'));var controller=require(_0xaaf2('0x8'));router['get']('/',auth[_0xaaf2('0x9')](),controller[_0xaaf2('0xa')]);router[_0xaaf2('0xb')]('/:id',auth[_0xaaf2('0x9')](),controller[_0xaaf2('0xc')]);router[_0xaaf2('0xd')]('/',auth[_0xaaf2('0x9')](),controller['create']);router[_0xaaf2('0xe')](_0xaaf2('0xf'),auth[_0xaaf2('0x9')](),controller['update']);router[_0xaaf2('0x10')](_0xaaf2('0xf'),auth[_0xaaf2('0x9')](),controller[_0xaaf2('0x11')]);module[_0xaaf2('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc9e5=['string','variable','customVariable','keyValue','picklist','STRING','BOOLEAN','sequelize','exports','ENUM'];(function(_0x24237f,_0x4cf32c){var _0x48298e=function(_0x3f7511){while(--_0x3f7511){_0x24237f['push'](_0x24237f['shift']());}};_0x48298e(++_0x4cf32c);}(_0xc9e5,0x18d));var _0x5c9e=function(_0x1d9b10,_0x35b7a1){_0x1d9b10=_0x1d9b10-0x0;var _0x4af843=_0xc9e5[_0x1d9b10];return _0x4af843;};'use strict';var Sequelize=require(_0x5c9e('0x0'));module[_0x5c9e('0x1')]={'type':{'type':Sequelize[_0x5c9e('0x2')](_0x5c9e('0x3'),_0x5c9e('0x4'),_0x5c9e('0x5'),_0x5c9e('0x6'),_0x5c9e('0x7')),'defaultValue':_0x5c9e('0x3')},'content':{'type':Sequelize[_0x5c9e('0x8')]},'key':{'type':Sequelize['STRING']},'keyType':{'type':Sequelize[_0x5c9e('0x2')](_0x5c9e('0x3'),_0x5c9e('0x4'),'customVariable')},'keyContent':{'type':Sequelize[_0x5c9e('0x8')]},'idField':{'type':Sequelize[_0x5c9e('0x8')]},'nameField':{'type':Sequelize[_0x5c9e('0x8')]},'customField':{'type':Sequelize[_0x5c9e('0x9')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x5c9e('0x8')]}};
\ No newline at end of file
+var _0xea83=['keyValue','picklist','STRING','sequelize','exports','ENUM','string','variable','customVariable'];(function(_0xae7c2f,_0xf31e04){var _0x5d7001=function(_0x4eeadb){while(--_0x4eeadb){_0xae7c2f['push'](_0xae7c2f['shift']());}};_0x5d7001(++_0xf31e04);}(_0xea83,0x12c));var _0x3ea8=function(_0x7902d0,_0x378152){_0x7902d0=_0x7902d0-0x0;var _0x2ab4ac=_0xea83[_0x7902d0];return _0x2ab4ac;};'use strict';var Sequelize=require(_0x3ea8('0x0'));module[_0x3ea8('0x1')]={'type':{'type':Sequelize[_0x3ea8('0x2')](_0x3ea8('0x3'),_0x3ea8('0x4'),_0x3ea8('0x5'),_0x3ea8('0x6'),_0x3ea8('0x7')),'defaultValue':_0x3ea8('0x3')},'content':{'type':Sequelize[_0x3ea8('0x8')]},'key':{'type':Sequelize['STRING']},'keyType':{'type':Sequelize[_0x3ea8('0x2')](_0x3ea8('0x3'),'variable',_0x3ea8('0x5'))},'keyContent':{'type':Sequelize['STRING']},'idField':{'type':Sequelize[_0x3ea8('0x8')]},'nameField':{'type':Sequelize['STRING']},'customField':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x3ea8('0x8')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1c30=['json','apply','reject','save','update','then','destroy','error','name','index','map','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','fields','length','nolimit','order','where','pick','filter','merge','VIRTUAL','options','ZendeskField','includeAll','include','findAll','rows','show','catch','create','body','find','params','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','fs-extra','lodash','squel','crypto','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','offset','undefined','limit','count','set'];(function(_0x5a8797,_0x20a689){var _0x19cc6c=function(_0x10188f){while(--_0x10188f){_0x5a8797['push'](_0x5a8797['shift']());}};_0x19cc6c(++_0x20a689);}(_0x1c30,0x107));var _0x01c3=function(_0x2b49bc,_0x47b636){_0x2b49bc=_0x2b49bc-0x0;var _0x43cc65=_0x1c30[_0x2b49bc];return _0x43cc65;};'use strict';var emlformat=require(_0x01c3('0x0'));var rimraf=require(_0x01c3('0x1'));var zipdir=require(_0x01c3('0x2'));var jsonpatch=require(_0x01c3('0x3'));var rp=require('request-promise');var moment=require(_0x01c3('0x4'));var BPromise=require(_0x01c3('0x5'));var Mustache=require(_0x01c3('0x6'));var util=require(_0x01c3('0x7'));var path=require(_0x01c3('0x8'));var sox=require(_0x01c3('0x9'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x01c3('0xa'));var _=require(_0x01c3('0xb'));var squel=require(_0x01c3('0xc'));var crypto=require(_0x01c3('0xd'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x01c3('0xe'));var querystring=require(_0x01c3('0xf'));var Papa=require(_0x01c3('0x10'));var Redis=require(_0x01c3('0x11'));var authService=require(_0x01c3('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x01c3('0x13'));var hardwareService=require(_0x01c3('0x14'));var logger=require(_0x01c3('0x15'))('api');var utils=require(_0x01c3('0x16'));var config=require(_0x01c3('0x17'));var licenseUtil=require(_0x01c3('0x18'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x471fcc,_0x342ffd){_0x342ffd=_0x342ffd||0xcc;return function(_0x59d030){if(_0x59d030){return _0x471fcc[_0x01c3('0x19')](_0x342ffd);}return _0x471fcc[_0x01c3('0x1a')](_0x342ffd)[_0x01c3('0x1b')]();};}function respondWithResult(_0x1411ad,_0x48d115){_0x48d115=_0x48d115||0xc8;return function(_0x4e3d94){if(_0x4e3d94){return _0x1411ad[_0x01c3('0x1a')](_0x48d115)['json'](_0x4e3d94);}};}function respondWithFilteredResult(_0xa34bb9,_0x3b61f9){return function(_0x570312){if(_0x570312){var _0xe07282=typeof _0x3b61f9[_0x01c3('0x1c')]===_0x01c3('0x1d')&&typeof _0x3b61f9[_0x01c3('0x1e')]===_0x01c3('0x1d');var _0x5751cc=_0x570312['count'];var _0x4f0414=_0xe07282?0x0:_0x3b61f9['offset'];var _0x383fb6=_0xe07282?_0x570312[_0x01c3('0x1f')]:_0x3b61f9[_0x01c3('0x1c')]+_0x3b61f9['limit'];var _0x4371f0;if(_0x383fb6>=_0x5751cc){_0x383fb6=_0x5751cc;_0x4371f0=0xc8;}else{_0x4371f0=0xce;}_0xa34bb9['status'](_0x4371f0);return _0xa34bb9[_0x01c3('0x20')]('Content-Range',_0x4f0414+'-'+_0x383fb6+'/'+_0x5751cc)[_0x01c3('0x21')](_0x570312);}return null;};}function patchUpdates(_0x217125){return function(_0x4aec28){try{jsonpatch[_0x01c3('0x22')](_0x4aec28,_0x217125,!![]);}catch(_0x4ccc3f){return BPromise[_0x01c3('0x23')](_0x4ccc3f);}return _0x4aec28[_0x01c3('0x24')]();};}function saveUpdates(_0x29dbb3,_0x3e26c0){return function(_0xc3a8c1){if(_0xc3a8c1){return _0xc3a8c1[_0x01c3('0x25')](_0x29dbb3)[_0x01c3('0x26')](function(_0xe1fd4e){return _0xe1fd4e;});}return null;};}function removeEntity(_0x30ab7a,_0x5996ea){return function(_0x5e6fef){if(_0x5e6fef){return _0x5e6fef[_0x01c3('0x27')]()[_0x01c3('0x26')](function(){_0x30ab7a[_0x01c3('0x1a')](0xcc)[_0x01c3('0x1b')]();});}};}function handleEntityNotFound(_0xd3f307,_0x398868){return function(_0x2a0149){if(!_0x2a0149){_0xd3f307[_0x01c3('0x19')](0x194);}return _0x2a0149;};}function handleError(_0x5ca7ab,_0xb0dfae){_0xb0dfae=_0xb0dfae||0x1f4;return function(_0x1bc303){logger[_0x01c3('0x28')](_0x1bc303['stack']);if(_0x1bc303['name']){delete _0x1bc303[_0x01c3('0x29')];}_0x5ca7ab[_0x01c3('0x1a')](_0xb0dfae)['send'](_0x1bc303);};}exports[_0x01c3('0x2a')]=function(_0xf77b5f,_0x359c31){var _0x568081={},_0x377ce7={},_0x2cffb4={'count':0x0,'rows':[]};var _0x295ea8=_[_0x01c3('0x2b')](db['ZendeskField'][_0x01c3('0x2c')],function(_0x2cf251){return{'name':_0x2cf251[_0x01c3('0x2d')],'type':_0x2cf251[_0x01c3('0x2e')]['key']};});_0x377ce7[_0x01c3('0x2f')]=_['map'](_0x295ea8,_0x01c3('0x29'));_0x377ce7[_0x01c3('0x30')]=_[_0x01c3('0x31')](_0xf77b5f[_0x01c3('0x30')]);_0x377ce7[_0x01c3('0x32')]=_[_0x01c3('0x33')](_0x377ce7[_0x01c3('0x2f')],_0x377ce7['query']);_0x568081[_0x01c3('0x34')]=_[_0x01c3('0x33')](_0x377ce7['model'],qs[_0x01c3('0x35')](_0xf77b5f[_0x01c3('0x30')][_0x01c3('0x35')]));_0x568081[_0x01c3('0x34')]=_0x568081['attributes'][_0x01c3('0x36')]?_0x568081[_0x01c3('0x34')]:_0x377ce7[_0x01c3('0x2f')];if(!_0xf77b5f[_0x01c3('0x30')]['hasOwnProperty'](_0x01c3('0x37'))){_0x568081['limit']=qs['limit'](_0xf77b5f[_0x01c3('0x30')][_0x01c3('0x1e')]);_0x568081[_0x01c3('0x1c')]=qs['offset'](_0xf77b5f[_0x01c3('0x30')][_0x01c3('0x1c')]);}_0x568081[_0x01c3('0x38')]=qs['sort'](_0xf77b5f[_0x01c3('0x30')]['sort']);_0x568081[_0x01c3('0x39')]=qs[_0x01c3('0x32')](_[_0x01c3('0x3a')](_0xf77b5f[_0x01c3('0x30')],_0x377ce7[_0x01c3('0x32')]),_0x295ea8);if(_0xf77b5f['query'][_0x01c3('0x3b')]){_0x568081[_0x01c3('0x39')]=_[_0x01c3('0x3c')](_0x568081['where'],{'$or':_[_0x01c3('0x2b')](_0x295ea8,function(_0x400a45){if(_0x400a45[_0x01c3('0x2e')]!==_0x01c3('0x3d')){var _0x45823b={};_0x45823b[_0x400a45[_0x01c3('0x29')]]={'$like':'%'+_0xf77b5f[_0x01c3('0x30')][_0x01c3('0x3b')]+'%'};return _0x45823b;}})});}_0x568081=_['merge']({},_0x568081,_0xf77b5f[_0x01c3('0x3e')]);var _0x1f1b1b={'where':_0x568081[_0x01c3('0x39')]};return db[_0x01c3('0x3f')]['count'](_0x1f1b1b)[_0x01c3('0x26')](function(_0x3f594c){_0x2cffb4['count']=_0x3f594c;if(_0xf77b5f[_0x01c3('0x30')][_0x01c3('0x40')]){_0x568081[_0x01c3('0x41')]=[{'all':!![]}];}return db[_0x01c3('0x3f')][_0x01c3('0x42')](_0x568081);})[_0x01c3('0x26')](function(_0x1ee429){_0x2cffb4[_0x01c3('0x43')]=_0x1ee429;return _0x2cffb4;})[_0x01c3('0x26')](respondWithFilteredResult(_0x359c31,_0x568081))['catch'](handleError(_0x359c31,null));};exports[_0x01c3('0x44')]=function(_0x267708,_0xe1a8ac){var _0x5e07a8={'raw':!![],'where':{'id':_0x267708['params']['id']}},_0x5527fa={};_0x5527fa[_0x01c3('0x2f')]=_[_0x01c3('0x31')](db[_0x01c3('0x3f')][_0x01c3('0x2c')]);_0x5527fa[_0x01c3('0x30')]=_[_0x01c3('0x31')](_0x267708[_0x01c3('0x30')]);_0x5527fa[_0x01c3('0x32')]=_[_0x01c3('0x33')](_0x5527fa[_0x01c3('0x2f')],_0x5527fa['query']);_0x5e07a8[_0x01c3('0x34')]=_[_0x01c3('0x33')](_0x5527fa[_0x01c3('0x2f')],qs[_0x01c3('0x35')](_0x267708['query'][_0x01c3('0x35')]));_0x5e07a8['attributes']=_0x5e07a8[_0x01c3('0x34')][_0x01c3('0x36')]?_0x5e07a8[_0x01c3('0x34')]:_0x5527fa['model'];if(_0x267708[_0x01c3('0x30')][_0x01c3('0x40')]){_0x5e07a8[_0x01c3('0x41')]=[{'all':!![]}];}_0x5e07a8=_[_0x01c3('0x3c')]({},_0x5e07a8,_0x267708[_0x01c3('0x3e')]);return db[_0x01c3('0x3f')]['find'](_0x5e07a8)[_0x01c3('0x26')](handleEntityNotFound(_0xe1a8ac,null))['then'](respondWithResult(_0xe1a8ac,null))[_0x01c3('0x45')](handleError(_0xe1a8ac,null));};exports['create']=function(_0x31c795,_0x3f68f4){return db[_0x01c3('0x3f')][_0x01c3('0x46')](_0x31c795[_0x01c3('0x47')],{})[_0x01c3('0x26')](respondWithResult(_0x3f68f4,0xc9))['catch'](handleError(_0x3f68f4,null));};exports[_0x01c3('0x25')]=function(_0x118565,_0xcdd037){if(_0x118565[_0x01c3('0x47')]['id']){delete _0x118565[_0x01c3('0x47')]['id'];}return db[_0x01c3('0x3f')][_0x01c3('0x48')]({'where':{'id':_0x118565[_0x01c3('0x49')]['id']}})[_0x01c3('0x26')](handleEntityNotFound(_0xcdd037,null))[_0x01c3('0x26')](saveUpdates(_0x118565[_0x01c3('0x47')],null))[_0x01c3('0x26')](respondWithResult(_0xcdd037,null))[_0x01c3('0x45')](handleError(_0xcdd037,null));};exports[_0x01c3('0x27')]=function(_0x59ce5b,_0x4cf410){return db[_0x01c3('0x3f')][_0x01c3('0x48')]({'where':{'id':_0x59ce5b[_0x01c3('0x49')]['id']}})[_0x01c3('0x26')](handleEntityNotFound(_0x4cf410,null))[_0x01c3('0x26')](removeEntity(_0x4cf410,null))[_0x01c3('0x45')](handleError(_0x4cf410,null));};
\ No newline at end of file
+var _0xec56=['status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','stack','name','send','map','ZendeskField','rawAttributes','fieldName','type','key','query','filters','attributes','model','fields','length','hasOwnProperty','order','sort','where','filter','merge','VIRTUAL','options','includeAll','findAll','rows','show','params','keys','intersection','include','find','catch','create','body','eml-format','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus'];(function(_0x3817aa,_0xb1c5df){var _0x43598a=function(_0x51f7c4){while(--_0x51f7c4){_0x3817aa['push'](_0x3817aa['shift']());}};_0x43598a(++_0xb1c5df);}(_0xec56,0x1bd));var _0x6ec5=function(_0x426a5d,_0x351d74){_0x426a5d=_0x426a5d-0x0;var _0x206961=_0xec56[_0x426a5d];return _0x206961;};'use strict';var emlformat=require(_0x6ec5('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x6ec5('0x1'));var rp=require(_0x6ec5('0x2'));var moment=require(_0x6ec5('0x3'));var BPromise=require(_0x6ec5('0x4'));var Mustache=require(_0x6ec5('0x5'));var util=require(_0x6ec5('0x6'));var path=require(_0x6ec5('0x7'));var sox=require(_0x6ec5('0x8'));var csv=require(_0x6ec5('0x9'));var ejs=require(_0x6ec5('0xa'));var fs=require('fs');var fs_extra=require(_0x6ec5('0xb'));var _=require(_0x6ec5('0xc'));var squel=require(_0x6ec5('0xd'));var crypto=require(_0x6ec5('0xe'));var jsforce=require(_0x6ec5('0xf'));var deskjs=require(_0x6ec5('0x10'));var toCsv=require(_0x6ec5('0x9'));var querystring=require(_0x6ec5('0x11'));var Papa=require(_0x6ec5('0x12'));var Redis=require('ioredis');var authService=require(_0x6ec5('0x13'));var qs=require(_0x6ec5('0x14'));var as=require(_0x6ec5('0x15'));var hardwareService=require(_0x6ec5('0x16'));var logger=require(_0x6ec5('0x17'))(_0x6ec5('0x18'));var utils=require(_0x6ec5('0x19'));var config=require('../../config/environment');var licenseUtil=require(_0x6ec5('0x1a'));var db=require(_0x6ec5('0x1b'))['db'];function respondWithStatusCode(_0x2b1f61,_0xb04ab6){_0xb04ab6=_0xb04ab6||0xcc;return function(_0x135aaf){if(_0x135aaf){return _0x2b1f61[_0x6ec5('0x1c')](_0xb04ab6);}return _0x2b1f61[_0x6ec5('0x1d')](_0xb04ab6)[_0x6ec5('0x1e')]();};}function respondWithResult(_0x5166ad,_0x3ed07a){_0x3ed07a=_0x3ed07a||0xc8;return function(_0x4d1510){if(_0x4d1510){return _0x5166ad[_0x6ec5('0x1d')](_0x3ed07a)[_0x6ec5('0x1f')](_0x4d1510);}};}function respondWithFilteredResult(_0x4a4e3c,_0x9fc0e7){return function(_0xdc0b10){if(_0xdc0b10){var _0x4d09fe=typeof _0x9fc0e7[_0x6ec5('0x20')]===_0x6ec5('0x21')&&typeof _0x9fc0e7[_0x6ec5('0x22')]===_0x6ec5('0x21');var _0x23b3e3=_0xdc0b10[_0x6ec5('0x23')];var _0x1dbee9=_0x4d09fe?0x0:_0x9fc0e7[_0x6ec5('0x20')];var _0x2608c0=_0x4d09fe?_0xdc0b10[_0x6ec5('0x23')]:_0x9fc0e7[_0x6ec5('0x20')]+_0x9fc0e7[_0x6ec5('0x22')];var _0x437f0f;if(_0x2608c0>=_0x23b3e3){_0x2608c0=_0x23b3e3;_0x437f0f=0xc8;}else{_0x437f0f=0xce;}_0x4a4e3c[_0x6ec5('0x1d')](_0x437f0f);return _0x4a4e3c[_0x6ec5('0x24')](_0x6ec5('0x25'),_0x1dbee9+'-'+_0x2608c0+'/'+_0x23b3e3)[_0x6ec5('0x1f')](_0xdc0b10);}return null;};}function patchUpdates(_0x4abd5d){return function(_0x272532){try{jsonpatch[_0x6ec5('0x26')](_0x272532,_0x4abd5d,!![]);}catch(_0xd045b){return BPromise[_0x6ec5('0x27')](_0xd045b);}return _0x272532[_0x6ec5('0x28')]();};}function saveUpdates(_0x38a821,_0x18243f){return function(_0x48733b){if(_0x48733b){return _0x48733b[_0x6ec5('0x29')](_0x38a821)[_0x6ec5('0x2a')](function(_0x358d18){return _0x358d18;});}return null;};}function removeEntity(_0x1560c6,_0x57060c){return function(_0x27f631){if(_0x27f631){return _0x27f631[_0x6ec5('0x2b')]()['then'](function(){_0x1560c6[_0x6ec5('0x1d')](0xcc)[_0x6ec5('0x1e')]();});}};}function handleEntityNotFound(_0xb4d269,_0x5078e8){return function(_0x1b779a){if(!_0x1b779a){_0xb4d269[_0x6ec5('0x1c')](0x194);}return _0x1b779a;};}function handleError(_0x197ea8,_0x462488){_0x462488=_0x462488||0x1f4;return function(_0x425fac){logger['error'](_0x425fac[_0x6ec5('0x2c')]);if(_0x425fac[_0x6ec5('0x2d')]){delete _0x425fac['name'];}_0x197ea8[_0x6ec5('0x1d')](_0x462488)[_0x6ec5('0x2e')](_0x425fac);};}exports['index']=function(_0x3d36cb,_0x3229db){var _0x3bbf16={},_0xa227ff={},_0x116659={'count':0x0,'rows':[]};var _0x5a30ba=_[_0x6ec5('0x2f')](db[_0x6ec5('0x30')][_0x6ec5('0x31')],function(_0x174164){return{'name':_0x174164[_0x6ec5('0x32')],'type':_0x174164[_0x6ec5('0x33')][_0x6ec5('0x34')]};});_0xa227ff['model']=_[_0x6ec5('0x2f')](_0x5a30ba,'name');_0xa227ff[_0x6ec5('0x35')]=_['keys'](_0x3d36cb[_0x6ec5('0x35')]);_0xa227ff[_0x6ec5('0x36')]=_['intersection'](_0xa227ff['model'],_0xa227ff[_0x6ec5('0x35')]);_0x3bbf16[_0x6ec5('0x37')]=_['intersection'](_0xa227ff[_0x6ec5('0x38')],qs[_0x6ec5('0x39')](_0x3d36cb['query'][_0x6ec5('0x39')]));_0x3bbf16[_0x6ec5('0x37')]=_0x3bbf16[_0x6ec5('0x37')][_0x6ec5('0x3a')]?_0x3bbf16[_0x6ec5('0x37')]:_0xa227ff[_0x6ec5('0x38')];if(!_0x3d36cb[_0x6ec5('0x35')][_0x6ec5('0x3b')]('nolimit')){_0x3bbf16[_0x6ec5('0x22')]=qs['limit'](_0x3d36cb[_0x6ec5('0x35')][_0x6ec5('0x22')]);_0x3bbf16[_0x6ec5('0x20')]=qs[_0x6ec5('0x20')](_0x3d36cb[_0x6ec5('0x35')][_0x6ec5('0x20')]);}_0x3bbf16[_0x6ec5('0x3c')]=qs[_0x6ec5('0x3d')](_0x3d36cb[_0x6ec5('0x35')][_0x6ec5('0x3d')]);_0x3bbf16[_0x6ec5('0x3e')]=qs['filters'](_['pick'](_0x3d36cb[_0x6ec5('0x35')],_0xa227ff['filters']),_0x5a30ba);if(_0x3d36cb[_0x6ec5('0x35')][_0x6ec5('0x3f')]){_0x3bbf16[_0x6ec5('0x3e')]=_[_0x6ec5('0x40')](_0x3bbf16[_0x6ec5('0x3e')],{'$or':_[_0x6ec5('0x2f')](_0x5a30ba,function(_0x2fa588){if(_0x2fa588['type']!==_0x6ec5('0x41')){var _0xc79bb3={};_0xc79bb3[_0x2fa588[_0x6ec5('0x2d')]]={'$like':'%'+_0x3d36cb[_0x6ec5('0x35')][_0x6ec5('0x3f')]+'%'};return _0xc79bb3;}})});}_0x3bbf16=_[_0x6ec5('0x40')]({},_0x3bbf16,_0x3d36cb[_0x6ec5('0x42')]);var _0x4354e4={'where':_0x3bbf16[_0x6ec5('0x3e')]};return db['ZendeskField'][_0x6ec5('0x23')](_0x4354e4)['then'](function(_0x19ac12){_0x116659['count']=_0x19ac12;if(_0x3d36cb[_0x6ec5('0x35')][_0x6ec5('0x43')]){_0x3bbf16['include']=[{'all':!![]}];}return db[_0x6ec5('0x30')][_0x6ec5('0x44')](_0x3bbf16);})[_0x6ec5('0x2a')](function(_0x48c019){_0x116659[_0x6ec5('0x45')]=_0x48c019;return _0x116659;})[_0x6ec5('0x2a')](respondWithFilteredResult(_0x3229db,_0x3bbf16))['catch'](handleError(_0x3229db,null));};exports[_0x6ec5('0x46')]=function(_0x19055e,_0x22e6a2){var _0xb8324={'raw':!![],'where':{'id':_0x19055e[_0x6ec5('0x47')]['id']}},_0x43d858={};_0x43d858[_0x6ec5('0x38')]=_[_0x6ec5('0x48')](db[_0x6ec5('0x30')][_0x6ec5('0x31')]);_0x43d858[_0x6ec5('0x35')]=_['keys'](_0x19055e[_0x6ec5('0x35')]);_0x43d858[_0x6ec5('0x36')]=_[_0x6ec5('0x49')](_0x43d858[_0x6ec5('0x38')],_0x43d858['query']);_0xb8324[_0x6ec5('0x37')]=_[_0x6ec5('0x49')](_0x43d858['model'],qs[_0x6ec5('0x39')](_0x19055e['query'][_0x6ec5('0x39')]));_0xb8324[_0x6ec5('0x37')]=_0xb8324[_0x6ec5('0x37')][_0x6ec5('0x3a')]?_0xb8324['attributes']:_0x43d858['model'];if(_0x19055e[_0x6ec5('0x35')]['includeAll']){_0xb8324[_0x6ec5('0x4a')]=[{'all':!![]}];}_0xb8324=_[_0x6ec5('0x40')]({},_0xb8324,_0x19055e[_0x6ec5('0x42')]);return db[_0x6ec5('0x30')][_0x6ec5('0x4b')](_0xb8324)['then'](handleEntityNotFound(_0x22e6a2,null))['then'](respondWithResult(_0x22e6a2,null))[_0x6ec5('0x4c')](handleError(_0x22e6a2,null));};exports[_0x6ec5('0x4d')]=function(_0x5c3aa9,_0x45972a){return db[_0x6ec5('0x30')][_0x6ec5('0x4d')](_0x5c3aa9[_0x6ec5('0x4e')],{})[_0x6ec5('0x2a')](respondWithResult(_0x45972a,0xc9))[_0x6ec5('0x4c')](handleError(_0x45972a,null));};exports[_0x6ec5('0x29')]=function(_0xd265c,_0x1c5e2f){if(_0xd265c[_0x6ec5('0x4e')]['id']){delete _0xd265c[_0x6ec5('0x4e')]['id'];}return db['ZendeskField'][_0x6ec5('0x4b')]({'where':{'id':_0xd265c['params']['id']}})[_0x6ec5('0x2a')](handleEntityNotFound(_0x1c5e2f,null))[_0x6ec5('0x2a')](saveUpdates(_0xd265c['body'],null))[_0x6ec5('0x2a')](respondWithResult(_0x1c5e2f,null))[_0x6ec5('0x4c')](handleError(_0x1c5e2f,null));};exports['destroy']=function(_0x23a64d,_0x21a910){return db['ZendeskField']['find']({'where':{'id':_0x23a64d[_0x6ec5('0x47')]['id']}})['then'](handleEntityNotFound(_0x21a910,null))['then'](removeEntity(_0x21a910,null))[_0x6ec5('0x4c')](handleError(_0x21a910,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb012=['./intZendeskField.attributes','exports','define','ZendeskField','int_zendesk_fields','idField','FieldId','util','moment','bluebird','rimraf','../../config/environment'];(function(_0xb7cb72,_0x19d391){var _0x4b7570=function(_0x5a4a93){while(--_0x5a4a93){_0xb7cb72['push'](_0xb7cb72['shift']());}};_0x4b7570(++_0x19d391);}(_0xb012,0x157));var _0x2b01=function(_0x40b1b2,_0x5918a8){_0x40b1b2=_0x40b1b2-0x0;var _0x160066=_0xb012[_0x40b1b2];return _0x160066;};'use strict';var _=require('lodash');var util=require(_0x2b01('0x0'));var logger=require('../../config/logger')('api');var moment=require(_0x2b01('0x1'));var BPromise=require(_0x2b01('0x2'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0x2b01('0x3'));var config=require(_0x2b01('0x4'));var attributes=require(_0x2b01('0x5'));module[_0x2b01('0x6')]=function(_0x12874a,_0x435532){return _0x12874a[_0x2b01('0x7')](_0x2b01('0x8'),attributes,{'tableName':_0x2b01('0x9'),'paranoid':![],'indexes':[{'name':'zendesk_unique_index','fields':[_0x2b01('0xa'),_0x2b01('0xb')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x509c=['define','idField','FieldId','lodash','util','../../config/logger','api','bluebird','request-promise','path','../../config/environment','./intZendeskField.attributes','exports'];(function(_0x225ef6,_0x333a3e){var _0x1c954b=function(_0x39b5b9){while(--_0x39b5b9){_0x225ef6['push'](_0x225ef6['shift']());}};_0x1c954b(++_0x333a3e);}(_0x509c,0xfa));var _0xc509=function(_0x4edcc0,_0x546f88){_0x4edcc0=_0x4edcc0-0x0;var _0x356f2e=_0x509c[_0x4edcc0];return _0x356f2e;};'use strict';var _=require(_0xc509('0x0'));var util=require(_0xc509('0x1'));var logger=require(_0xc509('0x2'))(_0xc509('0x3'));var moment=require('moment');var BPromise=require(_0xc509('0x4'));var rp=require(_0xc509('0x5'));var fs=require('fs');var path=require(_0xc509('0x6'));var rimraf=require('rimraf');var config=require(_0xc509('0x7'));var attributes=require(_0xc509('0x8'));module[_0xc509('0x9')]=function(_0xc11ce0,_0x1992ab){return _0xc11ce0[_0xc509('0xa')]('ZendeskField',attributes,{'tableName':'int_zendesk_fields','paranoid':![],'indexes':[{'name':'zendesk_unique_index','fields':[_0xc509('0xb'),_0xc509('0xc')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf6ad=['error','message','info','result','catch','lodash','moment','bluebird','randomstring','../../config/logger','rpc','../../config/environment','request','ZendeskField,\x20%s,\x20%s','request\x20sent','debug','stringify'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xf6ad,0x1f2));var _0xdf6a=function(_0x318e9b,_0x3c6161){_0x318e9b=_0x318e9b-0x0;var _0x14f870=_0xf6ad[_0x318e9b];return _0x14f870;};'use strict';var _=require(_0xdf6a('0x0'));var util=require('util');var moment=require(_0xdf6a('0x1'));var BPromise=require(_0xdf6a('0x2'));var rs=require(_0xdf6a('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xdf6a('0x4'))(_0xdf6a('0x5'));var config=require(_0xdf6a('0x6'));var jayson=require('jayson/promise');var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x1e46f4,_0x863107,_0x1ceaf5){return new BPromise(function(_0x9068e7,_0x816075){return client[_0xdf6a('0x7')](_0x1e46f4,_0x1ceaf5)['then'](function(_0x366b67){logger['info'](_0xdf6a('0x8'),_0x863107,_0xdf6a('0x9'));logger[_0xdf6a('0xa')]('ZendeskField,\x20%s,\x20%s,\x20%s',_0x863107,'request\x20sent',JSON[_0xdf6a('0xb')](_0x366b67));if(_0x366b67[_0xdf6a('0xc')]){if(_0x366b67[_0xdf6a('0xc')]['code']===0x1f4){logger['error'](_0xdf6a('0x8'),_0x863107,_0x366b67['error']['message']);return _0x816075(_0x366b67[_0xdf6a('0xc')][_0xdf6a('0xd')]);}logger[_0xdf6a('0xc')](_0xdf6a('0x8'),_0x863107,_0x366b67['error']['message']);return _0x9068e7(_0x366b67['error'][_0xdf6a('0xd')]);}else{logger[_0xdf6a('0xe')](_0xdf6a('0x8'),_0x863107,_0xdf6a('0x9'));_0x9068e7(_0x366b67[_0xdf6a('0xf')][_0xdf6a('0xd')]);}})[_0xdf6a('0x10')](function(_0x46ce86){logger[_0xdf6a('0xc')](_0xdf6a('0x8'),_0x863107,_0x46ce86);_0x816075(_0x46ce86);});});}
\ No newline at end of file
+var _0xe1d7=['then','ZendeskField,\x20%s,\x20%s','debug','request\x20sent','stringify','error','message','info','result','catch','lodash','util','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','request'];(function(_0x13b02f,_0x462a53){var _0x12e9a6=function(_0x187d57){while(--_0x187d57){_0x13b02f['push'](_0x13b02f['shift']());}};_0x12e9a6(++_0x462a53);}(_0xe1d7,0xd2));var _0x7e1d=function(_0x5c0dcb,_0x16cd83){_0x5c0dcb=_0x5c0dcb-0x0;var _0x183a0e=_0xe1d7[_0x5c0dcb];return _0x183a0e;};'use strict';var _=require(_0x7e1d('0x0'));var util=require(_0x7e1d('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x7e1d('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x7e1d('0x3'))['db'];var utils=require(_0x7e1d('0x4'));var logger=require(_0x7e1d('0x5'))(_0x7e1d('0x6'));var config=require('../../config/environment');var jayson=require(_0x7e1d('0x7'));var client=jayson[_0x7e1d('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x4b2f09,_0x347b7c,_0x22cc18){return new BPromise(function(_0x5b82e0,_0x456006){return client[_0x7e1d('0x9')](_0x4b2f09,_0x22cc18)[_0x7e1d('0xa')](function(_0x4cb02a){logger['info'](_0x7e1d('0xb'),_0x347b7c,'request\x20sent');logger[_0x7e1d('0xc')]('ZendeskField,\x20%s,\x20%s,\x20%s',_0x347b7c,_0x7e1d('0xd'),JSON[_0x7e1d('0xe')](_0x4cb02a));if(_0x4cb02a[_0x7e1d('0xf')]){if(_0x4cb02a[_0x7e1d('0xf')]['code']===0x1f4){logger[_0x7e1d('0xf')](_0x7e1d('0xb'),_0x347b7c,_0x4cb02a[_0x7e1d('0xf')][_0x7e1d('0x10')]);return _0x456006(_0x4cb02a['error'][_0x7e1d('0x10')]);}logger['error']('ZendeskField,\x20%s,\x20%s',_0x347b7c,_0x4cb02a[_0x7e1d('0xf')]['message']);return _0x5b82e0(_0x4cb02a[_0x7e1d('0xf')][_0x7e1d('0x10')]);}else{logger[_0x7e1d('0x11')](_0x7e1d('0xb'),_0x347b7c,_0x7e1d('0xd'));_0x5b82e0(_0x4cb02a[_0x7e1d('0x12')][_0x7e1d('0x10')]);}})[_0x7e1d('0x13')](function(_0x537b13){logger[_0x7e1d('0xf')]('ZendeskField,\x20%s,\x20%s',_0x347b7c,_0x537b13);_0x456006(_0x537b13);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x13a9=['show','/:id/configurations','getConfigurations','getFields','post','create','put','/:id','delete','destroy','multer','util','path','connect-timeout','express','fs-extra','../../components/interaction/service','../../config/environment','./intZohoAccount.controller','get','isAuthenticated'];(function(_0x57474e,_0x4178b8){var _0xfaae8c=function(_0x2e34d1){while(--_0x2e34d1){_0x57474e['push'](_0x57474e['shift']());}};_0xfaae8c(++_0x4178b8);}(_0x13a9,0x16f));var _0x913a=function(_0x23e1a7,_0x4f22f5){_0x23e1a7=_0x23e1a7-0x0;var _0x15004d=_0x13a9[_0x23e1a7];return _0x15004d;};'use strict';var multer=require(_0x913a('0x0'));var util=require(_0x913a('0x1'));var path=require(_0x913a('0x2'));var timeout=require(_0x913a('0x3'));var express=require(_0x913a('0x4'));var router=express['Router']();var fs_extra=require(_0x913a('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x913a('0x6'));var config=require(_0x913a('0x7'));var controller=require(_0x913a('0x8'));router[_0x913a('0x9')]('/',auth[_0x913a('0xa')](),controller['index']);router[_0x913a('0x9')]('/:id',auth[_0x913a('0xa')](),controller[_0x913a('0xb')]);router[_0x913a('0x9')](_0x913a('0xc'),auth[_0x913a('0xa')](),controller[_0x913a('0xd')]);router[_0x913a('0x9')]('/:id/fields',auth['isAuthenticated'](),controller[_0x913a('0xe')]);router[_0x913a('0xf')]('/',auth['isAuthenticated'](),controller[_0x913a('0x10')]);router[_0x913a('0xf')](_0x913a('0xc'),auth[_0x913a('0xa')](),controller['addConfiguration']);router[_0x913a('0x11')](_0x913a('0x12'),auth['isAuthenticated'](),controller['update']);router[_0x913a('0x13')](_0x913a('0x12'),auth[_0x913a('0xa')](),controller[_0x913a('0x14')]);module['exports']=router;
\ No newline at end of file
+var _0x9bcc=['create','post','put','update','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','get','isAuthenticated','index','/:id','/:id/configurations','getConfigurations','/:id/fields','getFields'];(function(_0x4bffb6,_0x15fb8e){var _0x1a44f3=function(_0x47145e){while(--_0x47145e){_0x4bffb6['push'](_0x4bffb6['shift']());}};_0x1a44f3(++_0x15fb8e);}(_0x9bcc,0x1b7));var _0xc9bc=function(_0xe2253b,_0x2dbcb6){_0xe2253b=_0xe2253b-0x0;var _0x338115=_0x9bcc[_0xe2253b];return _0x338115;};'use strict';var multer=require(_0xc9bc('0x0'));var util=require(_0xc9bc('0x1'));var path=require(_0xc9bc('0x2'));var timeout=require(_0xc9bc('0x3'));var express=require(_0xc9bc('0x4'));var router=express[_0xc9bc('0x5')]();var fs_extra=require(_0xc9bc('0x6'));var auth=require(_0xc9bc('0x7'));var interaction=require(_0xc9bc('0x8'));var config=require('../../config/environment');var controller=require('./intZohoAccount.controller');router[_0xc9bc('0x9')]('/',auth[_0xc9bc('0xa')](),controller[_0xc9bc('0xb')]);router[_0xc9bc('0x9')](_0xc9bc('0xc'),auth['isAuthenticated'](),controller['show']);router['get'](_0xc9bc('0xd'),auth[_0xc9bc('0xa')](),controller[_0xc9bc('0xe')]);router[_0xc9bc('0x9')](_0xc9bc('0xf'),auth['isAuthenticated'](),controller[_0xc9bc('0x10')]);router['post']('/',auth['isAuthenticated'](),controller[_0xc9bc('0x11')]);router[_0xc9bc('0x12')](_0xc9bc('0xd'),auth[_0xc9bc('0xa')](),controller['addConfiguration']);router[_0xc9bc('0x13')](_0xc9bc('0xc'),auth[_0xc9bc('0xa')](),controller[_0xc9bc('0x14')]);router[_0xc9bc('0x15')](_0xc9bc('0xc'),auth[_0xc9bc('0xa')](),controller[_0xc9bc('0x16')]);module[_0xc9bc('0x17')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe14d=['exports','STRING','sequelize'];(function(_0x1ebf37,_0x22e341){var _0x51fd9a=function(_0xebcc18){while(--_0xebcc18){_0x1ebf37['push'](_0x1ebf37['shift']());}};_0x51fd9a(++_0x22e341);}(_0xe14d,0x1ee));var _0xde14=function(_0x2d8fc2,_0x1c461d){_0x2d8fc2=_0x2d8fc2-0x0;var _0x3a9e53=_0xe14d[_0x2d8fc2];return _0x3a9e53;};'use strict';var Sequelize=require(_0xde14('0x0'));module[_0xde14('0x1')]={'name':{'type':Sequelize[_0xde14('0x2')]},'description':{'type':Sequelize[_0xde14('0x2')]},'host':{'type':Sequelize['STRING']},'zone':{'type':Sequelize[_0xde14('0x2')]},'clientId':{'type':Sequelize[_0xde14('0x2')]},'clientSecret':{'type':Sequelize['STRING']},'serverUrl':{'type':Sequelize[_0xde14('0x2')],'allowNull':![]},'code':{'type':Sequelize[_0xde14('0x2')]},'refreshToken':{'type':Sequelize[_0xde14('0x2')]}};
\ No newline at end of file
+var _0x5636=['sequelize','exports','STRING'];(function(_0x214c87,_0x1bb877){var _0x302111=function(_0x170db1){while(--_0x170db1){_0x214c87['push'](_0x214c87['shift']());}};_0x302111(++_0x1bb877);}(_0x5636,0x102));var _0x6563=function(_0x355926,_0x3238af){_0x355926=_0x355926-0x0;var _0x31178b=_0x5636[_0x355926];return _0x31178b;};'use strict';var Sequelize=require(_0x6563('0x0'));module[_0x6563('0x1')]={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize['STRING']},'host':{'type':Sequelize['STRING']},'zone':{'type':Sequelize[_0x6563('0x2')]},'clientId':{'type':Sequelize[_0x6563('0x2')]},'clientSecret':{'type':Sequelize[_0x6563('0x2')]},'serverUrl':{'type':Sequelize['STRING'],'allowNull':![]},'code':{'type':Sequelize[_0x6563('0x2')]},'refreshToken':{'type':Sequelize[_0x6563('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfa8b=['rimraf','zip-dir','fast-json-patch','moment','bluebird','util','sox','to-csv','lodash','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/integrations/configuration','sendStatus','status','json','offset','limit','undefined','set','Content-Range','apply','reject','update','then','end','stack','name','send','map','ZohoAccount','rawAttributes','fieldName','type','key','model','query','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','count','includeAll','include','findAll','catch','show','keys','filters','create','body','find','params','destroy','getConfigurations','findOne','ZohoConfiguration','addConfiguration','getSubjects','Descriptions','channel','ZohoField','Subjects','https://accounts.zoho.com','https://accounts.zoho.eu','https://accounts.zoho.in','POST','refreshToken','clientId','clientSecret','refresh_token','access_token','Unable\x20to\x20retrieve\x20the\x20access\x20token','zone','serverUrl','code','host','com','slice','substring','Refresh\x20Token\x20not\x20available\x20for\x20the\x20account','GET','Zoho-oauthtoken\x20','error','response','message','Owner','Subject','Description','WhoId','Call_Duration','Call_Result','Call_Start_Time','Call_Type','remove','includes','api_name','system_mandatory','push','display_label','custom_field','picklist','pick_list_values','test','statusCode','getFields,\x20%s,\x20%s,\x20%s','getFields','stringify','Wrong\x20credentials'];(function(_0x1de43c,_0xaa29de){var _0x296d3e=function(_0x50b76f){while(--_0x50b76f){_0x1de43c['push'](_0x1de43c['shift']());}};_0x296d3e(++_0xaa29de);}(_0xfa8b,0x183));var _0xbfa8=function(_0x5d2f93,_0x2b3c81){_0x5d2f93=_0x5d2f93-0x0;var _0xa1c2f4=_0xfa8b[_0x5d2f93];return _0xa1c2f4;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xbfa8('0x0'));var zipdir=require(_0xbfa8('0x1'));var jsonpatch=require(_0xbfa8('0x2'));var rp=require('request-promise');var moment=require(_0xbfa8('0x3'));var BPromise=require(_0xbfa8('0x4'));var Mustache=require('mustache');var util=require(_0xbfa8('0x5'));var path=require('path');var sox=require(_0xbfa8('0x6'));var csv=require(_0xbfa8('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xbfa8('0x8'));var squel=require('squel');var crypto=require(_0xbfa8('0x9'));var jsforce=require(_0xbfa8('0xa'));var deskjs=require('desk.js');var toCsv=require(_0xbfa8('0x7'));var querystring=require(_0xbfa8('0xb'));var Papa=require(_0xbfa8('0xc'));var Redis=require(_0xbfa8('0xd'));var authService=require(_0xbfa8('0xe'));var qs=require(_0xbfa8('0xf'));var as=require(_0xbfa8('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xbfa8('0x11'));var utils=require(_0xbfa8('0x12'));var config=require(_0xbfa8('0x13'));var licenseUtil=require(_0xbfa8('0x14'));var db=require(_0xbfa8('0x15'))['db'];var integrations=require(_0xbfa8('0x16'));function respondWithStatusCode(_0x37a969,_0x397f97){_0x397f97=_0x397f97||0xcc;return function(_0xc16af4){if(_0xc16af4){return _0x37a969[_0xbfa8('0x17')](_0x397f97);}return _0x37a969[_0xbfa8('0x18')](_0x397f97)['end']();};}function respondWithResult(_0x8914a6,_0x1be63d){_0x1be63d=_0x1be63d||0xc8;return function(_0x476b42){if(_0x476b42){return _0x8914a6[_0xbfa8('0x18')](_0x1be63d)[_0xbfa8('0x19')](_0x476b42);}};}function respondWithFilteredResult(_0x1b2494,_0x2414f8){return function(_0x3b2edf){if(_0x3b2edf){var _0x1982c2=typeof _0x2414f8[_0xbfa8('0x1a')]==='undefined'&&typeof _0x2414f8[_0xbfa8('0x1b')]===_0xbfa8('0x1c');var _0x2d97a1=_0x3b2edf['count'];var _0x1db39e=_0x1982c2?0x0:_0x2414f8[_0xbfa8('0x1a')];var _0x5f078b=_0x1982c2?_0x3b2edf['count']:_0x2414f8[_0xbfa8('0x1a')]+_0x2414f8[_0xbfa8('0x1b')];var _0x23ae1e;if(_0x5f078b>=_0x2d97a1){_0x5f078b=_0x2d97a1;_0x23ae1e=0xc8;}else{_0x23ae1e=0xce;}_0x1b2494[_0xbfa8('0x18')](_0x23ae1e);return _0x1b2494[_0xbfa8('0x1d')](_0xbfa8('0x1e'),_0x1db39e+'-'+_0x5f078b+'/'+_0x2d97a1)[_0xbfa8('0x19')](_0x3b2edf);}return null;};}function patchUpdates(_0x14efa6){return function(_0x8f569b){try{jsonpatch[_0xbfa8('0x1f')](_0x8f569b,_0x14efa6,!![]);}catch(_0x25f906){return BPromise[_0xbfa8('0x20')](_0x25f906);}return _0x8f569b['save']();};}function saveUpdates(_0x37f505,_0x3f1863){return function(_0x387c51){if(_0x387c51){return _0x387c51[_0xbfa8('0x21')](_0x37f505)[_0xbfa8('0x22')](function(_0x5641b5){return _0x5641b5;});}return null;};}function removeEntity(_0x1aed2a,_0x3225ba){return function(_0x40599e){if(_0x40599e){return _0x40599e['destroy']()[_0xbfa8('0x22')](function(){_0x1aed2a['status'](0xcc)[_0xbfa8('0x23')]();});}};}function handleEntityNotFound(_0x2ab849,_0x50d6e7){return function(_0x49b830){if(!_0x49b830){_0x2ab849[_0xbfa8('0x17')](0x194);}return _0x49b830;};}function handleError(_0x55f7d8,_0x3121ea){_0x3121ea=_0x3121ea||0x1f4;return function(_0x1a677e){logger['error'](_0x1a677e[_0xbfa8('0x24')]);if(_0x1a677e[_0xbfa8('0x25')]){delete _0x1a677e['name'];}_0x55f7d8[_0xbfa8('0x18')](_0x3121ea)[_0xbfa8('0x26')](_0x1a677e);};}exports['index']=function(_0x73701a,_0x3e288a){var _0x33df20={},_0x399b91={},_0x104957={'count':0x0,'rows':[]};var _0x111286=_[_0xbfa8('0x27')](db[_0xbfa8('0x28')][_0xbfa8('0x29')],function(_0x5c4873){return{'name':_0x5c4873[_0xbfa8('0x2a')],'type':_0x5c4873[_0xbfa8('0x2b')][_0xbfa8('0x2c')]};});_0x399b91[_0xbfa8('0x2d')]=_[_0xbfa8('0x27')](_0x111286,_0xbfa8('0x25'));_0x399b91[_0xbfa8('0x2e')]=_['keys'](_0x73701a['query']);_0x399b91['filters']=_[_0xbfa8('0x2f')](_0x399b91[_0xbfa8('0x2d')],_0x399b91['query']);_0x33df20[_0xbfa8('0x30')]=_[_0xbfa8('0x2f')](_0x399b91['model'],qs[_0xbfa8('0x31')](_0x73701a[_0xbfa8('0x2e')][_0xbfa8('0x31')]));_0x33df20[_0xbfa8('0x30')]=_0x33df20[_0xbfa8('0x30')][_0xbfa8('0x32')]?_0x33df20[_0xbfa8('0x30')]:_0x399b91[_0xbfa8('0x2d')];if(!_0x73701a[_0xbfa8('0x2e')][_0xbfa8('0x33')](_0xbfa8('0x34'))){_0x33df20[_0xbfa8('0x1b')]=qs[_0xbfa8('0x1b')](_0x73701a[_0xbfa8('0x2e')][_0xbfa8('0x1b')]);_0x33df20['offset']=qs['offset'](_0x73701a[_0xbfa8('0x2e')][_0xbfa8('0x1a')]);}_0x33df20[_0xbfa8('0x35')]=qs['sort'](_0x73701a[_0xbfa8('0x2e')][_0xbfa8('0x36')]);_0x33df20[_0xbfa8('0x37')]=qs['filters'](_[_0xbfa8('0x38')](_0x73701a[_0xbfa8('0x2e')],_0x399b91['filters']),_0x111286);if(_0x73701a[_0xbfa8('0x2e')][_0xbfa8('0x39')]){_0x33df20[_0xbfa8('0x37')]=_[_0xbfa8('0x3a')](_0x33df20['where'],{'$or':_[_0xbfa8('0x27')](_0x111286,function(_0x244882){if(_0x244882[_0xbfa8('0x2b')]!==_0xbfa8('0x3b')){var _0x525495={};_0x525495[_0x244882[_0xbfa8('0x25')]]={'$like':'%'+_0x73701a[_0xbfa8('0x2e')]['filter']+'%'};return _0x525495;}})});}_0x33df20=_[_0xbfa8('0x3a')]({},_0x33df20,_0x73701a[_0xbfa8('0x3c')]);var _0x125609={'where':_0x33df20[_0xbfa8('0x37')]};return db[_0xbfa8('0x28')]['count'](_0x125609)[_0xbfa8('0x22')](function(_0xb14f38){_0x104957[_0xbfa8('0x3d')]=_0xb14f38;if(_0x73701a[_0xbfa8('0x2e')][_0xbfa8('0x3e')]){_0x33df20[_0xbfa8('0x3f')]=[{'all':!![]}];}return db[_0xbfa8('0x28')][_0xbfa8('0x40')](_0x33df20);})[_0xbfa8('0x22')](function(_0x11872c){_0x104957['rows']=_0x11872c;return _0x104957;})['then'](respondWithFilteredResult(_0x3e288a,_0x33df20))[_0xbfa8('0x41')](handleError(_0x3e288a,null));};exports[_0xbfa8('0x42')]=function(_0x3468cf,_0x617e22){var _0x491fe2={'raw':![],'where':{'id':_0x3468cf['params']['id']}},_0x4a5f07={};_0x4a5f07[_0xbfa8('0x2d')]=_[_0xbfa8('0x43')](db[_0xbfa8('0x28')][_0xbfa8('0x29')]);_0x4a5f07['query']=_[_0xbfa8('0x43')](_0x3468cf[_0xbfa8('0x2e')]);_0x4a5f07[_0xbfa8('0x44')]=_[_0xbfa8('0x2f')](_0x4a5f07['model'],_0x4a5f07[_0xbfa8('0x2e')]);_0x491fe2[_0xbfa8('0x30')]=_[_0xbfa8('0x2f')](_0x4a5f07[_0xbfa8('0x2d')],qs[_0xbfa8('0x31')](_0x3468cf['query']['fields']));_0x491fe2[_0xbfa8('0x30')]=_0x491fe2[_0xbfa8('0x30')][_0xbfa8('0x32')]?_0x491fe2[_0xbfa8('0x30')]:_0x4a5f07[_0xbfa8('0x2d')];if(_0x3468cf['query'][_0xbfa8('0x3e')]){_0x491fe2[_0xbfa8('0x3f')]=[{'all':!![]}];}_0x491fe2=_[_0xbfa8('0x3a')]({},_0x491fe2,_0x3468cf[_0xbfa8('0x3c')]);return db[_0xbfa8('0x28')]['find'](_0x491fe2)[_0xbfa8('0x22')](handleEntityNotFound(_0x617e22,null))['then'](respondWithResult(_0x617e22,null))[_0xbfa8('0x41')](handleError(_0x617e22,null));};exports[_0xbfa8('0x45')]=function(_0xfb0edf,_0x2c71e7){return db[_0xbfa8('0x28')][_0xbfa8('0x45')](_0xfb0edf[_0xbfa8('0x46')],{})[_0xbfa8('0x22')](respondWithResult(_0x2c71e7,0xc9))['catch'](handleError(_0x2c71e7,null));};exports[_0xbfa8('0x21')]=function(_0x330a6d,_0x3456cc){if(_0x330a6d[_0xbfa8('0x46')]['id']){delete _0x330a6d[_0xbfa8('0x46')]['id'];}return db[_0xbfa8('0x28')][_0xbfa8('0x47')]({'where':{'id':_0x330a6d[_0xbfa8('0x48')]['id']}})['then'](handleEntityNotFound(_0x3456cc,null))[_0xbfa8('0x22')](saveUpdates(_0x330a6d[_0xbfa8('0x46')],null))[_0xbfa8('0x22')](respondWithResult(_0x3456cc,null))[_0xbfa8('0x41')](handleError(_0x3456cc,null));};exports[_0xbfa8('0x49')]=function(_0xe22808,_0x4d09a1){return db['ZohoAccount'][_0xbfa8('0x47')]({'where':{'id':_0xe22808[_0xbfa8('0x48')]['id']}})[_0xbfa8('0x22')](handleEntityNotFound(_0x4d09a1,null))[_0xbfa8('0x22')](removeEntity(_0x4d09a1,null))[_0xbfa8('0x41')](handleError(_0x4d09a1,null));};exports[_0xbfa8('0x4a')]=function(_0x15757f,_0x42bc54,_0x32a9d2){var _0x6f336d={};var _0x58a997={};var _0x1b2f06;var _0x2aae63;return db[_0xbfa8('0x28')][_0xbfa8('0x4b')]({'where':{'id':_0x15757f[_0xbfa8('0x48')]['id']}})[_0xbfa8('0x22')](handleEntityNotFound(_0x42bc54,null))[_0xbfa8('0x22')](function(_0x199f4b){if(_0x199f4b){_0x1b2f06=_0x199f4b;_0x58a997[_0xbfa8('0x2d')]=_[_0xbfa8('0x43')](db[_0xbfa8('0x4c')][_0xbfa8('0x29')]);_0x58a997['query']=_[_0xbfa8('0x43')](_0x15757f['query']);_0x58a997[_0xbfa8('0x44')]=_[_0xbfa8('0x2f')](_0x58a997[_0xbfa8('0x2d')],_0x58a997[_0xbfa8('0x2e')]);_0x6f336d['attributes']=_[_0xbfa8('0x2f')](_0x58a997[_0xbfa8('0x2d')],qs[_0xbfa8('0x31')](_0x15757f[_0xbfa8('0x2e')]['fields']));_0x6f336d[_0xbfa8('0x30')]=_0x6f336d['attributes']['length']?_0x6f336d[_0xbfa8('0x30')]:_0x58a997[_0xbfa8('0x2d')];_0x6f336d[_0xbfa8('0x35')]=qs[_0xbfa8('0x36')](_0x15757f['query']['sort']);_0x6f336d[_0xbfa8('0x37')]=qs[_0xbfa8('0x44')](_[_0xbfa8('0x38')](_0x15757f['query'],_0x58a997[_0xbfa8('0x44')]));if(_0x15757f[_0xbfa8('0x2e')][_0xbfa8('0x39')]){_0x6f336d[_0xbfa8('0x37')]=_['merge'](_0x6f336d['where'],{'$or':_['map'](_0x6f336d['attributes'],function(_0x516484){var _0xc8a153={};_0xc8a153[_0x516484]={'$like':'%'+_0x15757f['query'][_0xbfa8('0x39')]+'%'};return _0xc8a153;})});}_0x6f336d=_[_0xbfa8('0x3a')]({},_0x6f336d,_0x15757f['options']);return _0x1b2f06[_0xbfa8('0x4a')](_0x6f336d);}})[_0xbfa8('0x22')](function(_0xbfe095){if(_0xbfe095){_0x2aae63=_0xbfe095[_0xbfa8('0x32')];if(!_0x15757f[_0xbfa8('0x2e')]['hasOwnProperty'](_0xbfa8('0x34'))){_0x6f336d[_0xbfa8('0x1b')]=qs[_0xbfa8('0x1b')](_0x15757f[_0xbfa8('0x2e')]['limit']);_0x6f336d[_0xbfa8('0x1a')]=qs[_0xbfa8('0x1a')](_0x15757f['query']['offset']);}return _0x1b2f06['getConfigurations'](_0x6f336d);}})['then'](function(_0x503598){if(_0x503598){return _0x503598?{'count':_0x2aae63,'rows':_0x503598}:null;}})[_0xbfa8('0x22')](respondWithResult(_0x42bc54,null))[_0xbfa8('0x41')](handleError(_0x42bc54,null));};exports[_0xbfa8('0x4d')]=function(_0x1d6c73,_0x419593,_0x4e99ea){if(_0x1d6c73[_0xbfa8('0x46')]['id']){delete _0x1d6c73[_0xbfa8('0x46')]['id'];}return db[_0xbfa8('0x28')]['findOne']({'where':{'id':_0x1d6c73[_0xbfa8('0x48')]['id']}})['then'](handleEntityNotFound(_0x419593,null))[_0xbfa8('0x22')](function(_0x4e1305){if(_0x4e1305){_0x1d6c73['body']['AccountId']=_0x4e1305['id'];_0x1d6c73[_0xbfa8('0x46')]['Subjects']=integrations[_0xbfa8('0x4e')](_0x1d6c73[_0xbfa8('0x46')]['channel'],_0x1d6c73[_0xbfa8('0x46')][_0xbfa8('0x2b')]);_0x1d6c73['body'][_0xbfa8('0x4f')]=integrations['getDescriptions'](_0x1d6c73[_0xbfa8('0x46')][_0xbfa8('0x50')],_0x1d6c73[_0xbfa8('0x46')][_0xbfa8('0x2b')]);return db[_0xbfa8('0x4c')][_0xbfa8('0x45')](_0x1d6c73[_0xbfa8('0x46')],{'include':[{'model':db[_0xbfa8('0x51')],'as':_0xbfa8('0x52')},{'model':db['ZohoField'],'as':_0xbfa8('0x4f')}]});}return null;})[_0xbfa8('0x22')](respondWithResult(_0x419593,null))[_0xbfa8('0x41')](handleError(_0x419593,null));};function getAccessToken(_0x65ab3d){return new Promise(function(_0x45ec59,_0x106d1f){var _0x5b0868;switch(_0x65ab3d['zone']){case'US':_0x5b0868=_0xbfa8('0x53');break;case'AU':_0x5b0868='https://accounts.zoho.com.au';break;case'EU':_0x5b0868=_0xbfa8('0x54');break;case'IN':_0x5b0868=_0xbfa8('0x55');break;case'CN':_0x5b0868='https://accounts.zoho.com.cn';break;default:_0x5b0868=_0xbfa8('0x54');break;}var _0x4f5df6={'method':_0xbfa8('0x56'),'uri':_0x5b0868+'/oauth/v2/token','qs':{'refresh_token':_0x65ab3d[_0xbfa8('0x57')],'client_id':_0x65ab3d[_0xbfa8('0x58')],'client_secret':_0x65ab3d[_0xbfa8('0x59')],'grant_type':_0xbfa8('0x5a')},'json':!![]};return rp(_0x4f5df6)[_0xbfa8('0x22')](function(_0x431a8e){if(_0x431a8e[_0xbfa8('0x5b')]){_0x45ec59(_0x431a8e['access_token']);}else{_0x106d1f(_0xbfa8('0x5c'));}})['catch'](function(_0x4a0997){_0x106d1f(_0x4a0997);});});}exports['getFields']=function(_0x289292,_0xa9db2,_0x91f62e){var _0x1f856d,_0x40001f,_0x41b149,_0x56253e,_0x261f8c;return db[_0xbfa8('0x28')][_0xbfa8('0x4b')]({'where':{'id':_0x289292[_0xbfa8('0x48')]['id']},'attributes':['id','host',_0xbfa8('0x5d'),_0xbfa8('0x58'),_0xbfa8('0x59'),_0xbfa8('0x5e'),_0xbfa8('0x5f'),_0xbfa8('0x57')]})[_0xbfa8('0x22')](handleEntityNotFound(_0xa9db2,null))[_0xbfa8('0x22')](function(_0x3c754f){_0x261f8c=_0x3c754f;_0x1f856d=_0x261f8c[_0xbfa8('0x60')];_0x40001f=_0x1f856d==='zoho.eu'?'eu':_0xbfa8('0x61');_0x41b149=_0x261f8c['serverUrl'];var _0x3cafd1=_0x41b149[_0xbfa8('0x62')](-0x1);if(_0x3cafd1==='/'||_0x3cafd1==='\x5c'||_0x3cafd1===':'){_0x41b149=_0x41b149[_0xbfa8('0x63')](0x0,_0x41b149['lastIndexOf'](_0x3cafd1));}if(!_0x261f8c[_0xbfa8('0x57')]){throw new Error(_0xbfa8('0x64'));}return getAccessToken(_0x261f8c);})['then'](function(_0x6b5e6d){if(_0x6b5e6d){return rp({'method':_0xbfa8('0x65'),'uri':util['format']('https://www.zohoapis.%s/crm/v2/settings/fields',_0x40001f),'qs':{'module':'Calls'},'headers':{'Authorization':_0xbfa8('0x66')+_0x6b5e6d},'json':!![]});}})[_0xbfa8('0x22')](function(_0x4ad8ab){if(_0x4ad8ab){if(_0x4ad8ab['response']&&_0x4ad8ab['response'][_0xbfa8('0x67')]){throw new Error(_0x4ad8ab[_0xbfa8('0x68')]['error'][_0xbfa8('0x69')]);}var _0x4e75a5=[];var _0x362e9a=[];var _0x133396=[_0xbfa8('0x6a'),_0xbfa8('0x6b'),_0xbfa8('0x6c'),_0xbfa8('0x6d'),_0xbfa8('0x6e'),_0xbfa8('0x6f'),_0xbfa8('0x70'),_0xbfa8('0x71')];_0x362e9a=_[_0xbfa8('0x72')](_0x4ad8ab[_0xbfa8('0x31')],function(_0x14b75e){return _0x133396[_0xbfa8('0x73')](_0x14b75e[_0xbfa8('0x74')]);});for(var _0x46addb=0x0;_0x46addb<_0x362e9a['length'];_0x46addb++){if(_0x362e9a[_0x46addb][_0xbfa8('0x75')]===![]){_0x4e75a5[_0xbfa8('0x76')]({'id':_0x362e9a[_0x46addb]['id'],'name':_0x362e9a[_0x46addb][_0xbfa8('0x77')],'custom':_0x362e9a[_0x46addb][_0xbfa8('0x78')],'options':_0x362e9a[_0x46addb]['data_type']===_0xbfa8('0x79')&&_0x362e9a[_0x46addb][_0xbfa8('0x7a')]['length']>-0x1?_['map'](_0x362e9a[_0x46addb][_0xbfa8('0x7a')],function(_0x582279){return{'name':_0x582279,'value':_0x582279};}):[]});}}return{'count':_0x4e75a5[_0xbfa8('0x32')],'rows':_0x4e75a5};}else{return{'count':0x0,'rows':[]};}})['then'](respondWithResult(_0xa9db2,null))[_0xbfa8('0x41')](function(_0x25bced){var _0x2ac83d=_0x289292[_0xbfa8('0x2e')][_0xbfa8('0x7b')]?0x1f4:_0x25bced[_0xbfa8('0x7c')]||0x1f4;logger[_0xbfa8('0x67')](_0xbfa8('0x7d'),_0xbfa8('0x7e'),_0x2ac83d,JSON[_0xbfa8('0x7f')](_0x25bced));delete _0x25bced[_0xbfa8('0x25')];if(_0x2ac83d===0x191){_0x2ac83d=0x190;}_0xa9db2[_0xbfa8('0x18')](_0x2ac83d)[_0xbfa8('0x26')](_0x289292[_0xbfa8('0x2e')][_0xbfa8('0x7b')]?{'message':_0xbfa8('0x80'),'statusCode':_0x25bced['statusCode']}:_0x25bced);});};
\ No newline at end of file
+var _0x31e1=['offset','undefined','limit','count','set','apply','save','update','destroy','then','name','send','map','ZohoAccount','fieldName','type','key','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filters','filter','merge','VIRTUAL','includeAll','include','findAll','rows','catch','show','params','rawAttributes','options','find','create','body','findOne','ZohoConfiguration','nolimit','addConfiguration','Subjects','getSubjects','channel','Descriptions','getDescriptions','ZohoField','zone','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.eu','https://accounts.zoho.in','https://accounts.zoho.com.cn','refreshToken','clientId','clientSecret','refresh_token','access_token','Unable\x20to\x20retrieve\x20the\x20access\x20token','getFields','serverUrl','code','zoho.eu','com','slice','substring','lastIndexOf','Refresh\x20Token\x20not\x20available\x20for\x20the\x20account','GET','https://www.zohoapis.%s/crm/v2/settings/fields','Zoho-oauthtoken\x20','response','error','Owner','Subject','Description','Call_Result','Call_Start_Time','remove','api_name','system_mandatory','display_label','custom_field','data_type','picklist','pick_list_values','test','getFields,\x20%s,\x20%s,\x20%s','stringify','statusCode','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','sox','ejs','fs-extra','lodash','squel','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','../../components/integrations/configuration','status','json'];(function(_0x59de2a,_0x264f62){var _0x1d18d2=function(_0x5c1a5a){while(--_0x5c1a5a){_0x59de2a['push'](_0x59de2a['shift']());}};_0x1d18d2(++_0x264f62);}(_0x31e1,0xde));var _0x131e=function(_0x26d49c,_0xc7b44b){_0x26d49c=_0x26d49c-0x0;var _0x47d51a=_0x31e1[_0x26d49c];return _0x47d51a;};'use strict';var emlformat=require(_0x131e('0x0'));var rimraf=require(_0x131e('0x1'));var zipdir=require(_0x131e('0x2'));var jsonpatch=require(_0x131e('0x3'));var rp=require('request-promise');var moment=require(_0x131e('0x4'));var BPromise=require(_0x131e('0x5'));var Mustache=require(_0x131e('0x6'));var util=require(_0x131e('0x7'));var path=require('path');var sox=require(_0x131e('0x8'));var csv=require('to-csv');var ejs=require(_0x131e('0x9'));var fs=require('fs');var fs_extra=require(_0x131e('0xa'));var _=require(_0x131e('0xb'));var squel=require(_0x131e('0xc'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x131e('0xd'));var toCsv=require(_0x131e('0xe'));var querystring=require(_0x131e('0xf'));var Papa=require(_0x131e('0x10'));var Redis=require(_0x131e('0x11'));var authService=require(_0x131e('0x12'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x131e('0x13'))('api');var utils=require(_0x131e('0x14'));var config=require(_0x131e('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x131e('0x16'))['db'];var integrations=require(_0x131e('0x17'));function respondWithStatusCode(_0x56990b,_0x3d55ef){_0x3d55ef=_0x3d55ef||0xcc;return function(_0x45f811){if(_0x45f811){return _0x56990b['sendStatus'](_0x3d55ef);}return _0x56990b[_0x131e('0x18')](_0x3d55ef)['end']();};}function respondWithResult(_0x415594,_0x3cb49e){_0x3cb49e=_0x3cb49e||0xc8;return function(_0x42293c){if(_0x42293c){return _0x415594[_0x131e('0x18')](_0x3cb49e)[_0x131e('0x19')](_0x42293c);}};}function respondWithFilteredResult(_0x353d01,_0x4929c2){return function(_0x112512){if(_0x112512){var _0x2dc656=typeof _0x4929c2[_0x131e('0x1a')]===_0x131e('0x1b')&&typeof _0x4929c2[_0x131e('0x1c')]==='undefined';var _0x25a06e=_0x112512['count'];var _0xe4e86e=_0x2dc656?0x0:_0x4929c2['offset'];var _0x1a3f18=_0x2dc656?_0x112512[_0x131e('0x1d')]:_0x4929c2[_0x131e('0x1a')]+_0x4929c2[_0x131e('0x1c')];var _0x3b1222;if(_0x1a3f18>=_0x25a06e){_0x1a3f18=_0x25a06e;_0x3b1222=0xc8;}else{_0x3b1222=0xce;}_0x353d01['status'](_0x3b1222);return _0x353d01[_0x131e('0x1e')]('Content-Range',_0xe4e86e+'-'+_0x1a3f18+'/'+_0x25a06e)[_0x131e('0x19')](_0x112512);}return null;};}function patchUpdates(_0x3398c2){return function(_0x4d51e8){try{jsonpatch[_0x131e('0x1f')](_0x4d51e8,_0x3398c2,!![]);}catch(_0x12b911){return BPromise['reject'](_0x12b911);}return _0x4d51e8[_0x131e('0x20')]();};}function saveUpdates(_0x3ae63c,_0x106e45){return function(_0x13bb2a){if(_0x13bb2a){return _0x13bb2a[_0x131e('0x21')](_0x3ae63c)['then'](function(_0x1b96da){return _0x1b96da;});}return null;};}function removeEntity(_0x4fe17d,_0x184007){return function(_0x10936a){if(_0x10936a){return _0x10936a[_0x131e('0x22')]()[_0x131e('0x23')](function(){_0x4fe17d[_0x131e('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0x51b911,_0xf47483){return function(_0x946b4b){if(!_0x946b4b){_0x51b911['sendStatus'](0x194);}return _0x946b4b;};}function handleError(_0x489e3d,_0x287d8c){_0x287d8c=_0x287d8c||0x1f4;return function(_0x557732){logger['error'](_0x557732['stack']);if(_0x557732['name']){delete _0x557732[_0x131e('0x24')];}_0x489e3d['status'](_0x287d8c)[_0x131e('0x25')](_0x557732);};}exports['index']=function(_0x23d510,_0x2b7350){var _0x1d7f37={},_0x420003={},_0xd79080={'count':0x0,'rows':[]};var _0x1786a5=_[_0x131e('0x26')](db[_0x131e('0x27')]['rawAttributes'],function(_0x1be817){return{'name':_0x1be817[_0x131e('0x28')],'type':_0x1be817[_0x131e('0x29')][_0x131e('0x2a')]};});_0x420003[_0x131e('0x2b')]=_[_0x131e('0x26')](_0x1786a5,_0x131e('0x24'));_0x420003[_0x131e('0x2c')]=_[_0x131e('0x2d')](_0x23d510['query']);_0x420003['filters']=_[_0x131e('0x2e')](_0x420003['model'],_0x420003[_0x131e('0x2c')]);_0x1d7f37[_0x131e('0x2f')]=_[_0x131e('0x2e')](_0x420003[_0x131e('0x2b')],qs[_0x131e('0x30')](_0x23d510['query'][_0x131e('0x30')]));_0x1d7f37[_0x131e('0x2f')]=_0x1d7f37['attributes'][_0x131e('0x31')]?_0x1d7f37[_0x131e('0x2f')]:_0x420003[_0x131e('0x2b')];if(!_0x23d510[_0x131e('0x2c')][_0x131e('0x32')]('nolimit')){_0x1d7f37[_0x131e('0x1c')]=qs[_0x131e('0x1c')](_0x23d510[_0x131e('0x2c')][_0x131e('0x1c')]);_0x1d7f37[_0x131e('0x1a')]=qs[_0x131e('0x1a')](_0x23d510['query'][_0x131e('0x1a')]);}_0x1d7f37[_0x131e('0x33')]=qs[_0x131e('0x34')](_0x23d510['query'][_0x131e('0x34')]);_0x1d7f37[_0x131e('0x35')]=qs['filters'](_[_0x131e('0x36')](_0x23d510[_0x131e('0x2c')],_0x420003[_0x131e('0x37')]),_0x1786a5);if(_0x23d510[_0x131e('0x2c')][_0x131e('0x38')]){_0x1d7f37[_0x131e('0x35')]=_[_0x131e('0x39')](_0x1d7f37[_0x131e('0x35')],{'$or':_[_0x131e('0x26')](_0x1786a5,function(_0x14f0a4){if(_0x14f0a4['type']!==_0x131e('0x3a')){var _0x2278c0={};_0x2278c0[_0x14f0a4['name']]={'$like':'%'+_0x23d510['query']['filter']+'%'};return _0x2278c0;}})});}_0x1d7f37=_[_0x131e('0x39')]({},_0x1d7f37,_0x23d510['options']);var _0xdfd498={'where':_0x1d7f37[_0x131e('0x35')]};return db[_0x131e('0x27')]['count'](_0xdfd498)['then'](function(_0x1968bb){_0xd79080[_0x131e('0x1d')]=_0x1968bb;if(_0x23d510[_0x131e('0x2c')][_0x131e('0x3b')]){_0x1d7f37[_0x131e('0x3c')]=[{'all':!![]}];}return db['ZohoAccount'][_0x131e('0x3d')](_0x1d7f37);})['then'](function(_0x279280){_0xd79080[_0x131e('0x3e')]=_0x279280;return _0xd79080;})[_0x131e('0x23')](respondWithFilteredResult(_0x2b7350,_0x1d7f37))[_0x131e('0x3f')](handleError(_0x2b7350,null));};exports[_0x131e('0x40')]=function(_0x5647d0,_0x883602){var _0x42a03e={'raw':![],'where':{'id':_0x5647d0[_0x131e('0x41')]['id']}},_0x4cf635={};_0x4cf635['model']=_[_0x131e('0x2d')](db['ZohoAccount'][_0x131e('0x42')]);_0x4cf635[_0x131e('0x2c')]=_[_0x131e('0x2d')](_0x5647d0['query']);_0x4cf635[_0x131e('0x37')]=_[_0x131e('0x2e')](_0x4cf635[_0x131e('0x2b')],_0x4cf635[_0x131e('0x2c')]);_0x42a03e['attributes']=_[_0x131e('0x2e')](_0x4cf635[_0x131e('0x2b')],qs[_0x131e('0x30')](_0x5647d0[_0x131e('0x2c')][_0x131e('0x30')]));_0x42a03e[_0x131e('0x2f')]=_0x42a03e[_0x131e('0x2f')]['length']?_0x42a03e[_0x131e('0x2f')]:_0x4cf635[_0x131e('0x2b')];if(_0x5647d0[_0x131e('0x2c')][_0x131e('0x3b')]){_0x42a03e[_0x131e('0x3c')]=[{'all':!![]}];}_0x42a03e=_['merge']({},_0x42a03e,_0x5647d0[_0x131e('0x43')]);return db['ZohoAccount'][_0x131e('0x44')](_0x42a03e)[_0x131e('0x23')](handleEntityNotFound(_0x883602,null))[_0x131e('0x23')](respondWithResult(_0x883602,null))['catch'](handleError(_0x883602,null));};exports['create']=function(_0x471c57,_0x36f248){return db[_0x131e('0x27')][_0x131e('0x45')](_0x471c57[_0x131e('0x46')],{})[_0x131e('0x23')](respondWithResult(_0x36f248,0xc9))['catch'](handleError(_0x36f248,null));};exports[_0x131e('0x21')]=function(_0x4a4815,_0x49179e){if(_0x4a4815[_0x131e('0x46')]['id']){delete _0x4a4815[_0x131e('0x46')]['id'];}return db[_0x131e('0x27')][_0x131e('0x44')]({'where':{'id':_0x4a4815[_0x131e('0x41')]['id']}})[_0x131e('0x23')](handleEntityNotFound(_0x49179e,null))[_0x131e('0x23')](saveUpdates(_0x4a4815[_0x131e('0x46')],null))[_0x131e('0x23')](respondWithResult(_0x49179e,null))[_0x131e('0x3f')](handleError(_0x49179e,null));};exports['destroy']=function(_0x48fe12,_0x1c7e00){return db[_0x131e('0x27')]['find']({'where':{'id':_0x48fe12['params']['id']}})[_0x131e('0x23')](handleEntityNotFound(_0x1c7e00,null))['then'](removeEntity(_0x1c7e00,null))[_0x131e('0x3f')](handleError(_0x1c7e00,null));};exports['getConfigurations']=function(_0x29fc4f,_0xd11761,_0x528a31){var _0x504103={};var _0x290f05={};var _0x259504;var _0x3c04ed;return db[_0x131e('0x27')][_0x131e('0x47')]({'where':{'id':_0x29fc4f[_0x131e('0x41')]['id']}})[_0x131e('0x23')](handleEntityNotFound(_0xd11761,null))[_0x131e('0x23')](function(_0x15f053){if(_0x15f053){_0x259504=_0x15f053;_0x290f05[_0x131e('0x2b')]=_['keys'](db[_0x131e('0x48')]['rawAttributes']);_0x290f05[_0x131e('0x2c')]=_[_0x131e('0x2d')](_0x29fc4f[_0x131e('0x2c')]);_0x290f05[_0x131e('0x37')]=_['intersection'](_0x290f05[_0x131e('0x2b')],_0x290f05[_0x131e('0x2c')]);_0x504103['attributes']=_[_0x131e('0x2e')](_0x290f05[_0x131e('0x2b')],qs[_0x131e('0x30')](_0x29fc4f[_0x131e('0x2c')][_0x131e('0x30')]));_0x504103[_0x131e('0x2f')]=_0x504103[_0x131e('0x2f')][_0x131e('0x31')]?_0x504103['attributes']:_0x290f05[_0x131e('0x2b')];_0x504103[_0x131e('0x33')]=qs[_0x131e('0x34')](_0x29fc4f[_0x131e('0x2c')]['sort']);_0x504103[_0x131e('0x35')]=qs[_0x131e('0x37')](_[_0x131e('0x36')](_0x29fc4f['query'],_0x290f05[_0x131e('0x37')]));if(_0x29fc4f[_0x131e('0x2c')]['filter']){_0x504103[_0x131e('0x35')]=_['merge'](_0x504103[_0x131e('0x35')],{'$or':_['map'](_0x504103['attributes'],function(_0x2c2ca4){var _0x255485={};_0x255485[_0x2c2ca4]={'$like':'%'+_0x29fc4f[_0x131e('0x2c')]['filter']+'%'};return _0x255485;})});}_0x504103=_[_0x131e('0x39')]({},_0x504103,_0x29fc4f[_0x131e('0x43')]);return _0x259504['getConfigurations'](_0x504103);}})[_0x131e('0x23')](function(_0x6a6d1b){if(_0x6a6d1b){_0x3c04ed=_0x6a6d1b['length'];if(!_0x29fc4f[_0x131e('0x2c')]['hasOwnProperty'](_0x131e('0x49'))){_0x504103['limit']=qs[_0x131e('0x1c')](_0x29fc4f[_0x131e('0x2c')]['limit']);_0x504103[_0x131e('0x1a')]=qs['offset'](_0x29fc4f['query'][_0x131e('0x1a')]);}return _0x259504['getConfigurations'](_0x504103);}})[_0x131e('0x23')](function(_0x332d40){if(_0x332d40){return _0x332d40?{'count':_0x3c04ed,'rows':_0x332d40}:null;}})[_0x131e('0x23')](respondWithResult(_0xd11761,null))[_0x131e('0x3f')](handleError(_0xd11761,null));};exports[_0x131e('0x4a')]=function(_0x33a5f8,_0x5ef37,_0x3da3eb){if(_0x33a5f8[_0x131e('0x46')]['id']){delete _0x33a5f8[_0x131e('0x46')]['id'];}return db[_0x131e('0x27')][_0x131e('0x47')]({'where':{'id':_0x33a5f8[_0x131e('0x41')]['id']}})[_0x131e('0x23')](handleEntityNotFound(_0x5ef37,null))['then'](function(_0x3010f3){if(_0x3010f3){_0x33a5f8['body']['AccountId']=_0x3010f3['id'];_0x33a5f8[_0x131e('0x46')][_0x131e('0x4b')]=integrations[_0x131e('0x4c')](_0x33a5f8[_0x131e('0x46')][_0x131e('0x4d')],_0x33a5f8[_0x131e('0x46')][_0x131e('0x29')]);_0x33a5f8['body'][_0x131e('0x4e')]=integrations[_0x131e('0x4f')](_0x33a5f8[_0x131e('0x46')][_0x131e('0x4d')],_0x33a5f8['body']['type']);return db[_0x131e('0x48')]['create'](_0x33a5f8[_0x131e('0x46')],{'include':[{'model':db[_0x131e('0x50')],'as':'Subjects'},{'model':db[_0x131e('0x50')],'as':'Descriptions'}]});}return null;})[_0x131e('0x23')](respondWithResult(_0x5ef37,null))[_0x131e('0x3f')](handleError(_0x5ef37,null));};function getAccessToken(_0x552f48){return new Promise(function(_0x4e2fc3,_0x29944e){var _0x3c0649;switch(_0x552f48[_0x131e('0x51')]){case'US':_0x3c0649=_0x131e('0x52');break;case'AU':_0x3c0649=_0x131e('0x53');break;case'EU':_0x3c0649=_0x131e('0x54');break;case'IN':_0x3c0649=_0x131e('0x55');break;case'CN':_0x3c0649=_0x131e('0x56');break;default:_0x3c0649=_0x131e('0x54');break;}var _0x45ab1c={'method':'POST','uri':_0x3c0649+'/oauth/v2/token','qs':{'refresh_token':_0x552f48[_0x131e('0x57')],'client_id':_0x552f48[_0x131e('0x58')],'client_secret':_0x552f48[_0x131e('0x59')],'grant_type':_0x131e('0x5a')},'json':!![]};return rp(_0x45ab1c)[_0x131e('0x23')](function(_0x370673){if(_0x370673[_0x131e('0x5b')]){_0x4e2fc3(_0x370673[_0x131e('0x5b')]);}else{_0x29944e(_0x131e('0x5c'));}})['catch'](function(_0x56cbc3){_0x29944e(_0x56cbc3);});});}exports[_0x131e('0x5d')]=function(_0x2c647a,_0x292143,_0x45876e){var _0x37b33a,_0x3533cb,_0x5d2200,_0x592725,_0xabb77d;return db[_0x131e('0x27')][_0x131e('0x47')]({'where':{'id':_0x2c647a[_0x131e('0x41')]['id']},'attributes':['id','host',_0x131e('0x51'),_0x131e('0x58'),_0x131e('0x59'),_0x131e('0x5e'),_0x131e('0x5f'),'refreshToken']})[_0x131e('0x23')](handleEntityNotFound(_0x292143,null))['then'](function(_0x1fe48f){_0xabb77d=_0x1fe48f;_0x37b33a=_0xabb77d['host'];_0x3533cb=_0x37b33a===_0x131e('0x60')?'eu':_0x131e('0x61');_0x5d2200=_0xabb77d[_0x131e('0x5e')];var _0x52f68b=_0x5d2200[_0x131e('0x62')](-0x1);if(_0x52f68b==='/'||_0x52f68b==='\x5c'||_0x52f68b===':'){_0x5d2200=_0x5d2200[_0x131e('0x63')](0x0,_0x5d2200[_0x131e('0x64')](_0x52f68b));}if(!_0xabb77d[_0x131e('0x57')]){throw new Error(_0x131e('0x65'));}return getAccessToken(_0xabb77d);})[_0x131e('0x23')](function(_0x53433f){if(_0x53433f){return rp({'method':_0x131e('0x66'),'uri':util['format'](_0x131e('0x67'),_0x3533cb),'qs':{'module':'Calls'},'headers':{'Authorization':_0x131e('0x68')+_0x53433f},'json':!![]});}})[_0x131e('0x23')](function(_0x443471){if(_0x443471){if(_0x443471[_0x131e('0x69')]&&_0x443471[_0x131e('0x69')]['error']){throw new Error(_0x443471['response'][_0x131e('0x6a')]['message']);}var _0x595dc2=[];var _0x3adbb9=[];var _0x39dfc8=[_0x131e('0x6b'),_0x131e('0x6c'),_0x131e('0x6d'),'WhoId','Call_Duration',_0x131e('0x6e'),_0x131e('0x6f'),'Call_Type'];_0x3adbb9=_[_0x131e('0x70')](_0x443471['fields'],function(_0x4a067c){return _0x39dfc8['includes'](_0x4a067c[_0x131e('0x71')]);});for(var _0x2dd862=0x0;_0x2dd862<_0x3adbb9[_0x131e('0x31')];_0x2dd862++){if(_0x3adbb9[_0x2dd862][_0x131e('0x72')]===![]){_0x595dc2['push']({'id':_0x3adbb9[_0x2dd862]['id'],'name':_0x3adbb9[_0x2dd862][_0x131e('0x73')],'custom':_0x3adbb9[_0x2dd862][_0x131e('0x74')],'options':_0x3adbb9[_0x2dd862][_0x131e('0x75')]===_0x131e('0x76')&&_0x3adbb9[_0x2dd862][_0x131e('0x77')][_0x131e('0x31')]>-0x1?_[_0x131e('0x26')](_0x3adbb9[_0x2dd862][_0x131e('0x77')],function(_0x59b1e8){return{'name':_0x59b1e8,'value':_0x59b1e8};}):[]});}}return{'count':_0x595dc2[_0x131e('0x31')],'rows':_0x595dc2};}else{return{'count':0x0,'rows':[]};}})['then'](respondWithResult(_0x292143,null))['catch'](function(_0x4f7c7c){var _0x117fee=_0x2c647a[_0x131e('0x2c')][_0x131e('0x78')]?0x1f4:_0x4f7c7c['statusCode']||0x1f4;logger[_0x131e('0x6a')](_0x131e('0x79'),_0x131e('0x5d'),_0x117fee,JSON[_0x131e('0x7a')](_0x4f7c7c));delete _0x4f7c7c[_0x131e('0x24')];if(_0x117fee===0x191){_0x117fee=0x190;}_0x292143[_0x131e('0x18')](_0x117fee)['send'](_0x2c647a[_0x131e('0x2c')]['test']?{'message':'Wrong\x20credentials','statusCode':_0x4f7c7c[_0x131e('0x7b')]}:_0x4f7c7c);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbb33=['substring','https://accounts.zoho.in','https://accounts.zoho.com.cn','ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d','lodash','util','api','bluebird','request-promise','path','rimraf','../../config/environment','./intZohoAccount.attributes','exports','ZohoAccount','changed','zone','serverUrl','clientId','clientSecret','code','host','slice','lastIndexOf','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.eu','POST','authorization_code','application/x-www-form-urlencoded','then','parse','refreshToken','refresh_token','info','format','error','ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d','name','inspect','catch'];(function(_0x3e89c0,_0x1b5b3a){var _0x4687e4=function(_0xe81b43){while(--_0xe81b43){_0x3e89c0['push'](_0x3e89c0['shift']());}};_0x4687e4(++_0x1b5b3a);}(_0xbb33,0xd1));var _0x3bb3=function(_0x70a4e2,_0x1b833a){_0x70a4e2=_0x70a4e2-0x0;var _0x4d1d1e=_0xbb33[_0x70a4e2];return _0x4d1d1e;};'use strict';var _=require(_0x3bb3('0x0'));var util=require(_0x3bb3('0x1'));var logger=require('../../config/logger')(_0x3bb3('0x2'));var moment=require('moment');var BPromise=require(_0x3bb3('0x3'));var rp=require(_0x3bb3('0x4'));var fs=require('fs');var path=require(_0x3bb3('0x5'));var rimraf=require(_0x3bb3('0x6'));var config=require(_0x3bb3('0x7'));var attributes=require(_0x3bb3('0x8'));var integrations=require('../../components/integrations/configuration');module[_0x3bb3('0x9')]=function(_0x506ab9,_0x4a2fb2){return _0x506ab9['define'](_0x3bb3('0xa'),attributes,{'tableName':'int_zoho_accounts','paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0x3d38c1,_0x372a77,_0x585ffc){if(_0x3d38c1[_0x3bb3('0xb')](_0x3bb3('0xc'))||_0x3d38c1[_0x3bb3('0xb')](_0x3bb3('0xd'))||_0x3d38c1[_0x3bb3('0xb')](_0x3bb3('0xe'))||_0x3d38c1['changed'](_0x3bb3('0xf'))||_0x3d38c1[_0x3bb3('0xb')](_0x3bb3('0x10'))||_0x3d38c1['changed'](_0x3bb3('0x11'))){var _0x4a5320,_0x2f2a4a;_0x4a5320=_0x3d38c1[_0x3bb3('0xd')];var _0x4dcda6=_0x4a5320[_0x3bb3('0x12')](-0x1);if(_0x4dcda6==='/'||_0x4dcda6==='\x5c'||_0x4dcda6===':'){_0x4a5320=_0x4a5320['substring'](0x0,_0x4a5320[_0x3bb3('0x13')](_0x4dcda6));}switch(_0x3d38c1['zone']){case'US':_0x2f2a4a=_0x3bb3('0x14');break;case'AU':_0x2f2a4a=_0x3bb3('0x15');break;case'IN':_0x2f2a4a='https://accounts.zoho.in';break;case'CN':_0x2f2a4a='https://accounts.zoho.com.cn';break;default:_0x2f2a4a=_0x3bb3('0x16');break;}var _0x5058c5={'method':_0x3bb3('0x17'),'uri':_0x2f2a4a+'/oauth/v2/token','form':{'grant_type':_0x3bb3('0x18'),'client_id':_0x3d38c1['clientId'],'client_secret':_0x3d38c1[_0x3bb3('0xf')],'redirect_uri':_0x3d38c1['serverUrl'],'code':_0x3d38c1[_0x3bb3('0x10')]},'headers':{'Content-Type':_0x3bb3('0x19')}};return rp(_0x5058c5)[_0x3bb3('0x1a')](function(_0x55a4e9){var _0x8e4092=JSON[_0x3bb3('0x1b')](_0x55a4e9);if(_0x8e4092['refresh_token']){_0x3d38c1[_0x3bb3('0x1c')]=_0x8e4092[_0x3bb3('0x1d')];logger[_0x3bb3('0x1e')](util[_0x3bb3('0x1f')]('ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d',_0x3d38c1['name'],_0x3d38c1['id']));}else{logger[_0x3bb3('0x20')](util['format'](_0x3bb3('0x21'),_0x3d38c1[_0x3bb3('0x22')],_0x3d38c1['id']),util[_0x3bb3('0x23')](_0x8e4092,{'showHidden':![],'depth':null}));}return _0x585ffc(null,_0x372a77);})[_0x3bb3('0x24')](function(_0x13ce97){logger[_0x3bb3('0x20')](util[_0x3bb3('0x1f')](_0x3bb3('0x21'),_0x3d38c1[_0x3bb3('0x22')],_0x3d38c1['id']),util['inspect'](parsedResult,{'showHidden':![],'depth':null}));return _0x585ffc(_0x13ce97);});}else{return _0x585ffc(null,_0x372a77);}},'beforeUpdate':function(_0x279930,_0x5d4d9e,_0x1cf6d5){if(_0x279930[_0x3bb3('0xb')](_0x3bb3('0xc'))||_0x279930[_0x3bb3('0xb')](_0x3bb3('0xd'))||_0x279930[_0x3bb3('0xb')](_0x3bb3('0xe'))||_0x279930['changed'](_0x3bb3('0xf'))||_0x279930['changed'](_0x3bb3('0x10'))||_0x279930['changed'](_0x3bb3('0x11'))){var _0x28bc25,_0x5688c7;_0x28bc25=_0x279930[_0x3bb3('0xd')];var _0x250d5c=_0x28bc25['slice'](-0x1);if(_0x250d5c==='/'||_0x250d5c==='\x5c'||_0x250d5c===':'){_0x28bc25=_0x28bc25[_0x3bb3('0x25')](0x0,_0x28bc25['lastIndexOf'](_0x250d5c));}switch(_0x279930[_0x3bb3('0xc')]){case'US':_0x5688c7=_0x3bb3('0x14');break;case'AU':_0x5688c7=_0x3bb3('0x15');break;case'IN':_0x5688c7=_0x3bb3('0x26');break;case'CN':_0x5688c7=_0x3bb3('0x27');break;default:_0x5688c7=_0x3bb3('0x16');break;}var _0x528ce0={'method':_0x3bb3('0x17'),'uri':_0x5688c7+'/oauth/v2/token','form':{'grant_type':_0x3bb3('0x18'),'client_id':_0x279930[_0x3bb3('0xe')],'client_secret':_0x279930['clientSecret'],'redirect_uri':_0x279930[_0x3bb3('0xd')],'code':_0x279930[_0x3bb3('0x10')]},'headers':{'Content-Type':_0x3bb3('0x19')}};return rp(_0x528ce0)[_0x3bb3('0x1a')](function(_0x3f14a0){var _0x2c2585=JSON[_0x3bb3('0x1b')](_0x3f14a0);if(_0x2c2585['refresh_token']){_0x279930[_0x3bb3('0x1c')]=_0x2c2585['refresh_token'];logger['info'](util['format'](_0x3bb3('0x28'),_0x279930[_0x3bb3('0x22')],_0x279930['id']));}else{logger[_0x3bb3('0x20')](util[_0x3bb3('0x1f')]('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0x279930[_0x3bb3('0x22')],_0x279930['id']),util['inspect'](_0x2c2585,{'showHidden':![],'depth':null}));}return _0x1cf6d5(null,_0x5d4d9e);})['catch'](function(_0xd30ab0){logger[_0x3bb3('0x20')](util[_0x3bb3('0x1f')](_0x3bb3('0x21'),_0x279930[_0x3bb3('0x22')],_0x279930['id']),util[_0x3bb3('0x23')](parsedResult,{'showHidden':![],'depth':null}));return _0x1cf6d5(_0xd30ab0);});}else{return _0x1cf6d5(null,_0x5d4d9e);}}}});};
\ No newline at end of file
+var _0x080f=['path','./intZohoAccount.attributes','../../components/integrations/configuration','exports','define','int_zoho_accounts','changed','clientId','clientSecret','host','serverUrl','slice','substring','zone','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.in','https://accounts.zoho.com.cn','https://accounts.zoho.eu','POST','authorization_code','application/x-www-form-urlencoded','parse','refresh_token','info','ZohoAccount,\x20Refresh\x20token\x20successfully\x20generated\x20for\x20account\x20\x22%s\x22\x20#%d','name','ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d','catch','format','inspect','code','lastIndexOf','/oauth/v2/token','then','refreshToken','error','lodash','util','../../config/logger','moment','bluebird','request-promise'];(function(_0x48f0a9,_0x1c3269){var _0x2af0e8=function(_0x6d9c9d){while(--_0x6d9c9d){_0x48f0a9['push'](_0x48f0a9['shift']());}};_0x2af0e8(++_0x1c3269);}(_0x080f,0x127));var _0xf080=function(_0x3e5041,_0x32abe8){_0x3e5041=_0x3e5041-0x0;var _0x2a2320=_0x080f[_0x3e5041];return _0x2a2320;};'use strict';var _=require(_0xf080('0x0'));var util=require(_0xf080('0x1'));var logger=require(_0xf080('0x2'))('api');var moment=require(_0xf080('0x3'));var BPromise=require(_0xf080('0x4'));var rp=require(_0xf080('0x5'));var fs=require('fs');var path=require(_0xf080('0x6'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0xf080('0x7'));var integrations=require(_0xf080('0x8'));module[_0xf080('0x9')]=function(_0x3e9ee9,_0x1b0232){return _0x3e9ee9[_0xf080('0xa')]('ZohoAccount',attributes,{'tableName':_0xf080('0xb'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeCreate':function(_0x55d000,_0x1ac453,_0x2c8af8){if(_0x55d000[_0xf080('0xc')]('zone')||_0x55d000[_0xf080('0xc')]('serverUrl')||_0x55d000[_0xf080('0xc')](_0xf080('0xd'))||_0x55d000[_0xf080('0xc')](_0xf080('0xe'))||_0x55d000[_0xf080('0xc')]('code')||_0x55d000[_0xf080('0xc')](_0xf080('0xf'))){var _0x4da856,_0x391fd4;_0x4da856=_0x55d000[_0xf080('0x10')];var _0x23cc42=_0x4da856[_0xf080('0x11')](-0x1);if(_0x23cc42==='/'||_0x23cc42==='\x5c'||_0x23cc42===':'){_0x4da856=_0x4da856[_0xf080('0x12')](0x0,_0x4da856['lastIndexOf'](_0x23cc42));}switch(_0x55d000[_0xf080('0x13')]){case'US':_0x391fd4=_0xf080('0x14');break;case'AU':_0x391fd4=_0xf080('0x15');break;case'IN':_0x391fd4=_0xf080('0x16');break;case'CN':_0x391fd4=_0xf080('0x17');break;default:_0x391fd4=_0xf080('0x18');break;}var _0x191a10={'method':_0xf080('0x19'),'uri':_0x391fd4+'/oauth/v2/token','form':{'grant_type':_0xf080('0x1a'),'client_id':_0x55d000[_0xf080('0xd')],'client_secret':_0x55d000['clientSecret'],'redirect_uri':_0x55d000[_0xf080('0x10')],'code':_0x55d000['code']},'headers':{'Content-Type':_0xf080('0x1b')}};return rp(_0x191a10)['then'](function(_0x29f9c8){var _0x4e5829=JSON[_0xf080('0x1c')](_0x29f9c8);if(_0x4e5829[_0xf080('0x1d')]){_0x55d000['refreshToken']=_0x4e5829[_0xf080('0x1d')];logger[_0xf080('0x1e')](util['format'](_0xf080('0x1f'),_0x55d000[_0xf080('0x20')],_0x55d000['id']));}else{logger['error'](util['format'](_0xf080('0x21'),_0x55d000[_0xf080('0x20')],_0x55d000['id']),util['inspect'](_0x4e5829,{'showHidden':![],'depth':null}));}return _0x2c8af8(null,_0x1ac453);})[_0xf080('0x22')](function(_0x5501ac){logger['error'](util[_0xf080('0x23')](_0xf080('0x21'),_0x55d000[_0xf080('0x20')],_0x55d000['id']),util[_0xf080('0x24')](parsedResult,{'showHidden':![],'depth':null}));return _0x2c8af8(_0x5501ac);});}else{return _0x2c8af8(null,_0x1ac453);}},'beforeUpdate':function(_0xdf9c5e,_0x2f4bc8,_0x2ac4e4){if(_0xdf9c5e[_0xf080('0xc')](_0xf080('0x13'))||_0xdf9c5e[_0xf080('0xc')](_0xf080('0x10'))||_0xdf9c5e[_0xf080('0xc')]('clientId')||_0xdf9c5e[_0xf080('0xc')](_0xf080('0xe'))||_0xdf9c5e[_0xf080('0xc')](_0xf080('0x25'))||_0xdf9c5e['changed'](_0xf080('0xf'))){var _0x2f5ed5,_0x2f2816;_0x2f5ed5=_0xdf9c5e[_0xf080('0x10')];var _0x5e2d97=_0x2f5ed5['slice'](-0x1);if(_0x5e2d97==='/'||_0x5e2d97==='\x5c'||_0x5e2d97===':'){_0x2f5ed5=_0x2f5ed5[_0xf080('0x12')](0x0,_0x2f5ed5[_0xf080('0x26')](_0x5e2d97));}switch(_0xdf9c5e[_0xf080('0x13')]){case'US':_0x2f2816=_0xf080('0x14');break;case'AU':_0x2f2816=_0xf080('0x15');break;case'IN':_0x2f2816=_0xf080('0x16');break;case'CN':_0x2f2816=_0xf080('0x17');break;default:_0x2f2816=_0xf080('0x18');break;}var _0x4c9a2d={'method':_0xf080('0x19'),'uri':_0x2f2816+_0xf080('0x27'),'form':{'grant_type':'authorization_code','client_id':_0xdf9c5e[_0xf080('0xd')],'client_secret':_0xdf9c5e[_0xf080('0xe')],'redirect_uri':_0xdf9c5e[_0xf080('0x10')],'code':_0xdf9c5e[_0xf080('0x25')]},'headers':{'Content-Type':_0xf080('0x1b')}};return rp(_0x4c9a2d)[_0xf080('0x28')](function(_0x15a9df){var _0xa4bf3d=JSON[_0xf080('0x1c')](_0x15a9df);if(_0xa4bf3d['refresh_token']){_0xdf9c5e[_0xf080('0x29')]=_0xa4bf3d[_0xf080('0x1d')];logger[_0xf080('0x1e')](util[_0xf080('0x23')](_0xf080('0x1f'),_0xdf9c5e[_0xf080('0x20')],_0xdf9c5e['id']));}else{logger['error'](util[_0xf080('0x23')]('ZohoAccount,\x20Unable\x20to\x20generate\x20the\x20refresh\x20token\x20for\x20account\x20\x22%s\x22\x20#%d',_0xdf9c5e[_0xf080('0x20')],_0xdf9c5e['id']),util[_0xf080('0x24')](_0xa4bf3d,{'showHidden':![],'depth':null}));}return _0x2ac4e4(null,_0x2f4bc8);})[_0xf080('0x22')](function(_0x18ea11){logger[_0xf080('0x2a')](util[_0xf080('0x23')](_0xf080('0x21'),_0xdf9c5e[_0xf080('0x20')],_0xdf9c5e['id']),util[_0xf080('0x24')](parsedResult,{'showHidden':![],'depth':null}));return _0x2ac4e4(_0x18ea11);});}else{return _0x2ac4e4(null,_0x2f4bc8);}}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb03e=['raw','where','attributes','limit','include','map','model','then','ShowZohoAccount','find','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','info','ZohoAccount,\x20%s,\x20%s','debug','request\x20sent','stringify','error','code','message','result','catch','GetZohoAccount','ZohoAccount','findAll','options'];(function(_0x313dc6,_0x4fa281){var _0x3efa82=function(_0x1902e5){while(--_0x1902e5){_0x313dc6['push'](_0x313dc6['shift']());}};_0x3efa82(++_0x4fa281);}(_0xb03e,0x1eb));var _0xeb03=function(_0x18cf8b,_0xd3b417){_0x18cf8b=_0x18cf8b-0x0;var _0x3d9b31=_0xb03e[_0x18cf8b];return _0x3d9b31;};'use strict';var _=require('lodash');var util=require(_0xeb03('0x0'));var moment=require(_0xeb03('0x1'));var BPromise=require(_0xeb03('0x2'));var rs=require(_0xeb03('0x3'));var fs=require('fs');var Redis=require(_0xeb03('0x4'));var db=require(_0xeb03('0x5'))['db'];var utils=require(_0xeb03('0x6'));var logger=require(_0xeb03('0x7'))(_0xeb03('0x8'));var config=require(_0xeb03('0x9'));var jayson=require(_0xeb03('0xa'));var client=jayson[_0xeb03('0xb')]['http']({'port':0x232a});function respondWithRpcPromise(_0x3b58a2,_0x3d3322,_0x3a6e31){return new BPromise(function(_0x246c6e,_0x3f2c74){return client[_0xeb03('0xc')](_0x3b58a2,_0x3a6e31)['then'](function(_0x403b77){logger[_0xeb03('0xd')](_0xeb03('0xe'),_0x3d3322,'request\x20sent');logger[_0xeb03('0xf')]('ZohoAccount,\x20%s,\x20%s,\x20%s',_0x3d3322,_0xeb03('0x10'),JSON[_0xeb03('0x11')](_0x403b77));if(_0x403b77[_0xeb03('0x12')]){if(_0x403b77[_0xeb03('0x12')][_0xeb03('0x13')]===0x1f4){logger[_0xeb03('0x12')](_0xeb03('0xe'),_0x3d3322,_0x403b77[_0xeb03('0x12')][_0xeb03('0x14')]);return _0x3f2c74(_0x403b77[_0xeb03('0x12')][_0xeb03('0x14')]);}logger[_0xeb03('0x12')]('ZohoAccount,\x20%s,\x20%s',_0x3d3322,_0x403b77[_0xeb03('0x12')][_0xeb03('0x14')]);return _0x246c6e(_0x403b77[_0xeb03('0x12')][_0xeb03('0x14')]);}else{logger['info'](_0xeb03('0xe'),_0x3d3322,_0xeb03('0x10'));_0x246c6e(_0x403b77[_0xeb03('0x15')]['message']);}})[_0xeb03('0x16')](function(_0x46dd1b){logger[_0xeb03('0x12')](_0xeb03('0xe'),_0x3d3322,_0x46dd1b);_0x3f2c74(_0x46dd1b);});});}exports[_0xeb03('0x17')]=function(_0x1b4cbd){var _0x167a33=this;return new Promise(function(_0x8d6725,_0x177f9c){return db[_0xeb03('0x18')][_0xeb03('0x19')]({'raw':_0x1b4cbd[_0xeb03('0x1a')]?_0x1b4cbd[_0xeb03('0x1a')][_0xeb03('0x1b')]===undefined?!![]:![]:!![],'where':_0x1b4cbd['options']?_0x1b4cbd[_0xeb03('0x1a')][_0xeb03('0x1c')]||null:null,'attributes':_0x1b4cbd[_0xeb03('0x1a')]?_0x1b4cbd[_0xeb03('0x1a')][_0xeb03('0x1d')]||null:null,'limit':_0x1b4cbd[_0xeb03('0x1a')]?_0x1b4cbd[_0xeb03('0x1a')][_0xeb03('0x1e')]||null:null,'include':_0x1b4cbd[_0xeb03('0x1a')]?_0x1b4cbd['options'][_0xeb03('0x1f')]?_[_0xeb03('0x20')](_0x1b4cbd[_0xeb03('0x1a')][_0xeb03('0x1f')],function(_0x2f99e6){return{'model':db[_0x2f99e6['model']],'as':_0x2f99e6['as'],'attributes':_0x2f99e6[_0xeb03('0x1d')],'include':_0x2f99e6[_0xeb03('0x1f')]?_[_0xeb03('0x20')](_0x2f99e6[_0xeb03('0x1f')],function(_0x3f276a){return{'model':db[_0x3f276a[_0xeb03('0x21')]],'as':_0x3f276a['as'],'attributes':_0x3f276a[_0xeb03('0x1d')],'include':_0x3f276a[_0xeb03('0x1f')]?_[_0xeb03('0x20')](_0x3f276a['include'],function(_0x832372){return{'model':db[_0x832372[_0xeb03('0x21')]],'as':_0x832372['as'],'attributes':_0x832372[_0xeb03('0x1d')]};}):[]};}):[]};}):[]:[]})[_0xeb03('0x22')](function(_0x4cdea6){logger['info'](_0xeb03('0x17'),_0x1b4cbd);logger['debug'](_0xeb03('0x17'),_0x1b4cbd,JSON[_0xeb03('0x11')](_0x4cdea6));_0x8d6725(_0x4cdea6);})[_0xeb03('0x16')](function(_0x5db8bb){logger[_0xeb03('0x12')]('GetZohoAccount',_0x5db8bb['message'],_0x1b4cbd);_0x177f9c(_0x167a33['error'](0x1f4,_0x5db8bb['message']));});});};exports[_0xeb03('0x23')]=function(_0x433ce8){var _0x5d0cc1=this;return new Promise(function(_0x528479,_0x4d830a){return db['ZohoAccount'][_0xeb03('0x24')]({'raw':_0x433ce8[_0xeb03('0x1a')]?_0x433ce8[_0xeb03('0x1a')][_0xeb03('0x1b')]===undefined?!![]:![]:!![],'where':_0x433ce8[_0xeb03('0x1a')]?_0x433ce8['options'][_0xeb03('0x1c')]||null:null,'attributes':_0x433ce8['options']?_0x433ce8[_0xeb03('0x1a')][_0xeb03('0x1d')]||null:null,'include':_0x433ce8[_0xeb03('0x1a')]?_0x433ce8[_0xeb03('0x1a')][_0xeb03('0x1f')]?_[_0xeb03('0x20')](_0x433ce8[_0xeb03('0x1a')][_0xeb03('0x1f')],function(_0x552c86){return{'model':db[_0x552c86[_0xeb03('0x21')]],'as':_0x552c86['as'],'attributes':_0x552c86['attributes'],'include':_0x552c86[_0xeb03('0x1f')]?_[_0xeb03('0x20')](_0x552c86[_0xeb03('0x1f')],function(_0x2bf8be){return{'model':db[_0x2bf8be[_0xeb03('0x21')]],'as':_0x2bf8be['as'],'attributes':_0x2bf8be[_0xeb03('0x1d')],'include':_0x2bf8be['include']?_[_0xeb03('0x20')](_0x2bf8be['include'],function(_0x585cb5){return{'model':db[_0x585cb5['model']],'as':_0x585cb5['as'],'attributes':_0x585cb5[_0xeb03('0x1d')]};}):[]};}):[]};}):[]:[]})[_0xeb03('0x22')](function(_0x1bb6bb){logger[_0xeb03('0xd')](_0xeb03('0x23'),_0x433ce8);logger['debug'](_0xeb03('0x23'),_0x433ce8,JSON[_0xeb03('0x11')](_0x1bb6bb));_0x528479(_0x1bb6bb);})[_0xeb03('0x16')](function(_0x51a4ba){logger['error'](_0xeb03('0x23'),_0x51a4ba[_0xeb03('0x14')],_0x433ce8);_0x4d830a(_0x5d0cc1[_0xeb03('0x12')](0x1f4,_0x51a4ba['message']));});});};
\ No newline at end of file
+var _0x8d62=['ZohoAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','ZohoAccount','findAll','options','raw','where','attributes','limit','map','include','model','GetZohoAccount','ShowZohoAccount','find','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','then','info','ZohoAccount,\x20%s,\x20%s','request\x20sent','debug'];(function(_0x5391af,_0x3f1f3d){var _0xda66b0=function(_0x32be99){while(--_0x32be99){_0x5391af['push'](_0x5391af['shift']());}};_0xda66b0(++_0x3f1f3d);}(_0x8d62,0xf8));var _0x28d6=function(_0x132ee4,_0x4b9bb2){_0x132ee4=_0x132ee4-0x0;var _0x4fedf4=_0x8d62[_0x132ee4];return _0x4fedf4;};'use strict';var _=require('lodash');var util=require(_0x28d6('0x0'));var moment=require(_0x28d6('0x1'));var BPromise=require(_0x28d6('0x2'));var rs=require(_0x28d6('0x3'));var fs=require('fs');var Redis=require(_0x28d6('0x4'));var db=require(_0x28d6('0x5'))['db'];var utils=require(_0x28d6('0x6'));var logger=require(_0x28d6('0x7'))(_0x28d6('0x8'));var config=require(_0x28d6('0x9'));var jayson=require(_0x28d6('0xa'));var client=jayson[_0x28d6('0xb')][_0x28d6('0xc')]({'port':0x232a});function respondWithRpcPromise(_0xe8aa7b,_0x5c8a27,_0x1d5399){return new BPromise(function(_0xb9dccb,_0x3f3235){return client['request'](_0xe8aa7b,_0x1d5399)[_0x28d6('0xd')](function(_0x4b564f){logger[_0x28d6('0xe')](_0x28d6('0xf'),_0x5c8a27,_0x28d6('0x10'));logger[_0x28d6('0x11')](_0x28d6('0x12'),_0x5c8a27,'request\x20sent',JSON[_0x28d6('0x13')](_0x4b564f));if(_0x4b564f[_0x28d6('0x14')]){if(_0x4b564f[_0x28d6('0x14')][_0x28d6('0x15')]===0x1f4){logger[_0x28d6('0x14')](_0x28d6('0xf'),_0x5c8a27,_0x4b564f[_0x28d6('0x14')][_0x28d6('0x16')]);return _0x3f3235(_0x4b564f['error'][_0x28d6('0x16')]);}logger[_0x28d6('0x14')](_0x28d6('0xf'),_0x5c8a27,_0x4b564f['error'][_0x28d6('0x16')]);return _0xb9dccb(_0x4b564f['error'][_0x28d6('0x16')]);}else{logger[_0x28d6('0xe')]('ZohoAccount,\x20%s,\x20%s',_0x5c8a27,_0x28d6('0x10'));_0xb9dccb(_0x4b564f[_0x28d6('0x17')][_0x28d6('0x16')]);}})[_0x28d6('0x18')](function(_0x154c4d){logger['error'](_0x28d6('0xf'),_0x5c8a27,_0x154c4d);_0x3f3235(_0x154c4d);});});}exports['GetZohoAccount']=function(_0x44db1a){var _0x155151=this;return new Promise(function(_0x2824bd,_0x2f28b1){return db[_0x28d6('0x19')][_0x28d6('0x1a')]({'raw':_0x44db1a[_0x28d6('0x1b')]?_0x44db1a['options'][_0x28d6('0x1c')]===undefined?!![]:![]:!![],'where':_0x44db1a[_0x28d6('0x1b')]?_0x44db1a['options'][_0x28d6('0x1d')]||null:null,'attributes':_0x44db1a[_0x28d6('0x1b')]?_0x44db1a[_0x28d6('0x1b')][_0x28d6('0x1e')]||null:null,'limit':_0x44db1a[_0x28d6('0x1b')]?_0x44db1a[_0x28d6('0x1b')][_0x28d6('0x1f')]||null:null,'include':_0x44db1a['options']?_0x44db1a[_0x28d6('0x1b')]['include']?_[_0x28d6('0x20')](_0x44db1a[_0x28d6('0x1b')][_0x28d6('0x21')],function(_0x3d128b){return{'model':db[_0x3d128b[_0x28d6('0x22')]],'as':_0x3d128b['as'],'attributes':_0x3d128b[_0x28d6('0x1e')],'include':_0x3d128b['include']?_['map'](_0x3d128b[_0x28d6('0x21')],function(_0x2fb6f7){return{'model':db[_0x2fb6f7[_0x28d6('0x22')]],'as':_0x2fb6f7['as'],'attributes':_0x2fb6f7[_0x28d6('0x1e')],'include':_0x2fb6f7['include']?_[_0x28d6('0x20')](_0x2fb6f7[_0x28d6('0x21')],function(_0x2b9862){return{'model':db[_0x2b9862[_0x28d6('0x22')]],'as':_0x2b9862['as'],'attributes':_0x2b9862[_0x28d6('0x1e')]};}):[]};}):[]};}):[]:[]})[_0x28d6('0xd')](function(_0x60ded0){logger[_0x28d6('0xe')](_0x28d6('0x23'),_0x44db1a);logger[_0x28d6('0x11')](_0x28d6('0x23'),_0x44db1a,JSON[_0x28d6('0x13')](_0x60ded0));_0x2824bd(_0x60ded0);})[_0x28d6('0x18')](function(_0x3ba89f){logger['error']('GetZohoAccount',_0x3ba89f[_0x28d6('0x16')],_0x44db1a);_0x2f28b1(_0x155151[_0x28d6('0x14')](0x1f4,_0x3ba89f[_0x28d6('0x16')]));});});};exports[_0x28d6('0x24')]=function(_0x324cff){var _0x6b156e=this;return new Promise(function(_0x5dfaaf,_0x146a62){return db['ZohoAccount'][_0x28d6('0x25')]({'raw':_0x324cff['options']?_0x324cff[_0x28d6('0x1b')][_0x28d6('0x1c')]===undefined?!![]:![]:!![],'where':_0x324cff[_0x28d6('0x1b')]?_0x324cff[_0x28d6('0x1b')][_0x28d6('0x1d')]||null:null,'attributes':_0x324cff['options']?_0x324cff['options'][_0x28d6('0x1e')]||null:null,'include':_0x324cff[_0x28d6('0x1b')]?_0x324cff['options'][_0x28d6('0x21')]?_['map'](_0x324cff[_0x28d6('0x1b')]['include'],function(_0x3ffd45){return{'model':db[_0x3ffd45['model']],'as':_0x3ffd45['as'],'attributes':_0x3ffd45[_0x28d6('0x1e')],'include':_0x3ffd45[_0x28d6('0x21')]?_[_0x28d6('0x20')](_0x3ffd45[_0x28d6('0x21')],function(_0x283cd6){return{'model':db[_0x283cd6[_0x28d6('0x22')]],'as':_0x283cd6['as'],'attributes':_0x283cd6[_0x28d6('0x1e')],'include':_0x283cd6['include']?_[_0x28d6('0x20')](_0x283cd6[_0x28d6('0x21')],function(_0x2197a9){return{'model':db[_0x2197a9[_0x28d6('0x22')]],'as':_0x2197a9['as'],'attributes':_0x2197a9['attributes']};}):[]};}):[]};}):[]:[]})[_0x28d6('0xd')](function(_0x385b87){logger[_0x28d6('0xe')](_0x28d6('0x24'),_0x324cff);logger['debug'](_0x28d6('0x24'),_0x324cff,JSON[_0x28d6('0x13')](_0x385b87));_0x5dfaaf(_0x385b87);})[_0x28d6('0x18')](function(_0x1120c9){logger[_0x28d6('0x14')](_0x28d6('0x24'),_0x1120c9[_0x28d6('0x16')],_0x324cff);_0x146a62(_0x6b156e[_0x28d6('0x14')](0x1f4,_0x1120c9[_0x28d6('0x16')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x91dd=['show','/:id/fields','isAuthenticated','getFields','getSubjects','/:id/descriptions','getDescriptions','create','put','update','delete','multer','util','connect-timeout','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./intZohoConfiguration.controller','get','/:id'];(function(_0x404109,_0x3e2fd9){var _0x43ff35=function(_0x5186af){while(--_0x5186af){_0x404109['push'](_0x404109['shift']());}};_0x43ff35(++_0x3e2fd9);}(_0x91dd,0x89));var _0xd91d=function(_0x1a3b93,_0x36c64d){_0x1a3b93=_0x1a3b93-0x0;var _0x67f46e=_0x91dd[_0x1a3b93];return _0x67f46e;};'use strict';var multer=require(_0xd91d('0x0'));var util=require(_0xd91d('0x1'));var path=require('path');var timeout=require(_0xd91d('0x2'));var express=require('express');var router=express['Router']();var fs_extra=require(_0xd91d('0x3'));var auth=require(_0xd91d('0x4'));var interaction=require(_0xd91d('0x5'));var config=require(_0xd91d('0x6'));var controller=require(_0xd91d('0x7'));router[_0xd91d('0x8')]('/',auth['isAuthenticated'](),controller['index']);router['get'](_0xd91d('0x9'),auth['isAuthenticated'](),controller[_0xd91d('0xa')]);router[_0xd91d('0x8')](_0xd91d('0xb'),auth[_0xd91d('0xc')](),controller[_0xd91d('0xd')]);router[_0xd91d('0x8')]('/:id/subjects',auth[_0xd91d('0xc')](),controller[_0xd91d('0xe')]);router['get'](_0xd91d('0xf'),auth['isAuthenticated'](),controller[_0xd91d('0x10')]);router['post']('/',auth[_0xd91d('0xc')](),controller[_0xd91d('0x11')]);router[_0xd91d('0x12')]('/:id',auth[_0xd91d('0xc')](),controller[_0xd91d('0x13')]);router[_0xd91d('0x14')]('/:id',auth['isAuthenticated'](),controller['destroy']);module['exports']=router;
\ No newline at end of file
+var _0xec26=['show','/:id/fields','getFields','/:id/subjects','getSubjects','post','create','put','update','delete','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/:id'];(function(_0x584b3e,_0x401737){var _0x5ac470=function(_0x4e4dea){while(--_0x4e4dea){_0x584b3e['push'](_0x584b3e['shift']());}};_0x5ac470(++_0x401737);}(_0xec26,0x1d3));var _0x6ec2=function(_0x13ed8c,_0x54970d){_0x13ed8c=_0x13ed8c-0x0;var _0x2c78c1=_0xec26[_0x13ed8c];return _0x2c78c1;};'use strict';var multer=require(_0x6ec2('0x0'));var util=require(_0x6ec2('0x1'));var path=require(_0x6ec2('0x2'));var timeout=require(_0x6ec2('0x3'));var express=require(_0x6ec2('0x4'));var router=express[_0x6ec2('0x5')]();var fs_extra=require(_0x6ec2('0x6'));var auth=require('../../components/auth/service');var interaction=require(_0x6ec2('0x7'));var config=require(_0x6ec2('0x8'));var controller=require('./intZohoConfiguration.controller');router[_0x6ec2('0x9')]('/',auth[_0x6ec2('0xa')](),controller[_0x6ec2('0xb')]);router[_0x6ec2('0x9')](_0x6ec2('0xc'),auth[_0x6ec2('0xa')](),controller[_0x6ec2('0xd')]);router[_0x6ec2('0x9')](_0x6ec2('0xe'),auth[_0x6ec2('0xa')](),controller[_0x6ec2('0xf')]);router['get'](_0x6ec2('0x10'),auth[_0x6ec2('0xa')](),controller[_0x6ec2('0x11')]);router[_0x6ec2('0x9')]('/:id/descriptions',auth[_0x6ec2('0xa')](),controller['getDescriptions']);router[_0x6ec2('0x12')]('/',auth[_0x6ec2('0xa')](),controller[_0x6ec2('0x13')]);router[_0x6ec2('0x14')](_0x6ec2('0xc'),auth[_0x6ec2('0xa')](),controller[_0x6ec2('0x15')]);router[_0x6ec2('0x16')](_0x6ec2('0xc'),auth[_0x6ec2('0xa')](),controller['destroy']);module[_0x6ec2('0x17')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3ffb=['exports','STRING','ENUM','lead','nothing','contact_lead','contact','sequelize'];(function(_0x37a2a6,_0x560179){var _0x14cd9e=function(_0x391659){while(--_0x391659){_0x37a2a6['push'](_0x37a2a6['shift']());}};_0x14cd9e(++_0x560179);}(_0x3ffb,0x13f));var _0xb3ff=function(_0x1b511a,_0x6ebbe0){_0x1b511a=_0x1b511a-0x0;var _0x1ee6f4=_0x3ffb[_0x1b511a];return _0x1ee6f4;};'use strict';var Sequelize=require(_0xb3ff('0x0'));module[_0xb3ff('0x1')]={'name':{'type':Sequelize[_0xb3ff('0x2')]},'moduleCreate':{'type':Sequelize[_0xb3ff('0x3')](_0xb3ff('0x4'),'contact',_0xb3ff('0x5')),'defaultValue':_0xb3ff('0x4')},'moduleSearch':{'type':Sequelize[_0xb3ff('0x3')](_0xb3ff('0x6'),_0xb3ff('0x7'),_0xb3ff('0x4')),'defaultValue':_0xb3ff('0x6')},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x6cd1=['contact','ENUM','contact_lead','lead','sequelize','exports','STRING'];(function(_0x384751,_0x2ae1f7){var _0x4d0b4d=function(_0x413dbe){while(--_0x413dbe){_0x384751['push'](_0x384751['shift']());}};_0x4d0b4d(++_0x2ae1f7);}(_0x6cd1,0x1c4));var _0x16cd=function(_0x50f392,_0x1d8441){_0x50f392=_0x50f392-0x0;var _0x5926f2=_0x6cd1[_0x50f392];return _0x5926f2;};'use strict';var Sequelize=require(_0x16cd('0x0'));module[_0x16cd('0x1')]={'name':{'type':Sequelize[_0x16cd('0x2')]},'moduleCreate':{'type':Sequelize['ENUM']('lead',_0x16cd('0x3'),'nothing'),'defaultValue':'lead'},'moduleSearch':{'type':Sequelize[_0x16cd('0x4')](_0x16cd('0x5'),_0x16cd('0x3'),_0x16cd('0x6')),'defaultValue':'contact_lead'},'description':{'type':Sequelize[_0x16cd('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2a0c=['count','set','apply','reject','save','update','destroy','then','error','name','index','map','ZohoConfiguration','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','attributes','length','hasOwnProperty','order','where','pick','filter','merge','includeAll','findAll','rows','show','fields','include','options','find','catch','create','body','params','getFields','findOne','nolimit','getSubjects','ZohoField','sort','getDescriptions','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','sendStatus','status','end','json','offset','undefined','limit'];(function(_0x5af6da,_0xc73d64){var _0x5b68d5=function(_0x5369d6){while(--_0x5369d6){_0x5af6da['push'](_0x5af6da['shift']());}};_0x5b68d5(++_0xc73d64);}(_0x2a0c,0x81));var _0xc2a0=function(_0x415ae6,_0x4ebd9d){_0x415ae6=_0x415ae6-0x0;var _0x5bf3ea=_0x2a0c[_0x415ae6];return _0x5bf3ea;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xc2a0('0x0'));var zipdir=require(_0xc2a0('0x1'));var jsonpatch=require(_0xc2a0('0x2'));var rp=require(_0xc2a0('0x3'));var moment=require(_0xc2a0('0x4'));var BPromise=require(_0xc2a0('0x5'));var Mustache=require('mustache');var util=require(_0xc2a0('0x6'));var path=require(_0xc2a0('0x7'));var sox=require(_0xc2a0('0x8'));var csv=require(_0xc2a0('0x9'));var ejs=require(_0xc2a0('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0xc2a0('0xb'));var crypto=require(_0xc2a0('0xc'));var jsforce=require('jsforce');var deskjs=require(_0xc2a0('0xd'));var toCsv=require(_0xc2a0('0x9'));var querystring=require(_0xc2a0('0xe'));var Papa=require(_0xc2a0('0xf'));var Redis=require(_0xc2a0('0x10'));var authService=require(_0xc2a0('0x11'));var qs=require(_0xc2a0('0x12'));var as=require(_0xc2a0('0x13'));var hardwareService=require(_0xc2a0('0x14'));var logger=require(_0xc2a0('0x15'))(_0xc2a0('0x16'));var utils=require('../../config/utils');var config=require(_0xc2a0('0x17'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x3f2251,_0x4ecf8d){_0x4ecf8d=_0x4ecf8d||0xcc;return function(_0x4243fc){if(_0x4243fc){return _0x3f2251[_0xc2a0('0x18')](_0x4ecf8d);}return _0x3f2251[_0xc2a0('0x19')](_0x4ecf8d)[_0xc2a0('0x1a')]();};}function respondWithResult(_0x202f92,_0x4d9336){_0x4d9336=_0x4d9336||0xc8;return function(_0x3b9199){if(_0x3b9199){return _0x202f92[_0xc2a0('0x19')](_0x4d9336)[_0xc2a0('0x1b')](_0x3b9199);}};}function respondWithFilteredResult(_0x367a49,_0x4cf3c2){return function(_0x324257){if(_0x324257){var _0x67035f=typeof _0x4cf3c2[_0xc2a0('0x1c')]===_0xc2a0('0x1d')&&typeof _0x4cf3c2[_0xc2a0('0x1e')]===_0xc2a0('0x1d');var _0x319aaa=_0x324257[_0xc2a0('0x1f')];var _0x4819e4=_0x67035f?0x0:_0x4cf3c2[_0xc2a0('0x1c')];var _0x1d4935=_0x67035f?_0x324257[_0xc2a0('0x1f')]:_0x4cf3c2[_0xc2a0('0x1c')]+_0x4cf3c2[_0xc2a0('0x1e')];var _0x8a47c2;if(_0x1d4935>=_0x319aaa){_0x1d4935=_0x319aaa;_0x8a47c2=0xc8;}else{_0x8a47c2=0xce;}_0x367a49[_0xc2a0('0x19')](_0x8a47c2);return _0x367a49[_0xc2a0('0x20')]('Content-Range',_0x4819e4+'-'+_0x1d4935+'/'+_0x319aaa)['json'](_0x324257);}return null;};}function patchUpdates(_0x26cec3){return function(_0x4273fa){try{jsonpatch[_0xc2a0('0x21')](_0x4273fa,_0x26cec3,!![]);}catch(_0x3c1575){return BPromise[_0xc2a0('0x22')](_0x3c1575);}return _0x4273fa[_0xc2a0('0x23')]();};}function saveUpdates(_0x2bc8fc,_0x18557e){return function(_0x2db2e8){if(_0x2db2e8){return _0x2db2e8[_0xc2a0('0x24')](_0x2bc8fc)['then'](function(_0xc917c2){return _0xc917c2;});}return null;};}function removeEntity(_0x466573,_0x541aaf){return function(_0x194e10){if(_0x194e10){return _0x194e10[_0xc2a0('0x25')]()[_0xc2a0('0x26')](function(){_0x466573[_0xc2a0('0x19')](0xcc)[_0xc2a0('0x1a')]();});}};}function handleEntityNotFound(_0x17efb7,_0x2581e9){return function(_0x58053a){if(!_0x58053a){_0x17efb7[_0xc2a0('0x18')](0x194);}return _0x58053a;};}function handleError(_0x406084,_0x1ce7b6){_0x1ce7b6=_0x1ce7b6||0x1f4;return function(_0x3a8059){logger[_0xc2a0('0x27')](_0x3a8059['stack']);if(_0x3a8059[_0xc2a0('0x28')]){delete _0x3a8059[_0xc2a0('0x28')];}_0x406084[_0xc2a0('0x19')](_0x1ce7b6)['send'](_0x3a8059);};}exports[_0xc2a0('0x29')]=function(_0x17a6ec,_0x5f29d3){var _0x20ce36={},_0x4ad336={},_0x25b3fe={'count':0x0,'rows':[]};var _0x145573=_[_0xc2a0('0x2a')](db[_0xc2a0('0x2b')][_0xc2a0('0x2c')],function(_0x43cf27){return{'name':_0x43cf27[_0xc2a0('0x2d')],'type':_0x43cf27[_0xc2a0('0x2e')][_0xc2a0('0x2f')]};});_0x4ad336[_0xc2a0('0x30')]=_['map'](_0x145573,_0xc2a0('0x28'));_0x4ad336['query']=_[_0xc2a0('0x31')](_0x17a6ec[_0xc2a0('0x32')]);_0x4ad336[_0xc2a0('0x33')]=_[_0xc2a0('0x34')](_0x4ad336[_0xc2a0('0x30')],_0x4ad336[_0xc2a0('0x32')]);_0x20ce36[_0xc2a0('0x35')]=_['intersection'](_0x4ad336[_0xc2a0('0x30')],qs['fields'](_0x17a6ec['query']['fields']));_0x20ce36['attributes']=_0x20ce36[_0xc2a0('0x35')][_0xc2a0('0x36')]?_0x20ce36[_0xc2a0('0x35')]:_0x4ad336[_0xc2a0('0x30')];if(!_0x17a6ec['query'][_0xc2a0('0x37')]('nolimit')){_0x20ce36[_0xc2a0('0x1e')]=qs[_0xc2a0('0x1e')](_0x17a6ec['query'][_0xc2a0('0x1e')]);_0x20ce36[_0xc2a0('0x1c')]=qs[_0xc2a0('0x1c')](_0x17a6ec['query'][_0xc2a0('0x1c')]);}_0x20ce36[_0xc2a0('0x38')]=qs['sort'](_0x17a6ec['query']['sort']);_0x20ce36[_0xc2a0('0x39')]=qs['filters'](_[_0xc2a0('0x3a')](_0x17a6ec[_0xc2a0('0x32')],_0x4ad336[_0xc2a0('0x33')]),_0x145573);if(_0x17a6ec['query'][_0xc2a0('0x3b')]){_0x20ce36[_0xc2a0('0x39')]=_[_0xc2a0('0x3c')](_0x20ce36[_0xc2a0('0x39')],{'$or':_['map'](_0x145573,function(_0x3d06fa){if(_0x3d06fa[_0xc2a0('0x2e')]!=='VIRTUAL'){var _0x1d2234={};_0x1d2234[_0x3d06fa[_0xc2a0('0x28')]]={'$like':'%'+_0x17a6ec[_0xc2a0('0x32')][_0xc2a0('0x3b')]+'%'};return _0x1d2234;}})});}_0x20ce36=_['merge']({},_0x20ce36,_0x17a6ec['options']);var _0x2c0726={'where':_0x20ce36[_0xc2a0('0x39')]};return db[_0xc2a0('0x2b')][_0xc2a0('0x1f')](_0x2c0726)[_0xc2a0('0x26')](function(_0x29c551){_0x25b3fe[_0xc2a0('0x1f')]=_0x29c551;if(_0x17a6ec['query'][_0xc2a0('0x3d')]){_0x20ce36['include']=[{'all':!![]}];}return db[_0xc2a0('0x2b')][_0xc2a0('0x3e')](_0x20ce36);})[_0xc2a0('0x26')](function(_0x1ba6d6){_0x25b3fe[_0xc2a0('0x3f')]=_0x1ba6d6;return _0x25b3fe;})[_0xc2a0('0x26')](respondWithFilteredResult(_0x5f29d3,_0x20ce36))['catch'](handleError(_0x5f29d3,null));};exports[_0xc2a0('0x40')]=function(_0x4d1305,_0x557555){var _0x4789d8={'raw':![],'where':{'id':_0x4d1305['params']['id']}},_0x24ffe9={};_0x24ffe9[_0xc2a0('0x30')]=_[_0xc2a0('0x31')](db[_0xc2a0('0x2b')][_0xc2a0('0x2c')]);_0x24ffe9['query']=_['keys'](_0x4d1305[_0xc2a0('0x32')]);_0x24ffe9[_0xc2a0('0x33')]=_[_0xc2a0('0x34')](_0x24ffe9[_0xc2a0('0x30')],_0x24ffe9['query']);_0x4789d8[_0xc2a0('0x35')]=_[_0xc2a0('0x34')](_0x24ffe9['model'],qs[_0xc2a0('0x41')](_0x4d1305[_0xc2a0('0x32')]['fields']));_0x4789d8[_0xc2a0('0x35')]=_0x4789d8[_0xc2a0('0x35')][_0xc2a0('0x36')]?_0x4789d8[_0xc2a0('0x35')]:_0x24ffe9[_0xc2a0('0x30')];if(_0x4d1305[_0xc2a0('0x32')]['includeAll']){_0x4789d8[_0xc2a0('0x42')]=[{'all':!![]}];}_0x4789d8=_['merge']({},_0x4789d8,_0x4d1305[_0xc2a0('0x43')]);return db['ZohoConfiguration'][_0xc2a0('0x44')](_0x4789d8)[_0xc2a0('0x26')](handleEntityNotFound(_0x557555,null))['then'](respondWithResult(_0x557555,null))[_0xc2a0('0x45')](handleError(_0x557555,null));};exports[_0xc2a0('0x46')]=function(_0x170a5a,_0x3ceeb1){return db[_0xc2a0('0x2b')]['create'](_0x170a5a[_0xc2a0('0x47')],{})[_0xc2a0('0x26')](respondWithResult(_0x3ceeb1,0xc9))[_0xc2a0('0x45')](handleError(_0x3ceeb1,null));};exports['update']=function(_0x59bd5c,_0x18d865){if(_0x59bd5c[_0xc2a0('0x47')]['id']){delete _0x59bd5c[_0xc2a0('0x47')]['id'];}return db[_0xc2a0('0x2b')]['find']({'where':{'id':_0x59bd5c[_0xc2a0('0x48')]['id']}})['then'](handleEntityNotFound(_0x18d865,null))[_0xc2a0('0x26')](saveUpdates(_0x59bd5c['body'],null))[_0xc2a0('0x26')](respondWithResult(_0x18d865,null))[_0xc2a0('0x45')](handleError(_0x18d865,null));};exports['destroy']=function(_0x1a9c93,_0x250247){return db[_0xc2a0('0x2b')][_0xc2a0('0x44')]({'where':{'id':_0x1a9c93[_0xc2a0('0x48')]['id']}})[_0xc2a0('0x26')](handleEntityNotFound(_0x250247,null))[_0xc2a0('0x26')](removeEntity(_0x250247,null))[_0xc2a0('0x45')](handleError(_0x250247,null));};exports[_0xc2a0('0x49')]=function(_0xd16310,_0x1e69ec,_0xecc810){var _0x327f82={};var _0x4c3edf={};var _0x363a1a;var _0x114870;return db['ZohoConfiguration'][_0xc2a0('0x4a')]({'where':{'id':_0xd16310['params']['id']}})[_0xc2a0('0x26')](handleEntityNotFound(_0x1e69ec,null))[_0xc2a0('0x26')](function(_0x206c96){if(_0x206c96){_0x363a1a=_0x206c96;_0x4c3edf[_0xc2a0('0x30')]=_['keys'](db['ZohoField'][_0xc2a0('0x2c')]);_0x4c3edf[_0xc2a0('0x32')]=_['keys'](_0xd16310['query']);_0x4c3edf[_0xc2a0('0x33')]=_[_0xc2a0('0x34')](_0x4c3edf[_0xc2a0('0x30')],_0x4c3edf[_0xc2a0('0x32')]);_0x327f82[_0xc2a0('0x35')]=_[_0xc2a0('0x34')](_0x4c3edf[_0xc2a0('0x30')],qs[_0xc2a0('0x41')](_0xd16310['query']['fields']));_0x327f82[_0xc2a0('0x35')]=_0x327f82[_0xc2a0('0x35')][_0xc2a0('0x36')]?_0x327f82['attributes']:_0x4c3edf[_0xc2a0('0x30')];_0x327f82[_0xc2a0('0x38')]=qs['sort'](_0xd16310[_0xc2a0('0x32')]['sort']);_0x327f82[_0xc2a0('0x39')]=qs[_0xc2a0('0x33')](_[_0xc2a0('0x3a')](_0xd16310[_0xc2a0('0x32')],_0x4c3edf[_0xc2a0('0x33')]));if(_0xd16310[_0xc2a0('0x32')][_0xc2a0('0x3b')]){_0x327f82[_0xc2a0('0x39')]=_[_0xc2a0('0x3c')](_0x327f82[_0xc2a0('0x39')],{'$or':_['map'](_0x327f82[_0xc2a0('0x35')],function(_0x37511c){var _0x282802={};_0x282802[_0x37511c]={'$like':'%'+_0xd16310[_0xc2a0('0x32')][_0xc2a0('0x3b')]+'%'};return _0x282802;})});}_0x327f82=_[_0xc2a0('0x3c')]({},_0x327f82,_0xd16310['options']);return _0x363a1a[_0xc2a0('0x49')](_0x327f82);}})['then'](function(_0x3eee10){if(_0x3eee10){_0x114870=_0x3eee10['length'];if(!_0xd16310[_0xc2a0('0x32')][_0xc2a0('0x37')](_0xc2a0('0x4b'))){_0x327f82['limit']=qs[_0xc2a0('0x1e')](_0xd16310[_0xc2a0('0x32')][_0xc2a0('0x1e')]);_0x327f82[_0xc2a0('0x1c')]=qs[_0xc2a0('0x1c')](_0xd16310[_0xc2a0('0x32')][_0xc2a0('0x1c')]);}return _0x363a1a[_0xc2a0('0x49')](_0x327f82);}})[_0xc2a0('0x26')](function(_0x367afe){if(_0x367afe){return _0x367afe?{'count':_0x114870,'rows':_0x367afe}:null;}})[_0xc2a0('0x26')](respondWithResult(_0x1e69ec,null))['catch'](handleError(_0x1e69ec,null));};exports[_0xc2a0('0x4c')]=function(_0x5841b3,_0x11d320,_0x1fc054){var _0x337bf2={};var _0x508ab5={};var _0xb590;var _0xf82113;return db[_0xc2a0('0x2b')][_0xc2a0('0x4a')]({'where':{'id':_0x5841b3['params']['id']}})['then'](handleEntityNotFound(_0x11d320,null))[_0xc2a0('0x26')](function(_0x11010d){if(_0x11010d){_0xb590=_0x11010d;_0x508ab5['model']=_[_0xc2a0('0x31')](db[_0xc2a0('0x4d')]['rawAttributes']);_0x508ab5[_0xc2a0('0x32')]=_[_0xc2a0('0x31')](_0x5841b3[_0xc2a0('0x32')]);_0x508ab5['filters']=_[_0xc2a0('0x34')](_0x508ab5[_0xc2a0('0x30')],_0x508ab5[_0xc2a0('0x32')]);_0x337bf2[_0xc2a0('0x35')]=_[_0xc2a0('0x34')](_0x508ab5['model'],qs[_0xc2a0('0x41')](_0x5841b3['query'][_0xc2a0('0x41')]));_0x337bf2[_0xc2a0('0x35')]=_0x337bf2[_0xc2a0('0x35')][_0xc2a0('0x36')]?_0x337bf2[_0xc2a0('0x35')]:_0x508ab5[_0xc2a0('0x30')];_0x337bf2[_0xc2a0('0x38')]=qs[_0xc2a0('0x4e')](_0x5841b3[_0xc2a0('0x32')][_0xc2a0('0x4e')]);_0x337bf2[_0xc2a0('0x39')]=qs[_0xc2a0('0x33')](_['pick'](_0x5841b3[_0xc2a0('0x32')],_0x508ab5[_0xc2a0('0x33')]));if(_0x5841b3[_0xc2a0('0x32')][_0xc2a0('0x3b')]){_0x337bf2[_0xc2a0('0x39')]=_[_0xc2a0('0x3c')](_0x337bf2['where'],{'$or':_['map'](_0x337bf2[_0xc2a0('0x35')],function(_0x247329){var _0x10a792={};_0x10a792[_0x247329]={'$like':'%'+_0x5841b3['query'][_0xc2a0('0x3b')]+'%'};return _0x10a792;})});}_0x337bf2=_[_0xc2a0('0x3c')]({},_0x337bf2,_0x5841b3[_0xc2a0('0x43')]);return _0xb590[_0xc2a0('0x4c')](_0x337bf2);}})[_0xc2a0('0x26')](function(_0x23fad1){if(_0x23fad1){_0xf82113=_0x23fad1['length'];if(!_0x5841b3[_0xc2a0('0x32')][_0xc2a0('0x37')](_0xc2a0('0x4b'))){_0x337bf2[_0xc2a0('0x1e')]=qs['limit'](_0x5841b3['query']['limit']);_0x337bf2[_0xc2a0('0x1c')]=qs[_0xc2a0('0x1c')](_0x5841b3['query'][_0xc2a0('0x1c')]);}return _0xb590['getSubjects'](_0x337bf2);}})[_0xc2a0('0x26')](function(_0x4e5ab0){if(_0x4e5ab0){return _0x4e5ab0?{'count':_0xf82113,'rows':_0x4e5ab0}:null;}})[_0xc2a0('0x26')](respondWithResult(_0x11d320,null))[_0xc2a0('0x45')](handleError(_0x11d320,null));};exports[_0xc2a0('0x4f')]=function(_0x5940bb,_0x15214d,_0x3e0851){var _0x363aef={};var _0x5f488d={};var _0x5898e5;var _0x33979a;return db[_0xc2a0('0x2b')][_0xc2a0('0x4a')]({'where':{'id':_0x5940bb['params']['id']}})[_0xc2a0('0x26')](handleEntityNotFound(_0x15214d,null))['then'](function(_0x145c74){if(_0x145c74){_0x5898e5=_0x145c74;_0x5f488d[_0xc2a0('0x30')]=_[_0xc2a0('0x31')](db['ZohoField']['rawAttributes']);_0x5f488d[_0xc2a0('0x32')]=_['keys'](_0x5940bb[_0xc2a0('0x32')]);_0x5f488d[_0xc2a0('0x33')]=_[_0xc2a0('0x34')](_0x5f488d[_0xc2a0('0x30')],_0x5f488d[_0xc2a0('0x32')]);_0x363aef['attributes']=_['intersection'](_0x5f488d[_0xc2a0('0x30')],qs['fields'](_0x5940bb[_0xc2a0('0x32')]['fields']));_0x363aef[_0xc2a0('0x35')]=_0x363aef[_0xc2a0('0x35')]['length']?_0x363aef[_0xc2a0('0x35')]:_0x5f488d['model'];_0x363aef[_0xc2a0('0x38')]=qs['sort'](_0x5940bb[_0xc2a0('0x32')]['sort']);_0x363aef[_0xc2a0('0x39')]=qs['filters'](_[_0xc2a0('0x3a')](_0x5940bb['query'],_0x5f488d[_0xc2a0('0x33')]));if(_0x5940bb[_0xc2a0('0x32')][_0xc2a0('0x3b')]){_0x363aef[_0xc2a0('0x39')]=_[_0xc2a0('0x3c')](_0x363aef[_0xc2a0('0x39')],{'$or':_[_0xc2a0('0x2a')](_0x363aef[_0xc2a0('0x35')],function(_0x28806c){var _0x5c2aaf={};_0x5c2aaf[_0x28806c]={'$like':'%'+_0x5940bb[_0xc2a0('0x32')][_0xc2a0('0x3b')]+'%'};return _0x5c2aaf;})});}_0x363aef=_['merge']({},_0x363aef,_0x5940bb[_0xc2a0('0x43')]);return _0x5898e5[_0xc2a0('0x4f')](_0x363aef);}})[_0xc2a0('0x26')](function(_0x5736a5){if(_0x5736a5){_0x33979a=_0x5736a5['length'];if(!_0x5940bb[_0xc2a0('0x32')][_0xc2a0('0x37')](_0xc2a0('0x4b'))){_0x363aef[_0xc2a0('0x1e')]=qs[_0xc2a0('0x1e')](_0x5940bb[_0xc2a0('0x32')][_0xc2a0('0x1e')]);_0x363aef[_0xc2a0('0x1c')]=qs[_0xc2a0('0x1c')](_0x5940bb[_0xc2a0('0x32')]['offset']);}return _0x5898e5[_0xc2a0('0x4f')](_0x363aef);}})['then'](function(_0x5aa5b9){if(_0x5aa5b9){return _0x5aa5b9?{'count':_0x33979a,'rows':_0x5aa5b9}:null;}})[_0xc2a0('0x26')](respondWithResult(_0x15214d,null))[_0xc2a0('0x45')](handleError(_0x15214d,null));};
\ No newline at end of file
+var _0x5a13=['desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','status','json','undefined','limit','count','offset','set','Content-Range','apply','reject','save','update','destroy','then','end','sendStatus','name','send','index','map','rawAttributes','fieldName','type','key','model','keys','intersection','attributes','fields','length','query','hasOwnProperty','nolimit','order','sort','where','filters','filter','merge','options','includeAll','include','ZohoConfiguration','findAll','rows','catch','show','params','find','create','body','getFields','ZohoField','pick','getSubjects','findOne','getDescriptions','eml-format','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto'];(function(_0x3bab09,_0x217c29){var _0x164376=function(_0x277730){while(--_0x277730){_0x3bab09['push'](_0x3bab09['shift']());}};_0x164376(++_0x217c29);}(_0x5a13,0x190));var _0x35a1=function(_0x23ed2f,_0x33a035){_0x23ed2f=_0x23ed2f-0x0;var _0x483994=_0x5a13[_0x23ed2f];return _0x483994;};'use strict';var emlformat=require(_0x35a1('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x35a1('0x1'));var rp=require(_0x35a1('0x2'));var moment=require(_0x35a1('0x3'));var BPromise=require(_0x35a1('0x4'));var Mustache=require(_0x35a1('0x5'));var util=require(_0x35a1('0x6'));var path=require(_0x35a1('0x7'));var sox=require(_0x35a1('0x8'));var csv=require(_0x35a1('0x9'));var ejs=require(_0x35a1('0xa'));var fs=require('fs');var fs_extra=require(_0x35a1('0xb'));var _=require(_0x35a1('0xc'));var squel=require(_0x35a1('0xd'));var crypto=require(_0x35a1('0xe'));var jsforce=require('jsforce');var deskjs=require(_0x35a1('0xf'));var toCsv=require(_0x35a1('0x9'));var querystring=require(_0x35a1('0x10'));var Papa=require(_0x35a1('0x11'));var Redis=require(_0x35a1('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x35a1('0x13'));var as=require(_0x35a1('0x14'));var hardwareService=require(_0x35a1('0x15'));var logger=require(_0x35a1('0x16'))(_0x35a1('0x17'));var utils=require('../../config/utils');var config=require(_0x35a1('0x18'));var licenseUtil=require(_0x35a1('0x19'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x3ede15,_0x50fdb3){_0x50fdb3=_0x50fdb3||0xcc;return function(_0x4ef879){if(_0x4ef879){return _0x3ede15['sendStatus'](_0x50fdb3);}return _0x3ede15[_0x35a1('0x1a')](_0x50fdb3)['end']();};}function respondWithResult(_0x38a7ed,_0x9410e2){_0x9410e2=_0x9410e2||0xc8;return function(_0xbf1e67){if(_0xbf1e67){return _0x38a7ed[_0x35a1('0x1a')](_0x9410e2)[_0x35a1('0x1b')](_0xbf1e67);}};}function respondWithFilteredResult(_0x105d79,_0xe49059){return function(_0x3af214){if(_0x3af214){var _0x13023c=typeof _0xe49059['offset']===_0x35a1('0x1c')&&typeof _0xe49059[_0x35a1('0x1d')]===_0x35a1('0x1c');var _0x25a17b=_0x3af214[_0x35a1('0x1e')];var _0x452707=_0x13023c?0x0:_0xe49059[_0x35a1('0x1f')];var _0x1688ac=_0x13023c?_0x3af214[_0x35a1('0x1e')]:_0xe49059[_0x35a1('0x1f')]+_0xe49059['limit'];var _0x53c0a0;if(_0x1688ac>=_0x25a17b){_0x1688ac=_0x25a17b;_0x53c0a0=0xc8;}else{_0x53c0a0=0xce;}_0x105d79[_0x35a1('0x1a')](_0x53c0a0);return _0x105d79[_0x35a1('0x20')](_0x35a1('0x21'),_0x452707+'-'+_0x1688ac+'/'+_0x25a17b)[_0x35a1('0x1b')](_0x3af214);}return null;};}function patchUpdates(_0x5593cd){return function(_0x357782){try{jsonpatch[_0x35a1('0x22')](_0x357782,_0x5593cd,!![]);}catch(_0x22e0e9){return BPromise[_0x35a1('0x23')](_0x22e0e9);}return _0x357782[_0x35a1('0x24')]();};}function saveUpdates(_0x123bea,_0x1abb0b){return function(_0x523acb){if(_0x523acb){return _0x523acb[_0x35a1('0x25')](_0x123bea)['then'](function(_0x4be845){return _0x4be845;});}return null;};}function removeEntity(_0x4d4c36,_0x2da02c){return function(_0x4d6265){if(_0x4d6265){return _0x4d6265[_0x35a1('0x26')]()[_0x35a1('0x27')](function(){_0x4d4c36[_0x35a1('0x1a')](0xcc)[_0x35a1('0x28')]();});}};}function handleEntityNotFound(_0x48904f,_0x210e97){return function(_0x452e54){if(!_0x452e54){_0x48904f[_0x35a1('0x29')](0x194);}return _0x452e54;};}function handleError(_0x5c627b,_0x37944e){_0x37944e=_0x37944e||0x1f4;return function(_0x1ebe1a){logger['error'](_0x1ebe1a['stack']);if(_0x1ebe1a[_0x35a1('0x2a')]){delete _0x1ebe1a[_0x35a1('0x2a')];}_0x5c627b[_0x35a1('0x1a')](_0x37944e)[_0x35a1('0x2b')](_0x1ebe1a);};}exports[_0x35a1('0x2c')]=function(_0x4d54e9,_0x4f2533){var _0x76b6ff={},_0xf922ac={},_0x3435d9={'count':0x0,'rows':[]};var _0x4f3867=_[_0x35a1('0x2d')](db['ZohoConfiguration'][_0x35a1('0x2e')],function(_0x3d13a0){return{'name':_0x3d13a0[_0x35a1('0x2f')],'type':_0x3d13a0[_0x35a1('0x30')][_0x35a1('0x31')]};});_0xf922ac[_0x35a1('0x32')]=_[_0x35a1('0x2d')](_0x4f3867,_0x35a1('0x2a'));_0xf922ac['query']=_[_0x35a1('0x33')](_0x4d54e9['query']);_0xf922ac['filters']=_[_0x35a1('0x34')](_0xf922ac['model'],_0xf922ac['query']);_0x76b6ff[_0x35a1('0x35')]=_[_0x35a1('0x34')](_0xf922ac['model'],qs[_0x35a1('0x36')](_0x4d54e9['query'][_0x35a1('0x36')]));_0x76b6ff['attributes']=_0x76b6ff[_0x35a1('0x35')][_0x35a1('0x37')]?_0x76b6ff[_0x35a1('0x35')]:_0xf922ac[_0x35a1('0x32')];if(!_0x4d54e9[_0x35a1('0x38')][_0x35a1('0x39')](_0x35a1('0x3a'))){_0x76b6ff[_0x35a1('0x1d')]=qs[_0x35a1('0x1d')](_0x4d54e9['query'][_0x35a1('0x1d')]);_0x76b6ff[_0x35a1('0x1f')]=qs[_0x35a1('0x1f')](_0x4d54e9[_0x35a1('0x38')][_0x35a1('0x1f')]);}_0x76b6ff[_0x35a1('0x3b')]=qs['sort'](_0x4d54e9[_0x35a1('0x38')][_0x35a1('0x3c')]);_0x76b6ff[_0x35a1('0x3d')]=qs[_0x35a1('0x3e')](_['pick'](_0x4d54e9[_0x35a1('0x38')],_0xf922ac[_0x35a1('0x3e')]),_0x4f3867);if(_0x4d54e9['query'][_0x35a1('0x3f')]){_0x76b6ff['where']=_['merge'](_0x76b6ff[_0x35a1('0x3d')],{'$or':_['map'](_0x4f3867,function(_0x1053ac){if(_0x1053ac[_0x35a1('0x30')]!=='VIRTUAL'){var _0x1b3785={};_0x1b3785[_0x1053ac[_0x35a1('0x2a')]]={'$like':'%'+_0x4d54e9[_0x35a1('0x38')][_0x35a1('0x3f')]+'%'};return _0x1b3785;}})});}_0x76b6ff=_[_0x35a1('0x40')]({},_0x76b6ff,_0x4d54e9[_0x35a1('0x41')]);var _0x221ba7={'where':_0x76b6ff['where']};return db['ZohoConfiguration'][_0x35a1('0x1e')](_0x221ba7)[_0x35a1('0x27')](function(_0xca8c3f){_0x3435d9[_0x35a1('0x1e')]=_0xca8c3f;if(_0x4d54e9['query'][_0x35a1('0x42')]){_0x76b6ff[_0x35a1('0x43')]=[{'all':!![]}];}return db[_0x35a1('0x44')][_0x35a1('0x45')](_0x76b6ff);})[_0x35a1('0x27')](function(_0x5ec7ad){_0x3435d9[_0x35a1('0x46')]=_0x5ec7ad;return _0x3435d9;})[_0x35a1('0x27')](respondWithFilteredResult(_0x4f2533,_0x76b6ff))[_0x35a1('0x47')](handleError(_0x4f2533,null));};exports[_0x35a1('0x48')]=function(_0x39b829,_0xc18d8d){var _0x30166e={'raw':![],'where':{'id':_0x39b829[_0x35a1('0x49')]['id']}},_0x4a9ab6={};_0x4a9ab6['model']=_[_0x35a1('0x33')](db['ZohoConfiguration'][_0x35a1('0x2e')]);_0x4a9ab6['query']=_[_0x35a1('0x33')](_0x39b829[_0x35a1('0x38')]);_0x4a9ab6[_0x35a1('0x3e')]=_['intersection'](_0x4a9ab6[_0x35a1('0x32')],_0x4a9ab6['query']);_0x30166e['attributes']=_[_0x35a1('0x34')](_0x4a9ab6[_0x35a1('0x32')],qs[_0x35a1('0x36')](_0x39b829[_0x35a1('0x38')][_0x35a1('0x36')]));_0x30166e[_0x35a1('0x35')]=_0x30166e[_0x35a1('0x35')][_0x35a1('0x37')]?_0x30166e[_0x35a1('0x35')]:_0x4a9ab6['model'];if(_0x39b829[_0x35a1('0x38')]['includeAll']){_0x30166e[_0x35a1('0x43')]=[{'all':!![]}];}_0x30166e=_[_0x35a1('0x40')]({},_0x30166e,_0x39b829['options']);return db[_0x35a1('0x44')][_0x35a1('0x4a')](_0x30166e)[_0x35a1('0x27')](handleEntityNotFound(_0xc18d8d,null))[_0x35a1('0x27')](respondWithResult(_0xc18d8d,null))['catch'](handleError(_0xc18d8d,null));};exports[_0x35a1('0x4b')]=function(_0x2456a4,_0x3827fa){return db[_0x35a1('0x44')][_0x35a1('0x4b')](_0x2456a4[_0x35a1('0x4c')],{})[_0x35a1('0x27')](respondWithResult(_0x3827fa,0xc9))[_0x35a1('0x47')](handleError(_0x3827fa,null));};exports[_0x35a1('0x25')]=function(_0x560a2d,_0x5038f0){if(_0x560a2d[_0x35a1('0x4c')]['id']){delete _0x560a2d[_0x35a1('0x4c')]['id'];}return db[_0x35a1('0x44')]['find']({'where':{'id':_0x560a2d['params']['id']}})[_0x35a1('0x27')](handleEntityNotFound(_0x5038f0,null))[_0x35a1('0x27')](saveUpdates(_0x560a2d[_0x35a1('0x4c')],null))[_0x35a1('0x27')](respondWithResult(_0x5038f0,null))['catch'](handleError(_0x5038f0,null));};exports[_0x35a1('0x26')]=function(_0x290a35,_0x419ae3){return db['ZohoConfiguration'][_0x35a1('0x4a')]({'where':{'id':_0x290a35[_0x35a1('0x49')]['id']}})[_0x35a1('0x27')](handleEntityNotFound(_0x419ae3,null))[_0x35a1('0x27')](removeEntity(_0x419ae3,null))[_0x35a1('0x47')](handleError(_0x419ae3,null));};exports[_0x35a1('0x4d')]=function(_0x272a2e,_0x5142d6,_0x11fee1){var _0x487dc9={};var _0x5dd98c={};var _0x4a131c;var _0x2196b6;return db[_0x35a1('0x44')]['findOne']({'where':{'id':_0x272a2e[_0x35a1('0x49')]['id']}})[_0x35a1('0x27')](handleEntityNotFound(_0x5142d6,null))[_0x35a1('0x27')](function(_0x4a30c2){if(_0x4a30c2){_0x4a131c=_0x4a30c2;_0x5dd98c[_0x35a1('0x32')]=_['keys'](db[_0x35a1('0x4e')]['rawAttributes']);_0x5dd98c[_0x35a1('0x38')]=_[_0x35a1('0x33')](_0x272a2e[_0x35a1('0x38')]);_0x5dd98c[_0x35a1('0x3e')]=_[_0x35a1('0x34')](_0x5dd98c['model'],_0x5dd98c[_0x35a1('0x38')]);_0x487dc9['attributes']=_['intersection'](_0x5dd98c[_0x35a1('0x32')],qs[_0x35a1('0x36')](_0x272a2e[_0x35a1('0x38')]['fields']));_0x487dc9[_0x35a1('0x35')]=_0x487dc9['attributes'][_0x35a1('0x37')]?_0x487dc9[_0x35a1('0x35')]:_0x5dd98c[_0x35a1('0x32')];_0x487dc9['order']=qs[_0x35a1('0x3c')](_0x272a2e[_0x35a1('0x38')][_0x35a1('0x3c')]);_0x487dc9[_0x35a1('0x3d')]=qs['filters'](_[_0x35a1('0x4f')](_0x272a2e[_0x35a1('0x38')],_0x5dd98c[_0x35a1('0x3e')]));if(_0x272a2e[_0x35a1('0x38')][_0x35a1('0x3f')]){_0x487dc9['where']=_[_0x35a1('0x40')](_0x487dc9[_0x35a1('0x3d')],{'$or':_['map'](_0x487dc9[_0x35a1('0x35')],function(_0x527eec){var _0x10c8af={};_0x10c8af[_0x527eec]={'$like':'%'+_0x272a2e['query']['filter']+'%'};return _0x10c8af;})});}_0x487dc9=_[_0x35a1('0x40')]({},_0x487dc9,_0x272a2e[_0x35a1('0x41')]);return _0x4a131c['getFields'](_0x487dc9);}})[_0x35a1('0x27')](function(_0x11c50e){if(_0x11c50e){_0x2196b6=_0x11c50e['length'];if(!_0x272a2e[_0x35a1('0x38')][_0x35a1('0x39')](_0x35a1('0x3a'))){_0x487dc9[_0x35a1('0x1d')]=qs['limit'](_0x272a2e[_0x35a1('0x38')][_0x35a1('0x1d')]);_0x487dc9['offset']=qs[_0x35a1('0x1f')](_0x272a2e[_0x35a1('0x38')][_0x35a1('0x1f')]);}return _0x4a131c[_0x35a1('0x4d')](_0x487dc9);}})[_0x35a1('0x27')](function(_0x2ec663){if(_0x2ec663){return _0x2ec663?{'count':_0x2196b6,'rows':_0x2ec663}:null;}})[_0x35a1('0x27')](respondWithResult(_0x5142d6,null))[_0x35a1('0x47')](handleError(_0x5142d6,null));};exports[_0x35a1('0x50')]=function(_0x205b1a,_0x52d3f1,_0x3b7fea){var _0x2d82b2={};var _0x37aa60={};var _0x17ba88;var _0x422279;return db[_0x35a1('0x44')][_0x35a1('0x51')]({'where':{'id':_0x205b1a[_0x35a1('0x49')]['id']}})[_0x35a1('0x27')](handleEntityNotFound(_0x52d3f1,null))[_0x35a1('0x27')](function(_0x43bd70){if(_0x43bd70){_0x17ba88=_0x43bd70;_0x37aa60[_0x35a1('0x32')]=_[_0x35a1('0x33')](db[_0x35a1('0x4e')][_0x35a1('0x2e')]);_0x37aa60[_0x35a1('0x38')]=_['keys'](_0x205b1a['query']);_0x37aa60[_0x35a1('0x3e')]=_[_0x35a1('0x34')](_0x37aa60['model'],_0x37aa60[_0x35a1('0x38')]);_0x2d82b2[_0x35a1('0x35')]=_[_0x35a1('0x34')](_0x37aa60[_0x35a1('0x32')],qs[_0x35a1('0x36')](_0x205b1a[_0x35a1('0x38')][_0x35a1('0x36')]));_0x2d82b2[_0x35a1('0x35')]=_0x2d82b2[_0x35a1('0x35')][_0x35a1('0x37')]?_0x2d82b2[_0x35a1('0x35')]:_0x37aa60['model'];_0x2d82b2[_0x35a1('0x3b')]=qs[_0x35a1('0x3c')](_0x205b1a[_0x35a1('0x38')]['sort']);_0x2d82b2[_0x35a1('0x3d')]=qs[_0x35a1('0x3e')](_[_0x35a1('0x4f')](_0x205b1a[_0x35a1('0x38')],_0x37aa60[_0x35a1('0x3e')]));if(_0x205b1a[_0x35a1('0x38')][_0x35a1('0x3f')]){_0x2d82b2[_0x35a1('0x3d')]=_['merge'](_0x2d82b2[_0x35a1('0x3d')],{'$or':_[_0x35a1('0x2d')](_0x2d82b2['attributes'],function(_0x5889ec){var _0x103d37={};_0x103d37[_0x5889ec]={'$like':'%'+_0x205b1a['query'][_0x35a1('0x3f')]+'%'};return _0x103d37;})});}_0x2d82b2=_[_0x35a1('0x40')]({},_0x2d82b2,_0x205b1a['options']);return _0x17ba88[_0x35a1('0x50')](_0x2d82b2);}})['then'](function(_0x23de66){if(_0x23de66){_0x422279=_0x23de66[_0x35a1('0x37')];if(!_0x205b1a[_0x35a1('0x38')][_0x35a1('0x39')](_0x35a1('0x3a'))){_0x2d82b2[_0x35a1('0x1d')]=qs[_0x35a1('0x1d')](_0x205b1a[_0x35a1('0x38')]['limit']);_0x2d82b2['offset']=qs[_0x35a1('0x1f')](_0x205b1a[_0x35a1('0x38')][_0x35a1('0x1f')]);}return _0x17ba88['getSubjects'](_0x2d82b2);}})[_0x35a1('0x27')](function(_0x5af16c){if(_0x5af16c){return _0x5af16c?{'count':_0x422279,'rows':_0x5af16c}:null;}})[_0x35a1('0x27')](respondWithResult(_0x52d3f1,null))[_0x35a1('0x47')](handleError(_0x52d3f1,null));};exports[_0x35a1('0x52')]=function(_0x1569cb,_0x39177c,_0x3d1114){var _0x1e8cae={};var _0x1211f8={};var _0x246acc;var _0x447c64;return db[_0x35a1('0x44')][_0x35a1('0x51')]({'where':{'id':_0x1569cb[_0x35a1('0x49')]['id']}})['then'](handleEntityNotFound(_0x39177c,null))[_0x35a1('0x27')](function(_0x5bc266){if(_0x5bc266){_0x246acc=_0x5bc266;_0x1211f8['model']=_[_0x35a1('0x33')](db[_0x35a1('0x4e')][_0x35a1('0x2e')]);_0x1211f8[_0x35a1('0x38')]=_[_0x35a1('0x33')](_0x1569cb[_0x35a1('0x38')]);_0x1211f8[_0x35a1('0x3e')]=_[_0x35a1('0x34')](_0x1211f8['model'],_0x1211f8[_0x35a1('0x38')]);_0x1e8cae['attributes']=_[_0x35a1('0x34')](_0x1211f8[_0x35a1('0x32')],qs[_0x35a1('0x36')](_0x1569cb['query'][_0x35a1('0x36')]));_0x1e8cae[_0x35a1('0x35')]=_0x1e8cae[_0x35a1('0x35')][_0x35a1('0x37')]?_0x1e8cae[_0x35a1('0x35')]:_0x1211f8[_0x35a1('0x32')];_0x1e8cae[_0x35a1('0x3b')]=qs['sort'](_0x1569cb['query']['sort']);_0x1e8cae['where']=qs[_0x35a1('0x3e')](_[_0x35a1('0x4f')](_0x1569cb['query'],_0x1211f8[_0x35a1('0x3e')]));if(_0x1569cb['query']['filter']){_0x1e8cae[_0x35a1('0x3d')]=_[_0x35a1('0x40')](_0x1e8cae[_0x35a1('0x3d')],{'$or':_[_0x35a1('0x2d')](_0x1e8cae[_0x35a1('0x35')],function(_0x4a6f4c){var _0x5db4ae={};_0x5db4ae[_0x4a6f4c]={'$like':'%'+_0x1569cb[_0x35a1('0x38')]['filter']+'%'};return _0x5db4ae;})});}_0x1e8cae=_[_0x35a1('0x40')]({},_0x1e8cae,_0x1569cb[_0x35a1('0x41')]);return _0x246acc['getDescriptions'](_0x1e8cae);}})[_0x35a1('0x27')](function(_0xa19b03){if(_0xa19b03){_0x447c64=_0xa19b03['length'];if(!_0x1569cb[_0x35a1('0x38')][_0x35a1('0x39')]('nolimit')){_0x1e8cae[_0x35a1('0x1d')]=qs[_0x35a1('0x1d')](_0x1569cb['query']['limit']);_0x1e8cae['offset']=qs[_0x35a1('0x1f')](_0x1569cb['query']['offset']);}return _0x246acc['getDescriptions'](_0x1e8cae);}})[_0x35a1('0x27')](function(_0x2a13a0){if(_0x2a13a0){return _0x2a13a0?{'count':_0x447c64,'rows':_0x2a13a0}:null;}})[_0x35a1('0x27')](respondWithResult(_0x39177c,null))[_0x35a1('0x47')](handleError(_0x39177c,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc31e=['define','ZohoConfiguration','int_zoho_configurations','lodash','util','../../config/logger','api','moment','bluebird','request-promise','rimraf','../../config/environment','exports'];(function(_0x4d7aaf,_0x1202c6){var _0x26307a=function(_0x30ba9f){while(--_0x30ba9f){_0x4d7aaf['push'](_0x4d7aaf['shift']());}};_0x26307a(++_0x1202c6);}(_0xc31e,0x13b));var _0xec31=function(_0x1bd3d4,_0x40f90b){_0x1bd3d4=_0x1bd3d4-0x0;var _0x3ae984=_0xc31e[_0x1bd3d4];return _0x3ae984;};'use strict';var _=require(_0xec31('0x0'));var util=require(_0xec31('0x1'));var logger=require(_0xec31('0x2'))(_0xec31('0x3'));var moment=require(_0xec31('0x4'));var BPromise=require(_0xec31('0x5'));var rp=require(_0xec31('0x6'));var fs=require('fs');var path=require('path');var rimraf=require(_0xec31('0x7'));var config=require(_0xec31('0x8'));var attributes=require('./intZohoConfiguration.attributes');module[_0xec31('0x9')]=function(_0x4fab4b,_0x3a4ff9){return _0x4fab4b[_0xec31('0xa')](_0xec31('0xb'),attributes,{'tableName':_0xec31('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x82f7=['exports','define','ZohoConfiguration','lodash','util','../../config/logger','api','moment','bluebird','path','rimraf','../../config/environment','./intZohoConfiguration.attributes'];(function(_0x4a07f5,_0x174996){var _0x2c0fa9=function(_0x573e10){while(--_0x573e10){_0x4a07f5['push'](_0x4a07f5['shift']());}};_0x2c0fa9(++_0x174996);}(_0x82f7,0xac));var _0x782f=function(_0x2dfe00,_0x721df5){_0x2dfe00=_0x2dfe00-0x0;var _0x4c8894=_0x82f7[_0x2dfe00];return _0x4c8894;};'use strict';var _=require(_0x782f('0x0'));var util=require(_0x782f('0x1'));var logger=require(_0x782f('0x2'))(_0x782f('0x3'));var moment=require(_0x782f('0x4'));var BPromise=require(_0x782f('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x782f('0x6'));var rimraf=require(_0x782f('0x7'));var config=require(_0x782f('0x8'));var attributes=require(_0x782f('0x9'));module[_0x782f('0xa')]=function(_0x47cc03,_0x534dc6){return _0x47cc03[_0x782f('0xb')](_0x782f('0xc'),attributes,{'tableName':'int_zoho_configurations','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdc62=['result','lodash','util','moment','bluebird','ioredis','../../mysqldb','rpc','../../config/environment','jayson/promise','client','http','request','then','info','ZohoConfiguration,\x20%s,\x20%s','debug','request\x20sent','stringify','error','code','message'];(function(_0x3b380d,_0x4bf247){var _0x54502b=function(_0x35d207){while(--_0x35d207){_0x3b380d['push'](_0x3b380d['shift']());}};_0x54502b(++_0x4bf247);}(_0xdc62,0x135));var _0x2dc6=function(_0x4a257a,_0x4f2b42){_0x4a257a=_0x4a257a-0x0;var _0x34cd09=_0xdc62[_0x4a257a];return _0x34cd09;};'use strict';var _=require(_0x2dc6('0x0'));var util=require(_0x2dc6('0x1'));var moment=require(_0x2dc6('0x2'));var BPromise=require(_0x2dc6('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x2dc6('0x4'));var db=require(_0x2dc6('0x5'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0x2dc6('0x6'));var config=require(_0x2dc6('0x7'));var jayson=require(_0x2dc6('0x8'));var client=jayson[_0x2dc6('0x9')][_0x2dc6('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x1e3266,_0x5713ff,_0x10a8d1){return new BPromise(function(_0x3df3c1,_0x3afc2a){return client[_0x2dc6('0xb')](_0x1e3266,_0x10a8d1)[_0x2dc6('0xc')](function(_0x3f0511){logger[_0x2dc6('0xd')](_0x2dc6('0xe'),_0x5713ff,'request\x20sent');logger[_0x2dc6('0xf')]('ZohoConfiguration,\x20%s,\x20%s,\x20%s',_0x5713ff,_0x2dc6('0x10'),JSON[_0x2dc6('0x11')](_0x3f0511));if(_0x3f0511[_0x2dc6('0x12')]){if(_0x3f0511[_0x2dc6('0x12')][_0x2dc6('0x13')]===0x1f4){logger[_0x2dc6('0x12')]('ZohoConfiguration,\x20%s,\x20%s',_0x5713ff,_0x3f0511[_0x2dc6('0x12')][_0x2dc6('0x14')]);return _0x3afc2a(_0x3f0511[_0x2dc6('0x12')]['message']);}logger[_0x2dc6('0x12')](_0x2dc6('0xe'),_0x5713ff,_0x3f0511[_0x2dc6('0x12')][_0x2dc6('0x14')]);return _0x3df3c1(_0x3f0511[_0x2dc6('0x12')]['message']);}else{logger[_0x2dc6('0xd')]('ZohoConfiguration,\x20%s,\x20%s',_0x5713ff,_0x2dc6('0x10'));_0x3df3c1(_0x3f0511[_0x2dc6('0x15')][_0x2dc6('0x14')]);}})['catch'](function(_0x130d2a){logger[_0x2dc6('0x12')](_0x2dc6('0xe'),_0x5713ff,_0x130d2a);_0x3afc2a(_0x130d2a);});});}
\ No newline at end of file
+var _0xf071=['then','info','request\x20sent','debug','stringify','error','code','ZohoConfiguration,\x20%s,\x20%s','message','lodash','moment','bluebird','randomstring','../../mysqldb','../../config/utils','rpc','client','http'];(function(_0x513aa5,_0x1fba79){var _0x1a1a7c=function(_0x240e3f){while(--_0x240e3f){_0x513aa5['push'](_0x513aa5['shift']());}};_0x1a1a7c(++_0x1fba79);}(_0xf071,0x129));var _0x1f07=function(_0x43b79a,_0x38f1a2){_0x43b79a=_0x43b79a-0x0;var _0x389a07=_0xf071[_0x43b79a];return _0x389a07;};'use strict';var _=require(_0x1f07('0x0'));var util=require('util');var moment=require(_0x1f07('0x1'));var BPromise=require(_0x1f07('0x2'));var rs=require(_0x1f07('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x1f07('0x4'))['db'];var utils=require(_0x1f07('0x5'));var logger=require('../../config/logger')(_0x1f07('0x6'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x1f07('0x7')][_0x1f07('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x596263,_0x1b88f6,_0x214112){return new BPromise(function(_0x21797d,_0x217d94){return client['request'](_0x596263,_0x214112)[_0x1f07('0x9')](function(_0x478351){logger[_0x1f07('0xa')]('ZohoConfiguration,\x20%s,\x20%s',_0x1b88f6,_0x1f07('0xb'));logger[_0x1f07('0xc')]('ZohoConfiguration,\x20%s,\x20%s,\x20%s',_0x1b88f6,'request\x20sent',JSON[_0x1f07('0xd')](_0x478351));if(_0x478351[_0x1f07('0xe')]){if(_0x478351[_0x1f07('0xe')][_0x1f07('0xf')]===0x1f4){logger[_0x1f07('0xe')](_0x1f07('0x10'),_0x1b88f6,_0x478351['error'][_0x1f07('0x11')]);return _0x217d94(_0x478351[_0x1f07('0xe')][_0x1f07('0x11')]);}logger[_0x1f07('0xe')](_0x1f07('0x10'),_0x1b88f6,_0x478351['error'][_0x1f07('0x11')]);return _0x21797d(_0x478351[_0x1f07('0xe')][_0x1f07('0x11')]);}else{logger[_0x1f07('0xa')]('ZohoConfiguration,\x20%s,\x20%s',_0x1b88f6,_0x1f07('0xb'));_0x21797d(_0x478351['result'][_0x1f07('0x11')]);}})['catch'](function(_0x1a31aa){logger[_0x1f07('0xe')](_0x1f07('0x10'),_0x1b88f6,_0x1a31aa);_0x217d94(_0x1a31aa);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5e8e=['create','put','update','delete','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','get','isAuthenticated','index','/:id','post'];(function(_0x56e423,_0x98016e){var _0x331ddb=function(_0x131190){while(--_0x131190){_0x56e423['push'](_0x56e423['shift']());}};_0x331ddb(++_0x98016e);}(_0x5e8e,0x1cd));var _0xe5e8=function(_0x1d3eaf,_0x260522){_0x1d3eaf=_0x1d3eaf-0x0;var _0x19aa8d=_0x5e8e[_0x1d3eaf];return _0x19aa8d;};'use strict';var multer=require(_0xe5e8('0x0'));var util=require(_0xe5e8('0x1'));var path=require(_0xe5e8('0x2'));var timeout=require(_0xe5e8('0x3'));var express=require(_0xe5e8('0x4'));var router=express[_0xe5e8('0x5')]();var fs_extra=require(_0xe5e8('0x6'));var auth=require(_0xe5e8('0x7'));var interaction=require(_0xe5e8('0x8'));var config=require('../../config/environment');var controller=require('./intZohoField.controller');router[_0xe5e8('0x9')]('/',auth[_0xe5e8('0xa')](),controller[_0xe5e8('0xb')]);router[_0xe5e8('0x9')](_0xe5e8('0xc'),auth[_0xe5e8('0xa')](),controller['show']);router[_0xe5e8('0xd')]('/',auth[_0xe5e8('0xa')](),controller[_0xe5e8('0xe')]);router[_0xe5e8('0xf')](_0xe5e8('0xc'),auth['isAuthenticated'](),controller[_0xe5e8('0x10')]);router[_0xe5e8('0x11')](_0xe5e8('0xc'),auth['isAuthenticated'](),controller['destroy']);module[_0xe5e8('0x12')]=router;
\ No newline at end of file
+var _0x2cf9=['delete','destroy','exports','util','path','connect-timeout','express','Router','../../config/environment','get','isAuthenticated','show','create','/:id','update'];(function(_0x4a88ef,_0x47b00b){var _0x223767=function(_0x2d1f2b){while(--_0x2d1f2b){_0x4a88ef['push'](_0x4a88ef['shift']());}};_0x223767(++_0x47b00b);}(_0x2cf9,0x111));var _0x92cf=function(_0x1910dc,_0x2318bd){_0x1910dc=_0x1910dc-0x0;var _0x320a47=_0x2cf9[_0x1910dc];return _0x320a47;};'use strict';var multer=require('multer');var util=require(_0x92cf('0x0'));var path=require(_0x92cf('0x1'));var timeout=require(_0x92cf('0x2'));var express=require(_0x92cf('0x3'));var router=express[_0x92cf('0x4')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x92cf('0x5'));var controller=require('./intZohoField.controller');router[_0x92cf('0x6')]('/',auth['isAuthenticated'](),controller['index']);router[_0x92cf('0x6')]('/:id',auth[_0x92cf('0x7')](),controller[_0x92cf('0x8')]);router['post']('/',auth[_0x92cf('0x7')](),controller[_0x92cf('0x9')]);router['put'](_0x92cf('0xa'),auth[_0x92cf('0x7')](),controller[_0x92cf('0xb')]);router[_0x92cf('0xc')](_0x92cf('0xa'),auth[_0x92cf('0x7')](),controller[_0x92cf('0xd')]);module[_0x92cf('0xe')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4993=['ENUM','variable','customVariable','picklist','string','STRING','BOOLEAN','sequelize','exports'];(function(_0x496853,_0x5e10fc){var _0x49304d=function(_0x317225){while(--_0x317225){_0x496853['push'](_0x496853['shift']());}};_0x49304d(++_0x5e10fc);}(_0x4993,0x10c));var _0x3499=function(_0x1e2f72,_0x4ecd3d){_0x1e2f72=_0x1e2f72-0x0;var _0x2f00a8=_0x4993[_0x1e2f72];return _0x2f00a8;};'use strict';var Sequelize=require(_0x3499('0x0'));module[_0x3499('0x1')]={'type':{'type':Sequelize[_0x3499('0x2')]('string',_0x3499('0x3'),_0x3499('0x4'),'keyValue',_0x3499('0x5')),'defaultValue':_0x3499('0x6')},'content':{'type':Sequelize[_0x3499('0x7')]},'key':{'type':Sequelize[_0x3499('0x7')]},'keyType':{'type':Sequelize[_0x3499('0x2')](_0x3499('0x6'),_0x3499('0x3'),_0x3499('0x4'))},'keyContent':{'type':Sequelize[_0x3499('0x7')]},'idField':{'type':Sequelize[_0x3499('0x7')]},'nameField':{'type':Sequelize[_0x3499('0x7')]},'customField':{'type':Sequelize[_0x3499('0x8')],'defaultValue':!![]},'variableName':{'type':Sequelize[_0x3499('0x7')]}};
\ No newline at end of file
+var _0xfa15=['customVariable','keyValue','picklist','STRING','BOOLEAN','exports','ENUM','string','variable'];(function(_0x1722a8,_0x494dfa){var _0x2f5cbf=function(_0x54413d){while(--_0x54413d){_0x1722a8['push'](_0x1722a8['shift']());}};_0x2f5cbf(++_0x494dfa);}(_0xfa15,0xb9));var _0x5fa1=function(_0x141530,_0x1523e8){_0x141530=_0x141530-0x0;var _0x4e3c46=_0xfa15[_0x141530];return _0x4e3c46;};'use strict';var Sequelize=require('sequelize');module[_0x5fa1('0x0')]={'type':{'type':Sequelize[_0x5fa1('0x1')](_0x5fa1('0x2'),_0x5fa1('0x3'),_0x5fa1('0x4'),_0x5fa1('0x5'),_0x5fa1('0x6')),'defaultValue':_0x5fa1('0x2')},'content':{'type':Sequelize[_0x5fa1('0x7')]},'key':{'type':Sequelize['STRING']},'keyType':{'type':Sequelize[_0x5fa1('0x1')](_0x5fa1('0x2'),'variable',_0x5fa1('0x4'))},'keyContent':{'type':Sequelize[_0x5fa1('0x7')]},'idField':{'type':Sequelize['STRING']},'nameField':{'type':Sequelize[_0x5fa1('0x7')]},'customField':{'type':Sequelize[_0x5fa1('0x8')],'defaultValue':!![]},'variableName':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xed53=['query','keys','filters','intersection','model','attributes','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','rows','catch','show','params','rawAttributes','fields','find','create','update','body','destroy','eml-format','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','apply','reject','save','then','name','send','index','map','ZohoField','fieldName','type','key'];(function(_0x40a045,_0x516f0e){var _0x1a687c=function(_0x48c9fe){while(--_0x48c9fe){_0x40a045['push'](_0x40a045['shift']());}};_0x1a687c(++_0x516f0e);}(_0xed53,0xf9));var _0x3ed5=function(_0x5620b5,_0x48583b){_0x5620b5=_0x5620b5-0x0;var _0x477a33=_0xed53[_0x5620b5];return _0x477a33;};'use strict';var emlformat=require(_0x3ed5('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x3ed5('0x1'));var rp=require(_0x3ed5('0x2'));var moment=require(_0x3ed5('0x3'));var BPromise=require(_0x3ed5('0x4'));var Mustache=require(_0x3ed5('0x5'));var util=require(_0x3ed5('0x6'));var path=require(_0x3ed5('0x7'));var sox=require(_0x3ed5('0x8'));var csv=require(_0x3ed5('0x9'));var ejs=require(_0x3ed5('0xa'));var fs=require('fs');var fs_extra=require(_0x3ed5('0xb'));var _=require(_0x3ed5('0xc'));var squel=require('squel');var crypto=require(_0x3ed5('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x3ed5('0xe'));var toCsv=require('to-csv');var querystring=require(_0x3ed5('0xf'));var Papa=require(_0x3ed5('0x10'));var Redis=require(_0x3ed5('0x11'));var authService=require(_0x3ed5('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x3ed5('0x13'));var hardwareService=require(_0x3ed5('0x14'));var logger=require(_0x3ed5('0x15'))('api');var utils=require(_0x3ed5('0x16'));var config=require(_0x3ed5('0x17'));var licenseUtil=require(_0x3ed5('0x18'));var db=require(_0x3ed5('0x19'))['db'];function respondWithStatusCode(_0x1dfbcf,_0x46a4b4){_0x46a4b4=_0x46a4b4||0xcc;return function(_0x5c9d0f){if(_0x5c9d0f){return _0x1dfbcf[_0x3ed5('0x1a')](_0x46a4b4);}return _0x1dfbcf[_0x3ed5('0x1b')](_0x46a4b4)[_0x3ed5('0x1c')]();};}function respondWithResult(_0x26f07b,_0x576e6c){_0x576e6c=_0x576e6c||0xc8;return function(_0x3d64e3){if(_0x3d64e3){return _0x26f07b[_0x3ed5('0x1b')](_0x576e6c)[_0x3ed5('0x1d')](_0x3d64e3);}};}function respondWithFilteredResult(_0xbeddd7,_0x549e89){return function(_0x4c1b11){if(_0x4c1b11){var _0x2ac3df=typeof _0x549e89[_0x3ed5('0x1e')]===_0x3ed5('0x1f')&&typeof _0x549e89[_0x3ed5('0x20')]===_0x3ed5('0x1f');var _0x39c594=_0x4c1b11[_0x3ed5('0x21')];var _0x437098=_0x2ac3df?0x0:_0x549e89[_0x3ed5('0x1e')];var _0x27787e=_0x2ac3df?_0x4c1b11['count']:_0x549e89[_0x3ed5('0x1e')]+_0x549e89['limit'];var _0x17f9e2;if(_0x27787e>=_0x39c594){_0x27787e=_0x39c594;_0x17f9e2=0xc8;}else{_0x17f9e2=0xce;}_0xbeddd7[_0x3ed5('0x1b')](_0x17f9e2);return _0xbeddd7['set'](_0x3ed5('0x22'),_0x437098+'-'+_0x27787e+'/'+_0x39c594)['json'](_0x4c1b11);}return null;};}function patchUpdates(_0x9d72b9){return function(_0x17d9b6){try{jsonpatch[_0x3ed5('0x23')](_0x17d9b6,_0x9d72b9,!![]);}catch(_0x4928bb){return BPromise[_0x3ed5('0x24')](_0x4928bb);}return _0x17d9b6[_0x3ed5('0x25')]();};}function saveUpdates(_0x2d149c,_0x4dc095){return function(_0x4aa680){if(_0x4aa680){return _0x4aa680['update'](_0x2d149c)[_0x3ed5('0x26')](function(_0x139fe8){return _0x139fe8;});}return null;};}function removeEntity(_0x423993,_0x45e58f){return function(_0x408754){if(_0x408754){return _0x408754['destroy']()[_0x3ed5('0x26')](function(){_0x423993[_0x3ed5('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x123689,_0x4c6ed8){return function(_0x4bb6c2){if(!_0x4bb6c2){_0x123689[_0x3ed5('0x1a')](0x194);}return _0x4bb6c2;};}function handleError(_0x10534e,_0x4df272){_0x4df272=_0x4df272||0x1f4;return function(_0x44a723){logger['error'](_0x44a723['stack']);if(_0x44a723['name']){delete _0x44a723[_0x3ed5('0x27')];}_0x10534e[_0x3ed5('0x1b')](_0x4df272)[_0x3ed5('0x28')](_0x44a723);};}exports[_0x3ed5('0x29')]=function(_0x2cf6b2,_0x5a9ca7){var _0x24f71f={},_0x2993f7={},_0x47538c={'count':0x0,'rows':[]};var _0x5f43cd=_[_0x3ed5('0x2a')](db[_0x3ed5('0x2b')]['rawAttributes'],function(_0xe2c585){return{'name':_0xe2c585[_0x3ed5('0x2c')],'type':_0xe2c585[_0x3ed5('0x2d')][_0x3ed5('0x2e')]};});_0x2993f7['model']=_['map'](_0x5f43cd,'name');_0x2993f7[_0x3ed5('0x2f')]=_[_0x3ed5('0x30')](_0x2cf6b2[_0x3ed5('0x2f')]);_0x2993f7[_0x3ed5('0x31')]=_[_0x3ed5('0x32')](_0x2993f7[_0x3ed5('0x33')],_0x2993f7[_0x3ed5('0x2f')]);_0x24f71f[_0x3ed5('0x34')]=_[_0x3ed5('0x32')](_0x2993f7[_0x3ed5('0x33')],qs['fields'](_0x2cf6b2['query']['fields']));_0x24f71f[_0x3ed5('0x34')]=_0x24f71f[_0x3ed5('0x34')]['length']?_0x24f71f['attributes']:_0x2993f7[_0x3ed5('0x33')];if(!_0x2cf6b2['query']['hasOwnProperty']('nolimit')){_0x24f71f[_0x3ed5('0x20')]=qs[_0x3ed5('0x20')](_0x2cf6b2[_0x3ed5('0x2f')][_0x3ed5('0x20')]);_0x24f71f[_0x3ed5('0x1e')]=qs['offset'](_0x2cf6b2[_0x3ed5('0x2f')]['offset']);}_0x24f71f[_0x3ed5('0x35')]=qs[_0x3ed5('0x36')](_0x2cf6b2[_0x3ed5('0x2f')]['sort']);_0x24f71f[_0x3ed5('0x37')]=qs[_0x3ed5('0x31')](_[_0x3ed5('0x38')](_0x2cf6b2['query'],_0x2993f7[_0x3ed5('0x31')]),_0x5f43cd);if(_0x2cf6b2['query'][_0x3ed5('0x39')]){_0x24f71f[_0x3ed5('0x37')]=_[_0x3ed5('0x3a')](_0x24f71f[_0x3ed5('0x37')],{'$or':_[_0x3ed5('0x2a')](_0x5f43cd,function(_0x132426){if(_0x132426[_0x3ed5('0x2d')]!==_0x3ed5('0x3b')){var _0x288bf1={};_0x288bf1[_0x132426[_0x3ed5('0x27')]]={'$like':'%'+_0x2cf6b2[_0x3ed5('0x2f')][_0x3ed5('0x39')]+'%'};return _0x288bf1;}})});}_0x24f71f=_[_0x3ed5('0x3a')]({},_0x24f71f,_0x2cf6b2[_0x3ed5('0x3c')]);var _0x2301eb={'where':_0x24f71f[_0x3ed5('0x37')]};return db['ZohoField'][_0x3ed5('0x21')](_0x2301eb)[_0x3ed5('0x26')](function(_0x22dd03){_0x47538c[_0x3ed5('0x21')]=_0x22dd03;if(_0x2cf6b2[_0x3ed5('0x2f')][_0x3ed5('0x3d')]){_0x24f71f[_0x3ed5('0x3e')]=[{'all':!![]}];}return db['ZohoField']['findAll'](_0x24f71f);})[_0x3ed5('0x26')](function(_0x3aa77b){_0x47538c[_0x3ed5('0x3f')]=_0x3aa77b;return _0x47538c;})[_0x3ed5('0x26')](respondWithFilteredResult(_0x5a9ca7,_0x24f71f))[_0x3ed5('0x40')](handleError(_0x5a9ca7,null));};exports[_0x3ed5('0x41')]=function(_0x4d7868,_0x361474){var _0x40562f={'raw':!![],'where':{'id':_0x4d7868[_0x3ed5('0x42')]['id']}},_0x55aac4={};_0x55aac4[_0x3ed5('0x33')]=_[_0x3ed5('0x30')](db[_0x3ed5('0x2b')][_0x3ed5('0x43')]);_0x55aac4[_0x3ed5('0x2f')]=_['keys'](_0x4d7868[_0x3ed5('0x2f')]);_0x55aac4[_0x3ed5('0x31')]=_['intersection'](_0x55aac4[_0x3ed5('0x33')],_0x55aac4[_0x3ed5('0x2f')]);_0x40562f['attributes']=_[_0x3ed5('0x32')](_0x55aac4[_0x3ed5('0x33')],qs['fields'](_0x4d7868[_0x3ed5('0x2f')][_0x3ed5('0x44')]));_0x40562f[_0x3ed5('0x34')]=_0x40562f['attributes']['length']?_0x40562f[_0x3ed5('0x34')]:_0x55aac4[_0x3ed5('0x33')];if(_0x4d7868[_0x3ed5('0x2f')][_0x3ed5('0x3d')]){_0x40562f['include']=[{'all':!![]}];}_0x40562f=_[_0x3ed5('0x3a')]({},_0x40562f,_0x4d7868['options']);return db['ZohoField'][_0x3ed5('0x45')](_0x40562f)[_0x3ed5('0x26')](handleEntityNotFound(_0x361474,null))[_0x3ed5('0x26')](respondWithResult(_0x361474,null))[_0x3ed5('0x40')](handleError(_0x361474,null));};exports[_0x3ed5('0x46')]=function(_0x5b1011,_0x46ca54){return db['ZohoField'][_0x3ed5('0x46')](_0x5b1011['body'],{})[_0x3ed5('0x26')](respondWithResult(_0x46ca54,0xc9))[_0x3ed5('0x40')](handleError(_0x46ca54,null));};exports[_0x3ed5('0x47')]=function(_0x167d60,_0x412529){if(_0x167d60[_0x3ed5('0x48')]['id']){delete _0x167d60[_0x3ed5('0x48')]['id'];}return db[_0x3ed5('0x2b')]['find']({'where':{'id':_0x167d60[_0x3ed5('0x42')]['id']}})[_0x3ed5('0x26')](handleEntityNotFound(_0x412529,null))[_0x3ed5('0x26')](saveUpdates(_0x167d60[_0x3ed5('0x48')],null))[_0x3ed5('0x26')](respondWithResult(_0x412529,null))[_0x3ed5('0x40')](handleError(_0x412529,null));};exports[_0x3ed5('0x49')]=function(_0x3c7fbb,_0x3dd976){return db['ZohoField']['find']({'where':{'id':_0x3c7fbb[_0x3ed5('0x42')]['id']}})[_0x3ed5('0x26')](handleEntityNotFound(_0x3dd976,null))[_0x3ed5('0x26')](removeEntity(_0x3dd976,null))[_0x3ed5('0x40')](handleError(_0x3dd976,null));};
\ No newline at end of file
+var _0x3dd4=['ZohoField','rawAttributes','fieldName','type','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','findAll','catch','show','find','create','update','body','params','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','sox','to-csv','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','json','offset','undefined','count','limit','status','set','Content-Range','apply','reject','save','then','destroy','end','error','name','send','index'];(function(_0x5e3178,_0x3492da){var _0x905dcf=function(_0xc69066){while(--_0xc69066){_0x5e3178['push'](_0x5e3178['shift']());}};_0x905dcf(++_0x3492da);}(_0x3dd4,0xfc));var _0x43dd=function(_0x506cd4,_0x175bf1){_0x506cd4=_0x506cd4-0x0;var _0x5ad15a=_0x3dd4[_0x506cd4];return _0x5ad15a;};'use strict';var emlformat=require(_0x43dd('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x43dd('0x1'));var jsonpatch=require(_0x43dd('0x2'));var rp=require(_0x43dd('0x3'));var moment=require(_0x43dd('0x4'));var BPromise=require(_0x43dd('0x5'));var Mustache=require('mustache');var util=require(_0x43dd('0x6'));var path=require('path');var sox=require(_0x43dd('0x7'));var csv=require(_0x43dd('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x43dd('0x9'));var _=require('lodash');var squel=require(_0x43dd('0xa'));var crypto=require(_0x43dd('0xb'));var jsforce=require(_0x43dd('0xc'));var deskjs=require(_0x43dd('0xd'));var toCsv=require(_0x43dd('0x8'));var querystring=require(_0x43dd('0xe'));var Papa=require(_0x43dd('0xf'));var Redis=require('ioredis');var authService=require(_0x43dd('0x10'));var qs=require(_0x43dd('0x11'));var as=require(_0x43dd('0x12'));var hardwareService=require(_0x43dd('0x13'));var logger=require(_0x43dd('0x14'))(_0x43dd('0x15'));var utils=require(_0x43dd('0x16'));var config=require(_0x43dd('0x17'));var licenseUtil=require(_0x43dd('0x18'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0xa14b0c,_0x5a1260){_0x5a1260=_0x5a1260||0xcc;return function(_0x2711f8){if(_0x2711f8){return _0xa14b0c[_0x43dd('0x19')](_0x5a1260);}return _0xa14b0c['status'](_0x5a1260)['end']();};}function respondWithResult(_0x20158e,_0x2cdbda){_0x2cdbda=_0x2cdbda||0xc8;return function(_0x4d1523){if(_0x4d1523){return _0x20158e['status'](_0x2cdbda)[_0x43dd('0x1a')](_0x4d1523);}};}function respondWithFilteredResult(_0x3c707b,_0x22917a){return function(_0x32fc40){if(_0x32fc40){var _0x300b65=typeof _0x22917a[_0x43dd('0x1b')]===_0x43dd('0x1c')&&typeof _0x22917a['limit']===_0x43dd('0x1c');var _0x110d17=_0x32fc40[_0x43dd('0x1d')];var _0x2108f2=_0x300b65?0x0:_0x22917a['offset'];var _0x2d29f5=_0x300b65?_0x32fc40['count']:_0x22917a[_0x43dd('0x1b')]+_0x22917a[_0x43dd('0x1e')];var _0xca5b8e;if(_0x2d29f5>=_0x110d17){_0x2d29f5=_0x110d17;_0xca5b8e=0xc8;}else{_0xca5b8e=0xce;}_0x3c707b[_0x43dd('0x1f')](_0xca5b8e);return _0x3c707b[_0x43dd('0x20')](_0x43dd('0x21'),_0x2108f2+'-'+_0x2d29f5+'/'+_0x110d17)[_0x43dd('0x1a')](_0x32fc40);}return null;};}function patchUpdates(_0x39e70a){return function(_0x29601e){try{jsonpatch[_0x43dd('0x22')](_0x29601e,_0x39e70a,!![]);}catch(_0x3dd459){return BPromise[_0x43dd('0x23')](_0x3dd459);}return _0x29601e[_0x43dd('0x24')]();};}function saveUpdates(_0x1b089e,_0x3e4e3f){return function(_0x480fc0){if(_0x480fc0){return _0x480fc0['update'](_0x1b089e)[_0x43dd('0x25')](function(_0x49d9c7){return _0x49d9c7;});}return null;};}function removeEntity(_0x1b89ea,_0x412f6d){return function(_0x472a91){if(_0x472a91){return _0x472a91[_0x43dd('0x26')]()[_0x43dd('0x25')](function(){_0x1b89ea[_0x43dd('0x1f')](0xcc)[_0x43dd('0x27')]();});}};}function handleEntityNotFound(_0x56a2b7,_0x1edd41){return function(_0x4b5616){if(!_0x4b5616){_0x56a2b7['sendStatus'](0x194);}return _0x4b5616;};}function handleError(_0x1e4824,_0x9cd67a){_0x9cd67a=_0x9cd67a||0x1f4;return function(_0x1eb741){logger[_0x43dd('0x28')](_0x1eb741['stack']);if(_0x1eb741[_0x43dd('0x29')]){delete _0x1eb741[_0x43dd('0x29')];}_0x1e4824[_0x43dd('0x1f')](_0x9cd67a)[_0x43dd('0x2a')](_0x1eb741);};}exports[_0x43dd('0x2b')]=function(_0x492423,_0x53c922){var _0xc20819={},_0x590e19={},_0x1d2d4e={'count':0x0,'rows':[]};var _0x2fa766=_['map'](db[_0x43dd('0x2c')][_0x43dd('0x2d')],function(_0x16149e){return{'name':_0x16149e[_0x43dd('0x2e')],'type':_0x16149e[_0x43dd('0x2f')]['key']};});_0x590e19[_0x43dd('0x30')]=_['map'](_0x2fa766,_0x43dd('0x29'));_0x590e19[_0x43dd('0x31')]=_[_0x43dd('0x32')](_0x492423[_0x43dd('0x31')]);_0x590e19[_0x43dd('0x33')]=_[_0x43dd('0x34')](_0x590e19[_0x43dd('0x30')],_0x590e19[_0x43dd('0x31')]);_0xc20819['attributes']=_[_0x43dd('0x34')](_0x590e19['model'],qs[_0x43dd('0x35')](_0x492423[_0x43dd('0x31')][_0x43dd('0x35')]));_0xc20819[_0x43dd('0x36')]=_0xc20819[_0x43dd('0x36')][_0x43dd('0x37')]?_0xc20819['attributes']:_0x590e19[_0x43dd('0x30')];if(!_0x492423[_0x43dd('0x31')][_0x43dd('0x38')]('nolimit')){_0xc20819[_0x43dd('0x1e')]=qs[_0x43dd('0x1e')](_0x492423[_0x43dd('0x31')]['limit']);_0xc20819['offset']=qs[_0x43dd('0x1b')](_0x492423[_0x43dd('0x31')][_0x43dd('0x1b')]);}_0xc20819[_0x43dd('0x39')]=qs[_0x43dd('0x3a')](_0x492423[_0x43dd('0x31')][_0x43dd('0x3a')]);_0xc20819[_0x43dd('0x3b')]=qs[_0x43dd('0x33')](_[_0x43dd('0x3c')](_0x492423[_0x43dd('0x31')],_0x590e19[_0x43dd('0x33')]),_0x2fa766);if(_0x492423[_0x43dd('0x31')][_0x43dd('0x3d')]){_0xc20819[_0x43dd('0x3b')]=_[_0x43dd('0x3e')](_0xc20819[_0x43dd('0x3b')],{'$or':_['map'](_0x2fa766,function(_0x123b04){if(_0x123b04[_0x43dd('0x2f')]!==_0x43dd('0x3f')){var _0x323d3d={};_0x323d3d[_0x123b04['name']]={'$like':'%'+_0x492423[_0x43dd('0x31')][_0x43dd('0x3d')]+'%'};return _0x323d3d;}})});}_0xc20819=_[_0x43dd('0x3e')]({},_0xc20819,_0x492423[_0x43dd('0x40')]);var _0x2aa50b={'where':_0xc20819[_0x43dd('0x3b')]};return db['ZohoField']['count'](_0x2aa50b)[_0x43dd('0x25')](function(_0x116a93){_0x1d2d4e[_0x43dd('0x1d')]=_0x116a93;if(_0x492423[_0x43dd('0x31')][_0x43dd('0x41')]){_0xc20819['include']=[{'all':!![]}];}return db[_0x43dd('0x2c')][_0x43dd('0x42')](_0xc20819);})['then'](function(_0x360087){_0x1d2d4e['rows']=_0x360087;return _0x1d2d4e;})[_0x43dd('0x25')](respondWithFilteredResult(_0x53c922,_0xc20819))[_0x43dd('0x43')](handleError(_0x53c922,null));};exports[_0x43dd('0x44')]=function(_0x3eb29f,_0x1339a6){var _0x389483={'raw':!![],'where':{'id':_0x3eb29f['params']['id']}},_0x50f0ba={};_0x50f0ba[_0x43dd('0x30')]=_[_0x43dd('0x32')](db[_0x43dd('0x2c')][_0x43dd('0x2d')]);_0x50f0ba['query']=_[_0x43dd('0x32')](_0x3eb29f['query']);_0x50f0ba[_0x43dd('0x33')]=_['intersection'](_0x50f0ba[_0x43dd('0x30')],_0x50f0ba[_0x43dd('0x31')]);_0x389483[_0x43dd('0x36')]=_[_0x43dd('0x34')](_0x50f0ba[_0x43dd('0x30')],qs['fields'](_0x3eb29f['query'][_0x43dd('0x35')]));_0x389483[_0x43dd('0x36')]=_0x389483[_0x43dd('0x36')][_0x43dd('0x37')]?_0x389483[_0x43dd('0x36')]:_0x50f0ba[_0x43dd('0x30')];if(_0x3eb29f[_0x43dd('0x31')][_0x43dd('0x41')]){_0x389483['include']=[{'all':!![]}];}_0x389483=_[_0x43dd('0x3e')]({},_0x389483,_0x3eb29f['options']);return db[_0x43dd('0x2c')][_0x43dd('0x45')](_0x389483)['then'](handleEntityNotFound(_0x1339a6,null))[_0x43dd('0x25')](respondWithResult(_0x1339a6,null))['catch'](handleError(_0x1339a6,null));};exports[_0x43dd('0x46')]=function(_0x3c6ce1,_0x41db60){return db[_0x43dd('0x2c')][_0x43dd('0x46')](_0x3c6ce1['body'],{})['then'](respondWithResult(_0x41db60,0xc9))[_0x43dd('0x43')](handleError(_0x41db60,null));};exports[_0x43dd('0x47')]=function(_0x47940d,_0x58afbe){if(_0x47940d[_0x43dd('0x48')]['id']){delete _0x47940d[_0x43dd('0x48')]['id'];}return db['ZohoField'][_0x43dd('0x45')]({'where':{'id':_0x47940d[_0x43dd('0x49')]['id']}})[_0x43dd('0x25')](handleEntityNotFound(_0x58afbe,null))[_0x43dd('0x25')](saveUpdates(_0x47940d[_0x43dd('0x48')],null))['then'](respondWithResult(_0x58afbe,null))['catch'](handleError(_0x58afbe,null));};exports[_0x43dd('0x26')]=function(_0x2ecefe,_0x7a2e8b){return db['ZohoField'][_0x43dd('0x45')]({'where':{'id':_0x2ecefe[_0x43dd('0x49')]['id']}})['then'](handleEntityNotFound(_0x7a2e8b,null))[_0x43dd('0x25')](removeEntity(_0x7a2e8b,null))[_0x43dd('0x43')](handleError(_0x7a2e8b,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x896e=['moment','bluebird','request-promise','path','rimraf','../../config/environment','./intZohoField.attributes','exports','define','ZohoField','int_zoho_fields','zoho_unique_index','FieldId','lodash','util','../../config/logger','api'];(function(_0x4e21ba,_0x18097f){var _0x55b94b=function(_0x3b9add){while(--_0x3b9add){_0x4e21ba['push'](_0x4e21ba['shift']());}};_0x55b94b(++_0x18097f);}(_0x896e,0x1e9));var _0xe896=function(_0xde4d92,_0x3569ac){_0xde4d92=_0xde4d92-0x0;var _0x5c96af=_0x896e[_0xde4d92];return _0x5c96af;};'use strict';var _=require(_0xe896('0x0'));var util=require(_0xe896('0x1'));var logger=require(_0xe896('0x2'))(_0xe896('0x3'));var moment=require(_0xe896('0x4'));var BPromise=require(_0xe896('0x5'));var rp=require(_0xe896('0x6'));var fs=require('fs');var path=require(_0xe896('0x7'));var rimraf=require(_0xe896('0x8'));var config=require(_0xe896('0x9'));var attributes=require(_0xe896('0xa'));module[_0xe896('0xb')]=function(_0x52ac80,_0x24c430){return _0x52ac80[_0xe896('0xc')](_0xe896('0xd'),attributes,{'tableName':_0xe896('0xe'),'paranoid':![],'indexes':[{'name':_0xe896('0xf'),'fields':['idField',_0xe896('0x10')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xadb5=['ZohoField','int_zoho_fields','zoho_unique_index','idField','FieldId','util','api','moment','bluebird','path','rimraf','../../config/environment','exports','define'];(function(_0x2641f9,_0x26715f){var _0x585741=function(_0x2d1462){while(--_0x2d1462){_0x2641f9['push'](_0x2641f9['shift']());}};_0x585741(++_0x26715f);}(_0xadb5,0xad));var _0x5adb=function(_0x1b9e70,_0x863024){_0x1b9e70=_0x1b9e70-0x0;var _0x1d1a4e=_0xadb5[_0x1b9e70];return _0x1d1a4e;};'use strict';var _=require('lodash');var util=require(_0x5adb('0x0'));var logger=require('../../config/logger')(_0x5adb('0x1'));var moment=require(_0x5adb('0x2'));var BPromise=require(_0x5adb('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x5adb('0x4'));var rimraf=require(_0x5adb('0x5'));var config=require(_0x5adb('0x6'));var attributes=require('./intZohoField.attributes');module[_0x5adb('0x7')]=function(_0x168d89,_0x3e2555){return _0x168d89[_0x5adb('0x8')](_0x5adb('0x9'),attributes,{'tableName':_0x5adb('0xa'),'paranoid':![],'indexes':[{'name':_0x5adb('0xb'),'fields':[_0x5adb('0xc'),_0x5adb('0xd')],'unique':!![]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6acd=['request\x20sent','debug','ZohoField,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','util','moment','bluebird','../../mysqldb','../../config/logger','../../config/environment','client','http','request','info','ZohoField,\x20%s,\x20%s'];(function(_0x1b70e6,_0x3b8e19){var _0x8e641=function(_0x3bd273){while(--_0x3bd273){_0x1b70e6['push'](_0x1b70e6['shift']());}};_0x8e641(++_0x3b8e19);}(_0x6acd,0x135));var _0xd6ac=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x6acd[_0x321bb2];return _0x9c12ed;};'use strict';var _=require('lodash');var util=require(_0xd6ac('0x0'));var moment=require(_0xd6ac('0x1'));var BPromise=require(_0xd6ac('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0xd6ac('0x3'))['db'];var utils=require('../../config/utils');var logger=require(_0xd6ac('0x4'))('rpc');var config=require(_0xd6ac('0x5'));var jayson=require('jayson/promise');var client=jayson[_0xd6ac('0x6')][_0xd6ac('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x159b89,_0x3562ed,_0x437294){return new BPromise(function(_0x30c205,_0x483469){return client[_0xd6ac('0x8')](_0x159b89,_0x437294)['then'](function(_0x50c2c4){logger[_0xd6ac('0x9')](_0xd6ac('0xa'),_0x3562ed,_0xd6ac('0xb'));logger[_0xd6ac('0xc')](_0xd6ac('0xd'),_0x3562ed,_0xd6ac('0xb'),JSON[_0xd6ac('0xe')](_0x50c2c4));if(_0x50c2c4[_0xd6ac('0xf')]){if(_0x50c2c4[_0xd6ac('0xf')][_0xd6ac('0x10')]===0x1f4){logger[_0xd6ac('0xf')](_0xd6ac('0xa'),_0x3562ed,_0x50c2c4[_0xd6ac('0xf')]['message']);return _0x483469(_0x50c2c4['error'][_0xd6ac('0x11')]);}logger[_0xd6ac('0xf')](_0xd6ac('0xa'),_0x3562ed,_0x50c2c4[_0xd6ac('0xf')]['message']);return _0x30c205(_0x50c2c4['error']['message']);}else{logger[_0xd6ac('0x9')](_0xd6ac('0xa'),_0x3562ed,_0xd6ac('0xb'));_0x30c205(_0x50c2c4[_0xd6ac('0x12')][_0xd6ac('0x11')]);}})[_0xd6ac('0x13')](function(_0x9021bb){logger['error']('ZohoField,\x20%s,\x20%s',_0x3562ed,_0x9021bb);_0x483469(_0x9021bb);});});}
\ No newline at end of file
+var _0x1371=['result','catch','lodash','util','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/environment','jayson/promise','client','http','request','info','ZohoField,\x20%s,\x20%s','request\x20sent','ZohoField,\x20%s,\x20%s,\x20%s','stringify','error','message'];(function(_0x40fbf0,_0xe1b88d){var _0x4654c9=function(_0x4812e1){while(--_0x4812e1){_0x40fbf0['push'](_0x40fbf0['shift']());}};_0x4654c9(++_0xe1b88d);}(_0x1371,0x192));var _0x1137=function(_0x2fa385,_0x79d0d){_0x2fa385=_0x2fa385-0x0;var _0x97ff30=_0x1371[_0x2fa385];return _0x97ff30;};'use strict';var _=require(_0x1137('0x0'));var util=require(_0x1137('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x1137('0x2'));var fs=require('fs');var Redis=require(_0x1137('0x3'));var db=require(_0x1137('0x4'))['db'];var utils=require(_0x1137('0x5'));var logger=require('../../config/logger')('rpc');var config=require(_0x1137('0x6'));var jayson=require(_0x1137('0x7'));var client=jayson[_0x1137('0x8')][_0x1137('0x9')]({'port':0x232a});function respondWithRpcPromise(_0xa6e301,_0xed6b84,_0x5ea334){return new BPromise(function(_0x56346c,_0x297cc4){return client[_0x1137('0xa')](_0xa6e301,_0x5ea334)['then'](function(_0x506e1){logger[_0x1137('0xb')](_0x1137('0xc'),_0xed6b84,_0x1137('0xd'));logger['debug'](_0x1137('0xe'),_0xed6b84,_0x1137('0xd'),JSON[_0x1137('0xf')](_0x506e1));if(_0x506e1[_0x1137('0x10')]){if(_0x506e1[_0x1137('0x10')]['code']===0x1f4){logger[_0x1137('0x10')](_0x1137('0xc'),_0xed6b84,_0x506e1['error'][_0x1137('0x11')]);return _0x297cc4(_0x506e1[_0x1137('0x10')][_0x1137('0x11')]);}logger[_0x1137('0x10')](_0x1137('0xc'),_0xed6b84,_0x506e1[_0x1137('0x10')]['message']);return _0x56346c(_0x506e1[_0x1137('0x10')][_0x1137('0x11')]);}else{logger[_0x1137('0xb')]('ZohoField,\x20%s,\x20%s',_0xed6b84,_0x1137('0xd'));_0x56346c(_0x506e1[_0x1137('0x12')][_0x1137('0x11')]);}})[_0x1137('0x13')](function(_0x5af2d0){logger[_0x1137('0x10')](_0x1137('0xc'),_0xed6b84,_0x5af2d0);_0x297cc4(_0x5af2d0);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x70e0=['../../components/auth/service','../../components/interaction/service','exports','multer','util','path','Router','fs-extra'];(function(_0x5d53c3,_0x321cb){var _0x20a76f=function(_0x199036){while(--_0x199036){_0x5d53c3['push'](_0x5d53c3['shift']());}};_0x20a76f(++_0x321cb);}(_0x70e0,0x17b));var _0x070e=function(_0x351a2b,_0x270ebb){_0x351a2b=_0x351a2b-0x0;var _0x4a0a98=_0x70e0[_0x351a2b];return _0x4a0a98;};'use strict';var multer=require(_0x070e('0x0'));var util=require(_0x070e('0x1'));var path=require(_0x070e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x070e('0x3')]();var fs_extra=require(_0x070e('0x4'));var auth=require(_0x070e('0x5'));var interaction=require(_0x070e('0x6'));var config=require('../../config/environment');module[_0x070e('0x7')]=router;
\ No newline at end of file
+var _0x9c44=['express','Router','fs-extra','../../components/auth/service','exports','path','connect-timeout'];(function(_0x4c5713,_0x1517cf){var _0x46089c=function(_0x37c368){while(--_0x37c368){_0x4c5713['push'](_0x4c5713['shift']());}};_0x46089c(++_0x1517cf);}(_0x9c44,0x178));var _0x49c4=function(_0x5608a3,_0x5b33c5){_0x5608a3=_0x5608a3-0x0;var _0x1ed50a=_0x9c44[_0x5608a3];return _0x1ed50a;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x49c4('0x0'));var timeout=require(_0x49c4('0x1'));var express=require(_0x49c4('0x2'));var router=express[_0x49c4('0x3')]();var fs_extra=require(_0x49c4('0x4'));var auth=require(_0x49c4('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');module[_0x49c4('0x6')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0c02=['sequelize','exports','STRING','unique_name_and_version','INTEGER','BOOLEAN','state'];(function(_0x5b644e,_0x2e5e07){var _0x49c6bf=function(_0x3032d9){while(--_0x3032d9){_0x5b644e['push'](_0x5b644e['shift']());}};_0x49c6bf(++_0x2e5e07);}(_0x0c02,0x142));var _0x20c0=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x0c02[_0x3dd15e];return _0x231fd0;};'use strict';var Sequelize=require(_0x20c0('0x0'));module[_0x20c0('0x1')]={'name':{'type':Sequelize[_0x20c0('0x2')],'allowNull':![],'unique':_0x20c0('0x3')},'version':{'type':Sequelize[_0x20c0('0x2')],'allowNull':![],'unique':_0x20c0('0x3')},'main':{'type':Sequelize[_0x20c0('0x2')],'defaultValue':'app.js'},'filename':{'type':Sequelize['STRING']},'path':{'type':Sequelize[_0x20c0('0x2')]},'type':{'type':Sequelize[_0x20c0('0x2')]},'size':{'type':Sequelize[_0x20c0('0x4')]},'active':{'type':Sequelize[_0x20c0('0x5')],'defaultValue':![]},'author':{'type':Sequelize[_0x20c0('0x2')]},'logo':{'type':Sequelize['STRING']},'state':{'type':Sequelize[_0x20c0('0x2')],'unique':_0x20c0('0x6')},'description':{'type':Sequelize[_0x20c0('0x2')]},'title':{'type':Sequelize[_0x20c0('0x2')]},'remoteUri':{'type':Sequelize[_0x20c0('0x2')]},'link':{'type':Sequelize[_0x20c0('0x2')],'defaultValue':'#'}};
\ No newline at end of file
+var _0xe903=['app.js','INTEGER','BOOLEAN','sequelize','exports','STRING','unique_name_and_version'];(function(_0x25300c,_0x8d65be){var _0x2dd3e4=function(_0x4670fa){while(--_0x4670fa){_0x25300c['push'](_0x25300c['shift']());}};_0x2dd3e4(++_0x8d65be);}(_0xe903,0x17d));var _0x3e90=function(_0x550d12,_0x5384bd){_0x550d12=_0x550d12-0x0;var _0x12103d=_0xe903[_0x550d12];return _0x12103d;};'use strict';var Sequelize=require(_0x3e90('0x0'));module[_0x3e90('0x1')]={'name':{'type':Sequelize[_0x3e90('0x2')],'allowNull':![],'unique':_0x3e90('0x3')},'version':{'type':Sequelize[_0x3e90('0x2')],'allowNull':![],'unique':'unique_name_and_version'},'main':{'type':Sequelize[_0x3e90('0x2')],'defaultValue':_0x3e90('0x4')},'filename':{'type':Sequelize[_0x3e90('0x2')]},'path':{'type':Sequelize[_0x3e90('0x2')]},'type':{'type':Sequelize[_0x3e90('0x2')]},'size':{'type':Sequelize[_0x3e90('0x5')]},'active':{'type':Sequelize[_0x3e90('0x6')],'defaultValue':![]},'author':{'type':Sequelize['STRING']},'logo':{'type':Sequelize['STRING']},'state':{'type':Sequelize['STRING'],'unique':'state'},'description':{'type':Sequelize[_0x3e90('0x2')]},'title':{'type':Sequelize[_0x3e90('0x2')]},'remoteUri':{'type':Sequelize[_0x3e90('0x2')]},'link':{'type':Sequelize[_0x3e90('0x2')],'defaultValue':'#'}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb016=['eml-format','rimraf','request-promise','bluebird','mustache','util','path','to-csv','ejs','fs-extra','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/license/util','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','then','destroy','end','error','name','send','index','map','Integration','type','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','catch','params','update','find','body'];(function(_0x3cfab8,_0x3a7725){var _0x435d4f=function(_0x3fe01b){while(--_0x3fe01b){_0x3cfab8['push'](_0x3cfab8['shift']());}};_0x435d4f(++_0x3a7725);}(_0xb016,0x159));var _0x6b01=function(_0x5d9255,_0x4e0315){_0x5d9255=_0x5d9255-0x0;var _0x9ed62=_0xb016[_0x5d9255];return _0x9ed62;};'use strict';var emlformat=require(_0x6b01('0x0'));var rimraf=require(_0x6b01('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x6b01('0x2'));var moment=require('moment');var BPromise=require(_0x6b01('0x3'));var Mustache=require(_0x6b01('0x4'));var util=require(_0x6b01('0x5'));var path=require(_0x6b01('0x6'));var sox=require('sox');var csv=require(_0x6b01('0x7'));var ejs=require(_0x6b01('0x8'));var fs=require('fs');var fs_extra=require(_0x6b01('0x9'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x6b01('0xa'));var jsforce=require(_0x6b01('0xb'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x6b01('0xc'));var Papa=require(_0x6b01('0xd'));var Redis=require(_0x6b01('0xe'));var authService=require(_0x6b01('0xf'));var qs=require(_0x6b01('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x6b01('0x11'))(_0x6b01('0x12'));var utils=require(_0x6b01('0x13'));var config=require('../../config/environment');var licenseUtil=require(_0x6b01('0x14'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x51f976,_0x26f2a0){_0x26f2a0=_0x26f2a0||0xcc;return function(_0x4fa826){if(_0x4fa826){return _0x51f976[_0x6b01('0x15')](_0x26f2a0);}return _0x51f976[_0x6b01('0x16')](_0x26f2a0)['end']();};}function respondWithResult(_0x2c305e,_0x4ea5fa){_0x4ea5fa=_0x4ea5fa||0xc8;return function(_0x50d778){if(_0x50d778){return _0x2c305e['status'](_0x4ea5fa)[_0x6b01('0x17')](_0x50d778);}};}function respondWithFilteredResult(_0x4cbd38,_0x5b2f60){return function(_0x3a259f){if(_0x3a259f){var _0x327e86=typeof _0x5b2f60[_0x6b01('0x18')]===_0x6b01('0x19')&&typeof _0x5b2f60[_0x6b01('0x1a')]===_0x6b01('0x19');var _0x122769=_0x3a259f[_0x6b01('0x1b')];var _0x9c6571=_0x327e86?0x0:_0x5b2f60[_0x6b01('0x18')];var _0x18f336=_0x327e86?_0x3a259f['count']:_0x5b2f60[_0x6b01('0x18')]+_0x5b2f60[_0x6b01('0x1a')];var _0x3b0bab;if(_0x18f336>=_0x122769){_0x18f336=_0x122769;_0x3b0bab=0xc8;}else{_0x3b0bab=0xce;}_0x4cbd38[_0x6b01('0x16')](_0x3b0bab);return _0x4cbd38[_0x6b01('0x1c')](_0x6b01('0x1d'),_0x9c6571+'-'+_0x18f336+'/'+_0x122769)[_0x6b01('0x17')](_0x3a259f);}return null;};}function patchUpdates(_0x3c0573){return function(_0x54a942){try{jsonpatch[_0x6b01('0x1e')](_0x54a942,_0x3c0573,!![]);}catch(_0xc1f453){return BPromise[_0x6b01('0x1f')](_0xc1f453);}return _0x54a942[_0x6b01('0x20')]();};}function saveUpdates(_0x1fced4,_0x181b09){return function(_0x2cea6e){if(_0x2cea6e){return _0x2cea6e['update'](_0x1fced4)[_0x6b01('0x21')](function(_0xcf9200){return _0xcf9200;});}return null;};}function removeEntity(_0x42c990,_0x51243c){return function(_0x399808){if(_0x399808){return _0x399808[_0x6b01('0x22')]()[_0x6b01('0x21')](function(){_0x42c990[_0x6b01('0x16')](0xcc)[_0x6b01('0x23')]();});}};}function handleEntityNotFound(_0x2456e9,_0x1b46fb){return function(_0x136452){if(!_0x136452){_0x2456e9[_0x6b01('0x15')](0x194);}return _0x136452;};}function handleError(_0x152dda,_0x3c0607){_0x3c0607=_0x3c0607||0x1f4;return function(_0xa846d8){logger[_0x6b01('0x24')](_0xa846d8['stack']);if(_0xa846d8[_0x6b01('0x25')]){delete _0xa846d8[_0x6b01('0x25')];}_0x152dda[_0x6b01('0x16')](_0x3c0607)[_0x6b01('0x26')](_0xa846d8);};}exports[_0x6b01('0x27')]=function(_0x528cbd,_0x54f030){var _0x3fae61={},_0x3df3d4={},_0xc574c={'count':0x0,'rows':[]};var _0x8883d1=_[_0x6b01('0x28')](db[_0x6b01('0x29')]['rawAttributes'],function(_0x39f193){return{'name':_0x39f193['fieldName'],'type':_0x39f193[_0x6b01('0x2a')]['key']};});_0x3df3d4[_0x6b01('0x2b')]=_[_0x6b01('0x28')](_0x8883d1,_0x6b01('0x25'));_0x3df3d4[_0x6b01('0x2c')]=_[_0x6b01('0x2d')](_0x528cbd['query']);_0x3df3d4[_0x6b01('0x2e')]=_[_0x6b01('0x2f')](_0x3df3d4[_0x6b01('0x2b')],_0x3df3d4['query']);_0x3fae61['attributes']=_[_0x6b01('0x2f')](_0x3df3d4['model'],qs[_0x6b01('0x30')](_0x528cbd[_0x6b01('0x2c')][_0x6b01('0x30')]));_0x3fae61['attributes']=_0x3fae61[_0x6b01('0x31')][_0x6b01('0x32')]?_0x3fae61[_0x6b01('0x31')]:_0x3df3d4['model'];if(!_0x528cbd[_0x6b01('0x2c')][_0x6b01('0x33')](_0x6b01('0x34'))){_0x3fae61[_0x6b01('0x1a')]=qs[_0x6b01('0x1a')](_0x528cbd['query'][_0x6b01('0x1a')]);_0x3fae61[_0x6b01('0x18')]=qs[_0x6b01('0x18')](_0x528cbd[_0x6b01('0x2c')][_0x6b01('0x18')]);}_0x3fae61[_0x6b01('0x35')]=qs[_0x6b01('0x36')](_0x528cbd[_0x6b01('0x2c')]['sort']);_0x3fae61[_0x6b01('0x37')]=qs['filters'](_[_0x6b01('0x38')](_0x528cbd[_0x6b01('0x2c')],_0x3df3d4[_0x6b01('0x2e')]),_0x8883d1);if(_0x528cbd[_0x6b01('0x2c')][_0x6b01('0x39')]){_0x3fae61[_0x6b01('0x37')]=_[_0x6b01('0x3a')](_0x3fae61['where'],{'$or':_[_0x6b01('0x28')](_0x8883d1,function(_0x15f274){if(_0x15f274[_0x6b01('0x2a')]!==_0x6b01('0x3b')){var _0x1ca3aa={};_0x1ca3aa[_0x15f274[_0x6b01('0x25')]]={'$like':'%'+_0x528cbd[_0x6b01('0x2c')][_0x6b01('0x39')]+'%'};return _0x1ca3aa;}})});}_0x3fae61=_['merge']({},_0x3fae61,_0x528cbd[_0x6b01('0x3c')]);var _0x55907f={'where':_0x3fae61[_0x6b01('0x37')]};return db[_0x6b01('0x29')]['count'](_0x55907f)[_0x6b01('0x21')](function(_0x2e661b){_0xc574c[_0x6b01('0x1b')]=_0x2e661b;if(_0x528cbd[_0x6b01('0x2c')][_0x6b01('0x3d')]){_0x3fae61[_0x6b01('0x3e')]=[{'all':!![]}];}return db[_0x6b01('0x29')][_0x6b01('0x3f')](_0x3fae61);})[_0x6b01('0x21')](function(_0x17f335){_0xc574c['rows']=_0x17f335;return _0xc574c;})[_0x6b01('0x21')](respondWithFilteredResult(_0x54f030,_0x3fae61))[_0x6b01('0x40')](handleError(_0x54f030,null));};exports['show']=function(_0x52cec0,_0x32b9ec){var _0xd11195={'raw':![],'where':{'id':_0x52cec0[_0x6b01('0x41')]['id']}},_0x558ec1={};_0x558ec1[_0x6b01('0x2b')]=_['keys'](db[_0x6b01('0x29')]['rawAttributes']);_0x558ec1[_0x6b01('0x2c')]=_[_0x6b01('0x2d')](_0x52cec0[_0x6b01('0x2c')]);_0x558ec1['filters']=_[_0x6b01('0x2f')](_0x558ec1[_0x6b01('0x2b')],_0x558ec1['query']);_0xd11195['attributes']=_['intersection'](_0x558ec1[_0x6b01('0x2b')],qs[_0x6b01('0x30')](_0x52cec0[_0x6b01('0x2c')][_0x6b01('0x30')]));_0xd11195[_0x6b01('0x31')]=_0xd11195[_0x6b01('0x31')]['length']?_0xd11195[_0x6b01('0x31')]:_0x558ec1[_0x6b01('0x2b')];if(_0x52cec0[_0x6b01('0x2c')][_0x6b01('0x3d')]){_0xd11195[_0x6b01('0x3e')]=[{'all':!![]}];}_0xd11195=_[_0x6b01('0x3a')]({},_0xd11195,_0x52cec0['options']);return db[_0x6b01('0x29')]['find'](_0xd11195)['then'](handleEntityNotFound(_0x32b9ec,null))[_0x6b01('0x21')](respondWithResult(_0x32b9ec,null))[_0x6b01('0x40')](handleError(_0x32b9ec,null));};exports['create']=function(_0x408bb0,_0x27442e){return db[_0x6b01('0x29')]['create'](_0x408bb0['body'],{})['then'](respondWithResult(_0x27442e,0xc9))[_0x6b01('0x40')](handleError(_0x27442e,null));};exports[_0x6b01('0x42')]=function(_0x518d94,_0x34cef6){if(_0x518d94['body']['id']){delete _0x518d94['body']['id'];}return db['Integration'][_0x6b01('0x43')]({'where':{'id':_0x518d94[_0x6b01('0x41')]['id']}})['then'](handleEntityNotFound(_0x34cef6,null))['then'](saveUpdates(_0x518d94[_0x6b01('0x44')],null))['then'](respondWithResult(_0x34cef6,null))[_0x6b01('0x40')](handleError(_0x34cef6,null));};exports[_0x6b01('0x22')]=function(_0x32d446,_0x172a56){return db[_0x6b01('0x29')]['find']({'where':{'id':_0x32d446[_0x6b01('0x41')]['id']}})[_0x6b01('0x21')](handleEntityNotFound(_0x172a56,null))[_0x6b01('0x21')](removeEntity(_0x172a56,null))['catch'](handleError(_0x172a56,null));};
\ No newline at end of file
+var _0x687b=['order','sort','where','filter','VIRTUAL','options','include','findAll','rows','show','length','includeAll','merge','find','catch','create','body','params','eml-format','rimraf','zip-dir','fast-json-patch','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','Content-Range','save','update','then','destroy','end','error','stack','name','send','index','map','Integration','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit'];(function(_0x1938f4,_0x5c0c98){var _0x37f4db=function(_0x5bec0c){while(--_0x5bec0c){_0x1938f4['push'](_0x1938f4['shift']());}};_0x37f4db(++_0x5c0c98);}(_0x687b,0x14a));var _0xb687=function(_0x4ef1b6,_0x502ac2){_0x4ef1b6=_0x4ef1b6-0x0;var _0x164c1f=_0x687b[_0x4ef1b6];return _0x164c1f;};'use strict';var emlformat=require(_0xb687('0x0'));var rimraf=require(_0xb687('0x1'));var zipdir=require(_0xb687('0x2'));var jsonpatch=require(_0xb687('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xb687('0x4'));var Mustache=require(_0xb687('0x5'));var util=require(_0xb687('0x6'));var path=require(_0xb687('0x7'));var sox=require(_0xb687('0x8'));var csv=require(_0xb687('0x9'));var ejs=require(_0xb687('0xa'));var fs=require('fs');var fs_extra=require(_0xb687('0xb'));var _=require(_0xb687('0xc'));var squel=require(_0xb687('0xd'));var crypto=require('crypto');var jsforce=require(_0xb687('0xe'));var deskjs=require(_0xb687('0xf'));var toCsv=require('to-csv');var querystring=require(_0xb687('0x10'));var Papa=require(_0xb687('0x11'));var Redis=require(_0xb687('0x12'));var authService=require(_0xb687('0x13'));var qs=require(_0xb687('0x14'));var as=require(_0xb687('0x15'));var hardwareService=require(_0xb687('0x16'));var logger=require(_0xb687('0x17'))(_0xb687('0x18'));var utils=require('../../config/utils');var config=require(_0xb687('0x19'));var licenseUtil=require(_0xb687('0x1a'));var db=require(_0xb687('0x1b'))['db'];function respondWithStatusCode(_0x12a0be,_0x4f9c19){_0x4f9c19=_0x4f9c19||0xcc;return function(_0x4c97ed){if(_0x4c97ed){return _0x12a0be[_0xb687('0x1c')](_0x4f9c19);}return _0x12a0be[_0xb687('0x1d')](_0x4f9c19)['end']();};}function respondWithResult(_0x108fd0,_0x2f1ac0){_0x2f1ac0=_0x2f1ac0||0xc8;return function(_0x1f1f35){if(_0x1f1f35){return _0x108fd0[_0xb687('0x1d')](_0x2f1ac0)[_0xb687('0x1e')](_0x1f1f35);}};}function respondWithFilteredResult(_0x3ab914,_0x30622f){return function(_0x141375){if(_0x141375){var _0x263085=typeof _0x30622f[_0xb687('0x1f')]===_0xb687('0x20')&&typeof _0x30622f[_0xb687('0x21')]==='undefined';var _0x214b06=_0x141375[_0xb687('0x22')];var _0x30d370=_0x263085?0x0:_0x30622f['offset'];var _0x48958d=_0x263085?_0x141375[_0xb687('0x22')]:_0x30622f[_0xb687('0x1f')]+_0x30622f[_0xb687('0x21')];var _0x4b593b;if(_0x48958d>=_0x214b06){_0x48958d=_0x214b06;_0x4b593b=0xc8;}else{_0x4b593b=0xce;}_0x3ab914[_0xb687('0x1d')](_0x4b593b);return _0x3ab914['set'](_0xb687('0x23'),_0x30d370+'-'+_0x48958d+'/'+_0x214b06)[_0xb687('0x1e')](_0x141375);}return null;};}function patchUpdates(_0x170dc0){return function(_0x44bd0b){try{jsonpatch['apply'](_0x44bd0b,_0x170dc0,!![]);}catch(_0x3a73d5){return BPromise['reject'](_0x3a73d5);}return _0x44bd0b[_0xb687('0x24')]();};}function saveUpdates(_0x90e892,_0x274241){return function(_0x546fde){if(_0x546fde){return _0x546fde[_0xb687('0x25')](_0x90e892)[_0xb687('0x26')](function(_0xa95e91){return _0xa95e91;});}return null;};}function removeEntity(_0x16cdcb,_0xbf6c58){return function(_0x38866c){if(_0x38866c){return _0x38866c[_0xb687('0x27')]()[_0xb687('0x26')](function(){_0x16cdcb['status'](0xcc)[_0xb687('0x28')]();});}};}function handleEntityNotFound(_0x129347,_0x1c1585){return function(_0x1a0261){if(!_0x1a0261){_0x129347[_0xb687('0x1c')](0x194);}return _0x1a0261;};}function handleError(_0x4136c9,_0x17ff2b){_0x17ff2b=_0x17ff2b||0x1f4;return function(_0x3cb2f2){logger[_0xb687('0x29')](_0x3cb2f2[_0xb687('0x2a')]);if(_0x3cb2f2['name']){delete _0x3cb2f2[_0xb687('0x2b')];}_0x4136c9[_0xb687('0x1d')](_0x17ff2b)[_0xb687('0x2c')](_0x3cb2f2);};}exports[_0xb687('0x2d')]=function(_0x2e5c8d,_0x173c58){var _0x4e9a06={},_0x28b69a={},_0x5143af={'count':0x0,'rows':[]};var _0x360429=_[_0xb687('0x2e')](db[_0xb687('0x2f')][_0xb687('0x30')],function(_0x1ad3ef){return{'name':_0x1ad3ef[_0xb687('0x31')],'type':_0x1ad3ef[_0xb687('0x32')]['key']};});_0x28b69a[_0xb687('0x33')]=_[_0xb687('0x2e')](_0x360429,_0xb687('0x2b'));_0x28b69a[_0xb687('0x34')]=_[_0xb687('0x35')](_0x2e5c8d[_0xb687('0x34')]);_0x28b69a[_0xb687('0x36')]=_[_0xb687('0x37')](_0x28b69a[_0xb687('0x33')],_0x28b69a[_0xb687('0x34')]);_0x4e9a06[_0xb687('0x38')]=_['intersection'](_0x28b69a['model'],qs[_0xb687('0x39')](_0x2e5c8d[_0xb687('0x34')][_0xb687('0x39')]));_0x4e9a06[_0xb687('0x38')]=_0x4e9a06['attributes']['length']?_0x4e9a06[_0xb687('0x38')]:_0x28b69a[_0xb687('0x33')];if(!_0x2e5c8d['query'][_0xb687('0x3a')](_0xb687('0x3b'))){_0x4e9a06['limit']=qs[_0xb687('0x21')](_0x2e5c8d['query'][_0xb687('0x21')]);_0x4e9a06[_0xb687('0x1f')]=qs[_0xb687('0x1f')](_0x2e5c8d[_0xb687('0x34')][_0xb687('0x1f')]);}_0x4e9a06[_0xb687('0x3c')]=qs['sort'](_0x2e5c8d[_0xb687('0x34')][_0xb687('0x3d')]);_0x4e9a06[_0xb687('0x3e')]=qs[_0xb687('0x36')](_['pick'](_0x2e5c8d[_0xb687('0x34')],_0x28b69a[_0xb687('0x36')]),_0x360429);if(_0x2e5c8d[_0xb687('0x34')][_0xb687('0x3f')]){_0x4e9a06[_0xb687('0x3e')]=_['merge'](_0x4e9a06[_0xb687('0x3e')],{'$or':_[_0xb687('0x2e')](_0x360429,function(_0x24c013){if(_0x24c013[_0xb687('0x32')]!==_0xb687('0x40')){var _0x29cf09={};_0x29cf09[_0x24c013['name']]={'$like':'%'+_0x2e5c8d['query'][_0xb687('0x3f')]+'%'};return _0x29cf09;}})});}_0x4e9a06=_['merge']({},_0x4e9a06,_0x2e5c8d[_0xb687('0x41')]);var _0x2f4550={'where':_0x4e9a06['where']};return db[_0xb687('0x2f')][_0xb687('0x22')](_0x2f4550)['then'](function(_0x394b56){_0x5143af[_0xb687('0x22')]=_0x394b56;if(_0x2e5c8d[_0xb687('0x34')]['includeAll']){_0x4e9a06[_0xb687('0x42')]=[{'all':!![]}];}return db[_0xb687('0x2f')][_0xb687('0x43')](_0x4e9a06);})[_0xb687('0x26')](function(_0x140388){_0x5143af[_0xb687('0x44')]=_0x140388;return _0x5143af;})[_0xb687('0x26')](respondWithFilteredResult(_0x173c58,_0x4e9a06))['catch'](handleError(_0x173c58,null));};exports[_0xb687('0x45')]=function(_0x4cf6ad,_0x50fdb7){var _0xa3a9e0={'raw':![],'where':{'id':_0x4cf6ad['params']['id']}},_0x430364={};_0x430364[_0xb687('0x33')]=_['keys'](db[_0xb687('0x2f')][_0xb687('0x30')]);_0x430364['query']=_[_0xb687('0x35')](_0x4cf6ad[_0xb687('0x34')]);_0x430364['filters']=_[_0xb687('0x37')](_0x430364[_0xb687('0x33')],_0x430364[_0xb687('0x34')]);_0xa3a9e0[_0xb687('0x38')]=_[_0xb687('0x37')](_0x430364[_0xb687('0x33')],qs[_0xb687('0x39')](_0x4cf6ad[_0xb687('0x34')][_0xb687('0x39')]));_0xa3a9e0[_0xb687('0x38')]=_0xa3a9e0[_0xb687('0x38')][_0xb687('0x46')]?_0xa3a9e0['attributes']:_0x430364[_0xb687('0x33')];if(_0x4cf6ad['query'][_0xb687('0x47')]){_0xa3a9e0[_0xb687('0x42')]=[{'all':!![]}];}_0xa3a9e0=_[_0xb687('0x48')]({},_0xa3a9e0,_0x4cf6ad[_0xb687('0x41')]);return db[_0xb687('0x2f')][_0xb687('0x49')](_0xa3a9e0)['then'](handleEntityNotFound(_0x50fdb7,null))['then'](respondWithResult(_0x50fdb7,null))[_0xb687('0x4a')](handleError(_0x50fdb7,null));};exports[_0xb687('0x4b')]=function(_0x40558a,_0x4f3069){return db['Integration'][_0xb687('0x4b')](_0x40558a[_0xb687('0x4c')],{})[_0xb687('0x26')](respondWithResult(_0x4f3069,0xc9))[_0xb687('0x4a')](handleError(_0x4f3069,null));};exports['update']=function(_0x33a0b0,_0xfc4c5f){if(_0x33a0b0[_0xb687('0x4c')]['id']){delete _0x33a0b0[_0xb687('0x4c')]['id'];}return db['Integration']['find']({'where':{'id':_0x33a0b0[_0xb687('0x4d')]['id']}})[_0xb687('0x26')](handleEntityNotFound(_0xfc4c5f,null))[_0xb687('0x26')](saveUpdates(_0x33a0b0['body'],null))['then'](respondWithResult(_0xfc4c5f,null))[_0xb687('0x4a')](handleError(_0xfc4c5f,null));};exports[_0xb687('0x27')]=function(_0xd5bdb7,_0x22e618){return db[_0xb687('0x2f')][_0xb687('0x49')]({'where':{'id':_0xd5bdb7[_0xb687('0x4d')]['id']}})[_0xb687('0x26')](handleEntityNotFound(_0x22e618,null))['then'](removeEntity(_0x22e618,null))[_0xb687('0x4a')](handleError(_0x22e618,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9cf7=['./integration.attributes','exports','define','Integration','integrations','lodash','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment'];(function(_0x49d32f,_0xb037af){var _0x40b600=function(_0x192f8f){while(--_0x192f8f){_0x49d32f['push'](_0x49d32f['shift']());}};_0x40b600(++_0xb037af);}(_0x9cf7,0x17f));var _0x79cf=function(_0xa1e3e3,_0x29fe0e){_0xa1e3e3=_0xa1e3e3-0x0;var _0xc980e9=_0x9cf7[_0xa1e3e3];return _0xc980e9;};'use strict';var _=require(_0x79cf('0x0'));var util=require('util');var logger=require(_0x79cf('0x1'))(_0x79cf('0x2'));var moment=require(_0x79cf('0x3'));var BPromise=require(_0x79cf('0x4'));var rp=require(_0x79cf('0x5'));var fs=require('fs');var path=require(_0x79cf('0x6'));var rimraf=require(_0x79cf('0x7'));var config=require(_0x79cf('0x8'));var attributes=require(_0x79cf('0x9'));module[_0x79cf('0xa')]=function(_0x526284,_0x3e40d4){return _0x526284[_0x79cf('0xb')](_0x79cf('0xc'),attributes,{'tableName':_0x79cf('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x93bb=['api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./integration.attributes','exports','define','Integration','lodash'];(function(_0x24a877,_0x11d8c8){var _0x2c919b=function(_0x38c7ef){while(--_0x38c7ef){_0x24a877['push'](_0x24a877['shift']());}};_0x2c919b(++_0x11d8c8);}(_0x93bb,0x1d3));var _0xb93b=function(_0x4b37d6,_0x1acade){_0x4b37d6=_0x4b37d6-0x0;var _0x53584b=_0x93bb[_0x4b37d6];return _0x53584b;};'use strict';var _=require(_0xb93b('0x0'));var util=require('util');var logger=require('../../config/logger')(_0xb93b('0x1'));var moment=require(_0xb93b('0x2'));var BPromise=require(_0xb93b('0x3'));var rp=require(_0xb93b('0x4'));var fs=require('fs');var path=require(_0xb93b('0x5'));var rimraf=require(_0xb93b('0x6'));var config=require(_0xb93b('0x7'));var attributes=require(_0xb93b('0x8'));module[_0xb93b('0x9')]=function(_0x4457fd,_0xadba56){return _0x4457fd[_0xb93b('0xa')](_0xb93b('0xb'),attributes,{'tableName':'integrations','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdb28=['moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','request','then','Integration,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','info','catch','lodash','util'];(function(_0x3ae775,_0x4105b1){var _0x3abce1=function(_0x244511){while(--_0x244511){_0x3ae775['push'](_0x3ae775['shift']());}};_0x3abce1(++_0x4105b1);}(_0xdb28,0x106));var _0x8db2=function(_0x38a775,_0x525e25){_0x38a775=_0x38a775-0x0;var _0x559d9a=_0xdb28[_0x38a775];return _0x559d9a;};'use strict';var _=require(_0x8db2('0x0'));var util=require(_0x8db2('0x1'));var moment=require(_0x8db2('0x2'));var BPromise=require(_0x8db2('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x8db2('0x4'));var db=require(_0x8db2('0x5'))['db'];var utils=require(_0x8db2('0x6'));var logger=require(_0x8db2('0x7'))(_0x8db2('0x8'));var config=require('../../config/environment');var jayson=require(_0x8db2('0x9'));var client=jayson[_0x8db2('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x494b40,_0x477f50,_0x46932f){return new BPromise(function(_0x131537,_0x29f698){return client[_0x8db2('0xb')](_0x494b40,_0x46932f)[_0x8db2('0xc')](function(_0x126c78){logger['info'](_0x8db2('0xd'),_0x477f50,_0x8db2('0xe'));logger[_0x8db2('0xf')]('Integration,\x20%s,\x20%s,\x20%s',_0x477f50,_0x8db2('0xe'),JSON[_0x8db2('0x10')](_0x126c78));if(_0x126c78['error']){if(_0x126c78[_0x8db2('0x11')][_0x8db2('0x12')]===0x1f4){logger[_0x8db2('0x11')](_0x8db2('0xd'),_0x477f50,_0x126c78[_0x8db2('0x11')]['message']);return _0x29f698(_0x126c78['error'][_0x8db2('0x13')]);}logger[_0x8db2('0x11')](_0x8db2('0xd'),_0x477f50,_0x126c78[_0x8db2('0x11')][_0x8db2('0x13')]);return _0x131537(_0x126c78[_0x8db2('0x11')][_0x8db2('0x13')]);}else{logger[_0x8db2('0x14')](_0x8db2('0xd'),_0x477f50,_0x8db2('0xe'));_0x131537(_0x126c78['result'][_0x8db2('0x13')]);}})[_0x8db2('0x15')](function(_0x48101e){logger[_0x8db2('0x11')](_0x8db2('0xd'),_0x477f50,_0x48101e);_0x29f698(_0x48101e);});});}
\ No newline at end of file
+var _0x0b0e=['Integration,\x20%s,\x20%s,\x20%s','stringify','error','message','request\x20sent','result','catch','lodash','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','Integration,\x20%s,\x20%s','debug'];(function(_0x1fb1c1,_0x4ebe69){var _0x1622df=function(_0x52b793){while(--_0x52b793){_0x1fb1c1['push'](_0x1fb1c1['shift']());}};_0x1622df(++_0x4ebe69);}(_0x0b0e,0x187));var _0xe0b0=function(_0x1602fb,_0x20b6b3){_0x1602fb=_0x1602fb-0x0;var _0x461831=_0x0b0e[_0x1602fb];return _0x461831;};'use strict';var _=require(_0xe0b0('0x0'));var util=require('util');var moment=require(_0xe0b0('0x1'));var BPromise=require('bluebird');var rs=require(_0xe0b0('0x2'));var fs=require('fs');var Redis=require(_0xe0b0('0x3'));var db=require(_0xe0b0('0x4'))['db'];var utils=require(_0xe0b0('0x5'));var logger=require(_0xe0b0('0x6'))(_0xe0b0('0x7'));var config=require(_0xe0b0('0x8'));var jayson=require(_0xe0b0('0x9'));var client=jayson[_0xe0b0('0xa')][_0xe0b0('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x219b1c,_0x5cf9cc,_0x50be7f){return new BPromise(function(_0x11effc,_0x435060){return client[_0xe0b0('0xc')](_0x219b1c,_0x50be7f)[_0xe0b0('0xd')](function(_0x4c24f9){logger[_0xe0b0('0xe')](_0xe0b0('0xf'),_0x5cf9cc,'request\x20sent');logger[_0xe0b0('0x10')](_0xe0b0('0x11'),_0x5cf9cc,'request\x20sent',JSON[_0xe0b0('0x12')](_0x4c24f9));if(_0x4c24f9[_0xe0b0('0x13')]){if(_0x4c24f9[_0xe0b0('0x13')]['code']===0x1f4){logger[_0xe0b0('0x13')](_0xe0b0('0xf'),_0x5cf9cc,_0x4c24f9[_0xe0b0('0x13')][_0xe0b0('0x14')]);return _0x435060(_0x4c24f9[_0xe0b0('0x13')]['message']);}logger[_0xe0b0('0x13')](_0xe0b0('0xf'),_0x5cf9cc,_0x4c24f9[_0xe0b0('0x13')][_0xe0b0('0x14')]);return _0x11effc(_0x4c24f9[_0xe0b0('0x13')]['message']);}else{logger[_0xe0b0('0xe')]('Integration,\x20%s,\x20%s',_0x5cf9cc,_0xe0b0('0x15'));_0x11effc(_0x4c24f9[_0xe0b0('0x16')]['message']);}})[_0xe0b0('0x17')](function(_0x4a4cc0){logger[_0xe0b0('0x13')](_0xe0b0('0xf'),_0x5cf9cc,_0x4a4cc0);_0x435060(_0x4a4cc0);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x524e=['express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./integrationReport.controller','get','index','/describe','describe','/:id','isAuthenticated','show','post','create','put','update','delete','destroy','path','connect-timeout'];(function(_0xa6140b,_0xf2ae89){var _0x5ddb54=function(_0xcd7b06){while(--_0xcd7b06){_0xa6140b['push'](_0xa6140b['shift']());}};_0x5ddb54(++_0xf2ae89);}(_0x524e,0x15e));var _0xe524=function(_0x899223,_0x10c0f9){_0x899223=_0x899223-0x0;var _0xa4d71e=_0x524e[_0x899223];return _0xa4d71e;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0xe524('0x0'));var timeout=require(_0xe524('0x1'));var express=require(_0xe524('0x2'));var router=express[_0xe524('0x3')]();var fs_extra=require(_0xe524('0x4'));var auth=require(_0xe524('0x5'));var interaction=require(_0xe524('0x6'));var config=require(_0xe524('0x7'));var controller=require(_0xe524('0x8'));router[_0xe524('0x9')]('/',auth['isAuthenticated'](),controller[_0xe524('0xa')]);router[_0xe524('0x9')](_0xe524('0xb'),auth['isAuthenticated'](),controller[_0xe524('0xc')]);router[_0xe524('0x9')](_0xe524('0xd'),auth[_0xe524('0xe')](),controller[_0xe524('0xf')]);router[_0xe524('0x10')]('/',auth[_0xe524('0xe')](),controller[_0xe524('0x11')]);router[_0xe524('0x12')](_0xe524('0xd'),auth[_0xe524('0xe')](),controller[_0xe524('0x13')]);router[_0xe524('0x14')](_0xe524('0xd'),auth[_0xe524('0xe')](),controller[_0xe524('0x15')]);module['exports']=router;
\ No newline at end of file
+var _0xda2d=['show','create','put','/:id','update','delete','util','path','connect-timeout','express','Router','../../config/environment','./integrationReport.controller','get','isAuthenticated','index','/describe','describe'];(function(_0x5b561d,_0x422b7c){var _0x431060=function(_0x401409){while(--_0x401409){_0x5b561d['push'](_0x5b561d['shift']());}};_0x431060(++_0x422b7c);}(_0xda2d,0x102));var _0xdda2=function(_0xf4d50f,_0x2cef7f){_0xf4d50f=_0xf4d50f-0x0;var _0x39560e=_0xda2d[_0xf4d50f];return _0x39560e;};'use strict';var multer=require('multer');var util=require(_0xdda2('0x0'));var path=require(_0xdda2('0x1'));var timeout=require(_0xdda2('0x2'));var express=require(_0xdda2('0x3'));var router=express[_0xdda2('0x4')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0xdda2('0x5'));var controller=require(_0xdda2('0x6'));router[_0xdda2('0x7')]('/',auth[_0xdda2('0x8')](),controller[_0xdda2('0x9')]);router[_0xdda2('0x7')](_0xdda2('0xa'),auth[_0xdda2('0x8')](),controller[_0xdda2('0xb')]);router[_0xdda2('0x7')]('/:id',auth[_0xdda2('0x8')](),controller[_0xdda2('0xc')]);router['post']('/',auth[_0xdda2('0x8')](),controller[_0xdda2('0xd')]);router[_0xdda2('0xe')](_0xdda2('0xf'),auth[_0xdda2('0x8')](),controller[_0xdda2('0x10')]);router[_0xdda2('0x11')](_0xdda2('0xf'),auth['isAuthenticated'](),controller['destroy']);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd6fa=['sequelize','STRING','INTEGER','DATE','BOOLEAN','TEXT','FAILED'];(function(_0x3305de,_0x16582f){var _0x3b5a84=function(_0x57d7e1){while(--_0x57d7e1){_0x3305de['push'](_0x3305de['shift']());}};_0x3b5a84(++_0x16582f);}(_0xd6fa,0x1b9));var _0xad6f=function(_0x5585a6,_0x1ad47d){_0x5585a6=_0x5585a6-0x0;var _0x36a760=_0xd6fa[_0x5585a6];return _0x36a760;};'use strict';var Sequelize=require(_0xad6f('0x0'));module['exports']={'integration':{'type':Sequelize[_0xad6f('0x1')]},'eventChannel':{'type':Sequelize[_0xad6f('0x1')]},'exitStatus':{'type':Sequelize[_0xad6f('0x1')]},'ticketId':{'type':Sequelize[_0xad6f('0x1')]},'integrationId':{'type':Sequelize[_0xad6f('0x2')]},'contacts':{'type':Sequelize['STRING']},'uniqueid':{'type':Sequelize['STRING']},'calleridnum':{'type':Sequelize[_0xad6f('0x1')]},'calleridname':{'type':Sequelize[_0xad6f('0x1')]},'queue':{'type':Sequelize['STRING']},'interface':{'type':Sequelize[_0xad6f('0x1')]},'membername':{'type':Sequelize[_0xad6f('0x1')]},'agentcalledAt':{'type':Sequelize[_0xad6f('0x3')]},'agentconnectAt':{'type':Sequelize['DATE']},'holdtime':{'type':Sequelize[_0xad6f('0x2')]},'agentcomplete':{'type':Sequelize[_0xad6f('0x4')],'defaultValue':![]},'agentcompleteAt':{'type':Sequelize[_0xad6f('0x3')]},'talktime':{'type':Sequelize[_0xad6f('0x2')]},'agentacw':{'type':Sequelize[_0xad6f('0x4')],'defaultValue':![]},'acwtime':{'type':Sequelize['INTEGER']},'reason':{'type':Sequelize['STRING']},'agentringnoanswer':{'type':Sequelize[_0xad6f('0x4')],'defaultValue':![]},'agentringnoanswerAt':{'type':Sequelize[_0xad6f('0x3')]},'agentdump':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'agentdumpAt':{'type':Sequelize[_0xad6f('0x3')]},'lastevent':{'type':Sequelize[_0xad6f('0x1')]},'channel':{'type':Sequelize[_0xad6f('0x1')]},'channelstate':{'type':Sequelize[_0xad6f('0x2')]},'channelstatedesc':{'type':Sequelize[_0xad6f('0x1')]},'connectedlinenum':{'type':Sequelize['STRING']},'connectedlinename':{'type':Sequelize['STRING']},'language':{'type':Sequelize[_0xad6f('0x1')]},'accountcode':{'type':Sequelize[_0xad6f('0x1')]},'context':{'type':Sequelize['STRING']},'exten':{'type':Sequelize[_0xad6f('0x1')]},'priority':{'type':Sequelize['STRING']},'destchannel':{'type':Sequelize[_0xad6f('0x1')]},'destchannelstate':{'type':Sequelize[_0xad6f('0x2')]},'destchannelstatedesc':{'type':Sequelize[_0xad6f('0x1')]},'destcalleridnum':{'type':Sequelize[_0xad6f('0x1')]},'destcalleridname':{'type':Sequelize['STRING']},'destconnectedlinenum':{'type':Sequelize[_0xad6f('0x1')]},'destconnectedlinename':{'type':Sequelize['STRING']},'destlanguage':{'type':Sequelize[_0xad6f('0x1')]},'destaccountcode':{'type':Sequelize[_0xad6f('0x1')]},'destcontext':{'type':Sequelize[_0xad6f('0x1')]},'destexten':{'type':Sequelize[_0xad6f('0x1')]},'destpriority':{'type':Sequelize[_0xad6f('0x1')]},'destuniqueid':{'type':Sequelize[_0xad6f('0x1')]},'messageId':{'type':Sequelize['STRING']},'inReplyTo':{'type':Sequelize['STRING']},'subject':{'type':Sequelize[_0xad6f('0x1')]},'from':{'type':Sequelize[_0xad6f('0x1')]},'to':{'type':Sequelize[_0xad6f('0x1')]},'cc':{'type':Sequelize[_0xad6f('0x1')]},'attachment':{'type':Sequelize[_0xad6f('0x5')]},'html':{'type':Sequelize[_0xad6f('0x5')]},'text':{'type':Sequelize[_0xad6f('0x5')]},'status':{'type':Sequelize['ENUM']('SENT','SENDING','RECEIVED',_0xad6f('0x6'))},'url':{'type':Sequelize[_0xad6f('0x1')]},'app':{'type':Sequelize['STRING']},'appdata':{'type':Sequelize['STRING']},'projectId':{'type':Sequelize[_0xad6f('0x2')]}};
\ No newline at end of file
+var _0x60d8=['DATE','BOOLEAN','TEXT','ENUM','SENT','SENDING','FAILED','sequelize','exports','STRING','INTEGER'];(function(_0x466b94,_0x52ae00){var _0x2bea97=function(_0x1da750){while(--_0x1da750){_0x466b94['push'](_0x466b94['shift']());}};_0x2bea97(++_0x52ae00);}(_0x60d8,0x167));var _0x860d=function(_0x3fd7b5,_0x3dafad){_0x3fd7b5=_0x3fd7b5-0x0;var _0x7901bd=_0x60d8[_0x3fd7b5];return _0x7901bd;};'use strict';var Sequelize=require(_0x860d('0x0'));module[_0x860d('0x1')]={'integration':{'type':Sequelize[_0x860d('0x2')]},'eventChannel':{'type':Sequelize[_0x860d('0x2')]},'exitStatus':{'type':Sequelize[_0x860d('0x2')]},'ticketId':{'type':Sequelize['STRING']},'integrationId':{'type':Sequelize[_0x860d('0x3')]},'contacts':{'type':Sequelize['STRING']},'uniqueid':{'type':Sequelize['STRING']},'calleridnum':{'type':Sequelize[_0x860d('0x2')]},'calleridname':{'type':Sequelize['STRING']},'queue':{'type':Sequelize[_0x860d('0x2')]},'interface':{'type':Sequelize[_0x860d('0x2')]},'membername':{'type':Sequelize[_0x860d('0x2')]},'agentcalledAt':{'type':Sequelize[_0x860d('0x4')]},'agentconnectAt':{'type':Sequelize[_0x860d('0x4')]},'holdtime':{'type':Sequelize[_0x860d('0x3')]},'agentcomplete':{'type':Sequelize[_0x860d('0x5')],'defaultValue':![]},'agentcompleteAt':{'type':Sequelize[_0x860d('0x4')]},'talktime':{'type':Sequelize[_0x860d('0x3')]},'agentacw':{'type':Sequelize[_0x860d('0x5')],'defaultValue':![]},'acwtime':{'type':Sequelize[_0x860d('0x3')]},'reason':{'type':Sequelize[_0x860d('0x2')]},'agentringnoanswer':{'type':Sequelize[_0x860d('0x5')],'defaultValue':![]},'agentringnoanswerAt':{'type':Sequelize[_0x860d('0x4')]},'agentdump':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'agentdumpAt':{'type':Sequelize[_0x860d('0x4')]},'lastevent':{'type':Sequelize[_0x860d('0x2')]},'channel':{'type':Sequelize['STRING']},'channelstate':{'type':Sequelize[_0x860d('0x3')]},'channelstatedesc':{'type':Sequelize['STRING']},'connectedlinenum':{'type':Sequelize['STRING']},'connectedlinename':{'type':Sequelize[_0x860d('0x2')]},'language':{'type':Sequelize[_0x860d('0x2')]},'accountcode':{'type':Sequelize[_0x860d('0x2')]},'context':{'type':Sequelize[_0x860d('0x2')]},'exten':{'type':Sequelize[_0x860d('0x2')]},'priority':{'type':Sequelize['STRING']},'destchannel':{'type':Sequelize[_0x860d('0x2')]},'destchannelstate':{'type':Sequelize['INTEGER']},'destchannelstatedesc':{'type':Sequelize[_0x860d('0x2')]},'destcalleridnum':{'type':Sequelize['STRING']},'destcalleridname':{'type':Sequelize[_0x860d('0x2')]},'destconnectedlinenum':{'type':Sequelize[_0x860d('0x2')]},'destconnectedlinename':{'type':Sequelize[_0x860d('0x2')]},'destlanguage':{'type':Sequelize[_0x860d('0x2')]},'destaccountcode':{'type':Sequelize[_0x860d('0x2')]},'destcontext':{'type':Sequelize[_0x860d('0x2')]},'destexten':{'type':Sequelize[_0x860d('0x2')]},'destpriority':{'type':Sequelize[_0x860d('0x2')]},'destuniqueid':{'type':Sequelize[_0x860d('0x2')]},'messageId':{'type':Sequelize[_0x860d('0x2')]},'inReplyTo':{'type':Sequelize[_0x860d('0x2')]},'subject':{'type':Sequelize[_0x860d('0x2')]},'from':{'type':Sequelize['STRING']},'to':{'type':Sequelize[_0x860d('0x2')]},'cc':{'type':Sequelize[_0x860d('0x2')]},'attachment':{'type':Sequelize[_0x860d('0x6')]},'html':{'type':Sequelize[_0x860d('0x6')]},'text':{'type':Sequelize[_0x860d('0x6')]},'status':{'type':Sequelize[_0x860d('0x7')](_0x860d('0x8'),_0x860d('0x9'),'RECEIVED',_0x860d('0xa'))},'url':{'type':Sequelize[_0x860d('0x2')]},'app':{'type':Sequelize[_0x860d('0x2')]},'appdata':{'type':Sequelize['STRING']},'projectId':{'type':Sequelize[_0x860d('0x3')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x91ac=['attributes','length','hasOwnProperty','nolimit','order','sort','where','filters','filter','type','merge','include','findAll','rows','catch','show','rawAttributes','includeAll','options','find','create','body','params','describe','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','json','apply','reject','save','update','then','destroy','error','stack','name','send','index','map','IntegrationReport','fieldName','key','model','keys','query','intersection','fields'];(function(_0x566dc1,_0x2bafcc){var _0x4b2fee=function(_0x18ab66){while(--_0x18ab66){_0x566dc1['push'](_0x566dc1['shift']());}};_0x4b2fee(++_0x2bafcc);}(_0x91ac,0x199));var _0xc91a=function(_0x560b56,_0x2004b9){_0x560b56=_0x560b56-0x0;var _0x173c4e=_0x91ac[_0x560b56];return _0x173c4e;};'use strict';var emlformat=require(_0xc91a('0x0'));var rimraf=require(_0xc91a('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xc91a('0x2'));var rp=require('request-promise');var moment=require(_0xc91a('0x3'));var BPromise=require(_0xc91a('0x4'));var Mustache=require(_0xc91a('0x5'));var util=require(_0xc91a('0x6'));var path=require(_0xc91a('0x7'));var sox=require('sox');var csv=require(_0xc91a('0x8'));var ejs=require(_0xc91a('0x9'));var fs=require('fs');var fs_extra=require(_0xc91a('0xa'));var _=require('lodash');var squel=require(_0xc91a('0xb'));var crypto=require(_0xc91a('0xc'));var jsforce=require(_0xc91a('0xd'));var deskjs=require(_0xc91a('0xe'));var toCsv=require(_0xc91a('0x8'));var querystring=require('querystring');var Papa=require(_0xc91a('0xf'));var Redis=require('ioredis');var authService=require(_0xc91a('0x10'));var qs=require(_0xc91a('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xc91a('0x12'));var logger=require(_0xc91a('0x13'))('api');var utils=require(_0xc91a('0x14'));var config=require(_0xc91a('0x15'));var licenseUtil=require(_0xc91a('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0xb20251,_0x53e223){_0x53e223=_0x53e223||0xcc;return function(_0x2e6672){if(_0x2e6672){return _0xb20251[_0xc91a('0x17')](_0x53e223);}return _0xb20251[_0xc91a('0x18')](_0x53e223)[_0xc91a('0x19')]();};}function respondWithResult(_0x37cf74,_0x192c3b){_0x192c3b=_0x192c3b||0xc8;return function(_0x3bc77f){if(_0x3bc77f){return _0x37cf74['status'](_0x192c3b)['json'](_0x3bc77f);}};}function respondWithFilteredResult(_0x2d120f,_0x1b89ac){return function(_0x467bb4){if(_0x467bb4){var _0x5c7b00=typeof _0x1b89ac[_0xc91a('0x1a')]===_0xc91a('0x1b')&&typeof _0x1b89ac[_0xc91a('0x1c')]===_0xc91a('0x1b');var _0x1515e6=_0x467bb4[_0xc91a('0x1d')];var _0x5c368f=_0x5c7b00?0x0:_0x1b89ac[_0xc91a('0x1a')];var _0x2ad024=_0x5c7b00?_0x467bb4['count']:_0x1b89ac[_0xc91a('0x1a')]+_0x1b89ac[_0xc91a('0x1c')];var _0x48468f;if(_0x2ad024>=_0x1515e6){_0x2ad024=_0x1515e6;_0x48468f=0xc8;}else{_0x48468f=0xce;}_0x2d120f[_0xc91a('0x18')](_0x48468f);return _0x2d120f[_0xc91a('0x1e')](_0xc91a('0x1f'),_0x5c368f+'-'+_0x2ad024+'/'+_0x1515e6)[_0xc91a('0x20')](_0x467bb4);}return null;};}function patchUpdates(_0x5c705c){return function(_0x50a338){try{jsonpatch[_0xc91a('0x21')](_0x50a338,_0x5c705c,!![]);}catch(_0x14105b){return BPromise[_0xc91a('0x22')](_0x14105b);}return _0x50a338[_0xc91a('0x23')]();};}function saveUpdates(_0x15ffa2,_0x23dd11){return function(_0x23581e){if(_0x23581e){return _0x23581e[_0xc91a('0x24')](_0x15ffa2)[_0xc91a('0x25')](function(_0x269c7f){return _0x269c7f;});}return null;};}function removeEntity(_0xdf1ace,_0x438326){return function(_0x487766){if(_0x487766){return _0x487766[_0xc91a('0x26')]()[_0xc91a('0x25')](function(){_0xdf1ace[_0xc91a('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0x27c208,_0x3990bd){return function(_0x3444f9){if(!_0x3444f9){_0x27c208['sendStatus'](0x194);}return _0x3444f9;};}function handleError(_0x3da20b,_0x3e9011){_0x3e9011=_0x3e9011||0x1f4;return function(_0x102212){logger[_0xc91a('0x27')](_0x102212[_0xc91a('0x28')]);if(_0x102212[_0xc91a('0x29')]){delete _0x102212[_0xc91a('0x29')];}_0x3da20b[_0xc91a('0x18')](_0x3e9011)[_0xc91a('0x2a')](_0x102212);};}exports[_0xc91a('0x2b')]=function(_0x2b7f0e,_0x5848a2){var _0x8528e7={},_0x3a7e01={},_0x34ccaf={'count':0x0,'rows':[]};var _0x3f85b0=_[_0xc91a('0x2c')](db[_0xc91a('0x2d')]['rawAttributes'],function(_0x5def86){return{'name':_0x5def86[_0xc91a('0x2e')],'type':_0x5def86['type'][_0xc91a('0x2f')]};});_0x3a7e01[_0xc91a('0x30')]=_[_0xc91a('0x2c')](_0x3f85b0,_0xc91a('0x29'));_0x3a7e01['query']=_[_0xc91a('0x31')](_0x2b7f0e[_0xc91a('0x32')]);_0x3a7e01['filters']=_[_0xc91a('0x33')](_0x3a7e01['model'],_0x3a7e01[_0xc91a('0x32')]);_0x8528e7['attributes']=_['intersection'](_0x3a7e01[_0xc91a('0x30')],qs['fields'](_0x2b7f0e['query'][_0xc91a('0x34')]));_0x8528e7[_0xc91a('0x35')]=_0x8528e7[_0xc91a('0x35')][_0xc91a('0x36')]?_0x8528e7[_0xc91a('0x35')]:_0x3a7e01[_0xc91a('0x30')];if(!_0x2b7f0e[_0xc91a('0x32')][_0xc91a('0x37')](_0xc91a('0x38'))){_0x8528e7[_0xc91a('0x1c')]=qs[_0xc91a('0x1c')](_0x2b7f0e[_0xc91a('0x32')]['limit']);_0x8528e7[_0xc91a('0x1a')]=qs[_0xc91a('0x1a')](_0x2b7f0e['query'][_0xc91a('0x1a')]);}_0x8528e7[_0xc91a('0x39')]=qs['sort'](_0x2b7f0e['query'][_0xc91a('0x3a')]);_0x8528e7[_0xc91a('0x3b')]=qs[_0xc91a('0x3c')](_['pick'](_0x2b7f0e[_0xc91a('0x32')],_0x3a7e01[_0xc91a('0x3c')]),_0x3f85b0);if(_0x2b7f0e[_0xc91a('0x32')][_0xc91a('0x3d')]){_0x8528e7[_0xc91a('0x3b')]=_['merge'](_0x8528e7[_0xc91a('0x3b')],{'$or':_[_0xc91a('0x2c')](_0x3f85b0,function(_0x105cbd){if(_0x105cbd[_0xc91a('0x3e')]!=='VIRTUAL'){var _0x576228={};_0x576228[_0x105cbd[_0xc91a('0x29')]]={'$like':'%'+_0x2b7f0e[_0xc91a('0x32')][_0xc91a('0x3d')]+'%'};return _0x576228;}})});}_0x8528e7=_[_0xc91a('0x3f')]({},_0x8528e7,_0x2b7f0e['options']);var _0x45e598={'where':_0x8528e7[_0xc91a('0x3b')]};return db[_0xc91a('0x2d')][_0xc91a('0x1d')](_0x45e598)[_0xc91a('0x25')](function(_0x15d1fe){_0x34ccaf[_0xc91a('0x1d')]=_0x15d1fe;if(_0x2b7f0e[_0xc91a('0x32')]['includeAll']){_0x8528e7[_0xc91a('0x40')]=[{'all':!![]}];}return db[_0xc91a('0x2d')][_0xc91a('0x41')](_0x8528e7);})[_0xc91a('0x25')](function(_0x16e3bf){_0x34ccaf[_0xc91a('0x42')]=_0x16e3bf;return _0x34ccaf;})[_0xc91a('0x25')](respondWithFilteredResult(_0x5848a2,_0x8528e7))[_0xc91a('0x43')](handleError(_0x5848a2,null));};exports[_0xc91a('0x44')]=function(_0x5882b8,_0x3d64db){var _0x3d05eb={'raw':![],'where':{'id':_0x5882b8['params']['id']}},_0x5c2a64={};_0x5c2a64['model']=_[_0xc91a('0x31')](db[_0xc91a('0x2d')][_0xc91a('0x45')]);_0x5c2a64[_0xc91a('0x32')]=_[_0xc91a('0x31')](_0x5882b8[_0xc91a('0x32')]);_0x5c2a64['filters']=_['intersection'](_0x5c2a64['model'],_0x5c2a64[_0xc91a('0x32')]);_0x3d05eb[_0xc91a('0x35')]=_['intersection'](_0x5c2a64[_0xc91a('0x30')],qs[_0xc91a('0x34')](_0x5882b8[_0xc91a('0x32')][_0xc91a('0x34')]));_0x3d05eb[_0xc91a('0x35')]=_0x3d05eb[_0xc91a('0x35')][_0xc91a('0x36')]?_0x3d05eb[_0xc91a('0x35')]:_0x5c2a64[_0xc91a('0x30')];if(_0x5882b8[_0xc91a('0x32')][_0xc91a('0x46')]){_0x3d05eb[_0xc91a('0x40')]=[{'all':!![]}];}_0x3d05eb=_[_0xc91a('0x3f')]({},_0x3d05eb,_0x5882b8[_0xc91a('0x47')]);return db['IntegrationReport'][_0xc91a('0x48')](_0x3d05eb)[_0xc91a('0x25')](handleEntityNotFound(_0x3d64db,null))[_0xc91a('0x25')](respondWithResult(_0x3d64db,null))[_0xc91a('0x43')](handleError(_0x3d64db,null));};exports[_0xc91a('0x49')]=function(_0x34a023,_0x3d1d2c){return db[_0xc91a('0x2d')][_0xc91a('0x49')](_0x34a023[_0xc91a('0x4a')],{})['then'](respondWithResult(_0x3d1d2c,0xc9))[_0xc91a('0x43')](handleError(_0x3d1d2c,null));};exports['update']=function(_0x19b78f,_0x4d4941){if(_0x19b78f['body']['id']){delete _0x19b78f[_0xc91a('0x4a')]['id'];}return db['IntegrationReport'][_0xc91a('0x48')]({'where':{'id':_0x19b78f[_0xc91a('0x4b')]['id']}})[_0xc91a('0x25')](handleEntityNotFound(_0x4d4941,null))['then'](saveUpdates(_0x19b78f[_0xc91a('0x4a')],null))[_0xc91a('0x25')](respondWithResult(_0x4d4941,null))['catch'](handleError(_0x4d4941,null));};exports['destroy']=function(_0x5f31ec,_0x5e2b62){return db['IntegrationReport'][_0xc91a('0x48')]({'where':{'id':_0x5f31ec[_0xc91a('0x4b')]['id']}})[_0xc91a('0x25')](handleEntityNotFound(_0x5e2b62,null))[_0xc91a('0x25')](removeEntity(_0x5e2b62,null))[_0xc91a('0x43')](handleError(_0x5e2b62,null));};exports[_0xc91a('0x4c')]=function(_0x3578f4,_0x580b5d){return db['IntegrationReport'][_0xc91a('0x4c')]()['then'](respondWithResult(_0x580b5d,null))[_0xc91a('0x43')](handleError(_0x580b5d,null));};
\ No newline at end of file
+var _0x8a76=['eml-format','zip-dir','fast-json-patch','util','path','sox','to-csv','fs-extra','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../mysqldb','sendStatus','status','end','json','undefined','offset','count','Content-Range','apply','save','update','then','error','stack','name','send','index','map','rawAttributes','fieldName','type','key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','sort','where','pick','filter','merge','VIRTUAL','IntegrationReport','includeAll','include','findAll','catch','params','keys','create','body','destroy','find','describe'];(function(_0x107b96,_0x161d1f){var _0x14f565=function(_0x4ff5f6){while(--_0x4ff5f6){_0x107b96['push'](_0x107b96['shift']());}};_0x14f565(++_0x161d1f);}(_0x8a76,0x1f1));var _0x68a7=function(_0x13c95b,_0x51919b){_0x13c95b=_0x13c95b-0x0;var _0x32a86d=_0x8a76[_0x13c95b];return _0x32a86d;};'use strict';var emlformat=require(_0x68a7('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x68a7('0x1'));var jsonpatch=require(_0x68a7('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x68a7('0x3'));var path=require(_0x68a7('0x4'));var sox=require(_0x68a7('0x5'));var csv=require(_0x68a7('0x6'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x68a7('0x7'));var _=require('lodash');var squel=require(_0x68a7('0x8'));var crypto=require('crypto');var jsforce=require(_0x68a7('0x9'));var deskjs=require(_0x68a7('0xa'));var toCsv=require(_0x68a7('0x6'));var querystring=require(_0x68a7('0xb'));var Papa=require(_0x68a7('0xc'));var Redis=require(_0x68a7('0xd'));var authService=require('../../components/auth/service');var qs=require(_0x68a7('0xe'));var as=require(_0x68a7('0xf'));var hardwareService=require(_0x68a7('0x10'));var logger=require(_0x68a7('0x11'))(_0x68a7('0x12'));var utils=require(_0x68a7('0x13'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x68a7('0x14'))['db'];function respondWithStatusCode(_0x58ec3b,_0x19707f){_0x19707f=_0x19707f||0xcc;return function(_0x1f119e){if(_0x1f119e){return _0x58ec3b[_0x68a7('0x15')](_0x19707f);}return _0x58ec3b[_0x68a7('0x16')](_0x19707f)[_0x68a7('0x17')]();};}function respondWithResult(_0x1e43e1,_0x5eb706){_0x5eb706=_0x5eb706||0xc8;return function(_0x82772){if(_0x82772){return _0x1e43e1[_0x68a7('0x16')](_0x5eb706)[_0x68a7('0x18')](_0x82772);}};}function respondWithFilteredResult(_0x35e242,_0x581a79){return function(_0x2ce2d4){if(_0x2ce2d4){var _0x2f61c4=typeof _0x581a79['offset']===_0x68a7('0x19')&&typeof _0x581a79['limit']==='undefined';var _0x3d2456=_0x2ce2d4['count'];var _0x1b0a65=_0x2f61c4?0x0:_0x581a79[_0x68a7('0x1a')];var _0x56e3d3=_0x2f61c4?_0x2ce2d4[_0x68a7('0x1b')]:_0x581a79[_0x68a7('0x1a')]+_0x581a79['limit'];var _0x4faf7b;if(_0x56e3d3>=_0x3d2456){_0x56e3d3=_0x3d2456;_0x4faf7b=0xc8;}else{_0x4faf7b=0xce;}_0x35e242[_0x68a7('0x16')](_0x4faf7b);return _0x35e242['set'](_0x68a7('0x1c'),_0x1b0a65+'-'+_0x56e3d3+'/'+_0x3d2456)['json'](_0x2ce2d4);}return null;};}function patchUpdates(_0x233846){return function(_0x3fe2a0){try{jsonpatch[_0x68a7('0x1d')](_0x3fe2a0,_0x233846,!![]);}catch(_0x3a9662){return BPromise['reject'](_0x3a9662);}return _0x3fe2a0[_0x68a7('0x1e')]();};}function saveUpdates(_0x4cb4d8,_0x464273){return function(_0x176151){if(_0x176151){return _0x176151[_0x68a7('0x1f')](_0x4cb4d8)[_0x68a7('0x20')](function(_0x4079f2){return _0x4079f2;});}return null;};}function removeEntity(_0x27af17,_0xad7a97){return function(_0x37a878){if(_0x37a878){return _0x37a878['destroy']()[_0x68a7('0x20')](function(){_0x27af17['status'](0xcc)[_0x68a7('0x17')]();});}};}function handleEntityNotFound(_0x4514e1,_0x2a050b){return function(_0x456655){if(!_0x456655){_0x4514e1[_0x68a7('0x15')](0x194);}return _0x456655;};}function handleError(_0x12d8ed,_0x365fee){_0x365fee=_0x365fee||0x1f4;return function(_0x1586f6){logger[_0x68a7('0x21')](_0x1586f6[_0x68a7('0x22')]);if(_0x1586f6[_0x68a7('0x23')]){delete _0x1586f6[_0x68a7('0x23')];}_0x12d8ed[_0x68a7('0x16')](_0x365fee)[_0x68a7('0x24')](_0x1586f6);};}exports[_0x68a7('0x25')]=function(_0x13e43c,_0x1da42d){var _0x5f2f9b={},_0x29dbd9={},_0x53fd07={'count':0x0,'rows':[]};var _0x3cdf24=_[_0x68a7('0x26')](db['IntegrationReport'][_0x68a7('0x27')],function(_0x43d20a){return{'name':_0x43d20a[_0x68a7('0x28')],'type':_0x43d20a[_0x68a7('0x29')][_0x68a7('0x2a')]};});_0x29dbd9[_0x68a7('0x2b')]=_['map'](_0x3cdf24,_0x68a7('0x23'));_0x29dbd9[_0x68a7('0x2c')]=_['keys'](_0x13e43c[_0x68a7('0x2c')]);_0x29dbd9[_0x68a7('0x2d')]=_[_0x68a7('0x2e')](_0x29dbd9[_0x68a7('0x2b')],_0x29dbd9['query']);_0x5f2f9b[_0x68a7('0x2f')]=_[_0x68a7('0x2e')](_0x29dbd9[_0x68a7('0x2b')],qs[_0x68a7('0x30')](_0x13e43c[_0x68a7('0x2c')][_0x68a7('0x30')]));_0x5f2f9b['attributes']=_0x5f2f9b[_0x68a7('0x2f')][_0x68a7('0x31')]?_0x5f2f9b['attributes']:_0x29dbd9[_0x68a7('0x2b')];if(!_0x13e43c[_0x68a7('0x2c')][_0x68a7('0x32')](_0x68a7('0x33'))){_0x5f2f9b[_0x68a7('0x34')]=qs[_0x68a7('0x34')](_0x13e43c['query'][_0x68a7('0x34')]);_0x5f2f9b[_0x68a7('0x1a')]=qs[_0x68a7('0x1a')](_0x13e43c[_0x68a7('0x2c')][_0x68a7('0x1a')]);}_0x5f2f9b['order']=qs[_0x68a7('0x35')](_0x13e43c['query']['sort']);_0x5f2f9b[_0x68a7('0x36')]=qs[_0x68a7('0x2d')](_[_0x68a7('0x37')](_0x13e43c[_0x68a7('0x2c')],_0x29dbd9[_0x68a7('0x2d')]),_0x3cdf24);if(_0x13e43c[_0x68a7('0x2c')][_0x68a7('0x38')]){_0x5f2f9b[_0x68a7('0x36')]=_[_0x68a7('0x39')](_0x5f2f9b[_0x68a7('0x36')],{'$or':_[_0x68a7('0x26')](_0x3cdf24,function(_0x10eda){if(_0x10eda[_0x68a7('0x29')]!==_0x68a7('0x3a')){var _0x22012a={};_0x22012a[_0x10eda[_0x68a7('0x23')]]={'$like':'%'+_0x13e43c[_0x68a7('0x2c')][_0x68a7('0x38')]+'%'};return _0x22012a;}})});}_0x5f2f9b=_[_0x68a7('0x39')]({},_0x5f2f9b,_0x13e43c['options']);var _0x2ae6ef={'where':_0x5f2f9b[_0x68a7('0x36')]};return db[_0x68a7('0x3b')][_0x68a7('0x1b')](_0x2ae6ef)['then'](function(_0x20727b){_0x53fd07[_0x68a7('0x1b')]=_0x20727b;if(_0x13e43c[_0x68a7('0x2c')][_0x68a7('0x3c')]){_0x5f2f9b[_0x68a7('0x3d')]=[{'all':!![]}];}return db['IntegrationReport'][_0x68a7('0x3e')](_0x5f2f9b);})[_0x68a7('0x20')](function(_0x396d68){_0x53fd07['rows']=_0x396d68;return _0x53fd07;})[_0x68a7('0x20')](respondWithFilteredResult(_0x1da42d,_0x5f2f9b))[_0x68a7('0x3f')](handleError(_0x1da42d,null));};exports['show']=function(_0x5912ed,_0x44e9d8){var _0x59171e={'raw':![],'where':{'id':_0x5912ed[_0x68a7('0x40')]['id']}},_0x3875e1={};_0x3875e1[_0x68a7('0x2b')]=_[_0x68a7('0x41')](db[_0x68a7('0x3b')]['rawAttributes']);_0x3875e1[_0x68a7('0x2c')]=_['keys'](_0x5912ed[_0x68a7('0x2c')]);_0x3875e1['filters']=_[_0x68a7('0x2e')](_0x3875e1[_0x68a7('0x2b')],_0x3875e1[_0x68a7('0x2c')]);_0x59171e[_0x68a7('0x2f')]=_[_0x68a7('0x2e')](_0x3875e1['model'],qs[_0x68a7('0x30')](_0x5912ed[_0x68a7('0x2c')][_0x68a7('0x30')]));_0x59171e['attributes']=_0x59171e[_0x68a7('0x2f')]['length']?_0x59171e[_0x68a7('0x2f')]:_0x3875e1[_0x68a7('0x2b')];if(_0x5912ed[_0x68a7('0x2c')][_0x68a7('0x3c')]){_0x59171e['include']=[{'all':!![]}];}_0x59171e=_[_0x68a7('0x39')]({},_0x59171e,_0x5912ed['options']);return db[_0x68a7('0x3b')]['find'](_0x59171e)['then'](handleEntityNotFound(_0x44e9d8,null))[_0x68a7('0x20')](respondWithResult(_0x44e9d8,null))[_0x68a7('0x3f')](handleError(_0x44e9d8,null));};exports[_0x68a7('0x42')]=function(_0x2bef31,_0x146b15){return db[_0x68a7('0x3b')][_0x68a7('0x42')](_0x2bef31[_0x68a7('0x43')],{})[_0x68a7('0x20')](respondWithResult(_0x146b15,0xc9))['catch'](handleError(_0x146b15,null));};exports[_0x68a7('0x1f')]=function(_0x526c56,_0x3dcc38){if(_0x526c56[_0x68a7('0x43')]['id']){delete _0x526c56[_0x68a7('0x43')]['id'];}return db[_0x68a7('0x3b')]['find']({'where':{'id':_0x526c56[_0x68a7('0x40')]['id']}})[_0x68a7('0x20')](handleEntityNotFound(_0x3dcc38,null))[_0x68a7('0x20')](saveUpdates(_0x526c56[_0x68a7('0x43')],null))[_0x68a7('0x20')](respondWithResult(_0x3dcc38,null))[_0x68a7('0x3f')](handleError(_0x3dcc38,null));};exports[_0x68a7('0x44')]=function(_0x5d4f22,_0xe62a57){return db['IntegrationReport'][_0x68a7('0x45')]({'where':{'id':_0x5d4f22['params']['id']}})[_0x68a7('0x20')](handleEntityNotFound(_0xe62a57,null))[_0x68a7('0x20')](removeEntity(_0xe62a57,null))[_0x68a7('0x3f')](handleError(_0xe62a57,null));};exports['describe']=function(_0x32ab98,_0x4dc030){return db['IntegrationReport'][_0x68a7('0x46')]()['then'](respondWithResult(_0x4dc030,null))['catch'](handleError(_0x4dc030,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbd3c=['request-promise','path','../../config/environment','./integrationReport.attributes','exports','define','IntegrationReport','report_integration','lodash','util','../../config/logger','api','moment','bluebird'];(function(_0x335a3a,_0x46d464){var _0x6f5de9=function(_0x135015){while(--_0x135015){_0x335a3a['push'](_0x335a3a['shift']());}};_0x6f5de9(++_0x46d464);}(_0xbd3c,0x1ba));var _0xcbd3=function(_0x93a705,_0xfcb2c0){_0x93a705=_0x93a705-0x0;var _0x276999=_0xbd3c[_0x93a705];return _0x276999;};'use strict';var _=require(_0xcbd3('0x0'));var util=require(_0xcbd3('0x1'));var logger=require(_0xcbd3('0x2'))(_0xcbd3('0x3'));var moment=require(_0xcbd3('0x4'));var BPromise=require(_0xcbd3('0x5'));var rp=require(_0xcbd3('0x6'));var fs=require('fs');var path=require(_0xcbd3('0x7'));var rimraf=require('rimraf');var config=require(_0xcbd3('0x8'));var attributes=require(_0xcbd3('0x9'));module[_0xcbd3('0xa')]=function(_0x380565,_0x4e976d){return _0x380565[_0xcbd3('0xb')](_0xcbd3('0xc'),attributes,{'tableName':_0xcbd3('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x35f5=['IntegrationReport','lodash','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','exports','define'];(function(_0x2fa393,_0x57e26d){var _0x15a4fb=function(_0x2a8eb9){while(--_0x2a8eb9){_0x2fa393['push'](_0x2fa393['shift']());}};_0x15a4fb(++_0x57e26d);}(_0x35f5,0xf3));var _0x535f=function(_0x1fd675,_0x165dfe){_0x1fd675=_0x1fd675-0x0;var _0x16b554=_0x35f5[_0x1fd675];return _0x16b554;};'use strict';var _=require(_0x535f('0x0'));var util=require('util');var logger=require(_0x535f('0x1'))(_0x535f('0x2'));var moment=require(_0x535f('0x3'));var BPromise=require(_0x535f('0x4'));var rp=require(_0x535f('0x5'));var fs=require('fs');var path=require(_0x535f('0x6'));var rimraf=require(_0x535f('0x7'));var config=require('../../config/environment');var attributes=require('./integrationReport.attributes');module[_0x535f('0x8')]=function(_0x29a475,_0x5aa193){return _0x29a475[_0x535f('0x9')](_0x535f('0xa'),attributes,{'tableName':'report_integration','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe2fe=['then','info','IntegrationReport,\x20%s,\x20%s','stringify','error','message','request\x20sent','result','lodash','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','request'];(function(_0x1b12ac,_0x349199){var _0x3d3fac=function(_0x1c427b){while(--_0x1c427b){_0x1b12ac['push'](_0x1b12ac['shift']());}};_0x3d3fac(++_0x349199);}(_0xe2fe,0x86));var _0xee2f=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xe2fe[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0xee2f('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0xee2f('0x1'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xee2f('0x2'));var db=require(_0xee2f('0x3'))['db'];var utils=require(_0xee2f('0x4'));var logger=require(_0xee2f('0x5'))(_0xee2f('0x6'));var config=require('../../config/environment');var jayson=require(_0xee2f('0x7'));var client=jayson[_0xee2f('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x1533a0,_0x2e1c8c,_0x5a7975){return new BPromise(function(_0x3c4095,_0x5ea796){return client[_0xee2f('0x9')](_0x1533a0,_0x5a7975)[_0xee2f('0xa')](function(_0x53f7dd){logger[_0xee2f('0xb')](_0xee2f('0xc'),_0x2e1c8c,'request\x20sent');logger['debug']('IntegrationReport,\x20%s,\x20%s,\x20%s',_0x2e1c8c,'request\x20sent',JSON[_0xee2f('0xd')](_0x53f7dd));if(_0x53f7dd['error']){if(_0x53f7dd['error']['code']===0x1f4){logger[_0xee2f('0xe')](_0xee2f('0xc'),_0x2e1c8c,_0x53f7dd[_0xee2f('0xe')][_0xee2f('0xf')]);return _0x5ea796(_0x53f7dd[_0xee2f('0xe')][_0xee2f('0xf')]);}logger['error'](_0xee2f('0xc'),_0x2e1c8c,_0x53f7dd['error'][_0xee2f('0xf')]);return _0x3c4095(_0x53f7dd[_0xee2f('0xe')]['message']);}else{logger[_0xee2f('0xb')](_0xee2f('0xc'),_0x2e1c8c,_0xee2f('0x10'));_0x3c4095(_0x53f7dd[_0xee2f('0x11')][_0xee2f('0xf')]);}})['catch'](function(_0x3f6372){logger['error'](_0xee2f('0xc'),_0x2e1c8c,_0x3f6372);_0x5ea796(_0x3f6372);});});}
\ No newline at end of file
+var _0x31f0=['../../config/environment','request','info','IntegrationReport,\x20%s,\x20%s','request\x20sent','debug','IntegrationReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','lodash','moment','randomstring','ioredis','../../mysqldb','../../config/utils','rpc'];(function(_0x4c9cb5,_0xcf85d4){var _0x20310b=function(_0x16b471){while(--_0x16b471){_0x4c9cb5['push'](_0x4c9cb5['shift']());}};_0x20310b(++_0xcf85d4);}(_0x31f0,0xb7));var _0x031f=function(_0x2c0c89,_0x36cd2){_0x2c0c89=_0x2c0c89-0x0;var _0x4d4d0d=_0x31f0[_0x2c0c89];return _0x4d4d0d;};'use strict';var _=require(_0x031f('0x0'));var util=require('util');var moment=require(_0x031f('0x1'));var BPromise=require('bluebird');var rs=require(_0x031f('0x2'));var fs=require('fs');var Redis=require(_0x031f('0x3'));var db=require(_0x031f('0x4'))['db'];var utils=require(_0x031f('0x5'));var logger=require('../../config/logger')(_0x031f('0x6'));var config=require(_0x031f('0x7'));var jayson=require('jayson/promise');var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x3dc98e,_0x487e65,_0x365f59){return new BPromise(function(_0x4300b4,_0x2569b6){return client[_0x031f('0x8')](_0x3dc98e,_0x365f59)['then'](function(_0x2e5624){logger[_0x031f('0x9')](_0x031f('0xa'),_0x487e65,_0x031f('0xb'));logger[_0x031f('0xc')](_0x031f('0xd'),_0x487e65,_0x031f('0xb'),JSON[_0x031f('0xe')](_0x2e5624));if(_0x2e5624['error']){if(_0x2e5624[_0x031f('0xf')][_0x031f('0x10')]===0x1f4){logger[_0x031f('0xf')](_0x031f('0xa'),_0x487e65,_0x2e5624[_0x031f('0xf')][_0x031f('0x11')]);return _0x2569b6(_0x2e5624[_0x031f('0xf')]['message']);}logger[_0x031f('0xf')](_0x031f('0xa'),_0x487e65,_0x2e5624[_0x031f('0xf')][_0x031f('0x11')]);return _0x4300b4(_0x2e5624[_0x031f('0xf')]['message']);}else{logger['info'](_0x031f('0xa'),_0x487e65,_0x031f('0xb'));_0x4300b4(_0x2e5624[_0x031f('0x12')][_0x031f('0x11')]);}})['catch'](function(_0x1dc4a7){logger[_0x031f('0xf')]('IntegrationReport,\x20%s,\x20%s',_0x487e65,_0x1dc4a7);_0x2569b6(_0x1dc4a7);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4cad=['destroy','exports','multer','util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./interval.controller','get','show','/:id/sub_intervals','isAuthenticated','getIntervals','post','create','addInterval','/:id/sub_intervals/create_many','addIntervals','/:id','update','delete'];(function(_0x319411,_0x343204){var _0x46e533=function(_0x491dd1){while(--_0x491dd1){_0x319411['push'](_0x319411['shift']());}};_0x46e533(++_0x343204);}(_0x4cad,0x179));var _0xd4ca=function(_0x4ac6f7,_0x271778){_0x4ac6f7=_0x4ac6f7-0x0;var _0x5f1f06=_0x4cad[_0x4ac6f7];return _0x5f1f06;};'use strict';var multer=require(_0xd4ca('0x0'));var util=require(_0xd4ca('0x1'));var path=require(_0xd4ca('0x2'));var timeout=require(_0xd4ca('0x3'));var express=require(_0xd4ca('0x4'));var router=express['Router']();var fs_extra=require(_0xd4ca('0x5'));var auth=require(_0xd4ca('0x6'));var interaction=require(_0xd4ca('0x7'));var config=require(_0xd4ca('0x8'));var controller=require(_0xd4ca('0x9'));router[_0xd4ca('0xa')]('/',auth['isAuthenticated'](),controller['index']);router['get']('/:id',auth['isAuthenticated'](),controller[_0xd4ca('0xb')]);router[_0xd4ca('0xa')](_0xd4ca('0xc'),auth[_0xd4ca('0xd')](),controller[_0xd4ca('0xe')]);router[_0xd4ca('0xf')]('/',auth['isAuthenticated'](),controller[_0xd4ca('0x10')]);router[_0xd4ca('0xf')]('/:id/sub_intervals',auth[_0xd4ca('0xd')](),controller[_0xd4ca('0x11')]);router['post'](_0xd4ca('0x12'),auth['isAuthenticated'](),controller[_0xd4ca('0x13')]);router['put'](_0xd4ca('0x14'),auth[_0xd4ca('0xd')](),controller[_0xd4ca('0x15')]);router[_0xd4ca('0x16')]('/:id',auth[_0xd4ca('0xd')](),controller[_0xd4ca('0x17')]);module[_0xd4ca('0x18')]=router;
\ No newline at end of file
+var _0x406e=['../../components/auth/service','../../components/interaction/service','../../config/environment','isAuthenticated','index','get','/:id','show','/:id/sub_intervals','getIntervals','post','create','/:id/sub_intervals/create_many','put','update','delete','exports','multer','connect-timeout','express','Router','fs-extra'];(function(_0xf910d,_0x23f19c){var _0x360328=function(_0x35e248){while(--_0x35e248){_0xf910d['push'](_0xf910d['shift']());}};_0x360328(++_0x23f19c);}(_0x406e,0xab));var _0xe406=function(_0x91a032,_0x42c6cd){_0x91a032=_0x91a032-0x0;var _0x40b2d2=_0x406e[_0x91a032];return _0x40b2d2;};'use strict';var multer=require(_0xe406('0x0'));var util=require('util');var path=require('path');var timeout=require(_0xe406('0x1'));var express=require(_0xe406('0x2'));var router=express[_0xe406('0x3')]();var fs_extra=require(_0xe406('0x4'));var auth=require(_0xe406('0x5'));var interaction=require(_0xe406('0x6'));var config=require(_0xe406('0x7'));var controller=require('./interval.controller');router['get']('/',auth[_0xe406('0x8')](),controller[_0xe406('0x9')]);router[_0xe406('0xa')](_0xe406('0xb'),auth[_0xe406('0x8')](),controller[_0xe406('0xc')]);router[_0xe406('0xa')](_0xe406('0xd'),auth[_0xe406('0x8')](),controller[_0xe406('0xe')]);router[_0xe406('0xf')]('/',auth[_0xe406('0x8')](),controller[_0xe406('0x10')]);router[_0xe406('0xf')](_0xe406('0xd'),auth['isAuthenticated'](),controller['addInterval']);router[_0xe406('0xf')](_0xe406('0x11'),auth[_0xe406('0x8')](),controller['addIntervals']);router[_0xe406('0x12')](_0xe406('0xb'),auth[_0xe406('0x8')](),controller[_0xe406('0x13')]);router[_0xe406('0x14')](_0xe406('0xb'),auth[_0xe406('0x8')](),controller['destroy']);module[_0xe406('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x64f8=['exports','STRING','sequelize'];(function(_0x5876f1,_0x30e946){var _0x338e8c=function(_0x2ebfe9){while(--_0x2ebfe9){_0x5876f1['push'](_0x5876f1['shift']());}};_0x338e8c(++_0x30e946);}(_0x64f8,0x74));var _0x864f=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0x64f8[_0xa464c9];return _0x3d73c4;};'use strict';var Sequelize=require(_0x864f('0x0'));module[_0x864f('0x1')]={'name':{'type':Sequelize[_0x864f('0x2')]},'description':{'type':Sequelize['STRING']},'interval':{'type':Sequelize[_0x864f('0x2')],'allowNull':!![]}};
\ No newline at end of file
+var _0xc5d3=['sequelize','exports','STRING'];(function(_0x1db2a9,_0x393a7e){var _0x4a61c7=function(_0x25dd15){while(--_0x25dd15){_0x1db2a9['push'](_0x1db2a9['shift']());}};_0x4a61c7(++_0x393a7e);}(_0xc5d3,0x12c));var _0x3c5d=function(_0x4206f5,_0x21f338){_0x4206f5=_0x4206f5-0x0;var _0xa29cf3=_0xc5d3[_0x4206f5];return _0xa29cf3;};'use strict';var Sequelize=require(_0x3c5d('0x0'));module[_0x3c5d('0x1')]={'name':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0x3c5d('0x2')]},'interval':{'type':Sequelize[_0x3c5d('0x2')],'allowNull':!![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbf06=['bulkCreate','eml-format','rimraf','fast-json-patch','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','squel','crypto','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/license/util','../../mysqldb','status','offset','undefined','limit','count','Content-Range','json','apply','reject','save','update','then','get','UserProfileResource','end','sendStatus','name','send','index','map','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','where','filter','merge','type','VIRTUAL','options','Interval','includeAll','include','findAll','rows','catch','show','params','rawAttributes','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Intervals','UserProfileSection','find','userProfileId','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','addInterval','IntervalId','getIntervals','findOne','sort','pick','nolimit','addIntervals','sequelize','transaction'];(function(_0x16dbe9,_0x2c84b3){var _0x8ab903=function(_0x3b7968){while(--_0x3b7968){_0x16dbe9['push'](_0x16dbe9['shift']());}};_0x8ab903(++_0x2c84b3);}(_0xbf06,0xb5));var _0x6bf0=function(_0x9fd887,_0x47f76c){_0x9fd887=_0x9fd887-0x0;var _0x1a54ab=_0xbf06[_0x9fd887];return _0x1a54ab;};'use strict';var emlformat=require(_0x6bf0('0x0'));var rimraf=require(_0x6bf0('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x6bf0('0x2'));var rp=require('request-promise');var moment=require(_0x6bf0('0x3'));var BPromise=require(_0x6bf0('0x4'));var Mustache=require(_0x6bf0('0x5'));var util=require('util');var path=require(_0x6bf0('0x6'));var sox=require(_0x6bf0('0x7'));var csv=require(_0x6bf0('0x8'));var ejs=require(_0x6bf0('0x9'));var fs=require('fs');var fs_extra=require(_0x6bf0('0xa'));var _=require('lodash');var squel=require(_0x6bf0('0xb'));var crypto=require(_0x6bf0('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x6bf0('0xd'));var toCsv=require(_0x6bf0('0x8'));var querystring=require('querystring');var Papa=require(_0x6bf0('0xe'));var Redis=require(_0x6bf0('0xf'));var authService=require(_0x6bf0('0x10'));var qs=require(_0x6bf0('0x11'));var as=require(_0x6bf0('0x12'));var hardwareService=require(_0x6bf0('0x13'));var logger=require(_0x6bf0('0x14'))('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x6bf0('0x15'));var db=require(_0x6bf0('0x16'))['db'];var extensions=require('../../components/extensions/rewrite');function respondWithStatusCode(_0x458f2b,_0x5f12d6){_0x5f12d6=_0x5f12d6||0xcc;return function(_0x364978){if(_0x364978){return _0x458f2b['sendStatus'](_0x5f12d6);}return _0x458f2b[_0x6bf0('0x17')](_0x5f12d6)['end']();};}function respondWithResult(_0x2dabd6,_0x22e86c){_0x22e86c=_0x22e86c||0xc8;return function(_0x305c2b){if(_0x305c2b){return _0x2dabd6[_0x6bf0('0x17')](_0x22e86c)['json'](_0x305c2b);}};}function respondWithFilteredResult(_0x3d7f9c,_0x3f42c2){return function(_0x4aa4b6){if(_0x4aa4b6){var _0x459ab7=typeof _0x3f42c2[_0x6bf0('0x18')]===_0x6bf0('0x19')&&typeof _0x3f42c2[_0x6bf0('0x1a')]===_0x6bf0('0x19');var _0x393dbe=_0x4aa4b6[_0x6bf0('0x1b')];var _0x4f9b76=_0x459ab7?0x0:_0x3f42c2['offset'];var _0x56e64d=_0x459ab7?_0x4aa4b6['count']:_0x3f42c2['offset']+_0x3f42c2[_0x6bf0('0x1a')];var _0x36d7e4;if(_0x56e64d>=_0x393dbe){_0x56e64d=_0x393dbe;_0x36d7e4=0xc8;}else{_0x36d7e4=0xce;}_0x3d7f9c[_0x6bf0('0x17')](_0x36d7e4);return _0x3d7f9c['set'](_0x6bf0('0x1c'),_0x4f9b76+'-'+_0x56e64d+'/'+_0x393dbe)[_0x6bf0('0x1d')](_0x4aa4b6);}return null;};}function patchUpdates(_0x24ad4c){return function(_0x32ea4c){try{jsonpatch[_0x6bf0('0x1e')](_0x32ea4c,_0x24ad4c,!![]);}catch(_0x2cd5db){return BPromise[_0x6bf0('0x1f')](_0x2cd5db);}return _0x32ea4c[_0x6bf0('0x20')]();};}function saveUpdates(_0x2c17b4,_0x43bb72){return function(_0xeb302f){if(_0xeb302f){return _0xeb302f[_0x6bf0('0x21')](_0x2c17b4)[_0x6bf0('0x22')](function(_0x35b2b2){return _0x35b2b2;});}return null;};}function removeEntity(_0x42de16,_0x1a0b02){return function(_0x3e9953){if(_0x3e9953){return _0x3e9953['destroy']()[_0x6bf0('0x22')](function(){var _0x46fef1=_0x3e9953[_0x6bf0('0x23')]({'plain':!![]});var _0x1afa01='Intervals';return db[_0x6bf0('0x24')]['destroy']({'where':{'type':_0x1afa01,'resourceId':_0x46fef1['id']}})[_0x6bf0('0x22')](function(){return _0x3e9953;});})[_0x6bf0('0x22')](function(){_0x42de16['status'](0xcc)[_0x6bf0('0x25')]();});}};}function handleEntityNotFound(_0x559520,_0x21bc61){return function(_0x5a596d){if(!_0x5a596d){_0x559520[_0x6bf0('0x26')](0x194);}return _0x5a596d;};}function handleError(_0x472bd3,_0x26340e){_0x26340e=_0x26340e||0x1f4;return function(_0x2ce391){logger['error'](_0x2ce391['stack']);if(_0x2ce391[_0x6bf0('0x27')]){delete _0x2ce391[_0x6bf0('0x27')];}_0x472bd3[_0x6bf0('0x17')](_0x26340e)[_0x6bf0('0x28')](_0x2ce391);};}exports[_0x6bf0('0x29')]=function(_0x2b77d2,_0x2b9ae1){var _0x26d5fc={},_0x2cc028={},_0x160e5f={'count':0x0,'rows':[]};var _0x2587e5=_[_0x6bf0('0x2a')](db['Interval']['rawAttributes'],function(_0x176728){return{'name':_0x176728['fieldName'],'type':_0x176728['type']['key']};});_0x2cc028[_0x6bf0('0x2b')]=_[_0x6bf0('0x2a')](_0x2587e5,_0x6bf0('0x27'));_0x2cc028[_0x6bf0('0x2c')]=_[_0x6bf0('0x2d')](_0x2b77d2[_0x6bf0('0x2c')]);_0x2cc028[_0x6bf0('0x2e')]=_[_0x6bf0('0x2f')](_0x2cc028[_0x6bf0('0x2b')],_0x2cc028[_0x6bf0('0x2c')]);_0x26d5fc[_0x6bf0('0x30')]=_[_0x6bf0('0x2f')](_0x2cc028[_0x6bf0('0x2b')],qs[_0x6bf0('0x31')](_0x2b77d2[_0x6bf0('0x2c')]['fields']));_0x26d5fc[_0x6bf0('0x30')]=_0x26d5fc['attributes'][_0x6bf0('0x32')]?_0x26d5fc[_0x6bf0('0x30')]:_0x2cc028[_0x6bf0('0x2b')];if(!_0x2b77d2['query'][_0x6bf0('0x33')]('nolimit')){_0x26d5fc[_0x6bf0('0x1a')]=qs[_0x6bf0('0x1a')](_0x2b77d2['query'][_0x6bf0('0x1a')]);_0x26d5fc['offset']=qs['offset'](_0x2b77d2['query'][_0x6bf0('0x18')]);}_0x26d5fc[_0x6bf0('0x34')]=qs['sort'](_0x2b77d2[_0x6bf0('0x2c')]['sort']);_0x26d5fc[_0x6bf0('0x35')]=qs[_0x6bf0('0x2e')](_['pick'](_0x2b77d2[_0x6bf0('0x2c')],_0x2cc028[_0x6bf0('0x2e')]),_0x2587e5);if(_0x2b77d2['query'][_0x6bf0('0x36')]){_0x26d5fc['where']=_[_0x6bf0('0x37')](_0x26d5fc[_0x6bf0('0x35')],{'$or':_['map'](_0x2587e5,function(_0x79ae4f){if(_0x79ae4f[_0x6bf0('0x38')]!==_0x6bf0('0x39')){var _0x3ed3fc={};_0x3ed3fc[_0x79ae4f[_0x6bf0('0x27')]]={'$like':'%'+_0x2b77d2['query']['filter']+'%'};return _0x3ed3fc;}})});}_0x26d5fc=_[_0x6bf0('0x37')]({},_0x26d5fc,_0x2b77d2[_0x6bf0('0x3a')]);var _0x565760={'where':_0x26d5fc[_0x6bf0('0x35')]};return db[_0x6bf0('0x3b')][_0x6bf0('0x1b')](_0x565760)[_0x6bf0('0x22')](function(_0x155e4b){_0x160e5f[_0x6bf0('0x1b')]=_0x155e4b;if(_0x2b77d2[_0x6bf0('0x2c')][_0x6bf0('0x3c')]){_0x26d5fc[_0x6bf0('0x3d')]=[{'all':!![]}];}return db[_0x6bf0('0x3b')][_0x6bf0('0x3e')](_0x26d5fc);})[_0x6bf0('0x22')](function(_0x429e65){_0x160e5f[_0x6bf0('0x3f')]=_0x429e65;return _0x160e5f;})[_0x6bf0('0x22')](respondWithFilteredResult(_0x2b9ae1,_0x26d5fc))[_0x6bf0('0x40')](handleError(_0x2b9ae1,null));};exports[_0x6bf0('0x41')]=function(_0x2a1d75,_0x8b4ca0){var _0x3f7548={'raw':!![],'where':{'id':_0x2a1d75[_0x6bf0('0x42')]['id']}},_0x1e4a58={};_0x1e4a58[_0x6bf0('0x2b')]=_[_0x6bf0('0x2d')](db['Interval'][_0x6bf0('0x43')]);_0x1e4a58['query']=_[_0x6bf0('0x2d')](_0x2a1d75[_0x6bf0('0x2c')]);_0x1e4a58[_0x6bf0('0x2e')]=_[_0x6bf0('0x2f')](_0x1e4a58['model'],_0x1e4a58[_0x6bf0('0x2c')]);_0x3f7548[_0x6bf0('0x30')]=_[_0x6bf0('0x2f')](_0x1e4a58[_0x6bf0('0x2b')],qs[_0x6bf0('0x31')](_0x2a1d75[_0x6bf0('0x2c')][_0x6bf0('0x31')]));_0x3f7548[_0x6bf0('0x30')]=_0x3f7548[_0x6bf0('0x30')]['length']?_0x3f7548[_0x6bf0('0x30')]:_0x1e4a58[_0x6bf0('0x2b')];if(_0x2a1d75['query'][_0x6bf0('0x3c')]){_0x3f7548[_0x6bf0('0x3d')]=[{'all':!![]}];}_0x3f7548=_['merge']({},_0x3f7548,_0x2a1d75[_0x6bf0('0x3a')]);return db[_0x6bf0('0x3b')]['find'](_0x3f7548)['then'](handleEntityNotFound(_0x8b4ca0,null))[_0x6bf0('0x22')](respondWithResult(_0x8b4ca0,null))[_0x6bf0('0x40')](handleError(_0x8b4ca0,null));};exports[_0x6bf0('0x44')]=function(_0x4d70c5,_0x54cc24){return db['Interval'][_0x6bf0('0x44')](_0x4d70c5[_0x6bf0('0x45')],{})['then'](function(_0x457d7a){var _0x2f6277=_0x4d70c5[_0x6bf0('0x46')][_0x6bf0('0x23')]({'plain':!![]});if(!_0x2f6277)throw new Error(_0x6bf0('0x47'));if(_0x2f6277[_0x6bf0('0x48')]===_0x6bf0('0x46')){var _0x2a64fc=_0x457d7a[_0x6bf0('0x23')]({'plain':!![]});var _0x2f73e3=_0x6bf0('0x49');return db[_0x6bf0('0x4a')][_0x6bf0('0x4b')]({'where':{'name':_0x2f73e3,'userProfileId':_0x2f6277[_0x6bf0('0x4c')]},'raw':!![]})[_0x6bf0('0x22')](function(_0x4a645e){if(_0x4a645e&&_0x4a645e['autoAssociation']===0x0){return db[_0x6bf0('0x24')][_0x6bf0('0x44')]({'name':_0x2a64fc[_0x6bf0('0x27')],'resourceId':_0x2a64fc['id'],'type':_0x4a645e['name'],'sectionId':_0x4a645e['id']},{})['then'](function(){return _0x457d7a;});}else{return _0x457d7a;}})[_0x6bf0('0x40')](function(_0x1b097e){logger[_0x6bf0('0x4d')](_0x6bf0('0x4e'),_0x1b097e);throw _0x1b097e;});}return _0x457d7a;})[_0x6bf0('0x22')](respondWithResult(_0x54cc24,0xc9))[_0x6bf0('0x40')](handleError(_0x54cc24,null));};exports[_0x6bf0('0x21')]=function(_0x47186b,_0x23cc5b){if(_0x47186b[_0x6bf0('0x45')]['id']){delete _0x47186b['body']['id'];}return db[_0x6bf0('0x3b')][_0x6bf0('0x4b')]({'where':{'id':_0x47186b[_0x6bf0('0x42')]['id']}})['then'](handleEntityNotFound(_0x23cc5b,null))[_0x6bf0('0x22')](saveUpdates(_0x47186b[_0x6bf0('0x45')],null))[_0x6bf0('0x22')](respondWithResult(_0x23cc5b,null))[_0x6bf0('0x40')](handleError(_0x23cc5b,null));};exports['destroy']=function(_0xdc4637,_0x4820a7){return db[_0x6bf0('0x3b')][_0x6bf0('0x4b')]({'where':{'id':_0xdc4637['params']['id']}})[_0x6bf0('0x22')](handleEntityNotFound(_0x4820a7,null))[_0x6bf0('0x22')](removeEntity(_0x4820a7,null))['catch'](handleError(_0x4820a7,null));};exports[_0x6bf0('0x4f')]=function(_0x5a445b,_0x5e0989,_0x2113f1){if(_0x5a445b[_0x6bf0('0x45')]['id']){delete _0x5a445b[_0x6bf0('0x45')]['id'];}return db[_0x6bf0('0x3b')]['find']({'where':{'id':_0x5a445b['params']['id']}})[_0x6bf0('0x22')](handleEntityNotFound(_0x5e0989,null))[_0x6bf0('0x22')](function(_0x5198c9){if(_0x5198c9){_0x5a445b[_0x6bf0('0x45')][_0x6bf0('0x50')]=_0x5198c9['id'];return db[_0x6bf0('0x3b')][_0x6bf0('0x44')](_0x5a445b['body']);}})[_0x6bf0('0x22')](respondWithResult(_0x5e0989,null))[_0x6bf0('0x40')](handleError(_0x5e0989,null));};exports[_0x6bf0('0x51')]=function(_0x13b917,_0x389e1e,_0xabc358){var _0x5dd00a={};var _0xa2e8f1={};var _0xd6f401;var _0xe4a519;return db['Interval'][_0x6bf0('0x52')]({'where':{'id':_0x13b917['params']['id']}})['then'](handleEntityNotFound(_0x389e1e,null))['then'](function(_0x2fa5e8){if(_0x2fa5e8){_0xd6f401=_0x2fa5e8;_0xa2e8f1[_0x6bf0('0x2b')]=_[_0x6bf0('0x2d')](db[_0x6bf0('0x3b')][_0x6bf0('0x43')]);_0xa2e8f1['query']=_[_0x6bf0('0x2d')](_0x13b917[_0x6bf0('0x2c')]);_0xa2e8f1['filters']=_[_0x6bf0('0x2f')](_0xa2e8f1[_0x6bf0('0x2b')],_0xa2e8f1['query']);_0x5dd00a[_0x6bf0('0x30')]=_[_0x6bf0('0x2f')](_0xa2e8f1['model'],qs[_0x6bf0('0x31')](_0x13b917[_0x6bf0('0x2c')][_0x6bf0('0x31')]));_0x5dd00a['attributes']=_0x5dd00a['attributes'][_0x6bf0('0x32')]?_0x5dd00a[_0x6bf0('0x30')]:_0xa2e8f1[_0x6bf0('0x2b')];_0x5dd00a['order']=qs['sort'](_0x13b917[_0x6bf0('0x2c')][_0x6bf0('0x53')]);_0x5dd00a[_0x6bf0('0x35')]=qs['filters'](_[_0x6bf0('0x54')](_0x13b917['query'],_0xa2e8f1[_0x6bf0('0x2e')]));if(_0x13b917[_0x6bf0('0x2c')][_0x6bf0('0x36')]){_0x5dd00a[_0x6bf0('0x35')]=_[_0x6bf0('0x37')](_0x5dd00a['where'],{'$or':_[_0x6bf0('0x2a')](_0x5dd00a[_0x6bf0('0x30')],function(_0x42fd1d){var _0x989b00={};_0x989b00[_0x42fd1d]={'$like':'%'+_0x13b917[_0x6bf0('0x2c')]['filter']+'%'};return _0x989b00;})});}_0x5dd00a=_[_0x6bf0('0x37')]({},_0x5dd00a,_0x13b917[_0x6bf0('0x3a')]);return _0xd6f401[_0x6bf0('0x51')](_0x5dd00a);}})[_0x6bf0('0x22')](function(_0x41275c){if(_0x41275c){_0xe4a519=_0x41275c['length'];if(!_0x13b917[_0x6bf0('0x2c')][_0x6bf0('0x33')](_0x6bf0('0x55'))){_0x5dd00a['limit']=qs[_0x6bf0('0x1a')](_0x13b917[_0x6bf0('0x2c')][_0x6bf0('0x1a')]);_0x5dd00a[_0x6bf0('0x18')]=qs[_0x6bf0('0x18')](_0x13b917[_0x6bf0('0x2c')]['offset']);}return _0xd6f401[_0x6bf0('0x51')](_0x5dd00a);}})[_0x6bf0('0x22')](function(_0x527a36){if(_0x527a36){return _0x527a36?{'count':_0xe4a519,'rows':_0x527a36}:null;}})[_0x6bf0('0x22')](respondWithResult(_0x389e1e,null))['catch'](handleError(_0x389e1e,null));};exports[_0x6bf0('0x56')]=function(_0x4d44c1,_0x411f86,_0xb07a04){return db[_0x6bf0('0x3b')][_0x6bf0('0x52')]({'where':{'id':_0x4d44c1[_0x6bf0('0x42')]['id']}})[_0x6bf0('0x22')](handleEntityNotFound(_0x411f86,null))[_0x6bf0('0x22')](function(_0x3bb9d7){if(_0x3bb9d7){return db[_0x6bf0('0x57')][_0x6bf0('0x58')](function(_0x3b575f){return db[_0x6bf0('0x3b')]['destroy']({'where':{'IntervalId':_0x4d44c1[_0x6bf0('0x42')]['id']},'transaction':_0x3b575f})[_0x6bf0('0x22')](function(_0x588699){var _0x597969=_['map'](_0x4d44c1[_0x6bf0('0x45')],function(_0x2d3293){delete _0x2d3293['id'];_0x2d3293['IntervalId']=_0x4d44c1[_0x6bf0('0x42')]['id'];return _0x2d3293;});return db['Interval'][_0x6bf0('0x59')](_0x597969,{'transaction':_0x3b575f});});})['then'](function(){return db[_0x6bf0('0x3b')]['findAll']({'where':{'IntervalId':_0x4d44c1[_0x6bf0('0x42')]['id']}});});}})[_0x6bf0('0x22')](respondWithResult(_0x411f86,null))[_0x6bf0('0x40')](handleError(_0x411f86,null));};
\ No newline at end of file
+var _0x89da=['nolimit','order','sort','where','pick','filter','VIRTUAL','options','include','findAll','rows','catch','show','params','includeAll','merge','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','addInterval','IntervalId','getIntervals','findOne','addIntervals','transaction','eml-format','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','../../components/extensions/rewrite','sendStatus','status','end','offset','undefined','limit','count','set','json','apply','reject','update','then','destroy','get','Intervals','error','name','send','index','map','Interval','rawAttributes','type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty'];(function(_0xa052d4,_0x88006f){var _0x3f56b9=function(_0x5554d7){while(--_0x5554d7){_0xa052d4['push'](_0xa052d4['shift']());}};_0x3f56b9(++_0x88006f);}(_0x89da,0x193));var _0xa89d=function(_0x34bd3c,_0x3f89df){_0x34bd3c=_0x34bd3c-0x0;var _0x555669=_0x89da[_0x34bd3c];return _0x555669;};'use strict';var emlformat=require(_0xa89d('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xa89d('0x1'));var jsonpatch=require(_0xa89d('0x2'));var rp=require(_0xa89d('0x3'));var moment=require(_0xa89d('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xa89d('0x5'));var util=require(_0xa89d('0x6'));var path=require(_0xa89d('0x7'));var sox=require('sox');var csv=require(_0xa89d('0x8'));var ejs=require(_0xa89d('0x9'));var fs=require('fs');var fs_extra=require(_0xa89d('0xa'));var _=require(_0xa89d('0xb'));var squel=require(_0xa89d('0xc'));var crypto=require(_0xa89d('0xd'));var jsforce=require(_0xa89d('0xe'));var deskjs=require(_0xa89d('0xf'));var toCsv=require('to-csv');var querystring=require(_0xa89d('0x10'));var Papa=require(_0xa89d('0x11'));var Redis=require(_0xa89d('0x12'));var authService=require(_0xa89d('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0xa89d('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xa89d('0x15'))(_0xa89d('0x16'));var utils=require(_0xa89d('0x17'));var config=require(_0xa89d('0x18'));var licenseUtil=require(_0xa89d('0x19'));var db=require(_0xa89d('0x1a'))['db'];var extensions=require(_0xa89d('0x1b'));function respondWithStatusCode(_0xfee66c,_0x363784){_0x363784=_0x363784||0xcc;return function(_0x5078d9){if(_0x5078d9){return _0xfee66c[_0xa89d('0x1c')](_0x363784);}return _0xfee66c[_0xa89d('0x1d')](_0x363784)[_0xa89d('0x1e')]();};}function respondWithResult(_0x2263a0,_0x5bf359){_0x5bf359=_0x5bf359||0xc8;return function(_0x53c886){if(_0x53c886){return _0x2263a0[_0xa89d('0x1d')](_0x5bf359)['json'](_0x53c886);}};}function respondWithFilteredResult(_0x3fab5f,_0x44aa18){return function(_0x41faa7){if(_0x41faa7){var _0x3fc004=typeof _0x44aa18[_0xa89d('0x1f')]===_0xa89d('0x20')&&typeof _0x44aa18[_0xa89d('0x21')]==='undefined';var _0x49312e=_0x41faa7[_0xa89d('0x22')];var _0x23c3ee=_0x3fc004?0x0:_0x44aa18['offset'];var _0x59feaa=_0x3fc004?_0x41faa7['count']:_0x44aa18[_0xa89d('0x1f')]+_0x44aa18[_0xa89d('0x21')];var _0x4d3819;if(_0x59feaa>=_0x49312e){_0x59feaa=_0x49312e;_0x4d3819=0xc8;}else{_0x4d3819=0xce;}_0x3fab5f[_0xa89d('0x1d')](_0x4d3819);return _0x3fab5f[_0xa89d('0x23')]('Content-Range',_0x23c3ee+'-'+_0x59feaa+'/'+_0x49312e)[_0xa89d('0x24')](_0x41faa7);}return null;};}function patchUpdates(_0x398db7){return function(_0x75faf8){try{jsonpatch[_0xa89d('0x25')](_0x75faf8,_0x398db7,!![]);}catch(_0x381d30){return BPromise[_0xa89d('0x26')](_0x381d30);}return _0x75faf8['save']();};}function saveUpdates(_0x56bcb3,_0x3e5841){return function(_0x3c1108){if(_0x3c1108){return _0x3c1108[_0xa89d('0x27')](_0x56bcb3)[_0xa89d('0x28')](function(_0x472988){return _0x472988;});}return null;};}function removeEntity(_0x3b28ad,_0x8d7824){return function(_0x3807f1){if(_0x3807f1){return _0x3807f1[_0xa89d('0x29')]()['then'](function(){var _0x488bb1=_0x3807f1[_0xa89d('0x2a')]({'plain':!![]});var _0x46f77f=_0xa89d('0x2b');return db['UserProfileResource'][_0xa89d('0x29')]({'where':{'type':_0x46f77f,'resourceId':_0x488bb1['id']}})[_0xa89d('0x28')](function(){return _0x3807f1;});})['then'](function(){_0x3b28ad[_0xa89d('0x1d')](0xcc)[_0xa89d('0x1e')]();});}};}function handleEntityNotFound(_0x24e6c1,_0x1e1195){return function(_0x4503ab){if(!_0x4503ab){_0x24e6c1[_0xa89d('0x1c')](0x194);}return _0x4503ab;};}function handleError(_0x1afc28,_0x14271a){_0x14271a=_0x14271a||0x1f4;return function(_0x3d4408){logger[_0xa89d('0x2c')](_0x3d4408['stack']);if(_0x3d4408[_0xa89d('0x2d')]){delete _0x3d4408[_0xa89d('0x2d')];}_0x1afc28[_0xa89d('0x1d')](_0x14271a)[_0xa89d('0x2e')](_0x3d4408);};}exports[_0xa89d('0x2f')]=function(_0x2ec9a0,_0x599771){var _0x72bc99={},_0x38a013={},_0x5eceeb={'count':0x0,'rows':[]};var _0x25992c=_[_0xa89d('0x30')](db[_0xa89d('0x31')][_0xa89d('0x32')],function(_0xb67a7c){return{'name':_0xb67a7c['fieldName'],'type':_0xb67a7c[_0xa89d('0x33')][_0xa89d('0x34')]};});_0x38a013[_0xa89d('0x35')]=_[_0xa89d('0x30')](_0x25992c,_0xa89d('0x2d'));_0x38a013[_0xa89d('0x36')]=_[_0xa89d('0x37')](_0x2ec9a0[_0xa89d('0x36')]);_0x38a013[_0xa89d('0x38')]=_[_0xa89d('0x39')](_0x38a013['model'],_0x38a013[_0xa89d('0x36')]);_0x72bc99['attributes']=_[_0xa89d('0x39')](_0x38a013[_0xa89d('0x35')],qs[_0xa89d('0x3a')](_0x2ec9a0[_0xa89d('0x36')]['fields']));_0x72bc99[_0xa89d('0x3b')]=_0x72bc99[_0xa89d('0x3b')][_0xa89d('0x3c')]?_0x72bc99[_0xa89d('0x3b')]:_0x38a013['model'];if(!_0x2ec9a0[_0xa89d('0x36')][_0xa89d('0x3d')](_0xa89d('0x3e'))){_0x72bc99[_0xa89d('0x21')]=qs['limit'](_0x2ec9a0[_0xa89d('0x36')][_0xa89d('0x21')]);_0x72bc99[_0xa89d('0x1f')]=qs['offset'](_0x2ec9a0[_0xa89d('0x36')][_0xa89d('0x1f')]);}_0x72bc99[_0xa89d('0x3f')]=qs[_0xa89d('0x40')](_0x2ec9a0[_0xa89d('0x36')][_0xa89d('0x40')]);_0x72bc99[_0xa89d('0x41')]=qs[_0xa89d('0x38')](_[_0xa89d('0x42')](_0x2ec9a0[_0xa89d('0x36')],_0x38a013['filters']),_0x25992c);if(_0x2ec9a0['query'][_0xa89d('0x43')]){_0x72bc99[_0xa89d('0x41')]=_['merge'](_0x72bc99[_0xa89d('0x41')],{'$or':_[_0xa89d('0x30')](_0x25992c,function(_0x512d33){if(_0x512d33[_0xa89d('0x33')]!==_0xa89d('0x44')){var _0x12fc4e={};_0x12fc4e[_0x512d33[_0xa89d('0x2d')]]={'$like':'%'+_0x2ec9a0['query']['filter']+'%'};return _0x12fc4e;}})});}_0x72bc99=_['merge']({},_0x72bc99,_0x2ec9a0[_0xa89d('0x45')]);var _0x11d521={'where':_0x72bc99['where']};return db[_0xa89d('0x31')][_0xa89d('0x22')](_0x11d521)[_0xa89d('0x28')](function(_0xe2a7ed){_0x5eceeb[_0xa89d('0x22')]=_0xe2a7ed;if(_0x2ec9a0['query']['includeAll']){_0x72bc99[_0xa89d('0x46')]=[{'all':!![]}];}return db[_0xa89d('0x31')][_0xa89d('0x47')](_0x72bc99);})[_0xa89d('0x28')](function(_0x50117b){_0x5eceeb[_0xa89d('0x48')]=_0x50117b;return _0x5eceeb;})[_0xa89d('0x28')](respondWithFilteredResult(_0x599771,_0x72bc99))[_0xa89d('0x49')](handleError(_0x599771,null));};exports[_0xa89d('0x4a')]=function(_0x178532,_0x5093fd){var _0x1fb614={'raw':!![],'where':{'id':_0x178532[_0xa89d('0x4b')]['id']}},_0x16e319={};_0x16e319[_0xa89d('0x35')]=_[_0xa89d('0x37')](db[_0xa89d('0x31')][_0xa89d('0x32')]);_0x16e319[_0xa89d('0x36')]=_['keys'](_0x178532['query']);_0x16e319[_0xa89d('0x38')]=_[_0xa89d('0x39')](_0x16e319[_0xa89d('0x35')],_0x16e319['query']);_0x1fb614['attributes']=_['intersection'](_0x16e319['model'],qs['fields'](_0x178532[_0xa89d('0x36')]['fields']));_0x1fb614[_0xa89d('0x3b')]=_0x1fb614[_0xa89d('0x3b')][_0xa89d('0x3c')]?_0x1fb614[_0xa89d('0x3b')]:_0x16e319['model'];if(_0x178532[_0xa89d('0x36')][_0xa89d('0x4c')]){_0x1fb614[_0xa89d('0x46')]=[{'all':!![]}];}_0x1fb614=_[_0xa89d('0x4d')]({},_0x1fb614,_0x178532['options']);return db['Interval'][_0xa89d('0x4e')](_0x1fb614)[_0xa89d('0x28')](handleEntityNotFound(_0x5093fd,null))[_0xa89d('0x28')](respondWithResult(_0x5093fd,null))[_0xa89d('0x49')](handleError(_0x5093fd,null));};exports[_0xa89d('0x4f')]=function(_0x410265,_0x19c001){return db[_0xa89d('0x31')][_0xa89d('0x4f')](_0x410265[_0xa89d('0x50')],{})['then'](function(_0x7f5ebc){var _0x180a3f=_0x410265[_0xa89d('0x51')][_0xa89d('0x2a')]({'plain':!![]});if(!_0x180a3f)throw new Error(_0xa89d('0x52'));if(_0x180a3f['role']===_0xa89d('0x51')){var _0x2329e1=_0x7f5ebc[_0xa89d('0x2a')]({'plain':!![]});var _0x366347=_0xa89d('0x2b');return db['UserProfileSection'][_0xa89d('0x4e')]({'where':{'name':_0x366347,'userProfileId':_0x180a3f[_0xa89d('0x53')]},'raw':!![]})[_0xa89d('0x28')](function(_0x161516){if(_0x161516&&_0x161516[_0xa89d('0x54')]===0x0){return db[_0xa89d('0x55')][_0xa89d('0x4f')]({'name':_0x2329e1[_0xa89d('0x2d')],'resourceId':_0x2329e1['id'],'type':_0x161516[_0xa89d('0x2d')],'sectionId':_0x161516['id']},{})[_0xa89d('0x28')](function(){return _0x7f5ebc;});}else{return _0x7f5ebc;}})[_0xa89d('0x49')](function(_0x36e72d){logger[_0xa89d('0x2c')](_0xa89d('0x56'),_0x36e72d);throw _0x36e72d;});}return _0x7f5ebc;})[_0xa89d('0x28')](respondWithResult(_0x19c001,0xc9))[_0xa89d('0x49')](handleError(_0x19c001,null));};exports[_0xa89d('0x27')]=function(_0x54fb71,_0x10a756){if(_0x54fb71[_0xa89d('0x50')]['id']){delete _0x54fb71['body']['id'];}return db['Interval'][_0xa89d('0x4e')]({'where':{'id':_0x54fb71[_0xa89d('0x4b')]['id']}})['then'](handleEntityNotFound(_0x10a756,null))[_0xa89d('0x28')](saveUpdates(_0x54fb71['body'],null))[_0xa89d('0x28')](respondWithResult(_0x10a756,null))[_0xa89d('0x49')](handleError(_0x10a756,null));};exports[_0xa89d('0x29')]=function(_0x227ef6,_0x24f7f7){return db[_0xa89d('0x31')]['find']({'where':{'id':_0x227ef6[_0xa89d('0x4b')]['id']}})[_0xa89d('0x28')](handleEntityNotFound(_0x24f7f7,null))['then'](removeEntity(_0x24f7f7,null))[_0xa89d('0x49')](handleError(_0x24f7f7,null));};exports[_0xa89d('0x57')]=function(_0x1bd254,_0x450c3d,_0x332a50){if(_0x1bd254[_0xa89d('0x50')]['id']){delete _0x1bd254[_0xa89d('0x50')]['id'];}return db[_0xa89d('0x31')][_0xa89d('0x4e')]({'where':{'id':_0x1bd254['params']['id']}})[_0xa89d('0x28')](handleEntityNotFound(_0x450c3d,null))[_0xa89d('0x28')](function(_0x27bd7b){if(_0x27bd7b){_0x1bd254[_0xa89d('0x50')][_0xa89d('0x58')]=_0x27bd7b['id'];return db[_0xa89d('0x31')][_0xa89d('0x4f')](_0x1bd254[_0xa89d('0x50')]);}})[_0xa89d('0x28')](respondWithResult(_0x450c3d,null))[_0xa89d('0x49')](handleError(_0x450c3d,null));};exports[_0xa89d('0x59')]=function(_0x23b490,_0x91d777,_0x28a87e){var _0xd65594={};var _0x566893={};var _0x374a00;var _0x53ad75;return db['Interval'][_0xa89d('0x5a')]({'where':{'id':_0x23b490[_0xa89d('0x4b')]['id']}})[_0xa89d('0x28')](handleEntityNotFound(_0x91d777,null))[_0xa89d('0x28')](function(_0x5076da){if(_0x5076da){_0x374a00=_0x5076da;_0x566893[_0xa89d('0x35')]=_[_0xa89d('0x37')](db[_0xa89d('0x31')]['rawAttributes']);_0x566893[_0xa89d('0x36')]=_[_0xa89d('0x37')](_0x23b490[_0xa89d('0x36')]);_0x566893[_0xa89d('0x38')]=_['intersection'](_0x566893[_0xa89d('0x35')],_0x566893[_0xa89d('0x36')]);_0xd65594[_0xa89d('0x3b')]=_[_0xa89d('0x39')](_0x566893[_0xa89d('0x35')],qs[_0xa89d('0x3a')](_0x23b490[_0xa89d('0x36')][_0xa89d('0x3a')]));_0xd65594[_0xa89d('0x3b')]=_0xd65594[_0xa89d('0x3b')][_0xa89d('0x3c')]?_0xd65594['attributes']:_0x566893[_0xa89d('0x35')];_0xd65594[_0xa89d('0x3f')]=qs[_0xa89d('0x40')](_0x23b490[_0xa89d('0x36')]['sort']);_0xd65594['where']=qs[_0xa89d('0x38')](_['pick'](_0x23b490[_0xa89d('0x36')],_0x566893[_0xa89d('0x38')]));if(_0x23b490['query']['filter']){_0xd65594[_0xa89d('0x41')]=_['merge'](_0xd65594[_0xa89d('0x41')],{'$or':_[_0xa89d('0x30')](_0xd65594['attributes'],function(_0x1e1840){var _0x36205d={};_0x36205d[_0x1e1840]={'$like':'%'+_0x23b490[_0xa89d('0x36')][_0xa89d('0x43')]+'%'};return _0x36205d;})});}_0xd65594=_[_0xa89d('0x4d')]({},_0xd65594,_0x23b490['options']);return _0x374a00[_0xa89d('0x59')](_0xd65594);}})[_0xa89d('0x28')](function(_0x3fccf7){if(_0x3fccf7){_0x53ad75=_0x3fccf7['length'];if(!_0x23b490[_0xa89d('0x36')]['hasOwnProperty'](_0xa89d('0x3e'))){_0xd65594[_0xa89d('0x21')]=qs[_0xa89d('0x21')](_0x23b490[_0xa89d('0x36')][_0xa89d('0x21')]);_0xd65594['offset']=qs['offset'](_0x23b490[_0xa89d('0x36')][_0xa89d('0x1f')]);}return _0x374a00[_0xa89d('0x59')](_0xd65594);}})['then'](function(_0x42fd2a){if(_0x42fd2a){return _0x42fd2a?{'count':_0x53ad75,'rows':_0x42fd2a}:null;}})[_0xa89d('0x28')](respondWithResult(_0x91d777,null))[_0xa89d('0x49')](handleError(_0x91d777,null));};exports[_0xa89d('0x5b')]=function(_0xe26416,_0x4d88fe,_0x547af4){return db[_0xa89d('0x31')][_0xa89d('0x5a')]({'where':{'id':_0xe26416['params']['id']}})[_0xa89d('0x28')](handleEntityNotFound(_0x4d88fe,null))[_0xa89d('0x28')](function(_0x143211){if(_0x143211){return db['sequelize'][_0xa89d('0x5c')](function(_0x1df2d5){return db['Interval'][_0xa89d('0x29')]({'where':{'IntervalId':_0xe26416[_0xa89d('0x4b')]['id']},'transaction':_0x1df2d5})[_0xa89d('0x28')](function(_0x2a76f4){var _0x1ab096=_[_0xa89d('0x30')](_0xe26416[_0xa89d('0x50')],function(_0x29949a){delete _0x29949a['id'];_0x29949a[_0xa89d('0x58')]=_0xe26416[_0xa89d('0x4b')]['id'];return _0x29949a;});return db[_0xa89d('0x31')]['bulkCreate'](_0x1ab096,{'transaction':_0x1df2d5});});})[_0xa89d('0x28')](function(){return db[_0xa89d('0x31')][_0xa89d('0x47')]({'where':{'IntervalId':_0xe26416[_0xa89d('0x4b')]['id']}});});}})['then'](respondWithResult(_0x4d88fe,null))[_0xa89d('0x49')](handleError(_0x4d88fe,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5a69=['moment','bluebird','request-promise','../../config/environment','./interval.attributes','../../components/extensions/rewrite','exports','define','Interval','rewrite','lodash','util','api'];(function(_0x16a5c2,_0x4c6bcc){var _0x285e22=function(_0x5b7578){while(--_0x5b7578){_0x16a5c2['push'](_0x16a5c2['shift']());}};_0x285e22(++_0x4c6bcc);}(_0x5a69,0x1de));var _0x95a6=function(_0x33b9ad,_0x1b057c){_0x33b9ad=_0x33b9ad-0x0;var _0x1216ca=_0x5a69[_0x33b9ad];return _0x1216ca;};'use strict';var _=require(_0x95a6('0x0'));var util=require(_0x95a6('0x1'));var logger=require('../../config/logger')(_0x95a6('0x2'));var moment=require(_0x95a6('0x3'));var BPromise=require(_0x95a6('0x4'));var rp=require(_0x95a6('0x5'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x95a6('0x6'));var attributes=require(_0x95a6('0x7'));var extensions=require(_0x95a6('0x8'));module[_0x95a6('0x9')]=function(_0x295b87,_0x489613){return _0x295b87[_0x95a6('0xa')](_0x95a6('0xb'),attributes,{'tableName':'tools_intervals','paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x5e17fa,_0x133853){extensions['rewrite'](_0x295b87,_0x5e17fa);},'afterBulkCreate':function(_0x546804,_0x8d78fd,_0x23a2f9){_0x23a2f9();extensions[_0x95a6('0xc')](_0x295b87,_0x546804[0x0]);},'afterUpdate':function(_0x571575,_0x396099){extensions['rewrite'](_0x295b87,_0x571575);},'afterDestroy':function(_0x3313e6,_0xbd9ae){extensions[_0x95a6('0xc')](_0x295b87,_0x3313e6);}}});};
\ No newline at end of file
+var _0x957a=['moment','request-promise','path','rimraf','../../config/environment','./interval.attributes','../../components/extensions/rewrite','exports','define','Interval','rewrite','lodash','util','../../config/logger','api'];(function(_0x10d6d7,_0x5e081c){var _0x58e7f1=function(_0x277dae){while(--_0x277dae){_0x10d6d7['push'](_0x10d6d7['shift']());}};_0x58e7f1(++_0x5e081c);}(_0x957a,0x137));var _0xa957=function(_0x14e2d6,_0xd6bf02){_0x14e2d6=_0x14e2d6-0x0;var _0x462819=_0x957a[_0x14e2d6];return _0x462819;};'use strict';var _=require(_0xa957('0x0'));var util=require(_0xa957('0x1'));var logger=require(_0xa957('0x2'))(_0xa957('0x3'));var moment=require(_0xa957('0x4'));var BPromise=require('bluebird');var rp=require(_0xa957('0x5'));var fs=require('fs');var path=require(_0xa957('0x6'));var rimraf=require(_0xa957('0x7'));var config=require(_0xa957('0x8'));var attributes=require(_0xa957('0x9'));var extensions=require(_0xa957('0xa'));module[_0xa957('0xb')]=function(_0x345eeb,_0x33f0fb){return _0x345eeb[_0xa957('0xc')](_0xa957('0xd'),attributes,{'tableName':'tools_intervals','paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x59672d,_0x15271e){extensions[_0xa957('0xe')](_0x345eeb,_0x59672d);},'afterBulkCreate':function(_0x187e99,_0x26ee00,_0xebffd8){_0xebffd8();extensions[_0xa957('0xe')](_0x345eeb,_0x187e99[0x0]);},'afterUpdate':function(_0x575adf,_0x5f4b36){extensions[_0xa957('0xe')](_0x345eeb,_0x575adf);},'afterDestroy':function(_0x29fbab,_0xc4b669){extensions[_0xa957('0xe')](_0x345eeb,_0x29fbab);}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['code','error','message','result','catch','Interval','findAll','options','raw','where','attributes','include','map','model','GetInterval','stringify','ShowInterval','find','then','lodash','util','moment','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','info','Interval,\x20%s,\x20%s','request\x20sent','debug','Interval,\x20%s,\x20%s,\x20%s'];(function(_0x38b14f,_0xd08fa8){var _0x22a324=function(_0x4bbb05){while(--_0x4bbb05){_0x38b14f['push'](_0x38b14f['shift']());}};_0x22a324(++_0xd08fa8);}(_0xa9e0,0x123));var _0x0a9e=function(_0x29b609,_0x19d388){_0x29b609=_0x29b609-0x0;var _0x54c952=_0xa9e0[_0x29b609];return _0x54c952;};'use strict';var _=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var moment=require(_0x0a9e('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x0a9e('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x0a9e('0x4'));var logger=require(_0x0a9e('0x5'))(_0x0a9e('0x6'));var config=require(_0x0a9e('0x7'));var jayson=require(_0x0a9e('0x8'));var client=jayson['client'][_0x0a9e('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x441e3a,_0x2cc193,_0x5f41ea){return new BPromise(function(_0x503809,_0xe42b77){return client['request'](_0x441e3a,_0x5f41ea)['then'](function(_0x39753a){logger[_0x0a9e('0xa')](_0x0a9e('0xb'),_0x2cc193,_0x0a9e('0xc'));logger[_0x0a9e('0xd')](_0x0a9e('0xe'),_0x2cc193,'request\x20sent',JSON['stringify'](_0x39753a));if(_0x39753a['error']){if(_0x39753a['error'][_0x0a9e('0xf')]===0x1f4){logger[_0x0a9e('0x10')](_0x0a9e('0xb'),_0x2cc193,_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);return _0xe42b77(_0x39753a[_0x0a9e('0x10')]['message']);}logger[_0x0a9e('0x10')](_0x0a9e('0xb'),_0x2cc193,_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);return _0x503809(_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);}else{logger['info'](_0x0a9e('0xb'),_0x2cc193,'request\x20sent');_0x503809(_0x39753a[_0x0a9e('0x12')]['message']);}})[_0x0a9e('0x13')](function(_0x12066b){logger['error'](_0x0a9e('0xb'),_0x2cc193,_0x12066b);_0xe42b77(_0x12066b);});});}exports['GetInterval']=function(_0x459eb1){var _0x478723=this;return new Promise(function(_0x106033,_0x205fd6){return db[_0x0a9e('0x14')][_0x0a9e('0x15')]({'raw':_0x459eb1[_0x0a9e('0x16')]?_0x459eb1[_0x0a9e('0x16')][_0x0a9e('0x17')]===undefined?!![]:![]:!![],'where':_0x459eb1[_0x0a9e('0x16')]?_0x459eb1[_0x0a9e('0x16')][_0x0a9e('0x18')]||null:null,'attributes':_0x459eb1['options']?_0x459eb1[_0x0a9e('0x16')][_0x0a9e('0x19')]||null:null,'limit':_0x459eb1['options']?_0x459eb1[_0x0a9e('0x16')]['limit']||null:null,'include':_0x459eb1['options']?_0x459eb1[_0x0a9e('0x16')][_0x0a9e('0x1a')]?_[_0x0a9e('0x1b')](_0x459eb1[_0x0a9e('0x16')]['include'],function(_0xfb6e48){return{'model':db[_0xfb6e48[_0x0a9e('0x1c')]],'as':_0xfb6e48['as'],'attributes':_0xfb6e48[_0x0a9e('0x19')],'include':_0xfb6e48[_0x0a9e('0x1a')]?_[_0x0a9e('0x1b')](_0xfb6e48[_0x0a9e('0x1a')],function(_0x16b1ca){return{'model':db[_0x16b1ca['model']],'as':_0x16b1ca['as'],'attributes':_0x16b1ca['attributes'],'include':_0x16b1ca[_0x0a9e('0x1a')]?_[_0x0a9e('0x1b')](_0x16b1ca[_0x0a9e('0x1a')],function(_0x33161b){return{'model':db[_0x33161b['model']],'as':_0x33161b['as'],'attributes':_0x33161b[_0x0a9e('0x19')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x45a1e7){logger['info'](_0x0a9e('0x1d'),_0x459eb1);logger[_0x0a9e('0xd')](_0x0a9e('0x1d'),_0x459eb1,JSON[_0x0a9e('0x1e')](_0x45a1e7));_0x106033(_0x45a1e7);})[_0x0a9e('0x13')](function(_0x1538a4){logger[_0x0a9e('0x10')](_0x0a9e('0x1d'),_0x1538a4['message'],_0x459eb1);_0x205fd6(_0x478723[_0x0a9e('0x10')](0x1f4,_0x1538a4[_0x0a9e('0x11')]));});});};exports[_0x0a9e('0x1f')]=function(_0x2ec755){var _0x5c877d=this;return new Promise(function(_0x15b200,_0x40e7a3){return db[_0x0a9e('0x14')][_0x0a9e('0x20')]({'raw':_0x2ec755[_0x0a9e('0x16')]?_0x2ec755[_0x0a9e('0x16')][_0x0a9e('0x17')]===undefined?!![]:![]:!![],'where':_0x2ec755[_0x0a9e('0x16')]?_0x2ec755[_0x0a9e('0x16')]['where']||null:null,'attributes':_0x2ec755[_0x0a9e('0x16')]?_0x2ec755['options'][_0x0a9e('0x19')]||null:null,'include':_0x2ec755[_0x0a9e('0x16')]?_0x2ec755[_0x0a9e('0x16')][_0x0a9e('0x1a')]?_[_0x0a9e('0x1b')](_0x2ec755['options'][_0x0a9e('0x1a')],function(_0x46f0a5){return{'model':db[_0x46f0a5[_0x0a9e('0x1c')]],'as':_0x46f0a5['as'],'attributes':_0x46f0a5[_0x0a9e('0x19')],'include':_0x46f0a5[_0x0a9e('0x1a')]?_[_0x0a9e('0x1b')](_0x46f0a5[_0x0a9e('0x1a')],function(_0x39e565){return{'model':db[_0x39e565['model']],'as':_0x39e565['as'],'attributes':_0x39e565[_0x0a9e('0x19')],'include':_0x39e565['include']?_[_0x0a9e('0x1b')](_0x39e565[_0x0a9e('0x1a')],function(_0x2b7e7f){return{'model':db[_0x2b7e7f[_0x0a9e('0x1c')]],'as':_0x2b7e7f['as'],'attributes':_0x2b7e7f['attributes']};}):[]};}):[]};}):[]:[]})[_0x0a9e('0x21')](function(_0xd1836d){logger[_0x0a9e('0xa')](_0x0a9e('0x1f'),_0x2ec755);logger['debug']('ShowInterval',_0x2ec755,JSON[_0x0a9e('0x1e')](_0xd1836d));_0x15b200(_0xd1836d);})['catch'](function(_0x24936a){logger[_0x0a9e('0x10')](_0x0a9e('0x1f'),_0x24936a[_0x0a9e('0x11')],_0x2ec755);_0x40e7a3(_0x5c877d['error'](0x1f4,_0x24936a[_0x0a9e('0x11')]));});});};
\ No newline at end of file
+var _0xa9e0=['code','error','message','result','catch','Interval','findAll','options','raw','where','attributes','include','map','model','GetInterval','stringify','ShowInterval','find','then','lodash','util','moment','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','info','Interval,\x20%s,\x20%s','request\x20sent','debug','Interval,\x20%s,\x20%s,\x20%s'];(function(_0x422be2,_0x1c439e){var _0x1b820e=function(_0x513cc8){while(--_0x513cc8){_0x422be2['push'](_0x422be2['shift']());}};_0x1b820e(++_0x1c439e);}(_0xa9e0,0x123));var _0x0a9e=function(_0xf50820,_0x56f041){_0xf50820=_0xf50820-0x0;var _0x2a9b10=_0xa9e0[_0xf50820];return _0x2a9b10;};'use strict';var _=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var moment=require(_0x0a9e('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x0a9e('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x0a9e('0x4'));var logger=require(_0x0a9e('0x5'))(_0x0a9e('0x6'));var config=require(_0x0a9e('0x7'));var jayson=require(_0x0a9e('0x8'));var client=jayson['client'][_0x0a9e('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x441e3a,_0x2cc193,_0x5f41ea){return new BPromise(function(_0x503809,_0xe42b77){return client['request'](_0x441e3a,_0x5f41ea)['then'](function(_0x39753a){logger[_0x0a9e('0xa')](_0x0a9e('0xb'),_0x2cc193,_0x0a9e('0xc'));logger[_0x0a9e('0xd')](_0x0a9e('0xe'),_0x2cc193,'request\x20sent',JSON['stringify'](_0x39753a));if(_0x39753a['error']){if(_0x39753a['error'][_0x0a9e('0xf')]===0x1f4){logger[_0x0a9e('0x10')](_0x0a9e('0xb'),_0x2cc193,_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);return _0xe42b77(_0x39753a[_0x0a9e('0x10')]['message']);}logger[_0x0a9e('0x10')](_0x0a9e('0xb'),_0x2cc193,_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);return _0x503809(_0x39753a[_0x0a9e('0x10')][_0x0a9e('0x11')]);}else{logger['info'](_0x0a9e('0xb'),_0x2cc193,'request\x20sent');_0x503809(_0x39753a[_0x0a9e('0x12')]['message']);}})[_0x0a9e('0x13')](function(_0x12066b){logger['error'](_0x0a9e('0xb'),_0x2cc193,_0x12066b);_0xe42b77(_0x12066b);});});}exports['GetInterval']=function(_0x459eb1){var _0x478723=this;return new Promise(function(_0x106033,_0x205fd6){return db[_0x0a9e('0x14')][_0x0a9e('0x15')]({'raw':_0x459eb1[_0x0a9e('0x16')]?_0x459eb1[_0x0a9e('0x16')][_0x0a9e('0x17')]===undefined?!![]:![]:!![],'where':_0x459eb1[_0x0a9e('0x16')]?_0x459eb1[_0x0a9e('0x16')][_0x0a9e('0x18')]||null:null,'attributes':_0x459eb1['options']?_0x459eb1[_0x0a9e('0x16')][_0x0a9e('0x19')]||null:null,'limit':_0x459eb1['options']?_0x459eb1[_0x0a9e('0x16')]['limit']||null:null,'include':_0x459eb1['options']?_0x459eb1[_0x0a9e('0x16')][_0x0a9e('0x1a')]?_[_0x0a9e('0x1b')](_0x459eb1[_0x0a9e('0x16')]['include'],function(_0xfb6e48){return{'model':db[_0xfb6e48[_0x0a9e('0x1c')]],'as':_0xfb6e48['as'],'attributes':_0xfb6e48[_0x0a9e('0x19')],'include':_0xfb6e48[_0x0a9e('0x1a')]?_[_0x0a9e('0x1b')](_0xfb6e48[_0x0a9e('0x1a')],function(_0x16b1ca){return{'model':db[_0x16b1ca['model']],'as':_0x16b1ca['as'],'attributes':_0x16b1ca['attributes'],'include':_0x16b1ca[_0x0a9e('0x1a')]?_[_0x0a9e('0x1b')](_0x16b1ca[_0x0a9e('0x1a')],function(_0x33161b){return{'model':db[_0x33161b['model']],'as':_0x33161b['as'],'attributes':_0x33161b[_0x0a9e('0x19')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x45a1e7){logger['info'](_0x0a9e('0x1d'),_0x459eb1);logger[_0x0a9e('0xd')](_0x0a9e('0x1d'),_0x459eb1,JSON[_0x0a9e('0x1e')](_0x45a1e7));_0x106033(_0x45a1e7);})[_0x0a9e('0x13')](function(_0x1538a4){logger[_0x0a9e('0x10')](_0x0a9e('0x1d'),_0x1538a4['message'],_0x459eb1);_0x205fd6(_0x478723[_0x0a9e('0x10')](0x1f4,_0x1538a4[_0x0a9e('0x11')]));});});};exports[_0x0a9e('0x1f')]=function(_0x2ec755){var _0x5c877d=this;return new Promise(function(_0x15b200,_0x40e7a3){return db[_0x0a9e('0x14')][_0x0a9e('0x20')]({'raw':_0x2ec755[_0x0a9e('0x16')]?_0x2ec755[_0x0a9e('0x16')][_0x0a9e('0x17')]===undefined?!![]:![]:!![],'where':_0x2ec755[_0x0a9e('0x16')]?_0x2ec755[_0x0a9e('0x16')]['where']||null:null,'attributes':_0x2ec755[_0x0a9e('0x16')]?_0x2ec755['options'][_0x0a9e('0x19')]||null:null,'include':_0x2ec755[_0x0a9e('0x16')]?_0x2ec755[_0x0a9e('0x16')][_0x0a9e('0x1a')]?_[_0x0a9e('0x1b')](_0x2ec755['options'][_0x0a9e('0x1a')],function(_0x46f0a5){return{'model':db[_0x46f0a5[_0x0a9e('0x1c')]],'as':_0x46f0a5['as'],'attributes':_0x46f0a5[_0x0a9e('0x19')],'include':_0x46f0a5[_0x0a9e('0x1a')]?_[_0x0a9e('0x1b')](_0x46f0a5[_0x0a9e('0x1a')],function(_0x39e565){return{'model':db[_0x39e565['model']],'as':_0x39e565['as'],'attributes':_0x39e565[_0x0a9e('0x19')],'include':_0x39e565['include']?_[_0x0a9e('0x1b')](_0x39e565[_0x0a9e('0x1a')],function(_0x2b7e7f){return{'model':db[_0x2b7e7f[_0x0a9e('0x1c')]],'as':_0x2b7e7f['as'],'attributes':_0x2b7e7f['attributes']};}):[]};}):[]};}):[]:[]})[_0x0a9e('0x21')](function(_0xd1836d){logger[_0x0a9e('0xa')](_0x0a9e('0x1f'),_0x2ec755);logger['debug']('ShowInterval',_0x2ec755,JSON[_0x0a9e('0x1e')](_0xd1836d));_0x15b200(_0xd1836d);})['catch'](function(_0x24936a){logger[_0x0a9e('0x10')](_0x0a9e('0x1f'),_0x24936a[_0x0a9e('0x11')],_0x2ec755);_0x40e7a3(_0x5c877d['error'](0x1f4,_0x24936a[_0x0a9e('0x11')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb10b=['./jira.controller','post','send','exports','express','../../components/auth/service'];(function(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0xb10b,0x12a));var _0xbb10=function(_0x4bfab7,_0x1f92fc){_0x4bfab7=_0x4bfab7-0x0;var _0x232fd7=_0xb10b[_0x4bfab7];return _0x232fd7;};'use strict';var express=require(_0xbb10('0x0'));var router=express['Router']();var auth=require(_0xbb10('0x1'));var controller=require(_0xbb10('0x2'));router[_0xbb10('0x3')]('/',auth['isAuthenticated'](),controller[_0xbb10('0x4')]);module[_0xbb10('0x5')]=router;
\ No newline at end of file
+var _0xadb5=['post','isAuthenticated','exports','Router','./jira.controller'];(function(_0x5917e7,_0x5cd32c){var _0xc6c9fb=function(_0x4978b6){while(--_0x4978b6){_0x5917e7['push'](_0x5917e7['shift']());}};_0xc6c9fb(++_0x5cd32c);}(_0xadb5,0xad));var _0x5adb=function(_0x28a760,_0x3ea142){_0x28a760=_0x28a760-0x0;var _0xe9d7e7=_0xadb5[_0x28a760];return _0xe9d7e7;};'use strict';var express=require('express');var router=express[_0x5adb('0x0')]();var auth=require('../../components/auth/service');var controller=require(_0x5adb('0x1'));router[_0x5adb('0x2')]('/',auth[_0x5adb('0x3')](),controller['send']);module[_0x5adb('0x4')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1f82=['headers','connection','remoteAddress','socket','bluebird','../../config/logger','3eAmWpBVP0','key','MOTGUI','summary','Report','\x20from\x20','stringify','Bug','fields','customfield_11500','email','customfield_11501','oldToken','name','reason','track.xcallymotion.com','/rest/api/2/issue','POST','application/json','Basic\x20','request','setEncoding','data','end','json','parse','error','status','Error\x20during\x20license\x20request.\x20Please\x20contact\x20our\x20license\x20team\x20at\x20license@xcally.com\x20with\x20your\x20request','api.jira','openIssue','send','body'];(function(_0x5f52d6,_0x3cfce5){var _0x850007=function(_0x57be5e){while(--_0x57be5e){_0x5f52d6['push'](_0x5f52d6['shift']());}};_0x850007(++_0x3cfce5);}(_0x1f82,0x13c));var _0x21f8=function(_0x37bf43,_0x5b2339){_0x37bf43=_0x37bf43-0x0;var _0x4101c5=_0x1f82[_0x37bf43];return _0x4101c5;};'use strict';var BPromise=require(_0x21f8('0x0'));var https=require('https');var logger=require(_0x21f8('0x1'))('api');var USERNAME='support';var PASSWORD=_0x21f8('0x2');function openIssue(_0x243cee,_0x5105d9){var _0x3a3ec3={'fields':{'project':{'key':_0x243cee[_0x21f8('0x3')]||_0x21f8('0x4')},'summary':(_0x243cee[_0x21f8('0x5')]||_0x21f8('0x6'))+_0x21f8('0x7')+_0x243cee['ip'],'description':_0x243cee['description']||JSON[_0x21f8('0x8')](_0x243cee),'issuetype':{'name':_0x243cee['issuetype']||_0x21f8('0x9')}}};_0x3a3ec3[_0x21f8('0xa')][_0x21f8('0xb')]=_0x243cee[_0x21f8('0xc')];_0x3a3ec3[_0x21f8('0xa')][_0x21f8('0xd')]=_0x243cee[_0x21f8('0xe')];_0x3a3ec3[_0x21f8('0xa')]['customfield_11502']=_0x243cee['newToken'];_0x3a3ec3[_0x21f8('0xa')]['customfield_11503']=_0x243cee[_0x21f8('0xf')];_0x3a3ec3[_0x21f8('0xa')]['customfield_11504']=_0x243cee[_0x21f8('0x10')];_0x3a3ec3['fields']['customfield_10102']=_0x243cee['ip'];var _0x548092={'host':_0x21f8('0x11'),'port':0x1bb,'path':_0x21f8('0x12'),'method':_0x21f8('0x13'),'timeout':0x4e20,'headers':{'Content-Type':_0x21f8('0x14'),'Authorization':_0x21f8('0x15')+new Buffer(USERNAME+':'+PASSWORD)['toString']('base64')}};var _0x446108=JSON[_0x21f8('0x8')](_0x3a3ec3);var _0x1ebb83=https[_0x21f8('0x16')](_0x548092,function(_0x381b06){_0x381b06[_0x21f8('0x17')]('utf8');var _0x4b03d2='';_0x381b06['on'](_0x21f8('0x18'),function(_0x24eac7){_0x4b03d2+=_0x24eac7;});_0x381b06['on'](_0x21f8('0x19'),function(){if(_0x5105d9){return _0x5105d9['status'](_0x381b06['statusCode'])[_0x21f8('0x1a')](JSON[_0x21f8('0x1b')](_0x4b03d2));}});});_0x1ebb83['on'](_0x21f8('0x1c'),function(_0x22cf9c){if(_0x5105d9){return _0x5105d9[_0x21f8('0x1d')](0x1f4)['json']({'errors':[{'message':_0x21f8('0x1e'),'type':_0x21f8('0x1f')}]});}});_0x1ebb83['write'](_0x446108);_0x1ebb83[_0x21f8('0x19')]();}exports[_0x21f8('0x20')]=openIssue;exports[_0x21f8('0x21')]=function(_0x18d9a8,_0x284272){_0x18d9a8[_0x21f8('0x22')]['ip']=_0x18d9a8[_0x21f8('0x23')]['x-forwarded-for']||_0x18d9a8[_0x21f8('0x24')][_0x21f8('0x25')]||_0x18d9a8[_0x21f8('0x26')][_0x21f8('0x25')]||_0x18d9a8[_0x21f8('0x24')][_0x21f8('0x26')][_0x21f8('0x25')];return openIssue(_0x18d9a8[_0x21f8('0x22')],_0x284272);};
\ No newline at end of file
+var _0xd913=['3eAmWpBVP0','key','MOTGUI','summary','\x20from\x20','description','stringify','fields','customfield_11500','customfield_11501','oldToken','customfield_11502','customfield_11503','name','customfield_11504','customfield_10102','/rest/api/2/issue','POST','toString','base64','request','setEncoding','utf8','data','statusCode','json','parse','error','Error\x20during\x20license\x20request.\x20Please\x20contact\x20our\x20license\x20team\x20at\x20license@xcally.com\x20with\x20your\x20request','write','end','openIssue','send','body','x-forwarded-for','connection','remoteAddress','socket','https','../../config/logger','api','support'];(function(_0xa464c9,_0x7c86d8){var _0x3d73c4=function(_0x5c2056){while(--_0x5c2056){_0xa464c9['push'](_0xa464c9['shift']());}};_0x3d73c4(++_0x7c86d8);}(_0xd913,0x1a0));var _0x3d91=function(_0x490703,_0xd915d2){_0x490703=_0x490703-0x0;var _0x194bee=_0xd913[_0x490703];return _0x194bee;};'use strict';var BPromise=require('bluebird');var https=require(_0x3d91('0x0'));var logger=require(_0x3d91('0x1'))(_0x3d91('0x2'));var USERNAME=_0x3d91('0x3');var PASSWORD=_0x3d91('0x4');function openIssue(_0x5b72b7,_0x2e9acb){var _0x34c73e={'fields':{'project':{'key':_0x5b72b7[_0x3d91('0x5')]||_0x3d91('0x6')},'summary':(_0x5b72b7[_0x3d91('0x7')]||'Report')+_0x3d91('0x8')+_0x5b72b7['ip'],'description':_0x5b72b7[_0x3d91('0x9')]||JSON[_0x3d91('0xa')](_0x5b72b7),'issuetype':{'name':_0x5b72b7['issuetype']||'Bug'}}};_0x34c73e[_0x3d91('0xb')][_0x3d91('0xc')]=_0x5b72b7['email'];_0x34c73e[_0x3d91('0xb')][_0x3d91('0xd')]=_0x5b72b7[_0x3d91('0xe')];_0x34c73e['fields'][_0x3d91('0xf')]=_0x5b72b7['newToken'];_0x34c73e[_0x3d91('0xb')][_0x3d91('0x10')]=_0x5b72b7[_0x3d91('0x11')];_0x34c73e['fields'][_0x3d91('0x12')]=_0x5b72b7['reason'];_0x34c73e[_0x3d91('0xb')][_0x3d91('0x13')]=_0x5b72b7['ip'];var _0x38092d={'host':'track.xcallymotion.com','port':0x1bb,'path':_0x3d91('0x14'),'method':_0x3d91('0x15'),'timeout':0x4e20,'headers':{'Content-Type':'application/json','Authorization':'Basic\x20'+new Buffer(USERNAME+':'+PASSWORD)[_0x3d91('0x16')](_0x3d91('0x17'))}};var _0x56f642=JSON[_0x3d91('0xa')](_0x34c73e);var _0x206b3e=https[_0x3d91('0x18')](_0x38092d,function(_0x357923){_0x357923[_0x3d91('0x19')](_0x3d91('0x1a'));var _0x19fd28='';_0x357923['on'](_0x3d91('0x1b'),function(_0x6a713d){_0x19fd28+=_0x6a713d;});_0x357923['on']('end',function(){if(_0x2e9acb){return _0x2e9acb['status'](_0x357923[_0x3d91('0x1c')])[_0x3d91('0x1d')](JSON[_0x3d91('0x1e')](_0x19fd28));}});});_0x206b3e['on'](_0x3d91('0x1f'),function(_0x23d3a6){if(_0x2e9acb){return _0x2e9acb['status'](0x1f4)[_0x3d91('0x1d')]({'errors':[{'message':_0x3d91('0x20'),'type':'api.jira'}]});}});_0x206b3e[_0x3d91('0x21')](_0x56f642);_0x206b3e[_0x3d91('0x22')]();}exports[_0x3d91('0x23')]=openIssue;exports[_0x3d91('0x24')]=function(_0x3ba145,_0x43067a){_0x3ba145[_0x3d91('0x25')]['ip']=_0x3ba145['headers'][_0x3d91('0x26')]||_0x3ba145[_0x3d91('0x27')][_0x3d91('0x28')]||_0x3ba145['socket'][_0x3d91('0x28')]||_0x3ba145[_0x3d91('0x27')][_0x3d91('0x29')][_0x3d91('0x28')];return openIssue(_0x3ba145[_0x3d91('0x25')],_0x43067a);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa8a8=['create','put','update','delete','destroy','exports','multer','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./jscriptyAnswerReport.controller','get','isAuthenticated','index','/describe','describe','/:id','post'];(function(_0x4c1c6a,_0x4c1ef5){var _0x59a9df=function(_0x6825f8){while(--_0x6825f8){_0x4c1c6a['push'](_0x4c1c6a['shift']());}};_0x59a9df(++_0x4c1ef5);}(_0xa8a8,0xec));var _0x8a8a=function(_0x1b8c28,_0x6477a0){_0x1b8c28=_0x1b8c28-0x0;var _0x584046=_0xa8a8[_0x1b8c28];return _0x584046;};'use strict';var multer=require(_0x8a8a('0x0'));var util=require(_0x8a8a('0x1'));var path=require(_0x8a8a('0x2'));var timeout=require(_0x8a8a('0x3'));var express=require('express');var router=express[_0x8a8a('0x4')]();var fs_extra=require(_0x8a8a('0x5'));var auth=require(_0x8a8a('0x6'));var interaction=require(_0x8a8a('0x7'));var config=require(_0x8a8a('0x8'));var controller=require(_0x8a8a('0x9'));router[_0x8a8a('0xa')]('/',auth[_0x8a8a('0xb')](),controller[_0x8a8a('0xc')]);router[_0x8a8a('0xa')](_0x8a8a('0xd'),auth[_0x8a8a('0xb')](),controller[_0x8a8a('0xe')]);router[_0x8a8a('0xa')](_0x8a8a('0xf'),auth['isAuthenticated'](),controller['show']);router[_0x8a8a('0x10')]('/',auth['isAuthenticated'](),controller[_0x8a8a('0x11')]);router[_0x8a8a('0x12')]('/:id',auth[_0x8a8a('0xb')](),controller[_0x8a8a('0x13')]);router[_0x8a8a('0x14')]('/:id',auth[_0x8a8a('0xb')](),controller[_0x8a8a('0x15')]);module[_0x8a8a('0x16')]=router;
\ No newline at end of file
+var _0x0bb5=['describe','show','post','put','/:id','update','delete','exports','multer','util','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./jscriptyAnswerReport.controller','get','/describe','isAuthenticated'];(function(_0x1a5c96,_0x462e31){var _0x4ea39a=function(_0x3dc2b9){while(--_0x3dc2b9){_0x1a5c96['push'](_0x1a5c96['shift']());}};_0x4ea39a(++_0x462e31);}(_0x0bb5,0x148));var _0x50bb=function(_0x328f9e,_0x591b7f){_0x328f9e=_0x328f9e-0x0;var _0x3eb141=_0x0bb5[_0x328f9e];return _0x3eb141;};'use strict';var multer=require(_0x50bb('0x0'));var util=require(_0x50bb('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0x50bb('0x2'));var router=express[_0x50bb('0x3')]();var fs_extra=require(_0x50bb('0x4'));var auth=require(_0x50bb('0x5'));var interaction=require(_0x50bb('0x6'));var config=require(_0x50bb('0x7'));var controller=require(_0x50bb('0x8'));router[_0x50bb('0x9')]('/',auth['isAuthenticated'](),controller['index']);router[_0x50bb('0x9')](_0x50bb('0xa'),auth[_0x50bb('0xb')](),controller[_0x50bb('0xc')]);router['get']('/:id',auth[_0x50bb('0xb')](),controller[_0x50bb('0xd')]);router[_0x50bb('0xe')]('/',auth[_0x50bb('0xb')](),controller['create']);router[_0x50bb('0xf')](_0x50bb('0x10'),auth[_0x50bb('0xb')](),controller[_0x50bb('0x11')]);router[_0x50bb('0x12')](_0x50bb('0x10'),auth[_0x50bb('0xb')](),controller['destroy']);module[_0x50bb('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['long','STRING','sequelize','exports','TEXT'];(function(_0x51020b,_0x38c2c7){var _0x371e47=function(_0x2a538f){while(--_0x2a538f){_0x51020b['push'](_0x51020b['shift']());}};_0x371e47(++_0x38c2c7);}(_0x7a54,0x106));var _0x47a5=function(_0x37078b,_0x5b037e){_0x37078b=_0x37078b-0x0;var _0x172558=_0x7a54[_0x37078b];return _0x172558;};'use strict';var Sequelize=require(_0x47a5('0x0'));module[_0x47a5('0x1')]={'question':{'type':Sequelize[_0x47a5('0x2')]},'answer':{'type':Sequelize['TEXT'](_0x47a5('0x3'))},'membername':{'type':Sequelize[_0x47a5('0x4')]},'projectname':{'type':Sequelize['STRING']},'queue':{'type':Sequelize[_0x47a5('0x4')]},'uniqueid':{'type':Sequelize[_0x47a5('0x4')]},'calleridname':{'type':Sequelize[_0x47a5('0x4')]},'calleridnum':{'type':Sequelize[_0x47a5('0x4')]},'questionId':{'type':Sequelize[_0x47a5('0x4')]}};
\ No newline at end of file
+var _0x7a54=['long','STRING','sequelize','exports','TEXT'];(function(_0x40a045,_0x516f0e){var _0x1a687c=function(_0x48c9fe){while(--_0x48c9fe){_0x40a045['push'](_0x40a045['shift']());}};_0x1a687c(++_0x516f0e);}(_0x7a54,0x106));var _0x47a5=function(_0x339ee7,_0xcbb9e1){_0x339ee7=_0x339ee7-0x0;var _0x13c926=_0x7a54[_0x339ee7];return _0x13c926;};'use strict';var Sequelize=require(_0x47a5('0x0'));module[_0x47a5('0x1')]={'question':{'type':Sequelize[_0x47a5('0x2')]},'answer':{'type':Sequelize['TEXT'](_0x47a5('0x3'))},'membername':{'type':Sequelize[_0x47a5('0x4')]},'projectname':{'type':Sequelize['STRING']},'queue':{'type':Sequelize[_0x47a5('0x4')]},'uniqueid':{'type':Sequelize[_0x47a5('0x4')]},'calleridname':{'type':Sequelize[_0x47a5('0x4')]},'calleridnum':{'type':Sequelize[_0x47a5('0x4')]},'questionId':{'type':Sequelize[_0x47a5('0x4')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0e76=['util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','sendStatus','end','json','limit','count','offset','status','set','Content-Range','reject','update','then','destroy','error','stack','name','send','index','JscriptyAnswerReport','fieldName','type','key','model','map','keys','filters','intersection','query','attributes','fields','order','sort','filter','merge','where','VIRTUAL','options','includeAll','include','catch','show','params','rawAttributes','find','body','describe','eml-format','fast-json-patch','moment','bluebird','mustache'];(function(_0x29a377,_0x811d72){var _0x65568d=function(_0x525823){while(--_0x525823){_0x29a377['push'](_0x29a377['shift']());}};_0x65568d(++_0x811d72);}(_0x0e76,0xc4));var _0x60e7=function(_0xa6a23e,_0x8b657a){_0xa6a23e=_0xa6a23e-0x0;var _0x210e65=_0x0e76[_0xa6a23e];return _0x210e65;};'use strict';var emlformat=require(_0x60e7('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x60e7('0x1'));var rp=require('request-promise');var moment=require(_0x60e7('0x2'));var BPromise=require(_0x60e7('0x3'));var Mustache=require(_0x60e7('0x4'));var util=require(_0x60e7('0x5'));var path=require(_0x60e7('0x6'));var sox=require('sox');var csv=require(_0x60e7('0x7'));var ejs=require(_0x60e7('0x8'));var fs=require('fs');var fs_extra=require(_0x60e7('0x9'));var _=require(_0x60e7('0xa'));var squel=require(_0x60e7('0xb'));var crypto=require(_0x60e7('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x60e7('0xd'));var toCsv=require(_0x60e7('0x7'));var querystring=require(_0x60e7('0xe'));var Papa=require('papaparse');var Redis=require(_0x60e7('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x60e7('0x10'));var as=require(_0x60e7('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x60e7('0x12'))('api');var utils=require(_0x60e7('0x13'));var config=require(_0x60e7('0x14'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x3d43cd,_0x274959){_0x274959=_0x274959||0xcc;return function(_0x243280){if(_0x243280){return _0x3d43cd[_0x60e7('0x15')](_0x274959);}return _0x3d43cd['status'](_0x274959)[_0x60e7('0x16')]();};}function respondWithResult(_0x4ff2fe,_0x1d4c68){_0x1d4c68=_0x1d4c68||0xc8;return function(_0x1d97a5){if(_0x1d97a5){return _0x4ff2fe['status'](_0x1d4c68)[_0x60e7('0x17')](_0x1d97a5);}};}function respondWithFilteredResult(_0x589b22,_0x25bcd9){return function(_0x388cd8){if(_0x388cd8){var _0xbe8f55=typeof _0x25bcd9['offset']==='undefined'&&typeof _0x25bcd9[_0x60e7('0x18')]==='undefined';var _0x22c978=_0x388cd8[_0x60e7('0x19')];var _0x2a136a=_0xbe8f55?0x0:_0x25bcd9[_0x60e7('0x1a')];var _0x54a701=_0xbe8f55?_0x388cd8[_0x60e7('0x19')]:_0x25bcd9['offset']+_0x25bcd9[_0x60e7('0x18')];var _0x128ef1;if(_0x54a701>=_0x22c978){_0x54a701=_0x22c978;_0x128ef1=0xc8;}else{_0x128ef1=0xce;}_0x589b22[_0x60e7('0x1b')](_0x128ef1);return _0x589b22[_0x60e7('0x1c')](_0x60e7('0x1d'),_0x2a136a+'-'+_0x54a701+'/'+_0x22c978)[_0x60e7('0x17')](_0x388cd8);}return null;};}function patchUpdates(_0x2c602d){return function(_0x878467){try{jsonpatch['apply'](_0x878467,_0x2c602d,!![]);}catch(_0x3dfbce){return BPromise[_0x60e7('0x1e')](_0x3dfbce);}return _0x878467['save']();};}function saveUpdates(_0x3841f2,_0x507a9b){return function(_0x3d8a3b){if(_0x3d8a3b){return _0x3d8a3b[_0x60e7('0x1f')](_0x3841f2)[_0x60e7('0x20')](function(_0x334bd9){return _0x334bd9;});}return null;};}function removeEntity(_0x40c7b0,_0x4258a2){return function(_0x54e17b){if(_0x54e17b){return _0x54e17b[_0x60e7('0x21')]()[_0x60e7('0x20')](function(){_0x40c7b0[_0x60e7('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4a0605,_0x3ecb2e){return function(_0x34da5e){if(!_0x34da5e){_0x4a0605[_0x60e7('0x15')](0x194);}return _0x34da5e;};}function handleError(_0xda9aa1,_0x598fb2){_0x598fb2=_0x598fb2||0x1f4;return function(_0x3c8084){logger[_0x60e7('0x22')](_0x3c8084[_0x60e7('0x23')]);if(_0x3c8084[_0x60e7('0x24')]){delete _0x3c8084[_0x60e7('0x24')];}_0xda9aa1['status'](_0x598fb2)[_0x60e7('0x25')](_0x3c8084);};}exports[_0x60e7('0x26')]=function(_0x24896b,_0xebd04c){var _0x9f4c09={},_0x311c17={},_0x532ab2={'count':0x0,'rows':[]};var _0xdc50fe=_['map'](db[_0x60e7('0x27')]['rawAttributes'],function(_0xdd5824){return{'name':_0xdd5824[_0x60e7('0x28')],'type':_0xdd5824[_0x60e7('0x29')][_0x60e7('0x2a')]};});_0x311c17[_0x60e7('0x2b')]=_[_0x60e7('0x2c')](_0xdc50fe,_0x60e7('0x24'));_0x311c17['query']=_[_0x60e7('0x2d')](_0x24896b['query']);_0x311c17[_0x60e7('0x2e')]=_[_0x60e7('0x2f')](_0x311c17[_0x60e7('0x2b')],_0x311c17[_0x60e7('0x30')]);_0x9f4c09[_0x60e7('0x31')]=_[_0x60e7('0x2f')](_0x311c17[_0x60e7('0x2b')],qs[_0x60e7('0x32')](_0x24896b['query'][_0x60e7('0x32')]));_0x9f4c09['attributes']=_0x9f4c09[_0x60e7('0x31')]['length']?_0x9f4c09['attributes']:_0x311c17['model'];if(!_0x24896b['query']['hasOwnProperty']('nolimit')){_0x9f4c09['limit']=qs[_0x60e7('0x18')](_0x24896b['query'][_0x60e7('0x18')]);_0x9f4c09[_0x60e7('0x1a')]=qs[_0x60e7('0x1a')](_0x24896b[_0x60e7('0x30')][_0x60e7('0x1a')]);}_0x9f4c09[_0x60e7('0x33')]=qs[_0x60e7('0x34')](_0x24896b[_0x60e7('0x30')][_0x60e7('0x34')]);_0x9f4c09['where']=qs[_0x60e7('0x2e')](_['pick'](_0x24896b[_0x60e7('0x30')],_0x311c17[_0x60e7('0x2e')]),_0xdc50fe);if(_0x24896b[_0x60e7('0x30')][_0x60e7('0x35')]){_0x9f4c09['where']=_[_0x60e7('0x36')](_0x9f4c09[_0x60e7('0x37')],{'$or':_[_0x60e7('0x2c')](_0xdc50fe,function(_0x1747e3){if(_0x1747e3[_0x60e7('0x29')]!==_0x60e7('0x38')){var _0x4c48f3={};_0x4c48f3[_0x1747e3[_0x60e7('0x24')]]={'$like':'%'+_0x24896b[_0x60e7('0x30')][_0x60e7('0x35')]+'%'};return _0x4c48f3;}})});}_0x9f4c09=_[_0x60e7('0x36')]({},_0x9f4c09,_0x24896b[_0x60e7('0x39')]);var _0x388187={'where':_0x9f4c09[_0x60e7('0x37')]};return db[_0x60e7('0x27')][_0x60e7('0x19')](_0x388187)[_0x60e7('0x20')](function(_0x2b949f){_0x532ab2[_0x60e7('0x19')]=_0x2b949f;if(_0x24896b[_0x60e7('0x30')][_0x60e7('0x3a')]){_0x9f4c09[_0x60e7('0x3b')]=[{'all':!![]}];}return db['JscriptyAnswerReport']['findAll'](_0x9f4c09);})[_0x60e7('0x20')](function(_0x2899c0){_0x532ab2['rows']=_0x2899c0;return _0x532ab2;})[_0x60e7('0x20')](respondWithFilteredResult(_0xebd04c,_0x9f4c09))[_0x60e7('0x3c')](handleError(_0xebd04c,null));};exports[_0x60e7('0x3d')]=function(_0x2ec96e,_0x5dc8ce){var _0x16df05={'raw':!![],'where':{'id':_0x2ec96e[_0x60e7('0x3e')]['id']}},_0x186552={};_0x186552[_0x60e7('0x2b')]=_['keys'](db[_0x60e7('0x27')][_0x60e7('0x3f')]);_0x186552[_0x60e7('0x30')]=_[_0x60e7('0x2d')](_0x2ec96e[_0x60e7('0x30')]);_0x186552[_0x60e7('0x2e')]=_[_0x60e7('0x2f')](_0x186552[_0x60e7('0x2b')],_0x186552['query']);_0x16df05[_0x60e7('0x31')]=_[_0x60e7('0x2f')](_0x186552[_0x60e7('0x2b')],qs['fields'](_0x2ec96e[_0x60e7('0x30')][_0x60e7('0x32')]));_0x16df05['attributes']=_0x16df05[_0x60e7('0x31')]['length']?_0x16df05[_0x60e7('0x31')]:_0x186552['model'];if(_0x2ec96e[_0x60e7('0x30')]['includeAll']){_0x16df05[_0x60e7('0x3b')]=[{'all':!![]}];}_0x16df05=_[_0x60e7('0x36')]({},_0x16df05,_0x2ec96e[_0x60e7('0x39')]);return db[_0x60e7('0x27')][_0x60e7('0x40')](_0x16df05)[_0x60e7('0x20')](handleEntityNotFound(_0x5dc8ce,null))[_0x60e7('0x20')](respondWithResult(_0x5dc8ce,null))[_0x60e7('0x3c')](handleError(_0x5dc8ce,null));};exports['create']=function(_0x16762a,_0x46fe16){return db['JscriptyAnswerReport']['create'](_0x16762a[_0x60e7('0x41')],{})['then'](respondWithResult(_0x46fe16,0xc9))[_0x60e7('0x3c')](handleError(_0x46fe16,null));};exports['update']=function(_0x59fef9,_0x52911b){if(_0x59fef9[_0x60e7('0x41')]['id']){delete _0x59fef9[_0x60e7('0x41')]['id'];}return db['JscriptyAnswerReport']['find']({'where':{'id':_0x59fef9['params']['id']}})[_0x60e7('0x20')](handleEntityNotFound(_0x52911b,null))[_0x60e7('0x20')](saveUpdates(_0x59fef9[_0x60e7('0x41')],null))[_0x60e7('0x20')](respondWithResult(_0x52911b,null))[_0x60e7('0x3c')](handleError(_0x52911b,null));};exports[_0x60e7('0x21')]=function(_0x2c574d,_0x1a334d){return db['JscriptyAnswerReport']['find']({'where':{'id':_0x2c574d[_0x60e7('0x3e')]['id']}})['then'](handleEntityNotFound(_0x1a334d,null))[_0x60e7('0x20')](removeEntity(_0x1a334d,null))[_0x60e7('0x3c')](handleError(_0x1a334d,null));};exports[_0x60e7('0x42')]=function(_0x13e25e,_0x4cd92c){return db['JscriptyAnswerReport']['describe']()['then'](respondWithResult(_0x4cd92c,null))[_0x60e7('0x3c')](handleError(_0x4cd92c,null));};
\ No newline at end of file
+var _0x0309=['../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','undefined','limit','count','offset','set','Content-Range','reject','update','destroy','then','end','error','stack','name','send','index','map','rawAttributes','fieldName','type','key','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','order','sort','where','VIRTUAL','filter','options','includeAll','include','JscriptyAnswerReport','rows','catch','params','merge','create','body','find','describe','eml-format','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','fs-extra','lodash','crypto','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs'];(function(_0x3cf6b8,_0x1ade41){var _0x1c535f=function(_0x3317e4){while(--_0x3317e4){_0x3cf6b8['push'](_0x3cf6b8['shift']());}};_0x1c535f(++_0x1ade41);}(_0x0309,0x165));var _0x9030=function(_0x4fa303,_0x27e3ef){_0x4fa303=_0x4fa303-0x0;var _0x1674af=_0x0309[_0x4fa303];return _0x1674af;};'use strict';var emlformat=require(_0x9030('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x9030('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x9030('0x2'));var moment=require(_0x9030('0x3'));var BPromise=require(_0x9030('0x4'));var Mustache=require(_0x9030('0x5'));var util=require(_0x9030('0x6'));var path=require(_0x9030('0x7'));var sox=require(_0x9030('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x9030('0x9'));var _=require(_0x9030('0xa'));var squel=require('squel');var crypto=require(_0x9030('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x9030('0xc'));var toCsv=require(_0x9030('0xd'));var querystring=require(_0x9030('0xe'));var Papa=require('papaparse');var Redis=require(_0x9030('0xf'));var authService=require(_0x9030('0x10'));var qs=require(_0x9030('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x9030('0x12'));var logger=require(_0x9030('0x13'))(_0x9030('0x14'));var utils=require(_0x9030('0x15'));var config=require(_0x9030('0x16'));var licenseUtil=require(_0x9030('0x17'));var db=require(_0x9030('0x18'))['db'];function respondWithStatusCode(_0x5ee60f,_0x45e28a){_0x45e28a=_0x45e28a||0xcc;return function(_0x3274c9){if(_0x3274c9){return _0x5ee60f[_0x9030('0x19')](_0x45e28a);}return _0x5ee60f[_0x9030('0x1a')](_0x45e28a)['end']();};}function respondWithResult(_0x28a505,_0x2dc875){_0x2dc875=_0x2dc875||0xc8;return function(_0x4a7465){if(_0x4a7465){return _0x28a505[_0x9030('0x1a')](_0x2dc875)[_0x9030('0x1b')](_0x4a7465);}};}function respondWithFilteredResult(_0x1615ab,_0x111f3b){return function(_0x1776e6){if(_0x1776e6){var _0xfc6f46=typeof _0x111f3b['offset']===_0x9030('0x1c')&&typeof _0x111f3b[_0x9030('0x1d')]===_0x9030('0x1c');var _0x37afac=_0x1776e6[_0x9030('0x1e')];var _0x1327ec=_0xfc6f46?0x0:_0x111f3b[_0x9030('0x1f')];var _0x28c035=_0xfc6f46?_0x1776e6[_0x9030('0x1e')]:_0x111f3b[_0x9030('0x1f')]+_0x111f3b[_0x9030('0x1d')];var _0x41d506;if(_0x28c035>=_0x37afac){_0x28c035=_0x37afac;_0x41d506=0xc8;}else{_0x41d506=0xce;}_0x1615ab[_0x9030('0x1a')](_0x41d506);return _0x1615ab[_0x9030('0x20')](_0x9030('0x21'),_0x1327ec+'-'+_0x28c035+'/'+_0x37afac)[_0x9030('0x1b')](_0x1776e6);}return null;};}function patchUpdates(_0x4105ec){return function(_0x4b0792){try{jsonpatch['apply'](_0x4b0792,_0x4105ec,!![]);}catch(_0x364d58){return BPromise[_0x9030('0x22')](_0x364d58);}return _0x4b0792['save']();};}function saveUpdates(_0x80098d,_0x2d28fd){return function(_0x1f806a){if(_0x1f806a){return _0x1f806a[_0x9030('0x23')](_0x80098d)['then'](function(_0x4753b2){return _0x4753b2;});}return null;};}function removeEntity(_0x51aca8,_0x4c8d4a){return function(_0xe65792){if(_0xe65792){return _0xe65792[_0x9030('0x24')]()[_0x9030('0x25')](function(){_0x51aca8['status'](0xcc)[_0x9030('0x26')]();});}};}function handleEntityNotFound(_0x408ce6,_0x35adfe){return function(_0xce2840){if(!_0xce2840){_0x408ce6[_0x9030('0x19')](0x194);}return _0xce2840;};}function handleError(_0x4d6bf9,_0x5ca691){_0x5ca691=_0x5ca691||0x1f4;return function(_0x455eeb){logger[_0x9030('0x27')](_0x455eeb[_0x9030('0x28')]);if(_0x455eeb[_0x9030('0x29')]){delete _0x455eeb[_0x9030('0x29')];}_0x4d6bf9[_0x9030('0x1a')](_0x5ca691)[_0x9030('0x2a')](_0x455eeb);};}exports[_0x9030('0x2b')]=function(_0x11c47d,_0x3be936){var _0x1d0c5c={},_0x528f75={},_0x18de34={'count':0x0,'rows':[]};var _0x584013=_[_0x9030('0x2c')](db['JscriptyAnswerReport'][_0x9030('0x2d')],function(_0x5b745a){return{'name':_0x5b745a[_0x9030('0x2e')],'type':_0x5b745a[_0x9030('0x2f')][_0x9030('0x30')]};});_0x528f75['model']=_[_0x9030('0x2c')](_0x584013,_0x9030('0x29'));_0x528f75[_0x9030('0x31')]=_[_0x9030('0x32')](_0x11c47d[_0x9030('0x31')]);_0x528f75[_0x9030('0x33')]=_[_0x9030('0x34')](_0x528f75[_0x9030('0x35')],_0x528f75[_0x9030('0x31')]);_0x1d0c5c[_0x9030('0x36')]=_[_0x9030('0x34')](_0x528f75[_0x9030('0x35')],qs[_0x9030('0x37')](_0x11c47d[_0x9030('0x31')][_0x9030('0x37')]));_0x1d0c5c[_0x9030('0x36')]=_0x1d0c5c[_0x9030('0x36')][_0x9030('0x38')]?_0x1d0c5c['attributes']:_0x528f75['model'];if(!_0x11c47d[_0x9030('0x31')][_0x9030('0x39')]('nolimit')){_0x1d0c5c['limit']=qs[_0x9030('0x1d')](_0x11c47d[_0x9030('0x31')][_0x9030('0x1d')]);_0x1d0c5c[_0x9030('0x1f')]=qs['offset'](_0x11c47d[_0x9030('0x31')]['offset']);}_0x1d0c5c[_0x9030('0x3a')]=qs[_0x9030('0x3b')](_0x11c47d['query'][_0x9030('0x3b')]);_0x1d0c5c[_0x9030('0x3c')]=qs[_0x9030('0x33')](_['pick'](_0x11c47d[_0x9030('0x31')],_0x528f75['filters']),_0x584013);if(_0x11c47d[_0x9030('0x31')]['filter']){_0x1d0c5c[_0x9030('0x3c')]=_['merge'](_0x1d0c5c[_0x9030('0x3c')],{'$or':_[_0x9030('0x2c')](_0x584013,function(_0x3dc670){if(_0x3dc670[_0x9030('0x2f')]!==_0x9030('0x3d')){var _0x151d64={};_0x151d64[_0x3dc670[_0x9030('0x29')]]={'$like':'%'+_0x11c47d[_0x9030('0x31')][_0x9030('0x3e')]+'%'};return _0x151d64;}})});}_0x1d0c5c=_['merge']({},_0x1d0c5c,_0x11c47d[_0x9030('0x3f')]);var _0x209aca={'where':_0x1d0c5c[_0x9030('0x3c')]};return db['JscriptyAnswerReport'][_0x9030('0x1e')](_0x209aca)[_0x9030('0x25')](function(_0x3ebb74){_0x18de34[_0x9030('0x1e')]=_0x3ebb74;if(_0x11c47d['query'][_0x9030('0x40')]){_0x1d0c5c[_0x9030('0x41')]=[{'all':!![]}];}return db[_0x9030('0x42')]['findAll'](_0x1d0c5c);})[_0x9030('0x25')](function(_0xa6a5ba){_0x18de34[_0x9030('0x43')]=_0xa6a5ba;return _0x18de34;})[_0x9030('0x25')](respondWithFilteredResult(_0x3be936,_0x1d0c5c))[_0x9030('0x44')](handleError(_0x3be936,null));};exports['show']=function(_0x58a351,_0x4c7272){var _0x2b596c={'raw':!![],'where':{'id':_0x58a351[_0x9030('0x45')]['id']}},_0x291eab={};_0x291eab[_0x9030('0x35')]=_[_0x9030('0x32')](db[_0x9030('0x42')][_0x9030('0x2d')]);_0x291eab[_0x9030('0x31')]=_['keys'](_0x58a351[_0x9030('0x31')]);_0x291eab[_0x9030('0x33')]=_[_0x9030('0x34')](_0x291eab[_0x9030('0x35')],_0x291eab[_0x9030('0x31')]);_0x2b596c[_0x9030('0x36')]=_[_0x9030('0x34')](_0x291eab[_0x9030('0x35')],qs[_0x9030('0x37')](_0x58a351[_0x9030('0x31')][_0x9030('0x37')]));_0x2b596c[_0x9030('0x36')]=_0x2b596c[_0x9030('0x36')][_0x9030('0x38')]?_0x2b596c['attributes']:_0x291eab[_0x9030('0x35')];if(_0x58a351[_0x9030('0x31')]['includeAll']){_0x2b596c[_0x9030('0x41')]=[{'all':!![]}];}_0x2b596c=_[_0x9030('0x46')]({},_0x2b596c,_0x58a351[_0x9030('0x3f')]);return db['JscriptyAnswerReport']['find'](_0x2b596c)[_0x9030('0x25')](handleEntityNotFound(_0x4c7272,null))['then'](respondWithResult(_0x4c7272,null))['catch'](handleError(_0x4c7272,null));};exports[_0x9030('0x47')]=function(_0x35a574,_0x2b3e41){return db[_0x9030('0x42')]['create'](_0x35a574[_0x9030('0x48')],{})['then'](respondWithResult(_0x2b3e41,0xc9))[_0x9030('0x44')](handleError(_0x2b3e41,null));};exports[_0x9030('0x23')]=function(_0x42c414,_0x513ee4){if(_0x42c414[_0x9030('0x48')]['id']){delete _0x42c414[_0x9030('0x48')]['id'];}return db[_0x9030('0x42')]['find']({'where':{'id':_0x42c414[_0x9030('0x45')]['id']}})[_0x9030('0x25')](handleEntityNotFound(_0x513ee4,null))['then'](saveUpdates(_0x42c414[_0x9030('0x48')],null))['then'](respondWithResult(_0x513ee4,null))[_0x9030('0x44')](handleError(_0x513ee4,null));};exports['destroy']=function(_0x2a39ad,_0xfec731){return db[_0x9030('0x42')][_0x9030('0x49')]({'where':{'id':_0x2a39ad[_0x9030('0x45')]['id']}})[_0x9030('0x25')](handleEntityNotFound(_0xfec731,null))['then'](removeEntity(_0xfec731,null))[_0x9030('0x44')](handleError(_0xfec731,null));};exports[_0x9030('0x4a')]=function(_0x15347c,_0xe80a0b){return db[_0x9030('0x42')]['describe']()['then'](respondWithResult(_0xe80a0b,null))[_0x9030('0x44')](handleError(_0xe80a0b,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb378=['path','rimraf','../../config/environment','exports','JscriptyAnswerReport','report_jscripty_answers','util','api','moment','bluebird'];(function(_0x2e2811,_0x4fff9a){var _0x16d8fc=function(_0x4e12f5){while(--_0x4e12f5){_0x2e2811['push'](_0x2e2811['shift']());}};_0x16d8fc(++_0x4fff9a);}(_0xb378,0xba));var _0x8b37=function(_0x3487d3,_0x11235d){_0x3487d3=_0x3487d3-0x0;var _0x4ef2f8=_0xb378[_0x3487d3];return _0x4ef2f8;};'use strict';var _=require('lodash');var util=require(_0x8b37('0x0'));var logger=require('../../config/logger')(_0x8b37('0x1'));var moment=require(_0x8b37('0x2'));var BPromise=require(_0x8b37('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x8b37('0x4'));var rimraf=require(_0x8b37('0x5'));var config=require(_0x8b37('0x6'));var attributes=require('./jscriptyAnswerReport.attributes');module[_0x8b37('0x7')]=function(_0x1b1acc,_0x19ffe2){return _0x1b1acc['define'](_0x8b37('0x8'),attributes,{'tableName':_0x8b37('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x6c85=['define','JscriptyAnswerReport','report_jscripty_answers','lodash','util','api','moment','request-promise','rimraf','../../config/environment','./jscriptyAnswerReport.attributes','exports'];(function(_0x16f6a1,_0x4eb7c4){var _0x1de74c=function(_0xed751f){while(--_0xed751f){_0x16f6a1['push'](_0x16f6a1['shift']());}};_0x1de74c(++_0x4eb7c4);}(_0x6c85,0x19b));var _0x56c8=function(_0x19b17e,_0x251fd7){_0x19b17e=_0x19b17e-0x0;var _0x5a1b1e=_0x6c85[_0x19b17e];return _0x5a1b1e;};'use strict';var _=require(_0x56c8('0x0'));var util=require(_0x56c8('0x1'));var logger=require('../../config/logger')(_0x56c8('0x2'));var moment=require(_0x56c8('0x3'));var BPromise=require('bluebird');var rp=require(_0x56c8('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x56c8('0x5'));var config=require(_0x56c8('0x6'));var attributes=require(_0x56c8('0x7'));module[_0x56c8('0x8')]=function(_0x20b3a2,_0x25d55f){return _0x20b3a2[_0x56c8('0x9')](_0x56c8('0xa'),attributes,{'tableName':_0x56c8('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa736=['info','JscriptyAnswerReport,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','util','moment','bluebird','randomstring','ioredis','../../config/logger','rpc','../../config/environment','client','http','request','then'];(function(_0x2716af,_0x46acdb){var _0x4657bf=function(_0x52f914){while(--_0x52f914){_0x2716af['push'](_0x2716af['shift']());}};_0x4657bf(++_0x46acdb);}(_0xa736,0xfc));var _0x6a73=function(_0x18b74c,_0x55285e){_0x18b74c=_0x18b74c-0x0;var _0x22436b=_0xa736[_0x18b74c];return _0x22436b;};'use strict';var _=require('lodash');var util=require(_0x6a73('0x0'));var moment=require(_0x6a73('0x1'));var BPromise=require(_0x6a73('0x2'));var rs=require(_0x6a73('0x3'));var fs=require('fs');var Redis=require(_0x6a73('0x4'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x6a73('0x5'))(_0x6a73('0x6'));var config=require(_0x6a73('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x6a73('0x8')][_0x6a73('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x3f1422,_0x14e89b,_0x3eda98){return new BPromise(function(_0x31f0cf,_0x562163){return client[_0x6a73('0xa')](_0x3f1422,_0x3eda98)[_0x6a73('0xb')](function(_0x3d4051){logger[_0x6a73('0xc')](_0x6a73('0xd'),_0x14e89b,_0x6a73('0xe'));logger[_0x6a73('0xf')]('JscriptyAnswerReport,\x20%s,\x20%s,\x20%s',_0x14e89b,_0x6a73('0xe'),JSON[_0x6a73('0x10')](_0x3d4051));if(_0x3d4051[_0x6a73('0x11')]){if(_0x3d4051['error'][_0x6a73('0x12')]===0x1f4){logger[_0x6a73('0x11')](_0x6a73('0xd'),_0x14e89b,_0x3d4051[_0x6a73('0x11')][_0x6a73('0x13')]);return _0x562163(_0x3d4051[_0x6a73('0x11')][_0x6a73('0x13')]);}logger[_0x6a73('0x11')]('JscriptyAnswerReport,\x20%s,\x20%s',_0x14e89b,_0x3d4051[_0x6a73('0x11')][_0x6a73('0x13')]);return _0x31f0cf(_0x3d4051[_0x6a73('0x11')][_0x6a73('0x13')]);}else{logger[_0x6a73('0xc')](_0x6a73('0xd'),_0x14e89b,_0x6a73('0xe'));_0x31f0cf(_0x3d4051[_0x6a73('0x14')]['message']);}})[_0x6a73('0x15')](function(_0x2cdb1a){logger[_0x6a73('0x11')](_0x6a73('0xd'),_0x14e89b,_0x2cdb1a);_0x562163(_0x2cdb1a);});});}
\ No newline at end of file
+var _0x21ca=['JscriptyAnswerReport,\x20%s,\x20%s','request\x20sent','debug','JscriptyAnswerReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','lodash','util','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','client','http','request','info'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x21ca,0xd0));var _0xa21c=function(_0x5abb82,_0x2f0bc0){_0x5abb82=_0x5abb82-0x0;var _0x4d1e3f=_0x21ca[_0x5abb82];return _0x4d1e3f;};'use strict';var _=require(_0xa21c('0x0'));var util=require(_0xa21c('0x1'));var moment=require('moment');var BPromise=require(_0xa21c('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xa21c('0x3'));var db=require(_0xa21c('0x4'))['db'];var utils=require(_0xa21c('0x5'));var logger=require(_0xa21c('0x6'))(_0xa21c('0x7'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0xa21c('0x8')][_0xa21c('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x32dd8f,_0x1747fa,_0x42c321){return new BPromise(function(_0x13ff90,_0x128172){return client[_0xa21c('0xa')](_0x32dd8f,_0x42c321)['then'](function(_0x3cdbde){logger[_0xa21c('0xb')](_0xa21c('0xc'),_0x1747fa,_0xa21c('0xd'));logger[_0xa21c('0xe')](_0xa21c('0xf'),_0x1747fa,_0xa21c('0xd'),JSON[_0xa21c('0x10')](_0x3cdbde));if(_0x3cdbde[_0xa21c('0x11')]){if(_0x3cdbde[_0xa21c('0x11')][_0xa21c('0x12')]===0x1f4){logger[_0xa21c('0x11')](_0xa21c('0xc'),_0x1747fa,_0x3cdbde['error'][_0xa21c('0x13')]);return _0x128172(_0x3cdbde[_0xa21c('0x11')][_0xa21c('0x13')]);}logger[_0xa21c('0x11')]('JscriptyAnswerReport,\x20%s,\x20%s',_0x1747fa,_0x3cdbde[_0xa21c('0x11')][_0xa21c('0x13')]);return _0x13ff90(_0x3cdbde[_0xa21c('0x11')][_0xa21c('0x13')]);}else{logger[_0xa21c('0xb')](_0xa21c('0xc'),_0x1747fa,_0xa21c('0xd'));_0x13ff90(_0x3cdbde[_0xa21c('0x14')][_0xa21c('0x13')]);}})[_0xa21c('0x15')](function(_0xb27d32){logger[_0xa21c('0x11')](_0xa21c('0xc'),_0x1747fa,_0xb27d32);_0x128172(_0xb27d32);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa435=['/:id/answers','getAnswers','/:id/summary','30s','getSummary','create','post','/:id/clone','clone','put','/:id','update','delete','destroy','exports','multer','util','path','connect-timeout','express','fs-extra','../../components/interaction/service','../../config/environment','isAuthenticated','get','/:id/sessions','getSessions'];(function(_0x42bd43,_0x59fb77){var _0x421e88=function(_0x485e11){while(--_0x485e11){_0x42bd43['push'](_0x42bd43['shift']());}};_0x421e88(++_0x59fb77);}(_0xa435,0xb1));var _0x5a43=function(_0xe4aa28,_0x5179a8){_0xe4aa28=_0xe4aa28-0x0;var _0x2e4edd=_0xa435[_0xe4aa28];return _0x2e4edd;};'use strict';var multer=require(_0x5a43('0x0'));var util=require(_0x5a43('0x1'));var path=require(_0x5a43('0x2'));var timeout=require(_0x5a43('0x3'));var express=require(_0x5a43('0x4'));var router=express['Router']();var fs_extra=require(_0x5a43('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x5a43('0x6'));var config=require(_0x5a43('0x7'));var controller=require('./jscriptyProject.controller');router['get']('/',auth[_0x5a43('0x8')](),controller['index']);router['get']('/:id',auth['isAuthenticated'](),controller['show']);router[_0x5a43('0x9')](_0x5a43('0xa'),auth[_0x5a43('0x8')](),controller[_0x5a43('0xb')]);router[_0x5a43('0x9')](_0x5a43('0xc'),auth[_0x5a43('0x8')](),controller[_0x5a43('0xd')]);router['get'](_0x5a43('0xe'),auth[_0x5a43('0x8')](),timeout(_0x5a43('0xf')),controller[_0x5a43('0x10')]);router['post']('/',auth['isAuthenticated'](),controller[_0x5a43('0x11')]);router[_0x5a43('0x12')](_0x5a43('0x13'),auth[_0x5a43('0x8')](),controller[_0x5a43('0x14')]);router[_0x5a43('0x15')](_0x5a43('0x16'),auth[_0x5a43('0x8')](),controller[_0x5a43('0x17')]);router[_0x5a43('0x18')](_0x5a43('0x16'),auth[_0x5a43('0x8')](),controller[_0x5a43('0x19')]);module[_0x5a43('0x1a')]=router;
\ No newline at end of file
+var _0x2a11=['getSummary','post','create','/:id/clone','clone','put','update','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','./jscriptyProject.controller','isAuthenticated','get','/:id','show','/:id/sessions','getSessions','getAnswers','/:id/summary','30s'];(function(_0x7275e9,_0x321fa5){var _0x17b99d=function(_0x54af41){while(--_0x54af41){_0x7275e9['push'](_0x7275e9['shift']());}};_0x17b99d(++_0x321fa5);}(_0x2a11,0x13d));var _0x12a1=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x2a11[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require(_0x12a1('0x0'));var util=require(_0x12a1('0x1'));var path=require(_0x12a1('0x2'));var timeout=require(_0x12a1('0x3'));var express=require(_0x12a1('0x4'));var router=express[_0x12a1('0x5')]();var fs_extra=require(_0x12a1('0x6'));var auth=require(_0x12a1('0x7'));var interaction=require('../../components/interaction/service');var config=require(_0x12a1('0x8'));var controller=require(_0x12a1('0x9'));router['get']('/',auth[_0x12a1('0xa')](),controller['index']);router[_0x12a1('0xb')](_0x12a1('0xc'),auth[_0x12a1('0xa')](),controller[_0x12a1('0xd')]);router[_0x12a1('0xb')](_0x12a1('0xe'),auth[_0x12a1('0xa')](),controller[_0x12a1('0xf')]);router[_0x12a1('0xb')]('/:id/answers',auth[_0x12a1('0xa')](),controller[_0x12a1('0x10')]);router[_0x12a1('0xb')](_0x12a1('0x11'),auth[_0x12a1('0xa')](),timeout(_0x12a1('0x12')),controller[_0x12a1('0x13')]);router[_0x12a1('0x14')]('/',auth[_0x12a1('0xa')](),controller[_0x12a1('0x15')]);router[_0x12a1('0x14')](_0x12a1('0x16'),auth[_0x12a1('0xa')](),controller[_0x12a1('0x17')]);router[_0x12a1('0x18')]('/:id',auth[_0x12a1('0xa')](),controller[_0x12a1('0x19')]);router['delete'](_0x12a1('0xc'),auth[_0x12a1('0xa')](),controller[_0x12a1('0x1a')]);module[_0x12a1('0x1b')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x55f3=['lodash','exports','STRING','name','TEXT','long','isObjectLike','setDataValue','formData','stringify','isString','{\x22name\x22:\x22%s\x22,\x22description\x22:\x22%s\x22,\x22pages\x22:[]}','description','BOOLEAN','sequelize'];(function(_0x5c280d,_0xd67fa0){var _0x460137=function(_0x344a6c){while(--_0x344a6c){_0x5c280d['push'](_0x5c280d['shift']());}};_0x460137(++_0xd67fa0);}(_0x55f3,0xb3));var _0x355f=function(_0x2e7b6f,_0x2c6644){_0x2e7b6f=_0x2e7b6f-0x0;var _0xa56eac=_0x55f3[_0x2e7b6f];return _0xa56eac;};'use strict';var Sequelize=require(_0x355f('0x0'));var _=require(_0x355f('0x1'));var util=require('util');module[_0x355f('0x2')]={'name':{'type':Sequelize[_0x355f('0x3')],'unique':_0x355f('0x4')},'description':{'type':Sequelize[_0x355f('0x3')]},'formData':{'type':Sequelize[_0x355f('0x5')](_0x355f('0x6')),'set':function(_0x2f4cb6){if(_[_0x355f('0x7')](_0x2f4cb6)){this[_0x355f('0x8')](_0x355f('0x9'),JSON[_0x355f('0xa')](_0x2f4cb6));}else if(_[_0x355f('0xb')](_0x2f4cb6)){this[_0x355f('0x8')](_0x355f('0x9'),_0x2f4cb6);}else{this[_0x355f('0x8')]('formData',util['format'](_0x355f('0xc'),this['getDataValue'](_0x355f('0x4'))||'',this['getDataValue'](_0x355f('0xd'))||''));}}},'enableUncompleteSave':{'type':Sequelize[_0x355f('0xe')],'defaultValue':!![]},'sendUnpauseOnSubmit':{'type':Sequelize[_0x355f('0xe')],'defaultValue':![]}};
\ No newline at end of file
+var _0xfe7b=['lodash','STRING','name','TEXT','long','isObjectLike','setDataValue','formData','stringify','format','{\x22name\x22:\x22%s\x22,\x22description\x22:\x22%s\x22,\x22pages\x22:[]}','getDataValue','BOOLEAN'];(function(_0x41f20c,_0x334841){var _0x5ee65=function(_0x35d923){while(--_0x35d923){_0x41f20c['push'](_0x41f20c['shift']());}};_0x5ee65(++_0x334841);}(_0xfe7b,0x152));var _0xbfe7=function(_0x4433b,_0x1eded1){_0x4433b=_0x4433b-0x0;var _0xffc1da=_0xfe7b[_0x4433b];return _0xffc1da;};'use strict';var Sequelize=require('sequelize');var _=require(_0xbfe7('0x0'));var util=require('util');module['exports']={'name':{'type':Sequelize[_0xbfe7('0x1')],'unique':_0xbfe7('0x2')},'description':{'type':Sequelize['STRING']},'formData':{'type':Sequelize[_0xbfe7('0x3')](_0xbfe7('0x4')),'set':function(_0x2dee80){if(_[_0xbfe7('0x5')](_0x2dee80)){this[_0xbfe7('0x6')](_0xbfe7('0x7'),JSON[_0xbfe7('0x8')](_0x2dee80));}else if(_['isString'](_0x2dee80)){this['setDataValue']('formData',_0x2dee80);}else{this[_0xbfe7('0x6')](_0xbfe7('0x7'),util[_0xbfe7('0x9')](_0xbfe7('0xa'),this[_0xbfe7('0xb')](_0xbfe7('0x2'))||'',this[_0xbfe7('0xb')]('description')||''));}}},'enableUncompleteSave':{'type':Sequelize[_0xbfe7('0xc')],'defaultValue':!![]},'sendUnpauseOnSubmit':{'type':Sequelize[_0xbfe7('0xc')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xab40=['api','../../config/license/util','sendStatus','status','end','json','offset','undefined','limit','apply','reject','save','then','get','UserProfileResource','destroy','error','stack','name','rawAttributes','fieldName','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','map','type','VIRTUAL','JscriptyProject','count','include','findAll','rows','catch','show','params','length','includeAll','options','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Projects','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','omit','createdAt','updatedAt','UserProfileSection','autoAssociation','findOne','JscriptySessionReport','ProjectId','getAnswers','JscriptyAnswerReport','fromCharCode','toString','indexOf','replace','getSummary','startTime','starttime','parse','-createdAt','questionId','question','format','YYYY-MM-DD\x20HH:mm:ss','SessionId','answer','push','now','writeFileSync','/tmp/Jscripty_Project_%d_Summary_%s.csv','setHeader','Content-disposition','attachment;\x20filename=','Content-type','text/csv','eml-format','rimraf','moment','bluebird','mustache','util','path','ejs','lodash','squel','crypto','jsforce','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger'];(function(_0x778865,_0x29794a){var _0xa2a374=function(_0x21d517){while(--_0x21d517){_0x778865['push'](_0x778865['shift']());}};_0xa2a374(++_0x29794a);}(_0xab40,0xcd));var _0x0ab4=function(_0x1f1caa,_0x1d5213){_0x1f1caa=_0x1f1caa-0x0;var _0x403753=_0xab40[_0x1f1caa];return _0x403753;};'use strict';var emlformat=require(_0x0ab4('0x0'));var rimraf=require(_0x0ab4('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x0ab4('0x2'));var BPromise=require(_0x0ab4('0x3'));var Mustache=require(_0x0ab4('0x4'));var util=require(_0x0ab4('0x5'));var path=require(_0x0ab4('0x6'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x0ab4('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x0ab4('0x8'));var squel=require(_0x0ab4('0x9'));var crypto=require(_0x0ab4('0xa'));var jsforce=require(_0x0ab4('0xb'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x0ab4('0xc'));var Redis=require(_0x0ab4('0xd'));var authService=require(_0x0ab4('0xe'));var qs=require(_0x0ab4('0xf'));var as=require(_0x0ab4('0x10'));var hardwareService=require(_0x0ab4('0x11'));var logger=require(_0x0ab4('0x12'))(_0x0ab4('0x13'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x0ab4('0x14'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x249dc3,_0x45e6fd){_0x45e6fd=_0x45e6fd||0xcc;return function(_0x1e7555){if(_0x1e7555){return _0x249dc3[_0x0ab4('0x15')](_0x45e6fd);}return _0x249dc3[_0x0ab4('0x16')](_0x45e6fd)[_0x0ab4('0x17')]();};}function respondWithResult(_0x112162,_0x2cc644){_0x2cc644=_0x2cc644||0xc8;return function(_0x3cb1df){if(_0x3cb1df){return _0x112162[_0x0ab4('0x16')](_0x2cc644)[_0x0ab4('0x18')](_0x3cb1df);}};}function respondWithFilteredResult(_0x36d246,_0x293e20){return function(_0x45fad1){if(_0x45fad1){var _0x2a83a8=typeof _0x293e20[_0x0ab4('0x19')]===_0x0ab4('0x1a')&&typeof _0x293e20[_0x0ab4('0x1b')]==='undefined';var _0x5000d4=_0x45fad1['count'];var _0x17422f=_0x2a83a8?0x0:_0x293e20[_0x0ab4('0x19')];var _0x2f50d2=_0x2a83a8?_0x45fad1['count']:_0x293e20[_0x0ab4('0x19')]+_0x293e20[_0x0ab4('0x1b')];var _0x212ebd;if(_0x2f50d2>=_0x5000d4){_0x2f50d2=_0x5000d4;_0x212ebd=0xc8;}else{_0x212ebd=0xce;}_0x36d246[_0x0ab4('0x16')](_0x212ebd);return _0x36d246['set']('Content-Range',_0x17422f+'-'+_0x2f50d2+'/'+_0x5000d4)[_0x0ab4('0x18')](_0x45fad1);}return null;};}function patchUpdates(_0x5b1ed5){return function(_0x2b0e29){try{jsonpatch[_0x0ab4('0x1c')](_0x2b0e29,_0x5b1ed5,!![]);}catch(_0x5bb1d0){return BPromise[_0x0ab4('0x1d')](_0x5bb1d0);}return _0x2b0e29[_0x0ab4('0x1e')]();};}function saveUpdates(_0x2c55b3,_0x1d5c14){return function(_0x12d06d){if(_0x12d06d){return _0x12d06d['update'](_0x2c55b3)['then'](function(_0x24b929){return _0x24b929;});}return null;};}function removeEntity(_0x14087f,_0x392afe){return function(_0x13c882){if(_0x13c882){return _0x13c882['destroy']()[_0x0ab4('0x1f')](function(){var _0x3caa9d=_0x13c882[_0x0ab4('0x20')]({'plain':!![]});var _0x4ea9aa='Projects';return db[_0x0ab4('0x21')][_0x0ab4('0x22')]({'where':{'type':_0x4ea9aa,'resourceId':_0x3caa9d['id']}})[_0x0ab4('0x1f')](function(){return _0x13c882;});})['then'](function(){_0x14087f['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x19ecc6,_0x5ba3a2){return function(_0x3bf844){if(!_0x3bf844){_0x19ecc6[_0x0ab4('0x15')](0x194);}return _0x3bf844;};}function handleError(_0x4f1aeb,_0x4bd747){_0x4bd747=_0x4bd747||0x1f4;return function(_0x4d0cc1){logger[_0x0ab4('0x23')](_0x4d0cc1[_0x0ab4('0x24')]);if(_0x4d0cc1[_0x0ab4('0x25')]){delete _0x4d0cc1[_0x0ab4('0x25')];}_0x4f1aeb[_0x0ab4('0x16')](_0x4bd747)['send'](_0x4d0cc1);};}exports['index']=function(_0x580d56,_0x2e7a97){var _0x2b66d5={},_0x155d96={},_0x182bbe={'count':0x0,'rows':[]};var _0x46eda7=_['map'](db['JscriptyProject'][_0x0ab4('0x26')],function(_0xe6682){return{'name':_0xe6682[_0x0ab4('0x27')],'type':_0xe6682['type']['key']};});_0x155d96[_0x0ab4('0x28')]=_['map'](_0x46eda7,_0x0ab4('0x25'));_0x155d96[_0x0ab4('0x29')]=_[_0x0ab4('0x2a')](_0x580d56[_0x0ab4('0x29')]);_0x155d96[_0x0ab4('0x2b')]=_[_0x0ab4('0x2c')](_0x155d96['model'],_0x155d96[_0x0ab4('0x29')]);_0x2b66d5[_0x0ab4('0x2d')]=_[_0x0ab4('0x2c')](_0x155d96[_0x0ab4('0x28')],qs['fields'](_0x580d56['query'][_0x0ab4('0x2e')]));_0x2b66d5[_0x0ab4('0x2d')]=_0x2b66d5[_0x0ab4('0x2d')]['length']?_0x2b66d5['attributes']:_0x155d96['model'];if(!_0x580d56[_0x0ab4('0x29')][_0x0ab4('0x2f')](_0x0ab4('0x30'))){_0x2b66d5['limit']=qs['limit'](_0x580d56['query'][_0x0ab4('0x1b')]);_0x2b66d5[_0x0ab4('0x19')]=qs[_0x0ab4('0x19')](_0x580d56[_0x0ab4('0x29')][_0x0ab4('0x19')]);}_0x2b66d5[_0x0ab4('0x31')]=qs[_0x0ab4('0x32')](_0x580d56[_0x0ab4('0x29')][_0x0ab4('0x32')]);_0x2b66d5[_0x0ab4('0x33')]=qs['filters'](_[_0x0ab4('0x34')](_0x580d56[_0x0ab4('0x29')],_0x155d96[_0x0ab4('0x2b')]),_0x46eda7);if(_0x580d56[_0x0ab4('0x29')][_0x0ab4('0x35')]){_0x2b66d5[_0x0ab4('0x33')]=_[_0x0ab4('0x36')](_0x2b66d5[_0x0ab4('0x33')],{'$or':_[_0x0ab4('0x37')](_0x46eda7,function(_0x3774ca){if(_0x3774ca[_0x0ab4('0x38')]!==_0x0ab4('0x39')){var _0x4a05c4={};_0x4a05c4[_0x3774ca[_0x0ab4('0x25')]]={'$like':'%'+_0x580d56[_0x0ab4('0x29')][_0x0ab4('0x35')]+'%'};return _0x4a05c4;}})});}_0x2b66d5=_[_0x0ab4('0x36')]({},_0x2b66d5,_0x580d56['options']);var _0x42bece={'where':_0x2b66d5['where']};return db[_0x0ab4('0x3a')][_0x0ab4('0x3b')](_0x42bece)[_0x0ab4('0x1f')](function(_0x245021){_0x182bbe[_0x0ab4('0x3b')]=_0x245021;if(_0x580d56[_0x0ab4('0x29')]['includeAll']){_0x2b66d5[_0x0ab4('0x3c')]=[{'all':!![]}];}return db[_0x0ab4('0x3a')][_0x0ab4('0x3d')](_0x2b66d5);})['then'](function(_0x395e0b){_0x182bbe[_0x0ab4('0x3e')]=_0x395e0b;return _0x182bbe;})[_0x0ab4('0x1f')](respondWithFilteredResult(_0x2e7a97,_0x2b66d5))[_0x0ab4('0x3f')](handleError(_0x2e7a97,null));};exports[_0x0ab4('0x40')]=function(_0x5aa047,_0x5d70eb){var _0x498845={'raw':![],'where':{'id':_0x5aa047[_0x0ab4('0x41')]['id']}},_0x2f54dd={};_0x2f54dd['model']=_[_0x0ab4('0x2a')](db['JscriptyProject'][_0x0ab4('0x26')]);_0x2f54dd['query']=_[_0x0ab4('0x2a')](_0x5aa047[_0x0ab4('0x29')]);_0x2f54dd[_0x0ab4('0x2b')]=_[_0x0ab4('0x2c')](_0x2f54dd[_0x0ab4('0x28')],_0x2f54dd[_0x0ab4('0x29')]);_0x498845['attributes']=_[_0x0ab4('0x2c')](_0x2f54dd[_0x0ab4('0x28')],qs[_0x0ab4('0x2e')](_0x5aa047[_0x0ab4('0x29')][_0x0ab4('0x2e')]));_0x498845[_0x0ab4('0x2d')]=_0x498845['attributes'][_0x0ab4('0x42')]?_0x498845['attributes']:_0x2f54dd[_0x0ab4('0x28')];if(_0x5aa047[_0x0ab4('0x29')][_0x0ab4('0x43')]){_0x498845['include']=[{'all':!![]}];}_0x498845=_[_0x0ab4('0x36')]({},_0x498845,_0x5aa047[_0x0ab4('0x44')]);return db[_0x0ab4('0x3a')][_0x0ab4('0x45')](_0x498845)[_0x0ab4('0x1f')](handleEntityNotFound(_0x5d70eb,null))[_0x0ab4('0x1f')](respondWithResult(_0x5d70eb,null))['catch'](handleError(_0x5d70eb,null));};exports[_0x0ab4('0x46')]=function(_0xdcc118,_0x302894){return db[_0x0ab4('0x3a')][_0x0ab4('0x46')](_0xdcc118[_0x0ab4('0x47')],{})[_0x0ab4('0x1f')](function(_0x356bc9){var _0x22402e=_0xdcc118[_0x0ab4('0x48')][_0x0ab4('0x20')]({'plain':!![]});if(!_0x22402e)throw new Error(_0x0ab4('0x49'));if(_0x22402e[_0x0ab4('0x4a')]==='user'){var _0x2c3a0a=_0x356bc9[_0x0ab4('0x20')]({'plain':!![]});var _0x5800cc=_0x0ab4('0x4b');return db['UserProfileSection']['find']({'where':{'name':_0x5800cc,'userProfileId':_0x22402e[_0x0ab4('0x4c')]},'raw':!![]})[_0x0ab4('0x1f')](function(_0x156e22){if(_0x156e22&&_0x156e22['autoAssociation']===0x0){return db[_0x0ab4('0x21')][_0x0ab4('0x46')]({'name':_0x2c3a0a[_0x0ab4('0x25')],'resourceId':_0x2c3a0a['id'],'type':_0x156e22[_0x0ab4('0x25')],'sectionId':_0x156e22['id']},{})[_0x0ab4('0x1f')](function(){return _0x356bc9;});}else{return _0x356bc9;}})[_0x0ab4('0x3f')](function(_0x1eea3b){logger['error'](_0x0ab4('0x4d'),_0x1eea3b);throw _0x1eea3b;});}return _0x356bc9;})['then'](respondWithResult(_0x302894,0xc9))[_0x0ab4('0x3f')](handleError(_0x302894,null));};exports['clone']=function(_0x2597f2,_0x5550ff){var _0x52fcb0={'where':{'id':_0x2597f2[_0x0ab4('0x41')]['id']}},_0x3983ca={};_0x3983ca[_0x0ab4('0x28')]=_[_0x0ab4('0x2a')](db['JscriptyProject'][_0x0ab4('0x26')]);_0x52fcb0[_0x0ab4('0x2d')]=_[_0x0ab4('0x2c')](_0x3983ca[_0x0ab4('0x28')],qs[_0x0ab4('0x2e')](_0x2597f2[_0x0ab4('0x29')][_0x0ab4('0x2e')]));_0x52fcb0[_0x0ab4('0x2d')]=_0x52fcb0[_0x0ab4('0x2d')][_0x0ab4('0x42')]?_0x52fcb0[_0x0ab4('0x2d')]:_0x3983ca[_0x0ab4('0x28')];if(_0x2597f2[_0x0ab4('0x29')][_0x0ab4('0x43')]){_0x52fcb0[_0x0ab4('0x3c')]=[{'all':!![]}];}_0x52fcb0=_[_0x0ab4('0x36')]({},_0x52fcb0,_0x2597f2[_0x0ab4('0x44')]);return db[_0x0ab4('0x3a')][_0x0ab4('0x45')](_0x52fcb0)['then'](handleEntityNotFound(_0x5550ff,null))[_0x0ab4('0x1f')](function(_0x1e30fe){if(_0x1e30fe){var _0x3eba1e=_0x1e30fe[_0x0ab4('0x20')]({'plain':!![]});_0x3eba1e=qs[_0x0ab4('0x4e')](_0x3eba1e,['id',_0x0ab4('0x4f'),_0x0ab4('0x50')]);_0x2597f2[_0x0ab4('0x47')]=_['omit'](_0x2597f2[_0x0ab4('0x47')],['id',_0x0ab4('0x4f'),'updatedAt']);return db['JscriptyProject'][_0x0ab4('0x46')](_[_0x0ab4('0x36')](_0x3eba1e,_0x2597f2['body']),{'include':_0x2597f2['query'][_0x0ab4('0x43')]?[{'all':!![]}]:undefined})['then'](function(_0x597d26){var _0x427b51=_0x2597f2[_0x0ab4('0x48')][_0x0ab4('0x20')]({'plain':!![]});if(!_0x427b51)throw new Error(_0x0ab4('0x49'));if(_0x427b51[_0x0ab4('0x4a')]===_0x0ab4('0x48')){var _0x43dfdb=_0x597d26['get']({'plain':!![]});var _0x180c44=_0x0ab4('0x4b');return db[_0x0ab4('0x51')][_0x0ab4('0x45')]({'where':{'name':_0x180c44,'userProfileId':_0x427b51[_0x0ab4('0x4c')]},'raw':!![]})[_0x0ab4('0x1f')](function(_0x4f1847){if(_0x4f1847&&_0x4f1847[_0x0ab4('0x52')]===0x0){return db[_0x0ab4('0x21')]['create']({'name':_0x43dfdb[_0x0ab4('0x25')],'resourceId':_0x43dfdb['id'],'type':_0x4f1847['name'],'sectionId':_0x4f1847['id']},{})[_0x0ab4('0x1f')](function(){return _0x597d26;});}else{return _0x597d26;}})['catch'](function(_0x268b23){logger[_0x0ab4('0x23')](_0x0ab4('0x4d'),_0x268b23);throw _0x268b23;});}return _0x597d26;});}})[_0x0ab4('0x1f')](respondWithResult(_0x5550ff,0xc9))['catch'](handleError(_0x5550ff,null));};exports['update']=function(_0x10dd5b,_0x4477ba){if(_0x10dd5b['body']['id']){delete _0x10dd5b[_0x0ab4('0x47')]['id'];}return db[_0x0ab4('0x3a')][_0x0ab4('0x45')]({'where':{'id':_0x10dd5b['params']['id']}})[_0x0ab4('0x1f')](handleEntityNotFound(_0x4477ba,null))[_0x0ab4('0x1f')](saveUpdates(_0x10dd5b[_0x0ab4('0x47')],null))[_0x0ab4('0x1f')](respondWithResult(_0x4477ba,null))[_0x0ab4('0x3f')](handleError(_0x4477ba,null));};exports[_0x0ab4('0x22')]=function(_0x413817,_0x2bd0f0){return db['JscriptyProject']['find']({'where':{'id':_0x413817[_0x0ab4('0x41')]['id']}})[_0x0ab4('0x1f')](handleEntityNotFound(_0x2bd0f0,null))[_0x0ab4('0x1f')](removeEntity(_0x2bd0f0,null))[_0x0ab4('0x3f')](handleError(_0x2bd0f0,null));};exports['getSessions']=function(_0x417926,_0x5256d4,_0x16197f){var _0x3ae586={'raw':!![],'where':{}};var _0x18308f={};var _0x3e5f11={'count':0x0,'rows':[]};return db[_0x0ab4('0x3a')][_0x0ab4('0x53')]({'where':{'id':_0x417926[_0x0ab4('0x41')]['id']}})[_0x0ab4('0x1f')](handleEntityNotFound(_0x5256d4,null))[_0x0ab4('0x1f')](function(_0x5d2ec6){if(_0x5d2ec6){_0x18308f[_0x0ab4('0x28')]=_['keys'](db[_0x0ab4('0x54')][_0x0ab4('0x26')]);_0x18308f[_0x0ab4('0x29')]=_[_0x0ab4('0x2a')](_0x417926[_0x0ab4('0x29')]);_0x18308f[_0x0ab4('0x2b')]=_[_0x0ab4('0x2c')](_0x18308f[_0x0ab4('0x28')],_0x18308f[_0x0ab4('0x29')]);_0x3ae586['attributes']=_[_0x0ab4('0x2c')](_0x18308f[_0x0ab4('0x28')],qs['fields'](_0x417926[_0x0ab4('0x29')][_0x0ab4('0x2e')]));_0x3ae586[_0x0ab4('0x2d')]=_0x3ae586['attributes'][_0x0ab4('0x42')]?_0x3ae586[_0x0ab4('0x2d')]:_0x18308f[_0x0ab4('0x28')];if(!_0x417926[_0x0ab4('0x29')]['hasOwnProperty']('nolimit')){_0x3ae586[_0x0ab4('0x1b')]=qs[_0x0ab4('0x1b')](_0x417926[_0x0ab4('0x29')][_0x0ab4('0x1b')]);_0x3ae586['offset']=qs[_0x0ab4('0x19')](_0x417926[_0x0ab4('0x29')][_0x0ab4('0x19')]);}_0x3ae586['order']=qs['sort'](_0x417926[_0x0ab4('0x29')][_0x0ab4('0x32')]);_0x3ae586[_0x0ab4('0x33')]=qs[_0x0ab4('0x2b')](_[_0x0ab4('0x34')](_0x417926[_0x0ab4('0x29')],_0x18308f[_0x0ab4('0x2b')]));_0x3ae586['where'][_0x0ab4('0x55')]=_0x5d2ec6['id'];if(_0x417926['query']['filter']){_0x3ae586[_0x0ab4('0x33')]=_['merge'](_0x3ae586[_0x0ab4('0x33')],{'$or':_[_0x0ab4('0x37')](_0x3ae586[_0x0ab4('0x2d')],function(_0x368573){var _0x1eec8e={};_0x1eec8e[_0x368573]={'$like':'%'+_0x417926['query']['filter']+'%'};return _0x1eec8e;})});}_0x3ae586=_[_0x0ab4('0x36')]({},_0x3ae586,_0x417926[_0x0ab4('0x44')]);return db['JscriptySessionReport']['count']({'where':_0x3ae586[_0x0ab4('0x33')]})[_0x0ab4('0x1f')](function(_0x51a3ea){_0x3e5f11[_0x0ab4('0x3b')]=_0x51a3ea;if(_0x417926[_0x0ab4('0x29')][_0x0ab4('0x43')]){_0x3ae586['include']=[{'all':!![]}];}return db[_0x0ab4('0x54')][_0x0ab4('0x3d')](_0x3ae586);})[_0x0ab4('0x1f')](function(_0x1be1b9){_0x3e5f11['rows']=_0x1be1b9;return _0x3e5f11;});}})[_0x0ab4('0x1f')](respondWithFilteredResult(_0x5256d4,_0x3ae586))[_0x0ab4('0x3f')](handleError(_0x5256d4,null));};exports[_0x0ab4('0x56')]=function(_0x2eefbf,_0xd97d5,_0x205248){var _0x1fac21={'raw':!![],'where':{}};var _0x30ab45={};var _0x886cb0={'count':0x0,'rows':[]};return db[_0x0ab4('0x3a')]['findOne']({'where':{'id':_0x2eefbf[_0x0ab4('0x41')]['id']}})[_0x0ab4('0x1f')](handleEntityNotFound(_0xd97d5,null))[_0x0ab4('0x1f')](function(_0x78c98e){if(_0x78c98e){_0x30ab45[_0x0ab4('0x28')]=_['keys'](db[_0x0ab4('0x57')][_0x0ab4('0x26')]);_0x30ab45[_0x0ab4('0x29')]=_[_0x0ab4('0x2a')](_0x2eefbf[_0x0ab4('0x29')]);_0x30ab45[_0x0ab4('0x2b')]=_[_0x0ab4('0x2c')](_0x30ab45[_0x0ab4('0x28')],_0x30ab45[_0x0ab4('0x29')]);_0x1fac21[_0x0ab4('0x2d')]=_[_0x0ab4('0x2c')](_0x30ab45[_0x0ab4('0x28')],qs[_0x0ab4('0x2e')](_0x2eefbf[_0x0ab4('0x29')]['fields']));_0x1fac21[_0x0ab4('0x2d')]=_0x1fac21[_0x0ab4('0x2d')][_0x0ab4('0x42')]?_0x1fac21[_0x0ab4('0x2d')]:_0x30ab45['model'];if(!_0x2eefbf['query'][_0x0ab4('0x2f')](_0x0ab4('0x30'))){_0x1fac21['limit']=qs[_0x0ab4('0x1b')](_0x2eefbf[_0x0ab4('0x29')][_0x0ab4('0x1b')]);_0x1fac21[_0x0ab4('0x19')]=qs[_0x0ab4('0x19')](_0x2eefbf[_0x0ab4('0x29')][_0x0ab4('0x19')]);}_0x1fac21['order']=qs[_0x0ab4('0x32')](_0x2eefbf[_0x0ab4('0x29')][_0x0ab4('0x32')]);_0x1fac21[_0x0ab4('0x33')]=qs[_0x0ab4('0x2b')](_[_0x0ab4('0x34')](_0x2eefbf[_0x0ab4('0x29')],_0x30ab45[_0x0ab4('0x2b')]));_0x1fac21[_0x0ab4('0x33')]['ProjectId']=_0x78c98e['id'];if(_0x2eefbf[_0x0ab4('0x29')]['filter']){_0x1fac21[_0x0ab4('0x33')]=_[_0x0ab4('0x36')](_0x1fac21[_0x0ab4('0x33')],{'$or':_[_0x0ab4('0x37')](_0x1fac21[_0x0ab4('0x2d')],function(_0x76fa2){var _0x54c378={};_0x54c378[_0x76fa2]={'$like':'%'+_0x2eefbf['query'][_0x0ab4('0x35')]+'%'};return _0x54c378;})});}_0x1fac21=_[_0x0ab4('0x36')]({},_0x1fac21,_0x2eefbf['options']);return db['JscriptyAnswerReport'][_0x0ab4('0x3b')]({'where':_0x1fac21[_0x0ab4('0x33')]})['then'](function(_0x2c4982){_0x886cb0[_0x0ab4('0x3b')]=_0x2c4982;if(_0x2eefbf[_0x0ab4('0x29')][_0x0ab4('0x43')]){_0x1fac21['include']=[{'all':!![]}];}return db[_0x0ab4('0x57')]['findAll'](_0x1fac21);})['then'](function(_0x3390dc){_0x886cb0['rows']=_0x3390dc;return _0x886cb0;});}})[_0x0ab4('0x1f')](respondWithFilteredResult(_0xd97d5,_0x1fac21))[_0x0ab4('0x3f')](handleError(_0xd97d5,null));};function char(_0xb1cac2){return'number'===typeof _0xb1cac2?String[_0x0ab4('0x58')][_0x0ab4('0x1c')](null,arguments):_0xb1cac2;}function needsEncapsulation(_0x840fc2){return!!_0x840fc2&&(_0x840fc2[_0x0ab4('0x59')]()[_0x0ab4('0x5a')](char(0xd))>=0x0||_0x840fc2[_0x0ab4('0x59')]()[_0x0ab4('0x5a')](char(0xa))>=0x0||_0x840fc2['toString']()[_0x0ab4('0x5a')](char(0x2c))>=0x0||_0x840fc2['toString']()[_0x0ab4('0x5a')](char(0x22))>=0x0);}function encapsulate(_0x4d3083){var _0x525492=char(0x22),_0x3ad9d1='\x5c'+char(0x22),_0x7ae8b2=_0x4d3083[_0x0ab4('0x59')]()[_0x0ab4('0x5b')](new RegExp(_0x525492,'g'),_0x3ad9d1);return _0x525492+_0x7ae8b2+_0x525492;}exports[_0x0ab4('0x5c')]=function(_0x5e001a,_0x48ad72,_0x384304){var _0x472bfb,_0x4b8c39;var _0x1f0aef={'where':{'ProjectId':_0x5e001a['params']['id']}};if(_0x5e001a[_0x0ab4('0x29')][_0x0ab4('0x5d')]){_0x1f0aef['where'][_0x0ab4('0x5e')]=JSON[_0x0ab4('0x5f')](_0x5e001a[_0x0ab4('0x29')][_0x0ab4('0x5d')]);}return db['JscriptySessionReport']['findAll'](_0x1f0aef)[_0x0ab4('0x1f')](handleEntityNotFound(_0x48ad72,null))[_0x0ab4('0x1f')](function(_0x418864){if(_0x418864){_0x472bfb=_0x418864;return db['JscriptyQuestionReport'][_0x0ab4('0x3d')]({'where':{'SessionId':{'$in':_['map'](_0x472bfb,'id')},'ProjectId':_0x5e001a[_0x0ab4('0x41')]['id']},'order':_0x0ab4('0x60')});}})['then'](handleEntityNotFound(_0x48ad72,null))['then'](function(_0x5a179e){if(_0x5a179e){_0x4b8c39=_0x5a179e;var _0x3e1a63={};for(var _0x2f38bb=0x0,_0x45c210=_0x4b8c39[_0x0ab4('0x42')];_0x2f38bb<_0x45c210;_0x2f38bb++){if(!_0x3e1a63[_0x0ab4('0x2f')](_0x4b8c39[_0x2f38bb]['questionId'])){_0x3e1a63[_0x4b8c39[_0x2f38bb][_0x0ab4('0x61')]]=needsEncapsulation(_0x4b8c39[_0x2f38bb][_0x0ab4('0x62')])?encapsulate(_0x4b8c39[_0x2f38bb][_0x0ab4('0x62')]):_0x4b8c39[_0x2f38bb][_0x0ab4('0x62')];}}var _0x128931=[],_0x47a131={};for(var _0x2d1b2e=0x0,_0x70593e=_0x472bfb['length'];_0x2d1b2e<_0x70593e;_0x2d1b2e++){_0x47a131={'ProjectId':_0x5e001a[_0x0ab4('0x41')]['id'],'SessionId':_0x472bfb[_0x2d1b2e]['id'],'StartTime':moment(_0x472bfb[_0x2d1b2e][_0x0ab4('0x5e')])[_0x0ab4('0x63')](_0x0ab4('0x64'))};for(var _0x1eda87=0x0,_0x35d2ec=_0x4b8c39[_0x0ab4('0x42')];_0x1eda87<_0x35d2ec;_0x1eda87++){if(_0x4b8c39[_0x1eda87][_0x0ab4('0x65')]==_0x472bfb[_0x2d1b2e]['id']&&_0x3e1a63[_0x0ab4('0x2f')](_0x4b8c39[_0x1eda87][_0x0ab4('0x61')])){_0x47a131[_0x3e1a63[_0x4b8c39[_0x1eda87]['questionId']]]=_0x4b8c39[_0x1eda87][_0x0ab4('0x66')];}}for(var _0x28570e in _0x3e1a63){if(!_0x47a131[_0x0ab4('0x2f')](_0x3e1a63[_0x28570e])){_0x47a131[_0x3e1a63[_0x28570e]]=null;}}_0x128931[_0x0ab4('0x67')](_0x47a131);}return _0x128931;}})[_0x0ab4('0x1f')](function(_0x4a9e47){if(!_['isEmpty'](_0x4a9e47)){var _0xf8abfa=toCsv(_0x4a9e47);var _0x526698=Date[_0x0ab4('0x68')]();fs[_0x0ab4('0x69')](util[_0x0ab4('0x63')](_0x0ab4('0x6a'),_0x5e001a['params']['id'],_0x526698),_0xf8abfa);_0x48ad72[_0x0ab4('0x6b')](_0x0ab4('0x6c'),_0x0ab4('0x6d')+util[_0x0ab4('0x63')]('Jscripty_Project_%d_Summary_%s.csv',_0x5e001a[_0x0ab4('0x41')]['id'],_0x526698));_0x48ad72[_0x0ab4('0x6b')](_0x0ab4('0x6e'),_0x0ab4('0x6f'));return _0x48ad72['download'](util['format'](_0x0ab4('0x6a'),_0x5e001a[_0x0ab4('0x41')]['id'],_0x526698));}else{return _0x48ad72[_0x0ab4('0x15')](0xcc);}})['catch'](handleError(_0x48ad72,null));};
\ No newline at end of file
+var _0x7d06=['fs-extra','lodash','squel','crypto','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/environment','../../config/license/util','sendStatus','end','status','json','undefined','limit','count','offset','Content-Range','reject','save','update','then','destroy','Projects','UserProfileResource','error','stack','name','map','JscriptyProject','type','query','keys','filters','intersection','model','attributes','fields','length','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','show','params','rawAttributes','find','user','role','get','UserProfileSection','userProfileId','autoAssociation','create','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','clone','omit','createdAt','body','updatedAt','Unable\x20to\x20retrieve\x20the\x20current\x20user','findOne','JscriptySessionReport','hasOwnProperty','nolimit','ProjectId','getAnswers','JscriptyAnswerReport','number','fromCharCode','apply','toString','indexOf','replace','startTime','parse','JscriptyQuestionReport','-createdAt','questionId','question','starttime','format','YYYY-MM-DD\x20HH:mm:ss','SessionId','push','isEmpty','now','writeFileSync','Content-disposition','attachment;\x20filename=','Jscripty_Project_%d_Summary_%s.csv','setHeader','Content-type','text/csv','/tmp/Jscripty_Project_%d_Summary_%s.csv','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','sox','ejs'];(function(_0x5b0fd6,_0x51a24c){var _0x2f6b80=function(_0x54e710){while(--_0x54e710){_0x5b0fd6['push'](_0x5b0fd6['shift']());}};_0x2f6b80(++_0x51a24c);}(_0x7d06,0x158));var _0x67d0=function(_0x1e1eff,_0x2b0a24){_0x1e1eff=_0x1e1eff-0x0;var _0x3d24d2=_0x7d06[_0x1e1eff];return _0x3d24d2;};'use strict';var emlformat=require(_0x67d0('0x0'));var rimraf=require(_0x67d0('0x1'));var zipdir=require(_0x67d0('0x2'));var jsonpatch=require(_0x67d0('0x3'));var rp=require(_0x67d0('0x4'));var moment=require('moment');var BPromise=require(_0x67d0('0x5'));var Mustache=require(_0x67d0('0x6'));var util=require(_0x67d0('0x7'));var path=require('path');var sox=require(_0x67d0('0x8'));var csv=require('to-csv');var ejs=require(_0x67d0('0x9'));var fs=require('fs');var fs_extra=require(_0x67d0('0xa'));var _=require(_0x67d0('0xb'));var squel=require(_0x67d0('0xc'));var crypto=require(_0x67d0('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x67d0('0xe'));var toCsv=require('to-csv');var querystring=require(_0x67d0('0xf'));var Papa=require('papaparse');var Redis=require(_0x67d0('0x10'));var authService=require(_0x67d0('0x11'));var qs=require(_0x67d0('0x12'));var as=require(_0x67d0('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x67d0('0x14'))('api');var utils=require('../../config/utils');var config=require(_0x67d0('0x15'));var licenseUtil=require(_0x67d0('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1d1532,_0xa91811){_0xa91811=_0xa91811||0xcc;return function(_0x59efbe){if(_0x59efbe){return _0x1d1532[_0x67d0('0x17')](_0xa91811);}return _0x1d1532['status'](_0xa91811)[_0x67d0('0x18')]();};}function respondWithResult(_0x1b4833,_0x172415){_0x172415=_0x172415||0xc8;return function(_0x370d6a){if(_0x370d6a){return _0x1b4833[_0x67d0('0x19')](_0x172415)[_0x67d0('0x1a')](_0x370d6a);}};}function respondWithFilteredResult(_0x254293,_0x25dd91){return function(_0x311456){if(_0x311456){var _0x1f8046=typeof _0x25dd91['offset']===_0x67d0('0x1b')&&typeof _0x25dd91[_0x67d0('0x1c')]==='undefined';var _0x2840fd=_0x311456[_0x67d0('0x1d')];var _0x114c2d=_0x1f8046?0x0:_0x25dd91[_0x67d0('0x1e')];var _0x1d594e=_0x1f8046?_0x311456['count']:_0x25dd91[_0x67d0('0x1e')]+_0x25dd91[_0x67d0('0x1c')];var _0x4886cf;if(_0x1d594e>=_0x2840fd){_0x1d594e=_0x2840fd;_0x4886cf=0xc8;}else{_0x4886cf=0xce;}_0x254293[_0x67d0('0x19')](_0x4886cf);return _0x254293['set'](_0x67d0('0x1f'),_0x114c2d+'-'+_0x1d594e+'/'+_0x2840fd)[_0x67d0('0x1a')](_0x311456);}return null;};}function patchUpdates(_0x248856){return function(_0x5bc9e4){try{jsonpatch['apply'](_0x5bc9e4,_0x248856,!![]);}catch(_0x3e19ab){return BPromise[_0x67d0('0x20')](_0x3e19ab);}return _0x5bc9e4[_0x67d0('0x21')]();};}function saveUpdates(_0x2e0f9a,_0x219544){return function(_0x2f4b5c){if(_0x2f4b5c){return _0x2f4b5c[_0x67d0('0x22')](_0x2e0f9a)[_0x67d0('0x23')](function(_0xbf5d9a){return _0xbf5d9a;});}return null;};}function removeEntity(_0x10928d,_0x15f7fa){return function(_0x3f32fb){if(_0x3f32fb){return _0x3f32fb[_0x67d0('0x24')]()[_0x67d0('0x23')](function(){var _0x356689=_0x3f32fb['get']({'plain':!![]});var _0x27a9fe=_0x67d0('0x25');return db[_0x67d0('0x26')][_0x67d0('0x24')]({'where':{'type':_0x27a9fe,'resourceId':_0x356689['id']}})[_0x67d0('0x23')](function(){return _0x3f32fb;});})[_0x67d0('0x23')](function(){_0x10928d[_0x67d0('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3f53f5,_0x49cfaf){return function(_0x18bf2e){if(!_0x18bf2e){_0x3f53f5[_0x67d0('0x17')](0x194);}return _0x18bf2e;};}function handleError(_0x3059c3,_0x510e77){_0x510e77=_0x510e77||0x1f4;return function(_0x33b511){logger[_0x67d0('0x27')](_0x33b511[_0x67d0('0x28')]);if(_0x33b511[_0x67d0('0x29')]){delete _0x33b511[_0x67d0('0x29')];}_0x3059c3['status'](_0x510e77)['send'](_0x33b511);};}exports['index']=function(_0x5d689d,_0x20bb1a){var _0x54f418={},_0x3d9812={},_0x3857c3={'count':0x0,'rows':[]};var _0x2f614f=_[_0x67d0('0x2a')](db[_0x67d0('0x2b')]['rawAttributes'],function(_0x1f46ac){return{'name':_0x1f46ac['fieldName'],'type':_0x1f46ac[_0x67d0('0x2c')]['key']};});_0x3d9812['model']=_[_0x67d0('0x2a')](_0x2f614f,_0x67d0('0x29'));_0x3d9812[_0x67d0('0x2d')]=_[_0x67d0('0x2e')](_0x5d689d['query']);_0x3d9812[_0x67d0('0x2f')]=_[_0x67d0('0x30')](_0x3d9812[_0x67d0('0x31')],_0x3d9812[_0x67d0('0x2d')]);_0x54f418[_0x67d0('0x32')]=_[_0x67d0('0x30')](_0x3d9812['model'],qs['fields'](_0x5d689d[_0x67d0('0x2d')][_0x67d0('0x33')]));_0x54f418[_0x67d0('0x32')]=_0x54f418['attributes'][_0x67d0('0x34')]?_0x54f418[_0x67d0('0x32')]:_0x3d9812[_0x67d0('0x31')];if(!_0x5d689d['query']['hasOwnProperty']('nolimit')){_0x54f418[_0x67d0('0x1c')]=qs[_0x67d0('0x1c')](_0x5d689d[_0x67d0('0x2d')][_0x67d0('0x1c')]);_0x54f418[_0x67d0('0x1e')]=qs[_0x67d0('0x1e')](_0x5d689d[_0x67d0('0x2d')][_0x67d0('0x1e')]);}_0x54f418[_0x67d0('0x35')]=qs['sort'](_0x5d689d['query'][_0x67d0('0x36')]);_0x54f418[_0x67d0('0x37')]=qs[_0x67d0('0x2f')](_[_0x67d0('0x38')](_0x5d689d[_0x67d0('0x2d')],_0x3d9812[_0x67d0('0x2f')]),_0x2f614f);if(_0x5d689d[_0x67d0('0x2d')][_0x67d0('0x39')]){_0x54f418['where']=_[_0x67d0('0x3a')](_0x54f418['where'],{'$or':_[_0x67d0('0x2a')](_0x2f614f,function(_0x34b675){if(_0x34b675['type']!==_0x67d0('0x3b')){var _0x2fa7eb={};_0x2fa7eb[_0x34b675['name']]={'$like':'%'+_0x5d689d[_0x67d0('0x2d')][_0x67d0('0x39')]+'%'};return _0x2fa7eb;}})});}_0x54f418=_[_0x67d0('0x3a')]({},_0x54f418,_0x5d689d[_0x67d0('0x3c')]);var _0x537e1a={'where':_0x54f418[_0x67d0('0x37')]};return db[_0x67d0('0x2b')]['count'](_0x537e1a)[_0x67d0('0x23')](function(_0x1e0750){_0x3857c3[_0x67d0('0x1d')]=_0x1e0750;if(_0x5d689d['query'][_0x67d0('0x3d')]){_0x54f418[_0x67d0('0x3e')]=[{'all':!![]}];}return db[_0x67d0('0x2b')][_0x67d0('0x3f')](_0x54f418);})[_0x67d0('0x23')](function(_0x20083f){_0x3857c3[_0x67d0('0x40')]=_0x20083f;return _0x3857c3;})['then'](respondWithFilteredResult(_0x20bb1a,_0x54f418))[_0x67d0('0x41')](handleError(_0x20bb1a,null));};exports[_0x67d0('0x42')]=function(_0x1030a9,_0x160c1b){var _0x25fd63={'raw':![],'where':{'id':_0x1030a9[_0x67d0('0x43')]['id']}},_0x5fad3d={};_0x5fad3d['model']=_[_0x67d0('0x2e')](db[_0x67d0('0x2b')][_0x67d0('0x44')]);_0x5fad3d['query']=_['keys'](_0x1030a9['query']);_0x5fad3d['filters']=_[_0x67d0('0x30')](_0x5fad3d['model'],_0x5fad3d[_0x67d0('0x2d')]);_0x25fd63[_0x67d0('0x32')]=_[_0x67d0('0x30')](_0x5fad3d[_0x67d0('0x31')],qs[_0x67d0('0x33')](_0x1030a9[_0x67d0('0x2d')][_0x67d0('0x33')]));_0x25fd63[_0x67d0('0x32')]=_0x25fd63[_0x67d0('0x32')][_0x67d0('0x34')]?_0x25fd63[_0x67d0('0x32')]:_0x5fad3d['model'];if(_0x1030a9[_0x67d0('0x2d')][_0x67d0('0x3d')]){_0x25fd63[_0x67d0('0x3e')]=[{'all':!![]}];}_0x25fd63=_[_0x67d0('0x3a')]({},_0x25fd63,_0x1030a9[_0x67d0('0x3c')]);return db[_0x67d0('0x2b')][_0x67d0('0x45')](_0x25fd63)[_0x67d0('0x23')](handleEntityNotFound(_0x160c1b,null))[_0x67d0('0x23')](respondWithResult(_0x160c1b,null))[_0x67d0('0x41')](handleError(_0x160c1b,null));};exports['create']=function(_0x1c5cf5,_0x161236){return db[_0x67d0('0x2b')]['create'](_0x1c5cf5['body'],{})[_0x67d0('0x23')](function(_0x52446b){var _0x1e4e0b=_0x1c5cf5[_0x67d0('0x46')]['get']({'plain':!![]});if(!_0x1e4e0b)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x1e4e0b[_0x67d0('0x47')]===_0x67d0('0x46')){var _0x5caa2b=_0x52446b[_0x67d0('0x48')]({'plain':!![]});var _0x1e0027=_0x67d0('0x25');return db[_0x67d0('0x49')][_0x67d0('0x45')]({'where':{'name':_0x1e0027,'userProfileId':_0x1e4e0b[_0x67d0('0x4a')]},'raw':!![]})['then'](function(_0x3d813d){if(_0x3d813d&&_0x3d813d[_0x67d0('0x4b')]===0x0){return db[_0x67d0('0x26')][_0x67d0('0x4c')]({'name':_0x5caa2b[_0x67d0('0x29')],'resourceId':_0x5caa2b['id'],'type':_0x3d813d['name'],'sectionId':_0x3d813d['id']},{})[_0x67d0('0x23')](function(){return _0x52446b;});}else{return _0x52446b;}})[_0x67d0('0x41')](function(_0x3205ae){logger['error'](_0x67d0('0x4d'),_0x3205ae);throw _0x3205ae;});}return _0x52446b;})[_0x67d0('0x23')](respondWithResult(_0x161236,0xc9))['catch'](handleError(_0x161236,null));};exports[_0x67d0('0x4e')]=function(_0x5a2d4a,_0x47ad2b){var _0x26ad88={'where':{'id':_0x5a2d4a[_0x67d0('0x43')]['id']}},_0x4c8f98={};_0x4c8f98[_0x67d0('0x31')]=_[_0x67d0('0x2e')](db[_0x67d0('0x2b')][_0x67d0('0x44')]);_0x26ad88[_0x67d0('0x32')]=_[_0x67d0('0x30')](_0x4c8f98[_0x67d0('0x31')],qs[_0x67d0('0x33')](_0x5a2d4a[_0x67d0('0x2d')]['fields']));_0x26ad88[_0x67d0('0x32')]=_0x26ad88[_0x67d0('0x32')][_0x67d0('0x34')]?_0x26ad88['attributes']:_0x4c8f98['model'];if(_0x5a2d4a['query'][_0x67d0('0x3d')]){_0x26ad88[_0x67d0('0x3e')]=[{'all':!![]}];}_0x26ad88=_[_0x67d0('0x3a')]({},_0x26ad88,_0x5a2d4a[_0x67d0('0x3c')]);return db['JscriptyProject']['find'](_0x26ad88)[_0x67d0('0x23')](handleEntityNotFound(_0x47ad2b,null))[_0x67d0('0x23')](function(_0x21fd1f){if(_0x21fd1f){var _0x2fa9de=_0x21fd1f['get']({'plain':!![]});_0x2fa9de=qs[_0x67d0('0x4f')](_0x2fa9de,['id',_0x67d0('0x50'),'updatedAt']);_0x5a2d4a['body']=_[_0x67d0('0x4f')](_0x5a2d4a[_0x67d0('0x51')],['id',_0x67d0('0x50'),_0x67d0('0x52')]);return db[_0x67d0('0x2b')][_0x67d0('0x4c')](_[_0x67d0('0x3a')](_0x2fa9de,_0x5a2d4a[_0x67d0('0x51')]),{'include':_0x5a2d4a[_0x67d0('0x2d')][_0x67d0('0x3d')]?[{'all':!![]}]:undefined})['then'](function(_0x25cd79){var _0x43041f=_0x5a2d4a[_0x67d0('0x46')][_0x67d0('0x48')]({'plain':!![]});if(!_0x43041f)throw new Error(_0x67d0('0x53'));if(_0x43041f[_0x67d0('0x47')]===_0x67d0('0x46')){var _0x53e1df=_0x25cd79['get']({'plain':!![]});var _0x12abed='Projects';return db[_0x67d0('0x49')][_0x67d0('0x45')]({'where':{'name':_0x12abed,'userProfileId':_0x43041f[_0x67d0('0x4a')]},'raw':!![]})[_0x67d0('0x23')](function(_0x25dc28){if(_0x25dc28&&_0x25dc28['autoAssociation']===0x0){return db[_0x67d0('0x26')][_0x67d0('0x4c')]({'name':_0x53e1df[_0x67d0('0x29')],'resourceId':_0x53e1df['id'],'type':_0x25dc28['name'],'sectionId':_0x25dc28['id']},{})['then'](function(){return _0x25cd79;});}else{return _0x25cd79;}})['catch'](function(_0x5b8928){logger[_0x67d0('0x27')](_0x67d0('0x4d'),_0x5b8928);throw _0x5b8928;});}return _0x25cd79;});}})[_0x67d0('0x23')](respondWithResult(_0x47ad2b,0xc9))['catch'](handleError(_0x47ad2b,null));};exports[_0x67d0('0x22')]=function(_0x2bc141,_0x365177){if(_0x2bc141[_0x67d0('0x51')]['id']){delete _0x2bc141[_0x67d0('0x51')]['id'];}return db['JscriptyProject'][_0x67d0('0x45')]({'where':{'id':_0x2bc141['params']['id']}})[_0x67d0('0x23')](handleEntityNotFound(_0x365177,null))[_0x67d0('0x23')](saveUpdates(_0x2bc141['body'],null))[_0x67d0('0x23')](respondWithResult(_0x365177,null))[_0x67d0('0x41')](handleError(_0x365177,null));};exports[_0x67d0('0x24')]=function(_0x3e2929,_0x3ce91a){return db[_0x67d0('0x2b')][_0x67d0('0x45')]({'where':{'id':_0x3e2929['params']['id']}})[_0x67d0('0x23')](handleEntityNotFound(_0x3ce91a,null))[_0x67d0('0x23')](removeEntity(_0x3ce91a,null))[_0x67d0('0x41')](handleError(_0x3ce91a,null));};exports['getSessions']=function(_0x23d21c,_0x3ca27c,_0x543802){var _0x1a2746={'raw':!![],'where':{}};var _0x323479={};var _0x1320f3={'count':0x0,'rows':[]};return db[_0x67d0('0x2b')][_0x67d0('0x54')]({'where':{'id':_0x23d21c['params']['id']}})[_0x67d0('0x23')](handleEntityNotFound(_0x3ca27c,null))[_0x67d0('0x23')](function(_0x5239b7){if(_0x5239b7){_0x323479[_0x67d0('0x31')]=_[_0x67d0('0x2e')](db[_0x67d0('0x55')][_0x67d0('0x44')]);_0x323479[_0x67d0('0x2d')]=_[_0x67d0('0x2e')](_0x23d21c[_0x67d0('0x2d')]);_0x323479[_0x67d0('0x2f')]=_[_0x67d0('0x30')](_0x323479['model'],_0x323479['query']);_0x1a2746['attributes']=_[_0x67d0('0x30')](_0x323479['model'],qs[_0x67d0('0x33')](_0x23d21c[_0x67d0('0x2d')][_0x67d0('0x33')]));_0x1a2746[_0x67d0('0x32')]=_0x1a2746[_0x67d0('0x32')][_0x67d0('0x34')]?_0x1a2746[_0x67d0('0x32')]:_0x323479[_0x67d0('0x31')];if(!_0x23d21c['query'][_0x67d0('0x56')](_0x67d0('0x57'))){_0x1a2746[_0x67d0('0x1c')]=qs[_0x67d0('0x1c')](_0x23d21c[_0x67d0('0x2d')][_0x67d0('0x1c')]);_0x1a2746[_0x67d0('0x1e')]=qs[_0x67d0('0x1e')](_0x23d21c[_0x67d0('0x2d')][_0x67d0('0x1e')]);}_0x1a2746[_0x67d0('0x35')]=qs[_0x67d0('0x36')](_0x23d21c[_0x67d0('0x2d')]['sort']);_0x1a2746['where']=qs[_0x67d0('0x2f')](_['pick'](_0x23d21c[_0x67d0('0x2d')],_0x323479[_0x67d0('0x2f')]));_0x1a2746['where'][_0x67d0('0x58')]=_0x5239b7['id'];if(_0x23d21c[_0x67d0('0x2d')][_0x67d0('0x39')]){_0x1a2746['where']=_[_0x67d0('0x3a')](_0x1a2746[_0x67d0('0x37')],{'$or':_[_0x67d0('0x2a')](_0x1a2746[_0x67d0('0x32')],function(_0x55e11a){var _0x1ee75b={};_0x1ee75b[_0x55e11a]={'$like':'%'+_0x23d21c['query']['filter']+'%'};return _0x1ee75b;})});}_0x1a2746=_[_0x67d0('0x3a')]({},_0x1a2746,_0x23d21c[_0x67d0('0x3c')]);return db[_0x67d0('0x55')][_0x67d0('0x1d')]({'where':_0x1a2746[_0x67d0('0x37')]})[_0x67d0('0x23')](function(_0xfef510){_0x1320f3[_0x67d0('0x1d')]=_0xfef510;if(_0x23d21c[_0x67d0('0x2d')][_0x67d0('0x3d')]){_0x1a2746[_0x67d0('0x3e')]=[{'all':!![]}];}return db['JscriptySessionReport'][_0x67d0('0x3f')](_0x1a2746);})[_0x67d0('0x23')](function(_0x35b737){_0x1320f3[_0x67d0('0x40')]=_0x35b737;return _0x1320f3;});}})[_0x67d0('0x23')](respondWithFilteredResult(_0x3ca27c,_0x1a2746))[_0x67d0('0x41')](handleError(_0x3ca27c,null));};exports[_0x67d0('0x59')]=function(_0x3736b4,_0x160df6,_0xae98c2){var _0x3a97b2={'raw':!![],'where':{}};var _0x237529={};var _0x9c33ff={'count':0x0,'rows':[]};return db[_0x67d0('0x2b')][_0x67d0('0x54')]({'where':{'id':_0x3736b4[_0x67d0('0x43')]['id']}})['then'](handleEntityNotFound(_0x160df6,null))['then'](function(_0x5714c6){if(_0x5714c6){_0x237529[_0x67d0('0x31')]=_[_0x67d0('0x2e')](db[_0x67d0('0x5a')]['rawAttributes']);_0x237529[_0x67d0('0x2d')]=_[_0x67d0('0x2e')](_0x3736b4['query']);_0x237529['filters']=_[_0x67d0('0x30')](_0x237529['model'],_0x237529[_0x67d0('0x2d')]);_0x3a97b2['attributes']=_['intersection'](_0x237529[_0x67d0('0x31')],qs[_0x67d0('0x33')](_0x3736b4[_0x67d0('0x2d')][_0x67d0('0x33')]));_0x3a97b2['attributes']=_0x3a97b2['attributes'][_0x67d0('0x34')]?_0x3a97b2[_0x67d0('0x32')]:_0x237529['model'];if(!_0x3736b4[_0x67d0('0x2d')]['hasOwnProperty'](_0x67d0('0x57'))){_0x3a97b2['limit']=qs[_0x67d0('0x1c')](_0x3736b4[_0x67d0('0x2d')][_0x67d0('0x1c')]);_0x3a97b2[_0x67d0('0x1e')]=qs[_0x67d0('0x1e')](_0x3736b4['query'][_0x67d0('0x1e')]);}_0x3a97b2[_0x67d0('0x35')]=qs[_0x67d0('0x36')](_0x3736b4[_0x67d0('0x2d')][_0x67d0('0x36')]);_0x3a97b2[_0x67d0('0x37')]=qs[_0x67d0('0x2f')](_[_0x67d0('0x38')](_0x3736b4[_0x67d0('0x2d')],_0x237529['filters']));_0x3a97b2[_0x67d0('0x37')]['ProjectId']=_0x5714c6['id'];if(_0x3736b4[_0x67d0('0x2d')][_0x67d0('0x39')]){_0x3a97b2['where']=_[_0x67d0('0x3a')](_0x3a97b2['where'],{'$or':_[_0x67d0('0x2a')](_0x3a97b2[_0x67d0('0x32')],function(_0x1df0f6){var _0x125283={};_0x125283[_0x1df0f6]={'$like':'%'+_0x3736b4[_0x67d0('0x2d')][_0x67d0('0x39')]+'%'};return _0x125283;})});}_0x3a97b2=_[_0x67d0('0x3a')]({},_0x3a97b2,_0x3736b4[_0x67d0('0x3c')]);return db[_0x67d0('0x5a')][_0x67d0('0x1d')]({'where':_0x3a97b2['where']})[_0x67d0('0x23')](function(_0x41d17c){_0x9c33ff[_0x67d0('0x1d')]=_0x41d17c;if(_0x3736b4[_0x67d0('0x2d')]['includeAll']){_0x3a97b2[_0x67d0('0x3e')]=[{'all':!![]}];}return db[_0x67d0('0x5a')][_0x67d0('0x3f')](_0x3a97b2);})['then'](function(_0x2507d1){_0x9c33ff['rows']=_0x2507d1;return _0x9c33ff;});}})['then'](respondWithFilteredResult(_0x160df6,_0x3a97b2))[_0x67d0('0x41')](handleError(_0x160df6,null));};function char(_0x542e51){return _0x67d0('0x5b')===typeof _0x542e51?String[_0x67d0('0x5c')][_0x67d0('0x5d')](null,arguments):_0x542e51;}function needsEncapsulation(_0x138586){return!!_0x138586&&(_0x138586[_0x67d0('0x5e')]()['indexOf'](char(0xd))>=0x0||_0x138586['toString']()[_0x67d0('0x5f')](char(0xa))>=0x0||_0x138586[_0x67d0('0x5e')]()[_0x67d0('0x5f')](char(0x2c))>=0x0||_0x138586['toString']()[_0x67d0('0x5f')](char(0x22))>=0x0);}function encapsulate(_0x5c91db){var _0x5e7ffb=char(0x22),_0x80045c='\x5c'+char(0x22),_0x249bfa=_0x5c91db[_0x67d0('0x5e')]()[_0x67d0('0x60')](new RegExp(_0x5e7ffb,'g'),_0x80045c);return _0x5e7ffb+_0x249bfa+_0x5e7ffb;}exports['getSummary']=function(_0x40b3b8,_0x47f5bf,_0x3bda24){var _0x4487af,_0x52964e;var _0x505f3c={'where':{'ProjectId':_0x40b3b8['params']['id']}};if(_0x40b3b8[_0x67d0('0x2d')][_0x67d0('0x61')]){_0x505f3c[_0x67d0('0x37')]['starttime']=JSON[_0x67d0('0x62')](_0x40b3b8[_0x67d0('0x2d')][_0x67d0('0x61')]);}return db['JscriptySessionReport'][_0x67d0('0x3f')](_0x505f3c)[_0x67d0('0x23')](handleEntityNotFound(_0x47f5bf,null))[_0x67d0('0x23')](function(_0x368336){if(_0x368336){_0x4487af=_0x368336;return db[_0x67d0('0x63')][_0x67d0('0x3f')]({'where':{'SessionId':{'$in':_[_0x67d0('0x2a')](_0x4487af,'id')},'ProjectId':_0x40b3b8[_0x67d0('0x43')]['id']},'order':_0x67d0('0x64')});}})['then'](handleEntityNotFound(_0x47f5bf,null))['then'](function(_0x112be1){if(_0x112be1){_0x52964e=_0x112be1;var _0x35a9b1={};for(var _0x3b4a79=0x0,_0xe84fd5=_0x52964e[_0x67d0('0x34')];_0x3b4a79<_0xe84fd5;_0x3b4a79++){if(!_0x35a9b1[_0x67d0('0x56')](_0x52964e[_0x3b4a79]['questionId'])){_0x35a9b1[_0x52964e[_0x3b4a79][_0x67d0('0x65')]]=needsEncapsulation(_0x52964e[_0x3b4a79][_0x67d0('0x66')])?encapsulate(_0x52964e[_0x3b4a79]['question']):_0x52964e[_0x3b4a79][_0x67d0('0x66')];}}var _0x50b78a=[],_0x4fe46a={};for(var _0x442300=0x0,_0x5edec6=_0x4487af['length'];_0x442300<_0x5edec6;_0x442300++){_0x4fe46a={'ProjectId':_0x40b3b8['params']['id'],'SessionId':_0x4487af[_0x442300]['id'],'StartTime':moment(_0x4487af[_0x442300][_0x67d0('0x67')])[_0x67d0('0x68')](_0x67d0('0x69'))};for(var _0x478dc0=0x0,_0x2ad360=_0x52964e[_0x67d0('0x34')];_0x478dc0<_0x2ad360;_0x478dc0++){if(_0x52964e[_0x478dc0][_0x67d0('0x6a')]==_0x4487af[_0x442300]['id']&&_0x35a9b1[_0x67d0('0x56')](_0x52964e[_0x478dc0][_0x67d0('0x65')])){_0x4fe46a[_0x35a9b1[_0x52964e[_0x478dc0]['questionId']]]=_0x52964e[_0x478dc0]['answer'];}}for(var _0x20085e in _0x35a9b1){if(!_0x4fe46a['hasOwnProperty'](_0x35a9b1[_0x20085e])){_0x4fe46a[_0x35a9b1[_0x20085e]]=null;}}_0x50b78a[_0x67d0('0x6b')](_0x4fe46a);}return _0x50b78a;}})['then'](function(_0x283f4a){if(!_[_0x67d0('0x6c')](_0x283f4a)){var _0x15246a=toCsv(_0x283f4a);var _0x965ee=Date[_0x67d0('0x6d')]();fs[_0x67d0('0x6e')](util[_0x67d0('0x68')]('/tmp/Jscripty_Project_%d_Summary_%s.csv',_0x40b3b8[_0x67d0('0x43')]['id'],_0x965ee),_0x15246a);_0x47f5bf['setHeader'](_0x67d0('0x6f'),_0x67d0('0x70')+util[_0x67d0('0x68')](_0x67d0('0x71'),_0x40b3b8['params']['id'],_0x965ee));_0x47f5bf[_0x67d0('0x72')](_0x67d0('0x73'),_0x67d0('0x74'));return _0x47f5bf['download'](util[_0x67d0('0x68')](_0x67d0('0x75'),_0x40b3b8[_0x67d0('0x43')]['id'],_0x965ee));}else{return _0x47f5bf['sendStatus'](0xcc);}})[_0x67d0('0x41')](handleError(_0x47f5bf,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x13fe=['lodash','util','../../config/logger','api','moment','bluebird','path','rimraf','../../config/environment','./jscriptyProject.attributes','exports','jscripty_projects'];(function(_0x2646f6,_0x287adf){var _0x577237=function(_0x4d2d6f){while(--_0x4d2d6f){_0x2646f6['push'](_0x2646f6['shift']());}};_0x577237(++_0x287adf);}(_0x13fe,0x138));var _0xe13f=function(_0x6131cd,_0x4c26a1){_0x6131cd=_0x6131cd-0x0;var _0x47e916=_0x13fe[_0x6131cd];return _0x47e916;};'use strict';var _=require(_0xe13f('0x0'));var util=require(_0xe13f('0x1'));var logger=require(_0xe13f('0x2'))(_0xe13f('0x3'));var moment=require(_0xe13f('0x4'));var BPromise=require(_0xe13f('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xe13f('0x6'));var rimraf=require(_0xe13f('0x7'));var config=require(_0xe13f('0x8'));var attributes=require(_0xe13f('0x9'));module[_0xe13f('0xa')]=function(_0x1ddbff,_0x2832ce){return _0x1ddbff['define']('JscriptyProject',attributes,{'tableName':_0xe13f('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x544f=['JscriptyProject','jscripty_projects','lodash','api','moment','bluebird','request-promise','rimraf','../../config/environment','exports','define'];(function(_0x4551c9,_0x32f94b){var _0x52c167=function(_0xbf7e02){while(--_0xbf7e02){_0x4551c9['push'](_0x4551c9['shift']());}};_0x52c167(++_0x32f94b);}(_0x544f,0x14c));var _0xf544=function(_0x39e283,_0x247e6b){_0x39e283=_0x39e283-0x0;var _0x7de89f=_0x544f[_0x39e283];return _0x7de89f;};'use strict';var _=require(_0xf544('0x0'));var util=require('util');var logger=require('../../config/logger')(_0xf544('0x1'));var moment=require(_0xf544('0x2'));var BPromise=require(_0xf544('0x3'));var rp=require(_0xf544('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0xf544('0x5'));var config=require(_0xf544('0x6'));var attributes=require('./jscriptyProject.attributes');module[_0xf544('0x7')]=function(_0x44eeec,_0x48029d){return _0x44eeec[_0xf544('0x8')](_0xf544('0x9'),attributes,{'tableName':_0xf544('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xac4a=['JscriptyProject,\x20%s,\x20%s','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../config/logger','rpc','../../config/environment','client','then','info','debug','JscriptyProject,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error'];(function(_0x1d1779,_0x284147){var _0x2377e9=function(_0x299f6f){while(--_0x299f6f){_0x1d1779['push'](_0x1d1779['shift']());}};_0x2377e9(++_0x284147);}(_0xac4a,0x13f));var _0xaac4=function(_0x2f18fa,_0x2bd2c8){_0x2f18fa=_0x2f18fa-0x0;var _0x43cb7a=_0xac4a[_0x2f18fa];return _0x43cb7a;};'use strict';var _=require(_0xaac4('0x0'));var util=require(_0xaac4('0x1'));var moment=require(_0xaac4('0x2'));var BPromise=require(_0xaac4('0x3'));var rs=require(_0xaac4('0x4'));var fs=require('fs');var Redis=require(_0xaac4('0x5'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xaac4('0x6'))(_0xaac4('0x7'));var config=require(_0xaac4('0x8'));var jayson=require('jayson/promise');var client=jayson[_0xaac4('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x1cdfc5,_0x5870e8,_0x1e4283){return new BPromise(function(_0x27354c,_0x567295){return client['request'](_0x1cdfc5,_0x1e4283)[_0xaac4('0xa')](function(_0x50d114){logger[_0xaac4('0xb')]('JscriptyProject,\x20%s,\x20%s',_0x5870e8,'request\x20sent');logger[_0xaac4('0xc')](_0xaac4('0xd'),_0x5870e8,_0xaac4('0xe'),JSON[_0xaac4('0xf')](_0x50d114));if(_0x50d114[_0xaac4('0x10')]){if(_0x50d114['error']['code']===0x1f4){logger[_0xaac4('0x10')](_0xaac4('0x11'),_0x5870e8,_0x50d114[_0xaac4('0x10')]['message']);return _0x567295(_0x50d114[_0xaac4('0x10')][_0xaac4('0x12')]);}logger['error'](_0xaac4('0x11'),_0x5870e8,_0x50d114[_0xaac4('0x10')][_0xaac4('0x12')]);return _0x27354c(_0x50d114[_0xaac4('0x10')][_0xaac4('0x12')]);}else{logger[_0xaac4('0xb')](_0xaac4('0x11'),_0x5870e8,_0xaac4('0xe'));_0x27354c(_0x50d114[_0xaac4('0x13')][_0xaac4('0x12')]);}})[_0xaac4('0x14')](function(_0x1766c2){logger[_0xaac4('0x10')]('JscriptyProject,\x20%s,\x20%s',_0x5870e8,_0x1766c2);_0x567295(_0x1766c2);});});}
\ No newline at end of file
+var _0xda3f=['rpc','jayson/promise','client','request','then','info','JscriptyProject,\x20%s,\x20%s','request\x20sent','debug','JscriptyProject,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','util','moment','../../mysqldb','../../config/logger'];(function(_0x58175c,_0x2d9373){var _0x55b88f=function(_0x13ed84){while(--_0x13ed84){_0x58175c['push'](_0x58175c['shift']());}};_0x55b88f(++_0x2d9373);}(_0xda3f,0xec));var _0xfda3=function(_0x2415b2,_0x45c7ca){_0x2415b2=_0x2415b2-0x0;var _0x38e76c=_0xda3f[_0x2415b2];return _0x38e76c;};'use strict';var _=require('lodash');var util=require(_0xfda3('0x0'));var moment=require(_0xfda3('0x1'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0xfda3('0x2'))['db'];var utils=require('../../config/utils');var logger=require(_0xfda3('0x3'))(_0xfda3('0x4'));var config=require('../../config/environment');var jayson=require(_0xfda3('0x5'));var client=jayson[_0xfda3('0x6')]['http']({'port':0x232a});function respondWithRpcPromise(_0x4e72d1,_0x316792,_0x42476a){return new BPromise(function(_0x125e2a,_0x4018c0){return client[_0xfda3('0x7')](_0x4e72d1,_0x42476a)[_0xfda3('0x8')](function(_0x46655c){logger[_0xfda3('0x9')](_0xfda3('0xa'),_0x316792,_0xfda3('0xb'));logger[_0xfda3('0xc')](_0xfda3('0xd'),_0x316792,'request\x20sent',JSON[_0xfda3('0xe')](_0x46655c));if(_0x46655c[_0xfda3('0xf')]){if(_0x46655c[_0xfda3('0xf')][_0xfda3('0x10')]===0x1f4){logger[_0xfda3('0xf')]('JscriptyProject,\x20%s,\x20%s',_0x316792,_0x46655c[_0xfda3('0xf')]['message']);return _0x4018c0(_0x46655c[_0xfda3('0xf')][_0xfda3('0x11')]);}logger['error']('JscriptyProject,\x20%s,\x20%s',_0x316792,_0x46655c['error'][_0xfda3('0x11')]);return _0x125e2a(_0x46655c[_0xfda3('0xf')]['message']);}else{logger['info']('JscriptyProject,\x20%s,\x20%s',_0x316792,_0xfda3('0xb'));_0x125e2a(_0x46655c[_0xfda3('0x12')][_0xfda3('0x11')]);}})[_0xfda3('0x13')](function(_0x34900d){logger[_0xfda3('0xf')](_0xfda3('0xa'),_0x316792,_0x34900d);_0x4018c0(_0x34900d);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8900=['../../components/auth/service','../../components/interaction/service','../../config/environment','./jscriptyQuestionReport.controller','index','get','/describe','isAuthenticated','describe','/:id','show','post','create','put','update','delete','destroy','exports','multer','path','connect-timeout','express','Router','fs-extra'];(function(_0x31a371,_0x50828e){var _0x2a5bd6=function(_0x2fb481){while(--_0x2fb481){_0x31a371['push'](_0x31a371['shift']());}};_0x2a5bd6(++_0x50828e);}(_0x8900,0x1aa));var _0x0890=function(_0x184abd,_0x1cf32c){_0x184abd=_0x184abd-0x0;var _0x3ae868=_0x8900[_0x184abd];return _0x3ae868;};'use strict';var multer=require(_0x0890('0x0'));var util=require('util');var path=require(_0x0890('0x1'));var timeout=require(_0x0890('0x2'));var express=require(_0x0890('0x3'));var router=express[_0x0890('0x4')]();var fs_extra=require(_0x0890('0x5'));var auth=require(_0x0890('0x6'));var interaction=require(_0x0890('0x7'));var config=require(_0x0890('0x8'));var controller=require(_0x0890('0x9'));router['get']('/',auth['isAuthenticated'](),controller[_0x0890('0xa')]);router[_0x0890('0xb')](_0x0890('0xc'),auth[_0x0890('0xd')](),controller[_0x0890('0xe')]);router[_0x0890('0xb')](_0x0890('0xf'),auth[_0x0890('0xd')](),controller[_0x0890('0x10')]);router[_0x0890('0x11')]('/',auth['isAuthenticated'](),controller[_0x0890('0x12')]);router[_0x0890('0x13')](_0x0890('0xf'),auth[_0x0890('0xd')](),controller[_0x0890('0x14')]);router[_0x0890('0x15')](_0x0890('0xf'),auth[_0x0890('0xd')](),controller[_0x0890('0x16')]);module[_0x0890('0x17')]=router;
\ No newline at end of file
+var _0x7c41=['index','describe','/:id','show','post','create','update','destroy','exports','multer','util','path','connect-timeout','express','fs-extra','../../config/environment','./jscriptyQuestionReport.controller','get','isAuthenticated'];(function(_0x43ad81,_0x114d95){var _0x1273f0=function(_0x506c1b){while(--_0x506c1b){_0x43ad81['push'](_0x43ad81['shift']());}};_0x1273f0(++_0x114d95);}(_0x7c41,0x1be));var _0x17c4=function(_0x4ef793,_0x838d10){_0x4ef793=_0x4ef793-0x0;var _0x1c9774=_0x7c41[_0x4ef793];return _0x1c9774;};'use strict';var multer=require(_0x17c4('0x0'));var util=require(_0x17c4('0x1'));var path=require(_0x17c4('0x2'));var timeout=require(_0x17c4('0x3'));var express=require(_0x17c4('0x4'));var router=express['Router']();var fs_extra=require(_0x17c4('0x5'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x17c4('0x6'));var controller=require(_0x17c4('0x7'));router[_0x17c4('0x8')]('/',auth[_0x17c4('0x9')](),controller[_0x17c4('0xa')]);router[_0x17c4('0x8')]('/describe',auth[_0x17c4('0x9')](),controller[_0x17c4('0xb')]);router[_0x17c4('0x8')](_0x17c4('0xc'),auth[_0x17c4('0x9')](),controller[_0x17c4('0xd')]);router[_0x17c4('0xe')]('/',auth['isAuthenticated'](),controller[_0x17c4('0xf')]);router['put'](_0x17c4('0xc'),auth[_0x17c4('0x9')](),controller[_0x17c4('0x10')]);router['delete']('/:id',auth[_0x17c4('0x9')](),controller[_0x17c4('0x11')]);module[_0x17c4('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['long','STRING','sequelize','exports','TEXT'];(function(_0x17b6e3,_0x4522ed){var _0x3906f3=function(_0x430f87){while(--_0x430f87){_0x17b6e3['push'](_0x17b6e3['shift']());}};_0x3906f3(++_0x4522ed);}(_0x7a54,0x106));var _0x47a5=function(_0x501467,_0x2c800c){_0x501467=_0x501467-0x0;var _0xc35d4b=_0x7a54[_0x501467];return _0xc35d4b;};'use strict';var Sequelize=require(_0x47a5('0x0'));module[_0x47a5('0x1')]={'question':{'type':Sequelize[_0x47a5('0x2')]},'answer':{'type':Sequelize['TEXT'](_0x47a5('0x3'))},'membername':{'type':Sequelize[_0x47a5('0x4')]},'projectname':{'type':Sequelize['STRING']},'queue':{'type':Sequelize[_0x47a5('0x4')]},'uniqueid':{'type':Sequelize[_0x47a5('0x4')]},'calleridname':{'type':Sequelize[_0x47a5('0x4')]},'calleridnum':{'type':Sequelize[_0x47a5('0x4')]},'questionId':{'type':Sequelize[_0x47a5('0x4')]}};
\ No newline at end of file
+var _0x7a54=['long','STRING','sequelize','exports','TEXT'];(function(_0x2235bf,_0x3a06a7){var _0x4c3a64=function(_0x3b3bb6){while(--_0x3b3bb6){_0x2235bf['push'](_0x2235bf['shift']());}};_0x4c3a64(++_0x3a06a7);}(_0x7a54,0x106));var _0x47a5=function(_0x53198a,_0x4f3efc){_0x53198a=_0x53198a-0x0;var _0x20c8cb=_0x7a54[_0x53198a];return _0x20c8cb;};'use strict';var Sequelize=require(_0x47a5('0x0'));module[_0x47a5('0x1')]={'question':{'type':Sequelize[_0x47a5('0x2')]},'answer':{'type':Sequelize['TEXT'](_0x47a5('0x3'))},'membername':{'type':Sequelize[_0x47a5('0x4')]},'projectname':{'type':Sequelize['STRING']},'queue':{'type':Sequelize[_0x47a5('0x4')]},'uniqueid':{'type':Sequelize[_0x47a5('0x4')]},'calleridname':{'type':Sequelize[_0x47a5('0x4')]},'calleridnum':{'type':Sequelize[_0x47a5('0x4')]},'questionId':{'type':Sequelize[_0x47a5('0x4')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9dfe=['filter','merge','VIRTUAL','options','JscriptyQuestionReport','includeAll','include','catch','show','params','keys','length','find','create','body','destroy','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','reject','save','update','then','error','stack','name','send','index','map','rawAttributes','fieldName','type','key','model','query','filters','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','where'];(function(_0x4084df,_0x72c4f1){var _0x1e4aa3=function(_0x1ad248){while(--_0x1ad248){_0x4084df['push'](_0x4084df['shift']());}};_0x1e4aa3(++_0x72c4f1);}(_0x9dfe,0xaf));var _0xe9df=function(_0x5013a,_0x1a67d4){_0x5013a=_0x5013a-0x0;var _0x344d72=_0x9dfe[_0x5013a];return _0x344d72;};'use strict';var emlformat=require(_0xe9df('0x0'));var rimraf=require(_0xe9df('0x1'));var zipdir=require(_0xe9df('0x2'));var jsonpatch=require(_0xe9df('0x3'));var rp=require(_0xe9df('0x4'));var moment=require('moment');var BPromise=require(_0xe9df('0x5'));var Mustache=require('mustache');var util=require(_0xe9df('0x6'));var path=require(_0xe9df('0x7'));var sox=require(_0xe9df('0x8'));var csv=require(_0xe9df('0x9'));var ejs=require(_0xe9df('0xa'));var fs=require('fs');var fs_extra=require(_0xe9df('0xb'));var _=require(_0xe9df('0xc'));var squel=require(_0xe9df('0xd'));var crypto=require(_0xe9df('0xe'));var jsforce=require(_0xe9df('0xf'));var deskjs=require(_0xe9df('0x10'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xe9df('0x11'));var Redis=require(_0xe9df('0x12'));var authService=require(_0xe9df('0x13'));var qs=require(_0xe9df('0x14'));var as=require(_0xe9df('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xe9df('0x16'))(_0xe9df('0x17'));var utils=require('../../config/utils');var config=require(_0xe9df('0x18'));var licenseUtil=require(_0xe9df('0x19'));var db=require(_0xe9df('0x1a'))['db'];function respondWithStatusCode(_0xfef1d,_0x36a480){_0x36a480=_0x36a480||0xcc;return function(_0x570c31){if(_0x570c31){return _0xfef1d[_0xe9df('0x1b')](_0x36a480);}return _0xfef1d[_0xe9df('0x1c')](_0x36a480)[_0xe9df('0x1d')]();};}function respondWithResult(_0x2c94f4,_0x219276){_0x219276=_0x219276||0xc8;return function(_0xf863c0){if(_0xf863c0){return _0x2c94f4['status'](_0x219276)[_0xe9df('0x1e')](_0xf863c0);}};}function respondWithFilteredResult(_0x3adb31,_0x35e028){return function(_0x5df90c){if(_0x5df90c){var _0x478b26=typeof _0x35e028['offset']===_0xe9df('0x1f')&&typeof _0x35e028[_0xe9df('0x20')]===_0xe9df('0x1f');var _0x4ee077=_0x5df90c['count'];var _0x11804b=_0x478b26?0x0:_0x35e028['offset'];var _0x104c68=_0x478b26?_0x5df90c[_0xe9df('0x21')]:_0x35e028[_0xe9df('0x22')]+_0x35e028[_0xe9df('0x20')];var _0x1ea6ab;if(_0x104c68>=_0x4ee077){_0x104c68=_0x4ee077;_0x1ea6ab=0xc8;}else{_0x1ea6ab=0xce;}_0x3adb31[_0xe9df('0x1c')](_0x1ea6ab);return _0x3adb31[_0xe9df('0x23')](_0xe9df('0x24'),_0x11804b+'-'+_0x104c68+'/'+_0x4ee077)[_0xe9df('0x1e')](_0x5df90c);}return null;};}function patchUpdates(_0x16726b){return function(_0xf191bf){try{jsonpatch['apply'](_0xf191bf,_0x16726b,!![]);}catch(_0x31995b){return BPromise[_0xe9df('0x25')](_0x31995b);}return _0xf191bf[_0xe9df('0x26')]();};}function saveUpdates(_0x2646b6,_0x5f21ab){return function(_0x1bd968){if(_0x1bd968){return _0x1bd968[_0xe9df('0x27')](_0x2646b6)[_0xe9df('0x28')](function(_0x5e636f){return _0x5e636f;});}return null;};}function removeEntity(_0xd6e4e,_0x27884c){return function(_0x58ae3d){if(_0x58ae3d){return _0x58ae3d['destroy']()[_0xe9df('0x28')](function(){_0xd6e4e['status'](0xcc)[_0xe9df('0x1d')]();});}};}function handleEntityNotFound(_0x36743a,_0x5128aa){return function(_0x12d7d0){if(!_0x12d7d0){_0x36743a[_0xe9df('0x1b')](0x194);}return _0x12d7d0;};}function handleError(_0x155345,_0x165783){_0x165783=_0x165783||0x1f4;return function(_0x8c2ac0){logger[_0xe9df('0x29')](_0x8c2ac0[_0xe9df('0x2a')]);if(_0x8c2ac0[_0xe9df('0x2b')]){delete _0x8c2ac0[_0xe9df('0x2b')];}_0x155345['status'](_0x165783)[_0xe9df('0x2c')](_0x8c2ac0);};}exports[_0xe9df('0x2d')]=function(_0x11644a,_0x2137a6){var _0x3d4f30={},_0x57a659={},_0x2f2c5a={'count':0x0,'rows':[]};var _0x40ad1c=_[_0xe9df('0x2e')](db['JscriptyQuestionReport'][_0xe9df('0x2f')],function(_0x534629){return{'name':_0x534629[_0xe9df('0x30')],'type':_0x534629[_0xe9df('0x31')][_0xe9df('0x32')]};});_0x57a659[_0xe9df('0x33')]=_[_0xe9df('0x2e')](_0x40ad1c,_0xe9df('0x2b'));_0x57a659[_0xe9df('0x34')]=_['keys'](_0x11644a[_0xe9df('0x34')]);_0x57a659[_0xe9df('0x35')]=_['intersection'](_0x57a659[_0xe9df('0x33')],_0x57a659[_0xe9df('0x34')]);_0x3d4f30['attributes']=_[_0xe9df('0x36')](_0x57a659['model'],qs[_0xe9df('0x37')](_0x11644a['query']['fields']));_0x3d4f30['attributes']=_0x3d4f30[_0xe9df('0x38')]['length']?_0x3d4f30[_0xe9df('0x38')]:_0x57a659['model'];if(!_0x11644a[_0xe9df('0x34')][_0xe9df('0x39')](_0xe9df('0x3a'))){_0x3d4f30[_0xe9df('0x20')]=qs[_0xe9df('0x20')](_0x11644a[_0xe9df('0x34')][_0xe9df('0x20')]);_0x3d4f30[_0xe9df('0x22')]=qs['offset'](_0x11644a[_0xe9df('0x34')]['offset']);}_0x3d4f30[_0xe9df('0x3b')]=qs[_0xe9df('0x3c')](_0x11644a[_0xe9df('0x34')][_0xe9df('0x3c')]);_0x3d4f30[_0xe9df('0x3d')]=qs['filters'](_['pick'](_0x11644a[_0xe9df('0x34')],_0x57a659[_0xe9df('0x35')]),_0x40ad1c);if(_0x11644a[_0xe9df('0x34')][_0xe9df('0x3e')]){_0x3d4f30[_0xe9df('0x3d')]=_[_0xe9df('0x3f')](_0x3d4f30[_0xe9df('0x3d')],{'$or':_[_0xe9df('0x2e')](_0x40ad1c,function(_0x359a41){if(_0x359a41[_0xe9df('0x31')]!==_0xe9df('0x40')){var _0x33aa0f={};_0x33aa0f[_0x359a41[_0xe9df('0x2b')]]={'$like':'%'+_0x11644a[_0xe9df('0x34')][_0xe9df('0x3e')]+'%'};return _0x33aa0f;}})});}_0x3d4f30=_['merge']({},_0x3d4f30,_0x11644a[_0xe9df('0x41')]);var _0x5cd963={'where':_0x3d4f30['where']};return db[_0xe9df('0x42')][_0xe9df('0x21')](_0x5cd963)[_0xe9df('0x28')](function(_0xece6bb){_0x2f2c5a[_0xe9df('0x21')]=_0xece6bb;if(_0x11644a[_0xe9df('0x34')][_0xe9df('0x43')]){_0x3d4f30[_0xe9df('0x44')]=[{'all':!![]}];}return db[_0xe9df('0x42')]['findAll'](_0x3d4f30);})[_0xe9df('0x28')](function(_0x449138){_0x2f2c5a['rows']=_0x449138;return _0x2f2c5a;})[_0xe9df('0x28')](respondWithFilteredResult(_0x2137a6,_0x3d4f30))[_0xe9df('0x45')](handleError(_0x2137a6,null));};exports[_0xe9df('0x46')]=function(_0x128052,_0x95de1c){var _0xe603b9={'raw':!![],'where':{'id':_0x128052[_0xe9df('0x47')]['id']}},_0x4ed77a={};_0x4ed77a['model']=_[_0xe9df('0x48')](db[_0xe9df('0x42')]['rawAttributes']);_0x4ed77a['query']=_['keys'](_0x128052[_0xe9df('0x34')]);_0x4ed77a[_0xe9df('0x35')]=_[_0xe9df('0x36')](_0x4ed77a[_0xe9df('0x33')],_0x4ed77a[_0xe9df('0x34')]);_0xe603b9[_0xe9df('0x38')]=_[_0xe9df('0x36')](_0x4ed77a[_0xe9df('0x33')],qs[_0xe9df('0x37')](_0x128052['query'][_0xe9df('0x37')]));_0xe603b9['attributes']=_0xe603b9[_0xe9df('0x38')][_0xe9df('0x49')]?_0xe603b9[_0xe9df('0x38')]:_0x4ed77a[_0xe9df('0x33')];if(_0x128052[_0xe9df('0x34')][_0xe9df('0x43')]){_0xe603b9[_0xe9df('0x44')]=[{'all':!![]}];}_0xe603b9=_[_0xe9df('0x3f')]({},_0xe603b9,_0x128052[_0xe9df('0x41')]);return db[_0xe9df('0x42')][_0xe9df('0x4a')](_0xe603b9)['then'](handleEntityNotFound(_0x95de1c,null))[_0xe9df('0x28')](respondWithResult(_0x95de1c,null))[_0xe9df('0x45')](handleError(_0x95de1c,null));};exports[_0xe9df('0x4b')]=function(_0x17bf5f,_0x5e8930){return db[_0xe9df('0x42')][_0xe9df('0x4b')](_0x17bf5f[_0xe9df('0x4c')],{})[_0xe9df('0x28')](respondWithResult(_0x5e8930,0xc9))[_0xe9df('0x45')](handleError(_0x5e8930,null));};exports[_0xe9df('0x27')]=function(_0x27ae4f,_0xc81664){if(_0x27ae4f[_0xe9df('0x4c')]['id']){delete _0x27ae4f[_0xe9df('0x4c')]['id'];}return db[_0xe9df('0x42')][_0xe9df('0x4a')]({'where':{'id':_0x27ae4f[_0xe9df('0x47')]['id']}})[_0xe9df('0x28')](handleEntityNotFound(_0xc81664,null))[_0xe9df('0x28')](saveUpdates(_0x27ae4f[_0xe9df('0x4c')],null))[_0xe9df('0x28')](respondWithResult(_0xc81664,null))[_0xe9df('0x45')](handleError(_0xc81664,null));};exports[_0xe9df('0x4d')]=function(_0x46db54,_0x5249e5){return db['JscriptyQuestionReport'][_0xe9df('0x4a')]({'where':{'id':_0x46db54[_0xe9df('0x47')]['id']}})[_0xe9df('0x28')](handleEntityNotFound(_0x5249e5,null))[_0xe9df('0x28')](removeEntity(_0x5249e5,null))[_0xe9df('0x45')](handleError(_0x5249e5,null));};exports[_0xe9df('0x4e')]=function(_0xc601a4,_0x3af079){return db[_0xe9df('0x42')][_0xe9df('0x4e')]()[_0xe9df('0x28')](respondWithResult(_0x3af079,null))[_0xe9df('0x45')](handleError(_0x3af079,null));};
\ No newline at end of file
+var _0x3028=['apply','reject','then','destroy','sendStatus','error','stack','name','send','index','map','JscriptyQuestionReport','rawAttributes','fieldName','type','key','model','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','options','includeAll','findAll','rows','catch','show','params','include','find','create','body','update','describe','eml-format','rimraf','zip-dir','fast-json-patch','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','set','Content-Range'];(function(_0x1afabf,_0x56fdcc){var _0x497ff1=function(_0x2f6104){while(--_0x2f6104){_0x1afabf['push'](_0x1afabf['shift']());}};_0x497ff1(++_0x56fdcc);}(_0x3028,0x7a));var _0x8302=function(_0x3eed8c,_0x30b9c0){_0x3eed8c=_0x3eed8c-0x0;var _0x155b78=_0x3028[_0x3eed8c];return _0x155b78;};'use strict';var emlformat=require(_0x8302('0x0'));var rimraf=require(_0x8302('0x1'));var zipdir=require(_0x8302('0x2'));var jsonpatch=require(_0x8302('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x8302('0x4'));var Mustache=require(_0x8302('0x5'));var util=require('util');var path=require(_0x8302('0x6'));var sox=require(_0x8302('0x7'));var csv=require(_0x8302('0x8'));var ejs=require(_0x8302('0x9'));var fs=require('fs');var fs_extra=require(_0x8302('0xa'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x8302('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x8302('0xc'));var toCsv=require(_0x8302('0x8'));var querystring=require(_0x8302('0xd'));var Papa=require(_0x8302('0xe'));var Redis=require(_0x8302('0xf'));var authService=require(_0x8302('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x8302('0x11'));var hardwareService=require(_0x8302('0x12'));var logger=require('../../config/logger')('api');var utils=require(_0x8302('0x13'));var config=require(_0x8302('0x14'));var licenseUtil=require(_0x8302('0x15'));var db=require(_0x8302('0x16'))['db'];function respondWithStatusCode(_0xbfae5c,_0x5f2cca){_0x5f2cca=_0x5f2cca||0xcc;return function(_0x31a41b){if(_0x31a41b){return _0xbfae5c['sendStatus'](_0x5f2cca);}return _0xbfae5c[_0x8302('0x17')](_0x5f2cca)[_0x8302('0x18')]();};}function respondWithResult(_0x446846,_0x5d6664){_0x5d6664=_0x5d6664||0xc8;return function(_0x29c340){if(_0x29c340){return _0x446846[_0x8302('0x17')](_0x5d6664)[_0x8302('0x19')](_0x29c340);}};}function respondWithFilteredResult(_0x26f712,_0x2d2e55){return function(_0xb47551){if(_0xb47551){var _0x5a22ce=typeof _0x2d2e55[_0x8302('0x1a')]===_0x8302('0x1b')&&typeof _0x2d2e55[_0x8302('0x1c')]==='undefined';var _0x28988c=_0xb47551[_0x8302('0x1d')];var _0x40f532=_0x5a22ce?0x0:_0x2d2e55['offset'];var _0x34cd04=_0x5a22ce?_0xb47551[_0x8302('0x1d')]:_0x2d2e55[_0x8302('0x1a')]+_0x2d2e55[_0x8302('0x1c')];var _0x4b204b;if(_0x34cd04>=_0x28988c){_0x34cd04=_0x28988c;_0x4b204b=0xc8;}else{_0x4b204b=0xce;}_0x26f712[_0x8302('0x17')](_0x4b204b);return _0x26f712[_0x8302('0x1e')](_0x8302('0x1f'),_0x40f532+'-'+_0x34cd04+'/'+_0x28988c)[_0x8302('0x19')](_0xb47551);}return null;};}function patchUpdates(_0x1059d0){return function(_0x5a34b4){try{jsonpatch[_0x8302('0x20')](_0x5a34b4,_0x1059d0,!![]);}catch(_0x59d367){return BPromise[_0x8302('0x21')](_0x59d367);}return _0x5a34b4['save']();};}function saveUpdates(_0x20b464,_0x406f4e){return function(_0x2f83a9){if(_0x2f83a9){return _0x2f83a9['update'](_0x20b464)[_0x8302('0x22')](function(_0x4f2b1a){return _0x4f2b1a;});}return null;};}function removeEntity(_0xd5d809,_0x301d9f){return function(_0x2776a2){if(_0x2776a2){return _0x2776a2[_0x8302('0x23')]()[_0x8302('0x22')](function(){_0xd5d809['status'](0xcc)[_0x8302('0x18')]();});}};}function handleEntityNotFound(_0x5b076e,_0x338642){return function(_0x3db7e9){if(!_0x3db7e9){_0x5b076e[_0x8302('0x24')](0x194);}return _0x3db7e9;};}function handleError(_0x37cd4f,_0x2e6ef7){_0x2e6ef7=_0x2e6ef7||0x1f4;return function(_0x2e89c6){logger[_0x8302('0x25')](_0x2e89c6[_0x8302('0x26')]);if(_0x2e89c6[_0x8302('0x27')]){delete _0x2e89c6[_0x8302('0x27')];}_0x37cd4f[_0x8302('0x17')](_0x2e6ef7)[_0x8302('0x28')](_0x2e89c6);};}exports[_0x8302('0x29')]=function(_0xaf740d,_0x3a8203){var _0x258cd4={},_0x660714={},_0x2a95a0={'count':0x0,'rows':[]};var _0x2571e7=_[_0x8302('0x2a')](db[_0x8302('0x2b')][_0x8302('0x2c')],function(_0x27ed30){return{'name':_0x27ed30[_0x8302('0x2d')],'type':_0x27ed30[_0x8302('0x2e')][_0x8302('0x2f')]};});_0x660714[_0x8302('0x30')]=_[_0x8302('0x2a')](_0x2571e7,'name');_0x660714[_0x8302('0x31')]=_[_0x8302('0x32')](_0xaf740d[_0x8302('0x31')]);_0x660714[_0x8302('0x33')]=_['intersection'](_0x660714['model'],_0x660714[_0x8302('0x31')]);_0x258cd4[_0x8302('0x34')]=_[_0x8302('0x35')](_0x660714[_0x8302('0x30')],qs[_0x8302('0x36')](_0xaf740d[_0x8302('0x31')][_0x8302('0x36')]));_0x258cd4[_0x8302('0x34')]=_0x258cd4[_0x8302('0x34')][_0x8302('0x37')]?_0x258cd4[_0x8302('0x34')]:_0x660714[_0x8302('0x30')];if(!_0xaf740d['query'][_0x8302('0x38')](_0x8302('0x39'))){_0x258cd4[_0x8302('0x1c')]=qs[_0x8302('0x1c')](_0xaf740d['query'][_0x8302('0x1c')]);_0x258cd4[_0x8302('0x1a')]=qs['offset'](_0xaf740d[_0x8302('0x31')][_0x8302('0x1a')]);}_0x258cd4[_0x8302('0x3a')]=qs[_0x8302('0x3b')](_0xaf740d['query']['sort']);_0x258cd4[_0x8302('0x3c')]=qs[_0x8302('0x33')](_[_0x8302('0x3d')](_0xaf740d[_0x8302('0x31')],_0x660714[_0x8302('0x33')]),_0x2571e7);if(_0xaf740d['query']['filter']){_0x258cd4[_0x8302('0x3c')]=_[_0x8302('0x3e')](_0x258cd4[_0x8302('0x3c')],{'$or':_[_0x8302('0x2a')](_0x2571e7,function(_0x5dca29){if(_0x5dca29['type']!==_0x8302('0x3f')){var _0x32e202={};_0x32e202[_0x5dca29[_0x8302('0x27')]]={'$like':'%'+_0xaf740d[_0x8302('0x31')]['filter']+'%'};return _0x32e202;}})});}_0x258cd4=_['merge']({},_0x258cd4,_0xaf740d[_0x8302('0x40')]);var _0x45760b={'where':_0x258cd4[_0x8302('0x3c')]};return db[_0x8302('0x2b')]['count'](_0x45760b)[_0x8302('0x22')](function(_0x2a088e){_0x2a95a0[_0x8302('0x1d')]=_0x2a088e;if(_0xaf740d['query'][_0x8302('0x41')]){_0x258cd4['include']=[{'all':!![]}];}return db[_0x8302('0x2b')][_0x8302('0x42')](_0x258cd4);})[_0x8302('0x22')](function(_0x1b9e8b){_0x2a95a0[_0x8302('0x43')]=_0x1b9e8b;return _0x2a95a0;})[_0x8302('0x22')](respondWithFilteredResult(_0x3a8203,_0x258cd4))[_0x8302('0x44')](handleError(_0x3a8203,null));};exports[_0x8302('0x45')]=function(_0x103a5c,_0x43c443){var _0x461131={'raw':!![],'where':{'id':_0x103a5c[_0x8302('0x46')]['id']}},_0x1f5969={};_0x1f5969['model']=_['keys'](db['JscriptyQuestionReport']['rawAttributes']);_0x1f5969['query']=_[_0x8302('0x32')](_0x103a5c[_0x8302('0x31')]);_0x1f5969['filters']=_[_0x8302('0x35')](_0x1f5969['model'],_0x1f5969[_0x8302('0x31')]);_0x461131['attributes']=_[_0x8302('0x35')](_0x1f5969[_0x8302('0x30')],qs[_0x8302('0x36')](_0x103a5c[_0x8302('0x31')][_0x8302('0x36')]));_0x461131['attributes']=_0x461131[_0x8302('0x34')][_0x8302('0x37')]?_0x461131[_0x8302('0x34')]:_0x1f5969[_0x8302('0x30')];if(_0x103a5c[_0x8302('0x31')][_0x8302('0x41')]){_0x461131[_0x8302('0x47')]=[{'all':!![]}];}_0x461131=_['merge']({},_0x461131,_0x103a5c[_0x8302('0x40')]);return db[_0x8302('0x2b')][_0x8302('0x48')](_0x461131)[_0x8302('0x22')](handleEntityNotFound(_0x43c443,null))['then'](respondWithResult(_0x43c443,null))[_0x8302('0x44')](handleError(_0x43c443,null));};exports[_0x8302('0x49')]=function(_0x4caff6,_0x4aace7){return db[_0x8302('0x2b')][_0x8302('0x49')](_0x4caff6[_0x8302('0x4a')],{})[_0x8302('0x22')](respondWithResult(_0x4aace7,0xc9))[_0x8302('0x44')](handleError(_0x4aace7,null));};exports[_0x8302('0x4b')]=function(_0x734ce8,_0x45baf5){if(_0x734ce8[_0x8302('0x4a')]['id']){delete _0x734ce8[_0x8302('0x4a')]['id'];}return db[_0x8302('0x2b')][_0x8302('0x48')]({'where':{'id':_0x734ce8['params']['id']}})[_0x8302('0x22')](handleEntityNotFound(_0x45baf5,null))[_0x8302('0x22')](saveUpdates(_0x734ce8[_0x8302('0x4a')],null))['then'](respondWithResult(_0x45baf5,null))[_0x8302('0x44')](handleError(_0x45baf5,null));};exports[_0x8302('0x23')]=function(_0x5500cf,_0x50c021){return db[_0x8302('0x2b')][_0x8302('0x48')]({'where':{'id':_0x5500cf[_0x8302('0x46')]['id']}})['then'](handleEntityNotFound(_0x50c021,null))[_0x8302('0x22')](removeEntity(_0x50c021,null))[_0x8302('0x44')](handleError(_0x50c021,null));};exports[_0x8302('0x4c')]=function(_0x556bf0,_0x36fb92){return db[_0x8302('0x2b')]['describe']()[_0x8302('0x22')](respondWithResult(_0x36fb92,null))[_0x8302('0x44')](handleError(_0x36fb92,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x65c3=['path','rimraf','../../config/environment','exports','define','report_jscripty_questions','../../config/logger','api','bluebird','request-promise'];(function(_0x1559a3,_0x1e4f51){var _0x3a4b87=function(_0x5212d2){while(--_0x5212d2){_0x1559a3['push'](_0x1559a3['shift']());}};_0x3a4b87(++_0x1e4f51);}(_0x65c3,0x182));var _0x365c=function(_0x2cfd24,_0x399f92){_0x2cfd24=_0x2cfd24-0x0;var _0x3313a1=_0x65c3[_0x2cfd24];return _0x3313a1;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x365c('0x0'))(_0x365c('0x1'));var moment=require('moment');var BPromise=require(_0x365c('0x2'));var rp=require(_0x365c('0x3'));var fs=require('fs');var path=require(_0x365c('0x4'));var rimraf=require(_0x365c('0x5'));var config=require(_0x365c('0x6'));var attributes=require('./jscriptyQuestionReport.attributes');module[_0x365c('0x7')]=function(_0x7d2d5c,_0x4fd708){return _0x7d2d5c[_0x365c('0x8')]('JscriptyQuestionReport',attributes,{'tableName':_0x365c('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x3d26=['request-promise','path','rimraf','../../config/environment','./jscriptyQuestionReport.attributes','exports','define','JscriptyQuestionReport','report_jscripty_questions','../../config/logger','api','moment','bluebird'];(function(_0x5608a3,_0x5b33c5){var _0x1ed50a=function(_0x959171){while(--_0x959171){_0x5608a3['push'](_0x5608a3['shift']());}};_0x1ed50a(++_0x5b33c5);}(_0x3d26,0x100));var _0x63d2=function(_0x41598b,_0x897d53){_0x41598b=_0x41598b-0x0;var _0x2cb5e5=_0x3d26[_0x41598b];return _0x2cb5e5;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x63d2('0x0'))(_0x63d2('0x1'));var moment=require(_0x63d2('0x2'));var BPromise=require(_0x63d2('0x3'));var rp=require(_0x63d2('0x4'));var fs=require('fs');var path=require(_0x63d2('0x5'));var rimraf=require(_0x63d2('0x6'));var config=require(_0x63d2('0x7'));var attributes=require(_0x63d2('0x8'));module[_0x63d2('0x9')]=function(_0x4ca154,_0x234685){return _0x4ca154[_0x63d2('0xa')](_0x63d2('0xb'),attributes,{'tableName':_0x63d2('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe5a6=['debug','JscriptyQuestionReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','lodash','util','ioredis','../../config/utils','rpc','../../config/environment','jayson/promise','client','request','then','info','JscriptyQuestionReport,\x20%s,\x20%s','request\x20sent'];(function(_0x31dfa2,_0x5d7165){var _0x1a1246=function(_0x5e84f6){while(--_0x5e84f6){_0x31dfa2['push'](_0x31dfa2['shift']());}};_0x1a1246(++_0x5d7165);}(_0xe5a6,0x71));var _0x6e5a=function(_0x35e75a,_0x5ed225){_0x35e75a=_0x35e75a-0x0;var _0xb23c7f=_0xe5a6[_0x35e75a];return _0xb23c7f;};'use strict';var _=require(_0x6e5a('0x0'));var util=require(_0x6e5a('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x6e5a('0x2'));var db=require('../../mysqldb')['db'];var utils=require(_0x6e5a('0x3'));var logger=require('../../config/logger')(_0x6e5a('0x4'));var config=require(_0x6e5a('0x5'));var jayson=require(_0x6e5a('0x6'));var client=jayson[_0x6e5a('0x7')]['http']({'port':0x232a});function respondWithRpcPromise(_0x2d7586,_0x11103a,_0xc91e3c){return new BPromise(function(_0x4fb605,_0x1916c1){return client[_0x6e5a('0x8')](_0x2d7586,_0xc91e3c)[_0x6e5a('0x9')](function(_0x2ad622){logger[_0x6e5a('0xa')](_0x6e5a('0xb'),_0x11103a,_0x6e5a('0xc'));logger[_0x6e5a('0xd')](_0x6e5a('0xe'),_0x11103a,'request\x20sent',JSON[_0x6e5a('0xf')](_0x2ad622));if(_0x2ad622[_0x6e5a('0x10')]){if(_0x2ad622['error'][_0x6e5a('0x11')]===0x1f4){logger['error'](_0x6e5a('0xb'),_0x11103a,_0x2ad622[_0x6e5a('0x10')]['message']);return _0x1916c1(_0x2ad622[_0x6e5a('0x10')]['message']);}logger['error'](_0x6e5a('0xb'),_0x11103a,_0x2ad622[_0x6e5a('0x10')][_0x6e5a('0x12')]);return _0x4fb605(_0x2ad622['error'][_0x6e5a('0x12')]);}else{logger[_0x6e5a('0xa')](_0x6e5a('0xb'),_0x11103a,_0x6e5a('0xc'));_0x4fb605(_0x2ad622[_0x6e5a('0x13')][_0x6e5a('0x12')]);}})[_0x6e5a('0x14')](function(_0x5254b8){logger['error']('JscriptyQuestionReport,\x20%s,\x20%s',_0x11103a,_0x5254b8);_0x1916c1(_0x5254b8);});});}
\ No newline at end of file
+var _0x8b0c=['ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','then','debug','JscriptyQuestionReport,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','JscriptyQuestionReport,\x20%s,\x20%s','message','info','result','catch','moment','randomstring'];(function(_0x547302,_0x5c1853){var _0x120aa6=function(_0x54de1c){while(--_0x54de1c){_0x547302['push'](_0x547302['shift']());}};_0x120aa6(++_0x5c1853);}(_0x8b0c,0x15e));var _0xc8b0=function(_0x20728f,_0x78f852){_0x20728f=_0x20728f-0x0;var _0x3f2de8=_0x8b0c[_0x20728f];return _0x3f2de8;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0xc8b0('0x0'));var BPromise=require('bluebird');var rs=require(_0xc8b0('0x1'));var fs=require('fs');var Redis=require(_0xc8b0('0x2'));var db=require(_0xc8b0('0x3'))['db'];var utils=require(_0xc8b0('0x4'));var logger=require(_0xc8b0('0x5'))(_0xc8b0('0x6'));var config=require(_0xc8b0('0x7'));var jayson=require(_0xc8b0('0x8'));var client=jayson[_0xc8b0('0x9')][_0xc8b0('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x1e165f,_0x25dadf,_0x1941dc){return new BPromise(function(_0x4428be,_0x44de11){return client['request'](_0x1e165f,_0x1941dc)[_0xc8b0('0xb')](function(_0x30fd3b){logger['info']('JscriptyQuestionReport,\x20%s,\x20%s',_0x25dadf,'request\x20sent');logger[_0xc8b0('0xc')](_0xc8b0('0xd'),_0x25dadf,_0xc8b0('0xe'),JSON['stringify'](_0x30fd3b));if(_0x30fd3b[_0xc8b0('0xf')]){if(_0x30fd3b[_0xc8b0('0xf')][_0xc8b0('0x10')]===0x1f4){logger['error'](_0xc8b0('0x11'),_0x25dadf,_0x30fd3b['error'][_0xc8b0('0x12')]);return _0x44de11(_0x30fd3b[_0xc8b0('0xf')][_0xc8b0('0x12')]);}logger[_0xc8b0('0xf')]('JscriptyQuestionReport,\x20%s,\x20%s',_0x25dadf,_0x30fd3b[_0xc8b0('0xf')][_0xc8b0('0x12')]);return _0x4428be(_0x30fd3b[_0xc8b0('0xf')]['message']);}else{logger[_0xc8b0('0x13')](_0xc8b0('0x11'),_0x25dadf,'request\x20sent');_0x4428be(_0x30fd3b[_0xc8b0('0x14')][_0xc8b0('0x12')]);}})[_0xc8b0('0x15')](function(_0xdf99d2){logger[_0xc8b0('0xf')](_0xc8b0('0x11'),_0x25dadf,_0xdf99d2);_0x44de11(_0xdf99d2);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xadc2=['delete','exports','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./jscriptySessionReport.controller','get','isAuthenticated','index','/describe','describe','/:id','show','getQuestions','post','put'];(function(_0x562e7a,_0x4e3af2){var _0x5e0788=function(_0xefb5f9){while(--_0xefb5f9){_0x562e7a['push'](_0x562e7a['shift']());}};_0x5e0788(++_0x4e3af2);}(_0xadc2,0x8e));var _0x2adc=function(_0x1c8c07,_0x2579af){_0x1c8c07=_0x1c8c07-0x0;var _0x4aa88f=_0xadc2[_0x1c8c07];return _0x4aa88f;};'use strict';var multer=require('multer');var util=require(_0x2adc('0x0'));var path=require(_0x2adc('0x1'));var timeout=require(_0x2adc('0x2'));var express=require('express');var router=express[_0x2adc('0x3')]();var fs_extra=require(_0x2adc('0x4'));var auth=require(_0x2adc('0x5'));var interaction=require(_0x2adc('0x6'));var config=require('../../config/environment');var controller=require(_0x2adc('0x7'));router[_0x2adc('0x8')]('/',auth[_0x2adc('0x9')](),controller[_0x2adc('0xa')]);router['get'](_0x2adc('0xb'),auth['isAuthenticated'](),controller[_0x2adc('0xc')]);router[_0x2adc('0x8')](_0x2adc('0xd'),auth[_0x2adc('0x9')](),controller[_0x2adc('0xe')]);router['get']('/:id/questions',auth[_0x2adc('0x9')](),controller[_0x2adc('0xf')]);router[_0x2adc('0x10')]('/',auth['isAuthenticated'](),controller['create']);router[_0x2adc('0x11')]('/:id',auth[_0x2adc('0x9')](),controller['update']);router[_0x2adc('0x12')]('/:id',auth[_0x2adc('0x9')](),controller['destroy']);module[_0x2adc('0x13')]=router;
\ No newline at end of file
+var _0x9858=['./jscriptySessionReport.controller','get','isAuthenticated','/describe','describe','/:id','/:id/questions','getQuestions','post','delete','destroy','exports','multer','util','path','express','Router','fs-extra','../../components/interaction/service','../../config/environment'];(function(_0x5a9c0c,_0x4ec485){var _0x53c77d=function(_0x1cf384){while(--_0x1cf384){_0x5a9c0c['push'](_0x5a9c0c['shift']());}};_0x53c77d(++_0x4ec485);}(_0x9858,0xc0));var _0x8985=function(_0x16898b,_0x117b84){_0x16898b=_0x16898b-0x0;var _0x4ce7cf=_0x9858[_0x16898b];return _0x4ce7cf;};'use strict';var multer=require(_0x8985('0x0'));var util=require(_0x8985('0x1'));var path=require(_0x8985('0x2'));var timeout=require('connect-timeout');var express=require(_0x8985('0x3'));var router=express[_0x8985('0x4')]();var fs_extra=require(_0x8985('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x8985('0x6'));var config=require(_0x8985('0x7'));var controller=require(_0x8985('0x8'));router[_0x8985('0x9')]('/',auth[_0x8985('0xa')](),controller['index']);router['get'](_0x8985('0xb'),auth[_0x8985('0xa')](),controller[_0x8985('0xc')]);router['get'](_0x8985('0xd'),auth[_0x8985('0xa')](),controller['show']);router['get'](_0x8985('0xe'),auth[_0x8985('0xa')](),controller[_0x8985('0xf')]);router[_0x8985('0x10')]('/',auth[_0x8985('0xa')](),controller['create']);router['put'](_0x8985('0xd'),auth['isAuthenticated'](),controller['update']);router[_0x8985('0x11')](_0x8985('0xd'),auth[_0x8985('0xa')](),controller[_0x8985('0x12')]);module[_0x8985('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x25e1=['YYYY-MM-DD\x20HH:mm:ss','STRING','BOOLEAN','moment','sequelize','exports','DATE','setDataValue','starttime','endtime','format'];(function(_0x38fb0d,_0x52b5db){var _0x30a5d6=function(_0x31eba6){while(--_0x31eba6){_0x38fb0d['push'](_0x38fb0d['shift']());}};_0x30a5d6(++_0x52b5db);}(_0x25e1,0xd4));var _0x125e=function(_0x20c074,_0x1c89ff){_0x20c074=_0x20c074-0x0;var _0x364a32=_0x25e1[_0x20c074];return _0x364a32;};'use strict';var moment=require(_0x125e('0x0'));var Sequelize=require(_0x125e('0x1'));module[_0x125e('0x2')]={'starttime':{'type':Sequelize[_0x125e('0x3')],'set':function(_0xd7f799){this[_0x125e('0x4')](_0x125e('0x5'),_0xd7f799);this[_0x125e('0x4')](_0x125e('0x6'),moment()[_0x125e('0x7')](_0x125e('0x8')));}},'endtime':{'type':Sequelize[_0x125e('0x3')]},'membername':{'type':Sequelize[_0x125e('0x9')]},'projectname':{'type':Sequelize[_0x125e('0x9')]},'queue':{'type':Sequelize['STRING']},'uniqueid':{'type':Sequelize[_0x125e('0x9')]},'calleridname':{'type':Sequelize[_0x125e('0x9')]},'calleridnum':{'type':Sequelize[_0x125e('0x9')]},'completed':{'type':Sequelize[_0x125e('0xa')],'defaultValue':![]}};
\ No newline at end of file
+var _0xd7b7=['starttime','format','STRING','BOOLEAN','moment','sequelize','exports','DATE','setDataValue'];(function(_0x354eec,_0x75e75){var _0x2c69a6=function(_0x24d549){while(--_0x24d549){_0x354eec['push'](_0x354eec['shift']());}};_0x2c69a6(++_0x75e75);}(_0xd7b7,0x1c6));var _0x7d7b=function(_0x5f47ed,_0x2b84c6){_0x5f47ed=_0x5f47ed-0x0;var _0x48abfd=_0xd7b7[_0x5f47ed];return _0x48abfd;};'use strict';var moment=require(_0x7d7b('0x0'));var Sequelize=require(_0x7d7b('0x1'));module[_0x7d7b('0x2')]={'starttime':{'type':Sequelize[_0x7d7b('0x3')],'set':function(_0x107df4){this[_0x7d7b('0x4')](_0x7d7b('0x5'),_0x107df4);this[_0x7d7b('0x4')]('endtime',moment()[_0x7d7b('0x6')]('YYYY-MM-DD\x20HH:mm:ss'));}},'endtime':{'type':Sequelize['DATE']},'membername':{'type':Sequelize[_0x7d7b('0x7')]},'projectname':{'type':Sequelize[_0x7d7b('0x7')]},'queue':{'type':Sequelize[_0x7d7b('0x7')]},'uniqueid':{'type':Sequelize[_0x7d7b('0x7')]},'calleridname':{'type':Sequelize[_0x7d7b('0x7')]},'calleridnum':{'type':Sequelize[_0x7d7b('0x7')]},'completed':{'type':Sequelize[_0x7d7b('0x8')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf196=['querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','status','json','undefined','limit','count','offset','set','Content-Range','reject','save','update','then','error','stack','name','index','map','rawAttributes','fieldName','key','model','query','keys','filters','intersection','fields','attributes','hasOwnProperty','nolimit','sort','where','pick','filter','type','VIRTUAL','includeAll','include','findAll','rows','show','params','length','options','JscriptySessionReport','catch','create','body','find','getQuestions','findOne','JscriptyQuestionReport','order','SessionId','merge','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js'];(function(_0x19e188,_0x252dbc){var _0xb2e22b=function(_0x599391){while(--_0x599391){_0x19e188['push'](_0x19e188['shift']());}};_0xb2e22b(++_0x252dbc);}(_0xf196,0x193));var _0x6f19=function(_0x57b54c,_0x54ce0d){_0x57b54c=_0x57b54c-0x0;var _0x59cc19=_0xf196[_0x57b54c];return _0x59cc19;};'use strict';var emlformat=require(_0x6f19('0x0'));var rimraf=require(_0x6f19('0x1'));var zipdir=require(_0x6f19('0x2'));var jsonpatch=require(_0x6f19('0x3'));var rp=require(_0x6f19('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x6f19('0x5'));var util=require(_0x6f19('0x6'));var path=require(_0x6f19('0x7'));var sox=require(_0x6f19('0x8'));var csv=require(_0x6f19('0x9'));var ejs=require(_0x6f19('0xa'));var fs=require('fs');var fs_extra=require(_0x6f19('0xb'));var _=require(_0x6f19('0xc'));var squel=require(_0x6f19('0xd'));var crypto=require(_0x6f19('0xe'));var jsforce=require(_0x6f19('0xf'));var deskjs=require(_0x6f19('0x10'));var toCsv=require(_0x6f19('0x9'));var querystring=require(_0x6f19('0x11'));var Papa=require(_0x6f19('0x12'));var Redis=require(_0x6f19('0x13'));var authService=require(_0x6f19('0x14'));var qs=require(_0x6f19('0x15'));var as=require(_0x6f19('0x16'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x6f19('0x17'))(_0x6f19('0x18'));var utils=require(_0x6f19('0x19'));var config=require(_0x6f19('0x1a'));var licenseUtil=require('../../config/license/util');var db=require(_0x6f19('0x1b'))['db'];function respondWithStatusCode(_0x47991d,_0x534625){_0x534625=_0x534625||0xcc;return function(_0x594842){if(_0x594842){return _0x47991d[_0x6f19('0x1c')](_0x534625);}return _0x47991d['status'](_0x534625)[_0x6f19('0x1d')]();};}function respondWithResult(_0xf0a248,_0x158084){_0x158084=_0x158084||0xc8;return function(_0x2c2b3e){if(_0x2c2b3e){return _0xf0a248[_0x6f19('0x1e')](_0x158084)[_0x6f19('0x1f')](_0x2c2b3e);}};}function respondWithFilteredResult(_0x5ca740,_0x5d721b){return function(_0x35cbd3){if(_0x35cbd3){var _0xa7bff4=typeof _0x5d721b['offset']===_0x6f19('0x20')&&typeof _0x5d721b[_0x6f19('0x21')]===_0x6f19('0x20');var _0x31195f=_0x35cbd3[_0x6f19('0x22')];var _0x114b9f=_0xa7bff4?0x0:_0x5d721b[_0x6f19('0x23')];var _0x286b46=_0xa7bff4?_0x35cbd3[_0x6f19('0x22')]:_0x5d721b[_0x6f19('0x23')]+_0x5d721b['limit'];var _0x54fe2b;if(_0x286b46>=_0x31195f){_0x286b46=_0x31195f;_0x54fe2b=0xc8;}else{_0x54fe2b=0xce;}_0x5ca740['status'](_0x54fe2b);return _0x5ca740[_0x6f19('0x24')](_0x6f19('0x25'),_0x114b9f+'-'+_0x286b46+'/'+_0x31195f)['json'](_0x35cbd3);}return null;};}function patchUpdates(_0x1ec739){return function(_0x1b3b47){try{jsonpatch['apply'](_0x1b3b47,_0x1ec739,!![]);}catch(_0x4a7ea8){return BPromise[_0x6f19('0x26')](_0x4a7ea8);}return _0x1b3b47[_0x6f19('0x27')]();};}function saveUpdates(_0x1ed8a9,_0x46724d){return function(_0x3c9800){if(_0x3c9800){return _0x3c9800[_0x6f19('0x28')](_0x1ed8a9)[_0x6f19('0x29')](function(_0x7af63e){return _0x7af63e;});}return null;};}function removeEntity(_0x95dacd,_0x516a11){return function(_0x5d3cb5){if(_0x5d3cb5){return _0x5d3cb5['destroy']()[_0x6f19('0x29')](function(){_0x95dacd[_0x6f19('0x1e')](0xcc)[_0x6f19('0x1d')]();});}};}function handleEntityNotFound(_0x457a83,_0x377abf){return function(_0x391224){if(!_0x391224){_0x457a83[_0x6f19('0x1c')](0x194);}return _0x391224;};}function handleError(_0x19217d,_0x58beec){_0x58beec=_0x58beec||0x1f4;return function(_0x13585c){logger[_0x6f19('0x2a')](_0x13585c[_0x6f19('0x2b')]);if(_0x13585c['name']){delete _0x13585c[_0x6f19('0x2c')];}_0x19217d[_0x6f19('0x1e')](_0x58beec)['send'](_0x13585c);};}exports[_0x6f19('0x2d')]=function(_0x4d7c15,_0x50b669){var _0x47fbf7={},_0x49f656={},_0x5bd5b2={'count':0x0,'rows':[]};var _0x59d567=_[_0x6f19('0x2e')](db['JscriptySessionReport'][_0x6f19('0x2f')],function(_0x229fa3){return{'name':_0x229fa3[_0x6f19('0x30')],'type':_0x229fa3['type'][_0x6f19('0x31')]};});_0x49f656[_0x6f19('0x32')]=_[_0x6f19('0x2e')](_0x59d567,'name');_0x49f656[_0x6f19('0x33')]=_[_0x6f19('0x34')](_0x4d7c15['query']);_0x49f656[_0x6f19('0x35')]=_['intersection'](_0x49f656[_0x6f19('0x32')],_0x49f656[_0x6f19('0x33')]);_0x47fbf7['attributes']=_[_0x6f19('0x36')](_0x49f656[_0x6f19('0x32')],qs[_0x6f19('0x37')](_0x4d7c15['query']['fields']));_0x47fbf7[_0x6f19('0x38')]=_0x47fbf7[_0x6f19('0x38')]['length']?_0x47fbf7[_0x6f19('0x38')]:_0x49f656[_0x6f19('0x32')];if(!_0x4d7c15[_0x6f19('0x33')][_0x6f19('0x39')](_0x6f19('0x3a'))){_0x47fbf7[_0x6f19('0x21')]=qs[_0x6f19('0x21')](_0x4d7c15[_0x6f19('0x33')]['limit']);_0x47fbf7[_0x6f19('0x23')]=qs['offset'](_0x4d7c15['query']['offset']);}_0x47fbf7['order']=qs[_0x6f19('0x3b')](_0x4d7c15[_0x6f19('0x33')]['sort']);_0x47fbf7[_0x6f19('0x3c')]=qs['filters'](_[_0x6f19('0x3d')](_0x4d7c15['query'],_0x49f656['filters']),_0x59d567);if(_0x4d7c15[_0x6f19('0x33')][_0x6f19('0x3e')]){_0x47fbf7[_0x6f19('0x3c')]=_['merge'](_0x47fbf7[_0x6f19('0x3c')],{'$or':_[_0x6f19('0x2e')](_0x59d567,function(_0x578261){if(_0x578261[_0x6f19('0x3f')]!==_0x6f19('0x40')){var _0x1781e9={};_0x1781e9[_0x578261[_0x6f19('0x2c')]]={'$like':'%'+_0x4d7c15[_0x6f19('0x33')][_0x6f19('0x3e')]+'%'};return _0x1781e9;}})});}_0x47fbf7=_['merge']({},_0x47fbf7,_0x4d7c15['options']);var _0x388a46={'where':_0x47fbf7[_0x6f19('0x3c')]};return db['JscriptySessionReport']['count'](_0x388a46)[_0x6f19('0x29')](function(_0x56024a){_0x5bd5b2['count']=_0x56024a;if(_0x4d7c15[_0x6f19('0x33')][_0x6f19('0x41')]){_0x47fbf7[_0x6f19('0x42')]=[{'all':!![]}];}return db['JscriptySessionReport'][_0x6f19('0x43')](_0x47fbf7);})[_0x6f19('0x29')](function(_0x1f835b){_0x5bd5b2[_0x6f19('0x44')]=_0x1f835b;return _0x5bd5b2;})[_0x6f19('0x29')](respondWithFilteredResult(_0x50b669,_0x47fbf7))['catch'](handleError(_0x50b669,null));};exports[_0x6f19('0x45')]=function(_0x168887,_0x4d3ddd){var _0xd2aae9={'raw':!![],'where':{'id':_0x168887[_0x6f19('0x46')]['id']}},_0x1e434c={};_0x1e434c[_0x6f19('0x32')]=_['keys'](db['JscriptySessionReport'][_0x6f19('0x2f')]);_0x1e434c[_0x6f19('0x33')]=_[_0x6f19('0x34')](_0x168887[_0x6f19('0x33')]);_0x1e434c['filters']=_['intersection'](_0x1e434c[_0x6f19('0x32')],_0x1e434c[_0x6f19('0x33')]);_0xd2aae9['attributes']=_['intersection'](_0x1e434c[_0x6f19('0x32')],qs[_0x6f19('0x37')](_0x168887['query'][_0x6f19('0x37')]));_0xd2aae9[_0x6f19('0x38')]=_0xd2aae9[_0x6f19('0x38')][_0x6f19('0x47')]?_0xd2aae9[_0x6f19('0x38')]:_0x1e434c['model'];if(_0x168887['query'][_0x6f19('0x41')]){_0xd2aae9[_0x6f19('0x42')]=[{'all':!![]}];}_0xd2aae9=_['merge']({},_0xd2aae9,_0x168887[_0x6f19('0x48')]);return db[_0x6f19('0x49')]['find'](_0xd2aae9)[_0x6f19('0x29')](handleEntityNotFound(_0x4d3ddd,null))['then'](respondWithResult(_0x4d3ddd,null))[_0x6f19('0x4a')](handleError(_0x4d3ddd,null));};exports['create']=function(_0x5320ae,_0x5bd374){return db[_0x6f19('0x49')][_0x6f19('0x4b')](_0x5320ae[_0x6f19('0x4c')],{})['then'](respondWithResult(_0x5bd374,0xc9))[_0x6f19('0x4a')](handleError(_0x5bd374,null));};exports['update']=function(_0x64acb4,_0x534beb){if(_0x64acb4[_0x6f19('0x4c')]['id']){delete _0x64acb4[_0x6f19('0x4c')]['id'];}return db[_0x6f19('0x49')][_0x6f19('0x4d')]({'where':{'id':_0x64acb4['params']['id']}})['then'](handleEntityNotFound(_0x534beb,null))['then'](saveUpdates(_0x64acb4[_0x6f19('0x4c')],null))[_0x6f19('0x29')](respondWithResult(_0x534beb,null))[_0x6f19('0x4a')](handleError(_0x534beb,null));};exports['destroy']=function(_0x414285,_0x28e3d3){return db[_0x6f19('0x49')]['find']({'where':{'id':_0x414285[_0x6f19('0x46')]['id']}})[_0x6f19('0x29')](handleEntityNotFound(_0x28e3d3,null))['then'](removeEntity(_0x28e3d3,null))['catch'](handleError(_0x28e3d3,null));};exports['describe']=function(_0x2069b5,_0x20add7){return db[_0x6f19('0x49')]['describe']()[_0x6f19('0x29')](respondWithResult(_0x20add7,null))[_0x6f19('0x4a')](handleError(_0x20add7,null));};exports[_0x6f19('0x4e')]=function(_0x3195f6,_0x23f398,_0x5b4591){var _0x353cd0={'raw':!![],'where':{}};var _0x272482={};var _0x5e1e7e={'count':0x0,'rows':[]};return db[_0x6f19('0x49')][_0x6f19('0x4f')]({'where':{'id':_0x3195f6[_0x6f19('0x46')]['id']}})['then'](handleEntityNotFound(_0x23f398,null))[_0x6f19('0x29')](function(_0x3292e3){if(_0x3292e3){_0x272482[_0x6f19('0x32')]=_['keys'](db[_0x6f19('0x50')]['rawAttributes']);_0x272482[_0x6f19('0x33')]=_[_0x6f19('0x34')](_0x3195f6[_0x6f19('0x33')]);_0x272482[_0x6f19('0x35')]=_[_0x6f19('0x36')](_0x272482[_0x6f19('0x32')],_0x272482['query']);_0x353cd0[_0x6f19('0x38')]=_[_0x6f19('0x36')](_0x272482[_0x6f19('0x32')],qs[_0x6f19('0x37')](_0x3195f6['query'][_0x6f19('0x37')]));_0x353cd0[_0x6f19('0x38')]=_0x353cd0['attributes'][_0x6f19('0x47')]?_0x353cd0[_0x6f19('0x38')]:_0x272482[_0x6f19('0x32')];if(!_0x3195f6[_0x6f19('0x33')][_0x6f19('0x39')](_0x6f19('0x3a'))){_0x353cd0[_0x6f19('0x21')]=qs['limit'](_0x3195f6['query'][_0x6f19('0x21')]);_0x353cd0[_0x6f19('0x23')]=qs[_0x6f19('0x23')](_0x3195f6[_0x6f19('0x33')][_0x6f19('0x23')]);}_0x353cd0[_0x6f19('0x51')]=qs[_0x6f19('0x3b')](_0x3195f6[_0x6f19('0x33')][_0x6f19('0x3b')]);_0x353cd0[_0x6f19('0x3c')]=qs[_0x6f19('0x35')](_['pick'](_0x3195f6['query'],_0x272482[_0x6f19('0x35')]));_0x353cd0[_0x6f19('0x3c')][_0x6f19('0x52')]=_0x3292e3['id'];if(_0x3195f6['query'][_0x6f19('0x3e')]){_0x353cd0['where']=_[_0x6f19('0x53')](_0x353cd0[_0x6f19('0x3c')],{'$or':_[_0x6f19('0x2e')](_0x353cd0['attributes'],function(_0x53f195){var _0xcc4f47={};_0xcc4f47[_0x53f195]={'$like':'%'+_0x3195f6[_0x6f19('0x33')]['filter']+'%'};return _0xcc4f47;})});}_0x353cd0=_[_0x6f19('0x53')]({},_0x353cd0,_0x3195f6[_0x6f19('0x48')]);return db['JscriptyQuestionReport']['count']({'where':_0x353cd0[_0x6f19('0x3c')]})['then'](function(_0x463e47){_0x5e1e7e[_0x6f19('0x22')]=_0x463e47;if(_0x3195f6[_0x6f19('0x33')][_0x6f19('0x41')]){_0x353cd0[_0x6f19('0x42')]=[{'all':!![]}];}return db[_0x6f19('0x50')]['findAll'](_0x353cd0);})[_0x6f19('0x29')](function(_0x3dd7a8){_0x5e1e7e[_0x6f19('0x44')]=_0x3dd7a8;return _0x5e1e7e;});}})[_0x6f19('0x29')](respondWithFilteredResult(_0x23f398,_0x353cd0))['catch'](handleError(_0x23f398,null));};
\ No newline at end of file
+var _0x546d=['apply','reject','save','update','then','destroy','error','stack','name','send','rawAttributes','fieldName','type','key','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','filter','merge','where','options','includeAll','include','JscriptySessionReport','findAll','catch','params','create','body','find','describe','findOne','JscriptyQuestionReport','sort','SessionId','rows','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','limit','undefined','count','Content-Range'];(function(_0x53d188,_0xfbcc96){var _0x3c1108=function(_0x2221ed){while(--_0x2221ed){_0x53d188['push'](_0x53d188['shift']());}};_0x3c1108(++_0xfbcc96);}(_0x546d,0x11a));var _0xd546=function(_0x3d4d5b,_0xe42b68){_0x3d4d5b=_0x3d4d5b-0x0;var _0x6bc37d=_0x546d[_0x3d4d5b];return _0x6bc37d;};'use strict';var emlformat=require(_0xd546('0x0'));var rimraf=require(_0xd546('0x1'));var zipdir=require(_0xd546('0x2'));var jsonpatch=require(_0xd546('0x3'));var rp=require(_0xd546('0x4'));var moment=require(_0xd546('0x5'));var BPromise=require('bluebird');var Mustache=require(_0xd546('0x6'));var util=require('util');var path=require(_0xd546('0x7'));var sox=require(_0xd546('0x8'));var csv=require(_0xd546('0x9'));var ejs=require(_0xd546('0xa'));var fs=require('fs');var fs_extra=require(_0xd546('0xb'));var _=require(_0xd546('0xc'));var squel=require(_0xd546('0xd'));var crypto=require(_0xd546('0xe'));var jsforce=require('jsforce');var deskjs=require(_0xd546('0xf'));var toCsv=require(_0xd546('0x9'));var querystring=require('querystring');var Papa=require(_0xd546('0x10'));var Redis=require('ioredis');var authService=require(_0xd546('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0xd546('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xd546('0x13'))(_0xd546('0x14'));var utils=require(_0xd546('0x15'));var config=require(_0xd546('0x16'));var licenseUtil=require(_0xd546('0x17'));var db=require(_0xd546('0x18'))['db'];function respondWithStatusCode(_0x38c682,_0x7337b2){_0x7337b2=_0x7337b2||0xcc;return function(_0x41378a){if(_0x41378a){return _0x38c682[_0xd546('0x19')](_0x7337b2);}return _0x38c682['status'](_0x7337b2)[_0xd546('0x1a')]();};}function respondWithResult(_0x148bb6,_0x1e3d11){_0x1e3d11=_0x1e3d11||0xc8;return function(_0x10cd8b){if(_0x10cd8b){return _0x148bb6[_0xd546('0x1b')](_0x1e3d11)[_0xd546('0x1c')](_0x10cd8b);}};}function respondWithFilteredResult(_0x4bddbb,_0x923812){return function(_0x32a5d2){if(_0x32a5d2){var _0xdafbc6=typeof _0x923812[_0xd546('0x1d')]==='undefined'&&typeof _0x923812[_0xd546('0x1e')]===_0xd546('0x1f');var _0x26d60=_0x32a5d2['count'];var _0x1ab216=_0xdafbc6?0x0:_0x923812[_0xd546('0x1d')];var _0x1a7ea6=_0xdafbc6?_0x32a5d2[_0xd546('0x20')]:_0x923812[_0xd546('0x1d')]+_0x923812[_0xd546('0x1e')];var _0x4345d0;if(_0x1a7ea6>=_0x26d60){_0x1a7ea6=_0x26d60;_0x4345d0=0xc8;}else{_0x4345d0=0xce;}_0x4bddbb[_0xd546('0x1b')](_0x4345d0);return _0x4bddbb['set'](_0xd546('0x21'),_0x1ab216+'-'+_0x1a7ea6+'/'+_0x26d60)[_0xd546('0x1c')](_0x32a5d2);}return null;};}function patchUpdates(_0x360b1b){return function(_0x28792b){try{jsonpatch[_0xd546('0x22')](_0x28792b,_0x360b1b,!![]);}catch(_0x58ba15){return BPromise[_0xd546('0x23')](_0x58ba15);}return _0x28792b[_0xd546('0x24')]();};}function saveUpdates(_0x4dab09,_0x614c92){return function(_0x49476e){if(_0x49476e){return _0x49476e[_0xd546('0x25')](_0x4dab09)[_0xd546('0x26')](function(_0x3daf6c){return _0x3daf6c;});}return null;};}function removeEntity(_0x47b32f,_0x241116){return function(_0x2cee23){if(_0x2cee23){return _0x2cee23[_0xd546('0x27')]()[_0xd546('0x26')](function(){_0x47b32f[_0xd546('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x546077,_0x4eed54){return function(_0x4ab42a){if(!_0x4ab42a){_0x546077['sendStatus'](0x194);}return _0x4ab42a;};}function handleError(_0x20f2e0,_0x54eeb5){_0x54eeb5=_0x54eeb5||0x1f4;return function(_0x1f14fc){logger[_0xd546('0x28')](_0x1f14fc[_0xd546('0x29')]);if(_0x1f14fc[_0xd546('0x2a')]){delete _0x1f14fc['name'];}_0x20f2e0['status'](_0x54eeb5)[_0xd546('0x2b')](_0x1f14fc);};}exports['index']=function(_0x38c306,_0xcc2a74){var _0x39a9c5={},_0x2e6526={},_0x39a7b0={'count':0x0,'rows':[]};var _0x130ba7=_['map'](db['JscriptySessionReport'][_0xd546('0x2c')],function(_0x1289f8){return{'name':_0x1289f8[_0xd546('0x2d')],'type':_0x1289f8[_0xd546('0x2e')][_0xd546('0x2f')]};});_0x2e6526[_0xd546('0x30')]=_[_0xd546('0x31')](_0x130ba7,_0xd546('0x2a'));_0x2e6526[_0xd546('0x32')]=_[_0xd546('0x33')](_0x38c306[_0xd546('0x32')]);_0x2e6526[_0xd546('0x34')]=_[_0xd546('0x35')](_0x2e6526['model'],_0x2e6526['query']);_0x39a9c5[_0xd546('0x36')]=_[_0xd546('0x35')](_0x2e6526[_0xd546('0x30')],qs[_0xd546('0x37')](_0x38c306[_0xd546('0x32')][_0xd546('0x37')]));_0x39a9c5[_0xd546('0x36')]=_0x39a9c5['attributes'][_0xd546('0x38')]?_0x39a9c5[_0xd546('0x36')]:_0x2e6526['model'];if(!_0x38c306[_0xd546('0x32')][_0xd546('0x39')](_0xd546('0x3a'))){_0x39a9c5[_0xd546('0x1e')]=qs[_0xd546('0x1e')](_0x38c306['query']['limit']);_0x39a9c5[_0xd546('0x1d')]=qs[_0xd546('0x1d')](_0x38c306[_0xd546('0x32')][_0xd546('0x1d')]);}_0x39a9c5[_0xd546('0x3b')]=qs['sort'](_0x38c306[_0xd546('0x32')]['sort']);_0x39a9c5['where']=qs[_0xd546('0x34')](_['pick'](_0x38c306['query'],_0x2e6526['filters']),_0x130ba7);if(_0x38c306[_0xd546('0x32')][_0xd546('0x3c')]){_0x39a9c5['where']=_[_0xd546('0x3d')](_0x39a9c5[_0xd546('0x3e')],{'$or':_[_0xd546('0x31')](_0x130ba7,function(_0x55d445){if(_0x55d445[_0xd546('0x2e')]!=='VIRTUAL'){var _0x465974={};_0x465974[_0x55d445[_0xd546('0x2a')]]={'$like':'%'+_0x38c306['query']['filter']+'%'};return _0x465974;}})});}_0x39a9c5=_[_0xd546('0x3d')]({},_0x39a9c5,_0x38c306[_0xd546('0x3f')]);var _0x7396a5={'where':_0x39a9c5['where']};return db['JscriptySessionReport']['count'](_0x7396a5)[_0xd546('0x26')](function(_0x2ae410){_0x39a7b0[_0xd546('0x20')]=_0x2ae410;if(_0x38c306[_0xd546('0x32')][_0xd546('0x40')]){_0x39a9c5[_0xd546('0x41')]=[{'all':!![]}];}return db[_0xd546('0x42')][_0xd546('0x43')](_0x39a9c5);})[_0xd546('0x26')](function(_0x4571ae){_0x39a7b0['rows']=_0x4571ae;return _0x39a7b0;})[_0xd546('0x26')](respondWithFilteredResult(_0xcc2a74,_0x39a9c5))[_0xd546('0x44')](handleError(_0xcc2a74,null));};exports['show']=function(_0x6c6760,_0x168730){var _0x476760={'raw':!![],'where':{'id':_0x6c6760[_0xd546('0x45')]['id']}},_0x2f8463={};_0x2f8463[_0xd546('0x30')]=_[_0xd546('0x33')](db[_0xd546('0x42')]['rawAttributes']);_0x2f8463[_0xd546('0x32')]=_['keys'](_0x6c6760[_0xd546('0x32')]);_0x2f8463[_0xd546('0x34')]=_['intersection'](_0x2f8463['model'],_0x2f8463[_0xd546('0x32')]);_0x476760[_0xd546('0x36')]=_['intersection'](_0x2f8463[_0xd546('0x30')],qs[_0xd546('0x37')](_0x6c6760[_0xd546('0x32')][_0xd546('0x37')]));_0x476760['attributes']=_0x476760[_0xd546('0x36')]['length']?_0x476760[_0xd546('0x36')]:_0x2f8463[_0xd546('0x30')];if(_0x6c6760[_0xd546('0x32')]['includeAll']){_0x476760[_0xd546('0x41')]=[{'all':!![]}];}_0x476760=_[_0xd546('0x3d')]({},_0x476760,_0x6c6760[_0xd546('0x3f')]);return db['JscriptySessionReport']['find'](_0x476760)[_0xd546('0x26')](handleEntityNotFound(_0x168730,null))[_0xd546('0x26')](respondWithResult(_0x168730,null))[_0xd546('0x44')](handleError(_0x168730,null));};exports[_0xd546('0x46')]=function(_0x8e4578,_0x66239c){return db[_0xd546('0x42')]['create'](_0x8e4578[_0xd546('0x47')],{})[_0xd546('0x26')](respondWithResult(_0x66239c,0xc9))['catch'](handleError(_0x66239c,null));};exports['update']=function(_0x324706,_0x2ea2cd){if(_0x324706['body']['id']){delete _0x324706[_0xd546('0x47')]['id'];}return db[_0xd546('0x42')][_0xd546('0x48')]({'where':{'id':_0x324706['params']['id']}})[_0xd546('0x26')](handleEntityNotFound(_0x2ea2cd,null))['then'](saveUpdates(_0x324706['body'],null))[_0xd546('0x26')](respondWithResult(_0x2ea2cd,null))[_0xd546('0x44')](handleError(_0x2ea2cd,null));};exports[_0xd546('0x27')]=function(_0x37ba60,_0x595975){return db['JscriptySessionReport'][_0xd546('0x48')]({'where':{'id':_0x37ba60[_0xd546('0x45')]['id']}})[_0xd546('0x26')](handleEntityNotFound(_0x595975,null))[_0xd546('0x26')](removeEntity(_0x595975,null))[_0xd546('0x44')](handleError(_0x595975,null));};exports['describe']=function(_0x39f45c,_0x5dd695){return db['JscriptySessionReport'][_0xd546('0x49')]()[_0xd546('0x26')](respondWithResult(_0x5dd695,null))['catch'](handleError(_0x5dd695,null));};exports['getQuestions']=function(_0x10e16f,_0xa35870,_0xe78311){var _0x51d9a7={'raw':!![],'where':{}};var _0x2b1262={};var _0x5f80c3={'count':0x0,'rows':[]};return db[_0xd546('0x42')][_0xd546('0x4a')]({'where':{'id':_0x10e16f[_0xd546('0x45')]['id']}})['then'](handleEntityNotFound(_0xa35870,null))[_0xd546('0x26')](function(_0x414236){if(_0x414236){_0x2b1262[_0xd546('0x30')]=_['keys'](db[_0xd546('0x4b')][_0xd546('0x2c')]);_0x2b1262['query']=_['keys'](_0x10e16f[_0xd546('0x32')]);_0x2b1262['filters']=_[_0xd546('0x35')](_0x2b1262[_0xd546('0x30')],_0x2b1262[_0xd546('0x32')]);_0x51d9a7[_0xd546('0x36')]=_[_0xd546('0x35')](_0x2b1262[_0xd546('0x30')],qs['fields'](_0x10e16f[_0xd546('0x32')][_0xd546('0x37')]));_0x51d9a7[_0xd546('0x36')]=_0x51d9a7['attributes']['length']?_0x51d9a7[_0xd546('0x36')]:_0x2b1262['model'];if(!_0x10e16f[_0xd546('0x32')][_0xd546('0x39')](_0xd546('0x3a'))){_0x51d9a7['limit']=qs['limit'](_0x10e16f[_0xd546('0x32')][_0xd546('0x1e')]);_0x51d9a7[_0xd546('0x1d')]=qs[_0xd546('0x1d')](_0x10e16f[_0xd546('0x32')]['offset']);}_0x51d9a7[_0xd546('0x3b')]=qs[_0xd546('0x4c')](_0x10e16f[_0xd546('0x32')][_0xd546('0x4c')]);_0x51d9a7['where']=qs[_0xd546('0x34')](_['pick'](_0x10e16f['query'],_0x2b1262[_0xd546('0x34')]));_0x51d9a7[_0xd546('0x3e')][_0xd546('0x4d')]=_0x414236['id'];if(_0x10e16f[_0xd546('0x32')]['filter']){_0x51d9a7[_0xd546('0x3e')]=_[_0xd546('0x3d')](_0x51d9a7[_0xd546('0x3e')],{'$or':_['map'](_0x51d9a7[_0xd546('0x36')],function(_0x16d446){var _0x21ccee={};_0x21ccee[_0x16d446]={'$like':'%'+_0x10e16f[_0xd546('0x32')][_0xd546('0x3c')]+'%'};return _0x21ccee;})});}_0x51d9a7=_[_0xd546('0x3d')]({},_0x51d9a7,_0x10e16f[_0xd546('0x3f')]);return db['JscriptyQuestionReport']['count']({'where':_0x51d9a7[_0xd546('0x3e')]})[_0xd546('0x26')](function(_0x12bdc3){_0x5f80c3[_0xd546('0x20')]=_0x12bdc3;if(_0x10e16f[_0xd546('0x32')]['includeAll']){_0x51d9a7[_0xd546('0x41')]=[{'all':!![]}];}return db[_0xd546('0x4b')][_0xd546('0x43')](_0x51d9a7);})[_0xd546('0x26')](function(_0x5805fd){_0x5f80c3[_0xd546('0x4e')]=_0x5805fd;return _0x5f80c3;});}})[_0xd546('0x26')](respondWithFilteredResult(_0xa35870,_0x51d9a7))[_0xd546('0x44')](handleError(_0xa35870,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7046=['path','../../config/environment','./jscriptySessionReport.attributes','exports','JscriptySessionReport','lodash','util','../../config/logger','api','bluebird','request-promise'];(function(_0x4432eb,_0x3c3027){var _0xc9175c=function(_0x463708){while(--_0x463708){_0x4432eb['push'](_0x4432eb['shift']());}};_0xc9175c(++_0x3c3027);}(_0x7046,0x144));var _0x6704=function(_0x4e676e,_0x2a7c6d){_0x4e676e=_0x4e676e-0x0;var _0x336a3c=_0x7046[_0x4e676e];return _0x336a3c;};'use strict';var _=require(_0x6704('0x0'));var util=require(_0x6704('0x1'));var logger=require(_0x6704('0x2'))(_0x6704('0x3'));var moment=require('moment');var BPromise=require(_0x6704('0x4'));var rp=require(_0x6704('0x5'));var fs=require('fs');var path=require(_0x6704('0x6'));var rimraf=require('rimraf');var config=require(_0x6704('0x7'));var attributes=require(_0x6704('0x8'));module[_0x6704('0x9')]=function(_0x626a14,_0x2917be){return _0x626a14['define'](_0x6704('0xa'),attributes,{'tableName':'report_jscripty_sessions','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x27a0=['define','JscriptySessionReport','util','../../config/logger','api','moment','bluebird','./jscriptySessionReport.attributes','exports'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x27a0,0xbf));var _0x027a=function(_0x3ce3af,_0x19da69){_0x3ce3af=_0x3ce3af-0x0;var _0x132986=_0x27a0[_0x3ce3af];return _0x132986;};'use strict';var _=require('lodash');var util=require(_0x027a('0x0'));var logger=require(_0x027a('0x1'))(_0x027a('0x2'));var moment=require(_0x027a('0x3'));var BPromise=require(_0x027a('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x027a('0x5'));module[_0x027a('0x6')]=function(_0x137b09,_0x639bec){return _0x137b09[_0x027a('0x7')](_0x027a('0x8'),attributes,{'tableName':'report_jscripty_sessions','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc4aa=['moment','bluebird','randomstring','ioredis','rpc','../../config/environment','jayson/promise','client','http','request','then','JscriptySessionReport,\x20%s,\x20%s','request\x20sent','debug','error','code','message','info','catch','lodash','util'];(function(_0x1f09bf,_0x1eb139){var _0x827052=function(_0x150bc5){while(--_0x150bc5){_0x1f09bf['push'](_0x1f09bf['shift']());}};_0x827052(++_0x1eb139);}(_0xc4aa,0x1b7));var _0xac4a=function(_0x3511d3,_0x4107ae){_0x3511d3=_0x3511d3-0x0;var _0x5d6321=_0xc4aa[_0x3511d3];return _0x5d6321;};'use strict';var _=require(_0xac4a('0x0'));var util=require(_0xac4a('0x1'));var moment=require(_0xac4a('0x2'));var BPromise=require(_0xac4a('0x3'));var rs=require(_0xac4a('0x4'));var fs=require('fs');var Redis=require(_0xac4a('0x5'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0xac4a('0x6'));var config=require(_0xac4a('0x7'));var jayson=require(_0xac4a('0x8'));var client=jayson[_0xac4a('0x9')][_0xac4a('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x15cd34,_0x3ef77c,_0x10525b){return new BPromise(function(_0x5c6179,_0x5b8339){return client[_0xac4a('0xb')](_0x15cd34,_0x10525b)[_0xac4a('0xc')](function(_0x26ec84){logger['info'](_0xac4a('0xd'),_0x3ef77c,_0xac4a('0xe'));logger[_0xac4a('0xf')]('JscriptySessionReport,\x20%s,\x20%s,\x20%s',_0x3ef77c,_0xac4a('0xe'),JSON['stringify'](_0x26ec84));if(_0x26ec84[_0xac4a('0x10')]){if(_0x26ec84['error'][_0xac4a('0x11')]===0x1f4){logger[_0xac4a('0x10')](_0xac4a('0xd'),_0x3ef77c,_0x26ec84['error'][_0xac4a('0x12')]);return _0x5b8339(_0x26ec84[_0xac4a('0x10')][_0xac4a('0x12')]);}logger[_0xac4a('0x10')](_0xac4a('0xd'),_0x3ef77c,_0x26ec84[_0xac4a('0x10')][_0xac4a('0x12')]);return _0x5c6179(_0x26ec84[_0xac4a('0x10')][_0xac4a('0x12')]);}else{logger[_0xac4a('0x13')](_0xac4a('0xd'),_0x3ef77c,_0xac4a('0xe'));_0x5c6179(_0x26ec84['result'][_0xac4a('0x12')]);}})[_0xac4a('0x14')](function(_0x23eb66){logger[_0xac4a('0x10')](_0xac4a('0xd'),_0x3ef77c,_0x23eb66);_0x5b8339(_0x23eb66);});});}
\ No newline at end of file
+var _0x68b3=['rpc','jayson/promise','client','http','request','then','JscriptySessionReport,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','info','result','catch','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger'];(function(_0x4c0c58,_0x23f9b9){var _0x48721e=function(_0x4767d8){while(--_0x4767d8){_0x4c0c58['push'](_0x4c0c58['shift']());}};_0x48721e(++_0x23f9b9);}(_0x68b3,0x1d8));var _0x368b=function(_0x4ac6e2,_0x3b817d){_0x4ac6e2=_0x4ac6e2-0x0;var _0x4f56f6=_0x68b3[_0x4ac6e2];return _0x4f56f6;};'use strict';var _=require(_0x368b('0x0'));var util=require(_0x368b('0x1'));var moment=require(_0x368b('0x2'));var BPromise=require(_0x368b('0x3'));var rs=require(_0x368b('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x368b('0x5'))['db'];var utils=require(_0x368b('0x6'));var logger=require(_0x368b('0x7'))(_0x368b('0x8'));var config=require('../../config/environment');var jayson=require(_0x368b('0x9'));var client=jayson[_0x368b('0xa')][_0x368b('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x23584a,_0x4406c8,_0x127c1e){return new BPromise(function(_0x2dec1c,_0x142d05){return client[_0x368b('0xc')](_0x23584a,_0x127c1e)[_0x368b('0xd')](function(_0x2a7b9f){logger['info'](_0x368b('0xe'),_0x4406c8,_0x368b('0xf'));logger[_0x368b('0x10')]('JscriptySessionReport,\x20%s,\x20%s,\x20%s',_0x4406c8,_0x368b('0xf'),JSON[_0x368b('0x11')](_0x2a7b9f));if(_0x2a7b9f[_0x368b('0x12')]){if(_0x2a7b9f['error'][_0x368b('0x13')]===0x1f4){logger[_0x368b('0x12')]('JscriptySessionReport,\x20%s,\x20%s',_0x4406c8,_0x2a7b9f[_0x368b('0x12')][_0x368b('0x14')]);return _0x142d05(_0x2a7b9f[_0x368b('0x12')][_0x368b('0x14')]);}logger[_0x368b('0x12')]('JscriptySessionReport,\x20%s,\x20%s',_0x4406c8,_0x2a7b9f[_0x368b('0x12')][_0x368b('0x14')]);return _0x2dec1c(_0x2a7b9f['error'][_0x368b('0x14')]);}else{logger[_0x368b('0x15')](_0x368b('0xe'),_0x4406c8,'request\x20sent');_0x2dec1c(_0x2a7b9f[_0x368b('0x16')][_0x368b('0x14')]);}})[_0x368b('0x17')](function(_0x4d6d9d){logger[_0x368b('0x12')](_0x368b('0xe'),_0x4406c8,_0x4d6d9d);_0x142d05(_0x4d6d9d);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3d94=['../../config/environment','./license.controller','index','/:id','isAuthenticated','exports','util','path','connect-timeout','Router','fs-extra'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x3d94,0xd7));var _0x43d9=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x3d94[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require('multer');var util=require(_0x43d9('0x0'));var path=require(_0x43d9('0x1'));var timeout=require(_0x43d9('0x2'));var express=require('express');var router=express[_0x43d9('0x3')]();var fs_extra=require(_0x43d9('0x4'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x43d9('0x5'));var controller=require(_0x43d9('0x6'));router['get']('/',controller[_0x43d9('0x7')]);router['put'](_0x43d9('0x8'),auth[_0x43d9('0x9')](),controller['update']);module[_0x43d9('0xa')]=router;
\ No newline at end of file
+var _0xdbfa=['../../config/environment','./license.controller','get','index','/:id','isAuthenticated','update','exports','connect-timeout','Router','fs-extra','../../components/interaction/service'];(function(_0x4356a5,_0x255ea6){var _0x572de1=function(_0x2a18ce){while(--_0x2a18ce){_0x4356a5['push'](_0x4356a5['shift']());}};_0x572de1(++_0x255ea6);}(_0xdbfa,0x128));var _0xadbf=function(_0x13568b,_0x13d064){_0x13568b=_0x13568b-0x0;var _0x5152b6=_0xdbfa[_0x13568b];return _0x5152b6;};'use strict';var multer=require('multer');var util=require('util');var path=require('path');var timeout=require(_0xadbf('0x0'));var express=require('express');var router=express[_0xadbf('0x1')]();var fs_extra=require(_0xadbf('0x2'));var auth=require('../../components/auth/service');var interaction=require(_0xadbf('0x3'));var config=require(_0xadbf('0x4'));var controller=require(_0xadbf('0x5'));router[_0xadbf('0x6')]('/',controller[_0xadbf('0x7')]);router['put'](_0xadbf('0x8'),auth[_0xadbf('0x9')](),controller[_0xadbf('0xa')]);module[_0xadbf('0xb')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb17c=['sequelize','exports','STRING','INTEGER'];(function(_0x155bbf,_0x1bca34){var _0x1cb0ac=function(_0x101c7c){while(--_0x101c7c){_0x155bbf['push'](_0x155bbf['shift']());}};_0x1cb0ac(++_0x1bca34);}(_0xb17c,0x150));var _0xcb17=function(_0x4565bf,_0x5ad9d6){_0x4565bf=_0x4565bf-0x0;var _0x5610ba=_0xb17c[_0x4565bf];return _0x5610ba;};'use strict';var Sequelize=require(_0xcb17('0x0'));module[_0xcb17('0x1')]={'license':{'type':Sequelize['TEXT']},'data1':{'type':Sequelize[_0xcb17('0x2')]},'data2':{'type':Sequelize[_0xcb17('0x2')]},'chatLicenseExceeded':{'type':Sequelize[_0xcb17('0x3')],'defaultValue':0x0}};
\ No newline at end of file
+var _0x2e83=['TEXT','STRING','INTEGER','sequelize'];(function(_0x3b380d,_0x4bf247){var _0x54502b=function(_0x35d207){while(--_0x35d207){_0x3b380d['push'](_0x3b380d['shift']());}};_0x54502b(++_0x4bf247);}(_0x2e83,0x17f));var _0x32e8=function(_0x4fc9e6,_0xc51915){_0x4fc9e6=_0x4fc9e6-0x0;var _0x551d28=_0x2e83[_0x4fc9e6];return _0x551d28;};'use strict';var Sequelize=require(_0x32e8('0x0'));module['exports']={'license':{'type':Sequelize[_0x32e8('0x1')]},'data1':{'type':Sequelize['STRING']},'data2':{'type':Sequelize[_0x32e8('0x2')]},'chatLicenseExceeded':{'type':Sequelize[_0x32e8('0x3')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0295=['demo','eml-format','fast-json-patch','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','desk.js','querystring','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','end','status','json','offset','undefined','limit','count','set','apply','save','update','then','destroy','stack','name','send','../../config/license/util','model','keys','rawAttributes','query','filters','intersection','attributes','fields','merge','options','catch','body','License','find','checkLicense','key'];(function(_0x45bf86,_0x75586e){var _0x1f02b7=function(_0x1ea8a3){while(--_0x1ea8a3){_0x45bf86['push'](_0x45bf86['shift']());}};_0x1f02b7(++_0x75586e);}(_0x0295,0x1f0));var _0x5029=function(_0x1badb1,_0x375ec6){_0x1badb1=_0x1badb1-0x0;var _0x260dae=_0x0295[_0x1badb1];return _0x260dae;};'use strict';var emlformat=require(_0x5029('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x5029('0x1'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x5029('0x2'));var Mustache=require(_0x5029('0x3'));var util=require(_0x5029('0x4'));var path=require(_0x5029('0x5'));var sox=require(_0x5029('0x6'));var csv=require(_0x5029('0x7'));var ejs=require(_0x5029('0x8'));var fs=require('fs');var fs_extra=require(_0x5029('0x9'));var _=require(_0x5029('0xa'));var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x5029('0xb'));var toCsv=require('to-csv');var querystring=require(_0x5029('0xc'));var Papa=require('papaparse');var Redis=require(_0x5029('0xd'));var authService=require('../../components/auth/service');var qs=require(_0x5029('0xe'));var as=require(_0x5029('0xf'));var hardwareService=require(_0x5029('0x10'));var logger=require('../../config/logger')(_0x5029('0x11'));var utils=require(_0x5029('0x12'));var config=require(_0x5029('0x13'));var licenseUtil=require('../../config/license/util');var db=require(_0x5029('0x14'))['db'];function respondWithStatusCode(_0x2442b2,_0x4cced9){_0x4cced9=_0x4cced9||0xcc;return function(_0x4fa22d){if(_0x4fa22d){return _0x2442b2['sendStatus'](_0x4cced9);}return _0x2442b2['status'](_0x4cced9)[_0x5029('0x15')]();};}function respondWithResult(_0x2e0369,_0x12c237){_0x12c237=_0x12c237||0xc8;return function(_0x434630){if(_0x434630){return _0x2e0369[_0x5029('0x16')](_0x12c237)[_0x5029('0x17')](_0x434630);}};}function respondWithFilteredResult(_0xe278b7,_0x317c20){return function(_0x10bf55){if(_0x10bf55){var _0x326923=typeof _0x317c20[_0x5029('0x18')]===_0x5029('0x19')&&typeof _0x317c20[_0x5029('0x1a')]===_0x5029('0x19');var _0x343918=_0x10bf55['count'];var _0x1ed567=_0x326923?0x0:_0x317c20[_0x5029('0x18')];var _0x35de81=_0x326923?_0x10bf55[_0x5029('0x1b')]:_0x317c20[_0x5029('0x18')]+_0x317c20[_0x5029('0x1a')];var _0xaba461;if(_0x35de81>=_0x343918){_0x35de81=_0x343918;_0xaba461=0xc8;}else{_0xaba461=0xce;}_0xe278b7['status'](_0xaba461);return _0xe278b7[_0x5029('0x1c')]('Content-Range',_0x1ed567+'-'+_0x35de81+'/'+_0x343918)[_0x5029('0x17')](_0x10bf55);}return null;};}function patchUpdates(_0x8a414c){return function(_0x2710aa){try{jsonpatch[_0x5029('0x1d')](_0x2710aa,_0x8a414c,!![]);}catch(_0x4b5854){return BPromise['reject'](_0x4b5854);}return _0x2710aa[_0x5029('0x1e')]();};}function saveUpdates(_0x4a49b6,_0x3f657d){return function(_0x853a34){if(_0x853a34){return _0x853a34[_0x5029('0x1f')](_0x4a49b6)[_0x5029('0x20')](function(_0x16bd22){return _0x16bd22;});}return null;};}function removeEntity(_0x3a3e52,_0x125c26){return function(_0x356dac){if(_0x356dac){return _0x356dac[_0x5029('0x21')]()['then'](function(){_0x3a3e52['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x588d90,_0x45666c){return function(_0x51093c){if(!_0x51093c){_0x588d90['sendStatus'](0x194);}return _0x51093c;};}function handleError(_0x181da0,_0x1e7e61){_0x1e7e61=_0x1e7e61||0x1f4;return function(_0x36d810){logger['error'](_0x36d810[_0x5029('0x22')]);if(_0x36d810[_0x5029('0x23')]){delete _0x36d810['name'];}_0x181da0[_0x5029('0x16')](_0x1e7e61)[_0x5029('0x24')](_0x36d810);};}var utilLicense=require(_0x5029('0x25'));exports['index']=function(_0x32da06,_0x251f99){var _0xe5313e={'raw':!![],'where':{'id':0x1}},_0x4b6f92={};_0x4b6f92[_0x5029('0x26')]=_[_0x5029('0x27')](db['License'][_0x5029('0x28')]);_0x4b6f92[_0x5029('0x29')]=_[_0x5029('0x27')](_0x32da06[_0x5029('0x29')]);_0x4b6f92[_0x5029('0x2a')]=_[_0x5029('0x2b')](_0x4b6f92[_0x5029('0x26')],_0x4b6f92[_0x5029('0x29')]);_0xe5313e[_0x5029('0x2c')]=_[_0x5029('0x2b')](_0x4b6f92[_0x5029('0x26')],qs[_0x5029('0x2d')](_0x32da06['query'][_0x5029('0x2d')]));_0xe5313e['attributes']=_0xe5313e[_0x5029('0x2c')]['length']?_0xe5313e['attributes']:_0x4b6f92[_0x5029('0x26')];_0xe5313e=_[_0x5029('0x2e')]({},_0xe5313e,_0x32da06[_0x5029('0x2f')]);return utilLicense['getLicense'](_0xe5313e)[_0x5029('0x20')](respondWithResult(_0x251f99,null))[_0x5029('0x30')](handleError(_0x251f99,null));};exports[_0x5029('0x1f')]=function(_0x29c59a,_0x1bb896){if(_0x29c59a[_0x5029('0x31')]['id']){delete _0x29c59a[_0x5029('0x31')]['id'];}return db[_0x5029('0x32')][_0x5029('0x33')]({'where':{'id':_0x29c59a['params']['id']}})[_0x5029('0x20')](handleEntityNotFound(_0x1bb896,null))[_0x5029('0x20')](function(_0xc110e8){var _0x1b3817=_0xc110e8['get']({'plain':!![]});return utilLicense[_0x5029('0x34')](_0x1b3817,_0x29c59a[_0x5029('0x31')][_0x5029('0x35')]);})['then'](function(_0x4904cc){if(!_0x4904cc[_0x5029('0x36')]){return saveUpdates(_0x29c59a[_0x5029('0x31')],null);}return _0x4904cc;})['then'](respondWithResult(_0x1bb896,null))['catch'](handleError(_0x1bb896,null));};
\ No newline at end of file
+var _0xadb5=['query','filters','intersection','attributes','merge','getLicense','body','find','params','key','catch','rimraf','fast-json-patch','request-promise','moment','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/license/util','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','update','then','destroy','end','stack','name','send','model','keys','License'];(function(_0x518204,_0x5c368a){var _0x23e406=function(_0x31c233){while(--_0x31c233){_0x518204['push'](_0x518204['shift']());}};_0x23e406(++_0x5c368a);}(_0xadb5,0xad));var _0x5adb=function(_0x2cfcad,_0x3e9d45){_0x2cfcad=_0x2cfcad-0x0;var _0x3e1590=_0xadb5[_0x2cfcad];return _0x3e1590;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x5adb('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x5adb('0x1'));var rp=require(_0x5adb('0x2'));var moment=require(_0x5adb('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x5adb('0x4'));var util=require(_0x5adb('0x5'));var path=require(_0x5adb('0x6'));var sox=require('sox');var csv=require(_0x5adb('0x7'));var ejs=require(_0x5adb('0x8'));var fs=require('fs');var fs_extra=require(_0x5adb('0x9'));var _=require(_0x5adb('0xa'));var squel=require(_0x5adb('0xb'));var crypto=require(_0x5adb('0xc'));var jsforce=require(_0x5adb('0xd'));var deskjs=require(_0x5adb('0xe'));var toCsv=require(_0x5adb('0x7'));var querystring=require(_0x5adb('0xf'));var Papa=require(_0x5adb('0x10'));var Redis=require(_0x5adb('0x11'));var authService=require(_0x5adb('0x12'));var qs=require(_0x5adb('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x5adb('0x14'))(_0x5adb('0x15'));var utils=require(_0x5adb('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x5adb('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x2a0b70,_0x5433bf){_0x5433bf=_0x5433bf||0xcc;return function(_0x8cfcc6){if(_0x8cfcc6){return _0x2a0b70[_0x5adb('0x18')](_0x5433bf);}return _0x2a0b70[_0x5adb('0x19')](_0x5433bf)['end']();};}function respondWithResult(_0x2a545b,_0x34af2c){_0x34af2c=_0x34af2c||0xc8;return function(_0xf82f72){if(_0xf82f72){return _0x2a545b['status'](_0x34af2c)[_0x5adb('0x1a')](_0xf82f72);}};}function respondWithFilteredResult(_0x518823,_0x367d82){return function(_0x42a482){if(_0x42a482){var _0x30614e=typeof _0x367d82[_0x5adb('0x1b')]===_0x5adb('0x1c')&&typeof _0x367d82[_0x5adb('0x1d')]===_0x5adb('0x1c');var _0x42f4c6=_0x42a482[_0x5adb('0x1e')];var _0x529b65=_0x30614e?0x0:_0x367d82[_0x5adb('0x1b')];var _0x5de028=_0x30614e?_0x42a482[_0x5adb('0x1e')]:_0x367d82['offset']+_0x367d82[_0x5adb('0x1d')];var _0x50e84f;if(_0x5de028>=_0x42f4c6){_0x5de028=_0x42f4c6;_0x50e84f=0xc8;}else{_0x50e84f=0xce;}_0x518823['status'](_0x50e84f);return _0x518823[_0x5adb('0x1f')](_0x5adb('0x20'),_0x529b65+'-'+_0x5de028+'/'+_0x42f4c6)[_0x5adb('0x1a')](_0x42a482);}return null;};}function patchUpdates(_0x1fd4a7){return function(_0x99bc6c){try{jsonpatch['apply'](_0x99bc6c,_0x1fd4a7,!![]);}catch(_0x3255b3){return BPromise['reject'](_0x3255b3);}return _0x99bc6c['save']();};}function saveUpdates(_0x3754cc,_0x379b33){return function(_0x1a38d3){if(_0x1a38d3){return _0x1a38d3[_0x5adb('0x21')](_0x3754cc)[_0x5adb('0x22')](function(_0x413911){return _0x413911;});}return null;};}function removeEntity(_0xfd9bb9,_0x4ca150){return function(_0x4b1957){if(_0x4b1957){return _0x4b1957[_0x5adb('0x23')]()[_0x5adb('0x22')](function(){_0xfd9bb9[_0x5adb('0x19')](0xcc)[_0x5adb('0x24')]();});}};}function handleEntityNotFound(_0x49f203,_0x2fee18){return function(_0x2e1e63){if(!_0x2e1e63){_0x49f203['sendStatus'](0x194);}return _0x2e1e63;};}function handleError(_0x1feecf,_0x1ded9f){_0x1ded9f=_0x1ded9f||0x1f4;return function(_0x1a0acd){logger['error'](_0x1a0acd[_0x5adb('0x25')]);if(_0x1a0acd[_0x5adb('0x26')]){delete _0x1a0acd[_0x5adb('0x26')];}_0x1feecf[_0x5adb('0x19')](_0x1ded9f)[_0x5adb('0x27')](_0x1a0acd);};}var utilLicense=require(_0x5adb('0x17'));exports['index']=function(_0x49992e,_0x5d457e){var _0x39bddd={'raw':!![],'where':{'id':0x1}},_0x1eac55={};_0x1eac55[_0x5adb('0x28')]=_[_0x5adb('0x29')](db[_0x5adb('0x2a')]['rawAttributes']);_0x1eac55[_0x5adb('0x2b')]=_[_0x5adb('0x29')](_0x49992e[_0x5adb('0x2b')]);_0x1eac55[_0x5adb('0x2c')]=_[_0x5adb('0x2d')](_0x1eac55[_0x5adb('0x28')],_0x1eac55[_0x5adb('0x2b')]);_0x39bddd[_0x5adb('0x2e')]=_[_0x5adb('0x2d')](_0x1eac55[_0x5adb('0x28')],qs['fields'](_0x49992e[_0x5adb('0x2b')]['fields']));_0x39bddd[_0x5adb('0x2e')]=_0x39bddd[_0x5adb('0x2e')]['length']?_0x39bddd[_0x5adb('0x2e')]:_0x1eac55[_0x5adb('0x28')];_0x39bddd=_[_0x5adb('0x2f')]({},_0x39bddd,_0x49992e['options']);return utilLicense[_0x5adb('0x30')](_0x39bddd)[_0x5adb('0x22')](respondWithResult(_0x5d457e,null))['catch'](handleError(_0x5d457e,null));};exports['update']=function(_0x1ed9ea,_0x49dd03){if(_0x1ed9ea[_0x5adb('0x31')]['id']){delete _0x1ed9ea[_0x5adb('0x31')]['id'];}return db[_0x5adb('0x2a')][_0x5adb('0x32')]({'where':{'id':_0x1ed9ea[_0x5adb('0x33')]['id']}})['then'](handleEntityNotFound(_0x49dd03,null))[_0x5adb('0x22')](function(_0x215b88){var _0x1c3a5c=_0x215b88['get']({'plain':!![]});return utilLicense['checkLicense'](_0x1c3a5c,_0x1ed9ea[_0x5adb('0x31')][_0x5adb('0x34')]);})['then'](function(_0x2355bc){if(!_0x2355bc['demo']){return saveUpdates(_0x1ed9ea[_0x5adb('0x31')],null);}return _0x2355bc;})['then'](respondWithResult(_0x49dd03,null))[_0x5adb('0x35')](handleError(_0x49dd03,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3ef6=['api','moment','bluebird','path','rimraf','../../config/environment','./license.attributes','exports','define','License','license','lodash','../../config/logger'];(function(_0x42d4c4,_0x33b0b4){var _0x1ff9d2=function(_0x32b892){while(--_0x32b892){_0x42d4c4['push'](_0x42d4c4['shift']());}};_0x1ff9d2(++_0x33b0b4);}(_0x3ef6,0x80));var _0x63ef=function(_0x118a88,_0x166f95){_0x118a88=_0x118a88-0x0;var _0x5a5ae7=_0x3ef6[_0x118a88];return _0x5a5ae7;};'use strict';var _=require(_0x63ef('0x0'));var util=require('util');var logger=require(_0x63ef('0x1'))(_0x63ef('0x2'));var moment=require(_0x63ef('0x3'));var BPromise=require(_0x63ef('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x63ef('0x5'));var rimraf=require(_0x63ef('0x6'));var config=require(_0x63ef('0x7'));var attributes=require(_0x63ef('0x8'));module[_0x63ef('0x9')]=function(_0x3627b7,_0x61d79f){return _0x3627b7[_0x63ef('0xa')](_0x63ef('0xb'),attributes,{'tableName':_0x63ef('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x41b9=['moment','bluebird','rimraf','../../config/environment','./license.attributes','define','License','license','lodash','util','api'];(function(_0x4fd6c5,_0x284cf0){var _0x4e61c8=function(_0x1504bb){while(--_0x1504bb){_0x4fd6c5['push'](_0x4fd6c5['shift']());}};_0x4e61c8(++_0x284cf0);}(_0x41b9,0x1e1));var _0x941b=function(_0x15ac1e,_0x3ceacc){_0x15ac1e=_0x15ac1e-0x0;var _0x5c4b11=_0x41b9[_0x15ac1e];return _0x5c4b11;};'use strict';var _=require(_0x941b('0x0'));var util=require(_0x941b('0x1'));var logger=require('../../config/logger')(_0x941b('0x2'));var moment=require(_0x941b('0x3'));var BPromise=require(_0x941b('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0x941b('0x5'));var config=require(_0x941b('0x6'));var attributes=require(_0x941b('0x7'));module['exports']=function(_0x1ee400,_0x33d847){return _0x1ee400[_0x941b('0x8')](_0x941b('0x9'),attributes,{'tableName':_0x941b('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd067=['debug','stringify','error','code','message','result','catch','lodash','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','request','then','info','License,\x20%s,\x20%s','request\x20sent'];(function(_0x6888b4,_0x200c2c){var _0x75c48f=function(_0x10b898){while(--_0x10b898){_0x6888b4['push'](_0x6888b4['shift']());}};_0x75c48f(++_0x200c2c);}(_0xd067,0x1bc));var _0x7d06=function(_0x41a8ed,_0x3d4807){_0x41a8ed=_0x41a8ed-0x0;var _0x1a7500=_0xd067[_0x41a8ed];return _0x1a7500;};'use strict';var _=require(_0x7d06('0x0'));var util=require('util');var moment=require(_0x7d06('0x1'));var BPromise=require(_0x7d06('0x2'));var rs=require(_0x7d06('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x7d06('0x4'))['db'];var utils=require(_0x7d06('0x5'));var logger=require(_0x7d06('0x6'))(_0x7d06('0x7'));var config=require(_0x7d06('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x7d06('0x9')][_0x7d06('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x3a987a,_0x7f56e4,_0x3d4df0){return new BPromise(function(_0xe72585,_0x9c82e3){return client[_0x7d06('0xb')](_0x3a987a,_0x3d4df0)[_0x7d06('0xc')](function(_0x5b75ad){logger[_0x7d06('0xd')](_0x7d06('0xe'),_0x7f56e4,_0x7d06('0xf'));logger[_0x7d06('0x10')]('License,\x20%s,\x20%s,\x20%s',_0x7f56e4,_0x7d06('0xf'),JSON[_0x7d06('0x11')](_0x5b75ad));if(_0x5b75ad[_0x7d06('0x12')]){if(_0x5b75ad[_0x7d06('0x12')][_0x7d06('0x13')]===0x1f4){logger['error'](_0x7d06('0xe'),_0x7f56e4,_0x5b75ad[_0x7d06('0x12')][_0x7d06('0x14')]);return _0x9c82e3(_0x5b75ad['error']['message']);}logger['error'](_0x7d06('0xe'),_0x7f56e4,_0x5b75ad['error'][_0x7d06('0x14')]);return _0xe72585(_0x5b75ad[_0x7d06('0x12')][_0x7d06('0x14')]);}else{logger[_0x7d06('0xd')](_0x7d06('0xe'),_0x7f56e4,_0x7d06('0xf'));_0xe72585(_0x5b75ad[_0x7d06('0x15')]['message']);}})[_0x7d06('0x16')](function(_0xc6b74){logger[_0x7d06('0x12')](_0x7d06('0xe'),_0x7f56e4,_0xc6b74);_0x9c82e3(_0xc6b74);});});}
\ No newline at end of file
+var _0xf046=['code','message','info','result','catch','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','then','License,\x20%s,\x20%s','request\x20sent','debug','License,\x20%s,\x20%s,\x20%s','stringify','error'];(function(_0x55ca5e,_0x453dd0){var _0x1375cf=function(_0xd6b112){while(--_0xd6b112){_0x55ca5e['push'](_0x55ca5e['shift']());}};_0x1375cf(++_0x453dd0);}(_0xf046,0x89));var _0x6f04=function(_0x32bf8b,_0x2ac32b){_0x32bf8b=_0x32bf8b-0x0;var _0x1e5ef5=_0xf046[_0x32bf8b];return _0x1e5ef5;};'use strict';var _=require('lodash');var util=require('util');var moment=require('moment');var BPromise=require(_0x6f04('0x0'));var rs=require(_0x6f04('0x1'));var fs=require('fs');var Redis=require(_0x6f04('0x2'));var db=require(_0x6f04('0x3'))['db'];var utils=require(_0x6f04('0x4'));var logger=require('../../config/logger')(_0x6f04('0x5'));var config=require(_0x6f04('0x6'));var jayson=require(_0x6f04('0x7'));var client=jayson[_0x6f04('0x8')][_0x6f04('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x31989d,_0x495ca6,_0x34dd3a){return new BPromise(function(_0x3f70d8,_0x5f5cc5){return client['request'](_0x31989d,_0x34dd3a)[_0x6f04('0xa')](function(_0x5805d4){logger['info'](_0x6f04('0xb'),_0x495ca6,_0x6f04('0xc'));logger[_0x6f04('0xd')](_0x6f04('0xe'),_0x495ca6,_0x6f04('0xc'),JSON[_0x6f04('0xf')](_0x5805d4));if(_0x5805d4[_0x6f04('0x10')]){if(_0x5805d4[_0x6f04('0x10')][_0x6f04('0x11')]===0x1f4){logger[_0x6f04('0x10')](_0x6f04('0xb'),_0x495ca6,_0x5805d4[_0x6f04('0x10')][_0x6f04('0x12')]);return _0x5f5cc5(_0x5805d4['error'][_0x6f04('0x12')]);}logger[_0x6f04('0x10')]('License,\x20%s,\x20%s',_0x495ca6,_0x5805d4[_0x6f04('0x10')][_0x6f04('0x12')]);return _0x3f70d8(_0x5805d4['error'][_0x6f04('0x12')]);}else{logger[_0x6f04('0x13')](_0x6f04('0xb'),_0x495ca6,'request\x20sent');_0x3f70d8(_0x5805d4[_0x6f04('0x14')]['message']);}})[_0x6f04('0x15')](function(_0x1b3514){logger[_0x6f04('0x10')](_0x6f04('0xb'),_0x495ca6,_0x1b3514);_0x5f5cc5(_0x1b3514);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd700=['addAgents','update','delete','removeDispositions','removeAnswers','removeImap','removeSmtp','destroy','/:id/users','removeAgents','util','path','connect-timeout','fs-extra','../../components/auth/service','../../components/interaction/service','./mailAccount.controller','isAuthenticated','/describe','describe','get','/:id','show','/:id/dispositions','/:id/canned_answers','/:id/in_servers','getImap','/:id/out_servers','getSmtp','/:id/interactions','getInteractions','/:id/applications','getApplications','/:id/verify','verifySmtp','getAgents','post','addImap','addInteraction','addApplications','/:id/send','send'];(function(_0x2923a0,_0x409dea){var _0x35930e=function(_0x4517bd){while(--_0x4517bd){_0x2923a0['push'](_0x2923a0['shift']());}};_0x35930e(++_0x409dea);}(_0xd700,0x1d8));var _0x0d70=function(_0x527a6c,_0x15b18d){_0x527a6c=_0x527a6c-0x0;var _0x4c780d=_0xd700[_0x527a6c];return _0x4c780d;};'use strict';var multer=require('multer');var util=require(_0x0d70('0x0'));var path=require(_0x0d70('0x1'));var timeout=require(_0x0d70('0x2'));var express=require('express');var router=express['Router']();var fs_extra=require(_0x0d70('0x3'));var auth=require(_0x0d70('0x4'));var interaction=require(_0x0d70('0x5'));var config=require('../../config/environment');var controller=require(_0x0d70('0x6'));router['get']('/',auth[_0x0d70('0x7')](),controller['index']);router['get'](_0x0d70('0x8'),auth[_0x0d70('0x7')](),controller[_0x0d70('0x9')]);router[_0x0d70('0xa')](_0x0d70('0xb'),auth[_0x0d70('0x7')](),controller[_0x0d70('0xc')]);router[_0x0d70('0xa')](_0x0d70('0xd'),auth[_0x0d70('0x7')](),controller['getDispositions']);router[_0x0d70('0xa')](_0x0d70('0xe'),auth[_0x0d70('0x7')](),controller['getAnswers']);router[_0x0d70('0xa')](_0x0d70('0xf'),auth[_0x0d70('0x7')](),controller[_0x0d70('0x10')]);router['get'](_0x0d70('0x11'),auth[_0x0d70('0x7')](),controller[_0x0d70('0x12')]);router[_0x0d70('0xa')](_0x0d70('0x13'),auth['isAuthenticated'](),controller[_0x0d70('0x14')]);router['get'](_0x0d70('0x15'),auth[_0x0d70('0x7')](),controller[_0x0d70('0x16')]);router['get']('/:id/messages',auth['isAuthenticated'](),controller['getMessages']);router[_0x0d70('0xa')](_0x0d70('0x17'),auth[_0x0d70('0x7')](),controller[_0x0d70('0x18')]);router[_0x0d70('0xa')]('/:id/users',auth[_0x0d70('0x7')](),controller[_0x0d70('0x19')]);router[_0x0d70('0x1a')](_0x0d70('0xd'),auth[_0x0d70('0x7')](),controller['addDisposition']);router[_0x0d70('0x1a')](_0x0d70('0xe'),auth['isAuthenticated'](),controller['addAnswer']);router[_0x0d70('0x1a')]('/',auth[_0x0d70('0x7')](),controller['create']);router[_0x0d70('0x1a')](_0x0d70('0xf'),auth[_0x0d70('0x7')](),controller[_0x0d70('0x1b')]);router['post']('/:id/out_servers',auth['isAuthenticated'](),controller['addSmtp']);router[_0x0d70('0x1a')](_0x0d70('0x13'),auth[_0x0d70('0x7')](),controller[_0x0d70('0x1c')]);router[_0x0d70('0x1a')](_0x0d70('0x15'),auth[_0x0d70('0x7')](),controller[_0x0d70('0x1d')]);router[_0x0d70('0x1a')](_0x0d70('0x1e'),auth[_0x0d70('0x7')](),controller[_0x0d70('0x1f')]);router[_0x0d70('0x1a')]('/:id/users',auth[_0x0d70('0x7')](),controller[_0x0d70('0x20')]);router['put']('/:id',auth['isAuthenticated'](),controller[_0x0d70('0x21')]);router[_0x0d70('0x22')]('/:id/dispositions',auth[_0x0d70('0x7')](),controller[_0x0d70('0x23')]);router[_0x0d70('0x22')]('/:id/canned_answers',auth[_0x0d70('0x7')](),controller[_0x0d70('0x24')]);router['delete'](_0x0d70('0xf'),auth[_0x0d70('0x7')](),controller[_0x0d70('0x25')]);router[_0x0d70('0x22')]('/:id/out_servers',auth[_0x0d70('0x7')](),controller[_0x0d70('0x26')]);router['delete'](_0x0d70('0xb'),auth[_0x0d70('0x7')](),controller[_0x0d70('0x27')]);router[_0x0d70('0x22')](_0x0d70('0x28'),auth['isAuthenticated'](),controller[_0x0d70('0x29')]);module['exports']=router;
\ No newline at end of file
+var _0x344e=['show','/:id/dispositions','getDispositions','/:id/canned_answers','getImap','getApplications','getMessages','verifySmtp','getAgents','post','addDisposition','addAnswer','create','addImap','/:id/out_servers','addSmtp','/:id/interactions','addInteraction','/:id/applications','addApplications','/:id/send','send','addAgents','update','delete','removeAnswers','removeImap','removeSmtp','/:id','destroy','/:id/users','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','get','isAuthenticated','index','/describe','describe'];(function(_0xd1d19a,_0x1933f0){var _0x52a79d=function(_0x5199e2){while(--_0x5199e2){_0xd1d19a['push'](_0xd1d19a['shift']());}};_0x52a79d(++_0x1933f0);}(_0x344e,0x100));var _0xe344=function(_0x3ca3ac,_0x36a401){_0x3ca3ac=_0x3ca3ac-0x0;var _0x17d64c=_0x344e[_0x3ca3ac];return _0x17d64c;};'use strict';var multer=require(_0xe344('0x0'));var util=require(_0xe344('0x1'));var path=require(_0xe344('0x2'));var timeout=require(_0xe344('0x3'));var express=require(_0xe344('0x4'));var router=express[_0xe344('0x5')]();var fs_extra=require(_0xe344('0x6'));var auth=require(_0xe344('0x7'));var interaction=require(_0xe344('0x8'));var config=require('../../config/environment');var controller=require('./mailAccount.controller');router[_0xe344('0x9')]('/',auth[_0xe344('0xa')](),controller[_0xe344('0xb')]);router[_0xe344('0x9')](_0xe344('0xc'),auth[_0xe344('0xa')](),controller[_0xe344('0xd')]);router[_0xe344('0x9')]('/:id',auth[_0xe344('0xa')](),controller[_0xe344('0xe')]);router['get'](_0xe344('0xf'),auth['isAuthenticated'](),controller[_0xe344('0x10')]);router[_0xe344('0x9')](_0xe344('0x11'),auth['isAuthenticated'](),controller['getAnswers']);router['get']('/:id/in_servers',auth['isAuthenticated'](),controller[_0xe344('0x12')]);router['get']('/:id/out_servers',auth[_0xe344('0xa')](),controller['getSmtp']);router[_0xe344('0x9')]('/:id/interactions',auth['isAuthenticated'](),controller['getInteractions']);router[_0xe344('0x9')]('/:id/applications',auth[_0xe344('0xa')](),controller[_0xe344('0x13')]);router[_0xe344('0x9')]('/:id/messages',auth[_0xe344('0xa')](),controller[_0xe344('0x14')]);router['get']('/:id/verify',auth['isAuthenticated'](),controller[_0xe344('0x15')]);router['get']('/:id/users',auth['isAuthenticated'](),controller[_0xe344('0x16')]);router[_0xe344('0x17')]('/:id/dispositions',auth[_0xe344('0xa')](),controller[_0xe344('0x18')]);router[_0xe344('0x17')](_0xe344('0x11'),auth[_0xe344('0xa')](),controller[_0xe344('0x19')]);router[_0xe344('0x17')]('/',auth[_0xe344('0xa')](),controller[_0xe344('0x1a')]);router[_0xe344('0x17')]('/:id/in_servers',auth[_0xe344('0xa')](),controller[_0xe344('0x1b')]);router[_0xe344('0x17')](_0xe344('0x1c'),auth[_0xe344('0xa')](),controller[_0xe344('0x1d')]);router[_0xe344('0x17')](_0xe344('0x1e'),auth[_0xe344('0xa')](),controller[_0xe344('0x1f')]);router['post'](_0xe344('0x20'),auth[_0xe344('0xa')](),controller[_0xe344('0x21')]);router[_0xe344('0x17')](_0xe344('0x22'),auth[_0xe344('0xa')](),controller[_0xe344('0x23')]);router['post']('/:id/users',auth['isAuthenticated'](),controller[_0xe344('0x24')]);router['put']('/:id',auth[_0xe344('0xa')](),controller[_0xe344('0x25')]);router[_0xe344('0x26')](_0xe344('0xf'),auth[_0xe344('0xa')](),controller['removeDispositions']);router['delete'](_0xe344('0x11'),auth[_0xe344('0xa')](),controller[_0xe344('0x27')]);router[_0xe344('0x26')]('/:id/in_servers',auth[_0xe344('0xa')](),controller[_0xe344('0x28')]);router[_0xe344('0x26')]('/:id/out_servers',auth['isAuthenticated'](),controller[_0xe344('0x29')]);router[_0xe344('0x26')](_0xe344('0x2a'),auth[_0xe344('0xa')](),controller[_0xe344('0x2b')]);router[_0xe344('0x26')](_0xe344('0x2c'),auth[_0xe344('0xa')](),controller['removeAgents']);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x078c=['INTEGER','UNSIGNED','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}<br/>Subject\x20:\x20{{message.subject}}','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','setDataValue','mandatoryDisposition','sequelize','STRING','BOOLEAN','TEXT','Arial,Helvetica,sans-serif'];(function(_0x40b5ac,_0x22f301){var _0x7e7e4e=function(_0x512267){while(--_0x512267){_0x40b5ac['push'](_0x40b5ac['shift']());}};_0x7e7e4e(++_0x22f301);}(_0x078c,0x19f));var _0xc078=function(_0x48a96f,_0x530059){_0x48a96f=_0x48a96f-0x0;var _0x3ff3ef=_0x078c[_0x48a96f];return _0x3ff3ef;};'use strict';var Sequelize=require(_0xc078('0x0'));module['exports']={'description':{'type':Sequelize[_0xc078('0x1')]},'name':{'type':Sequelize[_0xc078('0x1')],'allowNull':![]},'service':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'email':{'type':Sequelize[_0xc078('0x1')],'validate':{'isEmail':!![]}},'active':{'type':Sequelize[_0xc078('0x2')],'defaultValue':!![]},'key':{'type':Sequelize[_0xc078('0x1')],'allowNull':![]},'template':{'type':Sequelize[_0xc078('0x3')]},'markAsUnread':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'fontFamily':{'type':Sequelize[_0xc078('0x1')],'allowNull':![],'defaultValue':_0xc078('0x4')},'fontSize':{'type':Sequelize[_0xc078('0x5')](0x2)[_0xc078('0x6')],'defaultValue':0xd,'validate':{'min':0x8,'max':0x48}},'notificationTemplate':{'type':Sequelize[_0xc078('0x3')],'defaultValue':function(){return _0xc078('0x7');}},'notificationSound':{'type':Sequelize[_0xc078('0x2')],'defaultValue':!![]},'notificationShake':{'type':Sequelize[_0xc078('0x2')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0xc078('0x2')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0xc078('0x5')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'mandatoryDispositionPauseId':{'type':Sequelize['INTEGER'],'allowNull':!![],'defaultValue':null,'comment':_0xc078('0x8')},'mandatoryDisposition':{'type':Sequelize[_0xc078('0x2')],'defaultValue':![],'comment':_0xc078('0x9'),'set':function(_0x3798bb){if(!_0x3798bb)this[_0xc078('0xa')]('mandatoryDispositionPauseId',null);this['setDataValue'](_0xc078('0xb'),_0x3798bb);}}};
\ No newline at end of file
+var _0x1e69=['mandatoryDispositionPauseId','exports','STRING','BOOLEAN','TEXT','Arial,Helvetica,sans-serif','INTEGER','UNSIGNED','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}<br/>Subject\x20:\x20{{message.subject}}','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','setDataValue'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x1e69,0x85));var _0x91e6=function(_0x281677,_0x2a8e0a){_0x281677=_0x281677-0x0;var _0x387bc8=_0x1e69[_0x281677];return _0x387bc8;};'use strict';var Sequelize=require('sequelize');module[_0x91e6('0x0')]={'description':{'type':Sequelize[_0x91e6('0x1')]},'name':{'type':Sequelize[_0x91e6('0x1')],'allowNull':![]},'service':{'type':Sequelize[_0x91e6('0x2')],'defaultValue':![]},'email':{'type':Sequelize['STRING'],'validate':{'isEmail':!![]}},'active':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'key':{'type':Sequelize[_0x91e6('0x1')],'allowNull':![]},'template':{'type':Sequelize[_0x91e6('0x3')]},'markAsUnread':{'type':Sequelize[_0x91e6('0x2')],'defaultValue':![]},'fontFamily':{'type':Sequelize[_0x91e6('0x1')],'allowNull':![],'defaultValue':_0x91e6('0x4')},'fontSize':{'type':Sequelize[_0x91e6('0x5')](0x2)[_0x91e6('0x6')],'defaultValue':0xd,'validate':{'min':0x8,'max':0x48}},'notificationTemplate':{'type':Sequelize[_0x91e6('0x3')],'defaultValue':function(){return _0x91e6('0x7');}},'notificationSound':{'type':Sequelize[_0x91e6('0x2')],'defaultValue':!![]},'notificationShake':{'type':Sequelize[_0x91e6('0x2')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize[_0x91e6('0x5')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize[_0x91e6('0x2')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0x91e6('0x5')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'mandatoryDispositionPauseId':{'type':Sequelize[_0x91e6('0x5')],'allowNull':!![],'defaultValue':null,'comment':_0x91e6('0x8')},'mandatoryDisposition':{'type':Sequelize[_0x91e6('0x2')],'defaultValue':![],'comment':'Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','set':function(_0x159280){if(!_0x159280)this[_0x91e6('0x9')](_0x91e6('0xa'),null);this[_0x91e6('0x9')]('mandatoryDisposition',_0x159280);}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x49f2=['name','send','index','MailServerIn','Imap','MailServerOut','Smtp','Pause','mandatoryDispositionPause','MailAccount','rawAttributes','fieldName','type','model','map','query','keys','filters','intersection','attributes','length','hasOwnProperty','nolimit','sort','pick','where','VIRTUAL','filter','merge','options','includeAll','findAll','catch','show','params','fields','update','find','body','addDisposition','MailAccountId','Disposition','create','order','include','rows','removeDispositions','ids','addAnswer','CannedAnswer','removeAnswers','key','email','ListId','isNil','cservice','cauthentication','user','cuser','password','pass','cpassword','authentication','port','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','get','UserProfileSection','userProfileId','getImap','findOne','removeImap','setImap','getSmtp','addSmtp','setSmtp','addInteraction','getInteractions','MailInteraction','CmContact','Owner','internal','Tags','color','tag','addApplications','sequelize','transaction','ISOLATION_LEVELS','MailApplication','bulkCreate','findAndCountAll','priority','finally','getApplications','getMessages','MailMessage','split','YYYY-MM-DD\x20HH:mm:ss','inlineCss','true','CmList','List','DESC','from','attachments','join','root','server/files/attachments','basename','service','host','secure','auth','SendMail','List\x20not\x20found','Contacts','messageId','subject','attach','out','format','Interaction','Messages','verifySmtp','VerifySmtp','ValidationError','You\x20can\x27t\x20remove\x20the\x20mail\x20service\x20account','omit','emit','removeAgents','userMailAccount:remove','getAgents','User','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','util','path','sox','ejs','fs-extra','lodash','jsforce','desk.js','to-csv','querystring','html-to-text','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','defaults','redis','localhost','socket.io-emitter','./mailAccount.socket','register','jayson/promise','client','http','request','then','info','request\x20sent','MailAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','MailAccount,\x20%s,\x20%s','message','result','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','MailAccounts','UserProfileResource','destroy','sendStatus','stack'];(function(_0x361d3f,_0x3be2aa){var _0x320229=function(_0x138319){while(--_0x138319){_0x361d3f['push'](_0x361d3f['shift']());}};_0x320229(++_0x3be2aa);}(_0x49f2,0x86));var _0x249f=function(_0x41b48e,_0x73a410){_0x41b48e=_0x41b48e-0x0;var _0x462306=_0x49f2[_0x41b48e];return _0x462306;};'use strict';var emlformat=require(_0x249f('0x0'));var rimraf=require(_0x249f('0x1'));var zipdir=require(_0x249f('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x249f('0x3'));var moment=require(_0x249f('0x4'));var BPromise=require(_0x249f('0x5'));var Mustache=require('mustache');var util=require(_0x249f('0x6'));var path=require(_0x249f('0x7'));var sox=require(_0x249f('0x8'));var csv=require('to-csv');var ejs=require(_0x249f('0x9'));var fs=require('fs');var fs_extra=require(_0x249f('0xa'));var _=require(_0x249f('0xb'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x249f('0xc'));var deskjs=require(_0x249f('0xd'));var toCsv=require(_0x249f('0xe'));var querystring=require(_0x249f('0xf'));var Papa=require('papaparse');var htmlToText=require(_0x249f('0x10'));var juice=require('juice');var Redis=require(_0x249f('0x11'));var authService=require(_0x249f('0x12'));var qs=require(_0x249f('0x13'));var as=require(_0x249f('0x14'));var hardwareService=require(_0x249f('0x15'));var logger=require(_0x249f('0x16'))(_0x249f('0x17'));var utils=require(_0x249f('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0x249f('0x19'));var db=require('../../mysqldb')['db'];config['redis']=_[_0x249f('0x1a')](config[_0x249f('0x1b')],{'host':_0x249f('0x1c'),'port':0x18eb});var socket=require(_0x249f('0x1d'))(new Redis(config[_0x249f('0x1b')]));require(_0x249f('0x1e'))[_0x249f('0x1f')](socket);var jayson=require(_0x249f('0x20'));var client=jayson[_0x249f('0x21')][_0x249f('0x22')]({'port':0x232b});function respondWithRpcPromise(_0x3031f2,_0x2c9cdd,_0x3716e6,_0x270b71){return new BPromise(function(_0x527f64,_0x4158ef){var _0x16edb5=_0x270b71||client;return _0x16edb5[_0x249f('0x23')](_0x3031f2,_0x3716e6)[_0x249f('0x24')](function(_0x5e6395){logger[_0x249f('0x25')]('MailAccount,\x20%s,\x20%s',_0x2c9cdd,_0x249f('0x26'));logger['debug'](_0x249f('0x27'),_0x2c9cdd,'request\x20sent',JSON[_0x249f('0x28')](_0x5e6395));if(_0x5e6395['error']){if(_0x5e6395[_0x249f('0x29')][_0x249f('0x2a')]===0x1f4){logger[_0x249f('0x29')](_0x249f('0x2b'),_0x2c9cdd,_0x5e6395[_0x249f('0x29')][_0x249f('0x2c')]);return _0x4158ef(_0x5e6395[_0x249f('0x29')][_0x249f('0x2c')]);}logger['error'](_0x249f('0x2b'),_0x2c9cdd,_0x5e6395[_0x249f('0x29')][_0x249f('0x2c')]);return _0x527f64(_0x5e6395[_0x249f('0x29')]['message']);}else{logger['info'](_0x249f('0x2b'),_0x2c9cdd,'request\x20sent');_0x527f64(_0x5e6395[_0x249f('0x2d')][_0x249f('0x2c')]);}})['catch'](function(_0x1f1ca3){logger[_0x249f('0x29')](_0x249f('0x2b'),_0x2c9cdd,_0x1f1ca3);_0x4158ef(_0x1f1ca3);});});}function respondWithStatusCode(_0x59df0f,_0x45db7f){_0x45db7f=_0x45db7f||0xcc;return function(_0x3f4971){if(_0x3f4971){return _0x59df0f['sendStatus'](_0x45db7f);}return _0x59df0f[_0x249f('0x2e')](_0x45db7f)[_0x249f('0x2f')]();};}function respondWithResult(_0x34b477,_0x3de798){_0x3de798=_0x3de798||0xc8;return function(_0x389fd7){if(_0x389fd7){return _0x34b477[_0x249f('0x2e')](_0x3de798)[_0x249f('0x30')](_0x389fd7);}};}function respondWithFilteredResult(_0x276017,_0x44d41a){return function(_0x36b383){if(_0x36b383){var _0xfa7e9f=typeof _0x44d41a[_0x249f('0x31')]===_0x249f('0x32')&&typeof _0x44d41a[_0x249f('0x33')]===_0x249f('0x32');var _0x197693=_0x36b383[_0x249f('0x34')];var _0x5867ea=_0xfa7e9f?0x0:_0x44d41a[_0x249f('0x31')];var _0x6ff748=_0xfa7e9f?_0x36b383[_0x249f('0x34')]:_0x44d41a['offset']+_0x44d41a['limit'];var _0x4d1276;if(_0x6ff748>=_0x197693){_0x6ff748=_0x197693;_0x4d1276=0xc8;}else{_0x4d1276=0xce;}_0x276017[_0x249f('0x2e')](_0x4d1276);return _0x276017[_0x249f('0x35')](_0x249f('0x36'),_0x5867ea+'-'+_0x6ff748+'/'+_0x197693)['json'](_0x36b383);}return null;};}function patchUpdates(_0x173bd5){return function(_0x1917e4){try{jsonpatch[_0x249f('0x37')](_0x1917e4,_0x173bd5,!![]);}catch(_0x529c71){return BPromise[_0x249f('0x38')](_0x529c71);}return _0x1917e4[_0x249f('0x39')]();};}function saveUpdates(_0x159982,_0x49c98e){return function(_0x661acc){if(_0x661acc){return _0x661acc['update'](_0x159982)[_0x249f('0x24')](function(_0xa9ec50){return _0xa9ec50;});}return null;};}function removeEntity(_0x5171b1,_0x2a57a5){return function(_0x25b8f4){if(_0x25b8f4){return _0x25b8f4['destroy']()[_0x249f('0x24')](function(){var _0x130967=_0x25b8f4['get']({'plain':!![]});var _0x1f91ab=_0x249f('0x3a');return db[_0x249f('0x3b')][_0x249f('0x3c')]({'where':{'type':_0x1f91ab,'resourceId':_0x130967['id']}})[_0x249f('0x24')](function(){return _0x25b8f4;});})[_0x249f('0x24')](function(){_0x5171b1['status'](0xcc)[_0x249f('0x2f')]();});}};}function handleEntityNotFound(_0x5f55b1,_0x38bc46){return function(_0x4bd416){if(!_0x4bd416){_0x5f55b1[_0x249f('0x3d')](0x194);}return _0x4bd416;};}function handleError(_0x11d465,_0x367e95){_0x367e95=_0x367e95||0x1f4;return function(_0x438cea){logger['error'](_0x438cea[_0x249f('0x3e')]);if(_0x438cea[_0x249f('0x3f')]){delete _0x438cea[_0x249f('0x3f')];}_0x11d465['status'](_0x367e95)[_0x249f('0x40')](_0x438cea);};}exports[_0x249f('0x41')]=function(_0x24096f,_0x69bb52){var _0xc1c23b={'include':[{'model':db[_0x249f('0x42')],'as':_0x249f('0x43')},{'model':db[_0x249f('0x44')],'as':_0x249f('0x45')},{'model':db[_0x249f('0x46')],'as':_0x249f('0x47')}]},_0x4a1dc7={},_0x4d60ce={'count':0x0,'rows':[]};var _0x39ee56=_['map'](db[_0x249f('0x48')][_0x249f('0x49')],function(_0x1fce2e){return{'name':_0x1fce2e[_0x249f('0x4a')],'type':_0x1fce2e[_0x249f('0x4b')]['key']};});_0x4a1dc7[_0x249f('0x4c')]=_[_0x249f('0x4d')](_0x39ee56,_0x249f('0x3f'));_0x4a1dc7[_0x249f('0x4e')]=_[_0x249f('0x4f')](_0x24096f['query']);_0x4a1dc7[_0x249f('0x50')]=_[_0x249f('0x51')](_0x4a1dc7[_0x249f('0x4c')],_0x4a1dc7[_0x249f('0x4e')]);_0xc1c23b[_0x249f('0x52')]=_[_0x249f('0x51')](_0x4a1dc7[_0x249f('0x4c')],qs['fields'](_0x24096f['query']['fields']));_0xc1c23b['attributes']=_0xc1c23b[_0x249f('0x52')][_0x249f('0x53')]?_0xc1c23b[_0x249f('0x52')]:_0x4a1dc7['model'];if(!_0x24096f[_0x249f('0x4e')][_0x249f('0x54')](_0x249f('0x55'))){_0xc1c23b[_0x249f('0x33')]=qs['limit'](_0x24096f[_0x249f('0x4e')][_0x249f('0x33')]);_0xc1c23b[_0x249f('0x31')]=qs['offset'](_0x24096f[_0x249f('0x4e')]['offset']);}_0xc1c23b['order']=qs[_0x249f('0x56')](_0x24096f['query']['sort']);_0xc1c23b['where']=qs[_0x249f('0x50')](_[_0x249f('0x57')](_0x24096f[_0x249f('0x4e')],_0x4a1dc7['filters']),_0x39ee56);if(_0x24096f[_0x249f('0x4e')]['filter']){_0xc1c23b[_0x249f('0x58')]=_['merge'](_0xc1c23b[_0x249f('0x58')],{'$or':_['map'](_0x39ee56,function(_0x14fdf6){if(_0x14fdf6[_0x249f('0x4b')]!==_0x249f('0x59')){var _0x1453db={};_0x1453db[_0x14fdf6[_0x249f('0x3f')]]={'$like':'%'+_0x24096f[_0x249f('0x4e')][_0x249f('0x5a')]+'%'};return _0x1453db;}})});}_0xc1c23b=_[_0x249f('0x5b')]({},_0xc1c23b,_0x24096f[_0x249f('0x5c')]);var _0x139fe9={'where':_0xc1c23b[_0x249f('0x58')]};return db['MailAccount'][_0x249f('0x34')](_0x139fe9)[_0x249f('0x24')](function(_0x45acfb){_0x4d60ce['count']=_0x45acfb;if(_0x24096f[_0x249f('0x4e')][_0x249f('0x5d')]){_0xc1c23b['include']=[{'all':!![]}];}return db[_0x249f('0x48')][_0x249f('0x5e')](_0xc1c23b);})['then'](function(_0x381ccb){_0x4d60ce['rows']=_0x381ccb;return _0x4d60ce;})[_0x249f('0x24')](respondWithFilteredResult(_0x69bb52,_0xc1c23b))[_0x249f('0x5f')](handleError(_0x69bb52,null));};exports[_0x249f('0x60')]=function(_0x3b442b,_0x297f56){var _0x35fe8a={'raw':![],'where':{'id':_0x3b442b[_0x249f('0x61')]['id']},'include':[{'model':db[_0x249f('0x42')],'as':'Imap'},{'model':db['MailServerOut'],'as':_0x249f('0x45')},{'model':db[_0x249f('0x46')],'as':'mandatoryDispositionPause'}]},_0x22c7b0={};_0x22c7b0[_0x249f('0x4c')]=_[_0x249f('0x4f')](db[_0x249f('0x48')][_0x249f('0x49')]);_0x22c7b0[_0x249f('0x4e')]=_[_0x249f('0x4f')](_0x3b442b[_0x249f('0x4e')]);_0x22c7b0[_0x249f('0x50')]=_[_0x249f('0x51')](_0x22c7b0[_0x249f('0x4c')],_0x22c7b0[_0x249f('0x4e')]);_0x35fe8a['attributes']=_[_0x249f('0x51')](_0x22c7b0[_0x249f('0x4c')],qs[_0x249f('0x62')](_0x3b442b[_0x249f('0x4e')][_0x249f('0x62')]));_0x35fe8a['attributes']=_0x35fe8a[_0x249f('0x52')]['length']?_0x35fe8a[_0x249f('0x52')]:_0x22c7b0[_0x249f('0x4c')];if(_0x3b442b['query'][_0x249f('0x5d')]){_0x35fe8a['include']=[{'all':!![]}];}_0x35fe8a=_['merge']({},_0x35fe8a,_0x3b442b['options']);return db['MailAccount']['find'](_0x35fe8a)[_0x249f('0x24')](handleEntityNotFound(_0x297f56,null))[_0x249f('0x24')](respondWithResult(_0x297f56,null))[_0x249f('0x5f')](handleError(_0x297f56,null));};exports[_0x249f('0x63')]=function(_0xdbb059,_0x516453){if(_0xdbb059['body']['id']){delete _0xdbb059['body']['id'];}return db['MailAccount'][_0x249f('0x64')]({'where':{'id':_0xdbb059['params']['id']},'include':[{'model':db[_0x249f('0x42')],'as':_0x249f('0x43')},{'model':db[_0x249f('0x44')],'as':_0x249f('0x45')},{'model':db[_0x249f('0x46')],'as':'mandatoryDispositionPause'}]})[_0x249f('0x24')](handleEntityNotFound(_0x516453,null))['then'](saveUpdates(_0xdbb059[_0x249f('0x65')],null))[_0x249f('0x24')](function(_0x23b40e){if(_0x23b40e&&_0xdbb059[_0x249f('0x65')][_0x249f('0x43')]){return db['MailServerIn']['update'](_0xdbb059['body'][_0x249f('0x43')],{'where':{'MailAccountId':_0x23b40e['id']}})[_0x249f('0x24')](function(){return _0x23b40e;});}return _0x23b40e;})['then'](function(_0x49d712){if(_0x49d712&&_0xdbb059['body']['Smtp']){return db[_0x249f('0x44')][_0x249f('0x63')](_0xdbb059[_0x249f('0x65')][_0x249f('0x45')],{'where':{'MailAccountId':_0x49d712['id']}})['then'](function(){return _0x49d712;});}return _0x49d712;})[_0x249f('0x24')](respondWithResult(_0x516453,null))[_0x249f('0x5f')](handleError(_0x516453,null));};exports['describe']=function(_0x297963,_0x1eb2ca){return db[_0x249f('0x48')]['describe']()[_0x249f('0x24')](respondWithResult(_0x1eb2ca,null))[_0x249f('0x5f')](handleError(_0x1eb2ca,null));};exports[_0x249f('0x66')]=function(_0x201fd2,_0x4d08d2,_0x1b7203){if(_0x201fd2['body']['id']){delete _0x201fd2[_0x249f('0x65')]['id'];}return db[_0x249f('0x48')]['find']({'where':{'id':_0x201fd2[_0x249f('0x61')]['id']}})[_0x249f('0x24')](handleEntityNotFound(_0x4d08d2,null))[_0x249f('0x24')](function(_0x1dbee2){if(_0x1dbee2){_0x201fd2[_0x249f('0x65')][_0x249f('0x67')]=_0x1dbee2['id'];return db[_0x249f('0x68')][_0x249f('0x69')](_0x201fd2[_0x249f('0x65')]);}})[_0x249f('0x24')](respondWithResult(_0x4d08d2,null))[_0x249f('0x5f')](handleError(_0x4d08d2,null));};exports['getDispositions']=function(_0x3c53f9,_0x1df8f2,_0x3a0049){var _0x3b7730={'raw':![],'where':{}};var _0x3be565={};var _0x4748c0={'count':0x0,'rows':[]};return db['MailAccount']['findOne']({'where':{'id':_0x3c53f9[_0x249f('0x61')]['id']}})[_0x249f('0x24')](handleEntityNotFound(_0x1df8f2,null))[_0x249f('0x24')](function(_0x52a8b7){if(_0x52a8b7){_0x3be565[_0x249f('0x4c')]=_['keys'](db[_0x249f('0x68')]['rawAttributes']);_0x3be565[_0x249f('0x4e')]=_[_0x249f('0x4f')](_0x3c53f9[_0x249f('0x4e')]);_0x3be565[_0x249f('0x50')]=_['intersection'](_0x3be565[_0x249f('0x4c')],_0x3be565['query']);_0x3b7730[_0x249f('0x52')]=_['intersection'](_0x3be565['model'],qs[_0x249f('0x62')](_0x3c53f9[_0x249f('0x4e')]['fields']));_0x3b7730[_0x249f('0x52')]=_0x3b7730[_0x249f('0x52')][_0x249f('0x53')]?_0x3b7730[_0x249f('0x52')]:_0x3be565['model'];if(!_0x3c53f9[_0x249f('0x4e')]['hasOwnProperty'](_0x249f('0x55'))){_0x3b7730[_0x249f('0x33')]=qs[_0x249f('0x33')](_0x3c53f9[_0x249f('0x4e')][_0x249f('0x33')]);_0x3b7730[_0x249f('0x31')]=qs['offset'](_0x3c53f9['query'][_0x249f('0x31')]);}_0x3b7730[_0x249f('0x6a')]=qs['sort'](_0x3c53f9['query']['sort']);_0x3b7730[_0x249f('0x58')]=qs['filters'](_[_0x249f('0x57')](_0x3c53f9[_0x249f('0x4e')],_0x3be565[_0x249f('0x50')]));_0x3b7730[_0x249f('0x58')]['MailAccountId']=_0x52a8b7['id'];if(_0x3c53f9['query'][_0x249f('0x5a')]){_0x3b7730[_0x249f('0x58')]=_['merge'](_0x3b7730[_0x249f('0x58')],{'$or':_[_0x249f('0x4d')](_0x3b7730[_0x249f('0x52')],function(_0x3e039a){var _0x4634db={};_0x4634db[_0x3e039a]={'$like':'%'+_0x3c53f9[_0x249f('0x4e')][_0x249f('0x5a')]+'%'};return _0x4634db;})});}_0x3b7730=_[_0x249f('0x5b')]({},_0x3b7730,_0x3c53f9[_0x249f('0x5c')]);return db[_0x249f('0x68')]['count']({'where':_0x3b7730[_0x249f('0x58')]})[_0x249f('0x24')](function(_0x154c1b){_0x4748c0[_0x249f('0x34')]=_0x154c1b;if(_0x3c53f9['query'][_0x249f('0x5d')]){_0x3b7730[_0x249f('0x6b')]=[{'all':!![]}];}return db['Disposition'][_0x249f('0x5e')](_0x3b7730);})[_0x249f('0x24')](function(_0x53ff75){_0x4748c0[_0x249f('0x6c')]=_0x53ff75;return _0x4748c0;});}})[_0x249f('0x24')](respondWithFilteredResult(_0x1df8f2,_0x3b7730))[_0x249f('0x5f')](handleError(_0x1df8f2,null));};exports['removeDispositions']=function(_0x2caac4,_0x2fefbf,_0x980079){return db[_0x249f('0x48')]['find']({'where':{'id':_0x2caac4[_0x249f('0x61')]['id']}})['then'](handleEntityNotFound(_0x2fefbf,null))[_0x249f('0x24')](function(_0x4520b9){if(_0x4520b9){return _0x4520b9[_0x249f('0x6d')](_0x2caac4[_0x249f('0x4e')][_0x249f('0x6e')]);}})[_0x249f('0x24')](respondWithStatusCode(_0x2fefbf,null))[_0x249f('0x5f')](handleError(_0x2fefbf,null));};exports[_0x249f('0x6f')]=function(_0x4a3fde,_0x5d5515,_0x10d038){if(_0x4a3fde['body']['id']){delete _0x4a3fde[_0x249f('0x65')]['id'];}return db[_0x249f('0x48')]['find']({'where':{'id':_0x4a3fde[_0x249f('0x61')]['id']}})[_0x249f('0x24')](handleEntityNotFound(_0x5d5515,null))[_0x249f('0x24')](function(_0x45e52c){if(_0x45e52c){_0x4a3fde[_0x249f('0x65')]['MailAccountId']=_0x45e52c['id'];return db[_0x249f('0x70')][_0x249f('0x69')](_0x4a3fde['body']);}})[_0x249f('0x24')](respondWithResult(_0x5d5515,null))[_0x249f('0x5f')](handleError(_0x5d5515,null));};exports['getAnswers']=function(_0xd0b5fc,_0x261c47,_0x454801){var _0x1e1965={'raw':![],'where':{}};var _0x4218d9={};var _0x14e462={'count':0x0,'rows':[]};return db[_0x249f('0x48')]['findOne']({'where':{'id':_0xd0b5fc[_0x249f('0x61')]['id']}})[_0x249f('0x24')](handleEntityNotFound(_0x261c47,null))[_0x249f('0x24')](function(_0x7395c3){if(_0x7395c3){_0x4218d9['model']=_[_0x249f('0x4f')](db['CannedAnswer']['rawAttributes']);_0x4218d9[_0x249f('0x4e')]=_[_0x249f('0x4f')](_0xd0b5fc['query']);_0x4218d9[_0x249f('0x50')]=_[_0x249f('0x51')](_0x4218d9[_0x249f('0x4c')],_0x4218d9[_0x249f('0x4e')]);_0x1e1965[_0x249f('0x52')]=_[_0x249f('0x51')](_0x4218d9[_0x249f('0x4c')],qs[_0x249f('0x62')](_0xd0b5fc[_0x249f('0x4e')][_0x249f('0x62')]));_0x1e1965[_0x249f('0x52')]=_0x1e1965[_0x249f('0x52')]['length']?_0x1e1965[_0x249f('0x52')]:_0x4218d9[_0x249f('0x4c')];if(!_0xd0b5fc[_0x249f('0x4e')]['hasOwnProperty'](_0x249f('0x55'))){_0x1e1965[_0x249f('0x33')]=qs[_0x249f('0x33')](_0xd0b5fc['query'][_0x249f('0x33')]);_0x1e1965['offset']=qs[_0x249f('0x31')](_0xd0b5fc[_0x249f('0x4e')][_0x249f('0x31')]);}_0x1e1965[_0x249f('0x6a')]=qs[_0x249f('0x56')](_0xd0b5fc[_0x249f('0x4e')]['sort']);_0x1e1965[_0x249f('0x58')]=qs[_0x249f('0x50')](_['pick'](_0xd0b5fc[_0x249f('0x4e')],_0x4218d9[_0x249f('0x50')]));_0x1e1965[_0x249f('0x58')][_0x249f('0x67')]=_0x7395c3['id'];if(_0xd0b5fc['query'][_0x249f('0x5a')]){_0x1e1965['where']=_[_0x249f('0x5b')](_0x1e1965[_0x249f('0x58')],{'$or':_[_0x249f('0x4d')](_0x1e1965[_0x249f('0x52')],function(_0x5b8a94){var _0x16cddb={};_0x16cddb[_0x5b8a94]={'$like':'%'+_0xd0b5fc[_0x249f('0x4e')][_0x249f('0x5a')]+'%'};return _0x16cddb;})});}_0x1e1965=_[_0x249f('0x5b')]({},_0x1e1965,_0xd0b5fc[_0x249f('0x5c')]);return db[_0x249f('0x70')][_0x249f('0x34')]({'where':_0x1e1965[_0x249f('0x58')]})[_0x249f('0x24')](function(_0xfd6c52){_0x14e462[_0x249f('0x34')]=_0xfd6c52;if(_0xd0b5fc[_0x249f('0x4e')]['includeAll']){_0x1e1965['include']=[{'all':!![]}];}return db['CannedAnswer'][_0x249f('0x5e')](_0x1e1965);})[_0x249f('0x24')](function(_0x3718b1){_0x14e462[_0x249f('0x6c')]=_0x3718b1;return _0x14e462;});}})['then'](respondWithFilteredResult(_0x261c47,_0x1e1965))[_0x249f('0x5f')](handleError(_0x261c47,null));};exports[_0x249f('0x71')]=function(_0x2062c2,_0x3a997b,_0x4e6288){return db['MailAccount'][_0x249f('0x64')]({'where':{'id':_0x2062c2[_0x249f('0x61')]['id']}})[_0x249f('0x24')](handleEntityNotFound(_0x3a997b,null))[_0x249f('0x24')](function(_0x3a60f4){if(_0x3a60f4){return _0x3a60f4[_0x249f('0x71')](_0x2062c2['query'][_0x249f('0x6e')]);}})[_0x249f('0x24')](respondWithStatusCode(_0x3a997b,null))[_0x249f('0x5f')](handleError(_0x3a997b,null));};exports[_0x249f('0x69')]=function(_0x334a93,_0x1a6e13){var _0x37cfe6={'name':_0x334a93['body'][_0x249f('0x3f')],'key':_0x334a93[_0x249f('0x65')][_0x249f('0x72')],'email':_0x334a93['body'][_0x249f('0x73')],'ListId':_0x334a93[_0x249f('0x65')][_0x249f('0x74')],'active':!_[_0x249f('0x75')](_0x334a93[_0x249f('0x65')]['active'])?_0x334a93[_0x249f('0x65')]['active']:!![],'description':_0x334a93['body']['description']||null,'Imap':{},'Smtp':{}};if(_[_0x249f('0x75')](_0x334a93['body'][_0x249f('0x76')])){if(_0x334a93['body'][_0x249f('0x77')]){_0x37cfe6[_0x249f('0x43')]['user']=_0x37cfe6[_0x249f('0x45')][_0x249f('0x78')]=_0x334a93[_0x249f('0x65')][_0x249f('0x79')];_0x37cfe6[_0x249f('0x43')][_0x249f('0x7a')]=_0x37cfe6[_0x249f('0x45')][_0x249f('0x7b')]=_0x334a93[_0x249f('0x65')][_0x249f('0x7c')];}else{_0x37cfe6[_0x249f('0x43')][_0x249f('0x7d')]=_0x37cfe6[_0x249f('0x45')][_0x249f('0x7d')]=![];}_0x37cfe6[_0x249f('0x43')]['host']=_0x334a93[_0x249f('0x65')][_0x249f('0x43')]['host'];_0x37cfe6[_0x249f('0x43')][_0x249f('0x7e')]=_0x334a93[_0x249f('0x65')][_0x249f('0x43')][_0x249f('0x7e')];_0x37cfe6[_0x249f('0x45')]['host']=_0x334a93[_0x249f('0x65')]['Smtp']['host'];_0x37cfe6[_0x249f('0x45')][_0x249f('0x7e')]=_0x334a93[_0x249f('0x65')]['Smtp'][_0x249f('0x7e')];}else{_0x37cfe6[_0x249f('0x43')]['service']=_0x37cfe6[_0x249f('0x45')]['service']=_0x334a93[_0x249f('0x65')]['cservice'];_0x37cfe6[_0x249f('0x43')]['user']=_0x37cfe6['Smtp']['user']=_0x334a93[_0x249f('0x65')][_0x249f('0x79')];_0x37cfe6['Imap']['password']=_0x37cfe6[_0x249f('0x45')][_0x249f('0x7b')]=_0x334a93[_0x249f('0x65')][_0x249f('0x7c')];}return db[_0x249f('0x48')][_0x249f('0x69')](_0x37cfe6,{'include':[{'model':db[_0x249f('0x44')],'as':_0x249f('0x45')},{'model':db[_0x249f('0x42')],'as':'Imap'}]})[_0x249f('0x24')](function(_0x12a81b){var _0x2929fc=_0x334a93[_0x249f('0x78')]['get']({'plain':!![]});if(!_0x2929fc)throw new Error(_0x249f('0x7f'));if(_0x2929fc[_0x249f('0x80')]===_0x249f('0x78')){var _0x487e14=_0x12a81b[_0x249f('0x81')]({'plain':!![]});return db[_0x249f('0x82')][_0x249f('0x64')]({'where':{'name':_0x249f('0x3a'),'userProfileId':_0x2929fc[_0x249f('0x83')]},'raw':!![]})[_0x249f('0x24')](function(_0x24ea2f){if(_0x24ea2f&&_0x24ea2f['autoAssociation']===0x0){return db[_0x249f('0x3b')][_0x249f('0x69')]({'name':_0x487e14[_0x249f('0x3f')],'resourceId':_0x487e14['id'],'type':_0x24ea2f[_0x249f('0x3f')],'sectionId':_0x24ea2f['id']},{})[_0x249f('0x24')](function(){return _0x12a81b;});}else{return _0x12a81b;}})['catch'](function(_0x46906b){logger[_0x249f('0x29')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x46906b);throw _0x46906b;});}return _0x12a81b;})[_0x249f('0x24')](respondWithResult(_0x1a6e13,0xc9))['catch'](handleError(_0x1a6e13,null));};exports[_0x249f('0x84')]=function(_0x3edfd5,_0x5df86e,_0x301341){return db[_0x249f('0x48')][_0x249f('0x85')]({'where':{'id':_0x3edfd5[_0x249f('0x61')]['id']}})['then'](handleEntityNotFound(_0x5df86e,null))['then'](function(_0x2bb948){if(_0x2bb948){return _0x2bb948[_0x249f('0x84')]();}return null;})[_0x249f('0x24')](respondWithResult(_0x5df86e,null))[_0x249f('0x5f')](handleError(_0x5df86e,null));};exports['addImap']=function(_0x584e51,_0x14fcb8,_0x1b5a81){if(_0x584e51['body']['id']){delete _0x584e51[_0x249f('0x65')]['id'];}return db[_0x249f('0x48')][_0x249f('0x64')]({'where':{'id':_0x584e51[_0x249f('0x61')]['id']}})[_0x249f('0x24')](handleEntityNotFound(_0x14fcb8,null))[_0x249f('0x24')](function(_0x519588){if(_0x519588){_0x584e51[_0x249f('0x65')][_0x249f('0x67')]=_0x519588['id'];return db[_0x249f('0x42')]['create'](_0x584e51[_0x249f('0x65')]);}})['then'](respondWithResult(_0x14fcb8,null))[_0x249f('0x5f')](handleError(_0x14fcb8,null));};exports[_0x249f('0x86')]=function(_0x4b62f2,_0x3bcfeb,_0x36c8a2){return db['MailAccount']['findOne']({'where':{'id':_0x4b62f2[_0x249f('0x61')]['id']}})[_0x249f('0x24')](handleEntityNotFound(_0x3bcfeb,null))['then'](function(_0x4c5437){if(_0x4c5437){return _0x4c5437[_0x249f('0x87')](null);}return null;})[_0x249f('0x24')](respondWithStatusCode(_0x3bcfeb,null))[_0x249f('0x5f')](handleError(_0x3bcfeb,null));};exports[_0x249f('0x88')]=function(_0x58d104,_0x1e52c8,_0xfe4011){return db[_0x249f('0x48')][_0x249f('0x85')]({'where':{'id':_0x58d104['params']['id']}})[_0x249f('0x24')](handleEntityNotFound(_0x1e52c8,null))['then'](function(_0x87d073){if(_0x87d073){return _0x87d073[_0x249f('0x88')]();}return null;})[_0x249f('0x24')](respondWithResult(_0x1e52c8,null))[_0x249f('0x5f')](handleError(_0x1e52c8,null));};exports[_0x249f('0x89')]=function(_0x50a880,_0x2a1afc,_0xdab9b1){if(_0x50a880[_0x249f('0x65')]['id']){delete _0x50a880['body']['id'];}return db[_0x249f('0x48')]['find']({'where':{'id':_0x50a880[_0x249f('0x61')]['id']}})[_0x249f('0x24')](handleEntityNotFound(_0x2a1afc,null))[_0x249f('0x24')](function(_0x449c84){if(_0x449c84){_0x50a880[_0x249f('0x65')][_0x249f('0x67')]=_0x449c84['id'];return db[_0x249f('0x44')][_0x249f('0x69')](_0x50a880[_0x249f('0x65')]);}})[_0x249f('0x24')](respondWithResult(_0x2a1afc,null))[_0x249f('0x5f')](handleError(_0x2a1afc,null));};exports['removeSmtp']=function(_0x3f6ea9,_0x56ea54,_0x3b27f7){return db[_0x249f('0x48')][_0x249f('0x85')]({'where':{'id':_0x3f6ea9[_0x249f('0x61')]['id']}})[_0x249f('0x24')](handleEntityNotFound(_0x56ea54,null))[_0x249f('0x24')](function(_0x3ed15c){if(_0x3ed15c){return _0x3ed15c[_0x249f('0x8a')](null);}return null;})['then'](respondWithStatusCode(_0x56ea54,null))[_0x249f('0x5f')](handleError(_0x56ea54,null));};exports[_0x249f('0x8b')]=function(_0x453c6d,_0xe7ae1f,_0x2c6a78){return db['MailInteraction'][_0x249f('0x64')]({'where':{'id':_0x453c6d[_0x249f('0x61')]['id']}})[_0x249f('0x24')](handleEntityNotFound(_0xe7ae1f,null))[_0x249f('0x24')](function(_0x4018ad){if(_0x4018ad){return _0x4018ad['addInteraction'](_0x453c6d[_0x249f('0x65')][_0x249f('0x6e')],_['omit'](_0x453c6d[_0x249f('0x65')],[_0x249f('0x6e'),'id'])||{});}})['then'](respondWithResult(_0xe7ae1f,null))[_0x249f('0x5f')](handleError(_0xe7ae1f,null));};exports[_0x249f('0x8c')]=function(_0x34562e,_0x3eb416,_0x5f055d){var _0x3ebe25={'raw':![],'where':{}};var _0x1ea203={};var _0xf8f51={'count':0x0,'rows':[]};return db[_0x249f('0x48')][_0x249f('0x85')]({'where':{'id':_0x34562e[_0x249f('0x61')]['id']}})['then'](handleEntityNotFound(_0x3eb416,null))[_0x249f('0x24')](function(_0x3414c1){if(_0x3414c1){_0x1ea203['model']=_['keys'](db[_0x249f('0x8d')][_0x249f('0x49')]);_0x1ea203[_0x249f('0x4e')]=_[_0x249f('0x4f')](_0x34562e['query']);_0x1ea203[_0x249f('0x50')]=_[_0x249f('0x51')](_0x1ea203[_0x249f('0x4c')],_0x1ea203[_0x249f('0x4e')]);_0x3ebe25[_0x249f('0x52')]=_[_0x249f('0x51')](_0x1ea203[_0x249f('0x4c')],qs[_0x249f('0x62')](_0x34562e['query'][_0x249f('0x62')]));_0x3ebe25[_0x249f('0x52')]=_0x3ebe25[_0x249f('0x52')]['length']?_0x3ebe25[_0x249f('0x52')]:_0x1ea203['model'];if(!_0x34562e['query'][_0x249f('0x54')](_0x249f('0x55'))){_0x3ebe25['limit']=qs[_0x249f('0x33')](_0x34562e[_0x249f('0x4e')][_0x249f('0x33')]);_0x3ebe25[_0x249f('0x31')]=qs[_0x249f('0x31')](_0x34562e[_0x249f('0x4e')][_0x249f('0x31')]);}_0x3ebe25[_0x249f('0x6a')]=qs['sort'](_0x34562e[_0x249f('0x4e')][_0x249f('0x56')]);_0x3ebe25['where']=qs['filters'](_['pick'](_0x34562e[_0x249f('0x4e')],_0x1ea203['filters']));_0x3ebe25[_0x249f('0x58')][_0x249f('0x67')]=_0x3414c1['id'];if(_0x34562e[_0x249f('0x4e')]['filter']){_0x3ebe25['where']=_[_0x249f('0x5b')](_0x3ebe25[_0x249f('0x58')],{'$or':_[_0x249f('0x4d')](_0x3ebe25['attributes'],function(_0x4de6f7){var _0x294aae={};_0x294aae[_0x4de6f7]={'$like':'%'+_0x34562e[_0x249f('0x4e')][_0x249f('0x5a')]+'%'};return _0x294aae;})});}_0x3ebe25=_[_0x249f('0x5b')]({},_0x3ebe25,_0x34562e[_0x249f('0x5c')]);return db['MailInteraction'][_0x249f('0x34')]({'where':_0x3ebe25[_0x249f('0x58')]})[_0x249f('0x24')](function(_0x3ecf98){_0xf8f51[_0x249f('0x34')]=_0x3ecf98;if(_0x34562e[_0x249f('0x4e')]['includeAll']){_0x3ebe25[_0x249f('0x6b')]=[{'model':db[_0x249f('0x8e')],'as':'Contact','required':![]},{'model':db['User'],'as':_0x249f('0x8f'),'attributes':[_0x249f('0x3f'),'fullname',_0x249f('0x90')],'required':![]},{'model':db['Tag'],'as':_0x249f('0x91'),'attributes':['id',_0x249f('0x3f'),_0x249f('0x92')],'where':_0x34562e['query'][_0x249f('0x93')]?{'id':_0x34562e[_0x249f('0x4e')]['tag']}:undefined,'required':_0x34562e[_0x249f('0x4e')][_0x249f('0x93')]?!![]:![]}];}return db[_0x249f('0x8d')][_0x249f('0x5e')](_0x3ebe25);})[_0x249f('0x24')](function(_0x5467c8){_0xf8f51[_0x249f('0x6c')]=_0x5467c8;return _0xf8f51;});}})[_0x249f('0x24')](respondWithFilteredResult(_0x3eb416,_0x3ebe25))['catch'](handleError(_0x3eb416,null));};exports[_0x249f('0x94')]=function addApplications(_0x4d5068,_0x18d892){var _0xfe4927=_0x4d5068[_0x249f('0x61')]['id'];var _0x424d71=_0x4d5068['body'];var _0x1050e8=0xc8;var _0x491d05=null;return db[_0x249f('0x95')][_0x249f('0x96')]({'isolationLevel':db[_0x249f('0x95')]['Transaction'][_0x249f('0x97')]['READ_COMMITTED']},function(_0x4fb564){return db[_0x249f('0x48')][_0x249f('0x85')]({'where':{'id':_0xfe4927},'transaction':_0x4fb564})['then'](function(_0x26a452){if(_0x26a452){return db['MailApplication'][_0x249f('0x3c')]({'where':{'MailAccountId':_0xfe4927},'transaction':_0x4fb564})[_0x249f('0x24')](function(){var _0x2f6297=_[_0x249f('0x4d')](_0x424d71,function(_0x53d9b5){_0x53d9b5[_0x249f('0x67')]=_0xfe4927;return _0x53d9b5;});return db[_0x249f('0x98')][_0x249f('0x99')](_0x2f6297,{'transaction':_0x4fb564});});}else{_0x1050e8=0x194;_0x491d05=[];}});})['then'](function(){if(_0x1050e8!==0x194){return db[_0x249f('0x98')][_0x249f('0x9a')]({'where':{'MailAccountId':_0xfe4927},'order':_0x249f('0x9b')})[_0x249f('0x24')](function(_0x5b358a){_0x491d05=_0x5b358a;});}})[_0x249f('0x5f')](function(_0x549f05){_0x1050e8=0x1f4;logger[_0x249f('0x29')](_0x549f05[_0x249f('0x3e')]);if(_0x549f05['name']){delete _0x549f05[_0x249f('0x3f')];}_0x491d05=_0x549f05;})[_0x249f('0x9c')](function(){if(_0x491d05===null){_0x18d892[_0x249f('0x3d')](_0x1050e8);}else{if(_0x1050e8===0x1f4){_0x18d892[_0x249f('0x2e')](_0x1050e8)[_0x249f('0x40')](_0x491d05);}else{_0x18d892[_0x249f('0x2e')](_0x1050e8)[_0x249f('0x30')](_0x491d05);}}});};exports['getApplications']=function(_0x5daf0a,_0x1cb15e,_0x34d9d4){var _0x1bc9c2={};var _0x151604={};var _0x5f835;var _0x49a718;return db[_0x249f('0x48')][_0x249f('0x85')]({'where':{'id':_0x5daf0a['params']['id']}})[_0x249f('0x24')](handleEntityNotFound(_0x1cb15e,null))[_0x249f('0x24')](function(_0x294991){if(_0x294991){_0x5f835=_0x294991;_0x151604[_0x249f('0x4c')]=_['keys'](db['MailApplication']['rawAttributes']);_0x151604[_0x249f('0x4e')]=_[_0x249f('0x4f')](_0x5daf0a[_0x249f('0x4e')]);_0x151604[_0x249f('0x50')]=_[_0x249f('0x51')](_0x151604[_0x249f('0x4c')],_0x151604[_0x249f('0x4e')]);_0x1bc9c2[_0x249f('0x52')]=_[_0x249f('0x51')](_0x151604[_0x249f('0x4c')],qs[_0x249f('0x62')](_0x5daf0a[_0x249f('0x4e')][_0x249f('0x62')]));_0x1bc9c2['attributes']=_0x1bc9c2[_0x249f('0x52')]['length']?_0x1bc9c2[_0x249f('0x52')]:_0x151604['model'];_0x1bc9c2['order']=qs[_0x249f('0x56')](_0x5daf0a[_0x249f('0x4e')][_0x249f('0x56')]);_0x1bc9c2[_0x249f('0x58')]=qs[_0x249f('0x50')](_[_0x249f('0x57')](_0x5daf0a['query'],_0x151604['filters']));if(_0x5daf0a[_0x249f('0x4e')][_0x249f('0x5a')]){_0x1bc9c2[_0x249f('0x58')]=_[_0x249f('0x5b')](_0x1bc9c2['where'],{'$or':_[_0x249f('0x4d')](_0x1bc9c2[_0x249f('0x52')],function(_0x442a59){var _0x339910={};_0x339910[_0x442a59]={'$like':'%'+_0x5daf0a[_0x249f('0x4e')][_0x249f('0x5a')]+'%'};return _0x339910;})});}_0x1bc9c2=_[_0x249f('0x5b')]({},_0x1bc9c2,_0x5daf0a['options']);return _0x5f835[_0x249f('0x9d')](_0x1bc9c2);}})[_0x249f('0x24')](function(_0x5f21ff){if(_0x5f21ff){_0x49a718=_0x5f21ff[_0x249f('0x53')];if(!_0x5daf0a[_0x249f('0x4e')][_0x249f('0x54')](_0x249f('0x55'))){_0x1bc9c2['limit']=qs[_0x249f('0x33')](_0x5daf0a[_0x249f('0x4e')][_0x249f('0x33')]);_0x1bc9c2['offset']=qs[_0x249f('0x31')](_0x5daf0a['query'][_0x249f('0x31')]);}return _0x5f835[_0x249f('0x9d')](_0x1bc9c2);}})[_0x249f('0x24')](function(_0x47fa21){if(_0x47fa21){return _0x47fa21?{'count':_0x49a718,'rows':_0x47fa21}:null;}})[_0x249f('0x24')](respondWithResult(_0x1cb15e,null))[_0x249f('0x5f')](handleError(_0x1cb15e,null));};exports[_0x249f('0x9e')]=function(_0x18417a,_0x456846,_0x252020){var _0x409f5c={'raw':!![],'where':{}};var _0x35e2b9={};var _0x4a8dde={'count':0x0,'rows':[]};return db['MailAccount'][_0x249f('0x85')]({'where':{'id':_0x18417a['params']['id']}})[_0x249f('0x24')](handleEntityNotFound(_0x456846,null))[_0x249f('0x24')](function(_0x4ea4cd){if(_0x4ea4cd){_0x35e2b9['model']=_[_0x249f('0x4f')](db[_0x249f('0x9f')][_0x249f('0x49')]);_0x35e2b9[_0x249f('0x4e')]=_[_0x249f('0x4f')](_0x18417a[_0x249f('0x4e')]);_0x35e2b9['filters']=_[_0x249f('0x51')](_0x35e2b9[_0x249f('0x4c')],_0x35e2b9['query']);_0x409f5c['attributes']=_[_0x249f('0x51')](_0x35e2b9['model'],qs[_0x249f('0x62')](_0x18417a['query'][_0x249f('0x62')]));_0x409f5c[_0x249f('0x52')]=_0x409f5c[_0x249f('0x52')][_0x249f('0x53')]?_0x409f5c['attributes']:_0x35e2b9[_0x249f('0x4c')];if(!_0x18417a[_0x249f('0x4e')][_0x249f('0x54')](_0x249f('0x55'))){_0x409f5c[_0x249f('0x33')]=qs[_0x249f('0x33')](_0x18417a[_0x249f('0x4e')][_0x249f('0x33')]);_0x409f5c['offset']=qs['offset'](_0x18417a[_0x249f('0x4e')][_0x249f('0x31')]);}_0x409f5c[_0x249f('0x6a')]=qs[_0x249f('0x56')](_0x18417a[_0x249f('0x4e')][_0x249f('0x56')]);_0x409f5c[_0x249f('0x58')]=qs[_0x249f('0x50')](_[_0x249f('0x57')](_0x18417a[_0x249f('0x4e')],_0x35e2b9[_0x249f('0x50')]));_0x409f5c[_0x249f('0x58')][_0x249f('0x67')]=_0x4ea4cd['id'];if(_0x18417a[_0x249f('0x4e')][_0x249f('0x5a')]){_0x409f5c[_0x249f('0x58')]=_[_0x249f('0x5b')](_0x409f5c[_0x249f('0x58')],{'$or':_[_0x249f('0x4d')](_0x409f5c[_0x249f('0x52')],function(_0x5e6095){var _0x38c8e1={};_0x38c8e1[_0x5e6095]={'$like':'%'+_0x18417a[_0x249f('0x4e')][_0x249f('0x5a')]+'%'};return _0x38c8e1;})});}if(_0x18417a['query']['$gte']){var _0x5c03bb=_0x18417a['query']['$gte'][_0x249f('0xa0')](',');var _0x294ebb={};_0x294ebb[_0x5c03bb[0x0]]={'$gte':moment(_0x5c03bb[0x1])['format'](_0x249f('0xa1'))};_0x409f5c[_0x249f('0x58')]=_[_0x249f('0x5b')](_0x409f5c['where'],_0x294ebb);}_0x409f5c=_[_0x249f('0x5b')]({},_0x409f5c,_0x18417a['options']);return db[_0x249f('0x9f')][_0x249f('0x34')]({'where':_0x409f5c[_0x249f('0x58')]})[_0x249f('0x24')](function(_0x21bf7a){_0x4a8dde[_0x249f('0x34')]=_0x21bf7a;if(_0x18417a[_0x249f('0x4e')]['includeAll']){_0x409f5c['include']=[{'all':!![]}];}return db[_0x249f('0x9f')]['findAll'](_0x409f5c);})[_0x249f('0x24')](function(_0x4a49f6){if(_0x18417a[_0x249f('0x4e')][_0x249f('0xa2')]===_0x249f('0xa3')){for(var _0x1f2fe8=0x0;_0x1f2fe8<_0x4a49f6[_0x249f('0x53')];_0x1f2fe8++){_0x4a49f6[_0x1f2fe8][_0x249f('0x65')]=juice(_0x4a49f6[_0x1f2fe8][_0x249f('0x65')]);}}_0x4a8dde[_0x249f('0x6c')]=_0x4a49f6;return _0x4a8dde;});}})[_0x249f('0x24')](respondWithFilteredResult(_0x456846,_0x409f5c))[_0x249f('0x5f')](handleError(_0x456846,null));};exports[_0x249f('0x40')]=function(_0x5c871c,_0x4e60d3,_0x502d3a){var _0x4f374b,_0x1f0056={},_0x4fcfa6;if(_0x5c871c[_0x249f('0x65')]['to']){_0x4fcfa6=_0x5c871c[_0x249f('0x65')]['to']['split'](',')[0x0];}return db[_0x249f('0x48')]['find']({'where':{'id':_0x5c871c['params']['id']},'include':[{'model':db[_0x249f('0xa4')],'as':_0x249f('0xa5'),'include':[{'model':db[_0x249f('0x8e')],'as':'Contacts','where':{'email':_0x4fcfa6},'limit':0x1,'order':[['updatedAt',_0x249f('0xa6')]]}]},{'model':db[_0x249f('0x44')],'as':_0x249f('0x45'),'raw':!![]}]})[_0x249f('0x24')](handleEntityNotFound(_0x4e60d3,null))[_0x249f('0x24')](function(_0xf1bb03){if(_0xf1bb03){_0x4f374b=_0xf1bb03;if(_0xf1bb03['Smtp']){if(_['isNil'](_0x5c871c['body'][_0x249f('0xa7')])){_0x5c871c['body'][_0x249f('0xa7')]=util['format']('%s\x20<%s>',_0xf1bb03['name'],_0xf1bb03[_0x249f('0x73')]||_0xf1bb03['Smtp']['user']);}if(_0x5c871c[_0x249f('0x65')][_0x249f('0xa8')]&&_0x5c871c[_0x249f('0x65')][_0x249f('0xa8')][_0x249f('0x53')]){for(var _0x448b36=0x0;_0x448b36<_0x5c871c[_0x249f('0x65')][_0x249f('0xa8')][_0x249f('0x53')];_0x448b36+=0x1){_0x5c871c[_0x249f('0x65')]['attachments'][_0x448b36]={'filename':_0x5c871c[_0x249f('0x65')][_0x249f('0xa8')][_0x448b36][_0x249f('0x3f')],'path':path[_0x249f('0xa9')](config[_0x249f('0xaa')],_0x249f('0xab'),_0x5c871c[_0x249f('0x65')][_0x249f('0xa8')][_0x448b36][_0x249f('0xac')])};}}var _0x59e794={'tls':{'rejectUnauthorized':![]}};if(_['isNil'](_0xf1bb03[_0x249f('0x45')][_0x249f('0xad')])){if(_0xf1bb03[_0x249f('0x45')][_0x249f('0x7d')]){_0x59e794['auth']={'user':_0xf1bb03['Smtp'][_0x249f('0x78')],'pass':_0xf1bb03[_0x249f('0x45')]['pass']};}_0x59e794[_0x249f('0xae')]=_0xf1bb03[_0x249f('0x45')][_0x249f('0xae')];_0x59e794[_0x249f('0x7e')]=_0xf1bb03['Smtp'][_0x249f('0x7e')];_0x59e794['secure']=_0xf1bb03[_0x249f('0x45')][_0x249f('0xaf')];}else{_0x59e794[_0x249f('0xad')]=_0xf1bb03[_0x249f('0x45')]['service'];_0x59e794[_0x249f('0xb0')]={'user':_0xf1bb03[_0x249f('0x45')][_0x249f('0x78')],'pass':_0xf1bb03[_0x249f('0x45')][_0x249f('0x7b')]};}return respondWithRpcPromise(_0x249f('0xb1'),'sendMail',{'account':_0x59e794,'message':_0x5c871c[_0x249f('0x65')]});}else{throw new Error(_0x249f('0xb2'));}}})[_0x249f('0x24')](function(_0x27044e){if(_0x27044e){_0x1f0056=_0x27044e;if(_0x4f374b[_0x249f('0xa5')]){if(_0x4f374b[_0x249f('0xa5')][_0x249f('0xb3')][_0x249f('0x53')]){return _0x4f374b[_0x249f('0xa5')][_0x249f('0xb3')][0x0];}else{return db[_0x249f('0x8e')][_0x249f('0x69')](_['defaults'](_0x5c871c['body'],{'firstName':_0x5c871c[_0x249f('0x65')]['to'],'email':_0x5c871c[_0x249f('0x65')]['to'],'phone':_0x5c871c[_0x249f('0x65')]['to'],'ListId':_0x4f374b[_0x249f('0x74')]}));}}else{throw new Error(_0x249f('0xb2'));}}})[_0x249f('0x24')](function(_0x32f288){if(_0x32f288){var _0x51a774={'UserId':_0x5c871c['user']['id'],'ContactId':_0x32f288['id'],'MailAccountId':_0x4f374b['id'],'inReplyTo':_0x1f0056[_0x249f('0xb4')],'to':_0x5c871c[_0x249f('0x65')]['from'],'cc':_0x5c871c[_0x249f('0x65')]['cc'],'subject':_0x5c871c[_0x249f('0x65')][_0x249f('0xb5')],'attach':_0x5c871c[_0x249f('0x65')][_0x249f('0xb6')],'firstMsgDirection':_0x249f('0xb7'),'lastMsgAt':moment()[_0x249f('0xb8')]('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgDirection':_0x249f('0xb7'),'Messages':[_[_0x249f('0x5b')](_0x5c871c[_0x249f('0x65')],{'messageId':_0x1f0056['messageId'],'sentAt':moment()['format'](_0x249f('0xa1')),'read':!![],'MailAccountId':_0x4f374b['id'],'UserId':_0x5c871c[_0x249f('0x78')]['id'],'ContactId':_0x32f288['id']})]};if(_0x5c871c[_0x249f('0x65')][_0x249f('0xb9')]){_0x51a774=_[_0x249f('0x5b')](_0x51a774,_0x5c871c[_0x249f('0x65')][_0x249f('0xb9')]);}return db[_0x249f('0x8d')][_0x249f('0x69')](_0x51a774,{'include':[{'model':db[_0x249f('0x9f')],'as':_0x249f('0xba')}]});}})[_0x249f('0x24')](respondWithResult(_0x4e60d3,null))[_0x249f('0x5f')](handleError(_0x4e60d3,null));};exports[_0x249f('0xbb')]=function(_0xec1489,_0x4d77e8,_0x362cf1){return db[_0x249f('0x48')][_0x249f('0x64')]({'where':{'id':_0xec1489[_0x249f('0x61')]['id']},'include':[{'model':db['MailServerOut'],'as':_0x249f('0x45'),'raw':!![]}]})[_0x249f('0x24')](handleEntityNotFound(_0x4d77e8,null))[_0x249f('0x24')](function(_0x179cba){if(_0x179cba&&_0x179cba[_0x249f('0x45')]){var _0x507bff={'id':_0x179cba['id'],'tls':{'rejectUnauthorized':![]}};if(_0x179cba[_0x249f('0x45')]['service']){_0x507bff['service']=_0x179cba[_0x249f('0x45')][_0x249f('0xad')];}else{_0x507bff[_0x249f('0xae')]=_0x179cba[_0x249f('0x45')][_0x249f('0xae')];_0x507bff['port']=_0x179cba[_0x249f('0x45')]['port'];_0x507bff['secure']=_0x179cba[_0x249f('0x45')][_0x249f('0xaf')];}if(_0x179cba['Smtp'][_0x249f('0x7d')]){_0x507bff[_0x249f('0xb0')]={'user':_0x179cba[_0x249f('0x45')][_0x249f('0x78')],'pass':_0x179cba['Smtp'][_0x249f('0x7b')]};}return respondWithRpcPromise(_0x249f('0xbc'),_0x249f('0xbb'),{'account':_0x507bff});}})[_0x249f('0x24')](respondWithResult(_0x4d77e8,null))[_0x249f('0x5f')](handleError(_0x4d77e8,null));};exports['destroy']=function(_0x2eaec0,_0x33c278){return db[_0x249f('0x48')][_0x249f('0x64')]({'where':{'id':_0x2eaec0['params']['id']}})['then'](handleEntityNotFound(_0x33c278,null))[_0x249f('0x24')](function(_0x33b26a){if(_0x33b26a&&_0x33b26a['service']){throw new db['Sequelize'][(_0x249f('0xbd'))](_0x249f('0xbe'));}return _0x33b26a;})[_0x249f('0x24')](removeEntity(_0x33c278,null))[_0x249f('0x5f')](handleError(_0x33c278,null));};exports['addAgents']=function(_0x274030,_0x5cf83a,_0x11a020){return db[_0x249f('0x48')][_0x249f('0x64')]({'where':{'id':_0x274030[_0x249f('0x61')]['id']}})[_0x249f('0x24')](handleEntityNotFound(_0x5cf83a,null))['then'](function(_0x4396cc){if(_0x4396cc){return _0x4396cc['addAgents'](_0x274030[_0x249f('0x65')]['ids'],_[_0x249f('0xbf')](_0x274030[_0x249f('0x65')],['ids','id'])||{})['spread'](function(_0x286dd1){for(var _0x424265=0x0;_0x424265<_0x274030[_0x249f('0x65')]['ids'][_0x249f('0x53')];_0x424265+=0x1){socket[_0x249f('0xc0')]('userMailAccount:save',{'UserId':Number(_0x274030[_0x249f('0x65')]['ids'][_0x424265]),'MailAccountId':Number(_0x274030[_0x249f('0x61')]['id'])});}return _0x286dd1;});}})[_0x249f('0x24')](respondWithResult(_0x5cf83a,null))[_0x249f('0x5f')](handleError(_0x5cf83a,null));};exports[_0x249f('0xc1')]=function(_0x4d9cc5,_0x4e70f9,_0x5676a0){return db[_0x249f('0x48')][_0x249f('0x64')]({'where':{'id':_0x4d9cc5[_0x249f('0x61')]['id']}})[_0x249f('0x24')](handleEntityNotFound(_0x4e70f9,null))[_0x249f('0x24')](function(_0x2720cc){if(_0x2720cc){return _0x2720cc['removeAgents'](_0x4d9cc5['query'][_0x249f('0x6e')])[_0x249f('0x24')](function(){if(_['isArray'](_0x4d9cc5['query']['ids'])){for(var _0x46a57f=0x0;_0x46a57f<_0x4d9cc5[_0x249f('0x4e')]['ids'][_0x249f('0x53')];_0x46a57f+=0x1){socket[_0x249f('0xc0')]('userMailAccount:remove',{'UserId':Number(_0x4d9cc5[_0x249f('0x4e')]['ids'][_0x46a57f]),'MailAccountId':Number(_0x4d9cc5[_0x249f('0x61')]['id'])});}}else{socket['emit'](_0x249f('0xc2'),{'UserId':Number(_0x4d9cc5[_0x249f('0x4e')]['ids']),'MailAccountId':Number(_0x4d9cc5[_0x249f('0x61')]['id'])});}});}})[_0x249f('0x24')](respondWithStatusCode(_0x4e70f9,null))[_0x249f('0x5f')](handleError(_0x4e70f9,null));};exports[_0x249f('0xc3')]=function(_0x31ce8,_0x3b1572,_0x38c5ed){var _0x3aedfe={};var _0x19c697={};var _0x39f776;var _0x132c75;return db[_0x249f('0x48')][_0x249f('0x85')]({'where':{'id':_0x31ce8[_0x249f('0x61')]['id']}})[_0x249f('0x24')](handleEntityNotFound(_0x3b1572,null))[_0x249f('0x24')](function(_0xaa0ff2){if(_0xaa0ff2){_0x39f776=_0xaa0ff2;_0x19c697[_0x249f('0x4c')]=_['keys'](db[_0x249f('0xc4')]['rawAttributes']);_0x19c697[_0x249f('0x4e')]=_[_0x249f('0x4f')](_0x31ce8[_0x249f('0x4e')]);_0x19c697[_0x249f('0x50')]=_[_0x249f('0x51')](_0x19c697['model'],_0x19c697[_0x249f('0x4e')]);_0x3aedfe['attributes']=_['intersection'](_0x19c697[_0x249f('0x4c')],qs[_0x249f('0x62')](_0x31ce8['query'][_0x249f('0x62')]));_0x3aedfe[_0x249f('0x52')]=_0x3aedfe[_0x249f('0x52')][_0x249f('0x53')]?_0x3aedfe[_0x249f('0x52')]:_0x19c697[_0x249f('0x4c')];_0x3aedfe[_0x249f('0x6a')]=qs[_0x249f('0x56')](_0x31ce8['query'][_0x249f('0x56')]);_0x3aedfe[_0x249f('0x58')]=qs[_0x249f('0x50')](_[_0x249f('0x57')](_0x31ce8[_0x249f('0x4e')],_0x19c697[_0x249f('0x50')]));if(_0x31ce8[_0x249f('0x4e')]['filter']){_0x3aedfe[_0x249f('0x58')]=_[_0x249f('0x5b')](_0x3aedfe[_0x249f('0x58')],{'$or':_['map'](_0x3aedfe[_0x249f('0x52')],function(_0x311b44){var _0x24a033={};_0x24a033[_0x311b44]={'$like':'%'+_0x31ce8['query'][_0x249f('0x5a')]+'%'};return _0x24a033;})});}_0x3aedfe=_['merge']({},_0x3aedfe,_0x31ce8[_0x249f('0x5c')]);return _0x39f776['getAgents'](_0x3aedfe);}})[_0x249f('0x24')](function(_0x317bf){if(_0x317bf){_0x132c75=_0x317bf[_0x249f('0x53')];if(!_0x31ce8[_0x249f('0x4e')][_0x249f('0x54')]('nolimit')){_0x3aedfe[_0x249f('0x33')]=qs[_0x249f('0x33')](_0x31ce8['query'][_0x249f('0x33')]);_0x3aedfe[_0x249f('0x31')]=qs[_0x249f('0x31')](_0x31ce8[_0x249f('0x4e')][_0x249f('0x31')]);}return _0x39f776[_0x249f('0xc3')](_0x3aedfe);}})['then'](function(_0xf33c12){if(_0xf33c12){return _0xf33c12?{'count':_0x132c75,'rows':_0xf33c12}:null;}})[_0x249f('0x24')](respondWithResult(_0x3b1572,null))['catch'](handleError(_0x3b1572,null));};
\ No newline at end of file
+var _0x9b7e=['pick','filter','options','include','findAll','show','includeAll','merge','find','body','describe','addDisposition','params','create','getDispositions','findOne','Disposition','MailAccountId','rows','removeDispositions','ids','addAnswer','getAnswers','CannedAnswer','removeAnswers','active','description','cservice','cauthentication','user','password','pass','cpassword','authentication','host','port','service','cuser','role','UserProfileSection','MailAccounts','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','getImap','setImap','getSmtp','addSmtp','addInteraction','MailInteraction','omit','CmContact','Contact','User','Owner','fullname','internal','Tag','Tags','color','tag','addApplications','sequelize','transaction','READ_COMMITTED','MailApplication','priority','stack','finally','getApplications','getMessages','$gte','split','YYYY-MM-DD\x20HH:mm:ss','MailMessage','inlineCss','List','Contacts','isNil','from','%s\x20<%s>','email','attachments','join','server/files/attachments','basename','auth','secure','SendMail','List\x20not\x20found','messageId','out','format','Interaction','Messages','verifySmtp','VerifySmtp','Sequelize','ValidationError','addAgents','spread','emit','userMailAccount:save','removeAgents','userMailAccount:remove','getAgents','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','ejs','lodash','crypto','jsforce','desk.js','to-csv','querystring','papaparse','html-to-text','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./mailAccount.socket','register','jayson/promise','client','http','request','then','request\x20sent','debug','MailAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','MailAccount,\x20%s,\x20%s','message','info','catch','sendStatus','status','offset','undefined','limit','count','set','Content-Range','json','reject','save','update','get','UserProfileResource','destroy','name','send','index','MailServerIn','Imap','MailServerOut','Smtp','Pause','mandatoryDispositionPause','map','MailAccount','rawAttributes','type','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where'];(function(_0x11df3b,_0x21ced3){var _0x5f230a=function(_0xfbecfe){while(--_0xfbecfe){_0x11df3b['push'](_0x11df3b['shift']());}};_0x5f230a(++_0x21ced3);}(_0x9b7e,0x12e));var _0xe9b7=function(_0x7cf8eb,_0x5a470e){_0x7cf8eb=_0x7cf8eb-0x0;var _0x24e417=_0x9b7e[_0x7cf8eb];return _0x24e417;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xe9b7('0x0'));var zipdir=require(_0xe9b7('0x1'));var jsonpatch=require(_0xe9b7('0x2'));var rp=require(_0xe9b7('0x3'));var moment=require(_0xe9b7('0x4'));var BPromise=require(_0xe9b7('0x5'));var Mustache=require(_0xe9b7('0x6'));var util=require(_0xe9b7('0x7'));var path=require(_0xe9b7('0x8'));var sox=require(_0xe9b7('0x9'));var csv=require('to-csv');var ejs=require(_0xe9b7('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xe9b7('0xb'));var squel=require('squel');var crypto=require(_0xe9b7('0xc'));var jsforce=require(_0xe9b7('0xd'));var deskjs=require(_0xe9b7('0xe'));var toCsv=require(_0xe9b7('0xf'));var querystring=require(_0xe9b7('0x10'));var Papa=require(_0xe9b7('0x11'));var htmlToText=require(_0xe9b7('0x12'));var juice=require('juice');var Redis=require(_0xe9b7('0x13'));var authService=require('../../components/auth/service');var qs=require(_0xe9b7('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xe9b7('0x15'));var logger=require(_0xe9b7('0x16'))(_0xe9b7('0x17'));var utils=require(_0xe9b7('0x18'));var config=require(_0xe9b7('0x19'));var licenseUtil=require(_0xe9b7('0x1a'));var db=require(_0xe9b7('0x1b'))['db'];config[_0xe9b7('0x1c')]=_[_0xe9b7('0x1d')](config[_0xe9b7('0x1c')],{'host':_0xe9b7('0x1e'),'port':0x18eb});var socket=require(_0xe9b7('0x1f'))(new Redis(config['redis']));require(_0xe9b7('0x20'))[_0xe9b7('0x21')](socket);var jayson=require(_0xe9b7('0x22'));var client=jayson[_0xe9b7('0x23')][_0xe9b7('0x24')]({'port':0x232b});function respondWithRpcPromise(_0xf5492e,_0x4dbb6b,_0x375782,_0x117cbd){return new BPromise(function(_0x44187e,_0x2323b8){var _0x3f17ca=_0x117cbd||client;return _0x3f17ca[_0xe9b7('0x25')](_0xf5492e,_0x375782)[_0xe9b7('0x26')](function(_0x3664fa){logger['info']('MailAccount,\x20%s,\x20%s',_0x4dbb6b,_0xe9b7('0x27'));logger[_0xe9b7('0x28')](_0xe9b7('0x29'),_0x4dbb6b,_0xe9b7('0x27'),JSON[_0xe9b7('0x2a')](_0x3664fa));if(_0x3664fa[_0xe9b7('0x2b')]){if(_0x3664fa[_0xe9b7('0x2b')][_0xe9b7('0x2c')]===0x1f4){logger[_0xe9b7('0x2b')](_0xe9b7('0x2d'),_0x4dbb6b,_0x3664fa[_0xe9b7('0x2b')][_0xe9b7('0x2e')]);return _0x2323b8(_0x3664fa['error']['message']);}logger[_0xe9b7('0x2b')](_0xe9b7('0x2d'),_0x4dbb6b,_0x3664fa[_0xe9b7('0x2b')][_0xe9b7('0x2e')]);return _0x44187e(_0x3664fa['error'][_0xe9b7('0x2e')]);}else{logger[_0xe9b7('0x2f')]('MailAccount,\x20%s,\x20%s',_0x4dbb6b,'request\x20sent');_0x44187e(_0x3664fa['result'][_0xe9b7('0x2e')]);}})[_0xe9b7('0x30')](function(_0x569dc8){logger[_0xe9b7('0x2b')](_0xe9b7('0x2d'),_0x4dbb6b,_0x569dc8);_0x2323b8(_0x569dc8);});});}function respondWithStatusCode(_0x3d7b22,_0x4cfd5){_0x4cfd5=_0x4cfd5||0xcc;return function(_0x4fb652){if(_0x4fb652){return _0x3d7b22[_0xe9b7('0x31')](_0x4cfd5);}return _0x3d7b22[_0xe9b7('0x32')](_0x4cfd5)['end']();};}function respondWithResult(_0x12ed79,_0x2ef50b){_0x2ef50b=_0x2ef50b||0xc8;return function(_0x564f6c){if(_0x564f6c){return _0x12ed79[_0xe9b7('0x32')](_0x2ef50b)['json'](_0x564f6c);}};}function respondWithFilteredResult(_0x25aa9b,_0x393f17){return function(_0x5629ff){if(_0x5629ff){var _0x2b5f0e=typeof _0x393f17[_0xe9b7('0x33')]===_0xe9b7('0x34')&&typeof _0x393f17[_0xe9b7('0x35')]===_0xe9b7('0x34');var _0x4b1c34=_0x5629ff['count'];var _0x227ec6=_0x2b5f0e?0x0:_0x393f17['offset'];var _0x13304f=_0x2b5f0e?_0x5629ff[_0xe9b7('0x36')]:_0x393f17[_0xe9b7('0x33')]+_0x393f17[_0xe9b7('0x35')];var _0x2488db;if(_0x13304f>=_0x4b1c34){_0x13304f=_0x4b1c34;_0x2488db=0xc8;}else{_0x2488db=0xce;}_0x25aa9b['status'](_0x2488db);return _0x25aa9b[_0xe9b7('0x37')](_0xe9b7('0x38'),_0x227ec6+'-'+_0x13304f+'/'+_0x4b1c34)[_0xe9b7('0x39')](_0x5629ff);}return null;};}function patchUpdates(_0x3e9bdb){return function(_0x57f9e9){try{jsonpatch['apply'](_0x57f9e9,_0x3e9bdb,!![]);}catch(_0x3e5bec){return BPromise[_0xe9b7('0x3a')](_0x3e5bec);}return _0x57f9e9[_0xe9b7('0x3b')]();};}function saveUpdates(_0x1bcfc9,_0x2e2c3f){return function(_0x2c693e){if(_0x2c693e){return _0x2c693e[_0xe9b7('0x3c')](_0x1bcfc9)[_0xe9b7('0x26')](function(_0x519a1a){return _0x519a1a;});}return null;};}function removeEntity(_0xef3e44,_0x56bbf5){return function(_0x59bdbb){if(_0x59bdbb){return _0x59bdbb['destroy']()[_0xe9b7('0x26')](function(){var _0x4c806a=_0x59bdbb[_0xe9b7('0x3d')]({'plain':!![]});var _0x340fef='MailAccounts';return db[_0xe9b7('0x3e')][_0xe9b7('0x3f')]({'where':{'type':_0x340fef,'resourceId':_0x4c806a['id']}})[_0xe9b7('0x26')](function(){return _0x59bdbb;});})[_0xe9b7('0x26')](function(){_0xef3e44['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x4de833,_0x1d3c91){return function(_0x43485e){if(!_0x43485e){_0x4de833[_0xe9b7('0x31')](0x194);}return _0x43485e;};}function handleError(_0x4a58ae,_0x47f078){_0x47f078=_0x47f078||0x1f4;return function(_0x145f89){logger[_0xe9b7('0x2b')](_0x145f89['stack']);if(_0x145f89[_0xe9b7('0x40')]){delete _0x145f89['name'];}_0x4a58ae[_0xe9b7('0x32')](_0x47f078)[_0xe9b7('0x41')](_0x145f89);};}exports[_0xe9b7('0x42')]=function(_0x5ebd7a,_0xb576c){var _0x2284c1={'include':[{'model':db[_0xe9b7('0x43')],'as':_0xe9b7('0x44')},{'model':db[_0xe9b7('0x45')],'as':_0xe9b7('0x46')},{'model':db[_0xe9b7('0x47')],'as':_0xe9b7('0x48')}]},_0x4a4c65={},_0x5bc9b7={'count':0x0,'rows':[]};var _0x468975=_[_0xe9b7('0x49')](db[_0xe9b7('0x4a')][_0xe9b7('0x4b')],function(_0x19c781){return{'name':_0x19c781['fieldName'],'type':_0x19c781[_0xe9b7('0x4c')]['key']};});_0x4a4c65['model']=_[_0xe9b7('0x49')](_0x468975,_0xe9b7('0x40'));_0x4a4c65[_0xe9b7('0x4d')]=_[_0xe9b7('0x4e')](_0x5ebd7a[_0xe9b7('0x4d')]);_0x4a4c65[_0xe9b7('0x4f')]=_[_0xe9b7('0x50')](_0x4a4c65[_0xe9b7('0x51')],_0x4a4c65[_0xe9b7('0x4d')]);_0x2284c1[_0xe9b7('0x52')]=_[_0xe9b7('0x50')](_0x4a4c65['model'],qs['fields'](_0x5ebd7a[_0xe9b7('0x4d')][_0xe9b7('0x53')]));_0x2284c1[_0xe9b7('0x52')]=_0x2284c1[_0xe9b7('0x52')][_0xe9b7('0x54')]?_0x2284c1[_0xe9b7('0x52')]:_0x4a4c65[_0xe9b7('0x51')];if(!_0x5ebd7a[_0xe9b7('0x4d')][_0xe9b7('0x55')](_0xe9b7('0x56'))){_0x2284c1[_0xe9b7('0x35')]=qs[_0xe9b7('0x35')](_0x5ebd7a[_0xe9b7('0x4d')][_0xe9b7('0x35')]);_0x2284c1['offset']=qs[_0xe9b7('0x33')](_0x5ebd7a[_0xe9b7('0x4d')][_0xe9b7('0x33')]);}_0x2284c1[_0xe9b7('0x57')]=qs[_0xe9b7('0x58')](_0x5ebd7a['query'][_0xe9b7('0x58')]);_0x2284c1[_0xe9b7('0x59')]=qs[_0xe9b7('0x4f')](_[_0xe9b7('0x5a')](_0x5ebd7a[_0xe9b7('0x4d')],_0x4a4c65[_0xe9b7('0x4f')]),_0x468975);if(_0x5ebd7a[_0xe9b7('0x4d')][_0xe9b7('0x5b')]){_0x2284c1[_0xe9b7('0x59')]=_['merge'](_0x2284c1[_0xe9b7('0x59')],{'$or':_[_0xe9b7('0x49')](_0x468975,function(_0x46edad){if(_0x46edad[_0xe9b7('0x4c')]!=='VIRTUAL'){var _0x31c4ad={};_0x31c4ad[_0x46edad[_0xe9b7('0x40')]]={'$like':'%'+_0x5ebd7a['query'][_0xe9b7('0x5b')]+'%'};return _0x31c4ad;}})});}_0x2284c1=_['merge']({},_0x2284c1,_0x5ebd7a[_0xe9b7('0x5c')]);var _0x15c91d={'where':_0x2284c1['where']};return db[_0xe9b7('0x4a')][_0xe9b7('0x36')](_0x15c91d)[_0xe9b7('0x26')](function(_0x37139b){_0x5bc9b7[_0xe9b7('0x36')]=_0x37139b;if(_0x5ebd7a['query']['includeAll']){_0x2284c1[_0xe9b7('0x5d')]=[{'all':!![]}];}return db[_0xe9b7('0x4a')][_0xe9b7('0x5e')](_0x2284c1);})['then'](function(_0x5a9d70){_0x5bc9b7['rows']=_0x5a9d70;return _0x5bc9b7;})[_0xe9b7('0x26')](respondWithFilteredResult(_0xb576c,_0x2284c1))['catch'](handleError(_0xb576c,null));};exports[_0xe9b7('0x5f')]=function(_0x45b1a0,_0x2cca89){var _0x9d862d={'raw':![],'where':{'id':_0x45b1a0['params']['id']},'include':[{'model':db['MailServerIn'],'as':_0xe9b7('0x44')},{'model':db[_0xe9b7('0x45')],'as':_0xe9b7('0x46')},{'model':db[_0xe9b7('0x47')],'as':_0xe9b7('0x48')}]},_0x40d60a={};_0x40d60a[_0xe9b7('0x51')]=_[_0xe9b7('0x4e')](db['MailAccount'][_0xe9b7('0x4b')]);_0x40d60a[_0xe9b7('0x4d')]=_[_0xe9b7('0x4e')](_0x45b1a0['query']);_0x40d60a[_0xe9b7('0x4f')]=_[_0xe9b7('0x50')](_0x40d60a[_0xe9b7('0x51')],_0x40d60a[_0xe9b7('0x4d')]);_0x9d862d[_0xe9b7('0x52')]=_[_0xe9b7('0x50')](_0x40d60a[_0xe9b7('0x51')],qs[_0xe9b7('0x53')](_0x45b1a0[_0xe9b7('0x4d')][_0xe9b7('0x53')]));_0x9d862d[_0xe9b7('0x52')]=_0x9d862d[_0xe9b7('0x52')]['length']?_0x9d862d['attributes']:_0x40d60a[_0xe9b7('0x51')];if(_0x45b1a0[_0xe9b7('0x4d')][_0xe9b7('0x60')]){_0x9d862d['include']=[{'all':!![]}];}_0x9d862d=_[_0xe9b7('0x61')]({},_0x9d862d,_0x45b1a0['options']);return db['MailAccount'][_0xe9b7('0x62')](_0x9d862d)[_0xe9b7('0x26')](handleEntityNotFound(_0x2cca89,null))[_0xe9b7('0x26')](respondWithResult(_0x2cca89,null))[_0xe9b7('0x30')](handleError(_0x2cca89,null));};exports['update']=function(_0x3a817d,_0x20e768){if(_0x3a817d[_0xe9b7('0x63')]['id']){delete _0x3a817d[_0xe9b7('0x63')]['id'];}return db[_0xe9b7('0x4a')][_0xe9b7('0x62')]({'where':{'id':_0x3a817d['params']['id']},'include':[{'model':db[_0xe9b7('0x43')],'as':_0xe9b7('0x44')},{'model':db['MailServerOut'],'as':_0xe9b7('0x46')},{'model':db[_0xe9b7('0x47')],'as':_0xe9b7('0x48')}]})[_0xe9b7('0x26')](handleEntityNotFound(_0x20e768,null))[_0xe9b7('0x26')](saveUpdates(_0x3a817d[_0xe9b7('0x63')],null))[_0xe9b7('0x26')](function(_0x28d48f){if(_0x28d48f&&_0x3a817d[_0xe9b7('0x63')][_0xe9b7('0x44')]){return db['MailServerIn'][_0xe9b7('0x3c')](_0x3a817d[_0xe9b7('0x63')][_0xe9b7('0x44')],{'where':{'MailAccountId':_0x28d48f['id']}})[_0xe9b7('0x26')](function(){return _0x28d48f;});}return _0x28d48f;})['then'](function(_0x6c83af){if(_0x6c83af&&_0x3a817d[_0xe9b7('0x63')]['Smtp']){return db[_0xe9b7('0x45')][_0xe9b7('0x3c')](_0x3a817d['body'][_0xe9b7('0x46')],{'where':{'MailAccountId':_0x6c83af['id']}})[_0xe9b7('0x26')](function(){return _0x6c83af;});}return _0x6c83af;})[_0xe9b7('0x26')](respondWithResult(_0x20e768,null))[_0xe9b7('0x30')](handleError(_0x20e768,null));};exports[_0xe9b7('0x64')]=function(_0x19575a,_0x405dc6){return db[_0xe9b7('0x4a')][_0xe9b7('0x64')]()['then'](respondWithResult(_0x405dc6,null))[_0xe9b7('0x30')](handleError(_0x405dc6,null));};exports[_0xe9b7('0x65')]=function(_0x43003f,_0x5edf67,_0x46dfbe){if(_0x43003f[_0xe9b7('0x63')]['id']){delete _0x43003f[_0xe9b7('0x63')]['id'];}return db['MailAccount']['find']({'where':{'id':_0x43003f[_0xe9b7('0x66')]['id']}})[_0xe9b7('0x26')](handleEntityNotFound(_0x5edf67,null))[_0xe9b7('0x26')](function(_0x545875){if(_0x545875){_0x43003f[_0xe9b7('0x63')]['MailAccountId']=_0x545875['id'];return db['Disposition'][_0xe9b7('0x67')](_0x43003f[_0xe9b7('0x63')]);}})[_0xe9b7('0x26')](respondWithResult(_0x5edf67,null))['catch'](handleError(_0x5edf67,null));};exports[_0xe9b7('0x68')]=function(_0x1d3049,_0x5640c0,_0x36e6c2){var _0x257f07={'raw':![],'where':{}};var _0xd70e2c={};var _0xc35249={'count':0x0,'rows':[]};return db[_0xe9b7('0x4a')][_0xe9b7('0x69')]({'where':{'id':_0x1d3049[_0xe9b7('0x66')]['id']}})[_0xe9b7('0x26')](handleEntityNotFound(_0x5640c0,null))[_0xe9b7('0x26')](function(_0x27fc64){if(_0x27fc64){_0xd70e2c['model']=_[_0xe9b7('0x4e')](db[_0xe9b7('0x6a')]['rawAttributes']);_0xd70e2c[_0xe9b7('0x4d')]=_['keys'](_0x1d3049[_0xe9b7('0x4d')]);_0xd70e2c[_0xe9b7('0x4f')]=_[_0xe9b7('0x50')](_0xd70e2c[_0xe9b7('0x51')],_0xd70e2c[_0xe9b7('0x4d')]);_0x257f07[_0xe9b7('0x52')]=_[_0xe9b7('0x50')](_0xd70e2c['model'],qs[_0xe9b7('0x53')](_0x1d3049[_0xe9b7('0x4d')]['fields']));_0x257f07['attributes']=_0x257f07[_0xe9b7('0x52')][_0xe9b7('0x54')]?_0x257f07[_0xe9b7('0x52')]:_0xd70e2c[_0xe9b7('0x51')];if(!_0x1d3049[_0xe9b7('0x4d')]['hasOwnProperty'](_0xe9b7('0x56'))){_0x257f07[_0xe9b7('0x35')]=qs[_0xe9b7('0x35')](_0x1d3049[_0xe9b7('0x4d')][_0xe9b7('0x35')]);_0x257f07[_0xe9b7('0x33')]=qs[_0xe9b7('0x33')](_0x1d3049['query']['offset']);}_0x257f07[_0xe9b7('0x57')]=qs[_0xe9b7('0x58')](_0x1d3049[_0xe9b7('0x4d')]['sort']);_0x257f07[_0xe9b7('0x59')]=qs[_0xe9b7('0x4f')](_[_0xe9b7('0x5a')](_0x1d3049[_0xe9b7('0x4d')],_0xd70e2c[_0xe9b7('0x4f')]));_0x257f07['where'][_0xe9b7('0x6b')]=_0x27fc64['id'];if(_0x1d3049[_0xe9b7('0x4d')][_0xe9b7('0x5b')]){_0x257f07['where']=_[_0xe9b7('0x61')](_0x257f07[_0xe9b7('0x59')],{'$or':_[_0xe9b7('0x49')](_0x257f07[_0xe9b7('0x52')],function(_0x136b3f){var _0x2392de={};_0x2392de[_0x136b3f]={'$like':'%'+_0x1d3049[_0xe9b7('0x4d')]['filter']+'%'};return _0x2392de;})});}_0x257f07=_[_0xe9b7('0x61')]({},_0x257f07,_0x1d3049[_0xe9b7('0x5c')]);return db['Disposition'][_0xe9b7('0x36')]({'where':_0x257f07['where']})[_0xe9b7('0x26')](function(_0x54023b){_0xc35249[_0xe9b7('0x36')]=_0x54023b;if(_0x1d3049[_0xe9b7('0x4d')][_0xe9b7('0x60')]){_0x257f07[_0xe9b7('0x5d')]=[{'all':!![]}];}return db[_0xe9b7('0x6a')][_0xe9b7('0x5e')](_0x257f07);})['then'](function(_0x3aeb58){_0xc35249[_0xe9b7('0x6c')]=_0x3aeb58;return _0xc35249;});}})[_0xe9b7('0x26')](respondWithFilteredResult(_0x5640c0,_0x257f07))['catch'](handleError(_0x5640c0,null));};exports[_0xe9b7('0x6d')]=function(_0x530d73,_0x1615ac,_0x40f6c8){return db[_0xe9b7('0x4a')][_0xe9b7('0x62')]({'where':{'id':_0x530d73[_0xe9b7('0x66')]['id']}})[_0xe9b7('0x26')](handleEntityNotFound(_0x1615ac,null))[_0xe9b7('0x26')](function(_0x4a9bc5){if(_0x4a9bc5){return _0x4a9bc5[_0xe9b7('0x6d')](_0x530d73[_0xe9b7('0x4d')][_0xe9b7('0x6e')]);}})['then'](respondWithStatusCode(_0x1615ac,null))[_0xe9b7('0x30')](handleError(_0x1615ac,null));};exports[_0xe9b7('0x6f')]=function(_0x13b573,_0x24b1c0,_0x41d1b9){if(_0x13b573[_0xe9b7('0x63')]['id']){delete _0x13b573[_0xe9b7('0x63')]['id'];}return db['MailAccount'][_0xe9b7('0x62')]({'where':{'id':_0x13b573[_0xe9b7('0x66')]['id']}})[_0xe9b7('0x26')](handleEntityNotFound(_0x24b1c0,null))[_0xe9b7('0x26')](function(_0x44cb6d){if(_0x44cb6d){_0x13b573[_0xe9b7('0x63')]['MailAccountId']=_0x44cb6d['id'];return db['CannedAnswer'][_0xe9b7('0x67')](_0x13b573[_0xe9b7('0x63')]);}})[_0xe9b7('0x26')](respondWithResult(_0x24b1c0,null))[_0xe9b7('0x30')](handleError(_0x24b1c0,null));};exports[_0xe9b7('0x70')]=function(_0x5384f9,_0x5a94f3,_0x58f003){var _0x331d39={'raw':![],'where':{}};var _0x47c5b1={};var _0x143d96={'count':0x0,'rows':[]};return db[_0xe9b7('0x4a')]['findOne']({'where':{'id':_0x5384f9[_0xe9b7('0x66')]['id']}})['then'](handleEntityNotFound(_0x5a94f3,null))[_0xe9b7('0x26')](function(_0x45dd60){if(_0x45dd60){_0x47c5b1[_0xe9b7('0x51')]=_[_0xe9b7('0x4e')](db['CannedAnswer'][_0xe9b7('0x4b')]);_0x47c5b1[_0xe9b7('0x4d')]=_[_0xe9b7('0x4e')](_0x5384f9[_0xe9b7('0x4d')]);_0x47c5b1[_0xe9b7('0x4f')]=_[_0xe9b7('0x50')](_0x47c5b1[_0xe9b7('0x51')],_0x47c5b1['query']);_0x331d39[_0xe9b7('0x52')]=_['intersection'](_0x47c5b1['model'],qs['fields'](_0x5384f9[_0xe9b7('0x4d')][_0xe9b7('0x53')]));_0x331d39[_0xe9b7('0x52')]=_0x331d39[_0xe9b7('0x52')][_0xe9b7('0x54')]?_0x331d39[_0xe9b7('0x52')]:_0x47c5b1['model'];if(!_0x5384f9[_0xe9b7('0x4d')]['hasOwnProperty'](_0xe9b7('0x56'))){_0x331d39[_0xe9b7('0x35')]=qs[_0xe9b7('0x35')](_0x5384f9['query']['limit']);_0x331d39[_0xe9b7('0x33')]=qs[_0xe9b7('0x33')](_0x5384f9[_0xe9b7('0x4d')][_0xe9b7('0x33')]);}_0x331d39[_0xe9b7('0x57')]=qs[_0xe9b7('0x58')](_0x5384f9[_0xe9b7('0x4d')][_0xe9b7('0x58')]);_0x331d39[_0xe9b7('0x59')]=qs[_0xe9b7('0x4f')](_[_0xe9b7('0x5a')](_0x5384f9[_0xe9b7('0x4d')],_0x47c5b1[_0xe9b7('0x4f')]));_0x331d39[_0xe9b7('0x59')]['MailAccountId']=_0x45dd60['id'];if(_0x5384f9['query'][_0xe9b7('0x5b')]){_0x331d39[_0xe9b7('0x59')]=_[_0xe9b7('0x61')](_0x331d39[_0xe9b7('0x59')],{'$or':_[_0xe9b7('0x49')](_0x331d39['attributes'],function(_0x5a4c4b){var _0xa6e907={};_0xa6e907[_0x5a4c4b]={'$like':'%'+_0x5384f9[_0xe9b7('0x4d')][_0xe9b7('0x5b')]+'%'};return _0xa6e907;})});}_0x331d39=_[_0xe9b7('0x61')]({},_0x331d39,_0x5384f9['options']);return db[_0xe9b7('0x71')][_0xe9b7('0x36')]({'where':_0x331d39[_0xe9b7('0x59')]})[_0xe9b7('0x26')](function(_0xb385d){_0x143d96[_0xe9b7('0x36')]=_0xb385d;if(_0x5384f9[_0xe9b7('0x4d')]['includeAll']){_0x331d39[_0xe9b7('0x5d')]=[{'all':!![]}];}return db[_0xe9b7('0x71')][_0xe9b7('0x5e')](_0x331d39);})['then'](function(_0x3a4e5a){_0x143d96[_0xe9b7('0x6c')]=_0x3a4e5a;return _0x143d96;});}})[_0xe9b7('0x26')](respondWithFilteredResult(_0x5a94f3,_0x331d39))[_0xe9b7('0x30')](handleError(_0x5a94f3,null));};exports[_0xe9b7('0x72')]=function(_0x408e7a,_0x1ac4ed,_0x2d0064){return db[_0xe9b7('0x4a')]['find']({'where':{'id':_0x408e7a[_0xe9b7('0x66')]['id']}})[_0xe9b7('0x26')](handleEntityNotFound(_0x1ac4ed,null))['then'](function(_0x2885d6){if(_0x2885d6){return _0x2885d6[_0xe9b7('0x72')](_0x408e7a[_0xe9b7('0x4d')]['ids']);}})[_0xe9b7('0x26')](respondWithStatusCode(_0x1ac4ed,null))[_0xe9b7('0x30')](handleError(_0x1ac4ed,null));};exports[_0xe9b7('0x67')]=function(_0x1ad6fd,_0x393539){var _0x11a9c2={'name':_0x1ad6fd[_0xe9b7('0x63')][_0xe9b7('0x40')],'key':_0x1ad6fd[_0xe9b7('0x63')]['key'],'email':_0x1ad6fd[_0xe9b7('0x63')]['email'],'ListId':_0x1ad6fd[_0xe9b7('0x63')]['ListId'],'active':!_['isNil'](_0x1ad6fd[_0xe9b7('0x63')][_0xe9b7('0x73')])?_0x1ad6fd[_0xe9b7('0x63')][_0xe9b7('0x73')]:!![],'description':_0x1ad6fd['body'][_0xe9b7('0x74')]||null,'Imap':{},'Smtp':{}};if(_['isNil'](_0x1ad6fd[_0xe9b7('0x63')][_0xe9b7('0x75')])){if(_0x1ad6fd[_0xe9b7('0x63')][_0xe9b7('0x76')]){_0x11a9c2[_0xe9b7('0x44')][_0xe9b7('0x77')]=_0x11a9c2[_0xe9b7('0x46')]['user']=_0x1ad6fd[_0xe9b7('0x63')]['cuser'];_0x11a9c2['Imap'][_0xe9b7('0x78')]=_0x11a9c2[_0xe9b7('0x46')][_0xe9b7('0x79')]=_0x1ad6fd[_0xe9b7('0x63')][_0xe9b7('0x7a')];}else{_0x11a9c2[_0xe9b7('0x44')][_0xe9b7('0x7b')]=_0x11a9c2[_0xe9b7('0x46')][_0xe9b7('0x7b')]=![];}_0x11a9c2['Imap'][_0xe9b7('0x7c')]=_0x1ad6fd['body'][_0xe9b7('0x44')][_0xe9b7('0x7c')];_0x11a9c2[_0xe9b7('0x44')]['port']=_0x1ad6fd[_0xe9b7('0x63')][_0xe9b7('0x44')][_0xe9b7('0x7d')];_0x11a9c2['Smtp'][_0xe9b7('0x7c')]=_0x1ad6fd[_0xe9b7('0x63')]['Smtp'][_0xe9b7('0x7c')];_0x11a9c2['Smtp'][_0xe9b7('0x7d')]=_0x1ad6fd[_0xe9b7('0x63')]['Smtp'][_0xe9b7('0x7d')];}else{_0x11a9c2[_0xe9b7('0x44')][_0xe9b7('0x7e')]=_0x11a9c2['Smtp']['service']=_0x1ad6fd['body']['cservice'];_0x11a9c2[_0xe9b7('0x44')][_0xe9b7('0x77')]=_0x11a9c2['Smtp'][_0xe9b7('0x77')]=_0x1ad6fd[_0xe9b7('0x63')][_0xe9b7('0x7f')];_0x11a9c2[_0xe9b7('0x44')][_0xe9b7('0x78')]=_0x11a9c2[_0xe9b7('0x46')][_0xe9b7('0x79')]=_0x1ad6fd[_0xe9b7('0x63')]['cpassword'];}return db[_0xe9b7('0x4a')][_0xe9b7('0x67')](_0x11a9c2,{'include':[{'model':db['MailServerOut'],'as':_0xe9b7('0x46')},{'model':db['MailServerIn'],'as':'Imap'}]})[_0xe9b7('0x26')](function(_0x4c9220){var _0x1545f1=_0x1ad6fd[_0xe9b7('0x77')]['get']({'plain':!![]});if(!_0x1545f1)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x1545f1[_0xe9b7('0x80')]==='user'){var _0xcca785=_0x4c9220[_0xe9b7('0x3d')]({'plain':!![]});return db[_0xe9b7('0x81')][_0xe9b7('0x62')]({'where':{'name':_0xe9b7('0x82'),'userProfileId':_0x1545f1[_0xe9b7('0x83')]},'raw':!![]})[_0xe9b7('0x26')](function(_0x491d61){if(_0x491d61&&_0x491d61[_0xe9b7('0x84')]===0x0){return db[_0xe9b7('0x3e')][_0xe9b7('0x67')]({'name':_0xcca785[_0xe9b7('0x40')],'resourceId':_0xcca785['id'],'type':_0x491d61['name'],'sectionId':_0x491d61['id']},{})['then'](function(){return _0x4c9220;});}else{return _0x4c9220;}})[_0xe9b7('0x30')](function(_0x262607){logger[_0xe9b7('0x2b')](_0xe9b7('0x85'),_0x262607);throw _0x262607;});}return _0x4c9220;})[_0xe9b7('0x26')](respondWithResult(_0x393539,0xc9))[_0xe9b7('0x30')](handleError(_0x393539,null));};exports[_0xe9b7('0x86')]=function(_0x4699bf,_0xc6fe57,_0x76be5d){return db[_0xe9b7('0x4a')][_0xe9b7('0x69')]({'where':{'id':_0x4699bf[_0xe9b7('0x66')]['id']}})[_0xe9b7('0x26')](handleEntityNotFound(_0xc6fe57,null))[_0xe9b7('0x26')](function(_0x359150){if(_0x359150){return _0x359150[_0xe9b7('0x86')]();}return null;})[_0xe9b7('0x26')](respondWithResult(_0xc6fe57,null))['catch'](handleError(_0xc6fe57,null));};exports['addImap']=function(_0xb5bc77,_0x2084d6,_0x494541){if(_0xb5bc77[_0xe9b7('0x63')]['id']){delete _0xb5bc77[_0xe9b7('0x63')]['id'];}return db[_0xe9b7('0x4a')][_0xe9b7('0x62')]({'where':{'id':_0xb5bc77['params']['id']}})[_0xe9b7('0x26')](handleEntityNotFound(_0x2084d6,null))[_0xe9b7('0x26')](function(_0x2e6800){if(_0x2e6800){_0xb5bc77[_0xe9b7('0x63')][_0xe9b7('0x6b')]=_0x2e6800['id'];return db[_0xe9b7('0x43')]['create'](_0xb5bc77[_0xe9b7('0x63')]);}})[_0xe9b7('0x26')](respondWithResult(_0x2084d6,null))[_0xe9b7('0x30')](handleError(_0x2084d6,null));};exports['removeImap']=function(_0x37b930,_0x35bcb8,_0x26cd6d){return db[_0xe9b7('0x4a')]['findOne']({'where':{'id':_0x37b930[_0xe9b7('0x66')]['id']}})[_0xe9b7('0x26')](handleEntityNotFound(_0x35bcb8,null))['then'](function(_0x3f266e){if(_0x3f266e){return _0x3f266e[_0xe9b7('0x87')](null);}return null;})[_0xe9b7('0x26')](respondWithStatusCode(_0x35bcb8,null))['catch'](handleError(_0x35bcb8,null));};exports[_0xe9b7('0x88')]=function(_0x14f3bb,_0x5adce6,_0x2ed3ad){return db[_0xe9b7('0x4a')][_0xe9b7('0x69')]({'where':{'id':_0x14f3bb[_0xe9b7('0x66')]['id']}})[_0xe9b7('0x26')](handleEntityNotFound(_0x5adce6,null))['then'](function(_0x10c058){if(_0x10c058){return _0x10c058[_0xe9b7('0x88')]();}return null;})['then'](respondWithResult(_0x5adce6,null))['catch'](handleError(_0x5adce6,null));};exports[_0xe9b7('0x89')]=function(_0x21e6ea,_0xdebe91,_0x18b002){if(_0x21e6ea['body']['id']){delete _0x21e6ea[_0xe9b7('0x63')]['id'];}return db[_0xe9b7('0x4a')][_0xe9b7('0x62')]({'where':{'id':_0x21e6ea[_0xe9b7('0x66')]['id']}})[_0xe9b7('0x26')](handleEntityNotFound(_0xdebe91,null))[_0xe9b7('0x26')](function(_0x43ee4b){if(_0x43ee4b){_0x21e6ea[_0xe9b7('0x63')][_0xe9b7('0x6b')]=_0x43ee4b['id'];return db['MailServerOut'][_0xe9b7('0x67')](_0x21e6ea[_0xe9b7('0x63')]);}})[_0xe9b7('0x26')](respondWithResult(_0xdebe91,null))[_0xe9b7('0x30')](handleError(_0xdebe91,null));};exports['removeSmtp']=function(_0x4db3e6,_0x541756,_0x2bee74){return db[_0xe9b7('0x4a')][_0xe9b7('0x69')]({'where':{'id':_0x4db3e6[_0xe9b7('0x66')]['id']}})['then'](handleEntityNotFound(_0x541756,null))[_0xe9b7('0x26')](function(_0x3dbf45){if(_0x3dbf45){return _0x3dbf45['setSmtp'](null);}return null;})[_0xe9b7('0x26')](respondWithStatusCode(_0x541756,null))[_0xe9b7('0x30')](handleError(_0x541756,null));};exports[_0xe9b7('0x8a')]=function(_0x4efc1b,_0x1bc36c,_0x23bec5){return db[_0xe9b7('0x8b')][_0xe9b7('0x62')]({'where':{'id':_0x4efc1b['params']['id']}})[_0xe9b7('0x26')](handleEntityNotFound(_0x1bc36c,null))[_0xe9b7('0x26')](function(_0x3de180){if(_0x3de180){return _0x3de180[_0xe9b7('0x8a')](_0x4efc1b['body'][_0xe9b7('0x6e')],_[_0xe9b7('0x8c')](_0x4efc1b[_0xe9b7('0x63')],[_0xe9b7('0x6e'),'id'])||{});}})[_0xe9b7('0x26')](respondWithResult(_0x1bc36c,null))[_0xe9b7('0x30')](handleError(_0x1bc36c,null));};exports['getInteractions']=function(_0x270ea4,_0x42fd3b,_0xc274da){var _0x3a1296={'raw':![],'where':{}};var _0x165967={};var _0x5171ce={'count':0x0,'rows':[]};return db[_0xe9b7('0x4a')]['findOne']({'where':{'id':_0x270ea4[_0xe9b7('0x66')]['id']}})['then'](handleEntityNotFound(_0x42fd3b,null))[_0xe9b7('0x26')](function(_0x377e90){if(_0x377e90){_0x165967[_0xe9b7('0x51')]=_[_0xe9b7('0x4e')](db[_0xe9b7('0x8b')]['rawAttributes']);_0x165967['query']=_[_0xe9b7('0x4e')](_0x270ea4[_0xe9b7('0x4d')]);_0x165967[_0xe9b7('0x4f')]=_[_0xe9b7('0x50')](_0x165967[_0xe9b7('0x51')],_0x165967['query']);_0x3a1296[_0xe9b7('0x52')]=_[_0xe9b7('0x50')](_0x165967[_0xe9b7('0x51')],qs[_0xe9b7('0x53')](_0x270ea4[_0xe9b7('0x4d')]['fields']));_0x3a1296[_0xe9b7('0x52')]=_0x3a1296[_0xe9b7('0x52')]['length']?_0x3a1296['attributes']:_0x165967[_0xe9b7('0x51')];if(!_0x270ea4['query']['hasOwnProperty'](_0xe9b7('0x56'))){_0x3a1296[_0xe9b7('0x35')]=qs[_0xe9b7('0x35')](_0x270ea4['query']['limit']);_0x3a1296[_0xe9b7('0x33')]=qs['offset'](_0x270ea4[_0xe9b7('0x4d')][_0xe9b7('0x33')]);}_0x3a1296['order']=qs['sort'](_0x270ea4[_0xe9b7('0x4d')]['sort']);_0x3a1296['where']=qs['filters'](_['pick'](_0x270ea4[_0xe9b7('0x4d')],_0x165967[_0xe9b7('0x4f')]));_0x3a1296[_0xe9b7('0x59')][_0xe9b7('0x6b')]=_0x377e90['id'];if(_0x270ea4[_0xe9b7('0x4d')][_0xe9b7('0x5b')]){_0x3a1296[_0xe9b7('0x59')]=_[_0xe9b7('0x61')](_0x3a1296[_0xe9b7('0x59')],{'$or':_[_0xe9b7('0x49')](_0x3a1296[_0xe9b7('0x52')],function(_0x482129){var _0x54289e={};_0x54289e[_0x482129]={'$like':'%'+_0x270ea4[_0xe9b7('0x4d')][_0xe9b7('0x5b')]+'%'};return _0x54289e;})});}_0x3a1296=_[_0xe9b7('0x61')]({},_0x3a1296,_0x270ea4[_0xe9b7('0x5c')]);return db[_0xe9b7('0x8b')]['count']({'where':_0x3a1296[_0xe9b7('0x59')]})[_0xe9b7('0x26')](function(_0x692709){_0x5171ce[_0xe9b7('0x36')]=_0x692709;if(_0x270ea4[_0xe9b7('0x4d')][_0xe9b7('0x60')]){_0x3a1296['include']=[{'model':db[_0xe9b7('0x8d')],'as':_0xe9b7('0x8e'),'required':![]},{'model':db[_0xe9b7('0x8f')],'as':_0xe9b7('0x90'),'attributes':[_0xe9b7('0x40'),_0xe9b7('0x91'),_0xe9b7('0x92')],'required':![]},{'model':db[_0xe9b7('0x93')],'as':_0xe9b7('0x94'),'attributes':['id',_0xe9b7('0x40'),_0xe9b7('0x95')],'where':_0x270ea4['query'][_0xe9b7('0x96')]?{'id':_0x270ea4[_0xe9b7('0x4d')][_0xe9b7('0x96')]}:undefined,'required':_0x270ea4['query'][_0xe9b7('0x96')]?!![]:![]}];}return db[_0xe9b7('0x8b')]['findAll'](_0x3a1296);})['then'](function(_0x33a98b){_0x5171ce[_0xe9b7('0x6c')]=_0x33a98b;return _0x5171ce;});}})[_0xe9b7('0x26')](respondWithFilteredResult(_0x42fd3b,_0x3a1296))[_0xe9b7('0x30')](handleError(_0x42fd3b,null));};exports[_0xe9b7('0x97')]=function addApplications(_0xba54cb,_0x16ce43){var _0x2684b4=_0xba54cb[_0xe9b7('0x66')]['id'];var _0x4da690=_0xba54cb[_0xe9b7('0x63')];var _0xe90888=0xc8;var _0x17db2d=null;return db[_0xe9b7('0x98')][_0xe9b7('0x99')]({'isolationLevel':db[_0xe9b7('0x98')]['Transaction']['ISOLATION_LEVELS'][_0xe9b7('0x9a')]},function(_0x555896){return db[_0xe9b7('0x4a')][_0xe9b7('0x69')]({'where':{'id':_0x2684b4},'transaction':_0x555896})[_0xe9b7('0x26')](function(_0x391f3d){if(_0x391f3d){return db[_0xe9b7('0x9b')][_0xe9b7('0x3f')]({'where':{'MailAccountId':_0x2684b4},'transaction':_0x555896})[_0xe9b7('0x26')](function(){var _0x1a6e69=_[_0xe9b7('0x49')](_0x4da690,function(_0x474ddb){_0x474ddb['MailAccountId']=_0x2684b4;return _0x474ddb;});return db['MailApplication']['bulkCreate'](_0x1a6e69,{'transaction':_0x555896});});}else{_0xe90888=0x194;_0x17db2d=[];}});})['then'](function(){if(_0xe90888!==0x194){return db['MailApplication']['findAndCountAll']({'where':{'MailAccountId':_0x2684b4},'order':_0xe9b7('0x9c')})['then'](function(_0xfa488e){_0x17db2d=_0xfa488e;});}})[_0xe9b7('0x30')](function(_0x3bda67){_0xe90888=0x1f4;logger[_0xe9b7('0x2b')](_0x3bda67[_0xe9b7('0x9d')]);if(_0x3bda67[_0xe9b7('0x40')]){delete _0x3bda67[_0xe9b7('0x40')];}_0x17db2d=_0x3bda67;})[_0xe9b7('0x9e')](function(){if(_0x17db2d===null){_0x16ce43['sendStatus'](_0xe90888);}else{if(_0xe90888===0x1f4){_0x16ce43[_0xe9b7('0x32')](_0xe90888)[_0xe9b7('0x41')](_0x17db2d);}else{_0x16ce43['status'](_0xe90888)[_0xe9b7('0x39')](_0x17db2d);}}});};exports[_0xe9b7('0x9f')]=function(_0xf655b6,_0x4f2c98,_0x1d754f){var _0x3dede1={};var _0xf122e={};var _0x224801;var _0x26b2ac;return db[_0xe9b7('0x4a')][_0xe9b7('0x69')]({'where':{'id':_0xf655b6[_0xe9b7('0x66')]['id']}})[_0xe9b7('0x26')](handleEntityNotFound(_0x4f2c98,null))[_0xe9b7('0x26')](function(_0x3752b3){if(_0x3752b3){_0x224801=_0x3752b3;_0xf122e['model']=_[_0xe9b7('0x4e')](db[_0xe9b7('0x9b')][_0xe9b7('0x4b')]);_0xf122e[_0xe9b7('0x4d')]=_[_0xe9b7('0x4e')](_0xf655b6[_0xe9b7('0x4d')]);_0xf122e['filters']=_[_0xe9b7('0x50')](_0xf122e[_0xe9b7('0x51')],_0xf122e[_0xe9b7('0x4d')]);_0x3dede1['attributes']=_[_0xe9b7('0x50')](_0xf122e[_0xe9b7('0x51')],qs[_0xe9b7('0x53')](_0xf655b6['query'][_0xe9b7('0x53')]));_0x3dede1[_0xe9b7('0x52')]=_0x3dede1[_0xe9b7('0x52')][_0xe9b7('0x54')]?_0x3dede1[_0xe9b7('0x52')]:_0xf122e[_0xe9b7('0x51')];_0x3dede1[_0xe9b7('0x57')]=qs[_0xe9b7('0x58')](_0xf655b6[_0xe9b7('0x4d')][_0xe9b7('0x58')]);_0x3dede1['where']=qs[_0xe9b7('0x4f')](_[_0xe9b7('0x5a')](_0xf655b6['query'],_0xf122e['filters']));if(_0xf655b6[_0xe9b7('0x4d')]['filter']){_0x3dede1['where']=_[_0xe9b7('0x61')](_0x3dede1[_0xe9b7('0x59')],{'$or':_[_0xe9b7('0x49')](_0x3dede1['attributes'],function(_0x2deaf3){var _0xba1b4c={};_0xba1b4c[_0x2deaf3]={'$like':'%'+_0xf655b6[_0xe9b7('0x4d')][_0xe9b7('0x5b')]+'%'};return _0xba1b4c;})});}_0x3dede1=_[_0xe9b7('0x61')]({},_0x3dede1,_0xf655b6[_0xe9b7('0x5c')]);return _0x224801[_0xe9b7('0x9f')](_0x3dede1);}})[_0xe9b7('0x26')](function(_0x3001b9){if(_0x3001b9){_0x26b2ac=_0x3001b9[_0xe9b7('0x54')];if(!_0xf655b6['query']['hasOwnProperty'](_0xe9b7('0x56'))){_0x3dede1['limit']=qs[_0xe9b7('0x35')](_0xf655b6[_0xe9b7('0x4d')]['limit']);_0x3dede1[_0xe9b7('0x33')]=qs[_0xe9b7('0x33')](_0xf655b6[_0xe9b7('0x4d')][_0xe9b7('0x33')]);}return _0x224801['getApplications'](_0x3dede1);}})['then'](function(_0x1e9b5f){if(_0x1e9b5f){return _0x1e9b5f?{'count':_0x26b2ac,'rows':_0x1e9b5f}:null;}})[_0xe9b7('0x26')](respondWithResult(_0x4f2c98,null))[_0xe9b7('0x30')](handleError(_0x4f2c98,null));};exports[_0xe9b7('0xa0')]=function(_0x568d3a,_0x3f79a6,_0x1bfca0){var _0x49ddc8={'raw':!![],'where':{}};var _0x11e53e={};var _0x41a0b1={'count':0x0,'rows':[]};return db[_0xe9b7('0x4a')][_0xe9b7('0x69')]({'where':{'id':_0x568d3a[_0xe9b7('0x66')]['id']}})[_0xe9b7('0x26')](handleEntityNotFound(_0x3f79a6,null))[_0xe9b7('0x26')](function(_0x4d63f5){if(_0x4d63f5){_0x11e53e[_0xe9b7('0x51')]=_[_0xe9b7('0x4e')](db['MailMessage'][_0xe9b7('0x4b')]);_0x11e53e[_0xe9b7('0x4d')]=_[_0xe9b7('0x4e')](_0x568d3a['query']);_0x11e53e[_0xe9b7('0x4f')]=_[_0xe9b7('0x50')](_0x11e53e[_0xe9b7('0x51')],_0x11e53e['query']);_0x49ddc8[_0xe9b7('0x52')]=_[_0xe9b7('0x50')](_0x11e53e[_0xe9b7('0x51')],qs[_0xe9b7('0x53')](_0x568d3a['query']['fields']));_0x49ddc8[_0xe9b7('0x52')]=_0x49ddc8[_0xe9b7('0x52')][_0xe9b7('0x54')]?_0x49ddc8[_0xe9b7('0x52')]:_0x11e53e[_0xe9b7('0x51')];if(!_0x568d3a[_0xe9b7('0x4d')][_0xe9b7('0x55')](_0xe9b7('0x56'))){_0x49ddc8[_0xe9b7('0x35')]=qs['limit'](_0x568d3a[_0xe9b7('0x4d')][_0xe9b7('0x35')]);_0x49ddc8[_0xe9b7('0x33')]=qs['offset'](_0x568d3a[_0xe9b7('0x4d')]['offset']);}_0x49ddc8[_0xe9b7('0x57')]=qs[_0xe9b7('0x58')](_0x568d3a['query']['sort']);_0x49ddc8[_0xe9b7('0x59')]=qs[_0xe9b7('0x4f')](_[_0xe9b7('0x5a')](_0x568d3a['query'],_0x11e53e['filters']));_0x49ddc8[_0xe9b7('0x59')]['MailAccountId']=_0x4d63f5['id'];if(_0x568d3a[_0xe9b7('0x4d')][_0xe9b7('0x5b')]){_0x49ddc8[_0xe9b7('0x59')]=_[_0xe9b7('0x61')](_0x49ddc8['where'],{'$or':_['map'](_0x49ddc8[_0xe9b7('0x52')],function(_0x3e6584){var _0x58bbb6={};_0x58bbb6[_0x3e6584]={'$like':'%'+_0x568d3a[_0xe9b7('0x4d')]['filter']+'%'};return _0x58bbb6;})});}if(_0x568d3a[_0xe9b7('0x4d')]['$gte']){var _0x4bcf5c=_0x568d3a[_0xe9b7('0x4d')][_0xe9b7('0xa1')][_0xe9b7('0xa2')](',');var _0x23c91e={};_0x23c91e[_0x4bcf5c[0x0]]={'$gte':moment(_0x4bcf5c[0x1])['format'](_0xe9b7('0xa3'))};_0x49ddc8[_0xe9b7('0x59')]=_['merge'](_0x49ddc8[_0xe9b7('0x59')],_0x23c91e);}_0x49ddc8=_[_0xe9b7('0x61')]({},_0x49ddc8,_0x568d3a['options']);return db[_0xe9b7('0xa4')][_0xe9b7('0x36')]({'where':_0x49ddc8[_0xe9b7('0x59')]})['then'](function(_0x3d65e1){_0x41a0b1[_0xe9b7('0x36')]=_0x3d65e1;if(_0x568d3a['query'][_0xe9b7('0x60')]){_0x49ddc8[_0xe9b7('0x5d')]=[{'all':!![]}];}return db[_0xe9b7('0xa4')]['findAll'](_0x49ddc8);})[_0xe9b7('0x26')](function(_0x1190b2){if(_0x568d3a[_0xe9b7('0x4d')][_0xe9b7('0xa5')]==='true'){for(var _0x46707e=0x0;_0x46707e<_0x1190b2[_0xe9b7('0x54')];_0x46707e++){_0x1190b2[_0x46707e]['body']=juice(_0x1190b2[_0x46707e][_0xe9b7('0x63')]);}}_0x41a0b1['rows']=_0x1190b2;return _0x41a0b1;});}})[_0xe9b7('0x26')](respondWithFilteredResult(_0x3f79a6,_0x49ddc8))[_0xe9b7('0x30')](handleError(_0x3f79a6,null));};exports['send']=function(_0x2dd66c,_0x384f8c,_0x5b9f12){var _0x3e4f74,_0x5ce04d={},_0x433de0;if(_0x2dd66c[_0xe9b7('0x63')]['to']){_0x433de0=_0x2dd66c['body']['to'][_0xe9b7('0xa2')](',')[0x0];}return db['MailAccount']['find']({'where':{'id':_0x2dd66c[_0xe9b7('0x66')]['id']},'include':[{'model':db['CmList'],'as':_0xe9b7('0xa6'),'include':[{'model':db[_0xe9b7('0x8d')],'as':_0xe9b7('0xa7'),'where':{'email':_0x433de0},'limit':0x1,'order':[['updatedAt','DESC']]}]},{'model':db['MailServerOut'],'as':'Smtp','raw':!![]}]})[_0xe9b7('0x26')](handleEntityNotFound(_0x384f8c,null))[_0xe9b7('0x26')](function(_0x5f514a){if(_0x5f514a){_0x3e4f74=_0x5f514a;if(_0x5f514a['Smtp']){if(_[_0xe9b7('0xa8')](_0x2dd66c['body'][_0xe9b7('0xa9')])){_0x2dd66c[_0xe9b7('0x63')][_0xe9b7('0xa9')]=util['format'](_0xe9b7('0xaa'),_0x5f514a[_0xe9b7('0x40')],_0x5f514a[_0xe9b7('0xab')]||_0x5f514a[_0xe9b7('0x46')][_0xe9b7('0x77')]);}if(_0x2dd66c[_0xe9b7('0x63')][_0xe9b7('0xac')]&&_0x2dd66c[_0xe9b7('0x63')]['attachments'][_0xe9b7('0x54')]){for(var _0x5420ee=0x0;_0x5420ee<_0x2dd66c[_0xe9b7('0x63')][_0xe9b7('0xac')][_0xe9b7('0x54')];_0x5420ee+=0x1){_0x2dd66c[_0xe9b7('0x63')][_0xe9b7('0xac')][_0x5420ee]={'filename':_0x2dd66c[_0xe9b7('0x63')][_0xe9b7('0xac')][_0x5420ee][_0xe9b7('0x40')],'path':path[_0xe9b7('0xad')](config['root'],_0xe9b7('0xae'),_0x2dd66c[_0xe9b7('0x63')][_0xe9b7('0xac')][_0x5420ee][_0xe9b7('0xaf')])};}}var _0x19e3cc={'tls':{'rejectUnauthorized':![]}};if(_[_0xe9b7('0xa8')](_0x5f514a[_0xe9b7('0x46')][_0xe9b7('0x7e')])){if(_0x5f514a[_0xe9b7('0x46')][_0xe9b7('0x7b')]){_0x19e3cc[_0xe9b7('0xb0')]={'user':_0x5f514a[_0xe9b7('0x46')][_0xe9b7('0x77')],'pass':_0x5f514a[_0xe9b7('0x46')][_0xe9b7('0x79')]};}_0x19e3cc[_0xe9b7('0x7c')]=_0x5f514a[_0xe9b7('0x46')][_0xe9b7('0x7c')];_0x19e3cc['port']=_0x5f514a[_0xe9b7('0x46')][_0xe9b7('0x7d')];_0x19e3cc['secure']=_0x5f514a[_0xe9b7('0x46')][_0xe9b7('0xb1')];}else{_0x19e3cc['service']=_0x5f514a[_0xe9b7('0x46')][_0xe9b7('0x7e')];_0x19e3cc[_0xe9b7('0xb0')]={'user':_0x5f514a[_0xe9b7('0x46')][_0xe9b7('0x77')],'pass':_0x5f514a['Smtp'][_0xe9b7('0x79')]};}return respondWithRpcPromise(_0xe9b7('0xb2'),'sendMail',{'account':_0x19e3cc,'message':_0x2dd66c[_0xe9b7('0x63')]});}else{throw new Error(_0xe9b7('0xb3'));}}})[_0xe9b7('0x26')](function(_0x1a0068){if(_0x1a0068){_0x5ce04d=_0x1a0068;if(_0x3e4f74[_0xe9b7('0xa6')]){if(_0x3e4f74['List'][_0xe9b7('0xa7')][_0xe9b7('0x54')]){return _0x3e4f74[_0xe9b7('0xa6')][_0xe9b7('0xa7')][0x0];}else{return db['CmContact']['create'](_[_0xe9b7('0x1d')](_0x2dd66c[_0xe9b7('0x63')],{'firstName':_0x2dd66c['body']['to'],'email':_0x2dd66c[_0xe9b7('0x63')]['to'],'phone':_0x2dd66c[_0xe9b7('0x63')]['to'],'ListId':_0x3e4f74['ListId']}));}}else{throw new Error(_0xe9b7('0xb3'));}}})[_0xe9b7('0x26')](function(_0x4e7868){if(_0x4e7868){var _0xc9fe46={'UserId':_0x2dd66c[_0xe9b7('0x77')]['id'],'ContactId':_0x4e7868['id'],'MailAccountId':_0x3e4f74['id'],'inReplyTo':_0x5ce04d[_0xe9b7('0xb4')],'to':_0x2dd66c[_0xe9b7('0x63')][_0xe9b7('0xa9')],'cc':_0x2dd66c['body']['cc'],'subject':_0x2dd66c[_0xe9b7('0x63')]['subject'],'attach':_0x2dd66c['body']['attach'],'firstMsgDirection':_0xe9b7('0xb5'),'lastMsgAt':moment()[_0xe9b7('0xb6')]('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgDirection':'out','Messages':[_[_0xe9b7('0x61')](_0x2dd66c[_0xe9b7('0x63')],{'messageId':_0x5ce04d['messageId'],'sentAt':moment()['format'](_0xe9b7('0xa3')),'read':!![],'MailAccountId':_0x3e4f74['id'],'UserId':_0x2dd66c[_0xe9b7('0x77')]['id'],'ContactId':_0x4e7868['id']})]};if(_0x2dd66c[_0xe9b7('0x63')][_0xe9b7('0xb7')]){_0xc9fe46=_[_0xe9b7('0x61')](_0xc9fe46,_0x2dd66c[_0xe9b7('0x63')][_0xe9b7('0xb7')]);}return db[_0xe9b7('0x8b')]['create'](_0xc9fe46,{'include':[{'model':db['MailMessage'],'as':_0xe9b7('0xb8')}]});}})[_0xe9b7('0x26')](respondWithResult(_0x384f8c,null))[_0xe9b7('0x30')](handleError(_0x384f8c,null));};exports[_0xe9b7('0xb9')]=function(_0x7004cc,_0x4925e8,_0x12e3e3){return db[_0xe9b7('0x4a')]['find']({'where':{'id':_0x7004cc[_0xe9b7('0x66')]['id']},'include':[{'model':db[_0xe9b7('0x45')],'as':_0xe9b7('0x46'),'raw':!![]}]})[_0xe9b7('0x26')](handleEntityNotFound(_0x4925e8,null))[_0xe9b7('0x26')](function(_0x493a8c){if(_0x493a8c&&_0x493a8c['Smtp']){var _0x54618f={'id':_0x493a8c['id'],'tls':{'rejectUnauthorized':![]}};if(_0x493a8c['Smtp'][_0xe9b7('0x7e')]){_0x54618f['service']=_0x493a8c['Smtp'][_0xe9b7('0x7e')];}else{_0x54618f['host']=_0x493a8c['Smtp'][_0xe9b7('0x7c')];_0x54618f[_0xe9b7('0x7d')]=_0x493a8c[_0xe9b7('0x46')][_0xe9b7('0x7d')];_0x54618f[_0xe9b7('0xb1')]=_0x493a8c[_0xe9b7('0x46')][_0xe9b7('0xb1')];}if(_0x493a8c['Smtp']['authentication']){_0x54618f[_0xe9b7('0xb0')]={'user':_0x493a8c[_0xe9b7('0x46')][_0xe9b7('0x77')],'pass':_0x493a8c[_0xe9b7('0x46')]['pass']};}return respondWithRpcPromise(_0xe9b7('0xba'),'verifySmtp',{'account':_0x54618f});}})[_0xe9b7('0x26')](respondWithResult(_0x4925e8,null))['catch'](handleError(_0x4925e8,null));};exports[_0xe9b7('0x3f')]=function(_0x59bf62,_0x392fa3){return db[_0xe9b7('0x4a')][_0xe9b7('0x62')]({'where':{'id':_0x59bf62['params']['id']}})[_0xe9b7('0x26')](handleEntityNotFound(_0x392fa3,null))[_0xe9b7('0x26')](function(_0x349825){if(_0x349825&&_0x349825['service']){throw new db[(_0xe9b7('0xbb'))][(_0xe9b7('0xbc'))]('You\x20can\x27t\x20remove\x20the\x20mail\x20service\x20account');}return _0x349825;})['then'](removeEntity(_0x392fa3,null))[_0xe9b7('0x30')](handleError(_0x392fa3,null));};exports['addAgents']=function(_0x270a45,_0x432c93,_0x33afa1){return db[_0xe9b7('0x4a')]['find']({'where':{'id':_0x270a45['params']['id']}})[_0xe9b7('0x26')](handleEntityNotFound(_0x432c93,null))['then'](function(_0x5ef015){if(_0x5ef015){return _0x5ef015[_0xe9b7('0xbd')](_0x270a45[_0xe9b7('0x63')][_0xe9b7('0x6e')],_[_0xe9b7('0x8c')](_0x270a45[_0xe9b7('0x63')],[_0xe9b7('0x6e'),'id'])||{})[_0xe9b7('0xbe')](function(_0x2dedff){for(var _0x644c55=0x0;_0x644c55<_0x270a45[_0xe9b7('0x63')][_0xe9b7('0x6e')][_0xe9b7('0x54')];_0x644c55+=0x1){socket[_0xe9b7('0xbf')](_0xe9b7('0xc0'),{'UserId':Number(_0x270a45['body'][_0xe9b7('0x6e')][_0x644c55]),'MailAccountId':Number(_0x270a45[_0xe9b7('0x66')]['id'])});}return _0x2dedff;});}})[_0xe9b7('0x26')](respondWithResult(_0x432c93,null))[_0xe9b7('0x30')](handleError(_0x432c93,null));};exports[_0xe9b7('0xc1')]=function(_0x176c60,_0x1bf7c9,_0x36e2b4){return db[_0xe9b7('0x4a')][_0xe9b7('0x62')]({'where':{'id':_0x176c60[_0xe9b7('0x66')]['id']}})[_0xe9b7('0x26')](handleEntityNotFound(_0x1bf7c9,null))[_0xe9b7('0x26')](function(_0x13b47b){if(_0x13b47b){return _0x13b47b[_0xe9b7('0xc1')](_0x176c60[_0xe9b7('0x4d')][_0xe9b7('0x6e')])[_0xe9b7('0x26')](function(){if(_['isArray'](_0x176c60[_0xe9b7('0x4d')][_0xe9b7('0x6e')])){for(var _0x58e771=0x0;_0x58e771<_0x176c60[_0xe9b7('0x4d')][_0xe9b7('0x6e')][_0xe9b7('0x54')];_0x58e771+=0x1){socket[_0xe9b7('0xbf')](_0xe9b7('0xc2'),{'UserId':Number(_0x176c60[_0xe9b7('0x4d')][_0xe9b7('0x6e')][_0x58e771]),'MailAccountId':Number(_0x176c60[_0xe9b7('0x66')]['id'])});}}else{socket['emit'](_0xe9b7('0xc2'),{'UserId':Number(_0x176c60['query'][_0xe9b7('0x6e')]),'MailAccountId':Number(_0x176c60[_0xe9b7('0x66')]['id'])});}});}})[_0xe9b7('0x26')](respondWithStatusCode(_0x1bf7c9,null))[_0xe9b7('0x30')](handleError(_0x1bf7c9,null));};exports[_0xe9b7('0xc3')]=function(_0x23ea39,_0x31b856,_0x5d9e70){var _0x9dc12b={};var _0x2f9008={};var _0x5d9442;var _0x1f7804;return db[_0xe9b7('0x4a')]['findOne']({'where':{'id':_0x23ea39['params']['id']}})[_0xe9b7('0x26')](handleEntityNotFound(_0x31b856,null))['then'](function(_0x53aa1b){if(_0x53aa1b){_0x5d9442=_0x53aa1b;_0x2f9008[_0xe9b7('0x51')]=_[_0xe9b7('0x4e')](db[_0xe9b7('0x8f')][_0xe9b7('0x4b')]);_0x2f9008[_0xe9b7('0x4d')]=_[_0xe9b7('0x4e')](_0x23ea39[_0xe9b7('0x4d')]);_0x2f9008[_0xe9b7('0x4f')]=_[_0xe9b7('0x50')](_0x2f9008['model'],_0x2f9008[_0xe9b7('0x4d')]);_0x9dc12b[_0xe9b7('0x52')]=_[_0xe9b7('0x50')](_0x2f9008['model'],qs[_0xe9b7('0x53')](_0x23ea39[_0xe9b7('0x4d')]['fields']));_0x9dc12b['attributes']=_0x9dc12b['attributes'][_0xe9b7('0x54')]?_0x9dc12b[_0xe9b7('0x52')]:_0x2f9008[_0xe9b7('0x51')];_0x9dc12b[_0xe9b7('0x57')]=qs[_0xe9b7('0x58')](_0x23ea39[_0xe9b7('0x4d')][_0xe9b7('0x58')]);_0x9dc12b[_0xe9b7('0x59')]=qs[_0xe9b7('0x4f')](_[_0xe9b7('0x5a')](_0x23ea39[_0xe9b7('0x4d')],_0x2f9008['filters']));if(_0x23ea39['query'][_0xe9b7('0x5b')]){_0x9dc12b[_0xe9b7('0x59')]=_['merge'](_0x9dc12b[_0xe9b7('0x59')],{'$or':_[_0xe9b7('0x49')](_0x9dc12b[_0xe9b7('0x52')],function(_0x566ca6){var _0x9c41f5={};_0x9c41f5[_0x566ca6]={'$like':'%'+_0x23ea39[_0xe9b7('0x4d')][_0xe9b7('0x5b')]+'%'};return _0x9c41f5;})});}_0x9dc12b=_[_0xe9b7('0x61')]({},_0x9dc12b,_0x23ea39[_0xe9b7('0x5c')]);return _0x5d9442['getAgents'](_0x9dc12b);}})[_0xe9b7('0x26')](function(_0x389c03){if(_0x389c03){_0x1f7804=_0x389c03[_0xe9b7('0x54')];if(!_0x23ea39[_0xe9b7('0x4d')][_0xe9b7('0x55')](_0xe9b7('0x56'))){_0x9dc12b['limit']=qs['limit'](_0x23ea39[_0xe9b7('0x4d')][_0xe9b7('0x35')]);_0x9dc12b[_0xe9b7('0x33')]=qs[_0xe9b7('0x33')](_0x23ea39[_0xe9b7('0x4d')]['offset']);}return _0x5d9442[_0xe9b7('0xc3')](_0x9dc12b);}})[_0xe9b7('0x26')](function(_0x9bdfc1){if(_0x9bdfc1){return _0x9bdfc1?{'count':_0x1f7804,'rows':_0x9bdfc1}:null;}})['then'](respondWithResult(_0x31b856,null))[_0xe9b7('0x30')](handleError(_0x31b856,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd7ac=['hook','exports','events','setMaxListeners','save','remove','emit'];(function(_0xe02577,_0xb81d88){var _0x239620=function(_0x18e8b0){while(--_0x18e8b0){_0xe02577['push'](_0xe02577['shift']());}};_0x239620(++_0xb81d88);}(_0xd7ac,0x167));var _0xcd7a=function(_0x49b207,_0x408ade){_0x49b207=_0x49b207-0x0;var _0x2dc8fa=_0xd7ac[_0x49b207];return _0x2dc8fa;};'use strict';var EventEmitter=require(_0xcd7a('0x0'));var MailAccount=require('../../mysqldb')['db']['MailAccount'];var MailAccountEvents=new EventEmitter();MailAccountEvents[_0xcd7a('0x1')](0x0);var events={'afterCreate':_0xcd7a('0x2'),'afterUpdate':'update','afterDestroy':_0xcd7a('0x3')};function emitEvent(_0xab0c88){return function(_0x4eecee,_0x4d1d48,_0x2c7e04){MailAccountEvents[_0xcd7a('0x4')](_0xab0c88+':'+_0x4eecee['id'],_0x4eecee);MailAccountEvents[_0xcd7a('0x4')](_0xab0c88,_0x4eecee);_0x2c7e04(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];MailAccount[_0xcd7a('0x5')](e,emitEvent(event));}}module[_0xcd7a('0x6')]=MailAccountEvents;
\ No newline at end of file
+var _0x3912=['../../mysqldb','setMaxListeners','save','update','remove','emit','hasOwnProperty','hook','exports','events'];(function(_0x26462c,_0xd20a35){var _0x509a42=function(_0x1b22c9){while(--_0x1b22c9){_0x26462c['push'](_0x26462c['shift']());}};_0x509a42(++_0xd20a35);}(_0x3912,0xa9));var _0x2391=function(_0xf54a42,_0x8101d6){_0xf54a42=_0xf54a42-0x0;var _0x9448a4=_0x3912[_0xf54a42];return _0x9448a4;};'use strict';var EventEmitter=require(_0x2391('0x0'));var MailAccount=require(_0x2391('0x1'))['db']['MailAccount'];var MailAccountEvents=new EventEmitter();MailAccountEvents[_0x2391('0x2')](0x0);var events={'afterCreate':_0x2391('0x3'),'afterUpdate':_0x2391('0x4'),'afterDestroy':_0x2391('0x5')};function emitEvent(_0x3d9a69){return function(_0x447341,_0x22e7fd,_0x45aea9){MailAccountEvents[_0x2391('0x6')](_0x3d9a69+':'+_0x447341['id'],_0x447341);MailAccountEvents[_0x2391('0x6')](_0x3d9a69,_0x447341);_0x45aea9(null);};}for(var e in events){if(events[_0x2391('0x7')](e)){var event=events[e];MailAccount[_0x2391('0x8')](e,emitEvent(event));}}module[_0x2391('0x9')]=MailAccountEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb67e=['exports','define','mail_accounts','util','../../config/logger','api','bluebird','request-promise','rimraf','../../config/environment'];(function(_0x5c4585,_0x3d0eab){var _0x21dede=function(_0x5c3d6a){while(--_0x5c3d6a){_0x5c4585['push'](_0x5c4585['shift']());}};_0x21dede(++_0x3d0eab);}(_0xb67e,0x143));var _0xeb67=function(_0x2ab76e,_0xbca22a){_0x2ab76e=_0x2ab76e-0x0;var _0x56f5aa=_0xb67e[_0x2ab76e];return _0x56f5aa;};'use strict';var _=require('lodash');var util=require(_0xeb67('0x0'));var logger=require(_0xeb67('0x1'))(_0xeb67('0x2'));var moment=require('moment');var BPromise=require(_0xeb67('0x3'));var rp=require(_0xeb67('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0xeb67('0x5'));var config=require(_0xeb67('0x6'));var attributes=require('./mailAccount.attributes');module[_0xeb67('0x7')]=function(_0xac1180,_0x527431){return _0xac1180[_0xeb67('0x8')]('MailAccount',attributes,{'tableName':_0xeb67('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x87d6=['../../config/logger','api','request-promise','rimraf','../../config/environment','./mailAccount.attributes','exports','MailAccount','lodash','util'];(function(_0x233a12,_0x2a7603){var _0x3da81c=function(_0x44b405){while(--_0x44b405){_0x233a12['push'](_0x233a12['shift']());}};_0x3da81c(++_0x2a7603);}(_0x87d6,0x13e));var _0x687d=function(_0xe45118,_0x5dffbc){_0xe45118=_0xe45118-0x0;var _0x15e15d=_0x87d6[_0xe45118];return _0x15e15d;};'use strict';var _=require(_0x687d('0x0'));var util=require(_0x687d('0x1'));var logger=require(_0x687d('0x2'))(_0x687d('0x3'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0x687d('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x687d('0x5'));var config=require(_0x687d('0x6'));var attributes=require(_0x687d('0x7'));module[_0x687d('0x8')]=function(_0x44871a,_0x53b213){return _0x44871a['define'](_0x687d('0x9'),attributes,{'tableName':'mail_accounts','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x62de=['get','Applications','applications','asc','push','length','*,*,*,*','create','List\x20not\x20found','contact','messageId','attach','format','YYYY-MM-DD\x20HH:mm:ss','MailInteraction','inReplyTo','spread','subject','interaction','created','attachments','originTo','originCc','bcc','originChannel','Email','Attachment','Attachments','UserId','User','name','unshift','agent','waitForTheAssignedAgent','startRouting','Start','lodash','util','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./mailAccount.socket','register','request','info','MailAccount,\x20%s,\x20%s','stringify','error','code','message','request\x20sent','result','catch','GetMailAccount','MailAccount','findAll','options','attributes','limit','map','include','model','then','ShowMailAccount','find','raw','where','debug','NotifyMailAccount','body','mail','difference','keys','CmContact','rawAttributes','createdAt','updatedAt','CompanyId','ListId','isNil','from','from\x20is\x20mandatory','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey','account','CmList','List','Contacts','MailApplication','MailServerOut','Smtp'];(function(_0xae540e,_0x2be30d){var _0x5e8518=function(_0x198555){while(--_0x198555){_0xae540e['push'](_0xae540e['shift']());}};_0x5e8518(++_0x2be30d);}(_0x62de,0x159));var _0xe62d=function(_0x2bcb2e,_0x45ad28){_0x2bcb2e=_0x2bcb2e-0x0;var _0x32c09b=_0x62de[_0x2bcb2e];return _0x32c09b;};'use strict';var _=require(_0xe62d('0x0'));var util=require(_0xe62d('0x1'));var moment=require('moment');var BPromise=require(_0xe62d('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xe62d('0x3'));var db=require(_0xe62d('0x4'))['db'];var utils=require(_0xe62d('0x5'));var logger=require(_0xe62d('0x6'))(_0xe62d('0x7'));var config=require(_0xe62d('0x8'));var jayson=require(_0xe62d('0x9'));var client=jayson[_0xe62d('0xa')][_0xe62d('0xb')]({'port':0x232c});config[_0xe62d('0xc')]=_[_0xe62d('0xd')](config['redis'],{'host':_0xe62d('0xe'),'port':0x18eb});var socket=require(_0xe62d('0xf'))(new Redis(config[_0xe62d('0xc')]));require(_0xe62d('0x10'))[_0xe62d('0x11')](socket);function respondWithRpcPromise(_0x577065,_0x5a0b93,_0x2db6bd){return new BPromise(function(_0x5742b9,_0x4cdeb0){return client[_0xe62d('0x12')](_0x577065,_0x2db6bd)['then'](function(_0x2cd7b0){logger[_0xe62d('0x13')](_0xe62d('0x14'),_0x5a0b93,'request\x20sent');logger['debug']('MailAccount,\x20%s,\x20%s,\x20%s',_0x5a0b93,'request\x20sent',JSON[_0xe62d('0x15')](_0x2cd7b0));if(_0x2cd7b0[_0xe62d('0x16')]){if(_0x2cd7b0['error'][_0xe62d('0x17')]===0x1f4){logger[_0xe62d('0x16')](_0xe62d('0x14'),_0x5a0b93,_0x2cd7b0[_0xe62d('0x16')][_0xe62d('0x18')]);return _0x4cdeb0(_0x2cd7b0[_0xe62d('0x16')][_0xe62d('0x18')]);}logger[_0xe62d('0x16')](_0xe62d('0x14'),_0x5a0b93,_0x2cd7b0[_0xe62d('0x16')][_0xe62d('0x18')]);return _0x5742b9(_0x2cd7b0[_0xe62d('0x16')][_0xe62d('0x18')]);}else{logger[_0xe62d('0x13')](_0xe62d('0x14'),_0x5a0b93,_0xe62d('0x19'));_0x5742b9(_0x2cd7b0[_0xe62d('0x1a')][_0xe62d('0x18')]);}})[_0xe62d('0x1b')](function(_0x38fa4f){logger['error'](_0xe62d('0x14'),_0x5a0b93,_0x38fa4f);_0x4cdeb0(_0x38fa4f);});});}exports[_0xe62d('0x1c')]=function(_0x35ade5){var _0x19b9d8=this;return new Promise(function(_0x428e2c,_0x42e7b7){return db[_0xe62d('0x1d')][_0xe62d('0x1e')]({'raw':_0x35ade5[_0xe62d('0x1f')]?_0x35ade5[_0xe62d('0x1f')]['raw']===undefined?!![]:![]:!![],'where':_0x35ade5[_0xe62d('0x1f')]?_0x35ade5[_0xe62d('0x1f')]['where']||null:null,'attributes':_0x35ade5[_0xe62d('0x1f')]?_0x35ade5['options'][_0xe62d('0x20')]||null:null,'limit':_0x35ade5[_0xe62d('0x1f')]?_0x35ade5[_0xe62d('0x1f')][_0xe62d('0x21')]||null:null,'include':_0x35ade5[_0xe62d('0x1f')]?_0x35ade5['options']['include']?_[_0xe62d('0x22')](_0x35ade5['options'][_0xe62d('0x23')],function(_0x43cae6){return{'model':db[_0x43cae6['model']],'as':_0x43cae6['as'],'attributes':_0x43cae6[_0xe62d('0x20')],'include':_0x43cae6[_0xe62d('0x23')]?_[_0xe62d('0x22')](_0x43cae6[_0xe62d('0x23')],function(_0x3d0135){return{'model':db[_0x3d0135[_0xe62d('0x24')]],'as':_0x3d0135['as'],'attributes':_0x3d0135[_0xe62d('0x20')],'include':_0x3d0135[_0xe62d('0x23')]?_['map'](_0x3d0135[_0xe62d('0x23')],function(_0x31d56c){return{'model':db[_0x31d56c[_0xe62d('0x24')]],'as':_0x31d56c['as'],'attributes':_0x31d56c[_0xe62d('0x20')]};}):[]};}):[]};}):[]:[]})[_0xe62d('0x25')](function(_0x75176b){logger[_0xe62d('0x13')](_0xe62d('0x1c'),_0x35ade5);logger['debug']('GetMailAccount',_0x35ade5,JSON[_0xe62d('0x15')](_0x75176b));_0x428e2c(_0x75176b);})['catch'](function(_0x221648){logger[_0xe62d('0x16')](_0xe62d('0x1c'),_0x221648[_0xe62d('0x18')],_0x35ade5);_0x42e7b7(_0x19b9d8[_0xe62d('0x16')](0x1f4,_0x221648[_0xe62d('0x18')]));});});};exports[_0xe62d('0x26')]=function(_0x426f15){var _0x3264e0=this;return new Promise(function(_0x31bf48,_0x675b31){return db[_0xe62d('0x1d')][_0xe62d('0x27')]({'raw':_0x426f15[_0xe62d('0x1f')]?_0x426f15[_0xe62d('0x1f')][_0xe62d('0x28')]===undefined?!![]:![]:!![],'where':_0x426f15[_0xe62d('0x1f')]?_0x426f15[_0xe62d('0x1f')][_0xe62d('0x29')]||null:null,'attributes':_0x426f15[_0xe62d('0x1f')]?_0x426f15[_0xe62d('0x1f')]['attributes']||null:null,'include':_0x426f15[_0xe62d('0x1f')]?_0x426f15[_0xe62d('0x1f')][_0xe62d('0x23')]?_[_0xe62d('0x22')](_0x426f15[_0xe62d('0x1f')][_0xe62d('0x23')],function(_0x458b8b){return{'model':db[_0x458b8b[_0xe62d('0x24')]],'as':_0x458b8b['as'],'attributes':_0x458b8b[_0xe62d('0x20')],'include':_0x458b8b[_0xe62d('0x23')]?_[_0xe62d('0x22')](_0x458b8b[_0xe62d('0x23')],function(_0x2fc4ea){return{'model':db[_0x2fc4ea['model']],'as':_0x2fc4ea['as'],'attributes':_0x2fc4ea[_0xe62d('0x20')],'include':_0x2fc4ea[_0xe62d('0x23')]?_[_0xe62d('0x22')](_0x2fc4ea[_0xe62d('0x23')],function(_0x972dce){return{'model':db[_0x972dce['model']],'as':_0x972dce['as'],'attributes':_0x972dce['attributes']};}):[]};}):[]};}):[]:[]})[_0xe62d('0x25')](function(_0x8f41a1){logger[_0xe62d('0x13')](_0xe62d('0x26'),_0x426f15);logger[_0xe62d('0x2a')](_0xe62d('0x26'),_0x426f15,JSON[_0xe62d('0x15')](_0x8f41a1));_0x31bf48(_0x8f41a1);})[_0xe62d('0x1b')](function(_0x454a28){logger['error']('ShowMailAccount',_0x454a28['message'],_0x426f15);_0x675b31(_0x3264e0[_0xe62d('0x16')](0x1f4,_0x454a28[_0xe62d('0x18')]));});});};exports[_0xe62d('0x2b')]=function(_0x3ef525){var _0x143b5d=this;return new Promise(function(_0x4993a9,_0x1b91ab){var _0x3da245={'body':_0x3ef525[_0xe62d('0x2c')],'channel':_0xe62d('0x2d')};var _0x183b8e=_[_0xe62d('0x2e')](_[_0xe62d('0x2f')](db[_0xe62d('0x30')][_0xe62d('0x31')]),[_0xe62d('0x32'),_0xe62d('0x33'),_0xe62d('0x34'),_0xe62d('0x35')]);var _0x129678=![];if(_0x3ef525[_0xe62d('0x2c')]['id']){delete _0x3ef525[_0xe62d('0x2c')]['id'];}if(_[_0xe62d('0x36')](_0x3ef525[_0xe62d('0x2c')][_0xe62d('0x37')])){return _0x1b91ab(_0x143b5d[_0xe62d('0x16')](0x1f4,_0xe62d('0x38')));}if(_[_0xe62d('0x36')](_0x3ef525['body'][_0xe62d('0x2c')])||_0x3ef525['body']['body']===''){return _0x1b91ab(_0x143b5d[_0xe62d('0x16')](0x1f4,'body\x20is\x20mandatory\x20and\x20not\x20empty'));}if(_[_0xe62d('0x36')](_0x3ef525[_0xe62d('0x2c')]['mapKey'])){return _0x1b91ab(_0x143b5d[_0xe62d('0x16')](0x1f4,_0xe62d('0x39')+_0x183b8e));}if(!_[_0xe62d('0x3a')](_0x183b8e,_0x3ef525[_0xe62d('0x2c')][_0xe62d('0x3b')])){return _0x1b91ab(_0x143b5d['error'](0x1f4,'mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x183b8e));}var _0xd3b2b3={};_0xd3b2b3[_0x3ef525[_0xe62d('0x2c')][_0xe62d('0x3b')]]=_0x3ef525['body'][_0xe62d('0x37')];return db[_0xe62d('0x1d')]['find']({'where':{'id':_0x3ef525[_0xe62d('0x3c')]['id']},'include':[{'model':db[_0xe62d('0x3d')],'as':_0xe62d('0x3e'),'include':[{'model':db['CmContact'],'as':_0xe62d('0x3f'),'where':_0xd3b2b3,'limit':0x1,'order':[['updatedAt','DESC']]}]},{'model':db[_0xe62d('0x40')],'as':'Applications'},{'model':db[_0xe62d('0x41')],'as':_0xe62d('0x42')}]})[_0xe62d('0x25')](function(_0x5a934e){if(_0x5a934e&&_0x5a934e[_0xe62d('0x3e')]){var _0x268e9b=_0x5a934e[_0xe62d('0x43')]({'plain':!![]});_0x3da245[_0xe62d('0x3c')]=_['omit'](_0x268e9b,[_0xe62d('0x44'),_0xe62d('0x3e')]);_0x3da245[_0xe62d('0x45')]=_0x268e9b[_0xe62d('0x44')];_0x3da245['list']=_0x268e9b[_0xe62d('0x3e')];_0x3da245['applications']=_['orderBy'](_0x3da245[_0xe62d('0x45')],['priority'],[_0xe62d('0x46')]);if(_0x3da245[_0xe62d('0x3c')]&&_0x3da245['account']['autoclose']){_0x3da245['applications'][_0xe62d('0x47')]({'id':0x0,'priority':_0x3da245[_0xe62d('0x45')][_0xe62d('0x48')]+0x1,'app':'close','appdata':'autoclose','interval':_0xe62d('0x49')});}if(_0x3da245[_0xe62d('0x3c')][_0xe62d('0x44')]){delete _0x3da245[_0xe62d('0x3c')][_0xe62d('0x44')];}if(_0x3da245[_0xe62d('0x3c')][_0xe62d('0x3e')]){delete _0x3da245[_0xe62d('0x3c')]['List'];}if(_0x268e9b[_0xe62d('0x3e')][_0xe62d('0x3f')][_0xe62d('0x48')]){return _0x268e9b[_0xe62d('0x3e')][_0xe62d('0x3f')][0x0];}var _0x6fa5f3=_['defaults'](_0x3ef525[_0xe62d('0x2c')],{'firstName':_0x3ef525[_0xe62d('0x2c')][_0xe62d('0x37')],'ListId':_0x268e9b[_0xe62d('0x35')]});_0x6fa5f3[_0x3ef525['body'][_0xe62d('0x3b')]]=_0x3ef525[_0xe62d('0x2c')][_0xe62d('0x37')];return db[_0xe62d('0x30')][_0xe62d('0x4a')](_0x6fa5f3);}else{throw new Error(_0xe62d('0x4b'));}})[_0xe62d('0x25')](function(_0xbabe5d){_0x3da245[_0xe62d('0x4c')]=_0xbabe5d;if(_0xbabe5d){if(!_0x3ef525[_0xe62d('0x2c')][_0xe62d('0x18')][_0xe62d('0x4d')]){_0x3ef525[_0xe62d('0x2c')]['message'][_0xe62d('0x4d')]=rs['generate']()+'\x20'+_0x3ef525[_0xe62d('0x2c')]['message'][_0xe62d('0x37')];}var _0x489183={'ContactId':_0xbabe5d['id'],'MailAccountId':_0x3ef525[_0xe62d('0x3c')]['id'],'inReplyTo':_0x3ef525['body'][_0xe62d('0x18')]['messageId'],'to':_0x3ef525[_0xe62d('0x2c')][_0xe62d('0x18')][_0xe62d('0x37')],'cc':_0x3ef525[_0xe62d('0x2c')][_0xe62d('0x18')]['cc'],'subject':_0x3ef525[_0xe62d('0x2c')][_0xe62d('0x18')]['subject'],'attach':_0x3ef525['body'][_0xe62d('0x18')][_0xe62d('0x4e')],'lastMsgAt':moment()[_0xe62d('0x4f')](_0xe62d('0x50')),'lastMsgDirection':'in'};return db[_0xe62d('0x51')]['find']({'where':{'closed':![],'MailAccountId':_0x3ef525['account']['id']},'include':[{'model':db['MailMessage'],'as':'Messages','attributes':[_0xe62d('0x4d')],'where':{'messageId':_0x3ef525['body'][_0xe62d('0x18')][_0xe62d('0x52')]}}]})[_0xe62d('0x25')](function(_0xf56583){if(_0xf56583){return[_0xf56583,![]];}return db[_0xe62d('0x51')][_0xe62d('0x4a')](_0x489183)['then'](function(_0x187710){return[_0x187710,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})[_0xe62d('0x53')](function(_0x5ef892,_0x59819a){if(_0x5ef892){_0x129678=_0x59819a;if(!_0x59819a){return _0x5ef892['update']({'inReplyTo':_0x3ef525['body'][_0xe62d('0x18')][_0xe62d('0x4d')],'to':_0x3ef525[_0xe62d('0x2c')][_0xe62d('0x18')]['from'],'cc':_0x3ef525[_0xe62d('0x2c')][_0xe62d('0x18')]['cc'],'subject':_0x3ef525['body'][_0xe62d('0x18')][_0xe62d('0x54')],'attach':_0x5ef892[_0xe62d('0x4e')]?_0x5ef892['attach']:_0x3ef525['body']['message'][_0xe62d('0x4e')],'substatus':null,'substatusAt':moment()['format'](_0xe62d('0x50')),'lastMsgAt':moment()[_0xe62d('0x4f')]('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgDirection':'in'});}else{return _0x5ef892;}}})[_0xe62d('0x25')](function(_0x3ce8f6){_0x3da245['interaction']=_0x3ce8f6['get']({'plain':!![]});_0x3da245[_0xe62d('0x55')][_0xe62d('0x56')]=_0x129678;return db['MailMessage'][_0xe62d('0x4a')]({'body':_0x3ef525[_0xe62d('0x2c')][_0xe62d('0x2c')],'MailAccountId':_0x3ef525[_0xe62d('0x3c')]['id'],'MailInteractionId':_0x3ce8f6['id'],'direction':'in','ContactId':_0x3da245[_0xe62d('0x4c')]['id'],'messageId':_0x3ef525['body'][_0xe62d('0x18')][_0xe62d('0x4d')],'from':_0x3ef525[_0xe62d('0x2c')][_0xe62d('0x18')][_0xe62d('0x37')],'to':_0x3ef525[_0xe62d('0x2c')][_0xe62d('0x18')]['to'],'cc':_0x3ef525[_0xe62d('0x2c')]['message']['cc'],'subject':_0x3ef525[_0xe62d('0x2c')][_0xe62d('0x18')][_0xe62d('0x54')],'attach':_0x3ef525['body'][_0xe62d('0x18')]['attach'],'Attachments':_0x3ef525[_0xe62d('0x2c')][_0xe62d('0x18')][_0xe62d('0x57')],'originTo':_0x3ef525[_0xe62d('0x2c')]['message'][_0xe62d('0x58')],'originCc':_0x3ef525['body']['message'][_0xe62d('0x59')],'bcc':_0x3ef525['body'][_0xe62d('0x18')][_0xe62d('0x5a')],'ChatWebsiteId':_0x3ef525[_0xe62d('0x2c')][_0xe62d('0x18')]['ChatWebsiteId']||null,'originChannel':_0x3ef525[_0xe62d('0x2c')][_0xe62d('0x18')][_0xe62d('0x5b')]||_0xe62d('0x5c'),'ChatOfflineMessageId':_0x3ef525['body']['message']['ChatOfflineMessageId']||null},{'include':[{'model':db[_0xe62d('0x5d')],'as':_0xe62d('0x5e')}]});})['then'](function(_0x50c9dc){_0x3da245[_0xe62d('0x18')]=_0x50c9dc;if(_0x3da245[_0xe62d('0x55')][_0xe62d('0x5f')]){return db[_0xe62d('0x60')][_0xe62d('0x27')]({'attributes':['id',_0xe62d('0x61')],'where':{'id':_0x3da245[_0xe62d('0x55')][_0xe62d('0x5f')]}})[_0xe62d('0x25')](function(_0x60bae8){if(_0x60bae8){_0x3da245[_0xe62d('0x45')][_0xe62d('0x62')]({'id':0x0,'priority':0x0,'app':_0xe62d('0x63'),'appdata':_0x60bae8[_0xe62d('0x61')]+','+(_0x3da245[_0xe62d('0x3c')][_0xe62d('0x64')]||0xa),'interval':_0xe62d('0x49')});}return respondWithRpcPromise('Start',_0xe62d('0x65'),_0x3da245);});}return respondWithRpcPromise(_0xe62d('0x66'),'startRouting',_0x3da245);})[_0xe62d('0x25')](function(_0x4ede8b){_0x4993a9(_0x4ede8b);})[_0xe62d('0x1b')](function(_0x3fee92){_0x1b91ab(_0x143b5d[_0xe62d('0x16')](0x1f4,_0x3fee92[_0xe62d('0x18')]));});});};
\ No newline at end of file
+var _0xacd8=['model','stringify','catch','ShowMailAccount','find','debug','NotifyMailAccount','body','mail','keys','rawAttributes','createdAt','updatedAt','CompanyId','ListId','from','from\x20is\x20mandatory','isNil','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','CmList','List','CmContact','Contacts','MailApplication','Applications','Smtp','account','applications','list','priority','asc','autoclose','push','*,*,*,*','length','create','messageId','generate','subject','attach','format','YYYY-MM-DD\x20HH:mm:ss','MailInteraction','MailMessage','Messages','inReplyTo','Contact\x20not\x20found','update','interaction','get','created','contact','attachments','originTo','ChatWebsiteId','Email','UserId','User','name','unshift','agent','waitForTheAssignedAgent','Start','startRouting','lodash','bluebird','randomstring','../../config/utils','../../config/environment','jayson/promise','client','redis','defaults','localhost','./mailAccount.socket','register','then','info','MailAccount,\x20%s,\x20%s','request\x20sent','error','code','message','result','GetMailAccount','MailAccount','findAll','options','raw','where','attributes','limit','map','include'];(function(_0x3c7d9d,_0x1ba3ec){var _0x30fe5a=function(_0x253e78){while(--_0x253e78){_0x3c7d9d['push'](_0x3c7d9d['shift']());}};_0x30fe5a(++_0x1ba3ec);}(_0xacd8,0xa6));var _0x8acd=function(_0x50a840,_0x449693){_0x50a840=_0x50a840-0x0;var _0x25edb6=_0xacd8[_0x50a840];return _0x25edb6;};'use strict';var _=require(_0x8acd('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x8acd('0x1'));var rs=require(_0x8acd('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x8acd('0x3'));var logger=require('../../config/logger')('rpc');var config=require(_0x8acd('0x4'));var jayson=require(_0x8acd('0x5'));var client=jayson[_0x8acd('0x6')]['http']({'port':0x232c});config[_0x8acd('0x7')]=_[_0x8acd('0x8')](config['redis'],{'host':_0x8acd('0x9'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x8acd('0x7')]));require(_0x8acd('0xa'))[_0x8acd('0xb')](socket);function respondWithRpcPromise(_0x9f94bb,_0x4cbb1f,_0x35497f){return new BPromise(function(_0x4ff809,_0x290777){return client['request'](_0x9f94bb,_0x35497f)[_0x8acd('0xc')](function(_0x57ab14){logger[_0x8acd('0xd')](_0x8acd('0xe'),_0x4cbb1f,_0x8acd('0xf'));logger['debug']('MailAccount,\x20%s,\x20%s,\x20%s',_0x4cbb1f,_0x8acd('0xf'),JSON['stringify'](_0x57ab14));if(_0x57ab14['error']){if(_0x57ab14[_0x8acd('0x10')][_0x8acd('0x11')]===0x1f4){logger[_0x8acd('0x10')](_0x8acd('0xe'),_0x4cbb1f,_0x57ab14[_0x8acd('0x10')][_0x8acd('0x12')]);return _0x290777(_0x57ab14[_0x8acd('0x10')]['message']);}logger['error'](_0x8acd('0xe'),_0x4cbb1f,_0x57ab14[_0x8acd('0x10')]['message']);return _0x4ff809(_0x57ab14[_0x8acd('0x10')][_0x8acd('0x12')]);}else{logger[_0x8acd('0xd')](_0x8acd('0xe'),_0x4cbb1f,_0x8acd('0xf'));_0x4ff809(_0x57ab14[_0x8acd('0x13')][_0x8acd('0x12')]);}})['catch'](function(_0x1784e2){logger['error']('MailAccount,\x20%s,\x20%s',_0x4cbb1f,_0x1784e2);_0x290777(_0x1784e2);});});}exports[_0x8acd('0x14')]=function(_0x131c2d){var _0x3732b0=this;return new Promise(function(_0x1ecc8d,_0x15ee15){return db[_0x8acd('0x15')][_0x8acd('0x16')]({'raw':_0x131c2d[_0x8acd('0x17')]?_0x131c2d['options'][_0x8acd('0x18')]===undefined?!![]:![]:!![],'where':_0x131c2d[_0x8acd('0x17')]?_0x131c2d[_0x8acd('0x17')][_0x8acd('0x19')]||null:null,'attributes':_0x131c2d[_0x8acd('0x17')]?_0x131c2d[_0x8acd('0x17')][_0x8acd('0x1a')]||null:null,'limit':_0x131c2d['options']?_0x131c2d['options'][_0x8acd('0x1b')]||null:null,'include':_0x131c2d[_0x8acd('0x17')]?_0x131c2d[_0x8acd('0x17')]['include']?_[_0x8acd('0x1c')](_0x131c2d[_0x8acd('0x17')][_0x8acd('0x1d')],function(_0x22b518){return{'model':db[_0x22b518['model']],'as':_0x22b518['as'],'attributes':_0x22b518['attributes'],'include':_0x22b518[_0x8acd('0x1d')]?_[_0x8acd('0x1c')](_0x22b518['include'],function(_0x282e21){return{'model':db[_0x282e21[_0x8acd('0x1e')]],'as':_0x282e21['as'],'attributes':_0x282e21[_0x8acd('0x1a')],'include':_0x282e21[_0x8acd('0x1d')]?_[_0x8acd('0x1c')](_0x282e21['include'],function(_0x7b55){return{'model':db[_0x7b55[_0x8acd('0x1e')]],'as':_0x7b55['as'],'attributes':_0x7b55['attributes']};}):[]};}):[]};}):[]:[]})[_0x8acd('0xc')](function(_0x1efca1){logger[_0x8acd('0xd')]('GetMailAccount',_0x131c2d);logger['debug'](_0x8acd('0x14'),_0x131c2d,JSON[_0x8acd('0x1f')](_0x1efca1));_0x1ecc8d(_0x1efca1);})[_0x8acd('0x20')](function(_0x447ecc){logger[_0x8acd('0x10')]('GetMailAccount',_0x447ecc[_0x8acd('0x12')],_0x131c2d);_0x15ee15(_0x3732b0[_0x8acd('0x10')](0x1f4,_0x447ecc['message']));});});};exports[_0x8acd('0x21')]=function(_0x1f88b6){var _0x413d63=this;return new Promise(function(_0x598073,_0x5d53aa){return db['MailAccount'][_0x8acd('0x22')]({'raw':_0x1f88b6[_0x8acd('0x17')]?_0x1f88b6['options'][_0x8acd('0x18')]===undefined?!![]:![]:!![],'where':_0x1f88b6['options']?_0x1f88b6[_0x8acd('0x17')][_0x8acd('0x19')]||null:null,'attributes':_0x1f88b6[_0x8acd('0x17')]?_0x1f88b6[_0x8acd('0x17')]['attributes']||null:null,'include':_0x1f88b6[_0x8acd('0x17')]?_0x1f88b6[_0x8acd('0x17')][_0x8acd('0x1d')]?_[_0x8acd('0x1c')](_0x1f88b6[_0x8acd('0x17')]['include'],function(_0x2a154d){return{'model':db[_0x2a154d[_0x8acd('0x1e')]],'as':_0x2a154d['as'],'attributes':_0x2a154d[_0x8acd('0x1a')],'include':_0x2a154d[_0x8acd('0x1d')]?_[_0x8acd('0x1c')](_0x2a154d[_0x8acd('0x1d')],function(_0x13c96b){return{'model':db[_0x13c96b[_0x8acd('0x1e')]],'as':_0x13c96b['as'],'attributes':_0x13c96b[_0x8acd('0x1a')],'include':_0x13c96b[_0x8acd('0x1d')]?_[_0x8acd('0x1c')](_0x13c96b['include'],function(_0x3f42f6){return{'model':db[_0x3f42f6[_0x8acd('0x1e')]],'as':_0x3f42f6['as'],'attributes':_0x3f42f6[_0x8acd('0x1a')]};}):[]};}):[]};}):[]:[]})[_0x8acd('0xc')](function(_0x80894f){logger['info'](_0x8acd('0x21'),_0x1f88b6);logger[_0x8acd('0x23')](_0x8acd('0x21'),_0x1f88b6,JSON[_0x8acd('0x1f')](_0x80894f));_0x598073(_0x80894f);})[_0x8acd('0x20')](function(_0xb03426){logger[_0x8acd('0x10')](_0x8acd('0x21'),_0xb03426[_0x8acd('0x12')],_0x1f88b6);_0x5d53aa(_0x413d63['error'](0x1f4,_0xb03426[_0x8acd('0x12')]));});});};exports[_0x8acd('0x24')]=function(_0x26e590){var _0x3b9c3d=this;return new Promise(function(_0x467adb,_0x271208){var _0x1eec6d={'body':_0x26e590[_0x8acd('0x25')],'channel':_0x8acd('0x26')};var _0x3f93fc=_['difference'](_[_0x8acd('0x27')](db['CmContact'][_0x8acd('0x28')]),[_0x8acd('0x29'),_0x8acd('0x2a'),_0x8acd('0x2b'),_0x8acd('0x2c')]);var _0x5a6f61=![];if(_0x26e590[_0x8acd('0x25')]['id']){delete _0x26e590[_0x8acd('0x25')]['id'];}if(_['isNil'](_0x26e590['body'][_0x8acd('0x2d')])){return _0x271208(_0x3b9c3d[_0x8acd('0x10')](0x1f4,_0x8acd('0x2e')));}if(_[_0x8acd('0x2f')](_0x26e590[_0x8acd('0x25')][_0x8acd('0x25')])||_0x26e590[_0x8acd('0x25')]['body']===''){return _0x271208(_0x3b9c3d[_0x8acd('0x10')](0x1f4,_0x8acd('0x30')));}if(_[_0x8acd('0x2f')](_0x26e590[_0x8acd('0x25')][_0x8acd('0x31')])){return _0x271208(_0x3b9c3d['error'](0x1f4,_0x8acd('0x32')+_0x3f93fc));}if(!_[_0x8acd('0x33')](_0x3f93fc,_0x26e590[_0x8acd('0x25')][_0x8acd('0x31')])){return _0x271208(_0x3b9c3d[_0x8acd('0x10')](0x1f4,_0x8acd('0x34')+_0x3f93fc));}var _0x2eb457={};_0x2eb457[_0x26e590[_0x8acd('0x25')][_0x8acd('0x31')]]=_0x26e590[_0x8acd('0x25')][_0x8acd('0x2d')];return db['MailAccount'][_0x8acd('0x22')]({'where':{'id':_0x26e590['account']['id']},'include':[{'model':db[_0x8acd('0x35')],'as':_0x8acd('0x36'),'include':[{'model':db[_0x8acd('0x37')],'as':_0x8acd('0x38'),'where':_0x2eb457,'limit':0x1,'order':[[_0x8acd('0x2a'),'DESC']]}]},{'model':db[_0x8acd('0x39')],'as':_0x8acd('0x3a')},{'model':db['MailServerOut'],'as':_0x8acd('0x3b')}]})[_0x8acd('0xc')](function(_0x535c2c){if(_0x535c2c&&_0x535c2c['List']){var _0xe5a940=_0x535c2c['get']({'plain':!![]});_0x1eec6d[_0x8acd('0x3c')]=_['omit'](_0xe5a940,['Applications','List']);_0x1eec6d[_0x8acd('0x3d')]=_0xe5a940['Applications'];_0x1eec6d[_0x8acd('0x3e')]=_0xe5a940[_0x8acd('0x36')];_0x1eec6d[_0x8acd('0x3d')]=_['orderBy'](_0x1eec6d[_0x8acd('0x3d')],[_0x8acd('0x3f')],[_0x8acd('0x40')]);if(_0x1eec6d[_0x8acd('0x3c')]&&_0x1eec6d[_0x8acd('0x3c')][_0x8acd('0x41')]){_0x1eec6d[_0x8acd('0x3d')][_0x8acd('0x42')]({'id':0x0,'priority':_0x1eec6d[_0x8acd('0x3d')]['length']+0x1,'app':'close','appdata':_0x8acd('0x41'),'interval':_0x8acd('0x43')});}if(_0x1eec6d[_0x8acd('0x3c')]['Applications']){delete _0x1eec6d['account'][_0x8acd('0x3a')];}if(_0x1eec6d['account'][_0x8acd('0x36')]){delete _0x1eec6d['account'][_0x8acd('0x36')];}if(_0xe5a940[_0x8acd('0x36')][_0x8acd('0x38')][_0x8acd('0x44')]){return _0xe5a940[_0x8acd('0x36')][_0x8acd('0x38')][0x0];}var _0x3c9147=_[_0x8acd('0x8')](_0x26e590[_0x8acd('0x25')],{'firstName':_0x26e590[_0x8acd('0x25')][_0x8acd('0x2d')],'ListId':_0xe5a940[_0x8acd('0x2c')]});_0x3c9147[_0x26e590[_0x8acd('0x25')][_0x8acd('0x31')]]=_0x26e590[_0x8acd('0x25')]['from'];return db[_0x8acd('0x37')][_0x8acd('0x45')](_0x3c9147);}else{throw new Error('List\x20not\x20found');}})[_0x8acd('0xc')](function(_0xd58512){_0x1eec6d['contact']=_0xd58512;if(_0xd58512){if(!_0x26e590['body']['message']['messageId']){_0x26e590['body']['message'][_0x8acd('0x46')]=rs[_0x8acd('0x47')]()+'\x20'+_0x26e590[_0x8acd('0x25')]['message'][_0x8acd('0x2d')];}var _0x5a940b={'ContactId':_0xd58512['id'],'MailAccountId':_0x26e590[_0x8acd('0x3c')]['id'],'inReplyTo':_0x26e590[_0x8acd('0x25')][_0x8acd('0x12')][_0x8acd('0x46')],'to':_0x26e590[_0x8acd('0x25')]['message'][_0x8acd('0x2d')],'cc':_0x26e590[_0x8acd('0x25')][_0x8acd('0x12')]['cc'],'subject':_0x26e590[_0x8acd('0x25')]['message'][_0x8acd('0x48')],'attach':_0x26e590[_0x8acd('0x25')][_0x8acd('0x12')][_0x8acd('0x49')],'lastMsgAt':moment()[_0x8acd('0x4a')](_0x8acd('0x4b')),'lastMsgDirection':'in'};return db[_0x8acd('0x4c')]['find']({'where':{'closed':![],'MailAccountId':_0x26e590['account']['id']},'include':[{'model':db[_0x8acd('0x4d')],'as':_0x8acd('0x4e'),'attributes':[_0x8acd('0x46')],'where':{'messageId':_0x26e590[_0x8acd('0x25')][_0x8acd('0x12')][_0x8acd('0x4f')]}}]})[_0x8acd('0xc')](function(_0x395523){if(_0x395523){return[_0x395523,![]];}return db[_0x8acd('0x4c')][_0x8acd('0x45')](_0x5a940b)['then'](function(_0x26d608){return[_0x26d608,!![]];});});}else{throw new Error(_0x8acd('0x50'));}})['spread'](function(_0xcee418,_0x5ac941){if(_0xcee418){_0x5a6f61=_0x5ac941;if(!_0x5ac941){return _0xcee418[_0x8acd('0x51')]({'inReplyTo':_0x26e590[_0x8acd('0x25')][_0x8acd('0x12')][_0x8acd('0x46')],'to':_0x26e590['body'][_0x8acd('0x12')][_0x8acd('0x2d')],'cc':_0x26e590[_0x8acd('0x25')]['message']['cc'],'subject':_0x26e590[_0x8acd('0x25')][_0x8acd('0x12')][_0x8acd('0x48')],'attach':_0xcee418[_0x8acd('0x49')]?_0xcee418[_0x8acd('0x49')]:_0x26e590[_0x8acd('0x25')][_0x8acd('0x12')][_0x8acd('0x49')],'substatus':null,'substatusAt':moment()['format'](_0x8acd('0x4b')),'lastMsgAt':moment()[_0x8acd('0x4a')](_0x8acd('0x4b')),'lastMsgDirection':'in'});}else{return _0xcee418;}}})['then'](function(_0x16502d){_0x1eec6d[_0x8acd('0x52')]=_0x16502d[_0x8acd('0x53')]({'plain':!![]});_0x1eec6d[_0x8acd('0x52')][_0x8acd('0x54')]=_0x5a6f61;return db[_0x8acd('0x4d')][_0x8acd('0x45')]({'body':_0x26e590[_0x8acd('0x25')][_0x8acd('0x25')],'MailAccountId':_0x26e590[_0x8acd('0x3c')]['id'],'MailInteractionId':_0x16502d['id'],'direction':'in','ContactId':_0x1eec6d[_0x8acd('0x55')]['id'],'messageId':_0x26e590[_0x8acd('0x25')][_0x8acd('0x12')][_0x8acd('0x46')],'from':_0x26e590['body']['message'][_0x8acd('0x2d')],'to':_0x26e590['body'][_0x8acd('0x12')]['to'],'cc':_0x26e590[_0x8acd('0x25')][_0x8acd('0x12')]['cc'],'subject':_0x26e590['body'][_0x8acd('0x12')][_0x8acd('0x48')],'attach':_0x26e590[_0x8acd('0x25')][_0x8acd('0x12')][_0x8acd('0x49')],'Attachments':_0x26e590[_0x8acd('0x25')][_0x8acd('0x12')][_0x8acd('0x56')],'originTo':_0x26e590[_0x8acd('0x25')][_0x8acd('0x12')][_0x8acd('0x57')],'originCc':_0x26e590['body'][_0x8acd('0x12')]['originCc'],'bcc':_0x26e590[_0x8acd('0x25')][_0x8acd('0x12')]['bcc'],'ChatWebsiteId':_0x26e590[_0x8acd('0x25')]['message'][_0x8acd('0x58')]||null,'originChannel':_0x26e590[_0x8acd('0x25')][_0x8acd('0x12')]['originChannel']||_0x8acd('0x59'),'ChatOfflineMessageId':_0x26e590[_0x8acd('0x25')][_0x8acd('0x12')]['ChatOfflineMessageId']||null},{'include':[{'model':db['Attachment'],'as':'Attachments'}]});})[_0x8acd('0xc')](function(_0x3b51f1){_0x1eec6d[_0x8acd('0x12')]=_0x3b51f1;if(_0x1eec6d[_0x8acd('0x52')][_0x8acd('0x5a')]){return db[_0x8acd('0x5b')][_0x8acd('0x22')]({'attributes':['id',_0x8acd('0x5c')],'where':{'id':_0x1eec6d[_0x8acd('0x52')][_0x8acd('0x5a')]}})[_0x8acd('0xc')](function(_0x437123){if(_0x437123){_0x1eec6d['applications'][_0x8acd('0x5d')]({'id':0x0,'priority':0x0,'app':_0x8acd('0x5e'),'appdata':_0x437123[_0x8acd('0x5c')]+','+(_0x1eec6d[_0x8acd('0x3c')][_0x8acd('0x5f')]||0xa),'interval':_0x8acd('0x43')});}return respondWithRpcPromise(_0x8acd('0x60'),_0x8acd('0x61'),_0x1eec6d);});}return respondWithRpcPromise(_0x8acd('0x60'),_0x8acd('0x61'),_0x1eec6d);})['then'](function(_0x226390){_0x467adb(_0x226390);})[_0x8acd('0x20')](function(_0x2ee71a){_0x271208(_0x3b9c3d['error'](0x1f4,_0x2ee71a[_0x8acd('0x12')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4fb5=['./mailAccount.events','save','remove','update','emit','removeListener','register','mailAccount:'];(function(_0x590459,_0x1a8729){var _0x3af068=function(_0x322981){while(--_0x322981){_0x590459['push'](_0x590459['shift']());}};_0x3af068(++_0x1a8729);}(_0x4fb5,0xc8));var _0x54fb=function(_0x5f0089,_0x227e2c){_0x5f0089=_0x5f0089-0x0;var _0x193892=_0x4fb5[_0x5f0089];return _0x193892;};'use strict';var MailAccountEvents=require(_0x54fb('0x0'));var events=[_0x54fb('0x1'),_0x54fb('0x2'),_0x54fb('0x3')];function createListener(_0x3ca407,_0x144561){return function(_0x4d4ffb){_0x144561[_0x54fb('0x4')](_0x3ca407,_0x4d4ffb);};}function removeListener(_0xea7094,_0x570e9c){return function(){MailAccountEvents[_0x54fb('0x5')](_0xea7094,_0x570e9c);};}exports[_0x54fb('0x6')]=function(_0x405687){for(var _0xa26d03=0x0,_0x474482=events['length'];_0xa26d03<_0x474482;_0xa26d03++){var _0x5a5eba=events[_0xa26d03];var _0x27b7c5=createListener(_0x54fb('0x7')+_0x5a5eba,_0x405687);MailAccountEvents['on'](_0x5a5eba,_0x27b7c5);}};
\ No newline at end of file
+var _0xa664=['update','removeListener','register','length','mailAccount:','save','remove'];(function(_0x4018e3,_0x10a670){var _0x2335cd=function(_0x313df2){while(--_0x313df2){_0x4018e3['push'](_0x4018e3['shift']());}};_0x2335cd(++_0x10a670);}(_0xa664,0x132));var _0x4a66=function(_0x297676,_0x5512e3){_0x297676=_0x297676-0x0;var _0x583bab=_0xa664[_0x297676];return _0x583bab;};'use strict';var MailAccountEvents=require('./mailAccount.events');var events=[_0x4a66('0x0'),_0x4a66('0x1'),_0x4a66('0x2')];function createListener(_0x293039,_0x5b1cd9){return function(_0x2a4e18){_0x5b1cd9['emit'](_0x293039,_0x2a4e18);};}function removeListener(_0x49f17c,_0x12b396){return function(){MailAccountEvents[_0x4a66('0x3')](_0x49f17c,_0x12b396);};}exports[_0x4a66('0x4')]=function(_0x2661f8){for(var _0x3dd553=0x0,_0x3fe28c=events[_0x4a66('0x5')];_0x3dd553<_0x3fe28c;_0x3dd553++){var _0x521808=events[_0x3dd553];var _0x4484c5=createListener(_0x4a66('0x6')+_0x521808,_0x2661f8);MailAccountEvents['on'](_0x521808,_0x4484c5);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x494a=['util','express','fs-extra','../../components/interaction/service','get','/:id','put','delete','isAuthenticated','destroy'];(function(_0x42a851,_0x2dba00){var _0x29829f=function(_0x503639){while(--_0x503639){_0x42a851['push'](_0x42a851['shift']());}};_0x29829f(++_0x2dba00);}(_0x494a,0x136));var _0xa494=function(_0x408e3e,_0xe98b57){_0x408e3e=_0x408e3e-0x0;var _0x387832=_0x494a[_0x408e3e];return _0x387832;};'use strict';var multer=require('multer');var util=require(_0xa494('0x0'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0xa494('0x1'));var router=express['Router']();var fs_extra=require(_0xa494('0x2'));var auth=require('../../components/auth/service');var interaction=require(_0xa494('0x3'));var config=require('../../config/environment');var controller=require('./mailApplication.controller');router[_0xa494('0x4')](_0xa494('0x5'),auth['isAuthenticated'](),controller['show']);router[_0xa494('0x6')](_0xa494('0x5'),auth['isAuthenticated'](),controller['update']);router[_0xa494('0x7')](_0xa494('0x5'),auth[_0xa494('0x8')](),controller[_0xa494('0x9')]);module['exports']=router;
\ No newline at end of file
+var _0x5102=['connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./mailApplication.controller','get','isAuthenticated','show','put','update','/:id','destroy','exports','multer','util'];(function(_0x3c192c,_0x5bd6f9){var _0x3d8f5b=function(_0xce675c){while(--_0xce675c){_0x3c192c['push'](_0x3c192c['shift']());}};_0x3d8f5b(++_0x5bd6f9);}(_0x5102,0x10e));var _0x2510=function(_0x543084,_0x4337f5){_0x543084=_0x543084-0x0;var _0x306a57=_0x5102[_0x543084];return _0x306a57;};'use strict';var multer=require(_0x2510('0x0'));var util=require(_0x2510('0x1'));var path=require('path');var timeout=require(_0x2510('0x2'));var express=require(_0x2510('0x3'));var router=express[_0x2510('0x4')]();var fs_extra=require(_0x2510('0x5'));var auth=require(_0x2510('0x6'));var interaction=require(_0x2510('0x7'));var config=require('../../config/environment');var controller=require(_0x2510('0x8'));router[_0x2510('0x9')]('/:id',auth[_0x2510('0xa')](),controller[_0x2510('0xb')]);router[_0x2510('0xc')]('/:id',auth[_0x2510('0xa')](),controller[_0x2510('0xd')]);router['delete'](_0x2510('0xe'),auth[_0x2510('0xa')](),controller[_0x2510('0xf')]);module[_0x2510('0x10')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xff2d=['sequelize','exports','INTEGER','noop','TEXT','STRING','*,*,*,*'];(function(_0x59f79d,_0x35a819){var _0x161af6=function(_0x45904d){while(--_0x45904d){_0x59f79d['push'](_0x59f79d['shift']());}};_0x161af6(++_0x35a819);}(_0xff2d,0x1f1));var _0xdff2=function(_0x39e84d,_0x11931d){_0x39e84d=_0x39e84d-0x0;var _0x1991bc=_0xff2d[_0x39e84d];return _0x1991bc;};'use strict';var Sequelize=require(_0xdff2('0x0'));module[_0xdff2('0x1')]={'priority':{'type':Sequelize[_0xdff2('0x2')],'allowNull':![]},'app':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0xdff2('0x3')},'appdata':{'type':Sequelize[_0xdff2('0x4')]()},'description':{'type':Sequelize['STRING']},'interval':{'type':Sequelize[_0xdff2('0x5')],'defaultValue':_0xdff2('0x6')}};
\ No newline at end of file
+var _0x8829=['exports','INTEGER','noop','STRING','sequelize'];(function(_0x2d0bf8,_0x5ed7bb){var _0x58df9e=function(_0x5db70d){while(--_0x5db70d){_0x2d0bf8['push'](_0x2d0bf8['shift']());}};_0x58df9e(++_0x5ed7bb);}(_0x8829,0x171));var _0x9882=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x8829[_0x3dd15e];return _0x231fd0;};'use strict';var Sequelize=require(_0x9882('0x0'));module[_0x9882('0x1')]={'priority':{'type':Sequelize[_0x9882('0x2')],'allowNull':![]},'app':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0x9882('0x3')},'appdata':{'type':Sequelize['TEXT']()},'description':{'type':Sequelize[_0x9882('0x4')]},'interval':{'type':Sequelize[_0x9882('0x4')],'defaultValue':'*,*,*,*'}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd8b0=['attributes','length','include','merge','find','catch','body','params','eml-format','rimraf','moment','bluebird','mustache','util','path','ejs','fs-extra','lodash','crypto','jsforce','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','set','Content-Range','apply','save','update','then','destroy','error','name','show','model','MailApplication','query','keys','intersection','fields'];(function(_0x4e2e79,_0x580d9c){var _0x5b8eff=function(_0x3c3539){while(--_0x3c3539){_0x4e2e79['push'](_0x4e2e79['shift']());}};_0x5b8eff(++_0x580d9c);}(_0xd8b0,0xad));var _0x0d8b=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xd8b0[_0x20a584];return _0x4b41a8;};'use strict';var emlformat=require(_0x0d8b('0x0'));var rimraf=require(_0x0d8b('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x0d8b('0x2'));var BPromise=require(_0x0d8b('0x3'));var Mustache=require(_0x0d8b('0x4'));var util=require(_0x0d8b('0x5'));var path=require(_0x0d8b('0x6'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x0d8b('0x7'));var fs=require('fs');var fs_extra=require(_0x0d8b('0x8'));var _=require(_0x0d8b('0x9'));var squel=require('squel');var crypto=require(_0x0d8b('0xa'));var jsforce=require(_0x0d8b('0xb'));var deskjs=require('desk.js');var toCsv=require(_0x0d8b('0xc'));var querystring=require(_0x0d8b('0xd'));var Papa=require(_0x0d8b('0xe'));var Redis=require(_0x0d8b('0xf'));var authService=require(_0x0d8b('0x10'));var qs=require(_0x0d8b('0x11'));var as=require(_0x0d8b('0x12'));var hardwareService=require(_0x0d8b('0x13'));var logger=require('../../config/logger')(_0x0d8b('0x14'));var utils=require('../../config/utils');var config=require(_0x0d8b('0x15'));var licenseUtil=require(_0x0d8b('0x16'));var db=require(_0x0d8b('0x17'))['db'];function respondWithStatusCode(_0x92cdd8,_0x35a07b){_0x35a07b=_0x35a07b||0xcc;return function(_0x32bb1a){if(_0x32bb1a){return _0x92cdd8[_0x0d8b('0x18')](_0x35a07b);}return _0x92cdd8[_0x0d8b('0x19')](_0x35a07b)[_0x0d8b('0x1a')]();};}function respondWithResult(_0x2ce75e,_0x5ad086){_0x5ad086=_0x5ad086||0xc8;return function(_0xe65334){if(_0xe65334){return _0x2ce75e[_0x0d8b('0x19')](_0x5ad086)[_0x0d8b('0x1b')](_0xe65334);}};}function respondWithFilteredResult(_0x4f6f21,_0x23eb7b){return function(_0xa86349){if(_0xa86349){var _0x17f7df=typeof _0x23eb7b[_0x0d8b('0x1c')]===_0x0d8b('0x1d')&&typeof _0x23eb7b['limit']===_0x0d8b('0x1d');var _0x4586c2=_0xa86349[_0x0d8b('0x1e')];var _0x5fecbd=_0x17f7df?0x0:_0x23eb7b[_0x0d8b('0x1c')];var _0x18dd2d=_0x17f7df?_0xa86349[_0x0d8b('0x1e')]:_0x23eb7b[_0x0d8b('0x1c')]+_0x23eb7b['limit'];var _0x27512e;if(_0x18dd2d>=_0x4586c2){_0x18dd2d=_0x4586c2;_0x27512e=0xc8;}else{_0x27512e=0xce;}_0x4f6f21[_0x0d8b('0x19')](_0x27512e);return _0x4f6f21[_0x0d8b('0x1f')](_0x0d8b('0x20'),_0x5fecbd+'-'+_0x18dd2d+'/'+_0x4586c2)[_0x0d8b('0x1b')](_0xa86349);}return null;};}function patchUpdates(_0x5b709c){return function(_0x393beb){try{jsonpatch[_0x0d8b('0x21')](_0x393beb,_0x5b709c,!![]);}catch(_0x50ec1e){return BPromise['reject'](_0x50ec1e);}return _0x393beb[_0x0d8b('0x22')]();};}function saveUpdates(_0x54a9a7,_0x56c729){return function(_0x5527d8){if(_0x5527d8){return _0x5527d8[_0x0d8b('0x23')](_0x54a9a7)[_0x0d8b('0x24')](function(_0x214778){return _0x214778;});}return null;};}function removeEntity(_0x38efc8,_0x221071){return function(_0x2c64e2){if(_0x2c64e2){return _0x2c64e2[_0x0d8b('0x25')]()[_0x0d8b('0x24')](function(){_0x38efc8[_0x0d8b('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0xe8bbee,_0x4463ee){return function(_0x5363e3){if(!_0x5363e3){_0xe8bbee[_0x0d8b('0x18')](0x194);}return _0x5363e3;};}function handleError(_0x4a0ae4,_0x3dd149){_0x3dd149=_0x3dd149||0x1f4;return function(_0x234bdd){logger[_0x0d8b('0x26')](_0x234bdd['stack']);if(_0x234bdd['name']){delete _0x234bdd[_0x0d8b('0x27')];}_0x4a0ae4[_0x0d8b('0x19')](_0x3dd149)['send'](_0x234bdd);};}exports[_0x0d8b('0x28')]=function(_0x59aa83,_0x1b2b59){var _0x4b59e5={'raw':!![],'where':{'id':_0x59aa83['params']['id']}},_0x97050a={};_0x97050a[_0x0d8b('0x29')]=_['keys'](db[_0x0d8b('0x2a')]['rawAttributes']);_0x97050a[_0x0d8b('0x2b')]=_[_0x0d8b('0x2c')](_0x59aa83[_0x0d8b('0x2b')]);_0x97050a['filters']=_['intersection'](_0x97050a['model'],_0x97050a[_0x0d8b('0x2b')]);_0x4b59e5['attributes']=_[_0x0d8b('0x2d')](_0x97050a['model'],qs['fields'](_0x59aa83[_0x0d8b('0x2b')][_0x0d8b('0x2e')]));_0x4b59e5[_0x0d8b('0x2f')]=_0x4b59e5[_0x0d8b('0x2f')][_0x0d8b('0x30')]?_0x4b59e5[_0x0d8b('0x2f')]:_0x97050a[_0x0d8b('0x29')];if(_0x59aa83[_0x0d8b('0x2b')]['includeAll']){_0x4b59e5[_0x0d8b('0x31')]=[{'all':!![]}];}_0x4b59e5=_[_0x0d8b('0x32')]({},_0x4b59e5,_0x59aa83['options']);return db[_0x0d8b('0x2a')][_0x0d8b('0x33')](_0x4b59e5)[_0x0d8b('0x24')](handleEntityNotFound(_0x1b2b59,null))['then'](respondWithResult(_0x1b2b59,null))[_0x0d8b('0x34')](handleError(_0x1b2b59,null));};exports[_0x0d8b('0x23')]=function(_0x206157,_0x31ceba){if(_0x206157[_0x0d8b('0x35')]['id']){delete _0x206157['body']['id'];}return db[_0x0d8b('0x2a')][_0x0d8b('0x33')]({'where':{'id':_0x206157['params']['id']}})[_0x0d8b('0x24')](handleEntityNotFound(_0x31ceba,null))[_0x0d8b('0x24')](saveUpdates(_0x206157[_0x0d8b('0x35')],null))[_0x0d8b('0x24')](respondWithResult(_0x31ceba,null))[_0x0d8b('0x34')](handleError(_0x31ceba,null));};exports['destroy']=function(_0x497a71,_0x41b4f9){return db['MailApplication']['find']({'where':{'id':_0x497a71[_0x0d8b('0x36')]['id']}})[_0x0d8b('0x24')](handleEntityNotFound(_0x41b4f9,null))[_0x0d8b('0x24')](removeEntity(_0x41b4f9,null))[_0x0d8b('0x34')](handleError(_0x41b4f9,null));};
\ No newline at end of file
+var _0x9bde=['../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','save','then','destroy','error','name','send','show','model','keys','MailApplication','rawAttributes','query','filters','intersection','attributes','fields','length','includeAll','include','merge','options','find','catch','update','body','params','rimraf','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment'];(function(_0x238e7c,_0x46ee86){var _0x128a39=function(_0x54b983){while(--_0x54b983){_0x238e7c['push'](_0x238e7c['shift']());}};_0x128a39(++_0x46ee86);}(_0x9bde,0xe1));var _0xe9bd=function(_0x2e5b14,_0x2b0574){_0x2e5b14=_0x2e5b14-0x0;var _0x36c3d5=_0x9bde[_0x2e5b14];return _0x36c3d5;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xe9bd('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0xe9bd('0x1'));var rp=require('request-promise');var moment=require(_0xe9bd('0x2'));var BPromise=require(_0xe9bd('0x3'));var Mustache=require(_0xe9bd('0x4'));var util=require(_0xe9bd('0x5'));var path=require(_0xe9bd('0x6'));var sox=require(_0xe9bd('0x7'));var csv=require(_0xe9bd('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xe9bd('0x9'));var _=require(_0xe9bd('0xa'));var squel=require(_0xe9bd('0xb'));var crypto=require(_0xe9bd('0xc'));var jsforce=require(_0xe9bd('0xd'));var deskjs=require(_0xe9bd('0xe'));var toCsv=require(_0xe9bd('0x8'));var querystring=require(_0xe9bd('0xf'));var Papa=require(_0xe9bd('0x10'));var Redis=require(_0xe9bd('0x11'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xe9bd('0x12'));var hardwareService=require(_0xe9bd('0x13'));var logger=require(_0xe9bd('0x14'))('api');var utils=require(_0xe9bd('0x15'));var config=require(_0xe9bd('0x16'));var licenseUtil=require(_0xe9bd('0x17'));var db=require(_0xe9bd('0x18'))['db'];function respondWithStatusCode(_0x5e022a,_0x2c1d98){_0x2c1d98=_0x2c1d98||0xcc;return function(_0x4ac319){if(_0x4ac319){return _0x5e022a[_0xe9bd('0x19')](_0x2c1d98);}return _0x5e022a[_0xe9bd('0x1a')](_0x2c1d98)[_0xe9bd('0x1b')]();};}function respondWithResult(_0x51109f,_0x47ba5e){_0x47ba5e=_0x47ba5e||0xc8;return function(_0x46a95e){if(_0x46a95e){return _0x51109f[_0xe9bd('0x1a')](_0x47ba5e)[_0xe9bd('0x1c')](_0x46a95e);}};}function respondWithFilteredResult(_0x46a59b,_0x3360bd){return function(_0x389e7b){if(_0x389e7b){var _0x45a9f2=typeof _0x3360bd['offset']===_0xe9bd('0x1d')&&typeof _0x3360bd[_0xe9bd('0x1e')]===_0xe9bd('0x1d');var _0x494b27=_0x389e7b[_0xe9bd('0x1f')];var _0x3bae08=_0x45a9f2?0x0:_0x3360bd[_0xe9bd('0x20')];var _0x330733=_0x45a9f2?_0x389e7b['count']:_0x3360bd[_0xe9bd('0x20')]+_0x3360bd['limit'];var _0xc6b661;if(_0x330733>=_0x494b27){_0x330733=_0x494b27;_0xc6b661=0xc8;}else{_0xc6b661=0xce;}_0x46a59b['status'](_0xc6b661);return _0x46a59b[_0xe9bd('0x21')](_0xe9bd('0x22'),_0x3bae08+'-'+_0x330733+'/'+_0x494b27)[_0xe9bd('0x1c')](_0x389e7b);}return null;};}function patchUpdates(_0x3dda13){return function(_0x1acb82){try{jsonpatch[_0xe9bd('0x23')](_0x1acb82,_0x3dda13,!![]);}catch(_0x6593ce){return BPromise['reject'](_0x6593ce);}return _0x1acb82[_0xe9bd('0x24')]();};}function saveUpdates(_0x28cd17,_0x4ecaf5){return function(_0x37aec1){if(_0x37aec1){return _0x37aec1['update'](_0x28cd17)[_0xe9bd('0x25')](function(_0x1b9cc9){return _0x1b9cc9;});}return null;};}function removeEntity(_0x36f8c0,_0xf02209){return function(_0x5bc4bf){if(_0x5bc4bf){return _0x5bc4bf[_0xe9bd('0x26')]()[_0xe9bd('0x25')](function(){_0x36f8c0[_0xe9bd('0x1a')](0xcc)[_0xe9bd('0x1b')]();});}};}function handleEntityNotFound(_0x2641be,_0xb52d45){return function(_0x399f3c){if(!_0x399f3c){_0x2641be[_0xe9bd('0x19')](0x194);}return _0x399f3c;};}function handleError(_0x1ae889,_0x5987af){_0x5987af=_0x5987af||0x1f4;return function(_0x3c211a){logger[_0xe9bd('0x27')](_0x3c211a['stack']);if(_0x3c211a[_0xe9bd('0x28')]){delete _0x3c211a[_0xe9bd('0x28')];}_0x1ae889[_0xe9bd('0x1a')](_0x5987af)[_0xe9bd('0x29')](_0x3c211a);};}exports[_0xe9bd('0x2a')]=function(_0x183601,_0x519f48){var _0x5b7f1d={'raw':!![],'where':{'id':_0x183601['params']['id']}},_0x1de54c={};_0x1de54c[_0xe9bd('0x2b')]=_[_0xe9bd('0x2c')](db[_0xe9bd('0x2d')][_0xe9bd('0x2e')]);_0x1de54c[_0xe9bd('0x2f')]=_['keys'](_0x183601['query']);_0x1de54c[_0xe9bd('0x30')]=_[_0xe9bd('0x31')](_0x1de54c[_0xe9bd('0x2b')],_0x1de54c[_0xe9bd('0x2f')]);_0x5b7f1d[_0xe9bd('0x32')]=_[_0xe9bd('0x31')](_0x1de54c[_0xe9bd('0x2b')],qs[_0xe9bd('0x33')](_0x183601[_0xe9bd('0x2f')]['fields']));_0x5b7f1d[_0xe9bd('0x32')]=_0x5b7f1d[_0xe9bd('0x32')][_0xe9bd('0x34')]?_0x5b7f1d['attributes']:_0x1de54c['model'];if(_0x183601[_0xe9bd('0x2f')][_0xe9bd('0x35')]){_0x5b7f1d[_0xe9bd('0x36')]=[{'all':!![]}];}_0x5b7f1d=_[_0xe9bd('0x37')]({},_0x5b7f1d,_0x183601[_0xe9bd('0x38')]);return db[_0xe9bd('0x2d')][_0xe9bd('0x39')](_0x5b7f1d)[_0xe9bd('0x25')](handleEntityNotFound(_0x519f48,null))[_0xe9bd('0x25')](respondWithResult(_0x519f48,null))[_0xe9bd('0x3a')](handleError(_0x519f48,null));};exports[_0xe9bd('0x3b')]=function(_0x549dd1,_0x2ad46e){if(_0x549dd1[_0xe9bd('0x3c')]['id']){delete _0x549dd1[_0xe9bd('0x3c')]['id'];}return db[_0xe9bd('0x2d')][_0xe9bd('0x39')]({'where':{'id':_0x549dd1[_0xe9bd('0x3d')]['id']}})['then'](handleEntityNotFound(_0x2ad46e,null))[_0xe9bd('0x25')](saveUpdates(_0x549dd1[_0xe9bd('0x3c')],null))['then'](respondWithResult(_0x2ad46e,null))[_0xe9bd('0x3a')](handleError(_0x2ad46e,null));};exports[_0xe9bd('0x26')]=function(_0x4c7d47,_0x4b1da0){return db[_0xe9bd('0x2d')][_0xe9bd('0x39')]({'where':{'id':_0x4c7d47['params']['id']}})[_0xe9bd('0x25')](handleEntityNotFound(_0x4b1da0,null))[_0xe9bd('0x25')](removeEntity(_0x4b1da0,null))[_0xe9bd('0x3a')](handleError(_0x4b1da0,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4531=['define','MailApplication','utf8mb4_unicode_ci','../../config/logger','api','request-promise','path','rimraf','../../config/environment','./mailApplication.attributes','exports'];(function(_0x24f254,_0x5ca35f){var _0x477d53=function(_0x214948){while(--_0x214948){_0x24f254['push'](_0x24f254['shift']());}};_0x477d53(++_0x5ca35f);}(_0x4531,0x184));var _0x1453=function(_0x21aca7,_0x547646){_0x21aca7=_0x21aca7-0x0;var _0x4eba0e=_0x4531[_0x21aca7];return _0x4eba0e;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x1453('0x0'))(_0x1453('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0x1453('0x2'));var fs=require('fs');var path=require(_0x1453('0x3'));var rimraf=require(_0x1453('0x4'));var config=require(_0x1453('0x5'));var attributes=require(_0x1453('0x6'));module[_0x1453('0x7')]=function(_0x3d0d38,_0x4601a0){return _0x3d0d38[_0x1453('0x8')](_0x1453('0x9'),attributes,{'tableName':'mail_applications','paranoid':![],'indexes':[],'timestamps':!![],'charset':'utf8mb4','collate':_0x1453('0xa')});};
\ No newline at end of file
+var _0x496f=['rimraf','exports','define','MailApplication','mail_applications','utf8mb4','utf8mb4_unicode_ci','lodash','../../config/logger','request-promise','path'];(function(_0x16f4cd,_0x125cb3){var _0x3bb8fa=function(_0x30d406){while(--_0x30d406){_0x16f4cd['push'](_0x16f4cd['shift']());}};_0x3bb8fa(++_0x125cb3);}(_0x496f,0x125));var _0xf496=function(_0x18b5e8,_0x51e875){_0x18b5e8=_0x18b5e8-0x0;var _0x25baed=_0x496f[_0x18b5e8];return _0x25baed;};'use strict';var _=require(_0xf496('0x0'));var util=require('util');var logger=require(_0xf496('0x1'))('api');var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xf496('0x2'));var fs=require('fs');var path=require(_0xf496('0x3'));var rimraf=require(_0xf496('0x4'));var config=require('../../config/environment');var attributes=require('./mailApplication.attributes');module[_0xf496('0x5')]=function(_0x184731,_0x2de77b){return _0x184731[_0xf496('0x6')](_0xf496('0x7'),attributes,{'tableName':_0xf496('0x8'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0xf496('0x9'),'collate':_0xf496('0xa')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x91e1=['jayson/promise','client','http','request','then','request\x20sent','debug','MailApplication,\x20%s,\x20%s,\x20%s','stringify','error','code','MailApplication,\x20%s,\x20%s','message','info','result','catch','UpdateMailApplication','MailApplication','options','raw','attributes','limit','lodash','util','bluebird','randomstring','ioredis','rpc','../../config/environment'];(function(_0x4cb9c9,_0x253308){var _0x363d6c=function(_0x17cf22){while(--_0x17cf22){_0x4cb9c9['push'](_0x4cb9c9['shift']());}};_0x363d6c(++_0x253308);}(_0x91e1,0xfe));var _0x191e=function(_0x367033,_0x36c417){_0x367033=_0x367033-0x0;var _0x3a76e4=_0x91e1[_0x367033];return _0x3a76e4;};'use strict';var _=require(_0x191e('0x0'));var util=require(_0x191e('0x1'));var moment=require('moment');var BPromise=require(_0x191e('0x2'));var rs=require(_0x191e('0x3'));var fs=require('fs');var Redis=require(_0x191e('0x4'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0x191e('0x5'));var config=require(_0x191e('0x6'));var jayson=require(_0x191e('0x7'));var client=jayson[_0x191e('0x8')][_0x191e('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x49cc6b,_0x4b01ca,_0x5d3898){return new BPromise(function(_0x504382,_0x4c394b){return client[_0x191e('0xa')](_0x49cc6b,_0x5d3898)[_0x191e('0xb')](function(_0x13cc0c){logger['info']('MailApplication,\x20%s,\x20%s',_0x4b01ca,_0x191e('0xc'));logger[_0x191e('0xd')](_0x191e('0xe'),_0x4b01ca,_0x191e('0xc'),JSON[_0x191e('0xf')](_0x13cc0c));if(_0x13cc0c[_0x191e('0x10')]){if(_0x13cc0c[_0x191e('0x10')][_0x191e('0x11')]===0x1f4){logger[_0x191e('0x10')](_0x191e('0x12'),_0x4b01ca,_0x13cc0c[_0x191e('0x10')][_0x191e('0x13')]);return _0x4c394b(_0x13cc0c[_0x191e('0x10')][_0x191e('0x13')]);}logger['error'](_0x191e('0x12'),_0x4b01ca,_0x13cc0c[_0x191e('0x10')]['message']);return _0x504382(_0x13cc0c[_0x191e('0x10')][_0x191e('0x13')]);}else{logger[_0x191e('0x14')](_0x191e('0x12'),_0x4b01ca,'request\x20sent');_0x504382(_0x13cc0c[_0x191e('0x15')]['message']);}})[_0x191e('0x16')](function(_0x2fa9a4){logger[_0x191e('0x10')](_0x191e('0x12'),_0x4b01ca,_0x2fa9a4);_0x4c394b(_0x2fa9a4);});});}exports[_0x191e('0x17')]=function(_0x4b2ab7){var _0x39fe42=this;return new Promise(function(_0x2c17f0,_0x265b56){return db[_0x191e('0x18')]['update'](_0x4b2ab7['body'],{'raw':_0x4b2ab7[_0x191e('0x19')]?_0x4b2ab7[_0x191e('0x19')][_0x191e('0x1a')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x4b2ab7[_0x191e('0x19')]?_0x4b2ab7[_0x191e('0x19')]['where']||null:null,'attributes':_0x4b2ab7[_0x191e('0x19')]?_0x4b2ab7['options'][_0x191e('0x1b')]||null:null,'limit':_0x4b2ab7[_0x191e('0x19')]?_0x4b2ab7[_0x191e('0x19')][_0x191e('0x1c')]||null:null})['then'](function(_0x50c91f){logger[_0x191e('0x14')](_0x191e('0x17'),_0x4b2ab7);logger[_0x191e('0xd')]('UpdateMailApplication',_0x4b2ab7,JSON[_0x191e('0xf')](_0x50c91f));_0x2c17f0(_0x50c91f);})['catch'](function(_0x4784b2){logger['error'](_0x191e('0x17'),_0x4784b2['message'],_0x4b2ab7);_0x265b56(_0x39fe42['error'](0x1f4,_0x4784b2[_0x191e('0x13')]));});});};
\ No newline at end of file
+var _0xc916=['MailApplication','body','options','raw','where','stringify','catch','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','then','info','MailApplication,\x20%s,\x20%s','request\x20sent','MailApplication,\x20%s,\x20%s,\x20%s','code','error','message','UpdateMailApplication'];(function(_0x5236ee,_0x135a39){var _0x211f01=function(_0x3dd68c){while(--_0x3dd68c){_0x5236ee['push'](_0x5236ee['shift']());}};_0x211f01(++_0x135a39);}(_0xc916,0x1d2));var _0x6c91=function(_0x4e1a49,_0x4da738){_0x4e1a49=_0x4e1a49-0x0;var _0x136aae=_0xc916[_0x4e1a49];return _0x136aae;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x6c91('0x0'));var BPromise=require(_0x6c91('0x1'));var rs=require(_0x6c91('0x2'));var fs=require('fs');var Redis=require(_0x6c91('0x3'));var db=require(_0x6c91('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x6c91('0x5'))(_0x6c91('0x6'));var config=require(_0x6c91('0x7'));var jayson=require(_0x6c91('0x8'));var client=jayson[_0x6c91('0x9')][_0x6c91('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x3b8290,_0xdd7299,_0x440ae4){return new BPromise(function(_0x3e1262,_0x7268b0){return client['request'](_0x3b8290,_0x440ae4)[_0x6c91('0xb')](function(_0x498664){logger[_0x6c91('0xc')](_0x6c91('0xd'),_0xdd7299,_0x6c91('0xe'));logger['debug'](_0x6c91('0xf'),_0xdd7299,'request\x20sent',JSON['stringify'](_0x498664));if(_0x498664['error']){if(_0x498664['error'][_0x6c91('0x10')]===0x1f4){logger[_0x6c91('0x11')](_0x6c91('0xd'),_0xdd7299,_0x498664[_0x6c91('0x11')][_0x6c91('0x12')]);return _0x7268b0(_0x498664[_0x6c91('0x11')][_0x6c91('0x12')]);}logger[_0x6c91('0x11')](_0x6c91('0xd'),_0xdd7299,_0x498664[_0x6c91('0x11')]['message']);return _0x3e1262(_0x498664[_0x6c91('0x11')][_0x6c91('0x12')]);}else{logger[_0x6c91('0xc')](_0x6c91('0xd'),_0xdd7299,_0x6c91('0xe'));_0x3e1262(_0x498664['result'][_0x6c91('0x12')]);}})['catch'](function(_0x125e4c){logger[_0x6c91('0x11')](_0x6c91('0xd'),_0xdd7299,_0x125e4c);_0x7268b0(_0x125e4c);});});}exports[_0x6c91('0x13')]=function(_0x42a007){var _0x2d7802=this;return new Promise(function(_0x2da5f1,_0x58cdbd){return db[_0x6c91('0x14')]['update'](_0x42a007[_0x6c91('0x15')],{'raw':_0x42a007['options']?_0x42a007[_0x6c91('0x16')][_0x6c91('0x17')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x42a007[_0x6c91('0x16')]?_0x42a007[_0x6c91('0x16')][_0x6c91('0x18')]||null:null,'attributes':_0x42a007[_0x6c91('0x16')]?_0x42a007['options']['attributes']||null:null,'limit':_0x42a007[_0x6c91('0x16')]?_0x42a007[_0x6c91('0x16')]['limit']||null:null})[_0x6c91('0xb')](function(_0x1b1356){logger[_0x6c91('0xc')](_0x6c91('0x13'),_0x42a007);logger['debug'](_0x6c91('0x13'),_0x42a007,JSON[_0x6c91('0x19')](_0x1b1356));_0x2da5f1(_0x1b1356);})[_0x6c91('0x1a')](function(_0x4c27ab){logger[_0x6c91('0x11')](_0x6c91('0x13'),_0x4c27ab[_0x6c91('0x12')],_0x42a007);_0x58cdbd(_0x2d7802[_0x6c91('0x11')](0x1f4,_0x4c27ab['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2849=['/:id/download','download','post','create','addMessage','/:id/tags','tracked','mail','addTags','put','mailinteraction:update','destroy','delete','exports','Router','../../components/interaction/service','./mailInteraction.controller','get','isAuthenticated','index','/describe','/:id','show','/:id/messages','getMessages'];(function(_0x402b08,_0x60873c){var _0x51c1ca=function(_0x1442d7){while(--_0x1442d7){_0x402b08['push'](_0x402b08['shift']());}};_0x51c1ca(++_0x60873c);}(_0x2849,0x72));var _0x9284=function(_0xb30a63,_0x125e64){_0xb30a63=_0xb30a63-0x0;var _0x56ec9b=_0x2849[_0xb30a63];return _0x56ec9b;};'use strict';var express=require('express');var router=express[_0x9284('0x0')]();var auth=require('../../components/auth/service');var interaction=require(_0x9284('0x1'));var controller=require(_0x9284('0x2'));router[_0x9284('0x3')]('/',auth[_0x9284('0x4')](),controller[_0x9284('0x5')]);router[_0x9284('0x3')](_0x9284('0x6'),auth[_0x9284('0x4')](),controller['describe']);router[_0x9284('0x3')](_0x9284('0x7'),auth[_0x9284('0x4')](),controller[_0x9284('0x8')]);router['get'](_0x9284('0x9'),auth[_0x9284('0x4')](),controller[_0x9284('0xa')]);router[_0x9284('0x3')](_0x9284('0xb'),auth[_0x9284('0x4')](),controller[_0x9284('0xc')]);router[_0x9284('0xd')]('/',auth['isAuthenticated'](),controller[_0x9284('0xe')]);router[_0x9284('0xd')]('/:id/messages',auth[_0x9284('0x4')](),controller[_0x9284('0xf')]);router[_0x9284('0xd')](_0x9284('0x10'),auth[_0x9284('0x4')](),interaction[_0x9284('0x11')](_0x9284('0x12'),'mailinteraction:addtags'),controller[_0x9284('0x13')]);router[_0x9284('0x14')](_0x9284('0x7'),auth[_0x9284('0x4')](),interaction[_0x9284('0x11')](_0x9284('0x12'),_0x9284('0x15')),controller['update']);router['delete'](_0x9284('0x7'),auth['isAuthenticated'](),interaction[_0x9284('0x11')](_0x9284('0x12'),'mailinteraction:destroy'),controller[_0x9284('0x16')]);router[_0x9284('0x17')](_0x9284('0x10'),auth[_0x9284('0x4')](),controller['removeTags']);module[_0x9284('0x18')]=router;
\ No newline at end of file
+var _0x6692=['./mailInteraction.controller','get','isAuthenticated','index','/describe','describe','/:id','show','/:id/messages','getMessages','/:id/download','download','create','addMessage','post','tracked','mail','put','mailinteraction:update','delete','destroy','/:id/tags','removeTags','exports','express','../../components/auth/service','../../components/interaction/service'];(function(_0x2f57b2,_0xa8e91a){var _0x5ace77=function(_0x59c00a){while(--_0x59c00a){_0x2f57b2['push'](_0x2f57b2['shift']());}};_0x5ace77(++_0xa8e91a);}(_0x6692,0x69));var _0x2669=function(_0x1e6b59,_0x5eca5d){_0x1e6b59=_0x1e6b59-0x0;var _0x40d7c5=_0x6692[_0x1e6b59];return _0x40d7c5;};'use strict';var express=require(_0x2669('0x0'));var router=express['Router']();var auth=require(_0x2669('0x1'));var interaction=require(_0x2669('0x2'));var controller=require(_0x2669('0x3'));router[_0x2669('0x4')]('/',auth[_0x2669('0x5')](),controller[_0x2669('0x6')]);router[_0x2669('0x4')](_0x2669('0x7'),auth[_0x2669('0x5')](),controller[_0x2669('0x8')]);router[_0x2669('0x4')](_0x2669('0x9'),auth[_0x2669('0x5')](),controller[_0x2669('0xa')]);router[_0x2669('0x4')](_0x2669('0xb'),auth[_0x2669('0x5')](),controller[_0x2669('0xc')]);router[_0x2669('0x4')](_0x2669('0xd'),auth[_0x2669('0x5')](),controller[_0x2669('0xe')]);router['post']('/',auth[_0x2669('0x5')](),controller[_0x2669('0xf')]);router['post'](_0x2669('0xb'),auth[_0x2669('0x5')](),controller[_0x2669('0x10')]);router[_0x2669('0x11')]('/:id/tags',auth[_0x2669('0x5')](),interaction[_0x2669('0x12')](_0x2669('0x13'),'mailinteraction:addtags'),controller['addTags']);router[_0x2669('0x14')](_0x2669('0x9'),auth[_0x2669('0x5')](),interaction[_0x2669('0x12')](_0x2669('0x13'),_0x2669('0x15')),controller['update']);router[_0x2669('0x16')](_0x2669('0x9'),auth[_0x2669('0x5')](),interaction['tracked'](_0x2669('0x13'),'mailinteraction:destroy'),controller[_0x2669('0x17')]);router['delete'](_0x2669('0x18'),auth[_0x2669('0x5')](),controller[_0x2669('0x19')]);module[_0x2669('0x1a')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x59cf=['out','ENUM','sequelize','iconv','exports','STRING','TEXT','BOOLEAN','DATE'];(function(_0x24895,_0x21dd6d){var _0xb3ef1c=function(_0x4cbee7){while(--_0x4cbee7){_0x24895['push'](_0x24895['shift']());}};_0xb3ef1c(++_0x21dd6d);}(_0x59cf,0x158));var _0xf59c=function(_0x350aeb,_0x3d265a){_0x350aeb=_0x350aeb-0x0;var _0x3c5273=_0x59cf[_0x350aeb];return _0x3c5273;};'use strict';var Sequelize=require(_0xf59c('0x0'));var iconv=require(_0xf59c('0x1'));module[_0xf59c('0x2')]={'closed':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'closedAt':{'type':Sequelize['DATE']},'disposition':{'type':Sequelize['STRING']},'secondDisposition':{'type':Sequelize['STRING']},'thirdDisposition':{'type':Sequelize[_0xf59c('0x3')]},'note':{'type':Sequelize[_0xf59c('0x3')]},'inReplyTo':{'type':Sequelize[_0xf59c('0x3')](0x1fe)},'to':{'type':Sequelize['STRING']},'cc':{'type':Sequelize[_0xf59c('0x4')]('long')},'subject':{'type':Sequelize[_0xf59c('0x4')]()},'attach':{'type':Sequelize[_0xf59c('0x5')],'defaultValue':![]},'read1stAt':{'type':Sequelize['DATE']},'substatus':{'type':Sequelize[_0xf59c('0x3')](0x3c)},'substatusAt':{'type':Sequelize[_0xf59c('0x6')]},'firstMsgDirection':{'type':Sequelize['ENUM']('in',_0xf59c('0x7')),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize[_0xf59c('0x6')]},'lastMsgDirection':{'type':Sequelize[_0xf59c('0x8')]('in',_0xf59c('0x7')),'defaultValue':'in','allowNull':![]},'autoreplyExecuted':{'type':Sequelize[_0xf59c('0x5')],'defaultValue':![]}};
\ No newline at end of file
+var _0x223c=['BOOLEAN','DATE','STRING','TEXT','long','ENUM','out','sequelize','exports'];(function(_0x598b6f,_0x55690f){var _0x40959f=function(_0x5b23af){while(--_0x5b23af){_0x598b6f['push'](_0x598b6f['shift']());}};_0x40959f(++_0x55690f);}(_0x223c,0x1c9));var _0xc223=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x223c[_0x14add3];return _0x4a174f;};'use strict';var Sequelize=require(_0xc223('0x0'));var iconv=require('iconv');module[_0xc223('0x1')]={'closed':{'type':Sequelize[_0xc223('0x2')],'defaultValue':![]},'closedAt':{'type':Sequelize[_0xc223('0x3')]},'disposition':{'type':Sequelize[_0xc223('0x4')]},'secondDisposition':{'type':Sequelize['STRING']},'thirdDisposition':{'type':Sequelize[_0xc223('0x4')]},'note':{'type':Sequelize[_0xc223('0x4')]},'inReplyTo':{'type':Sequelize[_0xc223('0x4')](0x1fe)},'to':{'type':Sequelize[_0xc223('0x4')]},'cc':{'type':Sequelize[_0xc223('0x5')](_0xc223('0x6'))},'subject':{'type':Sequelize[_0xc223('0x5')]()},'attach':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'read1stAt':{'type':Sequelize[_0xc223('0x3')]},'substatus':{'type':Sequelize['STRING'](0x3c)},'substatusAt':{'type':Sequelize[_0xc223('0x3')]},'firstMsgDirection':{'type':Sequelize[_0xc223('0x7')]('in','out'),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize[_0xc223('0x3')]},'lastMsgDirection':{'type':Sequelize[_0xc223('0x7')]('in',_0xc223('0x8')),'defaultValue':'in','allowNull':![]},'autoreplyExecuted':{'type':Sequelize[_0xc223('0x2')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9a0d=['unix','join','tmp','root','server','files','attachments','Attachments','Messages','bcc','subject','mkdirSync','each','decode','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','Bcc','existsSync','readFileSync','build','message%d.eml','download','unlinkSync','eml-format','zip-dir','util','path','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/environment','../../mysqldb','html-entities','redis','localhost','socket.io-emitter','sendStatus','status','offset','limit','undefined','count','Content-Range','json','update','then','error','stack','Users','map','fullname','TagIds','Tags','split','forEach','push','MailMessage','findOne','out','plainBody','-id','lastMsgText','trimStart','catch','index','MailInteraction','rawAttributes','fieldName','type','key','model','keys','query','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','sort','where','pick','select','field','name','color','from','u.fullname','ui.MailInteractionId','user_has_mail_interactions','users','u.id\x20=\x20ui.UserId','left_join','cm_contacts','o.id\x20=\x20i.UserId','mail_accounts','a.id\x20=\x20i.MailAccountId','mail_messages','me.MailInteractionId\x20=\x20i.id','mail_interaction_has_tags','tools_tags','t.id\x20=\x20it.TagId','expr','search','parseSearch','sqlOperator','conditions','find','unreadMessages','value','having','`\x20=\x200','`\x20>\x200','operator','$substring','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId','buildExpression','text','start','end','Tag','union','User','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','isEmpty','MailAccountId','concat','createdAt','$gte','parse','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20IS\x20NULL','`unreadMessages`\x20>\x200','tag','isArray','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','filter','replace','isNumeric','i.id\x20LIKE\x20?','isEmail','c.email\x20LIKE\x20?','MATCH\x20(i.to,\x20i.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','MATCH\x20(me.plainBody,\x20me.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','i.id','Sequelize','QueryTypes','clone','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','order','DESC','t.id\x20IN\x20?','resolve','user','role','agent','getMailAccounts','i.MailAccountId\x20IS\x20NULL','i.MailAccountId\x20IN\x20?','sequelize','toString','keyBy','merge','a.key','Account.key','Account.mandatoryDisposition','CASE\x20WHEN\x20i.to\x20IS\x20NOT\x20NULL\x20AND\x20i.to\x20<>\x20\x27\x27\x20AND\x20i.to\x20NOT\x20LIKE\x20(\x27%\x27\x20+\x20a.email\x20+\x20\x27%\x27)\x20THEN\x20SUBSTRING_INDEX(i.to,\x20\x27<\x27,\x201)\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END','i.createdAt','i.updatedAt','i.closedAt','i.attach','i.lastMsgAt','i.subject','i.disposition','i.secondDisposition','i.thirdDisposition','i.substatus','i.to','i.ContactId','i.UserId','c.firstName','Contact.firstName','c.lastName','Contact.lastName','c.email','Contact.email','Contact.phone','c.mobile','Contact.mobile','c.fax','Owner.fullname','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','groupBy','enableEmailPreview','rows','show','params','includeAll','include','options','create','body','describe','ids','omit','getMessages','MailInteractionId','format','YYYY-MM-DD\x20HH:mm:ss','findAll','inlineCss','true','addTags','setTags','spread','removeTags'];(function(_0x3e4254,_0x3f1591){var _0x2baef8=function(_0x381f48){while(--_0x381f48){_0x3e4254['push'](_0x3e4254['shift']());}};_0x2baef8(++_0x3f1591);}(_0x9a0d,0x1db));var _0xd9a0=function(_0x1177d5,_0x22b649){_0x1177d5=_0x1177d5-0x0;var _0xc3ddc2=_0x9a0d[_0x1177d5];return _0xc3ddc2;};'use strict';var emlformat=require(_0xd9a0('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xd9a0('0x1'));var moment=require('moment');var BPromise=require('bluebird');var util=require(_0xd9a0('0x2'));var path=require(_0xd9a0('0x3'));var fs=require('fs');var _=require('lodash');var squel=require('squel');var juice=require('juice');var Redis=require(_0xd9a0('0x4'));var qs=require(_0xd9a0('0x5'));var as=require(_0xd9a0('0x6'));var logger=require(_0xd9a0('0x7'))('api');var config=require(_0xd9a0('0x8'));var db=require(_0xd9a0('0x9'))['db'];var htmlEntities=require(_0xd9a0('0xa'));config[_0xd9a0('0xb')]=_['defaults'](config[_0xd9a0('0xb')],{'host':_0xd9a0('0xc'),'port':0x18eb});var socket=require(_0xd9a0('0xd'))(new Redis(config[_0xd9a0('0xb')]));require('./mailInteraction.socket')['register'](socket);function respondWithStatusCode(_0x49c275,_0x16a5f5){_0x16a5f5=_0x16a5f5||0xcc;return function(_0x5814fb){if(_0x5814fb){return _0x49c275[_0xd9a0('0xe')](_0x16a5f5);}return _0x49c275['status'](_0x16a5f5)['end']();};}function respondWithResult(_0x45b8a0,_0x3fb361){_0x3fb361=_0x3fb361||0xc8;return function(_0x4ff639){if(_0x4ff639){return _0x45b8a0[_0xd9a0('0xf')](_0x3fb361)['json'](_0x4ff639);}};}function respondWithFilteredResult(_0xbb1aa6,_0xa6495e){return function(_0x30d7dc){if(_0x30d7dc){var _0xbe052e=typeof _0xa6495e[_0xd9a0('0x10')]==='undefined'&&typeof _0xa6495e[_0xd9a0('0x11')]===_0xd9a0('0x12');var _0x2b9918=_0x30d7dc[_0xd9a0('0x13')];var _0x510bb6=_0xbe052e?0x0:_0xa6495e[_0xd9a0('0x10')];var _0x4d684f=_0xbe052e?_0x30d7dc['count']:_0xa6495e[_0xd9a0('0x10')]+_0xa6495e[_0xd9a0('0x11')];var _0x4ac55c;if(_0x4d684f>=_0x2b9918){_0x4d684f=_0x2b9918;_0x4ac55c=0xc8;}else{_0x4ac55c=0xce;}_0xbb1aa6[_0xd9a0('0xf')](_0x4ac55c);return _0xbb1aa6['set'](_0xd9a0('0x14'),_0x510bb6+'-'+_0x4d684f+'/'+_0x2b9918)[_0xd9a0('0x15')](_0x30d7dc);}return null;};}function saveUpdates(_0x4242f7){return function(_0x4f3235){if(_0x4f3235){return _0x4f3235[_0xd9a0('0x16')](_0x4242f7)[_0xd9a0('0x17')](function(_0x76732d){return _0x76732d;});}return null;};}function removeEntity(_0x16b959){return function(_0x17e02a){if(_0x17e02a){return _0x17e02a['destroy']()[_0xd9a0('0x17')](function(){_0x16b959[_0xd9a0('0xf')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5c084e){return function(_0x29bcfc){if(!_0x29bcfc){_0x5c084e['sendStatus'](0x194);}return _0x29bcfc;};}function handleError(_0x245029,_0x303e0e){_0x303e0e=_0x303e0e||0x1f4;return function(_0x63850a){logger[_0xd9a0('0x18')](_0x63850a[_0xd9a0('0x19')]);if(_0x63850a['name']){delete _0x63850a['name'];}_0x245029[_0xd9a0('0xf')](_0x303e0e)['send'](_0x63850a);};}function getInteractionUsers(_0x191bfa,_0x4f2eca){return new BPromise(function(_0x5996ed,_0xa891c){try{if(_0x4f2eca[_0x191bfa['id']]){_0x191bfa[_0xd9a0('0x1a')]=_[_0xd9a0('0x1b')](_0x4f2eca[_0x191bfa['id']],function(_0xad316f){return{'id':_0xad316f['id'],'fullname':_0xad316f[_0xd9a0('0x1c')]};});}}catch(_0x8d45e8){_0xa891c(_0x8d45e8);}_0x5996ed(_0x191bfa);});}function getInteractionTags(_0x2645a0,_0x1d345e){return new BPromise(function(_0x4e4f02,_0x3bab7f){try{if(_0x2645a0[_0xd9a0('0x1d')]){_0x2645a0[_0xd9a0('0x1e')]=[];_0x2645a0[_0xd9a0('0x1d')][_0xd9a0('0x1f')](',')[_0xd9a0('0x20')](function(_0x2c11a0){_0x2645a0[_0xd9a0('0x1e')][_0xd9a0('0x21')](_0x1d345e[_0x2c11a0]);});}delete _0x2645a0[_0xd9a0('0x1d')];}catch(_0x504c91){_0x3bab7f(_0x504c91);}_0x4e4f02(_0x2645a0);});}function getLastMessageText(_0x484e25){return new BPromise(function(_0x200da6,_0x3d8c20){return db[_0xd9a0('0x22')][_0xd9a0('0x23')]({'where':{'$and':[{'MailInteractionId':_0x484e25['id']},{'$or':[{'direction':'in'},{'$and':[{'direction':_0xd9a0('0x24')},{'secret':![]},{'UserId':{'$ne':null}}]}]}]},'attributes':[_0xd9a0('0x25')],'order':_0xd9a0('0x26'),'raw':!![]})[_0xd9a0('0x17')](function(_0x54a5d9){if(_0x54a5d9&&_0x54a5d9[_0xd9a0('0x25')]){_0x484e25[_0xd9a0('0x27')]=_[_0xd9a0('0x28')](_0x54a5d9[_0xd9a0('0x25')]);}_0x200da6(_0x484e25);})[_0xd9a0('0x29')](function(_0x19778d){_0x3d8c20(_0x19778d);});});}function updateMailInteraction(_0x16ab62,_0x5658a8,_0x4dca2c,_0xbf15f6){return new BPromise(function(_0x5327d5,_0x3539f6){return getInteractionUsers(_0x16ab62,_0x4dca2c)[_0xd9a0('0x17')](function(_0x467e10){return getInteractionTags(_0x467e10,_0x5658a8);})['then'](function(_0x2aaa6c){if(_0xbf15f6){_0x5327d5(getLastMessageText(_0x2aaa6c));}else{_0x5327d5(_0x2aaa6c);}})['catch'](function(_0x302b47){_0x3539f6(_0x302b47);});});}exports[_0xd9a0('0x2a')]=function(_0x16f13a,_0x3f6010){var _0x2b99f9={},_0x1b3e1f={},_0x13a95a={'count':0x0,'rows':[]};var _0x334a1a=_[_0xd9a0('0x1b')](db[_0xd9a0('0x2b')][_0xd9a0('0x2c')],function(_0x3f76d4){return{'name':_0x3f76d4[_0xd9a0('0x2d')],'type':_0x3f76d4[_0xd9a0('0x2e')][_0xd9a0('0x2f')]};});_0x1b3e1f[_0xd9a0('0x30')]=_['map'](_0x334a1a,'name');_0x1b3e1f['query']=_[_0xd9a0('0x31')](_0x16f13a[_0xd9a0('0x32')]);_0x1b3e1f[_0xd9a0('0x33')]=_['intersection'](_0x1b3e1f[_0xd9a0('0x30')],_0x1b3e1f['query']);_0x2b99f9[_0xd9a0('0x34')]=_[_0xd9a0('0x35')](_0x1b3e1f[_0xd9a0('0x30')],qs[_0xd9a0('0x36')](_0x16f13a[_0xd9a0('0x32')][_0xd9a0('0x36')]));_0x2b99f9[_0xd9a0('0x34')]=_0x2b99f9[_0xd9a0('0x34')][_0xd9a0('0x37')]?_0x2b99f9['attributes']:_0x1b3e1f[_0xd9a0('0x30')];if(!_0x16f13a[_0xd9a0('0x32')][_0xd9a0('0x38')](_0xd9a0('0x39'))){_0x2b99f9['limit']=qs['limit'](_0x16f13a[_0xd9a0('0x32')]['limit']);_0x2b99f9[_0xd9a0('0x10')]=qs[_0xd9a0('0x10')](_0x16f13a[_0xd9a0('0x32')]['offset']);}_0x2b99f9['order']=qs[_0xd9a0('0x3a')](_0x16f13a[_0xd9a0('0x32')][_0xd9a0('0x3a')]);_0x2b99f9[_0xd9a0('0x3b')]=qs[_0xd9a0('0x33')](_[_0xd9a0('0x3c')](_0x16f13a[_0xd9a0('0x32')],_0x1b3e1f[_0xd9a0('0x33')]),_0x334a1a);var _0x4e88f5=[];var _0x5fd51a=squel[_0xd9a0('0x3d')]()[_0xd9a0('0x3e')]('id')[_0xd9a0('0x3e')](_0xd9a0('0x3f'))['field'](_0xd9a0('0x40'))[_0xd9a0('0x41')]('tools_tags');var _0x201834=squel[_0xd9a0('0x3d')]()[_0xd9a0('0x3e')]('u.id')[_0xd9a0('0x3e')](_0xd9a0('0x42'))[_0xd9a0('0x3e')](_0xd9a0('0x43'))[_0xd9a0('0x41')](_0xd9a0('0x44'),'ui')['left_join'](_0xd9a0('0x45'),'u',_0xd9a0('0x46'));var _0x2df46d=squel[_0xd9a0('0x3d')]()[_0xd9a0('0x41')]('mail_interactions','i')[_0xd9a0('0x47')](_0xd9a0('0x48'),'c','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL')[_0xd9a0('0x47')]('users','o',_0xd9a0('0x49'))[_0xd9a0('0x47')](_0xd9a0('0x4a'),'a',_0xd9a0('0x4b'))[_0xd9a0('0x47')](_0xd9a0('0x4c'),'me',_0xd9a0('0x4d'))['left_join'](_0xd9a0('0x4e'),'it','it.MailInteractionId\x20=\x20i.id')[_0xd9a0('0x47')](_0xd9a0('0x4f'),'t',_0xd9a0('0x50'));var _0x30f980=squel[_0xd9a0('0x51')]();var _0x5d767c=[];var _0x1b6076=squel[_0xd9a0('0x51')]();var _0x10764f;if(_0x16f13a[_0xd9a0('0x32')][_0xd9a0('0x52')]){_0x10764f=as[_0xd9a0('0x53')](_0x16f13a[_0xd9a0('0x32')]['search']);var _0x88c436=_0x10764f[_0xd9a0('0x54')];for(var _0x4e84d3=0x0;_0x4e84d3<_0x10764f[_0xd9a0('0x55')]['length'];_0x4e84d3++){var _0x567184=_0x10764f['conditions'][_0x4e84d3];var _0x27801e='i';var _0x467a18=_[_0xd9a0('0x56')](_0x334a1a,[_0xd9a0('0x3f'),_0x567184['field']]);if(!_0x467a18){switch(_0x567184[_0xd9a0('0x3e')]){case _0xd9a0('0x57'):if(_0x567184[_0xd9a0('0x58')]==0x1){_0x2df46d[_0xd9a0('0x59')]('`'+_0x567184[_0xd9a0('0x3e')]+_0xd9a0('0x5a'));}else{_0x2df46d[_0xd9a0('0x59')]('`'+_0x567184[_0xd9a0('0x3e')]+_0xd9a0('0x5b'));}break;case'Contact':if(_0x567184[_0xd9a0('0x5c')]===_0xd9a0('0x5d')){if(_0x567184[_0xd9a0('0x58')][_0xd9a0('0x1f')]('\x20')[_0xd9a0('0x37')]>0x1){_0x30f980[_0x88c436](_0xd9a0('0x5e'),qs['getFullTextValue'](_0x567184['value']),null);}else{var _0x7f8895='%'+_0x567184[_0xd9a0('0x58')]+'%';_0x30f980[_0x88c436](_0xd9a0('0x5f'),_0x7f8895,_0x7f8895,_0x7f8895);}}else{_0x467a18=_[_0xd9a0('0x56')](_0x334a1a,[_0xd9a0('0x3f'),_0xd9a0('0x60')]);_0x567184[_0xd9a0('0x3e')]=_0xd9a0('0x60');_0x598372=as[_0xd9a0('0x61')](_0x27801e,_0x467a18[_0xd9a0('0x2e')],_0x567184);_0x30f980[_0x88c436](_0x598372[_0xd9a0('0x62')],_0x598372[_0xd9a0('0x58')][_0xd9a0('0x63')],_0x598372[_0xd9a0('0x58')][_0xd9a0('0x64')]);}break;case _0xd9a0('0x65'):var _0x1ef8df=_0x567184['value'][_0xd9a0('0x1f')](',')['map'](function(_0xf616f0){return Number(_0xf616f0);});_0x1ef8df[_0xd9a0('0x20')](function(_0x39df53){_0x1b6076['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x39df53+',%');});_0x5d767c=_[_0xd9a0('0x66')](_0x5d767c,_0x1ef8df);break;case _0xd9a0('0x67'):if(_0x567184['operator']==='$substring'){_0x30f980[_0x88c436](_0xd9a0('0x68'),'%'+_0x567184['value']+'%',null);}else{_0x467a18=_[_0xd9a0('0x56')](_0x334a1a,[_0xd9a0('0x3f'),_0xd9a0('0x69')]);_0x567184[_0xd9a0('0x3e')]=_0xd9a0('0x69');_0x598372=as[_0xd9a0('0x61')](_0x27801e,_0x467a18['type'],_0x567184);_0x30f980[_0x88c436](_0x598372[_0xd9a0('0x62')],_0x598372[_0xd9a0('0x58')][_0xd9a0('0x63')],_0x598372[_0xd9a0('0x58')][_0xd9a0('0x64')]);}break;case'plainBody':_0x598372=as[_0xd9a0('0x61')]('me',null,_0x567184);_0x30f980[_0x88c436](_0x598372[_0xd9a0('0x62')],_0x598372['value'][_0xd9a0('0x63')],_0x598372[_0xd9a0('0x58')]['end']);break;}}else{var _0x598372=as[_0xd9a0('0x61')](_0x27801e,_0x467a18['type'],_0x567184);_0x30f980[_0x88c436](_0x598372['text'],_0x598372[_0xd9a0('0x58')][_0xd9a0('0x63')],_0x598372[_0xd9a0('0x58')][_0xd9a0('0x64')]);}}}else{var _0x3b8a95=_(_0x16f13a[_0xd9a0('0x32')])[_0xd9a0('0x31')]()[_0xd9a0('0x1b')](function(_0x28b2a8){return _['some'](_0x334a1a,[_0xd9a0('0x3f'),_0x28b2a8])?_0x28b2a8:undefined;})['compact']()['value']();if(!_[_0xd9a0('0x6a')](_0x3b8a95)){_0x3b8a95[_0xd9a0('0x20')](function(_0x7c701c){if(_0x7c701c===_0xd9a0('0x6b')){_0x2df46d[_0xd9a0('0x3b')]('i.MailAccountId\x20IN\x20?',[][_0xd9a0('0x6c')](_0x16f13a[_0xd9a0('0x32')][_0x7c701c]));}else if(_0x7c701c===_0xd9a0('0x6d')){var _0x69b36a=JSON['parse'](_0x16f13a['query'][_0x7c701c])[_0xd9a0('0x6e')];var _0x104f75=JSON[_0xd9a0('0x6f')](_0x16f13a[_0xd9a0('0x32')][_0x7c701c])[_0xd9a0('0x70')];_0x2df46d['where'](_0xd9a0('0x71'),_0x69b36a,_0x104f75);}else{if(_0x16f13a[_0xd9a0('0x32')][_0x7c701c]===_0xd9a0('0x72')){_0x2df46d['where']('i.'+_0x7c701c+_0xd9a0('0x73'));}else{_0x2df46d['where']('i.'+_0x7c701c+'\x20=\x20?',_0x16f13a['query'][_0x7c701c]);}}});}if(_0x16f13a[_0xd9a0('0x32')]['read']){if(_0x16f13a['query']['read']==0x1){_0x2df46d[_0xd9a0('0x59')]('`unreadMessages`\x20=\x200');}else{_0x2df46d[_0xd9a0('0x59')](_0xd9a0('0x74'));}}if(_0x16f13a[_0xd9a0('0x32')][_0xd9a0('0x75')]){_0x5d767c=_[_0xd9a0('0x76')](_0x16f13a['query']['tag'])?_0x16f13a[_0xd9a0('0x32')][_0xd9a0('0x75')]:new Array(_0x16f13a['query'][_0xd9a0('0x75')]);_0x5d767c[_0xd9a0('0x20')](function(_0x256a8c){_0x1b6076['or'](_0xd9a0('0x77'),'%,'+_0x256a8c+',%');});}if(_0x16f13a[_0xd9a0('0x32')][_0xd9a0('0x78')]){var _0x4299aa=_0x16f13a[_0xd9a0('0x32')][_0xd9a0('0x78')]['replace']('\x5c','\x5c\x5c')[_0xd9a0('0x79')](/'/g,'\x27\x27');if(qs[_0xd9a0('0x7a')](_0x4299aa)){_0x30f980['or'](_0xd9a0('0x7b'),_0x4299aa+'%');}else if(qs[_0xd9a0('0x7c')](_0x4299aa)){_0x30f980['or'](_0xd9a0('0x7d'),_0x4299aa+'%');}else{_0x30f980['or'](_0xd9a0('0x7e'),qs[_0xd9a0('0x7f')](_0x4299aa))['or'](_0xd9a0('0x80'),qs[_0xd9a0('0x7f')](_0x4299aa));}}}_0x2df46d[_0xd9a0('0x3b')](_0x30f980);_0x2df46d['group'](_0xd9a0('0x81'));var _0xfcc419={'type':db[_0xd9a0('0x82')][_0xd9a0('0x83')]['SELECT'],'raw':!![]};var _0x2c1c96=_0x2df46d[_0xd9a0('0x84')]();_0x2c1c96[_0xd9a0('0x3e')](_0xd9a0('0x81'));_0x2c1c96[_0xd9a0('0x3e')](_0xd9a0('0x85'),_0xd9a0('0x57'));if(_0x2b99f9[_0xd9a0('0x86')]){_0x2b99f9[_0xd9a0('0x86')][_0xd9a0('0x20')](function(_0x5aaf8a){var _0x53756c=_0x5aaf8a[0x0]==='contactName'?_0x5aaf8a[0x0]:'i.'+_0x5aaf8a[0x0];_0x2df46d['order'](_0x53756c,_0x5aaf8a[0x1]===_0xd9a0('0x87')?![]:!![]);});}if(!_['isEmpty'](_0x5d767c)){_0x2df46d[_0xd9a0('0x59')](_0x1b6076);_0x2c1c96[_0xd9a0('0x3b')](_0xd9a0('0x88'),_0x5d767c);}BPromise[_0xd9a0('0x89')]()['then'](function(){if(!_0x10764f){if(_0x16f13a[_0xd9a0('0x32')][_0xd9a0('0x6b')])return;_0x2c1c96[_0xd9a0('0x3b')]('i.MailAccountId\x20IS\x20NOT\x20NULL');_0x2df46d[_0xd9a0('0x3b')]('i.MailAccountId\x20IS\x20NOT\x20NULL');return;}if(_0x16f13a[_0xd9a0('0x8a')][_0xd9a0('0x8b')]!==_0xd9a0('0x8c'))return;return _0x16f13a[_0xd9a0('0x8a')][_0xd9a0('0x8d')]({'attributes':['id'],'raw':!![]})[_0xd9a0('0x17')](function(_0x3182df){if(_[_0xd9a0('0x6a')](_0x3182df)){_0x2c1c96[_0xd9a0('0x3b')](_0xd9a0('0x8e'));_0x2df46d[_0xd9a0('0x3b')](_0xd9a0('0x8e'));}else{_0x2c1c96[_0xd9a0('0x3b')]('i.MailAccountId\x20IN\x20?',_['map'](_0x3182df,'id'));_0x2df46d[_0xd9a0('0x3b')](_0xd9a0('0x8f'),_['map'](_0x3182df,'id'));}});})[_0xd9a0('0x17')](function(){if(_0x16f13a['user'][_0xd9a0('0x8b')]===_0xd9a0('0x8c')&&!_0x10764f&&!_0x16f13a[_0xd9a0('0x32')][_0xd9a0('0x6b')])return[];return db[_0xd9a0('0x90')][_0xd9a0('0x32')](_0x2c1c96['toString'](),_0xfcc419);})['then'](function(_0x55af36){_0x13a95a[_0xd9a0('0x13')]=_0x55af36[_0xd9a0('0x37')];if(_0x13a95a[_0xd9a0('0x13')]===0x0)return[];return db[_0xd9a0('0x90')][_0xd9a0('0x32')](_0x5fd51a[_0xd9a0('0x91')](),_0xfcc419)[_0xd9a0('0x17')](function(_0x5df96a){_0x4e88f5=_[_0xd9a0('0x92')](_0x5df96a,'id');_0xfcc419=_[_0xd9a0('0x93')](_0xfcc419,{'model':db[_0xd9a0('0x2b')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x16f13a[_0xd9a0('0x32')][_0xd9a0('0x36')]){_0x2b99f9['attributes']['forEach'](function(_0x1e31be){_0x2df46d[_0xd9a0('0x3e')]('i.'+_0x1e31be);});}else{_0x2df46d[_0xd9a0('0x3e')](_0xd9a0('0x85'),_0xd9a0('0x57'));_0x2df46d[_0xd9a0('0x3e')](_0xd9a0('0x94'),_0xd9a0('0x95'));_0x2df46d[_0xd9a0('0x3e')]('a.mandatoryDisposition',_0xd9a0('0x96'));_0x2df46d[_0xd9a0('0x3e')](_0xd9a0('0x97'),'contactName');_0x2df46d[_0xd9a0('0x3e')](_0xd9a0('0x81'));_0x2df46d[_0xd9a0('0x3e')](_0xd9a0('0x98'));_0x2df46d['field'](_0xd9a0('0x99'));_0x2df46d['field']('i.closed');_0x2df46d[_0xd9a0('0x3e')](_0xd9a0('0x9a'));_0x2df46d[_0xd9a0('0x3e')](_0xd9a0('0x9b'));_0x2df46d['field'](_0xd9a0('0x9c'));_0x2df46d[_0xd9a0('0x3e')]('i.lastMsgDirection');_0x2df46d[_0xd9a0('0x3e')](_0xd9a0('0x9d'));_0x2df46d[_0xd9a0('0x3e')](_0xd9a0('0x9e'));_0x2df46d[_0xd9a0('0x3e')](_0xd9a0('0x9f'));_0x2df46d[_0xd9a0('0x3e')](_0xd9a0('0xa0'));_0x2df46d[_0xd9a0('0x3e')](_0xd9a0('0xa1'));_0x2df46d[_0xd9a0('0x3e')](_0xd9a0('0xa2'));_0x2df46d['field'](_0xd9a0('0xa3'));_0x2df46d[_0xd9a0('0x3e')]('i.MailAccountId');_0x2df46d[_0xd9a0('0x3e')](_0xd9a0('0xa4'));_0x2df46d[_0xd9a0('0x3e')](_0xd9a0('0xa5'),_0xd9a0('0xa6'));_0x2df46d[_0xd9a0('0x3e')](_0xd9a0('0xa7'),_0xd9a0('0xa8'));_0x2df46d[_0xd9a0('0x3e')](_0xd9a0('0xa9'),_0xd9a0('0xaa'));_0x2df46d[_0xd9a0('0x3e')]('c.phone',_0xd9a0('0xab'));_0x2df46d['field'](_0xd9a0('0xac'),_0xd9a0('0xad'));_0x2df46d[_0xd9a0('0x3e')](_0xd9a0('0xae'),'Contact.fax');_0x2df46d[_0xd9a0('0x3e')]('o.fullname',_0xd9a0('0xaf'));_0x2df46d['field'](_0xd9a0('0xb0'),_0xd9a0('0xb1'));_0x2df46d[_0xd9a0('0x3e')](_0xd9a0('0xb2'),_0xd9a0('0x1d'));}if(_0x2b99f9[_0xd9a0('0x11')])_0x2df46d[_0xd9a0('0x11')](_0x2b99f9[_0xd9a0('0x11')]);if(_0x2b99f9[_0xd9a0('0x10')])_0x2df46d[_0xd9a0('0x10')](_0x2b99f9['offset']);return db[_0xd9a0('0x90')][_0xd9a0('0x32')](_0x2df46d[_0xd9a0('0x91')](),_0xfcc419);})['then'](function(_0x4aacaa){if(_0x4aacaa[_0xd9a0('0x37')]>0x0)_0x201834['where']('ui.MailInteractionId\x20IN\x20?',_[_0xd9a0('0x1b')](_0x4aacaa,'id'));return db['sequelize'][_0xd9a0('0x32')](_0x201834[_0xd9a0('0x91')](),_0xfcc419)[_0xd9a0('0x17')](function(_0x224739){var _0xa28009=_[_0xd9a0('0xb3')](_0x224739,'MailInteractionId');var _0x4439e9=[];return db['Setting']['findOne']({'attributes':[_0xd9a0('0xb4')],'raw':!![]})['then'](function(_0x46dd60){var _0x784a96=_0x46dd60[_0xd9a0('0xb4')];_0x4aacaa[_0xd9a0('0x20')](function(_0x5701c7){_0x4439e9[_0xd9a0('0x21')](updateMailInteraction(_0x5701c7,_0x4e88f5,_0xa28009,_0x784a96));});return BPromise['all'](_0x4439e9);});});});})[_0xd9a0('0x17')](function(_0xfb16b3){_0x13a95a[_0xd9a0('0xb5')]=_0xfb16b3;return _0x13a95a;})[_0xd9a0('0x17')](respondWithFilteredResult(_0x3f6010,_0x2b99f9))[_0xd9a0('0x29')](handleError(_0x3f6010,null));};exports[_0xd9a0('0xb6')]=function(_0x34d9ef,_0x593f15){var _0x5e5182={'raw':![],'where':{'id':_0x34d9ef[_0xd9a0('0xb7')]['id']}},_0x5ec64b={};_0x5ec64b[_0xd9a0('0x30')]=_[_0xd9a0('0x31')](db[_0xd9a0('0x2b')][_0xd9a0('0x2c')]);_0x5ec64b[_0xd9a0('0x32')]=_[_0xd9a0('0x31')](_0x34d9ef[_0xd9a0('0x32')]);_0x5ec64b[_0xd9a0('0x33')]=_[_0xd9a0('0x35')](_0x5ec64b[_0xd9a0('0x30')],_0x5ec64b[_0xd9a0('0x32')]);_0x5e5182[_0xd9a0('0x34')]=_['intersection'](_0x5ec64b['model'],qs['fields'](_0x34d9ef[_0xd9a0('0x32')][_0xd9a0('0x36')]));_0x5e5182[_0xd9a0('0x34')]=_0x5e5182['attributes'][_0xd9a0('0x37')]?_0x5e5182[_0xd9a0('0x34')]:_0x5ec64b[_0xd9a0('0x30')];if(_0x34d9ef[_0xd9a0('0x32')][_0xd9a0('0xb8')]){_0x5e5182[_0xd9a0('0xb9')]=[{'all':!![]}];}_0x5e5182=_[_0xd9a0('0x93')]({},_0x5e5182,_0x34d9ef[_0xd9a0('0xba')]);return db[_0xd9a0('0x2b')][_0xd9a0('0x56')](_0x5e5182)['then'](handleEntityNotFound(_0x593f15,null))[_0xd9a0('0x17')](respondWithResult(_0x593f15,null))[_0xd9a0('0x29')](handleError(_0x593f15,null));};exports['create']=function(_0x5e4cac,_0x438ebc){return db[_0xd9a0('0x2b')][_0xd9a0('0xbb')](_0x5e4cac['body'],{})[_0xd9a0('0x17')](respondWithResult(_0x438ebc,0xc9))['catch'](handleError(_0x438ebc,null));};exports['update']=function(_0x449e07,_0x2dd823){if(_0x449e07[_0xd9a0('0xbc')]['id']){delete _0x449e07[_0xd9a0('0xbc')]['id'];}return db['MailInteraction'][_0xd9a0('0x56')]({'where':{'id':_0x449e07['params']['id']}})[_0xd9a0('0x17')](handleEntityNotFound(_0x2dd823,null))[_0xd9a0('0x17')](saveUpdates(_0x449e07['body'],null))['then'](respondWithResult(_0x2dd823,null))[_0xd9a0('0x29')](handleError(_0x2dd823,null));};exports['destroy']=function(_0x88363,_0xa0a843){return db[_0xd9a0('0x2b')][_0xd9a0('0x56')]({'where':{'id':_0x88363[_0xd9a0('0xb7')]['id']}})[_0xd9a0('0x17')](handleEntityNotFound(_0xa0a843,null))[_0xd9a0('0x17')](removeEntity(_0xa0a843,null))[_0xd9a0('0x29')](handleError(_0xa0a843,null));};exports[_0xd9a0('0xbd')]=function(_0x361825,_0xc7d6df){return db[_0xd9a0('0x2b')]['describe']()[_0xd9a0('0x17')](respondWithResult(_0xc7d6df,null))[_0xd9a0('0x29')](handleError(_0xc7d6df,null));};exports['addMessage']=function(_0x49c931,_0x4932b9){return db[_0xd9a0('0x22')][_0xd9a0('0x56')]({'where':{'id':_0x49c931[_0xd9a0('0xb7')]['id']}})['then'](handleEntityNotFound(_0x4932b9,null))[_0xd9a0('0x17')](function(_0x4f126a){if(_0x4f126a){return _0x4f126a['addMessage'](_0x49c931[_0xd9a0('0xbc')][_0xd9a0('0xbe')],_[_0xd9a0('0xbf')](_0x49c931['body'],[_0xd9a0('0xbe'),'id'])||{});}})[_0xd9a0('0x17')](respondWithResult(_0x4932b9,null))[_0xd9a0('0x29')](handleError(_0x4932b9,null));};exports[_0xd9a0('0xc0')]=function(_0x1a8000,_0x47a067){var _0x3a50ed={'raw':![],'where':{}};var _0xb0e9fc={};var _0x504401={'count':0x0,'rows':[]};return db['MailInteraction'][_0xd9a0('0x23')]({'where':{'id':_0x1a8000['params']['id']}})[_0xd9a0('0x17')](handleEntityNotFound(_0x47a067,null))[_0xd9a0('0x17')](function(_0x2c876){if(_0x2c876){_0xb0e9fc[_0xd9a0('0x30')]=_[_0xd9a0('0x31')](db[_0xd9a0('0x22')]['rawAttributes']);_0xb0e9fc[_0xd9a0('0x32')]=_['keys'](_0x1a8000[_0xd9a0('0x32')]);_0xb0e9fc['filters']=_[_0xd9a0('0x35')](_0xb0e9fc[_0xd9a0('0x30')],_0xb0e9fc[_0xd9a0('0x32')]);_0x3a50ed['attributes']=_['intersection'](_0xb0e9fc['model'],qs['fields'](_0x1a8000[_0xd9a0('0x32')][_0xd9a0('0x36')]));_0x3a50ed['attributes']=_0x3a50ed[_0xd9a0('0x34')][_0xd9a0('0x37')]?_0x3a50ed[_0xd9a0('0x34')]:_0xb0e9fc[_0xd9a0('0x30')];if(!_0x1a8000[_0xd9a0('0x32')][_0xd9a0('0x38')](_0xd9a0('0x39'))){_0x3a50ed[_0xd9a0('0x11')]=qs[_0xd9a0('0x11')](_0x1a8000[_0xd9a0('0x32')]['limit']);_0x3a50ed['offset']=qs[_0xd9a0('0x10')](_0x1a8000[_0xd9a0('0x32')][_0xd9a0('0x10')]);}_0x3a50ed['order']=qs['sort'](_0x1a8000['query'][_0xd9a0('0x3a')]);_0x3a50ed[_0xd9a0('0x3b')]=qs[_0xd9a0('0x33')](_['pick'](_0x1a8000['query'],_0xb0e9fc[_0xd9a0('0x33')]));_0x3a50ed[_0xd9a0('0x3b')][_0xd9a0('0xc1')]=_0x2c876['id'];if(_0x1a8000[_0xd9a0('0x32')][_0xd9a0('0x78')]){_0x3a50ed[_0xd9a0('0x3b')]=_[_0xd9a0('0x93')](_0x3a50ed[_0xd9a0('0x3b')],{'$or':_[_0xd9a0('0x1b')](_0x3a50ed[_0xd9a0('0x34')],function(_0x2bab9d){var _0x4446b4={};_0x4446b4[_0x2bab9d]={'$like':'%'+_0x1a8000[_0xd9a0('0x32')][_0xd9a0('0x78')]+'%'};return _0x4446b4;})});}if(_0x1a8000[_0xd9a0('0x32')][_0xd9a0('0x6e')]){var _0x5accac=_0x1a8000[_0xd9a0('0x32')][_0xd9a0('0x6e')][_0xd9a0('0x1f')](',');var _0x24e894={};_0x24e894[_0x5accac[0x0]]={'$gte':moment(_0x5accac[0x1])[_0xd9a0('0xc2')](_0xd9a0('0xc3'))};_0x3a50ed[_0xd9a0('0x3b')]=_['merge'](_0x3a50ed[_0xd9a0('0x3b')],_0x24e894);}_0x3a50ed=_[_0xd9a0('0x93')]({},_0x3a50ed,_0x1a8000[_0xd9a0('0xba')]);return db['MailMessage'][_0xd9a0('0x13')]({'where':_0x3a50ed[_0xd9a0('0x3b')]})[_0xd9a0('0x17')](function(_0x281178){_0x504401[_0xd9a0('0x13')]=_0x281178;if(_0x1a8000[_0xd9a0('0x32')][_0xd9a0('0xb8')]){_0x3a50ed[_0xd9a0('0xb9')]=[{'all':!![]}];}return db['MailMessage'][_0xd9a0('0xc4')](_0x3a50ed);})[_0xd9a0('0x17')](function(_0x200f8f){if(_0x1a8000[_0xd9a0('0x32')][_0xd9a0('0xc5')]===_0xd9a0('0xc6')){for(var _0x3c02f7=0x0;_0x3c02f7<_0x200f8f['length'];_0x3c02f7++){_0x200f8f[_0x3c02f7]['body']=juice(_0x200f8f[_0x3c02f7][_0xd9a0('0xbc')]);}}_0x504401[_0xd9a0('0xb5')]=_0x200f8f;return _0x504401;});}})[_0xd9a0('0x17')](respondWithFilteredResult(_0x47a067,_0x3a50ed))[_0xd9a0('0x29')](handleError(_0x47a067,null));};exports[_0xd9a0('0xc7')]=function(_0x1aaa27,_0x2e37d3){return db[_0xd9a0('0x2b')][_0xd9a0('0x56')]({'where':{'id':_0x1aaa27[_0xd9a0('0xb7')]['id']}})[_0xd9a0('0x17')](handleEntityNotFound(_0x2e37d3,null))[_0xd9a0('0x17')](function(_0xea8d7c){if(_0xea8d7c){return _0xea8d7c[_0xd9a0('0xc8')](_0x1aaa27[_0xd9a0('0xbc')][_0xd9a0('0xbe')],_[_0xd9a0('0xbf')](_0x1aaa27['body'],[_0xd9a0('0xbe'),'id'])||{})[_0xd9a0('0xc9')](function(){return db[_0xd9a0('0x65')]['findAll']({'attributes':['id',_0xd9a0('0x3f'),_0xd9a0('0x40')],'where':{'id':_0x1aaa27['body'][_0xd9a0('0xbe')]}});})['then'](function(_0x5d0827){socket['emit']('mailInteractionTags:save',{'id':Number(_0x1aaa27['params']['id']),'tags':_0x5d0827||[]});return{'id':Number(_0x1aaa27[_0xd9a0('0xb7')]['id']),'tags':_0x5d0827||[]};});}})[_0xd9a0('0x17')](respondWithResult(_0x2e37d3,null))[_0xd9a0('0x29')](handleError(_0x2e37d3,null));};exports['removeTags']=function(_0x3f0955,_0x6094aa){return db[_0xd9a0('0x2b')][_0xd9a0('0x56')]({'where':{'id':_0x3f0955[_0xd9a0('0xb7')]['id']}})[_0xd9a0('0x17')](handleEntityNotFound(_0x6094aa,null))[_0xd9a0('0x17')](function(_0x29d36c){if(_0x29d36c){return _0x29d36c[_0xd9a0('0xca')](_0x3f0955['query']['ids']);}})[_0xd9a0('0x17')](respondWithStatusCode(_0x6094aa,null))['catch'](handleError(_0x6094aa,null));};exports['download']=function(_0x40bd7c,_0x13850a){var _0x48c5a6=moment()[_0xd9a0('0xcb')]()[_0xd9a0('0x91')]();var _0x58f56b=path[_0xd9a0('0xcc')](config['root'],'server','files',_0xd9a0('0xcd'));var _0x12f176=path[_0xd9a0('0xcc')](config[_0xd9a0('0xce')],_0xd9a0('0xcf'),_0xd9a0('0xd0'),_0xd9a0('0xd1'));var _0x1c32b2=path['join'](_0x58f56b,_0x48c5a6);var _0x3bac9f=util[_0xd9a0('0xc2')]('transcript-%d-%s.zip',_0x40bd7c[_0xd9a0('0xb7')]['id'],_0x48c5a6);var _0x16d061=path[_0xd9a0('0xcc')](_0x58f56b,_0x3bac9f);var _0x3a4571=[];if(_0x40bd7c[_0xd9a0('0x32')][_0xd9a0('0xd1')]){_0x3a4571['push']({'model':db['Attachment'],'as':_0xd9a0('0xd2'),'raw':!![]});}var _0x5ce32e=[{'model':db[_0xd9a0('0x22')],'as':_0xd9a0('0xd3'),'attributes':['id','body',_0xd9a0('0x41'),'to','cc',_0xd9a0('0xd4'),_0xd9a0('0xd5'),'createdAt'],'where':{'secret':![]},'order':qs[_0xd9a0('0x3a')]('id'),'include':_0x3a4571}];return db[_0xd9a0('0x2b')][_0xd9a0('0x56')]({'where':{'id':_0x40bd7c[_0xd9a0('0xb7')]['id']},'include':_0x5ce32e})[_0xd9a0('0x17')](handleEntityNotFound(_0x13850a,null))[_0xd9a0('0x17')](function(_0xfc620){if(_0xfc620&&_0xfc620[_0xd9a0('0xd3')]){var _0x5c65c2=_0xfc620['get']({'plain':!![]});fs[_0xd9a0('0xd6')](_0x1c32b2);return BPromise[_0xd9a0('0xd7')](_0x5c65c2[_0xd9a0('0xd3')],function(_0x4b1b8f,_0x411814){var _0x116024={'from':_0x4b1b8f[_0xd9a0('0x41')],'to':_0x4b1b8f['to'],'subject':_0x4b1b8f[_0xd9a0('0xd5')],'html':htmlEntities[_0xd9a0('0xd8')](_0x4b1b8f[_0xd9a0('0xbc')]),'headers':{'Date':moment(_0x4b1b8f[_0xd9a0('0x6d')])[_0xd9a0('0xc2')](_0xd9a0('0xd9'))},'attachments':[]};if(_0x4b1b8f['cc']){_0x116024['headers']['Cc']=_0x4b1b8f['cc'];}if(_0x4b1b8f['bcc']){_0x116024[_0xd9a0('0xda')][_0xd9a0('0xdb')]=_0x4b1b8f[_0xd9a0('0xd4')];}return new BPromise(function(_0x19b0f6,_0x5b7892){if(_0x4b1b8f[_0xd9a0('0xd2')]){for(var _0x548675=0x0;_0x548675<_0x4b1b8f[_0xd9a0('0xd2')][_0xd9a0('0x37')];_0x548675++){var _0x988aaa=_0x4b1b8f[_0xd9a0('0xd2')][_0x548675];var _0x396bfc=path[_0xd9a0('0xcc')](_0x12f176,_0x988aaa['basename']);if(fs[_0xd9a0('0xdc')](_0x396bfc)){_0x116024[_0xd9a0('0xd1')][_0xd9a0('0x21')]({'name':_0x988aaa[_0xd9a0('0x3f')],'contentType':_0x988aaa[_0xd9a0('0x2e')],'data':fs[_0xd9a0('0xdd')](_0x396bfc)});}}}emlformat[_0xd9a0('0xde')](_0x116024,function(_0x84ca55,_0x1b3201){if(_0x84ca55)return _0x5b7892(_0x84ca55);fs['writeFileSync'](path[_0xd9a0('0xcc')](_0x1c32b2,util[_0xd9a0('0xc2')](_0xd9a0('0xdf'),_0x411814)),_0x1b3201);return _0x19b0f6(_0x1b3201);});});})['then'](function(){return new BPromise(function(_0x148277,_0x1884a4){zipdir(_0x1c32b2,{'saveTo':_0x16d061},function(_0x1d30c0,_0x1fb2fa){if(_0x1d30c0)return _0x1884a4(_0x1d30c0);return _0x148277(_0x1fb2fa);});})[_0xd9a0('0x17')](function(){return new BPromise(function(_0x382c91,_0x4ac0e1){rimraf(_0x1c32b2,function(_0x18f73){if(_0x18f73)_0x4ac0e1(_0x18f73);return _0x382c91();});});})['then'](function(){return _0x13850a[_0xd9a0('0xe0')](_0x16d061,_0x3bac9f,function(_0x3ec22c){if(!_0x3ec22c)fs[_0xd9a0('0xe1')](_0x16d061);});});});}else{return _0x13850a[_0xd9a0('0xe')](0xc8);}})[_0xd9a0('0x29')](handleError(_0x13850a,null));};
\ No newline at end of file
+var _0xc1b7=['findAll','inlineCss','true','addTags','setTags','mailInteractionTags:save','removeTags','unix','join','root','files','tmp','server','attachments','format','transcript-%d-%s.zip','Attachment','Attachments','bcc','subject','get','mkdirSync','each','Messages','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','Bcc','basename','writeFileSync','message%d.eml','download','unlinkSync','eml-format','rimraf','zip-dir','moment','bluebird','util','path','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','redis','defaults','socket.io-emitter','./mailInteraction.socket','status','end','offset','undefined','limit','count','set','Content-Range','json','update','then','destroy','sendStatus','error','stack','name','send','Users','map','fullname','Tags','TagIds','push','MailMessage','findOne','plainBody','trimStart','catch','index','MailInteraction','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','select','field','color','from','tools_tags','u.fullname','ui.MailInteractionId','user_has_mail_interactions','left_join','u.id\x20=\x20ui.UserId','mail_interactions','cm_contacts','o.id\x20=\x20i.UserId','mail_accounts','me.MailInteractionId\x20=\x20i.id','mail_interaction_has_tags','it.MailInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','sqlOperator','conditions','length','find','unreadMessages','value','having','`\x20>\x200','operator','getFullTextValue','ContactId','buildExpression','text','Tag','split','forEach','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User','$substring','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','start','some','compact','isEmpty','MailAccountId','concat','createdAt','parse','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','\x20=\x20?','read','`unreadMessages`\x20=\x200','tag','isArray','filter','replace','i.id\x20LIKE\x20?','isEmail','MATCH\x20(i.to,\x20i.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','MATCH\x20(me.plainBody,\x20me.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','group','i.id','Sequelize','QueryTypes','SELECT','clone','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','contactName','DESC','t.id\x20IN\x20?','resolve','i.MailAccountId\x20IS\x20NOT\x20NULL','user','role','agent','getMailAccounts','i.MailAccountId\x20IS\x20NULL','i.MailAccountId\x20IN\x20?','sequelize','toString','keyBy','merge','a.key','Account.key','a.mandatoryDisposition','Account.mandatoryDisposition','CASE\x20WHEN\x20i.to\x20IS\x20NOT\x20NULL\x20AND\x20i.to\x20<>\x20\x27\x27\x20AND\x20i.to\x20NOT\x20LIKE\x20(\x27%\x27\x20+\x20a.email\x20+\x20\x27%\x27)\x20THEN\x20SUBSTRING_INDEX(i.to,\x20\x27<\x27,\x201)\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END','i.updatedAt','i.closed','i.lastMsgAt','i.lastMsgDirection','i.subject','i.secondDisposition','i.thirdDisposition','i.substatus','i.to','i.ContactId','i.MailAccountId','i.UserId','c.firstName','c.lastName','c.email','Contact.email','c.phone','c.mobile','Contact.mobile','o.fullname','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.MailInteractionId\x20IN\x20?','MailInteractionId','Setting','enableEmailPreview','all','rows','show','params','rawAttributes','includeAll','include','options','create','body','describe','addMessage','ids','omit','getMessages','$gte','YYYY-MM-DD\x20HH:mm:ss'];(function(_0x55daf2,_0x1b48de){var _0x1c8500=function(_0x4686b5){while(--_0x4686b5){_0x55daf2['push'](_0x55daf2['shift']());}};_0x1c8500(++_0x1b48de);}(_0xc1b7,0x103));var _0x7c1b=function(_0x5a69ab,_0x610049){_0x5a69ab=_0x5a69ab-0x0;var _0x27f2f7=_0xc1b7[_0x5a69ab];return _0x27f2f7;};'use strict';var emlformat=require(_0x7c1b('0x0'));var rimraf=require(_0x7c1b('0x1'));var zipdir=require(_0x7c1b('0x2'));var moment=require(_0x7c1b('0x3'));var BPromise=require(_0x7c1b('0x4'));var util=require(_0x7c1b('0x5'));var path=require(_0x7c1b('0x6'));var fs=require('fs');var _=require('lodash');var squel=require('squel');var juice=require('juice');var Redis=require(_0x7c1b('0x7'));var qs=require(_0x7c1b('0x8'));var as=require('../../components/parsers/advancedSearch');var logger=require(_0x7c1b('0x9'))(_0x7c1b('0xa'));var config=require(_0x7c1b('0xb'));var db=require(_0x7c1b('0xc'))['db'];var htmlEntities=require('html-entities');config[_0x7c1b('0xd')]=_[_0x7c1b('0xe')](config[_0x7c1b('0xd')],{'host':'localhost','port':0x18eb});var socket=require(_0x7c1b('0xf'))(new Redis(config[_0x7c1b('0xd')]));require(_0x7c1b('0x10'))['register'](socket);function respondWithStatusCode(_0x15e611,_0x24a687){_0x24a687=_0x24a687||0xcc;return function(_0x3450db){if(_0x3450db){return _0x15e611['sendStatus'](_0x24a687);}return _0x15e611[_0x7c1b('0x11')](_0x24a687)[_0x7c1b('0x12')]();};}function respondWithResult(_0x3b5973,_0x5e37b4){_0x5e37b4=_0x5e37b4||0xc8;return function(_0x3e69e0){if(_0x3e69e0){return _0x3b5973[_0x7c1b('0x11')](_0x5e37b4)['json'](_0x3e69e0);}};}function respondWithFilteredResult(_0x1212bb,_0x30bc1e){return function(_0x3df479){if(_0x3df479){var _0x11ab82=typeof _0x30bc1e[_0x7c1b('0x13')]===_0x7c1b('0x14')&&typeof _0x30bc1e[_0x7c1b('0x15')]===_0x7c1b('0x14');var _0x4fe36c=_0x3df479[_0x7c1b('0x16')];var _0x1d626e=_0x11ab82?0x0:_0x30bc1e[_0x7c1b('0x13')];var _0x28a982=_0x11ab82?_0x3df479[_0x7c1b('0x16')]:_0x30bc1e['offset']+_0x30bc1e['limit'];var _0x34fe7b;if(_0x28a982>=_0x4fe36c){_0x28a982=_0x4fe36c;_0x34fe7b=0xc8;}else{_0x34fe7b=0xce;}_0x1212bb[_0x7c1b('0x11')](_0x34fe7b);return _0x1212bb[_0x7c1b('0x17')](_0x7c1b('0x18'),_0x1d626e+'-'+_0x28a982+'/'+_0x4fe36c)[_0x7c1b('0x19')](_0x3df479);}return null;};}function saveUpdates(_0x3a5d99){return function(_0x36028e){if(_0x36028e){return _0x36028e[_0x7c1b('0x1a')](_0x3a5d99)[_0x7c1b('0x1b')](function(_0x3b7992){return _0x3b7992;});}return null;};}function removeEntity(_0x3aa460){return function(_0x163725){if(_0x163725){return _0x163725[_0x7c1b('0x1c')]()['then'](function(){_0x3aa460[_0x7c1b('0x11')](0xcc)[_0x7c1b('0x12')]();});}};}function handleEntityNotFound(_0x3c2c0f){return function(_0x3544f5){if(!_0x3544f5){_0x3c2c0f[_0x7c1b('0x1d')](0x194);}return _0x3544f5;};}function handleError(_0x106db7,_0x2a2798){_0x2a2798=_0x2a2798||0x1f4;return function(_0x5d83e9){logger[_0x7c1b('0x1e')](_0x5d83e9[_0x7c1b('0x1f')]);if(_0x5d83e9[_0x7c1b('0x20')]){delete _0x5d83e9[_0x7c1b('0x20')];}_0x106db7[_0x7c1b('0x11')](_0x2a2798)[_0x7c1b('0x21')](_0x5d83e9);};}function getInteractionUsers(_0x45277f,_0x1b51a4){return new BPromise(function(_0x79d06b,_0x4e3c44){try{if(_0x1b51a4[_0x45277f['id']]){_0x45277f[_0x7c1b('0x22')]=_[_0x7c1b('0x23')](_0x1b51a4[_0x45277f['id']],function(_0x4a467f){return{'id':_0x4a467f['id'],'fullname':_0x4a467f[_0x7c1b('0x24')]};});}}catch(_0x3badea){_0x4e3c44(_0x3badea);}_0x79d06b(_0x45277f);});}function getInteractionTags(_0x512762,_0x16ec61){return new BPromise(function(_0x4256fe,_0x22cfca){try{if(_0x512762['TagIds']){_0x512762[_0x7c1b('0x25')]=[];_0x512762[_0x7c1b('0x26')]['split'](',')['forEach'](function(_0x9a4a69){_0x512762[_0x7c1b('0x25')][_0x7c1b('0x27')](_0x16ec61[_0x9a4a69]);});}delete _0x512762[_0x7c1b('0x26')];}catch(_0x2e2491){_0x22cfca(_0x2e2491);}_0x4256fe(_0x512762);});}function getLastMessageText(_0x2df6b6){return new BPromise(function(_0x4ad654,_0x4a9d1a){return db[_0x7c1b('0x28')][_0x7c1b('0x29')]({'where':{'$and':[{'MailInteractionId':_0x2df6b6['id']},{'$or':[{'direction':'in'},{'$and':[{'direction':'out'},{'secret':![]},{'UserId':{'$ne':null}}]}]}]},'attributes':[_0x7c1b('0x2a')],'order':'-id','raw':!![]})[_0x7c1b('0x1b')](function(_0x68b391){if(_0x68b391&&_0x68b391[_0x7c1b('0x2a')]){_0x2df6b6['lastMsgText']=_[_0x7c1b('0x2b')](_0x68b391['plainBody']);}_0x4ad654(_0x2df6b6);})[_0x7c1b('0x2c')](function(_0xa048df){_0x4a9d1a(_0xa048df);});});}function updateMailInteraction(_0x850667,_0x5df1a9,_0x3505c1,_0x2311a4){return new BPromise(function(_0x1c174b,_0x34d46b){return getInteractionUsers(_0x850667,_0x3505c1)[_0x7c1b('0x1b')](function(_0x2205f7){return getInteractionTags(_0x2205f7,_0x5df1a9);})[_0x7c1b('0x1b')](function(_0x2994fd){if(_0x2311a4){_0x1c174b(getLastMessageText(_0x2994fd));}else{_0x1c174b(_0x2994fd);}})[_0x7c1b('0x2c')](function(_0x3e9f41){_0x34d46b(_0x3e9f41);});});}exports[_0x7c1b('0x2d')]=function(_0x27e493,_0x488fec){var _0x37c132={},_0xd65415={},_0xe507e4={'count':0x0,'rows':[]};var _0x4ebd42=_[_0x7c1b('0x23')](db[_0x7c1b('0x2e')]['rawAttributes'],function(_0x360bf2){return{'name':_0x360bf2[_0x7c1b('0x2f')],'type':_0x360bf2[_0x7c1b('0x30')][_0x7c1b('0x31')]};});_0xd65415[_0x7c1b('0x32')]=_[_0x7c1b('0x23')](_0x4ebd42,_0x7c1b('0x20'));_0xd65415[_0x7c1b('0x33')]=_[_0x7c1b('0x34')](_0x27e493[_0x7c1b('0x33')]);_0xd65415[_0x7c1b('0x35')]=_[_0x7c1b('0x36')](_0xd65415['model'],_0xd65415[_0x7c1b('0x33')]);_0x37c132[_0x7c1b('0x37')]=_[_0x7c1b('0x36')](_0xd65415['model'],qs[_0x7c1b('0x38')](_0x27e493[_0x7c1b('0x33')][_0x7c1b('0x38')]));_0x37c132[_0x7c1b('0x37')]=_0x37c132['attributes']['length']?_0x37c132[_0x7c1b('0x37')]:_0xd65415[_0x7c1b('0x32')];if(!_0x27e493[_0x7c1b('0x33')][_0x7c1b('0x39')](_0x7c1b('0x3a'))){_0x37c132[_0x7c1b('0x15')]=qs[_0x7c1b('0x15')](_0x27e493[_0x7c1b('0x33')][_0x7c1b('0x15')]);_0x37c132[_0x7c1b('0x13')]=qs['offset'](_0x27e493['query'][_0x7c1b('0x13')]);}_0x37c132[_0x7c1b('0x3b')]=qs[_0x7c1b('0x3c')](_0x27e493[_0x7c1b('0x33')][_0x7c1b('0x3c')]);_0x37c132[_0x7c1b('0x3d')]=qs[_0x7c1b('0x35')](_[_0x7c1b('0x3e')](_0x27e493['query'],_0xd65415[_0x7c1b('0x35')]),_0x4ebd42);var _0x1c142c=[];var _0x162b22=squel[_0x7c1b('0x3f')]()[_0x7c1b('0x40')]('id')[_0x7c1b('0x40')]('name')[_0x7c1b('0x40')](_0x7c1b('0x41'))[_0x7c1b('0x42')](_0x7c1b('0x43'));var _0x3d0cc2=squel['select']()[_0x7c1b('0x40')]('u.id')[_0x7c1b('0x40')](_0x7c1b('0x44'))['field'](_0x7c1b('0x45'))[_0x7c1b('0x42')](_0x7c1b('0x46'),'ui')[_0x7c1b('0x47')]('users','u',_0x7c1b('0x48'));var _0x2b14f2=squel[_0x7c1b('0x3f')]()[_0x7c1b('0x42')](_0x7c1b('0x49'),'i')[_0x7c1b('0x47')](_0x7c1b('0x4a'),'c','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL')[_0x7c1b('0x47')]('users','o',_0x7c1b('0x4b'))[_0x7c1b('0x47')](_0x7c1b('0x4c'),'a','a.id\x20=\x20i.MailAccountId')[_0x7c1b('0x47')]('mail_messages','me',_0x7c1b('0x4d'))[_0x7c1b('0x47')](_0x7c1b('0x4e'),'it',_0x7c1b('0x4f'))[_0x7c1b('0x47')](_0x7c1b('0x43'),'t',_0x7c1b('0x50'));var _0x350dd2=squel['expr']();var _0x3f6ed2=[];var _0x2652e4=squel['expr']();var _0x53aa91;if(_0x27e493[_0x7c1b('0x33')]['search']){_0x53aa91=as['parseSearch'](_0x27e493['query']['search']);var _0x57e0bb=_0x53aa91[_0x7c1b('0x51')];for(var _0x342f15=0x0;_0x342f15<_0x53aa91[_0x7c1b('0x52')][_0x7c1b('0x53')];_0x342f15++){var _0x38e779=_0x53aa91[_0x7c1b('0x52')][_0x342f15];var _0x16533f='i';var _0x52e3c7=_[_0x7c1b('0x54')](_0x4ebd42,[_0x7c1b('0x20'),_0x38e779[_0x7c1b('0x40')]]);if(!_0x52e3c7){switch(_0x38e779[_0x7c1b('0x40')]){case _0x7c1b('0x55'):if(_0x38e779[_0x7c1b('0x56')]==0x1){_0x2b14f2['having']('`'+_0x38e779[_0x7c1b('0x40')]+'`\x20=\x200');}else{_0x2b14f2[_0x7c1b('0x57')]('`'+_0x38e779['field']+_0x7c1b('0x58'));}break;case'Contact':if(_0x38e779[_0x7c1b('0x59')]==='$substring'){if(_0x38e779[_0x7c1b('0x56')]['split']('\x20')[_0x7c1b('0x53')]>0x1){_0x350dd2[_0x57e0bb]('MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0x7c1b('0x5a')](_0x38e779[_0x7c1b('0x56')]),null);}else{var _0x186834='%'+_0x38e779[_0x7c1b('0x56')]+'%';_0x350dd2[_0x57e0bb]('c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?',_0x186834,_0x186834,_0x186834);}}else{_0x52e3c7=_[_0x7c1b('0x54')](_0x4ebd42,[_0x7c1b('0x20'),_0x7c1b('0x5b')]);_0x38e779[_0x7c1b('0x40')]=_0x7c1b('0x5b');_0x32e797=as[_0x7c1b('0x5c')](_0x16533f,_0x52e3c7[_0x7c1b('0x30')],_0x38e779);_0x350dd2[_0x57e0bb](_0x32e797[_0x7c1b('0x5d')],_0x32e797[_0x7c1b('0x56')]['start'],_0x32e797[_0x7c1b('0x56')]['end']);}break;case _0x7c1b('0x5e'):var _0x560c73=_0x38e779[_0x7c1b('0x56')][_0x7c1b('0x5f')](',')['map'](function(_0xc7ef24){return Number(_0xc7ef24);});_0x560c73[_0x7c1b('0x60')](function(_0x196298){_0x2652e4['or'](_0x7c1b('0x61'),'%,'+_0x196298+',%');});_0x3f6ed2=_[_0x7c1b('0x62')](_0x3f6ed2,_0x560c73);break;case _0x7c1b('0x63'):if(_0x38e779[_0x7c1b('0x59')]===_0x7c1b('0x64')){_0x350dd2[_0x57e0bb](_0x7c1b('0x65'),'%'+_0x38e779[_0x7c1b('0x56')]+'%',null);}else{_0x52e3c7=_['find'](_0x4ebd42,['name',_0x7c1b('0x66')]);_0x38e779[_0x7c1b('0x40')]='UserId';_0x32e797=as[_0x7c1b('0x5c')](_0x16533f,_0x52e3c7['type'],_0x38e779);_0x350dd2[_0x57e0bb](_0x32e797[_0x7c1b('0x5d')],_0x32e797['value']['start'],_0x32e797[_0x7c1b('0x56')][_0x7c1b('0x12')]);}break;case'plainBody':_0x32e797=as[_0x7c1b('0x5c')]('me',null,_0x38e779);_0x350dd2[_0x57e0bb](_0x32e797[_0x7c1b('0x5d')],_0x32e797['value'][_0x7c1b('0x67')],_0x32e797['value'][_0x7c1b('0x12')]);break;}}else{var _0x32e797=as['buildExpression'](_0x16533f,_0x52e3c7[_0x7c1b('0x30')],_0x38e779);_0x350dd2[_0x57e0bb](_0x32e797[_0x7c1b('0x5d')],_0x32e797[_0x7c1b('0x56')][_0x7c1b('0x67')],_0x32e797['value'][_0x7c1b('0x12')]);}}}else{var _0x3bb0db=_(_0x27e493['query'])[_0x7c1b('0x34')]()[_0x7c1b('0x23')](function(_0x4edf05){return _[_0x7c1b('0x68')](_0x4ebd42,['name',_0x4edf05])?_0x4edf05:undefined;})[_0x7c1b('0x69')]()[_0x7c1b('0x56')]();if(!_[_0x7c1b('0x6a')](_0x3bb0db)){_0x3bb0db['forEach'](function(_0x47eeda){if(_0x47eeda===_0x7c1b('0x6b')){_0x2b14f2[_0x7c1b('0x3d')]('i.MailAccountId\x20IN\x20?',[][_0x7c1b('0x6c')](_0x27e493['query'][_0x47eeda]));}else if(_0x47eeda===_0x7c1b('0x6d')){var _0x31a98c=JSON[_0x7c1b('0x6e')](_0x27e493[_0x7c1b('0x33')][_0x47eeda])['$gte'];var _0x1c7778=JSON['parse'](_0x27e493[_0x7c1b('0x33')][_0x47eeda])[_0x7c1b('0x6f')];_0x2b14f2[_0x7c1b('0x3d')](_0x7c1b('0x70'),_0x31a98c,_0x1c7778);}else{if(_0x27e493['query'][_0x47eeda]==='null'){_0x2b14f2[_0x7c1b('0x3d')]('i.'+_0x47eeda+'\x20IS\x20NULL');}else{_0x2b14f2[_0x7c1b('0x3d')]('i.'+_0x47eeda+_0x7c1b('0x71'),_0x27e493[_0x7c1b('0x33')][_0x47eeda]);}}});}if(_0x27e493['query'][_0x7c1b('0x72')]){if(_0x27e493['query']['read']==0x1){_0x2b14f2[_0x7c1b('0x57')](_0x7c1b('0x73'));}else{_0x2b14f2[_0x7c1b('0x57')]('`unreadMessages`\x20>\x200');}}if(_0x27e493[_0x7c1b('0x33')][_0x7c1b('0x74')]){_0x3f6ed2=_[_0x7c1b('0x75')](_0x27e493[_0x7c1b('0x33')]['tag'])?_0x27e493[_0x7c1b('0x33')][_0x7c1b('0x74')]:new Array(_0x27e493[_0x7c1b('0x33')]['tag']);_0x3f6ed2[_0x7c1b('0x60')](function(_0x4483f5){_0x2652e4['or'](_0x7c1b('0x61'),'%,'+_0x4483f5+',%');});}if(_0x27e493[_0x7c1b('0x33')][_0x7c1b('0x76')]){var _0x2079e1=_0x27e493[_0x7c1b('0x33')][_0x7c1b('0x76')][_0x7c1b('0x77')]('\x5c','\x5c\x5c')['replace'](/'/g,'\x27\x27');if(qs['isNumeric'](_0x2079e1)){_0x350dd2['or'](_0x7c1b('0x78'),_0x2079e1+'%');}else if(qs[_0x7c1b('0x79')](_0x2079e1)){_0x350dd2['or']('c.email\x20LIKE\x20?',_0x2079e1+'%');}else{_0x350dd2['or'](_0x7c1b('0x7a'),qs[_0x7c1b('0x5a')](_0x2079e1))['or'](_0x7c1b('0x7b'),qs[_0x7c1b('0x5a')](_0x2079e1));}}}_0x2b14f2[_0x7c1b('0x3d')](_0x350dd2);_0x2b14f2[_0x7c1b('0x7c')](_0x7c1b('0x7d'));var _0x31bc37={'type':db[_0x7c1b('0x7e')][_0x7c1b('0x7f')][_0x7c1b('0x80')],'raw':!![]};var _0x4034f5=_0x2b14f2[_0x7c1b('0x81')]();_0x4034f5[_0x7c1b('0x40')](_0x7c1b('0x7d'));_0x4034f5[_0x7c1b('0x40')](_0x7c1b('0x82'),_0x7c1b('0x55'));if(_0x37c132['order']){_0x37c132[_0x7c1b('0x3b')][_0x7c1b('0x60')](function(_0x2eeb84){var _0x4d9daf=_0x2eeb84[0x0]===_0x7c1b('0x83')?_0x2eeb84[0x0]:'i.'+_0x2eeb84[0x0];_0x2b14f2[_0x7c1b('0x3b')](_0x4d9daf,_0x2eeb84[0x1]===_0x7c1b('0x84')?![]:!![]);});}if(!_[_0x7c1b('0x6a')](_0x3f6ed2)){_0x2b14f2[_0x7c1b('0x57')](_0x2652e4);_0x4034f5[_0x7c1b('0x3d')](_0x7c1b('0x85'),_0x3f6ed2);}BPromise[_0x7c1b('0x86')]()[_0x7c1b('0x1b')](function(){if(!_0x53aa91){if(_0x27e493[_0x7c1b('0x33')][_0x7c1b('0x6b')])return;_0x4034f5[_0x7c1b('0x3d')](_0x7c1b('0x87'));_0x2b14f2[_0x7c1b('0x3d')]('i.MailAccountId\x20IS\x20NOT\x20NULL');return;}if(_0x27e493[_0x7c1b('0x88')][_0x7c1b('0x89')]!==_0x7c1b('0x8a'))return;return _0x27e493['user'][_0x7c1b('0x8b')]({'attributes':['id'],'raw':!![]})[_0x7c1b('0x1b')](function(_0x5af603){if(_[_0x7c1b('0x6a')](_0x5af603)){_0x4034f5[_0x7c1b('0x3d')](_0x7c1b('0x8c'));_0x2b14f2[_0x7c1b('0x3d')](_0x7c1b('0x8c'));}else{_0x4034f5[_0x7c1b('0x3d')]('i.MailAccountId\x20IN\x20?',_[_0x7c1b('0x23')](_0x5af603,'id'));_0x2b14f2[_0x7c1b('0x3d')](_0x7c1b('0x8d'),_[_0x7c1b('0x23')](_0x5af603,'id'));}});})[_0x7c1b('0x1b')](function(){if(_0x27e493['user'][_0x7c1b('0x89')]==='agent'&&!_0x53aa91&&!_0x27e493[_0x7c1b('0x33')][_0x7c1b('0x6b')])return[];return db[_0x7c1b('0x8e')][_0x7c1b('0x33')](_0x4034f5[_0x7c1b('0x8f')](),_0x31bc37);})['then'](function(_0x17c5d8){_0xe507e4[_0x7c1b('0x16')]=_0x17c5d8[_0x7c1b('0x53')];if(_0xe507e4['count']===0x0)return[];return db[_0x7c1b('0x8e')]['query'](_0x162b22[_0x7c1b('0x8f')](),_0x31bc37)[_0x7c1b('0x1b')](function(_0x1f2123){_0x1c142c=_[_0x7c1b('0x90')](_0x1f2123,'id');_0x31bc37=_[_0x7c1b('0x91')](_0x31bc37,{'model':db['MailInteraction'],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x27e493[_0x7c1b('0x33')]['fields']){_0x37c132['attributes'][_0x7c1b('0x60')](function(_0x560f3e){_0x2b14f2[_0x7c1b('0x40')]('i.'+_0x560f3e);});}else{_0x2b14f2[_0x7c1b('0x40')](_0x7c1b('0x82'),_0x7c1b('0x55'));_0x2b14f2[_0x7c1b('0x40')](_0x7c1b('0x92'),_0x7c1b('0x93'));_0x2b14f2[_0x7c1b('0x40')](_0x7c1b('0x94'),_0x7c1b('0x95'));_0x2b14f2[_0x7c1b('0x40')](_0x7c1b('0x96'),_0x7c1b('0x83'));_0x2b14f2[_0x7c1b('0x40')]('i.id');_0x2b14f2['field']('i.createdAt');_0x2b14f2['field'](_0x7c1b('0x97'));_0x2b14f2['field'](_0x7c1b('0x98'));_0x2b14f2[_0x7c1b('0x40')]('i.closedAt');_0x2b14f2[_0x7c1b('0x40')]('i.attach');_0x2b14f2['field'](_0x7c1b('0x99'));_0x2b14f2['field'](_0x7c1b('0x9a'));_0x2b14f2[_0x7c1b('0x40')](_0x7c1b('0x9b'));_0x2b14f2[_0x7c1b('0x40')]('i.disposition');_0x2b14f2[_0x7c1b('0x40')](_0x7c1b('0x9c'));_0x2b14f2[_0x7c1b('0x40')](_0x7c1b('0x9d'));_0x2b14f2[_0x7c1b('0x40')](_0x7c1b('0x9e'));_0x2b14f2['field'](_0x7c1b('0x9f'));_0x2b14f2['field'](_0x7c1b('0xa0'));_0x2b14f2[_0x7c1b('0x40')](_0x7c1b('0xa1'));_0x2b14f2[_0x7c1b('0x40')](_0x7c1b('0xa2'));_0x2b14f2['field'](_0x7c1b('0xa3'),'Contact.firstName');_0x2b14f2[_0x7c1b('0x40')](_0x7c1b('0xa4'),'Contact.lastName');_0x2b14f2['field'](_0x7c1b('0xa5'),_0x7c1b('0xa6'));_0x2b14f2[_0x7c1b('0x40')](_0x7c1b('0xa7'),'Contact.phone');_0x2b14f2[_0x7c1b('0x40')](_0x7c1b('0xa8'),_0x7c1b('0xa9'));_0x2b14f2[_0x7c1b('0x40')]('c.fax','Contact.fax');_0x2b14f2[_0x7c1b('0x40')](_0x7c1b('0xaa'),'Owner.fullname');_0x2b14f2[_0x7c1b('0x40')](_0x7c1b('0xab'),_0x7c1b('0xac'));_0x2b14f2['field'](_0x7c1b('0xad'),_0x7c1b('0x26'));}if(_0x37c132[_0x7c1b('0x15')])_0x2b14f2[_0x7c1b('0x15')](_0x37c132[_0x7c1b('0x15')]);if(_0x37c132[_0x7c1b('0x13')])_0x2b14f2['offset'](_0x37c132[_0x7c1b('0x13')]);return db['sequelize'][_0x7c1b('0x33')](_0x2b14f2[_0x7c1b('0x8f')](),_0x31bc37);})[_0x7c1b('0x1b')](function(_0x4decdb){if(_0x4decdb[_0x7c1b('0x53')]>0x0)_0x3d0cc2[_0x7c1b('0x3d')](_0x7c1b('0xae'),_['map'](_0x4decdb,'id'));return db['sequelize'][_0x7c1b('0x33')](_0x3d0cc2[_0x7c1b('0x8f')](),_0x31bc37)['then'](function(_0xdd950){var _0x282206=_['groupBy'](_0xdd950,_0x7c1b('0xaf'));var _0x203fc3=[];return db[_0x7c1b('0xb0')][_0x7c1b('0x29')]({'attributes':[_0x7c1b('0xb1')],'raw':!![]})[_0x7c1b('0x1b')](function(_0x56cb7b){var _0x509334=_0x56cb7b[_0x7c1b('0xb1')];_0x4decdb[_0x7c1b('0x60')](function(_0x5054c3){_0x203fc3[_0x7c1b('0x27')](updateMailInteraction(_0x5054c3,_0x1c142c,_0x282206,_0x509334));});return BPromise[_0x7c1b('0xb2')](_0x203fc3);});});});})[_0x7c1b('0x1b')](function(_0x3cd842){_0xe507e4[_0x7c1b('0xb3')]=_0x3cd842;return _0xe507e4;})[_0x7c1b('0x1b')](respondWithFilteredResult(_0x488fec,_0x37c132))[_0x7c1b('0x2c')](handleError(_0x488fec,null));};exports[_0x7c1b('0xb4')]=function(_0x46f179,_0x5d5811){var _0x42cd8c={'raw':![],'where':{'id':_0x46f179[_0x7c1b('0xb5')]['id']}},_0x583263={};_0x583263[_0x7c1b('0x32')]=_[_0x7c1b('0x34')](db[_0x7c1b('0x2e')][_0x7c1b('0xb6')]);_0x583263['query']=_[_0x7c1b('0x34')](_0x46f179['query']);_0x583263['filters']=_[_0x7c1b('0x36')](_0x583263[_0x7c1b('0x32')],_0x583263[_0x7c1b('0x33')]);_0x42cd8c[_0x7c1b('0x37')]=_[_0x7c1b('0x36')](_0x583263[_0x7c1b('0x32')],qs[_0x7c1b('0x38')](_0x46f179[_0x7c1b('0x33')][_0x7c1b('0x38')]));_0x42cd8c['attributes']=_0x42cd8c[_0x7c1b('0x37')][_0x7c1b('0x53')]?_0x42cd8c[_0x7c1b('0x37')]:_0x583263[_0x7c1b('0x32')];if(_0x46f179['query'][_0x7c1b('0xb7')]){_0x42cd8c[_0x7c1b('0xb8')]=[{'all':!![]}];}_0x42cd8c=_[_0x7c1b('0x91')]({},_0x42cd8c,_0x46f179[_0x7c1b('0xb9')]);return db[_0x7c1b('0x2e')]['find'](_0x42cd8c)[_0x7c1b('0x1b')](handleEntityNotFound(_0x5d5811,null))[_0x7c1b('0x1b')](respondWithResult(_0x5d5811,null))['catch'](handleError(_0x5d5811,null));};exports['create']=function(_0x57db20,_0x27417e){return db[_0x7c1b('0x2e')][_0x7c1b('0xba')](_0x57db20[_0x7c1b('0xbb')],{})[_0x7c1b('0x1b')](respondWithResult(_0x27417e,0xc9))[_0x7c1b('0x2c')](handleError(_0x27417e,null));};exports[_0x7c1b('0x1a')]=function(_0x34411d,_0x4a696c){if(_0x34411d['body']['id']){delete _0x34411d[_0x7c1b('0xbb')]['id'];}return db[_0x7c1b('0x2e')][_0x7c1b('0x54')]({'where':{'id':_0x34411d['params']['id']}})['then'](handleEntityNotFound(_0x4a696c,null))[_0x7c1b('0x1b')](saveUpdates(_0x34411d[_0x7c1b('0xbb')],null))[_0x7c1b('0x1b')](respondWithResult(_0x4a696c,null))[_0x7c1b('0x2c')](handleError(_0x4a696c,null));};exports['destroy']=function(_0x31908a,_0x4b3d88){return db[_0x7c1b('0x2e')][_0x7c1b('0x54')]({'where':{'id':_0x31908a['params']['id']}})[_0x7c1b('0x1b')](handleEntityNotFound(_0x4b3d88,null))[_0x7c1b('0x1b')](removeEntity(_0x4b3d88,null))[_0x7c1b('0x2c')](handleError(_0x4b3d88,null));};exports[_0x7c1b('0xbc')]=function(_0x576ed3,_0x63b2e9){return db[_0x7c1b('0x2e')][_0x7c1b('0xbc')]()[_0x7c1b('0x1b')](respondWithResult(_0x63b2e9,null))[_0x7c1b('0x2c')](handleError(_0x63b2e9,null));};exports[_0x7c1b('0xbd')]=function(_0x5927dd,_0x1048b3){return db['MailMessage'][_0x7c1b('0x54')]({'where':{'id':_0x5927dd[_0x7c1b('0xb5')]['id']}})[_0x7c1b('0x1b')](handleEntityNotFound(_0x1048b3,null))['then'](function(_0x3e272e){if(_0x3e272e){return _0x3e272e[_0x7c1b('0xbd')](_0x5927dd['body'][_0x7c1b('0xbe')],_[_0x7c1b('0xbf')](_0x5927dd[_0x7c1b('0xbb')],[_0x7c1b('0xbe'),'id'])||{});}})[_0x7c1b('0x1b')](respondWithResult(_0x1048b3,null))[_0x7c1b('0x2c')](handleError(_0x1048b3,null));};exports[_0x7c1b('0xc0')]=function(_0x504cd8,_0x25beaa){var _0x748e22={'raw':![],'where':{}};var _0x3df740={};var _0x1849d0={'count':0x0,'rows':[]};return db[_0x7c1b('0x2e')][_0x7c1b('0x29')]({'where':{'id':_0x504cd8[_0x7c1b('0xb5')]['id']}})[_0x7c1b('0x1b')](handleEntityNotFound(_0x25beaa,null))[_0x7c1b('0x1b')](function(_0x396650){if(_0x396650){_0x3df740[_0x7c1b('0x32')]=_[_0x7c1b('0x34')](db['MailMessage']['rawAttributes']);_0x3df740[_0x7c1b('0x33')]=_['keys'](_0x504cd8['query']);_0x3df740[_0x7c1b('0x35')]=_[_0x7c1b('0x36')](_0x3df740[_0x7c1b('0x32')],_0x3df740[_0x7c1b('0x33')]);_0x748e22[_0x7c1b('0x37')]=_[_0x7c1b('0x36')](_0x3df740[_0x7c1b('0x32')],qs[_0x7c1b('0x38')](_0x504cd8[_0x7c1b('0x33')][_0x7c1b('0x38')]));_0x748e22[_0x7c1b('0x37')]=_0x748e22[_0x7c1b('0x37')][_0x7c1b('0x53')]?_0x748e22['attributes']:_0x3df740['model'];if(!_0x504cd8[_0x7c1b('0x33')][_0x7c1b('0x39')](_0x7c1b('0x3a'))){_0x748e22['limit']=qs['limit'](_0x504cd8[_0x7c1b('0x33')][_0x7c1b('0x15')]);_0x748e22[_0x7c1b('0x13')]=qs['offset'](_0x504cd8[_0x7c1b('0x33')][_0x7c1b('0x13')]);}_0x748e22[_0x7c1b('0x3b')]=qs[_0x7c1b('0x3c')](_0x504cd8[_0x7c1b('0x33')][_0x7c1b('0x3c')]);_0x748e22[_0x7c1b('0x3d')]=qs[_0x7c1b('0x35')](_[_0x7c1b('0x3e')](_0x504cd8[_0x7c1b('0x33')],_0x3df740[_0x7c1b('0x35')]));_0x748e22[_0x7c1b('0x3d')][_0x7c1b('0xaf')]=_0x396650['id'];if(_0x504cd8[_0x7c1b('0x33')][_0x7c1b('0x76')]){_0x748e22[_0x7c1b('0x3d')]=_[_0x7c1b('0x91')](_0x748e22[_0x7c1b('0x3d')],{'$or':_[_0x7c1b('0x23')](_0x748e22[_0x7c1b('0x37')],function(_0x50b8b7){var _0x2f7e32={};_0x2f7e32[_0x50b8b7]={'$like':'%'+_0x504cd8[_0x7c1b('0x33')][_0x7c1b('0x76')]+'%'};return _0x2f7e32;})});}if(_0x504cd8[_0x7c1b('0x33')][_0x7c1b('0xc1')]){var _0x48353f=_0x504cd8[_0x7c1b('0x33')][_0x7c1b('0xc1')][_0x7c1b('0x5f')](',');var _0x3c1e44={};_0x3c1e44[_0x48353f[0x0]]={'$gte':moment(_0x48353f[0x1])['format'](_0x7c1b('0xc2'))};_0x748e22['where']=_[_0x7c1b('0x91')](_0x748e22['where'],_0x3c1e44);}_0x748e22=_[_0x7c1b('0x91')]({},_0x748e22,_0x504cd8[_0x7c1b('0xb9')]);return db[_0x7c1b('0x28')][_0x7c1b('0x16')]({'where':_0x748e22[_0x7c1b('0x3d')]})[_0x7c1b('0x1b')](function(_0x1d011a){_0x1849d0[_0x7c1b('0x16')]=_0x1d011a;if(_0x504cd8[_0x7c1b('0x33')][_0x7c1b('0xb7')]){_0x748e22['include']=[{'all':!![]}];}return db[_0x7c1b('0x28')][_0x7c1b('0xc3')](_0x748e22);})['then'](function(_0x2e5c60){if(_0x504cd8['query'][_0x7c1b('0xc4')]===_0x7c1b('0xc5')){for(var _0x794da8=0x0;_0x794da8<_0x2e5c60[_0x7c1b('0x53')];_0x794da8++){_0x2e5c60[_0x794da8][_0x7c1b('0xbb')]=juice(_0x2e5c60[_0x794da8][_0x7c1b('0xbb')]);}}_0x1849d0[_0x7c1b('0xb3')]=_0x2e5c60;return _0x1849d0;});}})[_0x7c1b('0x1b')](respondWithFilteredResult(_0x25beaa,_0x748e22))[_0x7c1b('0x2c')](handleError(_0x25beaa,null));};exports[_0x7c1b('0xc6')]=function(_0x171c8,_0x518494){return db[_0x7c1b('0x2e')][_0x7c1b('0x54')]({'where':{'id':_0x171c8[_0x7c1b('0xb5')]['id']}})['then'](handleEntityNotFound(_0x518494,null))['then'](function(_0x286cbe){if(_0x286cbe){return _0x286cbe[_0x7c1b('0xc7')](_0x171c8[_0x7c1b('0xbb')]['ids'],_[_0x7c1b('0xbf')](_0x171c8[_0x7c1b('0xbb')],[_0x7c1b('0xbe'),'id'])||{})['spread'](function(){return db[_0x7c1b('0x5e')]['findAll']({'attributes':['id',_0x7c1b('0x20'),'color'],'where':{'id':_0x171c8[_0x7c1b('0xbb')]['ids']}});})[_0x7c1b('0x1b')](function(_0x587ddc){socket['emit'](_0x7c1b('0xc8'),{'id':Number(_0x171c8[_0x7c1b('0xb5')]['id']),'tags':_0x587ddc||[]});return{'id':Number(_0x171c8['params']['id']),'tags':_0x587ddc||[]};});}})['then'](respondWithResult(_0x518494,null))[_0x7c1b('0x2c')](handleError(_0x518494,null));};exports[_0x7c1b('0xc9')]=function(_0x173b8f,_0x15a7af){return db[_0x7c1b('0x2e')][_0x7c1b('0x54')]({'where':{'id':_0x173b8f['params']['id']}})['then'](handleEntityNotFound(_0x15a7af,null))[_0x7c1b('0x1b')](function(_0x53eb3b){if(_0x53eb3b){return _0x53eb3b[_0x7c1b('0xc9')](_0x173b8f[_0x7c1b('0x33')][_0x7c1b('0xbe')]);}})[_0x7c1b('0x1b')](respondWithStatusCode(_0x15a7af,null))[_0x7c1b('0x2c')](handleError(_0x15a7af,null));};exports['download']=function(_0x812eb1,_0x40a4b8){var _0x47a5d5=moment()[_0x7c1b('0xca')]()[_0x7c1b('0x8f')]();var _0x4c3191=path[_0x7c1b('0xcb')](config[_0x7c1b('0xcc')],'server',_0x7c1b('0xcd'),_0x7c1b('0xce'));var _0x4a70ff=path[_0x7c1b('0xcb')](config[_0x7c1b('0xcc')],_0x7c1b('0xcf'),_0x7c1b('0xcd'),_0x7c1b('0xd0'));var _0x12c502=path['join'](_0x4c3191,_0x47a5d5);var _0x41b8fc=util[_0x7c1b('0xd1')](_0x7c1b('0xd2'),_0x812eb1[_0x7c1b('0xb5')]['id'],_0x47a5d5);var _0x17a4e8=path[_0x7c1b('0xcb')](_0x4c3191,_0x41b8fc);var _0x5a5043=[];if(_0x812eb1['query']['attachments']){_0x5a5043[_0x7c1b('0x27')]({'model':db[_0x7c1b('0xd3')],'as':_0x7c1b('0xd4'),'raw':!![]});}var _0x53e1b5=[{'model':db[_0x7c1b('0x28')],'as':'Messages','attributes':['id',_0x7c1b('0xbb'),_0x7c1b('0x42'),'to','cc',_0x7c1b('0xd5'),_0x7c1b('0xd6'),'createdAt'],'where':{'secret':![]},'order':qs[_0x7c1b('0x3c')]('id'),'include':_0x5a5043}];return db[_0x7c1b('0x2e')][_0x7c1b('0x54')]({'where':{'id':_0x812eb1[_0x7c1b('0xb5')]['id']},'include':_0x53e1b5})[_0x7c1b('0x1b')](handleEntityNotFound(_0x40a4b8,null))['then'](function(_0x36ace5){if(_0x36ace5&&_0x36ace5['Messages']){var _0xf126bb=_0x36ace5[_0x7c1b('0xd7')]({'plain':!![]});fs[_0x7c1b('0xd8')](_0x12c502);return BPromise[_0x7c1b('0xd9')](_0xf126bb[_0x7c1b('0xda')],function(_0x599119,_0x820b6e){var _0x396492={'from':_0x599119[_0x7c1b('0x42')],'to':_0x599119['to'],'subject':_0x599119['subject'],'html':htmlEntities['decode'](_0x599119[_0x7c1b('0xbb')]),'headers':{'Date':moment(_0x599119['createdAt'])[_0x7c1b('0xd1')](_0x7c1b('0xdb'))},'attachments':[]};if(_0x599119['cc']){_0x396492['headers']['Cc']=_0x599119['cc'];}if(_0x599119[_0x7c1b('0xd5')]){_0x396492[_0x7c1b('0xdc')][_0x7c1b('0xdd')]=_0x599119['bcc'];}return new BPromise(function(_0xb7a57f,_0x3de881){if(_0x599119['Attachments']){for(var _0x82b24f=0x0;_0x82b24f<_0x599119[_0x7c1b('0xd4')][_0x7c1b('0x53')];_0x82b24f++){var _0x553f8b=_0x599119[_0x7c1b('0xd4')][_0x82b24f];var _0x33e65e=path[_0x7c1b('0xcb')](_0x4a70ff,_0x553f8b[_0x7c1b('0xde')]);if(fs['existsSync'](_0x33e65e)){_0x396492[_0x7c1b('0xd0')][_0x7c1b('0x27')]({'name':_0x553f8b[_0x7c1b('0x20')],'contentType':_0x553f8b[_0x7c1b('0x30')],'data':fs['readFileSync'](_0x33e65e)});}}}emlformat['build'](_0x396492,function(_0x547caf,_0x4c65fa){if(_0x547caf)return _0x3de881(_0x547caf);fs[_0x7c1b('0xdf')](path['join'](_0x12c502,util[_0x7c1b('0xd1')](_0x7c1b('0xe0'),_0x820b6e)),_0x4c65fa);return _0xb7a57f(_0x4c65fa);});});})[_0x7c1b('0x1b')](function(){return new BPromise(function(_0x3bfa44,_0xfd69a8){zipdir(_0x12c502,{'saveTo':_0x17a4e8},function(_0x1da059,_0x89ae28){if(_0x1da059)return _0xfd69a8(_0x1da059);return _0x3bfa44(_0x89ae28);});})[_0x7c1b('0x1b')](function(){return new BPromise(function(_0x2a4375,_0x372899){rimraf(_0x12c502,function(_0x43468d){if(_0x43468d)_0x372899(_0x43468d);return _0x2a4375();});});})[_0x7c1b('0x1b')](function(){return _0x40a4b8[_0x7c1b('0xe1')](_0x17a4e8,_0x41b8fc,function(_0x58a4c8){if(!_0x58a4c8)fs[_0x7c1b('0xe2')](_0x17a4e8);});});});}else{return _0x40a4b8[_0x7c1b('0x1d')](0xc8);}})[_0x7c1b('0x2c')](handleError(_0x40a4b8,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9e01=['then','setDataValue','Users','findAll','unreadMessages','emit','catch','hasOwnProperty','exports','events','../../mysqldb','MailInteraction','MailMessage','setMaxListeners','save','update','remove','getUsers'];(function(_0x47a7d0,_0x4e182d){var _0xb9bd08=function(_0x588ee2){while(--_0x588ee2){_0x47a7d0['push'](_0x47a7d0['shift']());}};_0xb9bd08(++_0x4e182d);}(_0x9e01,0xe1));var _0x19e0=function(_0x2b4411,_0x2625ed){_0x2b4411=_0x2b4411-0x0;var _0x8e41ef=_0x9e01[_0x2b4411];return _0x8e41ef;};'use strict';var EventEmitter=require(_0x19e0('0x0'));var MailInteraction=require(_0x19e0('0x1'))['db'][_0x19e0('0x2')];var MailMessage=require(_0x19e0('0x1'))['db'][_0x19e0('0x3')];var MailInteractionEvents=new EventEmitter();MailInteractionEvents[_0x19e0('0x4')](0x0);var events={'afterCreate':_0x19e0('0x5'),'afterUpdate':_0x19e0('0x6'),'afterDestroy':_0x19e0('0x7')};function emitEvent(_0x2ddbec){return function(_0x159ffc,_0x3b3b76,_0x34bb6f){_0x159ffc[_0x19e0('0x8')]({'attributes':['id'],'raw':!![]})[_0x19e0('0x9')](function(_0x5f497d){_0x159ffc[_0x19e0('0xa')](_0x19e0('0xb'),_0x5f497d['map'](function(_0x59832b){return{'id':_0x59832b['id']};}));return MailMessage[_0x19e0('0xc')]({'where':{'MailInteractionId':_0x159ffc['id'],'direction':'in','read':![]},'raw':!![]});})[_0x19e0('0x9')](function(_0xe3d0d4){_0x159ffc[_0x19e0('0xa')](_0x19e0('0xd'),_0xe3d0d4['length']);MailInteractionEvents[_0x19e0('0xe')](_0x2ddbec+':'+_0x159ffc['id'],_0x159ffc);MailInteractionEvents[_0x19e0('0xe')](_0x2ddbec,_0x159ffc);_0x34bb6f(null);})[_0x19e0('0xf')](_0x34bb6f(null));};}for(var e in events){if(events[_0x19e0('0x10')](e)){var event=events[e];MailInteraction['hook'](e,emitEvent(event));}}module[_0x19e0('0x11')]=MailInteractionEvents;
\ No newline at end of file
+var _0xcc25=['setMaxListeners','save','update','getUsers','then','setDataValue','Users','map','findAll','unreadMessages','length','emit','hasOwnProperty','hook','exports','events','../../mysqldb','MailMessage'];(function(_0x25c8dd,_0x39d2d9){var _0x4a2b29=function(_0x30f91a){while(--_0x30f91a){_0x25c8dd['push'](_0x25c8dd['shift']());}};_0x4a2b29(++_0x39d2d9);}(_0xcc25,0xe7));var _0x5cc2=function(_0x2c041f,_0x609fa3){_0x2c041f=_0x2c041f-0x0;var _0x5576ef=_0xcc25[_0x2c041f];return _0x5576ef;};'use strict';var EventEmitter=require(_0x5cc2('0x0'));var MailInteraction=require(_0x5cc2('0x1'))['db']['MailInteraction'];var MailMessage=require(_0x5cc2('0x1'))['db'][_0x5cc2('0x2')];var MailInteractionEvents=new EventEmitter();MailInteractionEvents[_0x5cc2('0x3')](0x0);var events={'afterCreate':_0x5cc2('0x4'),'afterUpdate':_0x5cc2('0x5'),'afterDestroy':'remove'};function emitEvent(_0x1debff){return function(_0x59737b,_0x3f6ad2,_0x58da43){_0x59737b[_0x5cc2('0x6')]({'attributes':['id'],'raw':!![]})[_0x5cc2('0x7')](function(_0x30d51a){_0x59737b[_0x5cc2('0x8')](_0x5cc2('0x9'),_0x30d51a[_0x5cc2('0xa')](function(_0x2500d2){return{'id':_0x2500d2['id']};}));return MailMessage[_0x5cc2('0xb')]({'where':{'MailInteractionId':_0x59737b['id'],'direction':'in','read':![]},'raw':!![]});})[_0x5cc2('0x7')](function(_0x1ca488){_0x59737b[_0x5cc2('0x8')](_0x5cc2('0xc'),_0x1ca488[_0x5cc2('0xd')]);MailInteractionEvents['emit'](_0x1debff+':'+_0x59737b['id'],_0x59737b);MailInteractionEvents[_0x5cc2('0xe')](_0x1debff,_0x59737b);_0x58da43(null);})['catch'](_0x58da43(null));};}for(var e in events){if(events[_0x5cc2('0xf')](e)){var event=events[e];MailInteraction[_0x5cc2('0x10')](e,emitEvent(event));}}module[_0x5cc2('0x11')]=MailInteractionEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfc3c=['changed','substatus','format','substatusAt','models','get','MailMessage','update','then','utf8mb4','utf8mb4_unicode_ci','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./mailInteraction.attributes','exports','define','MailInteraction','mail_interactions','fti_mail_interactions','subject','FULLTEXT','YYYY-MM-DD\x20HH:mm:ss','closed','closedAt'];(function(_0x5445fe,_0x17a013){var _0x3e78ae=function(_0x4caa07){while(--_0x4caa07){_0x5445fe['push'](_0x5445fe['shift']());}};_0x3e78ae(++_0x17a013);}(_0xfc3c,0x19e));var _0xcfc3=function(_0x3d8291,_0x560e85){_0x3d8291=_0x3d8291-0x0;var _0x2bad5c=_0xfc3c[_0x3d8291];return _0x2bad5c;};'use strict';var _=require('lodash');var util=require(_0xcfc3('0x0'));var logger=require(_0xcfc3('0x1'))(_0xcfc3('0x2'));var moment=require(_0xcfc3('0x3'));var BPromise=require(_0xcfc3('0x4'));var rp=require(_0xcfc3('0x5'));var fs=require('fs');var path=require(_0xcfc3('0x6'));var rimraf=require(_0xcfc3('0x7'));var config=require(_0xcfc3('0x8'));var attributes=require(_0xcfc3('0x9'));module[_0xcfc3('0xa')]=function(_0x4910f8,_0x24ade7){return _0x4910f8[_0xcfc3('0xb')](_0xcfc3('0xc'),attributes,{'tableName':_0xcfc3('0xd'),'paranoid':![],'indexes':[{'name':_0xcfc3('0xe'),'fields':[_0xcfc3('0xf'),'to'],'type':_0xcfc3('0x10')}],'timestamps':!![],'hooks':{'beforeCreate':function(_0x4331b4,_0x46cba2,_0x245be4){if(_0x4331b4['substatus']){_0x4331b4['substatusAt']=moment()['format'](_0xcfc3('0x11'));}if(_0x4331b4[_0xcfc3('0x12')]){_0x4331b4[_0xcfc3('0x13')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');}_0x245be4(null,_0x46cba2);},'beforeUpdate':function(_0x416893,_0x184ff2,_0x53d310){if(_0x416893[_0xcfc3('0x14')](_0xcfc3('0x15'))){_0x416893['substatusAt']=_0x416893[_0xcfc3('0x15')]?moment()[_0xcfc3('0x16')](_0xcfc3('0x11')):null;}if(_0x416893['changed']('closed')){_0x416893['closedAt']=moment()[_0xcfc3('0x16')](_0xcfc3('0x11'));_0x416893[_0xcfc3('0x15')]=null;_0x416893[_0xcfc3('0x17')]=null;}_0x53d310(null,_0x416893);},'afterUpdate':function(_0x3ae748,_0x4744fc,_0x538571){var _0x3c508c=_0x4910f8[_0xcfc3('0x18')];var _0x1436bf=_0x3ae748[_0xcfc3('0x19')]({'plain':!![]});if(_0x1436bf[_0xcfc3('0x12')]){return _0x3c508c[_0xcfc3('0x1a')][_0xcfc3('0x1b')]({'read':!![]},{'where':{'MailInteractionId':_0x1436bf['id']}})[_0xcfc3('0x1c')](function(){_0x538571();})['catch'](function(_0x385bd0){_0x538571(_0x385bd0);});}else{_0x538571();}}},'charset':_0xcfc3('0x1d'),'collate':_0xcfc3('0x1e')});};
\ No newline at end of file
+var _0x4a2d=['substatus','substatusAt','YYYY-MM-DD\x20HH:mm:ss','closedAt','format','changed','closed','update','then','catch','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./mailInteraction.attributes','exports','define','MailInteraction','mail_interactions','fti_mail_interactions','subject','FULLTEXT'];(function(_0x5678b5,_0x1c4aa8){var _0x4c09a5=function(_0x2aa89a){while(--_0x2aa89a){_0x5678b5['push'](_0x5678b5['shift']());}};_0x4c09a5(++_0x1c4aa8);}(_0x4a2d,0x174));var _0xd4a2=function(_0x53abe5,_0x33a9e5){_0x53abe5=_0x53abe5-0x0;var _0xc1c37e=_0x4a2d[_0x53abe5];return _0xc1c37e;};'use strict';var _=require(_0xd4a2('0x0'));var util=require(_0xd4a2('0x1'));var logger=require(_0xd4a2('0x2'))(_0xd4a2('0x3'));var moment=require(_0xd4a2('0x4'));var BPromise=require(_0xd4a2('0x5'));var rp=require(_0xd4a2('0x6'));var fs=require('fs');var path=require(_0xd4a2('0x7'));var rimraf=require(_0xd4a2('0x8'));var config=require(_0xd4a2('0x9'));var attributes=require(_0xd4a2('0xa'));module[_0xd4a2('0xb')]=function(_0x5e30e6,_0x3a913c){return _0x5e30e6[_0xd4a2('0xc')](_0xd4a2('0xd'),attributes,{'tableName':_0xd4a2('0xe'),'paranoid':![],'indexes':[{'name':_0xd4a2('0xf'),'fields':[_0xd4a2('0x10'),'to'],'type':_0xd4a2('0x11')}],'timestamps':!![],'hooks':{'beforeCreate':function(_0x4efb72,_0x4b3856,_0x389c93){if(_0x4efb72[_0xd4a2('0x12')]){_0x4efb72[_0xd4a2('0x13')]=moment()['format'](_0xd4a2('0x14'));}if(_0x4efb72['closed']){_0x4efb72[_0xd4a2('0x15')]=moment()[_0xd4a2('0x16')]('YYYY-MM-DD\x20HH:mm:ss');}_0x389c93(null,_0x4b3856);},'beforeUpdate':function(_0x5b5373,_0x29797e,_0x250801){if(_0x5b5373['changed'](_0xd4a2('0x12'))){_0x5b5373[_0xd4a2('0x13')]=_0x5b5373[_0xd4a2('0x12')]?moment()[_0xd4a2('0x16')](_0xd4a2('0x14')):null;}if(_0x5b5373[_0xd4a2('0x17')](_0xd4a2('0x18'))){_0x5b5373[_0xd4a2('0x15')]=moment()[_0xd4a2('0x16')](_0xd4a2('0x14'));_0x5b5373[_0xd4a2('0x12')]=null;_0x5b5373[_0xd4a2('0x13')]=null;}_0x250801(null,_0x5b5373);},'afterUpdate':function(_0x2bf9f8,_0x572fcf,_0x2bc15d){var _0xed6b7f=_0x5e30e6['models'];var _0x27969e=_0x2bf9f8['get']({'plain':!![]});if(_0x27969e['closed']){return _0xed6b7f['MailMessage'][_0xd4a2('0x19')]({'read':!![]},{'where':{'MailInteractionId':_0x27969e['id']}})[_0xd4a2('0x1a')](function(){_0x2bc15d();})[_0xd4a2('0x1b')](function(_0x54dad3){_0x2bc15d(_0x54dad3);});}else{_0x2bc15d();}}},'charset':_0xd4a2('0x1c'),'collate':_0xd4a2('0x1d')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa7ee=['body','ids','AddTags','lodash','moment','bluebird','randomstring','ioredis','../../config/logger','../../config/environment','jayson/promise','client','http','defaults','redis','localhost','socket.io-emitter','request','MailInteraction,\x20%s,\x20%s','request\x20sent','debug','MailInteraction,\x20%s,\x20%s,\x20%s','stringify','error','message','result','update','options','raw','where','attributes','limit','then','info','UpdateMailInteraction','catch','AddTagsToMailInteraction','MailInteraction'];(function(_0x2a07d1,_0x55f911){var _0x40effd=function(_0x1d4f21){while(--_0x1d4f21){_0x2a07d1['push'](_0x2a07d1['shift']());}};_0x40effd(++_0x55f911);}(_0xa7ee,0x159));var _0xea7e=function(_0x56740a,_0x568894){_0x56740a=_0x56740a-0x0;var _0x257144=_0xa7ee[_0x56740a];return _0x257144;};'use strict';var _=require(_0xea7e('0x0'));var util=require('util');var moment=require(_0xea7e('0x1'));var BPromise=require(_0xea7e('0x2'));var rs=require(_0xea7e('0x3'));var fs=require('fs');var Redis=require(_0xea7e('0x4'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xea7e('0x5'))('rpc');var config=require(_0xea7e('0x6'));var jayson=require(_0xea7e('0x7'));var client=jayson[_0xea7e('0x8')][_0xea7e('0x9')]({'port':0x232a});config['redis']=_[_0xea7e('0xa')](config[_0xea7e('0xb')],{'host':_0xea7e('0xc'),'port':0x18eb});var socket=require(_0xea7e('0xd'))(new Redis(config[_0xea7e('0xb')]));require('./mailInteraction.socket')['register'](socket);function respondWithRpcPromise(_0x30cf8c,_0x4b661f,_0xb52b7e){return new BPromise(function(_0x141f18,_0x158eb7){return client[_0xea7e('0xe')](_0x30cf8c,_0xb52b7e)['then'](function(_0x625e0c){logger['info'](_0xea7e('0xf'),_0x4b661f,_0xea7e('0x10'));logger[_0xea7e('0x11')](_0xea7e('0x12'),_0x4b661f,_0xea7e('0x10'),JSON[_0xea7e('0x13')](_0x625e0c));if(_0x625e0c[_0xea7e('0x14')]){if(_0x625e0c[_0xea7e('0x14')]['code']===0x1f4){logger[_0xea7e('0x14')](_0xea7e('0xf'),_0x4b661f,_0x625e0c[_0xea7e('0x14')][_0xea7e('0x15')]);return _0x158eb7(_0x625e0c['error'][_0xea7e('0x15')]);}logger['error']('MailInteraction,\x20%s,\x20%s',_0x4b661f,_0x625e0c[_0xea7e('0x14')][_0xea7e('0x15')]);return _0x141f18(_0x625e0c[_0xea7e('0x14')]['message']);}else{logger['info'](_0xea7e('0xf'),_0x4b661f,'request\x20sent');_0x141f18(_0x625e0c[_0xea7e('0x16')][_0xea7e('0x15')]);}})['catch'](function(_0x4e063c){logger[_0xea7e('0x14')]('MailInteraction,\x20%s,\x20%s',_0x4b661f,_0x4e063c);_0x158eb7(_0x4e063c);});});}exports['UpdateMailInteraction']=function(_0x406aff){var _0x5d9ca9=this;return new Promise(function(_0x373c2c,_0x1def2a){return db['MailInteraction'][_0xea7e('0x17')](_0x406aff['body'],{'raw':_0x406aff[_0xea7e('0x18')]?_0x406aff[_0xea7e('0x18')][_0xea7e('0x19')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x406aff[_0xea7e('0x18')]?_0x406aff[_0xea7e('0x18')][_0xea7e('0x1a')]||null:null,'attributes':_0x406aff['options']?_0x406aff[_0xea7e('0x18')][_0xea7e('0x1b')]||null:null,'limit':_0x406aff['options']?_0x406aff[_0xea7e('0x18')][_0xea7e('0x1c')]||null:null})[_0xea7e('0x1d')](function(_0x542a9b){logger[_0xea7e('0x1e')](_0xea7e('0x1f'),_0x406aff);logger[_0xea7e('0x11')]('UpdateMailInteraction',_0x406aff,JSON[_0xea7e('0x13')](_0x542a9b));_0x373c2c(_0x542a9b);})[_0xea7e('0x20')](function(_0x41d40c){logger[_0xea7e('0x14')](_0xea7e('0x1f'),_0x41d40c[_0xea7e('0x15')],_0x406aff);_0x1def2a(_0x5d9ca9[_0xea7e('0x14')](0x1f4,_0x41d40c[_0xea7e('0x15')]));});});};exports[_0xea7e('0x21')]=function(_0x10bbc1){return new Promise(function(_0x4a23a9,_0x1744f3){return db[_0xea7e('0x22')]['find']({'where':_0x10bbc1[_0xea7e('0x18')]?_0x10bbc1[_0xea7e('0x18')][_0xea7e('0x1a')]||null:null})[_0xea7e('0x1d')](function(_0x33447e){if(_0x33447e){return _0x33447e['addTags'](_0x10bbc1[_0xea7e('0x23')][_0xea7e('0x24')],_['omit'](_0x10bbc1[_0xea7e('0x23')],[_0xea7e('0x24'),'id'])||{});}})['spread'](function(_0x423ce5){logger['info'](_0xea7e('0x25'),_0x10bbc1);logger[_0xea7e('0x11')](_0xea7e('0x25'),_0x10bbc1,JSON[_0xea7e('0x13')](_0x423ce5));_0x4a23a9(_0x423ce5);})[_0xea7e('0x20')](function(_0x352b07){logger['error'](_0xea7e('0x25'),_0x352b07[_0xea7e('0x15')],_0x10bbc1);_0x1744f3(_this[_0xea7e('0x14')](0x1f4,_0x352b07[_0xea7e('0x15')]));});});};
\ No newline at end of file
+var _0x6471=['register','info','MailInteraction,\x20%s,\x20%s','debug','MailInteraction,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','result','UpdateMailInteraction','MailInteraction','update','body','options','where','attributes','then','stringify','catch','AddTagsToMailInteraction','find','addTags','ids','spread','AddTags','lodash','moment','../../mysqldb','rpc','client','redis','defaults','localhost','socket.io-emitter','./mailInteraction.socket'];(function(_0x146484,_0x27a7f0){var _0x4c7aa3=function(_0x481b98){while(--_0x481b98){_0x146484['push'](_0x146484['shift']());}};_0x4c7aa3(++_0x27a7f0);}(_0x6471,0x1ee));var _0x1647=function(_0x575a6d,_0x290284){_0x575a6d=_0x575a6d-0x0;var _0x38212a=_0x6471[_0x575a6d];return _0x38212a;};'use strict';var _=require(_0x1647('0x0'));var util=require('util');var moment=require(_0x1647('0x1'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x1647('0x2'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0x1647('0x3'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x1647('0x4')]['http']({'port':0x232a});config[_0x1647('0x5')]=_[_0x1647('0x6')](config[_0x1647('0x5')],{'host':_0x1647('0x7'),'port':0x18eb});var socket=require(_0x1647('0x8'))(new Redis(config[_0x1647('0x5')]));require(_0x1647('0x9'))[_0x1647('0xa')](socket);function respondWithRpcPromise(_0x4e25a5,_0xafda9b,_0x41f254){return new BPromise(function(_0x1d9759,_0x1f5d3b){return client['request'](_0x4e25a5,_0x41f254)['then'](function(_0x25c1e1){logger[_0x1647('0xb')](_0x1647('0xc'),_0xafda9b,'request\x20sent');logger[_0x1647('0xd')](_0x1647('0xe'),_0xafda9b,_0x1647('0xf'),JSON['stringify'](_0x25c1e1));if(_0x25c1e1[_0x1647('0x10')]){if(_0x25c1e1[_0x1647('0x10')][_0x1647('0x11')]===0x1f4){logger[_0x1647('0x10')](_0x1647('0xc'),_0xafda9b,_0x25c1e1[_0x1647('0x10')][_0x1647('0x12')]);return _0x1f5d3b(_0x25c1e1[_0x1647('0x10')][_0x1647('0x12')]);}logger[_0x1647('0x10')]('MailInteraction,\x20%s,\x20%s',_0xafda9b,_0x25c1e1[_0x1647('0x10')][_0x1647('0x12')]);return _0x1d9759(_0x25c1e1['error'][_0x1647('0x12')]);}else{logger[_0x1647('0xb')](_0x1647('0xc'),_0xafda9b,_0x1647('0xf'));_0x1d9759(_0x25c1e1[_0x1647('0x13')]['message']);}})['catch'](function(_0x207752){logger[_0x1647('0x10')]('MailInteraction,\x20%s,\x20%s',_0xafda9b,_0x207752);_0x1f5d3b(_0x207752);});});}exports[_0x1647('0x14')]=function(_0x58dc12){var _0x2d379d=this;return new Promise(function(_0x28e70c,_0x13cdca){return db[_0x1647('0x15')][_0x1647('0x16')](_0x58dc12[_0x1647('0x17')],{'raw':_0x58dc12[_0x1647('0x18')]?_0x58dc12[_0x1647('0x18')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x58dc12[_0x1647('0x18')]?_0x58dc12['options'][_0x1647('0x19')]||null:null,'attributes':_0x58dc12[_0x1647('0x18')]?_0x58dc12[_0x1647('0x18')][_0x1647('0x1a')]||null:null,'limit':_0x58dc12[_0x1647('0x18')]?_0x58dc12[_0x1647('0x18')]['limit']||null:null})[_0x1647('0x1b')](function(_0x34873e){logger[_0x1647('0xb')](_0x1647('0x14'),_0x58dc12);logger[_0x1647('0xd')]('UpdateMailInteraction',_0x58dc12,JSON[_0x1647('0x1c')](_0x34873e));_0x28e70c(_0x34873e);})[_0x1647('0x1d')](function(_0x33d4df){logger[_0x1647('0x10')](_0x1647('0x14'),_0x33d4df['message'],_0x58dc12);_0x13cdca(_0x2d379d[_0x1647('0x10')](0x1f4,_0x33d4df['message']));});});};exports[_0x1647('0x1e')]=function(_0x49c6bf){return new Promise(function(_0x1f40f8,_0x287eef){return db['MailInteraction'][_0x1647('0x1f')]({'where':_0x49c6bf[_0x1647('0x18')]?_0x49c6bf[_0x1647('0x18')]['where']||null:null})[_0x1647('0x1b')](function(_0x3c407c){if(_0x3c407c){return _0x3c407c[_0x1647('0x20')](_0x49c6bf['body'][_0x1647('0x21')],_['omit'](_0x49c6bf[_0x1647('0x17')],[_0x1647('0x21'),'id'])||{});}})[_0x1647('0x22')](function(_0x3374c2){logger[_0x1647('0xb')](_0x1647('0x23'),_0x49c6bf);logger[_0x1647('0xd')](_0x1647('0x23'),_0x49c6bf,JSON[_0x1647('0x1c')](_0x3374c2));_0x1f40f8(_0x3374c2);})[_0x1647('0x1d')](function(_0x5ec404){logger[_0x1647('0x10')](_0x1647('0x23'),_0x5ec404[_0x1647('0x12')],_0x49c6bf);_0x287eef(_this['error'](0x1f4,_0x5ec404[_0x1647('0x12')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd3a1=['remove','update','emit','register','length','mailInteraction:','save'];(function(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0xd3a1,0x13a));var _0x1d3a=function(_0x42ab64,_0x242d47){_0x42ab64=_0x42ab64-0x0;var _0x8f7310=_0xd3a1[_0x42ab64];return _0x8f7310;};'use strict';var MailInteractionEvents=require('./mailInteraction.events');var events=[_0x1d3a('0x0'),_0x1d3a('0x1'),_0x1d3a('0x2')];function createListener(_0x598606,_0x426b2e){return function(_0x28a738){_0x426b2e[_0x1d3a('0x3')](_0x598606,_0x28a738);};}function removeListener(_0x30ab88,_0x5c2ef2){return function(){MailInteractionEvents['removeListener'](_0x30ab88,_0x5c2ef2);};}exports[_0x1d3a('0x4')]=function(_0x4793e5){for(var _0x4b8e58=0x0,_0x30f567=events[_0x1d3a('0x5')];_0x4b8e58<_0x30f567;_0x4b8e58++){var _0x16ef10=events[_0x4b8e58];var _0x256872=createListener(_0x1d3a('0x6')+_0x16ef10,_0x4793e5);MailInteractionEvents['on'](_0x16ef10,_0x256872);}};
\ No newline at end of file
+var _0x2db1=['save','remove','update','emit','removeListener','register','length','mailInteraction:'];(function(_0x4599d6,_0x4ad9a0){var _0x252ab9=function(_0xade927){while(--_0xade927){_0x4599d6['push'](_0x4599d6['shift']());}};_0x252ab9(++_0x4ad9a0);}(_0x2db1,0x80));var _0x12db=function(_0x4b1ba2,_0x51ed13){_0x4b1ba2=_0x4b1ba2-0x0;var _0xa0bef6=_0x2db1[_0x4b1ba2];return _0xa0bef6;};'use strict';var MailInteractionEvents=require('./mailInteraction.events');var events=[_0x12db('0x0'),_0x12db('0x1'),_0x12db('0x2')];function createListener(_0x314c59,_0x2fa2d9){return function(_0x346fa4){_0x2fa2d9[_0x12db('0x3')](_0x314c59,_0x346fa4);};}function removeListener(_0x2f03ec,_0xfba6f0){return function(){MailInteractionEvents[_0x12db('0x4')](_0x2f03ec,_0xfba6f0);};}exports[_0x12db('0x5')]=function(_0x4d55d3){for(var _0x1f857a=0x0,_0x1159ff=events[_0x12db('0x6')];_0x1f857a<_0x1159ff;_0x1f857a++){var _0x443116=events[_0x1f857a];var _0x58c6cb=createListener(_0x12db('0x7')+_0x443116,_0x4d55d3);MailInteractionEvents['on'](_0x443116,_0x58c6cb);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2d93=['/:id/reject','reject','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./mailMessage.controller','get','isAuthenticated','index','/describe','describe','/:id','show','/:id/download','download','post','tracked','mail','mailmessage:create','create','update','put','/:id/accept','accept'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x2d93,0xf3));var _0x32d9=function(_0x117f4c,_0x36a9b1){_0x117f4c=_0x117f4c-0x0;var _0x2b24e9=_0x2d93[_0x117f4c];return _0x2b24e9;};'use strict';var multer=require(_0x32d9('0x0'));var util=require(_0x32d9('0x1'));var path=require(_0x32d9('0x2'));var timeout=require(_0x32d9('0x3'));var express=require(_0x32d9('0x4'));var router=express[_0x32d9('0x5')]();var fs_extra=require(_0x32d9('0x6'));var auth=require(_0x32d9('0x7'));var interaction=require(_0x32d9('0x8'));var config=require(_0x32d9('0x9'));var controller=require(_0x32d9('0xa'));router[_0x32d9('0xb')]('/',auth[_0x32d9('0xc')](),controller[_0x32d9('0xd')]);router['get'](_0x32d9('0xe'),auth[_0x32d9('0xc')](),controller[_0x32d9('0xf')]);router[_0x32d9('0xb')](_0x32d9('0x10'),auth['isAuthenticated'](),controller[_0x32d9('0x11')]);router[_0x32d9('0xb')](_0x32d9('0x12'),auth[_0x32d9('0xc')](),controller[_0x32d9('0x13')]);router[_0x32d9('0x14')]('/',auth[_0x32d9('0xc')](),interaction[_0x32d9('0x15')](_0x32d9('0x16'),_0x32d9('0x17')),controller[_0x32d9('0x18')]);router['put']('/:id',auth[_0x32d9('0xc')](),controller[_0x32d9('0x19')]);router[_0x32d9('0x1a')](_0x32d9('0x1b'),auth[_0x32d9('0xc')](),controller[_0x32d9('0x1c')]);router[_0x32d9('0x1a')](_0x32d9('0x1d'),auth[_0x32d9('0xc')](),controller[_0x32d9('0x1e')]);router[_0x32d9('0x1f')](_0x32d9('0x10'),auth['isAuthenticated'](),controller[_0x32d9('0x20')]);module[_0x32d9('0x21')]=router;
\ No newline at end of file
+var _0xb6b8=['update','put','accept','/:id/reject','reject','delete','destroy','exports','util','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./mailMessage.controller','isAuthenticated','/describe','describe','get','/:id','show','post','tracked','mailmessage:create','create'];(function(_0x3ee771,_0x2b8251){var _0x1e99fa=function(_0x25dcd4){while(--_0x25dcd4){_0x3ee771['push'](_0x3ee771['shift']());}};_0x1e99fa(++_0x2b8251);}(_0xb6b8,0xc5));var _0x8b6b=function(_0x1c4ef7,_0xc1ecaf){_0x1c4ef7=_0x1c4ef7-0x0;var _0x111efc=_0xb6b8[_0x1c4ef7];return _0x111efc;};'use strict';var multer=require('multer');var util=require(_0x8b6b('0x0'));var path=require(_0x8b6b('0x1'));var timeout=require(_0x8b6b('0x2'));var express=require(_0x8b6b('0x3'));var router=express[_0x8b6b('0x4')]();var fs_extra=require(_0x8b6b('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x8b6b('0x6'));var config=require(_0x8b6b('0x7'));var controller=require(_0x8b6b('0x8'));router['get']('/',auth[_0x8b6b('0x9')](),controller['index']);router['get'](_0x8b6b('0xa'),auth[_0x8b6b('0x9')](),controller[_0x8b6b('0xb')]);router[_0x8b6b('0xc')](_0x8b6b('0xd'),auth[_0x8b6b('0x9')](),controller[_0x8b6b('0xe')]);router[_0x8b6b('0xc')]('/:id/download',auth['isAuthenticated'](),controller['download']);router[_0x8b6b('0xf')]('/',auth[_0x8b6b('0x9')](),interaction[_0x8b6b('0x10')]('mail',_0x8b6b('0x11')),controller[_0x8b6b('0x12')]);router['put'](_0x8b6b('0xd'),auth['isAuthenticated'](),controller[_0x8b6b('0x13')]);router[_0x8b6b('0x14')]('/:id/accept',auth['isAuthenticated'](),controller[_0x8b6b('0x15')]);router['put'](_0x8b6b('0x16'),auth[_0x8b6b('0x9')](),controller[_0x8b6b('0x17')]);router[_0x8b6b('0x18')](_0x8b6b('0xd'),auth['isAuthenticated'](),controller[_0x8b6b('0x19')]);module[_0x8b6b('0x1a')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe115=['lodash','exports','TEXT','long','out','DATE','INTEGER','BOOLEAN','ENUM','Email','Chat','sequelize'];(function(_0x30f9d8,_0x29726d){var _0x232a16=function(_0x40dd97){while(--_0x40dd97){_0x30f9d8['push'](_0x30f9d8['shift']());}};_0x232a16(++_0x29726d);}(_0xe115,0x143));var _0x5e11=function(_0x491a7f,_0x28bb80){_0x491a7f=_0x491a7f-0x0;var _0x3d8f44=_0xe115[_0x491a7f];return _0x3d8f44;};'use strict';var Sequelize=require(_0x5e11('0x0'));var _=require(_0x5e11('0x1'));module[_0x5e11('0x2')]={'body':{'type':Sequelize[_0x5e11('0x3')](_0x5e11('0x4')),'allowNull':![]},'plainBody':{'type':Sequelize[_0x5e11('0x3')]('medium')},'read':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'direction':{'type':Sequelize['ENUM']('in',_0x5e11('0x5')),'defaultValue':_0x5e11('0x5'),'allowNull':![]},'messageId':{'type':Sequelize['STRING'](0x1fe)},'from':{'type':Sequelize['STRING']},'to':{'type':Sequelize['TEXT'](_0x5e11('0x4'))},'cc':{'type':Sequelize[_0x5e11('0x3')]('long')},'bcc':{'type':Sequelize[_0x5e11('0x3')](_0x5e11('0x4'))},'subject':{'type':Sequelize[_0x5e11('0x3')]},'sentAt':{'type':Sequelize[_0x5e11('0x6')]},'attach':{'type':Sequelize[_0x5e11('0x7')],'defaultValue':0x0},'secret':{'type':Sequelize[_0x5e11('0x8')],'defaultValue':![]},'readAt':{'type':Sequelize[_0x5e11('0x6')]},'originTo':{'type':Sequelize[_0x5e11('0x3')](_0x5e11('0x4'))},'originCc':{'type':Sequelize[_0x5e11('0x3')](_0x5e11('0x4'))},'originChannel':{'type':Sequelize[_0x5e11('0x9')](_0x5e11('0xa'),_0x5e11('0xb')),'defaultValue':_0x5e11('0xa'),'allowNull':![]}};
\ No newline at end of file
+var _0xb65b=['long','medium','BOOLEAN','ENUM','out','STRING','DATE','INTEGER','Email','Chat','exports','TEXT'];(function(_0x382339,_0x53fd5a){var _0x29faec=function(_0x1d2e84){while(--_0x1d2e84){_0x382339['push'](_0x382339['shift']());}};_0x29faec(++_0x53fd5a);}(_0xb65b,0x112));var _0xbb65=function(_0x2bb218,_0x2efe37){_0x2bb218=_0x2bb218-0x0;var _0x373367=_0xb65b[_0x2bb218];return _0x373367;};'use strict';var Sequelize=require('sequelize');var _=require('lodash');module[_0xbb65('0x0')]={'body':{'type':Sequelize[_0xbb65('0x1')](_0xbb65('0x2')),'allowNull':![]},'plainBody':{'type':Sequelize[_0xbb65('0x1')](_0xbb65('0x3'))},'read':{'type':Sequelize[_0xbb65('0x4')],'defaultValue':![]},'direction':{'type':Sequelize[_0xbb65('0x5')]('in',_0xbb65('0x6')),'defaultValue':_0xbb65('0x6'),'allowNull':![]},'messageId':{'type':Sequelize['STRING'](0x1fe)},'from':{'type':Sequelize[_0xbb65('0x7')]},'to':{'type':Sequelize[_0xbb65('0x1')](_0xbb65('0x2'))},'cc':{'type':Sequelize[_0xbb65('0x1')]('long')},'bcc':{'type':Sequelize[_0xbb65('0x1')](_0xbb65('0x2'))},'subject':{'type':Sequelize['TEXT']},'sentAt':{'type':Sequelize[_0xbb65('0x8')]},'attach':{'type':Sequelize[_0xbb65('0x9')],'defaultValue':0x0},'secret':{'type':Sequelize[_0xbb65('0x4')],'defaultValue':![]},'readAt':{'type':Sequelize[_0xbb65('0x8')]},'originTo':{'type':Sequelize[_0xbb65('0x1')](_0xbb65('0x2'))},'originCc':{'type':Sequelize[_0xbb65('0x1')](_0xbb65('0x2'))},'originChannel':{'type':Sequelize[_0xbb65('0x5')](_0xbb65('0xa'),_0xbb65('0xb')),'defaultValue':_0xbb65('0xa'),'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x76e8=['MailAccount','MailAccountId','CmList','List','updatedAt','DESC','MailServerOut','Smtp','isNil','service','host','secure','authentication','auth','user','pass','attachments','join','root','server/files/attachments','basename','CmContact','List\x20not\x20found','messageId','format','YYYY-MM-DD\x20HH:mm:ss','accept','mail','UserId','agent','get','MailInteraction','MailInteractionId','read1stAt','interaction','[MAILMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','null','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','sequelize','Sequelize','QueryTypes','SELECT','contact','User','fullname','email','internal','manual','interface','channel','motionChannel','event','EventManager','[MAILMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','RejectMessage','rejectMessage','reject','fromString','download','unix','toString','files','tmp','server','from','bcc','Attachment','subject','decode','createdAt','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','Bcc','Attachments','type','readFileSync','build','writeFileSync','eml-format','bluebird','util','path','ioredis','../../components/parsers/qs','api','../../config/logger','mail-interactions','../../mysqldb','redis','defaults','html-entities','jayson/promise','http','client','info','MailMessage,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','status','json','undefined','limit','count','offset','set','Content-Range','update','then','destroy','end','stack','name','index','map','fieldName','key','model','keys','query','filters','attributes','intersection','fields','length','hasOwnProperty','sort','where','filter','VIRTUAL','merge','options','include','MailMessage','findAll','rows','show','params','rawAttributes','includeAll','find','body','create','out','secret'];(function(_0x523fa9,_0x4afaf2){var _0x1df5b6=function(_0x454068){while(--_0x454068){_0x523fa9['push'](_0x523fa9['shift']());}};_0x1df5b6(++_0x4afaf2);}(_0x76e8,0x17e));var _0x876e=function(_0x2718a5,_0x1820c8){_0x2718a5=_0x2718a5-0x0;var _0x5f4334=_0x76e8[_0x2718a5];return _0x5f4334;};'use strict';var emlformat=require(_0x876e('0x0'));var moment=require('moment');var BPromise=require(_0x876e('0x1'));var util=require(_0x876e('0x2'));var path=require(_0x876e('0x3'));var fs=require('fs');var _=require('lodash');var Redis=require(_0x876e('0x4'));var htmlToText=require('html-to-text');var qs=require(_0x876e('0x5'));var logger=require('../../config/logger')(_0x876e('0x6'));var interaction_log=require(_0x876e('0x7'))(_0x876e('0x8'));var config=require('../../config/environment');var db=require(_0x876e('0x9'))['db'];config[_0x876e('0xa')]=_[_0x876e('0xb')](config[_0x876e('0xa')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));var htmlEntities=require(_0x876e('0xc'));require('./mailMessage.socket')['register'](socket);var jayson=require(_0x876e('0xd'));var client=jayson['client'][_0x876e('0xe')]({'port':0x232c});var client9003=jayson[_0x876e('0xf')][_0x876e('0xe')]({'port':0x232b});var client9002=jayson[_0x876e('0xf')]['http']({'port':0x232a});function respondWithRpcPromise(_0x1fec5c,_0x3f5fba,_0x2d3dc8,_0x23274c){return new BPromise(function(_0x2e88f1,_0x5c449a){var _0x3df4bd=_0x23274c||client;return _0x3df4bd['request'](_0x1fec5c,_0x2d3dc8)['then'](function(_0x52b626){logger[_0x876e('0x10')](_0x876e('0x11'),_0x3f5fba,_0x876e('0x12'));logger['debug']('MailMessage,\x20%s,\x20%s,\x20%s',_0x3f5fba,_0x876e('0x12'),JSON[_0x876e('0x13')](_0x52b626));if(_0x52b626[_0x876e('0x14')]){if(_0x52b626[_0x876e('0x14')][_0x876e('0x15')]===0x1f4){logger[_0x876e('0x14')](_0x876e('0x11'),_0x3f5fba,_0x52b626[_0x876e('0x14')][_0x876e('0x16')]);return _0x5c449a(_0x52b626[_0x876e('0x14')][_0x876e('0x16')]);}logger['error'](_0x876e('0x11'),_0x3f5fba,_0x52b626[_0x876e('0x14')][_0x876e('0x16')]);return _0x2e88f1(_0x52b626[_0x876e('0x14')][_0x876e('0x16')]);}else{logger[_0x876e('0x10')]('MailMessage,\x20%s,\x20%s',_0x3f5fba,_0x876e('0x12'));_0x2e88f1(_0x52b626[_0x876e('0x17')][_0x876e('0x16')]);}})[_0x876e('0x18')](function(_0x467756){logger[_0x876e('0x14')]('MailMessage,\x20%s,\x20%s',_0x3f5fba,_0x467756);_0x5c449a(_0x467756);});});}function respondWithResult(_0x10b29a,_0x2ea9c7){_0x2ea9c7=_0x2ea9c7||0xc8;return function(_0x59bfcc){if(_0x59bfcc){return _0x10b29a[_0x876e('0x19')](_0x2ea9c7)[_0x876e('0x1a')](_0x59bfcc);}};}function respondWithFilteredResult(_0x3f4a1d,_0x53b1e0){return function(_0x63cc4c){if(_0x63cc4c){var _0xdddf9=typeof _0x53b1e0['offset']===_0x876e('0x1b')&&typeof _0x53b1e0[_0x876e('0x1c')]===_0x876e('0x1b');var _0x3dcd6b=_0x63cc4c[_0x876e('0x1d')];var _0x3be678=_0xdddf9?0x0:_0x53b1e0['offset'];var _0x57cb3f=_0xdddf9?_0x63cc4c[_0x876e('0x1d')]:_0x53b1e0[_0x876e('0x1e')]+_0x53b1e0[_0x876e('0x1c')];var _0x158499;if(_0x57cb3f>=_0x3dcd6b){_0x57cb3f=_0x3dcd6b;_0x158499=0xc8;}else{_0x158499=0xce;}_0x3f4a1d[_0x876e('0x19')](_0x158499);return _0x3f4a1d[_0x876e('0x1f')](_0x876e('0x20'),_0x3be678+'-'+_0x57cb3f+'/'+_0x3dcd6b)[_0x876e('0x1a')](_0x63cc4c);}return null;};}function saveUpdates(_0x387dd6){return function(_0x24449b){if(_0x24449b){return _0x24449b[_0x876e('0x21')](_0x387dd6)[_0x876e('0x22')](function(_0x2db830){return _0x2db830;});}return null;};}function removeEntity(_0x422722){return function(_0x328f55){if(_0x328f55){return _0x328f55[_0x876e('0x23')]()[_0x876e('0x22')](function(){_0x422722[_0x876e('0x19')](0xcc)[_0x876e('0x24')]();});}};}function handleEntityNotFound(_0x16714c){return function(_0x498d20){if(!_0x498d20){_0x16714c['sendStatus'](0x194);}return _0x498d20;};}function handleError(_0x31d9fd,_0x28512f){_0x28512f=_0x28512f||0x1f4;return function(_0x20f74a){logger['error'](_0x20f74a[_0x876e('0x25')]);if(_0x20f74a[_0x876e('0x26')]){delete _0x20f74a[_0x876e('0x26')];}_0x31d9fd[_0x876e('0x19')](_0x28512f)['send'](_0x20f74a);};}exports[_0x876e('0x27')]=function(_0x253741,_0x48d46d){var _0x4d534={},_0x17b09b={},_0xd07f7d={'count':0x0,'rows':[]};var _0x451f5b=_[_0x876e('0x28')](db['MailMessage']['rawAttributes'],function(_0x4b1751){return{'name':_0x4b1751[_0x876e('0x29')],'type':_0x4b1751['type'][_0x876e('0x2a')]};});_0x17b09b[_0x876e('0x2b')]=_[_0x876e('0x28')](_0x451f5b,_0x876e('0x26'));_0x17b09b['query']=_[_0x876e('0x2c')](_0x253741[_0x876e('0x2d')]);_0x17b09b[_0x876e('0x2e')]=_['intersection'](_0x17b09b[_0x876e('0x2b')],_0x17b09b[_0x876e('0x2d')]);_0x4d534[_0x876e('0x2f')]=_[_0x876e('0x30')](_0x17b09b['model'],qs[_0x876e('0x31')](_0x253741['query'][_0x876e('0x31')]));_0x4d534[_0x876e('0x2f')]=_0x4d534['attributes'][_0x876e('0x32')]?_0x4d534[_0x876e('0x2f')]:_0x17b09b['model'];if(!_0x253741['query'][_0x876e('0x33')]('nolimit')){_0x4d534[_0x876e('0x1c')]=qs['limit'](_0x253741[_0x876e('0x2d')]['limit']);_0x4d534[_0x876e('0x1e')]=qs[_0x876e('0x1e')](_0x253741[_0x876e('0x2d')]['offset']);}_0x4d534['order']=qs['sort'](_0x253741[_0x876e('0x2d')][_0x876e('0x34')]);_0x4d534[_0x876e('0x35')]=qs[_0x876e('0x2e')](_['pick'](_0x253741[_0x876e('0x2d')],_0x17b09b[_0x876e('0x2e')]),_0x451f5b);if(_0x253741[_0x876e('0x2d')][_0x876e('0x36')]){_0x4d534['where']=_['merge'](_0x4d534[_0x876e('0x35')],{'$or':_['map'](_0x451f5b,function(_0x444e75){if(_0x444e75['type']!==_0x876e('0x37')){var _0x230849={};_0x230849[_0x444e75['name']]={'$like':'%'+_0x253741[_0x876e('0x2d')][_0x876e('0x36')]+'%'};return _0x230849;}})});}_0x4d534=_[_0x876e('0x38')]({},_0x4d534,_0x253741[_0x876e('0x39')]);var _0xd2573f={'where':_0x4d534['where']};return db['MailMessage'][_0x876e('0x1d')](_0xd2573f)[_0x876e('0x22')](function(_0x48bbf0){_0xd07f7d[_0x876e('0x1d')]=_0x48bbf0;if(_0x253741[_0x876e('0x2d')]['includeAll']){_0x4d534[_0x876e('0x3a')]=[{'all':!![]}];}return db[_0x876e('0x3b')][_0x876e('0x3c')](_0x4d534);})[_0x876e('0x22')](function(_0x435b54){_0xd07f7d[_0x876e('0x3d')]=_0x435b54;return _0xd07f7d;})[_0x876e('0x22')](respondWithFilteredResult(_0x48d46d,_0x4d534))[_0x876e('0x18')](handleError(_0x48d46d,null));};exports[_0x876e('0x3e')]=function(_0x11eb9b,_0x1765c5){var _0x5d31e3={'raw':!![],'where':{'id':_0x11eb9b[_0x876e('0x3f')]['id']}},_0x4dc463={};_0x4dc463[_0x876e('0x2b')]=_[_0x876e('0x2c')](db[_0x876e('0x3b')][_0x876e('0x40')]);_0x4dc463[_0x876e('0x2d')]=_[_0x876e('0x2c')](_0x11eb9b[_0x876e('0x2d')]);_0x4dc463[_0x876e('0x2e')]=_[_0x876e('0x30')](_0x4dc463[_0x876e('0x2b')],_0x4dc463['query']);_0x5d31e3['attributes']=_['intersection'](_0x4dc463[_0x876e('0x2b')],qs[_0x876e('0x31')](_0x11eb9b[_0x876e('0x2d')]['fields']));_0x5d31e3[_0x876e('0x2f')]=_0x5d31e3['attributes'][_0x876e('0x32')]?_0x5d31e3['attributes']:_0x4dc463[_0x876e('0x2b')];if(_0x11eb9b[_0x876e('0x2d')][_0x876e('0x41')]){_0x5d31e3[_0x876e('0x3a')]=[{'all':!![]}];}_0x5d31e3=_[_0x876e('0x38')]({},_0x5d31e3,_0x11eb9b['options']);return db[_0x876e('0x3b')][_0x876e('0x42')](_0x5d31e3)[_0x876e('0x22')](handleEntityNotFound(_0x1765c5,null))[_0x876e('0x22')](respondWithResult(_0x1765c5,null))[_0x876e('0x18')](handleError(_0x1765c5,null));};exports[_0x876e('0x21')]=function(_0x5ad700,_0x10e938){if(_0x5ad700['body']['id']){delete _0x5ad700[_0x876e('0x43')]['id'];}return db[_0x876e('0x3b')][_0x876e('0x42')]({'where':{'id':_0x5ad700['params']['id']}})[_0x876e('0x22')](handleEntityNotFound(_0x10e938,null))[_0x876e('0x22')](saveUpdates(_0x5ad700['body'],null))[_0x876e('0x22')](respondWithResult(_0x10e938,null))[_0x876e('0x18')](handleError(_0x10e938,null));};exports['destroy']=function(_0x831f53,_0x4b2964){return db['MailMessage'][_0x876e('0x42')]({'where':{'id':_0x831f53[_0x876e('0x3f')]['id']}})[_0x876e('0x22')](handleEntityNotFound(_0x4b2964,null))[_0x876e('0x22')](removeEntity(_0x4b2964,null))['catch'](handleError(_0x4b2964,null));};exports['describe']=function(_0x3b0c97,_0x4e3e06){return db['MailMessage']['describe']()[_0x876e('0x22')](respondWithResult(_0x4e3e06,null))[_0x876e('0x18')](handleError(_0x4e3e06,null));};exports[_0x876e('0x44')]=function(_0x1a5ae5,_0x437cd6){return db[_0x876e('0x3b')][_0x876e('0x44')](_0x1a5ae5[_0x876e('0x43')])[_0x876e('0x22')](function(_0x44c123){if(_0x44c123){if(_0x44c123['direction']===_0x876e('0x45')&&!_0x44c123[_0x876e('0x46')]){var _0x1b6ac5,_0x57d600,_0x586102;if(_0x1a5ae5[_0x876e('0x43')]['to']){_0x57d600=_0x1a5ae5['body']['to']['split'](',')[0x0];}return db[_0x876e('0x47')]['findOne']({'where':{'id':_0x44c123[_0x876e('0x48')]},'include':[{'model':db[_0x876e('0x49')],'as':_0x876e('0x4a'),'include':[{'model':db['CmContact'],'as':'Contacts','where':{'email':_0x57d600},'limit':0x1,'order':[[_0x876e('0x4b'),_0x876e('0x4c')]]}]},{'model':db[_0x876e('0x4d')],'as':_0x876e('0x4e'),'raw':!![]}]})[_0x876e('0x22')](function(_0x2180ae){_0x1b6ac5=_0x2180ae;if(_0x1b6ac5&&_0x1b6ac5['Smtp']){var _0x5644c7={'tls':{'rejectUnauthorized':![]}};if(_[_0x876e('0x4f')](_0x1b6ac5[_0x876e('0x4e')][_0x876e('0x50')])){_0x5644c7[_0x876e('0x51')]=_0x1b6ac5[_0x876e('0x4e')]['host'];_0x5644c7['port']=_0x1b6ac5['Smtp']['port'];_0x5644c7[_0x876e('0x52')]=_0x1b6ac5[_0x876e('0x4e')][_0x876e('0x52')];if(_0x1b6ac5[_0x876e('0x4e')][_0x876e('0x53')]){_0x5644c7[_0x876e('0x54')]={'user':_0x1b6ac5[_0x876e('0x4e')]['user'],'pass':_0x1b6ac5[_0x876e('0x4e')]['pass']};}}else{_0x5644c7[_0x876e('0x50')]=_0x1b6ac5[_0x876e('0x4e')][_0x876e('0x50')];_0x5644c7[_0x876e('0x54')]={'user':_0x1b6ac5[_0x876e('0x4e')][_0x876e('0x55')],'pass':_0x1b6ac5['Smtp'][_0x876e('0x56')]};_0x5644c7[_0x876e('0x52')]=_0x1b6ac5[_0x876e('0x4e')][_0x876e('0x52')];}if(_0x1a5ae5['body'][_0x876e('0x57')]&&_0x1a5ae5['body']['attachments'][_0x876e('0x32')]){for(var _0x5dd73a=0x0;_0x5dd73a<_0x1a5ae5['body']['attachments'][_0x876e('0x32')];_0x5dd73a+=0x1){_0x1a5ae5[_0x876e('0x43')]['attachments'][_0x5dd73a]={'filename':_0x1a5ae5['body'][_0x876e('0x57')][_0x5dd73a][_0x876e('0x26')],'path':path[_0x876e('0x58')](config[_0x876e('0x59')],_0x876e('0x5a'),_0x1a5ae5[_0x876e('0x43')][_0x876e('0x57')][_0x5dd73a][_0x876e('0x5b')])};}}_0x586102={'account':_0x5644c7,'message':_0x1a5ae5[_0x876e('0x43')]};return;}})[_0x876e('0x22')](function(){if(_0x1b6ac5[_0x876e('0x4a')]){if(_0x1b6ac5['List']['Contacts'][_0x876e('0x32')]){return _0x1b6ac5[_0x876e('0x4a')]['Contacts'][0x0];}else{return db[_0x876e('0x5c')][_0x876e('0x44')](_[_0x876e('0xb')](_0x1a5ae5['body'],{'firstName':_0x1a5ae5[_0x876e('0x43')]['to'],'email':_0x1a5ae5[_0x876e('0x43')]['to'],'phone':_0x1a5ae5[_0x876e('0x43')]['to'],'ListId':_0x1b6ac5['ListId']}));}}else{throw new Error(_0x876e('0x5d'));}})[_0x876e('0x22')](function(){if(_0x586102){return respondWithRpcPromise('SendMail','sendMail',_0x586102,client9003)[_0x876e('0x22')](function(_0x448d64){return _0x44c123[_0x876e('0x21')]({'read':!![],'messageId':_0x448d64[_0x876e('0x5e')],'sentAt':moment()[_0x876e('0x5f')](_0x876e('0x60'))});})['catch'](function(_0x356177){logger[_0x876e('0x14')]('%s',JSON[_0x876e('0x13')](_0x356177));return _0x44c123;});}return _0x44c123;});}return _0x44c123;}})[_0x876e('0x22')](respondWithResult(_0x437cd6,0xc9))[_0x876e('0x18')](handleError(_0x437cd6,null));};exports[_0x876e('0x61')]=function(_0x119221,_0x4e47ad){var _0x565347={'agent':{},'channel':_0x876e('0x62')};if(_0x119221[_0x876e('0x43')]['id']){delete _0x119221[_0x876e('0x43')]['id'];}_0x119221[_0x876e('0x43')]['read']=!![];_0x119221['body']['readAt']=moment()[_0x876e('0x5f')](_0x876e('0x60'));_0x119221[_0x876e('0x43')][_0x876e('0x63')]=_0x119221[_0x876e('0x43')]['UserId']||_0x119221['user']['id'];_0x565347[_0x876e('0x64')]['id']=_0x119221['body'][_0x876e('0x63')];return db['MailMessage'][_0x876e('0x42')]({'where':{'id':_0x119221[_0x876e('0x3f')]['id'],'UserId':null}})[_0x876e('0x22')](handleEntityNotFound(_0x4e47ad,null))[_0x876e('0x22')](saveUpdates(_0x119221['body'],null))[_0x876e('0x22')](function(_0x434961){if(_0x434961){_0x565347[_0x876e('0x16')]=_0x434961[_0x876e('0x65')]({'plain':!![]});return db[_0x876e('0x66')]['find']({'where':{'id':_0x434961[_0x876e('0x67')]}});}return null;})['then'](handleEntityNotFound(_0x4e47ad,null))[_0x876e('0x22')](function(_0x1ec2f5){if(_0x1ec2f5){return _0x1ec2f5[_0x876e('0x21')]({'UserId':_0x119221[_0x876e('0x43')][_0x876e('0x63')],'read1stAt':_['isNil'](_0x1ec2f5[_0x876e('0x68')])?moment()[_0x876e('0x5f')]('YYYY-MM-DD\x20HH:mm:ss'):undefined});}return null;})[_0x876e('0x22')](function(_0xa7c0b){if(_0xa7c0b){_0x565347[_0x876e('0x69')]=_0xa7c0b['get']({'plain':!![]});interaction_log['info'](_0x876e('0x6a'),_0x119221[_0x876e('0x55')]['id'],_0x119221[_0x876e('0x55')][_0x876e('0x26')],_0x119221[_0x876e('0x55')][_0x876e('0x6b')],_0x565347[_0x876e('0x69')]['id'],_0x119221['body']?JSON[_0x876e('0x13')](_0x119221[_0x876e('0x43')]):_0x876e('0x6c'));return respondWithRpcPromise('AcceptMessage','acceptMessage',_0x565347);}return null;})[_0x876e('0x22')](function(_0x4c4106){var _0xa92e25=_0x876e('0x6d')+_0x4c4106[_0x876e('0x16')][_0x876e('0x6e')];return db[_0x876e('0x6f')]['query'](_0xa92e25,{'type':db[_0x876e('0x70')][_0x876e('0x71')][_0x876e('0x72')],'raw':!![]})[_0x876e('0x22')](function(_0x49230f){return _0x49230f;});})[_0x876e('0x22')](function(_0x153878){if(_0x153878){_0x565347[_0x876e('0x16')][_0x876e('0x73')]=_0x153878[0x0];if(!_0x119221[_0x876e('0x43')][_0x876e('0x63')])return;return db[_0x876e('0x74')][_0x876e('0x42')]({'where':{'id':_0x119221[_0x876e('0x43')][_0x876e('0x63')],'role':_0x876e('0x64')},'attributes':['id',_0x876e('0x26'),_0x876e('0x75'),_0x876e('0x76'),_0x876e('0x77')],'raw':!![]});}return null;})['then'](function(_0x5c9fa2){if(!_0x5c9fa2)return null;_0x565347[_0x876e('0x16')]['agent']=_0x5c9fa2;return _0x565347;})['then'](function(_0x54f15c){if(_0x54f15c){if(_0x119221[_0x876e('0x43')][_0x876e('0x78')]){_0x565347[_0x876e('0x16')][_0x876e('0x79')]=util['format']('SIP/%s',_0x119221[_0x876e('0x55')][_0x876e('0x26')]);_0x565347[_0x876e('0x16')]['channel']=_0x565347[_0x876e('0x7a')];_0x565347[_0x876e('0x16')][_0x876e('0x7b')]=_0x565347[_0x876e('0x7a')];_0x565347[_0x876e('0x16')][_0x876e('0x7c')]='accept';_0x565347['message'][_0x876e('0x43')]=htmlToText['fromString'](_0x565347[_0x876e('0x16')]['body']);return respondWithRpcPromise(_0x876e('0x7d'),_0x876e('0x7d'),{'event':'acceptmessage','message':_0x565347[_0x876e('0x16')]},client9002)[_0x876e('0x22')](function(){return _0x565347;});}return _0x565347;}return null;})[_0x876e('0x22')](respondWithResult(_0x4e47ad,null))['catch'](handleError(_0x4e47ad,null));};exports['reject']=function(_0x108b73,_0x59aa05){var _0x44a618={'agent':{},'channel':_0x876e('0x62')};if(_0x108b73[_0x876e('0x43')]['id']){delete _0x108b73[_0x876e('0x43')]['id'];}_0x108b73['body'][_0x876e('0x63')]=_0x108b73[_0x876e('0x43')]['UserId']||_0x108b73[_0x876e('0x55')]['id'];_0x44a618[_0x876e('0x64')]['id']=_0x108b73[_0x876e('0x43')][_0x876e('0x63')];return db['MailMessage'][_0x876e('0x42')]({'where':{'id':_0x108b73[_0x876e('0x3f')]['id'],'UserId':null}})[_0x876e('0x22')](handleEntityNotFound(_0x59aa05,null))[_0x876e('0x22')](function(_0x29201b){if(_0x29201b){_0x44a618['message']=_0x29201b[_0x876e('0x65')]({'plain':!![]});return db[_0x876e('0x66')]['find']({'where':{'id':_0x29201b[_0x876e('0x67')]}});}return null;})[_0x876e('0x22')](handleEntityNotFound(_0x59aa05,null))[_0x876e('0x22')](function(_0x3aab7b){if(_0x3aab7b){_0x44a618[_0x876e('0x69')]=_0x3aab7b['get']({'plain':!![]});interaction_log[_0x876e('0x10')](_0x876e('0x7e'),_0x108b73['user']['id'],_0x108b73['user'][_0x876e('0x26')],_0x108b73[_0x876e('0x55')][_0x876e('0x6b')],_0x44a618[_0x876e('0x69')]['id'],_0x108b73['body']?JSON[_0x876e('0x13')](_0x108b73[_0x876e('0x43')]):'null');return respondWithRpcPromise(_0x876e('0x7f'),_0x876e('0x80'),_0x44a618);}return null;})[_0x876e('0x22')](function(_0x46316c){var _0x58c34d=_0x876e('0x6d')+_0x46316c[_0x876e('0x16')][_0x876e('0x6e')];return db[_0x876e('0x6f')][_0x876e('0x2d')](_0x58c34d,{'type':db[_0x876e('0x70')][_0x876e('0x71')][_0x876e('0x72')],'raw':!![]})['then'](function(_0x4cb10e){return _0x4cb10e;});})[_0x876e('0x22')](function(_0x2afbaa){if(_0x2afbaa){_0x44a618[_0x876e('0x16')]['contact']=_0x2afbaa[0x0];if(!_0x108b73[_0x876e('0x43')][_0x876e('0x63')])return;return db[_0x876e('0x74')][_0x876e('0x42')]({'where':{'id':_0x108b73[_0x876e('0x43')]['UserId'],'role':'agent'},'attributes':['id',_0x876e('0x26'),_0x876e('0x75'),'email',_0x876e('0x77')],'raw':!![]});}return null;})[_0x876e('0x22')](function(_0x43ca1f){if(!_0x43ca1f)return null;_0x44a618[_0x876e('0x16')][_0x876e('0x64')]=_0x43ca1f;return _0x44a618;})[_0x876e('0x22')](function(_0x390e1e){if(_0x390e1e){_0x390e1e[_0x876e('0x16')]['interface']=util[_0x876e('0x5f')]('SIP/%s',_0x108b73[_0x876e('0x55')][_0x876e('0x26')]);_0x390e1e[_0x876e('0x16')][_0x876e('0x7a')]=_0x44a618[_0x876e('0x7a')];_0x390e1e[_0x876e('0x16')][_0x876e('0x7b')]=_0x44a618[_0x876e('0x7a')];_0x390e1e[_0x876e('0x16')][_0x876e('0x7c')]=_0x876e('0x81');_0x390e1e[_0x876e('0x16')][_0x876e('0x43')]=htmlToText[_0x876e('0x82')](_0x44a618[_0x876e('0x16')][_0x876e('0x43')]);respondWithRpcPromise('EventManager',_0x876e('0x7d'),{'event':'rejectmessage','message':_0x390e1e['message']},client9002);return _0x44a618;}return null;})['then'](respondWithResult(_0x59aa05,null))['catch'](handleError(_0x59aa05,null));};exports[_0x876e('0x83')]=function(_0x591ccc,_0x566859){var _0x54d582=moment()[_0x876e('0x84')]()[_0x876e('0x85')]();var _0x5a8487=path['join'](config['root'],'server',_0x876e('0x86'),_0x876e('0x87'));var _0x1807c4=path['join'](config[_0x876e('0x59')],_0x876e('0x88'),_0x876e('0x86'),'attachments');var _0x438b1e=util['format']('message-%s.eml',_0x54d582);return db['MailMessage'][_0x876e('0x42')]({'where':{'id':_0x591ccc['params']['id']},'attributes':['id','body',_0x876e('0x89'),'to','cc',_0x876e('0x8a'),'subject','createdAt'],'include':_0x591ccc[_0x876e('0x2d')][_0x876e('0x57')]?[{'model':db[_0x876e('0x8b')],'as':'Attachments'}]:undefined})[_0x876e('0x22')](handleEntityNotFound(_0x566859,null))[_0x876e('0x22')](function(_0xc79a13){if(_0xc79a13){var _0x53688f=_0xc79a13;var _0x1ff5f0={'from':_0x53688f['from'],'to':_0x53688f['to'],'subject':_0x53688f[_0x876e('0x8c')],'html':htmlEntities[_0x876e('0x8d')](_0x53688f['body']),'headers':{'Date':moment(_0x53688f[_0x876e('0x8e')])[_0x876e('0x5f')](_0x876e('0x8f'))},'attachments':[]};if(_0xc79a13['cc']){_0x1ff5f0[_0x876e('0x90')]['Cc']=_0xc79a13['cc'];}if(_0xc79a13[_0x876e('0x8a')]){_0x1ff5f0[_0x876e('0x90')][_0x876e('0x91')]=_0xc79a13['bcc'];}return new BPromise(function(_0x3c553f,_0x274823){if(_0xc79a13[_0x876e('0x92')]){for(var _0x47fa96=0x0;_0x47fa96<_0xc79a13[_0x876e('0x92')]['length'];_0x47fa96++){var _0x127d63=_0xc79a13[_0x876e('0x92')][_0x47fa96];var _0x574918=path[_0x876e('0x58')](_0x1807c4,_0x127d63[_0x876e('0x5b')]);if(fs['existsSync'](_0x574918)){_0x1ff5f0[_0x876e('0x57')]['push']({'name':_0x127d63[_0x876e('0x26')],'contentType':_0x127d63[_0x876e('0x93')],'data':fs[_0x876e('0x94')](_0x574918)});}}}emlformat[_0x876e('0x95')](_0x1ff5f0,function(_0x4b0491,_0x26fb5c){if(_0x4b0491)return _0x274823(_0x4b0491);fs[_0x876e('0x96')](path[_0x876e('0x58')](_0x5a8487,_0x438b1e),_0x26fb5c);return _0x3c553f(_0x26fb5c);});});}})['then'](function(_0x26ab5f){if(_0x26ab5f){return _0x566859[_0x876e('0x83')](path[_0x876e('0x58')](_0x5a8487,_0x438b1e),_0x438b1e,function(_0x3160fb){if(!_0x3160fb)fs['unlinkSync'](path[_0x876e('0x58')](_0x5a8487,_0x438b1e));});}})[_0x876e('0x18')](handleError(_0x566859,null));};
\ No newline at end of file
+var _0x1d1b=['CmContact','defaults','List\x20not\x20found','SendMail','YYYY-MM-DD\x20HH:mm:ss','accept','mail','read','readAt','format','UserId','agent','MailInteraction','MailInteractionId','read1stAt','interaction','get','role','null','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','sequelize','Sequelize','QueryTypes','contact','User','fullname','internal','channel','event','fromString','EventManager','acceptmessage','reject','[MAILMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','RejectMessage','rejectMessage','SELECT','email','SIP/%s','motionChannel','download','toString','join','server','tmp','files','message-%s.eml','bcc','subject','createdAt','Attachment','decode','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','Bcc','Attachments','existsSync','push','type','build','writeFileSync','unlinkSync','moment','bluebird','util','path','lodash','ioredis','../../components/parsers/qs','../../config/logger','mail-interactions','../../mysqldb','redis','localhost','socket.io-emitter','./mailMessage.socket','register','client','http','then','info','MailMessage,\x20%s,\x20%s','MailMessage,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','offset','undefined','limit','status','Content-Range','update','destroy','sendStatus','stack','name','index','map','MailMessage','rawAttributes','fieldName','key','model','query','filters','intersection','attributes','fields','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','count','includeAll','include','findAll','show','keys','length','find','body','params','describe','create','direction','out','secret','split','MailAccount','MailAccountId','List','Contacts','updatedAt','DESC','Smtp','isNil','service','host','port','secure','authentication','auth','user','pass','attachments','root','server/files/attachments','basename'];(function(_0x437e80,_0x3434e1){var _0x5d603b=function(_0xe05934){while(--_0xe05934){_0x437e80['push'](_0x437e80['shift']());}};_0x5d603b(++_0x3434e1);}(_0x1d1b,0x17b));var _0xb1d1=function(_0x244d58,_0xad16dc){_0x244d58=_0x244d58-0x0;var _0x153780=_0x1d1b[_0x244d58];return _0x153780;};'use strict';var emlformat=require('eml-format');var moment=require(_0xb1d1('0x0'));var BPromise=require(_0xb1d1('0x1'));var util=require(_0xb1d1('0x2'));var path=require(_0xb1d1('0x3'));var fs=require('fs');var _=require(_0xb1d1('0x4'));var Redis=require(_0xb1d1('0x5'));var htmlToText=require('html-to-text');var qs=require(_0xb1d1('0x6'));var logger=require(_0xb1d1('0x7'))('api');var interaction_log=require(_0xb1d1('0x7'))(_0xb1d1('0x8'));var config=require('../../config/environment');var db=require(_0xb1d1('0x9'))['db'];config[_0xb1d1('0xa')]=_['defaults'](config[_0xb1d1('0xa')],{'host':_0xb1d1('0xb'),'port':0x18eb});var socket=require(_0xb1d1('0xc'))(new Redis(config['redis']));var htmlEntities=require('html-entities');require(_0xb1d1('0xd'))[_0xb1d1('0xe')](socket);var jayson=require('jayson/promise');var client=jayson[_0xb1d1('0xf')][_0xb1d1('0x10')]({'port':0x232c});var client9003=jayson[_0xb1d1('0xf')]['http']({'port':0x232b});var client9002=jayson[_0xb1d1('0xf')]['http']({'port':0x232a});function respondWithRpcPromise(_0x58687f,_0x188150,_0x5d642f,_0x500652){return new BPromise(function(_0x352f13,_0x19f8c5){var _0x3908f2=_0x500652||client;return _0x3908f2['request'](_0x58687f,_0x5d642f)[_0xb1d1('0x11')](function(_0x2409dc){logger[_0xb1d1('0x12')](_0xb1d1('0x13'),_0x188150,'request\x20sent');logger['debug'](_0xb1d1('0x14'),_0x188150,_0xb1d1('0x15'),JSON[_0xb1d1('0x16')](_0x2409dc));if(_0x2409dc[_0xb1d1('0x17')]){if(_0x2409dc[_0xb1d1('0x17')][_0xb1d1('0x18')]===0x1f4){logger[_0xb1d1('0x17')](_0xb1d1('0x13'),_0x188150,_0x2409dc[_0xb1d1('0x17')][_0xb1d1('0x19')]);return _0x19f8c5(_0x2409dc[_0xb1d1('0x17')]['message']);}logger['error']('MailMessage,\x20%s,\x20%s',_0x188150,_0x2409dc[_0xb1d1('0x17')][_0xb1d1('0x19')]);return _0x352f13(_0x2409dc[_0xb1d1('0x17')][_0xb1d1('0x19')]);}else{logger['info'](_0xb1d1('0x13'),_0x188150,_0xb1d1('0x15'));_0x352f13(_0x2409dc[_0xb1d1('0x1a')][_0xb1d1('0x19')]);}})[_0xb1d1('0x1b')](function(_0x16c4fc){logger[_0xb1d1('0x17')](_0xb1d1('0x13'),_0x188150,_0x16c4fc);_0x19f8c5(_0x16c4fc);});});}function respondWithResult(_0x5eaa08,_0x48ceac){_0x48ceac=_0x48ceac||0xc8;return function(_0x215bdc){if(_0x215bdc){return _0x5eaa08['status'](_0x48ceac)['json'](_0x215bdc);}};}function respondWithFilteredResult(_0x57f7e2,_0x5ecc52){return function(_0x41e6a9){if(_0x41e6a9){var _0x2cf6e8=typeof _0x5ecc52[_0xb1d1('0x1c')]===_0xb1d1('0x1d')&&typeof _0x5ecc52[_0xb1d1('0x1e')]===_0xb1d1('0x1d');var _0x14245f=_0x41e6a9['count'];var _0x585363=_0x2cf6e8?0x0:_0x5ecc52[_0xb1d1('0x1c')];var _0x67e145=_0x2cf6e8?_0x41e6a9['count']:_0x5ecc52[_0xb1d1('0x1c')]+_0x5ecc52[_0xb1d1('0x1e')];var _0x5c8d05;if(_0x67e145>=_0x14245f){_0x67e145=_0x14245f;_0x5c8d05=0xc8;}else{_0x5c8d05=0xce;}_0x57f7e2[_0xb1d1('0x1f')](_0x5c8d05);return _0x57f7e2['set'](_0xb1d1('0x20'),_0x585363+'-'+_0x67e145+'/'+_0x14245f)['json'](_0x41e6a9);}return null;};}function saveUpdates(_0x1b1d6f){return function(_0x2f25b1){if(_0x2f25b1){return _0x2f25b1[_0xb1d1('0x21')](_0x1b1d6f)[_0xb1d1('0x11')](function(_0x447ccb){return _0x447ccb;});}return null;};}function removeEntity(_0x2ddc1e){return function(_0x3610bc){if(_0x3610bc){return _0x3610bc[_0xb1d1('0x22')]()['then'](function(){_0x2ddc1e[_0xb1d1('0x1f')](0xcc)['end']();});}};}function handleEntityNotFound(_0x46ede5){return function(_0x59e345){if(!_0x59e345){_0x46ede5[_0xb1d1('0x23')](0x194);}return _0x59e345;};}function handleError(_0x1f0301,_0x2c4702){_0x2c4702=_0x2c4702||0x1f4;return function(_0x15c258){logger[_0xb1d1('0x17')](_0x15c258[_0xb1d1('0x24')]);if(_0x15c258[_0xb1d1('0x25')]){delete _0x15c258[_0xb1d1('0x25')];}_0x1f0301[_0xb1d1('0x1f')](_0x2c4702)['send'](_0x15c258);};}exports[_0xb1d1('0x26')]=function(_0x30c79e,_0x3ee47c){var _0x1816c6={},_0x369504={},_0x3533d7={'count':0x0,'rows':[]};var _0x1f0af7=_[_0xb1d1('0x27')](db[_0xb1d1('0x28')][_0xb1d1('0x29')],function(_0x2db0e9){return{'name':_0x2db0e9[_0xb1d1('0x2a')],'type':_0x2db0e9['type'][_0xb1d1('0x2b')]};});_0x369504[_0xb1d1('0x2c')]=_[_0xb1d1('0x27')](_0x1f0af7,_0xb1d1('0x25'));_0x369504[_0xb1d1('0x2d')]=_['keys'](_0x30c79e['query']);_0x369504[_0xb1d1('0x2e')]=_[_0xb1d1('0x2f')](_0x369504[_0xb1d1('0x2c')],_0x369504[_0xb1d1('0x2d')]);_0x1816c6[_0xb1d1('0x30')]=_[_0xb1d1('0x2f')](_0x369504[_0xb1d1('0x2c')],qs[_0xb1d1('0x31')](_0x30c79e['query'][_0xb1d1('0x31')]));_0x1816c6[_0xb1d1('0x30')]=_0x1816c6[_0xb1d1('0x30')]['length']?_0x1816c6[_0xb1d1('0x30')]:_0x369504[_0xb1d1('0x2c')];if(!_0x30c79e[_0xb1d1('0x2d')]['hasOwnProperty'](_0xb1d1('0x32'))){_0x1816c6[_0xb1d1('0x1e')]=qs[_0xb1d1('0x1e')](_0x30c79e[_0xb1d1('0x2d')]['limit']);_0x1816c6['offset']=qs['offset'](_0x30c79e[_0xb1d1('0x2d')][_0xb1d1('0x1c')]);}_0x1816c6[_0xb1d1('0x33')]=qs[_0xb1d1('0x34')](_0x30c79e[_0xb1d1('0x2d')][_0xb1d1('0x34')]);_0x1816c6[_0xb1d1('0x35')]=qs[_0xb1d1('0x2e')](_[_0xb1d1('0x36')](_0x30c79e[_0xb1d1('0x2d')],_0x369504['filters']),_0x1f0af7);if(_0x30c79e[_0xb1d1('0x2d')][_0xb1d1('0x37')]){_0x1816c6['where']=_[_0xb1d1('0x38')](_0x1816c6[_0xb1d1('0x35')],{'$or':_[_0xb1d1('0x27')](_0x1f0af7,function(_0x238f6b){if(_0x238f6b['type']!==_0xb1d1('0x39')){var _0x115dc4={};_0x115dc4[_0x238f6b[_0xb1d1('0x25')]]={'$like':'%'+_0x30c79e[_0xb1d1('0x2d')][_0xb1d1('0x37')]+'%'};return _0x115dc4;}})});}_0x1816c6=_[_0xb1d1('0x38')]({},_0x1816c6,_0x30c79e[_0xb1d1('0x3a')]);var _0x4cfc8a={'where':_0x1816c6[_0xb1d1('0x35')]};return db[_0xb1d1('0x28')][_0xb1d1('0x3b')](_0x4cfc8a)[_0xb1d1('0x11')](function(_0x23c0b1){_0x3533d7[_0xb1d1('0x3b')]=_0x23c0b1;if(_0x30c79e[_0xb1d1('0x2d')][_0xb1d1('0x3c')]){_0x1816c6[_0xb1d1('0x3d')]=[{'all':!![]}];}return db[_0xb1d1('0x28')][_0xb1d1('0x3e')](_0x1816c6);})[_0xb1d1('0x11')](function(_0x49778d){_0x3533d7['rows']=_0x49778d;return _0x3533d7;})[_0xb1d1('0x11')](respondWithFilteredResult(_0x3ee47c,_0x1816c6))['catch'](handleError(_0x3ee47c,null));};exports[_0xb1d1('0x3f')]=function(_0x1a235a,_0x577f45){var _0x5e36b6={'raw':!![],'where':{'id':_0x1a235a['params']['id']}},_0x4fe765={};_0x4fe765['model']=_[_0xb1d1('0x40')](db[_0xb1d1('0x28')][_0xb1d1('0x29')]);_0x4fe765[_0xb1d1('0x2d')]=_[_0xb1d1('0x40')](_0x1a235a[_0xb1d1('0x2d')]);_0x4fe765['filters']=_['intersection'](_0x4fe765[_0xb1d1('0x2c')],_0x4fe765['query']);_0x5e36b6[_0xb1d1('0x30')]=_[_0xb1d1('0x2f')](_0x4fe765['model'],qs[_0xb1d1('0x31')](_0x1a235a[_0xb1d1('0x2d')][_0xb1d1('0x31')]));_0x5e36b6[_0xb1d1('0x30')]=_0x5e36b6['attributes'][_0xb1d1('0x41')]?_0x5e36b6['attributes']:_0x4fe765[_0xb1d1('0x2c')];if(_0x1a235a[_0xb1d1('0x2d')]['includeAll']){_0x5e36b6[_0xb1d1('0x3d')]=[{'all':!![]}];}_0x5e36b6=_[_0xb1d1('0x38')]({},_0x5e36b6,_0x1a235a[_0xb1d1('0x3a')]);return db[_0xb1d1('0x28')][_0xb1d1('0x42')](_0x5e36b6)['then'](handleEntityNotFound(_0x577f45,null))[_0xb1d1('0x11')](respondWithResult(_0x577f45,null))['catch'](handleError(_0x577f45,null));};exports['update']=function(_0x7a808a,_0x3a6853){if(_0x7a808a['body']['id']){delete _0x7a808a[_0xb1d1('0x43')]['id'];}return db['MailMessage'][_0xb1d1('0x42')]({'where':{'id':_0x7a808a[_0xb1d1('0x44')]['id']}})[_0xb1d1('0x11')](handleEntityNotFound(_0x3a6853,null))[_0xb1d1('0x11')](saveUpdates(_0x7a808a[_0xb1d1('0x43')],null))[_0xb1d1('0x11')](respondWithResult(_0x3a6853,null))[_0xb1d1('0x1b')](handleError(_0x3a6853,null));};exports[_0xb1d1('0x22')]=function(_0x420970,_0x2ca887){return db[_0xb1d1('0x28')][_0xb1d1('0x42')]({'where':{'id':_0x420970[_0xb1d1('0x44')]['id']}})['then'](handleEntityNotFound(_0x2ca887,null))[_0xb1d1('0x11')](removeEntity(_0x2ca887,null))[_0xb1d1('0x1b')](handleError(_0x2ca887,null));};exports[_0xb1d1('0x45')]=function(_0xb432c7,_0x29d533){return db[_0xb1d1('0x28')][_0xb1d1('0x45')]()[_0xb1d1('0x11')](respondWithResult(_0x29d533,null))[_0xb1d1('0x1b')](handleError(_0x29d533,null));};exports[_0xb1d1('0x46')]=function(_0x2c2969,_0x580167){return db[_0xb1d1('0x28')][_0xb1d1('0x46')](_0x2c2969['body'])[_0xb1d1('0x11')](function(_0x3b90d8){if(_0x3b90d8){if(_0x3b90d8[_0xb1d1('0x47')]===_0xb1d1('0x48')&&!_0x3b90d8[_0xb1d1('0x49')]){var _0xada5ab,_0x467554,_0x1eda6d;if(_0x2c2969['body']['to']){_0x467554=_0x2c2969[_0xb1d1('0x43')]['to'][_0xb1d1('0x4a')](',')[0x0];}return db[_0xb1d1('0x4b')]['findOne']({'where':{'id':_0x3b90d8[_0xb1d1('0x4c')]},'include':[{'model':db['CmList'],'as':_0xb1d1('0x4d'),'include':[{'model':db['CmContact'],'as':_0xb1d1('0x4e'),'where':{'email':_0x467554},'limit':0x1,'order':[[_0xb1d1('0x4f'),_0xb1d1('0x50')]]}]},{'model':db['MailServerOut'],'as':_0xb1d1('0x51'),'raw':!![]}]})['then'](function(_0x4d3e7f){_0xada5ab=_0x4d3e7f;if(_0xada5ab&&_0xada5ab[_0xb1d1('0x51')]){var _0x5add0a={'tls':{'rejectUnauthorized':![]}};if(_[_0xb1d1('0x52')](_0xada5ab[_0xb1d1('0x51')][_0xb1d1('0x53')])){_0x5add0a[_0xb1d1('0x54')]=_0xada5ab[_0xb1d1('0x51')][_0xb1d1('0x54')];_0x5add0a[_0xb1d1('0x55')]=_0xada5ab[_0xb1d1('0x51')][_0xb1d1('0x55')];_0x5add0a['secure']=_0xada5ab[_0xb1d1('0x51')][_0xb1d1('0x56')];if(_0xada5ab['Smtp'][_0xb1d1('0x57')]){_0x5add0a[_0xb1d1('0x58')]={'user':_0xada5ab[_0xb1d1('0x51')][_0xb1d1('0x59')],'pass':_0xada5ab[_0xb1d1('0x51')][_0xb1d1('0x5a')]};}}else{_0x5add0a[_0xb1d1('0x53')]=_0xada5ab[_0xb1d1('0x51')][_0xb1d1('0x53')];_0x5add0a[_0xb1d1('0x58')]={'user':_0xada5ab[_0xb1d1('0x51')][_0xb1d1('0x59')],'pass':_0xada5ab[_0xb1d1('0x51')][_0xb1d1('0x5a')]};_0x5add0a[_0xb1d1('0x56')]=_0xada5ab[_0xb1d1('0x51')][_0xb1d1('0x56')];}if(_0x2c2969[_0xb1d1('0x43')]['attachments']&&_0x2c2969[_0xb1d1('0x43')][_0xb1d1('0x5b')][_0xb1d1('0x41')]){for(var _0x1f24a1=0x0;_0x1f24a1<_0x2c2969[_0xb1d1('0x43')][_0xb1d1('0x5b')]['length'];_0x1f24a1+=0x1){_0x2c2969[_0xb1d1('0x43')][_0xb1d1('0x5b')][_0x1f24a1]={'filename':_0x2c2969[_0xb1d1('0x43')]['attachments'][_0x1f24a1][_0xb1d1('0x25')],'path':path['join'](config[_0xb1d1('0x5c')],_0xb1d1('0x5d'),_0x2c2969[_0xb1d1('0x43')][_0xb1d1('0x5b')][_0x1f24a1][_0xb1d1('0x5e')])};}}_0x1eda6d={'account':_0x5add0a,'message':_0x2c2969['body']};return;}})[_0xb1d1('0x11')](function(){if(_0xada5ab['List']){if(_0xada5ab[_0xb1d1('0x4d')]['Contacts'][_0xb1d1('0x41')]){return _0xada5ab[_0xb1d1('0x4d')][_0xb1d1('0x4e')][0x0];}else{return db[_0xb1d1('0x5f')]['create'](_[_0xb1d1('0x60')](_0x2c2969['body'],{'firstName':_0x2c2969['body']['to'],'email':_0x2c2969[_0xb1d1('0x43')]['to'],'phone':_0x2c2969[_0xb1d1('0x43')]['to'],'ListId':_0xada5ab['ListId']}));}}else{throw new Error(_0xb1d1('0x61'));}})[_0xb1d1('0x11')](function(){if(_0x1eda6d){return respondWithRpcPromise(_0xb1d1('0x62'),'sendMail',_0x1eda6d,client9003)[_0xb1d1('0x11')](function(_0x5ec7a1){return _0x3b90d8[_0xb1d1('0x21')]({'read':!![],'messageId':_0x5ec7a1['messageId'],'sentAt':moment()['format'](_0xb1d1('0x63'))});})['catch'](function(_0x553368){logger[_0xb1d1('0x17')]('%s',JSON[_0xb1d1('0x16')](_0x553368));return _0x3b90d8;});}return _0x3b90d8;});}return _0x3b90d8;}})[_0xb1d1('0x11')](respondWithResult(_0x580167,0xc9))[_0xb1d1('0x1b')](handleError(_0x580167,null));};exports[_0xb1d1('0x64')]=function(_0x1d159c,_0x5c526b){var _0x14e91b={'agent':{},'channel':_0xb1d1('0x65')};if(_0x1d159c[_0xb1d1('0x43')]['id']){delete _0x1d159c['body']['id'];}_0x1d159c[_0xb1d1('0x43')][_0xb1d1('0x66')]=!![];_0x1d159c['body'][_0xb1d1('0x67')]=moment()[_0xb1d1('0x68')](_0xb1d1('0x63'));_0x1d159c[_0xb1d1('0x43')]['UserId']=_0x1d159c[_0xb1d1('0x43')][_0xb1d1('0x69')]||_0x1d159c[_0xb1d1('0x59')]['id'];_0x14e91b[_0xb1d1('0x6a')]['id']=_0x1d159c[_0xb1d1('0x43')][_0xb1d1('0x69')];return db[_0xb1d1('0x28')][_0xb1d1('0x42')]({'where':{'id':_0x1d159c['params']['id'],'UserId':null}})[_0xb1d1('0x11')](handleEntityNotFound(_0x5c526b,null))[_0xb1d1('0x11')](saveUpdates(_0x1d159c['body'],null))[_0xb1d1('0x11')](function(_0x22231d){if(_0x22231d){_0x14e91b['message']=_0x22231d['get']({'plain':!![]});return db[_0xb1d1('0x6b')][_0xb1d1('0x42')]({'where':{'id':_0x22231d[_0xb1d1('0x6c')]}});}return null;})[_0xb1d1('0x11')](handleEntityNotFound(_0x5c526b,null))[_0xb1d1('0x11')](function(_0x171a62){if(_0x171a62){return _0x171a62[_0xb1d1('0x21')]({'UserId':_0x1d159c['body'][_0xb1d1('0x69')],'read1stAt':_['isNil'](_0x171a62[_0xb1d1('0x6d')])?moment()['format'](_0xb1d1('0x63')):undefined});}return null;})[_0xb1d1('0x11')](function(_0xe7fdd1){if(_0xe7fdd1){_0x14e91b[_0xb1d1('0x6e')]=_0xe7fdd1[_0xb1d1('0x6f')]({'plain':!![]});interaction_log[_0xb1d1('0x12')]('[MAILMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x1d159c[_0xb1d1('0x59')]['id'],_0x1d159c['user'][_0xb1d1('0x25')],_0x1d159c[_0xb1d1('0x59')][_0xb1d1('0x70')],_0x14e91b['interaction']['id'],_0x1d159c[_0xb1d1('0x43')]?JSON[_0xb1d1('0x16')](_0x1d159c[_0xb1d1('0x43')]):_0xb1d1('0x71'));return respondWithRpcPromise('AcceptMessage','acceptMessage',_0x14e91b);}return null;})[_0xb1d1('0x11')](function(_0x127b4c){var _0x205673=_0xb1d1('0x72')+_0x127b4c[_0xb1d1('0x19')][_0xb1d1('0x73')];return db[_0xb1d1('0x74')][_0xb1d1('0x2d')](_0x205673,{'type':db[_0xb1d1('0x75')][_0xb1d1('0x76')]['SELECT'],'raw':!![]})[_0xb1d1('0x11')](function(_0x2c2b56){return _0x2c2b56;});})[_0xb1d1('0x11')](function(_0x410b87){if(_0x410b87){_0x14e91b['message'][_0xb1d1('0x77')]=_0x410b87[0x0];if(!_0x1d159c[_0xb1d1('0x43')][_0xb1d1('0x69')])return;return db[_0xb1d1('0x78')]['find']({'where':{'id':_0x1d159c['body'][_0xb1d1('0x69')],'role':_0xb1d1('0x6a')},'attributes':['id',_0xb1d1('0x25'),_0xb1d1('0x79'),'email',_0xb1d1('0x7a')],'raw':!![]});}return null;})[_0xb1d1('0x11')](function(_0xbc05f5){if(!_0xbc05f5)return null;_0x14e91b[_0xb1d1('0x19')]['agent']=_0xbc05f5;return _0x14e91b;})[_0xb1d1('0x11')](function(_0x1ba000){if(_0x1ba000){if(_0x1d159c[_0xb1d1('0x43')]['manual']){_0x14e91b['message']['interface']=util[_0xb1d1('0x68')]('SIP/%s',_0x1d159c[_0xb1d1('0x59')][_0xb1d1('0x25')]);_0x14e91b['message'][_0xb1d1('0x7b')]=_0x14e91b[_0xb1d1('0x7b')];_0x14e91b[_0xb1d1('0x19')]['motionChannel']=_0x14e91b[_0xb1d1('0x7b')];_0x14e91b[_0xb1d1('0x19')][_0xb1d1('0x7c')]=_0xb1d1('0x64');_0x14e91b[_0xb1d1('0x19')][_0xb1d1('0x43')]=htmlToText[_0xb1d1('0x7d')](_0x14e91b['message']['body']);return respondWithRpcPromise('EventManager',_0xb1d1('0x7e'),{'event':_0xb1d1('0x7f'),'message':_0x14e91b['message']},client9002)[_0xb1d1('0x11')](function(){return _0x14e91b;});}return _0x14e91b;}return null;})[_0xb1d1('0x11')](respondWithResult(_0x5c526b,null))[_0xb1d1('0x1b')](handleError(_0x5c526b,null));};exports[_0xb1d1('0x80')]=function(_0x4d4118,_0x56ae74){var _0x234ed3={'agent':{},'channel':'mail'};if(_0x4d4118[_0xb1d1('0x43')]['id']){delete _0x4d4118[_0xb1d1('0x43')]['id'];}_0x4d4118[_0xb1d1('0x43')][_0xb1d1('0x69')]=_0x4d4118[_0xb1d1('0x43')][_0xb1d1('0x69')]||_0x4d4118[_0xb1d1('0x59')]['id'];_0x234ed3[_0xb1d1('0x6a')]['id']=_0x4d4118[_0xb1d1('0x43')][_0xb1d1('0x69')];return db['MailMessage'][_0xb1d1('0x42')]({'where':{'id':_0x4d4118['params']['id'],'UserId':null}})[_0xb1d1('0x11')](handleEntityNotFound(_0x56ae74,null))[_0xb1d1('0x11')](function(_0x827542){if(_0x827542){_0x234ed3['message']=_0x827542[_0xb1d1('0x6f')]({'plain':!![]});return db[_0xb1d1('0x6b')]['find']({'where':{'id':_0x827542[_0xb1d1('0x6c')]}});}return null;})[_0xb1d1('0x11')](handleEntityNotFound(_0x56ae74,null))[_0xb1d1('0x11')](function(_0x2dba0c){if(_0x2dba0c){_0x234ed3[_0xb1d1('0x6e')]=_0x2dba0c['get']({'plain':!![]});interaction_log[_0xb1d1('0x12')](_0xb1d1('0x81'),_0x4d4118['user']['id'],_0x4d4118[_0xb1d1('0x59')]['name'],_0x4d4118['user'][_0xb1d1('0x70')],_0x234ed3['interaction']['id'],_0x4d4118[_0xb1d1('0x43')]?JSON[_0xb1d1('0x16')](_0x4d4118[_0xb1d1('0x43')]):_0xb1d1('0x71'));return respondWithRpcPromise(_0xb1d1('0x82'),_0xb1d1('0x83'),_0x234ed3);}return null;})[_0xb1d1('0x11')](function(_0x1416dd){var _0x527d6f=_0xb1d1('0x72')+_0x1416dd['message'][_0xb1d1('0x73')];return db[_0xb1d1('0x74')][_0xb1d1('0x2d')](_0x527d6f,{'type':db[_0xb1d1('0x75')][_0xb1d1('0x76')][_0xb1d1('0x84')],'raw':!![]})[_0xb1d1('0x11')](function(_0x40744d){return _0x40744d;});})[_0xb1d1('0x11')](function(_0x18878e){if(_0x18878e){_0x234ed3[_0xb1d1('0x19')][_0xb1d1('0x77')]=_0x18878e[0x0];if(!_0x4d4118[_0xb1d1('0x43')][_0xb1d1('0x69')])return;return db[_0xb1d1('0x78')][_0xb1d1('0x42')]({'where':{'id':_0x4d4118[_0xb1d1('0x43')][_0xb1d1('0x69')],'role':_0xb1d1('0x6a')},'attributes':['id',_0xb1d1('0x25'),_0xb1d1('0x79'),_0xb1d1('0x85'),_0xb1d1('0x7a')],'raw':!![]});}return null;})[_0xb1d1('0x11')](function(_0x195513){if(!_0x195513)return null;_0x234ed3[_0xb1d1('0x19')]['agent']=_0x195513;return _0x234ed3;})[_0xb1d1('0x11')](function(_0x35ae83){if(_0x35ae83){_0x35ae83[_0xb1d1('0x19')]['interface']=util[_0xb1d1('0x68')](_0xb1d1('0x86'),_0x4d4118[_0xb1d1('0x59')][_0xb1d1('0x25')]);_0x35ae83[_0xb1d1('0x19')]['channel']=_0x234ed3[_0xb1d1('0x7b')];_0x35ae83[_0xb1d1('0x19')][_0xb1d1('0x87')]=_0x234ed3[_0xb1d1('0x7b')];_0x35ae83[_0xb1d1('0x19')]['event']='reject';_0x35ae83[_0xb1d1('0x19')][_0xb1d1('0x43')]=htmlToText[_0xb1d1('0x7d')](_0x234ed3['message'][_0xb1d1('0x43')]);respondWithRpcPromise('EventManager','EventManager',{'event':'rejectmessage','message':_0x35ae83[_0xb1d1('0x19')]},client9002);return _0x234ed3;}return null;})[_0xb1d1('0x11')](respondWithResult(_0x56ae74,null))[_0xb1d1('0x1b')](handleError(_0x56ae74,null));};exports[_0xb1d1('0x88')]=function(_0x8a3d2c,_0x481b2a){var _0x5012ff=moment()['unix']()[_0xb1d1('0x89')]();var _0x1c8d01=path[_0xb1d1('0x8a')](config[_0xb1d1('0x5c')],_0xb1d1('0x8b'),'files',_0xb1d1('0x8c'));var _0x338846=path[_0xb1d1('0x8a')](config['root'],_0xb1d1('0x8b'),_0xb1d1('0x8d'),_0xb1d1('0x5b'));var _0x5921f5=util[_0xb1d1('0x68')](_0xb1d1('0x8e'),_0x5012ff);return db[_0xb1d1('0x28')][_0xb1d1('0x42')]({'where':{'id':_0x8a3d2c[_0xb1d1('0x44')]['id']},'attributes':['id',_0xb1d1('0x43'),'from','to','cc',_0xb1d1('0x8f'),_0xb1d1('0x90'),_0xb1d1('0x91')],'include':_0x8a3d2c[_0xb1d1('0x2d')][_0xb1d1('0x5b')]?[{'model':db[_0xb1d1('0x92')],'as':'Attachments'}]:undefined})['then'](handleEntityNotFound(_0x481b2a,null))[_0xb1d1('0x11')](function(_0x55f7bf){if(_0x55f7bf){var _0x231eb8=_0x55f7bf;var _0xfb8992={'from':_0x231eb8['from'],'to':_0x231eb8['to'],'subject':_0x231eb8['subject'],'html':htmlEntities[_0xb1d1('0x93')](_0x231eb8['body']),'headers':{'Date':moment(_0x231eb8[_0xb1d1('0x91')])[_0xb1d1('0x68')](_0xb1d1('0x94'))},'attachments':[]};if(_0x55f7bf['cc']){_0xfb8992[_0xb1d1('0x95')]['Cc']=_0x55f7bf['cc'];}if(_0x55f7bf[_0xb1d1('0x8f')]){_0xfb8992['headers'][_0xb1d1('0x96')]=_0x55f7bf[_0xb1d1('0x8f')];}return new BPromise(function(_0x1fb8ee,_0x1a3feb){if(_0x55f7bf[_0xb1d1('0x97')]){for(var _0x284903=0x0;_0x284903<_0x55f7bf['Attachments'][_0xb1d1('0x41')];_0x284903++){var _0x5e5fd4=_0x55f7bf['Attachments'][_0x284903];var _0x25638d=path['join'](_0x338846,_0x5e5fd4[_0xb1d1('0x5e')]);if(fs[_0xb1d1('0x98')](_0x25638d)){_0xfb8992[_0xb1d1('0x5b')][_0xb1d1('0x99')]({'name':_0x5e5fd4[_0xb1d1('0x25')],'contentType':_0x5e5fd4[_0xb1d1('0x9a')],'data':fs['readFileSync'](_0x25638d)});}}}emlformat[_0xb1d1('0x9b')](_0xfb8992,function(_0x1e8520,_0x46041a){if(_0x1e8520)return _0x1a3feb(_0x1e8520);fs[_0xb1d1('0x9c')](path['join'](_0x1c8d01,_0x5921f5),_0x46041a);return _0x1fb8ee(_0x46041a);});});}})[_0xb1d1('0x11')](function(_0x3d91d6){if(_0x3d91d6){return _0x481b2a[_0xb1d1('0x88')](path[_0xb1d1('0x8a')](_0x1c8d01,_0x5921f5),_0x5921f5,function(_0x19ca6e){if(!_0x19ca6e)fs[_0xb1d1('0x9d')](path[_0xb1d1('0x8a')](_0x1c8d01,_0x5921f5));});}})['catch'](handleError(_0x481b2a,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1357=['remove','emit','hasOwnProperty','hook','exports','events','../../mysqldb','setMaxListeners','save','update'];(function(_0x2b7e46,_0x25994e){var _0x5e679c=function(_0x59f791){while(--_0x59f791){_0x2b7e46['push'](_0x2b7e46['shift']());}};_0x5e679c(++_0x25994e);}(_0x1357,0x69));var _0x7135=function(_0xcf774d,_0x12b027){_0xcf774d=_0xcf774d-0x0;var _0x456120=_0x1357[_0xcf774d];return _0x456120;};'use strict';var EventEmitter=require(_0x7135('0x0'));var MailMessage=require(_0x7135('0x1'))['db']['MailMessage'];var MailMessageEvents=new EventEmitter();MailMessageEvents[_0x7135('0x2')](0x0);var events={'afterCreate':_0x7135('0x3'),'afterUpdate':_0x7135('0x4'),'afterDestroy':_0x7135('0x5')};function emitEvent(_0x258b00){return function(_0x42782f,_0x3521c5,_0xddc349){MailMessageEvents['emit'](_0x258b00+':'+_0x42782f['id'],_0x42782f);MailMessageEvents[_0x7135('0x6')](_0x258b00,_0x42782f);_0xddc349(null);};}for(var e in events){if(events[_0x7135('0x7')](e)){var event=events[e];MailMessage[_0x7135('0x8')](e,emitEvent(event));}}module[_0x7135('0x9')]=MailMessageEvents;
\ No newline at end of file
+var _0xa5c9=['hasOwnProperty','hook','exports','save','update','remove','emit'];(function(_0x40d2e8,_0x34ddda){var _0x4f90c0=function(_0x43a6e1){while(--_0x43a6e1){_0x40d2e8['push'](_0x40d2e8['shift']());}};_0x4f90c0(++_0x34ddda);}(_0xa5c9,0x199));var _0x9a5c=function(_0x305c31,_0x466b17){_0x305c31=_0x305c31-0x0;var _0x17f39f=_0xa5c9[_0x305c31];return _0x17f39f;};'use strict';var EventEmitter=require('events');var MailMessage=require('../../mysqldb')['db']['MailMessage'];var MailMessageEvents=new EventEmitter();MailMessageEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x9a5c('0x0'),'afterUpdate':_0x9a5c('0x1'),'afterDestroy':_0x9a5c('0x2')};function emitEvent(_0x203c3e){return function(_0x5a8905,_0x4ee273,_0x45c3fe){MailMessageEvents[_0x9a5c('0x3')](_0x203c3e+':'+_0x5a8905['id'],_0x5a8905);MailMessageEvents[_0x9a5c('0x3')](_0x203c3e,_0x5a8905);_0x45c3fe(null);};}for(var e in events){if(events[_0x9a5c('0x4')](e)){var event=events[e];MailMessage[_0x9a5c('0x5')](e,emitEvent(event));}}module[_0x9a5c('0x6')]=MailMessageEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4e71=['lodash','../../config/logger','api','moment','bluebird','request-promise','html-to-text','rimraf','exports','mail_messages','messageId','fti_mail_messages','plainBody','subject','fromString','body','models','get','direction','toLowerCase','out','isNil','UserId','findOne','MailInteractionId','then','update','catch','error','utf8mb4','utf8mb4_unicode_ci'];(function(_0x16051a,_0x5e4326){var _0x35d20d=function(_0x52b02e){while(--_0x52b02e){_0x16051a['push'](_0x16051a['shift']());}};_0x35d20d(++_0x5e4326);}(_0x4e71,0x155));var _0x14e7=function(_0x433eaf,_0x6ada1b){_0x433eaf=_0x433eaf-0x0;var _0x2d7913=_0x4e71[_0x433eaf];return _0x2d7913;};'use strict';var _=require(_0x14e7('0x0'));var util=require('util');var logger=require(_0x14e7('0x1'))(_0x14e7('0x2'));var moment=require(_0x14e7('0x3'));var BPromise=require(_0x14e7('0x4'));var rp=require(_0x14e7('0x5'));var htmlToText=require(_0x14e7('0x6'));var fs=require('fs');var path=require('path');var rimraf=require(_0x14e7('0x7'));var config=require('../../config/environment');var attributes=require('./mailMessage.attributes');module[_0x14e7('0x8')]=function(_0x25355e,_0x125fb0){return _0x25355e['define']('MailMessage',attributes,{'tableName':_0x14e7('0x9'),'paranoid':![],'indexes':[{'name':_0x14e7('0xa'),'fields':['messageId']},{'name':_0x14e7('0xb'),'fields':[_0x14e7('0xc'),_0x14e7('0xd')],'type':'FULLTEXT'}],'timestamps':!![],'hooks':{'beforeCreate':function(_0x21f5f1,_0x4558a9,_0x2f112c){if(_0x21f5f1['body']){_0x21f5f1[_0x14e7('0xc')]=htmlToText[_0x14e7('0xe')](_0x21f5f1[_0x14e7('0xf')],{'preserveNewlines':!![],'singleNewLineParagraphs':!![],'uppercaseHeadings':![],'noLinkBrackets':!![],'ignoreImage':!![]});}_0x2f112c(null,_0x4558a9);},'afterCreate':function(_0x8865bc,_0x1d8c92,_0x2334ef){var _0x588b8e=_0x25355e[_0x14e7('0x10')];var _0x42bd31=_0x8865bc[_0x14e7('0x11')]({'plain':!![]});if(_0x42bd31[_0x14e7('0x12')][_0x14e7('0x13')]()==='in'||_0x42bd31[_0x14e7('0x12')][_0x14e7('0x13')]()===_0x14e7('0x14')&&!_0x42bd31['secret']&&!_[_0x14e7('0x15')](_0x42bd31[_0x14e7('0x16')])){_0x588b8e['MailInteraction'][_0x14e7('0x17')]({'where':{'id':_0x42bd31[_0x14e7('0x18')]}})[_0x14e7('0x19')](function(_0x256149){if(_0x256149){_0x256149[_0x14e7('0x1a')]({'lastMsgAt':_0x42bd31['createdAt'],'lastMsgDirection':_0x42bd31[_0x14e7('0x12')][_0x14e7('0x13')]()});}})[_0x14e7('0x1b')](function(_0x274c8c){console[_0x14e7('0x1c')](_0x274c8c);});}_0x2334ef();}},'charset':_0x14e7('0x1d'),'collate':_0x14e7('0x1e')});};
\ No newline at end of file
+var _0xca30=['createdAt','catch','error','utf8mb4_unicode_ci','lodash','util','../../config/logger','api','moment','bluebird','request-promise','html-to-text','path','rimraf','./mailMessage.attributes','exports','define','MailMessage','mail_messages','messageId','fti_mail_messages','subject','FULLTEXT','fromString','body','models','get','direction','toLowerCase','out','secret','isNil','UserId','MailInteraction','findOne','then'];(function(_0x4af0a8,_0x243483){var _0x13d00c=function(_0x784770){while(--_0x784770){_0x4af0a8['push'](_0x4af0a8['shift']());}};_0x13d00c(++_0x243483);}(_0xca30,0xb8));var _0x0ca3=function(_0x565c49,_0x54acd0){_0x565c49=_0x565c49-0x0;var _0x20ca34=_0xca30[_0x565c49];return _0x20ca34;};'use strict';var _=require(_0x0ca3('0x0'));var util=require(_0x0ca3('0x1'));var logger=require(_0x0ca3('0x2'))(_0x0ca3('0x3'));var moment=require(_0x0ca3('0x4'));var BPromise=require(_0x0ca3('0x5'));var rp=require(_0x0ca3('0x6'));var htmlToText=require(_0x0ca3('0x7'));var fs=require('fs');var path=require(_0x0ca3('0x8'));var rimraf=require(_0x0ca3('0x9'));var config=require('../../config/environment');var attributes=require(_0x0ca3('0xa'));module[_0x0ca3('0xb')]=function(_0x4a261b,_0x116c6d){return _0x4a261b[_0x0ca3('0xc')](_0x0ca3('0xd'),attributes,{'tableName':_0x0ca3('0xe'),'paranoid':![],'indexes':[{'name':_0x0ca3('0xf'),'fields':[_0x0ca3('0xf')]},{'name':_0x0ca3('0x10'),'fields':['plainBody',_0x0ca3('0x11')],'type':_0x0ca3('0x12')}],'timestamps':!![],'hooks':{'beforeCreate':function(_0x5c17ad,_0x4a0a58,_0x201b51){if(_0x5c17ad['body']){_0x5c17ad['plainBody']=htmlToText[_0x0ca3('0x13')](_0x5c17ad[_0x0ca3('0x14')],{'preserveNewlines':!![],'singleNewLineParagraphs':!![],'uppercaseHeadings':![],'noLinkBrackets':!![],'ignoreImage':!![]});}_0x201b51(null,_0x4a0a58);},'afterCreate':function(_0x1ff387,_0x853df1,_0x326e18){var _0x13e9f9=_0x4a261b[_0x0ca3('0x15')];var _0x399499=_0x1ff387[_0x0ca3('0x16')]({'plain':!![]});if(_0x399499[_0x0ca3('0x17')][_0x0ca3('0x18')]()==='in'||_0x399499[_0x0ca3('0x17')][_0x0ca3('0x18')]()===_0x0ca3('0x19')&&!_0x399499[_0x0ca3('0x1a')]&&!_[_0x0ca3('0x1b')](_0x399499[_0x0ca3('0x1c')])){_0x13e9f9[_0x0ca3('0x1d')][_0x0ca3('0x1e')]({'where':{'id':_0x399499['MailInteractionId']}})[_0x0ca3('0x1f')](function(_0x3939ce){if(_0x3939ce){_0x3939ce['update']({'lastMsgAt':_0x399499[_0x0ca3('0x20')],'lastMsgDirection':_0x399499[_0x0ca3('0x17')][_0x0ca3('0x18')]()});}})[_0x0ca3('0x21')](function(_0x37b45d){console[_0x0ca3('0x22')](_0x37b45d);});}_0x326e18();}},'charset':'utf8mb4','collate':_0x0ca3('0x23')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5b12=['MailMessage,\x20%s,\x20%s','request\x20sent','debug','MailMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','CreateMailMessage','create','options','lodash','util','moment','randomstring','../../mysqldb','../../config/utils','rpc','client','defaults','redis','localhost','socket.io-emitter','./mailMessage.socket','register','request','then','info'];(function(_0x9aada2,_0xd2d349){var _0x196dff=function(_0x5ad061){while(--_0x5ad061){_0x9aada2['push'](_0x9aada2['shift']());}};_0x196dff(++_0xd2d349);}(_0x5b12,0xa3));var _0x25b1=function(_0x5e3589,_0x36d466){_0x5e3589=_0x5e3589-0x0;var _0x7f30cf=_0x5b12[_0x5e3589];return _0x7f30cf;};'use strict';var _=require(_0x25b1('0x0'));var util=require(_0x25b1('0x1'));var moment=require(_0x25b1('0x2'));var BPromise=require('bluebird');var rs=require(_0x25b1('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x25b1('0x4'))['db'];var utils=require(_0x25b1('0x5'));var logger=require('../../config/logger')(_0x25b1('0x6'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x25b1('0x7')]['http']({'port':0x232a});config['redis']=_[_0x25b1('0x8')](config[_0x25b1('0x9')],{'host':_0x25b1('0xa'),'port':0x18eb});var socket=require(_0x25b1('0xb'))(new Redis(config[_0x25b1('0x9')]));require(_0x25b1('0xc'))[_0x25b1('0xd')](socket);function respondWithRpcPromise(_0x6235e2,_0x5b7224,_0x2b739e){return new BPromise(function(_0x1c28cf,_0x2cee35){return client[_0x25b1('0xe')](_0x6235e2,_0x2b739e)[_0x25b1('0xf')](function(_0x8a71af){logger[_0x25b1('0x10')](_0x25b1('0x11'),_0x5b7224,_0x25b1('0x12'));logger[_0x25b1('0x13')](_0x25b1('0x14'),_0x5b7224,_0x25b1('0x12'),JSON[_0x25b1('0x15')](_0x8a71af));if(_0x8a71af[_0x25b1('0x16')]){if(_0x8a71af[_0x25b1('0x16')][_0x25b1('0x17')]===0x1f4){logger['error'](_0x25b1('0x11'),_0x5b7224,_0x8a71af[_0x25b1('0x16')]['message']);return _0x2cee35(_0x8a71af[_0x25b1('0x16')][_0x25b1('0x18')]);}logger[_0x25b1('0x16')]('MailMessage,\x20%s,\x20%s',_0x5b7224,_0x8a71af['error'][_0x25b1('0x18')]);return _0x1c28cf(_0x8a71af['error'][_0x25b1('0x18')]);}else{logger[_0x25b1('0x10')](_0x25b1('0x11'),_0x5b7224,_0x25b1('0x12'));_0x1c28cf(_0x8a71af[_0x25b1('0x19')][_0x25b1('0x18')]);}})[_0x25b1('0x1a')](function(_0x292463){logger['error']('MailMessage,\x20%s,\x20%s',_0x5b7224,_0x292463);_0x2cee35(_0x292463);});});}exports[_0x25b1('0x1b')]=function(_0x501dc8){var _0x174f4a=this;return new Promise(function(_0x50ae0f,_0x3bfd7d){return db['MailMessage'][_0x25b1('0x1c')](_0x501dc8['body'],{'raw':_0x501dc8[_0x25b1('0x1d')]?_0x501dc8['options']['raw']===undefined?!![]:![]:!![]})['then'](function(_0x3bca9f){logger[_0x25b1('0x10')]('CreateMailMessage',_0x501dc8);logger[_0x25b1('0x13')](_0x25b1('0x1b'),_0x501dc8,JSON[_0x25b1('0x15')](_0x3bca9f));_0x50ae0f(_0x3bca9f);})[_0x25b1('0x1a')](function(_0x1aabbb){logger['error'](_0x25b1('0x1b'),_0x1aabbb[_0x25b1('0x18')],_0x501dc8);_0x3bfd7d(_0x174f4a[_0x25b1('0x16')](0x1f4,_0x1aabbb[_0x25b1('0x18')]));});});};
\ No newline at end of file
+var _0x2032=['register','request','MailMessage,\x20%s,\x20%s','request\x20sent','error','message','info','result','CreateMailMessage','create','options','then','stringify','catch','util','moment','bluebird','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter'];(function(_0x42bdad,_0x12836c){var _0x122626=function(_0x2eb29c){while(--_0x2eb29c){_0x42bdad['push'](_0x42bdad['shift']());}};_0x122626(++_0x12836c);}(_0x2032,0xd9));var _0x2203=function(_0x5485f1,_0x23a74d){_0x5485f1=_0x5485f1-0x0;var _0x490bf2=_0x2032[_0x5485f1];return _0x490bf2;};'use strict';var _=require('lodash');var util=require(_0x2203('0x0'));var moment=require(_0x2203('0x1'));var BPromise=require(_0x2203('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x2203('0x3'));var db=require(_0x2203('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x2203('0x5'))(_0x2203('0x6'));var config=require(_0x2203('0x7'));var jayson=require(_0x2203('0x8'));var client=jayson[_0x2203('0x9')][_0x2203('0xa')]({'port':0x232a});config[_0x2203('0xb')]=_[_0x2203('0xc')](config[_0x2203('0xb')],{'host':_0x2203('0xd'),'port':0x18eb});var socket=require(_0x2203('0xe'))(new Redis(config['redis']));require('./mailMessage.socket')[_0x2203('0xf')](socket);function respondWithRpcPromise(_0x549908,_0x27081c,_0x2972f3){return new BPromise(function(_0x6339c4,_0x5b19df){return client[_0x2203('0x10')](_0x549908,_0x2972f3)['then'](function(_0x3f690a){logger['info'](_0x2203('0x11'),_0x27081c,_0x2203('0x12'));logger['debug']('MailMessage,\x20%s,\x20%s,\x20%s',_0x27081c,'request\x20sent',JSON['stringify'](_0x3f690a));if(_0x3f690a['error']){if(_0x3f690a[_0x2203('0x13')]['code']===0x1f4){logger['error'](_0x2203('0x11'),_0x27081c,_0x3f690a[_0x2203('0x13')][_0x2203('0x14')]);return _0x5b19df(_0x3f690a[_0x2203('0x13')][_0x2203('0x14')]);}logger[_0x2203('0x13')](_0x2203('0x11'),_0x27081c,_0x3f690a[_0x2203('0x13')][_0x2203('0x14')]);return _0x6339c4(_0x3f690a[_0x2203('0x13')]['message']);}else{logger[_0x2203('0x15')](_0x2203('0x11'),_0x27081c,'request\x20sent');_0x6339c4(_0x3f690a[_0x2203('0x16')][_0x2203('0x14')]);}})['catch'](function(_0x30c6f7){logger['error'](_0x2203('0x11'),_0x27081c,_0x30c6f7);_0x5b19df(_0x30c6f7);});});}exports[_0x2203('0x17')]=function(_0x3c8c34){var _0x3b4034=this;return new Promise(function(_0x15cb1a,_0x449039){return db['MailMessage'][_0x2203('0x18')](_0x3c8c34['body'],{'raw':_0x3c8c34['options']?_0x3c8c34[_0x2203('0x19')]['raw']===undefined?!![]:![]:!![]})[_0x2203('0x1a')](function(_0x5bfe61){logger['info'](_0x2203('0x17'),_0x3c8c34);logger['debug']('CreateMailMessage',_0x3c8c34,JSON[_0x2203('0x1b')](_0x5bfe61));_0x15cb1a(_0x5bfe61);})[_0x2203('0x1c')](function(_0x21f930){logger[_0x2203('0x13')](_0x2203('0x17'),_0x21f930[_0x2203('0x14')],_0x3c8c34);_0x449039(_0x3b4034[_0x2203('0x13')](0x1f4,_0x21f930[_0x2203('0x14')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8bad=['removeListener','register','length','mailMessage:','./mailMessage.events','save','remove','update','emit'];(function(_0x58c50e,_0x573495){var _0x4a8199=function(_0x2f237c){while(--_0x2f237c){_0x58c50e['push'](_0x58c50e['shift']());}};_0x4a8199(++_0x573495);}(_0x8bad,0x124));var _0xd8ba=function(_0x5e92bc,_0x4b0a03){_0x5e92bc=_0x5e92bc-0x0;var _0x386318=_0x8bad[_0x5e92bc];return _0x386318;};'use strict';var MailMessageEvents=require(_0xd8ba('0x0'));var events=[_0xd8ba('0x1'),_0xd8ba('0x2'),_0xd8ba('0x3')];function createListener(_0x3fe6a0,_0x1bbae6){return function(_0x13f56f){_0x1bbae6[_0xd8ba('0x4')](_0x3fe6a0,_0x13f56f);};}function removeListener(_0x42969b,_0x55d8d5){return function(){MailMessageEvents[_0xd8ba('0x5')](_0x42969b,_0x55d8d5);};}exports[_0xd8ba('0x6')]=function(_0x426828){for(var _0x493ff8=0x0,_0x1b43ab=events[_0xd8ba('0x7')];_0x493ff8<_0x1b43ab;_0x493ff8++){var _0x32d554=events[_0x493ff8];var _0x3a0d08=createListener(_0xd8ba('0x8')+_0x32d554,_0x426828);MailMessageEvents['on'](_0x32d554,_0x3a0d08);}};
\ No newline at end of file
+var _0x4c63=['emit','removeListener','register','length','./mailMessage.events','remove','update'];(function(_0x15807f,_0x576d8a){var _0x66fab1=function(_0x3f1062){while(--_0x3f1062){_0x15807f['push'](_0x15807f['shift']());}};_0x66fab1(++_0x576d8a);}(_0x4c63,0xf2));var _0x34c6=function(_0x1b53d5,_0x44c392){_0x1b53d5=_0x1b53d5-0x0;var _0x25dfe1=_0x4c63[_0x1b53d5];return _0x25dfe1;};'use strict';var MailMessageEvents=require(_0x34c6('0x0'));var events=['save',_0x34c6('0x1'),_0x34c6('0x2')];function createListener(_0x1f4d28,_0x1bab2a){return function(_0x316e4a){_0x1bab2a[_0x34c6('0x3')](_0x1f4d28,_0x316e4a);};}function removeListener(_0x4a3fdf,_0x230883){return function(){MailMessageEvents[_0x34c6('0x4')](_0x4a3fdf,_0x230883);};}exports[_0x34c6('0x5')]=function(_0x348889){for(var _0x11b0cf=0x0,_0xeb1cd1=events[_0x34c6('0x6')];_0x11b0cf<_0xeb1cd1;_0x11b0cf++){var _0x572098=events[_0x11b0cf];var _0x46883f=createListener('mailMessage:'+_0x572098,_0x348889);MailMessageEvents['on'](_0x572098,_0x46883f);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x14c9=['/:id/users','getAgents','post','create','addAgents','put','delete','destroy','removeTeams','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','isAuthenticated','index','/describe','describe','get','/:id','show','/:id/members','getMembers','/:id/teams','getTeams'];(function(_0x8c43de,_0x90ff31){var _0xa6591b=function(_0x469716){while(--_0x469716){_0x8c43de['push'](_0x8c43de['shift']());}};_0xa6591b(++_0x90ff31);}(_0x14c9,0x1ea));var _0x914c=function(_0x4e57d4,_0x2f9620){_0x4e57d4=_0x4e57d4-0x0;var _0x527edf=_0x14c9[_0x4e57d4];return _0x527edf;};'use strict';var multer=require(_0x914c('0x0'));var util=require(_0x914c('0x1'));var path=require(_0x914c('0x2'));var timeout=require(_0x914c('0x3'));var express=require(_0x914c('0x4'));var router=express[_0x914c('0x5')]();var fs_extra=require(_0x914c('0x6'));var auth=require(_0x914c('0x7'));var interaction=require(_0x914c('0x8'));var config=require('../../config/environment');var controller=require('./mailQueue.controller');router['get']('/',auth[_0x914c('0x9')](),controller[_0x914c('0xa')]);router['get'](_0x914c('0xb'),auth[_0x914c('0x9')](),controller[_0x914c('0xc')]);router[_0x914c('0xd')](_0x914c('0xe'),auth[_0x914c('0x9')](),controller[_0x914c('0xf')]);router[_0x914c('0xd')](_0x914c('0x10'),auth[_0x914c('0x9')](),controller[_0x914c('0x11')]);router[_0x914c('0xd')](_0x914c('0x12'),auth[_0x914c('0x9')](),controller[_0x914c('0x13')]);router['get'](_0x914c('0x14'),auth[_0x914c('0x9')](),controller[_0x914c('0x15')]);router[_0x914c('0x16')]('/',auth[_0x914c('0x9')](),controller[_0x914c('0x17')]);router['post'](_0x914c('0x12'),auth[_0x914c('0x9')](),controller['addTeams']);router[_0x914c('0x16')](_0x914c('0x14'),auth['isAuthenticated'](),controller[_0x914c('0x18')]);router[_0x914c('0x19')](_0x914c('0xe'),auth[_0x914c('0x9')](),controller['update']);router[_0x914c('0x1a')](_0x914c('0xe'),auth[_0x914c('0x9')](),controller[_0x914c('0x1b')]);router[_0x914c('0x1a')](_0x914c('0x12'),auth[_0x914c('0x9')](),controller[_0x914c('0x1c')]);router[_0x914c('0x1a')]('/:id/users',auth['isAuthenticated'](),controller['removeAgents']);module[_0x914c('0x1d')]=router;
\ No newline at end of file
+var _0xd944=['isAuthenticated','index','/describe','describe','/:id','show','/:id/members','getMembers','/:id/teams','getTeams','create','post','/:id/users','addAgents','put','destroy','delete','removeTeams','removeAgents','exports','multer','util','path','connect-timeout','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./mailQueue.controller','get'];(function(_0x4ec5ee,_0x3056d9){var _0x196410=function(_0x94b1d7){while(--_0x94b1d7){_0x4ec5ee['push'](_0x4ec5ee['shift']());}};_0x196410(++_0x3056d9);}(_0xd944,0x17c));var _0x4d94=function(_0x3c84c2,_0x43519a){_0x3c84c2=_0x3c84c2-0x0;var _0x3ffb36=_0xd944[_0x3c84c2];return _0x3ffb36;};'use strict';var multer=require(_0x4d94('0x0'));var util=require(_0x4d94('0x1'));var path=require(_0x4d94('0x2'));var timeout=require(_0x4d94('0x3'));var express=require('express');var router=express[_0x4d94('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x4d94('0x5'));var interaction=require(_0x4d94('0x6'));var config=require(_0x4d94('0x7'));var controller=require(_0x4d94('0x8'));router[_0x4d94('0x9')]('/',auth[_0x4d94('0xa')](),controller[_0x4d94('0xb')]);router[_0x4d94('0x9')](_0x4d94('0xc'),auth[_0x4d94('0xa')](),controller[_0x4d94('0xd')]);router[_0x4d94('0x9')](_0x4d94('0xe'),auth[_0x4d94('0xa')](),controller[_0x4d94('0xf')]);router[_0x4d94('0x9')](_0x4d94('0x10'),auth[_0x4d94('0xa')](),controller[_0x4d94('0x11')]);router[_0x4d94('0x9')](_0x4d94('0x12'),auth['isAuthenticated'](),controller[_0x4d94('0x13')]);router[_0x4d94('0x9')]('/:id/users',auth[_0x4d94('0xa')](),controller['getAgents']);router['post']('/',auth['isAuthenticated'](),controller[_0x4d94('0x14')]);router['post'](_0x4d94('0x12'),auth['isAuthenticated'](),controller['addTeams']);router[_0x4d94('0x15')](_0x4d94('0x16'),auth[_0x4d94('0xa')](),controller[_0x4d94('0x17')]);router[_0x4d94('0x18')](_0x4d94('0xe'),auth[_0x4d94('0xa')](),controller['update']);router['delete'](_0x4d94('0xe'),auth[_0x4d94('0xa')](),controller[_0x4d94('0x19')]);router[_0x4d94('0x1a')]('/:id/teams',auth[_0x4d94('0xa')](),controller[_0x4d94('0x1b')]);router['delete'](_0x4d94('0x16'),auth[_0x4d94('0xa')](),controller[_0x4d94('0x1c')]);module[_0x4d94('0x1d')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x223f=['name','INTEGER','ENUM','rrmemory','beepall','sequelize','exports','STRING'];(function(_0x594271,_0x1ea360){var _0x4b32f5=function(_0x1ef883){while(--_0x1ef883){_0x594271['push'](_0x594271['shift']());}};_0x4b32f5(++_0x1ea360);}(_0x223f,0xad));var _0xf223=function(_0x17577e,_0x278884){_0x17577e=_0x17577e-0x0;var _0x4a3dd9=_0x223f[_0x17577e];return _0x4a3dd9;};'use strict';var Sequelize=require(_0xf223('0x0'));module[_0xf223('0x1')]={'name':{'type':Sequelize[_0xf223('0x2')],'unique':_0xf223('0x3'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize[_0xf223('0x2')]},'timeout':{'type':Sequelize[_0xf223('0x4')],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0xf223('0x5')](_0xf223('0x6'),_0xf223('0x7'),'roundrobin')}};
\ No newline at end of file
+var _0x8a8a=['name','ENUM','beepall','sequelize','exports','STRING'];(function(_0x2afbb0,_0x44f16d){var _0x411ff2=function(_0x5edd7e){while(--_0x5edd7e){_0x2afbb0['push'](_0x2afbb0['shift']());}};_0x411ff2(++_0x44f16d);}(_0x8a8a,0x17d));var _0xa8a8=function(_0x33f3a0,_0x475a8e){_0x33f3a0=_0x33f3a0-0x0;var _0x4115fd=_0x8a8a[_0x33f3a0];return _0x4115fd;};'use strict';var Sequelize=require(_0xa8a8('0x0'));module[_0xa8a8('0x1')]={'name':{'type':Sequelize[_0xa8a8('0x2')],'unique':_0xa8a8('0x3'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize[_0xa8a8('0x2')]},'timeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0xa8a8('0x4')]('rrmemory',_0xa8a8('0x5'),'roundrobin')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x58ea=['from','team_has_mail_queues','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','MailQueueId\x20=\x20?','clone','push','toString','QueryTypes','SELECT','TeamId','includes','all','compact','value','removeTeams','isEmpty','removeAgents','userMailQueue:remove','addAgents','spread','getAgents','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','./mailQueue.socket','sendStatus','status','end','json','offset','undefined','count','set','apply','reject','save','then','get','MailQueues','UserProfileResource','destroy','error','stack','send','index','map','MailQueue','rawAttributes','fieldName','type','key','model','name','keys','query','attributes','intersection','fields','hasOwnProperty','nolimit','limit','order','filters','pick','filter','where','VIRTUAL','merge','options','rows','catch','length','includeAll','include','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','update','body','params','describe','getMembers','findOne','UserMailQueue','sort','MailQueueId','findAndCountAll','UserId','agent','mailPause','format','SIP','updatedAt','getTeams','Team','addTeams','ids','findAll','User','Agents','online','interface','sequelize','transaction','each','findOrCreate','forEach','emit','userMailQueue:save','select','field','tq.TeamId'];(function(_0x4ede63,_0x2df52b){var _0x2c96c0=function(_0xfd0daa){while(--_0xfd0daa){_0x4ede63['push'](_0x4ede63['shift']());}};_0x2c96c0(++_0x2df52b);}(_0x58ea,0xa7));var _0xa58e=function(_0x55688d,_0x2a076e){_0x55688d=_0x55688d-0x0;var _0x43e67c=_0x58ea[_0x55688d];return _0x43e67c;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xa58e('0x0'));var zipdir=require(_0xa58e('0x1'));var jsonpatch=require(_0xa58e('0x2'));var rp=require(_0xa58e('0x3'));var moment=require(_0xa58e('0x4'));var BPromise=require(_0xa58e('0x5'));var Mustache=require(_0xa58e('0x6'));var util=require(_0xa58e('0x7'));var path=require(_0xa58e('0x8'));var sox=require(_0xa58e('0x9'));var csv=require(_0xa58e('0xa'));var ejs=require(_0xa58e('0xb'));var fs=require('fs');var fs_extra=require(_0xa58e('0xc'));var _=require(_0xa58e('0xd'));var squel=require('squel');var crypto=require(_0xa58e('0xe'));var jsforce=require(_0xa58e('0xf'));var deskjs=require(_0xa58e('0x10'));var toCsv=require('to-csv');var querystring=require(_0xa58e('0x11'));var Papa=require(_0xa58e('0x12'));var Redis=require(_0xa58e('0x13'));var authService=require(_0xa58e('0x14'));var qs=require('../../components/parsers/qs');var as=require(_0xa58e('0x15'));var hardwareService=require(_0xa58e('0x16'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0xa58e('0x17'));var licenseUtil=require(_0xa58e('0x18'));var db=require(_0xa58e('0x19'))['db'];config[_0xa58e('0x1a')]=_[_0xa58e('0x1b')](config[_0xa58e('0x1a')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xa58e('0x1a')]));require(_0xa58e('0x1c'))['register'](socket);function respondWithStatusCode(_0x175c00,_0x286333){_0x286333=_0x286333||0xcc;return function(_0x328306){if(_0x328306){return _0x175c00[_0xa58e('0x1d')](_0x286333);}return _0x175c00[_0xa58e('0x1e')](_0x286333)[_0xa58e('0x1f')]();};}function respondWithResult(_0x4c912a,_0x1e7b9c){_0x1e7b9c=_0x1e7b9c||0xc8;return function(_0x890bd0){if(_0x890bd0){return _0x4c912a[_0xa58e('0x1e')](_0x1e7b9c)[_0xa58e('0x20')](_0x890bd0);}};}function respondWithFilteredResult(_0x4b59a3,_0x438d91){return function(_0x5da167){if(_0x5da167){var _0x2005ff=typeof _0x438d91[_0xa58e('0x21')]==='undefined'&&typeof _0x438d91['limit']===_0xa58e('0x22');var _0x384494=_0x5da167[_0xa58e('0x23')];var _0x3a1a37=_0x2005ff?0x0:_0x438d91[_0xa58e('0x21')];var _0x16f77a=_0x2005ff?_0x5da167[_0xa58e('0x23')]:_0x438d91[_0xa58e('0x21')]+_0x438d91['limit'];var _0x185fbf;if(_0x16f77a>=_0x384494){_0x16f77a=_0x384494;_0x185fbf=0xc8;}else{_0x185fbf=0xce;}_0x4b59a3[_0xa58e('0x1e')](_0x185fbf);return _0x4b59a3[_0xa58e('0x24')]('Content-Range',_0x3a1a37+'-'+_0x16f77a+'/'+_0x384494)[_0xa58e('0x20')](_0x5da167);}return null;};}function patchUpdates(_0x3f674e){return function(_0x38c098){try{jsonpatch[_0xa58e('0x25')](_0x38c098,_0x3f674e,!![]);}catch(_0x3acb3d){return BPromise[_0xa58e('0x26')](_0x3acb3d);}return _0x38c098[_0xa58e('0x27')]();};}function saveUpdates(_0x30a5f1,_0x5cb1c1){return function(_0x3a74c3){if(_0x3a74c3){return _0x3a74c3['update'](_0x30a5f1)[_0xa58e('0x28')](function(_0x56dfe0){return _0x56dfe0;});}return null;};}function removeEntity(_0x4cdd7f,_0x2dc04a){return function(_0x2998e7){if(_0x2998e7){return _0x2998e7['destroy']()[_0xa58e('0x28')](function(){var _0x1d0351=_0x2998e7[_0xa58e('0x29')]({'plain':!![]});var _0x3b2e53=_0xa58e('0x2a');return db[_0xa58e('0x2b')][_0xa58e('0x2c')]({'where':{'type':_0x3b2e53,'resourceId':_0x1d0351['id']}})[_0xa58e('0x28')](function(){return _0x2998e7;});})[_0xa58e('0x28')](function(){_0x4cdd7f[_0xa58e('0x1e')](0xcc)[_0xa58e('0x1f')]();});}};}function handleEntityNotFound(_0x11141e,_0xb0f5e6){return function(_0x303c08){if(!_0x303c08){_0x11141e[_0xa58e('0x1d')](0x194);}return _0x303c08;};}function handleError(_0x4ceb71,_0x59e93b){_0x59e93b=_0x59e93b||0x1f4;return function(_0x380891){logger[_0xa58e('0x2d')](_0x380891[_0xa58e('0x2e')]);if(_0x380891['name']){delete _0x380891['name'];}_0x4ceb71[_0xa58e('0x1e')](_0x59e93b)[_0xa58e('0x2f')](_0x380891);};}exports[_0xa58e('0x30')]=function(_0xfcb505,_0x9f10e3){var _0x19725a={},_0x48c1a5={},_0x5ffc2c={'count':0x0,'rows':[]};var _0x274586=_[_0xa58e('0x31')](db[_0xa58e('0x32')][_0xa58e('0x33')],function(_0x3c7b20){return{'name':_0x3c7b20[_0xa58e('0x34')],'type':_0x3c7b20[_0xa58e('0x35')][_0xa58e('0x36')]};});_0x48c1a5[_0xa58e('0x37')]=_[_0xa58e('0x31')](_0x274586,_0xa58e('0x38'));_0x48c1a5['query']=_[_0xa58e('0x39')](_0xfcb505[_0xa58e('0x3a')]);_0x48c1a5['filters']=_['intersection'](_0x48c1a5[_0xa58e('0x37')],_0x48c1a5['query']);_0x19725a[_0xa58e('0x3b')]=_[_0xa58e('0x3c')](_0x48c1a5[_0xa58e('0x37')],qs[_0xa58e('0x3d')](_0xfcb505[_0xa58e('0x3a')]['fields']));_0x19725a[_0xa58e('0x3b')]=_0x19725a[_0xa58e('0x3b')]['length']?_0x19725a[_0xa58e('0x3b')]:_0x48c1a5[_0xa58e('0x37')];if(!_0xfcb505[_0xa58e('0x3a')][_0xa58e('0x3e')](_0xa58e('0x3f'))){_0x19725a[_0xa58e('0x40')]=qs[_0xa58e('0x40')](_0xfcb505[_0xa58e('0x3a')][_0xa58e('0x40')]);_0x19725a[_0xa58e('0x21')]=qs[_0xa58e('0x21')](_0xfcb505[_0xa58e('0x3a')][_0xa58e('0x21')]);}_0x19725a[_0xa58e('0x41')]=qs['sort'](_0xfcb505[_0xa58e('0x3a')]['sort']);_0x19725a['where']=qs[_0xa58e('0x42')](_[_0xa58e('0x43')](_0xfcb505[_0xa58e('0x3a')],_0x48c1a5[_0xa58e('0x42')]),_0x274586);if(_0xfcb505[_0xa58e('0x3a')][_0xa58e('0x44')]){_0x19725a['where']=_['merge'](_0x19725a[_0xa58e('0x45')],{'$or':_[_0xa58e('0x31')](_0x274586,function(_0x3c05d6){if(_0x3c05d6[_0xa58e('0x35')]!==_0xa58e('0x46')){var _0x2eab77={};_0x2eab77[_0x3c05d6[_0xa58e('0x38')]]={'$like':'%'+_0xfcb505[_0xa58e('0x3a')][_0xa58e('0x44')]+'%'};return _0x2eab77;}})});}_0x19725a=_[_0xa58e('0x47')]({},_0x19725a,_0xfcb505[_0xa58e('0x48')]);var _0x2bc366={'where':_0x19725a['where']};return db[_0xa58e('0x32')][_0xa58e('0x23')](_0x2bc366)[_0xa58e('0x28')](function(_0x2afdc8){_0x5ffc2c[_0xa58e('0x23')]=_0x2afdc8;if(_0xfcb505['query']['includeAll']){_0x19725a['include']=[{'all':!![]}];}return db[_0xa58e('0x32')]['findAll'](_0x19725a);})[_0xa58e('0x28')](function(_0x1177ca){_0x5ffc2c[_0xa58e('0x49')]=_0x1177ca;return _0x5ffc2c;})[_0xa58e('0x28')](respondWithFilteredResult(_0x9f10e3,_0x19725a))[_0xa58e('0x4a')](handleError(_0x9f10e3,null));};exports['show']=function(_0x51b6ea,_0x37a11f){var _0x436dba={'raw':!![],'where':{'id':_0x51b6ea['params']['id']}},_0xa3c42={};_0xa3c42[_0xa58e('0x37')]=_[_0xa58e('0x39')](db[_0xa58e('0x32')]['rawAttributes']);_0xa3c42[_0xa58e('0x3a')]=_[_0xa58e('0x39')](_0x51b6ea[_0xa58e('0x3a')]);_0xa3c42[_0xa58e('0x42')]=_['intersection'](_0xa3c42['model'],_0xa3c42[_0xa58e('0x3a')]);_0x436dba[_0xa58e('0x3b')]=_['intersection'](_0xa3c42[_0xa58e('0x37')],qs[_0xa58e('0x3d')](_0x51b6ea['query'][_0xa58e('0x3d')]));_0x436dba[_0xa58e('0x3b')]=_0x436dba['attributes'][_0xa58e('0x4b')]?_0x436dba['attributes']:_0xa3c42[_0xa58e('0x37')];if(_0x51b6ea[_0xa58e('0x3a')][_0xa58e('0x4c')]){_0x436dba[_0xa58e('0x4d')]=[{'all':!![]}];}_0x436dba=_[_0xa58e('0x47')]({},_0x436dba,_0x51b6ea['options']);return db[_0xa58e('0x32')][_0xa58e('0x4e')](_0x436dba)['then'](handleEntityNotFound(_0x37a11f,null))[_0xa58e('0x28')](respondWithResult(_0x37a11f,null))[_0xa58e('0x4a')](handleError(_0x37a11f,null));};exports[_0xa58e('0x4f')]=function(_0x280004,_0x38d1cb){return db['MailQueue'][_0xa58e('0x4f')](_0x280004['body'],{})[_0xa58e('0x28')](function(_0x1f3aaa){var _0x550464=_0x280004[_0xa58e('0x50')]['get']({'plain':!![]});if(!_0x550464)throw new Error(_0xa58e('0x51'));if(_0x550464[_0xa58e('0x52')]==='user'){var _0x410ce8=_0x1f3aaa[_0xa58e('0x29')]({'plain':!![]});var _0x1d26e9='MailQueues';return db[_0xa58e('0x53')]['find']({'where':{'name':_0x1d26e9,'userProfileId':_0x550464[_0xa58e('0x54')]},'raw':!![]})[_0xa58e('0x28')](function(_0x29a22e){if(_0x29a22e&&_0x29a22e[_0xa58e('0x55')]===0x0){return db['UserProfileResource'][_0xa58e('0x4f')]({'name':_0x410ce8[_0xa58e('0x38')],'resourceId':_0x410ce8['id'],'type':_0x29a22e[_0xa58e('0x38')],'sectionId':_0x29a22e['id']},{})['then'](function(){return _0x1f3aaa;});}else{return _0x1f3aaa;}})['catch'](function(_0x3b0dd6){logger[_0xa58e('0x2d')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x3b0dd6);throw _0x3b0dd6;});}return _0x1f3aaa;})[_0xa58e('0x28')](respondWithResult(_0x38d1cb,0xc9))['catch'](handleError(_0x38d1cb,null));};exports[_0xa58e('0x56')]=function(_0x2ced1f,_0x3a0c45){if(_0x2ced1f[_0xa58e('0x57')]['id']){delete _0x2ced1f[_0xa58e('0x57')]['id'];}return db[_0xa58e('0x32')][_0xa58e('0x4e')]({'where':{'id':_0x2ced1f[_0xa58e('0x58')]['id']}})[_0xa58e('0x28')](handleEntityNotFound(_0x3a0c45,null))[_0xa58e('0x28')](saveUpdates(_0x2ced1f['body'],null))[_0xa58e('0x28')](respondWithResult(_0x3a0c45,null))[_0xa58e('0x4a')](handleError(_0x3a0c45,null));};exports[_0xa58e('0x2c')]=function(_0x531cf7,_0xf016b9){return db[_0xa58e('0x32')][_0xa58e('0x4e')]({'where':{'id':_0x531cf7[_0xa58e('0x58')]['id']}})[_0xa58e('0x28')](handleEntityNotFound(_0xf016b9,null))[_0xa58e('0x28')](removeEntity(_0xf016b9,null))['catch'](handleError(_0xf016b9,null));};exports[_0xa58e('0x59')]=function(_0x2338a5,_0x42723e){return db[_0xa58e('0x32')][_0xa58e('0x59')]()[_0xa58e('0x28')](respondWithResult(_0x42723e,null))['catch'](handleError(_0x42723e,null));};exports[_0xa58e('0x5a')]=function(_0x72a01a,_0xf832d,_0x211871){var _0x1288c9={'raw':!![],'where':{}},_0x3084b3={},_0x3339f4;return db[_0xa58e('0x32')][_0xa58e('0x5b')]({'where':{'id':_0x72a01a[_0xa58e('0x58')]['id']}})['then'](handleEntityNotFound(_0xf832d,null))[_0xa58e('0x28')](function(_0x55777c){if(_0x55777c){_0x3339f4=_0x55777c[_0xa58e('0x29')]({'plain':!![]});_0x3084b3[_0xa58e('0x37')]=_[_0xa58e('0x39')](db[_0xa58e('0x5c')][_0xa58e('0x33')]);_0x3084b3[_0xa58e('0x3a')]=_[_0xa58e('0x39')](_0x72a01a[_0xa58e('0x3a')]);_0x3084b3[_0xa58e('0x42')]=_[_0xa58e('0x3c')](_0x3084b3[_0xa58e('0x37')],_0x3084b3[_0xa58e('0x3a')]);_0x1288c9[_0xa58e('0x3b')]=_[_0xa58e('0x3c')](_0x3084b3['model'],qs[_0xa58e('0x3d')](_0x72a01a[_0xa58e('0x3a')]['fields']));_0x1288c9[_0xa58e('0x3b')]=_0x1288c9['attributes'][_0xa58e('0x4b')]?_0x1288c9['attributes']:_0x3084b3['model'];if(!_0x72a01a[_0xa58e('0x3a')][_0xa58e('0x3e')](_0xa58e('0x3f'))){_0x1288c9[_0xa58e('0x40')]=qs[_0xa58e('0x40')](_0x72a01a[_0xa58e('0x3a')][_0xa58e('0x40')]);_0x1288c9['offset']=qs[_0xa58e('0x21')](_0x72a01a[_0xa58e('0x3a')][_0xa58e('0x21')]);}_0x1288c9[_0xa58e('0x41')]=qs[_0xa58e('0x5d')](_0x72a01a[_0xa58e('0x3a')][_0xa58e('0x5d')]);_0x1288c9[_0xa58e('0x45')]=qs[_0xa58e('0x42')](_['pick'](_0x72a01a['query'],_0x3084b3['filters']));_0x1288c9[_0xa58e('0x45')][_0xa58e('0x5e')]=_0x55777c['id'];if(_0x72a01a[_0xa58e('0x3a')]['filter']){_0x1288c9[_0xa58e('0x45')]=_[_0xa58e('0x47')](_0x1288c9[_0xa58e('0x45')],{'$or':_['map'](_0x1288c9['attributes'],function(_0x22064a){var _0x4ac1cd={};_0x4ac1cd[_0x22064a]={'$like':'%'+_0x72a01a[_0xa58e('0x3a')][_0xa58e('0x44')]+'%'};return _0x4ac1cd;})});}_0x1288c9=_['merge']({},_0x1288c9,_0x72a01a[_0xa58e('0x48')]);return db[_0xa58e('0x5c')]['findAll'](_0x1288c9);}})[_0xa58e('0x28')](function(_0x25f1c7){if(_0x25f1c7){return db['User'][_0xa58e('0x5f')]({'where':{'id':_[_0xa58e('0x31')](_0x25f1c7,_0xa58e('0x60')),'role':_0xa58e('0x61')},'attributes':['id',_0xa58e('0x38'),_0xa58e('0x62'),'updatedAt','createdAt']});}})[_0xa58e('0x28')](function(_0x3955a4){if(_0x3955a4){return{'count':_0x3955a4[_0xa58e('0x23')],'rows':_[_0xa58e('0x31')](_0x3955a4['rows'],function(_0x46e94c){return{'membername':_0x46e94c[_0xa58e('0x38')],'UserId':_0x46e94c['id'],'queue_name':_0x3339f4[_0xa58e('0x38')],'MailQueueId':_0x3339f4['id'],'interface':util[_0xa58e('0x63')]('%s/%s',_0xa58e('0x64'),_0x46e94c['name']),'penalty':0x0,'paused':_0x46e94c['mailPause'],'createdAt':_0x46e94c['createdAt'],'updatedAt':_0x46e94c[_0xa58e('0x65')]};})};}else{return{'count':0x0,'rows':[]};}})[_0xa58e('0x28')](respondWithFilteredResult(_0xf832d,_0x1288c9))[_0xa58e('0x4a')](handleError(_0xf832d,null));};exports[_0xa58e('0x66')]=function(_0x2caabb,_0x2be860,_0x32cd74){var _0x360470={};var _0x28b3b4={};var _0x53a686;var _0x2b8788;return db[_0xa58e('0x32')][_0xa58e('0x5b')]({'where':{'id':_0x2caabb[_0xa58e('0x58')]['id']}})[_0xa58e('0x28')](handleEntityNotFound(_0x2be860,null))['then'](function(_0x27cc9f){if(_0x27cc9f){_0x53a686=_0x27cc9f;_0x28b3b4['model']=_[_0xa58e('0x39')](db[_0xa58e('0x67')][_0xa58e('0x33')]);_0x28b3b4[_0xa58e('0x3a')]=_[_0xa58e('0x39')](_0x2caabb[_0xa58e('0x3a')]);_0x28b3b4[_0xa58e('0x42')]=_['intersection'](_0x28b3b4[_0xa58e('0x37')],_0x28b3b4['query']);_0x360470[_0xa58e('0x3b')]=_[_0xa58e('0x3c')](_0x28b3b4[_0xa58e('0x37')],qs[_0xa58e('0x3d')](_0x2caabb[_0xa58e('0x3a')][_0xa58e('0x3d')]));_0x360470['attributes']=_0x360470[_0xa58e('0x3b')]['length']?_0x360470[_0xa58e('0x3b')]:_0x28b3b4[_0xa58e('0x37')];_0x360470['order']=qs[_0xa58e('0x5d')](_0x2caabb['query'][_0xa58e('0x5d')]);_0x360470[_0xa58e('0x45')]=qs[_0xa58e('0x42')](_['pick'](_0x2caabb['query'],_0x28b3b4['filters']));if(_0x2caabb[_0xa58e('0x3a')][_0xa58e('0x44')]){_0x360470[_0xa58e('0x45')]=_[_0xa58e('0x47')](_0x360470[_0xa58e('0x45')],{'$or':_[_0xa58e('0x31')](_0x360470[_0xa58e('0x3b')],function(_0x316fb6){var _0x277254={};_0x277254[_0x316fb6]={'$like':'%'+_0x2caabb['query'][_0xa58e('0x44')]+'%'};return _0x277254;})});}_0x360470=_[_0xa58e('0x47')]({},_0x360470,_0x2caabb[_0xa58e('0x48')]);return _0x53a686[_0xa58e('0x66')](_0x360470);}})[_0xa58e('0x28')](function(_0x30c998){if(_0x30c998){_0x2b8788=_0x30c998[_0xa58e('0x4b')];if(!_0x2caabb[_0xa58e('0x3a')][_0xa58e('0x3e')](_0xa58e('0x3f'))){_0x360470[_0xa58e('0x40')]=qs[_0xa58e('0x40')](_0x2caabb[_0xa58e('0x3a')]['limit']);_0x360470[_0xa58e('0x21')]=qs['offset'](_0x2caabb[_0xa58e('0x3a')][_0xa58e('0x21')]);}return _0x53a686[_0xa58e('0x66')](_0x360470);}})[_0xa58e('0x28')](function(_0x1b75da){if(_0x1b75da){return _0x1b75da?{'count':_0x2b8788,'rows':_0x1b75da}:null;}})[_0xa58e('0x28')](respondWithResult(_0x2be860,null))['catch'](handleError(_0x2be860,null));};exports[_0xa58e('0x68')]=function(_0x136616,_0x53c58b,_0x485391){var _0x15e58b=_0x136616['body'][_0xa58e('0x69')];return db[_0xa58e('0x67')][_0xa58e('0x6a')]({'where':{'id':_0x15e58b},'attributes':['id'],'include':[{'model':db[_0xa58e('0x6b')],'as':_0xa58e('0x6c'),'attributes':['id',_0xa58e('0x38'),_0xa58e('0x6d'),'voicePause',_0xa58e('0x6e')],'raw':!![]}]})[_0xa58e('0x28')](function(_0x329e96){if(_0x329e96){var _0x3c7f61=_['flatMap'](_0x329e96,function(_0x423662){var _0x124bc2=_0x423662['get']({'plain':!![]});return _0x124bc2['Agents'];});return db['MailQueue'][_0xa58e('0x4e')]({'where':{'id':_0x136616['params']['id']}})['then'](function(_0xb6698d){return db[_0xa58e('0x6f')][_0xa58e('0x70')](function(_0x1ca247){return _0xb6698d[_0xa58e('0x68')](_0x15e58b,{'transaction':_0x1ca247})['then'](function(){return BPromise[_0xa58e('0x71')](_0x3c7f61,function(_0x598093){return db[_0xa58e('0x5c')][_0xa58e('0x72')]({'where':{'UserId':_0x598093['id'],'MailQueueId':_0x136616[_0xa58e('0x58')]['id']},'transaction':_0x1ca247});});})[_0xa58e('0x28')](function(){_0x3c7f61[_0xa58e('0x73')](function(_0x2bad5e){socket[_0xa58e('0x74')](_0xa58e('0x75'),{'UserId':_0x2bad5e['id'],'MailQueueId':_0xb6698d['id']});});});});});}})[_0xa58e('0x28')](respondWithStatusCode(_0x53c58b,null))[_0xa58e('0x4a')](handleError(_0x53c58b,null));};exports['removeTeams']=function(_0x31dc36,_0x2704d5,_0x1bbbdf){return db['Team'][_0xa58e('0x6a')]({'where':{'id':_0x31dc36[_0xa58e('0x3a')][_0xa58e('0x69')]},'attributes':['id'],'include':[{'model':db[_0xa58e('0x6b')],'as':_0xa58e('0x6c'),'attributes':['id'],'raw':!![]}]})['then'](handleEntityNotFound(_0x2704d5,null))[_0xa58e('0x28')](function(_0x5ca32e){var _0x2975c3=_[_0xa58e('0x31')](_0x5ca32e,'id');var _0x2a3211=[];var _0x523e62=[];var _0x2493f3=squel[_0xa58e('0x76')]();_0x2493f3[_0xa58e('0x77')](_0xa58e('0x78'))[_0xa58e('0x79')](_0xa58e('0x7a'),'tq')[_0xa58e('0x7b')](_0xa58e('0x7c'),'ut',_0xa58e('0x7d'))[_0xa58e('0x45')](_0xa58e('0x7e'),_0x31dc36[_0xa58e('0x58')]['id']);for(var _0x28a789=0x0;_0x28a789<_0x5ca32e[_0xa58e('0x4b')];_0x28a789+=0x1){let _0x22a438=_0x5ca32e[_0x28a789];for(var _0xbd8891=0x0;_0xbd8891<_0x22a438[_0xa58e('0x6c')][_0xa58e('0x4b')];_0xbd8891+=0x1){let _0x3f5651=_0x22a438['Agents'][_0xbd8891];var _0x5cf977=_0x2493f3[_0xa58e('0x7f')]();_0x5cf977[_0xa58e('0x45')]('ut.UserId\x20=\x20?',_0x3f5651['id']);_0x523e62[_0xa58e('0x80')](db[_0xa58e('0x6f')][_0xa58e('0x3a')](_0x5cf977[_0xa58e('0x81')](),{'type':db['sequelize'][_0xa58e('0x82')][_0xa58e('0x83')]})[_0xa58e('0x28')](function(_0x10ce06){if(_0x10ce06[_0xa58e('0x4b')]===0x1){return _0x3f5651['id'];}else{var _0x21bc84=_['every'](_['map'](_0x10ce06,_0xa58e('0x84')),function(_0x1f4170){return _[_0xa58e('0x85')](_0x2975c3,_0x1f4170);});if(_0x21bc84){return _0x3f5651['id'];}}}));}}return BPromise[_0xa58e('0x86')](_0x523e62)['then'](function(_0x1454b6){_0x2a3211=_(_0x2a3211)['union'](_0x1454b6)[_0xa58e('0x87')]()[_0xa58e('0x88')]();return db[_0xa58e('0x32')]['find']({'where':{'id':_0x31dc36['params']['id']}})[_0xa58e('0x28')](function(_0x40b2c7){return db[_0xa58e('0x6f')][_0xa58e('0x70')](function(_0x18352f){return _0x40b2c7[_0xa58e('0x89')](_0x31dc36[_0xa58e('0x3a')][_0xa58e('0x69')],{'transaction':_0x18352f})[_0xa58e('0x28')](function(){if(!_[_0xa58e('0x8a')](_0x2a3211)){return _0x40b2c7[_0xa58e('0x8b')](_0x2a3211,{'transaction':_0x18352f});}})['then'](function(){_0x2a3211['forEach'](function(_0x52445a){socket[_0xa58e('0x74')](_0xa58e('0x8c'),{'UserId':_0x52445a,'MailQueueId':_0x40b2c7['id']});});});});});});})[_0xa58e('0x28')](respondWithStatusCode(_0x2704d5,null))['catch'](handleError(_0x2704d5,null));};exports[_0xa58e('0x8d')]=function(_0x4934a4,_0x299898,_0x19afc7){return db['MailQueue']['find']({'where':{'id':_0x4934a4[_0xa58e('0x58')]['id']}})[_0xa58e('0x28')](handleEntityNotFound(_0x299898,null))[_0xa58e('0x28')](function(_0x52f318){if(_0x52f318){return _0x52f318[_0xa58e('0x8d')](_0x4934a4[_0xa58e('0x57')][_0xa58e('0x69')],_['omit'](_0x4934a4['body'],[_0xa58e('0x69'),'id'])||{})[_0xa58e('0x8e')](function(_0x271ac2){for(var _0xf67b4d=0x0;_0xf67b4d<_0x4934a4[_0xa58e('0x57')][_0xa58e('0x69')][_0xa58e('0x4b')];_0xf67b4d+=0x1){socket[_0xa58e('0x74')](_0xa58e('0x75'),{'UserId':Number(_0x4934a4[_0xa58e('0x57')]['ids'][_0xf67b4d]),'MailQueueId':Number(_0x4934a4[_0xa58e('0x58')]['id'])});}return _0x271ac2;});}})[_0xa58e('0x28')](respondWithResult(_0x299898,null))[_0xa58e('0x4a')](handleError(_0x299898,null));};exports[_0xa58e('0x8b')]=function(_0x539108,_0x39cbbd,_0x1c63a3){return db[_0xa58e('0x32')][_0xa58e('0x4e')]({'where':{'id':_0x539108['params']['id']}})['then'](handleEntityNotFound(_0x39cbbd,null))['then'](function(_0x37a424){if(_0x37a424){return _0x37a424['removeAgents'](_0x539108[_0xa58e('0x3a')][_0xa58e('0x69')])[_0xa58e('0x28')](function(){if(_['isArray'](_0x539108[_0xa58e('0x3a')][_0xa58e('0x69')])){for(var _0x2148cb=0x0;_0x2148cb<_0x539108['query'][_0xa58e('0x69')][_0xa58e('0x4b')];_0x2148cb+=0x1){socket[_0xa58e('0x74')](_0xa58e('0x8c'),{'UserId':Number(_0x539108[_0xa58e('0x3a')]['ids'][_0x2148cb]),'MailQueueId':Number(_0x539108[_0xa58e('0x58')]['id'])});}}else{socket[_0xa58e('0x74')]('userMailQueue:remove',{'UserId':Number(_0x539108['query']['ids']),'MailQueueId':Number(_0x539108['params']['id'])});}});}})[_0xa58e('0x28')](respondWithStatusCode(_0x39cbbd,null))['catch'](handleError(_0x39cbbd,null));};exports[_0xa58e('0x8f')]=function(_0x4ed645,_0x30eb2c,_0x963935){var _0x559613={};var _0x258655={};var _0x3672e0;var _0x539a2d;return db[_0xa58e('0x32')]['findOne']({'where':{'id':_0x4ed645[_0xa58e('0x58')]['id']}})[_0xa58e('0x28')](handleEntityNotFound(_0x30eb2c,null))[_0xa58e('0x28')](function(_0xe27aeb){if(_0xe27aeb){_0x3672e0=_0xe27aeb;_0x258655[_0xa58e('0x37')]=_[_0xa58e('0x39')](db['User'][_0xa58e('0x33')]);_0x258655[_0xa58e('0x3a')]=_['keys'](_0x4ed645['query']);_0x258655[_0xa58e('0x42')]=_[_0xa58e('0x3c')](_0x258655[_0xa58e('0x37')],_0x258655['query']);_0x559613[_0xa58e('0x3b')]=_[_0xa58e('0x3c')](_0x258655[_0xa58e('0x37')],qs[_0xa58e('0x3d')](_0x4ed645[_0xa58e('0x3a')][_0xa58e('0x3d')]));_0x559613[_0xa58e('0x3b')]=_0x559613['attributes'][_0xa58e('0x4b')]?_0x559613['attributes']:_0x258655[_0xa58e('0x37')];_0x559613[_0xa58e('0x41')]=qs[_0xa58e('0x5d')](_0x4ed645[_0xa58e('0x3a')]['sort']);_0x559613['where']=qs['filters'](_[_0xa58e('0x43')](_0x4ed645['query'],_0x258655[_0xa58e('0x42')]));if(_0x4ed645['query'][_0xa58e('0x44')]){_0x559613[_0xa58e('0x45')]=_['merge'](_0x559613['where'],{'$or':_[_0xa58e('0x31')](_0x559613['attributes'],function(_0x1b56d6){var _0xee816c={};_0xee816c[_0x1b56d6]={'$like':'%'+_0x4ed645['query']['filter']+'%'};return _0xee816c;})});}_0x559613=_[_0xa58e('0x47')]({},_0x559613,_0x4ed645[_0xa58e('0x48')]);return _0x3672e0['getAgents'](_0x559613);}})[_0xa58e('0x28')](function(_0x56c13b){if(_0x56c13b){_0x539a2d=_0x56c13b[_0xa58e('0x4b')];if(!_0x4ed645[_0xa58e('0x3a')][_0xa58e('0x3e')]('nolimit')){_0x559613[_0xa58e('0x40')]=qs[_0xa58e('0x40')](_0x4ed645[_0xa58e('0x3a')][_0xa58e('0x40')]);_0x559613[_0xa58e('0x21')]=qs[_0xa58e('0x21')](_0x4ed645[_0xa58e('0x3a')][_0xa58e('0x21')]);}return _0x3672e0[_0xa58e('0x8f')](_0x559613);}})['then'](function(_0x491063){if(_0x491063){return _0x491063?{'count':_0x539a2d,'rows':_0x491063}:null;}})[_0xa58e('0x28')](respondWithResult(_0x30eb2c,null))[_0xa58e('0x4a')](handleError(_0x30eb2c,null));};
\ No newline at end of file
+var _0x6a24=['type','VIRTUAL','options','include','rows','catch','show','length','includeAll','find','create','body','user','MailQueues','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','describe','findOne','UserMailQueue','nolimit','order','MailQueueId','findAll','findAndCountAll','UserId','agent','mailPause','updatedAt','createdAt','format','getTeams','Team','addTeams','User','Agents','online','voicePause','flatMap','sequelize','each','findOrCreate','forEach','userMailQueue:save','removeTeams','ids','select','tq.TeamId','from','team_has_mail_queues','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','MailQueueId\x20=\x20?','ut.UserId\x20=\x20?','toString','QueryTypes','SELECT','includes','all','compact','value','transaction','isEmpty','removeAgents','emit','userMailQueue:remove','addAgents','omit','isArray','getAgents','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','ejs','fs-extra','crypto','jsforce','to-csv','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','redis','defaults','localhost','socket.io-emitter','./mailQueue.socket','register','end','status','offset','limit','undefined','count','set','json','apply','reject','save','update','then','destroy','get','UserProfileResource','sendStatus','error','name','send','index','map','MailQueue','rawAttributes','key','model','query','keys','intersection','attributes','fields','hasOwnProperty','sort','where','filters','pick','filter','merge'];(function(_0x203917,_0x2eec89){var _0xfe18a0=function(_0x2cbc34){while(--_0x2cbc34){_0x203917['push'](_0x203917['shift']());}};_0xfe18a0(++_0x2eec89);}(_0x6a24,0xd1));var _0x46a2=function(_0x1cd753,_0x5737b9){_0x1cd753=_0x1cd753-0x0;var _0xa11a70=_0x6a24[_0x1cd753];return _0xa11a70;};'use strict';var emlformat=require(_0x46a2('0x0'));var rimraf=require(_0x46a2('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x46a2('0x2'));var rp=require(_0x46a2('0x3'));var moment=require(_0x46a2('0x4'));var BPromise=require(_0x46a2('0x5'));var Mustache=require(_0x46a2('0x6'));var util=require('util');var path=require(_0x46a2('0x7'));var sox=require(_0x46a2('0x8'));var csv=require('to-csv');var ejs=require(_0x46a2('0x9'));var fs=require('fs');var fs_extra=require(_0x46a2('0xa'));var _=require('lodash');var squel=require('squel');var crypto=require(_0x46a2('0xb'));var jsforce=require(_0x46a2('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x46a2('0xd'));var querystring=require('querystring');var Papa=require(_0x46a2('0xe'));var Redis=require('ioredis');var authService=require(_0x46a2('0xf'));var qs=require(_0x46a2('0x10'));var as=require(_0x46a2('0x11'));var hardwareService=require(_0x46a2('0x12'));var logger=require(_0x46a2('0x13'))(_0x46a2('0x14'));var utils=require(_0x46a2('0x15'));var config=require(_0x46a2('0x16'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config[_0x46a2('0x17')]=_[_0x46a2('0x18')](config['redis'],{'host':_0x46a2('0x19'),'port':0x18eb});var socket=require(_0x46a2('0x1a'))(new Redis(config[_0x46a2('0x17')]));require(_0x46a2('0x1b'))[_0x46a2('0x1c')](socket);function respondWithStatusCode(_0x2fd383,_0x19f6a7){_0x19f6a7=_0x19f6a7||0xcc;return function(_0x9f99cf){if(_0x9f99cf){return _0x2fd383['sendStatus'](_0x19f6a7);}return _0x2fd383['status'](_0x19f6a7)[_0x46a2('0x1d')]();};}function respondWithResult(_0x2deb20,_0x5eeaba){_0x5eeaba=_0x5eeaba||0xc8;return function(_0xead4f8){if(_0xead4f8){return _0x2deb20[_0x46a2('0x1e')](_0x5eeaba)['json'](_0xead4f8);}};}function respondWithFilteredResult(_0xa2eb96,_0xc00b4d){return function(_0x577f18){if(_0x577f18){var _0x27250b=typeof _0xc00b4d[_0x46a2('0x1f')]==='undefined'&&typeof _0xc00b4d[_0x46a2('0x20')]===_0x46a2('0x21');var _0x5144c7=_0x577f18[_0x46a2('0x22')];var _0x38272c=_0x27250b?0x0:_0xc00b4d[_0x46a2('0x1f')];var _0x10db20=_0x27250b?_0x577f18[_0x46a2('0x22')]:_0xc00b4d[_0x46a2('0x1f')]+_0xc00b4d[_0x46a2('0x20')];var _0x473cfb;if(_0x10db20>=_0x5144c7){_0x10db20=_0x5144c7;_0x473cfb=0xc8;}else{_0x473cfb=0xce;}_0xa2eb96[_0x46a2('0x1e')](_0x473cfb);return _0xa2eb96[_0x46a2('0x23')]('Content-Range',_0x38272c+'-'+_0x10db20+'/'+_0x5144c7)[_0x46a2('0x24')](_0x577f18);}return null;};}function patchUpdates(_0x504b9e){return function(_0x2a76b2){try{jsonpatch[_0x46a2('0x25')](_0x2a76b2,_0x504b9e,!![]);}catch(_0x511ff6){return BPromise[_0x46a2('0x26')](_0x511ff6);}return _0x2a76b2[_0x46a2('0x27')]();};}function saveUpdates(_0x233c4e,_0x3cc187){return function(_0x4d50f5){if(_0x4d50f5){return _0x4d50f5[_0x46a2('0x28')](_0x233c4e)[_0x46a2('0x29')](function(_0x1e48f5){return _0x1e48f5;});}return null;};}function removeEntity(_0x297158,_0x74bb6a){return function(_0x295f15){if(_0x295f15){return _0x295f15[_0x46a2('0x2a')]()[_0x46a2('0x29')](function(){var _0x218f1c=_0x295f15[_0x46a2('0x2b')]({'plain':!![]});var _0x44ffb4='MailQueues';return db[_0x46a2('0x2c')][_0x46a2('0x2a')]({'where':{'type':_0x44ffb4,'resourceId':_0x218f1c['id']}})[_0x46a2('0x29')](function(){return _0x295f15;});})[_0x46a2('0x29')](function(){_0x297158[_0x46a2('0x1e')](0xcc)[_0x46a2('0x1d')]();});}};}function handleEntityNotFound(_0x577fd2,_0x185647){return function(_0x26856f){if(!_0x26856f){_0x577fd2[_0x46a2('0x2d')](0x194);}return _0x26856f;};}function handleError(_0x6e8b2e,_0x29bd9b){_0x29bd9b=_0x29bd9b||0x1f4;return function(_0x511bea){logger[_0x46a2('0x2e')](_0x511bea['stack']);if(_0x511bea[_0x46a2('0x2f')]){delete _0x511bea[_0x46a2('0x2f')];}_0x6e8b2e[_0x46a2('0x1e')](_0x29bd9b)[_0x46a2('0x30')](_0x511bea);};}exports[_0x46a2('0x31')]=function(_0x1910c9,_0x4c294a){var _0x28a524={},_0x1d8146={},_0x5c3ea4={'count':0x0,'rows':[]};var _0x3ad9a7=_[_0x46a2('0x32')](db[_0x46a2('0x33')][_0x46a2('0x34')],function(_0x4f13da){return{'name':_0x4f13da['fieldName'],'type':_0x4f13da['type'][_0x46a2('0x35')]};});_0x1d8146[_0x46a2('0x36')]=_[_0x46a2('0x32')](_0x3ad9a7,_0x46a2('0x2f'));_0x1d8146[_0x46a2('0x37')]=_[_0x46a2('0x38')](_0x1910c9['query']);_0x1d8146['filters']=_[_0x46a2('0x39')](_0x1d8146['model'],_0x1d8146[_0x46a2('0x37')]);_0x28a524[_0x46a2('0x3a')]=_[_0x46a2('0x39')](_0x1d8146[_0x46a2('0x36')],qs['fields'](_0x1910c9[_0x46a2('0x37')][_0x46a2('0x3b')]));_0x28a524[_0x46a2('0x3a')]=_0x28a524[_0x46a2('0x3a')]['length']?_0x28a524[_0x46a2('0x3a')]:_0x1d8146[_0x46a2('0x36')];if(!_0x1910c9[_0x46a2('0x37')][_0x46a2('0x3c')]('nolimit')){_0x28a524[_0x46a2('0x20')]=qs['limit'](_0x1910c9[_0x46a2('0x37')]['limit']);_0x28a524[_0x46a2('0x1f')]=qs[_0x46a2('0x1f')](_0x1910c9['query'][_0x46a2('0x1f')]);}_0x28a524['order']=qs['sort'](_0x1910c9[_0x46a2('0x37')][_0x46a2('0x3d')]);_0x28a524[_0x46a2('0x3e')]=qs[_0x46a2('0x3f')](_[_0x46a2('0x40')](_0x1910c9[_0x46a2('0x37')],_0x1d8146['filters']),_0x3ad9a7);if(_0x1910c9[_0x46a2('0x37')][_0x46a2('0x41')]){_0x28a524[_0x46a2('0x3e')]=_[_0x46a2('0x42')](_0x28a524[_0x46a2('0x3e')],{'$or':_[_0x46a2('0x32')](_0x3ad9a7,function(_0x41292b){if(_0x41292b[_0x46a2('0x43')]!==_0x46a2('0x44')){var _0x439dad={};_0x439dad[_0x41292b['name']]={'$like':'%'+_0x1910c9[_0x46a2('0x37')][_0x46a2('0x41')]+'%'};return _0x439dad;}})});}_0x28a524=_[_0x46a2('0x42')]({},_0x28a524,_0x1910c9[_0x46a2('0x45')]);var _0x56a8b2={'where':_0x28a524[_0x46a2('0x3e')]};return db[_0x46a2('0x33')][_0x46a2('0x22')](_0x56a8b2)[_0x46a2('0x29')](function(_0x1fcc03){_0x5c3ea4['count']=_0x1fcc03;if(_0x1910c9[_0x46a2('0x37')]['includeAll']){_0x28a524[_0x46a2('0x46')]=[{'all':!![]}];}return db[_0x46a2('0x33')]['findAll'](_0x28a524);})[_0x46a2('0x29')](function(_0x1a7e45){_0x5c3ea4[_0x46a2('0x47')]=_0x1a7e45;return _0x5c3ea4;})[_0x46a2('0x29')](respondWithFilteredResult(_0x4c294a,_0x28a524))[_0x46a2('0x48')](handleError(_0x4c294a,null));};exports[_0x46a2('0x49')]=function(_0x3b0f5b,_0x205562){var _0x2a1500={'raw':!![],'where':{'id':_0x3b0f5b['params']['id']}},_0x1ee84a={};_0x1ee84a[_0x46a2('0x36')]=_[_0x46a2('0x38')](db[_0x46a2('0x33')][_0x46a2('0x34')]);_0x1ee84a[_0x46a2('0x37')]=_['keys'](_0x3b0f5b[_0x46a2('0x37')]);_0x1ee84a[_0x46a2('0x3f')]=_[_0x46a2('0x39')](_0x1ee84a[_0x46a2('0x36')],_0x1ee84a[_0x46a2('0x37')]);_0x2a1500['attributes']=_[_0x46a2('0x39')](_0x1ee84a['model'],qs[_0x46a2('0x3b')](_0x3b0f5b[_0x46a2('0x37')]['fields']));_0x2a1500[_0x46a2('0x3a')]=_0x2a1500[_0x46a2('0x3a')][_0x46a2('0x4a')]?_0x2a1500[_0x46a2('0x3a')]:_0x1ee84a[_0x46a2('0x36')];if(_0x3b0f5b[_0x46a2('0x37')][_0x46a2('0x4b')]){_0x2a1500['include']=[{'all':!![]}];}_0x2a1500=_[_0x46a2('0x42')]({},_0x2a1500,_0x3b0f5b[_0x46a2('0x45')]);return db[_0x46a2('0x33')][_0x46a2('0x4c')](_0x2a1500)['then'](handleEntityNotFound(_0x205562,null))[_0x46a2('0x29')](respondWithResult(_0x205562,null))['catch'](handleError(_0x205562,null));};exports[_0x46a2('0x4d')]=function(_0x3ccc29,_0x5020d1){return db[_0x46a2('0x33')]['create'](_0x3ccc29[_0x46a2('0x4e')],{})[_0x46a2('0x29')](function(_0x3be2a7){var _0x38e4e7=_0x3ccc29[_0x46a2('0x4f')][_0x46a2('0x2b')]({'plain':!![]});if(!_0x38e4e7)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x38e4e7['role']===_0x46a2('0x4f')){var _0x1a5cf4=_0x3be2a7[_0x46a2('0x2b')]({'plain':!![]});var _0x545305=_0x46a2('0x50');return db[_0x46a2('0x51')][_0x46a2('0x4c')]({'where':{'name':_0x545305,'userProfileId':_0x38e4e7['userProfileId']},'raw':!![]})[_0x46a2('0x29')](function(_0x3665db){if(_0x3665db&&_0x3665db[_0x46a2('0x52')]===0x0){return db[_0x46a2('0x2c')][_0x46a2('0x4d')]({'name':_0x1a5cf4[_0x46a2('0x2f')],'resourceId':_0x1a5cf4['id'],'type':_0x3665db[_0x46a2('0x2f')],'sectionId':_0x3665db['id']},{})['then'](function(){return _0x3be2a7;});}else{return _0x3be2a7;}})[_0x46a2('0x48')](function(_0x344bb6){logger['error'](_0x46a2('0x53'),_0x344bb6);throw _0x344bb6;});}return _0x3be2a7;})[_0x46a2('0x29')](respondWithResult(_0x5020d1,0xc9))['catch'](handleError(_0x5020d1,null));};exports[_0x46a2('0x28')]=function(_0x3b7f26,_0x56bbc6){if(_0x3b7f26[_0x46a2('0x4e')]['id']){delete _0x3b7f26[_0x46a2('0x4e')]['id'];}return db['MailQueue']['find']({'where':{'id':_0x3b7f26['params']['id']}})['then'](handleEntityNotFound(_0x56bbc6,null))[_0x46a2('0x29')](saveUpdates(_0x3b7f26['body'],null))['then'](respondWithResult(_0x56bbc6,null))[_0x46a2('0x48')](handleError(_0x56bbc6,null));};exports[_0x46a2('0x2a')]=function(_0x4451bf,_0x3544f2){return db[_0x46a2('0x33')][_0x46a2('0x4c')]({'where':{'id':_0x4451bf[_0x46a2('0x54')]['id']}})[_0x46a2('0x29')](handleEntityNotFound(_0x3544f2,null))[_0x46a2('0x29')](removeEntity(_0x3544f2,null))[_0x46a2('0x48')](handleError(_0x3544f2,null));};exports['describe']=function(_0x5070a6,_0x3a6dc1){return db[_0x46a2('0x33')][_0x46a2('0x55')]()['then'](respondWithResult(_0x3a6dc1,null))[_0x46a2('0x48')](handleError(_0x3a6dc1,null));};exports['getMembers']=function(_0x3fcead,_0x576db3,_0x554048){var _0x2da4a5={'raw':!![],'where':{}},_0x5ec5f3={},_0x398fa6;return db['MailQueue'][_0x46a2('0x56')]({'where':{'id':_0x3fcead['params']['id']}})[_0x46a2('0x29')](handleEntityNotFound(_0x576db3,null))['then'](function(_0x2e3c3a){if(_0x2e3c3a){_0x398fa6=_0x2e3c3a[_0x46a2('0x2b')]({'plain':!![]});_0x5ec5f3['model']=_[_0x46a2('0x38')](db[_0x46a2('0x57')][_0x46a2('0x34')]);_0x5ec5f3[_0x46a2('0x37')]=_[_0x46a2('0x38')](_0x3fcead[_0x46a2('0x37')]);_0x5ec5f3[_0x46a2('0x3f')]=_[_0x46a2('0x39')](_0x5ec5f3[_0x46a2('0x36')],_0x5ec5f3[_0x46a2('0x37')]);_0x2da4a5[_0x46a2('0x3a')]=_['intersection'](_0x5ec5f3[_0x46a2('0x36')],qs[_0x46a2('0x3b')](_0x3fcead[_0x46a2('0x37')][_0x46a2('0x3b')]));_0x2da4a5[_0x46a2('0x3a')]=_0x2da4a5[_0x46a2('0x3a')][_0x46a2('0x4a')]?_0x2da4a5[_0x46a2('0x3a')]:_0x5ec5f3[_0x46a2('0x36')];if(!_0x3fcead[_0x46a2('0x37')][_0x46a2('0x3c')](_0x46a2('0x58'))){_0x2da4a5['limit']=qs['limit'](_0x3fcead['query'][_0x46a2('0x20')]);_0x2da4a5[_0x46a2('0x1f')]=qs[_0x46a2('0x1f')](_0x3fcead[_0x46a2('0x37')][_0x46a2('0x1f')]);}_0x2da4a5[_0x46a2('0x59')]=qs[_0x46a2('0x3d')](_0x3fcead['query'][_0x46a2('0x3d')]);_0x2da4a5['where']=qs['filters'](_[_0x46a2('0x40')](_0x3fcead[_0x46a2('0x37')],_0x5ec5f3[_0x46a2('0x3f')]));_0x2da4a5['where'][_0x46a2('0x5a')]=_0x2e3c3a['id'];if(_0x3fcead[_0x46a2('0x37')][_0x46a2('0x41')]){_0x2da4a5[_0x46a2('0x3e')]=_[_0x46a2('0x42')](_0x2da4a5[_0x46a2('0x3e')],{'$or':_[_0x46a2('0x32')](_0x2da4a5[_0x46a2('0x3a')],function(_0x160a2c){var _0x13568b={};_0x13568b[_0x160a2c]={'$like':'%'+_0x3fcead['query'][_0x46a2('0x41')]+'%'};return _0x13568b;})});}_0x2da4a5=_[_0x46a2('0x42')]({},_0x2da4a5,_0x3fcead[_0x46a2('0x45')]);return db[_0x46a2('0x57')][_0x46a2('0x5b')](_0x2da4a5);}})[_0x46a2('0x29')](function(_0x3cbe9d){if(_0x3cbe9d){return db['User'][_0x46a2('0x5c')]({'where':{'id':_[_0x46a2('0x32')](_0x3cbe9d,_0x46a2('0x5d')),'role':_0x46a2('0x5e')},'attributes':['id','name',_0x46a2('0x5f'),_0x46a2('0x60'),_0x46a2('0x61')]});}})[_0x46a2('0x29')](function(_0x561d2b){if(_0x561d2b){return{'count':_0x561d2b[_0x46a2('0x22')],'rows':_[_0x46a2('0x32')](_0x561d2b[_0x46a2('0x47')],function(_0x1c17b6){return{'membername':_0x1c17b6[_0x46a2('0x2f')],'UserId':_0x1c17b6['id'],'queue_name':_0x398fa6[_0x46a2('0x2f')],'MailQueueId':_0x398fa6['id'],'interface':util[_0x46a2('0x62')]('%s/%s','SIP',_0x1c17b6[_0x46a2('0x2f')]),'penalty':0x0,'paused':_0x1c17b6[_0x46a2('0x5f')],'createdAt':_0x1c17b6['createdAt'],'updatedAt':_0x1c17b6[_0x46a2('0x60')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x46a2('0x29')](respondWithFilteredResult(_0x576db3,_0x2da4a5))['catch'](handleError(_0x576db3,null));};exports[_0x46a2('0x63')]=function(_0x34b8ec,_0x5b90b8,_0x353a6e){var _0x2e4298={};var _0x468431={};var _0x530928;var _0x393abd;return db[_0x46a2('0x33')][_0x46a2('0x56')]({'where':{'id':_0x34b8ec[_0x46a2('0x54')]['id']}})['then'](handleEntityNotFound(_0x5b90b8,null))[_0x46a2('0x29')](function(_0x19b63e){if(_0x19b63e){_0x530928=_0x19b63e;_0x468431['model']=_['keys'](db[_0x46a2('0x64')][_0x46a2('0x34')]);_0x468431['query']=_['keys'](_0x34b8ec[_0x46a2('0x37')]);_0x468431['filters']=_[_0x46a2('0x39')](_0x468431[_0x46a2('0x36')],_0x468431[_0x46a2('0x37')]);_0x2e4298[_0x46a2('0x3a')]=_['intersection'](_0x468431['model'],qs[_0x46a2('0x3b')](_0x34b8ec[_0x46a2('0x37')][_0x46a2('0x3b')]));_0x2e4298[_0x46a2('0x3a')]=_0x2e4298[_0x46a2('0x3a')][_0x46a2('0x4a')]?_0x2e4298[_0x46a2('0x3a')]:_0x468431[_0x46a2('0x36')];_0x2e4298[_0x46a2('0x59')]=qs[_0x46a2('0x3d')](_0x34b8ec['query']['sort']);_0x2e4298[_0x46a2('0x3e')]=qs[_0x46a2('0x3f')](_['pick'](_0x34b8ec[_0x46a2('0x37')],_0x468431[_0x46a2('0x3f')]));if(_0x34b8ec[_0x46a2('0x37')]['filter']){_0x2e4298[_0x46a2('0x3e')]=_[_0x46a2('0x42')](_0x2e4298[_0x46a2('0x3e')],{'$or':_[_0x46a2('0x32')](_0x2e4298[_0x46a2('0x3a')],function(_0x82cd99){var _0x255c41={};_0x255c41[_0x82cd99]={'$like':'%'+_0x34b8ec[_0x46a2('0x37')]['filter']+'%'};return _0x255c41;})});}_0x2e4298=_[_0x46a2('0x42')]({},_0x2e4298,_0x34b8ec[_0x46a2('0x45')]);return _0x530928['getTeams'](_0x2e4298);}})['then'](function(_0x49b01){if(_0x49b01){_0x393abd=_0x49b01[_0x46a2('0x4a')];if(!_0x34b8ec[_0x46a2('0x37')][_0x46a2('0x3c')]('nolimit')){_0x2e4298[_0x46a2('0x20')]=qs['limit'](_0x34b8ec[_0x46a2('0x37')][_0x46a2('0x20')]);_0x2e4298[_0x46a2('0x1f')]=qs[_0x46a2('0x1f')](_0x34b8ec[_0x46a2('0x37')][_0x46a2('0x1f')]);}return _0x530928['getTeams'](_0x2e4298);}})['then'](function(_0x5decd3){if(_0x5decd3){return _0x5decd3?{'count':_0x393abd,'rows':_0x5decd3}:null;}})['then'](respondWithResult(_0x5b90b8,null))[_0x46a2('0x48')](handleError(_0x5b90b8,null));};exports[_0x46a2('0x65')]=function(_0x2c47f7,_0xb9cf18,_0x4be2b0){var _0x4f2176=_0x2c47f7[_0x46a2('0x4e')]['ids'];return db[_0x46a2('0x64')][_0x46a2('0x5b')]({'where':{'id':_0x4f2176},'attributes':['id'],'include':[{'model':db[_0x46a2('0x66')],'as':_0x46a2('0x67'),'attributes':['id',_0x46a2('0x2f'),_0x46a2('0x68'),_0x46a2('0x69'),'interface'],'raw':!![]}]})[_0x46a2('0x29')](function(_0x9acd30){if(_0x9acd30){var _0x4cd9b0=_[_0x46a2('0x6a')](_0x9acd30,function(_0x4507ec){var _0x38f4ed=_0x4507ec[_0x46a2('0x2b')]({'plain':!![]});return _0x38f4ed['Agents'];});return db['MailQueue']['find']({'where':{'id':_0x2c47f7[_0x46a2('0x54')]['id']}})[_0x46a2('0x29')](function(_0x27c9ad){return db[_0x46a2('0x6b')]['transaction'](function(_0x70376b){return _0x27c9ad[_0x46a2('0x65')](_0x4f2176,{'transaction':_0x70376b})['then'](function(){return BPromise[_0x46a2('0x6c')](_0x4cd9b0,function(_0xec46cf){return db[_0x46a2('0x57')][_0x46a2('0x6d')]({'where':{'UserId':_0xec46cf['id'],'MailQueueId':_0x2c47f7['params']['id']},'transaction':_0x70376b});});})['then'](function(){_0x4cd9b0[_0x46a2('0x6e')](function(_0x2e3d9a){socket['emit'](_0x46a2('0x6f'),{'UserId':_0x2e3d9a['id'],'MailQueueId':_0x27c9ad['id']});});});});});}})[_0x46a2('0x29')](respondWithStatusCode(_0xb9cf18,null))[_0x46a2('0x48')](handleError(_0xb9cf18,null));};exports[_0x46a2('0x70')]=function(_0x430468,_0x4a2307,_0x3fcee1){return db[_0x46a2('0x64')][_0x46a2('0x5b')]({'where':{'id':_0x430468[_0x46a2('0x37')][_0x46a2('0x71')]},'attributes':['id'],'include':[{'model':db[_0x46a2('0x66')],'as':'Agents','attributes':['id'],'raw':!![]}]})[_0x46a2('0x29')](handleEntityNotFound(_0x4a2307,null))[_0x46a2('0x29')](function(_0x175566){var _0x4aacae=_[_0x46a2('0x32')](_0x175566,'id');var _0x137721=[];var _0x161976=[];var _0x11ec9b=squel[_0x46a2('0x72')]();_0x11ec9b['field'](_0x46a2('0x73'))[_0x46a2('0x74')](_0x46a2('0x75'),'tq')['join'](_0x46a2('0x76'),'ut',_0x46a2('0x77'))[_0x46a2('0x3e')](_0x46a2('0x78'),_0x430468[_0x46a2('0x54')]['id']);for(var _0x12b547=0x0;_0x12b547<_0x175566['length'];_0x12b547+=0x1){let _0x32e168=_0x175566[_0x12b547];for(var _0x2bcf7d=0x0;_0x2bcf7d<_0x32e168[_0x46a2('0x67')][_0x46a2('0x4a')];_0x2bcf7d+=0x1){let _0x17081d=_0x32e168[_0x46a2('0x67')][_0x2bcf7d];var _0x252fa5=_0x11ec9b['clone']();_0x252fa5['where'](_0x46a2('0x79'),_0x17081d['id']);_0x161976['push'](db['sequelize']['query'](_0x252fa5[_0x46a2('0x7a')](),{'type':db['sequelize'][_0x46a2('0x7b')][_0x46a2('0x7c')]})['then'](function(_0x5e5ab4){if(_0x5e5ab4[_0x46a2('0x4a')]===0x1){return _0x17081d['id'];}else{var _0x5954ed=_['every'](_[_0x46a2('0x32')](_0x5e5ab4,'TeamId'),function(_0x5e98eb){return _[_0x46a2('0x7d')](_0x4aacae,_0x5e98eb);});if(_0x5954ed){return _0x17081d['id'];}}}));}}return BPromise[_0x46a2('0x7e')](_0x161976)[_0x46a2('0x29')](function(_0x40cfde){_0x137721=_(_0x137721)['union'](_0x40cfde)[_0x46a2('0x7f')]()[_0x46a2('0x80')]();return db[_0x46a2('0x33')][_0x46a2('0x4c')]({'where':{'id':_0x430468[_0x46a2('0x54')]['id']}})[_0x46a2('0x29')](function(_0x2f88c4){return db['sequelize'][_0x46a2('0x81')](function(_0x50cc30){return _0x2f88c4[_0x46a2('0x70')](_0x430468[_0x46a2('0x37')]['ids'],{'transaction':_0x50cc30})[_0x46a2('0x29')](function(){if(!_[_0x46a2('0x82')](_0x137721)){return _0x2f88c4[_0x46a2('0x83')](_0x137721,{'transaction':_0x50cc30});}})[_0x46a2('0x29')](function(){_0x137721['forEach'](function(_0x4c64c9){socket[_0x46a2('0x84')](_0x46a2('0x85'),{'UserId':_0x4c64c9,'MailQueueId':_0x2f88c4['id']});});});});});});})[_0x46a2('0x29')](respondWithStatusCode(_0x4a2307,null))['catch'](handleError(_0x4a2307,null));};exports[_0x46a2('0x86')]=function(_0x3f82f4,_0x2c4b7d,_0x720df2){return db[_0x46a2('0x33')]['find']({'where':{'id':_0x3f82f4[_0x46a2('0x54')]['id']}})[_0x46a2('0x29')](handleEntityNotFound(_0x2c4b7d,null))[_0x46a2('0x29')](function(_0x1dc75c){if(_0x1dc75c){return _0x1dc75c[_0x46a2('0x86')](_0x3f82f4[_0x46a2('0x4e')][_0x46a2('0x71')],_[_0x46a2('0x87')](_0x3f82f4[_0x46a2('0x4e')],[_0x46a2('0x71'),'id'])||{})['spread'](function(_0x1aeb90){for(var _0x1f8639=0x0;_0x1f8639<_0x3f82f4[_0x46a2('0x4e')]['ids'][_0x46a2('0x4a')];_0x1f8639+=0x1){socket[_0x46a2('0x84')](_0x46a2('0x6f'),{'UserId':Number(_0x3f82f4[_0x46a2('0x4e')][_0x46a2('0x71')][_0x1f8639]),'MailQueueId':Number(_0x3f82f4[_0x46a2('0x54')]['id'])});}return _0x1aeb90;});}})[_0x46a2('0x29')](respondWithResult(_0x2c4b7d,null))[_0x46a2('0x48')](handleError(_0x2c4b7d,null));};exports[_0x46a2('0x83')]=function(_0x57f70e,_0x580395,_0x590449){return db[_0x46a2('0x33')][_0x46a2('0x4c')]({'where':{'id':_0x57f70e[_0x46a2('0x54')]['id']}})[_0x46a2('0x29')](handleEntityNotFound(_0x580395,null))['then'](function(_0x5d6a7f){if(_0x5d6a7f){return _0x5d6a7f['removeAgents'](_0x57f70e[_0x46a2('0x37')]['ids'])['then'](function(){if(_[_0x46a2('0x88')](_0x57f70e['query'][_0x46a2('0x71')])){for(var _0x5a9a15=0x0;_0x5a9a15<_0x57f70e[_0x46a2('0x37')][_0x46a2('0x71')][_0x46a2('0x4a')];_0x5a9a15+=0x1){socket[_0x46a2('0x84')](_0x46a2('0x85'),{'UserId':Number(_0x57f70e[_0x46a2('0x37')][_0x46a2('0x71')][_0x5a9a15]),'MailQueueId':Number(_0x57f70e['params']['id'])});}}else{socket[_0x46a2('0x84')](_0x46a2('0x85'),{'UserId':Number(_0x57f70e[_0x46a2('0x37')]['ids']),'MailQueueId':Number(_0x57f70e[_0x46a2('0x54')]['id'])});}});}})['then'](respondWithStatusCode(_0x580395,null))[_0x46a2('0x48')](handleError(_0x580395,null));};exports[_0x46a2('0x89')]=function(_0x615989,_0x41c315,_0x5d9879){var _0x5c0b28={};var _0x292432={};var _0x4f487e;var _0x455b03;return db[_0x46a2('0x33')][_0x46a2('0x56')]({'where':{'id':_0x615989[_0x46a2('0x54')]['id']}})[_0x46a2('0x29')](handleEntityNotFound(_0x41c315,null))[_0x46a2('0x29')](function(_0x38dac2){if(_0x38dac2){_0x4f487e=_0x38dac2;_0x292432[_0x46a2('0x36')]=_[_0x46a2('0x38')](db[_0x46a2('0x66')][_0x46a2('0x34')]);_0x292432[_0x46a2('0x37')]=_[_0x46a2('0x38')](_0x615989['query']);_0x292432[_0x46a2('0x3f')]=_[_0x46a2('0x39')](_0x292432['model'],_0x292432[_0x46a2('0x37')]);_0x5c0b28[_0x46a2('0x3a')]=_[_0x46a2('0x39')](_0x292432[_0x46a2('0x36')],qs[_0x46a2('0x3b')](_0x615989[_0x46a2('0x37')][_0x46a2('0x3b')]));_0x5c0b28[_0x46a2('0x3a')]=_0x5c0b28[_0x46a2('0x3a')]['length']?_0x5c0b28['attributes']:_0x292432[_0x46a2('0x36')];_0x5c0b28[_0x46a2('0x59')]=qs[_0x46a2('0x3d')](_0x615989['query'][_0x46a2('0x3d')]);_0x5c0b28['where']=qs[_0x46a2('0x3f')](_[_0x46a2('0x40')](_0x615989[_0x46a2('0x37')],_0x292432[_0x46a2('0x3f')]));if(_0x615989['query'][_0x46a2('0x41')]){_0x5c0b28[_0x46a2('0x3e')]=_[_0x46a2('0x42')](_0x5c0b28[_0x46a2('0x3e')],{'$or':_['map'](_0x5c0b28[_0x46a2('0x3a')],function(_0x3312dd){var _0x414fc6={};_0x414fc6[_0x3312dd]={'$like':'%'+_0x615989[_0x46a2('0x37')]['filter']+'%'};return _0x414fc6;})});}_0x5c0b28=_[_0x46a2('0x42')]({},_0x5c0b28,_0x615989[_0x46a2('0x45')]);return _0x4f487e[_0x46a2('0x89')](_0x5c0b28);}})[_0x46a2('0x29')](function(_0x5950c1){if(_0x5950c1){_0x455b03=_0x5950c1[_0x46a2('0x4a')];if(!_0x615989[_0x46a2('0x37')][_0x46a2('0x3c')]('nolimit')){_0x5c0b28[_0x46a2('0x20')]=qs[_0x46a2('0x20')](_0x615989[_0x46a2('0x37')][_0x46a2('0x20')]);_0x5c0b28['offset']=qs[_0x46a2('0x1f')](_0x615989[_0x46a2('0x37')][_0x46a2('0x1f')]);}return _0x4f487e[_0x46a2('0x89')](_0x5c0b28);}})[_0x46a2('0x29')](function(_0x40dd93){if(_0x40dd93){return _0x40dd93?{'count':_0x455b03,'rows':_0x40dd93}:null;}})['then'](respondWithResult(_0x41c315,null))[_0x46a2('0x48')](handleError(_0x41c315,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x510e=['save','remove','emit','hook','exports','events','../../mysqldb','setMaxListeners'];(function(_0x2c91e9,_0x2fb965){var _0x13f0ff=function(_0xb39edf){while(--_0xb39edf){_0x2c91e9['push'](_0x2c91e9['shift']());}};_0x13f0ff(++_0x2fb965);}(_0x510e,0x1c5));var _0xe510=function(_0x4ae829,_0x2c842c){_0x4ae829=_0x4ae829-0x0;var _0x256b31=_0x510e[_0x4ae829];return _0x256b31;};'use strict';var EventEmitter=require(_0xe510('0x0'));var MailQueue=require(_0xe510('0x1'))['db']['MailQueue'];var MailQueueEvents=new EventEmitter();MailQueueEvents[_0xe510('0x2')](0x0);var events={'afterCreate':_0xe510('0x3'),'afterUpdate':'update','afterDestroy':_0xe510('0x4')};function emitEvent(_0x9129fc){return function(_0x37d2ea,_0x4f255a,_0x2f08bb){MailQueueEvents['emit'](_0x9129fc+':'+_0x37d2ea['id'],_0x37d2ea);MailQueueEvents[_0xe510('0x5')](_0x9129fc,_0x37d2ea);_0x2f08bb(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];MailQueue[_0xe510('0x6')](e,emitEvent(event));}}module[_0xe510('0x7')]=MailQueueEvents;
\ No newline at end of file
+var _0x86bc=['emit','hasOwnProperty','hook','events','../../mysqldb','MailQueue','setMaxListeners','save','update','remove'];(function(_0xf18be5,_0x1c8710){var _0x3db909=function(_0x29a63c){while(--_0x29a63c){_0xf18be5['push'](_0xf18be5['shift']());}};_0x3db909(++_0x1c8710);}(_0x86bc,0x1a7));var _0xc86b=function(_0x3f77ab,_0x181877){_0x3f77ab=_0x3f77ab-0x0;var _0x1e0f87=_0x86bc[_0x3f77ab];return _0x1e0f87;};'use strict';var EventEmitter=require(_0xc86b('0x0'));var MailQueue=require(_0xc86b('0x1'))['db'][_0xc86b('0x2')];var MailQueueEvents=new EventEmitter();MailQueueEvents[_0xc86b('0x3')](0x0);var events={'afterCreate':_0xc86b('0x4'),'afterUpdate':_0xc86b('0x5'),'afterDestroy':_0xc86b('0x6')};function emitEvent(_0x125233){return function(_0x21e11f,_0x460dff,_0x1e0c98){MailQueueEvents[_0xc86b('0x7')](_0x125233+':'+_0x21e11f['id'],_0x21e11f);MailQueueEvents[_0xc86b('0x7')](_0x125233,_0x21e11f);_0x1e0c98(null);};}for(var e in events){if(events[_0xc86b('0x8')](e)){var event=events[e];MailQueue[_0xc86b('0x9')](e,emitEvent(event));}}module['exports']=MailQueueEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1b5d=['bluebird','request-promise','path','rimraf','./mailQueue.attributes','MailQueue','mail_queues','util','../../config/logger','api','moment'];(function(_0x5c7061,_0x183f32){var _0x5418c4=function(_0x47fe87){while(--_0x47fe87){_0x5c7061['push'](_0x5c7061['shift']());}};_0x5418c4(++_0x183f32);}(_0x1b5d,0x8b));var _0xd1b5=function(_0x2bb3c2,_0x58aa3a){_0x2bb3c2=_0x2bb3c2-0x0;var _0x269cdd=_0x1b5d[_0x2bb3c2];return _0x269cdd;};'use strict';var _=require('lodash');var util=require(_0xd1b5('0x0'));var logger=require(_0xd1b5('0x1'))(_0xd1b5('0x2'));var moment=require(_0xd1b5('0x3'));var BPromise=require(_0xd1b5('0x4'));var rp=require(_0xd1b5('0x5'));var fs=require('fs');var path=require(_0xd1b5('0x6'));var rimraf=require(_0xd1b5('0x7'));var config=require('../../config/environment');var attributes=require(_0xd1b5('0x8'));module['exports']=function(_0x4fbab6,_0x2c7370){return _0x4fbab6['define'](_0xd1b5('0x9'),attributes,{'tableName':_0xd1b5('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x90c5=['mail_queues','api','bluebird','request-promise','path','rimraf','./mailQueue.attributes','define','MailQueue'];(function(_0x69ea92,_0x14506b){var _0x45b8ea=function(_0x2a33c0){while(--_0x2a33c0){_0x69ea92['push'](_0x69ea92['shift']());}};_0x45b8ea(++_0x14506b);}(_0x90c5,0x19f));var _0x590c=function(_0xce6f11,_0x3c3137){_0xce6f11=_0xce6f11-0x0;var _0x35b709=_0x90c5[_0xce6f11];return _0x35b709;};'use strict';var _=require('lodash');var util=require('util');var logger=require('../../config/logger')(_0x590c('0x0'));var moment=require('moment');var BPromise=require(_0x590c('0x1'));var rp=require(_0x590c('0x2'));var fs=require('fs');var path=require(_0x590c('0x3'));var rimraf=require(_0x590c('0x4'));var config=require('../../config/environment');var attributes=require(_0x590c('0x5'));module['exports']=function(_0x20b9ce,_0x17d78d){return _0x20b9ce[_0x590c('0x6')](_0x590c('0x7'),attributes,{'tableName':_0x590c('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6418=['randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./mailQueue.socket','register','request','then','info','MailQueue,\x20%s,\x20%s','request\x20sent','code','error','message','result','catch','MailQueue','findAll','options','raw','where','attributes','limit','include','map','model','debug','GetMailQueue','stringify','ShowMailQueue','util','bluebird'];(function(_0x52788d,_0x4f2307){var _0x4ed07c=function(_0x3243b2){while(--_0x3243b2){_0x52788d['push'](_0x52788d['shift']());}};_0x4ed07c(++_0x4f2307);}(_0x6418,0xfa));var _0x8641=function(_0x260cb3,_0x4371b4){_0x260cb3=_0x260cb3-0x0;var _0x18d67e=_0x6418[_0x260cb3];return _0x18d67e;};'use strict';var _=require('lodash');var util=require(_0x8641('0x0'));var moment=require('moment');var BPromise=require(_0x8641('0x1'));var rs=require(_0x8641('0x2'));var fs=require('fs');var Redis=require(_0x8641('0x3'));var db=require(_0x8641('0x4'))['db'];var utils=require(_0x8641('0x5'));var logger=require(_0x8641('0x6'))(_0x8641('0x7'));var config=require(_0x8641('0x8'));var jayson=require(_0x8641('0x9'));var client=jayson[_0x8641('0xa')][_0x8641('0xb')]({'port':0x232a});config[_0x8641('0xc')]=_[_0x8641('0xd')](config[_0x8641('0xc')],{'host':_0x8641('0xe'),'port':0x18eb});var socket=require(_0x8641('0xf'))(new Redis(config[_0x8641('0xc')]));require(_0x8641('0x10'))[_0x8641('0x11')](socket);function respondWithRpcPromise(_0x38f7a1,_0x2545fb,_0x3a1d2e){return new BPromise(function(_0x318ef2,_0x14564b){return client[_0x8641('0x12')](_0x38f7a1,_0x3a1d2e)[_0x8641('0x13')](function(_0x451b61){logger[_0x8641('0x14')](_0x8641('0x15'),_0x2545fb,'request\x20sent');logger['debug']('MailQueue,\x20%s,\x20%s,\x20%s',_0x2545fb,_0x8641('0x16'),JSON['stringify'](_0x451b61));if(_0x451b61['error']){if(_0x451b61['error'][_0x8641('0x17')]===0x1f4){logger['error'](_0x8641('0x15'),_0x2545fb,_0x451b61[_0x8641('0x18')][_0x8641('0x19')]);return _0x14564b(_0x451b61['error'][_0x8641('0x19')]);}logger[_0x8641('0x18')](_0x8641('0x15'),_0x2545fb,_0x451b61[_0x8641('0x18')]['message']);return _0x318ef2(_0x451b61[_0x8641('0x18')][_0x8641('0x19')]);}else{logger[_0x8641('0x14')]('MailQueue,\x20%s,\x20%s',_0x2545fb,'request\x20sent');_0x318ef2(_0x451b61[_0x8641('0x1a')][_0x8641('0x19')]);}})[_0x8641('0x1b')](function(_0x398236){logger['error']('MailQueue,\x20%s,\x20%s',_0x2545fb,_0x398236);_0x14564b(_0x398236);});});}exports['GetMailQueue']=function(_0x21be56){var _0x38be64=this;return new Promise(function(_0x1d09e2,_0x1f2a23){return db[_0x8641('0x1c')][_0x8641('0x1d')]({'raw':_0x21be56[_0x8641('0x1e')]?_0x21be56[_0x8641('0x1e')][_0x8641('0x1f')]===undefined?!![]:![]:!![],'where':_0x21be56['options']?_0x21be56[_0x8641('0x1e')][_0x8641('0x20')]||null:null,'attributes':_0x21be56[_0x8641('0x1e')]?_0x21be56['options'][_0x8641('0x21')]||null:null,'limit':_0x21be56[_0x8641('0x1e')]?_0x21be56[_0x8641('0x1e')][_0x8641('0x22')]||null:null,'include':_0x21be56[_0x8641('0x1e')]?_0x21be56[_0x8641('0x1e')][_0x8641('0x23')]?_['map'](_0x21be56[_0x8641('0x1e')]['include'],function(_0x38a57c){return{'model':db[_0x38a57c['model']],'as':_0x38a57c['as'],'attributes':_0x38a57c[_0x8641('0x21')],'include':_0x38a57c[_0x8641('0x23')]?_[_0x8641('0x24')](_0x38a57c[_0x8641('0x23')],function(_0x136ff0){return{'model':db[_0x136ff0['model']],'as':_0x136ff0['as'],'attributes':_0x136ff0['attributes'],'include':_0x136ff0[_0x8641('0x23')]?_[_0x8641('0x24')](_0x136ff0['include'],function(_0x430c9f){return{'model':db[_0x430c9f[_0x8641('0x25')]],'as':_0x430c9f['as'],'attributes':_0x430c9f[_0x8641('0x21')]};}):[]};}):[]};}):[]:[]})[_0x8641('0x13')](function(_0x2028f9){logger['info']('GetMailQueue',_0x21be56);logger[_0x8641('0x26')](_0x8641('0x27'),_0x21be56,JSON[_0x8641('0x28')](_0x2028f9));_0x1d09e2(_0x2028f9);})[_0x8641('0x1b')](function(_0x442236){logger[_0x8641('0x18')](_0x8641('0x27'),_0x442236[_0x8641('0x19')],_0x21be56);_0x1f2a23(_0x38be64[_0x8641('0x18')](0x1f4,_0x442236['message']));});});};exports[_0x8641('0x29')]=function(_0xc8233e){var _0x13a600=this;return new Promise(function(_0xef9c1,_0x3ef764){return db[_0x8641('0x1c')]['find']({'raw':_0xc8233e['options']?_0xc8233e[_0x8641('0x1e')][_0x8641('0x1f')]===undefined?!![]:![]:!![],'where':_0xc8233e[_0x8641('0x1e')]?_0xc8233e[_0x8641('0x1e')][_0x8641('0x20')]||null:null,'attributes':_0xc8233e[_0x8641('0x1e')]?_0xc8233e[_0x8641('0x1e')][_0x8641('0x21')]||null:null,'include':_0xc8233e[_0x8641('0x1e')]?_0xc8233e[_0x8641('0x1e')][_0x8641('0x23')]?_[_0x8641('0x24')](_0xc8233e[_0x8641('0x1e')]['include'],function(_0x5e897f){return{'model':db[_0x5e897f[_0x8641('0x25')]],'as':_0x5e897f['as'],'attributes':_0x5e897f[_0x8641('0x21')],'include':_0x5e897f['include']?_[_0x8641('0x24')](_0x5e897f[_0x8641('0x23')],function(_0x5149e2){return{'model':db[_0x5149e2['model']],'as':_0x5149e2['as'],'attributes':_0x5149e2[_0x8641('0x21')],'include':_0x5149e2['include']?_[_0x8641('0x24')](_0x5149e2[_0x8641('0x23')],function(_0x336dbe){return{'model':db[_0x336dbe[_0x8641('0x25')]],'as':_0x336dbe['as'],'attributes':_0x336dbe['attributes']};}):[]};}):[]};}):[]:[]})[_0x8641('0x13')](function(_0x5b3259){logger[_0x8641('0x14')](_0x8641('0x29'),_0xc8233e);logger[_0x8641('0x26')](_0x8641('0x29'),_0xc8233e,JSON['stringify'](_0x5b3259));_0xef9c1(_0x5b3259);})['catch'](function(_0x3aa07c){logger['error']('ShowMailQueue',_0x3aa07c[_0x8641('0x19')],_0xc8233e);_0x3ef764(_0x13a600['error'](0x1f4,_0x3aa07c[_0x8641('0x19')]));});});};
\ No newline at end of file
+var _0x636f=['register','then','info','MailQueue,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','MailQueue','findAll','options','raw','attributes','limit','map','model','include','GetMailQueue','catch','ShowMailQueue','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','redis','defaults','localhost','socket.io-emitter','./mailQueue.socket'];(function(_0x108c93,_0x547760){var _0x86c91c=function(_0x1fe471){while(--_0x1fe471){_0x108c93['push'](_0x108c93['shift']());}};_0x86c91c(++_0x547760);}(_0x636f,0x188));var _0xf636=function(_0x501510,_0x61caa9){_0x501510=_0x501510-0x0;var _0x1e6ee5=_0x636f[_0x501510];return _0x1e6ee5;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0xf636('0x0'));var BPromise=require(_0xf636('0x1'));var rs=require(_0xf636('0x2'));var fs=require('fs');var Redis=require(_0xf636('0x3'));var db=require(_0xf636('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0xf636('0x5'))(_0xf636('0x6'));var config=require(_0xf636('0x7'));var jayson=require(_0xf636('0x8'));var client=jayson[_0xf636('0x9')]['http']({'port':0x232a});config[_0xf636('0xa')]=_[_0xf636('0xb')](config[_0xf636('0xa')],{'host':_0xf636('0xc'),'port':0x18eb});var socket=require(_0xf636('0xd'))(new Redis(config[_0xf636('0xa')]));require(_0xf636('0xe'))[_0xf636('0xf')](socket);function respondWithRpcPromise(_0xf9e996,_0x370a77,_0x587438){return new BPromise(function(_0x3b703b,_0x2b52ac){return client['request'](_0xf9e996,_0x587438)[_0xf636('0x10')](function(_0x1bfb6c){logger[_0xf636('0x11')](_0xf636('0x12'),_0x370a77,_0xf636('0x13'));logger[_0xf636('0x14')]('MailQueue,\x20%s,\x20%s,\x20%s',_0x370a77,_0xf636('0x13'),JSON[_0xf636('0x15')](_0x1bfb6c));if(_0x1bfb6c[_0xf636('0x16')]){if(_0x1bfb6c['error'][_0xf636('0x17')]===0x1f4){logger['error'](_0xf636('0x12'),_0x370a77,_0x1bfb6c[_0xf636('0x16')]['message']);return _0x2b52ac(_0x1bfb6c[_0xf636('0x16')][_0xf636('0x18')]);}logger['error'](_0xf636('0x12'),_0x370a77,_0x1bfb6c[_0xf636('0x16')][_0xf636('0x18')]);return _0x3b703b(_0x1bfb6c[_0xf636('0x16')][_0xf636('0x18')]);}else{logger['info'](_0xf636('0x12'),_0x370a77,_0xf636('0x13'));_0x3b703b(_0x1bfb6c['result'][_0xf636('0x18')]);}})['catch'](function(_0x505c9f){logger[_0xf636('0x16')](_0xf636('0x12'),_0x370a77,_0x505c9f);_0x2b52ac(_0x505c9f);});});}exports['GetMailQueue']=function(_0x5b5997){var _0x128681=this;return new Promise(function(_0x2c15a1,_0x80be3f){return db[_0xf636('0x19')][_0xf636('0x1a')]({'raw':_0x5b5997[_0xf636('0x1b')]?_0x5b5997[_0xf636('0x1b')][_0xf636('0x1c')]===undefined?!![]:![]:!![],'where':_0x5b5997[_0xf636('0x1b')]?_0x5b5997[_0xf636('0x1b')]['where']||null:null,'attributes':_0x5b5997[_0xf636('0x1b')]?_0x5b5997[_0xf636('0x1b')][_0xf636('0x1d')]||null:null,'limit':_0x5b5997[_0xf636('0x1b')]?_0x5b5997[_0xf636('0x1b')][_0xf636('0x1e')]||null:null,'include':_0x5b5997['options']?_0x5b5997[_0xf636('0x1b')]['include']?_[_0xf636('0x1f')](_0x5b5997['options']['include'],function(_0x5b24df){return{'model':db[_0x5b24df[_0xf636('0x20')]],'as':_0x5b24df['as'],'attributes':_0x5b24df['attributes'],'include':_0x5b24df['include']?_[_0xf636('0x1f')](_0x5b24df[_0xf636('0x21')],function(_0x4bf52b){return{'model':db[_0x4bf52b[_0xf636('0x20')]],'as':_0x4bf52b['as'],'attributes':_0x4bf52b[_0xf636('0x1d')],'include':_0x4bf52b[_0xf636('0x21')]?_[_0xf636('0x1f')](_0x4bf52b[_0xf636('0x21')],function(_0x56192b){return{'model':db[_0x56192b[_0xf636('0x20')]],'as':_0x56192b['as'],'attributes':_0x56192b[_0xf636('0x1d')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x2866da){logger[_0xf636('0x11')](_0xf636('0x22'),_0x5b5997);logger[_0xf636('0x14')](_0xf636('0x22'),_0x5b5997,JSON[_0xf636('0x15')](_0x2866da));_0x2c15a1(_0x2866da);})[_0xf636('0x23')](function(_0x347638){logger[_0xf636('0x16')](_0xf636('0x22'),_0x347638[_0xf636('0x18')],_0x5b5997);_0x80be3f(_0x128681['error'](0x1f4,_0x347638[_0xf636('0x18')]));});});};exports[_0xf636('0x24')]=function(_0x5dc3eb){var _0x55284a=this;return new Promise(function(_0x61ceaf,_0x592552){return db['MailQueue']['find']({'raw':_0x5dc3eb[_0xf636('0x1b')]?_0x5dc3eb['options'][_0xf636('0x1c')]===undefined?!![]:![]:!![],'where':_0x5dc3eb[_0xf636('0x1b')]?_0x5dc3eb[_0xf636('0x1b')]['where']||null:null,'attributes':_0x5dc3eb['options']?_0x5dc3eb[_0xf636('0x1b')][_0xf636('0x1d')]||null:null,'include':_0x5dc3eb['options']?_0x5dc3eb['options']['include']?_[_0xf636('0x1f')](_0x5dc3eb[_0xf636('0x1b')][_0xf636('0x21')],function(_0x415e44){return{'model':db[_0x415e44[_0xf636('0x20')]],'as':_0x415e44['as'],'attributes':_0x415e44['attributes'],'include':_0x415e44[_0xf636('0x21')]?_[_0xf636('0x1f')](_0x415e44[_0xf636('0x21')],function(_0xe8a329){return{'model':db[_0xe8a329[_0xf636('0x20')]],'as':_0xe8a329['as'],'attributes':_0xe8a329[_0xf636('0x1d')],'include':_0xe8a329[_0xf636('0x21')]?_[_0xf636('0x1f')](_0xe8a329[_0xf636('0x21')],function(_0x4d98f1){return{'model':db[_0x4d98f1['model']],'as':_0x4d98f1['as'],'attributes':_0x4d98f1[_0xf636('0x1d')]};}):[]};}):[]};}):[]:[]})[_0xf636('0x10')](function(_0x63e774){logger[_0xf636('0x11')](_0xf636('0x24'),_0x5dc3eb);logger[_0xf636('0x14')](_0xf636('0x24'),_0x5dc3eb,JSON[_0xf636('0x15')](_0x63e774));_0x61ceaf(_0x63e774);})[_0xf636('0x23')](function(_0xcd356d){logger[_0xf636('0x16')](_0xf636('0x24'),_0xcd356d[_0xf636('0x18')],_0x5dc3eb);_0x592552(_0x55284a[_0xf636('0x16')](0x1f4,_0xcd356d['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xccac=['update','removeListener','register','mailQueue:','./mailQueue.events','save','remove'];(function(_0x583273,_0x25f79d){var _0x2aebf1=function(_0x19c737){while(--_0x19c737){_0x583273['push'](_0x583273['shift']());}};_0x2aebf1(++_0x25f79d);}(_0xccac,0x1cb));var _0xccca=function(_0x58142c,_0x39935a){_0x58142c=_0x58142c-0x0;var _0x4c69aa=_0xccac[_0x58142c];return _0x4c69aa;};'use strict';var MailQueueEvents=require(_0xccca('0x0'));var events=[_0xccca('0x1'),_0xccca('0x2'),_0xccca('0x3')];function createListener(_0x234af2,_0x305b79){return function(_0x4df391){_0x305b79['emit'](_0x234af2,_0x4df391);};}function removeListener(_0x2cdbed,_0x5e4e60){return function(){MailQueueEvents[_0xccca('0x4')](_0x2cdbed,_0x5e4e60);};}exports[_0xccca('0x5')]=function(_0x346c79){for(var _0x1be72e=0x0,_0x461c34=events['length'];_0x1be72e<_0x461c34;_0x1be72e++){var _0x57f5a2=events[_0x1be72e];var _0x6fbff0=createListener(_0xccca('0x6')+_0x57f5a2,_0x346c79);MailQueueEvents['on'](_0x57f5a2,_0x6fbff0);}};
\ No newline at end of file
+var _0x1ed7=['length','mailQueue:','update','emit','removeListener','register'];(function(_0x433ab5,_0x16e711){var _0x315911=function(_0x2d24a2){while(--_0x2d24a2){_0x433ab5['push'](_0x433ab5['shift']());}};_0x315911(++_0x16e711);}(_0x1ed7,0x6e));var _0x71ed=function(_0x383784,_0x1b41ff){_0x383784=_0x383784-0x0;var _0x3ac75d=_0x1ed7[_0x383784];return _0x3ac75d;};'use strict';var MailQueueEvents=require('./mailQueue.events');var events=['save','remove',_0x71ed('0x0')];function createListener(_0x3136ff,_0x31a601){return function(_0x4074d2){_0x31a601[_0x71ed('0x1')](_0x3136ff,_0x4074d2);};}function removeListener(_0x59c737,_0x1a2bc6){return function(){MailQueueEvents[_0x71ed('0x2')](_0x59c737,_0x1a2bc6);};}exports[_0x71ed('0x3')]=function(_0x239999){for(var _0x51bc16=0x0,_0x572ad8=events[_0x71ed('0x4')];_0x51bc16<_0x572ad8;_0x51bc16++){var _0x1eaefe=events[_0x51bc16];var _0x1dfb6d=createListener(_0x71ed('0x5')+_0x1eaefe,_0x239999);MailQueueEvents['on'](_0x1eaefe,_0x1dfb6d);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x759a=['express','fs-extra','../../components/auth/service','../../config/environment','./mailQueueReport.controller','get','index','/describe','isAuthenticated','describe','/:id','show','post','create','put','delete','destroy','exports','multer','util','path','connect-timeout'];(function(_0x4a9a25,_0x4b7b00){var _0x4a087e=function(_0x422bdd){while(--_0x422bdd){_0x4a9a25['push'](_0x4a9a25['shift']());}};_0x4a087e(++_0x4b7b00);}(_0x759a,0x130));var _0xa759=function(_0x51b738,_0x184128){_0x51b738=_0x51b738-0x0;var _0x2ba5b2=_0x759a[_0x51b738];return _0x2ba5b2;};'use strict';var multer=require(_0xa759('0x0'));var util=require(_0xa759('0x1'));var path=require(_0xa759('0x2'));var timeout=require(_0xa759('0x3'));var express=require(_0xa759('0x4'));var router=express['Router']();var fs_extra=require(_0xa759('0x5'));var auth=require(_0xa759('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0xa759('0x7'));var controller=require(_0xa759('0x8'));router[_0xa759('0x9')]('/',auth['isAuthenticated'](),controller[_0xa759('0xa')]);router[_0xa759('0x9')](_0xa759('0xb'),auth[_0xa759('0xc')](),controller[_0xa759('0xd')]);router['get'](_0xa759('0xe'),auth[_0xa759('0xc')](),controller[_0xa759('0xf')]);router[_0xa759('0x10')]('/',auth[_0xa759('0xc')](),controller[_0xa759('0x11')]);router[_0xa759('0x12')](_0xa759('0xe'),auth[_0xa759('0xc')](),controller['update']);router[_0xa759('0x13')](_0xa759('0xe'),auth[_0xa759('0xc')](),controller[_0xa759('0x14')]);module[_0xa759('0x15')]=router;
\ No newline at end of file
+var _0x6e9f=['show','post','isAuthenticated','create','update','delete','destroy','util','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./mailQueueReport.controller','get','index','/describe','describe','/:id'];(function(_0x2bfe4a,_0x56489a){var _0x4ce1ed=function(_0x2a2cdd){while(--_0x2a2cdd){_0x2bfe4a['push'](_0x2bfe4a['shift']());}};_0x4ce1ed(++_0x56489a);}(_0x6e9f,0x12d));var _0xf6e9=function(_0x2674e5,_0x24004b){_0x2674e5=_0x2674e5-0x0;var _0x274212=_0x6e9f[_0x2674e5];return _0x274212;};'use strict';var multer=require('multer');var util=require(_0xf6e9('0x0'));var path=require(_0xf6e9('0x1'));var timeout=require(_0xf6e9('0x2'));var express=require(_0xf6e9('0x3'));var router=express[_0xf6e9('0x4')]();var fs_extra=require(_0xf6e9('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0xf6e9('0x6'));var config=require(_0xf6e9('0x7'));var controller=require(_0xf6e9('0x8'));router[_0xf6e9('0x9')]('/',auth['isAuthenticated'](),controller[_0xf6e9('0xa')]);router[_0xf6e9('0x9')](_0xf6e9('0xb'),auth['isAuthenticated'](),controller[_0xf6e9('0xc')]);router['get'](_0xf6e9('0xd'),auth['isAuthenticated'](),controller[_0xf6e9('0xe')]);router[_0xf6e9('0xf')]('/',auth[_0xf6e9('0x10')](),controller[_0xf6e9('0x11')]);router['put'](_0xf6e9('0xd'),auth[_0xf6e9('0x10')](),controller[_0xf6e9('0x12')]);router[_0xf6e9('0x13')](_0xf6e9('0xd'),auth['isAuthenticated'](),controller[_0xf6e9('0x14')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc558=['moment','sequelize','exports','STRING','DATE'];(function(_0x5a6949,_0x2614ea){var _0x107a6e=function(_0x107c56){while(--_0x107c56){_0x5a6949['push'](_0x5a6949['shift']());}};_0x107a6e(++_0x2614ea);}(_0xc558,0x140));var _0x8c55=function(_0x52a71c,_0x2e6dfd){_0x52a71c=_0x52a71c-0x0;var _0x139263=_0xc558[_0x52a71c];return _0x139263;};'use strict';var moment=require(_0x8c55('0x0'));var Sequelize=require(_0x8c55('0x1'));module[_0x8c55('0x2')]={'uniqueid':{'type':Sequelize[_0x8c55('0x3')],'allowNull':![]},'from':{'type':Sequelize['STRING']},'joinAt':{'type':Sequelize[_0x8c55('0x4')]},'leaveAt':{'type':Sequelize[_0x8c55('0x4')]},'acceptAt':{'type':Sequelize['DATE']},'exitAt':{'type':Sequelize[_0x8c55('0x4')]},'reason':{'type':Sequelize[_0x8c55('0x3')]}};
\ No newline at end of file
+var _0xb51b=['exports','STRING','DATE','moment'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0xb51b,0x1eb));var _0xbb51=function(_0x855853,_0x5e37e2){_0x855853=_0x855853-0x0;var _0x2c9279=_0xb51b[_0x855853];return _0x2c9279;};'use strict';var moment=require(_0xbb51('0x0'));var Sequelize=require('sequelize');module[_0xbb51('0x1')]={'uniqueid':{'type':Sequelize['STRING'],'allowNull':![]},'from':{'type':Sequelize[_0xbb51('0x2')]},'joinAt':{'type':Sequelize['DATE']},'leaveAt':{'type':Sequelize['DATE']},'acceptAt':{'type':Sequelize[_0xbb51('0x3')]},'exitAt':{'type':Sequelize[_0xbb51('0x3')]},'reason':{'type':Sequelize[_0xbb51('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa30a=['destroy','describe','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','ejs','lodash','squel','crypto','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','status','end','json','offset','undefined','count','limit','apply','save','update','then','error','name','send','index','map','MailQueueReport','rawAttributes','fieldName','type','key','query','keys','filters','attributes','intersection','model','fields','length','hasOwnProperty','order','sort','pick','filter','where','merge','options','include','findAll','rows','catch','includeAll','find','body'];(function(_0x5ef43f,_0x3ade29){var _0x49f43c=function(_0x11d154){while(--_0x11d154){_0x5ef43f['push'](_0x5ef43f['shift']());}};_0x49f43c(++_0x3ade29);}(_0xa30a,0xd7));var _0xaa30=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xa30a[_0x20a584];return _0x4b41a8;};'use strict';var emlformat=require(_0xaa30('0x0'));var rimraf=require(_0xaa30('0x1'));var zipdir=require(_0xaa30('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xaa30('0x3'));var moment=require(_0xaa30('0x4'));var BPromise=require(_0xaa30('0x5'));var Mustache=require(_0xaa30('0x6'));var util=require(_0xaa30('0x7'));var path=require(_0xaa30('0x8'));var sox=require(_0xaa30('0x9'));var csv=require('to-csv');var ejs=require(_0xaa30('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xaa30('0xb'));var squel=require(_0xaa30('0xc'));var crypto=require(_0xaa30('0xd'));var jsforce=require('jsforce');var deskjs=require(_0xaa30('0xe'));var toCsv=require(_0xaa30('0xf'));var querystring=require(_0xaa30('0x10'));var Papa=require(_0xaa30('0x11'));var Redis=require(_0xaa30('0x12'));var authService=require(_0xaa30('0x13'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xaa30('0x14'));var logger=require('../../config/logger')(_0xaa30('0x15'));var utils=require(_0xaa30('0x16'));var config=require(_0xaa30('0x17'));var licenseUtil=require(_0xaa30('0x18'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0xec992f,_0x3de2d1){_0x3de2d1=_0x3de2d1||0xcc;return function(_0xcd1d3b){if(_0xcd1d3b){return _0xec992f['sendStatus'](_0x3de2d1);}return _0xec992f[_0xaa30('0x19')](_0x3de2d1)[_0xaa30('0x1a')]();};}function respondWithResult(_0x25c02e,_0x14de74){_0x14de74=_0x14de74||0xc8;return function(_0x41f1d9){if(_0x41f1d9){return _0x25c02e[_0xaa30('0x19')](_0x14de74)[_0xaa30('0x1b')](_0x41f1d9);}};}function respondWithFilteredResult(_0x3b8095,_0x2e37af){return function(_0xfae724){if(_0xfae724){var _0x519518=typeof _0x2e37af[_0xaa30('0x1c')]==='undefined'&&typeof _0x2e37af['limit']===_0xaa30('0x1d');var _0x153939=_0xfae724[_0xaa30('0x1e')];var _0x540e36=_0x519518?0x0:_0x2e37af['offset'];var _0x53f9fd=_0x519518?_0xfae724[_0xaa30('0x1e')]:_0x2e37af['offset']+_0x2e37af[_0xaa30('0x1f')];var _0x332a0a;if(_0x53f9fd>=_0x153939){_0x53f9fd=_0x153939;_0x332a0a=0xc8;}else{_0x332a0a=0xce;}_0x3b8095['status'](_0x332a0a);return _0x3b8095['set']('Content-Range',_0x540e36+'-'+_0x53f9fd+'/'+_0x153939)[_0xaa30('0x1b')](_0xfae724);}return null;};}function patchUpdates(_0x3e4f1d){return function(_0x61b85){try{jsonpatch[_0xaa30('0x20')](_0x61b85,_0x3e4f1d,!![]);}catch(_0x43a526){return BPromise['reject'](_0x43a526);}return _0x61b85[_0xaa30('0x21')]();};}function saveUpdates(_0x24bb25,_0x2e16e7){return function(_0x2d9e35){if(_0x2d9e35){return _0x2d9e35[_0xaa30('0x22')](_0x24bb25)['then'](function(_0x325b42){return _0x325b42;});}return null;};}function removeEntity(_0x13128a,_0x2fecdd){return function(_0x326f84){if(_0x326f84){return _0x326f84['destroy']()[_0xaa30('0x23')](function(){_0x13128a[_0xaa30('0x19')](0xcc)[_0xaa30('0x1a')]();});}};}function handleEntityNotFound(_0x12da2f,_0x97b038){return function(_0x2a59ce){if(!_0x2a59ce){_0x12da2f['sendStatus'](0x194);}return _0x2a59ce;};}function handleError(_0x467850,_0x465701){_0x465701=_0x465701||0x1f4;return function(_0x5d4da8){logger[_0xaa30('0x24')](_0x5d4da8['stack']);if(_0x5d4da8[_0xaa30('0x25')]){delete _0x5d4da8[_0xaa30('0x25')];}_0x467850[_0xaa30('0x19')](_0x465701)[_0xaa30('0x26')](_0x5d4da8);};}exports[_0xaa30('0x27')]=function(_0xc10b8f,_0x6ff09a){var _0x39f708={},_0x1f288c={},_0x43fb30={'count':0x0,'rows':[]};var _0x44aa9b=_[_0xaa30('0x28')](db[_0xaa30('0x29')][_0xaa30('0x2a')],function(_0x40e4ee){return{'name':_0x40e4ee[_0xaa30('0x2b')],'type':_0x40e4ee[_0xaa30('0x2c')][_0xaa30('0x2d')]};});_0x1f288c['model']=_[_0xaa30('0x28')](_0x44aa9b,_0xaa30('0x25'));_0x1f288c[_0xaa30('0x2e')]=_[_0xaa30('0x2f')](_0xc10b8f[_0xaa30('0x2e')]);_0x1f288c[_0xaa30('0x30')]=_['intersection'](_0x1f288c['model'],_0x1f288c['query']);_0x39f708[_0xaa30('0x31')]=_[_0xaa30('0x32')](_0x1f288c[_0xaa30('0x33')],qs[_0xaa30('0x34')](_0xc10b8f[_0xaa30('0x2e')]['fields']));_0x39f708['attributes']=_0x39f708[_0xaa30('0x31')][_0xaa30('0x35')]?_0x39f708['attributes']:_0x1f288c[_0xaa30('0x33')];if(!_0xc10b8f['query'][_0xaa30('0x36')]('nolimit')){_0x39f708[_0xaa30('0x1f')]=qs[_0xaa30('0x1f')](_0xc10b8f['query'][_0xaa30('0x1f')]);_0x39f708[_0xaa30('0x1c')]=qs[_0xaa30('0x1c')](_0xc10b8f[_0xaa30('0x2e')][_0xaa30('0x1c')]);}_0x39f708[_0xaa30('0x37')]=qs['sort'](_0xc10b8f[_0xaa30('0x2e')][_0xaa30('0x38')]);_0x39f708['where']=qs[_0xaa30('0x30')](_[_0xaa30('0x39')](_0xc10b8f[_0xaa30('0x2e')],_0x1f288c['filters']),_0x44aa9b);if(_0xc10b8f['query'][_0xaa30('0x3a')]){_0x39f708[_0xaa30('0x3b')]=_[_0xaa30('0x3c')](_0x39f708[_0xaa30('0x3b')],{'$or':_[_0xaa30('0x28')](_0x44aa9b,function(_0x291854){if(_0x291854['type']!=='VIRTUAL'){var _0x120c43={};_0x120c43[_0x291854[_0xaa30('0x25')]]={'$like':'%'+_0xc10b8f[_0xaa30('0x2e')]['filter']+'%'};return _0x120c43;}})});}_0x39f708=_[_0xaa30('0x3c')]({},_0x39f708,_0xc10b8f[_0xaa30('0x3d')]);var _0x8fb95e={'where':_0x39f708[_0xaa30('0x3b')]};return db['MailQueueReport'][_0xaa30('0x1e')](_0x8fb95e)[_0xaa30('0x23')](function(_0x2c5ddb){_0x43fb30[_0xaa30('0x1e')]=_0x2c5ddb;if(_0xc10b8f[_0xaa30('0x2e')]['includeAll']){_0x39f708[_0xaa30('0x3e')]=[{'all':!![]}];}return db[_0xaa30('0x29')][_0xaa30('0x3f')](_0x39f708);})[_0xaa30('0x23')](function(_0x13f08f){_0x43fb30[_0xaa30('0x40')]=_0x13f08f;return _0x43fb30;})[_0xaa30('0x23')](respondWithFilteredResult(_0x6ff09a,_0x39f708))[_0xaa30('0x41')](handleError(_0x6ff09a,null));};exports['show']=function(_0x59ef25,_0x18771d){var _0x4a170a={'raw':!![],'where':{'id':_0x59ef25['params']['id']}},_0x5208f8={};_0x5208f8[_0xaa30('0x33')]=_['keys'](db[_0xaa30('0x29')]['rawAttributes']);_0x5208f8[_0xaa30('0x2e')]=_[_0xaa30('0x2f')](_0x59ef25[_0xaa30('0x2e')]);_0x5208f8[_0xaa30('0x30')]=_[_0xaa30('0x32')](_0x5208f8[_0xaa30('0x33')],_0x5208f8[_0xaa30('0x2e')]);_0x4a170a[_0xaa30('0x31')]=_[_0xaa30('0x32')](_0x5208f8[_0xaa30('0x33')],qs[_0xaa30('0x34')](_0x59ef25['query'][_0xaa30('0x34')]));_0x4a170a[_0xaa30('0x31')]=_0x4a170a[_0xaa30('0x31')][_0xaa30('0x35')]?_0x4a170a[_0xaa30('0x31')]:_0x5208f8['model'];if(_0x59ef25['query'][_0xaa30('0x42')]){_0x4a170a['include']=[{'all':!![]}];}_0x4a170a=_[_0xaa30('0x3c')]({},_0x4a170a,_0x59ef25[_0xaa30('0x3d')]);return db[_0xaa30('0x29')][_0xaa30('0x43')](_0x4a170a)[_0xaa30('0x23')](handleEntityNotFound(_0x18771d,null))[_0xaa30('0x23')](respondWithResult(_0x18771d,null))[_0xaa30('0x41')](handleError(_0x18771d,null));};exports['create']=function(_0x3cf0bb,_0x6c9da6){return db[_0xaa30('0x29')]['create'](_0x3cf0bb[_0xaa30('0x44')],{})[_0xaa30('0x23')](respondWithResult(_0x6c9da6,0xc9))['catch'](handleError(_0x6c9da6,null));};exports[_0xaa30('0x22')]=function(_0x4a8fcc,_0x25d227){if(_0x4a8fcc['body']['id']){delete _0x4a8fcc['body']['id'];}return db[_0xaa30('0x29')]['find']({'where':{'id':_0x4a8fcc['params']['id']}})[_0xaa30('0x23')](handleEntityNotFound(_0x25d227,null))[_0xaa30('0x23')](saveUpdates(_0x4a8fcc[_0xaa30('0x44')],null))[_0xaa30('0x23')](respondWithResult(_0x25d227,null))[_0xaa30('0x41')](handleError(_0x25d227,null));};exports[_0xaa30('0x45')]=function(_0x5616cd,_0x17d75d){return db[_0xaa30('0x29')][_0xaa30('0x43')]({'where':{'id':_0x5616cd['params']['id']}})['then'](handleEntityNotFound(_0x17d75d,null))['then'](removeEntity(_0x17d75d,null))['catch'](handleError(_0x17d75d,null));};exports[_0xaa30('0x46')]=function(_0x1ba164,_0xdc32bc){return db[_0xaa30('0x29')][_0xaa30('0x46')]()[_0xaa30('0x23')](respondWithResult(_0xdc32bc,null))['catch'](handleError(_0xdc32bc,null));};
\ No newline at end of file
+var _0x524e=['end','json','offset','limit','count','set','apply','reject','save','update','destroy','name','send','index','map','rawAttributes','key','model','keys','filters','intersection','attributes','fields','query','hasOwnProperty','sort','where','pick','filter','merge','VIRTUAL','options','MailQueueReport','then','includeAll','include','findAll','rows','catch','show','length','find','create','body','params','describe','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status'];(function(_0x22c5de,_0x4c480d){var _0xb718cb=function(_0x1ac7e){while(--_0x1ac7e){_0x22c5de['push'](_0x22c5de['shift']());}};_0xb718cb(++_0x4c480d);}(_0x524e,0x15e));var _0xe524=function(_0x541579,_0x67fe88){_0x541579=_0x541579-0x0;var _0x211bbf=_0x524e[_0x541579];return _0x211bbf;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xe524('0x0'));var jsonpatch=require(_0xe524('0x1'));var rp=require(_0xe524('0x2'));var moment=require(_0xe524('0x3'));var BPromise=require(_0xe524('0x4'));var Mustache=require(_0xe524('0x5'));var util=require(_0xe524('0x6'));var path=require(_0xe524('0x7'));var sox=require(_0xe524('0x8'));var csv=require(_0xe524('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xe524('0xa'));var _=require(_0xe524('0xb'));var squel=require(_0xe524('0xc'));var crypto=require('crypto');var jsforce=require(_0xe524('0xd'));var deskjs=require(_0xe524('0xe'));var toCsv=require(_0xe524('0x9'));var querystring=require(_0xe524('0xf'));var Papa=require(_0xe524('0x10'));var Redis=require(_0xe524('0x11'));var authService=require(_0xe524('0x12'));var qs=require(_0xe524('0x13'));var as=require(_0xe524('0x14'));var hardwareService=require(_0xe524('0x15'));var logger=require(_0xe524('0x16'))(_0xe524('0x17'));var utils=require(_0xe524('0x18'));var config=require(_0xe524('0x19'));var licenseUtil=require(_0xe524('0x1a'));var db=require(_0xe524('0x1b'))['db'];function respondWithStatusCode(_0x5077c1,_0x4b0f51){_0x4b0f51=_0x4b0f51||0xcc;return function(_0xfdc2a5){if(_0xfdc2a5){return _0x5077c1[_0xe524('0x1c')](_0x4b0f51);}return _0x5077c1[_0xe524('0x1d')](_0x4b0f51)[_0xe524('0x1e')]();};}function respondWithResult(_0x20a852,_0x57c1b6){_0x57c1b6=_0x57c1b6||0xc8;return function(_0x12ff75){if(_0x12ff75){return _0x20a852['status'](_0x57c1b6)[_0xe524('0x1f')](_0x12ff75);}};}function respondWithFilteredResult(_0x1b0af6,_0x48165e){return function(_0x569660){if(_0x569660){var _0x488fce=typeof _0x48165e[_0xe524('0x20')]==='undefined'&&typeof _0x48165e[_0xe524('0x21')]==='undefined';var _0x5c8736=_0x569660['count'];var _0x3a4027=_0x488fce?0x0:_0x48165e['offset'];var _0x11b2a1=_0x488fce?_0x569660[_0xe524('0x22')]:_0x48165e[_0xe524('0x20')]+_0x48165e[_0xe524('0x21')];var _0x5d7b17;if(_0x11b2a1>=_0x5c8736){_0x11b2a1=_0x5c8736;_0x5d7b17=0xc8;}else{_0x5d7b17=0xce;}_0x1b0af6[_0xe524('0x1d')](_0x5d7b17);return _0x1b0af6[_0xe524('0x23')]('Content-Range',_0x3a4027+'-'+_0x11b2a1+'/'+_0x5c8736)[_0xe524('0x1f')](_0x569660);}return null;};}function patchUpdates(_0x309f85){return function(_0x43a4f9){try{jsonpatch[_0xe524('0x24')](_0x43a4f9,_0x309f85,!![]);}catch(_0x1c4194){return BPromise[_0xe524('0x25')](_0x1c4194);}return _0x43a4f9[_0xe524('0x26')]();};}function saveUpdates(_0x375219,_0x7dfe97){return function(_0x5c4d21){if(_0x5c4d21){return _0x5c4d21[_0xe524('0x27')](_0x375219)['then'](function(_0x577d1f){return _0x577d1f;});}return null;};}function removeEntity(_0x2d2f83,_0x23df5e){return function(_0x1ad106){if(_0x1ad106){return _0x1ad106[_0xe524('0x28')]()['then'](function(){_0x2d2f83[_0xe524('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x17e245,_0xcf5db){return function(_0xd62772){if(!_0xd62772){_0x17e245[_0xe524('0x1c')](0x194);}return _0xd62772;};}function handleError(_0x4102d9,_0xfd5965){_0xfd5965=_0xfd5965||0x1f4;return function(_0x2141db){logger['error'](_0x2141db['stack']);if(_0x2141db[_0xe524('0x29')]){delete _0x2141db[_0xe524('0x29')];}_0x4102d9[_0xe524('0x1d')](_0xfd5965)[_0xe524('0x2a')](_0x2141db);};}exports[_0xe524('0x2b')]=function(_0x5405e4,_0x52f140){var _0x4b1ff={},_0x25e7a7={},_0x3aedd9={'count':0x0,'rows':[]};var _0x8070e4=_[_0xe524('0x2c')](db['MailQueueReport'][_0xe524('0x2d')],function(_0x9a7e98){return{'name':_0x9a7e98['fieldName'],'type':_0x9a7e98['type'][_0xe524('0x2e')]};});_0x25e7a7[_0xe524('0x2f')]=_['map'](_0x8070e4,_0xe524('0x29'));_0x25e7a7['query']=_[_0xe524('0x30')](_0x5405e4['query']);_0x25e7a7[_0xe524('0x31')]=_[_0xe524('0x32')](_0x25e7a7[_0xe524('0x2f')],_0x25e7a7['query']);_0x4b1ff[_0xe524('0x33')]=_['intersection'](_0x25e7a7[_0xe524('0x2f')],qs[_0xe524('0x34')](_0x5405e4[_0xe524('0x35')]['fields']));_0x4b1ff[_0xe524('0x33')]=_0x4b1ff[_0xe524('0x33')]['length']?_0x4b1ff[_0xe524('0x33')]:_0x25e7a7[_0xe524('0x2f')];if(!_0x5405e4[_0xe524('0x35')][_0xe524('0x36')]('nolimit')){_0x4b1ff[_0xe524('0x21')]=qs[_0xe524('0x21')](_0x5405e4[_0xe524('0x35')][_0xe524('0x21')]);_0x4b1ff[_0xe524('0x20')]=qs[_0xe524('0x20')](_0x5405e4[_0xe524('0x35')][_0xe524('0x20')]);}_0x4b1ff['order']=qs[_0xe524('0x37')](_0x5405e4['query'][_0xe524('0x37')]);_0x4b1ff[_0xe524('0x38')]=qs['filters'](_[_0xe524('0x39')](_0x5405e4['query'],_0x25e7a7[_0xe524('0x31')]),_0x8070e4);if(_0x5405e4[_0xe524('0x35')][_0xe524('0x3a')]){_0x4b1ff[_0xe524('0x38')]=_[_0xe524('0x3b')](_0x4b1ff[_0xe524('0x38')],{'$or':_[_0xe524('0x2c')](_0x8070e4,function(_0x13762c){if(_0x13762c['type']!==_0xe524('0x3c')){var _0x940c05={};_0x940c05[_0x13762c[_0xe524('0x29')]]={'$like':'%'+_0x5405e4[_0xe524('0x35')][_0xe524('0x3a')]+'%'};return _0x940c05;}})});}_0x4b1ff=_[_0xe524('0x3b')]({},_0x4b1ff,_0x5405e4[_0xe524('0x3d')]);var _0x158d45={'where':_0x4b1ff['where']};return db[_0xe524('0x3e')][_0xe524('0x22')](_0x158d45)[_0xe524('0x3f')](function(_0x59781b){_0x3aedd9[_0xe524('0x22')]=_0x59781b;if(_0x5405e4['query'][_0xe524('0x40')]){_0x4b1ff[_0xe524('0x41')]=[{'all':!![]}];}return db[_0xe524('0x3e')][_0xe524('0x42')](_0x4b1ff);})[_0xe524('0x3f')](function(_0x4746cd){_0x3aedd9[_0xe524('0x43')]=_0x4746cd;return _0x3aedd9;})['then'](respondWithFilteredResult(_0x52f140,_0x4b1ff))[_0xe524('0x44')](handleError(_0x52f140,null));};exports[_0xe524('0x45')]=function(_0x13c54c,_0x376505){var _0x438962={'raw':!![],'where':{'id':_0x13c54c['params']['id']}},_0x1ae283={};_0x1ae283[_0xe524('0x2f')]=_[_0xe524('0x30')](db[_0xe524('0x3e')]['rawAttributes']);_0x1ae283[_0xe524('0x35')]=_['keys'](_0x13c54c['query']);_0x1ae283[_0xe524('0x31')]=_[_0xe524('0x32')](_0x1ae283['model'],_0x1ae283[_0xe524('0x35')]);_0x438962[_0xe524('0x33')]=_[_0xe524('0x32')](_0x1ae283[_0xe524('0x2f')],qs['fields'](_0x13c54c['query'][_0xe524('0x34')]));_0x438962[_0xe524('0x33')]=_0x438962['attributes'][_0xe524('0x46')]?_0x438962['attributes']:_0x1ae283[_0xe524('0x2f')];if(_0x13c54c[_0xe524('0x35')][_0xe524('0x40')]){_0x438962[_0xe524('0x41')]=[{'all':!![]}];}_0x438962=_[_0xe524('0x3b')]({},_0x438962,_0x13c54c[_0xe524('0x3d')]);return db[_0xe524('0x3e')][_0xe524('0x47')](_0x438962)[_0xe524('0x3f')](handleEntityNotFound(_0x376505,null))[_0xe524('0x3f')](respondWithResult(_0x376505,null))[_0xe524('0x44')](handleError(_0x376505,null));};exports[_0xe524('0x48')]=function(_0x3d7ab7,_0x33b1c8){return db[_0xe524('0x3e')]['create'](_0x3d7ab7[_0xe524('0x49')],{})['then'](respondWithResult(_0x33b1c8,0xc9))['catch'](handleError(_0x33b1c8,null));};exports[_0xe524('0x27')]=function(_0x59fe6b,_0x232cf0){if(_0x59fe6b[_0xe524('0x49')]['id']){delete _0x59fe6b['body']['id'];}return db[_0xe524('0x3e')]['find']({'where':{'id':_0x59fe6b['params']['id']}})[_0xe524('0x3f')](handleEntityNotFound(_0x232cf0,null))[_0xe524('0x3f')](saveUpdates(_0x59fe6b[_0xe524('0x49')],null))['then'](respondWithResult(_0x232cf0,null))['catch'](handleError(_0x232cf0,null));};exports['destroy']=function(_0x4e9c3b,_0x4f7a64){return db['MailQueueReport'][_0xe524('0x47')]({'where':{'id':_0x4e9c3b[_0xe524('0x4a')]['id']}})['then'](handleEntityNotFound(_0x4f7a64,null))[_0xe524('0x3f')](removeEntity(_0x4f7a64,null))[_0xe524('0x44')](handleError(_0x4f7a64,null));};exports[_0xe524('0x4b')]=function(_0x208aa8,_0x2fa143){return db['MailQueueReport'][_0xe524('0x4b')]()[_0xe524('0x3f')](respondWithResult(_0x2fa143,null))[_0xe524('0x44')](handleError(_0x2fa143,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x869e=['lodash','util','../../config/logger','moment','bluebird','request-promise','path','rimraf','./mailQueueReport.attributes','exports','report_mail_queue','uniqueid'];(function(_0x1c3736,_0x34662d){var _0x2a3fd6=function(_0x20c5f2){while(--_0x20c5f2){_0x1c3736['push'](_0x1c3736['shift']());}};_0x2a3fd6(++_0x34662d);}(_0x869e,0x15c));var _0xe869=function(_0x186afa,_0x2b9b27){_0x186afa=_0x186afa-0x0;var _0x960ada=_0x869e[_0x186afa];return _0x960ada;};'use strict';var _=require(_0xe869('0x0'));var util=require(_0xe869('0x1'));var logger=require(_0xe869('0x2'))('api');var moment=require(_0xe869('0x3'));var BPromise=require(_0xe869('0x4'));var rp=require(_0xe869('0x5'));var fs=require('fs');var path=require(_0xe869('0x6'));var rimraf=require(_0xe869('0x7'));var config=require('../../config/environment');var attributes=require(_0xe869('0x8'));module[_0xe869('0x9')]=function(_0x26a223,_0x26afde){return _0x26a223['define']('MailQueueReport',attributes,{'tableName':_0xe869('0xa'),'paranoid':![],'indexes':[{'name':_0xe869('0xb'),'fields':[_0xe869('0xb')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xdf85=['../../config/environment','./mailQueueReport.attributes','exports','define','report_mail_queue','uniqueid','lodash','util','../../config/logger','api','bluebird','request-promise','path','rimraf'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0xdf85,0x12c));var _0x5df8=function(_0x19950b,_0x53d0d7){_0x19950b=_0x19950b-0x0;var _0x3c6b41=_0xdf85[_0x19950b];return _0x3c6b41;};'use strict';var _=require(_0x5df8('0x0'));var util=require(_0x5df8('0x1'));var logger=require(_0x5df8('0x2'))(_0x5df8('0x3'));var moment=require('moment');var BPromise=require(_0x5df8('0x4'));var rp=require(_0x5df8('0x5'));var fs=require('fs');var path=require(_0x5df8('0x6'));var rimraf=require(_0x5df8('0x7'));var config=require(_0x5df8('0x8'));var attributes=require(_0x5df8('0x9'));module[_0x5df8('0xa')]=function(_0x16afa5,_0x3f3a35){return _0x16afa5[_0x5df8('0xb')]('MailQueueReport',attributes,{'tableName':_0x5df8('0xc'),'paranoid':![],'indexes':[{'name':_0x5df8('0xd'),'fields':[_0x5df8('0xd')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc4aa=['create','body','options','raw','update','where','attributes','limit','UpdateMailQueueReport','stringify','lodash','util','moment','bluebird','randomstring','ioredis','rpc','../../config/environment','jayson/promise','client','http','request','then','MailQueueReport,\x20%s,\x20%s','request\x20sent','debug','error','code','message','info','catch','CreateMailQueueReport','MailQueueReport'];(function(_0x7a8cd7,_0x432ff0){var _0x4e1085=function(_0x4a69e9){while(--_0x4a69e9){_0x7a8cd7['push'](_0x7a8cd7['shift']());}};_0x4e1085(++_0x432ff0);}(_0xc4aa,0x1b7));var _0xac4a=function(_0x2d2c16,_0x4e88b6){_0x2d2c16=_0x2d2c16-0x0;var _0x53f2fb=_0xc4aa[_0x2d2c16];return _0x53f2fb;};'use strict';var _=require(_0xac4a('0x0'));var util=require(_0xac4a('0x1'));var moment=require(_0xac4a('0x2'));var BPromise=require(_0xac4a('0x3'));var rs=require(_0xac4a('0x4'));var fs=require('fs');var Redis=require(_0xac4a('0x5'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0xac4a('0x6'));var config=require(_0xac4a('0x7'));var jayson=require(_0xac4a('0x8'));var client=jayson[_0xac4a('0x9')][_0xac4a('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x15cd34,_0x3ef77c,_0x10525b){return new BPromise(function(_0x5c6179,_0x5b8339){return client[_0xac4a('0xb')](_0x15cd34,_0x10525b)[_0xac4a('0xc')](function(_0x26ec84){logger['info'](_0xac4a('0xd'),_0x3ef77c,_0xac4a('0xe'));logger[_0xac4a('0xf')]('MailQueueReport,\x20%s,\x20%s,\x20%s',_0x3ef77c,_0xac4a('0xe'),JSON['stringify'](_0x26ec84));if(_0x26ec84[_0xac4a('0x10')]){if(_0x26ec84['error'][_0xac4a('0x11')]===0x1f4){logger[_0xac4a('0x10')](_0xac4a('0xd'),_0x3ef77c,_0x26ec84['error'][_0xac4a('0x12')]);return _0x5b8339(_0x26ec84[_0xac4a('0x10')][_0xac4a('0x12')]);}logger[_0xac4a('0x10')](_0xac4a('0xd'),_0x3ef77c,_0x26ec84[_0xac4a('0x10')][_0xac4a('0x12')]);return _0x5c6179(_0x26ec84[_0xac4a('0x10')][_0xac4a('0x12')]);}else{logger[_0xac4a('0x13')](_0xac4a('0xd'),_0x3ef77c,_0xac4a('0xe'));_0x5c6179(_0x26ec84['result'][_0xac4a('0x12')]);}})[_0xac4a('0x14')](function(_0x23eb66){logger[_0xac4a('0x10')](_0xac4a('0xd'),_0x3ef77c,_0x23eb66);_0x5b8339(_0x23eb66);});});}exports[_0xac4a('0x15')]=function(_0x28e304){var _0x44ec59=this;return new Promise(function(_0x546c5d,_0x5ac21e){return db[_0xac4a('0x16')][_0xac4a('0x17')](_0x28e304[_0xac4a('0x18')],{'raw':_0x28e304['options']?_0x28e304[_0xac4a('0x19')][_0xac4a('0x1a')]===undefined?!![]:![]:!![]})[_0xac4a('0xc')](function(_0x3a3cdb){logger[_0xac4a('0x13')](_0xac4a('0x15'),_0x28e304);logger[_0xac4a('0xf')](_0xac4a('0x15'),_0x28e304,JSON['stringify'](_0x3a3cdb));_0x546c5d(_0x3a3cdb);})[_0xac4a('0x14')](function(_0x3204ad){logger['error'](_0xac4a('0x15'),_0x3204ad[_0xac4a('0x12')],_0x28e304);_0x5ac21e(_0x44ec59[_0xac4a('0x10')](0x1f4,_0x3204ad[_0xac4a('0x12')]));});});};exports['UpdateMailQueueReport']=function(_0x1b7998){var _0x2503d8=this;return new Promise(function(_0x15435c,_0x412494){return db[_0xac4a('0x16')][_0xac4a('0x1b')](_0x1b7998[_0xac4a('0x18')],{'raw':_0x1b7998[_0xac4a('0x19')]?_0x1b7998[_0xac4a('0x19')][_0xac4a('0x1a')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x1b7998[_0xac4a('0x19')]?_0x1b7998[_0xac4a('0x19')][_0xac4a('0x1c')]||null:null,'attributes':_0x1b7998[_0xac4a('0x19')]?_0x1b7998[_0xac4a('0x19')][_0xac4a('0x1d')]||null:null,'limit':_0x1b7998['options']?_0x1b7998[_0xac4a('0x19')][_0xac4a('0x1e')]||null:null})[_0xac4a('0xc')](function(_0x2772fe){logger[_0xac4a('0x13')]('UpdateMailQueueReport',_0x1b7998);logger['debug'](_0xac4a('0x1f'),_0x1b7998,JSON[_0xac4a('0x20')](_0x2772fe));_0x15435c(_0x2772fe);})[_0xac4a('0x14')](function(_0x546b65){logger['error'](_0xac4a('0x1f'),_0x546b65[_0xac4a('0x12')],_0x1b7998);_0x412494(_0x2503d8[_0xac4a('0x10')](0x1f4,_0x546b65[_0xac4a('0x12')]));});});};
\ No newline at end of file
+var _0x326f=['error','code','message','result','catch','CreateMailQueueReport','MailQueueReport','options','raw','stringify','UpdateMailQueueReport','body','attributes','lodash','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','info','MailQueueReport,\x20%s,\x20%s','request\x20sent','debug'];(function(_0x11f4a8,_0x5f4a50){var _0x910995=function(_0x511e0a){while(--_0x511e0a){_0x11f4a8['push'](_0x11f4a8['shift']());}};_0x910995(++_0x5f4a50);}(_0x326f,0xd1));var _0xf326=function(_0x42d319,_0x4accfc){_0x42d319=_0x42d319-0x0;var _0x4ffc87=_0x326f[_0x42d319];return _0x4ffc87;};'use strict';var _=require(_0xf326('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0xf326('0x1'));var rs=require(_0xf326('0x2'));var fs=require('fs');var Redis=require(_0xf326('0x3'));var db=require(_0xf326('0x4'))['db'];var utils=require(_0xf326('0x5'));var logger=require(_0xf326('0x6'))(_0xf326('0x7'));var config=require(_0xf326('0x8'));var jayson=require(_0xf326('0x9'));var client=jayson[_0xf326('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x3c254d,_0x3851eb,_0x165f95){return new BPromise(function(_0x1e7b8a,_0x515bfa){return client['request'](_0x3c254d,_0x165f95)['then'](function(_0x3bacf2){logger[_0xf326('0xb')](_0xf326('0xc'),_0x3851eb,_0xf326('0xd'));logger[_0xf326('0xe')]('MailQueueReport,\x20%s,\x20%s,\x20%s',_0x3851eb,_0xf326('0xd'),JSON['stringify'](_0x3bacf2));if(_0x3bacf2[_0xf326('0xf')]){if(_0x3bacf2['error'][_0xf326('0x10')]===0x1f4){logger['error'](_0xf326('0xc'),_0x3851eb,_0x3bacf2[_0xf326('0xf')]['message']);return _0x515bfa(_0x3bacf2[_0xf326('0xf')][_0xf326('0x11')]);}logger[_0xf326('0xf')](_0xf326('0xc'),_0x3851eb,_0x3bacf2['error'][_0xf326('0x11')]);return _0x1e7b8a(_0x3bacf2['error']['message']);}else{logger[_0xf326('0xb')](_0xf326('0xc'),_0x3851eb,_0xf326('0xd'));_0x1e7b8a(_0x3bacf2[_0xf326('0x12')][_0xf326('0x11')]);}})[_0xf326('0x13')](function(_0x34128e){logger[_0xf326('0xf')]('MailQueueReport,\x20%s,\x20%s',_0x3851eb,_0x34128e);_0x515bfa(_0x34128e);});});}exports[_0xf326('0x14')]=function(_0x453100){var _0x18bee3=this;return new Promise(function(_0x31ffb9,_0xcef2b5){return db[_0xf326('0x15')]['create'](_0x453100['body'],{'raw':_0x453100['options']?_0x453100[_0xf326('0x16')][_0xf326('0x17')]===undefined?!![]:![]:!![]})['then'](function(_0x4cabce){logger[_0xf326('0xb')]('CreateMailQueueReport',_0x453100);logger['debug'](_0xf326('0x14'),_0x453100,JSON[_0xf326('0x18')](_0x4cabce));_0x31ffb9(_0x4cabce);})['catch'](function(_0x5aa184){logger[_0xf326('0xf')](_0xf326('0x14'),_0x5aa184['message'],_0x453100);_0xcef2b5(_0x18bee3[_0xf326('0xf')](0x1f4,_0x5aa184[_0xf326('0x11')]));});});};exports[_0xf326('0x19')]=function(_0x295752){var _0x17c157=this;return new Promise(function(_0x2049ec,_0x5ce532){return db['MailQueueReport']['update'](_0x295752[_0xf326('0x1a')],{'raw':_0x295752[_0xf326('0x16')]?_0x295752[_0xf326('0x16')][_0xf326('0x17')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x295752[_0xf326('0x16')]?_0x295752[_0xf326('0x16')]['where']||null:null,'attributes':_0x295752[_0xf326('0x16')]?_0x295752[_0xf326('0x16')][_0xf326('0x1b')]||null:null,'limit':_0x295752['options']?_0x295752[_0xf326('0x16')]['limit']||null:null})['then'](function(_0x6a8e89){logger[_0xf326('0xb')](_0xf326('0x19'),_0x295752);logger['debug'](_0xf326('0x19'),_0x295752,JSON[_0xf326('0x18')](_0x6a8e89));_0x2049ec(_0x6a8e89);})['catch'](function(_0x225776){logger[_0xf326('0xf')](_0xf326('0x19'),_0x225776[_0xf326('0x11')],_0x295752);_0x5ce532(_0x17c157[_0xf326('0xf')](0x1f4,_0x225776[_0xf326('0x11')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x70e0=['../../components/auth/service','../../components/interaction/service','exports','multer','util','path','Router','fs-extra'];(function(_0x2c21a6,_0x5c1e57){var _0x41ee7a=function(_0x5acbcb){while(--_0x5acbcb){_0x2c21a6['push'](_0x2c21a6['shift']());}};_0x41ee7a(++_0x5c1e57);}(_0x70e0,0x17b));var _0x070e=function(_0x2cbde9,_0x37cfd9){_0x2cbde9=_0x2cbde9-0x0;var _0x774675=_0x70e0[_0x2cbde9];return _0x774675;};'use strict';var multer=require(_0x070e('0x0'));var util=require(_0x070e('0x1'));var path=require(_0x070e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x070e('0x3')]();var fs_extra=require(_0x070e('0x4'));var auth=require(_0x070e('0x5'));var interaction=require(_0x070e('0x6'));var config=require('../../config/environment');module[_0x070e('0x7')]=router;
\ No newline at end of file
+var _0xe706=['../../components/interaction/service','../../config/environment','exports','multer','util','path','express','Router','fs-extra','../../components/auth/service'];(function(_0xb80c6f,_0x14c433){var _0x296863=function(_0x3052ff){while(--_0x3052ff){_0xb80c6f['push'](_0xb80c6f['shift']());}};_0x296863(++_0x14c433);}(_0xe706,0xa3));var _0x6e70=function(_0x1960b5,_0x1835a4){_0x1960b5=_0x1960b5-0x0;var _0x18f387=_0xe706[_0x1960b5];return _0x18f387;};'use strict';var multer=require(_0x6e70('0x0'));var util=require(_0x6e70('0x1'));var path=require(_0x6e70('0x2'));var timeout=require('connect-timeout');var express=require(_0x6e70('0x3'));var router=express[_0x6e70('0x4')]();var fs_extra=require(_0x6e70('0x5'));var auth=require(_0x6e70('0x6'));var interaction=require(_0x6e70('0x7'));var config=require(_0x6e70('0x8'));module[_0x6e70('0x9')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x58a4=['exports','STRING','BOOLEAN','INTEGER','INBOX','sequelize'];(function(_0x5d5638,_0x24979f){var _0x4d530c=function(_0x3549e0){while(--_0x3549e0){_0x5d5638['push'](_0x5d5638['shift']());}};_0x4d530c(++_0x24979f);}(_0x58a4,0xbf));var _0x458a=function(_0xeffc63,_0x4acafd){_0xeffc63=_0xeffc63-0x0;var _0x175db2=_0x58a4[_0xeffc63];return _0x175db2;};'use strict';var Sequelize=require(_0x458a('0x0'));module[_0x458a('0x1')]={'description':{'type':Sequelize[_0x458a('0x2')]},'host':{'type':Sequelize[_0x458a('0x2')]},'authentication':{'type':Sequelize[_0x458a('0x3')],'defaultValue':!![]},'user':{'type':Sequelize[_0x458a('0x2')]},'password':{'type':Sequelize[_0x458a('0x2')]},'port':{'type':Sequelize[_0x458a('0x4')]},'tls':{'type':Sequelize[_0x458a('0x3')],'defaultValue':!![]},'mailbox':{'type':Sequelize[_0x458a('0x2')],'defaultValue':_0x458a('0x5')},'connTimeout':{'type':Sequelize[_0x458a('0x4')],'defaultValue':0xa},'authTimeout':{'type':Sequelize[_0x458a('0x4')],'defaultValue':0x5},'service':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0x1339=['INTEGER','STRING','BOOLEAN'];(function(_0x5a2d3f,_0x27b04e){var _0x5c65d8=function(_0x2d1965){while(--_0x2d1965){_0x5a2d3f['push'](_0x5a2d3f['shift']());}};_0x5c65d8(++_0x27b04e);}(_0x1339,0x1ed));var _0x9133=function(_0x5e5686,_0x195fb6){_0x5e5686=_0x5e5686-0x0;var _0x439c30=_0x1339[_0x5e5686];return _0x439c30;};'use strict';var Sequelize=require('sequelize');module['exports']={'description':{'type':Sequelize[_0x9133('0x0')]},'host':{'type':Sequelize[_0x9133('0x0')]},'authentication':{'type':Sequelize[_0x9133('0x1')],'defaultValue':!![]},'user':{'type':Sequelize[_0x9133('0x0')]},'password':{'type':Sequelize[_0x9133('0x0')]},'port':{'type':Sequelize[_0x9133('0x2')]},'tls':{'type':Sequelize[_0x9133('0x1')],'defaultValue':!![]},'mailbox':{'type':Sequelize[_0x9133('0x0')],'defaultValue':'INBOX'},'connTimeout':{'type':Sequelize[_0x9133('0x2')],'defaultValue':0xa},'authTimeout':{'type':Sequelize[_0x9133('0x2')],'defaultValue':0x5},'service':{'type':Sequelize[_0x9133('0x0')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xffea=['lodash','util','../../config/logger','moment','bluebird','path','rimraf','../../config/environment','./mailServerIn.attributes','exports','define','MailServerIn','mail_servers_in'];(function(_0x1beef3,_0x57c4b8){var _0x5af964=function(_0x36f463){while(--_0x36f463){_0x1beef3['push'](_0x1beef3['shift']());}};_0x5af964(++_0x57c4b8);}(_0xffea,0x193));var _0xaffe=function(_0x51ce66,_0x2472d0){_0x51ce66=_0x51ce66-0x0;var _0x59a704=_0xffea[_0x51ce66];return _0x59a704;};'use strict';var _=require(_0xaffe('0x0'));var util=require(_0xaffe('0x1'));var logger=require(_0xaffe('0x2'))('api');var moment=require(_0xaffe('0x3'));var BPromise=require(_0xaffe('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xaffe('0x5'));var rimraf=require(_0xaffe('0x6'));var config=require(_0xaffe('0x7'));var attributes=require(_0xaffe('0x8'));module[_0xaffe('0x9')]=function(_0x486108,_0x13900b){return _0x486108[_0xaffe('0xa')](_0xaffe('0xb'),attributes,{'tableName':_0xaffe('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x84e0=['define','MailServerIn','util','api','bluebird','request-promise','path','rimraf','./mailServerIn.attributes'];(function(_0x1a50cb,_0x3062d8){var _0x13f7e4=function(_0x5f5672){while(--_0x5f5672){_0x1a50cb['push'](_0x1a50cb['shift']());}};_0x13f7e4(++_0x3062d8);}(_0x84e0,0xfe));var _0x084e=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x84e0[_0x3dd15e];return _0x231fd0;};'use strict';var _=require('lodash');var util=require(_0x084e('0x0'));var logger=require('../../config/logger')(_0x084e('0x1'));var moment=require('moment');var BPromise=require(_0x084e('0x2'));var rp=require(_0x084e('0x3'));var fs=require('fs');var path=require(_0x084e('0x4'));var rimraf=require(_0x084e('0x5'));var config=require('../../config/environment');var attributes=require(_0x084e('0x6'));module['exports']=function(_0x58e98a,_0x3e999d){return _0x58e98a[_0x084e('0x7')](_0x084e('0x8'),attributes,{'tableName':'mail_servers_in','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe2b4=['GetMailServerIn','MailServerIn','findAll','options','raw','where','attributes','limit','include','model','map','then','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','info','MailServerIn,\x20%s,\x20%s','request\x20sent','debug','MailServerIn,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch'];(function(_0x2dafbe,_0x5d04de){var _0x58a45a=function(_0x50ac96){while(--_0x50ac96){_0x2dafbe['push'](_0x2dafbe['shift']());}};_0x58a45a(++_0x5d04de);}(_0xe2b4,0x1d3));var _0x4e2b=function(_0x57a780,_0x145803){_0x57a780=_0x57a780-0x0;var _0x4a5304=_0xe2b4[_0x57a780];return _0x4a5304;};'use strict';var _=require(_0x4e2b('0x0'));var util=require('util');var moment=require(_0x4e2b('0x1'));var BPromise=require(_0x4e2b('0x2'));var rs=require(_0x4e2b('0x3'));var fs=require('fs');var Redis=require(_0x4e2b('0x4'));var db=require(_0x4e2b('0x5'))['db'];var utils=require(_0x4e2b('0x6'));var logger=require(_0x4e2b('0x7'))(_0x4e2b('0x8'));var config=require('../../config/environment');var jayson=require(_0x4e2b('0x9'));var client=jayson[_0x4e2b('0xa')][_0x4e2b('0xb')]({'port':0x232a});function respondWithRpcPromise(_0xf51885,_0xc8590a,_0x2a2516){return new BPromise(function(_0x2913a9,_0x4dd80b){return client['request'](_0xf51885,_0x2a2516)['then'](function(_0x2b2827){logger[_0x4e2b('0xc')](_0x4e2b('0xd'),_0xc8590a,_0x4e2b('0xe'));logger[_0x4e2b('0xf')](_0x4e2b('0x10'),_0xc8590a,_0x4e2b('0xe'),JSON[_0x4e2b('0x11')](_0x2b2827));if(_0x2b2827['error']){if(_0x2b2827[_0x4e2b('0x12')][_0x4e2b('0x13')]===0x1f4){logger['error'](_0x4e2b('0xd'),_0xc8590a,_0x2b2827[_0x4e2b('0x12')]['message']);return _0x4dd80b(_0x2b2827[_0x4e2b('0x12')]['message']);}logger[_0x4e2b('0x12')](_0x4e2b('0xd'),_0xc8590a,_0x2b2827[_0x4e2b('0x12')][_0x4e2b('0x14')]);return _0x2913a9(_0x2b2827[_0x4e2b('0x12')][_0x4e2b('0x14')]);}else{logger[_0x4e2b('0xc')](_0x4e2b('0xd'),_0xc8590a,_0x4e2b('0xe'));_0x2913a9(_0x2b2827[_0x4e2b('0x15')]['message']);}})[_0x4e2b('0x16')](function(_0x4c1cd2){logger['error']('MailServerIn,\x20%s,\x20%s',_0xc8590a,_0x4c1cd2);_0x4dd80b(_0x4c1cd2);});});}exports[_0x4e2b('0x17')]=function(_0x25285d){var _0x150aa8=this;return new Promise(function(_0x193661,_0x1fd980){return db[_0x4e2b('0x18')][_0x4e2b('0x19')]({'raw':_0x25285d[_0x4e2b('0x1a')]?_0x25285d['options'][_0x4e2b('0x1b')]===undefined?!![]:![]:!![],'where':_0x25285d[_0x4e2b('0x1a')]?_0x25285d[_0x4e2b('0x1a')][_0x4e2b('0x1c')]||null:null,'attributes':_0x25285d[_0x4e2b('0x1a')]?_0x25285d[_0x4e2b('0x1a')][_0x4e2b('0x1d')]||null:null,'limit':_0x25285d['options']?_0x25285d[_0x4e2b('0x1a')][_0x4e2b('0x1e')]||null:null,'include':_0x25285d[_0x4e2b('0x1a')]?_0x25285d[_0x4e2b('0x1a')][_0x4e2b('0x1f')]?_['map'](_0x25285d['options'][_0x4e2b('0x1f')],function(_0x3670a3){return{'model':db[_0x3670a3[_0x4e2b('0x20')]],'as':_0x3670a3['as'],'attributes':_0x3670a3[_0x4e2b('0x1d')],'include':_0x3670a3[_0x4e2b('0x1f')]?_[_0x4e2b('0x21')](_0x3670a3[_0x4e2b('0x1f')],function(_0x1375c0){return{'model':db[_0x1375c0['model']],'as':_0x1375c0['as'],'attributes':_0x1375c0[_0x4e2b('0x1d')],'include':_0x1375c0[_0x4e2b('0x1f')]?_['map'](_0x1375c0['include'],function(_0x271ebb){return{'model':db[_0x271ebb['model']],'as':_0x271ebb['as'],'attributes':_0x271ebb['attributes']};}):[]};}):[]};}):[]:[]})[_0x4e2b('0x22')](function(_0x233554){logger[_0x4e2b('0xc')]('GetMailServerIn',_0x25285d);logger[_0x4e2b('0xf')](_0x4e2b('0x17'),_0x25285d,JSON[_0x4e2b('0x11')](_0x233554));_0x193661(_0x233554);})['catch'](function(_0xe39de7){logger['error']('GetMailServerIn',_0xe39de7['message'],_0x25285d);_0x1fd980(_0x150aa8[_0x4e2b('0x12')](0x1f4,_0xe39de7[_0x4e2b('0x14')]));});});};
\ No newline at end of file
+var _0x0ae5=['../../config/utils','../../config/logger','../../config/environment','client','http','request','then','info','MailServerIn,\x20%s,\x20%s','request\x20sent','debug','MailServerIn,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','MailServerIn','findAll','options','raw','where','limit','include','map','attributes','model','GetMailServerIn','lodash','util','moment','bluebird','ioredis'];(function(_0x573d96,_0x3cb205){var _0x14d177=function(_0x11359f){while(--_0x11359f){_0x573d96['push'](_0x573d96['shift']());}};_0x14d177(++_0x3cb205);}(_0x0ae5,0x1a8));var _0x50ae=function(_0x4b6515,_0x35f66d){_0x4b6515=_0x4b6515-0x0;var _0x4bc37e=_0x0ae5[_0x4b6515];return _0x4bc37e;};'use strict';var _=require(_0x50ae('0x0'));var util=require(_0x50ae('0x1'));var moment=require(_0x50ae('0x2'));var BPromise=require(_0x50ae('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x50ae('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x50ae('0x5'));var logger=require(_0x50ae('0x6'))('rpc');var config=require(_0x50ae('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x50ae('0x8')][_0x50ae('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x5cdc0a,_0x58b111,_0x32b266){return new BPromise(function(_0x156750,_0x591209){return client[_0x50ae('0xa')](_0x5cdc0a,_0x32b266)[_0x50ae('0xb')](function(_0x51fee5){logger[_0x50ae('0xc')](_0x50ae('0xd'),_0x58b111,_0x50ae('0xe'));logger[_0x50ae('0xf')](_0x50ae('0x10'),_0x58b111,_0x50ae('0xe'),JSON['stringify'](_0x51fee5));if(_0x51fee5[_0x50ae('0x11')]){if(_0x51fee5['error'][_0x50ae('0x12')]===0x1f4){logger[_0x50ae('0x11')]('MailServerIn,\x20%s,\x20%s',_0x58b111,_0x51fee5[_0x50ae('0x11')][_0x50ae('0x13')]);return _0x591209(_0x51fee5[_0x50ae('0x11')][_0x50ae('0x13')]);}logger[_0x50ae('0x11')](_0x50ae('0xd'),_0x58b111,_0x51fee5[_0x50ae('0x11')]['message']);return _0x156750(_0x51fee5[_0x50ae('0x11')]['message']);}else{logger[_0x50ae('0xc')]('MailServerIn,\x20%s,\x20%s',_0x58b111,_0x50ae('0xe'));_0x156750(_0x51fee5[_0x50ae('0x14')]['message']);}})[_0x50ae('0x15')](function(_0x23a48c){logger[_0x50ae('0x11')](_0x50ae('0xd'),_0x58b111,_0x23a48c);_0x591209(_0x23a48c);});});}exports['GetMailServerIn']=function(_0x3966fd){var _0x5ad01f=this;return new Promise(function(_0x353f66,_0x4daf34){return db[_0x50ae('0x16')][_0x50ae('0x17')]({'raw':_0x3966fd[_0x50ae('0x18')]?_0x3966fd[_0x50ae('0x18')][_0x50ae('0x19')]===undefined?!![]:![]:!![],'where':_0x3966fd[_0x50ae('0x18')]?_0x3966fd['options'][_0x50ae('0x1a')]||null:null,'attributes':_0x3966fd[_0x50ae('0x18')]?_0x3966fd[_0x50ae('0x18')]['attributes']||null:null,'limit':_0x3966fd[_0x50ae('0x18')]?_0x3966fd[_0x50ae('0x18')][_0x50ae('0x1b')]||null:null,'include':_0x3966fd[_0x50ae('0x18')]?_0x3966fd[_0x50ae('0x18')][_0x50ae('0x1c')]?_[_0x50ae('0x1d')](_0x3966fd[_0x50ae('0x18')][_0x50ae('0x1c')],function(_0x46a1b6){return{'model':db[_0x46a1b6['model']],'as':_0x46a1b6['as'],'attributes':_0x46a1b6[_0x50ae('0x1e')],'include':_0x46a1b6['include']?_[_0x50ae('0x1d')](_0x46a1b6[_0x50ae('0x1c')],function(_0x219df0){return{'model':db[_0x219df0['model']],'as':_0x219df0['as'],'attributes':_0x219df0[_0x50ae('0x1e')],'include':_0x219df0[_0x50ae('0x1c')]?_['map'](_0x219df0['include'],function(_0x249543){return{'model':db[_0x249543[_0x50ae('0x1f')]],'as':_0x249543['as'],'attributes':_0x249543[_0x50ae('0x1e')]};}):[]};}):[]};}):[]:[]})[_0x50ae('0xb')](function(_0x57a78e){logger['info'](_0x50ae('0x20'),_0x3966fd);logger['debug'](_0x50ae('0x20'),_0x3966fd,JSON['stringify'](_0x57a78e));_0x353f66(_0x57a78e);})[_0x50ae('0x15')](function(_0x353cab){logger[_0x50ae('0x11')]('GetMailServerIn',_0x353cab[_0x50ae('0x13')],_0x3966fd);_0x4daf34(_0x5ad01f[_0x50ae('0x11')](0x1f4,_0x353cab[_0x50ae('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['index','/:id','isAuthenticated','post','delete','destroy','exports','multer','util','path','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./mailServerOut.controller','get'];(function(_0x2b10c6,_0x185590){var _0x3789d2=function(_0x272987){while(--_0x272987){_0x2b10c6['push'](_0x2b10c6['shift']());}};_0x3789d2(++_0x185590);}(_0x7a54,0x106));var _0x47a5=function(_0x181726,_0x472fe3){_0x181726=_0x181726-0x0;var _0x2b12cc=_0x7a54[_0x181726];return _0x2b12cc;};'use strict';var multer=require(_0x47a5('0x0'));var util=require(_0x47a5('0x1'));var path=require(_0x47a5('0x2'));var timeout=require('connect-timeout');var express=require(_0x47a5('0x3'));var router=express[_0x47a5('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x47a5('0x5'));var interaction=require(_0x47a5('0x6'));var config=require(_0x47a5('0x7'));var controller=require(_0x47a5('0x8'));router[_0x47a5('0x9')]('/',auth['isAuthenticated'](),controller[_0x47a5('0xa')]);router['get'](_0x47a5('0xb'),auth[_0x47a5('0xc')](),controller['show']);router[_0x47a5('0xd')]('/',auth['isAuthenticated'](),controller['create']);router['put'](_0x47a5('0xb'),auth[_0x47a5('0xc')](),controller['update']);router[_0x47a5('0xe')]('/:id',auth['isAuthenticated'](),controller[_0x47a5('0xf')]);module[_0x47a5('0x10')]=router;
\ No newline at end of file
+var _0x7a54=['index','/:id','isAuthenticated','post','delete','destroy','exports','multer','util','path','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./mailServerOut.controller','get'];(function(_0x4243a3,_0x447337){var _0x1b2a33=function(_0x6a8200){while(--_0x6a8200){_0x4243a3['push'](_0x4243a3['shift']());}};_0x1b2a33(++_0x447337);}(_0x7a54,0x106));var _0x47a5=function(_0x13b278,_0x31f655){_0x13b278=_0x13b278-0x0;var _0x543eaa=_0x7a54[_0x13b278];return _0x543eaa;};'use strict';var multer=require(_0x47a5('0x0'));var util=require(_0x47a5('0x1'));var path=require(_0x47a5('0x2'));var timeout=require('connect-timeout');var express=require(_0x47a5('0x3'));var router=express[_0x47a5('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x47a5('0x5'));var interaction=require(_0x47a5('0x6'));var config=require(_0x47a5('0x7'));var controller=require(_0x47a5('0x8'));router[_0x47a5('0x9')]('/',auth['isAuthenticated'](),controller[_0x47a5('0xa')]);router['get'](_0x47a5('0xb'),auth[_0x47a5('0xc')](),controller['show']);router[_0x47a5('0xd')]('/',auth['isAuthenticated'](),controller['create']);router['put'](_0x47a5('0xb'),auth[_0x47a5('0xc')](),controller['update']);router[_0x47a5('0xe')]('/:id',auth['isAuthenticated'](),controller[_0x47a5('0xf')]);module[_0x47a5('0x10')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xecef=['BOOLEAN','sequelize','exports','STRING','INTEGER'];(function(_0xe4fabd,_0x4ee2f7){var _0x376723=function(_0x5cf840){while(--_0x5cf840){_0xe4fabd['push'](_0xe4fabd['shift']());}};_0x376723(++_0x4ee2f7);}(_0xecef,0xdd));var _0xfece=function(_0x1beb14,_0x116d9d){_0x1beb14=_0x1beb14-0x0;var _0x180bc2=_0xecef[_0x1beb14];return _0x180bc2;};'use strict';var Sequelize=require(_0xfece('0x0'));module[_0xfece('0x1')]={'description':{'type':Sequelize[_0xfece('0x2')]},'host':{'type':Sequelize['STRING']},'user':{'type':Sequelize[_0xfece('0x2')]},'pass':{'type':Sequelize['STRING']},'port':{'type':Sequelize[_0xfece('0x3')]},'secure':{'type':Sequelize[_0xfece('0x4')],'defaultValue':![]},'service':{'type':Sequelize[_0xfece('0x2')]},'authentication':{'type':Sequelize[_0xfece('0x4')],'defaultValue':!![]}};
\ No newline at end of file
+var _0x5bc7=['exports','STRING','BOOLEAN','sequelize'];(function(_0x312c7d,_0x151d63){var _0x4932da=function(_0x2fe562){while(--_0x2fe562){_0x312c7d['push'](_0x312c7d['shift']());}};_0x4932da(++_0x151d63);}(_0x5bc7,0x15b));var _0x75bc=function(_0x1b26db,_0x39a3cf){_0x1b26db=_0x1b26db-0x0;var _0x568570=_0x5bc7[_0x1b26db];return _0x568570;};'use strict';var Sequelize=require(_0x75bc('0x0'));module[_0x75bc('0x1')]={'description':{'type':Sequelize['STRING']},'host':{'type':Sequelize['STRING']},'user':{'type':Sequelize[_0x75bc('0x2')]},'pass':{'type':Sequelize[_0x75bc('0x2')]},'port':{'type':Sequelize['INTEGER']},'secure':{'type':Sequelize[_0x75bc('0x3')],'defaultValue':![]},'service':{'type':Sequelize[_0x75bc('0x2')]},'authentication':{'type':Sequelize[_0x75bc('0x3')],'defaultValue':!![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfef3=['ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','status','end','json','offset','limit','undefined','count','set','Content-Range','reject','then','destroy','error','stack','name','index','fieldName','type','model','map','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','merge','MailServerOut','includeAll','include','findAll','catch','show','keys','rawAttributes','find','create','body','params','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','sox','to-csv'];(function(_0x5a8906,_0x5e7665){var _0x5a89e5=function(_0x38f666){while(--_0x38f666){_0x5a8906['push'](_0x5a8906['shift']());}};_0x5a89e5(++_0x5e7665);}(_0xfef3,0xc7));var _0x3fef=function(_0x48a672,_0x2bf4bf){_0x48a672=_0x48a672-0x0;var _0x12f715=_0xfef3[_0x48a672];return _0x12f715;};'use strict';var emlformat=require(_0x3fef('0x0'));var rimraf=require(_0x3fef('0x1'));var zipdir=require(_0x3fef('0x2'));var jsonpatch=require(_0x3fef('0x3'));var rp=require('request-promise');var moment=require(_0x3fef('0x4'));var BPromise=require(_0x3fef('0x5'));var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require(_0x3fef('0x6'));var csv=require(_0x3fef('0x7'));var ejs=require(_0x3fef('0x8'));var fs=require('fs');var fs_extra=require(_0x3fef('0x9'));var _=require(_0x3fef('0xa'));var squel=require(_0x3fef('0xb'));var crypto=require(_0x3fef('0xc'));var jsforce=require(_0x3fef('0xd'));var deskjs=require(_0x3fef('0xe'));var toCsv=require('to-csv');var querystring=require(_0x3fef('0xf'));var Papa=require(_0x3fef('0x10'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x3fef('0x11'));var as=require(_0x3fef('0x12'));var hardwareService=require(_0x3fef('0x13'));var logger=require(_0x3fef('0x14'))(_0x3fef('0x15'));var utils=require(_0x3fef('0x16'));var config=require(_0x3fef('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x3fef('0x18'))['db'];function respondWithStatusCode(_0x2331c7,_0x5d480b){_0x5d480b=_0x5d480b||0xcc;return function(_0x1b925f){if(_0x1b925f){return _0x2331c7['sendStatus'](_0x5d480b);}return _0x2331c7[_0x3fef('0x19')](_0x5d480b)[_0x3fef('0x1a')]();};}function respondWithResult(_0x174249,_0xe30487){_0xe30487=_0xe30487||0xc8;return function(_0xdbd013){if(_0xdbd013){return _0x174249[_0x3fef('0x19')](_0xe30487)[_0x3fef('0x1b')](_0xdbd013);}};}function respondWithFilteredResult(_0x134790,_0x2767a3){return function(_0x15f1f9){if(_0x15f1f9){var _0x2ae2ef=typeof _0x2767a3[_0x3fef('0x1c')]==='undefined'&&typeof _0x2767a3[_0x3fef('0x1d')]===_0x3fef('0x1e');var _0x11ccea=_0x15f1f9[_0x3fef('0x1f')];var _0x2bcc27=_0x2ae2ef?0x0:_0x2767a3[_0x3fef('0x1c')];var _0x502a22=_0x2ae2ef?_0x15f1f9[_0x3fef('0x1f')]:_0x2767a3[_0x3fef('0x1c')]+_0x2767a3[_0x3fef('0x1d')];var _0xb90cd8;if(_0x502a22>=_0x11ccea){_0x502a22=_0x11ccea;_0xb90cd8=0xc8;}else{_0xb90cd8=0xce;}_0x134790[_0x3fef('0x19')](_0xb90cd8);return _0x134790[_0x3fef('0x20')](_0x3fef('0x21'),_0x2bcc27+'-'+_0x502a22+'/'+_0x11ccea)[_0x3fef('0x1b')](_0x15f1f9);}return null;};}function patchUpdates(_0x2477fc){return function(_0x57794c){try{jsonpatch['apply'](_0x57794c,_0x2477fc,!![]);}catch(_0x23a182){return BPromise[_0x3fef('0x22')](_0x23a182);}return _0x57794c['save']();};}function saveUpdates(_0x46a5f5,_0x20a562){return function(_0x10e401){if(_0x10e401){return _0x10e401['update'](_0x46a5f5)[_0x3fef('0x23')](function(_0x3821ff){return _0x3821ff;});}return null;};}function removeEntity(_0x50e8a2,_0x294fae){return function(_0x1668f6){if(_0x1668f6){return _0x1668f6[_0x3fef('0x24')]()[_0x3fef('0x23')](function(){_0x50e8a2['status'](0xcc)[_0x3fef('0x1a')]();});}};}function handleEntityNotFound(_0x5a91db,_0x25eb16){return function(_0x460cf2){if(!_0x460cf2){_0x5a91db['sendStatus'](0x194);}return _0x460cf2;};}function handleError(_0x52705d,_0x32684a){_0x32684a=_0x32684a||0x1f4;return function(_0xff4ba2){logger[_0x3fef('0x25')](_0xff4ba2[_0x3fef('0x26')]);if(_0xff4ba2[_0x3fef('0x27')]){delete _0xff4ba2[_0x3fef('0x27')];}_0x52705d[_0x3fef('0x19')](_0x32684a)['send'](_0xff4ba2);};}exports[_0x3fef('0x28')]=function(_0x2734a7,_0x124667){var _0x398647={},_0x1bcdc3={},_0x583c46={'count':0x0,'rows':[]};var _0xe4fb49=_['map'](db['MailServerOut']['rawAttributes'],function(_0xfb8804){return{'name':_0xfb8804[_0x3fef('0x29')],'type':_0xfb8804[_0x3fef('0x2a')]['key']};});_0x1bcdc3[_0x3fef('0x2b')]=_[_0x3fef('0x2c')](_0xe4fb49,_0x3fef('0x27'));_0x1bcdc3[_0x3fef('0x2d')]=_['keys'](_0x2734a7[_0x3fef('0x2d')]);_0x1bcdc3[_0x3fef('0x2e')]=_[_0x3fef('0x2f')](_0x1bcdc3[_0x3fef('0x2b')],_0x1bcdc3[_0x3fef('0x2d')]);_0x398647[_0x3fef('0x30')]=_[_0x3fef('0x2f')](_0x1bcdc3[_0x3fef('0x2b')],qs['fields'](_0x2734a7[_0x3fef('0x2d')][_0x3fef('0x31')]));_0x398647['attributes']=_0x398647[_0x3fef('0x30')][_0x3fef('0x32')]?_0x398647[_0x3fef('0x30')]:_0x1bcdc3[_0x3fef('0x2b')];if(!_0x2734a7[_0x3fef('0x2d')][_0x3fef('0x33')](_0x3fef('0x34'))){_0x398647[_0x3fef('0x1d')]=qs[_0x3fef('0x1d')](_0x2734a7[_0x3fef('0x2d')][_0x3fef('0x1d')]);_0x398647[_0x3fef('0x1c')]=qs[_0x3fef('0x1c')](_0x2734a7[_0x3fef('0x2d')]['offset']);}_0x398647[_0x3fef('0x35')]=qs[_0x3fef('0x36')](_0x2734a7[_0x3fef('0x2d')]['sort']);_0x398647[_0x3fef('0x37')]=qs[_0x3fef('0x2e')](_['pick'](_0x2734a7[_0x3fef('0x2d')],_0x1bcdc3[_0x3fef('0x2e')]),_0xe4fb49);if(_0x2734a7[_0x3fef('0x2d')]['filter']){_0x398647[_0x3fef('0x37')]=_[_0x3fef('0x38')](_0x398647[_0x3fef('0x37')],{'$or':_['map'](_0xe4fb49,function(_0x1a704e){if(_0x1a704e['type']!=='VIRTUAL'){var _0x1e7b8c={};_0x1e7b8c[_0x1a704e[_0x3fef('0x27')]]={'$like':'%'+_0x2734a7[_0x3fef('0x2d')]['filter']+'%'};return _0x1e7b8c;}})});}_0x398647=_[_0x3fef('0x38')]({},_0x398647,_0x2734a7['options']);var _0x11f22e={'where':_0x398647[_0x3fef('0x37')]};return db[_0x3fef('0x39')][_0x3fef('0x1f')](_0x11f22e)[_0x3fef('0x23')](function(_0x3e5d03){_0x583c46[_0x3fef('0x1f')]=_0x3e5d03;if(_0x2734a7['query'][_0x3fef('0x3a')]){_0x398647[_0x3fef('0x3b')]=[{'all':!![]}];}return db[_0x3fef('0x39')][_0x3fef('0x3c')](_0x398647);})[_0x3fef('0x23')](function(_0xf49c21){_0x583c46['rows']=_0xf49c21;return _0x583c46;})[_0x3fef('0x23')](respondWithFilteredResult(_0x124667,_0x398647))[_0x3fef('0x3d')](handleError(_0x124667,null));};exports[_0x3fef('0x3e')]=function(_0x5edb39,_0x4a0ce8){var _0x26e64b={'raw':!![],'where':{'id':_0x5edb39['params']['id']}},_0x4468db={};_0x4468db['model']=_[_0x3fef('0x3f')](db[_0x3fef('0x39')][_0x3fef('0x40')]);_0x4468db[_0x3fef('0x2d')]=_[_0x3fef('0x3f')](_0x5edb39['query']);_0x4468db[_0x3fef('0x2e')]=_['intersection'](_0x4468db[_0x3fef('0x2b')],_0x4468db[_0x3fef('0x2d')]);_0x26e64b[_0x3fef('0x30')]=_[_0x3fef('0x2f')](_0x4468db[_0x3fef('0x2b')],qs[_0x3fef('0x31')](_0x5edb39['query']['fields']));_0x26e64b[_0x3fef('0x30')]=_0x26e64b['attributes'][_0x3fef('0x32')]?_0x26e64b[_0x3fef('0x30')]:_0x4468db[_0x3fef('0x2b')];if(_0x5edb39[_0x3fef('0x2d')][_0x3fef('0x3a')]){_0x26e64b[_0x3fef('0x3b')]=[{'all':!![]}];}_0x26e64b=_[_0x3fef('0x38')]({},_0x26e64b,_0x5edb39['options']);return db[_0x3fef('0x39')][_0x3fef('0x41')](_0x26e64b)['then'](handleEntityNotFound(_0x4a0ce8,null))[_0x3fef('0x23')](respondWithResult(_0x4a0ce8,null))['catch'](handleError(_0x4a0ce8,null));};exports[_0x3fef('0x42')]=function(_0x55eb8d,_0x6b8e88){return db[_0x3fef('0x39')][_0x3fef('0x42')](_0x55eb8d[_0x3fef('0x43')],{})['then'](respondWithResult(_0x6b8e88,0xc9))[_0x3fef('0x3d')](handleError(_0x6b8e88,null));};exports['update']=function(_0xfe25ed,_0x42d55c){if(_0xfe25ed[_0x3fef('0x43')]['id']){delete _0xfe25ed[_0x3fef('0x43')]['id'];}return db[_0x3fef('0x39')][_0x3fef('0x41')]({'where':{'id':_0xfe25ed[_0x3fef('0x44')]['id']}})[_0x3fef('0x23')](handleEntityNotFound(_0x42d55c,null))[_0x3fef('0x23')](saveUpdates(_0xfe25ed[_0x3fef('0x43')],null))['then'](respondWithResult(_0x42d55c,null))[_0x3fef('0x3d')](handleError(_0x42d55c,null));};exports[_0x3fef('0x24')]=function(_0x30f3aa,_0x3edddc){return db[_0x3fef('0x39')][_0x3fef('0x41')]({'where':{'id':_0x30f3aa['params']['id']}})[_0x3fef('0x23')](handleEntityNotFound(_0x3edddc,null))[_0x3fef('0x23')](removeEntity(_0x3edddc,null))['catch'](handleError(_0x3edddc,null));};
\ No newline at end of file
+var _0x2346=['../../config/license/util','../../mysqldb','sendStatus','status','json','offset','limit','count','set','Content-Range','apply','reject','save','update','then','end','error','stack','name','send','index','map','MailServerOut','rawAttributes','type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','merge','includeAll','include','findAll','rows','catch','params','options','find','create','body','destroy','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','util','path','sox','to-csv','lodash','squel','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment'];(function(_0xf5ec9a,_0x1ae6e1){var _0x216b93=function(_0x10977e){while(--_0x10977e){_0xf5ec9a['push'](_0xf5ec9a['shift']());}};_0x216b93(++_0x1ae6e1);}(_0x2346,0x11d));var _0x6234=function(_0x11e30d,_0x5584aa){_0x11e30d=_0x11e30d-0x0;var _0x2d4e29=_0x2346[_0x11e30d];return _0x2d4e29;};'use strict';var emlformat=require(_0x6234('0x0'));var rimraf=require(_0x6234('0x1'));var zipdir=require(_0x6234('0x2'));var jsonpatch=require(_0x6234('0x3'));var rp=require(_0x6234('0x4'));var moment=require('moment');var BPromise=require(_0x6234('0x5'));var Mustache=require('mustache');var util=require(_0x6234('0x6'));var path=require(_0x6234('0x7'));var sox=require(_0x6234('0x8'));var csv=require(_0x6234('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x6234('0xa'));var squel=require(_0x6234('0xb'));var crypto=require('crypto');var jsforce=require(_0x6234('0xc'));var deskjs=require(_0x6234('0xd'));var toCsv=require(_0x6234('0x9'));var querystring=require(_0x6234('0xe'));var Papa=require('papaparse');var Redis=require(_0x6234('0xf'));var authService=require(_0x6234('0x10'));var qs=require(_0x6234('0x11'));var as=require(_0x6234('0x12'));var hardwareService=require(_0x6234('0x13'));var logger=require('../../config/logger')(_0x6234('0x14'));var utils=require(_0x6234('0x15'));var config=require(_0x6234('0x16'));var licenseUtil=require(_0x6234('0x17'));var db=require(_0x6234('0x18'))['db'];function respondWithStatusCode(_0x2fe780,_0x3786aa){_0x3786aa=_0x3786aa||0xcc;return function(_0x222313){if(_0x222313){return _0x2fe780[_0x6234('0x19')](_0x3786aa);}return _0x2fe780[_0x6234('0x1a')](_0x3786aa)['end']();};}function respondWithResult(_0x3bc56b,_0xb4f770){_0xb4f770=_0xb4f770||0xc8;return function(_0x402b46){if(_0x402b46){return _0x3bc56b[_0x6234('0x1a')](_0xb4f770)[_0x6234('0x1b')](_0x402b46);}};}function respondWithFilteredResult(_0x39d214,_0xbbed20){return function(_0x33f915){if(_0x33f915){var _0x6658f6=typeof _0xbbed20[_0x6234('0x1c')]==='undefined'&&typeof _0xbbed20[_0x6234('0x1d')]==='undefined';var _0x432837=_0x33f915[_0x6234('0x1e')];var _0x5aea3b=_0x6658f6?0x0:_0xbbed20[_0x6234('0x1c')];var _0x1b9041=_0x6658f6?_0x33f915['count']:_0xbbed20[_0x6234('0x1c')]+_0xbbed20[_0x6234('0x1d')];var _0x32f5c3;if(_0x1b9041>=_0x432837){_0x1b9041=_0x432837;_0x32f5c3=0xc8;}else{_0x32f5c3=0xce;}_0x39d214[_0x6234('0x1a')](_0x32f5c3);return _0x39d214[_0x6234('0x1f')](_0x6234('0x20'),_0x5aea3b+'-'+_0x1b9041+'/'+_0x432837)[_0x6234('0x1b')](_0x33f915);}return null;};}function patchUpdates(_0x14aa06){return function(_0x3fba91){try{jsonpatch[_0x6234('0x21')](_0x3fba91,_0x14aa06,!![]);}catch(_0x532251){return BPromise[_0x6234('0x22')](_0x532251);}return _0x3fba91[_0x6234('0x23')]();};}function saveUpdates(_0x2c2cd2,_0x338c2e){return function(_0xa1abc){if(_0xa1abc){return _0xa1abc[_0x6234('0x24')](_0x2c2cd2)[_0x6234('0x25')](function(_0xc74d0f){return _0xc74d0f;});}return null;};}function removeEntity(_0x1f7de0,_0x599adc){return function(_0x1f2f44){if(_0x1f2f44){return _0x1f2f44['destroy']()[_0x6234('0x25')](function(){_0x1f7de0[_0x6234('0x1a')](0xcc)[_0x6234('0x26')]();});}};}function handleEntityNotFound(_0x5831bc,_0x4b90ff){return function(_0x3ab9af){if(!_0x3ab9af){_0x5831bc[_0x6234('0x19')](0x194);}return _0x3ab9af;};}function handleError(_0x5cf457,_0x164a18){_0x164a18=_0x164a18||0x1f4;return function(_0x2ae912){logger[_0x6234('0x27')](_0x2ae912[_0x6234('0x28')]);if(_0x2ae912[_0x6234('0x29')]){delete _0x2ae912[_0x6234('0x29')];}_0x5cf457['status'](_0x164a18)[_0x6234('0x2a')](_0x2ae912);};}exports[_0x6234('0x2b')]=function(_0x16e2e4,_0x54d9a2){var _0x45b5b1={},_0x22e3d8={},_0x48815c={'count':0x0,'rows':[]};var _0x3ea9cf=_[_0x6234('0x2c')](db[_0x6234('0x2d')][_0x6234('0x2e')],function(_0x17bf4e){return{'name':_0x17bf4e['fieldName'],'type':_0x17bf4e[_0x6234('0x2f')][_0x6234('0x30')]};});_0x22e3d8[_0x6234('0x31')]=_[_0x6234('0x2c')](_0x3ea9cf,_0x6234('0x29'));_0x22e3d8[_0x6234('0x32')]=_[_0x6234('0x33')](_0x16e2e4[_0x6234('0x32')]);_0x22e3d8[_0x6234('0x34')]=_[_0x6234('0x35')](_0x22e3d8[_0x6234('0x31')],_0x22e3d8[_0x6234('0x32')]);_0x45b5b1['attributes']=_[_0x6234('0x35')](_0x22e3d8[_0x6234('0x31')],qs[_0x6234('0x36')](_0x16e2e4[_0x6234('0x32')]['fields']));_0x45b5b1[_0x6234('0x37')]=_0x45b5b1[_0x6234('0x37')][_0x6234('0x38')]?_0x45b5b1['attributes']:_0x22e3d8[_0x6234('0x31')];if(!_0x16e2e4[_0x6234('0x32')][_0x6234('0x39')](_0x6234('0x3a'))){_0x45b5b1[_0x6234('0x1d')]=qs['limit'](_0x16e2e4[_0x6234('0x32')]['limit']);_0x45b5b1[_0x6234('0x1c')]=qs[_0x6234('0x1c')](_0x16e2e4[_0x6234('0x32')][_0x6234('0x1c')]);}_0x45b5b1[_0x6234('0x3b')]=qs[_0x6234('0x3c')](_0x16e2e4[_0x6234('0x32')][_0x6234('0x3c')]);_0x45b5b1[_0x6234('0x3d')]=qs[_0x6234('0x34')](_[_0x6234('0x3e')](_0x16e2e4[_0x6234('0x32')],_0x22e3d8[_0x6234('0x34')]),_0x3ea9cf);if(_0x16e2e4['query'][_0x6234('0x3f')]){_0x45b5b1['where']=_['merge'](_0x45b5b1[_0x6234('0x3d')],{'$or':_[_0x6234('0x2c')](_0x3ea9cf,function(_0x11bd58){if(_0x11bd58[_0x6234('0x2f')]!==_0x6234('0x40')){var _0x1c72fa={};_0x1c72fa[_0x11bd58[_0x6234('0x29')]]={'$like':'%'+_0x16e2e4[_0x6234('0x32')]['filter']+'%'};return _0x1c72fa;}})});}_0x45b5b1=_[_0x6234('0x41')]({},_0x45b5b1,_0x16e2e4['options']);var _0x28cfd2={'where':_0x45b5b1[_0x6234('0x3d')]};return db[_0x6234('0x2d')][_0x6234('0x1e')](_0x28cfd2)['then'](function(_0x1c49ff){_0x48815c[_0x6234('0x1e')]=_0x1c49ff;if(_0x16e2e4[_0x6234('0x32')][_0x6234('0x42')]){_0x45b5b1[_0x6234('0x43')]=[{'all':!![]}];}return db[_0x6234('0x2d')][_0x6234('0x44')](_0x45b5b1);})['then'](function(_0x4a9941){_0x48815c[_0x6234('0x45')]=_0x4a9941;return _0x48815c;})[_0x6234('0x25')](respondWithFilteredResult(_0x54d9a2,_0x45b5b1))[_0x6234('0x46')](handleError(_0x54d9a2,null));};exports['show']=function(_0x59c226,_0x19eac1){var _0x1f8224={'raw':!![],'where':{'id':_0x59c226[_0x6234('0x47')]['id']}},_0x3a90ae={};_0x3a90ae[_0x6234('0x31')]=_[_0x6234('0x33')](db[_0x6234('0x2d')]['rawAttributes']);_0x3a90ae[_0x6234('0x32')]=_[_0x6234('0x33')](_0x59c226['query']);_0x3a90ae['filters']=_['intersection'](_0x3a90ae[_0x6234('0x31')],_0x3a90ae[_0x6234('0x32')]);_0x1f8224['attributes']=_[_0x6234('0x35')](_0x3a90ae[_0x6234('0x31')],qs[_0x6234('0x36')](_0x59c226['query'][_0x6234('0x36')]));_0x1f8224['attributes']=_0x1f8224[_0x6234('0x37')][_0x6234('0x38')]?_0x1f8224[_0x6234('0x37')]:_0x3a90ae[_0x6234('0x31')];if(_0x59c226[_0x6234('0x32')][_0x6234('0x42')]){_0x1f8224[_0x6234('0x43')]=[{'all':!![]}];}_0x1f8224=_[_0x6234('0x41')]({},_0x1f8224,_0x59c226[_0x6234('0x48')]);return db[_0x6234('0x2d')][_0x6234('0x49')](_0x1f8224)[_0x6234('0x25')](handleEntityNotFound(_0x19eac1,null))[_0x6234('0x25')](respondWithResult(_0x19eac1,null))[_0x6234('0x46')](handleError(_0x19eac1,null));};exports[_0x6234('0x4a')]=function(_0x38bc43,_0x1ab2ec){return db[_0x6234('0x2d')][_0x6234('0x4a')](_0x38bc43['body'],{})['then'](respondWithResult(_0x1ab2ec,0xc9))[_0x6234('0x46')](handleError(_0x1ab2ec,null));};exports['update']=function(_0x54350b,_0x2d7cac){if(_0x54350b[_0x6234('0x4b')]['id']){delete _0x54350b['body']['id'];}return db['MailServerOut'][_0x6234('0x49')]({'where':{'id':_0x54350b[_0x6234('0x47')]['id']}})[_0x6234('0x25')](handleEntityNotFound(_0x2d7cac,null))['then'](saveUpdates(_0x54350b['body'],null))['then'](respondWithResult(_0x2d7cac,null))[_0x6234('0x46')](handleError(_0x2d7cac,null));};exports[_0x6234('0x4c')]=function(_0x2a4cfa,_0x2d6cd1){return db[_0x6234('0x2d')][_0x6234('0x49')]({'where':{'id':_0x2a4cfa[_0x6234('0x47')]['id']}})[_0x6234('0x25')](handleEntityNotFound(_0x2d6cd1,null))['then'](removeEntity(_0x2d6cd1,null))[_0x6234('0x46')](handleError(_0x2d6cd1,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xabae=['exports','define','mail_servers_out','lodash','util','../../config/logger','api','moment','request-promise','path','rimraf','../../config/environment','./mailServerOut.attributes'];(function(_0x102e37,_0x14a181){var _0x35a07c=function(_0x16577f){while(--_0x16577f){_0x102e37['push'](_0x102e37['shift']());}};_0x35a07c(++_0x14a181);}(_0xabae,0xe0));var _0xeaba=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0xabae[_0x14add3];return _0x4a174f;};'use strict';var _=require(_0xeaba('0x0'));var util=require(_0xeaba('0x1'));var logger=require(_0xeaba('0x2'))(_0xeaba('0x3'));var moment=require(_0xeaba('0x4'));var BPromise=require('bluebird');var rp=require(_0xeaba('0x5'));var fs=require('fs');var path=require(_0xeaba('0x6'));var rimraf=require(_0xeaba('0x7'));var config=require(_0xeaba('0x8'));var attributes=require(_0xeaba('0x9'));module[_0xeaba('0xa')]=function(_0x45adc8,_0x378548){return _0x45adc8[_0xeaba('0xb')]('MailServerOut',attributes,{'tableName':_0xeaba('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x68c0=['request-promise','rimraf','../../config/environment','define','mail_servers_out','util','../../config/logger','api','moment'];(function(_0x68ee8b,_0x3cc6c5){var _0x5148f7=function(_0x5dcbd5){while(--_0x5dcbd5){_0x68ee8b['push'](_0x68ee8b['shift']());}};_0x5148f7(++_0x3cc6c5);}(_0x68c0,0x1eb));var _0x068c=function(_0x41dab7,_0x223b24){_0x41dab7=_0x41dab7-0x0;var _0xcd3f35=_0x68c0[_0x41dab7];return _0xcd3f35;};'use strict';var _=require('lodash');var util=require(_0x068c('0x0'));var logger=require(_0x068c('0x1'))(_0x068c('0x2'));var moment=require(_0x068c('0x3'));var BPromise=require('bluebird');var rp=require(_0x068c('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x068c('0x5'));var config=require(_0x068c('0x6'));var attributes=require('./mailServerOut.attributes');module['exports']=function(_0x379736,_0x4a2786){return _0x379736[_0x068c('0x7')]('MailServerOut',attributes,{'tableName':_0x068c('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2ef3=['bluebird','randomstring','ioredis','../../config/utils','../../config/logger','../../config/environment','jayson/promise','request','then','info','MailServerOut,\x20%s,\x20%s','MailServerOut,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','catch','lodash','util','moment'];(function(_0x14cc29,_0x4b1488){var _0x52dea5=function(_0x12b7de){while(--_0x12b7de){_0x14cc29['push'](_0x14cc29['shift']());}};_0x52dea5(++_0x4b1488);}(_0x2ef3,0xba));var _0x32ef=function(_0x27cbe0,_0xac9586){_0x27cbe0=_0x27cbe0-0x0;var _0x2193a0=_0x2ef3[_0x27cbe0];return _0x2193a0;};'use strict';var _=require(_0x32ef('0x0'));var util=require(_0x32ef('0x1'));var moment=require(_0x32ef('0x2'));var BPromise=require(_0x32ef('0x3'));var rs=require(_0x32ef('0x4'));var fs=require('fs');var Redis=require(_0x32ef('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x32ef('0x6'));var logger=require(_0x32ef('0x7'))('rpc');var config=require(_0x32ef('0x8'));var jayson=require(_0x32ef('0x9'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x2c0089,_0x4bfcf8,_0x367c39){return new BPromise(function(_0x2fb8eb,_0x234863){return client[_0x32ef('0xa')](_0x2c0089,_0x367c39)[_0x32ef('0xb')](function(_0x2bbb50){logger[_0x32ef('0xc')](_0x32ef('0xd'),_0x4bfcf8,'request\x20sent');logger['debug'](_0x32ef('0xe'),_0x4bfcf8,_0x32ef('0xf'),JSON[_0x32ef('0x10')](_0x2bbb50));if(_0x2bbb50[_0x32ef('0x11')]){if(_0x2bbb50['error'][_0x32ef('0x12')]===0x1f4){logger['error'](_0x32ef('0xd'),_0x4bfcf8,_0x2bbb50['error'][_0x32ef('0x13')]);return _0x234863(_0x2bbb50[_0x32ef('0x11')]['message']);}logger['error'](_0x32ef('0xd'),_0x4bfcf8,_0x2bbb50['error'][_0x32ef('0x13')]);return _0x2fb8eb(_0x2bbb50[_0x32ef('0x11')][_0x32ef('0x13')]);}else{logger[_0x32ef('0xc')]('MailServerOut,\x20%s,\x20%s',_0x4bfcf8,'request\x20sent');_0x2fb8eb(_0x2bbb50['result'][_0x32ef('0x13')]);}})[_0x32ef('0x14')](function(_0xb5aed2){logger['error']('MailServerOut,\x20%s,\x20%s',_0x4bfcf8,_0xb5aed2);_0x234863(_0xb5aed2);});});}
\ No newline at end of file
+var _0x5f2f=['lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/environment','jayson/promise','client','http','request','info','MailServerOut,\x20%s,\x20%s','debug','stringify','error','code','message','request\x20sent','result','catch'];(function(_0x1cee44,_0x328806){var _0x2a6b79=function(_0x1076bd){while(--_0x1076bd){_0x1cee44['push'](_0x1cee44['shift']());}};_0x2a6b79(++_0x328806);}(_0x5f2f,0x73));var _0xf5f2=function(_0x21c570,_0x405ef3){_0x21c570=_0x21c570-0x0;var _0x573cc3=_0x5f2f[_0x21c570];return _0x573cc3;};'use strict';var _=require(_0xf5f2('0x0'));var util=require(_0xf5f2('0x1'));var moment=require(_0xf5f2('0x2'));var BPromise=require(_0xf5f2('0x3'));var rs=require(_0xf5f2('0x4'));var fs=require('fs');var Redis=require(_0xf5f2('0x5'));var db=require(_0xf5f2('0x6'))['db'];var utils=require(_0xf5f2('0x7'));var logger=require('../../config/logger')('rpc');var config=require(_0xf5f2('0x8'));var jayson=require(_0xf5f2('0x9'));var client=jayson[_0xf5f2('0xa')][_0xf5f2('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x3133bc,_0x473100,_0x5907aa){return new BPromise(function(_0x466882,_0x46cd9c){return client[_0xf5f2('0xc')](_0x3133bc,_0x5907aa)['then'](function(_0x375da4){logger[_0xf5f2('0xd')](_0xf5f2('0xe'),_0x473100,'request\x20sent');logger[_0xf5f2('0xf')]('MailServerOut,\x20%s,\x20%s,\x20%s',_0x473100,'request\x20sent',JSON[_0xf5f2('0x10')](_0x375da4));if(_0x375da4[_0xf5f2('0x11')]){if(_0x375da4['error'][_0xf5f2('0x12')]===0x1f4){logger[_0xf5f2('0x11')](_0xf5f2('0xe'),_0x473100,_0x375da4[_0xf5f2('0x11')][_0xf5f2('0x13')]);return _0x46cd9c(_0x375da4[_0xf5f2('0x11')]['message']);}logger[_0xf5f2('0x11')](_0xf5f2('0xe'),_0x473100,_0x375da4[_0xf5f2('0x11')][_0xf5f2('0x13')]);return _0x466882(_0x375da4[_0xf5f2('0x11')]['message']);}else{logger[_0xf5f2('0xd')](_0xf5f2('0xe'),_0x473100,_0xf5f2('0x14'));_0x466882(_0x375da4[_0xf5f2('0x15')][_0xf5f2('0x13')]);}})[_0xf5f2('0x16')](function(_0xdb61b3){logger[_0xf5f2('0x11')](_0xf5f2('0xe'),_0x473100,_0xdb61b3);_0x46cd9c(_0xdb61b3);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf790=['update','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./mailSubstatus.controller','get','index','/describe','isAuthenticated','describe','show','post','put','/:id'];(function(_0x28ee8c,_0x12066e){var _0x116fc9=function(_0x56424f){while(--_0x56424f){_0x28ee8c['push'](_0x28ee8c['shift']());}};_0x116fc9(++_0x12066e);}(_0xf790,0x1e4));var _0x0f79=function(_0x2ab765,_0x4ca1f5){_0x2ab765=_0x2ab765-0x0;var _0x1b5510=_0xf790[_0x2ab765];return _0x1b5510;};'use strict';var multer=require(_0x0f79('0x0'));var util=require(_0x0f79('0x1'));var path=require(_0x0f79('0x2'));var timeout=require(_0x0f79('0x3'));var express=require(_0x0f79('0x4'));var router=express[_0x0f79('0x5')]();var fs_extra=require(_0x0f79('0x6'));var auth=require(_0x0f79('0x7'));var interaction=require(_0x0f79('0x8'));var config=require(_0x0f79('0x9'));var controller=require(_0x0f79('0xa'));router[_0x0f79('0xb')]('/',auth['isAuthenticated'](),controller[_0x0f79('0xc')]);router['get'](_0x0f79('0xd'),auth[_0x0f79('0xe')](),controller[_0x0f79('0xf')]);router[_0x0f79('0xb')]('/:id',auth['isAuthenticated'](),controller[_0x0f79('0x10')]);router[_0x0f79('0x11')]('/',auth['isAuthenticated'](),controller['create']);router[_0x0f79('0x12')](_0x0f79('0x13'),auth[_0x0f79('0xe')](),controller[_0x0f79('0x14')]);router[_0x0f79('0x15')](_0x0f79('0x13'),auth[_0x0f79('0xe')](),controller[_0x0f79('0x16')]);module[_0x0f79('0x17')]=router;
\ No newline at end of file
+var _0x4121=['connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./mailSubstatus.controller','isAuthenticated','index','get','/describe','describe','/:id','show','post','put','update','delete','exports','multer','util','path'];(function(_0x55d829,_0x43f06c){var _0x52163b=function(_0x493cd8){while(--_0x493cd8){_0x55d829['push'](_0x55d829['shift']());}};_0x52163b(++_0x43f06c);}(_0x4121,0x6b));var _0x1412=function(_0x3432b1,_0x326ce7){_0x3432b1=_0x3432b1-0x0;var _0x5753ea=_0x4121[_0x3432b1];return _0x5753ea;};'use strict';var multer=require(_0x1412('0x0'));var util=require(_0x1412('0x1'));var path=require(_0x1412('0x2'));var timeout=require(_0x1412('0x3'));var express=require(_0x1412('0x4'));var router=express[_0x1412('0x5')]();var fs_extra=require(_0x1412('0x6'));var auth=require('../../components/auth/service');var interaction=require(_0x1412('0x7'));var config=require(_0x1412('0x8'));var controller=require(_0x1412('0x9'));router['get']('/',auth[_0x1412('0xa')](),controller[_0x1412('0xb')]);router[_0x1412('0xc')](_0x1412('0xd'),auth[_0x1412('0xa')](),controller[_0x1412('0xe')]);router[_0x1412('0xc')](_0x1412('0xf'),auth[_0x1412('0xa')](),controller[_0x1412('0x10')]);router[_0x1412('0x11')]('/',auth[_0x1412('0xa')](),controller['create']);router[_0x1412('0x12')]('/:id',auth[_0x1412('0xa')](),controller[_0x1412('0x13')]);router[_0x1412('0x14')]('/:id',auth[_0x1412('0xa')](),controller['destroy']);module[_0x1412('0x15')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc359=['name','STRING','exports'];(function(_0x12fb36,_0x2285e9){var _0x37952d=function(_0xb5fe2d){while(--_0xb5fe2d){_0x12fb36['push'](_0x12fb36['shift']());}};_0x37952d(++_0x2285e9);}(_0xc359,0x1d9));var _0x9c35=function(_0x3dea7d,_0x2cd4ea){_0x3dea7d=_0x3dea7d-0x0;var _0x53919a=_0xc359[_0x3dea7d];return _0x53919a;};'use strict';var Sequelize=require('sequelize');module[_0x9c35('0x0')]={'name':{'type':Sequelize['STRING'],'unique':_0x9c35('0x1'),'allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize[_0x9c35('0x2')]}};
\ No newline at end of file
+var _0xa6b0=['STRING','sequelize','exports'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0xa6b0,0xaf));var _0x0a6b=function(_0xf74a4c,_0x391ebb){_0xf74a4c=_0xf74a4c-0x0;var _0x286be3=_0xa6b0[_0xf74a4c];return _0x286be3;};'use strict';var Sequelize=require(_0x0a6b('0x0'));module[_0x0a6b('0x1')]={'name':{'type':Sequelize['STRING'],'unique':'name','allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize[_0x0a6b('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x09fb=['filter','merge','options','includeAll','include','findAll','rows','catch','show','params','keys','find','create','body','describe','eml-format','zip-dir','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','Content-Range','apply','reject','save','then','destroy','name','send','index','MailSubstatus','rawAttributes','type','model','map','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','where','pick','VIRTUAL'];(function(_0x378f17,_0x5bcfdc){var _0xa2adf0=function(_0x584487){while(--_0x584487){_0x378f17['push'](_0x378f17['shift']());}};_0xa2adf0(++_0x5bcfdc);}(_0x09fb,0xea));var _0xb09f=function(_0x3702ee,_0x351731){_0x3702ee=_0x3702ee-0x0;var _0x591bcc=_0x09fb[_0x3702ee];return _0x591bcc;};'use strict';var emlformat=require(_0xb09f('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xb09f('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xb09f('0x2'));var moment=require(_0xb09f('0x3'));var BPromise=require(_0xb09f('0x4'));var Mustache=require(_0xb09f('0x5'));var util=require('util');var path=require(_0xb09f('0x6'));var sox=require(_0xb09f('0x7'));var csv=require(_0xb09f('0x8'));var ejs=require(_0xb09f('0x9'));var fs=require('fs');var fs_extra=require(_0xb09f('0xa'));var _=require('lodash');var squel=require(_0xb09f('0xb'));var crypto=require(_0xb09f('0xc'));var jsforce=require(_0xb09f('0xd'));var deskjs=require(_0xb09f('0xe'));var toCsv=require('to-csv');var querystring=require(_0xb09f('0xf'));var Papa=require(_0xb09f('0x10'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0xb09f('0x11'));var as=require(_0xb09f('0x12'));var hardwareService=require(_0xb09f('0x13'));var logger=require(_0xb09f('0x14'))(_0xb09f('0x15'));var utils=require(_0xb09f('0x16'));var config=require(_0xb09f('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0xb09f('0x18'))['db'];function respondWithStatusCode(_0x4edf60,_0xd2191a){_0xd2191a=_0xd2191a||0xcc;return function(_0x5ba889){if(_0x5ba889){return _0x4edf60[_0xb09f('0x19')](_0xd2191a);}return _0x4edf60[_0xb09f('0x1a')](_0xd2191a)[_0xb09f('0x1b')]();};}function respondWithResult(_0x270ec0,_0x3850ba){_0x3850ba=_0x3850ba||0xc8;return function(_0x1d8a9){if(_0x1d8a9){return _0x270ec0[_0xb09f('0x1a')](_0x3850ba)[_0xb09f('0x1c')](_0x1d8a9);}};}function respondWithFilteredResult(_0x15228c,_0x2f5d3c){return function(_0x4f4fac){if(_0x4f4fac){var _0xcf37bd=typeof _0x2f5d3c[_0xb09f('0x1d')]===_0xb09f('0x1e')&&typeof _0x2f5d3c['limit']===_0xb09f('0x1e');var _0x1708d7=_0x4f4fac[_0xb09f('0x1f')];var _0x424abb=_0xcf37bd?0x0:_0x2f5d3c[_0xb09f('0x1d')];var _0x13fdd6=_0xcf37bd?_0x4f4fac[_0xb09f('0x1f')]:_0x2f5d3c[_0xb09f('0x1d')]+_0x2f5d3c[_0xb09f('0x20')];var _0x298943;if(_0x13fdd6>=_0x1708d7){_0x13fdd6=_0x1708d7;_0x298943=0xc8;}else{_0x298943=0xce;}_0x15228c[_0xb09f('0x1a')](_0x298943);return _0x15228c['set'](_0xb09f('0x21'),_0x424abb+'-'+_0x13fdd6+'/'+_0x1708d7)[_0xb09f('0x1c')](_0x4f4fac);}return null;};}function patchUpdates(_0x1559af){return function(_0x2d786d){try{jsonpatch[_0xb09f('0x22')](_0x2d786d,_0x1559af,!![]);}catch(_0x2afca3){return BPromise[_0xb09f('0x23')](_0x2afca3);}return _0x2d786d[_0xb09f('0x24')]();};}function saveUpdates(_0x866069,_0x2cf347){return function(_0x30b19d){if(_0x30b19d){return _0x30b19d['update'](_0x866069)[_0xb09f('0x25')](function(_0x5d81f1){return _0x5d81f1;});}return null;};}function removeEntity(_0x281ddc,_0x55c7fa){return function(_0x52e395){if(_0x52e395){return _0x52e395[_0xb09f('0x26')]()[_0xb09f('0x25')](function(){_0x281ddc[_0xb09f('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x353e99,_0x2702cd){return function(_0x2f3699){if(!_0x2f3699){_0x353e99[_0xb09f('0x19')](0x194);}return _0x2f3699;};}function handleError(_0xf11c8,_0x473ddb){_0x473ddb=_0x473ddb||0x1f4;return function(_0x547250){logger['error'](_0x547250['stack']);if(_0x547250['name']){delete _0x547250[_0xb09f('0x27')];}_0xf11c8['status'](_0x473ddb)[_0xb09f('0x28')](_0x547250);};}exports[_0xb09f('0x29')]=function(_0x48f418,_0x31919d){var _0x1238bd={},_0x39641f={},_0x141838={'count':0x0,'rows':[]};var _0x1b7f70=_['map'](db[_0xb09f('0x2a')][_0xb09f('0x2b')],function(_0x1d15b4){return{'name':_0x1d15b4['fieldName'],'type':_0x1d15b4[_0xb09f('0x2c')]['key']};});_0x39641f[_0xb09f('0x2d')]=_[_0xb09f('0x2e')](_0x1b7f70,_0xb09f('0x27'));_0x39641f[_0xb09f('0x2f')]=_['keys'](_0x48f418['query']);_0x39641f[_0xb09f('0x30')]=_[_0xb09f('0x31')](_0x39641f[_0xb09f('0x2d')],_0x39641f[_0xb09f('0x2f')]);_0x1238bd[_0xb09f('0x32')]=_[_0xb09f('0x31')](_0x39641f['model'],qs[_0xb09f('0x33')](_0x48f418[_0xb09f('0x2f')][_0xb09f('0x33')]));_0x1238bd[_0xb09f('0x32')]=_0x1238bd['attributes'][_0xb09f('0x34')]?_0x1238bd[_0xb09f('0x32')]:_0x39641f['model'];if(!_0x48f418[_0xb09f('0x2f')][_0xb09f('0x35')](_0xb09f('0x36'))){_0x1238bd[_0xb09f('0x20')]=qs[_0xb09f('0x20')](_0x48f418['query'][_0xb09f('0x20')]);_0x1238bd[_0xb09f('0x1d')]=qs[_0xb09f('0x1d')](_0x48f418[_0xb09f('0x2f')][_0xb09f('0x1d')]);}_0x1238bd['order']=qs['sort'](_0x48f418[_0xb09f('0x2f')]['sort']);_0x1238bd[_0xb09f('0x37')]=qs[_0xb09f('0x30')](_[_0xb09f('0x38')](_0x48f418[_0xb09f('0x2f')],_0x39641f[_0xb09f('0x30')]),_0x1b7f70);if(_0x48f418[_0xb09f('0x2f')]['filter']){_0x1238bd[_0xb09f('0x37')]=_['merge'](_0x1238bd[_0xb09f('0x37')],{'$or':_['map'](_0x1b7f70,function(_0x4de9fe){if(_0x4de9fe['type']!==_0xb09f('0x39')){var _0xb723f8={};_0xb723f8[_0x4de9fe['name']]={'$like':'%'+_0x48f418['query'][_0xb09f('0x3a')]+'%'};return _0xb723f8;}})});}_0x1238bd=_[_0xb09f('0x3b')]({},_0x1238bd,_0x48f418[_0xb09f('0x3c')]);var _0x2ed30f={'where':_0x1238bd[_0xb09f('0x37')]};return db[_0xb09f('0x2a')][_0xb09f('0x1f')](_0x2ed30f)[_0xb09f('0x25')](function(_0x105b23){_0x141838[_0xb09f('0x1f')]=_0x105b23;if(_0x48f418[_0xb09f('0x2f')][_0xb09f('0x3d')]){_0x1238bd[_0xb09f('0x3e')]=[{'all':!![]}];}return db[_0xb09f('0x2a')][_0xb09f('0x3f')](_0x1238bd);})[_0xb09f('0x25')](function(_0xfe7068){_0x141838[_0xb09f('0x40')]=_0xfe7068;return _0x141838;})[_0xb09f('0x25')](respondWithFilteredResult(_0x31919d,_0x1238bd))[_0xb09f('0x41')](handleError(_0x31919d,null));};exports[_0xb09f('0x42')]=function(_0x5d062a,_0xa92c6a){var _0x27d49d={'raw':!![],'where':{'id':_0x5d062a[_0xb09f('0x43')]['id']}},_0x5b0a5e={};_0x5b0a5e[_0xb09f('0x2d')]=_['keys'](db['MailSubstatus'][_0xb09f('0x2b')]);_0x5b0a5e[_0xb09f('0x2f')]=_[_0xb09f('0x44')](_0x5d062a[_0xb09f('0x2f')]);_0x5b0a5e[_0xb09f('0x30')]=_[_0xb09f('0x31')](_0x5b0a5e[_0xb09f('0x2d')],_0x5b0a5e[_0xb09f('0x2f')]);_0x27d49d[_0xb09f('0x32')]=_[_0xb09f('0x31')](_0x5b0a5e[_0xb09f('0x2d')],qs[_0xb09f('0x33')](_0x5d062a[_0xb09f('0x2f')][_0xb09f('0x33')]));_0x27d49d[_0xb09f('0x32')]=_0x27d49d['attributes']['length']?_0x27d49d[_0xb09f('0x32')]:_0x5b0a5e['model'];if(_0x5d062a[_0xb09f('0x2f')][_0xb09f('0x3d')]){_0x27d49d[_0xb09f('0x3e')]=[{'all':!![]}];}_0x27d49d=_[_0xb09f('0x3b')]({},_0x27d49d,_0x5d062a['options']);return db[_0xb09f('0x2a')][_0xb09f('0x45')](_0x27d49d)[_0xb09f('0x25')](handleEntityNotFound(_0xa92c6a,null))[_0xb09f('0x25')](respondWithResult(_0xa92c6a,null))['catch'](handleError(_0xa92c6a,null));};exports[_0xb09f('0x46')]=function(_0x3b1184,_0x53d19d){return db[_0xb09f('0x2a')][_0xb09f('0x46')](_0x3b1184[_0xb09f('0x47')],{})['then'](respondWithResult(_0x53d19d,0xc9))[_0xb09f('0x41')](handleError(_0x53d19d,null));};exports['update']=function(_0x21f82,_0x42c9b0){if(_0x21f82[_0xb09f('0x47')]['id']){delete _0x21f82[_0xb09f('0x47')]['id'];}return db[_0xb09f('0x2a')][_0xb09f('0x45')]({'where':{'id':_0x21f82['params']['id']}})[_0xb09f('0x25')](handleEntityNotFound(_0x42c9b0,null))[_0xb09f('0x25')](saveUpdates(_0x21f82[_0xb09f('0x47')],null))[_0xb09f('0x25')](respondWithResult(_0x42c9b0,null))['catch'](handleError(_0x42c9b0,null));};exports[_0xb09f('0x26')]=function(_0x244d7b,_0x3383ab){return db[_0xb09f('0x2a')][_0xb09f('0x45')]({'where':{'id':_0x244d7b['params']['id']}})[_0xb09f('0x25')](handleEntityNotFound(_0x3383ab,null))['then'](removeEntity(_0x3383ab,null))[_0xb09f('0x41')](handleError(_0x3383ab,null));};exports[_0xb09f('0x48')]=function(_0x4237cd,_0x1bad97){return db[_0xb09f('0x2a')][_0xb09f('0x48')]()[_0xb09f('0x25')](respondWithResult(_0x1bad97,null))[_0xb09f('0x41')](handleError(_0x1bad97,null));};
\ No newline at end of file
+var _0xc134=['filter','VIRTUAL','merge','includeAll','include','catch','params','keys','options','find','create','body','describe','eml-format','zip-dir','request-promise','mustache','util','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','offset','limit','count','Content-Range','json','apply','reject','update','then','destroy','end','error','stack','name','send','index','map','MailSubstatus','rawAttributes','fieldName','type','key','query','filters','intersection','attributes','model','fields','length','hasOwnProperty','nolimit','order','sort','where'];(function(_0x3d2810,_0x22f3ba){var _0x3ea966=function(_0x5253e2){while(--_0x5253e2){_0x3d2810['push'](_0x3d2810['shift']());}};_0x3ea966(++_0x22f3ba);}(_0xc134,0x1b7));var _0x4c13=function(_0x5d1d8a,_0xd6f82){_0x5d1d8a=_0x5d1d8a-0x0;var _0x551ed3=_0xc134[_0x5d1d8a];return _0x551ed3;};'use strict';var emlformat=require(_0x4c13('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x4c13('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x4c13('0x2'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x4c13('0x3'));var util=require(_0x4c13('0x4'));var path=require('path');var sox=require(_0x4c13('0x5'));var csv=require(_0x4c13('0x6'));var ejs=require(_0x4c13('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x4c13('0x8'));var squel=require(_0x4c13('0x9'));var crypto=require('crypto');var jsforce=require(_0x4c13('0xa'));var deskjs=require(_0x4c13('0xb'));var toCsv=require(_0x4c13('0x6'));var querystring=require(_0x4c13('0xc'));var Papa=require('papaparse');var Redis=require(_0x4c13('0xd'));var authService=require(_0x4c13('0xe'));var qs=require('../../components/parsers/qs');var as=require(_0x4c13('0xf'));var hardwareService=require(_0x4c13('0x10'));var logger=require(_0x4c13('0x11'))(_0x4c13('0x12'));var utils=require('../../config/utils');var config=require(_0x4c13('0x13'));var licenseUtil=require(_0x4c13('0x14'));var db=require(_0x4c13('0x15'))['db'];function respondWithStatusCode(_0x1b066e,_0x56da9d){_0x56da9d=_0x56da9d||0xcc;return function(_0x1064df){if(_0x1064df){return _0x1b066e[_0x4c13('0x16')](_0x56da9d);}return _0x1b066e['status'](_0x56da9d)['end']();};}function respondWithResult(_0x419b7f,_0x887ae8){_0x887ae8=_0x887ae8||0xc8;return function(_0x26c1e7){if(_0x26c1e7){return _0x419b7f[_0x4c13('0x17')](_0x887ae8)['json'](_0x26c1e7);}};}function respondWithFilteredResult(_0xa7a4fd,_0x5e06c2){return function(_0x380a43){if(_0x380a43){var _0x339fe9=typeof _0x5e06c2[_0x4c13('0x18')]==='undefined'&&typeof _0x5e06c2[_0x4c13('0x19')]==='undefined';var _0x9e076a=_0x380a43['count'];var _0x4230c7=_0x339fe9?0x0:_0x5e06c2[_0x4c13('0x18')];var _0x1a497d=_0x339fe9?_0x380a43[_0x4c13('0x1a')]:_0x5e06c2['offset']+_0x5e06c2[_0x4c13('0x19')];var _0x41f330;if(_0x1a497d>=_0x9e076a){_0x1a497d=_0x9e076a;_0x41f330=0xc8;}else{_0x41f330=0xce;}_0xa7a4fd[_0x4c13('0x17')](_0x41f330);return _0xa7a4fd['set'](_0x4c13('0x1b'),_0x4230c7+'-'+_0x1a497d+'/'+_0x9e076a)[_0x4c13('0x1c')](_0x380a43);}return null;};}function patchUpdates(_0x509046){return function(_0x4618f0){try{jsonpatch[_0x4c13('0x1d')](_0x4618f0,_0x509046,!![]);}catch(_0x2fad19){return BPromise[_0x4c13('0x1e')](_0x2fad19);}return _0x4618f0['save']();};}function saveUpdates(_0x12eaa9,_0xcfb808){return function(_0x27886e){if(_0x27886e){return _0x27886e[_0x4c13('0x1f')](_0x12eaa9)[_0x4c13('0x20')](function(_0x4ef99a){return _0x4ef99a;});}return null;};}function removeEntity(_0x491a36,_0x59ecbb){return function(_0x2396f4){if(_0x2396f4){return _0x2396f4[_0x4c13('0x21')]()['then'](function(){_0x491a36[_0x4c13('0x17')](0xcc)[_0x4c13('0x22')]();});}};}function handleEntityNotFound(_0x354017,_0x1f10d1){return function(_0x3fa6f3){if(!_0x3fa6f3){_0x354017[_0x4c13('0x16')](0x194);}return _0x3fa6f3;};}function handleError(_0x45c544,_0x5bb173){_0x5bb173=_0x5bb173||0x1f4;return function(_0x457754){logger[_0x4c13('0x23')](_0x457754[_0x4c13('0x24')]);if(_0x457754[_0x4c13('0x25')]){delete _0x457754['name'];}_0x45c544[_0x4c13('0x17')](_0x5bb173)[_0x4c13('0x26')](_0x457754);};}exports[_0x4c13('0x27')]=function(_0x5051c6,_0xbc5ae7){var _0x25e5a6={},_0x27b6b0={},_0x1a0a33={'count':0x0,'rows':[]};var _0x4fe756=_[_0x4c13('0x28')](db[_0x4c13('0x29')][_0x4c13('0x2a')],function(_0x1fe420){return{'name':_0x1fe420[_0x4c13('0x2b')],'type':_0x1fe420[_0x4c13('0x2c')][_0x4c13('0x2d')]};});_0x27b6b0['model']=_[_0x4c13('0x28')](_0x4fe756,_0x4c13('0x25'));_0x27b6b0[_0x4c13('0x2e')]=_['keys'](_0x5051c6['query']);_0x27b6b0[_0x4c13('0x2f')]=_[_0x4c13('0x30')](_0x27b6b0['model'],_0x27b6b0[_0x4c13('0x2e')]);_0x25e5a6[_0x4c13('0x31')]=_[_0x4c13('0x30')](_0x27b6b0[_0x4c13('0x32')],qs[_0x4c13('0x33')](_0x5051c6['query'][_0x4c13('0x33')]));_0x25e5a6[_0x4c13('0x31')]=_0x25e5a6[_0x4c13('0x31')][_0x4c13('0x34')]?_0x25e5a6['attributes']:_0x27b6b0[_0x4c13('0x32')];if(!_0x5051c6[_0x4c13('0x2e')][_0x4c13('0x35')](_0x4c13('0x36'))){_0x25e5a6[_0x4c13('0x19')]=qs[_0x4c13('0x19')](_0x5051c6[_0x4c13('0x2e')][_0x4c13('0x19')]);_0x25e5a6[_0x4c13('0x18')]=qs[_0x4c13('0x18')](_0x5051c6[_0x4c13('0x2e')][_0x4c13('0x18')]);}_0x25e5a6[_0x4c13('0x37')]=qs[_0x4c13('0x38')](_0x5051c6['query'][_0x4c13('0x38')]);_0x25e5a6[_0x4c13('0x39')]=qs['filters'](_['pick'](_0x5051c6[_0x4c13('0x2e')],_0x27b6b0[_0x4c13('0x2f')]),_0x4fe756);if(_0x5051c6[_0x4c13('0x2e')][_0x4c13('0x3a')]){_0x25e5a6[_0x4c13('0x39')]=_['merge'](_0x25e5a6[_0x4c13('0x39')],{'$or':_[_0x4c13('0x28')](_0x4fe756,function(_0xcbc3c6){if(_0xcbc3c6['type']!==_0x4c13('0x3b')){var _0x3ada71={};_0x3ada71[_0xcbc3c6[_0x4c13('0x25')]]={'$like':'%'+_0x5051c6[_0x4c13('0x2e')][_0x4c13('0x3a')]+'%'};return _0x3ada71;}})});}_0x25e5a6=_[_0x4c13('0x3c')]({},_0x25e5a6,_0x5051c6['options']);var _0x755389={'where':_0x25e5a6['where']};return db[_0x4c13('0x29')][_0x4c13('0x1a')](_0x755389)[_0x4c13('0x20')](function(_0x54e983){_0x1a0a33['count']=_0x54e983;if(_0x5051c6[_0x4c13('0x2e')][_0x4c13('0x3d')]){_0x25e5a6[_0x4c13('0x3e')]=[{'all':!![]}];}return db[_0x4c13('0x29')]['findAll'](_0x25e5a6);})[_0x4c13('0x20')](function(_0x4e69ed){_0x1a0a33['rows']=_0x4e69ed;return _0x1a0a33;})[_0x4c13('0x20')](respondWithFilteredResult(_0xbc5ae7,_0x25e5a6))[_0x4c13('0x3f')](handleError(_0xbc5ae7,null));};exports['show']=function(_0x4e0d2b,_0x4acc33){var _0x5562f2={'raw':!![],'where':{'id':_0x4e0d2b[_0x4c13('0x40')]['id']}},_0x578e72={};_0x578e72[_0x4c13('0x32')]=_['keys'](db[_0x4c13('0x29')]['rawAttributes']);_0x578e72[_0x4c13('0x2e')]=_[_0x4c13('0x41')](_0x4e0d2b[_0x4c13('0x2e')]);_0x578e72[_0x4c13('0x2f')]=_['intersection'](_0x578e72[_0x4c13('0x32')],_0x578e72[_0x4c13('0x2e')]);_0x5562f2[_0x4c13('0x31')]=_[_0x4c13('0x30')](_0x578e72[_0x4c13('0x32')],qs[_0x4c13('0x33')](_0x4e0d2b['query'][_0x4c13('0x33')]));_0x5562f2[_0x4c13('0x31')]=_0x5562f2[_0x4c13('0x31')]['length']?_0x5562f2[_0x4c13('0x31')]:_0x578e72[_0x4c13('0x32')];if(_0x4e0d2b[_0x4c13('0x2e')]['includeAll']){_0x5562f2['include']=[{'all':!![]}];}_0x5562f2=_[_0x4c13('0x3c')]({},_0x5562f2,_0x4e0d2b[_0x4c13('0x42')]);return db['MailSubstatus'][_0x4c13('0x43')](_0x5562f2)[_0x4c13('0x20')](handleEntityNotFound(_0x4acc33,null))[_0x4c13('0x20')](respondWithResult(_0x4acc33,null))[_0x4c13('0x3f')](handleError(_0x4acc33,null));};exports[_0x4c13('0x44')]=function(_0xb50012,_0xaf9473){return db['MailSubstatus'][_0x4c13('0x44')](_0xb50012['body'],{})[_0x4c13('0x20')](respondWithResult(_0xaf9473,0xc9))[_0x4c13('0x3f')](handleError(_0xaf9473,null));};exports[_0x4c13('0x1f')]=function(_0x3baa06,_0x59ea74){if(_0x3baa06[_0x4c13('0x45')]['id']){delete _0x3baa06[_0x4c13('0x45')]['id'];}return db[_0x4c13('0x29')][_0x4c13('0x43')]({'where':{'id':_0x3baa06['params']['id']}})[_0x4c13('0x20')](handleEntityNotFound(_0x59ea74,null))[_0x4c13('0x20')](saveUpdates(_0x3baa06['body'],null))[_0x4c13('0x20')](respondWithResult(_0x59ea74,null))[_0x4c13('0x3f')](handleError(_0x59ea74,null));};exports[_0x4c13('0x21')]=function(_0x1fefda,_0x278aa5){return db['MailSubstatus'][_0x4c13('0x43')]({'where':{'id':_0x1fefda[_0x4c13('0x40')]['id']}})['then'](handleEntityNotFound(_0x278aa5,null))[_0x4c13('0x20')](removeEntity(_0x278aa5,null))[_0x4c13('0x3f')](handleError(_0x278aa5,null));};exports[_0x4c13('0x46')]=function(_0x276185,_0x34425a){return db[_0x4c13('0x29')][_0x4c13('0x46')]()['then'](respondWithResult(_0x34425a,null))[_0x4c13('0x3f')](handleError(_0x34425a,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x35d1=['hasOwnProperty','hook','events','../../mysqldb','MailSubstatus','setMaxListeners','emit'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x35d1,0xe2));var _0x135d=function(_0x49beea,_0x47add1){_0x49beea=_0x49beea-0x0;var _0x27693a=_0x35d1[_0x49beea];return _0x27693a;};'use strict';var EventEmitter=require(_0x135d('0x0'));var MailSubstatus=require(_0x135d('0x1'))['db'][_0x135d('0x2')];var MailSubstatusEvents=new EventEmitter();MailSubstatusEvents[_0x135d('0x3')](0x0);var events={'afterUpdate':'update'};function emitEvent(_0x10c9b0){return function(_0x104a8c,_0x52d267,_0x476545){MailSubstatusEvents[_0x135d('0x4')](_0x10c9b0+':'+_0x104a8c['id'],_0x104a8c);MailSubstatusEvents[_0x135d('0x4')](_0x10c9b0,_0x104a8c);_0x476545(null);};}for(var e in events){if(events[_0x135d('0x5')](e)){var event=events[e];MailSubstatus[_0x135d('0x6')](e,emitEvent(event));}}module['exports']=MailSubstatusEvents;
\ No newline at end of file
+var _0x5d12=['setMaxListeners','update','emit','hasOwnProperty','hook','events','../../mysqldb','MailSubstatus'];(function(_0x3ab51d,_0x2fa01d){var _0x29a04e=function(_0x7807b0){while(--_0x7807b0){_0x3ab51d['push'](_0x3ab51d['shift']());}};_0x29a04e(++_0x2fa01d);}(_0x5d12,0x75));var _0x25d1=function(_0x273c39,_0x1052e6){_0x273c39=_0x273c39-0x0;var _0x46d6b5=_0x5d12[_0x273c39];return _0x46d6b5;};'use strict';var EventEmitter=require(_0x25d1('0x0'));var MailSubstatus=require(_0x25d1('0x1'))['db'][_0x25d1('0x2')];var MailSubstatusEvents=new EventEmitter();MailSubstatusEvents[_0x25d1('0x3')](0x0);var events={'afterUpdate':_0x25d1('0x4')};function emitEvent(_0x16adab){return function(_0xccf1fb,_0x3a235c,_0xc57659){MailSubstatusEvents[_0x25d1('0x5')](_0x16adab+':'+_0xccf1fb['id'],_0xccf1fb);MailSubstatusEvents[_0x25d1('0x5')](_0x16adab,_0xccf1fb);_0xc57659(null);};}for(var e in events){if(events[_0x25d1('0x6')](e)){var event=events[e];MailSubstatus[_0x25d1('0x7')](e,emitEvent(event));}}module['exports']=MailSubstatusEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa90e=['MailSubstatus','mail_substatuses','Condition','update','name','mailSubstatus','_previousDataValues','catch','exports','models','define'];(function(_0x187279,_0x26d152){var _0x3da59d=function(_0x41c808){while(--_0x41c808){_0x187279['push'](_0x187279['shift']());}};_0x3da59d(++_0x26d152);}(_0xa90e,0xd9));var _0xea90=function(_0x1ce4f0,_0x35b696){_0x1ce4f0=_0x1ce4f0-0x0;var _0x56df12=_0xa90e[_0x1ce4f0];return _0x56df12;};'use strict';var attributes=require('./mailSubstatus.attributes');module[_0xea90('0x0')]=function(_0x3a0179){var _0x30e53d=_0x3a0179[_0xea90('0x1')];return _0x3a0179[_0xea90('0x2')](_0xea90('0x3'),attributes,{'tableName':_0xea90('0x4'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterUpdate':function(_0x3f3338,_0x56bad3,_0x5d5ee8){return _0x30e53d[_0xea90('0x5')][_0xea90('0x6')]({'value':_0x3f3338[_0xea90('0x7')]},{'where':{'field':_0xea90('0x8'),'value':_0x3f3338[_0xea90('0x9')]['name']}})['then'](function(){_0x5d5ee8();})[_0xea90('0xa')](function(_0x326aa4){_0x5d5ee8(_0x326aa4);});}}});};
\ No newline at end of file
+var _0xe6eb=['name','mailSubstatus','./mailSubstatus.attributes','models','define','MailSubstatus','mail_substatuses','Condition'];(function(_0x150dea,_0x239557){var _0x3e380d=function(_0xe57874){while(--_0xe57874){_0x150dea['push'](_0x150dea['shift']());}};_0x3e380d(++_0x239557);}(_0xe6eb,0x192));var _0xbe6e=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xe6eb[_0x20a584];return _0x4b41a8;};'use strict';var attributes=require(_0xbe6e('0x0'));module['exports']=function(_0x2f4e82){var _0x10ca63=_0x2f4e82[_0xbe6e('0x1')];return _0x2f4e82[_0xbe6e('0x2')](_0xbe6e('0x3'),attributes,{'tableName':_0xbe6e('0x4'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterUpdate':function(_0x238102,_0x5c9a37,_0x4dc65a){return _0x10ca63[_0xbe6e('0x5')]['update']({'value':_0x238102[_0xbe6e('0x6')]},{'where':{'field':_0xbe6e('0x7'),'value':_0x238102['_previousDataValues'][_0xbe6e('0x6')]}})['then'](function(){_0x4dc65a();})['catch'](function(_0xd94dac){_0x4dc65a(_0xd94dac);});}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa4bd=['catch','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','../../config/environment','client','http','request','then','info','request\x20sent','debug','stringify','error','code','MailSubstatus,\x20%s,\x20%s','message','result'];(function(_0x2b5eae,_0x55010d){var _0x5f3ac9=function(_0x397bfc){while(--_0x397bfc){_0x2b5eae['push'](_0x2b5eae['shift']());}};_0x5f3ac9(++_0x55010d);}(_0xa4bd,0x135));var _0xda4b=function(_0x1c4364,_0x56ab68){_0x1c4364=_0x1c4364-0x0;var _0x7aab21=_0xa4bd[_0x1c4364];return _0x7aab21;};'use strict';var _=require(_0xda4b('0x0'));var util=require('util');var moment=require(_0xda4b('0x1'));var BPromise=require(_0xda4b('0x2'));var rs=require(_0xda4b('0x3'));var fs=require('fs');var Redis=require(_0xda4b('0x4'));var db=require(_0xda4b('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0xda4b('0x6'))('rpc');var config=require(_0xda4b('0x7'));var jayson=require('jayson/promise');var client=jayson[_0xda4b('0x8')][_0xda4b('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x3a5da9,_0x3523db,_0x3476ba){return new BPromise(function(_0x23cb70,_0x2d9734){return client[_0xda4b('0xa')](_0x3a5da9,_0x3476ba)[_0xda4b('0xb')](function(_0x4b9a3e){logger[_0xda4b('0xc')]('MailSubstatus,\x20%s,\x20%s',_0x3523db,_0xda4b('0xd'));logger[_0xda4b('0xe')]('MailSubstatus,\x20%s,\x20%s,\x20%s',_0x3523db,_0xda4b('0xd'),JSON[_0xda4b('0xf')](_0x4b9a3e));if(_0x4b9a3e[_0xda4b('0x10')]){if(_0x4b9a3e[_0xda4b('0x10')][_0xda4b('0x11')]===0x1f4){logger[_0xda4b('0x10')](_0xda4b('0x12'),_0x3523db,_0x4b9a3e['error']['message']);return _0x2d9734(_0x4b9a3e['error'][_0xda4b('0x13')]);}logger[_0xda4b('0x10')](_0xda4b('0x12'),_0x3523db,_0x4b9a3e['error']['message']);return _0x23cb70(_0x4b9a3e[_0xda4b('0x10')][_0xda4b('0x13')]);}else{logger['info'](_0xda4b('0x12'),_0x3523db,'request\x20sent');_0x23cb70(_0x4b9a3e[_0xda4b('0x14')][_0xda4b('0x13')]);}})[_0xda4b('0x15')](function(_0x15d076){logger[_0xda4b('0x10')]('MailSubstatus,\x20%s,\x20%s',_0x3523db,_0x15d076);_0x2d9734(_0x15d076);});});}
\ No newline at end of file
+var _0x8ef0=['client','http','request','then','info','MailSubstatus,\x20%s,\x20%s','request\x20sent','debug','MailSubstatus,\x20%s,\x20%s,\x20%s','stringify','code','error','message','result','catch','lodash','util','moment','bluebird','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise'];(function(_0x6cf19c,_0x2f3f02){var _0xce14f3=function(_0x474587){while(--_0x474587){_0x6cf19c['push'](_0x6cf19c['shift']());}};_0xce14f3(++_0x2f3f02);}(_0x8ef0,0xa5));var _0x08ef=function(_0x1287a6,_0x38b142){_0x1287a6=_0x1287a6-0x0;var _0x3b6196=_0x8ef0[_0x1287a6];return _0x3b6196;};'use strict';var _=require(_0x08ef('0x0'));var util=require(_0x08ef('0x1'));var moment=require(_0x08ef('0x2'));var BPromise=require(_0x08ef('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x08ef('0x4'))['db'];var utils=require(_0x08ef('0x5'));var logger=require(_0x08ef('0x6'))(_0x08ef('0x7'));var config=require(_0x08ef('0x8'));var jayson=require(_0x08ef('0x9'));var client=jayson[_0x08ef('0xa')][_0x08ef('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x175027,_0x28a807,_0x42aca9){return new BPromise(function(_0x47df3a,_0x3a53ca){return client[_0x08ef('0xc')](_0x175027,_0x42aca9)[_0x08ef('0xd')](function(_0x189982){logger[_0x08ef('0xe')](_0x08ef('0xf'),_0x28a807,_0x08ef('0x10'));logger[_0x08ef('0x11')](_0x08ef('0x12'),_0x28a807,_0x08ef('0x10'),JSON[_0x08ef('0x13')](_0x189982));if(_0x189982['error']){if(_0x189982['error'][_0x08ef('0x14')]===0x1f4){logger[_0x08ef('0x15')](_0x08ef('0xf'),_0x28a807,_0x189982['error'][_0x08ef('0x16')]);return _0x3a53ca(_0x189982['error'][_0x08ef('0x16')]);}logger['error'](_0x08ef('0xf'),_0x28a807,_0x189982[_0x08ef('0x15')][_0x08ef('0x16')]);return _0x47df3a(_0x189982[_0x08ef('0x15')][_0x08ef('0x16')]);}else{logger[_0x08ef('0xe')](_0x08ef('0xf'),_0x28a807,_0x08ef('0x10'));_0x47df3a(_0x189982[_0x08ef('0x17')][_0x08ef('0x16')]);}})[_0x08ef('0x18')](function(_0x4f5100){logger[_0x08ef('0x15')](_0x08ef('0xf'),_0x28a807,_0x4f5100);_0x3a53ca(_0x4f5100);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x871e=['create','update','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','./mailTransferReport.controller','get','index','describe','/:id','isAuthenticated','post'];(function(_0xec583b,_0x44091e){var _0x4c5d4c=function(_0x208702){while(--_0x208702){_0xec583b['push'](_0xec583b['shift']());}};_0x4c5d4c(++_0x44091e);}(_0x871e,0x181));var _0xe871=function(_0x1cc9af,_0x3947b9){_0x1cc9af=_0x1cc9af-0x0;var _0x16025b=_0x871e[_0x1cc9af];return _0x16025b;};'use strict';var multer=require(_0xe871('0x0'));var util=require(_0xe871('0x1'));var path=require(_0xe871('0x2'));var timeout=require(_0xe871('0x3'));var express=require(_0xe871('0x4'));var router=express[_0xe871('0x5')]();var fs_extra=require(_0xe871('0x6'));var auth=require(_0xe871('0x7'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0xe871('0x8'));router[_0xe871('0x9')]('/',auth['isAuthenticated'](),controller[_0xe871('0xa')]);router[_0xe871('0x9')]('/describe',auth['isAuthenticated'](),controller[_0xe871('0xb')]);router['get'](_0xe871('0xc'),auth[_0xe871('0xd')](),controller['show']);router[_0xe871('0xe')]('/',auth[_0xe871('0xd')](),controller[_0xe871('0xf')]);router['put']('/:id',auth[_0xe871('0xd')](),controller[_0xe871('0x10')]);router[_0xe871('0x11')](_0xe871('0xc'),auth[_0xe871('0xd')](),controller[_0xe871('0x12')]);module[_0xe871('0x13')]=router;
\ No newline at end of file
+var _0xbfba=['get','isAuthenticated','index','/describe','describe','/:id','post','create','update','destroy','exports','connect-timeout','express','Router','fs-extra','../../components/auth/service'];(function(_0x48999d,_0x1e02cb){var _0x1ad0d1=function(_0x3f974e){while(--_0x3f974e){_0x48999d['push'](_0x48999d['shift']());}};_0x1ad0d1(++_0x1e02cb);}(_0xbfba,0xfb));var _0xabfb=function(_0x14f8fe,_0x1a4455){_0x14f8fe=_0x14f8fe-0x0;var _0x39892c=_0xbfba[_0x14f8fe];return _0x39892c;};'use strict';var multer=require('multer');var util=require('util');var path=require('path');var timeout=require(_0xabfb('0x0'));var express=require(_0xabfb('0x1'));var router=express[_0xabfb('0x2')]();var fs_extra=require(_0xabfb('0x3'));var auth=require(_0xabfb('0x4'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require('./mailTransferReport.controller');router[_0xabfb('0x5')]('/',auth[_0xabfb('0x6')](),controller[_0xabfb('0x7')]);router[_0xabfb('0x5')](_0xabfb('0x8'),auth['isAuthenticated'](),controller[_0xabfb('0x9')]);router[_0xabfb('0x5')](_0xabfb('0xa'),auth[_0xabfb('0x6')](),controller['show']);router[_0xabfb('0xb')]('/',auth['isAuthenticated'](),controller[_0xabfb('0xc')]);router['put'](_0xabfb('0xa'),auth['isAuthenticated'](),controller[_0xabfb('0xd')]);router['delete'](_0xabfb('0xa'),auth[_0xabfb('0x6')](),controller[_0xabfb('0xe')]);module[_0xabfb('0xf')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x54ef=['agent','queue','DATE','NOW','moment','sequelize','exports','ENUM','account'];(function(_0x96f54d,_0x5e5d21){var _0xdb885c=function(_0x35225c){while(--_0x35225c){_0x96f54d['push'](_0x96f54d['shift']());}};_0xdb885c(++_0x5e5d21);}(_0x54ef,0x112));var _0xf54e=function(_0x5ee4ad,_0x1e211c){_0x5ee4ad=_0x5ee4ad-0x0;var _0x5f1473=_0x54ef[_0x5ee4ad];return _0x5f1473;};'use strict';var moment=require(_0xf54e('0x0'));var Sequelize=require(_0xf54e('0x1'));module[_0xf54e('0x2')]={'uniqueid':{'type':Sequelize['STRING'],'allowNull':![]},'type':{'type':Sequelize[_0xf54e('0x3')](_0xf54e('0x4'),_0xf54e('0x5'),_0xf54e('0x6')),'allowNull':![],'defaultValue':_0xf54e('0x6')},'transferredAt':{'type':Sequelize[_0xf54e('0x7')],'allowNull':![],'defaultValue':Sequelize[_0xf54e('0x8')]}};
\ No newline at end of file
+var _0xb43b=['DATE','NOW','moment','sequelize','STRING','ENUM','account','queue'];(function(_0x2de0a7,_0x38d3e7){var _0x429437=function(_0x23c148){while(--_0x23c148){_0x2de0a7['push'](_0x2de0a7['shift']());}};_0x429437(++_0x38d3e7);}(_0xb43b,0x1b2));var _0xbb43=function(_0x5c7e06,_0x4ee4a8){_0x5c7e06=_0x5c7e06-0x0;var _0x26bceb=_0xb43b[_0x5c7e06];return _0x26bceb;};'use strict';var moment=require(_0xbb43('0x0'));var Sequelize=require(_0xbb43('0x1'));module['exports']={'uniqueid':{'type':Sequelize[_0xbb43('0x2')],'allowNull':![]},'type':{'type':Sequelize[_0xbb43('0x3')](_0xbb43('0x4'),'agent',_0xbb43('0x5')),'allowNull':![],'defaultValue':_0xbb43('0x5')},'transferredAt':{'type':Sequelize[_0xbb43('0x6')],'allowNull':![],'defaultValue':Sequelize[_0xbb43('0x7')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb368=['name','index','MailTransferReport','rawAttributes','fieldName','type','key','model','map','query','filters','intersection','fields','attributes','length','nolimit','order','sort','where','filter','merge','options','findAll','rows','catch','params','keys','include','find','create','body','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/environment','../../config/license/util','sendStatus','end','status','json','offset','undefined','count','limit','apply','reject','save','update','then','destroy','stack'];(function(_0x530ef4,_0xa9963b){var _0x7030a9=function(_0x1f8225){while(--_0x1f8225){_0x530ef4['push'](_0x530ef4['shift']());}};_0x7030a9(++_0xa9963b);}(_0xb368,0x188));var _0x8b36=function(_0x3b11ca,_0x6b4760){_0x3b11ca=_0x3b11ca-0x0;var _0x3d025f=_0xb368[_0x3b11ca];return _0x3d025f;};'use strict';var emlformat=require(_0x8b36('0x0'));var rimraf=require(_0x8b36('0x1'));var zipdir=require(_0x8b36('0x2'));var jsonpatch=require(_0x8b36('0x3'));var rp=require(_0x8b36('0x4'));var moment=require('moment');var BPromise=require(_0x8b36('0x5'));var Mustache=require(_0x8b36('0x6'));var util=require(_0x8b36('0x7'));var path=require('path');var sox=require(_0x8b36('0x8'));var csv=require(_0x8b36('0x9'));var ejs=require(_0x8b36('0xa'));var fs=require('fs');var fs_extra=require(_0x8b36('0xb'));var _=require(_0x8b36('0xc'));var squel=require(_0x8b36('0xd'));var crypto=require(_0x8b36('0xe'));var jsforce=require(_0x8b36('0xf'));var deskjs=require('desk.js');var toCsv=require(_0x8b36('0x9'));var querystring=require(_0x8b36('0x10'));var Papa=require(_0x8b36('0x11'));var Redis=require(_0x8b36('0x12'));var authService=require(_0x8b36('0x13'));var qs=require(_0x8b36('0x14'));var as=require(_0x8b36('0x15'));var hardwareService=require(_0x8b36('0x16'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require(_0x8b36('0x17'));var licenseUtil=require(_0x8b36('0x18'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1b1b50,_0x43f08a){_0x43f08a=_0x43f08a||0xcc;return function(_0x343b92){if(_0x343b92){return _0x1b1b50[_0x8b36('0x19')](_0x43f08a);}return _0x1b1b50['status'](_0x43f08a)[_0x8b36('0x1a')]();};}function respondWithResult(_0x4805c5,_0x3a1436){_0x3a1436=_0x3a1436||0xc8;return function(_0x2d7dee){if(_0x2d7dee){return _0x4805c5[_0x8b36('0x1b')](_0x3a1436)[_0x8b36('0x1c')](_0x2d7dee);}};}function respondWithFilteredResult(_0x567f09,_0x91718d){return function(_0x5d82e4){if(_0x5d82e4){var _0x2eb9c5=typeof _0x91718d[_0x8b36('0x1d')]==='undefined'&&typeof _0x91718d['limit']===_0x8b36('0x1e');var _0x17673d=_0x5d82e4[_0x8b36('0x1f')];var _0x2adc9c=_0x2eb9c5?0x0:_0x91718d['offset'];var _0x3eb585=_0x2eb9c5?_0x5d82e4[_0x8b36('0x1f')]:_0x91718d[_0x8b36('0x1d')]+_0x91718d[_0x8b36('0x20')];var _0x51e7a6;if(_0x3eb585>=_0x17673d){_0x3eb585=_0x17673d;_0x51e7a6=0xc8;}else{_0x51e7a6=0xce;}_0x567f09['status'](_0x51e7a6);return _0x567f09['set']('Content-Range',_0x2adc9c+'-'+_0x3eb585+'/'+_0x17673d)[_0x8b36('0x1c')](_0x5d82e4);}return null;};}function patchUpdates(_0x594e40){return function(_0x465e21){try{jsonpatch[_0x8b36('0x21')](_0x465e21,_0x594e40,!![]);}catch(_0x1ded26){return BPromise[_0x8b36('0x22')](_0x1ded26);}return _0x465e21[_0x8b36('0x23')]();};}function saveUpdates(_0x2933c0,_0x2204b9){return function(_0x3e2749){if(_0x3e2749){return _0x3e2749[_0x8b36('0x24')](_0x2933c0)[_0x8b36('0x25')](function(_0x3f11e6){return _0x3f11e6;});}return null;};}function removeEntity(_0x1d53b9,_0x1820ef){return function(_0x56b5f0){if(_0x56b5f0){return _0x56b5f0[_0x8b36('0x26')]()[_0x8b36('0x25')](function(){_0x1d53b9[_0x8b36('0x1b')](0xcc)[_0x8b36('0x1a')]();});}};}function handleEntityNotFound(_0x537496,_0x1b7859){return function(_0x16d13e){if(!_0x16d13e){_0x537496[_0x8b36('0x19')](0x194);}return _0x16d13e;};}function handleError(_0x48d810,_0x3e1e79){_0x3e1e79=_0x3e1e79||0x1f4;return function(_0x2b39f0){logger['error'](_0x2b39f0[_0x8b36('0x27')]);if(_0x2b39f0[_0x8b36('0x28')]){delete _0x2b39f0[_0x8b36('0x28')];}_0x48d810[_0x8b36('0x1b')](_0x3e1e79)['send'](_0x2b39f0);};}exports[_0x8b36('0x29')]=function(_0x48c1f2,_0x11fca1){var _0x14bbeb={},_0x33a4d2={},_0x3325c9={'count':0x0,'rows':[]};var _0x5b9f41=_['map'](db[_0x8b36('0x2a')][_0x8b36('0x2b')],function(_0x5e2271){return{'name':_0x5e2271[_0x8b36('0x2c')],'type':_0x5e2271[_0x8b36('0x2d')][_0x8b36('0x2e')]};});_0x33a4d2[_0x8b36('0x2f')]=_[_0x8b36('0x30')](_0x5b9f41,_0x8b36('0x28'));_0x33a4d2['query']=_['keys'](_0x48c1f2[_0x8b36('0x31')]);_0x33a4d2[_0x8b36('0x32')]=_[_0x8b36('0x33')](_0x33a4d2[_0x8b36('0x2f')],_0x33a4d2['query']);_0x14bbeb['attributes']=_[_0x8b36('0x33')](_0x33a4d2[_0x8b36('0x2f')],qs[_0x8b36('0x34')](_0x48c1f2[_0x8b36('0x31')][_0x8b36('0x34')]));_0x14bbeb['attributes']=_0x14bbeb[_0x8b36('0x35')][_0x8b36('0x36')]?_0x14bbeb[_0x8b36('0x35')]:_0x33a4d2[_0x8b36('0x2f')];if(!_0x48c1f2['query']['hasOwnProperty'](_0x8b36('0x37'))){_0x14bbeb[_0x8b36('0x20')]=qs['limit'](_0x48c1f2[_0x8b36('0x31')][_0x8b36('0x20')]);_0x14bbeb['offset']=qs['offset'](_0x48c1f2['query'][_0x8b36('0x1d')]);}_0x14bbeb[_0x8b36('0x38')]=qs['sort'](_0x48c1f2['query'][_0x8b36('0x39')]);_0x14bbeb[_0x8b36('0x3a')]=qs[_0x8b36('0x32')](_['pick'](_0x48c1f2[_0x8b36('0x31')],_0x33a4d2['filters']),_0x5b9f41);if(_0x48c1f2[_0x8b36('0x31')][_0x8b36('0x3b')]){_0x14bbeb[_0x8b36('0x3a')]=_[_0x8b36('0x3c')](_0x14bbeb[_0x8b36('0x3a')],{'$or':_['map'](_0x5b9f41,function(_0xa253ef){if(_0xa253ef[_0x8b36('0x2d')]!=='VIRTUAL'){var _0x3d52c8={};_0x3d52c8[_0xa253ef[_0x8b36('0x28')]]={'$like':'%'+_0x48c1f2[_0x8b36('0x31')]['filter']+'%'};return _0x3d52c8;}})});}_0x14bbeb=_['merge']({},_0x14bbeb,_0x48c1f2[_0x8b36('0x3d')]);var _0x5c58d1={'where':_0x14bbeb[_0x8b36('0x3a')]};return db[_0x8b36('0x2a')][_0x8b36('0x1f')](_0x5c58d1)[_0x8b36('0x25')](function(_0x360e58){_0x3325c9[_0x8b36('0x1f')]=_0x360e58;if(_0x48c1f2[_0x8b36('0x31')]['includeAll']){_0x14bbeb['include']=[{'all':!![]}];}return db[_0x8b36('0x2a')][_0x8b36('0x3e')](_0x14bbeb);})[_0x8b36('0x25')](function(_0x28e4ea){_0x3325c9[_0x8b36('0x3f')]=_0x28e4ea;return _0x3325c9;})[_0x8b36('0x25')](respondWithFilteredResult(_0x11fca1,_0x14bbeb))[_0x8b36('0x40')](handleError(_0x11fca1,null));};exports['show']=function(_0x56a9b7,_0x1e3c7f){var _0x34787e={'raw':!![],'where':{'id':_0x56a9b7[_0x8b36('0x41')]['id']}},_0x470366={};_0x470366[_0x8b36('0x2f')]=_[_0x8b36('0x42')](db[_0x8b36('0x2a')][_0x8b36('0x2b')]);_0x470366['query']=_[_0x8b36('0x42')](_0x56a9b7[_0x8b36('0x31')]);_0x470366[_0x8b36('0x32')]=_[_0x8b36('0x33')](_0x470366[_0x8b36('0x2f')],_0x470366[_0x8b36('0x31')]);_0x34787e[_0x8b36('0x35')]=_['intersection'](_0x470366[_0x8b36('0x2f')],qs[_0x8b36('0x34')](_0x56a9b7[_0x8b36('0x31')][_0x8b36('0x34')]));_0x34787e['attributes']=_0x34787e[_0x8b36('0x35')][_0x8b36('0x36')]?_0x34787e[_0x8b36('0x35')]:_0x470366[_0x8b36('0x2f')];if(_0x56a9b7['query']['includeAll']){_0x34787e[_0x8b36('0x43')]=[{'all':!![]}];}_0x34787e=_[_0x8b36('0x3c')]({},_0x34787e,_0x56a9b7[_0x8b36('0x3d')]);return db[_0x8b36('0x2a')][_0x8b36('0x44')](_0x34787e)[_0x8b36('0x25')](handleEntityNotFound(_0x1e3c7f,null))[_0x8b36('0x25')](respondWithResult(_0x1e3c7f,null))[_0x8b36('0x40')](handleError(_0x1e3c7f,null));};exports[_0x8b36('0x45')]=function(_0x372d55,_0x29d7ad){return db[_0x8b36('0x2a')][_0x8b36('0x45')](_0x372d55[_0x8b36('0x46')],{})[_0x8b36('0x25')](respondWithResult(_0x29d7ad,0xc9))['catch'](handleError(_0x29d7ad,null));};exports[_0x8b36('0x24')]=function(_0x365f9e,_0x1de68b){if(_0x365f9e[_0x8b36('0x46')]['id']){delete _0x365f9e['body']['id'];}return db['MailTransferReport'][_0x8b36('0x44')]({'where':{'id':_0x365f9e[_0x8b36('0x41')]['id']}})[_0x8b36('0x25')](handleEntityNotFound(_0x1de68b,null))[_0x8b36('0x25')](saveUpdates(_0x365f9e[_0x8b36('0x46')],null))[_0x8b36('0x25')](respondWithResult(_0x1de68b,null))[_0x8b36('0x40')](handleError(_0x1de68b,null));};exports[_0x8b36('0x26')]=function(_0x4453f4,_0x8ce966){return db[_0x8b36('0x2a')][_0x8b36('0x44')]({'where':{'id':_0x4453f4[_0x8b36('0x41')]['id']}})['then'](handleEntityNotFound(_0x8ce966,null))['then'](removeEntity(_0x8ce966,null))[_0x8b36('0x40')](handleError(_0x8ce966,null));};exports[_0x8b36('0x47')]=function(_0x1e90de,_0x19e95a){return db['MailTransferReport'][_0x8b36('0x47')]()[_0x8b36('0x25')](respondWithResult(_0x19e95a,null))[_0x8b36('0x40')](handleError(_0x19e95a,null));};
\ No newline at end of file
+var _0x70c9=['send','index','fieldName','type','key','model','map','query','keys','filters','attributes','intersection','fields','length','nolimit','sort','where','filter','merge','VIRTUAL','options','MailTransferReport','includeAll','include','findAll','rows','rawAttributes','find','create','body','params','catch','describe','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/license/util','sendStatus','status','undefined','limit','count','offset','set','json','apply','reject','update','then','destroy','end','error','name'];(function(_0x3c0864,_0x48969e){var _0x4c7348=function(_0x34cde0){while(--_0x34cde0){_0x3c0864['push'](_0x3c0864['shift']());}};_0x4c7348(++_0x48969e);}(_0x70c9,0xad));var _0x970c=function(_0x1bd51d,_0x3e6234){_0x1bd51d=_0x1bd51d-0x0;var _0x57ce9c=_0x70c9[_0x1bd51d];return _0x57ce9c;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x970c('0x0'));var jsonpatch=require(_0x970c('0x1'));var rp=require(_0x970c('0x2'));var moment=require('moment');var BPromise=require(_0x970c('0x3'));var Mustache=require(_0x970c('0x4'));var util=require(_0x970c('0x5'));var path=require(_0x970c('0x6'));var sox=require(_0x970c('0x7'));var csv=require(_0x970c('0x8'));var ejs=require(_0x970c('0x9'));var fs=require('fs');var fs_extra=require(_0x970c('0xa'));var _=require(_0x970c('0xb'));var squel=require(_0x970c('0xc'));var crypto=require(_0x970c('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x970c('0xe'));var toCsv=require(_0x970c('0x8'));var querystring=require(_0x970c('0xf'));var Papa=require(_0x970c('0x10'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x970c('0x11'));var hardwareService=require(_0x970c('0x12'));var logger=require(_0x970c('0x13'))('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x970c('0x14'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x523329,_0xdedaa3){_0xdedaa3=_0xdedaa3||0xcc;return function(_0x11abcc){if(_0x11abcc){return _0x523329[_0x970c('0x15')](_0xdedaa3);}return _0x523329[_0x970c('0x16')](_0xdedaa3)['end']();};}function respondWithResult(_0x2e6bf3,_0x13d511){_0x13d511=_0x13d511||0xc8;return function(_0x4329bc){if(_0x4329bc){return _0x2e6bf3[_0x970c('0x16')](_0x13d511)['json'](_0x4329bc);}};}function respondWithFilteredResult(_0x518a62,_0xeb24ab){return function(_0xbc0254){if(_0xbc0254){var _0x303837=typeof _0xeb24ab['offset']===_0x970c('0x17')&&typeof _0xeb24ab[_0x970c('0x18')]===_0x970c('0x17');var _0x355a1a=_0xbc0254[_0x970c('0x19')];var _0xd090a8=_0x303837?0x0:_0xeb24ab[_0x970c('0x1a')];var _0x21e5c3=_0x303837?_0xbc0254['count']:_0xeb24ab[_0x970c('0x1a')]+_0xeb24ab[_0x970c('0x18')];var _0x18faa8;if(_0x21e5c3>=_0x355a1a){_0x21e5c3=_0x355a1a;_0x18faa8=0xc8;}else{_0x18faa8=0xce;}_0x518a62[_0x970c('0x16')](_0x18faa8);return _0x518a62[_0x970c('0x1b')]('Content-Range',_0xd090a8+'-'+_0x21e5c3+'/'+_0x355a1a)[_0x970c('0x1c')](_0xbc0254);}return null;};}function patchUpdates(_0xcfeec5){return function(_0x48cc60){try{jsonpatch[_0x970c('0x1d')](_0x48cc60,_0xcfeec5,!![]);}catch(_0x2bb434){return BPromise[_0x970c('0x1e')](_0x2bb434);}return _0x48cc60['save']();};}function saveUpdates(_0x142e04,_0x5de174){return function(_0x19cd86){if(_0x19cd86){return _0x19cd86[_0x970c('0x1f')](_0x142e04)[_0x970c('0x20')](function(_0x3f0f0c){return _0x3f0f0c;});}return null;};}function removeEntity(_0x4cfb56,_0x2c3494){return function(_0x5414e9){if(_0x5414e9){return _0x5414e9[_0x970c('0x21')]()[_0x970c('0x20')](function(){_0x4cfb56[_0x970c('0x16')](0xcc)[_0x970c('0x22')]();});}};}function handleEntityNotFound(_0x49efcc,_0x188f0a){return function(_0x33df97){if(!_0x33df97){_0x49efcc[_0x970c('0x15')](0x194);}return _0x33df97;};}function handleError(_0x3a1091,_0x30d1db){_0x30d1db=_0x30d1db||0x1f4;return function(_0x5ccf71){logger[_0x970c('0x23')](_0x5ccf71['stack']);if(_0x5ccf71[_0x970c('0x24')]){delete _0x5ccf71[_0x970c('0x24')];}_0x3a1091[_0x970c('0x16')](_0x30d1db)[_0x970c('0x25')](_0x5ccf71);};}exports[_0x970c('0x26')]=function(_0x2a13b6,_0x4ce57c){var _0x5989a3={},_0x6aa5bc={},_0x17e3c8={'count':0x0,'rows':[]};var _0x437d85=_['map'](db['MailTransferReport']['rawAttributes'],function(_0x58e11c){return{'name':_0x58e11c[_0x970c('0x27')],'type':_0x58e11c[_0x970c('0x28')][_0x970c('0x29')]};});_0x6aa5bc[_0x970c('0x2a')]=_[_0x970c('0x2b')](_0x437d85,_0x970c('0x24'));_0x6aa5bc[_0x970c('0x2c')]=_[_0x970c('0x2d')](_0x2a13b6['query']);_0x6aa5bc[_0x970c('0x2e')]=_['intersection'](_0x6aa5bc[_0x970c('0x2a')],_0x6aa5bc[_0x970c('0x2c')]);_0x5989a3[_0x970c('0x2f')]=_[_0x970c('0x30')](_0x6aa5bc[_0x970c('0x2a')],qs[_0x970c('0x31')](_0x2a13b6[_0x970c('0x2c')][_0x970c('0x31')]));_0x5989a3[_0x970c('0x2f')]=_0x5989a3[_0x970c('0x2f')][_0x970c('0x32')]?_0x5989a3[_0x970c('0x2f')]:_0x6aa5bc[_0x970c('0x2a')];if(!_0x2a13b6[_0x970c('0x2c')]['hasOwnProperty'](_0x970c('0x33'))){_0x5989a3[_0x970c('0x18')]=qs['limit'](_0x2a13b6['query'][_0x970c('0x18')]);_0x5989a3[_0x970c('0x1a')]=qs[_0x970c('0x1a')](_0x2a13b6[_0x970c('0x2c')][_0x970c('0x1a')]);}_0x5989a3['order']=qs[_0x970c('0x34')](_0x2a13b6[_0x970c('0x2c')][_0x970c('0x34')]);_0x5989a3[_0x970c('0x35')]=qs[_0x970c('0x2e')](_['pick'](_0x2a13b6[_0x970c('0x2c')],_0x6aa5bc['filters']),_0x437d85);if(_0x2a13b6[_0x970c('0x2c')][_0x970c('0x36')]){_0x5989a3[_0x970c('0x35')]=_[_0x970c('0x37')](_0x5989a3['where'],{'$or':_[_0x970c('0x2b')](_0x437d85,function(_0x3e7524){if(_0x3e7524[_0x970c('0x28')]!==_0x970c('0x38')){var _0x222d5a={};_0x222d5a[_0x3e7524['name']]={'$like':'%'+_0x2a13b6[_0x970c('0x2c')][_0x970c('0x36')]+'%'};return _0x222d5a;}})});}_0x5989a3=_[_0x970c('0x37')]({},_0x5989a3,_0x2a13b6[_0x970c('0x39')]);var _0x4ba90e={'where':_0x5989a3[_0x970c('0x35')]};return db[_0x970c('0x3a')][_0x970c('0x19')](_0x4ba90e)[_0x970c('0x20')](function(_0x51eea7){_0x17e3c8[_0x970c('0x19')]=_0x51eea7;if(_0x2a13b6[_0x970c('0x2c')][_0x970c('0x3b')]){_0x5989a3[_0x970c('0x3c')]=[{'all':!![]}];}return db[_0x970c('0x3a')][_0x970c('0x3d')](_0x5989a3);})[_0x970c('0x20')](function(_0xa89ec){_0x17e3c8[_0x970c('0x3e')]=_0xa89ec;return _0x17e3c8;})[_0x970c('0x20')](respondWithFilteredResult(_0x4ce57c,_0x5989a3))['catch'](handleError(_0x4ce57c,null));};exports['show']=function(_0x175739,_0xc4221d){var _0x4afe49={'raw':!![],'where':{'id':_0x175739['params']['id']}},_0x2c45a2={};_0x2c45a2[_0x970c('0x2a')]=_[_0x970c('0x2d')](db['MailTransferReport'][_0x970c('0x3f')]);_0x2c45a2['query']=_[_0x970c('0x2d')](_0x175739[_0x970c('0x2c')]);_0x2c45a2[_0x970c('0x2e')]=_['intersection'](_0x2c45a2[_0x970c('0x2a')],_0x2c45a2[_0x970c('0x2c')]);_0x4afe49['attributes']=_[_0x970c('0x30')](_0x2c45a2[_0x970c('0x2a')],qs[_0x970c('0x31')](_0x175739[_0x970c('0x2c')]['fields']));_0x4afe49['attributes']=_0x4afe49[_0x970c('0x2f')][_0x970c('0x32')]?_0x4afe49[_0x970c('0x2f')]:_0x2c45a2[_0x970c('0x2a')];if(_0x175739[_0x970c('0x2c')][_0x970c('0x3b')]){_0x4afe49['include']=[{'all':!![]}];}_0x4afe49=_[_0x970c('0x37')]({},_0x4afe49,_0x175739[_0x970c('0x39')]);return db['MailTransferReport'][_0x970c('0x40')](_0x4afe49)[_0x970c('0x20')](handleEntityNotFound(_0xc4221d,null))['then'](respondWithResult(_0xc4221d,null))['catch'](handleError(_0xc4221d,null));};exports['create']=function(_0x3081d5,_0x1d1cc1){return db[_0x970c('0x3a')][_0x970c('0x41')](_0x3081d5[_0x970c('0x42')],{})['then'](respondWithResult(_0x1d1cc1,0xc9))['catch'](handleError(_0x1d1cc1,null));};exports[_0x970c('0x1f')]=function(_0x390d4c,_0x56f7d2){if(_0x390d4c[_0x970c('0x42')]['id']){delete _0x390d4c[_0x970c('0x42')]['id'];}return db[_0x970c('0x3a')][_0x970c('0x40')]({'where':{'id':_0x390d4c[_0x970c('0x43')]['id']}})[_0x970c('0x20')](handleEntityNotFound(_0x56f7d2,null))[_0x970c('0x20')](saveUpdates(_0x390d4c['body'],null))[_0x970c('0x20')](respondWithResult(_0x56f7d2,null))['catch'](handleError(_0x56f7d2,null));};exports[_0x970c('0x21')]=function(_0x2e2b96,_0x219c97){return db[_0x970c('0x3a')][_0x970c('0x40')]({'where':{'id':_0x2e2b96[_0x970c('0x43')]['id']}})[_0x970c('0x20')](handleEntityNotFound(_0x219c97,null))['then'](removeEntity(_0x219c97,null))[_0x970c('0x44')](handleError(_0x219c97,null));};exports['describe']=function(_0x4ea9f6,_0x2180e8){return db[_0x970c('0x3a')][_0x970c('0x45')]()[_0x970c('0x20')](respondWithResult(_0x2180e8,null))[_0x970c('0x44')](handleError(_0x2180e8,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcb81=['util','api','path','rimraf','../../config/environment','./mailTransferReport.attributes','exports','define','report_mail_transfer','uniqueid','lodash'];(function(_0x5f1391,_0x19c132){var _0x50ebe3=function(_0x3d00a3){while(--_0x3d00a3){_0x5f1391['push'](_0x5f1391['shift']());}};_0x50ebe3(++_0x19c132);}(_0xcb81,0x154));var _0x1cb8=function(_0x20c9b2,_0x55d7b1){_0x20c9b2=_0x20c9b2-0x0;var _0x2c6030=_0xcb81[_0x20c9b2];return _0x2c6030;};'use strict';var _=require(_0x1cb8('0x0'));var util=require(_0x1cb8('0x1'));var logger=require('../../config/logger')(_0x1cb8('0x2'));var moment=require('moment');var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x1cb8('0x3'));var rimraf=require(_0x1cb8('0x4'));var config=require(_0x1cb8('0x5'));var attributes=require(_0x1cb8('0x6'));module[_0x1cb8('0x7')]=function(_0x4e5c19,_0x98d682){return _0x4e5c19[_0x1cb8('0x8')]('MailTransferReport',attributes,{'tableName':_0x1cb8('0x9'),'paranoid':![],'indexes':[{'name':_0x1cb8('0xa'),'fields':[_0x1cb8('0xa')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x25f0=['../../config/environment','exports','report_mail_transfer','uniqueid','lodash','util','bluebird','path'];(function(_0xbe333,_0x162573){var _0x3dd8f9=function(_0x243a3a){while(--_0x243a3a){_0xbe333['push'](_0xbe333['shift']());}};_0x3dd8f9(++_0x162573);}(_0x25f0,0x10c));var _0x025f=function(_0x34cc2a,_0x55330c){_0x34cc2a=_0x34cc2a-0x0;var _0x12a590=_0x25f0[_0x34cc2a];return _0x12a590;};'use strict';var _=require(_0x025f('0x0'));var util=require(_0x025f('0x1'));var logger=require('../../config/logger')('api');var moment=require('moment');var BPromise=require(_0x025f('0x2'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x025f('0x3'));var rimraf=require('rimraf');var config=require(_0x025f('0x4'));var attributes=require('./mailTransferReport.attributes');module[_0x025f('0x5')]=function(_0x507916,_0x26635d){return _0x507916['define']('MailTransferReport',attributes,{'tableName':_0x025f('0x6'),'paranoid':![],'indexes':[{'name':_0x025f('0x7'),'fields':[_0x025f('0x7')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe9e9=['jayson/promise','http','request','info','MailTransferReport,\x20%s,\x20%s','MailTransferReport,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment'];(function(_0x29aa6f,_0x382d12){var _0x5aed38=function(_0x50ef8b){while(--_0x50ef8b){_0x29aa6f['push'](_0x29aa6f['shift']());}};_0x5aed38(++_0x382d12);}(_0xe9e9,0x1c1));var _0x9e9e=function(_0x3acdaa,_0x11cad9){_0x3acdaa=_0x3acdaa-0x0;var _0x10535f=_0xe9e9[_0x3acdaa];return _0x10535f;};'use strict';var _=require(_0x9e9e('0x0'));var util=require(_0x9e9e('0x1'));var moment=require(_0x9e9e('0x2'));var BPromise=require(_0x9e9e('0x3'));var rs=require(_0x9e9e('0x4'));var fs=require('fs');var Redis=require(_0x9e9e('0x5'));var db=require(_0x9e9e('0x6'))['db'];var utils=require(_0x9e9e('0x7'));var logger=require(_0x9e9e('0x8'))(_0x9e9e('0x9'));var config=require(_0x9e9e('0xa'));var jayson=require(_0x9e9e('0xb'));var client=jayson['client'][_0x9e9e('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x4604ef,_0x5e0d08,_0x116526){return new BPromise(function(_0x22e212,_0x1f362d){return client[_0x9e9e('0xd')](_0x4604ef,_0x116526)['then'](function(_0x22e6c8){logger[_0x9e9e('0xe')](_0x9e9e('0xf'),_0x5e0d08,'request\x20sent');logger['debug'](_0x9e9e('0x10'),_0x5e0d08,_0x9e9e('0x11'),JSON['stringify'](_0x22e6c8));if(_0x22e6c8[_0x9e9e('0x12')]){if(_0x22e6c8['error'][_0x9e9e('0x13')]===0x1f4){logger[_0x9e9e('0x12')](_0x9e9e('0xf'),_0x5e0d08,_0x22e6c8['error']['message']);return _0x1f362d(_0x22e6c8[_0x9e9e('0x12')]['message']);}logger[_0x9e9e('0x12')]('MailTransferReport,\x20%s,\x20%s',_0x5e0d08,_0x22e6c8['error'][_0x9e9e('0x14')]);return _0x22e212(_0x22e6c8[_0x9e9e('0x12')][_0x9e9e('0x14')]);}else{logger['info'](_0x9e9e('0xf'),_0x5e0d08,'request\x20sent');_0x22e212(_0x22e6c8[_0x9e9e('0x15')]['message']);}})[_0x9e9e('0x16')](function(_0xd0cd62){logger[_0x9e9e('0x12')](_0x9e9e('0xf'),_0x5e0d08,_0xd0cd62);_0x1f362d(_0xd0cd62);});});}
\ No newline at end of file
+var _0xb461=['MailTransferReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','lodash','util','bluebird','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','then','MailTransferReport,\x20%s,\x20%s','request\x20sent','debug'];(function(_0x48f964,_0x212347){var _0x3b9823=function(_0x4eec03){while(--_0x4eec03){_0x48f964['push'](_0x48f964['shift']());}};_0x3b9823(++_0x212347);}(_0xb461,0xa1));var _0x1b46=function(_0x3bebca,_0x79c0de){_0x3bebca=_0x3bebca-0x0;var _0x5b641a=_0xb461[_0x3bebca];return _0x5b641a;};'use strict';var _=require(_0x1b46('0x0'));var util=require(_0x1b46('0x1'));var moment=require('moment');var BPromise=require(_0x1b46('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x1b46('0x3'))['db'];var utils=require(_0x1b46('0x4'));var logger=require(_0x1b46('0x5'))(_0x1b46('0x6'));var config=require(_0x1b46('0x7'));var jayson=require(_0x1b46('0x8'));var client=jayson[_0x1b46('0x9')][_0x1b46('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x14b75b,_0x7c3c53,_0x3b0568){return new BPromise(function(_0x9e24c7,_0x34cdf6){return client['request'](_0x14b75b,_0x3b0568)[_0x1b46('0xb')](function(_0x3efb70){logger['info'](_0x1b46('0xc'),_0x7c3c53,_0x1b46('0xd'));logger[_0x1b46('0xe')](_0x1b46('0xf'),_0x7c3c53,_0x1b46('0xd'),JSON[_0x1b46('0x10')](_0x3efb70));if(_0x3efb70[_0x1b46('0x11')]){if(_0x3efb70[_0x1b46('0x11')][_0x1b46('0x12')]===0x1f4){logger[_0x1b46('0x11')]('MailTransferReport,\x20%s,\x20%s',_0x7c3c53,_0x3efb70[_0x1b46('0x11')][_0x1b46('0x13')]);return _0x34cdf6(_0x3efb70[_0x1b46('0x11')][_0x1b46('0x13')]);}logger[_0x1b46('0x11')](_0x1b46('0xc'),_0x7c3c53,_0x3efb70['error'][_0x1b46('0x13')]);return _0x9e24c7(_0x3efb70[_0x1b46('0x11')]['message']);}else{logger[_0x1b46('0x14')](_0x1b46('0xc'),_0x7c3c53,'request\x20sent');_0x9e24c7(_0x3efb70[_0x1b46('0x15')][_0x1b46('0x13')]);}})['catch'](function(_0x5dc66c){logger['error'](_0x1b46('0xc'),_0x7c3c53,_0x5dc66c);_0x34cdf6(_0x5dc66c);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf7d4=['isAuthenticated','index','/describe','describe','show','post','create','put','/:id','update','destroy','multer','util','path','connect-timeout','express','fs-extra','../../config/environment','./memberReport.controller','get'];(function(_0x2972f3,_0x21f1ab){var _0x13dc82=function(_0xac9169){while(--_0xac9169){_0x2972f3['push'](_0x2972f3['shift']());}};_0x13dc82(++_0x21f1ab);}(_0xf7d4,0x6f));var _0x4f7d=function(_0x8c43de,_0x90ff31){_0x8c43de=_0x8c43de-0x0;var _0xa6591b=_0xf7d4[_0x8c43de];return _0xa6591b;};'use strict';var multer=require(_0x4f7d('0x0'));var util=require(_0x4f7d('0x1'));var path=require(_0x4f7d('0x2'));var timeout=require(_0x4f7d('0x3'));var express=require(_0x4f7d('0x4'));var router=express['Router']();var fs_extra=require(_0x4f7d('0x5'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x4f7d('0x6'));var controller=require(_0x4f7d('0x7'));router[_0x4f7d('0x8')]('/',auth[_0x4f7d('0x9')](),controller[_0x4f7d('0xa')]);router[_0x4f7d('0x8')](_0x4f7d('0xb'),auth[_0x4f7d('0x9')](),controller[_0x4f7d('0xc')]);router[_0x4f7d('0x8')]('/:id',auth[_0x4f7d('0x9')](),controller[_0x4f7d('0xd')]);router[_0x4f7d('0xe')]('/',auth[_0x4f7d('0x9')](),controller[_0x4f7d('0xf')]);router[_0x4f7d('0x10')](_0x4f7d('0x11'),auth[_0x4f7d('0x9')](),controller[_0x4f7d('0x12')]);router['delete'](_0x4f7d('0x11'),auth[_0x4f7d('0x9')](),controller[_0x4f7d('0x13')]);module['exports']=router;
\ No newline at end of file
+var _0x289d=['create','put','update','delete','destroy','exports','multer','util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/describe','describe','/:id','show','post'];(function(_0x6fbd64,_0x5cc912){var _0x51639e=function(_0x16576f){while(--_0x16576f){_0x6fbd64['push'](_0x6fbd64['shift']());}};_0x51639e(++_0x5cc912);}(_0x289d,0x131));var _0xd289=function(_0x55e08b,_0x421620){_0x55e08b=_0x55e08b-0x0;var _0xd1a7ff=_0x289d[_0x55e08b];return _0xd1a7ff;};'use strict';var multer=require(_0xd289('0x0'));var util=require(_0xd289('0x1'));var path=require(_0xd289('0x2'));var timeout=require(_0xd289('0x3'));var express=require(_0xd289('0x4'));var router=express['Router']();var fs_extra=require(_0xd289('0x5'));var auth=require(_0xd289('0x6'));var interaction=require(_0xd289('0x7'));var config=require(_0xd289('0x8'));var controller=require('./memberReport.controller');router[_0xd289('0x9')]('/',auth[_0xd289('0xa')](),controller[_0xd289('0xb')]);router[_0xd289('0x9')](_0xd289('0xc'),auth['isAuthenticated'](),controller[_0xd289('0xd')]);router[_0xd289('0x9')](_0xd289('0xe'),auth[_0xd289('0xa')](),controller[_0xd289('0xf')]);router[_0xd289('0x10')]('/',auth[_0xd289('0xa')](),controller[_0xd289('0x11')]);router[_0xd289('0x12')](_0xd289('0xe'),auth[_0xd289('0xa')](),controller[_0xd289('0x13')]);router[_0xd289('0x14')](_0xd289('0xe'),auth['isAuthenticated'](),controller[_0xd289('0x15')]);module[_0xd289('0x16')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9388=['seconds','setDataValue','duration','talk:[inbound,\x20outbound],\x20pause:[reason]','talk:[destination]','talk:[dial\x20string]','talk:[queue]','sequelize','moment','exports','STRING','DEFAULT\x20PAUSE','LOGIN,\x20PAUSE,\x20TALKING','INTEGER','DATE','getDataValue','enterAt','diff'];(function(_0x216ab0,_0x33ec6f){var _0x3734e0=function(_0x4a9e43){while(--_0x4a9e43){_0x216ab0['push'](_0x216ab0['shift']());}};_0x3734e0(++_0x33ec6f);}(_0x9388,0x103));var _0x8938=function(_0xb6a7bf,_0x458a46){_0xb6a7bf=_0xb6a7bf-0x0;var _0x3673ea=_0x9388[_0xb6a7bf];return _0x3673ea;};'use strict';var Sequelize=require(_0x8938('0x0'));var moment=require(_0x8938('0x1'));module[_0x8938('0x2')]={'channel':{'type':Sequelize[_0x8938('0x3')]},'membername':{'type':Sequelize[_0x8938('0x3')]},'interface':{'type':Sequelize['STRING']},'type':{'type':Sequelize['STRING'],'defaultValue':_0x8938('0x4'),'comment':_0x8938('0x5')},'duration':{'type':Sequelize[_0x8938('0x6')]},'enterAt':{'type':Sequelize[_0x8938('0x7')]},'exitAt':{'type':Sequelize['DATE'],'set':function(_0x2ac4ba){var _0x254cf9=moment(_0x2ac4ba);var _0x46c025=moment(this[_0x8938('0x8')](_0x8938('0x9')));var _0x3a8653=_0x254cf9[_0x8938('0xa')](_0x46c025,_0x8938('0xb'));this['setDataValue']('exitAt',_0x2ac4ba);this[_0x8938('0xc')](_0x8938('0xd'),_0x3a8653>=0x0?_0x3a8653:null);}},'data1':{'type':Sequelize[_0x8938('0x3')],'comment':_0x8938('0xe')},'data2':{'type':Sequelize[_0x8938('0x3')],'comment':'talk:[start]'},'data3':{'type':Sequelize[_0x8938('0x3')],'comment':_0x8938('0xf')},'data4':{'type':Sequelize[_0x8938('0x3')],'comment':_0x8938('0x10')},'data5':{'type':Sequelize[_0x8938('0x3')],'comment':_0x8938('0x11')},'role':{'type':Sequelize['STRING']},'internal':{'type':Sequelize[_0x8938('0x6')]},'uniqueid':{'type':Sequelize[_0x8938('0x3')]}};
\ No newline at end of file
+var _0xed69=['setDataValue','exitAt','duration','talk:[inbound,\x20outbound],\x20pause:[reason]','talk:[destination]','talk:[dial\x20string]','moment','exports','STRING','DEFAULT\x20PAUSE','LOGIN,\x20PAUSE,\x20TALKING','INTEGER','DATE','enterAt'];(function(_0x413f60,_0x1865d0){var _0x519ed2=function(_0x2cf9f1){while(--_0x2cf9f1){_0x413f60['push'](_0x413f60['shift']());}};_0x519ed2(++_0x1865d0);}(_0xed69,0x1c6));var _0x9ed6=function(_0x1f7413,_0x3388c3){_0x1f7413=_0x1f7413-0x0;var _0x2d2775=_0xed69[_0x1f7413];return _0x2d2775;};'use strict';var Sequelize=require('sequelize');var moment=require(_0x9ed6('0x0'));module[_0x9ed6('0x1')]={'channel':{'type':Sequelize[_0x9ed6('0x2')]},'membername':{'type':Sequelize['STRING']},'interface':{'type':Sequelize[_0x9ed6('0x2')]},'type':{'type':Sequelize[_0x9ed6('0x2')],'defaultValue':_0x9ed6('0x3'),'comment':_0x9ed6('0x4')},'duration':{'type':Sequelize[_0x9ed6('0x5')]},'enterAt':{'type':Sequelize['DATE']},'exitAt':{'type':Sequelize[_0x9ed6('0x6')],'set':function(_0x400ccb){var _0x54cc56=moment(_0x400ccb);var _0x3307a0=moment(this['getDataValue'](_0x9ed6('0x7')));var _0x18810f=_0x54cc56['diff'](_0x3307a0,'seconds');this[_0x9ed6('0x8')](_0x9ed6('0x9'),_0x400ccb);this['setDataValue'](_0x9ed6('0xa'),_0x18810f>=0x0?_0x18810f:null);}},'data1':{'type':Sequelize['STRING'],'comment':_0x9ed6('0xb')},'data2':{'type':Sequelize['STRING'],'comment':'talk:[start]'},'data3':{'type':Sequelize['STRING'],'comment':_0x9ed6('0xc')},'data4':{'type':Sequelize[_0x9ed6('0x2')],'comment':_0x9ed6('0xd')},'data5':{'type':Sequelize[_0x9ed6('0x2')],'comment':'talk:[queue]'},'role':{'type':Sequelize[_0x9ed6('0x2')]},'internal':{'type':Sequelize[_0x9ed6('0x5')]},'uniqueid':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7217=['query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','sort','where','pick','merge','filter','includeAll','include','rows','catch','show','params','rawAttributes','length','find','create','body','describe','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','sendStatus','stack','send','index','map','MemberReport','fieldName','type','model','name','keys'];(function(_0x524777,_0x57fdb1){var _0x5f2e57=function(_0x3ae2c5){while(--_0x3ae2c5){_0x524777['push'](_0x524777['shift']());}};_0x5f2e57(++_0x57fdb1);}(_0x7217,0x19e));var _0x7721=function(_0xf0bcac,_0x531755){_0xf0bcac=_0xf0bcac-0x0;var _0x4e4c65=_0x7217[_0xf0bcac];return _0x4e4c65;};'use strict';var emlformat=require(_0x7721('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x7721('0x1'));var jsonpatch=require(_0x7721('0x2'));var rp=require(_0x7721('0x3'));var moment=require(_0x7721('0x4'));var BPromise=require(_0x7721('0x5'));var Mustache=require('mustache');var util=require('util');var path=require(_0x7721('0x6'));var sox=require(_0x7721('0x7'));var csv=require(_0x7721('0x8'));var ejs=require(_0x7721('0x9'));var fs=require('fs');var fs_extra=require(_0x7721('0xa'));var _=require(_0x7721('0xb'));var squel=require(_0x7721('0xc'));var crypto=require(_0x7721('0xd'));var jsforce=require(_0x7721('0xe'));var deskjs=require(_0x7721('0xf'));var toCsv=require(_0x7721('0x8'));var querystring=require(_0x7721('0x10'));var Papa=require(_0x7721('0x11'));var Redis=require(_0x7721('0x12'));var authService=require(_0x7721('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0x7721('0x14'));var hardwareService=require(_0x7721('0x15'));var logger=require(_0x7721('0x16'))(_0x7721('0x17'));var utils=require(_0x7721('0x18'));var config=require(_0x7721('0x19'));var licenseUtil=require(_0x7721('0x1a'));var db=require(_0x7721('0x1b'))['db'];function respondWithStatusCode(_0x55b4ca,_0x2911ec){_0x2911ec=_0x2911ec||0xcc;return function(_0x199930){if(_0x199930){return _0x55b4ca['sendStatus'](_0x2911ec);}return _0x55b4ca[_0x7721('0x1c')](_0x2911ec)[_0x7721('0x1d')]();};}function respondWithResult(_0x3f01c5,_0x2e9752){_0x2e9752=_0x2e9752||0xc8;return function(_0x5069da){if(_0x5069da){return _0x3f01c5[_0x7721('0x1c')](_0x2e9752)[_0x7721('0x1e')](_0x5069da);}};}function respondWithFilteredResult(_0x534f1b,_0x4e199a){return function(_0x4b183e){if(_0x4b183e){var _0x5ed54=typeof _0x4e199a[_0x7721('0x1f')]===_0x7721('0x20')&&typeof _0x4e199a[_0x7721('0x21')]==='undefined';var _0x20f669=_0x4b183e['count'];var _0x3fc09e=_0x5ed54?0x0:_0x4e199a['offset'];var _0xfec626=_0x5ed54?_0x4b183e[_0x7721('0x22')]:_0x4e199a[_0x7721('0x1f')]+_0x4e199a[_0x7721('0x21')];var _0x2286e5;if(_0xfec626>=_0x20f669){_0xfec626=_0x20f669;_0x2286e5=0xc8;}else{_0x2286e5=0xce;}_0x534f1b[_0x7721('0x1c')](_0x2286e5);return _0x534f1b[_0x7721('0x23')](_0x7721('0x24'),_0x3fc09e+'-'+_0xfec626+'/'+_0x20f669)[_0x7721('0x1e')](_0x4b183e);}return null;};}function patchUpdates(_0xaeccc4){return function(_0x4ce1db){try{jsonpatch[_0x7721('0x25')](_0x4ce1db,_0xaeccc4,!![]);}catch(_0x2c1583){return BPromise[_0x7721('0x26')](_0x2c1583);}return _0x4ce1db[_0x7721('0x27')]();};}function saveUpdates(_0x57140c,_0x28f5a6){return function(_0x512f31){if(_0x512f31){return _0x512f31[_0x7721('0x28')](_0x57140c)[_0x7721('0x29')](function(_0x3e8a4e){return _0x3e8a4e;});}return null;};}function removeEntity(_0x1caad8,_0x121cc4){return function(_0x395b15){if(_0x395b15){return _0x395b15[_0x7721('0x2a')]()['then'](function(){_0x1caad8[_0x7721('0x1c')](0xcc)[_0x7721('0x1d')]();});}};}function handleEntityNotFound(_0x125564,_0x1f67c7){return function(_0x40d550){if(!_0x40d550){_0x125564[_0x7721('0x2b')](0x194);}return _0x40d550;};}function handleError(_0x424e05,_0xf753f1){_0xf753f1=_0xf753f1||0x1f4;return function(_0x40f367){logger['error'](_0x40f367[_0x7721('0x2c')]);if(_0x40f367['name']){delete _0x40f367['name'];}_0x424e05[_0x7721('0x1c')](_0xf753f1)[_0x7721('0x2d')](_0x40f367);};}exports[_0x7721('0x2e')]=function(_0x158d98,_0x1ea4d){var _0x37b9f0={},_0xd7d703={},_0x1da2d8={'count':0x0,'rows':[]};var _0x5c54f0=_[_0x7721('0x2f')](db[_0x7721('0x30')]['rawAttributes'],function(_0x4a25c9){return{'name':_0x4a25c9[_0x7721('0x31')],'type':_0x4a25c9[_0x7721('0x32')]['key']};});_0xd7d703[_0x7721('0x33')]=_[_0x7721('0x2f')](_0x5c54f0,_0x7721('0x34'));_0xd7d703['query']=_[_0x7721('0x35')](_0x158d98[_0x7721('0x36')]);_0xd7d703[_0x7721('0x37')]=_[_0x7721('0x38')](_0xd7d703[_0x7721('0x33')],_0xd7d703['query']);_0x37b9f0[_0x7721('0x39')]=_[_0x7721('0x38')](_0xd7d703[_0x7721('0x33')],qs['fields'](_0x158d98[_0x7721('0x36')][_0x7721('0x3a')]));_0x37b9f0['attributes']=_0x37b9f0[_0x7721('0x39')]['length']?_0x37b9f0[_0x7721('0x39')]:_0xd7d703[_0x7721('0x33')];if(!_0x158d98[_0x7721('0x36')][_0x7721('0x3b')](_0x7721('0x3c'))){_0x37b9f0[_0x7721('0x21')]=qs[_0x7721('0x21')](_0x158d98[_0x7721('0x36')][_0x7721('0x21')]);_0x37b9f0[_0x7721('0x1f')]=qs[_0x7721('0x1f')](_0x158d98['query'][_0x7721('0x1f')]);}_0x37b9f0['order']=qs[_0x7721('0x3d')](_0x158d98[_0x7721('0x36')][_0x7721('0x3d')]);_0x37b9f0[_0x7721('0x3e')]=qs[_0x7721('0x37')](_[_0x7721('0x3f')](_0x158d98['query'],_0xd7d703['filters']),_0x5c54f0);if(_0x158d98['query']['filter']){_0x37b9f0[_0x7721('0x3e')]=_[_0x7721('0x40')](_0x37b9f0[_0x7721('0x3e')],{'$or':_[_0x7721('0x2f')](_0x5c54f0,function(_0x4a90ce){if(_0x4a90ce[_0x7721('0x32')]!=='VIRTUAL'){var _0xfab37b={};_0xfab37b[_0x4a90ce[_0x7721('0x34')]]={'$like':'%'+_0x158d98['query'][_0x7721('0x41')]+'%'};return _0xfab37b;}})});}_0x37b9f0=_[_0x7721('0x40')]({},_0x37b9f0,_0x158d98['options']);var _0x4d0111={'where':_0x37b9f0[_0x7721('0x3e')]};return db[_0x7721('0x30')][_0x7721('0x22')](_0x4d0111)[_0x7721('0x29')](function(_0x577af9){_0x1da2d8[_0x7721('0x22')]=_0x577af9;if(_0x158d98[_0x7721('0x36')][_0x7721('0x42')]){_0x37b9f0[_0x7721('0x43')]=[{'all':!![]}];}return db[_0x7721('0x30')]['findAll'](_0x37b9f0);})[_0x7721('0x29')](function(_0x4a2c28){_0x1da2d8[_0x7721('0x44')]=_0x4a2c28;return _0x1da2d8;})['then'](respondWithFilteredResult(_0x1ea4d,_0x37b9f0))[_0x7721('0x45')](handleError(_0x1ea4d,null));};exports[_0x7721('0x46')]=function(_0x231dad,_0x49e0c5){var _0x1453d4={'raw':!![],'where':{'id':_0x231dad[_0x7721('0x47')]['id']}},_0x11d853={};_0x11d853['model']=_[_0x7721('0x35')](db[_0x7721('0x30')][_0x7721('0x48')]);_0x11d853[_0x7721('0x36')]=_[_0x7721('0x35')](_0x231dad[_0x7721('0x36')]);_0x11d853[_0x7721('0x37')]=_['intersection'](_0x11d853['model'],_0x11d853[_0x7721('0x36')]);_0x1453d4[_0x7721('0x39')]=_[_0x7721('0x38')](_0x11d853[_0x7721('0x33')],qs[_0x7721('0x3a')](_0x231dad[_0x7721('0x36')][_0x7721('0x3a')]));_0x1453d4[_0x7721('0x39')]=_0x1453d4[_0x7721('0x39')][_0x7721('0x49')]?_0x1453d4['attributes']:_0x11d853['model'];if(_0x231dad[_0x7721('0x36')][_0x7721('0x42')]){_0x1453d4[_0x7721('0x43')]=[{'all':!![]}];}_0x1453d4=_[_0x7721('0x40')]({},_0x1453d4,_0x231dad['options']);return db[_0x7721('0x30')][_0x7721('0x4a')](_0x1453d4)['then'](handleEntityNotFound(_0x49e0c5,null))[_0x7721('0x29')](respondWithResult(_0x49e0c5,null))['catch'](handleError(_0x49e0c5,null));};exports[_0x7721('0x4b')]=function(_0x5c6922,_0x334f23){return db[_0x7721('0x30')][_0x7721('0x4b')](_0x5c6922['body'],{})[_0x7721('0x29')](respondWithResult(_0x334f23,0xc9))[_0x7721('0x45')](handleError(_0x334f23,null));};exports['update']=function(_0x223d93,_0x1196c2){if(_0x223d93[_0x7721('0x4c')]['id']){delete _0x223d93['body']['id'];}return db[_0x7721('0x30')]['find']({'where':{'id':_0x223d93[_0x7721('0x47')]['id']}})[_0x7721('0x29')](handleEntityNotFound(_0x1196c2,null))[_0x7721('0x29')](saveUpdates(_0x223d93[_0x7721('0x4c')],null))[_0x7721('0x29')](respondWithResult(_0x1196c2,null))[_0x7721('0x45')](handleError(_0x1196c2,null));};exports[_0x7721('0x2a')]=function(_0x7fbb73,_0x694d2f){return db[_0x7721('0x30')][_0x7721('0x4a')]({'where':{'id':_0x7fbb73[_0x7721('0x47')]['id']}})[_0x7721('0x29')](handleEntityNotFound(_0x694d2f,null))[_0x7721('0x29')](removeEntity(_0x694d2f,null))[_0x7721('0x45')](handleError(_0x694d2f,null));};exports['describe']=function(_0x474f32,_0x2f6f30){return db[_0x7721('0x30')][_0x7721('0x4d')]()[_0x7721('0x29')](respondWithResult(_0x2f6f30,null))[_0x7721('0x45')](handleError(_0x2f6f30,null));};
\ No newline at end of file
+var _0x3e74=['show','params','options','find','catch','create','body','describe','eml-format','zip-dir','fast-json-patch','request-promise','mustache','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','end','json','undefined','limit','offset','count','status','set','Content-Range','apply','save','update','then','destroy','sendStatus','name','send','index','map','MemberReport','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','include','findAll','rows'];(function(_0x34a2d8,_0x58d446){var _0x3ecaa2=function(_0x31830d){while(--_0x31830d){_0x34a2d8['push'](_0x34a2d8['shift']());}};_0x3ecaa2(++_0x58d446);}(_0x3e74,0x175));var _0x43e7=function(_0x559eb7,_0xf51df6){_0x559eb7=_0x559eb7-0x0;var _0x4811e3=_0x3e74[_0x559eb7];return _0x4811e3;};'use strict';var emlformat=require(_0x43e7('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x43e7('0x1'));var jsonpatch=require(_0x43e7('0x2'));var rp=require(_0x43e7('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x43e7('0x4'));var util=require('util');var path=require(_0x43e7('0x5'));var sox=require(_0x43e7('0x6'));var csv=require(_0x43e7('0x7'));var ejs=require(_0x43e7('0x8'));var fs=require('fs');var fs_extra=require(_0x43e7('0x9'));var _=require('lodash');var squel=require(_0x43e7('0xa'));var crypto=require(_0x43e7('0xb'));var jsforce=require(_0x43e7('0xc'));var deskjs=require(_0x43e7('0xd'));var toCsv=require(_0x43e7('0x7'));var querystring=require('querystring');var Papa=require(_0x43e7('0xe'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x43e7('0xf'));var as=require(_0x43e7('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x43e7('0x11'))('api');var utils=require(_0x43e7('0x12'));var config=require(_0x43e7('0x13'));var licenseUtil=require('../../config/license/util');var db=require(_0x43e7('0x14'))['db'];function respondWithStatusCode(_0xc960ea,_0x2718d3){_0x2718d3=_0x2718d3||0xcc;return function(_0x3bb83f){if(_0x3bb83f){return _0xc960ea['sendStatus'](_0x2718d3);}return _0xc960ea['status'](_0x2718d3)[_0x43e7('0x15')]();};}function respondWithResult(_0x21fdd3,_0x44b0bd){_0x44b0bd=_0x44b0bd||0xc8;return function(_0x51b974){if(_0x51b974){return _0x21fdd3['status'](_0x44b0bd)[_0x43e7('0x16')](_0x51b974);}};}function respondWithFilteredResult(_0x14c146,_0x203378){return function(_0x328445){if(_0x328445){var _0x4de324=typeof _0x203378['offset']===_0x43e7('0x17')&&typeof _0x203378[_0x43e7('0x18')]===_0x43e7('0x17');var _0x5d346f=_0x328445['count'];var _0x446986=_0x4de324?0x0:_0x203378[_0x43e7('0x19')];var _0x9037d3=_0x4de324?_0x328445[_0x43e7('0x1a')]:_0x203378[_0x43e7('0x19')]+_0x203378[_0x43e7('0x18')];var _0x619236;if(_0x9037d3>=_0x5d346f){_0x9037d3=_0x5d346f;_0x619236=0xc8;}else{_0x619236=0xce;}_0x14c146[_0x43e7('0x1b')](_0x619236);return _0x14c146[_0x43e7('0x1c')](_0x43e7('0x1d'),_0x446986+'-'+_0x9037d3+'/'+_0x5d346f)[_0x43e7('0x16')](_0x328445);}return null;};}function patchUpdates(_0x177ee1){return function(_0x4b5d64){try{jsonpatch[_0x43e7('0x1e')](_0x4b5d64,_0x177ee1,!![]);}catch(_0x3c6625){return BPromise['reject'](_0x3c6625);}return _0x4b5d64[_0x43e7('0x1f')]();};}function saveUpdates(_0x3e281e,_0x3945bb){return function(_0x28aacc){if(_0x28aacc){return _0x28aacc[_0x43e7('0x20')](_0x3e281e)[_0x43e7('0x21')](function(_0x54a9e7){return _0x54a9e7;});}return null;};}function removeEntity(_0x454359,_0x4eea52){return function(_0x4c9df3){if(_0x4c9df3){return _0x4c9df3[_0x43e7('0x22')]()[_0x43e7('0x21')](function(){_0x454359['status'](0xcc)[_0x43e7('0x15')]();});}};}function handleEntityNotFound(_0x4ca5cf,_0x326dab){return function(_0x5c5e67){if(!_0x5c5e67){_0x4ca5cf[_0x43e7('0x23')](0x194);}return _0x5c5e67;};}function handleError(_0x1b5f50,_0x20888b){_0x20888b=_0x20888b||0x1f4;return function(_0x405f85){logger['error'](_0x405f85['stack']);if(_0x405f85[_0x43e7('0x24')]){delete _0x405f85['name'];}_0x1b5f50[_0x43e7('0x1b')](_0x20888b)[_0x43e7('0x25')](_0x405f85);};}exports[_0x43e7('0x26')]=function(_0xb1fc63,_0x5087d7){var _0x33a1a5={},_0x4690a6={},_0x45b675={'count':0x0,'rows':[]};var _0x50f9f5=_[_0x43e7('0x27')](db[_0x43e7('0x28')][_0x43e7('0x29')],function(_0x31b2a6){return{'name':_0x31b2a6[_0x43e7('0x2a')],'type':_0x31b2a6[_0x43e7('0x2b')][_0x43e7('0x2c')]};});_0x4690a6[_0x43e7('0x2d')]=_[_0x43e7('0x27')](_0x50f9f5,_0x43e7('0x24'));_0x4690a6['query']=_[_0x43e7('0x2e')](_0xb1fc63[_0x43e7('0x2f')]);_0x4690a6[_0x43e7('0x30')]=_[_0x43e7('0x31')](_0x4690a6[_0x43e7('0x2d')],_0x4690a6['query']);_0x33a1a5[_0x43e7('0x32')]=_[_0x43e7('0x31')](_0x4690a6[_0x43e7('0x2d')],qs[_0x43e7('0x33')](_0xb1fc63['query']['fields']));_0x33a1a5['attributes']=_0x33a1a5[_0x43e7('0x32')][_0x43e7('0x34')]?_0x33a1a5[_0x43e7('0x32')]:_0x4690a6[_0x43e7('0x2d')];if(!_0xb1fc63[_0x43e7('0x2f')][_0x43e7('0x35')]('nolimit')){_0x33a1a5['limit']=qs['limit'](_0xb1fc63['query']['limit']);_0x33a1a5['offset']=qs['offset'](_0xb1fc63[_0x43e7('0x2f')]['offset']);}_0x33a1a5[_0x43e7('0x36')]=qs[_0x43e7('0x37')](_0xb1fc63[_0x43e7('0x2f')][_0x43e7('0x37')]);_0x33a1a5[_0x43e7('0x38')]=qs[_0x43e7('0x30')](_[_0x43e7('0x39')](_0xb1fc63['query'],_0x4690a6['filters']),_0x50f9f5);if(_0xb1fc63['query'][_0x43e7('0x3a')]){_0x33a1a5[_0x43e7('0x38')]=_[_0x43e7('0x3b')](_0x33a1a5[_0x43e7('0x38')],{'$or':_[_0x43e7('0x27')](_0x50f9f5,function(_0x1ed538){if(_0x1ed538[_0x43e7('0x2b')]!==_0x43e7('0x3c')){var _0x55c798={};_0x55c798[_0x1ed538[_0x43e7('0x24')]]={'$like':'%'+_0xb1fc63[_0x43e7('0x2f')]['filter']+'%'};return _0x55c798;}})});}_0x33a1a5=_[_0x43e7('0x3b')]({},_0x33a1a5,_0xb1fc63['options']);var _0x44d8e4={'where':_0x33a1a5[_0x43e7('0x38')]};return db[_0x43e7('0x28')][_0x43e7('0x1a')](_0x44d8e4)[_0x43e7('0x21')](function(_0x234d8f){_0x45b675['count']=_0x234d8f;if(_0xb1fc63['query'][_0x43e7('0x3d')]){_0x33a1a5[_0x43e7('0x3e')]=[{'all':!![]}];}return db[_0x43e7('0x28')][_0x43e7('0x3f')](_0x33a1a5);})[_0x43e7('0x21')](function(_0x4a4a85){_0x45b675[_0x43e7('0x40')]=_0x4a4a85;return _0x45b675;})[_0x43e7('0x21')](respondWithFilteredResult(_0x5087d7,_0x33a1a5))['catch'](handleError(_0x5087d7,null));};exports[_0x43e7('0x41')]=function(_0x51a69c,_0x2ad8ef){var _0x504101={'raw':!![],'where':{'id':_0x51a69c[_0x43e7('0x42')]['id']}},_0x3d81ae={};_0x3d81ae[_0x43e7('0x2d')]=_[_0x43e7('0x2e')](db['MemberReport']['rawAttributes']);_0x3d81ae[_0x43e7('0x2f')]=_[_0x43e7('0x2e')](_0x51a69c[_0x43e7('0x2f')]);_0x3d81ae[_0x43e7('0x30')]=_['intersection'](_0x3d81ae['model'],_0x3d81ae['query']);_0x504101[_0x43e7('0x32')]=_['intersection'](_0x3d81ae[_0x43e7('0x2d')],qs['fields'](_0x51a69c['query'][_0x43e7('0x33')]));_0x504101['attributes']=_0x504101[_0x43e7('0x32')][_0x43e7('0x34')]?_0x504101[_0x43e7('0x32')]:_0x3d81ae[_0x43e7('0x2d')];if(_0x51a69c['query'][_0x43e7('0x3d')]){_0x504101[_0x43e7('0x3e')]=[{'all':!![]}];}_0x504101=_[_0x43e7('0x3b')]({},_0x504101,_0x51a69c[_0x43e7('0x43')]);return db[_0x43e7('0x28')][_0x43e7('0x44')](_0x504101)['then'](handleEntityNotFound(_0x2ad8ef,null))['then'](respondWithResult(_0x2ad8ef,null))[_0x43e7('0x45')](handleError(_0x2ad8ef,null));};exports[_0x43e7('0x46')]=function(_0x212841,_0x4c00a8){return db['MemberReport']['create'](_0x212841[_0x43e7('0x47')],{})[_0x43e7('0x21')](respondWithResult(_0x4c00a8,0xc9))['catch'](handleError(_0x4c00a8,null));};exports[_0x43e7('0x20')]=function(_0x47686e,_0x3c96fe){if(_0x47686e['body']['id']){delete _0x47686e['body']['id'];}return db['MemberReport']['find']({'where':{'id':_0x47686e[_0x43e7('0x42')]['id']}})[_0x43e7('0x21')](handleEntityNotFound(_0x3c96fe,null))['then'](saveUpdates(_0x47686e[_0x43e7('0x47')],null))[_0x43e7('0x21')](respondWithResult(_0x3c96fe,null))[_0x43e7('0x45')](handleError(_0x3c96fe,null));};exports[_0x43e7('0x22')]=function(_0x4a0ce5,_0x2718d5){return db['MemberReport']['find']({'where':{'id':_0x4a0ce5[_0x43e7('0x42')]['id']}})[_0x43e7('0x21')](handleEntityNotFound(_0x2718d5,null))[_0x43e7('0x21')](removeEntity(_0x2718d5,null))[_0x43e7('0x45')](handleError(_0x2718d5,null));};exports[_0x43e7('0x48')]=function(_0x2351cf,_0x1cd87c){return db[_0x43e7('0x28')][_0x43e7('0x48')]()[_0x43e7('0x21')](respondWithResult(_0x1cd87c,null))['catch'](handleError(_0x1cd87c,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4fe2=['../../config/logger','api','bluebird','request-promise','rimraf','./memberReport.attributes','exports','MemberReport','report_member','membername_interface','membername','interface','lodash'];(function(_0x428d00,_0x3fe252){var _0x3a5c4b=function(_0x5ac776){while(--_0x5ac776){_0x428d00['push'](_0x428d00['shift']());}};_0x3a5c4b(++_0x3fe252);}(_0x4fe2,0x8e));var _0x24fe=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0x4fe2[_0xa464c9];return _0x3d73c4;};'use strict';var _=require(_0x24fe('0x0'));var util=require('util');var logger=require(_0x24fe('0x1'))(_0x24fe('0x2'));var moment=require('moment');var BPromise=require(_0x24fe('0x3'));var rp=require(_0x24fe('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x24fe('0x5'));var config=require('../../config/environment');var attributes=require(_0x24fe('0x6'));module[_0x24fe('0x7')]=function(_0x55f3c1,_0x5aa2b0){return _0x55f3c1['define'](_0x24fe('0x8'),attributes,{'tableName':_0x24fe('0x9'),'paranoid':![],'indexes':[{'name':_0x24fe('0xa'),'fields':[_0x24fe('0xb'),_0x24fe('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xf740=['util','../../config/logger','api','bluebird','request-promise','rimraf','../../config/environment','./memberReport.attributes','exports','define','MemberReport','report_member','membername_interface','interface','lodash'];(function(_0x328771,_0x53fb0a){var _0x4828be=function(_0x10d4af){while(--_0x10d4af){_0x328771['push'](_0x328771['shift']());}};_0x4828be(++_0x53fb0a);}(_0xf740,0xef));var _0x0f74=function(_0x18b191,_0x4e0684){_0x18b191=_0x18b191-0x0;var _0x43e146=_0xf740[_0x18b191];return _0x43e146;};'use strict';var _=require(_0x0f74('0x0'));var util=require(_0x0f74('0x1'));var logger=require(_0x0f74('0x2'))(_0x0f74('0x3'));var moment=require('moment');var BPromise=require(_0x0f74('0x4'));var rp=require(_0x0f74('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x0f74('0x6'));var config=require(_0x0f74('0x7'));var attributes=require(_0x0f74('0x8'));module[_0x0f74('0x9')]=function(_0xc63136,_0x5ec78c){return _0xc63136[_0x0f74('0xa')](_0x0f74('0xb'),attributes,{'tableName':_0x0f74('0xc'),'paranoid':![],'indexes':[{'name':_0x0f74('0xd'),'fields':['membername',_0x0f74('0xe')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbea5=['GetMemberReport','MemberReport','options','raw','where','limit','include','map','model','attributes','CreateMemberReport','create','body','update','UpdateMemberReport','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/environment','client','request','then','info','debug','MemberReport,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','MemberReport,\x20%s,\x20%s','message','result','catch'];(function(_0x48a3bc,_0x28c428){var _0x2d3c15=function(_0x24b665){while(--_0x24b665){_0x48a3bc['push'](_0x48a3bc['shift']());}};_0x2d3c15(++_0x28c428);}(_0xbea5,0x177));var _0x5bea=function(_0x3048ea,_0x3838c2){_0x3048ea=_0x3048ea-0x0;var _0x1a13c4=_0xbea5[_0x3048ea];return _0x1a13c4;};'use strict';var _=require(_0x5bea('0x0'));var util=require(_0x5bea('0x1'));var moment=require('moment');var BPromise=require(_0x5bea('0x2'));var rs=require(_0x5bea('0x3'));var fs=require('fs');var Redis=require(_0x5bea('0x4'));var db=require(_0x5bea('0x5'))['db'];var utils=require(_0x5bea('0x6'));var logger=require('../../config/logger')('rpc');var config=require(_0x5bea('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x5bea('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x487888,_0x40bb15,_0x581c55){return new BPromise(function(_0x4b204d,_0x1acc0f){return client[_0x5bea('0x9')](_0x487888,_0x581c55)[_0x5bea('0xa')](function(_0x4d5fd6){logger[_0x5bea('0xb')]('MemberReport,\x20%s,\x20%s',_0x40bb15,'request\x20sent');logger[_0x5bea('0xc')](_0x5bea('0xd'),_0x40bb15,_0x5bea('0xe'),JSON[_0x5bea('0xf')](_0x4d5fd6));if(_0x4d5fd6[_0x5bea('0x10')]){if(_0x4d5fd6[_0x5bea('0x10')]['code']===0x1f4){logger[_0x5bea('0x10')](_0x5bea('0x11'),_0x40bb15,_0x4d5fd6['error'][_0x5bea('0x12')]);return _0x1acc0f(_0x4d5fd6[_0x5bea('0x10')]['message']);}logger[_0x5bea('0x10')](_0x5bea('0x11'),_0x40bb15,_0x4d5fd6[_0x5bea('0x10')][_0x5bea('0x12')]);return _0x4b204d(_0x4d5fd6[_0x5bea('0x10')][_0x5bea('0x12')]);}else{logger[_0x5bea('0xb')]('MemberReport,\x20%s,\x20%s',_0x40bb15,'request\x20sent');_0x4b204d(_0x4d5fd6[_0x5bea('0x13')][_0x5bea('0x12')]);}})[_0x5bea('0x14')](function(_0x50758b){logger[_0x5bea('0x10')](_0x5bea('0x11'),_0x40bb15,_0x50758b);_0x1acc0f(_0x50758b);});});}exports[_0x5bea('0x15')]=function(_0x49ba83){var _0x1bf374=this;return new Promise(function(_0x23fa96,_0x5f12a7){return db[_0x5bea('0x16')]['findAll']({'raw':_0x49ba83[_0x5bea('0x17')]?_0x49ba83[_0x5bea('0x17')][_0x5bea('0x18')]===undefined?!![]:![]:!![],'where':_0x49ba83['options']?_0x49ba83['options'][_0x5bea('0x19')]||null:null,'attributes':_0x49ba83[_0x5bea('0x17')]?_0x49ba83[_0x5bea('0x17')]['attributes']||null:null,'limit':_0x49ba83[_0x5bea('0x17')]?_0x49ba83[_0x5bea('0x17')][_0x5bea('0x1a')]||null:null,'include':_0x49ba83[_0x5bea('0x17')]?_0x49ba83['options'][_0x5bea('0x1b')]?_[_0x5bea('0x1c')](_0x49ba83[_0x5bea('0x17')][_0x5bea('0x1b')],function(_0x5984f8){return{'model':db[_0x5984f8[_0x5bea('0x1d')]],'as':_0x5984f8['as'],'attributes':_0x5984f8['attributes'],'include':_0x5984f8[_0x5bea('0x1b')]?_['map'](_0x5984f8[_0x5bea('0x1b')],function(_0x10282f){return{'model':db[_0x10282f[_0x5bea('0x1d')]],'as':_0x10282f['as'],'attributes':_0x10282f[_0x5bea('0x1e')],'include':_0x10282f['include']?_['map'](_0x10282f['include'],function(_0x4c0821){return{'model':db[_0x4c0821[_0x5bea('0x1d')]],'as':_0x4c0821['as'],'attributes':_0x4c0821['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x35059f){logger[_0x5bea('0xb')]('GetMemberReport',_0x49ba83);logger[_0x5bea('0xc')]('GetMemberReport',_0x49ba83,JSON['stringify'](_0x35059f));_0x23fa96(_0x35059f);})[_0x5bea('0x14')](function(_0x2e773a){logger[_0x5bea('0x10')](_0x5bea('0x15'),_0x2e773a[_0x5bea('0x12')],_0x49ba83);_0x5f12a7(_0x1bf374[_0x5bea('0x10')](0x1f4,_0x2e773a[_0x5bea('0x12')]));});});};exports[_0x5bea('0x1f')]=function(_0x34ae3b){var _0x4c023f=this;return new Promise(function(_0x4d4cdb,_0x201c38){return db[_0x5bea('0x16')][_0x5bea('0x20')](_0x34ae3b[_0x5bea('0x21')],{'raw':_0x34ae3b['options']?_0x34ae3b[_0x5bea('0x17')][_0x5bea('0x18')]===undefined?!![]:![]:!![]})[_0x5bea('0xa')](function(_0x1df4aa){logger['info'](_0x5bea('0x1f'),_0x34ae3b);logger[_0x5bea('0xc')](_0x5bea('0x1f'),_0x34ae3b,JSON['stringify'](_0x1df4aa));_0x4d4cdb(_0x1df4aa);})[_0x5bea('0x14')](function(_0x10f226){logger[_0x5bea('0x10')](_0x5bea('0x1f'),_0x10f226[_0x5bea('0x12')],_0x34ae3b);_0x201c38(_0x4c023f[_0x5bea('0x10')](0x1f4,_0x10f226['message']));});});};exports['UpdateMemberReport']=function(_0x52b050){var _0x208c99=this;return new Promise(function(_0x4ef755,_0x3495ad){return db['MemberReport'][_0x5bea('0x22')](_0x52b050[_0x5bea('0x21')],{'raw':_0x52b050['options']?_0x52b050[_0x5bea('0x17')][_0x5bea('0x18')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x52b050[_0x5bea('0x17')]?_0x52b050['options']['where']||null:null,'attributes':_0x52b050[_0x5bea('0x17')]?_0x52b050[_0x5bea('0x17')][_0x5bea('0x1e')]||null:null,'limit':_0x52b050[_0x5bea('0x17')]?_0x52b050[_0x5bea('0x17')]['limit']||null:null})[_0x5bea('0xa')](function(_0x4c2fa1){logger[_0x5bea('0xb')](_0x5bea('0x23'),_0x52b050);logger[_0x5bea('0xc')](_0x5bea('0x23'),_0x52b050,JSON[_0x5bea('0xf')](_0x4c2fa1));_0x4ef755(_0x4c2fa1);})['catch'](function(_0x232c43){logger[_0x5bea('0x10')](_0x5bea('0x23'),_0x232c43[_0x5bea('0x12')],_0x52b050);_0x3495ad(_0x208c99['error'](0x1f4,_0x232c43[_0x5bea('0x12')]));});});};
\ No newline at end of file
+var _0xfd50=['CreateMemberReport','create','UpdateMemberReport','update','body','where','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','jayson/promise','client','http','request','then','info','MemberReport,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','MemberReport','options','raw','attributes','limit','include','model','map','GetMemberReport'];(function(_0x36eaaa,_0x326732){var _0x461349=function(_0x4e4180){while(--_0x4e4180){_0x36eaaa['push'](_0x36eaaa['shift']());}};_0x461349(++_0x326732);}(_0xfd50,0x178));var _0x0fd5=function(_0x4b2863,_0x494899){_0x4b2863=_0x4b2863-0x0;var _0x567d67=_0xfd50[_0x4b2863];return _0x567d67;};'use strict';var _=require('lodash');var util=require(_0x0fd5('0x0'));var moment=require(_0x0fd5('0x1'));var BPromise=require(_0x0fd5('0x2'));var rs=require(_0x0fd5('0x3'));var fs=require('fs');var Redis=require(_0x0fd5('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x0fd5('0x5'));var logger=require(_0x0fd5('0x6'))('rpc');var config=require('../../config/environment');var jayson=require(_0x0fd5('0x7'));var client=jayson[_0x0fd5('0x8')][_0x0fd5('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x24319e,_0x50c54f,_0x1baf7){return new BPromise(function(_0x6a536,_0x4e8f2f){return client[_0x0fd5('0xa')](_0x24319e,_0x1baf7)[_0x0fd5('0xb')](function(_0x3b7b62){logger[_0x0fd5('0xc')](_0x0fd5('0xd'),_0x50c54f,_0x0fd5('0xe'));logger[_0x0fd5('0xf')]('MemberReport,\x20%s,\x20%s,\x20%s',_0x50c54f,_0x0fd5('0xe'),JSON[_0x0fd5('0x10')](_0x3b7b62));if(_0x3b7b62['error']){if(_0x3b7b62[_0x0fd5('0x11')][_0x0fd5('0x12')]===0x1f4){logger[_0x0fd5('0x11')](_0x0fd5('0xd'),_0x50c54f,_0x3b7b62[_0x0fd5('0x11')][_0x0fd5('0x13')]);return _0x4e8f2f(_0x3b7b62[_0x0fd5('0x11')]['message']);}logger['error'](_0x0fd5('0xd'),_0x50c54f,_0x3b7b62['error'][_0x0fd5('0x13')]);return _0x6a536(_0x3b7b62[_0x0fd5('0x11')][_0x0fd5('0x13')]);}else{logger[_0x0fd5('0xc')](_0x0fd5('0xd'),_0x50c54f,'request\x20sent');_0x6a536(_0x3b7b62[_0x0fd5('0x14')][_0x0fd5('0x13')]);}})[_0x0fd5('0x15')](function(_0x2a9cb7){logger[_0x0fd5('0x11')](_0x0fd5('0xd'),_0x50c54f,_0x2a9cb7);_0x4e8f2f(_0x2a9cb7);});});}exports['GetMemberReport']=function(_0x977f7d){var _0x8cee=this;return new Promise(function(_0x3f1843,_0x442815){return db[_0x0fd5('0x16')]['findAll']({'raw':_0x977f7d[_0x0fd5('0x17')]?_0x977f7d[_0x0fd5('0x17')][_0x0fd5('0x18')]===undefined?!![]:![]:!![],'where':_0x977f7d[_0x0fd5('0x17')]?_0x977f7d[_0x0fd5('0x17')]['where']||null:null,'attributes':_0x977f7d[_0x0fd5('0x17')]?_0x977f7d['options'][_0x0fd5('0x19')]||null:null,'limit':_0x977f7d[_0x0fd5('0x17')]?_0x977f7d['options'][_0x0fd5('0x1a')]||null:null,'include':_0x977f7d[_0x0fd5('0x17')]?_0x977f7d[_0x0fd5('0x17')][_0x0fd5('0x1b')]?_['map'](_0x977f7d[_0x0fd5('0x17')][_0x0fd5('0x1b')],function(_0x216034){return{'model':db[_0x216034[_0x0fd5('0x1c')]],'as':_0x216034['as'],'attributes':_0x216034['attributes'],'include':_0x216034[_0x0fd5('0x1b')]?_[_0x0fd5('0x1d')](_0x216034[_0x0fd5('0x1b')],function(_0x2235d0){return{'model':db[_0x2235d0[_0x0fd5('0x1c')]],'as':_0x2235d0['as'],'attributes':_0x2235d0[_0x0fd5('0x19')],'include':_0x2235d0[_0x0fd5('0x1b')]?_[_0x0fd5('0x1d')](_0x2235d0[_0x0fd5('0x1b')],function(_0x8bc104){return{'model':db[_0x8bc104[_0x0fd5('0x1c')]],'as':_0x8bc104['as'],'attributes':_0x8bc104[_0x0fd5('0x19')]};}):[]};}):[]};}):[]:[]})[_0x0fd5('0xb')](function(_0x52a6a2){logger['info']('GetMemberReport',_0x977f7d);logger[_0x0fd5('0xf')](_0x0fd5('0x1e'),_0x977f7d,JSON['stringify'](_0x52a6a2));_0x3f1843(_0x52a6a2);})[_0x0fd5('0x15')](function(_0x28199e){logger[_0x0fd5('0x11')](_0x0fd5('0x1e'),_0x28199e['message'],_0x977f7d);_0x442815(_0x8cee[_0x0fd5('0x11')](0x1f4,_0x28199e[_0x0fd5('0x13')]));});});};exports[_0x0fd5('0x1f')]=function(_0x4cc40b){var _0x3e41d4=this;return new Promise(function(_0x126337,_0x6698ee){return db[_0x0fd5('0x16')][_0x0fd5('0x20')](_0x4cc40b['body'],{'raw':_0x4cc40b[_0x0fd5('0x17')]?_0x4cc40b['options']['raw']===undefined?!![]:![]:!![]})[_0x0fd5('0xb')](function(_0x50e03e){logger[_0x0fd5('0xc')](_0x0fd5('0x1f'),_0x4cc40b);logger[_0x0fd5('0xf')](_0x0fd5('0x1f'),_0x4cc40b,JSON[_0x0fd5('0x10')](_0x50e03e));_0x126337(_0x50e03e);})[_0x0fd5('0x15')](function(_0x4081dd){logger[_0x0fd5('0x11')]('CreateMemberReport',_0x4081dd[_0x0fd5('0x13')],_0x4cc40b);_0x6698ee(_0x3e41d4[_0x0fd5('0x11')](0x1f4,_0x4081dd[_0x0fd5('0x13')]));});});};exports[_0x0fd5('0x21')]=function(_0x440cd3){var _0x37f1da=this;return new Promise(function(_0x248d29,_0x319970){return db[_0x0fd5('0x16')][_0x0fd5('0x22')](_0x440cd3[_0x0fd5('0x23')],{'raw':_0x440cd3[_0x0fd5('0x17')]?_0x440cd3[_0x0fd5('0x17')][_0x0fd5('0x18')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x440cd3['options']?_0x440cd3['options'][_0x0fd5('0x24')]||null:null,'attributes':_0x440cd3['options']?_0x440cd3['options'][_0x0fd5('0x19')]||null:null,'limit':_0x440cd3[_0x0fd5('0x17')]?_0x440cd3[_0x0fd5('0x17')][_0x0fd5('0x1a')]||null:null})[_0x0fd5('0xb')](function(_0x4736b0){logger[_0x0fd5('0xc')](_0x0fd5('0x21'),_0x440cd3);logger[_0x0fd5('0xf')](_0x0fd5('0x21'),_0x440cd3,JSON[_0x0fd5('0x10')](_0x4736b0));_0x248d29(_0x4736b0);})[_0x0fd5('0x15')](function(_0x3eb4bc){logger[_0x0fd5('0x11')](_0x0fd5('0x21'),_0x3eb4bc[_0x0fd5('0x13')],_0x440cd3);_0x319970(_0x37f1da['error'](0x1f4,_0x3eb4bc[_0x0fd5('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfa44=['path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','./migration.controller','get','index','exports','multer','util'];(function(_0x4604c7,_0x3de866){var _0x1f5e44=function(_0xb9c818){while(--_0xb9c818){_0x4604c7['push'](_0x4604c7['shift']());}};_0x1f5e44(++_0x3de866);}(_0xfa44,0xd6));var _0x4fa4=function(_0x4ea44b,_0x546b89){_0x4ea44b=_0x4ea44b-0x0;var _0x418cc9=_0xfa44[_0x4ea44b];return _0x418cc9;};'use strict';var multer=require(_0x4fa4('0x0'));var util=require(_0x4fa4('0x1'));var path=require(_0x4fa4('0x2'));var timeout=require(_0x4fa4('0x3'));var express=require(_0x4fa4('0x4'));var router=express['Router']();var fs_extra=require(_0x4fa4('0x5'));var auth=require(_0x4fa4('0x6'));var interaction=require(_0x4fa4('0x7'));var config=require('../../config/environment');var controller=require(_0x4fa4('0x8'));router[_0x4fa4('0x9')]('/',controller[_0x4fa4('0xa')]);module[_0x4fa4('0xb')]=router;
\ No newline at end of file
+var _0xad76=['./migration.controller','get','multer','connect-timeout','fs-extra','../../components/auth/service'];(function(_0x512490,_0x474d3d){var _0x4cf8e4=function(_0x2880b4){while(--_0x2880b4){_0x512490['push'](_0x512490['shift']());}};_0x4cf8e4(++_0x474d3d);}(_0xad76,0x17c));var _0x6ad7=function(_0x843643,_0xd1dabb){_0x843643=_0x843643-0x0;var _0x13b5dd=_0xad76[_0x843643];return _0x13b5dd;};'use strict';var multer=require(_0x6ad7('0x0'));var util=require('util');var path=require('path');var timeout=require(_0x6ad7('0x1'));var express=require('express');var router=express['Router']();var fs_extra=require(_0x6ad7('0x2'));var auth=require(_0x6ad7('0x3'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x6ad7('0x4'));router[_0x6ad7('0x5')]('/',controller['index']);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3158=['STRING','version','sequelize','exports'];(function(_0x5f3f6d,_0x157052){var _0x555470=function(_0x425e40){while(--_0x425e40){_0x5f3f6d['push'](_0x5f3f6d['shift']());}};_0x555470(++_0x157052);}(_0x3158,0x72));var _0x8315=function(_0x39501e,_0xa9887d){_0x39501e=_0x39501e-0x0;var _0x50dba4=_0x3158[_0x39501e];return _0x50dba4;};'use strict';var Sequelize=require(_0x8315('0x0'));module[_0x8315('0x1')]={'version':{'type':Sequelize[_0x8315('0x2')],'unique':_0x8315('0x3')}};
\ No newline at end of file
+var _0x4963=['sequelize','exports','STRING','version'];(function(_0x9bd68f,_0x25c9e4){var _0x5f0267=function(_0x24f004){while(--_0x24f004){_0x9bd68f['push'](_0x9bd68f['shift']());}};_0x5f0267(++_0x25c9e4);}(_0x4963,0x1e8));var _0x3496=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x4963[_0x20a584];return _0x4b41a8;};'use strict';var Sequelize=require(_0x3496('0x0'));module[_0x3496('0x1')]={'version':{'type':Sequelize[_0x3496('0x2')],'unique':_0x3496('0x3')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf56e=['set','Content-Range','save','then','destroy','end','error','name','send','map','Migration','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','options','include','findAll','catch','rimraf','zip-dir','bluebird','util','path','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','sendStatus','status','json','offset','undefined','limit','count'];(function(_0x1748fd,_0x3918e6){var _0x4a9d7f=function(_0xc2e73e){while(--_0xc2e73e){_0x1748fd['push'](_0x1748fd['shift']());}};_0x4a9d7f(++_0x3918e6);}(_0xf56e,0x152));var _0xef56=function(_0x122fe6,_0x4ac758){_0x122fe6=_0x122fe6-0x0;var _0x36b7d2=_0xf56e[_0x122fe6];return _0x36b7d2;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xef56('0x0'));var zipdir=require(_0xef56('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xef56('0x2'));var Mustache=require('mustache');var util=require(_0xef56('0x3'));var path=require(_0xef56('0x4'));var sox=require('sox');var csv=require(_0xef56('0x5'));var ejs=require(_0xef56('0x6'));var fs=require('fs');var fs_extra=require(_0xef56('0x7'));var _=require(_0xef56('0x8'));var squel=require('squel');var crypto=require(_0xef56('0x9'));var jsforce=require(_0xef56('0xa'));var deskjs=require(_0xef56('0xb'));var toCsv=require(_0xef56('0x5'));var querystring=require(_0xef56('0xc'));var Papa=require(_0xef56('0xd'));var Redis=require(_0xef56('0xe'));var authService=require(_0xef56('0xf'));var qs=require(_0xef56('0x10'));var as=require(_0xef56('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xef56('0x12'))(_0xef56('0x13'));var utils=require(_0xef56('0x14'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x476559,_0x18497b){_0x18497b=_0x18497b||0xcc;return function(_0x4ef71f){if(_0x4ef71f){return _0x476559[_0xef56('0x15')](_0x18497b);}return _0x476559['status'](_0x18497b)['end']();};}function respondWithResult(_0x5413d3,_0x118ed8){_0x118ed8=_0x118ed8||0xc8;return function(_0x1a4aca){if(_0x1a4aca){return _0x5413d3[_0xef56('0x16')](_0x118ed8)[_0xef56('0x17')](_0x1a4aca);}};}function respondWithFilteredResult(_0x3efc90,_0x43465f){return function(_0x3070d3){if(_0x3070d3){var _0x581abd=typeof _0x43465f[_0xef56('0x18')]===_0xef56('0x19')&&typeof _0x43465f[_0xef56('0x1a')]===_0xef56('0x19');var _0x179857=_0x3070d3[_0xef56('0x1b')];var _0x2f42d9=_0x581abd?0x0:_0x43465f[_0xef56('0x18')];var _0x4599c5=_0x581abd?_0x3070d3[_0xef56('0x1b')]:_0x43465f[_0xef56('0x18')]+_0x43465f['limit'];var _0x936395;if(_0x4599c5>=_0x179857){_0x4599c5=_0x179857;_0x936395=0xc8;}else{_0x936395=0xce;}_0x3efc90[_0xef56('0x16')](_0x936395);return _0x3efc90[_0xef56('0x1c')](_0xef56('0x1d'),_0x2f42d9+'-'+_0x4599c5+'/'+_0x179857)[_0xef56('0x17')](_0x3070d3);}return null;};}function patchUpdates(_0x27de3f){return function(_0x53db75){try{jsonpatch['apply'](_0x53db75,_0x27de3f,!![]);}catch(_0x4fa72c){return BPromise['reject'](_0x4fa72c);}return _0x53db75[_0xef56('0x1e')]();};}function saveUpdates(_0x18edba,_0x2535fd){return function(_0x3369fb){if(_0x3369fb){return _0x3369fb['update'](_0x18edba)[_0xef56('0x1f')](function(_0x56fd18){return _0x56fd18;});}return null;};}function removeEntity(_0x2adbc0,_0x263f3d){return function(_0xb93828){if(_0xb93828){return _0xb93828[_0xef56('0x20')]()[_0xef56('0x1f')](function(){_0x2adbc0[_0xef56('0x16')](0xcc)[_0xef56('0x21')]();});}};}function handleEntityNotFound(_0x1d1de4,_0x4b1b94){return function(_0x2d67be){if(!_0x2d67be){_0x1d1de4[_0xef56('0x15')](0x194);}return _0x2d67be;};}function handleError(_0x1ed78b,_0x1aefbe){_0x1aefbe=_0x1aefbe||0x1f4;return function(_0x3fb803){logger[_0xef56('0x22')](_0x3fb803['stack']);if(_0x3fb803[_0xef56('0x23')]){delete _0x3fb803[_0xef56('0x23')];}_0x1ed78b['status'](_0x1aefbe)[_0xef56('0x24')](_0x3fb803);};}exports['index']=function(_0x1d089b,_0x4408b1){var _0x379ed8={},_0x5474b5={},_0xc23118={'count':0x0,'rows':[]};var _0x336f32=_[_0xef56('0x25')](db[_0xef56('0x26')]['rawAttributes'],function(_0x571a37){return{'name':_0x571a37['fieldName'],'type':_0x571a37[_0xef56('0x27')][_0xef56('0x28')]};});_0x5474b5[_0xef56('0x29')]=_['map'](_0x336f32,_0xef56('0x23'));_0x5474b5[_0xef56('0x2a')]=_[_0xef56('0x2b')](_0x1d089b[_0xef56('0x2a')]);_0x5474b5[_0xef56('0x2c')]=_[_0xef56('0x2d')](_0x5474b5[_0xef56('0x29')],_0x5474b5[_0xef56('0x2a')]);_0x379ed8[_0xef56('0x2e')]=_[_0xef56('0x2d')](_0x5474b5[_0xef56('0x29')],qs[_0xef56('0x2f')](_0x1d089b[_0xef56('0x2a')]['fields']));_0x379ed8[_0xef56('0x2e')]=_0x379ed8['attributes'][_0xef56('0x30')]?_0x379ed8['attributes']:_0x5474b5[_0xef56('0x29')];if(!_0x1d089b[_0xef56('0x2a')][_0xef56('0x31')](_0xef56('0x32'))){_0x379ed8['limit']=qs[_0xef56('0x1a')](_0x1d089b[_0xef56('0x2a')][_0xef56('0x1a')]);_0x379ed8[_0xef56('0x18')]=qs[_0xef56('0x18')](_0x1d089b[_0xef56('0x2a')]['offset']);}_0x379ed8[_0xef56('0x33')]=qs[_0xef56('0x34')](_0x1d089b[_0xef56('0x2a')][_0xef56('0x34')]);_0x379ed8[_0xef56('0x35')]=qs['filters'](_[_0xef56('0x36')](_0x1d089b[_0xef56('0x2a')],_0x5474b5['filters']),_0x336f32);if(_0x1d089b['query']['filter']){_0x379ed8[_0xef56('0x35')]=_[_0xef56('0x37')](_0x379ed8[_0xef56('0x35')],{'$or':_['map'](_0x336f32,function(_0x9d4257){if(_0x9d4257['type']!==_0xef56('0x38')){var _0x85ac73={};_0x85ac73[_0x9d4257['name']]={'$like':'%'+_0x1d089b[_0xef56('0x2a')]['filter']+'%'};return _0x85ac73;}})});}_0x379ed8=_[_0xef56('0x37')]({},_0x379ed8,_0x1d089b[_0xef56('0x39')]);var _0xe0083e={'where':_0x379ed8[_0xef56('0x35')]};return db[_0xef56('0x26')][_0xef56('0x1b')](_0xe0083e)[_0xef56('0x1f')](function(_0x109336){_0xc23118['count']=_0x109336;if(_0x1d089b[_0xef56('0x2a')]['includeAll']){_0x379ed8[_0xef56('0x3a')]=[{'all':!![]}];}return db[_0xef56('0x26')][_0xef56('0x3b')](_0x379ed8);})[_0xef56('0x1f')](function(_0x38f079){_0xc23118['rows']=_0x38f079;return _0xc23118;})[_0xef56('0x1f')](respondWithFilteredResult(_0x4408b1,_0x379ed8))[_0xef56('0x3c')](handleError(_0x4408b1,null));};
\ No newline at end of file
+var _0x3b09=['query','keys','filters','intersection','fields','attributes','length','nolimit','order','sort','where','pick','merge','filter','includeAll','include','rows','catch','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','lodash','squel','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','count','limit','set','Content-Range','apply','reject','then','destroy','stack','name','index','map','Migration','rawAttributes','fieldName','type','key','model'];(function(_0x378f51,_0x2e2ac8){var _0x3fcae0=function(_0x36f481){while(--_0x36f481){_0x378f51['push'](_0x378f51['shift']());}};_0x3fcae0(++_0x2e2ac8);}(_0x3b09,0x1cb));var _0x93b0=function(_0x1324d2,_0x5c9db9){_0x1324d2=_0x1324d2-0x0;var _0x442a24=_0x3b09[_0x1324d2];return _0x442a24;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x93b0('0x0'));var jsonpatch=require(_0x93b0('0x1'));var rp=require(_0x93b0('0x2'));var moment=require(_0x93b0('0x3'));var BPromise=require(_0x93b0('0x4'));var Mustache=require(_0x93b0('0x5'));var util=require('util');var path=require(_0x93b0('0x6'));var sox=require(_0x93b0('0x7'));var csv=require(_0x93b0('0x8'));var ejs=require(_0x93b0('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x93b0('0xa'));var squel=require(_0x93b0('0xb'));var crypto=require('crypto');var jsforce=require(_0x93b0('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x93b0('0x8'));var querystring=require(_0x93b0('0xd'));var Papa=require(_0x93b0('0xe'));var Redis=require(_0x93b0('0xf'));var authService=require(_0x93b0('0x10'));var qs=require(_0x93b0('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x93b0('0x12'))(_0x93b0('0x13'));var utils=require('../../config/utils');var config=require(_0x93b0('0x14'));var licenseUtil=require(_0x93b0('0x15'));var db=require(_0x93b0('0x16'))['db'];function respondWithStatusCode(_0x4cffd9,_0x3eebbe){_0x3eebbe=_0x3eebbe||0xcc;return function(_0x79a5ae){if(_0x79a5ae){return _0x4cffd9['sendStatus'](_0x3eebbe);}return _0x4cffd9[_0x93b0('0x17')](_0x3eebbe)[_0x93b0('0x18')]();};}function respondWithResult(_0x448d64,_0x44fade){_0x44fade=_0x44fade||0xc8;return function(_0x1b5f77){if(_0x1b5f77){return _0x448d64['status'](_0x44fade)[_0x93b0('0x19')](_0x1b5f77);}};}function respondWithFilteredResult(_0x559e13,_0x2d9640){return function(_0x3f95c4){if(_0x3f95c4){var _0xfae18e=typeof _0x2d9640[_0x93b0('0x1a')]==='undefined'&&typeof _0x2d9640['limit']==='undefined';var _0x243687=_0x3f95c4[_0x93b0('0x1b')];var _0x1dcd66=_0xfae18e?0x0:_0x2d9640['offset'];var _0x4804d5=_0xfae18e?_0x3f95c4[_0x93b0('0x1b')]:_0x2d9640['offset']+_0x2d9640[_0x93b0('0x1c')];var _0x5ed1f0;if(_0x4804d5>=_0x243687){_0x4804d5=_0x243687;_0x5ed1f0=0xc8;}else{_0x5ed1f0=0xce;}_0x559e13[_0x93b0('0x17')](_0x5ed1f0);return _0x559e13[_0x93b0('0x1d')](_0x93b0('0x1e'),_0x1dcd66+'-'+_0x4804d5+'/'+_0x243687)['json'](_0x3f95c4);}return null;};}function patchUpdates(_0x5b77af){return function(_0x2f97e0){try{jsonpatch[_0x93b0('0x1f')](_0x2f97e0,_0x5b77af,!![]);}catch(_0x143424){return BPromise[_0x93b0('0x20')](_0x143424);}return _0x2f97e0['save']();};}function saveUpdates(_0x141621,_0x415c00){return function(_0x179945){if(_0x179945){return _0x179945['update'](_0x141621)[_0x93b0('0x21')](function(_0x34a210){return _0x34a210;});}return null;};}function removeEntity(_0x1b03d2,_0x2ca10c){return function(_0x83f6d6){if(_0x83f6d6){return _0x83f6d6[_0x93b0('0x22')]()[_0x93b0('0x21')](function(){_0x1b03d2[_0x93b0('0x17')](0xcc)[_0x93b0('0x18')]();});}};}function handleEntityNotFound(_0x3f1a87,_0x2c4964){return function(_0x3d7d14){if(!_0x3d7d14){_0x3f1a87['sendStatus'](0x194);}return _0x3d7d14;};}function handleError(_0x1ff2dc,_0x366040){_0x366040=_0x366040||0x1f4;return function(_0x24b2a4){logger['error'](_0x24b2a4[_0x93b0('0x23')]);if(_0x24b2a4['name']){delete _0x24b2a4[_0x93b0('0x24')];}_0x1ff2dc['status'](_0x366040)['send'](_0x24b2a4);};}exports[_0x93b0('0x25')]=function(_0x21a6ce,_0x2b9e1a){var _0x469cf2={},_0x388d80={},_0x3d0f30={'count':0x0,'rows':[]};var _0x1c60d6=_[_0x93b0('0x26')](db[_0x93b0('0x27')][_0x93b0('0x28')],function(_0x2517ef){return{'name':_0x2517ef[_0x93b0('0x29')],'type':_0x2517ef[_0x93b0('0x2a')][_0x93b0('0x2b')]};});_0x388d80[_0x93b0('0x2c')]=_[_0x93b0('0x26')](_0x1c60d6,_0x93b0('0x24'));_0x388d80[_0x93b0('0x2d')]=_[_0x93b0('0x2e')](_0x21a6ce['query']);_0x388d80[_0x93b0('0x2f')]=_[_0x93b0('0x30')](_0x388d80[_0x93b0('0x2c')],_0x388d80[_0x93b0('0x2d')]);_0x469cf2['attributes']=_[_0x93b0('0x30')](_0x388d80['model'],qs[_0x93b0('0x31')](_0x21a6ce[_0x93b0('0x2d')][_0x93b0('0x31')]));_0x469cf2['attributes']=_0x469cf2[_0x93b0('0x32')][_0x93b0('0x33')]?_0x469cf2[_0x93b0('0x32')]:_0x388d80[_0x93b0('0x2c')];if(!_0x21a6ce['query']['hasOwnProperty'](_0x93b0('0x34'))){_0x469cf2[_0x93b0('0x1c')]=qs[_0x93b0('0x1c')](_0x21a6ce[_0x93b0('0x2d')][_0x93b0('0x1c')]);_0x469cf2[_0x93b0('0x1a')]=qs[_0x93b0('0x1a')](_0x21a6ce[_0x93b0('0x2d')][_0x93b0('0x1a')]);}_0x469cf2[_0x93b0('0x35')]=qs[_0x93b0('0x36')](_0x21a6ce['query'][_0x93b0('0x36')]);_0x469cf2[_0x93b0('0x37')]=qs[_0x93b0('0x2f')](_[_0x93b0('0x38')](_0x21a6ce[_0x93b0('0x2d')],_0x388d80[_0x93b0('0x2f')]),_0x1c60d6);if(_0x21a6ce[_0x93b0('0x2d')]['filter']){_0x469cf2[_0x93b0('0x37')]=_[_0x93b0('0x39')](_0x469cf2[_0x93b0('0x37')],{'$or':_['map'](_0x1c60d6,function(_0x59d46f){if(_0x59d46f[_0x93b0('0x2a')]!=='VIRTUAL'){var _0x173565={};_0x173565[_0x59d46f[_0x93b0('0x24')]]={'$like':'%'+_0x21a6ce[_0x93b0('0x2d')][_0x93b0('0x3a')]+'%'};return _0x173565;}})});}_0x469cf2=_[_0x93b0('0x39')]({},_0x469cf2,_0x21a6ce['options']);var _0x1df845={'where':_0x469cf2[_0x93b0('0x37')]};return db[_0x93b0('0x27')][_0x93b0('0x1b')](_0x1df845)[_0x93b0('0x21')](function(_0x1b5901){_0x3d0f30[_0x93b0('0x1b')]=_0x1b5901;if(_0x21a6ce[_0x93b0('0x2d')][_0x93b0('0x3b')]){_0x469cf2[_0x93b0('0x3c')]=[{'all':!![]}];}return db['Migration']['findAll'](_0x469cf2);})[_0x93b0('0x21')](function(_0x2b5033){_0x3d0f30[_0x93b0('0x3d')]=_0x2b5033;return _0x3d0f30;})[_0x93b0('0x21')](respondWithFilteredResult(_0x2b9e1a,_0x469cf2))[_0x93b0('0x3e')](handleError(_0x2b9e1a,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4fe0=['moment','path','rimraf','define','Migration','migrations','lodash','../../config/logger'];(function(_0x21a9d9,_0x4d5ac8){var _0x46adce=function(_0xfdd336){while(--_0xfdd336){_0x21a9d9['push'](_0x21a9d9['shift']());}};_0x46adce(++_0x4d5ac8);}(_0x4fe0,0x1ae));var _0x04fe=function(_0x518e9e,_0x15b2d1){_0x518e9e=_0x518e9e-0x0;var _0x2b0d0f=_0x4fe0[_0x518e9e];return _0x2b0d0f;};'use strict';var _=require(_0x04fe('0x0'));var util=require('util');var logger=require(_0x04fe('0x1'))('api');var moment=require(_0x04fe('0x2'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x04fe('0x3'));var rimraf=require(_0x04fe('0x4'));var config=require('../../config/environment');var attributes=require('./migration.attributes');module['exports']=function(_0x4c5380,_0x159ca3){return _0x4c5380[_0x04fe('0x5')](_0x04fe('0x6'),attributes,{'tableName':_0x04fe('0x7'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x071d=['api','moment','bluebird','../../config/environment','Migration','migrations','util'];(function(_0x4889aa,_0x267b77){var _0x124cbc=function(_0x211a74){while(--_0x211a74){_0x4889aa['push'](_0x4889aa['shift']());}};_0x124cbc(++_0x267b77);}(_0x071d,0x14f));var _0xd071=function(_0x1b2ff7,_0x12a034){_0x1b2ff7=_0x1b2ff7-0x0;var _0x31656a=_0x071d[_0x1b2ff7];return _0x31656a;};'use strict';var _=require('lodash');var util=require(_0xd071('0x0'));var logger=require('../../config/logger')(_0xd071('0x1'));var moment=require(_0xd071('0x2'));var BPromise=require(_0xd071('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0xd071('0x4'));var attributes=require('./migration.attributes');module['exports']=function(_0x581bf1,_0x4a7a8b){return _0x581bf1['define'](_0xd071('0x5'),attributes,{'tableName':_0xd071('0x6'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc901=['ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','Migration,\x20%s,\x20%s','request\x20sent','debug','Migration,\x20%s,\x20%s,\x20%s','error','code','message','lodash'];(function(_0x56278d,_0xe74a9d){var _0xab40d6=function(_0x1c262d){while(--_0x1c262d){_0x56278d['push'](_0x56278d['shift']());}};_0xab40d6(++_0xe74a9d);}(_0xc901,0x142));var _0x1c90=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0xc901[_0x122ef9];return _0x42fba0;};'use strict';var _=require(_0x1c90('0x0'));var util=require('util');var moment=require('moment');var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x1c90('0x1'));var db=require(_0x1c90('0x2'))['db'];var utils=require('../../config/utils');var logger=require(_0x1c90('0x3'))(_0x1c90('0x4'));var config=require(_0x1c90('0x5'));var jayson=require(_0x1c90('0x6'));var client=jayson[_0x1c90('0x7')][_0x1c90('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x912860,_0x12c07d,_0x423cfb){return new BPromise(function(_0x19196f,_0x514386){return client[_0x1c90('0x9')](_0x912860,_0x423cfb)[_0x1c90('0xa')](function(_0x38cd18){logger[_0x1c90('0xb')](_0x1c90('0xc'),_0x12c07d,_0x1c90('0xd'));logger[_0x1c90('0xe')](_0x1c90('0xf'),_0x12c07d,'request\x20sent',JSON['stringify'](_0x38cd18));if(_0x38cd18[_0x1c90('0x10')]){if(_0x38cd18[_0x1c90('0x10')][_0x1c90('0x11')]===0x1f4){logger['error']('Migration,\x20%s,\x20%s',_0x12c07d,_0x38cd18[_0x1c90('0x10')][_0x1c90('0x12')]);return _0x514386(_0x38cd18['error'][_0x1c90('0x12')]);}logger[_0x1c90('0x10')](_0x1c90('0xc'),_0x12c07d,_0x38cd18['error'][_0x1c90('0x12')]);return _0x19196f(_0x38cd18['error'][_0x1c90('0x12')]);}else{logger[_0x1c90('0xb')](_0x1c90('0xc'),_0x12c07d,_0x1c90('0xd'));_0x19196f(_0x38cd18['result'][_0x1c90('0x12')]);}})['catch'](function(_0x2d3c90){logger[_0x1c90('0x10')]('Migration,\x20%s,\x20%s',_0x12c07d,_0x2d3c90);_0x514386(_0x2d3c90);});});}
\ No newline at end of file
+var _0xbde2=['../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','request','Migration,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','info','result','catch','util','moment','bluebird','ioredis'];(function(_0x2b8077,_0x453634){var _0x308091=function(_0x426df7){while(--_0x426df7){_0x2b8077['push'](_0x2b8077['shift']());}};_0x308091(++_0x453634);}(_0xbde2,0x7a));var _0x2bde=function(_0x510fc8,_0x5a05dc){_0x510fc8=_0x510fc8-0x0;var _0x2276ea=_0xbde2[_0x510fc8];return _0x2276ea;};'use strict';var _=require('lodash');var util=require(_0x2bde('0x0'));var moment=require(_0x2bde('0x1'));var BPromise=require(_0x2bde('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x2bde('0x3'));var db=require(_0x2bde('0x4'))['db'];var utils=require(_0x2bde('0x5'));var logger=require('../../config/logger')(_0x2bde('0x6'));var config=require(_0x2bde('0x7'));var jayson=require(_0x2bde('0x8'));var client=jayson[_0x2bde('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x30d926,_0x7b834d,_0x39522f){return new BPromise(function(_0x3ddbc4,_0x343cba){return client[_0x2bde('0xa')](_0x30d926,_0x39522f)['then'](function(_0x5cc171){logger['info'](_0x2bde('0xb'),_0x7b834d,_0x2bde('0xc'));logger[_0x2bde('0xd')]('Migration,\x20%s,\x20%s,\x20%s',_0x7b834d,_0x2bde('0xc'),JSON[_0x2bde('0xe')](_0x5cc171));if(_0x5cc171[_0x2bde('0xf')]){if(_0x5cc171[_0x2bde('0xf')][_0x2bde('0x10')]===0x1f4){logger[_0x2bde('0xf')]('Migration,\x20%s,\x20%s',_0x7b834d,_0x5cc171[_0x2bde('0xf')]['message']);return _0x343cba(_0x5cc171[_0x2bde('0xf')][_0x2bde('0x11')]);}logger[_0x2bde('0xf')](_0x2bde('0xb'),_0x7b834d,_0x5cc171[_0x2bde('0xf')][_0x2bde('0x11')]);return _0x3ddbc4(_0x5cc171[_0x2bde('0xf')][_0x2bde('0x11')]);}else{logger[_0x2bde('0x12')](_0x2bde('0xb'),_0x7b834d,_0x2bde('0xc'));_0x3ddbc4(_0x5cc171[_0x2bde('0x13')][_0x2bde('0x11')]);}})[_0x2bde('0x14')](function(_0x4f2f86){logger['error'](_0x2bde('0xb'),_0x7b834d,_0x4f2f86);_0x343cba(_0x4f2f86);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x29c1=['../../components/auth/service','../../components/interaction/service','../../config/environment','./network.controller','isAuthenticated','index','get','/:id','show','post','put','update','delete','destroy','multer','util','path','connect-timeout','express','Router','fs-extra'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x29c1,0x1c7));var _0x129c=function(_0x5c911a,_0x433ace){_0x5c911a=_0x5c911a-0x0;var _0xc0fb9f=_0x29c1[_0x5c911a];return _0xc0fb9f;};'use strict';var multer=require(_0x129c('0x0'));var util=require(_0x129c('0x1'));var path=require(_0x129c('0x2'));var timeout=require(_0x129c('0x3'));var express=require(_0x129c('0x4'));var router=express[_0x129c('0x5')]();var fs_extra=require(_0x129c('0x6'));var auth=require(_0x129c('0x7'));var interaction=require(_0x129c('0x8'));var config=require(_0x129c('0x9'));var controller=require(_0x129c('0xa'));router['get']('/',auth[_0x129c('0xb')](),controller[_0x129c('0xc')]);router[_0x129c('0xd')](_0x129c('0xe'),auth[_0x129c('0xb')](),controller[_0x129c('0xf')]);router[_0x129c('0x10')]('/',auth[_0x129c('0xb')](),controller['create']);router[_0x129c('0x11')](_0x129c('0xe'),auth[_0x129c('0xb')](),controller[_0x129c('0x12')]);router[_0x129c('0x13')](_0x129c('0xe'),auth[_0x129c('0xb')](),controller[_0x129c('0x14')]);module['exports']=router;
\ No newline at end of file
+var _0xf5c0=['Router','../../components/auth/service','../../config/environment','./network.controller','isAuthenticated','index','/:id','show','post','create','put','update','exports','multer','util','path','connect-timeout','express'];(function(_0x34d1fd,_0x18e9cd){var _0x4b96f8=function(_0x2daa36){while(--_0x2daa36){_0x34d1fd['push'](_0x34d1fd['shift']());}};_0x4b96f8(++_0x18e9cd);}(_0xf5c0,0x9d));var _0x0f5c=function(_0x4a1583,_0x57fc69){_0x4a1583=_0x4a1583-0x0;var _0x347725=_0xf5c0[_0x4a1583];return _0x347725;};'use strict';var multer=require(_0x0f5c('0x0'));var util=require(_0x0f5c('0x1'));var path=require(_0x0f5c('0x2'));var timeout=require(_0x0f5c('0x3'));var express=require(_0x0f5c('0x4'));var router=express[_0x0f5c('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0x0f5c('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0x0f5c('0x7'));var controller=require(_0x0f5c('0x8'));router['get']('/',auth[_0x0f5c('0x9')](),controller[_0x0f5c('0xa')]);router['get'](_0x0f5c('0xb'),auth[_0x0f5c('0x9')](),controller[_0x0f5c('0xc')]);router[_0x0f5c('0xd')]('/',auth['isAuthenticated'](),controller[_0x0f5c('0xe')]);router[_0x0f5c('0xf')](_0x0f5c('0xb'),auth['isAuthenticated'](),controller[_0x0f5c('0x10')]);router['delete']('/:id',auth[_0x0f5c('0x9')](),controller['destroy']);module[_0x0f5c('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9024=['sequelize','exports','ENUM','localnet','stun','turn','STRING'];(function(_0x2e1696,_0x29064e){var _0x213c29=function(_0x7d007b){while(--_0x7d007b){_0x2e1696['push'](_0x2e1696['shift']());}};_0x213c29(++_0x29064e);}(_0x9024,0x1e3));var _0x4902=function(_0xd4ef5d,_0x2b66be){_0xd4ef5d=_0xd4ef5d-0x0;var _0x39910c=_0x9024[_0xd4ef5d];return _0x39910c;};'use strict';var Sequelize=require(_0x4902('0x0'));module[_0x4902('0x1')]={'type':{'type':Sequelize[_0x4902('0x2')](_0x4902('0x3'),'externip',_0x4902('0x4'),_0x4902('0x5'))},'value':{'type':Sequelize[_0x4902('0x6')]},'username':{'type':Sequelize[_0x4902('0x6')]},'password':{'type':Sequelize[_0x4902('0x6')]}};
\ No newline at end of file
+var _0x1d6e=['sequelize','externip','turn','STRING'];(function(_0x20e764,_0x19811d){var _0x4ebc22=function(_0x4d9bdf){while(--_0x4d9bdf){_0x20e764['push'](_0x20e764['shift']());}};_0x4ebc22(++_0x19811d);}(_0x1d6e,0x1f4));var _0xe1d6=function(_0x1b91c7,_0x539acd){_0x1b91c7=_0x1b91c7-0x0;var _0xbbe014=_0x1d6e[_0x1b91c7];return _0xbbe014;};'use strict';var Sequelize=require(_0xe1d6('0x0'));module['exports']={'type':{'type':Sequelize['ENUM']('localnet',_0xe1d6('0x1'),'stun',_0xe1d6('0x2'))},'value':{'type':Sequelize[_0xe1d6('0x3')]},'username':{'type':Sequelize['STRING']},'password':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa947=['error','code','message','result','catch','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','apply','destroy','stack','name','send','map','Network','rawAttributes','fieldName','key','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','filter','merge','includeAll','include','findAll','show','find','create','sequelize','transaction','body','type','readFileSync','join','root','server/files/templates/stun_multiple.ejs','utf8','render','/etc/asterisk/stun_xcally.conf','Reload','toUpperCase','TURN','server/files/templates/turn_multiple.ejs','writeFileSync','res_stun_monitor.so','server/files/templates/network.ejs','format','/etc/asterisk/sip_xcally_%s.conf','toLowerCase','params','STUN','update','chan_sip.so','/etc/asterisk/turn_xcally.conf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','http','then','info','Network,\x20%s,\x20%s','request\x20sent','debug','stringify'];(function(_0x4a7843,_0x24f6d1){var _0x2c57fe=function(_0x37fbc9){while(--_0x37fbc9){_0x4a7843['push'](_0x4a7843['shift']());}};_0x2c57fe(++_0x24f6d1);}(_0xa947,0x11d));var _0x7a94=function(_0x5b2410,_0x28fa4f){_0x5b2410=_0x5b2410-0x0;var _0x4d43fc=_0xa947[_0x5b2410];return _0x4d43fc;};'use strict';var emlformat=require(_0x7a94('0x0'));var rimraf=require(_0x7a94('0x1'));var zipdir=require(_0x7a94('0x2'));var jsonpatch=require(_0x7a94('0x3'));var rp=require(_0x7a94('0x4'));var moment=require(_0x7a94('0x5'));var BPromise=require(_0x7a94('0x6'));var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require(_0x7a94('0x7'));var csv=require('to-csv');var ejs=require(_0x7a94('0x8'));var fs=require('fs');var fs_extra=require(_0x7a94('0x9'));var _=require(_0x7a94('0xa'));var squel=require(_0x7a94('0xb'));var crypto=require(_0x7a94('0xc'));var jsforce=require(_0x7a94('0xd'));var deskjs=require(_0x7a94('0xe'));var toCsv=require(_0x7a94('0xf'));var querystring=require(_0x7a94('0x10'));var Papa=require(_0x7a94('0x11'));var Redis=require(_0x7a94('0x12'));var authService=require(_0x7a94('0x13'));var qs=require(_0x7a94('0x14'));var as=require(_0x7a94('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x7a94('0x16'))('api');var utils=require(_0x7a94('0x17'));var config=require(_0x7a94('0x18'));var licenseUtil=require(_0x7a94('0x19'));var db=require(_0x7a94('0x1a'))['db'];var jayson=require(_0x7a94('0x1b'));var client=jayson[_0x7a94('0x1c')][_0x7a94('0x1d')]({'port':0x232a});function respondWithRpcPromise(_0x370ff0,_0x33b383,_0x8c7646,_0x40110f){return new BPromise(function(_0x4b5d0d,_0x13fbc6){var _0x359cdc=_0x40110f||client;return _0x359cdc['request'](_0x370ff0,_0x8c7646)[_0x7a94('0x1e')](function(_0x77fa94){logger[_0x7a94('0x1f')](_0x7a94('0x20'),_0x33b383,_0x7a94('0x21'));logger[_0x7a94('0x22')]('Network,\x20%s,\x20%s,\x20%s',_0x33b383,_0x7a94('0x21'),JSON[_0x7a94('0x23')](_0x77fa94));if(_0x77fa94[_0x7a94('0x24')]){if(_0x77fa94['error'][_0x7a94('0x25')]===0x1f4){logger['error'](_0x7a94('0x20'),_0x33b383,_0x77fa94[_0x7a94('0x24')][_0x7a94('0x26')]);return _0x13fbc6(_0x77fa94['error'][_0x7a94('0x26')]);}logger['error'](_0x7a94('0x20'),_0x33b383,_0x77fa94['error'][_0x7a94('0x26')]);return _0x4b5d0d(_0x77fa94['error'][_0x7a94('0x26')]);}else{logger['info'](_0x7a94('0x20'),_0x33b383,_0x7a94('0x21'));_0x4b5d0d(_0x77fa94[_0x7a94('0x27')]['message']);}})[_0x7a94('0x28')](function(_0x1ff3e2){logger['error']('Network,\x20%s,\x20%s',_0x33b383,_0x1ff3e2);_0x13fbc6(_0x1ff3e2);});});}function respondWithStatusCode(_0x5b9185,_0x1856d7){_0x1856d7=_0x1856d7||0xcc;return function(_0x49ebe8){if(_0x49ebe8){return _0x5b9185[_0x7a94('0x29')](_0x1856d7);}return _0x5b9185[_0x7a94('0x2a')](_0x1856d7)[_0x7a94('0x2b')]();};}function respondWithResult(_0x51a0cf,_0x2a3982){_0x2a3982=_0x2a3982||0xc8;return function(_0x1b0a74){if(_0x1b0a74){return _0x51a0cf[_0x7a94('0x2a')](_0x2a3982)['json'](_0x1b0a74);}};}function respondWithFilteredResult(_0x4ba9fa,_0x53799c){return function(_0x185e87){if(_0x185e87){var _0xbba672=typeof _0x53799c[_0x7a94('0x2c')]===_0x7a94('0x2d')&&typeof _0x53799c[_0x7a94('0x2e')]===_0x7a94('0x2d');var _0x578603=_0x185e87[_0x7a94('0x2f')];var _0xd2cf6c=_0xbba672?0x0:_0x53799c['offset'];var _0x1b6c47=_0xbba672?_0x185e87[_0x7a94('0x2f')]:_0x53799c['offset']+_0x53799c['limit'];var _0x3c40d6;if(_0x1b6c47>=_0x578603){_0x1b6c47=_0x578603;_0x3c40d6=0xc8;}else{_0x3c40d6=0xce;}_0x4ba9fa['status'](_0x3c40d6);return _0x4ba9fa[_0x7a94('0x30')](_0x7a94('0x31'),_0xd2cf6c+'-'+_0x1b6c47+'/'+_0x578603)['json'](_0x185e87);}return null;};}function patchUpdates(_0x35cd39){return function(_0x2705df){try{jsonpatch[_0x7a94('0x32')](_0x2705df,_0x35cd39,!![]);}catch(_0xe3e1be){return BPromise['reject'](_0xe3e1be);}return _0x2705df['save']();};}function saveUpdates(_0x5e80e6,_0x2ab443){return function(_0x3d79cd){if(_0x3d79cd){return _0x3d79cd['update'](_0x5e80e6)[_0x7a94('0x1e')](function(_0x4dc0c1){return _0x4dc0c1;});}return null;};}function removeEntity(_0x5370c0,_0x3427c7){return function(_0x383028){if(_0x383028){return _0x383028[_0x7a94('0x33')]()[_0x7a94('0x1e')](function(){_0x5370c0['status'](0xcc)[_0x7a94('0x2b')]();});}};}function handleEntityNotFound(_0xd824c,_0xf49959){return function(_0x33ab8b){if(!_0x33ab8b){_0xd824c[_0x7a94('0x29')](0x194);}return _0x33ab8b;};}function handleError(_0x2c3458,_0xe68e18){_0xe68e18=_0xe68e18||0x1f4;return function(_0x279389){logger[_0x7a94('0x24')](_0x279389[_0x7a94('0x34')]);if(_0x279389[_0x7a94('0x35')]){delete _0x279389['name'];}_0x2c3458[_0x7a94('0x2a')](_0xe68e18)[_0x7a94('0x36')](_0x279389);};}exports['index']=function(_0x2a8cbb,_0x460bd4){var _0x346ac5={},_0x2822ae={},_0x5d9c1f={'count':0x0,'rows':[]};var _0x2d2a85=_[_0x7a94('0x37')](db[_0x7a94('0x38')][_0x7a94('0x39')],function(_0x9bac31){return{'name':_0x9bac31[_0x7a94('0x3a')],'type':_0x9bac31['type'][_0x7a94('0x3b')]};});_0x2822ae[_0x7a94('0x3c')]=_[_0x7a94('0x37')](_0x2d2a85,_0x7a94('0x35'));_0x2822ae[_0x7a94('0x3d')]=_[_0x7a94('0x3e')](_0x2a8cbb[_0x7a94('0x3d')]);_0x2822ae['filters']=_[_0x7a94('0x3f')](_0x2822ae[_0x7a94('0x3c')],_0x2822ae[_0x7a94('0x3d')]);_0x346ac5[_0x7a94('0x40')]=_['intersection'](_0x2822ae[_0x7a94('0x3c')],qs[_0x7a94('0x41')](_0x2a8cbb['query'][_0x7a94('0x41')]));_0x346ac5['attributes']=_0x346ac5['attributes'][_0x7a94('0x42')]?_0x346ac5[_0x7a94('0x40')]:_0x2822ae[_0x7a94('0x3c')];if(!_0x2a8cbb[_0x7a94('0x3d')][_0x7a94('0x43')](_0x7a94('0x44'))){_0x346ac5[_0x7a94('0x2e')]=qs['limit'](_0x2a8cbb[_0x7a94('0x3d')]['limit']);_0x346ac5[_0x7a94('0x2c')]=qs[_0x7a94('0x2c')](_0x2a8cbb['query'][_0x7a94('0x2c')]);}_0x346ac5[_0x7a94('0x45')]=qs[_0x7a94('0x46')](_0x2a8cbb[_0x7a94('0x3d')][_0x7a94('0x46')]);_0x346ac5[_0x7a94('0x47')]=qs[_0x7a94('0x48')](_['pick'](_0x2a8cbb[_0x7a94('0x3d')],_0x2822ae[_0x7a94('0x48')]),_0x2d2a85);if(_0x2a8cbb[_0x7a94('0x3d')][_0x7a94('0x49')]){_0x346ac5[_0x7a94('0x47')]=_[_0x7a94('0x4a')](_0x346ac5[_0x7a94('0x47')],{'$or':_['map'](_0x2d2a85,function(_0xd401b1){if(_0xd401b1['type']!=='VIRTUAL'){var _0x188ce4={};_0x188ce4[_0xd401b1['name']]={'$like':'%'+_0x2a8cbb['query'][_0x7a94('0x49')]+'%'};return _0x188ce4;}})});}_0x346ac5=_['merge']({},_0x346ac5,_0x2a8cbb['options']);var _0x3ad69d={'where':_0x346ac5[_0x7a94('0x47')]};return db[_0x7a94('0x38')][_0x7a94('0x2f')](_0x3ad69d)[_0x7a94('0x1e')](function(_0x991711){_0x5d9c1f[_0x7a94('0x2f')]=_0x991711;if(_0x2a8cbb[_0x7a94('0x3d')][_0x7a94('0x4b')]){_0x346ac5[_0x7a94('0x4c')]=[{'all':!![]}];}return db[_0x7a94('0x38')][_0x7a94('0x4d')](_0x346ac5);})[_0x7a94('0x1e')](function(_0x4b414b){_0x5d9c1f['rows']=_0x4b414b;return _0x5d9c1f;})[_0x7a94('0x1e')](respondWithFilteredResult(_0x460bd4,_0x346ac5))['catch'](handleError(_0x460bd4,null));};exports[_0x7a94('0x4e')]=function(_0x1a27c7,_0x18b70b){var _0x20fd9c={'raw':!![],'where':{'id':_0x1a27c7['params']['id']}},_0x360c95={};_0x360c95[_0x7a94('0x3c')]=_[_0x7a94('0x3e')](db[_0x7a94('0x38')]['rawAttributes']);_0x360c95[_0x7a94('0x3d')]=_[_0x7a94('0x3e')](_0x1a27c7[_0x7a94('0x3d')]);_0x360c95[_0x7a94('0x48')]=_['intersection'](_0x360c95['model'],_0x360c95[_0x7a94('0x3d')]);_0x20fd9c[_0x7a94('0x40')]=_[_0x7a94('0x3f')](_0x360c95['model'],qs[_0x7a94('0x41')](_0x1a27c7[_0x7a94('0x3d')][_0x7a94('0x41')]));_0x20fd9c[_0x7a94('0x40')]=_0x20fd9c['attributes'][_0x7a94('0x42')]?_0x20fd9c[_0x7a94('0x40')]:_0x360c95['model'];if(_0x1a27c7[_0x7a94('0x3d')][_0x7a94('0x4b')]){_0x20fd9c[_0x7a94('0x4c')]=[{'all':!![]}];}_0x20fd9c=_[_0x7a94('0x4a')]({},_0x20fd9c,_0x1a27c7['options']);return db[_0x7a94('0x38')][_0x7a94('0x4f')](_0x20fd9c)[_0x7a94('0x1e')](handleEntityNotFound(_0x18b70b,null))[_0x7a94('0x1e')](respondWithResult(_0x18b70b,null))[_0x7a94('0x28')](handleError(_0x18b70b,null));};exports[_0x7a94('0x50')]=function(_0x22c47d,_0x327f3a,_0x539ebc){var _0x4f6e42;return db[_0x7a94('0x51')][_0x7a94('0x52')](function(_0x1657f3){return db['Network'][_0x7a94('0x50')](_0x22c47d['body'],{'raw':!![]})[_0x7a94('0x1e')](function(_0x59dc94){_0x4f6e42=_0x59dc94;return db[_0x7a94('0x38')]['findAll']({'where':{'type':_0x22c47d[_0x7a94('0x53')]['type']},'raw':!![]});})['then'](function(_0x2b4791){if(_0x4f6e42[_0x7a94('0x54')]['toUpperCase']()=='STUN'){var _0x220468=fs[_0x7a94('0x55')](path[_0x7a94('0x56')](config[_0x7a94('0x57')],_0x7a94('0x58')),_0x7a94('0x59'));var _0x547be3=ejs[_0x7a94('0x5a')](_0x220468,{'networks':_0x2b4791||[]});fs['writeFileSync'](_0x7a94('0x5b'),_0x547be3);return respondWithRpcPromise(_0x7a94('0x5c'),_0x7a94('0x50'),{'module':'res_stun_monitor.so'});}else if(_0x4f6e42[_0x7a94('0x54')][_0x7a94('0x5d')]()==_0x7a94('0x5e')){var _0x456a9a=fs['readFileSync'](path[_0x7a94('0x56')](config['root'],_0x7a94('0x5f')),'utf8');var _0x14ffd7=ejs[_0x7a94('0x5a')](_0x456a9a,{'networks':_0x2b4791||[]});fs[_0x7a94('0x60')]('/etc/asterisk/turn_xcally.conf',_0x14ffd7);return respondWithRpcPromise(_0x7a94('0x5c'),_0x7a94('0x50'),{'module':_0x7a94('0x61')});}else{var _0x1e4058=fs[_0x7a94('0x55')](path[_0x7a94('0x56')](config[_0x7a94('0x57')],_0x7a94('0x62')),_0x7a94('0x59'));var _0x1c325f=ejs[_0x7a94('0x5a')](_0x1e4058,{'networks':_0x2b4791||[]});fs[_0x7a94('0x60')](util[_0x7a94('0x63')](_0x7a94('0x64'),_0x22c47d[_0x7a94('0x53')][_0x7a94('0x54')][_0x7a94('0x65')]()),_0x1c325f);return respondWithRpcPromise(_0x7a94('0x5c'),_0x7a94('0x50'),{'module':'chan_sip.so'});}return null;})[_0x7a94('0x1e')](function(){return _0x4f6e42;});})[_0x7a94('0x1e')](respondWithResult(_0x327f3a,0xc9))[_0x7a94('0x28')](handleError(_0x327f3a,null));};exports['update']=function(_0x27e673,_0x26e724,_0x1368db){var _0x279687;return db[_0x7a94('0x51')][_0x7a94('0x52')](function(_0x3b337f){return db[_0x7a94('0x38')][_0x7a94('0x4f')]({'where':{'id':_0x27e673[_0x7a94('0x66')]['id']}})[_0x7a94('0x1e')](handleEntityNotFound(_0x26e724,null))[_0x7a94('0x1e')](saveUpdates(_0x27e673['body'],null))[_0x7a94('0x1e')](function(_0xc5ce14){if(_0xc5ce14){_0x279687=_0xc5ce14;return db[_0x7a94('0x38')][_0x7a94('0x4d')]({'where':{'type':_0x279687[_0x7a94('0x54')]},'raw':!![]});}return null;})[_0x7a94('0x1e')](function(_0x482c5b){if(_0x279687['type']['toUpperCase']()==_0x7a94('0x67')){var _0x1df70e=fs[_0x7a94('0x55')](path[_0x7a94('0x56')](config[_0x7a94('0x57')],_0x7a94('0x58')),'utf8');var _0xe68739=ejs[_0x7a94('0x5a')](_0x1df70e,{'networks':_0x482c5b||[]});fs[_0x7a94('0x60')](_0x7a94('0x5b'),_0xe68739);return respondWithRpcPromise('Reload',_0x7a94('0x68'),{'module':_0x7a94('0x61')});}else if(_0x279687[_0x7a94('0x54')][_0x7a94('0x5d')]()==_0x7a94('0x5e')){var _0x39eff8=fs['readFileSync'](path[_0x7a94('0x56')](config[_0x7a94('0x57')],_0x7a94('0x5f')),_0x7a94('0x59'));var _0x1d94cc=ejs[_0x7a94('0x5a')](_0x39eff8,{'networks':_0x482c5b||[]});fs['writeFileSync']('/etc/asterisk/turn_xcally.conf',_0x1d94cc);return respondWithRpcPromise(_0x7a94('0x5c'),_0x7a94('0x68'),{'module':'res_stun_monitor.so'});}else{var _0xa6513f=fs[_0x7a94('0x55')](path['join'](config[_0x7a94('0x57')],_0x7a94('0x62')),'utf8');var _0x275824=ejs[_0x7a94('0x5a')](_0xa6513f,{'networks':_0x482c5b||[]});fs[_0x7a94('0x60')](util[_0x7a94('0x63')](_0x7a94('0x64'),_0x27e673[_0x7a94('0x53')][_0x7a94('0x54')][_0x7a94('0x65')]()),_0x275824);return respondWithRpcPromise(_0x7a94('0x5c'),_0x7a94('0x68'),{'module':_0x7a94('0x69')});}return null;})[_0x7a94('0x1e')](function(_0x98838d){if(_0x98838d){return _0x279687;}return null;});})[_0x7a94('0x1e')](respondWithResult(_0x26e724,null))[_0x7a94('0x28')](handleError(_0x26e724,null));};exports[_0x7a94('0x33')]=function(_0x137306,_0x2882ce,_0x284f51){var _0x40bbcb;return db[_0x7a94('0x38')][_0x7a94('0x4f')]({'where':{'id':_0x137306['params']['id']}})[_0x7a94('0x1e')](function(_0x373be8){_0x40bbcb=_0x373be8;return _0x373be8;})['then'](handleEntityNotFound(_0x2882ce,null))[_0x7a94('0x1e')](removeEntity(_0x2882ce,null))['then'](function(){if(_0x40bbcb){return db[_0x7a94('0x38')][_0x7a94('0x4d')]({'where':{'type':_0x40bbcb[_0x7a94('0x54')]},'raw':!![]});}})['then'](function(_0x4a7094){if(_0x40bbcb[_0x7a94('0x54')][_0x7a94('0x5d')]()==_0x7a94('0x67')){var _0x24e4d4=fs[_0x7a94('0x55')](path[_0x7a94('0x56')](config['root'],_0x7a94('0x58')),_0x7a94('0x59'));var _0x5785ae=ejs['render'](_0x24e4d4,{'networks':_0x4a7094||[]});fs['writeFileSync']('/etc/asterisk/stun_xcally.conf',_0x5785ae);return respondWithRpcPromise(_0x7a94('0x5c'),_0x7a94('0x33'),{'module':_0x7a94('0x61')});}else if(_0x40bbcb[_0x7a94('0x54')][_0x7a94('0x5d')]()==_0x7a94('0x5e')){var _0x5bf93c=fs[_0x7a94('0x55')](path[_0x7a94('0x56')](config['root'],_0x7a94('0x5f')),'utf8');var _0x4f2fcc=ejs[_0x7a94('0x5a')](_0x5bf93c,{'networks':_0x4a7094||[]});fs[_0x7a94('0x60')](_0x7a94('0x6a'),_0x4f2fcc);return respondWithRpcPromise(_0x7a94('0x5c'),_0x7a94('0x33'),{'module':'res_stun_monitor.so'});}else{var _0xb0f869=fs[_0x7a94('0x55')](path[_0x7a94('0x56')](config[_0x7a94('0x57')],_0x7a94('0x62')),_0x7a94('0x59'));var _0x1c8840=ejs['render'](_0xb0f869,{'networks':_0x4a7094||[]});fs[_0x7a94('0x60')](util[_0x7a94('0x63')](_0x7a94('0x64'),_0x137306[_0x7a94('0x53')]['type'][_0x7a94('0x65')]()),_0x1c8840);return respondWithRpcPromise(_0x7a94('0x5c'),_0x7a94('0x33'),{'module':_0x7a94('0x69')});}return null;})[_0x7a94('0x28')](handleError(_0x2882ce,null));};
\ No newline at end of file
+var _0x46b9=['request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/environment','../../config/license/util','jayson/promise','client','http','then','Network,\x20%s,\x20%s','request\x20sent','debug','Network,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','sendStatus','status','end','json','offset','limit','count','Content-Range','apply','save','destroy','stack','name','send','index','rawAttributes','fieldName','type','query','keys','filters','intersection','model','fields','attributes','length','nolimit','sort','where','pick','filter','merge','map','VIRTUAL','options','include','Network','rows','params','includeAll','find','create','sequelize','transaction','body','STUN','readFileSync','join','root','server/files/templates/stun_multiple.ejs','utf8','render','writeFileSync','Reload','res_stun_monitor.so','toUpperCase','TURN','/etc/asterisk/turn_xcally.conf','server/files/templates/network.ejs','format','/etc/asterisk/sip_xcally_%s.conf','toLowerCase','/etc/asterisk/stun_xcally.conf','update','server/files/templates/turn_multiple.ejs','chan_sip.so','findAll','eml-format','rimraf','fast-json-patch'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x46b9,0x13e));var _0x946b=function(_0x1d3a1d,_0x425e55){_0x1d3a1d=_0x1d3a1d-0x0;var _0x37e815=_0x46b9[_0x1d3a1d];return _0x37e815;};'use strict';var emlformat=require(_0x946b('0x0'));var rimraf=require(_0x946b('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x946b('0x2'));var rp=require(_0x946b('0x3'));var moment=require(_0x946b('0x4'));var BPromise=require(_0x946b('0x5'));var Mustache=require(_0x946b('0x6'));var util=require(_0x946b('0x7'));var path=require('path');var sox=require(_0x946b('0x8'));var csv=require(_0x946b('0x9'));var ejs=require(_0x946b('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x946b('0xb'));var squel=require(_0x946b('0xc'));var crypto=require(_0x946b('0xd'));var jsforce=require(_0x946b('0xe'));var deskjs=require(_0x946b('0xf'));var toCsv=require(_0x946b('0x9'));var querystring=require('querystring');var Papa=require(_0x946b('0x10'));var Redis=require(_0x946b('0x11'));var authService=require(_0x946b('0x12'));var qs=require(_0x946b('0x13'));var as=require(_0x946b('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x946b('0x15'));var utils=require(_0x946b('0x16'));var config=require(_0x946b('0x17'));var licenseUtil=require(_0x946b('0x18'));var db=require('../../mysqldb')['db'];var jayson=require(_0x946b('0x19'));var client=jayson[_0x946b('0x1a')][_0x946b('0x1b')]({'port':0x232a});function respondWithRpcPromise(_0x2b2ce9,_0x312958,_0x445239,_0x22b532){return new BPromise(function(_0x543b14,_0x5b84a2){var _0x27b513=_0x22b532||client;return _0x27b513['request'](_0x2b2ce9,_0x445239)[_0x946b('0x1c')](function(_0x167349){logger['info'](_0x946b('0x1d'),_0x312958,_0x946b('0x1e'));logger[_0x946b('0x1f')](_0x946b('0x20'),_0x312958,'request\x20sent',JSON[_0x946b('0x21')](_0x167349));if(_0x167349[_0x946b('0x22')]){if(_0x167349[_0x946b('0x22')][_0x946b('0x23')]===0x1f4){logger[_0x946b('0x22')](_0x946b('0x1d'),_0x312958,_0x167349['error'][_0x946b('0x24')]);return _0x5b84a2(_0x167349[_0x946b('0x22')][_0x946b('0x24')]);}logger[_0x946b('0x22')](_0x946b('0x1d'),_0x312958,_0x167349[_0x946b('0x22')][_0x946b('0x24')]);return _0x543b14(_0x167349[_0x946b('0x22')][_0x946b('0x24')]);}else{logger[_0x946b('0x25')]('Network,\x20%s,\x20%s',_0x312958,_0x946b('0x1e'));_0x543b14(_0x167349[_0x946b('0x26')][_0x946b('0x24')]);}})[_0x946b('0x27')](function(_0x382180){logger[_0x946b('0x22')](_0x946b('0x1d'),_0x312958,_0x382180);_0x5b84a2(_0x382180);});});}function respondWithStatusCode(_0x256b9a,_0x52d674){_0x52d674=_0x52d674||0xcc;return function(_0x140ed9){if(_0x140ed9){return _0x256b9a[_0x946b('0x28')](_0x52d674);}return _0x256b9a[_0x946b('0x29')](_0x52d674)[_0x946b('0x2a')]();};}function respondWithResult(_0x570f77,_0x31a1d0){_0x31a1d0=_0x31a1d0||0xc8;return function(_0x3d254d){if(_0x3d254d){return _0x570f77['status'](_0x31a1d0)[_0x946b('0x2b')](_0x3d254d);}};}function respondWithFilteredResult(_0x5b8123,_0x445a30){return function(_0x2722f8){if(_0x2722f8){var _0x272738=typeof _0x445a30[_0x946b('0x2c')]==='undefined'&&typeof _0x445a30[_0x946b('0x2d')]==='undefined';var _0x5b6806=_0x2722f8[_0x946b('0x2e')];var _0x25913d=_0x272738?0x0:_0x445a30[_0x946b('0x2c')];var _0x3b3249=_0x272738?_0x2722f8[_0x946b('0x2e')]:_0x445a30['offset']+_0x445a30[_0x946b('0x2d')];var _0x55f476;if(_0x3b3249>=_0x5b6806){_0x3b3249=_0x5b6806;_0x55f476=0xc8;}else{_0x55f476=0xce;}_0x5b8123['status'](_0x55f476);return _0x5b8123['set'](_0x946b('0x2f'),_0x25913d+'-'+_0x3b3249+'/'+_0x5b6806)['json'](_0x2722f8);}return null;};}function patchUpdates(_0x4ea98d){return function(_0x2fc702){try{jsonpatch[_0x946b('0x30')](_0x2fc702,_0x4ea98d,!![]);}catch(_0x529078){return BPromise['reject'](_0x529078);}return _0x2fc702[_0x946b('0x31')]();};}function saveUpdates(_0x337d6c,_0x1dff0d){return function(_0x262664){if(_0x262664){return _0x262664['update'](_0x337d6c)[_0x946b('0x1c')](function(_0xcf37f8){return _0xcf37f8;});}return null;};}function removeEntity(_0x5cc561,_0x161287){return function(_0x4dc3b5){if(_0x4dc3b5){return _0x4dc3b5[_0x946b('0x32')]()[_0x946b('0x1c')](function(){_0x5cc561['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x853a5b,_0x1aa5af){return function(_0x40ba69){if(!_0x40ba69){_0x853a5b[_0x946b('0x28')](0x194);}return _0x40ba69;};}function handleError(_0x38cbc1,_0x3d49d8){_0x3d49d8=_0x3d49d8||0x1f4;return function(_0x332e6f){logger['error'](_0x332e6f[_0x946b('0x33')]);if(_0x332e6f[_0x946b('0x34')]){delete _0x332e6f[_0x946b('0x34')];}_0x38cbc1[_0x946b('0x29')](_0x3d49d8)[_0x946b('0x35')](_0x332e6f);};}exports[_0x946b('0x36')]=function(_0x4d546e,_0x210a0d){var _0x4c1b14={},_0x417520={},_0x5e9f50={'count':0x0,'rows':[]};var _0x4fe5d2=_['map'](db['Network'][_0x946b('0x37')],function(_0x5aee96){return{'name':_0x5aee96[_0x946b('0x38')],'type':_0x5aee96[_0x946b('0x39')]['key']};});_0x417520['model']=_['map'](_0x4fe5d2,_0x946b('0x34'));_0x417520[_0x946b('0x3a')]=_[_0x946b('0x3b')](_0x4d546e[_0x946b('0x3a')]);_0x417520[_0x946b('0x3c')]=_[_0x946b('0x3d')](_0x417520[_0x946b('0x3e')],_0x417520[_0x946b('0x3a')]);_0x4c1b14['attributes']=_[_0x946b('0x3d')](_0x417520[_0x946b('0x3e')],qs[_0x946b('0x3f')](_0x4d546e[_0x946b('0x3a')]['fields']));_0x4c1b14[_0x946b('0x40')]=_0x4c1b14['attributes'][_0x946b('0x41')]?_0x4c1b14[_0x946b('0x40')]:_0x417520[_0x946b('0x3e')];if(!_0x4d546e[_0x946b('0x3a')]['hasOwnProperty'](_0x946b('0x42'))){_0x4c1b14[_0x946b('0x2d')]=qs[_0x946b('0x2d')](_0x4d546e[_0x946b('0x3a')][_0x946b('0x2d')]);_0x4c1b14['offset']=qs[_0x946b('0x2c')](_0x4d546e[_0x946b('0x3a')][_0x946b('0x2c')]);}_0x4c1b14['order']=qs[_0x946b('0x43')](_0x4d546e['query'][_0x946b('0x43')]);_0x4c1b14[_0x946b('0x44')]=qs[_0x946b('0x3c')](_[_0x946b('0x45')](_0x4d546e['query'],_0x417520[_0x946b('0x3c')]),_0x4fe5d2);if(_0x4d546e[_0x946b('0x3a')][_0x946b('0x46')]){_0x4c1b14[_0x946b('0x44')]=_[_0x946b('0x47')](_0x4c1b14[_0x946b('0x44')],{'$or':_[_0x946b('0x48')](_0x4fe5d2,function(_0x46c857){if(_0x46c857['type']!==_0x946b('0x49')){var _0x1846c9={};_0x1846c9[_0x46c857[_0x946b('0x34')]]={'$like':'%'+_0x4d546e[_0x946b('0x3a')][_0x946b('0x46')]+'%'};return _0x1846c9;}})});}_0x4c1b14=_[_0x946b('0x47')]({},_0x4c1b14,_0x4d546e[_0x946b('0x4a')]);var _0x51525c={'where':_0x4c1b14[_0x946b('0x44')]};return db['Network'][_0x946b('0x2e')](_0x51525c)['then'](function(_0x2bac47){_0x5e9f50['count']=_0x2bac47;if(_0x4d546e[_0x946b('0x3a')]['includeAll']){_0x4c1b14[_0x946b('0x4b')]=[{'all':!![]}];}return db[_0x946b('0x4c')]['findAll'](_0x4c1b14);})[_0x946b('0x1c')](function(_0x4edd2a){_0x5e9f50[_0x946b('0x4d')]=_0x4edd2a;return _0x5e9f50;})[_0x946b('0x1c')](respondWithFilteredResult(_0x210a0d,_0x4c1b14))[_0x946b('0x27')](handleError(_0x210a0d,null));};exports['show']=function(_0x4d08da,_0x4f5151){var _0x1a5e3f={'raw':!![],'where':{'id':_0x4d08da[_0x946b('0x4e')]['id']}},_0x5936aa={};_0x5936aa[_0x946b('0x3e')]=_[_0x946b('0x3b')](db[_0x946b('0x4c')][_0x946b('0x37')]);_0x5936aa[_0x946b('0x3a')]=_['keys'](_0x4d08da[_0x946b('0x3a')]);_0x5936aa[_0x946b('0x3c')]=_[_0x946b('0x3d')](_0x5936aa['model'],_0x5936aa[_0x946b('0x3a')]);_0x1a5e3f[_0x946b('0x40')]=_['intersection'](_0x5936aa[_0x946b('0x3e')],qs[_0x946b('0x3f')](_0x4d08da['query'][_0x946b('0x3f')]));_0x1a5e3f[_0x946b('0x40')]=_0x1a5e3f[_0x946b('0x40')][_0x946b('0x41')]?_0x1a5e3f[_0x946b('0x40')]:_0x5936aa['model'];if(_0x4d08da[_0x946b('0x3a')][_0x946b('0x4f')]){_0x1a5e3f[_0x946b('0x4b')]=[{'all':!![]}];}_0x1a5e3f=_[_0x946b('0x47')]({},_0x1a5e3f,_0x4d08da[_0x946b('0x4a')]);return db[_0x946b('0x4c')][_0x946b('0x50')](_0x1a5e3f)[_0x946b('0x1c')](handleEntityNotFound(_0x4f5151,null))[_0x946b('0x1c')](respondWithResult(_0x4f5151,null))[_0x946b('0x27')](handleError(_0x4f5151,null));};exports[_0x946b('0x51')]=function(_0x22307a,_0x57c60c,_0x534a10){var _0x543c61;return db[_0x946b('0x52')][_0x946b('0x53')](function(_0x11f5d1){return db[_0x946b('0x4c')]['create'](_0x22307a[_0x946b('0x54')],{'raw':!![]})['then'](function(_0x17915f){_0x543c61=_0x17915f;return db[_0x946b('0x4c')]['findAll']({'where':{'type':_0x22307a['body'][_0x946b('0x39')]},'raw':!![]});})['then'](function(_0x475008){if(_0x543c61['type']['toUpperCase']()==_0x946b('0x55')){var _0x5d9c6c=fs[_0x946b('0x56')](path[_0x946b('0x57')](config[_0x946b('0x58')],_0x946b('0x59')),_0x946b('0x5a'));var _0x36601a=ejs[_0x946b('0x5b')](_0x5d9c6c,{'networks':_0x475008||[]});fs[_0x946b('0x5c')]('/etc/asterisk/stun_xcally.conf',_0x36601a);return respondWithRpcPromise(_0x946b('0x5d'),'create',{'module':_0x946b('0x5e')});}else if(_0x543c61[_0x946b('0x39')][_0x946b('0x5f')]()==_0x946b('0x60')){var _0x4571e6=fs[_0x946b('0x56')](path[_0x946b('0x57')](config['root'],'server/files/templates/turn_multiple.ejs'),'utf8');var _0x536c38=ejs[_0x946b('0x5b')](_0x4571e6,{'networks':_0x475008||[]});fs[_0x946b('0x5c')](_0x946b('0x61'),_0x536c38);return respondWithRpcPromise(_0x946b('0x5d'),_0x946b('0x51'),{'module':_0x946b('0x5e')});}else{var _0x38dce5=fs[_0x946b('0x56')](path[_0x946b('0x57')](config[_0x946b('0x58')],_0x946b('0x62')),'utf8');var _0x6aaf74=ejs[_0x946b('0x5b')](_0x38dce5,{'networks':_0x475008||[]});fs[_0x946b('0x5c')](util[_0x946b('0x63')](_0x946b('0x64'),_0x22307a[_0x946b('0x54')]['type'][_0x946b('0x65')]()),_0x6aaf74);return respondWithRpcPromise(_0x946b('0x5d'),'create',{'module':'chan_sip.so'});}return null;})[_0x946b('0x1c')](function(){return _0x543c61;});})['then'](respondWithResult(_0x57c60c,0xc9))[_0x946b('0x27')](handleError(_0x57c60c,null));};exports['update']=function(_0x18ce2a,_0x13fcf1,_0x19e20c){var _0x31aa80;return db['sequelize'][_0x946b('0x53')](function(_0x3f82ce){return db[_0x946b('0x4c')]['find']({'where':{'id':_0x18ce2a[_0x946b('0x4e')]['id']}})['then'](handleEntityNotFound(_0x13fcf1,null))['then'](saveUpdates(_0x18ce2a[_0x946b('0x54')],null))[_0x946b('0x1c')](function(_0x4891b4){if(_0x4891b4){_0x31aa80=_0x4891b4;return db[_0x946b('0x4c')]['findAll']({'where':{'type':_0x31aa80[_0x946b('0x39')]},'raw':!![]});}return null;})['then'](function(_0xc86308){if(_0x31aa80[_0x946b('0x39')][_0x946b('0x5f')]()==_0x946b('0x55')){var _0x3866ba=fs['readFileSync'](path[_0x946b('0x57')](config[_0x946b('0x58')],_0x946b('0x59')),_0x946b('0x5a'));var _0x4536ad=ejs[_0x946b('0x5b')](_0x3866ba,{'networks':_0xc86308||[]});fs[_0x946b('0x5c')](_0x946b('0x66'),_0x4536ad);return respondWithRpcPromise('Reload',_0x946b('0x67'),{'module':'res_stun_monitor.so'});}else if(_0x31aa80['type']['toUpperCase']()==_0x946b('0x60')){var _0x20409d=fs[_0x946b('0x56')](path['join'](config[_0x946b('0x58')],_0x946b('0x68')),_0x946b('0x5a'));var _0x550ddb=ejs[_0x946b('0x5b')](_0x20409d,{'networks':_0xc86308||[]});fs[_0x946b('0x5c')](_0x946b('0x61'),_0x550ddb);return respondWithRpcPromise(_0x946b('0x5d'),_0x946b('0x67'),{'module':_0x946b('0x5e')});}else{var _0x124009=fs[_0x946b('0x56')](path[_0x946b('0x57')](config[_0x946b('0x58')],_0x946b('0x62')),'utf8');var _0x1e6a0b=ejs[_0x946b('0x5b')](_0x124009,{'networks':_0xc86308||[]});fs['writeFileSync'](util[_0x946b('0x63')]('/etc/asterisk/sip_xcally_%s.conf',_0x18ce2a[_0x946b('0x54')][_0x946b('0x39')][_0x946b('0x65')]()),_0x1e6a0b);return respondWithRpcPromise(_0x946b('0x5d'),_0x946b('0x67'),{'module':_0x946b('0x69')});}return null;})['then'](function(_0x1462e0){if(_0x1462e0){return _0x31aa80;}return null;});})[_0x946b('0x1c')](respondWithResult(_0x13fcf1,null))[_0x946b('0x27')](handleError(_0x13fcf1,null));};exports['destroy']=function(_0x488dd5,_0x155e50,_0x42e873){var _0x2d59bd;return db[_0x946b('0x4c')]['find']({'where':{'id':_0x488dd5[_0x946b('0x4e')]['id']}})[_0x946b('0x1c')](function(_0x39c0c8){_0x2d59bd=_0x39c0c8;return _0x39c0c8;})[_0x946b('0x1c')](handleEntityNotFound(_0x155e50,null))['then'](removeEntity(_0x155e50,null))[_0x946b('0x1c')](function(){if(_0x2d59bd){return db[_0x946b('0x4c')][_0x946b('0x6a')]({'where':{'type':_0x2d59bd['type']},'raw':!![]});}})[_0x946b('0x1c')](function(_0x5ceea8){if(_0x2d59bd['type'][_0x946b('0x5f')]()=='STUN'){var _0x89238a=fs[_0x946b('0x56')](path[_0x946b('0x57')](config['root'],_0x946b('0x59')),_0x946b('0x5a'));var _0xa06e68=ejs[_0x946b('0x5b')](_0x89238a,{'networks':_0x5ceea8||[]});fs[_0x946b('0x5c')](_0x946b('0x66'),_0xa06e68);return respondWithRpcPromise(_0x946b('0x5d'),_0x946b('0x32'),{'module':_0x946b('0x5e')});}else if(_0x2d59bd[_0x946b('0x39')][_0x946b('0x5f')]()==_0x946b('0x60')){var _0x2cbb54=fs[_0x946b('0x56')](path[_0x946b('0x57')](config[_0x946b('0x58')],'server/files/templates/turn_multiple.ejs'),_0x946b('0x5a'));var _0x4ea8d8=ejs[_0x946b('0x5b')](_0x2cbb54,{'networks':_0x5ceea8||[]});fs[_0x946b('0x5c')](_0x946b('0x61'),_0x4ea8d8);return respondWithRpcPromise(_0x946b('0x5d'),_0x946b('0x32'),{'module':_0x946b('0x5e')});}else{var _0x39adba=fs[_0x946b('0x56')](path[_0x946b('0x57')](config[_0x946b('0x58')],_0x946b('0x62')),_0x946b('0x5a'));var _0x1af8b7=ejs[_0x946b('0x5b')](_0x39adba,{'networks':_0x5ceea8||[]});fs['writeFileSync'](util[_0x946b('0x63')](_0x946b('0x64'),_0x488dd5['body'][_0x946b('0x39')][_0x946b('0x65')]()),_0x1af8b7);return respondWithRpcPromise(_0x946b('0x5d'),_0x946b('0x32'),{'module':_0x946b('0x69')});}return null;})[_0x946b('0x27')](handleError(_0x155e50,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe5b5=['util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./network.attributes','exports','define','Network','network','lodash'];(function(_0xf1d988,_0x341f87){var _0x264fa0=function(_0x37f308){while(--_0x37f308){_0xf1d988['push'](_0xf1d988['shift']());}};_0x264fa0(++_0x341f87);}(_0xe5b5,0x12b));var _0x5e5b=function(_0x962fc5,_0x58f074){_0x962fc5=_0x962fc5-0x0;var _0x43667c=_0xe5b5[_0x962fc5];return _0x43667c;};'use strict';var _=require(_0x5e5b('0x0'));var util=require(_0x5e5b('0x1'));var logger=require(_0x5e5b('0x2'))(_0x5e5b('0x3'));var moment=require(_0x5e5b('0x4'));var BPromise=require(_0x5e5b('0x5'));var rp=require(_0x5e5b('0x6'));var fs=require('fs');var path=require(_0x5e5b('0x7'));var rimraf=require(_0x5e5b('0x8'));var config=require(_0x5e5b('0x9'));var attributes=require(_0x5e5b('0xa'));module[_0x5e5b('0xb')]=function(_0xf1fbe2,_0x11e0e0){return _0xf1fbe2[_0x5e5b('0xc')](_0x5e5b('0xd'),attributes,{'tableName':_0x5e5b('0xe'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x5712=['bluebird','request-promise','path','rimraf','../../config/environment','define','Network','network','lodash','util','../../config/logger','api','moment'];(function(_0x43e319,_0x3e0064){var _0x7f7eef=function(_0x1ee626){while(--_0x1ee626){_0x43e319['push'](_0x43e319['shift']());}};_0x7f7eef(++_0x3e0064);}(_0x5712,0x140));var _0x2571=function(_0x3bf83f,_0x181cac){_0x3bf83f=_0x3bf83f-0x0;var _0x22c4a9=_0x5712[_0x3bf83f];return _0x22c4a9;};'use strict';var _=require(_0x2571('0x0'));var util=require(_0x2571('0x1'));var logger=require(_0x2571('0x2'))(_0x2571('0x3'));var moment=require(_0x2571('0x4'));var BPromise=require(_0x2571('0x5'));var rp=require(_0x2571('0x6'));var fs=require('fs');var path=require(_0x2571('0x7'));var rimraf=require(_0x2571('0x8'));var config=require(_0x2571('0x9'));var attributes=require('./network.attributes');module['exports']=function(_0x4713ad,_0x50fc72){return _0x4713ad[_0x2571('0xa')](_0x2571('0xb'),attributes,{'tableName':_0x2571('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9957=['message','result','catch','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','then','info','Network,\x20%s,\x20%s','request\x20sent','debug','Network,\x20%s,\x20%s,\x20%s','stringify','error','code'];(function(_0x4e9804,_0x19db5e){var _0x422f64=function(_0x6ddea1){while(--_0x6ddea1){_0x4e9804['push'](_0x4e9804['shift']());}};_0x422f64(++_0x19db5e);}(_0x9957,0x93));var _0x7995=function(_0x6c993a,_0x5ea3ab){_0x6c993a=_0x6c993a-0x0;var _0x27f547=_0x9957[_0x6c993a];return _0x27f547;};'use strict';var _=require(_0x7995('0x0'));var util=require(_0x7995('0x1'));var moment=require(_0x7995('0x2'));var BPromise=require(_0x7995('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x7995('0x4'));var db=require(_0x7995('0x5'))['db'];var utils=require(_0x7995('0x6'));var logger=require(_0x7995('0x7'))('rpc');var config=require(_0x7995('0x8'));var jayson=require(_0x7995('0x9'));var client=jayson[_0x7995('0xa')][_0x7995('0xb')]({'port':0x232a});function respondWithRpcPromise(_0xbda126,_0x326741,_0x4996ca){return new BPromise(function(_0x465276,_0x1cad37){return client['request'](_0xbda126,_0x4996ca)[_0x7995('0xc')](function(_0x3116fb){logger[_0x7995('0xd')](_0x7995('0xe'),_0x326741,_0x7995('0xf'));logger[_0x7995('0x10')](_0x7995('0x11'),_0x326741,'request\x20sent',JSON[_0x7995('0x12')](_0x3116fb));if(_0x3116fb[_0x7995('0x13')]){if(_0x3116fb['error'][_0x7995('0x14')]===0x1f4){logger[_0x7995('0x13')](_0x7995('0xe'),_0x326741,_0x3116fb[_0x7995('0x13')][_0x7995('0x15')]);return _0x1cad37(_0x3116fb[_0x7995('0x13')][_0x7995('0x15')]);}logger['error']('Network,\x20%s,\x20%s',_0x326741,_0x3116fb[_0x7995('0x13')][_0x7995('0x15')]);return _0x465276(_0x3116fb[_0x7995('0x13')][_0x7995('0x15')]);}else{logger[_0x7995('0xd')](_0x7995('0xe'),_0x326741,_0x7995('0xf'));_0x465276(_0x3116fb[_0x7995('0x16')]['message']);}})[_0x7995('0x17')](function(_0x565d97){logger[_0x7995('0x13')](_0x7995('0xe'),_0x326741,_0x565d97);_0x1cad37(_0x565d97);});});}
\ No newline at end of file
+var _0x7a54=['info','Network,\x20%s,\x20%s','debug','stringify','error','code','message','request\x20sent','result','catch','lodash','util','moment','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http'];(function(_0x397e5f,_0x454c8f){var _0x5302b8=function(_0x1a29ef){while(--_0x1a29ef){_0x397e5f['push'](_0x397e5f['shift']());}};_0x5302b8(++_0x454c8f);}(_0x7a54,0x106));var _0x47a5=function(_0x58cc9c,_0xb2b829){_0x58cc9c=_0x58cc9c-0x0;var _0xe20f60=_0x7a54[_0x58cc9c];return _0xe20f60;};'use strict';var _=require(_0x47a5('0x0'));var util=require(_0x47a5('0x1'));var moment=require(_0x47a5('0x2'));var BPromise=require('bluebird');var rs=require(_0x47a5('0x3'));var fs=require('fs');var Redis=require(_0x47a5('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x47a5('0x5'));var logger=require(_0x47a5('0x6'))(_0x47a5('0x7'));var config=require(_0x47a5('0x8'));var jayson=require(_0x47a5('0x9'));var client=jayson['client'][_0x47a5('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x59199c,_0x343372,_0x30e405){return new BPromise(function(_0x506eda,_0x194fb0){return client['request'](_0x59199c,_0x30e405)['then'](function(_0x582352){logger[_0x47a5('0xb')](_0x47a5('0xc'),_0x343372,'request\x20sent');logger[_0x47a5('0xd')]('Network,\x20%s,\x20%s,\x20%s',_0x343372,'request\x20sent',JSON[_0x47a5('0xe')](_0x582352));if(_0x582352[_0x47a5('0xf')]){if(_0x582352[_0x47a5('0xf')][_0x47a5('0x10')]===0x1f4){logger[_0x47a5('0xf')](_0x47a5('0xc'),_0x343372,_0x582352[_0x47a5('0xf')]['message']);return _0x194fb0(_0x582352[_0x47a5('0xf')][_0x47a5('0x11')]);}logger[_0x47a5('0xf')](_0x47a5('0xc'),_0x343372,_0x582352[_0x47a5('0xf')][_0x47a5('0x11')]);return _0x506eda(_0x582352[_0x47a5('0xf')][_0x47a5('0x11')]);}else{logger['info'](_0x47a5('0xc'),_0x343372,_0x47a5('0x12'));_0x506eda(_0x582352[_0x47a5('0x13')][_0x47a5('0x11')]);}})[_0x47a5('0x14')](function(_0x574af6){logger['error'](_0x47a5('0xc'),_0x343372,_0x574af6);_0x194fb0(_0x574af6);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3d78=['isAuthenticated','describe','show','/:id/dispositions','getDispositions','/:id/applications','getApplications','/:id/interactions','getInteractions','getAgents','create','post','addDisposition','/:id/canned_answers','addAnswer','/:id/notify','addApplications','/:id/users','/:id/send','put','/:id','update','delete','destroy','removeDispositions','removeAnswers','removeAgents','exports','multer','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./openchannelAccount.controller','get','/describe'];(function(_0x40eea8,_0x552692){var _0x15fb91=function(_0x5ccb32){while(--_0x5ccb32){_0x40eea8['push'](_0x40eea8['shift']());}};_0x15fb91(++_0x552692);}(_0x3d78,0x15c));var _0x83d7=function(_0x120068,_0x10c462){_0x120068=_0x120068-0x0;var _0x16b909=_0x3d78[_0x120068];return _0x16b909;};'use strict';var multer=require(_0x83d7('0x0'));var util=require(_0x83d7('0x1'));var path=require(_0x83d7('0x2'));var timeout=require(_0x83d7('0x3'));var express=require('express');var router=express[_0x83d7('0x4')]();var fs_extra=require(_0x83d7('0x5'));var auth=require(_0x83d7('0x6'));var interaction=require(_0x83d7('0x7'));var config=require(_0x83d7('0x8'));var controller=require(_0x83d7('0x9'));router[_0x83d7('0xa')]('/',auth['isAuthenticated'](),controller['index']);router[_0x83d7('0xa')](_0x83d7('0xb'),auth[_0x83d7('0xc')](),controller[_0x83d7('0xd')]);router['get']('/:id',auth[_0x83d7('0xc')](),controller[_0x83d7('0xe')]);router['get'](_0x83d7('0xf'),auth[_0x83d7('0xc')](),controller[_0x83d7('0x10')]);router[_0x83d7('0xa')]('/:id/canned_answers',auth['isAuthenticated'](),controller['getAnswers']);router[_0x83d7('0xa')](_0x83d7('0x11'),auth[_0x83d7('0xc')](),controller[_0x83d7('0x12')]);router['get'](_0x83d7('0x13'),auth['isAuthenticated'](),controller[_0x83d7('0x14')]);router[_0x83d7('0xa')]('/:id/users',auth[_0x83d7('0xc')](),controller[_0x83d7('0x15')]);router['post']('/',auth[_0x83d7('0xc')](),controller[_0x83d7('0x16')]);router[_0x83d7('0x17')]('/:id/dispositions',auth['isAuthenticated'](),controller[_0x83d7('0x18')]);router[_0x83d7('0x17')](_0x83d7('0x19'),auth[_0x83d7('0xc')](),controller[_0x83d7('0x1a')]);router[_0x83d7('0x17')](_0x83d7('0x1b'),controller['notify']);router['post'](_0x83d7('0x11'),auth[_0x83d7('0xc')](),controller[_0x83d7('0x1c')]);router[_0x83d7('0x17')](_0x83d7('0x1d'),auth[_0x83d7('0xc')](),controller['addAgents']);router[_0x83d7('0x17')](_0x83d7('0x1e'),auth[_0x83d7('0xc')](),controller['send']);router[_0x83d7('0x1f')](_0x83d7('0x20'),auth[_0x83d7('0xc')](),controller[_0x83d7('0x21')]);router[_0x83d7('0x22')](_0x83d7('0x20'),auth[_0x83d7('0xc')](),controller[_0x83d7('0x23')]);router[_0x83d7('0x22')](_0x83d7('0xf'),auth['isAuthenticated'](),controller[_0x83d7('0x24')]);router[_0x83d7('0x22')](_0x83d7('0x19'),auth[_0x83d7('0xc')](),controller[_0x83d7('0x25')]);router[_0x83d7('0x22')]('/:id/users',auth[_0x83d7('0xc')](),controller[_0x83d7('0x26')]);module[_0x83d7('0x27')]=router;
\ No newline at end of file
+var _0x9753=['/:id/dispositions','getDispositions','/:id/canned_answers','getAnswers','/:id/applications','getApplications','getInteractions','/:id/users','post','create','addDisposition','/:id/notify','notify','addApplications','addAgents','/:id/send','send','put','update','delete','destroy','removeDispositions','removeAgents','exports','multer','path','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./openchannelAccount.controller','isAuthenticated','index','/:id','show','get'];(function(_0x1aba3d,_0x6fa682){var _0x151792=function(_0x34204e){while(--_0x34204e){_0x1aba3d['push'](_0x1aba3d['shift']());}};_0x151792(++_0x6fa682);}(_0x9753,0x1af));var _0x3975=function(_0x50c754,_0x44c558){_0x50c754=_0x50c754-0x0;var _0x4fc8b4=_0x9753[_0x50c754];return _0x4fc8b4;};'use strict';var multer=require(_0x3975('0x0'));var util=require('util');var path=require(_0x3975('0x1'));var timeout=require('connect-timeout');var express=require(_0x3975('0x2'));var router=express[_0x3975('0x3')]();var fs_extra=require(_0x3975('0x4'));var auth=require(_0x3975('0x5'));var interaction=require(_0x3975('0x6'));var config=require('../../config/environment');var controller=require(_0x3975('0x7'));router['get']('/',auth[_0x3975('0x8')](),controller[_0x3975('0x9')]);router['get']('/describe',auth[_0x3975('0x8')](),controller['describe']);router['get'](_0x3975('0xa'),auth['isAuthenticated'](),controller[_0x3975('0xb')]);router[_0x3975('0xc')](_0x3975('0xd'),auth[_0x3975('0x8')](),controller[_0x3975('0xe')]);router[_0x3975('0xc')](_0x3975('0xf'),auth[_0x3975('0x8')](),controller[_0x3975('0x10')]);router['get'](_0x3975('0x11'),auth[_0x3975('0x8')](),controller[_0x3975('0x12')]);router['get']('/:id/interactions',auth[_0x3975('0x8')](),controller[_0x3975('0x13')]);router[_0x3975('0xc')](_0x3975('0x14'),auth[_0x3975('0x8')](),controller['getAgents']);router[_0x3975('0x15')]('/',auth[_0x3975('0x8')](),controller[_0x3975('0x16')]);router[_0x3975('0x15')](_0x3975('0xd'),auth['isAuthenticated'](),controller[_0x3975('0x17')]);router[_0x3975('0x15')]('/:id/canned_answers',auth[_0x3975('0x8')](),controller['addAnswer']);router[_0x3975('0x15')](_0x3975('0x18'),controller[_0x3975('0x19')]);router[_0x3975('0x15')]('/:id/applications',auth[_0x3975('0x8')](),controller[_0x3975('0x1a')]);router[_0x3975('0x15')]('/:id/users',auth['isAuthenticated'](),controller[_0x3975('0x1b')]);router[_0x3975('0x15')](_0x3975('0x1c'),auth[_0x3975('0x8')](),controller[_0x3975('0x1d')]);router[_0x3975('0x1e')]('/:id',auth[_0x3975('0x8')](),controller[_0x3975('0x1f')]);router[_0x3975('0x20')]('/:id',auth[_0x3975('0x8')](),controller[_0x3975('0x21')]);router[_0x3975('0x20')](_0x3975('0xd'),auth['isAuthenticated'](),controller[_0x3975('0x22')]);router['delete'](_0x3975('0xf'),auth[_0x3975('0x8')](),controller['removeAnswers']);router['delete'](_0x3975('0x14'),auth[_0x3975('0x8')](),controller[_0x3975('0x23')]);module[_0x3975('0x24')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8825=['TEXT','BOOLEAN','INTEGER','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','setDataValue','mandatoryDispositionPauseId','sequelize','randomstring','STRING','name','generate'];(function(_0x28edda,_0xbd447a){var _0x21f4a4=function(_0x5ae05e){while(--_0x5ae05e){_0x28edda['push'](_0x28edda['shift']());}};_0x21f4a4(++_0xbd447a);}(_0x8825,0x192));var _0x5882=function(_0x3f3f0a,_0x509833){_0x3f3f0a=_0x3f3f0a-0x0;var _0x35cc60=_0x8825[_0x3f3f0a];return _0x35cc60;};'use strict';var Sequelize=require(_0x5882('0x0'));var rs=require(_0x5882('0x1'));module['exports']={'name':{'type':Sequelize[_0x5882('0x2')],'unique':_0x5882('0x3'),'allowNull':![]},'description':{'type':Sequelize[_0x5882('0x2')]},'token':{'type':Sequelize[_0x5882('0x2')],'defaultValue':function(){return rs[_0x5882('0x4')]();}},'replyUri':{'type':Sequelize[_0x5882('0x2')],'validate':{'isUrl':!![]}},'key':{'type':Sequelize[_0x5882('0x2')],'allowNull':![]},'notificationTemplate':{'type':Sequelize[_0x5882('0x5')],'defaultValue':function(){return'Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}';}},'notificationSound':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'notificationShake':{'type':Sequelize[_0x5882('0x6')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'mapKey':{'type':Sequelize[_0x5882('0x2')]},'queueTransfer':{'type':Sequelize[_0x5882('0x6')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0x5882('0x6')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0x5882('0x7')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'mandatoryDispositionPauseId':{'type':Sequelize['INTEGER'],'allowNull':!![],'defaultValue':null,'comment':'Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled'},'mandatoryDisposition':{'type':Sequelize[_0x5882('0x6')],'defaultValue':![],'comment':_0x5882('0x8'),'set':function(_0x2c9222){if(!_0x2c9222)this[_0x5882('0x9')](_0x5882('0xa'),null);this['setDataValue']('mandatoryDisposition',_0x2c9222);}}};
\ No newline at end of file
+var _0x46ee=['randomstring','exports','STRING','name','TEXT','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}','BOOLEAN','INTEGER','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','setDataValue','mandatoryDispositionPauseId','sequelize'];(function(_0x2c5456,_0x4c4f03){var _0x3d522f=function(_0x4e9f76){while(--_0x4e9f76){_0x2c5456['push'](_0x2c5456['shift']());}};_0x3d522f(++_0x4c4f03);}(_0x46ee,0x1e0));var _0xe46e=function(_0x29617b,_0x25af43){_0x29617b=_0x29617b-0x0;var _0x45577c=_0x46ee[_0x29617b];return _0x45577c;};'use strict';var Sequelize=require(_0xe46e('0x0'));var rs=require(_0xe46e('0x1'));module[_0xe46e('0x2')]={'name':{'type':Sequelize[_0xe46e('0x3')],'unique':_0xe46e('0x4'),'allowNull':![]},'description':{'type':Sequelize[_0xe46e('0x3')]},'token':{'type':Sequelize[_0xe46e('0x3')],'defaultValue':function(){return rs['generate']();}},'replyUri':{'type':Sequelize[_0xe46e('0x3')],'validate':{'isUrl':!![]}},'key':{'type':Sequelize[_0xe46e('0x3')],'allowNull':![]},'notificationTemplate':{'type':Sequelize[_0xe46e('0x5')],'defaultValue':function(){return _0xe46e('0x6');}},'notificationSound':{'type':Sequelize[_0xe46e('0x7')],'defaultValue':!![]},'notificationShake':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize[_0xe46e('0x8')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'mapKey':{'type':Sequelize[_0xe46e('0x3')]},'queueTransfer':{'type':Sequelize[_0xe46e('0x7')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0xe46e('0x8')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0xe46e('0x7')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'mandatoryDispositionPauseId':{'type':Sequelize[_0xe46e('0x8')],'allowNull':!![],'defaultValue':null,'comment':_0xe46e('0x9')},'mandatoryDisposition':{'type':Sequelize[_0xe46e('0x7')],'defaultValue':![],'comment':_0xe46e('0xa'),'set':function(_0x305c58){if(!_0x305c58)this[_0xe46e('0xb')](_0xe46e('0xc'),null);this[_0xe46e('0xb')]('mandatoryDisposition',_0x305c58);}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x44ee=['jayson/promise','client','http','request','then','info','OpenchannelAccount,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','catch','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','reject','save','destroy','get','OpenchannelAccounts','UserProfileResource','stack','name','index','Pause','mandatoryDispositionPause','map','OpenchannelAccount','rawAttributes','type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','order','sort','pick','filter','where','merge','VIRTUAL','options','include','params','create','body','role','user','UserProfileSection','find','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','describe','addDisposition','OpenchannelAccountId','Disposition','getDispositions','nolimit','includeAll','rows','removeDispositions','addAnswer','CannedAnswer','getAnswers','findOne','findAll','removeAnswers','ids','notify','openchannel','Sequelize','ValidationError','no\x20available\x20attributes','difference','createdAt','CompanyId','ListId','from','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','isNil','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','CmList','Contacts','updatedAt','OpenchannelApplication','Applications','List','applications','list','orderBy','asc','account','defaults','CmContact','firstName','lastName','threadId','externalUrl','OpenchannelInteraction','ContactId','spread','contact','messageId','interaction','created','autoclose','push','close','unmanaged','*,*,*,*','OpenchannelMessage','AttachmentId','UserId','User','forcedOwnership','startRouting','EventManager','addApplications','sequelize','transaction','Transaction','bulkCreate','findAndCountAll','priority','getApplications','getInteractions','Contact','fullname','internal','Tag','Tags','tag','addAgents','omit','emit','userOpenchannelAccount:save','removeAgents','isArray','userOpenchannelAccount:remove','getAgents','send','DESC','Messages','dataValues','eml-format','rimraf','request-promise','moment','bluebird','mustache','path','sox','to-csv','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./openchannelAccount.socket','register'];(function(_0x2e0582,_0xad2ac3){var _0x1306f3=function(_0x3fb64b){while(--_0x3fb64b){_0x2e0582['push'](_0x2e0582['shift']());}};_0x1306f3(++_0xad2ac3);}(_0x44ee,0xa6));var _0xe44e=function(_0x355eb5,_0x68ec40){_0x355eb5=_0x355eb5-0x0;var _0x53b89d=_0x44ee[_0x355eb5];return _0x53b89d;};'use strict';var emlformat=require(_0xe44e('0x0'));var rimraf=require(_0xe44e('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xe44e('0x2'));var moment=require(_0xe44e('0x3'));var BPromise=require(_0xe44e('0x4'));var Mustache=require(_0xe44e('0x5'));var util=require('util');var path=require(_0xe44e('0x6'));var sox=require(_0xe44e('0x7'));var csv=require(_0xe44e('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xe44e('0x9'));var _=require('lodash');var squel=require(_0xe44e('0xa'));var crypto=require(_0xe44e('0xb'));var jsforce=require(_0xe44e('0xc'));var deskjs=require(_0xe44e('0xd'));var toCsv=require(_0xe44e('0x8'));var querystring=require(_0xe44e('0xe'));var Papa=require(_0xe44e('0xf'));var Redis=require(_0xe44e('0x10'));var authService=require(_0xe44e('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0xe44e('0x12'));var hardwareService=require(_0xe44e('0x13'));var logger=require('../../config/logger')(_0xe44e('0x14'));var utils=require(_0xe44e('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0xe44e('0x16'));var db=require(_0xe44e('0x17'))['db'];config[_0xe44e('0x18')]=_['defaults'](config['redis'],{'host':_0xe44e('0x19'),'port':0x18eb});var socket=require(_0xe44e('0x1a'))(new Redis(config[_0xe44e('0x18')]));require(_0xe44e('0x1b'))[_0xe44e('0x1c')](socket);var jayson=require(_0xe44e('0x1d'));var client=jayson[_0xe44e('0x1e')][_0xe44e('0x1f')]({'port':0x232c});var client9002=jayson[_0xe44e('0x1e')][_0xe44e('0x1f')]({'port':0x232a});function respondWithRpcPromise(_0x25ddd1,_0x44cf64,_0x4efce7,_0x355b22){return new BPromise(function(_0x2bf87b,_0x24a097){var _0x33e520=_0x355b22||client;return _0x33e520[_0xe44e('0x20')](_0x25ddd1,_0x4efce7)[_0xe44e('0x21')](function(_0x50f97e){logger[_0xe44e('0x22')](_0xe44e('0x23'),_0x44cf64,_0xe44e('0x24'));logger[_0xe44e('0x25')]('OpenchannelAccount,\x20%s,\x20%s,\x20%s',_0x44cf64,_0xe44e('0x24'),JSON[_0xe44e('0x26')](_0x50f97e));if(_0x50f97e[_0xe44e('0x27')]){if(_0x50f97e[_0xe44e('0x27')][_0xe44e('0x28')]===0x1f4){logger[_0xe44e('0x27')](_0xe44e('0x23'),_0x44cf64,_0x50f97e[_0xe44e('0x27')][_0xe44e('0x29')]);return _0x24a097(_0x50f97e[_0xe44e('0x27')][_0xe44e('0x29')]);}logger['error'](_0xe44e('0x23'),_0x44cf64,_0x50f97e[_0xe44e('0x27')][_0xe44e('0x29')]);return _0x2bf87b(_0x50f97e[_0xe44e('0x27')]['message']);}else{logger[_0xe44e('0x22')](_0xe44e('0x23'),_0x44cf64,_0xe44e('0x24'));_0x2bf87b(_0x50f97e['result'][_0xe44e('0x29')]);}})[_0xe44e('0x2a')](function(_0x27b43b){logger['error'](_0xe44e('0x23'),_0x44cf64,_0x27b43b);_0x24a097(_0x27b43b);});});}function respondWithStatusCode(_0x12aec3,_0x3ebc54){_0x3ebc54=_0x3ebc54||0xcc;return function(_0x5d6751){if(_0x5d6751){return _0x12aec3[_0xe44e('0x2b')](_0x3ebc54);}return _0x12aec3[_0xe44e('0x2c')](_0x3ebc54)[_0xe44e('0x2d')]();};}function respondWithResult(_0x2865f6,_0x485044){_0x485044=_0x485044||0xc8;return function(_0x3c0a9){if(_0x3c0a9){return _0x2865f6[_0xe44e('0x2c')](_0x485044)[_0xe44e('0x2e')](_0x3c0a9);}};}function respondWithFilteredResult(_0x4411ea,_0xdc99d8){return function(_0x29e316){if(_0x29e316){var _0x1abb5f=typeof _0xdc99d8['offset']===_0xe44e('0x2f')&&typeof _0xdc99d8[_0xe44e('0x30')]==='undefined';var _0x1d530e=_0x29e316[_0xe44e('0x31')];var _0x40aa32=_0x1abb5f?0x0:_0xdc99d8[_0xe44e('0x32')];var _0x8d91fc=_0x1abb5f?_0x29e316[_0xe44e('0x31')]:_0xdc99d8['offset']+_0xdc99d8[_0xe44e('0x30')];var _0x5cd2d9;if(_0x8d91fc>=_0x1d530e){_0x8d91fc=_0x1d530e;_0x5cd2d9=0xc8;}else{_0x5cd2d9=0xce;}_0x4411ea[_0xe44e('0x2c')](_0x5cd2d9);return _0x4411ea[_0xe44e('0x33')](_0xe44e('0x34'),_0x40aa32+'-'+_0x8d91fc+'/'+_0x1d530e)[_0xe44e('0x2e')](_0x29e316);}return null;};}function patchUpdates(_0x41e646){return function(_0x2cc769){try{jsonpatch[_0xe44e('0x35')](_0x2cc769,_0x41e646,!![]);}catch(_0x33ae3c){return BPromise[_0xe44e('0x36')](_0x33ae3c);}return _0x2cc769[_0xe44e('0x37')]();};}function saveUpdates(_0x400406,_0x3f5a3c){return function(_0x3998a8){if(_0x3998a8){return _0x3998a8['update'](_0x400406)[_0xe44e('0x21')](function(_0xc8b99b){return _0xc8b99b;});}return null;};}function removeEntity(_0x16ce06,_0x71a073){return function(_0x5862c6){if(_0x5862c6){return _0x5862c6[_0xe44e('0x38')]()[_0xe44e('0x21')](function(){var _0x299666=_0x5862c6[_0xe44e('0x39')]({'plain':!![]});var _0x31a905=_0xe44e('0x3a');return db[_0xe44e('0x3b')]['destroy']({'where':{'type':_0x31a905,'resourceId':_0x299666['id']}})[_0xe44e('0x21')](function(){return _0x5862c6;});})[_0xe44e('0x21')](function(){_0x16ce06['status'](0xcc)[_0xe44e('0x2d')]();});}};}function handleEntityNotFound(_0x324baf,_0x377db5){return function(_0x57ef7a){if(!_0x57ef7a){_0x324baf['sendStatus'](0x194);}return _0x57ef7a;};}function handleError(_0x455ea5,_0x347ca7){_0x347ca7=_0x347ca7||0x1f4;return function(_0x48a82a){logger[_0xe44e('0x27')](_0x48a82a[_0xe44e('0x3c')]);if(_0x48a82a[_0xe44e('0x3d')]){delete _0x48a82a[_0xe44e('0x3d')];}_0x455ea5[_0xe44e('0x2c')](_0x347ca7)['send'](_0x48a82a);};}exports[_0xe44e('0x3e')]=function(_0x33a1e5,_0x96cba6){var _0x2b474d={'include':[{'model':db[_0xe44e('0x3f')],'as':_0xe44e('0x40')}]},_0x47e85f={},_0x5c5dca={'count':0x0,'rows':[]};var _0xdb1e18=_[_0xe44e('0x41')](db[_0xe44e('0x42')][_0xe44e('0x43')],function(_0xb107b2){return{'name':_0xb107b2['fieldName'],'type':_0xb107b2[_0xe44e('0x44')][_0xe44e('0x45')]};});_0x47e85f[_0xe44e('0x46')]=_[_0xe44e('0x41')](_0xdb1e18,_0xe44e('0x3d'));_0x47e85f[_0xe44e('0x47')]=_[_0xe44e('0x48')](_0x33a1e5['query']);_0x47e85f[_0xe44e('0x49')]=_['intersection'](_0x47e85f[_0xe44e('0x46')],_0x47e85f[_0xe44e('0x47')]);_0x2b474d['attributes']=_[_0xe44e('0x4a')](_0x47e85f[_0xe44e('0x46')],qs[_0xe44e('0x4b')](_0x33a1e5['query']['fields']));_0x2b474d['attributes']=_0x2b474d[_0xe44e('0x4c')][_0xe44e('0x4d')]?_0x2b474d[_0xe44e('0x4c')]:_0x47e85f[_0xe44e('0x46')];if(!_0x33a1e5['query'][_0xe44e('0x4e')]('nolimit')){_0x2b474d[_0xe44e('0x30')]=qs[_0xe44e('0x30')](_0x33a1e5['query']['limit']);_0x2b474d[_0xe44e('0x32')]=qs['offset'](_0x33a1e5['query'][_0xe44e('0x32')]);}_0x2b474d[_0xe44e('0x4f')]=qs[_0xe44e('0x50')](_0x33a1e5[_0xe44e('0x47')][_0xe44e('0x50')]);_0x2b474d['where']=qs[_0xe44e('0x49')](_[_0xe44e('0x51')](_0x33a1e5[_0xe44e('0x47')],_0x47e85f[_0xe44e('0x49')]),_0xdb1e18);if(_0x33a1e5[_0xe44e('0x47')][_0xe44e('0x52')]){_0x2b474d[_0xe44e('0x53')]=_[_0xe44e('0x54')](_0x2b474d[_0xe44e('0x53')],{'$or':_[_0xe44e('0x41')](_0xdb1e18,function(_0x5a91ed){if(_0x5a91ed[_0xe44e('0x44')]!==_0xe44e('0x55')){var _0x286a49={};_0x286a49[_0x5a91ed['name']]={'$like':'%'+_0x33a1e5[_0xe44e('0x47')]['filter']+'%'};return _0x286a49;}})});}_0x2b474d=_[_0xe44e('0x54')]({},_0x2b474d,_0x33a1e5[_0xe44e('0x56')]);var _0x1dba41={'where':_0x2b474d[_0xe44e('0x53')]};return db[_0xe44e('0x42')][_0xe44e('0x31')](_0x1dba41)[_0xe44e('0x21')](function(_0x16ec9a){_0x5c5dca['count']=_0x16ec9a;if(_0x33a1e5[_0xe44e('0x47')]['includeAll']){_0x2b474d[_0xe44e('0x57')]=[{'all':!![]}];}return db[_0xe44e('0x42')]['findAll'](_0x2b474d);})['then'](function(_0x566936){_0x5c5dca['rows']=_0x566936;return _0x5c5dca;})[_0xe44e('0x21')](respondWithFilteredResult(_0x96cba6,_0x2b474d))[_0xe44e('0x2a')](handleError(_0x96cba6,null));};exports['show']=function(_0x30a6e7,_0x8f5afc){var _0x155f11={'raw':![],'where':{'id':_0x30a6e7[_0xe44e('0x58')]['id']},'include':[{'model':db[_0xe44e('0x3f')],'as':_0xe44e('0x40')}]},_0x43a200={};_0x43a200['model']=_['keys'](db[_0xe44e('0x42')][_0xe44e('0x43')]);_0x43a200[_0xe44e('0x47')]=_['keys'](_0x30a6e7[_0xe44e('0x47')]);_0x43a200[_0xe44e('0x49')]=_[_0xe44e('0x4a')](_0x43a200[_0xe44e('0x46')],_0x43a200[_0xe44e('0x47')]);_0x155f11[_0xe44e('0x4c')]=_['intersection'](_0x43a200['model'],qs[_0xe44e('0x4b')](_0x30a6e7[_0xe44e('0x47')][_0xe44e('0x4b')]));_0x155f11[_0xe44e('0x4c')]=_0x155f11['attributes']['length']?_0x155f11[_0xe44e('0x4c')]:_0x43a200[_0xe44e('0x46')];if(_0x30a6e7[_0xe44e('0x47')]['includeAll']){_0x155f11[_0xe44e('0x57')]=[{'all':!![]}];}_0x155f11=_[_0xe44e('0x54')]({},_0x155f11,_0x30a6e7['options']);return db[_0xe44e('0x42')]['find'](_0x155f11)[_0xe44e('0x21')](handleEntityNotFound(_0x8f5afc,null))['then'](respondWithResult(_0x8f5afc,null))['catch'](handleError(_0x8f5afc,null));};exports[_0xe44e('0x59')]=function(_0x52d23c,_0x41d2a9){return db[_0xe44e('0x42')][_0xe44e('0x59')](_0x52d23c[_0xe44e('0x5a')],{})[_0xe44e('0x21')](function(_0xe4e4b9){var _0x2dd298=_0x52d23c['user'][_0xe44e('0x39')]({'plain':!![]});if(!_0x2dd298)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x2dd298[_0xe44e('0x5b')]===_0xe44e('0x5c')){var _0xf4b596=_0xe4e4b9[_0xe44e('0x39')]({'plain':!![]});var _0x368fa4=_0xe44e('0x3a');return db[_0xe44e('0x5d')][_0xe44e('0x5e')]({'where':{'name':_0x368fa4,'userProfileId':_0x2dd298[_0xe44e('0x5f')]},'raw':!![]})[_0xe44e('0x21')](function(_0x3193c4){if(_0x3193c4&&_0x3193c4[_0xe44e('0x60')]===0x0){return db[_0xe44e('0x3b')]['create']({'name':_0xf4b596[_0xe44e('0x3d')],'resourceId':_0xf4b596['id'],'type':_0x3193c4[_0xe44e('0x3d')],'sectionId':_0x3193c4['id']},{})[_0xe44e('0x21')](function(){return _0xe4e4b9;});}else{return _0xe4e4b9;}})[_0xe44e('0x2a')](function(_0x641458){logger['error'](_0xe44e('0x61'),_0x641458);throw _0x641458;});}return _0xe4e4b9;})[_0xe44e('0x21')](respondWithResult(_0x41d2a9,0xc9))[_0xe44e('0x2a')](handleError(_0x41d2a9,null));};exports[_0xe44e('0x62')]=function(_0x4b05a8,_0x27b047){if(_0x4b05a8[_0xe44e('0x5a')]['id']){delete _0x4b05a8[_0xe44e('0x5a')]['id'];}return db[_0xe44e('0x42')]['find']({'where':{'id':_0x4b05a8[_0xe44e('0x58')]['id']},'include':[{'model':db[_0xe44e('0x3f')],'as':'mandatoryDispositionPause'}]})['then'](handleEntityNotFound(_0x27b047,null))[_0xe44e('0x21')](saveUpdates(_0x4b05a8[_0xe44e('0x5a')],null))[_0xe44e('0x21')](respondWithResult(_0x27b047,null))['catch'](handleError(_0x27b047,null));};exports[_0xe44e('0x38')]=function(_0x14b3a9,_0x1af674){return db[_0xe44e('0x42')]['find']({'where':{'id':_0x14b3a9[_0xe44e('0x58')]['id']}})[_0xe44e('0x21')](handleEntityNotFound(_0x1af674,null))[_0xe44e('0x21')](removeEntity(_0x1af674,null))[_0xe44e('0x2a')](handleError(_0x1af674,null));};exports[_0xe44e('0x63')]=function(_0x226545,_0x24329c){return db[_0xe44e('0x42')][_0xe44e('0x63')]()[_0xe44e('0x21')](respondWithResult(_0x24329c,null))['catch'](handleError(_0x24329c,null));};exports[_0xe44e('0x64')]=function(_0x385120,_0x2b5237,_0x5b9303){if(_0x385120[_0xe44e('0x5a')]['id']){delete _0x385120[_0xe44e('0x5a')]['id'];}return db[_0xe44e('0x42')][_0xe44e('0x5e')]({'where':{'id':_0x385120['params']['id']}})[_0xe44e('0x21')](handleEntityNotFound(_0x2b5237,null))[_0xe44e('0x21')](function(_0x1d12ba){if(_0x1d12ba){_0x385120['body'][_0xe44e('0x65')]=_0x1d12ba['id'];return db[_0xe44e('0x66')]['create'](_0x385120['body']);}})[_0xe44e('0x21')](respondWithResult(_0x2b5237,null))[_0xe44e('0x2a')](handleError(_0x2b5237,null));};exports[_0xe44e('0x67')]=function(_0x4a0e88,_0x35f041,_0x55396e){var _0x15b259={'raw':![],'where':{}};var _0x526cc7={};var _0x4ca7ef={'count':0x0,'rows':[]};return db['OpenchannelAccount']['findOne']({'where':{'id':_0x4a0e88['params']['id']}})[_0xe44e('0x21')](handleEntityNotFound(_0x35f041,null))[_0xe44e('0x21')](function(_0x4479e5){if(_0x4479e5){_0x526cc7[_0xe44e('0x46')]=_[_0xe44e('0x48')](db[_0xe44e('0x66')][_0xe44e('0x43')]);_0x526cc7[_0xe44e('0x47')]=_[_0xe44e('0x48')](_0x4a0e88[_0xe44e('0x47')]);_0x526cc7[_0xe44e('0x49')]=_['intersection'](_0x526cc7[_0xe44e('0x46')],_0x526cc7['query']);_0x15b259[_0xe44e('0x4c')]=_[_0xe44e('0x4a')](_0x526cc7['model'],qs[_0xe44e('0x4b')](_0x4a0e88[_0xe44e('0x47')][_0xe44e('0x4b')]));_0x15b259['attributes']=_0x15b259[_0xe44e('0x4c')][_0xe44e('0x4d')]?_0x15b259[_0xe44e('0x4c')]:_0x526cc7[_0xe44e('0x46')];if(!_0x4a0e88[_0xe44e('0x47')][_0xe44e('0x4e')](_0xe44e('0x68'))){_0x15b259[_0xe44e('0x30')]=qs[_0xe44e('0x30')](_0x4a0e88[_0xe44e('0x47')][_0xe44e('0x30')]);_0x15b259[_0xe44e('0x32')]=qs[_0xe44e('0x32')](_0x4a0e88[_0xe44e('0x47')]['offset']);}_0x15b259[_0xe44e('0x4f')]=qs[_0xe44e('0x50')](_0x4a0e88['query'][_0xe44e('0x50')]);_0x15b259[_0xe44e('0x53')]=qs[_0xe44e('0x49')](_[_0xe44e('0x51')](_0x4a0e88[_0xe44e('0x47')],_0x526cc7[_0xe44e('0x49')]));_0x15b259[_0xe44e('0x53')][_0xe44e('0x65')]=_0x4479e5['id'];if(_0x4a0e88[_0xe44e('0x47')]['filter']){_0x15b259[_0xe44e('0x53')]=_[_0xe44e('0x54')](_0x15b259[_0xe44e('0x53')],{'$or':_[_0xe44e('0x41')](_0x15b259[_0xe44e('0x4c')],function(_0x1efd91){var _0x580099={};_0x580099[_0x1efd91]={'$like':'%'+_0x4a0e88[_0xe44e('0x47')][_0xe44e('0x52')]+'%'};return _0x580099;})});}_0x15b259=_[_0xe44e('0x54')]({},_0x15b259,_0x4a0e88[_0xe44e('0x56')]);return db[_0xe44e('0x66')]['count']({'where':_0x15b259[_0xe44e('0x53')]})[_0xe44e('0x21')](function(_0x46af3b){_0x4ca7ef['count']=_0x46af3b;if(_0x4a0e88[_0xe44e('0x47')][_0xe44e('0x69')]){_0x15b259[_0xe44e('0x57')]=[{'all':!![]}];}return db['Disposition']['findAll'](_0x15b259);})[_0xe44e('0x21')](function(_0x6f62fd){_0x4ca7ef[_0xe44e('0x6a')]=_0x6f62fd;return _0x4ca7ef;});}})['then'](respondWithFilteredResult(_0x35f041,_0x15b259))[_0xe44e('0x2a')](handleError(_0x35f041,null));};exports[_0xe44e('0x6b')]=function(_0x26fe17,_0x56590b,_0xa77d40){return db[_0xe44e('0x42')][_0xe44e('0x5e')]({'where':{'id':_0x26fe17['params']['id']}})['then'](handleEntityNotFound(_0x56590b,null))['then'](function(_0x52fcec){if(_0x52fcec){return _0x52fcec['removeDispositions'](_0x26fe17[_0xe44e('0x47')]['ids']);}})[_0xe44e('0x21')](respondWithStatusCode(_0x56590b,null))['catch'](handleError(_0x56590b,null));};exports[_0xe44e('0x6c')]=function(_0x1019d9,_0x24c63b,_0x5a70c7){if(_0x1019d9['body']['id']){delete _0x1019d9[_0xe44e('0x5a')]['id'];}return db[_0xe44e('0x42')][_0xe44e('0x5e')]({'where':{'id':_0x1019d9[_0xe44e('0x58')]['id']}})[_0xe44e('0x21')](handleEntityNotFound(_0x24c63b,null))[_0xe44e('0x21')](function(_0x3cbc59){if(_0x3cbc59){_0x1019d9[_0xe44e('0x5a')][_0xe44e('0x65')]=_0x3cbc59['id'];return db[_0xe44e('0x6d')][_0xe44e('0x59')](_0x1019d9[_0xe44e('0x5a')]);}})[_0xe44e('0x21')](respondWithResult(_0x24c63b,null))['catch'](handleError(_0x24c63b,null));};exports[_0xe44e('0x6e')]=function(_0x4404c0,_0x3864e0,_0x26827b){var _0x4cc1bd={'raw':![],'where':{}};var _0x31cedc={};var _0x6279ba={'count':0x0,'rows':[]};return db[_0xe44e('0x42')][_0xe44e('0x6f')]({'where':{'id':_0x4404c0[_0xe44e('0x58')]['id']}})[_0xe44e('0x21')](handleEntityNotFound(_0x3864e0,null))[_0xe44e('0x21')](function(_0x50c189){if(_0x50c189){_0x31cedc[_0xe44e('0x46')]=_[_0xe44e('0x48')](db[_0xe44e('0x6d')][_0xe44e('0x43')]);_0x31cedc[_0xe44e('0x47')]=_[_0xe44e('0x48')](_0x4404c0[_0xe44e('0x47')]);_0x31cedc['filters']=_[_0xe44e('0x4a')](_0x31cedc[_0xe44e('0x46')],_0x31cedc[_0xe44e('0x47')]);_0x4cc1bd[_0xe44e('0x4c')]=_['intersection'](_0x31cedc[_0xe44e('0x46')],qs[_0xe44e('0x4b')](_0x4404c0[_0xe44e('0x47')][_0xe44e('0x4b')]));_0x4cc1bd[_0xe44e('0x4c')]=_0x4cc1bd[_0xe44e('0x4c')][_0xe44e('0x4d')]?_0x4cc1bd[_0xe44e('0x4c')]:_0x31cedc[_0xe44e('0x46')];if(!_0x4404c0[_0xe44e('0x47')][_0xe44e('0x4e')](_0xe44e('0x68'))){_0x4cc1bd[_0xe44e('0x30')]=qs[_0xe44e('0x30')](_0x4404c0[_0xe44e('0x47')][_0xe44e('0x30')]);_0x4cc1bd[_0xe44e('0x32')]=qs['offset'](_0x4404c0[_0xe44e('0x47')][_0xe44e('0x32')]);}_0x4cc1bd[_0xe44e('0x4f')]=qs[_0xe44e('0x50')](_0x4404c0[_0xe44e('0x47')][_0xe44e('0x50')]);_0x4cc1bd[_0xe44e('0x53')]=qs['filters'](_[_0xe44e('0x51')](_0x4404c0[_0xe44e('0x47')],_0x31cedc[_0xe44e('0x49')]));_0x4cc1bd[_0xe44e('0x53')][_0xe44e('0x65')]=_0x50c189['id'];if(_0x4404c0[_0xe44e('0x47')][_0xe44e('0x52')]){_0x4cc1bd[_0xe44e('0x53')]=_[_0xe44e('0x54')](_0x4cc1bd[_0xe44e('0x53')],{'$or':_[_0xe44e('0x41')](_0x4cc1bd[_0xe44e('0x4c')],function(_0x44d947){var _0x31d7f8={};_0x31d7f8[_0x44d947]={'$like':'%'+_0x4404c0[_0xe44e('0x47')]['filter']+'%'};return _0x31d7f8;})});}_0x4cc1bd=_[_0xe44e('0x54')]({},_0x4cc1bd,_0x4404c0[_0xe44e('0x56')]);return db['CannedAnswer']['count']({'where':_0x4cc1bd[_0xe44e('0x53')]})['then'](function(_0x374b6b){_0x6279ba['count']=_0x374b6b;if(_0x4404c0['query']['includeAll']){_0x4cc1bd[_0xe44e('0x57')]=[{'all':!![]}];}return db[_0xe44e('0x6d')][_0xe44e('0x70')](_0x4cc1bd);})['then'](function(_0x1897c7){_0x6279ba['rows']=_0x1897c7;return _0x6279ba;});}})[_0xe44e('0x21')](respondWithFilteredResult(_0x3864e0,_0x4cc1bd))[_0xe44e('0x2a')](handleError(_0x3864e0,null));};exports[_0xe44e('0x71')]=function(_0x3f59a0,_0x18b626,_0x55ebe7){return db[_0xe44e('0x42')]['find']({'where':{'id':_0x3f59a0[_0xe44e('0x58')]['id']}})[_0xe44e('0x21')](handleEntityNotFound(_0x18b626,null))[_0xe44e('0x21')](function(_0x26903a){if(_0x26903a){return _0x26903a[_0xe44e('0x71')](_0x3f59a0['query'][_0xe44e('0x72')]);}})[_0xe44e('0x21')](respondWithStatusCode(_0x18b626,null))[_0xe44e('0x2a')](handleError(_0x18b626,null));};exports[_0xe44e('0x73')]=function(_0x314191,_0x50a565,_0xf9956e){var _0x3df35e={'body':_0x314191[_0xe44e('0x5a')],'channel':_0xe44e('0x74')};var _0x242f5b=[];var _0x4c8d13=[];var _0x47e490={};var _0x3bfd73=![];return db['CmContact'][_0xe44e('0x63')]()[_0xe44e('0x21')](function(_0x1727da){if(!_0x1727da){throw new db[(_0xe44e('0x75'))][(_0xe44e('0x76'))](_0xe44e('0x77'));}_0x242f5b=_[_0xe44e('0x78')](_['keys'](_0x1727da),[_0xe44e('0x79'),'updatedAt']);_0x4c8d13=_[_0xe44e('0x78')](_[_0xe44e('0x48')](_0x1727da),[_0xe44e('0x79'),'updatedAt',_0xe44e('0x7a'),_0xe44e('0x7b')]);if(_0x314191['body']['id']){delete _0x314191[_0xe44e('0x5a')]['id'];}if(_['isNil'](_0x314191[_0xe44e('0x5a')][_0xe44e('0x7c')])){throw new db[(_0xe44e('0x75'))][(_0xe44e('0x76'))](_0xe44e('0x7d'));}if(_['isNil'](_0x314191[_0xe44e('0x5a')]['body'])||_0x314191[_0xe44e('0x5a')][_0xe44e('0x5a')]===''){throw new db[(_0xe44e('0x75'))][(_0xe44e('0x76'))](_0xe44e('0x7e'));}if(_[_0xe44e('0x7f')](_0x314191['body'][_0xe44e('0x80')])){throw new db[(_0xe44e('0x75'))][(_0xe44e('0x76'))](_0xe44e('0x81')+_0x4c8d13);}if(!_[_0xe44e('0x82')](_0x4c8d13,_0x314191[_0xe44e('0x5a')][_0xe44e('0x80')])){throw new db[(_0xe44e('0x75'))][(_0xe44e('0x76'))](_0xe44e('0x83')+_0x4c8d13);}_0x47e490[_0x314191[_0xe44e('0x5a')][_0xe44e('0x80')]]=_0x314191['body'][_0xe44e('0x7c')];})[_0xe44e('0x21')](function(){return db[_0xe44e('0x42')][_0xe44e('0x5e')]({'where':{'id':_0x314191['params']['id']},'include':[{'model':db[_0xe44e('0x84')],'as':'List','include':[{'model':db['CmContact'],'as':_0xe44e('0x85'),'where':_0x47e490,'limit':0x1,'order':[[_0xe44e('0x86'),'DESC']]}]},{'model':db[_0xe44e('0x87')],'as':_0xe44e('0x88')}]});})[_0xe44e('0x21')](handleEntityNotFound(_0x50a565,null))[_0xe44e('0x21')](function(_0x39f645){if(_0x39f645&&_0x39f645[_0xe44e('0x89')]){_0x3df35e['account']=_0x39f645;_0x3df35e[_0xe44e('0x8a')]=_0x39f645[_0xe44e('0x88')];_0x3df35e[_0xe44e('0x8b')]=_0x39f645[_0xe44e('0x89')];_0x3df35e['applications']=_[_0xe44e('0x8c')](_0x3df35e[_0xe44e('0x8a')],['priority'],[_0xe44e('0x8d')]);if(_0x3df35e[_0xe44e('0x8e')][_0xe44e('0x88')]){delete _0x3df35e['account'][_0xe44e('0x88')];}if(_0x3df35e[_0xe44e('0x8e')][_0xe44e('0x89')]&&_0x3df35e[_0xe44e('0x8e')][_0xe44e('0x89')][_0xe44e('0x85')][_0xe44e('0x4d')]){return _0x3df35e['account'][_0xe44e('0x89')][_0xe44e('0x85')][0x0];}var _0x500847=_[_0xe44e('0x8f')](_0x314191['body'],{'firstName':_0x314191[_0xe44e('0x5a')][_0xe44e('0x7c')],'ListId':_0x39f645['ListId']});_0x500847[_0x314191[_0xe44e('0x5a')][_0xe44e('0x80')]]=_0x314191[_0xe44e('0x5a')][_0xe44e('0x7c')];return db[_0xe44e('0x90')][_0xe44e('0x59')](_0x500847,{'fields':_0x242f5b,'raw':!![]});}})[_0xe44e('0x21')](handleEntityNotFound(_0x50a565,null))[_0xe44e('0x21')](function(_0x54dc15){_0x3df35e['contact']=_0x54dc15;if(_0x54dc15){var _0x2e1bb5={'ContactId':_0x54dc15['id'],'OpenchannelAccountId':_0x314191['params']['id'],'from':(_0x54dc15[_0xe44e('0x91')]||'')+'\x20'+(_0x54dc15[_0xe44e('0x92')]||'')};var _0x4eff64={'OpenchannelAccountId':_0x314191[_0xe44e('0x58')]['id'],'closed':![]};if(_0x314191[_0xe44e('0x5a')]['threadId']){_0x4eff64['threadId']=_0x314191[_0xe44e('0x5a')][_0xe44e('0x93')];return db['OpenchannelInteraction'][_0xe44e('0x5e')]({'where':_0x4eff64})[_0xe44e('0x21')](function(_0x230ee2){if(_0x230ee2){return[_0x230ee2,![]];}_0x2e1bb5[_0xe44e('0x93')]=_0x314191['body'][_0xe44e('0x93')];_0x2e1bb5[_0xe44e('0x94')]=_0x314191[_0xe44e('0x5a')][_0xe44e('0x94')];return db[_0xe44e('0x95')][_0xe44e('0x59')](_0x2e1bb5)[_0xe44e('0x21')](function(_0x5e2518){return[_0x5e2518,!![]];});});}else{_0x4eff64['threadId']=null;}_0x4eff64[_0xe44e('0x96')]=_0x54dc15['id'];return db[_0xe44e('0x95')]['find']({'where':_0x4eff64})[_0xe44e('0x21')](function(_0x5f49b4){if(_0x5f49b4){return[_0x5f49b4,![]];}return db['OpenchannelInteraction'][_0xe44e('0x59')](_0x2e1bb5)[_0xe44e('0x21')](function(_0x93f979){return[_0x93f979,!![]];});});}})[_0xe44e('0x97')](function(_0x79f0ed,_0x1d69c4){if(_0x79f0ed){_0x3bfd73=_0x1d69c4;if(!_0x1d69c4){var _0x4da8c6={'from':(_0x3df35e['contact'][_0xe44e('0x91')]||'')+'\x20'+(_0x3df35e[_0xe44e('0x98')][_0xe44e('0x92')]||'')};if(_0x314191[_0xe44e('0x5a')][_0xe44e('0x93')]&&_0x314191[_0xe44e('0x5a')][_0xe44e('0x99')]&&_0x314191[_0xe44e('0x5a')][_0xe44e('0x93')]!=_0x314191['body'][_0xe44e('0x99')]){_0x4da8c6[_0xe44e('0x93')]=_0x314191['body'][_0xe44e('0x99')];}return _0x79f0ed[_0xe44e('0x62')](_0x4da8c6);}else{return _0x79f0ed;}}})[_0xe44e('0x21')](function(_0x15a9d9){_0x3df35e[_0xe44e('0x9a')]=_0x15a9d9[_0xe44e('0x39')]({'plain':!![]});_0x3df35e['interaction'][_0xe44e('0x9b')]=_0x3bfd73;if(_0x3df35e[_0xe44e('0x9a')][_0xe44e('0x9b')]){if(_0x3df35e[_0xe44e('0x8e')][_0xe44e('0x9c')]){_0x3df35e['applications'][_0xe44e('0x9d')]({'id':0x0,'priority':_0x3df35e[_0xe44e('0x8a')]['length']+0x1,'app':_0xe44e('0x9e'),'appdata':_0xe44e('0x9f'),'interval':_0xe44e('0xa0')});}}return db[_0xe44e('0xa1')][_0xe44e('0x59')]({'body':_0x314191[_0xe44e('0x5a')]['body'],'OpenchannelAccountId':_0x314191[_0xe44e('0x58')]['id'],'OpenchannelInteractionId':_0x15a9d9['id'],'direction':'in','ContactId':_0x3df35e['contact']['id'],'AttachmentId':_0x314191[_0xe44e('0x5a')][_0xe44e('0xa2')]});})[_0xe44e('0x21')](function(_0x793e27){_0x3df35e[_0xe44e('0x29')]=_0x793e27;if(_0x3df35e['interaction'][_0xe44e('0xa3')]){return db[_0xe44e('0xa4')][_0xe44e('0x5e')]({'attributes':['id',_0xe44e('0x3d')],'where':{'id':_0x3df35e[_0xe44e('0x9a')]['UserId']}})['then'](function(_0x2443ca){if(_0x2443ca){_0x3df35e['applications']['unshift']({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x2443ca['name']+','+(_0x3df35e[_0xe44e('0x8e')]['waitForTheAssignedAgent']||0xa),'interval':_0xe44e('0xa0')});_0x3df35e[_0xe44e('0xa5')]=![];}return respondWithRpcPromise('Start',_0xe44e('0xa6'),_0x3df35e);});}return respondWithRpcPromise('Start',_0xe44e('0xa6'),_0x3df35e);})[_0xe44e('0x21')](function(_0x541463){respondWithRpcPromise(_0xe44e('0xa7'),'EventManager',{'event':'notify','message':_0x541463},client9002);return _0x541463;})[_0xe44e('0x21')](respondWithResult(_0x50a565,null))[_0xe44e('0x2a')](handleError(_0x50a565,null));};exports[_0xe44e('0xa8')]=function(_0x8da22c,_0x2971dd){var _0x571a3f=_0x8da22c[_0xe44e('0x58')]['id'];var _0x922c67=_0x8da22c['body'];var _0x188c41=0xc8;var _0x37842d=null;return db[_0xe44e('0xa9')][_0xe44e('0xaa')]({'isolationLevel':db['sequelize'][_0xe44e('0xab')]['ISOLATION_LEVELS']['READ_COMMITTED']},function(_0x2c21a2){return db[_0xe44e('0x42')]['findOne']({'where':{'id':_0x571a3f},'transaction':_0x2c21a2})['then'](function(_0x27e77b){if(_0x27e77b){return db[_0xe44e('0x87')][_0xe44e('0x38')]({'where':{'OpenchannelAccountId':_0x571a3f},'transaction':_0x2c21a2})['then'](function(){var _0x1f2620=_[_0xe44e('0x41')](_0x922c67,function(_0x2a24e5){_0x2a24e5[_0xe44e('0x65')]=_0x571a3f;return _0x2a24e5;});return db[_0xe44e('0x87')][_0xe44e('0xac')](_0x1f2620,{'transaction':_0x2c21a2});});}else{_0x188c41=0x194;_0x37842d=[];}});})[_0xe44e('0x21')](function(){if(_0x188c41!==0x194){return db[_0xe44e('0x87')][_0xe44e('0xad')]({'where':{'OpenchannelAccountId':_0x571a3f},'order':_0xe44e('0xae')})[_0xe44e('0x21')](function(_0x5933d8){_0x37842d=_0x5933d8;});}})[_0xe44e('0x2a')](function(_0x467304){_0x188c41=0x1f4;logger['error'](_0x467304[_0xe44e('0x3c')]);if(_0x467304['name']){delete _0x467304[_0xe44e('0x3d')];}_0x37842d=_0x467304;})['finally'](function(){if(_0x37842d===null){_0x2971dd[_0xe44e('0x2b')](_0x188c41);}else{if(_0x188c41===0x1f4){_0x2971dd[_0xe44e('0x2c')](_0x188c41)['send'](_0x37842d);}else{_0x2971dd['status'](_0x188c41)[_0xe44e('0x2e')](_0x37842d);}}});};exports[_0xe44e('0xaf')]=function(_0x8e33e4,_0x2407fc,_0x422757){var _0x87ac5f={};var _0xc22c4e={};var _0x176eb4;var _0x4b8f59;return db[_0xe44e('0x42')][_0xe44e('0x6f')]({'where':{'id':_0x8e33e4[_0xe44e('0x58')]['id']}})[_0xe44e('0x21')](handleEntityNotFound(_0x2407fc,null))['then'](function(_0x4c2adc){if(_0x4c2adc){_0x176eb4=_0x4c2adc;_0xc22c4e[_0xe44e('0x46')]=_[_0xe44e('0x48')](db[_0xe44e('0x87')]['rawAttributes']);_0xc22c4e[_0xe44e('0x47')]=_[_0xe44e('0x48')](_0x8e33e4['query']);_0xc22c4e[_0xe44e('0x49')]=_['intersection'](_0xc22c4e[_0xe44e('0x46')],_0xc22c4e[_0xe44e('0x47')]);_0x87ac5f[_0xe44e('0x4c')]=_['intersection'](_0xc22c4e[_0xe44e('0x46')],qs[_0xe44e('0x4b')](_0x8e33e4[_0xe44e('0x47')]['fields']));_0x87ac5f[_0xe44e('0x4c')]=_0x87ac5f[_0xe44e('0x4c')][_0xe44e('0x4d')]?_0x87ac5f['attributes']:_0xc22c4e['model'];_0x87ac5f[_0xe44e('0x4f')]=qs[_0xe44e('0x50')](_0x8e33e4[_0xe44e('0x47')][_0xe44e('0x50')]);_0x87ac5f[_0xe44e('0x53')]=qs[_0xe44e('0x49')](_[_0xe44e('0x51')](_0x8e33e4[_0xe44e('0x47')],_0xc22c4e['filters']));if(_0x8e33e4[_0xe44e('0x47')][_0xe44e('0x52')]){_0x87ac5f[_0xe44e('0x53')]=_[_0xe44e('0x54')](_0x87ac5f[_0xe44e('0x53')],{'$or':_[_0xe44e('0x41')](_0x87ac5f['attributes'],function(_0x4c2306){var _0x125139={};_0x125139[_0x4c2306]={'$like':'%'+_0x8e33e4[_0xe44e('0x47')][_0xe44e('0x52')]+'%'};return _0x125139;})});}_0x87ac5f=_['merge']({},_0x87ac5f,_0x8e33e4[_0xe44e('0x56')]);return _0x176eb4[_0xe44e('0xaf')](_0x87ac5f);}})[_0xe44e('0x21')](function(_0x2a8623){if(_0x2a8623){_0x4b8f59=_0x2a8623[_0xe44e('0x4d')];if(!_0x8e33e4[_0xe44e('0x47')][_0xe44e('0x4e')](_0xe44e('0x68'))){_0x87ac5f[_0xe44e('0x30')]=qs[_0xe44e('0x30')](_0x8e33e4[_0xe44e('0x47')][_0xe44e('0x30')]);_0x87ac5f[_0xe44e('0x32')]=qs['offset'](_0x8e33e4[_0xe44e('0x47')][_0xe44e('0x32')]);}return _0x176eb4[_0xe44e('0xaf')](_0x87ac5f);}})[_0xe44e('0x21')](function(_0x3c113b){if(_0x3c113b){return _0x3c113b?{'count':_0x4b8f59,'rows':_0x3c113b}:null;}})[_0xe44e('0x21')](respondWithResult(_0x2407fc,null))[_0xe44e('0x2a')](handleError(_0x2407fc,null));};exports[_0xe44e('0xb0')]=function(_0x34e47a,_0x240f29,_0x253749){var _0x3382e1={'raw':![],'where':{}};var _0x177c29={};var _0x210fbb={'count':0x0,'rows':[]};return db[_0xe44e('0x42')][_0xe44e('0x6f')]({'where':{'id':_0x34e47a['params']['id']}})[_0xe44e('0x21')](handleEntityNotFound(_0x240f29,null))['then'](function(_0x1f5519){if(_0x1f5519){_0x177c29[_0xe44e('0x46')]=_[_0xe44e('0x48')](db[_0xe44e('0x95')][_0xe44e('0x43')]);_0x177c29[_0xe44e('0x47')]=_[_0xe44e('0x48')](_0x34e47a[_0xe44e('0x47')]);_0x177c29[_0xe44e('0x49')]=_[_0xe44e('0x4a')](_0x177c29['model'],_0x177c29[_0xe44e('0x47')]);_0x3382e1[_0xe44e('0x4c')]=_[_0xe44e('0x4a')](_0x177c29['model'],qs[_0xe44e('0x4b')](_0x34e47a[_0xe44e('0x47')]['fields']));_0x3382e1[_0xe44e('0x4c')]=_0x3382e1[_0xe44e('0x4c')][_0xe44e('0x4d')]?_0x3382e1['attributes']:_0x177c29[_0xe44e('0x46')];if(!_0x34e47a['query'][_0xe44e('0x4e')](_0xe44e('0x68'))){_0x3382e1[_0xe44e('0x30')]=qs['limit'](_0x34e47a[_0xe44e('0x47')][_0xe44e('0x30')]);_0x3382e1[_0xe44e('0x32')]=qs[_0xe44e('0x32')](_0x34e47a[_0xe44e('0x47')][_0xe44e('0x32')]);}_0x3382e1[_0xe44e('0x4f')]=qs[_0xe44e('0x50')](_0x34e47a['query'][_0xe44e('0x50')]);_0x3382e1['where']=qs[_0xe44e('0x49')](_[_0xe44e('0x51')](_0x34e47a[_0xe44e('0x47')],_0x177c29[_0xe44e('0x49')]));_0x3382e1[_0xe44e('0x53')][_0xe44e('0x65')]=_0x1f5519['id'];if(_0x34e47a[_0xe44e('0x47')]['filter']){_0x3382e1[_0xe44e('0x53')]=_[_0xe44e('0x54')](_0x3382e1[_0xe44e('0x53')],{'$or':_[_0xe44e('0x41')](_0x3382e1['attributes'],function(_0x17126b){var _0x1d5b6a={};_0x1d5b6a[_0x17126b]={'$like':'%'+_0x34e47a[_0xe44e('0x47')][_0xe44e('0x52')]+'%'};return _0x1d5b6a;})});}_0x3382e1=_[_0xe44e('0x54')]({},_0x3382e1,_0x34e47a[_0xe44e('0x56')]);return db[_0xe44e('0x95')]['count']({'where':_0x3382e1['where']})['then'](function(_0x35275f){_0x210fbb[_0xe44e('0x31')]=_0x35275f;if(_0x34e47a['query'][_0xe44e('0x69')]){_0x3382e1[_0xe44e('0x57')]=[{'model':db[_0xe44e('0x90')],'as':_0xe44e('0xb1'),'required':![]},{'model':db[_0xe44e('0xa4')],'as':'Owner','attributes':[_0xe44e('0x3d'),_0xe44e('0xb2'),_0xe44e('0xb3')],'required':![]},{'model':db[_0xe44e('0xb4')],'as':_0xe44e('0xb5'),'attributes':['id',_0xe44e('0x3d'),'color'],'where':_0x34e47a[_0xe44e('0x47')]['tag']?{'id':_0x34e47a[_0xe44e('0x47')][_0xe44e('0xb6')]}:undefined,'required':_0x34e47a[_0xe44e('0x47')]['tag']?!![]:![]}];}return db[_0xe44e('0x95')][_0xe44e('0x70')](_0x3382e1);})[_0xe44e('0x21')](function(_0x24c2de){_0x210fbb[_0xe44e('0x6a')]=_0x24c2de;return _0x210fbb;});}})[_0xe44e('0x21')](respondWithFilteredResult(_0x240f29,_0x3382e1))[_0xe44e('0x2a')](handleError(_0x240f29,null));};exports[_0xe44e('0xb7')]=function(_0x2a944e,_0x166e68,_0x1e5568){return db['OpenchannelAccount']['find']({'where':{'id':_0x2a944e[_0xe44e('0x58')]['id']}})[_0xe44e('0x21')](handleEntityNotFound(_0x166e68,null))[_0xe44e('0x21')](function(_0x1fb342){if(_0x1fb342){return _0x1fb342['addAgents'](_0x2a944e[_0xe44e('0x5a')]['ids'],_[_0xe44e('0xb8')](_0x2a944e['body'],[_0xe44e('0x72'),'id'])||{})['spread'](function(_0x196c98){for(var _0x58062e=0x0;_0x58062e<_0x2a944e[_0xe44e('0x5a')][_0xe44e('0x72')]['length'];_0x58062e+=0x1){socket[_0xe44e('0xb9')](_0xe44e('0xba'),{'UserId':Number(_0x2a944e[_0xe44e('0x5a')][_0xe44e('0x72')][_0x58062e]),'OpenchannelAccountId':Number(_0x2a944e[_0xe44e('0x58')]['id'])});}return _0x196c98;});}})[_0xe44e('0x21')](respondWithResult(_0x166e68,null))[_0xe44e('0x2a')](handleError(_0x166e68,null));};exports[_0xe44e('0xbb')]=function(_0x39f04c,_0x51b8c3,_0x25b70c){return db[_0xe44e('0x42')][_0xe44e('0x5e')]({'where':{'id':_0x39f04c['params']['id']}})[_0xe44e('0x21')](handleEntityNotFound(_0x51b8c3,null))[_0xe44e('0x21')](function(_0x522958){if(_0x522958){return _0x522958['removeAgents'](_0x39f04c['query']['ids'])['then'](function(){if(_[_0xe44e('0xbc')](_0x39f04c[_0xe44e('0x47')][_0xe44e('0x72')])){for(var _0x28f215=0x0;_0x28f215<_0x39f04c[_0xe44e('0x47')][_0xe44e('0x72')][_0xe44e('0x4d')];_0x28f215+=0x1){socket[_0xe44e('0xb9')](_0xe44e('0xbd'),{'UserId':Number(_0x39f04c[_0xe44e('0x47')][_0xe44e('0x72')][_0x28f215]),'OpenchannelAccountId':Number(_0x39f04c[_0xe44e('0x58')]['id'])});}}else{socket[_0xe44e('0xb9')]('userOpenchannelAccount:remove',{'UserId':Number(_0x39f04c['query']['ids']),'OpenchannelAccountId':Number(_0x39f04c[_0xe44e('0x58')]['id'])});}});}})['then'](respondWithStatusCode(_0x51b8c3,null))[_0xe44e('0x2a')](handleError(_0x51b8c3,null));};exports['getAgents']=function(_0x245c84,_0x1515df,_0x43cfbf){var _0x35af84={};var _0x549f89={};var _0x379565;var _0x5e3145;return db[_0xe44e('0x42')][_0xe44e('0x6f')]({'where':{'id':_0x245c84[_0xe44e('0x58')]['id']}})['then'](handleEntityNotFound(_0x1515df,null))[_0xe44e('0x21')](function(_0x32ebd8){if(_0x32ebd8){_0x379565=_0x32ebd8;_0x549f89[_0xe44e('0x46')]=_[_0xe44e('0x48')](db[_0xe44e('0xa4')][_0xe44e('0x43')]);_0x549f89[_0xe44e('0x47')]=_[_0xe44e('0x48')](_0x245c84[_0xe44e('0x47')]);_0x549f89[_0xe44e('0x49')]=_[_0xe44e('0x4a')](_0x549f89[_0xe44e('0x46')],_0x549f89[_0xe44e('0x47')]);_0x35af84['attributes']=_['intersection'](_0x549f89[_0xe44e('0x46')],qs[_0xe44e('0x4b')](_0x245c84[_0xe44e('0x47')][_0xe44e('0x4b')]));_0x35af84['attributes']=_0x35af84['attributes'][_0xe44e('0x4d')]?_0x35af84[_0xe44e('0x4c')]:_0x549f89[_0xe44e('0x46')];_0x35af84[_0xe44e('0x4f')]=qs[_0xe44e('0x50')](_0x245c84['query']['sort']);_0x35af84[_0xe44e('0x53')]=qs[_0xe44e('0x49')](_[_0xe44e('0x51')](_0x245c84['query'],_0x549f89[_0xe44e('0x49')]));if(_0x245c84['query']['filter']){_0x35af84[_0xe44e('0x53')]=_[_0xe44e('0x54')](_0x35af84[_0xe44e('0x53')],{'$or':_[_0xe44e('0x41')](_0x35af84[_0xe44e('0x4c')],function(_0x929080){var _0x1bf6d8={};_0x1bf6d8[_0x929080]={'$like':'%'+_0x245c84[_0xe44e('0x47')][_0xe44e('0x52')]+'%'};return _0x1bf6d8;})});}_0x35af84=_[_0xe44e('0x54')]({},_0x35af84,_0x245c84[_0xe44e('0x56')]);return _0x379565['getAgents'](_0x35af84);}})[_0xe44e('0x21')](function(_0x4c2f86){if(_0x4c2f86){_0x5e3145=_0x4c2f86[_0xe44e('0x4d')];if(!_0x245c84[_0xe44e('0x47')][_0xe44e('0x4e')]('nolimit')){_0x35af84['limit']=qs['limit'](_0x245c84[_0xe44e('0x47')][_0xe44e('0x30')]);_0x35af84[_0xe44e('0x32')]=qs[_0xe44e('0x32')](_0x245c84['query'][_0xe44e('0x32')]);}return _0x379565[_0xe44e('0xbe')](_0x35af84);}})[_0xe44e('0x21')](function(_0x4196e4){if(_0x4196e4){return _0x4196e4?{'count':_0x5e3145,'rows':_0x4196e4}:null;}})['then'](respondWithResult(_0x1515df,null))[_0xe44e('0x2a')](handleError(_0x1515df,null));};exports[_0xe44e('0xbf')]=function(_0x1c0541,_0x2550ac,_0x3f5a05){var _0xeb767a,_0x459f10,_0x9fd07f;if(_['isNil'](_0x1c0541[_0xe44e('0x5a')]['body'])||_0x1c0541[_0xe44e('0x5a')][_0xe44e('0x5a')]===''){throw new db[(_0xe44e('0x75'))][(_0xe44e('0x76'))]('body\x20is\x20mandatory\x20and\x20not\x20empty');}if(_[_0xe44e('0x7f')](_0x1c0541[_0xe44e('0x5a')]['to'])){}_0xeb767a=_0x1c0541['body']['to'];return db[_0xe44e('0x42')][_0xe44e('0x6f')]({'where':{'id':_0x1c0541[_0xe44e('0x58')]['id']}})['then'](handleEntityNotFound(_0x2550ac,null))[_0xe44e('0x21')](function(_0x51a2de){if(_0x51a2de){return db[_0xe44e('0x42')][_0xe44e('0x5e')]({'where':{'id':_0x51a2de['id']},'include':[{'model':db[_0xe44e('0x84')],'as':_0xe44e('0x89'),'include':[{'model':db['CmContact'],'as':_0xe44e('0x85'),'where':{[_0x51a2de[_0xe44e('0x80')]]:_0xeb767a},'limit':0x1,'order':[[_0xe44e('0x86'),_0xe44e('0xc0')]]}]}]})['then'](handleEntityNotFound(_0x2550ac,null))[_0xe44e('0x21')](function(_0x5ecc9e){if(_0x5ecc9e&&_0x5ecc9e[_0xe44e('0x89')]){_0x459f10=_0x5ecc9e[_0xe44e('0x39')]({'plain':!![]});if(_0x459f10[_0xe44e('0x89')]&&_0x459f10[_0xe44e('0x89')]['Contacts'][_0xe44e('0x4d')]){return _0x459f10[_0xe44e('0x89')][_0xe44e('0x85')][0x0];}return db[_0xe44e('0x90')][_0xe44e('0x59')](_[_0xe44e('0x8f')](_0x1c0541['body'],{'firstName':_0xeb767a,[_0x5ecc9e[_0xe44e('0x80')]]:_0xeb767a,'phone':_0xeb767a,'ListId':_0x459f10[_0xe44e('0x7b')]}));}})['then'](handleEntityNotFound(_0x2550ac,null))[_0xe44e('0x21')](function(_0x5f31f0){if(_0x5f31f0){_0x9fd07f=_0x5f31f0;return db['OpenchannelInteraction'][_0xe44e('0x5e')]({'where':{'ContactId':_0x9fd07f['id'],'closed':![],'OpenchannelAccountId':_0x459f10['id']}})[_0xe44e('0x21')](function(_0x184cc7){if(_0x184cc7){return[_0x184cc7,![]];}return db[_0xe44e('0x95')][_0xe44e('0x59')]({'UserId':_0x1c0541[_0xe44e('0x5c')]['id'],'ContactId':_0x9fd07f['id'],'OpenchannelAccountId':_0x459f10['id'],'lastMsgDirection':'out','Messages':[_[_0xe44e('0x54')](_0x1c0541[_0xe44e('0x5a')],{'read':![],'body':_0x1c0541[_0xe44e('0x5a')][_0xe44e('0x5a')],'OpenchannelAccountId':_0x459f10['id'],'UserId':_0x1c0541[_0xe44e('0x5c')]['id'],'ContactId':_0x9fd07f['id']})]},{'include':[{'model':db[_0xe44e('0xa1')],'as':_0xe44e('0xc1')}]})[_0xe44e('0x21')](function(_0x5b9eaf){return[_0x5b9eaf,!![]];});});}})[_0xe44e('0x97')](function(_0x28b368,_0x24123b){if(_0x24123b){return _0x28b368;}return db['OpenchannelMessage'][_0xe44e('0x59')](_[_0xe44e('0x54')](_0x1c0541[_0xe44e('0x5a')],{'read':![],'body':_0x1c0541['body'][_0xe44e('0x5a')],'OpenchannelAccountId':_0x459f10['id'],'OpenchannelInteractionId':_0x28b368['id'],'UserId':_0x1c0541[_0xe44e('0x5c')]['id'],'ContactId':_0x9fd07f['id']}))[_0xe44e('0x21')](function(_0x4c16af){_0x28b368[_0xe44e('0xc2')]['Messages']=[];_0x28b368[_0xe44e('0xc2')][_0xe44e('0xc1')][_0xe44e('0x9d')](_0x4c16af[_0xe44e('0xc2')]);return _0x28b368;});});}})[_0xe44e('0x21')](respondWithResult(_0x2550ac,null))[_0xe44e('0x2a')](handleError(_0x2550ac,null));};
\ No newline at end of file
+var _0xf80b=['lastName','threadId','OpenchannelInteraction','externalUrl','contact','messageId','interaction','created','autoclose','push','close','OpenchannelMessage','User','UserId','unshift','agent','waitForTheAssignedAgent','*,*,*,*','Start','startRouting','EventManager','addApplications','sequelize','transaction','Transaction','ISOLATION_LEVELS','READ_COMMITTED','findOne','OpenchannelApplication','bulkCreate','findAndCountAll','finally','getApplications','getInteractions','internal','Tag','color','tag','addAgents','omit','spread','emit','userOpenchannelAccount:save','removeAgents','isArray','userOpenchannelAccount:remove','getAgents','body\x20is\x20mandatory\x20and\x20not\x20empty','CmList','ListId','out','dataValues','Messages','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','defaults','redis','localhost','./openchannelAccount.socket','register','jayson/promise','client','http','request','then','info','OpenchannelAccount,\x20%s,\x20%s','request\x20sent','debug','error','code','result','message','catch','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','update','get','OpenchannelAccounts','UserProfileResource','destroy','stack','name','send','index','Pause','mandatoryDispositionPause','map','OpenchannelAccount','rawAttributes','type','key','model','query','filters','intersection','attributes','fields','nolimit','order','pick','filter','where','merge','VIRTUAL','options','includeAll','include','findAll','rows','show','params','keys','length','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','describe','addDisposition','OpenchannelAccountId','Disposition','getDispositions','hasOwnProperty','sort','removeDispositions','CannedAnswer','removeAnswers','ids','notify','openchannel','ValidationError','no\x20available\x20attributes','difference','createdAt','updatedAt','CompanyId','isNil','from','from\x20is\x20mandatory','Sequelize','mapKey','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','List','CmContact','DESC','Applications','applications','list','priority','asc','account','Contacts'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xf80b,0x1b1));var _0xbf80=function(_0x164289,_0x4e50e7){_0x164289=_0x164289-0x0;var _0x23b312=_0xf80b[_0x164289];return _0x23b312;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xbf80('0x0'));var zipdir=require(_0xbf80('0x1'));var jsonpatch=require(_0xbf80('0x2'));var rp=require(_0xbf80('0x3'));var moment=require(_0xbf80('0x4'));var BPromise=require(_0xbf80('0x5'));var Mustache=require(_0xbf80('0x6'));var util=require(_0xbf80('0x7'));var path=require(_0xbf80('0x8'));var sox=require('sox');var csv=require(_0xbf80('0x9'));var ejs=require(_0xbf80('0xa'));var fs=require('fs');var fs_extra=require(_0xbf80('0xb'));var _=require(_0xbf80('0xc'));var squel=require(_0xbf80('0xd'));var crypto=require(_0xbf80('0xe'));var jsforce=require(_0xbf80('0xf'));var deskjs=require(_0xbf80('0x10'));var toCsv=require(_0xbf80('0x9'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xbf80('0x11'));var qs=require(_0xbf80('0x12'));var as=require(_0xbf80('0x13'));var hardwareService=require(_0xbf80('0x14'));var logger=require(_0xbf80('0x15'))('api');var utils=require('../../config/utils');var config=require(_0xbf80('0x16'));var licenseUtil=require(_0xbf80('0x17'));var db=require(_0xbf80('0x18'))['db'];config['redis']=_[_0xbf80('0x19')](config[_0xbf80('0x1a')],{'host':_0xbf80('0x1b'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xbf80('0x1a')]));require(_0xbf80('0x1c'))[_0xbf80('0x1d')](socket);var jayson=require(_0xbf80('0x1e'));var client=jayson[_0xbf80('0x1f')]['http']({'port':0x232c});var client9002=jayson[_0xbf80('0x1f')][_0xbf80('0x20')]({'port':0x232a});function respondWithRpcPromise(_0x596b46,_0x5f09c5,_0x2362ac,_0x4077bb){return new BPromise(function(_0xb44408,_0x1d8ef9){var _0x120112=_0x4077bb||client;return _0x120112[_0xbf80('0x21')](_0x596b46,_0x2362ac)[_0xbf80('0x22')](function(_0x533d72){logger[_0xbf80('0x23')](_0xbf80('0x24'),_0x5f09c5,_0xbf80('0x25'));logger[_0xbf80('0x26')]('OpenchannelAccount,\x20%s,\x20%s,\x20%s',_0x5f09c5,_0xbf80('0x25'),JSON['stringify'](_0x533d72));if(_0x533d72[_0xbf80('0x27')]){if(_0x533d72[_0xbf80('0x27')][_0xbf80('0x28')]===0x1f4){logger['error'](_0xbf80('0x24'),_0x5f09c5,_0x533d72[_0xbf80('0x27')]['message']);return _0x1d8ef9(_0x533d72['error']['message']);}logger[_0xbf80('0x27')](_0xbf80('0x24'),_0x5f09c5,_0x533d72[_0xbf80('0x27')]['message']);return _0xb44408(_0x533d72[_0xbf80('0x27')]['message']);}else{logger['info'](_0xbf80('0x24'),_0x5f09c5,_0xbf80('0x25'));_0xb44408(_0x533d72[_0xbf80('0x29')][_0xbf80('0x2a')]);}})[_0xbf80('0x2b')](function(_0x46151b){logger[_0xbf80('0x27')](_0xbf80('0x24'),_0x5f09c5,_0x46151b);_0x1d8ef9(_0x46151b);});});}function respondWithStatusCode(_0xc59aa5,_0x26798d){_0x26798d=_0x26798d||0xcc;return function(_0x4479dc){if(_0x4479dc){return _0xc59aa5[_0xbf80('0x2c')](_0x26798d);}return _0xc59aa5[_0xbf80('0x2d')](_0x26798d)[_0xbf80('0x2e')]();};}function respondWithResult(_0x54a346,_0x1012fd){_0x1012fd=_0x1012fd||0xc8;return function(_0x44066c){if(_0x44066c){return _0x54a346[_0xbf80('0x2d')](_0x1012fd)[_0xbf80('0x2f')](_0x44066c);}};}function respondWithFilteredResult(_0x21595d,_0x536296){return function(_0x401cc4){if(_0x401cc4){var _0x2fc7fd=typeof _0x536296[_0xbf80('0x30')]===_0xbf80('0x31')&&typeof _0x536296[_0xbf80('0x32')]===_0xbf80('0x31');var _0x4e35b4=_0x401cc4['count'];var _0x3c71ed=_0x2fc7fd?0x0:_0x536296[_0xbf80('0x30')];var _0x2f6a0a=_0x2fc7fd?_0x401cc4[_0xbf80('0x33')]:_0x536296['offset']+_0x536296[_0xbf80('0x32')];var _0x3895bd;if(_0x2f6a0a>=_0x4e35b4){_0x2f6a0a=_0x4e35b4;_0x3895bd=0xc8;}else{_0x3895bd=0xce;}_0x21595d[_0xbf80('0x2d')](_0x3895bd);return _0x21595d[_0xbf80('0x34')](_0xbf80('0x35'),_0x3c71ed+'-'+_0x2f6a0a+'/'+_0x4e35b4)[_0xbf80('0x2f')](_0x401cc4);}return null;};}function patchUpdates(_0x3b48b6){return function(_0x2aa30c){try{jsonpatch[_0xbf80('0x36')](_0x2aa30c,_0x3b48b6,!![]);}catch(_0x2cf05c){return BPromise[_0xbf80('0x37')](_0x2cf05c);}return _0x2aa30c['save']();};}function saveUpdates(_0x40df53,_0xbc10e2){return function(_0x310270){if(_0x310270){return _0x310270[_0xbf80('0x38')](_0x40df53)[_0xbf80('0x22')](function(_0xc7a734){return _0xc7a734;});}return null;};}function removeEntity(_0x103189,_0x3bb21d){return function(_0x3e4bd8){if(_0x3e4bd8){return _0x3e4bd8['destroy']()[_0xbf80('0x22')](function(){var _0x49cffb=_0x3e4bd8[_0xbf80('0x39')]({'plain':!![]});var _0x23e694=_0xbf80('0x3a');return db[_0xbf80('0x3b')][_0xbf80('0x3c')]({'where':{'type':_0x23e694,'resourceId':_0x49cffb['id']}})[_0xbf80('0x22')](function(){return _0x3e4bd8;});})[_0xbf80('0x22')](function(){_0x103189['status'](0xcc)[_0xbf80('0x2e')]();});}};}function handleEntityNotFound(_0x5e162b,_0x27a445){return function(_0x15269d){if(!_0x15269d){_0x5e162b[_0xbf80('0x2c')](0x194);}return _0x15269d;};}function handleError(_0x495fbb,_0x3919e0){_0x3919e0=_0x3919e0||0x1f4;return function(_0x4e7557){logger[_0xbf80('0x27')](_0x4e7557[_0xbf80('0x3d')]);if(_0x4e7557['name']){delete _0x4e7557[_0xbf80('0x3e')];}_0x495fbb[_0xbf80('0x2d')](_0x3919e0)[_0xbf80('0x3f')](_0x4e7557);};}exports[_0xbf80('0x40')]=function(_0x4978aa,_0x378730){var _0x57f84b={'include':[{'model':db[_0xbf80('0x41')],'as':_0xbf80('0x42')}]},_0x3b674c={},_0x9f552={'count':0x0,'rows':[]};var _0x5d362b=_[_0xbf80('0x43')](db[_0xbf80('0x44')][_0xbf80('0x45')],function(_0x2d3dad){return{'name':_0x2d3dad['fieldName'],'type':_0x2d3dad[_0xbf80('0x46')][_0xbf80('0x47')]};});_0x3b674c[_0xbf80('0x48')]=_[_0xbf80('0x43')](_0x5d362b,_0xbf80('0x3e'));_0x3b674c['query']=_['keys'](_0x4978aa[_0xbf80('0x49')]);_0x3b674c[_0xbf80('0x4a')]=_[_0xbf80('0x4b')](_0x3b674c['model'],_0x3b674c[_0xbf80('0x49')]);_0x57f84b[_0xbf80('0x4c')]=_[_0xbf80('0x4b')](_0x3b674c[_0xbf80('0x48')],qs[_0xbf80('0x4d')](_0x4978aa[_0xbf80('0x49')][_0xbf80('0x4d')]));_0x57f84b[_0xbf80('0x4c')]=_0x57f84b[_0xbf80('0x4c')]['length']?_0x57f84b[_0xbf80('0x4c')]:_0x3b674c[_0xbf80('0x48')];if(!_0x4978aa[_0xbf80('0x49')]['hasOwnProperty'](_0xbf80('0x4e'))){_0x57f84b[_0xbf80('0x32')]=qs[_0xbf80('0x32')](_0x4978aa['query'][_0xbf80('0x32')]);_0x57f84b[_0xbf80('0x30')]=qs['offset'](_0x4978aa[_0xbf80('0x49')][_0xbf80('0x30')]);}_0x57f84b[_0xbf80('0x4f')]=qs['sort'](_0x4978aa[_0xbf80('0x49')]['sort']);_0x57f84b['where']=qs[_0xbf80('0x4a')](_[_0xbf80('0x50')](_0x4978aa[_0xbf80('0x49')],_0x3b674c[_0xbf80('0x4a')]),_0x5d362b);if(_0x4978aa[_0xbf80('0x49')][_0xbf80('0x51')]){_0x57f84b[_0xbf80('0x52')]=_[_0xbf80('0x53')](_0x57f84b['where'],{'$or':_[_0xbf80('0x43')](_0x5d362b,function(_0x27e6b6){if(_0x27e6b6[_0xbf80('0x46')]!==_0xbf80('0x54')){var _0x1a747a={};_0x1a747a[_0x27e6b6[_0xbf80('0x3e')]]={'$like':'%'+_0x4978aa['query'][_0xbf80('0x51')]+'%'};return _0x1a747a;}})});}_0x57f84b=_[_0xbf80('0x53')]({},_0x57f84b,_0x4978aa[_0xbf80('0x55')]);var _0x35593c={'where':_0x57f84b[_0xbf80('0x52')]};return db[_0xbf80('0x44')][_0xbf80('0x33')](_0x35593c)[_0xbf80('0x22')](function(_0xd69b13){_0x9f552['count']=_0xd69b13;if(_0x4978aa[_0xbf80('0x49')][_0xbf80('0x56')]){_0x57f84b[_0xbf80('0x57')]=[{'all':!![]}];}return db[_0xbf80('0x44')][_0xbf80('0x58')](_0x57f84b);})[_0xbf80('0x22')](function(_0x57ac1c){_0x9f552[_0xbf80('0x59')]=_0x57ac1c;return _0x9f552;})[_0xbf80('0x22')](respondWithFilteredResult(_0x378730,_0x57f84b))[_0xbf80('0x2b')](handleError(_0x378730,null));};exports[_0xbf80('0x5a')]=function(_0x59c442,_0x2fa660){var _0x4f08e4={'raw':![],'where':{'id':_0x59c442[_0xbf80('0x5b')]['id']},'include':[{'model':db[_0xbf80('0x41')],'as':_0xbf80('0x42')}]},_0x161d1f={};_0x161d1f[_0xbf80('0x48')]=_[_0xbf80('0x5c')](db[_0xbf80('0x44')][_0xbf80('0x45')]);_0x161d1f[_0xbf80('0x49')]=_[_0xbf80('0x5c')](_0x59c442[_0xbf80('0x49')]);_0x161d1f['filters']=_[_0xbf80('0x4b')](_0x161d1f[_0xbf80('0x48')],_0x161d1f[_0xbf80('0x49')]);_0x4f08e4[_0xbf80('0x4c')]=_[_0xbf80('0x4b')](_0x161d1f[_0xbf80('0x48')],qs['fields'](_0x59c442[_0xbf80('0x49')][_0xbf80('0x4d')]));_0x4f08e4[_0xbf80('0x4c')]=_0x4f08e4[_0xbf80('0x4c')][_0xbf80('0x5d')]?_0x4f08e4[_0xbf80('0x4c')]:_0x161d1f[_0xbf80('0x48')];if(_0x59c442['query'][_0xbf80('0x56')]){_0x4f08e4[_0xbf80('0x57')]=[{'all':!![]}];}_0x4f08e4=_['merge']({},_0x4f08e4,_0x59c442['options']);return db[_0xbf80('0x44')][_0xbf80('0x5e')](_0x4f08e4)[_0xbf80('0x22')](handleEntityNotFound(_0x2fa660,null))[_0xbf80('0x22')](respondWithResult(_0x2fa660,null))[_0xbf80('0x2b')](handleError(_0x2fa660,null));};exports[_0xbf80('0x5f')]=function(_0x3d4ea3,_0xf88962){return db[_0xbf80('0x44')][_0xbf80('0x5f')](_0x3d4ea3[_0xbf80('0x60')],{})[_0xbf80('0x22')](function(_0x385c37){var _0x442088=_0x3d4ea3[_0xbf80('0x61')][_0xbf80('0x39')]({'plain':!![]});if(!_0x442088)throw new Error(_0xbf80('0x62'));if(_0x442088[_0xbf80('0x63')]===_0xbf80('0x61')){var _0x40dc71=_0x385c37[_0xbf80('0x39')]({'plain':!![]});var _0x3f4089='OpenchannelAccounts';return db[_0xbf80('0x64')]['find']({'where':{'name':_0x3f4089,'userProfileId':_0x442088[_0xbf80('0x65')]},'raw':!![]})[_0xbf80('0x22')](function(_0x4d6754){if(_0x4d6754&&_0x4d6754['autoAssociation']===0x0){return db[_0xbf80('0x3b')][_0xbf80('0x5f')]({'name':_0x40dc71['name'],'resourceId':_0x40dc71['id'],'type':_0x4d6754[_0xbf80('0x3e')],'sectionId':_0x4d6754['id']},{})[_0xbf80('0x22')](function(){return _0x385c37;});}else{return _0x385c37;}})[_0xbf80('0x2b')](function(_0x494352){logger[_0xbf80('0x27')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x494352);throw _0x494352;});}return _0x385c37;})[_0xbf80('0x22')](respondWithResult(_0xf88962,0xc9))[_0xbf80('0x2b')](handleError(_0xf88962,null));};exports['update']=function(_0x1f0d2c,_0x374770){if(_0x1f0d2c[_0xbf80('0x60')]['id']){delete _0x1f0d2c[_0xbf80('0x60')]['id'];}return db[_0xbf80('0x44')][_0xbf80('0x5e')]({'where':{'id':_0x1f0d2c['params']['id']},'include':[{'model':db[_0xbf80('0x41')],'as':'mandatoryDispositionPause'}]})[_0xbf80('0x22')](handleEntityNotFound(_0x374770,null))[_0xbf80('0x22')](saveUpdates(_0x1f0d2c[_0xbf80('0x60')],null))[_0xbf80('0x22')](respondWithResult(_0x374770,null))[_0xbf80('0x2b')](handleError(_0x374770,null));};exports['destroy']=function(_0x2e9707,_0x4848fb){return db[_0xbf80('0x44')][_0xbf80('0x5e')]({'where':{'id':_0x2e9707[_0xbf80('0x5b')]['id']}})[_0xbf80('0x22')](handleEntityNotFound(_0x4848fb,null))['then'](removeEntity(_0x4848fb,null))[_0xbf80('0x2b')](handleError(_0x4848fb,null));};exports[_0xbf80('0x66')]=function(_0x264866,_0x52acf6){return db[_0xbf80('0x44')]['describe']()[_0xbf80('0x22')](respondWithResult(_0x52acf6,null))[_0xbf80('0x2b')](handleError(_0x52acf6,null));};exports[_0xbf80('0x67')]=function(_0x58b9f5,_0x35f83f,_0x352fd0){if(_0x58b9f5[_0xbf80('0x60')]['id']){delete _0x58b9f5['body']['id'];}return db[_0xbf80('0x44')][_0xbf80('0x5e')]({'where':{'id':_0x58b9f5[_0xbf80('0x5b')]['id']}})['then'](handleEntityNotFound(_0x35f83f,null))['then'](function(_0x4219ec){if(_0x4219ec){_0x58b9f5[_0xbf80('0x60')][_0xbf80('0x68')]=_0x4219ec['id'];return db[_0xbf80('0x69')][_0xbf80('0x5f')](_0x58b9f5['body']);}})['then'](respondWithResult(_0x35f83f,null))['catch'](handleError(_0x35f83f,null));};exports[_0xbf80('0x6a')]=function(_0x49401e,_0x381d6f,_0x7822b8){var _0x1c8a68={'raw':![],'where':{}};var _0x2bed4f={};var _0x1ec021={'count':0x0,'rows':[]};return db[_0xbf80('0x44')]['findOne']({'where':{'id':_0x49401e[_0xbf80('0x5b')]['id']}})[_0xbf80('0x22')](handleEntityNotFound(_0x381d6f,null))[_0xbf80('0x22')](function(_0x20ff06){if(_0x20ff06){_0x2bed4f['model']=_['keys'](db['Disposition']['rawAttributes']);_0x2bed4f[_0xbf80('0x49')]=_[_0xbf80('0x5c')](_0x49401e['query']);_0x2bed4f[_0xbf80('0x4a')]=_[_0xbf80('0x4b')](_0x2bed4f['model'],_0x2bed4f[_0xbf80('0x49')]);_0x1c8a68[_0xbf80('0x4c')]=_['intersection'](_0x2bed4f['model'],qs[_0xbf80('0x4d')](_0x49401e[_0xbf80('0x49')][_0xbf80('0x4d')]));_0x1c8a68[_0xbf80('0x4c')]=_0x1c8a68[_0xbf80('0x4c')][_0xbf80('0x5d')]?_0x1c8a68[_0xbf80('0x4c')]:_0x2bed4f[_0xbf80('0x48')];if(!_0x49401e[_0xbf80('0x49')][_0xbf80('0x6b')]('nolimit')){_0x1c8a68['limit']=qs['limit'](_0x49401e[_0xbf80('0x49')][_0xbf80('0x32')]);_0x1c8a68['offset']=qs[_0xbf80('0x30')](_0x49401e[_0xbf80('0x49')][_0xbf80('0x30')]);}_0x1c8a68[_0xbf80('0x4f')]=qs[_0xbf80('0x6c')](_0x49401e['query'][_0xbf80('0x6c')]);_0x1c8a68['where']=qs[_0xbf80('0x4a')](_[_0xbf80('0x50')](_0x49401e[_0xbf80('0x49')],_0x2bed4f[_0xbf80('0x4a')]));_0x1c8a68[_0xbf80('0x52')][_0xbf80('0x68')]=_0x20ff06['id'];if(_0x49401e[_0xbf80('0x49')][_0xbf80('0x51')]){_0x1c8a68[_0xbf80('0x52')]=_[_0xbf80('0x53')](_0x1c8a68['where'],{'$or':_[_0xbf80('0x43')](_0x1c8a68[_0xbf80('0x4c')],function(_0x4099f0){var _0x32cbcc={};_0x32cbcc[_0x4099f0]={'$like':'%'+_0x49401e[_0xbf80('0x49')][_0xbf80('0x51')]+'%'};return _0x32cbcc;})});}_0x1c8a68=_[_0xbf80('0x53')]({},_0x1c8a68,_0x49401e['options']);return db[_0xbf80('0x69')][_0xbf80('0x33')]({'where':_0x1c8a68['where']})['then'](function(_0x253e4f){_0x1ec021[_0xbf80('0x33')]=_0x253e4f;if(_0x49401e[_0xbf80('0x49')][_0xbf80('0x56')]){_0x1c8a68['include']=[{'all':!![]}];}return db['Disposition'][_0xbf80('0x58')](_0x1c8a68);})['then'](function(_0x23926e){_0x1ec021[_0xbf80('0x59')]=_0x23926e;return _0x1ec021;});}})[_0xbf80('0x22')](respondWithFilteredResult(_0x381d6f,_0x1c8a68))[_0xbf80('0x2b')](handleError(_0x381d6f,null));};exports['removeDispositions']=function(_0x3f6b7d,_0x1c8a15,_0x156040){return db[_0xbf80('0x44')][_0xbf80('0x5e')]({'where':{'id':_0x3f6b7d[_0xbf80('0x5b')]['id']}})[_0xbf80('0x22')](handleEntityNotFound(_0x1c8a15,null))[_0xbf80('0x22')](function(_0x4a1c27){if(_0x4a1c27){return _0x4a1c27[_0xbf80('0x6d')](_0x3f6b7d[_0xbf80('0x49')]['ids']);}})[_0xbf80('0x22')](respondWithStatusCode(_0x1c8a15,null))[_0xbf80('0x2b')](handleError(_0x1c8a15,null));};exports['addAnswer']=function(_0x2615b8,_0x589eca,_0x3aacb4){if(_0x2615b8[_0xbf80('0x60')]['id']){delete _0x2615b8['body']['id'];}return db[_0xbf80('0x44')][_0xbf80('0x5e')]({'where':{'id':_0x2615b8[_0xbf80('0x5b')]['id']}})[_0xbf80('0x22')](handleEntityNotFound(_0x589eca,null))[_0xbf80('0x22')](function(_0x480f2e){if(_0x480f2e){_0x2615b8[_0xbf80('0x60')][_0xbf80('0x68')]=_0x480f2e['id'];return db['CannedAnswer']['create'](_0x2615b8[_0xbf80('0x60')]);}})[_0xbf80('0x22')](respondWithResult(_0x589eca,null))['catch'](handleError(_0x589eca,null));};exports['getAnswers']=function(_0x4a7e09,_0x1341bd,_0x5676d1){var _0x3a8ec2={'raw':![],'where':{}};var _0xeaf54d={};var _0xe27869={'count':0x0,'rows':[]};return db[_0xbf80('0x44')]['findOne']({'where':{'id':_0x4a7e09[_0xbf80('0x5b')]['id']}})[_0xbf80('0x22')](handleEntityNotFound(_0x1341bd,null))[_0xbf80('0x22')](function(_0x48ec1e){if(_0x48ec1e){_0xeaf54d['model']=_[_0xbf80('0x5c')](db['CannedAnswer'][_0xbf80('0x45')]);_0xeaf54d[_0xbf80('0x49')]=_[_0xbf80('0x5c')](_0x4a7e09['query']);_0xeaf54d[_0xbf80('0x4a')]=_[_0xbf80('0x4b')](_0xeaf54d[_0xbf80('0x48')],_0xeaf54d['query']);_0x3a8ec2[_0xbf80('0x4c')]=_[_0xbf80('0x4b')](_0xeaf54d[_0xbf80('0x48')],qs[_0xbf80('0x4d')](_0x4a7e09[_0xbf80('0x49')]['fields']));_0x3a8ec2[_0xbf80('0x4c')]=_0x3a8ec2[_0xbf80('0x4c')][_0xbf80('0x5d')]?_0x3a8ec2[_0xbf80('0x4c')]:_0xeaf54d[_0xbf80('0x48')];if(!_0x4a7e09[_0xbf80('0x49')][_0xbf80('0x6b')](_0xbf80('0x4e'))){_0x3a8ec2['limit']=qs[_0xbf80('0x32')](_0x4a7e09['query'][_0xbf80('0x32')]);_0x3a8ec2['offset']=qs['offset'](_0x4a7e09['query']['offset']);}_0x3a8ec2[_0xbf80('0x4f')]=qs[_0xbf80('0x6c')](_0x4a7e09[_0xbf80('0x49')][_0xbf80('0x6c')]);_0x3a8ec2[_0xbf80('0x52')]=qs['filters'](_[_0xbf80('0x50')](_0x4a7e09[_0xbf80('0x49')],_0xeaf54d['filters']));_0x3a8ec2[_0xbf80('0x52')]['OpenchannelAccountId']=_0x48ec1e['id'];if(_0x4a7e09[_0xbf80('0x49')][_0xbf80('0x51')]){_0x3a8ec2[_0xbf80('0x52')]=_[_0xbf80('0x53')](_0x3a8ec2['where'],{'$or':_[_0xbf80('0x43')](_0x3a8ec2[_0xbf80('0x4c')],function(_0x3afbc4){var _0x3621d7={};_0x3621d7[_0x3afbc4]={'$like':'%'+_0x4a7e09[_0xbf80('0x49')][_0xbf80('0x51')]+'%'};return _0x3621d7;})});}_0x3a8ec2=_[_0xbf80('0x53')]({},_0x3a8ec2,_0x4a7e09[_0xbf80('0x55')]);return db[_0xbf80('0x6e')][_0xbf80('0x33')]({'where':_0x3a8ec2[_0xbf80('0x52')]})[_0xbf80('0x22')](function(_0x4a1c36){_0xe27869['count']=_0x4a1c36;if(_0x4a7e09['query'][_0xbf80('0x56')]){_0x3a8ec2['include']=[{'all':!![]}];}return db[_0xbf80('0x6e')][_0xbf80('0x58')](_0x3a8ec2);})[_0xbf80('0x22')](function(_0x5b011b){_0xe27869['rows']=_0x5b011b;return _0xe27869;});}})[_0xbf80('0x22')](respondWithFilteredResult(_0x1341bd,_0x3a8ec2))['catch'](handleError(_0x1341bd,null));};exports[_0xbf80('0x6f')]=function(_0x2918be,_0x13ff4d,_0x2d96f1){return db['OpenchannelAccount'][_0xbf80('0x5e')]({'where':{'id':_0x2918be[_0xbf80('0x5b')]['id']}})[_0xbf80('0x22')](handleEntityNotFound(_0x13ff4d,null))[_0xbf80('0x22')](function(_0x2c4004){if(_0x2c4004){return _0x2c4004['removeAnswers'](_0x2918be['query'][_0xbf80('0x70')]);}})[_0xbf80('0x22')](respondWithStatusCode(_0x13ff4d,null))[_0xbf80('0x2b')](handleError(_0x13ff4d,null));};exports[_0xbf80('0x71')]=function(_0x283ff0,_0x461f20,_0x4c8410){var _0x361447={'body':_0x283ff0[_0xbf80('0x60')],'channel':_0xbf80('0x72')};var _0x5f97ef=[];var _0xcb7c4c=[];var _0x3f886a={};var _0x4426e9=![];return db['CmContact'][_0xbf80('0x66')]()[_0xbf80('0x22')](function(_0x37e0e1){if(!_0x37e0e1){throw new db['Sequelize'][(_0xbf80('0x73'))](_0xbf80('0x74'));}_0x5f97ef=_[_0xbf80('0x75')](_['keys'](_0x37e0e1),[_0xbf80('0x76'),_0xbf80('0x77')]);_0xcb7c4c=_['difference'](_[_0xbf80('0x5c')](_0x37e0e1),['createdAt',_0xbf80('0x77'),_0xbf80('0x78'),'ListId']);if(_0x283ff0[_0xbf80('0x60')]['id']){delete _0x283ff0[_0xbf80('0x60')]['id'];}if(_[_0xbf80('0x79')](_0x283ff0['body'][_0xbf80('0x7a')])){throw new db['Sequelize'][(_0xbf80('0x73'))](_0xbf80('0x7b'));}if(_[_0xbf80('0x79')](_0x283ff0['body'][_0xbf80('0x60')])||_0x283ff0['body'][_0xbf80('0x60')]===''){throw new db[(_0xbf80('0x7c'))][(_0xbf80('0x73'))]('body\x20is\x20mandatory\x20and\x20not\x20empty');}if(_[_0xbf80('0x79')](_0x283ff0['body'][_0xbf80('0x7d')])){throw new db[(_0xbf80('0x7c'))][(_0xbf80('0x73'))]('mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0xcb7c4c);}if(!_['includes'](_0xcb7c4c,_0x283ff0[_0xbf80('0x60')]['mapKey'])){throw new db[(_0xbf80('0x7c'))]['ValidationError'](_0xbf80('0x7e')+_0xcb7c4c);}_0x3f886a[_0x283ff0[_0xbf80('0x60')][_0xbf80('0x7d')]]=_0x283ff0[_0xbf80('0x60')][_0xbf80('0x7a')];})[_0xbf80('0x22')](function(){return db['OpenchannelAccount'][_0xbf80('0x5e')]({'where':{'id':_0x283ff0['params']['id']},'include':[{'model':db['CmList'],'as':_0xbf80('0x7f'),'include':[{'model':db[_0xbf80('0x80')],'as':'Contacts','where':_0x3f886a,'limit':0x1,'order':[[_0xbf80('0x77'),_0xbf80('0x81')]]}]},{'model':db['OpenchannelApplication'],'as':_0xbf80('0x82')}]});})[_0xbf80('0x22')](handleEntityNotFound(_0x461f20,null))[_0xbf80('0x22')](function(_0x326a77){if(_0x326a77&&_0x326a77[_0xbf80('0x7f')]){_0x361447['account']=_0x326a77;_0x361447[_0xbf80('0x83')]=_0x326a77[_0xbf80('0x82')];_0x361447[_0xbf80('0x84')]=_0x326a77[_0xbf80('0x7f')];_0x361447[_0xbf80('0x83')]=_['orderBy'](_0x361447[_0xbf80('0x83')],[_0xbf80('0x85')],[_0xbf80('0x86')]);if(_0x361447[_0xbf80('0x87')]['Applications']){delete _0x361447[_0xbf80('0x87')][_0xbf80('0x82')];}if(_0x361447['account'][_0xbf80('0x7f')]&&_0x361447[_0xbf80('0x87')]['List'][_0xbf80('0x88')][_0xbf80('0x5d')]){return _0x361447[_0xbf80('0x87')][_0xbf80('0x7f')][_0xbf80('0x88')][0x0];}var _0x662b66=_['defaults'](_0x283ff0[_0xbf80('0x60')],{'firstName':_0x283ff0['body']['from'],'ListId':_0x326a77['ListId']});_0x662b66[_0x283ff0[_0xbf80('0x60')][_0xbf80('0x7d')]]=_0x283ff0[_0xbf80('0x60')][_0xbf80('0x7a')];return db['CmContact'][_0xbf80('0x5f')](_0x662b66,{'fields':_0x5f97ef,'raw':!![]});}})[_0xbf80('0x22')](handleEntityNotFound(_0x461f20,null))[_0xbf80('0x22')](function(_0x276eef){_0x361447['contact']=_0x276eef;if(_0x276eef){var _0x142c4a={'ContactId':_0x276eef['id'],'OpenchannelAccountId':_0x283ff0[_0xbf80('0x5b')]['id'],'from':(_0x276eef['firstName']||'')+'\x20'+(_0x276eef[_0xbf80('0x89')]||'')};var _0x545da8={'OpenchannelAccountId':_0x283ff0[_0xbf80('0x5b')]['id'],'closed':![]};if(_0x283ff0[_0xbf80('0x60')]['threadId']){_0x545da8[_0xbf80('0x8a')]=_0x283ff0[_0xbf80('0x60')][_0xbf80('0x8a')];return db[_0xbf80('0x8b')][_0xbf80('0x5e')]({'where':_0x545da8})['then'](function(_0x2bb6b4){if(_0x2bb6b4){return[_0x2bb6b4,![]];}_0x142c4a['threadId']=_0x283ff0[_0xbf80('0x60')][_0xbf80('0x8a')];_0x142c4a[_0xbf80('0x8c')]=_0x283ff0[_0xbf80('0x60')]['externalUrl'];return db[_0xbf80('0x8b')]['create'](_0x142c4a)['then'](function(_0x1ab186){return[_0x1ab186,!![]];});});}else{_0x545da8['threadId']=null;}_0x545da8['ContactId']=_0x276eef['id'];return db[_0xbf80('0x8b')][_0xbf80('0x5e')]({'where':_0x545da8})[_0xbf80('0x22')](function(_0x1645f0){if(_0x1645f0){return[_0x1645f0,![]];}return db[_0xbf80('0x8b')]['create'](_0x142c4a)[_0xbf80('0x22')](function(_0x399926){return[_0x399926,!![]];});});}})['spread'](function(_0x4e948d,_0x437c14){if(_0x4e948d){_0x4426e9=_0x437c14;if(!_0x437c14){var _0x138ede={'from':(_0x361447['contact']['firstName']||'')+'\x20'+(_0x361447[_0xbf80('0x8d')][_0xbf80('0x89')]||'')};if(_0x283ff0[_0xbf80('0x60')][_0xbf80('0x8a')]&&_0x283ff0[_0xbf80('0x60')][_0xbf80('0x8e')]&&_0x283ff0[_0xbf80('0x60')]['threadId']!=_0x283ff0[_0xbf80('0x60')]['messageId']){_0x138ede[_0xbf80('0x8a')]=_0x283ff0[_0xbf80('0x60')]['messageId'];}return _0x4e948d[_0xbf80('0x38')](_0x138ede);}else{return _0x4e948d;}}})[_0xbf80('0x22')](function(_0x145587){_0x361447[_0xbf80('0x8f')]=_0x145587[_0xbf80('0x39')]({'plain':!![]});_0x361447[_0xbf80('0x8f')]['created']=_0x4426e9;if(_0x361447[_0xbf80('0x8f')][_0xbf80('0x90')]){if(_0x361447[_0xbf80('0x87')][_0xbf80('0x91')]){_0x361447[_0xbf80('0x83')][_0xbf80('0x92')]({'id':0x0,'priority':_0x361447[_0xbf80('0x83')][_0xbf80('0x5d')]+0x1,'app':_0xbf80('0x93'),'appdata':'unmanaged','interval':'*,*,*,*'});}}return db[_0xbf80('0x94')][_0xbf80('0x5f')]({'body':_0x283ff0[_0xbf80('0x60')][_0xbf80('0x60')],'OpenchannelAccountId':_0x283ff0[_0xbf80('0x5b')]['id'],'OpenchannelInteractionId':_0x145587['id'],'direction':'in','ContactId':_0x361447['contact']['id'],'AttachmentId':_0x283ff0[_0xbf80('0x60')]['AttachmentId']});})[_0xbf80('0x22')](function(_0x21b8a9){_0x361447[_0xbf80('0x2a')]=_0x21b8a9;if(_0x361447[_0xbf80('0x8f')]['UserId']){return db[_0xbf80('0x95')]['find']({'attributes':['id',_0xbf80('0x3e')],'where':{'id':_0x361447[_0xbf80('0x8f')][_0xbf80('0x96')]}})[_0xbf80('0x22')](function(_0x4e3dc0){if(_0x4e3dc0){_0x361447[_0xbf80('0x83')][_0xbf80('0x97')]({'id':0x0,'priority':0x0,'app':_0xbf80('0x98'),'appdata':_0x4e3dc0['name']+','+(_0x361447[_0xbf80('0x87')][_0xbf80('0x99')]||0xa),'interval':_0xbf80('0x9a')});_0x361447['forcedOwnership']=![];}return respondWithRpcPromise(_0xbf80('0x9b'),_0xbf80('0x9c'),_0x361447);});}return respondWithRpcPromise('Start',_0xbf80('0x9c'),_0x361447);})[_0xbf80('0x22')](function(_0xf0ff3b){respondWithRpcPromise(_0xbf80('0x9d'),'EventManager',{'event':_0xbf80('0x71'),'message':_0xf0ff3b},client9002);return _0xf0ff3b;})[_0xbf80('0x22')](respondWithResult(_0x461f20,null))['catch'](handleError(_0x461f20,null));};exports[_0xbf80('0x9e')]=function(_0x1ba580,_0x43d48a){var _0x3994ac=_0x1ba580['params']['id'];var _0x3b088c=_0x1ba580[_0xbf80('0x60')];var _0x8852de=0xc8;var _0x35c2f9=null;return db[_0xbf80('0x9f')][_0xbf80('0xa0')]({'isolationLevel':db[_0xbf80('0x9f')][_0xbf80('0xa1')][_0xbf80('0xa2')][_0xbf80('0xa3')]},function(_0x1ea80a){return db[_0xbf80('0x44')][_0xbf80('0xa4')]({'where':{'id':_0x3994ac},'transaction':_0x1ea80a})[_0xbf80('0x22')](function(_0x106e5f){if(_0x106e5f){return db['OpenchannelApplication'][_0xbf80('0x3c')]({'where':{'OpenchannelAccountId':_0x3994ac},'transaction':_0x1ea80a})[_0xbf80('0x22')](function(){var _0x3bdc5a=_[_0xbf80('0x43')](_0x3b088c,function(_0x302e54){_0x302e54[_0xbf80('0x68')]=_0x3994ac;return _0x302e54;});return db[_0xbf80('0xa5')][_0xbf80('0xa6')](_0x3bdc5a,{'transaction':_0x1ea80a});});}else{_0x8852de=0x194;_0x35c2f9=[];}});})[_0xbf80('0x22')](function(){if(_0x8852de!==0x194){return db['OpenchannelApplication'][_0xbf80('0xa7')]({'where':{'OpenchannelAccountId':_0x3994ac},'order':_0xbf80('0x85')})['then'](function(_0x6decb5){_0x35c2f9=_0x6decb5;});}})['catch'](function(_0x52ed64){_0x8852de=0x1f4;logger[_0xbf80('0x27')](_0x52ed64[_0xbf80('0x3d')]);if(_0x52ed64['name']){delete _0x52ed64[_0xbf80('0x3e')];}_0x35c2f9=_0x52ed64;})[_0xbf80('0xa8')](function(){if(_0x35c2f9===null){_0x43d48a['sendStatus'](_0x8852de);}else{if(_0x8852de===0x1f4){_0x43d48a[_0xbf80('0x2d')](_0x8852de)[_0xbf80('0x3f')](_0x35c2f9);}else{_0x43d48a['status'](_0x8852de)[_0xbf80('0x2f')](_0x35c2f9);}}});};exports['getApplications']=function(_0x3f25b3,_0x2d10e2,_0x366ece){var _0x7a8210={};var _0x562174={};var _0x12793b;var _0xf90611;return db[_0xbf80('0x44')]['findOne']({'where':{'id':_0x3f25b3['params']['id']}})[_0xbf80('0x22')](handleEntityNotFound(_0x2d10e2,null))[_0xbf80('0x22')](function(_0x2a9f20){if(_0x2a9f20){_0x12793b=_0x2a9f20;_0x562174[_0xbf80('0x48')]=_['keys'](db[_0xbf80('0xa5')][_0xbf80('0x45')]);_0x562174[_0xbf80('0x49')]=_[_0xbf80('0x5c')](_0x3f25b3[_0xbf80('0x49')]);_0x562174['filters']=_[_0xbf80('0x4b')](_0x562174['model'],_0x562174[_0xbf80('0x49')]);_0x7a8210[_0xbf80('0x4c')]=_['intersection'](_0x562174[_0xbf80('0x48')],qs[_0xbf80('0x4d')](_0x3f25b3[_0xbf80('0x49')][_0xbf80('0x4d')]));_0x7a8210['attributes']=_0x7a8210['attributes'][_0xbf80('0x5d')]?_0x7a8210[_0xbf80('0x4c')]:_0x562174[_0xbf80('0x48')];_0x7a8210[_0xbf80('0x4f')]=qs[_0xbf80('0x6c')](_0x3f25b3[_0xbf80('0x49')][_0xbf80('0x6c')]);_0x7a8210['where']=qs[_0xbf80('0x4a')](_[_0xbf80('0x50')](_0x3f25b3[_0xbf80('0x49')],_0x562174[_0xbf80('0x4a')]));if(_0x3f25b3[_0xbf80('0x49')]['filter']){_0x7a8210['where']=_[_0xbf80('0x53')](_0x7a8210[_0xbf80('0x52')],{'$or':_[_0xbf80('0x43')](_0x7a8210[_0xbf80('0x4c')],function(_0x549bd1){var _0x5118ba={};_0x5118ba[_0x549bd1]={'$like':'%'+_0x3f25b3[_0xbf80('0x49')]['filter']+'%'};return _0x5118ba;})});}_0x7a8210=_[_0xbf80('0x53')]({},_0x7a8210,_0x3f25b3[_0xbf80('0x55')]);return _0x12793b[_0xbf80('0xa9')](_0x7a8210);}})[_0xbf80('0x22')](function(_0x5b023a){if(_0x5b023a){_0xf90611=_0x5b023a['length'];if(!_0x3f25b3[_0xbf80('0x49')]['hasOwnProperty']('nolimit')){_0x7a8210[_0xbf80('0x32')]=qs[_0xbf80('0x32')](_0x3f25b3[_0xbf80('0x49')][_0xbf80('0x32')]);_0x7a8210[_0xbf80('0x30')]=qs[_0xbf80('0x30')](_0x3f25b3[_0xbf80('0x49')][_0xbf80('0x30')]);}return _0x12793b[_0xbf80('0xa9')](_0x7a8210);}})[_0xbf80('0x22')](function(_0x39547e){if(_0x39547e){return _0x39547e?{'count':_0xf90611,'rows':_0x39547e}:null;}})['then'](respondWithResult(_0x2d10e2,null))[_0xbf80('0x2b')](handleError(_0x2d10e2,null));};exports[_0xbf80('0xaa')]=function(_0x35c4da,_0xdd9ee9,_0x588f94){var _0xdda10a={'raw':![],'where':{}};var _0x5f5cbc={};var _0x4c3860={'count':0x0,'rows':[]};return db[_0xbf80('0x44')][_0xbf80('0xa4')]({'where':{'id':_0x35c4da['params']['id']}})[_0xbf80('0x22')](handleEntityNotFound(_0xdd9ee9,null))['then'](function(_0x31f22f){if(_0x31f22f){_0x5f5cbc[_0xbf80('0x48')]=_[_0xbf80('0x5c')](db[_0xbf80('0x8b')][_0xbf80('0x45')]);_0x5f5cbc['query']=_[_0xbf80('0x5c')](_0x35c4da['query']);_0x5f5cbc[_0xbf80('0x4a')]=_['intersection'](_0x5f5cbc[_0xbf80('0x48')],_0x5f5cbc['query']);_0xdda10a[_0xbf80('0x4c')]=_[_0xbf80('0x4b')](_0x5f5cbc[_0xbf80('0x48')],qs['fields'](_0x35c4da[_0xbf80('0x49')]['fields']));_0xdda10a[_0xbf80('0x4c')]=_0xdda10a[_0xbf80('0x4c')][_0xbf80('0x5d')]?_0xdda10a[_0xbf80('0x4c')]:_0x5f5cbc[_0xbf80('0x48')];if(!_0x35c4da[_0xbf80('0x49')]['hasOwnProperty'](_0xbf80('0x4e'))){_0xdda10a[_0xbf80('0x32')]=qs['limit'](_0x35c4da[_0xbf80('0x49')]['limit']);_0xdda10a[_0xbf80('0x30')]=qs[_0xbf80('0x30')](_0x35c4da['query'][_0xbf80('0x30')]);}_0xdda10a[_0xbf80('0x4f')]=qs[_0xbf80('0x6c')](_0x35c4da[_0xbf80('0x49')][_0xbf80('0x6c')]);_0xdda10a[_0xbf80('0x52')]=qs[_0xbf80('0x4a')](_[_0xbf80('0x50')](_0x35c4da[_0xbf80('0x49')],_0x5f5cbc[_0xbf80('0x4a')]));_0xdda10a[_0xbf80('0x52')]['OpenchannelAccountId']=_0x31f22f['id'];if(_0x35c4da['query']['filter']){_0xdda10a[_0xbf80('0x52')]=_[_0xbf80('0x53')](_0xdda10a[_0xbf80('0x52')],{'$or':_[_0xbf80('0x43')](_0xdda10a[_0xbf80('0x4c')],function(_0x1596e3){var _0x2c4d8f={};_0x2c4d8f[_0x1596e3]={'$like':'%'+_0x35c4da[_0xbf80('0x49')]['filter']+'%'};return _0x2c4d8f;})});}_0xdda10a=_[_0xbf80('0x53')]({},_0xdda10a,_0x35c4da[_0xbf80('0x55')]);return db[_0xbf80('0x8b')][_0xbf80('0x33')]({'where':_0xdda10a[_0xbf80('0x52')]})['then'](function(_0x2bf83d){_0x4c3860[_0xbf80('0x33')]=_0x2bf83d;if(_0x35c4da[_0xbf80('0x49')][_0xbf80('0x56')]){_0xdda10a[_0xbf80('0x57')]=[{'model':db[_0xbf80('0x80')],'as':'Contact','required':![]},{'model':db[_0xbf80('0x95')],'as':'Owner','attributes':['name','fullname',_0xbf80('0xab')],'required':![]},{'model':db[_0xbf80('0xac')],'as':'Tags','attributes':['id',_0xbf80('0x3e'),_0xbf80('0xad')],'where':_0x35c4da[_0xbf80('0x49')][_0xbf80('0xae')]?{'id':_0x35c4da['query'][_0xbf80('0xae')]}:undefined,'required':_0x35c4da['query'][_0xbf80('0xae')]?!![]:![]}];}return db['OpenchannelInteraction'][_0xbf80('0x58')](_0xdda10a);})['then'](function(_0x583f28){_0x4c3860[_0xbf80('0x59')]=_0x583f28;return _0x4c3860;});}})[_0xbf80('0x22')](respondWithFilteredResult(_0xdd9ee9,_0xdda10a))[_0xbf80('0x2b')](handleError(_0xdd9ee9,null));};exports['addAgents']=function(_0x19f6f2,_0x253626,_0x53850f){return db[_0xbf80('0x44')][_0xbf80('0x5e')]({'where':{'id':_0x19f6f2['params']['id']}})[_0xbf80('0x22')](handleEntityNotFound(_0x253626,null))[_0xbf80('0x22')](function(_0x44d967){if(_0x44d967){return _0x44d967[_0xbf80('0xaf')](_0x19f6f2['body'][_0xbf80('0x70')],_[_0xbf80('0xb0')](_0x19f6f2['body'],[_0xbf80('0x70'),'id'])||{})[_0xbf80('0xb1')](function(_0x71d9de){for(var _0x31d6d6=0x0;_0x31d6d6<_0x19f6f2['body'][_0xbf80('0x70')][_0xbf80('0x5d')];_0x31d6d6+=0x1){socket[_0xbf80('0xb2')](_0xbf80('0xb3'),{'UserId':Number(_0x19f6f2[_0xbf80('0x60')][_0xbf80('0x70')][_0x31d6d6]),'OpenchannelAccountId':Number(_0x19f6f2['params']['id'])});}return _0x71d9de;});}})[_0xbf80('0x22')](respondWithResult(_0x253626,null))[_0xbf80('0x2b')](handleError(_0x253626,null));};exports['removeAgents']=function(_0x385717,_0x5e3f83,_0x3a7af1){return db[_0xbf80('0x44')]['find']({'where':{'id':_0x385717[_0xbf80('0x5b')]['id']}})[_0xbf80('0x22')](handleEntityNotFound(_0x5e3f83,null))[_0xbf80('0x22')](function(_0x454be3){if(_0x454be3){return _0x454be3[_0xbf80('0xb4')](_0x385717[_0xbf80('0x49')][_0xbf80('0x70')])['then'](function(){if(_[_0xbf80('0xb5')](_0x385717['query']['ids'])){for(var _0x1675fc=0x0;_0x1675fc<_0x385717['query'][_0xbf80('0x70')][_0xbf80('0x5d')];_0x1675fc+=0x1){socket[_0xbf80('0xb2')]('userOpenchannelAccount:remove',{'UserId':Number(_0x385717[_0xbf80('0x49')]['ids'][_0x1675fc]),'OpenchannelAccountId':Number(_0x385717[_0xbf80('0x5b')]['id'])});}}else{socket[_0xbf80('0xb2')](_0xbf80('0xb6'),{'UserId':Number(_0x385717[_0xbf80('0x49')][_0xbf80('0x70')]),'OpenchannelAccountId':Number(_0x385717[_0xbf80('0x5b')]['id'])});}});}})[_0xbf80('0x22')](respondWithStatusCode(_0x5e3f83,null))[_0xbf80('0x2b')](handleError(_0x5e3f83,null));};exports[_0xbf80('0xb7')]=function(_0x37d01c,_0x493dae,_0x2f15ce){var _0x469a5a={};var _0x30f7db={};var _0x366313;var _0x34bed3;return db[_0xbf80('0x44')][_0xbf80('0xa4')]({'where':{'id':_0x37d01c[_0xbf80('0x5b')]['id']}})[_0xbf80('0x22')](handleEntityNotFound(_0x493dae,null))[_0xbf80('0x22')](function(_0x289e50){if(_0x289e50){_0x366313=_0x289e50;_0x30f7db[_0xbf80('0x48')]=_[_0xbf80('0x5c')](db['User'][_0xbf80('0x45')]);_0x30f7db['query']=_[_0xbf80('0x5c')](_0x37d01c[_0xbf80('0x49')]);_0x30f7db[_0xbf80('0x4a')]=_[_0xbf80('0x4b')](_0x30f7db[_0xbf80('0x48')],_0x30f7db[_0xbf80('0x49')]);_0x469a5a['attributes']=_[_0xbf80('0x4b')](_0x30f7db[_0xbf80('0x48')],qs[_0xbf80('0x4d')](_0x37d01c[_0xbf80('0x49')][_0xbf80('0x4d')]));_0x469a5a[_0xbf80('0x4c')]=_0x469a5a[_0xbf80('0x4c')][_0xbf80('0x5d')]?_0x469a5a[_0xbf80('0x4c')]:_0x30f7db['model'];_0x469a5a[_0xbf80('0x4f')]=qs[_0xbf80('0x6c')](_0x37d01c[_0xbf80('0x49')]['sort']);_0x469a5a['where']=qs[_0xbf80('0x4a')](_[_0xbf80('0x50')](_0x37d01c['query'],_0x30f7db[_0xbf80('0x4a')]));if(_0x37d01c[_0xbf80('0x49')][_0xbf80('0x51')]){_0x469a5a['where']=_['merge'](_0x469a5a[_0xbf80('0x52')],{'$or':_[_0xbf80('0x43')](_0x469a5a[_0xbf80('0x4c')],function(_0x4cf5e9){var _0x4697f9={};_0x4697f9[_0x4cf5e9]={'$like':'%'+_0x37d01c[_0xbf80('0x49')][_0xbf80('0x51')]+'%'};return _0x4697f9;})});}_0x469a5a=_[_0xbf80('0x53')]({},_0x469a5a,_0x37d01c['options']);return _0x366313[_0xbf80('0xb7')](_0x469a5a);}})[_0xbf80('0x22')](function(_0x1b79d8){if(_0x1b79d8){_0x34bed3=_0x1b79d8[_0xbf80('0x5d')];if(!_0x37d01c[_0xbf80('0x49')][_0xbf80('0x6b')](_0xbf80('0x4e'))){_0x469a5a['limit']=qs[_0xbf80('0x32')](_0x37d01c[_0xbf80('0x49')][_0xbf80('0x32')]);_0x469a5a[_0xbf80('0x30')]=qs['offset'](_0x37d01c[_0xbf80('0x49')][_0xbf80('0x30')]);}return _0x366313[_0xbf80('0xb7')](_0x469a5a);}})['then'](function(_0x5de65d){if(_0x5de65d){return _0x5de65d?{'count':_0x34bed3,'rows':_0x5de65d}:null;}})[_0xbf80('0x22')](respondWithResult(_0x493dae,null))['catch'](handleError(_0x493dae,null));};exports['send']=function(_0x46a2ae,_0x5d2d1a,_0x5002f5){var _0x47f169,_0x8ae23b,_0x2aabea;if(_['isNil'](_0x46a2ae[_0xbf80('0x60')]['body'])||_0x46a2ae[_0xbf80('0x60')]['body']===''){throw new db[(_0xbf80('0x7c'))][(_0xbf80('0x73'))](_0xbf80('0xb8'));}if(_[_0xbf80('0x79')](_0x46a2ae[_0xbf80('0x60')]['to'])){}_0x47f169=_0x46a2ae[_0xbf80('0x60')]['to'];return db[_0xbf80('0x44')][_0xbf80('0xa4')]({'where':{'id':_0x46a2ae[_0xbf80('0x5b')]['id']}})[_0xbf80('0x22')](handleEntityNotFound(_0x5d2d1a,null))[_0xbf80('0x22')](function(_0x20307c){if(_0x20307c){return db[_0xbf80('0x44')][_0xbf80('0x5e')]({'where':{'id':_0x20307c['id']},'include':[{'model':db[_0xbf80('0xb9')],'as':_0xbf80('0x7f'),'include':[{'model':db[_0xbf80('0x80')],'as':_0xbf80('0x88'),'where':{[_0x20307c[_0xbf80('0x7d')]]:_0x47f169},'limit':0x1,'order':[['updatedAt',_0xbf80('0x81')]]}]}]})[_0xbf80('0x22')](handleEntityNotFound(_0x5d2d1a,null))[_0xbf80('0x22')](function(_0x57e809){if(_0x57e809&&_0x57e809[_0xbf80('0x7f')]){_0x8ae23b=_0x57e809[_0xbf80('0x39')]({'plain':!![]});if(_0x8ae23b['List']&&_0x8ae23b[_0xbf80('0x7f')]['Contacts']['length']){return _0x8ae23b[_0xbf80('0x7f')][_0xbf80('0x88')][0x0];}return db[_0xbf80('0x80')]['create'](_['defaults'](_0x46a2ae[_0xbf80('0x60')],{'firstName':_0x47f169,[_0x57e809['mapKey']]:_0x47f169,'phone':_0x47f169,'ListId':_0x8ae23b[_0xbf80('0xba')]}));}})['then'](handleEntityNotFound(_0x5d2d1a,null))[_0xbf80('0x22')](function(_0x5a382f){if(_0x5a382f){_0x2aabea=_0x5a382f;return db[_0xbf80('0x8b')]['find']({'where':{'ContactId':_0x2aabea['id'],'closed':![],'OpenchannelAccountId':_0x8ae23b['id']}})[_0xbf80('0x22')](function(_0x1225a0){if(_0x1225a0){return[_0x1225a0,![]];}return db[_0xbf80('0x8b')]['create']({'UserId':_0x46a2ae['user']['id'],'ContactId':_0x2aabea['id'],'OpenchannelAccountId':_0x8ae23b['id'],'lastMsgDirection':_0xbf80('0xbb'),'Messages':[_[_0xbf80('0x53')](_0x46a2ae[_0xbf80('0x60')],{'read':![],'body':_0x46a2ae[_0xbf80('0x60')]['body'],'OpenchannelAccountId':_0x8ae23b['id'],'UserId':_0x46a2ae['user']['id'],'ContactId':_0x2aabea['id']})]},{'include':[{'model':db[_0xbf80('0x94')],'as':'Messages'}]})[_0xbf80('0x22')](function(_0xf5363e){return[_0xf5363e,!![]];});});}})['spread'](function(_0x1a92aa,_0x3ec875){if(_0x3ec875){return _0x1a92aa;}return db[_0xbf80('0x94')][_0xbf80('0x5f')](_[_0xbf80('0x53')](_0x46a2ae['body'],{'read':![],'body':_0x46a2ae[_0xbf80('0x60')]['body'],'OpenchannelAccountId':_0x8ae23b['id'],'OpenchannelInteractionId':_0x1a92aa['id'],'UserId':_0x46a2ae[_0xbf80('0x61')]['id'],'ContactId':_0x2aabea['id']}))[_0xbf80('0x22')](function(_0x448a6b){_0x1a92aa[_0xbf80('0xbc')]['Messages']=[];_0x1a92aa['dataValues'][_0xbf80('0xbd')][_0xbf80('0x92')](_0x448a6b[_0xbf80('0xbc')]);return _0x1a92aa;});});}})[_0xbf80('0x22')](respondWithResult(_0x5d2d1a,null))[_0xbf80('0x2b')](handleError(_0x5d2d1a,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd64b=['exports','events','OpenchannelAccount','save','update','remove','hasOwnProperty','hook'];(function(_0x2dafbe,_0x5d04de){var _0x58a45a=function(_0x50ac96){while(--_0x50ac96){_0x2dafbe['push'](_0x2dafbe['shift']());}};_0x58a45a(++_0x5d04de);}(_0xd64b,0xc1));var _0xbd64=function(_0x281d23,_0x20d215){_0x281d23=_0x281d23-0x0;var _0x6b91db=_0xd64b[_0x281d23];return _0x6b91db;};'use strict';var EventEmitter=require(_0xbd64('0x0'));var OpenchannelAccount=require('../../mysqldb')['db'][_0xbd64('0x1')];var OpenchannelAccountEvents=new EventEmitter();OpenchannelAccountEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xbd64('0x2'),'afterUpdate':_0xbd64('0x3'),'afterDestroy':_0xbd64('0x4')};function emitEvent(_0x3f1f05){return function(_0x30fe29,_0x5458d8,_0x5446e4){OpenchannelAccountEvents['emit'](_0x3f1f05+':'+_0x30fe29['id'],_0x30fe29);OpenchannelAccountEvents['emit'](_0x3f1f05,_0x30fe29);_0x5446e4(null);};}for(var e in events){if(events[_0xbd64('0x5')](e)){var event=events[e];OpenchannelAccount[_0xbd64('0x6')](e,emitEvent(event));}}module[_0xbd64('0x7')]=OpenchannelAccountEvents;
\ No newline at end of file
+var _0xb43b=['events','../../mysqldb','setMaxListeners','save','update','hasOwnProperty','exports'];(function(_0x5ab1e5,_0x404a9d){var _0x45e9fd=function(_0x58f9f1){while(--_0x58f9f1){_0x5ab1e5['push'](_0x5ab1e5['shift']());}};_0x45e9fd(++_0x404a9d);}(_0xb43b,0x1b2));var _0xbb43=function(_0x3d0d7c,_0x1d681c){_0x3d0d7c=_0x3d0d7c-0x0;var _0x1de66a=_0xb43b[_0x3d0d7c];return _0x1de66a;};'use strict';var EventEmitter=require(_0xbb43('0x0'));var OpenchannelAccount=require(_0xbb43('0x1'))['db']['OpenchannelAccount'];var OpenchannelAccountEvents=new EventEmitter();OpenchannelAccountEvents[_0xbb43('0x2')](0x0);var events={'afterCreate':_0xbb43('0x3'),'afterUpdate':_0xbb43('0x4'),'afterDestroy':'remove'};function emitEvent(_0x131e9e){return function(_0x41aff6,_0x351254,_0x16432a){OpenchannelAccountEvents['emit'](_0x131e9e+':'+_0x41aff6['id'],_0x41aff6);OpenchannelAccountEvents['emit'](_0x131e9e,_0x41aff6);_0x16432a(null);};}for(var e in events){if(events[_0xbb43('0x5')](e)){var event=events[e];OpenchannelAccount['hook'](e,emitEvent(event));}}module[_0xbb43('0x6')]=OpenchannelAccountEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['../../config/environment','./openchannelAccount.attributes','exports','define','OpenchannelAccount','lodash','util','../../config/logger','bluebird','path','rimraf'];(function(_0x3c3560,_0x244435){var _0x1b6f74=function(_0x2855a5){while(--_0x2855a5){_0x3c3560['push'](_0x3c3560['shift']());}};_0x1b6f74(++_0x244435);}(_0xa9e0,0x123));var _0x0a9e=function(_0xbb091,_0x3fe7ee){_0xbb091=_0xbb091-0x0;var _0x467a04=_0xa9e0[_0xbb091];return _0x467a04;};'use strict';var _=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var logger=require(_0x0a9e('0x2'))('api');var moment=require('moment');var BPromise=require(_0x0a9e('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x0a9e('0x4'));var rimraf=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var attributes=require(_0x0a9e('0x7'));module[_0x0a9e('0x8')]=function(_0x57b080,_0x219af0){return _0x57b080[_0x0a9e('0x9')](_0x0a9e('0xa'),attributes,{'tableName':'openchannel_accounts','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xa9e0=['../../config/environment','./openchannelAccount.attributes','exports','define','OpenchannelAccount','lodash','util','../../config/logger','bluebird','path','rimraf'];(function(_0x319802,_0x52e115){var _0x471879=function(_0x544223){while(--_0x544223){_0x319802['push'](_0x319802['shift']());}};_0x471879(++_0x52e115);}(_0xa9e0,0x123));var _0x0a9e=function(_0x49ca18,_0x5e6d05){_0x49ca18=_0x49ca18-0x0;var _0x145d54=_0xa9e0[_0x49ca18];return _0x145d54;};'use strict';var _=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var logger=require(_0x0a9e('0x2'))('api');var moment=require('moment');var BPromise=require(_0x0a9e('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x0a9e('0x4'));var rimraf=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var attributes=require(_0x0a9e('0x7'));module[_0x0a9e('0x8')]=function(_0x57b080,_0x219af0){return _0x57b080[_0x0a9e('0x9')](_0x0a9e('0xa'),attributes,{'tableName':'openchannel_accounts','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x657b=['rpc','../../config/environment','jayson/promise','client','http','defaults','localhost','socket.io-emitter','redis','register','request','info','OpenchannelAccount,\x20%s,\x20%s','request\x20sent','OpenchannelAccount,\x20%s,\x20%s,\x20%s','error','code','message','result','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils'];(function(_0x2a471b,_0x3ec5e7){var _0x2bf086=function(_0x4e62c8){while(--_0x4e62c8){_0x2a471b['push'](_0x2a471b['shift']());}};_0x2bf086(++_0x3ec5e7);}(_0x657b,0x131));var _0xb657=function(_0x53d183,_0x5d7858){_0x53d183=_0x53d183-0x0;var _0x1bc014=_0x657b[_0x53d183];return _0x1bc014;};'use strict';var _=require(_0xb657('0x0'));var util=require(_0xb657('0x1'));var moment=require(_0xb657('0x2'));var BPromise=require(_0xb657('0x3'));var rs=require(_0xb657('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xb657('0x5'))['db'];var utils=require(_0xb657('0x6'));var logger=require('../../config/logger')(_0xb657('0x7'));var config=require(_0xb657('0x8'));var jayson=require(_0xb657('0x9'));var client=jayson[_0xb657('0xa')][_0xb657('0xb')]({'port':0x232a});config['redis']=_[_0xb657('0xc')](config['redis'],{'host':_0xb657('0xd'),'port':0x18eb});var socket=require(_0xb657('0xe'))(new Redis(config[_0xb657('0xf')]));require('./openchannelAccount.socket')[_0xb657('0x10')](socket);function respondWithRpcPromise(_0x490220,_0x3c9e00,_0x569983){return new BPromise(function(_0x2a3189,_0x19398c){return client[_0xb657('0x11')](_0x490220,_0x569983)['then'](function(_0x12aaa7){logger[_0xb657('0x12')](_0xb657('0x13'),_0x3c9e00,_0xb657('0x14'));logger['debug'](_0xb657('0x15'),_0x3c9e00,_0xb657('0x14'),JSON['stringify'](_0x12aaa7));if(_0x12aaa7[_0xb657('0x16')]){if(_0x12aaa7[_0xb657('0x16')][_0xb657('0x17')]===0x1f4){logger[_0xb657('0x16')]('OpenchannelAccount,\x20%s,\x20%s',_0x3c9e00,_0x12aaa7[_0xb657('0x16')][_0xb657('0x18')]);return _0x19398c(_0x12aaa7['error']['message']);}logger[_0xb657('0x16')](_0xb657('0x13'),_0x3c9e00,_0x12aaa7[_0xb657('0x16')][_0xb657('0x18')]);return _0x2a3189(_0x12aaa7[_0xb657('0x16')][_0xb657('0x18')]);}else{logger[_0xb657('0x12')](_0xb657('0x13'),_0x3c9e00,_0xb657('0x14'));_0x2a3189(_0x12aaa7[_0xb657('0x19')][_0xb657('0x18')]);}})['catch'](function(_0x8c156f){logger[_0xb657('0x16')](_0xb657('0x13'),_0x3c9e00,_0x8c156f);_0x19398c(_0x8c156f);});});}
\ No newline at end of file
+var _0xbdb7=['http','redis','localhost','socket.io-emitter','register','request','then','request\x20sent','debug','error','code','message','OpenchannelAccount,\x20%s,\x20%s','info','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment'];(function(_0x11a372,_0x26d3da){var _0x2943be=function(_0x1f3040){while(--_0x1f3040){_0x11a372['push'](_0x11a372['shift']());}};_0x2943be(++_0x26d3da);}(_0xbdb7,0x12e));var _0x7bdb=function(_0xe56790,_0x5f304d){_0xe56790=_0xe56790-0x0;var _0x145cf7=_0xbdb7[_0xe56790];return _0x145cf7;};'use strict';var _=require(_0x7bdb('0x0'));var util=require(_0x7bdb('0x1'));var moment=require(_0x7bdb('0x2'));var BPromise=require(_0x7bdb('0x3'));var rs=require(_0x7bdb('0x4'));var fs=require('fs');var Redis=require(_0x7bdb('0x5'));var db=require(_0x7bdb('0x6'))['db'];var utils=require(_0x7bdb('0x7'));var logger=require(_0x7bdb('0x8'))('rpc');var config=require(_0x7bdb('0x9'));var jayson=require('jayson/promise');var client=jayson['client'][_0x7bdb('0xa')]({'port':0x232a});config[_0x7bdb('0xb')]=_['defaults'](config['redis'],{'host':_0x7bdb('0xc'),'port':0x18eb});var socket=require(_0x7bdb('0xd'))(new Redis(config['redis']));require('./openchannelAccount.socket')[_0x7bdb('0xe')](socket);function respondWithRpcPromise(_0x1a6b61,_0x2cb569,_0x2c328e){return new BPromise(function(_0x27297d,_0x144ff7){return client[_0x7bdb('0xf')](_0x1a6b61,_0x2c328e)[_0x7bdb('0x10')](function(_0x5462da){logger['info']('OpenchannelAccount,\x20%s,\x20%s',_0x2cb569,_0x7bdb('0x11'));logger[_0x7bdb('0x12')]('OpenchannelAccount,\x20%s,\x20%s,\x20%s',_0x2cb569,_0x7bdb('0x11'),JSON['stringify'](_0x5462da));if(_0x5462da['error']){if(_0x5462da[_0x7bdb('0x13')][_0x7bdb('0x14')]===0x1f4){logger['error']('OpenchannelAccount,\x20%s,\x20%s',_0x2cb569,_0x5462da['error'][_0x7bdb('0x15')]);return _0x144ff7(_0x5462da[_0x7bdb('0x13')][_0x7bdb('0x15')]);}logger[_0x7bdb('0x13')](_0x7bdb('0x16'),_0x2cb569,_0x5462da[_0x7bdb('0x13')][_0x7bdb('0x15')]);return _0x27297d(_0x5462da[_0x7bdb('0x13')]['message']);}else{logger[_0x7bdb('0x17')](_0x7bdb('0x16'),_0x2cb569,_0x7bdb('0x11'));_0x27297d(_0x5462da[_0x7bdb('0x18')]['message']);}})[_0x7bdb('0x19')](function(_0x23e9eb){logger['error'](_0x7bdb('0x16'),_0x2cb569,_0x23e9eb);_0x144ff7(_0x23e9eb);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x758e=['update','removeListener','register','length','openchannelAccount:','./openchannelAccount.events'];(function(_0x21549c,_0x6d64d1){var _0x426cbd=function(_0x323f5b){while(--_0x323f5b){_0x21549c['push'](_0x21549c['shift']());}};_0x426cbd(++_0x6d64d1);}(_0x758e,0x1af));var _0xe758=function(_0x1facfa,_0x1acf7d){_0x1facfa=_0x1facfa-0x0;var _0x9ec701=_0x758e[_0x1facfa];return _0x9ec701;};'use strict';var OpenchannelAccountEvents=require(_0xe758('0x0'));var events=['save','remove',_0xe758('0x1')];function createListener(_0x45a8eb,_0xbc060d){return function(_0x4b7512){_0xbc060d['emit'](_0x45a8eb,_0x4b7512);};}function removeListener(_0x31641f,_0x232ca8){return function(){OpenchannelAccountEvents[_0xe758('0x2')](_0x31641f,_0x232ca8);};}exports[_0xe758('0x3')]=function(_0x5a2226){for(var _0x2cdf89=0x0,_0x21e792=events[_0xe758('0x4')];_0x2cdf89<_0x21e792;_0x2cdf89++){var _0x5357cf=events[_0x2cdf89];var _0x4c03ba=createListener(_0xe758('0x5')+_0x5357cf,_0x5a2226);OpenchannelAccountEvents['on'](_0x5357cf,_0x4c03ba);}};
\ No newline at end of file
+var _0x9063=['register','openchannelAccount:','./openchannelAccount.events','save','remove','update','emit','removeListener'];(function(_0xa897e2,_0x1f8c53){var _0x4ba4f0=function(_0x13653e){while(--_0x13653e){_0xa897e2['push'](_0xa897e2['shift']());}};_0x4ba4f0(++_0x1f8c53);}(_0x9063,0x1a2));var _0x3906=function(_0x4d8ed9,_0x2ae284){_0x4d8ed9=_0x4d8ed9-0x0;var _0x1e2140=_0x9063[_0x4d8ed9];return _0x1e2140;};'use strict';var OpenchannelAccountEvents=require(_0x3906('0x0'));var events=[_0x3906('0x1'),_0x3906('0x2'),_0x3906('0x3')];function createListener(_0x1937cc,_0x203f56){return function(_0x30ced4){_0x203f56[_0x3906('0x4')](_0x1937cc,_0x30ced4);};}function removeListener(_0x5ed74f,_0x3583bd){return function(){OpenchannelAccountEvents[_0x3906('0x5')](_0x5ed74f,_0x3583bd);};}exports[_0x3906('0x6')]=function(_0x17c286){for(var _0x79d5ae=0x0,_0x522b71=events['length'];_0x79d5ae<_0x522b71;_0x79d5ae++){var _0x4a8864=events[_0x79d5ae];var _0x331b42=createListener(_0x3906('0x7')+_0x4a8864,_0x17c286);OpenchannelAccountEvents['on'](_0x4a8864,_0x331b42);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc86e=['fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/:id','show','post','update','delete','destroy','exports','multer','path','Router'];(function(_0x43a520,_0x101474){var _0x56d934=function(_0xba4144){while(--_0xba4144){_0x43a520['push'](_0x43a520['shift']());}};_0x56d934(++_0x101474);}(_0xc86e,0x173));var _0xec86=function(_0x16b488,_0xbf7ae1){_0x16b488=_0x16b488-0x0;var _0x4b8eee=_0xc86e[_0x16b488];return _0x4b8eee;};'use strict';var multer=require(_0xec86('0x0'));var util=require('util');var path=require(_0xec86('0x1'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0xec86('0x2')]();var fs_extra=require(_0xec86('0x3'));var auth=require(_0xec86('0x4'));var interaction=require(_0xec86('0x5'));var config=require(_0xec86('0x6'));var controller=require('./openchannelApplication.controller');router[_0xec86('0x7')]('/',auth[_0xec86('0x8')](),controller[_0xec86('0x9')]);router['get'](_0xec86('0xa'),auth[_0xec86('0x8')](),controller[_0xec86('0xb')]);router[_0xec86('0xc')]('/',auth[_0xec86('0x8')](),controller['create']);router['put'](_0xec86('0xa'),auth[_0xec86('0x8')](),controller[_0xec86('0xd')]);router[_0xec86('0xe')]('/:id',auth[_0xec86('0x8')](),controller[_0xec86('0xf')]);module[_0xec86('0x10')]=router;
\ No newline at end of file
+var _0x3f1c=['../../components/auth/service','../../config/environment','./openchannelApplication.controller','get','isAuthenticated','index','show','post','put','/:id','update','delete','destroy','exports','multer','util','path','Router','fs-extra'];(function(_0x4a7b46,_0x5e916c){var _0x436bee=function(_0x1c98ba){while(--_0x1c98ba){_0x4a7b46['push'](_0x4a7b46['shift']());}};_0x436bee(++_0x5e916c);}(_0x3f1c,0x177));var _0xc3f1=function(_0x201fab,_0x526f77){_0x201fab=_0x201fab-0x0;var _0x56e59f=_0x3f1c[_0x201fab];return _0x56e59f;};'use strict';var multer=require(_0xc3f1('0x0'));var util=require(_0xc3f1('0x1'));var path=require(_0xc3f1('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0xc3f1('0x3')]();var fs_extra=require(_0xc3f1('0x4'));var auth=require(_0xc3f1('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0xc3f1('0x6'));var controller=require(_0xc3f1('0x7'));router[_0xc3f1('0x8')]('/',auth[_0xc3f1('0x9')](),controller[_0xc3f1('0xa')]);router[_0xc3f1('0x8')]('/:id',auth[_0xc3f1('0x9')](),controller[_0xc3f1('0xb')]);router[_0xc3f1('0xc')]('/',auth[_0xc3f1('0x9')](),controller['create']);router[_0xc3f1('0xd')](_0xc3f1('0xe'),auth['isAuthenticated'](),controller[_0xc3f1('0xf')]);router[_0xc3f1('0x10')]('/:id',auth['isAuthenticated'](),controller[_0xc3f1('0x11')]);module[_0xc3f1('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9106=['noop','TEXT','*,*,*,*','sequelize','exports','INTEGER','STRING'];(function(_0x308b9d,_0x17388f){var _0x3d9756=function(_0x21226d){while(--_0x21226d){_0x308b9d['push'](_0x308b9d['shift']());}};_0x3d9756(++_0x17388f);}(_0x9106,0x176));var _0x6910=function(_0x118653,_0x50ef26){_0x118653=_0x118653-0x0;var _0xc11fa6=_0x9106[_0x118653];return _0xc11fa6;};'use strict';var Sequelize=require(_0x6910('0x0'));module[_0x6910('0x1')]={'priority':{'type':Sequelize[_0x6910('0x2')],'allowNull':![]},'app':{'type':Sequelize[_0x6910('0x3')],'allowNull':![],'defaultValue':_0x6910('0x4')},'appdata':{'type':Sequelize[_0x6910('0x5')]()},'description':{'type':Sequelize[_0x6910('0x3')]},'interval':{'type':Sequelize[_0x6910('0x3')],'defaultValue':_0x6910('0x6')}};
\ No newline at end of file
+var _0x9a15=['TEXT','*,*,*,*','sequelize','exports','INTEGER','STRING','noop'];(function(_0xbb14db,_0x3ee8c6){var _0x36bed7=function(_0x16c478){while(--_0x16c478){_0xbb14db['push'](_0xbb14db['shift']());}};_0x36bed7(++_0x3ee8c6);}(_0x9a15,0xb1));var _0x59a1=function(_0x55bf96,_0x7267a7){_0x55bf96=_0x55bf96-0x0;var _0x5092ef=_0x9a15[_0x55bf96];return _0x5092ef;};'use strict';var Sequelize=require(_0x59a1('0x0'));module[_0x59a1('0x1')]={'priority':{'type':Sequelize[_0x59a1('0x2')],'allowNull':![]},'app':{'type':Sequelize[_0x59a1('0x3')],'allowNull':![],'defaultValue':_0x59a1('0x4')},'appdata':{'type':Sequelize[_0x59a1('0x5')]()},'description':{'type':Sequelize['STRING']},'interval':{'type':Sequelize[_0x59a1('0x3')],'defaultValue':_0x59a1('0x6')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe02b=['api','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','reject','update','destroy','error','stack','name','index','map','OpenchannelApplication','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','fields','attributes','length','order','sort','where','pick','filter','merge','VIRTUAL','options','then','includeAll','findAll','rows','params','catch','create','body','find','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware'];(function(_0x19e35c,_0x29cd1e){var _0x3e1fe8=function(_0x17258b){while(--_0x17258b){_0x19e35c['push'](_0x19e35c['shift']());}};_0x3e1fe8(++_0x29cd1e);}(_0xe02b,0x1e4));var _0xbe02=function(_0x365d3d,_0x2c1c9e){_0x365d3d=_0x365d3d-0x0;var _0x2fa91a=_0xe02b[_0x365d3d];return _0x2fa91a;};'use strict';var emlformat=require(_0xbe02('0x0'));var rimraf=require(_0xbe02('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xbe02('0x2'));var rp=require(_0xbe02('0x3'));var moment=require(_0xbe02('0x4'));var BPromise=require(_0xbe02('0x5'));var Mustache=require('mustache');var util=require(_0xbe02('0x6'));var path=require(_0xbe02('0x7'));var sox=require(_0xbe02('0x8'));var csv=require(_0xbe02('0x9'));var ejs=require(_0xbe02('0xa'));var fs=require('fs');var fs_extra=require(_0xbe02('0xb'));var _=require('lodash');var squel=require(_0xbe02('0xc'));var crypto=require(_0xbe02('0xd'));var jsforce=require('jsforce');var deskjs=require(_0xbe02('0xe'));var toCsv=require(_0xbe02('0x9'));var querystring=require(_0xbe02('0xf'));var Papa=require('papaparse');var Redis=require(_0xbe02('0x10'));var authService=require(_0xbe02('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0xbe02('0x12'));var hardwareService=require(_0xbe02('0x13'));var logger=require('../../config/logger')(_0xbe02('0x14'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0xbe02('0x15'));var db=require(_0xbe02('0x16'))['db'];function respondWithStatusCode(_0x37df34,_0x3c475e){_0x3c475e=_0x3c475e||0xcc;return function(_0x45d378){if(_0x45d378){return _0x37df34[_0xbe02('0x17')](_0x3c475e);}return _0x37df34[_0xbe02('0x18')](_0x3c475e)[_0xbe02('0x19')]();};}function respondWithResult(_0x467354,_0xe678ad){_0xe678ad=_0xe678ad||0xc8;return function(_0x2d941d){if(_0x2d941d){return _0x467354[_0xbe02('0x18')](_0xe678ad)[_0xbe02('0x1a')](_0x2d941d);}};}function respondWithFilteredResult(_0x279b5b,_0x4afa1b){return function(_0x5302a2){if(_0x5302a2){var _0x24ac68=typeof _0x4afa1b[_0xbe02('0x1b')]===_0xbe02('0x1c')&&typeof _0x4afa1b['limit']===_0xbe02('0x1c');var _0x1d6ea5=_0x5302a2[_0xbe02('0x1d')];var _0x68db3d=_0x24ac68?0x0:_0x4afa1b[_0xbe02('0x1b')];var _0x20a975=_0x24ac68?_0x5302a2['count']:_0x4afa1b['offset']+_0x4afa1b[_0xbe02('0x1e')];var _0x587e6d;if(_0x20a975>=_0x1d6ea5){_0x20a975=_0x1d6ea5;_0x587e6d=0xc8;}else{_0x587e6d=0xce;}_0x279b5b[_0xbe02('0x18')](_0x587e6d);return _0x279b5b[_0xbe02('0x1f')](_0xbe02('0x20'),_0x68db3d+'-'+_0x20a975+'/'+_0x1d6ea5)['json'](_0x5302a2);}return null;};}function patchUpdates(_0x55c8d0){return function(_0x2ddb31){try{jsonpatch[_0xbe02('0x21')](_0x2ddb31,_0x55c8d0,!![]);}catch(_0x603042){return BPromise[_0xbe02('0x22')](_0x603042);}return _0x2ddb31['save']();};}function saveUpdates(_0x2b8e52,_0x1a2963){return function(_0x10aa64){if(_0x10aa64){return _0x10aa64[_0xbe02('0x23')](_0x2b8e52)['then'](function(_0x5e6df6){return _0x5e6df6;});}return null;};}function removeEntity(_0x16a99b,_0xdbf226){return function(_0x32b91b){if(_0x32b91b){return _0x32b91b[_0xbe02('0x24')]()['then'](function(){_0x16a99b['status'](0xcc)[_0xbe02('0x19')]();});}};}function handleEntityNotFound(_0x21cf8c,_0x3ebbe1){return function(_0x27951b){if(!_0x27951b){_0x21cf8c[_0xbe02('0x17')](0x194);}return _0x27951b;};}function handleError(_0x59703b,_0x13cba2){_0x13cba2=_0x13cba2||0x1f4;return function(_0x586192){logger[_0xbe02('0x25')](_0x586192[_0xbe02('0x26')]);if(_0x586192[_0xbe02('0x27')]){delete _0x586192[_0xbe02('0x27')];}_0x59703b[_0xbe02('0x18')](_0x13cba2)['send'](_0x586192);};}exports[_0xbe02('0x28')]=function(_0x558138,_0x129348){var _0x5e1799={},_0x5b2de7={},_0x580480={'count':0x0,'rows':[]};var _0x4f9ad8=_[_0xbe02('0x29')](db[_0xbe02('0x2a')][_0xbe02('0x2b')],function(_0x4dfee6){return{'name':_0x4dfee6[_0xbe02('0x2c')],'type':_0x4dfee6[_0xbe02('0x2d')][_0xbe02('0x2e')]};});_0x5b2de7[_0xbe02('0x2f')]=_['map'](_0x4f9ad8,_0xbe02('0x27'));_0x5b2de7['query']=_[_0xbe02('0x30')](_0x558138[_0xbe02('0x31')]);_0x5b2de7[_0xbe02('0x32')]=_[_0xbe02('0x33')](_0x5b2de7[_0xbe02('0x2f')],_0x5b2de7[_0xbe02('0x31')]);_0x5e1799['attributes']=_[_0xbe02('0x33')](_0x5b2de7['model'],qs['fields'](_0x558138[_0xbe02('0x31')][_0xbe02('0x34')]));_0x5e1799[_0xbe02('0x35')]=_0x5e1799[_0xbe02('0x35')][_0xbe02('0x36')]?_0x5e1799[_0xbe02('0x35')]:_0x5b2de7[_0xbe02('0x2f')];if(!_0x558138['query']['hasOwnProperty']('nolimit')){_0x5e1799[_0xbe02('0x1e')]=qs[_0xbe02('0x1e')](_0x558138[_0xbe02('0x31')][_0xbe02('0x1e')]);_0x5e1799[_0xbe02('0x1b')]=qs[_0xbe02('0x1b')](_0x558138[_0xbe02('0x31')]['offset']);}_0x5e1799[_0xbe02('0x37')]=qs['sort'](_0x558138[_0xbe02('0x31')][_0xbe02('0x38')]);_0x5e1799[_0xbe02('0x39')]=qs[_0xbe02('0x32')](_[_0xbe02('0x3a')](_0x558138[_0xbe02('0x31')],_0x5b2de7[_0xbe02('0x32')]),_0x4f9ad8);if(_0x558138['query'][_0xbe02('0x3b')]){_0x5e1799[_0xbe02('0x39')]=_[_0xbe02('0x3c')](_0x5e1799['where'],{'$or':_['map'](_0x4f9ad8,function(_0x1f8066){if(_0x1f8066['type']!==_0xbe02('0x3d')){var _0x568abe={};_0x568abe[_0x1f8066[_0xbe02('0x27')]]={'$like':'%'+_0x558138[_0xbe02('0x31')][_0xbe02('0x3b')]+'%'};return _0x568abe;}})});}_0x5e1799=_['merge']({},_0x5e1799,_0x558138[_0xbe02('0x3e')]);var _0xc4ce04={'where':_0x5e1799[_0xbe02('0x39')]};return db[_0xbe02('0x2a')][_0xbe02('0x1d')](_0xc4ce04)[_0xbe02('0x3f')](function(_0x49feb5){_0x580480[_0xbe02('0x1d')]=_0x49feb5;if(_0x558138[_0xbe02('0x31')][_0xbe02('0x40')]){_0x5e1799['include']=[{'all':!![]}];}return db[_0xbe02('0x2a')][_0xbe02('0x41')](_0x5e1799);})[_0xbe02('0x3f')](function(_0x3ca02a){_0x580480[_0xbe02('0x42')]=_0x3ca02a;return _0x580480;})[_0xbe02('0x3f')](respondWithFilteredResult(_0x129348,_0x5e1799))['catch'](handleError(_0x129348,null));};exports['show']=function(_0x48b89c,_0x21b190){var _0x376af8={'raw':!![],'where':{'id':_0x48b89c[_0xbe02('0x43')]['id']}},_0x3a58d4={};_0x3a58d4['model']=_[_0xbe02('0x30')](db[_0xbe02('0x2a')][_0xbe02('0x2b')]);_0x3a58d4[_0xbe02('0x31')]=_[_0xbe02('0x30')](_0x48b89c[_0xbe02('0x31')]);_0x3a58d4['filters']=_[_0xbe02('0x33')](_0x3a58d4[_0xbe02('0x2f')],_0x3a58d4[_0xbe02('0x31')]);_0x376af8[_0xbe02('0x35')]=_[_0xbe02('0x33')](_0x3a58d4[_0xbe02('0x2f')],qs['fields'](_0x48b89c[_0xbe02('0x31')][_0xbe02('0x34')]));_0x376af8[_0xbe02('0x35')]=_0x376af8[_0xbe02('0x35')][_0xbe02('0x36')]?_0x376af8[_0xbe02('0x35')]:_0x3a58d4[_0xbe02('0x2f')];if(_0x48b89c[_0xbe02('0x31')][_0xbe02('0x40')]){_0x376af8['include']=[{'all':!![]}];}_0x376af8=_[_0xbe02('0x3c')]({},_0x376af8,_0x48b89c[_0xbe02('0x3e')]);return db[_0xbe02('0x2a')]['find'](_0x376af8)[_0xbe02('0x3f')](handleEntityNotFound(_0x21b190,null))['then'](respondWithResult(_0x21b190,null))[_0xbe02('0x44')](handleError(_0x21b190,null));};exports[_0xbe02('0x45')]=function(_0x5d1978,_0x505814){return db[_0xbe02('0x2a')][_0xbe02('0x45')](_0x5d1978['body'],{})['then'](respondWithResult(_0x505814,0xc9))[_0xbe02('0x44')](handleError(_0x505814,null));};exports[_0xbe02('0x23')]=function(_0x24384c,_0x258fe4){if(_0x24384c[_0xbe02('0x46')]['id']){delete _0x24384c['body']['id'];}return db[_0xbe02('0x2a')][_0xbe02('0x47')]({'where':{'id':_0x24384c[_0xbe02('0x43')]['id']}})[_0xbe02('0x3f')](handleEntityNotFound(_0x258fe4,null))[_0xbe02('0x3f')](saveUpdates(_0x24384c[_0xbe02('0x46')],null))[_0xbe02('0x3f')](respondWithResult(_0x258fe4,null))[_0xbe02('0x44')](handleError(_0x258fe4,null));};exports[_0xbe02('0x24')]=function(_0x38d6bf,_0x5a4069){return db[_0xbe02('0x2a')][_0xbe02('0x47')]({'where':{'id':_0x38d6bf[_0xbe02('0x43')]['id']}})['then'](handleEntityNotFound(_0x5a4069,null))[_0xbe02('0x3f')](removeEntity(_0x5a4069,null))[_0xbe02('0x44')](handleError(_0x5a4069,null));};
\ No newline at end of file
+var _0xa9c3=['to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','undefined','limit','count','set','apply','reject','save','then','destroy','stack','send','map','OpenchannelApplication','fieldName','type','key','name','query','keys','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','include','findAll','rows','catch','params','rawAttributes','create','body','update','find','eml-format','fast-json-patch','bluebird','mustache','util','path','sox'];(function(_0x123886,_0x3cd468){var _0x5e12b4=function(_0x1e2b4b){while(--_0x1e2b4b){_0x123886['push'](_0x123886['shift']());}};_0x5e12b4(++_0x3cd468);}(_0xa9c3,0xd7));var _0x3a9c=function(_0x2070da,_0x45e586){_0x2070da=_0x2070da-0x0;var _0x4f9fe1=_0xa9c3[_0x2070da];return _0x4f9fe1;};'use strict';var emlformat=require(_0x3a9c('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x3a9c('0x1'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x3a9c('0x2'));var Mustache=require(_0x3a9c('0x3'));var util=require(_0x3a9c('0x4'));var path=require(_0x3a9c('0x5'));var sox=require(_0x3a9c('0x6'));var csv=require(_0x3a9c('0x7'));var ejs=require(_0x3a9c('0x8'));var fs=require('fs');var fs_extra=require(_0x3a9c('0x9'));var _=require(_0x3a9c('0xa'));var squel=require('squel');var crypto=require(_0x3a9c('0xb'));var jsforce=require(_0x3a9c('0xc'));var deskjs=require(_0x3a9c('0xd'));var toCsv=require(_0x3a9c('0x7'));var querystring=require(_0x3a9c('0xe'));var Papa=require(_0x3a9c('0xf'));var Redis=require(_0x3a9c('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x3a9c('0x11'));var as=require(_0x3a9c('0x12'));var hardwareService=require(_0x3a9c('0x13'));var logger=require(_0x3a9c('0x14'))(_0x3a9c('0x15'));var utils=require(_0x3a9c('0x16'));var config=require(_0x3a9c('0x17'));var licenseUtil=require(_0x3a9c('0x18'));var db=require(_0x3a9c('0x19'))['db'];function respondWithStatusCode(_0x22d697,_0x4af159){_0x4af159=_0x4af159||0xcc;return function(_0x22e026){if(_0x22e026){return _0x22d697[_0x3a9c('0x1a')](_0x4af159);}return _0x22d697['status'](_0x4af159)[_0x3a9c('0x1b')]();};}function respondWithResult(_0x403148,_0x22480a){_0x22480a=_0x22480a||0xc8;return function(_0x52162e){if(_0x52162e){return _0x403148[_0x3a9c('0x1c')](_0x22480a)[_0x3a9c('0x1d')](_0x52162e);}};}function respondWithFilteredResult(_0x39a96c,_0x2d9f9a){return function(_0x245930){if(_0x245930){var _0x4020dc=typeof _0x2d9f9a[_0x3a9c('0x1e')]===_0x3a9c('0x1f')&&typeof _0x2d9f9a[_0x3a9c('0x20')]==='undefined';var _0x2ac9fe=_0x245930[_0x3a9c('0x21')];var _0x12c162=_0x4020dc?0x0:_0x2d9f9a['offset'];var _0x217095=_0x4020dc?_0x245930[_0x3a9c('0x21')]:_0x2d9f9a[_0x3a9c('0x1e')]+_0x2d9f9a[_0x3a9c('0x20')];var _0x3170dc;if(_0x217095>=_0x2ac9fe){_0x217095=_0x2ac9fe;_0x3170dc=0xc8;}else{_0x3170dc=0xce;}_0x39a96c['status'](_0x3170dc);return _0x39a96c[_0x3a9c('0x22')]('Content-Range',_0x12c162+'-'+_0x217095+'/'+_0x2ac9fe)['json'](_0x245930);}return null;};}function patchUpdates(_0x555da7){return function(_0x353bb9){try{jsonpatch[_0x3a9c('0x23')](_0x353bb9,_0x555da7,!![]);}catch(_0x1a9696){return BPromise[_0x3a9c('0x24')](_0x1a9696);}return _0x353bb9[_0x3a9c('0x25')]();};}function saveUpdates(_0x4d59f8,_0x444911){return function(_0x10756e){if(_0x10756e){return _0x10756e['update'](_0x4d59f8)[_0x3a9c('0x26')](function(_0x53dc8c){return _0x53dc8c;});}return null;};}function removeEntity(_0x5b9683,_0x42bf3e){return function(_0x321930){if(_0x321930){return _0x321930[_0x3a9c('0x27')]()['then'](function(){_0x5b9683[_0x3a9c('0x1c')](0xcc)[_0x3a9c('0x1b')]();});}};}function handleEntityNotFound(_0xddc702,_0x39cc4f){return function(_0x22470e){if(!_0x22470e){_0xddc702['sendStatus'](0x194);}return _0x22470e;};}function handleError(_0x2cae13,_0x1ce4c9){_0x1ce4c9=_0x1ce4c9||0x1f4;return function(_0x64d585){logger['error'](_0x64d585[_0x3a9c('0x28')]);if(_0x64d585['name']){delete _0x64d585['name'];}_0x2cae13[_0x3a9c('0x1c')](_0x1ce4c9)[_0x3a9c('0x29')](_0x64d585);};}exports['index']=function(_0x1dc66c,_0x5c0be4){var _0xf20d3={},_0x23cee5={},_0x5ba0fa={'count':0x0,'rows':[]};var _0x5eef24=_[_0x3a9c('0x2a')](db[_0x3a9c('0x2b')]['rawAttributes'],function(_0x267226){return{'name':_0x267226[_0x3a9c('0x2c')],'type':_0x267226[_0x3a9c('0x2d')][_0x3a9c('0x2e')]};});_0x23cee5['model']=_[_0x3a9c('0x2a')](_0x5eef24,_0x3a9c('0x2f'));_0x23cee5[_0x3a9c('0x30')]=_[_0x3a9c('0x31')](_0x1dc66c[_0x3a9c('0x30')]);_0x23cee5['filters']=_[_0x3a9c('0x32')](_0x23cee5[_0x3a9c('0x33')],_0x23cee5['query']);_0xf20d3['attributes']=_['intersection'](_0x23cee5[_0x3a9c('0x33')],qs[_0x3a9c('0x34')](_0x1dc66c['query']['fields']));_0xf20d3[_0x3a9c('0x35')]=_0xf20d3[_0x3a9c('0x35')][_0x3a9c('0x36')]?_0xf20d3['attributes']:_0x23cee5[_0x3a9c('0x33')];if(!_0x1dc66c[_0x3a9c('0x30')][_0x3a9c('0x37')](_0x3a9c('0x38'))){_0xf20d3['limit']=qs['limit'](_0x1dc66c[_0x3a9c('0x30')]['limit']);_0xf20d3['offset']=qs[_0x3a9c('0x1e')](_0x1dc66c[_0x3a9c('0x30')][_0x3a9c('0x1e')]);}_0xf20d3[_0x3a9c('0x39')]=qs[_0x3a9c('0x3a')](_0x1dc66c['query'][_0x3a9c('0x3a')]);_0xf20d3[_0x3a9c('0x3b')]=qs[_0x3a9c('0x3c')](_[_0x3a9c('0x3d')](_0x1dc66c[_0x3a9c('0x30')],_0x23cee5['filters']),_0x5eef24);if(_0x1dc66c[_0x3a9c('0x30')][_0x3a9c('0x3e')]){_0xf20d3[_0x3a9c('0x3b')]=_['merge'](_0xf20d3[_0x3a9c('0x3b')],{'$or':_['map'](_0x5eef24,function(_0x20475b){if(_0x20475b[_0x3a9c('0x2d')]!=='VIRTUAL'){var _0x11fb5e={};_0x11fb5e[_0x20475b[_0x3a9c('0x2f')]]={'$like':'%'+_0x1dc66c[_0x3a9c('0x30')][_0x3a9c('0x3e')]+'%'};return _0x11fb5e;}})});}_0xf20d3=_[_0x3a9c('0x3f')]({},_0xf20d3,_0x1dc66c['options']);var _0x433829={'where':_0xf20d3[_0x3a9c('0x3b')]};return db[_0x3a9c('0x2b')]['count'](_0x433829)[_0x3a9c('0x26')](function(_0x556eff){_0x5ba0fa[_0x3a9c('0x21')]=_0x556eff;if(_0x1dc66c[_0x3a9c('0x30')]['includeAll']){_0xf20d3[_0x3a9c('0x40')]=[{'all':!![]}];}return db[_0x3a9c('0x2b')][_0x3a9c('0x41')](_0xf20d3);})[_0x3a9c('0x26')](function(_0x2513da){_0x5ba0fa[_0x3a9c('0x42')]=_0x2513da;return _0x5ba0fa;})[_0x3a9c('0x26')](respondWithFilteredResult(_0x5c0be4,_0xf20d3))[_0x3a9c('0x43')](handleError(_0x5c0be4,null));};exports['show']=function(_0x367c0d,_0x73d3b8){var _0x5f2a41={'raw':!![],'where':{'id':_0x367c0d[_0x3a9c('0x44')]['id']}},_0x32f761={};_0x32f761[_0x3a9c('0x33')]=_[_0x3a9c('0x31')](db[_0x3a9c('0x2b')][_0x3a9c('0x45')]);_0x32f761[_0x3a9c('0x30')]=_[_0x3a9c('0x31')](_0x367c0d[_0x3a9c('0x30')]);_0x32f761[_0x3a9c('0x3c')]=_[_0x3a9c('0x32')](_0x32f761[_0x3a9c('0x33')],_0x32f761[_0x3a9c('0x30')]);_0x5f2a41[_0x3a9c('0x35')]=_['intersection'](_0x32f761[_0x3a9c('0x33')],qs[_0x3a9c('0x34')](_0x367c0d[_0x3a9c('0x30')][_0x3a9c('0x34')]));_0x5f2a41[_0x3a9c('0x35')]=_0x5f2a41['attributes'][_0x3a9c('0x36')]?_0x5f2a41[_0x3a9c('0x35')]:_0x32f761[_0x3a9c('0x33')];if(_0x367c0d[_0x3a9c('0x30')]['includeAll']){_0x5f2a41['include']=[{'all':!![]}];}_0x5f2a41=_[_0x3a9c('0x3f')]({},_0x5f2a41,_0x367c0d['options']);return db[_0x3a9c('0x2b')]['find'](_0x5f2a41)['then'](handleEntityNotFound(_0x73d3b8,null))[_0x3a9c('0x26')](respondWithResult(_0x73d3b8,null))[_0x3a9c('0x43')](handleError(_0x73d3b8,null));};exports[_0x3a9c('0x46')]=function(_0xdb1942,_0x38d631){return db['OpenchannelApplication'][_0x3a9c('0x46')](_0xdb1942[_0x3a9c('0x47')],{})[_0x3a9c('0x26')](respondWithResult(_0x38d631,0xc9))[_0x3a9c('0x43')](handleError(_0x38d631,null));};exports[_0x3a9c('0x48')]=function(_0xfa499f,_0x159966){if(_0xfa499f[_0x3a9c('0x47')]['id']){delete _0xfa499f[_0x3a9c('0x47')]['id'];}return db[_0x3a9c('0x2b')][_0x3a9c('0x49')]({'where':{'id':_0xfa499f[_0x3a9c('0x44')]['id']}})[_0x3a9c('0x26')](handleEntityNotFound(_0x159966,null))[_0x3a9c('0x26')](saveUpdates(_0xfa499f['body'],null))[_0x3a9c('0x26')](respondWithResult(_0x159966,null))[_0x3a9c('0x43')](handleError(_0x159966,null));};exports[_0x3a9c('0x27')]=function(_0x42de50,_0x295db7){return db[_0x3a9c('0x2b')]['find']({'where':{'id':_0x42de50['params']['id']}})[_0x3a9c('0x26')](handleEntityNotFound(_0x295db7,null))[_0x3a9c('0x26')](removeEntity(_0x295db7,null))[_0x3a9c('0x43')](handleError(_0x295db7,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a05=['api','bluebird','path','rimraf','../../config/environment','./openchannelApplication.attributes','define','OpenchannelApplication','utf8mb4','utf8mb4_unicode_ci','lodash','../../config/logger'];(function(_0x38036c,_0x27b9be){var _0x347c50=function(_0x117a89){while(--_0x117a89){_0x38036c['push'](_0x38036c['shift']());}};_0x347c50(++_0x27b9be);}(_0x7a05,0x12a));var _0x57a0=function(_0x4a10c9,_0x272015){_0x4a10c9=_0x4a10c9-0x0;var _0x18649d=_0x7a05[_0x4a10c9];return _0x18649d;};'use strict';var _=require(_0x57a0('0x0'));var util=require('util');var logger=require(_0x57a0('0x1'))(_0x57a0('0x2'));var moment=require('moment');var BPromise=require(_0x57a0('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x57a0('0x4'));var rimraf=require(_0x57a0('0x5'));var config=require(_0x57a0('0x6'));var attributes=require(_0x57a0('0x7'));module['exports']=function(_0x28478d,_0x1d2beb){return _0x28478d[_0x57a0('0x8')](_0x57a0('0x9'),attributes,{'tableName':'openchannel_applications','paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x57a0('0xa'),'collate':_0x57a0('0xb')});};
\ No newline at end of file
+var _0x9779=['./openchannelApplication.attributes','exports','define','openchannel_applications','utf8mb4','lodash','util','../../config/logger','api','moment','bluebird','path','rimraf','../../config/environment'];(function(_0x28f1de,_0x355054){var _0x5b5dad=function(_0x399b72){while(--_0x399b72){_0x28f1de['push'](_0x28f1de['shift']());}};_0x5b5dad(++_0x355054);}(_0x9779,0x91));var _0x9977=function(_0x3b3f24,_0x485282){_0x3b3f24=_0x3b3f24-0x0;var _0x12df13=_0x9779[_0x3b3f24];return _0x12df13;};'use strict';var _=require(_0x9977('0x0'));var util=require(_0x9977('0x1'));var logger=require(_0x9977('0x2'))(_0x9977('0x3'));var moment=require(_0x9977('0x4'));var BPromise=require(_0x9977('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x9977('0x6'));var rimraf=require(_0x9977('0x7'));var config=require(_0x9977('0x8'));var attributes=require(_0x9977('0x9'));module[_0x9977('0xa')]=function(_0x46032f,_0x246364){return _0x46032f[_0x9977('0xb')]('OpenchannelApplication',attributes,{'tableName':_0x9977('0xc'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x9977('0xd'),'collate':'utf8mb4_unicode_ci'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x426e=['../../mysqldb','../../config/logger','../../config/environment','jayson/promise','client','http','request','then','info','request\x20sent','debug','OpenchannelApplication,\x20%s,\x20%s,\x20%s','stringify','error','message','OpenchannelApplication,\x20%s,\x20%s','catch','UpdateOpenchannelApplication','body','options','raw','where','attributes','limit','lodash','moment','bluebird','randomstring','ioredis'];(function(_0x25bca6,_0xe415ea){var _0x3f8d02=function(_0x3e581b){while(--_0x3e581b){_0x25bca6['push'](_0x25bca6['shift']());}};_0x3f8d02(++_0xe415ea);}(_0x426e,0xe3));var _0xe426=function(_0x28bc89,_0x1edcd4){_0x28bc89=_0x28bc89-0x0;var _0x31aaa2=_0x426e[_0x28bc89];return _0x31aaa2;};'use strict';var _=require(_0xe426('0x0'));var util=require('util');var moment=require(_0xe426('0x1'));var BPromise=require(_0xe426('0x2'));var rs=require(_0xe426('0x3'));var fs=require('fs');var Redis=require(_0xe426('0x4'));var db=require(_0xe426('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0xe426('0x6'))('rpc');var config=require(_0xe426('0x7'));var jayson=require(_0xe426('0x8'));var client=jayson[_0xe426('0x9')][_0xe426('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x106511,_0xd63a00,_0x29a5ba){return new BPromise(function(_0x502514,_0x2f0984){return client[_0xe426('0xb')](_0x106511,_0x29a5ba)[_0xe426('0xc')](function(_0x56d1f6){logger[_0xe426('0xd')]('OpenchannelApplication,\x20%s,\x20%s',_0xd63a00,_0xe426('0xe'));logger[_0xe426('0xf')](_0xe426('0x10'),_0xd63a00,_0xe426('0xe'),JSON[_0xe426('0x11')](_0x56d1f6));if(_0x56d1f6[_0xe426('0x12')]){if(_0x56d1f6[_0xe426('0x12')]['code']===0x1f4){logger[_0xe426('0x12')]('OpenchannelApplication,\x20%s,\x20%s',_0xd63a00,_0x56d1f6[_0xe426('0x12')][_0xe426('0x13')]);return _0x2f0984(_0x56d1f6[_0xe426('0x12')][_0xe426('0x13')]);}logger[_0xe426('0x12')](_0xe426('0x14'),_0xd63a00,_0x56d1f6[_0xe426('0x12')][_0xe426('0x13')]);return _0x502514(_0x56d1f6[_0xe426('0x12')][_0xe426('0x13')]);}else{logger[_0xe426('0xd')](_0xe426('0x14'),_0xd63a00,_0xe426('0xe'));_0x502514(_0x56d1f6['result'][_0xe426('0x13')]);}})[_0xe426('0x15')](function(_0x31456a){logger[_0xe426('0x12')](_0xe426('0x14'),_0xd63a00,_0x31456a);_0x2f0984(_0x31456a);});});}exports[_0xe426('0x16')]=function(_0x28b25e){var _0x31589b=this;return new Promise(function(_0x37ef73,_0x2c008c){return db['OpenchannelApplication']['update'](_0x28b25e[_0xe426('0x17')],{'raw':_0x28b25e[_0xe426('0x18')]?_0x28b25e['options'][_0xe426('0x19')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x28b25e['options']?_0x28b25e['options'][_0xe426('0x1a')]||null:null,'attributes':_0x28b25e[_0xe426('0x18')]?_0x28b25e['options'][_0xe426('0x1b')]||null:null,'limit':_0x28b25e[_0xe426('0x18')]?_0x28b25e['options'][_0xe426('0x1c')]||null:null})[_0xe426('0xc')](function(_0x8e58d2){logger[_0xe426('0xd')]('UpdateOpenchannelApplication',_0x28b25e);logger[_0xe426('0xf')](_0xe426('0x16'),_0x28b25e,JSON['stringify'](_0x8e58d2));_0x37ef73(_0x8e58d2);})[_0xe426('0x15')](function(_0x47103b){logger[_0xe426('0x12')]('UpdateOpenchannelApplication',_0x47103b[_0xe426('0x13')],_0x28b25e);_0x2c008c(_0x31589b[_0xe426('0x12')](0x1f4,_0x47103b['message']));});});};
\ No newline at end of file
+var _0x5c69=['debug','OpenchannelApplication,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','catch','update','body','options','where','attributes','limit','then','UpdateOpenchannelApplication','lodash','util','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','info','OpenchannelApplication,\x20%s,\x20%s'];(function(_0x31a371,_0x50828e){var _0x2a5bd6=function(_0x2fb481){while(--_0x2fb481){_0x31a371['push'](_0x31a371['shift']());}};_0x2a5bd6(++_0x50828e);}(_0x5c69,0x189));var _0x95c6=function(_0x1d24eb,_0x12295b){_0x1d24eb=_0x1d24eb-0x0;var _0x1dc576=_0x5c69[_0x1d24eb];return _0x1dc576;};'use strict';var _=require(_0x95c6('0x0'));var util=require(_0x95c6('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x95c6('0x2'));var db=require(_0x95c6('0x3'))['db'];var utils=require('../../config/utils');var logger=require(_0x95c6('0x4'))(_0x95c6('0x5'));var config=require(_0x95c6('0x6'));var jayson=require(_0x95c6('0x7'));var client=jayson[_0x95c6('0x8')][_0x95c6('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x53f9ec,_0x84062c,_0x2b55da){return new BPromise(function(_0x3d2811,_0x5ca347){return client[_0x95c6('0xa')](_0x53f9ec,_0x2b55da)['then'](function(_0x2a1e7e){logger[_0x95c6('0xb')](_0x95c6('0xc'),_0x84062c,'request\x20sent');logger[_0x95c6('0xd')](_0x95c6('0xe'),_0x84062c,_0x95c6('0xf'),JSON[_0x95c6('0x10')](_0x2a1e7e));if(_0x2a1e7e[_0x95c6('0x11')]){if(_0x2a1e7e['error']['code']===0x1f4){logger[_0x95c6('0x11')]('OpenchannelApplication,\x20%s,\x20%s',_0x84062c,_0x2a1e7e[_0x95c6('0x11')][_0x95c6('0x12')]);return _0x5ca347(_0x2a1e7e[_0x95c6('0x11')][_0x95c6('0x12')]);}logger[_0x95c6('0x11')]('OpenchannelApplication,\x20%s,\x20%s',_0x84062c,_0x2a1e7e[_0x95c6('0x11')][_0x95c6('0x12')]);return _0x3d2811(_0x2a1e7e['error'][_0x95c6('0x12')]);}else{logger[_0x95c6('0xb')](_0x95c6('0xc'),_0x84062c,'request\x20sent');_0x3d2811(_0x2a1e7e[_0x95c6('0x13')][_0x95c6('0x12')]);}})[_0x95c6('0x14')](function(_0xa6461e){logger[_0x95c6('0x11')](_0x95c6('0xc'),_0x84062c,_0xa6461e);_0x5ca347(_0xa6461e);});});}exports['UpdateOpenchannelApplication']=function(_0x3e9959){var _0x1212a7=this;return new Promise(function(_0x554d42,_0x46dc01){return db['OpenchannelApplication'][_0x95c6('0x15')](_0x3e9959[_0x95c6('0x16')],{'raw':_0x3e9959[_0x95c6('0x17')]?_0x3e9959[_0x95c6('0x17')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x3e9959['options']?_0x3e9959['options'][_0x95c6('0x18')]||null:null,'attributes':_0x3e9959[_0x95c6('0x17')]?_0x3e9959[_0x95c6('0x17')][_0x95c6('0x19')]||null:null,'limit':_0x3e9959[_0x95c6('0x17')]?_0x3e9959[_0x95c6('0x17')][_0x95c6('0x1a')]||null:null})[_0x95c6('0x1b')](function(_0x23621d){logger[_0x95c6('0xb')](_0x95c6('0x1c'),_0x3e9959);logger['debug'](_0x95c6('0x1c'),_0x3e9959,JSON[_0x95c6('0x10')](_0x23621d));_0x554d42(_0x23621d);})[_0x95c6('0x14')](function(_0x446a77){logger['error'](_0x95c6('0x1c'),_0x446a77[_0x95c6('0x12')],_0x3e9959);_0x46dc01(_0x1212a7[_0x95c6('0x11')](0x1f4,_0x446a77['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2f23=['../../components/auth/service','../../components/interaction/service','../../config/environment','./openchannelInteraction.controller','isAuthenticated','index','get','/describe','describe','/:id/messages','getMessages','/:id/download','download','post','create','addMessage','/:id/tags','tracked','openchannelinteraction:addtags','addTags','/:id','openchannel','openchannelinteraction:update','update','delete','destroy','removeTags','exports','multer','util','connect-timeout','express','fs-extra'];(function(_0x1a1d8e,_0x4f778f){var _0x4c639c=function(_0xeaffc9){while(--_0xeaffc9){_0x1a1d8e['push'](_0x1a1d8e['shift']());}};_0x4c639c(++_0x4f778f);}(_0x2f23,0x7f));var _0x32f2=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x2f23[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require(_0x32f2('0x0'));var util=require(_0x32f2('0x1'));var path=require('path');var timeout=require(_0x32f2('0x2'));var express=require(_0x32f2('0x3'));var router=express['Router']();var fs_extra=require(_0x32f2('0x4'));var auth=require(_0x32f2('0x5'));var interaction=require(_0x32f2('0x6'));var config=require(_0x32f2('0x7'));var controller=require(_0x32f2('0x8'));router['get']('/',auth[_0x32f2('0x9')](),controller[_0x32f2('0xa')]);router[_0x32f2('0xb')](_0x32f2('0xc'),auth['isAuthenticated'](),controller[_0x32f2('0xd')]);router[_0x32f2('0xb')]('/:id',auth['isAuthenticated'](),controller['show']);router['get'](_0x32f2('0xe'),auth['isAuthenticated'](),controller[_0x32f2('0xf')]);router['get'](_0x32f2('0x10'),auth['isAuthenticated'](),controller[_0x32f2('0x11')]);router[_0x32f2('0x12')]('/',auth[_0x32f2('0x9')](),controller[_0x32f2('0x13')]);router[_0x32f2('0x12')]('/:id/messages',auth[_0x32f2('0x9')](),controller[_0x32f2('0x14')]);router[_0x32f2('0x12')](_0x32f2('0x15'),auth[_0x32f2('0x9')](),interaction[_0x32f2('0x16')]('openchannel',_0x32f2('0x17')),controller[_0x32f2('0x18')]);router['put'](_0x32f2('0x19'),auth[_0x32f2('0x9')](),interaction[_0x32f2('0x16')](_0x32f2('0x1a'),_0x32f2('0x1b')),controller[_0x32f2('0x1c')]);router[_0x32f2('0x1d')]('/:id',auth['isAuthenticated'](),interaction[_0x32f2('0x16')](_0x32f2('0x1a'),'openchannelinteraction:destroy'),controller[_0x32f2('0x1e')]);router[_0x32f2('0x1d')](_0x32f2('0x15'),auth['isAuthenticated'](),controller[_0x32f2('0x1f')]);module[_0x32f2('0x20')]=router;
\ No newline at end of file
+var _0x8778=['openchannel','addTags','put','tracked','openchannelinteraction:update','update','delete','openchannelinteraction:destroy','destroy','removeTags','exports','multer','util','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./openchannelInteraction.controller','get','isAuthenticated','/describe','describe','/:id','post','create','/:id/messages','addMessage','/:id/tags'];(function(_0x56eb64,_0x2c55b5){var _0x21a6d5=function(_0x2b941d){while(--_0x2b941d){_0x56eb64['push'](_0x56eb64['shift']());}};_0x21a6d5(++_0x2c55b5);}(_0x8778,0x191));var _0x8877=function(_0x4ffa97,_0x2d73d1){_0x4ffa97=_0x4ffa97-0x0;var _0x148f2e=_0x8778[_0x4ffa97];return _0x148f2e;};'use strict';var multer=require(_0x8877('0x0'));var util=require(_0x8877('0x1'));var path=require('path');var timeout=require(_0x8877('0x2'));var express=require(_0x8877('0x3'));var router=express[_0x8877('0x4')]();var fs_extra=require(_0x8877('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x8877('0x6'));var config=require(_0x8877('0x7'));var controller=require(_0x8877('0x8'));router[_0x8877('0x9')]('/',auth[_0x8877('0xa')](),controller['index']);router[_0x8877('0x9')](_0x8877('0xb'),auth[_0x8877('0xa')](),controller[_0x8877('0xc')]);router[_0x8877('0x9')](_0x8877('0xd'),auth[_0x8877('0xa')](),controller['show']);router[_0x8877('0x9')]('/:id/messages',auth['isAuthenticated'](),controller['getMessages']);router[_0x8877('0x9')]('/:id/download',auth['isAuthenticated'](),controller['download']);router[_0x8877('0xe')]('/',auth[_0x8877('0xa')](),controller[_0x8877('0xf')]);router[_0x8877('0xe')](_0x8877('0x10'),auth[_0x8877('0xa')](),controller[_0x8877('0x11')]);router[_0x8877('0xe')](_0x8877('0x12'),auth['isAuthenticated'](),interaction['tracked'](_0x8877('0x13'),'openchannelinteraction:addtags'),controller[_0x8877('0x14')]);router[_0x8877('0x15')](_0x8877('0xd'),auth[_0x8877('0xa')](),interaction[_0x8877('0x16')](_0x8877('0x13'),_0x8877('0x17')),controller[_0x8877('0x18')]);router[_0x8877('0x19')](_0x8877('0xd'),auth['isAuthenticated'](),interaction[_0x8877('0x16')](_0x8877('0x13'),_0x8877('0x1a')),controller[_0x8877('0x1b')]);router[_0x8877('0x19')](_0x8877('0x12'),auth[_0x8877('0xa')](),controller[_0x8877('0x1c')]);module[_0x8877('0x1d')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb0de=['DATE','STRING','out','sequelize','BOOLEAN'];(function(_0x1b2a89,_0x5e8c30){var _0x10156a=function(_0x49c620){while(--_0x49c620){_0x1b2a89['push'](_0x1b2a89['shift']());}};_0x10156a(++_0x5e8c30);}(_0xb0de,0x148));var _0xeb0d=function(_0x4aeccd,_0x2c457d){_0x4aeccd=_0x4aeccd-0x0;var _0xcfdcac=_0xb0de[_0x4aeccd];return _0xcfdcac;};'use strict';var Sequelize=require(_0xeb0d('0x0'));module['exports']={'closed':{'type':Sequelize[_0xeb0d('0x1')],'defaultValue':![]},'closedAt':{'type':Sequelize[_0xeb0d('0x2')]},'disposition':{'type':Sequelize[_0xeb0d('0x3')]},'secondDisposition':{'type':Sequelize[_0xeb0d('0x3')]},'thirdDisposition':{'type':Sequelize[_0xeb0d('0x3')]},'note':{'type':Sequelize[_0xeb0d('0x3')]},'read1stAt':{'type':Sequelize[_0xeb0d('0x2')]},'threadId':{'type':Sequelize[_0xeb0d('0x3')]},'externalUrl':{'type':Sequelize['STRING']},'lastMsgAt':{'type':Sequelize[_0xeb0d('0x2')]},'lastMsgDirection':{'type':Sequelize['ENUM']('in',_0xeb0d('0x4')),'defaultValue':'in','allowNull':![]},'from':{'type':Sequelize[_0xeb0d('0x3')]},'autoreplyExecuted':{'type':Sequelize['BOOLEAN'],'defaultValue':![]}};
\ No newline at end of file
+var _0xf360=['STRING','DATE','ENUM','out','sequelize','exports','BOOLEAN'];(function(_0x2cd970,_0x2a0faf){var _0x3a626a=function(_0x51f0a9){while(--_0x51f0a9){_0x2cd970['push'](_0x2cd970['shift']());}};_0x3a626a(++_0x2a0faf);}(_0xf360,0x9e));var _0x0f36=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0xf360[_0xa464c9];return _0x3d73c4;};'use strict';var Sequelize=require(_0x0f36('0x0'));module[_0x0f36('0x1')]={'closed':{'type':Sequelize[_0x0f36('0x2')],'defaultValue':![]},'closedAt':{'type':Sequelize['DATE']},'disposition':{'type':Sequelize[_0x0f36('0x3')]},'secondDisposition':{'type':Sequelize['STRING']},'thirdDisposition':{'type':Sequelize[_0x0f36('0x3')]},'note':{'type':Sequelize[_0x0f36('0x3')]},'read1stAt':{'type':Sequelize[_0x0f36('0x4')]},'threadId':{'type':Sequelize['STRING']},'externalUrl':{'type':Sequelize[_0x0f36('0x3')]},'lastMsgAt':{'type':Sequelize[_0x0f36('0x4')]},'lastMsgDirection':{'type':Sequelize[_0x0f36('0x5')]('in',_0x0f36('0x6')),'defaultValue':'in','allowNull':![]},'from':{'type':Sequelize[_0x0f36('0x3')]},'autoreplyExecuted':{'type':Sequelize[_0x0f36('0x2')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc31e=['../../config/environment','../../mysqldb','redis','localhost','socket.io-emitter','./openchannelInteraction.socket','register','status','json','undefined','limit','count','offset','set','Content-Range','apply','reject','destroy','end','sendStatus','error','stack','name','send','Users','map','fullname','TagIds','Tags','forEach','OpenchannelInteraction','rawAttributes','fieldName','type','query','keys','filters','intersection','model','fields','attributes','length','nolimit','order','sort','pick','select','field','tools_tags','u.id','u.fullname','ui.OpenchannelInteractionId','from','user_has_openchannel_interactions','left_join','users','u.id\x20=\x20ui.UserId','openchannel_interactions','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','openchannel_accounts','a.id\x20=\x20i.OpenchannelAccountId','openchannel_interaction_has_tags','expr','parseSearch','search','sqlOperator','conditions','find','value','having','`\x20=\x200','Contact','operator','$substring','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','ContactId','buildExpression','text','start','split','union','UserId','body','some','compact','concat','createdAt','parse','$gte','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','where','\x20IS\x20NULL','\x20=\x20?','read','tag','isArray','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','filter','replace','isNumeric','i.id\x20LIKE\x20?','MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','i.from\x20LIKE\x20?','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','i.id','Sequelize','QueryTypes','SELECT','clone','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','unreadMessages','contactName','DESC','isEmpty','t.id\x20IN\x20?','then','i.OpenchannelAccountId\x20IS\x20NOT\x20NULL','user','agent','getOpenchannelAccounts','i.OpenchannelAccountId\x20IS\x20NULL','i.OpenchannelAccountId\x20IN\x20?','OpenchannelAccountId','sequelize','toString','keyBy','merge','a.key','Account.key','a.mandatoryDisposition','Account.mandatoryDisposition','CASE\x20WHEN\x20i.from\x20IS\x20NOT\x20NULL\x20AND\x20i.from\x20<>\x20\x27\x27\x20THEN\x20i.from\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END','i.*','Contact.firstName','Contact.lastName','c.email','Contact.email','Contact.mobile','c.fax','Contact.fax','o.fullname','Owner.fullname','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','groupBy','OpenchannelInteractionId','push','rows','show','params','includeAll','include','options','catch','create','update','describe','addMessage','OpenchannelMessage','ids','omit','getMessages','findOne','YYYY-MM-DD\x20HH:mm:ss','addTags','setTags','spread','findAll','color','removeTags','join','root','server','tmp','files','format','transcript-%d-%s.zip','User','CmContact','firstName','lastName','Attachment','Messages','direction','secret','OpenchannelAccount','Owner','get','mkdirSync','Openchannel','Account','closed','closedAt','Public','Private','basename','existsSync','createReadStream','createWriteStream','out','renderFile','views','downloadInteraction.ejs','transcript-','createPdfFromHTML','download','log','eml-format','rimraf','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../components/export/pdf','../../config/license/hardware','api'];(function(_0x444fce,_0x4c1aef){var _0x41a78c=function(_0x5ba7b1){while(--_0x5ba7b1){_0x444fce['push'](_0x444fce['shift']());}};_0x41a78c(++_0x4c1aef);}(_0xc31e,0xd4));var _0xec31=function(_0x11955c,_0x1b1adc){_0x11955c=_0x11955c-0x0;var _0x59edc0=_0xc31e[_0x11955c];return _0x59edc0;};'use strict';var emlformat=require(_0xec31('0x0'));var rimraf=require(_0xec31('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xec31('0x2'));var path=require(_0xec31('0x3'));var sox=require(_0xec31('0x4'));var csv=require(_0xec31('0x5'));var ejs=require(_0xec31('0x6'));var fs=require('fs');var fs_extra=require(_0xec31('0x7'));var _=require(_0xec31('0x8'));var squel=require(_0xec31('0x9'));var crypto=require(_0xec31('0xa'));var jsforce=require(_0xec31('0xb'));var deskjs=require(_0xec31('0xc'));var toCsv=require(_0xec31('0x5'));var querystring=require(_0xec31('0xd'));var Papa=require(_0xec31('0xe'));var Redis=require(_0xec31('0xf'));var authService=require(_0xec31('0x10'));var qs=require(_0xec31('0x11'));var as=require(_0xec31('0x12'));var pdf=require(_0xec31('0x13'));var hardwareService=require(_0xec31('0x14'));var logger=require('../../config/logger')(_0xec31('0x15'));var utils=require('../../config/utils');var config=require(_0xec31('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0xec31('0x17'))['db'];config[_0xec31('0x18')]=_['defaults'](config['redis'],{'host':_0xec31('0x19'),'port':0x18eb});var socket=require(_0xec31('0x1a'))(new Redis(config[_0xec31('0x18')]));require(_0xec31('0x1b'))[_0xec31('0x1c')](socket);function respondWithStatusCode(_0x582a60,_0x501a00){_0x501a00=_0x501a00||0xcc;return function(_0x49bee9){if(_0x49bee9){return _0x582a60['sendStatus'](_0x501a00);}return _0x582a60[_0xec31('0x1d')](_0x501a00)['end']();};}function respondWithResult(_0xd51f7c,_0x3ae3e1){_0x3ae3e1=_0x3ae3e1||0xc8;return function(_0x1a125c){if(_0x1a125c){return _0xd51f7c[_0xec31('0x1d')](_0x3ae3e1)[_0xec31('0x1e')](_0x1a125c);}};}function respondWithFilteredResult(_0x153e1f,_0x3a9ebf){return function(_0x1881db){if(_0x1881db){var _0x50c91b=typeof _0x3a9ebf['offset']===_0xec31('0x1f')&&typeof _0x3a9ebf[_0xec31('0x20')]===_0xec31('0x1f');var _0x4e1acb=_0x1881db[_0xec31('0x21')];var _0x271ab9=_0x50c91b?0x0:_0x3a9ebf[_0xec31('0x22')];var _0x11250b=_0x50c91b?_0x1881db[_0xec31('0x21')]:_0x3a9ebf[_0xec31('0x22')]+_0x3a9ebf[_0xec31('0x20')];var _0x21a00d;if(_0x11250b>=_0x4e1acb){_0x11250b=_0x4e1acb;_0x21a00d=0xc8;}else{_0x21a00d=0xce;}_0x153e1f[_0xec31('0x1d')](_0x21a00d);return _0x153e1f[_0xec31('0x23')](_0xec31('0x24'),_0x271ab9+'-'+_0x11250b+'/'+_0x4e1acb)['json'](_0x1881db);}return null;};}function patchUpdates(_0x4cf554){return function(_0x4b5092){try{jsonpatch[_0xec31('0x25')](_0x4b5092,_0x4cf554,!![]);}catch(_0x144542){return BPromise[_0xec31('0x26')](_0x144542);}return _0x4b5092['save']();};}function saveUpdates(_0x129762,_0x57a22d){return function(_0x2fb9a5){if(_0x2fb9a5){return _0x2fb9a5['update'](_0x129762)['then'](function(_0x20a758){return _0x20a758;});}return null;};}function removeEntity(_0x3590d9,_0x859a42){return function(_0x42d47d){if(_0x42d47d){return _0x42d47d[_0xec31('0x27')]()['then'](function(){_0x3590d9[_0xec31('0x1d')](0xcc)[_0xec31('0x28')]();});}};}function handleEntityNotFound(_0x1ef4dc,_0x427428){return function(_0x4a7869){if(!_0x4a7869){_0x1ef4dc[_0xec31('0x29')](0x194);}return _0x4a7869;};}function handleError(_0x51edda,_0x4a60a5){_0x4a60a5=_0x4a60a5||0x1f4;return function(_0xd7356){logger[_0xec31('0x2a')](_0xd7356[_0xec31('0x2b')]);if(_0xd7356[_0xec31('0x2c')]){delete _0xd7356[_0xec31('0x2c')];}_0x51edda['status'](_0x4a60a5)[_0xec31('0x2d')](_0xd7356);};}function getInteractionUsers(_0x729dd6,_0x1c509e){return new BPromise(function(_0x3f15b3,_0x3fd3f5){try{if(_0x1c509e[_0x729dd6['id']]){_0x729dd6[_0xec31('0x2e')]=_[_0xec31('0x2f')](_0x1c509e[_0x729dd6['id']],function(_0x3ddcbb){return{'id':_0x3ddcbb['id'],'fullname':_0x3ddcbb[_0xec31('0x30')]};});}}catch(_0x3f5f51){_0x3fd3f5(_0x3f5f51);}_0x3f15b3(_0x729dd6);});}function getInteractionTags(_0x212951,_0x3f98bd){return new BPromise(function(_0x12e552,_0x45ec02){try{if(_0x212951[_0xec31('0x31')]){_0x212951[_0xec31('0x32')]=[];_0x212951[_0xec31('0x31')]['split'](',')[_0xec31('0x33')](function(_0xae014e){_0x212951[_0xec31('0x32')]['push'](_0x3f98bd[_0xae014e]);});}delete _0x212951['TagIds'];}catch(_0x124d92){_0x45ec02(_0x124d92);}_0x12e552(_0x212951);});}function updateOpenchannelInteraction(_0xd862bc,_0x4f4bbe,_0x518fa8){return new BPromise(function(_0x58227d,_0x12dc60){return getInteractionUsers(_0xd862bc,_0x518fa8)['then'](function(_0x4dc148){return getInteractionTags(_0x4dc148,_0x4f4bbe);})['then'](function(_0x2db517){_0x58227d(_0x2db517);})['catch'](function(_0x3ba3a5){_0x12dc60(_0x3ba3a5);});});}exports['index']=function(_0xc00f39,_0x158fda){var _0x8edf38={},_0x14b12d={},_0x5424cb={'count':0x0,'rows':[]};var _0x1a6e26=_[_0xec31('0x2f')](db[_0xec31('0x34')][_0xec31('0x35')],function(_0x99ee06){return{'name':_0x99ee06[_0xec31('0x36')],'type':_0x99ee06[_0xec31('0x37')]['key']};});_0x14b12d['model']=_['map'](_0x1a6e26,_0xec31('0x2c'));_0x14b12d[_0xec31('0x38')]=_[_0xec31('0x39')](_0xc00f39[_0xec31('0x38')]);_0x14b12d[_0xec31('0x3a')]=_[_0xec31('0x3b')](_0x14b12d[_0xec31('0x3c')],_0x14b12d[_0xec31('0x38')]);_0x8edf38['attributes']=_[_0xec31('0x3b')](_0x14b12d[_0xec31('0x3c')],qs[_0xec31('0x3d')](_0xc00f39[_0xec31('0x38')][_0xec31('0x3d')]));_0x8edf38[_0xec31('0x3e')]=_0x8edf38[_0xec31('0x3e')][_0xec31('0x3f')]?_0x8edf38[_0xec31('0x3e')]:_0x14b12d['model'];if(!_0xc00f39[_0xec31('0x38')]['hasOwnProperty'](_0xec31('0x40'))){_0x8edf38[_0xec31('0x20')]=qs[_0xec31('0x20')](_0xc00f39['query'][_0xec31('0x20')]);_0x8edf38[_0xec31('0x22')]=qs[_0xec31('0x22')](_0xc00f39['query'][_0xec31('0x22')]);}_0x8edf38[_0xec31('0x41')]=qs[_0xec31('0x42')](_0xc00f39['query'][_0xec31('0x42')]);_0x8edf38['where']=qs[_0xec31('0x3a')](_[_0xec31('0x43')](_0xc00f39['query'],_0x14b12d[_0xec31('0x3a')]),_0x1a6e26);var _0x2277b2=[];var _0x240277=squel[_0xec31('0x44')]()[_0xec31('0x45')]('id')[_0xec31('0x45')](_0xec31('0x2c'))['field']('color')['from'](_0xec31('0x46'));var _0xb1482d=squel[_0xec31('0x44')]()[_0xec31('0x45')](_0xec31('0x47'))['field'](_0xec31('0x48'))[_0xec31('0x45')](_0xec31('0x49'))[_0xec31('0x4a')](_0xec31('0x4b'),'ui')[_0xec31('0x4c')](_0xec31('0x4d'),'u',_0xec31('0x4e'));var _0x3fa5e9=squel[_0xec31('0x44')]()[_0xec31('0x4a')](_0xec31('0x4f'),'i')[_0xec31('0x4c')](_0xec31('0x50'),'c',_0xec31('0x51'))[_0xec31('0x4c')](_0xec31('0x4d'),'o','o.id\x20=\x20i.UserId')[_0xec31('0x4c')](_0xec31('0x52'),'a',_0xec31('0x53'))['left_join']('openchannel_messages','me','me.OpenchannelInteractionId\x20=\x20i.id')[_0xec31('0x4c')](_0xec31('0x54'),'it','it.OpenchannelInteractionId\x20=\x20i.id')[_0xec31('0x4c')]('tools_tags','t','t.id\x20=\x20it.TagId');var _0x5ad683=squel[_0xec31('0x55')]();var _0x25002c=[];var _0x4913c1=squel[_0xec31('0x55')]();var _0x34b70e;if(_0xc00f39[_0xec31('0x38')]['search']){_0x34b70e=as[_0xec31('0x56')](_0xc00f39[_0xec31('0x38')][_0xec31('0x57')]);var _0x2b4141=_0x34b70e[_0xec31('0x58')];for(var _0x4016f1=0x0;_0x4016f1<_0x34b70e[_0xec31('0x59')][_0xec31('0x3f')];_0x4016f1++){var _0x483a55=_0x34b70e['conditions'][_0x4016f1];var _0x500f68='i';var _0x375944=_[_0xec31('0x5a')](_0x1a6e26,[_0xec31('0x2c'),_0x483a55[_0xec31('0x45')]]);if(!_0x375944){switch(_0x483a55[_0xec31('0x45')]){case'unreadMessages':if(_0x483a55[_0xec31('0x5b')]==0x1){_0x3fa5e9[_0xec31('0x5c')]('`'+_0x483a55[_0xec31('0x45')]+_0xec31('0x5d'));}else{_0x3fa5e9[_0xec31('0x5c')]('`'+_0x483a55[_0xec31('0x45')]+'`\x20>\x200');}break;case _0xec31('0x5e'):if(_0x483a55[_0xec31('0x5f')]===_0xec31('0x60')){if(_0x483a55[_0xec31('0x5b')]['split']('\x20')[_0xec31('0x3f')]>0x1){_0x5ad683[_0x2b4141](_0xec31('0x61'),qs['getFullTextValue'](_0x483a55[_0xec31('0x5b')]),null);}else{var _0x24815d='%'+_0x483a55['value']+'%';_0x5ad683[_0x2b4141]('c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?',_0x24815d,_0x24815d,_0x24815d);}}else{_0x375944=_['find'](_0x1a6e26,['name',_0xec31('0x62')]);_0x483a55['field']=_0xec31('0x62');_0x4b72f7=as[_0xec31('0x63')](_0x500f68,_0x375944[_0xec31('0x37')],_0x483a55);_0x5ad683[_0x2b4141](_0x4b72f7[_0xec31('0x64')],_0x4b72f7[_0xec31('0x5b')][_0xec31('0x65')],_0x4b72f7[_0xec31('0x5b')][_0xec31('0x28')]);}break;case'Tag':var _0x5db493=_0x483a55[_0xec31('0x5b')][_0xec31('0x66')](',')[_0xec31('0x2f')](function(_0x42b81e){return Number(_0x42b81e);});_0x5db493['forEach'](function(_0x29e7de){_0x4913c1['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x29e7de+',%');});_0x25002c=_[_0xec31('0x67')](_0x25002c,_0x5db493);break;case'User':if(_0x483a55[_0xec31('0x5f')]===_0xec31('0x60')){_0x5ad683[_0x2b4141]('CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','%'+_0x483a55[_0xec31('0x5b')]+'%',null);}else{_0x375944=_[_0xec31('0x5a')](_0x1a6e26,[_0xec31('0x2c'),_0xec31('0x68')]);_0x483a55[_0xec31('0x45')]=_0xec31('0x68');_0x4b72f7=as[_0xec31('0x63')](_0x500f68,_0x375944[_0xec31('0x37')],_0x483a55);_0x5ad683[_0x2b4141](_0x4b72f7[_0xec31('0x64')],_0x4b72f7[_0xec31('0x5b')][_0xec31('0x65')],_0x4b72f7[_0xec31('0x5b')]['end']);}break;case _0xec31('0x69'):_0x4b72f7=as['buildExpression']('me',null,_0x483a55);_0x5ad683[_0x2b4141](_0x4b72f7[_0xec31('0x64')],_0x4b72f7[_0xec31('0x5b')][_0xec31('0x65')],_0x4b72f7[_0xec31('0x5b')][_0xec31('0x28')]);break;}}else{var _0x4b72f7=as['buildExpression'](_0x500f68,_0x375944[_0xec31('0x37')],_0x483a55);_0x5ad683[_0x2b4141](_0x4b72f7['text'],_0x4b72f7[_0xec31('0x5b')][_0xec31('0x65')],_0x4b72f7[_0xec31('0x5b')]['end']);}}}else{var _0x554029=_(_0xc00f39[_0xec31('0x38')])['keys']()[_0xec31('0x2f')](function(_0x37beca){return _[_0xec31('0x6a')](_0x1a6e26,[_0xec31('0x2c'),_0x37beca])?_0x37beca:undefined;})[_0xec31('0x6b')]()[_0xec31('0x5b')]();if(!_['isEmpty'](_0x554029)){_0x554029[_0xec31('0x33')](function(_0x5cd099){if(_0x5cd099==='OpenchannelAccountId'){_0x3fa5e9['where']('i.OpenchannelAccountId\x20IN\x20?',[][_0xec31('0x6c')](_0xc00f39['query'][_0x5cd099]));}else if(_0x5cd099===_0xec31('0x6d')){var _0x5d7355=JSON[_0xec31('0x6e')](_0xc00f39[_0xec31('0x38')][_0x5cd099])[_0xec31('0x6f')];var _0x4e95d8=JSON['parse'](_0xc00f39['query'][_0x5cd099])[_0xec31('0x70')];_0x3fa5e9['where'](_0xec31('0x71'),_0x5d7355,_0x4e95d8);}else{if(_0xc00f39[_0xec31('0x38')][_0x5cd099]===_0xec31('0x72')){_0x3fa5e9[_0xec31('0x73')]('i.'+_0x5cd099+_0xec31('0x74'));}else{_0x3fa5e9['where']('i.'+_0x5cd099+_0xec31('0x75'),_0xc00f39[_0xec31('0x38')][_0x5cd099]);}}});}if(_0xc00f39['query'][_0xec31('0x76')]){if(_0xc00f39[_0xec31('0x38')]['read']==0x1){_0x3fa5e9[_0xec31('0x5c')]('`unreadMessages`\x20=\x200');}else{_0x3fa5e9['having']('`unreadMessages`\x20>\x200');}}if(_0xc00f39[_0xec31('0x38')][_0xec31('0x77')]){_0x25002c=_[_0xec31('0x78')](_0xc00f39[_0xec31('0x38')][_0xec31('0x77')])?_0xc00f39[_0xec31('0x38')]['tag']:new Array(_0xc00f39[_0xec31('0x38')][_0xec31('0x77')]);_0x25002c[_0xec31('0x33')](function(_0x477149){_0x4913c1['or'](_0xec31('0x79'),'%,'+_0x477149+',%');});}if(_0xc00f39[_0xec31('0x38')]['filter']){var _0x3d9fae=_0xc00f39[_0xec31('0x38')][_0xec31('0x7a')][_0xec31('0x7b')]('\x5c','\x5c\x5c')[_0xec31('0x7b')](/'/g,'\x27\x27');if(qs[_0xec31('0x7c')](_0x3d9fae)){_0x5ad683['or'](_0xec31('0x7d'),_0x3d9fae+'%');}else{_0x5ad683['or'](_0xec31('0x7e'),qs[_0xec31('0x7f')](_0x3d9fae))['or'](_0xec31('0x80'),_0x3d9fae+'%')['or'](_0xec31('0x81'),_0x3d9fae+'%');}}}_0x3fa5e9[_0xec31('0x73')](_0x5ad683);_0x3fa5e9['group'](_0xec31('0x82'));var _0x12dc40={'type':db[_0xec31('0x83')][_0xec31('0x84')][_0xec31('0x85')],'raw':!![]};var _0x12a2db=_0x3fa5e9[_0xec31('0x86')]();_0x12a2db[_0xec31('0x45')](_0xec31('0x82'));_0x12a2db[_0xec31('0x45')](_0xec31('0x87'),_0xec31('0x88'));if(_0x8edf38[_0xec31('0x41')]){_0x8edf38[_0xec31('0x41')][_0xec31('0x33')](function(_0x379de4){var _0x2f761e=_0x379de4[0x0]===_0xec31('0x89')?_0x379de4[0x0]:'i.'+_0x379de4[0x0];_0x3fa5e9[_0xec31('0x41')](_0x2f761e,_0x379de4[0x1]===_0xec31('0x8a')?![]:!![]);});}if(!_[_0xec31('0x8b')](_0x25002c)){_0x3fa5e9[_0xec31('0x5c')](_0x4913c1);_0x12a2db[_0xec31('0x73')](_0xec31('0x8c'),_0x25002c);}BPromise['resolve']()[_0xec31('0x8d')](function(){if(!_0x34b70e){if(_0xc00f39[_0xec31('0x38')]['OpenchannelAccountId'])return;_0x12a2db['where'](_0xec31('0x8e'));_0x3fa5e9[_0xec31('0x73')](_0xec31('0x8e'));return;}if(_0xc00f39[_0xec31('0x8f')]['role']!==_0xec31('0x90'))return;return _0xc00f39[_0xec31('0x8f')][_0xec31('0x91')]({'attributes':['id'],'raw':!![]})[_0xec31('0x8d')](function(_0x493045){if(_['isEmpty'](_0x493045)){_0x12a2db['where'](_0xec31('0x92'));_0x3fa5e9[_0xec31('0x73')](_0xec31('0x92'));}else{_0x12a2db[_0xec31('0x73')](_0xec31('0x93'),_['map'](_0x493045,'id'));_0x3fa5e9[_0xec31('0x73')](_0xec31('0x93'),_['map'](_0x493045,'id'));}});})[_0xec31('0x8d')](function(){if(_0xc00f39[_0xec31('0x8f')]['role']===_0xec31('0x90')&&!_0x34b70e&&!_0xc00f39[_0xec31('0x38')][_0xec31('0x94')])return[];return db[_0xec31('0x95')][_0xec31('0x38')](_0x12a2db[_0xec31('0x96')](),_0x12dc40);})[_0xec31('0x8d')](function(_0x1859d4){_0x5424cb['count']=_0x1859d4['length'];if(_0x5424cb[_0xec31('0x21')]===0x0)return[];return db[_0xec31('0x95')][_0xec31('0x38')](_0x240277[_0xec31('0x96')](),_0x12dc40)['then'](function(_0x5d80ef){_0x2277b2=_[_0xec31('0x97')](_0x5d80ef,'id');_0x12dc40=_[_0xec31('0x98')](_0x12dc40,{'model':db[_0xec31('0x34')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0xc00f39['query'][_0xec31('0x3d')]){_0x8edf38['attributes'][_0xec31('0x33')](function(_0x4be49e){_0x3fa5e9[_0xec31('0x45')]('i.'+_0x4be49e);});}else{_0x3fa5e9[_0xec31('0x45')](_0xec31('0x87'),'unreadMessages');_0x3fa5e9[_0xec31('0x45')](_0xec31('0x99'),_0xec31('0x9a'));_0x3fa5e9[_0xec31('0x45')](_0xec31('0x9b'),_0xec31('0x9c'));_0x3fa5e9[_0xec31('0x45')](_0xec31('0x9d'),_0xec31('0x89'));_0x3fa5e9[_0xec31('0x45')](_0xec31('0x9e'));_0x3fa5e9[_0xec31('0x45')]('c.firstName',_0xec31('0x9f'));_0x3fa5e9[_0xec31('0x45')]('c.lastName',_0xec31('0xa0'));_0x3fa5e9[_0xec31('0x45')](_0xec31('0xa1'),_0xec31('0xa2'));_0x3fa5e9[_0xec31('0x45')]('c.phone','Contact.phone');_0x3fa5e9[_0xec31('0x45')]('c.mobile',_0xec31('0xa3'));_0x3fa5e9[_0xec31('0x45')](_0xec31('0xa4'),_0xec31('0xa5'));_0x3fa5e9['field'](_0xec31('0xa6'),_0xec31('0xa7'));_0x3fa5e9[_0xec31('0x45')](_0xec31('0xa8'),_0xec31('0xa9'));_0x3fa5e9[_0xec31('0x45')](_0xec31('0xaa'),'TagIds');}if(_0x8edf38[_0xec31('0x20')])_0x3fa5e9['limit'](_0x8edf38[_0xec31('0x20')]);if(_0x8edf38[_0xec31('0x22')])_0x3fa5e9['offset'](_0x8edf38[_0xec31('0x22')]);return db[_0xec31('0x95')]['query'](_0x3fa5e9[_0xec31('0x96')](),_0x12dc40);})['then'](function(_0xb83b59){if(_0xb83b59[_0xec31('0x3f')]>0x0)_0xb1482d[_0xec31('0x73')]('ui.OpenchannelInteractionId\x20IN\x20?',_[_0xec31('0x2f')](_0xb83b59,'id'));return db[_0xec31('0x95')]['query'](_0xb1482d[_0xec31('0x96')](),_0x12dc40)['then'](function(_0x4dd305){var _0x5903b2=_[_0xec31('0xab')](_0x4dd305,_0xec31('0xac'));var _0x186d9a=[];_0xb83b59[_0xec31('0x33')](function(_0x36198d){_0x186d9a[_0xec31('0xad')](updateOpenchannelInteraction(_0x36198d,_0x2277b2,_0x5903b2));});return BPromise['all'](_0x186d9a);});});})[_0xec31('0x8d')](function(_0x187024){_0x5424cb[_0xec31('0xae')]=_0x187024;return _0x5424cb;})[_0xec31('0x8d')](respondWithFilteredResult(_0x158fda,_0x8edf38))['catch'](handleError(_0x158fda,null));};exports[_0xec31('0xaf')]=function(_0x3a1acb,_0x1b73c5){var _0x3c5239={};if(_0x3a1acb[_0xec31('0x38')][_0xec31('0x37')]&&_0x3a1acb[_0xec31('0x38')][_0xec31('0x37')]===_0xec31('0x4a')){_0x3c5239['from']=_0x3a1acb['params']['id'];}else{_0x3c5239['id']=_0x3a1acb[_0xec31('0xb0')]['id'];}var _0x3fd590={'raw':![],'where':_0x3c5239},_0x15cb48={};_0x15cb48[_0xec31('0x3c')]=_[_0xec31('0x39')](db[_0xec31('0x34')]['rawAttributes']);_0x15cb48[_0xec31('0x38')]=_[_0xec31('0x39')](_0x3a1acb[_0xec31('0x38')]);_0x15cb48[_0xec31('0x3a')]=_[_0xec31('0x3b')](_0x15cb48['model'],_0x15cb48[_0xec31('0x38')]);_0x3fd590[_0xec31('0x3e')]=_['intersection'](_0x15cb48[_0xec31('0x3c')],qs['fields'](_0x3a1acb[_0xec31('0x38')][_0xec31('0x3d')]));_0x3fd590[_0xec31('0x3e')]=_0x3fd590['attributes'][_0xec31('0x3f')]?_0x3fd590['attributes']:_0x15cb48['model'];if(_0x3a1acb[_0xec31('0x38')][_0xec31('0xb1')]){_0x3fd590[_0xec31('0xb2')]=[{'all':!![]}];}_0x3fd590=_['merge']({},_0x3fd590,_0x3a1acb[_0xec31('0xb3')]);return db[_0xec31('0x34')]['find'](_0x3fd590)[_0xec31('0x8d')](handleEntityNotFound(_0x1b73c5,null))[_0xec31('0x8d')](respondWithResult(_0x1b73c5,null))[_0xec31('0xb4')](handleError(_0x1b73c5,null));};exports[_0xec31('0xb5')]=function(_0x291c4c,_0x384a23){return db['OpenchannelInteraction'][_0xec31('0xb5')](_0x291c4c[_0xec31('0x69')],{})[_0xec31('0x8d')](respondWithResult(_0x384a23,0xc9))[_0xec31('0xb4')](handleError(_0x384a23,null));};exports[_0xec31('0xb6')]=function(_0x47d722,_0x1bf87e){if(_0x47d722[_0xec31('0x69')]['id']){delete _0x47d722[_0xec31('0x69')]['id'];}return db['OpenchannelInteraction'][_0xec31('0x5a')]({'where':{'id':_0x47d722[_0xec31('0xb0')]['id']}})['then'](handleEntityNotFound(_0x1bf87e,null))[_0xec31('0x8d')](saveUpdates(_0x47d722[_0xec31('0x69')],null))[_0xec31('0x8d')](respondWithResult(_0x1bf87e,null))['catch'](handleError(_0x1bf87e,null));};exports[_0xec31('0x27')]=function(_0x4110c3,_0x49dc22){return db['OpenchannelInteraction'][_0xec31('0x5a')]({'where':{'id':_0x4110c3[_0xec31('0xb0')]['id']}})[_0xec31('0x8d')](handleEntityNotFound(_0x49dc22,null))[_0xec31('0x8d')](removeEntity(_0x49dc22,null))[_0xec31('0xb4')](handleError(_0x49dc22,null));};exports[_0xec31('0xb7')]=function(_0x502255,_0x6041e4){return db[_0xec31('0x34')]['describe']()[_0xec31('0x8d')](respondWithResult(_0x6041e4,null))[_0xec31('0xb4')](handleError(_0x6041e4,null));};exports[_0xec31('0xb8')]=function(_0x2b3922,_0x154ff8,_0x443eaa){return db[_0xec31('0xb9')]['find']({'where':{'id':_0x2b3922[_0xec31('0xb0')]['id']}})[_0xec31('0x8d')](handleEntityNotFound(_0x154ff8,null))['then'](function(_0x141a6e){if(_0x141a6e){return _0x141a6e[_0xec31('0xb8')](_0x2b3922[_0xec31('0x69')][_0xec31('0xba')],_[_0xec31('0xbb')](_0x2b3922[_0xec31('0x69')],[_0xec31('0xba'),'id'])||{});}})[_0xec31('0x8d')](respondWithResult(_0x154ff8,null))['catch'](handleError(_0x154ff8,null));};exports[_0xec31('0xbc')]=function(_0x12fa53,_0x50c508,_0x1cd218){var _0x4c8e63={'raw':![],'where':{}};var _0xe3c1={};var _0x51b158={'count':0x0,'rows':[]};return db['OpenchannelInteraction'][_0xec31('0xbd')]({'where':{'id':_0x12fa53['params']['id']}})[_0xec31('0x8d')](handleEntityNotFound(_0x50c508,null))['then'](function(_0x3ba724){if(_0x3ba724){_0xe3c1[_0xec31('0x3c')]=_[_0xec31('0x39')](db['OpenchannelMessage']['rawAttributes']);_0xe3c1[_0xec31('0x38')]=_[_0xec31('0x39')](_0x12fa53[_0xec31('0x38')]);_0xe3c1['filters']=_[_0xec31('0x3b')](_0xe3c1['model'],_0xe3c1['query']);_0x4c8e63[_0xec31('0x3e')]=_[_0xec31('0x3b')](_0xe3c1[_0xec31('0x3c')],qs['fields'](_0x12fa53[_0xec31('0x38')][_0xec31('0x3d')]));_0x4c8e63[_0xec31('0x3e')]=_0x4c8e63[_0xec31('0x3e')]['length']?_0x4c8e63[_0xec31('0x3e')]:_0xe3c1[_0xec31('0x3c')];if(!_0x12fa53[_0xec31('0x38')]['hasOwnProperty'](_0xec31('0x40'))){_0x4c8e63[_0xec31('0x20')]=qs[_0xec31('0x20')](_0x12fa53[_0xec31('0x38')][_0xec31('0x20')]);_0x4c8e63['offset']=qs['offset'](_0x12fa53[_0xec31('0x38')][_0xec31('0x22')]);}_0x4c8e63[_0xec31('0x41')]=qs[_0xec31('0x42')](_0x12fa53[_0xec31('0x38')][_0xec31('0x42')]);_0x4c8e63[_0xec31('0x73')]=qs[_0xec31('0x3a')](_[_0xec31('0x43')](_0x12fa53[_0xec31('0x38')],_0xe3c1[_0xec31('0x3a')]));_0x4c8e63[_0xec31('0x73')][_0xec31('0xac')]=_0x3ba724['id'];if(_0x12fa53[_0xec31('0x38')]['filter']){_0x4c8e63[_0xec31('0x73')]=_[_0xec31('0x98')](_0x4c8e63['where'],{'$or':_[_0xec31('0x2f')](_0x4c8e63[_0xec31('0x3e')],function(_0xf93e3){var _0x2679ce={};_0x2679ce[_0xf93e3]={'$like':'%'+_0x12fa53['query'][_0xec31('0x7a')]+'%'};return _0x2679ce;})});}if(_0x12fa53[_0xec31('0x38')][_0xec31('0x6f')]){var _0x4d3f24=_0x12fa53[_0xec31('0x38')][_0xec31('0x6f')][_0xec31('0x66')](',');var _0x46c285={};_0x46c285[_0x4d3f24[0x0]]={'$gte':moment(_0x4d3f24[0x1])['format'](_0xec31('0xbe'))};_0x4c8e63[_0xec31('0x73')]=_[_0xec31('0x98')](_0x4c8e63[_0xec31('0x73')],_0x46c285);}_0x4c8e63=_[_0xec31('0x98')]({},_0x4c8e63,_0x12fa53['options']);return db['OpenchannelMessage'][_0xec31('0x21')]({'where':_0x4c8e63[_0xec31('0x73')]})[_0xec31('0x8d')](function(_0x33b4b2){_0x51b158[_0xec31('0x21')]=_0x33b4b2;if(_0x12fa53['query'][_0xec31('0xb1')]){_0x4c8e63[_0xec31('0xb2')]=[{'all':!![]}];}return db['OpenchannelMessage']['findAll'](_0x4c8e63);})[_0xec31('0x8d')](function(_0x13fbee){_0x51b158[_0xec31('0xae')]=_0x13fbee;return _0x51b158;});}})[_0xec31('0x8d')](respondWithFilteredResult(_0x50c508,_0x4c8e63))['catch'](handleError(_0x50c508,null));};exports[_0xec31('0xbf')]=function(_0x309b63,_0x4c2c57,_0x295035){return db[_0xec31('0x34')]['find']({'where':{'id':_0x309b63[_0xec31('0xb0')]['id']}})['then'](handleEntityNotFound(_0x4c2c57,null))[_0xec31('0x8d')](function(_0x55112b){if(_0x55112b){return _0x55112b[_0xec31('0xc0')](_0x309b63['body'][_0xec31('0xba')],_['omit'](_0x309b63[_0xec31('0x69')],[_0xec31('0xba'),'id'])||{})[_0xec31('0xc1')](function(){return db['Tag'][_0xec31('0xc2')]({'attributes':['id',_0xec31('0x2c'),_0xec31('0xc3')],'where':{'id':_0x309b63[_0xec31('0x69')][_0xec31('0xba')]}});})[_0xec31('0x8d')](function(_0x2200e6){socket['emit']('openchannelInteractionTags:save',{'id':Number(_0x309b63[_0xec31('0xb0')]['id']),'tags':_0x2200e6||[]});return{'id':Number(_0x309b63[_0xec31('0xb0')]['id']),'tags':_0x2200e6||[]};});}})['then'](respondWithResult(_0x4c2c57,null))[_0xec31('0xb4')](handleError(_0x4c2c57,null));};exports[_0xec31('0xc4')]=function(_0x41e837,_0x48aca8,_0x8f0a46){return db[_0xec31('0x34')][_0xec31('0x5a')]({'where':{'id':_0x41e837[_0xec31('0xb0')]['id']}})[_0xec31('0x8d')](handleEntityNotFound(_0x48aca8,null))[_0xec31('0x8d')](function(_0x385f0e){if(_0x385f0e){return _0x385f0e[_0xec31('0xc4')](_0x41e837['query'][_0xec31('0xba')]);}})[_0xec31('0x8d')](respondWithStatusCode(_0x48aca8,null))[_0xec31('0xb4')](handleError(_0x48aca8,null));};exports['download']=function(_0x19b244,_0x538e00){var _0x3adcec=moment()['unix']()[_0xec31('0x96')]();var _0x358212=path[_0xec31('0xc5')](config[_0xec31('0xc6')],_0xec31('0xc7'),'files',_0xec31('0xc8'));var _0x112c66=path['join'](config['root'],'server',_0xec31('0xc9'),'attachments');var _0x34825c=path[_0xec31('0xc5')](_0x358212,_0x3adcec);var _0x47d955=util[_0xec31('0xca')](_0xec31('0xcb'),_0x19b244[_0xec31('0xb0')]['id'],_0x3adcec);var _0x110f08=path['join'](_0x358212,_0x47d955);var _0x3ff91e=[];_0x3ff91e[_0xec31('0xad')]({'model':db[_0xec31('0xcc')],'as':'User','attributes':['id','fullname'],'raw':!![]});_0x3ff91e[_0xec31('0xad')]({'model':db[_0xec31('0xcd')],'as':'Contact','attributes':['id',_0xec31('0xce'),_0xec31('0xcf')],'raw':!![]});if(_0x19b244[_0xec31('0x38')]['attachments']){_0x3ff91e['push']({'model':db[_0xec31('0xd0')],'as':_0xec31('0xd0'),'raw':!![]});}var _0x227f8b=[{'model':db[_0xec31('0xb9')],'as':_0xec31('0xd1'),'attributes':['id',_0xec31('0x69'),_0xec31('0x6d'),_0xec31('0xd2'),_0xec31('0xd3'),_0xec31('0x76')],'include':_0x3ff91e}];_0x227f8b['push']({'model':db[_0xec31('0xd4')],'as':'Account','attributes':['id',_0xec31('0x2c')]});_0x227f8b['push']({'model':db[_0xec31('0xcc')],'as':_0xec31('0xd5'),'attributes':['id',_0xec31('0x30')]});return db['OpenchannelInteraction'][_0xec31('0x5a')]({'where':{'id':_0x19b244[_0xec31('0xb0')]['id']},'include':_0x227f8b})[_0xec31('0x8d')](handleEntityNotFound(_0x538e00,null))[_0xec31('0x8d')](function(_0x55c602){if(_0x55c602){var _0x58fe6f=_0x55c602[_0xec31('0xd6')]({'plain':!![]});fs[_0xec31('0xd7')](_0x34825c);var _0x5ef2ee={'channel':_0xec31('0xd8'),'account':_0x58fe6f[_0xec31('0xd9')][_0xec31('0x2c')],'agent':_0x58fe6f[_0xec31('0xd5')]?_0x58fe6f[_0xec31('0xd5')][_0xec31('0x30')]:'N.A.','createdAt':moment(_0x58fe6f['createdAt'])[_0xec31('0xca')](_0xec31('0xbe'))[_0xec31('0x96')](),'closedAt':_0x58fe6f[_0xec31('0xda')]?moment(_0x58fe6f[_0xec31('0xdb')])[_0xec31('0xca')](_0xec31('0xbe'))[_0xec31('0x96')]():'','disposition':_0x58fe6f['disposition'],'visibility':_0x58fe6f['threadId']?_0xec31('0xdc'):_0xec31('0xdd'),'messages':_(_0x58fe6f['Messages'])[_0xec31('0x7a')]({'secret':![]})[_0xec31('0x2f')](function(_0x19590c){if(_0x19590c[_0xec31('0xd0')]){var _0x1c3d28=path[_0xec31('0xc5')](_0x112c66,_0x19590c[_0xec31('0xd0')][_0xec31('0xde')]);if(fs[_0xec31('0xdf')](_0x1c3d28)){fs[_0xec31('0xe0')](_0x1c3d28)['pipe'](fs[_0xec31('0xe1')](path[_0xec31('0xc5')](_0x34825c,_0x19590c[_0xec31('0xd0')][_0xec31('0xde')])));}}return{'date':moment(_0x19590c[_0xec31('0x6d')])['format'](_0xec31('0xbe'))[_0xec31('0x96')](),'sender':_0x19590c[_0xec31('0xd2')]===_0xec31('0xe2')?_0x19590c['User']?_0x19590c['User'][_0xec31('0x30')]:'System':_0x19590c[_0xec31('0x5e')][_0xec31('0xce')]+(_0x19590c[_0xec31('0x5e')]['lastName']?'\x20'+_0x19590c['Contact'][_0xec31('0xcf')]:''),'body':_0x19590c['Attachment']?_0x19590c['Attachment'][_0xec31('0xde')]:_0x19590c[_0xec31('0x69')],'direction':_0x19590c[_0xec31('0xd2')]===_0xec31('0xe2')?'A':'C','secret':_0x19590c[_0xec31('0xd3')],'read':_0x19590c[_0xec31('0x76')],'attachment':_0x19590c[_0xec31('0xd0')]};})['value']()};return ejs[_0xec31('0xe3')](path[_0xec31('0xc5')](config[_0xec31('0xc6')],'server',_0xec31('0xe4'),_0xec31('0xe5')),{'interaction':_0x5ef2ee})[_0xec31('0x8d')](function(_0x2182d9){var _0x1cd30f=path[_0xec31('0xc5')](_0x34825c,_0xec31('0xe6')+_0x58fe6f['id']+'-'+_0x3adcec+'.pdf');var _0x1fec80={'path':_0x1cd30f,'channel':_0xec31('0xd8'),'interactionId':_0x58fe6f['id']};return pdf[_0xec31('0xe7')](_0x2182d9,_0x1fec80);})[_0xec31('0x8d')](function(){return new BPromise(function(_0xf9f8b7,_0x263745){zipdir(_0x34825c,{'saveTo':_0x110f08},function(_0x27ca65,_0x10ec3b){if(_0x27ca65)return _0x263745(_0x27ca65);return _0xf9f8b7(_0x10ec3b);});})[_0xec31('0x8d')](function(){return new BPromise(function(_0x53fea3,_0x162c05){rimraf(_0x34825c,function(_0x276e8a){if(_0x276e8a)_0x162c05(_0x276e8a);return _0x53fea3();});});})['then'](function(){return _0x538e00[_0xec31('0xe8')](_0x110f08,_0x47d955,function(_0x2a38e5){if(_0x2a38e5){console[_0xec31('0xe9')]('err',_0x2a38e5);}else{fs['unlinkSync'](_0x110f08);}});});});}else{return _0x538e00[_0xec31('0x29')](0xc8);}})[_0xec31('0xb4')](handleError(_0x538e00,null));};
\ No newline at end of file
+var _0xe6bf=['request-promise','moment','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../components/export/pdf','../../config/logger','../../config/license/util','../../mysqldb','defaults','redis','localhost','register','sendStatus','status','end','offset','undefined','limit','count','json','apply','reject','save','update','then','destroy','error','name','send','map','TagIds','Tags','split','forEach','index','rawAttributes','fieldName','type','key','query','filters','intersection','attributes','model','fields','length','hasOwnProperty','nolimit','order','sort','where','field','color','from','tools_tags','select','u.id','u.fullname','ui.OpenchannelInteractionId','user_has_openchannel_interactions','left_join','u.id\x20=\x20ui.UserId','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','users','o.id\x20=\x20i.UserId','a.id\x20=\x20i.OpenchannelAccountId','me.OpenchannelInteractionId\x20=\x20i.id','openchannel_interaction_has_tags','it.OpenchannelInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','expr','search','parseSearch','sqlOperator','conditions','find','unreadMessages','value','having','`\x20=\x200','Contact','operator','getFullTextValue','ContactId','buildExpression','start','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','User','$substring','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','text','body','keys','some','compact','isEmpty','i.OpenchannelAccountId\x20IN\x20?','concat','createdAt','parse','$gte','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','tag','isArray','filter','replace','isNumeric','i.id\x20LIKE\x20?','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','group','i.id','Sequelize','QueryTypes','SELECT','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','contactName','DESC','t.id\x20IN\x20?','resolve','i.OpenchannelAccountId\x20IS\x20NOT\x20NULL','user','role','getOpenchannelAccounts','i.OpenchannelAccountId\x20IS\x20NULL','OpenchannelAccountId','sequelize','toString','keyBy','merge','OpenchannelInteraction','a.key','Account.key','a.mandatoryDisposition','Account.mandatoryDisposition','c.firstName','Contact.lastName','c.email','Contact.email','c.phone','Contact.mobile','Contact.fax','o.fullname','Owner.fullname','o.internal','Owner.internal','ui.OpenchannelInteractionId\x20IN\x20?','OpenchannelInteractionId','push','all','rows','catch','show','params','includeAll','include','options','create','describe','addMessage','ids','getMessages','findOne','OpenchannelMessage','pick','YYYY-MM-DD\x20HH:mm:ss','addTags','setTags','omit','spread','Tag','findAll','emit','removeTags','download','join','root','server','files','tmp','attachments','format','transcript-%d-%s.zip','fullname','CmContact','firstName','lastName','Attachment','Messages','direction','secret','OpenchannelAccount','Account','Owner','get','Openchannel','N.A.','closedAt','disposition','threadId','Public','Private','basename','createReadStream','System','renderFile','views','downloadInteraction.ejs','.pdf','createPdfFromHTML','log','err','unlinkSync','eml-format','zip-dir','fast-json-patch'];(function(_0x390dd4,_0xa858c0){var _0x5805ee=function(_0x3c4cbf){while(--_0x3c4cbf){_0x390dd4['push'](_0x390dd4['shift']());}};_0x5805ee(++_0xa858c0);}(_0xe6bf,0x1d7));var _0xfe6b=function(_0x15942a,_0x13b58c){_0x15942a=_0x15942a-0x0;var _0x36a9fb=_0xe6bf[_0x15942a];return _0x36a9fb;};'use strict';var emlformat=require(_0xfe6b('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xfe6b('0x1'));var jsonpatch=require(_0xfe6b('0x2'));var rp=require(_0xfe6b('0x3'));var moment=require(_0xfe6b('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xfe6b('0x5'));var path=require(_0xfe6b('0x6'));var sox=require(_0xfe6b('0x7'));var csv=require(_0xfe6b('0x8'));var ejs=require(_0xfe6b('0x9'));var fs=require('fs');var fs_extra=require(_0xfe6b('0xa'));var _=require('lodash');var squel=require(_0xfe6b('0xb'));var crypto=require(_0xfe6b('0xc'));var jsforce=require('jsforce');var deskjs=require(_0xfe6b('0xd'));var toCsv=require('to-csv');var querystring=require(_0xfe6b('0xe'));var Papa=require(_0xfe6b('0xf'));var Redis=require(_0xfe6b('0x10'));var authService=require(_0xfe6b('0x11'));var qs=require(_0xfe6b('0x12'));var as=require(_0xfe6b('0x13'));var pdf=require(_0xfe6b('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xfe6b('0x15'))('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0xfe6b('0x16'));var db=require(_0xfe6b('0x17'))['db'];config['redis']=_[_0xfe6b('0x18')](config[_0xfe6b('0x19')],{'host':_0xfe6b('0x1a'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xfe6b('0x19')]));require('./openchannelInteraction.socket')[_0xfe6b('0x1b')](socket);function respondWithStatusCode(_0x3d56a7,_0x5a55a3){_0x5a55a3=_0x5a55a3||0xcc;return function(_0x106a89){if(_0x106a89){return _0x3d56a7[_0xfe6b('0x1c')](_0x5a55a3);}return _0x3d56a7[_0xfe6b('0x1d')](_0x5a55a3)[_0xfe6b('0x1e')]();};}function respondWithResult(_0xe5a434,_0x37abea){_0x37abea=_0x37abea||0xc8;return function(_0x1b2c96){if(_0x1b2c96){return _0xe5a434[_0xfe6b('0x1d')](_0x37abea)['json'](_0x1b2c96);}};}function respondWithFilteredResult(_0x36700e,_0x15c5ca){return function(_0x6c064e){if(_0x6c064e){var _0x4cc620=typeof _0x15c5ca[_0xfe6b('0x1f')]===_0xfe6b('0x20')&&typeof _0x15c5ca[_0xfe6b('0x21')]===_0xfe6b('0x20');var _0x58d8c8=_0x6c064e[_0xfe6b('0x22')];var _0x21eb9d=_0x4cc620?0x0:_0x15c5ca[_0xfe6b('0x1f')];var _0x2c55f0=_0x4cc620?_0x6c064e[_0xfe6b('0x22')]:_0x15c5ca[_0xfe6b('0x1f')]+_0x15c5ca[_0xfe6b('0x21')];var _0x5b1088;if(_0x2c55f0>=_0x58d8c8){_0x2c55f0=_0x58d8c8;_0x5b1088=0xc8;}else{_0x5b1088=0xce;}_0x36700e[_0xfe6b('0x1d')](_0x5b1088);return _0x36700e['set']('Content-Range',_0x21eb9d+'-'+_0x2c55f0+'/'+_0x58d8c8)[_0xfe6b('0x23')](_0x6c064e);}return null;};}function patchUpdates(_0x360ef8){return function(_0x28248c){try{jsonpatch[_0xfe6b('0x24')](_0x28248c,_0x360ef8,!![]);}catch(_0x675ee6){return BPromise[_0xfe6b('0x25')](_0x675ee6);}return _0x28248c[_0xfe6b('0x26')]();};}function saveUpdates(_0x32a3c7,_0x1d6472){return function(_0xdc47ec){if(_0xdc47ec){return _0xdc47ec[_0xfe6b('0x27')](_0x32a3c7)[_0xfe6b('0x28')](function(_0x25ba76){return _0x25ba76;});}return null;};}function removeEntity(_0x53012c,_0x2357bf){return function(_0x24626d){if(_0x24626d){return _0x24626d[_0xfe6b('0x29')]()['then'](function(){_0x53012c[_0xfe6b('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x294304,_0x1a44b4){return function(_0xc04223){if(!_0xc04223){_0x294304[_0xfe6b('0x1c')](0x194);}return _0xc04223;};}function handleError(_0x21246e,_0x44cd22){_0x44cd22=_0x44cd22||0x1f4;return function(_0x14d03c){logger[_0xfe6b('0x2a')](_0x14d03c['stack']);if(_0x14d03c[_0xfe6b('0x2b')]){delete _0x14d03c[_0xfe6b('0x2b')];}_0x21246e['status'](_0x44cd22)[_0xfe6b('0x2c')](_0x14d03c);};}function getInteractionUsers(_0x4a3ae3,_0xcdd89d){return new BPromise(function(_0x239184,_0x16edc9){try{if(_0xcdd89d[_0x4a3ae3['id']]){_0x4a3ae3['Users']=_[_0xfe6b('0x2d')](_0xcdd89d[_0x4a3ae3['id']],function(_0xc2bec2){return{'id':_0xc2bec2['id'],'fullname':_0xc2bec2['fullname']};});}}catch(_0x40459d){_0x16edc9(_0x40459d);}_0x239184(_0x4a3ae3);});}function getInteractionTags(_0x5edd2a,_0x575011){return new BPromise(function(_0x41393c,_0x4ba49e){try{if(_0x5edd2a[_0xfe6b('0x2e')]){_0x5edd2a[_0xfe6b('0x2f')]=[];_0x5edd2a[_0xfe6b('0x2e')][_0xfe6b('0x30')](',')[_0xfe6b('0x31')](function(_0x2df423){_0x5edd2a['Tags']['push'](_0x575011[_0x2df423]);});}delete _0x5edd2a['TagIds'];}catch(_0x1d6f98){_0x4ba49e(_0x1d6f98);}_0x41393c(_0x5edd2a);});}function updateOpenchannelInteraction(_0x33e420,_0x318791,_0x52d890){return new BPromise(function(_0x1ed4b0,_0x3ca8b0){return getInteractionUsers(_0x33e420,_0x52d890)[_0xfe6b('0x28')](function(_0x20470){return getInteractionTags(_0x20470,_0x318791);})[_0xfe6b('0x28')](function(_0x2fd37f){_0x1ed4b0(_0x2fd37f);})['catch'](function(_0x1e62bd){_0x3ca8b0(_0x1e62bd);});});}exports[_0xfe6b('0x32')]=function(_0x5cb83b,_0x5821b5){var _0x4ba79c={},_0x12ca5b={},_0x2abd39={'count':0x0,'rows':[]};var _0x4a66a0=_['map'](db['OpenchannelInteraction'][_0xfe6b('0x33')],function(_0x2d9025){return{'name':_0x2d9025[_0xfe6b('0x34')],'type':_0x2d9025[_0xfe6b('0x35')][_0xfe6b('0x36')]};});_0x12ca5b['model']=_['map'](_0x4a66a0,_0xfe6b('0x2b'));_0x12ca5b['query']=_['keys'](_0x5cb83b[_0xfe6b('0x37')]);_0x12ca5b[_0xfe6b('0x38')]=_[_0xfe6b('0x39')](_0x12ca5b['model'],_0x12ca5b[_0xfe6b('0x37')]);_0x4ba79c[_0xfe6b('0x3a')]=_[_0xfe6b('0x39')](_0x12ca5b[_0xfe6b('0x3b')],qs['fields'](_0x5cb83b[_0xfe6b('0x37')][_0xfe6b('0x3c')]));_0x4ba79c[_0xfe6b('0x3a')]=_0x4ba79c[_0xfe6b('0x3a')][_0xfe6b('0x3d')]?_0x4ba79c['attributes']:_0x12ca5b['model'];if(!_0x5cb83b[_0xfe6b('0x37')][_0xfe6b('0x3e')](_0xfe6b('0x3f'))){_0x4ba79c[_0xfe6b('0x21')]=qs[_0xfe6b('0x21')](_0x5cb83b[_0xfe6b('0x37')][_0xfe6b('0x21')]);_0x4ba79c[_0xfe6b('0x1f')]=qs[_0xfe6b('0x1f')](_0x5cb83b['query'][_0xfe6b('0x1f')]);}_0x4ba79c[_0xfe6b('0x40')]=qs[_0xfe6b('0x41')](_0x5cb83b[_0xfe6b('0x37')][_0xfe6b('0x41')]);_0x4ba79c[_0xfe6b('0x42')]=qs[_0xfe6b('0x38')](_['pick'](_0x5cb83b[_0xfe6b('0x37')],_0x12ca5b[_0xfe6b('0x38')]),_0x4a66a0);var _0x4061a6=[];var _0x512f85=squel['select']()[_0xfe6b('0x43')]('id')[_0xfe6b('0x43')](_0xfe6b('0x2b'))['field'](_0xfe6b('0x44'))[_0xfe6b('0x45')](_0xfe6b('0x46'));var _0x28b126=squel[_0xfe6b('0x47')]()[_0xfe6b('0x43')](_0xfe6b('0x48'))[_0xfe6b('0x43')](_0xfe6b('0x49'))[_0xfe6b('0x43')](_0xfe6b('0x4a'))[_0xfe6b('0x45')](_0xfe6b('0x4b'),'ui')[_0xfe6b('0x4c')]('users','u',_0xfe6b('0x4d'));var _0x2e8922=squel[_0xfe6b('0x47')]()[_0xfe6b('0x45')]('openchannel_interactions','i')[_0xfe6b('0x4c')](_0xfe6b('0x4e'),'c',_0xfe6b('0x4f'))[_0xfe6b('0x4c')](_0xfe6b('0x50'),'o',_0xfe6b('0x51'))[_0xfe6b('0x4c')]('openchannel_accounts','a',_0xfe6b('0x52'))[_0xfe6b('0x4c')]('openchannel_messages','me',_0xfe6b('0x53'))['left_join'](_0xfe6b('0x54'),'it',_0xfe6b('0x55'))[_0xfe6b('0x4c')]('tools_tags','t',_0xfe6b('0x56'));var _0x5b8da9=squel[_0xfe6b('0x57')]();var _0x51578f=[];var _0x53f617=squel[_0xfe6b('0x57')]();var _0x24497c;if(_0x5cb83b[_0xfe6b('0x37')][_0xfe6b('0x58')]){_0x24497c=as[_0xfe6b('0x59')](_0x5cb83b[_0xfe6b('0x37')][_0xfe6b('0x58')]);var _0x48cc4b=_0x24497c[_0xfe6b('0x5a')];for(var _0x256a80=0x0;_0x256a80<_0x24497c[_0xfe6b('0x5b')]['length'];_0x256a80++){var _0x2cad15=_0x24497c['conditions'][_0x256a80];var _0xa537b3='i';var _0x1594d6=_[_0xfe6b('0x5c')](_0x4a66a0,[_0xfe6b('0x2b'),_0x2cad15[_0xfe6b('0x43')]]);if(!_0x1594d6){switch(_0x2cad15['field']){case _0xfe6b('0x5d'):if(_0x2cad15[_0xfe6b('0x5e')]==0x1){_0x2e8922[_0xfe6b('0x5f')]('`'+_0x2cad15['field']+_0xfe6b('0x60'));}else{_0x2e8922[_0xfe6b('0x5f')]('`'+_0x2cad15['field']+'`\x20>\x200');}break;case _0xfe6b('0x61'):if(_0x2cad15[_0xfe6b('0x62')]==='$substring'){if(_0x2cad15[_0xfe6b('0x5e')]['split']('\x20')[_0xfe6b('0x3d')]>0x1){_0x5b8da9[_0x48cc4b]('MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0xfe6b('0x63')](_0x2cad15[_0xfe6b('0x5e')]),null);}else{var _0x5a30ce='%'+_0x2cad15[_0xfe6b('0x5e')]+'%';_0x5b8da9[_0x48cc4b]('c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?',_0x5a30ce,_0x5a30ce,_0x5a30ce);}}else{_0x1594d6=_[_0xfe6b('0x5c')](_0x4a66a0,[_0xfe6b('0x2b'),_0xfe6b('0x64')]);_0x2cad15[_0xfe6b('0x43')]=_0xfe6b('0x64');_0x527e95=as[_0xfe6b('0x65')](_0xa537b3,_0x1594d6[_0xfe6b('0x35')],_0x2cad15);_0x5b8da9[_0x48cc4b](_0x527e95['text'],_0x527e95[_0xfe6b('0x5e')][_0xfe6b('0x66')],_0x527e95['value'][_0xfe6b('0x1e')]);}break;case'Tag':var _0x31d72b=_0x2cad15[_0xfe6b('0x5e')]['split'](',')[_0xfe6b('0x2d')](function(_0x21f557){return Number(_0x21f557);});_0x31d72b[_0xfe6b('0x31')](function(_0x2ed1fc){_0x53f617['or'](_0xfe6b('0x67'),'%,'+_0x2ed1fc+',%');});_0x51578f=_['union'](_0x51578f,_0x31d72b);break;case _0xfe6b('0x68'):if(_0x2cad15[_0xfe6b('0x62')]===_0xfe6b('0x69')){_0x5b8da9[_0x48cc4b](_0xfe6b('0x6a'),'%'+_0x2cad15['value']+'%',null);}else{_0x1594d6=_[_0xfe6b('0x5c')](_0x4a66a0,[_0xfe6b('0x2b'),_0xfe6b('0x6b')]);_0x2cad15[_0xfe6b('0x43')]=_0xfe6b('0x6b');_0x527e95=as[_0xfe6b('0x65')](_0xa537b3,_0x1594d6['type'],_0x2cad15);_0x5b8da9[_0x48cc4b](_0x527e95[_0xfe6b('0x6c')],_0x527e95['value']['start'],_0x527e95['value'][_0xfe6b('0x1e')]);}break;case _0xfe6b('0x6d'):_0x527e95=as[_0xfe6b('0x65')]('me',null,_0x2cad15);_0x5b8da9[_0x48cc4b](_0x527e95[_0xfe6b('0x6c')],_0x527e95[_0xfe6b('0x5e')][_0xfe6b('0x66')],_0x527e95[_0xfe6b('0x5e')][_0xfe6b('0x1e')]);break;}}else{var _0x527e95=as['buildExpression'](_0xa537b3,_0x1594d6[_0xfe6b('0x35')],_0x2cad15);_0x5b8da9[_0x48cc4b](_0x527e95[_0xfe6b('0x6c')],_0x527e95[_0xfe6b('0x5e')][_0xfe6b('0x66')],_0x527e95[_0xfe6b('0x5e')][_0xfe6b('0x1e')]);}}}else{var _0x2ced1b=_(_0x5cb83b['query'])[_0xfe6b('0x6e')]()['map'](function(_0x5bf881){return _[_0xfe6b('0x6f')](_0x4a66a0,[_0xfe6b('0x2b'),_0x5bf881])?_0x5bf881:undefined;})[_0xfe6b('0x70')]()[_0xfe6b('0x5e')]();if(!_[_0xfe6b('0x71')](_0x2ced1b)){_0x2ced1b['forEach'](function(_0xb9b35f){if(_0xb9b35f==='OpenchannelAccountId'){_0x2e8922[_0xfe6b('0x42')](_0xfe6b('0x72'),[][_0xfe6b('0x73')](_0x5cb83b[_0xfe6b('0x37')][_0xb9b35f]));}else if(_0xb9b35f===_0xfe6b('0x74')){var _0xc814ff=JSON[_0xfe6b('0x75')](_0x5cb83b[_0xfe6b('0x37')][_0xb9b35f])[_0xfe6b('0x76')];var _0x1d222b=JSON['parse'](_0x5cb83b[_0xfe6b('0x37')][_0xb9b35f])[_0xfe6b('0x77')];_0x2e8922[_0xfe6b('0x42')](_0xfe6b('0x78'),_0xc814ff,_0x1d222b);}else{if(_0x5cb83b[_0xfe6b('0x37')][_0xb9b35f]===_0xfe6b('0x79')){_0x2e8922[_0xfe6b('0x42')]('i.'+_0xb9b35f+_0xfe6b('0x7a'));}else{_0x2e8922['where']('i.'+_0xb9b35f+_0xfe6b('0x7b'),_0x5cb83b['query'][_0xb9b35f]);}}});}if(_0x5cb83b[_0xfe6b('0x37')][_0xfe6b('0x7c')]){if(_0x5cb83b[_0xfe6b('0x37')][_0xfe6b('0x7c')]==0x1){_0x2e8922[_0xfe6b('0x5f')](_0xfe6b('0x7d'));}else{_0x2e8922[_0xfe6b('0x5f')](_0xfe6b('0x7e'));}}if(_0x5cb83b['query'][_0xfe6b('0x7f')]){_0x51578f=_[_0xfe6b('0x80')](_0x5cb83b[_0xfe6b('0x37')][_0xfe6b('0x7f')])?_0x5cb83b[_0xfe6b('0x37')][_0xfe6b('0x7f')]:new Array(_0x5cb83b[_0xfe6b('0x37')][_0xfe6b('0x7f')]);_0x51578f[_0xfe6b('0x31')](function(_0x498dc6){_0x53f617['or'](_0xfe6b('0x67'),'%,'+_0x498dc6+',%');});}if(_0x5cb83b[_0xfe6b('0x37')][_0xfe6b('0x81')]){var _0x4fc53c=_0x5cb83b[_0xfe6b('0x37')][_0xfe6b('0x81')][_0xfe6b('0x82')]('\x5c','\x5c\x5c')[_0xfe6b('0x82')](/'/g,'\x27\x27');if(qs[_0xfe6b('0x83')](_0x4fc53c)){_0x5b8da9['or'](_0xfe6b('0x84'),_0x4fc53c+'%');}else{_0x5b8da9['or']('MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs['getFullTextValue'](_0x4fc53c))['or']('i.from\x20LIKE\x20?',_0x4fc53c+'%')['or'](_0xfe6b('0x85'),_0x4fc53c+'%');}}}_0x2e8922[_0xfe6b('0x42')](_0x5b8da9);_0x2e8922[_0xfe6b('0x86')](_0xfe6b('0x87'));var _0x237079={'type':db[_0xfe6b('0x88')][_0xfe6b('0x89')][_0xfe6b('0x8a')],'raw':!![]};var _0x207552=_0x2e8922['clone']();_0x207552[_0xfe6b('0x43')]('i.id');_0x207552[_0xfe6b('0x43')](_0xfe6b('0x8b'),_0xfe6b('0x5d'));if(_0x4ba79c['order']){_0x4ba79c[_0xfe6b('0x40')]['forEach'](function(_0x31d0ff){var _0xa0d93=_0x31d0ff[0x0]===_0xfe6b('0x8c')?_0x31d0ff[0x0]:'i.'+_0x31d0ff[0x0];_0x2e8922['order'](_0xa0d93,_0x31d0ff[0x1]===_0xfe6b('0x8d')?![]:!![]);});}if(!_[_0xfe6b('0x71')](_0x51578f)){_0x2e8922[_0xfe6b('0x5f')](_0x53f617);_0x207552[_0xfe6b('0x42')](_0xfe6b('0x8e'),_0x51578f);}BPromise[_0xfe6b('0x8f')]()[_0xfe6b('0x28')](function(){if(!_0x24497c){if(_0x5cb83b[_0xfe6b('0x37')]['OpenchannelAccountId'])return;_0x207552[_0xfe6b('0x42')](_0xfe6b('0x90'));_0x2e8922[_0xfe6b('0x42')](_0xfe6b('0x90'));return;}if(_0x5cb83b[_0xfe6b('0x91')][_0xfe6b('0x92')]!=='agent')return;return _0x5cb83b['user'][_0xfe6b('0x93')]({'attributes':['id'],'raw':!![]})[_0xfe6b('0x28')](function(_0x36b2e5){if(_[_0xfe6b('0x71')](_0x36b2e5)){_0x207552['where'](_0xfe6b('0x94'));_0x2e8922[_0xfe6b('0x42')](_0xfe6b('0x94'));}else{_0x207552[_0xfe6b('0x42')](_0xfe6b('0x72'),_[_0xfe6b('0x2d')](_0x36b2e5,'id'));_0x2e8922['where'](_0xfe6b('0x72'),_[_0xfe6b('0x2d')](_0x36b2e5,'id'));}});})[_0xfe6b('0x28')](function(){if(_0x5cb83b[_0xfe6b('0x91')][_0xfe6b('0x92')]==='agent'&&!_0x24497c&&!_0x5cb83b[_0xfe6b('0x37')][_0xfe6b('0x95')])return[];return db[_0xfe6b('0x96')]['query'](_0x207552[_0xfe6b('0x97')](),_0x237079);})[_0xfe6b('0x28')](function(_0x24aead){_0x2abd39['count']=_0x24aead[_0xfe6b('0x3d')];if(_0x2abd39[_0xfe6b('0x22')]===0x0)return[];return db[_0xfe6b('0x96')][_0xfe6b('0x37')](_0x512f85['toString'](),_0x237079)[_0xfe6b('0x28')](function(_0x4b999b){_0x4061a6=_[_0xfe6b('0x98')](_0x4b999b,'id');_0x237079=_[_0xfe6b('0x99')](_0x237079,{'model':db[_0xfe6b('0x9a')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x5cb83b[_0xfe6b('0x37')][_0xfe6b('0x3c')]){_0x4ba79c[_0xfe6b('0x3a')][_0xfe6b('0x31')](function(_0x5c1bc0){_0x2e8922[_0xfe6b('0x43')]('i.'+_0x5c1bc0);});}else{_0x2e8922[_0xfe6b('0x43')]('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','unreadMessages');_0x2e8922[_0xfe6b('0x43')](_0xfe6b('0x9b'),_0xfe6b('0x9c'));_0x2e8922['field'](_0xfe6b('0x9d'),_0xfe6b('0x9e'));_0x2e8922['field']('CASE\x20WHEN\x20i.from\x20IS\x20NOT\x20NULL\x20AND\x20i.from\x20<>\x20\x27\x27\x20THEN\x20i.from\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END',_0xfe6b('0x8c'));_0x2e8922[_0xfe6b('0x43')]('i.*');_0x2e8922[_0xfe6b('0x43')](_0xfe6b('0x9f'),'Contact.firstName');_0x2e8922['field']('c.lastName',_0xfe6b('0xa0'));_0x2e8922[_0xfe6b('0x43')](_0xfe6b('0xa1'),_0xfe6b('0xa2'));_0x2e8922[_0xfe6b('0x43')](_0xfe6b('0xa3'),'Contact.phone');_0x2e8922[_0xfe6b('0x43')]('c.mobile',_0xfe6b('0xa4'));_0x2e8922[_0xfe6b('0x43')]('c.fax',_0xfe6b('0xa5'));_0x2e8922[_0xfe6b('0x43')](_0xfe6b('0xa6'),_0xfe6b('0xa7'));_0x2e8922[_0xfe6b('0x43')](_0xfe6b('0xa8'),_0xfe6b('0xa9'));_0x2e8922[_0xfe6b('0x43')]('GROUP_CONCAT(DISTINCT\x20t.id)',_0xfe6b('0x2e'));}if(_0x4ba79c[_0xfe6b('0x21')])_0x2e8922['limit'](_0x4ba79c['limit']);if(_0x4ba79c[_0xfe6b('0x1f')])_0x2e8922[_0xfe6b('0x1f')](_0x4ba79c[_0xfe6b('0x1f')]);return db['sequelize'][_0xfe6b('0x37')](_0x2e8922[_0xfe6b('0x97')](),_0x237079);})[_0xfe6b('0x28')](function(_0xf3f643){if(_0xf3f643[_0xfe6b('0x3d')]>0x0)_0x28b126[_0xfe6b('0x42')](_0xfe6b('0xaa'),_[_0xfe6b('0x2d')](_0xf3f643,'id'));return db[_0xfe6b('0x96')][_0xfe6b('0x37')](_0x28b126[_0xfe6b('0x97')](),_0x237079)[_0xfe6b('0x28')](function(_0x13116b){var _0x5e3170=_['groupBy'](_0x13116b,_0xfe6b('0xab'));var _0x267c83=[];_0xf3f643[_0xfe6b('0x31')](function(_0x24c678){_0x267c83[_0xfe6b('0xac')](updateOpenchannelInteraction(_0x24c678,_0x4061a6,_0x5e3170));});return BPromise[_0xfe6b('0xad')](_0x267c83);});});})[_0xfe6b('0x28')](function(_0x528b35){_0x2abd39[_0xfe6b('0xae')]=_0x528b35;return _0x2abd39;})[_0xfe6b('0x28')](respondWithFilteredResult(_0x5821b5,_0x4ba79c))[_0xfe6b('0xaf')](handleError(_0x5821b5,null));};exports[_0xfe6b('0xb0')]=function(_0x5e2ff4,_0xab5908){var _0x53155a={};if(_0x5e2ff4[_0xfe6b('0x37')][_0xfe6b('0x35')]&&_0x5e2ff4[_0xfe6b('0x37')][_0xfe6b('0x35')]==='from'){_0x53155a[_0xfe6b('0x45')]=_0x5e2ff4[_0xfe6b('0xb1')]['id'];}else{_0x53155a['id']=_0x5e2ff4[_0xfe6b('0xb1')]['id'];}var _0x4cbcd1={'raw':![],'where':_0x53155a},_0x1c58e0={};_0x1c58e0[_0xfe6b('0x3b')]=_['keys'](db[_0xfe6b('0x9a')]['rawAttributes']);_0x1c58e0[_0xfe6b('0x37')]=_[_0xfe6b('0x6e')](_0x5e2ff4['query']);_0x1c58e0[_0xfe6b('0x38')]=_[_0xfe6b('0x39')](_0x1c58e0['model'],_0x1c58e0['query']);_0x4cbcd1['attributes']=_[_0xfe6b('0x39')](_0x1c58e0[_0xfe6b('0x3b')],qs[_0xfe6b('0x3c')](_0x5e2ff4['query'][_0xfe6b('0x3c')]));_0x4cbcd1[_0xfe6b('0x3a')]=_0x4cbcd1[_0xfe6b('0x3a')]['length']?_0x4cbcd1[_0xfe6b('0x3a')]:_0x1c58e0[_0xfe6b('0x3b')];if(_0x5e2ff4[_0xfe6b('0x37')][_0xfe6b('0xb2')]){_0x4cbcd1[_0xfe6b('0xb3')]=[{'all':!![]}];}_0x4cbcd1=_[_0xfe6b('0x99')]({},_0x4cbcd1,_0x5e2ff4[_0xfe6b('0xb4')]);return db[_0xfe6b('0x9a')][_0xfe6b('0x5c')](_0x4cbcd1)['then'](handleEntityNotFound(_0xab5908,null))['then'](respondWithResult(_0xab5908,null))[_0xfe6b('0xaf')](handleError(_0xab5908,null));};exports[_0xfe6b('0xb5')]=function(_0x59ce0c,_0x125c73){return db['OpenchannelInteraction']['create'](_0x59ce0c[_0xfe6b('0x6d')],{})[_0xfe6b('0x28')](respondWithResult(_0x125c73,0xc9))[_0xfe6b('0xaf')](handleError(_0x125c73,null));};exports[_0xfe6b('0x27')]=function(_0x467dab,_0x1d7daa){if(_0x467dab[_0xfe6b('0x6d')]['id']){delete _0x467dab['body']['id'];}return db['OpenchannelInteraction'][_0xfe6b('0x5c')]({'where':{'id':_0x467dab[_0xfe6b('0xb1')]['id']}})[_0xfe6b('0x28')](handleEntityNotFound(_0x1d7daa,null))[_0xfe6b('0x28')](saveUpdates(_0x467dab[_0xfe6b('0x6d')],null))[_0xfe6b('0x28')](respondWithResult(_0x1d7daa,null))['catch'](handleError(_0x1d7daa,null));};exports['destroy']=function(_0x27287d,_0x20d34e){return db[_0xfe6b('0x9a')][_0xfe6b('0x5c')]({'where':{'id':_0x27287d[_0xfe6b('0xb1')]['id']}})[_0xfe6b('0x28')](handleEntityNotFound(_0x20d34e,null))[_0xfe6b('0x28')](removeEntity(_0x20d34e,null))[_0xfe6b('0xaf')](handleError(_0x20d34e,null));};exports[_0xfe6b('0xb6')]=function(_0x3292d3,_0x11625c){return db[_0xfe6b('0x9a')][_0xfe6b('0xb6')]()['then'](respondWithResult(_0x11625c,null))[_0xfe6b('0xaf')](handleError(_0x11625c,null));};exports[_0xfe6b('0xb7')]=function(_0x157d6a,_0x7b59c0,_0x7509b){return db['OpenchannelMessage'][_0xfe6b('0x5c')]({'where':{'id':_0x157d6a[_0xfe6b('0xb1')]['id']}})[_0xfe6b('0x28')](handleEntityNotFound(_0x7b59c0,null))['then'](function(_0x220767){if(_0x220767){return _0x220767[_0xfe6b('0xb7')](_0x157d6a[_0xfe6b('0x6d')][_0xfe6b('0xb8')],_['omit'](_0x157d6a[_0xfe6b('0x6d')],[_0xfe6b('0xb8'),'id'])||{});}})['then'](respondWithResult(_0x7b59c0,null))['catch'](handleError(_0x7b59c0,null));};exports[_0xfe6b('0xb9')]=function(_0x33a349,_0x2a9173,_0x46d0e2){var _0x4e60ea={'raw':![],'where':{}};var _0x4340d2={};var _0x1f2550={'count':0x0,'rows':[]};return db[_0xfe6b('0x9a')][_0xfe6b('0xba')]({'where':{'id':_0x33a349[_0xfe6b('0xb1')]['id']}})['then'](handleEntityNotFound(_0x2a9173,null))[_0xfe6b('0x28')](function(_0x54ddef){if(_0x54ddef){_0x4340d2['model']=_[_0xfe6b('0x6e')](db[_0xfe6b('0xbb')][_0xfe6b('0x33')]);_0x4340d2[_0xfe6b('0x37')]=_['keys'](_0x33a349[_0xfe6b('0x37')]);_0x4340d2[_0xfe6b('0x38')]=_[_0xfe6b('0x39')](_0x4340d2[_0xfe6b('0x3b')],_0x4340d2[_0xfe6b('0x37')]);_0x4e60ea[_0xfe6b('0x3a')]=_['intersection'](_0x4340d2[_0xfe6b('0x3b')],qs[_0xfe6b('0x3c')](_0x33a349[_0xfe6b('0x37')][_0xfe6b('0x3c')]));_0x4e60ea['attributes']=_0x4e60ea['attributes'][_0xfe6b('0x3d')]?_0x4e60ea['attributes']:_0x4340d2['model'];if(!_0x33a349[_0xfe6b('0x37')]['hasOwnProperty']('nolimit')){_0x4e60ea[_0xfe6b('0x21')]=qs[_0xfe6b('0x21')](_0x33a349[_0xfe6b('0x37')][_0xfe6b('0x21')]);_0x4e60ea[_0xfe6b('0x1f')]=qs[_0xfe6b('0x1f')](_0x33a349[_0xfe6b('0x37')][_0xfe6b('0x1f')]);}_0x4e60ea[_0xfe6b('0x40')]=qs[_0xfe6b('0x41')](_0x33a349[_0xfe6b('0x37')]['sort']);_0x4e60ea[_0xfe6b('0x42')]=qs[_0xfe6b('0x38')](_[_0xfe6b('0xbc')](_0x33a349[_0xfe6b('0x37')],_0x4340d2[_0xfe6b('0x38')]));_0x4e60ea[_0xfe6b('0x42')]['OpenchannelInteractionId']=_0x54ddef['id'];if(_0x33a349['query']['filter']){_0x4e60ea[_0xfe6b('0x42')]=_['merge'](_0x4e60ea[_0xfe6b('0x42')],{'$or':_[_0xfe6b('0x2d')](_0x4e60ea[_0xfe6b('0x3a')],function(_0x2cefe5){var _0x5e0024={};_0x5e0024[_0x2cefe5]={'$like':'%'+_0x33a349['query'][_0xfe6b('0x81')]+'%'};return _0x5e0024;})});}if(_0x33a349[_0xfe6b('0x37')][_0xfe6b('0x76')]){var _0x235da5=_0x33a349[_0xfe6b('0x37')][_0xfe6b('0x76')]['split'](',');var _0x1e0aa5={};_0x1e0aa5[_0x235da5[0x0]]={'$gte':moment(_0x235da5[0x1])['format'](_0xfe6b('0xbd'))};_0x4e60ea[_0xfe6b('0x42')]=_[_0xfe6b('0x99')](_0x4e60ea[_0xfe6b('0x42')],_0x1e0aa5);}_0x4e60ea=_[_0xfe6b('0x99')]({},_0x4e60ea,_0x33a349[_0xfe6b('0xb4')]);return db['OpenchannelMessage'][_0xfe6b('0x22')]({'where':_0x4e60ea[_0xfe6b('0x42')]})['then'](function(_0x1159d6){_0x1f2550[_0xfe6b('0x22')]=_0x1159d6;if(_0x33a349['query'][_0xfe6b('0xb2')]){_0x4e60ea[_0xfe6b('0xb3')]=[{'all':!![]}];}return db[_0xfe6b('0xbb')]['findAll'](_0x4e60ea);})[_0xfe6b('0x28')](function(_0x46e526){_0x1f2550[_0xfe6b('0xae')]=_0x46e526;return _0x1f2550;});}})[_0xfe6b('0x28')](respondWithFilteredResult(_0x2a9173,_0x4e60ea))[_0xfe6b('0xaf')](handleError(_0x2a9173,null));};exports[_0xfe6b('0xbe')]=function(_0x2e3d4c,_0x254dd1,_0xbc88a8){return db[_0xfe6b('0x9a')][_0xfe6b('0x5c')]({'where':{'id':_0x2e3d4c[_0xfe6b('0xb1')]['id']}})[_0xfe6b('0x28')](handleEntityNotFound(_0x254dd1,null))[_0xfe6b('0x28')](function(_0x42d643){if(_0x42d643){return _0x42d643[_0xfe6b('0xbf')](_0x2e3d4c[_0xfe6b('0x6d')]['ids'],_[_0xfe6b('0xc0')](_0x2e3d4c[_0xfe6b('0x6d')],[_0xfe6b('0xb8'),'id'])||{})[_0xfe6b('0xc1')](function(){return db[_0xfe6b('0xc2')][_0xfe6b('0xc3')]({'attributes':['id',_0xfe6b('0x2b'),_0xfe6b('0x44')],'where':{'id':_0x2e3d4c['body'][_0xfe6b('0xb8')]}});})['then'](function(_0x5c2840){socket[_0xfe6b('0xc4')]('openchannelInteractionTags:save',{'id':Number(_0x2e3d4c[_0xfe6b('0xb1')]['id']),'tags':_0x5c2840||[]});return{'id':Number(_0x2e3d4c['params']['id']),'tags':_0x5c2840||[]};});}})[_0xfe6b('0x28')](respondWithResult(_0x254dd1,null))[_0xfe6b('0xaf')](handleError(_0x254dd1,null));};exports[_0xfe6b('0xc5')]=function(_0x436d02,_0x5827aa,_0x5a5a9b){return db[_0xfe6b('0x9a')][_0xfe6b('0x5c')]({'where':{'id':_0x436d02[_0xfe6b('0xb1')]['id']}})[_0xfe6b('0x28')](handleEntityNotFound(_0x5827aa,null))['then'](function(_0x4329b1){if(_0x4329b1){return _0x4329b1['removeTags'](_0x436d02[_0xfe6b('0x37')]['ids']);}})[_0xfe6b('0x28')](respondWithStatusCode(_0x5827aa,null))[_0xfe6b('0xaf')](handleError(_0x5827aa,null));};exports[_0xfe6b('0xc6')]=function(_0xf106ea,_0x15bd64){var _0x5c8f98=moment()['unix']()[_0xfe6b('0x97')]();var _0x5b2427=path[_0xfe6b('0xc7')](config[_0xfe6b('0xc8')],_0xfe6b('0xc9'),_0xfe6b('0xca'),_0xfe6b('0xcb'));var _0x5a77b2=path[_0xfe6b('0xc7')](config[_0xfe6b('0xc8')],_0xfe6b('0xc9'),_0xfe6b('0xca'),_0xfe6b('0xcc'));var _0x18f4e5=path[_0xfe6b('0xc7')](_0x5b2427,_0x5c8f98);var _0x2248bd=util[_0xfe6b('0xcd')](_0xfe6b('0xce'),_0xf106ea[_0xfe6b('0xb1')]['id'],_0x5c8f98);var _0x336604=path['join'](_0x5b2427,_0x2248bd);var _0xd1d197=[];_0xd1d197[_0xfe6b('0xac')]({'model':db[_0xfe6b('0x68')],'as':_0xfe6b('0x68'),'attributes':['id',_0xfe6b('0xcf')],'raw':!![]});_0xd1d197[_0xfe6b('0xac')]({'model':db[_0xfe6b('0xd0')],'as':_0xfe6b('0x61'),'attributes':['id',_0xfe6b('0xd1'),_0xfe6b('0xd2')],'raw':!![]});if(_0xf106ea['query']['attachments']){_0xd1d197[_0xfe6b('0xac')]({'model':db[_0xfe6b('0xd3')],'as':'Attachment','raw':!![]});}var _0x28977b=[{'model':db[_0xfe6b('0xbb')],'as':_0xfe6b('0xd4'),'attributes':['id','body','createdAt',_0xfe6b('0xd5'),_0xfe6b('0xd6'),'read'],'include':_0xd1d197}];_0x28977b[_0xfe6b('0xac')]({'model':db[_0xfe6b('0xd7')],'as':_0xfe6b('0xd8'),'attributes':['id',_0xfe6b('0x2b')]});_0x28977b[_0xfe6b('0xac')]({'model':db[_0xfe6b('0x68')],'as':_0xfe6b('0xd9'),'attributes':['id','fullname']});return db[_0xfe6b('0x9a')][_0xfe6b('0x5c')]({'where':{'id':_0xf106ea[_0xfe6b('0xb1')]['id']},'include':_0x28977b})['then'](handleEntityNotFound(_0x15bd64,null))[_0xfe6b('0x28')](function(_0x2dbf8f){if(_0x2dbf8f){var _0x34854f=_0x2dbf8f[_0xfe6b('0xda')]({'plain':!![]});fs['mkdirSync'](_0x18f4e5);var _0x480bcc={'channel':_0xfe6b('0xdb'),'account':_0x34854f[_0xfe6b('0xd8')]['name'],'agent':_0x34854f['Owner']?_0x34854f[_0xfe6b('0xd9')]['fullname']:_0xfe6b('0xdc'),'createdAt':moment(_0x34854f[_0xfe6b('0x74')])[_0xfe6b('0xcd')]('YYYY-MM-DD\x20HH:mm:ss')[_0xfe6b('0x97')](),'closedAt':_0x34854f['closed']?moment(_0x34854f[_0xfe6b('0xdd')])[_0xfe6b('0xcd')]('YYYY-MM-DD\x20HH:mm:ss')[_0xfe6b('0x97')]():'','disposition':_0x34854f[_0xfe6b('0xde')],'visibility':_0x34854f[_0xfe6b('0xdf')]?_0xfe6b('0xe0'):_0xfe6b('0xe1'),'messages':_(_0x34854f['Messages'])[_0xfe6b('0x81')]({'secret':![]})[_0xfe6b('0x2d')](function(_0x43b248){if(_0x43b248[_0xfe6b('0xd3')]){var _0x1ecadd=path[_0xfe6b('0xc7')](_0x5a77b2,_0x43b248[_0xfe6b('0xd3')][_0xfe6b('0xe2')]);if(fs['existsSync'](_0x1ecadd)){fs[_0xfe6b('0xe3')](_0x1ecadd)['pipe'](fs['createWriteStream'](path[_0xfe6b('0xc7')](_0x18f4e5,_0x43b248[_0xfe6b('0xd3')][_0xfe6b('0xe2')])));}}return{'date':moment(_0x43b248[_0xfe6b('0x74')])[_0xfe6b('0xcd')](_0xfe6b('0xbd'))[_0xfe6b('0x97')](),'sender':_0x43b248[_0xfe6b('0xd5')]==='out'?_0x43b248[_0xfe6b('0x68')]?_0x43b248['User'][_0xfe6b('0xcf')]:_0xfe6b('0xe4'):_0x43b248[_0xfe6b('0x61')][_0xfe6b('0xd1')]+(_0x43b248[_0xfe6b('0x61')]['lastName']?'\x20'+_0x43b248[_0xfe6b('0x61')]['lastName']:''),'body':_0x43b248[_0xfe6b('0xd3')]?_0x43b248[_0xfe6b('0xd3')][_0xfe6b('0xe2')]:_0x43b248['body'],'direction':_0x43b248['direction']==='out'?'A':'C','secret':_0x43b248[_0xfe6b('0xd6')],'read':_0x43b248[_0xfe6b('0x7c')],'attachment':_0x43b248[_0xfe6b('0xd3')]};})['value']()};return ejs[_0xfe6b('0xe5')](path[_0xfe6b('0xc7')](config[_0xfe6b('0xc8')],'server',_0xfe6b('0xe6'),_0xfe6b('0xe7')),{'interaction':_0x480bcc})[_0xfe6b('0x28')](function(_0xf01e30){var _0x5c62d3=path['join'](_0x18f4e5,'transcript-'+_0x34854f['id']+'-'+_0x5c8f98+_0xfe6b('0xe8'));var _0x305a9d={'path':_0x5c62d3,'channel':_0xfe6b('0xdb'),'interactionId':_0x34854f['id']};return pdf[_0xfe6b('0xe9')](_0xf01e30,_0x305a9d);})['then'](function(){return new BPromise(function(_0x2c41ac,_0x6c648b){zipdir(_0x18f4e5,{'saveTo':_0x336604},function(_0x270b09,_0x482747){if(_0x270b09)return _0x6c648b(_0x270b09);return _0x2c41ac(_0x482747);});})[_0xfe6b('0x28')](function(){return new BPromise(function(_0x56209a,_0x3d5639){rimraf(_0x18f4e5,function(_0x60521e){if(_0x60521e)_0x3d5639(_0x60521e);return _0x56209a();});});})[_0xfe6b('0x28')](function(){return _0x15bd64['download'](_0x336604,_0x2248bd,function(_0x5f5003){if(_0x5f5003){console[_0xfe6b('0xea')](_0xfe6b('0xeb'),_0x5f5003);}else{fs[_0xfe6b('0xec')](_0x336604);}});});});}else{return _0x15bd64['sendStatus'](0xc8);}})[_0xfe6b('0xaf')](handleError(_0x15bd64,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3ac2=['exports','events','../../mysqldb','OpenchannelMessage','setMaxListeners','save','update','remove','getUsers','then','setDataValue','map','findAll','unreadMessages','emit','hasOwnProperty','hook'];(function(_0x1c38e4,_0x49222e){var _0x3eb44f=function(_0x3752d4){while(--_0x3752d4){_0x1c38e4['push'](_0x1c38e4['shift']());}};_0x3eb44f(++_0x49222e);}(_0x3ac2,0x111));var _0x23ac=function(_0xba4267,_0x2e88c9){_0xba4267=_0xba4267-0x0;var _0x42a19a=_0x3ac2[_0xba4267];return _0x42a19a;};'use strict';var EventEmitter=require(_0x23ac('0x0'));var OpenchannelInteraction=require('../../mysqldb')['db']['OpenchannelInteraction'];var OpenchannelMessage=require(_0x23ac('0x1'))['db'][_0x23ac('0x2')];var OpenchannelInteractionEvents=new EventEmitter();OpenchannelInteractionEvents[_0x23ac('0x3')](0x0);var events={'afterCreate':_0x23ac('0x4'),'afterUpdate':_0x23ac('0x5'),'afterDestroy':_0x23ac('0x6')};function emitEvent(_0x1380dd){return function(_0x27033b,_0x3769ff,_0xa7a639){_0x27033b[_0x23ac('0x7')]({'attributes':['id'],'raw':!![]})[_0x23ac('0x8')](function(_0x31c1c4){_0x27033b[_0x23ac('0x9')]('Users',_0x31c1c4[_0x23ac('0xa')](function(_0x2699ff){return{'id':_0x2699ff['id']};}));return OpenchannelMessage[_0x23ac('0xb')]({'where':{'OpenchannelInteractionId':_0x27033b['id'],'direction':'in','read':![]},'raw':!![]});})[_0x23ac('0x8')](function(_0x2872c6){_0x27033b['setDataValue'](_0x23ac('0xc'),_0x2872c6['length']);OpenchannelInteractionEvents[_0x23ac('0xd')](_0x1380dd+':'+_0x27033b['id'],_0x27033b);OpenchannelInteractionEvents['emit'](_0x1380dd,_0x27033b);_0xa7a639(null);})['catch'](_0xa7a639(null));};}for(var e in events){if(events[_0x23ac('0xe')](e)){var event=events[e];OpenchannelInteraction[_0x23ac('0xf')](e,emitEvent(event));}}module[_0x23ac('0x10')]=OpenchannelInteractionEvents;
\ No newline at end of file
+var _0xd43d=['hook','exports','events','../../mysqldb','setMaxListeners','getUsers','setDataValue','Users','findAll','unreadMessages','length','emit','hasOwnProperty'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0xd43d,0x1a2));var _0xdd43=function(_0x1b656a,_0x5fd087){_0x1b656a=_0x1b656a-0x0;var _0x3f79be=_0xd43d[_0x1b656a];return _0x3f79be;};'use strict';var EventEmitter=require(_0xdd43('0x0'));var OpenchannelInteraction=require(_0xdd43('0x1'))['db']['OpenchannelInteraction'];var OpenchannelMessage=require('../../mysqldb')['db']['OpenchannelMessage'];var OpenchannelInteractionEvents=new EventEmitter();OpenchannelInteractionEvents[_0xdd43('0x2')](0x0);var events={'afterCreate':'save','afterUpdate':'update','afterDestroy':'remove'};function emitEvent(_0x14db12){return function(_0x20743a,_0x5df1cd,_0x461556){_0x20743a[_0xdd43('0x3')]({'attributes':['id'],'raw':!![]})['then'](function(_0x27641e){_0x20743a[_0xdd43('0x4')](_0xdd43('0x5'),_0x27641e['map'](function(_0xe7f969){return{'id':_0xe7f969['id']};}));return OpenchannelMessage[_0xdd43('0x6')]({'where':{'OpenchannelInteractionId':_0x20743a['id'],'direction':'in','read':![]},'raw':!![]});})['then'](function(_0x33095a){_0x20743a['setDataValue'](_0xdd43('0x7'),_0x33095a[_0xdd43('0x8')]);OpenchannelInteractionEvents[_0xdd43('0x9')](_0x14db12+':'+_0x20743a['id'],_0x20743a);OpenchannelInteractionEvents['emit'](_0x14db12,_0x20743a);_0x461556(null);})['catch'](_0x461556(null));};}for(var e in events){if(events[_0xdd43('0xa')](e)){var event=events[e];OpenchannelInteraction[_0xdd43('0xb')](e,emitEvent(event));}}module[_0xdd43('0xc')]=OpenchannelInteractionEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa693=['./openchannelInteraction.attributes','define','openchannel_interactions','utf8mb4_unicode_ci','changed','closed','lodash','api','moment','bluebird','request-promise'];(function(_0x2b1bfe,_0x1eee61){var _0x900ef8=function(_0x24ea99){while(--_0x24ea99){_0x2b1bfe['push'](_0x2b1bfe['shift']());}};_0x900ef8(++_0x1eee61);}(_0xa693,0x17c));var _0x3a69=function(_0x36feb2,_0x53abef){_0x36feb2=_0x36feb2-0x0;var _0x292b43=_0xa693[_0x36feb2];return _0x292b43;};'use strict';var _=require(_0x3a69('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x3a69('0x1'));var moment=require(_0x3a69('0x2'));var BPromise=require(_0x3a69('0x3'));var rp=require(_0x3a69('0x4'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x3a69('0x5'));module['exports']=function(_0xf04f1b,_0x30fc9f){return _0xf04f1b[_0x3a69('0x6')]('OpenchannelInteraction',attributes,{'tableName':_0x3a69('0x7'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':'utf8mb4','collate':_0x3a69('0x8'),'hooks':{'beforeUpdate':function(_0x3f5c50,_0x4d9332,_0x27c626){if(_0x3f5c50[_0x3a69('0x9')](_0x3a69('0xa'))){_0x3f5c50['closedAt']=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');}_0x27c626(null,_0x3f5c50);}}});};
\ No newline at end of file
+var _0x2fb7=['OpenchannelInteraction','openchannel_interactions','utf8mb4','changed','closed','closedAt','format','YYYY-MM-DD\x20HH:mm:ss','util','../../config/logger','api','moment','request-promise','path','rimraf','./openchannelInteraction.attributes','exports'];(function(_0x40a045,_0x516f0e){var _0x1a687c=function(_0x48c9fe){while(--_0x48c9fe){_0x40a045['push'](_0x40a045['shift']());}};_0x1a687c(++_0x516f0e);}(_0x2fb7,0x90));var _0x72fb=function(_0x50937b,_0x32f40f){_0x50937b=_0x50937b-0x0;var _0x5b6634=_0x2fb7[_0x50937b];return _0x5b6634;};'use strict';var _=require('lodash');var util=require(_0x72fb('0x0'));var logger=require(_0x72fb('0x1'))(_0x72fb('0x2'));var moment=require(_0x72fb('0x3'));var BPromise=require('bluebird');var rp=require(_0x72fb('0x4'));var fs=require('fs');var path=require(_0x72fb('0x5'));var rimraf=require(_0x72fb('0x6'));var config=require('../../config/environment');var attributes=require(_0x72fb('0x7'));module[_0x72fb('0x8')]=function(_0x332d12,_0x12abd5){return _0x332d12['define'](_0x72fb('0x9'),attributes,{'tableName':_0x72fb('0xa'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x72fb('0xb'),'collate':'utf8mb4_unicode_ci','hooks':{'beforeUpdate':function(_0xf0489,_0x1926d8,_0x38f64e){if(_0xf0489[_0x72fb('0xc')](_0x72fb('0xd'))){_0xf0489[_0x72fb('0xe')]=moment()[_0x72fb('0xf')](_0x72fb('0x10'));}_0x38f64e(null,_0xf0489);}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcf5c=['socket.io-emitter','./openchannelInteraction.socket','request','then','info','request\x20sent','debug','OpenchannelInteraction,\x20%s,\x20%s,\x20%s','stringify','error','message','OpenchannelInteraction,\x20%s,\x20%s','result','catch','UpdateOpenchannelInteraction','OpenchannelInteraction','body','options','raw','where','limit','AddTagsToOpenchannelInteraction','find','addTags','ids','omit','spread','AddTags','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost'];(function(_0x3fe5ac,_0x3f6ef7){var _0x4e8ba3=function(_0x9c7838){while(--_0x9c7838){_0x3fe5ac['push'](_0x3fe5ac['shift']());}};_0x4e8ba3(++_0x3f6ef7);}(_0xcf5c,0xa0));var _0xccf5=function(_0x5b644e,_0x2e5e07){_0x5b644e=_0x5b644e-0x0;var _0x49c6bf=_0xcf5c[_0x5b644e];return _0x49c6bf;};'use strict';var _=require('lodash');var util=require(_0xccf5('0x0'));var moment=require(_0xccf5('0x1'));var BPromise=require(_0xccf5('0x2'));var rs=require(_0xccf5('0x3'));var fs=require('fs');var Redis=require(_0xccf5('0x4'));var db=require(_0xccf5('0x5'))['db'];var utils=require(_0xccf5('0x6'));var logger=require(_0xccf5('0x7'))(_0xccf5('0x8'));var config=require(_0xccf5('0x9'));var jayson=require(_0xccf5('0xa'));var client=jayson[_0xccf5('0xb')][_0xccf5('0xc')]({'port':0x232a});config[_0xccf5('0xd')]=_[_0xccf5('0xe')](config['redis'],{'host':_0xccf5('0xf'),'port':0x18eb});var socket=require(_0xccf5('0x10'))(new Redis(config[_0xccf5('0xd')]));require(_0xccf5('0x11'))['register'](socket);function respondWithRpcPromise(_0x3e8c2c,_0x5a866f,_0x496409){return new BPromise(function(_0x13e0ac,_0xa4df47){return client[_0xccf5('0x12')](_0x3e8c2c,_0x496409)[_0xccf5('0x13')](function(_0x3643af){logger[_0xccf5('0x14')]('OpenchannelInteraction,\x20%s,\x20%s',_0x5a866f,_0xccf5('0x15'));logger[_0xccf5('0x16')](_0xccf5('0x17'),_0x5a866f,'request\x20sent',JSON[_0xccf5('0x18')](_0x3643af));if(_0x3643af[_0xccf5('0x19')]){if(_0x3643af[_0xccf5('0x19')]['code']===0x1f4){logger[_0xccf5('0x19')]('OpenchannelInteraction,\x20%s,\x20%s',_0x5a866f,_0x3643af['error'][_0xccf5('0x1a')]);return _0xa4df47(_0x3643af['error']['message']);}logger[_0xccf5('0x19')](_0xccf5('0x1b'),_0x5a866f,_0x3643af[_0xccf5('0x19')][_0xccf5('0x1a')]);return _0x13e0ac(_0x3643af[_0xccf5('0x19')][_0xccf5('0x1a')]);}else{logger[_0xccf5('0x14')]('OpenchannelInteraction,\x20%s,\x20%s',_0x5a866f,_0xccf5('0x15'));_0x13e0ac(_0x3643af[_0xccf5('0x1c')][_0xccf5('0x1a')]);}})[_0xccf5('0x1d')](function(_0x485605){logger['error'](_0xccf5('0x1b'),_0x5a866f,_0x485605);_0xa4df47(_0x485605);});});}exports[_0xccf5('0x1e')]=function(_0x2f29ac){var _0x3ba079=this;return new Promise(function(_0x433783,_0x38f14a){return db[_0xccf5('0x1f')]['update'](_0x2f29ac[_0xccf5('0x20')],{'raw':_0x2f29ac[_0xccf5('0x21')]?_0x2f29ac['options'][_0xccf5('0x22')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x2f29ac[_0xccf5('0x21')]?_0x2f29ac[_0xccf5('0x21')][_0xccf5('0x23')]||null:null,'attributes':_0x2f29ac['options']?_0x2f29ac[_0xccf5('0x21')]['attributes']||null:null,'limit':_0x2f29ac['options']?_0x2f29ac[_0xccf5('0x21')][_0xccf5('0x24')]||null:null})['then'](function(_0xce2132){logger['info'](_0xccf5('0x1e'),_0x2f29ac);logger[_0xccf5('0x16')](_0xccf5('0x1e'),_0x2f29ac,JSON[_0xccf5('0x18')](_0xce2132));_0x433783(_0xce2132);})['catch'](function(_0x453768){logger[_0xccf5('0x19')](_0xccf5('0x1e'),_0x453768[_0xccf5('0x1a')],_0x2f29ac);_0x38f14a(_0x3ba079['error'](0x1f4,_0x453768[_0xccf5('0x1a')]));});});};exports[_0xccf5('0x25')]=function(_0x7002f1){return new Promise(function(_0x483656,_0x5947a6){return db[_0xccf5('0x1f')][_0xccf5('0x26')]({'where':_0x7002f1['options']?_0x7002f1[_0xccf5('0x21')][_0xccf5('0x23')]||null:null})[_0xccf5('0x13')](function(_0x400267){if(_0x400267){return _0x400267[_0xccf5('0x27')](_0x7002f1['body'][_0xccf5('0x28')],_[_0xccf5('0x29')](_0x7002f1['body'],[_0xccf5('0x28'),'id'])||{});}})[_0xccf5('0x2a')](function(_0x576173){logger['info'](_0xccf5('0x2b'),_0x7002f1);logger[_0xccf5('0x16')]('AddTags',_0x7002f1,JSON[_0xccf5('0x18')](_0x576173));_0x483656(_0x576173);})[_0xccf5('0x1d')](function(_0x46563a){logger[_0xccf5('0x19')]('AddTags',_0x46563a[_0xccf5('0x1a')],_0x7002f1);_0x5947a6(_this[_0xccf5('0x19')](0x1f4,_0x46563a[_0xccf5('0x1a')]));});});};
\ No newline at end of file
+var _0x9c81=['UpdateOpenchannelInteraction','where','addTags','ids','omit','spread','AddTags','stringify','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./openchannelInteraction.socket','request','info','OpenchannelInteraction,\x20%s,\x20%s','debug','OpenchannelInteraction,\x20%s,\x20%s,\x20%s','code','error','message','request\x20sent','catch','OpenchannelInteraction','update','body','options','raw','attributes','limit','then'];(function(_0x52e0ee,_0x52f7c1){var _0x32534c=function(_0x535d65){while(--_0x535d65){_0x52e0ee['push'](_0x52e0ee['shift']());}};_0x32534c(++_0x52f7c1);}(_0x9c81,0x110));var _0x19c8=function(_0x29bbd,_0x14106f){_0x29bbd=_0x29bbd-0x0;var _0xd645e8=_0x9c81[_0x29bbd];return _0xd645e8;};'use strict';var _=require(_0x19c8('0x0'));var util=require(_0x19c8('0x1'));var moment=require(_0x19c8('0x2'));var BPromise=require(_0x19c8('0x3'));var rs=require(_0x19c8('0x4'));var fs=require('fs');var Redis=require(_0x19c8('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x19c8('0x6'));var logger=require(_0x19c8('0x7'))(_0x19c8('0x8'));var config=require(_0x19c8('0x9'));var jayson=require(_0x19c8('0xa'));var client=jayson[_0x19c8('0xb')][_0x19c8('0xc')]({'port':0x232a});config[_0x19c8('0xd')]=_[_0x19c8('0xe')](config['redis'],{'host':_0x19c8('0xf'),'port':0x18eb});var socket=require(_0x19c8('0x10'))(new Redis(config[_0x19c8('0xd')]));require(_0x19c8('0x11'))['register'](socket);function respondWithRpcPromise(_0x1b9b80,_0x45f107,_0x44c6f0){return new BPromise(function(_0x121a33,_0x5b3a4c){return client[_0x19c8('0x12')](_0x1b9b80,_0x44c6f0)['then'](function(_0x46611a){logger[_0x19c8('0x13')](_0x19c8('0x14'),_0x45f107,'request\x20sent');logger[_0x19c8('0x15')](_0x19c8('0x16'),_0x45f107,'request\x20sent',JSON['stringify'](_0x46611a));if(_0x46611a['error']){if(_0x46611a['error'][_0x19c8('0x17')]===0x1f4){logger[_0x19c8('0x18')](_0x19c8('0x14'),_0x45f107,_0x46611a[_0x19c8('0x18')]['message']);return _0x5b3a4c(_0x46611a[_0x19c8('0x18')][_0x19c8('0x19')]);}logger['error'](_0x19c8('0x14'),_0x45f107,_0x46611a[_0x19c8('0x18')][_0x19c8('0x19')]);return _0x121a33(_0x46611a[_0x19c8('0x18')]['message']);}else{logger[_0x19c8('0x13')](_0x19c8('0x14'),_0x45f107,_0x19c8('0x1a'));_0x121a33(_0x46611a['result'][_0x19c8('0x19')]);}})[_0x19c8('0x1b')](function(_0x54fe99){logger[_0x19c8('0x18')](_0x19c8('0x14'),_0x45f107,_0x54fe99);_0x5b3a4c(_0x54fe99);});});}exports['UpdateOpenchannelInteraction']=function(_0x51c6a6){var _0x60eb8a=this;return new Promise(function(_0x91ec29,_0xa82d0b){return db[_0x19c8('0x1c')][_0x19c8('0x1d')](_0x51c6a6[_0x19c8('0x1e')],{'raw':_0x51c6a6[_0x19c8('0x1f')]?_0x51c6a6[_0x19c8('0x1f')][_0x19c8('0x20')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x51c6a6[_0x19c8('0x1f')]?_0x51c6a6['options']['where']||null:null,'attributes':_0x51c6a6[_0x19c8('0x1f')]?_0x51c6a6[_0x19c8('0x1f')][_0x19c8('0x21')]||null:null,'limit':_0x51c6a6['options']?_0x51c6a6['options'][_0x19c8('0x22')]||null:null})[_0x19c8('0x23')](function(_0x2d82d8){logger[_0x19c8('0x13')]('UpdateOpenchannelInteraction',_0x51c6a6);logger['debug'](_0x19c8('0x24'),_0x51c6a6,JSON['stringify'](_0x2d82d8));_0x91ec29(_0x2d82d8);})[_0x19c8('0x1b')](function(_0xe1152e){logger[_0x19c8('0x18')](_0x19c8('0x24'),_0xe1152e[_0x19c8('0x19')],_0x51c6a6);_0xa82d0b(_0x60eb8a[_0x19c8('0x18')](0x1f4,_0xe1152e[_0x19c8('0x19')]));});});};exports['AddTagsToOpenchannelInteraction']=function(_0x27dd60){return new Promise(function(_0x3a0d6b,_0x5981a5){return db[_0x19c8('0x1c')]['find']({'where':_0x27dd60[_0x19c8('0x1f')]?_0x27dd60[_0x19c8('0x1f')][_0x19c8('0x25')]||null:null})[_0x19c8('0x23')](function(_0x1891fe){if(_0x1891fe){return _0x1891fe[_0x19c8('0x26')](_0x27dd60[_0x19c8('0x1e')][_0x19c8('0x27')],_[_0x19c8('0x28')](_0x27dd60[_0x19c8('0x1e')],[_0x19c8('0x27'),'id'])||{});}})[_0x19c8('0x29')](function(_0x4138ff){logger[_0x19c8('0x13')]('AddTags',_0x27dd60);logger[_0x19c8('0x15')](_0x19c8('0x2a'),_0x27dd60,JSON[_0x19c8('0x2b')](_0x4138ff));_0x3a0d6b(_0x4138ff);})[_0x19c8('0x1b')](function(_0xfe61e6){logger['error'](_0x19c8('0x2a'),_0xfe61e6[_0x19c8('0x19')],_0x27dd60);_0x5981a5(_this[_0x19c8('0x18')](0x1f4,_0xfe61e6[_0x19c8('0x19')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6415=['emit','removeListener','register','length','openchannelInteraction:','./openchannelInteraction.events','save','remove','update'];(function(_0x531570,_0xdf704e){var _0x3efcaf=function(_0x36b866){while(--_0x36b866){_0x531570['push'](_0x531570['shift']());}};_0x3efcaf(++_0xdf704e);}(_0x6415,0x137));var _0x5641=function(_0x2db3ae,_0x431960){_0x2db3ae=_0x2db3ae-0x0;var _0x55c6d4=_0x6415[_0x2db3ae];return _0x55c6d4;};'use strict';var OpenchannelInteractionEvents=require(_0x5641('0x0'));var events=[_0x5641('0x1'),_0x5641('0x2'),_0x5641('0x3')];function createListener(_0x91dd79,_0x111912){return function(_0x3f02f1){_0x111912[_0x5641('0x4')](_0x91dd79,_0x3f02f1);};}function removeListener(_0x3b34d7,_0x7c76e5){return function(){OpenchannelInteractionEvents[_0x5641('0x5')](_0x3b34d7,_0x7c76e5);};}exports[_0x5641('0x6')]=function(_0x7272e0){for(var _0x29a7d8=0x0,_0x4a4694=events[_0x5641('0x7')];_0x29a7d8<_0x4a4694;_0x29a7d8++){var _0x2ebb3d=events[_0x29a7d8];var _0x1dfd71=createListener(_0x5641('0x8')+_0x2ebb3d,_0x7272e0);OpenchannelInteractionEvents['on'](_0x2ebb3d,_0x1dfd71);}};
\ No newline at end of file
+var _0x0151=['register','length','openchannelInteraction:','./openchannelInteraction.events','save','remove','update','emit','removeListener'];(function(_0x5bb51a,_0x114946){var _0x37c376=function(_0x504655){while(--_0x504655){_0x5bb51a['push'](_0x5bb51a['shift']());}};_0x37c376(++_0x114946);}(_0x0151,0x6f));var _0x1015=function(_0x38446b,_0x9211ce){_0x38446b=_0x38446b-0x0;var _0x5d1f17=_0x0151[_0x38446b];return _0x5d1f17;};'use strict';var OpenchannelInteractionEvents=require(_0x1015('0x0'));var events=[_0x1015('0x1'),_0x1015('0x2'),_0x1015('0x3')];function createListener(_0x159d47,_0x10cdac){return function(_0x403c48){_0x10cdac[_0x1015('0x4')](_0x159d47,_0x403c48);};}function removeListener(_0x16e332,_0x35fb38){return function(){OpenchannelInteractionEvents[_0x1015('0x5')](_0x16e332,_0x35fb38);};}exports[_0x1015('0x6')]=function(_0x9abdf2){for(var _0x1ffbe6=0x0,_0x106424=events[_0x1015('0x7')];_0x1ffbe6<_0x106424;_0x1ffbe6++){var _0x38af01=events[_0x1ffbe6];var _0x1c2d7c=createListener(_0x1015('0x8')+_0x38af01,_0x9abdf2);OpenchannelInteractionEvents['on'](_0x38af01,_0x1c2d7c);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0713=['get','isAuthenticated','index','/describe','describe','/:id','post','tracked','openchannel','openchannelmessage:create','put','update','accept','/:id/reject','delete','destroy','exports','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./openchannelMessage.controller'];(function(_0xdea41a,_0x552987){var _0x15d0d8=function(_0x1e0d0b){while(--_0x1e0d0b){_0xdea41a['push'](_0xdea41a['shift']());}};_0x15d0d8(++_0x552987);}(_0x0713,0x1ba));var _0x3071=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x0713[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x3071('0x0'));var timeout=require(_0x3071('0x1'));var express=require(_0x3071('0x2'));var router=express[_0x3071('0x3')]();var fs_extra=require(_0x3071('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x3071('0x5'));var config=require(_0x3071('0x6'));var controller=require(_0x3071('0x7'));router[_0x3071('0x8')]('/',auth[_0x3071('0x9')](),controller[_0x3071('0xa')]);router[_0x3071('0x8')](_0x3071('0xb'),auth[_0x3071('0x9')](),controller[_0x3071('0xc')]);router[_0x3071('0x8')](_0x3071('0xd'),auth[_0x3071('0x9')](),controller['show']);router[_0x3071('0xe')]('/',auth[_0x3071('0x9')](),interaction[_0x3071('0xf')](_0x3071('0x10'),_0x3071('0x11')),controller['create']);router[_0x3071('0x12')](_0x3071('0xd'),auth[_0x3071('0x9')](),controller[_0x3071('0x13')]);router[_0x3071('0x12')]('/:id/accept',auth['isAuthenticated'](),controller[_0x3071('0x14')]);router['put'](_0x3071('0x15'),auth[_0x3071('0x9')](),controller['reject']);router[_0x3071('0x16')]('/:id',auth[_0x3071('0x9')](),controller[_0x3071('0x17')]);module[_0x3071('0x18')]=router;
\ No newline at end of file
+var _0xe706=['fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./openchannelMessage.controller','get','isAuthenticated','index','/describe','describe','/:id','show','post','tracked','openchannel','openchannelmessage:create','create','update','put','/:id/accept','accept','/:id/reject','exports','multer','util','path','express','Router'];(function(_0x1f39b8,_0x38e661){var _0x774782=function(_0x41bef4){while(--_0x41bef4){_0x1f39b8['push'](_0x1f39b8['shift']());}};_0x774782(++_0x38e661);}(_0xe706,0xa3));var _0x6e70=function(_0x59fc33,_0x2e182d){_0x59fc33=_0x59fc33-0x0;var _0x39066f=_0xe706[_0x59fc33];return _0x39066f;};'use strict';var multer=require(_0x6e70('0x0'));var util=require(_0x6e70('0x1'));var path=require(_0x6e70('0x2'));var timeout=require('connect-timeout');var express=require(_0x6e70('0x3'));var router=express[_0x6e70('0x4')]();var fs_extra=require(_0x6e70('0x5'));var auth=require(_0x6e70('0x6'));var interaction=require(_0x6e70('0x7'));var config=require(_0x6e70('0x8'));var controller=require(_0x6e70('0x9'));router[_0x6e70('0xa')]('/',auth[_0x6e70('0xb')](),controller[_0x6e70('0xc')]);router[_0x6e70('0xa')](_0x6e70('0xd'),auth[_0x6e70('0xb')](),controller[_0x6e70('0xe')]);router[_0x6e70('0xa')](_0x6e70('0xf'),auth[_0x6e70('0xb')](),controller[_0x6e70('0x10')]);router[_0x6e70('0x11')]('/',auth[_0x6e70('0xb')](),interaction[_0x6e70('0x12')](_0x6e70('0x13'),_0x6e70('0x14')),controller[_0x6e70('0x15')]);router['put']('/:id',auth[_0x6e70('0xb')](),controller[_0x6e70('0x16')]);router[_0x6e70('0x17')](_0x6e70('0x18'),auth[_0x6e70('0xb')](),controller[_0x6e70('0x19')]);router[_0x6e70('0x17')](_0x6e70('0x1a'),auth['isAuthenticated'](),controller['reject']);router['delete'](_0x6e70('0xf'),auth['isAuthenticated'](),controller['destroy']);module[_0x6e70('0x1b')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8603=['medium','ENUM','out','STRING','exports','TEXT'];(function(_0x179e11,_0xf65436){var _0x549f04=function(_0x610545){while(--_0x610545){_0x179e11['push'](_0x179e11['shift']());}};_0x549f04(++_0xf65436);}(_0x8603,0x190));var _0x3860=function(_0x2ce4ce,_0x105f8b){_0x2ce4ce=_0x2ce4ce-0x0;var _0x1222ae=_0x8603[_0x2ce4ce];return _0x1222ae;};'use strict';var Sequelize=require('sequelize');module[_0x3860('0x0')]={'body':{'type':Sequelize[_0x3860('0x1')](_0x3860('0x2')),'allowNull':![]},'read':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'secret':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'direction':{'type':Sequelize[_0x3860('0x3')]('in',_0x3860('0x4')),'defaultValue':_0x3860('0x4'),'allowNull':![]},'readAt':{'type':Sequelize['DATE']},'providerName':{'type':Sequelize[_0x3860('0x5')]},'providerResponse':{'type':Sequelize['TEXT']}};
\ No newline at end of file
+var _0x720e=['BOOLEAN','out','DATE','STRING','sequelize','exports','TEXT'];(function(_0xc0bde9,_0x355373){var _0x3483f9=function(_0x5820a2){while(--_0x5820a2){_0xc0bde9['push'](_0xc0bde9['shift']());}};_0x3483f9(++_0x355373);}(_0x720e,0x1cb));var _0xe720=function(_0x2cd1fb,_0x291f55){_0x2cd1fb=_0x2cd1fb-0x0;var _0x48fd2b=_0x720e[_0x2cd1fb];return _0x48fd2b;};'use strict';var Sequelize=require(_0xe720('0x0'));module[_0xe720('0x1')]={'body':{'type':Sequelize[_0xe720('0x2')]('medium'),'allowNull':![]},'read':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'secret':{'type':Sequelize[_0xe720('0x3')],'defaultValue':![]},'direction':{'type':Sequelize['ENUM']('in',_0xe720('0x4')),'defaultValue':_0xe720('0x4'),'allowNull':![]},'readAt':{'type':Sequelize[_0xe720('0x5')]},'providerName':{'type':Sequelize[_0xe720('0x6')]},'providerResponse':{'type':Sequelize[_0xe720('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfa74=['filter','merge','type','options','includeAll','findAll','rows','params','keys','rawAttributes','include','create','body','find','destroy','describe','format','YYYY-MM-DD\x20HH:mm:ss','user','agent','UserId','get','OpenchannelInteraction','OpenchannelInteractionId','isNil','read1stAt','info','role','interaction','null','AcceptMessage','acceptMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','SELECT','contact','fullname','interface','SIP/%s','channel','motionChannel','event','accept','acceptmessage','openchannel-interactions','openchannel','[OPENCHANNELMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','RejectMessage','Sequelize','QueryTypes','email','internal','EventManager','rejectmessage','zip-dir','request-promise','moment','bluebird','util','path','sox','to-csv','lodash','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./openchannelMessage.socket','register','jayson/promise','client','http','request','then','OpenchannelMessage,\x20%s,\x20%s','OpenchannelMessage,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','catch','sendStatus','status','end','json','offset','undefined','limit','count','apply','reject','save','update','stack','name','send','index','map','OpenchannelMessage','fieldName','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick'];(function(_0x8c43de,_0x90ff31){var _0xa6591b=function(_0x469716){while(--_0x469716){_0x8c43de['push'](_0x8c43de['shift']());}};_0xa6591b(++_0x90ff31);}(_0xfa74,0x1b0));var _0x4fa7=function(_0x5d78f0,_0x3784f9){_0x5d78f0=_0x5d78f0-0x0;var _0x4d1012=_0xfa74[_0x5d78f0];return _0x4d1012;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x4fa7('0x0'));var jsonpatch=require('fast-json-patch');var rp=require(_0x4fa7('0x1'));var moment=require(_0x4fa7('0x2'));var BPromise=require(_0x4fa7('0x3'));var Mustache=require('mustache');var util=require(_0x4fa7('0x4'));var path=require(_0x4fa7('0x5'));var sox=require(_0x4fa7('0x6'));var csv=require(_0x4fa7('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x4fa7('0x8'));var squel=require('squel');var crypto=require(_0x4fa7('0x9'));var jsforce=require('jsforce');var deskjs=require(_0x4fa7('0xa'));var toCsv=require('to-csv');var querystring=require(_0x4fa7('0xb'));var Papa=require(_0x4fa7('0xc'));var Redis=require(_0x4fa7('0xd'));var authService=require(_0x4fa7('0xe'));var qs=require(_0x4fa7('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x4fa7('0x10'));var logger=require(_0x4fa7('0x11'))(_0x4fa7('0x12'));var utils=require(_0x4fa7('0x13'));var config=require(_0x4fa7('0x14'));var licenseUtil=require(_0x4fa7('0x15'));var db=require(_0x4fa7('0x16'))['db'];config[_0x4fa7('0x17')]=_['defaults'](config['redis'],{'host':_0x4fa7('0x18'),'port':0x18eb});var socket=require(_0x4fa7('0x19'))(new Redis(config[_0x4fa7('0x17')]));require(_0x4fa7('0x1a'))[_0x4fa7('0x1b')](socket);var jayson=require(_0x4fa7('0x1c'));var client=jayson[_0x4fa7('0x1d')][_0x4fa7('0x1e')]({'port':0x232c});var client9002=jayson[_0x4fa7('0x1d')][_0x4fa7('0x1e')]({'port':0x232a});function respondWithRpcPromise(_0x47f3d7,_0x483cd1,_0x5d98c4,_0x1bd742){return new BPromise(function(_0x2ff368,_0x3e32ea){var _0x14d8dc=_0x1bd742||client;return _0x14d8dc[_0x4fa7('0x1f')](_0x47f3d7,_0x5d98c4)[_0x4fa7('0x20')](function(_0x5673b9){logger['info'](_0x4fa7('0x21'),_0x483cd1,'request\x20sent');logger['debug'](_0x4fa7('0x22'),_0x483cd1,_0x4fa7('0x23'),JSON[_0x4fa7('0x24')](_0x5673b9));if(_0x5673b9[_0x4fa7('0x25')]){if(_0x5673b9[_0x4fa7('0x25')]['code']===0x1f4){logger[_0x4fa7('0x25')]('OpenchannelMessage,\x20%s,\x20%s',_0x483cd1,_0x5673b9[_0x4fa7('0x25')]['message']);return _0x3e32ea(_0x5673b9['error']['message']);}logger[_0x4fa7('0x25')](_0x4fa7('0x21'),_0x483cd1,_0x5673b9[_0x4fa7('0x25')][_0x4fa7('0x26')]);return _0x2ff368(_0x5673b9['error'][_0x4fa7('0x26')]);}else{logger['info'](_0x4fa7('0x21'),_0x483cd1,_0x4fa7('0x23'));_0x2ff368(_0x5673b9[_0x4fa7('0x27')]['message']);}})[_0x4fa7('0x28')](function(_0x4be7f2){logger[_0x4fa7('0x25')](_0x4fa7('0x21'),_0x483cd1,_0x4be7f2);_0x3e32ea(_0x4be7f2);});});}function respondWithStatusCode(_0x46d4e0,_0x1caa71){_0x1caa71=_0x1caa71||0xcc;return function(_0x164795){if(_0x164795){return _0x46d4e0[_0x4fa7('0x29')](_0x1caa71);}return _0x46d4e0[_0x4fa7('0x2a')](_0x1caa71)[_0x4fa7('0x2b')]();};}function respondWithResult(_0x2b8331,_0x1d0ece){_0x1d0ece=_0x1d0ece||0xc8;return function(_0x4884f9){if(_0x4884f9){return _0x2b8331[_0x4fa7('0x2a')](_0x1d0ece)[_0x4fa7('0x2c')](_0x4884f9);}};}function respondWithFilteredResult(_0x541d6c,_0x84ca5e){return function(_0x397dc5){if(_0x397dc5){var _0x1e67fe=typeof _0x84ca5e[_0x4fa7('0x2d')]===_0x4fa7('0x2e')&&typeof _0x84ca5e[_0x4fa7('0x2f')]===_0x4fa7('0x2e');var _0x9f5566=_0x397dc5[_0x4fa7('0x30')];var _0x1b0c70=_0x1e67fe?0x0:_0x84ca5e[_0x4fa7('0x2d')];var _0x11f29a=_0x1e67fe?_0x397dc5['count']:_0x84ca5e['offset']+_0x84ca5e[_0x4fa7('0x2f')];var _0x54d666;if(_0x11f29a>=_0x9f5566){_0x11f29a=_0x9f5566;_0x54d666=0xc8;}else{_0x54d666=0xce;}_0x541d6c[_0x4fa7('0x2a')](_0x54d666);return _0x541d6c['set']('Content-Range',_0x1b0c70+'-'+_0x11f29a+'/'+_0x9f5566)[_0x4fa7('0x2c')](_0x397dc5);}return null;};}function patchUpdates(_0x24e792){return function(_0x57466b){try{jsonpatch[_0x4fa7('0x31')](_0x57466b,_0x24e792,!![]);}catch(_0x5ff893){return BPromise[_0x4fa7('0x32')](_0x5ff893);}return _0x57466b[_0x4fa7('0x33')]();};}function saveUpdates(_0x5afeb8,_0x551965){return function(_0xafb9c0){if(_0xafb9c0){return _0xafb9c0[_0x4fa7('0x34')](_0x5afeb8)[_0x4fa7('0x20')](function(_0x49e1b1){return _0x49e1b1;});}return null;};}function removeEntity(_0x17db3d,_0x1358b0){return function(_0x594f63){if(_0x594f63){return _0x594f63['destroy']()['then'](function(){_0x17db3d[_0x4fa7('0x2a')](0xcc)[_0x4fa7('0x2b')]();});}};}function handleEntityNotFound(_0x52a075,_0x16434d){return function(_0x1efed8){if(!_0x1efed8){_0x52a075[_0x4fa7('0x29')](0x194);}return _0x1efed8;};}function handleError(_0x4af1a3,_0x25d54e){_0x25d54e=_0x25d54e||0x1f4;return function(_0x23871c){logger[_0x4fa7('0x25')](_0x23871c[_0x4fa7('0x35')]);if(_0x23871c[_0x4fa7('0x36')]){delete _0x23871c[_0x4fa7('0x36')];}_0x4af1a3[_0x4fa7('0x2a')](_0x25d54e)[_0x4fa7('0x37')](_0x23871c);};}exports[_0x4fa7('0x38')]=function(_0xe8ade1,_0xf832e){var _0x209078={},_0x3fa9da={},_0x10bced={'count':0x0,'rows':[]};var _0x542c18=_[_0x4fa7('0x39')](db[_0x4fa7('0x3a')]['rawAttributes'],function(_0x799936){return{'name':_0x799936[_0x4fa7('0x3b')],'type':_0x799936['type']['key']};});_0x3fa9da[_0x4fa7('0x3c')]=_[_0x4fa7('0x39')](_0x542c18,'name');_0x3fa9da[_0x4fa7('0x3d')]=_['keys'](_0xe8ade1[_0x4fa7('0x3d')]);_0x3fa9da[_0x4fa7('0x3e')]=_[_0x4fa7('0x3f')](_0x3fa9da[_0x4fa7('0x3c')],_0x3fa9da[_0x4fa7('0x3d')]);_0x209078[_0x4fa7('0x40')]=_[_0x4fa7('0x3f')](_0x3fa9da[_0x4fa7('0x3c')],qs[_0x4fa7('0x41')](_0xe8ade1[_0x4fa7('0x3d')][_0x4fa7('0x41')]));_0x209078[_0x4fa7('0x40')]=_0x209078[_0x4fa7('0x40')][_0x4fa7('0x42')]?_0x209078[_0x4fa7('0x40')]:_0x3fa9da['model'];if(!_0xe8ade1[_0x4fa7('0x3d')][_0x4fa7('0x43')]('nolimit')){_0x209078[_0x4fa7('0x2f')]=qs[_0x4fa7('0x2f')](_0xe8ade1[_0x4fa7('0x3d')][_0x4fa7('0x2f')]);_0x209078[_0x4fa7('0x2d')]=qs[_0x4fa7('0x2d')](_0xe8ade1['query'][_0x4fa7('0x2d')]);}_0x209078[_0x4fa7('0x44')]=qs[_0x4fa7('0x45')](_0xe8ade1[_0x4fa7('0x3d')][_0x4fa7('0x45')]);_0x209078[_0x4fa7('0x46')]=qs[_0x4fa7('0x3e')](_[_0x4fa7('0x47')](_0xe8ade1[_0x4fa7('0x3d')],_0x3fa9da['filters']),_0x542c18);if(_0xe8ade1[_0x4fa7('0x3d')][_0x4fa7('0x48')]){_0x209078[_0x4fa7('0x46')]=_[_0x4fa7('0x49')](_0x209078[_0x4fa7('0x46')],{'$or':_[_0x4fa7('0x39')](_0x542c18,function(_0x4e602b){if(_0x4e602b[_0x4fa7('0x4a')]!=='VIRTUAL'){var _0x3f0273={};_0x3f0273[_0x4e602b[_0x4fa7('0x36')]]={'$like':'%'+_0xe8ade1[_0x4fa7('0x3d')]['filter']+'%'};return _0x3f0273;}})});}_0x209078=_[_0x4fa7('0x49')]({},_0x209078,_0xe8ade1[_0x4fa7('0x4b')]);var _0x5cc334={'where':_0x209078[_0x4fa7('0x46')]};return db[_0x4fa7('0x3a')][_0x4fa7('0x30')](_0x5cc334)[_0x4fa7('0x20')](function(_0x2db749){_0x10bced[_0x4fa7('0x30')]=_0x2db749;if(_0xe8ade1[_0x4fa7('0x3d')][_0x4fa7('0x4c')]){_0x209078['include']=[{'all':!![]}];}return db[_0x4fa7('0x3a')][_0x4fa7('0x4d')](_0x209078);})[_0x4fa7('0x20')](function(_0x29f31c){_0x10bced[_0x4fa7('0x4e')]=_0x29f31c;return _0x10bced;})[_0x4fa7('0x20')](respondWithFilteredResult(_0xf832e,_0x209078))[_0x4fa7('0x28')](handleError(_0xf832e,null));};exports['show']=function(_0x3b8364,_0x5f6dbb){var _0x5f4b78={'raw':!![],'where':{'id':_0x3b8364[_0x4fa7('0x4f')]['id']}},_0x32da67={};_0x32da67['model']=_[_0x4fa7('0x50')](db[_0x4fa7('0x3a')][_0x4fa7('0x51')]);_0x32da67['query']=_['keys'](_0x3b8364[_0x4fa7('0x3d')]);_0x32da67['filters']=_[_0x4fa7('0x3f')](_0x32da67['model'],_0x32da67['query']);_0x5f4b78['attributes']=_[_0x4fa7('0x3f')](_0x32da67[_0x4fa7('0x3c')],qs[_0x4fa7('0x41')](_0x3b8364['query']['fields']));_0x5f4b78[_0x4fa7('0x40')]=_0x5f4b78[_0x4fa7('0x40')][_0x4fa7('0x42')]?_0x5f4b78[_0x4fa7('0x40')]:_0x32da67[_0x4fa7('0x3c')];if(_0x3b8364[_0x4fa7('0x3d')][_0x4fa7('0x4c')]){_0x5f4b78[_0x4fa7('0x52')]=[{'all':!![]}];}_0x5f4b78=_[_0x4fa7('0x49')]({},_0x5f4b78,_0x3b8364[_0x4fa7('0x4b')]);return db[_0x4fa7('0x3a')]['find'](_0x5f4b78)['then'](handleEntityNotFound(_0x5f6dbb,null))[_0x4fa7('0x20')](respondWithResult(_0x5f6dbb,null))[_0x4fa7('0x28')](handleError(_0x5f6dbb,null));};exports['create']=function(_0x5bf652,_0x35b5b3){return db[_0x4fa7('0x3a')][_0x4fa7('0x53')](_0x5bf652[_0x4fa7('0x54')],{})[_0x4fa7('0x20')](respondWithResult(_0x35b5b3,0xc9))['catch'](handleError(_0x35b5b3,null));};exports[_0x4fa7('0x34')]=function(_0xa27504,_0x444199){if(_0xa27504[_0x4fa7('0x54')]['id']){delete _0xa27504[_0x4fa7('0x54')]['id'];}return db[_0x4fa7('0x3a')][_0x4fa7('0x55')]({'where':{'id':_0xa27504[_0x4fa7('0x4f')]['id']}})[_0x4fa7('0x20')](handleEntityNotFound(_0x444199,null))['then'](saveUpdates(_0xa27504[_0x4fa7('0x54')],null))['then'](respondWithResult(_0x444199,null))[_0x4fa7('0x28')](handleError(_0x444199,null));};exports[_0x4fa7('0x56')]=function(_0x1ca7bd,_0x1dd34e){return db[_0x4fa7('0x3a')][_0x4fa7('0x55')]({'where':{'id':_0x1ca7bd['params']['id']}})[_0x4fa7('0x20')](handleEntityNotFound(_0x1dd34e,null))[_0x4fa7('0x20')](removeEntity(_0x1dd34e,null))[_0x4fa7('0x28')](handleError(_0x1dd34e,null));};exports[_0x4fa7('0x57')]=function(_0x20ead8,_0x228119){return db[_0x4fa7('0x3a')][_0x4fa7('0x57')]()[_0x4fa7('0x20')](respondWithResult(_0x228119,null))[_0x4fa7('0x28')](handleError(_0x228119,null));};var interaction_log=require(_0x4fa7('0x11'))('openchannel-interactions');exports['accept']=function(_0xe5c84c,_0x3edd34,_0x149ab3){var _0xb395a1={'agent':{},'channel':'openchannel'};if(_0xe5c84c[_0x4fa7('0x54')]['id']){delete _0xe5c84c[_0x4fa7('0x54')]['id'];}_0xe5c84c[_0x4fa7('0x54')]['read']=!![];_0xe5c84c[_0x4fa7('0x54')]['readAt']=moment()[_0x4fa7('0x58')](_0x4fa7('0x59'));_0xe5c84c[_0x4fa7('0x54')]['UserId']=_0xe5c84c[_0x4fa7('0x54')]['UserId']||_0xe5c84c[_0x4fa7('0x5a')]['id'];_0xb395a1[_0x4fa7('0x5b')]['id']=_0xe5c84c[_0x4fa7('0x54')][_0x4fa7('0x5c')];return db[_0x4fa7('0x3a')][_0x4fa7('0x55')]({'where':{'id':_0xe5c84c['params']['id'],'UserId':null}})[_0x4fa7('0x20')](handleEntityNotFound(_0x3edd34,null))['then'](saveUpdates(_0xe5c84c[_0x4fa7('0x54')],null))[_0x4fa7('0x20')](function(_0xd80411){if(_0xd80411){_0xb395a1[_0x4fa7('0x26')]=_0xd80411[_0x4fa7('0x5d')]({'plain':!![]});return db[_0x4fa7('0x5e')][_0x4fa7('0x55')]({'where':{'id':_0xd80411[_0x4fa7('0x5f')]}});}return null;})[_0x4fa7('0x20')](handleEntityNotFound(_0x3edd34,null))[_0x4fa7('0x20')](function(_0x3abee6){if(_0x3abee6){return _0x3abee6[_0x4fa7('0x34')]({'UserId':_0xe5c84c[_0x4fa7('0x54')]['UserId'],'read1stAt':_[_0x4fa7('0x60')](_0x3abee6[_0x4fa7('0x61')])?moment()[_0x4fa7('0x58')](_0x4fa7('0x59')):undefined});}return null;})[_0x4fa7('0x20')](function(_0x25f4b4){if(_0x25f4b4){_0xb395a1['interaction']=_0x25f4b4[_0x4fa7('0x5d')]({'plain':!![]});interaction_log[_0x4fa7('0x62')]('[OPENCHANNELMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0xe5c84c[_0x4fa7('0x5a')]['id'],_0xe5c84c[_0x4fa7('0x5a')][_0x4fa7('0x36')],_0xe5c84c[_0x4fa7('0x5a')][_0x4fa7('0x63')],_0xb395a1[_0x4fa7('0x64')]['id'],_0xe5c84c[_0x4fa7('0x54')]?JSON[_0x4fa7('0x24')](_0xe5c84c[_0x4fa7('0x54')]):_0x4fa7('0x65'));return respondWithRpcPromise(_0x4fa7('0x66'),_0x4fa7('0x67'),_0xb395a1);}return null;})[_0x4fa7('0x20')](function(_0x2d7c56){var _0x402fe4=_0x4fa7('0x68')+_0x2d7c56[_0x4fa7('0x26')][_0x4fa7('0x69')];return db['sequelize'][_0x4fa7('0x3d')](_0x402fe4,{'type':db['Sequelize']['QueryTypes'][_0x4fa7('0x6a')],'raw':!![]})[_0x4fa7('0x20')](function(_0x5aa910){return _0x5aa910;});})['then'](function(_0x2ef58f){if(_0x2ef58f){_0xb395a1[_0x4fa7('0x26')][_0x4fa7('0x6b')]=_0x2ef58f[0x0];if(!_0xe5c84c[_0x4fa7('0x54')][_0x4fa7('0x5c')])return;return db['User'][_0x4fa7('0x55')]({'where':{'id':_0xe5c84c[_0x4fa7('0x54')][_0x4fa7('0x5c')],'role':'agent'},'attributes':['id',_0x4fa7('0x36'),_0x4fa7('0x6c'),'email','internal'],'raw':!![]});}return null;})['then'](function(_0x584777){if(!_0x584777)return null;_0xb395a1[_0x4fa7('0x26')][_0x4fa7('0x5b')]=_0x584777;return _0xb395a1;})[_0x4fa7('0x20')](function(_0x14f64c){if(_0x14f64c){if(_0xe5c84c['body']['manual']){_0xb395a1[_0x4fa7('0x26')][_0x4fa7('0x6d')]=util[_0x4fa7('0x58')](_0x4fa7('0x6e'),_0xe5c84c['user'][_0x4fa7('0x36')]);_0xb395a1[_0x4fa7('0x26')]['channel']=_0xb395a1[_0x4fa7('0x6f')];_0xb395a1[_0x4fa7('0x26')][_0x4fa7('0x70')]=_0xb395a1[_0x4fa7('0x6f')];_0xb395a1['message'][_0x4fa7('0x71')]=_0x4fa7('0x72');return respondWithRpcPromise('EventManager','EventManager',{'event':_0x4fa7('0x73'),'message':_0xb395a1['message']},client9002)[_0x4fa7('0x20')](function(){return _0xb395a1;});}return _0xb395a1;}return null;})[_0x4fa7('0x20')](respondWithResult(_0x3edd34,null))['catch'](handleError(_0x3edd34,null));};var interaction_log=require(_0x4fa7('0x11'))(_0x4fa7('0x74'));exports[_0x4fa7('0x32')]=function(_0xdaeb76,_0x203d7e,_0x110c57){var _0x2cdccd={'agent':{},'channel':_0x4fa7('0x75')};if(_0xdaeb76[_0x4fa7('0x54')]['id']){delete _0xdaeb76[_0x4fa7('0x54')]['id'];}_0xdaeb76['body'][_0x4fa7('0x5c')]=_0xdaeb76[_0x4fa7('0x54')][_0x4fa7('0x5c')]||_0xdaeb76[_0x4fa7('0x5a')]['id'];_0x2cdccd[_0x4fa7('0x5b')]['id']=_0xdaeb76[_0x4fa7('0x54')]['UserId'];return db[_0x4fa7('0x3a')][_0x4fa7('0x55')]({'where':{'id':_0xdaeb76[_0x4fa7('0x4f')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0x203d7e,null))['then'](function(_0x847acd){if(_0x847acd){_0x2cdccd[_0x4fa7('0x26')]=_0x847acd[_0x4fa7('0x5d')]({'plain':!![]});return db[_0x4fa7('0x5e')][_0x4fa7('0x55')]({'where':{'id':_0x847acd[_0x4fa7('0x5f')]}});}return null;})[_0x4fa7('0x20')](handleEntityNotFound(_0x203d7e,null))['then'](function(_0x58f1d6){if(_0x58f1d6){_0x2cdccd[_0x4fa7('0x64')]=_0x58f1d6[_0x4fa7('0x5d')]({'plain':!![]});interaction_log[_0x4fa7('0x62')](_0x4fa7('0x76'),_0xdaeb76[_0x4fa7('0x5a')]['id'],_0xdaeb76['user'][_0x4fa7('0x36')],_0xdaeb76['user'][_0x4fa7('0x63')],_0x2cdccd[_0x4fa7('0x64')]['id'],_0xdaeb76[_0x4fa7('0x54')]?JSON['stringify'](_0xdaeb76['body']):_0x4fa7('0x65'));return respondWithRpcPromise(_0x4fa7('0x77'),'rejectMessage',_0x2cdccd);}return null;})[_0x4fa7('0x20')](function(_0x47142d){var _0x452a62=_0x4fa7('0x68')+_0x47142d[_0x4fa7('0x26')][_0x4fa7('0x69')];return db['sequelize'][_0x4fa7('0x3d')](_0x452a62,{'type':db[_0x4fa7('0x78')][_0x4fa7('0x79')][_0x4fa7('0x6a')],'raw':!![]})[_0x4fa7('0x20')](function(_0x25eb02){return _0x25eb02;});})[_0x4fa7('0x20')](function(_0x421452){if(_0x421452){_0x2cdccd[_0x4fa7('0x26')][_0x4fa7('0x6b')]=_0x421452[0x0];if(!_0xdaeb76[_0x4fa7('0x54')]['UserId'])return;return db['User'][_0x4fa7('0x55')]({'where':{'id':_0xdaeb76[_0x4fa7('0x54')][_0x4fa7('0x5c')],'role':_0x4fa7('0x5b')},'attributes':['id',_0x4fa7('0x36'),_0x4fa7('0x6c'),_0x4fa7('0x7a'),_0x4fa7('0x7b')],'raw':!![]});}return null;})[_0x4fa7('0x20')](function(_0x28bbe3){if(!_0x28bbe3)return null;_0x2cdccd[_0x4fa7('0x26')][_0x4fa7('0x5b')]=_0x28bbe3;return _0x2cdccd;})['then'](function(_0x41f26d){if(_0x41f26d){_0x41f26d[_0x4fa7('0x26')][_0x4fa7('0x6d')]=util[_0x4fa7('0x58')](_0x4fa7('0x6e'),_0xdaeb76[_0x4fa7('0x5a')]['name']);_0x41f26d[_0x4fa7('0x26')][_0x4fa7('0x6f')]=_0x2cdccd[_0x4fa7('0x6f')];_0x41f26d[_0x4fa7('0x26')][_0x4fa7('0x70')]=_0x2cdccd['channel'];_0x41f26d[_0x4fa7('0x26')]['event']=_0x4fa7('0x32');respondWithRpcPromise(_0x4fa7('0x7c'),_0x4fa7('0x7c'),{'event':_0x4fa7('0x7d'),'message':_0x41f26d[_0x4fa7('0x26')]},client9002);return _0x2cdccd;}return null;})[_0x4fa7('0x20')](respondWithResult(_0x203d7e,null))[_0x4fa7('0x28')](handleError(_0x203d7e,null));};
\ No newline at end of file
+var _0xbb6d=['socket.io-emitter','./openchannelMessage.socket','register','jayson/promise','client','request','then','info','OpenchannelMessage,\x20%s,\x20%s','request\x20sent','debug','OpenchannelMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','sendStatus','status','end','json','offset','limit','count','set','Content-Range','apply','reject','destroy','name','send','index','OpenchannelMessage','fieldName','key','model','map','query','keys','filters','fields','attributes','length','hasOwnProperty','nolimit','sort','pick','filter','type','VIRTUAL','merge','options','include','findAll','params','intersection','includeAll','find','create','body','update','describe','openchannel-interactions','accept','openchannel','read','readAt','format','UserId','user','agent','get','OpenchannelInteractionId','isNil','YYYY-MM-DD\x20HH:mm:ss','interaction','[OPENCHANNELMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','null','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','sequelize','Sequelize','QueryTypes','SELECT','contact','email','internal','manual','interface','SIP/%s','channel','motionChannel','event','EventManager','acceptmessage','OpenchannelInteraction','[OPENCHANNELMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','RejectMessage','rejectMessage','fullname','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','path','to-csv','ejs','fs-extra','lodash','squel','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','redis','defaults','localhost'];(function(_0x5b7d57,_0x2ae07e){var _0x27af7c=function(_0xd56f79){while(--_0xd56f79){_0x5b7d57['push'](_0x5b7d57['shift']());}};_0x27af7c(++_0x2ae07e);}(_0xbb6d,0x168));var _0xdbb6=function(_0x2801ed,_0x52b8d){_0x2801ed=_0x2801ed-0x0;var _0x1d9bf6=_0xbb6d[_0x2801ed];return _0x1d9bf6;};'use strict';var emlformat=require(_0xdbb6('0x0'));var rimraf=require(_0xdbb6('0x1'));var zipdir=require(_0xdbb6('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xdbb6('0x3'));var moment=require(_0xdbb6('0x4'));var BPromise=require(_0xdbb6('0x5'));var Mustache=require('mustache');var util=require('util');var path=require(_0xdbb6('0x6'));var sox=require('sox');var csv=require(_0xdbb6('0x7'));var ejs=require(_0xdbb6('0x8'));var fs=require('fs');var fs_extra=require(_0xdbb6('0x9'));var _=require(_0xdbb6('0xa'));var squel=require(_0xdbb6('0xb'));var crypto=require('crypto');var jsforce=require(_0xdbb6('0xc'));var deskjs=require('desk.js');var toCsv=require(_0xdbb6('0x7'));var querystring=require(_0xdbb6('0xd'));var Papa=require(_0xdbb6('0xe'));var Redis=require(_0xdbb6('0xf'));var authService=require(_0xdbb6('0x10'));var qs=require(_0xdbb6('0x11'));var as=require(_0xdbb6('0x12'));var hardwareService=require(_0xdbb6('0x13'));var logger=require(_0xdbb6('0x14'))(_0xdbb6('0x15'));var utils=require('../../config/utils');var config=require(_0xdbb6('0x16'));var licenseUtil=require(_0xdbb6('0x17'));var db=require('../../mysqldb')['db'];config[_0xdbb6('0x18')]=_[_0xdbb6('0x19')](config[_0xdbb6('0x18')],{'host':_0xdbb6('0x1a'),'port':0x18eb});var socket=require(_0xdbb6('0x1b'))(new Redis(config[_0xdbb6('0x18')]));require(_0xdbb6('0x1c'))[_0xdbb6('0x1d')](socket);var jayson=require(_0xdbb6('0x1e'));var client=jayson[_0xdbb6('0x1f')]['http']({'port':0x232c});var client9002=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x18f504,_0x25c0b8,_0xad72d0,_0x15b5e1){return new BPromise(function(_0x1e7e0d,_0x2a3315){var _0x25e97d=_0x15b5e1||client;return _0x25e97d[_0xdbb6('0x20')](_0x18f504,_0xad72d0)[_0xdbb6('0x21')](function(_0x2f57c5){logger[_0xdbb6('0x22')](_0xdbb6('0x23'),_0x25c0b8,_0xdbb6('0x24'));logger[_0xdbb6('0x25')](_0xdbb6('0x26'),_0x25c0b8,_0xdbb6('0x24'),JSON[_0xdbb6('0x27')](_0x2f57c5));if(_0x2f57c5[_0xdbb6('0x28')]){if(_0x2f57c5['error'][_0xdbb6('0x29')]===0x1f4){logger['error']('OpenchannelMessage,\x20%s,\x20%s',_0x25c0b8,_0x2f57c5[_0xdbb6('0x28')][_0xdbb6('0x2a')]);return _0x2a3315(_0x2f57c5['error'][_0xdbb6('0x2a')]);}logger['error'](_0xdbb6('0x23'),_0x25c0b8,_0x2f57c5[_0xdbb6('0x28')][_0xdbb6('0x2a')]);return _0x1e7e0d(_0x2f57c5[_0xdbb6('0x28')][_0xdbb6('0x2a')]);}else{logger[_0xdbb6('0x22')](_0xdbb6('0x23'),_0x25c0b8,_0xdbb6('0x24'));_0x1e7e0d(_0x2f57c5[_0xdbb6('0x2b')][_0xdbb6('0x2a')]);}})[_0xdbb6('0x2c')](function(_0x3bd55c){logger['error'](_0xdbb6('0x23'),_0x25c0b8,_0x3bd55c);_0x2a3315(_0x3bd55c);});});}function respondWithStatusCode(_0x3e57cc,_0x29f727){_0x29f727=_0x29f727||0xcc;return function(_0x514140){if(_0x514140){return _0x3e57cc[_0xdbb6('0x2d')](_0x29f727);}return _0x3e57cc[_0xdbb6('0x2e')](_0x29f727)[_0xdbb6('0x2f')]();};}function respondWithResult(_0x108b63,_0x105669){_0x105669=_0x105669||0xc8;return function(_0xf07e96){if(_0xf07e96){return _0x108b63['status'](_0x105669)[_0xdbb6('0x30')](_0xf07e96);}};}function respondWithFilteredResult(_0x195152,_0x3d9731){return function(_0x54061d){if(_0x54061d){var _0x117f07=typeof _0x3d9731[_0xdbb6('0x31')]==='undefined'&&typeof _0x3d9731[_0xdbb6('0x32')]==='undefined';var _0x5a2809=_0x54061d[_0xdbb6('0x33')];var _0x461097=_0x117f07?0x0:_0x3d9731[_0xdbb6('0x31')];var _0x4b4d41=_0x117f07?_0x54061d[_0xdbb6('0x33')]:_0x3d9731[_0xdbb6('0x31')]+_0x3d9731[_0xdbb6('0x32')];var _0x2c6991;if(_0x4b4d41>=_0x5a2809){_0x4b4d41=_0x5a2809;_0x2c6991=0xc8;}else{_0x2c6991=0xce;}_0x195152[_0xdbb6('0x2e')](_0x2c6991);return _0x195152[_0xdbb6('0x34')](_0xdbb6('0x35'),_0x461097+'-'+_0x4b4d41+'/'+_0x5a2809)['json'](_0x54061d);}return null;};}function patchUpdates(_0x293b16){return function(_0x1c93ca){try{jsonpatch[_0xdbb6('0x36')](_0x1c93ca,_0x293b16,!![]);}catch(_0x3601cd){return BPromise[_0xdbb6('0x37')](_0x3601cd);}return _0x1c93ca['save']();};}function saveUpdates(_0x4bcb27,_0x41a5f2){return function(_0x171b93){if(_0x171b93){return _0x171b93['update'](_0x4bcb27)['then'](function(_0x2f5184){return _0x2f5184;});}return null;};}function removeEntity(_0x2018a6,_0x544409){return function(_0x364c5b){if(_0x364c5b){return _0x364c5b[_0xdbb6('0x38')]()[_0xdbb6('0x21')](function(){_0x2018a6[_0xdbb6('0x2e')](0xcc)['end']();});}};}function handleEntityNotFound(_0x412c63,_0x5f7cbd){return function(_0x510b2b){if(!_0x510b2b){_0x412c63['sendStatus'](0x194);}return _0x510b2b;};}function handleError(_0x576c2c,_0x2dcf38){_0x2dcf38=_0x2dcf38||0x1f4;return function(_0x58461a){logger[_0xdbb6('0x28')](_0x58461a['stack']);if(_0x58461a[_0xdbb6('0x39')]){delete _0x58461a[_0xdbb6('0x39')];}_0x576c2c[_0xdbb6('0x2e')](_0x2dcf38)[_0xdbb6('0x3a')](_0x58461a);};}exports[_0xdbb6('0x3b')]=function(_0x204f5e,_0x5a48f6){var _0x138c6b={},_0x389d88={},_0x4acbb8={'count':0x0,'rows':[]};var _0x36dd23=_['map'](db[_0xdbb6('0x3c')]['rawAttributes'],function(_0xcc1432){return{'name':_0xcc1432[_0xdbb6('0x3d')],'type':_0xcc1432['type'][_0xdbb6('0x3e')]};});_0x389d88[_0xdbb6('0x3f')]=_[_0xdbb6('0x40')](_0x36dd23,'name');_0x389d88[_0xdbb6('0x41')]=_[_0xdbb6('0x42')](_0x204f5e[_0xdbb6('0x41')]);_0x389d88[_0xdbb6('0x43')]=_['intersection'](_0x389d88[_0xdbb6('0x3f')],_0x389d88[_0xdbb6('0x41')]);_0x138c6b['attributes']=_['intersection'](_0x389d88[_0xdbb6('0x3f')],qs[_0xdbb6('0x44')](_0x204f5e[_0xdbb6('0x41')][_0xdbb6('0x44')]));_0x138c6b[_0xdbb6('0x45')]=_0x138c6b[_0xdbb6('0x45')][_0xdbb6('0x46')]?_0x138c6b[_0xdbb6('0x45')]:_0x389d88[_0xdbb6('0x3f')];if(!_0x204f5e['query'][_0xdbb6('0x47')](_0xdbb6('0x48'))){_0x138c6b[_0xdbb6('0x32')]=qs[_0xdbb6('0x32')](_0x204f5e[_0xdbb6('0x41')][_0xdbb6('0x32')]);_0x138c6b[_0xdbb6('0x31')]=qs[_0xdbb6('0x31')](_0x204f5e[_0xdbb6('0x41')][_0xdbb6('0x31')]);}_0x138c6b['order']=qs[_0xdbb6('0x49')](_0x204f5e[_0xdbb6('0x41')][_0xdbb6('0x49')]);_0x138c6b['where']=qs[_0xdbb6('0x43')](_[_0xdbb6('0x4a')](_0x204f5e[_0xdbb6('0x41')],_0x389d88[_0xdbb6('0x43')]),_0x36dd23);if(_0x204f5e['query'][_0xdbb6('0x4b')]){_0x138c6b['where']=_['merge'](_0x138c6b['where'],{'$or':_[_0xdbb6('0x40')](_0x36dd23,function(_0x4d9054){if(_0x4d9054[_0xdbb6('0x4c')]!==_0xdbb6('0x4d')){var _0x3786ab={};_0x3786ab[_0x4d9054[_0xdbb6('0x39')]]={'$like':'%'+_0x204f5e['query']['filter']+'%'};return _0x3786ab;}})});}_0x138c6b=_[_0xdbb6('0x4e')]({},_0x138c6b,_0x204f5e[_0xdbb6('0x4f')]);var _0x48ef0a={'where':_0x138c6b['where']};return db['OpenchannelMessage']['count'](_0x48ef0a)[_0xdbb6('0x21')](function(_0x232c28){_0x4acbb8[_0xdbb6('0x33')]=_0x232c28;if(_0x204f5e[_0xdbb6('0x41')]['includeAll']){_0x138c6b[_0xdbb6('0x50')]=[{'all':!![]}];}return db[_0xdbb6('0x3c')][_0xdbb6('0x51')](_0x138c6b);})[_0xdbb6('0x21')](function(_0x491a30){_0x4acbb8['rows']=_0x491a30;return _0x4acbb8;})[_0xdbb6('0x21')](respondWithFilteredResult(_0x5a48f6,_0x138c6b))['catch'](handleError(_0x5a48f6,null));};exports['show']=function(_0x1ff09d,_0x2147c2){var _0x37b9b6={'raw':!![],'where':{'id':_0x1ff09d[_0xdbb6('0x52')]['id']}},_0x45606d={};_0x45606d[_0xdbb6('0x3f')]=_[_0xdbb6('0x42')](db[_0xdbb6('0x3c')]['rawAttributes']);_0x45606d[_0xdbb6('0x41')]=_[_0xdbb6('0x42')](_0x1ff09d[_0xdbb6('0x41')]);_0x45606d[_0xdbb6('0x43')]=_['intersection'](_0x45606d[_0xdbb6('0x3f')],_0x45606d[_0xdbb6('0x41')]);_0x37b9b6[_0xdbb6('0x45')]=_[_0xdbb6('0x53')](_0x45606d[_0xdbb6('0x3f')],qs[_0xdbb6('0x44')](_0x1ff09d[_0xdbb6('0x41')]['fields']));_0x37b9b6[_0xdbb6('0x45')]=_0x37b9b6[_0xdbb6('0x45')][_0xdbb6('0x46')]?_0x37b9b6['attributes']:_0x45606d['model'];if(_0x1ff09d[_0xdbb6('0x41')][_0xdbb6('0x54')]){_0x37b9b6[_0xdbb6('0x50')]=[{'all':!![]}];}_0x37b9b6=_[_0xdbb6('0x4e')]({},_0x37b9b6,_0x1ff09d[_0xdbb6('0x4f')]);return db['OpenchannelMessage'][_0xdbb6('0x55')](_0x37b9b6)[_0xdbb6('0x21')](handleEntityNotFound(_0x2147c2,null))[_0xdbb6('0x21')](respondWithResult(_0x2147c2,null))[_0xdbb6('0x2c')](handleError(_0x2147c2,null));};exports[_0xdbb6('0x56')]=function(_0x412c20,_0x223221){return db[_0xdbb6('0x3c')]['create'](_0x412c20[_0xdbb6('0x57')],{})['then'](respondWithResult(_0x223221,0xc9))['catch'](handleError(_0x223221,null));};exports[_0xdbb6('0x58')]=function(_0x3dd703,_0x4014d5){if(_0x3dd703['body']['id']){delete _0x3dd703[_0xdbb6('0x57')]['id'];}return db[_0xdbb6('0x3c')][_0xdbb6('0x55')]({'where':{'id':_0x3dd703[_0xdbb6('0x52')]['id']}})[_0xdbb6('0x21')](handleEntityNotFound(_0x4014d5,null))[_0xdbb6('0x21')](saveUpdates(_0x3dd703['body'],null))[_0xdbb6('0x21')](respondWithResult(_0x4014d5,null))[_0xdbb6('0x2c')](handleError(_0x4014d5,null));};exports[_0xdbb6('0x38')]=function(_0x27b492,_0x44e0a5){return db[_0xdbb6('0x3c')][_0xdbb6('0x55')]({'where':{'id':_0x27b492[_0xdbb6('0x52')]['id']}})[_0xdbb6('0x21')](handleEntityNotFound(_0x44e0a5,null))['then'](removeEntity(_0x44e0a5,null))[_0xdbb6('0x2c')](handleError(_0x44e0a5,null));};exports[_0xdbb6('0x59')]=function(_0x730a4e,_0x23b966){return db['OpenchannelMessage']['describe']()[_0xdbb6('0x21')](respondWithResult(_0x23b966,null))[_0xdbb6('0x2c')](handleError(_0x23b966,null));};var interaction_log=require(_0xdbb6('0x14'))(_0xdbb6('0x5a'));exports[_0xdbb6('0x5b')]=function(_0x755824,_0xcc4f3a,_0x396873){var _0x47b831={'agent':{},'channel':_0xdbb6('0x5c')};if(_0x755824[_0xdbb6('0x57')]['id']){delete _0x755824['body']['id'];}_0x755824['body'][_0xdbb6('0x5d')]=!![];_0x755824[_0xdbb6('0x57')][_0xdbb6('0x5e')]=moment()[_0xdbb6('0x5f')]('YYYY-MM-DD\x20HH:mm:ss');_0x755824['body'][_0xdbb6('0x60')]=_0x755824['body'][_0xdbb6('0x60')]||_0x755824[_0xdbb6('0x61')]['id'];_0x47b831[_0xdbb6('0x62')]['id']=_0x755824['body']['UserId'];return db['OpenchannelMessage'][_0xdbb6('0x55')]({'where':{'id':_0x755824[_0xdbb6('0x52')]['id'],'UserId':null}})[_0xdbb6('0x21')](handleEntityNotFound(_0xcc4f3a,null))[_0xdbb6('0x21')](saveUpdates(_0x755824[_0xdbb6('0x57')],null))[_0xdbb6('0x21')](function(_0xc5a8ae){if(_0xc5a8ae){_0x47b831[_0xdbb6('0x2a')]=_0xc5a8ae[_0xdbb6('0x63')]({'plain':!![]});return db['OpenchannelInteraction'][_0xdbb6('0x55')]({'where':{'id':_0xc5a8ae[_0xdbb6('0x64')]}});}return null;})[_0xdbb6('0x21')](handleEntityNotFound(_0xcc4f3a,null))[_0xdbb6('0x21')](function(_0x38a102){if(_0x38a102){return _0x38a102[_0xdbb6('0x58')]({'UserId':_0x755824[_0xdbb6('0x57')]['UserId'],'read1stAt':_[_0xdbb6('0x65')](_0x38a102['read1stAt'])?moment()[_0xdbb6('0x5f')](_0xdbb6('0x66')):undefined});}return null;})[_0xdbb6('0x21')](function(_0x336265){if(_0x336265){_0x47b831[_0xdbb6('0x67')]=_0x336265[_0xdbb6('0x63')]({'plain':!![]});interaction_log[_0xdbb6('0x22')](_0xdbb6('0x68'),_0x755824[_0xdbb6('0x61')]['id'],_0x755824[_0xdbb6('0x61')][_0xdbb6('0x39')],_0x755824[_0xdbb6('0x61')][_0xdbb6('0x69')],_0x47b831[_0xdbb6('0x67')]['id'],_0x755824[_0xdbb6('0x57')]?JSON[_0xdbb6('0x27')](_0x755824['body']):_0xdbb6('0x6a'));return respondWithRpcPromise('AcceptMessage','acceptMessage',_0x47b831);}return null;})['then'](function(_0x4f4032){var _0x33863a=_0xdbb6('0x6b')+_0x4f4032[_0xdbb6('0x2a')][_0xdbb6('0x6c')];return db[_0xdbb6('0x6d')][_0xdbb6('0x41')](_0x33863a,{'type':db[_0xdbb6('0x6e')][_0xdbb6('0x6f')][_0xdbb6('0x70')],'raw':!![]})[_0xdbb6('0x21')](function(_0x2781e4){return _0x2781e4;});})[_0xdbb6('0x21')](function(_0x2bfc47){if(_0x2bfc47){_0x47b831[_0xdbb6('0x2a')][_0xdbb6('0x71')]=_0x2bfc47[0x0];if(!_0x755824[_0xdbb6('0x57')]['UserId'])return;return db['User'][_0xdbb6('0x55')]({'where':{'id':_0x755824[_0xdbb6('0x57')][_0xdbb6('0x60')],'role':_0xdbb6('0x62')},'attributes':['id','name','fullname',_0xdbb6('0x72'),_0xdbb6('0x73')],'raw':!![]});}return null;})[_0xdbb6('0x21')](function(_0x39ccab){if(!_0x39ccab)return null;_0x47b831[_0xdbb6('0x2a')]['agent']=_0x39ccab;return _0x47b831;})[_0xdbb6('0x21')](function(_0x43e5c8){if(_0x43e5c8){if(_0x755824[_0xdbb6('0x57')][_0xdbb6('0x74')]){_0x47b831[_0xdbb6('0x2a')][_0xdbb6('0x75')]=util[_0xdbb6('0x5f')](_0xdbb6('0x76'),_0x755824[_0xdbb6('0x61')][_0xdbb6('0x39')]);_0x47b831[_0xdbb6('0x2a')][_0xdbb6('0x77')]=_0x47b831['channel'];_0x47b831[_0xdbb6('0x2a')][_0xdbb6('0x78')]=_0x47b831[_0xdbb6('0x77')];_0x47b831[_0xdbb6('0x2a')][_0xdbb6('0x79')]=_0xdbb6('0x5b');return respondWithRpcPromise(_0xdbb6('0x7a'),'EventManager',{'event':_0xdbb6('0x7b'),'message':_0x47b831['message']},client9002)['then'](function(){return _0x47b831;});}return _0x47b831;}return null;})['then'](respondWithResult(_0xcc4f3a,null))['catch'](handleError(_0xcc4f3a,null));};var interaction_log=require(_0xdbb6('0x14'))(_0xdbb6('0x5a'));exports[_0xdbb6('0x37')]=function(_0x5c7676,_0x23ac24,_0x23df40){var _0x1e6ed2={'agent':{},'channel':_0xdbb6('0x5c')};if(_0x5c7676[_0xdbb6('0x57')]['id']){delete _0x5c7676[_0xdbb6('0x57')]['id'];}_0x5c7676[_0xdbb6('0x57')]['UserId']=_0x5c7676['body'][_0xdbb6('0x60')]||_0x5c7676[_0xdbb6('0x61')]['id'];_0x1e6ed2[_0xdbb6('0x62')]['id']=_0x5c7676['body'][_0xdbb6('0x60')];return db[_0xdbb6('0x3c')][_0xdbb6('0x55')]({'where':{'id':_0x5c7676[_0xdbb6('0x52')]['id'],'UserId':null}})[_0xdbb6('0x21')](handleEntityNotFound(_0x23ac24,null))[_0xdbb6('0x21')](function(_0x124a74){if(_0x124a74){_0x1e6ed2[_0xdbb6('0x2a')]=_0x124a74[_0xdbb6('0x63')]({'plain':!![]});return db[_0xdbb6('0x7c')]['find']({'where':{'id':_0x124a74[_0xdbb6('0x64')]}});}return null;})[_0xdbb6('0x21')](handleEntityNotFound(_0x23ac24,null))['then'](function(_0x23673d){if(_0x23673d){_0x1e6ed2[_0xdbb6('0x67')]=_0x23673d[_0xdbb6('0x63')]({'plain':!![]});interaction_log['info'](_0xdbb6('0x7d'),_0x5c7676[_0xdbb6('0x61')]['id'],_0x5c7676[_0xdbb6('0x61')][_0xdbb6('0x39')],_0x5c7676[_0xdbb6('0x61')]['role'],_0x1e6ed2[_0xdbb6('0x67')]['id'],_0x5c7676['body']?JSON[_0xdbb6('0x27')](_0x5c7676['body']):_0xdbb6('0x6a'));return respondWithRpcPromise(_0xdbb6('0x7e'),_0xdbb6('0x7f'),_0x1e6ed2);}return null;})[_0xdbb6('0x21')](function(_0x5d39ef){var _0x2f9129=_0xdbb6('0x6b')+_0x5d39ef[_0xdbb6('0x2a')][_0xdbb6('0x6c')];return db['sequelize']['query'](_0x2f9129,{'type':db[_0xdbb6('0x6e')]['QueryTypes'][_0xdbb6('0x70')],'raw':!![]})[_0xdbb6('0x21')](function(_0x3758df){return _0x3758df;});})[_0xdbb6('0x21')](function(_0x2bd6b0){if(_0x2bd6b0){_0x1e6ed2[_0xdbb6('0x2a')][_0xdbb6('0x71')]=_0x2bd6b0[0x0];if(!_0x5c7676['body']['UserId'])return;return db['User'][_0xdbb6('0x55')]({'where':{'id':_0x5c7676[_0xdbb6('0x57')][_0xdbb6('0x60')],'role':'agent'},'attributes':['id','name',_0xdbb6('0x80'),_0xdbb6('0x72'),_0xdbb6('0x73')],'raw':!![]});}return null;})['then'](function(_0x5a3cc3){if(!_0x5a3cc3)return null;_0x1e6ed2['message'][_0xdbb6('0x62')]=_0x5a3cc3;return _0x1e6ed2;})['then'](function(_0x104606){if(_0x104606){_0x104606[_0xdbb6('0x2a')]['interface']=util[_0xdbb6('0x5f')](_0xdbb6('0x76'),_0x5c7676[_0xdbb6('0x61')][_0xdbb6('0x39')]);_0x104606['message']['channel']=_0x1e6ed2[_0xdbb6('0x77')];_0x104606[_0xdbb6('0x2a')][_0xdbb6('0x78')]=_0x1e6ed2['channel'];_0x104606[_0xdbb6('0x2a')][_0xdbb6('0x79')]=_0xdbb6('0x37');respondWithRpcPromise(_0xdbb6('0x7a'),_0xdbb6('0x7a'),{'event':'rejectmessage','message':_0x104606['message']},client9002);return _0x1e6ed2;}return null;})[_0xdbb6('0x21')](respondWithResult(_0x23ac24,null))[_0xdbb6('0x2c')](handleError(_0x23ac24,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1cef=['exports','events','../../mysqldb','setMaxListeners','update','remove','emit','hasOwnProperty','hook'];(function(_0x1e4360,_0x930b9b){var _0x31e6b4=function(_0x49dd8e){while(--_0x49dd8e){_0x1e4360['push'](_0x1e4360['shift']());}};_0x31e6b4(++_0x930b9b);}(_0x1cef,0x106));var _0xf1ce=function(_0x28b7ab,_0x16a764){_0x28b7ab=_0x28b7ab-0x0;var _0x56791b=_0x1cef[_0x28b7ab];return _0x56791b;};'use strict';var EventEmitter=require(_0xf1ce('0x0'));var OpenchannelMessage=require(_0xf1ce('0x1'))['db']['OpenchannelMessage'];var OpenchannelMessageEvents=new EventEmitter();OpenchannelMessageEvents[_0xf1ce('0x2')](0x0);var events={'afterCreate':'save','afterUpdate':_0xf1ce('0x3'),'afterDestroy':_0xf1ce('0x4')};function emitEvent(_0x61da83){return function(_0x3a7ea2,_0x118c42,_0x4239f0){OpenchannelMessageEvents[_0xf1ce('0x5')](_0x61da83+':'+_0x3a7ea2['id'],_0x3a7ea2);OpenchannelMessageEvents[_0xf1ce('0x5')](_0x61da83,_0x3a7ea2);_0x4239f0(null);};}for(var e in events){if(events[_0xf1ce('0x6')](e)){var event=events[e];OpenchannelMessage[_0xf1ce('0x7')](e,emitEvent(event));}}module[_0xf1ce('0x8')]=OpenchannelMessageEvents;
\ No newline at end of file
+var _0x315f=['emit','hasOwnProperty','hook','events','../../mysqldb','OpenchannelMessage','setMaxListeners','save','update','remove'];(function(_0x407251,_0x42b1ee){var _0x27f288=function(_0x5cc183){while(--_0x5cc183){_0x407251['push'](_0x407251['shift']());}};_0x27f288(++_0x42b1ee);}(_0x315f,0x7b));var _0xf315=function(_0x55abd9,_0x1148af){_0x55abd9=_0x55abd9-0x0;var _0x3e5669=_0x315f[_0x55abd9];return _0x3e5669;};'use strict';var EventEmitter=require(_0xf315('0x0'));var OpenchannelMessage=require(_0xf315('0x1'))['db'][_0xf315('0x2')];var OpenchannelMessageEvents=new EventEmitter();OpenchannelMessageEvents[_0xf315('0x3')](0x0);var events={'afterCreate':_0xf315('0x4'),'afterUpdate':_0xf315('0x5'),'afterDestroy':_0xf315('0x6')};function emitEvent(_0x368df6){return function(_0x3f67ce,_0x1a351a,_0x1593ec){OpenchannelMessageEvents[_0xf315('0x7')](_0x368df6+':'+_0x3f67ce['id'],_0x3f67ce);OpenchannelMessageEvents[_0xf315('0x7')](_0x368df6,_0x3f67ce);_0x1593ec(null);};}for(var e in events){if(events[_0xf315('0x8')](e)){var event=events[e];OpenchannelMessage[_0xf315('0x9')](e,emitEvent(event));}}module['exports']=OpenchannelMessageEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x757a=['find','OpenchannelAccountId','OpenchannelInteraction','Interactions','keys','replyUri','info','format','Forwarding\x20message\x20%d\x20to\x20%s','length','Interaction','omit','Contact','POST','method','OpenchannelMessage,\x20%s,\x20%s','threadId','afterCreate','inspect','finally','utf8mb4','utf8mb4_unicode_ci','util','../../config/logger','request-promise','path','rimraf','../../config/environment','./openchannelMessage.attributes','exports','define','openchannel_messages','fti_openchannel_messages','body','FULLTEXT','models','get','direction','toLowerCase','UserId','OpenchannelInteractionId','update','createdAt','catch','error','out','secret','CmContact','describe','then'];(function(_0x18bfe6,_0x2e1d84){var _0x2fc1f1=function(_0x31aaea){while(--_0x31aaea){_0x18bfe6['push'](_0x18bfe6['shift']());}};_0x2fc1f1(++_0x2e1d84);}(_0x757a,0xde));var _0xa757=function(_0x4bb513,_0x5eaee7){_0x4bb513=_0x4bb513-0x0;var _0x3ab4f2=_0x757a[_0x4bb513];return _0x3ab4f2;};'use strict';var _=require('lodash');var util=require(_0xa757('0x0'));var logger=require(_0xa757('0x1'))('api');var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xa757('0x2'));var fs=require('fs');var path=require(_0xa757('0x3'));var rimraf=require(_0xa757('0x4'));var config=require(_0xa757('0x5'));var attributes=require(_0xa757('0x6'));module[_0xa757('0x7')]=function(_0x5edca8,_0xae0e7c){return _0x5edca8[_0xa757('0x8')]('OpenchannelMessage',attributes,{'tableName':_0xa757('0x9'),'paranoid':![],'indexes':[{'name':_0xa757('0xa'),'fields':[_0xa757('0xb')],'type':_0xa757('0xc')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x3a3db6,_0x5aef8a,_0x89c630){var _0x2ca96f=_0x5edca8[_0xa757('0xd')];var _0x3e2c9a=_0x3a3db6[_0xa757('0xe')]({'plain':!![]});if(_0x3e2c9a[_0xa757('0xf')][_0xa757('0x10')]()==='in'||_0x3e2c9a['direction']['toLowerCase']()==='out'&&!_0x3e2c9a['secret']&&!_['isNil'](_0x3e2c9a[_0xa757('0x11')])){_0x2ca96f['OpenchannelInteraction']['findOne']({'where':{'id':_0x3e2c9a[_0xa757('0x12')]}})['then'](function(_0x481508){if(_0x481508){_0x481508[_0xa757('0x13')]({'lastMsgAt':_0x3e2c9a[_0xa757('0x14')],'lastMsgDirection':_0x3e2c9a[_0xa757('0xf')][_0xa757('0x10')]()});}})[_0xa757('0x15')](function(_0x31cfd2){console[_0xa757('0x16')](_0x31cfd2);});}if(_0x3e2c9a[_0xa757('0xf')]===_0xa757('0x17')&&!_0x3e2c9a[_0xa757('0x18')]){var _0x50aac1;_0x2ca96f[_0xa757('0x19')][_0xa757('0x1a')]()[_0xa757('0x1b')](function(_0x4d9f58){return _0x2ca96f['OpenchannelAccount'][_0xa757('0x1c')]({'where':{'id':_0x3e2c9a[_0xa757('0x1d')]},'include':[{'model':_0x2ca96f[_0xa757('0x1e')],'as':_0xa757('0x1f'),'where':{'id':_0x3e2c9a[_0xa757('0x12')]},'limit':0x1,'include':[{'model':_0x2ca96f[_0xa757('0x19')],'as':'Contact','attributes':_[_0xa757('0x20')](_0x4d9f58)}]}]});})['then'](function(_0x32c2a1){_0x50aac1=_0x32c2a1[_0xa757('0xe')]({'plain':!![]});if(_0x50aac1&&_0x50aac1[_0xa757('0x21')]){logger[_0xa757('0x22')]('OpenchannelMessage,\x20%s,\x20%s','afterCreate',util[_0xa757('0x23')](_0xa757('0x24'),_0x3e2c9a['id'],_0x50aac1[_0xa757('0x21')]));if(_0x50aac1[_0xa757('0x1f')]&&_0x50aac1[_0xa757('0x1f')][_0xa757('0x25')]){_0x3e2c9a[_0xa757('0x26')]=_[_0xa757('0x27')](_0x50aac1[_0xa757('0x1f')][0x0],'Contact');_0x3e2c9a[_0xa757('0x28')]=_0x50aac1['Interactions'][0x0][_0xa757('0x28')];}var _0x5aef8a={'method':_0xa757('0x29'),'uri':encodeURI(_0x50aac1[_0xa757('0x21')]),'json':!![],'resolveWithFullResponse':!![]};switch(_0x5aef8a[_0xa757('0x2a')]){case'GET':_0x5aef8a['qs']=_0x3e2c9a;break;case _0xa757('0x29'):_0x5aef8a[_0xa757('0xb')]=_0x3e2c9a;break;}return rp(_0x5aef8a)[_0xa757('0x1b')](function(_0x3bf7f3){logger['info'](_0xa757('0x2b'),'afterCreate',util['format']('Message\x20%d\x20forwarded\x20to\x20%s',_0x3e2c9a['id'],_0x50aac1['replyUri']));if(_0x3bf7f3[_0xa757('0xb')]['threadId']&&_0x3bf7f3[_0xa757('0xb')][_0xa757('0x2c')]!=_0x3e2c9a['Interaction'][_0xa757('0x2c')]){return _0x2ca96f['OpenchannelInteraction'][_0xa757('0x13')]({'threadId':_0x3bf7f3[_0xa757('0xb')]['threadId']},{'logging':!![],'where':{'id':_0x3e2c9a[_0xa757('0x26')]['id']}});}else{return;}})['then'](function(){return _0x3a3db6[_0xa757('0x13')]({'read':!![]});})[_0xa757('0x15')](function(_0x458974){logger[_0xa757('0x16')](_0xa757('0x2b'),_0xa757('0x2d'),util[_0xa757('0x2e')](_0x458974,{'showHidden':![],'depth':null}));_0x89c630();});}else{_0x89c630();}})[_0xa757('0x2f')](function(){_0x89c630();});}else{_0x89c630();}}},'charset':_0xa757('0x30'),'collate':_0xa757('0x31')});};
\ No newline at end of file
+var _0x8952=['POST','GET','threadId','inspect','finally','utf8mb4','util','../../config/logger','api','moment','bluebird','path','rimraf','../../config/environment','exports','openchannel_messages','fti_openchannel_messages','body','FULLTEXT','models','toLowerCase','direction','secret','isNil','OpenchannelInteraction','findOne','update','catch','error','out','CmContact','describe','then','OpenchannelAccount','find','OpenchannelAccountId','Interactions','keys','replyUri','info','OpenchannelMessage,\x20%s,\x20%s','afterCreate','format','length','Interaction','omit','Contact'];(function(_0x16900a,_0xf684c7){var _0x2f2a13=function(_0x521679){while(--_0x521679){_0x16900a['push'](_0x16900a['shift']());}};_0x2f2a13(++_0xf684c7);}(_0x8952,0x17e));var _0x2895=function(_0x39642c,_0x57192d){_0x39642c=_0x39642c-0x0;var _0x4fdf3c=_0x8952[_0x39642c];return _0x4fdf3c;};'use strict';var _=require('lodash');var util=require(_0x2895('0x0'));var logger=require(_0x2895('0x1'))(_0x2895('0x2'));var moment=require(_0x2895('0x3'));var BPromise=require(_0x2895('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x2895('0x5'));var rimraf=require(_0x2895('0x6'));var config=require(_0x2895('0x7'));var attributes=require('./openchannelMessage.attributes');module[_0x2895('0x8')]=function(_0x73c245,_0x37305b){return _0x73c245['define']('OpenchannelMessage',attributes,{'tableName':_0x2895('0x9'),'paranoid':![],'indexes':[{'name':_0x2895('0xa'),'fields':[_0x2895('0xb')],'type':_0x2895('0xc')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x384cc6,_0x4952fa,_0x14fb67){var _0x5f2632=_0x73c245[_0x2895('0xd')];var _0x5af454=_0x384cc6['get']({'plain':!![]});if(_0x5af454['direction'][_0x2895('0xe')]()==='in'||_0x5af454[_0x2895('0xf')][_0x2895('0xe')]()==='out'&&!_0x5af454[_0x2895('0x10')]&&!_[_0x2895('0x11')](_0x5af454['UserId'])){_0x5f2632[_0x2895('0x12')][_0x2895('0x13')]({'where':{'id':_0x5af454['OpenchannelInteractionId']}})['then'](function(_0x1d1493){if(_0x1d1493){_0x1d1493[_0x2895('0x14')]({'lastMsgAt':_0x5af454['createdAt'],'lastMsgDirection':_0x5af454[_0x2895('0xf')][_0x2895('0xe')]()});}})[_0x2895('0x15')](function(_0x1ae013){console[_0x2895('0x16')](_0x1ae013);});}if(_0x5af454[_0x2895('0xf')]===_0x2895('0x17')&&!_0x5af454[_0x2895('0x10')]){var _0x3e96d7;_0x5f2632[_0x2895('0x18')][_0x2895('0x19')]()[_0x2895('0x1a')](function(_0xbf8b63){return _0x5f2632[_0x2895('0x1b')][_0x2895('0x1c')]({'where':{'id':_0x5af454[_0x2895('0x1d')]},'include':[{'model':_0x5f2632[_0x2895('0x12')],'as':_0x2895('0x1e'),'where':{'id':_0x5af454['OpenchannelInteractionId']},'limit':0x1,'include':[{'model':_0x5f2632['CmContact'],'as':'Contact','attributes':_[_0x2895('0x1f')](_0xbf8b63)}]}]});})[_0x2895('0x1a')](function(_0x3ec4da){_0x3e96d7=_0x3ec4da['get']({'plain':!![]});if(_0x3e96d7&&_0x3e96d7[_0x2895('0x20')]){logger[_0x2895('0x21')](_0x2895('0x22'),_0x2895('0x23'),util[_0x2895('0x24')]('Forwarding\x20message\x20%d\x20to\x20%s',_0x5af454['id'],_0x3e96d7[_0x2895('0x20')]));if(_0x3e96d7[_0x2895('0x1e')]&&_0x3e96d7['Interactions'][_0x2895('0x25')]){_0x5af454[_0x2895('0x26')]=_[_0x2895('0x27')](_0x3e96d7['Interactions'][0x0],'Contact');_0x5af454[_0x2895('0x28')]=_0x3e96d7[_0x2895('0x1e')][0x0][_0x2895('0x28')];}var _0x4952fa={'method':_0x2895('0x29'),'uri':encodeURI(_0x3e96d7[_0x2895('0x20')]),'json':!![],'resolveWithFullResponse':!![]};switch(_0x4952fa['method']){case _0x2895('0x2a'):_0x4952fa['qs']=_0x5af454;break;case _0x2895('0x29'):_0x4952fa[_0x2895('0xb')]=_0x5af454;break;}return rp(_0x4952fa)['then'](function(_0x320661){logger[_0x2895('0x21')]('OpenchannelMessage,\x20%s,\x20%s',_0x2895('0x23'),util['format']('Message\x20%d\x20forwarded\x20to\x20%s',_0x5af454['id'],_0x3e96d7[_0x2895('0x20')]));if(_0x320661['body'][_0x2895('0x2b')]&&_0x320661[_0x2895('0xb')]['threadId']!=_0x5af454['Interaction'][_0x2895('0x2b')]){return _0x5f2632[_0x2895('0x12')][_0x2895('0x14')]({'threadId':_0x320661[_0x2895('0xb')][_0x2895('0x2b')]},{'logging':!![],'where':{'id':_0x5af454[_0x2895('0x26')]['id']}});}else{return;}})[_0x2895('0x1a')](function(){return _0x384cc6['update']({'read':!![]});})[_0x2895('0x15')](function(_0xd45db5){logger[_0x2895('0x16')]('OpenchannelMessage,\x20%s,\x20%s',_0x2895('0x23'),util[_0x2895('0x2c')](_0xd45db5,{'showHidden':![],'depth':null}));_0x14fb67();});}else{_0x14fb67();}})[_0x2895('0x2d')](function(){_0x14fb67();});}else{_0x14fb67();}}},'charset':_0x2895('0x2e'),'collate':'utf8mb4_unicode_ci'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2ef3=['lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','../../config/environment','jayson/promise','redis','defaults','localhost','socket.io-emitter','./openchannelMessage.socket','register','request','then','OpenchannelMessage,\x20%s,\x20%s','debug','request\x20sent','stringify','code','error','message','result','catch','CreateOpenchannelMessage','create','options','info'];(function(_0x4cdce4,_0x52f9e9){var _0x457021=function(_0x4a9629){while(--_0x4a9629){_0x4cdce4['push'](_0x4cdce4['shift']());}};_0x457021(++_0x52f9e9);}(_0x2ef3,0xba));var _0x32ef=function(_0x570741,_0x94d8f3){_0x570741=_0x570741-0x0;var _0x3bbcea=_0x2ef3[_0x570741];return _0x3bbcea;};'use strict';var _=require(_0x32ef('0x0'));var util=require(_0x32ef('0x1'));var moment=require(_0x32ef('0x2'));var BPromise=require(_0x32ef('0x3'));var rs=require(_0x32ef('0x4'));var fs=require('fs');var Redis=require(_0x32ef('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x32ef('0x6'));var logger=require(_0x32ef('0x7'))('rpc');var config=require(_0x32ef('0x8'));var jayson=require(_0x32ef('0x9'));var client=jayson['client']['http']({'port':0x232a});config[_0x32ef('0xa')]=_[_0x32ef('0xb')](config[_0x32ef('0xa')],{'host':_0x32ef('0xc'),'port':0x18eb});var socket=require(_0x32ef('0xd'))(new Redis(config[_0x32ef('0xa')]));require(_0x32ef('0xe'))[_0x32ef('0xf')](socket);function respondWithRpcPromise(_0x28275c,_0x77df79,_0x56eb42){return new BPromise(function(_0x5780e9,_0x401d0b){return client[_0x32ef('0x10')](_0x28275c,_0x56eb42)[_0x32ef('0x11')](function(_0x1499c2){logger['info'](_0x32ef('0x12'),_0x77df79,'request\x20sent');logger[_0x32ef('0x13')]('OpenchannelMessage,\x20%s,\x20%s,\x20%s',_0x77df79,_0x32ef('0x14'),JSON[_0x32ef('0x15')](_0x1499c2));if(_0x1499c2['error']){if(_0x1499c2['error'][_0x32ef('0x16')]===0x1f4){logger['error'](_0x32ef('0x12'),_0x77df79,_0x1499c2[_0x32ef('0x17')][_0x32ef('0x18')]);return _0x401d0b(_0x1499c2[_0x32ef('0x17')]['message']);}logger['error']('OpenchannelMessage,\x20%s,\x20%s',_0x77df79,_0x1499c2[_0x32ef('0x17')][_0x32ef('0x18')]);return _0x5780e9(_0x1499c2[_0x32ef('0x17')]['message']);}else{logger['info'](_0x32ef('0x12'),_0x77df79,_0x32ef('0x14'));_0x5780e9(_0x1499c2[_0x32ef('0x19')]['message']);}})[_0x32ef('0x1a')](function(_0x33e230){logger['error'](_0x32ef('0x12'),_0x77df79,_0x33e230);_0x401d0b(_0x33e230);});});}exports[_0x32ef('0x1b')]=function(_0x26aff3){var _0x251084=this;return new Promise(function(_0x445cda,_0x3aec05){return db['OpenchannelMessage'][_0x32ef('0x1c')](_0x26aff3['body'],{'raw':_0x26aff3[_0x32ef('0x1d')]?_0x26aff3[_0x32ef('0x1d')]['raw']===undefined?!![]:![]:!![]})[_0x32ef('0x11')](function(_0x97780){logger[_0x32ef('0x1e')]('CreateOpenchannelMessage',_0x26aff3);logger['debug'](_0x32ef('0x1b'),_0x26aff3,JSON[_0x32ef('0x15')](_0x97780));_0x445cda(_0x97780);})[_0x32ef('0x1a')](function(_0x478bef){logger['error'](_0x32ef('0x1b'),_0x478bef['message'],_0x26aff3);_0x3aec05(_0x251084['error'](0x1f4,_0x478bef[_0x32ef('0x18')]));});});};
\ No newline at end of file
+var _0x2ef3=['lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','../../config/environment','jayson/promise','redis','defaults','localhost','socket.io-emitter','./openchannelMessage.socket','register','request','then','OpenchannelMessage,\x20%s,\x20%s','debug','request\x20sent','stringify','code','error','message','result','catch','CreateOpenchannelMessage','create','options','info'];(function(_0x784505,_0x1f9a71){var _0xc7f7f6=function(_0x1b09cc){while(--_0x1b09cc){_0x784505['push'](_0x784505['shift']());}};_0xc7f7f6(++_0x1f9a71);}(_0x2ef3,0xba));var _0x32ef=function(_0x4bc7ad,_0x559aec){_0x4bc7ad=_0x4bc7ad-0x0;var _0x5c88d0=_0x2ef3[_0x4bc7ad];return _0x5c88d0;};'use strict';var _=require(_0x32ef('0x0'));var util=require(_0x32ef('0x1'));var moment=require(_0x32ef('0x2'));var BPromise=require(_0x32ef('0x3'));var rs=require(_0x32ef('0x4'));var fs=require('fs');var Redis=require(_0x32ef('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x32ef('0x6'));var logger=require(_0x32ef('0x7'))('rpc');var config=require(_0x32ef('0x8'));var jayson=require(_0x32ef('0x9'));var client=jayson['client']['http']({'port':0x232a});config[_0x32ef('0xa')]=_[_0x32ef('0xb')](config[_0x32ef('0xa')],{'host':_0x32ef('0xc'),'port':0x18eb});var socket=require(_0x32ef('0xd'))(new Redis(config[_0x32ef('0xa')]));require(_0x32ef('0xe'))[_0x32ef('0xf')](socket);function respondWithRpcPromise(_0x28275c,_0x77df79,_0x56eb42){return new BPromise(function(_0x5780e9,_0x401d0b){return client[_0x32ef('0x10')](_0x28275c,_0x56eb42)[_0x32ef('0x11')](function(_0x1499c2){logger['info'](_0x32ef('0x12'),_0x77df79,'request\x20sent');logger[_0x32ef('0x13')]('OpenchannelMessage,\x20%s,\x20%s,\x20%s',_0x77df79,_0x32ef('0x14'),JSON[_0x32ef('0x15')](_0x1499c2));if(_0x1499c2['error']){if(_0x1499c2['error'][_0x32ef('0x16')]===0x1f4){logger['error'](_0x32ef('0x12'),_0x77df79,_0x1499c2[_0x32ef('0x17')][_0x32ef('0x18')]);return _0x401d0b(_0x1499c2[_0x32ef('0x17')]['message']);}logger['error']('OpenchannelMessage,\x20%s,\x20%s',_0x77df79,_0x1499c2[_0x32ef('0x17')][_0x32ef('0x18')]);return _0x5780e9(_0x1499c2[_0x32ef('0x17')]['message']);}else{logger['info'](_0x32ef('0x12'),_0x77df79,_0x32ef('0x14'));_0x5780e9(_0x1499c2[_0x32ef('0x19')]['message']);}})[_0x32ef('0x1a')](function(_0x33e230){logger['error'](_0x32ef('0x12'),_0x77df79,_0x33e230);_0x401d0b(_0x33e230);});});}exports[_0x32ef('0x1b')]=function(_0x26aff3){var _0x251084=this;return new Promise(function(_0x445cda,_0x3aec05){return db['OpenchannelMessage'][_0x32ef('0x1c')](_0x26aff3['body'],{'raw':_0x26aff3[_0x32ef('0x1d')]?_0x26aff3[_0x32ef('0x1d')]['raw']===undefined?!![]:![]:!![]})[_0x32ef('0x11')](function(_0x97780){logger[_0x32ef('0x1e')]('CreateOpenchannelMessage',_0x26aff3);logger['debug'](_0x32ef('0x1b'),_0x26aff3,JSON[_0x32ef('0x15')](_0x97780));_0x445cda(_0x97780);})[_0x32ef('0x1a')](function(_0x478bef){logger['error'](_0x32ef('0x1b'),_0x478bef['message'],_0x26aff3);_0x3aec05(_0x251084['error'](0x1f4,_0x478bef[_0x32ef('0x18')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc73a=['register','length','save','remove','update','emit','removeListener'];(function(_0xbd08b4,_0x4790ed){var _0x314f1e=function(_0x161589){while(--_0x161589){_0xbd08b4['push'](_0xbd08b4['shift']());}};_0x314f1e(++_0x4790ed);}(_0xc73a,0x72));var _0xac73=function(_0x2f5417,_0x3b2275){_0x2f5417=_0x2f5417-0x0;var _0x5c51e8=_0xc73a[_0x2f5417];return _0x5c51e8;};'use strict';var OpenchannelMessageEvents=require('./openchannelMessage.events');var events=[_0xac73('0x0'),_0xac73('0x1'),_0xac73('0x2')];function createListener(_0x4eb4db,_0x5dac0f){return function(_0x32e40e){_0x5dac0f[_0xac73('0x3')](_0x4eb4db,_0x32e40e);};}function removeListener(_0x36d689,_0x53ef2e){return function(){OpenchannelMessageEvents[_0xac73('0x4')](_0x36d689,_0x53ef2e);};}exports[_0xac73('0x5')]=function(_0x23fa68){for(var _0x57992a=0x0,_0x9eb408=events[_0xac73('0x6')];_0x57992a<_0x9eb408;_0x57992a++){var _0x1cc38a=events[_0x57992a];var _0x22638a=createListener('openchannelMessage:'+_0x1cc38a,_0x23fa68);OpenchannelMessageEvents['on'](_0x1cc38a,_0x22638a);}};
\ No newline at end of file
+var _0xef94=['removeListener','register','length','./openchannelMessage.events','save','update','emit'];(function(_0x2dbdf6,_0x40f023){var _0x596b65=function(_0x949d14){while(--_0x949d14){_0x2dbdf6['push'](_0x2dbdf6['shift']());}};_0x596b65(++_0x40f023);}(_0xef94,0x1b5));var _0x4ef9=function(_0x99376f,_0x5b8efd){_0x99376f=_0x99376f-0x0;var _0x1c648c=_0xef94[_0x99376f];return _0x1c648c;};'use strict';var OpenchannelMessageEvents=require(_0x4ef9('0x0'));var events=[_0x4ef9('0x1'),'remove',_0x4ef9('0x2')];function createListener(_0x38168e,_0x466c71){return function(_0x5c6d0d){_0x466c71[_0x4ef9('0x3')](_0x38168e,_0x5c6d0d);};}function removeListener(_0x26747b,_0x370a9d){return function(){OpenchannelMessageEvents[_0x4ef9('0x4')](_0x26747b,_0x370a9d);};}exports[_0x4ef9('0x5')]=function(_0x565c09){for(var _0x5763e7=0x0,_0x5c2962=events[_0x4ef9('0x6')];_0x5763e7<_0x5c2962;_0x5763e7++){var _0x114c85=events[_0x5763e7];var _0x3ecb55=createListener('openchannelMessage:'+_0x114c85,_0x565c09);OpenchannelMessageEvents['on'](_0x114c85,_0x3ecb55);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7382=['post','create','addAgents','put','update','delete','destroy','removeTeams','removeAgents','exports','util','path','connect-timeout','express','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/describe','describe','/:id','show','/:id/members','/:id/teams','getTeams','getAgents'];(function(_0x7b5cdd,_0x8c88d8){var _0x3a29ae=function(_0x17859a){while(--_0x17859a){_0x7b5cdd['push'](_0x7b5cdd['shift']());}};_0x3a29ae(++_0x8c88d8);}(_0x7382,0xea));var _0x2738=function(_0x184edd,_0x14ada2){_0x184edd=_0x184edd-0x0;var _0x47cba3=_0x7382[_0x184edd];return _0x47cba3;};'use strict';var multer=require('multer');var util=require(_0x2738('0x0'));var path=require(_0x2738('0x1'));var timeout=require(_0x2738('0x2'));var express=require(_0x2738('0x3'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0x2738('0x4'));var interaction=require(_0x2738('0x5'));var config=require(_0x2738('0x6'));var controller=require('./openchannelQueue.controller');router[_0x2738('0x7')]('/',auth[_0x2738('0x8')](),controller[_0x2738('0x9')]);router[_0x2738('0x7')](_0x2738('0xa'),auth[_0x2738('0x8')](),controller[_0x2738('0xb')]);router[_0x2738('0x7')](_0x2738('0xc'),auth[_0x2738('0x8')](),controller[_0x2738('0xd')]);router['get'](_0x2738('0xe'),auth['isAuthenticated'](),controller['getMembers']);router['get'](_0x2738('0xf'),auth['isAuthenticated'](),controller[_0x2738('0x10')]);router[_0x2738('0x7')]('/:id/users',auth[_0x2738('0x8')](),controller[_0x2738('0x11')]);router[_0x2738('0x12')]('/',auth[_0x2738('0x8')](),controller[_0x2738('0x13')]);router[_0x2738('0x12')](_0x2738('0xf'),auth['isAuthenticated'](),controller['addTeams']);router[_0x2738('0x12')]('/:id/users',auth[_0x2738('0x8')](),controller[_0x2738('0x14')]);router[_0x2738('0x15')](_0x2738('0xc'),auth[_0x2738('0x8')](),controller[_0x2738('0x16')]);router[_0x2738('0x17')](_0x2738('0xc'),auth[_0x2738('0x8')](),controller[_0x2738('0x18')]);router[_0x2738('0x17')]('/:id/teams',auth[_0x2738('0x8')](),controller[_0x2738('0x19')]);router[_0x2738('0x17')]('/:id/users',auth[_0x2738('0x8')](),controller[_0x2738('0x1a')]);module[_0x2738('0x1b')]=router;
\ No newline at end of file
+var _0x48bd=['path','connect-timeout','fs-extra','../../components/interaction/service','../../config/environment','./openchannelQueue.controller','get','isAuthenticated','/describe','/:id','/:id/members','getMembers','/:id/teams','/:id/users','getAgents','post','create','addTeams','addAgents','put','delete','removeAgents','exports','multer'];(function(_0x88afec,_0x453cf2){var _0x211767=function(_0x1b09e5){while(--_0x1b09e5){_0x88afec['push'](_0x88afec['shift']());}};_0x211767(++_0x453cf2);}(_0x48bd,0x1df));var _0xd48b=function(_0x4a2e40,_0xa4215f){_0x4a2e40=_0x4a2e40-0x0;var _0x216325=_0x48bd[_0x4a2e40];return _0x216325;};'use strict';var multer=require(_0xd48b('0x0'));var util=require('util');var path=require(_0xd48b('0x1'));var timeout=require(_0xd48b('0x2'));var express=require('express');var router=express['Router']();var fs_extra=require(_0xd48b('0x3'));var auth=require('../../components/auth/service');var interaction=require(_0xd48b('0x4'));var config=require(_0xd48b('0x5'));var controller=require(_0xd48b('0x6'));router[_0xd48b('0x7')]('/',auth[_0xd48b('0x8')](),controller['index']);router['get'](_0xd48b('0x9'),auth[_0xd48b('0x8')](),controller['describe']);router[_0xd48b('0x7')](_0xd48b('0xa'),auth[_0xd48b('0x8')](),controller['show']);router['get'](_0xd48b('0xb'),auth[_0xd48b('0x8')](),controller[_0xd48b('0xc')]);router[_0xd48b('0x7')](_0xd48b('0xd'),auth[_0xd48b('0x8')](),controller['getTeams']);router['get'](_0xd48b('0xe'),auth[_0xd48b('0x8')](),controller[_0xd48b('0xf')]);router[_0xd48b('0x10')]('/',auth['isAuthenticated'](),controller[_0xd48b('0x11')]);router['post'](_0xd48b('0xd'),auth[_0xd48b('0x8')](),controller[_0xd48b('0x12')]);router[_0xd48b('0x10')]('/:id/users',auth[_0xd48b('0x8')](),controller[_0xd48b('0x13')]);router[_0xd48b('0x14')](_0xd48b('0xa'),auth[_0xd48b('0x8')](),controller['update']);router[_0xd48b('0x15')](_0xd48b('0xa'),auth[_0xd48b('0x8')](),controller['destroy']);router['delete'](_0xd48b('0xd'),auth[_0xd48b('0x8')](),controller['removeTeams']);router['delete'](_0xd48b('0xe'),auth[_0xd48b('0x8')](),controller[_0xd48b('0x16')]);module[_0xd48b('0x17')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8cbe=['roundrobin','sequelize','exports','STRING','INTEGER','ENUM','rrmemory','beepall'];(function(_0x5ea045,_0xfe8d50){var _0x495a48=function(_0xfa0ce9){while(--_0xfa0ce9){_0x5ea045['push'](_0x5ea045['shift']());}};_0x495a48(++_0xfe8d50);}(_0x8cbe,0x171));var _0xe8cb=function(_0x121df6,_0x54d627){_0x121df6=_0x121df6-0x0;var _0x3fbde5=_0x8cbe[_0x121df6];return _0x3fbde5;};'use strict';var Sequelize=require(_0xe8cb('0x0'));module[_0xe8cb('0x1')]={'name':{'type':Sequelize[_0xe8cb('0x2')],'unique':'name','validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize[_0xe8cb('0x2')]},'timeout':{'type':Sequelize[_0xe8cb('0x3')],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0xe8cb('0x4')](_0xe8cb('0x5'),_0xe8cb('0x6'),_0xe8cb('0x7'))}};
\ No newline at end of file
+var _0xac06=['beepall','STRING','INTEGER','ENUM'];(function(_0x1eead3,_0x18f32b){var _0x12a236=function(_0x575747){while(--_0x575747){_0x1eead3['push'](_0x1eead3['shift']());}};_0x12a236(++_0x18f32b);}(_0xac06,0x65));var _0x6ac0=function(_0x5a93a3,_0x249068){_0x5a93a3=_0x5a93a3-0x0;var _0x5f256f=_0xac06[_0x5a93a3];return _0x5f256f;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize[_0x6ac0('0x0')],'unique':'name','validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize['STRING']},'timeout':{'type':Sequelize[_0x6ac0('0x1')],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0x6ac0('0x2')]('rrmemory',_0x6ac0('0x3'),'roundrobin')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe138=['emit','userOpenchannelQueue:remove','addAgents','omit','spread','getAgents','eml-format','fast-json-patch','request-promise','moment','mustache','to-csv','lodash','squel','crypto','jsforce','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./openchannelQueue.socket','sendStatus','status','end','json','offset','limit','count','apply','reject','save','update','then','destroy','get','OpenchannelQueues','UserProfileResource','error','stack','name','send','map','OpenchannelQueue','fieldName','type','model','keys','query','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','include','findAll','rows','catch','show','rawAttributes','includeAll','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','describe','getMembers','findOne','UserOpenchannelQueue','OpenchannelQueueId','User','findAndCountAll','UserId','openchannelPause','updatedAt','createdAt','format','%s/%s','SIP','getTeams','Team','ids','Agents','online','voicePause','interface','sequelize','transaction','addTeams','each','findOrCreate','forEach','userOpenchannelQueue:save','select','tq.TeamId','from','join','ut.TeamId\x20=\x20tq.TeamId','OpenchannelQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','QueryTypes','SELECT','every','includes','all','union','compact','value','removeTeams','isEmpty','removeAgents'];(function(_0xd66df5,_0x53491f){var _0x201685=function(_0xbb0870){while(--_0xbb0870){_0xd66df5['push'](_0xd66df5['shift']());}};_0x201685(++_0x53491f);}(_0xe138,0x8f));var _0x8e13=function(_0x15ba1f,_0x4454ae){_0x15ba1f=_0x15ba1f-0x0;var _0x419424=_0xe138[_0x15ba1f];return _0x419424;};'use strict';var emlformat=require(_0x8e13('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x8e13('0x1'));var rp=require(_0x8e13('0x2'));var moment=require(_0x8e13('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x8e13('0x4'));var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0x8e13('0x5'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x8e13('0x6'));var squel=require(_0x8e13('0x7'));var crypto=require(_0x8e13('0x8'));var jsforce=require(_0x8e13('0x9'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x8e13('0xa'));var Papa=require('papaparse');var Redis=require(_0x8e13('0xb'));var authService=require(_0x8e13('0xc'));var qs=require(_0x8e13('0xd'));var as=require(_0x8e13('0xe'));var hardwareService=require(_0x8e13('0xf'));var logger=require(_0x8e13('0x10'))(_0x8e13('0x11'));var utils=require('../../config/utils');var config=require(_0x8e13('0x12'));var licenseUtil=require('../../config/license/util');var db=require(_0x8e13('0x13'))['db'];config[_0x8e13('0x14')]=_[_0x8e13('0x15')](config[_0x8e13('0x14')],{'host':_0x8e13('0x16'),'port':0x18eb});var socket=require(_0x8e13('0x17'))(new Redis(config[_0x8e13('0x14')]));require(_0x8e13('0x18'))['register'](socket);function respondWithStatusCode(_0x10bc4a,_0x29694e){_0x29694e=_0x29694e||0xcc;return function(_0x160e3a){if(_0x160e3a){return _0x10bc4a[_0x8e13('0x19')](_0x29694e);}return _0x10bc4a[_0x8e13('0x1a')](_0x29694e)[_0x8e13('0x1b')]();};}function respondWithResult(_0x20fdf6,_0x381543){_0x381543=_0x381543||0xc8;return function(_0x347e40){if(_0x347e40){return _0x20fdf6[_0x8e13('0x1a')](_0x381543)[_0x8e13('0x1c')](_0x347e40);}};}function respondWithFilteredResult(_0x2b14d9,_0x1bcc3c){return function(_0x652acf){if(_0x652acf){var _0x480cee=typeof _0x1bcc3c[_0x8e13('0x1d')]==='undefined'&&typeof _0x1bcc3c[_0x8e13('0x1e')]==='undefined';var _0x250065=_0x652acf[_0x8e13('0x1f')];var _0x2ae903=_0x480cee?0x0:_0x1bcc3c[_0x8e13('0x1d')];var _0x267319=_0x480cee?_0x652acf['count']:_0x1bcc3c[_0x8e13('0x1d')]+_0x1bcc3c[_0x8e13('0x1e')];var _0x33f8b9;if(_0x267319>=_0x250065){_0x267319=_0x250065;_0x33f8b9=0xc8;}else{_0x33f8b9=0xce;}_0x2b14d9[_0x8e13('0x1a')](_0x33f8b9);return _0x2b14d9['set']('Content-Range',_0x2ae903+'-'+_0x267319+'/'+_0x250065)[_0x8e13('0x1c')](_0x652acf);}return null;};}function patchUpdates(_0x42e328){return function(_0x4ac14c){try{jsonpatch[_0x8e13('0x20')](_0x4ac14c,_0x42e328,!![]);}catch(_0x5448bc){return BPromise[_0x8e13('0x21')](_0x5448bc);}return _0x4ac14c[_0x8e13('0x22')]();};}function saveUpdates(_0x5d914b,_0xfa69f8){return function(_0x17432c){if(_0x17432c){return _0x17432c[_0x8e13('0x23')](_0x5d914b)[_0x8e13('0x24')](function(_0x4a43b5){return _0x4a43b5;});}return null;};}function removeEntity(_0x40c5d0,_0x1aa601){return function(_0x1bc2ee){if(_0x1bc2ee){return _0x1bc2ee[_0x8e13('0x25')]()[_0x8e13('0x24')](function(){var _0xf553e6=_0x1bc2ee[_0x8e13('0x26')]({'plain':!![]});var _0x1ae834=_0x8e13('0x27');return db[_0x8e13('0x28')]['destroy']({'where':{'type':_0x1ae834,'resourceId':_0xf553e6['id']}})['then'](function(){return _0x1bc2ee;});})[_0x8e13('0x24')](function(){_0x40c5d0['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x48b4bf,_0x41eb96){return function(_0x40cd45){if(!_0x40cd45){_0x48b4bf[_0x8e13('0x19')](0x194);}return _0x40cd45;};}function handleError(_0x452f7c,_0x25bd15){_0x25bd15=_0x25bd15||0x1f4;return function(_0x408e78){logger[_0x8e13('0x29')](_0x408e78[_0x8e13('0x2a')]);if(_0x408e78['name']){delete _0x408e78[_0x8e13('0x2b')];}_0x452f7c['status'](_0x25bd15)[_0x8e13('0x2c')](_0x408e78);};}exports['index']=function(_0x51cf03,_0x40afa4){var _0x55a48a={},_0x4a16f3={},_0x530595={'count':0x0,'rows':[]};var _0x141cb3=_[_0x8e13('0x2d')](db[_0x8e13('0x2e')]['rawAttributes'],function(_0x1c44a8){return{'name':_0x1c44a8[_0x8e13('0x2f')],'type':_0x1c44a8[_0x8e13('0x30')]['key']};});_0x4a16f3[_0x8e13('0x31')]=_['map'](_0x141cb3,_0x8e13('0x2b'));_0x4a16f3['query']=_[_0x8e13('0x32')](_0x51cf03[_0x8e13('0x33')]);_0x4a16f3['filters']=_['intersection'](_0x4a16f3[_0x8e13('0x31')],_0x4a16f3[_0x8e13('0x33')]);_0x55a48a[_0x8e13('0x34')]=_[_0x8e13('0x35')](_0x4a16f3[_0x8e13('0x31')],qs[_0x8e13('0x36')](_0x51cf03[_0x8e13('0x33')]['fields']));_0x55a48a[_0x8e13('0x34')]=_0x55a48a['attributes'][_0x8e13('0x37')]?_0x55a48a['attributes']:_0x4a16f3[_0x8e13('0x31')];if(!_0x51cf03[_0x8e13('0x33')][_0x8e13('0x38')](_0x8e13('0x39'))){_0x55a48a[_0x8e13('0x1e')]=qs[_0x8e13('0x1e')](_0x51cf03[_0x8e13('0x33')]['limit']);_0x55a48a['offset']=qs['offset'](_0x51cf03[_0x8e13('0x33')][_0x8e13('0x1d')]);}_0x55a48a[_0x8e13('0x3a')]=qs['sort'](_0x51cf03[_0x8e13('0x33')][_0x8e13('0x3b')]);_0x55a48a[_0x8e13('0x3c')]=qs[_0x8e13('0x3d')](_[_0x8e13('0x3e')](_0x51cf03[_0x8e13('0x33')],_0x4a16f3['filters']),_0x141cb3);if(_0x51cf03[_0x8e13('0x33')][_0x8e13('0x3f')]){_0x55a48a[_0x8e13('0x3c')]=_[_0x8e13('0x40')](_0x55a48a['where'],{'$or':_[_0x8e13('0x2d')](_0x141cb3,function(_0x2a1207){if(_0x2a1207[_0x8e13('0x30')]!==_0x8e13('0x41')){var _0x108582={};_0x108582[_0x2a1207['name']]={'$like':'%'+_0x51cf03[_0x8e13('0x33')][_0x8e13('0x3f')]+'%'};return _0x108582;}})});}_0x55a48a=_[_0x8e13('0x40')]({},_0x55a48a,_0x51cf03[_0x8e13('0x42')]);var _0x348322={'where':_0x55a48a[_0x8e13('0x3c')]};return db['OpenchannelQueue']['count'](_0x348322)[_0x8e13('0x24')](function(_0x513feb){_0x530595['count']=_0x513feb;if(_0x51cf03[_0x8e13('0x33')]['includeAll']){_0x55a48a[_0x8e13('0x43')]=[{'all':!![]}];}return db[_0x8e13('0x2e')][_0x8e13('0x44')](_0x55a48a);})[_0x8e13('0x24')](function(_0x5b86d3){_0x530595[_0x8e13('0x45')]=_0x5b86d3;return _0x530595;})['then'](respondWithFilteredResult(_0x40afa4,_0x55a48a))[_0x8e13('0x46')](handleError(_0x40afa4,null));};exports[_0x8e13('0x47')]=function(_0x4caf0c,_0x77e224){var _0x50ba4b={'raw':!![],'where':{'id':_0x4caf0c['params']['id']}},_0x35c31f={};_0x35c31f[_0x8e13('0x31')]=_[_0x8e13('0x32')](db[_0x8e13('0x2e')][_0x8e13('0x48')]);_0x35c31f[_0x8e13('0x33')]=_[_0x8e13('0x32')](_0x4caf0c['query']);_0x35c31f['filters']=_[_0x8e13('0x35')](_0x35c31f['model'],_0x35c31f[_0x8e13('0x33')]);_0x50ba4b['attributes']=_[_0x8e13('0x35')](_0x35c31f[_0x8e13('0x31')],qs['fields'](_0x4caf0c[_0x8e13('0x33')][_0x8e13('0x36')]));_0x50ba4b[_0x8e13('0x34')]=_0x50ba4b['attributes'][_0x8e13('0x37')]?_0x50ba4b[_0x8e13('0x34')]:_0x35c31f[_0x8e13('0x31')];if(_0x4caf0c[_0x8e13('0x33')][_0x8e13('0x49')]){_0x50ba4b[_0x8e13('0x43')]=[{'all':!![]}];}_0x50ba4b=_[_0x8e13('0x40')]({},_0x50ba4b,_0x4caf0c[_0x8e13('0x42')]);return db[_0x8e13('0x2e')][_0x8e13('0x4a')](_0x50ba4b)[_0x8e13('0x24')](handleEntityNotFound(_0x77e224,null))[_0x8e13('0x24')](respondWithResult(_0x77e224,null))[_0x8e13('0x46')](handleError(_0x77e224,null));};exports[_0x8e13('0x4b')]=function(_0x6c4fc3,_0x467225){return db['OpenchannelQueue'][_0x8e13('0x4b')](_0x6c4fc3[_0x8e13('0x4c')],{})[_0x8e13('0x24')](function(_0x15819a){var _0x1d2404=_0x6c4fc3[_0x8e13('0x4d')][_0x8e13('0x26')]({'plain':!![]});if(!_0x1d2404)throw new Error(_0x8e13('0x4e'));if(_0x1d2404[_0x8e13('0x4f')]==='user'){var _0x1293c4=_0x15819a[_0x8e13('0x26')]({'plain':!![]});var _0x2362d3=_0x8e13('0x27');return db[_0x8e13('0x50')][_0x8e13('0x4a')]({'where':{'name':_0x2362d3,'userProfileId':_0x1d2404[_0x8e13('0x51')]},'raw':!![]})[_0x8e13('0x24')](function(_0xfe519f){if(_0xfe519f&&_0xfe519f['autoAssociation']===0x0){return db[_0x8e13('0x28')]['create']({'name':_0x1293c4[_0x8e13('0x2b')],'resourceId':_0x1293c4['id'],'type':_0xfe519f[_0x8e13('0x2b')],'sectionId':_0xfe519f['id']},{})['then'](function(){return _0x15819a;});}else{return _0x15819a;}})[_0x8e13('0x46')](function(_0x2f5ba9){logger['error'](_0x8e13('0x52'),_0x2f5ba9);throw _0x2f5ba9;});}return _0x15819a;})['then'](respondWithResult(_0x467225,0xc9))[_0x8e13('0x46')](handleError(_0x467225,null));};exports[_0x8e13('0x23')]=function(_0x899eed,_0x13dc55){if(_0x899eed[_0x8e13('0x4c')]['id']){delete _0x899eed[_0x8e13('0x4c')]['id'];}return db[_0x8e13('0x2e')][_0x8e13('0x4a')]({'where':{'id':_0x899eed[_0x8e13('0x53')]['id']}})[_0x8e13('0x24')](handleEntityNotFound(_0x13dc55,null))[_0x8e13('0x24')](saveUpdates(_0x899eed[_0x8e13('0x4c')],null))[_0x8e13('0x24')](respondWithResult(_0x13dc55,null))['catch'](handleError(_0x13dc55,null));};exports[_0x8e13('0x25')]=function(_0x2da215,_0x5f1d38){return db[_0x8e13('0x2e')][_0x8e13('0x4a')]({'where':{'id':_0x2da215['params']['id']}})[_0x8e13('0x24')](handleEntityNotFound(_0x5f1d38,null))[_0x8e13('0x24')](removeEntity(_0x5f1d38,null))[_0x8e13('0x46')](handleError(_0x5f1d38,null));};exports[_0x8e13('0x54')]=function(_0x5009b5,_0x37b078){return db[_0x8e13('0x2e')][_0x8e13('0x54')]()[_0x8e13('0x24')](respondWithResult(_0x37b078,null))['catch'](handleError(_0x37b078,null));};exports[_0x8e13('0x55')]=function(_0x21e47d,_0xc33693,_0x1b43aa){var _0x1cf0a8={'raw':!![],'where':{}},_0x1ab1e2={},_0x322cd1;return db[_0x8e13('0x2e')][_0x8e13('0x56')]({'where':{'id':_0x21e47d['params']['id']}})[_0x8e13('0x24')](handleEntityNotFound(_0xc33693,null))['then'](function(_0x55eb1c){if(_0x55eb1c){_0x322cd1=_0x55eb1c[_0x8e13('0x26')]({'plain':!![]});_0x1ab1e2[_0x8e13('0x31')]=_['keys'](db[_0x8e13('0x57')][_0x8e13('0x48')]);_0x1ab1e2[_0x8e13('0x33')]=_[_0x8e13('0x32')](_0x21e47d[_0x8e13('0x33')]);_0x1ab1e2[_0x8e13('0x3d')]=_[_0x8e13('0x35')](_0x1ab1e2[_0x8e13('0x31')],_0x1ab1e2[_0x8e13('0x33')]);_0x1cf0a8['attributes']=_[_0x8e13('0x35')](_0x1ab1e2[_0x8e13('0x31')],qs[_0x8e13('0x36')](_0x21e47d['query'][_0x8e13('0x36')]));_0x1cf0a8[_0x8e13('0x34')]=_0x1cf0a8['attributes'][_0x8e13('0x37')]?_0x1cf0a8[_0x8e13('0x34')]:_0x1ab1e2[_0x8e13('0x31')];if(!_0x21e47d['query'][_0x8e13('0x38')](_0x8e13('0x39'))){_0x1cf0a8[_0x8e13('0x1e')]=qs['limit'](_0x21e47d[_0x8e13('0x33')][_0x8e13('0x1e')]);_0x1cf0a8[_0x8e13('0x1d')]=qs[_0x8e13('0x1d')](_0x21e47d[_0x8e13('0x33')][_0x8e13('0x1d')]);}_0x1cf0a8['order']=qs[_0x8e13('0x3b')](_0x21e47d['query'][_0x8e13('0x3b')]);_0x1cf0a8[_0x8e13('0x3c')]=qs[_0x8e13('0x3d')](_[_0x8e13('0x3e')](_0x21e47d[_0x8e13('0x33')],_0x1ab1e2[_0x8e13('0x3d')]));_0x1cf0a8[_0x8e13('0x3c')][_0x8e13('0x58')]=_0x55eb1c['id'];if(_0x21e47d[_0x8e13('0x33')][_0x8e13('0x3f')]){_0x1cf0a8[_0x8e13('0x3c')]=_[_0x8e13('0x40')](_0x1cf0a8[_0x8e13('0x3c')],{'$or':_[_0x8e13('0x2d')](_0x1cf0a8[_0x8e13('0x34')],function(_0x473617){var _0x1bd906={};_0x1bd906[_0x473617]={'$like':'%'+_0x21e47d[_0x8e13('0x33')][_0x8e13('0x3f')]+'%'};return _0x1bd906;})});}_0x1cf0a8=_[_0x8e13('0x40')]({},_0x1cf0a8,_0x21e47d['options']);return db[_0x8e13('0x57')]['findAll'](_0x1cf0a8);}})[_0x8e13('0x24')](function(_0x33a430){if(_0x33a430){return db[_0x8e13('0x59')][_0x8e13('0x5a')]({'where':{'id':_['map'](_0x33a430,_0x8e13('0x5b')),'role':'agent'},'attributes':['id',_0x8e13('0x2b'),_0x8e13('0x5c'),_0x8e13('0x5d'),_0x8e13('0x5e')]});}})[_0x8e13('0x24')](function(_0x4e54e7){if(_0x4e54e7){return{'count':_0x4e54e7['count'],'rows':_[_0x8e13('0x2d')](_0x4e54e7[_0x8e13('0x45')],function(_0x5c1de1){return{'membername':_0x5c1de1[_0x8e13('0x2b')],'UserId':_0x5c1de1['id'],'queue_name':_0x322cd1[_0x8e13('0x2b')],'OpenchannelQueueId':_0x322cd1['id'],'interface':util[_0x8e13('0x5f')](_0x8e13('0x60'),_0x8e13('0x61'),_0x5c1de1[_0x8e13('0x2b')]),'penalty':0x0,'paused':_0x5c1de1[_0x8e13('0x5c')],'createdAt':_0x5c1de1[_0x8e13('0x5e')],'updatedAt':_0x5c1de1[_0x8e13('0x5d')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x8e13('0x24')](respondWithFilteredResult(_0xc33693,_0x1cf0a8))[_0x8e13('0x46')](handleError(_0xc33693,null));};exports[_0x8e13('0x62')]=function(_0xd24b3e,_0x56219f,_0x1bda1d){var _0x5886be={};var _0x40d34c={};var _0x5bf531;var _0x429dc2;return db['OpenchannelQueue']['findOne']({'where':{'id':_0xd24b3e[_0x8e13('0x53')]['id']}})[_0x8e13('0x24')](handleEntityNotFound(_0x56219f,null))[_0x8e13('0x24')](function(_0x16e2c3){if(_0x16e2c3){_0x5bf531=_0x16e2c3;_0x40d34c[_0x8e13('0x31')]=_[_0x8e13('0x32')](db[_0x8e13('0x63')][_0x8e13('0x48')]);_0x40d34c[_0x8e13('0x33')]=_[_0x8e13('0x32')](_0xd24b3e[_0x8e13('0x33')]);_0x40d34c[_0x8e13('0x3d')]=_[_0x8e13('0x35')](_0x40d34c[_0x8e13('0x31')],_0x40d34c['query']);_0x5886be[_0x8e13('0x34')]=_[_0x8e13('0x35')](_0x40d34c['model'],qs['fields'](_0xd24b3e[_0x8e13('0x33')]['fields']));_0x5886be[_0x8e13('0x34')]=_0x5886be[_0x8e13('0x34')][_0x8e13('0x37')]?_0x5886be['attributes']:_0x40d34c[_0x8e13('0x31')];_0x5886be['order']=qs[_0x8e13('0x3b')](_0xd24b3e[_0x8e13('0x33')][_0x8e13('0x3b')]);_0x5886be[_0x8e13('0x3c')]=qs['filters'](_['pick'](_0xd24b3e[_0x8e13('0x33')],_0x40d34c[_0x8e13('0x3d')]));if(_0xd24b3e['query'][_0x8e13('0x3f')]){_0x5886be[_0x8e13('0x3c')]=_['merge'](_0x5886be['where'],{'$or':_[_0x8e13('0x2d')](_0x5886be[_0x8e13('0x34')],function(_0x1bad28){var _0x9f82={};_0x9f82[_0x1bad28]={'$like':'%'+_0xd24b3e[_0x8e13('0x33')]['filter']+'%'};return _0x9f82;})});}_0x5886be=_[_0x8e13('0x40')]({},_0x5886be,_0xd24b3e[_0x8e13('0x42')]);return _0x5bf531[_0x8e13('0x62')](_0x5886be);}})[_0x8e13('0x24')](function(_0x7eb8fd){if(_0x7eb8fd){_0x429dc2=_0x7eb8fd[_0x8e13('0x37')];if(!_0xd24b3e[_0x8e13('0x33')][_0x8e13('0x38')](_0x8e13('0x39'))){_0x5886be[_0x8e13('0x1e')]=qs['limit'](_0xd24b3e[_0x8e13('0x33')][_0x8e13('0x1e')]);_0x5886be['offset']=qs['offset'](_0xd24b3e[_0x8e13('0x33')]['offset']);}return _0x5bf531[_0x8e13('0x62')](_0x5886be);}})[_0x8e13('0x24')](function(_0x2b0e78){if(_0x2b0e78){return _0x2b0e78?{'count':_0x429dc2,'rows':_0x2b0e78}:null;}})['then'](respondWithResult(_0x56219f,null))[_0x8e13('0x46')](handleError(_0x56219f,null));};exports['addTeams']=function(_0x180f36,_0x505447,_0x5e4c1f){var _0x15d725=_0x180f36[_0x8e13('0x4c')][_0x8e13('0x64')];return db['Team'][_0x8e13('0x44')]({'where':{'id':_0x15d725},'attributes':['id'],'include':[{'model':db['User'],'as':_0x8e13('0x65'),'attributes':['id',_0x8e13('0x2b'),_0x8e13('0x66'),_0x8e13('0x67'),_0x8e13('0x68')],'raw':!![]}]})[_0x8e13('0x24')](function(_0x4f119b){if(_0x4f119b){var _0x54546e=_['flatMap'](_0x4f119b,function(_0x3ddbcd){var _0x2f76a4=_0x3ddbcd[_0x8e13('0x26')]({'plain':!![]});return _0x2f76a4[_0x8e13('0x65')];});return db[_0x8e13('0x2e')][_0x8e13('0x4a')]({'where':{'id':_0x180f36[_0x8e13('0x53')]['id']}})[_0x8e13('0x24')](function(_0x25d5b8){return db[_0x8e13('0x69')][_0x8e13('0x6a')](function(_0x3a8a11){return _0x25d5b8[_0x8e13('0x6b')](_0x15d725,{'transaction':_0x3a8a11})['then'](function(){return BPromise[_0x8e13('0x6c')](_0x54546e,function(_0x16ae75){return db[_0x8e13('0x57')][_0x8e13('0x6d')]({'where':{'UserId':_0x16ae75['id'],'OpenchannelQueueId':_0x180f36[_0x8e13('0x53')]['id']},'transaction':_0x3a8a11});});})[_0x8e13('0x24')](function(){_0x54546e[_0x8e13('0x6e')](function(_0x20b319){socket['emit'](_0x8e13('0x6f'),{'UserId':_0x20b319['id'],'OpenchannelQueueId':_0x25d5b8['id']});});});});});}})[_0x8e13('0x24')](respondWithStatusCode(_0x505447,null))[_0x8e13('0x46')](handleError(_0x505447,null));};exports['removeTeams']=function(_0x1cc7c9,_0x105530,_0x22793b){return db[_0x8e13('0x63')][_0x8e13('0x44')]({'where':{'id':_0x1cc7c9[_0x8e13('0x33')]['ids']},'attributes':['id'],'include':[{'model':db['User'],'as':'Agents','attributes':['id'],'raw':!![]}]})[_0x8e13('0x24')](handleEntityNotFound(_0x105530,null))[_0x8e13('0x24')](function(_0x561648){var _0x5b44f7=_[_0x8e13('0x2d')](_0x561648,'id');var _0x413c73=[];var _0xc1621c=[];var _0xde05ec=squel[_0x8e13('0x70')]();_0xde05ec['field'](_0x8e13('0x71'))[_0x8e13('0x72')]('team_has_openchannel_queues','tq')[_0x8e13('0x73')]('user_has_teams','ut',_0x8e13('0x74'))[_0x8e13('0x3c')](_0x8e13('0x75'),_0x1cc7c9[_0x8e13('0x53')]['id']);for(var _0x1dcf43=0x0;_0x1dcf43<_0x561648['length'];_0x1dcf43+=0x1){let _0x371f0d=_0x561648[_0x1dcf43];for(var _0x243bab=0x0;_0x243bab<_0x371f0d['Agents'][_0x8e13('0x37')];_0x243bab+=0x1){let _0x296c73=_0x371f0d['Agents'][_0x243bab];var _0xece3af=_0xde05ec[_0x8e13('0x76')]();_0xece3af['where'](_0x8e13('0x77'),_0x296c73['id']);_0xc1621c['push'](db[_0x8e13('0x69')][_0x8e13('0x33')](_0xece3af['toString'](),{'type':db['sequelize'][_0x8e13('0x78')][_0x8e13('0x79')]})['then'](function(_0x32beec){if(_0x32beec['length']===0x1){return _0x296c73['id'];}else{var _0xdc8e18=_[_0x8e13('0x7a')](_[_0x8e13('0x2d')](_0x32beec,'TeamId'),function(_0x22cc74){return _[_0x8e13('0x7b')](_0x5b44f7,_0x22cc74);});if(_0xdc8e18){return _0x296c73['id'];}}}));}}return BPromise[_0x8e13('0x7c')](_0xc1621c)[_0x8e13('0x24')](function(_0x1ece8e){_0x413c73=_(_0x413c73)[_0x8e13('0x7d')](_0x1ece8e)[_0x8e13('0x7e')]()[_0x8e13('0x7f')]();return db[_0x8e13('0x2e')][_0x8e13('0x4a')]({'where':{'id':_0x1cc7c9[_0x8e13('0x53')]['id']}})['then'](function(_0x442942){return db[_0x8e13('0x69')][_0x8e13('0x6a')](function(_0x14e1d1){return _0x442942[_0x8e13('0x80')](_0x1cc7c9['query'][_0x8e13('0x64')],{'transaction':_0x14e1d1})[_0x8e13('0x24')](function(){if(!_[_0x8e13('0x81')](_0x413c73)){return _0x442942[_0x8e13('0x82')](_0x413c73,{'transaction':_0x14e1d1});}})[_0x8e13('0x24')](function(){_0x413c73[_0x8e13('0x6e')](function(_0x1f526b){socket[_0x8e13('0x83')](_0x8e13('0x84'),{'UserId':_0x1f526b,'OpenchannelQueueId':_0x442942['id']});});});});});});})[_0x8e13('0x24')](respondWithStatusCode(_0x105530,null))[_0x8e13('0x46')](handleError(_0x105530,null));};exports[_0x8e13('0x85')]=function(_0x5f525f,_0x4618e4,_0x1a6591){return db[_0x8e13('0x2e')][_0x8e13('0x4a')]({'where':{'id':_0x5f525f['params']['id']}})['then'](handleEntityNotFound(_0x4618e4,null))[_0x8e13('0x24')](function(_0x201dc0){if(_0x201dc0){return _0x201dc0[_0x8e13('0x85')](_0x5f525f[_0x8e13('0x4c')][_0x8e13('0x64')],_[_0x8e13('0x86')](_0x5f525f['body'],[_0x8e13('0x64'),'id'])||{})[_0x8e13('0x87')](function(_0xecba01){for(var _0xd7faa4=0x0;_0xd7faa4<_0x5f525f['body'][_0x8e13('0x64')][_0x8e13('0x37')];_0xd7faa4+=0x1){socket['emit'](_0x8e13('0x6f'),{'UserId':Number(_0x5f525f[_0x8e13('0x4c')][_0x8e13('0x64')][_0xd7faa4]),'OpenchannelQueueId':Number(_0x5f525f[_0x8e13('0x53')]['id'])});}return _0xecba01;});}})[_0x8e13('0x24')](respondWithResult(_0x4618e4,null))[_0x8e13('0x46')](handleError(_0x4618e4,null));};exports['removeAgents']=function(_0x1941cd,_0x9d1d98,_0x53bdcc){return db[_0x8e13('0x2e')][_0x8e13('0x4a')]({'where':{'id':_0x1941cd[_0x8e13('0x53')]['id']}})['then'](handleEntityNotFound(_0x9d1d98,null))[_0x8e13('0x24')](function(_0xb9eff8){if(_0xb9eff8){return _0xb9eff8[_0x8e13('0x82')](_0x1941cd[_0x8e13('0x33')][_0x8e13('0x64')])[_0x8e13('0x24')](function(){if(_['isArray'](_0x1941cd[_0x8e13('0x33')][_0x8e13('0x64')])){for(var _0x2b9178=0x0;_0x2b9178<_0x1941cd['query'][_0x8e13('0x64')][_0x8e13('0x37')];_0x2b9178+=0x1){socket[_0x8e13('0x83')](_0x8e13('0x84'),{'UserId':Number(_0x1941cd['query'][_0x8e13('0x64')][_0x2b9178]),'OpenchannelQueueId':Number(_0x1941cd[_0x8e13('0x53')]['id'])});}}else{socket[_0x8e13('0x83')](_0x8e13('0x84'),{'UserId':Number(_0x1941cd[_0x8e13('0x33')][_0x8e13('0x64')]),'OpenchannelQueueId':Number(_0x1941cd[_0x8e13('0x53')]['id'])});}});}})['then'](respondWithStatusCode(_0x9d1d98,null))['catch'](handleError(_0x9d1d98,null));};exports[_0x8e13('0x88')]=function(_0x54f566,_0x185eba,_0x1ba175){var _0x169b18={};var _0xe16cd1={};var _0x404fff;var _0x16e0dd;return db[_0x8e13('0x2e')][_0x8e13('0x56')]({'where':{'id':_0x54f566[_0x8e13('0x53')]['id']}})[_0x8e13('0x24')](handleEntityNotFound(_0x185eba,null))[_0x8e13('0x24')](function(_0x5c9e3c){if(_0x5c9e3c){_0x404fff=_0x5c9e3c;_0xe16cd1['model']=_[_0x8e13('0x32')](db[_0x8e13('0x59')][_0x8e13('0x48')]);_0xe16cd1[_0x8e13('0x33')]=_['keys'](_0x54f566[_0x8e13('0x33')]);_0xe16cd1['filters']=_[_0x8e13('0x35')](_0xe16cd1[_0x8e13('0x31')],_0xe16cd1[_0x8e13('0x33')]);_0x169b18[_0x8e13('0x34')]=_[_0x8e13('0x35')](_0xe16cd1[_0x8e13('0x31')],qs[_0x8e13('0x36')](_0x54f566[_0x8e13('0x33')][_0x8e13('0x36')]));_0x169b18[_0x8e13('0x34')]=_0x169b18[_0x8e13('0x34')][_0x8e13('0x37')]?_0x169b18['attributes']:_0xe16cd1['model'];_0x169b18[_0x8e13('0x3a')]=qs[_0x8e13('0x3b')](_0x54f566['query'][_0x8e13('0x3b')]);_0x169b18[_0x8e13('0x3c')]=qs[_0x8e13('0x3d')](_[_0x8e13('0x3e')](_0x54f566[_0x8e13('0x33')],_0xe16cd1['filters']));if(_0x54f566[_0x8e13('0x33')][_0x8e13('0x3f')]){_0x169b18[_0x8e13('0x3c')]=_['merge'](_0x169b18[_0x8e13('0x3c')],{'$or':_[_0x8e13('0x2d')](_0x169b18[_0x8e13('0x34')],function(_0x496d4d){var _0xb395ab={};_0xb395ab[_0x496d4d]={'$like':'%'+_0x54f566['query'][_0x8e13('0x3f')]+'%'};return _0xb395ab;})});}_0x169b18=_['merge']({},_0x169b18,_0x54f566['options']);return _0x404fff[_0x8e13('0x88')](_0x169b18);}})[_0x8e13('0x24')](function(_0xfbea67){if(_0xfbea67){_0x16e0dd=_0xfbea67[_0x8e13('0x37')];if(!_0x54f566['query'][_0x8e13('0x38')](_0x8e13('0x39'))){_0x169b18['limit']=qs[_0x8e13('0x1e')](_0x54f566[_0x8e13('0x33')][_0x8e13('0x1e')]);_0x169b18[_0x8e13('0x1d')]=qs[_0x8e13('0x1d')](_0x54f566[_0x8e13('0x33')]['offset']);}return _0x404fff['getAgents'](_0x169b18);}})['then'](function(_0x28687b){if(_0x28687b){return _0x28687b?{'count':_0x16e0dd,'rows':_0x28687b}:null;}})[_0x8e13('0x24')](respondWithResult(_0x185eba,null))[_0x8e13('0x46')](handleError(_0x185eba,null));};
\ No newline at end of file
+var _0x1dc3=['SIP','getTeams','Team','addTeams','Agents','online','voicePause','interface','sequelize','transaction','findOrCreate','forEach','emit','userOpenchannelQueue:save','removeTeams','ids','select','field','user_has_teams','OpenchannelQueueId\x20=\x20?','clone','QueryTypes','every','TeamId','includes','compact','value','isEmpty','userOpenchannelQueue:remove','addAgents','omit','isArray','getAgents','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','ejs','fs-extra','lodash','squel','jsforce','desk.js','to-csv','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','defaults','redis','localhost','socket.io-emitter','./openchannelQueue.socket','register','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','save','then','get','OpenchannelQueues','UserProfileResource','destroy','error','stack','name','send','index','map','OpenchannelQueue','fieldName','keys','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','type','options','includeAll','include','findAll','params','rawAttributes','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','catch','update','describe','getMembers','findOne','UserOpenchannelQueue','OpenchannelQueueId','User','findAndCountAll','agent','openchannelPause','updatedAt','createdAt','rows','%s/%s'];(function(_0x35e4d9,_0x23cce6){var _0x26d4c9=function(_0x561b8b){while(--_0x561b8b){_0x35e4d9['push'](_0x35e4d9['shift']());}};_0x26d4c9(++_0x23cce6);}(_0x1dc3,0x1b9));var _0x31dc=function(_0x5c4be1,_0x3620d7){_0x5c4be1=_0x5c4be1-0x0;var _0x477669=_0x1dc3[_0x5c4be1];return _0x477669;};'use strict';var emlformat=require(_0x31dc('0x0'));var rimraf=require(_0x31dc('0x1'));var zipdir=require(_0x31dc('0x2'));var jsonpatch=require(_0x31dc('0x3'));var rp=require(_0x31dc('0x4'));var moment=require(_0x31dc('0x5'));var BPromise=require(_0x31dc('0x6'));var Mustache=require(_0x31dc('0x7'));var util=require(_0x31dc('0x8'));var path=require('path');var sox=require(_0x31dc('0x9'));var csv=require('to-csv');var ejs=require(_0x31dc('0xa'));var fs=require('fs');var fs_extra=require(_0x31dc('0xb'));var _=require(_0x31dc('0xc'));var squel=require(_0x31dc('0xd'));var crypto=require('crypto');var jsforce=require(_0x31dc('0xe'));var deskjs=require(_0x31dc('0xf'));var toCsv=require(_0x31dc('0x10'));var querystring=require('querystring');var Papa=require(_0x31dc('0x11'));var Redis=require('ioredis');var authService=require(_0x31dc('0x12'));var qs=require(_0x31dc('0x13'));var as=require(_0x31dc('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x31dc('0x15'))('api');var utils=require(_0x31dc('0x16'));var config=require(_0x31dc('0x17'));var licenseUtil=require(_0x31dc('0x18'));var db=require('../../mysqldb')['db'];config['redis']=_[_0x31dc('0x19')](config[_0x31dc('0x1a')],{'host':_0x31dc('0x1b'),'port':0x18eb});var socket=require(_0x31dc('0x1c'))(new Redis(config['redis']));require(_0x31dc('0x1d'))[_0x31dc('0x1e')](socket);function respondWithStatusCode(_0x4c57c3,_0x4ad1b2){_0x4ad1b2=_0x4ad1b2||0xcc;return function(_0x20b6cc){if(_0x20b6cc){return _0x4c57c3[_0x31dc('0x1f')](_0x4ad1b2);}return _0x4c57c3[_0x31dc('0x20')](_0x4ad1b2)[_0x31dc('0x21')]();};}function respondWithResult(_0xa4a2f1,_0x3b23da){_0x3b23da=_0x3b23da||0xc8;return function(_0x588d07){if(_0x588d07){return _0xa4a2f1[_0x31dc('0x20')](_0x3b23da)[_0x31dc('0x22')](_0x588d07);}};}function respondWithFilteredResult(_0x1c86d3,_0x223f60){return function(_0x55c531){if(_0x55c531){var _0x57c844=typeof _0x223f60[_0x31dc('0x23')]===_0x31dc('0x24')&&typeof _0x223f60['limit']==='undefined';var _0x266e48=_0x55c531[_0x31dc('0x25')];var _0x4565fb=_0x57c844?0x0:_0x223f60[_0x31dc('0x23')];var _0x5acfaa=_0x57c844?_0x55c531[_0x31dc('0x25')]:_0x223f60[_0x31dc('0x23')]+_0x223f60[_0x31dc('0x26')];var _0x335560;if(_0x5acfaa>=_0x266e48){_0x5acfaa=_0x266e48;_0x335560=0xc8;}else{_0x335560=0xce;}_0x1c86d3[_0x31dc('0x20')](_0x335560);return _0x1c86d3[_0x31dc('0x27')](_0x31dc('0x28'),_0x4565fb+'-'+_0x5acfaa+'/'+_0x266e48)[_0x31dc('0x22')](_0x55c531);}return null;};}function patchUpdates(_0x554806){return function(_0x205c53){try{jsonpatch[_0x31dc('0x29')](_0x205c53,_0x554806,!![]);}catch(_0x49a78f){return BPromise['reject'](_0x49a78f);}return _0x205c53[_0x31dc('0x2a')]();};}function saveUpdates(_0x347bdd,_0x1e0993){return function(_0xec121b){if(_0xec121b){return _0xec121b['update'](_0x347bdd)[_0x31dc('0x2b')](function(_0x5007a9){return _0x5007a9;});}return null;};}function removeEntity(_0x405c9c,_0x52cde4){return function(_0x927d74){if(_0x927d74){return _0x927d74['destroy']()[_0x31dc('0x2b')](function(){var _0x35c06a=_0x927d74[_0x31dc('0x2c')]({'plain':!![]});var _0x550af2=_0x31dc('0x2d');return db[_0x31dc('0x2e')][_0x31dc('0x2f')]({'where':{'type':_0x550af2,'resourceId':_0x35c06a['id']}})[_0x31dc('0x2b')](function(){return _0x927d74;});})[_0x31dc('0x2b')](function(){_0x405c9c['status'](0xcc)[_0x31dc('0x21')]();});}};}function handleEntityNotFound(_0x12befb,_0x1935e7){return function(_0x89bff4){if(!_0x89bff4){_0x12befb[_0x31dc('0x1f')](0x194);}return _0x89bff4;};}function handleError(_0x34424f,_0x375028){_0x375028=_0x375028||0x1f4;return function(_0x36742b){logger[_0x31dc('0x30')](_0x36742b[_0x31dc('0x31')]);if(_0x36742b[_0x31dc('0x32')]){delete _0x36742b[_0x31dc('0x32')];}_0x34424f[_0x31dc('0x20')](_0x375028)[_0x31dc('0x33')](_0x36742b);};}exports[_0x31dc('0x34')]=function(_0x4848ac,_0x3a3f35){var _0x59b01d={},_0x46f94f={},_0x58ef07={'count':0x0,'rows':[]};var _0xec9dda=_[_0x31dc('0x35')](db[_0x31dc('0x36')]['rawAttributes'],function(_0x1b85c4){return{'name':_0x1b85c4[_0x31dc('0x37')],'type':_0x1b85c4['type']['key']};});_0x46f94f['model']=_[_0x31dc('0x35')](_0xec9dda,_0x31dc('0x32'));_0x46f94f['query']=_[_0x31dc('0x38')](_0x4848ac[_0x31dc('0x39')]);_0x46f94f[_0x31dc('0x3a')]=_[_0x31dc('0x3b')](_0x46f94f[_0x31dc('0x3c')],_0x46f94f[_0x31dc('0x39')]);_0x59b01d[_0x31dc('0x3d')]=_['intersection'](_0x46f94f['model'],qs[_0x31dc('0x3e')](_0x4848ac[_0x31dc('0x39')]['fields']));_0x59b01d[_0x31dc('0x3d')]=_0x59b01d[_0x31dc('0x3d')][_0x31dc('0x3f')]?_0x59b01d[_0x31dc('0x3d')]:_0x46f94f['model'];if(!_0x4848ac['query'][_0x31dc('0x40')](_0x31dc('0x41'))){_0x59b01d['limit']=qs[_0x31dc('0x26')](_0x4848ac[_0x31dc('0x39')][_0x31dc('0x26')]);_0x59b01d['offset']=qs[_0x31dc('0x23')](_0x4848ac[_0x31dc('0x39')]['offset']);}_0x59b01d[_0x31dc('0x42')]=qs[_0x31dc('0x43')](_0x4848ac['query'][_0x31dc('0x43')]);_0x59b01d['where']=qs[_0x31dc('0x3a')](_[_0x31dc('0x44')](_0x4848ac[_0x31dc('0x39')],_0x46f94f[_0x31dc('0x3a')]),_0xec9dda);if(_0x4848ac[_0x31dc('0x39')][_0x31dc('0x45')]){_0x59b01d[_0x31dc('0x46')]=_[_0x31dc('0x47')](_0x59b01d['where'],{'$or':_[_0x31dc('0x35')](_0xec9dda,function(_0xe11ea2){if(_0xe11ea2[_0x31dc('0x48')]!=='VIRTUAL'){var _0x2a6554={};_0x2a6554[_0xe11ea2[_0x31dc('0x32')]]={'$like':'%'+_0x4848ac[_0x31dc('0x39')][_0x31dc('0x45')]+'%'};return _0x2a6554;}})});}_0x59b01d=_[_0x31dc('0x47')]({},_0x59b01d,_0x4848ac[_0x31dc('0x49')]);var _0x2e858f={'where':_0x59b01d[_0x31dc('0x46')]};return db[_0x31dc('0x36')][_0x31dc('0x25')](_0x2e858f)[_0x31dc('0x2b')](function(_0x110de9){_0x58ef07[_0x31dc('0x25')]=_0x110de9;if(_0x4848ac[_0x31dc('0x39')][_0x31dc('0x4a')]){_0x59b01d[_0x31dc('0x4b')]=[{'all':!![]}];}return db[_0x31dc('0x36')][_0x31dc('0x4c')](_0x59b01d);})['then'](function(_0x1c5fbe){_0x58ef07['rows']=_0x1c5fbe;return _0x58ef07;})['then'](respondWithFilteredResult(_0x3a3f35,_0x59b01d))['catch'](handleError(_0x3a3f35,null));};exports['show']=function(_0x5eb3ba,_0x1777b3){var _0x213877={'raw':!![],'where':{'id':_0x5eb3ba[_0x31dc('0x4d')]['id']}},_0xeea013={};_0xeea013[_0x31dc('0x3c')]=_[_0x31dc('0x38')](db[_0x31dc('0x36')][_0x31dc('0x4e')]);_0xeea013[_0x31dc('0x39')]=_[_0x31dc('0x38')](_0x5eb3ba['query']);_0xeea013['filters']=_[_0x31dc('0x3b')](_0xeea013[_0x31dc('0x3c')],_0xeea013['query']);_0x213877[_0x31dc('0x3d')]=_['intersection'](_0xeea013[_0x31dc('0x3c')],qs[_0x31dc('0x3e')](_0x5eb3ba[_0x31dc('0x39')]['fields']));_0x213877['attributes']=_0x213877[_0x31dc('0x3d')]['length']?_0x213877[_0x31dc('0x3d')]:_0xeea013['model'];if(_0x5eb3ba['query'][_0x31dc('0x4a')]){_0x213877['include']=[{'all':!![]}];}_0x213877=_[_0x31dc('0x47')]({},_0x213877,_0x5eb3ba[_0x31dc('0x49')]);return db[_0x31dc('0x36')][_0x31dc('0x4f')](_0x213877)[_0x31dc('0x2b')](handleEntityNotFound(_0x1777b3,null))[_0x31dc('0x2b')](respondWithResult(_0x1777b3,null))['catch'](handleError(_0x1777b3,null));};exports[_0x31dc('0x50')]=function(_0x320e50,_0x3cacd1){return db[_0x31dc('0x36')][_0x31dc('0x50')](_0x320e50[_0x31dc('0x51')],{})[_0x31dc('0x2b')](function(_0xc160cb){var _0x43a580=_0x320e50[_0x31dc('0x52')][_0x31dc('0x2c')]({'plain':!![]});if(!_0x43a580)throw new Error(_0x31dc('0x53'));if(_0x43a580[_0x31dc('0x54')]===_0x31dc('0x52')){var _0x241b8e=_0xc160cb['get']({'plain':!![]});var _0x5646a2=_0x31dc('0x2d');return db[_0x31dc('0x55')][_0x31dc('0x4f')]({'where':{'name':_0x5646a2,'userProfileId':_0x43a580[_0x31dc('0x56')]},'raw':!![]})['then'](function(_0x11dcbb){if(_0x11dcbb&&_0x11dcbb['autoAssociation']===0x0){return db[_0x31dc('0x2e')][_0x31dc('0x50')]({'name':_0x241b8e[_0x31dc('0x32')],'resourceId':_0x241b8e['id'],'type':_0x11dcbb['name'],'sectionId':_0x11dcbb['id']},{})[_0x31dc('0x2b')](function(){return _0xc160cb;});}else{return _0xc160cb;}})['catch'](function(_0xdd811e){logger[_0x31dc('0x30')](_0x31dc('0x57'),_0xdd811e);throw _0xdd811e;});}return _0xc160cb;})[_0x31dc('0x2b')](respondWithResult(_0x3cacd1,0xc9))[_0x31dc('0x58')](handleError(_0x3cacd1,null));};exports[_0x31dc('0x59')]=function(_0x498ec2,_0x3b28de){if(_0x498ec2['body']['id']){delete _0x498ec2[_0x31dc('0x51')]['id'];}return db['OpenchannelQueue']['find']({'where':{'id':_0x498ec2[_0x31dc('0x4d')]['id']}})['then'](handleEntityNotFound(_0x3b28de,null))[_0x31dc('0x2b')](saveUpdates(_0x498ec2[_0x31dc('0x51')],null))[_0x31dc('0x2b')](respondWithResult(_0x3b28de,null))[_0x31dc('0x58')](handleError(_0x3b28de,null));};exports['destroy']=function(_0x5ac85a,_0x37f3cb){return db[_0x31dc('0x36')][_0x31dc('0x4f')]({'where':{'id':_0x5ac85a['params']['id']}})[_0x31dc('0x2b')](handleEntityNotFound(_0x37f3cb,null))['then'](removeEntity(_0x37f3cb,null))[_0x31dc('0x58')](handleError(_0x37f3cb,null));};exports[_0x31dc('0x5a')]=function(_0x3c26b7,_0x246f94){return db[_0x31dc('0x36')][_0x31dc('0x5a')]()['then'](respondWithResult(_0x246f94,null))[_0x31dc('0x58')](handleError(_0x246f94,null));};exports[_0x31dc('0x5b')]=function(_0x2d28c4,_0x331d8f,_0x1c7c3e){var _0x43ef8f={'raw':!![],'where':{}},_0x3e1d7e={},_0x1e7c0a;return db[_0x31dc('0x36')][_0x31dc('0x5c')]({'where':{'id':_0x2d28c4[_0x31dc('0x4d')]['id']}})['then'](handleEntityNotFound(_0x331d8f,null))[_0x31dc('0x2b')](function(_0xf1da48){if(_0xf1da48){_0x1e7c0a=_0xf1da48[_0x31dc('0x2c')]({'plain':!![]});_0x3e1d7e[_0x31dc('0x3c')]=_[_0x31dc('0x38')](db[_0x31dc('0x5d')]['rawAttributes']);_0x3e1d7e['query']=_[_0x31dc('0x38')](_0x2d28c4[_0x31dc('0x39')]);_0x3e1d7e[_0x31dc('0x3a')]=_['intersection'](_0x3e1d7e[_0x31dc('0x3c')],_0x3e1d7e[_0x31dc('0x39')]);_0x43ef8f[_0x31dc('0x3d')]=_[_0x31dc('0x3b')](_0x3e1d7e[_0x31dc('0x3c')],qs[_0x31dc('0x3e')](_0x2d28c4['query'][_0x31dc('0x3e')]));_0x43ef8f['attributes']=_0x43ef8f['attributes'][_0x31dc('0x3f')]?_0x43ef8f[_0x31dc('0x3d')]:_0x3e1d7e[_0x31dc('0x3c')];if(!_0x2d28c4['query'][_0x31dc('0x40')](_0x31dc('0x41'))){_0x43ef8f[_0x31dc('0x26')]=qs[_0x31dc('0x26')](_0x2d28c4['query'][_0x31dc('0x26')]);_0x43ef8f['offset']=qs[_0x31dc('0x23')](_0x2d28c4['query']['offset']);}_0x43ef8f[_0x31dc('0x42')]=qs[_0x31dc('0x43')](_0x2d28c4[_0x31dc('0x39')]['sort']);_0x43ef8f['where']=qs['filters'](_[_0x31dc('0x44')](_0x2d28c4[_0x31dc('0x39')],_0x3e1d7e[_0x31dc('0x3a')]));_0x43ef8f[_0x31dc('0x46')][_0x31dc('0x5e')]=_0xf1da48['id'];if(_0x2d28c4[_0x31dc('0x39')][_0x31dc('0x45')]){_0x43ef8f[_0x31dc('0x46')]=_[_0x31dc('0x47')](_0x43ef8f[_0x31dc('0x46')],{'$or':_[_0x31dc('0x35')](_0x43ef8f['attributes'],function(_0x4d99cf){var _0x11b294={};_0x11b294[_0x4d99cf]={'$like':'%'+_0x2d28c4[_0x31dc('0x39')][_0x31dc('0x45')]+'%'};return _0x11b294;})});}_0x43ef8f=_[_0x31dc('0x47')]({},_0x43ef8f,_0x2d28c4[_0x31dc('0x49')]);return db['UserOpenchannelQueue'][_0x31dc('0x4c')](_0x43ef8f);}})[_0x31dc('0x2b')](function(_0x40a810){if(_0x40a810){return db[_0x31dc('0x5f')][_0x31dc('0x60')]({'where':{'id':_[_0x31dc('0x35')](_0x40a810,'UserId'),'role':_0x31dc('0x61')},'attributes':['id',_0x31dc('0x32'),_0x31dc('0x62'),_0x31dc('0x63'),_0x31dc('0x64')]});}})['then'](function(_0x55aade){if(_0x55aade){return{'count':_0x55aade[_0x31dc('0x25')],'rows':_[_0x31dc('0x35')](_0x55aade[_0x31dc('0x65')],function(_0x5eb510){return{'membername':_0x5eb510[_0x31dc('0x32')],'UserId':_0x5eb510['id'],'queue_name':_0x1e7c0a[_0x31dc('0x32')],'OpenchannelQueueId':_0x1e7c0a['id'],'interface':util['format'](_0x31dc('0x66'),_0x31dc('0x67'),_0x5eb510[_0x31dc('0x32')]),'penalty':0x0,'paused':_0x5eb510[_0x31dc('0x62')],'createdAt':_0x5eb510['createdAt'],'updatedAt':_0x5eb510[_0x31dc('0x63')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x31dc('0x2b')](respondWithFilteredResult(_0x331d8f,_0x43ef8f))[_0x31dc('0x58')](handleError(_0x331d8f,null));};exports[_0x31dc('0x68')]=function(_0x458337,_0x56b028,_0x1655b4){var _0x32d04d={};var _0xdd27fd={};var _0x4c3981;var _0xfb3aa7;return db[_0x31dc('0x36')][_0x31dc('0x5c')]({'where':{'id':_0x458337['params']['id']}})[_0x31dc('0x2b')](handleEntityNotFound(_0x56b028,null))[_0x31dc('0x2b')](function(_0x53ad08){if(_0x53ad08){_0x4c3981=_0x53ad08;_0xdd27fd[_0x31dc('0x3c')]=_[_0x31dc('0x38')](db[_0x31dc('0x69')][_0x31dc('0x4e')]);_0xdd27fd['query']=_[_0x31dc('0x38')](_0x458337[_0x31dc('0x39')]);_0xdd27fd[_0x31dc('0x3a')]=_[_0x31dc('0x3b')](_0xdd27fd[_0x31dc('0x3c')],_0xdd27fd['query']);_0x32d04d[_0x31dc('0x3d')]=_[_0x31dc('0x3b')](_0xdd27fd['model'],qs[_0x31dc('0x3e')](_0x458337[_0x31dc('0x39')][_0x31dc('0x3e')]));_0x32d04d[_0x31dc('0x3d')]=_0x32d04d[_0x31dc('0x3d')][_0x31dc('0x3f')]?_0x32d04d[_0x31dc('0x3d')]:_0xdd27fd[_0x31dc('0x3c')];_0x32d04d['order']=qs[_0x31dc('0x43')](_0x458337['query']['sort']);_0x32d04d[_0x31dc('0x46')]=qs[_0x31dc('0x3a')](_[_0x31dc('0x44')](_0x458337['query'],_0xdd27fd[_0x31dc('0x3a')]));if(_0x458337['query']['filter']){_0x32d04d[_0x31dc('0x46')]=_[_0x31dc('0x47')](_0x32d04d[_0x31dc('0x46')],{'$or':_['map'](_0x32d04d['attributes'],function(_0x24865b){var _0x4eb6a1={};_0x4eb6a1[_0x24865b]={'$like':'%'+_0x458337[_0x31dc('0x39')][_0x31dc('0x45')]+'%'};return _0x4eb6a1;})});}_0x32d04d=_[_0x31dc('0x47')]({},_0x32d04d,_0x458337[_0x31dc('0x49')]);return _0x4c3981[_0x31dc('0x68')](_0x32d04d);}})['then'](function(_0x2dbda8){if(_0x2dbda8){_0xfb3aa7=_0x2dbda8['length'];if(!_0x458337[_0x31dc('0x39')][_0x31dc('0x40')]('nolimit')){_0x32d04d[_0x31dc('0x26')]=qs['limit'](_0x458337['query']['limit']);_0x32d04d['offset']=qs[_0x31dc('0x23')](_0x458337[_0x31dc('0x39')][_0x31dc('0x23')]);}return _0x4c3981[_0x31dc('0x68')](_0x32d04d);}})[_0x31dc('0x2b')](function(_0x3dcde2){if(_0x3dcde2){return _0x3dcde2?{'count':_0xfb3aa7,'rows':_0x3dcde2}:null;}})[_0x31dc('0x2b')](respondWithResult(_0x56b028,null))[_0x31dc('0x58')](handleError(_0x56b028,null));};exports[_0x31dc('0x6a')]=function(_0x547f90,_0x22a0d9,_0x513e3a){var _0x169724=_0x547f90[_0x31dc('0x51')]['ids'];return db[_0x31dc('0x69')][_0x31dc('0x4c')]({'where':{'id':_0x169724},'attributes':['id'],'include':[{'model':db[_0x31dc('0x5f')],'as':_0x31dc('0x6b'),'attributes':['id',_0x31dc('0x32'),_0x31dc('0x6c'),_0x31dc('0x6d'),_0x31dc('0x6e')],'raw':!![]}]})['then'](function(_0x47d14d){if(_0x47d14d){var _0x224fce=_['flatMap'](_0x47d14d,function(_0x3f8518){var _0x3c4dd9=_0x3f8518[_0x31dc('0x2c')]({'plain':!![]});return _0x3c4dd9[_0x31dc('0x6b')];});return db['OpenchannelQueue'][_0x31dc('0x4f')]({'where':{'id':_0x547f90[_0x31dc('0x4d')]['id']}})[_0x31dc('0x2b')](function(_0x2b6cd9){return db[_0x31dc('0x6f')][_0x31dc('0x70')](function(_0x34d60e){return _0x2b6cd9['addTeams'](_0x169724,{'transaction':_0x34d60e})[_0x31dc('0x2b')](function(){return BPromise['each'](_0x224fce,function(_0x5e2e0e){return db['UserOpenchannelQueue'][_0x31dc('0x71')]({'where':{'UserId':_0x5e2e0e['id'],'OpenchannelQueueId':_0x547f90['params']['id']},'transaction':_0x34d60e});});})[_0x31dc('0x2b')](function(){_0x224fce[_0x31dc('0x72')](function(_0x35ec64){socket[_0x31dc('0x73')](_0x31dc('0x74'),{'UserId':_0x35ec64['id'],'OpenchannelQueueId':_0x2b6cd9['id']});});});});});}})[_0x31dc('0x2b')](respondWithStatusCode(_0x22a0d9,null))['catch'](handleError(_0x22a0d9,null));};exports[_0x31dc('0x75')]=function(_0x6dab78,_0x16a60d,_0x2d3d3f){return db[_0x31dc('0x69')][_0x31dc('0x4c')]({'where':{'id':_0x6dab78[_0x31dc('0x39')][_0x31dc('0x76')]},'attributes':['id'],'include':[{'model':db['User'],'as':_0x31dc('0x6b'),'attributes':['id'],'raw':!![]}]})['then'](handleEntityNotFound(_0x16a60d,null))[_0x31dc('0x2b')](function(_0x5a5f08){var _0x5a0c59=_['map'](_0x5a5f08,'id');var _0x1ee017=[];var _0x34aa12=[];var _0xd52bfc=squel[_0x31dc('0x77')]();_0xd52bfc[_0x31dc('0x78')]('tq.TeamId')['from']('team_has_openchannel_queues','tq')['join'](_0x31dc('0x79'),'ut','ut.TeamId\x20=\x20tq.TeamId')['where'](_0x31dc('0x7a'),_0x6dab78[_0x31dc('0x4d')]['id']);for(var _0x4eec4e=0x0;_0x4eec4e<_0x5a5f08[_0x31dc('0x3f')];_0x4eec4e+=0x1){let _0x59b8a7=_0x5a5f08[_0x4eec4e];for(var _0x4066a8=0x0;_0x4066a8<_0x59b8a7['Agents']['length'];_0x4066a8+=0x1){let _0x4e6982=_0x59b8a7[_0x31dc('0x6b')][_0x4066a8];var _0x58b2dc=_0xd52bfc[_0x31dc('0x7b')]();_0x58b2dc[_0x31dc('0x46')]('ut.UserId\x20=\x20?',_0x4e6982['id']);_0x34aa12['push'](db['sequelize'][_0x31dc('0x39')](_0x58b2dc['toString'](),{'type':db['sequelize'][_0x31dc('0x7c')]['SELECT']})[_0x31dc('0x2b')](function(_0x172fbb){if(_0x172fbb[_0x31dc('0x3f')]===0x1){return _0x4e6982['id'];}else{var _0x48b4fa=_[_0x31dc('0x7d')](_['map'](_0x172fbb,_0x31dc('0x7e')),function(_0x356c8c){return _[_0x31dc('0x7f')](_0x5a0c59,_0x356c8c);});if(_0x48b4fa){return _0x4e6982['id'];}}}));}}return BPromise['all'](_0x34aa12)[_0x31dc('0x2b')](function(_0x3f2bd1){_0x1ee017=_(_0x1ee017)['union'](_0x3f2bd1)[_0x31dc('0x80')]()[_0x31dc('0x81')]();return db['OpenchannelQueue']['find']({'where':{'id':_0x6dab78[_0x31dc('0x4d')]['id']}})[_0x31dc('0x2b')](function(_0x528689){return db[_0x31dc('0x6f')][_0x31dc('0x70')](function(_0x5d4f28){return _0x528689[_0x31dc('0x75')](_0x6dab78[_0x31dc('0x39')][_0x31dc('0x76')],{'transaction':_0x5d4f28})[_0x31dc('0x2b')](function(){if(!_[_0x31dc('0x82')](_0x1ee017)){return _0x528689['removeAgents'](_0x1ee017,{'transaction':_0x5d4f28});}})['then'](function(){_0x1ee017[_0x31dc('0x72')](function(_0x101173){socket[_0x31dc('0x73')](_0x31dc('0x83'),{'UserId':_0x101173,'OpenchannelQueueId':_0x528689['id']});});});});});});})[_0x31dc('0x2b')](respondWithStatusCode(_0x16a60d,null))[_0x31dc('0x58')](handleError(_0x16a60d,null));};exports[_0x31dc('0x84')]=function(_0x1c6afe,_0x33905b,_0x5e40d6){return db[_0x31dc('0x36')][_0x31dc('0x4f')]({'where':{'id':_0x1c6afe[_0x31dc('0x4d')]['id']}})[_0x31dc('0x2b')](handleEntityNotFound(_0x33905b,null))[_0x31dc('0x2b')](function(_0x34a70f){if(_0x34a70f){return _0x34a70f[_0x31dc('0x84')](_0x1c6afe[_0x31dc('0x51')][_0x31dc('0x76')],_[_0x31dc('0x85')](_0x1c6afe['body'],[_0x31dc('0x76'),'id'])||{})['spread'](function(_0x1d0f41){for(var _0x2d622a=0x0;_0x2d622a<_0x1c6afe[_0x31dc('0x51')][_0x31dc('0x76')][_0x31dc('0x3f')];_0x2d622a+=0x1){socket[_0x31dc('0x73')](_0x31dc('0x74'),{'UserId':Number(_0x1c6afe[_0x31dc('0x51')][_0x31dc('0x76')][_0x2d622a]),'OpenchannelQueueId':Number(_0x1c6afe['params']['id'])});}return _0x1d0f41;});}})[_0x31dc('0x2b')](respondWithResult(_0x33905b,null))[_0x31dc('0x58')](handleError(_0x33905b,null));};exports['removeAgents']=function(_0x55f94a,_0x377677,_0x5b9460){return db[_0x31dc('0x36')][_0x31dc('0x4f')]({'where':{'id':_0x55f94a[_0x31dc('0x4d')]['id']}})['then'](handleEntityNotFound(_0x377677,null))['then'](function(_0x5727b7){if(_0x5727b7){return _0x5727b7['removeAgents'](_0x55f94a[_0x31dc('0x39')][_0x31dc('0x76')])[_0x31dc('0x2b')](function(){if(_[_0x31dc('0x86')](_0x55f94a[_0x31dc('0x39')]['ids'])){for(var _0x531011=0x0;_0x531011<_0x55f94a[_0x31dc('0x39')][_0x31dc('0x76')][_0x31dc('0x3f')];_0x531011+=0x1){socket[_0x31dc('0x73')](_0x31dc('0x83'),{'UserId':Number(_0x55f94a[_0x31dc('0x39')][_0x31dc('0x76')][_0x531011]),'OpenchannelQueueId':Number(_0x55f94a[_0x31dc('0x4d')]['id'])});}}else{socket[_0x31dc('0x73')]('userOpenchannelQueue:remove',{'UserId':Number(_0x55f94a[_0x31dc('0x39')]['ids']),'OpenchannelQueueId':Number(_0x55f94a[_0x31dc('0x4d')]['id'])});}});}})['then'](respondWithStatusCode(_0x377677,null))['catch'](handleError(_0x377677,null));};exports[_0x31dc('0x87')]=function(_0x2700d8,_0x4d1a8a,_0x17c6f0){var _0x547c9e={};var _0x1a654c={};var _0x5e2618;var _0x4d9a51;return db['OpenchannelQueue']['findOne']({'where':{'id':_0x2700d8['params']['id']}})[_0x31dc('0x2b')](handleEntityNotFound(_0x4d1a8a,null))['then'](function(_0x51dcb6){if(_0x51dcb6){_0x5e2618=_0x51dcb6;_0x1a654c[_0x31dc('0x3c')]=_['keys'](db['User'][_0x31dc('0x4e')]);_0x1a654c[_0x31dc('0x39')]=_[_0x31dc('0x38')](_0x2700d8[_0x31dc('0x39')]);_0x1a654c[_0x31dc('0x3a')]=_[_0x31dc('0x3b')](_0x1a654c[_0x31dc('0x3c')],_0x1a654c[_0x31dc('0x39')]);_0x547c9e[_0x31dc('0x3d')]=_[_0x31dc('0x3b')](_0x1a654c[_0x31dc('0x3c')],qs['fields'](_0x2700d8[_0x31dc('0x39')][_0x31dc('0x3e')]));_0x547c9e[_0x31dc('0x3d')]=_0x547c9e[_0x31dc('0x3d')][_0x31dc('0x3f')]?_0x547c9e[_0x31dc('0x3d')]:_0x1a654c[_0x31dc('0x3c')];_0x547c9e[_0x31dc('0x42')]=qs['sort'](_0x2700d8[_0x31dc('0x39')]['sort']);_0x547c9e[_0x31dc('0x46')]=qs[_0x31dc('0x3a')](_[_0x31dc('0x44')](_0x2700d8[_0x31dc('0x39')],_0x1a654c[_0x31dc('0x3a')]));if(_0x2700d8[_0x31dc('0x39')][_0x31dc('0x45')]){_0x547c9e[_0x31dc('0x46')]=_[_0x31dc('0x47')](_0x547c9e[_0x31dc('0x46')],{'$or':_['map'](_0x547c9e[_0x31dc('0x3d')],function(_0x2eb61d){var _0x3e401a={};_0x3e401a[_0x2eb61d]={'$like':'%'+_0x2700d8['query'][_0x31dc('0x45')]+'%'};return _0x3e401a;})});}_0x547c9e=_[_0x31dc('0x47')]({},_0x547c9e,_0x2700d8[_0x31dc('0x49')]);return _0x5e2618['getAgents'](_0x547c9e);}})[_0x31dc('0x2b')](function(_0x4e8925){if(_0x4e8925){_0x4d9a51=_0x4e8925[_0x31dc('0x3f')];if(!_0x2700d8[_0x31dc('0x39')][_0x31dc('0x40')](_0x31dc('0x41'))){_0x547c9e[_0x31dc('0x26')]=qs[_0x31dc('0x26')](_0x2700d8[_0x31dc('0x39')]['limit']);_0x547c9e[_0x31dc('0x23')]=qs[_0x31dc('0x23')](_0x2700d8['query'][_0x31dc('0x23')]);}return _0x5e2618['getAgents'](_0x547c9e);}})[_0x31dc('0x2b')](function(_0x37756f){if(_0x37756f){return _0x37756f?{'count':_0x4d9a51,'rows':_0x37756f}:null;}})[_0x31dc('0x2b')](respondWithResult(_0x4d1a8a,null))['catch'](handleError(_0x4d1a8a,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9434=['events','../../mysqldb','OpenchannelQueue','setMaxListeners','save','update','emit','hasOwnProperty'];(function(_0x47de5e,_0x22b91f){var _0x190e3e=function(_0x162430){while(--_0x162430){_0x47de5e['push'](_0x47de5e['shift']());}};_0x190e3e(++_0x22b91f);}(_0x9434,0x168));var _0x4943=function(_0x481815,_0x453c54){_0x481815=_0x481815-0x0;var _0x1f8fc9=_0x9434[_0x481815];return _0x1f8fc9;};'use strict';var EventEmitter=require(_0x4943('0x0'));var OpenchannelQueue=require(_0x4943('0x1'))['db'][_0x4943('0x2')];var OpenchannelQueueEvents=new EventEmitter();OpenchannelQueueEvents[_0x4943('0x3')](0x0);var events={'afterCreate':_0x4943('0x4'),'afterUpdate':_0x4943('0x5'),'afterDestroy':'remove'};function emitEvent(_0x1159f9){return function(_0xda4cba,_0x5117c7,_0x2ce3d9){OpenchannelQueueEvents[_0x4943('0x6')](_0x1159f9+':'+_0xda4cba['id'],_0xda4cba);OpenchannelQueueEvents['emit'](_0x1159f9,_0xda4cba);_0x2ce3d9(null);};}for(var e in events){if(events[_0x4943('0x7')](e)){var event=events[e];OpenchannelQueue['hook'](e,emitEvent(event));}}module['exports']=OpenchannelQueueEvents;
\ No newline at end of file
+var _0x4529=['hook','../../mysqldb','OpenchannelQueue','setMaxListeners','update','emit'];(function(_0x32d333,_0x1e8286){var _0x302dde=function(_0x10d96b){while(--_0x10d96b){_0x32d333['push'](_0x32d333['shift']());}};_0x302dde(++_0x1e8286);}(_0x4529,0x103));var _0x9452=function(_0x168718,_0x305fbb){_0x168718=_0x168718-0x0;var _0x33dcda=_0x4529[_0x168718];return _0x33dcda;};'use strict';var EventEmitter=require('events');var OpenchannelQueue=require(_0x9452('0x0'))['db'][_0x9452('0x1')];var OpenchannelQueueEvents=new EventEmitter();OpenchannelQueueEvents[_0x9452('0x2')](0x0);var events={'afterCreate':'save','afterUpdate':_0x9452('0x3'),'afterDestroy':'remove'};function emitEvent(_0x27cefd){return function(_0x2913cb,_0x4ac649,_0x54e0c2){OpenchannelQueueEvents[_0x9452('0x4')](_0x27cefd+':'+_0x2913cb['id'],_0x2913cb);OpenchannelQueueEvents['emit'](_0x27cefd,_0x2913cb);_0x54e0c2(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];OpenchannelQueue[_0x9452('0x5')](e,emitEvent(event));}}module['exports']=OpenchannelQueueEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb928=['lodash','util','../../config/logger','api','request-promise','path','rimraf','../../config/environment','./openchannelQueue.attributes','exports','define','OpenchannelQueue'];(function(_0x525832,_0x295529){var _0x10486b=function(_0x1278d3){while(--_0x1278d3){_0x525832['push'](_0x525832['shift']());}};_0x10486b(++_0x295529);}(_0xb928,0x120));var _0x8b92=function(_0x3de873,_0x174b5f){_0x3de873=_0x3de873-0x0;var _0x380b8c=_0xb928[_0x3de873];return _0x380b8c;};'use strict';var _=require(_0x8b92('0x0'));var util=require(_0x8b92('0x1'));var logger=require(_0x8b92('0x2'))(_0x8b92('0x3'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0x8b92('0x4'));var fs=require('fs');var path=require(_0x8b92('0x5'));var rimraf=require(_0x8b92('0x6'));var config=require(_0x8b92('0x7'));var attributes=require(_0x8b92('0x8'));module[_0x8b92('0x9')]=function(_0x2fb9c8,_0x4bf39c){return _0x2fb9c8[_0x8b92('0xa')](_0x8b92('0xb'),attributes,{'tableName':'openchannel_queues','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xd85e=['exports','define','OpenchannelQueue','openchannel_queues','lodash','util','api','bluebird','request-promise','path','rimraf','./openchannelQueue.attributes'];(function(_0x5ca7b8,_0x1d8f03){var _0x58e84e=function(_0x2f0ffa){while(--_0x2f0ffa){_0x5ca7b8['push'](_0x5ca7b8['shift']());}};_0x58e84e(++_0x1d8f03);}(_0xd85e,0x184));var _0xed85=function(_0x39318e,_0x3757bc){_0x39318e=_0x39318e-0x0;var _0x3a4d56=_0xd85e[_0x39318e];return _0x3a4d56;};'use strict';var _=require(_0xed85('0x0'));var util=require(_0xed85('0x1'));var logger=require('../../config/logger')(_0xed85('0x2'));var moment=require('moment');var BPromise=require(_0xed85('0x3'));var rp=require(_0xed85('0x4'));var fs=require('fs');var path=require(_0xed85('0x5'));var rimraf=require(_0xed85('0x6'));var config=require('../../config/environment');var attributes=require(_0xed85('0x7'));module[_0xed85('0x8')]=function(_0x1b3ca8,_0x3496fe){return _0x1b3ca8[_0xed85('0x9')](_0xed85('0xa'),attributes,{'tableName':_0xed85('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x91db=['../../config/environment','jayson/promise','client','defaults','redis','socket.io-emitter','./openchannelQueue.socket','request','then','debug','request\x20sent','stringify','error','code','OpenchannelQueue,\x20%s,\x20%s','message','info','result','GetOpenchannelQueue','findAll','options','raw','where','attributes','limit','include','map','model','catch','ShowOpenchannelQueue','OpenchannelQueue','find','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc'];(function(_0x239a9,_0x4e772b){var _0x270da5=function(_0x23cff4){while(--_0x23cff4){_0x239a9['push'](_0x239a9['shift']());}};_0x270da5(++_0x4e772b);}(_0x91db,0x74));var _0xb91d=function(_0x4076b9,_0x2e4e1e){_0x4076b9=_0x4076b9-0x0;var _0x26e6e0=_0x91db[_0x4076b9];return _0x26e6e0;};'use strict';var _=require(_0xb91d('0x0'));var util=require(_0xb91d('0x1'));var moment=require(_0xb91d('0x2'));var BPromise=require(_0xb91d('0x3'));var rs=require(_0xb91d('0x4'));var fs=require('fs');var Redis=require(_0xb91d('0x5'));var db=require(_0xb91d('0x6'))['db'];var utils=require(_0xb91d('0x7'));var logger=require(_0xb91d('0x8'))(_0xb91d('0x9'));var config=require(_0xb91d('0xa'));var jayson=require(_0xb91d('0xb'));var client=jayson[_0xb91d('0xc')]['http']({'port':0x232a});config['redis']=_[_0xb91d('0xd')](config[_0xb91d('0xe')],{'host':'localhost','port':0x18eb});var socket=require(_0xb91d('0xf'))(new Redis(config[_0xb91d('0xe')]));require(_0xb91d('0x10'))['register'](socket);function respondWithRpcPromise(_0x43bf76,_0x21b96d,_0x5a7a87){return new BPromise(function(_0x479668,_0x4542f5){return client[_0xb91d('0x11')](_0x43bf76,_0x5a7a87)[_0xb91d('0x12')](function(_0x53d19a){logger['info']('OpenchannelQueue,\x20%s,\x20%s',_0x21b96d,'request\x20sent');logger[_0xb91d('0x13')]('OpenchannelQueue,\x20%s,\x20%s,\x20%s',_0x21b96d,_0xb91d('0x14'),JSON[_0xb91d('0x15')](_0x53d19a));if(_0x53d19a[_0xb91d('0x16')]){if(_0x53d19a[_0xb91d('0x16')][_0xb91d('0x17')]===0x1f4){logger[_0xb91d('0x16')](_0xb91d('0x18'),_0x21b96d,_0x53d19a['error'][_0xb91d('0x19')]);return _0x4542f5(_0x53d19a[_0xb91d('0x16')][_0xb91d('0x19')]);}logger['error']('OpenchannelQueue,\x20%s,\x20%s',_0x21b96d,_0x53d19a['error']['message']);return _0x479668(_0x53d19a['error']['message']);}else{logger[_0xb91d('0x1a')]('OpenchannelQueue,\x20%s,\x20%s',_0x21b96d,_0xb91d('0x14'));_0x479668(_0x53d19a[_0xb91d('0x1b')][_0xb91d('0x19')]);}})['catch'](function(_0x5d911f){logger[_0xb91d('0x16')](_0xb91d('0x18'),_0x21b96d,_0x5d911f);_0x4542f5(_0x5d911f);});});}exports[_0xb91d('0x1c')]=function(_0x49962a){var _0x545020=this;return new Promise(function(_0x382537,_0x3b7ff8){return db['OpenchannelQueue'][_0xb91d('0x1d')]({'raw':_0x49962a[_0xb91d('0x1e')]?_0x49962a[_0xb91d('0x1e')][_0xb91d('0x1f')]===undefined?!![]:![]:!![],'where':_0x49962a[_0xb91d('0x1e')]?_0x49962a[_0xb91d('0x1e')][_0xb91d('0x20')]||null:null,'attributes':_0x49962a[_0xb91d('0x1e')]?_0x49962a[_0xb91d('0x1e')][_0xb91d('0x21')]||null:null,'limit':_0x49962a['options']?_0x49962a[_0xb91d('0x1e')][_0xb91d('0x22')]||null:null,'include':_0x49962a['options']?_0x49962a[_0xb91d('0x1e')][_0xb91d('0x23')]?_[_0xb91d('0x24')](_0x49962a['options'][_0xb91d('0x23')],function(_0x2eecb6){return{'model':db[_0x2eecb6[_0xb91d('0x25')]],'as':_0x2eecb6['as'],'attributes':_0x2eecb6['attributes'],'include':_0x2eecb6[_0xb91d('0x23')]?_[_0xb91d('0x24')](_0x2eecb6[_0xb91d('0x23')],function(_0x4a647f){return{'model':db[_0x4a647f['model']],'as':_0x4a647f['as'],'attributes':_0x4a647f[_0xb91d('0x21')],'include':_0x4a647f[_0xb91d('0x23')]?_[_0xb91d('0x24')](_0x4a647f['include'],function(_0x58caab){return{'model':db[_0x58caab[_0xb91d('0x25')]],'as':_0x58caab['as'],'attributes':_0x58caab[_0xb91d('0x21')]};}):[]};}):[]};}):[]:[]})[_0xb91d('0x12')](function(_0x3bc1dd){logger[_0xb91d('0x1a')](_0xb91d('0x1c'),_0x49962a);logger[_0xb91d('0x13')](_0xb91d('0x1c'),_0x49962a,JSON[_0xb91d('0x15')](_0x3bc1dd));_0x382537(_0x3bc1dd);})[_0xb91d('0x26')](function(_0x14fd53){logger[_0xb91d('0x16')]('GetOpenchannelQueue',_0x14fd53['message'],_0x49962a);_0x3b7ff8(_0x545020['error'](0x1f4,_0x14fd53[_0xb91d('0x19')]));});});};exports[_0xb91d('0x27')]=function(_0xc8cd52){var _0x414038=this;return new Promise(function(_0x454d2c,_0x233b31){return db[_0xb91d('0x28')][_0xb91d('0x29')]({'raw':_0xc8cd52[_0xb91d('0x1e')]?_0xc8cd52[_0xb91d('0x1e')]['raw']===undefined?!![]:![]:!![],'where':_0xc8cd52['options']?_0xc8cd52[_0xb91d('0x1e')]['where']||null:null,'attributes':_0xc8cd52[_0xb91d('0x1e')]?_0xc8cd52['options'][_0xb91d('0x21')]||null:null,'include':_0xc8cd52[_0xb91d('0x1e')]?_0xc8cd52[_0xb91d('0x1e')]['include']?_[_0xb91d('0x24')](_0xc8cd52[_0xb91d('0x1e')][_0xb91d('0x23')],function(_0x114bdd){return{'model':db[_0x114bdd[_0xb91d('0x25')]],'as':_0x114bdd['as'],'attributes':_0x114bdd['attributes'],'include':_0x114bdd['include']?_['map'](_0x114bdd['include'],function(_0x800d90){return{'model':db[_0x800d90[_0xb91d('0x25')]],'as':_0x800d90['as'],'attributes':_0x800d90['attributes'],'include':_0x800d90[_0xb91d('0x23')]?_[_0xb91d('0x24')](_0x800d90[_0xb91d('0x23')],function(_0x3cabfc){return{'model':db[_0x3cabfc[_0xb91d('0x25')]],'as':_0x3cabfc['as'],'attributes':_0x3cabfc[_0xb91d('0x21')]};}):[]};}):[]};}):[]:[]})[_0xb91d('0x12')](function(_0x5bca82){logger[_0xb91d('0x1a')]('ShowOpenchannelQueue',_0xc8cd52);logger[_0xb91d('0x13')](_0xb91d('0x27'),_0xc8cd52,JSON[_0xb91d('0x15')](_0x5bca82));_0x454d2c(_0x5bca82);})[_0xb91d('0x26')](function(_0xa1056a){logger['error'](_0xb91d('0x27'),_0xa1056a[_0xb91d('0x19')],_0xc8cd52);_0x233b31(_0x414038[_0xb91d('0x16')](0x1f4,_0xa1056a[_0xb91d('0x19')]));});});};
\ No newline at end of file
+var _0xf1cf=['find','where','lodash','util','moment','bluebird','randomstring','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./openchannelQueue.socket','register','request','info','OpenchannelQueue,\x20%s,\x20%s','request\x20sent','debug','OpenchannelQueue,\x20%s,\x20%s,\x20%s','error','code','message','catch','OpenchannelQueue','findAll','options','raw','attributes','limit','include','map','model','then','GetOpenchannelQueue','stringify','ShowOpenchannelQueue'];(function(_0x29ccbf,_0x305077){var _0x464538=function(_0x121573){while(--_0x121573){_0x29ccbf['push'](_0x29ccbf['shift']());}};_0x464538(++_0x305077);}(_0xf1cf,0x83));var _0xff1c=function(_0x5a7714,_0x17af0e){_0x5a7714=_0x5a7714-0x0;var _0x5b4879=_0xf1cf[_0x5a7714];return _0x5b4879;};'use strict';var _=require(_0xff1c('0x0'));var util=require(_0xff1c('0x1'));var moment=require(_0xff1c('0x2'));var BPromise=require(_0xff1c('0x3'));var rs=require(_0xff1c('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0xff1c('0x5'));var logger=require(_0xff1c('0x6'))(_0xff1c('0x7'));var config=require(_0xff1c('0x8'));var jayson=require(_0xff1c('0x9'));var client=jayson[_0xff1c('0xa')][_0xff1c('0xb')]({'port':0x232a});config[_0xff1c('0xc')]=_[_0xff1c('0xd')](config[_0xff1c('0xc')],{'host':_0xff1c('0xe'),'port':0x18eb});var socket=require(_0xff1c('0xf'))(new Redis(config['redis']));require(_0xff1c('0x10'))[_0xff1c('0x11')](socket);function respondWithRpcPromise(_0x2c4d89,_0x4f15dd,_0xe3eb8a){return new BPromise(function(_0x1a0d43,_0x340015){return client[_0xff1c('0x12')](_0x2c4d89,_0xe3eb8a)['then'](function(_0xf09eef){logger[_0xff1c('0x13')](_0xff1c('0x14'),_0x4f15dd,_0xff1c('0x15'));logger[_0xff1c('0x16')](_0xff1c('0x17'),_0x4f15dd,_0xff1c('0x15'),JSON['stringify'](_0xf09eef));if(_0xf09eef[_0xff1c('0x18')]){if(_0xf09eef[_0xff1c('0x18')][_0xff1c('0x19')]===0x1f4){logger[_0xff1c('0x18')](_0xff1c('0x14'),_0x4f15dd,_0xf09eef[_0xff1c('0x18')][_0xff1c('0x1a')]);return _0x340015(_0xf09eef['error'][_0xff1c('0x1a')]);}logger[_0xff1c('0x18')](_0xff1c('0x14'),_0x4f15dd,_0xf09eef[_0xff1c('0x18')]['message']);return _0x1a0d43(_0xf09eef['error'][_0xff1c('0x1a')]);}else{logger['info'](_0xff1c('0x14'),_0x4f15dd,_0xff1c('0x15'));_0x1a0d43(_0xf09eef['result']['message']);}})[_0xff1c('0x1b')](function(_0x36be1a){logger[_0xff1c('0x18')](_0xff1c('0x14'),_0x4f15dd,_0x36be1a);_0x340015(_0x36be1a);});});}exports['GetOpenchannelQueue']=function(_0x321df3){var _0x26d3c6=this;return new Promise(function(_0x937662,_0x39e0af){return db[_0xff1c('0x1c')][_0xff1c('0x1d')]({'raw':_0x321df3[_0xff1c('0x1e')]?_0x321df3[_0xff1c('0x1e')][_0xff1c('0x1f')]===undefined?!![]:![]:!![],'where':_0x321df3[_0xff1c('0x1e')]?_0x321df3[_0xff1c('0x1e')]['where']||null:null,'attributes':_0x321df3[_0xff1c('0x1e')]?_0x321df3['options'][_0xff1c('0x20')]||null:null,'limit':_0x321df3[_0xff1c('0x1e')]?_0x321df3[_0xff1c('0x1e')][_0xff1c('0x21')]||null:null,'include':_0x321df3[_0xff1c('0x1e')]?_0x321df3[_0xff1c('0x1e')][_0xff1c('0x22')]?_[_0xff1c('0x23')](_0x321df3[_0xff1c('0x1e')][_0xff1c('0x22')],function(_0x30ea4){return{'model':db[_0x30ea4[_0xff1c('0x24')]],'as':_0x30ea4['as'],'attributes':_0x30ea4[_0xff1c('0x20')],'include':_0x30ea4[_0xff1c('0x22')]?_[_0xff1c('0x23')](_0x30ea4[_0xff1c('0x22')],function(_0x547f80){return{'model':db[_0x547f80[_0xff1c('0x24')]],'as':_0x547f80['as'],'attributes':_0x547f80[_0xff1c('0x20')],'include':_0x547f80[_0xff1c('0x22')]?_[_0xff1c('0x23')](_0x547f80[_0xff1c('0x22')],function(_0x5ced93){return{'model':db[_0x5ced93[_0xff1c('0x24')]],'as':_0x5ced93['as'],'attributes':_0x5ced93[_0xff1c('0x20')]};}):[]};}):[]};}):[]:[]})[_0xff1c('0x25')](function(_0xe9979a){logger['info'](_0xff1c('0x26'),_0x321df3);logger[_0xff1c('0x16')](_0xff1c('0x26'),_0x321df3,JSON[_0xff1c('0x27')](_0xe9979a));_0x937662(_0xe9979a);})['catch'](function(_0x200a66){logger[_0xff1c('0x18')]('GetOpenchannelQueue',_0x200a66[_0xff1c('0x1a')],_0x321df3);_0x39e0af(_0x26d3c6[_0xff1c('0x18')](0x1f4,_0x200a66['message']));});});};exports[_0xff1c('0x28')]=function(_0x5666ea){var _0x2a8a3e=this;return new Promise(function(_0x4135be,_0x296e23){return db[_0xff1c('0x1c')][_0xff1c('0x29')]({'raw':_0x5666ea[_0xff1c('0x1e')]?_0x5666ea[_0xff1c('0x1e')][_0xff1c('0x1f')]===undefined?!![]:![]:!![],'where':_0x5666ea[_0xff1c('0x1e')]?_0x5666ea[_0xff1c('0x1e')][_0xff1c('0x2a')]||null:null,'attributes':_0x5666ea[_0xff1c('0x1e')]?_0x5666ea['options'][_0xff1c('0x20')]||null:null,'include':_0x5666ea[_0xff1c('0x1e')]?_0x5666ea[_0xff1c('0x1e')][_0xff1c('0x22')]?_[_0xff1c('0x23')](_0x5666ea[_0xff1c('0x1e')]['include'],function(_0x1243fd){return{'model':db[_0x1243fd['model']],'as':_0x1243fd['as'],'attributes':_0x1243fd[_0xff1c('0x20')],'include':_0x1243fd[_0xff1c('0x22')]?_[_0xff1c('0x23')](_0x1243fd[_0xff1c('0x22')],function(_0x126276){return{'model':db[_0x126276[_0xff1c('0x24')]],'as':_0x126276['as'],'attributes':_0x126276[_0xff1c('0x20')],'include':_0x126276[_0xff1c('0x22')]?_[_0xff1c('0x23')](_0x126276[_0xff1c('0x22')],function(_0x12d8f3){return{'model':db[_0x12d8f3[_0xff1c('0x24')]],'as':_0x12d8f3['as'],'attributes':_0x12d8f3[_0xff1c('0x20')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x1f0338){logger[_0xff1c('0x13')](_0xff1c('0x28'),_0x5666ea);logger['debug']('ShowOpenchannelQueue',_0x5666ea,JSON[_0xff1c('0x27')](_0x1f0338));_0x4135be(_0x1f0338);})[_0xff1c('0x1b')](function(_0x16668a){logger[_0xff1c('0x18')](_0xff1c('0x28'),_0x16668a[_0xff1c('0x1a')],_0x5666ea);_0x296e23(_0x2a8a3e[_0xff1c('0x18')](0x1f4,_0x16668a[_0xff1c('0x1a')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa519=['save','remove','update','emit','removeListener','register','openchannelQueue:','./openchannelQueue.events'];(function(_0x3b5250,_0x7a0b2c){var _0xc844a1=function(_0x2fbc98){while(--_0x2fbc98){_0x3b5250['push'](_0x3b5250['shift']());}};_0xc844a1(++_0x7a0b2c);}(_0xa519,0xdf));var _0x9a51=function(_0x3649a5,_0x58341e){_0x3649a5=_0x3649a5-0x0;var _0x1ea60d=_0xa519[_0x3649a5];return _0x1ea60d;};'use strict';var OpenchannelQueueEvents=require(_0x9a51('0x0'));var events=[_0x9a51('0x1'),_0x9a51('0x2'),_0x9a51('0x3')];function createListener(_0x23462c,_0x4ad3e7){return function(_0x42cc3a){_0x4ad3e7[_0x9a51('0x4')](_0x23462c,_0x42cc3a);};}function removeListener(_0x5e6262,_0x444ca8){return function(){OpenchannelQueueEvents[_0x9a51('0x5')](_0x5e6262,_0x444ca8);};}exports[_0x9a51('0x6')]=function(_0x2bf163){for(var _0x184618=0x0,_0x13d726=events['length'];_0x184618<_0x13d726;_0x184618++){var _0x453f79=events[_0x184618];var _0x1d6fb7=createListener(_0x9a51('0x7')+_0x453f79,_0x2bf163);OpenchannelQueueEvents['on'](_0x453f79,_0x1d6fb7);}};
\ No newline at end of file
+var _0x5d76=['length','openchannelQueue:','update','emit','removeListener'];(function(_0x4f7fbf,_0x1348fc){var _0x5f3ca3=function(_0xdba820){while(--_0xdba820){_0x4f7fbf['push'](_0x4f7fbf['shift']());}};_0x5f3ca3(++_0x1348fc);}(_0x5d76,0xac));var _0x65d7=function(_0x28119f,_0x3602ab){_0x28119f=_0x28119f-0x0;var _0x1eed8e=_0x5d76[_0x28119f];return _0x1eed8e;};'use strict';var OpenchannelQueueEvents=require('./openchannelQueue.events');var events=['save','remove',_0x65d7('0x0')];function createListener(_0x22d435,_0x18a1b6){return function(_0x59c31d){_0x18a1b6[_0x65d7('0x1')](_0x22d435,_0x59c31d);};}function removeListener(_0x3a28b9,_0x2eee40){return function(){OpenchannelQueueEvents[_0x65d7('0x2')](_0x3a28b9,_0x2eee40);};}exports['register']=function(_0x5c6bc5){for(var _0x38cd66=0x0,_0x181c29=events[_0x65d7('0x3')];_0x38cd66<_0x181c29;_0x38cd66++){var _0x558314=events[_0x38cd66];var _0x11c31e=createListener(_0x65d7('0x4')+_0x558314,_0x5c6bc5);OpenchannelQueueEvents['on'](_0x558314,_0x11c31e);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4b5e=['index','get','/describe','describe','/:id','show','post','create','put','update','destroy','exports','multer','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./openchannelQueueReport.controller','isAuthenticated'];(function(_0x4b2436,_0x452299){var _0x4f5ab2=function(_0x5c6679){while(--_0x5c6679){_0x4b2436['push'](_0x4b2436['shift']());}};_0x4f5ab2(++_0x452299);}(_0x4b5e,0x11d));var _0xe4b5=function(_0x15767d,_0x282dec){_0x15767d=_0x15767d-0x0;var _0x33f8a8=_0x4b5e[_0x15767d];return _0x33f8a8;};'use strict';var multer=require(_0xe4b5('0x0'));var util=require('util');var path=require('path');var timeout=require('connect-timeout');var express=require(_0xe4b5('0x1'));var router=express[_0xe4b5('0x2')]();var fs_extra=require(_0xe4b5('0x3'));var auth=require(_0xe4b5('0x4'));var interaction=require(_0xe4b5('0x5'));var config=require(_0xe4b5('0x6'));var controller=require(_0xe4b5('0x7'));router['get']('/',auth[_0xe4b5('0x8')](),controller[_0xe4b5('0x9')]);router[_0xe4b5('0xa')](_0xe4b5('0xb'),auth[_0xe4b5('0x8')](),controller[_0xe4b5('0xc')]);router[_0xe4b5('0xa')](_0xe4b5('0xd'),auth[_0xe4b5('0x8')](),controller[_0xe4b5('0xe')]);router[_0xe4b5('0xf')]('/',auth['isAuthenticated'](),controller[_0xe4b5('0x10')]);router[_0xe4b5('0x11')](_0xe4b5('0xd'),auth[_0xe4b5('0x8')](),controller[_0xe4b5('0x12')]);router['delete'](_0xe4b5('0xd'),auth[_0xe4b5('0x8')](),controller[_0xe4b5('0x13')]);module[_0xe4b5('0x14')]=router;
\ No newline at end of file
+var _0xfa85=['put','update','delete','destroy','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','get','isAuthenticated','index','/describe','describe','/:id','show','post'];(function(_0x518c3e,_0x20fb03){var _0x2cf3fb=function(_0x27cb9e){while(--_0x27cb9e){_0x518c3e['push'](_0x518c3e['shift']());}};_0x2cf3fb(++_0x20fb03);}(_0xfa85,0x169));var _0x5fa8=function(_0x39c8a7,_0x2397e8){_0x39c8a7=_0x39c8a7-0x0;var _0x2039d2=_0xfa85[_0x39c8a7];return _0x2039d2;};'use strict';var multer=require(_0x5fa8('0x0'));var util=require(_0x5fa8('0x1'));var path=require(_0x5fa8('0x2'));var timeout=require(_0x5fa8('0x3'));var express=require(_0x5fa8('0x4'));var router=express[_0x5fa8('0x5')]();var fs_extra=require(_0x5fa8('0x6'));var auth=require(_0x5fa8('0x7'));var interaction=require('../../components/interaction/service');var config=require(_0x5fa8('0x8'));var controller=require('./openchannelQueueReport.controller');router[_0x5fa8('0x9')]('/',auth[_0x5fa8('0xa')](),controller[_0x5fa8('0xb')]);router[_0x5fa8('0x9')](_0x5fa8('0xc'),auth['isAuthenticated'](),controller[_0x5fa8('0xd')]);router[_0x5fa8('0x9')](_0x5fa8('0xe'),auth[_0x5fa8('0xa')](),controller[_0x5fa8('0xf')]);router[_0x5fa8('0x10')]('/',auth[_0x5fa8('0xa')](),controller['create']);router[_0x5fa8('0x11')](_0x5fa8('0xe'),auth['isAuthenticated'](),controller[_0x5fa8('0x12')]);router[_0x5fa8('0x13')](_0x5fa8('0xe'),auth[_0x5fa8('0xa')](),controller[_0x5fa8('0x14')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xccc2=['moment','sequelize','exports','STRING','DATE'];(function(_0x159b5b,_0xa14fb5){var _0x5cdc49=function(_0x447cf6){while(--_0x447cf6){_0x159b5b['push'](_0x159b5b['shift']());}};_0x5cdc49(++_0xa14fb5);}(_0xccc2,0xb9));var _0x2ccc=function(_0x5883e5,_0x41e9a4){_0x5883e5=_0x5883e5-0x0;var _0x31e53f=_0xccc2[_0x5883e5];return _0x31e53f;};'use strict';var moment=require(_0x2ccc('0x0'));var Sequelize=require(_0x2ccc('0x1'));module[_0x2ccc('0x2')]={'uniqueid':{'type':Sequelize[_0x2ccc('0x3')],'allowNull':![]},'from':{'type':Sequelize[_0x2ccc('0x3')]},'joinAt':{'type':Sequelize[_0x2ccc('0x4')]},'leaveAt':{'type':Sequelize[_0x2ccc('0x4')]},'acceptAt':{'type':Sequelize['DATE']},'exitAt':{'type':Sequelize['DATE']},'reason':{'type':Sequelize[_0x2ccc('0x3')]}};
\ No newline at end of file
+var _0xdb94=['DATE','sequelize','exports','STRING'];(function(_0x3c23c7,_0x347500){var _0x3ed647=function(_0x19e2a3){while(--_0x19e2a3){_0x3c23c7['push'](_0x3c23c7['shift']());}};_0x3ed647(++_0x347500);}(_0xdb94,0xe5));var _0x4db9=function(_0x325486,_0x4c343c){_0x325486=_0x325486-0x0;var _0x283449=_0xdb94[_0x325486];return _0x283449;};'use strict';var moment=require('moment');var Sequelize=require(_0x4db9('0x0'));module[_0x4db9('0x1')]={'uniqueid':{'type':Sequelize['STRING'],'allowNull':![]},'from':{'type':Sequelize[_0x4db9('0x2')]},'joinAt':{'type':Sequelize[_0x4db9('0x3')]},'leaveAt':{'type':Sequelize[_0x4db9('0x3')]},'acceptAt':{'type':Sequelize[_0x4db9('0x3')]},'exitAt':{'type':Sequelize[_0x4db9('0x3')]},'reason':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf549=['stack','name','index','rawAttributes','type','key','map','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','sort','where','pick','filter','merge','VIRTUAL','options','OpenchannelQueueReport','count','includeAll','findAll','rows','show','params','keys','find','create','body','catch','update','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','util','path','sox','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','limit','undefined','offset','set','Content-Range','apply','save','then','destroy'];(function(_0x3c7f77,_0x50b2a2){var _0x7f4d0=function(_0x4a3ea4){while(--_0x4a3ea4){_0x3c7f77['push'](_0x3c7f77['shift']());}};_0x7f4d0(++_0x50b2a2);}(_0xf549,0x1e6));var _0x9f54=function(_0x1243ea,_0x55ee56){_0x1243ea=_0x1243ea-0x0;var _0x348358=_0xf549[_0x1243ea];return _0x348358;};'use strict';var emlformat=require(_0x9f54('0x0'));var rimraf=require(_0x9f54('0x1'));var zipdir=require(_0x9f54('0x2'));var jsonpatch=require(_0x9f54('0x3'));var rp=require(_0x9f54('0x4'));var moment=require('moment');var BPromise=require(_0x9f54('0x5'));var Mustache=require('mustache');var util=require(_0x9f54('0x6'));var path=require(_0x9f54('0x7'));var sox=require(_0x9f54('0x8'));var csv=require('to-csv');var ejs=require(_0x9f54('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x9f54('0xa'));var squel=require(_0x9f54('0xb'));var crypto=require(_0x9f54('0xc'));var jsforce=require(_0x9f54('0xd'));var deskjs=require(_0x9f54('0xe'));var toCsv=require(_0x9f54('0xf'));var querystring=require(_0x9f54('0x10'));var Papa=require('papaparse');var Redis=require(_0x9f54('0x11'));var authService=require(_0x9f54('0x12'));var qs=require(_0x9f54('0x13'));var as=require(_0x9f54('0x14'));var hardwareService=require(_0x9f54('0x15'));var logger=require(_0x9f54('0x16'))('api');var utils=require(_0x9f54('0x17'));var config=require(_0x9f54('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0x9f54('0x19'))['db'];function respondWithStatusCode(_0x48f395,_0xd15dc2){_0xd15dc2=_0xd15dc2||0xcc;return function(_0x3e3991){if(_0x3e3991){return _0x48f395[_0x9f54('0x1a')](_0xd15dc2);}return _0x48f395[_0x9f54('0x1b')](_0xd15dc2)[_0x9f54('0x1c')]();};}function respondWithResult(_0x3d6e7f,_0x147334){_0x147334=_0x147334||0xc8;return function(_0x4cf581){if(_0x4cf581){return _0x3d6e7f[_0x9f54('0x1b')](_0x147334)[_0x9f54('0x1d')](_0x4cf581);}};}function respondWithFilteredResult(_0x19c406,_0xfaeb12){return function(_0x469f1c){if(_0x469f1c){var _0x446dc2=typeof _0xfaeb12['offset']==='undefined'&&typeof _0xfaeb12[_0x9f54('0x1e')]===_0x9f54('0x1f');var _0x5ab95e=_0x469f1c['count'];var _0x5ed89f=_0x446dc2?0x0:_0xfaeb12['offset'];var _0x503e0f=_0x446dc2?_0x469f1c['count']:_0xfaeb12[_0x9f54('0x20')]+_0xfaeb12[_0x9f54('0x1e')];var _0x5aafde;if(_0x503e0f>=_0x5ab95e){_0x503e0f=_0x5ab95e;_0x5aafde=0xc8;}else{_0x5aafde=0xce;}_0x19c406[_0x9f54('0x1b')](_0x5aafde);return _0x19c406[_0x9f54('0x21')](_0x9f54('0x22'),_0x5ed89f+'-'+_0x503e0f+'/'+_0x5ab95e)['json'](_0x469f1c);}return null;};}function patchUpdates(_0x20a3fe){return function(_0x22b13){try{jsonpatch[_0x9f54('0x23')](_0x22b13,_0x20a3fe,!![]);}catch(_0x24b358){return BPromise['reject'](_0x24b358);}return _0x22b13[_0x9f54('0x24')]();};}function saveUpdates(_0x16c73d,_0x473b59){return function(_0x393984){if(_0x393984){return _0x393984['update'](_0x16c73d)[_0x9f54('0x25')](function(_0x20208d){return _0x20208d;});}return null;};}function removeEntity(_0x49f97f,_0x41928f){return function(_0x3bdf03){if(_0x3bdf03){return _0x3bdf03[_0x9f54('0x26')]()['then'](function(){_0x49f97f[_0x9f54('0x1b')](0xcc)[_0x9f54('0x1c')]();});}};}function handleEntityNotFound(_0x108f9b,_0x119cf4){return function(_0x3f0244){if(!_0x3f0244){_0x108f9b[_0x9f54('0x1a')](0x194);}return _0x3f0244;};}function handleError(_0x56d8f6,_0x2e028f){_0x2e028f=_0x2e028f||0x1f4;return function(_0x265bb6){logger['error'](_0x265bb6[_0x9f54('0x27')]);if(_0x265bb6[_0x9f54('0x28')]){delete _0x265bb6['name'];}_0x56d8f6[_0x9f54('0x1b')](_0x2e028f)['send'](_0x265bb6);};}exports[_0x9f54('0x29')]=function(_0x222268,_0x5d6431){var _0x25fcc4={},_0xf83bcc={},_0x5781e3={'count':0x0,'rows':[]};var _0x18a131=_['map'](db['OpenchannelQueueReport'][_0x9f54('0x2a')],function(_0x1e523f){return{'name':_0x1e523f['fieldName'],'type':_0x1e523f[_0x9f54('0x2b')][_0x9f54('0x2c')]};});_0xf83bcc['model']=_[_0x9f54('0x2d')](_0x18a131,_0x9f54('0x28'));_0xf83bcc[_0x9f54('0x2e')]=_['keys'](_0x222268[_0x9f54('0x2e')]);_0xf83bcc[_0x9f54('0x2f')]=_[_0x9f54('0x30')](_0xf83bcc[_0x9f54('0x31')],_0xf83bcc[_0x9f54('0x2e')]);_0x25fcc4[_0x9f54('0x32')]=_[_0x9f54('0x30')](_0xf83bcc['model'],qs['fields'](_0x222268[_0x9f54('0x2e')][_0x9f54('0x33')]));_0x25fcc4['attributes']=_0x25fcc4[_0x9f54('0x32')][_0x9f54('0x34')]?_0x25fcc4['attributes']:_0xf83bcc[_0x9f54('0x31')];if(!_0x222268[_0x9f54('0x2e')][_0x9f54('0x35')]('nolimit')){_0x25fcc4[_0x9f54('0x1e')]=qs['limit'](_0x222268[_0x9f54('0x2e')]['limit']);_0x25fcc4['offset']=qs[_0x9f54('0x20')](_0x222268[_0x9f54('0x2e')][_0x9f54('0x20')]);}_0x25fcc4['order']=qs[_0x9f54('0x36')](_0x222268[_0x9f54('0x2e')][_0x9f54('0x36')]);_0x25fcc4[_0x9f54('0x37')]=qs[_0x9f54('0x2f')](_[_0x9f54('0x38')](_0x222268[_0x9f54('0x2e')],_0xf83bcc[_0x9f54('0x2f')]),_0x18a131);if(_0x222268['query'][_0x9f54('0x39')]){_0x25fcc4[_0x9f54('0x37')]=_[_0x9f54('0x3a')](_0x25fcc4[_0x9f54('0x37')],{'$or':_['map'](_0x18a131,function(_0x45a08f){if(_0x45a08f['type']!==_0x9f54('0x3b')){var _0x5a4c8a={};_0x5a4c8a[_0x45a08f['name']]={'$like':'%'+_0x222268['query'][_0x9f54('0x39')]+'%'};return _0x5a4c8a;}})});}_0x25fcc4=_[_0x9f54('0x3a')]({},_0x25fcc4,_0x222268[_0x9f54('0x3c')]);var _0x5f30d3={'where':_0x25fcc4[_0x9f54('0x37')]};return db[_0x9f54('0x3d')]['count'](_0x5f30d3)[_0x9f54('0x25')](function(_0x3711d9){_0x5781e3[_0x9f54('0x3e')]=_0x3711d9;if(_0x222268[_0x9f54('0x2e')][_0x9f54('0x3f')]){_0x25fcc4['include']=[{'all':!![]}];}return db['OpenchannelQueueReport'][_0x9f54('0x40')](_0x25fcc4);})[_0x9f54('0x25')](function(_0xa9cb61){_0x5781e3[_0x9f54('0x41')]=_0xa9cb61;return _0x5781e3;})[_0x9f54('0x25')](respondWithFilteredResult(_0x5d6431,_0x25fcc4))['catch'](handleError(_0x5d6431,null));};exports[_0x9f54('0x42')]=function(_0xaa45fe,_0x4fc7d3){var _0x4be8d5={'raw':!![],'where':{'id':_0xaa45fe[_0x9f54('0x43')]['id']}},_0x2f6acb={};_0x2f6acb[_0x9f54('0x31')]=_[_0x9f54('0x44')](db[_0x9f54('0x3d')][_0x9f54('0x2a')]);_0x2f6acb['query']=_[_0x9f54('0x44')](_0xaa45fe[_0x9f54('0x2e')]);_0x2f6acb['filters']=_['intersection'](_0x2f6acb[_0x9f54('0x31')],_0x2f6acb[_0x9f54('0x2e')]);_0x4be8d5[_0x9f54('0x32')]=_[_0x9f54('0x30')](_0x2f6acb[_0x9f54('0x31')],qs[_0x9f54('0x33')](_0xaa45fe[_0x9f54('0x2e')]['fields']));_0x4be8d5[_0x9f54('0x32')]=_0x4be8d5[_0x9f54('0x32')][_0x9f54('0x34')]?_0x4be8d5[_0x9f54('0x32')]:_0x2f6acb['model'];if(_0xaa45fe[_0x9f54('0x2e')][_0x9f54('0x3f')]){_0x4be8d5['include']=[{'all':!![]}];}_0x4be8d5=_[_0x9f54('0x3a')]({},_0x4be8d5,_0xaa45fe[_0x9f54('0x3c')]);return db[_0x9f54('0x3d')][_0x9f54('0x45')](_0x4be8d5)[_0x9f54('0x25')](handleEntityNotFound(_0x4fc7d3,null))[_0x9f54('0x25')](respondWithResult(_0x4fc7d3,null))['catch'](handleError(_0x4fc7d3,null));};exports['create']=function(_0x29de75,_0x2aa19c){return db[_0x9f54('0x3d')][_0x9f54('0x46')](_0x29de75[_0x9f54('0x47')],{})[_0x9f54('0x25')](respondWithResult(_0x2aa19c,0xc9))[_0x9f54('0x48')](handleError(_0x2aa19c,null));};exports[_0x9f54('0x49')]=function(_0x32603b,_0x287d1a){if(_0x32603b[_0x9f54('0x47')]['id']){delete _0x32603b[_0x9f54('0x47')]['id'];}return db[_0x9f54('0x3d')]['find']({'where':{'id':_0x32603b[_0x9f54('0x43')]['id']}})[_0x9f54('0x25')](handleEntityNotFound(_0x287d1a,null))['then'](saveUpdates(_0x32603b[_0x9f54('0x47')],null))['then'](respondWithResult(_0x287d1a,null))[_0x9f54('0x48')](handleError(_0x287d1a,null));};exports[_0x9f54('0x26')]=function(_0x577c8b,_0x477e9e){return db[_0x9f54('0x3d')][_0x9f54('0x45')]({'where':{'id':_0x577c8b[_0x9f54('0x43')]['id']}})[_0x9f54('0x25')](handleEntityNotFound(_0x477e9e,null))[_0x9f54('0x25')](removeEntity(_0x477e9e,null))['catch'](handleError(_0x477e9e,null));};exports[_0x9f54('0x4a')]=function(_0x47e08f,_0x1dd5e4){return db[_0x9f54('0x3d')][_0x9f54('0x4a')]()[_0x9f54('0x25')](respondWithResult(_0x1dd5e4,null))[_0x9f54('0x48')](handleError(_0x1dd5e4,null));};
\ No newline at end of file
+var _0x44c2=['update','find','catch','describe','eml-format','rimraf','zip-dir','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','offset','limit','set','Content-Range','apply','reject','save','then','destroy','error','stack','name','send','map','OpenchannelQueueReport','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','merge','VIRTUAL','filter','options','count','includeAll','findAll','show','params','rawAttributes','include','create','body'];(function(_0x24afc0,_0x582518){var _0x203dba=function(_0x2713ad){while(--_0x2713ad){_0x24afc0['push'](_0x24afc0['shift']());}};_0x203dba(++_0x582518);}(_0x44c2,0x194));var _0x244c=function(_0x1f9f5f,_0x509fb7){_0x1f9f5f=_0x1f9f5f-0x0;var _0x51d649=_0x44c2[_0x1f9f5f];return _0x51d649;};'use strict';var emlformat=require(_0x244c('0x0'));var rimraf=require(_0x244c('0x1'));var zipdir=require(_0x244c('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x244c('0x3'));var BPromise=require(_0x244c('0x4'));var Mustache=require(_0x244c('0x5'));var util=require(_0x244c('0x6'));var path=require(_0x244c('0x7'));var sox=require(_0x244c('0x8'));var csv=require(_0x244c('0x9'));var ejs=require(_0x244c('0xa'));var fs=require('fs');var fs_extra=require(_0x244c('0xb'));var _=require(_0x244c('0xc'));var squel=require(_0x244c('0xd'));var crypto=require(_0x244c('0xe'));var jsforce=require(_0x244c('0xf'));var deskjs=require(_0x244c('0x10'));var toCsv=require('to-csv');var querystring=require(_0x244c('0x11'));var Papa=require('papaparse');var Redis=require(_0x244c('0x12'));var authService=require(_0x244c('0x13'));var qs=require(_0x244c('0x14'));var as=require(_0x244c('0x15'));var hardwareService=require(_0x244c('0x16'));var logger=require('../../config/logger')(_0x244c('0x17'));var utils=require('../../config/utils');var config=require(_0x244c('0x18'));var licenseUtil=require(_0x244c('0x19'));var db=require(_0x244c('0x1a'))['db'];function respondWithStatusCode(_0x833c28,_0x523e){_0x523e=_0x523e||0xcc;return function(_0x547382){if(_0x547382){return _0x833c28[_0x244c('0x1b')](_0x523e);}return _0x833c28[_0x244c('0x1c')](_0x523e)[_0x244c('0x1d')]();};}function respondWithResult(_0x5f3fff,_0x50e8b9){_0x50e8b9=_0x50e8b9||0xc8;return function(_0x3062aa){if(_0x3062aa){return _0x5f3fff[_0x244c('0x1c')](_0x50e8b9)[_0x244c('0x1e')](_0x3062aa);}};}function respondWithFilteredResult(_0x566673,_0x3dd6b8){return function(_0x16dcb9){if(_0x16dcb9){var _0x5ca452=typeof _0x3dd6b8['offset']===_0x244c('0x1f')&&typeof _0x3dd6b8['limit']===_0x244c('0x1f');var _0x3232ea=_0x16dcb9['count'];var _0x485ba8=_0x5ca452?0x0:_0x3dd6b8[_0x244c('0x20')];var _0x1343f7=_0x5ca452?_0x16dcb9['count']:_0x3dd6b8[_0x244c('0x20')]+_0x3dd6b8[_0x244c('0x21')];var _0x4b14f1;if(_0x1343f7>=_0x3232ea){_0x1343f7=_0x3232ea;_0x4b14f1=0xc8;}else{_0x4b14f1=0xce;}_0x566673[_0x244c('0x1c')](_0x4b14f1);return _0x566673[_0x244c('0x22')](_0x244c('0x23'),_0x485ba8+'-'+_0x1343f7+'/'+_0x3232ea)[_0x244c('0x1e')](_0x16dcb9);}return null;};}function patchUpdates(_0xaa6029){return function(_0x3236a5){try{jsonpatch[_0x244c('0x24')](_0x3236a5,_0xaa6029,!![]);}catch(_0x2cb4ff){return BPromise[_0x244c('0x25')](_0x2cb4ff);}return _0x3236a5[_0x244c('0x26')]();};}function saveUpdates(_0x34380a,_0x3f684e){return function(_0x5a5353){if(_0x5a5353){return _0x5a5353['update'](_0x34380a)[_0x244c('0x27')](function(_0x342025){return _0x342025;});}return null;};}function removeEntity(_0x443665,_0x437fba){return function(_0x4b83bb){if(_0x4b83bb){return _0x4b83bb[_0x244c('0x28')]()[_0x244c('0x27')](function(){_0x443665[_0x244c('0x1c')](0xcc)[_0x244c('0x1d')]();});}};}function handleEntityNotFound(_0x28a308,_0x5f3af4){return function(_0x389b7f){if(!_0x389b7f){_0x28a308[_0x244c('0x1b')](0x194);}return _0x389b7f;};}function handleError(_0x5ddfed,_0x15ad1c){_0x15ad1c=_0x15ad1c||0x1f4;return function(_0x329a48){logger[_0x244c('0x29')](_0x329a48[_0x244c('0x2a')]);if(_0x329a48['name']){delete _0x329a48[_0x244c('0x2b')];}_0x5ddfed[_0x244c('0x1c')](_0x15ad1c)[_0x244c('0x2c')](_0x329a48);};}exports['index']=function(_0x583bc9,_0x26ae84){var _0x1f2e06={},_0xc3b913={},_0x4f69dc={'count':0x0,'rows':[]};var _0x501895=_[_0x244c('0x2d')](db[_0x244c('0x2e')]['rawAttributes'],function(_0x284220){return{'name':_0x284220[_0x244c('0x2f')],'type':_0x284220[_0x244c('0x30')][_0x244c('0x31')]};});_0xc3b913[_0x244c('0x32')]=_[_0x244c('0x2d')](_0x501895,_0x244c('0x2b'));_0xc3b913[_0x244c('0x33')]=_[_0x244c('0x34')](_0x583bc9[_0x244c('0x33')]);_0xc3b913[_0x244c('0x35')]=_[_0x244c('0x36')](_0xc3b913[_0x244c('0x32')],_0xc3b913[_0x244c('0x33')]);_0x1f2e06[_0x244c('0x37')]=_[_0x244c('0x36')](_0xc3b913[_0x244c('0x32')],qs['fields'](_0x583bc9[_0x244c('0x33')][_0x244c('0x38')]));_0x1f2e06[_0x244c('0x37')]=_0x1f2e06[_0x244c('0x37')][_0x244c('0x39')]?_0x1f2e06[_0x244c('0x37')]:_0xc3b913['model'];if(!_0x583bc9[_0x244c('0x33')][_0x244c('0x3a')]('nolimit')){_0x1f2e06[_0x244c('0x21')]=qs[_0x244c('0x21')](_0x583bc9['query'][_0x244c('0x21')]);_0x1f2e06[_0x244c('0x20')]=qs[_0x244c('0x20')](_0x583bc9[_0x244c('0x33')][_0x244c('0x20')]);}_0x1f2e06[_0x244c('0x3b')]=qs['sort'](_0x583bc9['query'][_0x244c('0x3c')]);_0x1f2e06[_0x244c('0x3d')]=qs[_0x244c('0x35')](_[_0x244c('0x3e')](_0x583bc9[_0x244c('0x33')],_0xc3b913['filters']),_0x501895);if(_0x583bc9['query']['filter']){_0x1f2e06[_0x244c('0x3d')]=_[_0x244c('0x3f')](_0x1f2e06[_0x244c('0x3d')],{'$or':_[_0x244c('0x2d')](_0x501895,function(_0x33e6d3){if(_0x33e6d3[_0x244c('0x30')]!==_0x244c('0x40')){var _0x5dd1ed={};_0x5dd1ed[_0x33e6d3[_0x244c('0x2b')]]={'$like':'%'+_0x583bc9[_0x244c('0x33')][_0x244c('0x41')]+'%'};return _0x5dd1ed;}})});}_0x1f2e06=_[_0x244c('0x3f')]({},_0x1f2e06,_0x583bc9[_0x244c('0x42')]);var _0x293371={'where':_0x1f2e06[_0x244c('0x3d')]};return db['OpenchannelQueueReport']['count'](_0x293371)[_0x244c('0x27')](function(_0x2b2823){_0x4f69dc[_0x244c('0x43')]=_0x2b2823;if(_0x583bc9[_0x244c('0x33')][_0x244c('0x44')]){_0x1f2e06['include']=[{'all':!![]}];}return db['OpenchannelQueueReport'][_0x244c('0x45')](_0x1f2e06);})[_0x244c('0x27')](function(_0x1a7bb1){_0x4f69dc['rows']=_0x1a7bb1;return _0x4f69dc;})[_0x244c('0x27')](respondWithFilteredResult(_0x26ae84,_0x1f2e06))['catch'](handleError(_0x26ae84,null));};exports[_0x244c('0x46')]=function(_0x5f1226,_0x13f17b){var _0x2d070d={'raw':!![],'where':{'id':_0x5f1226[_0x244c('0x47')]['id']}},_0x5bb0a6={};_0x5bb0a6[_0x244c('0x32')]=_[_0x244c('0x34')](db[_0x244c('0x2e')][_0x244c('0x48')]);_0x5bb0a6[_0x244c('0x33')]=_[_0x244c('0x34')](_0x5f1226[_0x244c('0x33')]);_0x5bb0a6['filters']=_[_0x244c('0x36')](_0x5bb0a6[_0x244c('0x32')],_0x5bb0a6['query']);_0x2d070d['attributes']=_[_0x244c('0x36')](_0x5bb0a6[_0x244c('0x32')],qs[_0x244c('0x38')](_0x5f1226[_0x244c('0x33')]['fields']));_0x2d070d[_0x244c('0x37')]=_0x2d070d[_0x244c('0x37')][_0x244c('0x39')]?_0x2d070d[_0x244c('0x37')]:_0x5bb0a6[_0x244c('0x32')];if(_0x5f1226['query'][_0x244c('0x44')]){_0x2d070d[_0x244c('0x49')]=[{'all':!![]}];}_0x2d070d=_['merge']({},_0x2d070d,_0x5f1226['options']);return db[_0x244c('0x2e')]['find'](_0x2d070d)[_0x244c('0x27')](handleEntityNotFound(_0x13f17b,null))['then'](respondWithResult(_0x13f17b,null))['catch'](handleError(_0x13f17b,null));};exports[_0x244c('0x4a')]=function(_0x493568,_0x114515){return db[_0x244c('0x2e')][_0x244c('0x4a')](_0x493568[_0x244c('0x4b')],{})['then'](respondWithResult(_0x114515,0xc9))['catch'](handleError(_0x114515,null));};exports[_0x244c('0x4c')]=function(_0x45f6eb,_0x31257f){if(_0x45f6eb[_0x244c('0x4b')]['id']){delete _0x45f6eb[_0x244c('0x4b')]['id'];}return db[_0x244c('0x2e')][_0x244c('0x4d')]({'where':{'id':_0x45f6eb['params']['id']}})['then'](handleEntityNotFound(_0x31257f,null))[_0x244c('0x27')](saveUpdates(_0x45f6eb[_0x244c('0x4b')],null))[_0x244c('0x27')](respondWithResult(_0x31257f,null))[_0x244c('0x4e')](handleError(_0x31257f,null));};exports['destroy']=function(_0x2dd497,_0x5cd9a3){return db[_0x244c('0x2e')]['find']({'where':{'id':_0x2dd497[_0x244c('0x47')]['id']}})[_0x244c('0x27')](handleEntityNotFound(_0x5cd9a3,null))[_0x244c('0x27')](removeEntity(_0x5cd9a3,null))[_0x244c('0x4e')](handleError(_0x5cd9a3,null));};exports['describe']=function(_0x1311c2,_0x20fc33){return db[_0x244c('0x2e')][_0x244c('0x4f')]()[_0x244c('0x27')](respondWithResult(_0x20fc33,null))[_0x244c('0x4e')](handleError(_0x20fc33,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5fc3=['util','api','moment','bluebird','request-promise','path','../../config/environment','./openchannelQueueReport.attributes','exports','define','report_openchannel_queue','uniqueid','lodash'];(function(_0x4d88aa,_0x7022be){var _0x16c660=function(_0x23964b){while(--_0x23964b){_0x4d88aa['push'](_0x4d88aa['shift']());}};_0x16c660(++_0x7022be);}(_0x5fc3,0xa8));var _0x35fc=function(_0x4409e7,_0x307f17){_0x4409e7=_0x4409e7-0x0;var _0x24c751=_0x5fc3[_0x4409e7];return _0x24c751;};'use strict';var _=require(_0x35fc('0x0'));var util=require(_0x35fc('0x1'));var logger=require('../../config/logger')(_0x35fc('0x2'));var moment=require(_0x35fc('0x3'));var BPromise=require(_0x35fc('0x4'));var rp=require(_0x35fc('0x5'));var fs=require('fs');var path=require(_0x35fc('0x6'));var rimraf=require('rimraf');var config=require(_0x35fc('0x7'));var attributes=require(_0x35fc('0x8'));module[_0x35fc('0x9')]=function(_0x5b85ad,_0x5754be){return _0x5b85ad[_0x35fc('0xa')]('OpenchannelQueueReport',attributes,{'tableName':_0x35fc('0xb'),'paranoid':![],'indexes':[{'name':_0x35fc('0xc'),'fields':[_0x35fc('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x5fc3=['util','api','moment','bluebird','request-promise','path','../../config/environment','./openchannelQueueReport.attributes','exports','define','report_openchannel_queue','uniqueid','lodash'];(function(_0x5046cf,_0x44c493){var _0x2fb819=function(_0x412a83){while(--_0x412a83){_0x5046cf['push'](_0x5046cf['shift']());}};_0x2fb819(++_0x44c493);}(_0x5fc3,0xa8));var _0x35fc=function(_0xa28b1a,_0x384f4b){_0xa28b1a=_0xa28b1a-0x0;var _0x4c9b78=_0x5fc3[_0xa28b1a];return _0x4c9b78;};'use strict';var _=require(_0x35fc('0x0'));var util=require(_0x35fc('0x1'));var logger=require('../../config/logger')(_0x35fc('0x2'));var moment=require(_0x35fc('0x3'));var BPromise=require(_0x35fc('0x4'));var rp=require(_0x35fc('0x5'));var fs=require('fs');var path=require(_0x35fc('0x6'));var rimraf=require('rimraf');var config=require(_0x35fc('0x7'));var attributes=require(_0x35fc('0x8'));module[_0x35fc('0x9')]=function(_0x5b85ad,_0x5754be){return _0x5b85ad[_0x35fc('0xa')]('OpenchannelQueueReport',attributes,{'tableName':_0x35fc('0xb'),'paranoid':![],'indexes':[{'name':_0x35fc('0xc'),'fields':[_0x35fc('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc7da=['update','body','where','limit','lodash','util','moment','randomstring','ioredis','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request','then','info','OpenchannelQueueReport,\x20%s,\x20%s','debug','OpenchannelQueueReport,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','result','catch','CreateOpenchannelQueueReport','OpenchannelQueueReport','create','options','raw','stringify','UpdateOpenchannelQueueReport'];(function(_0x1c7137,_0x4c7c26){var _0xeb4432=function(_0x26d850){while(--_0x26d850){_0x1c7137['push'](_0x1c7137['shift']());}};_0xeb4432(++_0x4c7c26);}(_0xc7da,0xf2));var _0xac7d=function(_0x4585a1,_0x4dc8ab){_0x4585a1=_0x4585a1-0x0;var _0x67976=_0xc7da[_0x4585a1];return _0x67976;};'use strict';var _=require(_0xac7d('0x0'));var util=require(_0xac7d('0x1'));var moment=require(_0xac7d('0x2'));var BPromise=require('bluebird');var rs=require(_0xac7d('0x3'));var fs=require('fs');var Redis=require(_0xac7d('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0xac7d('0x5'));var logger=require(_0xac7d('0x6'))('rpc');var config=require(_0xac7d('0x7'));var jayson=require(_0xac7d('0x8'));var client=jayson[_0xac7d('0x9')][_0xac7d('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x268265,_0x153ce5,_0x48ca59){return new BPromise(function(_0x44eb2b,_0x457e2d){return client[_0xac7d('0xb')](_0x268265,_0x48ca59)[_0xac7d('0xc')](function(_0x217811){logger[_0xac7d('0xd')](_0xac7d('0xe'),_0x153ce5,'request\x20sent');logger[_0xac7d('0xf')](_0xac7d('0x10'),_0x153ce5,_0xac7d('0x11'),JSON['stringify'](_0x217811));if(_0x217811[_0xac7d('0x12')]){if(_0x217811[_0xac7d('0x12')][_0xac7d('0x13')]===0x1f4){logger[_0xac7d('0x12')]('OpenchannelQueueReport,\x20%s,\x20%s',_0x153ce5,_0x217811[_0xac7d('0x12')][_0xac7d('0x14')]);return _0x457e2d(_0x217811[_0xac7d('0x12')][_0xac7d('0x14')]);}logger[_0xac7d('0x12')]('OpenchannelQueueReport,\x20%s,\x20%s',_0x153ce5,_0x217811[_0xac7d('0x12')]['message']);return _0x44eb2b(_0x217811[_0xac7d('0x12')][_0xac7d('0x14')]);}else{logger[_0xac7d('0xd')](_0xac7d('0xe'),_0x153ce5,'request\x20sent');_0x44eb2b(_0x217811[_0xac7d('0x15')][_0xac7d('0x14')]);}})[_0xac7d('0x16')](function(_0x12813a){logger[_0xac7d('0x12')]('OpenchannelQueueReport,\x20%s,\x20%s',_0x153ce5,_0x12813a);_0x457e2d(_0x12813a);});});}exports[_0xac7d('0x17')]=function(_0x3cb12d){var _0x563634=this;return new Promise(function(_0x2e4790,_0x2d2494){return db[_0xac7d('0x18')][_0xac7d('0x19')](_0x3cb12d['body'],{'raw':_0x3cb12d[_0xac7d('0x1a')]?_0x3cb12d[_0xac7d('0x1a')][_0xac7d('0x1b')]===undefined?!![]:![]:!![]})['then'](function(_0xd42c40){logger['info'](_0xac7d('0x17'),_0x3cb12d);logger[_0xac7d('0xf')](_0xac7d('0x17'),_0x3cb12d,JSON[_0xac7d('0x1c')](_0xd42c40));_0x2e4790(_0xd42c40);})[_0xac7d('0x16')](function(_0x365269){logger['error']('CreateOpenchannelQueueReport',_0x365269[_0xac7d('0x14')],_0x3cb12d);_0x2d2494(_0x563634[_0xac7d('0x12')](0x1f4,_0x365269['message']));});});};exports[_0xac7d('0x1d')]=function(_0x3966dd){var _0x2a5774=this;return new Promise(function(_0x1c1f88,_0x43aa8e){return db[_0xac7d('0x18')][_0xac7d('0x1e')](_0x3966dd[_0xac7d('0x1f')],{'raw':_0x3966dd[_0xac7d('0x1a')]?_0x3966dd[_0xac7d('0x1a')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x3966dd[_0xac7d('0x1a')]?_0x3966dd[_0xac7d('0x1a')][_0xac7d('0x20')]||null:null,'attributes':_0x3966dd[_0xac7d('0x1a')]?_0x3966dd['options']['attributes']||null:null,'limit':_0x3966dd['options']?_0x3966dd[_0xac7d('0x1a')][_0xac7d('0x21')]||null:null})[_0xac7d('0xc')](function(_0x5bd39b){logger[_0xac7d('0xd')]('UpdateOpenchannelQueueReport',_0x3966dd);logger['debug']('UpdateOpenchannelQueueReport',_0x3966dd,JSON['stringify'](_0x5bd39b));_0x1c1f88(_0x5bd39b);})['catch'](function(_0x104186){logger[_0xac7d('0x12')](_0xac7d('0x1d'),_0x104186[_0xac7d('0x14')],_0x3966dd);_0x43aa8e(_0x2a5774[_0xac7d('0x12')](0x1f4,_0x104186['message']));});});};
\ No newline at end of file
+var _0xd290=['OpenchannelQueueReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','request\x20sent','catch','CreateOpenchannelQueueReport','OpenchannelQueueReport','create','body','options','raw','UpdateOpenchannelQueueReport','update','where','lodash','util','bluebird','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','request','then','info','OpenchannelQueueReport,\x20%s,\x20%s','debug'];(function(_0x155d01,_0xc8d005){var _0x801971=function(_0x3ba5f0){while(--_0x3ba5f0){_0x155d01['push'](_0x155d01['shift']());}};_0x801971(++_0xc8d005);}(_0xd290,0x165));var _0x0d29=function(_0x430076,_0x392d2d){_0x430076=_0x430076-0x0;var _0x39833a=_0xd290[_0x430076];return _0x39833a;};'use strict';var _=require(_0x0d29('0x0'));var util=require(_0x0d29('0x1'));var moment=require('moment');var BPromise=require(_0x0d29('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x0d29('0x3'))['db'];var utils=require(_0x0d29('0x4'));var logger=require(_0x0d29('0x5'))(_0x0d29('0x6'));var config=require(_0x0d29('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x0d29('0x8')][_0x0d29('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x151d32,_0x376d19,_0x276aeb){return new BPromise(function(_0x4edfcd,_0x3ee63c){return client[_0x0d29('0xa')](_0x151d32,_0x276aeb)[_0x0d29('0xb')](function(_0x4b876e){logger[_0x0d29('0xc')](_0x0d29('0xd'),_0x376d19,'request\x20sent');logger[_0x0d29('0xe')](_0x0d29('0xf'),_0x376d19,'request\x20sent',JSON[_0x0d29('0x10')](_0x4b876e));if(_0x4b876e['error']){if(_0x4b876e[_0x0d29('0x11')][_0x0d29('0x12')]===0x1f4){logger[_0x0d29('0x11')](_0x0d29('0xd'),_0x376d19,_0x4b876e[_0x0d29('0x11')]['message']);return _0x3ee63c(_0x4b876e[_0x0d29('0x11')][_0x0d29('0x13')]);}logger[_0x0d29('0x11')](_0x0d29('0xd'),_0x376d19,_0x4b876e[_0x0d29('0x11')]['message']);return _0x4edfcd(_0x4b876e['error']['message']);}else{logger[_0x0d29('0xc')]('OpenchannelQueueReport,\x20%s,\x20%s',_0x376d19,_0x0d29('0x14'));_0x4edfcd(_0x4b876e['result'][_0x0d29('0x13')]);}})[_0x0d29('0x15')](function(_0x2a04d6){logger[_0x0d29('0x11')](_0x0d29('0xd'),_0x376d19,_0x2a04d6);_0x3ee63c(_0x2a04d6);});});}exports[_0x0d29('0x16')]=function(_0x488fa2){var _0x319a36=this;return new Promise(function(_0x2600b3,_0xca30af){return db[_0x0d29('0x17')][_0x0d29('0x18')](_0x488fa2[_0x0d29('0x19')],{'raw':_0x488fa2[_0x0d29('0x1a')]?_0x488fa2['options'][_0x0d29('0x1b')]===undefined?!![]:![]:!![]})[_0x0d29('0xb')](function(_0x215cd7){logger[_0x0d29('0xc')](_0x0d29('0x16'),_0x488fa2);logger[_0x0d29('0xe')](_0x0d29('0x16'),_0x488fa2,JSON[_0x0d29('0x10')](_0x215cd7));_0x2600b3(_0x215cd7);})[_0x0d29('0x15')](function(_0xed8228){logger[_0x0d29('0x11')](_0x0d29('0x16'),_0xed8228[_0x0d29('0x13')],_0x488fa2);_0xca30af(_0x319a36['error'](0x1f4,_0xed8228[_0x0d29('0x13')]));});});};exports[_0x0d29('0x1c')]=function(_0x2f0fe2){var _0xd3afa0=this;return new Promise(function(_0x4adc85,_0x249205){return db[_0x0d29('0x17')][_0x0d29('0x1d')](_0x2f0fe2[_0x0d29('0x19')],{'raw':_0x2f0fe2[_0x0d29('0x1a')]?_0x2f0fe2[_0x0d29('0x1a')][_0x0d29('0x1b')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x2f0fe2['options']?_0x2f0fe2['options'][_0x0d29('0x1e')]||null:null,'attributes':_0x2f0fe2['options']?_0x2f0fe2[_0x0d29('0x1a')]['attributes']||null:null,'limit':_0x2f0fe2['options']?_0x2f0fe2[_0x0d29('0x1a')]['limit']||null:null})[_0x0d29('0xb')](function(_0x5c197f){logger[_0x0d29('0xc')](_0x0d29('0x1c'),_0x2f0fe2);logger['debug'](_0x0d29('0x1c'),_0x2f0fe2,JSON[_0x0d29('0x10')](_0x5c197f));_0x4adc85(_0x5c197f);})[_0x0d29('0x15')](function(_0x58caa6){logger[_0x0d29('0x11')](_0x0d29('0x1c'),_0x58caa6[_0x0d29('0x13')],_0x2f0fe2);_0x249205(_0xd3afa0[_0x0d29('0x11')](0x1f4,_0x58caa6[_0x0d29('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x23e1=['show','post','create','put','update','delete','exports','util','path','Router','fs-extra','../../components/auth/service','../../config/environment','get','isAuthenticated','/:id'];(function(_0x2cb067,_0x3a64c2){var _0x2917a8=function(_0x49ff0f){while(--_0x49ff0f){_0x2cb067['push'](_0x2cb067['shift']());}};_0x2917a8(++_0x3a64c2);}(_0x23e1,0x97));var _0x123e=function(_0x3a5bc7,_0x25c55d){_0x3a5bc7=_0x3a5bc7-0x0;var _0x28bf86=_0x23e1[_0x3a5bc7];return _0x28bf86;};'use strict';var multer=require('multer');var util=require(_0x123e('0x0'));var path=require(_0x123e('0x1'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x123e('0x2')]();var fs_extra=require(_0x123e('0x3'));var auth=require(_0x123e('0x4'));var interaction=require('../../components/interaction/service');var config=require(_0x123e('0x5'));var controller=require('./openchannelTransferReport.controller');router[_0x123e('0x6')]('/',auth[_0x123e('0x7')](),controller['index']);router[_0x123e('0x6')]('/describe',auth['isAuthenticated'](),controller['describe']);router['get'](_0x123e('0x8'),auth[_0x123e('0x7')](),controller[_0x123e('0x9')]);router[_0x123e('0xa')]('/',auth['isAuthenticated'](),controller[_0x123e('0xb')]);router[_0x123e('0xc')](_0x123e('0x8'),auth[_0x123e('0x7')](),controller[_0x123e('0xd')]);router[_0x123e('0xe')](_0x123e('0x8'),auth[_0x123e('0x7')](),controller['destroy']);module[_0x123e('0xf')]=router;
\ No newline at end of file
+var _0x1281=['multer','util','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','get','isAuthenticated','/describe','describe','/:id','show','post','create','update','delete'];(function(_0x405faf,_0x38d0f0){var _0x2308e5=function(_0x34e928){while(--_0x34e928){_0x405faf['push'](_0x405faf['shift']());}};_0x2308e5(++_0x38d0f0);}(_0x1281,0x7e));var _0x1128=function(_0x57c5da,_0xe2c98d){_0x57c5da=_0x57c5da-0x0;var _0x1e3e09=_0x1281[_0x57c5da];return _0x1e3e09;};'use strict';var multer=require(_0x1128('0x0'));var util=require(_0x1128('0x1'));var path=require(_0x1128('0x2'));var timeout=require(_0x1128('0x3'));var express=require(_0x1128('0x4'));var router=express[_0x1128('0x5')]();var fs_extra=require(_0x1128('0x6'));var auth=require('../../components/auth/service');var interaction=require(_0x1128('0x7'));var config=require('../../config/environment');var controller=require('./openchannelTransferReport.controller');router[_0x1128('0x8')]('/',auth[_0x1128('0x9')](),controller['index']);router['get'](_0x1128('0xa'),auth[_0x1128('0x9')](),controller[_0x1128('0xb')]);router[_0x1128('0x8')](_0x1128('0xc'),auth['isAuthenticated'](),controller[_0x1128('0xd')]);router[_0x1128('0xe')]('/',auth['isAuthenticated'](),controller[_0x1128('0xf')]);router['put'](_0x1128('0xc'),auth['isAuthenticated'](),controller[_0x1128('0x10')]);router[_0x1128('0x11')](_0x1128('0xc'),auth[_0x1128('0x9')](),controller['destroy']);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf3cd=['exports','STRING','ENUM','account','queue','DATE','moment','sequelize'];(function(_0x41424d,_0x9188a6){var _0x4786b8=function(_0x38273d){while(--_0x38273d){_0x41424d['push'](_0x41424d['shift']());}};_0x4786b8(++_0x9188a6);}(_0xf3cd,0xfe));var _0xdf3c=function(_0x58b44a,_0x1a7aa6){_0x58b44a=_0x58b44a-0x0;var _0xd6779d=_0xf3cd[_0x58b44a];return _0xd6779d;};'use strict';var moment=require(_0xdf3c('0x0'));var Sequelize=require(_0xdf3c('0x1'));module[_0xdf3c('0x2')]={'uniqueid':{'type':Sequelize[_0xdf3c('0x3')],'allowNull':![]},'type':{'type':Sequelize[_0xdf3c('0x4')](_0xdf3c('0x5'),'agent',_0xdf3c('0x6')),'allowNull':![],'defaultValue':_0xdf3c('0x6')},'transferredAt':{'type':Sequelize[_0xdf3c('0x7')],'allowNull':![],'defaultValue':Sequelize['NOW']}};
\ No newline at end of file
+var _0x70e0=['NOW','moment','sequelize','exports','account','agent','queue'];(function(_0x5cb2c5,_0x2836f3){var _0x384ca3=function(_0x499129){while(--_0x499129){_0x5cb2c5['push'](_0x5cb2c5['shift']());}};_0x384ca3(++_0x2836f3);}(_0x70e0,0x17b));var _0x070e=function(_0x2a7a40,_0x6eae80){_0x2a7a40=_0x2a7a40-0x0;var _0x50493b=_0x70e0[_0x2a7a40];return _0x50493b;};'use strict';var moment=require(_0x070e('0x0'));var Sequelize=require(_0x070e('0x1'));module[_0x070e('0x2')]={'uniqueid':{'type':Sequelize['STRING'],'allowNull':![]},'type':{'type':Sequelize['ENUM'](_0x070e('0x3'),_0x070e('0x4'),_0x070e('0x5')),'allowNull':![],'defaultValue':_0x070e('0x5')},'transferredAt':{'type':Sequelize['DATE'],'allowNull':![],'defaultValue':Sequelize[_0x070e('0x6')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5708=['undefined','count','set','json','apply','reject','save','update','destroy','then','error','stack','name','send','index','OpenchannelTransferReport','key','model','map','query','keys','intersection','fields','attributes','length','hasOwnProperty','limit','order','sort','filters','pick','filter','merge','where','options','includeAll','findAll','catch','show','params','rawAttributes','include','find','create','body','describe','eml-format','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','sendStatus','status','end','offset'];(function(_0x170682,_0x1fe7b7){var _0x2d9f0e=function(_0x1912d7){while(--_0x1912d7){_0x170682['push'](_0x170682['shift']());}};_0x2d9f0e(++_0x1fe7b7);}(_0x5708,0x1e4));var _0x8570=function(_0x5e6f87,_0x2519d8){_0x5e6f87=_0x5e6f87-0x0;var _0x10d21c=_0x5708[_0x5e6f87];return _0x10d21c;};'use strict';var emlformat=require(_0x8570('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x8570('0x1'));var jsonpatch=require(_0x8570('0x2'));var rp=require(_0x8570('0x3'));var moment=require(_0x8570('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x8570('0x5'));var util=require(_0x8570('0x6'));var path=require(_0x8570('0x7'));var sox=require(_0x8570('0x8'));var csv=require(_0x8570('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x8570('0xa'));var _=require(_0x8570('0xb'));var squel=require(_0x8570('0xc'));var crypto=require('crypto');var jsforce=require(_0x8570('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x8570('0x9'));var querystring=require(_0x8570('0xe'));var Papa=require(_0x8570('0xf'));var Redis=require('ioredis');var authService=require(_0x8570('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x8570('0x11'));var hardwareService=require(_0x8570('0x12'));var logger=require(_0x8570('0x13'))(_0x8570('0x14'));var utils=require(_0x8570('0x15'));var config=require(_0x8570('0x16'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x4512ba,_0x221375){_0x221375=_0x221375||0xcc;return function(_0x1f8b93){if(_0x1f8b93){return _0x4512ba[_0x8570('0x17')](_0x221375);}return _0x4512ba[_0x8570('0x18')](_0x221375)[_0x8570('0x19')]();};}function respondWithResult(_0x244306,_0x58039d){_0x58039d=_0x58039d||0xc8;return function(_0x2ff74a){if(_0x2ff74a){return _0x244306['status'](_0x58039d)['json'](_0x2ff74a);}};}function respondWithFilteredResult(_0x5cf475,_0x18222f){return function(_0x3f3c34){if(_0x3f3c34){var _0x13026a=typeof _0x18222f[_0x8570('0x1a')]===_0x8570('0x1b')&&typeof _0x18222f['limit']==='undefined';var _0x244c61=_0x3f3c34[_0x8570('0x1c')];var _0x49b31b=_0x13026a?0x0:_0x18222f[_0x8570('0x1a')];var _0x2f9c76=_0x13026a?_0x3f3c34[_0x8570('0x1c')]:_0x18222f['offset']+_0x18222f['limit'];var _0x57c2f9;if(_0x2f9c76>=_0x244c61){_0x2f9c76=_0x244c61;_0x57c2f9=0xc8;}else{_0x57c2f9=0xce;}_0x5cf475['status'](_0x57c2f9);return _0x5cf475[_0x8570('0x1d')]('Content-Range',_0x49b31b+'-'+_0x2f9c76+'/'+_0x244c61)[_0x8570('0x1e')](_0x3f3c34);}return null;};}function patchUpdates(_0x477ec8){return function(_0x84659b){try{jsonpatch[_0x8570('0x1f')](_0x84659b,_0x477ec8,!![]);}catch(_0x499ba1){return BPromise[_0x8570('0x20')](_0x499ba1);}return _0x84659b[_0x8570('0x21')]();};}function saveUpdates(_0x30d5e2,_0x15d794){return function(_0x246fbb){if(_0x246fbb){return _0x246fbb[_0x8570('0x22')](_0x30d5e2)['then'](function(_0x2550f2){return _0x2550f2;});}return null;};}function removeEntity(_0x4304ad,_0x3b41e4){return function(_0xea8568){if(_0xea8568){return _0xea8568[_0x8570('0x23')]()[_0x8570('0x24')](function(){_0x4304ad[_0x8570('0x18')](0xcc)[_0x8570('0x19')]();});}};}function handleEntityNotFound(_0x52a14b,_0x4d3341){return function(_0x2ec6f2){if(!_0x2ec6f2){_0x52a14b['sendStatus'](0x194);}return _0x2ec6f2;};}function handleError(_0x441fe4,_0x281320){_0x281320=_0x281320||0x1f4;return function(_0x25d521){logger[_0x8570('0x25')](_0x25d521[_0x8570('0x26')]);if(_0x25d521[_0x8570('0x27')]){delete _0x25d521[_0x8570('0x27')];}_0x441fe4[_0x8570('0x18')](_0x281320)[_0x8570('0x28')](_0x25d521);};}exports[_0x8570('0x29')]=function(_0x173f64,_0x4b8273){var _0x3338a5={},_0x4a1843={},_0x1551fc={'count':0x0,'rows':[]};var _0xecbfe=_['map'](db[_0x8570('0x2a')]['rawAttributes'],function(_0x3a50e5){return{'name':_0x3a50e5['fieldName'],'type':_0x3a50e5['type'][_0x8570('0x2b')]};});_0x4a1843[_0x8570('0x2c')]=_[_0x8570('0x2d')](_0xecbfe,'name');_0x4a1843[_0x8570('0x2e')]=_[_0x8570('0x2f')](_0x173f64['query']);_0x4a1843['filters']=_[_0x8570('0x30')](_0x4a1843['model'],_0x4a1843['query']);_0x3338a5['attributes']=_[_0x8570('0x30')](_0x4a1843[_0x8570('0x2c')],qs[_0x8570('0x31')](_0x173f64[_0x8570('0x2e')][_0x8570('0x31')]));_0x3338a5[_0x8570('0x32')]=_0x3338a5[_0x8570('0x32')][_0x8570('0x33')]?_0x3338a5[_0x8570('0x32')]:_0x4a1843[_0x8570('0x2c')];if(!_0x173f64[_0x8570('0x2e')][_0x8570('0x34')]('nolimit')){_0x3338a5[_0x8570('0x35')]=qs[_0x8570('0x35')](_0x173f64[_0x8570('0x2e')]['limit']);_0x3338a5[_0x8570('0x1a')]=qs['offset'](_0x173f64[_0x8570('0x2e')][_0x8570('0x1a')]);}_0x3338a5[_0x8570('0x36')]=qs[_0x8570('0x37')](_0x173f64[_0x8570('0x2e')][_0x8570('0x37')]);_0x3338a5['where']=qs[_0x8570('0x38')](_[_0x8570('0x39')](_0x173f64['query'],_0x4a1843[_0x8570('0x38')]),_0xecbfe);if(_0x173f64[_0x8570('0x2e')][_0x8570('0x3a')]){_0x3338a5['where']=_[_0x8570('0x3b')](_0x3338a5[_0x8570('0x3c')],{'$or':_[_0x8570('0x2d')](_0xecbfe,function(_0x1143e2){if(_0x1143e2['type']!=='VIRTUAL'){var _0x210b99={};_0x210b99[_0x1143e2[_0x8570('0x27')]]={'$like':'%'+_0x173f64[_0x8570('0x2e')][_0x8570('0x3a')]+'%'};return _0x210b99;}})});}_0x3338a5=_[_0x8570('0x3b')]({},_0x3338a5,_0x173f64[_0x8570('0x3d')]);var _0x3f16b3={'where':_0x3338a5[_0x8570('0x3c')]};return db[_0x8570('0x2a')][_0x8570('0x1c')](_0x3f16b3)[_0x8570('0x24')](function(_0x4a3e0d){_0x1551fc[_0x8570('0x1c')]=_0x4a3e0d;if(_0x173f64[_0x8570('0x2e')][_0x8570('0x3e')]){_0x3338a5['include']=[{'all':!![]}];}return db[_0x8570('0x2a')][_0x8570('0x3f')](_0x3338a5);})[_0x8570('0x24')](function(_0x28a7e7){_0x1551fc['rows']=_0x28a7e7;return _0x1551fc;})['then'](respondWithFilteredResult(_0x4b8273,_0x3338a5))[_0x8570('0x40')](handleError(_0x4b8273,null));};exports[_0x8570('0x41')]=function(_0x2b415c,_0x8a5363){var _0x406542={'raw':!![],'where':{'id':_0x2b415c[_0x8570('0x42')]['id']}},_0x53a991={};_0x53a991['model']=_[_0x8570('0x2f')](db[_0x8570('0x2a')][_0x8570('0x43')]);_0x53a991[_0x8570('0x2e')]=_[_0x8570('0x2f')](_0x2b415c['query']);_0x53a991[_0x8570('0x38')]=_[_0x8570('0x30')](_0x53a991[_0x8570('0x2c')],_0x53a991['query']);_0x406542[_0x8570('0x32')]=_[_0x8570('0x30')](_0x53a991[_0x8570('0x2c')],qs[_0x8570('0x31')](_0x2b415c[_0x8570('0x2e')]['fields']));_0x406542[_0x8570('0x32')]=_0x406542['attributes'][_0x8570('0x33')]?_0x406542[_0x8570('0x32')]:_0x53a991['model'];if(_0x2b415c['query'][_0x8570('0x3e')]){_0x406542[_0x8570('0x44')]=[{'all':!![]}];}_0x406542=_[_0x8570('0x3b')]({},_0x406542,_0x2b415c['options']);return db['OpenchannelTransferReport'][_0x8570('0x45')](_0x406542)[_0x8570('0x24')](handleEntityNotFound(_0x8a5363,null))[_0x8570('0x24')](respondWithResult(_0x8a5363,null))[_0x8570('0x40')](handleError(_0x8a5363,null));};exports[_0x8570('0x46')]=function(_0x4e2d87,_0x1bd770){return db[_0x8570('0x2a')][_0x8570('0x46')](_0x4e2d87[_0x8570('0x47')],{})[_0x8570('0x24')](respondWithResult(_0x1bd770,0xc9))[_0x8570('0x40')](handleError(_0x1bd770,null));};exports[_0x8570('0x22')]=function(_0x4d2cd6,_0x3f44bd){if(_0x4d2cd6[_0x8570('0x47')]['id']){delete _0x4d2cd6[_0x8570('0x47')]['id'];}return db['OpenchannelTransferReport']['find']({'where':{'id':_0x4d2cd6[_0x8570('0x42')]['id']}})[_0x8570('0x24')](handleEntityNotFound(_0x3f44bd,null))['then'](saveUpdates(_0x4d2cd6[_0x8570('0x47')],null))[_0x8570('0x24')](respondWithResult(_0x3f44bd,null))[_0x8570('0x40')](handleError(_0x3f44bd,null));};exports[_0x8570('0x23')]=function(_0x5a26fa,_0x3266f1){return db['OpenchannelTransferReport'][_0x8570('0x45')]({'where':{'id':_0x5a26fa[_0x8570('0x42')]['id']}})[_0x8570('0x24')](handleEntityNotFound(_0x3266f1,null))['then'](removeEntity(_0x3266f1,null))['catch'](handleError(_0x3266f1,null));};exports[_0x8570('0x48')]=function(_0x5a65e7,_0x401569){return db[_0x8570('0x2a')]['describe']()[_0x8570('0x24')](respondWithResult(_0x401569,null))[_0x8570('0x40')](handleError(_0x401569,null));};
\ No newline at end of file
+var _0x1ff8=['../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','set','Content-Range','save','update','then','destroy','error','stack','name','send','index','fieldName','type','model','map','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','merge','options','OpenchannelTransferReport','includeAll','include','catch','show','params','rawAttributes','find','create','body','describe','eml-format','zip-dir','fast-json-patch','request-promise','mustache','to-csv','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api'];(function(_0x34021c,_0xbd53a4){var _0x2bb061=function(_0x2dde2f){while(--_0x2dde2f){_0x34021c['push'](_0x34021c['shift']());}};_0x2bb061(++_0xbd53a4);}(_0x1ff8,0x154));var _0x81ff=function(_0x48c19b,_0x3a1721){_0x48c19b=_0x48c19b-0x0;var _0x7b88f=_0x1ff8[_0x48c19b];return _0x7b88f;};'use strict';var emlformat=require(_0x81ff('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x81ff('0x1'));var jsonpatch=require(_0x81ff('0x2'));var rp=require(_0x81ff('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x81ff('0x4'));var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0x81ff('0x5'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x81ff('0x6'));var _=require('lodash');var squel=require(_0x81ff('0x7'));var crypto=require(_0x81ff('0x8'));var jsforce=require(_0x81ff('0x9'));var deskjs=require(_0x81ff('0xa'));var toCsv=require('to-csv');var querystring=require(_0x81ff('0xb'));var Papa=require(_0x81ff('0xc'));var Redis=require(_0x81ff('0xd'));var authService=require(_0x81ff('0xe'));var qs=require(_0x81ff('0xf'));var as=require(_0x81ff('0x10'));var hardwareService=require(_0x81ff('0x11'));var logger=require(_0x81ff('0x12'))(_0x81ff('0x13'));var utils=require(_0x81ff('0x14'));var config=require(_0x81ff('0x15'));var licenseUtil=require(_0x81ff('0x16'));var db=require(_0x81ff('0x17'))['db'];function respondWithStatusCode(_0x209c52,_0x4d69f7){_0x4d69f7=_0x4d69f7||0xcc;return function(_0x2dea10){if(_0x2dea10){return _0x209c52['sendStatus'](_0x4d69f7);}return _0x209c52[_0x81ff('0x18')](_0x4d69f7)[_0x81ff('0x19')]();};}function respondWithResult(_0x4c784a,_0x307906){_0x307906=_0x307906||0xc8;return function(_0x324db1){if(_0x324db1){return _0x4c784a[_0x81ff('0x18')](_0x307906)[_0x81ff('0x1a')](_0x324db1);}};}function respondWithFilteredResult(_0x2ef907,_0xef02b2){return function(_0x1f686a){if(_0x1f686a){var _0x2a8c67=typeof _0xef02b2[_0x81ff('0x1b')]===_0x81ff('0x1c')&&typeof _0xef02b2[_0x81ff('0x1d')]===_0x81ff('0x1c');var _0x5a6c31=_0x1f686a[_0x81ff('0x1e')];var _0x7d937=_0x2a8c67?0x0:_0xef02b2[_0x81ff('0x1b')];var _0x2313ef=_0x2a8c67?_0x1f686a[_0x81ff('0x1e')]:_0xef02b2[_0x81ff('0x1b')]+_0xef02b2['limit'];var _0x3e8c3e;if(_0x2313ef>=_0x5a6c31){_0x2313ef=_0x5a6c31;_0x3e8c3e=0xc8;}else{_0x3e8c3e=0xce;}_0x2ef907['status'](_0x3e8c3e);return _0x2ef907[_0x81ff('0x1f')](_0x81ff('0x20'),_0x7d937+'-'+_0x2313ef+'/'+_0x5a6c31)[_0x81ff('0x1a')](_0x1f686a);}return null;};}function patchUpdates(_0x6d3a34){return function(_0x1f2f1f){try{jsonpatch['apply'](_0x1f2f1f,_0x6d3a34,!![]);}catch(_0x1c3b29){return BPromise['reject'](_0x1c3b29);}return _0x1f2f1f[_0x81ff('0x21')]();};}function saveUpdates(_0x5c2268,_0x536b85){return function(_0x458172){if(_0x458172){return _0x458172[_0x81ff('0x22')](_0x5c2268)[_0x81ff('0x23')](function(_0x374697){return _0x374697;});}return null;};}function removeEntity(_0x3ffeb9,_0x2678a4){return function(_0x285040){if(_0x285040){return _0x285040[_0x81ff('0x24')]()[_0x81ff('0x23')](function(){_0x3ffeb9[_0x81ff('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0x358611,_0x1e1a4a){return function(_0x19281d){if(!_0x19281d){_0x358611['sendStatus'](0x194);}return _0x19281d;};}function handleError(_0x19de3b,_0x88e313){_0x88e313=_0x88e313||0x1f4;return function(_0x6d6b13){logger[_0x81ff('0x25')](_0x6d6b13[_0x81ff('0x26')]);if(_0x6d6b13[_0x81ff('0x27')]){delete _0x6d6b13['name'];}_0x19de3b[_0x81ff('0x18')](_0x88e313)[_0x81ff('0x28')](_0x6d6b13);};}exports[_0x81ff('0x29')]=function(_0x3a5cd8,_0x48859e){var _0x396007={},_0x5e4e53={},_0x50d9bf={'count':0x0,'rows':[]};var _0x340792=_['map'](db['OpenchannelTransferReport']['rawAttributes'],function(_0x81c362){return{'name':_0x81c362[_0x81ff('0x2a')],'type':_0x81c362[_0x81ff('0x2b')]['key']};});_0x5e4e53[_0x81ff('0x2c')]=_[_0x81ff('0x2d')](_0x340792,_0x81ff('0x27'));_0x5e4e53[_0x81ff('0x2e')]=_[_0x81ff('0x2f')](_0x3a5cd8['query']);_0x5e4e53[_0x81ff('0x30')]=_['intersection'](_0x5e4e53[_0x81ff('0x2c')],_0x5e4e53[_0x81ff('0x2e')]);_0x396007[_0x81ff('0x31')]=_[_0x81ff('0x32')](_0x5e4e53[_0x81ff('0x2c')],qs[_0x81ff('0x33')](_0x3a5cd8[_0x81ff('0x2e')][_0x81ff('0x33')]));_0x396007[_0x81ff('0x31')]=_0x396007[_0x81ff('0x31')][_0x81ff('0x34')]?_0x396007['attributes']:_0x5e4e53['model'];if(!_0x3a5cd8[_0x81ff('0x2e')][_0x81ff('0x35')](_0x81ff('0x36'))){_0x396007[_0x81ff('0x1d')]=qs['limit'](_0x3a5cd8[_0x81ff('0x2e')][_0x81ff('0x1d')]);_0x396007[_0x81ff('0x1b')]=qs[_0x81ff('0x1b')](_0x3a5cd8[_0x81ff('0x2e')][_0x81ff('0x1b')]);}_0x396007[_0x81ff('0x37')]=qs[_0x81ff('0x38')](_0x3a5cd8[_0x81ff('0x2e')]['sort']);_0x396007[_0x81ff('0x39')]=qs[_0x81ff('0x30')](_[_0x81ff('0x3a')](_0x3a5cd8[_0x81ff('0x2e')],_0x5e4e53[_0x81ff('0x30')]),_0x340792);if(_0x3a5cd8['query']['filter']){_0x396007[_0x81ff('0x39')]=_[_0x81ff('0x3b')](_0x396007['where'],{'$or':_[_0x81ff('0x2d')](_0x340792,function(_0xa633fc){if(_0xa633fc[_0x81ff('0x2b')]!=='VIRTUAL'){var _0x548262={};_0x548262[_0xa633fc[_0x81ff('0x27')]]={'$like':'%'+_0x3a5cd8['query']['filter']+'%'};return _0x548262;}})});}_0x396007=_[_0x81ff('0x3b')]({},_0x396007,_0x3a5cd8[_0x81ff('0x3c')]);var _0x1c32b8={'where':_0x396007[_0x81ff('0x39')]};return db[_0x81ff('0x3d')]['count'](_0x1c32b8)[_0x81ff('0x23')](function(_0x392659){_0x50d9bf[_0x81ff('0x1e')]=_0x392659;if(_0x3a5cd8['query'][_0x81ff('0x3e')]){_0x396007[_0x81ff('0x3f')]=[{'all':!![]}];}return db['OpenchannelTransferReport']['findAll'](_0x396007);})['then'](function(_0x503e15){_0x50d9bf['rows']=_0x503e15;return _0x50d9bf;})[_0x81ff('0x23')](respondWithFilteredResult(_0x48859e,_0x396007))[_0x81ff('0x40')](handleError(_0x48859e,null));};exports[_0x81ff('0x41')]=function(_0x2b9c9a,_0x5a0eb7){var _0x229fa0={'raw':!![],'where':{'id':_0x2b9c9a[_0x81ff('0x42')]['id']}},_0x1d7a40={};_0x1d7a40[_0x81ff('0x2c')]=_[_0x81ff('0x2f')](db['OpenchannelTransferReport'][_0x81ff('0x43')]);_0x1d7a40[_0x81ff('0x2e')]=_[_0x81ff('0x2f')](_0x2b9c9a[_0x81ff('0x2e')]);_0x1d7a40[_0x81ff('0x30')]=_['intersection'](_0x1d7a40[_0x81ff('0x2c')],_0x1d7a40[_0x81ff('0x2e')]);_0x229fa0[_0x81ff('0x31')]=_[_0x81ff('0x32')](_0x1d7a40[_0x81ff('0x2c')],qs[_0x81ff('0x33')](_0x2b9c9a[_0x81ff('0x2e')][_0x81ff('0x33')]));_0x229fa0[_0x81ff('0x31')]=_0x229fa0[_0x81ff('0x31')][_0x81ff('0x34')]?_0x229fa0[_0x81ff('0x31')]:_0x1d7a40['model'];if(_0x2b9c9a['query'][_0x81ff('0x3e')]){_0x229fa0[_0x81ff('0x3f')]=[{'all':!![]}];}_0x229fa0=_['merge']({},_0x229fa0,_0x2b9c9a[_0x81ff('0x3c')]);return db[_0x81ff('0x3d')][_0x81ff('0x44')](_0x229fa0)[_0x81ff('0x23')](handleEntityNotFound(_0x5a0eb7,null))[_0x81ff('0x23')](respondWithResult(_0x5a0eb7,null))[_0x81ff('0x40')](handleError(_0x5a0eb7,null));};exports[_0x81ff('0x45')]=function(_0x662bb5,_0x409178){return db['OpenchannelTransferReport'][_0x81ff('0x45')](_0x662bb5[_0x81ff('0x46')],{})[_0x81ff('0x23')](respondWithResult(_0x409178,0xc9))[_0x81ff('0x40')](handleError(_0x409178,null));};exports[_0x81ff('0x22')]=function(_0x5023bf,_0x32a0dc){if(_0x5023bf['body']['id']){delete _0x5023bf[_0x81ff('0x46')]['id'];}return db[_0x81ff('0x3d')]['find']({'where':{'id':_0x5023bf[_0x81ff('0x42')]['id']}})['then'](handleEntityNotFound(_0x32a0dc,null))[_0x81ff('0x23')](saveUpdates(_0x5023bf['body'],null))[_0x81ff('0x23')](respondWithResult(_0x32a0dc,null))[_0x81ff('0x40')](handleError(_0x32a0dc,null));};exports[_0x81ff('0x24')]=function(_0x436d7a,_0x1d042e){return db[_0x81ff('0x3d')]['find']({'where':{'id':_0x436d7a[_0x81ff('0x42')]['id']}})[_0x81ff('0x23')](handleEntityNotFound(_0x1d042e,null))[_0x81ff('0x23')](removeEntity(_0x1d042e,null))[_0x81ff('0x40')](handleError(_0x1d042e,null));};exports[_0x81ff('0x47')]=function(_0x585710,_0xd07ac5){return db[_0x81ff('0x3d')][_0x81ff('0x47')]()['then'](respondWithResult(_0xd07ac5,null))['catch'](handleError(_0xd07ac5,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x741d=['../../config/environment','define','OpenchannelTransferReport','report_openchannel_transfer','uniqueid','util','api','bluebird','request-promise','path','rimraf'];(function(_0x2a5cdf,_0x17e6d2){var _0x571759=function(_0xe33d6b){while(--_0xe33d6b){_0x2a5cdf['push'](_0x2a5cdf['shift']());}};_0x571759(++_0x17e6d2);}(_0x741d,0x139));var _0xd741=function(_0x597275,_0x112b28){_0x597275=_0x597275-0x0;var _0x4874e6=_0x741d[_0x597275];return _0x4874e6;};'use strict';var _=require('lodash');var util=require(_0xd741('0x0'));var logger=require('../../config/logger')(_0xd741('0x1'));var moment=require('moment');var BPromise=require(_0xd741('0x2'));var rp=require(_0xd741('0x3'));var fs=require('fs');var path=require(_0xd741('0x4'));var rimraf=require(_0xd741('0x5'));var config=require(_0xd741('0x6'));var attributes=require('./openchannelTransferReport.attributes');module['exports']=function(_0x830d7d,_0x31ee75){return _0x830d7d[_0xd741('0x7')](_0xd741('0x8'),attributes,{'tableName':_0xd741('0x9'),'paranoid':![],'indexes':[{'name':_0xd741('0xa'),'fields':[_0xd741('0xa')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x7ae2=['OpenchannelTransferReport','uniqueid','lodash','util','../../config/logger','bluebird','path','../../config/environment','./openchannelTransferReport.attributes','exports'];(function(_0x266ddc,_0x45aa52){var _0x39c1d7=function(_0x4cd07c){while(--_0x4cd07c){_0x266ddc['push'](_0x266ddc['shift']());}};_0x39c1d7(++_0x45aa52);}(_0x7ae2,0xf2));var _0x27ae=function(_0x208129,_0x10cd78){_0x208129=_0x208129-0x0;var _0x5a4ea1=_0x7ae2[_0x208129];return _0x5a4ea1;};'use strict';var _=require(_0x27ae('0x0'));var util=require(_0x27ae('0x1'));var logger=require(_0x27ae('0x2'))('api');var moment=require('moment');var BPromise=require(_0x27ae('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x27ae('0x4'));var rimraf=require('rimraf');var config=require(_0x27ae('0x5'));var attributes=require(_0x27ae('0x6'));module[_0x27ae('0x7')]=function(_0x2786c7,_0xbc9489){return _0x2786c7['define'](_0x27ae('0x8'),attributes,{'tableName':'report_openchannel_transfer','paranoid':![],'indexes':[{'name':'uniqueid','fields':[_0x27ae('0x9')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2f2e=['message','catch','util','moment','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','http','then','info','OpenchannelTransferReport,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x2f2e,0x146));var _0xe2f2=function(_0xb99421,_0xaab133){_0xb99421=_0xb99421-0x0;var _0x4b3ec7=_0x2f2e[_0xb99421];return _0x4b3ec7;};'use strict';var _=require('lodash');var util=require(_0xe2f2('0x0'));var moment=require(_0xe2f2('0x1'));var BPromise=require('bluebird');var rs=require(_0xe2f2('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xe2f2('0x3'))['db'];var utils=require(_0xe2f2('0x4'));var logger=require(_0xe2f2('0x5'))(_0xe2f2('0x6'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson['client'][_0xe2f2('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x23f7a8,_0x2bdfe5,_0xc44c89){return new BPromise(function(_0x48111c,_0x514125){return client['request'](_0x23f7a8,_0xc44c89)[_0xe2f2('0x8')](function(_0x48ee72){logger[_0xe2f2('0x9')](_0xe2f2('0xa'),_0x2bdfe5,_0xe2f2('0xb'));logger[_0xe2f2('0xc')]('OpenchannelTransferReport,\x20%s,\x20%s,\x20%s',_0x2bdfe5,_0xe2f2('0xb'),JSON[_0xe2f2('0xd')](_0x48ee72));if(_0x48ee72['error']){if(_0x48ee72[_0xe2f2('0xe')][_0xe2f2('0xf')]===0x1f4){logger[_0xe2f2('0xe')](_0xe2f2('0xa'),_0x2bdfe5,_0x48ee72[_0xe2f2('0xe')][_0xe2f2('0x10')]);return _0x514125(_0x48ee72[_0xe2f2('0xe')][_0xe2f2('0x10')]);}logger[_0xe2f2('0xe')](_0xe2f2('0xa'),_0x2bdfe5,_0x48ee72['error'][_0xe2f2('0x10')]);return _0x48111c(_0x48ee72[_0xe2f2('0xe')][_0xe2f2('0x10')]);}else{logger[_0xe2f2('0x9')](_0xe2f2('0xa'),_0x2bdfe5,'request\x20sent');_0x48111c(_0x48ee72['result'][_0xe2f2('0x10')]);}})[_0xe2f2('0x11')](function(_0x37f965){logger['error'](_0xe2f2('0xa'),_0x2bdfe5,_0x37f965);_0x514125(_0x37f965);});});}
\ No newline at end of file
+var _0x99c9=['code','message','info','result','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','OpenchannelTransferReport,\x20%s,\x20%s','request\x20sent','OpenchannelTransferReport,\x20%s,\x20%s,\x20%s','stringify','error'];(function(_0x2efd24,_0x331b47){var _0x1c888b=function(_0x2017d8){while(--_0x2017d8){_0x2efd24['push'](_0x2efd24['shift']());}};_0x1c888b(++_0x331b47);}(_0x99c9,0x13c));var _0x999c=function(_0x4a9fb1,_0x273043){_0x4a9fb1=_0x4a9fb1-0x0;var _0x348672=_0x99c9[_0x4a9fb1];return _0x348672;};'use strict';var _=require(_0x999c('0x0'));var util=require(_0x999c('0x1'));var moment=require(_0x999c('0x2'));var BPromise=require(_0x999c('0x3'));var rs=require(_0x999c('0x4'));var fs=require('fs');var Redis=require(_0x999c('0x5'));var db=require(_0x999c('0x6'))['db'];var utils=require('../../config/utils');var logger=require(_0x999c('0x7'))(_0x999c('0x8'));var config=require(_0x999c('0x9'));var jayson=require(_0x999c('0xa'));var client=jayson[_0x999c('0xb')][_0x999c('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x34f100,_0x651b7e,_0xc8a6b5){return new BPromise(function(_0xb88ec1,_0x329252){return client[_0x999c('0xd')](_0x34f100,_0xc8a6b5)[_0x999c('0xe')](function(_0x395321){logger['info'](_0x999c('0xf'),_0x651b7e,_0x999c('0x10'));logger['debug'](_0x999c('0x11'),_0x651b7e,_0x999c('0x10'),JSON[_0x999c('0x12')](_0x395321));if(_0x395321[_0x999c('0x13')]){if(_0x395321[_0x999c('0x13')][_0x999c('0x14')]===0x1f4){logger[_0x999c('0x13')](_0x999c('0xf'),_0x651b7e,_0x395321[_0x999c('0x13')][_0x999c('0x15')]);return _0x329252(_0x395321[_0x999c('0x13')][_0x999c('0x15')]);}logger['error'](_0x999c('0xf'),_0x651b7e,_0x395321[_0x999c('0x13')]['message']);return _0xb88ec1(_0x395321['error']['message']);}else{logger[_0x999c('0x16')](_0x999c('0xf'),_0x651b7e,_0x999c('0x10'));_0xb88ec1(_0x395321[_0x999c('0x17')][_0x999c('0x15')]);}})['catch'](function(_0x226437){logger[_0x999c('0x13')](_0x999c('0xf'),_0x651b7e,_0x226437);_0x329252(_0x226437);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc632=['multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./pause.controller','get','isAuthenticated','/:id','show','post','put','update','destroy','exports'];(function(_0x5cc64b,_0x28c846){var _0x390131=function(_0x137be6){while(--_0x137be6){_0x5cc64b['push'](_0x5cc64b['shift']());}};_0x390131(++_0x28c846);}(_0xc632,0xf0));var _0x2c63=function(_0x30106c,_0x21bfee){_0x30106c=_0x30106c-0x0;var _0x490fae=_0xc632[_0x30106c];return _0x490fae;};'use strict';var multer=require(_0x2c63('0x0'));var util=require(_0x2c63('0x1'));var path=require(_0x2c63('0x2'));var timeout=require(_0x2c63('0x3'));var express=require(_0x2c63('0x4'));var router=express[_0x2c63('0x5')]();var fs_extra=require(_0x2c63('0x6'));var auth=require(_0x2c63('0x7'));var interaction=require(_0x2c63('0x8'));var config=require(_0x2c63('0x9'));var controller=require(_0x2c63('0xa'));router[_0x2c63('0xb')]('/',auth[_0x2c63('0xc')](),controller['index']);router[_0x2c63('0xb')](_0x2c63('0xd'),auth[_0x2c63('0xc')](),controller[_0x2c63('0xe')]);router[_0x2c63('0xf')]('/',auth['isAuthenticated'](),controller['create']);router[_0x2c63('0x10')](_0x2c63('0xd'),auth[_0x2c63('0xc')](),controller[_0x2c63('0x11')]);router['delete'](_0x2c63('0xd'),auth['isAuthenticated'](),controller[_0x2c63('0x12')]);module[_0x2c63('0x13')]=router;
\ No newline at end of file
+var _0x3107=['Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./pause.controller','get','isAuthenticated','index','/:id','show','post','put','delete','destroy','exports','path','connect-timeout'];(function(_0x24f848,_0x584b84){var _0x3ba632=function(_0x342472){while(--_0x342472){_0x24f848['push'](_0x24f848['shift']());}};_0x3ba632(++_0x584b84);}(_0x3107,0x1b8));var _0x7310=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x3107[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x7310('0x0'));var timeout=require(_0x7310('0x1'));var express=require('express');var router=express[_0x7310('0x2')]();var fs_extra=require('fs-extra');var auth=require(_0x7310('0x3'));var interaction=require(_0x7310('0x4'));var config=require(_0x7310('0x5'));var controller=require(_0x7310('0x6'));router[_0x7310('0x7')]('/',auth[_0x7310('0x8')](),controller[_0x7310('0x9')]);router[_0x7310('0x7')](_0x7310('0xa'),auth['isAuthenticated'](),controller[_0x7310('0xb')]);router[_0x7310('0xc')]('/',auth[_0x7310('0x8')](),controller['create']);router[_0x7310('0xd')](_0x7310('0xa'),auth['isAuthenticated'](),controller['update']);router[_0x7310('0xe')](_0x7310('0xa'),auth[_0x7310('0x8')](),controller[_0x7310('0xf')]);module[_0x7310('0x10')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xeced=['exports','name','STRING','sequelize'];(function(_0x9c497b,_0x371d29){var _0x59d8cb=function(_0x3bf8d4){while(--_0x3bf8d4){_0x9c497b['push'](_0x9c497b['shift']());}};_0x59d8cb(++_0x371d29);}(_0xeced,0xdb));var _0xdece=function(_0x226c1f,_0x2045c2){_0x226c1f=_0x226c1f-0x0;var _0x1750c3=_0xeced[_0x226c1f];return _0x1750c3;};'use strict';var Sequelize=require(_0xdece('0x0'));module[_0xdece('0x1')]={'name':{'type':Sequelize['STRING'],'unique':_0xdece('0x2'),'allowNull':![]},'description':{'type':Sequelize[_0xdece('0x3')]}};
\ No newline at end of file
+var _0xbaef=['sequelize','name','STRING'];(function(_0x48c0fd,_0x2a285c){var _0x2df52e=function(_0x51ea8c){while(--_0x51ea8c){_0x48c0fd['push'](_0x48c0fd['shift']());}};_0x2df52e(++_0x2a285c);}(_0xbaef,0x138));var _0xfbae=function(_0x34840d,_0x5b6da9){_0x34840d=_0x34840d-0x0;var _0x4c58b4=_0xbaef[_0x34840d];return _0x4c58b4;};'use strict';var Sequelize=require(_0xfbae('0x0'));module['exports']={'name':{'type':Sequelize['STRING'],'unique':_0xfbae('0x1'),'allowNull':![]},'description':{'type':Sequelize[_0xfbae('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x434f=['name','send','map','Pause','fieldName','type','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','options','count','includeAll','include','findAll','catch','params','keys','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','find','userProfileId','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','destroy','eml-format','fast-json-patch','moment','bluebird','mustache','util','to-csv','ejs','fs-extra','squel','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','status','end','json','offset','undefined','limit','set','Content-Range','apply','reject','save','then','get','Pauses','UserProfileResource','sendStatus'];(function(_0x373096,_0x4d37aa){var _0x14a6d0=function(_0xb3b614){while(--_0xb3b614){_0x373096['push'](_0x373096['shift']());}};_0x14a6d0(++_0x4d37aa);}(_0x434f,0x73));var _0xf434=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x434f[_0x321bb2];return _0x9c12ed;};'use strict';var emlformat=require(_0xf434('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xf434('0x1'));var rp=require('request-promise');var moment=require(_0xf434('0x2'));var BPromise=require(_0xf434('0x3'));var Mustache=require(_0xf434('0x4'));var util=require(_0xf434('0x5'));var path=require('path');var sox=require('sox');var csv=require(_0xf434('0x6'));var ejs=require(_0xf434('0x7'));var fs=require('fs');var fs_extra=require(_0xf434('0x8'));var _=require('lodash');var squel=require(_0xf434('0x9'));var crypto=require('crypto');var jsforce=require(_0xf434('0xa'));var deskjs=require('desk.js');var toCsv=require(_0xf434('0x6'));var querystring=require(_0xf434('0xb'));var Papa=require(_0xf434('0xc'));var Redis=require(_0xf434('0xd'));var authService=require(_0xf434('0xe'));var qs=require('../../components/parsers/qs');var as=require(_0xf434('0xf'));var hardwareService=require(_0xf434('0x10'));var logger=require(_0xf434('0x11'))(_0xf434('0x12'));var utils=require(_0xf434('0x13'));var config=require('../../config/environment');var licenseUtil=require(_0xf434('0x14'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x3ac0fc,_0x3a86bc){_0x3a86bc=_0x3a86bc||0xcc;return function(_0x453de1){if(_0x453de1){return _0x3ac0fc['sendStatus'](_0x3a86bc);}return _0x3ac0fc[_0xf434('0x15')](_0x3a86bc)[_0xf434('0x16')]();};}function respondWithResult(_0x483ce0,_0x186c28){_0x186c28=_0x186c28||0xc8;return function(_0x41e842){if(_0x41e842){return _0x483ce0['status'](_0x186c28)[_0xf434('0x17')](_0x41e842);}};}function respondWithFilteredResult(_0x3c4ecd,_0x2842dc){return function(_0x55eb7a){if(_0x55eb7a){var _0x541bfe=typeof _0x2842dc[_0xf434('0x18')]===_0xf434('0x19')&&typeof _0x2842dc[_0xf434('0x1a')]===_0xf434('0x19');var _0x33cf09=_0x55eb7a['count'];var _0x432498=_0x541bfe?0x0:_0x2842dc[_0xf434('0x18')];var _0x24638d=_0x541bfe?_0x55eb7a['count']:_0x2842dc[_0xf434('0x18')]+_0x2842dc[_0xf434('0x1a')];var _0x46d610;if(_0x24638d>=_0x33cf09){_0x24638d=_0x33cf09;_0x46d610=0xc8;}else{_0x46d610=0xce;}_0x3c4ecd[_0xf434('0x15')](_0x46d610);return _0x3c4ecd[_0xf434('0x1b')](_0xf434('0x1c'),_0x432498+'-'+_0x24638d+'/'+_0x33cf09)[_0xf434('0x17')](_0x55eb7a);}return null;};}function patchUpdates(_0x5953a6){return function(_0x5874df){try{jsonpatch[_0xf434('0x1d')](_0x5874df,_0x5953a6,!![]);}catch(_0x143761){return BPromise[_0xf434('0x1e')](_0x143761);}return _0x5874df[_0xf434('0x1f')]();};}function saveUpdates(_0x5ea211,_0x1f39fb){return function(_0x487722){if(_0x487722){return _0x487722['update'](_0x5ea211)[_0xf434('0x20')](function(_0x16d902){return _0x16d902;});}return null;};}function removeEntity(_0x515875,_0x5ac188){return function(_0x1ed791){if(_0x1ed791){return _0x1ed791['destroy']()[_0xf434('0x20')](function(){var _0x448404=_0x1ed791[_0xf434('0x21')]({'plain':!![]});var _0x5446be=_0xf434('0x22');return db[_0xf434('0x23')]['destroy']({'where':{'type':_0x5446be,'resourceId':_0x448404['id']}})[_0xf434('0x20')](function(){return _0x1ed791;});})[_0xf434('0x20')](function(){_0x515875[_0xf434('0x15')](0xcc)[_0xf434('0x16')]();});}};}function handleEntityNotFound(_0xc00130,_0x24f5a1){return function(_0x24c0dc){if(!_0x24c0dc){_0xc00130[_0xf434('0x24')](0x194);}return _0x24c0dc;};}function handleError(_0x198326,_0x236103){_0x236103=_0x236103||0x1f4;return function(_0x2e1c6b){logger['error'](_0x2e1c6b['stack']);if(_0x2e1c6b[_0xf434('0x25')]){delete _0x2e1c6b[_0xf434('0x25')];}_0x198326[_0xf434('0x15')](_0x236103)[_0xf434('0x26')](_0x2e1c6b);};}exports['index']=function(_0x38aa7e,_0x885e97){var _0x383bcd={},_0x4d78c0={},_0x358359={'count':0x0,'rows':[]};var _0x1b7a77=_[_0xf434('0x27')](db[_0xf434('0x28')]['rawAttributes'],function(_0x40ff1d){return{'name':_0x40ff1d[_0xf434('0x29')],'type':_0x40ff1d[_0xf434('0x2a')]['key']};});_0x4d78c0[_0xf434('0x2b')]=_[_0xf434('0x27')](_0x1b7a77,_0xf434('0x25'));_0x4d78c0[_0xf434('0x2c')]=_['keys'](_0x38aa7e[_0xf434('0x2c')]);_0x4d78c0[_0xf434('0x2d')]=_[_0xf434('0x2e')](_0x4d78c0[_0xf434('0x2b')],_0x4d78c0['query']);_0x383bcd[_0xf434('0x2f')]=_['intersection'](_0x4d78c0[_0xf434('0x2b')],qs[_0xf434('0x30')](_0x38aa7e[_0xf434('0x2c')][_0xf434('0x30')]));_0x383bcd['attributes']=_0x383bcd['attributes'][_0xf434('0x31')]?_0x383bcd[_0xf434('0x2f')]:_0x4d78c0[_0xf434('0x2b')];if(!_0x38aa7e[_0xf434('0x2c')][_0xf434('0x32')](_0xf434('0x33'))){_0x383bcd['limit']=qs[_0xf434('0x1a')](_0x38aa7e[_0xf434('0x2c')]['limit']);_0x383bcd[_0xf434('0x18')]=qs['offset'](_0x38aa7e['query'][_0xf434('0x18')]);}_0x383bcd['order']=qs[_0xf434('0x34')](_0x38aa7e[_0xf434('0x2c')][_0xf434('0x34')]);_0x383bcd[_0xf434('0x35')]=qs[_0xf434('0x2d')](_[_0xf434('0x36')](_0x38aa7e[_0xf434('0x2c')],_0x4d78c0[_0xf434('0x2d')]),_0x1b7a77);if(_0x38aa7e[_0xf434('0x2c')][_0xf434('0x37')]){_0x383bcd['where']=_[_0xf434('0x38')](_0x383bcd[_0xf434('0x35')],{'$or':_[_0xf434('0x27')](_0x1b7a77,function(_0xdb8d13){if(_0xdb8d13['type']!=='VIRTUAL'){var _0x20d2d3={};_0x20d2d3[_0xdb8d13[_0xf434('0x25')]]={'$like':'%'+_0x38aa7e['query']['filter']+'%'};return _0x20d2d3;}})});}_0x383bcd=_[_0xf434('0x38')]({},_0x383bcd,_0x38aa7e[_0xf434('0x39')]);var _0x53d4e8={'where':_0x383bcd['where']};return db[_0xf434('0x28')][_0xf434('0x3a')](_0x53d4e8)[_0xf434('0x20')](function(_0x51bc25){_0x358359[_0xf434('0x3a')]=_0x51bc25;if(_0x38aa7e['query'][_0xf434('0x3b')]){_0x383bcd[_0xf434('0x3c')]=[{'all':!![]}];}return db[_0xf434('0x28')][_0xf434('0x3d')](_0x383bcd);})['then'](function(_0xd25397){_0x358359['rows']=_0xd25397;return _0x358359;})[_0xf434('0x20')](respondWithFilteredResult(_0x885e97,_0x383bcd))[_0xf434('0x3e')](handleError(_0x885e97,null));};exports['show']=function(_0x94a90f,_0x2a43b6){var _0x1545ef={'raw':!![],'where':{'id':_0x94a90f[_0xf434('0x3f')]['id']}},_0x589ffb={};_0x589ffb[_0xf434('0x2b')]=_[_0xf434('0x40')](db[_0xf434('0x28')]['rawAttributes']);_0x589ffb[_0xf434('0x2c')]=_[_0xf434('0x40')](_0x94a90f['query']);_0x589ffb[_0xf434('0x2d')]=_['intersection'](_0x589ffb['model'],_0x589ffb[_0xf434('0x2c')]);_0x1545ef['attributes']=_[_0xf434('0x2e')](_0x589ffb[_0xf434('0x2b')],qs['fields'](_0x94a90f[_0xf434('0x2c')][_0xf434('0x30')]));_0x1545ef[_0xf434('0x2f')]=_0x1545ef['attributes']['length']?_0x1545ef['attributes']:_0x589ffb[_0xf434('0x2b')];if(_0x94a90f['query'][_0xf434('0x3b')]){_0x1545ef['include']=[{'all':!![]}];}_0x1545ef=_[_0xf434('0x38')]({},_0x1545ef,_0x94a90f[_0xf434('0x39')]);return db[_0xf434('0x28')]['find'](_0x1545ef)[_0xf434('0x20')](handleEntityNotFound(_0x2a43b6,null))[_0xf434('0x20')](respondWithResult(_0x2a43b6,null))['catch'](handleError(_0x2a43b6,null));};exports[_0xf434('0x41')]=function(_0x12c01d,_0xa880d2){return db['Pause']['create'](_0x12c01d[_0xf434('0x42')],{})['then'](function(_0x50bdad){var _0x557764=_0x12c01d[_0xf434('0x43')][_0xf434('0x21')]({'plain':!![]});if(!_0x557764)throw new Error(_0xf434('0x44'));if(_0x557764['role']===_0xf434('0x43')){var _0x5dbdbe=_0x50bdad['get']({'plain':!![]});var _0x5aa2cb='Pauses';return db[_0xf434('0x45')][_0xf434('0x46')]({'where':{'name':_0x5aa2cb,'userProfileId':_0x557764[_0xf434('0x47')]},'raw':!![]})['then'](function(_0x215c1f){if(_0x215c1f&&_0x215c1f['autoAssociation']===0x0){return db[_0xf434('0x23')][_0xf434('0x41')]({'name':_0x5dbdbe[_0xf434('0x25')],'resourceId':_0x5dbdbe['id'],'type':_0x215c1f[_0xf434('0x25')],'sectionId':_0x215c1f['id']},{})[_0xf434('0x20')](function(){return _0x50bdad;});}else{return _0x50bdad;}})['catch'](function(_0x56ea09){logger[_0xf434('0x48')](_0xf434('0x49'),_0x56ea09);throw _0x56ea09;});}return _0x50bdad;})[_0xf434('0x20')](respondWithResult(_0xa880d2,0xc9))[_0xf434('0x3e')](handleError(_0xa880d2,null));};exports[_0xf434('0x4a')]=function(_0x2acbb2,_0x3aa44d){if(_0x2acbb2[_0xf434('0x42')]['id']){delete _0x2acbb2[_0xf434('0x42')]['id'];}return db[_0xf434('0x28')][_0xf434('0x46')]({'where':{'id':_0x2acbb2[_0xf434('0x3f')]['id']}})[_0xf434('0x20')](handleEntityNotFound(_0x3aa44d,null))[_0xf434('0x20')](saveUpdates(_0x2acbb2[_0xf434('0x42')],null))[_0xf434('0x20')](respondWithResult(_0x3aa44d,null))[_0xf434('0x3e')](handleError(_0x3aa44d,null));};exports[_0xf434('0x4b')]=function(_0x3cf0a9,_0x3e1eae){return db[_0xf434('0x28')]['find']({'where':{'id':_0x3cf0a9[_0xf434('0x3f')]['id']}})[_0xf434('0x20')](handleEntityNotFound(_0x3e1eae,null))[_0xf434('0x20')](removeEntity(_0x3e1eae,null))[_0xf434('0x3e')](handleError(_0x3e1eae,null));};
\ No newline at end of file
+var _0x9b88=['hasOwnProperty','nolimit','order','where','pick','merge','VIRTUAL','options','includeAll','include','findAll','catch','params','keys','rawAttributes','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Pauses','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','rimraf','zip-dir','request-promise','bluebird','mustache','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','then','destroy','get','UserProfileResource','error','stack','name','send','index','map','Pause','fieldName','type','key','model','query','filters','intersection','attributes','fields','length'];(function(_0x3535c6,_0xe0076d){var _0x3049c9=function(_0x4f6707){while(--_0x4f6707){_0x3535c6['push'](_0x3535c6['shift']());}};_0x3049c9(++_0xe0076d);}(_0x9b88,0x176));var _0x89b8=function(_0x2170e3,_0x39d8c4){_0x2170e3=_0x2170e3-0x0;var _0x4b1363=_0x9b88[_0x2170e3];return _0x4b1363;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x89b8('0x0'));var zipdir=require(_0x89b8('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x89b8('0x2'));var moment=require('moment');var BPromise=require(_0x89b8('0x3'));var Mustache=require(_0x89b8('0x4'));var util=require('util');var path=require(_0x89b8('0x5'));var sox=require(_0x89b8('0x6'));var csv=require('to-csv');var ejs=require(_0x89b8('0x7'));var fs=require('fs');var fs_extra=require(_0x89b8('0x8'));var _=require(_0x89b8('0x9'));var squel=require(_0x89b8('0xa'));var crypto=require(_0x89b8('0xb'));var jsforce=require(_0x89b8('0xc'));var deskjs=require(_0x89b8('0xd'));var toCsv=require(_0x89b8('0xe'));var querystring=require(_0x89b8('0xf'));var Papa=require(_0x89b8('0x10'));var Redis=require(_0x89b8('0x11'));var authService=require(_0x89b8('0x12'));var qs=require(_0x89b8('0x13'));var as=require(_0x89b8('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x89b8('0x15'))(_0x89b8('0x16'));var utils=require(_0x89b8('0x17'));var config=require(_0x89b8('0x18'));var licenseUtil=require(_0x89b8('0x19'));var db=require(_0x89b8('0x1a'))['db'];function respondWithStatusCode(_0x306cb2,_0xd5d4bd){_0xd5d4bd=_0xd5d4bd||0xcc;return function(_0x4ad6c3){if(_0x4ad6c3){return _0x306cb2[_0x89b8('0x1b')](_0xd5d4bd);}return _0x306cb2['status'](_0xd5d4bd)[_0x89b8('0x1c')]();};}function respondWithResult(_0x1b90fc,_0x3e112d){_0x3e112d=_0x3e112d||0xc8;return function(_0x1f64d0){if(_0x1f64d0){return _0x1b90fc[_0x89b8('0x1d')](_0x3e112d)[_0x89b8('0x1e')](_0x1f64d0);}};}function respondWithFilteredResult(_0x1ecb88,_0x3c00e6){return function(_0x3012fd){if(_0x3012fd){var _0x334956=typeof _0x3c00e6[_0x89b8('0x1f')]===_0x89b8('0x20')&&typeof _0x3c00e6['limit']==='undefined';var _0x330e67=_0x3012fd[_0x89b8('0x21')];var _0x1c73ba=_0x334956?0x0:_0x3c00e6[_0x89b8('0x1f')];var _0x144910=_0x334956?_0x3012fd[_0x89b8('0x21')]:_0x3c00e6['offset']+_0x3c00e6[_0x89b8('0x22')];var _0x27aeec;if(_0x144910>=_0x330e67){_0x144910=_0x330e67;_0x27aeec=0xc8;}else{_0x27aeec=0xce;}_0x1ecb88[_0x89b8('0x1d')](_0x27aeec);return _0x1ecb88[_0x89b8('0x23')](_0x89b8('0x24'),_0x1c73ba+'-'+_0x144910+'/'+_0x330e67)[_0x89b8('0x1e')](_0x3012fd);}return null;};}function patchUpdates(_0x3e9858){return function(_0xd2a1e3){try{jsonpatch[_0x89b8('0x25')](_0xd2a1e3,_0x3e9858,!![]);}catch(_0x88e8ac){return BPromise[_0x89b8('0x26')](_0x88e8ac);}return _0xd2a1e3[_0x89b8('0x27')]();};}function saveUpdates(_0x18edb5,_0x34e9b2){return function(_0x40b446){if(_0x40b446){return _0x40b446['update'](_0x18edb5)[_0x89b8('0x28')](function(_0x540c00){return _0x540c00;});}return null;};}function removeEntity(_0x5d1ce6,_0x443b4a){return function(_0x3a2a03){if(_0x3a2a03){return _0x3a2a03[_0x89b8('0x29')]()[_0x89b8('0x28')](function(){var _0x756df3=_0x3a2a03[_0x89b8('0x2a')]({'plain':!![]});var _0x3efde2='Pauses';return db[_0x89b8('0x2b')][_0x89b8('0x29')]({'where':{'type':_0x3efde2,'resourceId':_0x756df3['id']}})[_0x89b8('0x28')](function(){return _0x3a2a03;});})[_0x89b8('0x28')](function(){_0x5d1ce6[_0x89b8('0x1d')](0xcc)[_0x89b8('0x1c')]();});}};}function handleEntityNotFound(_0x44977b,_0x2398ba){return function(_0x24d479){if(!_0x24d479){_0x44977b[_0x89b8('0x1b')](0x194);}return _0x24d479;};}function handleError(_0x290901,_0xd04681){_0xd04681=_0xd04681||0x1f4;return function(_0x1f6bc0){logger[_0x89b8('0x2c')](_0x1f6bc0[_0x89b8('0x2d')]);if(_0x1f6bc0[_0x89b8('0x2e')]){delete _0x1f6bc0[_0x89b8('0x2e')];}_0x290901[_0x89b8('0x1d')](_0xd04681)[_0x89b8('0x2f')](_0x1f6bc0);};}exports[_0x89b8('0x30')]=function(_0x2116ed,_0x21d28b){var _0x453be0={},_0x206c0b={},_0x3a95f6={'count':0x0,'rows':[]};var _0x3ad49d=_[_0x89b8('0x31')](db[_0x89b8('0x32')]['rawAttributes'],function(_0x3231ad){return{'name':_0x3231ad[_0x89b8('0x33')],'type':_0x3231ad[_0x89b8('0x34')][_0x89b8('0x35')]};});_0x206c0b[_0x89b8('0x36')]=_[_0x89b8('0x31')](_0x3ad49d,_0x89b8('0x2e'));_0x206c0b[_0x89b8('0x37')]=_['keys'](_0x2116ed[_0x89b8('0x37')]);_0x206c0b[_0x89b8('0x38')]=_[_0x89b8('0x39')](_0x206c0b[_0x89b8('0x36')],_0x206c0b[_0x89b8('0x37')]);_0x453be0[_0x89b8('0x3a')]=_[_0x89b8('0x39')](_0x206c0b[_0x89b8('0x36')],qs[_0x89b8('0x3b')](_0x2116ed[_0x89b8('0x37')][_0x89b8('0x3b')]));_0x453be0[_0x89b8('0x3a')]=_0x453be0['attributes'][_0x89b8('0x3c')]?_0x453be0[_0x89b8('0x3a')]:_0x206c0b[_0x89b8('0x36')];if(!_0x2116ed['query'][_0x89b8('0x3d')](_0x89b8('0x3e'))){_0x453be0[_0x89b8('0x22')]=qs[_0x89b8('0x22')](_0x2116ed[_0x89b8('0x37')][_0x89b8('0x22')]);_0x453be0[_0x89b8('0x1f')]=qs[_0x89b8('0x1f')](_0x2116ed[_0x89b8('0x37')][_0x89b8('0x1f')]);}_0x453be0[_0x89b8('0x3f')]=qs['sort'](_0x2116ed[_0x89b8('0x37')]['sort']);_0x453be0[_0x89b8('0x40')]=qs[_0x89b8('0x38')](_[_0x89b8('0x41')](_0x2116ed[_0x89b8('0x37')],_0x206c0b[_0x89b8('0x38')]),_0x3ad49d);if(_0x2116ed['query']['filter']){_0x453be0[_0x89b8('0x40')]=_[_0x89b8('0x42')](_0x453be0['where'],{'$or':_['map'](_0x3ad49d,function(_0x41ddd6){if(_0x41ddd6['type']!==_0x89b8('0x43')){var _0x250ca6={};_0x250ca6[_0x41ddd6[_0x89b8('0x2e')]]={'$like':'%'+_0x2116ed[_0x89b8('0x37')]['filter']+'%'};return _0x250ca6;}})});}_0x453be0=_[_0x89b8('0x42')]({},_0x453be0,_0x2116ed[_0x89b8('0x44')]);var _0x535880={'where':_0x453be0[_0x89b8('0x40')]};return db['Pause']['count'](_0x535880)[_0x89b8('0x28')](function(_0x4406c9){_0x3a95f6[_0x89b8('0x21')]=_0x4406c9;if(_0x2116ed[_0x89b8('0x37')][_0x89b8('0x45')]){_0x453be0[_0x89b8('0x46')]=[{'all':!![]}];}return db[_0x89b8('0x32')][_0x89b8('0x47')](_0x453be0);})[_0x89b8('0x28')](function(_0x527046){_0x3a95f6['rows']=_0x527046;return _0x3a95f6;})[_0x89b8('0x28')](respondWithFilteredResult(_0x21d28b,_0x453be0))[_0x89b8('0x48')](handleError(_0x21d28b,null));};exports['show']=function(_0x363be9,_0x542dbf){var _0x44e8e4={'raw':!![],'where':{'id':_0x363be9[_0x89b8('0x49')]['id']}},_0x22353c={};_0x22353c[_0x89b8('0x36')]=_[_0x89b8('0x4a')](db[_0x89b8('0x32')][_0x89b8('0x4b')]);_0x22353c['query']=_['keys'](_0x363be9[_0x89b8('0x37')]);_0x22353c['filters']=_[_0x89b8('0x39')](_0x22353c[_0x89b8('0x36')],_0x22353c[_0x89b8('0x37')]);_0x44e8e4[_0x89b8('0x3a')]=_[_0x89b8('0x39')](_0x22353c[_0x89b8('0x36')],qs[_0x89b8('0x3b')](_0x363be9[_0x89b8('0x37')][_0x89b8('0x3b')]));_0x44e8e4[_0x89b8('0x3a')]=_0x44e8e4[_0x89b8('0x3a')]['length']?_0x44e8e4[_0x89b8('0x3a')]:_0x22353c['model'];if(_0x363be9['query'][_0x89b8('0x45')]){_0x44e8e4['include']=[{'all':!![]}];}_0x44e8e4=_[_0x89b8('0x42')]({},_0x44e8e4,_0x363be9[_0x89b8('0x44')]);return db[_0x89b8('0x32')][_0x89b8('0x4c')](_0x44e8e4)[_0x89b8('0x28')](handleEntityNotFound(_0x542dbf,null))[_0x89b8('0x28')](respondWithResult(_0x542dbf,null))['catch'](handleError(_0x542dbf,null));};exports['create']=function(_0x366b46,_0x4d748b){return db[_0x89b8('0x32')][_0x89b8('0x4d')](_0x366b46[_0x89b8('0x4e')],{})[_0x89b8('0x28')](function(_0x147f71){var _0x38deed=_0x366b46[_0x89b8('0x4f')]['get']({'plain':!![]});if(!_0x38deed)throw new Error(_0x89b8('0x50'));if(_0x38deed[_0x89b8('0x51')]===_0x89b8('0x4f')){var _0x49cb9d=_0x147f71['get']({'plain':!![]});var _0xf1118a=_0x89b8('0x52');return db[_0x89b8('0x53')]['find']({'where':{'name':_0xf1118a,'userProfileId':_0x38deed[_0x89b8('0x54')]},'raw':!![]})[_0x89b8('0x28')](function(_0x10b612){if(_0x10b612&&_0x10b612['autoAssociation']===0x0){return db[_0x89b8('0x2b')][_0x89b8('0x4d')]({'name':_0x49cb9d[_0x89b8('0x2e')],'resourceId':_0x49cb9d['id'],'type':_0x10b612['name'],'sectionId':_0x10b612['id']},{})[_0x89b8('0x28')](function(){return _0x147f71;});}else{return _0x147f71;}})['catch'](function(_0x1c468f){logger['error'](_0x89b8('0x55'),_0x1c468f);throw _0x1c468f;});}return _0x147f71;})[_0x89b8('0x28')](respondWithResult(_0x4d748b,0xc9))[_0x89b8('0x48')](handleError(_0x4d748b,null));};exports[_0x89b8('0x56')]=function(_0x42bb84,_0x15ba66){if(_0x42bb84[_0x89b8('0x4e')]['id']){delete _0x42bb84['body']['id'];}return db[_0x89b8('0x32')][_0x89b8('0x4c')]({'where':{'id':_0x42bb84[_0x89b8('0x49')]['id']}})['then'](handleEntityNotFound(_0x15ba66,null))['then'](saveUpdates(_0x42bb84[_0x89b8('0x4e')],null))[_0x89b8('0x28')](respondWithResult(_0x15ba66,null))[_0x89b8('0x48')](handleError(_0x15ba66,null));};exports[_0x89b8('0x29')]=function(_0x47b54f,_0x4b53a9){return db['Pause'][_0x89b8('0x4c')]({'where':{'id':_0x47b54f['params']['id']}})[_0x89b8('0x28')](handleEntityNotFound(_0x4b53a9,null))['then'](removeEntity(_0x4b53a9,null))[_0x89b8('0x48')](handleError(_0x4b53a9,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5fc3=['lodash','util','api','moment','bluebird','request-promise','path','../../config/environment','./pause.attributes','exports','define','tools_pauses'];(function(_0x571b9f,_0x25bb55){var _0x563d7b=function(_0xb95a5f){while(--_0xb95a5f){_0x571b9f['push'](_0x571b9f['shift']());}};_0x563d7b(++_0x25bb55);}(_0x5fc3,0xa8));var _0x35fc=function(_0x7b173,_0x539d7f){_0x7b173=_0x7b173-0x0;var _0x1c598c=_0x5fc3[_0x7b173];return _0x1c598c;};'use strict';var _=require(_0x35fc('0x0'));var util=require(_0x35fc('0x1'));var logger=require('../../config/logger')(_0x35fc('0x2'));var moment=require(_0x35fc('0x3'));var BPromise=require(_0x35fc('0x4'));var rp=require(_0x35fc('0x5'));var fs=require('fs');var path=require(_0x35fc('0x6'));var rimraf=require('rimraf');var config=require(_0x35fc('0x7'));var attributes=require(_0x35fc('0x8'));module[_0x35fc('0x9')]=function(_0x5b85ad,_0x5754be){return _0x5b85ad[_0x35fc('0xa')]('Pause',attributes,{'tableName':_0x35fc('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x6aa7=['Pause','tools_pauses','lodash','../../config/logger','api','moment','bluebird','path','rimraf','../../config/environment','define'];(function(_0x57b54c,_0x54ce0d){var _0x59cc19=function(_0xa33bc6){while(--_0xa33bc6){_0x57b54c['push'](_0x57b54c['shift']());}};_0x59cc19(++_0x54ce0d);}(_0x6aa7,0x178));var _0x76aa=function(_0x318d03,_0xa571a0){_0x318d03=_0x318d03-0x0;var _0x5b213f=_0x6aa7[_0x318d03];return _0x5b213f;};'use strict';var _=require(_0x76aa('0x0'));var util=require('util');var logger=require(_0x76aa('0x1'))(_0x76aa('0x2'));var moment=require(_0x76aa('0x3'));var BPromise=require(_0x76aa('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x76aa('0x5'));var rimraf=require(_0x76aa('0x6'));var config=require(_0x76aa('0x7'));var attributes=require('./pause.attributes');module['exports']=function(_0x1aceaa,_0x4d53f6){return _0x1aceaa[_0x76aa('0x8')](_0x76aa('0x9'),attributes,{'tableName':_0x76aa('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb10b=['catch','lodash','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','then','info','Pause,\x20%s,\x20%s','Pause,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','ShowPause','Pause','find','options','raw','where','attributes','map','include','model','debug'];(function(_0x247dbe,_0x1f2e28){var _0x323059=function(_0x4aefe7){while(--_0x4aefe7){_0x247dbe['push'](_0x247dbe['shift']());}};_0x323059(++_0x1f2e28);}(_0xb10b,0x12a));var _0xbb10=function(_0x310832,_0xe72c7e){_0x310832=_0x310832-0x0;var _0x103f74=_0xb10b[_0x310832];return _0x103f74;};'use strict';var _=require(_0xbb10('0x0'));var util=require('util');var moment=require(_0xbb10('0x1'));var BPromise=require(_0xbb10('0x2'));var rs=require(_0xbb10('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xbb10('0x4'))['db'];var utils=require(_0xbb10('0x5'));var logger=require(_0xbb10('0x6'))(_0xbb10('0x7'));var config=require(_0xbb10('0x8'));var jayson=require(_0xbb10('0x9'));var client=jayson['client'][_0xbb10('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x3cdd53,_0x513741,_0x1b9e94){return new BPromise(function(_0x3fb675,_0x21370f){return client[_0xbb10('0xb')](_0x3cdd53,_0x1b9e94)[_0xbb10('0xc')](function(_0x1ce33e){logger[_0xbb10('0xd')](_0xbb10('0xe'),_0x513741,'request\x20sent');logger['debug'](_0xbb10('0xf'),_0x513741,_0xbb10('0x10'),JSON[_0xbb10('0x11')](_0x1ce33e));if(_0x1ce33e['error']){if(_0x1ce33e[_0xbb10('0x12')]['code']===0x1f4){logger[_0xbb10('0x12')](_0xbb10('0xe'),_0x513741,_0x1ce33e[_0xbb10('0x12')][_0xbb10('0x13')]);return _0x21370f(_0x1ce33e[_0xbb10('0x12')][_0xbb10('0x13')]);}logger['error'](_0xbb10('0xe'),_0x513741,_0x1ce33e[_0xbb10('0x12')][_0xbb10('0x13')]);return _0x3fb675(_0x1ce33e[_0xbb10('0x12')][_0xbb10('0x13')]);}else{logger[_0xbb10('0xd')](_0xbb10('0xe'),_0x513741,_0xbb10('0x10'));_0x3fb675(_0x1ce33e[_0xbb10('0x14')][_0xbb10('0x13')]);}})['catch'](function(_0x2eca0f){logger[_0xbb10('0x12')](_0xbb10('0xe'),_0x513741,_0x2eca0f);_0x21370f(_0x2eca0f);});});}exports[_0xbb10('0x15')]=function(_0x378da8){var _0x1682a4=this;return new Promise(function(_0x575cca,_0x30efc6){return db[_0xbb10('0x16')][_0xbb10('0x17')]({'raw':_0x378da8['options']?_0x378da8[_0xbb10('0x18')][_0xbb10('0x19')]===undefined?!![]:![]:!![],'where':_0x378da8[_0xbb10('0x18')]?_0x378da8[_0xbb10('0x18')][_0xbb10('0x1a')]||null:null,'attributes':_0x378da8[_0xbb10('0x18')]?_0x378da8['options'][_0xbb10('0x1b')]||null:null,'include':_0x378da8[_0xbb10('0x18')]?_0x378da8['options']['include']?_[_0xbb10('0x1c')](_0x378da8[_0xbb10('0x18')][_0xbb10('0x1d')],function(_0x317da4){return{'model':db[_0x317da4[_0xbb10('0x1e')]],'as':_0x317da4['as'],'attributes':_0x317da4[_0xbb10('0x1b')],'include':_0x317da4[_0xbb10('0x1d')]?_[_0xbb10('0x1c')](_0x317da4[_0xbb10('0x1d')],function(_0x395404){return{'model':db[_0x395404[_0xbb10('0x1e')]],'as':_0x395404['as'],'attributes':_0x395404[_0xbb10('0x1b')],'include':_0x395404['include']?_['map'](_0x395404['include'],function(_0xc93a04){return{'model':db[_0xc93a04[_0xbb10('0x1e')]],'as':_0xc93a04['as'],'attributes':_0xc93a04[_0xbb10('0x1b')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x2fdde9){logger[_0xbb10('0xd')](_0xbb10('0x15'),_0x378da8);logger[_0xbb10('0x1f')](_0xbb10('0x15'),_0x378da8,JSON[_0xbb10('0x11')](_0x2fdde9));_0x575cca(_0x2fdde9);})[_0xbb10('0x20')](function(_0x4aabb9){logger[_0xbb10('0x12')](_0xbb10('0x15'),_0x4aabb9[_0xbb10('0x13')],_0x378da8);_0x30efc6(_0x1682a4[_0xbb10('0x12')](0x1f4,_0x4aabb9[_0xbb10('0x13')]));});});};
\ No newline at end of file
+var _0x7a54=['message','request\x20sent','result','catch','Pause','find','options','raw','where','attributes','map','include','model','ShowPause','lodash','util','moment','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','info','Pause,\x20%s,\x20%s','debug','stringify','error','code'];(function(_0x48b968,_0x547a49){var _0x2155c9=function(_0x2af893){while(--_0x2af893){_0x48b968['push'](_0x48b968['shift']());}};_0x2155c9(++_0x547a49);}(_0x7a54,0x106));var _0x47a5=function(_0x442394,_0x271465){_0x442394=_0x442394-0x0;var _0x1d1485=_0x7a54[_0x442394];return _0x1d1485;};'use strict';var _=require(_0x47a5('0x0'));var util=require(_0x47a5('0x1'));var moment=require(_0x47a5('0x2'));var BPromise=require('bluebird');var rs=require(_0x47a5('0x3'));var fs=require('fs');var Redis=require(_0x47a5('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x47a5('0x5'));var logger=require(_0x47a5('0x6'))(_0x47a5('0x7'));var config=require(_0x47a5('0x8'));var jayson=require(_0x47a5('0x9'));var client=jayson['client'][_0x47a5('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x59199c,_0x343372,_0x30e405){return new BPromise(function(_0x506eda,_0x194fb0){return client['request'](_0x59199c,_0x30e405)['then'](function(_0x582352){logger[_0x47a5('0xb')](_0x47a5('0xc'),_0x343372,'request\x20sent');logger[_0x47a5('0xd')]('Pause,\x20%s,\x20%s,\x20%s',_0x343372,'request\x20sent',JSON[_0x47a5('0xe')](_0x582352));if(_0x582352[_0x47a5('0xf')]){if(_0x582352[_0x47a5('0xf')][_0x47a5('0x10')]===0x1f4){logger[_0x47a5('0xf')](_0x47a5('0xc'),_0x343372,_0x582352[_0x47a5('0xf')]['message']);return _0x194fb0(_0x582352[_0x47a5('0xf')][_0x47a5('0x11')]);}logger[_0x47a5('0xf')](_0x47a5('0xc'),_0x343372,_0x582352[_0x47a5('0xf')][_0x47a5('0x11')]);return _0x506eda(_0x582352[_0x47a5('0xf')][_0x47a5('0x11')]);}else{logger['info'](_0x47a5('0xc'),_0x343372,_0x47a5('0x12'));_0x506eda(_0x582352[_0x47a5('0x13')][_0x47a5('0x11')]);}})[_0x47a5('0x14')](function(_0x574af6){logger['error'](_0x47a5('0xc'),_0x343372,_0x574af6);_0x194fb0(_0x574af6);});});}exports['ShowPause']=function(_0x5247fd){var _0x423a81=this;return new Promise(function(_0xaf70a6,_0x2ce454){return db[_0x47a5('0x15')][_0x47a5('0x16')]({'raw':_0x5247fd[_0x47a5('0x17')]?_0x5247fd[_0x47a5('0x17')][_0x47a5('0x18')]===undefined?!![]:![]:!![],'where':_0x5247fd[_0x47a5('0x17')]?_0x5247fd['options'][_0x47a5('0x19')]||null:null,'attributes':_0x5247fd[_0x47a5('0x17')]?_0x5247fd['options'][_0x47a5('0x1a')]||null:null,'include':_0x5247fd[_0x47a5('0x17')]?_0x5247fd[_0x47a5('0x17')]['include']?_[_0x47a5('0x1b')](_0x5247fd[_0x47a5('0x17')][_0x47a5('0x1c')],function(_0x7a9f9e){return{'model':db[_0x7a9f9e['model']],'as':_0x7a9f9e['as'],'attributes':_0x7a9f9e[_0x47a5('0x1a')],'include':_0x7a9f9e[_0x47a5('0x1c')]?_['map'](_0x7a9f9e[_0x47a5('0x1c')],function(_0xc4cd63){return{'model':db[_0xc4cd63[_0x47a5('0x1d')]],'as':_0xc4cd63['as'],'attributes':_0xc4cd63[_0x47a5('0x1a')],'include':_0xc4cd63[_0x47a5('0x1c')]?_['map'](_0xc4cd63['include'],function(_0x136745){return{'model':db[_0x136745['model']],'as':_0x136745['as'],'attributes':_0x136745[_0x47a5('0x1a')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x23cb77){logger[_0x47a5('0xb')](_0x47a5('0x1e'),_0x5247fd);logger[_0x47a5('0xd')](_0x47a5('0x1e'),_0x5247fd,JSON[_0x47a5('0xe')](_0x23cb77));_0xaf70a6(_0x23cb77);})[_0x47a5('0x14')](function(_0x136b14){logger[_0x47a5('0xf')](_0x47a5('0x1e'),_0x136b14[_0x47a5('0x11')],_0x5247fd);_0x2ce454(_0x423a81[_0x47a5('0xf')](0x1f4,_0x136b14[_0x47a5('0x11')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x826a=['fs-extra','../../components/auth/service','../../components/interaction/service','./plugin.controller','get','isAuthenticated','index','/webhook','webhookGet','/:id','show','/:id/download','download','diskStorage','join','root','server/files/plugins','originalname','replace','%s-%s%s','basename','now','post','single','file','webhookPost','put','update','delete','exports','util','connect-timeout','Router'];(function(_0x1cc8fe,_0x105328){var _0x230054=function(_0x1a1b56){while(--_0x1a1b56){_0x1cc8fe['push'](_0x1cc8fe['shift']());}};_0x230054(++_0x105328);}(_0x826a,0x1aa));var _0xa826=function(_0x4b505f,_0x44c46f){_0x4b505f=_0x4b505f-0x0;var _0x3c2bcc=_0x826a[_0x4b505f];return _0x3c2bcc;};'use strict';var multer=require('multer');var util=require(_0xa826('0x0'));var path=require('path');var timeout=require(_0xa826('0x1'));var express=require('express');var router=express[_0xa826('0x2')]();var fs_extra=require(_0xa826('0x3'));var auth=require(_0xa826('0x4'));var interaction=require(_0xa826('0x5'));var config=require('../../config/environment');var controller=require(_0xa826('0x6'));router[_0xa826('0x7')]('/',auth[_0xa826('0x8')](),controller[_0xa826('0x9')]);router[_0xa826('0x7')](_0xa826('0xa'),controller[_0xa826('0xb')]);router[_0xa826('0x7')](_0xa826('0xc'),auth[_0xa826('0x8')](),controller[_0xa826('0xd')]);router[_0xa826('0x7')](_0xa826('0xe'),auth[_0xa826('0x8')](),controller[_0xa826('0xf')]);var upload=multer({'storage':multer[_0xa826('0x10')]({'destination':function(_0x48df82,_0xbd22fc,_0x4b4caf){_0x4b4caf(null,path[_0xa826('0x11')](config[_0xa826('0x12')],_0xa826('0x13')));},'filename':function(_0xa55bd7,_0x212fac,_0x40838f){_0x212fac[_0xa826('0x14')]=_0x212fac['originalname'][_0xa826('0x15')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0x40838f(null,util['format'](_0xa826('0x16'),path[_0xa826('0x17')](_0x212fac['originalname'],path['extname'](_0x212fac['originalname'])),Date[_0xa826('0x18')](),path['extname'](_0x212fac['originalname'])));}})});router[_0xa826('0x19')]('/',upload[_0xa826('0x1a')](_0xa826('0x1b')),controller['upload']);router[_0xa826('0x19')](_0xa826('0xa'),controller[_0xa826('0x1c')]);router[_0xa826('0x1d')](_0xa826('0xc'),auth['isAuthenticated'](),controller[_0xa826('0x1e')]);router[_0xa826('0x1f')](_0xa826('0xc'),auth['isAuthenticated'](),controller['delete']);module[_0xa826('0x20')]=router;
\ No newline at end of file
+var _0x3e74=['originalname','format','%s-%s%s','basename','now','extname','file','upload','post','put','update','delete','exports','multer','path','connect-timeout','express','../../components/auth/service','../../config/environment','./plugin.controller','get','isAuthenticated','index','/webhook','webhookGet','/:id','download','diskStorage','join','root'];(function(_0x2819da,_0x144d0c){var _0x2a8a93=function(_0x140033){while(--_0x140033){_0x2819da['push'](_0x2819da['shift']());}};_0x2a8a93(++_0x144d0c);}(_0x3e74,0x175));var _0x43e7=function(_0x2af5c0,_0x4352fb){_0x2af5c0=_0x2af5c0-0x0;var _0x2625d5=_0x3e74[_0x2af5c0];return _0x2625d5;};'use strict';var multer=require(_0x43e7('0x0'));var util=require('util');var path=require(_0x43e7('0x1'));var timeout=require(_0x43e7('0x2'));var express=require(_0x43e7('0x3'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0x43e7('0x4'));var interaction=require('../../components/interaction/service');var config=require(_0x43e7('0x5'));var controller=require(_0x43e7('0x6'));router[_0x43e7('0x7')]('/',auth[_0x43e7('0x8')](),controller[_0x43e7('0x9')]);router['get'](_0x43e7('0xa'),controller[_0x43e7('0xb')]);router[_0x43e7('0x7')](_0x43e7('0xc'),auth[_0x43e7('0x8')](),controller['show']);router[_0x43e7('0x7')]('/:id/download',auth['isAuthenticated'](),controller[_0x43e7('0xd')]);var upload=multer({'storage':multer[_0x43e7('0xe')]({'destination':function(_0x5c34f4,_0x2803d9,_0x513707){_0x513707(null,path[_0x43e7('0xf')](config[_0x43e7('0x10')],'server/files/plugins'));},'filename':function(_0x3eb206,_0xc960ea,_0x2718d3){_0xc960ea[_0x43e7('0x11')]=_0xc960ea['originalname']['replace'](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0x2718d3(null,util[_0x43e7('0x12')](_0x43e7('0x13'),path[_0x43e7('0x14')](_0xc960ea['originalname'],path['extname'](_0xc960ea[_0x43e7('0x11')])),Date[_0x43e7('0x15')](),path[_0x43e7('0x16')](_0xc960ea[_0x43e7('0x11')])));}})});router['post']('/',upload['single'](_0x43e7('0x17')),controller[_0x43e7('0x18')]);router[_0x43e7('0x19')]('/webhook',controller['webhookPost']);router[_0x43e7('0x1a')](_0x43e7('0xc'),auth[_0x43e7('0x8')](),controller[_0x43e7('0x1b')]);router[_0x43e7('0x1c')](_0x43e7('0xc'),auth[_0x43e7('0x8')](),controller[_0x43e7('0x1c')]);module[_0x43e7('0x1d')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8d67=['always','Indicates\x20whether\x20to\x20display\x20the\x20plugin\x20in\x20the\x20sidebar.','sequelize','STRING','ENUM','script','TEXT','adminOnly','agentOnly'];(function(_0x260b2f,_0x56907c){var _0x3f4d35=function(_0x15ee1f){while(--_0x15ee1f){_0x260b2f['push'](_0x260b2f['shift']());}};_0x3f4d35(++_0x56907c);}(_0x8d67,0x6e));var _0x78d6=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x8d67[_0x321bb2];return _0x9c12ed;};'use strict';var Sequelize=require(_0x78d6('0x0'));module['exports']={'name':{'type':Sequelize[_0x78d6('0x1')]},'type':{'type':Sequelize[_0x78d6('0x2')]('html',_0x78d6('0x3'))},'description':{'type':Sequelize[_0x78d6('0x4')]},'version':{'type':Sequelize[_0x78d6('0x4')]},'path':{'type':Sequelize[_0x78d6('0x1')],'comment':'The\x20physical\x20path\x20where\x20the\x20plugin\x20is\x20stored.'},'active':{'type':Sequelize['BOOLEAN'],'defaultValue':0x0,'comment':'Indicates\x20whether\x20the\x20plugin\x20is\x20installed.\x20Updated\x20when\x20the\x20plugin\x20is\x20installed/uninstalled.'},'sidebar':{'type':Sequelize[_0x78d6('0x2')](_0x78d6('0x5'),_0x78d6('0x6'),'always','never'),'defaultValue':_0x78d6('0x7'),'comment':_0x78d6('0x8')},'icon':{'type':Sequelize['STRING']},'adminUrl':{'type':Sequelize[_0x78d6('0x1')]},'agentUrl':{'type':Sequelize[_0x78d6('0x1')]},'scriptName':{'type':Sequelize['STRING']},'scriptPath':{'type':Sequelize[_0x78d6('0x1')]}};
\ No newline at end of file
+var _0x172b=['exports','STRING','ENUM','html','script','TEXT','The\x20physical\x20path\x20where\x20the\x20plugin\x20is\x20stored.','BOOLEAN','Indicates\x20whether\x20the\x20plugin\x20is\x20installed.\x20Updated\x20when\x20the\x20plugin\x20is\x20installed/uninstalled.','adminOnly','agentOnly','always','never','sequelize'];(function(_0x261762,_0x451b53){var _0x17ee27=function(_0x30b781){while(--_0x30b781){_0x261762['push'](_0x261762['shift']());}};_0x17ee27(++_0x451b53);}(_0x172b,0x15d));var _0xb172=function(_0xf70a3d,_0x399aa4){_0xf70a3d=_0xf70a3d-0x0;var _0x41345a=_0x172b[_0xf70a3d];return _0x41345a;};'use strict';var Sequelize=require(_0xb172('0x0'));module[_0xb172('0x1')]={'name':{'type':Sequelize[_0xb172('0x2')]},'type':{'type':Sequelize[_0xb172('0x3')](_0xb172('0x4'),_0xb172('0x5'))},'description':{'type':Sequelize['TEXT']},'version':{'type':Sequelize[_0xb172('0x6')]},'path':{'type':Sequelize[_0xb172('0x2')],'comment':_0xb172('0x7')},'active':{'type':Sequelize[_0xb172('0x8')],'defaultValue':0x0,'comment':_0xb172('0x9')},'sidebar':{'type':Sequelize[_0xb172('0x3')](_0xb172('0xa'),_0xb172('0xb'),_0xb172('0xc'),_0xb172('0xd')),'defaultValue':'always','comment':'Indicates\x20whether\x20to\x20display\x20the\x20plugin\x20in\x20the\x20sidebar.'},'icon':{'type':Sequelize['STRING']},'adminUrl':{'type':Sequelize[_0xb172('0x2')]},'agentUrl':{'type':Sequelize['STRING']},'scriptName':{'type':Sequelize['STRING']},'scriptPath':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4f27=['../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./plugin.socket','register','sendStatus','status','end','offset','undefined','limit','count','Content-Range','json','apply','reject','save','update','then','get','Plugins','UserProfileResource','error','stack','name','send','index','map','Plugin','fieldName','type','key','query','keys','filters','intersection','model','attributes','fields','hasOwnProperty','order','sort','pick','merge','VIRTUAL','filter','options','where','includeAll','rows','catch','show','params','rawAttributes','length','include','find','join','root','server/files/plugins','format','%s.zip','basename','createWriteStream','zip','warning','code','ENOENT','Error','Error\x20while\x20generating\x20the\x20zip\x20archive','pipe','**/*','node_modules/**/*','attachments/**/*','finalize','existsSync','Sequelize','download','unlinkSync','info','Download\x20completed','upload','file','filename','extname','Plugin\x20upload\x20destination:\x20%s','chmodSync','readdirSync','Invalid\x20plugin\x20structure','isFile','isDirectory','some','manifest.json','Plugin\x20manifest\x20missing','readFileSync','Invalid\x20manifest:\x20name\x20missing','Invalid\x20manifest:\x20type\x20missing','version','Invalid\x20manifest:\x20version\x20not\x20specified','parameters','Invalid\x20manifest:\x20parameters\x20missing','html','views','admin','agent','Invalid\x20manifest:\x20no\x20view\x20specified','scriptName','Invalid\x20manifest:\x20script\x20name\x20missing','Invalid\x20manifest:\x20script\x20path\x20missing','Invalid\x20manifest:\x20invalid\x20type','description','sidebar','always','icon','test','plugins','script','scriptPath','create','role','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','Zip\x20archive\x20removed','Extracted\x20folder\x20removed','delete','destroy','dirname','webhookGet','resolve','\x27PORT\x27\x20parameter\x20not\x20specified','hostname','port','encoding','method','%s%s','headers','content-length','content-type','set','endsWith','statusCode','webhookPost','\x27PATH\x27\x20parameter\x20not\x20specified','http://localhost:','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','path','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','extract-zip','archiver','ioredis','../../config/license/hardware','api'];(function(_0x138adb,_0x193fee){var _0x1b27f2=function(_0x5e97a2){while(--_0x5e97a2){_0x138adb['push'](_0x138adb['shift']());}};_0x1b27f2(++_0x193fee);}(_0x4f27,0x1e9));var _0x74f2=function(_0x2cb413,_0x1b8015){_0x2cb413=_0x2cb413-0x0;var _0x541f48=_0x4f27[_0x2cb413];return _0x541f48;};'use strict';var emlformat=require(_0x74f2('0x0'));var rimraf=require(_0x74f2('0x1'));var zipdir=require(_0x74f2('0x2'));var jsonpatch=require(_0x74f2('0x3'));var rp=require('request-promise');var moment=require(_0x74f2('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x74f2('0x5'));var util=require('util');var path=require(_0x74f2('0x6'));var sox=require('sox');var csv=require(_0x74f2('0x7'));var ejs=require(_0x74f2('0x8'));var fs=require('fs');var fs_extra=require(_0x74f2('0x9'));var _=require(_0x74f2('0xa'));var squel=require('squel');var crypto=require(_0x74f2('0xb'));var jsforce=require(_0x74f2('0xc'));var deskjs=require(_0x74f2('0xd'));var toCsv=require(_0x74f2('0x7'));var querystring=require(_0x74f2('0xe'));var Papa=require(_0x74f2('0xf'));var extract=require(_0x74f2('0x10'));var rimraf=require(_0x74f2('0x1'));var archiver=require(_0x74f2('0x11'));var Redis=require(_0x74f2('0x12'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x74f2('0x13'));var logger=require('../../config/logger')(_0x74f2('0x14'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x74f2('0x15'));var db=require(_0x74f2('0x16'))['db'];config[_0x74f2('0x17')]=_[_0x74f2('0x18')](config[_0x74f2('0x17')],{'host':_0x74f2('0x19'),'port':0x18eb});var socket=require(_0x74f2('0x1a'))(new Redis(config[_0x74f2('0x17')]));require(_0x74f2('0x1b'))[_0x74f2('0x1c')](socket);function respondWithStatusCode(_0x4974e9,_0x3ccf8a){_0x3ccf8a=_0x3ccf8a||0xcc;return function(_0x423498){if(_0x423498){return _0x4974e9[_0x74f2('0x1d')](_0x3ccf8a);}return _0x4974e9[_0x74f2('0x1e')](_0x3ccf8a)[_0x74f2('0x1f')]();};}function respondWithResult(_0x662c33,_0x23702c){_0x23702c=_0x23702c||0xc8;return function(_0x5f2635){if(_0x5f2635){return _0x662c33[_0x74f2('0x1e')](_0x23702c)['json'](_0x5f2635);}};}function respondWithFilteredResult(_0x2f92dd,_0x453a8a){return function(_0x4ffeac){if(_0x4ffeac){var _0x76b224=typeof _0x453a8a[_0x74f2('0x20')]===_0x74f2('0x21')&&typeof _0x453a8a[_0x74f2('0x22')]===_0x74f2('0x21');var _0x556726=_0x4ffeac[_0x74f2('0x23')];var _0x263189=_0x76b224?0x0:_0x453a8a[_0x74f2('0x20')];var _0x1fce8d=_0x76b224?_0x4ffeac[_0x74f2('0x23')]:_0x453a8a['offset']+_0x453a8a[_0x74f2('0x22')];var _0x5f11bf;if(_0x1fce8d>=_0x556726){_0x1fce8d=_0x556726;_0x5f11bf=0xc8;}else{_0x5f11bf=0xce;}_0x2f92dd[_0x74f2('0x1e')](_0x5f11bf);return _0x2f92dd['set'](_0x74f2('0x24'),_0x263189+'-'+_0x1fce8d+'/'+_0x556726)[_0x74f2('0x25')](_0x4ffeac);}return null;};}function patchUpdates(_0x1c6cc2){return function(_0x4ce7c5){try{jsonpatch[_0x74f2('0x26')](_0x4ce7c5,_0x1c6cc2,!![]);}catch(_0x3ef587){return BPromise[_0x74f2('0x27')](_0x3ef587);}return _0x4ce7c5[_0x74f2('0x28')]();};}function saveUpdates(_0x147950,_0x71eea9){return function(_0x5eaa25){if(_0x5eaa25){return _0x5eaa25[_0x74f2('0x29')](_0x147950)[_0x74f2('0x2a')](function(_0x58a46e){return _0x58a46e;});}return null;};}function removeEntity(_0x5e00fd,_0x3d54c1){return function(_0x2f81ba){if(_0x2f81ba){return _0x2f81ba['destroy']()[_0x74f2('0x2a')](function(){var _0x4df30a=_0x2f81ba[_0x74f2('0x2b')]({'plain':!![]});var _0x17433f=_0x74f2('0x2c');return db[_0x74f2('0x2d')]['destroy']({'where':{'type':_0x17433f,'resourceId':_0x4df30a['id']}})['then'](function(){return _0x2f81ba;});})[_0x74f2('0x2a')](function(){_0x5e00fd['status'](0xcc)[_0x74f2('0x1f')]();});}};}function handleEntityNotFound(_0x112ec5,_0x19f3db){return function(_0x282b72){if(!_0x282b72){_0x112ec5[_0x74f2('0x1d')](0x194);}return _0x282b72;};}function handleError(_0x3efc62,_0x398e97){_0x398e97=_0x398e97||0x1f4;return function(_0x12a151){logger[_0x74f2('0x2e')](_0x12a151[_0x74f2('0x2f')]);if(_0x12a151[_0x74f2('0x30')]){delete _0x12a151[_0x74f2('0x30')];}_0x3efc62[_0x74f2('0x1e')](_0x398e97)[_0x74f2('0x31')](_0x12a151);};}exports[_0x74f2('0x32')]=function(_0xc2358b,_0x1d9636){var _0x23ecf2={},_0x4badcf={},_0x219285={'count':0x0,'rows':[]};var _0x525581=_[_0x74f2('0x33')](db[_0x74f2('0x34')]['rawAttributes'],function(_0x18187b){return{'name':_0x18187b[_0x74f2('0x35')],'type':_0x18187b[_0x74f2('0x36')][_0x74f2('0x37')]};});_0x4badcf['model']=_[_0x74f2('0x33')](_0x525581,_0x74f2('0x30'));_0x4badcf[_0x74f2('0x38')]=_[_0x74f2('0x39')](_0xc2358b['query']);_0x4badcf[_0x74f2('0x3a')]=_[_0x74f2('0x3b')](_0x4badcf[_0x74f2('0x3c')],_0x4badcf['query']);_0x23ecf2[_0x74f2('0x3d')]=_[_0x74f2('0x3b')](_0x4badcf[_0x74f2('0x3c')],qs[_0x74f2('0x3e')](_0xc2358b['query']['fields']));_0x23ecf2[_0x74f2('0x3d')]=_0x23ecf2['attributes']['length']?_0x23ecf2[_0x74f2('0x3d')]:_0x4badcf[_0x74f2('0x3c')];if(!_0xc2358b[_0x74f2('0x38')][_0x74f2('0x3f')]('nolimit')){_0x23ecf2[_0x74f2('0x22')]=qs[_0x74f2('0x22')](_0xc2358b[_0x74f2('0x38')][_0x74f2('0x22')]);_0x23ecf2[_0x74f2('0x20')]=qs[_0x74f2('0x20')](_0xc2358b[_0x74f2('0x38')]['offset']);}_0x23ecf2[_0x74f2('0x40')]=qs[_0x74f2('0x41')](_0xc2358b[_0x74f2('0x38')]['sort']);_0x23ecf2['where']=qs['filters'](_[_0x74f2('0x42')](_0xc2358b['query'],_0x4badcf[_0x74f2('0x3a')]),_0x525581);if(_0xc2358b[_0x74f2('0x38')]['filter']){_0x23ecf2['where']=_[_0x74f2('0x43')](_0x23ecf2['where'],{'$or':_[_0x74f2('0x33')](_0x525581,function(_0x401041){if(_0x401041[_0x74f2('0x36')]!==_0x74f2('0x44')){var _0x4dbfb2={};_0x4dbfb2[_0x401041[_0x74f2('0x30')]]={'$like':'%'+_0xc2358b[_0x74f2('0x38')][_0x74f2('0x45')]+'%'};return _0x4dbfb2;}})});}_0x23ecf2=_[_0x74f2('0x43')]({},_0x23ecf2,_0xc2358b[_0x74f2('0x46')]);var _0x22d63d={'where':_0x23ecf2[_0x74f2('0x47')]};return db[_0x74f2('0x34')]['count'](_0x22d63d)[_0x74f2('0x2a')](function(_0x75a28c){_0x219285[_0x74f2('0x23')]=_0x75a28c;if(_0xc2358b[_0x74f2('0x38')][_0x74f2('0x48')]){_0x23ecf2['include']=[{'all':!![]}];}return db['Plugin']['findAll'](_0x23ecf2);})[_0x74f2('0x2a')](function(_0x2ef784){_0x219285[_0x74f2('0x49')]=_0x2ef784;return _0x219285;})[_0x74f2('0x2a')](respondWithFilteredResult(_0x1d9636,_0x23ecf2))[_0x74f2('0x4a')](handleError(_0x1d9636,null));};exports[_0x74f2('0x4b')]=function(_0x2d01e9,_0x51ce07){var _0x25bdc0={'raw':!![],'where':{'id':_0x2d01e9[_0x74f2('0x4c')]['id']}},_0x39f733={};_0x39f733['model']=_[_0x74f2('0x39')](db[_0x74f2('0x34')][_0x74f2('0x4d')]);_0x39f733[_0x74f2('0x38')]=_[_0x74f2('0x39')](_0x2d01e9[_0x74f2('0x38')]);_0x39f733[_0x74f2('0x3a')]=_[_0x74f2('0x3b')](_0x39f733[_0x74f2('0x3c')],_0x39f733[_0x74f2('0x38')]);_0x25bdc0['attributes']=_[_0x74f2('0x3b')](_0x39f733['model'],qs['fields'](_0x2d01e9[_0x74f2('0x38')][_0x74f2('0x3e')]));_0x25bdc0[_0x74f2('0x3d')]=_0x25bdc0[_0x74f2('0x3d')][_0x74f2('0x4e')]?_0x25bdc0[_0x74f2('0x3d')]:_0x39f733[_0x74f2('0x3c')];if(_0x2d01e9[_0x74f2('0x38')][_0x74f2('0x48')]){_0x25bdc0[_0x74f2('0x4f')]=[{'all':!![]}];}_0x25bdc0=_['merge']({},_0x25bdc0,_0x2d01e9[_0x74f2('0x46')]);return db[_0x74f2('0x34')][_0x74f2('0x50')](_0x25bdc0)[_0x74f2('0x2a')](handleEntityNotFound(_0x51ce07,null))[_0x74f2('0x2a')](respondWithResult(_0x51ce07,null))[_0x74f2('0x4a')](handleError(_0x51ce07,null));};exports['download']=function(_0x923b44,_0x1bd27b,_0x2bf966){return db['Plugin'][_0x74f2('0x50')]({'where':{'id':_0x923b44[_0x74f2('0x4c')]['id']},'attributes':[_0x74f2('0x30'),_0x74f2('0x6')],'raw':!![]})[_0x74f2('0x2a')](handleEntityNotFound(_0x1bd27b,null))['then'](function(_0x231801){if(_0x231801){var _0x1c71d1=path[_0x74f2('0x51')](config[_0x74f2('0x52')],_0x74f2('0x53'),util[_0x74f2('0x54')](_0x74f2('0x55'),path[_0x74f2('0x56')](_0x231801['path'])));var _0x373727=fs[_0x74f2('0x57')](_0x1c71d1);var _0x479fd9=archiver(_0x74f2('0x58'),{'zlib':{'level':0x9}});_0x479fd9['on'](_0x74f2('0x59'),function(_0x2ffd8e){if(_0x2ffd8e[_0x74f2('0x5a')]===_0x74f2('0x5b')){logger[_0x74f2('0x2e')](_0x2ffd8e);}else{throw new db['Sequelize'][(_0x74f2('0x5c'))](_0x74f2('0x5d'));}});_0x479fd9['on']('error',function(_0x139181){throw new db['Sequelize'][(_0x74f2('0x5c'))](_0x74f2('0x5d'));});_0x479fd9[_0x74f2('0x5e')](_0x373727);_0x479fd9['glob'](_0x74f2('0x5f'),{'cwd':path['join'](config[_0x74f2('0x52')],_0x74f2('0x53'),path['dirname'](_0x231801[_0x74f2('0x6')])),'ignore':[path[_0x74f2('0x51')](path[_0x74f2('0x56')](_0x231801['path']),_0x74f2('0x60')),path['join'](path[_0x74f2('0x56')](_0x231801[_0x74f2('0x6')]),_0x74f2('0x61'))],'nodir':!![]})[_0x74f2('0x62')]();_0x373727['on']('close',function(){if(!fs[_0x74f2('0x63')](_0x1c71d1)){throw new db[(_0x74f2('0x64'))][(_0x74f2('0x5c'))]('Plugin\x20not\x20found');}return _0x1bd27b[_0x74f2('0x65')](_0x1c71d1,util['format'](_0x74f2('0x55'),path['basename'](_0x231801[_0x74f2('0x6')])),function(_0xa22e6){if(_0xa22e6){throw new db['Sequelize'][(_0x74f2('0x5c'))]('Error\x20while\x20downloading\x20the\x20plugin');}fs[_0x74f2('0x66')](_0x1c71d1);logger[_0x74f2('0x67')](_0x74f2('0x68'));logger[_0x74f2('0x67')]('Temporary\x20file\x20removed');});});}return null;})[_0x74f2('0x4a')](handleError(_0x1bd27b,null));};exports[_0x74f2('0x69')]=function(_0x2590e7,_0x116939,_0xbcaae1){var _0x4085a6=path[_0x74f2('0x56')](_0x2590e7[_0x74f2('0x6a')][_0x74f2('0x6b')],path[_0x74f2('0x6c')](_0x2590e7['file'][_0x74f2('0x6b')]));var _0x2824a8=path[_0x74f2('0x51')](config[_0x74f2('0x52')],_0x74f2('0x53'),_0x2590e7[_0x74f2('0x6a')][_0x74f2('0x6b')]);var _0x3d8e1c=path[_0x74f2('0x51')](config[_0x74f2('0x52')],_0x74f2('0x53'),_0x4085a6);logger[_0x74f2('0x67')]('Plugin\x20upload\x20filepath:\x20%s',_0x2824a8);logger['info'](_0x74f2('0x6d'),_0x3d8e1c);try{fs[_0x74f2('0x6e')](_0x2824a8,parseInt('0777',0x8));extract(_0x2824a8,{'dir':_0x3d8e1c},function(_0xc02bf1){if(_0xc02bf1){logger['error'](_0xc02bf1);handleError(_0xc02bf1,!![]);};var _0x2b76ba=fs[_0x74f2('0x6f')](_0x3d8e1c);if(_0x2b76ba['length']>0x1){removeReferences(_0x2824a8,_0x3d8e1c);logger[_0x74f2('0x2e')](_0x74f2('0x70'));return _0xbcaae1(new Error('Invalid\x20plugin\x20structure'));}var _0x229a56=fs['lstatSync'](path['join'](_0x3d8e1c,_0x2b76ba[0x0]));if(_0x229a56[_0x74f2('0x71')]()){removeReferences(_0x2824a8,_0x3d8e1c);logger[_0x74f2('0x2e')](_0x74f2('0x70'));return _0xbcaae1(new Error(_0x74f2('0x70')));}if(_0x229a56[_0x74f2('0x72')]()){var _0x47583a=fs['readdirSync'](path['join'](_0x3d8e1c,_0x2b76ba[0x0]));if(_0x47583a[_0x74f2('0x4e')]===0x0){removeReferences(_0x2824a8,_0x3d8e1c);logger[_0x74f2('0x2e')]('Invalid\x20plugin\x20structure');return _0xbcaae1(new Error('Invalid\x20plugin\x20structure'));}var _0x4a7e23=_0x47583a[_0x74f2('0x73')](function(_0x29c46f){return _0x29c46f===_0x74f2('0x74');});if(!_0x4a7e23){return _0xbcaae1(new Error(_0x74f2('0x75')));}var _0xe16f07=fs[_0x74f2('0x76')](path['join'](_0x3d8e1c,_0x2b76ba[0x0],_0x74f2('0x74')));var _0x38f944=JSON['parse'](_0xe16f07);if(_0x74f2('0x21')==typeof _0x38f944[_0x74f2('0x30')]){return _0xbcaae1(new Error(_0x74f2('0x77')));}if(_0x74f2('0x21')==typeof _0x38f944[_0x74f2('0x36')]){return _0xbcaae1(new Error(_0x74f2('0x78')));}if(_0x74f2('0x21')==typeof _0x38f944[_0x74f2('0x79')]){return _0xbcaae1(new Error(_0x74f2('0x7a')));}if(_0x74f2('0x21')==typeof _0x38f944[_0x74f2('0x7b')]){return _0xbcaae1(new Error(_0x74f2('0x7c')));}if(_0x38f944[_0x74f2('0x36')]===_0x74f2('0x7d')){if(_0x74f2('0x21')==typeof _0x38f944['parameters']['views']){return _0xbcaae1(new Error('Invalid\x20manifest:\x20views\x20missing'));}if('undefined'==typeof _0x38f944[_0x74f2('0x7b')][_0x74f2('0x7e')][_0x74f2('0x7f')]&&_0x74f2('0x21')==typeof _0x38f944[_0x74f2('0x7b')]['views'][_0x74f2('0x80')]){return _0xbcaae1(new Error(_0x74f2('0x81')));}}else if(_0x38f944[_0x74f2('0x36')]==='script'){if(_0x74f2('0x21')==typeof _0x38f944['parameters'][_0x74f2('0x82')]){return _0xbcaae1(new Error(_0x74f2('0x83')));}if(_0x74f2('0x21')==typeof _0x38f944['parameters']['scriptPath']){return _0xbcaae1(new Error(_0x74f2('0x84')));}}else{return _0xbcaae1(new Error(_0x74f2('0x85')));}var _0x3171bc=_0x38f944[_0x74f2('0x30')];var _0x333525=_0x38f944[_0x74f2('0x86')];var _0x577965=_0x38f944['type'];var _0x2eefd0=_0x38f944[_0x74f2('0x87')]?_0x38f944[_0x74f2('0x87')]:_0x74f2('0x88');var _0x18499f=_0x38f944[_0x74f2('0x89')]?_0x38f944[_0x74f2('0x89')]:'icon-apps';var _0xc6524e='';var _0x4bdd6e='';var _0x197657='';var _0x44c705='';var _0x3055bd=_0x38f944[_0x74f2('0x79')];if(_0x577965===_0x74f2('0x7d')){if('undefined'!=typeof _0x38f944[_0x74f2('0x7b')][_0x74f2('0x7e')][_0x74f2('0x7f')]){var _0x48f492=_0x38f944['parameters']['views']['admin'];if(!/^(f|ht)tps?:\/\//i[_0x74f2('0x8a')](_0x48f492)){_0xc6524e=path[_0x74f2('0x51')](_0x74f2('0x8b'),_0x4085a6,_0x2b76ba[0x0],_0x48f492);}else{_0xc6524e=_0x48f492;}}else{logger['info']('Warning:\x20admin\x20view\x20not\x20specified');}if(_0x74f2('0x21')!=typeof _0x38f944[_0x74f2('0x7b')][_0x74f2('0x7e')][_0x74f2('0x80')]){var _0x528194=_0x38f944[_0x74f2('0x7b')][_0x74f2('0x7e')][_0x74f2('0x80')];if(!/^(f|ht)tps?:\/\//i['test'](_0x528194)){_0x4bdd6e=path[_0x74f2('0x51')](_0x74f2('0x8b'),_0x4085a6,_0x2b76ba[0x0],_0x528194);}else{_0x4bdd6e=_0x528194;}}else{logger[_0x74f2('0x67')]('Warning:\x20agent\x20view\x20not\x20specified');}}else if(_0x577965===_0x74f2('0x8c')){_0x197657=_0x38f944[_0x74f2('0x7b')][_0x74f2('0x82')];_0x44c705=_0x38f944[_0x74f2('0x7b')][_0x74f2('0x8d')];if(_0x74f2('0x21')!=typeof _0x38f944['parameters'][_0x74f2('0x7e')]){if(_0x74f2('0x21')!=typeof _0x38f944['parameters'][_0x74f2('0x7e')][_0x74f2('0x7f')]){var _0x48f492=_0x38f944[_0x74f2('0x7b')][_0x74f2('0x7e')]['admin'];if(!/^(f|ht)tps?:\/\//i[_0x74f2('0x8a')](_0x48f492)){_0xc6524e=path[_0x74f2('0x51')](_0x74f2('0x8b'),_0x4085a6,_0x2b76ba[0x0],_0x48f492);}else{_0xc6524e=_0x48f492;}}if(_0x74f2('0x21')!=typeof _0x38f944[_0x74f2('0x7b')][_0x74f2('0x7e')]['agent']){var _0x528194=_0x38f944[_0x74f2('0x7b')][_0x74f2('0x7e')]['agent'];if(!/^(f|ht)tps?:\/\//i['test'](_0x528194)){_0x4bdd6e=path[_0x74f2('0x51')](_0x74f2('0x8b'),_0x4085a6,_0x2b76ba[0x0],_0x528194);}else{_0x4bdd6e=_0x528194;}}}}var _0x4546d1={'name':_0x3171bc,'description':_0x333525,'path':path[_0x74f2('0x51')](_0x4085a6,_0x2b76ba[0x0]),'type':_0x577965,'sidebar':_0x2eefd0,'icon':_0x18499f,'adminUrl':_0xc6524e,'agentUrl':_0x4bdd6e,'scriptName':_0x197657,'scriptPath':_0x44c705,'version':_0x3055bd};removeReferences(_0x2824a8,null);return db[_0x74f2('0x34')][_0x74f2('0x8e')](_0x4546d1)[_0x74f2('0x2a')](function(_0x1ccc40){var _0x2fb0b6={'role':_0x2590e7['body'][_0x74f2('0x8f')],'userProfileId':_0x2590e7[_0x74f2('0x90')]['userProfileId']};if(!_0x2fb0b6)throw new Error(_0x74f2('0x91'));if(_0x2fb0b6[_0x74f2('0x8f')]==='user'){var _0x4070b3=_0x1ccc40['get']({'plain':!![]});return db['UserProfileSection'][_0x74f2('0x50')]({'where':{'name':_0x74f2('0x2c'),'userProfileId':_0x2fb0b6['userProfileId']},'raw':!![]})[_0x74f2('0x2a')](function(_0x224bcc){if(_0x224bcc&&_0x224bcc[_0x74f2('0x92')]===0x0){return db[_0x74f2('0x2d')][_0x74f2('0x8e')]({'name':_0x4070b3[_0x74f2('0x30')],'resourceId':_0x4070b3['id'],'type':_0x224bcc['name'],'sectionId':_0x224bcc['id']},{})[_0x74f2('0x2a')](function(){return _0x1ccc40;});}else{return _0x1ccc40;}})[_0x74f2('0x4a')](function(_0x5e6a6d){logger[_0x74f2('0x2e')](_0x74f2('0x93'),_0x5e6a6d);throw _0x5e6a6d;});}return _0x1ccc40;})[_0x74f2('0x2a')](respondWithResult(_0x116939,null))[_0x74f2('0x4a')](handleError(_0x116939,null));}});}catch(_0x4b51c9){_0x116939['status'](0x1f4)[_0x74f2('0x31')](_0x4b51c9);}};function removeReferences(_0x42eab1,_0x273d83){try{if(_0x42eab1){fs['unlinkSync'](_0x42eab1);logger[_0x74f2('0x67')](_0x74f2('0x94'));}if(_0x273d83){rimraf(_0x273d83,function(){});logger[_0x74f2('0x67')](_0x74f2('0x95'));}}catch(_0x14c5a5){logger[_0x74f2('0x2e')](_0x14c5a5);}}exports[_0x74f2('0x29')]=function(_0x56886a,_0x3e0ca0,_0x3aac8e){return db[_0x74f2('0x34')][_0x74f2('0x50')]({'where':{'id':_0x56886a[_0x74f2('0x4c')]['id']}})['then'](handleEntityNotFound(_0x3e0ca0,null))[_0x74f2('0x2a')](saveUpdates(_0x56886a[_0x74f2('0x90')],null))[_0x74f2('0x2a')](respondWithResult(_0x3e0ca0,null))[_0x74f2('0x4a')](handleError(_0x3e0ca0,null));};exports[_0x74f2('0x96')]=function(_0x276080,_0x1f276b,_0x40885d){return db[_0x74f2('0x34')][_0x74f2('0x50')]({'where':{'id':_0x276080[_0x74f2('0x4c')]['id']}})[_0x74f2('0x2a')](function(_0x5157da){if(_0x5157da){return _0x5157da[_0x74f2('0x97')]();}})[_0x74f2('0x2a')](function(_0x364a5f){rimraf(path[_0x74f2('0x51')](config[_0x74f2('0x52')],_0x74f2('0x53'),path[_0x74f2('0x98')](_0x364a5f[_0x74f2('0x6')])),function(){});return _0x364a5f;})[_0x74f2('0x2a')](handleEntityNotFound(_0x1f276b,null))['then'](respondWithStatusCode(_0x1f276b,null))['catch'](handleError(_0x1f276b,null));};exports[_0x74f2('0x99')]=function(_0x8d960e,_0x50c798,_0x2b0939){return BPromise[_0x74f2('0x9a')]()[_0x74f2('0x2a')](function(){if(!_0x8d960e[_0x74f2('0x38')][_0x74f2('0x6')]){throw new Error('\x27PATH\x27\x20parameter\x20not\x20specified');}if(!_0x8d960e[_0x74f2('0x38')]['port']){throw new Error(_0x74f2('0x9b'));}var _0x2b12ef=_0x8d960e['query'][_0x74f2('0x9c')]?_0x8d960e[_0x74f2('0x38')][_0x74f2('0x9c')]+':'+_0x8d960e['query'][_0x74f2('0x9d')]:'http://localhost:'+_0x8d960e[_0x74f2('0x38')][_0x74f2('0x9d')];var _0x1cffeb=_0x8d960e['query'][_0x74f2('0x25')]?_0x8d960e[_0x74f2('0x38')]['json']:!![];var _0x2d7e65=_0x8d960e[_0x74f2('0x38')][_0x74f2('0x9e')]?_0x8d960e[_0x74f2('0x38')][_0x74f2('0x9e')]:null;var _0x343dd0={'method':_0x8d960e[_0x74f2('0x9f')],'uri':util['format'](_0x74f2('0xa0'),_0x2b12ef,_0x8d960e[_0x74f2('0x38')]['path']),'json':_0x1cffeb,'resolveWithFullResponse':!![],'encoding':_0x2d7e65,'qs':_0x8d960e[_0x74f2('0x38')]};if(_0x8d960e[_0x74f2('0xa1')]){_0x343dd0[_0x74f2('0xa1')]=_0x8d960e[_0x74f2('0xa1')];if(_0x343dd0['headers'][_0x74f2('0xa2')]){delete _0x343dd0[_0x74f2('0xa1')][_0x74f2('0xa2')];}}if(_0x343dd0[_0x74f2('0xa1')][_0x74f2('0xa3')]){delete _0x343dd0[_0x74f2('0xa1')][_0x74f2('0xa3')];}return rp(_0x343dd0);})[_0x74f2('0x2a')](function(_0x140b33){if(_0x140b33){_0x50c798[_0x74f2('0xa4')](_0x140b33[_0x74f2('0xa1')]);logger[_0x74f2('0x67')](_0x140b33[_0x74f2('0x90')]);if(_[_0x74f2('0xa5')](_0x8d960e[_0x74f2('0x38')]['path'],_0x74f2('0x65'))&&_0x140b33['statusCode']==0x1f4){return _0x50c798[_0x74f2('0x1d')](_0x140b33[_0x74f2('0xa6')]);}else{return _0x50c798[_0x74f2('0x1e')](_0x140b33['statusCode'])[_0x74f2('0x31')](_0x140b33[_0x74f2('0x90')]);}}else{return _0x50c798[_0x74f2('0x1d')](0xc8);}})[_0x74f2('0x4a')](handleError(_0x50c798,null));};exports[_0x74f2('0xa7')]=function(_0x412ba6,_0x21dc15,_0x5af193){return BPromise[_0x74f2('0x9a')]()['then'](function(){if(!_0x412ba6[_0x74f2('0x38')][_0x74f2('0x6')]){throw new Error(_0x74f2('0xa8'));}if(!_0x412ba6[_0x74f2('0x38')]['port']){throw new Error(_0x74f2('0x9b'));}var _0x40000d=_0x412ba6['query'][_0x74f2('0x9c')]?_0x412ba6[_0x74f2('0x38')]['hostname']+':'+_0x412ba6['query'][_0x74f2('0x9d')]:_0x74f2('0xa9')+_0x412ba6[_0x74f2('0x38')][_0x74f2('0x9d')];var _0x13cf9e=_0x412ba6[_0x74f2('0x38')][_0x74f2('0x25')]?_0x412ba6[_0x74f2('0x38')][_0x74f2('0x25')]:!![];var _0x49bd5d=_0x412ba6[_0x74f2('0x38')][_0x74f2('0x9e')]?_0x412ba6[_0x74f2('0x38')]['encoding']:null;var _0x571d8d={'method':_0x412ba6['method'],'uri':util[_0x74f2('0x54')](_0x74f2('0xa0'),_0x40000d,_0x412ba6[_0x74f2('0x38')][_0x74f2('0x6')]),'json':_0x13cf9e,'resolveWithFullResponse':!![],'encoding':_0x49bd5d,'body':_0x412ba6[_0x74f2('0x90')]};if(_0x412ba6[_0x74f2('0xa1')]){_0x571d8d[_0x74f2('0xa1')]=_0x412ba6['headers'];if(_0x571d8d[_0x74f2('0xa1')][_0x74f2('0xa2')]){delete _0x571d8d['headers'][_0x74f2('0xa2')];}}if(_0x571d8d['headers']['content-type']){delete _0x571d8d[_0x74f2('0xa1')][_0x74f2('0xa3')];}return rp(_0x571d8d);})[_0x74f2('0x2a')](function(_0x1f0b75){if(_0x1f0b75){_0x21dc15[_0x74f2('0xa4')](_0x1f0b75[_0x74f2('0xa1')]);logger[_0x74f2('0x67')](_0x1f0b75[_0x74f2('0x90')]);return _0x21dc15['status'](_0x1f0b75[_0x74f2('0xa6')])[_0x74f2('0x31')](_0x1f0b75['body']);}else{return _0x21dc15[_0x74f2('0x1d')](0xc8);}})[_0x74f2('0x4a')](handleError(_0x21dc15,null));};
\ No newline at end of file
+var _0xc1fc=['Invalid\x20manifest:\x20type\x20missing','version','parameters','Invalid\x20manifest:\x20parameters\x20missing','html','views','Invalid\x20manifest:\x20views\x20missing','admin','agent','Invalid\x20manifest:\x20no\x20view\x20specified','script','scriptName','Invalid\x20manifest:\x20script\x20name\x20missing','scriptPath','Invalid\x20manifest:\x20script\x20path\x20missing','description','sidebar','always','icon','plugins','Warning:\x20admin\x20view\x20not\x20specified','test','Warning:\x20agent\x20view\x20not\x20specified','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','get','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','send','Zip\x20archive\x20removed','webhookGet','resolve','\x27PATH\x27\x20parameter\x20not\x20specified','port','\x27PORT\x27\x20parameter\x20not\x20specified','hostname','http://localhost:','encoding','headers','content-length','content-type','set','endsWith','statusCode','method','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','archiver','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','redis','./plugin.socket','sendStatus','status','json','offset','undefined','limit','count','Content-Range','apply','reject','update','then','destroy','Plugins','UserProfileResource','error','name','index','map','fieldName','type','key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','VIRTUAL','options','Plugin','include','findAll','catch','show','rawAttributes','includeAll','download','find','params','join','format','%s.zip','basename','createWriteStream','zip','warning','code','ENOENT','Sequelize','Error','Error\x20while\x20generating\x20the\x20zip\x20archive','pipe','root','dirname','attachments/**/*','finalize','existsSync','Plugin\x20not\x20found','Error\x20while\x20downloading\x20the\x20plugin','unlinkSync','info','Download\x20completed','upload','file','filename','extname','server/files/plugins','Plugin\x20upload\x20filepath:\x20%s','Plugin\x20upload\x20destination:\x20%s','0777','readdirSync','Invalid\x20plugin\x20structure','lstatSync','isFile','Plugin\x20manifest\x20missing','manifest.json','Invalid\x20manifest:\x20name\x20missing'];(function(_0x47a7d0,_0x4e182d){var _0xb9bd08=function(_0x588ee2){while(--_0x588ee2){_0x47a7d0['push'](_0x47a7d0['shift']());}};_0xb9bd08(++_0x4e182d);}(_0xc1fc,0x179));var _0xcc1f=function(_0x17c0bd,_0x38950d){_0x17c0bd=_0x17c0bd-0x0;var _0x11c5a4=_0xc1fc[_0x17c0bd];return _0x11c5a4;};'use strict';var emlformat=require(_0xcc1f('0x0'));var rimraf=require(_0xcc1f('0x1'));var zipdir=require(_0xcc1f('0x2'));var jsonpatch=require(_0xcc1f('0x3'));var rp=require(_0xcc1f('0x4'));var moment=require('moment');var BPromise=require(_0xcc1f('0x5'));var Mustache=require(_0xcc1f('0x6'));var util=require(_0xcc1f('0x7'));var path=require(_0xcc1f('0x8'));var sox=require('sox');var csv=require(_0xcc1f('0x9'));var ejs=require(_0xcc1f('0xa'));var fs=require('fs');var fs_extra=require(_0xcc1f('0xb'));var _=require(_0xcc1f('0xc'));var squel=require(_0xcc1f('0xd'));var crypto=require(_0xcc1f('0xe'));var jsforce=require(_0xcc1f('0xf'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xcc1f('0x10'));var Papa=require(_0xcc1f('0x11'));var extract=require('extract-zip');var rimraf=require('rimraf');var archiver=require(_0xcc1f('0x12'));var Redis=require(_0xcc1f('0x13'));var authService=require('../../components/auth/service');var qs=require(_0xcc1f('0x14'));var as=require(_0xcc1f('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xcc1f('0x16'))(_0xcc1f('0x17'));var utils=require(_0xcc1f('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0xcc1f('0x19'));var db=require(_0xcc1f('0x1a'))['db'];config['redis']=_['defaults'](config['redis'],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xcc1f('0x1b')]));require(_0xcc1f('0x1c'))['register'](socket);function respondWithStatusCode(_0x201847,_0x587ebd){_0x587ebd=_0x587ebd||0xcc;return function(_0x14d9a9){if(_0x14d9a9){return _0x201847[_0xcc1f('0x1d')](_0x587ebd);}return _0x201847[_0xcc1f('0x1e')](_0x587ebd)['end']();};}function respondWithResult(_0x3fe064,_0x350b86){_0x350b86=_0x350b86||0xc8;return function(_0x5b1493){if(_0x5b1493){return _0x3fe064[_0xcc1f('0x1e')](_0x350b86)[_0xcc1f('0x1f')](_0x5b1493);}};}function respondWithFilteredResult(_0x439a91,_0x390449){return function(_0xe5f043){if(_0xe5f043){var _0x45518e=typeof _0x390449[_0xcc1f('0x20')]===_0xcc1f('0x21')&&typeof _0x390449[_0xcc1f('0x22')]===_0xcc1f('0x21');var _0x10adcc=_0xe5f043['count'];var _0x135eb4=_0x45518e?0x0:_0x390449[_0xcc1f('0x20')];var _0x383fa4=_0x45518e?_0xe5f043[_0xcc1f('0x23')]:_0x390449['offset']+_0x390449['limit'];var _0x32df1e;if(_0x383fa4>=_0x10adcc){_0x383fa4=_0x10adcc;_0x32df1e=0xc8;}else{_0x32df1e=0xce;}_0x439a91[_0xcc1f('0x1e')](_0x32df1e);return _0x439a91['set'](_0xcc1f('0x24'),_0x135eb4+'-'+_0x383fa4+'/'+_0x10adcc)[_0xcc1f('0x1f')](_0xe5f043);}return null;};}function patchUpdates(_0x26d15b){return function(_0x5d2525){try{jsonpatch[_0xcc1f('0x25')](_0x5d2525,_0x26d15b,!![]);}catch(_0x39ec32){return BPromise[_0xcc1f('0x26')](_0x39ec32);}return _0x5d2525['save']();};}function saveUpdates(_0x3ffc3f,_0x41d892){return function(_0x17dfe3){if(_0x17dfe3){return _0x17dfe3[_0xcc1f('0x27')](_0x3ffc3f)[_0xcc1f('0x28')](function(_0xddb8d){return _0xddb8d;});}return null;};}function removeEntity(_0x581042,_0x1b5294){return function(_0x39a0bd){if(_0x39a0bd){return _0x39a0bd[_0xcc1f('0x29')]()[_0xcc1f('0x28')](function(){var _0x51dea0=_0x39a0bd['get']({'plain':!![]});var _0x3c5e99=_0xcc1f('0x2a');return db[_0xcc1f('0x2b')][_0xcc1f('0x29')]({'where':{'type':_0x3c5e99,'resourceId':_0x51dea0['id']}})[_0xcc1f('0x28')](function(){return _0x39a0bd;});})['then'](function(){_0x581042[_0xcc1f('0x1e')](0xcc)['end']();});}};}function handleEntityNotFound(_0x20431f,_0x4851d1){return function(_0x570433){if(!_0x570433){_0x20431f[_0xcc1f('0x1d')](0x194);}return _0x570433;};}function handleError(_0x2d2598,_0x7fd9e0){_0x7fd9e0=_0x7fd9e0||0x1f4;return function(_0x3d7921){logger[_0xcc1f('0x2c')](_0x3d7921['stack']);if(_0x3d7921[_0xcc1f('0x2d')]){delete _0x3d7921[_0xcc1f('0x2d')];}_0x2d2598['status'](_0x7fd9e0)['send'](_0x3d7921);};}exports[_0xcc1f('0x2e')]=function(_0x1fac7c,_0x833b90){var _0x49547a={},_0x208d33={},_0x178faf={'count':0x0,'rows':[]};var _0x45b3c0=_[_0xcc1f('0x2f')](db['Plugin']['rawAttributes'],function(_0x2c1b96){return{'name':_0x2c1b96[_0xcc1f('0x30')],'type':_0x2c1b96[_0xcc1f('0x31')][_0xcc1f('0x32')]};});_0x208d33[_0xcc1f('0x33')]=_[_0xcc1f('0x2f')](_0x45b3c0,_0xcc1f('0x2d'));_0x208d33[_0xcc1f('0x34')]=_['keys'](_0x1fac7c[_0xcc1f('0x34')]);_0x208d33[_0xcc1f('0x35')]=_[_0xcc1f('0x36')](_0x208d33[_0xcc1f('0x33')],_0x208d33[_0xcc1f('0x34')]);_0x49547a[_0xcc1f('0x37')]=_[_0xcc1f('0x36')](_0x208d33['model'],qs[_0xcc1f('0x38')](_0x1fac7c['query'][_0xcc1f('0x38')]));_0x49547a[_0xcc1f('0x37')]=_0x49547a[_0xcc1f('0x37')][_0xcc1f('0x39')]?_0x49547a[_0xcc1f('0x37')]:_0x208d33[_0xcc1f('0x33')];if(!_0x1fac7c[_0xcc1f('0x34')][_0xcc1f('0x3a')]('nolimit')){_0x49547a[_0xcc1f('0x22')]=qs['limit'](_0x1fac7c[_0xcc1f('0x34')]['limit']);_0x49547a[_0xcc1f('0x20')]=qs[_0xcc1f('0x20')](_0x1fac7c[_0xcc1f('0x34')]['offset']);}_0x49547a[_0xcc1f('0x3b')]=qs['sort'](_0x1fac7c[_0xcc1f('0x34')][_0xcc1f('0x3c')]);_0x49547a[_0xcc1f('0x3d')]=qs[_0xcc1f('0x35')](_[_0xcc1f('0x3e')](_0x1fac7c[_0xcc1f('0x34')],_0x208d33['filters']),_0x45b3c0);if(_0x1fac7c[_0xcc1f('0x34')][_0xcc1f('0x3f')]){_0x49547a['where']=_[_0xcc1f('0x40')](_0x49547a[_0xcc1f('0x3d')],{'$or':_['map'](_0x45b3c0,function(_0x4b745d){if(_0x4b745d[_0xcc1f('0x31')]!==_0xcc1f('0x41')){var _0x5936b5={};_0x5936b5[_0x4b745d[_0xcc1f('0x2d')]]={'$like':'%'+_0x1fac7c[_0xcc1f('0x34')]['filter']+'%'};return _0x5936b5;}})});}_0x49547a=_['merge']({},_0x49547a,_0x1fac7c[_0xcc1f('0x42')]);var _0x945b25={'where':_0x49547a[_0xcc1f('0x3d')]};return db[_0xcc1f('0x43')][_0xcc1f('0x23')](_0x945b25)[_0xcc1f('0x28')](function(_0x44b7e2){_0x178faf['count']=_0x44b7e2;if(_0x1fac7c[_0xcc1f('0x34')]['includeAll']){_0x49547a[_0xcc1f('0x44')]=[{'all':!![]}];}return db['Plugin'][_0xcc1f('0x45')](_0x49547a);})['then'](function(_0x1d495a){_0x178faf['rows']=_0x1d495a;return _0x178faf;})[_0xcc1f('0x28')](respondWithFilteredResult(_0x833b90,_0x49547a))[_0xcc1f('0x46')](handleError(_0x833b90,null));};exports[_0xcc1f('0x47')]=function(_0x3211a9,_0x52e0c9){var _0x2d5778={'raw':!![],'where':{'id':_0x3211a9['params']['id']}},_0x4f98fa={};_0x4f98fa['model']=_['keys'](db['Plugin'][_0xcc1f('0x48')]);_0x4f98fa['query']=_['keys'](_0x3211a9[_0xcc1f('0x34')]);_0x4f98fa['filters']=_[_0xcc1f('0x36')](_0x4f98fa[_0xcc1f('0x33')],_0x4f98fa['query']);_0x2d5778['attributes']=_[_0xcc1f('0x36')](_0x4f98fa[_0xcc1f('0x33')],qs['fields'](_0x3211a9[_0xcc1f('0x34')]['fields']));_0x2d5778[_0xcc1f('0x37')]=_0x2d5778['attributes']['length']?_0x2d5778[_0xcc1f('0x37')]:_0x4f98fa[_0xcc1f('0x33')];if(_0x3211a9[_0xcc1f('0x34')][_0xcc1f('0x49')]){_0x2d5778[_0xcc1f('0x44')]=[{'all':!![]}];}_0x2d5778=_[_0xcc1f('0x40')]({},_0x2d5778,_0x3211a9['options']);return db['Plugin']['find'](_0x2d5778)[_0xcc1f('0x28')](handleEntityNotFound(_0x52e0c9,null))[_0xcc1f('0x28')](respondWithResult(_0x52e0c9,null))['catch'](handleError(_0x52e0c9,null));};exports[_0xcc1f('0x4a')]=function(_0x400bbe,_0x494ad2,_0x5a9284){return db[_0xcc1f('0x43')][_0xcc1f('0x4b')]({'where':{'id':_0x400bbe[_0xcc1f('0x4c')]['id']},'attributes':[_0xcc1f('0x2d'),_0xcc1f('0x8')],'raw':!![]})[_0xcc1f('0x28')](handleEntityNotFound(_0x494ad2,null))['then'](function(_0x150050){if(_0x150050){var _0xc255ee=path[_0xcc1f('0x4d')](config['root'],'server/files/plugins',util[_0xcc1f('0x4e')](_0xcc1f('0x4f'),path[_0xcc1f('0x50')](_0x150050[_0xcc1f('0x8')])));var _0x46593d=fs[_0xcc1f('0x51')](_0xc255ee);var _0x15880b=archiver(_0xcc1f('0x52'),{'zlib':{'level':0x9}});_0x15880b['on'](_0xcc1f('0x53'),function(_0x47a6ca){if(_0x47a6ca[_0xcc1f('0x54')]===_0xcc1f('0x55')){logger[_0xcc1f('0x2c')](_0x47a6ca);}else{throw new db[(_0xcc1f('0x56'))][(_0xcc1f('0x57'))](_0xcc1f('0x58'));}});_0x15880b['on'](_0xcc1f('0x2c'),function(_0x59e77e){throw new db['Sequelize'][(_0xcc1f('0x57'))](_0xcc1f('0x58'));});_0x15880b[_0xcc1f('0x59')](_0x46593d);_0x15880b['glob']('**/*',{'cwd':path[_0xcc1f('0x4d')](config[_0xcc1f('0x5a')],'server/files/plugins',path[_0xcc1f('0x5b')](_0x150050[_0xcc1f('0x8')])),'ignore':[path[_0xcc1f('0x4d')](path['basename'](_0x150050[_0xcc1f('0x8')]),'node_modules/**/*'),path[_0xcc1f('0x4d')](path[_0xcc1f('0x50')](_0x150050[_0xcc1f('0x8')]),_0xcc1f('0x5c'))],'nodir':!![]})[_0xcc1f('0x5d')]();_0x46593d['on']('close',function(){if(!fs[_0xcc1f('0x5e')](_0xc255ee)){throw new db['Sequelize'][(_0xcc1f('0x57'))](_0xcc1f('0x5f'));}return _0x494ad2[_0xcc1f('0x4a')](_0xc255ee,util[_0xcc1f('0x4e')]('%s.zip',path[_0xcc1f('0x50')](_0x150050[_0xcc1f('0x8')])),function(_0x238cb7){if(_0x238cb7){throw new db[(_0xcc1f('0x56'))]['Error'](_0xcc1f('0x60'));}fs[_0xcc1f('0x61')](_0xc255ee);logger[_0xcc1f('0x62')](_0xcc1f('0x63'));logger[_0xcc1f('0x62')]('Temporary\x20file\x20removed');});});}return null;})[_0xcc1f('0x46')](handleError(_0x494ad2,null));};exports[_0xcc1f('0x64')]=function(_0x217db2,_0x854049,_0x441231){var _0x1f7e04=path[_0xcc1f('0x50')](_0x217db2[_0xcc1f('0x65')][_0xcc1f('0x66')],path[_0xcc1f('0x67')](_0x217db2[_0xcc1f('0x65')]['filename']));var _0x1f6108=path[_0xcc1f('0x4d')](config['root'],_0xcc1f('0x68'),_0x217db2[_0xcc1f('0x65')][_0xcc1f('0x66')]);var _0x1d9a0a=path[_0xcc1f('0x4d')](config[_0xcc1f('0x5a')],_0xcc1f('0x68'),_0x1f7e04);logger[_0xcc1f('0x62')](_0xcc1f('0x69'),_0x1f6108);logger[_0xcc1f('0x62')](_0xcc1f('0x6a'),_0x1d9a0a);try{fs['chmodSync'](_0x1f6108,parseInt(_0xcc1f('0x6b'),0x8));extract(_0x1f6108,{'dir':_0x1d9a0a},function(_0x5c3d56){if(_0x5c3d56){logger['error'](_0x5c3d56);handleError(_0x5c3d56,!![]);};var _0x3eab3e=fs[_0xcc1f('0x6c')](_0x1d9a0a);if(_0x3eab3e[_0xcc1f('0x39')]>0x1){removeReferences(_0x1f6108,_0x1d9a0a);logger['error'](_0xcc1f('0x6d'));return _0x441231(new Error(_0xcc1f('0x6d')));}var _0x528278=fs[_0xcc1f('0x6e')](path[_0xcc1f('0x4d')](_0x1d9a0a,_0x3eab3e[0x0]));if(_0x528278[_0xcc1f('0x6f')]()){removeReferences(_0x1f6108,_0x1d9a0a);logger['error'](_0xcc1f('0x6d'));return _0x441231(new Error(_0xcc1f('0x6d')));}if(_0x528278['isDirectory']()){var _0x174d9f=fs['readdirSync'](path[_0xcc1f('0x4d')](_0x1d9a0a,_0x3eab3e[0x0]));if(_0x174d9f[_0xcc1f('0x39')]===0x0){removeReferences(_0x1f6108,_0x1d9a0a);logger[_0xcc1f('0x2c')](_0xcc1f('0x6d'));return _0x441231(new Error(_0xcc1f('0x6d')));}var _0x3de839=_0x174d9f['some'](function(_0x3ebb7c){return _0x3ebb7c==='manifest.json';});if(!_0x3de839){return _0x441231(new Error(_0xcc1f('0x70')));}var _0x45627d=fs['readFileSync'](path['join'](_0x1d9a0a,_0x3eab3e[0x0],_0xcc1f('0x71')));var _0x20a29b=JSON['parse'](_0x45627d);if(_0xcc1f('0x21')==typeof _0x20a29b[_0xcc1f('0x2d')]){return _0x441231(new Error(_0xcc1f('0x72')));}if(_0xcc1f('0x21')==typeof _0x20a29b[_0xcc1f('0x31')]){return _0x441231(new Error(_0xcc1f('0x73')));}if(_0xcc1f('0x21')==typeof _0x20a29b[_0xcc1f('0x74')]){return _0x441231(new Error('Invalid\x20manifest:\x20version\x20not\x20specified'));}if('undefined'==typeof _0x20a29b[_0xcc1f('0x75')]){return _0x441231(new Error(_0xcc1f('0x76')));}if(_0x20a29b[_0xcc1f('0x31')]===_0xcc1f('0x77')){if(_0xcc1f('0x21')==typeof _0x20a29b[_0xcc1f('0x75')][_0xcc1f('0x78')]){return _0x441231(new Error(_0xcc1f('0x79')));}if(_0xcc1f('0x21')==typeof _0x20a29b[_0xcc1f('0x75')][_0xcc1f('0x78')][_0xcc1f('0x7a')]&&_0xcc1f('0x21')==typeof _0x20a29b[_0xcc1f('0x75')][_0xcc1f('0x78')][_0xcc1f('0x7b')]){return _0x441231(new Error(_0xcc1f('0x7c')));}}else if(_0x20a29b[_0xcc1f('0x31')]===_0xcc1f('0x7d')){if(_0xcc1f('0x21')==typeof _0x20a29b['parameters'][_0xcc1f('0x7e')]){return _0x441231(new Error(_0xcc1f('0x7f')));}if(_0xcc1f('0x21')==typeof _0x20a29b['parameters'][_0xcc1f('0x80')]){return _0x441231(new Error(_0xcc1f('0x81')));}}else{return _0x441231(new Error('Invalid\x20manifest:\x20invalid\x20type'));}var _0x954e52=_0x20a29b['name'];var _0xc3b901=_0x20a29b[_0xcc1f('0x82')];var _0xbe8879=_0x20a29b[_0xcc1f('0x31')];var _0x33e680=_0x20a29b[_0xcc1f('0x83')]?_0x20a29b[_0xcc1f('0x83')]:_0xcc1f('0x84');var _0x226334=_0x20a29b[_0xcc1f('0x85')]?_0x20a29b['icon']:'icon-apps';var _0x18eb62='';var _0x262376='';var _0x439aca='';var _0x31fce0='';var _0x16809a=_0x20a29b['version'];if(_0xbe8879===_0xcc1f('0x77')){if(_0xcc1f('0x21')!=typeof _0x20a29b['parameters'][_0xcc1f('0x78')][_0xcc1f('0x7a')]){var _0x4262d6=_0x20a29b[_0xcc1f('0x75')]['views'][_0xcc1f('0x7a')];if(!/^(f|ht)tps?:\/\//i['test'](_0x4262d6)){_0x18eb62=path['join'](_0xcc1f('0x86'),_0x1f7e04,_0x3eab3e[0x0],_0x4262d6);}else{_0x18eb62=_0x4262d6;}}else{logger[_0xcc1f('0x62')](_0xcc1f('0x87'));}if(_0xcc1f('0x21')!=typeof _0x20a29b['parameters'][_0xcc1f('0x78')][_0xcc1f('0x7b')]){var _0x2c6a70=_0x20a29b[_0xcc1f('0x75')]['views'][_0xcc1f('0x7b')];if(!/^(f|ht)tps?:\/\//i[_0xcc1f('0x88')](_0x2c6a70)){_0x262376=path[_0xcc1f('0x4d')](_0xcc1f('0x86'),_0x1f7e04,_0x3eab3e[0x0],_0x2c6a70);}else{_0x262376=_0x2c6a70;}}else{logger[_0xcc1f('0x62')](_0xcc1f('0x89'));}}else if(_0xbe8879==='script'){_0x439aca=_0x20a29b[_0xcc1f('0x75')][_0xcc1f('0x7e')];_0x31fce0=_0x20a29b['parameters'][_0xcc1f('0x80')];if(_0xcc1f('0x21')!=typeof _0x20a29b[_0xcc1f('0x75')][_0xcc1f('0x78')]){if(_0xcc1f('0x21')!=typeof _0x20a29b['parameters'][_0xcc1f('0x78')][_0xcc1f('0x7a')]){var _0x4262d6=_0x20a29b[_0xcc1f('0x75')]['views'][_0xcc1f('0x7a')];if(!/^(f|ht)tps?:\/\//i[_0xcc1f('0x88')](_0x4262d6)){_0x18eb62=path[_0xcc1f('0x4d')](_0xcc1f('0x86'),_0x1f7e04,_0x3eab3e[0x0],_0x4262d6);}else{_0x18eb62=_0x4262d6;}}if('undefined'!=typeof _0x20a29b['parameters'][_0xcc1f('0x78')][_0xcc1f('0x7b')]){var _0x2c6a70=_0x20a29b['parameters'][_0xcc1f('0x78')]['agent'];if(!/^(f|ht)tps?:\/\//i[_0xcc1f('0x88')](_0x2c6a70)){_0x262376=path[_0xcc1f('0x4d')](_0xcc1f('0x86'),_0x1f7e04,_0x3eab3e[0x0],_0x2c6a70);}else{_0x262376=_0x2c6a70;}}}}var _0x2e3091={'name':_0x954e52,'description':_0xc3b901,'path':path[_0xcc1f('0x4d')](_0x1f7e04,_0x3eab3e[0x0]),'type':_0xbe8879,'sidebar':_0x33e680,'icon':_0x226334,'adminUrl':_0x18eb62,'agentUrl':_0x262376,'scriptName':_0x439aca,'scriptPath':_0x31fce0,'version':_0x16809a};removeReferences(_0x1f6108,null);return db['Plugin'][_0xcc1f('0x8a')](_0x2e3091)[_0xcc1f('0x28')](function(_0x1c0731){var _0x35ef7f={'role':_0x217db2[_0xcc1f('0x8b')]['role'],'userProfileId':_0x217db2[_0xcc1f('0x8b')]['userProfileId']};if(!_0x35ef7f)throw new Error(_0xcc1f('0x8c'));if(_0x35ef7f[_0xcc1f('0x8d')]===_0xcc1f('0x8e')){var _0x24c88e=_0x1c0731[_0xcc1f('0x8f')]({'plain':!![]});return db['UserProfileSection'][_0xcc1f('0x4b')]({'where':{'name':_0xcc1f('0x2a'),'userProfileId':_0x35ef7f[_0xcc1f('0x90')]},'raw':!![]})[_0xcc1f('0x28')](function(_0x1a8c7a){if(_0x1a8c7a&&_0x1a8c7a[_0xcc1f('0x91')]===0x0){return db[_0xcc1f('0x2b')]['create']({'name':_0x24c88e[_0xcc1f('0x2d')],'resourceId':_0x24c88e['id'],'type':_0x1a8c7a[_0xcc1f('0x2d')],'sectionId':_0x1a8c7a['id']},{})[_0xcc1f('0x28')](function(){return _0x1c0731;});}else{return _0x1c0731;}})[_0xcc1f('0x46')](function(_0x512610){logger[_0xcc1f('0x2c')](_0xcc1f('0x92'),_0x512610);throw _0x512610;});}return _0x1c0731;})['then'](respondWithResult(_0x854049,null))['catch'](handleError(_0x854049,null));}});}catch(_0x382623){_0x854049[_0xcc1f('0x1e')](0x1f4)[_0xcc1f('0x93')](_0x382623);}};function removeReferences(_0x17f808,_0x373056){try{if(_0x17f808){fs[_0xcc1f('0x61')](_0x17f808);logger[_0xcc1f('0x62')](_0xcc1f('0x94'));}if(_0x373056){rimraf(_0x373056,function(){});logger[_0xcc1f('0x62')]('Extracted\x20folder\x20removed');}}catch(_0x15a66a){logger[_0xcc1f('0x2c')](_0x15a66a);}}exports[_0xcc1f('0x27')]=function(_0x420131,_0x47c90c,_0x304b12){return db[_0xcc1f('0x43')][_0xcc1f('0x4b')]({'where':{'id':_0x420131[_0xcc1f('0x4c')]['id']}})['then'](handleEntityNotFound(_0x47c90c,null))['then'](saveUpdates(_0x420131['body'],null))[_0xcc1f('0x28')](respondWithResult(_0x47c90c,null))[_0xcc1f('0x46')](handleError(_0x47c90c,null));};exports['delete']=function(_0x1157bf,_0x2a9a85,_0x25af61){return db[_0xcc1f('0x43')]['find']({'where':{'id':_0x1157bf[_0xcc1f('0x4c')]['id']}})[_0xcc1f('0x28')](function(_0x2007c4){if(_0x2007c4){return _0x2007c4[_0xcc1f('0x29')]();}})['then'](function(_0x198548){rimraf(path[_0xcc1f('0x4d')](config[_0xcc1f('0x5a')],'server/files/plugins',path['dirname'](_0x198548[_0xcc1f('0x8')])),function(){});return _0x198548;})[_0xcc1f('0x28')](handleEntityNotFound(_0x2a9a85,null))[_0xcc1f('0x28')](respondWithStatusCode(_0x2a9a85,null))[_0xcc1f('0x46')](handleError(_0x2a9a85,null));};exports[_0xcc1f('0x95')]=function(_0x5d0487,_0x1af4d9,_0x10abba){return BPromise[_0xcc1f('0x96')]()[_0xcc1f('0x28')](function(){if(!_0x5d0487[_0xcc1f('0x34')][_0xcc1f('0x8')]){throw new Error(_0xcc1f('0x97'));}if(!_0x5d0487[_0xcc1f('0x34')][_0xcc1f('0x98')]){throw new Error(_0xcc1f('0x99'));}var _0x3a381c=_0x5d0487[_0xcc1f('0x34')][_0xcc1f('0x9a')]?_0x5d0487['query'][_0xcc1f('0x9a')]+':'+_0x5d0487[_0xcc1f('0x34')][_0xcc1f('0x98')]:_0xcc1f('0x9b')+_0x5d0487[_0xcc1f('0x34')][_0xcc1f('0x98')];var _0x2b8727=_0x5d0487[_0xcc1f('0x34')]['json']?_0x5d0487[_0xcc1f('0x34')][_0xcc1f('0x1f')]:!![];var _0x296bef=_0x5d0487[_0xcc1f('0x34')]['encoding']?_0x5d0487[_0xcc1f('0x34')][_0xcc1f('0x9c')]:null;var _0x40f401={'method':_0x5d0487['method'],'uri':util['format']('%s%s',_0x3a381c,_0x5d0487[_0xcc1f('0x34')][_0xcc1f('0x8')]),'json':_0x2b8727,'resolveWithFullResponse':!![],'encoding':_0x296bef,'qs':_0x5d0487[_0xcc1f('0x34')]};if(_0x5d0487[_0xcc1f('0x9d')]){_0x40f401['headers']=_0x5d0487[_0xcc1f('0x9d')];if(_0x40f401[_0xcc1f('0x9d')][_0xcc1f('0x9e')]){delete _0x40f401[_0xcc1f('0x9d')]['content-length'];}}if(_0x40f401[_0xcc1f('0x9d')][_0xcc1f('0x9f')]){delete _0x40f401[_0xcc1f('0x9d')][_0xcc1f('0x9f')];}return rp(_0x40f401);})['then'](function(_0x41bcf6){if(_0x41bcf6){_0x1af4d9[_0xcc1f('0xa0')](_0x41bcf6[_0xcc1f('0x9d')]);logger['info'](_0x41bcf6[_0xcc1f('0x8b')]);if(_[_0xcc1f('0xa1')](_0x5d0487['query'][_0xcc1f('0x8')],_0xcc1f('0x4a'))&&_0x41bcf6[_0xcc1f('0xa2')]==0x1f4){return _0x1af4d9[_0xcc1f('0x1d')](_0x41bcf6['statusCode']);}else{return _0x1af4d9[_0xcc1f('0x1e')](_0x41bcf6[_0xcc1f('0xa2')])['send'](_0x41bcf6[_0xcc1f('0x8b')]);}}else{return _0x1af4d9[_0xcc1f('0x1d')](0xc8);}})['catch'](handleError(_0x1af4d9,null));};exports['webhookPost']=function(_0x2226dd,_0x42c800,_0x56ae1c){return BPromise[_0xcc1f('0x96')]()['then'](function(){if(!_0x2226dd[_0xcc1f('0x34')][_0xcc1f('0x8')]){throw new Error(_0xcc1f('0x97'));}if(!_0x2226dd[_0xcc1f('0x34')][_0xcc1f('0x98')]){throw new Error(_0xcc1f('0x99'));}var _0x112fea=_0x2226dd['query']['hostname']?_0x2226dd[_0xcc1f('0x34')][_0xcc1f('0x9a')]+':'+_0x2226dd[_0xcc1f('0x34')][_0xcc1f('0x98')]:'http://localhost:'+_0x2226dd[_0xcc1f('0x34')]['port'];var _0xfefb71=_0x2226dd[_0xcc1f('0x34')][_0xcc1f('0x1f')]?_0x2226dd[_0xcc1f('0x34')][_0xcc1f('0x1f')]:!![];var _0x4eeeaa=_0x2226dd[_0xcc1f('0x34')]['encoding']?_0x2226dd['query'][_0xcc1f('0x9c')]:null;var _0x236785={'method':_0x2226dd[_0xcc1f('0xa3')],'uri':util['format']('%s%s',_0x112fea,_0x2226dd[_0xcc1f('0x34')]['path']),'json':_0xfefb71,'resolveWithFullResponse':!![],'encoding':_0x4eeeaa,'body':_0x2226dd['body']};if(_0x2226dd[_0xcc1f('0x9d')]){_0x236785[_0xcc1f('0x9d')]=_0x2226dd[_0xcc1f('0x9d')];if(_0x236785[_0xcc1f('0x9d')][_0xcc1f('0x9e')]){delete _0x236785['headers']['content-length'];}}if(_0x236785[_0xcc1f('0x9d')][_0xcc1f('0x9f')]){delete _0x236785[_0xcc1f('0x9d')][_0xcc1f('0x9f')];}return rp(_0x236785);})[_0xcc1f('0x28')](function(_0x22bd74){if(_0x22bd74){_0x42c800[_0xcc1f('0xa0')](_0x22bd74[_0xcc1f('0x9d')]);logger[_0xcc1f('0x62')](_0x22bd74['body']);return _0x42c800[_0xcc1f('0x1e')](_0x22bd74['statusCode'])[_0xcc1f('0x93')](_0x22bd74[_0xcc1f('0x8b')]);}else{return _0x42c800[_0xcc1f('0x1d')](0xc8);}})[_0xcc1f('0x46')](handleError(_0x42c800,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe5e0=['save','update','remove','emit','hook','exports','events','../../mysqldb','Plugin','setMaxListeners'];(function(_0x2ed419,_0x1a953b){var _0x285220=function(_0x23edc5){while(--_0x23edc5){_0x2ed419['push'](_0x2ed419['shift']());}};_0x285220(++_0x1a953b);}(_0xe5e0,0x1be));var _0x0e5e=function(_0x3a353a,_0x4e34a9){_0x3a353a=_0x3a353a-0x0;var _0x1df42e=_0xe5e0[_0x3a353a];return _0x1df42e;};'use strict';var EventEmitter=require(_0x0e5e('0x0'));var Plugin=require(_0x0e5e('0x1'))['db'][_0x0e5e('0x2')];var PluginEvents=new EventEmitter();PluginEvents[_0x0e5e('0x3')](0x0);var events={'afterCreate':_0x0e5e('0x4'),'afterUpdate':_0x0e5e('0x5'),'afterDestroy':_0x0e5e('0x6')};function emitEvent(_0x20e1d0){return function(_0xe914ff,_0x57244d,_0x31d9e8){PluginEvents[_0x0e5e('0x7')](_0x20e1d0+':'+_0xe914ff['id'],_0xe914ff);PluginEvents[_0x0e5e('0x7')](_0x20e1d0,_0xe914ff);_0x31d9e8(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];Plugin[_0x0e5e('0x8')](e,emitEvent(event));}}module[_0x0e5e('0x9')]=PluginEvents;
\ No newline at end of file
+var _0x49fe=['remove','emit','hasOwnProperty','hook','exports','events','save','update'];(function(_0x2300c7,_0x255f74){var _0x23f720=function(_0x3fea57){while(--_0x3fea57){_0x2300c7['push'](_0x2300c7['shift']());}};_0x23f720(++_0x255f74);}(_0x49fe,0x75));var _0xe49f=function(_0x1d125b,_0x1d2840){_0x1d125b=_0x1d125b-0x0;var _0x3d8e89=_0x49fe[_0x1d125b];return _0x3d8e89;};'use strict';var EventEmitter=require(_0xe49f('0x0'));var Plugin=require('../../mysqldb')['db']['Plugin'];var PluginEvents=new EventEmitter();PluginEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xe49f('0x1'),'afterUpdate':_0xe49f('0x2'),'afterDestroy':_0xe49f('0x3')};function emitEvent(_0xb99c7){return function(_0x1cac40,_0x2db0ec,_0x1235f4){PluginEvents[_0xe49f('0x4')](_0xb99c7+':'+_0x1cac40['id'],_0x1cac40);PluginEvents[_0xe49f('0x4')](_0xb99c7,_0x1cac40);_0x1235f4(null);};}for(var e in events){if(events[_0xe49f('0x5')](e)){var event=events[e];Plugin[_0xe49f('0x6')](e,emitEvent(event));}}module[_0xe49f('0x7')]=PluginEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcfee=['bluebird','request-promise','rimraf','../../config/environment','./plugin.attributes','define','plugins','lodash','util','../../config/logger','api','moment'];(function(_0xed4751,_0x5dee97){var _0xf82d17=function(_0x3cb93e){while(--_0x3cb93e){_0xed4751['push'](_0xed4751['shift']());}};_0xf82d17(++_0x5dee97);}(_0xcfee,0x10f));var _0xecfe=function(_0x1da527,_0x2dc953){_0x1da527=_0x1da527-0x0;var _0x40fc7c=_0xcfee[_0x1da527];return _0x40fc7c;};'use strict';var _=require(_0xecfe('0x0'));var util=require(_0xecfe('0x1'));var logger=require(_0xecfe('0x2'))(_0xecfe('0x3'));var moment=require(_0xecfe('0x4'));var BPromise=require(_0xecfe('0x5'));var rp=require(_0xecfe('0x6'));var fs=require('fs');var path=require('path');var rimraf=require(_0xecfe('0x7'));var config=require(_0xecfe('0x8'));var attributes=require(_0xecfe('0x9'));module['exports']=function(_0x4ec042,_0xca50f){return _0x4ec042[_0xecfe('0xa')]('Plugin',attributes,{'tableName':_0xecfe('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x6214=['api','moment','bluebird','path','rimraf','../../config/environment','./plugin.attributes','exports','Plugin','plugins','lodash','util','../../config/logger'];(function(_0x254dde,_0xf34301){var _0x4b706f=function(_0x5125c6){while(--_0x5125c6){_0x254dde['push'](_0x254dde['shift']());}};_0x4b706f(++_0xf34301);}(_0x6214,0xda));var _0x4621=function(_0x1e4360,_0x930b9b){_0x1e4360=_0x1e4360-0x0;var _0x31e6b4=_0x6214[_0x1e4360];return _0x31e6b4;};'use strict';var _=require(_0x4621('0x0'));var util=require(_0x4621('0x1'));var logger=require(_0x4621('0x2'))(_0x4621('0x3'));var moment=require(_0x4621('0x4'));var BPromise=require(_0x4621('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x4621('0x6'));var rimraf=require(_0x4621('0x7'));var config=require(_0x4621('0x8'));var attributes=require(_0x4621('0x9'));module[_0x4621('0xa')]=function(_0x2ab771,_0x41a62e){return _0x2ab771['define'](_0x4621('0xb'),attributes,{'tableName':_0x4621('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb5ac=['options','raw','CreatePlugin','lodash','moment','bluebird','randomstring','../../config/utils','rpc','../../config/environment','jayson/promise','redis','defaults','localhost','socket.io-emitter','./plugin.socket','register','request','then','info','request\x20sent','debug','Plugin,\x20%s,\x20%s,\x20%s','stringify','error','Plugin,\x20%s,\x20%s','message','result','catch','body'];(function(_0x1e1be6,_0x51771f){var _0x2d35f3=function(_0x3841a7){while(--_0x3841a7){_0x1e1be6['push'](_0x1e1be6['shift']());}};_0x2d35f3(++_0x51771f);}(_0xb5ac,0xd5));var _0xcb5a=function(_0x1b77b3,_0x5b49e4){_0x1b77b3=_0x1b77b3-0x0;var _0x4f09f3=_0xb5ac[_0x1b77b3];return _0x4f09f3;};'use strict';var _=require(_0xcb5a('0x0'));var util=require('util');var moment=require(_0xcb5a('0x1'));var BPromise=require(_0xcb5a('0x2'));var rs=require(_0xcb5a('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0xcb5a('0x4'));var logger=require('../../config/logger')(_0xcb5a('0x5'));var config=require(_0xcb5a('0x6'));var jayson=require(_0xcb5a('0x7'));var client=jayson['client']['http']({'port':0x232a});config[_0xcb5a('0x8')]=_[_0xcb5a('0x9')](config[_0xcb5a('0x8')],{'host':_0xcb5a('0xa'),'port':0x18eb});var socket=require(_0xcb5a('0xb'))(new Redis(config['redis']));require(_0xcb5a('0xc'))[_0xcb5a('0xd')](socket);function respondWithRpcPromise(_0x195dc4,_0x5cc73c,_0x5179b9){return new BPromise(function(_0x4fed58,_0x176a2a){return client[_0xcb5a('0xe')](_0x195dc4,_0x5179b9)[_0xcb5a('0xf')](function(_0x51536c){logger[_0xcb5a('0x10')]('Plugin,\x20%s,\x20%s',_0x5cc73c,_0xcb5a('0x11'));logger[_0xcb5a('0x12')](_0xcb5a('0x13'),_0x5cc73c,'request\x20sent',JSON[_0xcb5a('0x14')](_0x51536c));if(_0x51536c['error']){if(_0x51536c[_0xcb5a('0x15')]['code']===0x1f4){logger[_0xcb5a('0x15')](_0xcb5a('0x16'),_0x5cc73c,_0x51536c[_0xcb5a('0x15')][_0xcb5a('0x17')]);return _0x176a2a(_0x51536c['error'][_0xcb5a('0x17')]);}logger[_0xcb5a('0x15')](_0xcb5a('0x16'),_0x5cc73c,_0x51536c['error'][_0xcb5a('0x17')]);return _0x4fed58(_0x51536c[_0xcb5a('0x15')]['message']);}else{logger['info']('Plugin,\x20%s,\x20%s',_0x5cc73c,_0xcb5a('0x11'));_0x4fed58(_0x51536c[_0xcb5a('0x18')]['message']);}})[_0xcb5a('0x19')](function(_0x5c3a99){logger[_0xcb5a('0x15')](_0xcb5a('0x16'),_0x5cc73c,_0x5c3a99);_0x176a2a(_0x5c3a99);});});}exports['CreatePlugin']=function(_0x29767f){var _0x3b8a5c=this;return new Promise(function(_0x4cdc47,_0x2c752f){return db['Plugin']['create'](_0x29767f[_0xcb5a('0x1a')],{'raw':_0x29767f[_0xcb5a('0x1b')]?_0x29767f[_0xcb5a('0x1b')][_0xcb5a('0x1c')]===undefined?!![]:![]:!![]})[_0xcb5a('0xf')](function(_0x6a1fe9){logger[_0xcb5a('0x10')]('CreatePlugin',_0x29767f);logger['debug'](_0xcb5a('0x1d'),_0x29767f,JSON[_0xcb5a('0x14')](_0x6a1fe9));_0x4cdc47(_0x6a1fe9);})[_0xcb5a('0x19')](function(_0x4c5fa9){logger[_0xcb5a('0x15')](_0xcb5a('0x1d'),_0x4c5fa9[_0xcb5a('0x17')],_0x29767f);_0x2c752f(_0x3b8a5c['error'](0x1f4,_0x4c5fa9['message']));});});};
\ No newline at end of file
+var _0xd596=['Plugin,\x20%s,\x20%s,\x20%s','stringify','error','message','info','result','CreatePlugin','Plugin','create','body','options','raw','catch','lodash','util','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','redis','defaults','localhost','socket.io-emitter','./plugin.socket','register','then','Plugin,\x20%s,\x20%s','request\x20sent','debug'];(function(_0x6c993a,_0x5ea3ab){var _0x27f547=function(_0x22df20){while(--_0x22df20){_0x6c993a['push'](_0x6c993a['shift']());}};_0x27f547(++_0x5ea3ab);}(_0xd596,0x199));var _0x6d59=function(_0x236c89,_0xd76ba9){_0x236c89=_0x236c89-0x0;var _0x3b2a15=_0xd596[_0x236c89];return _0x3b2a15;};'use strict';var _=require(_0x6d59('0x0'));var util=require(_0x6d59('0x1'));var moment=require('moment');var BPromise=require(_0x6d59('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x6d59('0x3'));var db=require(_0x6d59('0x4'))['db'];var utils=require(_0x6d59('0x5'));var logger=require(_0x6d59('0x6'))(_0x6d59('0x7'));var config=require(_0x6d59('0x8'));var jayson=require(_0x6d59('0x9'));var client=jayson['client']['http']({'port':0x232a});config[_0x6d59('0xa')]=_[_0x6d59('0xb')](config[_0x6d59('0xa')],{'host':_0x6d59('0xc'),'port':0x18eb});var socket=require(_0x6d59('0xd'))(new Redis(config[_0x6d59('0xa')]));require(_0x6d59('0xe'))[_0x6d59('0xf')](socket);function respondWithRpcPromise(_0x1c0570,_0x54d123,_0x3d4ee9){return new BPromise(function(_0x128ca3,_0x2bccdc){return client['request'](_0x1c0570,_0x3d4ee9)[_0x6d59('0x10')](function(_0x29c859){logger['info'](_0x6d59('0x11'),_0x54d123,_0x6d59('0x12'));logger[_0x6d59('0x13')](_0x6d59('0x14'),_0x54d123,_0x6d59('0x12'),JSON[_0x6d59('0x15')](_0x29c859));if(_0x29c859[_0x6d59('0x16')]){if(_0x29c859[_0x6d59('0x16')]['code']===0x1f4){logger['error']('Plugin,\x20%s,\x20%s',_0x54d123,_0x29c859[_0x6d59('0x16')]['message']);return _0x2bccdc(_0x29c859[_0x6d59('0x16')][_0x6d59('0x17')]);}logger[_0x6d59('0x16')](_0x6d59('0x11'),_0x54d123,_0x29c859[_0x6d59('0x16')]['message']);return _0x128ca3(_0x29c859['error'][_0x6d59('0x17')]);}else{logger[_0x6d59('0x18')](_0x6d59('0x11'),_0x54d123,'request\x20sent');_0x128ca3(_0x29c859[_0x6d59('0x19')][_0x6d59('0x17')]);}})['catch'](function(_0x337e85){logger[_0x6d59('0x16')]('Plugin,\x20%s,\x20%s',_0x54d123,_0x337e85);_0x2bccdc(_0x337e85);});});}exports[_0x6d59('0x1a')]=function(_0x1b0648){var _0x2652ca=this;return new Promise(function(_0x216a83,_0x31b237){return db[_0x6d59('0x1b')][_0x6d59('0x1c')](_0x1b0648[_0x6d59('0x1d')],{'raw':_0x1b0648[_0x6d59('0x1e')]?_0x1b0648[_0x6d59('0x1e')][_0x6d59('0x1f')]===undefined?!![]:![]:!![]})[_0x6d59('0x10')](function(_0x34db7d){logger['info'](_0x6d59('0x1a'),_0x1b0648);logger[_0x6d59('0x13')](_0x6d59('0x1a'),_0x1b0648,JSON['stringify'](_0x34db7d));_0x216a83(_0x34db7d);})[_0x6d59('0x20')](function(_0xb5e377){logger['error'](_0x6d59('0x1a'),_0xb5e377[_0x6d59('0x17')],_0x1b0648);_0x31b237(_0x2652ca[_0x6d59('0x16')](0x1f4,_0xb5e377['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa5b2=['length','plugin:','./plugin.events','save','emit','removeListener','register'];(function(_0x4931a5,_0x5b45e2){var _0x19f659=function(_0x5e6065){while(--_0x5e6065){_0x4931a5['push'](_0x4931a5['shift']());}};_0x19f659(++_0x5b45e2);}(_0xa5b2,0xb8));var _0x2a5b=function(_0xe7d561,_0x146cef){_0xe7d561=_0xe7d561-0x0;var _0x4c27f0=_0xa5b2[_0xe7d561];return _0x4c27f0;};'use strict';var PluginEvents=require(_0x2a5b('0x0'));var events=[_0x2a5b('0x1'),'remove','update'];function createListener(_0x1b99fe,_0x5efcc9){return function(_0x1745f8){_0x5efcc9[_0x2a5b('0x2')](_0x1b99fe,_0x1745f8);};}function removeListener(_0x43d905,_0x196bac){return function(){PluginEvents[_0x2a5b('0x3')](_0x43d905,_0x196bac);};}exports[_0x2a5b('0x4')]=function(_0x574550){for(var _0x1b7726=0x0,_0x5b8ef0=events[_0x2a5b('0x5')];_0x1b7726<_0x5b8ef0;_0x1b7726++){var _0x243b85=events[_0x1b7726];var _0x48d217=createListener(_0x2a5b('0x6')+_0x243b85,_0x574550);PluginEvents['on'](_0x243b85,_0x48d217);}};
\ No newline at end of file
+var _0xd0c1=['length','plugin:','./plugin.events','save','remove','emit','register'];(function(_0x5b46be,_0x1b24f1){var _0xb01664=function(_0x6a4b70){while(--_0x6a4b70){_0x5b46be['push'](_0x5b46be['shift']());}};_0xb01664(++_0x1b24f1);}(_0xd0c1,0x144));var _0x1d0c=function(_0x166843,_0xfcd2d6){_0x166843=_0x166843-0x0;var _0x4f9156=_0xd0c1[_0x166843];return _0x4f9156;};'use strict';var PluginEvents=require(_0x1d0c('0x0'));var events=[_0x1d0c('0x1'),_0x1d0c('0x2'),'update'];function createListener(_0x52f3b1,_0x41b92e){return function(_0x22bb7b){_0x41b92e[_0x1d0c('0x3')](_0x52f3b1,_0x22bb7b);};}function removeListener(_0x35e9bd,_0x5f1518){return function(){PluginEvents['removeListener'](_0x35e9bd,_0x5f1518);};}exports[_0x1d0c('0x4')]=function(_0x32423a){for(var _0x169b82=0x0,_0x4bf726=events[_0x1d0c('0x5')];_0x169b82<_0x4bf726;_0x169b82++){var _0x7afb10=events[_0x169b82];var _0x254baf=createListener(_0x1d0c('0x6')+_0x7afb10,_0x32423a);PluginEvents['on'](_0x7afb10,_0x254baf);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['create','put','delete','destroy','exports','express','Router','../../components/auth/service','isAuthenticated','get','/:id','show','post'];(function(_0x59299f,_0x4b4e37){var _0x3596fe=function(_0x204b4d){while(--_0x204b4d){_0x59299f['push'](_0x59299f['shift']());}};_0x3596fe(++_0x4b4e37);}(_0xa9e0,0x123));var _0x0a9e=function(_0x311c35,_0x534915){_0x311c35=_0x311c35-0x0;var _0x5cc50c=_0xa9e0[_0x311c35];return _0x5cc50c;};'use strict';var express=require(_0x0a9e('0x0'));var router=express[_0x0a9e('0x1')]();var auth=require(_0x0a9e('0x2'));var controller=require('./pm2.controller');router['get']('/',auth[_0x0a9e('0x3')](),controller['index']);router[_0x0a9e('0x4')](_0x0a9e('0x5'),auth[_0x0a9e('0x3')](),controller[_0x0a9e('0x6')]);router[_0x0a9e('0x7')]('/',auth['isAuthenticated'](),controller[_0x0a9e('0x8')]);router[_0x0a9e('0x9')](_0x0a9e('0x5'),auth['isAuthenticated'](),controller['update']);router[_0x0a9e('0xa')]('/:id',auth['isAuthenticated'](),controller[_0x0a9e('0xb')]);module[_0x0a9e('0xc')]=router;
\ No newline at end of file
+var _0xa9e0=['create','put','delete','destroy','exports','express','Router','../../components/auth/service','isAuthenticated','get','/:id','show','post'];(function(_0x45facb,_0x2ae30b){var _0x27f71c=function(_0x432bbd){while(--_0x432bbd){_0x45facb['push'](_0x45facb['shift']());}};_0x27f71c(++_0x2ae30b);}(_0xa9e0,0x123));var _0x0a9e=function(_0x18a79d,_0x57bd2c){_0x18a79d=_0x18a79d-0x0;var _0x4f8848=_0xa9e0[_0x18a79d];return _0x4f8848;};'use strict';var express=require(_0x0a9e('0x0'));var router=express[_0x0a9e('0x1')]();var auth=require(_0x0a9e('0x2'));var controller=require('./pm2.controller');router['get']('/',auth[_0x0a9e('0x3')](),controller['index']);router[_0x0a9e('0x4')](_0x0a9e('0x5'),auth[_0x0a9e('0x3')](),controller[_0x0a9e('0x6')]);router[_0x0a9e('0x7')]('/',auth['isAuthenticated'](),controller[_0x0a9e('0x8')]);router[_0x0a9e('0x9')](_0x0a9e('0x5'),auth['isAuthenticated'](),controller['update']);router[_0x0a9e('0xa')]('/:id',auth['isAuthenticated'](),controller[_0x0a9e('0xb')]);module[_0x0a9e('0xc')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x702d=['../../config/pm2','../../config/logger','api','path','exec','bluebird','sendStatus','status','error','stack','name','send','npm\x20install','info','index','list','then','reject','express','motion2','length','catch','show','params','create','body','join','../../files/plugins','script','cwd','chdir','start','dump','Missing\x20name\x20and/or\x20path','restart','stop','hasOwnProperty','destroy','delete','Unknown\x20id','lodash'];(function(_0x1c3ec5,_0x2969d3){var _0x51b9f0=function(_0x420536){while(--_0x420536){_0x1c3ec5['push'](_0x1c3ec5['shift']());}};_0x51b9f0(++_0x2969d3);}(_0x702d,0x147));var _0xd702=function(_0x1ebe4c,_0x13a0e9){_0x1ebe4c=_0x1ebe4c-0x0;var _0x4874fe=_0x702d[_0x1ebe4c];return _0x4874fe;};'use strict';var _=require(_0xd702('0x0'));var pm2=require(_0xd702('0x1'));var logger=require(_0xd702('0x2'))(_0xd702('0x3'));var path=require(_0xd702('0x4'));var exec=require('child_process')[_0xd702('0x5')];var BPromise=require(_0xd702('0x6'));function handleEntityNotFound(_0x27b260,_0x1c5a32){return function(_0x481ee0){if(!_0x481ee0){_0x27b260[_0xd702('0x7')](0x194);;}return _0x481ee0;};}function respondWithResult(_0x544e94,_0x1aecfc){_0x1aecfc=_0x1aecfc||0xc8;return function(_0x3a2c03){if(_0x3a2c03){return _0x544e94[_0xd702('0x8')](_0x1aecfc)['json'](_0x3a2c03);}return null;};}function handleError(_0x12bb75,_0x53bd02){_0x53bd02=_0x53bd02||0x1f4;return function(_0x39c49e){logger[_0xd702('0x9')](_0x39c49e[_0xd702('0xa')]);if(_0x39c49e[_0xd702('0xb')]){delete _0x39c49e[_0xd702('0xb')];}_0x12bb75[_0xd702('0x8')](_0x53bd02)[_0xd702('0xc')](_0x39c49e);};}function execChildProcess(){return new BPromise(function(_0x1988eb,_0x5907cf){exec(_0xd702('0xd'),function(_0x58805a,_0x4a3439,_0x3e9439){logger[_0xd702('0xe')](_0x4a3439);logger[_0xd702('0xe')](_0x3e9439);if(_0x58805a){logger['error'](_0x58805a);return _0x5907cf(_0x58805a);}return _0x1988eb(_0x4a3439);});});}exports[_0xd702('0xf')]=function(_0x128add,_0x1ed8a3){return pm2[_0xd702('0x10')]()[_0xd702('0x11')](function(_0x181ff2){if(_0x181ff2){var _0x59dd33=_[_0xd702('0x12')](_0x181ff2,function(_0x3ea0ab){return _0x3ea0ab['name']===_0xd702('0x13')||_0x3ea0ab['name']===_0xd702('0x14');});return{'rows':_0x59dd33,'count':_0x59dd33[_0xd702('0x15')]};}return null;})['then'](respondWithResult(_0x1ed8a3,null))[_0xd702('0x16')](handleError(_0x1ed8a3,null));};exports[_0xd702('0x17')]=function(_0x2a87f2,_0x4fdbbd){return pm2['describe'](_0x2a87f2[_0xd702('0x18')]['id'])['then'](respondWithResult(_0x4fdbbd,null))[_0xd702('0x11')](handleEntityNotFound(_0x4fdbbd,null))[_0xd702('0x16')](handleError(_0x4fdbbd,null));};exports[_0xd702('0x19')]=function(_0x265b1b,_0x4cf326){if(_0x265b1b[_0xd702('0x1a')][_0xd702('0xb')]&&_0x265b1b['body']['script']){var _0x536ca8=path[_0xd702('0x1b')](__dirname,_0xd702('0x1c'),_0x265b1b['body'][_0xd702('0x1d')]);var _0x5d91fd=process[_0xd702('0x1e')]();process['chdir'](path['dirname'](_0x536ca8));return execChildProcess()['then'](function(_0x21c00e){process[_0xd702('0x1f')](_0x5d91fd);return pm2[_0xd702('0x20')]({'name':_0x265b1b['body'][_0xd702('0xb')],'script':_0x536ca8});})[_0xd702('0x11')](function(_0x10599a){pm2[_0xd702('0x21')]();return _0x10599a[0x0];})[_0xd702('0x11')](respondWithResult(_0x4cf326,0xc9))[_0xd702('0x16')](handleError(_0x4cf326,null));}else{return _0x4cf326[_0xd702('0x8')](0x1f4)[_0xd702('0xc')]({'message':_0xd702('0x22')});}};exports['update']=function(_0x116b2f,_0x322cb8){if(_0x116b2f[_0xd702('0x1a')]['id']){delete _0x116b2f[_0xd702('0x1a')]['id'];}var _0xbe4518={'online':_0xd702('0x23'),'stopped':_0xd702('0x24')};if(_0xbe4518[_0xd702('0x25')](_0x116b2f['body']['status'])){return pm2[_0xbe4518[_0x116b2f[_0xd702('0x1a')][_0xd702('0x8')]]](_0x116b2f['params']['id'])[_0xd702('0x11')](respondWithResult(_0x322cb8,0xc8))[_0xd702('0x16')](handleError(_0x322cb8,null));}else{return _0x322cb8[_0xd702('0x8')](0x1f4)[_0xd702('0xc')]({'message':'Unknown\x20status'});}};exports[_0xd702('0x26')]=function(_0x313281,_0x1630ed){if(_0x313281[_0xd702('0x1a')]['id']){delete _0x313281[_0xd702('0x1a')]['id'];}if(_0x313281['params']['id']){return pm2[_0xd702('0x27')](_0x313281[_0xd702('0x18')]['id'])[_0xd702('0x11')](function(_0x5abfea){pm2[_0xd702('0x21')]();return _0x5abfea[0x0];})['then'](respondWithResult(_0x1630ed,null))['catch'](handleError(_0x1630ed,null));}else{return _0x1630ed[_0xd702('0x8')](0x1f4)[_0xd702('0xc')]({'message':_0xd702('0x28')});}};
\ No newline at end of file
+var _0x2e54=['exec','bluebird','sendStatus','status','error','stack','name','send','info','index','list','then','express','motion2','length','catch','show','describe','params','body','script','join','../../files/plugins','chdir','start','dump','Missing\x20name\x20and/or\x20path','restart','stop','hasOwnProperty','Unknown\x20status','destroy','delete','lodash','api','path','child_process'];(function(_0x43960e,_0x324872){var _0x12fc54=function(_0x2dcb41){while(--_0x2dcb41){_0x43960e['push'](_0x43960e['shift']());}};_0x12fc54(++_0x324872);}(_0x2e54,0x1dd));var _0x42e5=function(_0x5187d7,_0x2ad567){_0x5187d7=_0x5187d7-0x0;var _0x4950ca=_0x2e54[_0x5187d7];return _0x4950ca;};'use strict';var _=require(_0x42e5('0x0'));var pm2=require('../../config/pm2');var logger=require('../../config/logger')(_0x42e5('0x1'));var path=require(_0x42e5('0x2'));var exec=require(_0x42e5('0x3'))[_0x42e5('0x4')];var BPromise=require(_0x42e5('0x5'));function handleEntityNotFound(_0x153440,_0x42736b){return function(_0x528772){if(!_0x528772){_0x153440[_0x42e5('0x6')](0x194);;}return _0x528772;};}function respondWithResult(_0x455f48,_0x38cb1b){_0x38cb1b=_0x38cb1b||0xc8;return function(_0x4bed10){if(_0x4bed10){return _0x455f48[_0x42e5('0x7')](_0x38cb1b)['json'](_0x4bed10);}return null;};}function handleError(_0x335b92,_0x490b99){_0x490b99=_0x490b99||0x1f4;return function(_0x3a8494){logger[_0x42e5('0x8')](_0x3a8494[_0x42e5('0x9')]);if(_0x3a8494[_0x42e5('0xa')]){delete _0x3a8494[_0x42e5('0xa')];}_0x335b92[_0x42e5('0x7')](_0x490b99)[_0x42e5('0xb')](_0x3a8494);};}function execChildProcess(){return new BPromise(function(_0x2fa2f0,_0x197752){exec('npm\x20install',function(_0x456298,_0x28b3b3,_0x5d57f4){logger[_0x42e5('0xc')](_0x28b3b3);logger[_0x42e5('0xc')](_0x5d57f4);if(_0x456298){logger[_0x42e5('0x8')](_0x456298);return _0x197752(_0x456298);}return _0x2fa2f0(_0x28b3b3);});});}exports[_0x42e5('0xd')]=function(_0x144fb4,_0x1faafc){return pm2[_0x42e5('0xe')]()[_0x42e5('0xf')](function(_0x447648){if(_0x447648){var _0x23957f=_['reject'](_0x447648,function(_0x3b3dd9){return _0x3b3dd9[_0x42e5('0xa')]===_0x42e5('0x10')||_0x3b3dd9[_0x42e5('0xa')]===_0x42e5('0x11');});return{'rows':_0x23957f,'count':_0x23957f[_0x42e5('0x12')]};}return null;})[_0x42e5('0xf')](respondWithResult(_0x1faafc,null))[_0x42e5('0x13')](handleError(_0x1faafc,null));};exports[_0x42e5('0x14')]=function(_0x3c7b79,_0x22655f){return pm2[_0x42e5('0x15')](_0x3c7b79[_0x42e5('0x16')]['id'])[_0x42e5('0xf')](respondWithResult(_0x22655f,null))['then'](handleEntityNotFound(_0x22655f,null))[_0x42e5('0x13')](handleError(_0x22655f,null));};exports['create']=function(_0x5f4428,_0x14d16d){if(_0x5f4428[_0x42e5('0x17')]['name']&&_0x5f4428[_0x42e5('0x17')][_0x42e5('0x18')]){var _0x1c2169=path[_0x42e5('0x19')](__dirname,_0x42e5('0x1a'),_0x5f4428[_0x42e5('0x17')][_0x42e5('0x18')]);var _0x58eee5=process['cwd']();process[_0x42e5('0x1b')](path['dirname'](_0x1c2169));return execChildProcess()[_0x42e5('0xf')](function(_0x2e9574){process[_0x42e5('0x1b')](_0x58eee5);return pm2[_0x42e5('0x1c')]({'name':_0x5f4428[_0x42e5('0x17')]['name'],'script':_0x1c2169});})[_0x42e5('0xf')](function(_0xf29221){pm2[_0x42e5('0x1d')]();return _0xf29221[0x0];})[_0x42e5('0xf')](respondWithResult(_0x14d16d,0xc9))[_0x42e5('0x13')](handleError(_0x14d16d,null));}else{return _0x14d16d['status'](0x1f4)['send']({'message':_0x42e5('0x1e')});}};exports['update']=function(_0x56f812,_0x1b60be){if(_0x56f812['body']['id']){delete _0x56f812[_0x42e5('0x17')]['id'];}var _0x2d9e65={'online':_0x42e5('0x1f'),'stopped':_0x42e5('0x20')};if(_0x2d9e65[_0x42e5('0x21')](_0x56f812[_0x42e5('0x17')]['status'])){return pm2[_0x2d9e65[_0x56f812[_0x42e5('0x17')][_0x42e5('0x7')]]](_0x56f812[_0x42e5('0x16')]['id'])[_0x42e5('0xf')](respondWithResult(_0x1b60be,0xc8))[_0x42e5('0x13')](handleError(_0x1b60be,null));}else{return _0x1b60be[_0x42e5('0x7')](0x1f4)[_0x42e5('0xb')]({'message':_0x42e5('0x22')});}};exports[_0x42e5('0x23')]=function(_0x2ba9ef,_0x2c7542){if(_0x2ba9ef[_0x42e5('0x17')]['id']){delete _0x2ba9ef[_0x42e5('0x17')]['id'];}if(_0x2ba9ef['params']['id']){return pm2[_0x42e5('0x24')](_0x2ba9ef[_0x42e5('0x16')]['id'])[_0x42e5('0xf')](function(_0x156e73){pm2['dump']();return _0x156e73[0x0];})['then'](respondWithResult(_0x2c7542,null))[_0x42e5('0x13')](handleError(_0x2c7542,null));}else{return _0x2c7542['status'](0x1f4)[_0x42e5('0xb')]({'message':'Unknown\x20id'});}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfdcd=['getQueues','exports','express','Router','../../components/auth/service','./realtime.controller','/agents','isAuthenticated','getAgents','get'];(function(_0x5266f3,_0x3a9dff){var _0x319800=function(_0x217f2a){while(--_0x217f2a){_0x5266f3['push'](_0x5266f3['shift']());}};_0x319800(++_0x3a9dff);}(_0xfdcd,0x138));var _0xdfdc=function(_0x2dafbe,_0x5d04de){_0x2dafbe=_0x2dafbe-0x0;var _0x58a45a=_0xfdcd[_0x2dafbe];return _0x58a45a;};'use strict';var express=require(_0xdfdc('0x0'));var router=express[_0xdfdc('0x1')]();var auth=require(_0xdfdc('0x2'));var controller=require(_0xdfdc('0x3'));router['get'](_0xdfdc('0x4'),auth[_0xdfdc('0x5')](),controller[_0xdfdc('0x6')]);router[_0xdfdc('0x7')]('/queues',auth[_0xdfdc('0x5')](),controller[_0xdfdc('0x8')]);module[_0xdfdc('0x9')]=router;
\ No newline at end of file
+var _0x9ad7=['exports','Router','./realtime.controller','get','/agents','isAuthenticated','/queues','getQueues'];(function(_0x1b15b4,_0x4b5d7c){var _0x10d385=function(_0x2be5c6){while(--_0x2be5c6){_0x1b15b4['push'](_0x1b15b4['shift']());}};_0x10d385(++_0x4b5d7c);}(_0x9ad7,0x179));var _0x79ad=function(_0x1da04e,_0x31024b){_0x1da04e=_0x1da04e-0x0;var _0xdd8c41=_0x9ad7[_0x1da04e];return _0xdd8c41;};'use strict';var express=require('express');var router=express[_0x79ad('0x0')]();var auth=require('../../components/auth/service');var controller=require(_0x79ad('0x1'));router[_0x79ad('0x2')](_0x79ad('0x3'),auth[_0x79ad('0x4')](),controller['getAgents']);router[_0x79ad('0x2')](_0x79ad('0x5'),auth[_0x79ad('0x4')](),controller[_0x79ad('0x6')]);module[_0x79ad('0x7')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x213e=['dialPredictiveInterval','dialPredictiveIntervalMaxThreshold','predictiveIntervalAvailable','predictiveIntervalTotalCalls','predictiveIntervalAnsweredCalls','predictiveIntervalDroppedCallsTimeout','predictiveIntervalDroppedCallsCallersExit','predictiveIntervalAvgHoldtime','predictiveIntervalAvgTalktime','get','paused','available','busy','outbound','merge','queue','some','connectedlinenum','internal','toString','find','UserId','accountcode','online','User','findAll','length','agents','idle','unknown','unavailable','faxPause','openchannelPause','smsPause','voicePause','every','voiceStatus','pause','chatStatus','mailStatus','smsStatus','whatsappStatus','*pause','getAgents','userpic','lastLoginAt','lastPauseAt','pauseType','chatPause','whatsappPause','openchannelCapacity','mailCapacity','smsCapacity','whatsappCapacity','faxCapacity','mailCurrentCapacity','smsCurrentCapacity','whatsappCurrentCapacity','faxCurrentCapacity','openchannelStatus','chatStatusTime','openchannelStatusTime','mailStatusTime','smsStatusTime','whatsappStatusTime','voiceStatusTime','destconnectedlinenum','screenrecording','phoneBarEnableAutomaticScreenRecording','routealias','mailPause','resolve','fieldName','type','key','query','agent','raw','user','role','nolimit','sort','filter','getResources','rows','map','omit','globalStatus','pauseTypeFilter','getQueues','mail','chat','sms','openchannel','fax','whatsapp','channel','includes','toLowerCase','Invalid\x20channel','Queue','rawAttributes','getOptions','QueueCampaigns','Queues','UserProfile','findAndCountAll','util','lodash','jayson/promise','../../config/logger','api','../../mysqldb','client','http','offset','undefined','limit','count','set','Content-Range','json','error','name','status','send','Agents','then','Unable\x20to\x20retrieve\x20RPC\x20agents\x20(AMI)','result','request','catch','voice','startCase','format','Unable\x20to\x20retrieve\x20RPC\x20%s\x20queues','VoiceQueuesChannels','Unable\x20to\x20retrieve\x20voice\x20queues\x20channels','loggedIn','waiting','talking','push','pTalking','originated','message','dialActive','dialMethod','startProgressive','erlangCalls','erlangAbandonmentRate'];(function(_0x55fa03,_0xcb96c2){var _0x2cd7cd=function(_0x56611f){while(--_0x56611f){_0x55fa03['push'](_0x55fa03['shift']());}};_0x2cd7cd(++_0xcb96c2);}(_0x213e,0x101));var _0xe213=function(_0x25af26,_0x594bb2){_0x25af26=_0x25af26-0x0;var _0x1ba68c=_0x213e[_0x25af26];return _0x1ba68c;};'use strict';var util=require(_0xe213('0x0'));var _=require(_0xe213('0x1'));var jayson=require(_0xe213('0x2'));var qs=require('../../components/parsers/qs');var logger=require(_0xe213('0x3'))(_0xe213('0x4'));var db=require(_0xe213('0x5'))['db'];var amiClient=jayson[_0xe213('0x6')][_0xe213('0x7')]({'port':0x232a});var routingClient=jayson['client'][_0xe213('0x7')]({'port':0x232c});function respondWithFilteredResult(_0x30757d,_0x698f4b){return function(_0x5ee94e){if(_0x5ee94e){var _0x55aea6=typeof _0x698f4b[_0xe213('0x8')]===_0xe213('0x9')&&typeof _0x698f4b[_0xe213('0xa')]===_0xe213('0x9');var _0x841e63=_0x5ee94e[_0xe213('0xb')];var _0x1b85bf=_0x55aea6?0x0:_0x698f4b[_0xe213('0x8')];var _0x366515=_0x55aea6?_0x5ee94e[_0xe213('0xb')]:_0x698f4b['offset']+_0x698f4b[_0xe213('0xa')];var _0x132583;if(_0x366515>=_0x841e63){_0x366515=_0x841e63;_0x132583=0xc8;}else{_0x132583=0xce;}_0x30757d['status'](_0x132583);return _0x30757d[_0xe213('0xc')](_0xe213('0xd'),_0x1b85bf+'-'+_0x366515+'/'+_0x841e63)[_0xe213('0xe')](_0x5ee94e);}return null;};}function handleError(_0x4981c5,_0x3620a0){_0x3620a0=_0x3620a0||0x1f4;return function(_0x42c4f3){logger[_0xe213('0xf')](_0x42c4f3['stack']);if(_0x42c4f3[_0xe213('0x10')]){delete _0x42c4f3['name'];}_0x4981c5[_0xe213('0x11')](_0x3620a0)[_0xe213('0x12')](_0x42c4f3);};}function getRealtimeAgents(){return new Promise(function(_0x3d985c,_0x59eeb1){return amiClient['request'](_0xe213('0x13'),{})[_0xe213('0x14')](function(_0x40163e){if(_0x40163e[_0xe213('0xf')])throw new Error(_0xe213('0x15'));var _0x152819=_0x40163e[_0xe213('0x16')];return routingClient[_0xe213('0x17')]('Agents',{})[_0xe213('0x14')](function(_0x39d722){if(_0x39d722['error'])throw new Error('Unable\x20to\x20retrieve\x20RPC\x20agents\x20(Routing)');var _0x275014=_0x39d722['result'];return _0x3d985c(_['merge']({},_0x152819,_0x275014));});})[_0xe213('0x18')](function(_0x2a690c){_0x59eeb1(_0x2a690c);});});}function getRealtimeQueues(_0x1132fd,_0x2ec393){return new Promise(function(_0x39fafe,_0xdfa999){var _0x44862c=_0x2ec393===_0xe213('0x19')?amiClient:routingClient;return _0x44862c['request'](_[_0xe213('0x1a')](_0x2ec393)+'Queues',_0x1132fd)[_0xe213('0x14')](function(_0x34112b){if(_0x34112b[_0xe213('0xf')])throw new Error(util[_0xe213('0x1b')](_0xe213('0x1c'),_0x2ec393));return _0x39fafe(_0x34112b['result']);})['catch'](function(_0x358a0c){_0xdfa999(_0x358a0c);});});}function getRealtimeVoiceQueueChannels(){return new Promise(function(_0x5d7b89,_0xfc7d3){return amiClient[_0xe213('0x17')](_0xe213('0x1d'),{})[_0xe213('0x14')](function(_0x1e6be7){if(_0x1e6be7['error'])throw new Error(_0xe213('0x1e'));return _0x5d7b89(_0x1e6be7[_0xe213('0x16')]);})[_0xe213('0x18')](function(_0xa6cd34){_0xfc7d3(_0xa6cd34);});});}function initializeQueues(_0x36e9b6,_0x49f8b7,_0x39f9d6,_0x471740){var _0x30e522=[_0xe213('0x1f'),'available',_0xe213('0x20'),_0xe213('0x21'),'paused'];if(_0x39f9d6===_0xe213('0x19')&&_0x471740==='outbound'){_0x30e522[_0xe213('0x22')](_0xe213('0x23'),_0xe213('0x24'),_0xe213('0x25'),_0xe213('0x26'),_0xe213('0x27'),'Trunk','startPredictive',_0xe213('0x28'),_0xe213('0x29'),'erlangCallToSecond',_0xe213('0x2a'),'erlangBusyFactor',_0xe213('0x2b'),_0xe213('0x2c'),'dialPredictiveIntervalMinThreshold',_0xe213('0x2d'),_0xe213('0x2e'),_0xe213('0x2f'),_0xe213('0x30'),_0xe213('0x31'),_0xe213('0x32'),_0xe213('0x33'));}return _0x36e9b6['map'](function(_0x3b3d64){var _0x461649=_0x3b3d64[_0xe213('0x34')]({'plain':!![]});_0x461649['agents']=[];_0x461649[_0xe213('0x35')]=0x0;_0x461649['loggedInDb']=0x0;_0x461649['loggedIn']=0x0;_0x461649[_0xe213('0x36')]=0x0;_0x461649[_0xe213('0x20')]=0x0;if(_0x39f9d6===_0xe213('0x19')){_0x461649[_0xe213('0x21')]=0x0;_0x461649[_0xe213('0x37')]=0x0;if(_0x471740===_0xe213('0x38')){_0x461649[_0xe213('0x23')]=0x0;_0x461649[_0xe213('0x24')]=0x0;}}var _0x306d2a=_['find'](_0x49f8b7,['id',_0x461649['id']]);if(_0x306d2a)_[_0xe213('0x39')](_0x461649,_['pick'](_0x306d2a,_0x30e522));return _0x461649;});}function updateAgentVoiceStatus(_0x59b4be,_0x3fe940,_0x4684c6){var _0x1f106f=_['filter'](_0x4684c6,[_0xe213('0x3a'),_0x3fe940[_0xe213('0x10')]]);if(_0x1f106f['length']===0x0)return _0x59b4be[_0xe213('0x37')]=!![];if(_[_0xe213('0x3b')](_0x1f106f,[_0xe213('0x3c'),_0x59b4be[_0xe213('0x3d')][_0xe213('0x3e')]()]))return _0x59b4be[_0xe213('0x21')]=!![];if(!_0x59b4be['talking'])return _0x59b4be['busy']=!![];}function getVoiceQueueAgents(_0x49b0d8,_0x860821,_0x501c84,_0x448632){var _0x3ba412=_[_0xe213('0x3f')](_0x860821,['id',_0x49b0d8['id']]);if(!_0x3ba412)return _0x49b0d8;return _0x3ba412['getMembers']({'raw':!![]})['then'](function(_0x1439aa){for(var _0x389501=0x0;_0x389501<_0x1439aa['length'];_0x389501++){var _0x85a2a4=_['find'](_0x501c84,['id',_0x1439aa[_0x389501][_0xe213('0x40')]]);if(!_0x85a2a4){_0x85a2a4={'id':_0x1439aa[_0x389501][_0xe213('0x40')],'name':_0x1439aa[_0x389501][_0xe213('0x40')],'accountcode':'','online':![]};}var _0x41a561={'id':_0x85a2a4['id'],'name':_0x85a2a4['name'],'internal':_0x85a2a4[_0xe213('0x41')],'online':Boolean(_0x85a2a4[_0xe213('0x42')]),'paused':Boolean(_0x1439aa[_0x389501][_0xe213('0x35')])};if(_0x85a2a4['voiceStatus']===_0xe213('0x21'))updateAgentVoiceStatus(_0x41a561,_0x49b0d8,_0x448632);if(_0x41a561['online'])_0x49b0d8['loggedInDb']++;if(_0x41a561[_0xe213('0x37')])_0x49b0d8[_0xe213('0x37')]++;if(_0x41a561[_0xe213('0x35')]&&!_0x41a561[_0xe213('0x37')]&&!_0x41a561[_0xe213('0x21')])_0x49b0d8[_0xe213('0x35')]++;_0x49b0d8['agents'][_0xe213('0x22')](_0x41a561);}return _0x49b0d8;});}function getQueueAgents(_0x5a2fd1,_0x3048cd,_0x2df7f5){var _0x51ac83=_0xe213('0x43')+_[_0xe213('0x1a')](_0x2df7f5)+'Queue';var _0x216d39=_0x2df7f5+'Pause';return db[_0x51ac83][_0xe213('0x44')]({'where':{[_[_0xe213('0x1a')](_0x2df7f5)+'QueueId']:_0x5a2fd1['id']},'raw':!![]})[_0xe213('0x14')](function(_0x58cf88){for(var _0x17dfa7=0x0;_0x17dfa7<_0x58cf88[_0xe213('0x45')];_0x17dfa7++){var _0x97f5c9=_[_0xe213('0x3f')](_0x3048cd,['id',_0x58cf88[_0x17dfa7][_0xe213('0x40')]]);if(!_0x97f5c9){_0x97f5c9={'id':_0x58cf88[_0x17dfa7][_0xe213('0x40')],'name':_0x58cf88[_0x17dfa7][_0xe213('0x40')],'online':![],['pauseField']:![]};}var _0x1791d3={'id':_0x97f5c9['id'],'name':_0x97f5c9[_0xe213('0x10')],'online':Boolean(_0x97f5c9['online']),'paused':Boolean(_0x97f5c9[_0x216d39])};if(_0x1791d3[_0xe213('0x42')])_0x5a2fd1['loggedInDb']++;_0x5a2fd1[_0xe213('0x46')][_0xe213('0x22')](_0x1791d3);}return _0x5a2fd1;});}function isIdle(_0x8a3c1b){return _0x8a3c1b===_0xe213('0x47')||_0x8a3c1b===_0xe213('0x48')||_0x8a3c1b===_0xe213('0x49')||_0x8a3c1b==='ringing'||_['isNil'](_0x8a3c1b);}function isAgentPaused(_0x1da1e2,_0x149d34){var _0x76c87f=[_0x1da1e2['chatPause'],_0x1da1e2[_0xe213('0x4a')],_0x1da1e2['mailPause'],_0x1da1e2[_0xe213('0x4b')],_0x1da1e2[_0xe213('0x4c')],_0x1da1e2[_0xe213('0x4d')],_0x1da1e2['whatsappPause']];if(!_0x149d34)return _[_0xe213('0x4e')](_0x76c87f);var _0x10fb75=_['filter'](_0x76c87f);return _0x10fb75['length']>0x0&&_0x10fb75[_0xe213('0x45')]<_0x76c87f[_0xe213('0x45')]?!![]:![];}function isAgentIdle(_0x597c30){if(_0x597c30[_0xe213('0x4f')]!==_0xe213('0x47')&&_0x597c30['voicePause']){_0x597c30[_0xe213('0x4f')]=_0xe213('0x50');return![];}return _[_0xe213('0x4e')]([_0x597c30[_0xe213('0x51')],_0x597c30['faxStatus'],_0x597c30[_0xe213('0x52')],_0x597c30['openchannelStatus'],_0x597c30[_0xe213('0x53')],_0x597c30[_0xe213('0x4f')],_0x597c30[_0xe213('0x54')]],isIdle);}function getAgentStatus(_0xe69a){var _0x2c69d1=_0xe213('0x48');if(isAgentPaused(_0xe69a))_0x2c69d1=_0xe213('0x50');else if(isAgentPaused(_0xe69a,!![]))_0x2c69d1=_0xe213('0x55');else if(isAgentIdle(_0xe69a))_0x2c69d1=_0xe213('0x47');else _0x2c69d1='busy';return _0x2c69d1;}exports[_0xe213('0x56')]=function(_0x1234a3,_0x54bc72){var _0x5a669e={'count':0x0,'rows':[]},_0x4759bc={},_0x2aa125,_0x351c5a,_0x393be7=[_0xe213('0x57'),_0xe213('0x42'),_0xe213('0x58'),_0xe213('0x59'),_0xe213('0x5a'),'lastPauseAt',_0xe213('0x3d'),'address',_0xe213('0x5b'),'openchannelPause','mailPause',_0xe213('0x4c'),_0xe213('0x5c'),_0xe213('0x4a'),_0xe213('0x4d'),'chatCapacity',_0xe213('0x5d'),_0xe213('0x5e'),_0xe213('0x5f'),_0xe213('0x60'),_0xe213('0x61'),'chatCurrentCapacity','openchannelCurrentCapacity',_0xe213('0x62'),_0xe213('0x63'),_0xe213('0x64'),_0xe213('0x65'),_0xe213('0x51'),_0xe213('0x66'),_0xe213('0x52'),_0xe213('0x53'),_0xe213('0x54'),'faxStatus','voiceStatus',_0xe213('0x67'),_0xe213('0x68'),_0xe213('0x69'),_0xe213('0x6a'),_0xe213('0x6b'),'faxStatusTime',_0xe213('0x6c'),_0xe213('0x3a'),_0xe213('0x6d'),_0xe213('0x6e'),'phoneBarEnableScreenRecordingByAgent',_0xe213('0x6f'),_0xe213('0x70')],_0x1f8035=['chatPause',_0xe213('0x4b'),_0xe213('0x71'),_0xe213('0x4c'),_0xe213('0x5c'),_0xe213('0x4a'),_0xe213('0x4d'),_0xe213('0x42')];Promise[_0xe213('0x72')]()[_0xe213('0x14')](function(){var _0x2a3593=_['map'](db[_0xe213('0x43')]['rawAttributes'],function(_0x2e65b){return{'name':_0x2e65b[_0xe213('0x73')],'type':_0x2e65b[_0xe213('0x74')][_0xe213('0x75')]};});_0x1234a3[_0xe213('0x76')]['role']=_0xe213('0x77');_0x1234a3['query'][_0xe213('0x42')]=!![];_0x4759bc=qs['getOptions'](_0x2a3593,_0x1234a3);_0x4759bc[_0xe213('0x78')]=!![];if(_0x1234a3[_0xe213('0x79')][_0xe213('0x7a')]===_0xe213('0x79')){var _0x5afd48={'params':{'id':_0x1234a3[_0xe213('0x79')]['userProfileId']},'query':{'section':_0xe213('0x13'),'role':_0xe213('0x77'),'online':!![],'nolimit':_0x1234a3[_0xe213('0x76')][_0xe213('0x7b')],'sort':_0x1234a3[_0xe213('0x76')][_0xe213('0x7c')],'filter':_0x1234a3[_0xe213('0x76')][_0xe213('0x7d')]},'raw':!![]};return db['UserProfile'][_0xe213('0x7e')](_0x5afd48);}return db['User']['findAndCountAll'](_0x4759bc);})[_0xe213('0x14')](function(_0x34fb70){_0x5a669e[_0xe213('0xb')]=_0x34fb70['count'];_0x2aa125=_0x34fb70[_0xe213('0x7f')];return getRealtimeAgents();})[_0xe213('0x14')](function(_0x5b9cee){_0x351c5a=_0x5b9cee[_0xe213('0x7f')];return _0x2aa125[_0xe213('0x80')](function(_0xbeb964){var _0x518006=_[_0xe213('0x3f')](_0x351c5a,['id',_0xbeb964['id']]);if(_0x518006)_[_0xe213('0x39')](_0xbeb964,_['pick'](_[_0xe213('0x81')](_0x518006,_0x1f8035),_0x393be7));_0xbeb964[_0xe213('0x82')]=getAgentStatus(_0xbeb964);return _0xbeb964;});})[_0xe213('0x14')](function(_0x4b7ced){if(_0x1234a3[_0xe213('0x76')]['globalStatusFilter']){var _0x43c932=_[_0xe213('0x7d')](_0x4b7ced,[_0xe213('0x82'),_0x1234a3[_0xe213('0x76')]['globalStatusFilter']]);if(_0x1234a3[_0xe213('0x76')][_0xe213('0x83')]){_0x43c932=_[_0xe213('0x7d')](_0x43c932,[_0xe213('0x5a'),_0x1234a3[_0xe213('0x76')][_0xe213('0x83')]]);}}_0x5a669e[_0xe213('0x7f')]=_0x43c932||_0x4b7ced;return _0x5a669e;})['then'](respondWithFilteredResult(_0x54bc72,_0x4759bc))[_0xe213('0x18')](handleError(_0x54bc72,null));};exports[_0xe213('0x84')]=function(_0x29c46c,_0x28819d){var _0x243996=[_0xe213('0x85'),_0xe213('0x86'),_0xe213('0x87'),_0xe213('0x88'),_0xe213('0x89'),_0xe213('0x8a'),_0xe213('0x19')];var _0x3c6ee4={'count':0x0,'rows':[]},_0x3ae7ac={},_0x5790a9,_0x3cab34,_0x5d3c1d,_0x221dec,_0x1300f1;Promise[_0xe213('0x72')]()[_0xe213('0x14')](function(){if(_0x29c46c['query'][_0xe213('0x8b')]){if(!_[_0xe213('0x8c')](_0x243996,_0x29c46c[_0xe213('0x76')][_0xe213('0x8b')][_0xe213('0x8d')]()))throw new Error(_0xe213('0x8e'));_0x5790a9=_0x29c46c[_0xe213('0x76')]['channel'][_0xe213('0x8d')]();}var _0x17e1d4=_[_0xe213('0x1a')](_0x5790a9)+_0xe213('0x8f');var _0x1239e3=_[_0xe213('0x80')](db[_0x17e1d4][_0xe213('0x90')],function(_0x3a21f8){return{'name':_0x3a21f8[_0xe213('0x73')],'type':_0x3a21f8['type'][_0xe213('0x75')]};});_0x3ae7ac=qs[_0xe213('0x91')](_0x1239e3,_0x29c46c);if(_0x29c46c[_0xe213('0x79')]['role']===_0xe213('0x79')){var _0x1c680e={'params':{'id':_0x29c46c[_0xe213('0x79')]['userProfileId']},'query':{'section':_0x5790a9===_0xe213('0x19')&&_0x29c46c['query']['type']===_0xe213('0x38')?_0xe213('0x92'):_[_0xe213('0x1a')](_0x5790a9)+_0xe213('0x93'),'type':_0x29c46c[_0xe213('0x76')][_0xe213('0x74')],'nolimit':!![],'sort':'name','filter':_0x29c46c['query'][_0xe213('0x7d')]}};return db[_0xe213('0x94')][_0xe213('0x7e')](_0x1c680e);}return db[_0x17e1d4][_0xe213('0x95')](_0x3ae7ac);})[_0xe213('0x14')](function(_0x4934af){_0x3c6ee4[_0xe213('0xb')]=_0x4934af['count'];_0x3cab34=_0x4934af[_0xe213('0x7f')];return getRealtimeQueues(_0x29c46c,_0x5790a9);})['then'](function(_0x34d2f8){_0x221dec=_0x34d2f8[_0xe213('0x7f')];return getRealtimeAgents();})[_0xe213('0x14')](function(_0x1fa584){_0x5d3c1d=_0x1fa584['rows'];if(_0x5790a9!=_0xe213('0x19'))return;return getRealtimeVoiceQueueChannels();})[_0xe213('0x14')](function(_0x5eb8ce){_0x1300f1=_0x5eb8ce?_0x5eb8ce[_0xe213('0x7f')]:[];return initializeQueues(_0x3cab34,_0x221dec,_0x5790a9,_0x29c46c[_0xe213('0x76')][_0xe213('0x74')]);})['then'](function(_0x2cd325){var _0x324932=_0x2cd325[_0xe213('0x80')](function(_0x325fa6){if(_0x5790a9==='voice')return getVoiceQueueAgents(_0x325fa6,_0x3cab34,_0x5d3c1d,_0x1300f1);else return getQueueAgents(_0x325fa6,_0x5d3c1d,_0x5790a9);});return Promise['all'](_0x324932);})[_0xe213('0x14')](function(_0x1917e9){_0x3c6ee4[_0xe213('0x7f')]=_0x1917e9;return _0x3c6ee4;})[_0xe213('0x14')](respondWithFilteredResult(_0x28819d,_0x3ae7ac))[_0xe213('0x18')](handleError(_0x28819d,null));};
\ No newline at end of file
+var _0xa29e=['erlangBusyFactor','dialPredictiveInterval','dialPredictiveIntervalMaxThreshold','dialPredictiveIntervalMinThreshold','predictiveIntervalAvailable','predictiveIntervalAnsweredCalls','predictiveIntervalDroppedCallsTimeout','predictiveIntervalDroppedCallsCallersExit','predictiveIntervalAvgTalktime','map','agents','loggedInDb','loggedIn','available','waiting','busy','originated','find','filter','queue','length','connectedlinenum','internal','getMembers','UserId','accountcode','online','User','Queue','Pause','findAll','idle','unknown','unavailable','ringing','chatPause','faxPause','openchannelPause','smsPause','voicePause','whatsappPause','every','voiceStatus','pause','faxStatus','mailStatus','openchannelStatus','smsStatus','whatsappStatus','*pause','getAgents','userpic','lastLoginAt','lastPauseAt','pauseType','mailPause','mailCapacity','smsCapacity','whatsappCapacity','faxCapacity','openchannelCurrentCapacity','mailCurrentCapacity','smsCurrentCapacity','faxCurrentCapacity','chatStatus','chatStatusTime','mailStatusTime','smsStatusTime','whatsappStatusTime','faxStatusTime','destconnectedlinenum','phoneBarEnableScreenRecordingByAgent','phoneBarEnableAutomaticScreenRecording','routealias','resolve','rawAttributes','fieldName','type','key','agent','query','getOptions','raw','role','userProfileId','nolimit','sort','pick','omit','globalStatus','globalStatusFilter','pauseTypeFilter','getQueues','chat','sms','openchannel','fax','whatsapp','channel','includes','toLowerCase','Invalid\x20channel','startCase','user','QueueCampaigns','UserProfile','findAndCountAll','rows','all','util','lodash','jayson/promise','../../components/parsers/qs','api','../../mysqldb','client','http','offset','undefined','count','limit','status','set','Content-Range','json','stack','name','send','request','Agents','error','Unable\x20to\x20retrieve\x20RPC\x20agents\x20(AMI)','result','merge','catch','Queues','then','format','Unable\x20to\x20retrieve\x20RPC\x20%s\x20queues','talking','paused','voice','outbound','push','pTalking','dialActive','dialMethod','Trunk','startPredictive','startProgressive'];(function(_0x12d544,_0x16d36d){var _0x28289d=function(_0x2567a3){while(--_0x2567a3){_0x12d544['push'](_0x12d544['shift']());}};_0x28289d(++_0x16d36d);}(_0xa29e,0x199));var _0xea29=function(_0xef9edb,_0x406d7b){_0xef9edb=_0xef9edb-0x0;var _0x3583e3=_0xa29e[_0xef9edb];return _0x3583e3;};'use strict';var util=require(_0xea29('0x0'));var _=require(_0xea29('0x1'));var jayson=require(_0xea29('0x2'));var qs=require(_0xea29('0x3'));var logger=require('../../config/logger')(_0xea29('0x4'));var db=require(_0xea29('0x5'))['db'];var amiClient=jayson['client']['http']({'port':0x232a});var routingClient=jayson[_0xea29('0x6')][_0xea29('0x7')]({'port':0x232c});function respondWithFilteredResult(_0x434c21,_0x28053d){return function(_0x32c1bc){if(_0x32c1bc){var _0x57af71=typeof _0x28053d[_0xea29('0x8')]===_0xea29('0x9')&&typeof _0x28053d['limit']===_0xea29('0x9');var _0x2a2eba=_0x32c1bc[_0xea29('0xa')];var _0x2bde9a=_0x57af71?0x0:_0x28053d[_0xea29('0x8')];var _0x21f6af=_0x57af71?_0x32c1bc[_0xea29('0xa')]:_0x28053d[_0xea29('0x8')]+_0x28053d[_0xea29('0xb')];var _0x5569e2;if(_0x21f6af>=_0x2a2eba){_0x21f6af=_0x2a2eba;_0x5569e2=0xc8;}else{_0x5569e2=0xce;}_0x434c21[_0xea29('0xc')](_0x5569e2);return _0x434c21[_0xea29('0xd')](_0xea29('0xe'),_0x2bde9a+'-'+_0x21f6af+'/'+_0x2a2eba)[_0xea29('0xf')](_0x32c1bc);}return null;};}function handleError(_0xed65fd,_0x131417){_0x131417=_0x131417||0x1f4;return function(_0x2ef83b){logger['error'](_0x2ef83b[_0xea29('0x10')]);if(_0x2ef83b[_0xea29('0x11')]){delete _0x2ef83b[_0xea29('0x11')];}_0xed65fd['status'](_0x131417)[_0xea29('0x12')](_0x2ef83b);};}function getRealtimeAgents(){return new Promise(function(_0x4aa9ec,_0x5bd14a){return amiClient[_0xea29('0x13')](_0xea29('0x14'),{})['then'](function(_0x4ad2a9){if(_0x4ad2a9[_0xea29('0x15')])throw new Error(_0xea29('0x16'));var _0x1687f6=_0x4ad2a9[_0xea29('0x17')];return routingClient['request'](_0xea29('0x14'),{})['then'](function(_0x448c56){if(_0x448c56['error'])throw new Error('Unable\x20to\x20retrieve\x20RPC\x20agents\x20(Routing)');var _0x3a25f7=_0x448c56[_0xea29('0x17')];return _0x4aa9ec(_[_0xea29('0x18')]({},_0x1687f6,_0x3a25f7));});})[_0xea29('0x19')](function(_0x107bed){_0x5bd14a(_0x107bed);});});}function getRealtimeQueues(_0x427c7e,_0x5b2e21){return new Promise(function(_0xaa25cc,_0x14b6e8){var _0x1c3f75=_0x5b2e21==='voice'?amiClient:routingClient;return _0x1c3f75[_0xea29('0x13')](_['startCase'](_0x5b2e21)+_0xea29('0x1a'),_0x427c7e)[_0xea29('0x1b')](function(_0x122d0d){if(_0x122d0d[_0xea29('0x15')])throw new Error(util[_0xea29('0x1c')](_0xea29('0x1d'),_0x5b2e21));return _0xaa25cc(_0x122d0d['result']);})[_0xea29('0x19')](function(_0x13e173){_0x14b6e8(_0x13e173);});});}function getRealtimeVoiceQueueChannels(){return new Promise(function(_0x1dd537,_0x5df38c){return amiClient[_0xea29('0x13')]('VoiceQueuesChannels',{})[_0xea29('0x1b')](function(_0x31e401){if(_0x31e401[_0xea29('0x15')])throw new Error('Unable\x20to\x20retrieve\x20voice\x20queues\x20channels');return _0x1dd537(_0x31e401['result']);})[_0xea29('0x19')](function(_0xcf14ba){_0x5df38c(_0xcf14ba);});});}function initializeQueues(_0x300916,_0x2c063,_0x5d9815,_0x5d751c){var _0x397148=['loggedIn','available','waiting',_0xea29('0x1e'),_0xea29('0x1f')];if(_0x5d9815===_0xea29('0x20')&&_0x5d751c===_0xea29('0x21')){_0x397148[_0xea29('0x22')](_0xea29('0x23'),'originated','message',_0xea29('0x24'),_0xea29('0x25'),_0xea29('0x26'),_0xea29('0x27'),_0xea29('0x28'),'erlangCalls','erlangCallToSecond','erlangAbandonmentRate',_0xea29('0x29'),_0xea29('0x2a'),_0xea29('0x2b'),_0xea29('0x2c'),_0xea29('0x2d'),'predictiveIntervalTotalCalls',_0xea29('0x2e'),_0xea29('0x2f'),_0xea29('0x30'),'predictiveIntervalAvgHoldtime',_0xea29('0x31'));}return _0x300916[_0xea29('0x32')](function(_0x4cd10d){var _0x1a6d2d=_0x4cd10d['get']({'plain':!![]});_0x1a6d2d[_0xea29('0x33')]=[];_0x1a6d2d[_0xea29('0x1f')]=0x0;_0x1a6d2d[_0xea29('0x34')]=0x0;_0x1a6d2d[_0xea29('0x35')]=0x0;_0x1a6d2d[_0xea29('0x36')]=0x0;_0x1a6d2d[_0xea29('0x37')]=0x0;if(_0x5d9815==='voice'){_0x1a6d2d[_0xea29('0x1e')]=0x0;_0x1a6d2d[_0xea29('0x38')]=0x0;if(_0x5d751c===_0xea29('0x21')){_0x1a6d2d[_0xea29('0x23')]=0x0;_0x1a6d2d[_0xea29('0x39')]=0x0;}}var _0x4def2b=_[_0xea29('0x3a')](_0x2c063,['id',_0x1a6d2d['id']]);if(_0x4def2b)_['merge'](_0x1a6d2d,_['pick'](_0x4def2b,_0x397148));return _0x1a6d2d;});}function updateAgentVoiceStatus(_0x5b4154,_0x4f44b2,_0x364ff0){var _0x909748=_[_0xea29('0x3b')](_0x364ff0,[_0xea29('0x3c'),_0x4f44b2[_0xea29('0x11')]]);if(_0x909748[_0xea29('0x3d')]===0x0)return _0x5b4154[_0xea29('0x38')]=!![];if(_['some'](_0x909748,[_0xea29('0x3e'),_0x5b4154[_0xea29('0x3f')]['toString']()]))return _0x5b4154[_0xea29('0x1e')]=!![];if(!_0x5b4154[_0xea29('0x1e')])return _0x5b4154[_0xea29('0x38')]=!![];}function getVoiceQueueAgents(_0x588b74,_0x3b56d0,_0x1a04a9,_0xf5cadc){var _0x108181=_[_0xea29('0x3a')](_0x3b56d0,['id',_0x588b74['id']]);if(!_0x108181)return _0x588b74;return _0x108181[_0xea29('0x40')]({'raw':!![]})[_0xea29('0x1b')](function(_0xc43ec7){for(var _0x7aa553=0x0;_0x7aa553<_0xc43ec7[_0xea29('0x3d')];_0x7aa553++){var _0x488359=_[_0xea29('0x3a')](_0x1a04a9,['id',_0xc43ec7[_0x7aa553][_0xea29('0x41')]]);if(!_0x488359){_0x488359={'id':_0xc43ec7[_0x7aa553][_0xea29('0x41')],'name':_0xc43ec7[_0x7aa553][_0xea29('0x41')],'accountcode':'','online':![]};}var _0x3049d1={'id':_0x488359['id'],'name':_0x488359[_0xea29('0x11')],'internal':_0x488359[_0xea29('0x42')],'online':Boolean(_0x488359[_0xea29('0x43')]),'paused':Boolean(_0xc43ec7[_0x7aa553]['paused'])};if(_0x488359['voiceStatus']===_0xea29('0x1e'))updateAgentVoiceStatus(_0x3049d1,_0x588b74,_0xf5cadc);if(_0x3049d1['online'])_0x588b74[_0xea29('0x34')]++;if(_0x3049d1[_0xea29('0x38')])_0x588b74[_0xea29('0x38')]++;if(_0x3049d1['paused']&&!_0x3049d1[_0xea29('0x38')]&&!_0x3049d1[_0xea29('0x1e')])_0x588b74[_0xea29('0x1f')]++;_0x588b74['agents'][_0xea29('0x22')](_0x3049d1);}return _0x588b74;});}function getQueueAgents(_0x2bcf03,_0x4629a9,_0x594c53){var _0x49f5ca=_0xea29('0x44')+_['startCase'](_0x594c53)+_0xea29('0x45');var _0x28d738=_0x594c53+_0xea29('0x46');return db[_0x49f5ca][_0xea29('0x47')]({'where':{[_['startCase'](_0x594c53)+'QueueId']:_0x2bcf03['id']},'raw':!![]})[_0xea29('0x1b')](function(_0x2130aa){for(var _0x6f0846=0x0;_0x6f0846<_0x2130aa[_0xea29('0x3d')];_0x6f0846++){var _0x53040b=_[_0xea29('0x3a')](_0x4629a9,['id',_0x2130aa[_0x6f0846][_0xea29('0x41')]]);if(!_0x53040b){_0x53040b={'id':_0x2130aa[_0x6f0846][_0xea29('0x41')],'name':_0x2130aa[_0x6f0846][_0xea29('0x41')],'online':![],['pauseField']:![]};}var _0x2358fb={'id':_0x53040b['id'],'name':_0x53040b[_0xea29('0x11')],'online':Boolean(_0x53040b[_0xea29('0x43')]),'paused':Boolean(_0x53040b[_0x28d738])};if(_0x2358fb[_0xea29('0x43')])_0x2bcf03[_0xea29('0x34')]++;_0x2bcf03[_0xea29('0x33')]['push'](_0x2358fb);}return _0x2bcf03;});}function isIdle(_0x31656b){return _0x31656b===_0xea29('0x48')||_0x31656b===_0xea29('0x49')||_0x31656b===_0xea29('0x4a')||_0x31656b===_0xea29('0x4b')||_['isNil'](_0x31656b);}function isAgentPaused(_0x29e5d7,_0x34e38f){var _0x48ad63=[_0x29e5d7[_0xea29('0x4c')],_0x29e5d7[_0xea29('0x4d')],_0x29e5d7['mailPause'],_0x29e5d7[_0xea29('0x4e')],_0x29e5d7[_0xea29('0x4f')],_0x29e5d7[_0xea29('0x50')],_0x29e5d7[_0xea29('0x51')]];if(!_0x34e38f)return _[_0xea29('0x52')](_0x48ad63);var _0x4d4a98=_[_0xea29('0x3b')](_0x48ad63);return _0x4d4a98[_0xea29('0x3d')]>0x0&&_0x4d4a98[_0xea29('0x3d')]<_0x48ad63[_0xea29('0x3d')]?!![]:![];}function isAgentIdle(_0x529880){if(_0x529880[_0xea29('0x53')]!=='idle'&&_0x529880[_0xea29('0x50')]){_0x529880[_0xea29('0x53')]=_0xea29('0x54');return![];}return _[_0xea29('0x52')]([_0x529880['chatStatus'],_0x529880[_0xea29('0x55')],_0x529880[_0xea29('0x56')],_0x529880[_0xea29('0x57')],_0x529880[_0xea29('0x58')],_0x529880['voiceStatus'],_0x529880[_0xea29('0x59')]],isIdle);}function getAgentStatus(_0x390ea8){var _0x2f9970=_0xea29('0x49');if(isAgentPaused(_0x390ea8))_0x2f9970='pause';else if(isAgentPaused(_0x390ea8,!![]))_0x2f9970=_0xea29('0x5a');else if(isAgentIdle(_0x390ea8))_0x2f9970=_0xea29('0x48');else _0x2f9970=_0xea29('0x38');return _0x2f9970;}exports[_0xea29('0x5b')]=function(_0x4a2fab,_0x56124f){var _0x285f88={'count':0x0,'rows':[]},_0x516a7f={},_0x4dac74,_0x535c9a,_0x28d6da=[_0xea29('0x5c'),_0xea29('0x43'),_0xea29('0x5d'),_0xea29('0x5e'),_0xea29('0x5f'),'lastPauseAt',_0xea29('0x3f'),'address',_0xea29('0x4c'),_0xea29('0x4e'),_0xea29('0x60'),_0xea29('0x4f'),_0xea29('0x51'),_0xea29('0x4d'),'voicePause','chatCapacity','openchannelCapacity',_0xea29('0x61'),_0xea29('0x62'),_0xea29('0x63'),_0xea29('0x64'),'chatCurrentCapacity',_0xea29('0x65'),_0xea29('0x66'),_0xea29('0x67'),'whatsappCurrentCapacity',_0xea29('0x68'),_0xea29('0x69'),_0xea29('0x57'),'mailStatus',_0xea29('0x58'),_0xea29('0x59'),_0xea29('0x55'),_0xea29('0x53'),_0xea29('0x6a'),'openchannelStatusTime',_0xea29('0x6b'),_0xea29('0x6c'),_0xea29('0x6d'),_0xea29('0x6e'),'voiceStatusTime',_0xea29('0x3c'),_0xea29('0x6f'),'screenrecording',_0xea29('0x70'),_0xea29('0x71'),_0xea29('0x72')],_0x12f47b=[_0xea29('0x4c'),'openchannelPause',_0xea29('0x60'),_0xea29('0x4f'),_0xea29('0x51'),_0xea29('0x4d'),_0xea29('0x50'),'online'];Promise[_0xea29('0x73')]()['then'](function(){var _0x5abcb4=_[_0xea29('0x32')](db['User'][_0xea29('0x74')],function(_0x3a7a70){return{'name':_0x3a7a70[_0xea29('0x75')],'type':_0x3a7a70[_0xea29('0x76')][_0xea29('0x77')]};});_0x4a2fab['query']['role']=_0xea29('0x78');_0x4a2fab[_0xea29('0x79')]['online']=!![];_0x516a7f=qs[_0xea29('0x7a')](_0x5abcb4,_0x4a2fab);_0x516a7f[_0xea29('0x7b')]=!![];if(_0x4a2fab['user'][_0xea29('0x7c')]==='user'){var _0x4566ee={'params':{'id':_0x4a2fab['user'][_0xea29('0x7d')]},'query':{'section':_0xea29('0x14'),'role':'agent','online':!![],'nolimit':_0x4a2fab[_0xea29('0x79')][_0xea29('0x7e')],'sort':_0x4a2fab[_0xea29('0x79')][_0xea29('0x7f')],'filter':_0x4a2fab['query'][_0xea29('0x3b')]},'raw':!![]};return db['UserProfile']['getResources'](_0x4566ee);}return db[_0xea29('0x44')]['findAndCountAll'](_0x516a7f);})[_0xea29('0x1b')](function(_0x4aaf21){_0x285f88[_0xea29('0xa')]=_0x4aaf21[_0xea29('0xa')];_0x4dac74=_0x4aaf21['rows'];return getRealtimeAgents();})[_0xea29('0x1b')](function(_0x33c50f){_0x535c9a=_0x33c50f['rows'];return _0x4dac74[_0xea29('0x32')](function(_0x162e5e){var _0x5aa2b2=_[_0xea29('0x3a')](_0x535c9a,['id',_0x162e5e['id']]);if(_0x5aa2b2)_[_0xea29('0x18')](_0x162e5e,_[_0xea29('0x80')](_[_0xea29('0x81')](_0x5aa2b2,_0x12f47b),_0x28d6da));_0x162e5e[_0xea29('0x82')]=getAgentStatus(_0x162e5e);return _0x162e5e;});})[_0xea29('0x1b')](function(_0x285984){if(_0x4a2fab[_0xea29('0x79')][_0xea29('0x83')]){var _0x291f09=_[_0xea29('0x3b')](_0x285984,[_0xea29('0x82'),_0x4a2fab[_0xea29('0x79')]['globalStatusFilter']]);if(_0x4a2fab[_0xea29('0x79')][_0xea29('0x84')]){_0x291f09=_[_0xea29('0x3b')](_0x291f09,[_0xea29('0x5f'),_0x4a2fab[_0xea29('0x79')]['pauseTypeFilter']]);}}_0x285f88['rows']=_0x291f09||_0x285984;return _0x285f88;})[_0xea29('0x1b')](respondWithFilteredResult(_0x56124f,_0x516a7f))[_0xea29('0x19')](handleError(_0x56124f,null));};exports[_0xea29('0x85')]=function(_0x3527d5,_0xe30f27){var _0x5330fb=['mail',_0xea29('0x86'),_0xea29('0x87'),_0xea29('0x88'),_0xea29('0x89'),_0xea29('0x8a'),'voice'];var _0x305121={'count':0x0,'rows':[]},_0x5d3820={},_0xee89f1,_0x30d331,_0x3ad9c7,_0x25a1b5,_0xc8580a;Promise[_0xea29('0x73')]()['then'](function(){if(_0x3527d5[_0xea29('0x79')][_0xea29('0x8b')]){if(!_[_0xea29('0x8c')](_0x5330fb,_0x3527d5['query'][_0xea29('0x8b')][_0xea29('0x8d')]()))throw new Error(_0xea29('0x8e'));_0xee89f1=_0x3527d5['query'][_0xea29('0x8b')][_0xea29('0x8d')]();}var _0x2e511c=_[_0xea29('0x8f')](_0xee89f1)+_0xea29('0x45');var _0x1b6bc9=_[_0xea29('0x32')](db[_0x2e511c][_0xea29('0x74')],function(_0x1b4d1f){return{'name':_0x1b4d1f['fieldName'],'type':_0x1b4d1f[_0xea29('0x76')][_0xea29('0x77')]};});_0x5d3820=qs['getOptions'](_0x1b6bc9,_0x3527d5);if(_0x3527d5['user']['role']===_0xea29('0x90')){var _0x2cb0a2={'params':{'id':_0x3527d5['user']['userProfileId']},'query':{'section':_0xee89f1===_0xea29('0x20')&&_0x3527d5[_0xea29('0x79')][_0xea29('0x76')]==='outbound'?_0xea29('0x91'):_[_0xea29('0x8f')](_0xee89f1)+_0xea29('0x1a'),'type':_0x3527d5[_0xea29('0x79')][_0xea29('0x76')],'nolimit':!![],'sort':'name','filter':_0x3527d5[_0xea29('0x79')][_0xea29('0x3b')]}};return db[_0xea29('0x92')]['getResources'](_0x2cb0a2);}return db[_0x2e511c][_0xea29('0x93')](_0x5d3820);})[_0xea29('0x1b')](function(_0x58fb6f){_0x305121[_0xea29('0xa')]=_0x58fb6f[_0xea29('0xa')];_0x30d331=_0x58fb6f[_0xea29('0x94')];return getRealtimeQueues(_0x3527d5,_0xee89f1);})[_0xea29('0x1b')](function(_0x52bb8d){_0x25a1b5=_0x52bb8d[_0xea29('0x94')];return getRealtimeAgents();})[_0xea29('0x1b')](function(_0x343235){_0x3ad9c7=_0x343235[_0xea29('0x94')];if(_0xee89f1!=_0xea29('0x20'))return;return getRealtimeVoiceQueueChannels();})['then'](function(_0x9bb1f4){_0xc8580a=_0x9bb1f4?_0x9bb1f4[_0xea29('0x94')]:[];return initializeQueues(_0x30d331,_0x25a1b5,_0xee89f1,_0x3527d5['query'][_0xea29('0x76')]);})['then'](function(_0xfc0284){var _0xe344fd=_0xfc0284[_0xea29('0x32')](function(_0x460b93){if(_0xee89f1===_0xea29('0x20'))return getVoiceQueueAgents(_0x460b93,_0x30d331,_0x3ad9c7,_0xc8580a);else return getQueueAgents(_0x460b93,_0x3ad9c7,_0xee89f1);});return Promise[_0xea29('0x95')](_0xe344fd);})[_0xea29('0x1b')](function(_0x249355){_0x305121[_0xea29('0x94')]=_0x249355;return _0x305121;})[_0xea29('0x1b')](respondWithFilteredResult(_0xe30f27,_0x5d3820))[_0xea29('0x19')](handleError(_0xe30f27,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9c44=['express','Router','fs-extra','../../components/auth/service','exports','path','connect-timeout'];(function(_0x2eb828,_0x5b4396){var _0xdb47b7=function(_0x5797cb){while(--_0x5797cb){_0x2eb828['push'](_0x2eb828['shift']());}};_0xdb47b7(++_0x5b4396);}(_0x9c44,0x178));var _0x49c4=function(_0x68c979,_0x431cff){_0x68c979=_0x68c979-0x0;var _0x4f0001=_0x9c44[_0x68c979];return _0x4f0001;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x49c4('0x0'));var timeout=require(_0x49c4('0x1'));var express=require(_0x49c4('0x2'));var router=express[_0x49c4('0x3')]();var fs_extra=require(_0x49c4('0x4'));var auth=require(_0x49c4('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');module[_0x49c4('0x6')]=router;
\ No newline at end of file
+var _0x9c44=['express','Router','fs-extra','../../components/auth/service','exports','path','connect-timeout'];(function(_0x388914,_0x3c63f9){var _0x1f9111=function(_0x23dd69){while(--_0x23dd69){_0x388914['push'](_0x388914['shift']());}};_0x1f9111(++_0x3c63f9);}(_0x9c44,0x178));var _0x49c4=function(_0xdea41a,_0x552987){_0xdea41a=_0xdea41a-0x0;var _0x15d0d8=_0x9c44[_0xdea41a];return _0x15d0d8;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x49c4('0x0'));var timeout=require(_0x49c4('0x1'));var express=require(_0x49c4('0x2'));var router=express[_0x49c4('0x3')]();var fs_extra=require(_0x49c4('0x4'));var auth=require(_0x49c4('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');module[_0x49c4('0x6')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdcc4=['exports','INTEGER','STRING','DATE','sequelize'];(function(_0xac151d,_0x4ea1d2){var _0x111dba=function(_0x13d7f4){while(--_0x13d7f4){_0xac151d['push'](_0xac151d['shift']());}};_0x111dba(++_0x4ea1d2);}(_0xdcc4,0xea));var _0x4dcc=function(_0x10e854,_0x5df8b7){_0x10e854=_0x10e854-0x0;var _0x1b9782=_0xdcc4[_0x10e854];return _0x1b9782;};'use strict';var Sequelize=require(_0x4dcc('0x0'));module[_0x4dcc('0x1')]={'state':{'type':Sequelize[_0x4dcc('0x2')](0x2)},'statedesc':{'type':Sequelize[_0x4dcc('0x3')]},'scheduledat':{'type':Sequelize[_0x4dcc('0x4')]},'uniqueid':{'type':Sequelize['STRING']},'starttime':{'type':Sequelize[_0x4dcc('0x4')]},'responsetime':{'type':Sequelize[_0x4dcc('0x4')]},'ringtime':{'type':Sequelize[_0x4dcc('0x2')],'defaultValue':0x0},'campaign':{'type':Sequelize[_0x4dcc('0x3')]},'campaigntype':{'type':Sequelize[_0x4dcc('0x3')]},'membername':{'type':Sequelize[_0x4dcc('0x3')]}};
\ No newline at end of file
+var _0xd046=['exports','INTEGER','STRING'];(function(_0x7e2eb0,_0x17cd58){var _0xd92de4=function(_0x5d005b){while(--_0x5d005b){_0x7e2eb0['push'](_0x7e2eb0['shift']());}};_0xd92de4(++_0x17cd58);}(_0xd046,0x129));var _0x6d04=function(_0x4f7ff2,_0x2ebdda){_0x4f7ff2=_0x4f7ff2-0x0;var _0x41f1bf=_0xd046[_0x4f7ff2];return _0x41f1bf;};'use strict';var Sequelize=require('sequelize');module[_0x6d04('0x0')]={'state':{'type':Sequelize[_0x6d04('0x1')](0x2)},'statedesc':{'type':Sequelize[_0x6d04('0x2')]},'scheduledat':{'type':Sequelize['DATE']},'uniqueid':{'type':Sequelize[_0x6d04('0x2')]},'starttime':{'type':Sequelize['DATE']},'responsetime':{'type':Sequelize['DATE']},'ringtime':{'type':Sequelize[_0x6d04('0x1')],'defaultValue':0x0},'campaign':{'type':Sequelize['STRING']},'campaigntype':{'type':Sequelize[_0x6d04('0x2')]},'membername':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5201=['./reportAgentPreview.attributes','exports','define','report_agent_preview','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment'];(function(_0x23f50a,_0x1e0fbc){var _0x3d48e2=function(_0x103d6e){while(--_0x103d6e){_0x23f50a['push'](_0x23f50a['shift']());}};_0x3d48e2(++_0x1e0fbc);}(_0x5201,0x1c0));var _0x1520=function(_0x3f7d61,_0x3f109b){_0x3f7d61=_0x3f7d61-0x0;var _0x39d560=_0x5201[_0x3f7d61];return _0x39d560;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x1520('0x0'))(_0x1520('0x1'));var moment=require(_0x1520('0x2'));var BPromise=require(_0x1520('0x3'));var rp=require(_0x1520('0x4'));var fs=require('fs');var path=require(_0x1520('0x5'));var rimraf=require(_0x1520('0x6'));var config=require(_0x1520('0x7'));var attributes=require(_0x1520('0x8'));module[_0x1520('0x9')]=function(_0x30e6c7,_0x25d01c){return _0x30e6c7[_0x1520('0xa')]('ReportAgentPreview',attributes,{'tableName':_0x1520('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xeb6a=['../../config/environment','exports','report_agent_preview','util','api','bluebird','path','rimraf'];(function(_0x42cae2,_0x284ef8){var _0x5f256f=function(_0x41abc8){while(--_0x41abc8){_0x42cae2['push'](_0x42cae2['shift']());}};_0x5f256f(++_0x284ef8);}(_0xeb6a,0x17b));var _0xaeb6=function(_0x40d877,_0x3f1551){_0x40d877=_0x40d877-0x0;var _0x4871f8=_0xeb6a[_0x40d877];return _0x4871f8;};'use strict';var _=require('lodash');var util=require(_0xaeb6('0x0'));var logger=require('../../config/logger')(_0xaeb6('0x1'));var moment=require('moment');var BPromise=require(_0xaeb6('0x2'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xaeb6('0x3'));var rimraf=require(_0xaeb6('0x4'));var config=require(_0xaeb6('0x5'));var attributes=require('./reportAgentPreview.attributes');module[_0xaeb6('0x6')]=function(_0x57c71e,_0x4e90cd){return _0x57c71e['define']('ReportAgentPreview',attributes,{'tableName':_0xaeb6('0x7'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa09f=['randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','ReportAgentPreview,\x20%s,\x20%s','request\x20sent','debug','ReportAgentPreview,\x20%s,\x20%s,\x20%s','error','code','message','info','result','catch','CreateReportAgentPreview','ReportAgentPreview','create','body','options','raw','then','lodash'];(function(_0x10f790,_0x32f0ac){var _0x3ccc68=function(_0x57915f){while(--_0x57915f){_0x10f790['push'](_0x10f790['shift']());}};_0x3ccc68(++_0x32f0ac);}(_0xa09f,0xdf));var _0xfa09=function(_0x479a66,_0x104cdd){_0x479a66=_0x479a66-0x0;var _0x111bc4=_0xa09f[_0x479a66];return _0x111bc4;};'use strict';var _=require(_0xfa09('0x0'));var util=require('util');var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xfa09('0x1'));var fs=require('fs');var Redis=require(_0xfa09('0x2'));var db=require('../../mysqldb')['db'];var utils=require(_0xfa09('0x3'));var logger=require(_0xfa09('0x4'))(_0xfa09('0x5'));var config=require(_0xfa09('0x6'));var jayson=require(_0xfa09('0x7'));var client=jayson[_0xfa09('0x8')][_0xfa09('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x555b94,_0x45348c,_0x5600ff){return new BPromise(function(_0x4baf53,_0x53708d){return client[_0xfa09('0xa')](_0x555b94,_0x5600ff)['then'](function(_0x38f602){logger['info'](_0xfa09('0xb'),_0x45348c,_0xfa09('0xc'));logger[_0xfa09('0xd')](_0xfa09('0xe'),_0x45348c,_0xfa09('0xc'),JSON['stringify'](_0x38f602));if(_0x38f602['error']){if(_0x38f602[_0xfa09('0xf')][_0xfa09('0x10')]===0x1f4){logger[_0xfa09('0xf')]('ReportAgentPreview,\x20%s,\x20%s',_0x45348c,_0x38f602[_0xfa09('0xf')][_0xfa09('0x11')]);return _0x53708d(_0x38f602['error']['message']);}logger[_0xfa09('0xf')]('ReportAgentPreview,\x20%s,\x20%s',_0x45348c,_0x38f602[_0xfa09('0xf')]['message']);return _0x4baf53(_0x38f602[_0xfa09('0xf')]['message']);}else{logger[_0xfa09('0x12')](_0xfa09('0xb'),_0x45348c,'request\x20sent');_0x4baf53(_0x38f602[_0xfa09('0x13')][_0xfa09('0x11')]);}})[_0xfa09('0x14')](function(_0x26cc2b){logger[_0xfa09('0xf')](_0xfa09('0xb'),_0x45348c,_0x26cc2b);_0x53708d(_0x26cc2b);});});}exports[_0xfa09('0x15')]=function(_0x306971){var _0x94f41a=this;return new Promise(function(_0x45a039,_0x6bb60b){return db[_0xfa09('0x16')][_0xfa09('0x17')](_0x306971[_0xfa09('0x18')],{'raw':_0x306971[_0xfa09('0x19')]?_0x306971['options'][_0xfa09('0x1a')]===undefined?!![]:![]:!![]})[_0xfa09('0x1b')](function(_0x26ee2d){logger['info'](_0xfa09('0x15'),_0x306971);logger[_0xfa09('0xd')](_0xfa09('0x15'),_0x306971,JSON['stringify'](_0x26ee2d));_0x45a039(_0x26ee2d);})['catch'](function(_0x5f2f2d){logger['error'](_0xfa09('0x15'),_0x5f2f2d[_0xfa09('0x11')],_0x306971);_0x6bb60b(_0x94f41a[_0xfa09('0xf')](0x1f4,_0x5f2f2d['message']));});});};
\ No newline at end of file
+var _0x6b46=['debug','ReportAgentPreview,\x20%s,\x20%s,\x20%s','request\x20sent','code','error','message','result','CreateReportAgentPreview','ReportAgentPreview','create','options','raw','stringify','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','client','http','request','then','info','ReportAgentPreview,\x20%s,\x20%s'];(function(_0x36704f,_0x493aab){var _0x5620ca=function(_0x28686f){while(--_0x28686f){_0x36704f['push'](_0x36704f['shift']());}};_0x5620ca(++_0x493aab);}(_0x6b46,0x13a));var _0x66b4=function(_0x397e5f,_0x454c8f){_0x397e5f=_0x397e5f-0x0;var _0x5302b8=_0x6b46[_0x397e5f];return _0x5302b8;};'use strict';var _=require(_0x66b4('0x0'));var util=require(_0x66b4('0x1'));var moment=require(_0x66b4('0x2'));var BPromise=require(_0x66b4('0x3'));var rs=require(_0x66b4('0x4'));var fs=require('fs');var Redis=require(_0x66b4('0x5'));var db=require(_0x66b4('0x6'))['db'];var utils=require(_0x66b4('0x7'));var logger=require('../../config/logger')(_0x66b4('0x8'));var config=require(_0x66b4('0x9'));var jayson=require('jayson/promise');var client=jayson[_0x66b4('0xa')][_0x66b4('0xb')]({'port':0x232a});function respondWithRpcPromise(_0xbb1956,_0x3802a7,_0x228755){return new BPromise(function(_0x5492ea,_0x33d676){return client[_0x66b4('0xc')](_0xbb1956,_0x228755)[_0x66b4('0xd')](function(_0x1b15be){logger[_0x66b4('0xe')](_0x66b4('0xf'),_0x3802a7,'request\x20sent');logger[_0x66b4('0x10')](_0x66b4('0x11'),_0x3802a7,_0x66b4('0x12'),JSON['stringify'](_0x1b15be));if(_0x1b15be['error']){if(_0x1b15be['error'][_0x66b4('0x13')]===0x1f4){logger[_0x66b4('0x14')](_0x66b4('0xf'),_0x3802a7,_0x1b15be[_0x66b4('0x14')][_0x66b4('0x15')]);return _0x33d676(_0x1b15be[_0x66b4('0x14')][_0x66b4('0x15')]);}logger[_0x66b4('0x14')](_0x66b4('0xf'),_0x3802a7,_0x1b15be[_0x66b4('0x14')][_0x66b4('0x15')]);return _0x5492ea(_0x1b15be['error'][_0x66b4('0x15')]);}else{logger['info'](_0x66b4('0xf'),_0x3802a7,_0x66b4('0x12'));_0x5492ea(_0x1b15be[_0x66b4('0x16')][_0x66b4('0x15')]);}})['catch'](function(_0x4bfaa4){logger[_0x66b4('0x14')](_0x66b4('0xf'),_0x3802a7,_0x4bfaa4);_0x33d676(_0x4bfaa4);});});}exports[_0x66b4('0x17')]=function(_0x2dec78){var _0x38c6c4=this;return new Promise(function(_0x4d43ad,_0x136fa7){return db[_0x66b4('0x18')][_0x66b4('0x19')](_0x2dec78['body'],{'raw':_0x2dec78[_0x66b4('0x1a')]?_0x2dec78[_0x66b4('0x1a')][_0x66b4('0x1b')]===undefined?!![]:![]:!![]})[_0x66b4('0xd')](function(_0x29ccdd){logger[_0x66b4('0xe')]('CreateReportAgentPreview',_0x2dec78);logger[_0x66b4('0x10')](_0x66b4('0x17'),_0x2dec78,JSON[_0x66b4('0x1c')](_0x29ccdd));_0x4d43ad(_0x29ccdd);})[_0x66b4('0x1d')](function(_0x1f6165){logger[_0x66b4('0x14')](_0x66b4('0x17'),_0x1f6165['message'],_0x2dec78);_0x136fa7(_0x38c6c4[_0x66b4('0x14')](0x1f4,_0x1f6165[_0x66b4('0x15')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaded=['agentCapacity','/telephones','telephones','/trunks','/campaigns','campaigns','/fax/accounts','faxAccounts','chatQueuesWaitingInteractions','/mail/queues/waitinginteractions','mailQueuesWaitingInteractions','/openchannel/queues/waitinginteractions','openchannelQueuesWaitingInteractions','openchannelQueuesIdWaitingInteractions','/sms/queues/waitinginteractions','smsQueuesWaitingInteractions','/whatsapp/queues/waitinginteractions','whatsappQueuesWaitingInteractions','faxQueuesWaitingInteractions','post','mail','showMailQueues','/chat/queues/:id/notify','queueNotify','chat','/chat/queues/:id','showChatQueues','/fax/queues/:id/notify','fax','/fax/queues/:id','showFaxQueues','/openchannel/queues/:id/notify','openchannel','/openchannel/queues/:id','sms','whatsapp','showSmsQueues','/whatsapp/queues/:id','showWhatsappQueues','exports','multer','path','express','Router','./rpc.controller','get','isAuthenticated','voiceChannels','/voice/channels/:uniqueid/mixmonitor','voiceChannelStopMixMonitor','/voice/queues','voiceQueues','/chat/queues','chatQueues','/mail/queues','mailQueues','/mail/accounts','/openchannel/queues','openchannelQueues','/sms/queues','smsQueues','/whatsapp/queues','whatsappQueues','/fax/queues','faxQueues','/voice/queues/preview/:id','/voice/queues/channels','voiceQueuesChannels','voiceQueuesChannel','/voice/queues/channels/:uniqueid/hangup','voiceQueuesChannelHangup','/voice/queues/channels/:uniqueid/redirect/:exten','voiceQueuesChannelRedirect','/voice/queues/:id','showVoiceQueues','put','updateVoiceQueue','/outbound','outbound','/outbound/channels','/agents','agents'];(function(_0x13239f,_0x57e8f8){var _0x13f47b=function(_0x512e72){while(--_0x512e72){_0x13239f['push'](_0x13239f['shift']());}};_0x13f47b(++_0x57e8f8);}(_0xaded,0x7a));var _0xdade=function(_0x34ce9e,_0x34ea43){_0x34ce9e=_0x34ce9e-0x0;var _0x5b0152=_0xaded[_0x34ce9e];return _0x5b0152;};'use strict';var multer=require(_0xdade('0x0'));var util=require('util');var path=require(_0xdade('0x1'));var express=require(_0xdade('0x2'));var router=express[_0xdade('0x3')]();var auth=require('../../components/auth/service');var controller=require(_0xdade('0x4'));router[_0xdade('0x5')]('/voice/channels',auth[_0xdade('0x6')](),controller[_0xdade('0x7')]);router[_0xdade('0x5')](_0xdade('0x8'),auth[_0xdade('0x6')](),controller['voiceChannelMixMonitor']);router['get']('/voice/channels/:uniqueid/stopmixmonitor',auth[_0xdade('0x6')](),controller[_0xdade('0x9')]);router[_0xdade('0x5')](_0xdade('0xa'),auth[_0xdade('0x6')](),controller[_0xdade('0xb')]);router['get'](_0xdade('0xc'),auth[_0xdade('0x6')](),controller[_0xdade('0xd')]);router[_0xdade('0x5')](_0xdade('0xe'),auth[_0xdade('0x6')](),controller[_0xdade('0xf')]);router[_0xdade('0x5')](_0xdade('0x10'),auth[_0xdade('0x6')](),controller['mailAccounts']);router['get'](_0xdade('0x11'),auth[_0xdade('0x6')](),controller[_0xdade('0x12')]);router[_0xdade('0x5')](_0xdade('0x13'),auth[_0xdade('0x6')](),controller[_0xdade('0x14')]);router[_0xdade('0x5')](_0xdade('0x15'),auth[_0xdade('0x6')](),controller[_0xdade('0x16')]);router[_0xdade('0x5')](_0xdade('0x17'),auth[_0xdade('0x6')](),controller[_0xdade('0x18')]);router[_0xdade('0x5')](_0xdade('0x19'),auth[_0xdade('0x6')](),controller['voiceQueuesPreview']);router[_0xdade('0x5')](_0xdade('0x1a'),auth[_0xdade('0x6')](),controller[_0xdade('0x1b')]);router[_0xdade('0x5')]('/voice/queues/channels/:uniqueid',auth[_0xdade('0x6')](),controller[_0xdade('0x1c')]);router['get'](_0xdade('0x1d'),auth[_0xdade('0x6')](),controller[_0xdade('0x1e')]);router[_0xdade('0x5')](_0xdade('0x1f'),auth[_0xdade('0x6')](),controller[_0xdade('0x20')]);router[_0xdade('0x5')](_0xdade('0x21'),auth[_0xdade('0x6')](),controller[_0xdade('0x22')]);router[_0xdade('0x23')]('/voice/queues/:id',auth[_0xdade('0x6')](),controller[_0xdade('0x24')]);router[_0xdade('0x5')](_0xdade('0x25'),auth[_0xdade('0x6')](),controller[_0xdade('0x26')]);router[_0xdade('0x5')](_0xdade('0x27'),auth[_0xdade('0x6')](),controller['outboundChannels']);router[_0xdade('0x5')](_0xdade('0x28'),auth[_0xdade('0x6')](),controller[_0xdade('0x29')]);router[_0xdade('0x23')]('/agents/:id/capacity',auth[_0xdade('0x6')](),controller[_0xdade('0x2a')]);router['get'](_0xdade('0x2b'),auth['isAuthenticated'](),controller[_0xdade('0x2c')]);router[_0xdade('0x5')](_0xdade('0x2d'),auth[_0xdade('0x6')](),controller['trunks']);router[_0xdade('0x5')](_0xdade('0x2e'),auth['isAuthenticated'](),controller[_0xdade('0x2f')]);router[_0xdade('0x5')](_0xdade('0x30'),auth['isAuthenticated'](),controller[_0xdade('0x31')]);router['get']('/chat/queues/waitinginteractions',auth[_0xdade('0x6')](),controller[_0xdade('0x32')]);router[_0xdade('0x5')](_0xdade('0x33'),auth[_0xdade('0x6')](),controller[_0xdade('0x34')]);router[_0xdade('0x5')](_0xdade('0x35'),auth[_0xdade('0x6')](),controller[_0xdade('0x36')]);router['get']('/openchannel/queues/:id/waitinginteractions',auth['isAuthenticated'](),controller[_0xdade('0x37')]);router[_0xdade('0x5')](_0xdade('0x38'),auth[_0xdade('0x6')](),controller[_0xdade('0x39')]);router[_0xdade('0x5')](_0xdade('0x3a'),auth[_0xdade('0x6')](),controller[_0xdade('0x3b')]);router[_0xdade('0x5')]('/fax/queues/waitinginteractions',auth[_0xdade('0x6')](),controller[_0xdade('0x3c')]);router[_0xdade('0x3d')]('/mail/queues/:id/notify',auth[_0xdade('0x6')](),controller['queueNotify'](_0xdade('0x3e')));router['get']('/mail/queues/:id',auth[_0xdade('0x6')](),controller[_0xdade('0x3f')]);router['post'](_0xdade('0x40'),auth[_0xdade('0x6')](),controller[_0xdade('0x41')](_0xdade('0x42')));router['get'](_0xdade('0x43'),auth['isAuthenticated'](),controller[_0xdade('0x44')]);router[_0xdade('0x3d')](_0xdade('0x45'),auth[_0xdade('0x6')](),controller[_0xdade('0x41')](_0xdade('0x46')));router[_0xdade('0x5')](_0xdade('0x47'),auth[_0xdade('0x6')](),controller[_0xdade('0x48')]);router['post'](_0xdade('0x49'),auth[_0xdade('0x6')](),controller['queueNotify'](_0xdade('0x4a')));router[_0xdade('0x5')](_0xdade('0x4b'),auth['isAuthenticated'](),controller['showOpenchannelQueues']);router[_0xdade('0x3d')]('/sms/queues/:id/notify',auth['isAuthenticated'](),controller[_0xdade('0x41')](_0xdade('0x4c')));router[_0xdade('0x3d')]('/whatsapp/queues/:id/notify',auth[_0xdade('0x6')](),controller[_0xdade('0x41')](_0xdade('0x4d')));router[_0xdade('0x5')]('/sms/queues/:id',auth[_0xdade('0x6')](),controller[_0xdade('0x4e')]);router[_0xdade('0x5')](_0xdade('0x4f'),auth[_0xdade('0x6')](),controller[_0xdade('0x50')]);router['post']('/agents/:id/notify',auth[_0xdade('0x6')](),controller['agentNotify']);module[_0xdade('0x51')]=router;
\ No newline at end of file
+var _0x84c9=['/mail/queues/:id','showMailQueues','chat','/chat/queues/:id','/fax/queues/:id/notify','fax','/fax/queues/:id','showFaxQueues','/openchannel/queues/:id/notify','openchannel','/openchannel/queues/:id','sms','/whatsapp/queues/:id/notify','whatsapp','/sms/queues/:id','showSmsQueues','/whatsapp/queues/:id','showWhatsappQueues','/agents/:id/notify','agentNotify','exports','multer','path','express','Router','/voice/channels','isAuthenticated','voiceChannelMixMonitor','get','/voice/channels/:uniqueid/stopmixmonitor','voiceChannelStopMixMonitor','/voice/queues','voiceQueues','/mail/queues','mailQueues','/mail/accounts','mailAccounts','/openchannel/queues','/sms/queues','smsQueues','/whatsapp/queues','faxQueues','/voice/queues/preview/:id','voiceQueuesPreview','voiceQueuesChannels','voiceQueuesChannel','/voice/queues/channels/:uniqueid/hangup','voiceQueuesChannelHangup','/voice/queues/channels/:uniqueid/redirect/:exten','voiceQueuesChannelRedirect','/voice/queues/:id','showVoiceQueues','put','updateVoiceQueue','outbound','/outbound/channels','outboundChannels','/agents','agents','/agents/:id/capacity','agentCapacity','/telephones','telephones','trunks','/campaigns','/fax/accounts','/chat/queues/waitinginteractions','chatQueuesWaitingInteractions','/mail/queues/waitinginteractions','mailQueuesWaitingInteractions','/openchannel/queues/waitinginteractions','openchannelQueuesWaitingInteractions','/openchannel/queues/:id/waitinginteractions','openchannelQueuesIdWaitingInteractions','smsQueuesWaitingInteractions','/fax/queues/waitinginteractions','faxQueuesWaitingInteractions','post','/mail/queues/:id/notify','queueNotify','mail'];(function(_0x31921a,_0x3654dd){var _0x26e086=function(_0x3b5730){while(--_0x3b5730){_0x31921a['push'](_0x31921a['shift']());}};_0x26e086(++_0x3654dd);}(_0x84c9,0x66));var _0x984c=function(_0x2e80db,_0x3189fb){_0x2e80db=_0x2e80db-0x0;var _0x32f322=_0x84c9[_0x2e80db];return _0x32f322;};'use strict';var multer=require(_0x984c('0x0'));var util=require('util');var path=require(_0x984c('0x1'));var express=require(_0x984c('0x2'));var router=express[_0x984c('0x3')]();var auth=require('../../components/auth/service');var controller=require('./rpc.controller');router['get'](_0x984c('0x4'),auth[_0x984c('0x5')](),controller['voiceChannels']);router['get']('/voice/channels/:uniqueid/mixmonitor',auth[_0x984c('0x5')](),controller[_0x984c('0x6')]);router[_0x984c('0x7')](_0x984c('0x8'),auth[_0x984c('0x5')](),controller[_0x984c('0x9')]);router[_0x984c('0x7')](_0x984c('0xa'),auth[_0x984c('0x5')](),controller[_0x984c('0xb')]);router['get']('/chat/queues',auth[_0x984c('0x5')](),controller['chatQueues']);router[_0x984c('0x7')](_0x984c('0xc'),auth[_0x984c('0x5')](),controller[_0x984c('0xd')]);router['get'](_0x984c('0xe'),auth[_0x984c('0x5')](),controller[_0x984c('0xf')]);router[_0x984c('0x7')](_0x984c('0x10'),auth[_0x984c('0x5')](),controller['openchannelQueues']);router[_0x984c('0x7')](_0x984c('0x11'),auth['isAuthenticated'](),controller[_0x984c('0x12')]);router[_0x984c('0x7')](_0x984c('0x13'),auth[_0x984c('0x5')](),controller['whatsappQueues']);router[_0x984c('0x7')]('/fax/queues',auth[_0x984c('0x5')](),controller[_0x984c('0x14')]);router[_0x984c('0x7')](_0x984c('0x15'),auth[_0x984c('0x5')](),controller[_0x984c('0x16')]);router['get']('/voice/queues/channels',auth[_0x984c('0x5')](),controller[_0x984c('0x17')]);router['get']('/voice/queues/channels/:uniqueid',auth[_0x984c('0x5')](),controller[_0x984c('0x18')]);router['get'](_0x984c('0x19'),auth[_0x984c('0x5')](),controller[_0x984c('0x1a')]);router[_0x984c('0x7')](_0x984c('0x1b'),auth[_0x984c('0x5')](),controller[_0x984c('0x1c')]);router[_0x984c('0x7')](_0x984c('0x1d'),auth[_0x984c('0x5')](),controller[_0x984c('0x1e')]);router[_0x984c('0x1f')](_0x984c('0x1d'),auth[_0x984c('0x5')](),controller[_0x984c('0x20')]);router['get']('/outbound',auth[_0x984c('0x5')](),controller[_0x984c('0x21')]);router[_0x984c('0x7')](_0x984c('0x22'),auth[_0x984c('0x5')](),controller[_0x984c('0x23')]);router[_0x984c('0x7')](_0x984c('0x24'),auth['isAuthenticated'](),controller[_0x984c('0x25')]);router[_0x984c('0x1f')](_0x984c('0x26'),auth[_0x984c('0x5')](),controller[_0x984c('0x27')]);router[_0x984c('0x7')](_0x984c('0x28'),auth[_0x984c('0x5')](),controller[_0x984c('0x29')]);router[_0x984c('0x7')]('/trunks',auth[_0x984c('0x5')](),controller[_0x984c('0x2a')]);router[_0x984c('0x7')](_0x984c('0x2b'),auth[_0x984c('0x5')](),controller['campaigns']);router['get'](_0x984c('0x2c'),auth[_0x984c('0x5')](),controller['faxAccounts']);router[_0x984c('0x7')](_0x984c('0x2d'),auth['isAuthenticated'](),controller[_0x984c('0x2e')]);router['get'](_0x984c('0x2f'),auth['isAuthenticated'](),controller[_0x984c('0x30')]);router['get'](_0x984c('0x31'),auth[_0x984c('0x5')](),controller[_0x984c('0x32')]);router[_0x984c('0x7')](_0x984c('0x33'),auth['isAuthenticated'](),controller[_0x984c('0x34')]);router[_0x984c('0x7')]('/sms/queues/waitinginteractions',auth[_0x984c('0x5')](),controller[_0x984c('0x35')]);router[_0x984c('0x7')]('/whatsapp/queues/waitinginteractions',auth[_0x984c('0x5')](),controller['whatsappQueuesWaitingInteractions']);router[_0x984c('0x7')](_0x984c('0x36'),auth[_0x984c('0x5')](),controller[_0x984c('0x37')]);router[_0x984c('0x38')](_0x984c('0x39'),auth[_0x984c('0x5')](),controller[_0x984c('0x3a')](_0x984c('0x3b')));router[_0x984c('0x7')](_0x984c('0x3c'),auth[_0x984c('0x5')](),controller[_0x984c('0x3d')]);router['post']('/chat/queues/:id/notify',auth[_0x984c('0x5')](),controller[_0x984c('0x3a')](_0x984c('0x3e')));router[_0x984c('0x7')](_0x984c('0x3f'),auth[_0x984c('0x5')](),controller['showChatQueues']);router['post'](_0x984c('0x40'),auth[_0x984c('0x5')](),controller[_0x984c('0x3a')](_0x984c('0x41')));router[_0x984c('0x7')](_0x984c('0x42'),auth['isAuthenticated'](),controller[_0x984c('0x43')]);router[_0x984c('0x38')](_0x984c('0x44'),auth[_0x984c('0x5')](),controller['queueNotify'](_0x984c('0x45')));router[_0x984c('0x7')](_0x984c('0x46'),auth[_0x984c('0x5')](),controller['showOpenchannelQueues']);router[_0x984c('0x38')]('/sms/queues/:id/notify',auth['isAuthenticated'](),controller['queueNotify'](_0x984c('0x47')));router[_0x984c('0x38')](_0x984c('0x48'),auth[_0x984c('0x5')](),controller[_0x984c('0x3a')](_0x984c('0x49')));router['get'](_0x984c('0x4a'),auth['isAuthenticated'](),controller[_0x984c('0x4b')]);router[_0x984c('0x7')](_0x984c('0x4c'),auth['isAuthenticated'](),controller[_0x984c('0x4d')]);router[_0x984c('0x38')](_0x984c('0x4e'),auth[_0x984c('0x5')](),controller[_0x984c('0x4f')]);module[_0x984c('0x50')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x326f=['VoiceQueuesChannelHangup','outboundChannels','OutboundChannels','Agents','agentCapacity','interaction','user','hasOwnProperty','MemberReport','findAll','length','format','YYYY-MM-DD\x20HH:mm:ss','updateAttributes','findOrCreate','INTERACTION','interface','agent','AgentCapacity','telephones','Telephones','Trunks','campaigns','Campaigns','chatQueues','ChatQueues','showChatQueues','mailQueues','showMailQueues','MailQueues','MailAccounts','openchannelQueues','OpenchannelQueues','showOpenchannelQueues','smsQueues','SmsQueues','WhatsappQueues','showWhatsappQueues','faxQueues','showFaxQueues','faxAccounts','chatQueuesWaitingInteractions','ChatQueuesWaitingInteractions','mailQueuesWaitingInteractions','MailQueuesWaitingInteractions','openchannelQueuesWaitingInteractions','openchannelQueuesIdWaitingInteractions','OpenchannelQueuesWaitingInteractions','type','filter','map','queue_id','uniq','smsQueuesWaitingInteractions','whatsappQueuesWaitingInteractions','WhatsappQueuesWaitingInteractions','faxQueuesWaitingInteractions','queueNotify','capitalize','chat','Website','Queue','\x20Queue\x20not\x20found','Message','findOne','messageId','Interaction','Account','\x20Message\x20not\x20found','update','queue','InteractionId','QueueId','TransferReport','create','Start','queueTransferTimeout','*,*,*,*','agentNotify','channel','Channel\x20field\x20is\x20mandatory','User','Agent\x20not\x20found','MessageId','From','agentTransferTimeout','bluebird','util','../../mysqldb','../../config/logger','api','jayson/promise','client','http','then','error','code','message','catch','status','json','sendStatus','name','send','isNil','rows','find','voiceChannels','query','params','voiceChannelStopMixMonitor','VoiceChannelStopMixMonitor','merge','VoiceQueues','showVoiceQueues','UpdateVoiceQueue','body','voiceQueuesPreview','VoiceQueuesPreview','VoiceQueuesChannels','voiceQueuesChannel','VoiceQueuesChannel','voiceQueuesChannelHangup'];(function(_0x3aa0e1,_0x256c27){var _0x25bc14=function(_0x1a001a){while(--_0x1a001a){_0x3aa0e1['push'](_0x3aa0e1['shift']());}};_0x25bc14(++_0x256c27);}(_0x326f,0xd1));var _0xf326=function(_0x5f18e0,_0x333bfe){_0x5f18e0=_0x5f18e0-0x0;var _0x15d13d=_0x326f[_0x5f18e0];return _0x15d13d;};'use strict';var BPromise=require(_0xf326('0x0'));var moment=require('moment');var _=require('lodash');var util=require(_0xf326('0x1'));var db=require(_0xf326('0x2'))['db'];var logger=require(_0xf326('0x3'))(_0xf326('0x4'));var jayson=require(_0xf326('0x5'));var amiClient=jayson[_0xf326('0x6')][_0xf326('0x7')]({'port':0x232a});var mailClient=jayson[_0xf326('0x6')][_0xf326('0x7')]({'port':0x232b});var routingClient=jayson[_0xf326('0x6')]['http']({'port':0x232c});function respondWithRpcPromise(_0x3c254d,_0x3851eb,_0x165f95){return new BPromise(function(_0x1e7b8a,_0x515bfa){var _0x4c206c=_0x165f95?_0x165f95:amiClient;return _0x4c206c['request'](_0x3c254d,_0x3851eb)[_0xf326('0x8')](function(_0x1fc80e){if(_0x1fc80e[_0xf326('0x9')]){if(_0x1fc80e[_0xf326('0x9')][_0xf326('0xa')]===0x1f4){return _0x515bfa(_0x1fc80e['error'][_0xf326('0xb')]);}return _0x1e7b8a(_0x1fc80e['error'][_0xf326('0xb')]);}else{_0x1e7b8a(_0x1fc80e['result']);}})[_0xf326('0xc')](function(_0x518ab5){_0x515bfa(_0x518ab5);});});}function respondWithResult(_0x3162f9,_0x9ed463){_0x9ed463=_0x9ed463||0xc8;return function(_0x4b3966){if(_0x4b3966){return _0x3162f9[_0xf326('0xd')](_0x9ed463)[_0xf326('0xe')](_0x4b3966);}return _0x3162f9[_0xf326('0xf')](0x194);};}function handleError(_0x17a098,_0x5c8483){_0x5c8483=_0x5c8483||0x1f4;return function(_0x45c1b6){logger['error'](_0x45c1b6['stack']);if(_0x45c1b6[_0xf326('0x10')]){delete _0x45c1b6[_0xf326('0x10')];}_0x17a098[_0xf326('0xd')](_0x5c8483)[_0xf326('0x11')](_0x45c1b6);};}function findById(_0x292f4b){return function(_0x287a2a){if(!_[_0xf326('0x12')](_0x292f4b)&&!_[_0xf326('0x12')](_0x287a2a)&&!_['isNil'](_0x287a2a[_0xf326('0x13')])){return _[_0xf326('0x14')](_0x287a2a[_0xf326('0x13')],function(_0x31ffb9){return _0x31ffb9['id']==_0x292f4b;});}return null;};}exports[_0xf326('0x15')]=function(_0x311af0,_0x4d3d41){return respondWithRpcPromise('VoiceChannels',_0x311af0['query'])[_0xf326('0x8')](respondWithResult(_0x4d3d41,null))[_0xf326('0xc')](handleError(_0x4d3d41,null));};exports['voiceChannelMixMonitor']=function(_0x4cabce,_0x128c68){return respondWithRpcPromise('VoiceChannelMixMonitor',_['merge'](_0x4cabce[_0xf326('0x16')],_0x4cabce[_0xf326('0x17')]))['then'](respondWithResult(_0x128c68,null))['catch'](handleError(_0x128c68,null));};exports[_0xf326('0x18')]=function(_0xb1efcf,_0x5f21a2){return respondWithRpcPromise(_0xf326('0x19'),_[_0xf326('0x1a')](_0xb1efcf[_0xf326('0x16')],_0xb1efcf[_0xf326('0x17')]))[_0xf326('0x8')](respondWithResult(_0x5f21a2,null))[_0xf326('0xc')](handleError(_0x5f21a2,null));};exports['voiceQueues']=function(_0x55b9f4,_0x4f31f6){return respondWithRpcPromise(_0xf326('0x1b'),_0x55b9f4[_0xf326('0x16')])[_0xf326('0x8')](respondWithResult(_0x4f31f6,null))[_0xf326('0xc')](handleError(_0x4f31f6,null));};exports[_0xf326('0x1c')]=function(_0x410237,_0x5217d4){return respondWithRpcPromise(_0xf326('0x1b'),_0x410237[_0xf326('0x16')])[_0xf326('0x8')](findById(_0x410237['params']['id']))[_0xf326('0x8')](respondWithResult(_0x5217d4,null))['catch'](handleError(_0x5217d4,null));};exports['updateVoiceQueue']=function(_0x6a8e89,_0x1ae23a){return respondWithRpcPromise(_0xf326('0x1d'),_['merge'](_0x6a8e89[_0xf326('0x1e')],_0x6a8e89[_0xf326('0x17')]))['then'](respondWithResult(_0x1ae23a,null))[_0xf326('0xc')](handleError(_0x1ae23a,null));};exports[_0xf326('0x1f')]=function(_0xd77aba,_0x18d110){return respondWithRpcPromise(_0xf326('0x20'),_[_0xf326('0x1a')](_0xd77aba[_0xf326('0x16')],_0xd77aba[_0xf326('0x17')]))[_0xf326('0x8')](respondWithResult(_0x18d110,null))[_0xf326('0xc')](handleError(_0x18d110,null));};exports['voiceQueuesChannels']=function(_0x1035ed,_0x424104){return respondWithRpcPromise(_0xf326('0x21'),_0x1035ed['query'])[_0xf326('0x8')](respondWithResult(_0x424104,null))[_0xf326('0xc')](handleError(_0x424104,null));};exports[_0xf326('0x22')]=function(_0x4df451,_0x5b101d){return respondWithRpcPromise(_0xf326('0x23'),_[_0xf326('0x1a')](_0x4df451[_0xf326('0x16')],_0x4df451[_0xf326('0x17')]))[_0xf326('0x8')](respondWithResult(_0x5b101d,null))[_0xf326('0xc')](handleError(_0x5b101d,null));};exports[_0xf326('0x24')]=function(_0x2d5f20,_0x580374){return respondWithRpcPromise(_0xf326('0x25'),_[_0xf326('0x1a')](_0x2d5f20['query'],_0x2d5f20[_0xf326('0x17')]))['then'](respondWithResult(_0x580374,null))[_0xf326('0xc')](handleError(_0x580374,null));};exports['voiceQueuesChannelRedirect']=function(_0x51f147,_0xadb020){return respondWithRpcPromise('VoiceQueuesChannelRedirect',_[_0xf326('0x1a')](_0x51f147['query'],_0x51f147[_0xf326('0x17')]))[_0xf326('0x8')](respondWithResult(_0xadb020,null))[_0xf326('0xc')](handleError(_0xadb020,null));};exports['outbound']=function(_0x3dcc7e,_0x4095e6){return respondWithRpcPromise('Outbound',_0x3dcc7e[_0xf326('0x16')])[_0xf326('0x8')](respondWithResult(_0x4095e6,null))[_0xf326('0xc')](handleError(_0x4095e6,null));};exports[_0xf326('0x26')]=function(_0x51076c,_0x2c4416){return respondWithRpcPromise(_0xf326('0x27'),_0x51076c[_0xf326('0x16')])[_0xf326('0x8')](respondWithResult(_0x2c4416,null))[_0xf326('0xc')](handleError(_0x2c4416,null));};exports['agents']=function(_0x3e830d,_0x1b7bf6){var _0x5cfb97;return respondWithRpcPromise('Agents',_0x3e830d[_0xf326('0x16')])['then'](function(_0x55dfa8){_0x5cfb97=_0x55dfa8;return respondWithRpcPromise(_0xf326('0x28'),_0x3e830d['query'],routingClient);})[_0xf326('0x8')](function(_0x37a95b){return _[_0xf326('0x1a')]({},_0x37a95b,_0x5cfb97);})[_0xf326('0x8')](respondWithResult(_0x1b7bf6,null))['catch'](handleError(_0x1b7bf6,null));};exports[_0xf326('0x29')]=function(_0x45d344,_0x347e7b){if(_0x45d344[_0xf326('0x1e')]&&_0x45d344[_0xf326('0x1e')][_0xf326('0x2a')]&&_0x45d344[_0xf326('0x2b')]&&_0x45d344[_0xf326('0x2b')][_0xf326('0x10')]){for(var _0x1227d3 in _0x45d344[_0xf326('0x1e')][_0xf326('0x2a')]){if(_0x45d344['body'][_0xf326('0x2a')][_0xf326('0x2c')](_0x1227d3)){db[_0xf326('0x2d')][_0xf326('0x2e')]({'where':{'channel':_0x1227d3,'membername':_0x45d344[_0xf326('0x2b')][_0xf326('0x10')],'type':'INTERACTION','exitAt':null,'uniqueid':_0x45d344[_0xf326('0x1e')][_0xf326('0x2a')][_0x1227d3]&&_0x45d344['body'][_0xf326('0x2a')][_0x1227d3][_0xf326('0x2f')]?{'$notIn':_0x45d344[_0xf326('0x1e')][_0xf326('0x2a')][_0x1227d3]}:{'$ne':null}}})[_0xf326('0x8')](function(_0x55361f){var _0x505344=moment()[_0xf326('0x30')](_0xf326('0x31'));for(var _0x5ed62e=0x0,_0x4bd865=_0x55361f[_0xf326('0x2f')];_0x5ed62e<_0x4bd865;_0x5ed62e+=0x1){_0x55361f[_0x5ed62e][_0xf326('0x32')]({'exitAt':_0x505344});}});for(var _0x21c98e=0x0;_0x21c98e<_0x45d344['body'][_0xf326('0x2a')][_0x1227d3][_0xf326('0x2f')];_0x21c98e+=0x1){db[_0xf326('0x2d')][_0xf326('0x33')]({'where':{'channel':_0x1227d3,'membername':_0x45d344[_0xf326('0x2b')][_0xf326('0x10')],'type':_0xf326('0x34'),'uniqueid':_0x45d344[_0xf326('0x1e')][_0xf326('0x2a')][_0x1227d3][_0x21c98e],'exitAt':null},'defaults':{'channel':_0x1227d3,'membername':_0x45d344[_0xf326('0x2b')][_0xf326('0x10')],'interface':_[_0xf326('0x12')](_0x45d344[_0xf326('0x2b')][_0xf326('0x35')])?util[_0xf326('0x30')]('SIP/%s',_0x45d344[_0xf326('0x2b')][_0xf326('0x10')]):_0x45d344[_0xf326('0x2b')][_0xf326('0x35')],'type':'INTERACTION','enterAt':moment()[_0xf326('0x30')](_0xf326('0x31')),'role':_0xf326('0x36'),'internal':_0x45d344[_0xf326('0x2b')]['internal'],'uniqueid':_0x45d344[_0xf326('0x1e')][_0xf326('0x2a')][_0x1227d3][_0x21c98e]}});}}}}return respondWithRpcPromise(_0xf326('0x37'),{'id':_0x45d344[_0xf326('0x17')]['id'],'capacity':_0x45d344[_0xf326('0x1e')]['capacity']},routingClient)['then'](respondWithResult(_0x347e7b,null))[_0xf326('0xc')](handleError(_0x347e7b,null));};exports[_0xf326('0x38')]=function(_0x2ff126,_0x4cb25b){return respondWithRpcPromise(_0xf326('0x39'),_0x2ff126[_0xf326('0x16')])[_0xf326('0x8')](respondWithResult(_0x4cb25b,null))['catch'](handleError(_0x4cb25b,null));};exports['trunks']=function(_0x36ef89,_0x5b4832){return respondWithRpcPromise(_0xf326('0x3a'),_0x36ef89['query'])[_0xf326('0x8')](respondWithResult(_0x5b4832,null))[_0xf326('0xc')](handleError(_0x5b4832,null));};exports[_0xf326('0x3b')]=function(_0x25e091,_0x212594){return respondWithRpcPromise(_0xf326('0x3c'),_0x25e091[_0xf326('0x16')])['then'](respondWithResult(_0x212594,null))[_0xf326('0xc')](handleError(_0x212594,null));};exports[_0xf326('0x3d')]=function(_0x424d24,_0x4b0d8e){return respondWithRpcPromise(_0xf326('0x3e'),_0x424d24[_0xf326('0x16')],routingClient)[_0xf326('0x8')](respondWithResult(_0x4b0d8e,null))[_0xf326('0xc')](handleError(_0x4b0d8e,null));};exports[_0xf326('0x3f')]=function(_0x58fcf0,_0x161fb3){return respondWithRpcPromise(_0xf326('0x3e'),_0x58fcf0[_0xf326('0x16')],routingClient)[_0xf326('0x8')](findById(_0x58fcf0['params']['id']))[_0xf326('0x8')](respondWithResult(_0x161fb3,null))[_0xf326('0xc')](handleError(_0x161fb3,null));};exports[_0xf326('0x40')]=function(_0x29e52e,_0x4d3b9e){return respondWithRpcPromise('MailQueues',_0x29e52e[_0xf326('0x16')],routingClient)[_0xf326('0x8')](respondWithResult(_0x4d3b9e,null))['catch'](handleError(_0x4d3b9e,null));};exports[_0xf326('0x41')]=function(_0x29de71,_0x316609){return respondWithRpcPromise(_0xf326('0x42'),_0x29de71['query'],routingClient)[_0xf326('0x8')](findById(_0x29de71['params']['id']))['then'](respondWithResult(_0x316609,null))[_0xf326('0xc')](handleError(_0x316609,null));};exports['mailAccounts']=function(_0x173760,_0x52fb95){return respondWithRpcPromise(_0xf326('0x43'),_0x173760['query'],mailClient)['then'](respondWithResult(_0x52fb95,null))[_0xf326('0xc')](handleError(_0x52fb95,null));};exports[_0xf326('0x44')]=function(_0x33b259,_0x5d0177){return respondWithRpcPromise(_0xf326('0x45'),_0x33b259['query'],routingClient)[_0xf326('0x8')](respondWithResult(_0x5d0177,null))[_0xf326('0xc')](handleError(_0x5d0177,null));};exports[_0xf326('0x46')]=function(_0x217897,_0xbd3a01){return respondWithRpcPromise(_0xf326('0x45'),_0x217897[_0xf326('0x16')],routingClient)[_0xf326('0x8')](findById(_0x217897[_0xf326('0x17')]['id']))[_0xf326('0x8')](respondWithResult(_0xbd3a01,null))[_0xf326('0xc')](handleError(_0xbd3a01,null));};exports[_0xf326('0x47')]=function(_0x40f7cb,_0x4ca1b8){return respondWithRpcPromise(_0xf326('0x48'),_0x40f7cb['query'],routingClient)[_0xf326('0x8')](respondWithResult(_0x4ca1b8,null))[_0xf326('0xc')](handleError(_0x4ca1b8,null));};exports['showSmsQueues']=function(_0x2b770c,_0x5283da){return respondWithRpcPromise(_0xf326('0x48'),_0x2b770c[_0xf326('0x16')],routingClient)[_0xf326('0x8')](findById(_0x2b770c[_0xf326('0x17')]['id']))[_0xf326('0x8')](respondWithResult(_0x5283da,null))['catch'](handleError(_0x5283da,null));};exports['whatsappQueues']=function(_0x1209ca,_0x32fe3a){return respondWithRpcPromise(_0xf326('0x49'),_0x1209ca[_0xf326('0x16')],routingClient)[_0xf326('0x8')](respondWithResult(_0x32fe3a,null))['catch'](handleError(_0x32fe3a,null));};exports[_0xf326('0x4a')]=function(_0x471da8,_0x4aadc9){return respondWithRpcPromise('WhatsappQueues',_0x471da8['query'],routingClient)[_0xf326('0x8')](findById(_0x471da8[_0xf326('0x17')]['id']))[_0xf326('0x8')](respondWithResult(_0x4aadc9,null))[_0xf326('0xc')](handleError(_0x4aadc9,null));};exports[_0xf326('0x4b')]=function(_0x23a56e,_0x230aea){return respondWithRpcPromise('FaxQueues',_0x23a56e[_0xf326('0x16')],routingClient)[_0xf326('0x8')](respondWithResult(_0x230aea,null))[_0xf326('0xc')](handleError(_0x230aea,null));};exports[_0xf326('0x4c')]=function(_0x58de1e,_0x3717fe){return respondWithRpcPromise('FaxQueues',_0x58de1e['query'],routingClient)[_0xf326('0x8')](findById(_0x58de1e['params']['id']))[_0xf326('0x8')](respondWithResult(_0x3717fe,null))[_0xf326('0xc')](handleError(_0x3717fe,null));};exports[_0xf326('0x4d')]=function(_0x2ea5a2,_0x17cd36){return respondWithRpcPromise('FaxAccounts',_0x2ea5a2['query'])['then'](respondWithResult(_0x17cd36,null))[_0xf326('0xc')](handleError(_0x17cd36,null));};exports[_0xf326('0x4e')]=function(_0x229a34,_0x180616){return respondWithRpcPromise(_0xf326('0x4f'),_0x229a34['query'],routingClient)[_0xf326('0x8')](respondWithResult(_0x180616,null))[_0xf326('0xc')](handleError(_0x180616,null));};exports[_0xf326('0x50')]=function(_0x4f9a6a,_0x567492){return respondWithRpcPromise(_0xf326('0x51'),_0x4f9a6a[_0xf326('0x16')],routingClient)['then'](respondWithResult(_0x567492,null))['catch'](handleError(_0x567492,null));};exports[_0xf326('0x52')]=function(_0x5ba28d,_0xc3a897){return respondWithRpcPromise('OpenchannelQueuesWaitingInteractions',_0x5ba28d['query'],routingClient)['then'](respondWithResult(_0xc3a897,null))[_0xf326('0xc')](handleError(_0xc3a897,null));};exports[_0xf326('0x53')]=function(_0xd44071,_0x4838d5){return respondWithRpcPromise(_0xf326('0x54'),_0xd44071[_0xf326('0x16')],routingClient)[_0xf326('0x8')](function(_0x457f3d){if(_0xd44071[_0xf326('0x16')][_0xf326('0x55')]!==undefined){var _0x7f6d0e=_(_0x457f3d[_0xf326('0x13')])[_0xf326('0x56')]([_0xd44071['query'][_0xf326('0x55')],_0xd44071['params']['id']])[_0xf326('0x57')](_0xf326('0x58'))[_0xf326('0x59')]()['value']();return _0x457f3d[_0xf326('0x13')][_0xf326('0x56')](function(_0x39c90d){return _0x7f6d0e['indexOf'](_0x39c90d[_0xf326('0x58')])>-0x1;});}else{return _0x457f3d[_0xf326('0x13')][_0xf326('0x56')](function(_0x42c7cf){return _0x42c7cf['queue_id']===parseInt(_0xd44071[_0xf326('0x17')]['id']);});}})['then'](respondWithResult(_0x4838d5,null))['catch'](handleError(_0x4838d5,null));};exports[_0xf326('0x5a')]=function(_0x2c36d3,_0x5af6b7){return respondWithRpcPromise('SmsQueuesWaitingInteractions',_0x2c36d3['query'],routingClient)[_0xf326('0x8')](respondWithResult(_0x5af6b7,null))['catch'](handleError(_0x5af6b7,null));};exports[_0xf326('0x5b')]=function(_0x37a564,_0x3434b2){return respondWithRpcPromise(_0xf326('0x5c'),_0x37a564[_0xf326('0x16')],routingClient)[_0xf326('0x8')](respondWithResult(_0x3434b2,null))['catch'](handleError(_0x3434b2,null));};exports[_0xf326('0x5d')]=function(_0x323926,_0x5f1724){return respondWithRpcPromise('FaxQueuesWaitingInteractions',_0x323926[_0xf326('0x16')],routingClient)['then'](respondWithResult(_0x5f1724,null))[_0xf326('0xc')](handleError(_0x5f1724,null));};exports[_0xf326('0x5e')]=function(_0x153027){return function(_0x363e64,_0x19d676){var _0x6e662,_0x293600;var _0x8ca46f=_[_0xf326('0x5f')](_0x153027);var _0x499cbd=_0x153027===_0xf326('0x60')?_0xf326('0x61'):'Account';return db[_0x8ca46f+_0xf326('0x62')]['findOne']({'raw':!![],'where':{'id':_0x363e64[_0xf326('0x17')]['id']}})[_0xf326('0x8')](function(_0x14e8c0){if(_['isNil'](_0x14e8c0)){throw new Error(_0x8ca46f+_0xf326('0x63'));}_0x6e662=_0x14e8c0;return db[_0x8ca46f+_0xf326('0x64')][_0xf326('0x65')]({'where':{'id':_0x363e64[_0xf326('0x1e')][_0xf326('0x66')]},'include':[{'model':db[_0x8ca46f+_0xf326('0x67')],'as':_0xf326('0x67')},{'model':db[_0x8ca46f+_0x499cbd],'as':_0xf326('0x68')}]});})[_0xf326('0x8')](function(_0x38b696){if(_[_0xf326('0x12')](_0x38b696)){throw new Error(_0x8ca46f+_0xf326('0x69'));}_0x293600=_0x38b696;return _0x38b696[_0xf326('0x6a')]({'read':0x0,'readAt':null,'UserId':null});})[_0xf326('0x8')](function(){var _0x1f990d={'uniqueid':_0x153027+'.'+_0x293600['id']+'.'+_0x293600['Interaction']['id'],'FromUserId':_0x363e64[_0xf326('0x2b')]['id'],'type':_0xf326('0x6b')};_0x1f990d[_0x8ca46f+'MessageId']=_0x293600['id'];_0x1f990d[_0x8ca46f+_0xf326('0x6c')]=_0x293600[_0xf326('0x67')]['id'];_0x1f990d['From'+_0x8ca46f+_0x499cbd+'Id']=_0x293600[_0xf326('0x68')]['id'];_0x1f990d['To'+_0x8ca46f+_0xf326('0x6d')]=_0x6e662['id'];return db[_0x8ca46f+_0xf326('0x6e')][_0xf326('0x6f')](_0x1f990d);})[_0xf326('0x8')](function(){return respondWithRpcPromise(_0xf326('0x70'),{'channel':_0x153027,'interaction':_0x293600[_0xf326('0x67')],'message':_0x293600,'account':_0x293600['Account'],'applications':[{'id':0x0,'priority':0x1,'app':_0xf326('0x6b'),'appdata':_0x6e662[_0xf326('0x10')]+','+(_0x293600[_0xf326('0x68')][_0xf326('0x71')]||0x12c),'interval':_0xf326('0x72')}]},routingClient);})[_0xf326('0x8')](respondWithResult(_0x19d676,null))[_0xf326('0xc')](handleError(_0x19d676,null));};};exports[_0xf326('0x73')]=function(_0x486e64,_0xa8e05b){var _0x2e2103,_0x49c3da;if(_[_0xf326('0x12')](_0x486e64['body'][_0xf326('0x74')])){throw new Error(_0xf326('0x75'));}var _0x16bc97=_0x486e64[_0xf326('0x1e')][_0xf326('0x74')];var _0x3097cf=_[_0xf326('0x5f')](_0x16bc97);var _0x1eb29d=_0x16bc97===_0xf326('0x60')?_0xf326('0x61'):_0xf326('0x68');return db[_0xf326('0x76')][_0xf326('0x65')]({'raw':!![],'where':{'id':_0x486e64[_0xf326('0x17')]['id'],'role':'agent'}})[_0xf326('0x8')](function(_0xdb6e40){if(_[_0xf326('0x12')](_0xdb6e40)){throw new Error(_0xf326('0x77'));}_0x2e2103=_0xdb6e40;return db[_0x3097cf+_0xf326('0x64')]['findOne']({'where':{'id':_0x486e64[_0xf326('0x1e')][_0xf326('0x66')]},'include':[{'model':db[_0x3097cf+_0xf326('0x67')],'as':_0xf326('0x67')},{'model':db[_0x3097cf+_0x1eb29d],'as':_0xf326('0x68')}]});})['then'](function(_0x4b6ec0){if(_[_0xf326('0x12')](_0x4b6ec0)){throw new Error(_0x3097cf+'\x20Message\x20not\x20found');}_0x49c3da=_0x4b6ec0;return _0x4b6ec0[_0xf326('0x6a')]({'read':0x0,'readAt':null,'UserId':null});})[_0xf326('0x8')](function(){var _0x29610a={'uniqueid':_0x16bc97+'.'+_0x49c3da['id']+'.'+_0x49c3da['Interaction']['id'],'FromUserId':_0x486e64['user']['id'],'type':_0xf326('0x6b'),'ToUserId':_0x2e2103['id']};_0x29610a[_0x3097cf+_0xf326('0x78')]=_0x49c3da['id'];_0x29610a[_0x3097cf+_0xf326('0x6c')]=_0x49c3da[_0xf326('0x67')]['id'];_0x29610a[_0xf326('0x79')+_0x3097cf+_0x1eb29d+'Id']=_0x49c3da['Account']['id'];return db[_0x3097cf+_0xf326('0x6e')][_0xf326('0x6f')](_0x29610a);})[_0xf326('0x8')](function(){return respondWithRpcPromise('Start',{'channel':_0x16bc97,'interaction':_0x49c3da['Interaction'],'message':_0x49c3da,'account':_0x49c3da['Account'],'applications':[{'id':0x0,'priority':0x1,'app':_0xf326('0x36'),'appdata':_0x2e2103[_0xf326('0x10')]+','+(_0x49c3da[_0xf326('0x68')][_0xf326('0x7a')]||0x12c),'interval':_0xf326('0x72')}]},routingClient);})[_0xf326('0x8')](respondWithResult(_0xa8e05b,null))[_0xf326('0xc')](handleError(_0xa8e05b,null));};
\ No newline at end of file
+var _0x5fc3=['openchannelQueuesWaitingInteractions','OpenchannelQueuesWaitingInteractions','openchannelQueuesIdWaitingInteractions','type','filter','queue_id','uniq','value','smsQueuesWaitingInteractions','whatsappQueuesWaitingInteractions','WhatsappQueuesWaitingInteractions','faxQueuesWaitingInteractions','queueNotify','capitalize','Website','Account','Queue','\x20Queue\x20not\x20found','Message','findOne','Interaction','update','queue','MessageId','InteractionId','From','QueueId','TransferReport','create','queueTransferTimeout','*,*,*,*','agentNotify','channel','chat','User','\x20Message\x20not\x20found','Start','agentTransferTimeout','bluebird','moment','util','../../mysqldb','../../config/logger','api','jayson/promise','http','client','request','then','error','code','message','result','catch','status','json','sendStatus','name','send','isNil','rows','voiceChannels','VoiceChannels','query','voiceChannelMixMonitor','VoiceChannelMixMonitor','merge','params','VoiceChannelStopMixMonitor','VoiceQueues','showVoiceQueues','updateVoiceQueue','UpdateVoiceQueue','body','voiceQueuesPreview','voiceQueuesChannels','VoiceQueuesChannels','voiceQueuesChannel','VoiceQueuesChannel','voiceQueuesChannelHangup','VoiceQueuesChannelHangup','voiceQueuesChannelRedirect','outboundChannels','OutboundChannels','agents','Agents','agentCapacity','interaction','user','format','length','updateAttributes','MemberReport','findOrCreate','INTERACTION','interface','SIP/%s','YYYY-MM-DD\x20HH:mm:ss','agent','internal','AgentCapacity','capacity','telephones','trunks','campaigns','Campaigns','chatQueues','ChatQueues','mailQueues','MailQueues','showMailQueues','mailAccounts','MailAccounts','OpenchannelQueues','showOpenchannelQueues','smsQueues','SmsQueues','showSmsQueues','whatsappQueues','WhatsappQueues','showWhatsappQueues','faxQueues','FaxQueues','showFaxQueues','faxAccounts','FaxAccounts','chatQueuesWaitingInteractions','ChatQueuesWaitingInteractions','mailQueuesWaitingInteractions','MailQueuesWaitingInteractions'];(function(_0x2a5edf,_0x365fca){var _0x309c02=function(_0x4bccd7){while(--_0x4bccd7){_0x2a5edf['push'](_0x2a5edf['shift']());}};_0x309c02(++_0x365fca);}(_0x5fc3,0xa8));var _0x35fc=function(_0x2dc343,_0xf015a2){_0x2dc343=_0x2dc343-0x0;var _0x51eac5=_0x5fc3[_0x2dc343];return _0x51eac5;};'use strict';var BPromise=require(_0x35fc('0x0'));var moment=require(_0x35fc('0x1'));var _=require('lodash');var util=require(_0x35fc('0x2'));var db=require(_0x35fc('0x3'))['db'];var logger=require(_0x35fc('0x4'))(_0x35fc('0x5'));var jayson=require(_0x35fc('0x6'));var amiClient=jayson['client'][_0x35fc('0x7')]({'port':0x232a});var mailClient=jayson[_0x35fc('0x8')][_0x35fc('0x7')]({'port':0x232b});var routingClient=jayson['client']['http']({'port':0x232c});function respondWithRpcPromise(_0x19a0d1,_0x508b32,_0x16e153){return new BPromise(function(_0x27524f,_0xc72d93){var _0x1e5f90=_0x16e153?_0x16e153:amiClient;return _0x1e5f90[_0x35fc('0x9')](_0x19a0d1,_0x508b32)[_0x35fc('0xa')](function(_0x2051ab){if(_0x2051ab['error']){if(_0x2051ab[_0x35fc('0xb')][_0x35fc('0xc')]===0x1f4){return _0xc72d93(_0x2051ab['error'][_0x35fc('0xd')]);}return _0x27524f(_0x2051ab[_0x35fc('0xb')]['message']);}else{_0x27524f(_0x2051ab[_0x35fc('0xe')]);}})[_0x35fc('0xf')](function(_0x5469f5){_0xc72d93(_0x5469f5);});});}function respondWithResult(_0x4cbe74,_0x409357){_0x409357=_0x409357||0xc8;return function(_0x5d462a){if(_0x5d462a){return _0x4cbe74[_0x35fc('0x10')](_0x409357)[_0x35fc('0x11')](_0x5d462a);}return _0x4cbe74[_0x35fc('0x12')](0x194);};}function handleError(_0x29730f,_0x38d9f2){_0x38d9f2=_0x38d9f2||0x1f4;return function(_0x5cfe94){logger['error'](_0x5cfe94['stack']);if(_0x5cfe94['name']){delete _0x5cfe94[_0x35fc('0x13')];}_0x29730f[_0x35fc('0x10')](_0x38d9f2)[_0x35fc('0x14')](_0x5cfe94);};}function findById(_0x154958){return function(_0x227a49){if(!_[_0x35fc('0x15')](_0x154958)&&!_['isNil'](_0x227a49)&&!_[_0x35fc('0x15')](_0x227a49[_0x35fc('0x16')])){return _['find'](_0x227a49[_0x35fc('0x16')],function(_0x363e47){return _0x363e47['id']==_0x154958;});}return null;};}exports[_0x35fc('0x17')]=function(_0x5f56c6,_0x1a86e9){return respondWithRpcPromise(_0x35fc('0x18'),_0x5f56c6[_0x35fc('0x19')])['then'](respondWithResult(_0x1a86e9,null))[_0x35fc('0xf')](handleError(_0x1a86e9,null));};exports[_0x35fc('0x1a')]=function(_0x3229d1,_0x251a1f){return respondWithRpcPromise(_0x35fc('0x1b'),_[_0x35fc('0x1c')](_0x3229d1[_0x35fc('0x19')],_0x3229d1[_0x35fc('0x1d')]))[_0x35fc('0xa')](respondWithResult(_0x251a1f,null))[_0x35fc('0xf')](handleError(_0x251a1f,null));};exports['voiceChannelStopMixMonitor']=function(_0x323aee,_0xd5399f){return respondWithRpcPromise(_0x35fc('0x1e'),_[_0x35fc('0x1c')](_0x323aee[_0x35fc('0x19')],_0x323aee['params']))[_0x35fc('0xa')](respondWithResult(_0xd5399f,null))[_0x35fc('0xf')](handleError(_0xd5399f,null));};exports['voiceQueues']=function(_0x265324,_0x5a93df){return respondWithRpcPromise(_0x35fc('0x1f'),_0x265324['query'])[_0x35fc('0xa')](respondWithResult(_0x5a93df,null))['catch'](handleError(_0x5a93df,null));};exports[_0x35fc('0x20')]=function(_0xdfab9f,_0x5cb986){return respondWithRpcPromise('VoiceQueues',_0xdfab9f[_0x35fc('0x19')])['then'](findById(_0xdfab9f[_0x35fc('0x1d')]['id']))[_0x35fc('0xa')](respondWithResult(_0x5cb986,null))['catch'](handleError(_0x5cb986,null));};exports[_0x35fc('0x21')]=function(_0x645eac,_0x383837){return respondWithRpcPromise(_0x35fc('0x22'),_[_0x35fc('0x1c')](_0x645eac[_0x35fc('0x23')],_0x645eac[_0x35fc('0x1d')]))[_0x35fc('0xa')](respondWithResult(_0x383837,null))['catch'](handleError(_0x383837,null));};exports[_0x35fc('0x24')]=function(_0x220931,_0x22af18){return respondWithRpcPromise('VoiceQueuesPreview',_[_0x35fc('0x1c')](_0x220931[_0x35fc('0x19')],_0x220931[_0x35fc('0x1d')]))[_0x35fc('0xa')](respondWithResult(_0x22af18,null))[_0x35fc('0xf')](handleError(_0x22af18,null));};exports[_0x35fc('0x25')]=function(_0x222ddb,_0x37b435){return respondWithRpcPromise(_0x35fc('0x26'),_0x222ddb[_0x35fc('0x19')])['then'](respondWithResult(_0x37b435,null))['catch'](handleError(_0x37b435,null));};exports[_0x35fc('0x27')]=function(_0x4af5fe,_0x37b394){return respondWithRpcPromise(_0x35fc('0x28'),_[_0x35fc('0x1c')](_0x4af5fe[_0x35fc('0x19')],_0x4af5fe[_0x35fc('0x1d')]))[_0x35fc('0xa')](respondWithResult(_0x37b394,null))['catch'](handleError(_0x37b394,null));};exports[_0x35fc('0x29')]=function(_0x330a14,_0x46b9ef){return respondWithRpcPromise(_0x35fc('0x2a'),_[_0x35fc('0x1c')](_0x330a14[_0x35fc('0x19')],_0x330a14['params']))[_0x35fc('0xa')](respondWithResult(_0x46b9ef,null))[_0x35fc('0xf')](handleError(_0x46b9ef,null));};exports[_0x35fc('0x2b')]=function(_0x52f53d,_0x2c657d){return respondWithRpcPromise('VoiceQueuesChannelRedirect',_[_0x35fc('0x1c')](_0x52f53d[_0x35fc('0x19')],_0x52f53d[_0x35fc('0x1d')]))[_0x35fc('0xa')](respondWithResult(_0x2c657d,null))['catch'](handleError(_0x2c657d,null));};exports['outbound']=function(_0x59e4fb,_0x20f5fe){return respondWithRpcPromise('Outbound',_0x59e4fb[_0x35fc('0x19')])['then'](respondWithResult(_0x20f5fe,null))[_0x35fc('0xf')](handleError(_0x20f5fe,null));};exports[_0x35fc('0x2c')]=function(_0x2ca9ac,_0x22b724){return respondWithRpcPromise(_0x35fc('0x2d'),_0x2ca9ac[_0x35fc('0x19')])[_0x35fc('0xa')](respondWithResult(_0x22b724,null))['catch'](handleError(_0x22b724,null));};exports[_0x35fc('0x2e')]=function(_0x16087d,_0x4e0ce3){var _0x1feda5;return respondWithRpcPromise(_0x35fc('0x2f'),_0x16087d[_0x35fc('0x19')])[_0x35fc('0xa')](function(_0x813866){_0x1feda5=_0x813866;return respondWithRpcPromise(_0x35fc('0x2f'),_0x16087d['query'],routingClient);})[_0x35fc('0xa')](function(_0x267858){return _[_0x35fc('0x1c')]({},_0x267858,_0x1feda5);})['then'](respondWithResult(_0x4e0ce3,null))[_0x35fc('0xf')](handleError(_0x4e0ce3,null));};exports[_0x35fc('0x30')]=function(_0x596919,_0x237548){if(_0x596919[_0x35fc('0x23')]&&_0x596919[_0x35fc('0x23')][_0x35fc('0x31')]&&_0x596919[_0x35fc('0x32')]&&_0x596919[_0x35fc('0x32')][_0x35fc('0x13')]){for(var _0x3ec51f in _0x596919['body']['interaction']){if(_0x596919[_0x35fc('0x23')][_0x35fc('0x31')]['hasOwnProperty'](_0x3ec51f)){db['MemberReport']['findAll']({'where':{'channel':_0x3ec51f,'membername':_0x596919[_0x35fc('0x32')][_0x35fc('0x13')],'type':'INTERACTION','exitAt':null,'uniqueid':_0x596919[_0x35fc('0x23')][_0x35fc('0x31')][_0x3ec51f]&&_0x596919[_0x35fc('0x23')][_0x35fc('0x31')][_0x3ec51f]['length']?{'$notIn':_0x596919['body']['interaction'][_0x3ec51f]}:{'$ne':null}}})['then'](function(_0x56bdb9){var _0xb26e3f=moment()[_0x35fc('0x33')]('YYYY-MM-DD\x20HH:mm:ss');for(var _0x119925=0x0,_0x56cf1f=_0x56bdb9[_0x35fc('0x34')];_0x119925<_0x56cf1f;_0x119925+=0x1){_0x56bdb9[_0x119925][_0x35fc('0x35')]({'exitAt':_0xb26e3f});}});for(var _0x350237=0x0;_0x350237<_0x596919[_0x35fc('0x23')][_0x35fc('0x31')][_0x3ec51f]['length'];_0x350237+=0x1){db[_0x35fc('0x36')][_0x35fc('0x37')]({'where':{'channel':_0x3ec51f,'membername':_0x596919['user'][_0x35fc('0x13')],'type':_0x35fc('0x38'),'uniqueid':_0x596919[_0x35fc('0x23')][_0x35fc('0x31')][_0x3ec51f][_0x350237],'exitAt':null},'defaults':{'channel':_0x3ec51f,'membername':_0x596919['user'][_0x35fc('0x13')],'interface':_['isNil'](_0x596919['user'][_0x35fc('0x39')])?util[_0x35fc('0x33')](_0x35fc('0x3a'),_0x596919[_0x35fc('0x32')][_0x35fc('0x13')]):_0x596919[_0x35fc('0x32')][_0x35fc('0x39')],'type':_0x35fc('0x38'),'enterAt':moment()['format'](_0x35fc('0x3b')),'role':_0x35fc('0x3c'),'internal':_0x596919[_0x35fc('0x32')][_0x35fc('0x3d')],'uniqueid':_0x596919[_0x35fc('0x23')][_0x35fc('0x31')][_0x3ec51f][_0x350237]}});}}}}return respondWithRpcPromise(_0x35fc('0x3e'),{'id':_0x596919[_0x35fc('0x1d')]['id'],'capacity':_0x596919[_0x35fc('0x23')][_0x35fc('0x3f')]},routingClient)[_0x35fc('0xa')](respondWithResult(_0x237548,null))[_0x35fc('0xf')](handleError(_0x237548,null));};exports[_0x35fc('0x40')]=function(_0x3146e2,_0x59c666){return respondWithRpcPromise('Telephones',_0x3146e2[_0x35fc('0x19')])[_0x35fc('0xa')](respondWithResult(_0x59c666,null))[_0x35fc('0xf')](handleError(_0x59c666,null));};exports[_0x35fc('0x41')]=function(_0x3ee296,_0x3e6494){return respondWithRpcPromise('Trunks',_0x3ee296['query'])[_0x35fc('0xa')](respondWithResult(_0x3e6494,null))[_0x35fc('0xf')](handleError(_0x3e6494,null));};exports[_0x35fc('0x42')]=function(_0x38bc78,_0x5b2595){return respondWithRpcPromise(_0x35fc('0x43'),_0x38bc78[_0x35fc('0x19')])['then'](respondWithResult(_0x5b2595,null))[_0x35fc('0xf')](handleError(_0x5b2595,null));};exports[_0x35fc('0x44')]=function(_0x590faa,_0x3e12e4){return respondWithRpcPromise(_0x35fc('0x45'),_0x590faa[_0x35fc('0x19')],routingClient)[_0x35fc('0xa')](respondWithResult(_0x3e12e4,null))['catch'](handleError(_0x3e12e4,null));};exports['showChatQueues']=function(_0x502a15,_0x240338){return respondWithRpcPromise(_0x35fc('0x45'),_0x502a15['query'],routingClient)[_0x35fc('0xa')](findById(_0x502a15[_0x35fc('0x1d')]['id']))[_0x35fc('0xa')](respondWithResult(_0x240338,null))[_0x35fc('0xf')](handleError(_0x240338,null));};exports[_0x35fc('0x46')]=function(_0x538be0,_0x2d9d45){return respondWithRpcPromise(_0x35fc('0x47'),_0x538be0[_0x35fc('0x19')],routingClient)['then'](respondWithResult(_0x2d9d45,null))[_0x35fc('0xf')](handleError(_0x2d9d45,null));};exports[_0x35fc('0x48')]=function(_0x47fb1a,_0x35a676){return respondWithRpcPromise(_0x35fc('0x47'),_0x47fb1a[_0x35fc('0x19')],routingClient)[_0x35fc('0xa')](findById(_0x47fb1a[_0x35fc('0x1d')]['id']))[_0x35fc('0xa')](respondWithResult(_0x35a676,null))[_0x35fc('0xf')](handleError(_0x35a676,null));};exports[_0x35fc('0x49')]=function(_0x53a79d,_0x10a5b8){return respondWithRpcPromise(_0x35fc('0x4a'),_0x53a79d[_0x35fc('0x19')],mailClient)['then'](respondWithResult(_0x10a5b8,null))[_0x35fc('0xf')](handleError(_0x10a5b8,null));};exports['openchannelQueues']=function(_0x4ceacc,_0x5d4a39){return respondWithRpcPromise(_0x35fc('0x4b'),_0x4ceacc[_0x35fc('0x19')],routingClient)[_0x35fc('0xa')](respondWithResult(_0x5d4a39,null))[_0x35fc('0xf')](handleError(_0x5d4a39,null));};exports[_0x35fc('0x4c')]=function(_0x4bbea0,_0x579f5a){return respondWithRpcPromise('OpenchannelQueues',_0x4bbea0['query'],routingClient)['then'](findById(_0x4bbea0[_0x35fc('0x1d')]['id']))[_0x35fc('0xa')](respondWithResult(_0x579f5a,null))[_0x35fc('0xf')](handleError(_0x579f5a,null));};exports[_0x35fc('0x4d')]=function(_0x511e8b,_0x458eb8){return respondWithRpcPromise(_0x35fc('0x4e'),_0x511e8b[_0x35fc('0x19')],routingClient)[_0x35fc('0xa')](respondWithResult(_0x458eb8,null))[_0x35fc('0xf')](handleError(_0x458eb8,null));};exports[_0x35fc('0x4f')]=function(_0x27071b,_0x2127e0){return respondWithRpcPromise(_0x35fc('0x4e'),_0x27071b['query'],routingClient)[_0x35fc('0xa')](findById(_0x27071b['params']['id']))[_0x35fc('0xa')](respondWithResult(_0x2127e0,null))[_0x35fc('0xf')](handleError(_0x2127e0,null));};exports[_0x35fc('0x50')]=function(_0x2bc76c,_0x4bdde7){return respondWithRpcPromise(_0x35fc('0x51'),_0x2bc76c['query'],routingClient)['then'](respondWithResult(_0x4bdde7,null))['catch'](handleError(_0x4bdde7,null));};exports[_0x35fc('0x52')]=function(_0x5dfeb7,_0x3c9027){return respondWithRpcPromise('WhatsappQueues',_0x5dfeb7[_0x35fc('0x19')],routingClient)['then'](findById(_0x5dfeb7[_0x35fc('0x1d')]['id']))[_0x35fc('0xa')](respondWithResult(_0x3c9027,null))[_0x35fc('0xf')](handleError(_0x3c9027,null));};exports[_0x35fc('0x53')]=function(_0x5c2ec0,_0x3d0ecc){return respondWithRpcPromise(_0x35fc('0x54'),_0x5c2ec0[_0x35fc('0x19')],routingClient)['then'](respondWithResult(_0x3d0ecc,null))[_0x35fc('0xf')](handleError(_0x3d0ecc,null));};exports[_0x35fc('0x55')]=function(_0x37764b,_0x3c1b56){return respondWithRpcPromise(_0x35fc('0x54'),_0x37764b[_0x35fc('0x19')],routingClient)[_0x35fc('0xa')](findById(_0x37764b[_0x35fc('0x1d')]['id']))['then'](respondWithResult(_0x3c1b56,null))[_0x35fc('0xf')](handleError(_0x3c1b56,null));};exports[_0x35fc('0x56')]=function(_0x2600d2,_0x4a926d){return respondWithRpcPromise(_0x35fc('0x57'),_0x2600d2[_0x35fc('0x19')])['then'](respondWithResult(_0x4a926d,null))['catch'](handleError(_0x4a926d,null));};exports[_0x35fc('0x58')]=function(_0x4835c2,_0x223ad3){return respondWithRpcPromise(_0x35fc('0x59'),_0x4835c2[_0x35fc('0x19')],routingClient)[_0x35fc('0xa')](respondWithResult(_0x223ad3,null))[_0x35fc('0xf')](handleError(_0x223ad3,null));};exports[_0x35fc('0x5a')]=function(_0x13f602,_0x104b1d){return respondWithRpcPromise(_0x35fc('0x5b'),_0x13f602[_0x35fc('0x19')],routingClient)[_0x35fc('0xa')](respondWithResult(_0x104b1d,null))[_0x35fc('0xf')](handleError(_0x104b1d,null));};exports[_0x35fc('0x5c')]=function(_0x9f034e,_0x184f28){return respondWithRpcPromise(_0x35fc('0x5d'),_0x9f034e[_0x35fc('0x19')],routingClient)[_0x35fc('0xa')](respondWithResult(_0x184f28,null))[_0x35fc('0xf')](handleError(_0x184f28,null));};exports[_0x35fc('0x5e')]=function(_0x4ba1b0,_0x1797d0){return respondWithRpcPromise('OpenchannelQueuesWaitingInteractions',_0x4ba1b0[_0x35fc('0x19')],routingClient)[_0x35fc('0xa')](function(_0x2185ce){if(_0x4ba1b0[_0x35fc('0x19')][_0x35fc('0x5f')]!==undefined){var _0x3f56f4=_(_0x2185ce[_0x35fc('0x16')])[_0x35fc('0x60')]([_0x4ba1b0[_0x35fc('0x19')][_0x35fc('0x5f')],_0x4ba1b0[_0x35fc('0x1d')]['id']])['map'](_0x35fc('0x61'))[_0x35fc('0x62')]()[_0x35fc('0x63')]();return _0x2185ce[_0x35fc('0x16')][_0x35fc('0x60')](function(_0x41a6de){return _0x3f56f4['indexOf'](_0x41a6de[_0x35fc('0x61')])>-0x1;});}else{return _0x2185ce[_0x35fc('0x16')][_0x35fc('0x60')](function(_0x23206d){return _0x23206d[_0x35fc('0x61')]===parseInt(_0x4ba1b0[_0x35fc('0x1d')]['id']);});}})[_0x35fc('0xa')](respondWithResult(_0x1797d0,null))[_0x35fc('0xf')](handleError(_0x1797d0,null));};exports[_0x35fc('0x64')]=function(_0x5f23d8,_0x28f02b){return respondWithRpcPromise('SmsQueuesWaitingInteractions',_0x5f23d8[_0x35fc('0x19')],routingClient)[_0x35fc('0xa')](respondWithResult(_0x28f02b,null))['catch'](handleError(_0x28f02b,null));};exports[_0x35fc('0x65')]=function(_0x41002a,_0xcaa49){return respondWithRpcPromise(_0x35fc('0x66'),_0x41002a[_0x35fc('0x19')],routingClient)[_0x35fc('0xa')](respondWithResult(_0xcaa49,null))[_0x35fc('0xf')](handleError(_0xcaa49,null));};exports[_0x35fc('0x67')]=function(_0x25ee61,_0x5806bf){return respondWithRpcPromise('FaxQueuesWaitingInteractions',_0x25ee61['query'],routingClient)['then'](respondWithResult(_0x5806bf,null))[_0x35fc('0xf')](handleError(_0x5806bf,null));};exports[_0x35fc('0x68')]=function(_0x8fc410){return function(_0x1f5cbc,_0x35ef53){var _0x4f535a,_0x226fdf;var _0x19682e=_[_0x35fc('0x69')](_0x8fc410);var _0x169ea2=_0x8fc410==='chat'?_0x35fc('0x6a'):_0x35fc('0x6b');return db[_0x19682e+_0x35fc('0x6c')]['findOne']({'raw':!![],'where':{'id':_0x1f5cbc[_0x35fc('0x1d')]['id']}})[_0x35fc('0xa')](function(_0x319033){if(_[_0x35fc('0x15')](_0x319033)){throw new Error(_0x19682e+_0x35fc('0x6d'));}_0x4f535a=_0x319033;return db[_0x19682e+_0x35fc('0x6e')][_0x35fc('0x6f')]({'where':{'id':_0x1f5cbc[_0x35fc('0x23')]['messageId']},'include':[{'model':db[_0x19682e+_0x35fc('0x70')],'as':_0x35fc('0x70')},{'model':db[_0x19682e+_0x169ea2],'as':_0x35fc('0x6b')}]});})[_0x35fc('0xa')](function(_0x221c5b){if(_[_0x35fc('0x15')](_0x221c5b)){throw new Error(_0x19682e+'\x20Message\x20not\x20found');}_0x226fdf=_0x221c5b;return _0x221c5b[_0x35fc('0x71')]({'read':0x0,'readAt':null,'UserId':null});})['then'](function(){var _0x4855ee={'uniqueid':_0x8fc410+'.'+_0x226fdf['id']+'.'+_0x226fdf[_0x35fc('0x70')]['id'],'FromUserId':_0x1f5cbc['user']['id'],'type':_0x35fc('0x72')};_0x4855ee[_0x19682e+_0x35fc('0x73')]=_0x226fdf['id'];_0x4855ee[_0x19682e+_0x35fc('0x74')]=_0x226fdf['Interaction']['id'];_0x4855ee[_0x35fc('0x75')+_0x19682e+_0x169ea2+'Id']=_0x226fdf[_0x35fc('0x6b')]['id'];_0x4855ee['To'+_0x19682e+_0x35fc('0x76')]=_0x4f535a['id'];return db[_0x19682e+_0x35fc('0x77')][_0x35fc('0x78')](_0x4855ee);})['then'](function(){return respondWithRpcPromise('Start',{'channel':_0x8fc410,'interaction':_0x226fdf['Interaction'],'message':_0x226fdf,'account':_0x226fdf[_0x35fc('0x6b')],'applications':[{'id':0x0,'priority':0x1,'app':'queue','appdata':_0x4f535a[_0x35fc('0x13')]+','+(_0x226fdf[_0x35fc('0x6b')][_0x35fc('0x79')]||0x12c),'interval':_0x35fc('0x7a')}]},routingClient);})['then'](respondWithResult(_0x35ef53,null))[_0x35fc('0xf')](handleError(_0x35ef53,null));};};exports[_0x35fc('0x7b')]=function(_0x312827,_0x47c507){var _0x128286,_0x175cc7;if(_[_0x35fc('0x15')](_0x312827['body']['channel'])){throw new Error('Channel\x20field\x20is\x20mandatory');}var _0x32b9e1=_0x312827[_0x35fc('0x23')][_0x35fc('0x7c')];var _0x3858a9=_['capitalize'](_0x32b9e1);var _0x3ead4e=_0x32b9e1===_0x35fc('0x7d')?'Website':'Account';return db[_0x35fc('0x7e')][_0x35fc('0x6f')]({'raw':!![],'where':{'id':_0x312827[_0x35fc('0x1d')]['id'],'role':'agent'}})['then'](function(_0x134e60){if(_[_0x35fc('0x15')](_0x134e60)){throw new Error('Agent\x20not\x20found');}_0x128286=_0x134e60;return db[_0x3858a9+_0x35fc('0x6e')][_0x35fc('0x6f')]({'where':{'id':_0x312827[_0x35fc('0x23')]['messageId']},'include':[{'model':db[_0x3858a9+_0x35fc('0x70')],'as':_0x35fc('0x70')},{'model':db[_0x3858a9+_0x3ead4e],'as':_0x35fc('0x6b')}]});})[_0x35fc('0xa')](function(_0x4fd676){if(_[_0x35fc('0x15')](_0x4fd676)){throw new Error(_0x3858a9+_0x35fc('0x7f'));}_0x175cc7=_0x4fd676;return _0x4fd676[_0x35fc('0x71')]({'read':0x0,'readAt':null,'UserId':null});})['then'](function(){var _0x96dfc={'uniqueid':_0x32b9e1+'.'+_0x175cc7['id']+'.'+_0x175cc7[_0x35fc('0x70')]['id'],'FromUserId':_0x312827[_0x35fc('0x32')]['id'],'type':'queue','ToUserId':_0x128286['id']};_0x96dfc[_0x3858a9+_0x35fc('0x73')]=_0x175cc7['id'];_0x96dfc[_0x3858a9+_0x35fc('0x74')]=_0x175cc7['Interaction']['id'];_0x96dfc[_0x35fc('0x75')+_0x3858a9+_0x3ead4e+'Id']=_0x175cc7[_0x35fc('0x6b')]['id'];return db[_0x3858a9+_0x35fc('0x77')][_0x35fc('0x78')](_0x96dfc);})[_0x35fc('0xa')](function(){return respondWithRpcPromise(_0x35fc('0x80'),{'channel':_0x32b9e1,'interaction':_0x175cc7[_0x35fc('0x70')],'message':_0x175cc7,'account':_0x175cc7[_0x35fc('0x6b')],'applications':[{'id':0x0,'priority':0x1,'app':_0x35fc('0x3c'),'appdata':_0x128286['name']+','+(_0x175cc7[_0x35fc('0x6b')][_0x35fc('0x81')]||0x12c),'interval':_0x35fc('0x7a')}]},routingClient);})[_0x35fc('0xa')](respondWithResult(_0x47c507,null))['catch'](handleError(_0x47c507,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6e5f=['path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./schedule.controller','get','isAuthenticated','index','/:id','show','/:id/run','run','post','create','put','update','delete','destroy','multer','util'];(function(_0x40220a,_0x22feb1){var _0x3903cc=function(_0x33a296){while(--_0x33a296){_0x40220a['push'](_0x40220a['shift']());}};_0x3903cc(++_0x22feb1);}(_0x6e5f,0x76));var _0xf6e5=function(_0xd10ac6,_0x50103d){_0xd10ac6=_0xd10ac6-0x0;var _0x1e514e=_0x6e5f[_0xd10ac6];return _0x1e514e;};'use strict';var multer=require(_0xf6e5('0x0'));var util=require(_0xf6e5('0x1'));var path=require(_0xf6e5('0x2'));var timeout=require(_0xf6e5('0x3'));var express=require(_0xf6e5('0x4'));var router=express[_0xf6e5('0x5')]();var fs_extra=require(_0xf6e5('0x6'));var auth=require(_0xf6e5('0x7'));var interaction=require(_0xf6e5('0x8'));var config=require(_0xf6e5('0x9'));var controller=require(_0xf6e5('0xa'));router[_0xf6e5('0xb')]('/',auth[_0xf6e5('0xc')](),controller[_0xf6e5('0xd')]);router[_0xf6e5('0xb')](_0xf6e5('0xe'),auth[_0xf6e5('0xc')](),controller[_0xf6e5('0xf')]);router[_0xf6e5('0xb')](_0xf6e5('0x10'),auth[_0xf6e5('0xc')](),controller[_0xf6e5('0x11')]);router[_0xf6e5('0x12')]('/',auth[_0xf6e5('0xc')](),controller[_0xf6e5('0x13')]);router[_0xf6e5('0x14')](_0xf6e5('0xe'),auth[_0xf6e5('0xc')](),controller[_0xf6e5('0x15')]);router[_0xf6e5('0x16')](_0xf6e5('0xe'),auth[_0xf6e5('0xc')](),controller[_0xf6e5('0x17')]);module['exports']=router;
\ No newline at end of file
+var _0xe740=['../../components/auth/service','../../components/interaction/service','../../config/environment','./schedule.controller','get','isAuthenticated','index','/:id','show','run','post','create','put','update','delete','destroy','multer','util','connect-timeout','fs-extra'];(function(_0x10c16d,_0x2b3e14){var _0x5896f4=function(_0x4306b9){while(--_0x4306b9){_0x10c16d['push'](_0x10c16d['shift']());}};_0x5896f4(++_0x2b3e14);}(_0xe740,0x1f0));var _0x0e74=function(_0xb1cf84,_0x813740){_0xb1cf84=_0xb1cf84-0x0;var _0x4bad2e=_0xe740[_0xb1cf84];return _0x4bad2e;};'use strict';var multer=require(_0x0e74('0x0'));var util=require(_0x0e74('0x1'));var path=require('path');var timeout=require(_0x0e74('0x2'));var express=require('express');var router=express['Router']();var fs_extra=require(_0x0e74('0x3'));var auth=require(_0x0e74('0x4'));var interaction=require(_0x0e74('0x5'));var config=require(_0x0e74('0x6'));var controller=require(_0x0e74('0x7'));router[_0x0e74('0x8')]('/',auth[_0x0e74('0x9')](),controller[_0x0e74('0xa')]);router[_0x0e74('0x8')](_0x0e74('0xb'),auth[_0x0e74('0x9')](),controller[_0x0e74('0xc')]);router[_0x0e74('0x8')]('/:id/run',auth[_0x0e74('0x9')](),controller[_0x0e74('0xd')]);router[_0x0e74('0xe')]('/',auth[_0x0e74('0x9')](),controller[_0x0e74('0xf')]);router[_0x0e74('0x10')](_0x0e74('0xb'),auth['isAuthenticated'](),controller[_0x0e74('0x11')]);router[_0x0e74('0x12')]('/:id',auth['isAuthenticated'](),controller[_0x0e74('0x13')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9551=['ENUM','years','quarters','months','weeks','days','hours','csv','pdf','xlsx','custom','BOOLEAN','TEXT','sequelize','exports','STRING','INTEGER'];(function(_0x5e1cae,_0x44c44a){var _0x270d1f=function(_0x547919){while(--_0x547919){_0x5e1cae['push'](_0x5e1cae['shift']());}};_0x270d1f(++_0x44c44a);}(_0x9551,0x73));var _0x1955=function(_0x41ed37,_0xbcd1d4){_0x41ed37=_0x41ed37-0x0;var _0x13f7ea=_0x9551[_0x41ed37];return _0x13f7ea;};'use strict';var Sequelize=require(_0x1955('0x0'));module[_0x1955('0x1')]={'name':{'type':Sequelize[_0x1955('0x2')],'allowNull':![]},'description':{'type':Sequelize[_0x1955('0x2')]},'active':{'type':Sequelize['BOOLEAN'],'allowNull':![],'defaultValue':![]},'cron':{'type':Sequelize[_0x1955('0x2')],'allowNull':![],'defaultValue':'0\x200\x20*\x20*\x20*'},'startAt':{'type':Sequelize['DATE'],'allowNull':![]},'endAt':{'type':Sequelize['DATE'],'allowNull':![]},'subtractNumber':{'type':Sequelize[_0x1955('0x3')],'allowNull':![],'defaultValue':0x1,'validate':{'min':0x1}},'subtractUnit':{'type':Sequelize[_0x1955('0x4')](_0x1955('0x5'),_0x1955('0x6'),_0x1955('0x7'),_0x1955('0x8'),_0x1955('0x9'),_0x1955('0xa'),'minutes'),'allowNull':![],'defaultValue':_0x1955('0x9')},'output':{'type':Sequelize[_0x1955('0x4')](_0x1955('0xb'),_0x1955('0xc'),_0x1955('0xd')),'allowNull':![],'defaultValue':_0x1955('0xb')},'type':{'type':Sequelize[_0x1955('0x4')](_0x1955('0xe'),'default'),'allowNull':![],'defaultValue':_0x1955('0xe')},'sendMail':{'type':Sequelize[_0x1955('0xf')],'defaultValue':![]},'email':{'type':Sequelize[_0x1955('0x2')]},'cc':{'type':Sequelize[_0x1955('0x10')]},'bcc':{'type':Sequelize[_0x1955('0x10')]},'sendIfEmpty':{'type':Sequelize[_0x1955('0xf')],'defaultValue':!![]}};
\ No newline at end of file
+var _0x99db=['custom','default','TEXT','exports','STRING','BOOLEAN','0\x200\x20*\x20*\x20*','DATE','INTEGER','ENUM','years','quarters','months','days','hours','minutes','csv','pdf','xlsx'];(function(_0x56d4b4,_0x4862cb){var _0x1fa9bc=function(_0x22d216){while(--_0x22d216){_0x56d4b4['push'](_0x56d4b4['shift']());}};_0x1fa9bc(++_0x4862cb);}(_0x99db,0x120));var _0xb99d=function(_0x31e94f,_0x42ecd6){_0x31e94f=_0x31e94f-0x0;var _0x1b8494=_0x99db[_0x31e94f];return _0x1b8494;};'use strict';var Sequelize=require('sequelize');module[_0xb99d('0x0')]={'name':{'type':Sequelize[_0xb99d('0x1')],'allowNull':![]},'description':{'type':Sequelize[_0xb99d('0x1')]},'active':{'type':Sequelize[_0xb99d('0x2')],'allowNull':![],'defaultValue':![]},'cron':{'type':Sequelize[_0xb99d('0x1')],'allowNull':![],'defaultValue':_0xb99d('0x3')},'startAt':{'type':Sequelize[_0xb99d('0x4')],'allowNull':![]},'endAt':{'type':Sequelize[_0xb99d('0x4')],'allowNull':![]},'subtractNumber':{'type':Sequelize[_0xb99d('0x5')],'allowNull':![],'defaultValue':0x1,'validate':{'min':0x1}},'subtractUnit':{'type':Sequelize[_0xb99d('0x6')](_0xb99d('0x7'),_0xb99d('0x8'),_0xb99d('0x9'),'weeks',_0xb99d('0xa'),_0xb99d('0xb'),_0xb99d('0xc')),'allowNull':![],'defaultValue':'days'},'output':{'type':Sequelize['ENUM'](_0xb99d('0xd'),_0xb99d('0xe'),_0xb99d('0xf')),'allowNull':![],'defaultValue':_0xb99d('0xd')},'type':{'type':Sequelize[_0xb99d('0x6')](_0xb99d('0x10'),_0xb99d('0x11')),'allowNull':![],'defaultValue':'custom'},'sendMail':{'type':Sequelize[_0xb99d('0x2')],'defaultValue':![]},'email':{'type':Sequelize['STRING']},'cc':{'type':Sequelize['TEXT']},'bcc':{'type':Sequelize[_0xb99d('0x12')]},'sendIfEmpty':{'type':Sequelize[_0xb99d('0x2')],'defaultValue':!![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb47d=['keys','find','catch','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','params','run','../../config/schedule','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','sox','to-csv','ejs','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','count','limit','set','Content-Range','reject','save','then','destroy','get','UserProfileResource','error','stack','name','Schedule','rawAttributes','fieldName','type','key','model','query','intersection','attributes','fields','length','nolimit','sort','where','filters','filter','merge','map','VIRTUAL','options','includeAll','include','findAll','rows','show'];(function(_0x1a3bca,_0x34047c){var _0x3db2e6=function(_0x349795){while(--_0x349795){_0x1a3bca['push'](_0x1a3bca['shift']());}};_0x3db2e6(++_0x34047c);}(_0xb47d,0x104));var _0xdb47=function(_0x3ae30b,_0x3a5b86){_0x3ae30b=_0x3ae30b-0x0;var _0x43969a=_0xb47d[_0x3ae30b];return _0x43969a;};'use strict';var emlformat=require(_0xdb47('0x0'));var rimraf=require(_0xdb47('0x1'));var zipdir=require(_0xdb47('0x2'));var jsonpatch=require(_0xdb47('0x3'));var rp=require(_0xdb47('0x4'));var moment=require(_0xdb47('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require(_0xdb47('0x6'));var csv=require(_0xdb47('0x7'));var ejs=require(_0xdb47('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0xdb47('0x9'));var crypto=require(_0xdb47('0xa'));var jsforce=require(_0xdb47('0xb'));var deskjs=require(_0xdb47('0xc'));var toCsv=require(_0xdb47('0x7'));var querystring=require('querystring');var Papa=require(_0xdb47('0xd'));var Redis=require(_0xdb47('0xe'));var authService=require(_0xdb47('0xf'));var qs=require(_0xdb47('0x10'));var as=require(_0xdb47('0x11'));var hardwareService=require(_0xdb47('0x12'));var logger=require(_0xdb47('0x13'))(_0xdb47('0x14'));var utils=require(_0xdb47('0x15'));var config=require(_0xdb47('0x16'));var licenseUtil=require(_0xdb47('0x17'));var db=require(_0xdb47('0x18'))['db'];function respondWithStatusCode(_0x40338e,_0x31d990){_0x31d990=_0x31d990||0xcc;return function(_0x3b6310){if(_0x3b6310){return _0x40338e[_0xdb47('0x19')](_0x31d990);}return _0x40338e['status'](_0x31d990)['end']();};}function respondWithResult(_0x395253,_0x5d1fc8){_0x5d1fc8=_0x5d1fc8||0xc8;return function(_0x599eaf){if(_0x599eaf){return _0x395253[_0xdb47('0x1a')](_0x5d1fc8)[_0xdb47('0x1b')](_0x599eaf);}};}function respondWithFilteredResult(_0xe73027,_0x4fb172){return function(_0x3147bc){if(_0x3147bc){var _0x16c42e=typeof _0x4fb172[_0xdb47('0x1c')]===_0xdb47('0x1d')&&typeof _0x4fb172['limit']===_0xdb47('0x1d');var _0x2c46af=_0x3147bc[_0xdb47('0x1e')];var _0x48f82e=_0x16c42e?0x0:_0x4fb172[_0xdb47('0x1c')];var _0x16e82f=_0x16c42e?_0x3147bc[_0xdb47('0x1e')]:_0x4fb172[_0xdb47('0x1c')]+_0x4fb172[_0xdb47('0x1f')];var _0x2ebe88;if(_0x16e82f>=_0x2c46af){_0x16e82f=_0x2c46af;_0x2ebe88=0xc8;}else{_0x2ebe88=0xce;}_0xe73027[_0xdb47('0x1a')](_0x2ebe88);return _0xe73027[_0xdb47('0x20')](_0xdb47('0x21'),_0x48f82e+'-'+_0x16e82f+'/'+_0x2c46af)[_0xdb47('0x1b')](_0x3147bc);}return null;};}function patchUpdates(_0x2fc59d){return function(_0x4efe97){try{jsonpatch['apply'](_0x4efe97,_0x2fc59d,!![]);}catch(_0x4b39a2){return BPromise[_0xdb47('0x22')](_0x4b39a2);}return _0x4efe97[_0xdb47('0x23')]();};}function saveUpdates(_0x3f8430,_0x11aa5e){return function(_0x5954ad){if(_0x5954ad){return _0x5954ad['update'](_0x3f8430)[_0xdb47('0x24')](function(_0x4bcefb){return _0x4bcefb;});}return null;};}function removeEntity(_0x1dddb7,_0x58f557){return function(_0xe5c990){if(_0xe5c990){return _0xe5c990[_0xdb47('0x25')]()['then'](function(){var _0x34db73=_0xe5c990[_0xdb47('0x26')]({'plain':!![]});var _0x1a40d2='Scheduler';return db[_0xdb47('0x27')][_0xdb47('0x25')]({'where':{'type':_0x1a40d2,'resourceId':_0x34db73['id']}})[_0xdb47('0x24')](function(){return _0xe5c990;});})['then'](function(){_0x1dddb7[_0xdb47('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x411cde,_0x41925e){return function(_0x18c25a){if(!_0x18c25a){_0x411cde[_0xdb47('0x19')](0x194);}return _0x18c25a;};}function handleError(_0x20f8b6,_0x4abf49){_0x4abf49=_0x4abf49||0x1f4;return function(_0x3bfe51){logger[_0xdb47('0x28')](_0x3bfe51[_0xdb47('0x29')]);if(_0x3bfe51[_0xdb47('0x2a')]){delete _0x3bfe51['name'];}_0x20f8b6[_0xdb47('0x1a')](_0x4abf49)['send'](_0x3bfe51);};}exports['index']=function(_0x452303,_0x12f950){var _0x560d49={},_0x3eec50={},_0x19a66d={'count':0x0,'rows':[]};var _0x580aa3=_['map'](db[_0xdb47('0x2b')][_0xdb47('0x2c')],function(_0x7e7cf1){return{'name':_0x7e7cf1[_0xdb47('0x2d')],'type':_0x7e7cf1[_0xdb47('0x2e')][_0xdb47('0x2f')]};});_0x3eec50[_0xdb47('0x30')]=_['map'](_0x580aa3,'name');_0x3eec50[_0xdb47('0x31')]=_['keys'](_0x452303[_0xdb47('0x31')]);_0x3eec50['filters']=_[_0xdb47('0x32')](_0x3eec50[_0xdb47('0x30')],_0x3eec50[_0xdb47('0x31')]);_0x560d49[_0xdb47('0x33')]=_['intersection'](_0x3eec50['model'],qs[_0xdb47('0x34')](_0x452303[_0xdb47('0x31')]['fields']));_0x560d49[_0xdb47('0x33')]=_0x560d49['attributes'][_0xdb47('0x35')]?_0x560d49[_0xdb47('0x33')]:_0x3eec50[_0xdb47('0x30')];if(!_0x452303[_0xdb47('0x31')]['hasOwnProperty'](_0xdb47('0x36'))){_0x560d49[_0xdb47('0x1f')]=qs[_0xdb47('0x1f')](_0x452303[_0xdb47('0x31')][_0xdb47('0x1f')]);_0x560d49[_0xdb47('0x1c')]=qs[_0xdb47('0x1c')](_0x452303[_0xdb47('0x31')]['offset']);}_0x560d49['order']=qs[_0xdb47('0x37')](_0x452303[_0xdb47('0x31')][_0xdb47('0x37')]);_0x560d49[_0xdb47('0x38')]=qs[_0xdb47('0x39')](_['pick'](_0x452303['query'],_0x3eec50[_0xdb47('0x39')]),_0x580aa3);if(_0x452303[_0xdb47('0x31')][_0xdb47('0x3a')]){_0x560d49[_0xdb47('0x38')]=_[_0xdb47('0x3b')](_0x560d49['where'],{'$or':_[_0xdb47('0x3c')](_0x580aa3,function(_0x3c3a81){if(_0x3c3a81['type']!==_0xdb47('0x3d')){var _0x5cccd8={};_0x5cccd8[_0x3c3a81[_0xdb47('0x2a')]]={'$like':'%'+_0x452303[_0xdb47('0x31')][_0xdb47('0x3a')]+'%'};return _0x5cccd8;}})});}_0x560d49=_['merge']({},_0x560d49,_0x452303[_0xdb47('0x3e')]);var _0xd6a7f5={'where':_0x560d49[_0xdb47('0x38')]};return db['Schedule'][_0xdb47('0x1e')](_0xd6a7f5)['then'](function(_0x5e8e11){_0x19a66d[_0xdb47('0x1e')]=_0x5e8e11;if(_0x452303[_0xdb47('0x31')][_0xdb47('0x3f')]){_0x560d49[_0xdb47('0x40')]=[{'all':!![]}];}return db['Schedule'][_0xdb47('0x41')](_0x560d49);})[_0xdb47('0x24')](function(_0x2215d9){_0x19a66d[_0xdb47('0x42')]=_0x2215d9;return _0x19a66d;})[_0xdb47('0x24')](respondWithFilteredResult(_0x12f950,_0x560d49))['catch'](handleError(_0x12f950,null));};exports[_0xdb47('0x43')]=function(_0x1d2b6e,_0x4862fb){var _0x20b9df={'raw':![],'where':{'id':_0x1d2b6e['params']['id']}},_0x31e2aa={};_0x31e2aa[_0xdb47('0x30')]=_[_0xdb47('0x44')](db[_0xdb47('0x2b')][_0xdb47('0x2c')]);_0x31e2aa['query']=_[_0xdb47('0x44')](_0x1d2b6e[_0xdb47('0x31')]);_0x31e2aa['filters']=_[_0xdb47('0x32')](_0x31e2aa[_0xdb47('0x30')],_0x31e2aa[_0xdb47('0x31')]);_0x20b9df[_0xdb47('0x33')]=_[_0xdb47('0x32')](_0x31e2aa[_0xdb47('0x30')],qs[_0xdb47('0x34')](_0x1d2b6e[_0xdb47('0x31')]['fields']));_0x20b9df[_0xdb47('0x33')]=_0x20b9df['attributes'][_0xdb47('0x35')]?_0x20b9df[_0xdb47('0x33')]:_0x31e2aa['model'];if(_0x1d2b6e[_0xdb47('0x31')][_0xdb47('0x3f')]){_0x20b9df[_0xdb47('0x40')]=[{'all':!![]}];}_0x20b9df=_[_0xdb47('0x3b')]({},_0x20b9df,_0x1d2b6e[_0xdb47('0x3e')]);return db['Schedule'][_0xdb47('0x45')](_0x20b9df)[_0xdb47('0x24')](handleEntityNotFound(_0x4862fb,null))[_0xdb47('0x24')](respondWithResult(_0x4862fb,null))[_0xdb47('0x46')](handleError(_0x4862fb,null));};exports[_0xdb47('0x47')]=function(_0x218f14,_0x29ed69){return db[_0xdb47('0x2b')]['create'](_0x218f14[_0xdb47('0x48')],{})[_0xdb47('0x24')](function(_0x52b9e0){var _0x32e59d=_0x218f14['user']['get']({'plain':!![]});if(!_0x32e59d)throw new Error(_0xdb47('0x49'));if(_0x32e59d[_0xdb47('0x4a')]===_0xdb47('0x4b')){var _0x365987=_0x52b9e0[_0xdb47('0x26')]({'plain':!![]});var _0x5cf7ea='Scheduler';return db[_0xdb47('0x4c')][_0xdb47('0x45')]({'where':{'name':_0x5cf7ea,'userProfileId':_0x32e59d[_0xdb47('0x4d')]},'raw':!![]})['then'](function(_0x4effb3){if(_0x4effb3&&_0x4effb3['autoAssociation']===0x0){return db[_0xdb47('0x27')][_0xdb47('0x47')]({'name':_0x365987[_0xdb47('0x2a')],'resourceId':_0x365987['id'],'type':_0x4effb3[_0xdb47('0x2a')],'sectionId':_0x4effb3['id']},{})[_0xdb47('0x24')](function(){return _0x52b9e0;});}else{return _0x52b9e0;}})['catch'](function(_0x43c5cb){logger[_0xdb47('0x28')](_0xdb47('0x4e'),_0x43c5cb);throw _0x43c5cb;});}return _0x52b9e0;})[_0xdb47('0x24')](respondWithResult(_0x29ed69,0xc9))['catch'](handleError(_0x29ed69,null));};exports['update']=function(_0x434c97,_0x4e0d35){if(_0x434c97[_0xdb47('0x48')]['id']){delete _0x434c97['body']['id'];}return db['Schedule']['find']({'where':{'id':_0x434c97[_0xdb47('0x4f')]['id']}})['then'](handleEntityNotFound(_0x4e0d35,null))[_0xdb47('0x24')](saveUpdates(_0x434c97[_0xdb47('0x48')],null))[_0xdb47('0x24')](respondWithResult(_0x4e0d35,null))[_0xdb47('0x46')](handleError(_0x4e0d35,null));};exports[_0xdb47('0x25')]=function(_0x39c125,_0x36ca90){return db['Schedule'][_0xdb47('0x45')]({'where':{'id':_0x39c125['params']['id']}})[_0xdb47('0x24')](handleEntityNotFound(_0x36ca90,null))['then'](removeEntity(_0x36ca90,null))[_0xdb47('0x46')](handleError(_0x36ca90,null));};exports[_0xdb47('0x50')]=function(_0x1a529f,_0x1a5044,_0x33307a){var _0x51c483=require(_0xdb47('0x51'));return db[_0xdb47('0x2b')][_0xdb47('0x45')]({'where':{'id':_0x1a529f[_0xdb47('0x4f')]['id']},'raw':!![]})[_0xdb47('0x24')](handleEntityNotFound(_0x1a5044,null))['then'](function(){_0x51c483['run'](_0x1a529f[_0xdb47('0x4f')]['id']);})[_0xdb47('0x24')](respondWithStatusCode(_0x1a5044,null))[_0xdb47('0x46')](handleError(_0x1a5044,null));};
\ No newline at end of file
+var _0x5b46=['../../config/environment','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','then','destroy','get','Scheduler','UserProfileResource','error','stack','name','index','map','rawAttributes','fieldName','type','key','model','query','keys','intersection','fields','attributes','length','nolimit','sort','where','pick','filters','filter','VIRTUAL','merge','includeAll','include','Schedule','rows','catch','show','options','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','find','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','params','../../config/schedule','run','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','to-csv','ejs','fs-extra','squel','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils'];(function(_0x4d76cb,_0x3c8612){var _0xcd6e51=function(_0x69b973){while(--_0x69b973){_0x4d76cb['push'](_0x4d76cb['shift']());}};_0xcd6e51(++_0x3c8612);}(_0x5b46,0x1d2));var _0x65b4=function(_0xb23597,_0x48098a){_0xb23597=_0xb23597-0x0;var _0x55d8e5=_0x5b46[_0xb23597];return _0x55d8e5;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x65b4('0x0'));var jsonpatch=require(_0x65b4('0x1'));var rp=require(_0x65b4('0x2'));var moment=require(_0x65b4('0x3'));var BPromise=require(_0x65b4('0x4'));var Mustache=require(_0x65b4('0x5'));var util=require(_0x65b4('0x6'));var path=require('path');var sox=require('sox');var csv=require(_0x65b4('0x7'));var ejs=require(_0x65b4('0x8'));var fs=require('fs');var fs_extra=require(_0x65b4('0x9'));var _=require('lodash');var squel=require(_0x65b4('0xa'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x65b4('0xb'));var toCsv=require(_0x65b4('0x7'));var querystring=require(_0x65b4('0xc'));var Papa=require(_0x65b4('0xd'));var Redis=require(_0x65b4('0xe'));var authService=require(_0x65b4('0xf'));var qs=require(_0x65b4('0x10'));var as=require(_0x65b4('0x11'));var hardwareService=require(_0x65b4('0x12'));var logger=require('../../config/logger')('api');var utils=require(_0x65b4('0x13'));var config=require(_0x65b4('0x14'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x2f2fa3,_0xd37739){_0xd37739=_0xd37739||0xcc;return function(_0x124341){if(_0x124341){return _0x2f2fa3['sendStatus'](_0xd37739);}return _0x2f2fa3[_0x65b4('0x15')](_0xd37739)[_0x65b4('0x16')]();};}function respondWithResult(_0x2a5c12,_0x107cf5){_0x107cf5=_0x107cf5||0xc8;return function(_0x11074b){if(_0x11074b){return _0x2a5c12[_0x65b4('0x15')](_0x107cf5)[_0x65b4('0x17')](_0x11074b);}};}function respondWithFilteredResult(_0x3a5c9f,_0x5408f0){return function(_0x466b21){if(_0x466b21){var _0x187f29=typeof _0x5408f0[_0x65b4('0x18')]===_0x65b4('0x19')&&typeof _0x5408f0[_0x65b4('0x1a')]===_0x65b4('0x19');var _0x163ad3=_0x466b21[_0x65b4('0x1b')];var _0x140acd=_0x187f29?0x0:_0x5408f0[_0x65b4('0x18')];var _0x4a1eb8=_0x187f29?_0x466b21[_0x65b4('0x1b')]:_0x5408f0[_0x65b4('0x18')]+_0x5408f0[_0x65b4('0x1a')];var _0x42a048;if(_0x4a1eb8>=_0x163ad3){_0x4a1eb8=_0x163ad3;_0x42a048=0xc8;}else{_0x42a048=0xce;}_0x3a5c9f[_0x65b4('0x15')](_0x42a048);return _0x3a5c9f[_0x65b4('0x1c')](_0x65b4('0x1d'),_0x140acd+'-'+_0x4a1eb8+'/'+_0x163ad3)['json'](_0x466b21);}return null;};}function patchUpdates(_0x51b6f3){return function(_0x453196){try{jsonpatch[_0x65b4('0x1e')](_0x453196,_0x51b6f3,!![]);}catch(_0x5cdc61){return BPromise[_0x65b4('0x1f')](_0x5cdc61);}return _0x453196[_0x65b4('0x20')]();};}function saveUpdates(_0x197665,_0x33469b){return function(_0x2bfe65){if(_0x2bfe65){return _0x2bfe65['update'](_0x197665)[_0x65b4('0x21')](function(_0x4384f9){return _0x4384f9;});}return null;};}function removeEntity(_0xe6b9b,_0x1155e8){return function(_0x260c1a){if(_0x260c1a){return _0x260c1a[_0x65b4('0x22')]()[_0x65b4('0x21')](function(){var _0x4e8af2=_0x260c1a[_0x65b4('0x23')]({'plain':!![]});var _0x479c24=_0x65b4('0x24');return db[_0x65b4('0x25')][_0x65b4('0x22')]({'where':{'type':_0x479c24,'resourceId':_0x4e8af2['id']}})[_0x65b4('0x21')](function(){return _0x260c1a;});})[_0x65b4('0x21')](function(){_0xe6b9b[_0x65b4('0x15')](0xcc)[_0x65b4('0x16')]();});}};}function handleEntityNotFound(_0x458066,_0x58f372){return function(_0x2952a0){if(!_0x2952a0){_0x458066['sendStatus'](0x194);}return _0x2952a0;};}function handleError(_0x518e14,_0xfbe55c){_0xfbe55c=_0xfbe55c||0x1f4;return function(_0x9846cc){logger[_0x65b4('0x26')](_0x9846cc[_0x65b4('0x27')]);if(_0x9846cc['name']){delete _0x9846cc[_0x65b4('0x28')];}_0x518e14[_0x65b4('0x15')](_0xfbe55c)['send'](_0x9846cc);};}exports[_0x65b4('0x29')]=function(_0x53cce5,_0x2de0b9){var _0x22f68b={},_0x2960ce={},_0xd9f636={'count':0x0,'rows':[]};var _0x2790c1=_[_0x65b4('0x2a')](db['Schedule'][_0x65b4('0x2b')],function(_0x34f24b){return{'name':_0x34f24b[_0x65b4('0x2c')],'type':_0x34f24b[_0x65b4('0x2d')][_0x65b4('0x2e')]};});_0x2960ce[_0x65b4('0x2f')]=_['map'](_0x2790c1,_0x65b4('0x28'));_0x2960ce[_0x65b4('0x30')]=_[_0x65b4('0x31')](_0x53cce5[_0x65b4('0x30')]);_0x2960ce['filters']=_[_0x65b4('0x32')](_0x2960ce[_0x65b4('0x2f')],_0x2960ce[_0x65b4('0x30')]);_0x22f68b['attributes']=_['intersection'](_0x2960ce[_0x65b4('0x2f')],qs[_0x65b4('0x33')](_0x53cce5['query'][_0x65b4('0x33')]));_0x22f68b[_0x65b4('0x34')]=_0x22f68b[_0x65b4('0x34')][_0x65b4('0x35')]?_0x22f68b[_0x65b4('0x34')]:_0x2960ce['model'];if(!_0x53cce5['query']['hasOwnProperty'](_0x65b4('0x36'))){_0x22f68b[_0x65b4('0x1a')]=qs[_0x65b4('0x1a')](_0x53cce5[_0x65b4('0x30')][_0x65b4('0x1a')]);_0x22f68b['offset']=qs[_0x65b4('0x18')](_0x53cce5[_0x65b4('0x30')]['offset']);}_0x22f68b['order']=qs[_0x65b4('0x37')](_0x53cce5[_0x65b4('0x30')][_0x65b4('0x37')]);_0x22f68b[_0x65b4('0x38')]=qs['filters'](_[_0x65b4('0x39')](_0x53cce5[_0x65b4('0x30')],_0x2960ce[_0x65b4('0x3a')]),_0x2790c1);if(_0x53cce5[_0x65b4('0x30')][_0x65b4('0x3b')]){_0x22f68b[_0x65b4('0x38')]=_['merge'](_0x22f68b[_0x65b4('0x38')],{'$or':_['map'](_0x2790c1,function(_0x247f95){if(_0x247f95[_0x65b4('0x2d')]!==_0x65b4('0x3c')){var _0x3bda9a={};_0x3bda9a[_0x247f95['name']]={'$like':'%'+_0x53cce5[_0x65b4('0x30')][_0x65b4('0x3b')]+'%'};return _0x3bda9a;}})});}_0x22f68b=_[_0x65b4('0x3d')]({},_0x22f68b,_0x53cce5['options']);var _0x11304c={'where':_0x22f68b[_0x65b4('0x38')]};return db['Schedule'][_0x65b4('0x1b')](_0x11304c)[_0x65b4('0x21')](function(_0x352f54){_0xd9f636[_0x65b4('0x1b')]=_0x352f54;if(_0x53cce5[_0x65b4('0x30')][_0x65b4('0x3e')]){_0x22f68b[_0x65b4('0x3f')]=[{'all':!![]}];}return db[_0x65b4('0x40')]['findAll'](_0x22f68b);})[_0x65b4('0x21')](function(_0x2c0c53){_0xd9f636[_0x65b4('0x41')]=_0x2c0c53;return _0xd9f636;})[_0x65b4('0x21')](respondWithFilteredResult(_0x2de0b9,_0x22f68b))[_0x65b4('0x42')](handleError(_0x2de0b9,null));};exports[_0x65b4('0x43')]=function(_0x174aec,_0x1126d4){var _0x2ca10b={'raw':![],'where':{'id':_0x174aec['params']['id']}},_0x7a0448={};_0x7a0448[_0x65b4('0x2f')]=_[_0x65b4('0x31')](db[_0x65b4('0x40')]['rawAttributes']);_0x7a0448[_0x65b4('0x30')]=_['keys'](_0x174aec['query']);_0x7a0448[_0x65b4('0x3a')]=_[_0x65b4('0x32')](_0x7a0448[_0x65b4('0x2f')],_0x7a0448[_0x65b4('0x30')]);_0x2ca10b[_0x65b4('0x34')]=_['intersection'](_0x7a0448[_0x65b4('0x2f')],qs[_0x65b4('0x33')](_0x174aec[_0x65b4('0x30')][_0x65b4('0x33')]));_0x2ca10b[_0x65b4('0x34')]=_0x2ca10b['attributes'][_0x65b4('0x35')]?_0x2ca10b[_0x65b4('0x34')]:_0x7a0448[_0x65b4('0x2f')];if(_0x174aec[_0x65b4('0x30')][_0x65b4('0x3e')]){_0x2ca10b[_0x65b4('0x3f')]=[{'all':!![]}];}_0x2ca10b=_[_0x65b4('0x3d')]({},_0x2ca10b,_0x174aec[_0x65b4('0x44')]);return db[_0x65b4('0x40')]['find'](_0x2ca10b)[_0x65b4('0x21')](handleEntityNotFound(_0x1126d4,null))['then'](respondWithResult(_0x1126d4,null))[_0x65b4('0x42')](handleError(_0x1126d4,null));};exports['create']=function(_0x1b060b,_0x5893b7){return db[_0x65b4('0x40')][_0x65b4('0x45')](_0x1b060b[_0x65b4('0x46')],{})['then'](function(_0x10933a){var _0x51ac2e=_0x1b060b[_0x65b4('0x47')][_0x65b4('0x23')]({'plain':!![]});if(!_0x51ac2e)throw new Error(_0x65b4('0x48'));if(_0x51ac2e['role']===_0x65b4('0x47')){var _0x52b047=_0x10933a[_0x65b4('0x23')]({'plain':!![]});var _0x554a67='Scheduler';return db[_0x65b4('0x49')][_0x65b4('0x4a')]({'where':{'name':_0x554a67,'userProfileId':_0x51ac2e['userProfileId']},'raw':!![]})[_0x65b4('0x21')](function(_0x4654f1){if(_0x4654f1&&_0x4654f1[_0x65b4('0x4b')]===0x0){return db[_0x65b4('0x25')]['create']({'name':_0x52b047[_0x65b4('0x28')],'resourceId':_0x52b047['id'],'type':_0x4654f1[_0x65b4('0x28')],'sectionId':_0x4654f1['id']},{})[_0x65b4('0x21')](function(){return _0x10933a;});}else{return _0x10933a;}})[_0x65b4('0x42')](function(_0x47375b){logger[_0x65b4('0x26')](_0x65b4('0x4c'),_0x47375b);throw _0x47375b;});}return _0x10933a;})['then'](respondWithResult(_0x5893b7,0xc9))[_0x65b4('0x42')](handleError(_0x5893b7,null));};exports[_0x65b4('0x4d')]=function(_0x269cd8,_0xbc0806){if(_0x269cd8[_0x65b4('0x46')]['id']){delete _0x269cd8[_0x65b4('0x46')]['id'];}return db[_0x65b4('0x40')][_0x65b4('0x4a')]({'where':{'id':_0x269cd8[_0x65b4('0x4e')]['id']}})['then'](handleEntityNotFound(_0xbc0806,null))[_0x65b4('0x21')](saveUpdates(_0x269cd8['body'],null))[_0x65b4('0x21')](respondWithResult(_0xbc0806,null))[_0x65b4('0x42')](handleError(_0xbc0806,null));};exports['destroy']=function(_0x3be08e,_0xcdd1ee){return db[_0x65b4('0x40')][_0x65b4('0x4a')]({'where':{'id':_0x3be08e[_0x65b4('0x4e')]['id']}})['then'](handleEntityNotFound(_0xcdd1ee,null))[_0x65b4('0x21')](removeEntity(_0xcdd1ee,null))['catch'](handleError(_0xcdd1ee,null));};exports['run']=function(_0x1a60ef,_0x2673b8,_0x3d6563){var _0x421a3e=require(_0x65b4('0x4f'));return db[_0x65b4('0x40')][_0x65b4('0x4a')]({'where':{'id':_0x1a60ef[_0x65b4('0x4e')]['id']},'raw':!![]})[_0x65b4('0x21')](handleEntityNotFound(_0x2673b8,null))[_0x65b4('0x21')](function(){_0x421a3e[_0x65b4('0x50')](_0x1a60ef[_0x65b4('0x4e')]['id']);})[_0x65b4('0x21')](respondWithStatusCode(_0x2673b8,null))[_0x65b4('0x42')](handleError(_0x2673b8,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a8d=['util','../../config/logger','api','moment','request-promise','path','rimraf','../../config/environment','./schedule.attributes','exports','define','Schedule','tools_schedules','lodash'];(function(_0x587d0c,_0x2cc9de){var _0x38b69d=function(_0x46de4c){while(--_0x46de4c){_0x587d0c['push'](_0x587d0c['shift']());}};_0x38b69d(++_0x2cc9de);}(_0x7a8d,0x195));var _0xd7a8=function(_0x2c64c8,_0x3ba43b){_0x2c64c8=_0x2c64c8-0x0;var _0x5045e3=_0x7a8d[_0x2c64c8];return _0x5045e3;};'use strict';var _=require(_0xd7a8('0x0'));var util=require(_0xd7a8('0x1'));var logger=require(_0xd7a8('0x2'))(_0xd7a8('0x3'));var moment=require(_0xd7a8('0x4'));var BPromise=require('bluebird');var rp=require(_0xd7a8('0x5'));var fs=require('fs');var path=require(_0xd7a8('0x6'));var rimraf=require(_0xd7a8('0x7'));var config=require(_0xd7a8('0x8'));var attributes=require(_0xd7a8('0x9'));module[_0xd7a8('0xa')]=function(_0x3d2b03,_0x3adce9){return _0x3d2b03[_0xd7a8('0xb')](_0xd7a8('0xc'),attributes,{'tableName':_0xd7a8('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x5258=['bluebird','request-promise','path','../../config/environment','./schedule.attributes','exports','define','Schedule','lodash','util','../../config/logger','api','moment'];(function(_0x3b967c,_0xfaa95d){var _0x5ecad7=function(_0x3dc858){while(--_0x3dc858){_0x3b967c['push'](_0x3b967c['shift']());}};_0x5ecad7(++_0xfaa95d);}(_0x5258,0xa4));var _0x8525=function(_0x443242,_0x4d9878){_0x443242=_0x443242-0x0;var _0x2c7479=_0x5258[_0x443242];return _0x2c7479;};'use strict';var _=require(_0x8525('0x0'));var util=require(_0x8525('0x1'));var logger=require(_0x8525('0x2'))(_0x8525('0x3'));var moment=require(_0x8525('0x4'));var BPromise=require(_0x8525('0x5'));var rp=require(_0x8525('0x6'));var fs=require('fs');var path=require(_0x8525('0x7'));var rimraf=require('rimraf');var config=require(_0x8525('0x8'));var attributes=require(_0x8525('0x9'));module[_0x8525('0xa')]=function(_0x4a5ca2,_0x382a16){return _0x4a5ca2[_0x8525('0xb')](_0x8525('0xc'),attributes,{'tableName':'tools_schedules','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6237=['info','Schedule,\x20%s,\x20%s','request\x20sent','debug','stringify','error','message','result','lodash','util','bluebird','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','then'];(function(_0x23dc05,_0x56f0a1){var _0x161688=function(_0x578858){while(--_0x578858){_0x23dc05['push'](_0x23dc05['shift']());}};_0x161688(++_0x56f0a1);}(_0x6237,0x15c));var _0x7623=function(_0x599c44,_0x2fb16e){_0x599c44=_0x599c44-0x0;var _0x1d6cf6=_0x6237[_0x599c44];return _0x1d6cf6;};'use strict';var _=require(_0x7623('0x0'));var util=require(_0x7623('0x1'));var moment=require('moment');var BPromise=require(_0x7623('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x7623('0x3'));var db=require(_0x7623('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x7623('0x5'))(_0x7623('0x6'));var config=require(_0x7623('0x7'));var jayson=require(_0x7623('0x8'));var client=jayson[_0x7623('0x9')][_0x7623('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x867e9,_0xf09840,_0x31387b){return new BPromise(function(_0x267f94,_0x3f39f5){return client['request'](_0x867e9,_0x31387b)[_0x7623('0xb')](function(_0x1d94ec){logger[_0x7623('0xc')](_0x7623('0xd'),_0xf09840,_0x7623('0xe'));logger[_0x7623('0xf')]('Schedule,\x20%s,\x20%s,\x20%s',_0xf09840,_0x7623('0xe'),JSON[_0x7623('0x10')](_0x1d94ec));if(_0x1d94ec[_0x7623('0x11')]){if(_0x1d94ec[_0x7623('0x11')]['code']===0x1f4){logger[_0x7623('0x11')](_0x7623('0xd'),_0xf09840,_0x1d94ec[_0x7623('0x11')][_0x7623('0x12')]);return _0x3f39f5(_0x1d94ec[_0x7623('0x11')][_0x7623('0x12')]);}logger[_0x7623('0x11')]('Schedule,\x20%s,\x20%s',_0xf09840,_0x1d94ec['error'][_0x7623('0x12')]);return _0x267f94(_0x1d94ec[_0x7623('0x11')]['message']);}else{logger[_0x7623('0xc')](_0x7623('0xd'),_0xf09840,_0x7623('0xe'));_0x267f94(_0x1d94ec[_0x7623('0x13')][_0x7623('0x12')]);}})['catch'](function(_0x5e988a){logger['error'](_0x7623('0xd'),_0xf09840,_0x5e988a);_0x3f39f5(_0x5e988a);});});}
\ No newline at end of file
+var _0xc546=['stringify','error','code','Schedule,\x20%s,\x20%s','message','request\x20sent','result','lodash','moment','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','then','info','debug','Schedule,\x20%s,\x20%s,\x20%s'];(function(_0x3aaf0a,_0x450970){var _0x33e6bc=function(_0x1db54d){while(--_0x1db54d){_0x3aaf0a['push'](_0x3aaf0a['shift']());}};_0x33e6bc(++_0x450970);}(_0xc546,0x193));var _0x6c54=function(_0x424ebd,_0x50204e){_0x424ebd=_0x424ebd-0x0;var _0x1951b8=_0xc546[_0x424ebd];return _0x1951b8;};'use strict';var _=require(_0x6c54('0x0'));var util=require('util');var moment=require(_0x6c54('0x1'));var BPromise=require('bluebird');var rs=require(_0x6c54('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x6c54('0x3'))['db'];var utils=require(_0x6c54('0x4'));var logger=require(_0x6c54('0x5'))(_0x6c54('0x6'));var config=require(_0x6c54('0x7'));var jayson=require(_0x6c54('0x8'));var client=jayson[_0x6c54('0x9')][_0x6c54('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x37b690,_0x2bbc61,_0x65ebda){return new BPromise(function(_0x284bb9,_0x230bb7){return client['request'](_0x37b690,_0x65ebda)[_0x6c54('0xb')](function(_0x4ceaec){logger[_0x6c54('0xc')]('Schedule,\x20%s,\x20%s',_0x2bbc61,'request\x20sent');logger[_0x6c54('0xd')](_0x6c54('0xe'),_0x2bbc61,'request\x20sent',JSON[_0x6c54('0xf')](_0x4ceaec));if(_0x4ceaec[_0x6c54('0x10')]){if(_0x4ceaec[_0x6c54('0x10')][_0x6c54('0x11')]===0x1f4){logger[_0x6c54('0x10')](_0x6c54('0x12'),_0x2bbc61,_0x4ceaec[_0x6c54('0x10')][_0x6c54('0x13')]);return _0x230bb7(_0x4ceaec['error'][_0x6c54('0x13')]);}logger[_0x6c54('0x10')]('Schedule,\x20%s,\x20%s',_0x2bbc61,_0x4ceaec[_0x6c54('0x10')][_0x6c54('0x13')]);return _0x284bb9(_0x4ceaec[_0x6c54('0x10')][_0x6c54('0x13')]);}else{logger[_0x6c54('0xc')](_0x6c54('0x12'),_0x2bbc61,_0x6c54('0x14'));_0x284bb9(_0x4ceaec[_0x6c54('0x15')][_0x6c54('0x13')]);}})['catch'](function(_0x11dd9b){logger[_0x6c54('0x10')](_0x6c54('0x12'),_0x2bbc61,_0x11dd9b);_0x230bb7(_0x11dd9b);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1358=['update','delete','destroy','exports','multer','path','connect-timeout','express','Router','../../components/auth/service','../../config/environment','./screenRecording.controller','isAuthenticated','index','get','/describe','describe','/:id','show','/:id/download','post','create'];(function(_0x528633,_0x3a1579){var _0x1bd2fe=function(_0x4f5f68){while(--_0x4f5f68){_0x528633['push'](_0x528633['shift']());}};_0x1bd2fe(++_0x3a1579);}(_0x1358,0x17a));var _0x8135=function(_0x4d07cc,_0x587613){_0x4d07cc=_0x4d07cc-0x0;var _0x42de3b=_0x1358[_0x4d07cc];return _0x42de3b;};'use strict';var multer=require(_0x8135('0x0'));var util=require('util');var path=require(_0x8135('0x1'));var timeout=require(_0x8135('0x2'));var express=require(_0x8135('0x3'));var router=express[_0x8135('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x8135('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0x8135('0x6'));var controller=require(_0x8135('0x7'));router['get']('/',auth[_0x8135('0x8')](),controller[_0x8135('0x9')]);router[_0x8135('0xa')](_0x8135('0xb'),auth['isAuthenticated'](),controller[_0x8135('0xc')]);router[_0x8135('0xa')](_0x8135('0xd'),auth[_0x8135('0x8')](),controller[_0x8135('0xe')]);router[_0x8135('0xa')](_0x8135('0xf'),auth[_0x8135('0x8')](),controller['download']);router[_0x8135('0x10')]('/',auth[_0x8135('0x8')](),controller[_0x8135('0x11')]);router['put'](_0x8135('0xd'),auth['isAuthenticated'](),controller[_0x8135('0x12')]);router[_0x8135('0x13')]('/:id',auth[_0x8135('0x8')](),controller[_0x8135('0x14')]);module[_0x8135('0x15')]=router;
\ No newline at end of file
+var _0x7a9f=['express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./screenRecording.controller','get','isAuthenticated','index','describe','/:id','show','download','post','create','put','update','delete','destroy','exports','multer','util','connect-timeout'];(function(_0x140e2d,_0x397f99){var _0x3057cc=function(_0x43f1a7){while(--_0x43f1a7){_0x140e2d['push'](_0x140e2d['shift']());}};_0x3057cc(++_0x397f99);}(_0x7a9f,0x184));var _0xf7a9=function(_0x2d5433,_0x128015){_0x2d5433=_0x2d5433-0x0;var _0x5911cc=_0x7a9f[_0x2d5433];return _0x5911cc;};'use strict';var multer=require(_0xf7a9('0x0'));var util=require(_0xf7a9('0x1'));var path=require('path');var timeout=require(_0xf7a9('0x2'));var express=require(_0xf7a9('0x3'));var router=express[_0xf7a9('0x4')]();var fs_extra=require(_0xf7a9('0x5'));var auth=require(_0xf7a9('0x6'));var interaction=require(_0xf7a9('0x7'));var config=require('../../config/environment');var controller=require(_0xf7a9('0x8'));router[_0xf7a9('0x9')]('/',auth[_0xf7a9('0xa')](),controller[_0xf7a9('0xb')]);router['get']('/describe',auth[_0xf7a9('0xa')](),controller[_0xf7a9('0xc')]);router[_0xf7a9('0x9')](_0xf7a9('0xd'),auth['isAuthenticated'](),controller[_0xf7a9('0xe')]);router[_0xf7a9('0x9')]('/:id/download',auth[_0xf7a9('0xa')](),controller[_0xf7a9('0xf')]);router[_0xf7a9('0x10')]('/',auth[_0xf7a9('0xa')](),controller[_0xf7a9('0x11')]);router[_0xf7a9('0x12')](_0xf7a9('0xd'),auth[_0xf7a9('0xa')](),controller[_0xf7a9('0x13')]);router[_0xf7a9('0x14')](_0xf7a9('0xd'),auth['isAuthenticated'](),controller[_0xf7a9('0x15')]);module[_0xf7a9('0x16')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x23db=['replace','setDataValue','value','INTEGER','startedAt','subtract','DATE','format','MM-DD-YYYY\x20HH:mm','toString','closedAt','createdAt','updatedAt','sequelize','moment','path','../../config/environment','exports','VIRTUAL','extname','getDataValue','STRING'];(function(_0x51a6d6,_0x3c9c49){var _0x5ef1a8=function(_0x8ff84a){while(--_0x8ff84a){_0x51a6d6['push'](_0x51a6d6['shift']());}};_0x5ef1a8(++_0x3c9c49);}(_0x23db,0x141));var _0xb23d=function(_0x9cd4c3,_0x1c9b2c){_0x9cd4c3=_0x9cd4c3-0x0;var _0x4c9025=_0x23db[_0x9cd4c3];return _0x4c9025;};'use strict';var Sequelize=require(_0xb23d('0x0'));var moment=require(_0xb23d('0x1'));var path=require(_0xb23d('0x2'));var config=require(_0xb23d('0x3'));module[_0xb23d('0x4')]={'format':{'type':Sequelize[_0xb23d('0x5')],'get':function(){return this['getDataValue']('value')?path[_0xb23d('0x6')](this[_0xb23d('0x7')]('value')):undefined;}},'interactionid':{'type':Sequelize[_0xb23d('0x8')]},'channel':{'type':Sequelize[_0xb23d('0x8')]},'value':{'type':Sequelize[_0xb23d('0x8')],'set':function(_0x2056b6){var _0x39799c=_0x2056b6[_0xb23d('0x9')](/\\/g,'/');this[_0xb23d('0xa')](_0xb23d('0xb'),_0x39799c);}},'rating':{'type':Sequelize[_0xb23d('0xc')],'validate':{'max':0x5,'min':0x0}},'duration':{'type':Sequelize['INTEGER'],'set':function(_0x2f91f0){this[_0xb23d('0xa')](_0xb23d('0xd'),moment()[_0xb23d('0xe')](_0x2f91f0,'ms'));this[_0xb23d('0xa')]('closedAt',moment());this['setDataValue']('duration',_0x2f91f0);}},'startedAt':{'type':Sequelize[_0xb23d('0xf')],'get':function(){return moment(this['getDataValue'](_0xb23d('0xd')))[_0xb23d('0x10')](_0xb23d('0x11'))[_0xb23d('0x12')]();}},'closedAt':{'type':Sequelize[_0xb23d('0xf')],'get':function(){return moment(this[_0xb23d('0x7')](_0xb23d('0x13')))['format'](_0xb23d('0x11'))[_0xb23d('0x12')]();}},'createdAt':{'type':Sequelize[_0xb23d('0xf')],'get':function(){return moment(this[_0xb23d('0x7')](_0xb23d('0x14')))[_0xb23d('0x10')]('MM-DD-YYYY\x20HH:mm')['toString']();}},'updatedAt':{'type':Sequelize[_0xb23d('0xf')],'get':function(){return moment(this[_0xb23d('0x7')](_0xb23d('0x15')))[_0xb23d('0x10')](_0xb23d('0x11'))[_0xb23d('0x12')]();}}};
\ No newline at end of file
+var _0x2ebd=['getDataValue','value','extname','STRING','replace','setDataValue','INTEGER','startedAt','subtract','closedAt','duration','DATE','format','MM-DD-YYYY\x20HH:mm','toString','updatedAt','sequelize','moment','path','VIRTUAL'];(function(_0x20f6e8,_0x43d92c){var _0x151ced=function(_0x30c164){while(--_0x30c164){_0x20f6e8['push'](_0x20f6e8['shift']());}};_0x151ced(++_0x43d92c);}(_0x2ebd,0x1c8));var _0xd2eb=function(_0x46469c,_0x24b81e){_0x46469c=_0x46469c-0x0;var _0x1b63a7=_0x2ebd[_0x46469c];return _0x1b63a7;};'use strict';var Sequelize=require(_0xd2eb('0x0'));var moment=require(_0xd2eb('0x1'));var path=require(_0xd2eb('0x2'));var config=require('../../config/environment');module['exports']={'format':{'type':Sequelize[_0xd2eb('0x3')],'get':function(){return this[_0xd2eb('0x4')](_0xd2eb('0x5'))?path[_0xd2eb('0x6')](this[_0xd2eb('0x4')](_0xd2eb('0x5'))):undefined;}},'interactionid':{'type':Sequelize['STRING']},'channel':{'type':Sequelize['STRING']},'value':{'type':Sequelize[_0xd2eb('0x7')],'set':function(_0x2754dd){var _0x496362=_0x2754dd[_0xd2eb('0x8')](/\\/g,'/');this[_0xd2eb('0x9')]('value',_0x496362);}},'rating':{'type':Sequelize[_0xd2eb('0xa')],'validate':{'max':0x5,'min':0x0}},'duration':{'type':Sequelize[_0xd2eb('0xa')],'set':function(_0x5eca80){this['setDataValue'](_0xd2eb('0xb'),moment()[_0xd2eb('0xc')](_0x5eca80,'ms'));this[_0xd2eb('0x9')](_0xd2eb('0xd'),moment());this[_0xd2eb('0x9')](_0xd2eb('0xe'),_0x5eca80);}},'startedAt':{'type':Sequelize[_0xd2eb('0xf')],'get':function(){return moment(this[_0xd2eb('0x4')](_0xd2eb('0xb')))[_0xd2eb('0x10')](_0xd2eb('0x11'))[_0xd2eb('0x12')]();}},'closedAt':{'type':Sequelize['DATE'],'get':function(){return moment(this[_0xd2eb('0x4')]('closedAt'))[_0xd2eb('0x10')](_0xd2eb('0x11'))['toString']();}},'createdAt':{'type':Sequelize[_0xd2eb('0xf')],'get':function(){return moment(this[_0xd2eb('0x4')]('createdAt'))[_0xd2eb('0x10')](_0xd2eb('0x11'))[_0xd2eb('0x12')]();}},'updatedAt':{'type':Sequelize['DATE'],'get':function(){return moment(this['getDataValue'](_0xd2eb('0x13')))['format']('MM-DD-YYYY\x20HH:mm')[_0xd2eb('0x12')]();}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x038b=['offset','undefined','count','limit','set','Content-Range','json','reject','save','update','then','error','name','index','map','ScreenRecording','rawAttributes','fieldName','type','key','model','differenceBy','format','keys','filters','intersection','query','attributes','fields','length','nolimit','order','sort','where','filter','merge','includeAll','include','findAll','rows','catch','params','find','create','body','duration','createdAt','closedAt','value','describe','../../components/encryptor','uniqueid','root','%s.cypher','decryptFile','secrets','recording','join','server/files/screen_recordings','existsSync','ValidationError','ScreenRecording\x20not\x20found','filename','download','unlink','message','send','Not\x20found','destroy','isNil','Entity\x20not\x20found','info','cancellazione\x20fisica\x20documento\x20%s','File:\x20\x22','unlinkSync','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','rimraf','zip-dir','fast-json-patch','moment','mustache','util','sox','to-csv','lodash','squel','crypto','querystring','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end'];(function(_0x423fe5,_0x194549){var _0x400870=function(_0x9954ab){while(--_0x9954ab){_0x423fe5['push'](_0x423fe5['shift']());}};_0x400870(++_0x194549);}(_0x038b,0x114));var _0xb038=function(_0x4b8908,_0x4a419e){_0x4b8908=_0x4b8908-0x0;var _0x4d2749=_0x038b[_0x4b8908];return _0x4d2749;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xb038('0x0'));var zipdir=require(_0xb038('0x1'));var jsonpatch=require(_0xb038('0x2'));var rp=require('request-promise');var moment=require(_0xb038('0x3'));var BPromise=require('bluebird');var Mustache=require(_0xb038('0x4'));var util=require(_0xb038('0x5'));var path=require('path');var sox=require(_0xb038('0x6'));var csv=require(_0xb038('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xb038('0x8'));var squel=require(_0xb038('0x9'));var crypto=require(_0xb038('0xa'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xb038('0x7'));var querystring=require(_0xb038('0xb'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xb038('0xc'));var qs=require(_0xb038('0xd'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xb038('0xe'));var logger=require(_0xb038('0xf'))(_0xb038('0x10'));var utils=require(_0xb038('0x11'));var config=require(_0xb038('0x12'));var licenseUtil=require(_0xb038('0x13'));var db=require(_0xb038('0x14'))['db'];function respondWithStatusCode(_0x439751,_0x16e4a3){_0x16e4a3=_0x16e4a3||0xcc;return function(_0x57acd8){if(_0x57acd8){return _0x439751[_0xb038('0x15')](_0x16e4a3);}return _0x439751[_0xb038('0x16')](_0x16e4a3)[_0xb038('0x17')]();};}function respondWithResult(_0x3cc717,_0x3a71a6){_0x3a71a6=_0x3a71a6||0xc8;return function(_0x13acc7){if(_0x13acc7){return _0x3cc717[_0xb038('0x16')](_0x3a71a6)['json'](_0x13acc7);}};}function respondWithFilteredResult(_0xe8aa7c,_0x26e4f2){return function(_0x183141){if(_0x183141){var _0x39323e=typeof _0x26e4f2[_0xb038('0x18')]===_0xb038('0x19')&&typeof _0x26e4f2['limit']===_0xb038('0x19');var _0x3039b0=_0x183141[_0xb038('0x1a')];var _0x3b095a=_0x39323e?0x0:_0x26e4f2['offset'];var _0x49b237=_0x39323e?_0x183141[_0xb038('0x1a')]:_0x26e4f2[_0xb038('0x18')]+_0x26e4f2[_0xb038('0x1b')];var _0x31c348;if(_0x49b237>=_0x3039b0){_0x49b237=_0x3039b0;_0x31c348=0xc8;}else{_0x31c348=0xce;}_0xe8aa7c['status'](_0x31c348);return _0xe8aa7c[_0xb038('0x1c')](_0xb038('0x1d'),_0x3b095a+'-'+_0x49b237+'/'+_0x3039b0)[_0xb038('0x1e')](_0x183141);}return null;};}function patchUpdates(_0x33a377){return function(_0xc6cd61){try{jsonpatch['apply'](_0xc6cd61,_0x33a377,!![]);}catch(_0x2e0369){return BPromise[_0xb038('0x1f')](_0x2e0369);}return _0xc6cd61[_0xb038('0x20')]();};}function saveUpdates(_0x87b899,_0x5f123d){return function(_0x2812c9){if(_0x2812c9){return _0x2812c9[_0xb038('0x21')](_0x87b899)['then'](function(_0x1eb9cd){return _0x1eb9cd;});}return null;};}function removeEntity(_0x43d403,_0x573f93){return function(_0x241329){if(_0x241329){return _0x241329['destroy']()[_0xb038('0x22')](function(){_0x43d403[_0xb038('0x16')](0xcc)[_0xb038('0x17')]();});}};}function handleEntityNotFound(_0x1df7c4,_0x5d4343){return function(_0xe4ceda){if(!_0xe4ceda){_0x1df7c4[_0xb038('0x15')](0x194);}return _0xe4ceda;};}function handleError(_0x576be5,_0xb6d93f){_0xb6d93f=_0xb6d93f||0x1f4;return function(_0x33cf3c){logger[_0xb038('0x23')](_0x33cf3c['stack']);if(_0x33cf3c[_0xb038('0x24')]){delete _0x33cf3c[_0xb038('0x24')];}_0x576be5[_0xb038('0x16')](_0xb6d93f)['send'](_0x33cf3c);};}exports[_0xb038('0x25')]=function(_0x2855a6,_0x28a6a9){var _0x12b3b6={},_0xc387d={},_0x551b55={'count':0x0,'rows':[]};var _0x1783d4=_[_0xb038('0x26')](db[_0xb038('0x27')][_0xb038('0x28')],function(_0x1abe23){return{'name':_0x1abe23[_0xb038('0x29')],'type':_0x1abe23[_0xb038('0x2a')][_0xb038('0x2b')]};});_0xc387d[_0xb038('0x2c')]=_[_0xb038('0x2d')](_[_0xb038('0x26')](_0x1783d4,_0xb038('0x24')),[_0xb038('0x2e')]);_0xc387d['query']=_[_0xb038('0x2f')](_0x2855a6['query']);_0xc387d[_0xb038('0x30')]=_[_0xb038('0x31')](_0xc387d[_0xb038('0x2c')],_0xc387d[_0xb038('0x32')]);_0x12b3b6[_0xb038('0x33')]=_[_0xb038('0x31')](_0xc387d[_0xb038('0x2c')],qs[_0xb038('0x34')](_0x2855a6[_0xb038('0x32')][_0xb038('0x34')]));_0x12b3b6['attributes']=_0x12b3b6[_0xb038('0x33')][_0xb038('0x35')]?_0x12b3b6[_0xb038('0x33')]:_0xc387d['model'];if(!_0x2855a6['query']['hasOwnProperty'](_0xb038('0x36'))){_0x12b3b6[_0xb038('0x1b')]=qs[_0xb038('0x1b')](_0x2855a6[_0xb038('0x32')][_0xb038('0x1b')]);_0x12b3b6[_0xb038('0x18')]=qs['offset'](_0x2855a6[_0xb038('0x32')][_0xb038('0x18')]);}_0x12b3b6[_0xb038('0x37')]=qs[_0xb038('0x38')](_0x2855a6['query'][_0xb038('0x38')]);_0x12b3b6[_0xb038('0x39')]=qs['filters'](_['pick'](_0x2855a6[_0xb038('0x32')],_0xc387d[_0xb038('0x30')]),_0x1783d4);if(_0x2855a6[_0xb038('0x32')][_0xb038('0x3a')]){_0x12b3b6[_0xb038('0x39')]=_['merge'](_0x12b3b6[_0xb038('0x39')],{'$or':_[_0xb038('0x26')](_0x1783d4,function(_0x26d48c){if(_0x26d48c[_0xb038('0x2a')]!=='VIRTUAL'){var _0x793da9={};_0x793da9[_0x26d48c[_0xb038('0x24')]]={'$like':'%'+_0x2855a6[_0xb038('0x32')]['filter']+'%'};return _0x793da9;}})});}_0x12b3b6=_[_0xb038('0x3b')]({},_0x12b3b6,_0x2855a6['options']);var _0x36f281={'where':_0x12b3b6[_0xb038('0x39')]};return db[_0xb038('0x27')]['count'](_0x36f281)[_0xb038('0x22')](function(_0x357c78){_0x551b55[_0xb038('0x1a')]=_0x357c78;if(_0x2855a6['query'][_0xb038('0x3c')]){_0x12b3b6[_0xb038('0x3d')]=[{'all':!![]}];}return db[_0xb038('0x27')][_0xb038('0x3e')](_0x12b3b6);})['then'](function(_0x28b922){_0x551b55[_0xb038('0x3f')]=_0x28b922;return _0x551b55;})[_0xb038('0x22')](respondWithFilteredResult(_0x28a6a9,_0x12b3b6))[_0xb038('0x40')](handleError(_0x28a6a9,null));};exports['show']=function(_0x19dc7b,_0x269c7d){var _0x57816c={'raw':![],'where':{'id':_0x19dc7b[_0xb038('0x41')]['id']}},_0x207fb5={};_0x207fb5[_0xb038('0x2c')]=_['keys'](db[_0xb038('0x27')][_0xb038('0x28')]);_0x207fb5['query']=_['keys'](_0x19dc7b[_0xb038('0x32')]);_0x207fb5[_0xb038('0x30')]=_[_0xb038('0x31')](_0x207fb5[_0xb038('0x2c')],_0x207fb5[_0xb038('0x32')]);_0x57816c[_0xb038('0x33')]=_[_0xb038('0x31')](_0x207fb5[_0xb038('0x2c')],qs['fields'](_0x19dc7b['query']['fields']));_0x57816c[_0xb038('0x33')]=_0x57816c[_0xb038('0x33')]['length']?_0x57816c[_0xb038('0x33')]:_0x207fb5[_0xb038('0x2c')];if(_0x19dc7b[_0xb038('0x32')]['includeAll']){_0x57816c[_0xb038('0x3d')]=[{'all':!![]}];}_0x57816c=_['merge']({},_0x57816c,_0x19dc7b['options']);return db[_0xb038('0x27')][_0xb038('0x42')](_0x57816c)[_0xb038('0x22')](handleEntityNotFound(_0x269c7d,null))[_0xb038('0x22')](respondWithResult(_0x269c7d,null))[_0xb038('0x40')](handleError(_0x269c7d,null));};exports[_0xb038('0x43')]=function(_0x2f053a,_0x473aae){return db[_0xb038('0x27')][_0xb038('0x43')](_0x2f053a['body'],{})[_0xb038('0x22')](respondWithResult(_0x473aae,0xc9))[_0xb038('0x40')](handleError(_0x473aae,null));};exports['update']=function(_0x906c9c,_0x19ab72){if(_0x906c9c['body']['id']){delete _0x906c9c[_0xb038('0x44')]['id'];}delete _0x906c9c[_0xb038('0x44')][_0xb038('0x45')];delete _0x906c9c[_0xb038('0x44')][_0xb038('0x46')];delete _0x906c9c[_0xb038('0x44')][_0xb038('0x47')];delete _0x906c9c[_0xb038('0x44')][_0xb038('0x48')];return db['ScreenRecording'][_0xb038('0x42')]({'where':{'id':_0x906c9c[_0xb038('0x41')]['id']}})[_0xb038('0x22')](handleEntityNotFound(_0x19ab72,null))[_0xb038('0x22')](saveUpdates(_0x906c9c[_0xb038('0x44')],null))[_0xb038('0x22')](respondWithResult(_0x19ab72,null))['catch'](handleError(_0x19ab72,null));};exports[_0xb038('0x49')]=function(_0x2f3622,_0x2b2b4d){return db[_0xb038('0x27')][_0xb038('0x49')]()[_0xb038('0x22')](respondWithResult(_0x2b2b4d,null))[_0xb038('0x40')](handleError(_0x2b2b4d,null));};exports['download']=function(_0x3abe7a,_0x5c4a79,_0x77f211){var _0x1ea8ad=require(_0xb038('0x4a'));var _0x998fe3=![];var _0x1518c4={};if(_0x3abe7a['query']['type']&&_0x3abe7a['query'][_0xb038('0x2a')]===_0xb038('0x4b')){_0x1518c4[_0xb038('0x4b')]=_0x3abe7a[_0xb038('0x41')]['id'];}else{_0x1518c4['id']=_0x3abe7a[_0xb038('0x41')]['id'];}return db[_0xb038('0x27')]['find']({'where':_0x1518c4,'attributes':['id',_0xb038('0x48')],'raw':!![]})[_0xb038('0x22')](handleEntityNotFound(_0x5c4a79,null))['then'](function(_0x5b27d3){if(_0x5b27d3){var _0xf2907b=path['join'](config[_0xb038('0x4c')],'server/files/screen_recordings',_0x5b27d3[_0xb038('0x48')]);var _0x4677b8=util[_0xb038('0x2e')](_0xb038('0x4d'),_0xf2907b);if(fs['existsSync'](_0x4677b8)){_0x998fe3=!![];return _0x1ea8ad[_0xb038('0x4e')](_0x4677b8,_0xf2907b,config[_0xb038('0x4f')][_0xb038('0x50')])[_0xb038('0x22')](function(){return _0x5b27d3;});}return _0x5b27d3;}})[_0xb038('0x22')](function(_0x1246c8){if(_0x1246c8){var _0x14a553=path[_0xb038('0x51')](config[_0xb038('0x4c')],_0xb038('0x52'),_0x1246c8[_0xb038('0x48')]);if(!fs[_0xb038('0x53')](_0x14a553)){throw new db['Sequelize'][(_0xb038('0x54'))](_0xb038('0x55'));}if(_0x1246c8[_0xb038('0x56')]){return _0x5c4a79[_0xb038('0x57')](_0x14a553,_0x1246c8[_0xb038('0x56')]+path['extname'](_0x14a553),function(){if(_0x998fe3){fs[_0xb038('0x58')](_0x14a553);}});}else{return _0x5c4a79['download'](_0x14a553,function(_0xfb3ce6){if(_0x998fe3){fs[_0xb038('0x58')](_0x14a553);}});}}})['catch'](function(_0x15d61c){if(_0x15d61c[_0xb038('0x59')]===_0xb038('0x55')){_0x5c4a79[_0xb038('0x16')](0x194)[_0xb038('0x5a')](_0xb038('0x5b'));}else{return handleError(_0x5c4a79,null);}});};exports[_0xb038('0x5c')]=function(_0xe275b8,_0x769f1e){return db[_0xb038('0x27')]['find']({'where':{'id':_0xe275b8[_0xb038('0x41')]['id']}})['then'](function(_0x189894){if(_[_0xb038('0x5d')](_0x189894)){throw new ReferenceError(_0xb038('0x5e'));}return _0x189894;})[_0xb038('0x22')](function(_0x1f5f3f){var _0x23fb92=path[_0xb038('0x51')](config['root'],'server/files/screen_recordings',_0x1f5f3f[_0xb038('0x48')]);logger[_0xb038('0x5f')](_0xb038('0x60'),_0x23fb92);if(!_['isNil'](_0x1f5f3f['value'])&&fs[_0xb038('0x53')](_0x23fb92)){logger['info'](_0xb038('0x61')+_0x23fb92+'\x22\x20trovato\x20eseguo\x20la\x20cancellazione');fs[_0xb038('0x62')](_0x23fb92);}_0x23fb92=_0x23fb92+'.cypher';if(!_[_0xb038('0x5d')](_0x1f5f3f[_0xb038('0x48')])&&fs[_0xb038('0x53')](_0x23fb92)){logger[_0xb038('0x5f')](_0xb038('0x61')+_0x23fb92+_0xb038('0x63'));fs['unlinkSync'](_0x23fb92);}return _0x1f5f3f;})['then'](function(_0x45e628){if(!_0x45e628)throw new InternalError();return _0x45e628['destroy']();})[_0xb038('0x22')](function(){_0x769f1e[_0xb038('0x16')](0xcc)[_0xb038('0x17')]();})['catch'](handleError(_0x769f1e,null));};
\ No newline at end of file
+var _0x5636=['rawAttributes','fieldName','type','key','model','differenceBy','map','format','keys','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','sort','where','filter','merge','VIRTUAL','options','ScreenRecording','count','includeAll','include','findAll','rows','catch','show','find','create','body','duration','createdAt','closedAt','value','describe','uniqueid','params','join','root','server/files/screen_recordings','%s.cypher','existsSync','secrets','recording','Sequelize','ValidationError','download','filename','extname','unlink','isNil','Entity\x20not\x20found','info','cancellazione\x20fisica\x20documento\x20%s','File:\x20\x22','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','unlinkSync','eml-format','rimraf','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','set','Content-Range','reject','save','update','then','destroy','stack','name','index'];(function(_0xad9787,_0x5b99cd){var _0x15ce73=function(_0x5192e3){while(--_0x5192e3){_0xad9787['push'](_0xad9787['shift']());}};_0x15ce73(++_0x5b99cd);}(_0x5636,0x102));var _0x6563=function(_0x43ed22,_0x36a78f){_0x43ed22=_0x43ed22-0x0;var _0x3ed090=_0x5636[_0x43ed22];return _0x3ed090;};'use strict';var emlformat=require(_0x6563('0x0'));var rimraf=require(_0x6563('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x6563('0x2'));var BPromise=require(_0x6563('0x3'));var Mustache=require(_0x6563('0x4'));var util=require('util');var path=require(_0x6563('0x5'));var sox=require(_0x6563('0x6'));var csv=require(_0x6563('0x7'));var ejs=require(_0x6563('0x8'));var fs=require('fs');var fs_extra=require(_0x6563('0x9'));var _=require(_0x6563('0xa'));var squel=require(_0x6563('0xb'));var crypto=require(_0x6563('0xc'));var jsforce=require(_0x6563('0xd'));var deskjs=require(_0x6563('0xe'));var toCsv=require(_0x6563('0x7'));var querystring=require(_0x6563('0xf'));var Papa=require(_0x6563('0x10'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x6563('0x11'));var as=require(_0x6563('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require(_0x6563('0x13'));var config=require(_0x6563('0x14'));var licenseUtil=require(_0x6563('0x15'));var db=require(_0x6563('0x16'))['db'];function respondWithStatusCode(_0x33816e,_0x2ed676){_0x2ed676=_0x2ed676||0xcc;return function(_0x31d3fa){if(_0x31d3fa){return _0x33816e[_0x6563('0x17')](_0x2ed676);}return _0x33816e[_0x6563('0x18')](_0x2ed676)['end']();};}function respondWithResult(_0xa0a0b6,_0x5e9329){_0x5e9329=_0x5e9329||0xc8;return function(_0x37131e){if(_0x37131e){return _0xa0a0b6[_0x6563('0x18')](_0x5e9329)[_0x6563('0x19')](_0x37131e);}};}function respondWithFilteredResult(_0x10d08c,_0x5af5d0){return function(_0x26f26e){if(_0x26f26e){var _0x11baa2=typeof _0x5af5d0[_0x6563('0x1a')]===_0x6563('0x1b')&&typeof _0x5af5d0['limit']===_0x6563('0x1b');var _0x589632=_0x26f26e['count'];var _0x47972a=_0x11baa2?0x0:_0x5af5d0[_0x6563('0x1a')];var _0x4f5609=_0x11baa2?_0x26f26e['count']:_0x5af5d0[_0x6563('0x1a')]+_0x5af5d0[_0x6563('0x1c')];var _0x17a29f;if(_0x4f5609>=_0x589632){_0x4f5609=_0x589632;_0x17a29f=0xc8;}else{_0x17a29f=0xce;}_0x10d08c[_0x6563('0x18')](_0x17a29f);return _0x10d08c[_0x6563('0x1d')](_0x6563('0x1e'),_0x47972a+'-'+_0x4f5609+'/'+_0x589632)[_0x6563('0x19')](_0x26f26e);}return null;};}function patchUpdates(_0x93a45){return function(_0x2a70f0){try{jsonpatch['apply'](_0x2a70f0,_0x93a45,!![]);}catch(_0x2f2905){return BPromise[_0x6563('0x1f')](_0x2f2905);}return _0x2a70f0[_0x6563('0x20')]();};}function saveUpdates(_0x5a335c,_0x293db2){return function(_0x5c37bb){if(_0x5c37bb){return _0x5c37bb[_0x6563('0x21')](_0x5a335c)[_0x6563('0x22')](function(_0x5610b0){return _0x5610b0;});}return null;};}function removeEntity(_0x5773e2,_0x3ab7f6){return function(_0x492f45){if(_0x492f45){return _0x492f45[_0x6563('0x23')]()[_0x6563('0x22')](function(){_0x5773e2[_0x6563('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0xd860d5,_0x51ff06){return function(_0x7ea857){if(!_0x7ea857){_0xd860d5[_0x6563('0x17')](0x194);}return _0x7ea857;};}function handleError(_0x5e5aeb,_0x365b16){_0x365b16=_0x365b16||0x1f4;return function(_0x28252d){logger['error'](_0x28252d[_0x6563('0x24')]);if(_0x28252d['name']){delete _0x28252d[_0x6563('0x25')];}_0x5e5aeb['status'](_0x365b16)['send'](_0x28252d);};}exports[_0x6563('0x26')]=function(_0x118d31,_0x17326c){var _0x2a1550={},_0x3eb23b={},_0x4b4d3b={'count':0x0,'rows':[]};var _0x3c8bd1=_['map'](db['ScreenRecording'][_0x6563('0x27')],function(_0x35af37){return{'name':_0x35af37[_0x6563('0x28')],'type':_0x35af37[_0x6563('0x29')][_0x6563('0x2a')]};});_0x3eb23b[_0x6563('0x2b')]=_[_0x6563('0x2c')](_[_0x6563('0x2d')](_0x3c8bd1,_0x6563('0x25')),[_0x6563('0x2e')]);_0x3eb23b['query']=_[_0x6563('0x2f')](_0x118d31[_0x6563('0x30')]);_0x3eb23b[_0x6563('0x31')]=_[_0x6563('0x32')](_0x3eb23b[_0x6563('0x2b')],_0x3eb23b[_0x6563('0x30')]);_0x2a1550[_0x6563('0x33')]=_['intersection'](_0x3eb23b[_0x6563('0x2b')],qs[_0x6563('0x34')](_0x118d31[_0x6563('0x30')][_0x6563('0x34')]));_0x2a1550[_0x6563('0x33')]=_0x2a1550[_0x6563('0x33')]['length']?_0x2a1550[_0x6563('0x33')]:_0x3eb23b[_0x6563('0x2b')];if(!_0x118d31[_0x6563('0x30')][_0x6563('0x35')](_0x6563('0x36'))){_0x2a1550[_0x6563('0x1c')]=qs[_0x6563('0x1c')](_0x118d31['query'][_0x6563('0x1c')]);_0x2a1550[_0x6563('0x1a')]=qs['offset'](_0x118d31[_0x6563('0x30')][_0x6563('0x1a')]);}_0x2a1550['order']=qs['sort'](_0x118d31[_0x6563('0x30')][_0x6563('0x37')]);_0x2a1550[_0x6563('0x38')]=qs[_0x6563('0x31')](_['pick'](_0x118d31[_0x6563('0x30')],_0x3eb23b[_0x6563('0x31')]),_0x3c8bd1);if(_0x118d31['query'][_0x6563('0x39')]){_0x2a1550[_0x6563('0x38')]=_[_0x6563('0x3a')](_0x2a1550[_0x6563('0x38')],{'$or':_[_0x6563('0x2d')](_0x3c8bd1,function(_0x1f6341){if(_0x1f6341[_0x6563('0x29')]!==_0x6563('0x3b')){var _0x2e4177={};_0x2e4177[_0x1f6341['name']]={'$like':'%'+_0x118d31[_0x6563('0x30')][_0x6563('0x39')]+'%'};return _0x2e4177;}})});}_0x2a1550=_[_0x6563('0x3a')]({},_0x2a1550,_0x118d31[_0x6563('0x3c')]);var _0x5ebe88={'where':_0x2a1550['where']};return db[_0x6563('0x3d')][_0x6563('0x3e')](_0x5ebe88)[_0x6563('0x22')](function(_0x5db29d){_0x4b4d3b[_0x6563('0x3e')]=_0x5db29d;if(_0x118d31['query'][_0x6563('0x3f')]){_0x2a1550[_0x6563('0x40')]=[{'all':!![]}];}return db['ScreenRecording'][_0x6563('0x41')](_0x2a1550);})[_0x6563('0x22')](function(_0xea186){_0x4b4d3b[_0x6563('0x42')]=_0xea186;return _0x4b4d3b;})[_0x6563('0x22')](respondWithFilteredResult(_0x17326c,_0x2a1550))[_0x6563('0x43')](handleError(_0x17326c,null));};exports[_0x6563('0x44')]=function(_0x32932f,_0xd30789){var _0xfc7eb1={'raw':![],'where':{'id':_0x32932f['params']['id']}},_0x2acb52={};_0x2acb52['model']=_[_0x6563('0x2f')](db[_0x6563('0x3d')][_0x6563('0x27')]);_0x2acb52[_0x6563('0x30')]=_[_0x6563('0x2f')](_0x32932f[_0x6563('0x30')]);_0x2acb52[_0x6563('0x31')]=_['intersection'](_0x2acb52[_0x6563('0x2b')],_0x2acb52[_0x6563('0x30')]);_0xfc7eb1[_0x6563('0x33')]=_[_0x6563('0x32')](_0x2acb52['model'],qs[_0x6563('0x34')](_0x32932f[_0x6563('0x30')][_0x6563('0x34')]));_0xfc7eb1[_0x6563('0x33')]=_0xfc7eb1[_0x6563('0x33')]['length']?_0xfc7eb1['attributes']:_0x2acb52[_0x6563('0x2b')];if(_0x32932f[_0x6563('0x30')][_0x6563('0x3f')]){_0xfc7eb1['include']=[{'all':!![]}];}_0xfc7eb1=_[_0x6563('0x3a')]({},_0xfc7eb1,_0x32932f[_0x6563('0x3c')]);return db[_0x6563('0x3d')][_0x6563('0x45')](_0xfc7eb1)['then'](handleEntityNotFound(_0xd30789,null))[_0x6563('0x22')](respondWithResult(_0xd30789,null))[_0x6563('0x43')](handleError(_0xd30789,null));};exports[_0x6563('0x46')]=function(_0x55e927,_0x35b0ce){return db['ScreenRecording'][_0x6563('0x46')](_0x55e927['body'],{})['then'](respondWithResult(_0x35b0ce,0xc9))[_0x6563('0x43')](handleError(_0x35b0ce,null));};exports[_0x6563('0x21')]=function(_0x2ebab0,_0xb84325){if(_0x2ebab0[_0x6563('0x47')]['id']){delete _0x2ebab0[_0x6563('0x47')]['id'];}delete _0x2ebab0[_0x6563('0x47')][_0x6563('0x48')];delete _0x2ebab0[_0x6563('0x47')][_0x6563('0x49')];delete _0x2ebab0['body'][_0x6563('0x4a')];delete _0x2ebab0['body'][_0x6563('0x4b')];return db[_0x6563('0x3d')][_0x6563('0x45')]({'where':{'id':_0x2ebab0['params']['id']}})[_0x6563('0x22')](handleEntityNotFound(_0xb84325,null))[_0x6563('0x22')](saveUpdates(_0x2ebab0['body'],null))[_0x6563('0x22')](respondWithResult(_0xb84325,null))[_0x6563('0x43')](handleError(_0xb84325,null));};exports[_0x6563('0x4c')]=function(_0x3883f3,_0xbd920a){return db['ScreenRecording'][_0x6563('0x4c')]()['then'](respondWithResult(_0xbd920a,null))[_0x6563('0x43')](handleError(_0xbd920a,null));};exports['download']=function(_0xd2ed6b,_0x5992c8,_0x55e002){var _0x5c8274=require('../../components/encryptor');var _0x270667=![];var _0x5ade56={};if(_0xd2ed6b[_0x6563('0x30')]['type']&&_0xd2ed6b[_0x6563('0x30')][_0x6563('0x29')]===_0x6563('0x4d')){_0x5ade56[_0x6563('0x4d')]=_0xd2ed6b[_0x6563('0x4e')]['id'];}else{_0x5ade56['id']=_0xd2ed6b[_0x6563('0x4e')]['id'];}return db[_0x6563('0x3d')][_0x6563('0x45')]({'where':_0x5ade56,'attributes':['id',_0x6563('0x4b')],'raw':!![]})['then'](handleEntityNotFound(_0x5992c8,null))[_0x6563('0x22')](function(_0x28b1c6){if(_0x28b1c6){var _0x97ee3=path[_0x6563('0x4f')](config[_0x6563('0x50')],_0x6563('0x51'),_0x28b1c6[_0x6563('0x4b')]);var _0x32c715=util[_0x6563('0x2e')](_0x6563('0x52'),_0x97ee3);if(fs[_0x6563('0x53')](_0x32c715)){_0x270667=!![];return _0x5c8274['decryptFile'](_0x32c715,_0x97ee3,config[_0x6563('0x54')][_0x6563('0x55')])[_0x6563('0x22')](function(){return _0x28b1c6;});}return _0x28b1c6;}})[_0x6563('0x22')](function(_0x46c26c){if(_0x46c26c){var _0x3c06ac=path[_0x6563('0x4f')](config[_0x6563('0x50')],'server/files/screen_recordings',_0x46c26c[_0x6563('0x4b')]);if(!fs['existsSync'](_0x3c06ac)){throw new db[(_0x6563('0x56'))][(_0x6563('0x57'))]('ScreenRecording\x20not\x20found');}if(_0x46c26c['filename']){return _0x5992c8[_0x6563('0x58')](_0x3c06ac,_0x46c26c[_0x6563('0x59')]+path[_0x6563('0x5a')](_0x3c06ac),function(){if(_0x270667){fs[_0x6563('0x5b')](_0x3c06ac);}});}else{return _0x5992c8['download'](_0x3c06ac,function(_0x2a3df0){if(_0x270667){fs['unlink'](_0x3c06ac);}});}}})[_0x6563('0x43')](function(_0x29aecb){if(_0x29aecb['message']==='ScreenRecording\x20not\x20found'){_0x5992c8[_0x6563('0x18')](0x194)['send']('Not\x20found');}else{return handleError(_0x5992c8,null);}});};exports[_0x6563('0x23')]=function(_0x49d6a5,_0x356010){return db[_0x6563('0x3d')][_0x6563('0x45')]({'where':{'id':_0x49d6a5[_0x6563('0x4e')]['id']}})['then'](function(_0x83d5c){if(_[_0x6563('0x5c')](_0x83d5c)){throw new ReferenceError(_0x6563('0x5d'));}return _0x83d5c;})[_0x6563('0x22')](function(_0x3ffb7f){var _0x2d4694=path[_0x6563('0x4f')](config[_0x6563('0x50')],'server/files/screen_recordings',_0x3ffb7f['value']);logger[_0x6563('0x5e')](_0x6563('0x5f'),_0x2d4694);if(!_['isNil'](_0x3ffb7f['value'])&&fs['existsSync'](_0x2d4694)){logger[_0x6563('0x5e')](_0x6563('0x60')+_0x2d4694+_0x6563('0x61'));fs[_0x6563('0x62')](_0x2d4694);}_0x2d4694=_0x2d4694+'.cypher';if(!_[_0x6563('0x5c')](_0x3ffb7f[_0x6563('0x4b')])&&fs[_0x6563('0x53')](_0x2d4694)){logger[_0x6563('0x5e')](_0x6563('0x60')+_0x2d4694+'\x22\x20trovato\x20eseguo\x20la\x20cancellazione');fs['unlinkSync'](_0x2d4694);}return _0x3ffb7f;})[_0x6563('0x22')](function(_0x1d7b5d){if(!_0x1d7b5d)throw new InternalError();return _0x1d7b5d[_0x6563('0x23')]();})['then'](function(){_0x356010[_0x6563('0x18')](0xcc)['end']();})[_0x6563('0x43')](handleError(_0x356010,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xded9=['rimraf','./screenRecording.attributes','exports','define','interactionid','lodash','api','moment','bluebird','request-promise','path'];(function(_0x484e36,_0x4482d8){var _0xafc85d=function(_0xaba9c8){while(--_0xaba9c8){_0x484e36['push'](_0x484e36['shift']());}};_0xafc85d(++_0x4482d8);}(_0xded9,0x118));var _0x9ded=function(_0x1f2625,_0x1821b5){_0x1f2625=_0x1f2625-0x0;var _0x2f5bc9=_0xded9[_0x1f2625];return _0x2f5bc9;};'use strict';var _=require(_0x9ded('0x0'));var util=require('util');var logger=require('../../config/logger')(_0x9ded('0x1'));var moment=require(_0x9ded('0x2'));var BPromise=require(_0x9ded('0x3'));var rp=require(_0x9ded('0x4'));var fs=require('fs');var path=require(_0x9ded('0x5'));var rimraf=require(_0x9ded('0x6'));var config=require('../../config/environment');var attributes=require(_0x9ded('0x7'));module[_0x9ded('0x8')]=function(_0x4366a0,_0x289b11){return _0x4366a0[_0x9ded('0x9')]('ScreenRecording',attributes,{'tableName':'screen_recordings','paranoid':![],'indexes':[{'name':_0x9ded('0xa'),'fields':[_0x9ded('0xa')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xfeb8=['request-promise','path','rimraf','../../config/environment','exports','define','ScreenRecording','interactionid','lodash','util','../../config/logger','api','moment','bluebird'];(function(_0x50a0c2,_0x4befab){var _0x5ebadd=function(_0x3a3342){while(--_0x3a3342){_0x50a0c2['push'](_0x50a0c2['shift']());}};_0x5ebadd(++_0x4befab);}(_0xfeb8,0xb0));var _0x8feb=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xfeb8[_0x20a584];return _0x4b41a8;};'use strict';var _=require(_0x8feb('0x0'));var util=require(_0x8feb('0x1'));var logger=require(_0x8feb('0x2'))(_0x8feb('0x3'));var moment=require(_0x8feb('0x4'));var BPromise=require(_0x8feb('0x5'));var rp=require(_0x8feb('0x6'));var fs=require('fs');var path=require(_0x8feb('0x7'));var rimraf=require(_0x8feb('0x8'));var config=require(_0x8feb('0x9'));var attributes=require('./screenRecording.attributes');module[_0x8feb('0xa')]=function(_0x56a1b0,_0x5ba71e){return _0x56a1b0[_0x8feb('0xb')](_0x8feb('0xc'),attributes,{'tableName':'screen_recordings','paranoid':![],'indexes':[{'name':_0x8feb('0xd'),'fields':[_0x8feb('0xd')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x80e9=['rpc','../../config/environment','jayson/promise','client','http','request','info','ScreenRecording,\x20%s,\x20%s','ScreenRecording,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','result','catch','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/logger'];(function(_0x5eee43,_0x398c4c){var _0x32fde3=function(_0x1e2e66){while(--_0x1e2e66){_0x5eee43['push'](_0x5eee43['shift']());}};_0x32fde3(++_0x398c4c);}(_0x80e9,0x159));var _0x980e=function(_0x3410a3,_0x2adde0){_0x3410a3=_0x3410a3-0x0;var _0x542940=_0x80e9[_0x3410a3];return _0x542940;};'use strict';var _=require(_0x980e('0x0'));var util=require(_0x980e('0x1'));var moment=require(_0x980e('0x2'));var BPromise=require('bluebird');var rs=require(_0x980e('0x3'));var fs=require('fs');var Redis=require(_0x980e('0x4'));var db=require(_0x980e('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x980e('0x6'))(_0x980e('0x7'));var config=require(_0x980e('0x8'));var jayson=require(_0x980e('0x9'));var client=jayson[_0x980e('0xa')][_0x980e('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x2cc4d2,_0x29673d,_0x300ff5){return new BPromise(function(_0x17ac41,_0x6a04db){return client[_0x980e('0xc')](_0x2cc4d2,_0x300ff5)['then'](function(_0x3c982c){logger[_0x980e('0xd')](_0x980e('0xe'),_0x29673d,'request\x20sent');logger['debug'](_0x980e('0xf'),_0x29673d,_0x980e('0x10'),JSON['stringify'](_0x3c982c));if(_0x3c982c[_0x980e('0x11')]){if(_0x3c982c['error'][_0x980e('0x12')]===0x1f4){logger['error'](_0x980e('0xe'),_0x29673d,_0x3c982c[_0x980e('0x11')][_0x980e('0x13')]);return _0x6a04db(_0x3c982c[_0x980e('0x11')][_0x980e('0x13')]);}logger[_0x980e('0x11')](_0x980e('0xe'),_0x29673d,_0x3c982c[_0x980e('0x11')][_0x980e('0x13')]);return _0x17ac41(_0x3c982c[_0x980e('0x11')][_0x980e('0x13')]);}else{logger['info'](_0x980e('0xe'),_0x29673d,'request\x20sent');_0x17ac41(_0x3c982c[_0x980e('0x14')]['message']);}})[_0x980e('0x15')](function(_0x13ad70){logger[_0x980e('0x11')](_0x980e('0xe'),_0x29673d,_0x13ad70);_0x6a04db(_0x13ad70);});});}
\ No newline at end of file
+var _0x8050=['debug','ScreenRecording,\x20%s,\x20%s,\x20%s','stringify','error','info','result','message','lodash','moment','bluebird','randomstring','ioredis','../../config/utils','rpc','client','http','request','ScreenRecording,\x20%s,\x20%s','request\x20sent'];(function(_0x1231d3,_0x2ea4f8){var _0x92313c=function(_0xbf128e){while(--_0xbf128e){_0x1231d3['push'](_0x1231d3['shift']());}};_0x92313c(++_0x2ea4f8);}(_0x8050,0xc5));var _0x0805=function(_0x24dd08,_0x3e8255){_0x24dd08=_0x24dd08-0x0;var _0x5a1513=_0x8050[_0x24dd08];return _0x5a1513;};'use strict';var _=require(_0x0805('0x0'));var util=require('util');var moment=require(_0x0805('0x1'));var BPromise=require(_0x0805('0x2'));var rs=require(_0x0805('0x3'));var fs=require('fs');var Redis=require(_0x0805('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x0805('0x5'));var logger=require('../../config/logger')(_0x0805('0x6'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x0805('0x7')][_0x0805('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x473158,_0x5f12dd,_0x12c6eb){return new BPromise(function(_0x253591,_0x3eb496){return client[_0x0805('0x9')](_0x473158,_0x12c6eb)['then'](function(_0x1d84fc){logger['info'](_0x0805('0xa'),_0x5f12dd,_0x0805('0xb'));logger[_0x0805('0xc')](_0x0805('0xd'),_0x5f12dd,_0x0805('0xb'),JSON[_0x0805('0xe')](_0x1d84fc));if(_0x1d84fc['error']){if(_0x1d84fc[_0x0805('0xf')]['code']===0x1f4){logger[_0x0805('0xf')](_0x0805('0xa'),_0x5f12dd,_0x1d84fc['error']['message']);return _0x3eb496(_0x1d84fc[_0x0805('0xf')]['message']);}logger[_0x0805('0xf')]('ScreenRecording,\x20%s,\x20%s',_0x5f12dd,_0x1d84fc[_0x0805('0xf')]['message']);return _0x253591(_0x1d84fc['error']['message']);}else{logger[_0x0805('0x10')](_0x0805('0xa'),_0x5f12dd,'request\x20sent');_0x253591(_0x1d84fc[_0x0805('0x11')][_0x0805('0x12')]);}})['catch'](function(_0x1cd450){logger['error'](_0x0805('0xa'),_0x5f12dd,_0x1cd450);_0x3eb496(_0x1cd450);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x42b3=['single','file','addLogo','root','logologin','post','preferred','/:id/preferred','addPreferred','favicon','originalname','put','update','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./setting.controller','get','isAuthenticated','getDate','/:id','getLogo','/:id/logo_login','getLogoLogin','/:id/gdpr','/:id/favicon','getFavicon','diskStorage','join','server/files/images/logos/','format','%s%s','extname'];(function(_0x28be72,_0x2b83af){var _0x46c5da=function(_0x312911){while(--_0x312911){_0x28be72['push'](_0x28be72['shift']());}};_0x46c5da(++_0x2b83af);}(_0x42b3,0x14e));var _0x342b=function(_0x153da6,_0xc9bfde){_0x153da6=_0x153da6-0x0;var _0xf01a0d=_0x42b3[_0x153da6];return _0xf01a0d;};'use strict';var multer=require(_0x342b('0x0'));var util=require(_0x342b('0x1'));var path=require(_0x342b('0x2'));var timeout=require(_0x342b('0x3'));var express=require(_0x342b('0x4'));var router=express[_0x342b('0x5')]();var fs_extra=require(_0x342b('0x6'));var auth=require('../../components/auth/service');var interaction=require(_0x342b('0x7'));var config=require(_0x342b('0x8'));var controller=require(_0x342b('0x9'));router[_0x342b('0xa')]('/',auth[_0x342b('0xb')](),controller['index']);router['get']('/now',controller[_0x342b('0xc')]);router[_0x342b('0xa')](_0x342b('0xd'),controller['show']);router[_0x342b('0xa')]('/:id/logo',controller[_0x342b('0xe')]);router[_0x342b('0xa')](_0x342b('0xf'),controller[_0x342b('0x10')]);router[_0x342b('0xa')](_0x342b('0x11'),controller['gdpr']);router['get']('/:id/preferred',controller['getPreferred']);router[_0x342b('0xa')](_0x342b('0x12'),controller[_0x342b('0x13')]);var upload=multer({'storage':multer[_0x342b('0x14')]({'destination':function(_0xc26b66,_0x36ea42,_0x51df05){_0x51df05(null,path[_0x342b('0x15')](config['root'],_0x342b('0x16')));},'filename':function(_0x50b940,_0xf833ad,_0x477e72){_0x477e72(null,util[_0x342b('0x17')](_0x342b('0x18'),'logo',path[_0x342b('0x19')](_0xf833ad['originalname'])));}})});router['post']('/:id/logo',upload[_0x342b('0x1a')](_0x342b('0x1b')),controller[_0x342b('0x1c')]);var upload=multer({'storage':multer[_0x342b('0x14')]({'destination':function(_0x1eef6c,_0x3f2af3,_0x4fd39a){_0x4fd39a(null,path[_0x342b('0x15')](config[_0x342b('0x1d')],_0x342b('0x16')));},'filename':function(_0x3aad11,_0x3bfd8a,_0x53f0d3){_0x53f0d3(null,util[_0x342b('0x17')](_0x342b('0x18'),_0x342b('0x1e'),path[_0x342b('0x19')](_0x3bfd8a['originalname'])));}})});router[_0x342b('0x1f')](_0x342b('0xf'),upload[_0x342b('0x1a')](_0x342b('0x1b')),controller['addLogoLogin']);var upload=multer({'storage':multer[_0x342b('0x14')]({'destination':function(_0xbf0893,_0x583214,_0x2f890d){_0x2f890d(null,path['join'](config[_0x342b('0x1d')],_0x342b('0x16')));},'filename':function(_0x5848fa,_0x6b4519,_0x51aa0e){_0x51aa0e(null,util[_0x342b('0x17')](_0x342b('0x18'),_0x342b('0x20'),path['extname'](_0x6b4519['originalname'])));}})});router[_0x342b('0x1f')](_0x342b('0x21'),upload[_0x342b('0x1a')](_0x342b('0x1b')),controller[_0x342b('0x22')]);var upload=multer({'storage':multer[_0x342b('0x14')]({'destination':function(_0x1d2612,_0x5e8880,_0x55db8a){_0x55db8a(null,path['join'](config['root'],_0x342b('0x16')));},'filename':function(_0x200c3f,_0x47ce8a,_0x319ae1){_0x319ae1(null,util[_0x342b('0x17')]('%s%s',_0x342b('0x23'),path[_0x342b('0x19')](_0x47ce8a[_0x342b('0x24')])));}})});router[_0x342b('0x1f')](_0x342b('0x12'),upload['single'](_0x342b('0x1b')),controller['addFavicon']);router[_0x342b('0x25')](_0x342b('0xd'),auth[_0x342b('0xb')](),controller[_0x342b('0x26')]);module[_0x342b('0x27')]=router;
\ No newline at end of file
+var _0x0a20=['getDate','/:id','show','/:id/logo','getLogo','/:id/logo_login','getLogoLogin','/:id/gdpr','gdpr','/:id/preferred','/:id/favicon','diskStorage','join','server/files/images/logos/','format','logo','extname','post','single','file','addLogo','root','addLogoLogin','%s%s','originalname','addFavicon','put','update','multer','util','path','Router','../../components/auth/service','../../config/environment','./setting.controller','get','isAuthenticated','index','/now'];(function(_0x392f82,_0x4dc713){var _0x3ad0b8=function(_0x29da4b){while(--_0x29da4b){_0x392f82['push'](_0x392f82['shift']());}};_0x3ad0b8(++_0x4dc713);}(_0x0a20,0x6a));var _0x00a2=function(_0x2ad1a4,_0x26122f){_0x2ad1a4=_0x2ad1a4-0x0;var _0x451863=_0x0a20[_0x2ad1a4];return _0x451863;};'use strict';var multer=require(_0x00a2('0x0'));var util=require(_0x00a2('0x1'));var path=require(_0x00a2('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x00a2('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x00a2('0x4'));var interaction=require('../../components/interaction/service');var config=require(_0x00a2('0x5'));var controller=require(_0x00a2('0x6'));router[_0x00a2('0x7')]('/',auth[_0x00a2('0x8')](),controller[_0x00a2('0x9')]);router[_0x00a2('0x7')](_0x00a2('0xa'),controller[_0x00a2('0xb')]);router[_0x00a2('0x7')](_0x00a2('0xc'),controller[_0x00a2('0xd')]);router[_0x00a2('0x7')](_0x00a2('0xe'),controller[_0x00a2('0xf')]);router[_0x00a2('0x7')](_0x00a2('0x10'),controller[_0x00a2('0x11')]);router['get'](_0x00a2('0x12'),controller[_0x00a2('0x13')]);router['get'](_0x00a2('0x14'),controller['getPreferred']);router[_0x00a2('0x7')](_0x00a2('0x15'),controller['getFavicon']);var upload=multer({'storage':multer[_0x00a2('0x16')]({'destination':function(_0x26ec00,_0x472d91,_0x359eea){_0x359eea(null,path[_0x00a2('0x17')](config['root'],_0x00a2('0x18')));},'filename':function(_0x395595,_0x1cbd2a,_0x7914ad){_0x7914ad(null,util[_0x00a2('0x19')]('%s%s',_0x00a2('0x1a'),path[_0x00a2('0x1b')](_0x1cbd2a['originalname'])));}})});router[_0x00a2('0x1c')](_0x00a2('0xe'),upload[_0x00a2('0x1d')](_0x00a2('0x1e')),controller[_0x00a2('0x1f')]);var upload=multer({'storage':multer[_0x00a2('0x16')]({'destination':function(_0x1aba7c,_0x3d3458,_0x2a461d){_0x2a461d(null,path[_0x00a2('0x17')](config[_0x00a2('0x20')],_0x00a2('0x18')));},'filename':function(_0x20ed91,_0x46c7ef,_0x134a0b){_0x134a0b(null,util[_0x00a2('0x19')]('%s%s','logologin',path[_0x00a2('0x1b')](_0x46c7ef['originalname'])));}})});router[_0x00a2('0x1c')]('/:id/logo_login',upload[_0x00a2('0x1d')](_0x00a2('0x1e')),controller[_0x00a2('0x21')]);var upload=multer({'storage':multer['diskStorage']({'destination':function(_0x133bc4,_0x175865,_0x8ef311){_0x8ef311(null,path[_0x00a2('0x17')](config['root'],'server/files/images/logos/'));},'filename':function(_0x1602ad,_0x172c5c,_0x29a902){_0x29a902(null,util[_0x00a2('0x19')](_0x00a2('0x22'),'preferred',path[_0x00a2('0x1b')](_0x172c5c[_0x00a2('0x23')])));}})});router[_0x00a2('0x1c')]('/:id/preferred',upload[_0x00a2('0x1d')](_0x00a2('0x1e')),controller['addPreferred']);var upload=multer({'storage':multer[_0x00a2('0x16')]({'destination':function(_0x2ea432,_0x59675f,_0x3fd708){_0x3fd708(null,path[_0x00a2('0x17')](config[_0x00a2('0x20')],'server/files/images/logos/'));},'filename':function(_0x58b04e,_0x1df594,_0x82bc66){_0x82bc66(null,util['format']('%s%s','favicon',path[_0x00a2('0x1b')](_0x1df594['originalname'])));}})});router[_0x00a2('0x1c')](_0x00a2('0x15'),upload[_0x00a2('0x1d')](_0x00a2('0x1e')),controller[_0x00a2('0x24')]);router[_0x00a2('0x25')](_0x00a2('0xc'),auth[_0x00a2('0x8')](),controller[_0x00a2('0x26')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1079=['min_internal','min_mailbox','/var/opt/motion2/server/files/sounds/converted','STRING','BOOLEAN','https://www.xcally.com/bar/phonebar/autoupdater.xml','alternate','UNSIGNED','sequelize','exports','INTEGER'];(function(_0x53ccf2,_0x13cb67){var _0x5a2964=function(_0x3b0514){while(--_0x3b0514){_0x53ccf2['push'](_0x53ccf2['shift']());}};_0x5a2964(++_0x13cb67);}(_0x1079,0x126));var _0x9107=function(_0xd3fb91,_0xfc54c0){_0xd3fb91=_0xd3fb91-0x0;var _0x33438c=_0x1079[_0xd3fb91];return _0x33438c;};'use strict';var Sequelize=require(_0x9107('0x0'));module[_0x9107('0x1')]={'min_internal':{'type':Sequelize[_0x9107('0x2')](0xb),'unique':_0x9107('0x3'),'defaultValue':0x3e8},'min_mailbox':{'type':Sequelize[_0x9107('0x2')](0xb),'unique':_0x9107('0x4'),'defaultValue':0x3e8},'agi_port':{'type':Sequelize[_0x9107('0x2')](0xb),'defaultValue':0x11dd},'soundPath':{'type':Sequelize['STRING'],'defaultValue':_0x9107('0x5')},'logo':{'type':Sequelize[_0x9107('0x6')]},'defaultLogo':{'type':Sequelize[_0x9107('0x7')],'defaultValue':!![]},'loginLogo':{'type':Sequelize[_0x9107('0x6')]},'defaultLoginLogo':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'headerWhiteLabel':{'type':Sequelize[_0x9107('0x6')]},'defaultHeaderWhiteLabel':{'type':Sequelize[_0x9107('0x7')],'defaultValue':!![]},'securePassword':{'type':Sequelize[_0x9107('0x7')],'defaultValue':!![]},'firstSetup':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'stunaddr':{'type':Sequelize[_0x9107('0x6')]},'turnaddr':{'type':Sequelize[_0x9107('0x6')]},'turnusername':{'type':Sequelize[_0x9107('0x6')]},'turnpassword':{'type':Sequelize[_0x9107('0x6')]},'pageTitle':{'type':Sequelize[_0x9107('0x6')]},'defaultPageTitle':{'type':Sequelize[_0x9107('0x7')],'defaultValue':!![]},'callRecordingEncryption':{'type':Sequelize[_0x9107('0x7')],'defaultValue':![]},'passwordExpiresDays':{'type':Sequelize[_0x9107('0x2')](0xb),'defaultValue':0x5a},'phoneBarAutoUpdater':{'type':Sequelize[_0x9107('0x7')],'defaultValue':!![]},'phoneBarAutoUpdaterUrl':{'type':Sequelize[_0x9107('0x6')],'defaultValue':_0x9107('0x8')},'enableEmailPreview':{'type':Sequelize[_0x9107('0x7')],'defaultValue':![]},'split':{'type':Sequelize[_0x9107('0x7')],'defaultValue':!![]},'splitSizeCsv':{'type':Sequelize[_0x9107('0x2')],'defaultValue':0x1388},'splitSizePdf':{'type':Sequelize[_0x9107('0x2')],'defaultValue':0x1388},'splitSizeXlsx':{'type':Sequelize['INTEGER'],'defaultValue':0x1388},'messagesAlignment':{'type':Sequelize['STRING'],'defaultValue':_0x9107('0x9')},'chatTimeout':{'type':Sequelize[_0x9107('0x2')],'defaultValue':0x1e},'phoneBarRememberMeEnabled':{'type':Sequelize[_0x9107('0x7')],'defaultValue':!![]},'preferred':{'type':Sequelize[_0x9107('0x6')]},'defaultPreferred':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'rtlSupport':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'defaultScreenRecordingPath':{'type':Sequelize[_0x9107('0x6')]},'allowedLoginAttempts':{'type':Sequelize['INTEGER'],'defaultValue':0x5},'blockDuration':{'type':Sequelize['INTEGER'],'defaultValue':0xa},'favicon':{'type':Sequelize[_0x9107('0x6')]},'defaultFavicon':{'type':Sequelize[_0x9107('0x7')],'defaultValue':!![]},'loginMailFrequency':{'type':Sequelize[_0x9107('0x2')],'defaultValue':0xa,'validate':{'min':0xa}},'transcribe':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'automaticTranscribe':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'transcribeAccountId':{'type':Sequelize['INTEGER']},'transcribeRegion':{'type':Sequelize[_0x9107('0x6')]},'sentiment':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'automaticSentiment':{'type':Sequelize[_0x9107('0x7')],'defaultValue':![]},'sentimentAccountId':{'type':Sequelize[_0x9107('0x2')]},'sentimentRegion':{'type':Sequelize[_0x9107('0x6')]},'language':{'type':Sequelize['STRING']},'bucket':{'type':Sequelize[_0x9107('0x6')]},'googleSsoEnabled':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'enforcePasswordHistory':{'type':Sequelize[_0x9107('0x7')],'defaultValue':!![]},'passwordHistoryLimit':{'type':Sequelize[_0x9107('0x2')](0x2)[_0x9107('0xa')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x5}},'privacyPolicyEmail':{'type':Sequelize['INTEGER'](0x2)[_0x9107('0xa')],'defaultValue':0x0},'privacyPolicyName':{'type':Sequelize['INTEGER'](0x2)[_0x9107('0xa')],'defaultValue':0x0},'privacyPolicyNumber':{'type':Sequelize[_0x9107('0x2')](0x2)[_0x9107('0xa')],'defaultValue':0x0},'searchOnEnterKey':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'chatInteractionsReloadTimeout':{'type':Sequelize[_0x9107('0x2')],'defaultValue':0x0},'mailInteractionsReloadTimeout':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'openchannelInteractionsReloadTimeout':{'type':Sequelize[_0x9107('0x2')],'defaultValue':0x0},'smsInteractionsReloadTimeout':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'whatsappInteractionsReloadTimeout':{'type':Sequelize[_0x9107('0x2')],'defaultValue':0x0},'stopRecordingOnTransfer':{'type':Sequelize[_0x9107('0x7')],'defaultValue':![]},'secureCookieEnabled':{'type':Sequelize[_0x9107('0x7')],'defaultValue':!![]},'viewHelpSection':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]}};
\ No newline at end of file
+var _0xf0da=['BOOLEAN','https://www.xcally.com/bar/phonebar/autoupdater.xml','alternate','UNSIGNED','sequelize','exports','min_internal','INTEGER','min_mailbox','STRING','/var/opt/motion2/server/files/sounds/converted'];(function(_0x56e4e7,_0x1db098){var _0x383618=function(_0xb088c6){while(--_0xb088c6){_0x56e4e7['push'](_0x56e4e7['shift']());}};_0x383618(++_0x1db098);}(_0xf0da,0x185));var _0xaf0d=function(_0x42fc22,_0x13aa7e){_0x42fc22=_0x42fc22-0x0;var _0x3ab3fb=_0xf0da[_0x42fc22];return _0x3ab3fb;};'use strict';var Sequelize=require(_0xaf0d('0x0'));module[_0xaf0d('0x1')]={'min_internal':{'type':Sequelize['INTEGER'](0xb),'unique':_0xaf0d('0x2'),'defaultValue':0x3e8},'min_mailbox':{'type':Sequelize[_0xaf0d('0x3')](0xb),'unique':_0xaf0d('0x4'),'defaultValue':0x3e8},'agi_port':{'type':Sequelize[_0xaf0d('0x3')](0xb),'defaultValue':0x11dd},'soundPath':{'type':Sequelize[_0xaf0d('0x5')],'defaultValue':_0xaf0d('0x6')},'logo':{'type':Sequelize[_0xaf0d('0x5')]},'defaultLogo':{'type':Sequelize[_0xaf0d('0x7')],'defaultValue':!![]},'loginLogo':{'type':Sequelize[_0xaf0d('0x5')]},'defaultLoginLogo':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'headerWhiteLabel':{'type':Sequelize[_0xaf0d('0x5')]},'defaultHeaderWhiteLabel':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'securePassword':{'type':Sequelize[_0xaf0d('0x7')],'defaultValue':!![]},'firstSetup':{'type':Sequelize[_0xaf0d('0x7')],'defaultValue':!![]},'stunaddr':{'type':Sequelize[_0xaf0d('0x5')]},'turnaddr':{'type':Sequelize[_0xaf0d('0x5')]},'turnusername':{'type':Sequelize['STRING']},'turnpassword':{'type':Sequelize[_0xaf0d('0x5')]},'pageTitle':{'type':Sequelize['STRING']},'defaultPageTitle':{'type':Sequelize[_0xaf0d('0x7')],'defaultValue':!![]},'callRecordingEncryption':{'type':Sequelize[_0xaf0d('0x7')],'defaultValue':![]},'passwordExpiresDays':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x5a},'phoneBarAutoUpdater':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'phoneBarAutoUpdaterUrl':{'type':Sequelize[_0xaf0d('0x5')],'defaultValue':_0xaf0d('0x8')},'enableEmailPreview':{'type':Sequelize[_0xaf0d('0x7')],'defaultValue':![]},'split':{'type':Sequelize[_0xaf0d('0x7')],'defaultValue':!![]},'splitSizeCsv':{'type':Sequelize['INTEGER'],'defaultValue':0x1388},'splitSizePdf':{'type':Sequelize[_0xaf0d('0x3')],'defaultValue':0x1388},'splitSizeXlsx':{'type':Sequelize[_0xaf0d('0x3')],'defaultValue':0x1388},'messagesAlignment':{'type':Sequelize[_0xaf0d('0x5')],'defaultValue':_0xaf0d('0x9')},'chatTimeout':{'type':Sequelize[_0xaf0d('0x3')],'defaultValue':0x1e},'phoneBarRememberMeEnabled':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'preferred':{'type':Sequelize[_0xaf0d('0x5')]},'defaultPreferred':{'type':Sequelize[_0xaf0d('0x7')],'defaultValue':!![]},'rtlSupport':{'type':Sequelize[_0xaf0d('0x7')],'defaultValue':![]},'defaultScreenRecordingPath':{'type':Sequelize[_0xaf0d('0x5')]},'allowedLoginAttempts':{'type':Sequelize[_0xaf0d('0x3')],'defaultValue':0x5},'blockDuration':{'type':Sequelize['INTEGER'],'defaultValue':0xa},'favicon':{'type':Sequelize['STRING']},'defaultFavicon':{'type':Sequelize[_0xaf0d('0x7')],'defaultValue':!![]},'loginMailFrequency':{'type':Sequelize[_0xaf0d('0x3')],'defaultValue':0xa,'validate':{'min':0xa}},'transcribe':{'type':Sequelize[_0xaf0d('0x7')],'defaultValue':![]},'automaticTranscribe':{'type':Sequelize[_0xaf0d('0x7')],'defaultValue':![]},'transcribeAccountId':{'type':Sequelize[_0xaf0d('0x3')]},'transcribeRegion':{'type':Sequelize['STRING']},'sentiment':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'automaticSentiment':{'type':Sequelize[_0xaf0d('0x7')],'defaultValue':![]},'sentimentAccountId':{'type':Sequelize[_0xaf0d('0x3')]},'sentimentRegion':{'type':Sequelize['STRING']},'language':{'type':Sequelize[_0xaf0d('0x5')]},'bucket':{'type':Sequelize[_0xaf0d('0x5')]},'googleSsoEnabled':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'enforcePasswordHistory':{'type':Sequelize[_0xaf0d('0x7')],'defaultValue':!![]},'passwordHistoryLimit':{'type':Sequelize[_0xaf0d('0x3')](0x2)[_0xaf0d('0xa')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x5}},'privacyPolicyEmail':{'type':Sequelize[_0xaf0d('0x3')](0x2)[_0xaf0d('0xa')],'defaultValue':0x0},'privacyPolicyName':{'type':Sequelize[_0xaf0d('0x3')](0x2)[_0xaf0d('0xa')],'defaultValue':0x0},'privacyPolicyNumber':{'type':Sequelize[_0xaf0d('0x3')](0x2)[_0xaf0d('0xa')],'defaultValue':0x0},'searchOnEnterKey':{'type':Sequelize[_0xaf0d('0x7')],'defaultValue':!![]},'chatInteractionsReloadTimeout':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'mailInteractionsReloadTimeout':{'type':Sequelize[_0xaf0d('0x3')],'defaultValue':0x0},'openchannelInteractionsReloadTimeout':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'smsInteractionsReloadTimeout':{'type':Sequelize[_0xaf0d('0x3')],'defaultValue':0x0},'whatsappInteractionsReloadTimeout':{'type':Sequelize[_0xaf0d('0x3')],'defaultValue':0x0},'stopRecordingOnTransfer':{'type':Sequelize[_0xaf0d('0x7')],'defaultValue':![]},'secureCookieEnabled':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'viewHelpSection':{'type':Sequelize[_0xaf0d('0x7')],'defaultValue':!![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x245e=['nolimit','sort','where','pick','filter','merge','VIRTUAL','options','include','params','keys','body','find','file','filename','loginLogo','getLogo','server/files/images/logos','getLicense','logo','preferred','favicon','defaultLogo','defaultPreferred','defaultFavicon','join','root','toLower','default_logo.svg','upperFirst','custom','existsSync','Sequelize','download','defaultLoginLogo','default_loginLogo.svg','default','ValidationError','securePassword','addPreferred','default_preferred.png','\x20not\x20found','addFavicon','getFavicon','default_favicon.ico','getDate','utcOffset','now','YYYY-MM-DD\x20HH:mm:ss:SSS','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','path','sox','ejs','fs-extra','lodash','squel','crypto','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','then','info','Setting,\x20%s,\x20%s','debug','Setting,\x20%s,\x20%s,\x20%s','stringify','error','code','message','request\x20sent','catch','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','save','update','destroy','sendStatus','name','send','index','Setting','rawAttributes','type','map','query','filters','intersection','attributes','fields','length','model','hasOwnProperty'];(function(_0x5a4b42,_0x2b9c18){var _0x5e81d6=function(_0x595077){while(--_0x595077){_0x5a4b42['push'](_0x5a4b42['shift']());}};_0x5e81d6(++_0x2b9c18);}(_0x245e,0x11d));var _0xe245=function(_0x47a3d6,_0x30a5ac){_0x47a3d6=_0x47a3d6-0x0;var _0x29e770=_0x245e[_0x47a3d6];return _0x29e770;};'use strict';var emlformat=require(_0xe245('0x0'));var rimraf=require(_0xe245('0x1'));var zipdir=require(_0xe245('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xe245('0x3'));var moment=require(_0xe245('0x4'));var BPromise=require(_0xe245('0x5'));var Mustache=require(_0xe245('0x6'));var util=require('util');var path=require(_0xe245('0x7'));var sox=require(_0xe245('0x8'));var csv=require('to-csv');var ejs=require(_0xe245('0x9'));var fs=require('fs');var fs_extra=require(_0xe245('0xa'));var _=require(_0xe245('0xb'));var squel=require(_0xe245('0xc'));var crypto=require(_0xe245('0xd'));var jsforce=require('jsforce');var deskjs=require(_0xe245('0xe'));var toCsv=require(_0xe245('0xf'));var querystring=require(_0xe245('0x10'));var Papa=require('papaparse');var Redis=require(_0xe245('0x11'));var authService=require(_0xe245('0x12'));var qs=require(_0xe245('0x13'));var as=require(_0xe245('0x14'));var hardwareService=require(_0xe245('0x15'));var logger=require(_0xe245('0x16'))(_0xe245('0x17'));var utils=require('../../config/utils');var config=require(_0xe245('0x18'));var licenseUtil=require(_0xe245('0x19'));var db=require(_0xe245('0x1a'))['db'];var jayson=require(_0xe245('0x1b'));var client=jayson[_0xe245('0x1c')]['http']({'port':0x232a});function respondWithRpcPromise(_0x3a0870,_0x1856e9,_0x2f3e3b,_0x358035){return new BPromise(function(_0x5b2737,_0x30978b){var _0x568fe9=_0x358035||client;return _0x568fe9['request'](_0x3a0870,_0x2f3e3b)[_0xe245('0x1d')](function(_0xe34891){logger[_0xe245('0x1e')](_0xe245('0x1f'),_0x1856e9,'request\x20sent');logger[_0xe245('0x20')](_0xe245('0x21'),_0x1856e9,'request\x20sent',JSON[_0xe245('0x22')](_0xe34891));if(_0xe34891[_0xe245('0x23')]){if(_0xe34891[_0xe245('0x23')][_0xe245('0x24')]===0x1f4){logger[_0xe245('0x23')](_0xe245('0x1f'),_0x1856e9,_0xe34891[_0xe245('0x23')][_0xe245('0x25')]);return _0x30978b(_0xe34891[_0xe245('0x23')][_0xe245('0x25')]);}logger['error'](_0xe245('0x1f'),_0x1856e9,_0xe34891['error']['message']);return _0x5b2737(_0xe34891[_0xe245('0x23')][_0xe245('0x25')]);}else{logger['info'](_0xe245('0x1f'),_0x1856e9,_0xe245('0x26'));_0x5b2737(_0xe34891['result'][_0xe245('0x25')]);}})[_0xe245('0x27')](function(_0x197db3){logger[_0xe245('0x23')](_0xe245('0x1f'),_0x1856e9,_0x197db3);_0x30978b(_0x197db3);});});}function respondWithStatusCode(_0x18373d,_0x44044b){_0x44044b=_0x44044b||0xcc;return function(_0x100b71){if(_0x100b71){return _0x18373d['sendStatus'](_0x44044b);}return _0x18373d[_0xe245('0x28')](_0x44044b)[_0xe245('0x29')]();};}function respondWithResult(_0x2a5a4d,_0x30657b){_0x30657b=_0x30657b||0xc8;return function(_0x301a7f){if(_0x301a7f){return _0x2a5a4d[_0xe245('0x28')](_0x30657b)[_0xe245('0x2a')](_0x301a7f);}};}function respondWithFilteredResult(_0x4f2c39,_0x4cf0f7){return function(_0x2b3f44){if(_0x2b3f44){var _0x205223=typeof _0x4cf0f7['offset']===_0xe245('0x2b')&&typeof _0x4cf0f7[_0xe245('0x2c')]===_0xe245('0x2b');var _0x31a702=_0x2b3f44[_0xe245('0x2d')];var _0x516a13=_0x205223?0x0:_0x4cf0f7[_0xe245('0x2e')];var _0x5b5640=_0x205223?_0x2b3f44[_0xe245('0x2d')]:_0x4cf0f7[_0xe245('0x2e')]+_0x4cf0f7[_0xe245('0x2c')];var _0x4e5bcf;if(_0x5b5640>=_0x31a702){_0x5b5640=_0x31a702;_0x4e5bcf=0xc8;}else{_0x4e5bcf=0xce;}_0x4f2c39[_0xe245('0x28')](_0x4e5bcf);return _0x4f2c39[_0xe245('0x2f')](_0xe245('0x30'),_0x516a13+'-'+_0x5b5640+'/'+_0x31a702)[_0xe245('0x2a')](_0x2b3f44);}return null;};}function patchUpdates(_0x4d1722){return function(_0x4b5021){try{jsonpatch[_0xe245('0x31')](_0x4b5021,_0x4d1722,!![]);}catch(_0x42b79c){return BPromise['reject'](_0x42b79c);}return _0x4b5021[_0xe245('0x32')]();};}function saveUpdates(_0x518327,_0x22cd85){return function(_0x25ad7f){if(_0x25ad7f){return _0x25ad7f[_0xe245('0x33')](_0x518327)[_0xe245('0x1d')](function(_0x5b5d88){return _0x5b5d88;});}return null;};}function removeEntity(_0x572688,_0x56f5c6){return function(_0x3b7016){if(_0x3b7016){return _0x3b7016[_0xe245('0x34')]()[_0xe245('0x1d')](function(){_0x572688[_0xe245('0x28')](0xcc)['end']();});}};}function handleEntityNotFound(_0x41b279,_0x597c88){return function(_0x2ecf8e){if(!_0x2ecf8e){_0x41b279[_0xe245('0x35')](0x194);}return _0x2ecf8e;};}function handleError(_0x17c144,_0x14d903){_0x14d903=_0x14d903||0x1f4;return function(_0x2e4dbd){logger[_0xe245('0x23')](_0x2e4dbd['stack']);if(_0x2e4dbd['name']){delete _0x2e4dbd[_0xe245('0x36')];}_0x17c144[_0xe245('0x28')](_0x14d903)[_0xe245('0x37')](_0x2e4dbd);};}exports[_0xe245('0x38')]=function(_0x215cf0,_0x5d569b){var _0x3fabe7={},_0xd59a9={},_0x5da142={'count':0x0,'rows':[]};var _0x11d38f=_['map'](db[_0xe245('0x39')][_0xe245('0x3a')],function(_0x456a9e){return{'name':_0x456a9e['fieldName'],'type':_0x456a9e[_0xe245('0x3b')]['key']};});_0xd59a9['model']=_[_0xe245('0x3c')](_0x11d38f,_0xe245('0x36'));_0xd59a9[_0xe245('0x3d')]=_['keys'](_0x215cf0[_0xe245('0x3d')]);_0xd59a9[_0xe245('0x3e')]=_[_0xe245('0x3f')](_0xd59a9['model'],_0xd59a9[_0xe245('0x3d')]);_0x3fabe7[_0xe245('0x40')]=_[_0xe245('0x3f')](_0xd59a9['model'],qs[_0xe245('0x41')](_0x215cf0['query'][_0xe245('0x41')]));_0x3fabe7[_0xe245('0x40')]=_0x3fabe7[_0xe245('0x40')][_0xe245('0x42')]?_0x3fabe7[_0xe245('0x40')]:_0xd59a9[_0xe245('0x43')];if(!_0x215cf0['query'][_0xe245('0x44')](_0xe245('0x45'))){_0x3fabe7[_0xe245('0x2c')]=qs[_0xe245('0x2c')](_0x215cf0[_0xe245('0x3d')][_0xe245('0x2c')]);_0x3fabe7[_0xe245('0x2e')]=qs['offset'](_0x215cf0[_0xe245('0x3d')][_0xe245('0x2e')]);}_0x3fabe7['order']=qs[_0xe245('0x46')](_0x215cf0[_0xe245('0x3d')][_0xe245('0x46')]);_0x3fabe7[_0xe245('0x47')]=qs[_0xe245('0x3e')](_[_0xe245('0x48')](_0x215cf0[_0xe245('0x3d')],_0xd59a9[_0xe245('0x3e')]),_0x11d38f);if(_0x215cf0[_0xe245('0x3d')][_0xe245('0x49')]){_0x3fabe7[_0xe245('0x47')]=_[_0xe245('0x4a')](_0x3fabe7[_0xe245('0x47')],{'$or':_[_0xe245('0x3c')](_0x11d38f,function(_0x2927e8){if(_0x2927e8[_0xe245('0x3b')]!==_0xe245('0x4b')){var _0x341f45={};_0x341f45[_0x2927e8[_0xe245('0x36')]]={'$like':'%'+_0x215cf0[_0xe245('0x3d')][_0xe245('0x49')]+'%'};return _0x341f45;}})});}_0x3fabe7=_[_0xe245('0x4a')]({},_0x3fabe7,_0x215cf0[_0xe245('0x4c')]);var _0xa26cf1={'where':_0x3fabe7[_0xe245('0x47')]};return db[_0xe245('0x39')][_0xe245('0x2d')](_0xa26cf1)[_0xe245('0x1d')](function(_0x319d2e){_0x5da142[_0xe245('0x2d')]=_0x319d2e;if(_0x215cf0[_0xe245('0x3d')]['includeAll']){_0x3fabe7[_0xe245('0x4d')]=[{'all':!![]}];}return db[_0xe245('0x39')]['findAll'](_0x3fabe7);})[_0xe245('0x1d')](function(_0x2c7b45){_0x5da142['rows']=_0x2c7b45;return _0x5da142;})[_0xe245('0x1d')](respondWithFilteredResult(_0x5d569b,_0x3fabe7))['catch'](handleError(_0x5d569b,null));};exports['show']=function(_0x447bdd,_0xa8263){var _0x41feaf={'raw':![],'where':{'id':_0x447bdd[_0xe245('0x4e')]['id']}},_0x228d91={};_0x228d91[_0xe245('0x43')]=_[_0xe245('0x4f')](db['Setting']['rawAttributes']);_0x228d91[_0xe245('0x3d')]=_[_0xe245('0x4f')](_0x447bdd[_0xe245('0x3d')]);_0x228d91[_0xe245('0x3e')]=_[_0xe245('0x3f')](_0x228d91[_0xe245('0x43')],_0x228d91[_0xe245('0x3d')]);_0x41feaf[_0xe245('0x40')]=_['intersection'](_0x228d91[_0xe245('0x43')],qs[_0xe245('0x41')](_0x447bdd[_0xe245('0x3d')][_0xe245('0x41')]));_0x41feaf[_0xe245('0x40')]=_0x41feaf[_0xe245('0x40')][_0xe245('0x42')]?_0x41feaf[_0xe245('0x40')]:_0x228d91[_0xe245('0x43')];if(_0x447bdd[_0xe245('0x3d')]['includeAll']){_0x41feaf[_0xe245('0x4d')]=[{'all':!![]}];}_0x41feaf=_[_0xe245('0x4a')]({},_0x41feaf,_0x447bdd['options']);return db[_0xe245('0x39')]['find'](_0x41feaf)[_0xe245('0x1d')](handleEntityNotFound(_0xa8263,null))['then'](respondWithResult(_0xa8263,null))['catch'](handleError(_0xa8263,null));};exports[_0xe245('0x33')]=function(_0x333071,_0x5cb42d){if(_0x333071[_0xe245('0x50')]['id']){delete _0x333071['body']['id'];}return db[_0xe245('0x39')][_0xe245('0x51')]({'where':{'id':_0x333071[_0xe245('0x4e')]['id']}})['then'](handleEntityNotFound(_0x5cb42d,null))[_0xe245('0x1d')](saveUpdates(_0x333071[_0xe245('0x50')],null))[_0xe245('0x1d')](respondWithResult(_0x5cb42d,null))[_0xe245('0x27')](handleError(_0x5cb42d,null));};exports['addLogo']=function(_0x18107c,_0x2527af,_0x202a9d){if(_0x18107c[_0xe245('0x52')]&&_0x18107c[_0xe245('0x52')][_0xe245('0x53')]){_0x18107c['body']['logo']=_0x18107c['file'][_0xe245('0x53')];}return db[_0xe245('0x39')][_0xe245('0x51')]({'where':{'id':_0x18107c[_0xe245('0x4e')]['id']}})[_0xe245('0x1d')](handleEntityNotFound(_0x2527af,null))['then'](saveUpdates(_0x18107c[_0xe245('0x50')],null))[_0xe245('0x1d')](respondWithResult(_0x2527af,null))[_0xe245('0x27')](handleError(_0x2527af,null));};exports['addLogoLogin']=function(_0x495349,_0x5e0c36,_0x1fd400){if(_0x495349[_0xe245('0x52')]&&_0x495349[_0xe245('0x52')][_0xe245('0x53')]){_0x495349[_0xe245('0x50')][_0xe245('0x54')]=_0x495349['file'][_0xe245('0x53')];}return db[_0xe245('0x39')]['find']({'where':{'id':_0x495349[_0xe245('0x4e')]['id']}})['then'](handleEntityNotFound(_0x5e0c36,null))['then'](saveUpdates(_0x495349[_0xe245('0x50')],null))[_0xe245('0x1d')](respondWithResult(_0x5e0c36,null))[_0xe245('0x27')](handleError(_0x5e0c36,null));};var utilLicense=require('../../config/license/util');exports[_0xe245('0x55')]=function(_0x2aca1d,_0x41ab0b,_0x27f5bb){var _0x4b81eb=_0xe245('0x56');var _0x2da4fb={'custom':![]};return utilLicense[_0xe245('0x57')]()['then'](function(_0x3e3fb3){if(_0x3e3fb3){_0x2da4fb=_0x3e3fb3;}return db['Setting'][_0xe245('0x51')]({'where':{'id':_0x2aca1d[_0xe245('0x4e')]['id']},'attributes':[_0xe245('0x58'),_0xe245('0x54'),_0xe245('0x59'),_0xe245('0x5a'),_0xe245('0x5b'),'defaultLoginLogo',_0xe245('0x5c'),_0xe245('0x5d')],'raw':!![]});})[_0xe245('0x1d')](handleEntityNotFound(_0x41ab0b,null))[_0xe245('0x1d')](function(_0x3c4236){if(_0x3c4236){var _0xaf4c=_0x3c4236[_0xe245('0x58')]&&fs['existsSync'](path[_0xe245('0x5e')](config['root'],_0x4b81eb,_['toLower'](_0x3c4236[_0xe245('0x58')])))?path[_0xe245('0x5e')](config['root'],_0x4b81eb,_['toLower'](_0x3c4236[_0xe245('0x58')])):path['join'](config[_0xe245('0x5f')],_0x4b81eb,_[_0xe245('0x60')](_0xe245('0x61')));var _0x41ce71='default'+_[_0xe245('0x62')](_0xe245('0x58'));if(_0x3c4236[_0x41ce71]||!_0x2da4fb[_0xe245('0x63')]){_0xaf4c=path[_0xe245('0x5e')](config['root'],_0x4b81eb,_[_0xe245('0x60')](_0xe245('0x61')));}if(!fs[_0xe245('0x64')](_0xaf4c)){throw new db[(_0xe245('0x65'))]['ValidationError'](_['upperFirst'](_0xe245('0x58'))+'\x20not\x20found');}return _0x41ab0b[_0xe245('0x66')](_0xaf4c);}})[_0xe245('0x27')](handleError(_0x41ab0b,null));};var utilLicense=require(_0xe245('0x19'));exports['getLogoLogin']=function(_0x2626e1,_0x30d22f,_0x4aafba){var _0x5cedaa=_0xe245('0x56');var _0x21324e={'custom':![]};return utilLicense[_0xe245('0x57')]()[_0xe245('0x1d')](function(_0x28b4a2){if(_0x28b4a2){_0x21324e=_0x28b4a2;}return db[_0xe245('0x39')]['find']({'where':{'id':_0x2626e1['params']['id']},'attributes':[_0xe245('0x58'),_0xe245('0x54'),_0xe245('0x59'),'favicon',_0xe245('0x5b'),_0xe245('0x67'),_0xe245('0x5c'),_0xe245('0x5d')],'raw':!![]});})[_0xe245('0x1d')](handleEntityNotFound(_0x30d22f,null))['then'](function(_0x3afa77){if(_0x3afa77){var _0x51de29=_0x3afa77[_0xe245('0x54')]&&fs[_0xe245('0x64')](path['join'](config['root'],_0x5cedaa,_[_0xe245('0x60')](_0x3afa77[_0xe245('0x54')])))?path[_0xe245('0x5e')](config[_0xe245('0x5f')],_0x5cedaa,_[_0xe245('0x60')](_0x3afa77[_0xe245('0x54')])):path['join'](config[_0xe245('0x5f')],_0x5cedaa,_[_0xe245('0x60')](_0xe245('0x68')));var _0x2bedaf=_0xe245('0x69')+_['upperFirst'](_0xe245('0x54'));if(_0x3afa77[_0x2bedaf]||!_0x21324e[_0xe245('0x63')]){_0x51de29=path[_0xe245('0x5e')](config[_0xe245('0x5f')],_0x5cedaa,_[_0xe245('0x60')](_0xe245('0x68')));}if(!fs[_0xe245('0x64')](_0x51de29)){throw new db[(_0xe245('0x65'))][(_0xe245('0x6a'))](_[_0xe245('0x62')](_0xe245('0x54'))+'\x20not\x20found');}return _0x30d22f[_0xe245('0x66')](_0x51de29);}})[_0xe245('0x27')](handleError(_0x30d22f,null));};exports['gdpr']=function(_0x57dba8,_0x336604){return db[_0xe245('0x39')]['find']({'where':{'id':_0x57dba8[_0xe245('0x4e')]['id']},'attributes':[_0xe245('0x6b')]})[_0xe245('0x1d')](respondWithResult(_0x336604,null))[_0xe245('0x27')](handleError(_0x336604,null));};exports[_0xe245('0x6c')]=function(_0xe29b3c,_0x564eae,_0x5aa2a4){if(_0xe29b3c[_0xe245('0x52')]&&_0xe29b3c['file'][_0xe245('0x53')]){_0xe29b3c[_0xe245('0x50')][_0xe245('0x59')]=_0xe29b3c['file'][_0xe245('0x53')];}return db[_0xe245('0x39')][_0xe245('0x51')]({'where':{'id':_0xe29b3c[_0xe245('0x4e')]['id']}})['then'](handleEntityNotFound(_0x564eae,null))['then'](saveUpdates(_0xe29b3c[_0xe245('0x50')],null))[_0xe245('0x1d')](respondWithResult(_0x564eae,null))['catch'](handleError(_0x564eae,null));};var utilLicense=require('../../config/license/util');exports['getPreferred']=function(_0x567054,_0x203c70,_0x1f8219){var _0x338dfa=_0xe245('0x56');var _0x1dd549={'custom':![]};return utilLicense[_0xe245('0x57')]()[_0xe245('0x1d')](function(_0x2e155b){if(_0x2e155b){_0x1dd549=_0x2e155b;}return db[_0xe245('0x39')]['find']({'where':{'id':_0x567054[_0xe245('0x4e')]['id']},'attributes':[_0xe245('0x58'),_0xe245('0x54'),_0xe245('0x59'),'favicon',_0xe245('0x5b'),'defaultLoginLogo',_0xe245('0x5c'),_0xe245('0x5d')],'raw':!![]});})['then'](handleEntityNotFound(_0x203c70,null))[_0xe245('0x1d')](function(_0x1d9b2e){if(_0x1d9b2e){var _0xfc07e8=_0x1d9b2e[_0xe245('0x59')]&&fs['existsSync'](path[_0xe245('0x5e')](config[_0xe245('0x5f')],_0x338dfa,_['toLower'](_0x1d9b2e['preferred'])))?path[_0xe245('0x5e')](config[_0xe245('0x5f')],_0x338dfa,_[_0xe245('0x60')](_0x1d9b2e[_0xe245('0x59')])):path['join'](config[_0xe245('0x5f')],_0x338dfa,_[_0xe245('0x60')]('default_preferred.png'));var _0x2e42d3=_0xe245('0x69')+_['upperFirst'](_0xe245('0x59'));if(_0x1d9b2e[_0x2e42d3]||!_0x1dd549[_0xe245('0x63')]||!_0x1dd549[_0xe245('0x59')]){_0xfc07e8=path[_0xe245('0x5e')](config[_0xe245('0x5f')],_0x338dfa,_[_0xe245('0x60')](_0xe245('0x6d')));}if(!fs[_0xe245('0x64')](_0xfc07e8)){throw new db[(_0xe245('0x65'))][(_0xe245('0x6a'))](_[_0xe245('0x62')](_0xe245('0x59'))+_0xe245('0x6e'));}return _0x203c70[_0xe245('0x66')](_0xfc07e8);}})[_0xe245('0x27')](handleError(_0x203c70,null));};exports[_0xe245('0x6f')]=function(_0x100945,_0x518481,_0x1a9f67){if(_0x100945['file']&&_0x100945[_0xe245('0x52')][_0xe245('0x53')]){_0x100945['body']['favicon']=_0x100945[_0xe245('0x52')][_0xe245('0x53')];}return db[_0xe245('0x39')][_0xe245('0x51')]({'where':{'id':_0x100945[_0xe245('0x4e')]['id']}})[_0xe245('0x1d')](handleEntityNotFound(_0x518481,null))[_0xe245('0x1d')](saveUpdates(_0x100945[_0xe245('0x50')],null))[_0xe245('0x1d')](respondWithResult(_0x518481,null))[_0xe245('0x27')](handleError(_0x518481,null));};var utilLicense=require(_0xe245('0x19'));exports[_0xe245('0x70')]=function(_0x3ee567,_0x7e7acb,_0x3f70c2){var _0x482aff=_0xe245('0x56');var _0x56199c={'custom':![]};return utilLicense[_0xe245('0x57')]()[_0xe245('0x1d')](function(_0x10507f){if(_0x10507f){_0x56199c=_0x10507f;}return db[_0xe245('0x39')][_0xe245('0x51')]({'where':{'id':_0x3ee567['params']['id']},'attributes':[_0xe245('0x58'),'loginLogo','preferred',_0xe245('0x5a'),_0xe245('0x5b'),_0xe245('0x67'),_0xe245('0x5c'),_0xe245('0x5d')],'raw':!![]});})[_0xe245('0x1d')](handleEntityNotFound(_0x7e7acb,null))['then'](function(_0x5d128c){if(_0x5d128c){var _0x46c402=_0x5d128c[_0xe245('0x5a')]&&fs[_0xe245('0x64')](path[_0xe245('0x5e')](config[_0xe245('0x5f')],_0x482aff,_[_0xe245('0x60')](_0x5d128c[_0xe245('0x5a')])))?path[_0xe245('0x5e')](config[_0xe245('0x5f')],_0x482aff,_['toLower'](_0x5d128c['favicon'])):path['join'](config[_0xe245('0x5f')],_0x482aff,_[_0xe245('0x60')](_0xe245('0x71')));var _0x55e314=_0xe245('0x69')+_[_0xe245('0x62')]('favicon');if(_0x5d128c[_0x55e314]||!_0x56199c[_0xe245('0x63')]){_0x46c402=path[_0xe245('0x5e')](config[_0xe245('0x5f')],_0x482aff,_[_0xe245('0x60')](_0xe245('0x71')));}if(!fs[_0xe245('0x64')](_0x46c402)){throw new db[(_0xe245('0x65'))][(_0xe245('0x6a'))](_[_0xe245('0x62')](_0xe245('0x5a'))+_0xe245('0x6e'));}return _0x7e7acb['download'](_0x46c402);}})[_0xe245('0x27')](handleError(_0x7e7acb,null));};exports[_0xe245('0x72')]=function(_0x299d46,_0x3d303a){var _0x230df4={'offset':moment()[_0xe245('0x73')]()};_0x230df4[_0xe245('0x74')]=moment()[_0xe245('0x73')](_0x230df4[_0xe245('0x2e')])['format'](_0xe245('0x75'));return _0x3d303a[_0xe245('0x28')](0xc8)[_0xe245('0x37')](_0x230df4);};
\ No newline at end of file
+var _0x8250=['eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','util','sox','ejs','fs-extra','lodash','crypto','desk.js','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','jayson/promise','client','http','request','info','Setting,\x20%s,\x20%s','request\x20sent','debug','stringify','code','error','message','result','catch','status','end','json','offset','undefined','limit','set','Content-Range','reject','save','update','then','destroy','sendStatus','stack','name','index','map','Setting','rawAttributes','type','key','model','query','attributes','intersection','fields','length','hasOwnProperty','nolimit','sort','where','pick','filters','filter','merge','options','count','includeAll','include','findAll','rows','show','keys','find','body','params','addLogo','file','filename','addLogoLogin','server/files/images/logos','getLicense','logo','preferred','favicon','defaultLoginLogo','existsSync','join','toLower','root','default','upperFirst','custom','default_logo.svg','Sequelize','ValidationError','download','getLogoLogin','loginLogo','defaultLogo','defaultPreferred','defaultFavicon','default_loginLogo.svg','gdpr','securePassword','addPreferred','getPreferred','default_preferred.png','addFavicon','default_favicon.ico','\x20not\x20found','getDate','utcOffset','now','YYYY-MM-DD\x20HH:mm:ss:SSS','send'];(function(_0x28abc5,_0x2653f7){var _0x325009=function(_0x367376){while(--_0x367376){_0x28abc5['push'](_0x28abc5['shift']());}};_0x325009(++_0x2653f7);}(_0x8250,0xfa));var _0x0825=function(_0x83bb10,_0x541f70){_0x83bb10=_0x83bb10-0x0;var _0x36ac0d=_0x8250[_0x83bb10];return _0x36ac0d;};'use strict';var emlformat=require(_0x0825('0x0'));var rimraf=require(_0x0825('0x1'));var zipdir=require(_0x0825('0x2'));var jsonpatch=require(_0x0825('0x3'));var rp=require('request-promise');var moment=require(_0x0825('0x4'));var BPromise=require(_0x0825('0x5'));var Mustache=require('mustache');var util=require(_0x0825('0x6'));var path=require('path');var sox=require(_0x0825('0x7'));var csv=require('to-csv');var ejs=require(_0x0825('0x8'));var fs=require('fs');var fs_extra=require(_0x0825('0x9'));var _=require(_0x0825('0xa'));var squel=require('squel');var crypto=require(_0x0825('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x0825('0xc'));var toCsv=require(_0x0825('0xd'));var querystring=require(_0x0825('0xe'));var Papa=require(_0x0825('0xf'));var Redis=require(_0x0825('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x0825('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x0825('0x12'));var logger=require(_0x0825('0x13'))(_0x0825('0x14'));var utils=require(_0x0825('0x15'));var config=require(_0x0825('0x16'));var licenseUtil=require(_0x0825('0x17'));var db=require('../../mysqldb')['db'];var jayson=require(_0x0825('0x18'));var client=jayson[_0x0825('0x19')][_0x0825('0x1a')]({'port':0x232a});function respondWithRpcPromise(_0x650e44,_0x243e97,_0x2a60c0,_0x43c2ec){return new BPromise(function(_0x5a7546,_0x4bbe11){var _0x5804c0=_0x43c2ec||client;return _0x5804c0[_0x0825('0x1b')](_0x650e44,_0x2a60c0)['then'](function(_0x18c1de){logger[_0x0825('0x1c')](_0x0825('0x1d'),_0x243e97,_0x0825('0x1e'));logger[_0x0825('0x1f')]('Setting,\x20%s,\x20%s,\x20%s',_0x243e97,'request\x20sent',JSON[_0x0825('0x20')](_0x18c1de));if(_0x18c1de['error']){if(_0x18c1de['error'][_0x0825('0x21')]===0x1f4){logger[_0x0825('0x22')](_0x0825('0x1d'),_0x243e97,_0x18c1de[_0x0825('0x22')][_0x0825('0x23')]);return _0x4bbe11(_0x18c1de[_0x0825('0x22')][_0x0825('0x23')]);}logger[_0x0825('0x22')](_0x0825('0x1d'),_0x243e97,_0x18c1de['error'][_0x0825('0x23')]);return _0x5a7546(_0x18c1de[_0x0825('0x22')][_0x0825('0x23')]);}else{logger[_0x0825('0x1c')]('Setting,\x20%s,\x20%s',_0x243e97,_0x0825('0x1e'));_0x5a7546(_0x18c1de[_0x0825('0x24')]['message']);}})[_0x0825('0x25')](function(_0x63ed3e){logger[_0x0825('0x22')](_0x0825('0x1d'),_0x243e97,_0x63ed3e);_0x4bbe11(_0x63ed3e);});});}function respondWithStatusCode(_0x241cd2,_0x544ab7){_0x544ab7=_0x544ab7||0xcc;return function(_0x5e1cf0){if(_0x5e1cf0){return _0x241cd2['sendStatus'](_0x544ab7);}return _0x241cd2[_0x0825('0x26')](_0x544ab7)[_0x0825('0x27')]();};}function respondWithResult(_0x26b211,_0x100452){_0x100452=_0x100452||0xc8;return function(_0x377487){if(_0x377487){return _0x26b211[_0x0825('0x26')](_0x100452)[_0x0825('0x28')](_0x377487);}};}function respondWithFilteredResult(_0x5e0220,_0x18a308){return function(_0x551cd8){if(_0x551cd8){var _0x55aed8=typeof _0x18a308[_0x0825('0x29')]===_0x0825('0x2a')&&typeof _0x18a308['limit']==='undefined';var _0x5d362b=_0x551cd8['count'];var _0x574caf=_0x55aed8?0x0:_0x18a308[_0x0825('0x29')];var _0x283514=_0x55aed8?_0x551cd8['count']:_0x18a308[_0x0825('0x29')]+_0x18a308[_0x0825('0x2b')];var _0x23aa3b;if(_0x283514>=_0x5d362b){_0x283514=_0x5d362b;_0x23aa3b=0xc8;}else{_0x23aa3b=0xce;}_0x5e0220[_0x0825('0x26')](_0x23aa3b);return _0x5e0220[_0x0825('0x2c')](_0x0825('0x2d'),_0x574caf+'-'+_0x283514+'/'+_0x5d362b)['json'](_0x551cd8);}return null;};}function patchUpdates(_0x13cf02){return function(_0x25c899){try{jsonpatch['apply'](_0x25c899,_0x13cf02,!![]);}catch(_0x18afed){return BPromise[_0x0825('0x2e')](_0x18afed);}return _0x25c899[_0x0825('0x2f')]();};}function saveUpdates(_0x51ef7e,_0x2761dd){return function(_0x491baa){if(_0x491baa){return _0x491baa[_0x0825('0x30')](_0x51ef7e)[_0x0825('0x31')](function(_0xc2a166){return _0xc2a166;});}return null;};}function removeEntity(_0x38f2e7,_0x78aba6){return function(_0x417d25){if(_0x417d25){return _0x417d25[_0x0825('0x32')]()[_0x0825('0x31')](function(){_0x38f2e7[_0x0825('0x26')](0xcc)[_0x0825('0x27')]();});}};}function handleEntityNotFound(_0x540d36,_0x4b6409){return function(_0x173c47){if(!_0x173c47){_0x540d36[_0x0825('0x33')](0x194);}return _0x173c47;};}function handleError(_0x9eceda,_0x215cac){_0x215cac=_0x215cac||0x1f4;return function(_0x56e6ce){logger['error'](_0x56e6ce[_0x0825('0x34')]);if(_0x56e6ce[_0x0825('0x35')]){delete _0x56e6ce[_0x0825('0x35')];}_0x9eceda['status'](_0x215cac)['send'](_0x56e6ce);};}exports[_0x0825('0x36')]=function(_0x38bd01,_0x5ecaba){var _0x2ac30d={},_0x5716df={},_0x22c14a={'count':0x0,'rows':[]};var _0x2d1d6c=_[_0x0825('0x37')](db[_0x0825('0x38')][_0x0825('0x39')],function(_0x1f7128){return{'name':_0x1f7128['fieldName'],'type':_0x1f7128[_0x0825('0x3a')][_0x0825('0x3b')]};});_0x5716df[_0x0825('0x3c')]=_[_0x0825('0x37')](_0x2d1d6c,_0x0825('0x35'));_0x5716df[_0x0825('0x3d')]=_['keys'](_0x38bd01['query']);_0x5716df['filters']=_['intersection'](_0x5716df[_0x0825('0x3c')],_0x5716df[_0x0825('0x3d')]);_0x2ac30d[_0x0825('0x3e')]=_[_0x0825('0x3f')](_0x5716df[_0x0825('0x3c')],qs[_0x0825('0x40')](_0x38bd01['query'][_0x0825('0x40')]));_0x2ac30d[_0x0825('0x3e')]=_0x2ac30d['attributes'][_0x0825('0x41')]?_0x2ac30d[_0x0825('0x3e')]:_0x5716df[_0x0825('0x3c')];if(!_0x38bd01['query'][_0x0825('0x42')](_0x0825('0x43'))){_0x2ac30d['limit']=qs[_0x0825('0x2b')](_0x38bd01[_0x0825('0x3d')][_0x0825('0x2b')]);_0x2ac30d[_0x0825('0x29')]=qs['offset'](_0x38bd01[_0x0825('0x3d')]['offset']);}_0x2ac30d['order']=qs[_0x0825('0x44')](_0x38bd01[_0x0825('0x3d')][_0x0825('0x44')]);_0x2ac30d[_0x0825('0x45')]=qs['filters'](_[_0x0825('0x46')](_0x38bd01[_0x0825('0x3d')],_0x5716df[_0x0825('0x47')]),_0x2d1d6c);if(_0x38bd01[_0x0825('0x3d')][_0x0825('0x48')]){_0x2ac30d[_0x0825('0x45')]=_[_0x0825('0x49')](_0x2ac30d[_0x0825('0x45')],{'$or':_[_0x0825('0x37')](_0x2d1d6c,function(_0x34d17e){if(_0x34d17e['type']!=='VIRTUAL'){var _0x5af539={};_0x5af539[_0x34d17e['name']]={'$like':'%'+_0x38bd01[_0x0825('0x3d')]['filter']+'%'};return _0x5af539;}})});}_0x2ac30d=_[_0x0825('0x49')]({},_0x2ac30d,_0x38bd01[_0x0825('0x4a')]);var _0x2610d0={'where':_0x2ac30d['where']};return db['Setting'][_0x0825('0x4b')](_0x2610d0)[_0x0825('0x31')](function(_0x203042){_0x22c14a[_0x0825('0x4b')]=_0x203042;if(_0x38bd01[_0x0825('0x3d')][_0x0825('0x4c')]){_0x2ac30d[_0x0825('0x4d')]=[{'all':!![]}];}return db[_0x0825('0x38')][_0x0825('0x4e')](_0x2ac30d);})[_0x0825('0x31')](function(_0x5f5b5d){_0x22c14a[_0x0825('0x4f')]=_0x5f5b5d;return _0x22c14a;})[_0x0825('0x31')](respondWithFilteredResult(_0x5ecaba,_0x2ac30d))[_0x0825('0x25')](handleError(_0x5ecaba,null));};exports[_0x0825('0x50')]=function(_0x48f7cd,_0x2021e8){var _0x1cf914={'raw':![],'where':{'id':_0x48f7cd['params']['id']}},_0xefe7e8={};_0xefe7e8[_0x0825('0x3c')]=_[_0x0825('0x51')](db[_0x0825('0x38')][_0x0825('0x39')]);_0xefe7e8[_0x0825('0x3d')]=_[_0x0825('0x51')](_0x48f7cd[_0x0825('0x3d')]);_0xefe7e8['filters']=_['intersection'](_0xefe7e8[_0x0825('0x3c')],_0xefe7e8[_0x0825('0x3d')]);_0x1cf914['attributes']=_[_0x0825('0x3f')](_0xefe7e8[_0x0825('0x3c')],qs[_0x0825('0x40')](_0x48f7cd[_0x0825('0x3d')][_0x0825('0x40')]));_0x1cf914[_0x0825('0x3e')]=_0x1cf914['attributes']['length']?_0x1cf914[_0x0825('0x3e')]:_0xefe7e8[_0x0825('0x3c')];if(_0x48f7cd[_0x0825('0x3d')][_0x0825('0x4c')]){_0x1cf914[_0x0825('0x4d')]=[{'all':!![]}];}_0x1cf914=_[_0x0825('0x49')]({},_0x1cf914,_0x48f7cd['options']);return db[_0x0825('0x38')][_0x0825('0x52')](_0x1cf914)[_0x0825('0x31')](handleEntityNotFound(_0x2021e8,null))['then'](respondWithResult(_0x2021e8,null))['catch'](handleError(_0x2021e8,null));};exports['update']=function(_0x5dd65c,_0x3d0d3c){if(_0x5dd65c[_0x0825('0x53')]['id']){delete _0x5dd65c['body']['id'];}return db[_0x0825('0x38')][_0x0825('0x52')]({'where':{'id':_0x5dd65c[_0x0825('0x54')]['id']}})['then'](handleEntityNotFound(_0x3d0d3c,null))[_0x0825('0x31')](saveUpdates(_0x5dd65c[_0x0825('0x53')],null))['then'](respondWithResult(_0x3d0d3c,null))[_0x0825('0x25')](handleError(_0x3d0d3c,null));};exports[_0x0825('0x55')]=function(_0x376c32,_0x48221d,_0x5b1cb8){if(_0x376c32[_0x0825('0x56')]&&_0x376c32[_0x0825('0x56')][_0x0825('0x57')]){_0x376c32[_0x0825('0x53')]['logo']=_0x376c32[_0x0825('0x56')]['filename'];}return db[_0x0825('0x38')]['find']({'where':{'id':_0x376c32['params']['id']}})[_0x0825('0x31')](handleEntityNotFound(_0x48221d,null))[_0x0825('0x31')](saveUpdates(_0x376c32['body'],null))['then'](respondWithResult(_0x48221d,null))[_0x0825('0x25')](handleError(_0x48221d,null));};exports[_0x0825('0x58')]=function(_0x206087,_0x3ecad4,_0x182cd9){if(_0x206087[_0x0825('0x56')]&&_0x206087[_0x0825('0x56')]['filename']){_0x206087['body']['loginLogo']=_0x206087[_0x0825('0x56')][_0x0825('0x57')];}return db[_0x0825('0x38')][_0x0825('0x52')]({'where':{'id':_0x206087[_0x0825('0x54')]['id']}})['then'](handleEntityNotFound(_0x3ecad4,null))[_0x0825('0x31')](saveUpdates(_0x206087['body'],null))[_0x0825('0x31')](respondWithResult(_0x3ecad4,null))[_0x0825('0x25')](handleError(_0x3ecad4,null));};var utilLicense=require(_0x0825('0x17'));exports['getLogo']=function(_0x55ae16,_0x2411cc,_0x4e2721){var _0x26ae81=_0x0825('0x59');var _0x9207cd={'custom':![]};return utilLicense[_0x0825('0x5a')]()['then'](function(_0x5de403){if(_0x5de403){_0x9207cd=_0x5de403;}return db['Setting'][_0x0825('0x52')]({'where':{'id':_0x55ae16[_0x0825('0x54')]['id']},'attributes':[_0x0825('0x5b'),'loginLogo',_0x0825('0x5c'),_0x0825('0x5d'),'defaultLogo',_0x0825('0x5e'),'defaultPreferred','defaultFavicon'],'raw':!![]});})[_0x0825('0x31')](handleEntityNotFound(_0x2411cc,null))['then'](function(_0x237b7a){if(_0x237b7a){var _0x127c04=_0x237b7a[_0x0825('0x5b')]&&fs[_0x0825('0x5f')](path[_0x0825('0x60')](config['root'],_0x26ae81,_[_0x0825('0x61')](_0x237b7a[_0x0825('0x5b')])))?path[_0x0825('0x60')](config['root'],_0x26ae81,_['toLower'](_0x237b7a[_0x0825('0x5b')])):path[_0x0825('0x60')](config[_0x0825('0x62')],_0x26ae81,_[_0x0825('0x61')]('default_logo.svg'));var _0x22dc3a=_0x0825('0x63')+_[_0x0825('0x64')]('logo');if(_0x237b7a[_0x22dc3a]||!_0x9207cd[_0x0825('0x65')]){_0x127c04=path['join'](config[_0x0825('0x62')],_0x26ae81,_[_0x0825('0x61')](_0x0825('0x66')));}if(!fs[_0x0825('0x5f')](_0x127c04)){throw new db[(_0x0825('0x67'))][(_0x0825('0x68'))](_[_0x0825('0x64')](_0x0825('0x5b'))+'\x20not\x20found');}return _0x2411cc[_0x0825('0x69')](_0x127c04);}})['catch'](handleError(_0x2411cc,null));};var utilLicense=require(_0x0825('0x17'));exports[_0x0825('0x6a')]=function(_0x466288,_0x5f1eb8,_0x300493){var _0x17618c=_0x0825('0x59');var _0x3f8587={'custom':![]};return utilLicense[_0x0825('0x5a')]()[_0x0825('0x31')](function(_0x33d2ac){if(_0x33d2ac){_0x3f8587=_0x33d2ac;}return db['Setting']['find']({'where':{'id':_0x466288['params']['id']},'attributes':[_0x0825('0x5b'),_0x0825('0x6b'),_0x0825('0x5c'),_0x0825('0x5d'),_0x0825('0x6c'),_0x0825('0x5e'),_0x0825('0x6d'),_0x0825('0x6e')],'raw':!![]});})[_0x0825('0x31')](handleEntityNotFound(_0x5f1eb8,null))['then'](function(_0x4eae3b){if(_0x4eae3b){var _0x30d08d=_0x4eae3b[_0x0825('0x6b')]&&fs[_0x0825('0x5f')](path[_0x0825('0x60')](config[_0x0825('0x62')],_0x17618c,_[_0x0825('0x61')](_0x4eae3b[_0x0825('0x6b')])))?path[_0x0825('0x60')](config['root'],_0x17618c,_[_0x0825('0x61')](_0x4eae3b[_0x0825('0x6b')])):path[_0x0825('0x60')](config[_0x0825('0x62')],_0x17618c,_[_0x0825('0x61')](_0x0825('0x6f')));var _0x15f9b2=_0x0825('0x63')+_[_0x0825('0x64')]('loginLogo');if(_0x4eae3b[_0x15f9b2]||!_0x3f8587[_0x0825('0x65')]){_0x30d08d=path[_0x0825('0x60')](config[_0x0825('0x62')],_0x17618c,_[_0x0825('0x61')](_0x0825('0x6f')));}if(!fs[_0x0825('0x5f')](_0x30d08d)){throw new db['Sequelize']['ValidationError'](_[_0x0825('0x64')]('loginLogo')+'\x20not\x20found');}return _0x5f1eb8['download'](_0x30d08d);}})[_0x0825('0x25')](handleError(_0x5f1eb8,null));};exports[_0x0825('0x70')]=function(_0x112361,_0x202f04){return db[_0x0825('0x38')][_0x0825('0x52')]({'where':{'id':_0x112361[_0x0825('0x54')]['id']},'attributes':[_0x0825('0x71')]})['then'](respondWithResult(_0x202f04,null))[_0x0825('0x25')](handleError(_0x202f04,null));};exports[_0x0825('0x72')]=function(_0x29b416,_0x3fc049,_0x2eb55a){if(_0x29b416[_0x0825('0x56')]&&_0x29b416['file']['filename']){_0x29b416['body']['preferred']=_0x29b416[_0x0825('0x56')][_0x0825('0x57')];}return db[_0x0825('0x38')][_0x0825('0x52')]({'where':{'id':_0x29b416['params']['id']}})[_0x0825('0x31')](handleEntityNotFound(_0x3fc049,null))[_0x0825('0x31')](saveUpdates(_0x29b416['body'],null))[_0x0825('0x31')](respondWithResult(_0x3fc049,null))[_0x0825('0x25')](handleError(_0x3fc049,null));};var utilLicense=require(_0x0825('0x17'));exports[_0x0825('0x73')]=function(_0x36ce55,_0x3b62ce,_0x69afe8){var _0x28a9e5=_0x0825('0x59');var _0x183767={'custom':![]};return utilLicense['getLicense']()[_0x0825('0x31')](function(_0x4ff5b0){if(_0x4ff5b0){_0x183767=_0x4ff5b0;}return db['Setting'][_0x0825('0x52')]({'where':{'id':_0x36ce55[_0x0825('0x54')]['id']},'attributes':[_0x0825('0x5b'),'loginLogo',_0x0825('0x5c'),'favicon','defaultLogo',_0x0825('0x5e'),_0x0825('0x6d'),_0x0825('0x6e')],'raw':!![]});})['then'](handleEntityNotFound(_0x3b62ce,null))[_0x0825('0x31')](function(_0x6c7674){if(_0x6c7674){var _0x507f2d=_0x6c7674[_0x0825('0x5c')]&&fs['existsSync'](path[_0x0825('0x60')](config['root'],_0x28a9e5,_[_0x0825('0x61')](_0x6c7674['preferred'])))?path[_0x0825('0x60')](config['root'],_0x28a9e5,_[_0x0825('0x61')](_0x6c7674[_0x0825('0x5c')])):path[_0x0825('0x60')](config['root'],_0x28a9e5,_[_0x0825('0x61')](_0x0825('0x74')));var _0x408754='default'+_[_0x0825('0x64')](_0x0825('0x5c'));if(_0x6c7674[_0x408754]||!_0x183767[_0x0825('0x65')]||!_0x183767[_0x0825('0x5c')]){_0x507f2d=path[_0x0825('0x60')](config[_0x0825('0x62')],_0x28a9e5,_['toLower'](_0x0825('0x74')));}if(!fs[_0x0825('0x5f')](_0x507f2d)){throw new db[(_0x0825('0x67'))][(_0x0825('0x68'))](_['upperFirst'](_0x0825('0x5c'))+'\x20not\x20found');}return _0x3b62ce[_0x0825('0x69')](_0x507f2d);}})['catch'](handleError(_0x3b62ce,null));};exports[_0x0825('0x75')]=function(_0x2bacb3,_0x3df29c,_0x38d021){if(_0x2bacb3[_0x0825('0x56')]&&_0x2bacb3[_0x0825('0x56')][_0x0825('0x57')]){_0x2bacb3['body'][_0x0825('0x5d')]=_0x2bacb3['file'][_0x0825('0x57')];}return db[_0x0825('0x38')][_0x0825('0x52')]({'where':{'id':_0x2bacb3[_0x0825('0x54')]['id']}})['then'](handleEntityNotFound(_0x3df29c,null))[_0x0825('0x31')](saveUpdates(_0x2bacb3[_0x0825('0x53')],null))['then'](respondWithResult(_0x3df29c,null))[_0x0825('0x25')](handleError(_0x3df29c,null));};var utilLicense=require(_0x0825('0x17'));exports['getFavicon']=function(_0x478e17,_0x33ebf4,_0x5cec60){var _0x285920='server/files/images/logos';var _0x3a9248={'custom':![]};return utilLicense[_0x0825('0x5a')]()[_0x0825('0x31')](function(_0x11536b){if(_0x11536b){_0x3a9248=_0x11536b;}return db[_0x0825('0x38')]['find']({'where':{'id':_0x478e17[_0x0825('0x54')]['id']},'attributes':[_0x0825('0x5b'),'loginLogo',_0x0825('0x5c'),_0x0825('0x5d'),_0x0825('0x6c'),_0x0825('0x5e'),_0x0825('0x6d'),'defaultFavicon'],'raw':!![]});})[_0x0825('0x31')](handleEntityNotFound(_0x33ebf4,null))[_0x0825('0x31')](function(_0x207cdc){if(_0x207cdc){var _0x564aa4=_0x207cdc['favicon']&&fs[_0x0825('0x5f')](path[_0x0825('0x60')](config[_0x0825('0x62')],_0x285920,_[_0x0825('0x61')](_0x207cdc['favicon'])))?path[_0x0825('0x60')](config[_0x0825('0x62')],_0x285920,_[_0x0825('0x61')](_0x207cdc[_0x0825('0x5d')])):path['join'](config[_0x0825('0x62')],_0x285920,_['toLower'](_0x0825('0x76')));var _0x465b8f=_0x0825('0x63')+_[_0x0825('0x64')](_0x0825('0x5d'));if(_0x207cdc[_0x465b8f]||!_0x3a9248['custom']){_0x564aa4=path['join'](config[_0x0825('0x62')],_0x285920,_[_0x0825('0x61')](_0x0825('0x76')));}if(!fs[_0x0825('0x5f')](_0x564aa4)){throw new db[(_0x0825('0x67'))]['ValidationError'](_[_0x0825('0x64')](_0x0825('0x5d'))+_0x0825('0x77'));}return _0x33ebf4[_0x0825('0x69')](_0x564aa4);}})[_0x0825('0x25')](handleError(_0x33ebf4,null));};exports[_0x0825('0x78')]=function(_0x12e699,_0x5d8b52){var _0x33218f={'offset':moment()[_0x0825('0x79')]()};_0x33218f[_0x0825('0x7a')]=moment()[_0x0825('0x79')](_0x33218f[_0x0825('0x29')])['format'](_0x0825('0x7b'));return _0x5d8b52[_0x0825('0x26')](0xc8)[_0x0825('0x7c')](_0x33218f);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x34e8=['settings','lodash','util','../../config/logger','api','bluebird','request-promise','path','rimraf','../../config/environment','./setting.attributes','exports','Setting'];(function(_0x49944d,_0x3497ba){var _0x1b3182=function(_0x3072d8){while(--_0x3072d8){_0x49944d['push'](_0x49944d['shift']());}};_0x1b3182(++_0x3497ba);}(_0x34e8,0x12c));var _0x834e=function(_0x347bf6,_0x32ed40){_0x347bf6=_0x347bf6-0x0;var _0x41ef62=_0x34e8[_0x347bf6];return _0x41ef62;};'use strict';var _=require(_0x834e('0x0'));var util=require(_0x834e('0x1'));var logger=require(_0x834e('0x2'))(_0x834e('0x3'));var moment=require('moment');var BPromise=require(_0x834e('0x4'));var rp=require(_0x834e('0x5'));var fs=require('fs');var path=require(_0x834e('0x6'));var rimraf=require(_0x834e('0x7'));var config=require(_0x834e('0x8'));var attributes=require(_0x834e('0x9'));module[_0x834e('0xa')]=function(_0x4a2018,_0x858aa1){return _0x4a2018['define'](_0x834e('0xb'),attributes,{'tableName':_0x834e('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x008c=['define','settings','lodash','util','../../config/logger','api','moment','request-promise','path','rimraf','../../config/environment','./setting.attributes','exports'];(function(_0x2b012b,_0x463e28){var _0x32c4cf=function(_0x5871f2){while(--_0x5871f2){_0x2b012b['push'](_0x2b012b['shift']());}};_0x32c4cf(++_0x463e28);}(_0x008c,0x188));var _0xc008=function(_0x368dbc,_0x1b3ddc){_0x368dbc=_0x368dbc-0x0;var _0x257b6b=_0x008c[_0x368dbc];return _0x257b6b;};'use strict';var _=require(_0xc008('0x0'));var util=require(_0xc008('0x1'));var logger=require(_0xc008('0x2'))(_0xc008('0x3'));var moment=require(_0xc008('0x4'));var BPromise=require('bluebird');var rp=require(_0xc008('0x5'));var fs=require('fs');var path=require(_0xc008('0x6'));var rimraf=require(_0xc008('0x7'));var config=require(_0xc008('0x8'));var attributes=require(_0xc008('0x9'));module[_0xc008('0xa')]=function(_0x13aa7,_0x39bb5e){return _0x13aa7[_0xc008('0xb')]('Setting',attributes,{'tableName':_0xc008('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1608=['attributes','include','map','model','util','moment','bluebird','randomstring','../../mysqldb','../../config/logger','rpc','http','request','then','Setting,\x20%s,\x20%s','request\x20sent','debug','Setting,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','ShowSetting','Setting','options','where'];(function(_0x41f0ca,_0x12505a){var _0x18387e=function(_0x35f2bc){while(--_0x35f2bc){_0x41f0ca['push'](_0x41f0ca['shift']());}};_0x18387e(++_0x12505a);}(_0x1608,0x170));var _0x8160=function(_0x388e4d,_0x451bd0){_0x388e4d=_0x388e4d-0x0;var _0xd3a00d=_0x1608[_0x388e4d];return _0xd3a00d;};'use strict';var _=require('lodash');var util=require(_0x8160('0x0'));var moment=require(_0x8160('0x1'));var BPromise=require(_0x8160('0x2'));var rs=require(_0x8160('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x8160('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x8160('0x5'))(_0x8160('0x6'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson['client'][_0x8160('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x12507d,_0x1ed2d7,_0x576aeb){return new BPromise(function(_0x49893c,_0x388eb8){return client[_0x8160('0x8')](_0x12507d,_0x576aeb)[_0x8160('0x9')](function(_0x66b388){logger['info'](_0x8160('0xa'),_0x1ed2d7,_0x8160('0xb'));logger[_0x8160('0xc')](_0x8160('0xd'),_0x1ed2d7,_0x8160('0xb'),JSON[_0x8160('0xe')](_0x66b388));if(_0x66b388[_0x8160('0xf')]){if(_0x66b388[_0x8160('0xf')][_0x8160('0x10')]===0x1f4){logger[_0x8160('0xf')]('Setting,\x20%s,\x20%s',_0x1ed2d7,_0x66b388[_0x8160('0xf')]['message']);return _0x388eb8(_0x66b388['error'][_0x8160('0x11')]);}logger[_0x8160('0xf')](_0x8160('0xa'),_0x1ed2d7,_0x66b388[_0x8160('0xf')][_0x8160('0x11')]);return _0x49893c(_0x66b388[_0x8160('0xf')][_0x8160('0x11')]);}else{logger[_0x8160('0x12')](_0x8160('0xa'),_0x1ed2d7,_0x8160('0xb'));_0x49893c(_0x66b388[_0x8160('0x13')]['message']);}})['catch'](function(_0x11c77f){logger[_0x8160('0xf')]('Setting,\x20%s,\x20%s',_0x1ed2d7,_0x11c77f);_0x388eb8(_0x11c77f);});});}exports[_0x8160('0x14')]=function(_0x437b3e){var _0x3a74ff=this;return new Promise(function(_0x20a4bb,_0x428cb9){return db[_0x8160('0x15')]['find']({'raw':_0x437b3e[_0x8160('0x16')]?_0x437b3e[_0x8160('0x16')]['raw']===undefined?!![]:![]:!![],'where':_0x437b3e[_0x8160('0x16')]?_0x437b3e[_0x8160('0x16')][_0x8160('0x17')]||null:null,'attributes':_0x437b3e[_0x8160('0x16')]?_0x437b3e[_0x8160('0x16')][_0x8160('0x18')]||null:null,'include':_0x437b3e[_0x8160('0x16')]?_0x437b3e[_0x8160('0x16')][_0x8160('0x19')]?_[_0x8160('0x1a')](_0x437b3e[_0x8160('0x16')][_0x8160('0x19')],function(_0x3f614f){return{'model':db[_0x3f614f[_0x8160('0x1b')]],'as':_0x3f614f['as'],'attributes':_0x3f614f['attributes'],'include':_0x3f614f[_0x8160('0x19')]?_[_0x8160('0x1a')](_0x3f614f[_0x8160('0x19')],function(_0x5d569b){return{'model':db[_0x5d569b[_0x8160('0x1b')]],'as':_0x5d569b['as'],'attributes':_0x5d569b[_0x8160('0x18')],'include':_0x5d569b[_0x8160('0x19')]?_[_0x8160('0x1a')](_0x5d569b[_0x8160('0x19')],function(_0x37a303){return{'model':db[_0x37a303[_0x8160('0x1b')]],'as':_0x37a303['as'],'attributes':_0x37a303[_0x8160('0x18')]};}):[]};}):[]};}):[]:[]})[_0x8160('0x9')](function(_0x4b3246){logger[_0x8160('0x12')](_0x8160('0x14'),_0x437b3e);logger[_0x8160('0xc')](_0x8160('0x14'),_0x437b3e,JSON['stringify'](_0x4b3246));_0x20a4bb(_0x4b3246);})['catch'](function(_0x122d2f){logger[_0x8160('0xf')](_0x8160('0x14'),_0x122d2f[_0x8160('0x11')],_0x437b3e);_0x428cb9(_0x3a74ff[_0x8160('0xf')](0x1f4,_0x122d2f[_0x8160('0x11')]));});});};
\ No newline at end of file
+var _0x278f=['moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','client','http','request','then','info','request\x20sent','debug','stringify','error','message','Setting,\x20%s,\x20%s','catch','ShowSetting','Setting','find','options','attributes','include','map','model','util'];(function(_0x1d3791,_0x51c613){var _0x40fbf5=function(_0xe5d147){while(--_0xe5d147){_0x1d3791['push'](_0x1d3791['shift']());}};_0x40fbf5(++_0x51c613);}(_0x278f,0x195));var _0xf278=function(_0x439fea,_0x5ce1c6){_0x439fea=_0x439fea-0x0;var _0x443b34=_0x278f[_0x439fea];return _0x443b34;};'use strict';var _=require('lodash');var util=require(_0xf278('0x0'));var moment=require(_0xf278('0x1'));var BPromise=require(_0xf278('0x2'));var rs=require(_0xf278('0x3'));var fs=require('fs');var Redis=require(_0xf278('0x4'));var db=require(_0xf278('0x5'))['db'];var utils=require(_0xf278('0x6'));var logger=require('../../config/logger')(_0xf278('0x7'));var config=require(_0xf278('0x8'));var jayson=require('jayson/promise');var client=jayson[_0xf278('0x9')][_0xf278('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x10b43b,_0x3ee230,_0x37495b){return new BPromise(function(_0x6e10af,_0x40beb9){return client[_0xf278('0xb')](_0x10b43b,_0x37495b)[_0xf278('0xc')](function(_0x5ac15e){logger[_0xf278('0xd')]('Setting,\x20%s,\x20%s',_0x3ee230,_0xf278('0xe'));logger[_0xf278('0xf')]('Setting,\x20%s,\x20%s,\x20%s',_0x3ee230,_0xf278('0xe'),JSON[_0xf278('0x10')](_0x5ac15e));if(_0x5ac15e['error']){if(_0x5ac15e['error']['code']===0x1f4){logger[_0xf278('0x11')]('Setting,\x20%s,\x20%s',_0x3ee230,_0x5ac15e['error'][_0xf278('0x12')]);return _0x40beb9(_0x5ac15e[_0xf278('0x11')]['message']);}logger[_0xf278('0x11')](_0xf278('0x13'),_0x3ee230,_0x5ac15e['error'][_0xf278('0x12')]);return _0x6e10af(_0x5ac15e[_0xf278('0x11')][_0xf278('0x12')]);}else{logger[_0xf278('0xd')](_0xf278('0x13'),_0x3ee230,_0xf278('0xe'));_0x6e10af(_0x5ac15e['result']['message']);}})[_0xf278('0x14')](function(_0x1747f9){logger['error'](_0xf278('0x13'),_0x3ee230,_0x1747f9);_0x40beb9(_0x1747f9);});});}exports[_0xf278('0x15')]=function(_0x15f7b9){var _0x11255f=this;return new Promise(function(_0xa12ece,_0x1805b7){return db[_0xf278('0x16')][_0xf278('0x17')]({'raw':_0x15f7b9[_0xf278('0x18')]?_0x15f7b9[_0xf278('0x18')]['raw']===undefined?!![]:![]:!![],'where':_0x15f7b9[_0xf278('0x18')]?_0x15f7b9[_0xf278('0x18')]['where']||null:null,'attributes':_0x15f7b9['options']?_0x15f7b9['options'][_0xf278('0x19')]||null:null,'include':_0x15f7b9[_0xf278('0x18')]?_0x15f7b9[_0xf278('0x18')][_0xf278('0x1a')]?_[_0xf278('0x1b')](_0x15f7b9[_0xf278('0x18')][_0xf278('0x1a')],function(_0x3e1552){return{'model':db[_0x3e1552[_0xf278('0x1c')]],'as':_0x3e1552['as'],'attributes':_0x3e1552['attributes'],'include':_0x3e1552[_0xf278('0x1a')]?_['map'](_0x3e1552[_0xf278('0x1a')],function(_0x1dd2f1){return{'model':db[_0x1dd2f1[_0xf278('0x1c')]],'as':_0x1dd2f1['as'],'attributes':_0x1dd2f1[_0xf278('0x19')],'include':_0x1dd2f1[_0xf278('0x1a')]?_['map'](_0x1dd2f1[_0xf278('0x1a')],function(_0x27c831){return{'model':db[_0x27c831[_0xf278('0x1c')]],'as':_0x27c831['as'],'attributes':_0x27c831[_0xf278('0x19')]};}):[]};}):[]};}):[]:[]})[_0xf278('0xc')](function(_0x347d51){logger[_0xf278('0xd')](_0xf278('0x15'),_0x15f7b9);logger['debug']('ShowSetting',_0x15f7b9,JSON[_0xf278('0x10')](_0x347d51));_0xa12ece(_0x347d51);})[_0xf278('0x14')](function(_0x536b7e){logger[_0xf278('0x11')]('ShowSetting',_0x536b7e[_0xf278('0x12')],_0x15f7b9);_0x1805b7(_0x11255f[_0xf278('0x11')](0x1f4,_0x536b7e[_0xf278('0x12')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7217=['/:id/send','status','put','update','delete','removeDispositions','removeAnswers','multer','path','connect-timeout','express','Router','fs-extra','../../config/environment','./smsAccount.controller','get','isAuthenticated','index','/describe','describe','/:id','show','/:id/dispositions','getDispositions','/:id/canned_answers','getAnswers','/:id/applications','/:id/interactions','getInteractions','/:id/status','statusGet','/:id/users','create','post','/:id/notify','notify','addApplications'];(function(_0x432682,_0x253044){var _0x463d05=function(_0xa73403){while(--_0xa73403){_0x432682['push'](_0x432682['shift']());}};_0x463d05(++_0x253044);}(_0x7217,0x19e));var _0x7721=function(_0x4243a3,_0x447337){_0x4243a3=_0x4243a3-0x0;var _0x1b2a33=_0x7217[_0x4243a3];return _0x1b2a33;};'use strict';var multer=require(_0x7721('0x0'));var util=require('util');var path=require(_0x7721('0x1'));var timeout=require(_0x7721('0x2'));var express=require(_0x7721('0x3'));var router=express[_0x7721('0x4')]();var fs_extra=require(_0x7721('0x5'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x7721('0x6'));var controller=require(_0x7721('0x7'));router[_0x7721('0x8')]('/',auth[_0x7721('0x9')](),controller[_0x7721('0xa')]);router[_0x7721('0x8')](_0x7721('0xb'),auth[_0x7721('0x9')](),controller[_0x7721('0xc')]);router[_0x7721('0x8')](_0x7721('0xd'),auth[_0x7721('0x9')](),controller[_0x7721('0xe')]);router[_0x7721('0x8')](_0x7721('0xf'),auth['isAuthenticated'](),controller[_0x7721('0x10')]);router[_0x7721('0x8')](_0x7721('0x11'),auth[_0x7721('0x9')](),controller[_0x7721('0x12')]);router[_0x7721('0x8')](_0x7721('0x13'),auth[_0x7721('0x9')](),controller['getApplications']);router[_0x7721('0x8')](_0x7721('0x14'),auth['isAuthenticated'](),controller[_0x7721('0x15')]);router[_0x7721('0x8')](_0x7721('0x16'),controller[_0x7721('0x17')]);router['get'](_0x7721('0x18'),auth[_0x7721('0x9')](),controller['getAgents']);router['post']('/',auth['isAuthenticated'](),controller[_0x7721('0x19')]);router[_0x7721('0x1a')](_0x7721('0xf'),auth[_0x7721('0x9')](),controller['addDisposition']);router[_0x7721('0x1a')]('/:id/canned_answers',auth[_0x7721('0x9')](),controller['addAnswer']);router[_0x7721('0x1a')](_0x7721('0x1b'),controller[_0x7721('0x1c')]);router[_0x7721('0x1a')](_0x7721('0x13'),auth[_0x7721('0x9')](),controller[_0x7721('0x1d')]);router[_0x7721('0x1a')](_0x7721('0x1e'),auth[_0x7721('0x9')](),controller['send']);router[_0x7721('0x1a')](_0x7721('0x16'),controller[_0x7721('0x1f')]);router[_0x7721('0x1a')]('/:id/users',auth[_0x7721('0x9')](),controller['addAgents']);router[_0x7721('0x20')](_0x7721('0xd'),auth[_0x7721('0x9')](),controller[_0x7721('0x21')]);router[_0x7721('0x22')](_0x7721('0xd'),auth[_0x7721('0x9')](),controller['destroy']);router[_0x7721('0x22')](_0x7721('0xf'),auth[_0x7721('0x9')](),controller[_0x7721('0x23')]);router[_0x7721('0x22')](_0x7721('0x11'),auth[_0x7721('0x9')](),controller[_0x7721('0x24')]);router[_0x7721('0x22')]('/:id/users',auth[_0x7721('0x9')](),controller['removeAgents']);module['exports']=router;
\ No newline at end of file
+var _0xe14b=['./smsAccount.controller','get','isAuthenticated','index','/describe','show','/:id/dispositions','/:id/canned_answers','getAnswers','/:id/applications','getApplications','/:id/interactions','getInteractions','/:id/status','statusGet','getAgents','post','create','addDisposition','addAnswer','/:id/notify','notify','addApplications','/:id/send','send','put','update','/:id','destroy','removeDispositions','delete','/:id/users','removeAgents','multer','util','express','Router','../../components/auth/service'];(function(_0x3ef8f7,_0x35359a){var _0x3b097e=function(_0x189c92){while(--_0x189c92){_0x3ef8f7['push'](_0x3ef8f7['shift']());}};_0x3b097e(++_0x35359a);}(_0xe14b,0x93));var _0xbe14=function(_0xe81df8,_0x3e4348){_0xe81df8=_0xe81df8-0x0;var _0xdfe5b1=_0xe14b[_0xe81df8];return _0xdfe5b1;};'use strict';var multer=require(_0xbe14('0x0'));var util=require(_0xbe14('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0xbe14('0x2'));var router=express[_0xbe14('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0xbe14('0x4'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0xbe14('0x5'));router[_0xbe14('0x6')]('/',auth[_0xbe14('0x7')](),controller[_0xbe14('0x8')]);router[_0xbe14('0x6')](_0xbe14('0x9'),auth[_0xbe14('0x7')](),controller['describe']);router['get']('/:id',auth[_0xbe14('0x7')](),controller[_0xbe14('0xa')]);router[_0xbe14('0x6')](_0xbe14('0xb'),auth['isAuthenticated'](),controller['getDispositions']);router[_0xbe14('0x6')](_0xbe14('0xc'),auth['isAuthenticated'](),controller[_0xbe14('0xd')]);router[_0xbe14('0x6')](_0xbe14('0xe'),auth[_0xbe14('0x7')](),controller[_0xbe14('0xf')]);router[_0xbe14('0x6')](_0xbe14('0x10'),auth[_0xbe14('0x7')](),controller[_0xbe14('0x11')]);router[_0xbe14('0x6')](_0xbe14('0x12'),controller[_0xbe14('0x13')]);router[_0xbe14('0x6')]('/:id/users',auth['isAuthenticated'](),controller[_0xbe14('0x14')]);router[_0xbe14('0x15')]('/',auth[_0xbe14('0x7')](),controller[_0xbe14('0x16')]);router['post'](_0xbe14('0xb'),auth[_0xbe14('0x7')](),controller[_0xbe14('0x17')]);router[_0xbe14('0x15')](_0xbe14('0xc'),auth[_0xbe14('0x7')](),controller[_0xbe14('0x18')]);router['post'](_0xbe14('0x19'),controller[_0xbe14('0x1a')]);router[_0xbe14('0x15')](_0xbe14('0xe'),auth[_0xbe14('0x7')](),controller[_0xbe14('0x1b')]);router['post'](_0xbe14('0x1c'),auth[_0xbe14('0x7')](),controller[_0xbe14('0x1d')]);router[_0xbe14('0x15')](_0xbe14('0x12'),controller['status']);router[_0xbe14('0x15')]('/:id/users',auth[_0xbe14('0x7')](),controller['addAgents']);router[_0xbe14('0x1e')]('/:id',auth[_0xbe14('0x7')](),controller[_0xbe14('0x1f')]);router['delete'](_0xbe14('0x20'),auth['isAuthenticated'](),controller[_0xbe14('0x21')]);router['delete'](_0xbe14('0xb'),auth[_0xbe14('0x7')](),controller[_0xbe14('0x22')]);router[_0xbe14('0x23')](_0xbe14('0xc'),auth[_0xbe14('0x7')](),controller['removeAnswers']);router[_0xbe14('0x23')](_0xbe14('0x24'),auth[_0xbe14('0x7')](),controller[_0xbe14('0x25')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3955=['TEXT','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}','INTEGER','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','setDataValue','mandatoryDispositionPauseId','mandatoryDisposition','sequelize','STRING','name','generate','twilio','skebby','clicksend','plivo','clickatell','bandwidth','csc','intelepeer','ENUM','BOOLEAN'];(function(_0xc3aae7,_0x3bfa91){var _0x1f365a=function(_0x465838){while(--_0x465838){_0xc3aae7['push'](_0xc3aae7['shift']());}};_0x1f365a(++_0x3bfa91);}(_0x3955,0x1aa));var _0x5395=function(_0x1c89ec,_0x33ab83){_0x1c89ec=_0x1c89ec-0x0;var _0x2ef9c5=_0x3955[_0x1c89ec];return _0x2ef9c5;};'use strict';var Sequelize=require(_0x5395('0x0'));var rs=require('randomstring');module['exports']={'name':{'type':Sequelize[_0x5395('0x1')],'unique':_0x5395('0x2'),'allowNull':![]},'key':{'type':Sequelize[_0x5395('0x1')],'allowNull':![]},'remote':{'type':Sequelize[_0x5395('0x1')],'allowNull':![]},'token':{'type':Sequelize[_0x5395('0x1')],'defaultValue':function(){return rs[_0x5395('0x3')]();}},'phone':{'type':Sequelize[_0x5395('0x1')]},'type':{'type':Sequelize['ENUM'](_0x5395('0x4'),_0x5395('0x5'),'connectel',_0x5395('0x6'),_0x5395('0x7'),_0x5395('0x8'),_0x5395('0x9'),_0x5395('0xa'),'infobip',_0x5395('0xb'))},'accountSid':{'type':Sequelize[_0x5395('0x1')]},'authId':{'type':Sequelize[_0x5395('0x1')]},'authToken':{'type':Sequelize['STRING']},'smsMethod':{'type':Sequelize[_0x5395('0xc')]('SI','TI','GP')},'username':{'type':Sequelize[_0x5395('0x1')]},'password':{'type':Sequelize[_0x5395('0x1')]},'apiKey':{'type':Sequelize[_0x5395('0x1')]},'applicationId':{'type':Sequelize[_0x5395('0x1')]},'accountId':{'type':Sequelize[_0x5395('0x1')]},'senderString':{'type':Sequelize['STRING']},'deliveryReport':{'type':Sequelize[_0x5395('0xd')],'defaultValue':![]},'description':{'type':Sequelize[_0x5395('0x1')]},'notificationTemplate':{'type':Sequelize[_0x5395('0xe')],'defaultValue':function(){return _0x5395('0xf');}},'notificationSound':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'notificationShake':{'type':Sequelize[_0x5395('0xd')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize[_0x5395('0x10')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize[_0x5395('0xd')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0x5395('0x10')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0x5395('0xd')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0x5395('0x10')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'baseUrl':{'type':Sequelize[_0x5395('0x1')]},'mandatoryDispositionPauseId':{'type':Sequelize[_0x5395('0x10')],'comment':_0x5395('0x11')},'mandatoryDisposition':{'type':Sequelize['BOOLEAN'],'defaultValue':![],'comment':_0x5395('0x12'),'set':function(_0x6cd900){if(!_0x6cd900)this[_0x5395('0x13')](_0x5395('0x14'),null);this[_0x5395('0x13')](_0x5395('0x15'),_0x6cd900);}}};
\ No newline at end of file
+var _0x171b=['clickatell','bandwidth','csc','infobip','intelepeer','BOOLEAN','INTEGER','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','setDataValue','mandatoryDispositionPauseId','sequelize','exports','name','STRING','generate','ENUM','twilio','skebby','connectel','clicksend','plivo'];(function(_0x5d2104,_0x18fbfc){var _0x1b3953=function(_0x35a5bf){while(--_0x35a5bf){_0x5d2104['push'](_0x5d2104['shift']());}};_0x1b3953(++_0x18fbfc);}(_0x171b,0x155));var _0xb171=function(_0x1dd5a7,_0x18d427){_0x1dd5a7=_0x1dd5a7-0x0;var _0x5d3577=_0x171b[_0x1dd5a7];return _0x5d3577;};'use strict';var Sequelize=require(_0xb171('0x0'));var rs=require('randomstring');module[_0xb171('0x1')]={'name':{'type':Sequelize['STRING'],'unique':_0xb171('0x2'),'allowNull':![]},'key':{'type':Sequelize['STRING'],'allowNull':![]},'remote':{'type':Sequelize[_0xb171('0x3')],'allowNull':![]},'token':{'type':Sequelize[_0xb171('0x3')],'defaultValue':function(){return rs[_0xb171('0x4')]();}},'phone':{'type':Sequelize[_0xb171('0x3')]},'type':{'type':Sequelize[_0xb171('0x5')](_0xb171('0x6'),_0xb171('0x7'),_0xb171('0x8'),_0xb171('0x9'),_0xb171('0xa'),_0xb171('0xb'),_0xb171('0xc'),_0xb171('0xd'),_0xb171('0xe'),_0xb171('0xf'))},'accountSid':{'type':Sequelize[_0xb171('0x3')]},'authId':{'type':Sequelize[_0xb171('0x3')]},'authToken':{'type':Sequelize['STRING']},'smsMethod':{'type':Sequelize[_0xb171('0x5')]('SI','TI','GP')},'username':{'type':Sequelize[_0xb171('0x3')]},'password':{'type':Sequelize[_0xb171('0x3')]},'apiKey':{'type':Sequelize[_0xb171('0x3')]},'applicationId':{'type':Sequelize['STRING']},'accountId':{'type':Sequelize[_0xb171('0x3')]},'senderString':{'type':Sequelize[_0xb171('0x3')]},'deliveryReport':{'type':Sequelize[_0xb171('0x10')],'defaultValue':![]},'description':{'type':Sequelize[_0xb171('0x3')]},'notificationTemplate':{'type':Sequelize['TEXT'],'defaultValue':function(){return'Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}';}},'notificationSound':{'type':Sequelize[_0xb171('0x10')],'defaultValue':!![]},'notificationShake':{'type':Sequelize[_0xb171('0x10')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize[_0xb171('0x11')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize[_0xb171('0x10')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0xb171('0x11')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0xb171('0x11')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'baseUrl':{'type':Sequelize[_0xb171('0x3')]},'mandatoryDispositionPauseId':{'type':Sequelize['INTEGER'],'comment':_0xb171('0x12')},'mandatoryDisposition':{'type':Sequelize[_0xb171('0x10')],'defaultValue':![],'comment':_0xb171('0x13'),'set':function(_0x27213a){if(!_0x27213a)this[_0xb171('0x14')](_0xb171('0x15'),null);this[_0xb171('0x14')]('mandatoryDisposition',_0x27213a);}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9eea=['ContactId','AttachmentId','UserId','User','unshift','waitForTheAssignedAgent','*,*,*,*','Start','startRouting','entity\x20found','set','Content-Type','<?xml\x20version=\x221.0\x22\x20encoding=\x22UTF-8\x22?>\x0a<Response></Response>','addApplications','transaction','sequelize','ISOLATION_LEVELS','READ_COMMITTED','bulkCreate','findAndCountAll','finally','getApplications','getInteractions','Contact','Owner','fullname','internal','Tag','Tags','tag','to\x20is\x20mandatory','CmList','List','DESC','out','SmsMessage','Messages','dataValues','received\x20delivery\x20report\x20from','inspect','skebby_dispatch_id','statusInt','status_code','groupName','DELIVERED','redif','error_code','DELIVERED_TO_GATEWAY','RECEIVED_BY_RECIPIENT','message-delivered','DELIVRD','ACCEPTD','statusGet','message-id','emit','userSmsAccount:save','isArray','userSmsAccount:remove','getAgents','rimraf','zip-dir','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','defaults','redis','./smsAccount.socket','register','jayson/promise','http','then','SmsAccount,\x20%s,\x20%s','request\x20sent','debug','SmsAccount,\x20%s,\x20%s,\x20%s','error','code','message','info','result','catch','sendStatus','status','end','offset','undefined','count','limit','json','reject','save','destroy','SmsAccounts','UserProfileResource','name','send','mandatoryDispositionPause','map','SmsAccount','rawAttributes','fieldName','type','key','model','query','filters','intersection','attributes','hasOwnProperty','nolimit','order','sort','filter','where','merge','VIRTUAL','options','includeAll','include','rows','show','params','Pause','keys','fields','length','create','body','user','role','get','userProfileId','autoAssociation','update','find','describe','addDisposition','Disposition','getDispositions','pick','SmsAccountId','findAll','ids','addAnswer','findOne','CannedAnswer','removeAnswers','notify','sms','SmsApplication','Applications','account','applications','orderBy','priority','asc','CmContact','Sequelize','ValidationError','updatedAt','difference','createdAt','CompanyId','mobile','twilio','from','From','Body','messageId','skebby','text','connectel','clicksend','message_id','Text','MessageUUID','infobip','results','csc','segmentedMessage','clickatell','replyMessageId','bandwidth','intelepeer','refid','isNil','from\x20is\x20mandatory','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','ListId','Contacts','list','omit','SmsInteraction','interaction','created','autoclose','push'];(function(_0x2c91e9,_0x2fb965){var _0x13f0ff=function(_0xb39edf){while(--_0xb39edf){_0x2c91e9['push'](_0x2c91e9['shift']());}};_0x13f0ff(++_0x2fb965);}(_0x9eea,0x113));var _0xa9ee=function(_0x2b4b4e,_0xce1f52){_0x2b4b4e=_0x2b4b4e-0x0;var _0x514260=_0x9eea[_0x2b4b4e];return _0x514260;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xa9ee('0x0'));var zipdir=require(_0xa9ee('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xa9ee('0x2'));var BPromise=require(_0xa9ee('0x3'));var Mustache=require(_0xa9ee('0x4'));var util=require(_0xa9ee('0x5'));var path=require(_0xa9ee('0x6'));var sox=require(_0xa9ee('0x7'));var csv=require(_0xa9ee('0x8'));var ejs=require(_0xa9ee('0x9'));var fs=require('fs');var fs_extra=require(_0xa9ee('0xa'));var _=require(_0xa9ee('0xb'));var squel=require('squel');var crypto=require(_0xa9ee('0xc'));var jsforce=require(_0xa9ee('0xd'));var deskjs=require('desk.js');var toCsv=require(_0xa9ee('0x8'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xa9ee('0xe'));var authService=require(_0xa9ee('0xf'));var qs=require(_0xa9ee('0x10'));var as=require(_0xa9ee('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xa9ee('0x12'))('api');var utils=require(_0xa9ee('0x13'));var config=require(_0xa9ee('0x14'));var licenseUtil=require('../../config/license/util');var db=require(_0xa9ee('0x15'))['db'];config['redis']=_[_0xa9ee('0x16')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xa9ee('0x17')]));require(_0xa9ee('0x18'))[_0xa9ee('0x19')](socket);var jayson=require(_0xa9ee('0x1a'));var client=jayson['client'][_0xa9ee('0x1b')]({'port':0x232c});function respondWithRpcPromise(_0x28d63d,_0x420d15,_0x196741,_0x23ee91){return new BPromise(function(_0x352f9d,_0x11d1ed){var _0x5b8e31=_0x23ee91||client;return _0x5b8e31['request'](_0x28d63d,_0x196741)[_0xa9ee('0x1c')](function(_0x598015){logger['info'](_0xa9ee('0x1d'),_0x420d15,_0xa9ee('0x1e'));logger[_0xa9ee('0x1f')](_0xa9ee('0x20'),_0x420d15,_0xa9ee('0x1e'),JSON['stringify'](_0x598015));if(_0x598015[_0xa9ee('0x21')]){if(_0x598015[_0xa9ee('0x21')][_0xa9ee('0x22')]===0x1f4){logger['error'](_0xa9ee('0x1d'),_0x420d15,_0x598015['error'][_0xa9ee('0x23')]);return _0x11d1ed(_0x598015['error']['message']);}logger['error']('SmsAccount,\x20%s,\x20%s',_0x420d15,_0x598015[_0xa9ee('0x21')][_0xa9ee('0x23')]);return _0x352f9d(_0x598015[_0xa9ee('0x21')][_0xa9ee('0x23')]);}else{logger[_0xa9ee('0x24')]('SmsAccount,\x20%s,\x20%s',_0x420d15,_0xa9ee('0x1e'));_0x352f9d(_0x598015[_0xa9ee('0x25')][_0xa9ee('0x23')]);}})[_0xa9ee('0x26')](function(_0x5a3000){logger[_0xa9ee('0x21')](_0xa9ee('0x1d'),_0x420d15,_0x5a3000);_0x11d1ed(_0x5a3000);});});}function respondWithStatusCode(_0x2aa705,_0x8095a8){_0x8095a8=_0x8095a8||0xcc;return function(_0x22886c){if(_0x22886c){return _0x2aa705[_0xa9ee('0x27')](_0x8095a8);}return _0x2aa705[_0xa9ee('0x28')](_0x8095a8)[_0xa9ee('0x29')]();};}function respondWithResult(_0x627b9,_0x1c8a30){_0x1c8a30=_0x1c8a30||0xc8;return function(_0x423faf){if(_0x423faf){return _0x627b9[_0xa9ee('0x28')](_0x1c8a30)['json'](_0x423faf);}};}function respondWithFilteredResult(_0x15c09c,_0x3908ba){return function(_0x3aa012){if(_0x3aa012){var _0x27883b=typeof _0x3908ba[_0xa9ee('0x2a')]===_0xa9ee('0x2b')&&typeof _0x3908ba['limit']===_0xa9ee('0x2b');var _0x47586a=_0x3aa012[_0xa9ee('0x2c')];var _0x30f049=_0x27883b?0x0:_0x3908ba[_0xa9ee('0x2a')];var _0x22811b=_0x27883b?_0x3aa012['count']:_0x3908ba['offset']+_0x3908ba[_0xa9ee('0x2d')];var _0x2f343a;if(_0x22811b>=_0x47586a){_0x22811b=_0x47586a;_0x2f343a=0xc8;}else{_0x2f343a=0xce;}_0x15c09c[_0xa9ee('0x28')](_0x2f343a);return _0x15c09c['set']('Content-Range',_0x30f049+'-'+_0x22811b+'/'+_0x47586a)[_0xa9ee('0x2e')](_0x3aa012);}return null;};}function patchUpdates(_0x48b3c5){return function(_0x16eb0d){try{jsonpatch['apply'](_0x16eb0d,_0x48b3c5,!![]);}catch(_0x3e1fd3){return BPromise[_0xa9ee('0x2f')](_0x3e1fd3);}return _0x16eb0d[_0xa9ee('0x30')]();};}function saveUpdates(_0xdbd9e4,_0x8e5f36){return function(_0x1b939c){if(_0x1b939c){return _0x1b939c['update'](_0xdbd9e4)[_0xa9ee('0x1c')](function(_0x5f1d1f){return _0x5f1d1f;});}return null;};}function removeEntity(_0x242fe2,_0x928c82){return function(_0x2796c1){if(_0x2796c1){return _0x2796c1[_0xa9ee('0x31')]()['then'](function(){var _0x16b655=_0x2796c1['get']({'plain':!![]});var _0x36e39e=_0xa9ee('0x32');return db[_0xa9ee('0x33')][_0xa9ee('0x31')]({'where':{'type':_0x36e39e,'resourceId':_0x16b655['id']}})['then'](function(){return _0x2796c1;});})[_0xa9ee('0x1c')](function(){_0x242fe2['status'](0xcc)[_0xa9ee('0x29')]();});}};}function handleEntityNotFound(_0x1e36ce,_0x6e2d9b){return function(_0x1956d5){if(!_0x1956d5){_0x1e36ce['sendStatus'](0x194);}return _0x1956d5;};}function handleError(_0x2c23a0,_0x14f78d){_0x14f78d=_0x14f78d||0x1f4;return function(_0x170ce7){logger[_0xa9ee('0x21')](_0x170ce7['stack']);if(_0x170ce7[_0xa9ee('0x34')]){delete _0x170ce7[_0xa9ee('0x34')];}_0x2c23a0['status'](_0x14f78d)[_0xa9ee('0x35')](_0x170ce7);};}exports['index']=function(_0x54e882,_0x6728cc){var _0x254c10={'include':[{'model':db['Pause'],'as':_0xa9ee('0x36')}]},_0x48de0b={},_0x4a7c15={'count':0x0,'rows':[]};var _0x5d846a=_[_0xa9ee('0x37')](db[_0xa9ee('0x38')][_0xa9ee('0x39')],function(_0xf93f7b){return{'name':_0xf93f7b[_0xa9ee('0x3a')],'type':_0xf93f7b[_0xa9ee('0x3b')][_0xa9ee('0x3c')]};});_0x48de0b[_0xa9ee('0x3d')]=_[_0xa9ee('0x37')](_0x5d846a,_0xa9ee('0x34'));_0x48de0b['query']=_['keys'](_0x54e882[_0xa9ee('0x3e')]);_0x48de0b[_0xa9ee('0x3f')]=_[_0xa9ee('0x40')](_0x48de0b[_0xa9ee('0x3d')],_0x48de0b['query']);_0x254c10[_0xa9ee('0x41')]=_['intersection'](_0x48de0b[_0xa9ee('0x3d')],qs['fields'](_0x54e882[_0xa9ee('0x3e')]['fields']));_0x254c10[_0xa9ee('0x41')]=_0x254c10[_0xa9ee('0x41')]['length']?_0x254c10[_0xa9ee('0x41')]:_0x48de0b[_0xa9ee('0x3d')];if(!_0x54e882['query'][_0xa9ee('0x42')](_0xa9ee('0x43'))){_0x254c10[_0xa9ee('0x2d')]=qs[_0xa9ee('0x2d')](_0x54e882[_0xa9ee('0x3e')][_0xa9ee('0x2d')]);_0x254c10[_0xa9ee('0x2a')]=qs[_0xa9ee('0x2a')](_0x54e882[_0xa9ee('0x3e')][_0xa9ee('0x2a')]);}_0x254c10[_0xa9ee('0x44')]=qs[_0xa9ee('0x45')](_0x54e882['query'][_0xa9ee('0x45')]);_0x254c10['where']=qs[_0xa9ee('0x3f')](_['pick'](_0x54e882[_0xa9ee('0x3e')],_0x48de0b[_0xa9ee('0x3f')]),_0x5d846a);if(_0x54e882['query'][_0xa9ee('0x46')]){_0x254c10[_0xa9ee('0x47')]=_[_0xa9ee('0x48')](_0x254c10[_0xa9ee('0x47')],{'$or':_[_0xa9ee('0x37')](_0x5d846a,function(_0x913963){if(_0x913963[_0xa9ee('0x3b')]!==_0xa9ee('0x49')){var _0x4b99ed={};_0x4b99ed[_0x913963[_0xa9ee('0x34')]]={'$like':'%'+_0x54e882[_0xa9ee('0x3e')]['filter']+'%'};return _0x4b99ed;}})});}_0x254c10=_['merge']({},_0x254c10,_0x54e882[_0xa9ee('0x4a')]);var _0x2de4f2={'where':_0x254c10[_0xa9ee('0x47')]};return db[_0xa9ee('0x38')]['count'](_0x2de4f2)[_0xa9ee('0x1c')](function(_0x29961d){_0x4a7c15[_0xa9ee('0x2c')]=_0x29961d;if(_0x54e882[_0xa9ee('0x3e')][_0xa9ee('0x4b')]){_0x254c10[_0xa9ee('0x4c')]=[{'all':!![]}];}return db[_0xa9ee('0x38')]['findAll'](_0x254c10);})[_0xa9ee('0x1c')](function(_0x55c0af){_0x4a7c15[_0xa9ee('0x4d')]=_0x55c0af;return _0x4a7c15;})[_0xa9ee('0x1c')](respondWithFilteredResult(_0x6728cc,_0x254c10))[_0xa9ee('0x26')](handleError(_0x6728cc,null));};exports[_0xa9ee('0x4e')]=function(_0x505aee,_0x942d12){var _0x3450a2={'raw':![],'where':{'id':_0x505aee[_0xa9ee('0x4f')]['id']},'include':[{'model':db[_0xa9ee('0x50')],'as':_0xa9ee('0x36')}]},_0x5a2919={};_0x5a2919['model']=_[_0xa9ee('0x51')](db[_0xa9ee('0x38')]['rawAttributes']);_0x5a2919[_0xa9ee('0x3e')]=_[_0xa9ee('0x51')](_0x505aee[_0xa9ee('0x3e')]);_0x5a2919[_0xa9ee('0x3f')]=_[_0xa9ee('0x40')](_0x5a2919[_0xa9ee('0x3d')],_0x5a2919['query']);_0x3450a2['attributes']=_[_0xa9ee('0x40')](_0x5a2919[_0xa9ee('0x3d')],qs[_0xa9ee('0x52')](_0x505aee[_0xa9ee('0x3e')][_0xa9ee('0x52')]));_0x3450a2[_0xa9ee('0x41')]=_0x3450a2[_0xa9ee('0x41')][_0xa9ee('0x53')]?_0x3450a2['attributes']:_0x5a2919[_0xa9ee('0x3d')];if(_0x505aee[_0xa9ee('0x3e')]['includeAll']){_0x3450a2['include']=[{'all':!![]}];}_0x3450a2=_[_0xa9ee('0x48')]({},_0x3450a2,_0x505aee[_0xa9ee('0x4a')]);return db[_0xa9ee('0x38')]['find'](_0x3450a2)[_0xa9ee('0x1c')](handleEntityNotFound(_0x942d12,null))[_0xa9ee('0x1c')](respondWithResult(_0x942d12,null))[_0xa9ee('0x26')](handleError(_0x942d12,null));};exports[_0xa9ee('0x54')]=function(_0x3aac34,_0x309887){return db[_0xa9ee('0x38')][_0xa9ee('0x54')](_0x3aac34[_0xa9ee('0x55')],{})[_0xa9ee('0x1c')](function(_0x34f720){var _0xcec77c=_0x3aac34[_0xa9ee('0x56')]['get']({'plain':!![]});if(!_0xcec77c)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0xcec77c[_0xa9ee('0x57')]===_0xa9ee('0x56')){var _0x581391=_0x34f720[_0xa9ee('0x58')]({'plain':!![]});var _0x275072=_0xa9ee('0x32');return db['UserProfileSection']['find']({'where':{'name':_0x275072,'userProfileId':_0xcec77c[_0xa9ee('0x59')]},'raw':!![]})[_0xa9ee('0x1c')](function(_0x5da72f){if(_0x5da72f&&_0x5da72f[_0xa9ee('0x5a')]===0x0){return db[_0xa9ee('0x33')][_0xa9ee('0x54')]({'name':_0x581391[_0xa9ee('0x34')],'resourceId':_0x581391['id'],'type':_0x5da72f[_0xa9ee('0x34')],'sectionId':_0x5da72f['id']},{})[_0xa9ee('0x1c')](function(){return _0x34f720;});}else{return _0x34f720;}})[_0xa9ee('0x26')](function(_0x566835){logger[_0xa9ee('0x21')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x566835);throw _0x566835;});}return _0x34f720;})[_0xa9ee('0x1c')](respondWithResult(_0x309887,0xc9))[_0xa9ee('0x26')](handleError(_0x309887,null));};exports[_0xa9ee('0x5b')]=function(_0x2440c8,_0x2fecb1){if(_0x2440c8[_0xa9ee('0x55')]['id']){delete _0x2440c8['body']['id'];}return db[_0xa9ee('0x38')][_0xa9ee('0x5c')]({'where':{'id':_0x2440c8['params']['id']},'include':[{'model':db[_0xa9ee('0x50')],'as':_0xa9ee('0x36')}]})['then'](handleEntityNotFound(_0x2fecb1,null))['then'](saveUpdates(_0x2440c8['body'],null))[_0xa9ee('0x1c')](respondWithResult(_0x2fecb1,null))[_0xa9ee('0x26')](handleError(_0x2fecb1,null));};exports['destroy']=function(_0x33f956,_0x1515dc){return db[_0xa9ee('0x38')][_0xa9ee('0x5c')]({'where':{'id':_0x33f956[_0xa9ee('0x4f')]['id']}})[_0xa9ee('0x1c')](handleEntityNotFound(_0x1515dc,null))[_0xa9ee('0x1c')](removeEntity(_0x1515dc,null))['catch'](handleError(_0x1515dc,null));};exports[_0xa9ee('0x5d')]=function(_0x4c2aac,_0x1338a1){return db[_0xa9ee('0x38')][_0xa9ee('0x5d')]()['then'](respondWithResult(_0x1338a1,null))['catch'](handleError(_0x1338a1,null));};exports[_0xa9ee('0x5e')]=function(_0x11d93e,_0x2cff7b,_0x175b62){if(_0x11d93e['body']['id']){delete _0x11d93e[_0xa9ee('0x55')]['id'];}return db[_0xa9ee('0x38')]['find']({'where':{'id':_0x11d93e[_0xa9ee('0x4f')]['id']}})[_0xa9ee('0x1c')](handleEntityNotFound(_0x2cff7b,null))[_0xa9ee('0x1c')](function(_0x25db1e){if(_0x25db1e){_0x11d93e[_0xa9ee('0x55')]['SmsAccountId']=_0x25db1e['id'];return db[_0xa9ee('0x5f')][_0xa9ee('0x54')](_0x11d93e[_0xa9ee('0x55')]);}})[_0xa9ee('0x1c')](respondWithResult(_0x2cff7b,null))['catch'](handleError(_0x2cff7b,null));};exports[_0xa9ee('0x60')]=function(_0x16fe35,_0x566036,_0x3a9879){var _0x497f28={'raw':![],'where':{}};var _0x7346cc={};var _0x533ef1={'count':0x0,'rows':[]};return db['SmsAccount']['findOne']({'where':{'id':_0x16fe35[_0xa9ee('0x4f')]['id']}})[_0xa9ee('0x1c')](handleEntityNotFound(_0x566036,null))[_0xa9ee('0x1c')](function(_0x437c29){if(_0x437c29){_0x7346cc['model']=_[_0xa9ee('0x51')](db[_0xa9ee('0x5f')]['rawAttributes']);_0x7346cc[_0xa9ee('0x3e')]=_['keys'](_0x16fe35['query']);_0x7346cc['filters']=_['intersection'](_0x7346cc[_0xa9ee('0x3d')],_0x7346cc[_0xa9ee('0x3e')]);_0x497f28[_0xa9ee('0x41')]=_[_0xa9ee('0x40')](_0x7346cc[_0xa9ee('0x3d')],qs[_0xa9ee('0x52')](_0x16fe35[_0xa9ee('0x3e')][_0xa9ee('0x52')]));_0x497f28[_0xa9ee('0x41')]=_0x497f28[_0xa9ee('0x41')][_0xa9ee('0x53')]?_0x497f28[_0xa9ee('0x41')]:_0x7346cc[_0xa9ee('0x3d')];if(!_0x16fe35['query'][_0xa9ee('0x42')](_0xa9ee('0x43'))){_0x497f28['limit']=qs[_0xa9ee('0x2d')](_0x16fe35[_0xa9ee('0x3e')][_0xa9ee('0x2d')]);_0x497f28[_0xa9ee('0x2a')]=qs[_0xa9ee('0x2a')](_0x16fe35[_0xa9ee('0x3e')][_0xa9ee('0x2a')]);}_0x497f28['order']=qs['sort'](_0x16fe35[_0xa9ee('0x3e')][_0xa9ee('0x45')]);_0x497f28['where']=qs['filters'](_[_0xa9ee('0x61')](_0x16fe35[_0xa9ee('0x3e')],_0x7346cc[_0xa9ee('0x3f')]));_0x497f28['where'][_0xa9ee('0x62')]=_0x437c29['id'];if(_0x16fe35[_0xa9ee('0x3e')][_0xa9ee('0x46')]){_0x497f28[_0xa9ee('0x47')]=_['merge'](_0x497f28[_0xa9ee('0x47')],{'$or':_[_0xa9ee('0x37')](_0x497f28[_0xa9ee('0x41')],function(_0x2c9b18){var _0x1ae858={};_0x1ae858[_0x2c9b18]={'$like':'%'+_0x16fe35[_0xa9ee('0x3e')][_0xa9ee('0x46')]+'%'};return _0x1ae858;})});}_0x497f28=_['merge']({},_0x497f28,_0x16fe35[_0xa9ee('0x4a')]);return db[_0xa9ee('0x5f')]['count']({'where':_0x497f28['where']})[_0xa9ee('0x1c')](function(_0x288031){_0x533ef1[_0xa9ee('0x2c')]=_0x288031;if(_0x16fe35[_0xa9ee('0x3e')]['includeAll']){_0x497f28[_0xa9ee('0x4c')]=[{'all':!![]}];}return db[_0xa9ee('0x5f')][_0xa9ee('0x63')](_0x497f28);})['then'](function(_0x1f1673){_0x533ef1[_0xa9ee('0x4d')]=_0x1f1673;return _0x533ef1;});}})[_0xa9ee('0x1c')](respondWithFilteredResult(_0x566036,_0x497f28))[_0xa9ee('0x26')](handleError(_0x566036,null));};exports['removeDispositions']=function(_0x28aaca,_0x487099,_0x269de7){return db[_0xa9ee('0x38')]['find']({'where':{'id':_0x28aaca[_0xa9ee('0x4f')]['id']}})[_0xa9ee('0x1c')](handleEntityNotFound(_0x487099,null))[_0xa9ee('0x1c')](function(_0x4d827e){if(_0x4d827e){return _0x4d827e['removeDispositions'](_0x28aaca[_0xa9ee('0x3e')][_0xa9ee('0x64')]);}})[_0xa9ee('0x1c')](respondWithStatusCode(_0x487099,null))['catch'](handleError(_0x487099,null));};exports[_0xa9ee('0x65')]=function(_0x32be98,_0x19330b,_0x3108c4){if(_0x32be98[_0xa9ee('0x55')]['id']){delete _0x32be98[_0xa9ee('0x55')]['id'];}return db[_0xa9ee('0x38')]['find']({'where':{'id':_0x32be98[_0xa9ee('0x4f')]['id']}})[_0xa9ee('0x1c')](handleEntityNotFound(_0x19330b,null))[_0xa9ee('0x1c')](function(_0x431c67){if(_0x431c67){_0x32be98[_0xa9ee('0x55')][_0xa9ee('0x62')]=_0x431c67['id'];return db['CannedAnswer'][_0xa9ee('0x54')](_0x32be98['body']);}})[_0xa9ee('0x1c')](respondWithResult(_0x19330b,null))[_0xa9ee('0x26')](handleError(_0x19330b,null));};exports['getAnswers']=function(_0xa5e94c,_0x27334e,_0x48818a){var _0x48fb63={'raw':![],'where':{}};var _0x3b9d47={};var _0x3864d0={'count':0x0,'rows':[]};return db[_0xa9ee('0x38')][_0xa9ee('0x66')]({'where':{'id':_0xa5e94c['params']['id']}})[_0xa9ee('0x1c')](handleEntityNotFound(_0x27334e,null))['then'](function(_0x3da183){if(_0x3da183){_0x3b9d47[_0xa9ee('0x3d')]=_[_0xa9ee('0x51')](db[_0xa9ee('0x67')][_0xa9ee('0x39')]);_0x3b9d47['query']=_[_0xa9ee('0x51')](_0xa5e94c[_0xa9ee('0x3e')]);_0x3b9d47[_0xa9ee('0x3f')]=_[_0xa9ee('0x40')](_0x3b9d47[_0xa9ee('0x3d')],_0x3b9d47[_0xa9ee('0x3e')]);_0x48fb63['attributes']=_['intersection'](_0x3b9d47['model'],qs['fields'](_0xa5e94c[_0xa9ee('0x3e')]['fields']));_0x48fb63['attributes']=_0x48fb63['attributes'][_0xa9ee('0x53')]?_0x48fb63[_0xa9ee('0x41')]:_0x3b9d47[_0xa9ee('0x3d')];if(!_0xa5e94c[_0xa9ee('0x3e')][_0xa9ee('0x42')](_0xa9ee('0x43'))){_0x48fb63[_0xa9ee('0x2d')]=qs[_0xa9ee('0x2d')](_0xa5e94c[_0xa9ee('0x3e')][_0xa9ee('0x2d')]);_0x48fb63[_0xa9ee('0x2a')]=qs[_0xa9ee('0x2a')](_0xa5e94c[_0xa9ee('0x3e')][_0xa9ee('0x2a')]);}_0x48fb63[_0xa9ee('0x44')]=qs['sort'](_0xa5e94c[_0xa9ee('0x3e')][_0xa9ee('0x45')]);_0x48fb63[_0xa9ee('0x47')]=qs[_0xa9ee('0x3f')](_['pick'](_0xa5e94c[_0xa9ee('0x3e')],_0x3b9d47[_0xa9ee('0x3f')]));_0x48fb63[_0xa9ee('0x47')][_0xa9ee('0x62')]=_0x3da183['id'];if(_0xa5e94c[_0xa9ee('0x3e')][_0xa9ee('0x46')]){_0x48fb63[_0xa9ee('0x47')]=_[_0xa9ee('0x48')](_0x48fb63[_0xa9ee('0x47')],{'$or':_[_0xa9ee('0x37')](_0x48fb63[_0xa9ee('0x41')],function(_0x29d61b){var _0x230f5e={};_0x230f5e[_0x29d61b]={'$like':'%'+_0xa5e94c['query']['filter']+'%'};return _0x230f5e;})});}_0x48fb63=_[_0xa9ee('0x48')]({},_0x48fb63,_0xa5e94c['options']);return db[_0xa9ee('0x67')][_0xa9ee('0x2c')]({'where':_0x48fb63['where']})[_0xa9ee('0x1c')](function(_0x216c7e){_0x3864d0[_0xa9ee('0x2c')]=_0x216c7e;if(_0xa5e94c['query']['includeAll']){_0x48fb63[_0xa9ee('0x4c')]=[{'all':!![]}];}return db[_0xa9ee('0x67')][_0xa9ee('0x63')](_0x48fb63);})[_0xa9ee('0x1c')](function(_0x1e2ee3){_0x3864d0[_0xa9ee('0x4d')]=_0x1e2ee3;return _0x3864d0;});}})[_0xa9ee('0x1c')](respondWithFilteredResult(_0x27334e,_0x48fb63))['catch'](handleError(_0x27334e,null));};exports['removeAnswers']=function(_0xc3607c,_0xf41847,_0x473ac9){return db[_0xa9ee('0x38')][_0xa9ee('0x5c')]({'where':{'id':_0xc3607c[_0xa9ee('0x4f')]['id']}})[_0xa9ee('0x1c')](handleEntityNotFound(_0xf41847,null))[_0xa9ee('0x1c')](function(_0x254e07){if(_0x254e07){return _0x254e07[_0xa9ee('0x68')](_0xc3607c[_0xa9ee('0x3e')][_0xa9ee('0x64')]);}})['then'](respondWithStatusCode(_0xf41847,null))[_0xa9ee('0x26')](handleError(_0xf41847,null));};exports[_0xa9ee('0x69')]=function(_0x5004f7,_0x551d3c,_0x46e05a){var _0x2c41a4={'channel':_0xa9ee('0x6a')};var _0x5c1fae=[];var _0x17a846=[];var _0x3f57cf={};return db['SmsAccount']['find']({'where':{'id':_0x5004f7['params']['id']},'include':[{'model':db[_0xa9ee('0x6b')],'as':_0xa9ee('0x6c')}]})[_0xa9ee('0x1c')](handleEntityNotFound(_0x551d3c,null))['then'](function(_0x181996){_0x2c41a4[_0xa9ee('0x6d')]=_0x181996;_0x2c41a4[_0xa9ee('0x6e')]=_[_0xa9ee('0x6f')](_0x181996[_0xa9ee('0x6c')],[_0xa9ee('0x70')],[_0xa9ee('0x71')]);if(_0x2c41a4[_0xa9ee('0x6d')][_0xa9ee('0x6c')]){delete _0x2c41a4[_0xa9ee('0x6d')][_0xa9ee('0x6c')];}return db[_0xa9ee('0x72')][_0xa9ee('0x5d')]();})[_0xa9ee('0x1c')](function(_0x2de9f6){if(!_0x2de9f6){throw new db[(_0xa9ee('0x73'))][(_0xa9ee('0x74'))]('no\x20available\x20attributes');}_0x5c1fae=_['difference'](_['keys'](_0x2de9f6),['createdAt',_0xa9ee('0x75')]);_0x17a846=_[_0xa9ee('0x76')](_[_0xa9ee('0x51')](_0x2de9f6),[_0xa9ee('0x77'),'updatedAt',_0xa9ee('0x78'),'ListId']);_0x2c41a4[_0xa9ee('0x55')]={'mapKey':_0xa9ee('0x79')};if(_0x2c41a4[_0xa9ee('0x6d')][_0xa9ee('0x3b')]){switch(_0x2c41a4[_0xa9ee('0x6d')][_0xa9ee('0x3b')]){case _0xa9ee('0x7a'):_0x2c41a4['body'][_0xa9ee('0x7b')]=_0x5004f7[_0xa9ee('0x55')][_0xa9ee('0x7c')];_0x2c41a4[_0xa9ee('0x55')][_0xa9ee('0x55')]=_0x5004f7['body'][_0xa9ee('0x7d')];_0x2c41a4[_0xa9ee('0x55')][_0xa9ee('0x7e')]=_0x5004f7[_0xa9ee('0x55')]['MessageSid'];break;case _0xa9ee('0x7f'):_0x2c41a4[_0xa9ee('0x55')][_0xa9ee('0x7b')]='+'+_0x5004f7[_0xa9ee('0x55')]['sender'];_0x2c41a4['body'][_0xa9ee('0x55')]=_0x5004f7[_0xa9ee('0x55')][_0xa9ee('0x80')];break;case _0xa9ee('0x81'):_0x2c41a4[_0xa9ee('0x55')][_0xa9ee('0x7b')]=_0x5004f7[_0xa9ee('0x55')][_0xa9ee('0x7b')];_0x2c41a4[_0xa9ee('0x55')][_0xa9ee('0x55')]=_0x5004f7[_0xa9ee('0x55')][_0xa9ee('0x23')];break;case _0xa9ee('0x82'):_0x2c41a4[_0xa9ee('0x55')]['from']=_0x5004f7[_0xa9ee('0x55')][_0xa9ee('0x7b')];_0x2c41a4[_0xa9ee('0x55')][_0xa9ee('0x55')]=_0x5004f7[_0xa9ee('0x55')][_0xa9ee('0x55')];_0x2c41a4[_0xa9ee('0x55')][_0xa9ee('0x7e')]=_0x5004f7['body'][_0xa9ee('0x83')];break;case'plivo':_0x2c41a4[_0xa9ee('0x55')][_0xa9ee('0x7b')]=_0x5004f7[_0xa9ee('0x55')]['From'];_0x2c41a4[_0xa9ee('0x55')][_0xa9ee('0x55')]=_0x5004f7['body'][_0xa9ee('0x84')];_0x2c41a4['body']['messageId']=_0x5004f7[_0xa9ee('0x55')][_0xa9ee('0x85')];break;case _0xa9ee('0x86'):_0x2c41a4[_0xa9ee('0x55')]['from']='+'+_0x5004f7[_0xa9ee('0x55')]['results'][0x0][_0xa9ee('0x7b')];_0x2c41a4[_0xa9ee('0x55')]['body']=_0x5004f7['body'][_0xa9ee('0x87')][0x0][_0xa9ee('0x80')];_0x2c41a4['body'][_0xa9ee('0x7e')]=_0x5004f7[_0xa9ee('0x55')][_0xa9ee('0x87')][0x0][_0xa9ee('0x7e')];break;case _0xa9ee('0x88'):_0x2c41a4[_0xa9ee('0x55')]['from']=_0x5004f7[_0xa9ee('0x55')]['originatingAddress'];_0x2c41a4[_0xa9ee('0x55')][_0xa9ee('0x55')]=_0x5004f7[_0xa9ee('0x55')][_0xa9ee('0x89')][_0xa9ee('0x23')];break;case _0xa9ee('0x8a'):_0x2c41a4[_0xa9ee('0x55')]['from']=_0x5004f7[_0xa9ee('0x55')]['fromNumber'];_0x2c41a4['body']['body']=_0x5004f7['body'][_0xa9ee('0x80')];_0x2c41a4[_0xa9ee('0x55')][_0xa9ee('0x7e')]=_0x5004f7[_0xa9ee('0x55')][_0xa9ee('0x8b')];break;case _0xa9ee('0x8c'):_0x2c41a4['body'][_0xa9ee('0x7e')]=_0x5004f7[_0xa9ee('0x55')][0x0][_0xa9ee('0x23')]['id'];_0x2c41a4[_0xa9ee('0x55')][_0xa9ee('0x7b')]=_0x5004f7[_0xa9ee('0x55')][0x0]['message']['from'];_0x2c41a4['body'][_0xa9ee('0x55')]=_0x5004f7[_0xa9ee('0x55')][0x0][_0xa9ee('0x23')]['text'];break;case _0xa9ee('0x8d'):_0x2c41a4['body'][_0xa9ee('0x7b')]=_0x5004f7[_0xa9ee('0x55')][_0xa9ee('0x7b')];_0x2c41a4[_0xa9ee('0x55')][_0xa9ee('0x55')]=_0x5004f7[_0xa9ee('0x55')][_0xa9ee('0x23')];_0x2c41a4[_0xa9ee('0x55')][_0xa9ee('0x7e')]=_0x5004f7[_0xa9ee('0x55')][_0xa9ee('0x8e')];break;}}if(_0x2c41a4[_0xa9ee('0x55')]['id']){delete _0x2c41a4[_0xa9ee('0x55')]['id'];}if(_[_0xa9ee('0x8f')](_0x2c41a4['body'][_0xa9ee('0x7b')])){throw new db['Sequelize'][(_0xa9ee('0x74'))](_0xa9ee('0x90'));}if(_[_0xa9ee('0x8f')](_0x2c41a4[_0xa9ee('0x55')][_0xa9ee('0x55')])||_0x2c41a4[_0xa9ee('0x55')][_0xa9ee('0x55')]===''){throw new db[(_0xa9ee('0x73'))][(_0xa9ee('0x74'))]('body\x20is\x20mandatory\x20and\x20not\x20empty');}if(_['isNil'](_0x2c41a4[_0xa9ee('0x55')][_0xa9ee('0x91')])){throw new db[(_0xa9ee('0x73'))][(_0xa9ee('0x74'))](_0xa9ee('0x92')+_0x17a846);}if(!_['includes'](_0x17a846,_0x2c41a4[_0xa9ee('0x55')][_0xa9ee('0x91')])){throw new db[(_0xa9ee('0x73'))][(_0xa9ee('0x74'))](_0xa9ee('0x93')+_0x17a846);}_0x3f57cf[_0x2c41a4[_0xa9ee('0x55')][_0xa9ee('0x91')]]=_0x2c41a4[_0xa9ee('0x55')]['from'];return db['CmList']['find']({'where':{'id':_0x2c41a4[_0xa9ee('0x6d')][_0xa9ee('0x94')]},'include':[{'model':db['CmContact'],'as':_0xa9ee('0x95'),'where':_0x3f57cf,'limit':0x1,'order':[['updatedAt','DESC']]}]});})[_0xa9ee('0x1c')](handleEntityNotFound(_0x551d3c,null))[_0xa9ee('0x1c')](function(_0x3f3fed){if(_0x3f3fed){_0x2c41a4[_0xa9ee('0x96')]=_[_0xa9ee('0x97')](_0x3f3fed,[_0xa9ee('0x95')]);if(_0x3f3fed['Contacts'][_0xa9ee('0x53')]){return _0x3f3fed[_0xa9ee('0x95')][0x0];}var _0x2172e6=_[_0xa9ee('0x16')](_0x2c41a4['body'],{'firstName':_0x2c41a4[_0xa9ee('0x55')]['from'],'ListId':_0x3f3fed['id']});_0x2172e6[_0x2c41a4[_0xa9ee('0x55')][_0xa9ee('0x91')]]=_0x2c41a4[_0xa9ee('0x55')][_0xa9ee('0x7b')];return db[_0xa9ee('0x72')]['create'](_0x2172e6,{'fields':_0x5c1fae,'raw':!![]});}})['then'](handleEntityNotFound(_0x551d3c,null))[_0xa9ee('0x1c')](function(_0x5e87fc){if(_0x5e87fc){_0x2c41a4['contact']=_0x5e87fc;var _0xa0e81b={'ContactId':_0x5e87fc['id'],'phone':_0x2c41a4[_0xa9ee('0x55')][_0xa9ee('0x7b')],'SmsAccountId':_0x5004f7[_0xa9ee('0x4f')]['id']};var _0x49afa8={'ContactId':_0x5e87fc['id'],'SmsAccountId':_0x5004f7[_0xa9ee('0x4f')]['id'],'closed':![]};return db[_0xa9ee('0x98')][_0xa9ee('0x5c')]({'where':_0x49afa8})[_0xa9ee('0x1c')](function(_0x869c83){if(_0x869c83){return[_0x869c83,![]];}return db[_0xa9ee('0x98')][_0xa9ee('0x54')](_0xa0e81b)['then'](function(_0x5e982a){return[_0x5e982a,!![]];});});}})['spread'](function(_0x4e0fe9,_0x9cadc6){_0x2c41a4[_0xa9ee('0x99')]=_0x4e0fe9[_0xa9ee('0x58')]({'plain':!![]});_0x2c41a4[_0xa9ee('0x99')][_0xa9ee('0x9a')]=![];if(_0x9cadc6){if(_0x2c41a4['account'][_0xa9ee('0x9b')]){_0x2c41a4[_0xa9ee('0x6e')][_0xa9ee('0x9c')]({'id':0x0,'priority':_0x2c41a4[_0xa9ee('0x6e')][_0xa9ee('0x53')]+0x1,'app':'close','appdata':'unmanaged','interval':'*,*,*,*'});}_0x2c41a4['interaction'][_0xa9ee('0x9a')]=!![];}return db['SmsMessage']['create']({'phone':_0x2c41a4[_0xa9ee('0x55')]['from'],'messageId':_0x2c41a4[_0xa9ee('0x55')][_0xa9ee('0x7e')],'body':_0x2c41a4[_0xa9ee('0x55')]['body'],'SmsAccountId':_0x5004f7['params']['id'],'SmsInteractionId':_0x4e0fe9['id'],'direction':'in','ContactId':_0x4e0fe9[_0xa9ee('0x9d')],'AttachmentId':_0x2c41a4[_0xa9ee('0x55')][_0xa9ee('0x9e')]});})['then'](function(_0x40be29){_0x2c41a4[_0xa9ee('0x23')]=_0x40be29;if(_0x2c41a4[_0xa9ee('0x99')][_0xa9ee('0x9f')]){return db[_0xa9ee('0xa0')]['find']({'attributes':['id',_0xa9ee('0x34')],'where':{'id':_0x2c41a4['interaction'][_0xa9ee('0x9f')]}})[_0xa9ee('0x1c')](function(_0x5463c1){if(_0x5463c1){_0x2c41a4[_0xa9ee('0x6e')][_0xa9ee('0xa1')]({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x5463c1[_0xa9ee('0x34')]+','+(_0x2c41a4[_0xa9ee('0x6d')][_0xa9ee('0xa2')]||0xa),'interval':_0xa9ee('0xa3')});}return respondWithRpcPromise(_0xa9ee('0xa4'),'startRouting',_0x2c41a4);});}return respondWithRpcPromise(_0xa9ee('0xa4'),_0xa9ee('0xa5'),_0x2c41a4);})['then'](function(_0x4392bd){if(_0x4392bd){var _0x6e37be=0xc8;var _0x222a99='receiveMessage';logger[_0xa9ee('0x24')](_0xa9ee('0x20'),_0x222a99,_0x6e37be,_0xa9ee('0xa6'));logger[_0xa9ee('0x1f')]('SmsAccount,\x20%s,\x20%s,\x20%s,\x20%s',_0x222a99,_0x6e37be,'entity\x20found',JSON['stringify'](_0x4392bd));if(_0x2c41a4[_0xa9ee('0x6d')][_0xa9ee('0x3b')]===_0xa9ee('0x7a')){return _0x551d3c[_0xa9ee('0x28')](_0x6e37be)[_0xa9ee('0xa7')](_0xa9ee('0xa8'),'text/xml')[_0xa9ee('0x35')](_0xa9ee('0xa9'));}else{return _0x551d3c['status'](_0x6e37be)[_0xa9ee('0x2e')](_0x4392bd);}}})[_0xa9ee('0x26')](handleError(_0x551d3c,null));};exports[_0xa9ee('0xaa')]=function(_0x2430d5,_0x53836b){var _0x578daf=_0x2430d5['params']['id'];var _0x35f89e=_0x2430d5[_0xa9ee('0x55')];var _0x1372ec=0xc8;var _0x4e689d=null;return db['sequelize'][_0xa9ee('0xab')]({'isolationLevel':db[_0xa9ee('0xac')]['Transaction'][_0xa9ee('0xad')][_0xa9ee('0xae')]},function(_0x5e5f48){return db[_0xa9ee('0x38')][_0xa9ee('0x66')]({'where':{'id':_0x578daf},'transaction':_0x5e5f48})[_0xa9ee('0x1c')](function(_0x412129){if(_0x412129){return db[_0xa9ee('0x6b')][_0xa9ee('0x31')]({'where':{'SmsAccountId':_0x578daf},'transaction':_0x5e5f48})[_0xa9ee('0x1c')](function(){var _0x3304d8=_[_0xa9ee('0x37')](_0x35f89e,function(_0xd25ede){_0xd25ede['SmsAccountId']=_0x578daf;return _0xd25ede;});return db[_0xa9ee('0x6b')][_0xa9ee('0xaf')](_0x3304d8,{'transaction':_0x5e5f48});});}else{_0x1372ec=0x194;_0x4e689d=[];}});})['then'](function(){if(_0x1372ec!==0x194){return db[_0xa9ee('0x6b')][_0xa9ee('0xb0')]({'where':{'SmsAccountId':_0x578daf},'order':_0xa9ee('0x70')})[_0xa9ee('0x1c')](function(_0xa74e9e){_0x4e689d=_0xa74e9e;});}})['catch'](function(_0xc3022e){_0x1372ec=0x1f4;logger['error'](_0xc3022e['stack']);if(_0xc3022e['name']){delete _0xc3022e[_0xa9ee('0x34')];}_0x4e689d=_0xc3022e;})[_0xa9ee('0xb1')](function(){if(_0x4e689d===null){_0x53836b['sendStatus'](_0x1372ec);}else{if(_0x1372ec===0x1f4){_0x53836b['status'](_0x1372ec)[_0xa9ee('0x35')](_0x4e689d);}else{_0x53836b[_0xa9ee('0x28')](_0x1372ec)['json'](_0x4e689d);}}});};exports[_0xa9ee('0xb2')]=function(_0x499887,_0x482b6b,_0x5cb423){var _0x4993b9={};var _0x32adf7={};var _0x49e2f4;var _0xb84c4a;return db[_0xa9ee('0x38')][_0xa9ee('0x66')]({'where':{'id':_0x499887['params']['id']}})[_0xa9ee('0x1c')](handleEntityNotFound(_0x482b6b,null))[_0xa9ee('0x1c')](function(_0x3fd6f0){if(_0x3fd6f0){_0x49e2f4=_0x3fd6f0;_0x32adf7[_0xa9ee('0x3d')]=_[_0xa9ee('0x51')](db['SmsApplication'][_0xa9ee('0x39')]);_0x32adf7[_0xa9ee('0x3e')]=_['keys'](_0x499887[_0xa9ee('0x3e')]);_0x32adf7[_0xa9ee('0x3f')]=_[_0xa9ee('0x40')](_0x32adf7['model'],_0x32adf7[_0xa9ee('0x3e')]);_0x4993b9[_0xa9ee('0x41')]=_[_0xa9ee('0x40')](_0x32adf7[_0xa9ee('0x3d')],qs[_0xa9ee('0x52')](_0x499887[_0xa9ee('0x3e')][_0xa9ee('0x52')]));_0x4993b9[_0xa9ee('0x41')]=_0x4993b9[_0xa9ee('0x41')][_0xa9ee('0x53')]?_0x4993b9[_0xa9ee('0x41')]:_0x32adf7[_0xa9ee('0x3d')];_0x4993b9['order']=qs[_0xa9ee('0x45')](_0x499887[_0xa9ee('0x3e')]['sort']);_0x4993b9[_0xa9ee('0x47')]=qs[_0xa9ee('0x3f')](_[_0xa9ee('0x61')](_0x499887['query'],_0x32adf7['filters']));if(_0x499887[_0xa9ee('0x3e')]['filter']){_0x4993b9['where']=_['merge'](_0x4993b9['where'],{'$or':_[_0xa9ee('0x37')](_0x4993b9[_0xa9ee('0x41')],function(_0x4e1606){var _0x2fe427={};_0x2fe427[_0x4e1606]={'$like':'%'+_0x499887[_0xa9ee('0x3e')]['filter']+'%'};return _0x2fe427;})});}_0x4993b9=_[_0xa9ee('0x48')]({},_0x4993b9,_0x499887['options']);return _0x49e2f4[_0xa9ee('0xb2')](_0x4993b9);}})['then'](function(_0x2f6dd0){if(_0x2f6dd0){_0xb84c4a=_0x2f6dd0[_0xa9ee('0x53')];if(!_0x499887[_0xa9ee('0x3e')][_0xa9ee('0x42')](_0xa9ee('0x43'))){_0x4993b9[_0xa9ee('0x2d')]=qs[_0xa9ee('0x2d')](_0x499887[_0xa9ee('0x3e')][_0xa9ee('0x2d')]);_0x4993b9[_0xa9ee('0x2a')]=qs[_0xa9ee('0x2a')](_0x499887['query'][_0xa9ee('0x2a')]);}return _0x49e2f4[_0xa9ee('0xb2')](_0x4993b9);}})[_0xa9ee('0x1c')](function(_0x2246d1){if(_0x2246d1){return _0x2246d1?{'count':_0xb84c4a,'rows':_0x2246d1}:null;}})['then'](respondWithResult(_0x482b6b,null))[_0xa9ee('0x26')](handleError(_0x482b6b,null));};exports[_0xa9ee('0xb3')]=function(_0x47d806,_0x217a28,_0x33a287){var _0x4ab6c3={'raw':![],'where':{}};var _0xc30ea3={};var _0xd6844f={'count':0x0,'rows':[]};return db[_0xa9ee('0x38')][_0xa9ee('0x66')]({'where':{'id':_0x47d806[_0xa9ee('0x4f')]['id']}})[_0xa9ee('0x1c')](handleEntityNotFound(_0x217a28,null))[_0xa9ee('0x1c')](function(_0x4a812e){if(_0x4a812e){_0xc30ea3[_0xa9ee('0x3d')]=_[_0xa9ee('0x51')](db[_0xa9ee('0x98')]['rawAttributes']);_0xc30ea3['query']=_[_0xa9ee('0x51')](_0x47d806['query']);_0xc30ea3[_0xa9ee('0x3f')]=_['intersection'](_0xc30ea3[_0xa9ee('0x3d')],_0xc30ea3[_0xa9ee('0x3e')]);_0x4ab6c3['attributes']=_[_0xa9ee('0x40')](_0xc30ea3[_0xa9ee('0x3d')],qs[_0xa9ee('0x52')](_0x47d806[_0xa9ee('0x3e')][_0xa9ee('0x52')]));_0x4ab6c3[_0xa9ee('0x41')]=_0x4ab6c3[_0xa9ee('0x41')][_0xa9ee('0x53')]?_0x4ab6c3[_0xa9ee('0x41')]:_0xc30ea3[_0xa9ee('0x3d')];if(!_0x47d806[_0xa9ee('0x3e')][_0xa9ee('0x42')](_0xa9ee('0x43'))){_0x4ab6c3['limit']=qs[_0xa9ee('0x2d')](_0x47d806[_0xa9ee('0x3e')][_0xa9ee('0x2d')]);_0x4ab6c3[_0xa9ee('0x2a')]=qs[_0xa9ee('0x2a')](_0x47d806[_0xa9ee('0x3e')][_0xa9ee('0x2a')]);}_0x4ab6c3[_0xa9ee('0x44')]=qs['sort'](_0x47d806[_0xa9ee('0x3e')][_0xa9ee('0x45')]);_0x4ab6c3['where']=qs[_0xa9ee('0x3f')](_[_0xa9ee('0x61')](_0x47d806[_0xa9ee('0x3e')],_0xc30ea3[_0xa9ee('0x3f')]));_0x4ab6c3[_0xa9ee('0x47')][_0xa9ee('0x62')]=_0x4a812e['id'];if(_0x47d806[_0xa9ee('0x3e')]['filter']){_0x4ab6c3[_0xa9ee('0x47')]=_[_0xa9ee('0x48')](_0x4ab6c3[_0xa9ee('0x47')],{'$or':_[_0xa9ee('0x37')](_0x4ab6c3[_0xa9ee('0x41')],function(_0x277e2d){var _0x20e7ca={};_0x20e7ca[_0x277e2d]={'$like':'%'+_0x47d806['query']['filter']+'%'};return _0x20e7ca;})});}_0x4ab6c3=_[_0xa9ee('0x48')]({},_0x4ab6c3,_0x47d806[_0xa9ee('0x4a')]);return db[_0xa9ee('0x98')]['count']({'where':_0x4ab6c3[_0xa9ee('0x47')]})[_0xa9ee('0x1c')](function(_0x138f38){_0xd6844f[_0xa9ee('0x2c')]=_0x138f38;if(_0x47d806['query'][_0xa9ee('0x4b')]){_0x4ab6c3['include']=[{'model':db[_0xa9ee('0x72')],'as':_0xa9ee('0xb4'),'required':![]},{'model':db[_0xa9ee('0xa0')],'as':_0xa9ee('0xb5'),'attributes':['name',_0xa9ee('0xb6'),_0xa9ee('0xb7')],'required':![]},{'model':db[_0xa9ee('0xb8')],'as':_0xa9ee('0xb9'),'attributes':['id',_0xa9ee('0x34'),'color'],'where':_0x47d806[_0xa9ee('0x3e')]['tag']?{'id':_0x47d806[_0xa9ee('0x3e')][_0xa9ee('0xba')]}:undefined,'required':_0x47d806['query'][_0xa9ee('0xba')]?!![]:![]}];}return db[_0xa9ee('0x98')][_0xa9ee('0x63')](_0x4ab6c3);})[_0xa9ee('0x1c')](function(_0x3b72ce){_0xd6844f[_0xa9ee('0x4d')]=_0x3b72ce;return _0xd6844f;});}})[_0xa9ee('0x1c')](respondWithFilteredResult(_0x217a28,_0x4ab6c3))[_0xa9ee('0x26')](handleError(_0x217a28,null));};exports[_0xa9ee('0x35')]=function(_0x575746,_0x54bf9e,_0x4c4db4){var _0x8ae0a8,_0x3b4973,_0x58ae3c;if(_['isNil'](_0x575746['body']['body'])||_0x575746[_0xa9ee('0x55')][_0xa9ee('0x55')]===''){throw new db[(_0xa9ee('0x73'))][(_0xa9ee('0x74'))]('body\x20is\x20mandatory\x20and\x20not\x20empty');}if(_[_0xa9ee('0x8f')](_0x575746[_0xa9ee('0x55')]['to'])){throw new db[(_0xa9ee('0x73'))]['ValidationError'](_0xa9ee('0xbb'));}_0x8ae0a8=_0x575746[_0xa9ee('0x55')]['to'];return db[_0xa9ee('0x38')][_0xa9ee('0x5c')]({'where':{'id':_0x575746[_0xa9ee('0x4f')]['id']},'include':[{'model':db[_0xa9ee('0xbc')],'as':_0xa9ee('0xbd'),'include':[{'model':db['CmContact'],'as':_0xa9ee('0x95'),'where':{'mobile':_0x8ae0a8},'limit':0x1,'order':[['updatedAt',_0xa9ee('0xbe')]]}]}]})[_0xa9ee('0x1c')](handleEntityNotFound(_0x54bf9e,null))[_0xa9ee('0x1c')](function(_0x514546){if(_0x514546&&_0x514546[_0xa9ee('0xbd')]){_0x3b4973=_0x514546[_0xa9ee('0x58')]({'plain':!![]});if(_0x3b4973[_0xa9ee('0xbd')]&&_0x3b4973['List']['Contacts'][_0xa9ee('0x53')]){return _0x3b4973['List'][_0xa9ee('0x95')][0x0];}return db[_0xa9ee('0x72')][_0xa9ee('0x54')](_[_0xa9ee('0x16')](_0x575746[_0xa9ee('0x55')],{'firstName':_0x8ae0a8,'mobile':_0x8ae0a8,'phone':_0x8ae0a8,'ListId':_0x3b4973[_0xa9ee('0x94')]}));}})['then'](handleEntityNotFound(_0x54bf9e,null))[_0xa9ee('0x1c')](function(_0x45e8ee){if(_0x45e8ee){_0x58ae3c=_0x45e8ee;return db[_0xa9ee('0x98')][_0xa9ee('0x5c')]({'where':{'ContactId':_0x58ae3c['id'],'closed':![],'SmsAccountId':_0x3b4973['id']}})[_0xa9ee('0x1c')](function(_0x25f676){if(_0x25f676){return[_0x25f676,![]];}return db['SmsInteraction']['create']({'UserId':_0x575746[_0xa9ee('0x56')]['id'],'ContactId':_0x58ae3c['id'],'SmsAccountId':_0x3b4973['id'],'phone':_0x8ae0a8,'firstMsgDirection':_0xa9ee('0xbf'),'Messages':[_['merge'](_0x575746[_0xa9ee('0x55')],{'read':![],'body':_0x575746['body'][_0xa9ee('0x55')],'phone':_0x8ae0a8,'SmsAccountId':_0x3b4973['id'],'UserId':_0x575746[_0xa9ee('0x56')]['id'],'ContactId':_0x58ae3c['id']})]},{'include':[{'model':db[_0xa9ee('0xc0')],'as':_0xa9ee('0xc1')}]})['then'](function(_0x2b6e88){return[_0x2b6e88,!![]];});});}})['spread'](function(_0x483f9f,_0x5331cf){if(_0x5331cf){return _0x483f9f;}return db[_0xa9ee('0xc0')][_0xa9ee('0x54')](_['merge'](_0x575746[_0xa9ee('0x55')],{'read':![],'body':_0x575746['body']['body'],'phone':_0x8ae0a8,'SmsAccountId':_0x3b4973['id'],'SmsInteractionId':_0x483f9f['id'],'UserId':_0x575746['user']['id'],'ContactId':_0x58ae3c['id']}))[_0xa9ee('0x1c')](function(_0x13893d){_0x483f9f[_0xa9ee('0xc2')]['Messages']=[];_0x483f9f[_0xa9ee('0xc2')][_0xa9ee('0xc1')][_0xa9ee('0x9c')](_0x13893d[_0xa9ee('0xc2')]);return _0x483f9f;});})[_0xa9ee('0x1c')](respondWithResult(_0x54bf9e,null))[_0xa9ee('0x26')](handleError(_0x54bf9e,null));};exports[_0xa9ee('0x28')]=function(_0x1df629,_0x5c71a5,_0x5ee2cc){if(_0x1df629['body']['id']){delete _0x1df629[_0xa9ee('0x55')]['id'];}var _0x50f493,_0x49cfd1,_0x2d2166;return db['SmsAccount'][_0xa9ee('0x5c')]({'where':{'id':_0x1df629[_0xa9ee('0x4f')]['id']}})[_0xa9ee('0x1c')](handleEntityNotFound(_0x5c71a5,null))['then'](function(_0x473a7b){if(_0x473a7b){_0x2d2166=_0x473a7b;logger[_0xa9ee('0x1f')](_0xa9ee('0x20'),'status',_0xa9ee('0xc3'),_0x473a7b[_0xa9ee('0x3b')],util[_0xa9ee('0xc4')](_0x1df629['body'],{'showHidden':![],'depth':null}));switch(_0x473a7b[_0xa9ee('0x3b')]){case _0xa9ee('0x7f'):if(_0x1df629[_0xa9ee('0x55')][_0xa9ee('0xc5')]&&_0x1df629[_0xa9ee('0x55')][_0xa9ee('0x28')]){_0x49cfd1=_0x1df629[_0xa9ee('0x55')]['status'];return db['SmsMessage']['find']({'where':{'messageId':_0x1df629[_0xa9ee('0x55')][_0xa9ee('0xc5')]}});}break;case _0xa9ee('0x81'):if(_0x1df629[_0xa9ee('0x55')]['requestid']&&_0x1df629[_0xa9ee('0x55')]['statusInt']){_0x49cfd1=_0x1df629[_0xa9ee('0x55')][_0xa9ee('0xc6')];return db[_0xa9ee('0xc0')][_0xa9ee('0x5c')]({'where':{'messageId':_0x1df629[_0xa9ee('0x55')]['requestid']}});}break;case _0xa9ee('0x82'):if(_0x1df629[_0xa9ee('0x55')][_0xa9ee('0x83')]&&_0x1df629[_0xa9ee('0x55')]['status_code']){_0x49cfd1=_0x1df629[_0xa9ee('0x55')][_0xa9ee('0xc7')];return db[_0xa9ee('0xc0')]['find']({'where':{'messageId':_0x1df629['body'][_0xa9ee('0x83')]}});}break;case _0xa9ee('0x86'):var _0xefb609=_0x1df629['body'][_0xa9ee('0x87')][0x0];if(_0xefb609[_0xa9ee('0x7e')]&&_0xefb609[_0xa9ee('0x28')][_0xa9ee('0xc8')]===_0xa9ee('0xc9')){_0x49cfd1=_0xefb609['status'][_0xa9ee('0xc8')];return db[_0xa9ee('0xc0')]['find']({'where':{'messageId':_0xefb609[_0xa9ee('0x7e')]}});}break;case _0xa9ee('0x8a'):if(_0x1df629['body']['messageId']&&_0x1df629[_0xa9ee('0x55')][_0xa9ee('0x28')]){_0x49cfd1=_0x1df629[_0xa9ee('0x55')][_0xa9ee('0x28')];return db[_0xa9ee('0xc0')][_0xa9ee('0x5c')]({'where':{'messageId':_0x1df629[_0xa9ee('0x55')][_0xa9ee('0x7e')]}});}break;case'bandwidth':if(_0x1df629['body'][0x0][_0xa9ee('0x23')]['id']){_0x49cfd1=_0x1df629[_0xa9ee('0x55')][0x0][_0xa9ee('0x3b')];return db[_0xa9ee('0xc0')][_0xa9ee('0x5c')]({'where':{'messageId':_0x1df629[_0xa9ee('0x55')][0x0][_0xa9ee('0x23')]['id']}});}break;case _0xa9ee('0x8d'):if(_0x1df629[_0xa9ee('0x55')][_0xa9ee('0xca')]&&_0x1df629[_0xa9ee('0x55')][_0xa9ee('0x28')]){_0x49cfd1=_0x1df629[_0xa9ee('0x55')]['status'];return db[_0xa9ee('0xc0')]['find']({'where':{'messageId':_0x1df629[_0xa9ee('0x55')]['redif']}});}break;}}})[_0xa9ee('0x1c')](handleEntityNotFound(_0x5c71a5,null))[_0xa9ee('0x1c')](function(_0x533408){if(_0x533408){_0x50f493=_0x533408;switch(_0x2d2166[_0xa9ee('0x3b')]){case _0xa9ee('0x7f'):if(_0x49cfd1==='DELIVERED'){return _0x50f493[_0xa9ee('0x5b')]({'read':!![]});}else{logger[_0xa9ee('0x21')](_0xa9ee('0x20'),_0xa9ee('0x28'),_0xa9ee('0x7f'),util[_0xa9ee('0xc4')](_0x1df629[_0xa9ee('0x55')],{'showHidden':![],'depth':null}));}break;case _0xa9ee('0x81'):if(_0x49cfd1==='1'){return _0x50f493['update']({'read':!![]});}else{logger[_0xa9ee('0x21')]('SmsAccount,\x20%s,\x20%s,\x20%s',_0xa9ee('0x28'),'skebby',util[_0xa9ee('0xc4')](_0x1df629[_0xa9ee('0x55')],{'showHidden':![],'depth':null}));}break;case _0xa9ee('0x82'):if(!_0x1df629['body'][_0xa9ee('0xcb')]&&_0x49cfd1>=0xc8&&_0x49cfd1<=0xce){return _0x50f493['update']({'read':!![]});}else{logger[_0xa9ee('0x21')](_0xa9ee('0x20'),_0xa9ee('0x28'),_0xa9ee('0x82'),util['inspect'](_0x1df629[_0xa9ee('0x55')],{'showHidden':![],'depth':null}));}break;case'infobip':var _0x36e504=_0x1df629['body'][_0xa9ee('0x87')][0x0];if(_0x36e504[_0xa9ee('0x28')]['groupName']===_0xa9ee('0xc9')){return _0x50f493[_0xa9ee('0x5b')]({'read':!![]});}else{logger['error'](_0xa9ee('0x20'),'status',_0xa9ee('0x86'),util[_0xa9ee('0xc4')](_0x1df629[_0xa9ee('0x55')],{'showHidden':![],'depth':null}));}break;case _0xa9ee('0x8a'):if(_0x49cfd1==_0xa9ee('0xcc')||_0x49cfd1==_0xa9ee('0xcd')){return _0x50f493[_0xa9ee('0x5b')]({'read':!![]});}else{logger['error'](_0xa9ee('0x20'),_0xa9ee('0x28'),'clickatell',util[_0xa9ee('0xc4')](_0x1df629[_0xa9ee('0x55')],{'showHidden':![],'depth':null}));}break;case'bandwidth':if(_0x49cfd1==_0xa9ee('0xce')){return _0x50f493['update']({'read':!![]});}else{logger[_0xa9ee('0x21')](_0xa9ee('0x20'),_0xa9ee('0x28'),_0xa9ee('0x8c'),util[_0xa9ee('0xc4')](_0x1df629[_0xa9ee('0x55')],{'showHidden':![],'depth':null}));}break;case _0xa9ee('0x8d'):if(_0x49cfd1===_0xa9ee('0xcf')||_0x49cfd1===_0xa9ee('0xd0')){return _0x50f493[_0xa9ee('0x5b')]({'read':!![]});}else{logger['error']('SmsAccount,\x20%s,\x20%s,\x20%s',_0xa9ee('0x28'),_0xa9ee('0x8d'),util[_0xa9ee('0xc4')](_0x1df629[_0xa9ee('0x55')],{'showHidden':![],'depth':null}));}break;}return _0x50f493;}})[_0xa9ee('0x1c')](respondWithResult(_0x5c71a5,null))[_0xa9ee('0x26')](handleError(_0x5c71a5,null));};exports[_0xa9ee('0xd1')]=function(_0x360d59,_0x5ea984,_0x4db2ae){var _0x2fdb62,_0x3e18d9,_0x1f384b;return db['SmsAccount'][_0xa9ee('0x5c')]({'where':{'id':_0x360d59[_0xa9ee('0x4f')]['id']}})[_0xa9ee('0x1c')](handleEntityNotFound(_0x5ea984,null))['then'](function(_0x52470f){if(_0x52470f){_0x1f384b=_0x52470f;logger[_0xa9ee('0x1f')](_0xa9ee('0x20'),_0xa9ee('0x28'),'received\x20delivery\x20report\x20from',_0x52470f[_0xa9ee('0x3b')],util[_0xa9ee('0xc4')](_0x360d59['query'],{'showHidden':![],'depth':null}));switch(_0x52470f[_0xa9ee('0x3b')]){case'csc':if(_0x360d59[_0xa9ee('0x3e')][_0xa9ee('0xd2')]&&_0x360d59[_0xa9ee('0x3e')]['state']){_0x3e18d9=_0x360d59[_0xa9ee('0x3e')]['state'];return db[_0xa9ee('0xc0')][_0xa9ee('0x5c')]({'where':{'messageId':_0x360d59[_0xa9ee('0x3e')][_0xa9ee('0xd2')]}});}break;}}})['then'](handleEntityNotFound(_0x5ea984,null))[_0xa9ee('0x1c')](function(_0xa83d7c){if(_0xa83d7c){_0x2fdb62=_0xa83d7c;switch(_0x1f384b[_0xa9ee('0x3b')]){case _0xa9ee('0x88'):if(_0x3e18d9==='2'||_0x3e18d9==='6'){return _0x2fdb62[_0xa9ee('0x5b')]({'read':!![]});}else{logger[_0xa9ee('0x21')](_0xa9ee('0x20'),_0xa9ee('0x28'),'csc',util[_0xa9ee('0xc4')](_0x360d59[_0xa9ee('0x3e')],{'showHidden':![],'depth':null}));};break;}return _0x2fdb62;}})[_0xa9ee('0x1c')](respondWithResult(_0x5ea984,null))[_0xa9ee('0x26')](handleError(_0x5ea984,null));};exports['addAgents']=function(_0x3bb858,_0x321175,_0x2f2dd4){return db[_0xa9ee('0x38')]['find']({'where':{'id':_0x3bb858[_0xa9ee('0x4f')]['id']}})['then'](handleEntityNotFound(_0x321175,null))['then'](function(_0x5a1fbf){if(_0x5a1fbf){return _0x5a1fbf['addAgents'](_0x3bb858[_0xa9ee('0x55')][_0xa9ee('0x64')],_[_0xa9ee('0x97')](_0x3bb858['body'],[_0xa9ee('0x64'),'id'])||{})['spread'](function(_0x3f0b80){for(var _0x4ed0ec=0x0;_0x4ed0ec<_0x3bb858[_0xa9ee('0x55')][_0xa9ee('0x64')]['length'];_0x4ed0ec+=0x1){socket[_0xa9ee('0xd3')](_0xa9ee('0xd4'),{'UserId':Number(_0x3bb858[_0xa9ee('0x55')]['ids'][_0x4ed0ec]),'SmsAccountId':Number(_0x3bb858['params']['id'])});}return _0x3f0b80;});}})[_0xa9ee('0x1c')](respondWithResult(_0x321175,null))[_0xa9ee('0x26')](handleError(_0x321175,null));};exports['removeAgents']=function(_0x4dbb10,_0x21c1f7,_0x448bef){return db[_0xa9ee('0x38')][_0xa9ee('0x5c')]({'where':{'id':_0x4dbb10[_0xa9ee('0x4f')]['id']}})[_0xa9ee('0x1c')](handleEntityNotFound(_0x21c1f7,null))[_0xa9ee('0x1c')](function(_0x3cf942){if(_0x3cf942){return _0x3cf942['removeAgents'](_0x4dbb10[_0xa9ee('0x3e')][_0xa9ee('0x64')])[_0xa9ee('0x1c')](function(){if(_[_0xa9ee('0xd5')](_0x4dbb10[_0xa9ee('0x3e')][_0xa9ee('0x64')])){for(var _0x3e016d=0x0;_0x3e016d<_0x4dbb10[_0xa9ee('0x3e')]['ids'][_0xa9ee('0x53')];_0x3e016d+=0x1){socket[_0xa9ee('0xd3')](_0xa9ee('0xd6'),{'UserId':Number(_0x4dbb10[_0xa9ee('0x3e')][_0xa9ee('0x64')][_0x3e016d]),'SmsAccountId':Number(_0x4dbb10[_0xa9ee('0x4f')]['id'])});}}else{socket['emit'](_0xa9ee('0xd6'),{'UserId':Number(_0x4dbb10[_0xa9ee('0x3e')][_0xa9ee('0x64')]),'SmsAccountId':Number(_0x4dbb10['params']['id'])});}});}})['then'](respondWithStatusCode(_0x21c1f7,null))[_0xa9ee('0x26')](handleError(_0x21c1f7,null));};exports[_0xa9ee('0xd7')]=function(_0x1bf13c,_0x68ec0a,_0x5bbc70){var _0x98a4f5={};var _0x340ad6={};var _0x439a99;var _0x137de5;return db['SmsAccount']['findOne']({'where':{'id':_0x1bf13c[_0xa9ee('0x4f')]['id']}})[_0xa9ee('0x1c')](handleEntityNotFound(_0x68ec0a,null))[_0xa9ee('0x1c')](function(_0x514719){if(_0x514719){_0x439a99=_0x514719;_0x340ad6[_0xa9ee('0x3d')]=_[_0xa9ee('0x51')](db[_0xa9ee('0xa0')][_0xa9ee('0x39')]);_0x340ad6['query']=_[_0xa9ee('0x51')](_0x1bf13c[_0xa9ee('0x3e')]);_0x340ad6[_0xa9ee('0x3f')]=_[_0xa9ee('0x40')](_0x340ad6[_0xa9ee('0x3d')],_0x340ad6[_0xa9ee('0x3e')]);_0x98a4f5[_0xa9ee('0x41')]=_['intersection'](_0x340ad6['model'],qs[_0xa9ee('0x52')](_0x1bf13c[_0xa9ee('0x3e')][_0xa9ee('0x52')]));_0x98a4f5[_0xa9ee('0x41')]=_0x98a4f5[_0xa9ee('0x41')][_0xa9ee('0x53')]?_0x98a4f5[_0xa9ee('0x41')]:_0x340ad6[_0xa9ee('0x3d')];_0x98a4f5[_0xa9ee('0x44')]=qs[_0xa9ee('0x45')](_0x1bf13c[_0xa9ee('0x3e')][_0xa9ee('0x45')]);_0x98a4f5[_0xa9ee('0x47')]=qs[_0xa9ee('0x3f')](_[_0xa9ee('0x61')](_0x1bf13c[_0xa9ee('0x3e')],_0x340ad6[_0xa9ee('0x3f')]));if(_0x1bf13c['query'][_0xa9ee('0x46')]){_0x98a4f5['where']=_[_0xa9ee('0x48')](_0x98a4f5[_0xa9ee('0x47')],{'$or':_[_0xa9ee('0x37')](_0x98a4f5[_0xa9ee('0x41')],function(_0x4fe8ea){var _0x505cd9={};_0x505cd9[_0x4fe8ea]={'$like':'%'+_0x1bf13c[_0xa9ee('0x3e')][_0xa9ee('0x46')]+'%'};return _0x505cd9;})});}_0x98a4f5=_[_0xa9ee('0x48')]({},_0x98a4f5,_0x1bf13c[_0xa9ee('0x4a')]);return _0x439a99['getAgents'](_0x98a4f5);}})[_0xa9ee('0x1c')](function(_0x19dddb){if(_0x19dddb){_0x137de5=_0x19dddb['length'];if(!_0x1bf13c[_0xa9ee('0x3e')]['hasOwnProperty'](_0xa9ee('0x43'))){_0x98a4f5[_0xa9ee('0x2d')]=qs[_0xa9ee('0x2d')](_0x1bf13c[_0xa9ee('0x3e')][_0xa9ee('0x2d')]);_0x98a4f5[_0xa9ee('0x2a')]=qs[_0xa9ee('0x2a')](_0x1bf13c[_0xa9ee('0x3e')][_0xa9ee('0x2a')]);}return _0x439a99[_0xa9ee('0xd7')](_0x98a4f5);}})[_0xa9ee('0x1c')](function(_0x5706d3){if(_0x5706d3){return _0x5706d3?{'count':_0x137de5,'rows':_0x5706d3}:null;}})['then'](respondWithResult(_0x68ec0a,null))[_0xa9ee('0x26')](handleError(_0x68ec0a,null));};
\ No newline at end of file
+var _0x8c58=['options','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','addDisposition','SmsAccountId','Disposition','getDispositions','findOne','hasOwnProperty','include','findAll','rows','removeDispositions','ids','addAnswer','CannedAnswer','getAnswers','rawAttributes','removeAnswers','notify','sms','SmsApplication','account','applications','orderBy','Applications','priority','CmContact','ValidationError','no\x20available\x20attributes','difference','createdAt','updatedAt','CompanyId','ListId','mobile','twilio','from','From','Body','MessageSid','skebby','sender','connectel','clicksend','messageId','message_id','Text','MessageUUID','infobip','results','text','csc','originatingAddress','segmentedMessage','fromNumber','replyMessageId','bandwidth','refid','isNil','Sequelize','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','CmList','Contacts','DESC','list','omit','contact','SmsInteraction','spread','interaction','created','autoclose','push','close','unmanaged','*,*,*,*','SmsMessage','ContactId','AttachmentId','agent','waitForTheAssignedAgent','Start','startRouting','receiveMessage','SmsAccount,\x20%s,\x20%s,\x20%s','entity\x20found','debug','text/xml','<?xml\x20version=\x221.0\x22\x20encoding=\x22UTF-8\x22?>\x0a<Response></Response>','addApplications','sequelize','Transaction','READ_COMMITTED','findAndCountAll','stack','finally','getApplications','getInteractions','Contact','User','Owner','internal','Tag','color','tag','to\x20is\x20mandatory','List','out','Messages','dataValues','received\x20delivery\x20report\x20from','inspect','requestid','statusInt','groupName','DELIVERED','redif','error_code','DELIVERED_TO_GATEWAY','RECEIVED_BY_RECIPIENT','clickatell','message-delivered','intelepeer','ACCEPTD','statusGet','message-id','state','addAgents','emit','userSmsAccount:save','removeAgents','isArray','userSmsAccount:remove','getAgents','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','ejs','fs-extra','lodash','squel','crypto','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./smsAccount.socket','register','jayson/promise','client','http','request','then','info','request\x20sent','stringify','error','code','SmsAccount,\x20%s,\x20%s','message','result','catch','sendStatus','status','json','undefined','limit','count','offset','set','Content-Range','reject','update','destroy','get','SmsAccounts','UserProfileResource','end','name','send','index','Pause','mandatoryDispositionPause','map','SmsAccount','fieldName','type','key','model','keys','query','filters','intersection','fields','attributes','length','nolimit','order','sort','pick','filter','where','merge','VIRTUAL','includeAll','show','params'];(function(_0x2d92e4,_0xd244d0){var _0x5893c4=function(_0x470023){while(--_0x470023){_0x2d92e4['push'](_0x2d92e4['shift']());}};_0x5893c4(++_0xd244d0);}(_0x8c58,0x93));var _0x88c5=function(_0x1ae5ab,_0xc5d441){_0x1ae5ab=_0x1ae5ab-0x0;var _0x1ce001=_0x8c58[_0x1ae5ab];return _0x1ce001;};'use strict';var emlformat=require(_0x88c5('0x0'));var rimraf=require(_0x88c5('0x1'));var zipdir=require(_0x88c5('0x2'));var jsonpatch=require(_0x88c5('0x3'));var rp=require(_0x88c5('0x4'));var moment=require(_0x88c5('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x88c5('0x6'));var util=require(_0x88c5('0x7'));var path=require(_0x88c5('0x8'));var sox=require(_0x88c5('0x9'));var csv=require('to-csv');var ejs=require(_0x88c5('0xa'));var fs=require('fs');var fs_extra=require(_0x88c5('0xb'));var _=require(_0x88c5('0xc'));var squel=require(_0x88c5('0xd'));var crypto=require(_0x88c5('0xe'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x88c5('0xf'));var Papa=require(_0x88c5('0x10'));var Redis=require(_0x88c5('0x11'));var authService=require(_0x88c5('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x88c5('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x88c5('0x14'))(_0x88c5('0x15'));var utils=require(_0x88c5('0x16'));var config=require(_0x88c5('0x17'));var licenseUtil=require(_0x88c5('0x18'));var db=require(_0x88c5('0x19'))['db'];config[_0x88c5('0x1a')]=_[_0x88c5('0x1b')](config[_0x88c5('0x1a')],{'host':_0x88c5('0x1c'),'port':0x18eb});var socket=require(_0x88c5('0x1d'))(new Redis(config[_0x88c5('0x1a')]));require(_0x88c5('0x1e'))[_0x88c5('0x1f')](socket);var jayson=require(_0x88c5('0x20'));var client=jayson[_0x88c5('0x21')][_0x88c5('0x22')]({'port':0x232c});function respondWithRpcPromise(_0x59ec86,_0x169417,_0x59d90a,_0x1fd974){return new BPromise(function(_0x5ca67e,_0xc92500){var _0x3b6293=_0x1fd974||client;return _0x3b6293[_0x88c5('0x23')](_0x59ec86,_0x59d90a)[_0x88c5('0x24')](function(_0x12d413){logger[_0x88c5('0x25')]('SmsAccount,\x20%s,\x20%s',_0x169417,_0x88c5('0x26'));logger['debug']('SmsAccount,\x20%s,\x20%s,\x20%s',_0x169417,_0x88c5('0x26'),JSON[_0x88c5('0x27')](_0x12d413));if(_0x12d413[_0x88c5('0x28')]){if(_0x12d413[_0x88c5('0x28')][_0x88c5('0x29')]===0x1f4){logger[_0x88c5('0x28')](_0x88c5('0x2a'),_0x169417,_0x12d413[_0x88c5('0x28')]['message']);return _0xc92500(_0x12d413['error'][_0x88c5('0x2b')]);}logger[_0x88c5('0x28')](_0x88c5('0x2a'),_0x169417,_0x12d413[_0x88c5('0x28')][_0x88c5('0x2b')]);return _0x5ca67e(_0x12d413[_0x88c5('0x28')]['message']);}else{logger[_0x88c5('0x25')](_0x88c5('0x2a'),_0x169417,_0x88c5('0x26'));_0x5ca67e(_0x12d413[_0x88c5('0x2c')]['message']);}})[_0x88c5('0x2d')](function(_0x3ebb9d){logger[_0x88c5('0x28')](_0x88c5('0x2a'),_0x169417,_0x3ebb9d);_0xc92500(_0x3ebb9d);});});}function respondWithStatusCode(_0xaf2d9e,_0x2067c4){_0x2067c4=_0x2067c4||0xcc;return function(_0x5b4dce){if(_0x5b4dce){return _0xaf2d9e[_0x88c5('0x2e')](_0x2067c4);}return _0xaf2d9e[_0x88c5('0x2f')](_0x2067c4)['end']();};}function respondWithResult(_0x55f25a,_0x4c86c9){_0x4c86c9=_0x4c86c9||0xc8;return function(_0x4402b0){if(_0x4402b0){return _0x55f25a[_0x88c5('0x2f')](_0x4c86c9)[_0x88c5('0x30')](_0x4402b0);}};}function respondWithFilteredResult(_0x30674a,_0x3a334a){return function(_0x31c953){if(_0x31c953){var _0x55c309=typeof _0x3a334a['offset']===_0x88c5('0x31')&&typeof _0x3a334a[_0x88c5('0x32')]===_0x88c5('0x31');var _0x47d09d=_0x31c953[_0x88c5('0x33')];var _0x55e55d=_0x55c309?0x0:_0x3a334a[_0x88c5('0x34')];var _0x781c94=_0x55c309?_0x31c953[_0x88c5('0x33')]:_0x3a334a[_0x88c5('0x34')]+_0x3a334a[_0x88c5('0x32')];var _0x2dc4dd;if(_0x781c94>=_0x47d09d){_0x781c94=_0x47d09d;_0x2dc4dd=0xc8;}else{_0x2dc4dd=0xce;}_0x30674a[_0x88c5('0x2f')](_0x2dc4dd);return _0x30674a[_0x88c5('0x35')](_0x88c5('0x36'),_0x55e55d+'-'+_0x781c94+'/'+_0x47d09d)[_0x88c5('0x30')](_0x31c953);}return null;};}function patchUpdates(_0x2ca222){return function(_0x4fde2b){try{jsonpatch['apply'](_0x4fde2b,_0x2ca222,!![]);}catch(_0x50a6f7){return BPromise[_0x88c5('0x37')](_0x50a6f7);}return _0x4fde2b['save']();};}function saveUpdates(_0x165146,_0x151828){return function(_0x2d6246){if(_0x2d6246){return _0x2d6246[_0x88c5('0x38')](_0x165146)[_0x88c5('0x24')](function(_0x5ea26b){return _0x5ea26b;});}return null;};}function removeEntity(_0x147603,_0x524070){return function(_0x2e6a4e){if(_0x2e6a4e){return _0x2e6a4e[_0x88c5('0x39')]()[_0x88c5('0x24')](function(){var _0x4e4084=_0x2e6a4e[_0x88c5('0x3a')]({'plain':!![]});var _0x362610=_0x88c5('0x3b');return db[_0x88c5('0x3c')][_0x88c5('0x39')]({'where':{'type':_0x362610,'resourceId':_0x4e4084['id']}})[_0x88c5('0x24')](function(){return _0x2e6a4e;});})['then'](function(){_0x147603[_0x88c5('0x2f')](0xcc)[_0x88c5('0x3d')]();});}};}function handleEntityNotFound(_0x5a4153,_0x2d5d6e){return function(_0x40b240){if(!_0x40b240){_0x5a4153[_0x88c5('0x2e')](0x194);}return _0x40b240;};}function handleError(_0x5e99c9,_0x5089b9){_0x5089b9=_0x5089b9||0x1f4;return function(_0x3d88c8){logger[_0x88c5('0x28')](_0x3d88c8['stack']);if(_0x3d88c8[_0x88c5('0x3e')]){delete _0x3d88c8['name'];}_0x5e99c9[_0x88c5('0x2f')](_0x5089b9)[_0x88c5('0x3f')](_0x3d88c8);};}exports[_0x88c5('0x40')]=function(_0x22f86c,_0x3d0221){var _0x3df467={'include':[{'model':db[_0x88c5('0x41')],'as':_0x88c5('0x42')}]},_0x303ec0={},_0x53b0ab={'count':0x0,'rows':[]};var _0x56bf29=_[_0x88c5('0x43')](db[_0x88c5('0x44')]['rawAttributes'],function(_0x288900){return{'name':_0x288900[_0x88c5('0x45')],'type':_0x288900[_0x88c5('0x46')][_0x88c5('0x47')]};});_0x303ec0[_0x88c5('0x48')]=_[_0x88c5('0x43')](_0x56bf29,'name');_0x303ec0['query']=_[_0x88c5('0x49')](_0x22f86c[_0x88c5('0x4a')]);_0x303ec0[_0x88c5('0x4b')]=_[_0x88c5('0x4c')](_0x303ec0[_0x88c5('0x48')],_0x303ec0['query']);_0x3df467['attributes']=_[_0x88c5('0x4c')](_0x303ec0[_0x88c5('0x48')],qs[_0x88c5('0x4d')](_0x22f86c[_0x88c5('0x4a')]['fields']));_0x3df467[_0x88c5('0x4e')]=_0x3df467['attributes'][_0x88c5('0x4f')]?_0x3df467['attributes']:_0x303ec0[_0x88c5('0x48')];if(!_0x22f86c[_0x88c5('0x4a')]['hasOwnProperty'](_0x88c5('0x50'))){_0x3df467[_0x88c5('0x32')]=qs[_0x88c5('0x32')](_0x22f86c[_0x88c5('0x4a')]['limit']);_0x3df467[_0x88c5('0x34')]=qs['offset'](_0x22f86c['query']['offset']);}_0x3df467[_0x88c5('0x51')]=qs['sort'](_0x22f86c[_0x88c5('0x4a')][_0x88c5('0x52')]);_0x3df467['where']=qs[_0x88c5('0x4b')](_[_0x88c5('0x53')](_0x22f86c[_0x88c5('0x4a')],_0x303ec0[_0x88c5('0x4b')]),_0x56bf29);if(_0x22f86c[_0x88c5('0x4a')][_0x88c5('0x54')]){_0x3df467[_0x88c5('0x55')]=_[_0x88c5('0x56')](_0x3df467[_0x88c5('0x55')],{'$or':_[_0x88c5('0x43')](_0x56bf29,function(_0x312fa8){if(_0x312fa8[_0x88c5('0x46')]!==_0x88c5('0x57')){var _0x4962fa={};_0x4962fa[_0x312fa8[_0x88c5('0x3e')]]={'$like':'%'+_0x22f86c[_0x88c5('0x4a')][_0x88c5('0x54')]+'%'};return _0x4962fa;}})});}_0x3df467=_[_0x88c5('0x56')]({},_0x3df467,_0x22f86c['options']);var _0x8677c1={'where':_0x3df467['where']};return db[_0x88c5('0x44')][_0x88c5('0x33')](_0x8677c1)[_0x88c5('0x24')](function(_0x22e792){_0x53b0ab[_0x88c5('0x33')]=_0x22e792;if(_0x22f86c[_0x88c5('0x4a')][_0x88c5('0x58')]){_0x3df467['include']=[{'all':!![]}];}return db[_0x88c5('0x44')]['findAll'](_0x3df467);})['then'](function(_0x2967af){_0x53b0ab['rows']=_0x2967af;return _0x53b0ab;})['then'](respondWithFilteredResult(_0x3d0221,_0x3df467))[_0x88c5('0x2d')](handleError(_0x3d0221,null));};exports[_0x88c5('0x59')]=function(_0x4a4570,_0xd86d53){var _0x4b2fda={'raw':![],'where':{'id':_0x4a4570[_0x88c5('0x5a')]['id']},'include':[{'model':db[_0x88c5('0x41')],'as':_0x88c5('0x42')}]},_0x23e520={};_0x23e520[_0x88c5('0x48')]=_[_0x88c5('0x49')](db['SmsAccount']['rawAttributes']);_0x23e520[_0x88c5('0x4a')]=_[_0x88c5('0x49')](_0x4a4570[_0x88c5('0x4a')]);_0x23e520[_0x88c5('0x4b')]=_[_0x88c5('0x4c')](_0x23e520[_0x88c5('0x48')],_0x23e520[_0x88c5('0x4a')]);_0x4b2fda['attributes']=_[_0x88c5('0x4c')](_0x23e520[_0x88c5('0x48')],qs[_0x88c5('0x4d')](_0x4a4570[_0x88c5('0x4a')][_0x88c5('0x4d')]));_0x4b2fda[_0x88c5('0x4e')]=_0x4b2fda[_0x88c5('0x4e')][_0x88c5('0x4f')]?_0x4b2fda['attributes']:_0x23e520[_0x88c5('0x48')];if(_0x4a4570[_0x88c5('0x4a')][_0x88c5('0x58')]){_0x4b2fda['include']=[{'all':!![]}];}_0x4b2fda=_[_0x88c5('0x56')]({},_0x4b2fda,_0x4a4570[_0x88c5('0x5b')]);return db[_0x88c5('0x44')][_0x88c5('0x5c')](_0x4b2fda)[_0x88c5('0x24')](handleEntityNotFound(_0xd86d53,null))[_0x88c5('0x24')](respondWithResult(_0xd86d53,null))[_0x88c5('0x2d')](handleError(_0xd86d53,null));};exports[_0x88c5('0x5d')]=function(_0x320a7c,_0x2411fd){return db[_0x88c5('0x44')]['create'](_0x320a7c[_0x88c5('0x5e')],{})[_0x88c5('0x24')](function(_0xf35995){var _0xf7808b=_0x320a7c[_0x88c5('0x5f')]['get']({'plain':!![]});if(!_0xf7808b)throw new Error(_0x88c5('0x60'));if(_0xf7808b['role']==='user'){var _0x26371c=_0xf35995['get']({'plain':!![]});var _0xbdd6b5=_0x88c5('0x3b');return db[_0x88c5('0x61')][_0x88c5('0x5c')]({'where':{'name':_0xbdd6b5,'userProfileId':_0xf7808b['userProfileId']},'raw':!![]})[_0x88c5('0x24')](function(_0x4aaffa){if(_0x4aaffa&&_0x4aaffa[_0x88c5('0x62')]===0x0){return db[_0x88c5('0x3c')]['create']({'name':_0x26371c[_0x88c5('0x3e')],'resourceId':_0x26371c['id'],'type':_0x4aaffa[_0x88c5('0x3e')],'sectionId':_0x4aaffa['id']},{})[_0x88c5('0x24')](function(){return _0xf35995;});}else{return _0xf35995;}})[_0x88c5('0x2d')](function(_0x12e817){logger[_0x88c5('0x28')](_0x88c5('0x63'),_0x12e817);throw _0x12e817;});}return _0xf35995;})[_0x88c5('0x24')](respondWithResult(_0x2411fd,0xc9))[_0x88c5('0x2d')](handleError(_0x2411fd,null));};exports['update']=function(_0x4917f7,_0x37cd31){if(_0x4917f7[_0x88c5('0x5e')]['id']){delete _0x4917f7[_0x88c5('0x5e')]['id'];}return db[_0x88c5('0x44')][_0x88c5('0x5c')]({'where':{'id':_0x4917f7[_0x88c5('0x5a')]['id']},'include':[{'model':db[_0x88c5('0x41')],'as':_0x88c5('0x42')}]})[_0x88c5('0x24')](handleEntityNotFound(_0x37cd31,null))[_0x88c5('0x24')](saveUpdates(_0x4917f7[_0x88c5('0x5e')],null))[_0x88c5('0x24')](respondWithResult(_0x37cd31,null))[_0x88c5('0x2d')](handleError(_0x37cd31,null));};exports[_0x88c5('0x39')]=function(_0x4c78af,_0x1e53dd){return db[_0x88c5('0x44')]['find']({'where':{'id':_0x4c78af[_0x88c5('0x5a')]['id']}})['then'](handleEntityNotFound(_0x1e53dd,null))[_0x88c5('0x24')](removeEntity(_0x1e53dd,null))[_0x88c5('0x2d')](handleError(_0x1e53dd,null));};exports['describe']=function(_0x4f5252,_0x1de5b3){return db['SmsAccount'][_0x88c5('0x64')]()[_0x88c5('0x24')](respondWithResult(_0x1de5b3,null))[_0x88c5('0x2d')](handleError(_0x1de5b3,null));};exports[_0x88c5('0x65')]=function(_0x540b08,_0x4c8375,_0xe24f2f){if(_0x540b08['body']['id']){delete _0x540b08[_0x88c5('0x5e')]['id'];}return db[_0x88c5('0x44')]['find']({'where':{'id':_0x540b08[_0x88c5('0x5a')]['id']}})[_0x88c5('0x24')](handleEntityNotFound(_0x4c8375,null))['then'](function(_0x403115){if(_0x403115){_0x540b08[_0x88c5('0x5e')][_0x88c5('0x66')]=_0x403115['id'];return db[_0x88c5('0x67')]['create'](_0x540b08[_0x88c5('0x5e')]);}})[_0x88c5('0x24')](respondWithResult(_0x4c8375,null))[_0x88c5('0x2d')](handleError(_0x4c8375,null));};exports[_0x88c5('0x68')]=function(_0x4a4961,_0x2b43ae,_0x4d6ea8){var _0xa79ab={'raw':![],'where':{}};var _0x30e281={};var _0x22254a={'count':0x0,'rows':[]};return db[_0x88c5('0x44')][_0x88c5('0x69')]({'where':{'id':_0x4a4961['params']['id']}})[_0x88c5('0x24')](handleEntityNotFound(_0x2b43ae,null))['then'](function(_0x1dd131){if(_0x1dd131){_0x30e281[_0x88c5('0x48')]=_[_0x88c5('0x49')](db[_0x88c5('0x67')]['rawAttributes']);_0x30e281[_0x88c5('0x4a')]=_[_0x88c5('0x49')](_0x4a4961[_0x88c5('0x4a')]);_0x30e281[_0x88c5('0x4b')]=_[_0x88c5('0x4c')](_0x30e281[_0x88c5('0x48')],_0x30e281['query']);_0xa79ab[_0x88c5('0x4e')]=_[_0x88c5('0x4c')](_0x30e281[_0x88c5('0x48')],qs[_0x88c5('0x4d')](_0x4a4961['query'][_0x88c5('0x4d')]));_0xa79ab[_0x88c5('0x4e')]=_0xa79ab[_0x88c5('0x4e')]['length']?_0xa79ab[_0x88c5('0x4e')]:_0x30e281[_0x88c5('0x48')];if(!_0x4a4961[_0x88c5('0x4a')][_0x88c5('0x6a')]('nolimit')){_0xa79ab[_0x88c5('0x32')]=qs[_0x88c5('0x32')](_0x4a4961['query']['limit']);_0xa79ab['offset']=qs[_0x88c5('0x34')](_0x4a4961['query'][_0x88c5('0x34')]);}_0xa79ab[_0x88c5('0x51')]=qs[_0x88c5('0x52')](_0x4a4961[_0x88c5('0x4a')][_0x88c5('0x52')]);_0xa79ab[_0x88c5('0x55')]=qs['filters'](_[_0x88c5('0x53')](_0x4a4961[_0x88c5('0x4a')],_0x30e281[_0x88c5('0x4b')]));_0xa79ab[_0x88c5('0x55')][_0x88c5('0x66')]=_0x1dd131['id'];if(_0x4a4961[_0x88c5('0x4a')][_0x88c5('0x54')]){_0xa79ab[_0x88c5('0x55')]=_[_0x88c5('0x56')](_0xa79ab[_0x88c5('0x55')],{'$or':_[_0x88c5('0x43')](_0xa79ab[_0x88c5('0x4e')],function(_0x14d498){var _0x5b395d={};_0x5b395d[_0x14d498]={'$like':'%'+_0x4a4961[_0x88c5('0x4a')][_0x88c5('0x54')]+'%'};return _0x5b395d;})});}_0xa79ab=_[_0x88c5('0x56')]({},_0xa79ab,_0x4a4961[_0x88c5('0x5b')]);return db[_0x88c5('0x67')][_0x88c5('0x33')]({'where':_0xa79ab['where']})[_0x88c5('0x24')](function(_0x26ef61){_0x22254a[_0x88c5('0x33')]=_0x26ef61;if(_0x4a4961[_0x88c5('0x4a')]['includeAll']){_0xa79ab[_0x88c5('0x6b')]=[{'all':!![]}];}return db['Disposition'][_0x88c5('0x6c')](_0xa79ab);})['then'](function(_0x11a1da){_0x22254a[_0x88c5('0x6d')]=_0x11a1da;return _0x22254a;});}})['then'](respondWithFilteredResult(_0x2b43ae,_0xa79ab))[_0x88c5('0x2d')](handleError(_0x2b43ae,null));};exports[_0x88c5('0x6e')]=function(_0x5ba11b,_0x59877e,_0x3ae4dd){return db[_0x88c5('0x44')][_0x88c5('0x5c')]({'where':{'id':_0x5ba11b[_0x88c5('0x5a')]['id']}})[_0x88c5('0x24')](handleEntityNotFound(_0x59877e,null))[_0x88c5('0x24')](function(_0x3f559f){if(_0x3f559f){return _0x3f559f['removeDispositions'](_0x5ba11b[_0x88c5('0x4a')][_0x88c5('0x6f')]);}})[_0x88c5('0x24')](respondWithStatusCode(_0x59877e,null))[_0x88c5('0x2d')](handleError(_0x59877e,null));};exports[_0x88c5('0x70')]=function(_0x129b46,_0x4d6d19,_0x176622){if(_0x129b46['body']['id']){delete _0x129b46[_0x88c5('0x5e')]['id'];}return db[_0x88c5('0x44')][_0x88c5('0x5c')]({'where':{'id':_0x129b46[_0x88c5('0x5a')]['id']}})['then'](handleEntityNotFound(_0x4d6d19,null))[_0x88c5('0x24')](function(_0x5bc213){if(_0x5bc213){_0x129b46[_0x88c5('0x5e')][_0x88c5('0x66')]=_0x5bc213['id'];return db[_0x88c5('0x71')][_0x88c5('0x5d')](_0x129b46[_0x88c5('0x5e')]);}})['then'](respondWithResult(_0x4d6d19,null))[_0x88c5('0x2d')](handleError(_0x4d6d19,null));};exports[_0x88c5('0x72')]=function(_0x511604,_0x887226,_0x120511){var _0x84a9cd={'raw':![],'where':{}};var _0x43d1d2={};var _0x263176={'count':0x0,'rows':[]};return db[_0x88c5('0x44')][_0x88c5('0x69')]({'where':{'id':_0x511604[_0x88c5('0x5a')]['id']}})[_0x88c5('0x24')](handleEntityNotFound(_0x887226,null))[_0x88c5('0x24')](function(_0x4ab5ef){if(_0x4ab5ef){_0x43d1d2[_0x88c5('0x48')]=_[_0x88c5('0x49')](db[_0x88c5('0x71')][_0x88c5('0x73')]);_0x43d1d2[_0x88c5('0x4a')]=_[_0x88c5('0x49')](_0x511604['query']);_0x43d1d2['filters']=_[_0x88c5('0x4c')](_0x43d1d2[_0x88c5('0x48')],_0x43d1d2[_0x88c5('0x4a')]);_0x84a9cd[_0x88c5('0x4e')]=_[_0x88c5('0x4c')](_0x43d1d2[_0x88c5('0x48')],qs[_0x88c5('0x4d')](_0x511604['query'][_0x88c5('0x4d')]));_0x84a9cd[_0x88c5('0x4e')]=_0x84a9cd['attributes'][_0x88c5('0x4f')]?_0x84a9cd[_0x88c5('0x4e')]:_0x43d1d2[_0x88c5('0x48')];if(!_0x511604['query'][_0x88c5('0x6a')]('nolimit')){_0x84a9cd['limit']=qs[_0x88c5('0x32')](_0x511604[_0x88c5('0x4a')][_0x88c5('0x32')]);_0x84a9cd['offset']=qs[_0x88c5('0x34')](_0x511604['query'][_0x88c5('0x34')]);}_0x84a9cd[_0x88c5('0x51')]=qs[_0x88c5('0x52')](_0x511604[_0x88c5('0x4a')][_0x88c5('0x52')]);_0x84a9cd[_0x88c5('0x55')]=qs[_0x88c5('0x4b')](_['pick'](_0x511604[_0x88c5('0x4a')],_0x43d1d2[_0x88c5('0x4b')]));_0x84a9cd['where'][_0x88c5('0x66')]=_0x4ab5ef['id'];if(_0x511604[_0x88c5('0x4a')][_0x88c5('0x54')]){_0x84a9cd['where']=_[_0x88c5('0x56')](_0x84a9cd[_0x88c5('0x55')],{'$or':_['map'](_0x84a9cd[_0x88c5('0x4e')],function(_0xda9396){var _0x54f7fb={};_0x54f7fb[_0xda9396]={'$like':'%'+_0x511604[_0x88c5('0x4a')][_0x88c5('0x54')]+'%'};return _0x54f7fb;})});}_0x84a9cd=_['merge']({},_0x84a9cd,_0x511604[_0x88c5('0x5b')]);return db['CannedAnswer'][_0x88c5('0x33')]({'where':_0x84a9cd[_0x88c5('0x55')]})['then'](function(_0x51e190){_0x263176['count']=_0x51e190;if(_0x511604[_0x88c5('0x4a')]['includeAll']){_0x84a9cd[_0x88c5('0x6b')]=[{'all':!![]}];}return db[_0x88c5('0x71')][_0x88c5('0x6c')](_0x84a9cd);})[_0x88c5('0x24')](function(_0x40931d){_0x263176[_0x88c5('0x6d')]=_0x40931d;return _0x263176;});}})[_0x88c5('0x24')](respondWithFilteredResult(_0x887226,_0x84a9cd))[_0x88c5('0x2d')](handleError(_0x887226,null));};exports[_0x88c5('0x74')]=function(_0xdcd343,_0x34611c,_0x11434e){return db[_0x88c5('0x44')]['find']({'where':{'id':_0xdcd343[_0x88c5('0x5a')]['id']}})[_0x88c5('0x24')](handleEntityNotFound(_0x34611c,null))[_0x88c5('0x24')](function(_0x1f6053){if(_0x1f6053){return _0x1f6053[_0x88c5('0x74')](_0xdcd343[_0x88c5('0x4a')][_0x88c5('0x6f')]);}})[_0x88c5('0x24')](respondWithStatusCode(_0x34611c,null))['catch'](handleError(_0x34611c,null));};exports[_0x88c5('0x75')]=function(_0x341669,_0x48e486,_0x1d8c47){var _0x27a6f8={'channel':_0x88c5('0x76')};var _0x165a9d=[];var _0x3de4e3=[];var _0x2126c9={};return db['SmsAccount'][_0x88c5('0x5c')]({'where':{'id':_0x341669['params']['id']},'include':[{'model':db[_0x88c5('0x77')],'as':'Applications'}]})[_0x88c5('0x24')](handleEntityNotFound(_0x48e486,null))['then'](function(_0x14a6c6){_0x27a6f8[_0x88c5('0x78')]=_0x14a6c6;_0x27a6f8[_0x88c5('0x79')]=_[_0x88c5('0x7a')](_0x14a6c6[_0x88c5('0x7b')],[_0x88c5('0x7c')],['asc']);if(_0x27a6f8['account'][_0x88c5('0x7b')]){delete _0x27a6f8[_0x88c5('0x78')][_0x88c5('0x7b')];}return db[_0x88c5('0x7d')][_0x88c5('0x64')]();})['then'](function(_0x281339){if(!_0x281339){throw new db['Sequelize'][(_0x88c5('0x7e'))](_0x88c5('0x7f'));}_0x165a9d=_[_0x88c5('0x80')](_[_0x88c5('0x49')](_0x281339),[_0x88c5('0x81'),'updatedAt']);_0x3de4e3=_[_0x88c5('0x80')](_[_0x88c5('0x49')](_0x281339),['createdAt',_0x88c5('0x82'),_0x88c5('0x83'),_0x88c5('0x84')]);_0x27a6f8['body']={'mapKey':_0x88c5('0x85')};if(_0x27a6f8['account'][_0x88c5('0x46')]){switch(_0x27a6f8['account'][_0x88c5('0x46')]){case _0x88c5('0x86'):_0x27a6f8[_0x88c5('0x5e')][_0x88c5('0x87')]=_0x341669[_0x88c5('0x5e')][_0x88c5('0x88')];_0x27a6f8['body'][_0x88c5('0x5e')]=_0x341669[_0x88c5('0x5e')][_0x88c5('0x89')];_0x27a6f8[_0x88c5('0x5e')]['messageId']=_0x341669[_0x88c5('0x5e')][_0x88c5('0x8a')];break;case _0x88c5('0x8b'):_0x27a6f8[_0x88c5('0x5e')][_0x88c5('0x87')]='+'+_0x341669[_0x88c5('0x5e')][_0x88c5('0x8c')];_0x27a6f8[_0x88c5('0x5e')][_0x88c5('0x5e')]=_0x341669[_0x88c5('0x5e')]['text'];break;case _0x88c5('0x8d'):_0x27a6f8['body'][_0x88c5('0x87')]=_0x341669[_0x88c5('0x5e')]['from'];_0x27a6f8[_0x88c5('0x5e')][_0x88c5('0x5e')]=_0x341669['body'][_0x88c5('0x2b')];break;case _0x88c5('0x8e'):_0x27a6f8[_0x88c5('0x5e')][_0x88c5('0x87')]=_0x341669[_0x88c5('0x5e')]['from'];_0x27a6f8[_0x88c5('0x5e')][_0x88c5('0x5e')]=_0x341669[_0x88c5('0x5e')][_0x88c5('0x5e')];_0x27a6f8['body'][_0x88c5('0x8f')]=_0x341669[_0x88c5('0x5e')][_0x88c5('0x90')];break;case'plivo':_0x27a6f8[_0x88c5('0x5e')][_0x88c5('0x87')]=_0x341669[_0x88c5('0x5e')][_0x88c5('0x88')];_0x27a6f8[_0x88c5('0x5e')][_0x88c5('0x5e')]=_0x341669[_0x88c5('0x5e')][_0x88c5('0x91')];_0x27a6f8['body'][_0x88c5('0x8f')]=_0x341669[_0x88c5('0x5e')][_0x88c5('0x92')];break;case _0x88c5('0x93'):_0x27a6f8['body']['from']='+'+_0x341669[_0x88c5('0x5e')][_0x88c5('0x94')][0x0][_0x88c5('0x87')];_0x27a6f8[_0x88c5('0x5e')]['body']=_0x341669['body'][_0x88c5('0x94')][0x0][_0x88c5('0x95')];_0x27a6f8[_0x88c5('0x5e')][_0x88c5('0x8f')]=_0x341669[_0x88c5('0x5e')][_0x88c5('0x94')][0x0]['messageId'];break;case _0x88c5('0x96'):_0x27a6f8[_0x88c5('0x5e')][_0x88c5('0x87')]=_0x341669['body'][_0x88c5('0x97')];_0x27a6f8['body'][_0x88c5('0x5e')]=_0x341669[_0x88c5('0x5e')][_0x88c5('0x98')][_0x88c5('0x2b')];break;case'clickatell':_0x27a6f8[_0x88c5('0x5e')][_0x88c5('0x87')]=_0x341669[_0x88c5('0x5e')][_0x88c5('0x99')];_0x27a6f8[_0x88c5('0x5e')][_0x88c5('0x5e')]=_0x341669[_0x88c5('0x5e')]['text'];_0x27a6f8[_0x88c5('0x5e')][_0x88c5('0x8f')]=_0x341669[_0x88c5('0x5e')][_0x88c5('0x9a')];break;case _0x88c5('0x9b'):_0x27a6f8[_0x88c5('0x5e')][_0x88c5('0x8f')]=_0x341669[_0x88c5('0x5e')][0x0][_0x88c5('0x2b')]['id'];_0x27a6f8['body']['from']=_0x341669[_0x88c5('0x5e')][0x0][_0x88c5('0x2b')][_0x88c5('0x87')];_0x27a6f8[_0x88c5('0x5e')][_0x88c5('0x5e')]=_0x341669[_0x88c5('0x5e')][0x0][_0x88c5('0x2b')][_0x88c5('0x95')];break;case'intelepeer':_0x27a6f8['body'][_0x88c5('0x87')]=_0x341669[_0x88c5('0x5e')][_0x88c5('0x87')];_0x27a6f8['body']['body']=_0x341669['body'][_0x88c5('0x2b')];_0x27a6f8[_0x88c5('0x5e')]['messageId']=_0x341669[_0x88c5('0x5e')][_0x88c5('0x9c')];break;}}if(_0x27a6f8['body']['id']){delete _0x27a6f8['body']['id'];}if(_[_0x88c5('0x9d')](_0x27a6f8['body']['from'])){throw new db[(_0x88c5('0x9e'))]['ValidationError'](_0x88c5('0x9f'));}if(_[_0x88c5('0x9d')](_0x27a6f8[_0x88c5('0x5e')][_0x88c5('0x5e')])||_0x27a6f8[_0x88c5('0x5e')][_0x88c5('0x5e')]===''){throw new db[(_0x88c5('0x9e'))][(_0x88c5('0x7e'))](_0x88c5('0xa0'));}if(_[_0x88c5('0x9d')](_0x27a6f8[_0x88c5('0x5e')][_0x88c5('0xa1')])){throw new db[(_0x88c5('0x9e'))][(_0x88c5('0x7e'))](_0x88c5('0xa2')+_0x3de4e3);}if(!_[_0x88c5('0xa3')](_0x3de4e3,_0x27a6f8[_0x88c5('0x5e')]['mapKey'])){throw new db[(_0x88c5('0x9e'))][(_0x88c5('0x7e'))](_0x88c5('0xa4')+_0x3de4e3);}_0x2126c9[_0x27a6f8[_0x88c5('0x5e')][_0x88c5('0xa1')]]=_0x27a6f8['body'][_0x88c5('0x87')];return db[_0x88c5('0xa5')][_0x88c5('0x5c')]({'where':{'id':_0x27a6f8[_0x88c5('0x78')][_0x88c5('0x84')]},'include':[{'model':db[_0x88c5('0x7d')],'as':_0x88c5('0xa6'),'where':_0x2126c9,'limit':0x1,'order':[['updatedAt',_0x88c5('0xa7')]]}]});})[_0x88c5('0x24')](handleEntityNotFound(_0x48e486,null))['then'](function(_0xa089ee){if(_0xa089ee){_0x27a6f8[_0x88c5('0xa8')]=_[_0x88c5('0xa9')](_0xa089ee,[_0x88c5('0xa6')]);if(_0xa089ee[_0x88c5('0xa6')][_0x88c5('0x4f')]){return _0xa089ee['Contacts'][0x0];}var _0x1fc393=_[_0x88c5('0x1b')](_0x27a6f8['body'],{'firstName':_0x27a6f8[_0x88c5('0x5e')][_0x88c5('0x87')],'ListId':_0xa089ee['id']});_0x1fc393[_0x27a6f8[_0x88c5('0x5e')][_0x88c5('0xa1')]]=_0x27a6f8[_0x88c5('0x5e')][_0x88c5('0x87')];return db[_0x88c5('0x7d')][_0x88c5('0x5d')](_0x1fc393,{'fields':_0x165a9d,'raw':!![]});}})['then'](handleEntityNotFound(_0x48e486,null))[_0x88c5('0x24')](function(_0x163291){if(_0x163291){_0x27a6f8[_0x88c5('0xaa')]=_0x163291;var _0x468870={'ContactId':_0x163291['id'],'phone':_0x27a6f8['body'][_0x88c5('0x87')],'SmsAccountId':_0x341669[_0x88c5('0x5a')]['id']};var _0x32a766={'ContactId':_0x163291['id'],'SmsAccountId':_0x341669[_0x88c5('0x5a')]['id'],'closed':![]};return db[_0x88c5('0xab')][_0x88c5('0x5c')]({'where':_0x32a766})[_0x88c5('0x24')](function(_0x30f701){if(_0x30f701){return[_0x30f701,![]];}return db[_0x88c5('0xab')][_0x88c5('0x5d')](_0x468870)[_0x88c5('0x24')](function(_0x31fa73){return[_0x31fa73,!![]];});});}})[_0x88c5('0xac')](function(_0x48cfdb,_0x5d3330){_0x27a6f8[_0x88c5('0xad')]=_0x48cfdb[_0x88c5('0x3a')]({'plain':!![]});_0x27a6f8['interaction'][_0x88c5('0xae')]=![];if(_0x5d3330){if(_0x27a6f8[_0x88c5('0x78')][_0x88c5('0xaf')]){_0x27a6f8[_0x88c5('0x79')][_0x88c5('0xb0')]({'id':0x0,'priority':_0x27a6f8[_0x88c5('0x79')]['length']+0x1,'app':_0x88c5('0xb1'),'appdata':_0x88c5('0xb2'),'interval':_0x88c5('0xb3')});}_0x27a6f8['interaction'][_0x88c5('0xae')]=!![];}return db[_0x88c5('0xb4')][_0x88c5('0x5d')]({'phone':_0x27a6f8[_0x88c5('0x5e')][_0x88c5('0x87')],'messageId':_0x27a6f8['body'][_0x88c5('0x8f')],'body':_0x27a6f8[_0x88c5('0x5e')][_0x88c5('0x5e')],'SmsAccountId':_0x341669[_0x88c5('0x5a')]['id'],'SmsInteractionId':_0x48cfdb['id'],'direction':'in','ContactId':_0x48cfdb[_0x88c5('0xb5')],'AttachmentId':_0x27a6f8[_0x88c5('0x5e')][_0x88c5('0xb6')]});})[_0x88c5('0x24')](function(_0x473c19){_0x27a6f8['message']=_0x473c19;if(_0x27a6f8['interaction']['UserId']){return db['User'][_0x88c5('0x5c')]({'attributes':['id',_0x88c5('0x3e')],'where':{'id':_0x27a6f8[_0x88c5('0xad')]['UserId']}})['then'](function(_0x1a572a){if(_0x1a572a){_0x27a6f8[_0x88c5('0x79')]['unshift']({'id':0x0,'priority':0x0,'app':_0x88c5('0xb7'),'appdata':_0x1a572a['name']+','+(_0x27a6f8[_0x88c5('0x78')][_0x88c5('0xb8')]||0xa),'interval':_0x88c5('0xb3')});}return respondWithRpcPromise(_0x88c5('0xb9'),'startRouting',_0x27a6f8);});}return respondWithRpcPromise(_0x88c5('0xb9'),_0x88c5('0xba'),_0x27a6f8);})[_0x88c5('0x24')](function(_0x13b123){if(_0x13b123){var _0x553edc=0xc8;var _0x3faa4c=_0x88c5('0xbb');logger[_0x88c5('0x25')](_0x88c5('0xbc'),_0x3faa4c,_0x553edc,_0x88c5('0xbd'));logger[_0x88c5('0xbe')]('SmsAccount,\x20%s,\x20%s,\x20%s,\x20%s',_0x3faa4c,_0x553edc,'entity\x20found',JSON['stringify'](_0x13b123));if(_0x27a6f8[_0x88c5('0x78')][_0x88c5('0x46')]===_0x88c5('0x86')){return _0x48e486['status'](_0x553edc)[_0x88c5('0x35')]('Content-Type',_0x88c5('0xbf'))[_0x88c5('0x3f')](_0x88c5('0xc0'));}else{return _0x48e486['status'](_0x553edc)[_0x88c5('0x30')](_0x13b123);}}})[_0x88c5('0x2d')](handleError(_0x48e486,null));};exports[_0x88c5('0xc1')]=function(_0x1fc8bc,_0x1965b7){var _0x133880=_0x1fc8bc['params']['id'];var _0x17d631=_0x1fc8bc[_0x88c5('0x5e')];var _0x2689a9=0xc8;var _0x392952=null;return db[_0x88c5('0xc2')]['transaction']({'isolationLevel':db['sequelize'][_0x88c5('0xc3')]['ISOLATION_LEVELS'][_0x88c5('0xc4')]},function(_0x478027){return db[_0x88c5('0x44')]['findOne']({'where':{'id':_0x133880},'transaction':_0x478027})['then'](function(_0x460471){if(_0x460471){return db[_0x88c5('0x77')][_0x88c5('0x39')]({'where':{'SmsAccountId':_0x133880},'transaction':_0x478027})[_0x88c5('0x24')](function(){var _0x33a9d3=_[_0x88c5('0x43')](_0x17d631,function(_0x59f988){_0x59f988[_0x88c5('0x66')]=_0x133880;return _0x59f988;});return db[_0x88c5('0x77')]['bulkCreate'](_0x33a9d3,{'transaction':_0x478027});});}else{_0x2689a9=0x194;_0x392952=[];}});})[_0x88c5('0x24')](function(){if(_0x2689a9!==0x194){return db['SmsApplication'][_0x88c5('0xc5')]({'where':{'SmsAccountId':_0x133880},'order':_0x88c5('0x7c')})[_0x88c5('0x24')](function(_0x28339){_0x392952=_0x28339;});}})['catch'](function(_0x5ebb03){_0x2689a9=0x1f4;logger[_0x88c5('0x28')](_0x5ebb03[_0x88c5('0xc6')]);if(_0x5ebb03['name']){delete _0x5ebb03[_0x88c5('0x3e')];}_0x392952=_0x5ebb03;})[_0x88c5('0xc7')](function(){if(_0x392952===null){_0x1965b7[_0x88c5('0x2e')](_0x2689a9);}else{if(_0x2689a9===0x1f4){_0x1965b7[_0x88c5('0x2f')](_0x2689a9)['send'](_0x392952);}else{_0x1965b7[_0x88c5('0x2f')](_0x2689a9)[_0x88c5('0x30')](_0x392952);}}});};exports[_0x88c5('0xc8')]=function(_0x50e80c,_0x205dd2,_0x2e7e61){var _0x583b89={};var _0x4bad11={};var _0x1dea95;var _0x42c9ec;return db[_0x88c5('0x44')]['findOne']({'where':{'id':_0x50e80c['params']['id']}})[_0x88c5('0x24')](handleEntityNotFound(_0x205dd2,null))[_0x88c5('0x24')](function(_0x39d50f){if(_0x39d50f){_0x1dea95=_0x39d50f;_0x4bad11[_0x88c5('0x48')]=_[_0x88c5('0x49')](db[_0x88c5('0x77')][_0x88c5('0x73')]);_0x4bad11[_0x88c5('0x4a')]=_[_0x88c5('0x49')](_0x50e80c['query']);_0x4bad11[_0x88c5('0x4b')]=_[_0x88c5('0x4c')](_0x4bad11['model'],_0x4bad11[_0x88c5('0x4a')]);_0x583b89['attributes']=_[_0x88c5('0x4c')](_0x4bad11[_0x88c5('0x48')],qs['fields'](_0x50e80c[_0x88c5('0x4a')]['fields']));_0x583b89[_0x88c5('0x4e')]=_0x583b89[_0x88c5('0x4e')][_0x88c5('0x4f')]?_0x583b89[_0x88c5('0x4e')]:_0x4bad11[_0x88c5('0x48')];_0x583b89[_0x88c5('0x51')]=qs[_0x88c5('0x52')](_0x50e80c[_0x88c5('0x4a')][_0x88c5('0x52')]);_0x583b89[_0x88c5('0x55')]=qs[_0x88c5('0x4b')](_[_0x88c5('0x53')](_0x50e80c[_0x88c5('0x4a')],_0x4bad11['filters']));if(_0x50e80c[_0x88c5('0x4a')]['filter']){_0x583b89[_0x88c5('0x55')]=_[_0x88c5('0x56')](_0x583b89[_0x88c5('0x55')],{'$or':_[_0x88c5('0x43')](_0x583b89[_0x88c5('0x4e')],function(_0x5d9c92){var _0x124ccc={};_0x124ccc[_0x5d9c92]={'$like':'%'+_0x50e80c[_0x88c5('0x4a')][_0x88c5('0x54')]+'%'};return _0x124ccc;})});}_0x583b89=_[_0x88c5('0x56')]({},_0x583b89,_0x50e80c[_0x88c5('0x5b')]);return _0x1dea95[_0x88c5('0xc8')](_0x583b89);}})['then'](function(_0x5b8b49){if(_0x5b8b49){_0x42c9ec=_0x5b8b49['length'];if(!_0x50e80c[_0x88c5('0x4a')]['hasOwnProperty'](_0x88c5('0x50'))){_0x583b89[_0x88c5('0x32')]=qs[_0x88c5('0x32')](_0x50e80c[_0x88c5('0x4a')][_0x88c5('0x32')]);_0x583b89['offset']=qs['offset'](_0x50e80c['query'][_0x88c5('0x34')]);}return _0x1dea95['getApplications'](_0x583b89);}})['then'](function(_0x4b508e){if(_0x4b508e){return _0x4b508e?{'count':_0x42c9ec,'rows':_0x4b508e}:null;}})[_0x88c5('0x24')](respondWithResult(_0x205dd2,null))[_0x88c5('0x2d')](handleError(_0x205dd2,null));};exports[_0x88c5('0xc9')]=function(_0x1db190,_0x3dcfd4,_0x70600a){var _0x773d13={'raw':![],'where':{}};var _0x67333c={};var _0x3f84a2={'count':0x0,'rows':[]};return db['SmsAccount'][_0x88c5('0x69')]({'where':{'id':_0x1db190[_0x88c5('0x5a')]['id']}})[_0x88c5('0x24')](handleEntityNotFound(_0x3dcfd4,null))[_0x88c5('0x24')](function(_0x12d0bb){if(_0x12d0bb){_0x67333c['model']=_[_0x88c5('0x49')](db[_0x88c5('0xab')]['rawAttributes']);_0x67333c[_0x88c5('0x4a')]=_[_0x88c5('0x49')](_0x1db190[_0x88c5('0x4a')]);_0x67333c[_0x88c5('0x4b')]=_[_0x88c5('0x4c')](_0x67333c[_0x88c5('0x48')],_0x67333c[_0x88c5('0x4a')]);_0x773d13['attributes']=_[_0x88c5('0x4c')](_0x67333c[_0x88c5('0x48')],qs[_0x88c5('0x4d')](_0x1db190[_0x88c5('0x4a')][_0x88c5('0x4d')]));_0x773d13[_0x88c5('0x4e')]=_0x773d13[_0x88c5('0x4e')][_0x88c5('0x4f')]?_0x773d13['attributes']:_0x67333c[_0x88c5('0x48')];if(!_0x1db190[_0x88c5('0x4a')][_0x88c5('0x6a')]('nolimit')){_0x773d13[_0x88c5('0x32')]=qs['limit'](_0x1db190[_0x88c5('0x4a')]['limit']);_0x773d13[_0x88c5('0x34')]=qs[_0x88c5('0x34')](_0x1db190['query'][_0x88c5('0x34')]);}_0x773d13[_0x88c5('0x51')]=qs[_0x88c5('0x52')](_0x1db190['query'][_0x88c5('0x52')]);_0x773d13[_0x88c5('0x55')]=qs[_0x88c5('0x4b')](_[_0x88c5('0x53')](_0x1db190[_0x88c5('0x4a')],_0x67333c[_0x88c5('0x4b')]));_0x773d13[_0x88c5('0x55')][_0x88c5('0x66')]=_0x12d0bb['id'];if(_0x1db190[_0x88c5('0x4a')][_0x88c5('0x54')]){_0x773d13[_0x88c5('0x55')]=_['merge'](_0x773d13[_0x88c5('0x55')],{'$or':_[_0x88c5('0x43')](_0x773d13[_0x88c5('0x4e')],function(_0x3d38d6){var _0x1c1cd3={};_0x1c1cd3[_0x3d38d6]={'$like':'%'+_0x1db190['query'][_0x88c5('0x54')]+'%'};return _0x1c1cd3;})});}_0x773d13=_[_0x88c5('0x56')]({},_0x773d13,_0x1db190[_0x88c5('0x5b')]);return db[_0x88c5('0xab')]['count']({'where':_0x773d13['where']})[_0x88c5('0x24')](function(_0x579940){_0x3f84a2[_0x88c5('0x33')]=_0x579940;if(_0x1db190[_0x88c5('0x4a')][_0x88c5('0x58')]){_0x773d13[_0x88c5('0x6b')]=[{'model':db['CmContact'],'as':_0x88c5('0xca'),'required':![]},{'model':db[_0x88c5('0xcb')],'as':_0x88c5('0xcc'),'attributes':[_0x88c5('0x3e'),'fullname',_0x88c5('0xcd')],'required':![]},{'model':db[_0x88c5('0xce')],'as':'Tags','attributes':['id',_0x88c5('0x3e'),_0x88c5('0xcf')],'where':_0x1db190[_0x88c5('0x4a')][_0x88c5('0xd0')]?{'id':_0x1db190['query'][_0x88c5('0xd0')]}:undefined,'required':_0x1db190[_0x88c5('0x4a')][_0x88c5('0xd0')]?!![]:![]}];}return db[_0x88c5('0xab')][_0x88c5('0x6c')](_0x773d13);})[_0x88c5('0x24')](function(_0xc95b7c){_0x3f84a2[_0x88c5('0x6d')]=_0xc95b7c;return _0x3f84a2;});}})['then'](respondWithFilteredResult(_0x3dcfd4,_0x773d13))['catch'](handleError(_0x3dcfd4,null));};exports[_0x88c5('0x3f')]=function(_0x39aa38,_0x28e196,_0x562d1c){var _0x2283be,_0x199c34,_0xceb439;if(_[_0x88c5('0x9d')](_0x39aa38['body'][_0x88c5('0x5e')])||_0x39aa38['body']['body']===''){throw new db[(_0x88c5('0x9e'))][(_0x88c5('0x7e'))](_0x88c5('0xa0'));}if(_[_0x88c5('0x9d')](_0x39aa38[_0x88c5('0x5e')]['to'])){throw new db[(_0x88c5('0x9e'))][(_0x88c5('0x7e'))](_0x88c5('0xd1'));}_0x2283be=_0x39aa38[_0x88c5('0x5e')]['to'];return db['SmsAccount'][_0x88c5('0x5c')]({'where':{'id':_0x39aa38[_0x88c5('0x5a')]['id']},'include':[{'model':db[_0x88c5('0xa5')],'as':'List','include':[{'model':db[_0x88c5('0x7d')],'as':'Contacts','where':{'mobile':_0x2283be},'limit':0x1,'order':[[_0x88c5('0x82'),_0x88c5('0xa7')]]}]}]})[_0x88c5('0x24')](handleEntityNotFound(_0x28e196,null))[_0x88c5('0x24')](function(_0x4d4573){if(_0x4d4573&&_0x4d4573[_0x88c5('0xd2')]){_0x199c34=_0x4d4573[_0x88c5('0x3a')]({'plain':!![]});if(_0x199c34[_0x88c5('0xd2')]&&_0x199c34[_0x88c5('0xd2')][_0x88c5('0xa6')][_0x88c5('0x4f')]){return _0x199c34[_0x88c5('0xd2')][_0x88c5('0xa6')][0x0];}return db[_0x88c5('0x7d')][_0x88c5('0x5d')](_[_0x88c5('0x1b')](_0x39aa38['body'],{'firstName':_0x2283be,'mobile':_0x2283be,'phone':_0x2283be,'ListId':_0x199c34[_0x88c5('0x84')]}));}})['then'](handleEntityNotFound(_0x28e196,null))[_0x88c5('0x24')](function(_0x4a7f98){if(_0x4a7f98){_0xceb439=_0x4a7f98;return db['SmsInteraction'][_0x88c5('0x5c')]({'where':{'ContactId':_0xceb439['id'],'closed':![],'SmsAccountId':_0x199c34['id']}})[_0x88c5('0x24')](function(_0x27c7a2){if(_0x27c7a2){return[_0x27c7a2,![]];}return db['SmsInteraction']['create']({'UserId':_0x39aa38[_0x88c5('0x5f')]['id'],'ContactId':_0xceb439['id'],'SmsAccountId':_0x199c34['id'],'phone':_0x2283be,'firstMsgDirection':_0x88c5('0xd3'),'Messages':[_[_0x88c5('0x56')](_0x39aa38[_0x88c5('0x5e')],{'read':![],'body':_0x39aa38[_0x88c5('0x5e')][_0x88c5('0x5e')],'phone':_0x2283be,'SmsAccountId':_0x199c34['id'],'UserId':_0x39aa38['user']['id'],'ContactId':_0xceb439['id']})]},{'include':[{'model':db[_0x88c5('0xb4')],'as':_0x88c5('0xd4')}]})[_0x88c5('0x24')](function(_0x20216d){return[_0x20216d,!![]];});});}})[_0x88c5('0xac')](function(_0x8dbf10,_0x523586){if(_0x523586){return _0x8dbf10;}return db['SmsMessage'][_0x88c5('0x5d')](_[_0x88c5('0x56')](_0x39aa38[_0x88c5('0x5e')],{'read':![],'body':_0x39aa38[_0x88c5('0x5e')][_0x88c5('0x5e')],'phone':_0x2283be,'SmsAccountId':_0x199c34['id'],'SmsInteractionId':_0x8dbf10['id'],'UserId':_0x39aa38[_0x88c5('0x5f')]['id'],'ContactId':_0xceb439['id']}))[_0x88c5('0x24')](function(_0x5e1404){_0x8dbf10[_0x88c5('0xd5')]['Messages']=[];_0x8dbf10[_0x88c5('0xd5')][_0x88c5('0xd4')]['push'](_0x5e1404['dataValues']);return _0x8dbf10;});})[_0x88c5('0x24')](respondWithResult(_0x28e196,null))[_0x88c5('0x2d')](handleError(_0x28e196,null));};exports['status']=function(_0x8d6f2,_0x9841fa,_0x359b4c){if(_0x8d6f2['body']['id']){delete _0x8d6f2[_0x88c5('0x5e')]['id'];}var _0x2a5190,_0x17b75d,_0xbf1fe4;return db[_0x88c5('0x44')]['find']({'where':{'id':_0x8d6f2[_0x88c5('0x5a')]['id']}})['then'](handleEntityNotFound(_0x9841fa,null))[_0x88c5('0x24')](function(_0x3b1081){if(_0x3b1081){_0xbf1fe4=_0x3b1081;logger['debug'](_0x88c5('0xbc'),'status',_0x88c5('0xd6'),_0x3b1081['type'],util[_0x88c5('0xd7')](_0x8d6f2[_0x88c5('0x5e')],{'showHidden':![],'depth':null}));switch(_0x3b1081['type']){case'skebby':if(_0x8d6f2[_0x88c5('0x5e')]['skebby_dispatch_id']&&_0x8d6f2[_0x88c5('0x5e')][_0x88c5('0x2f')]){_0x17b75d=_0x8d6f2[_0x88c5('0x5e')][_0x88c5('0x2f')];return db[_0x88c5('0xb4')][_0x88c5('0x5c')]({'where':{'messageId':_0x8d6f2[_0x88c5('0x5e')]['skebby_dispatch_id']}});}break;case _0x88c5('0x8d'):if(_0x8d6f2[_0x88c5('0x5e')][_0x88c5('0xd8')]&&_0x8d6f2['body'][_0x88c5('0xd9')]){_0x17b75d=_0x8d6f2[_0x88c5('0x5e')][_0x88c5('0xd9')];return db['SmsMessage']['find']({'where':{'messageId':_0x8d6f2[_0x88c5('0x5e')][_0x88c5('0xd8')]}});}break;case'clicksend':if(_0x8d6f2[_0x88c5('0x5e')][_0x88c5('0x90')]&&_0x8d6f2['body']['status_code']){_0x17b75d=_0x8d6f2[_0x88c5('0x5e')]['status_code'];return db[_0x88c5('0xb4')][_0x88c5('0x5c')]({'where':{'messageId':_0x8d6f2[_0x88c5('0x5e')][_0x88c5('0x90')]}});}break;case _0x88c5('0x93'):var _0x294c28=_0x8d6f2['body'][_0x88c5('0x94')][0x0];if(_0x294c28[_0x88c5('0x8f')]&&_0x294c28[_0x88c5('0x2f')][_0x88c5('0xda')]===_0x88c5('0xdb')){_0x17b75d=_0x294c28[_0x88c5('0x2f')][_0x88c5('0xda')];return db['SmsMessage'][_0x88c5('0x5c')]({'where':{'messageId':_0x294c28[_0x88c5('0x8f')]}});}break;case'clickatell':if(_0x8d6f2['body']['messageId']&&_0x8d6f2[_0x88c5('0x5e')][_0x88c5('0x2f')]){_0x17b75d=_0x8d6f2['body'][_0x88c5('0x2f')];return db['SmsMessage'][_0x88c5('0x5c')]({'where':{'messageId':_0x8d6f2['body']['messageId']}});}break;case _0x88c5('0x9b'):if(_0x8d6f2['body'][0x0][_0x88c5('0x2b')]['id']){_0x17b75d=_0x8d6f2[_0x88c5('0x5e')][0x0][_0x88c5('0x46')];return db[_0x88c5('0xb4')][_0x88c5('0x5c')]({'where':{'messageId':_0x8d6f2[_0x88c5('0x5e')][0x0][_0x88c5('0x2b')]['id']}});}break;case'intelepeer':if(_0x8d6f2['body'][_0x88c5('0xdc')]&&_0x8d6f2[_0x88c5('0x5e')]['status']){_0x17b75d=_0x8d6f2['body'][_0x88c5('0x2f')];return db[_0x88c5('0xb4')][_0x88c5('0x5c')]({'where':{'messageId':_0x8d6f2[_0x88c5('0x5e')]['redif']}});}break;}}})['then'](handleEntityNotFound(_0x9841fa,null))[_0x88c5('0x24')](function(_0x50b165){if(_0x50b165){_0x2a5190=_0x50b165;switch(_0xbf1fe4['type']){case _0x88c5('0x8b'):if(_0x17b75d===_0x88c5('0xdb')){return _0x2a5190[_0x88c5('0x38')]({'read':!![]});}else{logger[_0x88c5('0x28')](_0x88c5('0xbc'),_0x88c5('0x2f'),_0x88c5('0x8b'),util[_0x88c5('0xd7')](_0x8d6f2['body'],{'showHidden':![],'depth':null}));}break;case _0x88c5('0x8d'):if(_0x17b75d==='1'){return _0x2a5190[_0x88c5('0x38')]({'read':!![]});}else{logger['error'](_0x88c5('0xbc'),_0x88c5('0x2f'),_0x88c5('0x8b'),util[_0x88c5('0xd7')](_0x8d6f2[_0x88c5('0x5e')],{'showHidden':![],'depth':null}));}break;case _0x88c5('0x8e'):if(!_0x8d6f2[_0x88c5('0x5e')][_0x88c5('0xdd')]&&_0x17b75d>=0xc8&&_0x17b75d<=0xce){return _0x2a5190[_0x88c5('0x38')]({'read':!![]});}else{logger['error']('SmsAccount,\x20%s,\x20%s,\x20%s','status','clicksend',util[_0x88c5('0xd7')](_0x8d6f2['body'],{'showHidden':![],'depth':null}));}break;case _0x88c5('0x93'):var _0x48d837=_0x8d6f2[_0x88c5('0x5e')][_0x88c5('0x94')][0x0];if(_0x48d837[_0x88c5('0x2f')][_0x88c5('0xda')]===_0x88c5('0xdb')){return _0x2a5190[_0x88c5('0x38')]({'read':!![]});}else{logger[_0x88c5('0x28')]('SmsAccount,\x20%s,\x20%s,\x20%s','status',_0x88c5('0x93'),util[_0x88c5('0xd7')](_0x8d6f2[_0x88c5('0x5e')],{'showHidden':![],'depth':null}));}break;case'clickatell':if(_0x17b75d==_0x88c5('0xde')||_0x17b75d==_0x88c5('0xdf')){return _0x2a5190['update']({'read':!![]});}else{logger[_0x88c5('0x28')](_0x88c5('0xbc'),'status',_0x88c5('0xe0'),util[_0x88c5('0xd7')](_0x8d6f2[_0x88c5('0x5e')],{'showHidden':![],'depth':null}));}break;case'bandwidth':if(_0x17b75d==_0x88c5('0xe1')){return _0x2a5190[_0x88c5('0x38')]({'read':!![]});}else{logger[_0x88c5('0x28')]('SmsAccount,\x20%s,\x20%s,\x20%s',_0x88c5('0x2f'),_0x88c5('0x9b'),util['inspect'](_0x8d6f2[_0x88c5('0x5e')],{'showHidden':![],'depth':null}));}break;case _0x88c5('0xe2'):if(_0x17b75d==='DELIVRD'||_0x17b75d===_0x88c5('0xe3')){return _0x2a5190['update']({'read':!![]});}else{logger[_0x88c5('0x28')](_0x88c5('0xbc'),'status',_0x88c5('0xe2'),util[_0x88c5('0xd7')](_0x8d6f2[_0x88c5('0x5e')],{'showHidden':![],'depth':null}));}break;}return _0x2a5190;}})[_0x88c5('0x24')](respondWithResult(_0x9841fa,null))[_0x88c5('0x2d')](handleError(_0x9841fa,null));};exports[_0x88c5('0xe4')]=function(_0x5205f4,_0x16ad5f,_0x43860f){var _0x42d26f,_0x96fa4e,_0x323f48;return db[_0x88c5('0x44')][_0x88c5('0x5c')]({'where':{'id':_0x5205f4[_0x88c5('0x5a')]['id']}})[_0x88c5('0x24')](handleEntityNotFound(_0x16ad5f,null))[_0x88c5('0x24')](function(_0x49d113){if(_0x49d113){_0x323f48=_0x49d113;logger[_0x88c5('0xbe')](_0x88c5('0xbc'),_0x88c5('0x2f'),_0x88c5('0xd6'),_0x49d113[_0x88c5('0x46')],util['inspect'](_0x5205f4['query'],{'showHidden':![],'depth':null}));switch(_0x49d113['type']){case _0x88c5('0x96'):if(_0x5205f4[_0x88c5('0x4a')][_0x88c5('0xe5')]&&_0x5205f4[_0x88c5('0x4a')][_0x88c5('0xe6')]){_0x96fa4e=_0x5205f4[_0x88c5('0x4a')][_0x88c5('0xe6')];return db[_0x88c5('0xb4')][_0x88c5('0x5c')]({'where':{'messageId':_0x5205f4[_0x88c5('0x4a')]['message-id']}});}break;}}})['then'](handleEntityNotFound(_0x16ad5f,null))[_0x88c5('0x24')](function(_0x52746f){if(_0x52746f){_0x42d26f=_0x52746f;switch(_0x323f48[_0x88c5('0x46')]){case _0x88c5('0x96'):if(_0x96fa4e==='2'||_0x96fa4e==='6'){return _0x42d26f[_0x88c5('0x38')]({'read':!![]});}else{logger['error']('SmsAccount,\x20%s,\x20%s,\x20%s','status','csc',util[_0x88c5('0xd7')](_0x5205f4[_0x88c5('0x4a')],{'showHidden':![],'depth':null}));};break;}return _0x42d26f;}})['then'](respondWithResult(_0x16ad5f,null))[_0x88c5('0x2d')](handleError(_0x16ad5f,null));};exports[_0x88c5('0xe7')]=function(_0x5a546b,_0x5ec8bd,_0xfa67d2){return db['SmsAccount'][_0x88c5('0x5c')]({'where':{'id':_0x5a546b[_0x88c5('0x5a')]['id']}})['then'](handleEntityNotFound(_0x5ec8bd,null))[_0x88c5('0x24')](function(_0x4ab676){if(_0x4ab676){return _0x4ab676[_0x88c5('0xe7')](_0x5a546b[_0x88c5('0x5e')]['ids'],_[_0x88c5('0xa9')](_0x5a546b[_0x88c5('0x5e')],[_0x88c5('0x6f'),'id'])||{})[_0x88c5('0xac')](function(_0x29c453){for(var _0x550945=0x0;_0x550945<_0x5a546b[_0x88c5('0x5e')][_0x88c5('0x6f')]['length'];_0x550945+=0x1){socket[_0x88c5('0xe8')](_0x88c5('0xe9'),{'UserId':Number(_0x5a546b[_0x88c5('0x5e')][_0x88c5('0x6f')][_0x550945]),'SmsAccountId':Number(_0x5a546b[_0x88c5('0x5a')]['id'])});}return _0x29c453;});}})[_0x88c5('0x24')](respondWithResult(_0x5ec8bd,null))[_0x88c5('0x2d')](handleError(_0x5ec8bd,null));};exports['removeAgents']=function(_0x2c23e1,_0x508a86,_0x4f1ed9){return db['SmsAccount']['find']({'where':{'id':_0x2c23e1[_0x88c5('0x5a')]['id']}})[_0x88c5('0x24')](handleEntityNotFound(_0x508a86,null))[_0x88c5('0x24')](function(_0x5f3423){if(_0x5f3423){return _0x5f3423[_0x88c5('0xea')](_0x2c23e1[_0x88c5('0x4a')][_0x88c5('0x6f')])[_0x88c5('0x24')](function(){if(_[_0x88c5('0xeb')](_0x2c23e1[_0x88c5('0x4a')][_0x88c5('0x6f')])){for(var _0x3fbdd2=0x0;_0x3fbdd2<_0x2c23e1[_0x88c5('0x4a')][_0x88c5('0x6f')][_0x88c5('0x4f')];_0x3fbdd2+=0x1){socket[_0x88c5('0xe8')](_0x88c5('0xec'),{'UserId':Number(_0x2c23e1[_0x88c5('0x4a')]['ids'][_0x3fbdd2]),'SmsAccountId':Number(_0x2c23e1[_0x88c5('0x5a')]['id'])});}}else{socket['emit'](_0x88c5('0xec'),{'UserId':Number(_0x2c23e1[_0x88c5('0x4a')]['ids']),'SmsAccountId':Number(_0x2c23e1['params']['id'])});}});}})[_0x88c5('0x24')](respondWithStatusCode(_0x508a86,null))[_0x88c5('0x2d')](handleError(_0x508a86,null));};exports['getAgents']=function(_0x14338d,_0x1e93a2,_0x52afd3){var _0x2f22ab={};var _0x355159={};var _0x42b47e;var _0x29a2ac;return db[_0x88c5('0x44')]['findOne']({'where':{'id':_0x14338d[_0x88c5('0x5a')]['id']}})[_0x88c5('0x24')](handleEntityNotFound(_0x1e93a2,null))[_0x88c5('0x24')](function(_0x34aa3a){if(_0x34aa3a){_0x42b47e=_0x34aa3a;_0x355159[_0x88c5('0x48')]=_[_0x88c5('0x49')](db[_0x88c5('0xcb')][_0x88c5('0x73')]);_0x355159[_0x88c5('0x4a')]=_['keys'](_0x14338d['query']);_0x355159['filters']=_[_0x88c5('0x4c')](_0x355159[_0x88c5('0x48')],_0x355159['query']);_0x2f22ab[_0x88c5('0x4e')]=_[_0x88c5('0x4c')](_0x355159[_0x88c5('0x48')],qs['fields'](_0x14338d[_0x88c5('0x4a')]['fields']));_0x2f22ab[_0x88c5('0x4e')]=_0x2f22ab[_0x88c5('0x4e')][_0x88c5('0x4f')]?_0x2f22ab[_0x88c5('0x4e')]:_0x355159[_0x88c5('0x48')];_0x2f22ab['order']=qs[_0x88c5('0x52')](_0x14338d[_0x88c5('0x4a')][_0x88c5('0x52')]);_0x2f22ab[_0x88c5('0x55')]=qs[_0x88c5('0x4b')](_[_0x88c5('0x53')](_0x14338d[_0x88c5('0x4a')],_0x355159[_0x88c5('0x4b')]));if(_0x14338d[_0x88c5('0x4a')][_0x88c5('0x54')]){_0x2f22ab['where']=_[_0x88c5('0x56')](_0x2f22ab['where'],{'$or':_[_0x88c5('0x43')](_0x2f22ab[_0x88c5('0x4e')],function(_0x2a4263){var _0x5846d9={};_0x5846d9[_0x2a4263]={'$like':'%'+_0x14338d[_0x88c5('0x4a')][_0x88c5('0x54')]+'%'};return _0x5846d9;})});}_0x2f22ab=_[_0x88c5('0x56')]({},_0x2f22ab,_0x14338d['options']);return _0x42b47e[_0x88c5('0xed')](_0x2f22ab);}})[_0x88c5('0x24')](function(_0x3881cb){if(_0x3881cb){_0x29a2ac=_0x3881cb[_0x88c5('0x4f')];if(!_0x14338d['query'][_0x88c5('0x6a')](_0x88c5('0x50'))){_0x2f22ab[_0x88c5('0x32')]=qs[_0x88c5('0x32')](_0x14338d[_0x88c5('0x4a')][_0x88c5('0x32')]);_0x2f22ab[_0x88c5('0x34')]=qs[_0x88c5('0x34')](_0x14338d['query'][_0x88c5('0x34')]);}return _0x42b47e[_0x88c5('0xed')](_0x2f22ab);}})[_0x88c5('0x24')](function(_0x5e3544){if(_0x5e3544){return _0x5e3544?{'count':_0x29a2ac,'rows':_0x5e3544}:null;}})[_0x88c5('0x24')](respondWithResult(_0x1e93a2,null))['catch'](handleError(_0x1e93a2,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1251=['hasOwnProperty','exports','SmsAccount','setMaxListeners','save','update','remove','emit'];(function(_0x2617c4,_0x4af592){var _0x307c5b=function(_0x181ad0){while(--_0x181ad0){_0x2617c4['push'](_0x2617c4['shift']());}};_0x307c5b(++_0x4af592);}(_0x1251,0xda));var _0x1125=function(_0x4acd70,_0x47eabd){_0x4acd70=_0x4acd70-0x0;var _0x188a1e=_0x1251[_0x4acd70];return _0x188a1e;};'use strict';var EventEmitter=require('events');var SmsAccount=require('../../mysqldb')['db'][_0x1125('0x0')];var SmsAccountEvents=new EventEmitter();SmsAccountEvents[_0x1125('0x1')](0x0);var events={'afterCreate':_0x1125('0x2'),'afterUpdate':_0x1125('0x3'),'afterDestroy':_0x1125('0x4')};function emitEvent(_0x360f01){return function(_0x3fd225,_0x4e0950,_0x5b6e0d){SmsAccountEvents[_0x1125('0x5')](_0x360f01+':'+_0x3fd225['id'],_0x3fd225);SmsAccountEvents[_0x1125('0x5')](_0x360f01,_0x3fd225);_0x5b6e0d(null);};}for(var e in events){if(events[_0x1125('0x6')](e)){var event=events[e];SmsAccount['hook'](e,emitEvent(event));}}module[_0x1125('0x7')]=SmsAccountEvents;
\ No newline at end of file
+var _0xfc8c=['hasOwnProperty','hook','exports','SmsAccount','setMaxListeners','save','update','remove','emit'];(function(_0x23cbb9,_0x436986){var _0x1782b8=function(_0x2ca969){while(--_0x2ca969){_0x23cbb9['push'](_0x23cbb9['shift']());}};_0x1782b8(++_0x436986);}(_0xfc8c,0x13e));var _0xcfc8=function(_0x381589,_0x27a707){_0x381589=_0x381589-0x0;var _0x2a075d=_0xfc8c[_0x381589];return _0x2a075d;};'use strict';var EventEmitter=require('events');var SmsAccount=require('../../mysqldb')['db'][_0xcfc8('0x0')];var SmsAccountEvents=new EventEmitter();SmsAccountEvents[_0xcfc8('0x1')](0x0);var events={'afterCreate':_0xcfc8('0x2'),'afterUpdate':_0xcfc8('0x3'),'afterDestroy':_0xcfc8('0x4')};function emitEvent(_0x5b47f2){return function(_0x1775ca,_0x1db66c,_0x5fbc6e){SmsAccountEvents[_0xcfc8('0x5')](_0x5b47f2+':'+_0x1775ca['id'],_0x1775ca);SmsAccountEvents[_0xcfc8('0x5')](_0x5b47f2,_0x1775ca);_0x5fbc6e(null);};}for(var e in events){if(events[_0xcfc8('0x6')](e)){var event=events[e];SmsAccount[_0xcfc8('0x7')](e,emitEvent(event));}}module[_0xcfc8('0x8')]=SmsAccountEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x406c=['bluebird','request-promise','path','rimraf','exports','define','sms_accounts','lodash','util','../../config/logger'];(function(_0x90ae4b,_0x40a3b6){var _0x23e212=function(_0xdf876b){while(--_0xdf876b){_0x90ae4b['push'](_0x90ae4b['shift']());}};_0x23e212(++_0x40a3b6);}(_0x406c,0xbb));var _0xc406=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x406c[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0xc406('0x0'));var util=require(_0xc406('0x1'));var logger=require(_0xc406('0x2'))('api');var moment=require('moment');var BPromise=require(_0xc406('0x3'));var rp=require(_0xc406('0x4'));var fs=require('fs');var path=require(_0xc406('0x5'));var rimraf=require(_0xc406('0x6'));var config=require('../../config/environment');var attributes=require('./smsAccount.attributes');module[_0xc406('0x7')]=function(_0xa7ad09,_0x20b790){return _0xa7ad09[_0xc406('0x8')]('SmsAccount',attributes,{'tableName':_0xc406('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xd96d=['SmsAccount','lodash','util','moment','bluebird','request-promise','path','exports','define'];(function(_0xc75470,_0x20a365){var _0x51b422=function(_0x46d77f){while(--_0x46d77f){_0xc75470['push'](_0xc75470['shift']());}};_0x51b422(++_0x20a365);}(_0xd96d,0x160));var _0xdd96=function(_0x5b561d,_0x422b7c){_0x5b561d=_0x5b561d-0x0;var _0x431060=_0xd96d[_0x5b561d];return _0x431060;};'use strict';var _=require(_0xdd96('0x0'));var util=require(_0xdd96('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0xdd96('0x2'));var BPromise=require(_0xdd96('0x3'));var rp=require(_0xdd96('0x4'));var fs=require('fs');var path=require(_0xdd96('0x5'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require('./smsAccount.attributes');module[_0xdd96('0x6')]=function(_0x2bd476,_0x17b66c){return _0x2bd476[_0xdd96('0x7')](_0xdd96('0x8'),attributes,{'tableName':'sms_accounts','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8af6=['then','info','SmsAccount,\x20%s,\x20%s','request\x20sent','debug','error','message','catch','ShowSmsAccount','SmsAccount','find','options','raw','where','attributes','map','include','model','stringify','lodash','util','moment','randomstring','../../mysqldb','../../config/logger','rpc','jayson/promise','redis','socket.io-emitter','./smsAccount.socket','register','request'];(function(_0x188bcd,_0x52f234){var _0x3c4e5b=function(_0x23dc8f){while(--_0x23dc8f){_0x188bcd['push'](_0x188bcd['shift']());}};_0x3c4e5b(++_0x52f234);}(_0x8af6,0x173));var _0x68af=function(_0x247a06,_0x3f21e6){_0x247a06=_0x247a06-0x0;var _0x32262a=_0x8af6[_0x247a06];return _0x32262a;};'use strict';var _=require(_0x68af('0x0'));var util=require(_0x68af('0x1'));var moment=require(_0x68af('0x2'));var BPromise=require('bluebird');var rs=require(_0x68af('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x68af('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x68af('0x5'))(_0x68af('0x6'));var config=require('../../config/environment');var jayson=require(_0x68af('0x7'));var client=jayson['client']['http']({'port':0x232a});config['redis']=_['defaults'](config[_0x68af('0x8')],{'host':'localhost','port':0x18eb});var socket=require(_0x68af('0x9'))(new Redis(config['redis']));require(_0x68af('0xa'))[_0x68af('0xb')](socket);function respondWithRpcPromise(_0xf1f73e,_0xfaa6bc,_0x215f26){return new BPromise(function(_0x3fac4e,_0x553f80){return client[_0x68af('0xc')](_0xf1f73e,_0x215f26)[_0x68af('0xd')](function(_0x1f532f){logger[_0x68af('0xe')](_0x68af('0xf'),_0xfaa6bc,_0x68af('0x10'));logger[_0x68af('0x11')]('SmsAccount,\x20%s,\x20%s,\x20%s',_0xfaa6bc,_0x68af('0x10'),JSON['stringify'](_0x1f532f));if(_0x1f532f[_0x68af('0x12')]){if(_0x1f532f[_0x68af('0x12')]['code']===0x1f4){logger['error'](_0x68af('0xf'),_0xfaa6bc,_0x1f532f['error'][_0x68af('0x13')]);return _0x553f80(_0x1f532f[_0x68af('0x12')][_0x68af('0x13')]);}logger['error'](_0x68af('0xf'),_0xfaa6bc,_0x1f532f[_0x68af('0x12')]['message']);return _0x3fac4e(_0x1f532f[_0x68af('0x12')][_0x68af('0x13')]);}else{logger[_0x68af('0xe')](_0x68af('0xf'),_0xfaa6bc,_0x68af('0x10'));_0x3fac4e(_0x1f532f['result'][_0x68af('0x13')]);}})[_0x68af('0x14')](function(_0x2df50e){logger[_0x68af('0x12')](_0x68af('0xf'),_0xfaa6bc,_0x2df50e);_0x553f80(_0x2df50e);});});}exports[_0x68af('0x15')]=function(_0x384475){var _0x21e04c=this;return new Promise(function(_0xf6dc73,_0x389254){return db[_0x68af('0x16')][_0x68af('0x17')]({'raw':_0x384475[_0x68af('0x18')]?_0x384475[_0x68af('0x18')][_0x68af('0x19')]===undefined?!![]:![]:!![],'where':_0x384475[_0x68af('0x18')]?_0x384475['options'][_0x68af('0x1a')]||null:null,'attributes':_0x384475[_0x68af('0x18')]?_0x384475[_0x68af('0x18')][_0x68af('0x1b')]||null:null,'include':_0x384475[_0x68af('0x18')]?_0x384475[_0x68af('0x18')]['include']?_[_0x68af('0x1c')](_0x384475[_0x68af('0x18')][_0x68af('0x1d')],function(_0x500908){return{'model':db[_0x500908[_0x68af('0x1e')]],'as':_0x500908['as'],'attributes':_0x500908['attributes'],'include':_0x500908[_0x68af('0x1d')]?_[_0x68af('0x1c')](_0x500908['include'],function(_0x2ba2e7){return{'model':db[_0x2ba2e7[_0x68af('0x1e')]],'as':_0x2ba2e7['as'],'attributes':_0x2ba2e7[_0x68af('0x1b')],'include':_0x2ba2e7[_0x68af('0x1d')]?_[_0x68af('0x1c')](_0x2ba2e7[_0x68af('0x1d')],function(_0x3de9c8){return{'model':db[_0x3de9c8[_0x68af('0x1e')]],'as':_0x3de9c8['as'],'attributes':_0x3de9c8[_0x68af('0x1b')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x459d53){logger[_0x68af('0xe')](_0x68af('0x15'),_0x384475);logger[_0x68af('0x11')](_0x68af('0x15'),_0x384475,JSON[_0x68af('0x1f')](_0x459d53));_0xf6dc73(_0x459d53);})[_0x68af('0x14')](function(_0xaad211){logger[_0x68af('0x12')]('ShowSmsAccount',_0xaad211['message'],_0x384475);_0x389254(_0x21e04c[_0x68af('0x12')](0x1f4,_0xaad211[_0x68af('0x13')]));});});};
\ No newline at end of file
+var _0x51c2=['map','model','catch','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','jayson/promise','client','http','redis','localhost','./smsAccount.socket','then','info','SmsAccount,\x20%s,\x20%s','request\x20sent','debug','SmsAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','result','ShowSmsAccount','SmsAccount','options','raw','where','attributes','include'];(function(_0x46b7c4,_0x119ebc){var _0x7ab83=function(_0x3643ab){while(--_0x3643ab){_0x46b7c4['push'](_0x46b7c4['shift']());}};_0x7ab83(++_0x119ebc);}(_0x51c2,0x179));var _0x251c=function(_0x11a55c,_0x4eced9){_0x11a55c=_0x11a55c-0x0;var _0x26c390=_0x51c2[_0x11a55c];return _0x26c390;};'use strict';var _=require('lodash');var util=require(_0x251c('0x0'));var moment=require(_0x251c('0x1'));var BPromise=require(_0x251c('0x2'));var rs=require(_0x251c('0x3'));var fs=require('fs');var Redis=require(_0x251c('0x4'));var db=require(_0x251c('0x5'))['db'];var utils=require(_0x251c('0x6'));var logger=require(_0x251c('0x7'))('rpc');var config=require('../../config/environment');var jayson=require(_0x251c('0x8'));var client=jayson[_0x251c('0x9')][_0x251c('0xa')]({'port':0x232a});config[_0x251c('0xb')]=_['defaults'](config[_0x251c('0xb')],{'host':_0x251c('0xc'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x251c('0xb')]));require(_0x251c('0xd'))['register'](socket);function respondWithRpcPromise(_0x505a9f,_0x1036f4,_0x4a8013){return new BPromise(function(_0x462e06,_0x2209f3){return client['request'](_0x505a9f,_0x4a8013)[_0x251c('0xe')](function(_0x36e8ec){logger[_0x251c('0xf')](_0x251c('0x10'),_0x1036f4,_0x251c('0x11'));logger[_0x251c('0x12')](_0x251c('0x13'),_0x1036f4,'request\x20sent',JSON[_0x251c('0x14')](_0x36e8ec));if(_0x36e8ec[_0x251c('0x15')]){if(_0x36e8ec[_0x251c('0x15')]['code']===0x1f4){logger[_0x251c('0x15')]('SmsAccount,\x20%s,\x20%s',_0x1036f4,_0x36e8ec[_0x251c('0x15')][_0x251c('0x16')]);return _0x2209f3(_0x36e8ec[_0x251c('0x15')][_0x251c('0x16')]);}logger['error'](_0x251c('0x10'),_0x1036f4,_0x36e8ec['error'][_0x251c('0x16')]);return _0x462e06(_0x36e8ec[_0x251c('0x15')][_0x251c('0x16')]);}else{logger[_0x251c('0xf')](_0x251c('0x10'),_0x1036f4,_0x251c('0x11'));_0x462e06(_0x36e8ec[_0x251c('0x17')][_0x251c('0x16')]);}})['catch'](function(_0x21a554){logger[_0x251c('0x15')](_0x251c('0x10'),_0x1036f4,_0x21a554);_0x2209f3(_0x21a554);});});}exports[_0x251c('0x18')]=function(_0x5849e0){var _0x13c498=this;return new Promise(function(_0x48598d,_0x6a20e){return db[_0x251c('0x19')]['find']({'raw':_0x5849e0[_0x251c('0x1a')]?_0x5849e0[_0x251c('0x1a')][_0x251c('0x1b')]===undefined?!![]:![]:!![],'where':_0x5849e0[_0x251c('0x1a')]?_0x5849e0[_0x251c('0x1a')][_0x251c('0x1c')]||null:null,'attributes':_0x5849e0[_0x251c('0x1a')]?_0x5849e0[_0x251c('0x1a')][_0x251c('0x1d')]||null:null,'include':_0x5849e0['options']?_0x5849e0[_0x251c('0x1a')][_0x251c('0x1e')]?_[_0x251c('0x1f')](_0x5849e0['options'][_0x251c('0x1e')],function(_0x513b16){return{'model':db[_0x513b16['model']],'as':_0x513b16['as'],'attributes':_0x513b16[_0x251c('0x1d')],'include':_0x513b16[_0x251c('0x1e')]?_[_0x251c('0x1f')](_0x513b16[_0x251c('0x1e')],function(_0x1015e){return{'model':db[_0x1015e['model']],'as':_0x1015e['as'],'attributes':_0x1015e[_0x251c('0x1d')],'include':_0x1015e[_0x251c('0x1e')]?_[_0x251c('0x1f')](_0x1015e[_0x251c('0x1e')],function(_0x491ea1){return{'model':db[_0x491ea1[_0x251c('0x20')]],'as':_0x491ea1['as'],'attributes':_0x491ea1['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x36b112){logger['info'](_0x251c('0x18'),_0x5849e0);logger[_0x251c('0x12')]('ShowSmsAccount',_0x5849e0,JSON[_0x251c('0x14')](_0x36b112));_0x48598d(_0x36b112);})[_0x251c('0x21')](function(_0x268286){logger[_0x251c('0x15')](_0x251c('0x18'),_0x268286[_0x251c('0x16')],_0x5849e0);_0x6a20e(_0x13c498[_0x251c('0x15')](0x1f4,_0x268286[_0x251c('0x16')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['register','length','smsAccount:','./smsAccount.events','save','remove','emit','removeListener'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0xa9e0,0x123));var _0x0a9e=function(_0x47e7cb,_0x4c1b8d){_0x47e7cb=_0x47e7cb-0x0;var _0x2a8874=_0xa9e0[_0x47e7cb];return _0x2a8874;};'use strict';var SmsAccountEvents=require(_0x0a9e('0x0'));var events=[_0x0a9e('0x1'),_0x0a9e('0x2'),'update'];function createListener(_0x550fbc,_0x18d5c9){return function(_0x4ce2f1){_0x18d5c9[_0x0a9e('0x3')](_0x550fbc,_0x4ce2f1);};}function removeListener(_0x432180,_0x2ab90b){return function(){SmsAccountEvents[_0x0a9e('0x4')](_0x432180,_0x2ab90b);};}exports[_0x0a9e('0x5')]=function(_0x57b080){for(var _0x219af0=0x0,_0x441e3a=events[_0x0a9e('0x6')];_0x219af0<_0x441e3a;_0x219af0++){var _0x5f41ea=events[_0x219af0];var _0x503809=createListener(_0x0a9e('0x7')+_0x5f41ea,_0x57b080);SmsAccountEvents['on'](_0x5f41ea,_0x503809);}};
\ No newline at end of file
+var _0xa9e0=['register','length','smsAccount:','./smsAccount.events','save','remove','emit','removeListener'];(function(_0x57b54c,_0x54ce0d){var _0x59cc19=function(_0xa33bc6){while(--_0xa33bc6){_0x57b54c['push'](_0x57b54c['shift']());}};_0x59cc19(++_0x54ce0d);}(_0xa9e0,0x123));var _0x0a9e=function(_0x4cf98e,_0xba4b79){_0x4cf98e=_0x4cf98e-0x0;var _0x1623ac=_0xa9e0[_0x4cf98e];return _0x1623ac;};'use strict';var SmsAccountEvents=require(_0x0a9e('0x0'));var events=[_0x0a9e('0x1'),_0x0a9e('0x2'),'update'];function createListener(_0x550fbc,_0x18d5c9){return function(_0x4ce2f1){_0x18d5c9[_0x0a9e('0x3')](_0x550fbc,_0x4ce2f1);};}function removeListener(_0x432180,_0x2ab90b){return function(){SmsAccountEvents[_0x0a9e('0x4')](_0x432180,_0x2ab90b);};}exports[_0x0a9e('0x5')]=function(_0x57b080){for(var _0x219af0=0x0,_0x441e3a=events[_0x0a9e('0x6')];_0x219af0<_0x441e3a;_0x219af0++){var _0x5f41ea=events[_0x219af0];var _0x503809=createListener(_0x0a9e('0x7')+_0x5f41ea,_0x57b080);SmsAccountEvents['on'](_0x5f41ea,_0x503809);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x008c=['exports','multer','util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./smsApplication.controller','get','isAuthenticated','index','post','put','/:id'];(function(_0x2a661e,_0x439d00){var _0x2500b8=function(_0xd6150c){while(--_0xd6150c){_0x2a661e['push'](_0x2a661e['shift']());}};_0x2500b8(++_0x439d00);}(_0x008c,0x188));var _0xc008=function(_0x3902e5,_0x1a20dd){_0x3902e5=_0x3902e5-0x0;var _0x3cd7f4=_0x008c[_0x3902e5];return _0x3cd7f4;};'use strict';var multer=require(_0xc008('0x0'));var util=require(_0xc008('0x1'));var path=require(_0xc008('0x2'));var timeout=require(_0xc008('0x3'));var express=require(_0xc008('0x4'));var router=express['Router']();var fs_extra=require(_0xc008('0x5'));var auth=require(_0xc008('0x6'));var interaction=require(_0xc008('0x7'));var config=require(_0xc008('0x8'));var controller=require(_0xc008('0x9'));router[_0xc008('0xa')]('/',auth[_0xc008('0xb')](),controller[_0xc008('0xc')]);router[_0xc008('0xa')]('/:id',auth[_0xc008('0xb')](),controller['show']);router[_0xc008('0xd')]('/',auth['isAuthenticated'](),controller['create']);router[_0xc008('0xe')](_0xc008('0xf'),auth['isAuthenticated'](),controller['update']);router['delete'](_0xc008('0xf'),auth[_0xc008('0xb')](),controller['destroy']);module[_0xc008('0x10')]=router;
\ No newline at end of file
+var _0x3e74=['path','connect-timeout','express','../../components/auth/service','../../config/environment','./smsApplication.controller','get','isAuthenticated','index','/:id','show','post','put','update','delete','exports','multer'];(function(_0x1193d0,_0x299caa){var _0x16d3a3=function(_0xc1cd41){while(--_0xc1cd41){_0x1193d0['push'](_0x1193d0['shift']());}};_0x16d3a3(++_0x299caa);}(_0x3e74,0x175));var _0x43e7=function(_0x7c796b,_0x41a965){_0x7c796b=_0x7c796b-0x0;var _0x44e7b2=_0x3e74[_0x7c796b];return _0x44e7b2;};'use strict';var multer=require(_0x43e7('0x0'));var util=require('util');var path=require(_0x43e7('0x1'));var timeout=require(_0x43e7('0x2'));var express=require(_0x43e7('0x3'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0x43e7('0x4'));var interaction=require('../../components/interaction/service');var config=require(_0x43e7('0x5'));var controller=require(_0x43e7('0x6'));router[_0x43e7('0x7')]('/',auth[_0x43e7('0x8')](),controller[_0x43e7('0x9')]);router['get'](_0x43e7('0xa'),auth[_0x43e7('0x8')](),controller[_0x43e7('0xb')]);router[_0x43e7('0xc')]('/',auth[_0x43e7('0x8')](),controller['create']);router[_0x43e7('0xd')]('/:id',auth['isAuthenticated'](),controller[_0x43e7('0xe')]);router[_0x43e7('0xf')]('/:id',auth[_0x43e7('0x8')](),controller['destroy']);module[_0x43e7('0x10')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0b0d=['TEXT','*,*,*,*','sequelize','exports','INTEGER','STRING','noop'];(function(_0x419f39,_0x22d67a){var _0x4cc210=function(_0x6bb4f2){while(--_0x6bb4f2){_0x419f39['push'](_0x419f39['shift']());}};_0x4cc210(++_0x22d67a);}(_0x0b0d,0x17c));var _0xd0b0=function(_0x580576,_0x2f107d){_0x580576=_0x580576-0x0;var _0x3f55a0=_0x0b0d[_0x580576];return _0x3f55a0;};'use strict';var Sequelize=require(_0xd0b0('0x0'));module[_0xd0b0('0x1')]={'priority':{'type':Sequelize[_0xd0b0('0x2')],'allowNull':![]},'app':{'type':Sequelize[_0xd0b0('0x3')],'allowNull':![],'defaultValue':_0xd0b0('0x4')},'appdata':{'type':Sequelize[_0xd0b0('0x5')]()},'description':{'type':Sequelize['STRING']},'interval':{'type':Sequelize['STRING'],'defaultValue':_0xd0b0('0x6')}};
\ No newline at end of file
+var _0xfe0c=['TEXT','STRING','*,*,*,*','sequelize','INTEGER','noop'];(function(_0x5de096,_0x1e8275){var _0x493790=function(_0x166a6e){while(--_0x166a6e){_0x5de096['push'](_0x5de096['shift']());}};_0x493790(++_0x1e8275);}(_0xfe0c,0xa5));var _0xcfe0=function(_0x504a83,_0xf72d04){_0x504a83=_0x504a83-0x0;var _0x1af741=_0xfe0c[_0x504a83];return _0x1af741;};'use strict';var Sequelize=require(_0xcfe0('0x0'));module['exports']={'priority':{'type':Sequelize[_0xcfe0('0x1')],'allowNull':![]},'app':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0xcfe0('0x2')},'appdata':{'type':Sequelize[_0xcfe0('0x3')]()},'description':{'type':Sequelize[_0xcfe0('0x4')]},'interval':{'type':Sequelize[_0xcfe0('0x4')],'defaultValue':_0xcfe0('0x5')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe9e7=['request-promise','moment','bluebird','mustache','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','limit','count','Content-Range','apply','reject','save','update','then','destroy','sendStatus','error','stack','name','send','map','key','query','keys','filters','intersection','model','attributes','fields','hasOwnProperty','nolimit','sort','pick','filter','where','type','VIRTUAL','merge','SmsApplication','includeAll','include','findAll','catch','show','params','rawAttributes','length','options','find','create','body','eml-format','rimraf','zip-dir','fast-json-patch'];(function(_0x35142c,_0xd36c1c){var _0x5a17aa=function(_0x4ae4a3){while(--_0x4ae4a3){_0x35142c['push'](_0x35142c['shift']());}};_0x5a17aa(++_0xd36c1c);}(_0xe9e7,0xdd));var _0x7e9e=function(_0x5de052,_0x1c2783){_0x5de052=_0x5de052-0x0;var _0x51267a=_0xe9e7[_0x5de052];return _0x51267a;};'use strict';var emlformat=require(_0x7e9e('0x0'));var rimraf=require(_0x7e9e('0x1'));var zipdir=require(_0x7e9e('0x2'));var jsonpatch=require(_0x7e9e('0x3'));var rp=require(_0x7e9e('0x4'));var moment=require(_0x7e9e('0x5'));var BPromise=require(_0x7e9e('0x6'));var Mustache=require(_0x7e9e('0x7'));var util=require('util');var path=require(_0x7e9e('0x8'));var sox=require(_0x7e9e('0x9'));var csv=require(_0x7e9e('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x7e9e('0xb'));var _=require(_0x7e9e('0xc'));var squel=require(_0x7e9e('0xd'));var crypto=require(_0x7e9e('0xe'));var jsforce=require(_0x7e9e('0xf'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x7e9e('0x10'));var Redis=require(_0x7e9e('0x11'));var authService=require(_0x7e9e('0x12'));var qs=require(_0x7e9e('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x7e9e('0x14'));var logger=require('../../config/logger')('api');var utils=require(_0x7e9e('0x15'));var config=require(_0x7e9e('0x16'));var licenseUtil=require(_0x7e9e('0x17'));var db=require(_0x7e9e('0x18'))['db'];function respondWithStatusCode(_0x507d8e,_0x53b03e){_0x53b03e=_0x53b03e||0xcc;return function(_0x20c05c){if(_0x20c05c){return _0x507d8e['sendStatus'](_0x53b03e);}return _0x507d8e[_0x7e9e('0x19')](_0x53b03e)[_0x7e9e('0x1a')]();};}function respondWithResult(_0x43097d,_0x27fd18){_0x27fd18=_0x27fd18||0xc8;return function(_0x4562d8){if(_0x4562d8){return _0x43097d['status'](_0x27fd18)[_0x7e9e('0x1b')](_0x4562d8);}};}function respondWithFilteredResult(_0x486e44,_0x2f5647){return function(_0x350d11){if(_0x350d11){var _0x1cb102=typeof _0x2f5647[_0x7e9e('0x1c')]===_0x7e9e('0x1d')&&typeof _0x2f5647[_0x7e9e('0x1e')]===_0x7e9e('0x1d');var _0xd394a8=_0x350d11[_0x7e9e('0x1f')];var _0x3a40f2=_0x1cb102?0x0:_0x2f5647[_0x7e9e('0x1c')];var _0x3cc701=_0x1cb102?_0x350d11['count']:_0x2f5647[_0x7e9e('0x1c')]+_0x2f5647[_0x7e9e('0x1e')];var _0x321ed5;if(_0x3cc701>=_0xd394a8){_0x3cc701=_0xd394a8;_0x321ed5=0xc8;}else{_0x321ed5=0xce;}_0x486e44[_0x7e9e('0x19')](_0x321ed5);return _0x486e44['set'](_0x7e9e('0x20'),_0x3a40f2+'-'+_0x3cc701+'/'+_0xd394a8)[_0x7e9e('0x1b')](_0x350d11);}return null;};}function patchUpdates(_0x32574b){return function(_0x237268){try{jsonpatch[_0x7e9e('0x21')](_0x237268,_0x32574b,!![]);}catch(_0x4d9e6d){return BPromise[_0x7e9e('0x22')](_0x4d9e6d);}return _0x237268[_0x7e9e('0x23')]();};}function saveUpdates(_0x4bcf81,_0x4a5f49){return function(_0x2c65a5){if(_0x2c65a5){return _0x2c65a5[_0x7e9e('0x24')](_0x4bcf81)[_0x7e9e('0x25')](function(_0x30162d){return _0x30162d;});}return null;};}function removeEntity(_0x3ff132,_0x40f77){return function(_0x13b7b3){if(_0x13b7b3){return _0x13b7b3[_0x7e9e('0x26')]()[_0x7e9e('0x25')](function(){_0x3ff132[_0x7e9e('0x19')](0xcc)[_0x7e9e('0x1a')]();});}};}function handleEntityNotFound(_0x34bd11,_0x530890){return function(_0x4b39f1){if(!_0x4b39f1){_0x34bd11[_0x7e9e('0x27')](0x194);}return _0x4b39f1;};}function handleError(_0x5af7a0,_0x35345f){_0x35345f=_0x35345f||0x1f4;return function(_0x1533cd){logger[_0x7e9e('0x28')](_0x1533cd[_0x7e9e('0x29')]);if(_0x1533cd['name']){delete _0x1533cd[_0x7e9e('0x2a')];}_0x5af7a0[_0x7e9e('0x19')](_0x35345f)[_0x7e9e('0x2b')](_0x1533cd);};}exports['index']=function(_0x134fbd,_0x266f16){var _0x2390c7={},_0x976338={},_0x15daf7={'count':0x0,'rows':[]};var _0x954911=_[_0x7e9e('0x2c')](db['SmsApplication']['rawAttributes'],function(_0x385475){return{'name':_0x385475['fieldName'],'type':_0x385475['type'][_0x7e9e('0x2d')]};});_0x976338['model']=_[_0x7e9e('0x2c')](_0x954911,'name');_0x976338[_0x7e9e('0x2e')]=_[_0x7e9e('0x2f')](_0x134fbd[_0x7e9e('0x2e')]);_0x976338[_0x7e9e('0x30')]=_[_0x7e9e('0x31')](_0x976338[_0x7e9e('0x32')],_0x976338['query']);_0x2390c7[_0x7e9e('0x33')]=_[_0x7e9e('0x31')](_0x976338['model'],qs[_0x7e9e('0x34')](_0x134fbd[_0x7e9e('0x2e')]['fields']));_0x2390c7[_0x7e9e('0x33')]=_0x2390c7[_0x7e9e('0x33')]['length']?_0x2390c7[_0x7e9e('0x33')]:_0x976338[_0x7e9e('0x32')];if(!_0x134fbd[_0x7e9e('0x2e')][_0x7e9e('0x35')](_0x7e9e('0x36'))){_0x2390c7[_0x7e9e('0x1e')]=qs[_0x7e9e('0x1e')](_0x134fbd['query'][_0x7e9e('0x1e')]);_0x2390c7[_0x7e9e('0x1c')]=qs['offset'](_0x134fbd['query']['offset']);}_0x2390c7['order']=qs['sort'](_0x134fbd[_0x7e9e('0x2e')][_0x7e9e('0x37')]);_0x2390c7['where']=qs[_0x7e9e('0x30')](_[_0x7e9e('0x38')](_0x134fbd[_0x7e9e('0x2e')],_0x976338[_0x7e9e('0x30')]),_0x954911);if(_0x134fbd[_0x7e9e('0x2e')][_0x7e9e('0x39')]){_0x2390c7[_0x7e9e('0x3a')]=_['merge'](_0x2390c7[_0x7e9e('0x3a')],{'$or':_['map'](_0x954911,function(_0x303ea3){if(_0x303ea3[_0x7e9e('0x3b')]!==_0x7e9e('0x3c')){var _0x201b2a={};_0x201b2a[_0x303ea3[_0x7e9e('0x2a')]]={'$like':'%'+_0x134fbd[_0x7e9e('0x2e')][_0x7e9e('0x39')]+'%'};return _0x201b2a;}})});}_0x2390c7=_[_0x7e9e('0x3d')]({},_0x2390c7,_0x134fbd['options']);var _0x119268={'where':_0x2390c7['where']};return db[_0x7e9e('0x3e')][_0x7e9e('0x1f')](_0x119268)[_0x7e9e('0x25')](function(_0xa11e14){_0x15daf7[_0x7e9e('0x1f')]=_0xa11e14;if(_0x134fbd[_0x7e9e('0x2e')][_0x7e9e('0x3f')]){_0x2390c7[_0x7e9e('0x40')]=[{'all':!![]}];}return db[_0x7e9e('0x3e')][_0x7e9e('0x41')](_0x2390c7);})[_0x7e9e('0x25')](function(_0xd45a86){_0x15daf7['rows']=_0xd45a86;return _0x15daf7;})['then'](respondWithFilteredResult(_0x266f16,_0x2390c7))[_0x7e9e('0x42')](handleError(_0x266f16,null));};exports[_0x7e9e('0x43')]=function(_0x442833,_0x6ed17){var _0x412588={'raw':!![],'where':{'id':_0x442833[_0x7e9e('0x44')]['id']}},_0x44dbf8={};_0x44dbf8[_0x7e9e('0x32')]=_[_0x7e9e('0x2f')](db[_0x7e9e('0x3e')][_0x7e9e('0x45')]);_0x44dbf8[_0x7e9e('0x2e')]=_[_0x7e9e('0x2f')](_0x442833[_0x7e9e('0x2e')]);_0x44dbf8[_0x7e9e('0x30')]=_[_0x7e9e('0x31')](_0x44dbf8[_0x7e9e('0x32')],_0x44dbf8[_0x7e9e('0x2e')]);_0x412588[_0x7e9e('0x33')]=_[_0x7e9e('0x31')](_0x44dbf8['model'],qs[_0x7e9e('0x34')](_0x442833[_0x7e9e('0x2e')]['fields']));_0x412588[_0x7e9e('0x33')]=_0x412588[_0x7e9e('0x33')][_0x7e9e('0x46')]?_0x412588[_0x7e9e('0x33')]:_0x44dbf8[_0x7e9e('0x32')];if(_0x442833[_0x7e9e('0x2e')][_0x7e9e('0x3f')]){_0x412588['include']=[{'all':!![]}];}_0x412588=_[_0x7e9e('0x3d')]({},_0x412588,_0x442833[_0x7e9e('0x47')]);return db['SmsApplication'][_0x7e9e('0x48')](_0x412588)[_0x7e9e('0x25')](handleEntityNotFound(_0x6ed17,null))['then'](respondWithResult(_0x6ed17,null))['catch'](handleError(_0x6ed17,null));};exports[_0x7e9e('0x49')]=function(_0x47f1b8,_0x2ba8f4){return db[_0x7e9e('0x3e')][_0x7e9e('0x49')](_0x47f1b8['body'],{})['then'](respondWithResult(_0x2ba8f4,0xc9))['catch'](handleError(_0x2ba8f4,null));};exports['update']=function(_0x245f8a,_0x425470){if(_0x245f8a[_0x7e9e('0x4a')]['id']){delete _0x245f8a[_0x7e9e('0x4a')]['id'];}return db['SmsApplication'][_0x7e9e('0x48')]({'where':{'id':_0x245f8a[_0x7e9e('0x44')]['id']}})[_0x7e9e('0x25')](handleEntityNotFound(_0x425470,null))[_0x7e9e('0x25')](saveUpdates(_0x245f8a[_0x7e9e('0x4a')],null))[_0x7e9e('0x25')](respondWithResult(_0x425470,null))[_0x7e9e('0x42')](handleError(_0x425470,null));};exports['destroy']=function(_0x488e63,_0x33168e){return db[_0x7e9e('0x3e')][_0x7e9e('0x48')]({'where':{'id':_0x488e63[_0x7e9e('0x44')]['id']}})[_0x7e9e('0x25')](handleEntityNotFound(_0x33168e,null))[_0x7e9e('0x25')](removeEntity(_0x33168e,null))[_0x7e9e('0x42')](handleError(_0x33168e,null));};
\ No newline at end of file
+var _0x71b8=['papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','limit','count','offset','set','reject','save','then','error','stack','name','index','rawAttributes','fieldName','type','key','keys','query','filters','intersection','model','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','map','VIRTUAL','SmsApplication','includeAll','findAll','rows','catch','show','fields','include','options','find','create','body','update','destroy','zip-dir','fast-json-patch','request-promise','bluebird','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js'];(function(_0x1ca085,_0xbdfa92){var _0x291576=function(_0x3096a2){while(--_0x3096a2){_0x1ca085['push'](_0x1ca085['shift']());}};_0x291576(++_0xbdfa92);}(_0x71b8,0x1b4));var _0x871b=function(_0x3511d3,_0x4107ae){_0x3511d3=_0x3511d3-0x0;var _0x5d6321=_0x71b8[_0x3511d3];return _0x5d6321;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x871b('0x0'));var jsonpatch=require(_0x871b('0x1'));var rp=require(_0x871b('0x2'));var moment=require('moment');var BPromise=require(_0x871b('0x3'));var Mustache=require('mustache');var util=require(_0x871b('0x4'));var path=require('path');var sox=require(_0x871b('0x5'));var csv=require(_0x871b('0x6'));var ejs=require(_0x871b('0x7'));var fs=require('fs');var fs_extra=require(_0x871b('0x8'));var _=require(_0x871b('0x9'));var squel=require(_0x871b('0xa'));var crypto=require(_0x871b('0xb'));var jsforce=require(_0x871b('0xc'));var deskjs=require(_0x871b('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x871b('0xe'));var Redis=require(_0x871b('0xf'));var authService=require(_0x871b('0x10'));var qs=require(_0x871b('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x871b('0x12'))(_0x871b('0x13'));var utils=require(_0x871b('0x14'));var config=require(_0x871b('0x15'));var licenseUtil=require(_0x871b('0x16'));var db=require(_0x871b('0x17'))['db'];function respondWithStatusCode(_0x40f90c,_0x1f5d3b){_0x1f5d3b=_0x1f5d3b||0xcc;return function(_0x49edf4){if(_0x49edf4){return _0x40f90c[_0x871b('0x18')](_0x1f5d3b);}return _0x40f90c[_0x871b('0x19')](_0x1f5d3b)[_0x871b('0x1a')]();};}function respondWithResult(_0x5c1142,_0x3567d9){_0x3567d9=_0x3567d9||0xc8;return function(_0xe89178){if(_0xe89178){return _0x5c1142[_0x871b('0x19')](_0x3567d9)[_0x871b('0x1b')](_0xe89178);}};}function respondWithFilteredResult(_0xabd23e,_0x44ccf1){return function(_0xdaeac3){if(_0xdaeac3){var _0x29da8c=typeof _0x44ccf1['offset']===_0x871b('0x1c')&&typeof _0x44ccf1[_0x871b('0x1d')]===_0x871b('0x1c');var _0x1bd10b=_0xdaeac3[_0x871b('0x1e')];var _0x8dda1e=_0x29da8c?0x0:_0x44ccf1[_0x871b('0x1f')];var _0x2e3579=_0x29da8c?_0xdaeac3[_0x871b('0x1e')]:_0x44ccf1[_0x871b('0x1f')]+_0x44ccf1[_0x871b('0x1d')];var _0x1599b7;if(_0x2e3579>=_0x1bd10b){_0x2e3579=_0x1bd10b;_0x1599b7=0xc8;}else{_0x1599b7=0xce;}_0xabd23e[_0x871b('0x19')](_0x1599b7);return _0xabd23e[_0x871b('0x20')]('Content-Range',_0x8dda1e+'-'+_0x2e3579+'/'+_0x1bd10b)[_0x871b('0x1b')](_0xdaeac3);}return null;};}function patchUpdates(_0x359ec0){return function(_0x4697cd){try{jsonpatch['apply'](_0x4697cd,_0x359ec0,!![]);}catch(_0x36569f){return BPromise[_0x871b('0x21')](_0x36569f);}return _0x4697cd[_0x871b('0x22')]();};}function saveUpdates(_0x57adfe,_0x4d6e93){return function(_0x4760e2){if(_0x4760e2){return _0x4760e2['update'](_0x57adfe)[_0x871b('0x23')](function(_0x230f18){return _0x230f18;});}return null;};}function removeEntity(_0x286ccd,_0x5a1fef){return function(_0x2f78e5){if(_0x2f78e5){return _0x2f78e5['destroy']()[_0x871b('0x23')](function(){_0x286ccd[_0x871b('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5462b4,_0x492c77){return function(_0x5b0ffd){if(!_0x5b0ffd){_0x5462b4[_0x871b('0x18')](0x194);}return _0x5b0ffd;};}function handleError(_0x3abef5,_0x96520){_0x96520=_0x96520||0x1f4;return function(_0xa2cf3b){logger[_0x871b('0x24')](_0xa2cf3b[_0x871b('0x25')]);if(_0xa2cf3b[_0x871b('0x26')]){delete _0xa2cf3b[_0x871b('0x26')];}_0x3abef5['status'](_0x96520)['send'](_0xa2cf3b);};}exports[_0x871b('0x27')]=function(_0x3d754b,_0x19f003){var _0xfd051c={},_0x4f11f0={},_0x3b18ff={'count':0x0,'rows':[]};var _0x280318=_['map'](db['SmsApplication'][_0x871b('0x28')],function(_0x2a5b5c){return{'name':_0x2a5b5c[_0x871b('0x29')],'type':_0x2a5b5c[_0x871b('0x2a')][_0x871b('0x2b')]};});_0x4f11f0['model']=_['map'](_0x280318,_0x871b('0x26'));_0x4f11f0['query']=_[_0x871b('0x2c')](_0x3d754b[_0x871b('0x2d')]);_0x4f11f0[_0x871b('0x2e')]=_[_0x871b('0x2f')](_0x4f11f0[_0x871b('0x30')],_0x4f11f0[_0x871b('0x2d')]);_0xfd051c[_0x871b('0x31')]=_[_0x871b('0x2f')](_0x4f11f0['model'],qs['fields'](_0x3d754b[_0x871b('0x2d')]['fields']));_0xfd051c[_0x871b('0x31')]=_0xfd051c['attributes'][_0x871b('0x32')]?_0xfd051c['attributes']:_0x4f11f0['model'];if(!_0x3d754b['query'][_0x871b('0x33')](_0x871b('0x34'))){_0xfd051c[_0x871b('0x1d')]=qs[_0x871b('0x1d')](_0x3d754b[_0x871b('0x2d')]['limit']);_0xfd051c[_0x871b('0x1f')]=qs['offset'](_0x3d754b[_0x871b('0x2d')][_0x871b('0x1f')]);}_0xfd051c[_0x871b('0x35')]=qs['sort'](_0x3d754b[_0x871b('0x2d')][_0x871b('0x36')]);_0xfd051c[_0x871b('0x37')]=qs[_0x871b('0x2e')](_[_0x871b('0x38')](_0x3d754b[_0x871b('0x2d')],_0x4f11f0[_0x871b('0x2e')]),_0x280318);if(_0x3d754b['query'][_0x871b('0x39')]){_0xfd051c[_0x871b('0x37')]=_[_0x871b('0x3a')](_0xfd051c[_0x871b('0x37')],{'$or':_[_0x871b('0x3b')](_0x280318,function(_0x135564){if(_0x135564[_0x871b('0x2a')]!==_0x871b('0x3c')){var _0x18c213={};_0x18c213[_0x135564[_0x871b('0x26')]]={'$like':'%'+_0x3d754b[_0x871b('0x2d')][_0x871b('0x39')]+'%'};return _0x18c213;}})});}_0xfd051c=_[_0x871b('0x3a')]({},_0xfd051c,_0x3d754b['options']);var _0x423f51={'where':_0xfd051c[_0x871b('0x37')]};return db[_0x871b('0x3d')][_0x871b('0x1e')](_0x423f51)[_0x871b('0x23')](function(_0x562aa5){_0x3b18ff[_0x871b('0x1e')]=_0x562aa5;if(_0x3d754b[_0x871b('0x2d')][_0x871b('0x3e')]){_0xfd051c['include']=[{'all':!![]}];}return db[_0x871b('0x3d')][_0x871b('0x3f')](_0xfd051c);})[_0x871b('0x23')](function(_0x3f9705){_0x3b18ff[_0x871b('0x40')]=_0x3f9705;return _0x3b18ff;})[_0x871b('0x23')](respondWithFilteredResult(_0x19f003,_0xfd051c))[_0x871b('0x41')](handleError(_0x19f003,null));};exports[_0x871b('0x42')]=function(_0x47da57,_0x4b90a5){var _0x1ad69a={'raw':!![],'where':{'id':_0x47da57['params']['id']}},_0x4b7a2e={};_0x4b7a2e[_0x871b('0x30')]=_[_0x871b('0x2c')](db[_0x871b('0x3d')][_0x871b('0x28')]);_0x4b7a2e[_0x871b('0x2d')]=_[_0x871b('0x2c')](_0x47da57[_0x871b('0x2d')]);_0x4b7a2e[_0x871b('0x2e')]=_[_0x871b('0x2f')](_0x4b7a2e[_0x871b('0x30')],_0x4b7a2e['query']);_0x1ad69a['attributes']=_[_0x871b('0x2f')](_0x4b7a2e['model'],qs['fields'](_0x47da57[_0x871b('0x2d')][_0x871b('0x43')]));_0x1ad69a['attributes']=_0x1ad69a['attributes']['length']?_0x1ad69a[_0x871b('0x31')]:_0x4b7a2e['model'];if(_0x47da57['query'][_0x871b('0x3e')]){_0x1ad69a[_0x871b('0x44')]=[{'all':!![]}];}_0x1ad69a=_['merge']({},_0x1ad69a,_0x47da57[_0x871b('0x45')]);return db[_0x871b('0x3d')][_0x871b('0x46')](_0x1ad69a)[_0x871b('0x23')](handleEntityNotFound(_0x4b90a5,null))[_0x871b('0x23')](respondWithResult(_0x4b90a5,null))['catch'](handleError(_0x4b90a5,null));};exports[_0x871b('0x47')]=function(_0x2e68ee,_0x580e75){return db[_0x871b('0x3d')][_0x871b('0x47')](_0x2e68ee[_0x871b('0x48')],{})[_0x871b('0x23')](respondWithResult(_0x580e75,0xc9))['catch'](handleError(_0x580e75,null));};exports[_0x871b('0x49')]=function(_0x54b234,_0x24174d){if(_0x54b234[_0x871b('0x48')]['id']){delete _0x54b234['body']['id'];}return db[_0x871b('0x3d')][_0x871b('0x46')]({'where':{'id':_0x54b234['params']['id']}})[_0x871b('0x23')](handleEntityNotFound(_0x24174d,null))['then'](saveUpdates(_0x54b234[_0x871b('0x48')],null))[_0x871b('0x23')](respondWithResult(_0x24174d,null))[_0x871b('0x41')](handleError(_0x24174d,null));};exports[_0x871b('0x4a')]=function(_0x2e2c2f,_0x5400f4){return db[_0x871b('0x3d')][_0x871b('0x46')]({'where':{'id':_0x2e2c2f['params']['id']}})[_0x871b('0x23')](handleEntityNotFound(_0x5400f4,null))['then'](removeEntity(_0x5400f4,null))[_0x871b('0x41')](handleError(_0x5400f4,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2d0d=['util','api','path','rimraf','../../config/environment','./smsApplication.attributes','define','SmsApplication','utf8mb4','utf8mb4_unicode_ci'];(function(_0x2534cf,_0x545be6){var _0x221461=function(_0x379e83){while(--_0x379e83){_0x2534cf['push'](_0x2534cf['shift']());}};_0x221461(++_0x545be6);}(_0x2d0d,0x1a4));var _0xd2d0=function(_0x4eb59e,_0x1b60b4){_0x4eb59e=_0x4eb59e-0x0;var _0x595d0d=_0x2d0d[_0x4eb59e];return _0x595d0d;};'use strict';var _=require('lodash');var util=require(_0xd2d0('0x0'));var logger=require('../../config/logger')(_0xd2d0('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0xd2d0('0x2'));var rimraf=require(_0xd2d0('0x3'));var config=require(_0xd2d0('0x4'));var attributes=require(_0xd2d0('0x5'));module['exports']=function(_0xef40bc,_0x3e5003){return _0xef40bc[_0xd2d0('0x6')](_0xd2d0('0x7'),attributes,{'tableName':'sms_applications','paranoid':![],'indexes':[],'timestamps':!![],'charset':_0xd2d0('0x8'),'collate':_0xd2d0('0x9')});};
\ No newline at end of file
+var _0x4a25=['lodash','../../config/logger','moment','bluebird','request-promise','path','../../config/environment','./smsApplication.attributes','exports','SmsApplication','sms_applications','utf8mb4'];(function(_0x15fa45,_0x132622){var _0x3e7413=function(_0xba8cb9){while(--_0xba8cb9){_0x15fa45['push'](_0x15fa45['shift']());}};_0x3e7413(++_0x132622);}(_0x4a25,0x1d4));var _0x54a2=function(_0x5cbd7b,_0x207439){_0x5cbd7b=_0x5cbd7b-0x0;var _0x3fdfb8=_0x4a25[_0x5cbd7b];return _0x3fdfb8;};'use strict';var _=require(_0x54a2('0x0'));var util=require('util');var logger=require(_0x54a2('0x1'))('api');var moment=require(_0x54a2('0x2'));var BPromise=require(_0x54a2('0x3'));var rp=require(_0x54a2('0x4'));var fs=require('fs');var path=require(_0x54a2('0x5'));var rimraf=require('rimraf');var config=require(_0x54a2('0x6'));var attributes=require(_0x54a2('0x7'));module[_0x54a2('0x8')]=function(_0x3ecde5,_0x472eed){return _0x3ecde5['define'](_0x54a2('0x9'),attributes,{'tableName':_0x54a2('0xa'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x54a2('0xb'),'collate':'utf8mb4_unicode_ci'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6db4=['randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','SmsApplication,\x20%s,\x20%s','request\x20sent','debug','SmsApplication,\x20%s,\x20%s,\x20%s','error','code','message','catch','util','moment','bluebird'];(function(_0x3f08a0,_0x11cdd9){var _0x5c901e=function(_0x11a2f6){while(--_0x11a2f6){_0x3f08a0['push'](_0x3f08a0['shift']());}};_0x5c901e(++_0x11cdd9);}(_0x6db4,0x111));var _0x46db=function(_0x551cd8,_0x4dcf77){_0x551cd8=_0x551cd8-0x0;var _0x462d45=_0x6db4[_0x551cd8];return _0x462d45;};'use strict';var _=require('lodash');var util=require(_0x46db('0x0'));var moment=require(_0x46db('0x1'));var BPromise=require(_0x46db('0x2'));var rs=require(_0x46db('0x3'));var fs=require('fs');var Redis=require(_0x46db('0x4'));var db=require(_0x46db('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x46db('0x6'))(_0x46db('0x7'));var config=require(_0x46db('0x8'));var jayson=require(_0x46db('0x9'));var client=jayson[_0x46db('0xa')][_0x46db('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x23de32,_0x5409cd,_0x3a2dcb){return new BPromise(function(_0x2a597d,_0x27b949){return client[_0x46db('0xc')](_0x23de32,_0x3a2dcb)[_0x46db('0xd')](function(_0x427c62){logger[_0x46db('0xe')](_0x46db('0xf'),_0x5409cd,_0x46db('0x10'));logger[_0x46db('0x11')](_0x46db('0x12'),_0x5409cd,_0x46db('0x10'),JSON['stringify'](_0x427c62));if(_0x427c62[_0x46db('0x13')]){if(_0x427c62[_0x46db('0x13')][_0x46db('0x14')]===0x1f4){logger[_0x46db('0x13')](_0x46db('0xf'),_0x5409cd,_0x427c62[_0x46db('0x13')][_0x46db('0x15')]);return _0x27b949(_0x427c62[_0x46db('0x13')][_0x46db('0x15')]);}logger['error']('SmsApplication,\x20%s,\x20%s',_0x5409cd,_0x427c62['error'][_0x46db('0x15')]);return _0x2a597d(_0x427c62[_0x46db('0x13')]['message']);}else{logger[_0x46db('0xe')]('SmsApplication,\x20%s,\x20%s',_0x5409cd,_0x46db('0x10'));_0x2a597d(_0x427c62['result'][_0x46db('0x15')]);}})[_0x46db('0x16')](function(_0x5a75fb){logger[_0x46db('0x13')](_0x46db('0xf'),_0x5409cd,_0x5a75fb);_0x27b949(_0x5a75fb);});});}
\ No newline at end of file
+var _0x9148=['../../config/utils','../../config/logger','rpc','../../config/environment','client','request','info','SmsApplication,\x20%s,\x20%s','request\x20sent','debug','stringify','code','error','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb'];(function(_0x28cb21,_0x265906){var _0x5c6153=function(_0x16ac9b){while(--_0x16ac9b){_0x28cb21['push'](_0x28cb21['shift']());}};_0x5c6153(++_0x265906);}(_0x9148,0x10d));var _0x8914=function(_0xd1a43c,_0x2c2e84){_0xd1a43c=_0xd1a43c-0x0;var _0x319a2b=_0x9148[_0xd1a43c];return _0x319a2b;};'use strict';var _=require(_0x8914('0x0'));var util=require(_0x8914('0x1'));var moment=require(_0x8914('0x2'));var BPromise=require(_0x8914('0x3'));var rs=require(_0x8914('0x4'));var fs=require('fs');var Redis=require(_0x8914('0x5'));var db=require(_0x8914('0x6'))['db'];var utils=require(_0x8914('0x7'));var logger=require(_0x8914('0x8'))(_0x8914('0x9'));var config=require(_0x8914('0xa'));var jayson=require('jayson/promise');var client=jayson[_0x8914('0xb')]['http']({'port':0x232a});function respondWithRpcPromise(_0x1cd146,_0x58e892,_0x1b0445){return new BPromise(function(_0x15aff5,_0x1e2d12){return client[_0x8914('0xc')](_0x1cd146,_0x1b0445)['then'](function(_0x2e7aac){logger[_0x8914('0xd')](_0x8914('0xe'),_0x58e892,_0x8914('0xf'));logger[_0x8914('0x10')]('SmsApplication,\x20%s,\x20%s,\x20%s',_0x58e892,_0x8914('0xf'),JSON[_0x8914('0x11')](_0x2e7aac));if(_0x2e7aac['error']){if(_0x2e7aac['error'][_0x8914('0x12')]===0x1f4){logger[_0x8914('0x13')](_0x8914('0xe'),_0x58e892,_0x2e7aac[_0x8914('0x13')][_0x8914('0x14')]);return _0x1e2d12(_0x2e7aac[_0x8914('0x13')]['message']);}logger[_0x8914('0x13')](_0x8914('0xe'),_0x58e892,_0x2e7aac['error'][_0x8914('0x14')]);return _0x15aff5(_0x2e7aac[_0x8914('0x13')][_0x8914('0x14')]);}else{logger[_0x8914('0xd')](_0x8914('0xe'),_0x58e892,_0x8914('0xf'));_0x15aff5(_0x2e7aac[_0x8914('0x15')][_0x8914('0x14')]);}})[_0x8914('0x16')](function(_0x4ca130){logger[_0x8914('0x13')](_0x8914('0xe'),_0x58e892,_0x4ca130);_0x1e2d12(_0x4ca130);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4024=['addTags','put','smsinteraction:update','update','delete','destroy','removeTags','multer','util','connect-timeout','express','fs-extra','../../components/interaction/service','../../config/environment','isAuthenticated','index','get','/:id','download','create','post','addMessage','/:id/tags','tracked','sms','smsinteraction:addtags'];(function(_0x24f31b,_0x44b8f3){var _0x488401=function(_0x204caf){while(--_0x204caf){_0x24f31b['push'](_0x24f31b['shift']());}};_0x488401(++_0x44b8f3);}(_0x4024,0x89));var _0x4402=function(_0x44d8dc,_0x3a1c97){_0x44d8dc=_0x44d8dc-0x0;var _0x33b19b=_0x4024[_0x44d8dc];return _0x33b19b;};'use strict';var multer=require(_0x4402('0x0'));var util=require(_0x4402('0x1'));var path=require('path');var timeout=require(_0x4402('0x2'));var express=require(_0x4402('0x3'));var router=express['Router']();var fs_extra=require(_0x4402('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x4402('0x5'));var config=require(_0x4402('0x6'));var controller=require('./smsInteraction.controller');router['get']('/',auth[_0x4402('0x7')](),controller[_0x4402('0x8')]);router[_0x4402('0x9')]('/describe',auth[_0x4402('0x7')](),controller['describe']);router['get'](_0x4402('0xa'),auth['isAuthenticated'](),controller['show']);router[_0x4402('0x9')]('/:id/messages',auth[_0x4402('0x7')](),controller['getMessages']);router[_0x4402('0x9')]('/:id/download',auth[_0x4402('0x7')](),controller[_0x4402('0xb')]);router['post']('/',auth[_0x4402('0x7')](),controller[_0x4402('0xc')]);router[_0x4402('0xd')]('/:id/messages',auth[_0x4402('0x7')](),controller[_0x4402('0xe')]);router[_0x4402('0xd')](_0x4402('0xf'),auth[_0x4402('0x7')](),interaction[_0x4402('0x10')](_0x4402('0x11'),_0x4402('0x12')),controller[_0x4402('0x13')]);router[_0x4402('0x14')](_0x4402('0xa'),auth[_0x4402('0x7')](),interaction[_0x4402('0x10')](_0x4402('0x11'),_0x4402('0x15')),controller[_0x4402('0x16')]);router[_0x4402('0x17')](_0x4402('0xa'),auth[_0x4402('0x7')](),interaction[_0x4402('0x10')]('sms','smsinteraction:destroy'),controller[_0x4402('0x18')]);router[_0x4402('0x17')]('/:id/tags',auth[_0x4402('0x7')](),controller[_0x4402('0x19')]);module['exports']=router;
\ No newline at end of file
+var _0xbaf0=['sms','smsinteraction:addtags','addTags','put','/:id','smsinteraction:update','update','delete','smsinteraction:destroy','destroy','util','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./smsInteraction.controller','get','isAuthenticated','index','/describe','show','/:id/messages','getMessages','/:id/download','download','post','addMessage','/:id/tags','tracked'];(function(_0x53d683,_0x1969f6){var _0x3d745a=function(_0x124e68){while(--_0x124e68){_0x53d683['push'](_0x53d683['shift']());}};_0x3d745a(++_0x1969f6);}(_0xbaf0,0x12a));var _0x0baf=function(_0x2b4411,_0x2625ed){_0x2b4411=_0x2b4411-0x0;var _0x8e41ef=_0xbaf0[_0x2b4411];return _0x8e41ef;};'use strict';var multer=require('multer');var util=require(_0x0baf('0x0'));var path=require(_0x0baf('0x1'));var timeout=require(_0x0baf('0x2'));var express=require(_0x0baf('0x3'));var router=express[_0x0baf('0x4')]();var fs_extra=require(_0x0baf('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x0baf('0x6'));var config=require(_0x0baf('0x7'));var controller=require(_0x0baf('0x8'));router[_0x0baf('0x9')]('/',auth[_0x0baf('0xa')](),controller[_0x0baf('0xb')]);router[_0x0baf('0x9')](_0x0baf('0xc'),auth[_0x0baf('0xa')](),controller['describe']);router[_0x0baf('0x9')]('/:id',auth[_0x0baf('0xa')](),controller[_0x0baf('0xd')]);router[_0x0baf('0x9')](_0x0baf('0xe'),auth[_0x0baf('0xa')](),controller[_0x0baf('0xf')]);router[_0x0baf('0x9')](_0x0baf('0x10'),auth[_0x0baf('0xa')](),controller[_0x0baf('0x11')]);router[_0x0baf('0x12')]('/',auth['isAuthenticated'](),controller['create']);router[_0x0baf('0x12')](_0x0baf('0xe'),auth[_0x0baf('0xa')](),controller[_0x0baf('0x13')]);router['post'](_0x0baf('0x14'),auth['isAuthenticated'](),interaction[_0x0baf('0x15')](_0x0baf('0x16'),_0x0baf('0x17')),controller[_0x0baf('0x18')]);router[_0x0baf('0x19')](_0x0baf('0x1a'),auth['isAuthenticated'](),interaction['tracked'](_0x0baf('0x16'),_0x0baf('0x1b')),controller[_0x0baf('0x1c')]);router[_0x0baf('0x1d')](_0x0baf('0x1a'),auth[_0x0baf('0xa')](),interaction['tracked'](_0x0baf('0x16'),_0x0baf('0x1e')),controller[_0x0baf('0x1f')]);router[_0x0baf('0x1d')](_0x0baf('0x14'),auth[_0x0baf('0xa')](),controller['removeTags']);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbacd=['BOOLEAN','DATE','STRING','ENUM','out','sequelize','moment'];(function(_0x383499,_0x4e0310){var _0x3b5d6f=function(_0x5ba483){while(--_0x5ba483){_0x383499['push'](_0x383499['shift']());}};_0x3b5d6f(++_0x4e0310);}(_0xbacd,0x1c5));var _0xdbac=function(_0x5ae332,_0x338ebe){_0x5ae332=_0x5ae332-0x0;var _0x258e70=_0xbacd[_0x5ae332];return _0x258e70;};'use strict';var Sequelize=require(_0xdbac('0x0'));var moment=require(_0xdbac('0x1'));module['exports']={'closed':{'type':Sequelize[_0xdbac('0x2')],'defaultValue':![]},'closedAt':{'type':Sequelize[_0xdbac('0x3')]},'disposition':{'type':Sequelize[_0xdbac('0x4')]},'secondDisposition':{'type':Sequelize['STRING']},'thirdDisposition':{'type':Sequelize[_0xdbac('0x4')]},'note':{'type':Sequelize[_0xdbac('0x4')]},'phone':{'type':Sequelize[_0xdbac('0x4')]},'read1stAt':{'type':Sequelize[_0xdbac('0x3')]},'firstMsgDirection':{'type':Sequelize[_0xdbac('0x5')]('in',_0xdbac('0x6')),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize[_0xdbac('0x3')]},'lastMsgDirection':{'type':Sequelize[_0xdbac('0x5')]('in',_0xdbac('0x6')),'defaultValue':'in','allowNull':![]},'autoreplyExecuted':{'type':Sequelize[_0xdbac('0x2')],'defaultValue':![]}};
\ No newline at end of file
+var _0xdc97=['sequelize','moment','exports','DATE','STRING','ENUM','out'];(function(_0xee3051,_0xbe4f18){var _0x139e81=function(_0xac81c3){while(--_0xac81c3){_0xee3051['push'](_0xee3051['shift']());}};_0x139e81(++_0xbe4f18);}(_0xdc97,0x13b));var _0x7dc9=function(_0x2174bd,_0x1a5cf7){_0x2174bd=_0x2174bd-0x0;var _0x589137=_0xdc97[_0x2174bd];return _0x589137;};'use strict';var Sequelize=require(_0x7dc9('0x0'));var moment=require(_0x7dc9('0x1'));module[_0x7dc9('0x2')]={'closed':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'closedAt':{'type':Sequelize[_0x7dc9('0x3')]},'disposition':{'type':Sequelize['STRING']},'secondDisposition':{'type':Sequelize[_0x7dc9('0x4')]},'thirdDisposition':{'type':Sequelize[_0x7dc9('0x4')]},'note':{'type':Sequelize['STRING']},'phone':{'type':Sequelize[_0x7dc9('0x4')]},'read1stAt':{'type':Sequelize[_0x7dc9('0x3')]},'firstMsgDirection':{'type':Sequelize[_0x7dc9('0x5')]('in',_0x7dc9('0x6')),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize['DATE']},'lastMsgDirection':{'type':Sequelize[_0x7dc9('0x5')]('in','out'),'defaultValue':'in','allowNull':![]},'autoreplyExecuted':{'type':Sequelize['BOOLEAN'],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0c88=['end','json','offset','undefined','count','limit','set','Content-Range','reject','save','update','then','destroy','sendStatus','error','stack','name','send','fullname','TagIds','split','forEach','Tags','index','map','SmsInteraction','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','nolimit','sort','where','pick','select','field','u.id','u.fullname','user_has_sms_interactions','left_join','users','u.id\x20=\x20ui.UserId','from','sms_interactions','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','sms_accounts','a.id\x20=\x20i.SmsAccountId','sms_messages','me.SmsInteractionId\x20=\x20i.id','sms_interaction_has_tags','it.SmsInteractionId\x20=\x20i.id','expr','search','parseSearch','sqlOperator','conditions','length','find','unreadMessages','value','`\x20=\x200','having','`\x20>\x200','operator','$substring','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','ContactId','buildExpression','Tag','union','User','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','body','text','start','some','isEmpty','SmsAccountId','i.SmsAccountId\x20IN\x20?','concat','parse','$gte','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','tag','isArray','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','filter','replace','isNumeric','i.id\x20LIKE\x20?','i.phone\x20LIKE\x20?','MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','group','i.id','Sequelize','SELECT','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','order','contactName','DESC','resolve','i.SmsAccountId\x20IS\x20NOT\x20NULL','role','agent','user','getSmsAccounts','i.SmsAccountId\x20IS\x20NULL','toString','sequelize','keyBy','merge','a.key','Account.key','CASE\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END','i.*','Contact.firstName','Contact.lastName','c.email','c.phone','Contact.phone','c.fax','o.fullname','Owner.fullname','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.SmsInteractionId\x20IN\x20?','groupBy','push','all','catch','includeAll','include','create','params','describe','addMessage','SmsMessage','ids','omit','findOne','hasOwnProperty','SmsInteractionId','format','options','addTags','setTags','spread','findAll','color','emit','smsInteractionTags:save','removeTags','download','unix','join','root','server','files','tmp','attachments','lastName','Messages','direction','secret','SmsAccount','get','mkdirSync','Account','Owner','N.A.','createdAt','YYYY-MM-DD\x20HH:mm:ss','disposition','System','Contact','out','renderFile','views','downloadInteraction.ejs','transcript-','.pdf','Sms','createPdfFromHTML','log','err','unlinkSync','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','ejs','fs-extra','squel','crypto','jsforce','desk.js','to-csv','papaparse','../../components/parsers/qs','../../components/export/pdf','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','register','status'];(function(_0x2c7f4b,_0x41c886){var _0x590cb4=function(_0x40d4ca){while(--_0x40d4ca){_0x2c7f4b['push'](_0x2c7f4b['shift']());}};_0x590cb4(++_0x41c886);}(_0x0c88,0x1b4));var _0x80c8=function(_0x8abd64,_0x539570){_0x8abd64=_0x8abd64-0x0;var _0xd2511e=_0x0c88[_0x8abd64];return _0xd2511e;};'use strict';var emlformat=require(_0x80c8('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x80c8('0x1'));var jsonpatch=require(_0x80c8('0x2'));var rp=require(_0x80c8('0x3'));var moment=require(_0x80c8('0x4'));var BPromise=require(_0x80c8('0x5'));var Mustache=require(_0x80c8('0x6'));var util=require(_0x80c8('0x7'));var path=require(_0x80c8('0x8'));var sox=require(_0x80c8('0x9'));var csv=require('to-csv');var ejs=require(_0x80c8('0xa'));var fs=require('fs');var fs_extra=require(_0x80c8('0xb'));var _=require('lodash');var squel=require(_0x80c8('0xc'));var crypto=require(_0x80c8('0xd'));var jsforce=require(_0x80c8('0xe'));var deskjs=require(_0x80c8('0xf'));var toCsv=require(_0x80c8('0x10'));var querystring=require('querystring');var Papa=require(_0x80c8('0x11'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x80c8('0x12'));var as=require('../../components/parsers/advancedSearch');var pdf=require(_0x80c8('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x80c8('0x14'))('api');var utils=require(_0x80c8('0x15'));var config=require(_0x80c8('0x16'));var licenseUtil=require(_0x80c8('0x17'));var db=require(_0x80c8('0x18'))['db'];config[_0x80c8('0x19')]=_['defaults'](config[_0x80c8('0x19')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x80c8('0x19')]));require('./smsInteraction.socket')[_0x80c8('0x1a')](socket);function respondWithStatusCode(_0x5c8db3,_0xf9d9c5){_0xf9d9c5=_0xf9d9c5||0xcc;return function(_0x15af9c){if(_0x15af9c){return _0x5c8db3['sendStatus'](_0xf9d9c5);}return _0x5c8db3[_0x80c8('0x1b')](_0xf9d9c5)[_0x80c8('0x1c')]();};}function respondWithResult(_0x3a58f7,_0x860596){_0x860596=_0x860596||0xc8;return function(_0x46c753){if(_0x46c753){return _0x3a58f7[_0x80c8('0x1b')](_0x860596)[_0x80c8('0x1d')](_0x46c753);}};}function respondWithFilteredResult(_0x265db8,_0x4a27d5){return function(_0x25718d){if(_0x25718d){var _0x517c0c=typeof _0x4a27d5[_0x80c8('0x1e')]===_0x80c8('0x1f')&&typeof _0x4a27d5['limit']===_0x80c8('0x1f');var _0x23841e=_0x25718d[_0x80c8('0x20')];var _0x5f6e54=_0x517c0c?0x0:_0x4a27d5[_0x80c8('0x1e')];var _0xa0cd1a=_0x517c0c?_0x25718d['count']:_0x4a27d5[_0x80c8('0x1e')]+_0x4a27d5[_0x80c8('0x21')];var _0x11fbb4;if(_0xa0cd1a>=_0x23841e){_0xa0cd1a=_0x23841e;_0x11fbb4=0xc8;}else{_0x11fbb4=0xce;}_0x265db8[_0x80c8('0x1b')](_0x11fbb4);return _0x265db8[_0x80c8('0x22')](_0x80c8('0x23'),_0x5f6e54+'-'+_0xa0cd1a+'/'+_0x23841e)[_0x80c8('0x1d')](_0x25718d);}return null;};}function patchUpdates(_0x67b98b){return function(_0x1d1ae0){try{jsonpatch['apply'](_0x1d1ae0,_0x67b98b,!![]);}catch(_0x400154){return BPromise[_0x80c8('0x24')](_0x400154);}return _0x1d1ae0[_0x80c8('0x25')]();};}function saveUpdates(_0x12d977,_0x28c25e){return function(_0xca546e){if(_0xca546e){return _0xca546e[_0x80c8('0x26')](_0x12d977)[_0x80c8('0x27')](function(_0x59e690){return _0x59e690;});}return null;};}function removeEntity(_0x3b756c,_0x24cbc8){return function(_0x15e2e3){if(_0x15e2e3){return _0x15e2e3[_0x80c8('0x28')]()['then'](function(){_0x3b756c['status'](0xcc)[_0x80c8('0x1c')]();});}};}function handleEntityNotFound(_0xa35734,_0x3f2b25){return function(_0x5d2ef3){if(!_0x5d2ef3){_0xa35734[_0x80c8('0x29')](0x194);}return _0x5d2ef3;};}function handleError(_0x4f9f98,_0x1d6200){_0x1d6200=_0x1d6200||0x1f4;return function(_0x85329d){logger[_0x80c8('0x2a')](_0x85329d[_0x80c8('0x2b')]);if(_0x85329d[_0x80c8('0x2c')]){delete _0x85329d[_0x80c8('0x2c')];}_0x4f9f98[_0x80c8('0x1b')](_0x1d6200)[_0x80c8('0x2d')](_0x85329d);};}function getInteractionUsers(_0x31f801,_0x3d12af){return new BPromise(function(_0x33c79f,_0x55abea){try{if(_0x3d12af[_0x31f801['id']]){_0x31f801['Users']=_['map'](_0x3d12af[_0x31f801['id']],function(_0x4eb389){return{'id':_0x4eb389['id'],'fullname':_0x4eb389[_0x80c8('0x2e')]};});}}catch(_0x16dd32){_0x55abea(_0x16dd32);}_0x33c79f(_0x31f801);});}function getInteractionTags(_0x12cac5,_0x31f07a){return new BPromise(function(_0x392de8,_0x3d4e65){try{if(_0x12cac5[_0x80c8('0x2f')]){_0x12cac5['Tags']=[];_0x12cac5['TagIds'][_0x80c8('0x30')](',')[_0x80c8('0x31')](function(_0x3acfb7){_0x12cac5[_0x80c8('0x32')]['push'](_0x31f07a[_0x3acfb7]);});}delete _0x12cac5[_0x80c8('0x2f')];}catch(_0xc4659a){_0x3d4e65(_0xc4659a);}_0x392de8(_0x12cac5);});}function updateSmsInteraction(_0x499394,_0x15c157,_0x394788){return new BPromise(function(_0x3dd8a4,_0x2a299a){return getInteractionUsers(_0x499394,_0x394788)[_0x80c8('0x27')](function(_0x50ded1){return getInteractionTags(_0x50ded1,_0x15c157);})[_0x80c8('0x27')](function(_0x25d4a6){_0x3dd8a4(_0x25d4a6);})['catch'](function(_0x43445d){_0x2a299a(_0x43445d);});});}exports[_0x80c8('0x33')]=function(_0x5dfb60,_0x117d4f){var _0x32a563={},_0x385ad7={},_0x4e5bb0={'count':0x0,'rows':[]};var _0x557d15=_[_0x80c8('0x34')](db[_0x80c8('0x35')][_0x80c8('0x36')],function(_0x21e753){return{'name':_0x21e753[_0x80c8('0x37')],'type':_0x21e753[_0x80c8('0x38')][_0x80c8('0x39')]};});_0x385ad7[_0x80c8('0x3a')]=_[_0x80c8('0x34')](_0x557d15,_0x80c8('0x2c'));_0x385ad7[_0x80c8('0x3b')]=_[_0x80c8('0x3c')](_0x5dfb60[_0x80c8('0x3b')]);_0x385ad7[_0x80c8('0x3d')]=_[_0x80c8('0x3e')](_0x385ad7[_0x80c8('0x3a')],_0x385ad7['query']);_0x32a563['attributes']=_[_0x80c8('0x3e')](_0x385ad7[_0x80c8('0x3a')],qs[_0x80c8('0x3f')](_0x5dfb60[_0x80c8('0x3b')][_0x80c8('0x3f')]));_0x32a563[_0x80c8('0x40')]=_0x32a563[_0x80c8('0x40')]['length']?_0x32a563[_0x80c8('0x40')]:_0x385ad7[_0x80c8('0x3a')];if(!_0x5dfb60['query']['hasOwnProperty'](_0x80c8('0x41'))){_0x32a563[_0x80c8('0x21')]=qs[_0x80c8('0x21')](_0x5dfb60[_0x80c8('0x3b')][_0x80c8('0x21')]);_0x32a563[_0x80c8('0x1e')]=qs['offset'](_0x5dfb60['query'][_0x80c8('0x1e')]);}_0x32a563['order']=qs[_0x80c8('0x42')](_0x5dfb60[_0x80c8('0x3b')][_0x80c8('0x42')]);_0x32a563[_0x80c8('0x43')]=qs[_0x80c8('0x3d')](_[_0x80c8('0x44')](_0x5dfb60['query'],_0x385ad7['filters']),_0x557d15);var _0x505cdd=[];var _0x392c6d=squel[_0x80c8('0x45')]()['field']('id')[_0x80c8('0x46')](_0x80c8('0x2c'))['field']('color')['from']('tools_tags');var _0x58bf62=squel[_0x80c8('0x45')]()[_0x80c8('0x46')](_0x80c8('0x47'))[_0x80c8('0x46')](_0x80c8('0x48'))[_0x80c8('0x46')]('ui.SmsInteractionId')['from'](_0x80c8('0x49'),'ui')[_0x80c8('0x4a')](_0x80c8('0x4b'),'u',_0x80c8('0x4c'));var _0x133f9e=squel[_0x80c8('0x45')]()[_0x80c8('0x4d')](_0x80c8('0x4e'),'i')[_0x80c8('0x4a')]('cm_contacts','c',_0x80c8('0x4f'))[_0x80c8('0x4a')]('users','o','o.id\x20=\x20i.UserId')[_0x80c8('0x4a')](_0x80c8('0x50'),'a',_0x80c8('0x51'))[_0x80c8('0x4a')](_0x80c8('0x52'),'me',_0x80c8('0x53'))['left_join'](_0x80c8('0x54'),'it',_0x80c8('0x55'))[_0x80c8('0x4a')]('tools_tags','t','t.id\x20=\x20it.TagId');var _0x228a24=squel['expr']();var _0x52e7ce=[];var _0x2de801=squel[_0x80c8('0x56')]();var _0x5729a5;if(_0x5dfb60[_0x80c8('0x3b')][_0x80c8('0x57')]){_0x5729a5=as[_0x80c8('0x58')](_0x5dfb60[_0x80c8('0x3b')][_0x80c8('0x57')]);var _0x4853c6=_0x5729a5[_0x80c8('0x59')];for(var _0x183b7f=0x0;_0x183b7f<_0x5729a5[_0x80c8('0x5a')][_0x80c8('0x5b')];_0x183b7f++){var _0x4590e3=_0x5729a5[_0x80c8('0x5a')][_0x183b7f];var _0x56bee9='i';var _0x325fba=_[_0x80c8('0x5c')](_0x557d15,['name',_0x4590e3[_0x80c8('0x46')]]);if(!_0x325fba){switch(_0x4590e3[_0x80c8('0x46')]){case _0x80c8('0x5d'):if(_0x4590e3[_0x80c8('0x5e')]==0x1){_0x133f9e['having']('`'+_0x4590e3[_0x80c8('0x46')]+_0x80c8('0x5f'));}else{_0x133f9e[_0x80c8('0x60')]('`'+_0x4590e3[_0x80c8('0x46')]+_0x80c8('0x61'));}break;case'Contact':if(_0x4590e3[_0x80c8('0x62')]===_0x80c8('0x63')){if(_0x4590e3[_0x80c8('0x5e')][_0x80c8('0x30')]('\x20')['length']>0x1){_0x228a24[_0x4853c6](_0x80c8('0x64'),qs[_0x80c8('0x65')](_0x4590e3[_0x80c8('0x5e')]),null);}else{var _0x4bab51='%'+_0x4590e3['value']+'%';_0x228a24[_0x4853c6]('c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?',_0x4bab51,_0x4bab51,_0x4bab51);}}else{_0x325fba=_['find'](_0x557d15,['name',_0x80c8('0x66')]);_0x4590e3[_0x80c8('0x46')]=_0x80c8('0x66');_0x542f33=as[_0x80c8('0x67')](_0x56bee9,_0x325fba[_0x80c8('0x38')],_0x4590e3);_0x228a24[_0x4853c6](_0x542f33['text'],_0x542f33[_0x80c8('0x5e')]['start'],_0x542f33['value']['end']);}break;case _0x80c8('0x68'):var _0x1ee325=_0x4590e3[_0x80c8('0x5e')][_0x80c8('0x30')](',')[_0x80c8('0x34')](function(_0x473154){return Number(_0x473154);});_0x1ee325[_0x80c8('0x31')](function(_0x58efb1){_0x2de801['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x58efb1+',%');});_0x52e7ce=_[_0x80c8('0x69')](_0x52e7ce,_0x1ee325);break;case _0x80c8('0x6a'):if(_0x4590e3[_0x80c8('0x62')]==='$substring'){_0x228a24[_0x4853c6](_0x80c8('0x6b'),'%'+_0x4590e3[_0x80c8('0x5e')]+'%',null);}else{_0x325fba=_['find'](_0x557d15,[_0x80c8('0x2c'),'UserId']);_0x4590e3[_0x80c8('0x46')]=_0x80c8('0x6c');_0x542f33=as[_0x80c8('0x67')](_0x56bee9,_0x325fba[_0x80c8('0x38')],_0x4590e3);_0x228a24[_0x4853c6](_0x542f33['text'],_0x542f33[_0x80c8('0x5e')]['start'],_0x542f33[_0x80c8('0x5e')][_0x80c8('0x1c')]);}break;case _0x80c8('0x6d'):_0x542f33=as['buildExpression']('me',null,_0x4590e3);_0x228a24[_0x4853c6](_0x542f33['text'],_0x542f33[_0x80c8('0x5e')]['start'],_0x542f33['value'][_0x80c8('0x1c')]);break;}}else{var _0x542f33=as[_0x80c8('0x67')](_0x56bee9,_0x325fba[_0x80c8('0x38')],_0x4590e3);_0x228a24[_0x4853c6](_0x542f33[_0x80c8('0x6e')],_0x542f33['value'][_0x80c8('0x6f')],_0x542f33[_0x80c8('0x5e')][_0x80c8('0x1c')]);}}}else{var _0x5526c9=_(_0x5dfb60['query'])[_0x80c8('0x3c')]()[_0x80c8('0x34')](function(_0x1400f6){return _[_0x80c8('0x70')](_0x557d15,[_0x80c8('0x2c'),_0x1400f6])?_0x1400f6:undefined;})['compact']()['value']();if(!_[_0x80c8('0x71')](_0x5526c9)){_0x5526c9[_0x80c8('0x31')](function(_0x42e56c){if(_0x42e56c===_0x80c8('0x72')){_0x133f9e['where'](_0x80c8('0x73'),[][_0x80c8('0x74')](_0x5dfb60[_0x80c8('0x3b')][_0x42e56c]));}else if(_0x42e56c==='createdAt'){var _0x708ff7=JSON[_0x80c8('0x75')](_0x5dfb60[_0x80c8('0x3b')][_0x42e56c])[_0x80c8('0x76')];var _0x39a4db=JSON[_0x80c8('0x75')](_0x5dfb60[_0x80c8('0x3b')][_0x42e56c])[_0x80c8('0x77')];_0x133f9e['where'](_0x80c8('0x78'),_0x708ff7,_0x39a4db);}else{if(_0x5dfb60['query'][_0x42e56c]===_0x80c8('0x79')){_0x133f9e[_0x80c8('0x43')]('i.'+_0x42e56c+_0x80c8('0x7a'));}else{_0x133f9e[_0x80c8('0x43')]('i.'+_0x42e56c+_0x80c8('0x7b'),_0x5dfb60['query'][_0x42e56c]);}}});}if(_0x5dfb60['query'][_0x80c8('0x7c')]){if(_0x5dfb60[_0x80c8('0x3b')][_0x80c8('0x7c')]==0x1){_0x133f9e[_0x80c8('0x60')](_0x80c8('0x7d'));}else{_0x133f9e[_0x80c8('0x60')](_0x80c8('0x7e'));}}if(_0x5dfb60[_0x80c8('0x3b')][_0x80c8('0x7f')]){_0x52e7ce=_[_0x80c8('0x80')](_0x5dfb60['query']['tag'])?_0x5dfb60['query']['tag']:new Array(_0x5dfb60[_0x80c8('0x3b')][_0x80c8('0x7f')]);_0x52e7ce[_0x80c8('0x31')](function(_0x424419){_0x2de801['or'](_0x80c8('0x81'),'%,'+_0x424419+',%');});}if(_0x5dfb60[_0x80c8('0x3b')][_0x80c8('0x82')]){var _0x3449f3=_0x5dfb60['query'][_0x80c8('0x82')][_0x80c8('0x83')]('\x5c','\x5c\x5c')[_0x80c8('0x83')](/'/g,'\x27\x27');if(qs[_0x80c8('0x84')](_0x3449f3)){_0x228a24['or'](_0x80c8('0x85'),_0x3449f3+'%')['or'](_0x80c8('0x86'),_0x3449f3+'%');}else{_0x228a24['or'](_0x80c8('0x87'),qs[_0x80c8('0x65')](_0x3449f3))['or'](_0x80c8('0x88'),_0x3449f3+'%');}}}_0x133f9e['where'](_0x228a24);_0x133f9e[_0x80c8('0x89')](_0x80c8('0x8a'));var _0x3075bc={'type':db[_0x80c8('0x8b')]['QueryTypes'][_0x80c8('0x8c')],'raw':!![]};var _0x121969=_0x133f9e['clone']();_0x121969[_0x80c8('0x46')](_0x80c8('0x8a'));_0x121969[_0x80c8('0x46')](_0x80c8('0x8d'),_0x80c8('0x5d'));if(_0x32a563[_0x80c8('0x8e')]){_0x32a563[_0x80c8('0x8e')][_0x80c8('0x31')](function(_0xb68590){var _0xb72699=_0xb68590[0x0]===_0x80c8('0x8f')?_0xb68590[0x0]:'i.'+_0xb68590[0x0];_0x133f9e[_0x80c8('0x8e')](_0xb72699,_0xb68590[0x1]===_0x80c8('0x90')?![]:!![]);});}if(!_[_0x80c8('0x71')](_0x52e7ce)){_0x133f9e['having'](_0x2de801);_0x121969['where']('t.id\x20IN\x20?',_0x52e7ce);}BPromise[_0x80c8('0x91')]()['then'](function(){if(!_0x5729a5){if(_0x5dfb60[_0x80c8('0x3b')]['SmsAccountId'])return;_0x121969[_0x80c8('0x43')](_0x80c8('0x92'));_0x133f9e[_0x80c8('0x43')](_0x80c8('0x92'));return;}if(_0x5dfb60['user'][_0x80c8('0x93')]!==_0x80c8('0x94'))return;return _0x5dfb60[_0x80c8('0x95')][_0x80c8('0x96')]({'attributes':['id'],'raw':!![]})['then'](function(_0x5e8621){if(_['isEmpty'](_0x5e8621)){_0x121969['where'](_0x80c8('0x97'));_0x133f9e[_0x80c8('0x43')](_0x80c8('0x97'));}else{_0x121969['where'](_0x80c8('0x73'),_[_0x80c8('0x34')](_0x5e8621,'id'));_0x133f9e[_0x80c8('0x43')](_0x80c8('0x73'),_[_0x80c8('0x34')](_0x5e8621,'id'));}});})['then'](function(){if(_0x5dfb60[_0x80c8('0x95')][_0x80c8('0x93')]===_0x80c8('0x94')&&!_0x5729a5&&!_0x5dfb60['query'][_0x80c8('0x72')])return[];return db['sequelize'][_0x80c8('0x3b')](_0x121969[_0x80c8('0x98')](),_0x3075bc);})['then'](function(_0x13dfee){_0x4e5bb0[_0x80c8('0x20')]=_0x13dfee[_0x80c8('0x5b')];if(_0x4e5bb0[_0x80c8('0x20')]===0x0)return[];return db[_0x80c8('0x99')]['query'](_0x392c6d[_0x80c8('0x98')](),_0x3075bc)[_0x80c8('0x27')](function(_0x4401f2){_0x505cdd=_[_0x80c8('0x9a')](_0x4401f2,'id');_0x3075bc=_[_0x80c8('0x9b')](_0x3075bc,{'model':db[_0x80c8('0x35')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x5dfb60[_0x80c8('0x3b')]['fields']){_0x32a563[_0x80c8('0x40')][_0x80c8('0x31')](function(_0x13fa82){_0x133f9e[_0x80c8('0x46')]('i.'+_0x13fa82);});}else{_0x133f9e['field']('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)',_0x80c8('0x5d'));_0x133f9e['field'](_0x80c8('0x9c'),_0x80c8('0x9d'));_0x133f9e[_0x80c8('0x46')]('a.mandatoryDisposition','Account.mandatoryDisposition');_0x133f9e['field'](_0x80c8('0x9e'),_0x80c8('0x8f'));_0x133f9e[_0x80c8('0x46')](_0x80c8('0x9f'));_0x133f9e[_0x80c8('0x46')]('c.firstName',_0x80c8('0xa0'));_0x133f9e[_0x80c8('0x46')]('c.lastName',_0x80c8('0xa1'));_0x133f9e[_0x80c8('0x46')](_0x80c8('0xa2'),'Contact.email');_0x133f9e['field'](_0x80c8('0xa3'),_0x80c8('0xa4'));_0x133f9e[_0x80c8('0x46')]('c.mobile','Contact.mobile');_0x133f9e[_0x80c8('0x46')](_0x80c8('0xa5'),'Contact.fax');_0x133f9e[_0x80c8('0x46')](_0x80c8('0xa6'),_0x80c8('0xa7'));_0x133f9e[_0x80c8('0x46')](_0x80c8('0xa8'),_0x80c8('0xa9'));_0x133f9e['field'](_0x80c8('0xaa'),'TagIds');}if(_0x32a563[_0x80c8('0x21')])_0x133f9e[_0x80c8('0x21')](_0x32a563[_0x80c8('0x21')]);if(_0x32a563[_0x80c8('0x1e')])_0x133f9e['offset'](_0x32a563[_0x80c8('0x1e')]);return db[_0x80c8('0x99')][_0x80c8('0x3b')](_0x133f9e[_0x80c8('0x98')](),_0x3075bc);})['then'](function(_0x269334){if(_0x269334['length']>0x0)_0x58bf62['where'](_0x80c8('0xab'),_[_0x80c8('0x34')](_0x269334,'id'));return db['sequelize']['query'](_0x58bf62[_0x80c8('0x98')](),_0x3075bc)[_0x80c8('0x27')](function(_0x1e6dcd){var _0x3e40cb=_[_0x80c8('0xac')](_0x1e6dcd,'SmsInteractionId');var _0x22d3dc=[];_0x269334[_0x80c8('0x31')](function(_0x34a4ae){_0x22d3dc[_0x80c8('0xad')](updateSmsInteraction(_0x34a4ae,_0x505cdd,_0x3e40cb));});return BPromise[_0x80c8('0xae')](_0x22d3dc);});});})[_0x80c8('0x27')](function(_0x12b6d9){_0x4e5bb0['rows']=_0x12b6d9;return _0x4e5bb0;})[_0x80c8('0x27')](respondWithFilteredResult(_0x117d4f,_0x32a563))[_0x80c8('0xaf')](handleError(_0x117d4f,null));};exports['show']=function(_0x5a4009,_0x3ba894){var _0xa06974={'raw':![],'where':{'id':_0x5a4009['params']['id']}},_0x32a57c={};_0x32a57c['model']=_[_0x80c8('0x3c')](db['SmsInteraction'][_0x80c8('0x36')]);_0x32a57c[_0x80c8('0x3b')]=_[_0x80c8('0x3c')](_0x5a4009[_0x80c8('0x3b')]);_0x32a57c[_0x80c8('0x3d')]=_[_0x80c8('0x3e')](_0x32a57c[_0x80c8('0x3a')],_0x32a57c[_0x80c8('0x3b')]);_0xa06974['attributes']=_[_0x80c8('0x3e')](_0x32a57c[_0x80c8('0x3a')],qs['fields'](_0x5a4009[_0x80c8('0x3b')][_0x80c8('0x3f')]));_0xa06974[_0x80c8('0x40')]=_0xa06974['attributes'][_0x80c8('0x5b')]?_0xa06974['attributes']:_0x32a57c[_0x80c8('0x3a')];if(_0x5a4009[_0x80c8('0x3b')][_0x80c8('0xb0')]){_0xa06974[_0x80c8('0xb1')]=[{'all':!![]}];}_0xa06974=_[_0x80c8('0x9b')]({},_0xa06974,_0x5a4009['options']);return db[_0x80c8('0x35')][_0x80c8('0x5c')](_0xa06974)['then'](handleEntityNotFound(_0x3ba894,null))['then'](respondWithResult(_0x3ba894,null))[_0x80c8('0xaf')](handleError(_0x3ba894,null));};exports[_0x80c8('0xb2')]=function(_0x132521,_0x475fe){return db[_0x80c8('0x35')]['create'](_0x132521['body'],{})[_0x80c8('0x27')](respondWithResult(_0x475fe,0xc9))[_0x80c8('0xaf')](handleError(_0x475fe,null));};exports['update']=function(_0x1aa296,_0x30c50e){if(_0x1aa296[_0x80c8('0x6d')]['id']){delete _0x1aa296[_0x80c8('0x6d')]['id'];}return db[_0x80c8('0x35')][_0x80c8('0x5c')]({'where':{'id':_0x1aa296[_0x80c8('0xb3')]['id']}})[_0x80c8('0x27')](handleEntityNotFound(_0x30c50e,null))[_0x80c8('0x27')](saveUpdates(_0x1aa296[_0x80c8('0x6d')],null))[_0x80c8('0x27')](respondWithResult(_0x30c50e,null))[_0x80c8('0xaf')](handleError(_0x30c50e,null));};exports[_0x80c8('0x28')]=function(_0x26ec0d,_0x7fbe62){return db[_0x80c8('0x35')][_0x80c8('0x5c')]({'where':{'id':_0x26ec0d[_0x80c8('0xb3')]['id']}})[_0x80c8('0x27')](handleEntityNotFound(_0x7fbe62,null))[_0x80c8('0x27')](removeEntity(_0x7fbe62,null))[_0x80c8('0xaf')](handleError(_0x7fbe62,null));};exports[_0x80c8('0xb4')]=function(_0x2394f6,_0x31700f){return db['SmsInteraction'][_0x80c8('0xb4')]()['then'](respondWithResult(_0x31700f,null))[_0x80c8('0xaf')](handleError(_0x31700f,null));};exports[_0x80c8('0xb5')]=function(_0x4e2386,_0x574dd9,_0x3c4eff){return db[_0x80c8('0xb6')]['find']({'where':{'id':_0x4e2386['params']['id']}})[_0x80c8('0x27')](handleEntityNotFound(_0x574dd9,null))[_0x80c8('0x27')](function(_0x1d3eb4){if(_0x1d3eb4){return _0x1d3eb4['addMessage'](_0x4e2386['body'][_0x80c8('0xb7')],_[_0x80c8('0xb8')](_0x4e2386[_0x80c8('0x6d')],['ids','id'])||{});}})[_0x80c8('0x27')](respondWithResult(_0x574dd9,null))[_0x80c8('0xaf')](handleError(_0x574dd9,null));};exports['getMessages']=function(_0x5161af,_0x5097b0,_0x45895c){var _0x4c6cbd={'raw':![],'where':{}};var _0x26e5a1={};var _0xaae331={'count':0x0,'rows':[]};return db[_0x80c8('0x35')][_0x80c8('0xb9')]({'where':{'id':_0x5161af['params']['id']}})[_0x80c8('0x27')](handleEntityNotFound(_0x5097b0,null))[_0x80c8('0x27')](function(_0x38ba81){if(_0x38ba81){_0x26e5a1[_0x80c8('0x3a')]=_[_0x80c8('0x3c')](db['SmsMessage'][_0x80c8('0x36')]);_0x26e5a1[_0x80c8('0x3b')]=_[_0x80c8('0x3c')](_0x5161af[_0x80c8('0x3b')]);_0x26e5a1[_0x80c8('0x3d')]=_[_0x80c8('0x3e')](_0x26e5a1[_0x80c8('0x3a')],_0x26e5a1[_0x80c8('0x3b')]);_0x4c6cbd[_0x80c8('0x40')]=_[_0x80c8('0x3e')](_0x26e5a1['model'],qs[_0x80c8('0x3f')](_0x5161af[_0x80c8('0x3b')]['fields']));_0x4c6cbd[_0x80c8('0x40')]=_0x4c6cbd['attributes'][_0x80c8('0x5b')]?_0x4c6cbd[_0x80c8('0x40')]:_0x26e5a1[_0x80c8('0x3a')];if(!_0x5161af['query'][_0x80c8('0xba')](_0x80c8('0x41'))){_0x4c6cbd['limit']=qs[_0x80c8('0x21')](_0x5161af[_0x80c8('0x3b')][_0x80c8('0x21')]);_0x4c6cbd['offset']=qs[_0x80c8('0x1e')](_0x5161af[_0x80c8('0x3b')]['offset']);}_0x4c6cbd[_0x80c8('0x8e')]=qs[_0x80c8('0x42')](_0x5161af[_0x80c8('0x3b')]['sort']);_0x4c6cbd['where']=qs[_0x80c8('0x3d')](_[_0x80c8('0x44')](_0x5161af[_0x80c8('0x3b')],_0x26e5a1[_0x80c8('0x3d')]));_0x4c6cbd['where'][_0x80c8('0xbb')]=_0x38ba81['id'];if(_0x5161af['query'][_0x80c8('0x82')]){_0x4c6cbd[_0x80c8('0x43')]=_[_0x80c8('0x9b')](_0x4c6cbd['where'],{'$or':_['map'](_0x4c6cbd[_0x80c8('0x40')],function(_0x5af744){var _0xf2d30a={};_0xf2d30a[_0x5af744]={'$like':'%'+_0x5161af[_0x80c8('0x3b')][_0x80c8('0x82')]+'%'};return _0xf2d30a;})});}if(_0x5161af[_0x80c8('0x3b')][_0x80c8('0x76')]){var _0x26fa74=_0x5161af[_0x80c8('0x3b')][_0x80c8('0x76')][_0x80c8('0x30')](',');var _0x791a47={};_0x791a47[_0x26fa74[0x0]]={'$gte':moment(_0x26fa74[0x1])[_0x80c8('0xbc')]('YYYY-MM-DD\x20HH:mm:ss')};_0x4c6cbd['where']=_[_0x80c8('0x9b')](_0x4c6cbd[_0x80c8('0x43')],_0x791a47);}_0x4c6cbd=_[_0x80c8('0x9b')]({},_0x4c6cbd,_0x5161af[_0x80c8('0xbd')]);return db[_0x80c8('0xb6')][_0x80c8('0x20')]({'where':_0x4c6cbd[_0x80c8('0x43')]})[_0x80c8('0x27')](function(_0x452018){_0xaae331[_0x80c8('0x20')]=_0x452018;if(_0x5161af[_0x80c8('0x3b')][_0x80c8('0xb0')]){_0x4c6cbd[_0x80c8('0xb1')]=[{'all':!![]}];}return db['SmsMessage']['findAll'](_0x4c6cbd);})[_0x80c8('0x27')](function(_0x4a811f){_0xaae331['rows']=_0x4a811f;return _0xaae331;});}})[_0x80c8('0x27')](respondWithFilteredResult(_0x5097b0,_0x4c6cbd))['catch'](handleError(_0x5097b0,null));};exports[_0x80c8('0xbe')]=function(_0x427417,_0x3f67a0,_0x18e5e6){return db['SmsInteraction'][_0x80c8('0x5c')]({'where':{'id':_0x427417[_0x80c8('0xb3')]['id']}})['then'](handleEntityNotFound(_0x3f67a0,null))[_0x80c8('0x27')](function(_0x3322fd){if(_0x3322fd){return _0x3322fd[_0x80c8('0xbf')](_0x427417['body'][_0x80c8('0xb7')],_[_0x80c8('0xb8')](_0x427417['body'],[_0x80c8('0xb7'),'id'])||{})[_0x80c8('0xc0')](function(){return db[_0x80c8('0x68')][_0x80c8('0xc1')]({'attributes':['id',_0x80c8('0x2c'),_0x80c8('0xc2')],'where':{'id':_0x427417['body'][_0x80c8('0xb7')]}});})['then'](function(_0x163fb0){socket[_0x80c8('0xc3')](_0x80c8('0xc4'),{'id':Number(_0x427417[_0x80c8('0xb3')]['id']),'tags':_0x163fb0||[]});return{'id':Number(_0x427417['params']['id']),'tags':_0x163fb0||[]};});}})[_0x80c8('0x27')](respondWithResult(_0x3f67a0,null))[_0x80c8('0xaf')](handleError(_0x3f67a0,null));};exports['removeTags']=function(_0x506b98,_0x4a7ed8,_0xf31963){return db[_0x80c8('0x35')][_0x80c8('0x5c')]({'where':{'id':_0x506b98[_0x80c8('0xb3')]['id']}})[_0x80c8('0x27')](handleEntityNotFound(_0x4a7ed8,null))[_0x80c8('0x27')](function(_0x36d3e3){if(_0x36d3e3){return _0x36d3e3[_0x80c8('0xc5')](_0x506b98[_0x80c8('0x3b')][_0x80c8('0xb7')]);}})[_0x80c8('0x27')](respondWithStatusCode(_0x4a7ed8,null))[_0x80c8('0xaf')](handleError(_0x4a7ed8,null));};exports[_0x80c8('0xc6')]=function(_0x5706e1,_0x5536b8){var _0x344cc6=moment()[_0x80c8('0xc7')]()[_0x80c8('0x98')]();var _0x21a19d=path[_0x80c8('0xc8')](config[_0x80c8('0xc9')],_0x80c8('0xca'),_0x80c8('0xcb'),_0x80c8('0xcc'));var _0x43c5c2=path[_0x80c8('0xc8')](config[_0x80c8('0xc9')],'server',_0x80c8('0xcb'),_0x80c8('0xcd'));var _0x41a084=path[_0x80c8('0xc8')](_0x21a19d,_0x344cc6);var _0x1e8966=util[_0x80c8('0xbc')]('transcript-%d-%s.zip',_0x5706e1[_0x80c8('0xb3')]['id'],_0x344cc6);var _0x34f37a=path['join'](_0x21a19d,_0x1e8966);var _0x1f7c68=[];_0x1f7c68[_0x80c8('0xad')]({'model':db[_0x80c8('0x6a')],'as':_0x80c8('0x6a'),'attributes':['id','fullname'],'raw':!![]});_0x1f7c68[_0x80c8('0xad')]({'model':db['CmContact'],'as':'Contact','attributes':['id','firstName',_0x80c8('0xce')],'raw':!![]});var _0x5240ea=[{'model':db[_0x80c8('0xb6')],'as':_0x80c8('0xcf'),'attributes':['id',_0x80c8('0x6d'),'createdAt',_0x80c8('0xd0'),_0x80c8('0xd1'),_0x80c8('0x7c')],'include':_0x1f7c68}];_0x5240ea[_0x80c8('0xad')]({'model':db[_0x80c8('0xd2')],'as':'Account','attributes':['id',_0x80c8('0x2c')]});_0x5240ea[_0x80c8('0xad')]({'model':db[_0x80c8('0x6a')],'as':'Owner','attributes':['id',_0x80c8('0x2e')]});return db[_0x80c8('0x35')][_0x80c8('0x5c')]({'where':{'id':_0x5706e1[_0x80c8('0xb3')]['id']},'include':_0x5240ea})[_0x80c8('0x27')](handleEntityNotFound(_0x5536b8,null))[_0x80c8('0x27')](function(_0x103877){if(_0x103877){var _0x2d9fbe=_0x103877[_0x80c8('0xd3')]({'plain':!![]});fs[_0x80c8('0xd4')](_0x41a084);var _0x260e24={'channel':'Sms','account':_0x2d9fbe[_0x80c8('0xd5')][_0x80c8('0x2c')],'agent':_0x2d9fbe[_0x80c8('0xd6')]?_0x2d9fbe[_0x80c8('0xd6')][_0x80c8('0x2e')]:_0x80c8('0xd7'),'createdAt':moment(_0x2d9fbe[_0x80c8('0xd8')])[_0x80c8('0xbc')](_0x80c8('0xd9'))[_0x80c8('0x98')](),'closedAt':_0x2d9fbe['closed']?moment(_0x2d9fbe['closedAt'])[_0x80c8('0xbc')](_0x80c8('0xd9'))[_0x80c8('0x98')]():'','disposition':_0x2d9fbe[_0x80c8('0xda')],'messages':_(_0x2d9fbe['Messages'])[_0x80c8('0x82')]({'secret':![]})[_0x80c8('0x34')](function(_0x51ca8c){return{'date':moment(_0x51ca8c[_0x80c8('0xd8')])[_0x80c8('0xbc')](_0x80c8('0xd9'))[_0x80c8('0x98')](),'sender':_0x51ca8c[_0x80c8('0xd0')]==='out'?_0x51ca8c[_0x80c8('0x6a')]?_0x51ca8c['User'][_0x80c8('0x2e')]:_0x80c8('0xdb'):_0x51ca8c[_0x80c8('0xdc')]['firstName']+(_0x51ca8c[_0x80c8('0xdc')][_0x80c8('0xce')]?'\x20'+_0x51ca8c[_0x80c8('0xdc')][_0x80c8('0xce')]:''),'body':_0x51ca8c[_0x80c8('0x6d')],'direction':_0x51ca8c['direction']===_0x80c8('0xdd')?'A':'C','secret':_0x51ca8c[_0x80c8('0xd1')],'read':_0x51ca8c[_0x80c8('0x7c')]};})['value']()};return ejs[_0x80c8('0xde')](path[_0x80c8('0xc8')](config[_0x80c8('0xc9')],_0x80c8('0xca'),_0x80c8('0xdf'),_0x80c8('0xe0')),{'interaction':_0x260e24})[_0x80c8('0x27')](function(_0x229a03){var _0x51bc3e=path[_0x80c8('0xc8')](_0x41a084,_0x80c8('0xe1')+_0x2d9fbe['id']+'-'+_0x344cc6+_0x80c8('0xe2'));var _0x548252={'path':_0x51bc3e,'channel':_0x80c8('0xe3'),'interactionId':_0x2d9fbe['id']};return pdf[_0x80c8('0xe4')](_0x229a03,_0x548252);})['then'](function(){return new BPromise(function(_0x155a13,_0x5bd2ff){zipdir(_0x41a084,{'saveTo':_0x34f37a},function(_0x155fd7,_0x3ba6c2){if(_0x155fd7)return _0x5bd2ff(_0x155fd7);return _0x155a13(_0x3ba6c2);});})[_0x80c8('0x27')](function(){return new BPromise(function(_0x1612f3,_0x4217b9){rimraf(_0x41a084,function(_0x2c0fb2){if(_0x2c0fb2)_0x4217b9(_0x2c0fb2);return _0x1612f3();});});})[_0x80c8('0x27')](function(){return _0x5536b8[_0x80c8('0xc6')](_0x34f37a,_0x1e8966,function(_0x58bf39){if(_0x58bf39){console[_0x80c8('0xe5')](_0x80c8('0xe6'),_0x58bf39);}else{fs[_0x80c8('0xe7')](_0x34f37a);}});});});}else{return _0x5536b8[_0x80c8('0x29')](0xc8);}})[_0x80c8('0xaf')](handleError(_0x5536b8,null));};
\ No newline at end of file
+var _0xa515=['emit','smsInteractionTags:save','download','join','root','server','files','tmp','attachments','format','CmContact','firstName','lastName','direction','secret','Account','Owner','get','Sms','N.A.','disposition','Messages','out','views','transcript-','.pdf','err','unlinkSync','sendStatus','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/export/pdf','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','defaults','redis','localhost','./smsInteraction.socket','register','status','offset','undefined','limit','count','set','Content-Range','reject','save','update','then','destroy','end','stack','name','Users','map','fullname','Tags','TagIds','forEach','push','index','SmsInteraction','key','query','keys','filters','model','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','select','field','color','from','tools_tags','u.id','ui.SmsInteractionId','user_has_sms_interactions','left_join','users','u.id\x20=\x20ui.UserId','sms_interactions','cm_contacts','o.id\x20=\x20i.UserId','sms_accounts','a.id\x20=\x20i.SmsAccountId','sms_messages','sms_interaction_has_tags','it.SmsInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','expr','search','parseSearch','sqlOperator','conditions','find','unreadMessages','value','having','Contact','operator','$substring','split','getFullTextValue','ContactId','type','start','Tag','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','body','buildExpression','text','some','compact','isEmpty','SmsAccountId','createdAt','parse','$gte','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','tag','isArray','filter','replace','isNumeric','i.phone\x20LIKE\x20?','group','Sequelize','QueryTypes','SELECT','clone','i.id','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','DESC','user','role','agent','getSmsAccounts','i.SmsAccountId\x20IS\x20NULL','i.SmsAccountId\x20IN\x20?','sequelize','toString','keyBy','merge','a.key','Account.key','a.mandatoryDisposition','Account.mandatoryDisposition','CASE\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END','contactName','i.*','c.firstName','Contact.lastName','c.email','c.phone','Contact.phone','c.mobile','Contact.mobile','c.fax','Contact.fax','o.fullname','Owner.fullname','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.SmsInteractionId\x20IN\x20?','groupBy','SmsInteractionId','all','rows','catch','params','include','options','create','describe','addMessage','SmsMessage','ids','omit','findOne','rawAttributes','YYYY-MM-DD\x20HH:mm:ss','includeAll','findAll','addTags'];(function(_0x1d38e0,_0x23dcaf){var _0x26e31b=function(_0x26b77b){while(--_0x26b77b){_0x1d38e0['push'](_0x1d38e0['shift']());}};_0x26e31b(++_0x23dcaf);}(_0xa515,0x1e3));var _0x5a51=function(_0x2efe6c,_0x28c861){_0x2efe6c=_0x2efe6c-0x0;var _0x2b3897=_0xa515[_0x2efe6c];return _0x2b3897;};'use strict';var emlformat=require(_0x5a51('0x0'));var rimraf=require(_0x5a51('0x1'));var zipdir=require(_0x5a51('0x2'));var jsonpatch=require(_0x5a51('0x3'));var rp=require(_0x5a51('0x4'));var moment=require(_0x5a51('0x5'));var BPromise=require(_0x5a51('0x6'));var Mustache=require(_0x5a51('0x7'));var util=require('util');var path=require(_0x5a51('0x8'));var sox=require(_0x5a51('0x9'));var csv=require(_0x5a51('0xa'));var ejs=require(_0x5a51('0xb'));var fs=require('fs');var fs_extra=require(_0x5a51('0xc'));var _=require('lodash');var squel=require(_0x5a51('0xd'));var crypto=require(_0x5a51('0xe'));var jsforce=require(_0x5a51('0xf'));var deskjs=require(_0x5a51('0x10'));var toCsv=require(_0x5a51('0xa'));var querystring=require(_0x5a51('0x11'));var Papa=require(_0x5a51('0x12'));var Redis=require(_0x5a51('0x13'));var authService=require(_0x5a51('0x14'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var pdf=require(_0x5a51('0x15'));var hardwareService=require(_0x5a51('0x16'));var logger=require(_0x5a51('0x17'))('api');var utils=require('../../config/utils');var config=require(_0x5a51('0x18'));var licenseUtil=require(_0x5a51('0x19'));var db=require(_0x5a51('0x1a'))['db'];config['redis']=_[_0x5a51('0x1b')](config[_0x5a51('0x1c')],{'host':_0x5a51('0x1d'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0x5a51('0x1e'))[_0x5a51('0x1f')](socket);function respondWithStatusCode(_0x319142,_0xf015b7){_0xf015b7=_0xf015b7||0xcc;return function(_0x33e3fe){if(_0x33e3fe){return _0x319142['sendStatus'](_0xf015b7);}return _0x319142[_0x5a51('0x20')](_0xf015b7)['end']();};}function respondWithResult(_0x49c4ca,_0x5802ed){_0x5802ed=_0x5802ed||0xc8;return function(_0x212b0b){if(_0x212b0b){return _0x49c4ca[_0x5a51('0x20')](_0x5802ed)['json'](_0x212b0b);}};}function respondWithFilteredResult(_0x580852,_0x5bcfea){return function(_0x43bbb0){if(_0x43bbb0){var _0x1d190a=typeof _0x5bcfea[_0x5a51('0x21')]===_0x5a51('0x22')&&typeof _0x5bcfea[_0x5a51('0x23')]===_0x5a51('0x22');var _0x4e1676=_0x43bbb0[_0x5a51('0x24')];var _0x34025c=_0x1d190a?0x0:_0x5bcfea[_0x5a51('0x21')];var _0x2609ac=_0x1d190a?_0x43bbb0[_0x5a51('0x24')]:_0x5bcfea[_0x5a51('0x21')]+_0x5bcfea['limit'];var _0x2d773c;if(_0x2609ac>=_0x4e1676){_0x2609ac=_0x4e1676;_0x2d773c=0xc8;}else{_0x2d773c=0xce;}_0x580852[_0x5a51('0x20')](_0x2d773c);return _0x580852[_0x5a51('0x25')](_0x5a51('0x26'),_0x34025c+'-'+_0x2609ac+'/'+_0x4e1676)['json'](_0x43bbb0);}return null;};}function patchUpdates(_0x48cf92){return function(_0x4bc58c){try{jsonpatch['apply'](_0x4bc58c,_0x48cf92,!![]);}catch(_0x18efc7){return BPromise[_0x5a51('0x27')](_0x18efc7);}return _0x4bc58c[_0x5a51('0x28')]();};}function saveUpdates(_0x2b72f4,_0x1f49e7){return function(_0x1f75f3){if(_0x1f75f3){return _0x1f75f3[_0x5a51('0x29')](_0x2b72f4)[_0x5a51('0x2a')](function(_0x3e393e){return _0x3e393e;});}return null;};}function removeEntity(_0x1319a6,_0x2b9803){return function(_0x32c16a){if(_0x32c16a){return _0x32c16a[_0x5a51('0x2b')]()[_0x5a51('0x2a')](function(){_0x1319a6[_0x5a51('0x20')](0xcc)[_0x5a51('0x2c')]();});}};}function handleEntityNotFound(_0x330018,_0x379e25){return function(_0x590d91){if(!_0x590d91){_0x330018['sendStatus'](0x194);}return _0x590d91;};}function handleError(_0x26e6d3,_0x1c4051){_0x1c4051=_0x1c4051||0x1f4;return function(_0x144d1a){logger['error'](_0x144d1a[_0x5a51('0x2d')]);if(_0x144d1a[_0x5a51('0x2e')]){delete _0x144d1a[_0x5a51('0x2e')];}_0x26e6d3['status'](_0x1c4051)['send'](_0x144d1a);};}function getInteractionUsers(_0xedb221,_0x1e4893){return new BPromise(function(_0x2267c9,_0xfae302){try{if(_0x1e4893[_0xedb221['id']]){_0xedb221[_0x5a51('0x2f')]=_[_0x5a51('0x30')](_0x1e4893[_0xedb221['id']],function(_0x3f7d0f){return{'id':_0x3f7d0f['id'],'fullname':_0x3f7d0f[_0x5a51('0x31')]};});}}catch(_0x473c7e){_0xfae302(_0x473c7e);}_0x2267c9(_0xedb221);});}function getInteractionTags(_0xa9cec1,_0x557a1a){return new BPromise(function(_0x369b42,_0xef64b5){try{if(_0xa9cec1['TagIds']){_0xa9cec1[_0x5a51('0x32')]=[];_0xa9cec1[_0x5a51('0x33')]['split'](',')[_0x5a51('0x34')](function(_0x566ce9){_0xa9cec1[_0x5a51('0x32')][_0x5a51('0x35')](_0x557a1a[_0x566ce9]);});}delete _0xa9cec1[_0x5a51('0x33')];}catch(_0x34841c){_0xef64b5(_0x34841c);}_0x369b42(_0xa9cec1);});}function updateSmsInteraction(_0x3250d3,_0x2cec09,_0x565cbe){return new BPromise(function(_0x1a7782,_0x388f90){return getInteractionUsers(_0x3250d3,_0x565cbe)['then'](function(_0x3d8da2){return getInteractionTags(_0x3d8da2,_0x2cec09);})[_0x5a51('0x2a')](function(_0x2d136b){_0x1a7782(_0x2d136b);})['catch'](function(_0xf421e){_0x388f90(_0xf421e);});});}exports[_0x5a51('0x36')]=function(_0x1eb23a,_0xc559e2){var _0x139eb6={},_0x16e65={},_0x2ec1d5={'count':0x0,'rows':[]};var _0x3932bf=_['map'](db[_0x5a51('0x37')]['rawAttributes'],function(_0x246a69){return{'name':_0x246a69['fieldName'],'type':_0x246a69['type'][_0x5a51('0x38')]};});_0x16e65['model']=_[_0x5a51('0x30')](_0x3932bf,_0x5a51('0x2e'));_0x16e65[_0x5a51('0x39')]=_[_0x5a51('0x3a')](_0x1eb23a[_0x5a51('0x39')]);_0x16e65[_0x5a51('0x3b')]=_['intersection'](_0x16e65[_0x5a51('0x3c')],_0x16e65[_0x5a51('0x39')]);_0x139eb6['attributes']=_[_0x5a51('0x3d')](_0x16e65[_0x5a51('0x3c')],qs[_0x5a51('0x3e')](_0x1eb23a['query']['fields']));_0x139eb6[_0x5a51('0x3f')]=_0x139eb6[_0x5a51('0x3f')][_0x5a51('0x40')]?_0x139eb6[_0x5a51('0x3f')]:_0x16e65[_0x5a51('0x3c')];if(!_0x1eb23a[_0x5a51('0x39')][_0x5a51('0x41')](_0x5a51('0x42'))){_0x139eb6[_0x5a51('0x23')]=qs[_0x5a51('0x23')](_0x1eb23a[_0x5a51('0x39')][_0x5a51('0x23')]);_0x139eb6['offset']=qs['offset'](_0x1eb23a[_0x5a51('0x39')][_0x5a51('0x21')]);}_0x139eb6[_0x5a51('0x43')]=qs['sort'](_0x1eb23a[_0x5a51('0x39')][_0x5a51('0x44')]);_0x139eb6[_0x5a51('0x45')]=qs[_0x5a51('0x3b')](_[_0x5a51('0x46')](_0x1eb23a[_0x5a51('0x39')],_0x16e65[_0x5a51('0x3b')]),_0x3932bf);var _0x993170=[];var _0x35c5d7=squel[_0x5a51('0x47')]()[_0x5a51('0x48')]('id')['field'](_0x5a51('0x2e'))[_0x5a51('0x48')](_0x5a51('0x49'))[_0x5a51('0x4a')](_0x5a51('0x4b'));var _0x2eabc7=squel[_0x5a51('0x47')]()['field'](_0x5a51('0x4c'))[_0x5a51('0x48')]('u.fullname')[_0x5a51('0x48')](_0x5a51('0x4d'))[_0x5a51('0x4a')](_0x5a51('0x4e'),'ui')[_0x5a51('0x4f')](_0x5a51('0x50'),'u',_0x5a51('0x51'));var _0x4b4bef=squel[_0x5a51('0x47')]()[_0x5a51('0x4a')](_0x5a51('0x52'),'i')[_0x5a51('0x4f')](_0x5a51('0x53'),'c','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL')['left_join']('users','o',_0x5a51('0x54'))[_0x5a51('0x4f')](_0x5a51('0x55'),'a',_0x5a51('0x56'))[_0x5a51('0x4f')](_0x5a51('0x57'),'me','me.SmsInteractionId\x20=\x20i.id')[_0x5a51('0x4f')](_0x5a51('0x58'),'it',_0x5a51('0x59'))[_0x5a51('0x4f')](_0x5a51('0x4b'),'t',_0x5a51('0x5a'));var _0x41624b=squel[_0x5a51('0x5b')]();var _0x384e5c=[];var _0x557163=squel[_0x5a51('0x5b')]();var _0x146ce3;if(_0x1eb23a[_0x5a51('0x39')][_0x5a51('0x5c')]){_0x146ce3=as[_0x5a51('0x5d')](_0x1eb23a[_0x5a51('0x39')]['search']);var _0x59a2e5=_0x146ce3[_0x5a51('0x5e')];for(var _0x4a7aaa=0x0;_0x4a7aaa<_0x146ce3['conditions'][_0x5a51('0x40')];_0x4a7aaa++){var _0x69eb82=_0x146ce3[_0x5a51('0x5f')][_0x4a7aaa];var _0x2898ed='i';var _0x4ddb7c=_[_0x5a51('0x60')](_0x3932bf,['name',_0x69eb82[_0x5a51('0x48')]]);if(!_0x4ddb7c){switch(_0x69eb82[_0x5a51('0x48')]){case _0x5a51('0x61'):if(_0x69eb82[_0x5a51('0x62')]==0x1){_0x4b4bef[_0x5a51('0x63')]('`'+_0x69eb82[_0x5a51('0x48')]+'`\x20=\x200');}else{_0x4b4bef['having']('`'+_0x69eb82['field']+'`\x20>\x200');}break;case _0x5a51('0x64'):if(_0x69eb82[_0x5a51('0x65')]===_0x5a51('0x66')){if(_0x69eb82['value'][_0x5a51('0x67')]('\x20')[_0x5a51('0x40')]>0x1){_0x41624b[_0x59a2e5]('MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0x5a51('0x68')](_0x69eb82[_0x5a51('0x62')]),null);}else{var _0xeedb49='%'+_0x69eb82[_0x5a51('0x62')]+'%';_0x41624b[_0x59a2e5]('c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?',_0xeedb49,_0xeedb49,_0xeedb49);}}else{_0x4ddb7c=_[_0x5a51('0x60')](_0x3932bf,['name',_0x5a51('0x69')]);_0x69eb82[_0x5a51('0x48')]=_0x5a51('0x69');_0x57d1b6=as['buildExpression'](_0x2898ed,_0x4ddb7c[_0x5a51('0x6a')],_0x69eb82);_0x41624b[_0x59a2e5](_0x57d1b6['text'],_0x57d1b6[_0x5a51('0x62')][_0x5a51('0x6b')],_0x57d1b6['value'][_0x5a51('0x2c')]);}break;case _0x5a51('0x6c'):var _0x22bfcd=_0x69eb82[_0x5a51('0x62')][_0x5a51('0x67')](',')[_0x5a51('0x30')](function(_0x2f68c5){return Number(_0x2f68c5);});_0x22bfcd['forEach'](function(_0x420865){_0x557163['or'](_0x5a51('0x6d'),'%,'+_0x420865+',%');});_0x384e5c=_[_0x5a51('0x6e')](_0x384e5c,_0x22bfcd);break;case _0x5a51('0x6f'):if(_0x69eb82[_0x5a51('0x65')]===_0x5a51('0x66')){_0x41624b[_0x59a2e5](_0x5a51('0x70'),'%'+_0x69eb82['value']+'%',null);}else{_0x4ddb7c=_[_0x5a51('0x60')](_0x3932bf,[_0x5a51('0x2e'),'UserId']);_0x69eb82[_0x5a51('0x48')]=_0x5a51('0x71');_0x57d1b6=as['buildExpression'](_0x2898ed,_0x4ddb7c[_0x5a51('0x6a')],_0x69eb82);_0x41624b[_0x59a2e5](_0x57d1b6['text'],_0x57d1b6[_0x5a51('0x62')][_0x5a51('0x6b')],_0x57d1b6[_0x5a51('0x62')][_0x5a51('0x2c')]);}break;case _0x5a51('0x72'):_0x57d1b6=as[_0x5a51('0x73')]('me',null,_0x69eb82);_0x41624b[_0x59a2e5](_0x57d1b6[_0x5a51('0x74')],_0x57d1b6[_0x5a51('0x62')][_0x5a51('0x6b')],_0x57d1b6[_0x5a51('0x62')]['end']);break;}}else{var _0x57d1b6=as[_0x5a51('0x73')](_0x2898ed,_0x4ddb7c[_0x5a51('0x6a')],_0x69eb82);_0x41624b[_0x59a2e5](_0x57d1b6[_0x5a51('0x74')],_0x57d1b6['value'][_0x5a51('0x6b')],_0x57d1b6[_0x5a51('0x62')][_0x5a51('0x2c')]);}}}else{var _0x5efaf2=_(_0x1eb23a[_0x5a51('0x39')])[_0x5a51('0x3a')]()[_0x5a51('0x30')](function(_0x138349){return _[_0x5a51('0x75')](_0x3932bf,[_0x5a51('0x2e'),_0x138349])?_0x138349:undefined;})[_0x5a51('0x76')]()['value']();if(!_[_0x5a51('0x77')](_0x5efaf2)){_0x5efaf2[_0x5a51('0x34')](function(_0x216731){if(_0x216731===_0x5a51('0x78')){_0x4b4bef[_0x5a51('0x45')]('i.SmsAccountId\x20IN\x20?',[]['concat'](_0x1eb23a[_0x5a51('0x39')][_0x216731]));}else if(_0x216731===_0x5a51('0x79')){var _0x4ab428=JSON[_0x5a51('0x7a')](_0x1eb23a['query'][_0x216731])[_0x5a51('0x7b')];var _0x1602cb=JSON[_0x5a51('0x7a')](_0x1eb23a['query'][_0x216731])[_0x5a51('0x7c')];_0x4b4bef[_0x5a51('0x45')](_0x5a51('0x7d'),_0x4ab428,_0x1602cb);}else{if(_0x1eb23a[_0x5a51('0x39')][_0x216731]===_0x5a51('0x7e')){_0x4b4bef[_0x5a51('0x45')]('i.'+_0x216731+_0x5a51('0x7f'));}else{_0x4b4bef[_0x5a51('0x45')]('i.'+_0x216731+_0x5a51('0x80'),_0x1eb23a['query'][_0x216731]);}}});}if(_0x1eb23a[_0x5a51('0x39')]['read']){if(_0x1eb23a[_0x5a51('0x39')][_0x5a51('0x81')]==0x1){_0x4b4bef[_0x5a51('0x63')](_0x5a51('0x82'));}else{_0x4b4bef[_0x5a51('0x63')](_0x5a51('0x83'));}}if(_0x1eb23a[_0x5a51('0x39')][_0x5a51('0x84')]){_0x384e5c=_[_0x5a51('0x85')](_0x1eb23a[_0x5a51('0x39')][_0x5a51('0x84')])?_0x1eb23a[_0x5a51('0x39')][_0x5a51('0x84')]:new Array(_0x1eb23a[_0x5a51('0x39')][_0x5a51('0x84')]);_0x384e5c['forEach'](function(_0x469afa){_0x557163['or'](_0x5a51('0x6d'),'%,'+_0x469afa+',%');});}if(_0x1eb23a[_0x5a51('0x39')][_0x5a51('0x86')]){var _0x2b7130=_0x1eb23a[_0x5a51('0x39')][_0x5a51('0x86')][_0x5a51('0x87')]('\x5c','\x5c\x5c')[_0x5a51('0x87')](/'/g,'\x27\x27');if(qs[_0x5a51('0x88')](_0x2b7130)){_0x41624b['or']('i.id\x20LIKE\x20?',_0x2b7130+'%')['or'](_0x5a51('0x89'),_0x2b7130+'%');}else{_0x41624b['or']('MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0x5a51('0x68')](_0x2b7130))['or']('CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?',_0x2b7130+'%');}}}_0x4b4bef[_0x5a51('0x45')](_0x41624b);_0x4b4bef[_0x5a51('0x8a')]('i.id');var _0x149239={'type':db[_0x5a51('0x8b')][_0x5a51('0x8c')][_0x5a51('0x8d')],'raw':!![]};var _0x3fbdf3=_0x4b4bef[_0x5a51('0x8e')]();_0x3fbdf3[_0x5a51('0x48')](_0x5a51('0x8f'));_0x3fbdf3[_0x5a51('0x48')](_0x5a51('0x90'),'unreadMessages');if(_0x139eb6['order']){_0x139eb6[_0x5a51('0x43')]['forEach'](function(_0x1655c8){var _0x6e20b7=_0x1655c8[0x0]==='contactName'?_0x1655c8[0x0]:'i.'+_0x1655c8[0x0];_0x4b4bef[_0x5a51('0x43')](_0x6e20b7,_0x1655c8[0x1]===_0x5a51('0x91')?![]:!![]);});}if(!_[_0x5a51('0x77')](_0x384e5c)){_0x4b4bef[_0x5a51('0x63')](_0x557163);_0x3fbdf3[_0x5a51('0x45')]('t.id\x20IN\x20?',_0x384e5c);}BPromise['resolve']()[_0x5a51('0x2a')](function(){if(!_0x146ce3){if(_0x1eb23a[_0x5a51('0x39')][_0x5a51('0x78')])return;_0x3fbdf3[_0x5a51('0x45')]('i.SmsAccountId\x20IS\x20NOT\x20NULL');_0x4b4bef[_0x5a51('0x45')]('i.SmsAccountId\x20IS\x20NOT\x20NULL');return;}if(_0x1eb23a[_0x5a51('0x92')][_0x5a51('0x93')]!==_0x5a51('0x94'))return;return _0x1eb23a[_0x5a51('0x92')][_0x5a51('0x95')]({'attributes':['id'],'raw':!![]})['then'](function(_0x3069e7){if(_[_0x5a51('0x77')](_0x3069e7)){_0x3fbdf3[_0x5a51('0x45')](_0x5a51('0x96'));_0x4b4bef[_0x5a51('0x45')]('i.SmsAccountId\x20IS\x20NULL');}else{_0x3fbdf3[_0x5a51('0x45')]('i.SmsAccountId\x20IN\x20?',_[_0x5a51('0x30')](_0x3069e7,'id'));_0x4b4bef['where'](_0x5a51('0x97'),_[_0x5a51('0x30')](_0x3069e7,'id'));}});})['then'](function(){if(_0x1eb23a[_0x5a51('0x92')][_0x5a51('0x93')]==='agent'&&!_0x146ce3&&!_0x1eb23a[_0x5a51('0x39')][_0x5a51('0x78')])return[];return db['sequelize'][_0x5a51('0x39')](_0x3fbdf3['toString'](),_0x149239);})[_0x5a51('0x2a')](function(_0x33fd8d){_0x2ec1d5[_0x5a51('0x24')]=_0x33fd8d[_0x5a51('0x40')];if(_0x2ec1d5['count']===0x0)return[];return db[_0x5a51('0x98')]['query'](_0x35c5d7[_0x5a51('0x99')](),_0x149239)['then'](function(_0x4ad904){_0x993170=_[_0x5a51('0x9a')](_0x4ad904,'id');_0x149239=_[_0x5a51('0x9b')](_0x149239,{'model':db['SmsInteraction'],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x1eb23a[_0x5a51('0x39')][_0x5a51('0x3e')]){_0x139eb6[_0x5a51('0x3f')]['forEach'](function(_0x5b2c00){_0x4b4bef[_0x5a51('0x48')]('i.'+_0x5b2c00);});}else{_0x4b4bef[_0x5a51('0x48')](_0x5a51('0x90'),'unreadMessages');_0x4b4bef[_0x5a51('0x48')](_0x5a51('0x9c'),_0x5a51('0x9d'));_0x4b4bef[_0x5a51('0x48')](_0x5a51('0x9e'),_0x5a51('0x9f'));_0x4b4bef[_0x5a51('0x48')](_0x5a51('0xa0'),_0x5a51('0xa1'));_0x4b4bef[_0x5a51('0x48')](_0x5a51('0xa2'));_0x4b4bef['field'](_0x5a51('0xa3'),'Contact.firstName');_0x4b4bef[_0x5a51('0x48')]('c.lastName',_0x5a51('0xa4'));_0x4b4bef[_0x5a51('0x48')](_0x5a51('0xa5'),'Contact.email');_0x4b4bef['field'](_0x5a51('0xa6'),_0x5a51('0xa7'));_0x4b4bef['field'](_0x5a51('0xa8'),_0x5a51('0xa9'));_0x4b4bef[_0x5a51('0x48')](_0x5a51('0xaa'),_0x5a51('0xab'));_0x4b4bef[_0x5a51('0x48')](_0x5a51('0xac'),_0x5a51('0xad'));_0x4b4bef[_0x5a51('0x48')](_0x5a51('0xae'),_0x5a51('0xaf'));_0x4b4bef[_0x5a51('0x48')](_0x5a51('0xb0'),_0x5a51('0x33'));}if(_0x139eb6[_0x5a51('0x23')])_0x4b4bef[_0x5a51('0x23')](_0x139eb6['limit']);if(_0x139eb6[_0x5a51('0x21')])_0x4b4bef[_0x5a51('0x21')](_0x139eb6[_0x5a51('0x21')]);return db['sequelize'][_0x5a51('0x39')](_0x4b4bef[_0x5a51('0x99')](),_0x149239);})[_0x5a51('0x2a')](function(_0x5e5b9a){if(_0x5e5b9a['length']>0x0)_0x2eabc7[_0x5a51('0x45')](_0x5a51('0xb1'),_[_0x5a51('0x30')](_0x5e5b9a,'id'));return db[_0x5a51('0x98')][_0x5a51('0x39')](_0x2eabc7['toString'](),_0x149239)[_0x5a51('0x2a')](function(_0x4f9324){var _0x3b64a3=_[_0x5a51('0xb2')](_0x4f9324,_0x5a51('0xb3'));var _0xd075e1=[];_0x5e5b9a['forEach'](function(_0xa30e04){_0xd075e1[_0x5a51('0x35')](updateSmsInteraction(_0xa30e04,_0x993170,_0x3b64a3));});return BPromise[_0x5a51('0xb4')](_0xd075e1);});});})['then'](function(_0x40146a){_0x2ec1d5[_0x5a51('0xb5')]=_0x40146a;return _0x2ec1d5;})[_0x5a51('0x2a')](respondWithFilteredResult(_0xc559e2,_0x139eb6))[_0x5a51('0xb6')](handleError(_0xc559e2,null));};exports['show']=function(_0x503d27,_0x26659d){var _0x180d77={'raw':![],'where':{'id':_0x503d27[_0x5a51('0xb7')]['id']}},_0x1e11b5={};_0x1e11b5[_0x5a51('0x3c')]=_[_0x5a51('0x3a')](db[_0x5a51('0x37')]['rawAttributes']);_0x1e11b5['query']=_[_0x5a51('0x3a')](_0x503d27[_0x5a51('0x39')]);_0x1e11b5['filters']=_['intersection'](_0x1e11b5[_0x5a51('0x3c')],_0x1e11b5[_0x5a51('0x39')]);_0x180d77['attributes']=_['intersection'](_0x1e11b5['model'],qs[_0x5a51('0x3e')](_0x503d27[_0x5a51('0x39')][_0x5a51('0x3e')]));_0x180d77['attributes']=_0x180d77[_0x5a51('0x3f')][_0x5a51('0x40')]?_0x180d77[_0x5a51('0x3f')]:_0x1e11b5[_0x5a51('0x3c')];if(_0x503d27[_0x5a51('0x39')]['includeAll']){_0x180d77[_0x5a51('0xb8')]=[{'all':!![]}];}_0x180d77=_[_0x5a51('0x9b')]({},_0x180d77,_0x503d27[_0x5a51('0xb9')]);return db[_0x5a51('0x37')][_0x5a51('0x60')](_0x180d77)[_0x5a51('0x2a')](handleEntityNotFound(_0x26659d,null))[_0x5a51('0x2a')](respondWithResult(_0x26659d,null))[_0x5a51('0xb6')](handleError(_0x26659d,null));};exports[_0x5a51('0xba')]=function(_0xaaf81d,_0x2f921a){return db['SmsInteraction']['create'](_0xaaf81d[_0x5a51('0x72')],{})[_0x5a51('0x2a')](respondWithResult(_0x2f921a,0xc9))['catch'](handleError(_0x2f921a,null));};exports[_0x5a51('0x29')]=function(_0x551f2c,_0x3c43b0){if(_0x551f2c['body']['id']){delete _0x551f2c['body']['id'];}return db[_0x5a51('0x37')][_0x5a51('0x60')]({'where':{'id':_0x551f2c[_0x5a51('0xb7')]['id']}})['then'](handleEntityNotFound(_0x3c43b0,null))[_0x5a51('0x2a')](saveUpdates(_0x551f2c[_0x5a51('0x72')],null))[_0x5a51('0x2a')](respondWithResult(_0x3c43b0,null))[_0x5a51('0xb6')](handleError(_0x3c43b0,null));};exports['destroy']=function(_0x5864a9,_0xbc58ea){return db[_0x5a51('0x37')][_0x5a51('0x60')]({'where':{'id':_0x5864a9['params']['id']}})[_0x5a51('0x2a')](handleEntityNotFound(_0xbc58ea,null))[_0x5a51('0x2a')](removeEntity(_0xbc58ea,null))[_0x5a51('0xb6')](handleError(_0xbc58ea,null));};exports['describe']=function(_0x2de384,_0x23f00e){return db[_0x5a51('0x37')][_0x5a51('0xbb')]()[_0x5a51('0x2a')](respondWithResult(_0x23f00e,null))[_0x5a51('0xb6')](handleError(_0x23f00e,null));};exports[_0x5a51('0xbc')]=function(_0x46bb49,_0x5a9056,_0x27b237){return db[_0x5a51('0xbd')][_0x5a51('0x60')]({'where':{'id':_0x46bb49[_0x5a51('0xb7')]['id']}})['then'](handleEntityNotFound(_0x5a9056,null))[_0x5a51('0x2a')](function(_0x11cb10){if(_0x11cb10){return _0x11cb10[_0x5a51('0xbc')](_0x46bb49[_0x5a51('0x72')][_0x5a51('0xbe')],_[_0x5a51('0xbf')](_0x46bb49[_0x5a51('0x72')],[_0x5a51('0xbe'),'id'])||{});}})['then'](respondWithResult(_0x5a9056,null))['catch'](handleError(_0x5a9056,null));};exports['getMessages']=function(_0x3543e5,_0x202aeb,_0x36148b){var _0x4abbad={'raw':![],'where':{}};var _0x510e03={};var _0x35c9f4={'count':0x0,'rows':[]};return db[_0x5a51('0x37')][_0x5a51('0xc0')]({'where':{'id':_0x3543e5[_0x5a51('0xb7')]['id']}})['then'](handleEntityNotFound(_0x202aeb,null))[_0x5a51('0x2a')](function(_0x5dfe52){if(_0x5dfe52){_0x510e03['model']=_['keys'](db[_0x5a51('0xbd')][_0x5a51('0xc1')]);_0x510e03['query']=_[_0x5a51('0x3a')](_0x3543e5[_0x5a51('0x39')]);_0x510e03[_0x5a51('0x3b')]=_[_0x5a51('0x3d')](_0x510e03[_0x5a51('0x3c')],_0x510e03[_0x5a51('0x39')]);_0x4abbad[_0x5a51('0x3f')]=_[_0x5a51('0x3d')](_0x510e03[_0x5a51('0x3c')],qs['fields'](_0x3543e5['query']['fields']));_0x4abbad[_0x5a51('0x3f')]=_0x4abbad['attributes']['length']?_0x4abbad[_0x5a51('0x3f')]:_0x510e03[_0x5a51('0x3c')];if(!_0x3543e5[_0x5a51('0x39')]['hasOwnProperty']('nolimit')){_0x4abbad['limit']=qs['limit'](_0x3543e5[_0x5a51('0x39')][_0x5a51('0x23')]);_0x4abbad[_0x5a51('0x21')]=qs[_0x5a51('0x21')](_0x3543e5[_0x5a51('0x39')]['offset']);}_0x4abbad['order']=qs[_0x5a51('0x44')](_0x3543e5[_0x5a51('0x39')][_0x5a51('0x44')]);_0x4abbad[_0x5a51('0x45')]=qs[_0x5a51('0x3b')](_[_0x5a51('0x46')](_0x3543e5[_0x5a51('0x39')],_0x510e03[_0x5a51('0x3b')]));_0x4abbad[_0x5a51('0x45')]['SmsInteractionId']=_0x5dfe52['id'];if(_0x3543e5[_0x5a51('0x39')][_0x5a51('0x86')]){_0x4abbad['where']=_[_0x5a51('0x9b')](_0x4abbad[_0x5a51('0x45')],{'$or':_['map'](_0x4abbad[_0x5a51('0x3f')],function(_0x1cb53c){var _0xd0e30e={};_0xd0e30e[_0x1cb53c]={'$like':'%'+_0x3543e5[_0x5a51('0x39')][_0x5a51('0x86')]+'%'};return _0xd0e30e;})});}if(_0x3543e5[_0x5a51('0x39')][_0x5a51('0x7b')]){var _0x4f014a=_0x3543e5['query']['$gte'][_0x5a51('0x67')](',');var _0x38a56d={};_0x38a56d[_0x4f014a[0x0]]={'$gte':moment(_0x4f014a[0x1])['format'](_0x5a51('0xc2'))};_0x4abbad[_0x5a51('0x45')]=_[_0x5a51('0x9b')](_0x4abbad[_0x5a51('0x45')],_0x38a56d);}_0x4abbad=_[_0x5a51('0x9b')]({},_0x4abbad,_0x3543e5[_0x5a51('0xb9')]);return db['SmsMessage'][_0x5a51('0x24')]({'where':_0x4abbad[_0x5a51('0x45')]})[_0x5a51('0x2a')](function(_0x46b52d){_0x35c9f4[_0x5a51('0x24')]=_0x46b52d;if(_0x3543e5[_0x5a51('0x39')][_0x5a51('0xc3')]){_0x4abbad[_0x5a51('0xb8')]=[{'all':!![]}];}return db['SmsMessage'][_0x5a51('0xc4')](_0x4abbad);})['then'](function(_0x2c3120){_0x35c9f4['rows']=_0x2c3120;return _0x35c9f4;});}})[_0x5a51('0x2a')](respondWithFilteredResult(_0x202aeb,_0x4abbad))['catch'](handleError(_0x202aeb,null));};exports[_0x5a51('0xc5')]=function(_0x1d720c,_0x5d5242,_0x1d3806){return db[_0x5a51('0x37')][_0x5a51('0x60')]({'where':{'id':_0x1d720c[_0x5a51('0xb7')]['id']}})[_0x5a51('0x2a')](handleEntityNotFound(_0x5d5242,null))[_0x5a51('0x2a')](function(_0x65611b){if(_0x65611b){return _0x65611b['setTags'](_0x1d720c[_0x5a51('0x72')][_0x5a51('0xbe')],_['omit'](_0x1d720c[_0x5a51('0x72')],['ids','id'])||{})['spread'](function(){return db[_0x5a51('0x6c')][_0x5a51('0xc4')]({'attributes':['id',_0x5a51('0x2e'),'color'],'where':{'id':_0x1d720c[_0x5a51('0x72')]['ids']}});})['then'](function(_0x31c9c0){socket[_0x5a51('0xc6')](_0x5a51('0xc7'),{'id':Number(_0x1d720c[_0x5a51('0xb7')]['id']),'tags':_0x31c9c0||[]});return{'id':Number(_0x1d720c['params']['id']),'tags':_0x31c9c0||[]};});}})['then'](respondWithResult(_0x5d5242,null))[_0x5a51('0xb6')](handleError(_0x5d5242,null));};exports['removeTags']=function(_0x4eec00,_0x8f02e5,_0x26f425){return db['SmsInteraction'][_0x5a51('0x60')]({'where':{'id':_0x4eec00[_0x5a51('0xb7')]['id']}})[_0x5a51('0x2a')](handleEntityNotFound(_0x8f02e5,null))[_0x5a51('0x2a')](function(_0x23a0e1){if(_0x23a0e1){return _0x23a0e1['removeTags'](_0x4eec00['query'][_0x5a51('0xbe')]);}})[_0x5a51('0x2a')](respondWithStatusCode(_0x8f02e5,null))[_0x5a51('0xb6')](handleError(_0x8f02e5,null));};exports[_0x5a51('0xc8')]=function(_0x301ee0,_0x5640ad){var _0xe90403=moment()['unix']()['toString']();var _0x1c4419=path[_0x5a51('0xc9')](config[_0x5a51('0xca')],_0x5a51('0xcb'),_0x5a51('0xcc'),_0x5a51('0xcd'));var _0x2070a1=path['join'](config[_0x5a51('0xca')],_0x5a51('0xcb'),'files',_0x5a51('0xce'));var _0x277e83=path[_0x5a51('0xc9')](_0x1c4419,_0xe90403);var _0x19cbc9=util[_0x5a51('0xcf')]('transcript-%d-%s.zip',_0x301ee0[_0x5a51('0xb7')]['id'],_0xe90403);var _0x1ca2c8=path['join'](_0x1c4419,_0x19cbc9);var _0x189e42=[];_0x189e42['push']({'model':db[_0x5a51('0x6f')],'as':_0x5a51('0x6f'),'attributes':['id',_0x5a51('0x31')],'raw':!![]});_0x189e42[_0x5a51('0x35')]({'model':db[_0x5a51('0xd0')],'as':_0x5a51('0x64'),'attributes':['id',_0x5a51('0xd1'),_0x5a51('0xd2')],'raw':!![]});var _0x3e7749=[{'model':db[_0x5a51('0xbd')],'as':'Messages','attributes':['id',_0x5a51('0x72'),_0x5a51('0x79'),_0x5a51('0xd3'),_0x5a51('0xd4'),_0x5a51('0x81')],'include':_0x189e42}];_0x3e7749[_0x5a51('0x35')]({'model':db['SmsAccount'],'as':_0x5a51('0xd5'),'attributes':['id',_0x5a51('0x2e')]});_0x3e7749[_0x5a51('0x35')]({'model':db[_0x5a51('0x6f')],'as':_0x5a51('0xd6'),'attributes':['id','fullname']});return db[_0x5a51('0x37')][_0x5a51('0x60')]({'where':{'id':_0x301ee0[_0x5a51('0xb7')]['id']},'include':_0x3e7749})[_0x5a51('0x2a')](handleEntityNotFound(_0x5640ad,null))[_0x5a51('0x2a')](function(_0x308caa){if(_0x308caa){var _0x4fa7be=_0x308caa[_0x5a51('0xd7')]({'plain':!![]});fs['mkdirSync'](_0x277e83);var _0x1033eb={'channel':_0x5a51('0xd8'),'account':_0x4fa7be['Account'][_0x5a51('0x2e')],'agent':_0x4fa7be['Owner']?_0x4fa7be['Owner'][_0x5a51('0x31')]:_0x5a51('0xd9'),'createdAt':moment(_0x4fa7be[_0x5a51('0x79')])[_0x5a51('0xcf')]('YYYY-MM-DD\x20HH:mm:ss')['toString'](),'closedAt':_0x4fa7be['closed']?moment(_0x4fa7be['closedAt'])[_0x5a51('0xcf')]('YYYY-MM-DD\x20HH:mm:ss')[_0x5a51('0x99')]():'','disposition':_0x4fa7be[_0x5a51('0xda')],'messages':_(_0x4fa7be[_0x5a51('0xdb')])[_0x5a51('0x86')]({'secret':![]})[_0x5a51('0x30')](function(_0x4db2e2){return{'date':moment(_0x4db2e2[_0x5a51('0x79')])['format'](_0x5a51('0xc2'))[_0x5a51('0x99')](),'sender':_0x4db2e2[_0x5a51('0xd3')]===_0x5a51('0xdc')?_0x4db2e2[_0x5a51('0x6f')]?_0x4db2e2['User'][_0x5a51('0x31')]:'System':_0x4db2e2[_0x5a51('0x64')][_0x5a51('0xd1')]+(_0x4db2e2[_0x5a51('0x64')][_0x5a51('0xd2')]?'\x20'+_0x4db2e2['Contact'][_0x5a51('0xd2')]:''),'body':_0x4db2e2[_0x5a51('0x72')],'direction':_0x4db2e2['direction']===_0x5a51('0xdc')?'A':'C','secret':_0x4db2e2[_0x5a51('0xd4')],'read':_0x4db2e2['read']};})['value']()};return ejs['renderFile'](path[_0x5a51('0xc9')](config[_0x5a51('0xca')],_0x5a51('0xcb'),_0x5a51('0xdd'),'downloadInteraction.ejs'),{'interaction':_0x1033eb})['then'](function(_0x165968){var _0x4d23fd=path[_0x5a51('0xc9')](_0x277e83,_0x5a51('0xde')+_0x4fa7be['id']+'-'+_0xe90403+_0x5a51('0xdf'));var _0x58f60f={'path':_0x4d23fd,'channel':_0x5a51('0xd8'),'interactionId':_0x4fa7be['id']};return pdf['createPdfFromHTML'](_0x165968,_0x58f60f);})[_0x5a51('0x2a')](function(){return new BPromise(function(_0x2a953d,_0x4f9355){zipdir(_0x277e83,{'saveTo':_0x1ca2c8},function(_0x382184,_0x4029c8){if(_0x382184)return _0x4f9355(_0x382184);return _0x2a953d(_0x4029c8);});})[_0x5a51('0x2a')](function(){return new BPromise(function(_0x16bd89,_0x25226d){rimraf(_0x277e83,function(_0x535219){if(_0x535219)_0x25226d(_0x535219);return _0x16bd89();});});})['then'](function(){return _0x5640ad[_0x5a51('0xc8')](_0x1ca2c8,_0x19cbc9,function(_0x3d57ea){if(_0x3d57ea){console['log'](_0x5a51('0xe0'),_0x3d57ea);}else{fs[_0x5a51('0xe1')](_0x1ca2c8);}});});});}else{return _0x5640ad[_0x5a51('0xe2')](0xc8);}})[_0x5a51('0xb6')](handleError(_0x5640ad,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe511=['Users','map','setDataValue','unreadMessages','length','emit','catch','hasOwnProperty','hook','exports','events','../../mysqldb','setMaxListeners','save','remove','getUsers','then'];(function(_0x47fd78,_0x1b32ab){var _0x1bc9da=function(_0x3076b5){while(--_0x3076b5){_0x47fd78['push'](_0x47fd78['shift']());}};_0x1bc9da(++_0x1b32ab);}(_0xe511,0x16f));var _0x1e51=function(_0x34f7bb,_0x547eb3){_0x34f7bb=_0x34f7bb-0x0;var _0x2efee3=_0xe511[_0x34f7bb];return _0x2efee3;};'use strict';var EventEmitter=require(_0x1e51('0x0'));var SmsInteraction=require(_0x1e51('0x1'))['db']['SmsInteraction'];var SmsMessage=require(_0x1e51('0x1'))['db']['SmsMessage'];var SmsInteractionEvents=new EventEmitter();SmsInteractionEvents[_0x1e51('0x2')](0x0);var events={'afterCreate':_0x1e51('0x3'),'afterUpdate':'update','afterDestroy':_0x1e51('0x4')};function emitEvent(_0x2be2b7){return function(_0x204da7,_0x16ec99,_0x480cca){_0x204da7[_0x1e51('0x5')]({'attributes':['id'],'raw':!![]})[_0x1e51('0x6')](function(_0x5c4590){_0x204da7['setDataValue'](_0x1e51('0x7'),_0x5c4590[_0x1e51('0x8')](function(_0x4fa8a9){return{'id':_0x4fa8a9['id']};}));return SmsMessage['findAll']({'where':{'SmsInteractionId':_0x204da7['id'],'direction':'in','read':![]},'raw':!![]});})[_0x1e51('0x6')](function(_0x2712e0){_0x204da7[_0x1e51('0x9')](_0x1e51('0xa'),_0x2712e0[_0x1e51('0xb')]);SmsInteractionEvents[_0x1e51('0xc')](_0x2be2b7+':'+_0x204da7['id'],_0x204da7);SmsInteractionEvents['emit'](_0x2be2b7,_0x204da7);_0x480cca(null);})[_0x1e51('0xd')](_0x480cca(null));};}for(var e in events){if(events[_0x1e51('0xe')](e)){var event=events[e];SmsInteraction[_0x1e51('0xf')](e,emitEvent(event));}}module[_0x1e51('0x10')]=SmsInteractionEvents;
\ No newline at end of file
+var _0x160f=['events','../../mysqldb','SmsInteraction','setMaxListeners','save','update','remove','getUsers','setDataValue','findAll','then','emit','catch','hook','exports'];(function(_0x2ced8b,_0x472cfa){var _0x53a1ba=function(_0x348806){while(--_0x348806){_0x2ced8b['push'](_0x2ced8b['shift']());}};_0x53a1ba(++_0x472cfa);}(_0x160f,0x1ef));var _0xf160=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x160f[_0x3dd15e];return _0x231fd0;};'use strict';var EventEmitter=require(_0xf160('0x0'));var SmsInteraction=require(_0xf160('0x1'))['db'][_0xf160('0x2')];var SmsMessage=require(_0xf160('0x1'))['db']['SmsMessage'];var SmsInteractionEvents=new EventEmitter();SmsInteractionEvents[_0xf160('0x3')](0x0);var events={'afterCreate':_0xf160('0x4'),'afterUpdate':_0xf160('0x5'),'afterDestroy':_0xf160('0x6')};function emitEvent(_0x194331){return function(_0xfdbd72,_0x4a6f3d,_0x311d63){_0xfdbd72[_0xf160('0x7')]({'attributes':['id'],'raw':!![]})['then'](function(_0x59440e){_0xfdbd72[_0xf160('0x8')]('Users',_0x59440e['map'](function(_0x496014){return{'id':_0x496014['id']};}));return SmsMessage[_0xf160('0x9')]({'where':{'SmsInteractionId':_0xfdbd72['id'],'direction':'in','read':![]},'raw':!![]});})[_0xf160('0xa')](function(_0x393f70){_0xfdbd72[_0xf160('0x8')]('unreadMessages',_0x393f70['length']);SmsInteractionEvents[_0xf160('0xb')](_0x194331+':'+_0xfdbd72['id'],_0xfdbd72);SmsInteractionEvents[_0xf160('0xb')](_0x194331,_0xfdbd72);_0x311d63(null);})[_0xf160('0xc')](_0x311d63(null));};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];SmsInteraction[_0xf160('0xd')](e,emitEvent(event));}}module[_0xf160('0xe')]=SmsInteractionEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x43c1=['../../config/environment','./smsInteraction.attributes','SmsInteraction','changed','closedAt','format','lodash','util','../../config/logger','api','bluebird','request-promise','rimraf'];(function(_0x918806,_0x5c1b0d){var _0x54f240=function(_0x354155){while(--_0x354155){_0x918806['push'](_0x918806['shift']());}};_0x54f240(++_0x5c1b0d);}(_0x43c1,0x1c0));var _0x143c=function(_0xb31927,_0x4e7eb4){_0xb31927=_0xb31927-0x0;var _0x47b9d0=_0x43c1[_0xb31927];return _0x47b9d0;};'use strict';var _=require(_0x143c('0x0'));var util=require(_0x143c('0x1'));var logger=require(_0x143c('0x2'))(_0x143c('0x3'));var moment=require('moment');var BPromise=require(_0x143c('0x4'));var rp=require(_0x143c('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x143c('0x6'));var config=require(_0x143c('0x7'));var attributes=require(_0x143c('0x8'));module['exports']=function(_0x19cda0,_0x819d92){return _0x19cda0['define'](_0x143c('0x9'),attributes,{'tableName':'sms_interactions','paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x12640f,_0x4bd6d4,_0x515dc4){if(_0x12640f[_0x143c('0xa')]('closed')){_0x12640f[_0x143c('0xb')]=moment()[_0x143c('0xc')]('YYYY-MM-DD\x20HH:mm:ss');}_0x515dc4(null,_0x12640f);}}});};
\ No newline at end of file
+var _0x064a=['SmsInteraction','sms_interactions','changed','closed','closedAt','format','YYYY-MM-DD\x20HH:mm:ss','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','exports','define'];(function(_0x16357e,_0x41ab54){var _0xc5a3b4=function(_0x16839a){while(--_0x16839a){_0x16357e['push'](_0x16357e['shift']());}};_0xc5a3b4(++_0x41ab54);}(_0x064a,0x124));var _0xa064=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x064a[_0x20a584];return _0x4b41a8;};'use strict';var _=require(_0xa064('0x0'));var util=require(_0xa064('0x1'));var logger=require(_0xa064('0x2'))(_0xa064('0x3'));var moment=require(_0xa064('0x4'));var BPromise=require(_0xa064('0x5'));var rp=require(_0xa064('0x6'));var fs=require('fs');var path=require(_0xa064('0x7'));var rimraf=require(_0xa064('0x8'));var config=require(_0xa064('0x9'));var attributes=require('./smsInteraction.attributes');module[_0xa064('0xa')]=function(_0x2494ec,_0x312b3f){return _0x2494ec[_0xa064('0xb')](_0xa064('0xc'),attributes,{'tableName':_0xa064('0xd'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x1efb17,_0x5417b3,_0x48baa3){if(_0x1efb17[_0xa064('0xe')](_0xa064('0xf'))){_0x1efb17[_0xa064('0x10')]=moment()[_0xa064('0x11')](_0xa064('0x12'));}_0x48baa3(null,_0x1efb17);}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa322=['code','message','catch','UpdateSmsInteraction','SmsInteraction','body','options','raw','attributes','then','AddTagsToSmsInteraction','find','where','addTags','ids','omit','spread','AddTags','debug','lodash','util','moment','bluebird','ioredis','../../config/utils','../../config/logger','rpc','jayson/promise','http','redis','defaults','localhost','socket.io-emitter','./smsInteraction.socket','register','request','info','SmsInteraction,\x20%s,\x20%s','request\x20sent','SmsInteraction,\x20%s,\x20%s,\x20%s','stringify','error'];(function(_0x3b25a2,_0x268755){var _0x3ef3a7=function(_0x2de3a6){while(--_0x2de3a6){_0x3b25a2['push'](_0x3b25a2['shift']());}};_0x3ef3a7(++_0x268755);}(_0xa322,0xbb));var _0x2a32=function(_0x437b8e,_0x218253){_0x437b8e=_0x437b8e-0x0;var _0x43be03=_0xa322[_0x437b8e];return _0x43be03;};'use strict';var _=require(_0x2a32('0x0'));var util=require(_0x2a32('0x1'));var moment=require(_0x2a32('0x2'));var BPromise=require(_0x2a32('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x2a32('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x2a32('0x5'));var logger=require(_0x2a32('0x6'))(_0x2a32('0x7'));var config=require('../../config/environment');var jayson=require(_0x2a32('0x8'));var client=jayson['client'][_0x2a32('0x9')]({'port':0x232a});config[_0x2a32('0xa')]=_[_0x2a32('0xb')](config['redis'],{'host':_0x2a32('0xc'),'port':0x18eb});var socket=require(_0x2a32('0xd'))(new Redis(config[_0x2a32('0xa')]));require(_0x2a32('0xe'))[_0x2a32('0xf')](socket);function respondWithRpcPromise(_0x36fdcf,_0x3bd6d9,_0x1ea115){return new BPromise(function(_0x42b5ce,_0x550e37){return client[_0x2a32('0x10')](_0x36fdcf,_0x1ea115)['then'](function(_0x43d11b){logger[_0x2a32('0x11')](_0x2a32('0x12'),_0x3bd6d9,_0x2a32('0x13'));logger['debug'](_0x2a32('0x14'),_0x3bd6d9,_0x2a32('0x13'),JSON[_0x2a32('0x15')](_0x43d11b));if(_0x43d11b[_0x2a32('0x16')]){if(_0x43d11b[_0x2a32('0x16')][_0x2a32('0x17')]===0x1f4){logger[_0x2a32('0x16')]('SmsInteraction,\x20%s,\x20%s',_0x3bd6d9,_0x43d11b[_0x2a32('0x16')][_0x2a32('0x18')]);return _0x550e37(_0x43d11b['error']['message']);}logger[_0x2a32('0x16')](_0x2a32('0x12'),_0x3bd6d9,_0x43d11b[_0x2a32('0x16')]['message']);return _0x42b5ce(_0x43d11b[_0x2a32('0x16')][_0x2a32('0x18')]);}else{logger[_0x2a32('0x11')](_0x2a32('0x12'),_0x3bd6d9,_0x2a32('0x13'));_0x42b5ce(_0x43d11b['result'][_0x2a32('0x18')]);}})[_0x2a32('0x19')](function(_0x20e5dd){logger[_0x2a32('0x16')](_0x2a32('0x12'),_0x3bd6d9,_0x20e5dd);_0x550e37(_0x20e5dd);});});}exports[_0x2a32('0x1a')]=function(_0x5843a1){var _0x4548cd=this;return new Promise(function(_0x27faa4,_0x47e23a){return db[_0x2a32('0x1b')]['update'](_0x5843a1[_0x2a32('0x1c')],{'raw':_0x5843a1[_0x2a32('0x1d')]?_0x5843a1[_0x2a32('0x1d')][_0x2a32('0x1e')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x5843a1[_0x2a32('0x1d')]?_0x5843a1['options']['where']||null:null,'attributes':_0x5843a1[_0x2a32('0x1d')]?_0x5843a1['options'][_0x2a32('0x1f')]||null:null,'limit':_0x5843a1[_0x2a32('0x1d')]?_0x5843a1[_0x2a32('0x1d')]['limit']||null:null})[_0x2a32('0x20')](function(_0x20990d){logger[_0x2a32('0x11')]('UpdateSmsInteraction',_0x5843a1);logger['debug'](_0x2a32('0x1a'),_0x5843a1,JSON[_0x2a32('0x15')](_0x20990d));_0x27faa4(_0x20990d);})[_0x2a32('0x19')](function(_0x5cdca9){logger[_0x2a32('0x16')](_0x2a32('0x1a'),_0x5cdca9[_0x2a32('0x18')],_0x5843a1);_0x47e23a(_0x4548cd[_0x2a32('0x16')](0x1f4,_0x5cdca9[_0x2a32('0x18')]));});});};exports[_0x2a32('0x21')]=function(_0x2f6d6d){return new Promise(function(_0x4c426d,_0x30e213){return db[_0x2a32('0x1b')][_0x2a32('0x22')]({'where':_0x2f6d6d['options']?_0x2f6d6d[_0x2a32('0x1d')][_0x2a32('0x23')]||null:null})[_0x2a32('0x20')](function(_0x2362ed){if(_0x2362ed){return _0x2362ed[_0x2a32('0x24')](_0x2f6d6d[_0x2a32('0x1c')][_0x2a32('0x25')],_[_0x2a32('0x26')](_0x2f6d6d[_0x2a32('0x1c')],[_0x2a32('0x25'),'id'])||{});}})[_0x2a32('0x27')](function(_0x1e66ea){logger[_0x2a32('0x11')](_0x2a32('0x28'),_0x2f6d6d);logger[_0x2a32('0x29')](_0x2a32('0x28'),_0x2f6d6d,JSON[_0x2a32('0x15')](_0x1e66ea));_0x4c426d(_0x1e66ea);})[_0x2a32('0x19')](function(_0x149518){logger['error'](_0x2a32('0x28'),_0x149518['message'],_0x2f6d6d);_0x30e213(_this[_0x2a32('0x16')](0x1f4,_0x149518[_0x2a32('0x18')]));});});};
\ No newline at end of file
+var _0x4910=['body','raw','options','attributes','debug','find','addTags','ids','omit','spread','AddTags','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','rpc','jayson/promise','client','http','localhost','socket.io-emitter','redis','./smsInteraction.socket','register','request','then','info','SmsInteraction,\x20%s,\x20%s','SmsInteraction,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','catch','UpdateSmsInteraction','SmsInteraction','update'];(function(_0x44ee2a,_0x4767f0){var _0x51c626=function(_0x340ca2){while(--_0x340ca2){_0x44ee2a['push'](_0x44ee2a['shift']());}};_0x51c626(++_0x4767f0);}(_0x4910,0x101));var _0x0491=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0x4910[_0xa464c9];return _0x3d73c4;};'use strict';var _=require(_0x0491('0x0'));var util=require(_0x0491('0x1'));var moment=require(_0x0491('0x2'));var BPromise=require(_0x0491('0x3'));var rs=require(_0x0491('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x0491('0x5'))['db'];var utils=require(_0x0491('0x6'));var logger=require('../../config/logger')(_0x0491('0x7'));var config=require('../../config/environment');var jayson=require(_0x0491('0x8'));var client=jayson[_0x0491('0x9')][_0x0491('0xa')]({'port':0x232a});config['redis']=_['defaults'](config['redis'],{'host':_0x0491('0xb'),'port':0x18eb});var socket=require(_0x0491('0xc'))(new Redis(config[_0x0491('0xd')]));require(_0x0491('0xe'))[_0x0491('0xf')](socket);function respondWithRpcPromise(_0x1c0706,_0x339a57,_0x53a88b){return new BPromise(function(_0x5d43b6,_0x1991ba){return client[_0x0491('0x10')](_0x1c0706,_0x53a88b)[_0x0491('0x11')](function(_0x5362d0){logger[_0x0491('0x12')](_0x0491('0x13'),_0x339a57,'request\x20sent');logger['debug'](_0x0491('0x14'),_0x339a57,_0x0491('0x15'),JSON[_0x0491('0x16')](_0x5362d0));if(_0x5362d0[_0x0491('0x17')]){if(_0x5362d0[_0x0491('0x17')]['code']===0x1f4){logger[_0x0491('0x17')]('SmsInteraction,\x20%s,\x20%s',_0x339a57,_0x5362d0[_0x0491('0x17')]['message']);return _0x1991ba(_0x5362d0[_0x0491('0x17')][_0x0491('0x18')]);}logger[_0x0491('0x17')]('SmsInteraction,\x20%s,\x20%s',_0x339a57,_0x5362d0[_0x0491('0x17')][_0x0491('0x18')]);return _0x5d43b6(_0x5362d0[_0x0491('0x17')][_0x0491('0x18')]);}else{logger[_0x0491('0x12')](_0x0491('0x13'),_0x339a57,_0x0491('0x15'));_0x5d43b6(_0x5362d0[_0x0491('0x19')][_0x0491('0x18')]);}})[_0x0491('0x1a')](function(_0x485acd){logger['error'](_0x0491('0x13'),_0x339a57,_0x485acd);_0x1991ba(_0x485acd);});});}exports[_0x0491('0x1b')]=function(_0x10831a){var _0x45706f=this;return new Promise(function(_0x468d4a,_0x5d7126){return db[_0x0491('0x1c')][_0x0491('0x1d')](_0x10831a[_0x0491('0x1e')],{'raw':_0x10831a['options']?_0x10831a['options'][_0x0491('0x1f')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x10831a[_0x0491('0x20')]?_0x10831a['options']['where']||null:null,'attributes':_0x10831a[_0x0491('0x20')]?_0x10831a['options'][_0x0491('0x21')]||null:null,'limit':_0x10831a['options']?_0x10831a['options']['limit']||null:null})[_0x0491('0x11')](function(_0x8b0648){logger[_0x0491('0x12')]('UpdateSmsInteraction',_0x10831a);logger[_0x0491('0x22')](_0x0491('0x1b'),_0x10831a,JSON[_0x0491('0x16')](_0x8b0648));_0x468d4a(_0x8b0648);})[_0x0491('0x1a')](function(_0x451c19){logger[_0x0491('0x17')](_0x0491('0x1b'),_0x451c19[_0x0491('0x18')],_0x10831a);_0x5d7126(_0x45706f[_0x0491('0x17')](0x1f4,_0x451c19[_0x0491('0x18')]));});});};exports['AddTagsToSmsInteraction']=function(_0x9c060c){return new Promise(function(_0x108b08,_0x1bc62f){return db[_0x0491('0x1c')][_0x0491('0x23')]({'where':_0x9c060c[_0x0491('0x20')]?_0x9c060c[_0x0491('0x20')]['where']||null:null})['then'](function(_0x455bb0){if(_0x455bb0){return _0x455bb0[_0x0491('0x24')](_0x9c060c[_0x0491('0x1e')][_0x0491('0x25')],_[_0x0491('0x26')](_0x9c060c[_0x0491('0x1e')],['ids','id'])||{});}})[_0x0491('0x27')](function(_0x4e7fa2){logger[_0x0491('0x12')](_0x0491('0x28'),_0x9c060c);logger[_0x0491('0x22')](_0x0491('0x28'),_0x9c060c,JSON[_0x0491('0x16')](_0x4e7fa2));_0x108b08(_0x4e7fa2);})['catch'](function(_0x892cc5){logger[_0x0491('0x17')]('AddTags',_0x892cc5[_0x0491('0x18')],_0x9c060c);_0x1bc62f(_this[_0x0491('0x17')](0x1f4,_0x892cc5[_0x0491('0x18')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x040d=['./smsInteraction.events','emit','register','smsInteraction:'];(function(_0x45a770,_0x382fa3){var _0x1e2424=function(_0x3f19b2){while(--_0x3f19b2){_0x45a770['push'](_0x45a770['shift']());}};_0x1e2424(++_0x382fa3);}(_0x040d,0x9c));var _0xd040=function(_0xbeab9,_0x37ec4a){_0xbeab9=_0xbeab9-0x0;var _0x27650c=_0x040d[_0xbeab9];return _0x27650c;};'use strict';var SmsInteractionEvents=require(_0xd040('0x0'));var events=['save','remove','update'];function createListener(_0x82b9bf,_0x156fbd){return function(_0x3cd299){_0x156fbd[_0xd040('0x1')](_0x82b9bf,_0x3cd299);};}function removeListener(_0x4a05e4,_0x32edaa){return function(){SmsInteractionEvents['removeListener'](_0x4a05e4,_0x32edaa);};}exports[_0xd040('0x2')]=function(_0x8d81d9){for(var _0x5c0d4b=0x0,_0x3b4fcd=events['length'];_0x5c0d4b<_0x3b4fcd;_0x5c0d4b++){var _0x5d7bef=events[_0x5c0d4b];var _0x523cd0=createListener(_0xd040('0x3')+_0x5d7bef,_0x8d81d9);SmsInteractionEvents['on'](_0x5d7bef,_0x523cd0);}};
\ No newline at end of file
+var _0x878b=['emit','register','length','smsInteraction:','save','remove','update'];(function(_0x40a045,_0x516f0e){var _0x1a687c=function(_0x48c9fe){while(--_0x48c9fe){_0x40a045['push'](_0x40a045['shift']());}};_0x1a687c(++_0x516f0e);}(_0x878b,0xf9));var _0xb878=function(_0x1b8b95,_0x3ea343){_0x1b8b95=_0x1b8b95-0x0;var _0x3657ae=_0x878b[_0x1b8b95];return _0x3657ae;};'use strict';var SmsInteractionEvents=require('./smsInteraction.events');var events=[_0xb878('0x0'),_0xb878('0x1'),_0xb878('0x2')];function createListener(_0x264a78,_0x14fa05){return function(_0x1ab30a){_0x14fa05[_0xb878('0x3')](_0x264a78,_0x1ab30a);};}function removeListener(_0x414c41,_0x41b4cd){return function(){SmsInteractionEvents['removeListener'](_0x414c41,_0x41b4cd);};}exports[_0xb878('0x4')]=function(_0x306c7b){for(var _0x55f1d8=0x0,_0x2420e2=events[_0xb878('0x5')];_0x55f1d8<_0x2420e2;_0x55f1d8++){var _0x15840d=events[_0x55f1d8];var _0x37f078=createListener(_0xb878('0x6')+_0x15840d,_0x306c7b);SmsInteractionEvents['on'](_0x15840d,_0x37f078);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x64e7=['/describe','describe','get','/:id','isAuthenticated','post','sms','smsmessage:create','/:id/status','put','update','/:id/accept','accept','/:id/reject','reject','destroy','exports','multer','express','Router','fs-extra','../../config/environment','./smsMessage.controller','index'];(function(_0x4fc504,_0x5d4f11){var _0x5a43e7=function(_0x2eb68e){while(--_0x2eb68e){_0x4fc504['push'](_0x4fc504['shift']());}};_0x5a43e7(++_0x5d4f11);}(_0x64e7,0x119));var _0x764e=function(_0x27a98e,_0x491bbb){_0x27a98e=_0x27a98e-0x0;var _0x296461=_0x64e7[_0x27a98e];return _0x296461;};'use strict';var multer=require(_0x764e('0x0'));var util=require('util');var path=require('path');var timeout=require('connect-timeout');var express=require(_0x764e('0x1'));var router=express[_0x764e('0x2')]();var fs_extra=require(_0x764e('0x3'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x764e('0x4'));var controller=require(_0x764e('0x5'));router['get']('/',auth['isAuthenticated'](),controller[_0x764e('0x6')]);router['get'](_0x764e('0x7'),auth['isAuthenticated'](),controller[_0x764e('0x8')]);router[_0x764e('0x9')](_0x764e('0xa'),auth[_0x764e('0xb')](),controller['show']);router[_0x764e('0xc')]('/',auth['isAuthenticated'](),interaction['tracked'](_0x764e('0xd'),_0x764e('0xe')),controller['create']);router[_0x764e('0xc')](_0x764e('0xf'),controller['status']);router[_0x764e('0x10')]('/:id',auth['isAuthenticated'](),controller[_0x764e('0x11')]);router[_0x764e('0x10')](_0x764e('0x12'),auth[_0x764e('0xb')](),controller[_0x764e('0x13')]);router[_0x764e('0x10')](_0x764e('0x14'),auth[_0x764e('0xb')](),controller[_0x764e('0x15')]);router['delete']('/:id',auth['isAuthenticated'](),controller[_0x764e('0x16')]);module[_0x764e('0x17')]=router;
\ No newline at end of file
+var _0xc698=['/:id','show','post','tracked','smsmessage:create','create','status','update','/:id/accept','accept','put','delete','destroy','multer','util','path','connect-timeout','express','../../components/auth/service','../../config/environment','get','/describe','isAuthenticated','describe'];(function(_0x1586c6,_0x59e7da){var _0x957ef1=function(_0x705e7d){while(--_0x705e7d){_0x1586c6['push'](_0x1586c6['shift']());}};_0x957ef1(++_0x59e7da);}(_0xc698,0x85));var _0x8c69=function(_0x11a55c,_0x4eced9){_0x11a55c=_0x11a55c-0x0;var _0x26c390=_0xc698[_0x11a55c];return _0x26c390;};'use strict';var multer=require(_0x8c69('0x0'));var util=require(_0x8c69('0x1'));var path=require(_0x8c69('0x2'));var timeout=require(_0x8c69('0x3'));var express=require(_0x8c69('0x4'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0x8c69('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0x8c69('0x6'));var controller=require('./smsMessage.controller');router[_0x8c69('0x7')]('/',auth['isAuthenticated'](),controller['index']);router[_0x8c69('0x7')](_0x8c69('0x8'),auth[_0x8c69('0x9')](),controller[_0x8c69('0xa')]);router[_0x8c69('0x7')](_0x8c69('0xb'),auth[_0x8c69('0x9')](),controller[_0x8c69('0xc')]);router[_0x8c69('0xd')]('/',auth[_0x8c69('0x9')](),interaction[_0x8c69('0xe')]('sms',_0x8c69('0xf')),controller[_0x8c69('0x10')]);router[_0x8c69('0xd')]('/:id/status',controller[_0x8c69('0x11')]);router['put'](_0x8c69('0xb'),auth['isAuthenticated'](),controller[_0x8c69('0x12')]);router['put'](_0x8c69('0x13'),auth['isAuthenticated'](),controller[_0x8c69('0x14')]);router[_0x8c69('0x15')]('/:id/reject',auth[_0x8c69('0x9')](),controller['reject']);router[_0x8c69('0x16')](_0x8c69('0xb'),auth[_0x8c69('0x9')](),controller[_0x8c69('0x17')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1317=['TEXT','sequelize','exports','medium','BOOLEAN','ENUM','STRING','DATE'];(function(_0x67fe58,_0x18ed5e){var _0x233799=function(_0x3a1ecc){while(--_0x3a1ecc){_0x67fe58['push'](_0x67fe58['shift']());}};_0x233799(++_0x18ed5e);}(_0x1317,0x1c1));var _0x7131=function(_0x3805a1,_0x4a854f){_0x3805a1=_0x3805a1-0x0;var _0xec40fc=_0x1317[_0x3805a1];return _0xec40fc;};'use strict';var Sequelize=require(_0x7131('0x0'));module[_0x7131('0x1')]={'body':{'type':Sequelize['TEXT'](_0x7131('0x2')),'allowNull':![]},'read':{'type':Sequelize[_0x7131('0x3')],'defaultValue':![]},'direction':{'type':Sequelize[_0x7131('0x4')]('in','out'),'defaultValue':'out','allowNull':![]},'messageId':{'type':Sequelize[_0x7131('0x5')](0xbe)},'phone':{'type':Sequelize[_0x7131('0x5')]},'readAt':{'type':Sequelize[_0x7131('0x6')]},'secret':{'type':Sequelize[_0x7131('0x3')],'defaultValue':![]},'providerName':{'type':Sequelize[_0x7131('0x5')]},'providerResponse':{'type':Sequelize[_0x7131('0x7')]}};
\ No newline at end of file
+var _0x9f56=['BOOLEAN','out','STRING','DATE','sequelize','exports','TEXT','medium'];(function(_0x4b2436,_0x452299){var _0x4f5ab2=function(_0x5c6679){while(--_0x5c6679){_0x4b2436['push'](_0x4b2436['shift']());}};_0x4f5ab2(++_0x452299);}(_0x9f56,0x134));var _0x69f5=function(_0x220f3f,_0x11c540){_0x220f3f=_0x220f3f-0x0;var _0x1f170e=_0x9f56[_0x220f3f];return _0x1f170e;};'use strict';var Sequelize=require(_0x69f5('0x0'));module[_0x69f5('0x1')]={'body':{'type':Sequelize[_0x69f5('0x2')](_0x69f5('0x3')),'allowNull':![]},'read':{'type':Sequelize[_0x69f5('0x4')],'defaultValue':![]},'direction':{'type':Sequelize['ENUM']('in',_0x69f5('0x5')),'defaultValue':_0x69f5('0x5'),'allowNull':![]},'messageId':{'type':Sequelize[_0x69f5('0x6')](0xbe)},'phone':{'type':Sequelize[_0x69f5('0x6')]},'readAt':{'type':Sequelize[_0x69f5('0x7')]},'secret':{'type':Sequelize[_0x69f5('0x4')],'defaultValue':![]},'providerName':{'type':Sequelize[_0x69f5('0x6')]},'providerResponse':{'type':Sequelize['TEXT']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5800=['User','fullname','email','agent','manual','interface','SIP/%s','channel','motionChannel','EventManager','sms-interactions','[SMSMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','ContactId','QueryTypes','event','SmsAccount','inspect','MessageSid','messageId','SmsAccount,\x20%s,\x20%s,\x20%s','twilio','plivo','MessageUUID','indexOf','delivered','Status','plivio','infobip','groupName','DELIVERED','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','path','ejs','fs-extra','squel','jsforce','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','redis','defaults','socket.io-emitter','./smsMessage.socket','jayson/promise','client','http','request','info','SmsMessage,\x20%s,\x20%s','debug','SmsMessage,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','sendStatus','status','end','json','offset','limit','undefined','count','apply','reject','save','update','then','stack','name','send','index','SmsMessage','fieldName','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','merge','where','type','VIRTUAL','options','include','findAll','rows','catch','rawAttributes','includeAll','find','body','params','destroy','describe','../../config/logger','accept','read','format','UserId','user','get','SmsInteraction','SmsInteractionId','read1stAt','interaction','role','null','AcceptMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','Sequelize','contact'];(function(_0x14da60,_0x5e6ae0){var _0x55dd8c=function(_0x5ac403){while(--_0x5ac403){_0x14da60['push'](_0x14da60['shift']());}};_0x55dd8c(++_0x5e6ae0);}(_0x5800,0x1b9));var _0x0580=function(_0x4243ec,_0x291704){_0x4243ec=_0x4243ec-0x0;var _0x3f3132=_0x5800[_0x4243ec];return _0x3f3132;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x0580('0x0'));var zipdir=require(_0x0580('0x1'));var jsonpatch=require(_0x0580('0x2'));var rp=require(_0x0580('0x3'));var moment=require('moment');var BPromise=require(_0x0580('0x4'));var Mustache=require(_0x0580('0x5'));var util=require('util');var path=require(_0x0580('0x6'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x0580('0x7'));var fs=require('fs');var fs_extra=require(_0x0580('0x8'));var _=require('lodash');var squel=require(_0x0580('0x9'));var crypto=require('crypto');var jsforce=require(_0x0580('0xa'));var deskjs=require('desk.js');var toCsv=require(_0x0580('0xb'));var querystring=require(_0x0580('0xc'));var Papa=require(_0x0580('0xd'));var Redis=require(_0x0580('0xe'));var authService=require(_0x0580('0xf'));var qs=require(_0x0580('0x10'));var as=require(_0x0580('0x11'));var hardwareService=require(_0x0580('0x12'));var logger=require('../../config/logger')(_0x0580('0x13'));var utils=require(_0x0580('0x14'));var config=require(_0x0580('0x15'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config[_0x0580('0x16')]=_[_0x0580('0x17')](config[_0x0580('0x16')],{'host':'localhost','port':0x18eb});var socket=require(_0x0580('0x18'))(new Redis(config[_0x0580('0x16')]));require(_0x0580('0x19'))['register'](socket);var jayson=require(_0x0580('0x1a'));var client=jayson[_0x0580('0x1b')][_0x0580('0x1c')]({'port':0x232c});var client9002=jayson[_0x0580('0x1b')][_0x0580('0x1c')]({'port':0x232a});function respondWithRpcPromise(_0x16b257,_0x1e9639,_0x5da996,_0x38955c){return new BPromise(function(_0x30fa3e,_0x309475){var _0x297fb1=_0x38955c||client;return _0x297fb1[_0x0580('0x1d')](_0x16b257,_0x5da996)['then'](function(_0x1fd89d){logger[_0x0580('0x1e')](_0x0580('0x1f'),_0x1e9639,'request\x20sent');logger[_0x0580('0x20')](_0x0580('0x21'),_0x1e9639,_0x0580('0x22'),JSON[_0x0580('0x23')](_0x1fd89d));if(_0x1fd89d[_0x0580('0x24')]){if(_0x1fd89d[_0x0580('0x24')][_0x0580('0x25')]===0x1f4){logger['error'](_0x0580('0x1f'),_0x1e9639,_0x1fd89d[_0x0580('0x24')][_0x0580('0x26')]);return _0x309475(_0x1fd89d[_0x0580('0x24')][_0x0580('0x26')]);}logger[_0x0580('0x24')](_0x0580('0x1f'),_0x1e9639,_0x1fd89d[_0x0580('0x24')][_0x0580('0x26')]);return _0x30fa3e(_0x1fd89d[_0x0580('0x24')][_0x0580('0x26')]);}else{logger[_0x0580('0x1e')](_0x0580('0x1f'),_0x1e9639,'request\x20sent');_0x30fa3e(_0x1fd89d['result'][_0x0580('0x26')]);}})['catch'](function(_0x1d07d8){logger[_0x0580('0x24')](_0x0580('0x1f'),_0x1e9639,_0x1d07d8);_0x309475(_0x1d07d8);});});}function respondWithStatusCode(_0x1833db,_0x41e4dc){_0x41e4dc=_0x41e4dc||0xcc;return function(_0x7b06ef){if(_0x7b06ef){return _0x1833db[_0x0580('0x27')](_0x41e4dc);}return _0x1833db[_0x0580('0x28')](_0x41e4dc)[_0x0580('0x29')]();};}function respondWithResult(_0x26a5d2,_0x22a5c2){_0x22a5c2=_0x22a5c2||0xc8;return function(_0x56cb13){if(_0x56cb13){return _0x26a5d2[_0x0580('0x28')](_0x22a5c2)[_0x0580('0x2a')](_0x56cb13);}};}function respondWithFilteredResult(_0x4c417a,_0x36333e){return function(_0x2720f3){if(_0x2720f3){var _0xae8068=typeof _0x36333e[_0x0580('0x2b')]==='undefined'&&typeof _0x36333e[_0x0580('0x2c')]===_0x0580('0x2d');var _0x9776ff=_0x2720f3[_0x0580('0x2e')];var _0x2522df=_0xae8068?0x0:_0x36333e[_0x0580('0x2b')];var _0x3429ed=_0xae8068?_0x2720f3[_0x0580('0x2e')]:_0x36333e[_0x0580('0x2b')]+_0x36333e[_0x0580('0x2c')];var _0x1873d9;if(_0x3429ed>=_0x9776ff){_0x3429ed=_0x9776ff;_0x1873d9=0xc8;}else{_0x1873d9=0xce;}_0x4c417a[_0x0580('0x28')](_0x1873d9);return _0x4c417a['set']('Content-Range',_0x2522df+'-'+_0x3429ed+'/'+_0x9776ff)[_0x0580('0x2a')](_0x2720f3);}return null;};}function patchUpdates(_0x1eaef0){return function(_0x1edaab){try{jsonpatch[_0x0580('0x2f')](_0x1edaab,_0x1eaef0,!![]);}catch(_0x2f8819){return BPromise[_0x0580('0x30')](_0x2f8819);}return _0x1edaab[_0x0580('0x31')]();};}function saveUpdates(_0x5a54ca,_0x174ee6){return function(_0x4aaebf){if(_0x4aaebf){return _0x4aaebf[_0x0580('0x32')](_0x5a54ca)[_0x0580('0x33')](function(_0x473554){return _0x473554;});}return null;};}function removeEntity(_0x12e084,_0x8f87c1){return function(_0x228de1){if(_0x228de1){return _0x228de1['destroy']()[_0x0580('0x33')](function(){_0x12e084['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x169cdb,_0x3024ae){return function(_0x2008c2){if(!_0x2008c2){_0x169cdb[_0x0580('0x27')](0x194);}return _0x2008c2;};}function handleError(_0x3baa77,_0x16dbf0){_0x16dbf0=_0x16dbf0||0x1f4;return function(_0x515109){logger[_0x0580('0x24')](_0x515109[_0x0580('0x34')]);if(_0x515109[_0x0580('0x35')]){delete _0x515109[_0x0580('0x35')];}_0x3baa77['status'](_0x16dbf0)[_0x0580('0x36')](_0x515109);};}exports[_0x0580('0x37')]=function(_0x4e8856,_0x10ae51){var _0x20081e={},_0x116d6c={},_0x53f407={'count':0x0,'rows':[]};var _0x560971=_['map'](db[_0x0580('0x38')]['rawAttributes'],function(_0xcb5768){return{'name':_0xcb5768[_0x0580('0x39')],'type':_0xcb5768['type']['key']};});_0x116d6c[_0x0580('0x3a')]=_[_0x0580('0x3b')](_0x560971,'name');_0x116d6c[_0x0580('0x3c')]=_[_0x0580('0x3d')](_0x4e8856['query']);_0x116d6c[_0x0580('0x3e')]=_[_0x0580('0x3f')](_0x116d6c[_0x0580('0x3a')],_0x116d6c[_0x0580('0x3c')]);_0x20081e[_0x0580('0x40')]=_[_0x0580('0x3f')](_0x116d6c[_0x0580('0x3a')],qs[_0x0580('0x41')](_0x4e8856[_0x0580('0x3c')]['fields']));_0x20081e['attributes']=_0x20081e['attributes'][_0x0580('0x42')]?_0x20081e['attributes']:_0x116d6c[_0x0580('0x3a')];if(!_0x4e8856[_0x0580('0x3c')][_0x0580('0x43')](_0x0580('0x44'))){_0x20081e['limit']=qs[_0x0580('0x2c')](_0x4e8856[_0x0580('0x3c')][_0x0580('0x2c')]);_0x20081e[_0x0580('0x2b')]=qs[_0x0580('0x2b')](_0x4e8856['query'][_0x0580('0x2b')]);}_0x20081e[_0x0580('0x45')]=qs[_0x0580('0x46')](_0x4e8856[_0x0580('0x3c')][_0x0580('0x46')]);_0x20081e['where']=qs[_0x0580('0x3e')](_[_0x0580('0x47')](_0x4e8856[_0x0580('0x3c')],_0x116d6c[_0x0580('0x3e')]),_0x560971);if(_0x4e8856[_0x0580('0x3c')][_0x0580('0x48')]){_0x20081e['where']=_[_0x0580('0x49')](_0x20081e[_0x0580('0x4a')],{'$or':_[_0x0580('0x3b')](_0x560971,function(_0x34e0ac){if(_0x34e0ac[_0x0580('0x4b')]!==_0x0580('0x4c')){var _0x348048={};_0x348048[_0x34e0ac[_0x0580('0x35')]]={'$like':'%'+_0x4e8856['query']['filter']+'%'};return _0x348048;}})});}_0x20081e=_[_0x0580('0x49')]({},_0x20081e,_0x4e8856[_0x0580('0x4d')]);var _0x5b6f6b={'where':_0x20081e[_0x0580('0x4a')]};return db[_0x0580('0x38')][_0x0580('0x2e')](_0x5b6f6b)['then'](function(_0x22d411){_0x53f407[_0x0580('0x2e')]=_0x22d411;if(_0x4e8856['query']['includeAll']){_0x20081e[_0x0580('0x4e')]=[{'all':!![]}];}return db['SmsMessage'][_0x0580('0x4f')](_0x20081e);})['then'](function(_0xfa4fc2){_0x53f407[_0x0580('0x50')]=_0xfa4fc2;return _0x53f407;})[_0x0580('0x33')](respondWithFilteredResult(_0x10ae51,_0x20081e))[_0x0580('0x51')](handleError(_0x10ae51,null));};exports['show']=function(_0x37fb93,_0x301336){var _0x588d36={'raw':!![],'where':{'id':_0x37fb93['params']['id']}},_0x176ed7={};_0x176ed7[_0x0580('0x3a')]=_['keys'](db[_0x0580('0x38')][_0x0580('0x52')]);_0x176ed7[_0x0580('0x3c')]=_[_0x0580('0x3d')](_0x37fb93['query']);_0x176ed7[_0x0580('0x3e')]=_['intersection'](_0x176ed7[_0x0580('0x3a')],_0x176ed7[_0x0580('0x3c')]);_0x588d36[_0x0580('0x40')]=_[_0x0580('0x3f')](_0x176ed7[_0x0580('0x3a')],qs['fields'](_0x37fb93[_0x0580('0x3c')]['fields']));_0x588d36[_0x0580('0x40')]=_0x588d36['attributes'][_0x0580('0x42')]?_0x588d36[_0x0580('0x40')]:_0x176ed7['model'];if(_0x37fb93['query'][_0x0580('0x53')]){_0x588d36[_0x0580('0x4e')]=[{'all':!![]}];}_0x588d36=_[_0x0580('0x49')]({},_0x588d36,_0x37fb93['options']);return db[_0x0580('0x38')][_0x0580('0x54')](_0x588d36)[_0x0580('0x33')](handleEntityNotFound(_0x301336,null))[_0x0580('0x33')](respondWithResult(_0x301336,null))[_0x0580('0x51')](handleError(_0x301336,null));};exports['create']=function(_0x31add2,_0x19c93a){return db[_0x0580('0x38')]['create'](_0x31add2[_0x0580('0x55')],{})['then'](respondWithResult(_0x19c93a,0xc9))['catch'](handleError(_0x19c93a,null));};exports[_0x0580('0x32')]=function(_0x5dbceb,_0x265b82){if(_0x5dbceb[_0x0580('0x55')]['id']){delete _0x5dbceb['body']['id'];}return db['SmsMessage'][_0x0580('0x54')]({'where':{'id':_0x5dbceb[_0x0580('0x56')]['id']}})[_0x0580('0x33')](handleEntityNotFound(_0x265b82,null))[_0x0580('0x33')](saveUpdates(_0x5dbceb[_0x0580('0x55')],null))[_0x0580('0x33')](respondWithResult(_0x265b82,null))[_0x0580('0x51')](handleError(_0x265b82,null));};exports[_0x0580('0x57')]=function(_0x2d6e33,_0x70fbdd){return db['SmsMessage'][_0x0580('0x54')]({'where':{'id':_0x2d6e33[_0x0580('0x56')]['id']}})['then'](handleEntityNotFound(_0x70fbdd,null))[_0x0580('0x33')](removeEntity(_0x70fbdd,null))[_0x0580('0x51')](handleError(_0x70fbdd,null));};exports[_0x0580('0x58')]=function(_0x282c1a,_0x24b709){return db[_0x0580('0x38')][_0x0580('0x58')]()['then'](respondWithResult(_0x24b709,null))[_0x0580('0x51')](handleError(_0x24b709,null));};var interaction_log=require(_0x0580('0x59'))('sms-interactions');exports[_0x0580('0x5a')]=function(_0x2bdb87,_0x4dfaaf,_0x1c1ee6){var _0x2a373b={'agent':{},'channel':'sms'};if(_0x2bdb87[_0x0580('0x55')]['id']){delete _0x2bdb87[_0x0580('0x55')]['id'];}_0x2bdb87[_0x0580('0x55')][_0x0580('0x5b')]=!![];_0x2bdb87[_0x0580('0x55')]['readAt']=moment()[_0x0580('0x5c')]('YYYY-MM-DD\x20HH:mm:ss');_0x2bdb87[_0x0580('0x55')][_0x0580('0x5d')]=_0x2bdb87['body'][_0x0580('0x5d')]||_0x2bdb87[_0x0580('0x5e')]['id'];_0x2a373b['agent']['id']=_0x2bdb87[_0x0580('0x55')][_0x0580('0x5d')];return db[_0x0580('0x38')][_0x0580('0x54')]({'where':{'id':_0x2bdb87[_0x0580('0x56')]['id'],'UserId':null}})[_0x0580('0x33')](handleEntityNotFound(_0x4dfaaf,null))[_0x0580('0x33')](saveUpdates(_0x2bdb87[_0x0580('0x55')],null))[_0x0580('0x33')](function(_0xf6b11b){if(_0xf6b11b){_0x2a373b['message']=_0xf6b11b[_0x0580('0x5f')]({'plain':!![]});return db[_0x0580('0x60')][_0x0580('0x54')]({'where':{'id':_0xf6b11b[_0x0580('0x61')]}});}return null;})[_0x0580('0x33')](handleEntityNotFound(_0x4dfaaf,null))[_0x0580('0x33')](function(_0x4973e4){if(_0x4973e4){return _0x4973e4[_0x0580('0x32')]({'UserId':_0x2bdb87[_0x0580('0x55')][_0x0580('0x5d')],'read1stAt':_['isNil'](_0x4973e4[_0x0580('0x62')])?moment()['format']('YYYY-MM-DD\x20HH:mm:ss'):undefined});}return null;})[_0x0580('0x33')](function(_0x41e17b){if(_0x41e17b){_0x2a373b[_0x0580('0x63')]=_0x41e17b[_0x0580('0x5f')]({'plain':!![]});interaction_log['info']('[SMSMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x2bdb87[_0x0580('0x5e')]['id'],_0x2bdb87[_0x0580('0x5e')][_0x0580('0x35')],_0x2bdb87['user'][_0x0580('0x64')],_0x2a373b['interaction']['id'],_0x2bdb87['body']?JSON['stringify'](_0x2bdb87[_0x0580('0x55')]):_0x0580('0x65'));return respondWithRpcPromise(_0x0580('0x66'),'acceptMessage',_0x2a373b);}return null;})[_0x0580('0x33')](function(_0x5a14ff){var _0x44ca4d=_0x0580('0x67')+_0x5a14ff[_0x0580('0x26')]['ContactId'];return db[_0x0580('0x68')]['query'](_0x44ca4d,{'type':db[_0x0580('0x69')]['QueryTypes']['SELECT'],'raw':!![]})[_0x0580('0x33')](function(_0x52818c){return _0x52818c;});})[_0x0580('0x33')](function(_0x464ba6){if(_0x464ba6){_0x2a373b[_0x0580('0x26')][_0x0580('0x6a')]=_0x464ba6[0x0];if(!_0x2bdb87[_0x0580('0x55')][_0x0580('0x5d')])return;return db[_0x0580('0x6b')]['find']({'where':{'id':_0x2bdb87[_0x0580('0x55')][_0x0580('0x5d')],'role':'agent'},'attributes':['id','name',_0x0580('0x6c'),_0x0580('0x6d'),'internal'],'raw':!![]});}return null;})[_0x0580('0x33')](function(_0x4e1168){if(!_0x4e1168)return null;_0x2a373b[_0x0580('0x26')][_0x0580('0x6e')]=_0x4e1168;return _0x2a373b;})[_0x0580('0x33')](function(_0x2d4006){if(_0x2d4006){if(_0x2bdb87['body'][_0x0580('0x6f')]){_0x2a373b[_0x0580('0x26')][_0x0580('0x70')]=util['format'](_0x0580('0x71'),_0x2bdb87[_0x0580('0x5e')][_0x0580('0x35')]);_0x2a373b[_0x0580('0x26')]['channel']=_0x2a373b[_0x0580('0x72')];_0x2a373b[_0x0580('0x26')][_0x0580('0x73')]=_0x2a373b[_0x0580('0x72')];_0x2a373b['message']['event']=_0x0580('0x5a');return respondWithRpcPromise(_0x0580('0x74'),_0x0580('0x74'),{'event':'acceptmessage','message':_0x2a373b[_0x0580('0x26')]},client9002)['then'](function(){return _0x2a373b;});}return _0x2a373b;}return null;})[_0x0580('0x33')](respondWithResult(_0x4dfaaf,null))['catch'](handleError(_0x4dfaaf,null));};var interaction_log=require('../../config/logger')(_0x0580('0x75'));exports['reject']=function(_0x5cad96,_0x3ebaba,_0x19ea23){var _0x577b0a={'agent':{},'channel':'sms'};if(_0x5cad96[_0x0580('0x55')]['id']){delete _0x5cad96[_0x0580('0x55')]['id'];}_0x5cad96[_0x0580('0x55')][_0x0580('0x5d')]=_0x5cad96[_0x0580('0x55')]['UserId']||_0x5cad96[_0x0580('0x5e')]['id'];_0x577b0a['agent']['id']=_0x5cad96[_0x0580('0x55')][_0x0580('0x5d')];return db[_0x0580('0x38')][_0x0580('0x54')]({'where':{'id':_0x5cad96[_0x0580('0x56')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0x3ebaba,null))[_0x0580('0x33')](function(_0x336deb){if(_0x336deb){_0x577b0a[_0x0580('0x26')]=_0x336deb[_0x0580('0x5f')]({'plain':!![]});return db['SmsInteraction']['find']({'where':{'id':_0x336deb['SmsInteractionId']}});}return null;})[_0x0580('0x33')](handleEntityNotFound(_0x3ebaba,null))[_0x0580('0x33')](function(_0x18f51a){if(_0x18f51a){_0x577b0a[_0x0580('0x63')]=_0x18f51a[_0x0580('0x5f')]({'plain':!![]});interaction_log[_0x0580('0x1e')](_0x0580('0x76'),_0x5cad96[_0x0580('0x5e')]['id'],_0x5cad96['user']['name'],_0x5cad96['user'][_0x0580('0x64')],_0x577b0a['interaction']['id'],_0x5cad96[_0x0580('0x55')]?JSON[_0x0580('0x23')](_0x5cad96[_0x0580('0x55')]):_0x0580('0x65'));return respondWithRpcPromise('RejectMessage','rejectMessage',_0x577b0a);}return null;})[_0x0580('0x33')](function(_0x3dcbd9){var _0x44b819=_0x0580('0x67')+_0x3dcbd9['message'][_0x0580('0x77')];return db[_0x0580('0x68')][_0x0580('0x3c')](_0x44b819,{'type':db['Sequelize'][_0x0580('0x78')]['SELECT'],'raw':!![]})[_0x0580('0x33')](function(_0x18f582){return _0x18f582;});})[_0x0580('0x33')](function(_0x57e14a){if(_0x57e14a){_0x577b0a['message']['contact']=_0x57e14a[0x0];if(!_0x5cad96['body'][_0x0580('0x5d')])return;return db['User'][_0x0580('0x54')]({'where':{'id':_0x5cad96['body'][_0x0580('0x5d')],'role':_0x0580('0x6e')},'attributes':['id',_0x0580('0x35'),'fullname',_0x0580('0x6d'),'internal'],'raw':!![]});}return null;})[_0x0580('0x33')](function(_0x12caf5){if(!_0x12caf5)return null;_0x577b0a[_0x0580('0x26')][_0x0580('0x6e')]=_0x12caf5;return _0x577b0a;})['then'](function(_0x59eee1){if(_0x59eee1){_0x59eee1[_0x0580('0x26')][_0x0580('0x70')]=util[_0x0580('0x5c')](_0x0580('0x71'),_0x5cad96[_0x0580('0x5e')][_0x0580('0x35')]);_0x59eee1[_0x0580('0x26')]['channel']=_0x577b0a[_0x0580('0x72')];_0x59eee1['message']['motionChannel']=_0x577b0a[_0x0580('0x72')];_0x59eee1[_0x0580('0x26')][_0x0580('0x79')]=_0x0580('0x30');respondWithRpcPromise('EventManager','EventManager',{'event':'rejectmessage','message':_0x59eee1['message']},client9002);return _0x577b0a;}return null;})['then'](respondWithResult(_0x3ebaba,null))[_0x0580('0x51')](handleError(_0x3ebaba,null));};exports[_0x0580('0x28')]=function(_0x10c6f2,_0x81cde3,_0x22bb4d){if(_0x10c6f2[_0x0580('0x55')]['id']){delete _0x10c6f2['body']['id'];}var _0x1b0f68;return db[_0x0580('0x38')][_0x0580('0x54')]({'where':{'id':_0x10c6f2['params']['id']}})[_0x0580('0x33')](handleEntityNotFound(_0x81cde3,null))[_0x0580('0x33')](function(_0x3a0f3a){if(_0x3a0f3a){_0x1b0f68=_0x3a0f3a;return db[_0x0580('0x7a')][_0x0580('0x54')]({'where':{'id':_0x3a0f3a['SmsAccountId']}});}})['then'](handleEntityNotFound(_0x81cde3,null))[_0x0580('0x33')](function(_0x148cd6){if(_0x148cd6){logger[_0x0580('0x20')](_0x0580('0x21'),'status','received\x20delivery\x20report\x20from',_0x148cd6['type'],util[_0x0580('0x7b')](_0x10c6f2[_0x0580('0x55')],{'showHidden':![],'depth':null}));switch(_0x148cd6[_0x0580('0x4b')]){case'twilio':if(_0x10c6f2[_0x0580('0x55')][_0x0580('0x7c')]&&_0x10c6f2['body']['MessageSid']===_0x1b0f68[_0x0580('0x7d')]){return _0x1b0f68[_0x0580('0x32')]({'read':!![]});}else{logger[_0x0580('0x24')](_0x0580('0x7e'),_0x0580('0x28'),_0x0580('0x7f'),util[_0x0580('0x7b')](_0x10c6f2[_0x0580('0x55')],{'showHidden':![],'depth':null}));}break;case _0x0580('0x80'):if(_0x10c6f2['body'][_0x0580('0x81')]&&_0x10c6f2['body'][_0x0580('0x81')]===_0x1b0f68[_0x0580('0x7d')]&&_[_0x0580('0x82')](['sent',_0x0580('0x83')],_0x10c6f2['body'][_0x0580('0x84')])>=0x0){return _0x1b0f68['update']({'read':!![]});}else{logger[_0x0580('0x24')](_0x0580('0x7e'),_0x0580('0x28'),_0x0580('0x85'),util['inspect'](_0x10c6f2[_0x0580('0x55')],{'showHidden':![],'depth':null}));}break;case _0x0580('0x86'):var _0x2ce6b0=_0x10c6f2['body']['results'][0x0];if(_0x2ce6b0[_0x0580('0x28')][_0x0580('0x87')]===_0x0580('0x88')){return _0x1b0f68[_0x0580('0x32')]({'read':!![]});}else{logger[_0x0580('0x24')](_0x0580('0x7e'),'status',_0x0580('0x86'),util[_0x0580('0x7b')](_0x10c6f2['body'],{'showHidden':![],'depth':null}));}break;}return _0x1b0f68;}})['then'](respondWithResult(_0x81cde3,null))[_0x0580('0x51')](handleError(_0x81cde3,null));};
\ No newline at end of file
+var _0x9906=['merge','VIRTUAL','SmsMessage','includeAll','include','rows','show','params','keys','options','find','create','body','describe','accept','readAt','format','YYYY-MM-DD\x20HH:mm:ss','UserId','user','agent','get','SmsInteractionId','isNil','read1stAt','interaction','role','null','AcceptMessage','acceptMessage','ContactId','sequelize','Sequelize','QueryTypes','SELECT','contact','fullname','internal','SIP/%s','channel','motionChannel','event','EventManager','sms-interactions','reject','sms','SmsInteraction','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','email','interface','rejectmessage','SmsAccount','SmsAccountId','inspect','MessageSid','messageId','SmsAccount,\x20%s,\x20%s,\x20%s','twilio','plivo','MessageUUID','sent','delivered','Status','plivio','infobip','results','groupName','DELIVERED','eml-format','rimraf','request-promise','moment','mustache','util','path','to-csv','ejs','fs-extra','squel','crypto','desk.js','querystring','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','./smsMessage.socket','register','client','http','request','then','info','SmsMessage,\x20%s,\x20%s','request\x20sent','debug','stringify','code','error','message','catch','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','update','destroy','name','send','index','rawAttributes','fieldName','type','key','model','map','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','pick','filter','where'];(function(_0x50c334,_0x579e9e){var _0xbbbd37=function(_0x3725a7){while(--_0x3725a7){_0x50c334['push'](_0x50c334['shift']());}};_0xbbbd37(++_0x579e9e);}(_0x9906,0x1f1));var _0x6990=function(_0x5aa3fd,_0x276679){_0x5aa3fd=_0x5aa3fd-0x0;var _0x2e6d0a=_0x9906[_0x5aa3fd];return _0x2e6d0a;};'use strict';var emlformat=require(_0x6990('0x0'));var rimraf=require(_0x6990('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x6990('0x2'));var moment=require(_0x6990('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x6990('0x4'));var util=require(_0x6990('0x5'));var path=require(_0x6990('0x6'));var sox=require('sox');var csv=require(_0x6990('0x7'));var ejs=require(_0x6990('0x8'));var fs=require('fs');var fs_extra=require(_0x6990('0x9'));var _=require('lodash');var squel=require(_0x6990('0xa'));var crypto=require(_0x6990('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x6990('0xc'));var toCsv=require(_0x6990('0x7'));var querystring=require(_0x6990('0xd'));var Papa=require('papaparse');var Redis=require(_0x6990('0xe'));var authService=require('../../components/auth/service');var qs=require(_0x6990('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x6990('0x10'));var logger=require(_0x6990('0x11'))(_0x6990('0x12'));var utils=require(_0x6990('0x13'));var config=require(_0x6990('0x14'));var licenseUtil=require(_0x6990('0x15'));var db=require(_0x6990('0x16'))['db'];config[_0x6990('0x17')]=_[_0x6990('0x18')](config[_0x6990('0x17')],{'host':_0x6990('0x19'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x6990('0x17')]));require(_0x6990('0x1a'))[_0x6990('0x1b')](socket);var jayson=require('jayson/promise');var client=jayson[_0x6990('0x1c')][_0x6990('0x1d')]({'port':0x232c});var client9002=jayson[_0x6990('0x1c')][_0x6990('0x1d')]({'port':0x232a});function respondWithRpcPromise(_0xfd415b,_0x351c80,_0x68b7c0,_0x5bb59b){return new BPromise(function(_0x4d42ab,_0x9a1121){var _0x458094=_0x5bb59b||client;return _0x458094[_0x6990('0x1e')](_0xfd415b,_0x68b7c0)[_0x6990('0x1f')](function(_0x453b7e){logger[_0x6990('0x20')](_0x6990('0x21'),_0x351c80,_0x6990('0x22'));logger[_0x6990('0x23')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x351c80,_0x6990('0x22'),JSON[_0x6990('0x24')](_0x453b7e));if(_0x453b7e['error']){if(_0x453b7e['error'][_0x6990('0x25')]===0x1f4){logger[_0x6990('0x26')]('SmsMessage,\x20%s,\x20%s',_0x351c80,_0x453b7e[_0x6990('0x26')][_0x6990('0x27')]);return _0x9a1121(_0x453b7e[_0x6990('0x26')][_0x6990('0x27')]);}logger['error'](_0x6990('0x21'),_0x351c80,_0x453b7e[_0x6990('0x26')][_0x6990('0x27')]);return _0x4d42ab(_0x453b7e[_0x6990('0x26')][_0x6990('0x27')]);}else{logger['info']('SmsMessage,\x20%s,\x20%s',_0x351c80,_0x6990('0x22'));_0x4d42ab(_0x453b7e['result'][_0x6990('0x27')]);}})[_0x6990('0x28')](function(_0x5f5afa){logger[_0x6990('0x26')](_0x6990('0x21'),_0x351c80,_0x5f5afa);_0x9a1121(_0x5f5afa);});});}function respondWithStatusCode(_0x326701,_0x14ad37){_0x14ad37=_0x14ad37||0xcc;return function(_0x36fd42){if(_0x36fd42){return _0x326701[_0x6990('0x29')](_0x14ad37);}return _0x326701[_0x6990('0x2a')](_0x14ad37)[_0x6990('0x2b')]();};}function respondWithResult(_0x2ccbd5,_0x1eb169){_0x1eb169=_0x1eb169||0xc8;return function(_0x205d32){if(_0x205d32){return _0x2ccbd5[_0x6990('0x2a')](_0x1eb169)[_0x6990('0x2c')](_0x205d32);}};}function respondWithFilteredResult(_0x4736fe,_0x2bf2bf){return function(_0x863fe7){if(_0x863fe7){var _0x42b755=typeof _0x2bf2bf[_0x6990('0x2d')]===_0x6990('0x2e')&&typeof _0x2bf2bf[_0x6990('0x2f')]===_0x6990('0x2e');var _0x26fd87=_0x863fe7['count'];var _0x525008=_0x42b755?0x0:_0x2bf2bf[_0x6990('0x2d')];var _0x751bf2=_0x42b755?_0x863fe7[_0x6990('0x30')]:_0x2bf2bf[_0x6990('0x2d')]+_0x2bf2bf[_0x6990('0x2f')];var _0x877600;if(_0x751bf2>=_0x26fd87){_0x751bf2=_0x26fd87;_0x877600=0xc8;}else{_0x877600=0xce;}_0x4736fe[_0x6990('0x2a')](_0x877600);return _0x4736fe[_0x6990('0x31')](_0x6990('0x32'),_0x525008+'-'+_0x751bf2+'/'+_0x26fd87)[_0x6990('0x2c')](_0x863fe7);}return null;};}function patchUpdates(_0x3d96f7){return function(_0xe8a957){try{jsonpatch['apply'](_0xe8a957,_0x3d96f7,!![]);}catch(_0x54df8f){return BPromise['reject'](_0x54df8f);}return _0xe8a957['save']();};}function saveUpdates(_0x329647,_0x46830b){return function(_0x5e57f7){if(_0x5e57f7){return _0x5e57f7[_0x6990('0x33')](_0x329647)['then'](function(_0x136bf7){return _0x136bf7;});}return null;};}function removeEntity(_0x4de7cb,_0x2c1f0e){return function(_0x10ccde){if(_0x10ccde){return _0x10ccde[_0x6990('0x34')]()[_0x6990('0x1f')](function(){_0x4de7cb[_0x6990('0x2a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x49f36a,_0xd21afe){return function(_0x42ac82){if(!_0x42ac82){_0x49f36a[_0x6990('0x29')](0x194);}return _0x42ac82;};}function handleError(_0x4d9ba4,_0x5e3a72){_0x5e3a72=_0x5e3a72||0x1f4;return function(_0x4eec63){logger[_0x6990('0x26')](_0x4eec63['stack']);if(_0x4eec63[_0x6990('0x35')]){delete _0x4eec63[_0x6990('0x35')];}_0x4d9ba4['status'](_0x5e3a72)[_0x6990('0x36')](_0x4eec63);};}exports[_0x6990('0x37')]=function(_0x396f95,_0x11d1b5){var _0x103a0f={},_0x18d14a={},_0x2dea57={'count':0x0,'rows':[]};var _0x2eb42e=_['map'](db['SmsMessage'][_0x6990('0x38')],function(_0x19a236){return{'name':_0x19a236[_0x6990('0x39')],'type':_0x19a236[_0x6990('0x3a')][_0x6990('0x3b')]};});_0x18d14a[_0x6990('0x3c')]=_[_0x6990('0x3d')](_0x2eb42e,_0x6990('0x35'));_0x18d14a[_0x6990('0x3e')]=_['keys'](_0x396f95[_0x6990('0x3e')]);_0x18d14a[_0x6990('0x3f')]=_[_0x6990('0x40')](_0x18d14a[_0x6990('0x3c')],_0x18d14a['query']);_0x103a0f['attributes']=_[_0x6990('0x40')](_0x18d14a['model'],qs['fields'](_0x396f95[_0x6990('0x3e')][_0x6990('0x41')]));_0x103a0f['attributes']=_0x103a0f[_0x6990('0x42')][_0x6990('0x43')]?_0x103a0f['attributes']:_0x18d14a[_0x6990('0x3c')];if(!_0x396f95[_0x6990('0x3e')][_0x6990('0x44')](_0x6990('0x45'))){_0x103a0f[_0x6990('0x2f')]=qs[_0x6990('0x2f')](_0x396f95[_0x6990('0x3e')][_0x6990('0x2f')]);_0x103a0f[_0x6990('0x2d')]=qs[_0x6990('0x2d')](_0x396f95[_0x6990('0x3e')][_0x6990('0x2d')]);}_0x103a0f[_0x6990('0x46')]=qs['sort'](_0x396f95[_0x6990('0x3e')][_0x6990('0x47')]);_0x103a0f['where']=qs[_0x6990('0x3f')](_[_0x6990('0x48')](_0x396f95['query'],_0x18d14a[_0x6990('0x3f')]),_0x2eb42e);if(_0x396f95[_0x6990('0x3e')][_0x6990('0x49')]){_0x103a0f[_0x6990('0x4a')]=_[_0x6990('0x4b')](_0x103a0f[_0x6990('0x4a')],{'$or':_[_0x6990('0x3d')](_0x2eb42e,function(_0x3c443b){if(_0x3c443b[_0x6990('0x3a')]!==_0x6990('0x4c')){var _0x446952={};_0x446952[_0x3c443b['name']]={'$like':'%'+_0x396f95['query'][_0x6990('0x49')]+'%'};return _0x446952;}})});}_0x103a0f=_[_0x6990('0x4b')]({},_0x103a0f,_0x396f95['options']);var _0x277428={'where':_0x103a0f[_0x6990('0x4a')]};return db[_0x6990('0x4d')][_0x6990('0x30')](_0x277428)['then'](function(_0x5c14fb){_0x2dea57[_0x6990('0x30')]=_0x5c14fb;if(_0x396f95[_0x6990('0x3e')][_0x6990('0x4e')]){_0x103a0f[_0x6990('0x4f')]=[{'all':!![]}];}return db[_0x6990('0x4d')]['findAll'](_0x103a0f);})[_0x6990('0x1f')](function(_0x5367d4){_0x2dea57[_0x6990('0x50')]=_0x5367d4;return _0x2dea57;})['then'](respondWithFilteredResult(_0x11d1b5,_0x103a0f))[_0x6990('0x28')](handleError(_0x11d1b5,null));};exports[_0x6990('0x51')]=function(_0x56c09c,_0x5d18da){var _0x57e5e9={'raw':!![],'where':{'id':_0x56c09c[_0x6990('0x52')]['id']}},_0x5b7499={};_0x5b7499['model']=_[_0x6990('0x53')](db[_0x6990('0x4d')][_0x6990('0x38')]);_0x5b7499[_0x6990('0x3e')]=_[_0x6990('0x53')](_0x56c09c[_0x6990('0x3e')]);_0x5b7499['filters']=_[_0x6990('0x40')](_0x5b7499['model'],_0x5b7499[_0x6990('0x3e')]);_0x57e5e9[_0x6990('0x42')]=_['intersection'](_0x5b7499['model'],qs[_0x6990('0x41')](_0x56c09c[_0x6990('0x3e')][_0x6990('0x41')]));_0x57e5e9['attributes']=_0x57e5e9['attributes'][_0x6990('0x43')]?_0x57e5e9[_0x6990('0x42')]:_0x5b7499['model'];if(_0x56c09c[_0x6990('0x3e')][_0x6990('0x4e')]){_0x57e5e9[_0x6990('0x4f')]=[{'all':!![]}];}_0x57e5e9=_[_0x6990('0x4b')]({},_0x57e5e9,_0x56c09c[_0x6990('0x54')]);return db['SmsMessage'][_0x6990('0x55')](_0x57e5e9)[_0x6990('0x1f')](handleEntityNotFound(_0x5d18da,null))['then'](respondWithResult(_0x5d18da,null))['catch'](handleError(_0x5d18da,null));};exports[_0x6990('0x56')]=function(_0x2bda3e,_0x2a13d6){return db[_0x6990('0x4d')]['create'](_0x2bda3e[_0x6990('0x57')],{})[_0x6990('0x1f')](respondWithResult(_0x2a13d6,0xc9))[_0x6990('0x28')](handleError(_0x2a13d6,null));};exports[_0x6990('0x33')]=function(_0x411137,_0x51a8fb){if(_0x411137[_0x6990('0x57')]['id']){delete _0x411137[_0x6990('0x57')]['id'];}return db['SmsMessage'][_0x6990('0x55')]({'where':{'id':_0x411137[_0x6990('0x52')]['id']}})[_0x6990('0x1f')](handleEntityNotFound(_0x51a8fb,null))['then'](saveUpdates(_0x411137['body'],null))[_0x6990('0x1f')](respondWithResult(_0x51a8fb,null))[_0x6990('0x28')](handleError(_0x51a8fb,null));};exports[_0x6990('0x34')]=function(_0x5bb73d,_0x40b947){return db[_0x6990('0x4d')][_0x6990('0x55')]({'where':{'id':_0x5bb73d['params']['id']}})['then'](handleEntityNotFound(_0x40b947,null))['then'](removeEntity(_0x40b947,null))[_0x6990('0x28')](handleError(_0x40b947,null));};exports[_0x6990('0x58')]=function(_0xaa3f44,_0xaef210){return db[_0x6990('0x4d')]['describe']()['then'](respondWithResult(_0xaef210,null))[_0x6990('0x28')](handleError(_0xaef210,null));};var interaction_log=require(_0x6990('0x11'))('sms-interactions');exports[_0x6990('0x59')]=function(_0x32537e,_0x36ce04,_0x5ac1eb){var _0x4b9560={'agent':{},'channel':'sms'};if(_0x32537e[_0x6990('0x57')]['id']){delete _0x32537e[_0x6990('0x57')]['id'];}_0x32537e['body']['read']=!![];_0x32537e[_0x6990('0x57')][_0x6990('0x5a')]=moment()[_0x6990('0x5b')](_0x6990('0x5c'));_0x32537e[_0x6990('0x57')]['UserId']=_0x32537e[_0x6990('0x57')][_0x6990('0x5d')]||_0x32537e[_0x6990('0x5e')]['id'];_0x4b9560[_0x6990('0x5f')]['id']=_0x32537e['body'][_0x6990('0x5d')];return db[_0x6990('0x4d')]['find']({'where':{'id':_0x32537e['params']['id'],'UserId':null}})[_0x6990('0x1f')](handleEntityNotFound(_0x36ce04,null))[_0x6990('0x1f')](saveUpdates(_0x32537e['body'],null))[_0x6990('0x1f')](function(_0x31fffa){if(_0x31fffa){_0x4b9560[_0x6990('0x27')]=_0x31fffa[_0x6990('0x60')]({'plain':!![]});return db['SmsInteraction']['find']({'where':{'id':_0x31fffa[_0x6990('0x61')]}});}return null;})[_0x6990('0x1f')](handleEntityNotFound(_0x36ce04,null))[_0x6990('0x1f')](function(_0xf68ac9){if(_0xf68ac9){return _0xf68ac9['update']({'UserId':_0x32537e[_0x6990('0x57')][_0x6990('0x5d')],'read1stAt':_[_0x6990('0x62')](_0xf68ac9[_0x6990('0x63')])?moment()[_0x6990('0x5b')]('YYYY-MM-DD\x20HH:mm:ss'):undefined});}return null;})[_0x6990('0x1f')](function(_0x48b8b2){if(_0x48b8b2){_0x4b9560[_0x6990('0x64')]=_0x48b8b2[_0x6990('0x60')]({'plain':!![]});interaction_log[_0x6990('0x20')]('[SMSMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x32537e['user']['id'],_0x32537e[_0x6990('0x5e')][_0x6990('0x35')],_0x32537e[_0x6990('0x5e')][_0x6990('0x65')],_0x4b9560[_0x6990('0x64')]['id'],_0x32537e[_0x6990('0x57')]?JSON[_0x6990('0x24')](_0x32537e[_0x6990('0x57')]):_0x6990('0x66'));return respondWithRpcPromise(_0x6990('0x67'),_0x6990('0x68'),_0x4b9560);}return null;})[_0x6990('0x1f')](function(_0x3f7b7c){var _0x52069e='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x3f7b7c[_0x6990('0x27')][_0x6990('0x69')];return db[_0x6990('0x6a')][_0x6990('0x3e')](_0x52069e,{'type':db[_0x6990('0x6b')][_0x6990('0x6c')][_0x6990('0x6d')],'raw':!![]})[_0x6990('0x1f')](function(_0x419db6){return _0x419db6;});})[_0x6990('0x1f')](function(_0x5f411e){if(_0x5f411e){_0x4b9560['message'][_0x6990('0x6e')]=_0x5f411e[0x0];if(!_0x32537e[_0x6990('0x57')][_0x6990('0x5d')])return;return db['User']['find']({'where':{'id':_0x32537e[_0x6990('0x57')]['UserId'],'role':_0x6990('0x5f')},'attributes':['id',_0x6990('0x35'),_0x6990('0x6f'),'email',_0x6990('0x70')],'raw':!![]});}return null;})[_0x6990('0x1f')](function(_0x5bd529){if(!_0x5bd529)return null;_0x4b9560[_0x6990('0x27')][_0x6990('0x5f')]=_0x5bd529;return _0x4b9560;})['then'](function(_0x554f4c){if(_0x554f4c){if(_0x32537e[_0x6990('0x57')]['manual']){_0x4b9560[_0x6990('0x27')]['interface']=util[_0x6990('0x5b')](_0x6990('0x71'),_0x32537e[_0x6990('0x5e')][_0x6990('0x35')]);_0x4b9560['message'][_0x6990('0x72')]=_0x4b9560[_0x6990('0x72')];_0x4b9560[_0x6990('0x27')][_0x6990('0x73')]=_0x4b9560[_0x6990('0x72')];_0x4b9560[_0x6990('0x27')][_0x6990('0x74')]=_0x6990('0x59');return respondWithRpcPromise(_0x6990('0x75'),_0x6990('0x75'),{'event':'acceptmessage','message':_0x4b9560[_0x6990('0x27')]},client9002)[_0x6990('0x1f')](function(){return _0x4b9560;});}return _0x4b9560;}return null;})[_0x6990('0x1f')](respondWithResult(_0x36ce04,null))[_0x6990('0x28')](handleError(_0x36ce04,null));};var interaction_log=require(_0x6990('0x11'))(_0x6990('0x76'));exports[_0x6990('0x77')]=function(_0x283cab,_0x5ca1c3,_0x34daf2){var _0x5ef65b={'agent':{},'channel':_0x6990('0x78')};if(_0x283cab[_0x6990('0x57')]['id']){delete _0x283cab[_0x6990('0x57')]['id'];}_0x283cab[_0x6990('0x57')][_0x6990('0x5d')]=_0x283cab[_0x6990('0x57')]['UserId']||_0x283cab[_0x6990('0x5e')]['id'];_0x5ef65b[_0x6990('0x5f')]['id']=_0x283cab[_0x6990('0x57')][_0x6990('0x5d')];return db[_0x6990('0x4d')]['find']({'where':{'id':_0x283cab[_0x6990('0x52')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0x5ca1c3,null))[_0x6990('0x1f')](function(_0xa71c2e){if(_0xa71c2e){_0x5ef65b[_0x6990('0x27')]=_0xa71c2e[_0x6990('0x60')]({'plain':!![]});return db[_0x6990('0x79')][_0x6990('0x55')]({'where':{'id':_0xa71c2e[_0x6990('0x61')]}});}return null;})[_0x6990('0x1f')](handleEntityNotFound(_0x5ca1c3,null))['then'](function(_0x78f906){if(_0x78f906){_0x5ef65b[_0x6990('0x64')]=_0x78f906[_0x6990('0x60')]({'plain':!![]});interaction_log[_0x6990('0x20')]('[SMSMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x283cab[_0x6990('0x5e')]['id'],_0x283cab[_0x6990('0x5e')][_0x6990('0x35')],_0x283cab['user'][_0x6990('0x65')],_0x5ef65b[_0x6990('0x64')]['id'],_0x283cab[_0x6990('0x57')]?JSON[_0x6990('0x24')](_0x283cab['body']):_0x6990('0x66'));return respondWithRpcPromise('RejectMessage','rejectMessage',_0x5ef65b);}return null;})['then'](function(_0x5cfc7d){var _0x22d14f=_0x6990('0x7a')+_0x5cfc7d[_0x6990('0x27')][_0x6990('0x69')];return db[_0x6990('0x6a')]['query'](_0x22d14f,{'type':db[_0x6990('0x6b')][_0x6990('0x6c')][_0x6990('0x6d')],'raw':!![]})[_0x6990('0x1f')](function(_0x56b2fb){return _0x56b2fb;});})[_0x6990('0x1f')](function(_0xcbf9e5){if(_0xcbf9e5){_0x5ef65b[_0x6990('0x27')][_0x6990('0x6e')]=_0xcbf9e5[0x0];if(!_0x283cab[_0x6990('0x57')][_0x6990('0x5d')])return;return db['User'][_0x6990('0x55')]({'where':{'id':_0x283cab['body'][_0x6990('0x5d')],'role':_0x6990('0x5f')},'attributes':['id',_0x6990('0x35'),'fullname',_0x6990('0x7b'),_0x6990('0x70')],'raw':!![]});}return null;})['then'](function(_0x25af8d){if(!_0x25af8d)return null;_0x5ef65b[_0x6990('0x27')][_0x6990('0x5f')]=_0x25af8d;return _0x5ef65b;})['then'](function(_0x41eb8b){if(_0x41eb8b){_0x41eb8b[_0x6990('0x27')][_0x6990('0x7c')]=util[_0x6990('0x5b')](_0x6990('0x71'),_0x283cab[_0x6990('0x5e')][_0x6990('0x35')]);_0x41eb8b[_0x6990('0x27')]['channel']=_0x5ef65b[_0x6990('0x72')];_0x41eb8b[_0x6990('0x27')][_0x6990('0x73')]=_0x5ef65b['channel'];_0x41eb8b[_0x6990('0x27')][_0x6990('0x74')]=_0x6990('0x77');respondWithRpcPromise(_0x6990('0x75'),_0x6990('0x75'),{'event':_0x6990('0x7d'),'message':_0x41eb8b['message']},client9002);return _0x5ef65b;}return null;})[_0x6990('0x1f')](respondWithResult(_0x5ca1c3,null))['catch'](handleError(_0x5ca1c3,null));};exports['status']=function(_0x374b9a,_0x5b8a7e,_0x134dd0){if(_0x374b9a['body']['id']){delete _0x374b9a['body']['id'];}var _0x1a4365;return db[_0x6990('0x4d')][_0x6990('0x55')]({'where':{'id':_0x374b9a[_0x6990('0x52')]['id']}})[_0x6990('0x1f')](handleEntityNotFound(_0x5b8a7e,null))[_0x6990('0x1f')](function(_0x15dec8){if(_0x15dec8){_0x1a4365=_0x15dec8;return db[_0x6990('0x7e')][_0x6990('0x55')]({'where':{'id':_0x15dec8[_0x6990('0x7f')]}});}})[_0x6990('0x1f')](handleEntityNotFound(_0x5b8a7e,null))['then'](function(_0x3e3c47){if(_0x3e3c47){logger['debug']('SmsMessage,\x20%s,\x20%s,\x20%s',_0x6990('0x2a'),'received\x20delivery\x20report\x20from',_0x3e3c47[_0x6990('0x3a')],util[_0x6990('0x80')](_0x374b9a['body'],{'showHidden':![],'depth':null}));switch(_0x3e3c47[_0x6990('0x3a')]){case'twilio':if(_0x374b9a[_0x6990('0x57')][_0x6990('0x81')]&&_0x374b9a[_0x6990('0x57')][_0x6990('0x81')]===_0x1a4365[_0x6990('0x82')]){return _0x1a4365['update']({'read':!![]});}else{logger[_0x6990('0x26')](_0x6990('0x83'),_0x6990('0x2a'),_0x6990('0x84'),util[_0x6990('0x80')](_0x374b9a[_0x6990('0x57')],{'showHidden':![],'depth':null}));}break;case _0x6990('0x85'):if(_0x374b9a[_0x6990('0x57')]['MessageUUID']&&_0x374b9a['body'][_0x6990('0x86')]===_0x1a4365[_0x6990('0x82')]&&_['indexOf']([_0x6990('0x87'),_0x6990('0x88')],_0x374b9a[_0x6990('0x57')][_0x6990('0x89')])>=0x0){return _0x1a4365[_0x6990('0x33')]({'read':!![]});}else{logger[_0x6990('0x26')](_0x6990('0x83'),_0x6990('0x2a'),_0x6990('0x8a'),util['inspect'](_0x374b9a[_0x6990('0x57')],{'showHidden':![],'depth':null}));}break;case _0x6990('0x8b'):var _0x420a34=_0x374b9a[_0x6990('0x57')][_0x6990('0x8c')][0x0];if(_0x420a34['status'][_0x6990('0x8d')]===_0x6990('0x8e')){return _0x1a4365[_0x6990('0x33')]({'read':!![]});}else{logger['error'](_0x6990('0x83'),_0x6990('0x2a'),_0x6990('0x8b'),util[_0x6990('0x80')](_0x374b9a[_0x6990('0x57')],{'showHidden':![],'depth':null}));}break;}return _0x1a4365;}})[_0x6990('0x1f')](respondWithResult(_0x5b8a7e,null))[_0x6990('0x28')](handleError(_0x5b8a7e,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7bca=['update','remove','emit','hasOwnProperty','hook','exports','../../mysqldb','setMaxListeners','save'];(function(_0x3e0600,_0x9bb3c9){var _0x5e1117=function(_0x508ca2){while(--_0x508ca2){_0x3e0600['push'](_0x3e0600['shift']());}};_0x5e1117(++_0x9bb3c9);}(_0x7bca,0x1e3));var _0xa7bc=function(_0x133968,_0x5ca58b){_0x133968=_0x133968-0x0;var _0x14a75a=_0x7bca[_0x133968];return _0x14a75a;};'use strict';var EventEmitter=require('events');var SmsMessage=require(_0xa7bc('0x0'))['db']['SmsMessage'];var SmsMessageEvents=new EventEmitter();SmsMessageEvents[_0xa7bc('0x1')](0x0);var events={'afterCreate':_0xa7bc('0x2'),'afterUpdate':_0xa7bc('0x3'),'afterDestroy':_0xa7bc('0x4')};function emitEvent(_0x2ddd99){return function(_0x3ac3b4,_0x38f8ad,_0x385f38){SmsMessageEvents['emit'](_0x2ddd99+':'+_0x3ac3b4['id'],_0x3ac3b4);SmsMessageEvents[_0xa7bc('0x5')](_0x2ddd99,_0x3ac3b4);_0x385f38(null);};}for(var e in events){if(events[_0xa7bc('0x6')](e)){var event=events[e];SmsMessage[_0xa7bc('0x7')](e,emitEvent(event));}}module[_0xa7bc('0x8')]=SmsMessageEvents;
\ No newline at end of file
+var _0x8764=['emit','events','SmsMessage','save','update'];(function(_0x5738d2,_0x35ec6c){var _0xe88ed3=function(_0x4320a2){while(--_0x4320a2){_0x5738d2['push'](_0x5738d2['shift']());}};_0xe88ed3(++_0x35ec6c);}(_0x8764,0x6f));var _0x4876=function(_0x21e12a,_0x2e5b97){_0x21e12a=_0x21e12a-0x0;var _0x5cdf5d=_0x8764[_0x21e12a];return _0x5cdf5d;};'use strict';var EventEmitter=require(_0x4876('0x0'));var SmsMessage=require('../../mysqldb')['db'][_0x4876('0x1')];var SmsMessageEvents=new EventEmitter();SmsMessageEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x4876('0x2'),'afterUpdate':_0x4876('0x3'),'afterDestroy':'remove'};function emitEvent(_0x3857a3){return function(_0x4d72e1,_0x538656,_0x4f4743){SmsMessageEvents[_0x4876('0x4')](_0x3857a3+':'+_0x4d72e1['id'],_0x4d72e1);SmsMessageEvents['emit'](_0x3857a3,_0x4d72e1);_0x4f4743(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];SmsMessage['hook'](e,emitEvent(event));}}module['exports']=SmsMessageEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdd40=['../../config/logger','api','bluebird','path','rimraf','./smsMessage.attributes','exports','define','SmsMessage','sms_messages','messageId','fti_sms_messages','body','models','get','direction','toLowerCase','out','secret','isNil','SmsInteractionId','SmsInteraction','findOne','then','update','createdAt','catch','error','SmsAccount','find','SmsAccountId','type','twilio','accountSid','authToken','phone','messages','create','remote','/api/sms/messages/','/status?token=','token','sid','inspect','SmsMessage,\x20%s,\x20%s,\x20%s','skebby','https://api.skebby.it/API/v1.0/REST/','password','smsMethod','sender','username','GET','sms','POST','user_key','total_sent','internal_order_id','deliveryReport','read','afterCreate','Missing\x20parameters:\x20username,\x20password','connectel','senderString','https://smsapi.connectel.se/api/v2/send/','Missing\x20parameters:\x20authToken','clicksend','xCALLY\x20Motion','%s:%s','https://rest.clicksend.com/v3/sms/send','format','toString','base64','http_code','data','queued_count','head','message_id','clickSend','plivo','authId','https://api.plivo.com/v1/Account/%s/Message/','Basic\x20%s','message_uuid','Missing\x20parameters:\x20authId,\x20authToken','infobip','baseUrl','/auth/1/session','/sms/2/text/advanced','application/json','IBSSO\x20','Missing\x20parameters:\x20base_url','csc','apiKey','login','text','timestamp','createHash','md5','digest','hex','signature=','/external/get/send.php?','clickatell','https://platform.clickatell.com/messages','uuid','UTF-8','apiMessageId','Missing\x20parameters:\x20apiKey','bandwidth','https://messaging.bandwidth.com/api/v2/users/','accountId','/messages','applicationId','intelepeer','Bearer\x20','code','message','https://api.intelepeer.com/_rest/v4/app/sms/mdr','refid','status','finally','utf8mb4_unicode_ci','util'];(function(_0x36e7e0,_0x40b63a){var _0x5d329c=function(_0x65164f){while(--_0x65164f){_0x36e7e0['push'](_0x36e7e0['shift']());}};_0x5d329c(++_0x40b63a);}(_0xdd40,0xf5));var _0x0dd4=function(_0x46cca3,_0xc6a390){_0x46cca3=_0x46cca3-0x0;var _0x396c39=_0xdd40[_0x46cca3];return _0x396c39;};'use strict';var _=require('lodash');var util=require(_0x0dd4('0x0'));var logger=require(_0x0dd4('0x1'))(_0x0dd4('0x2'));var moment=require('moment');var BPromise=require(_0x0dd4('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x0dd4('0x4'));var rimraf=require(_0x0dd4('0x5'));var config=require('../../config/environment');var attributes=require(_0x0dd4('0x6'));module[_0x0dd4('0x7')]=function(_0x4d1bfd,_0x1ea449){return _0x4d1bfd[_0x0dd4('0x8')](_0x0dd4('0x9'),attributes,{'tableName':_0x0dd4('0xa'),'paranoid':![],'indexes':[{'name':_0x0dd4('0xb'),'fields':[_0x0dd4('0xb')]},{'name':_0x0dd4('0xc'),'fields':[_0x0dd4('0xd')],'type':'FULLTEXT'}],'timestamps':!![],'hooks':{'afterCreate':function(_0x3b288a,_0x2d2d20,_0x375c9d){var _0x524969=_0x4d1bfd[_0x0dd4('0xe')];var _0x524dad=_0x3b288a[_0x0dd4('0xf')]({'plain':!![]});if(_0x524dad[_0x0dd4('0x10')][_0x0dd4('0x11')]()==='in'||_0x524dad[_0x0dd4('0x10')][_0x0dd4('0x11')]()===_0x0dd4('0x12')&&!_0x524dad[_0x0dd4('0x13')]&&!_[_0x0dd4('0x14')](_0x524dad['UserId'])&&!_['isNil'](_0x524dad[_0x0dd4('0x15')])){_0x524969[_0x0dd4('0x16')][_0x0dd4('0x17')]({'where':{'id':_0x524dad[_0x0dd4('0x15')]}})[_0x0dd4('0x18')](function(_0x23bf47){if(_0x23bf47){_0x23bf47[_0x0dd4('0x19')]({'lastMsgAt':_0x524dad[_0x0dd4('0x1a')],'lastMsgDirection':_0x524dad[_0x0dd4('0x10')]['toLowerCase']()});}})[_0x0dd4('0x1b')](function(_0x362282){console[_0x0dd4('0x1c')](_0x362282);});}if(_0x524dad[_0x0dd4('0x10')]===_0x0dd4('0x12')&&!_0x524dad[_0x0dd4('0x13')]){var _0x60c40f;_0x524969[_0x0dd4('0x1d')][_0x0dd4('0x1e')]({'where':{'id':_0x524dad[_0x0dd4('0x1f')]},'raw':!![]})['then'](function(_0xc8bce6){_0x60c40f=_0xc8bce6;if(_0x60c40f&&_0x60c40f[_0x0dd4('0x20')]){switch(_0x60c40f[_0x0dd4('0x20')]){case _0x0dd4('0x21'):var _0x528849=require(_0x0dd4('0x21'));if(_0x60c40f[_0x0dd4('0x22')]&&_0x60c40f[_0x0dd4('0x23')]&&_0x60c40f[_0x0dd4('0x24')]){var _0x4121c1=new _0x528849(_0x60c40f[_0x0dd4('0x22')],_0x60c40f[_0x0dd4('0x23')]);_0x4121c1[_0x0dd4('0x25')][_0x0dd4('0x26')]({'body':_0x524dad[_0x0dd4('0xd')],'to':_0x524dad[_0x0dd4('0x24')],'from':_0x60c40f[_0x0dd4('0x24')],'statusCallback':_0x60c40f[_0x0dd4('0x27')]+_0x0dd4('0x28')+_0x524dad['id']+_0x0dd4('0x29')+_0x60c40f[_0x0dd4('0x2a')]})[_0x0dd4('0x18')](function(_0x48513d){if(_0x48513d['sid']){return _0x3b288a[_0x0dd4('0x19')]({'messageId':_0x48513d[_0x0dd4('0x2b')]});}})['catch'](function(_0x2df1d8){logger[_0x0dd4('0x1c')]('SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate',_0x0dd4('0x21'),util[_0x0dd4('0x2c')](_0x2df1d8,{'showHidden':![],'depth':null}));});}else{logger[_0x0dd4('0x1c')](_0x0dd4('0x2d'),'afterCreate',_0x0dd4('0x21'),'Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken');}break;case _0x0dd4('0x2e'):var _0x5a3400=_0x0dd4('0x2f');if(_0x60c40f['username']&&_0x60c40f[_0x0dd4('0x30')]){var _0x3be1e0={'recipient':[_0x524dad[_0x0dd4('0x24')]],'message':_0x524dad[_0x0dd4('0xd')],'message_type':_0x60c40f['smsMethod']};if(_0x60c40f[_0x0dd4('0x31')]&&_0x60c40f[_0x0dd4('0x31')]!=='SI'){_0x3be1e0[_0x0dd4('0x32')]=_0x60c40f[_0x0dd4('0x24')];}var _0x3a54c0={'url':_0x5a3400+'login?username='+_0x60c40f[_0x0dd4('0x33')]+'&password='+_0x60c40f['password'],'method':_0x0dd4('0x34')};rp(_0x3a54c0)[_0x0dd4('0x18')](function(_0x26e014){var _0x144740=_0x26e014['split'](';');var _0x57c951={'user_key':_0x144740[0x0],'session_key':_0x144740[0x1]};_0x3a54c0={'url':_0x5a3400+_0x0dd4('0x35'),'method':_0x0dd4('0x36'),'headers':{'user_key':_0x57c951[_0x0dd4('0x37')],'Session_key':_0x57c951['session_key']},'json':!![],'body':_0x3be1e0};return rp(_0x3a54c0);})[_0x0dd4('0x18')](function(_0x204ddb){if(_0x204ddb[_0x0dd4('0x38')]>=0x1){var _0x47d4f6={'messageId':_0x204ddb[_0x0dd4('0x39')]};if(_0x60c40f[_0x0dd4('0x31')]!=='GP'||!_0x60c40f[_0x0dd4('0x3a')]){_0x47d4f6[_0x0dd4('0x3b')]=!![];}return _0x3b288a[_0x0dd4('0x19')](_0x47d4f6);}else{return logger[_0x0dd4('0x1c')](_0x0dd4('0x2d'),_0x0dd4('0x3c'),'skebby',util[_0x0dd4('0x2c')](_0x204ddb,{'showHidden':![],'depth':null}));}})[_0x0dd4('0x1b')](function(_0x1636cc){return logger[_0x0dd4('0x1c')](_0x0dd4('0x2d'),'afterCreate',_0x0dd4('0x2e'),util[_0x0dd4('0x2c')](_0x1636cc,{'showHidden':![],'depth':null}));});}else{logger[_0x0dd4('0x1c')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x0dd4('0x3c'),_0x0dd4('0x2e'),_0x0dd4('0x3d'));}break;case _0x0dd4('0x3e'):if(_0x60c40f[_0x0dd4('0x23')]){var _0x1a5017={'recipient':_0x524dad['phone'],'message':_0x524dad[_0x0dd4('0xd')],'sender':_0x60c40f[_0x0dd4('0x3f')]||_0x60c40f[_0x0dd4('0x24')],'authorization':_0x60c40f[_0x0dd4('0x23')]};var _0x2d2d20={'method':_0x0dd4('0x36'),'uri':_0x0dd4('0x40'),'body':_0x1a5017,'json':!![]};rp(_0x2d2d20)[_0x0dd4('0x18')](function(_0x302394){var _0x151a2f={'messageId':_0x302394['requestid']};if(!_0x60c40f['deliveryReport']){_0x151a2f[_0x0dd4('0x3b')]=!![];}return _0x3b288a[_0x0dd4('0x19')](_0x151a2f);})[_0x0dd4('0x1b')](function(_0x5a6a64){logger[_0x0dd4('0x1c')](_0x0dd4('0x2d'),'afterCreate',_0x0dd4('0x3e'),util[_0x0dd4('0x2c')](_0x5a6a64,{'showHidden':![],'depth':null}));});}else{logger[_0x0dd4('0x1c')](_0x0dd4('0x2d'),_0x0dd4('0x3c'),_0x0dd4('0x3e'),_0x0dd4('0x41'));}break;case _0x0dd4('0x42'):if(_0x60c40f[_0x0dd4('0x33')]&&_0x60c40f['password']){var _0x1a5017={'messages':[{'source':_0x0dd4('0x43'),'to':_0x524dad[_0x0dd4('0x24')],'body':_0x524dad[_0x0dd4('0xd')],'from':_0x60c40f[_0x0dd4('0x3f')]||_0x60c40f[_0x0dd4('0x24')]}]};var _0x51ba47=util['format'](_0x0dd4('0x44'),_0x60c40f[_0x0dd4('0x33')],_0x60c40f['password']);var _0x2d2d20={'method':_0x0dd4('0x36'),'uri':_0x0dd4('0x45'),'body':_0x1a5017,'headers':{'Authorization':util[_0x0dd4('0x46')]('Basic\x20%s',new Buffer(_0x51ba47)[_0x0dd4('0x47')](_0x0dd4('0x48')))},'json':!![]};rp(_0x2d2d20)[_0x0dd4('0x18')](function(_0x9cbc21){if(_0x9cbc21['http_code']>=0xc8&&_0x9cbc21[_0x0dd4('0x49')]<=0xce){if(_0x9cbc21['data']&&_0x9cbc21[_0x0dd4('0x4a')][_0x0dd4('0x4b')]>0x0){var _0x563487=_[_0x0dd4('0x4c')](_0x9cbc21[_0x0dd4('0x4a')]['messages']);var _0x58fb43={'messageId':_0x563487[_0x0dd4('0x4d')]};if(!_0x60c40f[_0x0dd4('0x3a')]){_0x58fb43['read']=!![];}return _0x3b288a[_0x0dd4('0x19')](_0x58fb43);}else{logger['error'](_0x0dd4('0x2d'),_0x0dd4('0x3c'),'clickSend',util[_0x0dd4('0x2c')](_0x9cbc21,{'showHidden':![],'depth':null}));}}else{logger['error'](_0x0dd4('0x2d'),_0x0dd4('0x3c'),_0x0dd4('0x4e'),util['inspect'](_0x9cbc21,{'showHidden':![],'depth':null}));}})[_0x0dd4('0x1b')](function(_0x4c65a4){logger['error']('SmsMessage,\x20%s,\x20%s,\x20%s',_0x0dd4('0x3c'),_0x0dd4('0x4e'),util[_0x0dd4('0x2c')](_0x4c65a4,{'showHidden':![],'depth':null}));});}else{logger[_0x0dd4('0x1c')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x0dd4('0x3c'),_0x0dd4('0x4e'),_0x0dd4('0x3d'));}break;case _0x0dd4('0x4f'):if(_0x60c40f[_0x0dd4('0x50')]&&_0x60c40f[_0x0dd4('0x23')]){var _0x1a5017={'dst':_0x524dad['phone'],'text':_0x524dad['body'],'src':_0x60c40f[_0x0dd4('0x3f')]||_0x60c40f['phone'],'url':_0x60c40f[_0x0dd4('0x27')]+'/api/sms/messages/'+_0x524dad['id']+'/status?token='+_0x60c40f[_0x0dd4('0x2a')]};var _0x51ba47=util['format'](_0x0dd4('0x44'),_0x60c40f[_0x0dd4('0x50')],_0x60c40f['authToken']);var _0x2d2d20={'method':_0x0dd4('0x36'),'uri':util[_0x0dd4('0x46')](_0x0dd4('0x51'),_0x60c40f[_0x0dd4('0x50')]),'body':_0x1a5017,'headers':{'Authorization':util[_0x0dd4('0x46')](_0x0dd4('0x52'),new Buffer(_0x51ba47)[_0x0dd4('0x47')](_0x0dd4('0x48')))},'json':!![]};rp(_0x2d2d20)['then'](function(_0x2c7720){var _0x27e298={'messageId':_0x2c7720[_0x0dd4('0x53')][0x0]};return _0x3b288a[_0x0dd4('0x19')](_0x27e298);})[_0x0dd4('0x1b')](function(_0x4e117d){logger['error'](_0x0dd4('0x2d'),_0x0dd4('0x3c'),_0x0dd4('0x4f'),util['inspect'](_0x4e117d,{'showHidden':![],'depth':null}));});}else{logger[_0x0dd4('0x1c')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x0dd4('0x3c'),_0x0dd4('0x4f'),_0x0dd4('0x54'));}break;case _0x0dd4('0x55'):if(_0x60c40f[_0x0dd4('0x33')]&&_0x60c40f['password']){if(_0x60c40f[_0x0dd4('0x56')]){var _0x26dd2e={'method':_0x0dd4('0x36'),'uri':_0x60c40f['baseUrl']+_0x0dd4('0x57'),'body':{'username':_0x60c40f[_0x0dd4('0x33')],'password':_0x60c40f[_0x0dd4('0x30')]},'json':!![]};return rp(_0x26dd2e)[_0x0dd4('0x18')](function(_0x398571){var _0x538ea1={'method':'POST','uri':_0x60c40f[_0x0dd4('0x56')]+_0x0dd4('0x58'),'body':{'messages':[{'from':_0x60c40f[_0x0dd4('0x24')],'destinations':[{'to':_0x524dad[_0x0dd4('0x24')]}],'text':_0x524dad[_0x0dd4('0xd')],'notifyUrl':_0x60c40f[_0x0dd4('0x27')]+_0x0dd4('0x28')+_0x524dad['id']+_0x0dd4('0x29')+_0x60c40f[_0x0dd4('0x2a')],'notifyContentType':_0x0dd4('0x59'),'callbackData':_0x60c40f['phone']+';'+_0x524dad[_0x0dd4('0xd')]}]},'headers':{'Authorization':_0x0dd4('0x5a')+_0x398571[_0x0dd4('0x2a')]},'json':!![]};return rp(_0x538ea1)[_0x0dd4('0x18')](function(_0x47881a){if(_0x47881a[_0x0dd4('0x25')]){var _0x5cac9d={'messageId':_0x47881a[_0x0dd4('0x25')][0x0][_0x0dd4('0xb')]};if(!_0x60c40f['deliveryReport']){_0x5cac9d['read']=!![];}return _0x3b288a[_0x0dd4('0x19')](_0x5cac9d);}else{return logger['error'](_0x0dd4('0x2d'),_0x0dd4('0x3c'),_0x0dd4('0x55'),util['inspect'](_0x47881a,{'showHidden':![],'depth':null}));}});})[_0x0dd4('0x1b')](function(_0x5a44b8){return logger[_0x0dd4('0x1c')](_0x0dd4('0x2d'),_0x0dd4('0x3c'),_0x0dd4('0x55'),util['inspect'](_0x5a44b8,{'showHidden':![],'depth':null}));});}else{logger[_0x0dd4('0x1c')](_0x0dd4('0x2d'),_0x0dd4('0x3c'),_0x0dd4('0x55'),_0x0dd4('0x5b'));}}else{logger[_0x0dd4('0x1c')](_0x0dd4('0x2d'),_0x0dd4('0x3c'),_0x0dd4('0x55'),'Missing\x20parameters:\x20username,\x20password');}break;case _0x0dd4('0x5c'):var _0x468b7a=require('crypto');if(_0x60c40f[_0x0dd4('0x5d')]){var _0x36fb13={};_0x36fb13[_0x0dd4('0x5e')]=_0x60c40f['username'];_0x36fb13[_0x0dd4('0x24')]=_0x524dad[_0x0dd4('0x24')];_0x36fb13[_0x0dd4('0x32')]=_0x60c40f['phone'];_0x36fb13[_0x0dd4('0x5f')]=_0x524dad[_0x0dd4('0xd')];_0x36fb13[_0x0dd4('0x60')]=+new Date();var _0x2d9b49='';var _0xa9f58c='';var _0x5d006b=Object['keys'](_0x36fb13);_0x5d006b['sort']();for(var _0x35bb6a=0x0;_0x35bb6a<_0x5d006b['length'];_0x35bb6a++){if(_0x2d9b49!=''){_0x2d9b49+='&';}_0x2d9b49+=_0x5d006b[_0x35bb6a]+'='+encodeURIComponent(_0x36fb13[_0x5d006b[_0x35bb6a]]);_0xa9f58c+=_0x36fb13[_0x5d006b[_0x35bb6a]];}_0xa9f58c+=_0x60c40f[_0x0dd4('0x5d')];_0xa9f58c=_0x468b7a[_0x0dd4('0x61')](_0x0dd4('0x62'))['update'](_0xa9f58c)[_0x0dd4('0x63')](_0x0dd4('0x64'));if(_0x2d9b49!==''){_0x2d9b49+='&';}_0x2d9b49+=_0x0dd4('0x65')+_0xa9f58c;var _0x3a54c0={'method':'GET','uri':_0x60c40f[_0x0dd4('0x56')]+_0x0dd4('0x66')+_0x2d9b49,'json':!![]};return rp(_0x3a54c0)[_0x0dd4('0x18')](function(_0x4b49bc){var _0xfb2813=Object['keys'](_0x4b49bc);if(_0x4b49bc[_0xfb2813[0x0]]['error']&&parseInt(_0x4b49bc[_0xfb2813[0x0]][_0x0dd4('0x1c')])===0x0){var _0x32e3d1={'messageId':_0x4b49bc[_0xfb2813[0x0]]['id_sms']};if(!_0x60c40f[_0x0dd4('0x3a')]){_0x32e3d1[_0x0dd4('0x3b')]=!![];}return _0x3b288a[_0x0dd4('0x19')](_0x32e3d1);}else{return logger[_0x0dd4('0x1c')](_0x0dd4('0x2d'),'afterCreate',_0x0dd4('0x5c'),util[_0x0dd4('0x2c')](_0x4b49bc[_0x0dd4('0x1c')],{'showHidden':![],'depth':null}));}})['catch'](function(_0x111d7d){return logger['error'](_0x0dd4('0x2d'),_0x0dd4('0x3c'),_0x0dd4('0x5c'),util[_0x0dd4('0x2c')](_0x111d7d,{'showHidden':![],'depth':null}));});}else{logger[_0x0dd4('0x1c')](_0x0dd4('0x2d'),_0x0dd4('0x3c'),_0x0dd4('0x5c'),'Missing\x20parameters:\x20apiKey');}break;case _0x0dd4('0x67'):if(_0x60c40f[_0x0dd4('0x5d')]){var _0x27ba23={'method':_0x0dd4('0x36'),'uri':_0x0dd4('0x68'),'headers':{'Authorization':_0x60c40f['apiKey']},'body':{'content':_0x524dad[_0x0dd4('0xd')],'to':[_0x524dad['phone']],'from':_0x60c40f['phone'],'binary':![],'clientMessageId':_0x0dd4('0x69'),'charset':_0x0dd4('0x6a')},'json':!![]};rp(_0x27ba23)[_0x0dd4('0x18')](function(_0x26c087){if(!_0x26c087[_0x0dd4('0x1c')]){var _0x3aefd1={'messageId':_0x26c087[_0x0dd4('0x25')][0x0][_0x0dd4('0x6b')]};if(!_0x60c40f[_0x0dd4('0x3a')]){_0x3aefd1[_0x0dd4('0x3b')]=!![];}return _0x3b288a[_0x0dd4('0x19')](_0x3aefd1);}else{return logger[_0x0dd4('0x1c')](_0x0dd4('0x2d'),_0x0dd4('0x3c'),'clickatell',util[_0x0dd4('0x2c')](_0x26c087[_0x0dd4('0x1c')],{'showHidden':![],'depth':null}));}})['catch'](function(_0x432822){return logger[_0x0dd4('0x1c')](_0x0dd4('0x2d'),_0x0dd4('0x3c'),_0x0dd4('0x67'),util['inspect'](_0x432822,{'showHidden':![],'depth':null}));});}else{logger[_0x0dd4('0x1c')](_0x0dd4('0x2d'),'afterCreate',_0x0dd4('0x67'),_0x0dd4('0x6c'));}break;case _0x0dd4('0x6d'):if(_0x60c40f[_0x0dd4('0x33')]&&_0x60c40f[_0x0dd4('0x30')]){var _0x51ba47=util[_0x0dd4('0x46')]('%s:%s',_0x60c40f[_0x0dd4('0x33')],_0x60c40f[_0x0dd4('0x30')]);var _0x2d2d20={'method':_0x0dd4('0x36'),'uri':_0x0dd4('0x6e')+_0x60c40f[_0x0dd4('0x6f')]+_0x0dd4('0x70'),'body':{'to':[_0x524dad['phone']],'text':_0x524dad[_0x0dd4('0xd')],'from':_0x60c40f['phone'],'applicationId':_0x60c40f[_0x0dd4('0x71')]},'headers':{'Authorization':util[_0x0dd4('0x46')](_0x0dd4('0x52'),new Buffer(_0x51ba47)['toString']('base64'))},'json':!![]};rp(_0x2d2d20)[_0x0dd4('0x18')](function(_0x5b849d){if(_0x5b849d['id']){var _0x34d0c9={'messageId':_0x5b849d['id']};return _0x3b288a['update'](_0x34d0c9);}else{logger[_0x0dd4('0x1c')](_0x0dd4('0x2d'),'afterCreate',_0x0dd4('0x6d'),util[_0x0dd4('0x2c')](_0x5b849d,{'showHidden':![],'depth':null}));}})[_0x0dd4('0x1b')](function(_0x186389){logger[_0x0dd4('0x1c')](_0x0dd4('0x2d'),_0x0dd4('0x3c'),_0x0dd4('0x6d'),util[_0x0dd4('0x2c')](_0x186389,{'showHidden':![],'depth':null}));});}else{logger['error'](_0x0dd4('0x2d'),_0x0dd4('0x3c'),_0x0dd4('0x6d'),_0x0dd4('0x3d'));}break;case _0x0dd4('0x72'):if(_0x60c40f['apiKey']){var _0x4a246b={};var _0x3a54c0={'method':_0x0dd4('0x36'),'uri':'https://api.intelepeer.com/_rest/v4/app/sms/send','headers':{'Authorization':_0x0dd4('0x73')+_0x60c40f[_0x0dd4('0x5d')],'Content-Type':_0x0dd4('0x59')},'body':{'from':_0x60c40f['phone'],'to':_0x524dad[_0x0dd4('0x24')],'text':_0x524dad['body']},'json':!![]};return rp(_0x3a54c0)['then'](function(_0x44cd79){if(_0x44cd79[_0x0dd4('0x74')]==0xca){_0x4a246b[_0x0dd4('0x75')]=_0x44cd79;var _0x1ddab9={'method':_0x0dd4('0x36'),'uri':_0x0dd4('0x76'),'headers':{'Authorization':_0x0dd4('0x73')+_0x60c40f['apiKey'],'Content-Type':_0x0dd4('0x59')},'body':{'refid':_0x4a246b['message'][_0x0dd4('0x77')]},'json':!![]};return rp(_0x1ddab9)[_0x0dd4('0x18')](function(_0x175871){_0x4a246b[_0x0dd4('0x78')]=_0x175871;var _0x5d0246={'messageId':_0x4a246b[_0x0dd4('0x75')][_0x0dd4('0x77')],'read':!![]};return _0x3b288a['update'](_0x5d0246);});}else{return logger['error'](_0x0dd4('0x2d'),_0x0dd4('0x3c'),_0x0dd4('0x72'),util[_0x0dd4('0x2c')](_0x44cd79,{'showHidden':![],'depth':null}));}})[_0x0dd4('0x1b')](function(_0x111032){return logger[_0x0dd4('0x1c')](_0x0dd4('0x2d'),_0x0dd4('0x3c'),_0x0dd4('0x72'),util[_0x0dd4('0x2c')](_0x111032,{'showHidden':![],'depth':null}));});}else{return logger[_0x0dd4('0x1c')](_0x0dd4('0x2d'),'afterCreate',_0x0dd4('0x72'),'Token\x20not\x20received');}break;}}})[_0x0dd4('0x79')](function(){_0x375c9d();});}else{_0x375c9d();}}},'charset':'utf8mb4','collate':_0x0dd4('0x7a')});};
\ No newline at end of file
+var _0xa078=['https://api.intelepeer.com/_rest/v4/app/sms/mdr','Bearer\x20','status','refid','Token\x20not\x20received','finally','lodash','moment','request-promise','path','../../config/environment','./smsMessage.attributes','exports','define','messageId','fti_sms_messages','body','FULLTEXT','models','get','direction','toLowerCase','out','secret','isNil','UserId','SmsInteractionId','SmsInteraction','findOne','then','update','createdAt','catch','error','SmsAccount','SmsAccountId','type','twilio','accountSid','authToken','phone','remote','/api/sms/messages/','/status?token=','token','sid','afterCreate','inspect','SmsMessage,\x20%s,\x20%s,\x20%s','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','skebby','password','smsMethod','sender','login?username=','username','GET','split','sms','POST','user_key','total_sent','read','connectel','https://smsapi.connectel.se/api/v2/send/','requestid','deliveryReport','clicksend','xCALLY\x20Motion','format','%s:%s','base64','http_code','data','queued_count','head','messages','message_id','clickSend','Missing\x20parameters:\x20username,\x20password','plivo','authId','senderString','https://api.plivo.com/v1/Account/%s/Message/','toString','message_uuid','baseUrl','/auth/1/session','/sms/2/text/advanced','application/json','IBSSO\x20','infobip','Missing\x20parameters:\x20base_url','csc','crypto','apiKey','login','text','timestamp','sort','length','createHash','digest','hex','signature=','/external/get/send.php?','keys','id_sms','Missing\x20parameters:\x20apiKey','clickatell','https://platform.clickatell.com/messages','uuid','UTF-8','apiMessageId','/messages','Basic\x20%s','bandwidth','intelepeer','https://api.intelepeer.com/_rest/v4/app/sms/send','code','message'];(function(_0x3931fd,_0x57e6f6){var _0x40b6c5=function(_0x362e94){while(--_0x362e94){_0x3931fd['push'](_0x3931fd['shift']());}};_0x40b6c5(++_0x57e6f6);}(_0xa078,0xf8));var _0x8a07=function(_0x56520d,_0x15f6d4){_0x56520d=_0x56520d-0x0;var _0x8da57c=_0xa078[_0x56520d];return _0x8da57c;};'use strict';var _=require(_0x8a07('0x0'));var util=require('util');var logger=require('../../config/logger')('api');var moment=require(_0x8a07('0x1'));var BPromise=require('bluebird');var rp=require(_0x8a07('0x2'));var fs=require('fs');var path=require(_0x8a07('0x3'));var rimraf=require('rimraf');var config=require(_0x8a07('0x4'));var attributes=require(_0x8a07('0x5'));module[_0x8a07('0x6')]=function(_0x49992a,_0x149235){return _0x49992a[_0x8a07('0x7')]('SmsMessage',attributes,{'tableName':'sms_messages','paranoid':![],'indexes':[{'name':_0x8a07('0x8'),'fields':[_0x8a07('0x8')]},{'name':_0x8a07('0x9'),'fields':[_0x8a07('0xa')],'type':_0x8a07('0xb')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x3652ed,_0x4a414e,_0x9edf98){var _0x1a6363=_0x49992a[_0x8a07('0xc')];var _0xef8edc=_0x3652ed[_0x8a07('0xd')]({'plain':!![]});if(_0xef8edc[_0x8a07('0xe')][_0x8a07('0xf')]()==='in'||_0xef8edc[_0x8a07('0xe')][_0x8a07('0xf')]()===_0x8a07('0x10')&&!_0xef8edc[_0x8a07('0x11')]&&!_[_0x8a07('0x12')](_0xef8edc[_0x8a07('0x13')])&&!_['isNil'](_0xef8edc[_0x8a07('0x14')])){_0x1a6363[_0x8a07('0x15')][_0x8a07('0x16')]({'where':{'id':_0xef8edc[_0x8a07('0x14')]}})[_0x8a07('0x17')](function(_0x2bd457){if(_0x2bd457){_0x2bd457[_0x8a07('0x18')]({'lastMsgAt':_0xef8edc[_0x8a07('0x19')],'lastMsgDirection':_0xef8edc[_0x8a07('0xe')][_0x8a07('0xf')]()});}})[_0x8a07('0x1a')](function(_0x11a28c){console[_0x8a07('0x1b')](_0x11a28c);});}if(_0xef8edc[_0x8a07('0xe')]===_0x8a07('0x10')&&!_0xef8edc[_0x8a07('0x11')]){var _0xc20c13;_0x1a6363[_0x8a07('0x1c')]['find']({'where':{'id':_0xef8edc[_0x8a07('0x1d')]},'raw':!![]})['then'](function(_0x5a8de5){_0xc20c13=_0x5a8de5;if(_0xc20c13&&_0xc20c13[_0x8a07('0x1e')]){switch(_0xc20c13[_0x8a07('0x1e')]){case _0x8a07('0x1f'):var _0x4b07f1=require(_0x8a07('0x1f'));if(_0xc20c13[_0x8a07('0x20')]&&_0xc20c13[_0x8a07('0x21')]&&_0xc20c13[_0x8a07('0x22')]){var _0x42665f=new _0x4b07f1(_0xc20c13['accountSid'],_0xc20c13[_0x8a07('0x21')]);_0x42665f['messages']['create']({'body':_0xef8edc[_0x8a07('0xa')],'to':_0xef8edc[_0x8a07('0x22')],'from':_0xc20c13[_0x8a07('0x22')],'statusCallback':_0xc20c13[_0x8a07('0x23')]+_0x8a07('0x24')+_0xef8edc['id']+_0x8a07('0x25')+_0xc20c13[_0x8a07('0x26')]})[_0x8a07('0x17')](function(_0x41616f){if(_0x41616f[_0x8a07('0x27')]){return _0x3652ed[_0x8a07('0x18')]({'messageId':_0x41616f[_0x8a07('0x27')]});}})['catch'](function(_0x43a642){logger[_0x8a07('0x1b')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x8a07('0x28'),_0x8a07('0x1f'),util[_0x8a07('0x29')](_0x43a642,{'showHidden':![],'depth':null}));});}else{logger[_0x8a07('0x1b')](_0x8a07('0x2a'),'afterCreate',_0x8a07('0x1f'),_0x8a07('0x2b'));}break;case _0x8a07('0x2c'):var _0x18d3d5='https://api.skebby.it/API/v1.0/REST/';if(_0xc20c13['username']&&_0xc20c13[_0x8a07('0x2d')]){var _0x12edb2={'recipient':[_0xef8edc[_0x8a07('0x22')]],'message':_0xef8edc[_0x8a07('0xa')],'message_type':_0xc20c13[_0x8a07('0x2e')]};if(_0xc20c13['smsMethod']&&_0xc20c13[_0x8a07('0x2e')]!=='SI'){_0x12edb2[_0x8a07('0x2f')]=_0xc20c13[_0x8a07('0x22')];}var _0xc82fd4={'url':_0x18d3d5+_0x8a07('0x30')+_0xc20c13[_0x8a07('0x31')]+'&password='+_0xc20c13['password'],'method':_0x8a07('0x32')};rp(_0xc82fd4)[_0x8a07('0x17')](function(_0x5855c3){var _0x590ac1=_0x5855c3[_0x8a07('0x33')](';');var _0x349e9e={'user_key':_0x590ac1[0x0],'session_key':_0x590ac1[0x1]};_0xc82fd4={'url':_0x18d3d5+_0x8a07('0x34'),'method':_0x8a07('0x35'),'headers':{'user_key':_0x349e9e[_0x8a07('0x36')],'Session_key':_0x349e9e['session_key']},'json':!![],'body':_0x12edb2};return rp(_0xc82fd4);})[_0x8a07('0x17')](function(_0x43ae06){if(_0x43ae06[_0x8a07('0x37')]>=0x1){var _0xffc315={'messageId':_0x43ae06['internal_order_id']};if(_0xc20c13[_0x8a07('0x2e')]!=='GP'||!_0xc20c13['deliveryReport']){_0xffc315[_0x8a07('0x38')]=!![];}return _0x3652ed[_0x8a07('0x18')](_0xffc315);}else{return logger[_0x8a07('0x1b')](_0x8a07('0x2a'),_0x8a07('0x28'),'skebby',util[_0x8a07('0x29')](_0x43ae06,{'showHidden':![],'depth':null}));}})['catch'](function(_0x4e62e7){return logger[_0x8a07('0x1b')](_0x8a07('0x2a'),_0x8a07('0x28'),_0x8a07('0x2c'),util[_0x8a07('0x29')](_0x4e62e7,{'showHidden':![],'depth':null}));});}else{logger['error']('SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate',_0x8a07('0x2c'),'Missing\x20parameters:\x20username,\x20password');}break;case _0x8a07('0x39'):if(_0xc20c13[_0x8a07('0x21')]){var _0x28ea45={'recipient':_0xef8edc[_0x8a07('0x22')],'message':_0xef8edc[_0x8a07('0xa')],'sender':_0xc20c13['senderString']||_0xc20c13[_0x8a07('0x22')],'authorization':_0xc20c13[_0x8a07('0x21')]};var _0x4a414e={'method':_0x8a07('0x35'),'uri':_0x8a07('0x3a'),'body':_0x28ea45,'json':!![]};rp(_0x4a414e)[_0x8a07('0x17')](function(_0x135c7c){var _0xd2dcc6={'messageId':_0x135c7c[_0x8a07('0x3b')]};if(!_0xc20c13[_0x8a07('0x3c')]){_0xd2dcc6[_0x8a07('0x38')]=!![];}return _0x3652ed['update'](_0xd2dcc6);})['catch'](function(_0x42295b){logger[_0x8a07('0x1b')](_0x8a07('0x2a'),_0x8a07('0x28'),_0x8a07('0x39'),util[_0x8a07('0x29')](_0x42295b,{'showHidden':![],'depth':null}));});}else{logger[_0x8a07('0x1b')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x8a07('0x28'),'connectel','Missing\x20parameters:\x20authToken');}break;case _0x8a07('0x3d'):if(_0xc20c13[_0x8a07('0x31')]&&_0xc20c13['password']){var _0x28ea45={'messages':[{'source':_0x8a07('0x3e'),'to':_0xef8edc[_0x8a07('0x22')],'body':_0xef8edc[_0x8a07('0xa')],'from':_0xc20c13['senderString']||_0xc20c13[_0x8a07('0x22')]}]};var _0x1eae51=util[_0x8a07('0x3f')](_0x8a07('0x40'),_0xc20c13[_0x8a07('0x31')],_0xc20c13[_0x8a07('0x2d')]);var _0x4a414e={'method':_0x8a07('0x35'),'uri':'https://rest.clicksend.com/v3/sms/send','body':_0x28ea45,'headers':{'Authorization':util[_0x8a07('0x3f')]('Basic\x20%s',new Buffer(_0x1eae51)['toString'](_0x8a07('0x41')))},'json':!![]};rp(_0x4a414e)[_0x8a07('0x17')](function(_0x29f146){if(_0x29f146[_0x8a07('0x42')]>=0xc8&&_0x29f146[_0x8a07('0x42')]<=0xce){if(_0x29f146[_0x8a07('0x43')]&&_0x29f146[_0x8a07('0x43')][_0x8a07('0x44')]>0x0){var _0x5abd45=_[_0x8a07('0x45')](_0x29f146[_0x8a07('0x43')][_0x8a07('0x46')]);var _0x38462e={'messageId':_0x5abd45[_0x8a07('0x47')]};if(!_0xc20c13[_0x8a07('0x3c')]){_0x38462e[_0x8a07('0x38')]=!![];}return _0x3652ed['update'](_0x38462e);}else{logger['error']('SmsMessage,\x20%s,\x20%s,\x20%s',_0x8a07('0x28'),'clickSend',util[_0x8a07('0x29')](_0x29f146,{'showHidden':![],'depth':null}));}}else{logger['error']('SmsMessage,\x20%s,\x20%s,\x20%s',_0x8a07('0x28'),_0x8a07('0x48'),util[_0x8a07('0x29')](_0x29f146,{'showHidden':![],'depth':null}));}})[_0x8a07('0x1a')](function(_0x44d454){logger[_0x8a07('0x1b')](_0x8a07('0x2a'),_0x8a07('0x28'),'clickSend',util[_0x8a07('0x29')](_0x44d454,{'showHidden':![],'depth':null}));});}else{logger[_0x8a07('0x1b')]('SmsMessage,\x20%s,\x20%s,\x20%s','afterCreate',_0x8a07('0x48'),_0x8a07('0x49'));}break;case _0x8a07('0x4a'):if(_0xc20c13[_0x8a07('0x4b')]&&_0xc20c13[_0x8a07('0x21')]){var _0x28ea45={'dst':_0xef8edc['phone'],'text':_0xef8edc[_0x8a07('0xa')],'src':_0xc20c13[_0x8a07('0x4c')]||_0xc20c13[_0x8a07('0x22')],'url':_0xc20c13[_0x8a07('0x23')]+_0x8a07('0x24')+_0xef8edc['id']+_0x8a07('0x25')+_0xc20c13['token']};var _0x1eae51=util[_0x8a07('0x3f')](_0x8a07('0x40'),_0xc20c13['authId'],_0xc20c13[_0x8a07('0x21')]);var _0x4a414e={'method':_0x8a07('0x35'),'uri':util[_0x8a07('0x3f')](_0x8a07('0x4d'),_0xc20c13[_0x8a07('0x4b')]),'body':_0x28ea45,'headers':{'Authorization':util[_0x8a07('0x3f')]('Basic\x20%s',new Buffer(_0x1eae51)[_0x8a07('0x4e')]('base64'))},'json':!![]};rp(_0x4a414e)[_0x8a07('0x17')](function(_0x4e0b19){var _0xb600d5={'messageId':_0x4e0b19[_0x8a07('0x4f')][0x0]};return _0x3652ed['update'](_0xb600d5);})[_0x8a07('0x1a')](function(_0x1541ae){logger[_0x8a07('0x1b')](_0x8a07('0x2a'),_0x8a07('0x28'),_0x8a07('0x4a'),util[_0x8a07('0x29')](_0x1541ae,{'showHidden':![],'depth':null}));});}else{logger[_0x8a07('0x1b')](_0x8a07('0x2a'),'afterCreate',_0x8a07('0x4a'),'Missing\x20parameters:\x20authId,\x20authToken');}break;case'infobip':if(_0xc20c13[_0x8a07('0x31')]&&_0xc20c13[_0x8a07('0x2d')]){if(_0xc20c13[_0x8a07('0x50')]){var _0x2ab3b9={'method':_0x8a07('0x35'),'uri':_0xc20c13[_0x8a07('0x50')]+_0x8a07('0x51'),'body':{'username':_0xc20c13[_0x8a07('0x31')],'password':_0xc20c13[_0x8a07('0x2d')]},'json':!![]};return rp(_0x2ab3b9)[_0x8a07('0x17')](function(_0x3a45ce){var _0x460bc9={'method':_0x8a07('0x35'),'uri':_0xc20c13[_0x8a07('0x50')]+_0x8a07('0x52'),'body':{'messages':[{'from':_0xc20c13[_0x8a07('0x22')],'destinations':[{'to':_0xef8edc['phone']}],'text':_0xef8edc['body'],'notifyUrl':_0xc20c13[_0x8a07('0x23')]+'/api/sms/messages/'+_0xef8edc['id']+_0x8a07('0x25')+_0xc20c13['token'],'notifyContentType':_0x8a07('0x53'),'callbackData':_0xc20c13[_0x8a07('0x22')]+';'+_0xef8edc['body']}]},'headers':{'Authorization':_0x8a07('0x54')+_0x3a45ce[_0x8a07('0x26')]},'json':!![]};return rp(_0x460bc9)[_0x8a07('0x17')](function(_0x4b48b4){if(_0x4b48b4['messages']){var _0x66e7a2={'messageId':_0x4b48b4[_0x8a07('0x46')][0x0]['messageId']};if(!_0xc20c13[_0x8a07('0x3c')]){_0x66e7a2[_0x8a07('0x38')]=!![];}return _0x3652ed[_0x8a07('0x18')](_0x66e7a2);}else{return logger['error'](_0x8a07('0x2a'),_0x8a07('0x28'),'infobip',util[_0x8a07('0x29')](_0x4b48b4,{'showHidden':![],'depth':null}));}});})[_0x8a07('0x1a')](function(_0x58f9e0){return logger[_0x8a07('0x1b')](_0x8a07('0x2a'),_0x8a07('0x28'),_0x8a07('0x55'),util['inspect'](_0x58f9e0,{'showHidden':![],'depth':null}));});}else{logger[_0x8a07('0x1b')](_0x8a07('0x2a'),_0x8a07('0x28'),_0x8a07('0x55'),_0x8a07('0x56'));}}else{logger[_0x8a07('0x1b')](_0x8a07('0x2a'),'afterCreate',_0x8a07('0x55'),_0x8a07('0x49'));}break;case _0x8a07('0x57'):var _0x58b4dc=require(_0x8a07('0x58'));if(_0xc20c13[_0x8a07('0x59')]){var _0x798473={};_0x798473[_0x8a07('0x5a')]=_0xc20c13[_0x8a07('0x31')];_0x798473[_0x8a07('0x22')]=_0xef8edc[_0x8a07('0x22')];_0x798473[_0x8a07('0x2f')]=_0xc20c13[_0x8a07('0x22')];_0x798473[_0x8a07('0x5b')]=_0xef8edc[_0x8a07('0xa')];_0x798473[_0x8a07('0x5c')]=+new Date();var _0x29cf7a='';var _0x2eab0d='';var _0x14b3f5=Object['keys'](_0x798473);_0x14b3f5[_0x8a07('0x5d')]();for(var _0x31c228=0x0;_0x31c228<_0x14b3f5[_0x8a07('0x5e')];_0x31c228++){if(_0x29cf7a!=''){_0x29cf7a+='&';}_0x29cf7a+=_0x14b3f5[_0x31c228]+'='+encodeURIComponent(_0x798473[_0x14b3f5[_0x31c228]]);_0x2eab0d+=_0x798473[_0x14b3f5[_0x31c228]];}_0x2eab0d+=_0xc20c13[_0x8a07('0x59')];_0x2eab0d=_0x58b4dc[_0x8a07('0x5f')]('md5')[_0x8a07('0x18')](_0x2eab0d)[_0x8a07('0x60')](_0x8a07('0x61'));if(_0x29cf7a!==''){_0x29cf7a+='&';}_0x29cf7a+=_0x8a07('0x62')+_0x2eab0d;var _0xc82fd4={'method':'GET','uri':_0xc20c13[_0x8a07('0x50')]+_0x8a07('0x63')+_0x29cf7a,'json':!![]};return rp(_0xc82fd4)[_0x8a07('0x17')](function(_0x415403){var _0x464b65=Object[_0x8a07('0x64')](_0x415403);if(_0x415403[_0x464b65[0x0]][_0x8a07('0x1b')]&&parseInt(_0x415403[_0x464b65[0x0]]['error'])===0x0){var _0xf70593={'messageId':_0x415403[_0x464b65[0x0]][_0x8a07('0x65')]};if(!_0xc20c13[_0x8a07('0x3c')]){_0xf70593[_0x8a07('0x38')]=!![];}return _0x3652ed[_0x8a07('0x18')](_0xf70593);}else{return logger[_0x8a07('0x1b')](_0x8a07('0x2a'),_0x8a07('0x28'),_0x8a07('0x57'),util[_0x8a07('0x29')](_0x415403[_0x8a07('0x1b')],{'showHidden':![],'depth':null}));}})['catch'](function(_0x4f57aa){return logger[_0x8a07('0x1b')](_0x8a07('0x2a'),_0x8a07('0x28'),_0x8a07('0x57'),util[_0x8a07('0x29')](_0x4f57aa,{'showHidden':![],'depth':null}));});}else{logger[_0x8a07('0x1b')](_0x8a07('0x2a'),_0x8a07('0x28'),_0x8a07('0x57'),_0x8a07('0x66'));}break;case _0x8a07('0x67'):if(_0xc20c13[_0x8a07('0x59')]){var _0x33acd1={'method':_0x8a07('0x35'),'uri':_0x8a07('0x68'),'headers':{'Authorization':_0xc20c13[_0x8a07('0x59')]},'body':{'content':_0xef8edc[_0x8a07('0xa')],'to':[_0xef8edc[_0x8a07('0x22')]],'from':_0xc20c13[_0x8a07('0x22')],'binary':![],'clientMessageId':_0x8a07('0x69'),'charset':_0x8a07('0x6a')},'json':!![]};rp(_0x33acd1)[_0x8a07('0x17')](function(_0x3e6786){if(!_0x3e6786[_0x8a07('0x1b')]){var _0x490ace={'messageId':_0x3e6786[_0x8a07('0x46')][0x0][_0x8a07('0x6b')]};if(!_0xc20c13[_0x8a07('0x3c')]){_0x490ace['read']=!![];}return _0x3652ed[_0x8a07('0x18')](_0x490ace);}else{return logger[_0x8a07('0x1b')](_0x8a07('0x2a'),_0x8a07('0x28'),_0x8a07('0x67'),util[_0x8a07('0x29')](_0x3e6786[_0x8a07('0x1b')],{'showHidden':![],'depth':null}));}})[_0x8a07('0x1a')](function(_0x29fe64){return logger[_0x8a07('0x1b')](_0x8a07('0x2a'),_0x8a07('0x28'),_0x8a07('0x67'),util[_0x8a07('0x29')](_0x29fe64,{'showHidden':![],'depth':null}));});}else{logger[_0x8a07('0x1b')](_0x8a07('0x2a'),_0x8a07('0x28'),_0x8a07('0x67'),_0x8a07('0x66'));}break;case'bandwidth':if(_0xc20c13[_0x8a07('0x31')]&&_0xc20c13[_0x8a07('0x2d')]){var _0x1eae51=util[_0x8a07('0x3f')]('%s:%s',_0xc20c13['username'],_0xc20c13[_0x8a07('0x2d')]);var _0x4a414e={'method':_0x8a07('0x35'),'uri':'https://messaging.bandwidth.com/api/v2/users/'+_0xc20c13['accountId']+_0x8a07('0x6c'),'body':{'to':[_0xef8edc['phone']],'text':_0xef8edc[_0x8a07('0xa')],'from':_0xc20c13[_0x8a07('0x22')],'applicationId':_0xc20c13['applicationId']},'headers':{'Authorization':util[_0x8a07('0x3f')](_0x8a07('0x6d'),new Buffer(_0x1eae51)[_0x8a07('0x4e')]('base64'))},'json':!![]};rp(_0x4a414e)['then'](function(_0x47ee05){if(_0x47ee05['id']){var _0x20de12={'messageId':_0x47ee05['id']};return _0x3652ed[_0x8a07('0x18')](_0x20de12);}else{logger[_0x8a07('0x1b')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x8a07('0x28'),_0x8a07('0x6e'),util[_0x8a07('0x29')](_0x47ee05,{'showHidden':![],'depth':null}));}})[_0x8a07('0x1a')](function(_0x554ab4){logger['error']('SmsMessage,\x20%s,\x20%s,\x20%s',_0x8a07('0x28'),_0x8a07('0x6e'),util['inspect'](_0x554ab4,{'showHidden':![],'depth':null}));});}else{logger['error'](_0x8a07('0x2a'),_0x8a07('0x28'),_0x8a07('0x6e'),_0x8a07('0x49'));}break;case _0x8a07('0x6f'):if(_0xc20c13[_0x8a07('0x59')]){var _0x4a468b={};var _0xc82fd4={'method':_0x8a07('0x35'),'uri':_0x8a07('0x70'),'headers':{'Authorization':'Bearer\x20'+_0xc20c13['apiKey'],'Content-Type':'application/json'},'body':{'from':_0xc20c13[_0x8a07('0x22')],'to':_0xef8edc[_0x8a07('0x22')],'text':_0xef8edc[_0x8a07('0xa')]},'json':!![]};return rp(_0xc82fd4)[_0x8a07('0x17')](function(_0x1675aa){if(_0x1675aa[_0x8a07('0x71')]==0xca){_0x4a468b[_0x8a07('0x72')]=_0x1675aa;var _0x101a7e={'method':_0x8a07('0x35'),'uri':_0x8a07('0x73'),'headers':{'Authorization':_0x8a07('0x74')+_0xc20c13[_0x8a07('0x59')],'Content-Type':'application/json'},'body':{'refid':_0x4a468b[_0x8a07('0x72')]['refid']},'json':!![]};return rp(_0x101a7e)[_0x8a07('0x17')](function(_0x7aa031){_0x4a468b[_0x8a07('0x75')]=_0x7aa031;var _0x463c71={'messageId':_0x4a468b[_0x8a07('0x72')][_0x8a07('0x76')],'read':!![]};return _0x3652ed['update'](_0x463c71);});}else{return logger['error']('SmsMessage,\x20%s,\x20%s,\x20%s',_0x8a07('0x28'),_0x8a07('0x6f'),util[_0x8a07('0x29')](_0x1675aa,{'showHidden':![],'depth':null}));}})['catch'](function(_0x45a92c){return logger['error'](_0x8a07('0x2a'),'afterCreate',_0x8a07('0x6f'),util[_0x8a07('0x29')](_0x45a92c,{'showHidden':![],'depth':null}));});}else{return logger[_0x8a07('0x1b')]('SmsMessage,\x20%s,\x20%s,\x20%s',_0x8a07('0x28'),_0x8a07('0x6f'),_0x8a07('0x77'));}break;}}})[_0x8a07('0x78')](function(){_0x9edf98();});}else{_0x9edf98();}}},'charset':'utf8mb4','collate':'utf8mb4_unicode_ci'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2254=['http','redis','defaults','localhost','socket.io-emitter','./smsMessage.socket','register','info','request\x20sent','stringify','error','message','SmsMessage,\x20%s,\x20%s','result','SmsMessage','create','body','options','then','debug','CreateSmsMessage','lodash','util','randomstring','ioredis','../../config/logger','../../config/environment','jayson/promise','client'];(function(_0x90ab0b,_0x240d3c){var _0xab5ace=function(_0x5afc2b){while(--_0x5afc2b){_0x90ab0b['push'](_0x90ab0b['shift']());}};_0xab5ace(++_0x240d3c);}(_0x2254,0x137));var _0x4225=function(_0x22f627,_0x18be3d){_0x22f627=_0x22f627-0x0;var _0x372fe0=_0x2254[_0x22f627];return _0x372fe0;};'use strict';var _=require(_0x4225('0x0'));var util=require(_0x4225('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x4225('0x2'));var fs=require('fs');var Redis=require(_0x4225('0x3'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x4225('0x4'))('rpc');var config=require(_0x4225('0x5'));var jayson=require(_0x4225('0x6'));var client=jayson[_0x4225('0x7')][_0x4225('0x8')]({'port':0x232a});config[_0x4225('0x9')]=_[_0x4225('0xa')](config[_0x4225('0x9')],{'host':_0x4225('0xb'),'port':0x18eb});var socket=require(_0x4225('0xc'))(new Redis(config['redis']));require(_0x4225('0xd'))[_0x4225('0xe')](socket);function respondWithRpcPromise(_0x39126e,_0x53ab45,_0x443e07){return new BPromise(function(_0x4b2809,_0x3c90d3){return client['request'](_0x39126e,_0x443e07)['then'](function(_0x5e63cd){logger[_0x4225('0xf')]('SmsMessage,\x20%s,\x20%s',_0x53ab45,'request\x20sent');logger['debug']('SmsMessage,\x20%s,\x20%s,\x20%s',_0x53ab45,_0x4225('0x10'),JSON[_0x4225('0x11')](_0x5e63cd));if(_0x5e63cd[_0x4225('0x12')]){if(_0x5e63cd[_0x4225('0x12')]['code']===0x1f4){logger['error']('SmsMessage,\x20%s,\x20%s',_0x53ab45,_0x5e63cd[_0x4225('0x12')][_0x4225('0x13')]);return _0x3c90d3(_0x5e63cd[_0x4225('0x12')][_0x4225('0x13')]);}logger['error']('SmsMessage,\x20%s,\x20%s',_0x53ab45,_0x5e63cd['error'][_0x4225('0x13')]);return _0x4b2809(_0x5e63cd['error'][_0x4225('0x13')]);}else{logger['info'](_0x4225('0x14'),_0x53ab45,'request\x20sent');_0x4b2809(_0x5e63cd[_0x4225('0x15')]['message']);}})['catch'](function(_0x368d31){logger[_0x4225('0x12')](_0x4225('0x14'),_0x53ab45,_0x368d31);_0x3c90d3(_0x368d31);});});}exports['CreateSmsMessage']=function(_0x56d3fa){var _0x5f437c=this;return new Promise(function(_0x13a686,_0x2e2454){return db[_0x4225('0x16')][_0x4225('0x17')](_0x56d3fa[_0x4225('0x18')],{'raw':_0x56d3fa[_0x4225('0x19')]?_0x56d3fa[_0x4225('0x19')]['raw']===undefined?!![]:![]:!![]})[_0x4225('0x1a')](function(_0x4cbd0e){logger['info']('CreateSmsMessage',_0x56d3fa);logger[_0x4225('0x1b')](_0x4225('0x1c'),_0x56d3fa,JSON[_0x4225('0x11')](_0x4cbd0e));_0x13a686(_0x4cbd0e);})['catch'](function(_0x4cfe2d){logger[_0x4225('0x12')]('CreateSmsMessage',_0x4cfe2d['message'],_0x56d3fa);_0x2e2454(_0x5f437c[_0x4225('0x12')](0x1f4,_0x4cfe2d[_0x4225('0x13')]));});});};
\ No newline at end of file
+var _0x431e=['redis','defaults','socket.io-emitter','./smsMessage.socket','request','then','info','debug','SmsMessage,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','SmsMessage,\x20%s,\x20%s','message','result','catch','CreateSmsMessage','SmsMessage','create','body','options','raw','stringify','lodash','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http'];(function(_0x2f3134,_0x5247f6){var _0x3c1053=function(_0xc36625){while(--_0xc36625){_0x2f3134['push'](_0x2f3134['shift']());}};_0x3c1053(++_0x5247f6);}(_0x431e,0x16b));var _0xe431=function(_0x146484,_0x27a7f0){_0x146484=_0x146484-0x0;var _0x4c7aa3=_0x431e[_0x146484];return _0x4c7aa3;};'use strict';var _=require(_0xe431('0x0'));var util=require('util');var moment=require(_0xe431('0x1'));var BPromise=require(_0xe431('0x2'));var rs=require(_0xe431('0x3'));var fs=require('fs');var Redis=require(_0xe431('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0xe431('0x5'));var logger=require(_0xe431('0x6'))('rpc');var config=require(_0xe431('0x7'));var jayson=require(_0xe431('0x8'));var client=jayson[_0xe431('0x9')][_0xe431('0xa')]({'port':0x232a});config[_0xe431('0xb')]=_[_0xe431('0xc')](config[_0xe431('0xb')],{'host':'localhost','port':0x18eb});var socket=require(_0xe431('0xd'))(new Redis(config[_0xe431('0xb')]));require(_0xe431('0xe'))['register'](socket);function respondWithRpcPromise(_0x1a4179,_0x391fe1,_0x3aba12){return new BPromise(function(_0x2c7248,_0x22f42d){return client[_0xe431('0xf')](_0x1a4179,_0x3aba12)[_0xe431('0x10')](function(_0x4bd948){logger[_0xe431('0x11')]('SmsMessage,\x20%s,\x20%s',_0x391fe1,'request\x20sent');logger[_0xe431('0x12')](_0xe431('0x13'),_0x391fe1,_0xe431('0x14'),JSON['stringify'](_0x4bd948));if(_0x4bd948[_0xe431('0x15')]){if(_0x4bd948[_0xe431('0x15')][_0xe431('0x16')]===0x1f4){logger[_0xe431('0x15')](_0xe431('0x17'),_0x391fe1,_0x4bd948[_0xe431('0x15')][_0xe431('0x18')]);return _0x22f42d(_0x4bd948[_0xe431('0x15')][_0xe431('0x18')]);}logger[_0xe431('0x15')](_0xe431('0x17'),_0x391fe1,_0x4bd948[_0xe431('0x15')][_0xe431('0x18')]);return _0x2c7248(_0x4bd948['error']['message']);}else{logger[_0xe431('0x11')]('SmsMessage,\x20%s,\x20%s',_0x391fe1,'request\x20sent');_0x2c7248(_0x4bd948[_0xe431('0x19')]['message']);}})[_0xe431('0x1a')](function(_0x1834ab){logger['error'](_0xe431('0x17'),_0x391fe1,_0x1834ab);_0x22f42d(_0x1834ab);});});}exports[_0xe431('0x1b')]=function(_0x2e7386){var _0x4745cd=this;return new Promise(function(_0x43d95b,_0xe9d6bd){return db[_0xe431('0x1c')][_0xe431('0x1d')](_0x2e7386[_0xe431('0x1e')],{'raw':_0x2e7386[_0xe431('0x1f')]?_0x2e7386[_0xe431('0x1f')][_0xe431('0x20')]===undefined?!![]:![]:!![]})[_0xe431('0x10')](function(_0x3b5182){logger['info']('CreateSmsMessage',_0x2e7386);logger[_0xe431('0x12')](_0xe431('0x1b'),_0x2e7386,JSON[_0xe431('0x21')](_0x3b5182));_0x43d95b(_0x3b5182);})[_0xe431('0x1a')](function(_0x1c99b2){logger[_0xe431('0x15')]('CreateSmsMessage',_0x1c99b2[_0xe431('0x18')],_0x2e7386);_0xe9d6bd(_0x4745cd[_0xe431('0x15')](0x1f4,_0x1c99b2[_0xe431('0x18')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9d9a=['length','./smsMessage.events','save','update','emit','register'];(function(_0x2330a1,_0x4bb8d3){var _0x32c0a6=function(_0xba8ada){while(--_0xba8ada){_0x2330a1['push'](_0x2330a1['shift']());}};_0x32c0a6(++_0x4bb8d3);}(_0x9d9a,0xf1));var _0xa9d9=function(_0x2d3961,_0x22c674){_0x2d3961=_0x2d3961-0x0;var _0x2bc866=_0x9d9a[_0x2d3961];return _0x2bc866;};'use strict';var SmsMessageEvents=require(_0xa9d9('0x0'));var events=[_0xa9d9('0x1'),'remove',_0xa9d9('0x2')];function createListener(_0x12647c,_0x34337c){return function(_0x2df958){_0x34337c[_0xa9d9('0x3')](_0x12647c,_0x2df958);};}function removeListener(_0x4deeae,_0x4041a5){return function(){SmsMessageEvents['removeListener'](_0x4deeae,_0x4041a5);};}exports[_0xa9d9('0x4')]=function(_0x41f61c){for(var _0x3e61d2=0x0,_0x72696e=events[_0xa9d9('0x5')];_0x3e61d2<_0x72696e;_0x3e61d2++){var _0x44f7a9=events[_0x3e61d2];var _0x3aede6=createListener('smsMessage:'+_0x44f7a9,_0x41f61c);SmsMessageEvents['on'](_0x44f7a9,_0x3aede6);}};
\ No newline at end of file
+var _0xeba6=['save','emit','removeListener','register','smsMessage:','./smsMessage.events'];(function(_0x374305,_0x3bf2b1){var _0x48f9c6=function(_0x24588a){while(--_0x24588a){_0x374305['push'](_0x374305['shift']());}};_0x48f9c6(++_0x3bf2b1);}(_0xeba6,0x191));var _0x6eba=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xeba6[_0x3dd15e];return _0x231fd0;};'use strict';var SmsMessageEvents=require(_0x6eba('0x0'));var events=[_0x6eba('0x1'),'remove','update'];function createListener(_0x5a6407,_0x552707){return function(_0x524f92){_0x552707[_0x6eba('0x2')](_0x5a6407,_0x524f92);};}function removeListener(_0x23af13,_0x4dfee1){return function(){SmsMessageEvents[_0x6eba('0x3')](_0x23af13,_0x4dfee1);};}exports[_0x6eba('0x4')]=function(_0xfa0236){for(var _0x5e086d=0x0,_0x1016f4=events['length'];_0x5e086d<_0x1016f4;_0x5e086d++){var _0x3b1c11=events[_0x5e086d];var _0x3a51f1=createListener(_0x6eba('0x5')+_0x3b1c11,_0xfa0236);SmsMessageEvents['on'](_0x3b1c11,_0x3a51f1);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x949a=['get','/describe','isAuthenticated','describe','/:id','show','/:id/teams','getTeams','/:id/users','getAgents','post','addAgents','update','delete','removeAgents','multer','util','express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','index'];(function(_0x525e36,_0x1d25c7){var _0x9f7a30=function(_0xc06ae8){while(--_0xc06ae8){_0x525e36['push'](_0x525e36['shift']());}};_0x9f7a30(++_0x1d25c7);}(_0x949a,0x1db));var _0xa949=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0x949a[_0x122ef9];return _0x42fba0;};'use strict';var multer=require(_0xa949('0x0'));var util=require(_0xa949('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0xa949('0x2'));var router=express['Router']();var fs_extra=require(_0xa949('0x3'));var auth=require(_0xa949('0x4'));var interaction=require(_0xa949('0x5'));var config=require(_0xa949('0x6'));var controller=require('./smsQueue.controller');router['get']('/',auth['isAuthenticated'](),controller[_0xa949('0x7')]);router[_0xa949('0x8')](_0xa949('0x9'),auth[_0xa949('0xa')](),controller[_0xa949('0xb')]);router[_0xa949('0x8')](_0xa949('0xc'),auth[_0xa949('0xa')](),controller[_0xa949('0xd')]);router[_0xa949('0x8')]('/:id/members',auth[_0xa949('0xa')](),controller['getMembers']);router[_0xa949('0x8')](_0xa949('0xe'),auth[_0xa949('0xa')](),controller[_0xa949('0xf')]);router[_0xa949('0x8')](_0xa949('0x10'),auth[_0xa949('0xa')](),controller[_0xa949('0x11')]);router['post']('/',auth[_0xa949('0xa')](),controller['create']);router[_0xa949('0x12')](_0xa949('0xe'),auth['isAuthenticated'](),controller['addTeams']);router[_0xa949('0x12')]('/:id/users',auth[_0xa949('0xa')](),controller[_0xa949('0x13')]);router['put'](_0xa949('0xc'),auth[_0xa949('0xa')](),controller[_0xa949('0x14')]);router[_0xa949('0x15')](_0xa949('0xc'),auth[_0xa949('0xa')](),controller['destroy']);router['delete'](_0xa949('0xe'),auth[_0xa949('0xa')](),controller['removeTeams']);router[_0xa949('0x15')](_0xa949('0x10'),auth[_0xa949('0xa')](),controller[_0xa949('0x16')]);module['exports']=router;
\ No newline at end of file
+var _0x2599=['multer','util','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./smsQueue.controller','get','index','/describe','describe','isAuthenticated','show','/:id/members','getMembers','/:id/teams','/:id/users','getAgents','post','create','addTeams','addAgents','put','update','delete','/:id','destroy','removeAgents','exports'];(function(_0x50e593,_0x3ae998){var _0x3821d0=function(_0x53c295){while(--_0x53c295){_0x50e593['push'](_0x50e593['shift']());}};_0x3821d0(++_0x3ae998);}(_0x2599,0x117));var _0x9259=function(_0x52f112,_0x1902d5){_0x52f112=_0x52f112-0x0;var _0x33695c=_0x2599[_0x52f112];return _0x33695c;};'use strict';var multer=require(_0x9259('0x0'));var util=require(_0x9259('0x1'));var path=require('path');var timeout=require(_0x9259('0x2'));var express=require(_0x9259('0x3'));var router=express[_0x9259('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x9259('0x5'));var interaction=require(_0x9259('0x6'));var config=require(_0x9259('0x7'));var controller=require(_0x9259('0x8'));router[_0x9259('0x9')]('/',auth['isAuthenticated'](),controller[_0x9259('0xa')]);router['get'](_0x9259('0xb'),auth['isAuthenticated'](),controller[_0x9259('0xc')]);router[_0x9259('0x9')]('/:id',auth[_0x9259('0xd')](),controller[_0x9259('0xe')]);router[_0x9259('0x9')](_0x9259('0xf'),auth[_0x9259('0xd')](),controller[_0x9259('0x10')]);router[_0x9259('0x9')](_0x9259('0x11'),auth[_0x9259('0xd')](),controller['getTeams']);router[_0x9259('0x9')](_0x9259('0x12'),auth[_0x9259('0xd')](),controller[_0x9259('0x13')]);router[_0x9259('0x14')]('/',auth[_0x9259('0xd')](),controller[_0x9259('0x15')]);router[_0x9259('0x14')]('/:id/teams',auth[_0x9259('0xd')](),controller[_0x9259('0x16')]);router[_0x9259('0x14')](_0x9259('0x12'),auth['isAuthenticated'](),controller[_0x9259('0x17')]);router[_0x9259('0x18')]('/:id',auth[_0x9259('0xd')](),controller[_0x9259('0x19')]);router[_0x9259('0x1a')](_0x9259('0x1b'),auth[_0x9259('0xd')](),controller[_0x9259('0x1c')]);router[_0x9259('0x1a')]('/:id/teams',auth[_0x9259('0xd')](),controller['removeTeams']);router[_0x9259('0x1a')]('/:id/users',auth[_0x9259('0xd')](),controller[_0x9259('0x1d')]);module[_0x9259('0x1e')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7edc=['sequelize','exports','STRING','name','INTEGER','ENUM','rrmemory','beepall','roundrobin'];(function(_0x31429e,_0x16265c){var _0x24bc10=function(_0x207441){while(--_0x207441){_0x31429e['push'](_0x31429e['shift']());}};_0x24bc10(++_0x16265c);}(_0x7edc,0x1a7));var _0xc7ed=function(_0x3186aa,_0x34c21e){_0x3186aa=_0x3186aa-0x0;var _0x2d8c36=_0x7edc[_0x3186aa];return _0x2d8c36;};'use strict';var Sequelize=require(_0xc7ed('0x0'));module[_0xc7ed('0x1')]={'name':{'type':Sequelize[_0xc7ed('0x2')],'unique':_0xc7ed('0x3'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize[_0xc7ed('0x2')]},'timeout':{'type':Sequelize[_0xc7ed('0x4')],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0xc7ed('0x5')](_0xc7ed('0x6'),_0xc7ed('0x7'),_0xc7ed('0x8'))}};
\ No newline at end of file
+var _0xa6cd=['INTEGER','ENUM','rrmemory','beepall','roundrobin','sequelize','STRING'];(function(_0xeb8467,_0x3e465f){var _0x365daa=function(_0x8e4b97){while(--_0x8e4b97){_0xeb8467['push'](_0xeb8467['shift']());}};_0x365daa(++_0x3e465f);}(_0xa6cd,0x83));var _0xda6c=function(_0x148dff,_0x559310){_0x148dff=_0x148dff-0x0;var _0x13b7c4=_0xa6cd[_0x148dff];return _0x13b7c4;};'use strict';var Sequelize=require(_0xda6c('0x0'));module['exports']={'name':{'type':Sequelize[_0xda6c('0x1')],'unique':'name','validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'description':{'type':Sequelize['STRING']},'timeout':{'type':Sequelize[_0xda6c('0x2')],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0xda6c('0x3')](_0xda6c('0x4'),_0xda6c('0x5'),_0xda6c('0x6'))}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xca03=['intersection','attributes','fields','length','hasOwnProperty','nolimit','order','pick','filters','where','merge','filter','options','includeAll','SmsQueue','findAll','rows','catch','show','params','keys','rawAttributes','include','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','find','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','body','describe','getMembers','findOne','sort','SmsQueueId','UserSmsQueue','findAndCountAll','agent','smsPause','updatedAt','format','SIP','createdAt','getTeams','Team','ids','User','Agents','online','voicePause','interface','flatMap','sequelize','addTeams','each','findOrCreate','emit','userSmsQueue:save','removeTeams','select','tq.TeamId','from','team_has_sms_queues','join','SmsQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','QueryTypes','SELECT','every','TeamId','includes','compact','value','transaction','isEmpty','removeAgents','addAgents','omit','spread','userSmsQueue:remove','getAgents','eml-format','rimraf','zip-dir','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','socket.io-emitter','./smsQueue.socket','status','json','offset','undefined','limit','count','Content-Range','apply','reject','then','get','SmsQueues','UserProfileResource','destroy','end','sendStatus','error','name','send','index','map','type','key','model','query'];(function(_0x53ccf2,_0x13cb67){var _0x5a2964=function(_0x3b0514){while(--_0x3b0514){_0x53ccf2['push'](_0x53ccf2['shift']());}};_0x5a2964(++_0x13cb67);}(_0xca03,0x1f2));var _0x3ca0=function(_0x4c536e,_0x1f36b5){_0x4c536e=_0x4c536e-0x0;var _0x371b3e=_0xca03[_0x4c536e];return _0x371b3e;};'use strict';var emlformat=require(_0x3ca0('0x0'));var rimraf=require(_0x3ca0('0x1'));var zipdir=require(_0x3ca0('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x3ca0('0x3'));var BPromise=require(_0x3ca0('0x4'));var Mustache=require(_0x3ca0('0x5'));var util=require(_0x3ca0('0x6'));var path=require('path');var sox=require(_0x3ca0('0x7'));var csv=require(_0x3ca0('0x8'));var ejs=require(_0x3ca0('0x9'));var fs=require('fs');var fs_extra=require(_0x3ca0('0xa'));var _=require(_0x3ca0('0xb'));var squel=require(_0x3ca0('0xc'));var crypto=require(_0x3ca0('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x3ca0('0xe'));var toCsv=require(_0x3ca0('0x8'));var querystring=require(_0x3ca0('0xf'));var Papa=require(_0x3ca0('0x10'));var Redis=require('ioredis');var authService=require(_0x3ca0('0x11'));var qs=require(_0x3ca0('0x12'));var as=require(_0x3ca0('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x3ca0('0x14'))(_0x3ca0('0x15'));var utils=require(_0x3ca0('0x16'));var config=require(_0x3ca0('0x17'));var licenseUtil=require(_0x3ca0('0x18'));var db=require(_0x3ca0('0x19'))['db'];config[_0x3ca0('0x1a')]=_['defaults'](config[_0x3ca0('0x1a')],{'host':'localhost','port':0x18eb});var socket=require(_0x3ca0('0x1b'))(new Redis(config['redis']));require(_0x3ca0('0x1c'))['register'](socket);function respondWithStatusCode(_0x41d6af,_0x114765){_0x114765=_0x114765||0xcc;return function(_0x4f3453){if(_0x4f3453){return _0x41d6af['sendStatus'](_0x114765);}return _0x41d6af[_0x3ca0('0x1d')](_0x114765)['end']();};}function respondWithResult(_0x5b500b,_0x6b499d){_0x6b499d=_0x6b499d||0xc8;return function(_0x36f554){if(_0x36f554){return _0x5b500b[_0x3ca0('0x1d')](_0x6b499d)[_0x3ca0('0x1e')](_0x36f554);}};}function respondWithFilteredResult(_0x559bb5,_0x28b2e1){return function(_0x221f20){if(_0x221f20){var _0x28b59a=typeof _0x28b2e1[_0x3ca0('0x1f')]===_0x3ca0('0x20')&&typeof _0x28b2e1[_0x3ca0('0x21')]===_0x3ca0('0x20');var _0x27ca7a=_0x221f20[_0x3ca0('0x22')];var _0x4c7c81=_0x28b59a?0x0:_0x28b2e1[_0x3ca0('0x1f')];var _0x4f0448=_0x28b59a?_0x221f20[_0x3ca0('0x22')]:_0x28b2e1['offset']+_0x28b2e1[_0x3ca0('0x21')];var _0x4133b0;if(_0x4f0448>=_0x27ca7a){_0x4f0448=_0x27ca7a;_0x4133b0=0xc8;}else{_0x4133b0=0xce;}_0x559bb5[_0x3ca0('0x1d')](_0x4133b0);return _0x559bb5['set'](_0x3ca0('0x23'),_0x4c7c81+'-'+_0x4f0448+'/'+_0x27ca7a)['json'](_0x221f20);}return null;};}function patchUpdates(_0x5ebe1f){return function(_0x4f7b06){try{jsonpatch[_0x3ca0('0x24')](_0x4f7b06,_0x5ebe1f,!![]);}catch(_0x5b3593){return BPromise[_0x3ca0('0x25')](_0x5b3593);}return _0x4f7b06['save']();};}function saveUpdates(_0x1b558e,_0x418867){return function(_0x2704d2){if(_0x2704d2){return _0x2704d2['update'](_0x1b558e)[_0x3ca0('0x26')](function(_0x4b7d5d){return _0x4b7d5d;});}return null;};}function removeEntity(_0x366f8b,_0x29c689){return function(_0x438372){if(_0x438372){return _0x438372['destroy']()['then'](function(){var _0x412e81=_0x438372[_0x3ca0('0x27')]({'plain':!![]});var _0x2e9654=_0x3ca0('0x28');return db[_0x3ca0('0x29')][_0x3ca0('0x2a')]({'where':{'type':_0x2e9654,'resourceId':_0x412e81['id']}})[_0x3ca0('0x26')](function(){return _0x438372;});})['then'](function(){_0x366f8b['status'](0xcc)[_0x3ca0('0x2b')]();});}};}function handleEntityNotFound(_0x56aab1,_0x167a7e){return function(_0x3b3bea){if(!_0x3b3bea){_0x56aab1[_0x3ca0('0x2c')](0x194);}return _0x3b3bea;};}function handleError(_0x3ef910,_0x1824c8){_0x1824c8=_0x1824c8||0x1f4;return function(_0x5a62ea){logger[_0x3ca0('0x2d')](_0x5a62ea['stack']);if(_0x5a62ea[_0x3ca0('0x2e')]){delete _0x5a62ea[_0x3ca0('0x2e')];}_0x3ef910[_0x3ca0('0x1d')](_0x1824c8)[_0x3ca0('0x2f')](_0x5a62ea);};}exports[_0x3ca0('0x30')]=function(_0x46c021,_0x36d22d){var _0x47db6c={},_0x2782b0={},_0x1e61a5={'count':0x0,'rows':[]};var _0x3ea73e=_[_0x3ca0('0x31')](db['SmsQueue']['rawAttributes'],function(_0x56d5ed){return{'name':_0x56d5ed['fieldName'],'type':_0x56d5ed[_0x3ca0('0x32')][_0x3ca0('0x33')]};});_0x2782b0[_0x3ca0('0x34')]=_[_0x3ca0('0x31')](_0x3ea73e,_0x3ca0('0x2e'));_0x2782b0[_0x3ca0('0x35')]=_['keys'](_0x46c021['query']);_0x2782b0['filters']=_[_0x3ca0('0x36')](_0x2782b0[_0x3ca0('0x34')],_0x2782b0[_0x3ca0('0x35')]);_0x47db6c[_0x3ca0('0x37')]=_[_0x3ca0('0x36')](_0x2782b0['model'],qs[_0x3ca0('0x38')](_0x46c021['query'][_0x3ca0('0x38')]));_0x47db6c[_0x3ca0('0x37')]=_0x47db6c[_0x3ca0('0x37')][_0x3ca0('0x39')]?_0x47db6c[_0x3ca0('0x37')]:_0x2782b0[_0x3ca0('0x34')];if(!_0x46c021[_0x3ca0('0x35')][_0x3ca0('0x3a')](_0x3ca0('0x3b'))){_0x47db6c[_0x3ca0('0x21')]=qs[_0x3ca0('0x21')](_0x46c021[_0x3ca0('0x35')][_0x3ca0('0x21')]);_0x47db6c[_0x3ca0('0x1f')]=qs[_0x3ca0('0x1f')](_0x46c021[_0x3ca0('0x35')][_0x3ca0('0x1f')]);}_0x47db6c[_0x3ca0('0x3c')]=qs['sort'](_0x46c021[_0x3ca0('0x35')]['sort']);_0x47db6c['where']=qs['filters'](_[_0x3ca0('0x3d')](_0x46c021[_0x3ca0('0x35')],_0x2782b0[_0x3ca0('0x3e')]),_0x3ea73e);if(_0x46c021['query']['filter']){_0x47db6c[_0x3ca0('0x3f')]=_[_0x3ca0('0x40')](_0x47db6c[_0x3ca0('0x3f')],{'$or':_[_0x3ca0('0x31')](_0x3ea73e,function(_0xa68a8d){if(_0xa68a8d['type']!=='VIRTUAL'){var _0x339e61={};_0x339e61[_0xa68a8d[_0x3ca0('0x2e')]]={'$like':'%'+_0x46c021[_0x3ca0('0x35')][_0x3ca0('0x41')]+'%'};return _0x339e61;}})});}_0x47db6c=_['merge']({},_0x47db6c,_0x46c021[_0x3ca0('0x42')]);var _0x2233fb={'where':_0x47db6c[_0x3ca0('0x3f')]};return db['SmsQueue'][_0x3ca0('0x22')](_0x2233fb)[_0x3ca0('0x26')](function(_0x1d25df){_0x1e61a5[_0x3ca0('0x22')]=_0x1d25df;if(_0x46c021[_0x3ca0('0x35')][_0x3ca0('0x43')]){_0x47db6c['include']=[{'all':!![]}];}return db[_0x3ca0('0x44')][_0x3ca0('0x45')](_0x47db6c);})[_0x3ca0('0x26')](function(_0x15779c){_0x1e61a5[_0x3ca0('0x46')]=_0x15779c;return _0x1e61a5;})[_0x3ca0('0x26')](respondWithFilteredResult(_0x36d22d,_0x47db6c))[_0x3ca0('0x47')](handleError(_0x36d22d,null));};exports[_0x3ca0('0x48')]=function(_0x428a53,_0x499c79){var _0x1e6e31={'raw':!![],'where':{'id':_0x428a53[_0x3ca0('0x49')]['id']}},_0x368cd0={};_0x368cd0[_0x3ca0('0x34')]=_[_0x3ca0('0x4a')](db[_0x3ca0('0x44')][_0x3ca0('0x4b')]);_0x368cd0[_0x3ca0('0x35')]=_[_0x3ca0('0x4a')](_0x428a53[_0x3ca0('0x35')]);_0x368cd0[_0x3ca0('0x3e')]=_['intersection'](_0x368cd0[_0x3ca0('0x34')],_0x368cd0[_0x3ca0('0x35')]);_0x1e6e31['attributes']=_[_0x3ca0('0x36')](_0x368cd0[_0x3ca0('0x34')],qs['fields'](_0x428a53[_0x3ca0('0x35')][_0x3ca0('0x38')]));_0x1e6e31['attributes']=_0x1e6e31[_0x3ca0('0x37')]['length']?_0x1e6e31[_0x3ca0('0x37')]:_0x368cd0[_0x3ca0('0x34')];if(_0x428a53[_0x3ca0('0x35')][_0x3ca0('0x43')]){_0x1e6e31[_0x3ca0('0x4c')]=[{'all':!![]}];}_0x1e6e31=_['merge']({},_0x1e6e31,_0x428a53[_0x3ca0('0x42')]);return db['SmsQueue']['find'](_0x1e6e31)[_0x3ca0('0x26')](handleEntityNotFound(_0x499c79,null))[_0x3ca0('0x26')](respondWithResult(_0x499c79,null))['catch'](handleError(_0x499c79,null));};exports[_0x3ca0('0x4d')]=function(_0x4e3ebb,_0x2f2855){return db[_0x3ca0('0x44')][_0x3ca0('0x4d')](_0x4e3ebb['body'],{})[_0x3ca0('0x26')](function(_0x203280){var _0x16be41=_0x4e3ebb[_0x3ca0('0x4e')][_0x3ca0('0x27')]({'plain':!![]});if(!_0x16be41)throw new Error(_0x3ca0('0x4f'));if(_0x16be41['role']===_0x3ca0('0x4e')){var _0x51aa68=_0x203280['get']({'plain':!![]});var _0xfa3c78=_0x3ca0('0x28');return db[_0x3ca0('0x50')][_0x3ca0('0x51')]({'where':{'name':_0xfa3c78,'userProfileId':_0x16be41['userProfileId']},'raw':!![]})[_0x3ca0('0x26')](function(_0x36649f){if(_0x36649f&&_0x36649f[_0x3ca0('0x52')]===0x0){return db[_0x3ca0('0x29')][_0x3ca0('0x4d')]({'name':_0x51aa68[_0x3ca0('0x2e')],'resourceId':_0x51aa68['id'],'type':_0x36649f[_0x3ca0('0x2e')],'sectionId':_0x36649f['id']},{})[_0x3ca0('0x26')](function(){return _0x203280;});}else{return _0x203280;}})[_0x3ca0('0x47')](function(_0x4dbbc4){logger[_0x3ca0('0x2d')](_0x3ca0('0x53'),_0x4dbbc4);throw _0x4dbbc4;});}return _0x203280;})[_0x3ca0('0x26')](respondWithResult(_0x2f2855,0xc9))[_0x3ca0('0x47')](handleError(_0x2f2855,null));};exports[_0x3ca0('0x54')]=function(_0xe8249d,_0x705956){if(_0xe8249d[_0x3ca0('0x55')]['id']){delete _0xe8249d['body']['id'];}return db[_0x3ca0('0x44')]['find']({'where':{'id':_0xe8249d['params']['id']}})[_0x3ca0('0x26')](handleEntityNotFound(_0x705956,null))[_0x3ca0('0x26')](saveUpdates(_0xe8249d[_0x3ca0('0x55')],null))[_0x3ca0('0x26')](respondWithResult(_0x705956,null))[_0x3ca0('0x47')](handleError(_0x705956,null));};exports[_0x3ca0('0x2a')]=function(_0x350174,_0x29aad4){return db[_0x3ca0('0x44')][_0x3ca0('0x51')]({'where':{'id':_0x350174[_0x3ca0('0x49')]['id']}})['then'](handleEntityNotFound(_0x29aad4,null))[_0x3ca0('0x26')](removeEntity(_0x29aad4,null))['catch'](handleError(_0x29aad4,null));};exports['describe']=function(_0x35f50c,_0x13cb78){return db[_0x3ca0('0x44')][_0x3ca0('0x56')]()['then'](respondWithResult(_0x13cb78,null))['catch'](handleError(_0x13cb78,null));};exports[_0x3ca0('0x57')]=function(_0x31ec49,_0x419fa4,_0x1f1dd0){var _0x67f480={'raw':!![],'where':{}},_0x2e9f1c={},_0x77fa00;return db[_0x3ca0('0x44')][_0x3ca0('0x58')]({'where':{'id':_0x31ec49[_0x3ca0('0x49')]['id']}})[_0x3ca0('0x26')](handleEntityNotFound(_0x419fa4,null))[_0x3ca0('0x26')](function(_0x294070){if(_0x294070){_0x77fa00=_0x294070[_0x3ca0('0x27')]({'plain':!![]});_0x2e9f1c[_0x3ca0('0x34')]=_[_0x3ca0('0x4a')](db['UserSmsQueue'][_0x3ca0('0x4b')]);_0x2e9f1c[_0x3ca0('0x35')]=_[_0x3ca0('0x4a')](_0x31ec49[_0x3ca0('0x35')]);_0x2e9f1c[_0x3ca0('0x3e')]=_[_0x3ca0('0x36')](_0x2e9f1c['model'],_0x2e9f1c['query']);_0x67f480[_0x3ca0('0x37')]=_['intersection'](_0x2e9f1c[_0x3ca0('0x34')],qs[_0x3ca0('0x38')](_0x31ec49['query'][_0x3ca0('0x38')]));_0x67f480[_0x3ca0('0x37')]=_0x67f480[_0x3ca0('0x37')][_0x3ca0('0x39')]?_0x67f480[_0x3ca0('0x37')]:_0x2e9f1c[_0x3ca0('0x34')];if(!_0x31ec49[_0x3ca0('0x35')][_0x3ca0('0x3a')](_0x3ca0('0x3b'))){_0x67f480[_0x3ca0('0x21')]=qs[_0x3ca0('0x21')](_0x31ec49['query'][_0x3ca0('0x21')]);_0x67f480[_0x3ca0('0x1f')]=qs[_0x3ca0('0x1f')](_0x31ec49[_0x3ca0('0x35')][_0x3ca0('0x1f')]);}_0x67f480[_0x3ca0('0x3c')]=qs[_0x3ca0('0x59')](_0x31ec49[_0x3ca0('0x35')]['sort']);_0x67f480[_0x3ca0('0x3f')]=qs[_0x3ca0('0x3e')](_[_0x3ca0('0x3d')](_0x31ec49['query'],_0x2e9f1c[_0x3ca0('0x3e')]));_0x67f480['where'][_0x3ca0('0x5a')]=_0x294070['id'];if(_0x31ec49[_0x3ca0('0x35')][_0x3ca0('0x41')]){_0x67f480[_0x3ca0('0x3f')]=_[_0x3ca0('0x40')](_0x67f480[_0x3ca0('0x3f')],{'$or':_[_0x3ca0('0x31')](_0x67f480['attributes'],function(_0xdd7bad){var _0x302348={};_0x302348[_0xdd7bad]={'$like':'%'+_0x31ec49[_0x3ca0('0x35')][_0x3ca0('0x41')]+'%'};return _0x302348;})});}_0x67f480=_[_0x3ca0('0x40')]({},_0x67f480,_0x31ec49['options']);return db[_0x3ca0('0x5b')][_0x3ca0('0x45')](_0x67f480);}})['then'](function(_0x2ec6f7){if(_0x2ec6f7){return db['User'][_0x3ca0('0x5c')]({'where':{'id':_['map'](_0x2ec6f7,'UserId'),'role':_0x3ca0('0x5d')},'attributes':['id',_0x3ca0('0x2e'),_0x3ca0('0x5e'),_0x3ca0('0x5f'),'createdAt']});}})['then'](function(_0x39583d){if(_0x39583d){return{'count':_0x39583d[_0x3ca0('0x22')],'rows':_[_0x3ca0('0x31')](_0x39583d['rows'],function(_0xb8bdc9){return{'membername':_0xb8bdc9[_0x3ca0('0x2e')],'UserId':_0xb8bdc9['id'],'queue_name':_0x77fa00['name'],'SmsQueueId':_0x77fa00['id'],'interface':util[_0x3ca0('0x60')]('%s/%s',_0x3ca0('0x61'),_0xb8bdc9[_0x3ca0('0x2e')]),'penalty':0x0,'paused':_0xb8bdc9[_0x3ca0('0x5e')],'createdAt':_0xb8bdc9[_0x3ca0('0x62')],'updatedAt':_0xb8bdc9[_0x3ca0('0x5f')]};})};}else{return{'count':0x0,'rows':[]};}})['then'](respondWithFilteredResult(_0x419fa4,_0x67f480))[_0x3ca0('0x47')](handleError(_0x419fa4,null));};exports[_0x3ca0('0x63')]=function(_0x213d85,_0x23daca,_0x5414ed){var _0x1577f4={};var _0xd49720={};var _0x1a87e0;var _0x25a054;return db[_0x3ca0('0x44')][_0x3ca0('0x58')]({'where':{'id':_0x213d85[_0x3ca0('0x49')]['id']}})['then'](handleEntityNotFound(_0x23daca,null))['then'](function(_0x1f2b4c){if(_0x1f2b4c){_0x1a87e0=_0x1f2b4c;_0xd49720[_0x3ca0('0x34')]=_[_0x3ca0('0x4a')](db[_0x3ca0('0x64')][_0x3ca0('0x4b')]);_0xd49720[_0x3ca0('0x35')]=_[_0x3ca0('0x4a')](_0x213d85[_0x3ca0('0x35')]);_0xd49720['filters']=_[_0x3ca0('0x36')](_0xd49720[_0x3ca0('0x34')],_0xd49720[_0x3ca0('0x35')]);_0x1577f4[_0x3ca0('0x37')]=_[_0x3ca0('0x36')](_0xd49720[_0x3ca0('0x34')],qs[_0x3ca0('0x38')](_0x213d85[_0x3ca0('0x35')]['fields']));_0x1577f4[_0x3ca0('0x37')]=_0x1577f4[_0x3ca0('0x37')]['length']?_0x1577f4[_0x3ca0('0x37')]:_0xd49720[_0x3ca0('0x34')];_0x1577f4['order']=qs[_0x3ca0('0x59')](_0x213d85['query'][_0x3ca0('0x59')]);_0x1577f4[_0x3ca0('0x3f')]=qs[_0x3ca0('0x3e')](_[_0x3ca0('0x3d')](_0x213d85[_0x3ca0('0x35')],_0xd49720[_0x3ca0('0x3e')]));if(_0x213d85[_0x3ca0('0x35')][_0x3ca0('0x41')]){_0x1577f4['where']=_[_0x3ca0('0x40')](_0x1577f4[_0x3ca0('0x3f')],{'$or':_['map'](_0x1577f4[_0x3ca0('0x37')],function(_0x2215b0){var _0x2ae09e={};_0x2ae09e[_0x2215b0]={'$like':'%'+_0x213d85[_0x3ca0('0x35')][_0x3ca0('0x41')]+'%'};return _0x2ae09e;})});}_0x1577f4=_[_0x3ca0('0x40')]({},_0x1577f4,_0x213d85[_0x3ca0('0x42')]);return _0x1a87e0[_0x3ca0('0x63')](_0x1577f4);}})[_0x3ca0('0x26')](function(_0x4597ac){if(_0x4597ac){_0x25a054=_0x4597ac[_0x3ca0('0x39')];if(!_0x213d85[_0x3ca0('0x35')][_0x3ca0('0x3a')]('nolimit')){_0x1577f4[_0x3ca0('0x21')]=qs['limit'](_0x213d85['query']['limit']);_0x1577f4[_0x3ca0('0x1f')]=qs['offset'](_0x213d85['query']['offset']);}return _0x1a87e0[_0x3ca0('0x63')](_0x1577f4);}})[_0x3ca0('0x26')](function(_0x55f654){if(_0x55f654){return _0x55f654?{'count':_0x25a054,'rows':_0x55f654}:null;}})['then'](respondWithResult(_0x23daca,null))[_0x3ca0('0x47')](handleError(_0x23daca,null));};exports['addTeams']=function(_0x2ac28b,_0x2e80a5,_0x23528b){var _0x44699f=_0x2ac28b[_0x3ca0('0x55')][_0x3ca0('0x65')];return db[_0x3ca0('0x64')]['findAll']({'where':{'id':_0x44699f},'attributes':['id'],'include':[{'model':db[_0x3ca0('0x66')],'as':_0x3ca0('0x67'),'attributes':['id',_0x3ca0('0x2e'),_0x3ca0('0x68'),_0x3ca0('0x69'),_0x3ca0('0x6a')],'raw':!![]}]})['then'](function(_0x5de95e){if(_0x5de95e){var _0x24787a=_[_0x3ca0('0x6b')](_0x5de95e,function(_0x406507){var _0x51126e=_0x406507[_0x3ca0('0x27')]({'plain':!![]});return _0x51126e[_0x3ca0('0x67')];});return db[_0x3ca0('0x44')][_0x3ca0('0x51')]({'where':{'id':_0x2ac28b[_0x3ca0('0x49')]['id']}})[_0x3ca0('0x26')](function(_0x1923dd){return db[_0x3ca0('0x6c')]['transaction'](function(_0x33726f){return _0x1923dd[_0x3ca0('0x6d')](_0x44699f,{'transaction':_0x33726f})[_0x3ca0('0x26')](function(){return BPromise[_0x3ca0('0x6e')](_0x24787a,function(_0x5a9883){return db[_0x3ca0('0x5b')][_0x3ca0('0x6f')]({'where':{'UserId':_0x5a9883['id'],'SmsQueueId':_0x2ac28b[_0x3ca0('0x49')]['id']},'transaction':_0x33726f});});})[_0x3ca0('0x26')](function(){_0x24787a['forEach'](function(_0x2f0f12){socket[_0x3ca0('0x70')](_0x3ca0('0x71'),{'UserId':_0x2f0f12['id'],'SmsQueueId':_0x1923dd['id']});});});});});}})[_0x3ca0('0x26')](respondWithStatusCode(_0x2e80a5,null))[_0x3ca0('0x47')](handleError(_0x2e80a5,null));};exports[_0x3ca0('0x72')]=function(_0xffb2e,_0x3a1852,_0xb87ae0){return db[_0x3ca0('0x64')][_0x3ca0('0x45')]({'where':{'id':_0xffb2e[_0x3ca0('0x35')][_0x3ca0('0x65')]},'attributes':['id'],'include':[{'model':db[_0x3ca0('0x66')],'as':_0x3ca0('0x67'),'attributes':['id'],'raw':!![]}]})[_0x3ca0('0x26')](handleEntityNotFound(_0x3a1852,null))['then'](function(_0x1e23c3){var _0x5a8667=_[_0x3ca0('0x31')](_0x1e23c3,'id');var _0x45242a=[];var _0x1aef1d=[];var _0x13e561=squel[_0x3ca0('0x73')]();_0x13e561['field'](_0x3ca0('0x74'))[_0x3ca0('0x75')](_0x3ca0('0x76'),'tq')[_0x3ca0('0x77')]('user_has_teams','ut','ut.TeamId\x20=\x20tq.TeamId')[_0x3ca0('0x3f')](_0x3ca0('0x78'),_0xffb2e[_0x3ca0('0x49')]['id']);for(var _0x33fa4b=0x0;_0x33fa4b<_0x1e23c3[_0x3ca0('0x39')];_0x33fa4b+=0x1){let _0x20309c=_0x1e23c3[_0x33fa4b];for(var _0x5cac5e=0x0;_0x5cac5e<_0x20309c['Agents']['length'];_0x5cac5e+=0x1){let _0x1cf6d7=_0x20309c['Agents'][_0x5cac5e];var _0x248bdf=_0x13e561[_0x3ca0('0x79')]();_0x248bdf['where'](_0x3ca0('0x7a'),_0x1cf6d7['id']);_0x1aef1d['push'](db[_0x3ca0('0x6c')][_0x3ca0('0x35')](_0x248bdf['toString'](),{'type':db[_0x3ca0('0x6c')][_0x3ca0('0x7b')][_0x3ca0('0x7c')]})[_0x3ca0('0x26')](function(_0x337fb1){if(_0x337fb1[_0x3ca0('0x39')]===0x1){return _0x1cf6d7['id'];}else{var _0x49692a=_[_0x3ca0('0x7d')](_[_0x3ca0('0x31')](_0x337fb1,_0x3ca0('0x7e')),function(_0x2e7ef1){return _[_0x3ca0('0x7f')](_0x5a8667,_0x2e7ef1);});if(_0x49692a){return _0x1cf6d7['id'];}}}));}}return BPromise['all'](_0x1aef1d)[_0x3ca0('0x26')](function(_0x4e9bdb){_0x45242a=_(_0x45242a)['union'](_0x4e9bdb)[_0x3ca0('0x80')]()[_0x3ca0('0x81')]();return db['SmsQueue'][_0x3ca0('0x51')]({'where':{'id':_0xffb2e[_0x3ca0('0x49')]['id']}})[_0x3ca0('0x26')](function(_0x10bb2d){return db[_0x3ca0('0x6c')][_0x3ca0('0x82')](function(_0x5ac041){return _0x10bb2d['removeTeams'](_0xffb2e[_0x3ca0('0x35')][_0x3ca0('0x65')],{'transaction':_0x5ac041})['then'](function(){if(!_[_0x3ca0('0x83')](_0x45242a)){return _0x10bb2d[_0x3ca0('0x84')](_0x45242a,{'transaction':_0x5ac041});}})[_0x3ca0('0x26')](function(){_0x45242a['forEach'](function(_0x2311fe){socket[_0x3ca0('0x70')]('userSmsQueue:remove',{'UserId':_0x2311fe,'SmsQueueId':_0x10bb2d['id']});});});});});});})[_0x3ca0('0x26')](respondWithStatusCode(_0x3a1852,null))[_0x3ca0('0x47')](handleError(_0x3a1852,null));};exports[_0x3ca0('0x85')]=function(_0x320c20,_0xeba301,_0x53001c){return db[_0x3ca0('0x44')][_0x3ca0('0x51')]({'where':{'id':_0x320c20[_0x3ca0('0x49')]['id']}})[_0x3ca0('0x26')](handleEntityNotFound(_0xeba301,null))[_0x3ca0('0x26')](function(_0x2b5c60){if(_0x2b5c60){return _0x2b5c60[_0x3ca0('0x85')](_0x320c20[_0x3ca0('0x55')][_0x3ca0('0x65')],_[_0x3ca0('0x86')](_0x320c20['body'],[_0x3ca0('0x65'),'id'])||{})[_0x3ca0('0x87')](function(_0x4ef176){for(var _0x4425e1=0x0;_0x4425e1<_0x320c20[_0x3ca0('0x55')]['ids'][_0x3ca0('0x39')];_0x4425e1+=0x1){socket['emit'](_0x3ca0('0x71'),{'UserId':Number(_0x320c20[_0x3ca0('0x55')][_0x3ca0('0x65')][_0x4425e1]),'SmsQueueId':Number(_0x320c20[_0x3ca0('0x49')]['id'])});}return _0x4ef176;});}})[_0x3ca0('0x26')](respondWithResult(_0xeba301,null))[_0x3ca0('0x47')](handleError(_0xeba301,null));};exports[_0x3ca0('0x84')]=function(_0x31aafc,_0x517c2f,_0x2cdf50){return db[_0x3ca0('0x44')]['find']({'where':{'id':_0x31aafc['params']['id']}})[_0x3ca0('0x26')](handleEntityNotFound(_0x517c2f,null))[_0x3ca0('0x26')](function(_0x17ac0c){if(_0x17ac0c){return _0x17ac0c['removeAgents'](_0x31aafc['query'][_0x3ca0('0x65')])[_0x3ca0('0x26')](function(){if(_['isArray'](_0x31aafc[_0x3ca0('0x35')]['ids'])){for(var _0x2ab4dd=0x0;_0x2ab4dd<_0x31aafc[_0x3ca0('0x35')][_0x3ca0('0x65')][_0x3ca0('0x39')];_0x2ab4dd+=0x1){socket[_0x3ca0('0x70')](_0x3ca0('0x88'),{'UserId':Number(_0x31aafc[_0x3ca0('0x35')][_0x3ca0('0x65')][_0x2ab4dd]),'SmsQueueId':Number(_0x31aafc[_0x3ca0('0x49')]['id'])});}}else{socket[_0x3ca0('0x70')](_0x3ca0('0x88'),{'UserId':Number(_0x31aafc['query'][_0x3ca0('0x65')]),'SmsQueueId':Number(_0x31aafc[_0x3ca0('0x49')]['id'])});}});}})[_0x3ca0('0x26')](respondWithStatusCode(_0x517c2f,null))[_0x3ca0('0x47')](handleError(_0x517c2f,null));};exports[_0x3ca0('0x89')]=function(_0x22b1d1,_0x14fcd0,_0x153455){var _0x3eae7b={};var _0x304b79={};var _0x183f46;var _0xc352ad;return db['SmsQueue'][_0x3ca0('0x58')]({'where':{'id':_0x22b1d1[_0x3ca0('0x49')]['id']}})[_0x3ca0('0x26')](handleEntityNotFound(_0x14fcd0,null))['then'](function(_0x16c940){if(_0x16c940){_0x183f46=_0x16c940;_0x304b79[_0x3ca0('0x34')]=_['keys'](db['User'][_0x3ca0('0x4b')]);_0x304b79['query']=_[_0x3ca0('0x4a')](_0x22b1d1[_0x3ca0('0x35')]);_0x304b79[_0x3ca0('0x3e')]=_['intersection'](_0x304b79['model'],_0x304b79[_0x3ca0('0x35')]);_0x3eae7b[_0x3ca0('0x37')]=_[_0x3ca0('0x36')](_0x304b79[_0x3ca0('0x34')],qs[_0x3ca0('0x38')](_0x22b1d1['query'][_0x3ca0('0x38')]));_0x3eae7b['attributes']=_0x3eae7b[_0x3ca0('0x37')][_0x3ca0('0x39')]?_0x3eae7b['attributes']:_0x304b79[_0x3ca0('0x34')];_0x3eae7b[_0x3ca0('0x3c')]=qs[_0x3ca0('0x59')](_0x22b1d1[_0x3ca0('0x35')][_0x3ca0('0x59')]);_0x3eae7b[_0x3ca0('0x3f')]=qs[_0x3ca0('0x3e')](_[_0x3ca0('0x3d')](_0x22b1d1[_0x3ca0('0x35')],_0x304b79[_0x3ca0('0x3e')]));if(_0x22b1d1[_0x3ca0('0x35')]['filter']){_0x3eae7b[_0x3ca0('0x3f')]=_[_0x3ca0('0x40')](_0x3eae7b['where'],{'$or':_[_0x3ca0('0x31')](_0x3eae7b['attributes'],function(_0x1bbd9f){var _0x3ac1b4={};_0x3ac1b4[_0x1bbd9f]={'$like':'%'+_0x22b1d1['query']['filter']+'%'};return _0x3ac1b4;})});}_0x3eae7b=_[_0x3ca0('0x40')]({},_0x3eae7b,_0x22b1d1['options']);return _0x183f46['getAgents'](_0x3eae7b);}})[_0x3ca0('0x26')](function(_0x23dc4c){if(_0x23dc4c){_0xc352ad=_0x23dc4c[_0x3ca0('0x39')];if(!_0x22b1d1[_0x3ca0('0x35')]['hasOwnProperty'](_0x3ca0('0x3b'))){_0x3eae7b['limit']=qs[_0x3ca0('0x21')](_0x22b1d1[_0x3ca0('0x35')][_0x3ca0('0x21')]);_0x3eae7b[_0x3ca0('0x1f')]=qs[_0x3ca0('0x1f')](_0x22b1d1[_0x3ca0('0x35')][_0x3ca0('0x1f')]);}return _0x183f46[_0x3ca0('0x89')](_0x3eae7b);}})[_0x3ca0('0x26')](function(_0x50c1fe){if(_0x50c1fe){return _0x50c1fe?{'count':_0xc352ad,'rows':_0x50c1fe}:null;}})[_0x3ca0('0x26')](respondWithResult(_0x14fcd0,null))[_0x3ca0('0x47')](handleError(_0x14fcd0,null));};
\ No newline at end of file
+var _0xc08a=['describe','getMembers','findOne','UserSmsQueue','SmsQueueId','findAll','User','findAndCountAll','UserId','agent','smsPause','updatedAt','createdAt','SIP','Team','order','getTeams','addTeams','Agents','online','voicePause','flatMap','sequelize','transaction','each','findOrCreate','emit','removeTeams','ids','select','field','tq.TeamId','from','team_has_sms_queues','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','SmsQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','push','toString','QueryTypes','TeamId','includes','union','compact','value','isEmpty','removeAgents','forEach','userSmsQueue:remove','addAgents','omit','spread','userSmsQueue:save','isArray','getAgents','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','./smsQueue.socket','register','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','save','update','destroy','then','SmsQueues','UserProfileResource','error','stack','name','send','index','map','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','SmsQueue','include','rows','catch','show','params','rawAttributes','includeAll','find','create','body','user','get','UserProfileSection','userProfileId','autoAssociation'];(function(_0x5d7504,_0x2ba214){var _0x29157a=function(_0x37665d){while(--_0x37665d){_0x5d7504['push'](_0x5d7504['shift']());}};_0x29157a(++_0x2ba214);}(_0xc08a,0x167));var _0xac08=function(_0x2857e1,_0x30de36){_0x2857e1=_0x2857e1-0x0;var _0x5fcf9f=_0xc08a[_0x2857e1];return _0x5fcf9f;};'use strict';var emlformat=require(_0xac08('0x0'));var rimraf=require(_0xac08('0x1'));var zipdir=require(_0xac08('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xac08('0x3'));var moment=require(_0xac08('0x4'));var BPromise=require(_0xac08('0x5'));var Mustache=require(_0xac08('0x6'));var util=require(_0xac08('0x7'));var path=require(_0xac08('0x8'));var sox=require(_0xac08('0x9'));var csv=require(_0xac08('0xa'));var ejs=require(_0xac08('0xb'));var fs=require('fs');var fs_extra=require(_0xac08('0xc'));var _=require(_0xac08('0xd'));var squel=require(_0xac08('0xe'));var crypto=require(_0xac08('0xf'));var jsforce=require(_0xac08('0x10'));var deskjs=require('desk.js');var toCsv=require(_0xac08('0xa'));var querystring=require(_0xac08('0x11'));var Papa=require(_0xac08('0x12'));var Redis=require(_0xac08('0x13'));var authService=require(_0xac08('0x14'));var qs=require(_0xac08('0x15'));var as=require(_0xac08('0x16'));var hardwareService=require(_0xac08('0x17'));var logger=require(_0xac08('0x18'))(_0xac08('0x19'));var utils=require(_0xac08('0x1a'));var config=require(_0xac08('0x1b'));var licenseUtil=require(_0xac08('0x1c'));var db=require(_0xac08('0x1d'))['db'];config[_0xac08('0x1e')]=_[_0xac08('0x1f')](config[_0xac08('0x1e')],{'host':_0xac08('0x20'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xac08('0x1e')]));require(_0xac08('0x21'))[_0xac08('0x22')](socket);function respondWithStatusCode(_0x194768,_0x40f80d){_0x40f80d=_0x40f80d||0xcc;return function(_0x20b618){if(_0x20b618){return _0x194768[_0xac08('0x23')](_0x40f80d);}return _0x194768['status'](_0x40f80d)[_0xac08('0x24')]();};}function respondWithResult(_0x1e213b,_0x2b61b0){_0x2b61b0=_0x2b61b0||0xc8;return function(_0x3b8194){if(_0x3b8194){return _0x1e213b[_0xac08('0x25')](_0x2b61b0)[_0xac08('0x26')](_0x3b8194);}};}function respondWithFilteredResult(_0x37036f,_0x4cda06){return function(_0x480336){if(_0x480336){var _0x843143=typeof _0x4cda06[_0xac08('0x27')]===_0xac08('0x28')&&typeof _0x4cda06[_0xac08('0x29')]===_0xac08('0x28');var _0x340bfa=_0x480336[_0xac08('0x2a')];var _0x429376=_0x843143?0x0:_0x4cda06[_0xac08('0x27')];var _0x1f205f=_0x843143?_0x480336[_0xac08('0x2a')]:_0x4cda06['offset']+_0x4cda06[_0xac08('0x29')];var _0x4af9f7;if(_0x1f205f>=_0x340bfa){_0x1f205f=_0x340bfa;_0x4af9f7=0xc8;}else{_0x4af9f7=0xce;}_0x37036f[_0xac08('0x25')](_0x4af9f7);return _0x37036f[_0xac08('0x2b')](_0xac08('0x2c'),_0x429376+'-'+_0x1f205f+'/'+_0x340bfa)['json'](_0x480336);}return null;};}function patchUpdates(_0x441ed2){return function(_0x47ef4e){try{jsonpatch[_0xac08('0x2d')](_0x47ef4e,_0x441ed2,!![]);}catch(_0xb14658){return BPromise['reject'](_0xb14658);}return _0x47ef4e[_0xac08('0x2e')]();};}function saveUpdates(_0x2cdbab,_0x389490){return function(_0x4aefb3){if(_0x4aefb3){return _0x4aefb3[_0xac08('0x2f')](_0x2cdbab)['then'](function(_0x38682a){return _0x38682a;});}return null;};}function removeEntity(_0x570169,_0x558706){return function(_0x111737){if(_0x111737){return _0x111737[_0xac08('0x30')]()[_0xac08('0x31')](function(){var _0x455093=_0x111737['get']({'plain':!![]});var _0x2d628d=_0xac08('0x32');return db[_0xac08('0x33')][_0xac08('0x30')]({'where':{'type':_0x2d628d,'resourceId':_0x455093['id']}})['then'](function(){return _0x111737;});})['then'](function(){_0x570169[_0xac08('0x25')](0xcc)[_0xac08('0x24')]();});}};}function handleEntityNotFound(_0x325c43,_0x5c1f68){return function(_0xcda08f){if(!_0xcda08f){_0x325c43[_0xac08('0x23')](0x194);}return _0xcda08f;};}function handleError(_0x1d13ff,_0x43ae89){_0x43ae89=_0x43ae89||0x1f4;return function(_0x1ff164){logger[_0xac08('0x34')](_0x1ff164[_0xac08('0x35')]);if(_0x1ff164[_0xac08('0x36')]){delete _0x1ff164[_0xac08('0x36')];}_0x1d13ff['status'](_0x43ae89)[_0xac08('0x37')](_0x1ff164);};}exports[_0xac08('0x38')]=function(_0x278ab1,_0x583ba7){var _0x1d6aa2={},_0x289101={},_0x297692={'count':0x0,'rows':[]};var _0x4d3d40=_[_0xac08('0x39')](db['SmsQueue']['rawAttributes'],function(_0x3d2d7c){return{'name':_0x3d2d7c[_0xac08('0x3a')],'type':_0x3d2d7c[_0xac08('0x3b')][_0xac08('0x3c')]};});_0x289101[_0xac08('0x3d')]=_['map'](_0x4d3d40,_0xac08('0x36'));_0x289101['query']=_[_0xac08('0x3e')](_0x278ab1[_0xac08('0x3f')]);_0x289101[_0xac08('0x40')]=_[_0xac08('0x41')](_0x289101['model'],_0x289101[_0xac08('0x3f')]);_0x1d6aa2[_0xac08('0x42')]=_[_0xac08('0x41')](_0x289101[_0xac08('0x3d')],qs[_0xac08('0x43')](_0x278ab1['query']['fields']));_0x1d6aa2['attributes']=_0x1d6aa2['attributes'][_0xac08('0x44')]?_0x1d6aa2['attributes']:_0x289101[_0xac08('0x3d')];if(!_0x278ab1[_0xac08('0x3f')][_0xac08('0x45')](_0xac08('0x46'))){_0x1d6aa2[_0xac08('0x29')]=qs[_0xac08('0x29')](_0x278ab1[_0xac08('0x3f')]['limit']);_0x1d6aa2[_0xac08('0x27')]=qs[_0xac08('0x27')](_0x278ab1[_0xac08('0x3f')][_0xac08('0x27')]);}_0x1d6aa2['order']=qs[_0xac08('0x47')](_0x278ab1[_0xac08('0x3f')][_0xac08('0x47')]);_0x1d6aa2[_0xac08('0x48')]=qs[_0xac08('0x40')](_[_0xac08('0x49')](_0x278ab1[_0xac08('0x3f')],_0x289101[_0xac08('0x40')]),_0x4d3d40);if(_0x278ab1[_0xac08('0x3f')][_0xac08('0x4a')]){_0x1d6aa2[_0xac08('0x48')]=_[_0xac08('0x4b')](_0x1d6aa2[_0xac08('0x48')],{'$or':_['map'](_0x4d3d40,function(_0x135eef){if(_0x135eef[_0xac08('0x3b')]!==_0xac08('0x4c')){var _0x1e1690={};_0x1e1690[_0x135eef['name']]={'$like':'%'+_0x278ab1[_0xac08('0x3f')][_0xac08('0x4a')]+'%'};return _0x1e1690;}})});}_0x1d6aa2=_[_0xac08('0x4b')]({},_0x1d6aa2,_0x278ab1[_0xac08('0x4d')]);var _0xf6a12f={'where':_0x1d6aa2[_0xac08('0x48')]};return db[_0xac08('0x4e')][_0xac08('0x2a')](_0xf6a12f)['then'](function(_0x164d14){_0x297692[_0xac08('0x2a')]=_0x164d14;if(_0x278ab1[_0xac08('0x3f')]['includeAll']){_0x1d6aa2[_0xac08('0x4f')]=[{'all':!![]}];}return db[_0xac08('0x4e')]['findAll'](_0x1d6aa2);})[_0xac08('0x31')](function(_0x2589d6){_0x297692[_0xac08('0x50')]=_0x2589d6;return _0x297692;})[_0xac08('0x31')](respondWithFilteredResult(_0x583ba7,_0x1d6aa2))[_0xac08('0x51')](handleError(_0x583ba7,null));};exports[_0xac08('0x52')]=function(_0x3e94c9,_0x182b23){var _0x2687d0={'raw':!![],'where':{'id':_0x3e94c9[_0xac08('0x53')]['id']}},_0x177775={};_0x177775[_0xac08('0x3d')]=_[_0xac08('0x3e')](db['SmsQueue'][_0xac08('0x54')]);_0x177775[_0xac08('0x3f')]=_['keys'](_0x3e94c9['query']);_0x177775['filters']=_[_0xac08('0x41')](_0x177775['model'],_0x177775['query']);_0x2687d0[_0xac08('0x42')]=_[_0xac08('0x41')](_0x177775[_0xac08('0x3d')],qs[_0xac08('0x43')](_0x3e94c9[_0xac08('0x3f')][_0xac08('0x43')]));_0x2687d0['attributes']=_0x2687d0[_0xac08('0x42')]['length']?_0x2687d0['attributes']:_0x177775[_0xac08('0x3d')];if(_0x3e94c9[_0xac08('0x3f')][_0xac08('0x55')]){_0x2687d0['include']=[{'all':!![]}];}_0x2687d0=_[_0xac08('0x4b')]({},_0x2687d0,_0x3e94c9[_0xac08('0x4d')]);return db['SmsQueue'][_0xac08('0x56')](_0x2687d0)['then'](handleEntityNotFound(_0x182b23,null))[_0xac08('0x31')](respondWithResult(_0x182b23,null))[_0xac08('0x51')](handleError(_0x182b23,null));};exports[_0xac08('0x57')]=function(_0x371efd,_0x3a0db7){return db[_0xac08('0x4e')][_0xac08('0x57')](_0x371efd[_0xac08('0x58')],{})[_0xac08('0x31')](function(_0x2442a9){var _0x4d0382=_0x371efd[_0xac08('0x59')][_0xac08('0x5a')]({'plain':!![]});if(!_0x4d0382)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x4d0382['role']===_0xac08('0x59')){var _0x597b96=_0x2442a9[_0xac08('0x5a')]({'plain':!![]});var _0x1e45dd='SmsQueues';return db[_0xac08('0x5b')][_0xac08('0x56')]({'where':{'name':_0x1e45dd,'userProfileId':_0x4d0382[_0xac08('0x5c')]},'raw':!![]})[_0xac08('0x31')](function(_0x28c892){if(_0x28c892&&_0x28c892[_0xac08('0x5d')]===0x0){return db['UserProfileResource'][_0xac08('0x57')]({'name':_0x597b96[_0xac08('0x36')],'resourceId':_0x597b96['id'],'type':_0x28c892[_0xac08('0x36')],'sectionId':_0x28c892['id']},{})[_0xac08('0x31')](function(){return _0x2442a9;});}else{return _0x2442a9;}})[_0xac08('0x51')](function(_0x589e86){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x589e86);throw _0x589e86;});}return _0x2442a9;})[_0xac08('0x31')](respondWithResult(_0x3a0db7,0xc9))[_0xac08('0x51')](handleError(_0x3a0db7,null));};exports[_0xac08('0x2f')]=function(_0x5dad52,_0x222ae6){if(_0x5dad52[_0xac08('0x58')]['id']){delete _0x5dad52[_0xac08('0x58')]['id'];}return db[_0xac08('0x4e')][_0xac08('0x56')]({'where':{'id':_0x5dad52[_0xac08('0x53')]['id']}})[_0xac08('0x31')](handleEntityNotFound(_0x222ae6,null))[_0xac08('0x31')](saveUpdates(_0x5dad52[_0xac08('0x58')],null))['then'](respondWithResult(_0x222ae6,null))[_0xac08('0x51')](handleError(_0x222ae6,null));};exports[_0xac08('0x30')]=function(_0x5b5e3b,_0x5e769c){return db[_0xac08('0x4e')][_0xac08('0x56')]({'where':{'id':_0x5b5e3b[_0xac08('0x53')]['id']}})[_0xac08('0x31')](handleEntityNotFound(_0x5e769c,null))['then'](removeEntity(_0x5e769c,null))[_0xac08('0x51')](handleError(_0x5e769c,null));};exports[_0xac08('0x5e')]=function(_0x32680f,_0x203265){return db[_0xac08('0x4e')]['describe']()['then'](respondWithResult(_0x203265,null))[_0xac08('0x51')](handleError(_0x203265,null));};exports[_0xac08('0x5f')]=function(_0x2a82a2,_0x5de6f0,_0x54f164){var _0x489c2b={'raw':!![],'where':{}},_0xc54c3e={},_0x2a6d06;return db[_0xac08('0x4e')][_0xac08('0x60')]({'where':{'id':_0x2a82a2[_0xac08('0x53')]['id']}})['then'](handleEntityNotFound(_0x5de6f0,null))[_0xac08('0x31')](function(_0x207b1a){if(_0x207b1a){_0x2a6d06=_0x207b1a[_0xac08('0x5a')]({'plain':!![]});_0xc54c3e['model']=_['keys'](db[_0xac08('0x61')]['rawAttributes']);_0xc54c3e['query']=_['keys'](_0x2a82a2[_0xac08('0x3f')]);_0xc54c3e['filters']=_[_0xac08('0x41')](_0xc54c3e['model'],_0xc54c3e[_0xac08('0x3f')]);_0x489c2b['attributes']=_[_0xac08('0x41')](_0xc54c3e[_0xac08('0x3d')],qs[_0xac08('0x43')](_0x2a82a2[_0xac08('0x3f')][_0xac08('0x43')]));_0x489c2b[_0xac08('0x42')]=_0x489c2b[_0xac08('0x42')][_0xac08('0x44')]?_0x489c2b[_0xac08('0x42')]:_0xc54c3e[_0xac08('0x3d')];if(!_0x2a82a2[_0xac08('0x3f')][_0xac08('0x45')]('nolimit')){_0x489c2b[_0xac08('0x29')]=qs[_0xac08('0x29')](_0x2a82a2[_0xac08('0x3f')][_0xac08('0x29')]);_0x489c2b[_0xac08('0x27')]=qs[_0xac08('0x27')](_0x2a82a2['query'][_0xac08('0x27')]);}_0x489c2b['order']=qs[_0xac08('0x47')](_0x2a82a2[_0xac08('0x3f')]['sort']);_0x489c2b[_0xac08('0x48')]=qs[_0xac08('0x40')](_[_0xac08('0x49')](_0x2a82a2['query'],_0xc54c3e[_0xac08('0x40')]));_0x489c2b['where'][_0xac08('0x62')]=_0x207b1a['id'];if(_0x2a82a2[_0xac08('0x3f')][_0xac08('0x4a')]){_0x489c2b['where']=_['merge'](_0x489c2b['where'],{'$or':_['map'](_0x489c2b[_0xac08('0x42')],function(_0x49e5e5){var _0xf62038={};_0xf62038[_0x49e5e5]={'$like':'%'+_0x2a82a2[_0xac08('0x3f')]['filter']+'%'};return _0xf62038;})});}_0x489c2b=_[_0xac08('0x4b')]({},_0x489c2b,_0x2a82a2[_0xac08('0x4d')]);return db[_0xac08('0x61')][_0xac08('0x63')](_0x489c2b);}})['then'](function(_0x143b6e){if(_0x143b6e){return db[_0xac08('0x64')][_0xac08('0x65')]({'where':{'id':_['map'](_0x143b6e,_0xac08('0x66')),'role':_0xac08('0x67')},'attributes':['id',_0xac08('0x36'),_0xac08('0x68'),_0xac08('0x69'),_0xac08('0x6a')]});}})[_0xac08('0x31')](function(_0x184008){if(_0x184008){return{'count':_0x184008[_0xac08('0x2a')],'rows':_[_0xac08('0x39')](_0x184008['rows'],function(_0x4dac16){return{'membername':_0x4dac16[_0xac08('0x36')],'UserId':_0x4dac16['id'],'queue_name':_0x2a6d06[_0xac08('0x36')],'SmsQueueId':_0x2a6d06['id'],'interface':util['format']('%s/%s',_0xac08('0x6b'),_0x4dac16['name']),'penalty':0x0,'paused':_0x4dac16[_0xac08('0x68')],'createdAt':_0x4dac16['createdAt'],'updatedAt':_0x4dac16[_0xac08('0x69')]};})};}else{return{'count':0x0,'rows':[]};}})[_0xac08('0x31')](respondWithFilteredResult(_0x5de6f0,_0x489c2b))[_0xac08('0x51')](handleError(_0x5de6f0,null));};exports['getTeams']=function(_0x192f69,_0x21397b,_0x22c87e){var _0x3a6b25={};var _0x42a76a={};var _0x1b586b;var _0x15555a;return db[_0xac08('0x4e')]['findOne']({'where':{'id':_0x192f69[_0xac08('0x53')]['id']}})[_0xac08('0x31')](handleEntityNotFound(_0x21397b,null))[_0xac08('0x31')](function(_0xc6c1c){if(_0xc6c1c){_0x1b586b=_0xc6c1c;_0x42a76a[_0xac08('0x3d')]=_[_0xac08('0x3e')](db[_0xac08('0x6c')][_0xac08('0x54')]);_0x42a76a[_0xac08('0x3f')]=_['keys'](_0x192f69[_0xac08('0x3f')]);_0x42a76a[_0xac08('0x40')]=_[_0xac08('0x41')](_0x42a76a[_0xac08('0x3d')],_0x42a76a['query']);_0x3a6b25[_0xac08('0x42')]=_['intersection'](_0x42a76a[_0xac08('0x3d')],qs[_0xac08('0x43')](_0x192f69[_0xac08('0x3f')][_0xac08('0x43')]));_0x3a6b25[_0xac08('0x42')]=_0x3a6b25[_0xac08('0x42')][_0xac08('0x44')]?_0x3a6b25[_0xac08('0x42')]:_0x42a76a[_0xac08('0x3d')];_0x3a6b25[_0xac08('0x6d')]=qs[_0xac08('0x47')](_0x192f69[_0xac08('0x3f')][_0xac08('0x47')]);_0x3a6b25[_0xac08('0x48')]=qs[_0xac08('0x40')](_['pick'](_0x192f69[_0xac08('0x3f')],_0x42a76a['filters']));if(_0x192f69[_0xac08('0x3f')][_0xac08('0x4a')]){_0x3a6b25[_0xac08('0x48')]=_['merge'](_0x3a6b25[_0xac08('0x48')],{'$or':_[_0xac08('0x39')](_0x3a6b25[_0xac08('0x42')],function(_0x5667b5){var _0x6b1525={};_0x6b1525[_0x5667b5]={'$like':'%'+_0x192f69[_0xac08('0x3f')][_0xac08('0x4a')]+'%'};return _0x6b1525;})});}_0x3a6b25=_[_0xac08('0x4b')]({},_0x3a6b25,_0x192f69[_0xac08('0x4d')]);return _0x1b586b['getTeams'](_0x3a6b25);}})[_0xac08('0x31')](function(_0x3e0cff){if(_0x3e0cff){_0x15555a=_0x3e0cff[_0xac08('0x44')];if(!_0x192f69[_0xac08('0x3f')][_0xac08('0x45')]('nolimit')){_0x3a6b25[_0xac08('0x29')]=qs[_0xac08('0x29')](_0x192f69[_0xac08('0x3f')][_0xac08('0x29')]);_0x3a6b25[_0xac08('0x27')]=qs['offset'](_0x192f69[_0xac08('0x3f')]['offset']);}return _0x1b586b[_0xac08('0x6e')](_0x3a6b25);}})['then'](function(_0x321804){if(_0x321804){return _0x321804?{'count':_0x15555a,'rows':_0x321804}:null;}})['then'](respondWithResult(_0x21397b,null))[_0xac08('0x51')](handleError(_0x21397b,null));};exports[_0xac08('0x6f')]=function(_0x1db880,_0xb1811f,_0x1a4c9c){var _0x28e017=_0x1db880[_0xac08('0x58')]['ids'];return db[_0xac08('0x6c')][_0xac08('0x63')]({'where':{'id':_0x28e017},'attributes':['id'],'include':[{'model':db['User'],'as':_0xac08('0x70'),'attributes':['id','name',_0xac08('0x71'),_0xac08('0x72'),'interface'],'raw':!![]}]})[_0xac08('0x31')](function(_0x122d2e){if(_0x122d2e){var _0x565072=_[_0xac08('0x73')](_0x122d2e,function(_0x5237e6){var _0x3d15de=_0x5237e6['get']({'plain':!![]});return _0x3d15de[_0xac08('0x70')];});return db[_0xac08('0x4e')][_0xac08('0x56')]({'where':{'id':_0x1db880['params']['id']}})[_0xac08('0x31')](function(_0x30e153){return db[_0xac08('0x74')][_0xac08('0x75')](function(_0xb69752){return _0x30e153[_0xac08('0x6f')](_0x28e017,{'transaction':_0xb69752})[_0xac08('0x31')](function(){return BPromise[_0xac08('0x76')](_0x565072,function(_0x1e4d6c){return db[_0xac08('0x61')][_0xac08('0x77')]({'where':{'UserId':_0x1e4d6c['id'],'SmsQueueId':_0x1db880[_0xac08('0x53')]['id']},'transaction':_0xb69752});});})[_0xac08('0x31')](function(){_0x565072['forEach'](function(_0x2eeb96){socket[_0xac08('0x78')]('userSmsQueue:save',{'UserId':_0x2eeb96['id'],'SmsQueueId':_0x30e153['id']});});});});});}})['then'](respondWithStatusCode(_0xb1811f,null))[_0xac08('0x51')](handleError(_0xb1811f,null));};exports[_0xac08('0x79')]=function(_0x1baeff,_0x23d9d3,_0x250914){return db['Team'][_0xac08('0x63')]({'where':{'id':_0x1baeff[_0xac08('0x3f')][_0xac08('0x7a')]},'attributes':['id'],'include':[{'model':db[_0xac08('0x64')],'as':_0xac08('0x70'),'attributes':['id'],'raw':!![]}]})['then'](handleEntityNotFound(_0x23d9d3,null))['then'](function(_0x3109f8){var _0x997a1f=_[_0xac08('0x39')](_0x3109f8,'id');var _0x3cac41=[];var _0x3e0632=[];var _0x2ef634=squel[_0xac08('0x7b')]();_0x2ef634[_0xac08('0x7c')](_0xac08('0x7d'))[_0xac08('0x7e')](_0xac08('0x7f'),'tq')['join'](_0xac08('0x80'),'ut',_0xac08('0x81'))[_0xac08('0x48')](_0xac08('0x82'),_0x1baeff[_0xac08('0x53')]['id']);for(var _0x3d3f3f=0x0;_0x3d3f3f<_0x3109f8[_0xac08('0x44')];_0x3d3f3f+=0x1){let _0x3e9ee8=_0x3109f8[_0x3d3f3f];for(var _0x32bdc9=0x0;_0x32bdc9<_0x3e9ee8[_0xac08('0x70')]['length'];_0x32bdc9+=0x1){let _0x2e4e13=_0x3e9ee8[_0xac08('0x70')][_0x32bdc9];var _0x1cd974=_0x2ef634[_0xac08('0x83')]();_0x1cd974[_0xac08('0x48')](_0xac08('0x84'),_0x2e4e13['id']);_0x3e0632[_0xac08('0x85')](db[_0xac08('0x74')][_0xac08('0x3f')](_0x1cd974[_0xac08('0x86')](),{'type':db['sequelize'][_0xac08('0x87')]['SELECT']})[_0xac08('0x31')](function(_0x337b20){if(_0x337b20[_0xac08('0x44')]===0x1){return _0x2e4e13['id'];}else{var _0x5cc236=_['every'](_[_0xac08('0x39')](_0x337b20,_0xac08('0x88')),function(_0x499b2b){return _[_0xac08('0x89')](_0x997a1f,_0x499b2b);});if(_0x5cc236){return _0x2e4e13['id'];}}}));}}return BPromise['all'](_0x3e0632)[_0xac08('0x31')](function(_0x461da4){_0x3cac41=_(_0x3cac41)[_0xac08('0x8a')](_0x461da4)[_0xac08('0x8b')]()[_0xac08('0x8c')]();return db['SmsQueue']['find']({'where':{'id':_0x1baeff[_0xac08('0x53')]['id']}})[_0xac08('0x31')](function(_0x495a86){return db[_0xac08('0x74')][_0xac08('0x75')](function(_0xcfec4a){return _0x495a86[_0xac08('0x79')](_0x1baeff[_0xac08('0x3f')][_0xac08('0x7a')],{'transaction':_0xcfec4a})['then'](function(){if(!_[_0xac08('0x8d')](_0x3cac41)){return _0x495a86[_0xac08('0x8e')](_0x3cac41,{'transaction':_0xcfec4a});}})[_0xac08('0x31')](function(){_0x3cac41[_0xac08('0x8f')](function(_0x213767){socket[_0xac08('0x78')](_0xac08('0x90'),{'UserId':_0x213767,'SmsQueueId':_0x495a86['id']});});});});});});})[_0xac08('0x31')](respondWithStatusCode(_0x23d9d3,null))[_0xac08('0x51')](handleError(_0x23d9d3,null));};exports[_0xac08('0x91')]=function(_0x21a116,_0x53c85a,_0x468b2a){return db[_0xac08('0x4e')][_0xac08('0x56')]({'where':{'id':_0x21a116['params']['id']}})[_0xac08('0x31')](handleEntityNotFound(_0x53c85a,null))[_0xac08('0x31')](function(_0x12daa4){if(_0x12daa4){return _0x12daa4['addAgents'](_0x21a116[_0xac08('0x58')]['ids'],_[_0xac08('0x92')](_0x21a116[_0xac08('0x58')],[_0xac08('0x7a'),'id'])||{})[_0xac08('0x93')](function(_0x117156){for(var _0x148f08=0x0;_0x148f08<_0x21a116['body'][_0xac08('0x7a')]['length'];_0x148f08+=0x1){socket[_0xac08('0x78')](_0xac08('0x94'),{'UserId':Number(_0x21a116[_0xac08('0x58')][_0xac08('0x7a')][_0x148f08]),'SmsQueueId':Number(_0x21a116[_0xac08('0x53')]['id'])});}return _0x117156;});}})[_0xac08('0x31')](respondWithResult(_0x53c85a,null))[_0xac08('0x51')](handleError(_0x53c85a,null));};exports[_0xac08('0x8e')]=function(_0x74336,_0x2c17ae,_0x346cdb){return db[_0xac08('0x4e')]['find']({'where':{'id':_0x74336[_0xac08('0x53')]['id']}})[_0xac08('0x31')](handleEntityNotFound(_0x2c17ae,null))[_0xac08('0x31')](function(_0x11c187){if(_0x11c187){return _0x11c187['removeAgents'](_0x74336[_0xac08('0x3f')][_0xac08('0x7a')])[_0xac08('0x31')](function(){if(_[_0xac08('0x95')](_0x74336[_0xac08('0x3f')]['ids'])){for(var _0x4cb171=0x0;_0x4cb171<_0x74336['query'][_0xac08('0x7a')]['length'];_0x4cb171+=0x1){socket['emit']('userSmsQueue:remove',{'UserId':Number(_0x74336[_0xac08('0x3f')][_0xac08('0x7a')][_0x4cb171]),'SmsQueueId':Number(_0x74336[_0xac08('0x53')]['id'])});}}else{socket['emit'](_0xac08('0x90'),{'UserId':Number(_0x74336['query']['ids']),'SmsQueueId':Number(_0x74336[_0xac08('0x53')]['id'])});}});}})[_0xac08('0x31')](respondWithStatusCode(_0x2c17ae,null))[_0xac08('0x51')](handleError(_0x2c17ae,null));};exports[_0xac08('0x96')]=function(_0x4e3ee6,_0x51052e,_0x4c3ad1){var _0x461eef={};var _0x34c66d={};var _0x47f8ad;var _0x3303a6;return db['SmsQueue']['findOne']({'where':{'id':_0x4e3ee6['params']['id']}})[_0xac08('0x31')](handleEntityNotFound(_0x51052e,null))['then'](function(_0x3a5f72){if(_0x3a5f72){_0x47f8ad=_0x3a5f72;_0x34c66d[_0xac08('0x3d')]=_[_0xac08('0x3e')](db[_0xac08('0x64')][_0xac08('0x54')]);_0x34c66d[_0xac08('0x3f')]=_[_0xac08('0x3e')](_0x4e3ee6[_0xac08('0x3f')]);_0x34c66d[_0xac08('0x40')]=_[_0xac08('0x41')](_0x34c66d[_0xac08('0x3d')],_0x34c66d[_0xac08('0x3f')]);_0x461eef[_0xac08('0x42')]=_[_0xac08('0x41')](_0x34c66d['model'],qs[_0xac08('0x43')](_0x4e3ee6[_0xac08('0x3f')][_0xac08('0x43')]));_0x461eef[_0xac08('0x42')]=_0x461eef['attributes'][_0xac08('0x44')]?_0x461eef[_0xac08('0x42')]:_0x34c66d['model'];_0x461eef[_0xac08('0x6d')]=qs[_0xac08('0x47')](_0x4e3ee6[_0xac08('0x3f')][_0xac08('0x47')]);_0x461eef[_0xac08('0x48')]=qs[_0xac08('0x40')](_[_0xac08('0x49')](_0x4e3ee6['query'],_0x34c66d[_0xac08('0x40')]));if(_0x4e3ee6[_0xac08('0x3f')]['filter']){_0x461eef[_0xac08('0x48')]=_[_0xac08('0x4b')](_0x461eef['where'],{'$or':_[_0xac08('0x39')](_0x461eef[_0xac08('0x42')],function(_0x5e95aa){var _0x5e7fe3={};_0x5e7fe3[_0x5e95aa]={'$like':'%'+_0x4e3ee6[_0xac08('0x3f')]['filter']+'%'};return _0x5e7fe3;})});}_0x461eef=_['merge']({},_0x461eef,_0x4e3ee6[_0xac08('0x4d')]);return _0x47f8ad['getAgents'](_0x461eef);}})[_0xac08('0x31')](function(_0x352ee4){if(_0x352ee4){_0x3303a6=_0x352ee4[_0xac08('0x44')];if(!_0x4e3ee6[_0xac08('0x3f')][_0xac08('0x45')](_0xac08('0x46'))){_0x461eef['limit']=qs[_0xac08('0x29')](_0x4e3ee6[_0xac08('0x3f')][_0xac08('0x29')]);_0x461eef[_0xac08('0x27')]=qs['offset'](_0x4e3ee6[_0xac08('0x3f')][_0xac08('0x27')]);}return _0x47f8ad[_0xac08('0x96')](_0x461eef);}})[_0xac08('0x31')](function(_0x569109){if(_0x569109){return _0x569109?{'count':_0x3303a6,'rows':_0x569109}:null;}})['then'](respondWithResult(_0x51052e,null))['catch'](handleError(_0x51052e,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5308=['update','remove','hasOwnProperty','hook','events','../../mysqldb','SmsQueue'];(function(_0x2a4147,_0x231ec8){var _0x2f3864=function(_0x1726a2){while(--_0x1726a2){_0x2a4147['push'](_0x2a4147['shift']());}};_0x2f3864(++_0x231ec8);}(_0x5308,0x11c));var _0x8530=function(_0x3d2e4b,_0x1f6653){_0x3d2e4b=_0x3d2e4b-0x0;var _0x509e78=_0x5308[_0x3d2e4b];return _0x509e78;};'use strict';var EventEmitter=require(_0x8530('0x0'));var SmsQueue=require(_0x8530('0x1'))['db'][_0x8530('0x2')];var SmsQueueEvents=new EventEmitter();SmsQueueEvents['setMaxListeners'](0x0);var events={'afterCreate':'save','afterUpdate':_0x8530('0x3'),'afterDestroy':_0x8530('0x4')};function emitEvent(_0x3bfd90){return function(_0x2bfe3d,_0x28fa7a,_0x28a744){SmsQueueEvents['emit'](_0x3bfd90+':'+_0x2bfe3d['id'],_0x2bfe3d);SmsQueueEvents['emit'](_0x3bfd90,_0x2bfe3d);_0x28a744(null);};}for(var e in events){if(events[_0x8530('0x5')](e)){var event=events[e];SmsQueue[_0x8530('0x6')](e,emitEvent(event));}}module['exports']=SmsQueueEvents;
\ No newline at end of file
+var _0xe8f2=['remove','hasOwnProperty','hook','exports','../../mysqldb','setMaxListeners','save','update'];(function(_0x562071,_0x57a342){var _0x45db81=function(_0x3be628){while(--_0x3be628){_0x562071['push'](_0x562071['shift']());}};_0x45db81(++_0x57a342);}(_0xe8f2,0x74));var _0x2e8f=function(_0x2998db,_0x3424f1){_0x2998db=_0x2998db-0x0;var _0x115fea=_0xe8f2[_0x2998db];return _0x115fea;};'use strict';var EventEmitter=require('events');var SmsQueue=require(_0x2e8f('0x0'))['db']['SmsQueue'];var SmsQueueEvents=new EventEmitter();SmsQueueEvents[_0x2e8f('0x1')](0x0);var events={'afterCreate':_0x2e8f('0x2'),'afterUpdate':_0x2e8f('0x3'),'afterDestroy':_0x2e8f('0x4')};function emitEvent(_0x5c2713){return function(_0x559941,_0x124fc3,_0x5f09e5){SmsQueueEvents['emit'](_0x5c2713+':'+_0x559941['id'],_0x559941);SmsQueueEvents['emit'](_0x5c2713,_0x559941);_0x5f09e5(null);};}for(var e in events){if(events[_0x2e8f('0x5')](e)){var event=events[e];SmsQueue[_0x2e8f('0x6')](e,emitEvent(event));}}module[_0x2e8f('0x7')]=SmsQueueEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x62b2=['request-promise','rimraf','../../config/environment','exports','sms_queues','util','../../config/logger','api','moment','bluebird'];(function(_0x24724b,_0x134d50){var _0x481080=function(_0x42e4ba){while(--_0x42e4ba){_0x24724b['push'](_0x24724b['shift']());}};_0x481080(++_0x134d50);}(_0x62b2,0x177));var _0x262b=function(_0x39c16e,_0x45bbb5){_0x39c16e=_0x39c16e-0x0;var _0x434b2c=_0x62b2[_0x39c16e];return _0x434b2c;};'use strict';var _=require('lodash');var util=require(_0x262b('0x0'));var logger=require(_0x262b('0x1'))(_0x262b('0x2'));var moment=require(_0x262b('0x3'));var BPromise=require(_0x262b('0x4'));var rp=require(_0x262b('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x262b('0x6'));var config=require(_0x262b('0x7'));var attributes=require('./smsQueue.attributes');module[_0x262b('0x8')]=function(_0x16f0c5,_0x263ab2){return _0x16f0c5['define']('SmsQueue',attributes,{'tableName':_0x262b('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x0fa2=['sms_queues','lodash','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./smsQueue.attributes','define'];(function(_0x421325,_0x34d9e9){var _0x222358=function(_0x1d71f9){while(--_0x1d71f9){_0x421325['push'](_0x421325['shift']());}};_0x222358(++_0x34d9e9);}(_0x0fa2,0xcd));var _0x20fa=function(_0x5d5403,_0x15e24a){_0x5d5403=_0x5d5403-0x0;var _0x488b8f=_0x0fa2[_0x5d5403];return _0x488b8f;};'use strict';var _=require(_0x20fa('0x0'));var util=require('util');var logger=require(_0x20fa('0x1'))(_0x20fa('0x2'));var moment=require(_0x20fa('0x3'));var BPromise=require(_0x20fa('0x4'));var rp=require(_0x20fa('0x5'));var fs=require('fs');var path=require(_0x20fa('0x6'));var rimraf=require(_0x20fa('0x7'));var config=require(_0x20fa('0x8'));var attributes=require(_0x20fa('0x9'));module['exports']=function(_0x1f10ff,_0x3f2605){return _0x1f10ff[_0x20fa('0xa')]('SmsQueue',attributes,{'tableName':_0x20fa('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdd61=['request','info','SmsQueue,\x20%s,\x20%s','request\x20sent','debug','SmsQueue,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','GetSmsQueue','SmsQueue','findAll','options','raw','where','attributes','map','include','model','ShowSmsQueue','find','then','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','http','defaults','redis','socket.io-emitter','./smsQueue.socket','register'];(function(_0x32d54b,_0x118c48){var _0x1a8382=function(_0x59139d){while(--_0x59139d){_0x32d54b['push'](_0x32d54b['shift']());}};_0x1a8382(++_0x118c48);}(_0xdd61,0x6a));var _0x1dd6=function(_0x38ced4,_0x24263f){_0x38ced4=_0x38ced4-0x0;var _0x547c07=_0xdd61[_0x38ced4];return _0x547c07;};'use strict';var _=require(_0x1dd6('0x0'));var util=require(_0x1dd6('0x1'));var moment=require(_0x1dd6('0x2'));var BPromise=require(_0x1dd6('0x3'));var rs=require(_0x1dd6('0x4'));var fs=require('fs');var Redis=require(_0x1dd6('0x5'));var db=require(_0x1dd6('0x6'))['db'];var utils=require(_0x1dd6('0x7'));var logger=require(_0x1dd6('0x8'))(_0x1dd6('0x9'));var config=require('../../config/environment');var jayson=require(_0x1dd6('0xa'));var client=jayson['client'][_0x1dd6('0xb')]({'port':0x232a});config['redis']=_[_0x1dd6('0xc')](config[_0x1dd6('0xd')],{'host':'localhost','port':0x18eb});var socket=require(_0x1dd6('0xe'))(new Redis(config[_0x1dd6('0xd')]));require(_0x1dd6('0xf'))[_0x1dd6('0x10')](socket);function respondWithRpcPromise(_0x15514c,_0x1c85d0,_0x1073eb){return new BPromise(function(_0x5810dc,_0x16c3c6){return client[_0x1dd6('0x11')](_0x15514c,_0x1073eb)['then'](function(_0x860b22){logger[_0x1dd6('0x12')](_0x1dd6('0x13'),_0x1c85d0,_0x1dd6('0x14'));logger[_0x1dd6('0x15')](_0x1dd6('0x16'),_0x1c85d0,_0x1dd6('0x14'),JSON[_0x1dd6('0x17')](_0x860b22));if(_0x860b22[_0x1dd6('0x18')]){if(_0x860b22['error']['code']===0x1f4){logger[_0x1dd6('0x18')]('SmsQueue,\x20%s,\x20%s',_0x1c85d0,_0x860b22[_0x1dd6('0x18')]['message']);return _0x16c3c6(_0x860b22[_0x1dd6('0x18')][_0x1dd6('0x19')]);}logger['error']('SmsQueue,\x20%s,\x20%s',_0x1c85d0,_0x860b22[_0x1dd6('0x18')]['message']);return _0x5810dc(_0x860b22[_0x1dd6('0x18')][_0x1dd6('0x19')]);}else{logger[_0x1dd6('0x12')](_0x1dd6('0x13'),_0x1c85d0,'request\x20sent');_0x5810dc(_0x860b22[_0x1dd6('0x1a')][_0x1dd6('0x19')]);}})[_0x1dd6('0x1b')](function(_0x57a726){logger['error'](_0x1dd6('0x13'),_0x1c85d0,_0x57a726);_0x16c3c6(_0x57a726);});});}exports[_0x1dd6('0x1c')]=function(_0xb3ff04){var _0x1aecad=this;return new Promise(function(_0x20ac5c,_0x1f63f1){return db[_0x1dd6('0x1d')][_0x1dd6('0x1e')]({'raw':_0xb3ff04[_0x1dd6('0x1f')]?_0xb3ff04[_0x1dd6('0x1f')][_0x1dd6('0x20')]===undefined?!![]:![]:!![],'where':_0xb3ff04[_0x1dd6('0x1f')]?_0xb3ff04['options'][_0x1dd6('0x21')]||null:null,'attributes':_0xb3ff04[_0x1dd6('0x1f')]?_0xb3ff04[_0x1dd6('0x1f')][_0x1dd6('0x22')]||null:null,'limit':_0xb3ff04[_0x1dd6('0x1f')]?_0xb3ff04[_0x1dd6('0x1f')]['limit']||null:null,'include':_0xb3ff04[_0x1dd6('0x1f')]?_0xb3ff04[_0x1dd6('0x1f')]['include']?_[_0x1dd6('0x23')](_0xb3ff04['options'][_0x1dd6('0x24')],function(_0x23abf8){return{'model':db[_0x23abf8[_0x1dd6('0x25')]],'as':_0x23abf8['as'],'attributes':_0x23abf8[_0x1dd6('0x22')],'include':_0x23abf8[_0x1dd6('0x24')]?_[_0x1dd6('0x23')](_0x23abf8[_0x1dd6('0x24')],function(_0x518589){return{'model':db[_0x518589[_0x1dd6('0x25')]],'as':_0x518589['as'],'attributes':_0x518589[_0x1dd6('0x22')],'include':_0x518589[_0x1dd6('0x24')]?_[_0x1dd6('0x23')](_0x518589[_0x1dd6('0x24')],function(_0x1f129b){return{'model':db[_0x1f129b[_0x1dd6('0x25')]],'as':_0x1f129b['as'],'attributes':_0x1f129b[_0x1dd6('0x22')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x286ad2){logger[_0x1dd6('0x12')](_0x1dd6('0x1c'),_0xb3ff04);logger[_0x1dd6('0x15')](_0x1dd6('0x1c'),_0xb3ff04,JSON['stringify'](_0x286ad2));_0x20ac5c(_0x286ad2);})[_0x1dd6('0x1b')](function(_0x3ef748){logger[_0x1dd6('0x18')](_0x1dd6('0x1c'),_0x3ef748['message'],_0xb3ff04);_0x1f63f1(_0x1aecad[_0x1dd6('0x18')](0x1f4,_0x3ef748[_0x1dd6('0x19')]));});});};exports[_0x1dd6('0x26')]=function(_0x3b1256){var _0x1de917=this;return new Promise(function(_0xd2d951,_0x47b300){return db['SmsQueue'][_0x1dd6('0x27')]({'raw':_0x3b1256['options']?_0x3b1256[_0x1dd6('0x1f')][_0x1dd6('0x20')]===undefined?!![]:![]:!![],'where':_0x3b1256[_0x1dd6('0x1f')]?_0x3b1256['options']['where']||null:null,'attributes':_0x3b1256[_0x1dd6('0x1f')]?_0x3b1256[_0x1dd6('0x1f')]['attributes']||null:null,'include':_0x3b1256[_0x1dd6('0x1f')]?_0x3b1256[_0x1dd6('0x1f')][_0x1dd6('0x24')]?_[_0x1dd6('0x23')](_0x3b1256[_0x1dd6('0x1f')][_0x1dd6('0x24')],function(_0x39af52){return{'model':db[_0x39af52[_0x1dd6('0x25')]],'as':_0x39af52['as'],'attributes':_0x39af52['attributes'],'include':_0x39af52[_0x1dd6('0x24')]?_[_0x1dd6('0x23')](_0x39af52[_0x1dd6('0x24')],function(_0x25b1a0){return{'model':db[_0x25b1a0[_0x1dd6('0x25')]],'as':_0x25b1a0['as'],'attributes':_0x25b1a0['attributes'],'include':_0x25b1a0[_0x1dd6('0x24')]?_[_0x1dd6('0x23')](_0x25b1a0[_0x1dd6('0x24')],function(_0x22855b){return{'model':db[_0x22855b[_0x1dd6('0x25')]],'as':_0x22855b['as'],'attributes':_0x22855b[_0x1dd6('0x22')]};}):[]};}):[]};}):[]:[]})[_0x1dd6('0x28')](function(_0x5544b4){logger[_0x1dd6('0x12')](_0x1dd6('0x26'),_0x3b1256);logger[_0x1dd6('0x15')](_0x1dd6('0x26'),_0x3b1256,JSON[_0x1dd6('0x17')](_0x5544b4));_0xd2d951(_0x5544b4);})['catch'](function(_0x1e4a69){logger[_0x1dd6('0x18')](_0x1dd6('0x26'),_0x1e4a69[_0x1dd6('0x19')],_0x3b1256);_0x47b300(_0x1de917[_0x1dd6('0x18')](0x1f4,_0x1e4a69[_0x1dd6('0x19')]));});});};
\ No newline at end of file
+var _0xbbc4=['attributes','limit','include','map','model','info','catch','find','raw','ShowSmsQueue','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','rpc','jayson/promise','client','http','redis','defaults','localhost','./smsQueue.socket','register','then','SmsQueue,\x20%s,\x20%s','request\x20sent','debug','stringify','error','message','result','GetSmsQueue','SmsQueue','options','where'];(function(_0x43469e,_0x4e69d6){var _0xcefd2a=function(_0x8ded6f){while(--_0x8ded6f){_0x43469e['push'](_0x43469e['shift']());}};_0xcefd2a(++_0x4e69d6);}(_0xbbc4,0x17c));var _0x4bbc=function(_0x8591d0,_0x1bf0eb){_0x8591d0=_0x8591d0-0x0;var _0x10d880=_0xbbc4[_0x8591d0];return _0x10d880;};'use strict';var _=require(_0x4bbc('0x0'));var util=require('util');var moment=require(_0x4bbc('0x1'));var BPromise=require(_0x4bbc('0x2'));var rs=require(_0x4bbc('0x3'));var fs=require('fs');var Redis=require(_0x4bbc('0x4'));var db=require(_0x4bbc('0x5'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0x4bbc('0x6'));var config=require('../../config/environment');var jayson=require(_0x4bbc('0x7'));var client=jayson[_0x4bbc('0x8')][_0x4bbc('0x9')]({'port':0x232a});config[_0x4bbc('0xa')]=_[_0x4bbc('0xb')](config[_0x4bbc('0xa')],{'host':_0x4bbc('0xc'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x4bbc('0xa')]));require(_0x4bbc('0xd'))[_0x4bbc('0xe')](socket);function respondWithRpcPromise(_0x3a43c0,_0x1af1f0,_0x1db569){return new BPromise(function(_0x2f4e66,_0x226550){return client['request'](_0x3a43c0,_0x1db569)[_0x4bbc('0xf')](function(_0x42064c){logger['info'](_0x4bbc('0x10'),_0x1af1f0,_0x4bbc('0x11'));logger[_0x4bbc('0x12')]('SmsQueue,\x20%s,\x20%s,\x20%s',_0x1af1f0,_0x4bbc('0x11'),JSON[_0x4bbc('0x13')](_0x42064c));if(_0x42064c[_0x4bbc('0x14')]){if(_0x42064c['error']['code']===0x1f4){logger[_0x4bbc('0x14')](_0x4bbc('0x10'),_0x1af1f0,_0x42064c[_0x4bbc('0x14')][_0x4bbc('0x15')]);return _0x226550(_0x42064c[_0x4bbc('0x14')][_0x4bbc('0x15')]);}logger[_0x4bbc('0x14')]('SmsQueue,\x20%s,\x20%s',_0x1af1f0,_0x42064c[_0x4bbc('0x14')][_0x4bbc('0x15')]);return _0x2f4e66(_0x42064c[_0x4bbc('0x14')][_0x4bbc('0x15')]);}else{logger['info']('SmsQueue,\x20%s,\x20%s',_0x1af1f0,'request\x20sent');_0x2f4e66(_0x42064c[_0x4bbc('0x16')][_0x4bbc('0x15')]);}})['catch'](function(_0xa2de16){logger[_0x4bbc('0x14')](_0x4bbc('0x10'),_0x1af1f0,_0xa2de16);_0x226550(_0xa2de16);});});}exports[_0x4bbc('0x17')]=function(_0x12424e){var _0x234528=this;return new Promise(function(_0x3ca8fa,_0x3c7521){return db[_0x4bbc('0x18')]['findAll']({'raw':_0x12424e[_0x4bbc('0x19')]?_0x12424e[_0x4bbc('0x19')]['raw']===undefined?!![]:![]:!![],'where':_0x12424e[_0x4bbc('0x19')]?_0x12424e['options'][_0x4bbc('0x1a')]||null:null,'attributes':_0x12424e[_0x4bbc('0x19')]?_0x12424e[_0x4bbc('0x19')][_0x4bbc('0x1b')]||null:null,'limit':_0x12424e[_0x4bbc('0x19')]?_0x12424e[_0x4bbc('0x19')][_0x4bbc('0x1c')]||null:null,'include':_0x12424e['options']?_0x12424e[_0x4bbc('0x19')][_0x4bbc('0x1d')]?_[_0x4bbc('0x1e')](_0x12424e[_0x4bbc('0x19')]['include'],function(_0x254896){return{'model':db[_0x254896['model']],'as':_0x254896['as'],'attributes':_0x254896['attributes'],'include':_0x254896[_0x4bbc('0x1d')]?_['map'](_0x254896[_0x4bbc('0x1d')],function(_0x3d4be3){return{'model':db[_0x3d4be3[_0x4bbc('0x1f')]],'as':_0x3d4be3['as'],'attributes':_0x3d4be3[_0x4bbc('0x1b')],'include':_0x3d4be3[_0x4bbc('0x1d')]?_[_0x4bbc('0x1e')](_0x3d4be3[_0x4bbc('0x1d')],function(_0x4e1e6f){return{'model':db[_0x4e1e6f[_0x4bbc('0x1f')]],'as':_0x4e1e6f['as'],'attributes':_0x4e1e6f[_0x4bbc('0x1b')]};}):[]};}):[]};}):[]:[]})[_0x4bbc('0xf')](function(_0x4d9901){logger[_0x4bbc('0x20')]('GetSmsQueue',_0x12424e);logger[_0x4bbc('0x12')](_0x4bbc('0x17'),_0x12424e,JSON[_0x4bbc('0x13')](_0x4d9901));_0x3ca8fa(_0x4d9901);})[_0x4bbc('0x21')](function(_0x2f7a44){logger['error'](_0x4bbc('0x17'),_0x2f7a44[_0x4bbc('0x15')],_0x12424e);_0x3c7521(_0x234528[_0x4bbc('0x14')](0x1f4,_0x2f7a44['message']));});});};exports['ShowSmsQueue']=function(_0xae4403){var _0x525256=this;return new Promise(function(_0x3acffb,_0x3084b4){return db['SmsQueue'][_0x4bbc('0x22')]({'raw':_0xae4403['options']?_0xae4403[_0x4bbc('0x19')][_0x4bbc('0x23')]===undefined?!![]:![]:!![],'where':_0xae4403[_0x4bbc('0x19')]?_0xae4403[_0x4bbc('0x19')][_0x4bbc('0x1a')]||null:null,'attributes':_0xae4403[_0x4bbc('0x19')]?_0xae4403[_0x4bbc('0x19')]['attributes']||null:null,'include':_0xae4403[_0x4bbc('0x19')]?_0xae4403[_0x4bbc('0x19')][_0x4bbc('0x1d')]?_['map'](_0xae4403[_0x4bbc('0x19')]['include'],function(_0x2833f5){return{'model':db[_0x2833f5['model']],'as':_0x2833f5['as'],'attributes':_0x2833f5[_0x4bbc('0x1b')],'include':_0x2833f5[_0x4bbc('0x1d')]?_[_0x4bbc('0x1e')](_0x2833f5[_0x4bbc('0x1d')],function(_0x5b2280){return{'model':db[_0x5b2280[_0x4bbc('0x1f')]],'as':_0x5b2280['as'],'attributes':_0x5b2280[_0x4bbc('0x1b')],'include':_0x5b2280[_0x4bbc('0x1d')]?_[_0x4bbc('0x1e')](_0x5b2280[_0x4bbc('0x1d')],function(_0x1d61d8){return{'model':db[_0x1d61d8[_0x4bbc('0x1f')]],'as':_0x1d61d8['as'],'attributes':_0x1d61d8[_0x4bbc('0x1b')]};}):[]};}):[]};}):[]:[]})[_0x4bbc('0xf')](function(_0x2d5de9){logger[_0x4bbc('0x20')](_0x4bbc('0x24'),_0xae4403);logger['debug']('ShowSmsQueue',_0xae4403,JSON[_0x4bbc('0x13')](_0x2d5de9));_0x3acffb(_0x2d5de9);})['catch'](function(_0x240157){logger[_0x4bbc('0x14')](_0x4bbc('0x24'),_0x240157['message'],_0xae4403);_0x3084b4(_0x525256['error'](0x1f4,_0x240157['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x173b=['remove','emit','removeListener','register','length'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x173b,0x1a4));var _0xb173=function(_0x14d3ac,_0x42822f){_0x14d3ac=_0x14d3ac-0x0;var _0x25a71f=_0x173b[_0x14d3ac];return _0x25a71f;};'use strict';var SmsQueueEvents=require('./smsQueue.events');var events=['save',_0xb173('0x0'),'update'];function createListener(_0x172731,_0x1dfbc1){return function(_0x2a24de){_0x1dfbc1[_0xb173('0x1')](_0x172731,_0x2a24de);};}function removeListener(_0x3a2c70,_0x61fbae){return function(){SmsQueueEvents[_0xb173('0x2')](_0x3a2c70,_0x61fbae);};}exports[_0xb173('0x3')]=function(_0x4cba12){for(var _0x4673ee=0x0,_0x16e72c=events[_0xb173('0x4')];_0x4673ee<_0x16e72c;_0x4673ee++){var _0x242caf=events[_0x4673ee];var _0x2e4cc5=createListener('smsQueue:'+_0x242caf,_0x4cba12);SmsQueueEvents['on'](_0x242caf,_0x2e4cc5);}};
\ No newline at end of file
+var _0xa1af=['remove','update','emit','removeListener','smsQueue:','save'];(function(_0x1d96b1,_0x1062e9){var _0x12ddc6=function(_0x3cefff){while(--_0x3cefff){_0x1d96b1['push'](_0x1d96b1['shift']());}};_0x12ddc6(++_0x1062e9);}(_0xa1af,0x155));var _0xfa1a=function(_0x54fa4,_0x1d08bc){_0x54fa4=_0x54fa4-0x0;var _0x224594=_0xa1af[_0x54fa4];return _0x224594;};'use strict';var SmsQueueEvents=require('./smsQueue.events');var events=[_0xfa1a('0x0'),_0xfa1a('0x1'),_0xfa1a('0x2')];function createListener(_0x1b6ca5,_0x3a2fe0){return function(_0x2003e9){_0x3a2fe0[_0xfa1a('0x3')](_0x1b6ca5,_0x2003e9);};}function removeListener(_0x2cb9ec,_0x313047){return function(){SmsQueueEvents[_0xfa1a('0x4')](_0x2cb9ec,_0x313047);};}exports['register']=function(_0x20a9ec){for(var _0x4952ff=0x0,_0x29ac10=events['length'];_0x4952ff<_0x29ac10;_0x4952ff++){var _0x49afec=events[_0x4952ff];var _0x3ba581=createListener(_0xfa1a('0x5')+_0x49afec,_0x20a9ec);SmsQueueEvents['on'](_0x49afec,_0x3ba581);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbd33=['show','post','create','update','delete','destroy','exports','multer','util','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./smsQueueReport.controller','isAuthenticated','index','get','/describe','describe','/:id'];(function(_0x4a2699,_0x49a5a2){var _0x209151=function(_0x39976d){while(--_0x39976d){_0x4a2699['push'](_0x4a2699['shift']());}};_0x209151(++_0x49a5a2);}(_0xbd33,0x13b));var _0x3bd3=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xbd33[_0x20a584];return _0x4b41a8;};'use strict';var multer=require(_0x3bd3('0x0'));var util=require(_0x3bd3('0x1'));var path=require(_0x3bd3('0x2'));var timeout=require(_0x3bd3('0x3'));var express=require('express');var router=express[_0x3bd3('0x4')]();var fs_extra=require(_0x3bd3('0x5'));var auth=require(_0x3bd3('0x6'));var interaction=require(_0x3bd3('0x7'));var config=require('../../config/environment');var controller=require(_0x3bd3('0x8'));router['get']('/',auth[_0x3bd3('0x9')](),controller[_0x3bd3('0xa')]);router[_0x3bd3('0xb')](_0x3bd3('0xc'),auth[_0x3bd3('0x9')](),controller[_0x3bd3('0xd')]);router[_0x3bd3('0xb')](_0x3bd3('0xe'),auth[_0x3bd3('0x9')](),controller[_0x3bd3('0xf')]);router[_0x3bd3('0x10')]('/',auth[_0x3bd3('0x9')](),controller[_0x3bd3('0x11')]);router['put'](_0x3bd3('0xe'),auth['isAuthenticated'](),controller[_0x3bd3('0x12')]);router[_0x3bd3('0x13')](_0x3bd3('0xe'),auth[_0x3bd3('0x9')](),controller[_0x3bd3('0x14')]);module[_0x3bd3('0x15')]=router;
\ No newline at end of file
+var _0x81d4=['post','create','put','update','delete','/:id','destroy','exports','util','path','express','Router','fs-extra','../../config/environment','./smsQueueReport.controller','get','index','/describe','isAuthenticated','describe','show'];(function(_0x411add,_0x1aed38){var _0x238242=function(_0x4a1cd5){while(--_0x4a1cd5){_0x411add['push'](_0x411add['shift']());}};_0x238242(++_0x1aed38);}(_0x81d4,0x197));var _0x481d=function(_0x3ae3f2,_0x2a5261){_0x3ae3f2=_0x3ae3f2-0x0;var _0x279653=_0x81d4[_0x3ae3f2];return _0x279653;};'use strict';var multer=require('multer');var util=require(_0x481d('0x0'));var path=require(_0x481d('0x1'));var timeout=require('connect-timeout');var express=require(_0x481d('0x2'));var router=express[_0x481d('0x3')]();var fs_extra=require(_0x481d('0x4'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x481d('0x5'));var controller=require(_0x481d('0x6'));router[_0x481d('0x7')]('/',auth['isAuthenticated'](),controller[_0x481d('0x8')]);router[_0x481d('0x7')](_0x481d('0x9'),auth[_0x481d('0xa')](),controller[_0x481d('0xb')]);router[_0x481d('0x7')]('/:id',auth[_0x481d('0xa')](),controller[_0x481d('0xc')]);router[_0x481d('0xd')]('/',auth['isAuthenticated'](),controller[_0x481d('0xe')]);router[_0x481d('0xf')]('/:id',auth[_0x481d('0xa')](),controller[_0x481d('0x10')]);router[_0x481d('0x11')](_0x481d('0x12'),auth[_0x481d('0xa')](),controller[_0x481d('0x13')]);module[_0x481d('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe51a=['exports','STRING','DATE','sequelize'];(function(_0x1e3985,_0x5f0e99){var _0x5e0bcc=function(_0x3df7a4){while(--_0x3df7a4){_0x1e3985['push'](_0x1e3985['shift']());}};_0x5e0bcc(++_0x5f0e99);}(_0xe51a,0x133));var _0xae51=function(_0x162cd,_0x210c05){_0x162cd=_0x162cd-0x0;var _0x48d080=_0xe51a[_0x162cd];return _0x48d080;};'use strict';var moment=require('moment');var Sequelize=require(_0xae51('0x0'));module[_0xae51('0x1')]={'uniqueid':{'type':Sequelize[_0xae51('0x2')],'allowNull':![]},'from':{'type':Sequelize[_0xae51('0x2')]},'joinAt':{'type':Sequelize[_0xae51('0x3')]},'leaveAt':{'type':Sequelize[_0xae51('0x3')]},'acceptAt':{'type':Sequelize[_0xae51('0x3')]},'exitAt':{'type':Sequelize[_0xae51('0x3')]},'reason':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0xba6c=['exports','STRING','DATE','moment'];(function(_0xf0f34e,_0x12320a){var _0x32ef8a=function(_0xd3666d){while(--_0xd3666d){_0xf0f34e['push'](_0xf0f34e['shift']());}};_0x32ef8a(++_0x12320a);}(_0xba6c,0x113));var _0xcba6=function(_0x4907de,_0x5bbdc6){_0x4907de=_0x4907de-0x0;var _0x482054=_0xba6c[_0x4907de];return _0x482054;};'use strict';var moment=require(_0xcba6('0x0'));var Sequelize=require('sequelize');module[_0xcba6('0x1')]={'uniqueid':{'type':Sequelize[_0xcba6('0x2')],'allowNull':![]},'from':{'type':Sequelize[_0xcba6('0x2')]},'joinAt':{'type':Sequelize[_0xcba6('0x3')]},'leaveAt':{'type':Sequelize[_0xcba6('0x3')]},'acceptAt':{'type':Sequelize[_0xcba6('0x3')]},'exitAt':{'type':Sequelize[_0xcba6('0x3')]},'reason':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa22a=['stack','name','rawAttributes','key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','map','type','VIRTUAL','options','includeAll','findAll','rows','catch','show','keys','SmsQueueReport','include','find','create','body','params','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','fs-extra','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','reject','save','update','then','destroy','error'];(function(_0x1bd323,_0x1c16ab){var _0x13097b=function(_0x4cc5de){while(--_0x4cc5de){_0x1bd323['push'](_0x1bd323['shift']());}};_0x13097b(++_0x1c16ab);}(_0xa22a,0x153));var _0xaa22=function(_0x5b644e,_0x2e5e07){_0x5b644e=_0x5b644e-0x0;var _0x49c6bf=_0xa22a[_0x5b644e];return _0x49c6bf;};'use strict';var emlformat=require(_0xaa22('0x0'));var rimraf=require(_0xaa22('0x1'));var zipdir=require(_0xaa22('0x2'));var jsonpatch=require(_0xaa22('0x3'));var rp=require(_0xaa22('0x4'));var moment=require('moment');var BPromise=require(_0xaa22('0x5'));var Mustache=require(_0xaa22('0x6'));var util=require(_0xaa22('0x7'));var path=require(_0xaa22('0x8'));var sox=require(_0xaa22('0x9'));var csv=require(_0xaa22('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xaa22('0xb'));var _=require('lodash');var squel=require(_0xaa22('0xc'));var crypto=require(_0xaa22('0xd'));var jsforce=require(_0xaa22('0xe'));var deskjs=require(_0xaa22('0xf'));var toCsv=require('to-csv');var querystring=require(_0xaa22('0x10'));var Papa=require('papaparse');var Redis=require(_0xaa22('0x11'));var authService=require(_0xaa22('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0xaa22('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xaa22('0x14'));var utils=require('../../config/utils');var config=require(_0xaa22('0x15'));var licenseUtil=require(_0xaa22('0x16'));var db=require(_0xaa22('0x17'))['db'];function respondWithStatusCode(_0x43e680,_0x8adc2f){_0x8adc2f=_0x8adc2f||0xcc;return function(_0x40dffc){if(_0x40dffc){return _0x43e680[_0xaa22('0x18')](_0x8adc2f);}return _0x43e680[_0xaa22('0x19')](_0x8adc2f)[_0xaa22('0x1a')]();};}function respondWithResult(_0x2c5e93,_0x503777){_0x503777=_0x503777||0xc8;return function(_0x27416a){if(_0x27416a){return _0x2c5e93[_0xaa22('0x19')](_0x503777)[_0xaa22('0x1b')](_0x27416a);}};}function respondWithFilteredResult(_0x290d87,_0x1c56d3){return function(_0x38e896){if(_0x38e896){var _0x4e126e=typeof _0x1c56d3['offset']===_0xaa22('0x1c')&&typeof _0x1c56d3[_0xaa22('0x1d')]===_0xaa22('0x1c');var _0x2781e5=_0x38e896[_0xaa22('0x1e')];var _0x239b8b=_0x4e126e?0x0:_0x1c56d3['offset'];var _0x523087=_0x4e126e?_0x38e896[_0xaa22('0x1e')]:_0x1c56d3[_0xaa22('0x1f')]+_0x1c56d3[_0xaa22('0x1d')];var _0x188b9f;if(_0x523087>=_0x2781e5){_0x523087=_0x2781e5;_0x188b9f=0xc8;}else{_0x188b9f=0xce;}_0x290d87[_0xaa22('0x19')](_0x188b9f);return _0x290d87[_0xaa22('0x20')](_0xaa22('0x21'),_0x239b8b+'-'+_0x523087+'/'+_0x2781e5)[_0xaa22('0x1b')](_0x38e896);}return null;};}function patchUpdates(_0x2e4bc4){return function(_0x8eb204){try{jsonpatch[_0xaa22('0x22')](_0x8eb204,_0x2e4bc4,!![]);}catch(_0x1a82aa){return BPromise[_0xaa22('0x23')](_0x1a82aa);}return _0x8eb204[_0xaa22('0x24')]();};}function saveUpdates(_0x313529,_0x4ee5b3){return function(_0x427381){if(_0x427381){return _0x427381[_0xaa22('0x25')](_0x313529)[_0xaa22('0x26')](function(_0x1bf290){return _0x1bf290;});}return null;};}function removeEntity(_0x343f81,_0x15f08e){return function(_0x839391){if(_0x839391){return _0x839391[_0xaa22('0x27')]()[_0xaa22('0x26')](function(){_0x343f81[_0xaa22('0x19')](0xcc)[_0xaa22('0x1a')]();});}};}function handleEntityNotFound(_0x14944f,_0x2b88b8){return function(_0xd3cac7){if(!_0xd3cac7){_0x14944f['sendStatus'](0x194);}return _0xd3cac7;};}function handleError(_0x3e8608,_0x4375ac){_0x4375ac=_0x4375ac||0x1f4;return function(_0x50a35e){logger[_0xaa22('0x28')](_0x50a35e[_0xaa22('0x29')]);if(_0x50a35e['name']){delete _0x50a35e[_0xaa22('0x2a')];}_0x3e8608[_0xaa22('0x19')](_0x4375ac)['send'](_0x50a35e);};}exports['index']=function(_0x97edb4,_0x5b5104){var _0x1ed9c6={},_0x4be89a={},_0x490160={'count':0x0,'rows':[]};var _0x3b6852=_['map'](db['SmsQueueReport'][_0xaa22('0x2b')],function(_0x5aeae1){return{'name':_0x5aeae1['fieldName'],'type':_0x5aeae1['type'][_0xaa22('0x2c')]};});_0x4be89a[_0xaa22('0x2d')]=_['map'](_0x3b6852,_0xaa22('0x2a'));_0x4be89a['query']=_['keys'](_0x97edb4[_0xaa22('0x2e')]);_0x4be89a[_0xaa22('0x2f')]=_[_0xaa22('0x30')](_0x4be89a[_0xaa22('0x2d')],_0x4be89a[_0xaa22('0x2e')]);_0x1ed9c6[_0xaa22('0x31')]=_['intersection'](_0x4be89a[_0xaa22('0x2d')],qs[_0xaa22('0x32')](_0x97edb4[_0xaa22('0x2e')][_0xaa22('0x32')]));_0x1ed9c6[_0xaa22('0x31')]=_0x1ed9c6[_0xaa22('0x31')][_0xaa22('0x33')]?_0x1ed9c6[_0xaa22('0x31')]:_0x4be89a['model'];if(!_0x97edb4['query'][_0xaa22('0x34')]('nolimit')){_0x1ed9c6[_0xaa22('0x1d')]=qs[_0xaa22('0x1d')](_0x97edb4[_0xaa22('0x2e')][_0xaa22('0x1d')]);_0x1ed9c6[_0xaa22('0x1f')]=qs[_0xaa22('0x1f')](_0x97edb4[_0xaa22('0x2e')][_0xaa22('0x1f')]);}_0x1ed9c6[_0xaa22('0x35')]=qs[_0xaa22('0x36')](_0x97edb4[_0xaa22('0x2e')]['sort']);_0x1ed9c6[_0xaa22('0x37')]=qs[_0xaa22('0x2f')](_[_0xaa22('0x38')](_0x97edb4[_0xaa22('0x2e')],_0x4be89a[_0xaa22('0x2f')]),_0x3b6852);if(_0x97edb4[_0xaa22('0x2e')][_0xaa22('0x39')]){_0x1ed9c6[_0xaa22('0x37')]=_[_0xaa22('0x3a')](_0x1ed9c6['where'],{'$or':_[_0xaa22('0x3b')](_0x3b6852,function(_0x54e1e3){if(_0x54e1e3[_0xaa22('0x3c')]!==_0xaa22('0x3d')){var _0x4baa82={};_0x4baa82[_0x54e1e3['name']]={'$like':'%'+_0x97edb4[_0xaa22('0x2e')][_0xaa22('0x39')]+'%'};return _0x4baa82;}})});}_0x1ed9c6=_[_0xaa22('0x3a')]({},_0x1ed9c6,_0x97edb4[_0xaa22('0x3e')]);var _0x2fec9e={'where':_0x1ed9c6[_0xaa22('0x37')]};return db['SmsQueueReport']['count'](_0x2fec9e)[_0xaa22('0x26')](function(_0x4a291e){_0x490160[_0xaa22('0x1e')]=_0x4a291e;if(_0x97edb4[_0xaa22('0x2e')][_0xaa22('0x3f')]){_0x1ed9c6['include']=[{'all':!![]}];}return db['SmsQueueReport'][_0xaa22('0x40')](_0x1ed9c6);})[_0xaa22('0x26')](function(_0x3ae554){_0x490160[_0xaa22('0x41')]=_0x3ae554;return _0x490160;})[_0xaa22('0x26')](respondWithFilteredResult(_0x5b5104,_0x1ed9c6))[_0xaa22('0x42')](handleError(_0x5b5104,null));};exports[_0xaa22('0x43')]=function(_0x58c346,_0x33f574){var _0x58f3ca={'raw':!![],'where':{'id':_0x58c346['params']['id']}},_0x32de8b={};_0x32de8b[_0xaa22('0x2d')]=_[_0xaa22('0x44')](db[_0xaa22('0x45')]['rawAttributes']);_0x32de8b[_0xaa22('0x2e')]=_['keys'](_0x58c346[_0xaa22('0x2e')]);_0x32de8b[_0xaa22('0x2f')]=_[_0xaa22('0x30')](_0x32de8b[_0xaa22('0x2d')],_0x32de8b['query']);_0x58f3ca[_0xaa22('0x31')]=_[_0xaa22('0x30')](_0x32de8b[_0xaa22('0x2d')],qs['fields'](_0x58c346[_0xaa22('0x2e')][_0xaa22('0x32')]));_0x58f3ca[_0xaa22('0x31')]=_0x58f3ca[_0xaa22('0x31')][_0xaa22('0x33')]?_0x58f3ca['attributes']:_0x32de8b[_0xaa22('0x2d')];if(_0x58c346['query']['includeAll']){_0x58f3ca[_0xaa22('0x46')]=[{'all':!![]}];}_0x58f3ca=_[_0xaa22('0x3a')]({},_0x58f3ca,_0x58c346['options']);return db[_0xaa22('0x45')][_0xaa22('0x47')](_0x58f3ca)[_0xaa22('0x26')](handleEntityNotFound(_0x33f574,null))['then'](respondWithResult(_0x33f574,null))[_0xaa22('0x42')](handleError(_0x33f574,null));};exports[_0xaa22('0x48')]=function(_0x2a0551,_0x2e8390){return db['SmsQueueReport']['create'](_0x2a0551[_0xaa22('0x49')],{})[_0xaa22('0x26')](respondWithResult(_0x2e8390,0xc9))[_0xaa22('0x42')](handleError(_0x2e8390,null));};exports['update']=function(_0x226c5d,_0x2dd976){if(_0x226c5d['body']['id']){delete _0x226c5d[_0xaa22('0x49')]['id'];}return db[_0xaa22('0x45')][_0xaa22('0x47')]({'where':{'id':_0x226c5d[_0xaa22('0x4a')]['id']}})[_0xaa22('0x26')](handleEntityNotFound(_0x2dd976,null))['then'](saveUpdates(_0x226c5d[_0xaa22('0x49')],null))['then'](respondWithResult(_0x2dd976,null))[_0xaa22('0x42')](handleError(_0x2dd976,null));};exports[_0xaa22('0x27')]=function(_0x33df9b,_0x1a866c){return db['SmsQueueReport'][_0xaa22('0x47')]({'where':{'id':_0x33df9b[_0xaa22('0x4a')]['id']}})[_0xaa22('0x26')](handleEntityNotFound(_0x1a866c,null))[_0xaa22('0x26')](removeEntity(_0x1a866c,null))[_0xaa22('0x42')](handleError(_0x1a866c,null));};exports[_0xaa22('0x4b')]=function(_0x5a6bb0,_0xe1f99){return db['SmsQueueReport'][_0xaa22('0x4b')]()[_0xaa22('0x26')](respondWithResult(_0xe1f99,null))[_0xaa22('0x42')](handleError(_0xe1f99,null));};
\ No newline at end of file
+var _0x0597=['lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','status','offset','undefined','limit','count','Content-Range','json','apply','reject','save','update','then','destroy','end','sendStatus','stack','name','index','map','rawAttributes','fieldName','type','key','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','VIRTUAL','options','includeAll','findAll','rows','catch','keys','SmsQueueReport','include','find','create','body','params','describe','eml-format','rimraf','zip-dir','request-promise','bluebird','mustache','util','path','sox','to-csv'];(function(_0x383011,_0xebddf2){var _0x224b5b=function(_0x5a7f49){while(--_0x5a7f49){_0x383011['push'](_0x383011['shift']());}};_0x224b5b(++_0xebddf2);}(_0x0597,0x172));var _0x7059=function(_0x7f5364,_0x48965c){_0x7f5364=_0x7f5364-0x0;var _0x309647=_0x0597[_0x7f5364];return _0x309647;};'use strict';var emlformat=require(_0x7059('0x0'));var rimraf=require(_0x7059('0x1'));var zipdir=require(_0x7059('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x7059('0x3'));var moment=require('moment');var BPromise=require(_0x7059('0x4'));var Mustache=require(_0x7059('0x5'));var util=require(_0x7059('0x6'));var path=require(_0x7059('0x7'));var sox=require(_0x7059('0x8'));var csv=require(_0x7059('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x7059('0xa'));var squel=require('squel');var crypto=require(_0x7059('0xb'));var jsforce=require(_0x7059('0xc'));var deskjs=require(_0x7059('0xd'));var toCsv=require(_0x7059('0x9'));var querystring=require(_0x7059('0xe'));var Papa=require(_0x7059('0xf'));var Redis=require(_0x7059('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x7059('0x11'));var as=require(_0x7059('0x12'));var hardwareService=require(_0x7059('0x13'));var logger=require('../../config/logger')(_0x7059('0x14'));var utils=require(_0x7059('0x15'));var config=require(_0x7059('0x16'));var licenseUtil=require(_0x7059('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x30e64c,_0x1ba7a4){_0x1ba7a4=_0x1ba7a4||0xcc;return function(_0x4214e8){if(_0x4214e8){return _0x30e64c['sendStatus'](_0x1ba7a4);}return _0x30e64c[_0x7059('0x18')](_0x1ba7a4)['end']();};}function respondWithResult(_0x29cc8e,_0x29d24a){_0x29d24a=_0x29d24a||0xc8;return function(_0x1a43ab){if(_0x1a43ab){return _0x29cc8e[_0x7059('0x18')](_0x29d24a)['json'](_0x1a43ab);}};}function respondWithFilteredResult(_0x12cc38,_0x59c882){return function(_0x1c4bc0){if(_0x1c4bc0){var _0x18747d=typeof _0x59c882[_0x7059('0x19')]===_0x7059('0x1a')&&typeof _0x59c882[_0x7059('0x1b')]===_0x7059('0x1a');var _0x1b5b0b=_0x1c4bc0[_0x7059('0x1c')];var _0x382468=_0x18747d?0x0:_0x59c882[_0x7059('0x19')];var _0x20a816=_0x18747d?_0x1c4bc0[_0x7059('0x1c')]:_0x59c882[_0x7059('0x19')]+_0x59c882[_0x7059('0x1b')];var _0x4eaeb2;if(_0x20a816>=_0x1b5b0b){_0x20a816=_0x1b5b0b;_0x4eaeb2=0xc8;}else{_0x4eaeb2=0xce;}_0x12cc38['status'](_0x4eaeb2);return _0x12cc38['set'](_0x7059('0x1d'),_0x382468+'-'+_0x20a816+'/'+_0x1b5b0b)[_0x7059('0x1e')](_0x1c4bc0);}return null;};}function patchUpdates(_0x15c7e1){return function(_0x591188){try{jsonpatch[_0x7059('0x1f')](_0x591188,_0x15c7e1,!![]);}catch(_0x5c0960){return BPromise[_0x7059('0x20')](_0x5c0960);}return _0x591188[_0x7059('0x21')]();};}function saveUpdates(_0x34993a,_0x2ea6f4){return function(_0x4d5ea1){if(_0x4d5ea1){return _0x4d5ea1[_0x7059('0x22')](_0x34993a)[_0x7059('0x23')](function(_0x58fd66){return _0x58fd66;});}return null;};}function removeEntity(_0x199bb5,_0x1e3f05){return function(_0x3a3930){if(_0x3a3930){return _0x3a3930[_0x7059('0x24')]()[_0x7059('0x23')](function(){_0x199bb5[_0x7059('0x18')](0xcc)[_0x7059('0x25')]();});}};}function handleEntityNotFound(_0x285c59,_0x2357ca){return function(_0xa2842){if(!_0xa2842){_0x285c59[_0x7059('0x26')](0x194);}return _0xa2842;};}function handleError(_0x3d3284,_0x3c36f8){_0x3c36f8=_0x3c36f8||0x1f4;return function(_0x5d8f6e){logger['error'](_0x5d8f6e[_0x7059('0x27')]);if(_0x5d8f6e[_0x7059('0x28')]){delete _0x5d8f6e['name'];}_0x3d3284['status'](_0x3c36f8)['send'](_0x5d8f6e);};}exports[_0x7059('0x29')]=function(_0x960d20,_0x5e5c8b){var _0x26a6af={},_0x1a6ec7={},_0x5c3028={'count':0x0,'rows':[]};var _0x2a22bc=_[_0x7059('0x2a')](db['SmsQueueReport'][_0x7059('0x2b')],function(_0x4c79a2){return{'name':_0x4c79a2[_0x7059('0x2c')],'type':_0x4c79a2[_0x7059('0x2d')][_0x7059('0x2e')]};});_0x1a6ec7['model']=_[_0x7059('0x2a')](_0x2a22bc,_0x7059('0x28'));_0x1a6ec7[_0x7059('0x2f')]=_['keys'](_0x960d20[_0x7059('0x2f')]);_0x1a6ec7[_0x7059('0x30')]=_[_0x7059('0x31')](_0x1a6ec7[_0x7059('0x32')],_0x1a6ec7['query']);_0x26a6af[_0x7059('0x33')]=_[_0x7059('0x31')](_0x1a6ec7[_0x7059('0x32')],qs[_0x7059('0x34')](_0x960d20['query'][_0x7059('0x34')]));_0x26a6af['attributes']=_0x26a6af[_0x7059('0x33')][_0x7059('0x35')]?_0x26a6af[_0x7059('0x33')]:_0x1a6ec7['model'];if(!_0x960d20['query'][_0x7059('0x36')](_0x7059('0x37'))){_0x26a6af[_0x7059('0x1b')]=qs[_0x7059('0x1b')](_0x960d20[_0x7059('0x2f')][_0x7059('0x1b')]);_0x26a6af[_0x7059('0x19')]=qs[_0x7059('0x19')](_0x960d20[_0x7059('0x2f')]['offset']);}_0x26a6af[_0x7059('0x38')]=qs[_0x7059('0x39')](_0x960d20[_0x7059('0x2f')][_0x7059('0x39')]);_0x26a6af['where']=qs[_0x7059('0x30')](_[_0x7059('0x3a')](_0x960d20['query'],_0x1a6ec7[_0x7059('0x30')]),_0x2a22bc);if(_0x960d20[_0x7059('0x2f')][_0x7059('0x3b')]){_0x26a6af[_0x7059('0x3c')]=_[_0x7059('0x3d')](_0x26a6af[_0x7059('0x3c')],{'$or':_[_0x7059('0x2a')](_0x2a22bc,function(_0x350c8a){if(_0x350c8a[_0x7059('0x2d')]!==_0x7059('0x3e')){var _0x3ee56f={};_0x3ee56f[_0x350c8a[_0x7059('0x28')]]={'$like':'%'+_0x960d20['query'][_0x7059('0x3b')]+'%'};return _0x3ee56f;}})});}_0x26a6af=_[_0x7059('0x3d')]({},_0x26a6af,_0x960d20[_0x7059('0x3f')]);var _0x50d443={'where':_0x26a6af[_0x7059('0x3c')]};return db['SmsQueueReport'][_0x7059('0x1c')](_0x50d443)[_0x7059('0x23')](function(_0x2bad41){_0x5c3028[_0x7059('0x1c')]=_0x2bad41;if(_0x960d20[_0x7059('0x2f')][_0x7059('0x40')]){_0x26a6af['include']=[{'all':!![]}];}return db['SmsQueueReport'][_0x7059('0x41')](_0x26a6af);})[_0x7059('0x23')](function(_0x5c400a){_0x5c3028[_0x7059('0x42')]=_0x5c400a;return _0x5c3028;})[_0x7059('0x23')](respondWithFilteredResult(_0x5e5c8b,_0x26a6af))[_0x7059('0x43')](handleError(_0x5e5c8b,null));};exports['show']=function(_0x31c223,_0x11ed24){var _0x443ee2={'raw':!![],'where':{'id':_0x31c223['params']['id']}},_0x5df7b0={};_0x5df7b0[_0x7059('0x32')]=_[_0x7059('0x44')](db[_0x7059('0x45')][_0x7059('0x2b')]);_0x5df7b0[_0x7059('0x2f')]=_[_0x7059('0x44')](_0x31c223[_0x7059('0x2f')]);_0x5df7b0['filters']=_[_0x7059('0x31')](_0x5df7b0[_0x7059('0x32')],_0x5df7b0[_0x7059('0x2f')]);_0x443ee2[_0x7059('0x33')]=_['intersection'](_0x5df7b0[_0x7059('0x32')],qs[_0x7059('0x34')](_0x31c223['query'][_0x7059('0x34')]));_0x443ee2[_0x7059('0x33')]=_0x443ee2[_0x7059('0x33')]['length']?_0x443ee2[_0x7059('0x33')]:_0x5df7b0[_0x7059('0x32')];if(_0x31c223[_0x7059('0x2f')]['includeAll']){_0x443ee2[_0x7059('0x46')]=[{'all':!![]}];}_0x443ee2=_[_0x7059('0x3d')]({},_0x443ee2,_0x31c223[_0x7059('0x3f')]);return db[_0x7059('0x45')][_0x7059('0x47')](_0x443ee2)[_0x7059('0x23')](handleEntityNotFound(_0x11ed24,null))[_0x7059('0x23')](respondWithResult(_0x11ed24,null))[_0x7059('0x43')](handleError(_0x11ed24,null));};exports[_0x7059('0x48')]=function(_0x16d4a5,_0x482610){return db[_0x7059('0x45')][_0x7059('0x48')](_0x16d4a5[_0x7059('0x49')],{})[_0x7059('0x23')](respondWithResult(_0x482610,0xc9))[_0x7059('0x43')](handleError(_0x482610,null));};exports[_0x7059('0x22')]=function(_0x5137e8,_0x15d018){if(_0x5137e8[_0x7059('0x49')]['id']){delete _0x5137e8[_0x7059('0x49')]['id'];}return db[_0x7059('0x45')][_0x7059('0x47')]({'where':{'id':_0x5137e8['params']['id']}})[_0x7059('0x23')](handleEntityNotFound(_0x15d018,null))[_0x7059('0x23')](saveUpdates(_0x5137e8['body'],null))[_0x7059('0x23')](respondWithResult(_0x15d018,null))[_0x7059('0x43')](handleError(_0x15d018,null));};exports['destroy']=function(_0x16ff73,_0x2cfd72){return db[_0x7059('0x45')][_0x7059('0x47')]({'where':{'id':_0x16ff73[_0x7059('0x4a')]['id']}})[_0x7059('0x23')](handleEntityNotFound(_0x2cfd72,null))['then'](removeEntity(_0x2cfd72,null))[_0x7059('0x43')](handleError(_0x2cfd72,null));};exports[_0x7059('0x4b')]=function(_0x449924,_0x4ba72f){return db[_0x7059('0x45')][_0x7059('0x4b')]()[_0x7059('0x23')](respondWithResult(_0x4ba72f,null))[_0x7059('0x43')](handleError(_0x4ba72f,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x70e0=['util','../../config/logger','bluebird','request-promise','path','rimraf','./smsQueueReport.attributes','report_sms_queue','uniqueid','lodash'];(function(_0x28f7b7,_0x1ea124){var _0x3bb501=function(_0x5bc872){while(--_0x5bc872){_0x28f7b7['push'](_0x28f7b7['shift']());}};_0x3bb501(++_0x1ea124);}(_0x70e0,0x17b));var _0x070e=function(_0x6a5708,_0x4f9723){_0x6a5708=_0x6a5708-0x0;var _0x8d5b0d=_0x70e0[_0x6a5708];return _0x8d5b0d;};'use strict';var _=require(_0x070e('0x0'));var util=require(_0x070e('0x1'));var logger=require(_0x070e('0x2'))('api');var moment=require('moment');var BPromise=require(_0x070e('0x3'));var rp=require(_0x070e('0x4'));var fs=require('fs');var path=require(_0x070e('0x5'));var rimraf=require(_0x070e('0x6'));var config=require('../../config/environment');var attributes=require(_0x070e('0x7'));module['exports']=function(_0x46fe68,_0x4b041d){return _0x46fe68['define']('SmsQueueReport',attributes,{'tableName':_0x070e('0x8'),'paranoid':![],'indexes':[{'name':_0x070e('0x9'),'fields':[_0x070e('0x9')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xcb91=['path','rimraf','./smsQueueReport.attributes','exports','define','report_sms_queue','uniqueid','../../config/logger','api','moment','bluebird'];(function(_0x16f47d,_0x5080fb){var _0xb1853b=function(_0x563c85){while(--_0x563c85){_0x16f47d['push'](_0x16f47d['shift']());}};_0xb1853b(++_0x5080fb);}(_0xcb91,0x1a9));var _0x1cb9=function(_0x2d2ca2,_0x51873f){_0x2d2ca2=_0x2d2ca2-0x0;var _0x48489d=_0xcb91[_0x2d2ca2];return _0x48489d;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x1cb9('0x0'))(_0x1cb9('0x1'));var moment=require(_0x1cb9('0x2'));var BPromise=require(_0x1cb9('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x1cb9('0x4'));var rimraf=require(_0x1cb9('0x5'));var config=require('../../config/environment');var attributes=require(_0x1cb9('0x6'));module[_0x1cb9('0x7')]=function(_0x53ffbd,_0x226b69){return _0x53ffbd[_0x1cb9('0x8')]('SmsQueueReport',attributes,{'tableName':_0x1cb9('0x9'),'paranoid':![],'indexes':[{'name':_0x1cb9('0xa'),'fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1c00=['client','http','request','then','info','SmsQueueReport,\x20%s,\x20%s','request\x20sent','debug','SmsQueueReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','CreateSmsQueueReport','SmsQueueReport','options','raw','UpdateSmsQueueReport','update','where','attributes','limit','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','../../config/environment','jayson/promise'];(function(_0x501510,_0x61caa9){var _0x1e6ee5=function(_0x32845b){while(--_0x32845b){_0x501510['push'](_0x501510['shift']());}};_0x1e6ee5(++_0x61caa9);}(_0x1c00,0x18e));var _0x01c0=function(_0x4b7895,_0x3c4f5d){_0x4b7895=_0x4b7895-0x0;var _0x264180=_0x1c00[_0x4b7895];return _0x264180;};'use strict';var _=require(_0x01c0('0x0'));var util=require(_0x01c0('0x1'));var moment=require(_0x01c0('0x2'));var BPromise=require(_0x01c0('0x3'));var rs=require(_0x01c0('0x4'));var fs=require('fs');var Redis=require(_0x01c0('0x5'));var db=require(_0x01c0('0x6'))['db'];var utils=require('../../config/utils');var logger=require(_0x01c0('0x7'))('rpc');var config=require(_0x01c0('0x8'));var jayson=require(_0x01c0('0x9'));var client=jayson[_0x01c0('0xa')][_0x01c0('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x540a08,_0x40ac34,_0x44b04c){return new BPromise(function(_0xd7d1b9,_0x59c572){return client[_0x01c0('0xc')](_0x540a08,_0x44b04c)[_0x01c0('0xd')](function(_0x2778ea){logger[_0x01c0('0xe')](_0x01c0('0xf'),_0x40ac34,_0x01c0('0x10'));logger[_0x01c0('0x11')](_0x01c0('0x12'),_0x40ac34,_0x01c0('0x10'),JSON[_0x01c0('0x13')](_0x2778ea));if(_0x2778ea[_0x01c0('0x14')]){if(_0x2778ea[_0x01c0('0x14')][_0x01c0('0x15')]===0x1f4){logger[_0x01c0('0x14')](_0x01c0('0xf'),_0x40ac34,_0x2778ea[_0x01c0('0x14')][_0x01c0('0x16')]);return _0x59c572(_0x2778ea[_0x01c0('0x14')][_0x01c0('0x16')]);}logger[_0x01c0('0x14')]('SmsQueueReport,\x20%s,\x20%s',_0x40ac34,_0x2778ea[_0x01c0('0x14')][_0x01c0('0x16')]);return _0xd7d1b9(_0x2778ea[_0x01c0('0x14')][_0x01c0('0x16')]);}else{logger[_0x01c0('0xe')](_0x01c0('0xf'),_0x40ac34,_0x01c0('0x10'));_0xd7d1b9(_0x2778ea[_0x01c0('0x17')][_0x01c0('0x16')]);}})[_0x01c0('0x18')](function(_0x2cbdaf){logger[_0x01c0('0x14')](_0x01c0('0xf'),_0x40ac34,_0x2cbdaf);_0x59c572(_0x2cbdaf);});});}exports[_0x01c0('0x19')]=function(_0x21513f){var _0x142c65=this;return new Promise(function(_0x18b233,_0x1c3409){return db[_0x01c0('0x1a')]['create'](_0x21513f['body'],{'raw':_0x21513f[_0x01c0('0x1b')]?_0x21513f[_0x01c0('0x1b')][_0x01c0('0x1c')]===undefined?!![]:![]:!![]})['then'](function(_0x38d518){logger[_0x01c0('0xe')](_0x01c0('0x19'),_0x21513f);logger[_0x01c0('0x11')]('CreateSmsQueueReport',_0x21513f,JSON['stringify'](_0x38d518));_0x18b233(_0x38d518);})[_0x01c0('0x18')](function(_0x205d7b){logger[_0x01c0('0x14')](_0x01c0('0x19'),_0x205d7b[_0x01c0('0x16')],_0x21513f);_0x1c3409(_0x142c65[_0x01c0('0x14')](0x1f4,_0x205d7b['message']));});});};exports[_0x01c0('0x1d')]=function(_0x381605){var _0x4aed68=this;return new Promise(function(_0x5af8c1,_0x117b69){return db[_0x01c0('0x1a')][_0x01c0('0x1e')](_0x381605['body'],{'raw':_0x381605[_0x01c0('0x1b')]?_0x381605[_0x01c0('0x1b')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x381605[_0x01c0('0x1b')]?_0x381605[_0x01c0('0x1b')][_0x01c0('0x1f')]||null:null,'attributes':_0x381605[_0x01c0('0x1b')]?_0x381605[_0x01c0('0x1b')][_0x01c0('0x20')]||null:null,'limit':_0x381605['options']?_0x381605[_0x01c0('0x1b')][_0x01c0('0x21')]||null:null})[_0x01c0('0xd')](function(_0x30c70a){logger['info'](_0x01c0('0x1d'),_0x381605);logger[_0x01c0('0x11')](_0x01c0('0x1d'),_0x381605,JSON[_0x01c0('0x13')](_0x30c70a));_0x5af8c1(_0x30c70a);})['catch'](function(_0x399737){logger[_0x01c0('0x14')](_0x01c0('0x1d'),_0x399737[_0x01c0('0x16')],_0x381605);_0x117b69(_0x4aed68['error'](0x1f4,_0x399737[_0x01c0('0x16')]));});});};
\ No newline at end of file
+var _0x262c=['code','message','catch','CreateSmsQueueReport','SmsQueueReport','create','body','options','raw','stringify','update','where','attributes','limit','UpdateSmsQueueReport','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request','then','info','SmsQueueReport,\x20%s,\x20%s','request\x20sent','debug','SmsQueueReport,\x20%s,\x20%s,\x20%s','error'];(function(_0x6c993a,_0x5ea3ab){var _0x27f547=function(_0x22df20){while(--_0x22df20){_0x6c993a['push'](_0x6c993a['shift']());}};_0x27f547(++_0x5ea3ab);}(_0x262c,0xb4));var _0xc262=function(_0x1558ab,_0x39d1de){_0x1558ab=_0x1558ab-0x0;var _0x53b64a=_0x262c[_0x1558ab];return _0x53b64a;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0xc262('0x0'));var BPromise=require('bluebird');var rs=require(_0xc262('0x1'));var fs=require('fs');var Redis=require(_0xc262('0x2'));var db=require(_0xc262('0x3'))['db'];var utils=require(_0xc262('0x4'));var logger=require(_0xc262('0x5'))('rpc');var config=require(_0xc262('0x6'));var jayson=require(_0xc262('0x7'));var client=jayson[_0xc262('0x8')][_0xc262('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x1874bb,_0x2427c1,_0x54ecd){return new BPromise(function(_0x67dabc,_0x4c4b79){return client[_0xc262('0xa')](_0x1874bb,_0x54ecd)[_0xc262('0xb')](function(_0x585306){logger[_0xc262('0xc')](_0xc262('0xd'),_0x2427c1,_0xc262('0xe'));logger[_0xc262('0xf')](_0xc262('0x10'),_0x2427c1,_0xc262('0xe'),JSON['stringify'](_0x585306));if(_0x585306['error']){if(_0x585306[_0xc262('0x11')][_0xc262('0x12')]===0x1f4){logger[_0xc262('0x11')](_0xc262('0xd'),_0x2427c1,_0x585306[_0xc262('0x11')][_0xc262('0x13')]);return _0x4c4b79(_0x585306[_0xc262('0x11')][_0xc262('0x13')]);}logger['error'](_0xc262('0xd'),_0x2427c1,_0x585306['error'][_0xc262('0x13')]);return _0x67dabc(_0x585306[_0xc262('0x11')]['message']);}else{logger[_0xc262('0xc')](_0xc262('0xd'),_0x2427c1,_0xc262('0xe'));_0x67dabc(_0x585306['result'][_0xc262('0x13')]);}})[_0xc262('0x14')](function(_0x39dcc5){logger['error']('SmsQueueReport,\x20%s,\x20%s',_0x2427c1,_0x39dcc5);_0x4c4b79(_0x39dcc5);});});}exports[_0xc262('0x15')]=function(_0x3df2bc){var _0x15fd30=this;return new Promise(function(_0x7b2d8f,_0x5cb3d3){return db[_0xc262('0x16')][_0xc262('0x17')](_0x3df2bc[_0xc262('0x18')],{'raw':_0x3df2bc[_0xc262('0x19')]?_0x3df2bc[_0xc262('0x19')][_0xc262('0x1a')]===undefined?!![]:![]:!![]})[_0xc262('0xb')](function(_0x251788){logger[_0xc262('0xc')](_0xc262('0x15'),_0x3df2bc);logger['debug'](_0xc262('0x15'),_0x3df2bc,JSON[_0xc262('0x1b')](_0x251788));_0x7b2d8f(_0x251788);})[_0xc262('0x14')](function(_0x1ab69d){logger[_0xc262('0x11')](_0xc262('0x15'),_0x1ab69d[_0xc262('0x13')],_0x3df2bc);_0x5cb3d3(_0x15fd30['error'](0x1f4,_0x1ab69d[_0xc262('0x13')]));});});};exports['UpdateSmsQueueReport']=function(_0x3263fc){var _0x2016a9=this;return new Promise(function(_0x241ff4,_0x4a21ed){return db['SmsQueueReport'][_0xc262('0x1c')](_0x3263fc[_0xc262('0x18')],{'raw':_0x3263fc['options']?_0x3263fc[_0xc262('0x19')][_0xc262('0x1a')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x3263fc[_0xc262('0x19')]?_0x3263fc[_0xc262('0x19')][_0xc262('0x1d')]||null:null,'attributes':_0x3263fc[_0xc262('0x19')]?_0x3263fc['options'][_0xc262('0x1e')]||null:null,'limit':_0x3263fc[_0xc262('0x19')]?_0x3263fc[_0xc262('0x19')][_0xc262('0x1f')]||null:null})['then'](function(_0xd4928b){logger['info'](_0xc262('0x20'),_0x3263fc);logger['debug'](_0xc262('0x20'),_0x3263fc,JSON['stringify'](_0xd4928b));_0x241ff4(_0xd4928b);})[_0xc262('0x14')](function(_0x2c97b8){logger[_0xc262('0x11')](_0xc262('0x20'),_0x2c97b8['message'],_0x3263fc);_0x4a21ed(_0x2016a9[_0xc262('0x11')](0x1f4,_0x2c97b8[_0xc262('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0fda=['Router','fs-extra','../../components/auth/service','../../components/interaction/service','get','/describe','isAuthenticated','describe','/:id','show','post','create','put','update','delete','destroy','multer','path','connect-timeout','express'];(function(_0x3d51f0,_0x3a99a2){var _0x448afa=function(_0x561999){while(--_0x561999){_0x3d51f0['push'](_0x3d51f0['shift']());}};_0x448afa(++_0x3a99a2);}(_0x0fda,0x1a0));var _0xa0fd=function(_0x43c08c,_0x389d17){_0x43c08c=_0x43c08c-0x0;var _0x55e1b7=_0x0fda[_0x43c08c];return _0x55e1b7;};'use strict';var multer=require(_0xa0fd('0x0'));var util=require('util');var path=require(_0xa0fd('0x1'));var timeout=require(_0xa0fd('0x2'));var express=require(_0xa0fd('0x3'));var router=express[_0xa0fd('0x4')]();var fs_extra=require(_0xa0fd('0x5'));var auth=require(_0xa0fd('0x6'));var interaction=require(_0xa0fd('0x7'));var config=require('../../config/environment');var controller=require('./smsTransferReport.controller');router[_0xa0fd('0x8')]('/',auth['isAuthenticated'](),controller['index']);router[_0xa0fd('0x8')](_0xa0fd('0x9'),auth[_0xa0fd('0xa')](),controller[_0xa0fd('0xb')]);router['get'](_0xa0fd('0xc'),auth[_0xa0fd('0xa')](),controller[_0xa0fd('0xd')]);router[_0xa0fd('0xe')]('/',auth['isAuthenticated'](),controller[_0xa0fd('0xf')]);router[_0xa0fd('0x10')](_0xa0fd('0xc'),auth['isAuthenticated'](),controller[_0xa0fd('0x11')]);router[_0xa0fd('0x12')](_0xa0fd('0xc'),auth[_0xa0fd('0xa')](),controller[_0xa0fd('0x13')]);module['exports']=router;
\ No newline at end of file
+var _0x46ed=['util','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','./smsTransferReport.controller','get','isAuthenticated','index','/describe','describe','/:id','post','put','update','delete','destroy','multer'];(function(_0x42e6ce,_0x511000){var _0xbe41a7=function(_0xb233c0){while(--_0xb233c0){_0x42e6ce['push'](_0x42e6ce['shift']());}};_0xbe41a7(++_0x511000);}(_0x46ed,0x168));var _0xd46e=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x46ed[_0x321bb2];return _0x9c12ed;};'use strict';var multer=require(_0xd46e('0x0'));var util=require(_0xd46e('0x1'));var path=require('path');var timeout=require(_0xd46e('0x2'));var express=require(_0xd46e('0x3'));var router=express[_0xd46e('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0xd46e('0x5'));var interaction=require(_0xd46e('0x6'));var config=require('../../config/environment');var controller=require(_0xd46e('0x7'));router[_0xd46e('0x8')]('/',auth[_0xd46e('0x9')](),controller[_0xd46e('0xa')]);router[_0xd46e('0x8')](_0xd46e('0xb'),auth[_0xd46e('0x9')](),controller[_0xd46e('0xc')]);router[_0xd46e('0x8')](_0xd46e('0xd'),auth[_0xd46e('0x9')](),controller['show']);router[_0xd46e('0xe')]('/',auth[_0xd46e('0x9')](),controller['create']);router[_0xd46e('0xf')](_0xd46e('0xd'),auth[_0xd46e('0x9')](),controller[_0xd46e('0x10')]);router[_0xd46e('0x11')](_0xd46e('0xd'),auth['isAuthenticated'](),controller[_0xd46e('0x12')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf4eb=['NOW','moment','account','queue','DATE'];(function(_0x278193,_0xfdd755){var _0x2fe6ea=function(_0x4ab21c){while(--_0x4ab21c){_0x278193['push'](_0x278193['shift']());}};_0x2fe6ea(++_0xfdd755);}(_0xf4eb,0xec));var _0xbf4e=function(_0x1f8ff3,_0xb03ac7){_0x1f8ff3=_0x1f8ff3-0x0;var _0x1b8d9f=_0xf4eb[_0x1f8ff3];return _0x1b8d9f;};'use strict';var moment=require(_0xbf4e('0x0'));var Sequelize=require('sequelize');module['exports']={'uniqueid':{'type':Sequelize['STRING'],'allowNull':![]},'type':{'type':Sequelize['ENUM'](_0xbf4e('0x1'),'agent','queue'),'allowNull':![],'defaultValue':_0xbf4e('0x2')},'transferredAt':{'type':Sequelize[_0xbf4e('0x3')],'allowNull':![],'defaultValue':Sequelize[_0xbf4e('0x4')]}};
\ No newline at end of file
+var _0xf3cd=['exports','STRING','ENUM','account','queue','DATE','moment','sequelize'];(function(_0xd9cfb3,_0x3dec45){var _0x3c0d87=function(_0x1a200b){while(--_0x1a200b){_0xd9cfb3['push'](_0xd9cfb3['shift']());}};_0x3c0d87(++_0x3dec45);}(_0xf3cd,0xfe));var _0xdf3c=function(_0x3227c1,_0x4318c5){_0x3227c1=_0x3227c1-0x0;var _0x31fd48=_0xf3cd[_0x3227c1];return _0x31fd48;};'use strict';var moment=require(_0xdf3c('0x0'));var Sequelize=require(_0xdf3c('0x1'));module[_0xdf3c('0x2')]={'uniqueid':{'type':Sequelize[_0xdf3c('0x3')],'allowNull':![]},'type':{'type':Sequelize[_0xdf3c('0x4')](_0xdf3c('0x5'),'agent',_0xdf3c('0x6')),'allowNull':![],'defaultValue':_0xdf3c('0x6')},'transferredAt':{'type':Sequelize[_0xdf3c('0x7')],'allowNull':![],'defaultValue':Sequelize['NOW']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa645=['fields','length','nolimit','sort','pick','filter','where','merge','map','VIRTUAL','options','includeAll','findAll','rows','catch','params','keys','include','create','body','update','find','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','save','then','destroy','end','stack','name','send','index','SmsTransferReport','rawAttributes','type','key','model','query','filters','intersection','attributes'];(function(_0x218fc8,_0x4f839f){var _0x330d7c=function(_0x5a29d3){while(--_0x5a29d3){_0x218fc8['push'](_0x218fc8['shift']());}};_0x330d7c(++_0x4f839f);}(_0xa645,0x18e));var _0x5a64=function(_0x52f0c0,_0x42ded1){_0x52f0c0=_0x52f0c0-0x0;var _0x15909e=_0xa645[_0x52f0c0];return _0x15909e;};'use strict';var emlformat=require(_0x5a64('0x0'));var rimraf=require(_0x5a64('0x1'));var zipdir=require(_0x5a64('0x2'));var jsonpatch=require(_0x5a64('0x3'));var rp=require(_0x5a64('0x4'));var moment=require(_0x5a64('0x5'));var BPromise=require(_0x5a64('0x6'));var Mustache=require(_0x5a64('0x7'));var util=require(_0x5a64('0x8'));var path=require(_0x5a64('0x9'));var sox=require('sox');var csv=require(_0x5a64('0xa'));var ejs=require(_0x5a64('0xb'));var fs=require('fs');var fs_extra=require(_0x5a64('0xc'));var _=require(_0x5a64('0xd'));var squel=require(_0x5a64('0xe'));var crypto=require(_0x5a64('0xf'));var jsforce=require(_0x5a64('0x10'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x5a64('0x11'));var Papa=require(_0x5a64('0x12'));var Redis=require('ioredis');var authService=require(_0x5a64('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0x5a64('0x14'));var hardwareService=require(_0x5a64('0x15'));var logger=require(_0x5a64('0x16'))('api');var utils=require(_0x5a64('0x17'));var config=require(_0x5a64('0x18'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x16d40a,_0x5c875f){_0x5c875f=_0x5c875f||0xcc;return function(_0x4cbacb){if(_0x4cbacb){return _0x16d40a[_0x5a64('0x19')](_0x5c875f);}return _0x16d40a[_0x5a64('0x1a')](_0x5c875f)['end']();};}function respondWithResult(_0x567694,_0x5f06ed){_0x5f06ed=_0x5f06ed||0xc8;return function(_0x5d6bad){if(_0x5d6bad){return _0x567694[_0x5a64('0x1a')](_0x5f06ed)[_0x5a64('0x1b')](_0x5d6bad);}};}function respondWithFilteredResult(_0x4e1c02,_0x55e0a1){return function(_0x1be910){if(_0x1be910){var _0x531aab=typeof _0x55e0a1[_0x5a64('0x1c')]===_0x5a64('0x1d')&&typeof _0x55e0a1[_0x5a64('0x1e')]===_0x5a64('0x1d');var _0x2095af=_0x1be910[_0x5a64('0x1f')];var _0x59054e=_0x531aab?0x0:_0x55e0a1[_0x5a64('0x1c')];var _0x5b0f20=_0x531aab?_0x1be910[_0x5a64('0x1f')]:_0x55e0a1[_0x5a64('0x1c')]+_0x55e0a1[_0x5a64('0x1e')];var _0x51cef3;if(_0x5b0f20>=_0x2095af){_0x5b0f20=_0x2095af;_0x51cef3=0xc8;}else{_0x51cef3=0xce;}_0x4e1c02[_0x5a64('0x1a')](_0x51cef3);return _0x4e1c02[_0x5a64('0x20')](_0x5a64('0x21'),_0x59054e+'-'+_0x5b0f20+'/'+_0x2095af)[_0x5a64('0x1b')](_0x1be910);}return null;};}function patchUpdates(_0x54bc48){return function(_0x370f97){try{jsonpatch[_0x5a64('0x22')](_0x370f97,_0x54bc48,!![]);}catch(_0x588f8d){return BPromise['reject'](_0x588f8d);}return _0x370f97[_0x5a64('0x23')]();};}function saveUpdates(_0x4d0d57,_0x4bf16b){return function(_0x36f6b8){if(_0x36f6b8){return _0x36f6b8['update'](_0x4d0d57)[_0x5a64('0x24')](function(_0x49dce0){return _0x49dce0;});}return null;};}function removeEntity(_0x530ee2,_0x1dbfb2){return function(_0x3bbf97){if(_0x3bbf97){return _0x3bbf97[_0x5a64('0x25')]()[_0x5a64('0x24')](function(){_0x530ee2[_0x5a64('0x1a')](0xcc)[_0x5a64('0x26')]();});}};}function handleEntityNotFound(_0x42afb3,_0x5a8368){return function(_0x1d8cf2){if(!_0x1d8cf2){_0x42afb3[_0x5a64('0x19')](0x194);}return _0x1d8cf2;};}function handleError(_0x435f15,_0x314afe){_0x314afe=_0x314afe||0x1f4;return function(_0x477d1b){logger['error'](_0x477d1b[_0x5a64('0x27')]);if(_0x477d1b[_0x5a64('0x28')]){delete _0x477d1b[_0x5a64('0x28')];}_0x435f15[_0x5a64('0x1a')](_0x314afe)[_0x5a64('0x29')](_0x477d1b);};}exports[_0x5a64('0x2a')]=function(_0x3a8034,_0x3dbc20){var _0x58ad69={},_0x51408c={},_0x216705={'count':0x0,'rows':[]};var _0x484b80=_['map'](db[_0x5a64('0x2b')][_0x5a64('0x2c')],function(_0x7e37ae){return{'name':_0x7e37ae['fieldName'],'type':_0x7e37ae[_0x5a64('0x2d')][_0x5a64('0x2e')]};});_0x51408c[_0x5a64('0x2f')]=_['map'](_0x484b80,_0x5a64('0x28'));_0x51408c['query']=_['keys'](_0x3a8034[_0x5a64('0x30')]);_0x51408c[_0x5a64('0x31')]=_[_0x5a64('0x32')](_0x51408c[_0x5a64('0x2f')],_0x51408c[_0x5a64('0x30')]);_0x58ad69[_0x5a64('0x33')]=_[_0x5a64('0x32')](_0x51408c[_0x5a64('0x2f')],qs['fields'](_0x3a8034[_0x5a64('0x30')][_0x5a64('0x34')]));_0x58ad69[_0x5a64('0x33')]=_0x58ad69[_0x5a64('0x33')][_0x5a64('0x35')]?_0x58ad69[_0x5a64('0x33')]:_0x51408c['model'];if(!_0x3a8034[_0x5a64('0x30')]['hasOwnProperty'](_0x5a64('0x36'))){_0x58ad69[_0x5a64('0x1e')]=qs['limit'](_0x3a8034[_0x5a64('0x30')]['limit']);_0x58ad69['offset']=qs[_0x5a64('0x1c')](_0x3a8034[_0x5a64('0x30')][_0x5a64('0x1c')]);}_0x58ad69['order']=qs['sort'](_0x3a8034[_0x5a64('0x30')][_0x5a64('0x37')]);_0x58ad69['where']=qs['filters'](_[_0x5a64('0x38')](_0x3a8034[_0x5a64('0x30')],_0x51408c[_0x5a64('0x31')]),_0x484b80);if(_0x3a8034[_0x5a64('0x30')][_0x5a64('0x39')]){_0x58ad69[_0x5a64('0x3a')]=_[_0x5a64('0x3b')](_0x58ad69[_0x5a64('0x3a')],{'$or':_[_0x5a64('0x3c')](_0x484b80,function(_0x58a0cb){if(_0x58a0cb['type']!==_0x5a64('0x3d')){var _0x28f18f={};_0x28f18f[_0x58a0cb[_0x5a64('0x28')]]={'$like':'%'+_0x3a8034[_0x5a64('0x30')][_0x5a64('0x39')]+'%'};return _0x28f18f;}})});}_0x58ad69=_[_0x5a64('0x3b')]({},_0x58ad69,_0x3a8034[_0x5a64('0x3e')]);var _0x2f0f68={'where':_0x58ad69[_0x5a64('0x3a')]};return db[_0x5a64('0x2b')][_0x5a64('0x1f')](_0x2f0f68)['then'](function(_0xab2d47){_0x216705[_0x5a64('0x1f')]=_0xab2d47;if(_0x3a8034[_0x5a64('0x30')][_0x5a64('0x3f')]){_0x58ad69['include']=[{'all':!![]}];}return db[_0x5a64('0x2b')][_0x5a64('0x40')](_0x58ad69);})[_0x5a64('0x24')](function(_0x449e3b){_0x216705[_0x5a64('0x41')]=_0x449e3b;return _0x216705;})[_0x5a64('0x24')](respondWithFilteredResult(_0x3dbc20,_0x58ad69))[_0x5a64('0x42')](handleError(_0x3dbc20,null));};exports['show']=function(_0x35a0c1,_0x217f87){var _0x499fd4={'raw':!![],'where':{'id':_0x35a0c1[_0x5a64('0x43')]['id']}},_0x1daa99={};_0x1daa99[_0x5a64('0x2f')]=_[_0x5a64('0x44')](db['SmsTransferReport'][_0x5a64('0x2c')]);_0x1daa99['query']=_[_0x5a64('0x44')](_0x35a0c1[_0x5a64('0x30')]);_0x1daa99['filters']=_[_0x5a64('0x32')](_0x1daa99[_0x5a64('0x2f')],_0x1daa99['query']);_0x499fd4[_0x5a64('0x33')]=_[_0x5a64('0x32')](_0x1daa99[_0x5a64('0x2f')],qs[_0x5a64('0x34')](_0x35a0c1['query'][_0x5a64('0x34')]));_0x499fd4[_0x5a64('0x33')]=_0x499fd4[_0x5a64('0x33')][_0x5a64('0x35')]?_0x499fd4[_0x5a64('0x33')]:_0x1daa99[_0x5a64('0x2f')];if(_0x35a0c1['query'][_0x5a64('0x3f')]){_0x499fd4[_0x5a64('0x45')]=[{'all':!![]}];}_0x499fd4=_['merge']({},_0x499fd4,_0x35a0c1[_0x5a64('0x3e')]);return db[_0x5a64('0x2b')]['find'](_0x499fd4)[_0x5a64('0x24')](handleEntityNotFound(_0x217f87,null))[_0x5a64('0x24')](respondWithResult(_0x217f87,null))[_0x5a64('0x42')](handleError(_0x217f87,null));};exports[_0x5a64('0x46')]=function(_0x1c5d62,_0xd3bdc2){return db['SmsTransferReport'][_0x5a64('0x46')](_0x1c5d62[_0x5a64('0x47')],{})['then'](respondWithResult(_0xd3bdc2,0xc9))[_0x5a64('0x42')](handleError(_0xd3bdc2,null));};exports[_0x5a64('0x48')]=function(_0xd14562,_0x2d3aab){if(_0xd14562[_0x5a64('0x47')]['id']){delete _0xd14562[_0x5a64('0x47')]['id'];}return db[_0x5a64('0x2b')][_0x5a64('0x49')]({'where':{'id':_0xd14562[_0x5a64('0x43')]['id']}})[_0x5a64('0x24')](handleEntityNotFound(_0x2d3aab,null))[_0x5a64('0x24')](saveUpdates(_0xd14562[_0x5a64('0x47')],null))[_0x5a64('0x24')](respondWithResult(_0x2d3aab,null))[_0x5a64('0x42')](handleError(_0x2d3aab,null));};exports[_0x5a64('0x25')]=function(_0x4701b6,_0x2a1899){return db[_0x5a64('0x2b')][_0x5a64('0x49')]({'where':{'id':_0x4701b6[_0x5a64('0x43')]['id']}})[_0x5a64('0x24')](handleEntityNotFound(_0x2a1899,null))[_0x5a64('0x24')](removeEntity(_0x2a1899,null))[_0x5a64('0x42')](handleError(_0x2a1899,null));};exports['describe']=function(_0x18b4aa,_0x5eda22){return db[_0x5a64('0x2b')][_0x5a64('0x4a')]()[_0x5a64('0x24')](respondWithResult(_0x5eda22,null))[_0x5a64('0x42')](handleError(_0x5eda22,null));};
\ No newline at end of file
+var _0xe723=['lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','Content-Range','json','apply','reject','save','update','then','destroy','send','map','SmsTransferReport','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','merge','where','VIRTUAL','options','includeAll','rows','catch','params','include','create','body','find','describe','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv'];(function(_0xacea04,_0x8e5296){var _0x376df4=function(_0x5105a5){while(--_0x5105a5){_0xacea04['push'](_0xacea04['shift']());}};_0x376df4(++_0x8e5296);}(_0xe723,0x11a));var _0x3e72=function(_0x46fe5d,_0x2e889a){_0x46fe5d=_0x46fe5d-0x0;var _0x558fcd=_0xe723[_0x46fe5d];return _0x558fcd;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x3e72('0x0'));var zipdir=require(_0x3e72('0x1'));var jsonpatch=require(_0x3e72('0x2'));var rp=require(_0x3e72('0x3'));var moment=require('moment');var BPromise=require(_0x3e72('0x4'));var Mustache=require(_0x3e72('0x5'));var util=require(_0x3e72('0x6'));var path=require(_0x3e72('0x7'));var sox=require(_0x3e72('0x8'));var csv=require(_0x3e72('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x3e72('0xa'));var squel=require(_0x3e72('0xb'));var crypto=require(_0x3e72('0xc'));var jsforce=require(_0x3e72('0xd'));var deskjs=require(_0x3e72('0xe'));var toCsv=require(_0x3e72('0x9'));var querystring=require(_0x3e72('0xf'));var Papa=require('papaparse');var Redis=require(_0x3e72('0x10'));var authService=require(_0x3e72('0x11'));var qs=require(_0x3e72('0x12'));var as=require(_0x3e72('0x13'));var hardwareService=require(_0x3e72('0x14'));var logger=require(_0x3e72('0x15'))(_0x3e72('0x16'));var utils=require('../../config/utils');var config=require(_0x3e72('0x17'));var licenseUtil=require(_0x3e72('0x18'));var db=require(_0x3e72('0x19'))['db'];function respondWithStatusCode(_0x1a260e,_0x493933){_0x493933=_0x493933||0xcc;return function(_0x2e480b){if(_0x2e480b){return _0x1a260e[_0x3e72('0x1a')](_0x493933);}return _0x1a260e[_0x3e72('0x1b')](_0x493933)[_0x3e72('0x1c')]();};}function respondWithResult(_0x12cb33,_0x295984){_0x295984=_0x295984||0xc8;return function(_0xc66faa){if(_0xc66faa){return _0x12cb33['status'](_0x295984)['json'](_0xc66faa);}};}function respondWithFilteredResult(_0x1b2b55,_0x370130){return function(_0x289175){if(_0x289175){var _0x1fc22b=typeof _0x370130[_0x3e72('0x1d')]===_0x3e72('0x1e')&&typeof _0x370130[_0x3e72('0x1f')]===_0x3e72('0x1e');var _0x2e2d1d=_0x289175['count'];var _0x3c1a96=_0x1fc22b?0x0:_0x370130[_0x3e72('0x1d')];var _0x4a7c66=_0x1fc22b?_0x289175[_0x3e72('0x20')]:_0x370130['offset']+_0x370130['limit'];var _0x40a715;if(_0x4a7c66>=_0x2e2d1d){_0x4a7c66=_0x2e2d1d;_0x40a715=0xc8;}else{_0x40a715=0xce;}_0x1b2b55[_0x3e72('0x1b')](_0x40a715);return _0x1b2b55['set'](_0x3e72('0x21'),_0x3c1a96+'-'+_0x4a7c66+'/'+_0x2e2d1d)[_0x3e72('0x22')](_0x289175);}return null;};}function patchUpdates(_0x501b2f){return function(_0x5267c2){try{jsonpatch[_0x3e72('0x23')](_0x5267c2,_0x501b2f,!![]);}catch(_0xa7d5f){return BPromise[_0x3e72('0x24')](_0xa7d5f);}return _0x5267c2[_0x3e72('0x25')]();};}function saveUpdates(_0x15e349,_0x541d3e){return function(_0x589985){if(_0x589985){return _0x589985[_0x3e72('0x26')](_0x15e349)[_0x3e72('0x27')](function(_0x27c272){return _0x27c272;});}return null;};}function removeEntity(_0x5894b1,_0x1d6e0a){return function(_0x4700f2){if(_0x4700f2){return _0x4700f2[_0x3e72('0x28')]()['then'](function(){_0x5894b1['status'](0xcc)[_0x3e72('0x1c')]();});}};}function handleEntityNotFound(_0x3b208a,_0x9503d7){return function(_0x52972a){if(!_0x52972a){_0x3b208a[_0x3e72('0x1a')](0x194);}return _0x52972a;};}function handleError(_0x3a8808,_0x21d6c6){_0x21d6c6=_0x21d6c6||0x1f4;return function(_0x5421f2){logger['error'](_0x5421f2['stack']);if(_0x5421f2['name']){delete _0x5421f2['name'];}_0x3a8808[_0x3e72('0x1b')](_0x21d6c6)[_0x3e72('0x29')](_0x5421f2);};}exports['index']=function(_0x9622a2,_0xe7eed4){var _0x312afa={},_0x367300={},_0x10abbe={'count':0x0,'rows':[]};var _0x300319=_[_0x3e72('0x2a')](db[_0x3e72('0x2b')][_0x3e72('0x2c')],function(_0x3a5b3d){return{'name':_0x3a5b3d[_0x3e72('0x2d')],'type':_0x3a5b3d[_0x3e72('0x2e')][_0x3e72('0x2f')]};});_0x367300[_0x3e72('0x30')]=_[_0x3e72('0x2a')](_0x300319,'name');_0x367300[_0x3e72('0x31')]=_[_0x3e72('0x32')](_0x9622a2[_0x3e72('0x31')]);_0x367300[_0x3e72('0x33')]=_['intersection'](_0x367300['model'],_0x367300[_0x3e72('0x31')]);_0x312afa['attributes']=_[_0x3e72('0x34')](_0x367300['model'],qs[_0x3e72('0x35')](_0x9622a2[_0x3e72('0x31')][_0x3e72('0x35')]));_0x312afa[_0x3e72('0x36')]=_0x312afa[_0x3e72('0x36')][_0x3e72('0x37')]?_0x312afa['attributes']:_0x367300[_0x3e72('0x30')];if(!_0x9622a2['query'][_0x3e72('0x38')](_0x3e72('0x39'))){_0x312afa[_0x3e72('0x1f')]=qs['limit'](_0x9622a2[_0x3e72('0x31')]['limit']);_0x312afa[_0x3e72('0x1d')]=qs[_0x3e72('0x1d')](_0x9622a2['query'][_0x3e72('0x1d')]);}_0x312afa[_0x3e72('0x3a')]=qs[_0x3e72('0x3b')](_0x9622a2['query'][_0x3e72('0x3b')]);_0x312afa['where']=qs[_0x3e72('0x33')](_['pick'](_0x9622a2[_0x3e72('0x31')],_0x367300[_0x3e72('0x33')]),_0x300319);if(_0x9622a2[_0x3e72('0x31')]['filter']){_0x312afa['where']=_[_0x3e72('0x3c')](_0x312afa[_0x3e72('0x3d')],{'$or':_[_0x3e72('0x2a')](_0x300319,function(_0x3761cc){if(_0x3761cc[_0x3e72('0x2e')]!==_0x3e72('0x3e')){var _0x166527={};_0x166527[_0x3761cc['name']]={'$like':'%'+_0x9622a2['query']['filter']+'%'};return _0x166527;}})});}_0x312afa=_['merge']({},_0x312afa,_0x9622a2[_0x3e72('0x3f')]);var _0x56c881={'where':_0x312afa[_0x3e72('0x3d')]};return db[_0x3e72('0x2b')][_0x3e72('0x20')](_0x56c881)['then'](function(_0x56f26a){_0x10abbe[_0x3e72('0x20')]=_0x56f26a;if(_0x9622a2[_0x3e72('0x31')][_0x3e72('0x40')]){_0x312afa['include']=[{'all':!![]}];}return db[_0x3e72('0x2b')]['findAll'](_0x312afa);})[_0x3e72('0x27')](function(_0x20a93f){_0x10abbe[_0x3e72('0x41')]=_0x20a93f;return _0x10abbe;})[_0x3e72('0x27')](respondWithFilteredResult(_0xe7eed4,_0x312afa))[_0x3e72('0x42')](handleError(_0xe7eed4,null));};exports['show']=function(_0x2e882d,_0x2c551c){var _0x30fd28={'raw':!![],'where':{'id':_0x2e882d[_0x3e72('0x43')]['id']}},_0x11b20a={};_0x11b20a[_0x3e72('0x30')]=_[_0x3e72('0x32')](db[_0x3e72('0x2b')][_0x3e72('0x2c')]);_0x11b20a[_0x3e72('0x31')]=_[_0x3e72('0x32')](_0x2e882d[_0x3e72('0x31')]);_0x11b20a[_0x3e72('0x33')]=_[_0x3e72('0x34')](_0x11b20a[_0x3e72('0x30')],_0x11b20a[_0x3e72('0x31')]);_0x30fd28[_0x3e72('0x36')]=_[_0x3e72('0x34')](_0x11b20a['model'],qs['fields'](_0x2e882d[_0x3e72('0x31')][_0x3e72('0x35')]));_0x30fd28['attributes']=_0x30fd28[_0x3e72('0x36')][_0x3e72('0x37')]?_0x30fd28[_0x3e72('0x36')]:_0x11b20a[_0x3e72('0x30')];if(_0x2e882d['query'][_0x3e72('0x40')]){_0x30fd28[_0x3e72('0x44')]=[{'all':!![]}];}_0x30fd28=_['merge']({},_0x30fd28,_0x2e882d['options']);return db[_0x3e72('0x2b')]['find'](_0x30fd28)[_0x3e72('0x27')](handleEntityNotFound(_0x2c551c,null))[_0x3e72('0x27')](respondWithResult(_0x2c551c,null))['catch'](handleError(_0x2c551c,null));};exports['create']=function(_0x1cbec4,_0x450728){return db[_0x3e72('0x2b')][_0x3e72('0x45')](_0x1cbec4['body'],{})[_0x3e72('0x27')](respondWithResult(_0x450728,0xc9))[_0x3e72('0x42')](handleError(_0x450728,null));};exports[_0x3e72('0x26')]=function(_0x5e6ae6,_0x314a89){if(_0x5e6ae6[_0x3e72('0x46')]['id']){delete _0x5e6ae6[_0x3e72('0x46')]['id'];}return db[_0x3e72('0x2b')][_0x3e72('0x47')]({'where':{'id':_0x5e6ae6[_0x3e72('0x43')]['id']}})[_0x3e72('0x27')](handleEntityNotFound(_0x314a89,null))[_0x3e72('0x27')](saveUpdates(_0x5e6ae6[_0x3e72('0x46')],null))[_0x3e72('0x27')](respondWithResult(_0x314a89,null))[_0x3e72('0x42')](handleError(_0x314a89,null));};exports[_0x3e72('0x28')]=function(_0x39ecac,_0x44b48a){return db[_0x3e72('0x2b')][_0x3e72('0x47')]({'where':{'id':_0x39ecac[_0x3e72('0x43')]['id']}})[_0x3e72('0x27')](handleEntityNotFound(_0x44b48a,null))[_0x3e72('0x27')](removeEntity(_0x44b48a,null))['catch'](handleError(_0x44b48a,null));};exports[_0x3e72('0x48')]=function(_0x51b1a4,_0x55e1d3){return db[_0x3e72('0x2b')][_0x3e72('0x48')]()[_0x3e72('0x27')](respondWithResult(_0x55e1d3,null))[_0x3e72('0x42')](handleError(_0x55e1d3,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xde64=['moment','bluebird','path','rimraf','exports','SmsTransferReport','report_sms_transfer','uniqueid','lodash','util','../../config/logger','api'];(function(_0x3b2a6d,_0x4069fb){var _0x30d5ac=function(_0x1725ed){while(--_0x1725ed){_0x3b2a6d['push'](_0x3b2a6d['shift']());}};_0x30d5ac(++_0x4069fb);}(_0xde64,0x17c));var _0x4de6=function(_0x1f945a,_0x5bb001){_0x1f945a=_0x1f945a-0x0;var _0x4e0c45=_0xde64[_0x1f945a];return _0x4e0c45;};'use strict';var _=require(_0x4de6('0x0'));var util=require(_0x4de6('0x1'));var logger=require(_0x4de6('0x2'))(_0x4de6('0x3'));var moment=require(_0x4de6('0x4'));var BPromise=require(_0x4de6('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x4de6('0x6'));var rimraf=require(_0x4de6('0x7'));var config=require('../../config/environment');var attributes=require('./smsTransferReport.attributes');module[_0x4de6('0x8')]=function(_0x45867b,_0x4da17f){return _0x45867b['define'](_0x4de6('0x9'),attributes,{'tableName':_0x4de6('0xa'),'paranoid':![],'indexes':[{'name':_0x4de6('0xb'),'fields':[_0x4de6('0xb')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x1d6d=['uniqueid','lodash','util','api','moment','request-promise','path','rimraf','../../config/environment','./smsTransferReport.attributes','exports','define','SmsTransferReport'];(function(_0x87239,_0x38c793){var _0x53af1e=function(_0x11eb5f){while(--_0x11eb5f){_0x87239['push'](_0x87239['shift']());}};_0x53af1e(++_0x38c793);}(_0x1d6d,0xf8));var _0xd1d6=function(_0x243308,_0x42c560){_0x243308=_0x243308-0x0;var _0x45f35c=_0x1d6d[_0x243308];return _0x45f35c;};'use strict';var _=require(_0xd1d6('0x0'));var util=require(_0xd1d6('0x1'));var logger=require('../../config/logger')(_0xd1d6('0x2'));var moment=require(_0xd1d6('0x3'));var BPromise=require('bluebird');var rp=require(_0xd1d6('0x4'));var fs=require('fs');var path=require(_0xd1d6('0x5'));var rimraf=require(_0xd1d6('0x6'));var config=require(_0xd1d6('0x7'));var attributes=require(_0xd1d6('0x8'));module[_0xd1d6('0x9')]=function(_0xc744c8,_0x2ee182){return _0xc744c8[_0xd1d6('0xa')](_0xd1d6('0xb'),attributes,{'tableName':'report_sms_transfer','paranoid':![],'indexes':[{'name':_0xd1d6('0xc'),'fields':[_0xd1d6('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4d61=['../../config/environment','jayson/promise','client','http','then','info','SmsTransferReport,\x20%s,\x20%s','debug','SmsTransferReport,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger'];(function(_0x4c5f9e,_0x330068){var _0x474a54=function(_0x342400){while(--_0x342400){_0x4c5f9e['push'](_0x4c5f9e['shift']());}};_0x474a54(++_0x330068);}(_0x4d61,0x147));var _0x14d6=function(_0x2134b2,_0x5a82aa){_0x2134b2=_0x2134b2-0x0;var _0x4e4bc8=_0x4d61[_0x2134b2];return _0x4e4bc8;};'use strict';var _=require(_0x14d6('0x0'));var util=require(_0x14d6('0x1'));var moment=require(_0x14d6('0x2'));var BPromise=require(_0x14d6('0x3'));var rs=require(_0x14d6('0x4'));var fs=require('fs');var Redis=require(_0x14d6('0x5'));var db=require(_0x14d6('0x6'))['db'];var utils=require(_0x14d6('0x7'));var logger=require(_0x14d6('0x8'))('rpc');var config=require(_0x14d6('0x9'));var jayson=require(_0x14d6('0xa'));var client=jayson[_0x14d6('0xb')][_0x14d6('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x349eac,_0x1b2daa,_0x344fb8){return new BPromise(function(_0x52eb2d,_0x217aeb){return client['request'](_0x349eac,_0x344fb8)[_0x14d6('0xd')](function(_0x590979){logger[_0x14d6('0xe')](_0x14d6('0xf'),_0x1b2daa,'request\x20sent');logger[_0x14d6('0x10')](_0x14d6('0x11'),_0x1b2daa,_0x14d6('0x12'),JSON[_0x14d6('0x13')](_0x590979));if(_0x590979[_0x14d6('0x14')]){if(_0x590979[_0x14d6('0x14')][_0x14d6('0x15')]===0x1f4){logger[_0x14d6('0x14')](_0x14d6('0xf'),_0x1b2daa,_0x590979[_0x14d6('0x14')][_0x14d6('0x16')]);return _0x217aeb(_0x590979['error'][_0x14d6('0x16')]);}logger[_0x14d6('0x14')](_0x14d6('0xf'),_0x1b2daa,_0x590979[_0x14d6('0x14')][_0x14d6('0x16')]);return _0x52eb2d(_0x590979['error'][_0x14d6('0x16')]);}else{logger[_0x14d6('0xe')](_0x14d6('0xf'),_0x1b2daa,_0x14d6('0x12'));_0x52eb2d(_0x590979['result'][_0x14d6('0x16')]);}})[_0x14d6('0x17')](function(_0x19464f){logger['error'](_0x14d6('0xf'),_0x1b2daa,_0x19464f);_0x217aeb(_0x19464f);});});}
\ No newline at end of file
+var _0x89fe=['stringify','error','code','message','result','catch','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','SmsTransferReport,\x20%s,\x20%s','request\x20sent','debug','SmsTransferReport,\x20%s,\x20%s,\x20%s'];(function(_0x68c979,_0x431cff){var _0x4f0001=function(_0xa7595d){while(--_0xa7595d){_0x68c979['push'](_0x68c979['shift']());}};_0x4f0001(++_0x431cff);}(_0x89fe,0x83));var _0xe89f=function(_0x1eb592,_0x3600ae){_0x1eb592=_0x1eb592-0x0;var _0x2d09d4=_0x89fe[_0x1eb592];return _0x2d09d4;};'use strict';var _=require(_0xe89f('0x0'));var util=require(_0xe89f('0x1'));var moment=require(_0xe89f('0x2'));var BPromise=require(_0xe89f('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xe89f('0x4'));var db=require(_0xe89f('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0xe89f('0x6'))(_0xe89f('0x7'));var config=require(_0xe89f('0x8'));var jayson=require(_0xe89f('0x9'));var client=jayson[_0xe89f('0xa')][_0xe89f('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x24358f,_0x5427d2,_0x4639f0){return new BPromise(function(_0x3e9998,_0x7043f3){return client[_0xe89f('0xc')](_0x24358f,_0x4639f0)[_0xe89f('0xd')](function(_0x4fa2fa){logger[_0xe89f('0xe')](_0xe89f('0xf'),_0x5427d2,_0xe89f('0x10'));logger[_0xe89f('0x11')](_0xe89f('0x12'),_0x5427d2,_0xe89f('0x10'),JSON[_0xe89f('0x13')](_0x4fa2fa));if(_0x4fa2fa[_0xe89f('0x14')]){if(_0x4fa2fa[_0xe89f('0x14')][_0xe89f('0x15')]===0x1f4){logger['error']('SmsTransferReport,\x20%s,\x20%s',_0x5427d2,_0x4fa2fa['error']['message']);return _0x7043f3(_0x4fa2fa['error'][_0xe89f('0x16')]);}logger[_0xe89f('0x14')]('SmsTransferReport,\x20%s,\x20%s',_0x5427d2,_0x4fa2fa['error'][_0xe89f('0x16')]);return _0x3e9998(_0x4fa2fa[_0xe89f('0x14')][_0xe89f('0x16')]);}else{logger[_0xe89f('0xe')](_0xe89f('0xf'),_0x5427d2,_0xe89f('0x10'));_0x3e9998(_0x4fa2fa[_0xe89f('0x17')][_0xe89f('0x16')]);}})[_0xe89f('0x18')](function(_0x16bfe0){logger['error'](_0xe89f('0xf'),_0x5427d2,_0x16bfe0);_0x7043f3(_0x16bfe0);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xeee8=['isAuthenticated','index','/:id','show','/:id/download','download','diskStorage','join','root','server/files/sounds/original/','originalname','replace','format','%s-%s%s','extname','post','file','create','update','delete','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./sound.controller','get'];(function(_0x341024,_0x3e4653){var _0x54b44e=function(_0x18fc8b){while(--_0x18fc8b){_0x341024['push'](_0x341024['shift']());}};_0x54b44e(++_0x3e4653);}(_0xeee8,0x13e));var _0x8eee=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0xeee8[_0x14add3];return _0x4a174f;};'use strict';var multer=require(_0x8eee('0x0'));var util=require(_0x8eee('0x1'));var path=require(_0x8eee('0x2'));var timeout=require(_0x8eee('0x3'));var express=require(_0x8eee('0x4'));var router=express[_0x8eee('0x5')]();var fs_extra=require(_0x8eee('0x6'));var auth=require(_0x8eee('0x7'));var interaction=require(_0x8eee('0x8'));var config=require(_0x8eee('0x9'));var controller=require(_0x8eee('0xa'));router[_0x8eee('0xb')]('/',auth[_0x8eee('0xc')](),controller[_0x8eee('0xd')]);router[_0x8eee('0xb')](_0x8eee('0xe'),auth[_0x8eee('0xc')](),controller[_0x8eee('0xf')]);router[_0x8eee('0xb')](_0x8eee('0x10'),auth[_0x8eee('0xc')](),controller[_0x8eee('0x11')]);var upload=multer({'storage':multer[_0x8eee('0x12')]({'destination':function(_0x35aa7f,_0x55127e,_0x47c7f0){_0x47c7f0(null,path[_0x8eee('0x13')](config[_0x8eee('0x14')],_0x8eee('0x15')));},'filename':function(_0x3c8443,_0x3d1bc8,_0x19c9fc){_0x3d1bc8[_0x8eee('0x16')]=_0x3d1bc8[_0x8eee('0x16')][_0x8eee('0x17')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0x19c9fc(null,util[_0x8eee('0x18')](_0x8eee('0x19'),path['basename'](_0x3d1bc8['originalname'],path['extname'](_0x3d1bc8['originalname'])),Date['now'](),path[_0x8eee('0x1a')](_0x3d1bc8[_0x8eee('0x16')])));}})});router[_0x8eee('0x1b')]('/',upload['single'](_0x8eee('0x1c')),controller[_0x8eee('0x1d')]);router['put'](_0x8eee('0xe'),auth['isAuthenticated'](),controller[_0x8eee('0x1e')]);router['delete']('/:id',auth[_0x8eee('0xc')](),controller[_0x8eee('0x1f')]);module[_0x8eee('0x20')]=router;
\ No newline at end of file
+var _0xbaaa=['./sound.controller','get','isAuthenticated','download','diskStorage','join','root','originalname','replace','%s-%s%s','basename','extname','now','post','single','file','create','put','/:id','update','delete','exports','multer','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment'];(function(_0x390806,_0x5af354){var _0x1de3c3=function(_0x1ae38){while(--_0x1ae38){_0x390806['push'](_0x390806['shift']());}};_0x1de3c3(++_0x5af354);}(_0xbaaa,0xac));var _0xabaa=function(_0x5834bc,_0x3d4801){_0x5834bc=_0x5834bc-0x0;var _0x3e183a=_0xbaaa[_0x5834bc];return _0x3e183a;};'use strict';var multer=require(_0xabaa('0x0'));var util=require(_0xabaa('0x1'));var path=require('path');var timeout=require(_0xabaa('0x2'));var express=require(_0xabaa('0x3'));var router=express[_0xabaa('0x4')]();var fs_extra=require(_0xabaa('0x5'));var auth=require(_0xabaa('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0xabaa('0x7'));var controller=require(_0xabaa('0x8'));router[_0xabaa('0x9')]('/',auth[_0xabaa('0xa')](),controller['index']);router[_0xabaa('0x9')]('/:id',auth[_0xabaa('0xa')](),controller['show']);router[_0xabaa('0x9')]('/:id/download',auth['isAuthenticated'](),controller[_0xabaa('0xb')]);var upload=multer({'storage':multer[_0xabaa('0xc')]({'destination':function(_0x41df44,_0x5a1f6f,_0x1fd5ca){_0x1fd5ca(null,path[_0xabaa('0xd')](config[_0xabaa('0xe')],'server/files/sounds/original/'));},'filename':function(_0x37c6f9,_0x41ad0f,_0xaeb9fa){_0x41ad0f[_0xabaa('0xf')]=_0x41ad0f[_0xabaa('0xf')][_0xabaa('0x10')](/[+@&\/\\#,+()$~%'":*?<>{}\s\\|]/g,'-');_0xaeb9fa(null,util['format'](_0xabaa('0x11'),path[_0xabaa('0x12')](_0x41ad0f[_0xabaa('0xf')],path[_0xabaa('0x13')](_0x41ad0f[_0xabaa('0xf')])),Date[_0xabaa('0x14')](),path[_0xabaa('0x13')](_0x41ad0f[_0xabaa('0xf')])));}})});router[_0xabaa('0x15')]('/',upload[_0xabaa('0x16')](_0xabaa('0x17')),controller[_0xabaa('0x18')]);router[_0xabaa('0x19')](_0xabaa('0x1a'),auth['isAuthenticated'](),controller[_0xabaa('0x1b')]);router['delete'](_0xabaa('0x1a'),auth[_0xabaa('0xa')](),controller[_0xabaa('0x1c')]);module[_0xabaa('0x1d')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5dda=['sequelize','exports','STRING','BIGINT','INTEGER'];(function(_0x5b27b1,_0x2e4929){var _0x5c2712=function(_0x5d353e){while(--_0x5d353e){_0x5b27b1['push'](_0x5b27b1['shift']());}};_0x5c2712(++_0x2e4929);}(_0x5dda,0x18b));var _0xa5dd=function(_0x2767e7,_0x45ce46){_0x2767e7=_0x2767e7-0x0;var _0x5c415b=_0x5dda[_0x2767e7];return _0x5c415b;};'use strict';var Sequelize=require(_0xa5dd('0x0'));module[_0xa5dd('0x1')]={'name':{'type':Sequelize[_0xa5dd('0x2')],'unique':'name','allowNull':![]},'save_name':{'type':Sequelize['STRING']},'display_name':{'type':Sequelize[_0xa5dd('0x2')],'defaultValue':''},'description':{'type':Sequelize[_0xa5dd('0x2')]},'original_format':{'type':Sequelize[_0xa5dd('0x2')]},'original_duration':{'type':Sequelize['FLOAT']},'original_sampleCount':{'type':Sequelize[_0xa5dd('0x3')]},'original_channelCount':{'type':Sequelize[_0xa5dd('0x4')]},'original_bitRate':{'type':Sequelize[_0xa5dd('0x3')]},'original_sampleRate':{'type':Sequelize[_0xa5dd('0x4')]},'converted_format':{'type':Sequelize[_0xa5dd('0x2')]},'converted_duration':{'type':Sequelize['FLOAT']},'converted_sampleCount':{'type':Sequelize[_0xa5dd('0x3')]},'converted_channelCount':{'type':Sequelize[_0xa5dd('0x4')]},'converted_bitRate':{'type':Sequelize[_0xa5dd('0x3')]},'converted_sampleRate':{'type':Sequelize[_0xa5dd('0x4')]}};
\ No newline at end of file
+var _0xcbd6=['FLOAT','BIGINT','INTEGER','STRING','name'];(function(_0x4ec13d,_0x358a8f){var _0x3c3fa7=function(_0x2615f6){while(--_0x2615f6){_0x4ec13d['push'](_0x4ec13d['shift']());}};_0x3c3fa7(++_0x358a8f);}(_0xcbd6,0x189));var _0x6cbd=function(_0x35bf8e,_0x522f58){_0x35bf8e=_0x35bf8e-0x0;var _0x5c67e6=_0xcbd6[_0x35bf8e];return _0x5c67e6;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize[_0x6cbd('0x0')],'unique':_0x6cbd('0x1'),'allowNull':![]},'save_name':{'type':Sequelize['STRING']},'display_name':{'type':Sequelize[_0x6cbd('0x0')],'defaultValue':''},'description':{'type':Sequelize[_0x6cbd('0x0')]},'original_format':{'type':Sequelize[_0x6cbd('0x0')]},'original_duration':{'type':Sequelize[_0x6cbd('0x2')]},'original_sampleCount':{'type':Sequelize[_0x6cbd('0x3')]},'original_channelCount':{'type':Sequelize[_0x6cbd('0x4')]},'original_bitRate':{'type':Sequelize['BIGINT']},'original_sampleRate':{'type':Sequelize[_0x6cbd('0x4')]},'converted_format':{'type':Sequelize[_0x6cbd('0x0')]},'converted_duration':{'type':Sequelize[_0x6cbd('0x2')]},'converted_sampleCount':{'type':Sequelize[_0x6cbd('0x3')]},'converted_channelCount':{'type':Sequelize[_0x6cbd('0x4')]},'converted_bitRate':{'type':Sequelize['BIGINT']},'converted_sampleRate':{'type':Sequelize[_0x6cbd('0x4')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x40d7=['unlinkSync','original_duration','duration','original_sampleCount','sampleCount','original_channelCount','channelCount','original_bitRate','bitRate','original_sampleRate','dest','converted_duration','converted_sampleCount','converted_channelCount','converted_bitRate','converted_sampleRate','sampleRate','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','description','original_format','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','mustache','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/license/util','sendStatus','status','json','undefined','limit','offset','set','Content-Range','apply','update','destroy','then','get','Sounds','UserProfileResource','end','stack','name','send','index','map','Sound','fieldName','type','key','model','keys','filters','intersection','fields','query','attributes','hasOwnProperty','nolimit','sort','where','pick','filter','VIRTUAL','options','count','include','findAll','rows','catch','show','rawAttributes','length','includeAll','merge','find','download','params','save_name','converted_format','existsSync','join','Sequelize','ValidationError','Sound\x20not\x20found','format','%s.%s','create','file','originalname','extname','filename','substring','wav','root','server/files/sounds/original','server/files/sounds/converted','basename','Sound\x20upload\x20filepath:\x20%s','info','chmodSync','0777','error'];(function(_0x8ae747,_0x135483){var _0x16d68b=function(_0x219354){while(--_0x219354){_0x8ae747['push'](_0x8ae747['shift']());}};_0x16d68b(++_0x135483);}(_0x40d7,0x99));var _0x740d=function(_0x3f2a90,_0x50baf1){_0x3f2a90=_0x3f2a90-0x0;var _0xb46279=_0x40d7[_0x3f2a90];return _0xb46279;};'use strict';var emlformat=require(_0x740d('0x0'));var rimraf=require(_0x740d('0x1'));var zipdir=require(_0x740d('0x2'));var jsonpatch=require(_0x740d('0x3'));var rp=require(_0x740d('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x740d('0x5'));var util=require('util');var path=require(_0x740d('0x6'));var sox=require('sox');var csv=require(_0x740d('0x7'));var ejs=require(_0x740d('0x8'));var fs=require('fs');var fs_extra=require(_0x740d('0x9'));var _=require(_0x740d('0xa'));var squel=require(_0x740d('0xb'));var crypto=require(_0x740d('0xc'));var jsforce=require(_0x740d('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x740d('0x7'));var querystring=require(_0x740d('0xe'));var Papa=require('papaparse');var Redis=require(_0x740d('0xf'));var authService=require(_0x740d('0x10'));var qs=require(_0x740d('0x11'));var as=require(_0x740d('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x740d('0x13'))('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x740d('0x14'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x56d847,_0x42e489){_0x42e489=_0x42e489||0xcc;return function(_0x354525){if(_0x354525){return _0x56d847[_0x740d('0x15')](_0x42e489);}return _0x56d847['status'](_0x42e489)['end']();};}function respondWithResult(_0xf5aec,_0x3eb7e2){_0x3eb7e2=_0x3eb7e2||0xc8;return function(_0x2ac638){if(_0x2ac638){return _0xf5aec[_0x740d('0x16')](_0x3eb7e2)[_0x740d('0x17')](_0x2ac638);}};}function respondWithFilteredResult(_0x5abc5c,_0x4ce3c8){return function(_0x334f8c){if(_0x334f8c){var _0x1f9d78=typeof _0x4ce3c8['offset']===_0x740d('0x18')&&typeof _0x4ce3c8[_0x740d('0x19')]==='undefined';var _0x56f13c=_0x334f8c['count'];var _0x22f77b=_0x1f9d78?0x0:_0x4ce3c8[_0x740d('0x1a')];var _0x42cef0=_0x1f9d78?_0x334f8c['count']:_0x4ce3c8[_0x740d('0x1a')]+_0x4ce3c8['limit'];var _0x16a01d;if(_0x42cef0>=_0x56f13c){_0x42cef0=_0x56f13c;_0x16a01d=0xc8;}else{_0x16a01d=0xce;}_0x5abc5c[_0x740d('0x16')](_0x16a01d);return _0x5abc5c[_0x740d('0x1b')](_0x740d('0x1c'),_0x22f77b+'-'+_0x42cef0+'/'+_0x56f13c)[_0x740d('0x17')](_0x334f8c);}return null;};}function patchUpdates(_0x1045ee){return function(_0x40a41c){try{jsonpatch[_0x740d('0x1d')](_0x40a41c,_0x1045ee,!![]);}catch(_0x463dc8){return BPromise['reject'](_0x463dc8);}return _0x40a41c['save']();};}function saveUpdates(_0x1e83d1,_0x2dfca8){return function(_0x44990a){if(_0x44990a){return _0x44990a[_0x740d('0x1e')](_0x1e83d1)['then'](function(_0x25b796){return _0x25b796;});}return null;};}function removeEntity(_0x223d29,_0x6921c){return function(_0x43dbf2){if(_0x43dbf2){return _0x43dbf2[_0x740d('0x1f')]()[_0x740d('0x20')](function(){var _0xf664f8=_0x43dbf2[_0x740d('0x21')]({'plain':!![]});var _0x5443ce=_0x740d('0x22');return db[_0x740d('0x23')][_0x740d('0x1f')]({'where':{'type':_0x5443ce,'resourceId':_0xf664f8['id']}})[_0x740d('0x20')](function(){return _0x43dbf2;});})[_0x740d('0x20')](function(){_0x223d29['status'](0xcc)[_0x740d('0x24')]();});}};}function handleEntityNotFound(_0x2a23c7,_0x5abc01){return function(_0x4d4e05){if(!_0x4d4e05){_0x2a23c7[_0x740d('0x15')](0x194);}return _0x4d4e05;};}function handleError(_0x19f721,_0x5a55c2){_0x5a55c2=_0x5a55c2||0x1f4;return function(_0x2154a6){logger['error'](_0x2154a6[_0x740d('0x25')]);if(_0x2154a6[_0x740d('0x26')]){delete _0x2154a6[_0x740d('0x26')];}_0x19f721[_0x740d('0x16')](_0x5a55c2)[_0x740d('0x27')](_0x2154a6);};}exports[_0x740d('0x28')]=function(_0x5e58d8,_0x2adc08){var _0xbea4dd={},_0x395a20={},_0x343aeb={'count':0x0,'rows':[]};var _0x76d1f9=_[_0x740d('0x29')](db[_0x740d('0x2a')]['rawAttributes'],function(_0x2bdc61){return{'name':_0x2bdc61[_0x740d('0x2b')],'type':_0x2bdc61[_0x740d('0x2c')][_0x740d('0x2d')]};});_0x395a20[_0x740d('0x2e')]=_['map'](_0x76d1f9,_0x740d('0x26'));_0x395a20['query']=_[_0x740d('0x2f')](_0x5e58d8['query']);_0x395a20[_0x740d('0x30')]=_[_0x740d('0x31')](_0x395a20[_0x740d('0x2e')],_0x395a20['query']);_0xbea4dd['attributes']=_[_0x740d('0x31')](_0x395a20[_0x740d('0x2e')],qs[_0x740d('0x32')](_0x5e58d8[_0x740d('0x33')][_0x740d('0x32')]));_0xbea4dd[_0x740d('0x34')]=_0xbea4dd[_0x740d('0x34')]['length']?_0xbea4dd[_0x740d('0x34')]:_0x395a20[_0x740d('0x2e')];if(!_0x5e58d8[_0x740d('0x33')][_0x740d('0x35')](_0x740d('0x36'))){_0xbea4dd[_0x740d('0x19')]=qs[_0x740d('0x19')](_0x5e58d8[_0x740d('0x33')][_0x740d('0x19')]);_0xbea4dd[_0x740d('0x1a')]=qs['offset'](_0x5e58d8['query'][_0x740d('0x1a')]);}_0xbea4dd['order']=qs[_0x740d('0x37')](_0x5e58d8['query'][_0x740d('0x37')]);_0xbea4dd[_0x740d('0x38')]=qs[_0x740d('0x30')](_[_0x740d('0x39')](_0x5e58d8[_0x740d('0x33')],_0x395a20[_0x740d('0x30')]),_0x76d1f9);if(_0x5e58d8[_0x740d('0x33')][_0x740d('0x3a')]){_0xbea4dd[_0x740d('0x38')]=_['merge'](_0xbea4dd[_0x740d('0x38')],{'$or':_[_0x740d('0x29')](_0x76d1f9,function(_0xe3b7b2){if(_0xe3b7b2[_0x740d('0x2c')]!==_0x740d('0x3b')){var _0x5aafe0={};_0x5aafe0[_0xe3b7b2[_0x740d('0x26')]]={'$like':'%'+_0x5e58d8[_0x740d('0x33')][_0x740d('0x3a')]+'%'};return _0x5aafe0;}})});}_0xbea4dd=_['merge']({},_0xbea4dd,_0x5e58d8[_0x740d('0x3c')]);var _0x1bf0d7={'where':_0xbea4dd[_0x740d('0x38')]};return db[_0x740d('0x2a')][_0x740d('0x3d')](_0x1bf0d7)[_0x740d('0x20')](function(_0x208925){_0x343aeb[_0x740d('0x3d')]=_0x208925;if(_0x5e58d8[_0x740d('0x33')]['includeAll']){_0xbea4dd[_0x740d('0x3e')]=[{'all':!![]}];}return db['Sound'][_0x740d('0x3f')](_0xbea4dd);})['then'](function(_0x6803a1){_0x343aeb[_0x740d('0x40')]=_0x6803a1;return _0x343aeb;})['then'](respondWithFilteredResult(_0x2adc08,_0xbea4dd))[_0x740d('0x41')](handleError(_0x2adc08,null));};exports[_0x740d('0x42')]=function(_0x33a564,_0x4eb7f6){var _0x4f1c10={'raw':!![],'where':{'id':_0x33a564['params']['id']}},_0x3f1bde={};_0x3f1bde[_0x740d('0x2e')]=_[_0x740d('0x2f')](db[_0x740d('0x2a')][_0x740d('0x43')]);_0x3f1bde[_0x740d('0x33')]=_[_0x740d('0x2f')](_0x33a564[_0x740d('0x33')]);_0x3f1bde['filters']=_[_0x740d('0x31')](_0x3f1bde['model'],_0x3f1bde['query']);_0x4f1c10[_0x740d('0x34')]=_[_0x740d('0x31')](_0x3f1bde[_0x740d('0x2e')],qs[_0x740d('0x32')](_0x33a564['query'][_0x740d('0x32')]));_0x4f1c10[_0x740d('0x34')]=_0x4f1c10[_0x740d('0x34')][_0x740d('0x44')]?_0x4f1c10[_0x740d('0x34')]:_0x3f1bde['model'];if(_0x33a564[_0x740d('0x33')][_0x740d('0x45')]){_0x4f1c10[_0x740d('0x3e')]=[{'all':!![]}];}_0x4f1c10=_[_0x740d('0x46')]({},_0x4f1c10,_0x33a564[_0x740d('0x3c')]);return db[_0x740d('0x2a')][_0x740d('0x47')](_0x4f1c10)['then'](handleEntityNotFound(_0x4eb7f6,null))[_0x740d('0x20')](respondWithResult(_0x4eb7f6,null))[_0x740d('0x41')](handleError(_0x4eb7f6,null));};exports[_0x740d('0x48')]=function(_0x117770,_0x16d7c1,_0xcd9c85){return db[_0x740d('0x2a')][_0x740d('0x47')]({'where':{'id':_0x117770[_0x740d('0x49')]['id']},'attributes':[_0x740d('0x26'),_0x740d('0x4a'),_0x740d('0x4b')],'raw':!![]})[_0x740d('0x20')](handleEntityNotFound(_0x16d7c1,null))[_0x740d('0x20')](function(_0xe5b2bc){if(_0xe5b2bc){if(!fs[_0x740d('0x4c')](path[_0x740d('0x4d')](config['root'],'server/files/sounds/converted',_0xe5b2bc['save_name']+'.'+_0xe5b2bc[_0x740d('0x4b')]))){throw new db[(_0x740d('0x4e'))][(_0x740d('0x4f'))](_0x740d('0x50'));}return _0x16d7c1[_0x740d('0x48')](path[_0x740d('0x4d')](config['root'],'server/files/sounds/converted',util[_0x740d('0x51')](_0x740d('0x52'),_0xe5b2bc['save_name'],_0xe5b2bc['converted_format'])),util['format'](_0x740d('0x52'),_0xe5b2bc['name'],_0xe5b2bc[_0x740d('0x4b')]));}return null;})['catch'](handleError(_0x16d7c1,null));};exports[_0x740d('0x53')]=function(_0x354127,_0x18564b,_0x167aee){var _0x356909={'name':path['basename'](_0x354127[_0x740d('0x54')][_0x740d('0x55')],path[_0x740d('0x56')](_0x354127[_0x740d('0x54')]['originalname'])),'save_name':path['basename'](_0x354127[_0x740d('0x54')][_0x740d('0x57')],path[_0x740d('0x56')](_0x354127[_0x740d('0x54')][_0x740d('0x57')])),'original_format':path[_0x740d('0x56')](_0x354127[_0x740d('0x54')][_0x740d('0x55')])[_0x740d('0x58')](0x1),'converted_format':_0x740d('0x59')};var _0x14838e=path[_0x740d('0x4d')](config[_0x740d('0x5a')],_0x740d('0x5b'),_0x354127[_0x740d('0x54')]['filename']);var _0x3809da=path[_0x740d('0x4d')](config[_0x740d('0x5a')],_0x740d('0x5c'),util['format']('%s.%s',path[_0x740d('0x5d')](_0x354127['file'][_0x740d('0x57')],path['extname'](_0x354127['file']['filename'])),_0x356909[_0x740d('0x4b')]));logger['info'](_0x740d('0x5e'),_0x14838e);logger[_0x740d('0x5f')]('Sound\x20upload\x20destination:\x20%s',_0x3809da);try{fs[_0x740d('0x60')](_0x14838e,parseInt(_0x740d('0x61'),0x8));var _0x4ab82d=sox['transcode'](_0x14838e,_0x3809da,{'sampleRate':0x1f40,'format':_0x740d('0x59'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x4ab82d['on'](_0x740d('0x62'),function(_0x5a70a3){fs[_0x740d('0x63')](_0x14838e);_0x18564b['status'](0x1f4)['send'](_0x5a70a3);});_0x4ab82d['on']('src',function(_0x251632){_0x356909[_0x740d('0x64')]=isNaN(_0x251632[_0x740d('0x65')])?null:_0x251632[_0x740d('0x65')]*0x3e8;_0x356909[_0x740d('0x66')]=isNaN(_0x251632[_0x740d('0x67')])?null:_0x251632[_0x740d('0x67')];_0x356909[_0x740d('0x68')]=isNaN(_0x251632[_0x740d('0x69')])?null:_0x251632[_0x740d('0x69')];_0x356909[_0x740d('0x6a')]=isNaN(_0x251632[_0x740d('0x6b')])?null:_0x251632[_0x740d('0x6b')];_0x356909[_0x740d('0x6c')]=isNaN(_0x251632['sampleRate'])?null:_0x251632['sampleRate'];});_0x4ab82d['on'](_0x740d('0x6d'),function(_0xce1f80){_0x356909[_0x740d('0x6e')]=isNaN(_0xce1f80[_0x740d('0x65')])?null:_0xce1f80[_0x740d('0x65')]*0x3e8;_0x356909[_0x740d('0x6f')]=isNaN(_0xce1f80[_0x740d('0x67')])?null:_0xce1f80[_0x740d('0x67')];_0x356909[_0x740d('0x70')]=isNaN(_0xce1f80[_0x740d('0x69')])?null:_0xce1f80[_0x740d('0x69')];_0x356909[_0x740d('0x71')]=isNaN(_0xce1f80['bitRate'])?null:_0xce1f80[_0x740d('0x6b')];_0x356909[_0x740d('0x72')]=isNaN(_0xce1f80[_0x740d('0x73')])?null:_0xce1f80[_0x740d('0x73')];});_0x4ab82d['on'](_0x740d('0x24'),function(){fs['chmodSync'](_0x3809da,parseInt(_0x740d('0x61'),0x8));return db[_0x740d('0x2a')][_0x740d('0x53')](_0x356909)[_0x740d('0x20')](function(_0x5e9475){var _0x4174eb={'role':_0x354127['body']['role'],'userProfileId':_0x354127[_0x740d('0x74')]['userProfileId']};if(!_0x4174eb)throw new Error(_0x740d('0x75'));if(_0x4174eb[_0x740d('0x76')]===_0x740d('0x77')){var _0x5645d3=_0x5e9475[_0x740d('0x21')]({'plain':!![]});return db[_0x740d('0x78')]['find']({'where':{'name':_0x740d('0x22'),'userProfileId':_0x4174eb[_0x740d('0x79')]},'raw':!![]})[_0x740d('0x20')](function(_0x4c0bf2){if(_0x4c0bf2&&_0x4c0bf2[_0x740d('0x7a')]===0x0){return db[_0x740d('0x23')][_0x740d('0x53')]({'name':_0x5645d3['name'],'resourceId':_0x5645d3['id'],'type':_0x4c0bf2[_0x740d('0x26')],'sectionId':_0x4c0bf2['id']},{})[_0x740d('0x20')](function(){return _0x5e9475;});}else{return _0x5e9475;}})[_0x740d('0x41')](function(_0x2d63c7){logger[_0x740d('0x62')](_0x740d('0x7b'),_0x2d63c7);throw _0x2d63c7;});}return _0x5e9475;})[_0x740d('0x20')](respondWithResult(_0x18564b,null))[_0x740d('0x41')](handleError(_0x18564b,null));});_0x4ab82d['start']();}catch(_0x1369be){_0x18564b[_0x740d('0x16')](0x1f4)['send'](_0x1369be);}};exports['update']=function(_0x46b73e,_0x3c7584,_0x5e3ec8){return db['Sound'][_0x740d('0x47')]({'where':{'id':_0x46b73e[_0x740d('0x49')]['id']}})[_0x740d('0x20')](handleEntityNotFound(_0x3c7584,null))[_0x740d('0x20')](saveUpdates(_[_0x740d('0x39')](_0x46b73e[_0x740d('0x74')],[_0x740d('0x26'),_0x740d('0x7c')]),null))[_0x740d('0x20')](respondWithResult(_0x3c7584,null))['catch'](handleError(_0x3c7584,null));};exports['delete']=function(_0xc87768,_0x564658,_0x4e62e3){return db[_0x740d('0x2a')]['find']({'where':{'id':_0xc87768[_0x740d('0x49')]['id']}})[_0x740d('0x20')](function(_0x328b34){if(_0x328b34){return _0x328b34[_0x740d('0x1f')]();}})[_0x740d('0x20')](function(_0x3b80f9){var _0x26ba70=path['join'](config[_0x740d('0x5a')],_0x740d('0x5b'),util[_0x740d('0x51')](_0x740d('0x52'),_0x3b80f9['save_name'],_0x3b80f9[_0x740d('0x7d')]));var _0xfd84f8=path[_0x740d('0x4d')](config[_0x740d('0x5a')],'server/files/sounds/converted',util[_0x740d('0x51')](_0x740d('0x52'),_0x3b80f9[_0x740d('0x4a')],_0x3b80f9[_0x740d('0x4b')]));fs[_0x740d('0x63')](_0x26ba70);fs[_0x740d('0x63')](_0xfd84f8);return _0x3b80f9;})['then'](function(_0x77d89f){if(_0x77d89f){return _0x564658[_0x740d('0x16')](0xcc)['end']();}})[_0x740d('0x20')](handleEntityNotFound(_0x564658,null))['catch'](handleError(_0x564658,null));};
\ No newline at end of file
+var _0x7107=['start','description','delete','format','original_format','unlinkSync','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','util','sox','to-csv','fs-extra','lodash','squel','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','status','end','offset','undefined','limit','count','Content-Range','reject','save','update','then','get','Sounds','UserProfileResource','destroy','sendStatus','error','stack','name','send','index','map','Sound','fieldName','type','key','model','query','attributes','fields','length','hasOwnProperty','nolimit','order','where','filters','pick','filter','merge','VIRTUAL','include','findAll','rows','catch','show','params','rawAttributes','options','find','download','save_name','converted_format','existsSync','join','root','server/files/sounds/converted','Sequelize','ValidationError','Sound\x20not\x20found','%s.%s','create','basename','file','filename','extname','originalname','server/files/sounds/original','info','Sound\x20upload\x20destination:\x20%s','wav','src','duration','sampleCount','original_channelCount','channelCount','original_bitRate','bitRate','original_sampleRate','sampleRate','dest','converted_duration','converted_sampleCount','converted_sampleRate','chmodSync','0777','role','body','userProfileId','Unable\x20to\x20retrieve\x20the\x20current\x20user','autoAssociation'];(function(_0x50bf5a,_0x807bba){var _0x4ddc1d=function(_0x349a61){while(--_0x349a61){_0x50bf5a['push'](_0x50bf5a['shift']());}};_0x4ddc1d(++_0x807bba);}(_0x7107,0x7d));var _0x7710=function(_0x4b65a5,_0x34c279){_0x4b65a5=_0x4b65a5-0x0;var _0x15d051=_0x7107[_0x4b65a5];return _0x15d051;};'use strict';var emlformat=require(_0x7710('0x0'));var rimraf=require(_0x7710('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x7710('0x2'));var rp=require(_0x7710('0x3'));var moment=require(_0x7710('0x4'));var BPromise=require(_0x7710('0x5'));var Mustache=require('mustache');var util=require(_0x7710('0x6'));var path=require('path');var sox=require(_0x7710('0x7'));var csv=require(_0x7710('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x7710('0x9'));var _=require(_0x7710('0xa'));var squel=require(_0x7710('0xb'));var crypto=require('crypto');var jsforce=require(_0x7710('0xc'));var deskjs=require(_0x7710('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x7710('0xe'));var Redis=require('ioredis');var authService=require(_0x7710('0xf'));var qs=require(_0x7710('0x10'));var as=require(_0x7710('0x11'));var hardwareService=require(_0x7710('0x12'));var logger=require(_0x7710('0x13'))(_0x7710('0x14'));var utils=require('../../config/utils');var config=require(_0x7710('0x15'));var licenseUtil=require('../../config/license/util');var db=require(_0x7710('0x16'))['db'];function respondWithStatusCode(_0x46cb55,_0x1da2d3){_0x1da2d3=_0x1da2d3||0xcc;return function(_0x2f3c22){if(_0x2f3c22){return _0x46cb55['sendStatus'](_0x1da2d3);}return _0x46cb55[_0x7710('0x17')](_0x1da2d3)[_0x7710('0x18')]();};}function respondWithResult(_0x3a3fee,_0xc786b8){_0xc786b8=_0xc786b8||0xc8;return function(_0x2917da){if(_0x2917da){return _0x3a3fee[_0x7710('0x17')](_0xc786b8)['json'](_0x2917da);}};}function respondWithFilteredResult(_0x579b10,_0x5e2ed5){return function(_0x7f1a08){if(_0x7f1a08){var _0x9b4bef=typeof _0x5e2ed5[_0x7710('0x19')]===_0x7710('0x1a')&&typeof _0x5e2ed5[_0x7710('0x1b')]==='undefined';var _0x49a3f1=_0x7f1a08[_0x7710('0x1c')];var _0x30d83b=_0x9b4bef?0x0:_0x5e2ed5[_0x7710('0x19')];var _0x33f909=_0x9b4bef?_0x7f1a08['count']:_0x5e2ed5[_0x7710('0x19')]+_0x5e2ed5[_0x7710('0x1b')];var _0x380499;if(_0x33f909>=_0x49a3f1){_0x33f909=_0x49a3f1;_0x380499=0xc8;}else{_0x380499=0xce;}_0x579b10[_0x7710('0x17')](_0x380499);return _0x579b10['set'](_0x7710('0x1d'),_0x30d83b+'-'+_0x33f909+'/'+_0x49a3f1)['json'](_0x7f1a08);}return null;};}function patchUpdates(_0x41d58c){return function(_0x267396){try{jsonpatch['apply'](_0x267396,_0x41d58c,!![]);}catch(_0x5b59e6){return BPromise[_0x7710('0x1e')](_0x5b59e6);}return _0x267396[_0x7710('0x1f')]();};}function saveUpdates(_0x4039a4,_0x491025){return function(_0x5cbf7e){if(_0x5cbf7e){return _0x5cbf7e[_0x7710('0x20')](_0x4039a4)[_0x7710('0x21')](function(_0x3a0ee7){return _0x3a0ee7;});}return null;};}function removeEntity(_0x32504,_0x3a8236){return function(_0x2d10ea){if(_0x2d10ea){return _0x2d10ea['destroy']()['then'](function(){var _0x24b107=_0x2d10ea[_0x7710('0x22')]({'plain':!![]});var _0x369b41=_0x7710('0x23');return db[_0x7710('0x24')][_0x7710('0x25')]({'where':{'type':_0x369b41,'resourceId':_0x24b107['id']}})[_0x7710('0x21')](function(){return _0x2d10ea;});})[_0x7710('0x21')](function(){_0x32504['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x3792fa,_0x1e832b){return function(_0x9836ce){if(!_0x9836ce){_0x3792fa[_0x7710('0x26')](0x194);}return _0x9836ce;};}function handleError(_0x275471,_0x319ef3){_0x319ef3=_0x319ef3||0x1f4;return function(_0xc7e9a1){logger[_0x7710('0x27')](_0xc7e9a1[_0x7710('0x28')]);if(_0xc7e9a1[_0x7710('0x29')]){delete _0xc7e9a1[_0x7710('0x29')];}_0x275471[_0x7710('0x17')](_0x319ef3)[_0x7710('0x2a')](_0xc7e9a1);};}exports[_0x7710('0x2b')]=function(_0x5745b0,_0x4d7476){var _0x115f74={},_0x1632c4={},_0x214ebc={'count':0x0,'rows':[]};var _0x440d65=_[_0x7710('0x2c')](db[_0x7710('0x2d')]['rawAttributes'],function(_0x2add57){return{'name':_0x2add57[_0x7710('0x2e')],'type':_0x2add57[_0x7710('0x2f')][_0x7710('0x30')]};});_0x1632c4[_0x7710('0x31')]=_[_0x7710('0x2c')](_0x440d65,'name');_0x1632c4[_0x7710('0x32')]=_['keys'](_0x5745b0['query']);_0x1632c4['filters']=_['intersection'](_0x1632c4['model'],_0x1632c4[_0x7710('0x32')]);_0x115f74[_0x7710('0x33')]=_['intersection'](_0x1632c4[_0x7710('0x31')],qs[_0x7710('0x34')](_0x5745b0['query'][_0x7710('0x34')]));_0x115f74[_0x7710('0x33')]=_0x115f74[_0x7710('0x33')][_0x7710('0x35')]?_0x115f74['attributes']:_0x1632c4[_0x7710('0x31')];if(!_0x5745b0['query'][_0x7710('0x36')](_0x7710('0x37'))){_0x115f74[_0x7710('0x1b')]=qs[_0x7710('0x1b')](_0x5745b0[_0x7710('0x32')][_0x7710('0x1b')]);_0x115f74['offset']=qs[_0x7710('0x19')](_0x5745b0[_0x7710('0x32')]['offset']);}_0x115f74[_0x7710('0x38')]=qs['sort'](_0x5745b0[_0x7710('0x32')]['sort']);_0x115f74[_0x7710('0x39')]=qs[_0x7710('0x3a')](_[_0x7710('0x3b')](_0x5745b0[_0x7710('0x32')],_0x1632c4[_0x7710('0x3a')]),_0x440d65);if(_0x5745b0['query'][_0x7710('0x3c')]){_0x115f74[_0x7710('0x39')]=_[_0x7710('0x3d')](_0x115f74[_0x7710('0x39')],{'$or':_[_0x7710('0x2c')](_0x440d65,function(_0x93ab35){if(_0x93ab35[_0x7710('0x2f')]!==_0x7710('0x3e')){var _0x4013cc={};_0x4013cc[_0x93ab35[_0x7710('0x29')]]={'$like':'%'+_0x5745b0['query']['filter']+'%'};return _0x4013cc;}})});}_0x115f74=_[_0x7710('0x3d')]({},_0x115f74,_0x5745b0['options']);var _0x2b01f8={'where':_0x115f74['where']};return db[_0x7710('0x2d')][_0x7710('0x1c')](_0x2b01f8)[_0x7710('0x21')](function(_0x59cb6f){_0x214ebc['count']=_0x59cb6f;if(_0x5745b0[_0x7710('0x32')]['includeAll']){_0x115f74[_0x7710('0x3f')]=[{'all':!![]}];}return db[_0x7710('0x2d')][_0x7710('0x40')](_0x115f74);})['then'](function(_0x2ec04c){_0x214ebc[_0x7710('0x41')]=_0x2ec04c;return _0x214ebc;})['then'](respondWithFilteredResult(_0x4d7476,_0x115f74))[_0x7710('0x42')](handleError(_0x4d7476,null));};exports[_0x7710('0x43')]=function(_0x3f8a76,_0x39e592){var _0xe344={'raw':!![],'where':{'id':_0x3f8a76[_0x7710('0x44')]['id']}},_0x206684={};_0x206684[_0x7710('0x31')]=_['keys'](db[_0x7710('0x2d')][_0x7710('0x45')]);_0x206684[_0x7710('0x32')]=_['keys'](_0x3f8a76['query']);_0x206684[_0x7710('0x3a')]=_['intersection'](_0x206684[_0x7710('0x31')],_0x206684[_0x7710('0x32')]);_0xe344[_0x7710('0x33')]=_['intersection'](_0x206684[_0x7710('0x31')],qs['fields'](_0x3f8a76['query'][_0x7710('0x34')]));_0xe344['attributes']=_0xe344['attributes']['length']?_0xe344[_0x7710('0x33')]:_0x206684[_0x7710('0x31')];if(_0x3f8a76[_0x7710('0x32')]['includeAll']){_0xe344[_0x7710('0x3f')]=[{'all':!![]}];}_0xe344=_[_0x7710('0x3d')]({},_0xe344,_0x3f8a76[_0x7710('0x46')]);return db[_0x7710('0x2d')][_0x7710('0x47')](_0xe344)['then'](handleEntityNotFound(_0x39e592,null))[_0x7710('0x21')](respondWithResult(_0x39e592,null))[_0x7710('0x42')](handleError(_0x39e592,null));};exports[_0x7710('0x48')]=function(_0x4b7a57,_0x11aeb7,_0x517fb2){return db[_0x7710('0x2d')][_0x7710('0x47')]({'where':{'id':_0x4b7a57['params']['id']},'attributes':[_0x7710('0x29'),_0x7710('0x49'),_0x7710('0x4a')],'raw':!![]})[_0x7710('0x21')](handleEntityNotFound(_0x11aeb7,null))[_0x7710('0x21')](function(_0x47a167){if(_0x47a167){if(!fs[_0x7710('0x4b')](path[_0x7710('0x4c')](config[_0x7710('0x4d')],_0x7710('0x4e'),_0x47a167[_0x7710('0x49')]+'.'+_0x47a167[_0x7710('0x4a')]))){throw new db[(_0x7710('0x4f'))][(_0x7710('0x50'))](_0x7710('0x51'));}return _0x11aeb7[_0x7710('0x48')](path[_0x7710('0x4c')](config[_0x7710('0x4d')],'server/files/sounds/converted',util['format']('%s.%s',_0x47a167['save_name'],_0x47a167[_0x7710('0x4a')])),util['format'](_0x7710('0x52'),_0x47a167[_0x7710('0x29')],_0x47a167[_0x7710('0x4a')]));}return null;})[_0x7710('0x42')](handleError(_0x11aeb7,null));};exports[_0x7710('0x53')]=function(_0xae274e,_0x441df9,_0x2cb15f){var _0x38b600={'name':path[_0x7710('0x54')](_0xae274e[_0x7710('0x55')]['originalname'],path['extname'](_0xae274e['file']['originalname'])),'save_name':path[_0x7710('0x54')](_0xae274e[_0x7710('0x55')][_0x7710('0x56')],path[_0x7710('0x57')](_0xae274e[_0x7710('0x55')][_0x7710('0x56')])),'original_format':path[_0x7710('0x57')](_0xae274e[_0x7710('0x55')][_0x7710('0x58')])['substring'](0x1),'converted_format':'wav'};var _0x5af388=path[_0x7710('0x4c')](config[_0x7710('0x4d')],_0x7710('0x59'),_0xae274e['file'][_0x7710('0x56')]);var _0x573e54=path[_0x7710('0x4c')](config[_0x7710('0x4d')],_0x7710('0x4e'),util['format'](_0x7710('0x52'),path[_0x7710('0x54')](_0xae274e[_0x7710('0x55')]['filename'],path['extname'](_0xae274e[_0x7710('0x55')][_0x7710('0x56')])),_0x38b600[_0x7710('0x4a')]));logger[_0x7710('0x5a')]('Sound\x20upload\x20filepath:\x20%s',_0x5af388);logger['info'](_0x7710('0x5b'),_0x573e54);try{fs['chmodSync'](_0x5af388,parseInt('0777',0x8));var _0x1b8b5c=sox['transcode'](_0x5af388,_0x573e54,{'sampleRate':0x1f40,'format':_0x7710('0x5c'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x1b8b5c['on'](_0x7710('0x27'),function(_0x30ddd3){fs['unlinkSync'](_0x5af388);_0x441df9[_0x7710('0x17')](0x1f4)['send'](_0x30ddd3);});_0x1b8b5c['on'](_0x7710('0x5d'),function(_0x1c173a){_0x38b600['original_duration']=isNaN(_0x1c173a[_0x7710('0x5e')])?null:_0x1c173a[_0x7710('0x5e')]*0x3e8;_0x38b600['original_sampleCount']=isNaN(_0x1c173a[_0x7710('0x5f')])?null:_0x1c173a[_0x7710('0x5f')];_0x38b600[_0x7710('0x60')]=isNaN(_0x1c173a[_0x7710('0x61')])?null:_0x1c173a[_0x7710('0x61')];_0x38b600[_0x7710('0x62')]=isNaN(_0x1c173a[_0x7710('0x63')])?null:_0x1c173a[_0x7710('0x63')];_0x38b600[_0x7710('0x64')]=isNaN(_0x1c173a[_0x7710('0x65')])?null:_0x1c173a[_0x7710('0x65')];});_0x1b8b5c['on'](_0x7710('0x66'),function(_0x24a1c4){_0x38b600[_0x7710('0x67')]=isNaN(_0x24a1c4[_0x7710('0x5e')])?null:_0x24a1c4['duration']*0x3e8;_0x38b600[_0x7710('0x68')]=isNaN(_0x24a1c4[_0x7710('0x5f')])?null:_0x24a1c4['sampleCount'];_0x38b600['converted_channelCount']=isNaN(_0x24a1c4[_0x7710('0x61')])?null:_0x24a1c4[_0x7710('0x61')];_0x38b600['converted_bitRate']=isNaN(_0x24a1c4[_0x7710('0x63')])?null:_0x24a1c4[_0x7710('0x63')];_0x38b600[_0x7710('0x69')]=isNaN(_0x24a1c4[_0x7710('0x65')])?null:_0x24a1c4[_0x7710('0x65')];});_0x1b8b5c['on']('end',function(){fs[_0x7710('0x6a')](_0x573e54,parseInt(_0x7710('0x6b'),0x8));return db[_0x7710('0x2d')][_0x7710('0x53')](_0x38b600)['then'](function(_0x553430){var _0x1c69d1={'role':_0xae274e['body'][_0x7710('0x6c')],'userProfileId':_0xae274e[_0x7710('0x6d')][_0x7710('0x6e')]};if(!_0x1c69d1)throw new Error(_0x7710('0x6f'));if(_0x1c69d1[_0x7710('0x6c')]==='user'){var _0x372a4c=_0x553430['get']({'plain':!![]});return db['UserProfileSection'][_0x7710('0x47')]({'where':{'name':_0x7710('0x23'),'userProfileId':_0x1c69d1[_0x7710('0x6e')]},'raw':!![]})[_0x7710('0x21')](function(_0xa8a90f){if(_0xa8a90f&&_0xa8a90f[_0x7710('0x70')]===0x0){return db['UserProfileResource']['create']({'name':_0x372a4c[_0x7710('0x29')],'resourceId':_0x372a4c['id'],'type':_0xa8a90f[_0x7710('0x29')],'sectionId':_0xa8a90f['id']},{})[_0x7710('0x21')](function(){return _0x553430;});}else{return _0x553430;}})[_0x7710('0x42')](function(_0x33ffd3){logger[_0x7710('0x27')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x33ffd3);throw _0x33ffd3;});}return _0x553430;})['then'](respondWithResult(_0x441df9,null))[_0x7710('0x42')](handleError(_0x441df9,null));});_0x1b8b5c[_0x7710('0x71')]();}catch(_0x3ec9c2){_0x441df9[_0x7710('0x17')](0x1f4)[_0x7710('0x2a')](_0x3ec9c2);}};exports['update']=function(_0x398759,_0x3499e3,_0x204c9a){return db[_0x7710('0x2d')][_0x7710('0x47')]({'where':{'id':_0x398759[_0x7710('0x44')]['id']}})['then'](handleEntityNotFound(_0x3499e3,null))[_0x7710('0x21')](saveUpdates(_[_0x7710('0x3b')](_0x398759['body'],[_0x7710('0x29'),_0x7710('0x72')]),null))[_0x7710('0x21')](respondWithResult(_0x3499e3,null))['catch'](handleError(_0x3499e3,null));};exports[_0x7710('0x73')]=function(_0xe7ba8c,_0xdf50d1,_0x1ce65c){return db['Sound']['find']({'where':{'id':_0xe7ba8c[_0x7710('0x44')]['id']}})['then'](function(_0xb426e3){if(_0xb426e3){return _0xb426e3[_0x7710('0x25')]();}})[_0x7710('0x21')](function(_0x442bfe){var _0x1b20ac=path['join'](config[_0x7710('0x4d')],'server/files/sounds/original',util[_0x7710('0x74')](_0x7710('0x52'),_0x442bfe[_0x7710('0x49')],_0x442bfe[_0x7710('0x75')]));var _0xd69db2=path[_0x7710('0x4c')](config['root'],'server/files/sounds/converted',util[_0x7710('0x74')]('%s.%s',_0x442bfe[_0x7710('0x49')],_0x442bfe[_0x7710('0x4a')]));fs[_0x7710('0x76')](_0x1b20ac);fs[_0x7710('0x76')](_0xd69db2);return _0x442bfe;})[_0x7710('0x21')](function(_0x4e8a9b){if(_0x4e8a9b){return _0xdf50d1[_0x7710('0x17')](0xcc)['end']();}})[_0x7710('0x21')](handleEntityNotFound(_0xdf50d1,null))[_0x7710('0x42')](handleError(_0xdf50d1,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe5bd=['../../config/environment','exports','define','Sound','tools_sounds','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf'];(function(_0x384ba4,_0xca570f){var _0x1c7e8b=function(_0xf08fc8){while(--_0xf08fc8){_0x384ba4['push'](_0x384ba4['shift']());}};_0x1c7e8b(++_0xca570f);}(_0xe5bd,0x87));var _0xde5b=function(_0x55ba0d,_0x287884){_0x55ba0d=_0x55ba0d-0x0;var _0x417c3b=_0xe5bd[_0x55ba0d];return _0x417c3b;};'use strict';var _=require('lodash');var util=require(_0xde5b('0x0'));var logger=require(_0xde5b('0x1'))(_0xde5b('0x2'));var moment=require(_0xde5b('0x3'));var BPromise=require(_0xde5b('0x4'));var rp=require(_0xde5b('0x5'));var fs=require('fs');var path=require(_0xde5b('0x6'));var rimraf=require(_0xde5b('0x7'));var config=require(_0xde5b('0x8'));var attributes=require('./sound.attributes');module[_0xde5b('0x9')]=function(_0x222acc,_0x54a8b4){return _0x222acc[_0xde5b('0xa')](_0xde5b('0xb'),attributes,{'tableName':_0xde5b('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xf2ac=['moment','request-promise','path','rimraf','./sound.attributes','exports','define','Sound','tools_sounds','lodash','util','../../config/logger'];(function(_0x3c2b2b,_0x5250d9){var _0x1484f5=function(_0x6c9957){while(--_0x6c9957){_0x3c2b2b['push'](_0x3c2b2b['shift']());}};_0x1484f5(++_0x5250d9);}(_0xf2ac,0x135));var _0xcf2a=function(_0x4e7349,_0x541b7e){_0x4e7349=_0x4e7349-0x0;var _0x2a4810=_0xf2ac[_0x4e7349];return _0x2a4810;};'use strict';var _=require(_0xcf2a('0x0'));var util=require(_0xcf2a('0x1'));var logger=require(_0xcf2a('0x2'))('api');var moment=require(_0xcf2a('0x3'));var BPromise=require('bluebird');var rp=require(_0xcf2a('0x4'));var fs=require('fs');var path=require(_0xcf2a('0x5'));var rimraf=require(_0xcf2a('0x6'));var config=require('../../config/environment');var attributes=require(_0xcf2a('0x7'));module[_0xcf2a('0x8')]=function(_0x6503a2,_0x5a81d5){return _0x6503a2[_0xcf2a('0x9')](_0xcf2a('0xa'),attributes,{'tableName':_0xcf2a('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x59db=['map','include','model','ShowSound','moment','randomstring','../../mysqldb','rpc','../../config/environment','jayson/promise','client','then','Sound,\x20%s,\x20%s','debug','Sound,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','info','catch','Sound','find','options','where','attributes'];(function(_0x4e872a,_0x4f64a6){var _0x25f2b0=function(_0x3c1b83){while(--_0x3c1b83){_0x4e872a['push'](_0x4e872a['shift']());}};_0x25f2b0(++_0x4f64a6);}(_0x59db,0x112));var _0xb59d=function(_0x55ab04,_0x180da3){_0x55ab04=_0x55ab04-0x0;var _0x1a4daa=_0x59db[_0x55ab04];return _0x1a4daa;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0xb59d('0x0'));var BPromise=require('bluebird');var rs=require(_0xb59d('0x1'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xb59d('0x2'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0xb59d('0x3'));var config=require(_0xb59d('0x4'));var jayson=require(_0xb59d('0x5'));var client=jayson[_0xb59d('0x6')]['http']({'port':0x232a});function respondWithRpcPromise(_0x547370,_0x52dcf9,_0x1eadca){return new BPromise(function(_0x127513,_0x2b4ed7){return client['request'](_0x547370,_0x1eadca)[_0xb59d('0x7')](function(_0x8bb92f){logger['info'](_0xb59d('0x8'),_0x52dcf9,'request\x20sent');logger[_0xb59d('0x9')](_0xb59d('0xa'),_0x52dcf9,_0xb59d('0xb'),JSON[_0xb59d('0xc')](_0x8bb92f));if(_0x8bb92f[_0xb59d('0xd')]){if(_0x8bb92f[_0xb59d('0xd')][_0xb59d('0xe')]===0x1f4){logger['error'](_0xb59d('0x8'),_0x52dcf9,_0x8bb92f[_0xb59d('0xd')][_0xb59d('0xf')]);return _0x2b4ed7(_0x8bb92f['error']['message']);}logger[_0xb59d('0xd')]('Sound,\x20%s,\x20%s',_0x52dcf9,_0x8bb92f[_0xb59d('0xd')][_0xb59d('0xf')]);return _0x127513(_0x8bb92f['error'][_0xb59d('0xf')]);}else{logger[_0xb59d('0x10')](_0xb59d('0x8'),_0x52dcf9,'request\x20sent');_0x127513(_0x8bb92f['result']['message']);}})[_0xb59d('0x11')](function(_0x3b6d78){logger[_0xb59d('0xd')]('Sound,\x20%s,\x20%s',_0x52dcf9,_0x3b6d78);_0x2b4ed7(_0x3b6d78);});});}exports['ShowSound']=function(_0x35100f){var _0x48ca5f=this;return new Promise(function(_0x587427,_0x40ba0e){return db[_0xb59d('0x12')][_0xb59d('0x13')]({'raw':_0x35100f[_0xb59d('0x14')]?_0x35100f[_0xb59d('0x14')]['raw']===undefined?!![]:![]:!![],'where':_0x35100f[_0xb59d('0x14')]?_0x35100f['options'][_0xb59d('0x15')]||null:null,'attributes':_0x35100f[_0xb59d('0x14')]?_0x35100f[_0xb59d('0x14')][_0xb59d('0x16')]||null:null,'include':_0x35100f[_0xb59d('0x14')]?_0x35100f[_0xb59d('0x14')]['include']?_[_0xb59d('0x17')](_0x35100f['options']['include'],function(_0x319725){return{'model':db[_0x319725['model']],'as':_0x319725['as'],'attributes':_0x319725[_0xb59d('0x16')],'include':_0x319725[_0xb59d('0x18')]?_[_0xb59d('0x17')](_0x319725[_0xb59d('0x18')],function(_0x3c4091){return{'model':db[_0x3c4091[_0xb59d('0x19')]],'as':_0x3c4091['as'],'attributes':_0x3c4091['attributes'],'include':_0x3c4091['include']?_[_0xb59d('0x17')](_0x3c4091[_0xb59d('0x18')],function(_0x2416e5){return{'model':db[_0x2416e5['model']],'as':_0x2416e5['as'],'attributes':_0x2416e5['attributes']};}):[]};}):[]};}):[]:[]})[_0xb59d('0x7')](function(_0x3a56ab){logger[_0xb59d('0x10')](_0xb59d('0x1a'),_0x35100f);logger[_0xb59d('0x9')](_0xb59d('0x1a'),_0x35100f,JSON[_0xb59d('0xc')](_0x3a56ab));_0x587427(_0x3a56ab);})['catch'](function(_0x188c79){logger['error'](_0xb59d('0x1a'),_0x188c79[_0xb59d('0xf')],_0x35100f);_0x40ba0e(_0x48ca5f[_0xb59d('0xd')](0x1f4,_0x188c79[_0xb59d('0xf')]));});});};
\ No newline at end of file
+var _0x63a7=['rpc','../../config/environment','client','request','then','info','Sound,\x20%s,\x20%s','request\x20sent','Sound,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','ShowSound','Sound','find','options','raw','where','include','map','model','attributes','debug','catch','util','randomstring','ioredis','../../mysqldb'];(function(_0x4d72e0,_0x56ff2d){var _0x391fe2=function(_0x110b21){while(--_0x110b21){_0x4d72e0['push'](_0x4d72e0['shift']());}};_0x391fe2(++_0x56ff2d);}(_0x63a7,0x1be));var _0x763a=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x63a7[_0x20a584];return _0x4b41a8;};'use strict';var _=require('lodash');var util=require(_0x763a('0x0'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x763a('0x1'));var fs=require('fs');var Redis=require(_0x763a('0x2'));var db=require(_0x763a('0x3'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0x763a('0x4'));var config=require(_0x763a('0x5'));var jayson=require('jayson/promise');var client=jayson[_0x763a('0x6')]['http']({'port':0x232a});function respondWithRpcPromise(_0x47e394,_0x26b80d,_0x4c4bb7){return new BPromise(function(_0xc6004f,_0x898ddd){return client[_0x763a('0x7')](_0x47e394,_0x4c4bb7)[_0x763a('0x8')](function(_0xdff909){logger[_0x763a('0x9')](_0x763a('0xa'),_0x26b80d,_0x763a('0xb'));logger['debug'](_0x763a('0xc'),_0x26b80d,'request\x20sent',JSON[_0x763a('0xd')](_0xdff909));if(_0xdff909[_0x763a('0xe')]){if(_0xdff909[_0x763a('0xe')][_0x763a('0xf')]===0x1f4){logger[_0x763a('0xe')](_0x763a('0xa'),_0x26b80d,_0xdff909[_0x763a('0xe')]['message']);return _0x898ddd(_0xdff909[_0x763a('0xe')]['message']);}logger['error'](_0x763a('0xa'),_0x26b80d,_0xdff909[_0x763a('0xe')]['message']);return _0xc6004f(_0xdff909['error'][_0x763a('0x10')]);}else{logger[_0x763a('0x9')]('Sound,\x20%s,\x20%s',_0x26b80d,_0x763a('0xb'));_0xc6004f(_0xdff909[_0x763a('0x11')][_0x763a('0x10')]);}})['catch'](function(_0x38c5ec){logger[_0x763a('0xe')](_0x763a('0xa'),_0x26b80d,_0x38c5ec);_0x898ddd(_0x38c5ec);});});}exports[_0x763a('0x12')]=function(_0x2c595d){var _0x43c5a4=this;return new Promise(function(_0x3d84ae,_0xffa29b){return db[_0x763a('0x13')][_0x763a('0x14')]({'raw':_0x2c595d[_0x763a('0x15')]?_0x2c595d[_0x763a('0x15')][_0x763a('0x16')]===undefined?!![]:![]:!![],'where':_0x2c595d['options']?_0x2c595d[_0x763a('0x15')][_0x763a('0x17')]||null:null,'attributes':_0x2c595d[_0x763a('0x15')]?_0x2c595d[_0x763a('0x15')]['attributes']||null:null,'include':_0x2c595d['options']?_0x2c595d[_0x763a('0x15')][_0x763a('0x18')]?_[_0x763a('0x19')](_0x2c595d[_0x763a('0x15')]['include'],function(_0x182436){return{'model':db[_0x182436[_0x763a('0x1a')]],'as':_0x182436['as'],'attributes':_0x182436[_0x763a('0x1b')],'include':_0x182436[_0x763a('0x18')]?_['map'](_0x182436[_0x763a('0x18')],function(_0x2fb88c){return{'model':db[_0x2fb88c['model']],'as':_0x2fb88c['as'],'attributes':_0x2fb88c[_0x763a('0x1b')],'include':_0x2fb88c['include']?_[_0x763a('0x19')](_0x2fb88c['include'],function(_0xb8a8f5){return{'model':db[_0xb8a8f5[_0x763a('0x1a')]],'as':_0xb8a8f5['as'],'attributes':_0xb8a8f5['attributes']};}):[]};}):[]};}):[]:[]})[_0x763a('0x8')](function(_0x39c7a8){logger[_0x763a('0x9')](_0x763a('0x12'),_0x2c595d);logger[_0x763a('0x1c')](_0x763a('0x12'),_0x2c595d,JSON[_0x763a('0xd')](_0x39c7a8));_0x3d84ae(_0x39c7a8);})[_0x763a('0x1d')](function(_0xa044ef){logger[_0x763a('0xe')](_0x763a('0x12'),_0xa044ef[_0x763a('0x10')],_0x2c595d);_0xffa29b(_0x43c5a4[_0x763a('0xe')](0x1f4,_0xa044ef['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2032=['exports','util','path','connect-timeout','Router','fs-extra','../../components/interaction/service','../../config/environment','./squareMessage.controller','get','isAuthenticated','index','/:id','show','post','put','update','delete'];(function(_0x36f465,_0x4689e6){var _0xc1a53=function(_0x318cc6){while(--_0x318cc6){_0x36f465['push'](_0x36f465['shift']());}};_0xc1a53(++_0x4689e6);}(_0x2032,0xd9));var _0x2203=function(_0xb1215d,_0x12b86d){_0xb1215d=_0xb1215d-0x0;var _0x307ebb=_0x2032[_0xb1215d];return _0x307ebb;};'use strict';var multer=require('multer');var util=require(_0x2203('0x0'));var path=require(_0x2203('0x1'));var timeout=require(_0x2203('0x2'));var express=require('express');var router=express[_0x2203('0x3')]();var fs_extra=require(_0x2203('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x2203('0x5'));var config=require(_0x2203('0x6'));var controller=require(_0x2203('0x7'));router[_0x2203('0x8')]('/',auth[_0x2203('0x9')](),controller[_0x2203('0xa')]);router[_0x2203('0x8')](_0x2203('0xb'),auth[_0x2203('0x9')](),controller[_0x2203('0xc')]);router[_0x2203('0xd')]('/',auth['isAuthenticated'](),controller['create']);router[_0x2203('0xe')]('/:id',auth[_0x2203('0x9')](),controller[_0x2203('0xf')]);router[_0x2203('0x10')]('/:id',auth[_0x2203('0x9')](),controller['destroy']);module[_0x2203('0x11')]=router;
\ No newline at end of file
+var _0x8603=['../../components/interaction/service','./squareMessage.controller','isAuthenticated','index','get','/:id','create','put','update','exports','util','path','connect-timeout','fs-extra','../../components/auth/service'];(function(_0x53afe9,_0x2c9f40){var _0x396396=function(_0x1f574d){while(--_0x1f574d){_0x53afe9['push'](_0x53afe9['shift']());}};_0x396396(++_0x2c9f40);}(_0x8603,0x190));var _0x3860=function(_0x4cb17f,_0x3dd558){_0x4cb17f=_0x4cb17f-0x0;var _0x5add10=_0x8603[_0x4cb17f];return _0x5add10;};'use strict';var multer=require('multer');var util=require(_0x3860('0x0'));var path=require(_0x3860('0x1'));var timeout=require(_0x3860('0x2'));var express=require('express');var router=express['Router']();var fs_extra=require(_0x3860('0x3'));var auth=require(_0x3860('0x4'));var interaction=require(_0x3860('0x5'));var config=require('../../config/environment');var controller=require(_0x3860('0x6'));router['get']('/',auth[_0x3860('0x7')](),controller[_0x3860('0x8')]);router[_0x3860('0x9')](_0x3860('0xa'),auth[_0x3860('0x7')](),controller['show']);router['post']('/',auth['isAuthenticated'](),controller[_0x3860('0xb')]);router[_0x3860('0xc')]('/:id',auth[_0x3860('0x7')](),controller[_0x3860('0xd')]);router['delete'](_0x3860('0xa'),auth[_0x3860('0x7')](),controller['destroy']);module[_0x3860('0xe')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3065=['sequelize','STRING','medium','out','TEXT'];(function(_0x2064e5,_0x4f6fa2){var _0x21a233=function(_0x1b2491){while(--_0x1b2491){_0x2064e5['push'](_0x2064e5['shift']());}};_0x21a233(++_0x4f6fa2);}(_0x3065,0x14a));var _0x5306=function(_0x275e42,_0xcb8b2d){_0x275e42=_0x275e42-0x0;var _0x4ce881=_0x3065[_0x275e42];return _0x4ce881;};'use strict';var Sequelize=require(_0x5306('0x0'));module['exports']={'uniqueid':{'type':Sequelize[_0x5306('0x1')]},'body':{'type':Sequelize['TEXT'](_0x5306('0x2')),'allowNull':![]},'direction':{'type':Sequelize['ENUM']('in',_0x5306('0x3')),'defaultValue':'out','allowNull':![]},'providerName':{'type':Sequelize['STRING']},'providerResponse':{'type':Sequelize[_0x5306('0x4')]}};
\ No newline at end of file
+var _0x98b4=['exports','STRING','TEXT','ENUM','out','sequelize'];(function(_0x358e13,_0x37c1ae){var _0xdf01c2=function(_0x5524b0){while(--_0x5524b0){_0x358e13['push'](_0x358e13['shift']());}};_0xdf01c2(++_0x37c1ae);}(_0x98b4,0x1a9));var _0x498b=function(_0x5f0089,_0x227e2c){_0x5f0089=_0x5f0089-0x0;var _0x193892=_0x98b4[_0x5f0089];return _0x193892;};'use strict';var Sequelize=require(_0x498b('0x0'));module[_0x498b('0x1')]={'uniqueid':{'type':Sequelize[_0x498b('0x2')]},'body':{'type':Sequelize[_0x498b('0x3')]('medium'),'allowNull':![]},'direction':{'type':Sequelize[_0x498b('0x4')]('in',_0x498b('0x5')),'defaultValue':_0x498b('0x5'),'allowNull':![]},'providerName':{'type':Sequelize[_0x498b('0x2')]},'providerResponse':{'type':Sequelize[_0x498b('0x3')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdbc6=['create','body','find','zip-dir','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','destroy','error','stack','name','send','index','map','SquareMessage','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','VIRTUAL','options','includeAll','include','findAll','then','rows','show','params','rawAttributes','catch'];(function(_0x179be6,_0x2b1773){var _0xe11a4e=function(_0x1f94e9){while(--_0x1f94e9){_0x179be6['push'](_0x179be6['shift']());}};_0xe11a4e(++_0x2b1773);}(_0xdbc6,0x13b));var _0x6dbc=function(_0x28339f,_0x14b57f){_0x28339f=_0x28339f-0x0;var _0x4217eb=_0xdbc6[_0x28339f];return _0x4217eb;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x6dbc('0x0'));var jsonpatch=require('fast-json-patch');var rp=require(_0x6dbc('0x1'));var moment=require(_0x6dbc('0x2'));var BPromise=require(_0x6dbc('0x3'));var Mustache=require(_0x6dbc('0x4'));var util=require(_0x6dbc('0x5'));var path=require(_0x6dbc('0x6'));var sox=require('sox');var csv=require(_0x6dbc('0x7'));var ejs=require(_0x6dbc('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x6dbc('0x9'));var squel=require(_0x6dbc('0xa'));var crypto=require(_0x6dbc('0xb'));var jsforce=require(_0x6dbc('0xc'));var deskjs=require(_0x6dbc('0xd'));var toCsv=require('to-csv');var querystring=require(_0x6dbc('0xe'));var Papa=require(_0x6dbc('0xf'));var Redis=require('ioredis');var authService=require(_0x6dbc('0x10'));var qs=require(_0x6dbc('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x6dbc('0x12'));var logger=require(_0x6dbc('0x13'))(_0x6dbc('0x14'));var utils=require(_0x6dbc('0x15'));var config=require(_0x6dbc('0x16'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x296a9b,_0x1da999){_0x1da999=_0x1da999||0xcc;return function(_0x44591c){if(_0x44591c){return _0x296a9b[_0x6dbc('0x17')](_0x1da999);}return _0x296a9b[_0x6dbc('0x18')](_0x1da999)[_0x6dbc('0x19')]();};}function respondWithResult(_0x314a55,_0x424e52){_0x424e52=_0x424e52||0xc8;return function(_0x297b6a){if(_0x297b6a){return _0x314a55['status'](_0x424e52)[_0x6dbc('0x1a')](_0x297b6a);}};}function respondWithFilteredResult(_0x3fc449,_0x12a257){return function(_0x418e71){if(_0x418e71){var _0x25b8a8=typeof _0x12a257[_0x6dbc('0x1b')]===_0x6dbc('0x1c')&&typeof _0x12a257[_0x6dbc('0x1d')]==='undefined';var _0x5a896d=_0x418e71['count'];var _0x285ccd=_0x25b8a8?0x0:_0x12a257[_0x6dbc('0x1b')];var _0x1f185b=_0x25b8a8?_0x418e71[_0x6dbc('0x1e')]:_0x12a257[_0x6dbc('0x1b')]+_0x12a257['limit'];var _0x44435c;if(_0x1f185b>=_0x5a896d){_0x1f185b=_0x5a896d;_0x44435c=0xc8;}else{_0x44435c=0xce;}_0x3fc449[_0x6dbc('0x18')](_0x44435c);return _0x3fc449[_0x6dbc('0x1f')](_0x6dbc('0x20'),_0x285ccd+'-'+_0x1f185b+'/'+_0x5a896d)[_0x6dbc('0x1a')](_0x418e71);}return null;};}function patchUpdates(_0x2cd2f1){return function(_0x94335e){try{jsonpatch[_0x6dbc('0x21')](_0x94335e,_0x2cd2f1,!![]);}catch(_0x9edc7a){return BPromise[_0x6dbc('0x22')](_0x9edc7a);}return _0x94335e[_0x6dbc('0x23')]();};}function saveUpdates(_0x581438,_0x2f106f){return function(_0x2a1d0d){if(_0x2a1d0d){return _0x2a1d0d[_0x6dbc('0x24')](_0x581438)['then'](function(_0x1b8e84){return _0x1b8e84;});}return null;};}function removeEntity(_0x47d55b,_0x3e98b2){return function(_0x3f290e){if(_0x3f290e){return _0x3f290e[_0x6dbc('0x25')]()['then'](function(){_0x47d55b[_0x6dbc('0x18')](0xcc)[_0x6dbc('0x19')]();});}};}function handleEntityNotFound(_0x2be03c,_0x8cc556){return function(_0xd6dd78){if(!_0xd6dd78){_0x2be03c[_0x6dbc('0x17')](0x194);}return _0xd6dd78;};}function handleError(_0x43fab4,_0x1eb3fd){_0x1eb3fd=_0x1eb3fd||0x1f4;return function(_0x4bcbfb){logger[_0x6dbc('0x26')](_0x4bcbfb[_0x6dbc('0x27')]);if(_0x4bcbfb[_0x6dbc('0x28')]){delete _0x4bcbfb[_0x6dbc('0x28')];}_0x43fab4[_0x6dbc('0x18')](_0x1eb3fd)[_0x6dbc('0x29')](_0x4bcbfb);};}exports[_0x6dbc('0x2a')]=function(_0x235e00,_0xe77d87){var _0x485593={},_0x23ea7d={},_0x17203d={'count':0x0,'rows':[]};var _0x7d6155=_[_0x6dbc('0x2b')](db[_0x6dbc('0x2c')]['rawAttributes'],function(_0x3e2788){return{'name':_0x3e2788[_0x6dbc('0x2d')],'type':_0x3e2788[_0x6dbc('0x2e')][_0x6dbc('0x2f')]};});_0x23ea7d[_0x6dbc('0x30')]=_[_0x6dbc('0x2b')](_0x7d6155,'name');_0x23ea7d[_0x6dbc('0x31')]=_[_0x6dbc('0x32')](_0x235e00[_0x6dbc('0x31')]);_0x23ea7d[_0x6dbc('0x33')]=_[_0x6dbc('0x34')](_0x23ea7d[_0x6dbc('0x30')],_0x23ea7d[_0x6dbc('0x31')]);_0x485593[_0x6dbc('0x35')]=_[_0x6dbc('0x34')](_0x23ea7d[_0x6dbc('0x30')],qs[_0x6dbc('0x36')](_0x235e00[_0x6dbc('0x31')][_0x6dbc('0x36')]));_0x485593[_0x6dbc('0x35')]=_0x485593[_0x6dbc('0x35')][_0x6dbc('0x37')]?_0x485593[_0x6dbc('0x35')]:_0x23ea7d[_0x6dbc('0x30')];if(!_0x235e00[_0x6dbc('0x31')][_0x6dbc('0x38')](_0x6dbc('0x39'))){_0x485593[_0x6dbc('0x1d')]=qs[_0x6dbc('0x1d')](_0x235e00[_0x6dbc('0x31')][_0x6dbc('0x1d')]);_0x485593[_0x6dbc('0x1b')]=qs['offset'](_0x235e00['query'][_0x6dbc('0x1b')]);}_0x485593[_0x6dbc('0x3a')]=qs[_0x6dbc('0x3b')](_0x235e00['query'][_0x6dbc('0x3b')]);_0x485593['where']=qs['filters'](_[_0x6dbc('0x3c')](_0x235e00[_0x6dbc('0x31')],_0x23ea7d['filters']),_0x7d6155);if(_0x235e00[_0x6dbc('0x31')][_0x6dbc('0x3d')]){_0x485593[_0x6dbc('0x3e')]=_[_0x6dbc('0x3f')](_0x485593[_0x6dbc('0x3e')],{'$or':_['map'](_0x7d6155,function(_0x2c7545){if(_0x2c7545['type']!==_0x6dbc('0x40')){var _0x11554b={};_0x11554b[_0x2c7545['name']]={'$like':'%'+_0x235e00[_0x6dbc('0x31')][_0x6dbc('0x3d')]+'%'};return _0x11554b;}})});}_0x485593=_[_0x6dbc('0x3f')]({},_0x485593,_0x235e00[_0x6dbc('0x41')]);var _0x40d79e={'where':_0x485593['where']};return db[_0x6dbc('0x2c')]['count'](_0x40d79e)['then'](function(_0x501d15){_0x17203d[_0x6dbc('0x1e')]=_0x501d15;if(_0x235e00[_0x6dbc('0x31')][_0x6dbc('0x42')]){_0x485593[_0x6dbc('0x43')]=[{'all':!![]}];}return db[_0x6dbc('0x2c')][_0x6dbc('0x44')](_0x485593);})[_0x6dbc('0x45')](function(_0x39df60){_0x17203d[_0x6dbc('0x46')]=_0x39df60;return _0x17203d;})[_0x6dbc('0x45')](respondWithFilteredResult(_0xe77d87,_0x485593))['catch'](handleError(_0xe77d87,null));};exports[_0x6dbc('0x47')]=function(_0x3b74b0,_0x5cd3b9){var _0x1b946b={'raw':!![],'where':{'id':_0x3b74b0[_0x6dbc('0x48')]['id']}},_0x39adea={};_0x39adea[_0x6dbc('0x30')]=_[_0x6dbc('0x32')](db['SquareMessage'][_0x6dbc('0x49')]);_0x39adea[_0x6dbc('0x31')]=_[_0x6dbc('0x32')](_0x3b74b0[_0x6dbc('0x31')]);_0x39adea[_0x6dbc('0x33')]=_[_0x6dbc('0x34')](_0x39adea[_0x6dbc('0x30')],_0x39adea['query']);_0x1b946b[_0x6dbc('0x35')]=_['intersection'](_0x39adea[_0x6dbc('0x30')],qs[_0x6dbc('0x36')](_0x3b74b0[_0x6dbc('0x31')][_0x6dbc('0x36')]));_0x1b946b[_0x6dbc('0x35')]=_0x1b946b[_0x6dbc('0x35')][_0x6dbc('0x37')]?_0x1b946b[_0x6dbc('0x35')]:_0x39adea[_0x6dbc('0x30')];if(_0x3b74b0['query'][_0x6dbc('0x42')]){_0x1b946b[_0x6dbc('0x43')]=[{'all':!![]}];}_0x1b946b=_[_0x6dbc('0x3f')]({},_0x1b946b,_0x3b74b0[_0x6dbc('0x41')]);return db['SquareMessage']['find'](_0x1b946b)[_0x6dbc('0x45')](handleEntityNotFound(_0x5cd3b9,null))['then'](respondWithResult(_0x5cd3b9,null))[_0x6dbc('0x4a')](handleError(_0x5cd3b9,null));};exports[_0x6dbc('0x4b')]=function(_0x45b4d6,_0xfda49d){return db[_0x6dbc('0x2c')]['create'](_0x45b4d6[_0x6dbc('0x4c')],{})[_0x6dbc('0x45')](respondWithResult(_0xfda49d,0xc9))[_0x6dbc('0x4a')](handleError(_0xfda49d,null));};exports['update']=function(_0x427210,_0x82ea74){if(_0x427210['body']['id']){delete _0x427210[_0x6dbc('0x4c')]['id'];}return db[_0x6dbc('0x2c')][_0x6dbc('0x4d')]({'where':{'id':_0x427210['params']['id']}})['then'](handleEntityNotFound(_0x82ea74,null))['then'](saveUpdates(_0x427210['body'],null))[_0x6dbc('0x45')](respondWithResult(_0x82ea74,null))[_0x6dbc('0x4a')](handleError(_0x82ea74,null));};exports[_0x6dbc('0x25')]=function(_0x5501cc,_0x23f39b){return db[_0x6dbc('0x2c')][_0x6dbc('0x4d')]({'where':{'id':_0x5501cc['params']['id']}})['then'](handleEntityNotFound(_0x23f39b,null))[_0x6dbc('0x45')](removeEntity(_0x23f39b,null))[_0x6dbc('0x4a')](handleError(_0x23f39b,null));};
\ No newline at end of file
+var _0xa2d0=['api','../../config/utils','../../mysqldb','status','json','offset','undefined','limit','count','Content-Range','apply','reject','save','update','then','error','stack','name','index','map','SquareMessage','rawAttributes','type','key','model','query','keys','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','filters','merge','filter','options','includeAll','include','findAll','rows','show','length','catch','create','body','find','params','destroy','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','ejs','crypto','desk.js','to-csv','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger'];(function(_0x4cde4c,_0x298f36){var _0x5b649b=function(_0x50362b){while(--_0x50362b){_0x4cde4c['push'](_0x4cde4c['shift']());}};_0x5b649b(++_0x298f36);}(_0xa2d0,0x77));var _0x0a2d=function(_0x70f4a6,_0x2652ba){_0x70f4a6=_0x70f4a6-0x0;var _0x33d1eb=_0xa2d0[_0x70f4a6];return _0x33d1eb;};'use strict';var emlformat=require(_0x0a2d('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x0a2d('0x1'));var jsonpatch=require(_0x0a2d('0x2'));var rp=require(_0x0a2d('0x3'));var moment=require(_0x0a2d('0x4'));var BPromise=require(_0x0a2d('0x5'));var Mustache=require(_0x0a2d('0x6'));var util=require(_0x0a2d('0x7'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x0a2d('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require('squel');var crypto=require(_0x0a2d('0x9'));var jsforce=require('jsforce');var deskjs=require(_0x0a2d('0xa'));var toCsv=require(_0x0a2d('0xb'));var querystring=require('querystring');var Papa=require(_0x0a2d('0xc'));var Redis=require('ioredis');var authService=require(_0x0a2d('0xd'));var qs=require(_0x0a2d('0xe'));var as=require(_0x0a2d('0xf'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x0a2d('0x10'))(_0x0a2d('0x11'));var utils=require(_0x0a2d('0x12'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x0a2d('0x13'))['db'];function respondWithStatusCode(_0x3d1e2d,_0x241719){_0x241719=_0x241719||0xcc;return function(_0x155eaa){if(_0x155eaa){return _0x3d1e2d['sendStatus'](_0x241719);}return _0x3d1e2d[_0x0a2d('0x14')](_0x241719)['end']();};}function respondWithResult(_0x215d9c,_0x4ef565){_0x4ef565=_0x4ef565||0xc8;return function(_0x40b9bd){if(_0x40b9bd){return _0x215d9c[_0x0a2d('0x14')](_0x4ef565)[_0x0a2d('0x15')](_0x40b9bd);}};}function respondWithFilteredResult(_0x17c49f,_0x102c13){return function(_0x2b94be){if(_0x2b94be){var _0xe4dcc=typeof _0x102c13[_0x0a2d('0x16')]===_0x0a2d('0x17')&&typeof _0x102c13[_0x0a2d('0x18')]===_0x0a2d('0x17');var _0x1de418=_0x2b94be[_0x0a2d('0x19')];var _0x225f64=_0xe4dcc?0x0:_0x102c13['offset'];var _0x15594f=_0xe4dcc?_0x2b94be['count']:_0x102c13[_0x0a2d('0x16')]+_0x102c13[_0x0a2d('0x18')];var _0x4afe9e;if(_0x15594f>=_0x1de418){_0x15594f=_0x1de418;_0x4afe9e=0xc8;}else{_0x4afe9e=0xce;}_0x17c49f[_0x0a2d('0x14')](_0x4afe9e);return _0x17c49f['set'](_0x0a2d('0x1a'),_0x225f64+'-'+_0x15594f+'/'+_0x1de418)[_0x0a2d('0x15')](_0x2b94be);}return null;};}function patchUpdates(_0x543b80){return function(_0x50f285){try{jsonpatch[_0x0a2d('0x1b')](_0x50f285,_0x543b80,!![]);}catch(_0x959060){return BPromise[_0x0a2d('0x1c')](_0x959060);}return _0x50f285[_0x0a2d('0x1d')]();};}function saveUpdates(_0x4e9fa1,_0x388adc){return function(_0x1b803e){if(_0x1b803e){return _0x1b803e[_0x0a2d('0x1e')](_0x4e9fa1)[_0x0a2d('0x1f')](function(_0x3b9a3a){return _0x3b9a3a;});}return null;};}function removeEntity(_0x47a489,_0x3be650){return function(_0x1b0b01){if(_0x1b0b01){return _0x1b0b01['destroy']()[_0x0a2d('0x1f')](function(){_0x47a489[_0x0a2d('0x14')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3a68ce,_0x593841){return function(_0x49ec0b){if(!_0x49ec0b){_0x3a68ce['sendStatus'](0x194);}return _0x49ec0b;};}function handleError(_0x2efa0b,_0x4135ed){_0x4135ed=_0x4135ed||0x1f4;return function(_0x570a3e){logger[_0x0a2d('0x20')](_0x570a3e[_0x0a2d('0x21')]);if(_0x570a3e[_0x0a2d('0x22')]){delete _0x570a3e[_0x0a2d('0x22')];}_0x2efa0b['status'](_0x4135ed)['send'](_0x570a3e);};}exports[_0x0a2d('0x23')]=function(_0x357258,_0x1ed390){var _0x470679={},_0x4615e2={},_0x1095d2={'count':0x0,'rows':[]};var _0x181e98=_[_0x0a2d('0x24')](db[_0x0a2d('0x25')][_0x0a2d('0x26')],function(_0x568935){return{'name':_0x568935['fieldName'],'type':_0x568935[_0x0a2d('0x27')][_0x0a2d('0x28')]};});_0x4615e2[_0x0a2d('0x29')]=_[_0x0a2d('0x24')](_0x181e98,_0x0a2d('0x22'));_0x4615e2[_0x0a2d('0x2a')]=_[_0x0a2d('0x2b')](_0x357258[_0x0a2d('0x2a')]);_0x4615e2['filters']=_[_0x0a2d('0x2c')](_0x4615e2[_0x0a2d('0x29')],_0x4615e2[_0x0a2d('0x2a')]);_0x470679[_0x0a2d('0x2d')]=_[_0x0a2d('0x2c')](_0x4615e2[_0x0a2d('0x29')],qs['fields'](_0x357258[_0x0a2d('0x2a')][_0x0a2d('0x2e')]));_0x470679[_0x0a2d('0x2d')]=_0x470679[_0x0a2d('0x2d')]['length']?_0x470679['attributes']:_0x4615e2['model'];if(!_0x357258[_0x0a2d('0x2a')][_0x0a2d('0x2f')](_0x0a2d('0x30'))){_0x470679['limit']=qs[_0x0a2d('0x18')](_0x357258[_0x0a2d('0x2a')][_0x0a2d('0x18')]);_0x470679['offset']=qs['offset'](_0x357258[_0x0a2d('0x2a')][_0x0a2d('0x16')]);}_0x470679[_0x0a2d('0x31')]=qs[_0x0a2d('0x32')](_0x357258[_0x0a2d('0x2a')]['sort']);_0x470679[_0x0a2d('0x33')]=qs['filters'](_['pick'](_0x357258[_0x0a2d('0x2a')],_0x4615e2[_0x0a2d('0x34')]),_0x181e98);if(_0x357258[_0x0a2d('0x2a')]['filter']){_0x470679[_0x0a2d('0x33')]=_[_0x0a2d('0x35')](_0x470679[_0x0a2d('0x33')],{'$or':_[_0x0a2d('0x24')](_0x181e98,function(_0x424c3c){if(_0x424c3c[_0x0a2d('0x27')]!=='VIRTUAL'){var _0x378dd5={};_0x378dd5[_0x424c3c[_0x0a2d('0x22')]]={'$like':'%'+_0x357258[_0x0a2d('0x2a')][_0x0a2d('0x36')]+'%'};return _0x378dd5;}})});}_0x470679=_[_0x0a2d('0x35')]({},_0x470679,_0x357258[_0x0a2d('0x37')]);var _0x5b7c8f={'where':_0x470679['where']};return db['SquareMessage']['count'](_0x5b7c8f)[_0x0a2d('0x1f')](function(_0x549d2f){_0x1095d2[_0x0a2d('0x19')]=_0x549d2f;if(_0x357258[_0x0a2d('0x2a')][_0x0a2d('0x38')]){_0x470679[_0x0a2d('0x39')]=[{'all':!![]}];}return db['SquareMessage'][_0x0a2d('0x3a')](_0x470679);})[_0x0a2d('0x1f')](function(_0xd83776){_0x1095d2[_0x0a2d('0x3b')]=_0xd83776;return _0x1095d2;})[_0x0a2d('0x1f')](respondWithFilteredResult(_0x1ed390,_0x470679))['catch'](handleError(_0x1ed390,null));};exports[_0x0a2d('0x3c')]=function(_0x3300ed,_0x2b15d3){var _0x3f4122={'raw':!![],'where':{'id':_0x3300ed['params']['id']}},_0x958e67={};_0x958e67['model']=_[_0x0a2d('0x2b')](db['SquareMessage']['rawAttributes']);_0x958e67[_0x0a2d('0x2a')]=_[_0x0a2d('0x2b')](_0x3300ed[_0x0a2d('0x2a')]);_0x958e67[_0x0a2d('0x34')]=_[_0x0a2d('0x2c')](_0x958e67[_0x0a2d('0x29')],_0x958e67[_0x0a2d('0x2a')]);_0x3f4122['attributes']=_['intersection'](_0x958e67[_0x0a2d('0x29')],qs[_0x0a2d('0x2e')](_0x3300ed[_0x0a2d('0x2a')][_0x0a2d('0x2e')]));_0x3f4122[_0x0a2d('0x2d')]=_0x3f4122[_0x0a2d('0x2d')][_0x0a2d('0x3d')]?_0x3f4122['attributes']:_0x958e67[_0x0a2d('0x29')];if(_0x3300ed['query'][_0x0a2d('0x38')]){_0x3f4122[_0x0a2d('0x39')]=[{'all':!![]}];}_0x3f4122=_[_0x0a2d('0x35')]({},_0x3f4122,_0x3300ed[_0x0a2d('0x37')]);return db['SquareMessage']['find'](_0x3f4122)['then'](handleEntityNotFound(_0x2b15d3,null))[_0x0a2d('0x1f')](respondWithResult(_0x2b15d3,null))[_0x0a2d('0x3e')](handleError(_0x2b15d3,null));};exports[_0x0a2d('0x3f')]=function(_0x24549c,_0x56b99e){return db['SquareMessage'][_0x0a2d('0x3f')](_0x24549c['body'],{})[_0x0a2d('0x1f')](respondWithResult(_0x56b99e,0xc9))[_0x0a2d('0x3e')](handleError(_0x56b99e,null));};exports[_0x0a2d('0x1e')]=function(_0x567c54,_0x1cf954){if(_0x567c54['body']['id']){delete _0x567c54[_0x0a2d('0x40')]['id'];}return db['SquareMessage'][_0x0a2d('0x41')]({'where':{'id':_0x567c54[_0x0a2d('0x42')]['id']}})[_0x0a2d('0x1f')](handleEntityNotFound(_0x1cf954,null))['then'](saveUpdates(_0x567c54[_0x0a2d('0x40')],null))['then'](respondWithResult(_0x1cf954,null))['catch'](handleError(_0x1cf954,null));};exports[_0x0a2d('0x43')]=function(_0xc6f0da,_0x2bd68a){return db[_0x0a2d('0x25')][_0x0a2d('0x41')]({'where':{'id':_0xc6f0da[_0x0a2d('0x42')]['id']}})['then'](handleEntityNotFound(_0x2bd68a,null))[_0x0a2d('0x1f')](removeEntity(_0x2bd68a,null))['catch'](handleError(_0x2bd68a,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xab84=['exports','SquareMessage','square_messages','lodash','util','api','moment','bluebird','request-promise','rimraf'];(function(_0x2db667,_0x193cf5){var _0x83ff9=function(_0x5da022){while(--_0x5da022){_0x2db667['push'](_0x2db667['shift']());}};_0x83ff9(++_0x193cf5);}(_0xab84,0x12f));var _0x4ab8=function(_0x4df359,_0x141e94){_0x4df359=_0x4df359-0x0;var _0x2f64f2=_0xab84[_0x4df359];return _0x2f64f2;};'use strict';var _=require(_0x4ab8('0x0'));var util=require(_0x4ab8('0x1'));var logger=require('../../config/logger')(_0x4ab8('0x2'));var moment=require(_0x4ab8('0x3'));var BPromise=require(_0x4ab8('0x4'));var rp=require(_0x4ab8('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x4ab8('0x6'));var config=require('../../config/environment');var attributes=require('./squareMessage.attributes');module[_0x4ab8('0x7')]=function(_0x2b83ec,_0x50c6ab){return _0x2b83ec['define'](_0x4ab8('0x8'),attributes,{'tableName':_0x4ab8('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xbe34=['path','rimraf','./squareMessage.attributes','exports','define','SquareMessage','square_messages','lodash','util','../../config/logger','api','moment','bluebird'];(function(_0x88e9e,_0x3c052f){var _0x304fb4=function(_0x3513ef){while(--_0x3513ef){_0x88e9e['push'](_0x88e9e['shift']());}};_0x304fb4(++_0x3c052f);}(_0xbe34,0x14c));var _0x4be3=function(_0xfae23b,_0x2be4ba){_0xfae23b=_0xfae23b-0x0;var _0x200640=_0xbe34[_0xfae23b];return _0x200640;};'use strict';var _=require(_0x4be3('0x0'));var util=require(_0x4be3('0x1'));var logger=require(_0x4be3('0x2'))(_0x4be3('0x3'));var moment=require(_0x4be3('0x4'));var BPromise=require(_0x4be3('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x4be3('0x6'));var rimraf=require(_0x4be3('0x7'));var config=require('../../config/environment');var attributes=require(_0x4be3('0x8'));module[_0x4be3('0x9')]=function(_0x38dfeb,_0x2770bd){return _0x38dfeb[_0x4be3('0xa')](_0x4be3('0xb'),attributes,{'tableName':_0x4be3('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x26f3=['lodash','util','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','request','then','info','SquareMessage,\x20%s,\x20%s','request\x20sent','stringify','code','error','message','result','catch','CreateSquareMessage','SquareMessage','body','options','raw','debug'];(function(_0x29d005,_0x4ebcc6){var _0x328b3b=function(_0x576889){while(--_0x576889){_0x29d005['push'](_0x29d005['shift']());}};_0x328b3b(++_0x4ebcc6);}(_0x26f3,0x87));var _0x326f=function(_0x11f5ff,_0xa0ef18){_0x11f5ff=_0x11f5ff-0x0;var _0x46eefb=_0x26f3[_0x11f5ff];return _0x46eefb;};'use strict';var _=require(_0x326f('0x0'));var util=require(_0x326f('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x326f('0x2'));var db=require(_0x326f('0x3'))['db'];var utils=require(_0x326f('0x4'));var logger=require('../../config/logger')(_0x326f('0x5'));var config=require(_0x326f('0x6'));var jayson=require(_0x326f('0x7'));var client=jayson[_0x326f('0x8')][_0x326f('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x5a6e2d,_0x341f9b,_0xb03def){return new BPromise(function(_0x2e0379,_0x3b0633){return client[_0x326f('0xa')](_0x5a6e2d,_0xb03def)[_0x326f('0xb')](function(_0x32237d){logger[_0x326f('0xc')](_0x326f('0xd'),_0x341f9b,_0x326f('0xe'));logger['debug']('SquareMessage,\x20%s,\x20%s,\x20%s',_0x341f9b,_0x326f('0xe'),JSON[_0x326f('0xf')](_0x32237d));if(_0x32237d['error']){if(_0x32237d['error'][_0x326f('0x10')]===0x1f4){logger[_0x326f('0x11')]('SquareMessage,\x20%s,\x20%s',_0x341f9b,_0x32237d[_0x326f('0x11')][_0x326f('0x12')]);return _0x3b0633(_0x32237d[_0x326f('0x11')][_0x326f('0x12')]);}logger['error'](_0x326f('0xd'),_0x341f9b,_0x32237d['error']['message']);return _0x2e0379(_0x32237d[_0x326f('0x11')][_0x326f('0x12')]);}else{logger[_0x326f('0xc')](_0x326f('0xd'),_0x341f9b,_0x326f('0xe'));_0x2e0379(_0x32237d[_0x326f('0x13')]['message']);}})[_0x326f('0x14')](function(_0x29cd5d){logger[_0x326f('0x11')](_0x326f('0xd'),_0x341f9b,_0x29cd5d);_0x3b0633(_0x29cd5d);});});}exports[_0x326f('0x15')]=function(_0x38376f){var _0x5b2c93=this;return new Promise(function(_0xd77b22,_0x21b382){return db[_0x326f('0x16')]['create'](_0x38376f[_0x326f('0x17')],{'raw':_0x38376f[_0x326f('0x18')]?_0x38376f[_0x326f('0x18')][_0x326f('0x19')]===undefined?!![]:![]:!![]})[_0x326f('0xb')](function(_0x5b2083){logger[_0x326f('0xc')](_0x326f('0x15'),_0x38376f);logger[_0x326f('0x1a')](_0x326f('0x15'),_0x38376f,JSON[_0x326f('0xf')](_0x5b2083));_0xd77b22(_0x5b2083);})[_0x326f('0x14')](function(_0x59d68a){logger[_0x326f('0x11')](_0x326f('0x15'),_0x59d68a[_0x326f('0x12')],_0x38376f);_0x21b382(_0x5b2c93[_0x326f('0x11')](0x1f4,_0x59d68a['message']));});});};
\ No newline at end of file
+var _0x3751=['SquareMessage,\x20%s,\x20%s,\x20%s','stringify','error','message','SquareMessage,\x20%s,\x20%s','result','SquareMessage','create','body','options','raw','then','debug','CreateSquareMessage','catch','lodash','util','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','jayson/promise','http','request','info','request\x20sent'];(function(_0x465a0c,_0x19d4d5){var _0x1e202e=function(_0x27bd8a){while(--_0x27bd8a){_0x465a0c['push'](_0x465a0c['shift']());}};_0x1e202e(++_0x19d4d5);}(_0x3751,0x1da));var _0x1375=function(_0x11fcba,_0x46ac13){_0x11fcba=_0x11fcba-0x0;var _0x2c792a=_0x3751[_0x11fcba];return _0x2c792a;};'use strict';var _=require(_0x1375('0x0'));var util=require(_0x1375('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x1375('0x2'));var fs=require('fs');var Redis=require(_0x1375('0x3'));var db=require(_0x1375('0x4'))['db'];var utils=require(_0x1375('0x5'));var logger=require(_0x1375('0x6'))('rpc');var config=require('../../config/environment');var jayson=require(_0x1375('0x7'));var client=jayson['client'][_0x1375('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x44ddc1,_0x2c9361,_0x217e6f){return new BPromise(function(_0x5ce1ca,_0x5ba581){return client[_0x1375('0x9')](_0x44ddc1,_0x217e6f)['then'](function(_0x28e74e){logger[_0x1375('0xa')]('SquareMessage,\x20%s,\x20%s',_0x2c9361,_0x1375('0xb'));logger['debug'](_0x1375('0xc'),_0x2c9361,_0x1375('0xb'),JSON[_0x1375('0xd')](_0x28e74e));if(_0x28e74e['error']){if(_0x28e74e[_0x1375('0xe')]['code']===0x1f4){logger[_0x1375('0xe')]('SquareMessage,\x20%s,\x20%s',_0x2c9361,_0x28e74e[_0x1375('0xe')]['message']);return _0x5ba581(_0x28e74e[_0x1375('0xe')][_0x1375('0xf')]);}logger['error'](_0x1375('0x10'),_0x2c9361,_0x28e74e[_0x1375('0xe')]['message']);return _0x5ce1ca(_0x28e74e[_0x1375('0xe')][_0x1375('0xf')]);}else{logger['info'](_0x1375('0x10'),_0x2c9361,'request\x20sent');_0x5ce1ca(_0x28e74e[_0x1375('0x11')][_0x1375('0xf')]);}})['catch'](function(_0x1b4d77){logger[_0x1375('0xe')](_0x1375('0x10'),_0x2c9361,_0x1b4d77);_0x5ba581(_0x1b4d77);});});}exports['CreateSquareMessage']=function(_0x7d832a){var _0xff6f9c=this;return new Promise(function(_0x2b7097,_0x5d7a53){return db[_0x1375('0x12')][_0x1375('0x13')](_0x7d832a[_0x1375('0x14')],{'raw':_0x7d832a['options']?_0x7d832a[_0x1375('0x15')][_0x1375('0x16')]===undefined?!![]:![]:!![]})[_0x1375('0x17')](function(_0x523739){logger[_0x1375('0xa')]('CreateSquareMessage',_0x7d832a);logger[_0x1375('0x18')](_0x1375('0x19'),_0x7d832a,JSON['stringify'](_0x523739));_0x2b7097(_0x523739);})[_0x1375('0x1a')](function(_0x2301e7){logger[_0x1375('0xe')]('CreateSquareMessage',_0x2301e7[_0x1375('0xf')],_0x7d832a);_0x5d7a53(_0xff6f9c[_0x1375('0xe')](0x1f4,_0x2301e7[_0x1375('0xf')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6ac4=['multer','connect-timeout','Router','fs-extra','../../components/interaction/service','../../config/environment','./squareOdbc.controller','get','isAuthenticated','show','/:id/test','15s','post','/:id','update','delete','destroy','exports'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x6ac4,0x168));var _0x46ac=function(_0xe619e1,_0x2de70b){_0xe619e1=_0xe619e1-0x0;var _0x1f809e=_0x6ac4[_0xe619e1];return _0x1f809e;};'use strict';var multer=require(_0x46ac('0x0'));var util=require('util');var path=require('path');var timeout=require(_0x46ac('0x1'));var express=require('express');var router=express[_0x46ac('0x2')]();var fs_extra=require(_0x46ac('0x3'));var auth=require('../../components/auth/service');var interaction=require(_0x46ac('0x4'));var config=require(_0x46ac('0x5'));var controller=require(_0x46ac('0x6'));router[_0x46ac('0x7')]('/',auth[_0x46ac('0x8')](),controller['index']);router[_0x46ac('0x7')]('/:id',auth['isAuthenticated'](),controller[_0x46ac('0x9')]);router[_0x46ac('0x7')](_0x46ac('0xa'),auth[_0x46ac('0x8')](),timeout(_0x46ac('0xb')),controller['test']);router[_0x46ac('0xc')]('/',auth[_0x46ac('0x8')](),controller['create']);router['put'](_0x46ac('0xd'),auth[_0x46ac('0x8')](),controller[_0x46ac('0xe')]);router[_0x46ac('0xf')](_0x46ac('0xd'),auth[_0x46ac('0x8')](),controller[_0x46ac('0x10')]);module[_0x46ac('0x11')]=router;
\ No newline at end of file
+var _0xd665=['util','path','express','Router','fs-extra','../../components/auth/service','../../config/environment','get','isAuthenticated','index','/:id','show','15s','test','post','create','put','delete','destroy','exports','multer'];(function(_0x1793de,_0x4d7233){var _0x4f0309=function(_0x229ee7){while(--_0x229ee7){_0x1793de['push'](_0x1793de['shift']());}};_0x4f0309(++_0x4d7233);}(_0xd665,0x179));var _0x5d66=function(_0x497fdd,_0x4746ca){_0x497fdd=_0x497fdd-0x0;var _0x21a2d3=_0xd665[_0x497fdd];return _0x21a2d3;};'use strict';var multer=require(_0x5d66('0x0'));var util=require(_0x5d66('0x1'));var path=require(_0x5d66('0x2'));var timeout=require('connect-timeout');var express=require(_0x5d66('0x3'));var router=express[_0x5d66('0x4')]();var fs_extra=require(_0x5d66('0x5'));var auth=require(_0x5d66('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0x5d66('0x7'));var controller=require('./squareOdbc.controller');router[_0x5d66('0x8')]('/',auth[_0x5d66('0x9')](),controller[_0x5d66('0xa')]);router[_0x5d66('0x8')](_0x5d66('0xb'),auth[_0x5d66('0x9')](),controller[_0x5d66('0xc')]);router['get']('/:id/test',auth['isAuthenticated'](),timeout(_0x5d66('0xd')),controller[_0x5d66('0xe')]);router[_0x5d66('0xf')]('/',auth['isAuthenticated'](),controller[_0x5d66('0x10')]);router[_0x5d66('0x11')]('/:id',auth[_0x5d66('0x9')](),controller['update']);router[_0x5d66('0x12')](_0x5d66('0xb'),auth[_0x5d66('0x9')](),controller[_0x5d66('0x13')]);module[_0x5d66('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd69c=['exports','name','STRING','sequelize'];(function(_0x17c0b7,_0x11273b){var _0x5486f6=function(_0x48f4df){while(--_0x48f4df){_0x17c0b7['push'](_0x17c0b7['shift']());}};_0x5486f6(++_0x11273b);}(_0xd69c,0x12b));var _0xcd69=function(_0x4b2110,_0x23e430){_0x4b2110=_0x4b2110-0x0;var _0x1ce819=_0xd69c[_0x4b2110];return _0x1ce819;};'use strict';var Sequelize=require(_0xcd69('0x0'));module[_0xcd69('0x1')]={'name':{'type':Sequelize['STRING'],'unique':_0xcd69('0x2'),'allowNull':![]},'dsn':{'type':Sequelize[_0xcd69('0x3')]},'description':{'type':Sequelize[_0xcd69('0x3')]}};
\ No newline at end of file
+var _0x997a=['name','exports','STRING'];(function(_0x152c9d,_0x371656){var _0x462f34=function(_0x5a0f6b){while(--_0x5a0f6b){_0x152c9d['push'](_0x152c9d['shift']());}};_0x462f34(++_0x371656);}(_0x997a,0xac));var _0xa997=function(_0x502c7d,_0x2f1285){_0x502c7d=_0x502c7d-0x0;var _0x30b7ed=_0x997a[_0x502c7d];return _0x30b7ed;};'use strict';var Sequelize=require('sequelize');module[_0xa997('0x0')]={'name':{'type':Sequelize[_0xa997('0x1')],'unique':_0xa997('0x2'),'allowNull':![]},'dsn':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0xa997('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb953=['rows','catch','show','params','include','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','error','update','test','odbc','openSync','dsn','closeSync','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','count','limit','set','Content-Range','json','apply','reject','save','then','destroy','get','ODBC','UserProfileResource','stack','name','send','index','map','SquareOdbc','rawAttributes','fieldName','type','model','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','VIRTUAL','options','includeAll','findAll'];(function(_0x42cae2,_0x284ef8){var _0x5f256f=function(_0x41abc8){while(--_0x41abc8){_0x42cae2['push'](_0x42cae2['shift']());}};_0x5f256f(++_0x284ef8);}(_0xb953,0x191));var _0x3b95=function(_0x3da9d5,_0x240986){_0x3da9d5=_0x3da9d5-0x0;var _0x1f79e3=_0xb953[_0x3da9d5];return _0x1f79e3;};'use strict';var emlformat=require(_0x3b95('0x0'));var rimraf=require(_0x3b95('0x1'));var zipdir=require(_0x3b95('0x2'));var jsonpatch=require(_0x3b95('0x3'));var rp=require(_0x3b95('0x4'));var moment=require(_0x3b95('0x5'));var BPromise=require(_0x3b95('0x6'));var Mustache=require(_0x3b95('0x7'));var util=require(_0x3b95('0x8'));var path=require('path');var sox=require(_0x3b95('0x9'));var csv=require(_0x3b95('0xa'));var ejs=require(_0x3b95('0xb'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x3b95('0xc'));var squel=require(_0x3b95('0xd'));var crypto=require(_0x3b95('0xe'));var jsforce=require(_0x3b95('0xf'));var deskjs=require(_0x3b95('0x10'));var toCsv=require(_0x3b95('0xa'));var querystring=require('querystring');var Papa=require(_0x3b95('0x11'));var Redis=require(_0x3b95('0x12'));var authService=require(_0x3b95('0x13'));var qs=require(_0x3b95('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x3b95('0x15'));var logger=require(_0x3b95('0x16'))('api');var utils=require(_0x3b95('0x17'));var config=require(_0x3b95('0x18'));var licenseUtil=require(_0x3b95('0x19'));var db=require(_0x3b95('0x1a'))['db'];function respondWithStatusCode(_0x2e43d6,_0x343a61){_0x343a61=_0x343a61||0xcc;return function(_0x41ef66){if(_0x41ef66){return _0x2e43d6[_0x3b95('0x1b')](_0x343a61);}return _0x2e43d6[_0x3b95('0x1c')](_0x343a61)[_0x3b95('0x1d')]();};}function respondWithResult(_0x691a73,_0x50ffdd){_0x50ffdd=_0x50ffdd||0xc8;return function(_0x100bcb){if(_0x100bcb){return _0x691a73[_0x3b95('0x1c')](_0x50ffdd)['json'](_0x100bcb);}};}function respondWithFilteredResult(_0x212af4,_0xfb62e9){return function(_0x47e8db){if(_0x47e8db){var _0x17b26e=typeof _0xfb62e9[_0x3b95('0x1e')]===_0x3b95('0x1f')&&typeof _0xfb62e9['limit']===_0x3b95('0x1f');var _0x2f1b61=_0x47e8db[_0x3b95('0x20')];var _0x18a720=_0x17b26e?0x0:_0xfb62e9[_0x3b95('0x1e')];var _0x37a866=_0x17b26e?_0x47e8db[_0x3b95('0x20')]:_0xfb62e9[_0x3b95('0x1e')]+_0xfb62e9[_0x3b95('0x21')];var _0x220fac;if(_0x37a866>=_0x2f1b61){_0x37a866=_0x2f1b61;_0x220fac=0xc8;}else{_0x220fac=0xce;}_0x212af4[_0x3b95('0x1c')](_0x220fac);return _0x212af4[_0x3b95('0x22')](_0x3b95('0x23'),_0x18a720+'-'+_0x37a866+'/'+_0x2f1b61)[_0x3b95('0x24')](_0x47e8db);}return null;};}function patchUpdates(_0x220e36){return function(_0xcdcd0e){try{jsonpatch[_0x3b95('0x25')](_0xcdcd0e,_0x220e36,!![]);}catch(_0x582a0b){return BPromise[_0x3b95('0x26')](_0x582a0b);}return _0xcdcd0e[_0x3b95('0x27')]();};}function saveUpdates(_0x59d696,_0x327131){return function(_0x96bb44){if(_0x96bb44){return _0x96bb44['update'](_0x59d696)[_0x3b95('0x28')](function(_0x30c312){return _0x30c312;});}return null;};}function removeEntity(_0x42ff46,_0x39c015){return function(_0xf53521){if(_0xf53521){return _0xf53521[_0x3b95('0x29')]()['then'](function(){var _0x39e1e6=_0xf53521[_0x3b95('0x2a')]({'plain':!![]});var _0x61791=_0x3b95('0x2b');return db[_0x3b95('0x2c')][_0x3b95('0x29')]({'where':{'type':_0x61791,'resourceId':_0x39e1e6['id']}})[_0x3b95('0x28')](function(){return _0xf53521;});})['then'](function(){_0x42ff46['status'](0xcc)[_0x3b95('0x1d')]();});}};}function handleEntityNotFound(_0xbe19df,_0x2f312c){return function(_0x22a30a){if(!_0x22a30a){_0xbe19df[_0x3b95('0x1b')](0x194);}return _0x22a30a;};}function handleError(_0x18f340,_0x17b719){_0x17b719=_0x17b719||0x1f4;return function(_0x562dea){logger['error'](_0x562dea[_0x3b95('0x2d')]);if(_0x562dea[_0x3b95('0x2e')]){delete _0x562dea['name'];}_0x18f340[_0x3b95('0x1c')](_0x17b719)[_0x3b95('0x2f')](_0x562dea);};}exports[_0x3b95('0x30')]=function(_0x34fe7c,_0xaf9d8f){var _0x15210f={},_0x5ca94c={},_0x4ac40c={'count':0x0,'rows':[]};var _0x21ece3=_[_0x3b95('0x31')](db[_0x3b95('0x32')][_0x3b95('0x33')],function(_0x5d062f){return{'name':_0x5d062f[_0x3b95('0x34')],'type':_0x5d062f[_0x3b95('0x35')]['key']};});_0x5ca94c[_0x3b95('0x36')]=_[_0x3b95('0x31')](_0x21ece3,_0x3b95('0x2e'));_0x5ca94c[_0x3b95('0x37')]=_[_0x3b95('0x38')](_0x34fe7c['query']);_0x5ca94c[_0x3b95('0x39')]=_['intersection'](_0x5ca94c[_0x3b95('0x36')],_0x5ca94c['query']);_0x15210f[_0x3b95('0x3a')]=_[_0x3b95('0x3b')](_0x5ca94c['model'],qs[_0x3b95('0x3c')](_0x34fe7c[_0x3b95('0x37')]['fields']));_0x15210f[_0x3b95('0x3a')]=_0x15210f['attributes'][_0x3b95('0x3d')]?_0x15210f[_0x3b95('0x3a')]:_0x5ca94c[_0x3b95('0x36')];if(!_0x34fe7c['query'][_0x3b95('0x3e')](_0x3b95('0x3f'))){_0x15210f['limit']=qs[_0x3b95('0x21')](_0x34fe7c[_0x3b95('0x37')][_0x3b95('0x21')]);_0x15210f['offset']=qs[_0x3b95('0x1e')](_0x34fe7c[_0x3b95('0x37')][_0x3b95('0x1e')]);}_0x15210f[_0x3b95('0x40')]=qs[_0x3b95('0x41')](_0x34fe7c['query']['sort']);_0x15210f['where']=qs[_0x3b95('0x39')](_[_0x3b95('0x42')](_0x34fe7c[_0x3b95('0x37')],_0x5ca94c[_0x3b95('0x39')]),_0x21ece3);if(_0x34fe7c['query'][_0x3b95('0x43')]){_0x15210f[_0x3b95('0x44')]=_[_0x3b95('0x45')](_0x15210f[_0x3b95('0x44')],{'$or':_['map'](_0x21ece3,function(_0x6685ae){if(_0x6685ae[_0x3b95('0x35')]!==_0x3b95('0x46')){var _0x1357a3={};_0x1357a3[_0x6685ae[_0x3b95('0x2e')]]={'$like':'%'+_0x34fe7c[_0x3b95('0x37')][_0x3b95('0x43')]+'%'};return _0x1357a3;}})});}_0x15210f=_[_0x3b95('0x45')]({},_0x15210f,_0x34fe7c[_0x3b95('0x47')]);var _0x37a774={'where':_0x15210f[_0x3b95('0x44')]};return db['SquareOdbc'][_0x3b95('0x20')](_0x37a774)[_0x3b95('0x28')](function(_0x8a945a){_0x4ac40c[_0x3b95('0x20')]=_0x8a945a;if(_0x34fe7c[_0x3b95('0x37')][_0x3b95('0x48')]){_0x15210f['include']=[{'all':!![]}];}return db['SquareOdbc'][_0x3b95('0x49')](_0x15210f);})[_0x3b95('0x28')](function(_0x260ede){_0x4ac40c[_0x3b95('0x4a')]=_0x260ede;return _0x4ac40c;})[_0x3b95('0x28')](respondWithFilteredResult(_0xaf9d8f,_0x15210f))[_0x3b95('0x4b')](handleError(_0xaf9d8f,null));};exports[_0x3b95('0x4c')]=function(_0x4e5905,_0x543bd4){var _0x47a2e4={'raw':!![],'where':{'id':_0x4e5905[_0x3b95('0x4d')]['id']}},_0x2fd7d3={};_0x2fd7d3[_0x3b95('0x36')]=_[_0x3b95('0x38')](db['SquareOdbc'][_0x3b95('0x33')]);_0x2fd7d3[_0x3b95('0x37')]=_[_0x3b95('0x38')](_0x4e5905[_0x3b95('0x37')]);_0x2fd7d3[_0x3b95('0x39')]=_['intersection'](_0x2fd7d3[_0x3b95('0x36')],_0x2fd7d3[_0x3b95('0x37')]);_0x47a2e4[_0x3b95('0x3a')]=_['intersection'](_0x2fd7d3['model'],qs[_0x3b95('0x3c')](_0x4e5905[_0x3b95('0x37')][_0x3b95('0x3c')]));_0x47a2e4[_0x3b95('0x3a')]=_0x47a2e4[_0x3b95('0x3a')][_0x3b95('0x3d')]?_0x47a2e4[_0x3b95('0x3a')]:_0x2fd7d3['model'];if(_0x4e5905['query'][_0x3b95('0x48')]){_0x47a2e4[_0x3b95('0x4e')]=[{'all':!![]}];}_0x47a2e4=_['merge']({},_0x47a2e4,_0x4e5905[_0x3b95('0x47')]);return db['SquareOdbc'][_0x3b95('0x4f')](_0x47a2e4)[_0x3b95('0x28')](handleEntityNotFound(_0x543bd4,null))['then'](respondWithResult(_0x543bd4,null))[_0x3b95('0x4b')](handleError(_0x543bd4,null));};exports[_0x3b95('0x50')]=function(_0x376b98,_0x3c1712){return db[_0x3b95('0x32')]['create'](_0x376b98[_0x3b95('0x51')],{})[_0x3b95('0x28')](function(_0x24e3b4){var _0x447001=_0x376b98[_0x3b95('0x52')]['get']({'plain':!![]});if(!_0x447001)throw new Error(_0x3b95('0x53'));if(_0x447001[_0x3b95('0x54')]===_0x3b95('0x52')){var _0x57d35b=_0x24e3b4['get']({'plain':!![]});var _0x52322a=_0x3b95('0x2b');return db[_0x3b95('0x55')]['find']({'where':{'name':_0x52322a,'userProfileId':_0x447001[_0x3b95('0x56')]},'raw':!![]})[_0x3b95('0x28')](function(_0x543f4b){if(_0x543f4b&&_0x543f4b[_0x3b95('0x57')]===0x0){return db[_0x3b95('0x2c')][_0x3b95('0x50')]({'name':_0x57d35b['name'],'resourceId':_0x57d35b['id'],'type':_0x543f4b[_0x3b95('0x2e')],'sectionId':_0x543f4b['id']},{})[_0x3b95('0x28')](function(){return _0x24e3b4;});}else{return _0x24e3b4;}})['catch'](function(_0x2dd487){logger[_0x3b95('0x58')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x2dd487);throw _0x2dd487;});}return _0x24e3b4;})[_0x3b95('0x28')](respondWithResult(_0x3c1712,0xc9))[_0x3b95('0x4b')](handleError(_0x3c1712,null));};exports[_0x3b95('0x59')]=function(_0x5d4f40,_0x91dcd8){if(_0x5d4f40[_0x3b95('0x51')]['id']){delete _0x5d4f40['body']['id'];}return db['SquareOdbc'][_0x3b95('0x4f')]({'where':{'id':_0x5d4f40['params']['id']}})['then'](handleEntityNotFound(_0x91dcd8,null))[_0x3b95('0x28')](saveUpdates(_0x5d4f40[_0x3b95('0x51')],null))[_0x3b95('0x28')](respondWithResult(_0x91dcd8,null))[_0x3b95('0x4b')](handleError(_0x91dcd8,null));};exports[_0x3b95('0x29')]=function(_0x54fca4,_0x4a7423){return db['SquareOdbc'][_0x3b95('0x4f')]({'where':{'id':_0x54fca4['params']['id']}})['then'](handleEntityNotFound(_0x4a7423,null))[_0x3b95('0x28')](removeEntity(_0x4a7423,null))[_0x3b95('0x4b')](handleError(_0x4a7423,null));};exports[_0x3b95('0x5a')]=function(_0xddfc8b,_0x2dd208,_0x33b94c){var _0x46d40c;return db[_0x3b95('0x32')]['find']({'where':{'id':_0xddfc8b[_0x3b95('0x4d')]['id']},'attributes':['id','dsn']})[_0x3b95('0x28')](handleEntityNotFound(_0x2dd208,null))[_0x3b95('0x28')](function(_0x3dd392){if(_0x3dd392){var _0x588ed8=require(_0x3b95('0x5b'))();_0x588ed8[_0x3b95('0x5c')](_0x3dd392[_0x3b95('0x5d')]);_0x588ed8[_0x3b95('0x5e')]();return _0x3dd392;}})['then'](respondWithResult(_0x2dd208,null))[_0x3b95('0x4b')](handleError(_0x2dd208,null));};
\ No newline at end of file
+var _0xd64e=['set','json','save','update','then','get','UserProfileResource','sendStatus','error','name','send','index','map','SquareOdbc','fieldName','type','key','query','keys','filters','intersection','model','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','VIRTUAL','options','count','includeAll','include','rows','catch','show','params','rawAttributes','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','destroy','dsn','odbc','closeSync','zip-dir','request-promise','moment','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','status','end','offset','limit'];(function(_0x4cc8c2,_0x68f54d){var _0x163f73=function(_0x5b5748){while(--_0x5b5748){_0x4cc8c2['push'](_0x4cc8c2['shift']());}};_0x163f73(++_0x68f54d);}(_0xd64e,0xdd));var _0xed64=function(_0xb0469e,_0x57edb5){_0xb0469e=_0xb0469e-0x0;var _0x3a8da5=_0xd64e[_0xb0469e];return _0x3a8da5;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xed64('0x0'));var jsonpatch=require('fast-json-patch');var rp=require(_0xed64('0x1'));var moment=require(_0xed64('0x2'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0xed64('0x3'));var path=require('path');var sox=require(_0xed64('0x4'));var csv=require(_0xed64('0x5'));var ejs=require(_0xed64('0x6'));var fs=require('fs');var fs_extra=require(_0xed64('0x7'));var _=require(_0xed64('0x8'));var squel=require(_0xed64('0x9'));var crypto=require(_0xed64('0xa'));var jsforce=require(_0xed64('0xb'));var deskjs=require(_0xed64('0xc'));var toCsv=require(_0xed64('0x5'));var querystring=require(_0xed64('0xd'));var Papa=require('papaparse');var Redis=require(_0xed64('0xe'));var authService=require(_0xed64('0xf'));var qs=require(_0xed64('0x10'));var as=require(_0xed64('0x11'));var hardwareService=require(_0xed64('0x12'));var logger=require(_0xed64('0x13'))(_0xed64('0x14'));var utils=require('../../config/utils');var config=require(_0xed64('0x15'));var licenseUtil=require(_0xed64('0x16'));var db=require(_0xed64('0x17'))['db'];function respondWithStatusCode(_0x156074,_0x4302f1){_0x4302f1=_0x4302f1||0xcc;return function(_0x4b1706){if(_0x4b1706){return _0x156074['sendStatus'](_0x4302f1);}return _0x156074[_0xed64('0x18')](_0x4302f1)[_0xed64('0x19')]();};}function respondWithResult(_0x53871d,_0x293fb5){_0x293fb5=_0x293fb5||0xc8;return function(_0x2b78dd){if(_0x2b78dd){return _0x53871d[_0xed64('0x18')](_0x293fb5)['json'](_0x2b78dd);}};}function respondWithFilteredResult(_0x497b50,_0x488531){return function(_0x51f2fa){if(_0x51f2fa){var _0x59c3dc=typeof _0x488531[_0xed64('0x1a')]==='undefined'&&typeof _0x488531[_0xed64('0x1b')]==='undefined';var _0x2d74ee=_0x51f2fa['count'];var _0x20d93e=_0x59c3dc?0x0:_0x488531[_0xed64('0x1a')];var _0x86cb10=_0x59c3dc?_0x51f2fa['count']:_0x488531[_0xed64('0x1a')]+_0x488531[_0xed64('0x1b')];var _0x10f9e9;if(_0x86cb10>=_0x2d74ee){_0x86cb10=_0x2d74ee;_0x10f9e9=0xc8;}else{_0x10f9e9=0xce;}_0x497b50[_0xed64('0x18')](_0x10f9e9);return _0x497b50[_0xed64('0x1c')]('Content-Range',_0x20d93e+'-'+_0x86cb10+'/'+_0x2d74ee)[_0xed64('0x1d')](_0x51f2fa);}return null;};}function patchUpdates(_0x3c8968){return function(_0x7ab9ab){try{jsonpatch['apply'](_0x7ab9ab,_0x3c8968,!![]);}catch(_0x3ad652){return BPromise['reject'](_0x3ad652);}return _0x7ab9ab[_0xed64('0x1e')]();};}function saveUpdates(_0x8d5662,_0x4ba0d9){return function(_0x173bd7){if(_0x173bd7){return _0x173bd7[_0xed64('0x1f')](_0x8d5662)[_0xed64('0x20')](function(_0x1ce85d){return _0x1ce85d;});}return null;};}function removeEntity(_0x484a5,_0x26345d){return function(_0x4d7ba0){if(_0x4d7ba0){return _0x4d7ba0['destroy']()[_0xed64('0x20')](function(){var _0x32eb20=_0x4d7ba0[_0xed64('0x21')]({'plain':!![]});var _0x37a66d='ODBC';return db[_0xed64('0x22')]['destroy']({'where':{'type':_0x37a66d,'resourceId':_0x32eb20['id']}})['then'](function(){return _0x4d7ba0;});})[_0xed64('0x20')](function(){_0x484a5[_0xed64('0x18')](0xcc)[_0xed64('0x19')]();});}};}function handleEntityNotFound(_0x45b009,_0x5e102a){return function(_0x56ca94){if(!_0x56ca94){_0x45b009[_0xed64('0x23')](0x194);}return _0x56ca94;};}function handleError(_0x27e88a,_0x132403){_0x132403=_0x132403||0x1f4;return function(_0x1daa67){logger[_0xed64('0x24')](_0x1daa67['stack']);if(_0x1daa67[_0xed64('0x25')]){delete _0x1daa67[_0xed64('0x25')];}_0x27e88a[_0xed64('0x18')](_0x132403)[_0xed64('0x26')](_0x1daa67);};}exports[_0xed64('0x27')]=function(_0x557bbc,_0x354b0b){var _0x1fa878={},_0x1d0135={},_0x347d9b={'count':0x0,'rows':[]};var _0x53cfda=_[_0xed64('0x28')](db[_0xed64('0x29')]['rawAttributes'],function(_0x5130c3){return{'name':_0x5130c3[_0xed64('0x2a')],'type':_0x5130c3[_0xed64('0x2b')][_0xed64('0x2c')]};});_0x1d0135['model']=_[_0xed64('0x28')](_0x53cfda,_0xed64('0x25'));_0x1d0135[_0xed64('0x2d')]=_[_0xed64('0x2e')](_0x557bbc[_0xed64('0x2d')]);_0x1d0135[_0xed64('0x2f')]=_['intersection'](_0x1d0135['model'],_0x1d0135['query']);_0x1fa878['attributes']=_[_0xed64('0x30')](_0x1d0135[_0xed64('0x31')],qs[_0xed64('0x32')](_0x557bbc[_0xed64('0x2d')][_0xed64('0x32')]));_0x1fa878[_0xed64('0x33')]=_0x1fa878[_0xed64('0x33')][_0xed64('0x34')]?_0x1fa878[_0xed64('0x33')]:_0x1d0135[_0xed64('0x31')];if(!_0x557bbc[_0xed64('0x2d')][_0xed64('0x35')](_0xed64('0x36'))){_0x1fa878[_0xed64('0x1b')]=qs[_0xed64('0x1b')](_0x557bbc[_0xed64('0x2d')][_0xed64('0x1b')]);_0x1fa878[_0xed64('0x1a')]=qs[_0xed64('0x1a')](_0x557bbc[_0xed64('0x2d')][_0xed64('0x1a')]);}_0x1fa878[_0xed64('0x37')]=qs[_0xed64('0x38')](_0x557bbc[_0xed64('0x2d')]['sort']);_0x1fa878[_0xed64('0x39')]=qs[_0xed64('0x2f')](_['pick'](_0x557bbc[_0xed64('0x2d')],_0x1d0135[_0xed64('0x2f')]),_0x53cfda);if(_0x557bbc[_0xed64('0x2d')][_0xed64('0x3a')]){_0x1fa878[_0xed64('0x39')]=_[_0xed64('0x3b')](_0x1fa878[_0xed64('0x39')],{'$or':_[_0xed64('0x28')](_0x53cfda,function(_0x2eb443){if(_0x2eb443['type']!==_0xed64('0x3c')){var _0x8047e0={};_0x8047e0[_0x2eb443[_0xed64('0x25')]]={'$like':'%'+_0x557bbc[_0xed64('0x2d')][_0xed64('0x3a')]+'%'};return _0x8047e0;}})});}_0x1fa878=_['merge']({},_0x1fa878,_0x557bbc[_0xed64('0x3d')]);var _0x3d324d={'where':_0x1fa878[_0xed64('0x39')]};return db[_0xed64('0x29')][_0xed64('0x3e')](_0x3d324d)[_0xed64('0x20')](function(_0x4e3b0b){_0x347d9b[_0xed64('0x3e')]=_0x4e3b0b;if(_0x557bbc[_0xed64('0x2d')][_0xed64('0x3f')]){_0x1fa878[_0xed64('0x40')]=[{'all':!![]}];}return db[_0xed64('0x29')]['findAll'](_0x1fa878);})[_0xed64('0x20')](function(_0x3b464f){_0x347d9b[_0xed64('0x41')]=_0x3b464f;return _0x347d9b;})[_0xed64('0x20')](respondWithFilteredResult(_0x354b0b,_0x1fa878))[_0xed64('0x42')](handleError(_0x354b0b,null));};exports[_0xed64('0x43')]=function(_0x126bf7,_0x42f9ef){var _0x24bb41={'raw':!![],'where':{'id':_0x126bf7[_0xed64('0x44')]['id']}},_0x2dbd98={};_0x2dbd98['model']=_[_0xed64('0x2e')](db[_0xed64('0x29')][_0xed64('0x45')]);_0x2dbd98['query']=_[_0xed64('0x2e')](_0x126bf7[_0xed64('0x2d')]);_0x2dbd98[_0xed64('0x2f')]=_[_0xed64('0x30')](_0x2dbd98[_0xed64('0x31')],_0x2dbd98[_0xed64('0x2d')]);_0x24bb41[_0xed64('0x33')]=_[_0xed64('0x30')](_0x2dbd98['model'],qs['fields'](_0x126bf7[_0xed64('0x2d')][_0xed64('0x32')]));_0x24bb41[_0xed64('0x33')]=_0x24bb41[_0xed64('0x33')][_0xed64('0x34')]?_0x24bb41['attributes']:_0x2dbd98['model'];if(_0x126bf7['query'][_0xed64('0x3f')]){_0x24bb41[_0xed64('0x40')]=[{'all':!![]}];}_0x24bb41=_[_0xed64('0x3b')]({},_0x24bb41,_0x126bf7[_0xed64('0x3d')]);return db[_0xed64('0x29')][_0xed64('0x46')](_0x24bb41)[_0xed64('0x20')](handleEntityNotFound(_0x42f9ef,null))[_0xed64('0x20')](respondWithResult(_0x42f9ef,null))[_0xed64('0x42')](handleError(_0x42f9ef,null));};exports[_0xed64('0x47')]=function(_0x3cf476,_0x2512a6){return db[_0xed64('0x29')][_0xed64('0x47')](_0x3cf476[_0xed64('0x48')],{})[_0xed64('0x20')](function(_0x1076d9){var _0x161a90=_0x3cf476[_0xed64('0x49')][_0xed64('0x21')]({'plain':!![]});if(!_0x161a90)throw new Error(_0xed64('0x4a'));if(_0x161a90[_0xed64('0x4b')]==='user'){var _0x11c85b=_0x1076d9[_0xed64('0x21')]({'plain':!![]});var _0x422de0='ODBC';return db[_0xed64('0x4c')][_0xed64('0x46')]({'where':{'name':_0x422de0,'userProfileId':_0x161a90['userProfileId']},'raw':!![]})[_0xed64('0x20')](function(_0x1afea4){if(_0x1afea4&&_0x1afea4[_0xed64('0x4d')]===0x0){return db[_0xed64('0x22')][_0xed64('0x47')]({'name':_0x11c85b[_0xed64('0x25')],'resourceId':_0x11c85b['id'],'type':_0x1afea4[_0xed64('0x25')],'sectionId':_0x1afea4['id']},{})['then'](function(){return _0x1076d9;});}else{return _0x1076d9;}})['catch'](function(_0x20b643){logger[_0xed64('0x24')](_0xed64('0x4e'),_0x20b643);throw _0x20b643;});}return _0x1076d9;})[_0xed64('0x20')](respondWithResult(_0x2512a6,0xc9))['catch'](handleError(_0x2512a6,null));};exports[_0xed64('0x1f')]=function(_0x35016b,_0x3fbcc2){if(_0x35016b['body']['id']){delete _0x35016b[_0xed64('0x48')]['id'];}return db[_0xed64('0x29')][_0xed64('0x46')]({'where':{'id':_0x35016b['params']['id']}})[_0xed64('0x20')](handleEntityNotFound(_0x3fbcc2,null))[_0xed64('0x20')](saveUpdates(_0x35016b[_0xed64('0x48')],null))['then'](respondWithResult(_0x3fbcc2,null))[_0xed64('0x42')](handleError(_0x3fbcc2,null));};exports[_0xed64('0x4f')]=function(_0x56753c,_0x3d83de){return db[_0xed64('0x29')][_0xed64('0x46')]({'where':{'id':_0x56753c[_0xed64('0x44')]['id']}})[_0xed64('0x20')](handleEntityNotFound(_0x3d83de,null))['then'](removeEntity(_0x3d83de,null))['catch'](handleError(_0x3d83de,null));};exports['test']=function(_0x31103f,_0x2fc942,_0x192598){var _0x110152;return db['SquareOdbc']['find']({'where':{'id':_0x31103f[_0xed64('0x44')]['id']},'attributes':['id',_0xed64('0x50')]})[_0xed64('0x20')](handleEntityNotFound(_0x2fc942,null))[_0xed64('0x20')](function(_0x4fccb){if(_0x4fccb){var _0x31ed57=require(_0xed64('0x51'))();_0x31ed57['openSync'](_0x4fccb[_0xed64('0x50')]);_0x31ed57[_0xed64('0x52')]();return _0x4fccb;}})['then'](respondWithResult(_0x2fc942,null))[_0xed64('0x42')](handleError(_0x2fc942,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfdca=['rimraf','../../config/environment','./squareOdbc.attributes','exports','define','SquareOdbc','square_odbc','lodash','util','../../config/logger','api','moment','request-promise','path'];(function(_0x1f75a4,_0x220814){var _0x3e3309=function(_0x595036){while(--_0x595036){_0x1f75a4['push'](_0x1f75a4['shift']());}};_0x3e3309(++_0x220814);}(_0xfdca,0xd9));var _0xafdc=function(_0x465f33,_0x36a24a){_0x465f33=_0x465f33-0x0;var _0x47a091=_0xfdca[_0x465f33];return _0x47a091;};'use strict';var _=require(_0xafdc('0x0'));var util=require(_0xafdc('0x1'));var logger=require(_0xafdc('0x2'))(_0xafdc('0x3'));var moment=require(_0xafdc('0x4'));var BPromise=require('bluebird');var rp=require(_0xafdc('0x5'));var fs=require('fs');var path=require(_0xafdc('0x6'));var rimraf=require(_0xafdc('0x7'));var config=require(_0xafdc('0x8'));var attributes=require(_0xafdc('0x9'));module[_0xafdc('0xa')]=function(_0x4736da,_0x2add72){return _0x4736da[_0xafdc('0xb')](_0xafdc('0xc'),attributes,{'tableName':_0xafdc('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x5820=['lodash','util','../../config/logger','moment','bluebird','request-promise','path','rimraf','../../config/environment','./squareOdbc.attributes','exports','define','SquareOdbc','square_odbc'];(function(_0x14acd5,_0x361989){var _0x593ebd=function(_0x1f5f7f){while(--_0x1f5f7f){_0x14acd5['push'](_0x14acd5['shift']());}};_0x593ebd(++_0x361989);}(_0x5820,0x1a4));var _0x0582=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x5820[_0x14add3];return _0x4a174f;};'use strict';var _=require(_0x0582('0x0'));var util=require(_0x0582('0x1'));var logger=require(_0x0582('0x2'))('api');var moment=require(_0x0582('0x3'));var BPromise=require(_0x0582('0x4'));var rp=require(_0x0582('0x5'));var fs=require('fs');var path=require(_0x0582('0x6'));var rimraf=require(_0x0582('0x7'));var config=require(_0x0582('0x8'));var attributes=require(_0x0582('0x9'));module[_0x0582('0xa')]=function(_0x115adb,_0x3283f7){return _0x115adb[_0x0582('0xb')](_0x0582('0xc'),attributes,{'tableName':_0x0582('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6e5d=['where','attributes','include','model','then','lodash','util','moment','ioredis','../../mysqldb','../../config/logger','rpc','client','http','request','request\x20sent','debug','SquareOdbc,\x20%s,\x20%s,\x20%s','stringify','error','code','SquareOdbc,\x20%s,\x20%s','message','info','result','ShowSquareOdbc','SquareOdbc','find','options','raw'];(function(_0x24061a,_0x1c9f4d){var _0x82054e=function(_0x2ec346){while(--_0x2ec346){_0x24061a['push'](_0x24061a['shift']());}};_0x82054e(++_0x1c9f4d);}(_0x6e5d,0x1a9));var _0xd6e5=function(_0x2af473,_0x5f0e1f){_0x2af473=_0x2af473-0x0;var _0x32a489=_0x6e5d[_0x2af473];return _0x32a489;};'use strict';var _=require(_0xd6e5('0x0'));var util=require(_0xd6e5('0x1'));var moment=require(_0xd6e5('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xd6e5('0x3'));var db=require(_0xd6e5('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0xd6e5('0x5'))(_0xd6e5('0x6'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0xd6e5('0x7')][_0xd6e5('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x2f796c,_0x3a353b,_0x9e1670){return new BPromise(function(_0x22ac98,_0x3ab2fd){return client[_0xd6e5('0x9')](_0x2f796c,_0x9e1670)['then'](function(_0x16fbe8){logger['info']('SquareOdbc,\x20%s,\x20%s',_0x3a353b,_0xd6e5('0xa'));logger[_0xd6e5('0xb')](_0xd6e5('0xc'),_0x3a353b,_0xd6e5('0xa'),JSON[_0xd6e5('0xd')](_0x16fbe8));if(_0x16fbe8[_0xd6e5('0xe')]){if(_0x16fbe8[_0xd6e5('0xe')][_0xd6e5('0xf')]===0x1f4){logger['error'](_0xd6e5('0x10'),_0x3a353b,_0x16fbe8['error'][_0xd6e5('0x11')]);return _0x3ab2fd(_0x16fbe8[_0xd6e5('0xe')]['message']);}logger[_0xd6e5('0xe')]('SquareOdbc,\x20%s,\x20%s',_0x3a353b,_0x16fbe8[_0xd6e5('0xe')]['message']);return _0x22ac98(_0x16fbe8[_0xd6e5('0xe')][_0xd6e5('0x11')]);}else{logger[_0xd6e5('0x12')](_0xd6e5('0x10'),_0x3a353b,_0xd6e5('0xa'));_0x22ac98(_0x16fbe8[_0xd6e5('0x13')]['message']);}})['catch'](function(_0x1fbdc7){logger[_0xd6e5('0xe')](_0xd6e5('0x10'),_0x3a353b,_0x1fbdc7);_0x3ab2fd(_0x1fbdc7);});});}exports[_0xd6e5('0x14')]=function(_0x5bdf95){var _0x4ba5e2=this;return new Promise(function(_0x784b2d,_0x24158e){return db[_0xd6e5('0x15')][_0xd6e5('0x16')]({'raw':_0x5bdf95['options']?_0x5bdf95[_0xd6e5('0x17')][_0xd6e5('0x18')]===undefined?!![]:![]:!![],'where':_0x5bdf95[_0xd6e5('0x17')]?_0x5bdf95[_0xd6e5('0x17')][_0xd6e5('0x19')]||null:null,'attributes':_0x5bdf95[_0xd6e5('0x17')]?_0x5bdf95[_0xd6e5('0x17')][_0xd6e5('0x1a')]||null:null,'include':_0x5bdf95[_0xd6e5('0x17')]?_0x5bdf95[_0xd6e5('0x17')][_0xd6e5('0x1b')]?_['map'](_0x5bdf95[_0xd6e5('0x17')][_0xd6e5('0x1b')],function(_0x402fb7){return{'model':db[_0x402fb7[_0xd6e5('0x1c')]],'as':_0x402fb7['as'],'attributes':_0x402fb7[_0xd6e5('0x1a')],'include':_0x402fb7[_0xd6e5('0x1b')]?_['map'](_0x402fb7['include'],function(_0x338dca){return{'model':db[_0x338dca[_0xd6e5('0x1c')]],'as':_0x338dca['as'],'attributes':_0x338dca[_0xd6e5('0x1a')],'include':_0x338dca[_0xd6e5('0x1b')]?_['map'](_0x338dca[_0xd6e5('0x1b')],function(_0x1de6c8){return{'model':db[_0x1de6c8[_0xd6e5('0x1c')]],'as':_0x1de6c8['as'],'attributes':_0x1de6c8[_0xd6e5('0x1a')]};}):[]};}):[]};}):[]:[]})[_0xd6e5('0x1d')](function(_0x3dd00e){logger[_0xd6e5('0x12')](_0xd6e5('0x14'),_0x5bdf95);logger[_0xd6e5('0xb')](_0xd6e5('0x14'),_0x5bdf95,JSON[_0xd6e5('0xd')](_0x3dd00e));_0x784b2d(_0x3dd00e);})['catch'](function(_0x3472d9){logger['error'](_0xd6e5('0x14'),_0x3472d9[_0xd6e5('0x11')],_0x5bdf95);_0x24158e(_0x4ba5e2[_0xd6e5('0xe')](0x1f4,_0x3472d9[_0xd6e5('0x11')]));});});};
\ No newline at end of file
+var _0x9b5d=['code','message','info','result','catch','SquareOdbc','find','options','raw','where','attributes','include','map','model','ShowSquareOdbc','debug','util','moment','bluebird','randomstring','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','then','SquareOdbc,\x20%s,\x20%s','SquareOdbc,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error'];(function(_0x3c2139,_0x24bfeb){var _0x5de9f4=function(_0x268236){while(--_0x268236){_0x3c2139['push'](_0x3c2139['shift']());}};_0x5de9f4(++_0x24bfeb);}(_0x9b5d,0xb5));var _0xd9b5=function(_0x102397,_0x4aeb35){_0x102397=_0x102397-0x0;var _0x39d758=_0x9b5d[_0x102397];return _0x39d758;};'use strict';var _=require('lodash');var util=require(_0xd9b5('0x0'));var moment=require(_0xd9b5('0x1'));var BPromise=require(_0xd9b5('0x2'));var rs=require(_0xd9b5('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0xd9b5('0x4'));var logger=require(_0xd9b5('0x5'))(_0xd9b5('0x6'));var config=require(_0xd9b5('0x7'));var jayson=require(_0xd9b5('0x8'));var client=jayson[_0xd9b5('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x1165a5,_0x3f5830,_0x5b02e6){return new BPromise(function(_0x50d9bc,_0x5d8fb0){return client[_0xd9b5('0xa')](_0x1165a5,_0x5b02e6)[_0xd9b5('0xb')](function(_0x3b0758){logger['info'](_0xd9b5('0xc'),_0x3f5830,'request\x20sent');logger['debug'](_0xd9b5('0xd'),_0x3f5830,_0xd9b5('0xe'),JSON[_0xd9b5('0xf')](_0x3b0758));if(_0x3b0758['error']){if(_0x3b0758[_0xd9b5('0x10')][_0xd9b5('0x11')]===0x1f4){logger[_0xd9b5('0x10')]('SquareOdbc,\x20%s,\x20%s',_0x3f5830,_0x3b0758[_0xd9b5('0x10')]['message']);return _0x5d8fb0(_0x3b0758['error'][_0xd9b5('0x12')]);}logger['error'](_0xd9b5('0xc'),_0x3f5830,_0x3b0758[_0xd9b5('0x10')][_0xd9b5('0x12')]);return _0x50d9bc(_0x3b0758[_0xd9b5('0x10')][_0xd9b5('0x12')]);}else{logger[_0xd9b5('0x13')]('SquareOdbc,\x20%s,\x20%s',_0x3f5830,'request\x20sent');_0x50d9bc(_0x3b0758[_0xd9b5('0x14')]['message']);}})[_0xd9b5('0x15')](function(_0x3cf487){logger[_0xd9b5('0x10')](_0xd9b5('0xc'),_0x3f5830,_0x3cf487);_0x5d8fb0(_0x3cf487);});});}exports['ShowSquareOdbc']=function(_0x5e8444){var _0x257b17=this;return new Promise(function(_0x1f2182,_0x41285d){return db[_0xd9b5('0x16')][_0xd9b5('0x17')]({'raw':_0x5e8444['options']?_0x5e8444[_0xd9b5('0x18')][_0xd9b5('0x19')]===undefined?!![]:![]:!![],'where':_0x5e8444[_0xd9b5('0x18')]?_0x5e8444[_0xd9b5('0x18')][_0xd9b5('0x1a')]||null:null,'attributes':_0x5e8444[_0xd9b5('0x18')]?_0x5e8444[_0xd9b5('0x18')][_0xd9b5('0x1b')]||null:null,'include':_0x5e8444[_0xd9b5('0x18')]?_0x5e8444[_0xd9b5('0x18')]['include']?_['map'](_0x5e8444['options'][_0xd9b5('0x1c')],function(_0x1fda85){return{'model':db[_0x1fda85['model']],'as':_0x1fda85['as'],'attributes':_0x1fda85[_0xd9b5('0x1b')],'include':_0x1fda85['include']?_[_0xd9b5('0x1d')](_0x1fda85['include'],function(_0x37e973){return{'model':db[_0x37e973['model']],'as':_0x37e973['as'],'attributes':_0x37e973[_0xd9b5('0x1b')],'include':_0x37e973[_0xd9b5('0x1c')]?_[_0xd9b5('0x1d')](_0x37e973[_0xd9b5('0x1c')],function(_0x1d4a3d){return{'model':db[_0x1d4a3d[_0xd9b5('0x1e')]],'as':_0x1d4a3d['as'],'attributes':_0x1d4a3d[_0xd9b5('0x1b')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x2fd6f6){logger[_0xd9b5('0x13')](_0xd9b5('0x1f'),_0x5e8444);logger[_0xd9b5('0x20')]('ShowSquareOdbc',_0x5e8444,JSON['stringify'](_0x2fd6f6));_0x1f2182(_0x2fd6f6);})['catch'](function(_0x3c04e9){logger[_0xd9b5('0x10')](_0xd9b5('0x1f'),_0x3c04e9[_0xd9b5('0x12')],_0x5e8444);_0x41285d(_0x257b17[_0xd9b5('0x10')](0x1f4,_0x3c04e9[_0xd9b5('0x12')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x48ac=['../../config/environment','./squareProject.controller','get','isAuthenticated','show','getUsers','post','create','/:id/users','addUsers','put','/:id','update','delete','destroy','removeUsers','exports','util','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service'];(function(_0x3149d9,_0x19ee89){var _0x2925c2=function(_0x1f05bf){while(--_0x1f05bf){_0x3149d9['push'](_0x3149d9['shift']());}};_0x2925c2(++_0x19ee89);}(_0x48ac,0xe0));var _0xc48a=function(_0xc5a2d2,_0x230f1c){_0xc5a2d2=_0xc5a2d2-0x0;var _0x4245db=_0x48ac[_0xc5a2d2];return _0x4245db;};'use strict';var multer=require('multer');var util=require(_0xc48a('0x0'));var path=require('path');var timeout=require(_0xc48a('0x1'));var express=require(_0xc48a('0x2'));var router=express[_0xc48a('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0xc48a('0x4'));var interaction=require(_0xc48a('0x5'));var config=require(_0xc48a('0x6'));var controller=require(_0xc48a('0x7'));router[_0xc48a('0x8')]('/',auth['isAuthenticated'](),controller['index']);router['get']('/:id',auth[_0xc48a('0x9')](),controller[_0xc48a('0xa')]);router[_0xc48a('0x8')]('/:id/users',auth[_0xc48a('0x9')](),controller[_0xc48a('0xb')]);router[_0xc48a('0xc')]('/',auth[_0xc48a('0x9')](),controller[_0xc48a('0xd')]);router[_0xc48a('0xc')](_0xc48a('0xe'),auth[_0xc48a('0x9')](),controller[_0xc48a('0xf')]);router[_0xc48a('0x10')](_0xc48a('0x11'),auth['isAuthenticated'](),controller[_0xc48a('0x12')]);router[_0xc48a('0x13')](_0xc48a('0x11'),auth['isAuthenticated'](),controller[_0xc48a('0x14')]);router[_0xc48a('0x13')]('/:id/users',auth[_0xc48a('0x9')](),controller[_0xc48a('0x15')]);module[_0xc48a('0x16')]=router;
\ No newline at end of file
+var _0x01b5=['getUsers','post','create','/:id/users','addUsers','update','delete','destroy','removeUsers','exports','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./squareProject.controller','isAuthenticated','index','get','show'];(function(_0x45adb4,_0x2abb06){var _0x137296=function(_0x552ec9){while(--_0x552ec9){_0x45adb4['push'](_0x45adb4['shift']());}};_0x137296(++_0x2abb06);}(_0x01b5,0xca));var _0x501b=function(_0x5a99d3,_0x4eb12e){_0x5a99d3=_0x5a99d3-0x0;var _0xf76915=_0x01b5[_0x5a99d3];return _0xf76915;};'use strict';var multer=require(_0x501b('0x0'));var util=require(_0x501b('0x1'));var path=require(_0x501b('0x2'));var timeout=require(_0x501b('0x3'));var express=require(_0x501b('0x4'));var router=express[_0x501b('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0x501b('0x6'));var interaction=require(_0x501b('0x7'));var config=require(_0x501b('0x8'));var controller=require(_0x501b('0x9'));router['get']('/',auth[_0x501b('0xa')](),controller[_0x501b('0xb')]);router[_0x501b('0xc')]('/:id',auth[_0x501b('0xa')](),controller[_0x501b('0xd')]);router[_0x501b('0xc')]('/:id/users',auth[_0x501b('0xa')](),controller[_0x501b('0xe')]);router[_0x501b('0xf')]('/',auth[_0x501b('0xa')](),controller[_0x501b('0x10')]);router[_0x501b('0xf')](_0x501b('0x11'),auth[_0x501b('0xa')](),controller[_0x501b('0x12')]);router['put']('/:id',auth[_0x501b('0xa')](),controller[_0x501b('0x13')]);router[_0x501b('0x14')]('/:id',auth[_0x501b('0xa')](),controller[_0x501b('0x15')]);router[_0x501b('0x14')](_0x501b('0x11'),auth[_0x501b('0xa')](),controller[_0x501b('0x16')]);module[_0x501b('0x17')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x59fd=['BLOB','long','getDataValue','toString','production','utf8','DATE','sequelize','exports','STRING','name','TEXT'];(function(_0x4a2075,_0x13fe84){var _0x590cf4=function(_0x1df719){while(--_0x1df719){_0x4a2075['push'](_0x4a2075['shift']());}};_0x590cf4(++_0x13fe84);}(_0x59fd,0x1f3));var _0xd59f=function(_0x2d4dce,_0x52d7f2){_0x2d4dce=_0x2d4dce-0x0;var _0x4614a1=_0x59fd[_0x2d4dce];return _0x4614a1;};'use strict';var Sequelize=require(_0xd59f('0x0'));module[_0xd59f('0x1')]={'name':{'type':Sequelize[_0xd59f('0x2')],'unique':_0xd59f('0x3'),'allowNull':![]},'description':{'type':Sequelize[_0xd59f('0x2')]},'notes':{'type':Sequelize[_0xd59f('0x4')]},'preproduction':{'type':Sequelize[_0xd59f('0x5')](_0xd59f('0x6')),'get':function(){if(this[_0xd59f('0x7')]('preproduction')){return this[_0xd59f('0x7')]('preproduction')[_0xd59f('0x8')]('utf8');}}},'production':{'type':Sequelize['BLOB'](_0xd59f('0x6')),'get':function(){if(this[_0xd59f('0x7')](_0xd59f('0x9'))){return this[_0xd59f('0x7')]('production')[_0xd59f('0x8')](_0xd59f('0xa'));}}},'savedAt':{'type':Sequelize[_0xd59f('0xb')]},'publishedAt':{'type':Sequelize[_0xd59f('0xb')]}};
\ No newline at end of file
+var _0x8561=['exports','STRING','BLOB','getDataValue','preproduction','production','DATE'];(function(_0x51c726,_0x332b95){var _0x23fe86=function(_0x3145c8){while(--_0x3145c8){_0x51c726['push'](_0x51c726['shift']());}};_0x23fe86(++_0x332b95);}(_0x8561,0x1b2));var _0x1856=function(_0x3de8a4,_0x289a5c){_0x3de8a4=_0x3de8a4-0x0;var _0x4635cf=_0x8561[_0x3de8a4];return _0x4635cf;};'use strict';var Sequelize=require('sequelize');module[_0x1856('0x0')]={'name':{'type':Sequelize[_0x1856('0x1')],'unique':'name','allowNull':![]},'description':{'type':Sequelize[_0x1856('0x1')]},'notes':{'type':Sequelize['TEXT']},'preproduction':{'type':Sequelize[_0x1856('0x2')]('long'),'get':function(){if(this[_0x1856('0x3')]('preproduction')){return this[_0x1856('0x3')](_0x1856('0x4'))['toString']('utf8');}}},'production':{'type':Sequelize[_0x1856('0x2')]('long'),'get':function(){if(this['getDataValue'](_0x1856('0x5'))){return this['getDataValue']('production')['toString']('utf8');}}},'savedAt':{'type':Sequelize[_0x1856('0x6')]},'publishedAt':{'type':Sequelize[_0x1856('0x6')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd530=['order','sort','pick','filter','where','merge','options','includeAll','include','findAll','rows','catch','params','keys','rawAttributes','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','SquareProjects','UserProfileSection','userProfileId','autoAssociation','update','addUsers','ids','omit','removeUsers','isArray','emit','userSquareProject:remove','getUsers','eml-format','rimraf','zip-dir','request-promise','moment','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','localhost','./squareProject.socket','register','sendStatus','status','end','json','undefined','count','offset','limit','apply','reject','then','destroy','get','UserProfileResource','error','name','index','map','SquareProject','fieldName','type','key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit'];(function(_0x1636f7,_0x544d6d){var _0x3d7974=function(_0x4aa715){while(--_0x4aa715){_0x1636f7['push'](_0x1636f7['shift']());}};_0x3d7974(++_0x544d6d);}(_0xd530,0x19a));var _0x0d53=function(_0x716fb1,_0xe063b5){_0x716fb1=_0x716fb1-0x0;var _0x59529b=_0xd530[_0x716fb1];return _0x59529b;};'use strict';var emlformat=require(_0x0d53('0x0'));var rimraf=require(_0x0d53('0x1'));var zipdir=require(_0x0d53('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x0d53('0x3'));var moment=require(_0x0d53('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x0d53('0x5'));var util=require(_0x0d53('0x6'));var path=require('path');var sox=require(_0x0d53('0x7'));var csv=require(_0x0d53('0x8'));var ejs=require(_0x0d53('0x9'));var fs=require('fs');var fs_extra=require(_0x0d53('0xa'));var _=require(_0x0d53('0xb'));var squel=require(_0x0d53('0xc'));var crypto=require(_0x0d53('0xd'));var jsforce=require('jsforce');var deskjs=require(_0x0d53('0xe'));var toCsv=require(_0x0d53('0x8'));var querystring=require('querystring');var Papa=require(_0x0d53('0xf'));var Redis=require('ioredis');var authService=require(_0x0d53('0x10'));var qs=require(_0x0d53('0x11'));var as=require(_0x0d53('0x12'));var hardwareService=require(_0x0d53('0x13'));var logger=require('../../config/logger')(_0x0d53('0x14'));var utils=require(_0x0d53('0x15'));var config=require(_0x0d53('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0x0d53('0x17'))['db'];config[_0x0d53('0x18')]=_[_0x0d53('0x19')](config[_0x0d53('0x18')],{'host':_0x0d53('0x1a'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x0d53('0x18')]));require(_0x0d53('0x1b'))[_0x0d53('0x1c')](socket);function respondWithStatusCode(_0x48aa44,_0x2d1d22){_0x2d1d22=_0x2d1d22||0xcc;return function(_0x2fdc5e){if(_0x2fdc5e){return _0x48aa44[_0x0d53('0x1d')](_0x2d1d22);}return _0x48aa44[_0x0d53('0x1e')](_0x2d1d22)[_0x0d53('0x1f')]();};}function respondWithResult(_0x1aa5e5,_0x4bdbe8){_0x4bdbe8=_0x4bdbe8||0xc8;return function(_0x5d2bec){if(_0x5d2bec){return _0x1aa5e5[_0x0d53('0x1e')](_0x4bdbe8)[_0x0d53('0x20')](_0x5d2bec);}};}function respondWithFilteredResult(_0x2d3663,_0x42b2cd){return function(_0x4b36c9){if(_0x4b36c9){var _0xd0ad17=typeof _0x42b2cd['offset']===_0x0d53('0x21')&&typeof _0x42b2cd['limit']===_0x0d53('0x21');var _0x2e8e98=_0x4b36c9[_0x0d53('0x22')];var _0x5430cd=_0xd0ad17?0x0:_0x42b2cd[_0x0d53('0x23')];var _0x6efc83=_0xd0ad17?_0x4b36c9[_0x0d53('0x22')]:_0x42b2cd['offset']+_0x42b2cd[_0x0d53('0x24')];var _0xe02b2;if(_0x6efc83>=_0x2e8e98){_0x6efc83=_0x2e8e98;_0xe02b2=0xc8;}else{_0xe02b2=0xce;}_0x2d3663['status'](_0xe02b2);return _0x2d3663['set']('Content-Range',_0x5430cd+'-'+_0x6efc83+'/'+_0x2e8e98)[_0x0d53('0x20')](_0x4b36c9);}return null;};}function patchUpdates(_0x939394){return function(_0x11db95){try{jsonpatch[_0x0d53('0x25')](_0x11db95,_0x939394,!![]);}catch(_0x3fe0){return BPromise[_0x0d53('0x26')](_0x3fe0);}return _0x11db95['save']();};}function saveUpdates(_0x450c4d,_0x32ec61){return function(_0x15b541){if(_0x15b541){return _0x15b541['update'](_0x450c4d)[_0x0d53('0x27')](function(_0x33d849){return _0x33d849;});}return null;};}function removeEntity(_0xd0b7b2,_0x352c47){return function(_0x384657){if(_0x384657){return _0x384657[_0x0d53('0x28')]()[_0x0d53('0x27')](function(){var _0x4495b7=_0x384657[_0x0d53('0x29')]({'plain':!![]});var _0x23ac8e='SquareProjects';return db[_0x0d53('0x2a')][_0x0d53('0x28')]({'where':{'type':_0x23ac8e,'resourceId':_0x4495b7['id']}})['then'](function(){return _0x384657;});})[_0x0d53('0x27')](function(){_0xd0b7b2[_0x0d53('0x1e')](0xcc)[_0x0d53('0x1f')]();});}};}function handleEntityNotFound(_0x497c4c,_0x28d076){return function(_0x477dc9){if(!_0x477dc9){_0x497c4c[_0x0d53('0x1d')](0x194);}return _0x477dc9;};}function handleError(_0x59305c,_0x4f8aa4){_0x4f8aa4=_0x4f8aa4||0x1f4;return function(_0x5757d8){logger[_0x0d53('0x2b')](_0x5757d8['stack']);if(_0x5757d8[_0x0d53('0x2c')]){delete _0x5757d8[_0x0d53('0x2c')];}_0x59305c[_0x0d53('0x1e')](_0x4f8aa4)['send'](_0x5757d8);};}exports[_0x0d53('0x2d')]=function(_0xde3a48,_0x4937d5){var _0x5c9dbf={},_0x12d67b={},_0x23c92d={'count':0x0,'rows':[]};var _0x4c8dd2=_[_0x0d53('0x2e')](db[_0x0d53('0x2f')]['rawAttributes'],function(_0x2b8665){return{'name':_0x2b8665[_0x0d53('0x30')],'type':_0x2b8665[_0x0d53('0x31')][_0x0d53('0x32')]};});_0x12d67b[_0x0d53('0x33')]=_['map'](_0x4c8dd2,_0x0d53('0x2c'));_0x12d67b[_0x0d53('0x34')]=_['keys'](_0xde3a48[_0x0d53('0x34')]);_0x12d67b[_0x0d53('0x35')]=_[_0x0d53('0x36')](_0x12d67b[_0x0d53('0x33')],_0x12d67b[_0x0d53('0x34')]);_0x5c9dbf[_0x0d53('0x37')]=_[_0x0d53('0x36')](_0x12d67b['model'],qs[_0x0d53('0x38')](_0xde3a48[_0x0d53('0x34')][_0x0d53('0x38')]));_0x5c9dbf[_0x0d53('0x37')]=_0x5c9dbf[_0x0d53('0x37')][_0x0d53('0x39')]?_0x5c9dbf['attributes']:_0x12d67b[_0x0d53('0x33')];if(!_0xde3a48[_0x0d53('0x34')][_0x0d53('0x3a')](_0x0d53('0x3b'))){_0x5c9dbf[_0x0d53('0x24')]=qs[_0x0d53('0x24')](_0xde3a48[_0x0d53('0x34')][_0x0d53('0x24')]);_0x5c9dbf['offset']=qs[_0x0d53('0x23')](_0xde3a48['query'][_0x0d53('0x23')]);}_0x5c9dbf[_0x0d53('0x3c')]=qs[_0x0d53('0x3d')](_0xde3a48[_0x0d53('0x34')][_0x0d53('0x3d')]);_0x5c9dbf['where']=qs[_0x0d53('0x35')](_[_0x0d53('0x3e')](_0xde3a48['query'],_0x12d67b[_0x0d53('0x35')]),_0x4c8dd2);if(_0xde3a48[_0x0d53('0x34')][_0x0d53('0x3f')]){_0x5c9dbf[_0x0d53('0x40')]=_['merge'](_0x5c9dbf['where'],{'$or':_[_0x0d53('0x2e')](_0x4c8dd2,function(_0x4cee2b){if(_0x4cee2b[_0x0d53('0x31')]!=='VIRTUAL'){var _0x1cf74d={};_0x1cf74d[_0x4cee2b['name']]={'$like':'%'+_0xde3a48[_0x0d53('0x34')][_0x0d53('0x3f')]+'%'};return _0x1cf74d;}})});}_0x5c9dbf=_[_0x0d53('0x41')]({},_0x5c9dbf,_0xde3a48[_0x0d53('0x42')]);var _0x510f36={'where':_0x5c9dbf[_0x0d53('0x40')]};return db[_0x0d53('0x2f')][_0x0d53('0x22')](_0x510f36)[_0x0d53('0x27')](function(_0x5d06e0){_0x23c92d[_0x0d53('0x22')]=_0x5d06e0;if(_0xde3a48[_0x0d53('0x34')][_0x0d53('0x43')]){_0x5c9dbf[_0x0d53('0x44')]=[{'all':!![]}];}return db[_0x0d53('0x2f')][_0x0d53('0x45')](_0x5c9dbf);})[_0x0d53('0x27')](function(_0x19fa54){_0x23c92d[_0x0d53('0x46')]=_0x19fa54;return _0x23c92d;})[_0x0d53('0x27')](respondWithFilteredResult(_0x4937d5,_0x5c9dbf))[_0x0d53('0x47')](handleError(_0x4937d5,null));};exports['show']=function(_0x4a4e18,_0x490747){var _0x2f6456={'raw':![],'where':{'id':_0x4a4e18[_0x0d53('0x48')]['id']}},_0x5bfc43={};_0x5bfc43[_0x0d53('0x33')]=_[_0x0d53('0x49')](db['SquareProject'][_0x0d53('0x4a')]);_0x5bfc43['query']=_[_0x0d53('0x49')](_0x4a4e18[_0x0d53('0x34')]);_0x5bfc43[_0x0d53('0x35')]=_['intersection'](_0x5bfc43[_0x0d53('0x33')],_0x5bfc43[_0x0d53('0x34')]);_0x2f6456['attributes']=_[_0x0d53('0x36')](_0x5bfc43[_0x0d53('0x33')],qs['fields'](_0x4a4e18[_0x0d53('0x34')]['fields']));_0x2f6456[_0x0d53('0x37')]=_0x2f6456[_0x0d53('0x37')][_0x0d53('0x39')]?_0x2f6456['attributes']:_0x5bfc43[_0x0d53('0x33')];if(_0x4a4e18[_0x0d53('0x34')][_0x0d53('0x43')]){_0x2f6456[_0x0d53('0x44')]=[{'all':!![]}];}_0x2f6456=_[_0x0d53('0x41')]({},_0x2f6456,_0x4a4e18[_0x0d53('0x42')]);return db[_0x0d53('0x2f')][_0x0d53('0x4b')](_0x2f6456)[_0x0d53('0x27')](handleEntityNotFound(_0x490747,null))[_0x0d53('0x27')](respondWithResult(_0x490747,null))['catch'](handleError(_0x490747,null));};exports[_0x0d53('0x4c')]=function(_0x5642c3,_0x3e2e13){return db['SquareProject'][_0x0d53('0x4c')](_0x5642c3[_0x0d53('0x4d')],{})[_0x0d53('0x27')](function(_0x3cb004){var _0x1d9c8a=_0x5642c3[_0x0d53('0x4e')][_0x0d53('0x29')]({'plain':!![]});if(!_0x1d9c8a)throw new Error(_0x0d53('0x4f'));if(_0x1d9c8a[_0x0d53('0x50')]===_0x0d53('0x4e')){var _0x5f077b=_0x3cb004[_0x0d53('0x29')]({'plain':!![]});var _0x1c4469=_0x0d53('0x51');return db[_0x0d53('0x52')][_0x0d53('0x4b')]({'where':{'name':_0x1c4469,'userProfileId':_0x1d9c8a[_0x0d53('0x53')]},'raw':!![]})[_0x0d53('0x27')](function(_0x362082){if(_0x362082&&_0x362082[_0x0d53('0x54')]===0x0){return db[_0x0d53('0x2a')][_0x0d53('0x4c')]({'name':_0x5f077b['name'],'resourceId':_0x5f077b['id'],'type':_0x362082['name'],'sectionId':_0x362082['id']},{})[_0x0d53('0x27')](function(){return _0x3cb004;});}else{return _0x3cb004;}})['catch'](function(_0x310937){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x310937);throw _0x310937;});}return _0x3cb004;})['then'](respondWithResult(_0x3e2e13,0xc9))[_0x0d53('0x47')](handleError(_0x3e2e13,null));};exports[_0x0d53('0x55')]=function(_0x5e31e9,_0x4e4234){if(_0x5e31e9[_0x0d53('0x4d')]['id']){delete _0x5e31e9[_0x0d53('0x4d')]['id'];}return db[_0x0d53('0x2f')][_0x0d53('0x4b')]({'where':{'id':_0x5e31e9[_0x0d53('0x48')]['id']}})['then'](handleEntityNotFound(_0x4e4234,null))[_0x0d53('0x27')](saveUpdates(_0x5e31e9['body'],null))['then'](respondWithResult(_0x4e4234,null))[_0x0d53('0x47')](handleError(_0x4e4234,null));};exports[_0x0d53('0x28')]=function(_0x563af8,_0x107033){return db[_0x0d53('0x2f')][_0x0d53('0x4b')]({'where':{'id':_0x563af8[_0x0d53('0x48')]['id']}})[_0x0d53('0x27')](handleEntityNotFound(_0x107033,null))[_0x0d53('0x27')](removeEntity(_0x107033,null))[_0x0d53('0x47')](handleError(_0x107033,null));};exports['addUsers']=function(_0x25b74b,_0x47f78f,_0x30c31f){return db[_0x0d53('0x2f')][_0x0d53('0x4b')]({'where':{'id':_0x25b74b[_0x0d53('0x48')]['id']}})[_0x0d53('0x27')](handleEntityNotFound(_0x47f78f,null))[_0x0d53('0x27')](function(_0x55b5f5){if(_0x55b5f5){return _0x55b5f5[_0x0d53('0x56')](_0x25b74b[_0x0d53('0x4d')][_0x0d53('0x57')],_[_0x0d53('0x58')](_0x25b74b['body'],['ids','id'])||{});}})[_0x0d53('0x27')](respondWithResult(_0x47f78f,null))['catch'](handleError(_0x47f78f,null));};exports[_0x0d53('0x59')]=function(_0xaf0d,_0x66087e,_0x3db36f){return db[_0x0d53('0x2f')][_0x0d53('0x4b')]({'where':{'id':_0xaf0d[_0x0d53('0x48')]['id']}})['then'](handleEntityNotFound(_0x66087e,null))[_0x0d53('0x27')](function(_0x583e0d){if(_0x583e0d){return _0x583e0d[_0x0d53('0x59')](_0xaf0d['query'][_0x0d53('0x57')])[_0x0d53('0x27')](function(){if(_[_0x0d53('0x5a')](_0xaf0d[_0x0d53('0x34')]['ids'])){for(var _0x29b748=0x0;_0x29b748<_0xaf0d[_0x0d53('0x34')][_0x0d53('0x57')]['length'];_0x29b748+=0x1){socket[_0x0d53('0x5b')](_0x0d53('0x5c'),{'UserId':Number(_0xaf0d[_0x0d53('0x34')][_0x0d53('0x57')][_0x29b748]),'SquareProjectId':Number(_0xaf0d[_0x0d53('0x48')]['id'])});}}else{socket[_0x0d53('0x5b')](_0x0d53('0x5c'),{'UserId':Number(_0xaf0d[_0x0d53('0x34')]['ids']),'SquareProjectId':Number(_0xaf0d['params']['id'])});}});}})['then'](respondWithStatusCode(_0x66087e,null))[_0x0d53('0x47')](handleError(_0x66087e,null));};exports[_0x0d53('0x5d')]=function(_0x2155b7,_0x53fa2a,_0x56d9ad){var _0x4be4d4={};var _0x1ad906={};var _0x50d853;var _0x406b0e;return db[_0x0d53('0x2f')]['findOne']({'where':{'id':_0x2155b7[_0x0d53('0x48')]['id']}})['then'](handleEntityNotFound(_0x53fa2a,null))[_0x0d53('0x27')](function(_0x3e61e0){if(_0x3e61e0){_0x50d853=_0x3e61e0;_0x1ad906[_0x0d53('0x33')]=_['keys'](db['User'][_0x0d53('0x4a')]);_0x1ad906[_0x0d53('0x34')]=_[_0x0d53('0x49')](_0x2155b7[_0x0d53('0x34')]);_0x1ad906[_0x0d53('0x35')]=_['intersection'](_0x1ad906[_0x0d53('0x33')],_0x1ad906[_0x0d53('0x34')]);_0x4be4d4['attributes']=_['intersection'](_0x1ad906[_0x0d53('0x33')],qs[_0x0d53('0x38')](_0x2155b7['query'][_0x0d53('0x38')]));_0x4be4d4[_0x0d53('0x37')]=_0x4be4d4['attributes'][_0x0d53('0x39')]?_0x4be4d4[_0x0d53('0x37')]:_0x1ad906[_0x0d53('0x33')];_0x4be4d4['order']=qs[_0x0d53('0x3d')](_0x2155b7[_0x0d53('0x34')][_0x0d53('0x3d')]);_0x4be4d4['where']=qs[_0x0d53('0x35')](_[_0x0d53('0x3e')](_0x2155b7[_0x0d53('0x34')],_0x1ad906[_0x0d53('0x35')]));if(_0x2155b7[_0x0d53('0x34')][_0x0d53('0x3f')]){_0x4be4d4['where']=_['merge'](_0x4be4d4[_0x0d53('0x40')],{'$or':_[_0x0d53('0x2e')](_0x4be4d4['attributes'],function(_0x3d9708){var _0xe98737={};_0xe98737[_0x3d9708]={'$like':'%'+_0x2155b7[_0x0d53('0x34')][_0x0d53('0x3f')]+'%'};return _0xe98737;})});}_0x4be4d4=_[_0x0d53('0x41')]({},_0x4be4d4,_0x2155b7['options']);return _0x50d853['getUsers'](_0x4be4d4);}})[_0x0d53('0x27')](function(_0x55e280){if(_0x55e280){_0x406b0e=_0x55e280[_0x0d53('0x39')];if(!_0x2155b7[_0x0d53('0x34')][_0x0d53('0x3a')](_0x0d53('0x3b'))){_0x4be4d4[_0x0d53('0x24')]=qs['limit'](_0x2155b7[_0x0d53('0x34')][_0x0d53('0x24')]);_0x4be4d4[_0x0d53('0x23')]=qs['offset'](_0x2155b7[_0x0d53('0x34')]['offset']);}return _0x50d853['getUsers'](_0x4be4d4);}})[_0x0d53('0x27')](function(_0x3d91c1){if(_0x3d91c1){return _0x3d91c1?{'count':_0x406b0e,'rows':_0x3d91c1}:null;}})[_0x0d53('0x27')](respondWithResult(_0x53fa2a,null))['catch'](handleError(_0x53fa2a,null));};
\ No newline at end of file
+var _0xc06c=['userSquareProject:remove','getUsers','findOne','sort','hasOwnProperty','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','then','destroy','get','UserProfileResource','stack','name','send','index','map','SquareProject','rawAttributes','fieldName','type','key','model','query','keys','intersection','attributes','fields','length','nolimit','order','where','filters','pick','merge','VIRTUAL','filter','options','includeAll','include','rows','catch','show','params','find','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','SquareProjects','UserProfileSection','userProfileId','autoAssociation','create','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','body','addUsers','isArray','ids','emit'];(function(_0x3bfd29,_0x407cd5){var _0x2e1a78=function(_0x420461){while(--_0x420461){_0x3bfd29['push'](_0x3bfd29['shift']());}};_0x2e1a78(++_0x407cd5);}(_0xc06c,0x1a5));var _0xcc06=function(_0x1facfa,_0x1acf7d){_0x1facfa=_0x1facfa-0x0;var _0x9ec701=_0xc06c[_0x1facfa];return _0x9ec701;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xcc06('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0xcc06('0x1'));var rp=require(_0xcc06('0x2'));var moment=require(_0xcc06('0x3'));var BPromise=require(_0xcc06('0x4'));var Mustache=require(_0xcc06('0x5'));var util=require(_0xcc06('0x6'));var path=require('path');var sox=require(_0xcc06('0x7'));var csv=require(_0xcc06('0x8'));var ejs=require(_0xcc06('0x9'));var fs=require('fs');var fs_extra=require(_0xcc06('0xa'));var _=require(_0xcc06('0xb'));var squel=require(_0xcc06('0xc'));var crypto=require(_0xcc06('0xd'));var jsforce=require(_0xcc06('0xe'));var deskjs=require(_0xcc06('0xf'));var toCsv=require(_0xcc06('0x8'));var querystring=require(_0xcc06('0x10'));var Papa=require(_0xcc06('0x11'));var Redis=require(_0xcc06('0x12'));var authService=require(_0xcc06('0x13'));var qs=require(_0xcc06('0x14'));var as=require(_0xcc06('0x15'));var hardwareService=require(_0xcc06('0x16'));var logger=require('../../config/logger')(_0xcc06('0x17'));var utils=require(_0xcc06('0x18'));var config=require(_0xcc06('0x19'));var licenseUtil=require(_0xcc06('0x1a'));var db=require(_0xcc06('0x1b'))['db'];config[_0xcc06('0x1c')]=_[_0xcc06('0x1d')](config[_0xcc06('0x1c')],{'host':_0xcc06('0x1e'),'port':0x18eb});var socket=require(_0xcc06('0x1f'))(new Redis(config[_0xcc06('0x1c')]));require('./squareProject.socket')[_0xcc06('0x20')](socket);function respondWithStatusCode(_0x5ac5f2,_0x2af514){_0x2af514=_0x2af514||0xcc;return function(_0x239fb6){if(_0x239fb6){return _0x5ac5f2[_0xcc06('0x21')](_0x2af514);}return _0x5ac5f2[_0xcc06('0x22')](_0x2af514)[_0xcc06('0x23')]();};}function respondWithResult(_0x2adecf,_0x54da6d){_0x54da6d=_0x54da6d||0xc8;return function(_0x1f396e){if(_0x1f396e){return _0x2adecf[_0xcc06('0x22')](_0x54da6d)[_0xcc06('0x24')](_0x1f396e);}};}function respondWithFilteredResult(_0x3b9745,_0x381aba){return function(_0x4ea73c){if(_0x4ea73c){var _0x42ac17=typeof _0x381aba[_0xcc06('0x25')]===_0xcc06('0x26')&&typeof _0x381aba[_0xcc06('0x27')]===_0xcc06('0x26');var _0x46bd83=_0x4ea73c[_0xcc06('0x28')];var _0x24a931=_0x42ac17?0x0:_0x381aba[_0xcc06('0x25')];var _0x424472=_0x42ac17?_0x4ea73c['count']:_0x381aba[_0xcc06('0x25')]+_0x381aba[_0xcc06('0x27')];var _0x1386d9;if(_0x424472>=_0x46bd83){_0x424472=_0x46bd83;_0x1386d9=0xc8;}else{_0x1386d9=0xce;}_0x3b9745[_0xcc06('0x22')](_0x1386d9);return _0x3b9745[_0xcc06('0x29')](_0xcc06('0x2a'),_0x24a931+'-'+_0x424472+'/'+_0x46bd83)[_0xcc06('0x24')](_0x4ea73c);}return null;};}function patchUpdates(_0x30ef2e){return function(_0x1868ff){try{jsonpatch[_0xcc06('0x2b')](_0x1868ff,_0x30ef2e,!![]);}catch(_0x1b4255){return BPromise[_0xcc06('0x2c')](_0x1b4255);}return _0x1868ff[_0xcc06('0x2d')]();};}function saveUpdates(_0x4a5832,_0x4c861f){return function(_0xd81383){if(_0xd81383){return _0xd81383['update'](_0x4a5832)[_0xcc06('0x2e')](function(_0xe3f78c){return _0xe3f78c;});}return null;};}function removeEntity(_0x51fd1e,_0x2a7e73){return function(_0x219dca){if(_0x219dca){return _0x219dca[_0xcc06('0x2f')]()['then'](function(){var _0x524fd6=_0x219dca[_0xcc06('0x30')]({'plain':!![]});var _0x1d534d='SquareProjects';return db[_0xcc06('0x31')][_0xcc06('0x2f')]({'where':{'type':_0x1d534d,'resourceId':_0x524fd6['id']}})[_0xcc06('0x2e')](function(){return _0x219dca;});})[_0xcc06('0x2e')](function(){_0x51fd1e[_0xcc06('0x22')](0xcc)[_0xcc06('0x23')]();});}};}function handleEntityNotFound(_0xa37e4b,_0x1e0c71){return function(_0x44eddf){if(!_0x44eddf){_0xa37e4b[_0xcc06('0x21')](0x194);}return _0x44eddf;};}function handleError(_0x1b3070,_0x34d70e){_0x34d70e=_0x34d70e||0x1f4;return function(_0x4e92f4){logger['error'](_0x4e92f4[_0xcc06('0x32')]);if(_0x4e92f4[_0xcc06('0x33')]){delete _0x4e92f4['name'];}_0x1b3070['status'](_0x34d70e)[_0xcc06('0x34')](_0x4e92f4);};}exports[_0xcc06('0x35')]=function(_0x58f5e6,_0x5b9292){var _0x3d19a7={},_0x49b830={},_0x54e594={'count':0x0,'rows':[]};var _0x7a2609=_[_0xcc06('0x36')](db[_0xcc06('0x37')][_0xcc06('0x38')],function(_0x460401){return{'name':_0x460401[_0xcc06('0x39')],'type':_0x460401[_0xcc06('0x3a')][_0xcc06('0x3b')]};});_0x49b830[_0xcc06('0x3c')]=_[_0xcc06('0x36')](_0x7a2609,'name');_0x49b830[_0xcc06('0x3d')]=_[_0xcc06('0x3e')](_0x58f5e6[_0xcc06('0x3d')]);_0x49b830['filters']=_[_0xcc06('0x3f')](_0x49b830[_0xcc06('0x3c')],_0x49b830[_0xcc06('0x3d')]);_0x3d19a7[_0xcc06('0x40')]=_['intersection'](_0x49b830[_0xcc06('0x3c')],qs[_0xcc06('0x41')](_0x58f5e6[_0xcc06('0x3d')]['fields']));_0x3d19a7[_0xcc06('0x40')]=_0x3d19a7[_0xcc06('0x40')][_0xcc06('0x42')]?_0x3d19a7[_0xcc06('0x40')]:_0x49b830['model'];if(!_0x58f5e6['query']['hasOwnProperty'](_0xcc06('0x43'))){_0x3d19a7['limit']=qs['limit'](_0x58f5e6[_0xcc06('0x3d')]['limit']);_0x3d19a7[_0xcc06('0x25')]=qs[_0xcc06('0x25')](_0x58f5e6['query']['offset']);}_0x3d19a7[_0xcc06('0x44')]=qs['sort'](_0x58f5e6['query']['sort']);_0x3d19a7[_0xcc06('0x45')]=qs[_0xcc06('0x46')](_[_0xcc06('0x47')](_0x58f5e6[_0xcc06('0x3d')],_0x49b830['filters']),_0x7a2609);if(_0x58f5e6[_0xcc06('0x3d')]['filter']){_0x3d19a7[_0xcc06('0x45')]=_[_0xcc06('0x48')](_0x3d19a7['where'],{'$or':_['map'](_0x7a2609,function(_0x31f7d5){if(_0x31f7d5[_0xcc06('0x3a')]!==_0xcc06('0x49')){var _0x544959={};_0x544959[_0x31f7d5['name']]={'$like':'%'+_0x58f5e6[_0xcc06('0x3d')][_0xcc06('0x4a')]+'%'};return _0x544959;}})});}_0x3d19a7=_[_0xcc06('0x48')]({},_0x3d19a7,_0x58f5e6[_0xcc06('0x4b')]);var _0x206467={'where':_0x3d19a7[_0xcc06('0x45')]};return db[_0xcc06('0x37')][_0xcc06('0x28')](_0x206467)[_0xcc06('0x2e')](function(_0x48e1ae){_0x54e594[_0xcc06('0x28')]=_0x48e1ae;if(_0x58f5e6[_0xcc06('0x3d')][_0xcc06('0x4c')]){_0x3d19a7[_0xcc06('0x4d')]=[{'all':!![]}];}return db[_0xcc06('0x37')]['findAll'](_0x3d19a7);})[_0xcc06('0x2e')](function(_0x2e56b5){_0x54e594[_0xcc06('0x4e')]=_0x2e56b5;return _0x54e594;})[_0xcc06('0x2e')](respondWithFilteredResult(_0x5b9292,_0x3d19a7))[_0xcc06('0x4f')](handleError(_0x5b9292,null));};exports[_0xcc06('0x50')]=function(_0x1195ed,_0x5e9781){var _0x5e1474={'raw':![],'where':{'id':_0x1195ed[_0xcc06('0x51')]['id']}},_0x112fbd={};_0x112fbd[_0xcc06('0x3c')]=_[_0xcc06('0x3e')](db['SquareProject']['rawAttributes']);_0x112fbd[_0xcc06('0x3d')]=_[_0xcc06('0x3e')](_0x1195ed[_0xcc06('0x3d')]);_0x112fbd[_0xcc06('0x46')]=_['intersection'](_0x112fbd['model'],_0x112fbd[_0xcc06('0x3d')]);_0x5e1474[_0xcc06('0x40')]=_[_0xcc06('0x3f')](_0x112fbd['model'],qs[_0xcc06('0x41')](_0x1195ed[_0xcc06('0x3d')]['fields']));_0x5e1474[_0xcc06('0x40')]=_0x5e1474['attributes'][_0xcc06('0x42')]?_0x5e1474['attributes']:_0x112fbd[_0xcc06('0x3c')];if(_0x1195ed[_0xcc06('0x3d')][_0xcc06('0x4c')]){_0x5e1474[_0xcc06('0x4d')]=[{'all':!![]}];}_0x5e1474=_[_0xcc06('0x48')]({},_0x5e1474,_0x1195ed[_0xcc06('0x4b')]);return db[_0xcc06('0x37')][_0xcc06('0x52')](_0x5e1474)['then'](handleEntityNotFound(_0x5e9781,null))[_0xcc06('0x2e')](respondWithResult(_0x5e9781,null))[_0xcc06('0x4f')](handleError(_0x5e9781,null));};exports['create']=function(_0x4fe0fc,_0x2b2b10){return db[_0xcc06('0x37')]['create'](_0x4fe0fc['body'],{})['then'](function(_0xa4b7ae){var _0x2906f8=_0x4fe0fc[_0xcc06('0x53')][_0xcc06('0x30')]({'plain':!![]});if(!_0x2906f8)throw new Error(_0xcc06('0x54'));if(_0x2906f8[_0xcc06('0x55')]===_0xcc06('0x53')){var _0x4cfc2e=_0xa4b7ae[_0xcc06('0x30')]({'plain':!![]});var _0xde061e=_0xcc06('0x56');return db[_0xcc06('0x57')]['find']({'where':{'name':_0xde061e,'userProfileId':_0x2906f8[_0xcc06('0x58')]},'raw':!![]})[_0xcc06('0x2e')](function(_0x411d50){if(_0x411d50&&_0x411d50[_0xcc06('0x59')]===0x0){return db['UserProfileResource'][_0xcc06('0x5a')]({'name':_0x4cfc2e[_0xcc06('0x33')],'resourceId':_0x4cfc2e['id'],'type':_0x411d50['name'],'sectionId':_0x411d50['id']},{})[_0xcc06('0x2e')](function(){return _0xa4b7ae;});}else{return _0xa4b7ae;}})[_0xcc06('0x4f')](function(_0x1a5f07){logger[_0xcc06('0x5b')](_0xcc06('0x5c'),_0x1a5f07);throw _0x1a5f07;});}return _0xa4b7ae;})['then'](respondWithResult(_0x2b2b10,0xc9))[_0xcc06('0x4f')](handleError(_0x2b2b10,null));};exports[_0xcc06('0x5d')]=function(_0x5c186c,_0x59e6f8){if(_0x5c186c[_0xcc06('0x5e')]['id']){delete _0x5c186c['body']['id'];}return db[_0xcc06('0x37')][_0xcc06('0x52')]({'where':{'id':_0x5c186c[_0xcc06('0x51')]['id']}})[_0xcc06('0x2e')](handleEntityNotFound(_0x59e6f8,null))[_0xcc06('0x2e')](saveUpdates(_0x5c186c[_0xcc06('0x5e')],null))[_0xcc06('0x2e')](respondWithResult(_0x59e6f8,null))[_0xcc06('0x4f')](handleError(_0x59e6f8,null));};exports[_0xcc06('0x2f')]=function(_0xbc8aab,_0x5cf750){return db[_0xcc06('0x37')]['find']({'where':{'id':_0xbc8aab[_0xcc06('0x51')]['id']}})[_0xcc06('0x2e')](handleEntityNotFound(_0x5cf750,null))['then'](removeEntity(_0x5cf750,null))[_0xcc06('0x4f')](handleError(_0x5cf750,null));};exports[_0xcc06('0x5f')]=function(_0x500e27,_0x3830b3,_0x1c19fa){return db[_0xcc06('0x37')][_0xcc06('0x52')]({'where':{'id':_0x500e27[_0xcc06('0x51')]['id']}})['then'](handleEntityNotFound(_0x3830b3,null))[_0xcc06('0x2e')](function(_0x107ddb){if(_0x107ddb){return _0x107ddb[_0xcc06('0x5f')](_0x500e27[_0xcc06('0x5e')]['ids'],_['omit'](_0x500e27[_0xcc06('0x5e')],['ids','id'])||{});}})['then'](respondWithResult(_0x3830b3,null))[_0xcc06('0x4f')](handleError(_0x3830b3,null));};exports['removeUsers']=function(_0x1c3a21,_0x33eba6,_0x5592c1){return db['SquareProject'][_0xcc06('0x52')]({'where':{'id':_0x1c3a21[_0xcc06('0x51')]['id']}})['then'](handleEntityNotFound(_0x33eba6,null))[_0xcc06('0x2e')](function(_0xaeb081){if(_0xaeb081){return _0xaeb081['removeUsers'](_0x1c3a21[_0xcc06('0x3d')]['ids'])['then'](function(){if(_[_0xcc06('0x60')](_0x1c3a21['query'][_0xcc06('0x61')])){for(var _0x34425e=0x0;_0x34425e<_0x1c3a21[_0xcc06('0x3d')][_0xcc06('0x61')][_0xcc06('0x42')];_0x34425e+=0x1){socket[_0xcc06('0x62')](_0xcc06('0x63'),{'UserId':Number(_0x1c3a21[_0xcc06('0x3d')]['ids'][_0x34425e]),'SquareProjectId':Number(_0x1c3a21['params']['id'])});}}else{socket['emit'](_0xcc06('0x63'),{'UserId':Number(_0x1c3a21[_0xcc06('0x3d')][_0xcc06('0x61')]),'SquareProjectId':Number(_0x1c3a21[_0xcc06('0x51')]['id'])});}});}})['then'](respondWithStatusCode(_0x33eba6,null))['catch'](handleError(_0x33eba6,null));};exports[_0xcc06('0x64')]=function(_0x2baea7,_0x508690,_0x2756a6){var _0x3f1883={};var _0x60037={};var _0x3bd648;var _0x5160be;return db[_0xcc06('0x37')][_0xcc06('0x65')]({'where':{'id':_0x2baea7['params']['id']}})[_0xcc06('0x2e')](handleEntityNotFound(_0x508690,null))[_0xcc06('0x2e')](function(_0x3cd00e){if(_0x3cd00e){_0x3bd648=_0x3cd00e;_0x60037['model']=_['keys'](db['User'][_0xcc06('0x38')]);_0x60037[_0xcc06('0x3d')]=_['keys'](_0x2baea7[_0xcc06('0x3d')]);_0x60037[_0xcc06('0x46')]=_['intersection'](_0x60037[_0xcc06('0x3c')],_0x60037[_0xcc06('0x3d')]);_0x3f1883[_0xcc06('0x40')]=_[_0xcc06('0x3f')](_0x60037[_0xcc06('0x3c')],qs[_0xcc06('0x41')](_0x2baea7['query'][_0xcc06('0x41')]));_0x3f1883[_0xcc06('0x40')]=_0x3f1883[_0xcc06('0x40')][_0xcc06('0x42')]?_0x3f1883[_0xcc06('0x40')]:_0x60037[_0xcc06('0x3c')];_0x3f1883[_0xcc06('0x44')]=qs[_0xcc06('0x66')](_0x2baea7[_0xcc06('0x3d')][_0xcc06('0x66')]);_0x3f1883['where']=qs[_0xcc06('0x46')](_[_0xcc06('0x47')](_0x2baea7['query'],_0x60037['filters']));if(_0x2baea7[_0xcc06('0x3d')][_0xcc06('0x4a')]){_0x3f1883['where']=_['merge'](_0x3f1883[_0xcc06('0x45')],{'$or':_[_0xcc06('0x36')](_0x3f1883[_0xcc06('0x40')],function(_0x23539e){var _0x4ecadd={};_0x4ecadd[_0x23539e]={'$like':'%'+_0x2baea7[_0xcc06('0x3d')][_0xcc06('0x4a')]+'%'};return _0x4ecadd;})});}_0x3f1883=_[_0xcc06('0x48')]({},_0x3f1883,_0x2baea7[_0xcc06('0x4b')]);return _0x3bd648[_0xcc06('0x64')](_0x3f1883);}})[_0xcc06('0x2e')](function(_0x479cb2){if(_0x479cb2){_0x5160be=_0x479cb2['length'];if(!_0x2baea7[_0xcc06('0x3d')][_0xcc06('0x67')](_0xcc06('0x43'))){_0x3f1883[_0xcc06('0x27')]=qs[_0xcc06('0x27')](_0x2baea7[_0xcc06('0x3d')]['limit']);_0x3f1883[_0xcc06('0x25')]=qs[_0xcc06('0x25')](_0x2baea7['query']['offset']);}return _0x3bd648[_0xcc06('0x64')](_0x3f1883);}})['then'](function(_0x2e1dc3){if(_0x2e1dc3){return _0x2e1dc3?{'count':_0x5160be,'rows':_0x2e1dc3}:null;}})[_0xcc06('0x2e')](respondWithResult(_0x508690,null))[_0xcc06('0x4f')](handleError(_0x508690,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdf32=['SquareProject','setMaxListeners','save','update','remove','emit','hasOwnProperty','events','../../mysqldb'];(function(_0x466b8c,_0x492ed0){var _0x3f461d=function(_0x1bb52c){while(--_0x1bb52c){_0x466b8c['push'](_0x466b8c['shift']());}};_0x3f461d(++_0x492ed0);}(_0xdf32,0xb2));var _0x2df3=function(_0x334696,_0x31de6f){_0x334696=_0x334696-0x0;var _0x3ac7f6=_0xdf32[_0x334696];return _0x3ac7f6;};'use strict';var EventEmitter=require(_0x2df3('0x0'));var SquareProject=require(_0x2df3('0x1'))['db'][_0x2df3('0x2')];var SquareProjectEvents=new EventEmitter();SquareProjectEvents[_0x2df3('0x3')](0x0);var events={'afterCreate':_0x2df3('0x4'),'afterUpdate':_0x2df3('0x5'),'afterDestroy':_0x2df3('0x6')};function emitEvent(_0x20a5f5){return function(_0x1a9ce1,_0x35a2a9,_0x51ff28){SquareProjectEvents[_0x2df3('0x7')](_0x20a5f5+':'+_0x1a9ce1['id'],_0x1a9ce1);SquareProjectEvents[_0x2df3('0x7')](_0x20a5f5,_0x1a9ce1);_0x51ff28(null);};}for(var e in events){if(events[_0x2df3('0x8')](e)){var event=events[e];SquareProject['hook'](e,emitEvent(event));}}module['exports']=SquareProjectEvents;
\ No newline at end of file
+var _0x6b7e=['events','SquareProject','save','update','emit','hasOwnProperty','hook','exports'];(function(_0x4f128b,_0x2ca15f){var _0x14c9c7=function(_0x414e69){while(--_0x414e69){_0x4f128b['push'](_0x4f128b['shift']());}};_0x14c9c7(++_0x2ca15f);}(_0x6b7e,0x1c8));var _0xe6b7=function(_0xa1976a,_0x5a97b){_0xa1976a=_0xa1976a-0x0;var _0x3ad5a2=_0x6b7e[_0xa1976a];return _0x3ad5a2;};'use strict';var EventEmitter=require(_0xe6b7('0x0'));var SquareProject=require('../../mysqldb')['db'][_0xe6b7('0x1')];var SquareProjectEvents=new EventEmitter();SquareProjectEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xe6b7('0x2'),'afterUpdate':_0xe6b7('0x3'),'afterDestroy':'remove'};function emitEvent(_0x8c34e1){return function(_0x3ddb95,_0xf5231f,_0x537be6){SquareProjectEvents[_0xe6b7('0x4')](_0x8c34e1+':'+_0x3ddb95['id'],_0x3ddb95);SquareProjectEvents[_0xe6b7('0x4')](_0x8c34e1,_0x3ddb95);_0x537be6(null);};}for(var e in events){if(events[_0xe6b7('0x5')](e)){var event=events[e];SquareProject[_0xe6b7('0x6')](e,emitEvent(event));}}module[_0xe6b7('0x7')]=SquareProjectEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbe5e=['preproduction','savedAt','format','YYYY-MM-DD\x20HH:mm:ss','lodash','util','../../config/logger','api','moment','bluebird','path','rimraf','../../config/environment','./squareProject.attributes','exports','define','SquareProject','square_projects'];(function(_0x19a49f,_0x444d74){var _0x5351ae=function(_0x58b1ed){while(--_0x58b1ed){_0x19a49f['push'](_0x19a49f['shift']());}};_0x5351ae(++_0x444d74);}(_0xbe5e,0x148));var _0xebe5=function(_0x3c2806,_0x258140){_0x3c2806=_0x3c2806-0x0;var _0x624318=_0xbe5e[_0x3c2806];return _0x624318;};'use strict';var _=require(_0xebe5('0x0'));var util=require(_0xebe5('0x1'));var logger=require(_0xebe5('0x2'))(_0xebe5('0x3'));var moment=require(_0xebe5('0x4'));var BPromise=require(_0xebe5('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xebe5('0x6'));var rimraf=require(_0xebe5('0x7'));var config=require(_0xebe5('0x8'));var attributes=require(_0xebe5('0x9'));module[_0xebe5('0xa')]=function(_0xa9a9ea,_0x1b524a){return _0xa9a9ea[_0xebe5('0xb')](_0xebe5('0xc'),attributes,{'tableName':_0xebe5('0xd'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x20a9ce,_0xd85ea5,_0x3e5fad){if(_0x20a9ce['changed'](_0xebe5('0xe'))){_0x20a9ce[_0xebe5('0xf')]=moment()[_0xebe5('0x10')]('YYYY-MM-DD\x20HH:mm:ss');}if(_0x20a9ce['changed']('production')){_0x20a9ce['publishedAt']=moment()[_0xebe5('0x10')](_0xebe5('0x11'));}_0x3e5fad(null,_0x20a9ce);}}});};
\ No newline at end of file
+var _0x2d01=['bluebird','request-promise','rimraf','../../config/environment','exports','define','SquareProject','square_projects','format','YYYY-MM-DD\x20HH:mm:ss','changed','publishedAt','lodash','../../config/logger','moment'];(function(_0xe61ab2,_0x10e149){var _0x2d8662=function(_0xbb802c){while(--_0xbb802c){_0xe61ab2['push'](_0xe61ab2['shift']());}};_0x2d8662(++_0x10e149);}(_0x2d01,0x11a));var _0x12d0=function(_0xf1833f,_0x97152e){_0xf1833f=_0xf1833f-0x0;var _0x381a6b=_0x2d01[_0xf1833f];return _0x381a6b;};'use strict';var _=require(_0x12d0('0x0'));var util=require('util');var logger=require(_0x12d0('0x1'))('api');var moment=require(_0x12d0('0x2'));var BPromise=require(_0x12d0('0x3'));var rp=require(_0x12d0('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x12d0('0x5'));var config=require(_0x12d0('0x6'));var attributes=require('./squareProject.attributes');module[_0x12d0('0x7')]=function(_0x4ec198,_0x4ca741){return _0x4ec198[_0x12d0('0x8')](_0x12d0('0x9'),attributes,{'tableName':_0x12d0('0xa'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x3e2614,_0x28ffae,_0x3b85db){if(_0x3e2614['changed']('preproduction')){_0x3e2614['savedAt']=moment()[_0x12d0('0xb')](_0x12d0('0xc'));}if(_0x3e2614[_0x12d0('0xd')]('production')){_0x3e2614[_0x12d0('0xe')]=moment()[_0x12d0('0xb')]('YYYY-MM-DD\x20HH:mm:ss');}_0x3b85db(null,_0x3e2614);}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf88d=['../../config/environment','client','redis','defaults','socket.io-emitter','./squareProject.socket','request','then','info','SquareProject,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','ShowSquareProject','SquareProject','options','raw','where','include','map','model','attributes','util','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc'];(function(_0x4699e7,_0x3dc681){var _0x5b22df=function(_0x11f339){while(--_0x11f339){_0x4699e7['push'](_0x4699e7['shift']());}};_0x5b22df(++_0x3dc681);}(_0xf88d,0xbf));var _0xdf88=function(_0x1ccdf7,_0x215d5a){_0x1ccdf7=_0x1ccdf7-0x0;var _0x52a0ae=_0xf88d[_0x1ccdf7];return _0x52a0ae;};'use strict';var _=require('lodash');var util=require(_0xdf88('0x0'));var moment=require('moment');var BPromise=require(_0xdf88('0x1'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xdf88('0x2'));var db=require(_0xdf88('0x3'))['db'];var utils=require(_0xdf88('0x4'));var logger=require(_0xdf88('0x5'))(_0xdf88('0x6'));var config=require(_0xdf88('0x7'));var jayson=require('jayson/promise');var client=jayson[_0xdf88('0x8')]['http']({'port':0x232a});config[_0xdf88('0x9')]=_[_0xdf88('0xa')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0xdf88('0xb'))(new Redis(config[_0xdf88('0x9')]));require(_0xdf88('0xc'))['register'](socket);function respondWithRpcPromise(_0xa4c096,_0xbe189b,_0x3a990d){return new BPromise(function(_0xa0a9b3,_0x43caef){return client[_0xdf88('0xd')](_0xa4c096,_0x3a990d)[_0xdf88('0xe')](function(_0xe4d4d5){logger[_0xdf88('0xf')](_0xdf88('0x10'),_0xbe189b,_0xdf88('0x11'));logger[_0xdf88('0x12')]('SquareProject,\x20%s,\x20%s,\x20%s',_0xbe189b,_0xdf88('0x11'),JSON[_0xdf88('0x13')](_0xe4d4d5));if(_0xe4d4d5[_0xdf88('0x14')]){if(_0xe4d4d5['error'][_0xdf88('0x15')]===0x1f4){logger[_0xdf88('0x14')](_0xdf88('0x10'),_0xbe189b,_0xe4d4d5[_0xdf88('0x14')][_0xdf88('0x16')]);return _0x43caef(_0xe4d4d5['error'][_0xdf88('0x16')]);}logger['error'](_0xdf88('0x10'),_0xbe189b,_0xe4d4d5[_0xdf88('0x14')]['message']);return _0xa0a9b3(_0xe4d4d5[_0xdf88('0x14')][_0xdf88('0x16')]);}else{logger[_0xdf88('0xf')]('SquareProject,\x20%s,\x20%s',_0xbe189b,_0xdf88('0x11'));_0xa0a9b3(_0xe4d4d5[_0xdf88('0x17')][_0xdf88('0x16')]);}})['catch'](function(_0x458027){logger[_0xdf88('0x14')](_0xdf88('0x10'),_0xbe189b,_0x458027);_0x43caef(_0x458027);});});}exports[_0xdf88('0x18')]=function(_0x3a77e6){var _0x13be9a=this;return new Promise(function(_0x581a79,_0x4aa387){return db[_0xdf88('0x19')]['find']({'raw':_0x3a77e6[_0xdf88('0x1a')]?_0x3a77e6['options'][_0xdf88('0x1b')]===undefined?!![]:![]:!![],'where':_0x3a77e6[_0xdf88('0x1a')]?_0x3a77e6[_0xdf88('0x1a')][_0xdf88('0x1c')]||null:null,'attributes':_0x3a77e6[_0xdf88('0x1a')]?_0x3a77e6['options']['attributes']||null:null,'include':_0x3a77e6['options']?_0x3a77e6[_0xdf88('0x1a')][_0xdf88('0x1d')]?_[_0xdf88('0x1e')](_0x3a77e6[_0xdf88('0x1a')][_0xdf88('0x1d')],function(_0x3f09da){return{'model':db[_0x3f09da[_0xdf88('0x1f')]],'as':_0x3f09da['as'],'attributes':_0x3f09da[_0xdf88('0x20')],'include':_0x3f09da['include']?_[_0xdf88('0x1e')](_0x3f09da[_0xdf88('0x1d')],function(_0x399ef1){return{'model':db[_0x399ef1[_0xdf88('0x1f')]],'as':_0x399ef1['as'],'attributes':_0x399ef1[_0xdf88('0x20')],'include':_0x399ef1['include']?_[_0xdf88('0x1e')](_0x399ef1[_0xdf88('0x1d')],function(_0x5c83c6){return{'model':db[_0x5c83c6[_0xdf88('0x1f')]],'as':_0x5c83c6['as'],'attributes':_0x5c83c6['attributes']};}):[]};}):[]};}):[]:[]})[_0xdf88('0xe')](function(_0xd7dcfc){logger[_0xdf88('0xf')]('ShowSquareProject',_0x3a77e6);logger['debug']('ShowSquareProject',_0x3a77e6,JSON[_0xdf88('0x13')](_0xd7dcfc));_0x581a79(_0xd7dcfc);})['catch'](function(_0x4bc956){logger['error'](_0xdf88('0x18'),_0x4bc956['message'],_0x3a77e6);_0x4aa387(_0x13be9a[_0xdf88('0x14')](0x1f4,_0x4bc956[_0xdf88('0x16')]));});});};
\ No newline at end of file
+var _0x5602=['find','options','raw','where','attributes','include','map','model','ShowSquareProject','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','redis','localhost','socket.io-emitter','register','then','info','request\x20sent','SquareProject,\x20%s,\x20%s,\x20%s','error','code','SquareProject,\x20%s,\x20%s','message','result','catch','SquareProject'];(function(_0x23041e,_0x61306c){var _0x3c6e6b=function(_0x4b5dc0){while(--_0x4b5dc0){_0x23041e['push'](_0x23041e['shift']());}};_0x3c6e6b(++_0x61306c);}(_0x5602,0x121));var _0x2560=function(_0x3dd83e,_0x5e40cd){_0x3dd83e=_0x3dd83e-0x0;var _0x504741=_0x5602[_0x3dd83e];return _0x504741;};'use strict';var _=require(_0x2560('0x0'));var util=require(_0x2560('0x1'));var moment=require(_0x2560('0x2'));var BPromise=require('bluebird');var rs=require(_0x2560('0x3'));var fs=require('fs');var Redis=require(_0x2560('0x4'));var db=require(_0x2560('0x5'))['db'];var utils=require(_0x2560('0x6'));var logger=require(_0x2560('0x7'))('rpc');var config=require(_0x2560('0x8'));var jayson=require(_0x2560('0x9'));var client=jayson[_0x2560('0xa')]['http']({'port':0x232a});config['redis']=_['defaults'](config[_0x2560('0xb')],{'host':_0x2560('0xc'),'port':0x18eb});var socket=require(_0x2560('0xd'))(new Redis(config[_0x2560('0xb')]));require('./squareProject.socket')[_0x2560('0xe')](socket);function respondWithRpcPromise(_0x13af94,_0x34443b,_0x922d05){return new BPromise(function(_0x309444,_0x28394f){return client['request'](_0x13af94,_0x922d05)[_0x2560('0xf')](function(_0x818d3b){logger[_0x2560('0x10')]('SquareProject,\x20%s,\x20%s',_0x34443b,_0x2560('0x11'));logger['debug'](_0x2560('0x12'),_0x34443b,_0x2560('0x11'),JSON['stringify'](_0x818d3b));if(_0x818d3b[_0x2560('0x13')]){if(_0x818d3b['error'][_0x2560('0x14')]===0x1f4){logger[_0x2560('0x13')](_0x2560('0x15'),_0x34443b,_0x818d3b[_0x2560('0x13')][_0x2560('0x16')]);return _0x28394f(_0x818d3b['error'][_0x2560('0x16')]);}logger[_0x2560('0x13')](_0x2560('0x15'),_0x34443b,_0x818d3b[_0x2560('0x13')]['message']);return _0x309444(_0x818d3b['error'][_0x2560('0x16')]);}else{logger[_0x2560('0x10')](_0x2560('0x15'),_0x34443b,'request\x20sent');_0x309444(_0x818d3b[_0x2560('0x17')][_0x2560('0x16')]);}})[_0x2560('0x18')](function(_0x1a96e7){logger[_0x2560('0x13')](_0x2560('0x15'),_0x34443b,_0x1a96e7);_0x28394f(_0x1a96e7);});});}exports['ShowSquareProject']=function(_0x3ac4be){var _0x5aac7a=this;return new Promise(function(_0x41ec68,_0x214c6b){return db[_0x2560('0x19')][_0x2560('0x1a')]({'raw':_0x3ac4be[_0x2560('0x1b')]?_0x3ac4be['options'][_0x2560('0x1c')]===undefined?!![]:![]:!![],'where':_0x3ac4be[_0x2560('0x1b')]?_0x3ac4be['options'][_0x2560('0x1d')]||null:null,'attributes':_0x3ac4be[_0x2560('0x1b')]?_0x3ac4be[_0x2560('0x1b')][_0x2560('0x1e')]||null:null,'include':_0x3ac4be['options']?_0x3ac4be[_0x2560('0x1b')][_0x2560('0x1f')]?_[_0x2560('0x20')](_0x3ac4be[_0x2560('0x1b')][_0x2560('0x1f')],function(_0x1bffa8){return{'model':db[_0x1bffa8[_0x2560('0x21')]],'as':_0x1bffa8['as'],'attributes':_0x1bffa8[_0x2560('0x1e')],'include':_0x1bffa8[_0x2560('0x1f')]?_[_0x2560('0x20')](_0x1bffa8[_0x2560('0x1f')],function(_0x544ae2){return{'model':db[_0x544ae2[_0x2560('0x21')]],'as':_0x544ae2['as'],'attributes':_0x544ae2[_0x2560('0x1e')],'include':_0x544ae2[_0x2560('0x1f')]?_[_0x2560('0x20')](_0x544ae2[_0x2560('0x1f')],function(_0x10e362){return{'model':db[_0x10e362[_0x2560('0x21')]],'as':_0x10e362['as'],'attributes':_0x10e362[_0x2560('0x1e')]};}):[]};}):[]};}):[]:[]})[_0x2560('0xf')](function(_0x4bd8cb){logger[_0x2560('0x10')](_0x2560('0x22'),_0x3ac4be);logger['debug'](_0x2560('0x22'),_0x3ac4be,JSON['stringify'](_0x4bd8cb));_0x41ec68(_0x4bd8cb);})[_0x2560('0x18')](function(_0x18e687){logger[_0x2560('0x13')](_0x2560('0x22'),_0x18e687[_0x2560('0x16')],_0x3ac4be);_0x214c6b(_0x5aac7a['error'](0x1f4,_0x18e687[_0x2560('0x16')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4a4f=['length','squareProject:','./squareProject.events','save','remove','update','emit','register'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x4a4f,0x11a));var _0xf4a4=function(_0x5a32a0,_0x54e225){_0x5a32a0=_0x5a32a0-0x0;var _0x394e5b=_0x4a4f[_0x5a32a0];return _0x394e5b;};'use strict';var SquareProjectEvents=require(_0xf4a4('0x0'));var events=[_0xf4a4('0x1'),_0xf4a4('0x2'),_0xf4a4('0x3')];function createListener(_0xf24dca,_0x282606){return function(_0x5b9a5f){_0x282606[_0xf4a4('0x4')](_0xf24dca,_0x5b9a5f);};}function removeListener(_0x51660c,_0x4f4305){return function(){SquareProjectEvents['removeListener'](_0x51660c,_0x4f4305);};}exports[_0xf4a4('0x5')]=function(_0x374a93){for(var _0x4b935c=0x0,_0x3aa2b0=events[_0xf4a4('0x6')];_0x4b935c<_0x3aa2b0;_0x4b935c++){var _0x194374=events[_0x4b935c];var _0xc674dd=createListener(_0xf4a4('0x7')+_0x194374,_0x374a93);SquareProjectEvents['on'](_0x194374,_0xc674dd);}};
\ No newline at end of file
+var _0x0987=['length','squareProject:','./squareProject.events','remove','emit','removeListener','register'];(function(_0x51020b,_0x38c2c7){var _0x371e47=function(_0x2a538f){while(--_0x2a538f){_0x51020b['push'](_0x51020b['shift']());}};_0x371e47(++_0x38c2c7);}(_0x0987,0x128));var _0x7098=function(_0x31d6b4,_0x3c99f3){_0x31d6b4=_0x31d6b4-0x0;var _0x21eb70=_0x0987[_0x31d6b4];return _0x21eb70;};'use strict';var SquareProjectEvents=require(_0x7098('0x0'));var events=['save',_0x7098('0x1'),'update'];function createListener(_0x377db4,_0xa61221){return function(_0x29d8ce){_0xa61221[_0x7098('0x2')](_0x377db4,_0x29d8ce);};}function removeListener(_0x111bef,_0x549e5f){return function(){SquareProjectEvents[_0x7098('0x3')](_0x111bef,_0x549e5f);};}exports[_0x7098('0x4')]=function(_0x2f9d5c){for(var _0x47d73d=0x0,_0xb350d2=events[_0x7098('0x5')];_0x47d73d<_0xb350d2;_0x47d73d++){var _0x82676a=events[_0x47d73d];var _0x563049=createListener(_0x7098('0x6')+_0x82676a,_0x2f9d5c);SquareProjectEvents['on'](_0x82676a,_0x563049);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x814b=['multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./squareRecording.controller','get','isAuthenticated','/:id','show','/:id/download','download','post','create','put','delete','destroy','exports'];(function(_0x211ca6,_0x1b4d43){var _0x264947=function(_0x2e0aa4){while(--_0x2e0aa4){_0x211ca6['push'](_0x211ca6['shift']());}};_0x264947(++_0x1b4d43);}(_0x814b,0x1a2));var _0xb814=function(_0x4ebdf4,_0x57d47f){_0x4ebdf4=_0x4ebdf4-0x0;var _0x18d1c1=_0x814b[_0x4ebdf4];return _0x18d1c1;};'use strict';var multer=require(_0xb814('0x0'));var util=require(_0xb814('0x1'));var path=require(_0xb814('0x2'));var timeout=require(_0xb814('0x3'));var express=require(_0xb814('0x4'));var router=express[_0xb814('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0xb814('0x6'));var interaction=require(_0xb814('0x7'));var config=require(_0xb814('0x8'));var controller=require(_0xb814('0x9'));router[_0xb814('0xa')]('/',auth[_0xb814('0xb')](),controller['index']);router[_0xb814('0xa')](_0xb814('0xc'),auth['isAuthenticated'](),controller[_0xb814('0xd')]);router[_0xb814('0xa')](_0xb814('0xe'),auth[_0xb814('0xb')](),controller[_0xb814('0xf')]);router[_0xb814('0x10')]('/',auth[_0xb814('0xb')](),controller[_0xb814('0x11')]);router[_0xb814('0x12')](_0xb814('0xc'),auth[_0xb814('0xb')](),controller['update']);router[_0xb814('0x13')]('/:id',auth[_0xb814('0xb')](),controller[_0xb814('0x14')]);module[_0xb814('0x15')]=router;
\ No newline at end of file
+var _0x53ec=['update','destroy','exports','multer','util','path','connect-timeout','express','Router','../../components/auth/service','../../config/environment','./squareRecording.controller','isAuthenticated','get','/:id','show','/:id/download','download','post','create','put'];(function(_0xeac977,_0x556c50){var _0x4ffbe3=function(_0x472807){while(--_0x472807){_0xeac977['push'](_0xeac977['shift']());}};_0x4ffbe3(++_0x556c50);}(_0x53ec,0x192));var _0xc53e=function(_0x3fd4b3,_0x17d3ef){_0x3fd4b3=_0x3fd4b3-0x0;var _0x2979a3=_0x53ec[_0x3fd4b3];return _0x2979a3;};'use strict';var multer=require(_0xc53e('0x0'));var util=require(_0xc53e('0x1'));var path=require(_0xc53e('0x2'));var timeout=require(_0xc53e('0x3'));var express=require(_0xc53e('0x4'));var router=express[_0xc53e('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0xc53e('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0xc53e('0x7'));var controller=require(_0xc53e('0x8'));router['get']('/',auth[_0xc53e('0x9')](),controller['index']);router[_0xc53e('0xa')](_0xc53e('0xb'),auth['isAuthenticated'](),controller[_0xc53e('0xc')]);router[_0xc53e('0xa')](_0xc53e('0xd'),auth[_0xc53e('0x9')](),controller[_0xc53e('0xe')]);router[_0xc53e('0xf')]('/',auth[_0xc53e('0x9')](),controller[_0xc53e('0x10')]);router[_0xc53e('0x11')]('/:id',auth['isAuthenticated'](),controller[_0xc53e('0x12')]);router['delete']('/:id',auth[_0xc53e('0x9')](),controller[_0xc53e('0x13')]);module[_0xc53e('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb138=['getDataValue','substring','lastIndexOf','sequelize','exports','STRING'];(function(_0x2e8acc,_0x125767){var _0x460b65=function(_0x33037d){while(--_0x33037d){_0x2e8acc['push'](_0x2e8acc['shift']());}};_0x460b65(++_0x125767);}(_0xb138,0x1dd));var _0x8b13=function(_0x54a930,_0x40062f){_0x54a930=_0x54a930-0x0;var _0x46743e=_0xb138[_0x54a930];return _0x46743e;};'use strict';var Sequelize=require(_0x8b13('0x0'));module[_0x8b13('0x1')]={'uniqueid':{'type':Sequelize[_0x8b13('0x2')]},'callerid':{'type':Sequelize[_0x8b13('0x2')]},'calleridname':{'type':Sequelize[_0x8b13('0x2')]},'context':{'type':Sequelize[_0x8b13('0x2')]},'extension':{'type':Sequelize[_0x8b13('0x2')]},'priority':{'type':Sequelize['STRING']},'accountcode':{'type':Sequelize[_0x8b13('0x2')]},'dnid':{'type':Sequelize[_0x8b13('0x2')]},'projectName':{'type':Sequelize[_0x8b13('0x2')]},'saveName':{'type':Sequelize['STRING']},'filename':{'type':Sequelize[_0x8b13('0x2')]},'savePath':{'type':Sequelize[_0x8b13('0x2')]},'format':{'type':Sequelize['VIRTUAL'],'get':function(){var _0x3fdf4d='';var _0x33d1a7=this[_0x8b13('0x3')]('savePath');if(_0x33d1a7){_0x3fdf4d=_0x33d1a7[_0x8b13('0x4')](_0x33d1a7[_0x8b13('0x5')]('.'));}return _0x3fdf4d;}}};
\ No newline at end of file
+var _0xac31=['STRING','VIRTUAL','savePath','lastIndexOf','sequelize','exports'];(function(_0x5880d8,_0x30b0a5){var _0x88264a=function(_0x5ec626){while(--_0x5ec626){_0x5880d8['push'](_0x5880d8['shift']());}};_0x88264a(++_0x30b0a5);}(_0xac31,0xca));var _0x1ac3=function(_0xbf05cc,_0x2fa9ac){_0xbf05cc=_0xbf05cc-0x0;var _0x458428=_0xac31[_0xbf05cc];return _0x458428;};'use strict';var Sequelize=require(_0x1ac3('0x0'));module[_0x1ac3('0x1')]={'uniqueid':{'type':Sequelize[_0x1ac3('0x2')]},'callerid':{'type':Sequelize[_0x1ac3('0x2')]},'calleridname':{'type':Sequelize[_0x1ac3('0x2')]},'context':{'type':Sequelize[_0x1ac3('0x2')]},'extension':{'type':Sequelize[_0x1ac3('0x2')]},'priority':{'type':Sequelize['STRING']},'accountcode':{'type':Sequelize[_0x1ac3('0x2')]},'dnid':{'type':Sequelize[_0x1ac3('0x2')]},'projectName':{'type':Sequelize['STRING']},'saveName':{'type':Sequelize['STRING']},'filename':{'type':Sequelize[_0x1ac3('0x2')]},'savePath':{'type':Sequelize[_0x1ac3('0x2')]},'format':{'type':Sequelize[_0x1ac3('0x3')],'get':function(){var _0x1be223='';var _0x157604=this['getDataValue'](_0x1ac3('0x4'));if(_0x157604){_0x1be223=_0x157604['substring'](_0x157604[_0x1ac3('0x5')]('.'));}return _0x1be223;}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9b5e=['bluebird','path','sox','to-csv','ejs','fs-extra','lodash','crypto','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','count','Content-Range','save','update','then','destroy','sendStatus','error','stack','name','send','index','map','SquareRecording','rawAttributes','fieldName','type','key','model','keys','query','attributes','intersection','fields','length','limit','sort','filters','filter','where','merge','VIRTUAL','options','includeAll','findAll','rows','catch','include','create','body','find','params','download','../../components/encryptor','savePath','filename','format','%s.cypher','existsSync','decryptFile','secrets','recording','Sequelize','extname','unlink','message','SquareRecording\x20not\x20found','Not\x20found','isNil','Entity\x20not\x20found','info','File:\x20\x22','unlinkSync','.cypher','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','eml-format','rimraf','zip-dir','fast-json-patch','moment'];(function(_0x469788,_0x1a1281){var _0x4daa74=function(_0xfb13e7){while(--_0xfb13e7){_0x469788['push'](_0x469788['shift']());}};_0x4daa74(++_0x1a1281);}(_0x9b5e,0x118));var _0xe9b5=function(_0x27d429,_0x2a96d9){_0x27d429=_0x27d429-0x0;var _0x4c923a=_0x9b5e[_0x27d429];return _0x4c923a;};'use strict';var emlformat=require(_0xe9b5('0x0'));var rimraf=require(_0xe9b5('0x1'));var zipdir=require(_0xe9b5('0x2'));var jsonpatch=require(_0xe9b5('0x3'));var rp=require('request-promise');var moment=require(_0xe9b5('0x4'));var BPromise=require(_0xe9b5('0x5'));var Mustache=require('mustache');var util=require('util');var path=require(_0xe9b5('0x6'));var sox=require(_0xe9b5('0x7'));var csv=require(_0xe9b5('0x8'));var ejs=require(_0xe9b5('0x9'));var fs=require('fs');var fs_extra=require(_0xe9b5('0xa'));var _=require(_0xe9b5('0xb'));var squel=require('squel');var crypto=require(_0xe9b5('0xc'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xe9b5('0x8'));var querystring=require(_0xe9b5('0xd'));var Papa=require(_0xe9b5('0xe'));var Redis=require(_0xe9b5('0xf'));var authService=require(_0xe9b5('0x10'));var qs=require(_0xe9b5('0x11'));var as=require(_0xe9b5('0x12'));var hardwareService=require(_0xe9b5('0x13'));var logger=require(_0xe9b5('0x14'))('api');var utils=require(_0xe9b5('0x15'));var config=require(_0xe9b5('0x16'));var licenseUtil=require(_0xe9b5('0x17'));var db=require(_0xe9b5('0x18'))['db'];function respondWithStatusCode(_0x3a8e27,_0x5ece09){_0x5ece09=_0x5ece09||0xcc;return function(_0x7fc30c){if(_0x7fc30c){return _0x3a8e27['sendStatus'](_0x5ece09);}return _0x3a8e27[_0xe9b5('0x19')](_0x5ece09)[_0xe9b5('0x1a')]();};}function respondWithResult(_0x2705a0,_0x3ed904){_0x3ed904=_0x3ed904||0xc8;return function(_0xfaf3f6){if(_0xfaf3f6){return _0x2705a0[_0xe9b5('0x19')](_0x3ed904)[_0xe9b5('0x1b')](_0xfaf3f6);}};}function respondWithFilteredResult(_0xda8a29,_0x299024){return function(_0x154b4a){if(_0x154b4a){var _0x6e6034=typeof _0x299024[_0xe9b5('0x1c')]===_0xe9b5('0x1d')&&typeof _0x299024['limit']===_0xe9b5('0x1d');var _0x342723=_0x154b4a[_0xe9b5('0x1e')];var _0x3b96be=_0x6e6034?0x0:_0x299024[_0xe9b5('0x1c')];var _0xe27e7d=_0x6e6034?_0x154b4a[_0xe9b5('0x1e')]:_0x299024[_0xe9b5('0x1c')]+_0x299024['limit'];var _0x270603;if(_0xe27e7d>=_0x342723){_0xe27e7d=_0x342723;_0x270603=0xc8;}else{_0x270603=0xce;}_0xda8a29['status'](_0x270603);return _0xda8a29['set'](_0xe9b5('0x1f'),_0x3b96be+'-'+_0xe27e7d+'/'+_0x342723)[_0xe9b5('0x1b')](_0x154b4a);}return null;};}function patchUpdates(_0x356508){return function(_0x4e712c){try{jsonpatch['apply'](_0x4e712c,_0x356508,!![]);}catch(_0x75c674){return BPromise['reject'](_0x75c674);}return _0x4e712c[_0xe9b5('0x20')]();};}function saveUpdates(_0x646c51,_0x7cb71f){return function(_0x3677cf){if(_0x3677cf){return _0x3677cf[_0xe9b5('0x21')](_0x646c51)[_0xe9b5('0x22')](function(_0x5c7fcb){return _0x5c7fcb;});}return null;};}function removeEntity(_0x1527c6,_0x1229e6){return function(_0x4d8dad){if(_0x4d8dad){return _0x4d8dad[_0xe9b5('0x23')]()[_0xe9b5('0x22')](function(){_0x1527c6[_0xe9b5('0x19')](0xcc)[_0xe9b5('0x1a')]();});}};}function handleEntityNotFound(_0xb85328,_0x354cac){return function(_0x1dfc36){if(!_0x1dfc36){_0xb85328[_0xe9b5('0x24')](0x194);}return _0x1dfc36;};}function handleError(_0x4d4351,_0x3ccdd8){_0x3ccdd8=_0x3ccdd8||0x1f4;return function(_0x224326){logger[_0xe9b5('0x25')](_0x224326[_0xe9b5('0x26')]);if(_0x224326[_0xe9b5('0x27')]){delete _0x224326[_0xe9b5('0x27')];}_0x4d4351['status'](_0x3ccdd8)[_0xe9b5('0x28')](_0x224326);};}exports[_0xe9b5('0x29')]=function(_0x5367a0,_0x35aed1){var _0x3648df={},_0x1f89d7={},_0x2b90a0={'count':0x0,'rows':[]};var _0x2082e5=_[_0xe9b5('0x2a')](db[_0xe9b5('0x2b')][_0xe9b5('0x2c')],function(_0x1a397c){return{'name':_0x1a397c[_0xe9b5('0x2d')],'type':_0x1a397c[_0xe9b5('0x2e')][_0xe9b5('0x2f')]};});_0x1f89d7[_0xe9b5('0x30')]=_[_0xe9b5('0x2a')](_0x2082e5,_0xe9b5('0x27'));_0x1f89d7['query']=_[_0xe9b5('0x31')](_0x5367a0[_0xe9b5('0x32')]);_0x1f89d7['filters']=_['intersection'](_0x1f89d7[_0xe9b5('0x30')],_0x1f89d7[_0xe9b5('0x32')]);_0x3648df[_0xe9b5('0x33')]=_[_0xe9b5('0x34')](_0x1f89d7[_0xe9b5('0x30')],qs[_0xe9b5('0x35')](_0x5367a0[_0xe9b5('0x32')]['fields']));_0x3648df[_0xe9b5('0x33')]=_0x3648df[_0xe9b5('0x33')][_0xe9b5('0x36')]?_0x3648df[_0xe9b5('0x33')]:_0x1f89d7[_0xe9b5('0x30')];if(!_0x5367a0[_0xe9b5('0x32')]['hasOwnProperty']('nolimit')){_0x3648df[_0xe9b5('0x37')]=qs[_0xe9b5('0x37')](_0x5367a0['query'][_0xe9b5('0x37')]);_0x3648df[_0xe9b5('0x1c')]=qs[_0xe9b5('0x1c')](_0x5367a0['query'][_0xe9b5('0x1c')]);}_0x3648df['order']=qs[_0xe9b5('0x38')](_0x5367a0[_0xe9b5('0x32')][_0xe9b5('0x38')]);_0x3648df['where']=qs[_0xe9b5('0x39')](_['pick'](_0x5367a0['query'],_0x1f89d7[_0xe9b5('0x39')]),_0x2082e5);if(_0x5367a0['query'][_0xe9b5('0x3a')]){_0x3648df[_0xe9b5('0x3b')]=_[_0xe9b5('0x3c')](_0x3648df[_0xe9b5('0x3b')],{'$or':_['map'](_0x2082e5,function(_0x42198c){if(_0x42198c[_0xe9b5('0x2e')]!==_0xe9b5('0x3d')){var _0x4a4b9c={};_0x4a4b9c[_0x42198c[_0xe9b5('0x27')]]={'$like':'%'+_0x5367a0[_0xe9b5('0x32')][_0xe9b5('0x3a')]+'%'};return _0x4a4b9c;}})});}_0x3648df=_[_0xe9b5('0x3c')]({},_0x3648df,_0x5367a0[_0xe9b5('0x3e')]);var _0x2b4477={'where':_0x3648df[_0xe9b5('0x3b')]};return db['SquareRecording'][_0xe9b5('0x1e')](_0x2b4477)[_0xe9b5('0x22')](function(_0x15a4f2){_0x2b90a0[_0xe9b5('0x1e')]=_0x15a4f2;if(_0x5367a0[_0xe9b5('0x32')][_0xe9b5('0x3f')]){_0x3648df['include']=[{'all':!![]}];}return db['SquareRecording'][_0xe9b5('0x40')](_0x3648df);})[_0xe9b5('0x22')](function(_0x4f949f){_0x2b90a0[_0xe9b5('0x41')]=_0x4f949f;return _0x2b90a0;})[_0xe9b5('0x22')](respondWithFilteredResult(_0x35aed1,_0x3648df))[_0xe9b5('0x42')](handleError(_0x35aed1,null));};exports['show']=function(_0x5a8e99,_0x3208be){var _0x14c733={'raw':!![],'where':{'id':_0x5a8e99['params']['id']}},_0x170298={};_0x170298[_0xe9b5('0x30')]=_[_0xe9b5('0x31')](db['SquareRecording']['rawAttributes']);_0x170298['query']=_[_0xe9b5('0x31')](_0x5a8e99[_0xe9b5('0x32')]);_0x170298['filters']=_['intersection'](_0x170298[_0xe9b5('0x30')],_0x170298[_0xe9b5('0x32')]);_0x14c733[_0xe9b5('0x33')]=_[_0xe9b5('0x34')](_0x170298['model'],qs['fields'](_0x5a8e99[_0xe9b5('0x32')][_0xe9b5('0x35')]));_0x14c733[_0xe9b5('0x33')]=_0x14c733[_0xe9b5('0x33')][_0xe9b5('0x36')]?_0x14c733['attributes']:_0x170298['model'];if(_0x5a8e99[_0xe9b5('0x32')][_0xe9b5('0x3f')]){_0x14c733[_0xe9b5('0x43')]=[{'all':!![]}];}_0x14c733=_[_0xe9b5('0x3c')]({},_0x14c733,_0x5a8e99[_0xe9b5('0x3e')]);return db[_0xe9b5('0x2b')]['find'](_0x14c733)['then'](handleEntityNotFound(_0x3208be,null))[_0xe9b5('0x22')](respondWithResult(_0x3208be,null))[_0xe9b5('0x42')](handleError(_0x3208be,null));};exports[_0xe9b5('0x44')]=function(_0x45a953,_0x32275d){return db['SquareRecording'][_0xe9b5('0x44')](_0x45a953[_0xe9b5('0x45')],{})['then'](respondWithResult(_0x32275d,0xc9))[_0xe9b5('0x42')](handleError(_0x32275d,null));};exports[_0xe9b5('0x21')]=function(_0xc86883,_0x306625){if(_0xc86883['body']['id']){delete _0xc86883[_0xe9b5('0x45')]['id'];}return db[_0xe9b5('0x2b')][_0xe9b5('0x46')]({'where':{'id':_0xc86883[_0xe9b5('0x47')]['id']}})[_0xe9b5('0x22')](handleEntityNotFound(_0x306625,null))[_0xe9b5('0x22')](saveUpdates(_0xc86883[_0xe9b5('0x45')],null))[_0xe9b5('0x22')](respondWithResult(_0x306625,null))['catch'](handleError(_0x306625,null));};exports[_0xe9b5('0x48')]=function(_0xcad75e,_0x337022,_0x7ec91f){var _0x179457=require(_0xe9b5('0x49'));var _0x5e4dfc=![];var _0x3502bd={};if(_0xcad75e[_0xe9b5('0x32')]['type']&&_0xcad75e['query']['type']==='uniqueid'){_0x3502bd['uniqueid']=_0xcad75e[_0xe9b5('0x47')]['id'];}else{_0x3502bd['id']=_0xcad75e[_0xe9b5('0x47')]['id'];}return db[_0xe9b5('0x2b')][_0xe9b5('0x46')]({'where':_0x3502bd,'attributes':['id',_0xe9b5('0x4a'),_0xe9b5('0x4b')],'raw':!![]})[_0xe9b5('0x22')](handleEntityNotFound(_0x337022,null))['then'](function(_0x7080f0){if(_0x7080f0){var _0x24c988=_0x7080f0[_0xe9b5('0x4a')];var _0x364c40=util[_0xe9b5('0x4c')](_0xe9b5('0x4d'),_0x24c988);if(fs[_0xe9b5('0x4e')](_0x364c40)){_0x5e4dfc=!![];return _0x179457[_0xe9b5('0x4f')](_0x364c40,_0x24c988,config[_0xe9b5('0x50')][_0xe9b5('0x51')])[_0xe9b5('0x22')](function(){return _0x7080f0;});}return _0x7080f0;}})['then'](function(_0x22272b){if(_0x22272b){var _0x294793=_0x22272b[_0xe9b5('0x4a')];if(!fs[_0xe9b5('0x4e')](_0x294793)){throw new db[(_0xe9b5('0x52'))]['ValidationError']('SquareRecording\x20not\x20found');}if(_0x22272b[_0xe9b5('0x4b')]){return _0x337022['download'](_0x294793,_0x22272b[_0xe9b5('0x4b')]+path[_0xe9b5('0x53')](_0x294793),function(){if(_0x5e4dfc){fs[_0xe9b5('0x54')](_0x294793);}});}else{return _0x337022[_0xe9b5('0x48')](_0x294793,function(_0x7b1295){if(_0x5e4dfc){fs[_0xe9b5('0x54')](_0x294793);}});}}})[_0xe9b5('0x42')](function(_0x4ed172){if(_0x4ed172[_0xe9b5('0x55')]===_0xe9b5('0x56')){_0x337022['status'](0x194)[_0xe9b5('0x28')](_0xe9b5('0x57'));}else{return handleError(_0x337022,null);}});};exports[_0xe9b5('0x23')]=function(_0x481fb0,_0x2fd995){return db[_0xe9b5('0x2b')][_0xe9b5('0x46')]({'where':{'id':_0x481fb0[_0xe9b5('0x47')]['id']}})['then'](function(_0x58e2e6){if(_[_0xe9b5('0x58')](_0x58e2e6)){throw new ReferenceError(_0xe9b5('0x59'));}return _0x58e2e6;})['then'](function(_0x29f900){var _0x3b6d7d=_0x29f900['savePath'];logger[_0xe9b5('0x5a')]('cancellazione\x20fisica\x20documento\x20%s',_0x3b6d7d);if(!_['isNil'](_0x29f900[_0xe9b5('0x4a')])&&fs[_0xe9b5('0x4e')](_0x3b6d7d)){logger[_0xe9b5('0x5a')](_0xe9b5('0x5b')+_0x3b6d7d+'\x22\x20trovato\x20eseguo\x20la\x20cancellazione');fs[_0xe9b5('0x5c')](_0x3b6d7d);}_0x3b6d7d=_0x3b6d7d+_0xe9b5('0x5d');if(!_['isNil'](_0x29f900[_0xe9b5('0x4a')])&&fs['existsSync'](_0x3b6d7d)){logger[_0xe9b5('0x5a')]('File:\x20\x22'+_0x3b6d7d+_0xe9b5('0x5e'));fs[_0xe9b5('0x5c')](_0x3b6d7d);}return _0x29f900;})[_0xe9b5('0x22')](function(_0x3ca580){if(!_0x3ca580)throw new InternalError();return _0x3ca580[_0xe9b5('0x23')]();})['then'](function(){_0x2fd995[_0xe9b5('0x19')](0xcc)[_0xe9b5('0x1a')]();})[_0xe9b5('0x42')](handleError(_0x2fd995,null));};
\ No newline at end of file
+var _0x53b6=['filter','merge','where','VIRTUAL','includeAll','include','findAll','rows','catch','show','params','options','body','download','../../components/encryptor','uniqueid','find','filename','format','%s.cypher','existsSync','secrets','savePath','Sequelize','ValidationError','SquareRecording\x20not\x20found','unlink','Not\x20found','destroy','Entity\x20not\x20found','info','cancellazione\x20fisica\x20documento\x20%s','isNil','File:\x20\x22','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','unlinkSync','eml-format','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','apply','reject','update','then','error','name','send','map','SquareRecording','rawAttributes','fieldName','type','key','query','keys','filters','intersection','attributes','model','fields','length','hasOwnProperty','nolimit','order','sort','pick'];(function(_0x184759,_0x1cc38a){var _0xf26d5f=function(_0x1010c8){while(--_0x1010c8){_0x184759['push'](_0x184759['shift']());}};_0xf26d5f(++_0x1cc38a);}(_0x53b6,0x86));var _0x653b=function(_0x2d7f0e,_0x3e6fbd){_0x2d7f0e=_0x2d7f0e-0x0;var _0x110b07=_0x53b6[_0x2d7f0e];return _0x110b07;};'use strict';var emlformat=require(_0x653b('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x653b('0x1'));var jsonpatch=require(_0x653b('0x2'));var rp=require('request-promise');var moment=require(_0x653b('0x3'));var BPromise=require(_0x653b('0x4'));var Mustache=require(_0x653b('0x5'));var util=require(_0x653b('0x6'));var path=require(_0x653b('0x7'));var sox=require(_0x653b('0x8'));var csv=require(_0x653b('0x9'));var ejs=require(_0x653b('0xa'));var fs=require('fs');var fs_extra=require(_0x653b('0xb'));var _=require(_0x653b('0xc'));var squel=require('squel');var crypto=require(_0x653b('0xd'));var jsforce=require(_0x653b('0xe'));var deskjs=require(_0x653b('0xf'));var toCsv=require(_0x653b('0x9'));var querystring=require(_0x653b('0x10'));var Papa=require(_0x653b('0x11'));var Redis=require(_0x653b('0x12'));var authService=require(_0x653b('0x13'));var qs=require(_0x653b('0x14'));var as=require(_0x653b('0x15'));var hardwareService=require(_0x653b('0x16'));var logger=require(_0x653b('0x17'))(_0x653b('0x18'));var utils=require('../../config/utils');var config=require(_0x653b('0x19'));var licenseUtil=require(_0x653b('0x1a'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x2ab3fb,_0x5d34a0){_0x5d34a0=_0x5d34a0||0xcc;return function(_0x2f90c6){if(_0x2f90c6){return _0x2ab3fb[_0x653b('0x1b')](_0x5d34a0);}return _0x2ab3fb[_0x653b('0x1c')](_0x5d34a0)[_0x653b('0x1d')]();};}function respondWithResult(_0x42c744,_0xcefee0){_0xcefee0=_0xcefee0||0xc8;return function(_0x1e7ee8){if(_0x1e7ee8){return _0x42c744[_0x653b('0x1c')](_0xcefee0)[_0x653b('0x1e')](_0x1e7ee8);}};}function respondWithFilteredResult(_0x11276b,_0x5c341a){return function(_0x3812cb){if(_0x3812cb){var _0x371078=typeof _0x5c341a[_0x653b('0x1f')]===_0x653b('0x20')&&typeof _0x5c341a[_0x653b('0x21')]===_0x653b('0x20');var _0x2e0984=_0x3812cb['count'];var _0x24dada=_0x371078?0x0:_0x5c341a['offset'];var _0x2c2b41=_0x371078?_0x3812cb[_0x653b('0x22')]:_0x5c341a[_0x653b('0x1f')]+_0x5c341a[_0x653b('0x21')];var _0x733dd7;if(_0x2c2b41>=_0x2e0984){_0x2c2b41=_0x2e0984;_0x733dd7=0xc8;}else{_0x733dd7=0xce;}_0x11276b[_0x653b('0x1c')](_0x733dd7);return _0x11276b['set'](_0x653b('0x23'),_0x24dada+'-'+_0x2c2b41+'/'+_0x2e0984)[_0x653b('0x1e')](_0x3812cb);}return null;};}function patchUpdates(_0x1e7e9e){return function(_0x3ac93d){try{jsonpatch[_0x653b('0x24')](_0x3ac93d,_0x1e7e9e,!![]);}catch(_0x3b5351){return BPromise[_0x653b('0x25')](_0x3b5351);}return _0x3ac93d['save']();};}function saveUpdates(_0x226c54,_0x74c98f){return function(_0x2cce89){if(_0x2cce89){return _0x2cce89[_0x653b('0x26')](_0x226c54)[_0x653b('0x27')](function(_0x2d55ed){return _0x2d55ed;});}return null;};}function removeEntity(_0x54f56c,_0x287f14){return function(_0x40e7fe){if(_0x40e7fe){return _0x40e7fe['destroy']()[_0x653b('0x27')](function(){_0x54f56c[_0x653b('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x159b16,_0xb8f73d){return function(_0x3dfe8c){if(!_0x3dfe8c){_0x159b16[_0x653b('0x1b')](0x194);}return _0x3dfe8c;};}function handleError(_0x3c2adb,_0x5605d0){_0x5605d0=_0x5605d0||0x1f4;return function(_0x3b2999){logger[_0x653b('0x28')](_0x3b2999['stack']);if(_0x3b2999[_0x653b('0x29')]){delete _0x3b2999[_0x653b('0x29')];}_0x3c2adb['status'](_0x5605d0)[_0x653b('0x2a')](_0x3b2999);};}exports['index']=function(_0x58f250,_0x412876){var _0x253769={},_0x539a61={},_0x471d66={'count':0x0,'rows':[]};var _0x4152d0=_[_0x653b('0x2b')](db[_0x653b('0x2c')][_0x653b('0x2d')],function(_0x281038){return{'name':_0x281038[_0x653b('0x2e')],'type':_0x281038[_0x653b('0x2f')][_0x653b('0x30')]};});_0x539a61['model']=_[_0x653b('0x2b')](_0x4152d0,_0x653b('0x29'));_0x539a61[_0x653b('0x31')]=_[_0x653b('0x32')](_0x58f250[_0x653b('0x31')]);_0x539a61[_0x653b('0x33')]=_[_0x653b('0x34')](_0x539a61['model'],_0x539a61[_0x653b('0x31')]);_0x253769[_0x653b('0x35')]=_[_0x653b('0x34')](_0x539a61[_0x653b('0x36')],qs['fields'](_0x58f250[_0x653b('0x31')][_0x653b('0x37')]));_0x253769[_0x653b('0x35')]=_0x253769[_0x653b('0x35')][_0x653b('0x38')]?_0x253769[_0x653b('0x35')]:_0x539a61[_0x653b('0x36')];if(!_0x58f250['query'][_0x653b('0x39')](_0x653b('0x3a'))){_0x253769[_0x653b('0x21')]=qs[_0x653b('0x21')](_0x58f250['query'][_0x653b('0x21')]);_0x253769[_0x653b('0x1f')]=qs['offset'](_0x58f250['query']['offset']);}_0x253769[_0x653b('0x3b')]=qs[_0x653b('0x3c')](_0x58f250[_0x653b('0x31')]['sort']);_0x253769['where']=qs[_0x653b('0x33')](_[_0x653b('0x3d')](_0x58f250[_0x653b('0x31')],_0x539a61[_0x653b('0x33')]),_0x4152d0);if(_0x58f250[_0x653b('0x31')][_0x653b('0x3e')]){_0x253769['where']=_[_0x653b('0x3f')](_0x253769[_0x653b('0x40')],{'$or':_[_0x653b('0x2b')](_0x4152d0,function(_0x3165f0){if(_0x3165f0[_0x653b('0x2f')]!==_0x653b('0x41')){var _0x4851d0={};_0x4851d0[_0x3165f0[_0x653b('0x29')]]={'$like':'%'+_0x58f250[_0x653b('0x31')][_0x653b('0x3e')]+'%'};return _0x4851d0;}})});}_0x253769=_[_0x653b('0x3f')]({},_0x253769,_0x58f250['options']);var _0x10c4c8={'where':_0x253769[_0x653b('0x40')]};return db[_0x653b('0x2c')]['count'](_0x10c4c8)['then'](function(_0x1411a3){_0x471d66[_0x653b('0x22')]=_0x1411a3;if(_0x58f250[_0x653b('0x31')][_0x653b('0x42')]){_0x253769[_0x653b('0x43')]=[{'all':!![]}];}return db[_0x653b('0x2c')][_0x653b('0x44')](_0x253769);})[_0x653b('0x27')](function(_0x3db779){_0x471d66[_0x653b('0x45')]=_0x3db779;return _0x471d66;})[_0x653b('0x27')](respondWithFilteredResult(_0x412876,_0x253769))[_0x653b('0x46')](handleError(_0x412876,null));};exports[_0x653b('0x47')]=function(_0x3c6068,_0x25aa39){var _0x3ac093={'raw':!![],'where':{'id':_0x3c6068[_0x653b('0x48')]['id']}},_0x324dc1={};_0x324dc1[_0x653b('0x36')]=_['keys'](db['SquareRecording']['rawAttributes']);_0x324dc1[_0x653b('0x31')]=_[_0x653b('0x32')](_0x3c6068[_0x653b('0x31')]);_0x324dc1[_0x653b('0x33')]=_['intersection'](_0x324dc1[_0x653b('0x36')],_0x324dc1[_0x653b('0x31')]);_0x3ac093[_0x653b('0x35')]=_[_0x653b('0x34')](_0x324dc1[_0x653b('0x36')],qs[_0x653b('0x37')](_0x3c6068['query']['fields']));_0x3ac093['attributes']=_0x3ac093['attributes'][_0x653b('0x38')]?_0x3ac093['attributes']:_0x324dc1['model'];if(_0x3c6068[_0x653b('0x31')][_0x653b('0x42')]){_0x3ac093[_0x653b('0x43')]=[{'all':!![]}];}_0x3ac093=_[_0x653b('0x3f')]({},_0x3ac093,_0x3c6068[_0x653b('0x49')]);return db[_0x653b('0x2c')]['find'](_0x3ac093)[_0x653b('0x27')](handleEntityNotFound(_0x25aa39,null))['then'](respondWithResult(_0x25aa39,null))[_0x653b('0x46')](handleError(_0x25aa39,null));};exports['create']=function(_0x28c918,_0x413bb5){return db[_0x653b('0x2c')]['create'](_0x28c918[_0x653b('0x4a')],{})[_0x653b('0x27')](respondWithResult(_0x413bb5,0xc9))['catch'](handleError(_0x413bb5,null));};exports[_0x653b('0x26')]=function(_0xe7c5e2,_0x478230){if(_0xe7c5e2[_0x653b('0x4a')]['id']){delete _0xe7c5e2[_0x653b('0x4a')]['id'];}return db[_0x653b('0x2c')]['find']({'where':{'id':_0xe7c5e2[_0x653b('0x48')]['id']}})[_0x653b('0x27')](handleEntityNotFound(_0x478230,null))['then'](saveUpdates(_0xe7c5e2[_0x653b('0x4a')],null))[_0x653b('0x27')](respondWithResult(_0x478230,null))[_0x653b('0x46')](handleError(_0x478230,null));};exports[_0x653b('0x4b')]=function(_0x55702d,_0x587513,_0x237781){var _0x4d1536=require(_0x653b('0x4c'));var _0xfafa08=![];var _0x4a6198={};if(_0x55702d[_0x653b('0x31')][_0x653b('0x2f')]&&_0x55702d['query']['type']===_0x653b('0x4d')){_0x4a6198[_0x653b('0x4d')]=_0x55702d[_0x653b('0x48')]['id'];}else{_0x4a6198['id']=_0x55702d[_0x653b('0x48')]['id'];}return db['SquareRecording'][_0x653b('0x4e')]({'where':_0x4a6198,'attributes':['id','savePath',_0x653b('0x4f')],'raw':!![]})[_0x653b('0x27')](handleEntityNotFound(_0x587513,null))[_0x653b('0x27')](function(_0x21d7af){if(_0x21d7af){var _0xfc0a2f=_0x21d7af['savePath'];var _0xb38e1b=util[_0x653b('0x50')](_0x653b('0x51'),_0xfc0a2f);if(fs[_0x653b('0x52')](_0xb38e1b)){_0xfafa08=!![];return _0x4d1536['decryptFile'](_0xb38e1b,_0xfc0a2f,config[_0x653b('0x53')]['recording'])[_0x653b('0x27')](function(){return _0x21d7af;});}return _0x21d7af;}})[_0x653b('0x27')](function(_0x12cc14){if(_0x12cc14){var _0x5710a8=_0x12cc14[_0x653b('0x54')];if(!fs[_0x653b('0x52')](_0x5710a8)){throw new db[(_0x653b('0x55'))][(_0x653b('0x56'))](_0x653b('0x57'));}if(_0x12cc14[_0x653b('0x4f')]){return _0x587513[_0x653b('0x4b')](_0x5710a8,_0x12cc14[_0x653b('0x4f')]+path['extname'](_0x5710a8),function(){if(_0xfafa08){fs[_0x653b('0x58')](_0x5710a8);}});}else{return _0x587513[_0x653b('0x4b')](_0x5710a8,function(_0x2b84c5){if(_0xfafa08){fs[_0x653b('0x58')](_0x5710a8);}});}}})[_0x653b('0x46')](function(_0x37ce3b){if(_0x37ce3b['message']===_0x653b('0x57')){_0x587513[_0x653b('0x1c')](0x194)[_0x653b('0x2a')](_0x653b('0x59'));}else{return handleError(_0x587513,null);}});};exports[_0x653b('0x5a')]=function(_0x451afa,_0x10aff7){return db[_0x653b('0x2c')][_0x653b('0x4e')]({'where':{'id':_0x451afa[_0x653b('0x48')]['id']}})[_0x653b('0x27')](function(_0x34b25e){if(_['isNil'](_0x34b25e)){throw new ReferenceError(_0x653b('0x5b'));}return _0x34b25e;})[_0x653b('0x27')](function(_0x1bd03f){var _0x438b3b=_0x1bd03f[_0x653b('0x54')];logger[_0x653b('0x5c')](_0x653b('0x5d'),_0x438b3b);if(!_[_0x653b('0x5e')](_0x1bd03f[_0x653b('0x54')])&&fs[_0x653b('0x52')](_0x438b3b)){logger[_0x653b('0x5c')](_0x653b('0x5f')+_0x438b3b+_0x653b('0x60'));fs[_0x653b('0x61')](_0x438b3b);}_0x438b3b=_0x438b3b+'.cypher';if(!_['isNil'](_0x1bd03f['savePath'])&&fs[_0x653b('0x52')](_0x438b3b)){logger[_0x653b('0x5c')](_0x653b('0x5f')+_0x438b3b+_0x653b('0x60'));fs[_0x653b('0x61')](_0x438b3b);}return _0x1bd03f;})['then'](function(_0x18f2c4){if(!_0x18f2c4)throw new InternalError();return _0x18f2c4[_0x653b('0x5a')]();})[_0x653b('0x27')](function(){_0x10aff7[_0x653b('0x1c')](0xcc)['end']();})['catch'](handleError(_0x10aff7,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa35e=['lodash','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./squareRecording.attributes','exports','define','SquareRecording'];(function(_0x14b6e1,_0x5aae13){var _0x466a14=function(_0x31e732){while(--_0x31e732){_0x14b6e1['push'](_0x14b6e1['shift']());}};_0x466a14(++_0x5aae13);}(_0xa35e,0x111));var _0xea35=function(_0x2db45e,_0x3c3b37){_0x2db45e=_0x2db45e-0x0;var _0x200a5=_0xa35e[_0x2db45e];return _0x200a5;};'use strict';var _=require(_0xea35('0x0'));var util=require('util');var logger=require(_0xea35('0x1'))(_0xea35('0x2'));var moment=require(_0xea35('0x3'));var BPromise=require(_0xea35('0x4'));var rp=require(_0xea35('0x5'));var fs=require('fs');var path=require(_0xea35('0x6'));var rimraf=require(_0xea35('0x7'));var config=require(_0xea35('0x8'));var attributes=require(_0xea35('0x9'));module[_0xea35('0xa')]=function(_0x3d2b41,_0x3dc645){return _0x3d2b41[_0xea35('0xb')](_0xea35('0xc'),attributes,{'tableName':'square_recordings','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x1883=['../../config/environment','./squareRecording.attributes','exports','define','SquareRecording','square_recordings','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf'];(function(_0x49693f,_0x4d994f){var _0x1b0f6e=function(_0x4b2c16){while(--_0x4b2c16){_0x49693f['push'](_0x49693f['shift']());}};_0x1b0f6e(++_0x4d994f);}(_0x1883,0xab));var _0x3188=function(_0x3810a2,_0x4073e6){_0x3810a2=_0x3810a2-0x0;var _0x2fade6=_0x1883[_0x3810a2];return _0x2fade6;};'use strict';var _=require(_0x3188('0x0'));var util=require(_0x3188('0x1'));var logger=require(_0x3188('0x2'))(_0x3188('0x3'));var moment=require(_0x3188('0x4'));var BPromise=require(_0x3188('0x5'));var rp=require(_0x3188('0x6'));var fs=require('fs');var path=require(_0x3188('0x7'));var rimraf=require(_0x3188('0x8'));var config=require(_0x3188('0x9'));var attributes=require(_0x3188('0xa'));module[_0x3188('0xb')]=function(_0x408ae0,_0x33b62d){return _0x408ae0[_0x3188('0xc')](_0x3188('0xd'),attributes,{'tableName':_0x3188('0xe'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2de5=['then','info','request\x20sent','stringify','error','code','SquareRecording,\x20%s,\x20%s','message','result','catch','CreateSquareRecording','SquareRecording','create','body','options','raw','debug','lodash','util','moment','randomstring','ioredis','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','request'];(function(_0xaa5178,_0x386683){var _0x5f193b=function(_0x3e3599){while(--_0x3e3599){_0xaa5178['push'](_0xaa5178['shift']());}};_0x5f193b(++_0x386683);}(_0x2de5,0x150));var _0x52de=function(_0x17406a,_0x1e2320){_0x17406a=_0x17406a-0x0;var _0x1501ff=_0x2de5[_0x17406a];return _0x1501ff;};'use strict';var _=require(_0x52de('0x0'));var util=require(_0x52de('0x1'));var moment=require(_0x52de('0x2'));var BPromise=require('bluebird');var rs=require(_0x52de('0x3'));var fs=require('fs');var Redis=require(_0x52de('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x52de('0x5'));var logger=require('../../config/logger')(_0x52de('0x6'));var config=require(_0x52de('0x7'));var jayson=require(_0x52de('0x8'));var client=jayson[_0x52de('0x9')][_0x52de('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x5cdeeb,_0x3493bd,_0x2ea1ba){return new BPromise(function(_0x26e72d,_0x216a8b){return client[_0x52de('0xb')](_0x5cdeeb,_0x2ea1ba)[_0x52de('0xc')](function(_0x3d7c03){logger[_0x52de('0xd')]('SquareRecording,\x20%s,\x20%s',_0x3493bd,'request\x20sent');logger['debug']('SquareRecording,\x20%s,\x20%s,\x20%s',_0x3493bd,_0x52de('0xe'),JSON[_0x52de('0xf')](_0x3d7c03));if(_0x3d7c03[_0x52de('0x10')]){if(_0x3d7c03[_0x52de('0x10')][_0x52de('0x11')]===0x1f4){logger['error'](_0x52de('0x12'),_0x3493bd,_0x3d7c03['error'][_0x52de('0x13')]);return _0x216a8b(_0x3d7c03[_0x52de('0x10')][_0x52de('0x13')]);}logger[_0x52de('0x10')]('SquareRecording,\x20%s,\x20%s',_0x3493bd,_0x3d7c03[_0x52de('0x10')][_0x52de('0x13')]);return _0x26e72d(_0x3d7c03[_0x52de('0x10')][_0x52de('0x13')]);}else{logger[_0x52de('0xd')]('SquareRecording,\x20%s,\x20%s',_0x3493bd,_0x52de('0xe'));_0x26e72d(_0x3d7c03[_0x52de('0x14')][_0x52de('0x13')]);}})[_0x52de('0x15')](function(_0x52d2d5){logger[_0x52de('0x10')]('SquareRecording,\x20%s,\x20%s',_0x3493bd,_0x52d2d5);_0x216a8b(_0x52d2d5);});});}exports[_0x52de('0x16')]=function(_0xe54da3){var _0x22b46b=this;return new Promise(function(_0x43e076,_0x44ace2){return db[_0x52de('0x17')][_0x52de('0x18')](_0xe54da3[_0x52de('0x19')],{'raw':_0xe54da3[_0x52de('0x1a')]?_0xe54da3[_0x52de('0x1a')][_0x52de('0x1b')]===undefined?!![]:![]:!![]})[_0x52de('0xc')](function(_0x15197e){logger[_0x52de('0xd')](_0x52de('0x16'),_0xe54da3);logger[_0x52de('0x1c')](_0x52de('0x16'),_0xe54da3,JSON['stringify'](_0x15197e));_0x43e076(_0x15197e);})['catch'](function(_0x111934){logger[_0x52de('0x10')](_0x52de('0x16'),_0x111934[_0x52de('0x13')],_0xe54da3);_0x44ace2(_0x22b46b[_0x52de('0x10')](0x1f4,_0x111934[_0x52de('0x13')]));});});};
\ No newline at end of file
+var _0x530b=['ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','request','then','info','SquareRecording,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','SquareRecording,\x20%s,\x20%s','message','SquareRecording','create','body','options','CreateSquareRecording','debug','stringify','catch','lodash','moment','randomstring'];(function(_0xe4e77c,_0x5533ae){var _0x14f0de=function(_0x599fc6){while(--_0x599fc6){_0xe4e77c['push'](_0xe4e77c['shift']());}};_0x14f0de(++_0x5533ae);}(_0x530b,0x1d9));var _0xb530=function(_0x1e9e56,_0x34a74a){_0x1e9e56=_0x1e9e56-0x0;var _0x5d5e2e=_0x530b[_0x1e9e56];return _0x5d5e2e;};'use strict';var _=require(_0xb530('0x0'));var util=require('util');var moment=require(_0xb530('0x1'));var BPromise=require('bluebird');var rs=require(_0xb530('0x2'));var fs=require('fs');var Redis=require(_0xb530('0x3'));var db=require(_0xb530('0x4'))['db'];var utils=require(_0xb530('0x5'));var logger=require(_0xb530('0x6'))(_0xb530('0x7'));var config=require('../../config/environment');var jayson=require(_0xb530('0x8'));var client=jayson[_0xb530('0x9')][_0xb530('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x25f877,_0x3a23a4,_0x1c4251){return new BPromise(function(_0x4a6bbb,_0x450a00){return client[_0xb530('0xb')](_0x25f877,_0x1c4251)[_0xb530('0xc')](function(_0x5881bf){logger[_0xb530('0xd')]('SquareRecording,\x20%s,\x20%s',_0x3a23a4,'request\x20sent');logger['debug'](_0xb530('0xe'),_0x3a23a4,_0xb530('0xf'),JSON['stringify'](_0x5881bf));if(_0x5881bf[_0xb530('0x10')]){if(_0x5881bf[_0xb530('0x10')][_0xb530('0x11')]===0x1f4){logger[_0xb530('0x10')](_0xb530('0x12'),_0x3a23a4,_0x5881bf[_0xb530('0x10')]['message']);return _0x450a00(_0x5881bf[_0xb530('0x10')]['message']);}logger[_0xb530('0x10')](_0xb530('0x12'),_0x3a23a4,_0x5881bf[_0xb530('0x10')][_0xb530('0x13')]);return _0x4a6bbb(_0x5881bf[_0xb530('0x10')][_0xb530('0x13')]);}else{logger[_0xb530('0xd')](_0xb530('0x12'),_0x3a23a4,_0xb530('0xf'));_0x4a6bbb(_0x5881bf['result'][_0xb530('0x13')]);}})['catch'](function(_0xb32ffa){logger[_0xb530('0x10')](_0xb530('0x12'),_0x3a23a4,_0xb32ffa);_0x450a00(_0xb32ffa);});});}exports['CreateSquareRecording']=function(_0x3ac07e){var _0xb0814d=this;return new Promise(function(_0x591302,_0x3aa704){return db[_0xb530('0x14')][_0xb530('0x15')](_0x3ac07e[_0xb530('0x16')],{'raw':_0x3ac07e['options']?_0x3ac07e[_0xb530('0x17')]['raw']===undefined?!![]:![]:!![]})['then'](function(_0x4536ef){logger[_0xb530('0xd')](_0xb530('0x18'),_0x3ac07e);logger[_0xb530('0x19')](_0xb530('0x18'),_0x3ac07e,JSON[_0xb530('0x1a')](_0x4536ef));_0x591302(_0x4536ef);})[_0xb530('0x1b')](function(_0x16e72b){logger[_0xb530('0x10')](_0xb530('0x18'),_0x16e72b[_0xb530('0x13')],_0x3ac07e);_0x3aa704(_0xb0814d[_0xb530('0x10')](0x1f4,_0x16e72b[_0xb530('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbaf0=['/:id','update','delete','exports','util','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./squareReport.controller','get','isAuthenticated','index','/describe','show','post','create','put'];(function(_0x424d83,_0x2cd8fa){var _0x322363=function(_0x47f5d3){while(--_0x47f5d3){_0x424d83['push'](_0x424d83['shift']());}};_0x322363(++_0x2cd8fa);}(_0xbaf0,0x12a));var _0x0baf=function(_0x3947c9,_0x4d6c97){_0x3947c9=_0x3947c9-0x0;var _0x2e7871=_0xbaf0[_0x3947c9];return _0x2e7871;};'use strict';var multer=require('multer');var util=require(_0x0baf('0x0'));var path=require(_0x0baf('0x1'));var timeout=require(_0x0baf('0x2'));var express=require(_0x0baf('0x3'));var router=express[_0x0baf('0x4')]();var fs_extra=require(_0x0baf('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x0baf('0x6'));var config=require(_0x0baf('0x7'));var controller=require(_0x0baf('0x8'));router[_0x0baf('0x9')]('/',auth[_0x0baf('0xa')](),controller[_0x0baf('0xb')]);router[_0x0baf('0x9')](_0x0baf('0xc'),auth[_0x0baf('0xa')](),controller['describe']);router[_0x0baf('0x9')]('/:id',auth[_0x0baf('0xa')](),controller[_0x0baf('0xd')]);router[_0x0baf('0xe')]('/',auth[_0x0baf('0xa')](),controller[_0x0baf('0xf')]);router[_0x0baf('0x10')](_0x0baf('0x11'),auth[_0x0baf('0xa')](),controller[_0x0baf('0x12')]);router[_0x0baf('0x13')](_0x0baf('0x11'),auth['isAuthenticated'](),controller['destroy']);module[_0x0baf('0x14')]=router;
\ No newline at end of file
+var _0xd8b0=['destroy','exports','multer','util','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','isAuthenticated','index','get','describe','/:id','show','post','create','put','update'];(function(_0x22d423,_0x4ee083){var _0x1017ed=function(_0x29dd73){while(--_0x29dd73){_0x22d423['push'](_0x22d423['shift']());}};_0x1017ed(++_0x4ee083);}(_0xd8b0,0xad));var _0x0d8b=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xd8b0[_0x20a584];return _0x4b41a8;};'use strict';var multer=require(_0x0d8b('0x0'));var util=require(_0x0d8b('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0d8b('0x2')]();var fs_extra=require(_0x0d8b('0x3'));var auth=require(_0x0d8b('0x4'));var interaction=require(_0x0d8b('0x5'));var config=require(_0x0d8b('0x6'));var controller=require('./squareReport.controller');router['get']('/',auth[_0x0d8b('0x7')](),controller[_0x0d8b('0x8')]);router[_0x0d8b('0x9')]('/describe',auth[_0x0d8b('0x7')](),controller[_0x0d8b('0xa')]);router['get'](_0x0d8b('0xb'),auth[_0x0d8b('0x7')](),controller[_0x0d8b('0xc')]);router[_0x0d8b('0xd')]('/',auth[_0x0d8b('0x7')](),controller[_0x0d8b('0xe')]);router[_0x0d8b('0xf')](_0x0d8b('0xb'),auth['isAuthenticated'](),controller[_0x0d8b('0x10')]);router['delete'](_0x0d8b('0xb'),auth[_0x0d8b('0x7')](),controller[_0x0d8b('0x11')]);module[_0x0d8b('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x14d1=['DATE','BOOLEAN','sequelize','exports','STRING'];(function(_0xd329c1,_0x3747e1){var _0x469b45=function(_0x37b4ef){while(--_0x37b4ef){_0xd329c1['push'](_0xd329c1['shift']());}};_0x469b45(++_0x3747e1);}(_0x14d1,0x84));var _0x114d=function(_0x5d3376,_0x496cad){_0x5d3376=_0x5d3376-0x0;var _0x3beaf5=_0x14d1[_0x5d3376];return _0x3beaf5;};'use strict';var Sequelize=require(_0x114d('0x0'));module[_0x114d('0x1')]={'network':{'type':Sequelize['STRING']},'network_script':{'type':Sequelize[_0x114d('0x2')]},'request':{'type':Sequelize[_0x114d('0x2')]},'channel':{'type':Sequelize[_0x114d('0x2')]},'language':{'type':Sequelize[_0x114d('0x2')]},'type':{'type':Sequelize[_0x114d('0x2')]},'uniqueid':{'type':Sequelize[_0x114d('0x2')]},'version':{'type':Sequelize[_0x114d('0x2')]},'callerid':{'type':Sequelize[_0x114d('0x2')]},'calleridname':{'type':Sequelize['STRING']},'callingpres':{'type':Sequelize[_0x114d('0x2')]},'callingani2':{'type':Sequelize[_0x114d('0x2')]},'callington':{'type':Sequelize[_0x114d('0x2')]},'callingtns':{'type':Sequelize[_0x114d('0x2')]},'dnid':{'type':Sequelize[_0x114d('0x2')]},'rdnis':{'type':Sequelize['STRING']},'context':{'type':Sequelize[_0x114d('0x2')]},'extension':{'type':Sequelize['STRING']},'priority':{'type':Sequelize[_0x114d('0x2')]},'enhanced':{'type':Sequelize['STRING']},'accountcode':{'type':Sequelize[_0x114d('0x2')]},'threadid':{'type':Sequelize[_0x114d('0x2')]},'project_name':{'type':Sequelize[_0x114d('0x2')]},'joinAt':{'type':Sequelize[_0x114d('0x3')]},'leaveAt':{'type':Sequelize['DATE']},'bot':{'type':Sequelize[_0x114d('0x4')],'defaultValue':![]}};
\ No newline at end of file
+var _0x7baa=['STRING','DATE','BOOLEAN'];(function(_0x38a7ac,_0x45514b){var _0x53061a=function(_0x1d2469){while(--_0x1d2469){_0x38a7ac['push'](_0x38a7ac['shift']());}};_0x53061a(++_0x45514b);}(_0x7baa,0x1ef));var _0xa7ba=function(_0x34bc30,_0x177cb0){_0x34bc30=_0x34bc30-0x0;var _0x5706de=_0x7baa[_0x34bc30];return _0x5706de;};'use strict';var Sequelize=require('sequelize');module['exports']={'network':{'type':Sequelize[_0xa7ba('0x0')]},'network_script':{'type':Sequelize[_0xa7ba('0x0')]},'request':{'type':Sequelize[_0xa7ba('0x0')]},'channel':{'type':Sequelize['STRING']},'language':{'type':Sequelize['STRING']},'type':{'type':Sequelize[_0xa7ba('0x0')]},'uniqueid':{'type':Sequelize[_0xa7ba('0x0')]},'version':{'type':Sequelize[_0xa7ba('0x0')]},'callerid':{'type':Sequelize[_0xa7ba('0x0')]},'calleridname':{'type':Sequelize[_0xa7ba('0x0')]},'callingpres':{'type':Sequelize['STRING']},'callingani2':{'type':Sequelize[_0xa7ba('0x0')]},'callington':{'type':Sequelize['STRING']},'callingtns':{'type':Sequelize[_0xa7ba('0x0')]},'dnid':{'type':Sequelize[_0xa7ba('0x0')]},'rdnis':{'type':Sequelize[_0xa7ba('0x0')]},'context':{'type':Sequelize[_0xa7ba('0x0')]},'extension':{'type':Sequelize[_0xa7ba('0x0')]},'priority':{'type':Sequelize[_0xa7ba('0x0')]},'enhanced':{'type':Sequelize[_0xa7ba('0x0')]},'accountcode':{'type':Sequelize[_0xa7ba('0x0')]},'threadid':{'type':Sequelize[_0xa7ba('0x0')]},'project_name':{'type':Sequelize[_0xa7ba('0x0')]},'joinAt':{'type':Sequelize[_0xa7ba('0x1')]},'leaveAt':{'type':Sequelize['DATE']},'bot':{'type':Sequelize[_0xa7ba('0x2')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x202b=['Content-Range','apply','reject','save','update','destroy','error','stack','name','send','index','map','SquareReport','rawAttributes','type','key','model','query','keys','filters','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','merge','VIRTUAL','filter','options','then','includeAll','findAll','rows','catch','show','params','intersection','length','include','create','body','find','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','offset','undefined','limit','count','set'];(function(_0x26dfc5,_0x138166){var _0x566350=function(_0x28b148){while(--_0x28b148){_0x26dfc5['push'](_0x26dfc5['shift']());}};_0x566350(++_0x138166);}(_0x202b,0x1cd));var _0xb202=function(_0x5ec2b8,_0x14c845){_0x5ec2b8=_0x5ec2b8-0x0;var _0x54e412=_0x202b[_0x5ec2b8];return _0x54e412;};'use strict';var emlformat=require(_0xb202('0x0'));var rimraf=require(_0xb202('0x1'));var zipdir=require(_0xb202('0x2'));var jsonpatch=require(_0xb202('0x3'));var rp=require(_0xb202('0x4'));var moment=require(_0xb202('0x5'));var BPromise=require(_0xb202('0x6'));var Mustache=require('mustache');var util=require(_0xb202('0x7'));var path=require(_0xb202('0x8'));var sox=require('sox');var csv=require(_0xb202('0x9'));var ejs=require(_0xb202('0xa'));var fs=require('fs');var fs_extra=require(_0xb202('0xb'));var _=require(_0xb202('0xc'));var squel=require(_0xb202('0xd'));var crypto=require(_0xb202('0xe'));var jsforce=require(_0xb202('0xf'));var deskjs=require(_0xb202('0x10'));var toCsv=require(_0xb202('0x9'));var querystring=require(_0xb202('0x11'));var Papa=require(_0xb202('0x12'));var Redis=require(_0xb202('0x13'));var authService=require(_0xb202('0x14'));var qs=require(_0xb202('0x15'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xb202('0x16'));var logger=require(_0xb202('0x17'))(_0xb202('0x18'));var utils=require(_0xb202('0x19'));var config=require(_0xb202('0x1a'));var licenseUtil=require(_0xb202('0x1b'));var db=require(_0xb202('0x1c'))['db'];function respondWithStatusCode(_0x18ae33,_0x20427e){_0x20427e=_0x20427e||0xcc;return function(_0x437718){if(_0x437718){return _0x18ae33[_0xb202('0x1d')](_0x20427e);}return _0x18ae33['status'](_0x20427e)[_0xb202('0x1e')]();};}function respondWithResult(_0x11d77c,_0x29848f){_0x29848f=_0x29848f||0xc8;return function(_0x1c70b1){if(_0x1c70b1){return _0x11d77c[_0xb202('0x1f')](_0x29848f)['json'](_0x1c70b1);}};}function respondWithFilteredResult(_0x4f8913,_0x3da05a){return function(_0x10d478){if(_0x10d478){var _0x23c054=typeof _0x3da05a[_0xb202('0x20')]===_0xb202('0x21')&&typeof _0x3da05a[_0xb202('0x22')]===_0xb202('0x21');var _0x5b977f=_0x10d478[_0xb202('0x23')];var _0x5c1ceb=_0x23c054?0x0:_0x3da05a[_0xb202('0x20')];var _0x964dd3=_0x23c054?_0x10d478[_0xb202('0x23')]:_0x3da05a[_0xb202('0x20')]+_0x3da05a['limit'];var _0x5a62e3;if(_0x964dd3>=_0x5b977f){_0x964dd3=_0x5b977f;_0x5a62e3=0xc8;}else{_0x5a62e3=0xce;}_0x4f8913['status'](_0x5a62e3);return _0x4f8913[_0xb202('0x24')](_0xb202('0x25'),_0x5c1ceb+'-'+_0x964dd3+'/'+_0x5b977f)['json'](_0x10d478);}return null;};}function patchUpdates(_0x312b2c){return function(_0x2d6e1f){try{jsonpatch[_0xb202('0x26')](_0x2d6e1f,_0x312b2c,!![]);}catch(_0x1b87a2){return BPromise[_0xb202('0x27')](_0x1b87a2);}return _0x2d6e1f[_0xb202('0x28')]();};}function saveUpdates(_0x3cfea3,_0x5b6c3b){return function(_0x266332){if(_0x266332){return _0x266332[_0xb202('0x29')](_0x3cfea3)['then'](function(_0x3c60c4){return _0x3c60c4;});}return null;};}function removeEntity(_0x6e0d41,_0x1148f8){return function(_0x39f743){if(_0x39f743){return _0x39f743[_0xb202('0x2a')]()['then'](function(){_0x6e0d41[_0xb202('0x1f')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4b758e,_0x5185c1){return function(_0x48ca94){if(!_0x48ca94){_0x4b758e[_0xb202('0x1d')](0x194);}return _0x48ca94;};}function handleError(_0x24e76e,_0x1271b8){_0x1271b8=_0x1271b8||0x1f4;return function(_0x2d0e3f){logger[_0xb202('0x2b')](_0x2d0e3f[_0xb202('0x2c')]);if(_0x2d0e3f[_0xb202('0x2d')]){delete _0x2d0e3f[_0xb202('0x2d')];}_0x24e76e[_0xb202('0x1f')](_0x1271b8)[_0xb202('0x2e')](_0x2d0e3f);};}exports[_0xb202('0x2f')]=function(_0x48a568,_0xcea8){var _0x137777={},_0x4f064d={},_0x4c90e9={'count':0x0,'rows':[]};var _0x2da635=_[_0xb202('0x30')](db[_0xb202('0x31')][_0xb202('0x32')],function(_0x205ac5){return{'name':_0x205ac5['fieldName'],'type':_0x205ac5[_0xb202('0x33')][_0xb202('0x34')]};});_0x4f064d[_0xb202('0x35')]=_[_0xb202('0x30')](_0x2da635,_0xb202('0x2d'));_0x4f064d[_0xb202('0x36')]=_[_0xb202('0x37')](_0x48a568[_0xb202('0x36')]);_0x4f064d[_0xb202('0x38')]=_['intersection'](_0x4f064d[_0xb202('0x35')],_0x4f064d[_0xb202('0x36')]);_0x137777[_0xb202('0x39')]=_['intersection'](_0x4f064d[_0xb202('0x35')],qs[_0xb202('0x3a')](_0x48a568['query'][_0xb202('0x3a')]));_0x137777[_0xb202('0x39')]=_0x137777[_0xb202('0x39')]['length']?_0x137777[_0xb202('0x39')]:_0x4f064d['model'];if(!_0x48a568['query'][_0xb202('0x3b')](_0xb202('0x3c'))){_0x137777[_0xb202('0x22')]=qs['limit'](_0x48a568[_0xb202('0x36')]['limit']);_0x137777[_0xb202('0x20')]=qs[_0xb202('0x20')](_0x48a568[_0xb202('0x36')][_0xb202('0x20')]);}_0x137777[_0xb202('0x3d')]=qs[_0xb202('0x3e')](_0x48a568['query']['sort']);_0x137777[_0xb202('0x3f')]=qs['filters'](_[_0xb202('0x40')](_0x48a568['query'],_0x4f064d['filters']),_0x2da635);if(_0x48a568[_0xb202('0x36')]['filter']){_0x137777[_0xb202('0x3f')]=_[_0xb202('0x41')](_0x137777[_0xb202('0x3f')],{'$or':_[_0xb202('0x30')](_0x2da635,function(_0x493188){if(_0x493188[_0xb202('0x33')]!==_0xb202('0x42')){var _0x28d3d3={};_0x28d3d3[_0x493188[_0xb202('0x2d')]]={'$like':'%'+_0x48a568[_0xb202('0x36')][_0xb202('0x43')]+'%'};return _0x28d3d3;}})});}_0x137777=_['merge']({},_0x137777,_0x48a568[_0xb202('0x44')]);var _0x3ac0f4={'where':_0x137777[_0xb202('0x3f')]};return db[_0xb202('0x31')]['count'](_0x3ac0f4)[_0xb202('0x45')](function(_0x3576f2){_0x4c90e9['count']=_0x3576f2;if(_0x48a568[_0xb202('0x36')][_0xb202('0x46')]){_0x137777['include']=[{'all':!![]}];}return db['SquareReport'][_0xb202('0x47')](_0x137777);})[_0xb202('0x45')](function(_0x1cfb6e){_0x4c90e9[_0xb202('0x48')]=_0x1cfb6e;return _0x4c90e9;})['then'](respondWithFilteredResult(_0xcea8,_0x137777))[_0xb202('0x49')](handleError(_0xcea8,null));};exports[_0xb202('0x4a')]=function(_0xb879b4,_0x4eb472){var _0x139e0a={'raw':!![],'where':{'id':_0xb879b4[_0xb202('0x4b')]['id']}},_0x100fa9={};_0x100fa9[_0xb202('0x35')]=_[_0xb202('0x37')](db[_0xb202('0x31')][_0xb202('0x32')]);_0x100fa9[_0xb202('0x36')]=_['keys'](_0xb879b4[_0xb202('0x36')]);_0x100fa9[_0xb202('0x38')]=_[_0xb202('0x4c')](_0x100fa9[_0xb202('0x35')],_0x100fa9[_0xb202('0x36')]);_0x139e0a[_0xb202('0x39')]=_[_0xb202('0x4c')](_0x100fa9['model'],qs['fields'](_0xb879b4[_0xb202('0x36')][_0xb202('0x3a')]));_0x139e0a[_0xb202('0x39')]=_0x139e0a[_0xb202('0x39')][_0xb202('0x4d')]?_0x139e0a['attributes']:_0x100fa9[_0xb202('0x35')];if(_0xb879b4[_0xb202('0x36')][_0xb202('0x46')]){_0x139e0a[_0xb202('0x4e')]=[{'all':!![]}];}_0x139e0a=_[_0xb202('0x41')]({},_0x139e0a,_0xb879b4[_0xb202('0x44')]);return db[_0xb202('0x31')]['find'](_0x139e0a)[_0xb202('0x45')](handleEntityNotFound(_0x4eb472,null))['then'](respondWithResult(_0x4eb472,null))[_0xb202('0x49')](handleError(_0x4eb472,null));};exports[_0xb202('0x4f')]=function(_0x411899,_0x216671){return db['SquareReport']['create'](_0x411899[_0xb202('0x50')],{})[_0xb202('0x45')](respondWithResult(_0x216671,0xc9))[_0xb202('0x49')](handleError(_0x216671,null));};exports[_0xb202('0x29')]=function(_0xc1e50e,_0x58c9d){if(_0xc1e50e[_0xb202('0x50')]['id']){delete _0xc1e50e['body']['id'];}return db['SquareReport'][_0xb202('0x51')]({'where':{'id':_0xc1e50e['params']['id']}})[_0xb202('0x45')](handleEntityNotFound(_0x58c9d,null))[_0xb202('0x45')](saveUpdates(_0xc1e50e[_0xb202('0x50')],null))[_0xb202('0x45')](respondWithResult(_0x58c9d,null))[_0xb202('0x49')](handleError(_0x58c9d,null));};exports[_0xb202('0x2a')]=function(_0xd67f2f,_0x577dfd){return db[_0xb202('0x31')][_0xb202('0x51')]({'where':{'id':_0xd67f2f[_0xb202('0x4b')]['id']}})[_0xb202('0x45')](handleEntityNotFound(_0x577dfd,null))['then'](removeEntity(_0x577dfd,null))['catch'](handleError(_0x577dfd,null));};exports[_0xb202('0x52')]=function(_0x1367f5,_0x427b6b){return db[_0xb202('0x31')][_0xb202('0x52')]()[_0xb202('0x45')](respondWithResult(_0x427b6b,null))[_0xb202('0x49')](handleError(_0x427b6b,null));};
\ No newline at end of file
+var _0x9038=['squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','save','update','then','destroy','error','stack','send','index','SquareReport','rawAttributes','fieldName','type','key','model','name','keys','intersection','query','attributes','fields','hasOwnProperty','nolimit','sort','where','filters','pick','filter','merge','map','VIRTUAL','includeAll','include','rows','catch','show','length','options','find','create','body','params','describe','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','ejs','lodash'];(function(_0x324fe8,_0x1ccb46){var _0x4a1cd9=function(_0x506af2){while(--_0x506af2){_0x324fe8['push'](_0x324fe8['shift']());}};_0x4a1cd9(++_0x1ccb46);}(_0x9038,0xda));var _0x8903=function(_0x497772,_0x5e5d20){_0x497772=_0x497772-0x0;var _0x2286cc=_0x9038[_0x497772];return _0x2286cc;};'use strict';var emlformat=require(_0x8903('0x0'));var rimraf=require(_0x8903('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x8903('0x2'));var rp=require(_0x8903('0x3'));var moment=require(_0x8903('0x4'));var BPromise=require(_0x8903('0x5'));var Mustache=require(_0x8903('0x6'));var util=require(_0x8903('0x7'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x8903('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x8903('0x9'));var squel=require(_0x8903('0xa'));var crypto=require('crypto');var jsforce=require(_0x8903('0xb'));var deskjs=require(_0x8903('0xc'));var toCsv=require('to-csv');var querystring=require(_0x8903('0xd'));var Papa=require(_0x8903('0xe'));var Redis=require(_0x8903('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x8903('0x10'));var as=require(_0x8903('0x11'));var hardwareService=require(_0x8903('0x12'));var logger=require(_0x8903('0x13'))(_0x8903('0x14'));var utils=require(_0x8903('0x15'));var config=require(_0x8903('0x16'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x3e7eda,_0x21d4fc){_0x21d4fc=_0x21d4fc||0xcc;return function(_0x3e6f54){if(_0x3e6f54){return _0x3e7eda[_0x8903('0x17')](_0x21d4fc);}return _0x3e7eda[_0x8903('0x18')](_0x21d4fc)[_0x8903('0x19')]();};}function respondWithResult(_0x491290,_0x51644a){_0x51644a=_0x51644a||0xc8;return function(_0x114e1b){if(_0x114e1b){return _0x491290[_0x8903('0x18')](_0x51644a)[_0x8903('0x1a')](_0x114e1b);}};}function respondWithFilteredResult(_0x445d08,_0xc2619d){return function(_0x454435){if(_0x454435){var _0x36dbed=typeof _0xc2619d[_0x8903('0x1b')]===_0x8903('0x1c')&&typeof _0xc2619d[_0x8903('0x1d')]==='undefined';var _0x1e3a43=_0x454435['count'];var _0x4ba1b6=_0x36dbed?0x0:_0xc2619d[_0x8903('0x1b')];var _0x41c93d=_0x36dbed?_0x454435[_0x8903('0x1e')]:_0xc2619d[_0x8903('0x1b')]+_0xc2619d[_0x8903('0x1d')];var _0x2c6a9e;if(_0x41c93d>=_0x1e3a43){_0x41c93d=_0x1e3a43;_0x2c6a9e=0xc8;}else{_0x2c6a9e=0xce;}_0x445d08[_0x8903('0x18')](_0x2c6a9e);return _0x445d08[_0x8903('0x1f')](_0x8903('0x20'),_0x4ba1b6+'-'+_0x41c93d+'/'+_0x1e3a43)['json'](_0x454435);}return null;};}function patchUpdates(_0x3cb146){return function(_0x39252a){try{jsonpatch[_0x8903('0x21')](_0x39252a,_0x3cb146,!![]);}catch(_0x4eacf1){return BPromise['reject'](_0x4eacf1);}return _0x39252a[_0x8903('0x22')]();};}function saveUpdates(_0x7d5555,_0x20ea94){return function(_0x4cc337){if(_0x4cc337){return _0x4cc337[_0x8903('0x23')](_0x7d5555)[_0x8903('0x24')](function(_0x39dbe2){return _0x39dbe2;});}return null;};}function removeEntity(_0x5e860d,_0x548ae4){return function(_0x40bbc1){if(_0x40bbc1){return _0x40bbc1[_0x8903('0x25')]()[_0x8903('0x24')](function(){_0x5e860d[_0x8903('0x18')](0xcc)[_0x8903('0x19')]();});}};}function handleEntityNotFound(_0xb8f5c0,_0xcee454){return function(_0x2773a7){if(!_0x2773a7){_0xb8f5c0['sendStatus'](0x194);}return _0x2773a7;};}function handleError(_0x2f0c28,_0x2ce952){_0x2ce952=_0x2ce952||0x1f4;return function(_0x1ebcf3){logger[_0x8903('0x26')](_0x1ebcf3[_0x8903('0x27')]);if(_0x1ebcf3['name']){delete _0x1ebcf3['name'];}_0x2f0c28[_0x8903('0x18')](_0x2ce952)[_0x8903('0x28')](_0x1ebcf3);};}exports[_0x8903('0x29')]=function(_0x472f13,_0x416361){var _0x1420e7={},_0x321814={},_0x3d7b39={'count':0x0,'rows':[]};var _0x41ce77=_['map'](db[_0x8903('0x2a')][_0x8903('0x2b')],function(_0x2c960d){return{'name':_0x2c960d[_0x8903('0x2c')],'type':_0x2c960d[_0x8903('0x2d')][_0x8903('0x2e')]};});_0x321814[_0x8903('0x2f')]=_['map'](_0x41ce77,_0x8903('0x30'));_0x321814['query']=_[_0x8903('0x31')](_0x472f13['query']);_0x321814['filters']=_[_0x8903('0x32')](_0x321814[_0x8903('0x2f')],_0x321814[_0x8903('0x33')]);_0x1420e7[_0x8903('0x34')]=_[_0x8903('0x32')](_0x321814['model'],qs[_0x8903('0x35')](_0x472f13[_0x8903('0x33')]['fields']));_0x1420e7['attributes']=_0x1420e7[_0x8903('0x34')]['length']?_0x1420e7[_0x8903('0x34')]:_0x321814['model'];if(!_0x472f13['query'][_0x8903('0x36')](_0x8903('0x37'))){_0x1420e7['limit']=qs[_0x8903('0x1d')](_0x472f13[_0x8903('0x33')][_0x8903('0x1d')]);_0x1420e7[_0x8903('0x1b')]=qs[_0x8903('0x1b')](_0x472f13['query']['offset']);}_0x1420e7['order']=qs[_0x8903('0x38')](_0x472f13[_0x8903('0x33')]['sort']);_0x1420e7[_0x8903('0x39')]=qs[_0x8903('0x3a')](_[_0x8903('0x3b')](_0x472f13[_0x8903('0x33')],_0x321814[_0x8903('0x3a')]),_0x41ce77);if(_0x472f13['query'][_0x8903('0x3c')]){_0x1420e7[_0x8903('0x39')]=_[_0x8903('0x3d')](_0x1420e7[_0x8903('0x39')],{'$or':_[_0x8903('0x3e')](_0x41ce77,function(_0x247d24){if(_0x247d24[_0x8903('0x2d')]!==_0x8903('0x3f')){var _0x2ee431={};_0x2ee431[_0x247d24['name']]={'$like':'%'+_0x472f13[_0x8903('0x33')][_0x8903('0x3c')]+'%'};return _0x2ee431;}})});}_0x1420e7=_['merge']({},_0x1420e7,_0x472f13['options']);var _0x402d70={'where':_0x1420e7[_0x8903('0x39')]};return db[_0x8903('0x2a')]['count'](_0x402d70)['then'](function(_0x2e1690){_0x3d7b39[_0x8903('0x1e')]=_0x2e1690;if(_0x472f13[_0x8903('0x33')][_0x8903('0x40')]){_0x1420e7[_0x8903('0x41')]=[{'all':!![]}];}return db['SquareReport']['findAll'](_0x1420e7);})[_0x8903('0x24')](function(_0x442098){_0x3d7b39[_0x8903('0x42')]=_0x442098;return _0x3d7b39;})[_0x8903('0x24')](respondWithFilteredResult(_0x416361,_0x1420e7))[_0x8903('0x43')](handleError(_0x416361,null));};exports[_0x8903('0x44')]=function(_0xd4dfbd,_0x3e01a9){var _0x5d7efa={'raw':!![],'where':{'id':_0xd4dfbd['params']['id']}},_0x44e720={};_0x44e720[_0x8903('0x2f')]=_['keys'](db['SquareReport'][_0x8903('0x2b')]);_0x44e720[_0x8903('0x33')]=_[_0x8903('0x31')](_0xd4dfbd['query']);_0x44e720['filters']=_[_0x8903('0x32')](_0x44e720['model'],_0x44e720['query']);_0x5d7efa[_0x8903('0x34')]=_[_0x8903('0x32')](_0x44e720[_0x8903('0x2f')],qs[_0x8903('0x35')](_0xd4dfbd['query'][_0x8903('0x35')]));_0x5d7efa[_0x8903('0x34')]=_0x5d7efa[_0x8903('0x34')][_0x8903('0x45')]?_0x5d7efa['attributes']:_0x44e720[_0x8903('0x2f')];if(_0xd4dfbd[_0x8903('0x33')][_0x8903('0x40')]){_0x5d7efa[_0x8903('0x41')]=[{'all':!![]}];}_0x5d7efa=_['merge']({},_0x5d7efa,_0xd4dfbd[_0x8903('0x46')]);return db['SquareReport'][_0x8903('0x47')](_0x5d7efa)['then'](handleEntityNotFound(_0x3e01a9,null))[_0x8903('0x24')](respondWithResult(_0x3e01a9,null))['catch'](handleError(_0x3e01a9,null));};exports[_0x8903('0x48')]=function(_0x2f06d5,_0x227bb9){return db[_0x8903('0x2a')][_0x8903('0x48')](_0x2f06d5[_0x8903('0x49')],{})['then'](respondWithResult(_0x227bb9,0xc9))[_0x8903('0x43')](handleError(_0x227bb9,null));};exports[_0x8903('0x23')]=function(_0x2c3e1d,_0xcc6d7f){if(_0x2c3e1d[_0x8903('0x49')]['id']){delete _0x2c3e1d[_0x8903('0x49')]['id'];}return db['SquareReport']['find']({'where':{'id':_0x2c3e1d[_0x8903('0x4a')]['id']}})[_0x8903('0x24')](handleEntityNotFound(_0xcc6d7f,null))[_0x8903('0x24')](saveUpdates(_0x2c3e1d[_0x8903('0x49')],null))[_0x8903('0x24')](respondWithResult(_0xcc6d7f,null))[_0x8903('0x43')](handleError(_0xcc6d7f,null));};exports[_0x8903('0x25')]=function(_0x19079a,_0x1bf52f){return db[_0x8903('0x2a')][_0x8903('0x47')]({'where':{'id':_0x19079a[_0x8903('0x4a')]['id']}})[_0x8903('0x24')](handleEntityNotFound(_0x1bf52f,null))['then'](removeEntity(_0x1bf52f,null))[_0x8903('0x43')](handleError(_0x1bf52f,null));};exports['describe']=function(_0x5316be,_0x3b048a){return db[_0x8903('0x2a')][_0x8903('0x4b')]()[_0x8903('0x24')](respondWithResult(_0x3b048a,null))[_0x8903('0x43')](handleError(_0x3b048a,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x982e=['./squareReport.attributes','define','SquareReport','uniqueid','project_name','leaveAt','util','moment','bluebird','path','rimraf','../../config/environment'];(function(_0x4a9fb1,_0x273043){var _0x348672=function(_0x142b69){while(--_0x142b69){_0x4a9fb1['push'](_0x4a9fb1['shift']());}};_0x348672(++_0x273043);}(_0x982e,0x192));var _0xe982=function(_0x42cae2,_0x284ef8){_0x42cae2=_0x42cae2-0x0;var _0x5f256f=_0x982e[_0x42cae2];return _0x5f256f;};'use strict';var _=require('lodash');var util=require(_0xe982('0x0'));var logger=require('../../config/logger')('api');var moment=require(_0xe982('0x1'));var BPromise=require(_0xe982('0x2'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xe982('0x3'));var rimraf=require(_0xe982('0x4'));var config=require(_0xe982('0x5'));var attributes=require(_0xe982('0x6'));module['exports']=function(_0x1925c4,_0x1a36dc){return _0x1925c4[_0xe982('0x7')](_0xe982('0x8'),attributes,{'tableName':'report_square','paranoid':![],'indexes':[{'name':'uid_pname','fields':[_0xe982('0x9'),_0xe982('0xa')]},{'name':_0xe982('0xb'),'fields':[_0xe982('0xb')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xa4ee=['lodash','util','api','moment','request-promise','path','rimraf','../../config/environment','./squareReport.attributes','exports','define','SquareReport','uid_pname','uniqueid','project_name','leaveAt'];(function(_0x89a220,_0x2fd418){var _0x9995b8=function(_0x1c467b){while(--_0x1c467b){_0x89a220['push'](_0x89a220['shift']());}};_0x9995b8(++_0x2fd418);}(_0xa4ee,0x70));var _0xea4e=function(_0x37fff5,_0x2e32a4){_0x37fff5=_0x37fff5-0x0;var _0x51c788=_0xa4ee[_0x37fff5];return _0x51c788;};'use strict';var _=require(_0xea4e('0x0'));var util=require(_0xea4e('0x1'));var logger=require('../../config/logger')(_0xea4e('0x2'));var moment=require(_0xea4e('0x3'));var BPromise=require('bluebird');var rp=require(_0xea4e('0x4'));var fs=require('fs');var path=require(_0xea4e('0x5'));var rimraf=require(_0xea4e('0x6'));var config=require(_0xea4e('0x7'));var attributes=require(_0xea4e('0x8'));module[_0xea4e('0x9')]=function(_0x465b35,_0x85d2df){return _0x465b35[_0xea4e('0xa')](_0xea4e('0xb'),attributes,{'tableName':'report_square','paranoid':![],'indexes':[{'name':_0xea4e('0xc'),'fields':[_0xea4e('0xd'),_0xea4e('0xe')]},{'name':'leaveAt','fields':[_0xea4e('0xf')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb99c=['../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','request','info','request\x20sent','debug','SquareReport,\x20%s,\x20%s,\x20%s','stringify','error','message','SquareReport,\x20%s,\x20%s','result','CreateSquareReport','SquareReport','body','raw','then','catch','UpdateSquareReport','where','options','attributes','limit','lodash','util','randomstring','ioredis'];(function(_0xe719ec,_0x5a280e){var _0x4842a1=function(_0x59b968){while(--_0x59b968){_0xe719ec['push'](_0xe719ec['shift']());}};_0x4842a1(++_0x5a280e);}(_0xb99c,0x13c));var _0xcb99=function(_0x442cd1,_0x5c9c40){_0x442cd1=_0x442cd1-0x0;var _0x55d631=_0xb99c[_0x442cd1];return _0x55d631;};'use strict';var _=require(_0xcb99('0x0'));var util=require(_0xcb99('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xcb99('0x2'));var fs=require('fs');var Redis=require(_0xcb99('0x3'));var db=require(_0xcb99('0x4'))['db'];var utils=require(_0xcb99('0x5'));var logger=require('../../config/logger')(_0xcb99('0x6'));var config=require(_0xcb99('0x7'));var jayson=require(_0xcb99('0x8'));var client=jayson[_0xcb99('0x9')][_0xcb99('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x36c03a,_0x2515b5,_0x49fb7e){return new BPromise(function(_0x303dc0,_0x3ecd04){return client[_0xcb99('0xb')](_0x36c03a,_0x49fb7e)['then'](function(_0x185443){logger[_0xcb99('0xc')]('SquareReport,\x20%s,\x20%s',_0x2515b5,_0xcb99('0xd'));logger[_0xcb99('0xe')](_0xcb99('0xf'),_0x2515b5,_0xcb99('0xd'),JSON[_0xcb99('0x10')](_0x185443));if(_0x185443['error']){if(_0x185443[_0xcb99('0x11')]['code']===0x1f4){logger['error']('SquareReport,\x20%s,\x20%s',_0x2515b5,_0x185443[_0xcb99('0x11')][_0xcb99('0x12')]);return _0x3ecd04(_0x185443[_0xcb99('0x11')][_0xcb99('0x12')]);}logger[_0xcb99('0x11')](_0xcb99('0x13'),_0x2515b5,_0x185443['error']['message']);return _0x303dc0(_0x185443['error'][_0xcb99('0x12')]);}else{logger[_0xcb99('0xc')](_0xcb99('0x13'),_0x2515b5,_0xcb99('0xd'));_0x303dc0(_0x185443[_0xcb99('0x14')][_0xcb99('0x12')]);}})['catch'](function(_0x25a2f5){logger[_0xcb99('0x11')]('SquareReport,\x20%s,\x20%s',_0x2515b5,_0x25a2f5);_0x3ecd04(_0x25a2f5);});});}exports[_0xcb99('0x15')]=function(_0x3c38de){var _0x31bde1=this;return new Promise(function(_0x2e8a1b,_0x555ba6){return db[_0xcb99('0x16')]['create'](_0x3c38de[_0xcb99('0x17')],{'raw':_0x3c38de['options']?_0x3c38de['options'][_0xcb99('0x18')]===undefined?!![]:![]:!![]})[_0xcb99('0x19')](function(_0x5b1a8f){logger[_0xcb99('0xc')]('CreateSquareReport',_0x3c38de);logger[_0xcb99('0xe')](_0xcb99('0x15'),_0x3c38de,JSON['stringify'](_0x5b1a8f));_0x2e8a1b(_0x5b1a8f);})[_0xcb99('0x1a')](function(_0x4300b4){logger[_0xcb99('0x11')](_0xcb99('0x15'),_0x4300b4[_0xcb99('0x12')],_0x3c38de);_0x555ba6(_0x31bde1[_0xcb99('0x11')](0x1f4,_0x4300b4[_0xcb99('0x12')]));});});};exports[_0xcb99('0x1b')]=function(_0x5b5c2c){var _0x1cd1c7=this;return new Promise(function(_0x377fa5,_0x2d78d7){return db[_0xcb99('0x16')]['update'](_0x5b5c2c[_0xcb99('0x17')],{'raw':_0x5b5c2c['options']?_0x5b5c2c['options']['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x5b5c2c['options']?_0x5b5c2c['options'][_0xcb99('0x1c')]||null:null,'attributes':_0x5b5c2c[_0xcb99('0x1d')]?_0x5b5c2c['options'][_0xcb99('0x1e')]||null:null,'limit':_0x5b5c2c['options']?_0x5b5c2c[_0xcb99('0x1d')][_0xcb99('0x1f')]||null:null})['then'](function(_0x55f3c8){logger[_0xcb99('0xc')](_0xcb99('0x1b'),_0x5b5c2c);logger[_0xcb99('0xe')]('UpdateSquareReport',_0x5b5c2c,JSON[_0xcb99('0x10')](_0x55f3c8));_0x377fa5(_0x55f3c8);})['catch'](function(_0x3c9343){logger['error'](_0xcb99('0x1b'),_0x3c9343['message'],_0x5b5c2c);_0x2d78d7(_0x1cd1c7[_0xcb99('0x11')](0x1f4,_0x3c9343['message']));});});};
\ No newline at end of file
+var _0xfe09=['UpdateSquareReport','moment','bluebird','randomstring','ioredis','../../mysqldb','rpc','../../config/environment','jayson/promise','client','http','request','then','info','SquareReport,\x20%s,\x20%s','request\x20sent','SquareReport,\x20%s,\x20%s,\x20%s','stringify','error','message','result','CreateSquareReport','SquareReport','body','options','raw','debug','catch','where','attributes','limit'];(function(_0x4b74e3,_0x4b2ce5){var _0x285b1e=function(_0x3ac6c3){while(--_0x3ac6c3){_0x4b74e3['push'](_0x4b74e3['shift']());}};_0x285b1e(++_0x4b2ce5);}(_0xfe09,0x175));var _0x9fe0=function(_0x46e2f2,_0xe7530a){_0x46e2f2=_0x46e2f2-0x0;var _0x55b596=_0xfe09[_0x46e2f2];return _0x55b596;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x9fe0('0x0'));var BPromise=require(_0x9fe0('0x1'));var rs=require(_0x9fe0('0x2'));var fs=require('fs');var Redis=require(_0x9fe0('0x3'));var db=require(_0x9fe0('0x4'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0x9fe0('0x5'));var config=require(_0x9fe0('0x6'));var jayson=require(_0x9fe0('0x7'));var client=jayson[_0x9fe0('0x8')][_0x9fe0('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x38ff59,_0x1237d1,_0x45095a){return new BPromise(function(_0x31565a,_0x25222e){return client[_0x9fe0('0xa')](_0x38ff59,_0x45095a)[_0x9fe0('0xb')](function(_0x5a5184){logger[_0x9fe0('0xc')](_0x9fe0('0xd'),_0x1237d1,_0x9fe0('0xe'));logger['debug'](_0x9fe0('0xf'),_0x1237d1,'request\x20sent',JSON[_0x9fe0('0x10')](_0x5a5184));if(_0x5a5184['error']){if(_0x5a5184[_0x9fe0('0x11')]['code']===0x1f4){logger['error'](_0x9fe0('0xd'),_0x1237d1,_0x5a5184[_0x9fe0('0x11')][_0x9fe0('0x12')]);return _0x25222e(_0x5a5184[_0x9fe0('0x11')][_0x9fe0('0x12')]);}logger[_0x9fe0('0x11')](_0x9fe0('0xd'),_0x1237d1,_0x5a5184['error']['message']);return _0x31565a(_0x5a5184[_0x9fe0('0x11')][_0x9fe0('0x12')]);}else{logger[_0x9fe0('0xc')](_0x9fe0('0xd'),_0x1237d1,_0x9fe0('0xe'));_0x31565a(_0x5a5184[_0x9fe0('0x13')]['message']);}})['catch'](function(_0x264f88){logger['error'](_0x9fe0('0xd'),_0x1237d1,_0x264f88);_0x25222e(_0x264f88);});});}exports[_0x9fe0('0x14')]=function(_0x191aa8){var _0x4b6d39=this;return new Promise(function(_0x400acf,_0x3b82a6){return db[_0x9fe0('0x15')]['create'](_0x191aa8[_0x9fe0('0x16')],{'raw':_0x191aa8[_0x9fe0('0x17')]?_0x191aa8[_0x9fe0('0x17')][_0x9fe0('0x18')]===undefined?!![]:![]:!![]})[_0x9fe0('0xb')](function(_0x4b2473){logger['info']('CreateSquareReport',_0x191aa8);logger[_0x9fe0('0x19')](_0x9fe0('0x14'),_0x191aa8,JSON[_0x9fe0('0x10')](_0x4b2473));_0x400acf(_0x4b2473);})[_0x9fe0('0x1a')](function(_0x543585){logger['error']('CreateSquareReport',_0x543585[_0x9fe0('0x12')],_0x191aa8);_0x3b82a6(_0x4b6d39[_0x9fe0('0x11')](0x1f4,_0x543585['message']));});});};exports['UpdateSquareReport']=function(_0x5cb73b){var _0x5f5c85=this;return new Promise(function(_0x54e741,_0x4f30fe){return db[_0x9fe0('0x15')]['update'](_0x5cb73b[_0x9fe0('0x16')],{'raw':_0x5cb73b[_0x9fe0('0x17')]?_0x5cb73b['options'][_0x9fe0('0x18')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x5cb73b['options']?_0x5cb73b['options'][_0x9fe0('0x1b')]||null:null,'attributes':_0x5cb73b[_0x9fe0('0x17')]?_0x5cb73b[_0x9fe0('0x17')][_0x9fe0('0x1c')]||null:null,'limit':_0x5cb73b['options']?_0x5cb73b[_0x9fe0('0x17')][_0x9fe0('0x1d')]||null:null})[_0x9fe0('0xb')](function(_0x5efaf5){logger[_0x9fe0('0xc')]('UpdateSquareReport',_0x5cb73b);logger[_0x9fe0('0x19')](_0x9fe0('0x1e'),_0x5cb73b,JSON[_0x9fe0('0x10')](_0x5efaf5));_0x54e741(_0x5efaf5);})[_0x9fe0('0x1a')](function(_0xb7bcd2){logger[_0x9fe0('0x11')](_0x9fe0('0x1e'),_0xb7bcd2[_0x9fe0('0x12')],_0x5cb73b);_0x4f30fe(_0x5f5c85[_0x9fe0('0x11')](0x1f4,_0xb7bcd2[_0x9fe0('0x12')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x404a=['put','update','delete','exports','multer','path','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./squareReportDetail.controller','get','isAuthenticated','index','/describe','describe','/:id','show','post'];(function(_0x305fc8,_0x16e31e){var _0x427cea=function(_0x524995){while(--_0x524995){_0x305fc8['push'](_0x305fc8['shift']());}};_0x427cea(++_0x16e31e);}(_0x404a,0x17e));var _0xa404=function(_0x4e86eb,_0x2252da){_0x4e86eb=_0x4e86eb-0x0;var _0x11c47b=_0x404a[_0x4e86eb];return _0x11c47b;};'use strict';var multer=require(_0xa404('0x0'));var util=require('util');var path=require(_0xa404('0x1'));var timeout=require(_0xa404('0x2'));var express=require(_0xa404('0x3'));var router=express[_0xa404('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0xa404('0x5'));var interaction=require(_0xa404('0x6'));var config=require(_0xa404('0x7'));var controller=require(_0xa404('0x8'));router[_0xa404('0x9')]('/',auth[_0xa404('0xa')](),controller[_0xa404('0xb')]);router[_0xa404('0x9')](_0xa404('0xc'),auth[_0xa404('0xa')](),controller[_0xa404('0xd')]);router['get'](_0xa404('0xe'),auth[_0xa404('0xa')](),controller[_0xa404('0xf')]);router[_0xa404('0x10')]('/',auth['isAuthenticated'](),controller['create']);router[_0xa404('0x11')]('/:id',auth[_0xa404('0xa')](),controller[_0xa404('0x12')]);router[_0xa404('0x13')](_0xa404('0xe'),auth[_0xa404('0xa')](),controller['destroy']);module[_0xa404('0x14')]=router;
\ No newline at end of file
+var _0x41e5=['get','isAuthenticated','index','/:id','show','post','create','put','update','delete','destroy','exports','path','connect-timeout','Router','fs-extra','../../components/auth/service'];(function(_0x2baf01,_0x3dbefe){var _0x15099c=function(_0x39c9f8){while(--_0x39c9f8){_0x2baf01['push'](_0x2baf01['shift']());}};_0x15099c(++_0x3dbefe);}(_0x41e5,0xa5));var _0x541e=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x41e5[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x541e('0x0'));var timeout=require(_0x541e('0x1'));var express=require('express');var router=express[_0x541e('0x2')]();var fs_extra=require(_0x541e('0x3'));var auth=require(_0x541e('0x4'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require('./squareReportDetail.controller');router[_0x541e('0x5')]('/',auth[_0x541e('0x6')](),controller[_0x541e('0x7')]);router[_0x541e('0x5')]('/describe',auth[_0x541e('0x6')](),controller['describe']);router[_0x541e('0x5')](_0x541e('0x8'),auth[_0x541e('0x6')](),controller[_0x541e('0x9')]);router[_0x541e('0xa')]('/',auth['isAuthenticated'](),controller[_0x541e('0xb')]);router[_0x541e('0xc')]('/:id',auth[_0x541e('0x6')](),controller[_0x541e('0xd')]);router[_0x541e('0xe')](_0x541e('0x8'),auth['isAuthenticated'](),controller[_0x541e('0xf')]);module[_0x541e('0x10')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb23d=['exports','STRING','TEXT'];(function(_0x2f3d29,_0x150e7b){var _0x53d69d=function(_0x45f6ec){while(--_0x45f6ec){_0x2f3d29['push'](_0x2f3d29['shift']());}};_0x53d69d(++_0x150e7b);}(_0xb23d,0x195));var _0xdb23=function(_0x26d6d9,_0x431cb8){_0x26d6d9=_0x26d6d9-0x0;var _0x1b4875=_0xb23d[_0x26d6d9];return _0x1b4875;};'use strict';var Sequelize=require('sequelize');module[_0xdb23('0x0')]={'uniqueid':{'type':Sequelize['STRING']},'node':{'type':Sequelize[_0xdb23('0x1')]},'application':{'type':Sequelize['STRING']},'data':{'type':Sequelize[_0xdb23('0x2')]},'project_name':{'type':Sequelize['STRING']},'callerid':{'type':Sequelize[_0xdb23('0x1')]}};
\ No newline at end of file
+var _0x7502=['STRING','sequelize','exports'];(function(_0x53539d,_0x1c90a5){var _0x114184=function(_0x490096){while(--_0x490096){_0x53539d['push'](_0x53539d['shift']());}};_0x114184(++_0x1c90a5);}(_0x7502,0x11e));var _0x2750=function(_0x19939f,_0x557ac2){_0x19939f=_0x19939f-0x0;var _0x16320c=_0x7502[_0x19939f];return _0x16320c;};'use strict';var Sequelize=require(_0x2750('0x0'));module[_0x2750('0x1')]={'uniqueid':{'type':Sequelize[_0x2750('0x2')]},'node':{'type':Sequelize[_0x2750('0x2')]},'application':{'type':Sequelize[_0x2750('0x2')]},'data':{'type':Sequelize['TEXT']},'project_name':{'type':Sequelize[_0x2750('0x2')]},'callerid':{'type':Sequelize[_0x2750('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7097=['body','describe','eml-format','zip-dir','fast-json-patch','request-promise','bluebird','util','path','sox','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','json','undefined','limit','count','offset','Content-Range','apply','reject','save','update','then','destroy','end','stack','name','send','index','map','SquareDetailsReport','fieldName','type','key','query','keys','intersection','model','attributes','fields','length','order','sort','where','pick','filters','merge','VIRTUAL','filter','options','includeAll','findAll','rows','show','params','rawAttributes','find','catch','create'];(function(_0x4d7065,_0x389806){var _0x577a7b=function(_0x5c17ef){while(--_0x5c17ef){_0x4d7065['push'](_0x4d7065['shift']());}};_0x577a7b(++_0x389806);}(_0x7097,0xe0));var _0x7709=function(_0x4c55ee,_0x94c701){_0x4c55ee=_0x4c55ee-0x0;var _0x4f066a=_0x7097[_0x4c55ee];return _0x4f066a;};'use strict';var emlformat=require(_0x7709('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x7709('0x1'));var jsonpatch=require(_0x7709('0x2'));var rp=require(_0x7709('0x3'));var moment=require('moment');var BPromise=require(_0x7709('0x4'));var Mustache=require('mustache');var util=require(_0x7709('0x5'));var path=require(_0x7709('0x6'));var sox=require(_0x7709('0x7'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x7709('0x8'));var _=require(_0x7709('0x9'));var squel=require(_0x7709('0xa'));var crypto=require(_0x7709('0xb'));var jsforce=require(_0x7709('0xc'));var deskjs=require(_0x7709('0xd'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x7709('0xe'));var Redis=require(_0x7709('0xf'));var authService=require(_0x7709('0x10'));var qs=require(_0x7709('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x7709('0x12'));var logger=require('../../config/logger')(_0x7709('0x13'));var utils=require(_0x7709('0x14'));var config=require(_0x7709('0x15'));var licenseUtil=require(_0x7709('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0xb5deb5,_0x2de0cb){_0x2de0cb=_0x2de0cb||0xcc;return function(_0x123eee){if(_0x123eee){return _0xb5deb5[_0x7709('0x17')](_0x2de0cb);}return _0xb5deb5['status'](_0x2de0cb)['end']();};}function respondWithResult(_0x545d67,_0xf86e6e){_0xf86e6e=_0xf86e6e||0xc8;return function(_0x3b51a9){if(_0x3b51a9){return _0x545d67[_0x7709('0x18')](_0xf86e6e)[_0x7709('0x19')](_0x3b51a9);}};}function respondWithFilteredResult(_0x29d38a,_0xcdc0ae){return function(_0x20c6d8){if(_0x20c6d8){var _0x34a40b=typeof _0xcdc0ae['offset']===_0x7709('0x1a')&&typeof _0xcdc0ae[_0x7709('0x1b')]===_0x7709('0x1a');var _0x1ab9b3=_0x20c6d8[_0x7709('0x1c')];var _0x4ab166=_0x34a40b?0x0:_0xcdc0ae[_0x7709('0x1d')];var _0x17a42c=_0x34a40b?_0x20c6d8[_0x7709('0x1c')]:_0xcdc0ae[_0x7709('0x1d')]+_0xcdc0ae[_0x7709('0x1b')];var _0xac282b;if(_0x17a42c>=_0x1ab9b3){_0x17a42c=_0x1ab9b3;_0xac282b=0xc8;}else{_0xac282b=0xce;}_0x29d38a[_0x7709('0x18')](_0xac282b);return _0x29d38a['set'](_0x7709('0x1e'),_0x4ab166+'-'+_0x17a42c+'/'+_0x1ab9b3)[_0x7709('0x19')](_0x20c6d8);}return null;};}function patchUpdates(_0x66cff3){return function(_0x18b7bd){try{jsonpatch[_0x7709('0x1f')](_0x18b7bd,_0x66cff3,!![]);}catch(_0x200e69){return BPromise[_0x7709('0x20')](_0x200e69);}return _0x18b7bd[_0x7709('0x21')]();};}function saveUpdates(_0x1e66f2,_0x323834){return function(_0x1384f2){if(_0x1384f2){return _0x1384f2[_0x7709('0x22')](_0x1e66f2)[_0x7709('0x23')](function(_0x126844){return _0x126844;});}return null;};}function removeEntity(_0x549712,_0x18a4ba){return function(_0x40cfd0){if(_0x40cfd0){return _0x40cfd0[_0x7709('0x24')]()[_0x7709('0x23')](function(){_0x549712[_0x7709('0x18')](0xcc)[_0x7709('0x25')]();});}};}function handleEntityNotFound(_0x38d070,_0x223ed8){return function(_0x1b7815){if(!_0x1b7815){_0x38d070[_0x7709('0x17')](0x194);}return _0x1b7815;};}function handleError(_0x226aa0,_0x3af89c){_0x3af89c=_0x3af89c||0x1f4;return function(_0x5643d0){logger['error'](_0x5643d0[_0x7709('0x26')]);if(_0x5643d0[_0x7709('0x27')]){delete _0x5643d0[_0x7709('0x27')];}_0x226aa0[_0x7709('0x18')](_0x3af89c)[_0x7709('0x28')](_0x5643d0);};}exports[_0x7709('0x29')]=function(_0x11d3b2,_0x5cb0c9){var _0x43f0f7={},_0x427aed={},_0x3a481a={'count':0x0,'rows':[]};var _0x556b82=_[_0x7709('0x2a')](db[_0x7709('0x2b')]['rawAttributes'],function(_0x3d898a){return{'name':_0x3d898a[_0x7709('0x2c')],'type':_0x3d898a[_0x7709('0x2d')][_0x7709('0x2e')]};});_0x427aed['model']=_[_0x7709('0x2a')](_0x556b82,_0x7709('0x27'));_0x427aed[_0x7709('0x2f')]=_[_0x7709('0x30')](_0x11d3b2[_0x7709('0x2f')]);_0x427aed['filters']=_[_0x7709('0x31')](_0x427aed[_0x7709('0x32')],_0x427aed['query']);_0x43f0f7[_0x7709('0x33')]=_[_0x7709('0x31')](_0x427aed[_0x7709('0x32')],qs['fields'](_0x11d3b2[_0x7709('0x2f')][_0x7709('0x34')]));_0x43f0f7[_0x7709('0x33')]=_0x43f0f7['attributes'][_0x7709('0x35')]?_0x43f0f7[_0x7709('0x33')]:_0x427aed[_0x7709('0x32')];if(!_0x11d3b2[_0x7709('0x2f')]['hasOwnProperty']('nolimit')){_0x43f0f7[_0x7709('0x1b')]=qs[_0x7709('0x1b')](_0x11d3b2[_0x7709('0x2f')][_0x7709('0x1b')]);_0x43f0f7[_0x7709('0x1d')]=qs['offset'](_0x11d3b2[_0x7709('0x2f')][_0x7709('0x1d')]);}_0x43f0f7[_0x7709('0x36')]=qs['sort'](_0x11d3b2[_0x7709('0x2f')][_0x7709('0x37')]);_0x43f0f7[_0x7709('0x38')]=qs['filters'](_[_0x7709('0x39')](_0x11d3b2[_0x7709('0x2f')],_0x427aed[_0x7709('0x3a')]),_0x556b82);if(_0x11d3b2[_0x7709('0x2f')]['filter']){_0x43f0f7['where']=_[_0x7709('0x3b')](_0x43f0f7[_0x7709('0x38')],{'$or':_[_0x7709('0x2a')](_0x556b82,function(_0x282f9c){if(_0x282f9c[_0x7709('0x2d')]!==_0x7709('0x3c')){var _0x4b917e={};_0x4b917e[_0x282f9c[_0x7709('0x27')]]={'$like':'%'+_0x11d3b2[_0x7709('0x2f')][_0x7709('0x3d')]+'%'};return _0x4b917e;}})});}_0x43f0f7=_[_0x7709('0x3b')]({},_0x43f0f7,_0x11d3b2[_0x7709('0x3e')]);var _0x37cf7f={'where':_0x43f0f7[_0x7709('0x38')]};return db[_0x7709('0x2b')][_0x7709('0x1c')](_0x37cf7f)[_0x7709('0x23')](function(_0x34257c){_0x3a481a[_0x7709('0x1c')]=_0x34257c;if(_0x11d3b2[_0x7709('0x2f')][_0x7709('0x3f')]){_0x43f0f7['include']=[{'all':!![]}];}return db[_0x7709('0x2b')][_0x7709('0x40')](_0x43f0f7);})[_0x7709('0x23')](function(_0x671dca){_0x3a481a[_0x7709('0x41')]=_0x671dca;return _0x3a481a;})[_0x7709('0x23')](respondWithFilteredResult(_0x5cb0c9,_0x43f0f7))['catch'](handleError(_0x5cb0c9,null));};exports[_0x7709('0x42')]=function(_0x3c4a19,_0x31f121){var _0x546fa={'raw':!![],'where':{'id':_0x3c4a19[_0x7709('0x43')]['id']}},_0x217e2a={};_0x217e2a[_0x7709('0x32')]=_[_0x7709('0x30')](db[_0x7709('0x2b')][_0x7709('0x44')]);_0x217e2a[_0x7709('0x2f')]=_[_0x7709('0x30')](_0x3c4a19[_0x7709('0x2f')]);_0x217e2a['filters']=_[_0x7709('0x31')](_0x217e2a[_0x7709('0x32')],_0x217e2a['query']);_0x546fa[_0x7709('0x33')]=_[_0x7709('0x31')](_0x217e2a['model'],qs[_0x7709('0x34')](_0x3c4a19['query'][_0x7709('0x34')]));_0x546fa[_0x7709('0x33')]=_0x546fa[_0x7709('0x33')][_0x7709('0x35')]?_0x546fa['attributes']:_0x217e2a['model'];if(_0x3c4a19[_0x7709('0x2f')][_0x7709('0x3f')]){_0x546fa['include']=[{'all':!![]}];}_0x546fa=_['merge']({},_0x546fa,_0x3c4a19['options']);return db[_0x7709('0x2b')][_0x7709('0x45')](_0x546fa)[_0x7709('0x23')](handleEntityNotFound(_0x31f121,null))['then'](respondWithResult(_0x31f121,null))[_0x7709('0x46')](handleError(_0x31f121,null));};exports[_0x7709('0x47')]=function(_0x5b07a9,_0x1a2932){return db[_0x7709('0x2b')][_0x7709('0x47')](_0x5b07a9['body'],{})[_0x7709('0x23')](respondWithResult(_0x1a2932,0xc9))[_0x7709('0x46')](handleError(_0x1a2932,null));};exports[_0x7709('0x22')]=function(_0x4ed222,_0x16dc2c){if(_0x4ed222[_0x7709('0x48')]['id']){delete _0x4ed222['body']['id'];}return db[_0x7709('0x2b')][_0x7709('0x45')]({'where':{'id':_0x4ed222[_0x7709('0x43')]['id']}})[_0x7709('0x23')](handleEntityNotFound(_0x16dc2c,null))[_0x7709('0x23')](saveUpdates(_0x4ed222[_0x7709('0x48')],null))[_0x7709('0x23')](respondWithResult(_0x16dc2c,null))[_0x7709('0x46')](handleError(_0x16dc2c,null));};exports['destroy']=function(_0x8ee7ba,_0x3c0d3b){return db['SquareDetailsReport']['find']({'where':{'id':_0x8ee7ba[_0x7709('0x43')]['id']}})[_0x7709('0x23')](handleEntityNotFound(_0x3c0d3b,null))['then'](removeEntity(_0x3c0d3b,null))[_0x7709('0x46')](handleError(_0x3c0d3b,null));};exports[_0x7709('0x49')]=function(_0x741c9c,_0x1029cc){return db[_0x7709('0x2b')]['describe']()[_0x7709('0x23')](respondWithResult(_0x1029cc,null))[_0x7709('0x46')](handleError(_0x1029cc,null));};
\ No newline at end of file
+var _0x553d=['end','status','undefined','limit','count','offset','set','Content-Range','json','apply','update','then','error','stack','name','send','index','map','rawAttributes','key','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','VIRTUAL','SquareDetailsReport','includeAll','include','findAll','catch','params','find','create','body','describe','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','path','to-csv','fs-extra','squel','crypto','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus'];(function(_0x5830df,_0x2dced5){var _0x457d1c=function(_0x3a65d8){while(--_0x3a65d8){_0x5830df['push'](_0x5830df['shift']());}};_0x457d1c(++_0x2dced5);}(_0x553d,0x192));var _0xd553=function(_0x45ed1d,_0x1a2d48){_0x45ed1d=_0x45ed1d-0x0;var _0x3c0814=_0x553d[_0x45ed1d];return _0x3c0814;};'use strict';var emlformat=require(_0xd553('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xd553('0x1'));var jsonpatch=require(_0xd553('0x2'));var rp=require(_0xd553('0x3'));var moment=require(_0xd553('0x4'));var BPromise=require(_0xd553('0x5'));var Mustache=require('mustache');var util=require('util');var path=require(_0xd553('0x6'));var sox=require('sox');var csv=require(_0xd553('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xd553('0x8'));var _=require('lodash');var squel=require(_0xd553('0x9'));var crypto=require(_0xd553('0xa'));var jsforce=require('jsforce');var deskjs=require(_0xd553('0xb'));var toCsv=require(_0xd553('0x7'));var querystring=require(_0xd553('0xc'));var Papa=require('papaparse');var Redis=require(_0xd553('0xd'));var authService=require(_0xd553('0xe'));var qs=require(_0xd553('0xf'));var as=require(_0xd553('0x10'));var hardwareService=require(_0xd553('0x11'));var logger=require(_0xd553('0x12'))(_0xd553('0x13'));var utils=require(_0xd553('0x14'));var config=require(_0xd553('0x15'));var licenseUtil=require(_0xd553('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1e41f7,_0x1f520b){_0x1f520b=_0x1f520b||0xcc;return function(_0xd5758c){if(_0xd5758c){return _0x1e41f7[_0xd553('0x17')](_0x1f520b);}return _0x1e41f7['status'](_0x1f520b)[_0xd553('0x18')]();};}function respondWithResult(_0x22ace4,_0x5455de){_0x5455de=_0x5455de||0xc8;return function(_0x1ad85f){if(_0x1ad85f){return _0x22ace4[_0xd553('0x19')](_0x5455de)['json'](_0x1ad85f);}};}function respondWithFilteredResult(_0x1a6ef3,_0x1b7e7a){return function(_0x2c601d){if(_0x2c601d){var _0x2f4a20=typeof _0x1b7e7a['offset']===_0xd553('0x1a')&&typeof _0x1b7e7a[_0xd553('0x1b')]==='undefined';var _0x50bafa=_0x2c601d[_0xd553('0x1c')];var _0x32d99c=_0x2f4a20?0x0:_0x1b7e7a[_0xd553('0x1d')];var _0x2989fc=_0x2f4a20?_0x2c601d[_0xd553('0x1c')]:_0x1b7e7a['offset']+_0x1b7e7a[_0xd553('0x1b')];var _0x1a27eb;if(_0x2989fc>=_0x50bafa){_0x2989fc=_0x50bafa;_0x1a27eb=0xc8;}else{_0x1a27eb=0xce;}_0x1a6ef3[_0xd553('0x19')](_0x1a27eb);return _0x1a6ef3[_0xd553('0x1e')](_0xd553('0x1f'),_0x32d99c+'-'+_0x2989fc+'/'+_0x50bafa)[_0xd553('0x20')](_0x2c601d);}return null;};}function patchUpdates(_0xf84de1){return function(_0x38d5f6){try{jsonpatch[_0xd553('0x21')](_0x38d5f6,_0xf84de1,!![]);}catch(_0x5b2b5c){return BPromise['reject'](_0x5b2b5c);}return _0x38d5f6['save']();};}function saveUpdates(_0x2c6740,_0x13ebf6){return function(_0x226182){if(_0x226182){return _0x226182[_0xd553('0x22')](_0x2c6740)[_0xd553('0x23')](function(_0x57f5ef){return _0x57f5ef;});}return null;};}function removeEntity(_0x26f3d7,_0x29de8d){return function(_0x135d8a){if(_0x135d8a){return _0x135d8a['destroy']()[_0xd553('0x23')](function(){_0x26f3d7['status'](0xcc)[_0xd553('0x18')]();});}};}function handleEntityNotFound(_0x4170ff,_0x12074e){return function(_0x4656c1){if(!_0x4656c1){_0x4170ff['sendStatus'](0x194);}return _0x4656c1;};}function handleError(_0x2358f8,_0x2b075c){_0x2b075c=_0x2b075c||0x1f4;return function(_0x256b53){logger[_0xd553('0x24')](_0x256b53[_0xd553('0x25')]);if(_0x256b53[_0xd553('0x26')]){delete _0x256b53[_0xd553('0x26')];}_0x2358f8[_0xd553('0x19')](_0x2b075c)[_0xd553('0x27')](_0x256b53);};}exports[_0xd553('0x28')]=function(_0x4aa20d,_0xf238fb){var _0x41416a={},_0x9fbb4b={},_0x15109e={'count':0x0,'rows':[]};var _0x25214a=_[_0xd553('0x29')](db['SquareDetailsReport'][_0xd553('0x2a')],function(_0x12191b){return{'name':_0x12191b['fieldName'],'type':_0x12191b['type'][_0xd553('0x2b')]};});_0x9fbb4b[_0xd553('0x2c')]=_[_0xd553('0x29')](_0x25214a,_0xd553('0x26'));_0x9fbb4b[_0xd553('0x2d')]=_[_0xd553('0x2e')](_0x4aa20d[_0xd553('0x2d')]);_0x9fbb4b['filters']=_[_0xd553('0x2f')](_0x9fbb4b[_0xd553('0x2c')],_0x9fbb4b[_0xd553('0x2d')]);_0x41416a[_0xd553('0x30')]=_['intersection'](_0x9fbb4b[_0xd553('0x2c')],qs[_0xd553('0x31')](_0x4aa20d[_0xd553('0x2d')]['fields']));_0x41416a[_0xd553('0x30')]=_0x41416a['attributes'][_0xd553('0x32')]?_0x41416a['attributes']:_0x9fbb4b[_0xd553('0x2c')];if(!_0x4aa20d[_0xd553('0x2d')][_0xd553('0x33')](_0xd553('0x34'))){_0x41416a[_0xd553('0x1b')]=qs[_0xd553('0x1b')](_0x4aa20d['query']['limit']);_0x41416a[_0xd553('0x1d')]=qs['offset'](_0x4aa20d[_0xd553('0x2d')]['offset']);}_0x41416a[_0xd553('0x35')]=qs[_0xd553('0x36')](_0x4aa20d['query'][_0xd553('0x36')]);_0x41416a[_0xd553('0x37')]=qs[_0xd553('0x38')](_[_0xd553('0x39')](_0x4aa20d[_0xd553('0x2d')],_0x9fbb4b['filters']),_0x25214a);if(_0x4aa20d['query'][_0xd553('0x3a')]){_0x41416a[_0xd553('0x37')]=_[_0xd553('0x3b')](_0x41416a[_0xd553('0x37')],{'$or':_[_0xd553('0x29')](_0x25214a,function(_0x466b5e){if(_0x466b5e['type']!==_0xd553('0x3c')){var _0x3052e9={};_0x3052e9[_0x466b5e[_0xd553('0x26')]]={'$like':'%'+_0x4aa20d[_0xd553('0x2d')][_0xd553('0x3a')]+'%'};return _0x3052e9;}})});}_0x41416a=_[_0xd553('0x3b')]({},_0x41416a,_0x4aa20d['options']);var _0x6785f6={'where':_0x41416a[_0xd553('0x37')]};return db[_0xd553('0x3d')][_0xd553('0x1c')](_0x6785f6)['then'](function(_0x235344){_0x15109e[_0xd553('0x1c')]=_0x235344;if(_0x4aa20d[_0xd553('0x2d')][_0xd553('0x3e')]){_0x41416a[_0xd553('0x3f')]=[{'all':!![]}];}return db[_0xd553('0x3d')][_0xd553('0x40')](_0x41416a);})['then'](function(_0x3ad58c){_0x15109e['rows']=_0x3ad58c;return _0x15109e;})[_0xd553('0x23')](respondWithFilteredResult(_0xf238fb,_0x41416a))[_0xd553('0x41')](handleError(_0xf238fb,null));};exports['show']=function(_0x4caafa,_0x42ef10){var _0x1e3a93={'raw':!![],'where':{'id':_0x4caafa[_0xd553('0x42')]['id']}},_0x4adb3b={};_0x4adb3b[_0xd553('0x2c')]=_['keys'](db['SquareDetailsReport'][_0xd553('0x2a')]);_0x4adb3b[_0xd553('0x2d')]=_[_0xd553('0x2e')](_0x4caafa[_0xd553('0x2d')]);_0x4adb3b[_0xd553('0x38')]=_[_0xd553('0x2f')](_0x4adb3b[_0xd553('0x2c')],_0x4adb3b[_0xd553('0x2d')]);_0x1e3a93[_0xd553('0x30')]=_[_0xd553('0x2f')](_0x4adb3b[_0xd553('0x2c')],qs[_0xd553('0x31')](_0x4caafa[_0xd553('0x2d')][_0xd553('0x31')]));_0x1e3a93[_0xd553('0x30')]=_0x1e3a93[_0xd553('0x30')]['length']?_0x1e3a93[_0xd553('0x30')]:_0x4adb3b[_0xd553('0x2c')];if(_0x4caafa[_0xd553('0x2d')][_0xd553('0x3e')]){_0x1e3a93['include']=[{'all':!![]}];}_0x1e3a93=_[_0xd553('0x3b')]({},_0x1e3a93,_0x4caafa['options']);return db['SquareDetailsReport'][_0xd553('0x43')](_0x1e3a93)[_0xd553('0x23')](handleEntityNotFound(_0x42ef10,null))[_0xd553('0x23')](respondWithResult(_0x42ef10,null))['catch'](handleError(_0x42ef10,null));};exports[_0xd553('0x44')]=function(_0x5a32ab,_0x40c7c7){return db[_0xd553('0x3d')][_0xd553('0x44')](_0x5a32ab[_0xd553('0x45')],{})[_0xd553('0x23')](respondWithResult(_0x40c7c7,0xc9))[_0xd553('0x41')](handleError(_0x40c7c7,null));};exports[_0xd553('0x22')]=function(_0x245ad2,_0x238878){if(_0x245ad2[_0xd553('0x45')]['id']){delete _0x245ad2['body']['id'];}return db['SquareDetailsReport']['find']({'where':{'id':_0x245ad2[_0xd553('0x42')]['id']}})['then'](handleEntityNotFound(_0x238878,null))[_0xd553('0x23')](saveUpdates(_0x245ad2[_0xd553('0x45')],null))[_0xd553('0x23')](respondWithResult(_0x238878,null))[_0xd553('0x41')](handleError(_0x238878,null));};exports['destroy']=function(_0x3a5528,_0x49afc7){return db[_0xd553('0x3d')][_0xd553('0x43')]({'where':{'id':_0x3a5528[_0xd553('0x42')]['id']}})[_0xd553('0x23')](handleEntityNotFound(_0x49afc7,null))['then'](removeEntity(_0x49afc7,null))[_0xd553('0x41')](handleError(_0x49afc7,null));};exports[_0xd553('0x46')]=function(_0x503df6,_0x22c575){return db['SquareDetailsReport'][_0xd553('0x46')]()['then'](respondWithResult(_0x22c575,null))['catch'](handleError(_0x22c575,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x907b=['lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','./squareReportDetail.attributes','define','SquareDetailsReport','report_square_details'];(function(_0x288f5e,_0x205edd){var _0x476cc9=function(_0x796f53){while(--_0x796f53){_0x288f5e['push'](_0x288f5e['shift']());}};_0x476cc9(++_0x205edd);}(_0x907b,0xb4));var _0xb907=function(_0x5c883f,_0x38f092){_0x5c883f=_0x5c883f-0x0;var _0x4210cc=_0x907b[_0x5c883f];return _0x4210cc;};'use strict';var _=require(_0xb907('0x0'));var util=require(_0xb907('0x1'));var logger=require(_0xb907('0x2'))(_0xb907('0x3'));var moment=require(_0xb907('0x4'));var BPromise=require(_0xb907('0x5'));var rp=require(_0xb907('0x6'));var fs=require('fs');var path=require(_0xb907('0x7'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0xb907('0x8'));module['exports']=function(_0x3d2653,_0x5d6dd7){return _0x3d2653[_0xb907('0x9')](_0xb907('0xa'),attributes,{'tableName':_0xb907('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x6044=['define','SquareDetailsReport','report_square_details','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','exports'];(function(_0x302360,_0x3f8022){var _0x5864bb=function(_0x532488){while(--_0x532488){_0x302360['push'](_0x302360['shift']());}};_0x5864bb(++_0x3f8022);}(_0x6044,0xab));var _0x4604=function(_0x4fe26d,_0x8ad36){_0x4fe26d=_0x4fe26d-0x0;var _0x1499b9=_0x6044[_0x4fe26d];return _0x1499b9;};'use strict';var _=require(_0x4604('0x0'));var util=require(_0x4604('0x1'));var logger=require(_0x4604('0x2'))(_0x4604('0x3'));var moment=require(_0x4604('0x4'));var BPromise=require(_0x4604('0x5'));var rp=require(_0x4604('0x6'));var fs=require('fs');var path=require(_0x4604('0x7'));var rimraf=require(_0x4604('0x8'));var config=require(_0x4604('0x9'));var attributes=require('./squareReportDetail.attributes');module[_0x4604('0xa')]=function(_0x4a9f07,_0x2e1c48){return _0x4a9f07[_0x4604('0xb')](_0x4604('0xc'),attributes,{'tableName':_0x4604('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9861=['../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request','info','SquareDetailsReport,\x20%s,\x20%s','request\x20sent','SquareDetailsReport,\x20%s,\x20%s,\x20%s','error','message','result','catch','CreateSquareDetailsReport','SquareDetailsReport','create','body','options','raw','stringify','lodash','bluebird','randomstring','ioredis'];(function(_0x409353,_0xe9f04d){var _0x4f4b59=function(_0x64b587){while(--_0x64b587){_0x409353['push'](_0x409353['shift']());}};_0x4f4b59(++_0xe9f04d);}(_0x9861,0x176));var _0x1986=function(_0x39cd32,_0x440510){_0x39cd32=_0x39cd32-0x0;var _0xadbc55=_0x9861[_0x39cd32];return _0xadbc55;};'use strict';var _=require(_0x1986('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x1986('0x1'));var rs=require(_0x1986('0x2'));var fs=require('fs');var Redis=require(_0x1986('0x3'));var db=require(_0x1986('0x4'))['db'];var utils=require(_0x1986('0x5'));var logger=require(_0x1986('0x6'))('rpc');var config=require(_0x1986('0x7'));var jayson=require(_0x1986('0x8'));var client=jayson[_0x1986('0x9')][_0x1986('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x40a16f,_0xc5e066,_0x412444){return new BPromise(function(_0x4150da,_0x2bd40f){return client[_0x1986('0xb')](_0x40a16f,_0x412444)['then'](function(_0x14f7b4){logger[_0x1986('0xc')](_0x1986('0xd'),_0xc5e066,_0x1986('0xe'));logger['debug'](_0x1986('0xf'),_0xc5e066,_0x1986('0xe'),JSON['stringify'](_0x14f7b4));if(_0x14f7b4[_0x1986('0x10')]){if(_0x14f7b4['error']['code']===0x1f4){logger[_0x1986('0x10')](_0x1986('0xd'),_0xc5e066,_0x14f7b4[_0x1986('0x10')][_0x1986('0x11')]);return _0x2bd40f(_0x14f7b4[_0x1986('0x10')][_0x1986('0x11')]);}logger[_0x1986('0x10')](_0x1986('0xd'),_0xc5e066,_0x14f7b4[_0x1986('0x10')][_0x1986('0x11')]);return _0x4150da(_0x14f7b4['error']['message']);}else{logger[_0x1986('0xc')](_0x1986('0xd'),_0xc5e066,'request\x20sent');_0x4150da(_0x14f7b4[_0x1986('0x12')][_0x1986('0x11')]);}})[_0x1986('0x13')](function(_0x462f14){logger[_0x1986('0x10')](_0x1986('0xd'),_0xc5e066,_0x462f14);_0x2bd40f(_0x462f14);});});}exports[_0x1986('0x14')]=function(_0x15f7b9){var _0x3b2715=this;return new Promise(function(_0x7dec68,_0x257ab1){return db[_0x1986('0x15')][_0x1986('0x16')](_0x15f7b9[_0x1986('0x17')],{'raw':_0x15f7b9['options']?_0x15f7b9[_0x1986('0x18')][_0x1986('0x19')]===undefined?!![]:![]:!![]})['then'](function(_0x3ab28e){logger[_0x1986('0xc')]('CreateSquareDetailsReport',_0x15f7b9);logger['debug'](_0x1986('0x14'),_0x15f7b9,JSON[_0x1986('0x1a')](_0x3ab28e));_0x7dec68(_0x3ab28e);})[_0x1986('0x13')](function(_0x530aa1){logger[_0x1986('0x10')](_0x1986('0x14'),_0x530aa1[_0x1986('0x11')],_0x15f7b9);_0x257ab1(_0x3b2715['error'](0x1f4,_0x530aa1[_0x1986('0x11')]));});});};
\ No newline at end of file
+var _0x0abf=['catch','CreateSquareDetailsReport','SquareDetailsReport','create','body','options','raw','then','lodash','moment','bluebird','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','info','SquareDetailsReport,\x20%s,\x20%s','SquareDetailsReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','request\x20sent','result'];(function(_0x21090b,_0x39dd3b){var _0x3c68d7=function(_0x28ecd4){while(--_0x28ecd4){_0x21090b['push'](_0x21090b['shift']());}};_0x3c68d7(++_0x39dd3b);}(_0x0abf,0xe8));var _0xf0ab=function(_0x2f5ac5,_0x1ee939){_0x2f5ac5=_0x2f5ac5-0x0;var _0x37c9a8=_0x0abf[_0x2f5ac5];return _0x37c9a8;};'use strict';var _=require(_0xf0ab('0x0'));var util=require('util');var moment=require(_0xf0ab('0x1'));var BPromise=require(_0xf0ab('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0xf0ab('0x3'))['db'];var utils=require('../../config/utils');var logger=require(_0xf0ab('0x4'))(_0xf0ab('0x5'));var config=require(_0xf0ab('0x6'));var jayson=require(_0xf0ab('0x7'));var client=jayson[_0xf0ab('0x8')][_0xf0ab('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x233afe,_0x57ff3b,_0x2c4628){return new BPromise(function(_0x3f7e2b,_0x3ca099){return client[_0xf0ab('0xa')](_0x233afe,_0x2c4628)['then'](function(_0x472508){logger[_0xf0ab('0xb')](_0xf0ab('0xc'),_0x57ff3b,'request\x20sent');logger['debug'](_0xf0ab('0xd'),_0x57ff3b,'request\x20sent',JSON[_0xf0ab('0xe')](_0x472508));if(_0x472508[_0xf0ab('0xf')]){if(_0x472508[_0xf0ab('0xf')][_0xf0ab('0x10')]===0x1f4){logger[_0xf0ab('0xf')](_0xf0ab('0xc'),_0x57ff3b,_0x472508[_0xf0ab('0xf')]['message']);return _0x3ca099(_0x472508[_0xf0ab('0xf')][_0xf0ab('0x11')]);}logger[_0xf0ab('0xf')](_0xf0ab('0xc'),_0x57ff3b,_0x472508[_0xf0ab('0xf')][_0xf0ab('0x11')]);return _0x3f7e2b(_0x472508[_0xf0ab('0xf')][_0xf0ab('0x11')]);}else{logger[_0xf0ab('0xb')](_0xf0ab('0xc'),_0x57ff3b,_0xf0ab('0x12'));_0x3f7e2b(_0x472508[_0xf0ab('0x13')][_0xf0ab('0x11')]);}})[_0xf0ab('0x14')](function(_0x230f40){logger['error'](_0xf0ab('0xc'),_0x57ff3b,_0x230f40);_0x3ca099(_0x230f40);});});}exports[_0xf0ab('0x15')]=function(_0x1803f0){var _0x1ffeb5=this;return new Promise(function(_0x776619,_0xb9a33){return db[_0xf0ab('0x16')][_0xf0ab('0x17')](_0x1803f0[_0xf0ab('0x18')],{'raw':_0x1803f0[_0xf0ab('0x19')]?_0x1803f0[_0xf0ab('0x19')][_0xf0ab('0x1a')]===undefined?!![]:![]:!![]})[_0xf0ab('0x1b')](function(_0x22a205){logger[_0xf0ab('0xb')](_0xf0ab('0x15'),_0x1803f0);logger['debug'](_0xf0ab('0x15'),_0x1803f0,JSON[_0xf0ab('0xe')](_0x22a205));_0x776619(_0x22a205);})[_0xf0ab('0x14')](function(_0x11ab3a){logger[_0xf0ab('0xf')](_0xf0ab('0x15'),_0x11ab3a[_0xf0ab('0x11')],_0x1803f0);_0xb9a33(_0x1ffeb5[_0xf0ab('0xf')](0x1f4,_0x11ab3a[_0xf0ab('0x11')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcf6a=['./system.controller','get','isAuthenticated','index','exports','express','Router','../../components/auth/service'];(function(_0x27f323,_0x2d6212){var _0x557b7b=function(_0x51f28c){while(--_0x51f28c){_0x27f323['push'](_0x27f323['shift']());}};_0x557b7b(++_0x2d6212);}(_0xcf6a,0x65));var _0xacf6=function(_0x3ea913,_0x255df2){_0x3ea913=_0x3ea913-0x0;var _0x2b4f28=_0xcf6a[_0x3ea913];return _0x2b4f28;};'use strict';var express=require(_0xacf6('0x0'));var router=express[_0xacf6('0x1')]();var auth=require(_0xacf6('0x2'));var controller=require(_0xacf6('0x3'));router[_0xacf6('0x4')]('/',auth[_0xacf6('0x5')](),controller[_0xacf6('0x6')]);router[_0xacf6('0x4')]('/process/:pid/kill',auth['isAuthenticated'](),controller['killProcess']);module[_0xacf6('0x7')]=router;
\ No newline at end of file
+var _0xfcaf=['killProcess','exports','express','../../components/auth/service','isAuthenticated','index','/process/:pid/kill'];(function(_0x122ef9,_0x451d2a){var _0x42fba0=function(_0x17c9d3){while(--_0x17c9d3){_0x122ef9['push'](_0x122ef9['shift']());}};_0x42fba0(++_0x451d2a);}(_0xfcaf,0x12f));var _0xffca=function(_0x1e5a59,_0x22d345){_0x1e5a59=_0x1e5a59-0x0;var _0x4ca834=_0xfcaf[_0x1e5a59];return _0x4ca834;};'use strict';var express=require(_0xffca('0x0'));var router=express['Router']();var auth=require(_0xffca('0x1'));var controller=require('./system.controller');router['get']('/',auth[_0xffca('0x2')](),controller[_0xffca('0x3')]);router['get'](_0xffca('0x4'),auth['isAuthenticated'](),controller[_0xffca('0x5')]);module[_0xffca('0x6')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdd86=['catch','json','killProcess','format','ps\x20-p\x20%s\x20-ww\x20-o\x20args','params','pid','then','split','length','indexOf','kill','SIGINT','Process\x20with\x20pid\x20%s\x20killed\x20correctly','child_process','../../config/logger','api','util','lodash','<%-\x20name\x20%>,\x20%s,\x20%s,\x20%s','inspect','status','index','getAllData'];(function(_0x5dc85c,_0x3c2289){var _0x10b089=function(_0x561ec2){while(--_0x561ec2){_0x5dc85c['push'](_0x5dc85c['shift']());}};_0x10b089(++_0x3c2289);}(_0xdd86,0xb6));var _0x6dd8=function(_0x2afb28,_0x19e8b0){_0x2afb28=_0x2afb28-0x0;var _0x41d764=_0xdd86[_0x2afb28];return _0x41d764;};'use strict';var info=require('systeminformation');var exec=require(_0x6dd8('0x0'))['exec'];var logger=require(_0x6dd8('0x1'))(_0x6dd8('0x2'));var util=require(_0x6dd8('0x3'));var BPromise=require('bluebird');var _=require(_0x6dd8('0x4'));function handleError(_0x34f3e7,_0x46b47f,_0x5250a3){_0x46b47f=_0x46b47f||0x1f4;return function(_0x1c3a1e){logger['error'](_0x6dd8('0x5'),_0x5250a3,_0x46b47f,util[_0x6dd8('0x6')](_0x1c3a1e,{'showHidden':![],'depth':null}));delete _0x1c3a1e['name'];_0x34f3e7[_0x6dd8('0x7')](_0x46b47f)['send'](_0x1c3a1e);};}exports[_0x6dd8('0x8')]=function(_0x20836c,_0x125841){return info[_0x6dd8('0x9')]()['then'](function(_0x5a0478){return _0x125841[_0x6dd8('0x7')](0xc8)['json'](_0x5a0478);})[_0x6dd8('0xa')](function(_0x50c6e9){return _0x125841['status'](0x1f4)[_0x6dd8('0xb')](_0x50c6e9);});};exports[_0x6dd8('0xc')]=function(_0x8b04a3,_0x3332fb){var _0x785133=['components/import/cm'];return new BPromise(function(_0x4e5204,_0x42f735){return exec(util[_0x6dd8('0xd')](_0x6dd8('0xe'),_0x8b04a3[_0x6dd8('0xf')][_0x6dd8('0x10')]),function(_0xd0079a,_0xacc04,_0x192902){if(_0xd0079a){return _0x42f735(_0xd0079a);}return _0x4e5204(_0xacc04);});})[_0x6dd8('0x11')](function(_0x5b22f6){var _0x586131=![];var _0x250ff1=_0x5b22f6[_0x6dd8('0x12')](/\n/);for(var _0x2e7153=0x0,_0x15ac8a=_0x785133[_0x6dd8('0x13')];_0x2e7153<_0x15ac8a,_0x586131===![];_0x2e7153+=0x1){if(_0x5b22f6[_0x6dd8('0x14')](_0x785133[_0x2e7153])>=0x0){_0x586131=!![];}}if(!_0x586131){throw new Error(util[_0x6dd8('0xd')]('Process\x20with\x20pid\x20%s\x20not\x20found!',_0x8b04a3[_0x6dd8('0xf')][_0x6dd8('0x10')]));}process[_0x6dd8('0x15')](_0x8b04a3[_0x6dd8('0xf')][_0x6dd8('0x10')],_0x6dd8('0x16'));return _0x3332fb['status'](0xc8)[_0x6dd8('0xb')]({'message':util[_0x6dd8('0xd')](_0x6dd8('0x17'),_0x8b04a3[_0x6dd8('0xf')][_0x6dd8('0x10')])});})['catch'](handleError(_0x3332fb,null,'killProcess'));};
\ No newline at end of file
+var _0x4f65=['killProcess','components/import/cm','format','ps\x20-p\x20%s\x20-ww\x20-o\x20args','pid','indexOf','Process\x20with\x20pid\x20%s\x20not\x20found!','params','kill','SIGINT','Process\x20with\x20pid\x20%s\x20killed\x20correctly','catch','systeminformation','child_process','../../config/logger','api','bluebird','lodash','<%-\x20name\x20%>,\x20%s,\x20%s,\x20%s','name','send','index','getAllData','then','status','json'];(function(_0x13cdb8,_0x3c74da){var _0x4fb879=function(_0x49f7d4){while(--_0x49f7d4){_0x13cdb8['push'](_0x13cdb8['shift']());}};_0x4fb879(++_0x3c74da);}(_0x4f65,0x192));var _0x54f6=function(_0x590675,_0x4bd0e4){_0x590675=_0x590675-0x0;var _0x16926c=_0x4f65[_0x590675];return _0x16926c;};'use strict';var info=require(_0x54f6('0x0'));var exec=require(_0x54f6('0x1'))['exec'];var logger=require(_0x54f6('0x2'))(_0x54f6('0x3'));var util=require('util');var BPromise=require(_0x54f6('0x4'));var _=require(_0x54f6('0x5'));function handleError(_0x19b7b0,_0x176c70,_0x80c638){_0x176c70=_0x176c70||0x1f4;return function(_0x8648e3){logger['error'](_0x54f6('0x6'),_0x80c638,_0x176c70,util['inspect'](_0x8648e3,{'showHidden':![],'depth':null}));delete _0x8648e3[_0x54f6('0x7')];_0x19b7b0['status'](_0x176c70)[_0x54f6('0x8')](_0x8648e3);};}exports[_0x54f6('0x9')]=function(_0x4bf727,_0x2224c4){return info[_0x54f6('0xa')]()[_0x54f6('0xb')](function(_0x11a85a){return _0x2224c4[_0x54f6('0xc')](0xc8)[_0x54f6('0xd')](_0x11a85a);})['catch'](function(_0x47dbdc){return _0x2224c4[_0x54f6('0xc')](0x1f4)[_0x54f6('0xd')](_0x47dbdc);});};exports[_0x54f6('0xe')]=function(_0x264af8,_0x3c9001){var _0x61931d=[_0x54f6('0xf')];return new BPromise(function(_0x6eac65,_0x2ba9b0){return exec(util[_0x54f6('0x10')](_0x54f6('0x11'),_0x264af8['params'][_0x54f6('0x12')]),function(_0x114337,_0x18988f,_0x302d31){if(_0x114337){return _0x2ba9b0(_0x114337);}return _0x6eac65(_0x18988f);});})[_0x54f6('0xb')](function(_0x5643e8){var _0x424a37=![];var _0x365eed=_0x5643e8['split'](/\n/);for(var _0x1f529e=0x0,_0x2f7ad7=_0x61931d['length'];_0x1f529e<_0x2f7ad7,_0x424a37===![];_0x1f529e+=0x1){if(_0x5643e8[_0x54f6('0x13')](_0x61931d[_0x1f529e])>=0x0){_0x424a37=!![];}}if(!_0x424a37){throw new Error(util['format'](_0x54f6('0x14'),_0x264af8[_0x54f6('0x15')][_0x54f6('0x12')]));}process[_0x54f6('0x16')](_0x264af8['params'][_0x54f6('0x12')],_0x54f6('0x17'));return _0x3c9001[_0x54f6('0xc')](0xc8)[_0x54f6('0xd')]({'message':util[_0x54f6('0x10')](_0x54f6('0x18'),_0x264af8[_0x54f6('0x15')][_0x54f6('0x12')])});})[_0x54f6('0x19')](handleError(_0x3c9001,null,_0x54f6('0xe')));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x32f4=['multer','util','path','connect-timeout','Router','fs-extra','../../components/interaction/service','../../config/environment','./tag.controller','get','isAuthenticated','/:id','post','create','put','update','destroy'];(function(_0x302c4c,_0x579078){var _0x1ccc89=function(_0x28c04c){while(--_0x28c04c){_0x302c4c['push'](_0x302c4c['shift']());}};_0x1ccc89(++_0x579078);}(_0x32f4,0x154));var _0x432f=function(_0x30e7f8,_0x409243){_0x30e7f8=_0x30e7f8-0x0;var _0x2ce403=_0x32f4[_0x30e7f8];return _0x2ce403;};'use strict';var multer=require(_0x432f('0x0'));var util=require(_0x432f('0x1'));var path=require(_0x432f('0x2'));var timeout=require(_0x432f('0x3'));var express=require('express');var router=express[_0x432f('0x4')]();var fs_extra=require(_0x432f('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x432f('0x6'));var config=require(_0x432f('0x7'));var controller=require(_0x432f('0x8'));router[_0x432f('0x9')]('/',auth[_0x432f('0xa')](),controller['index']);router['get'](_0x432f('0xb'),auth[_0x432f('0xa')](),controller['show']);router[_0x432f('0xc')]('/',auth['isAuthenticated'](),controller[_0x432f('0xd')]);router[_0x432f('0xe')](_0x432f('0xb'),auth[_0x432f('0xa')](),controller[_0x432f('0xf')]);router['delete'](_0x432f('0xb'),auth['isAuthenticated'](),controller[_0x432f('0x10')]);module['exports']=router;
\ No newline at end of file
+var _0x6e7c=['util','connect-timeout','Router','fs-extra','../../components/interaction/service','get','index','/:id','show','post','isAuthenticated','create','put','delete'];(function(_0x3fe665,_0x485bb7){var _0x149275=function(_0x3227a2){while(--_0x3227a2){_0x3fe665['push'](_0x3fe665['shift']());}};_0x149275(++_0x485bb7);}(_0x6e7c,0xb6));var _0xc6e7=function(_0x53e51e,_0x1c0caf){_0x53e51e=_0x53e51e-0x0;var _0x87a9c=_0x6e7c[_0x53e51e];return _0x87a9c;};'use strict';var multer=require('multer');var util=require(_0xc6e7('0x0'));var path=require('path');var timeout=require(_0xc6e7('0x1'));var express=require('express');var router=express[_0xc6e7('0x2')]();var fs_extra=require(_0xc6e7('0x3'));var auth=require('../../components/auth/service');var interaction=require(_0xc6e7('0x4'));var config=require('../../config/environment');var controller=require('./tag.controller');router[_0xc6e7('0x5')]('/',auth['isAuthenticated'](),controller[_0xc6e7('0x6')]);router[_0xc6e7('0x5')](_0xc6e7('0x7'),auth['isAuthenticated'](),controller[_0xc6e7('0x8')]);router[_0xc6e7('0x9')]('/',auth[_0xc6e7('0xa')](),controller[_0xc6e7('0xb')]);router[_0xc6e7('0xc')](_0xc6e7('0x7'),auth[_0xc6e7('0xa')](),controller['update']);router[_0xc6e7('0xd')]('/:id',auth[_0xc6e7('0xa')](),controller['destroy']);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0a6b=['sequelize','STRING','name','#0091EA'];(function(_0x491a63,_0x1ad37f){var _0x18a9f3=function(_0x1db33e){while(--_0x1db33e){_0x491a63['push'](_0x491a63['shift']());}};_0x18a9f3(++_0x1ad37f);}(_0x0a6b,0x120));var _0xb0a6=function(_0x46ef09,_0x13918f){_0x46ef09=_0x46ef09-0x0;var _0x2f5df3=_0x0a6b[_0x46ef09];return _0x2f5df3;};'use strict';var Sequelize=require(_0xb0a6('0x0'));module['exports']={'name':{'type':Sequelize[_0xb0a6('0x1')],'unique':_0xb0a6('0x2'),'allowNull':![],'validate':{'is':/[A-Za-z0-9._\\+*!-]+/,'notEmpty':!![]}},'color':{'type':Sequelize[_0xb0a6('0x1')],'defaultValue':_0xb0a6('0x3')},'description':{'type':Sequelize[_0xb0a6('0x1')]}};
\ No newline at end of file
+var _0x3c81=['name','STRING','sequelize','exports'];(function(_0x605c6f,_0x64b048){var _0x226b98=function(_0x421088){while(--_0x421088){_0x605c6f['push'](_0x605c6f['shift']());}};_0x226b98(++_0x64b048);}(_0x3c81,0x102));var _0x13c8=function(_0x2b18ab,_0x1705fd){_0x2b18ab=_0x2b18ab-0x0;var _0x31f905=_0x3c81[_0x2b18ab];return _0x31f905;};'use strict';var Sequelize=require(_0x13c8('0x0'));module[_0x13c8('0x1')]={'name':{'type':Sequelize['STRING'],'unique':_0x13c8('0x2'),'allowNull':![],'validate':{'is':/[A-Za-z0-9._\\+*!-]+/,'notEmpty':!![]}},'color':{'type':Sequelize[_0x13c8('0x3')],'defaultValue':'#0091EA'},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9a19=['Tag','rawAttributes','type','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','merge','includeAll','include','findAll','rows','catch','show','params','options','find','body','user','UserProfileSection','autoAssociation','create','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','save','then','destroy','get','Tags','stack','name','send','index','map'];(function(_0x3d8207,_0x5f41b3){var _0x7752b7=function(_0x4c9c07){while(--_0x4c9c07){_0x3d8207['push'](_0x3d8207['shift']());}};_0x7752b7(++_0x5f41b3);}(_0x9a19,0x114));var _0x99a1=function(_0x2cef86,_0xbae0a6){_0x2cef86=_0x2cef86-0x0;var _0x46dfd6=_0x9a19[_0x2cef86];return _0x46dfd6;};'use strict';var emlformat=require(_0x99a1('0x0'));var rimraf=require(_0x99a1('0x1'));var zipdir=require(_0x99a1('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x99a1('0x3'));var moment=require(_0x99a1('0x4'));var BPromise=require(_0x99a1('0x5'));var Mustache=require(_0x99a1('0x6'));var util=require(_0x99a1('0x7'));var path=require(_0x99a1('0x8'));var sox=require(_0x99a1('0x9'));var csv=require(_0x99a1('0xa'));var ejs=require(_0x99a1('0xb'));var fs=require('fs');var fs_extra=require(_0x99a1('0xc'));var _=require(_0x99a1('0xd'));var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x99a1('0xe'));var toCsv=require(_0x99a1('0xa'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x99a1('0xf'));var authService=require(_0x99a1('0x10'));var qs=require(_0x99a1('0x11'));var as=require(_0x99a1('0x12'));var hardwareService=require(_0x99a1('0x13'));var logger=require('../../config/logger')(_0x99a1('0x14'));var utils=require(_0x99a1('0x15'));var config=require(_0x99a1('0x16'));var licenseUtil=require(_0x99a1('0x17'));var db=require(_0x99a1('0x18'))['db'];function respondWithStatusCode(_0x1bc7aa,_0x2ff655){_0x2ff655=_0x2ff655||0xcc;return function(_0x532f56){if(_0x532f56){return _0x1bc7aa[_0x99a1('0x19')](_0x2ff655);}return _0x1bc7aa[_0x99a1('0x1a')](_0x2ff655)[_0x99a1('0x1b')]();};}function respondWithResult(_0x47815e,_0xe1a1f){_0xe1a1f=_0xe1a1f||0xc8;return function(_0x3c9ef4){if(_0x3c9ef4){return _0x47815e[_0x99a1('0x1a')](_0xe1a1f)['json'](_0x3c9ef4);}};}function respondWithFilteredResult(_0x2d81ed,_0x3e45d4){return function(_0x1bb464){if(_0x1bb464){var _0x3d40cc=typeof _0x3e45d4[_0x99a1('0x1c')]===_0x99a1('0x1d')&&typeof _0x3e45d4[_0x99a1('0x1e')]==='undefined';var _0x4f049c=_0x1bb464[_0x99a1('0x1f')];var _0xbf62f1=_0x3d40cc?0x0:_0x3e45d4[_0x99a1('0x1c')];var _0x1fcd00=_0x3d40cc?_0x1bb464[_0x99a1('0x1f')]:_0x3e45d4[_0x99a1('0x1c')]+_0x3e45d4[_0x99a1('0x1e')];var _0x3cd62c;if(_0x1fcd00>=_0x4f049c){_0x1fcd00=_0x4f049c;_0x3cd62c=0xc8;}else{_0x3cd62c=0xce;}_0x2d81ed[_0x99a1('0x1a')](_0x3cd62c);return _0x2d81ed[_0x99a1('0x20')](_0x99a1('0x21'),_0xbf62f1+'-'+_0x1fcd00+'/'+_0x4f049c)['json'](_0x1bb464);}return null;};}function patchUpdates(_0x3023a1){return function(_0x20007e){try{jsonpatch['apply'](_0x20007e,_0x3023a1,!![]);}catch(_0x38435b){return BPromise['reject'](_0x38435b);}return _0x20007e[_0x99a1('0x22')]();};}function saveUpdates(_0x2927b0,_0x2d6f20){return function(_0x2d3b82){if(_0x2d3b82){return _0x2d3b82['update'](_0x2927b0)[_0x99a1('0x23')](function(_0x1268a7){return _0x1268a7;});}return null;};}function removeEntity(_0x483c17,_0x44df2d){return function(_0x5b5dfa){if(_0x5b5dfa){return _0x5b5dfa[_0x99a1('0x24')]()[_0x99a1('0x23')](function(){var _0x179597=_0x5b5dfa[_0x99a1('0x25')]({'plain':!![]});var _0x3c813=_0x99a1('0x26');return db['UserProfileResource'][_0x99a1('0x24')]({'where':{'type':_0x3c813,'resourceId':_0x179597['id']}})['then'](function(){return _0x5b5dfa;});})['then'](function(){_0x483c17[_0x99a1('0x1a')](0xcc)[_0x99a1('0x1b')]();});}};}function handleEntityNotFound(_0xa6799b,_0x15a0b6){return function(_0x25d560){if(!_0x25d560){_0xa6799b[_0x99a1('0x19')](0x194);}return _0x25d560;};}function handleError(_0x183037,_0x549645){_0x549645=_0x549645||0x1f4;return function(_0xf41b0d){logger['error'](_0xf41b0d[_0x99a1('0x27')]);if(_0xf41b0d[_0x99a1('0x28')]){delete _0xf41b0d[_0x99a1('0x28')];}_0x183037['status'](_0x549645)[_0x99a1('0x29')](_0xf41b0d);};}exports[_0x99a1('0x2a')]=function(_0x5718b9,_0x37514e){var _0x1434a0={},_0x36aa34={},_0x303d1e={'count':0x0,'rows':[]};var _0x2a5b8c=_[_0x99a1('0x2b')](db[_0x99a1('0x2c')][_0x99a1('0x2d')],function(_0x52da8d){return{'name':_0x52da8d['fieldName'],'type':_0x52da8d[_0x99a1('0x2e')]['key']};});_0x36aa34[_0x99a1('0x2f')]=_[_0x99a1('0x2b')](_0x2a5b8c,'name');_0x36aa34[_0x99a1('0x30')]=_[_0x99a1('0x31')](_0x5718b9[_0x99a1('0x30')]);_0x36aa34[_0x99a1('0x32')]=_[_0x99a1('0x33')](_0x36aa34[_0x99a1('0x2f')],_0x36aa34[_0x99a1('0x30')]);_0x1434a0[_0x99a1('0x34')]=_[_0x99a1('0x33')](_0x36aa34[_0x99a1('0x2f')],qs[_0x99a1('0x35')](_0x5718b9[_0x99a1('0x30')][_0x99a1('0x35')]));_0x1434a0[_0x99a1('0x34')]=_0x1434a0['attributes']['length']?_0x1434a0[_0x99a1('0x34')]:_0x36aa34[_0x99a1('0x2f')];if(!_0x5718b9[_0x99a1('0x30')][_0x99a1('0x36')](_0x99a1('0x37'))){_0x1434a0[_0x99a1('0x1e')]=qs[_0x99a1('0x1e')](_0x5718b9['query'][_0x99a1('0x1e')]);_0x1434a0[_0x99a1('0x1c')]=qs['offset'](_0x5718b9[_0x99a1('0x30')][_0x99a1('0x1c')]);}_0x1434a0[_0x99a1('0x38')]=qs[_0x99a1('0x39')](_0x5718b9[_0x99a1('0x30')][_0x99a1('0x39')]);_0x1434a0[_0x99a1('0x3a')]=qs[_0x99a1('0x32')](_[_0x99a1('0x3b')](_0x5718b9[_0x99a1('0x30')],_0x36aa34[_0x99a1('0x32')]),_0x2a5b8c);if(_0x5718b9[_0x99a1('0x30')][_0x99a1('0x3c')]){_0x1434a0['where']=_['merge'](_0x1434a0['where'],{'$or':_[_0x99a1('0x2b')](_0x2a5b8c,function(_0x169df7){if(_0x169df7[_0x99a1('0x2e')]!==_0x99a1('0x3d')){var _0x40613a={};_0x40613a[_0x169df7['name']]={'$like':'%'+_0x5718b9[_0x99a1('0x30')][_0x99a1('0x3c')]+'%'};return _0x40613a;}})});}_0x1434a0=_[_0x99a1('0x3e')]({},_0x1434a0,_0x5718b9['options']);var _0x49be37={'where':_0x1434a0[_0x99a1('0x3a')]};return db[_0x99a1('0x2c')][_0x99a1('0x1f')](_0x49be37)['then'](function(_0x6c4cb){_0x303d1e[_0x99a1('0x1f')]=_0x6c4cb;if(_0x5718b9[_0x99a1('0x30')][_0x99a1('0x3f')]){_0x1434a0[_0x99a1('0x40')]=[{'all':!![]}];}return db[_0x99a1('0x2c')][_0x99a1('0x41')](_0x1434a0);})[_0x99a1('0x23')](function(_0x1c4ce4){_0x303d1e[_0x99a1('0x42')]=_0x1c4ce4;return _0x303d1e;})['then'](respondWithFilteredResult(_0x37514e,_0x1434a0))[_0x99a1('0x43')](handleError(_0x37514e,null));};exports[_0x99a1('0x44')]=function(_0x3d5373,_0x50d38b){var _0x1beed2={'raw':!![],'where':{'id':_0x3d5373[_0x99a1('0x45')]['id']}},_0x51536d={};_0x51536d[_0x99a1('0x2f')]=_[_0x99a1('0x31')](db[_0x99a1('0x2c')][_0x99a1('0x2d')]);_0x51536d[_0x99a1('0x30')]=_['keys'](_0x3d5373[_0x99a1('0x30')]);_0x51536d['filters']=_[_0x99a1('0x33')](_0x51536d[_0x99a1('0x2f')],_0x51536d[_0x99a1('0x30')]);_0x1beed2[_0x99a1('0x34')]=_[_0x99a1('0x33')](_0x51536d[_0x99a1('0x2f')],qs[_0x99a1('0x35')](_0x3d5373[_0x99a1('0x30')][_0x99a1('0x35')]));_0x1beed2[_0x99a1('0x34')]=_0x1beed2[_0x99a1('0x34')]['length']?_0x1beed2[_0x99a1('0x34')]:_0x51536d[_0x99a1('0x2f')];if(_0x3d5373['query'][_0x99a1('0x3f')]){_0x1beed2[_0x99a1('0x40')]=[{'all':!![]}];}_0x1beed2=_[_0x99a1('0x3e')]({},_0x1beed2,_0x3d5373[_0x99a1('0x46')]);return db[_0x99a1('0x2c')][_0x99a1('0x47')](_0x1beed2)[_0x99a1('0x23')](handleEntityNotFound(_0x50d38b,null))['then'](respondWithResult(_0x50d38b,null))[_0x99a1('0x43')](handleError(_0x50d38b,null));};exports['create']=function(_0x1d4d3f,_0x269798){return db['Tag']['create'](_0x1d4d3f[_0x99a1('0x48')],{})[_0x99a1('0x23')](function(_0x462c15){var _0x4519fb=_0x1d4d3f[_0x99a1('0x49')]['get']({'plain':!![]});if(!_0x4519fb)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x4519fb['role']===_0x99a1('0x49')){var _0x4ae90e=_0x462c15[_0x99a1('0x25')]({'plain':!![]});var _0x30fdfb=_0x99a1('0x26');return db[_0x99a1('0x4a')][_0x99a1('0x47')]({'where':{'name':_0x30fdfb,'userProfileId':_0x4519fb['userProfileId']},'raw':!![]})[_0x99a1('0x23')](function(_0x22bfd8){if(_0x22bfd8&&_0x22bfd8[_0x99a1('0x4b')]===0x0){return db['UserProfileResource'][_0x99a1('0x4c')]({'name':_0x4ae90e['name'],'resourceId':_0x4ae90e['id'],'type':_0x22bfd8['name'],'sectionId':_0x22bfd8['id']},{})[_0x99a1('0x23')](function(){return _0x462c15;});}else{return _0x462c15;}})[_0x99a1('0x43')](function(_0x1dd17b){logger[_0x99a1('0x4d')](_0x99a1('0x4e'),_0x1dd17b);throw _0x1dd17b;});}return _0x462c15;})[_0x99a1('0x23')](respondWithResult(_0x269798,0xc9))[_0x99a1('0x43')](handleError(_0x269798,null));};exports[_0x99a1('0x4f')]=function(_0x16641e,_0x53e9eb){if(_0x16641e[_0x99a1('0x48')]['id']){delete _0x16641e['body']['id'];}return db[_0x99a1('0x2c')][_0x99a1('0x47')]({'where':{'id':_0x16641e['params']['id']}})[_0x99a1('0x23')](handleEntityNotFound(_0x53e9eb,null))[_0x99a1('0x23')](saveUpdates(_0x16641e[_0x99a1('0x48')],null))[_0x99a1('0x23')](respondWithResult(_0x53e9eb,null))[_0x99a1('0x43')](handleError(_0x53e9eb,null));};exports[_0x99a1('0x24')]=function(_0x157c49,_0x1a5658){return db[_0x99a1('0x2c')][_0x99a1('0x47')]({'where':{'id':_0x157c49[_0x99a1('0x45')]['id']}})[_0x99a1('0x23')](handleEntityNotFound(_0x1a5658,null))['then'](removeEntity(_0x1a5658,null))['catch'](handleError(_0x1a5658,null));};
\ No newline at end of file
+var _0x9aea=['status','Content-Range','apply','reject','destroy','then','get','Tags','UserProfileResource','error','stack','name','send','index','map','Tag','rawAttributes','fieldName','type','key','model','keys','query','filters','attributes','intersection','fields','hasOwnProperty','order','sort','where','pick','VIRTUAL','filter','options','count','includeAll','include','findAll','rows','catch','show','params','length','merge','find','create','body','user','role','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','eml-format','zip-dir','request-promise','moment','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','json','offset','limit','undefined'];(function(_0x290e23,_0x13ca49){var _0x432418=function(_0x3fbf82){while(--_0x3fbf82){_0x290e23['push'](_0x290e23['shift']());}};_0x432418(++_0x13ca49);}(_0x9aea,0xdd));var _0xa9ae=function(_0x435451,_0x3104af){_0x435451=_0x435451-0x0;var _0xc54007=_0x9aea[_0x435451];return _0xc54007;};'use strict';var emlformat=require(_0xa9ae('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xa9ae('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xa9ae('0x2'));var moment=require(_0xa9ae('0x3'));var BPromise=require('bluebird');var Mustache=require(_0xa9ae('0x4'));var util=require(_0xa9ae('0x5'));var path=require(_0xa9ae('0x6'));var sox=require(_0xa9ae('0x7'));var csv=require(_0xa9ae('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xa9ae('0x9'));var _=require(_0xa9ae('0xa'));var squel=require(_0xa9ae('0xb'));var crypto=require('crypto');var jsforce=require(_0xa9ae('0xc'));var deskjs=require(_0xa9ae('0xd'));var toCsv=require(_0xa9ae('0x8'));var querystring=require(_0xa9ae('0xe'));var Papa=require(_0xa9ae('0xf'));var Redis=require(_0xa9ae('0x10'));var authService=require(_0xa9ae('0x11'));var qs=require(_0xa9ae('0x12'));var as=require(_0xa9ae('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xa9ae('0x14'))('api');var utils=require(_0xa9ae('0x15'));var config=require(_0xa9ae('0x16'));var licenseUtil=require(_0xa9ae('0x17'));var db=require(_0xa9ae('0x18'))['db'];function respondWithStatusCode(_0x35f861,_0x33a72f){_0x33a72f=_0x33a72f||0xcc;return function(_0xa34271){if(_0xa34271){return _0x35f861[_0xa9ae('0x19')](_0x33a72f);}return _0x35f861['status'](_0x33a72f)[_0xa9ae('0x1a')]();};}function respondWithResult(_0x365e90,_0x10882e){_0x10882e=_0x10882e||0xc8;return function(_0x3f7f61){if(_0x3f7f61){return _0x365e90['status'](_0x10882e)[_0xa9ae('0x1b')](_0x3f7f61);}};}function respondWithFilteredResult(_0x1ec742,_0x31c03e){return function(_0x40b756){if(_0x40b756){var _0x77b0a4=typeof _0x31c03e[_0xa9ae('0x1c')]==='undefined'&&typeof _0x31c03e[_0xa9ae('0x1d')]===_0xa9ae('0x1e');var _0x3e31d9=_0x40b756['count'];var _0x4dbb30=_0x77b0a4?0x0:_0x31c03e[_0xa9ae('0x1c')];var _0x581345=_0x77b0a4?_0x40b756['count']:_0x31c03e[_0xa9ae('0x1c')]+_0x31c03e[_0xa9ae('0x1d')];var _0xbfd2ff;if(_0x581345>=_0x3e31d9){_0x581345=_0x3e31d9;_0xbfd2ff=0xc8;}else{_0xbfd2ff=0xce;}_0x1ec742[_0xa9ae('0x1f')](_0xbfd2ff);return _0x1ec742['set'](_0xa9ae('0x20'),_0x4dbb30+'-'+_0x581345+'/'+_0x3e31d9)[_0xa9ae('0x1b')](_0x40b756);}return null;};}function patchUpdates(_0x39f133){return function(_0x688153){try{jsonpatch[_0xa9ae('0x21')](_0x688153,_0x39f133,!![]);}catch(_0x2e204d){return BPromise[_0xa9ae('0x22')](_0x2e204d);}return _0x688153['save']();};}function saveUpdates(_0xc021cf,_0x4ca9a9){return function(_0x49dca9){if(_0x49dca9){return _0x49dca9['update'](_0xc021cf)['then'](function(_0x1afd07){return _0x1afd07;});}return null;};}function removeEntity(_0x4edd55,_0x13fb05){return function(_0x5093ad){if(_0x5093ad){return _0x5093ad[_0xa9ae('0x23')]()[_0xa9ae('0x24')](function(){var _0x93d637=_0x5093ad[_0xa9ae('0x25')]({'plain':!![]});var _0x12b061=_0xa9ae('0x26');return db[_0xa9ae('0x27')]['destroy']({'where':{'type':_0x12b061,'resourceId':_0x93d637['id']}})[_0xa9ae('0x24')](function(){return _0x5093ad;});})[_0xa9ae('0x24')](function(){_0x4edd55[_0xa9ae('0x1f')](0xcc)[_0xa9ae('0x1a')]();});}};}function handleEntityNotFound(_0x222db7,_0x428934){return function(_0xb12fa8){if(!_0xb12fa8){_0x222db7['sendStatus'](0x194);}return _0xb12fa8;};}function handleError(_0x489e88,_0x2f1a9f){_0x2f1a9f=_0x2f1a9f||0x1f4;return function(_0x3c324e){logger[_0xa9ae('0x28')](_0x3c324e[_0xa9ae('0x29')]);if(_0x3c324e[_0xa9ae('0x2a')]){delete _0x3c324e['name'];}_0x489e88['status'](_0x2f1a9f)[_0xa9ae('0x2b')](_0x3c324e);};}exports[_0xa9ae('0x2c')]=function(_0x372ec7,_0x3a48b7){var _0x314969={},_0x36bc28={},_0x5d0c84={'count':0x0,'rows':[]};var _0x5415f1=_[_0xa9ae('0x2d')](db[_0xa9ae('0x2e')][_0xa9ae('0x2f')],function(_0x3cd87a){return{'name':_0x3cd87a[_0xa9ae('0x30')],'type':_0x3cd87a[_0xa9ae('0x31')][_0xa9ae('0x32')]};});_0x36bc28[_0xa9ae('0x33')]=_['map'](_0x5415f1,_0xa9ae('0x2a'));_0x36bc28['query']=_[_0xa9ae('0x34')](_0x372ec7[_0xa9ae('0x35')]);_0x36bc28[_0xa9ae('0x36')]=_['intersection'](_0x36bc28[_0xa9ae('0x33')],_0x36bc28[_0xa9ae('0x35')]);_0x314969[_0xa9ae('0x37')]=_[_0xa9ae('0x38')](_0x36bc28[_0xa9ae('0x33')],qs['fields'](_0x372ec7[_0xa9ae('0x35')][_0xa9ae('0x39')]));_0x314969[_0xa9ae('0x37')]=_0x314969['attributes']['length']?_0x314969[_0xa9ae('0x37')]:_0x36bc28[_0xa9ae('0x33')];if(!_0x372ec7[_0xa9ae('0x35')][_0xa9ae('0x3a')]('nolimit')){_0x314969[_0xa9ae('0x1d')]=qs[_0xa9ae('0x1d')](_0x372ec7[_0xa9ae('0x35')][_0xa9ae('0x1d')]);_0x314969[_0xa9ae('0x1c')]=qs['offset'](_0x372ec7[_0xa9ae('0x35')]['offset']);}_0x314969[_0xa9ae('0x3b')]=qs[_0xa9ae('0x3c')](_0x372ec7[_0xa9ae('0x35')]['sort']);_0x314969[_0xa9ae('0x3d')]=qs[_0xa9ae('0x36')](_[_0xa9ae('0x3e')](_0x372ec7['query'],_0x36bc28[_0xa9ae('0x36')]),_0x5415f1);if(_0x372ec7[_0xa9ae('0x35')]['filter']){_0x314969[_0xa9ae('0x3d')]=_['merge'](_0x314969[_0xa9ae('0x3d')],{'$or':_[_0xa9ae('0x2d')](_0x5415f1,function(_0x4bbc74){if(_0x4bbc74[_0xa9ae('0x31')]!==_0xa9ae('0x3f')){var _0x234da5={};_0x234da5[_0x4bbc74[_0xa9ae('0x2a')]]={'$like':'%'+_0x372ec7[_0xa9ae('0x35')][_0xa9ae('0x40')]+'%'};return _0x234da5;}})});}_0x314969=_['merge']({},_0x314969,_0x372ec7[_0xa9ae('0x41')]);var _0xa12887={'where':_0x314969['where']};return db['Tag'][_0xa9ae('0x42')](_0xa12887)[_0xa9ae('0x24')](function(_0xc4f775){_0x5d0c84[_0xa9ae('0x42')]=_0xc4f775;if(_0x372ec7['query'][_0xa9ae('0x43')]){_0x314969[_0xa9ae('0x44')]=[{'all':!![]}];}return db[_0xa9ae('0x2e')][_0xa9ae('0x45')](_0x314969);})[_0xa9ae('0x24')](function(_0x2bef06){_0x5d0c84[_0xa9ae('0x46')]=_0x2bef06;return _0x5d0c84;})['then'](respondWithFilteredResult(_0x3a48b7,_0x314969))[_0xa9ae('0x47')](handleError(_0x3a48b7,null));};exports[_0xa9ae('0x48')]=function(_0x566cb0,_0x419ba7){var _0x542477={'raw':!![],'where':{'id':_0x566cb0[_0xa9ae('0x49')]['id']}},_0xb51a6c={};_0xb51a6c[_0xa9ae('0x33')]=_[_0xa9ae('0x34')](db[_0xa9ae('0x2e')][_0xa9ae('0x2f')]);_0xb51a6c[_0xa9ae('0x35')]=_['keys'](_0x566cb0[_0xa9ae('0x35')]);_0xb51a6c[_0xa9ae('0x36')]=_['intersection'](_0xb51a6c[_0xa9ae('0x33')],_0xb51a6c[_0xa9ae('0x35')]);_0x542477[_0xa9ae('0x37')]=_[_0xa9ae('0x38')](_0xb51a6c[_0xa9ae('0x33')],qs[_0xa9ae('0x39')](_0x566cb0['query'][_0xa9ae('0x39')]));_0x542477['attributes']=_0x542477[_0xa9ae('0x37')][_0xa9ae('0x4a')]?_0x542477['attributes']:_0xb51a6c['model'];if(_0x566cb0[_0xa9ae('0x35')][_0xa9ae('0x43')]){_0x542477[_0xa9ae('0x44')]=[{'all':!![]}];}_0x542477=_[_0xa9ae('0x4b')]({},_0x542477,_0x566cb0[_0xa9ae('0x41')]);return db[_0xa9ae('0x2e')][_0xa9ae('0x4c')](_0x542477)[_0xa9ae('0x24')](handleEntityNotFound(_0x419ba7,null))['then'](respondWithResult(_0x419ba7,null))['catch'](handleError(_0x419ba7,null));};exports[_0xa9ae('0x4d')]=function(_0x3cf89c,_0x4efe55){return db[_0xa9ae('0x2e')][_0xa9ae('0x4d')](_0x3cf89c[_0xa9ae('0x4e')],{})[_0xa9ae('0x24')](function(_0x36636f){var _0x104af2=_0x3cf89c[_0xa9ae('0x4f')][_0xa9ae('0x25')]({'plain':!![]});if(!_0x104af2)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x104af2[_0xa9ae('0x50')]===_0xa9ae('0x4f')){var _0x5ea18d=_0x36636f[_0xa9ae('0x25')]({'plain':!![]});var _0x4abe30='Tags';return db['UserProfileSection'][_0xa9ae('0x4c')]({'where':{'name':_0x4abe30,'userProfileId':_0x104af2[_0xa9ae('0x51')]},'raw':!![]})['then'](function(_0x4840ea){if(_0x4840ea&&_0x4840ea['autoAssociation']===0x0){return db[_0xa9ae('0x27')]['create']({'name':_0x5ea18d[_0xa9ae('0x2a')],'resourceId':_0x5ea18d['id'],'type':_0x4840ea[_0xa9ae('0x2a')],'sectionId':_0x4840ea['id']},{})['then'](function(){return _0x36636f;});}else{return _0x36636f;}})[_0xa9ae('0x47')](function(_0x5cebe3){logger[_0xa9ae('0x28')](_0xa9ae('0x52'),_0x5cebe3);throw _0x5cebe3;});}return _0x36636f;})[_0xa9ae('0x24')](respondWithResult(_0x4efe55,0xc9))[_0xa9ae('0x47')](handleError(_0x4efe55,null));};exports[_0xa9ae('0x53')]=function(_0x233dd6,_0x1a04d4){if(_0x233dd6[_0xa9ae('0x4e')]['id']){delete _0x233dd6[_0xa9ae('0x4e')]['id'];}return db[_0xa9ae('0x2e')][_0xa9ae('0x4c')]({'where':{'id':_0x233dd6[_0xa9ae('0x49')]['id']}})['then'](handleEntityNotFound(_0x1a04d4,null))[_0xa9ae('0x24')](saveUpdates(_0x233dd6[_0xa9ae('0x4e')],null))[_0xa9ae('0x24')](respondWithResult(_0x1a04d4,null))[_0xa9ae('0x47')](handleError(_0x1a04d4,null));};exports[_0xa9ae('0x23')]=function(_0x59de12,_0x4fe9e7){return db[_0xa9ae('0x2e')][_0xa9ae('0x4c')]({'where':{'id':_0x59de12['params']['id']}})['then'](handleEntityNotFound(_0x4fe9e7,null))[_0xa9ae('0x24')](removeEntity(_0x4fe9e7,null))['catch'](handleError(_0x4fe9e7,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2d0c=['request-promise','../../config/environment','./tag.attributes','exports','Tag','tools_tags','lodash','util','api','moment','bluebird'];(function(_0x4c2dfc,_0x4814c0){var _0xfd728d=function(_0x5b8d81){while(--_0x5b8d81){_0x4c2dfc['push'](_0x4c2dfc['shift']());}};_0xfd728d(++_0x4814c0);}(_0x2d0c,0xc1));var _0xc2d0=function(_0x2bdcfd,_0x32697d){_0x2bdcfd=_0x2bdcfd-0x0;var _0x53a635=_0x2d0c[_0x2bdcfd];return _0x53a635;};'use strict';var _=require(_0xc2d0('0x0'));var util=require(_0xc2d0('0x1'));var logger=require('../../config/logger')(_0xc2d0('0x2'));var moment=require(_0xc2d0('0x3'));var BPromise=require(_0xc2d0('0x4'));var rp=require(_0xc2d0('0x5'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0xc2d0('0x6'));var attributes=require(_0xc2d0('0x7'));module[_0xc2d0('0x8')]=function(_0x1184b9,_0x4eef93){return _0x1184b9['define'](_0xc2d0('0x9'),attributes,{'tableName':_0xc2d0('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x1809=['tools_tags','util','../../config/logger','moment','bluebird','request-promise','rimraf','./tag.attributes','exports','Tag'];(function(_0x48f0de,_0x4ab07d){var _0x43185b=function(_0x50f77f){while(--_0x50f77f){_0x48f0de['push'](_0x48f0de['shift']());}};_0x43185b(++_0x4ab07d);}(_0x1809,0x1cd));var _0x9180=function(_0x58b1aa,_0x4ef744){_0x58b1aa=_0x58b1aa-0x0;var _0xf7ced9=_0x1809[_0x58b1aa];return _0xf7ced9;};'use strict';var _=require('lodash');var util=require(_0x9180('0x0'));var logger=require(_0x9180('0x1'))('api');var moment=require(_0x9180('0x2'));var BPromise=require(_0x9180('0x3'));var rp=require(_0x9180('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x9180('0x5'));var config=require('../../config/environment');var attributes=require(_0x9180('0x6'));module[_0x9180('0x7')]=function(_0x46ec76,_0x565127){return _0x46ec76['define'](_0x9180('0x8'),attributes,{'tableName':_0x9180('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe644=['../../config/logger','rpc','../../config/environment','jayson/promise','client','info','Tag,\x20%s,\x20%s','request\x20sent','debug','Tag,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils'];(function(_0x4d9403,_0x33c5f0){var _0x5eef11=function(_0x50bb5c){while(--_0x50bb5c){_0x4d9403['push'](_0x4d9403['shift']());}};_0x5eef11(++_0x33c5f0);}(_0xe644,0x159));var _0x4e64=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xe644[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x4e64('0x0'));var util=require(_0x4e64('0x1'));var moment=require(_0x4e64('0x2'));var BPromise=require(_0x4e64('0x3'));var rs=require(_0x4e64('0x4'));var fs=require('fs');var Redis=require(_0x4e64('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x4e64('0x6'));var logger=require(_0x4e64('0x7'))(_0x4e64('0x8'));var config=require(_0x4e64('0x9'));var jayson=require(_0x4e64('0xa'));var client=jayson[_0x4e64('0xb')]['http']({'port':0x232a});function respondWithRpcPromise(_0x66faf,_0x12c40d,_0x5cce6e){return new BPromise(function(_0x4d5aa6,_0x8573c1){return client['request'](_0x66faf,_0x5cce6e)['then'](function(_0x2ebcfe){logger[_0x4e64('0xc')](_0x4e64('0xd'),_0x12c40d,_0x4e64('0xe'));logger[_0x4e64('0xf')](_0x4e64('0x10'),_0x12c40d,'request\x20sent',JSON[_0x4e64('0x11')](_0x2ebcfe));if(_0x2ebcfe[_0x4e64('0x12')]){if(_0x2ebcfe['error'][_0x4e64('0x13')]===0x1f4){logger['error']('Tag,\x20%s,\x20%s',_0x12c40d,_0x2ebcfe[_0x4e64('0x12')]['message']);return _0x8573c1(_0x2ebcfe[_0x4e64('0x12')][_0x4e64('0x14')]);}logger[_0x4e64('0x12')](_0x4e64('0xd'),_0x12c40d,_0x2ebcfe[_0x4e64('0x12')][_0x4e64('0x14')]);return _0x4d5aa6(_0x2ebcfe[_0x4e64('0x12')]['message']);}else{logger[_0x4e64('0xc')](_0x4e64('0xd'),_0x12c40d,_0x4e64('0xe'));_0x4d5aa6(_0x2ebcfe['result'][_0x4e64('0x14')]);}})[_0x4e64('0x15')](function(_0x452f34){logger[_0x4e64('0x12')](_0x4e64('0xd'),_0x12c40d,_0x452f34);_0x8573c1(_0x452f34);});});}
\ No newline at end of file
+var _0xf8b2=['code','Tag,\x20%s,\x20%s','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/environment','jayson/promise','client','http','then','info','request\x20sent','debug','Tag,\x20%s,\x20%s,\x20%s','error'];(function(_0x3e1bad,_0x371314){var _0x91e5a9=function(_0x2f43c9){while(--_0x2f43c9){_0x3e1bad['push'](_0x3e1bad['shift']());}};_0x91e5a9(++_0x371314);}(_0xf8b2,0x15e));var _0x2f8b=function(_0xa530be,_0x50eae3){_0xa530be=_0xa530be-0x0;var _0x4ed49b=_0xf8b2[_0xa530be];return _0x4ed49b;};'use strict';var _=require(_0x2f8b('0x0'));var util=require(_0x2f8b('0x1'));var moment=require(_0x2f8b('0x2'));var BPromise=require(_0x2f8b('0x3'));var rs=require(_0x2f8b('0x4'));var fs=require('fs');var Redis=require(_0x2f8b('0x5'));var db=require(_0x2f8b('0x6'))['db'];var utils=require(_0x2f8b('0x7'));var logger=require('../../config/logger')('rpc');var config=require(_0x2f8b('0x8'));var jayson=require(_0x2f8b('0x9'));var client=jayson[_0x2f8b('0xa')][_0x2f8b('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x3b0511,_0x2cc1e9,_0x449c86){return new BPromise(function(_0x24bd39,_0x366bac){return client['request'](_0x3b0511,_0x449c86)[_0x2f8b('0xc')](function(_0xb352e8){logger[_0x2f8b('0xd')]('Tag,\x20%s,\x20%s',_0x2cc1e9,_0x2f8b('0xe'));logger[_0x2f8b('0xf')](_0x2f8b('0x10'),_0x2cc1e9,'request\x20sent',JSON['stringify'](_0xb352e8));if(_0xb352e8[_0x2f8b('0x11')]){if(_0xb352e8[_0x2f8b('0x11')][_0x2f8b('0x12')]===0x1f4){logger[_0x2f8b('0x11')](_0x2f8b('0x13'),_0x2cc1e9,_0xb352e8['error'][_0x2f8b('0x14')]);return _0x366bac(_0xb352e8['error'][_0x2f8b('0x14')]);}logger[_0x2f8b('0x11')](_0x2f8b('0x13'),_0x2cc1e9,_0xb352e8[_0x2f8b('0x11')][_0x2f8b('0x14')]);return _0x24bd39(_0xb352e8[_0x2f8b('0x11')][_0x2f8b('0x14')]);}else{logger[_0x2f8b('0xd')]('Tag,\x20%s,\x20%s',_0x2cc1e9,_0x2f8b('0xe'));_0x24bd39(_0xb352e8[_0x2f8b('0x15')][_0x2f8b('0x14')]);}})[_0x2f8b('0x16')](function(_0xa79a7){logger[_0x2f8b('0x11')](_0x2f8b('0x13'),_0x2cc1e9,_0xa79a7);_0x366bac(_0xa79a7);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./team.controller','get','index','/:id','getQueues','/:id/users','isAuthenticated','getAgents','post','addQueues','addAgents','update','delete','removeAgents','multer','util','path'];(function(_0x40a045,_0x516f0e){var _0x1a687c=function(_0x48c9fe){while(--_0x48c9fe){_0x40a045['push'](_0x40a045['shift']());}};_0x1a687c(++_0x516f0e);}(_0xa9e0,0x123));var _0x0a9e=function(_0x373dee,_0x1a8c45){_0x373dee=_0x373dee-0x0;var _0x46798f=_0xa9e0[_0x373dee];return _0x46798f;};'use strict';var multer=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var path=require(_0x0a9e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0a9e('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x0a9e('0x4'));var interaction=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var controller=require(_0x0a9e('0x7'));router[_0x0a9e('0x8')]('/',auth['isAuthenticated'](),controller[_0x0a9e('0x9')]);router[_0x0a9e('0x8')](_0x0a9e('0xa'),auth['isAuthenticated'](),controller['show']);router[_0x0a9e('0x8')]('/:id/queues',auth['isAuthenticated'](),controller[_0x0a9e('0xb')]);router[_0x0a9e('0x8')](_0x0a9e('0xc'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0xe')]);router[_0x0a9e('0xf')]('/',auth['isAuthenticated'](),controller['create']);router['post']('/:id/queues',auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x10')]);router[_0x0a9e('0xf')](_0x0a9e('0xc'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x11')]);router['put'](_0x0a9e('0xa'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x12')]);router[_0x0a9e('0x13')](_0x0a9e('0xa'),auth[_0x0a9e('0xd')](),controller['destroy']);router[_0x0a9e('0x13')]('/:id/queues',auth[_0x0a9e('0xd')](),controller['removeQueues']);router[_0x0a9e('0x13')](_0x0a9e('0xc'),auth['isAuthenticated'](),controller[_0x0a9e('0x14')]);module['exports']=router;
\ No newline at end of file
+var _0xa9e0=['Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./team.controller','get','index','/:id','getQueues','/:id/users','isAuthenticated','getAgents','post','addQueues','addAgents','update','delete','removeAgents','multer','util','path'];(function(_0x19950b,_0x53d0d7){var _0x3c6b41=function(_0x3924ad){while(--_0x3924ad){_0x19950b['push'](_0x19950b['shift']());}};_0x3c6b41(++_0x53d0d7);}(_0xa9e0,0x123));var _0x0a9e=function(_0x3e112d,_0x2bb132){_0x3e112d=_0x3e112d-0x0;var _0x531c31=_0xa9e0[_0x3e112d];return _0x531c31;};'use strict';var multer=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var path=require(_0x0a9e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0a9e('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x0a9e('0x4'));var interaction=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var controller=require(_0x0a9e('0x7'));router[_0x0a9e('0x8')]('/',auth['isAuthenticated'](),controller[_0x0a9e('0x9')]);router[_0x0a9e('0x8')](_0x0a9e('0xa'),auth['isAuthenticated'](),controller['show']);router[_0x0a9e('0x8')]('/:id/queues',auth['isAuthenticated'](),controller[_0x0a9e('0xb')]);router[_0x0a9e('0x8')](_0x0a9e('0xc'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0xe')]);router[_0x0a9e('0xf')]('/',auth['isAuthenticated'](),controller['create']);router['post']('/:id/queues',auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x10')]);router[_0x0a9e('0xf')](_0x0a9e('0xc'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x11')]);router['put'](_0x0a9e('0xa'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x12')]);router[_0x0a9e('0x13')](_0x0a9e('0xa'),auth[_0x0a9e('0xd')](),controller['destroy']);router[_0x0a9e('0x13')]('/:id/queues',auth[_0x0a9e('0xd')](),controller['removeQueues']);router[_0x0a9e('0x13')](_0x0a9e('0xc'),auth['isAuthenticated'](),controller[_0x0a9e('0x14')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd8b0=['exports','sequelize'];(function(_0x54fe4f,_0x46c182){var _0x49fbd2=function(_0x4fa3cd){while(--_0x4fa3cd){_0x54fe4f['push'](_0x54fe4f['shift']());}};_0x49fbd2(++_0x46c182);}(_0xd8b0,0xad));var _0x0d8b=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0xd8b0[_0xa464c9];return _0x3d73c4;};'use strict';var Sequelize=require(_0x0d8b('0x0'));module[_0x0d8b('0x1')]={'name':{'type':Sequelize['STRING'],'allowNull':![],'unique':'name'},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0xd8b0=['exports','sequelize'];(function(_0x353765,_0x5a7798){var _0xe6e53c=function(_0x50e30d){while(--_0x50e30d){_0x353765['push'](_0x353765['shift']());}};_0xe6e53c(++_0x5a7798);}(_0xd8b0,0xad));var _0x0d8b=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xd8b0[_0x20a584];return _0x4b41a8;};'use strict';var Sequelize=require(_0x0d8b('0x0'));module[_0x0d8b('0x1')]={'name':{'type':Sequelize['STRING'],'allowNull':![],'unique':'name'},'description':{'type':Sequelize['STRING']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdf67=['undefined','limit','offset','count','set','Content-Range','reject','update','then','name','index','map','Team','rawAttributes','fieldName','type','model','query','attributes','intersection','fields','length','hasOwnProperty','order','sort','pick','filter','where','merge','VIRTUAL','options','includeAll','include','catch','show','params','keys','filters','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','Teams','UserProfileSection','find','userProfileId','autoAssociation','UserProfileResource','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','destroy','sequelize','SELECT\x20UserId\x20FROM\x20user_has_teams\x20WHERE\x20TeamId\x20=\x20','Sequelize','QueryTypes','SELECT','UserId','SELECT\x20VoiceQueueId\x20FROM\x20team_has_voice_queues\x20WHERE\x20TeamId\x20=\x20','VoiceQueueId','UserVoiceQueue','SELECT\x20MailQueueId\x20FROM\x20team_has_mail_queues\x20WHERE\x20TeamId\x20=\x20','MailQueueId','UserMailQueue','SELECT\x20SmsQueueId\x20FROM\x20team_has_sms_queues\x20WHERE\x20TeamId\x20=\x20','SmsQueueId','UserSmsQueue','SELECT\x20ChatQueueId\x20FROM\x20team_has_chat_queues\x20WHERE\x20TeamId\x20=\x20','ChatQueueId','UserChatQueue','SELECT\x20FaxQueueId\x20FROM\x20team_has_fax_queues\x20WHERE\x20TeamId\x20=\x20','FaxQueueId','UserFaxQueue','SELECT\x20OpenchannelQueueId\x20FROM\x20team_has_openchannel_queues\x20WHERE\x20TeamId\x20=\x20','UserOpenchannelQueue','SELECT\x20WhatsappQueueId\x20FROM\x20team_has_whatsapp_queues\x20WHERE\x20TeamId\x20=\x20','WhatsappQueueId','UserWhatsappQueue','UserVoicePrefix','send','getQueues','findOne','channel','isValidChannel','ValidationError','Unknown\x20channel','capitalize','toLowerCase','Queues','addQueues','ids','removeQueues','remove','addAgents','isArray','Chat','Sms','Fax','Openchannel','Whatsapp','transaction','Voice','through','penalty','TeamVoiceQueue','Queue','findOrCreate','emit','Queue:save','QueueId','User','findAll','online','voicePause','UserVoiceQueueRt','upsert','isNil','interface','format','SIP/%s','all','VoicePrefixId','spread','removeAgents','Mail','TeamVoicePrefix','getAgents','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','socket.io-emitter','sendStatus','status','end','json'];(function(_0x1573ea,_0x434f02){var _0x51c0e2=function(_0x5c9b28){while(--_0x5c9b28){_0x1573ea['push'](_0x1573ea['shift']());}};_0x51c0e2(++_0x434f02);}(_0xdf67,0x7f));var _0x7df6=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xdf67[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0x7df6('0x0'));var rimraf=require(_0x7df6('0x1'));var zipdir=require(_0x7df6('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x7df6('0x3'));var moment=require(_0x7df6('0x4'));var BPromise=require(_0x7df6('0x5'));var Mustache=require(_0x7df6('0x6'));var util=require(_0x7df6('0x7'));var path=require(_0x7df6('0x8'));var sox=require(_0x7df6('0x9'));var csv=require('to-csv');var ejs=require(_0x7df6('0xa'));var fs=require('fs');var fs_extra=require(_0x7df6('0xb'));var _=require(_0x7df6('0xc'));var squel=require(_0x7df6('0xd'));var crypto=require(_0x7df6('0xe'));var jsforce=require(_0x7df6('0xf'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x7df6('0x10'));var Papa=require(_0x7df6('0x11'));var Redis=require(_0x7df6('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x7df6('0x13'));var as=require(_0x7df6('0x14'));var hardwareService=require(_0x7df6('0x15'));var logger=require(_0x7df6('0x16'))(_0x7df6('0x17'));var utils=require('../../config/utils');var config=require(_0x7df6('0x18'));var licenseUtil=require(_0x7df6('0x19'));var db=require(_0x7df6('0x1a'))['db'];config[_0x7df6('0x1b')]=_[_0x7df6('0x1c')](config[_0x7df6('0x1b')],{'host':'localhost','port':0x18eb});var socket=require(_0x7df6('0x1d'))(new Redis(config[_0x7df6('0x1b')]));require('./team.socket')['register'](socket);function respondWithStatusCode(_0x21e70c,_0x2e3b29){_0x2e3b29=_0x2e3b29||0xcc;return function(_0x4925eb){if(_0x4925eb){return _0x21e70c[_0x7df6('0x1e')](_0x2e3b29);}return _0x21e70c[_0x7df6('0x1f')](_0x2e3b29)[_0x7df6('0x20')]();};}function respondWithResult(_0x2d5b33,_0x206ee7){_0x206ee7=_0x206ee7||0xc8;return function(_0x376eeb){if(_0x376eeb){return _0x2d5b33[_0x7df6('0x1f')](_0x206ee7)[_0x7df6('0x21')](_0x376eeb);}};}function respondWithFilteredResult(_0x1c49e5,_0x3a6c08){return function(_0x112d08){if(_0x112d08){var _0x5e982a=typeof _0x3a6c08['offset']===_0x7df6('0x22')&&typeof _0x3a6c08[_0x7df6('0x23')]===_0x7df6('0x22');var _0x56b299=_0x112d08['count'];var _0x5cacc5=_0x5e982a?0x0:_0x3a6c08[_0x7df6('0x24')];var _0x812ec1=_0x5e982a?_0x112d08[_0x7df6('0x25')]:_0x3a6c08[_0x7df6('0x24')]+_0x3a6c08[_0x7df6('0x23')];var _0x27d06f;if(_0x812ec1>=_0x56b299){_0x812ec1=_0x56b299;_0x27d06f=0xc8;}else{_0x27d06f=0xce;}_0x1c49e5['status'](_0x27d06f);return _0x1c49e5[_0x7df6('0x26')](_0x7df6('0x27'),_0x5cacc5+'-'+_0x812ec1+'/'+_0x56b299)[_0x7df6('0x21')](_0x112d08);}return null;};}function patchUpdates(_0x4ed96b){return function(_0x113ad8){try{jsonpatch['apply'](_0x113ad8,_0x4ed96b,!![]);}catch(_0x30a0f0){return BPromise[_0x7df6('0x28')](_0x30a0f0);}return _0x113ad8['save']();};}function saveUpdates(_0x546548,_0x29c411){return function(_0x4c5aaa){if(_0x4c5aaa){return _0x4c5aaa[_0x7df6('0x29')](_0x546548)[_0x7df6('0x2a')](function(_0x48fed9){return _0x48fed9;});}return null;};}function handleEntityNotFound(_0x2a3d5d,_0x1814b1){return function(_0x380f53){if(!_0x380f53){_0x2a3d5d['sendStatus'](0x194);}return _0x380f53;};}function handleError(_0x25681d,_0x6442c7){_0x6442c7=_0x6442c7||0x1f4;return function(_0x5cdee3){logger['error'](_0x5cdee3['stack']);if(_0x5cdee3['name']){delete _0x5cdee3[_0x7df6('0x2b')];}_0x25681d['status'](_0x6442c7)['send'](_0x5cdee3);};}exports[_0x7df6('0x2c')]=function(_0x2d6136,_0x1e1e41){var _0x56bedb={},_0x43d7ed={},_0x239319={'count':0x0,'rows':[]};var _0x44f3ca=_[_0x7df6('0x2d')](db[_0x7df6('0x2e')][_0x7df6('0x2f')],function(_0x4b8310){return{'name':_0x4b8310[_0x7df6('0x30')],'type':_0x4b8310[_0x7df6('0x31')]['key']};});_0x43d7ed[_0x7df6('0x32')]=_[_0x7df6('0x2d')](_0x44f3ca,_0x7df6('0x2b'));_0x43d7ed['query']=_['keys'](_0x2d6136[_0x7df6('0x33')]);_0x43d7ed['filters']=_['intersection'](_0x43d7ed[_0x7df6('0x32')],_0x43d7ed[_0x7df6('0x33')]);_0x56bedb[_0x7df6('0x34')]=_[_0x7df6('0x35')](_0x43d7ed[_0x7df6('0x32')],qs[_0x7df6('0x36')](_0x2d6136[_0x7df6('0x33')][_0x7df6('0x36')]));_0x56bedb[_0x7df6('0x34')]=_0x56bedb['attributes'][_0x7df6('0x37')]?_0x56bedb[_0x7df6('0x34')]:_0x43d7ed[_0x7df6('0x32')];if(!_0x2d6136['query'][_0x7df6('0x38')]('nolimit')){_0x56bedb['limit']=qs['limit'](_0x2d6136[_0x7df6('0x33')][_0x7df6('0x23')]);_0x56bedb[_0x7df6('0x24')]=qs[_0x7df6('0x24')](_0x2d6136['query'][_0x7df6('0x24')]);}_0x56bedb[_0x7df6('0x39')]=qs[_0x7df6('0x3a')](_0x2d6136[_0x7df6('0x33')][_0x7df6('0x3a')]);_0x56bedb['where']=qs['filters'](_[_0x7df6('0x3b')](_0x2d6136['query'],_0x43d7ed['filters']),_0x44f3ca);if(_0x2d6136[_0x7df6('0x33')][_0x7df6('0x3c')]){_0x56bedb[_0x7df6('0x3d')]=_[_0x7df6('0x3e')](_0x56bedb[_0x7df6('0x3d')],{'$or':_[_0x7df6('0x2d')](_0x44f3ca,function(_0x213079){if(_0x213079[_0x7df6('0x31')]!==_0x7df6('0x3f')){var _0x47b53d={};_0x47b53d[_0x213079[_0x7df6('0x2b')]]={'$like':'%'+_0x2d6136['query'][_0x7df6('0x3c')]+'%'};return _0x47b53d;}})});}_0x56bedb=_[_0x7df6('0x3e')]({},_0x56bedb,_0x2d6136[_0x7df6('0x40')]);var _0x13c20a={'where':_0x56bedb[_0x7df6('0x3d')]};return db[_0x7df6('0x2e')]['count'](_0x13c20a)['then'](function(_0x2f9743){_0x239319['count']=_0x2f9743;if(_0x2d6136[_0x7df6('0x33')][_0x7df6('0x41')]){_0x56bedb[_0x7df6('0x42')]=[{'all':!![]}];}return db[_0x7df6('0x2e')]['findAll'](_0x56bedb);})[_0x7df6('0x2a')](function(_0x30b720){_0x239319['rows']=_0x30b720;return _0x239319;})[_0x7df6('0x2a')](respondWithFilteredResult(_0x1e1e41,_0x56bedb))[_0x7df6('0x43')](handleError(_0x1e1e41,null));};exports[_0x7df6('0x44')]=function(_0x3e6eee,_0x364889){var _0x26c25b={'raw':![],'where':{'id':_0x3e6eee[_0x7df6('0x45')]['id']}},_0x1031d5={};_0x1031d5[_0x7df6('0x32')]=_[_0x7df6('0x46')](db['Team'][_0x7df6('0x2f')]);_0x1031d5[_0x7df6('0x33')]=_[_0x7df6('0x46')](_0x3e6eee['query']);_0x1031d5[_0x7df6('0x47')]=_['intersection'](_0x1031d5[_0x7df6('0x32')],_0x1031d5[_0x7df6('0x33')]);_0x26c25b[_0x7df6('0x34')]=_[_0x7df6('0x35')](_0x1031d5['model'],qs[_0x7df6('0x36')](_0x3e6eee[_0x7df6('0x33')][_0x7df6('0x36')]));_0x26c25b[_0x7df6('0x34')]=_0x26c25b[_0x7df6('0x34')][_0x7df6('0x37')]?_0x26c25b[_0x7df6('0x34')]:_0x1031d5['model'];if(_0x3e6eee[_0x7df6('0x33')][_0x7df6('0x41')]){_0x26c25b[_0x7df6('0x42')]=[{'all':!![]}];}_0x26c25b=_[_0x7df6('0x3e')]({},_0x26c25b,_0x3e6eee['options']);return db['Team']['find'](_0x26c25b)[_0x7df6('0x2a')](handleEntityNotFound(_0x364889,null))['then'](respondWithResult(_0x364889,null))[_0x7df6('0x43')](handleError(_0x364889,null));};exports[_0x7df6('0x48')]=function(_0x36f08f,_0x216a13){return db['Team']['create'](_0x36f08f[_0x7df6('0x49')],{})[_0x7df6('0x2a')](function(_0x58d265){var _0x15c4cb=_0x36f08f[_0x7df6('0x4a')][_0x7df6('0x4b')]({'plain':!![]});if(!_0x15c4cb)throw new Error(_0x7df6('0x4c'));if(_0x15c4cb['role']===_0x7df6('0x4a')){var _0x51fa2c=_0x58d265[_0x7df6('0x4b')]({'plain':!![]});var _0x4cb12c=_0x7df6('0x4d');return db[_0x7df6('0x4e')][_0x7df6('0x4f')]({'where':{'name':_0x4cb12c,'userProfileId':_0x15c4cb[_0x7df6('0x50')]},'raw':!![]})[_0x7df6('0x2a')](function(_0x534bd1){if(_0x534bd1&&_0x534bd1[_0x7df6('0x51')]===0x0){return db[_0x7df6('0x52')][_0x7df6('0x48')]({'name':_0x51fa2c[_0x7df6('0x2b')],'resourceId':_0x51fa2c['id'],'type':_0x534bd1[_0x7df6('0x2b')],'sectionId':_0x534bd1['id']},{})[_0x7df6('0x2a')](function(){return _0x58d265;});}else{return _0x58d265;}})[_0x7df6('0x43')](function(_0x368fa6){logger[_0x7df6('0x53')](_0x7df6('0x54'),_0x368fa6);throw _0x368fa6;});}return _0x58d265;})[_0x7df6('0x2a')](respondWithResult(_0x216a13,0xc9))[_0x7df6('0x43')](handleError(_0x216a13,null));};exports['update']=function(_0x599b71,_0x430950){if(_0x599b71[_0x7df6('0x49')]['id']){delete _0x599b71[_0x7df6('0x49')]['id'];}return db['Team']['find']({'where':{'id':_0x599b71[_0x7df6('0x45')]['id']}})[_0x7df6('0x2a')](handleEntityNotFound(_0x430950,null))[_0x7df6('0x2a')](saveUpdates(_0x599b71[_0x7df6('0x49')],null))[_0x7df6('0x2a')](respondWithResult(_0x430950,null))['catch'](handleError(_0x430950,null));};exports[_0x7df6('0x55')]=function(_0x512cb8,_0x318746){var _0x403064=_0x512cb8[_0x7df6('0x45')]['id'];var _0x385236=[];return db[_0x7df6('0x56')]['transaction'](function(_0x16bead){var _0x5f0ae3=_0x7df6('0x57')+_0x403064;return db[_0x7df6('0x56')][_0x7df6('0x33')](_0x5f0ae3,{'type':db[_0x7df6('0x58')][_0x7df6('0x59')][_0x7df6('0x5a')],'raw':!![],'transaction':_0x16bead})[_0x7df6('0x2a')](function(_0x175e1b){_0x385236=_[_0x7df6('0x2d')](_0x175e1b,function(_0x3f430d){return Number(_0x3f430d[_0x7df6('0x5b')]);});})['then'](function(){var _0x52a6d7=_0x7df6('0x5c')+_0x403064;return db['sequelize']['query'](_0x52a6d7,{'type':db[_0x7df6('0x58')][_0x7df6('0x59')][_0x7df6('0x5a')],'raw':!![],'transaction':_0x16bead});})[_0x7df6('0x2a')](function(_0x29840f){var _0x46e1da=_[_0x7df6('0x2d')](_0x29840f,function(_0x159674){return Number(_0x159674[_0x7df6('0x5d')]);});return db[_0x7df6('0x5e')]['destroy']({'where':{'UserId':{'$in':_0x385236},'VoiceQueueId':{'$in':_0x46e1da}},'transaction':_0x16bead});})[_0x7df6('0x2a')](function(){var _0x397127=_0x7df6('0x5f')+_0x403064;return db[_0x7df6('0x56')][_0x7df6('0x33')](_0x397127,{'type':db[_0x7df6('0x58')]['QueryTypes'][_0x7df6('0x5a')],'raw':!![],'transaction':_0x16bead});})[_0x7df6('0x2a')](function(_0x13e2fc){var _0x4a271a=_['map'](_0x13e2fc,function(_0xe60459){return Number(_0xe60459[_0x7df6('0x60')]);});return db[_0x7df6('0x61')][_0x7df6('0x55')]({'where':{'UserId':{'$in':_0x385236},'MailQueueId':{'$in':_0x4a271a}},'transaction':_0x16bead});})[_0x7df6('0x2a')](function(){var _0x1a6df9=_0x7df6('0x62')+_0x403064;return db[_0x7df6('0x56')][_0x7df6('0x33')](_0x1a6df9,{'type':db[_0x7df6('0x58')]['QueryTypes'][_0x7df6('0x5a')],'raw':!![],'transaction':_0x16bead});})[_0x7df6('0x2a')](function(_0x3264bd){var _0x3708e9=_[_0x7df6('0x2d')](_0x3264bd,function(_0xb0b8e9){return Number(_0xb0b8e9[_0x7df6('0x63')]);});return db[_0x7df6('0x64')]['destroy']({'where':{'UserId':{'$in':_0x385236},'SmsQueueId':{'$in':_0x3708e9}},'transaction':_0x16bead});})[_0x7df6('0x2a')](function(){var _0x2e60ed=_0x7df6('0x65')+_0x403064;return db[_0x7df6('0x56')]['query'](_0x2e60ed,{'type':db[_0x7df6('0x58')][_0x7df6('0x59')]['SELECT'],'raw':!![],'transaction':_0x16bead});})['then'](function(_0x2290cb){var _0x38e4cb=_['map'](_0x2290cb,function(_0xbd5915){return Number(_0xbd5915[_0x7df6('0x66')]);});return db[_0x7df6('0x67')]['destroy']({'where':{'UserId':{'$in':_0x385236},'ChatQueueId':{'$in':_0x38e4cb}},'transaction':_0x16bead});})['then'](function(){var _0x4d6932=_0x7df6('0x68')+_0x403064;return db['sequelize'][_0x7df6('0x33')](_0x4d6932,{'type':db[_0x7df6('0x58')]['QueryTypes'][_0x7df6('0x5a')],'raw':!![],'transaction':_0x16bead});})[_0x7df6('0x2a')](function(_0x2d0b18){var _0x2cc1d3=_[_0x7df6('0x2d')](_0x2d0b18,function(_0x297847){return Number(_0x297847[_0x7df6('0x69')]);});return db[_0x7df6('0x6a')][_0x7df6('0x55')]({'where':{'UserId':{'$in':_0x385236},'FaxQueueId':{'$in':_0x2cc1d3}},'transaction':_0x16bead});})[_0x7df6('0x2a')](function(){var _0x38ab65=_0x7df6('0x6b')+_0x403064;return db[_0x7df6('0x56')]['query'](_0x38ab65,{'type':db[_0x7df6('0x58')]['QueryTypes'][_0x7df6('0x5a')],'raw':!![],'transaction':_0x16bead});})['then'](function(_0x172d4f){var _0x214f9f=_['map'](_0x172d4f,function(_0x1a4bdd){return Number(_0x1a4bdd['OpenchannelQueueId']);});return db[_0x7df6('0x6c')][_0x7df6('0x55')]({'where':{'UserId':{'$in':_0x385236},'OpenchannelQueueId':{'$in':_0x214f9f}},'transaction':_0x16bead});})[_0x7df6('0x2a')](function(){var _0x3d8d4e=_0x7df6('0x6d')+_0x403064;return db[_0x7df6('0x56')][_0x7df6('0x33')](_0x3d8d4e,{'type':db[_0x7df6('0x58')]['QueryTypes'][_0x7df6('0x5a')],'raw':!![],'transaction':_0x16bead});})[_0x7df6('0x2a')](function(_0x22062a){var _0x4ec9bd=_[_0x7df6('0x2d')](_0x22062a,function(_0x48caee){return Number(_0x48caee[_0x7df6('0x6e')]);});return db[_0x7df6('0x6f')][_0x7df6('0x55')]({'where':{'UserId':{'$in':_0x385236},'WhatsappQueueId':{'$in':_0x4ec9bd}},'transaction':_0x16bead});})[_0x7df6('0x2a')](function(){return db['TeamVoicePrefix'][_0x7df6('0x4f')]({'where':{'TeamId':_0x403064}});})['then'](function(_0x5eee3d){if(_0x5eee3d===null){return;}return db[_0x7df6('0x70')][_0x7df6('0x55')]({'where':{'UserId':{'$in':_0x385236},'VoicePrefixId':_0x5eee3d['VoicePrefixId']},'transaction':_0x16bead});})[_0x7df6('0x2a')](function(){return db[_0x7df6('0x2e')][_0x7df6('0x55')]({'where':{'id':_0x403064},'cascade':!![],'transaction':_0x16bead});})[_0x7df6('0x2a')](function(_0x111c79){if(_0x111c79===0x0){_0x318746[_0x7df6('0x1e')](0x194);}else{return db[_0x7df6('0x52')][_0x7df6('0x55')]({'where':{'type':_0x7df6('0x4d'),'resourceId':_0x403064},'cascade':!![],'transaction':_0x16bead})[_0x7df6('0x2a')](function(){_0x318746[_0x7df6('0x1f')](0xcc)[_0x7df6('0x20')]();});}})[_0x7df6('0x43')](function(_0x1c7eaf){_0x318746[_0x7df6('0x1f')](0x1f4)[_0x7df6('0x71')](_0x1c7eaf);});});};exports[_0x7df6('0x72')]=function(_0x4ac94d,_0x29c41a,_0x4069a3){return db['Team'][_0x7df6('0x73')]({'where':{'id':_0x4ac94d['params']['id']}})[_0x7df6('0x2a')](handleEntityNotFound(_0x29c41a,null))['then'](function(_0x30933b){if(!_0x4ac94d[_0x7df6('0x33')][_0x7df6('0x74')]||!utils[_0x7df6('0x75')](_0x4ac94d['query']['channel'])){throw new db[(_0x7df6('0x58'))][(_0x7df6('0x76'))](_0x7df6('0x77'));}var _0x359c1c={};var _0x3b65d4={};_0x3b65d4[_0x7df6('0x32')]=_['keys'](db[_[_0x7df6('0x78')](_0x4ac94d[_0x7df6('0x33')][_0x7df6('0x74')]['toLowerCase']())+'Queue'][_0x7df6('0x2f')]);_0x3b65d4[_0x7df6('0x33')]=_[_0x7df6('0x46')](_0x4ac94d[_0x7df6('0x33')]);_0x3b65d4[_0x7df6('0x47')]=_[_0x7df6('0x35')](_0x3b65d4[_0x7df6('0x32')],_0x3b65d4[_0x7df6('0x33')]);_0x359c1c[_0x7df6('0x34')]=_[_0x7df6('0x35')](_0x3b65d4[_0x7df6('0x32')],qs['fields'](_0x4ac94d[_0x7df6('0x33')]['fields']));_0x359c1c['attributes']=_0x359c1c[_0x7df6('0x34')]['length']?_0x359c1c[_0x7df6('0x34')]:_0x3b65d4[_0x7df6('0x32')];_0x359c1c[_0x7df6('0x23')]=qs[_0x7df6('0x23')](_0x4ac94d['query'][_0x7df6('0x23')]);_0x359c1c[_0x7df6('0x24')]=qs[_0x7df6('0x24')](_0x4ac94d['query'][_0x7df6('0x24')]);_0x359c1c[_0x7df6('0x39')]=qs[_0x7df6('0x3a')](_0x4ac94d[_0x7df6('0x33')][_0x7df6('0x3a')]);_0x359c1c[_0x7df6('0x3d')]=qs['filters'](_[_0x7df6('0x3b')](_0x4ac94d[_0x7df6('0x33')],_0x3b65d4[_0x7df6('0x47')]));_0x359c1c=_[_0x7df6('0x3e')]({},_0x359c1c,_0x4ac94d[_0x7df6('0x40')]);return _0x30933b[_0x7df6('0x4b')+_[_0x7df6('0x78')](_0x4ac94d[_0x7df6('0x33')][_0x7df6('0x74')][_0x7df6('0x79')]())+_0x7df6('0x7a')](_0x359c1c);})[_0x7df6('0x2a')](respondWithResult(_0x29c41a,null))[_0x7df6('0x43')](handleError(_0x29c41a,null));};exports[_0x7df6('0x7b')]=function(_0x48e5d0,_0x105914,_0x2c67b2){return db['Team'][_0x7df6('0x73')]({'where':{'id':_0x48e5d0[_0x7df6('0x45')]['id']}})[_0x7df6('0x2a')](function(_0x534695){if(_0x534695){if(!_0x48e5d0['body']['channel']||!utils[_0x7df6('0x75')](_0x48e5d0[_0x7df6('0x49')]['channel'])){throw new db[(_0x7df6('0x58'))][(_0x7df6('0x76'))]('Unknown\x20channel');}return _0x534695['add'+_['capitalize'](_0x48e5d0['body']['channel'][_0x7df6('0x79')]())+_0x7df6('0x7a')](_0x48e5d0['body'][_0x7df6('0x7c')]);}return null;})[_0x7df6('0x2a')](handleEntityNotFound(_0x105914,null))[_0x7df6('0x2a')](respondWithStatusCode(_0x105914,null))[_0x7df6('0x43')](handleError(_0x105914,null));};exports[_0x7df6('0x7d')]=function(_0x2dea05,_0x5476f1,_0x2a4f01){return db[_0x7df6('0x2e')]['findOne']({'where':{'id':_0x2dea05[_0x7df6('0x45')]['id']}})[_0x7df6('0x2a')](function(_0x54573d){if(_0x54573d){if(!_0x2dea05[_0x7df6('0x33')][_0x7df6('0x74')]||!utils[_0x7df6('0x75')](_0x2dea05['query'][_0x7df6('0x74')])){throw new db[(_0x7df6('0x58'))]['ValidationError'](_0x7df6('0x77'));}return _0x54573d[_0x7df6('0x7e')+_['capitalize'](_0x2dea05[_0x7df6('0x33')]['channel']['toLowerCase']())+_0x7df6('0x7a')](_0x2dea05[_0x7df6('0x33')][_0x7df6('0x7c')]);}return null;})['then'](handleEntityNotFound(_0x5476f1,null))[_0x7df6('0x2a')](respondWithStatusCode(_0x5476f1,null))[_0x7df6('0x43')](handleError(_0x5476f1,null));};exports[_0x7df6('0x7f')]=function(_0x4ea01f,_0x15af53){var _0x4a2773=_[_0x7df6('0x80')](_0x4ea01f[_0x7df6('0x49')][_0x7df6('0x7c')])?_0x4ea01f['body'][_0x7df6('0x7c')]:[_0x4ea01f['body']['ids']];var _0x5a94e2=_0x4ea01f[_0x7df6('0x45')]['id'];return db[_0x7df6('0x2e')][_0x7df6('0x4f')]({'where':{'id':_0x5a94e2}})[_0x7df6('0x2a')](handleEntityNotFound(_0x15af53,null))['then'](function(_0x594281){if(_0x594281){var _0x1a29c0=['Voice',_0x7df6('0x81'),'Mail',_0x7df6('0x82'),_0x7df6('0x83'),_0x7df6('0x84'),_0x7df6('0x85')];return db['sequelize'][_0x7df6('0x86')](function(_0x4d0bcf){var _0x5c116c=_['map'](_0x1a29c0,function(_0x472b18){var _0x3e0e24={'attributes':['id','name']};if(_0x472b18===_0x7df6('0x87')){_0x3e0e24[_0x7df6('0x88')]={'attributes':[_0x7df6('0x89')]};}return _0x594281[_0x7df6('0x4b')+_0x472b18+'Queues'](_0x3e0e24)[_0x7df6('0x2a')](function(_0x22bf21){var _0x1e9870=_[_0x7df6('0x2d')](_0x22bf21,function(_0x1d5b34){var _0x196ee3=_[_0x7df6('0x2d')](_0x4a2773,function(_0x117000){var _0x81eb28={'where':{'UserId':_0x117000,[_0x472b18+'QueueId']:_0x1d5b34['id']},'transaction':_0x4d0bcf};if(_0x472b18===_0x7df6('0x87')){_0x81eb28[_0x7df6('0x1c')]={'penalty':_0x1d5b34[_0x7df6('0x8a')][_0x7df6('0x89')]};}return db['User'+_0x472b18+_0x7df6('0x8b')][_0x7df6('0x8c')](_0x81eb28)[_0x7df6('0x2a')](function(){socket[_0x7df6('0x8d')](_0x7df6('0x4a')+_0x472b18+_0x7df6('0x8e'),{'UserId':_0x117000,[_0x472b18+_0x7df6('0x8f')]:_0x1d5b34['id']});if(_0x472b18!==_0x7df6('0x87')){return;}return db[_0x7df6('0x90')][_0x7df6('0x91')]({'where':{'id':_0x4a2773,'online':0x1},'attributes':['id',_0x7df6('0x2b'),_0x7df6('0x92'),_0x7df6('0x93'),'interface'],'raw':!![]})[_0x7df6('0x2a')](function(_0x1d4d4a){var _0x1bec3c=_[_0x7df6('0x2d')](_0x1d4d4a,function(_0xa87b46){return db[_0x7df6('0x94')][_0x7df6('0x95')]({'membername':_0xa87b46[_0x7df6('0x2b')],'UserId':_0xa87b46['id'],'queue_name':_0x1d5b34[_0x7df6('0x2b')],'VoiceQueueId':_0x1d5b34['id'],'interface':_[_0x7df6('0x96')](_0xa87b46[_0x7df6('0x97')])?util[_0x7df6('0x98')](_0x7df6('0x99'),_0xa87b46[_0x7df6('0x2b')]):_0xa87b46['interface'],'paused':_0xa87b46[_0x7df6('0x93')]||![],'penalty':_0x1d5b34[_0x7df6('0x8a')][_0x7df6('0x89')]},{'transaction':_0x4d0bcf});});return Promise[_0x7df6('0x9a')](_0x1bec3c);});});});return Promise[_0x7df6('0x9a')](_0x196ee3);});return Promise[_0x7df6('0x9a')](_0x1e9870);})['then'](function(){return db['TeamVoicePrefix']['findOne']({'where':{'teamId':_0x5a94e2}})[_0x7df6('0x2a')](function(_0x5abf60){if(_0x5abf60){var _0x8b9bd4=_['map'](_0x4a2773,function(_0x247a56){db[_0x7df6('0x70')][_0x7df6('0x95')]({'UserId':_0x247a56,'VoicePrefixId':_0x5abf60[_0x7df6('0x9b')]});});return Promise['all'](_0x8b9bd4);}});});});return Promise[_0x7df6('0x9a')](_0x5c116c)[_0x7df6('0x2a')](function(){return _0x594281[_0x7df6('0x7f')](_0x4a2773,{'transaction':_0x4d0bcf})[_0x7df6('0x9c')](function(_0x5a38ad){return _0x5a38ad;});});});}})['then'](respondWithResult(_0x15af53,null))[_0x7df6('0x43')](handleError(_0x15af53,null));};exports[_0x7df6('0x9d')]=function(_0x2eae17,_0x50f338){var _0x310680=_['isArray'](_0x2eae17[_0x7df6('0x33')]['ids'])?_0x2eae17[_0x7df6('0x33')][_0x7df6('0x7c')]:[_0x2eae17[_0x7df6('0x33')]['ids']];var _0x183bea=_0x2eae17[_0x7df6('0x45')]['id'];return db[_0x7df6('0x2e')][_0x7df6('0x4f')]({'where':{'id':_0x183bea}})[_0x7df6('0x2a')](handleEntityNotFound(_0x50f338,null))[_0x7df6('0x2a')](function(_0x374d5c){if(_0x374d5c){var _0x4a1d4a=[_0x7df6('0x87'),_0x7df6('0x81'),_0x7df6('0x9e'),'Sms',_0x7df6('0x83'),'Openchannel',_0x7df6('0x85')];return db[_0x7df6('0x56')][_0x7df6('0x86')](function(_0x36258f){var _0x4966a9=_[_0x7df6('0x2d')](_0x4a1d4a,function(_0x21b7d1){var _0x5e3768={'attributes':['id',_0x7df6('0x2b')]};return _0x374d5c['get'+_0x21b7d1+_0x7df6('0x7a')](_0x5e3768)[_0x7df6('0x2a')](function(_0x3f439b){var _0x3b4bea=_[_0x7df6('0x2d')](_0x3f439b,function(_0x1dabc3){return _0x1dabc3[_0x7df6('0x9d')](_0x310680,{'transaction':_0x36258f})[_0x7df6('0x2a')](function(){var _0xe7c5ae=_[_0x7df6('0x2d')](_0x310680,function(_0x5cc463){socket[_0x7df6('0x8d')]('user'+_0x21b7d1+'Queue:remove',{'UserId':Number(_0x5cc463),[_0x21b7d1+_0x7df6('0x8f')]:_0x1dabc3['id']});if(_0x21b7d1!==_0x7df6('0x87')){return;}return db['UserVoiceQueueRt'][_0x7df6('0x55')]({'where':{'VoiceQueueId':_0x1dabc3['id'],'UserId':_0x5cc463},'transaction':_0x36258f});});return Promise[_0x7df6('0x9a')](_0xe7c5ae);});});return Promise['all'](_0x3b4bea);});});return Promise['all'](_0x4966a9)[_0x7df6('0x2a')](function(){return _0x374d5c[_0x7df6('0x9d')](_0x310680,{'transaction':_0x36258f});})[_0x7df6('0x2a')](function(){return db[_0x7df6('0x9f')]['findOne']({'where':{'teamId':_0x183bea}})[_0x7df6('0x2a')](function(_0x157762){if(_0x157762){var _0x2100ed=_[_0x7df6('0x2d')](_0x310680,function(_0x32ca9c){db[_0x7df6('0x70')][_0x7df6('0x55')]({'where':{'UserId':_0x32ca9c,'VoicePrefixId':_0x157762[_0x7df6('0x9b')]}});});return Promise[_0x7df6('0x9a')](_0x2100ed);}});});});}})[_0x7df6('0x2a')](respondWithStatusCode(_0x50f338,null))[_0x7df6('0x43')](handleError(_0x50f338,null));};exports[_0x7df6('0xa0')]=function(_0x45975f,_0x538541,_0x5af11d){var _0x13ebe7={};var _0x4fb9a4={};var _0x11bf31;var _0x258e3f;return db[_0x7df6('0x2e')][_0x7df6('0x73')]({'where':{'id':_0x45975f[_0x7df6('0x45')]['id']}})[_0x7df6('0x2a')](handleEntityNotFound(_0x538541,null))[_0x7df6('0x2a')](function(_0x12241e){if(_0x12241e){_0x11bf31=_0x12241e;_0x4fb9a4['model']=_[_0x7df6('0x46')](db[_0x7df6('0x90')]['rawAttributes']);_0x4fb9a4[_0x7df6('0x33')]=_[_0x7df6('0x46')](_0x45975f[_0x7df6('0x33')]);_0x4fb9a4[_0x7df6('0x47')]=_[_0x7df6('0x35')](_0x4fb9a4['model'],_0x4fb9a4['query']);_0x13ebe7['attributes']=_[_0x7df6('0x35')](_0x4fb9a4[_0x7df6('0x32')],qs[_0x7df6('0x36')](_0x45975f[_0x7df6('0x33')][_0x7df6('0x36')]));_0x13ebe7[_0x7df6('0x34')]=_0x13ebe7['attributes']['length']?_0x13ebe7['attributes']:_0x4fb9a4[_0x7df6('0x32')];_0x13ebe7[_0x7df6('0x39')]=qs[_0x7df6('0x3a')](_0x45975f[_0x7df6('0x33')][_0x7df6('0x3a')]);_0x13ebe7[_0x7df6('0x3d')]=qs[_0x7df6('0x47')](_[_0x7df6('0x3b')](_0x45975f['query'],_0x4fb9a4[_0x7df6('0x47')]));if(_0x45975f['query'][_0x7df6('0x3c')]){_0x13ebe7['where']=_[_0x7df6('0x3e')](_0x13ebe7[_0x7df6('0x3d')],{'$or':_[_0x7df6('0x2d')](_0x13ebe7[_0x7df6('0x34')],function(_0x34b5e5){var _0x46affc={};_0x46affc[_0x34b5e5]={'$like':'%'+_0x45975f['query'][_0x7df6('0x3c')]+'%'};return _0x46affc;})});}_0x13ebe7=_['merge']({},_0x13ebe7,_0x45975f[_0x7df6('0x40')]);return _0x11bf31['getAgents'](_0x13ebe7);}})['then'](function(_0x3eea3c){if(_0x3eea3c){_0x258e3f=_0x3eea3c[_0x7df6('0x37')];if(!_0x45975f[_0x7df6('0x33')][_0x7df6('0x38')]('nolimit')){_0x13ebe7['limit']=qs[_0x7df6('0x23')](_0x45975f[_0x7df6('0x33')][_0x7df6('0x23')]);_0x13ebe7[_0x7df6('0x24')]=qs[_0x7df6('0x24')](_0x45975f[_0x7df6('0x33')][_0x7df6('0x24')]);}return _0x11bf31[_0x7df6('0xa0')](_0x13ebe7);}})[_0x7df6('0x2a')](function(_0x2db82a){if(_0x2db82a){return _0x2db82a?{'count':_0x258e3f,'rows':_0x2db82a}:null;}})['then'](respondWithResult(_0x538541,null))[_0x7df6('0x43')](handleError(_0x538541,null));};
\ No newline at end of file
+var _0x0b06=['end','json','undefined','count','offset','limit','set','Content-Range','apply','reject','update','then','error','stack','send','index','map','Team','type','key','model','name','keys','query','filters','intersection','attributes','fields','length','order','sort','where','pick','filter','VIRTUAL','merge','options','includeAll','findAll','rows','catch','show','params','rawAttributes','include','find','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','Teams','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','destroy','transaction','sequelize','Sequelize','SELECT','UserId','QueryTypes','SELECT\x20MailQueueId\x20FROM\x20team_has_mail_queues\x20WHERE\x20TeamId\x20=\x20','MailQueueId','UserMailQueue','UserSmsQueue','SELECT\x20ChatQueueId\x20FROM\x20team_has_chat_queues\x20WHERE\x20TeamId\x20=\x20','UserChatQueue','SELECT\x20FaxQueueId\x20FROM\x20team_has_fax_queues\x20WHERE\x20TeamId\x20=\x20','FaxQueueId','UserFaxQueue','OpenchannelQueueId','UserOpenchannelQueue','SELECT\x20WhatsappQueueId\x20FROM\x20team_has_whatsapp_queues\x20WHERE\x20TeamId\x20=\x20','WhatsappQueueId','UserWhatsappQueue','TeamVoicePrefix','VoicePrefixId','getQueues','channel','isValidChannel','Unknown\x20channel','capitalize','toLowerCase','Queue','addQueues','add','Queues','removeQueues','ValidationError','remove','ids','addAgents','isArray','Chat','Mail','Sms','Fax','Openchannel','Whatsapp','Voice','through','QueueId','TeamVoiceQueue','penalty','User','findOrCreate','emit','Queue:save','online','voicePause','interface','upsert','isNil','format','SIP/%s','all','UserVoicePrefix','spread','removeAgents','Queue:remove','UserVoiceQueueRt','findOne','getAgents','nolimit','rimraf','zip-dir','request-promise','moment','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./team.socket','sendStatus','status'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x0b06,0x1c0));var _0x60b0=function(_0x3cfa6e,_0x44d82f){_0x3cfa6e=_0x3cfa6e-0x0;var _0xdb96d=_0x0b06[_0x3cfa6e];return _0xdb96d;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x60b0('0x0'));var zipdir=require(_0x60b0('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x60b0('0x2'));var moment=require(_0x60b0('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x60b0('0x4'));var util=require(_0x60b0('0x5'));var path=require(_0x60b0('0x6'));var sox=require(_0x60b0('0x7'));var csv=require(_0x60b0('0x8'));var ejs=require(_0x60b0('0x9'));var fs=require('fs');var fs_extra=require(_0x60b0('0xa'));var _=require(_0x60b0('0xb'));var squel=require(_0x60b0('0xc'));var crypto=require(_0x60b0('0xd'));var jsforce=require(_0x60b0('0xe'));var deskjs=require(_0x60b0('0xf'));var toCsv=require('to-csv');var querystring=require(_0x60b0('0x10'));var Papa=require(_0x60b0('0x11'));var Redis=require('ioredis');var authService=require(_0x60b0('0x12'));var qs=require(_0x60b0('0x13'));var as=require(_0x60b0('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x60b0('0x15'))(_0x60b0('0x16'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x60b0('0x17'));var db=require(_0x60b0('0x18'))['db'];config[_0x60b0('0x19')]=_[_0x60b0('0x1a')](config[_0x60b0('0x19')],{'host':_0x60b0('0x1b'),'port':0x18eb});var socket=require(_0x60b0('0x1c'))(new Redis(config[_0x60b0('0x19')]));require(_0x60b0('0x1d'))['register'](socket);function respondWithStatusCode(_0x533219,_0xcea236){_0xcea236=_0xcea236||0xcc;return function(_0x526fd1){if(_0x526fd1){return _0x533219[_0x60b0('0x1e')](_0xcea236);}return _0x533219[_0x60b0('0x1f')](_0xcea236)[_0x60b0('0x20')]();};}function respondWithResult(_0x57c352,_0x519b2d){_0x519b2d=_0x519b2d||0xc8;return function(_0x19abf9){if(_0x19abf9){return _0x57c352[_0x60b0('0x1f')](_0x519b2d)[_0x60b0('0x21')](_0x19abf9);}};}function respondWithFilteredResult(_0x4aa967,_0xf27f48){return function(_0x31bf09){if(_0x31bf09){var _0x357a29=typeof _0xf27f48['offset']==='undefined'&&typeof _0xf27f48['limit']===_0x60b0('0x22');var _0x3e0a52=_0x31bf09[_0x60b0('0x23')];var _0xb3631c=_0x357a29?0x0:_0xf27f48[_0x60b0('0x24')];var _0x4beb70=_0x357a29?_0x31bf09[_0x60b0('0x23')]:_0xf27f48[_0x60b0('0x24')]+_0xf27f48[_0x60b0('0x25')];var _0x241248;if(_0x4beb70>=_0x3e0a52){_0x4beb70=_0x3e0a52;_0x241248=0xc8;}else{_0x241248=0xce;}_0x4aa967['status'](_0x241248);return _0x4aa967[_0x60b0('0x26')](_0x60b0('0x27'),_0xb3631c+'-'+_0x4beb70+'/'+_0x3e0a52)[_0x60b0('0x21')](_0x31bf09);}return null;};}function patchUpdates(_0x2456e8){return function(_0x16ca60){try{jsonpatch[_0x60b0('0x28')](_0x16ca60,_0x2456e8,!![]);}catch(_0xa9a1e4){return BPromise[_0x60b0('0x29')](_0xa9a1e4);}return _0x16ca60['save']();};}function saveUpdates(_0x2838f3,_0x2b77cc){return function(_0x539395){if(_0x539395){return _0x539395[_0x60b0('0x2a')](_0x2838f3)[_0x60b0('0x2b')](function(_0x2426ce){return _0x2426ce;});}return null;};}function handleEntityNotFound(_0x4c8a37,_0x1a08d2){return function(_0x53ccb3){if(!_0x53ccb3){_0x4c8a37[_0x60b0('0x1e')](0x194);}return _0x53ccb3;};}function handleError(_0x2d143b,_0x4952c0){_0x4952c0=_0x4952c0||0x1f4;return function(_0x4e9483){logger[_0x60b0('0x2c')](_0x4e9483[_0x60b0('0x2d')]);if(_0x4e9483['name']){delete _0x4e9483['name'];}_0x2d143b['status'](_0x4952c0)[_0x60b0('0x2e')](_0x4e9483);};}exports[_0x60b0('0x2f')]=function(_0x4ffbb4,_0x4ed7b0){var _0x2f9c5b={},_0x28f1fe={},_0x373bc6={'count':0x0,'rows':[]};var _0x286e04=_[_0x60b0('0x30')](db[_0x60b0('0x31')]['rawAttributes'],function(_0x24b2d1){return{'name':_0x24b2d1['fieldName'],'type':_0x24b2d1[_0x60b0('0x32')][_0x60b0('0x33')]};});_0x28f1fe[_0x60b0('0x34')]=_[_0x60b0('0x30')](_0x286e04,_0x60b0('0x35'));_0x28f1fe['query']=_[_0x60b0('0x36')](_0x4ffbb4[_0x60b0('0x37')]);_0x28f1fe[_0x60b0('0x38')]=_[_0x60b0('0x39')](_0x28f1fe[_0x60b0('0x34')],_0x28f1fe[_0x60b0('0x37')]);_0x2f9c5b[_0x60b0('0x3a')]=_[_0x60b0('0x39')](_0x28f1fe[_0x60b0('0x34')],qs[_0x60b0('0x3b')](_0x4ffbb4[_0x60b0('0x37')]['fields']));_0x2f9c5b[_0x60b0('0x3a')]=_0x2f9c5b[_0x60b0('0x3a')][_0x60b0('0x3c')]?_0x2f9c5b[_0x60b0('0x3a')]:_0x28f1fe[_0x60b0('0x34')];if(!_0x4ffbb4[_0x60b0('0x37')]['hasOwnProperty']('nolimit')){_0x2f9c5b[_0x60b0('0x25')]=qs['limit'](_0x4ffbb4[_0x60b0('0x37')]['limit']);_0x2f9c5b[_0x60b0('0x24')]=qs[_0x60b0('0x24')](_0x4ffbb4[_0x60b0('0x37')][_0x60b0('0x24')]);}_0x2f9c5b[_0x60b0('0x3d')]=qs[_0x60b0('0x3e')](_0x4ffbb4[_0x60b0('0x37')]['sort']);_0x2f9c5b[_0x60b0('0x3f')]=qs[_0x60b0('0x38')](_[_0x60b0('0x40')](_0x4ffbb4[_0x60b0('0x37')],_0x28f1fe[_0x60b0('0x38')]),_0x286e04);if(_0x4ffbb4[_0x60b0('0x37')][_0x60b0('0x41')]){_0x2f9c5b[_0x60b0('0x3f')]=_['merge'](_0x2f9c5b[_0x60b0('0x3f')],{'$or':_[_0x60b0('0x30')](_0x286e04,function(_0x411fc5){if(_0x411fc5[_0x60b0('0x32')]!==_0x60b0('0x42')){var _0x55f88a={};_0x55f88a[_0x411fc5[_0x60b0('0x35')]]={'$like':'%'+_0x4ffbb4['query']['filter']+'%'};return _0x55f88a;}})});}_0x2f9c5b=_[_0x60b0('0x43')]({},_0x2f9c5b,_0x4ffbb4[_0x60b0('0x44')]);var _0x1404b1={'where':_0x2f9c5b[_0x60b0('0x3f')]};return db['Team']['count'](_0x1404b1)[_0x60b0('0x2b')](function(_0x3157b5){_0x373bc6[_0x60b0('0x23')]=_0x3157b5;if(_0x4ffbb4[_0x60b0('0x37')][_0x60b0('0x45')]){_0x2f9c5b['include']=[{'all':!![]}];}return db['Team'][_0x60b0('0x46')](_0x2f9c5b);})[_0x60b0('0x2b')](function(_0x116387){_0x373bc6[_0x60b0('0x47')]=_0x116387;return _0x373bc6;})[_0x60b0('0x2b')](respondWithFilteredResult(_0x4ed7b0,_0x2f9c5b))[_0x60b0('0x48')](handleError(_0x4ed7b0,null));};exports[_0x60b0('0x49')]=function(_0x45af35,_0x5d37c7){var _0x4c62ae={'raw':![],'where':{'id':_0x45af35[_0x60b0('0x4a')]['id']}},_0x1c7376={};_0x1c7376[_0x60b0('0x34')]=_[_0x60b0('0x36')](db[_0x60b0('0x31')][_0x60b0('0x4b')]);_0x1c7376[_0x60b0('0x37')]=_[_0x60b0('0x36')](_0x45af35[_0x60b0('0x37')]);_0x1c7376[_0x60b0('0x38')]=_[_0x60b0('0x39')](_0x1c7376[_0x60b0('0x34')],_0x1c7376[_0x60b0('0x37')]);_0x4c62ae['attributes']=_['intersection'](_0x1c7376[_0x60b0('0x34')],qs[_0x60b0('0x3b')](_0x45af35[_0x60b0('0x37')][_0x60b0('0x3b')]));_0x4c62ae[_0x60b0('0x3a')]=_0x4c62ae[_0x60b0('0x3a')]['length']?_0x4c62ae['attributes']:_0x1c7376[_0x60b0('0x34')];if(_0x45af35[_0x60b0('0x37')][_0x60b0('0x45')]){_0x4c62ae[_0x60b0('0x4c')]=[{'all':!![]}];}_0x4c62ae=_[_0x60b0('0x43')]({},_0x4c62ae,_0x45af35['options']);return db['Team'][_0x60b0('0x4d')](_0x4c62ae)[_0x60b0('0x2b')](handleEntityNotFound(_0x5d37c7,null))['then'](respondWithResult(_0x5d37c7,null))[_0x60b0('0x48')](handleError(_0x5d37c7,null));};exports['create']=function(_0x50a290,_0x4591be){return db[_0x60b0('0x31')][_0x60b0('0x4e')](_0x50a290[_0x60b0('0x4f')],{})[_0x60b0('0x2b')](function(_0x5d6c80){var _0x1e7982=_0x50a290[_0x60b0('0x50')][_0x60b0('0x51')]({'plain':!![]});if(!_0x1e7982)throw new Error(_0x60b0('0x52'));if(_0x1e7982[_0x60b0('0x53')]===_0x60b0('0x50')){var _0x53f88f=_0x5d6c80[_0x60b0('0x51')]({'plain':!![]});var _0x25fd14=_0x60b0('0x54');return db[_0x60b0('0x55')][_0x60b0('0x4d')]({'where':{'name':_0x25fd14,'userProfileId':_0x1e7982[_0x60b0('0x56')]},'raw':!![]})[_0x60b0('0x2b')](function(_0x57fbb3){if(_0x57fbb3&&_0x57fbb3[_0x60b0('0x57')]===0x0){return db[_0x60b0('0x58')][_0x60b0('0x4e')]({'name':_0x53f88f[_0x60b0('0x35')],'resourceId':_0x53f88f['id'],'type':_0x57fbb3[_0x60b0('0x35')],'sectionId':_0x57fbb3['id']},{})[_0x60b0('0x2b')](function(){return _0x5d6c80;});}else{return _0x5d6c80;}})['catch'](function(_0x21ff71){logger[_0x60b0('0x2c')](_0x60b0('0x59'),_0x21ff71);throw _0x21ff71;});}return _0x5d6c80;})['then'](respondWithResult(_0x4591be,0xc9))['catch'](handleError(_0x4591be,null));};exports[_0x60b0('0x2a')]=function(_0x4bd64e,_0x599bf1){if(_0x4bd64e[_0x60b0('0x4f')]['id']){delete _0x4bd64e[_0x60b0('0x4f')]['id'];}return db[_0x60b0('0x31')][_0x60b0('0x4d')]({'where':{'id':_0x4bd64e[_0x60b0('0x4a')]['id']}})[_0x60b0('0x2b')](handleEntityNotFound(_0x599bf1,null))['then'](saveUpdates(_0x4bd64e[_0x60b0('0x4f')],null))[_0x60b0('0x2b')](respondWithResult(_0x599bf1,null))['catch'](handleError(_0x599bf1,null));};exports[_0x60b0('0x5a')]=function(_0x5c69fc,_0x26046b){var _0x3e996a=_0x5c69fc[_0x60b0('0x4a')]['id'];var _0x4a4b93=[];return db['sequelize'][_0x60b0('0x5b')](function(_0x11db20){var _0x3a0d39='SELECT\x20UserId\x20FROM\x20user_has_teams\x20WHERE\x20TeamId\x20=\x20'+_0x3e996a;return db[_0x60b0('0x5c')][_0x60b0('0x37')](_0x3a0d39,{'type':db[_0x60b0('0x5d')]['QueryTypes'][_0x60b0('0x5e')],'raw':!![],'transaction':_0x11db20})['then'](function(_0x1e7f72){_0x4a4b93=_[_0x60b0('0x30')](_0x1e7f72,function(_0x200f6f){return Number(_0x200f6f[_0x60b0('0x5f')]);});})[_0x60b0('0x2b')](function(){var _0x1f3a24='SELECT\x20VoiceQueueId\x20FROM\x20team_has_voice_queues\x20WHERE\x20TeamId\x20=\x20'+_0x3e996a;return db[_0x60b0('0x5c')][_0x60b0('0x37')](_0x1f3a24,{'type':db[_0x60b0('0x5d')][_0x60b0('0x60')][_0x60b0('0x5e')],'raw':!![],'transaction':_0x11db20});})[_0x60b0('0x2b')](function(_0x1fc7be){var _0x1e3f54=_[_0x60b0('0x30')](_0x1fc7be,function(_0x107aee){return Number(_0x107aee['VoiceQueueId']);});return db['UserVoiceQueue'][_0x60b0('0x5a')]({'where':{'UserId':{'$in':_0x4a4b93},'VoiceQueueId':{'$in':_0x1e3f54}},'transaction':_0x11db20});})[_0x60b0('0x2b')](function(){var _0x51baaf=_0x60b0('0x61')+_0x3e996a;return db[_0x60b0('0x5c')]['query'](_0x51baaf,{'type':db[_0x60b0('0x5d')][_0x60b0('0x60')][_0x60b0('0x5e')],'raw':!![],'transaction':_0x11db20});})[_0x60b0('0x2b')](function(_0xb989e5){var _0x4f8b95=_[_0x60b0('0x30')](_0xb989e5,function(_0xe5122a){return Number(_0xe5122a[_0x60b0('0x62')]);});return db[_0x60b0('0x63')]['destroy']({'where':{'UserId':{'$in':_0x4a4b93},'MailQueueId':{'$in':_0x4f8b95}},'transaction':_0x11db20});})['then'](function(){var _0x760f95='SELECT\x20SmsQueueId\x20FROM\x20team_has_sms_queues\x20WHERE\x20TeamId\x20=\x20'+_0x3e996a;return db['sequelize']['query'](_0x760f95,{'type':db[_0x60b0('0x5d')][_0x60b0('0x60')]['SELECT'],'raw':!![],'transaction':_0x11db20});})['then'](function(_0x60405a){var _0x193c8c=_[_0x60b0('0x30')](_0x60405a,function(_0x10b822){return Number(_0x10b822['SmsQueueId']);});return db[_0x60b0('0x64')]['destroy']({'where':{'UserId':{'$in':_0x4a4b93},'SmsQueueId':{'$in':_0x193c8c}},'transaction':_0x11db20});})[_0x60b0('0x2b')](function(){var _0x55f258=_0x60b0('0x65')+_0x3e996a;return db[_0x60b0('0x5c')][_0x60b0('0x37')](_0x55f258,{'type':db['Sequelize'][_0x60b0('0x60')][_0x60b0('0x5e')],'raw':!![],'transaction':_0x11db20});})[_0x60b0('0x2b')](function(_0x9def1f){var _0x188e94=_[_0x60b0('0x30')](_0x9def1f,function(_0x175353){return Number(_0x175353['ChatQueueId']);});return db[_0x60b0('0x66')]['destroy']({'where':{'UserId':{'$in':_0x4a4b93},'ChatQueueId':{'$in':_0x188e94}},'transaction':_0x11db20});})[_0x60b0('0x2b')](function(){var _0x1f93c5=_0x60b0('0x67')+_0x3e996a;return db[_0x60b0('0x5c')][_0x60b0('0x37')](_0x1f93c5,{'type':db[_0x60b0('0x5d')][_0x60b0('0x60')][_0x60b0('0x5e')],'raw':!![],'transaction':_0x11db20});})[_0x60b0('0x2b')](function(_0xa86f90){var _0x27a80a=_['map'](_0xa86f90,function(_0x11591f){return Number(_0x11591f[_0x60b0('0x68')]);});return db[_0x60b0('0x69')][_0x60b0('0x5a')]({'where':{'UserId':{'$in':_0x4a4b93},'FaxQueueId':{'$in':_0x27a80a}},'transaction':_0x11db20});})[_0x60b0('0x2b')](function(){var _0xa2eef2='SELECT\x20OpenchannelQueueId\x20FROM\x20team_has_openchannel_queues\x20WHERE\x20TeamId\x20=\x20'+_0x3e996a;return db[_0x60b0('0x5c')][_0x60b0('0x37')](_0xa2eef2,{'type':db['Sequelize'][_0x60b0('0x60')][_0x60b0('0x5e')],'raw':!![],'transaction':_0x11db20});})[_0x60b0('0x2b')](function(_0x920376){var _0x10e959=_[_0x60b0('0x30')](_0x920376,function(_0x29f67d){return Number(_0x29f67d[_0x60b0('0x6a')]);});return db[_0x60b0('0x6b')][_0x60b0('0x5a')]({'where':{'UserId':{'$in':_0x4a4b93},'OpenchannelQueueId':{'$in':_0x10e959}},'transaction':_0x11db20});})[_0x60b0('0x2b')](function(){var _0x178d9d=_0x60b0('0x6c')+_0x3e996a;return db[_0x60b0('0x5c')][_0x60b0('0x37')](_0x178d9d,{'type':db[_0x60b0('0x5d')]['QueryTypes'][_0x60b0('0x5e')],'raw':!![],'transaction':_0x11db20});})[_0x60b0('0x2b')](function(_0x51a6b4){var _0x1fa9a5=_[_0x60b0('0x30')](_0x51a6b4,function(_0x2e1174){return Number(_0x2e1174[_0x60b0('0x6d')]);});return db[_0x60b0('0x6e')]['destroy']({'where':{'UserId':{'$in':_0x4a4b93},'WhatsappQueueId':{'$in':_0x1fa9a5}},'transaction':_0x11db20});})['then'](function(){return db[_0x60b0('0x6f')]['find']({'where':{'TeamId':_0x3e996a}});})[_0x60b0('0x2b')](function(_0x3385d7){if(_0x3385d7===null){return;}return db['UserVoicePrefix'][_0x60b0('0x5a')]({'where':{'UserId':{'$in':_0x4a4b93},'VoicePrefixId':_0x3385d7[_0x60b0('0x70')]},'transaction':_0x11db20});})[_0x60b0('0x2b')](function(){return db['Team'][_0x60b0('0x5a')]({'where':{'id':_0x3e996a},'cascade':!![],'transaction':_0x11db20});})[_0x60b0('0x2b')](function(_0x4890d5){if(_0x4890d5===0x0){_0x26046b[_0x60b0('0x1e')](0x194);}else{return db[_0x60b0('0x58')][_0x60b0('0x5a')]({'where':{'type':_0x60b0('0x54'),'resourceId':_0x3e996a},'cascade':!![],'transaction':_0x11db20})[_0x60b0('0x2b')](function(){_0x26046b['status'](0xcc)['end']();});}})[_0x60b0('0x48')](function(_0x468f96){_0x26046b[_0x60b0('0x1f')](0x1f4)[_0x60b0('0x2e')](_0x468f96);});});};exports[_0x60b0('0x71')]=function(_0x594e44,_0xc6c06d,_0x450a96){return db[_0x60b0('0x31')]['findOne']({'where':{'id':_0x594e44[_0x60b0('0x4a')]['id']}})['then'](handleEntityNotFound(_0xc6c06d,null))[_0x60b0('0x2b')](function(_0x4ef94d){if(!_0x594e44[_0x60b0('0x37')][_0x60b0('0x72')]||!utils[_0x60b0('0x73')](_0x594e44[_0x60b0('0x37')]['channel'])){throw new db['Sequelize']['ValidationError'](_0x60b0('0x74'));}var _0x561808={};var _0xc9b351={};_0xc9b351[_0x60b0('0x34')]=_[_0x60b0('0x36')](db[_[_0x60b0('0x75')](_0x594e44['query']['channel'][_0x60b0('0x76')]())+_0x60b0('0x77')][_0x60b0('0x4b')]);_0xc9b351[_0x60b0('0x37')]=_[_0x60b0('0x36')](_0x594e44[_0x60b0('0x37')]);_0xc9b351[_0x60b0('0x38')]=_['intersection'](_0xc9b351[_0x60b0('0x34')],_0xc9b351[_0x60b0('0x37')]);_0x561808[_0x60b0('0x3a')]=_[_0x60b0('0x39')](_0xc9b351[_0x60b0('0x34')],qs[_0x60b0('0x3b')](_0x594e44[_0x60b0('0x37')][_0x60b0('0x3b')]));_0x561808[_0x60b0('0x3a')]=_0x561808[_0x60b0('0x3a')][_0x60b0('0x3c')]?_0x561808['attributes']:_0xc9b351[_0x60b0('0x34')];_0x561808['limit']=qs['limit'](_0x594e44['query'][_0x60b0('0x25')]);_0x561808[_0x60b0('0x24')]=qs[_0x60b0('0x24')](_0x594e44[_0x60b0('0x37')][_0x60b0('0x24')]);_0x561808[_0x60b0('0x3d')]=qs[_0x60b0('0x3e')](_0x594e44[_0x60b0('0x37')][_0x60b0('0x3e')]);_0x561808['where']=qs[_0x60b0('0x38')](_['pick'](_0x594e44[_0x60b0('0x37')],_0xc9b351[_0x60b0('0x38')]));_0x561808=_[_0x60b0('0x43')]({},_0x561808,_0x594e44[_0x60b0('0x44')]);return _0x4ef94d[_0x60b0('0x51')+_[_0x60b0('0x75')](_0x594e44[_0x60b0('0x37')][_0x60b0('0x72')]['toLowerCase']())+'Queues'](_0x561808);})[_0x60b0('0x2b')](respondWithResult(_0xc6c06d,null))[_0x60b0('0x48')](handleError(_0xc6c06d,null));};exports[_0x60b0('0x78')]=function(_0x2a3365,_0xc97f3c,_0x1fe955){return db[_0x60b0('0x31')]['findOne']({'where':{'id':_0x2a3365[_0x60b0('0x4a')]['id']}})[_0x60b0('0x2b')](function(_0x531bdc){if(_0x531bdc){if(!_0x2a3365['body'][_0x60b0('0x72')]||!utils[_0x60b0('0x73')](_0x2a3365['body'][_0x60b0('0x72')])){throw new db['Sequelize']['ValidationError'](_0x60b0('0x74'));}return _0x531bdc[_0x60b0('0x79')+_[_0x60b0('0x75')](_0x2a3365['body']['channel'][_0x60b0('0x76')]())+_0x60b0('0x7a')](_0x2a3365[_0x60b0('0x4f')]['ids']);}return null;})[_0x60b0('0x2b')](handleEntityNotFound(_0xc97f3c,null))[_0x60b0('0x2b')](respondWithStatusCode(_0xc97f3c,null))[_0x60b0('0x48')](handleError(_0xc97f3c,null));};exports[_0x60b0('0x7b')]=function(_0x434453,_0x439013,_0x4593cd){return db[_0x60b0('0x31')]['findOne']({'where':{'id':_0x434453['params']['id']}})[_0x60b0('0x2b')](function(_0x1c0c13){if(_0x1c0c13){if(!_0x434453[_0x60b0('0x37')][_0x60b0('0x72')]||!utils[_0x60b0('0x73')](_0x434453[_0x60b0('0x37')][_0x60b0('0x72')])){throw new db['Sequelize'][(_0x60b0('0x7c'))](_0x60b0('0x74'));}return _0x1c0c13[_0x60b0('0x7d')+_[_0x60b0('0x75')](_0x434453[_0x60b0('0x37')]['channel'][_0x60b0('0x76')]())+'Queues'](_0x434453['query'][_0x60b0('0x7e')]);}return null;})['then'](handleEntityNotFound(_0x439013,null))[_0x60b0('0x2b')](respondWithStatusCode(_0x439013,null))[_0x60b0('0x48')](handleError(_0x439013,null));};exports[_0x60b0('0x7f')]=function(_0x4aed13,_0x3c4c08){var _0xb03f1f=_[_0x60b0('0x80')](_0x4aed13[_0x60b0('0x4f')][_0x60b0('0x7e')])?_0x4aed13[_0x60b0('0x4f')][_0x60b0('0x7e')]:[_0x4aed13[_0x60b0('0x4f')][_0x60b0('0x7e')]];var _0x42b477=_0x4aed13[_0x60b0('0x4a')]['id'];return db[_0x60b0('0x31')][_0x60b0('0x4d')]({'where':{'id':_0x42b477}})[_0x60b0('0x2b')](handleEntityNotFound(_0x3c4c08,null))[_0x60b0('0x2b')](function(_0x5bf80d){if(_0x5bf80d){var _0x59140b=['Voice',_0x60b0('0x81'),_0x60b0('0x82'),_0x60b0('0x83'),_0x60b0('0x84'),_0x60b0('0x85'),_0x60b0('0x86')];return db[_0x60b0('0x5c')][_0x60b0('0x5b')](function(_0x3d203c){var _0x3c75d6=_[_0x60b0('0x30')](_0x59140b,function(_0x421659){var _0xa5c3d6={'attributes':['id',_0x60b0('0x35')]};if(_0x421659===_0x60b0('0x87')){_0xa5c3d6[_0x60b0('0x88')]={'attributes':['penalty']};}return _0x5bf80d[_0x60b0('0x51')+_0x421659+_0x60b0('0x7a')](_0xa5c3d6)['then'](function(_0x5ec821){var _0x25daf2=_[_0x60b0('0x30')](_0x5ec821,function(_0x5ca09d){var _0x47bbea=_[_0x60b0('0x30')](_0xb03f1f,function(_0x1e4317){var _0xd5d327={'where':{'UserId':_0x1e4317,[_0x421659+_0x60b0('0x89')]:_0x5ca09d['id']},'transaction':_0x3d203c};if(_0x421659==='Voice'){_0xd5d327[_0x60b0('0x1a')]={'penalty':_0x5ca09d[_0x60b0('0x8a')][_0x60b0('0x8b')]};}return db[_0x60b0('0x8c')+_0x421659+_0x60b0('0x77')][_0x60b0('0x8d')](_0xd5d327)[_0x60b0('0x2b')](function(){socket[_0x60b0('0x8e')](_0x60b0('0x50')+_0x421659+_0x60b0('0x8f'),{'UserId':_0x1e4317,[_0x421659+_0x60b0('0x89')]:_0x5ca09d['id']});if(_0x421659!==_0x60b0('0x87')){return;}return db[_0x60b0('0x8c')][_0x60b0('0x46')]({'where':{'id':_0xb03f1f,'online':0x1},'attributes':['id',_0x60b0('0x35'),_0x60b0('0x90'),_0x60b0('0x91'),_0x60b0('0x92')],'raw':!![]})['then'](function(_0x2eac4b){var _0x5c31b2=_['map'](_0x2eac4b,function(_0x5d662b){return db['UserVoiceQueueRt'][_0x60b0('0x93')]({'membername':_0x5d662b['name'],'UserId':_0x5d662b['id'],'queue_name':_0x5ca09d[_0x60b0('0x35')],'VoiceQueueId':_0x5ca09d['id'],'interface':_[_0x60b0('0x94')](_0x5d662b[_0x60b0('0x92')])?util[_0x60b0('0x95')](_0x60b0('0x96'),_0x5d662b[_0x60b0('0x35')]):_0x5d662b['interface'],'paused':_0x5d662b['voicePause']||![],'penalty':_0x5ca09d[_0x60b0('0x8a')][_0x60b0('0x8b')]},{'transaction':_0x3d203c});});return Promise[_0x60b0('0x97')](_0x5c31b2);});});});return Promise[_0x60b0('0x97')](_0x47bbea);});return Promise['all'](_0x25daf2);})[_0x60b0('0x2b')](function(){return db[_0x60b0('0x6f')]['findOne']({'where':{'teamId':_0x42b477}})[_0x60b0('0x2b')](function(_0x5b147e){if(_0x5b147e){var _0x3d44b2=_['map'](_0xb03f1f,function(_0x2aff42){db[_0x60b0('0x98')][_0x60b0('0x93')]({'UserId':_0x2aff42,'VoicePrefixId':_0x5b147e['VoicePrefixId']});});return Promise['all'](_0x3d44b2);}});});});return Promise[_0x60b0('0x97')](_0x3c75d6)[_0x60b0('0x2b')](function(){return _0x5bf80d[_0x60b0('0x7f')](_0xb03f1f,{'transaction':_0x3d203c})[_0x60b0('0x99')](function(_0x12db81){return _0x12db81;});});});}})['then'](respondWithResult(_0x3c4c08,null))[_0x60b0('0x48')](handleError(_0x3c4c08,null));};exports[_0x60b0('0x9a')]=function(_0x2fd226,_0x1a8cca){var _0x5c9daf=_[_0x60b0('0x80')](_0x2fd226[_0x60b0('0x37')][_0x60b0('0x7e')])?_0x2fd226[_0x60b0('0x37')][_0x60b0('0x7e')]:[_0x2fd226['query'][_0x60b0('0x7e')]];var _0x4c16dd=_0x2fd226['params']['id'];return db[_0x60b0('0x31')][_0x60b0('0x4d')]({'where':{'id':_0x4c16dd}})[_0x60b0('0x2b')](handleEntityNotFound(_0x1a8cca,null))[_0x60b0('0x2b')](function(_0x1bfbbf){if(_0x1bfbbf){var _0x64f7d0=['Voice',_0x60b0('0x81'),'Mail',_0x60b0('0x83'),_0x60b0('0x84'),_0x60b0('0x85'),_0x60b0('0x86')];return db[_0x60b0('0x5c')][_0x60b0('0x5b')](function(_0x363577){var _0x25b1b0=_[_0x60b0('0x30')](_0x64f7d0,function(_0x521912){var _0x54a461={'attributes':['id',_0x60b0('0x35')]};return _0x1bfbbf[_0x60b0('0x51')+_0x521912+_0x60b0('0x7a')](_0x54a461)[_0x60b0('0x2b')](function(_0xf1fc40){var _0x387779=_[_0x60b0('0x30')](_0xf1fc40,function(_0x208b0e){return _0x208b0e[_0x60b0('0x9a')](_0x5c9daf,{'transaction':_0x363577})[_0x60b0('0x2b')](function(){var _0x41149e=_['map'](_0x5c9daf,function(_0x2dff0c){socket[_0x60b0('0x8e')](_0x60b0('0x50')+_0x521912+_0x60b0('0x9b'),{'UserId':Number(_0x2dff0c),[_0x521912+_0x60b0('0x89')]:_0x208b0e['id']});if(_0x521912!==_0x60b0('0x87')){return;}return db[_0x60b0('0x9c')][_0x60b0('0x5a')]({'where':{'VoiceQueueId':_0x208b0e['id'],'UserId':_0x2dff0c},'transaction':_0x363577});});return Promise[_0x60b0('0x97')](_0x41149e);});});return Promise[_0x60b0('0x97')](_0x387779);});});return Promise[_0x60b0('0x97')](_0x25b1b0)[_0x60b0('0x2b')](function(){return _0x1bfbbf[_0x60b0('0x9a')](_0x5c9daf,{'transaction':_0x363577});})[_0x60b0('0x2b')](function(){return db['TeamVoicePrefix'][_0x60b0('0x9d')]({'where':{'teamId':_0x4c16dd}})[_0x60b0('0x2b')](function(_0x4391c3){if(_0x4391c3){var _0x591117=_[_0x60b0('0x30')](_0x5c9daf,function(_0x5cb4e3){db[_0x60b0('0x98')]['destroy']({'where':{'UserId':_0x5cb4e3,'VoicePrefixId':_0x4391c3['VoicePrefixId']}});});return Promise[_0x60b0('0x97')](_0x591117);}});});});}})[_0x60b0('0x2b')](respondWithStatusCode(_0x1a8cca,null))[_0x60b0('0x48')](handleError(_0x1a8cca,null));};exports['getAgents']=function(_0x56c4f3,_0x15d167,_0x5ee96f){var _0x369846={};var _0x3fee04={};var _0x1d1658;var _0x5be2c7;return db[_0x60b0('0x31')][_0x60b0('0x9d')]({'where':{'id':_0x56c4f3[_0x60b0('0x4a')]['id']}})[_0x60b0('0x2b')](handleEntityNotFound(_0x15d167,null))[_0x60b0('0x2b')](function(_0x1ef371){if(_0x1ef371){_0x1d1658=_0x1ef371;_0x3fee04['model']=_[_0x60b0('0x36')](db[_0x60b0('0x8c')][_0x60b0('0x4b')]);_0x3fee04[_0x60b0('0x37')]=_[_0x60b0('0x36')](_0x56c4f3['query']);_0x3fee04[_0x60b0('0x38')]=_[_0x60b0('0x39')](_0x3fee04['model'],_0x3fee04[_0x60b0('0x37')]);_0x369846[_0x60b0('0x3a')]=_[_0x60b0('0x39')](_0x3fee04[_0x60b0('0x34')],qs[_0x60b0('0x3b')](_0x56c4f3[_0x60b0('0x37')][_0x60b0('0x3b')]));_0x369846[_0x60b0('0x3a')]=_0x369846['attributes']['length']?_0x369846['attributes']:_0x3fee04[_0x60b0('0x34')];_0x369846[_0x60b0('0x3d')]=qs['sort'](_0x56c4f3[_0x60b0('0x37')][_0x60b0('0x3e')]);_0x369846[_0x60b0('0x3f')]=qs[_0x60b0('0x38')](_[_0x60b0('0x40')](_0x56c4f3[_0x60b0('0x37')],_0x3fee04['filters']));if(_0x56c4f3[_0x60b0('0x37')][_0x60b0('0x41')]){_0x369846['where']=_[_0x60b0('0x43')](_0x369846[_0x60b0('0x3f')],{'$or':_[_0x60b0('0x30')](_0x369846[_0x60b0('0x3a')],function(_0x3346af){var _0x2847c6={};_0x2847c6[_0x3346af]={'$like':'%'+_0x56c4f3[_0x60b0('0x37')][_0x60b0('0x41')]+'%'};return _0x2847c6;})});}_0x369846=_[_0x60b0('0x43')]({},_0x369846,_0x56c4f3[_0x60b0('0x44')]);return _0x1d1658[_0x60b0('0x9e')](_0x369846);}})[_0x60b0('0x2b')](function(_0x1dd69b){if(_0x1dd69b){_0x5be2c7=_0x1dd69b[_0x60b0('0x3c')];if(!_0x56c4f3[_0x60b0('0x37')]['hasOwnProperty'](_0x60b0('0x9f'))){_0x369846[_0x60b0('0x25')]=qs[_0x60b0('0x25')](_0x56c4f3[_0x60b0('0x37')][_0x60b0('0x25')]);_0x369846[_0x60b0('0x24')]=qs['offset'](_0x56c4f3[_0x60b0('0x37')][_0x60b0('0x24')]);}return _0x1d1658[_0x60b0('0x9e')](_0x369846);}})[_0x60b0('0x2b')](function(_0x4389f8){if(_0x4389f8){return _0x4389f8?{'count':_0x5be2c7,'rows':_0x4389f8}:null;}})[_0x60b0('0x2b')](respondWithResult(_0x15d167,null))[_0x60b0('0x48')](handleError(_0x15d167,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x55bb=['hook','exports','save','remove','emit','hasOwnProperty'];(function(_0x5cbbd3,_0x1d3e85){var _0xadce90=function(_0x48db7b){while(--_0x48db7b){_0x5cbbd3['push'](_0x5cbbd3['shift']());}};_0xadce90(++_0x1d3e85);}(_0x55bb,0x146));var _0xb55b=function(_0x4bc47b,_0x11a508){_0x4bc47b=_0x4bc47b-0x0;var _0x4ec968=_0x55bb[_0x4bc47b];return _0x4ec968;};'use strict';var EventEmitter=require('events');var Team=require('../../mysqldb')['db']['Team'];var TeamEvents=new EventEmitter();TeamEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xb55b('0x0'),'afterUpdate':'update','afterDestroy':_0xb55b('0x1')};function emitEvent(_0xbdf948){return function(_0x21245e,_0x156b8a,_0x2a4c3e){TeamEvents[_0xb55b('0x2')](_0xbdf948+':'+_0x21245e['id'],_0x21245e);TeamEvents[_0xb55b('0x2')](_0xbdf948,_0x21245e);_0x2a4c3e(null);};}for(var e in events){if(events[_0xb55b('0x3')](e)){var event=events[e];Team[_0xb55b('0x4')](e,emitEvent(event));}}module[_0xb55b('0x5')]=TeamEvents;
\ No newline at end of file
+var _0xecc0=['../../mysqldb','Team','setMaxListeners','save','remove','emit','hasOwnProperty','hook','events'];(function(_0x82938f,_0x1672eb){var _0x2dcc93=function(_0x3559d4){while(--_0x3559d4){_0x82938f['push'](_0x82938f['shift']());}};_0x2dcc93(++_0x1672eb);}(_0xecc0,0xfb));var _0x0ecc=function(_0x4cde50,_0x275e1a){_0x4cde50=_0x4cde50-0x0;var _0x30c3d0=_0xecc0[_0x4cde50];return _0x30c3d0;};'use strict';var EventEmitter=require(_0x0ecc('0x0'));var Team=require(_0x0ecc('0x1'))['db'][_0x0ecc('0x2')];var TeamEvents=new EventEmitter();TeamEvents[_0x0ecc('0x3')](0x0);var events={'afterCreate':_0x0ecc('0x4'),'afterUpdate':'update','afterDestroy':_0x0ecc('0x5')};function emitEvent(_0xdf4ddc){return function(_0xce2bf4,_0x3c8ef1,_0x36f631){TeamEvents[_0x0ecc('0x6')](_0xdf4ddc+':'+_0xce2bf4['id'],_0xce2bf4);TeamEvents[_0x0ecc('0x6')](_0xdf4ddc,_0xce2bf4);_0x36f631(null);};}for(var e in events){if(events[_0x0ecc('0x7')](e)){var event=events[e];Team[_0x0ecc('0x8')](e,emitEvent(event));}}module['exports']=TeamEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf962=['util','../../config/logger','api','bluebird','request-promise','path','../../config/environment','./team.attributes','define','teams','lodash'];(function(_0xd48a37,_0x3a45bb){var _0x37244a=function(_0x5b8089){while(--_0x5b8089){_0xd48a37['push'](_0xd48a37['shift']());}};_0x37244a(++_0x3a45bb);}(_0xf962,0xdb));var _0x2f96=function(_0x25af83,_0x52683c){_0x25af83=_0x25af83-0x0;var _0x337635=_0xf962[_0x25af83];return _0x337635;};'use strict';var _=require(_0x2f96('0x0'));var util=require(_0x2f96('0x1'));var logger=require(_0x2f96('0x2'))(_0x2f96('0x3'));var moment=require('moment');var BPromise=require(_0x2f96('0x4'));var rp=require(_0x2f96('0x5'));var fs=require('fs');var path=require(_0x2f96('0x6'));var rimraf=require('rimraf');var config=require(_0x2f96('0x7'));var attributes=require(_0x2f96('0x8'));module['exports']=function(_0x548b39,_0x36b5cc){return _0x548b39[_0x2f96('0x9')]('Team',attributes,{'tableName':_0x2f96('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x5fb2=['request-promise','rimraf','../../config/environment','./team.attributes','exports','Team','lodash','util','../../config/logger','api','moment','bluebird'];(function(_0x587dd0,_0x273922){var _0x56f153=function(_0x27fb33){while(--_0x27fb33){_0x587dd0['push'](_0x587dd0['shift']());}};_0x56f153(++_0x273922);}(_0x5fb2,0x19e));var _0x25fb=function(_0x19a72c,_0x2229cb){_0x19a72c=_0x19a72c-0x0;var _0x3c6199=_0x5fb2[_0x19a72c];return _0x3c6199;};'use strict';var _=require(_0x25fb('0x0'));var util=require(_0x25fb('0x1'));var logger=require(_0x25fb('0x2'))(_0x25fb('0x3'));var moment=require(_0x25fb('0x4'));var BPromise=require(_0x25fb('0x5'));var rp=require(_0x25fb('0x6'));var fs=require('fs');var path=require('path');var rimraf=require(_0x25fb('0x7'));var config=require(_0x25fb('0x8'));var attributes=require(_0x25fb('0x9'));module[_0x25fb('0xa')]=function(_0x5c6923,_0x3068d2){return _0x5c6923['define'](_0x25fb('0xb'),attributes,{'tableName':'teams','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb5f0=['../../config/utils','rpc','../../config/environment','jayson/promise','client','redis','defaults','socket.io-emitter','./team.socket','register','request','then','info','Team,\x20%s,\x20%s','request\x20sent','debug','Team,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','lodash','util','moment','bluebird','ioredis'];(function(_0x167cc1,_0x56ef5a){var _0x10bc4b=function(_0xd6a255){while(--_0xd6a255){_0x167cc1['push'](_0x167cc1['shift']());}};_0x10bc4b(++_0x56ef5a);}(_0xb5f0,0x113));var _0x0b5f=function(_0x24c400,_0xe6736c){_0x24c400=_0x24c400-0x0;var _0x38615d=_0xb5f0[_0x24c400];return _0x38615d;};'use strict';var _=require(_0x0b5f('0x0'));var util=require(_0x0b5f('0x1'));var moment=require(_0x0b5f('0x2'));var BPromise=require(_0x0b5f('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x0b5f('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x0b5f('0x5'));var logger=require('../../config/logger')(_0x0b5f('0x6'));var config=require(_0x0b5f('0x7'));var jayson=require(_0x0b5f('0x8'));var client=jayson[_0x0b5f('0x9')]['http']({'port':0x232a});config[_0x0b5f('0xa')]=_[_0x0b5f('0xb')](config[_0x0b5f('0xa')],{'host':'localhost','port':0x18eb});var socket=require(_0x0b5f('0xc'))(new Redis(config[_0x0b5f('0xa')]));require(_0x0b5f('0xd'))[_0x0b5f('0xe')](socket);function respondWithRpcPromise(_0x16a56d,_0x1d910e,_0x180ca2){return new BPromise(function(_0x3deb07,_0xd92463){return client[_0x0b5f('0xf')](_0x16a56d,_0x180ca2)[_0x0b5f('0x10')](function(_0x1d9a4e){logger[_0x0b5f('0x11')](_0x0b5f('0x12'),_0x1d910e,_0x0b5f('0x13'));logger[_0x0b5f('0x14')](_0x0b5f('0x15'),_0x1d910e,_0x0b5f('0x13'),JSON[_0x0b5f('0x16')](_0x1d9a4e));if(_0x1d9a4e[_0x0b5f('0x17')]){if(_0x1d9a4e[_0x0b5f('0x17')][_0x0b5f('0x18')]===0x1f4){logger['error']('Team,\x20%s,\x20%s',_0x1d910e,_0x1d9a4e[_0x0b5f('0x17')][_0x0b5f('0x19')]);return _0xd92463(_0x1d9a4e[_0x0b5f('0x17')][_0x0b5f('0x19')]);}logger['error'](_0x0b5f('0x12'),_0x1d910e,_0x1d9a4e[_0x0b5f('0x17')][_0x0b5f('0x19')]);return _0x3deb07(_0x1d9a4e[_0x0b5f('0x17')][_0x0b5f('0x19')]);}else{logger[_0x0b5f('0x11')](_0x0b5f('0x12'),_0x1d910e,_0x0b5f('0x13'));_0x3deb07(_0x1d9a4e[_0x0b5f('0x1a')][_0x0b5f('0x19')]);}})[_0x0b5f('0x1b')](function(_0x3a1054){logger['error'](_0x0b5f('0x12'),_0x1d910e,_0x3a1054);_0xd92463(_0x3a1054);});});}
\ No newline at end of file
+var _0x6722=['localhost','socket.io-emitter','./team.socket','register','request','then','info','Team,\x20%s,\x20%s','request\x20sent','debug','Team,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','redis'];(function(_0x248553,_0x22ff05){var _0x34e3bd=function(_0x5c4593){while(--_0x5c4593){_0x248553['push'](_0x248553['shift']());}};_0x34e3bd(++_0x22ff05);}(_0x6722,0x132));var _0x2672=function(_0x40f719,_0x533bd2){_0x40f719=_0x40f719-0x0;var _0x406bd4=_0x6722[_0x40f719];return _0x406bd4;};'use strict';var _=require('lodash');var util=require(_0x2672('0x0'));var moment=require(_0x2672('0x1'));var BPromise=require(_0x2672('0x2'));var rs=require(_0x2672('0x3'));var fs=require('fs');var Redis=require(_0x2672('0x4'));var db=require(_0x2672('0x5'))['db'];var utils=require(_0x2672('0x6'));var logger=require(_0x2672('0x7'))(_0x2672('0x8'));var config=require(_0x2672('0x9'));var jayson=require(_0x2672('0xa'));var client=jayson['client'][_0x2672('0xb')]({'port':0x232a});config[_0x2672('0xc')]=_['defaults'](config[_0x2672('0xc')],{'host':_0x2672('0xd'),'port':0x18eb});var socket=require(_0x2672('0xe'))(new Redis(config[_0x2672('0xc')]));require(_0x2672('0xf'))[_0x2672('0x10')](socket);function respondWithRpcPromise(_0x5021d2,_0x4d520b,_0x2068ad){return new BPromise(function(_0x36a591,_0x3b3218){return client[_0x2672('0x11')](_0x5021d2,_0x2068ad)[_0x2672('0x12')](function(_0x158255){logger[_0x2672('0x13')](_0x2672('0x14'),_0x4d520b,_0x2672('0x15'));logger[_0x2672('0x16')](_0x2672('0x17'),_0x4d520b,_0x2672('0x15'),JSON[_0x2672('0x18')](_0x158255));if(_0x158255[_0x2672('0x19')]){if(_0x158255[_0x2672('0x19')][_0x2672('0x1a')]===0x1f4){logger[_0x2672('0x19')](_0x2672('0x14'),_0x4d520b,_0x158255['error'][_0x2672('0x1b')]);return _0x3b3218(_0x158255[_0x2672('0x19')][_0x2672('0x1b')]);}logger[_0x2672('0x19')](_0x2672('0x14'),_0x4d520b,_0x158255[_0x2672('0x19')]['message']);return _0x36a591(_0x158255[_0x2672('0x19')]['message']);}else{logger[_0x2672('0x13')]('Team,\x20%s,\x20%s',_0x4d520b,_0x2672('0x15'));_0x36a591(_0x158255['result'][_0x2672('0x1b')]);}})[_0x2672('0x1c')](function(_0x166dbb){logger['error']('Team,\x20%s,\x20%s',_0x4d520b,_0x166dbb);_0x3b3218(_0x166dbb);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc8f8=['removeListener','register','length','team:','./team.events','save','remove','update'];(function(_0x1e92a6,_0x5184dc){var _0x14a496=function(_0x66e264){while(--_0x66e264){_0x1e92a6['push'](_0x1e92a6['shift']());}};_0x14a496(++_0x5184dc);}(_0xc8f8,0x1cc));var _0x8c8f=function(_0x1ccdf7,_0x215d5a){_0x1ccdf7=_0x1ccdf7-0x0;var _0x52a0ae=_0xc8f8[_0x1ccdf7];return _0x52a0ae;};'use strict';var TeamEvents=require(_0x8c8f('0x0'));var events=[_0x8c8f('0x1'),_0x8c8f('0x2'),_0x8c8f('0x3')];function createListener(_0x4e942c,_0x35014b){return function(_0x191cc8){_0x35014b['emit'](_0x4e942c,_0x191cc8);};}function removeListener(_0x264aa4,_0x40f46f){return function(){TeamEvents[_0x8c8f('0x4')](_0x264aa4,_0x40f46f);};}exports[_0x8c8f('0x5')]=function(_0x3bb625){for(var _0x224773=0x0,_0x3e6347=events[_0x8c8f('0x6')];_0x224773<_0x3e6347;_0x224773++){var _0x3ecf76=events[_0x224773];var _0x2172c8=createListener(_0x8c8f('0x7')+_0x3ecf76,_0x3bb625);TeamEvents['on'](_0x3ecf76,_0x2172c8);}};
\ No newline at end of file
+var _0xde32=['team:','./team.events','save','remove','update','register','length'];(function(_0x89a001,_0x3a9a8c){var _0x5f3ec2=function(_0x3e849b){while(--_0x3e849b){_0x89a001['push'](_0x89a001['shift']());}};_0x5f3ec2(++_0x3a9a8c);}(_0xde32,0x143));var _0x2de3=function(_0x2cd6c9,_0x25dd2e){_0x2cd6c9=_0x2cd6c9-0x0;var _0x280de9=_0xde32[_0x2cd6c9];return _0x280de9;};'use strict';var TeamEvents=require(_0x2de3('0x0'));var events=[_0x2de3('0x1'),_0x2de3('0x2'),_0x2de3('0x3')];function createListener(_0x5c1383,_0x5ab61f){return function(_0x2bd564){_0x5ab61f['emit'](_0x5c1383,_0x2bd564);};}function removeListener(_0x243030,_0x58bbd3){return function(){TeamEvents['removeListener'](_0x243030,_0x58bbd3);};}exports[_0x2de3('0x4')]=function(_0x23a1da){for(var _0x1897b1=0x0,_0x4d8d1a=events[_0x2de3('0x5')];_0x1897b1<_0x4d8d1a;_0x1897b1++){var _0x1570dc=events[_0x1897b1];var _0x2e9fb1=createListener(_0x2de3('0x6')+_0x1570dc,_0x23a1da);TeamEvents['on'](_0x1570dc,_0x2e9fb1);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbe7c=['sequelize','exports','INTEGER'];(function(_0x35445b,_0x10a045){var _0x41b728=function(_0x3f2761){while(--_0x3f2761){_0x35445b['push'](_0x35445b['shift']());}};_0x41b728(++_0x10a045);}(_0xbe7c,0x108));var _0xcbe7=function(_0x4b369d,_0x265eb8){_0x4b369d=_0x4b369d-0x0;var _0x571a98=_0xbe7c[_0x4b369d];return _0x571a98;};'use strict';var Sequelize=require(_0xcbe7('0x0'));module[_0xcbe7('0x1')]={'TeamId':{'type':Sequelize[_0xcbe7('0x2')]},'VoicePrefixId':{'type':Sequelize[_0xcbe7('0x2')]}};
\ No newline at end of file
+var _0xf296=['INTEGER','sequelize','exports'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0xf296,0x94));var _0x6f29=function(_0x55dbdc,_0x2a203a){_0x55dbdc=_0x55dbdc-0x0;var _0x5d7a04=_0xf296[_0x55dbdc];return _0x5d7a04;};'use strict';var Sequelize=require(_0x6f29('0x0'));module[_0x6f29('0x1')]={'TeamId':{'type':Sequelize['INTEGER']},'VoicePrefixId':{'type':Sequelize[_0x6f29('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x082b=['api','bluebird','request-promise','rimraf','../../config/environment','exports','define','team_has_voice_prefixes','lodash','util','../../config/logger'];(function(_0x357a4c,_0xbc6bab){var _0x51fc20=function(_0x1b3800){while(--_0x1b3800){_0x357a4c['push'](_0x357a4c['shift']());}};_0x51fc20(++_0xbc6bab);}(_0x082b,0x1ec));var _0xb082=function(_0x2f26a2,_0x3debdf){_0x2f26a2=_0x2f26a2-0x0;var _0x42e320=_0x082b[_0x2f26a2];return _0x42e320;};'use strict';var _=require(_0xb082('0x0'));var util=require(_0xb082('0x1'));var logger=require(_0xb082('0x2'))(_0xb082('0x3'));var moment=require('moment');var BPromise=require(_0xb082('0x4'));var rp=require(_0xb082('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0xb082('0x6'));var config=require(_0xb082('0x7'));var attributes=require('./teamVoicePrefix.attributes');module[_0xb082('0x8')]=function(_0x37b715,_0x16e0b8){return _0x37b715[_0xb082('0x9')]('TeamVoicePrefix',attributes,{'tableName':_0xb082('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xdca3=['../../config/environment','./teamVoicePrefix.attributes','exports','define','lodash','../../config/logger','api','moment','bluebird','request-promise','path','rimraf'];(function(_0x4d35f3,_0x19ba66){var _0x382fea=function(_0x2c2390){while(--_0x2c2390){_0x4d35f3['push'](_0x4d35f3['shift']());}};_0x382fea(++_0x19ba66);}(_0xdca3,0x64));var _0x3dca=function(_0x3c2b1c,_0x2be8b0){_0x3c2b1c=_0x3c2b1c-0x0;var _0x33b8dd=_0xdca3[_0x3c2b1c];return _0x33b8dd;};'use strict';var _=require(_0x3dca('0x0'));var util=require('util');var logger=require(_0x3dca('0x1'))(_0x3dca('0x2'));var moment=require(_0x3dca('0x3'));var BPromise=require(_0x3dca('0x4'));var rp=require(_0x3dca('0x5'));var fs=require('fs');var path=require(_0x3dca('0x6'));var rimraf=require(_0x3dca('0x7'));var config=require(_0x3dca('0x8'));var attributes=require(_0x3dca('0x9'));module[_0x3dca('0xa')]=function(_0x3e2811,_0x5cfa9a){return _0x3e2811[_0x3dca('0xb')]('TeamVoicePrefix',attributes,{'tableName':'team_has_voice_prefixes','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x70e0=['../../components/auth/service','../../components/interaction/service','exports','multer','util','path','Router','fs-extra'];(function(_0x386cac,_0x15fe0d){var _0x3389d4=function(_0x491a00){while(--_0x491a00){_0x386cac['push'](_0x386cac['shift']());}};_0x3389d4(++_0x15fe0d);}(_0x70e0,0x17b));var _0x070e=function(_0x3e5dd5,_0xe57328){_0x3e5dd5=_0x3e5dd5-0x0;var _0x18fa97=_0x70e0[_0x3e5dd5];return _0x18fa97;};'use strict';var multer=require(_0x070e('0x0'));var util=require(_0x070e('0x1'));var path=require(_0x070e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x070e('0x3')]();var fs_extra=require(_0x070e('0x4'));var auth=require(_0x070e('0x5'));var interaction=require(_0x070e('0x6'));var config=require('../../config/environment');module[_0x070e('0x7')]=router;
\ No newline at end of file
+var _0xe706=['../../components/interaction/service','../../config/environment','exports','multer','util','path','express','Router','fs-extra','../../components/auth/service'];(function(_0x4f9126,_0x33e9ca){var _0x42a939=function(_0x4fdca8){while(--_0x4fdca8){_0x4f9126['push'](_0x4f9126['shift']());}};_0x42a939(++_0x33e9ca);}(_0xe706,0xa3));var _0x6e70=function(_0x127bb2,_0x849c5f){_0x127bb2=_0x127bb2-0x0;var _0x596034=_0xe706[_0x127bb2];return _0x596034;};'use strict';var multer=require(_0x6e70('0x0'));var util=require(_0x6e70('0x1'));var path=require(_0x6e70('0x2'));var timeout=require('connect-timeout');var express=require(_0x6e70('0x3'));var router=express[_0x6e70('0x4')]();var fs_extra=require(_0x6e70('0x5'));var auth=require(_0x6e70('0x6'));var interaction=require(_0x6e70('0x7'));var config=require(_0x6e70('0x8'));module[_0x6e70('0x9')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xae6b=['sequelize','INTEGER'];(function(_0x35d5d6,_0x3a580d){var _0x131132=function(_0x51ed54){while(--_0x51ed54){_0x35d5d6['push'](_0x35d5d6['shift']());}};_0x131132(++_0x3a580d);}(_0xae6b,0x158));var _0xbae6=function(_0x2af053,_0x4f6d28){_0x2af053=_0x2af053-0x0;var _0x4b4001=_0xae6b[_0x2af053];return _0x4b4001;};'use strict';var Sequelize=require(_0xbae6('0x0'));module['exports']={'penalty':{'type':Sequelize[_0xbae6('0x1')],'defaultValue':0x0}};
\ No newline at end of file
+var _0x9152=['exports','INTEGER','sequelize'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x9152,0xbf));var _0x2915=function(_0x65fcb4,_0x4ef502){_0x65fcb4=_0x65fcb4-0x0;var _0x4353be=_0x9152[_0x65fcb4];return _0x4353be;};'use strict';var Sequelize=require(_0x2915('0x0'));module[_0x2915('0x1')]={'penalty':{'type':Sequelize[_0x2915('0x2')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x41f2=['rimraf','../../config/environment','exports','define','TeamVoiceQueue','lodash','util','api','moment','bluebird','request-promise'];(function(_0xfcf301,_0x8655ed){var _0xb52cf=function(_0x30ecfe){while(--_0x30ecfe){_0xfcf301['push'](_0xfcf301['shift']());}};_0xb52cf(++_0x8655ed);}(_0x41f2,0x14f));var _0x241f=function(_0x1313c9,_0x217308){_0x1313c9=_0x1313c9-0x0;var _0x39d1b0=_0x41f2[_0x1313c9];return _0x39d1b0;};'use strict';var _=require(_0x241f('0x0'));var util=require(_0x241f('0x1'));var logger=require('../../config/logger')(_0x241f('0x2'));var moment=require(_0x241f('0x3'));var BPromise=require(_0x241f('0x4'));var rp=require(_0x241f('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x241f('0x6'));var config=require(_0x241f('0x7'));var attributes=require('./teamVoiceQueue.attributes');module[_0x241f('0x8')]=function(_0x2e8e9f,_0x253edb){return _0x2e8e9f[_0x241f('0x9')](_0x241f('0xa'),attributes,{'tableName':'team_has_voice_queues','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x4c4e=['moment','request-promise','path','rimraf','./teamVoiceQueue.attributes','define','TeamVoiceQueue','team_has_voice_queues','lodash','../../config/logger','api'];(function(_0x1facfa,_0x1acf7d){var _0x9ec701=function(_0x115e37){while(--_0x115e37){_0x1facfa['push'](_0x1facfa['shift']());}};_0x9ec701(++_0x1acf7d);}(_0x4c4e,0x152));var _0xe4c4=function(_0x1c209a,_0x9ee3b9){_0x1c209a=_0x1c209a-0x0;var _0x48a511=_0x4c4e[_0x1c209a];return _0x48a511;};'use strict';var _=require(_0xe4c4('0x0'));var util=require('util');var logger=require(_0xe4c4('0x1'))(_0xe4c4('0x2'));var moment=require(_0xe4c4('0x3'));var BPromise=require('bluebird');var rp=require(_0xe4c4('0x4'));var fs=require('fs');var path=require(_0xe4c4('0x5'));var rimraf=require(_0xe4c4('0x6'));var config=require('../../config/environment');var attributes=require(_0xe4c4('0x7'));module['exports']=function(_0x177732,_0x1a12a6){return _0x177732[_0xe4c4('0x8')](_0xe4c4('0x9'),attributes,{'tableName':_0xe4c4('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5eec=['randomstring','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','client','http','request','then','info','request\x20sent','debug','error','code','TeamVoiceQueue,\x20%s,\x20%s','message','result','lodash','moment'];(function(_0x22b68a,_0x2bffc3){var _0x1ac67a=function(_0x25f9d5){while(--_0x25f9d5){_0x22b68a['push'](_0x22b68a['shift']());}};_0x1ac67a(++_0x2bffc3);}(_0x5eec,0x11b));var _0xc5ee=function(_0x28abf4,_0x539ee6){_0x28abf4=_0x28abf4-0x0;var _0x50473e=_0x5eec[_0x28abf4];return _0x50473e;};'use strict';var _=require(_0xc5ee('0x0'));var util=require('util');var moment=require(_0xc5ee('0x1'));var BPromise=require('bluebird');var rs=require(_0xc5ee('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xc5ee('0x3'))['db'];var utils=require(_0xc5ee('0x4'));var logger=require(_0xc5ee('0x5'))('rpc');var config=require(_0xc5ee('0x6'));var jayson=require('jayson/promise');var client=jayson[_0xc5ee('0x7')][_0xc5ee('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x2a877f,_0x4fec5d,_0x447d12){return new BPromise(function(_0x43c03a,_0x5add42){return client[_0xc5ee('0x9')](_0x2a877f,_0x447d12)[_0xc5ee('0xa')](function(_0x2ecff5){logger[_0xc5ee('0xb')]('TeamVoiceQueue,\x20%s,\x20%s',_0x4fec5d,_0xc5ee('0xc'));logger[_0xc5ee('0xd')]('TeamVoiceQueue,\x20%s,\x20%s,\x20%s',_0x4fec5d,_0xc5ee('0xc'),JSON['stringify'](_0x2ecff5));if(_0x2ecff5[_0xc5ee('0xe')]){if(_0x2ecff5[_0xc5ee('0xe')][_0xc5ee('0xf')]===0x1f4){logger[_0xc5ee('0xe')](_0xc5ee('0x10'),_0x4fec5d,_0x2ecff5[_0xc5ee('0xe')][_0xc5ee('0x11')]);return _0x5add42(_0x2ecff5[_0xc5ee('0xe')][_0xc5ee('0x11')]);}logger[_0xc5ee('0xe')](_0xc5ee('0x10'),_0x4fec5d,_0x2ecff5[_0xc5ee('0xe')][_0xc5ee('0x11')]);return _0x43c03a(_0x2ecff5['error'][_0xc5ee('0x11')]);}else{logger['info'](_0xc5ee('0x10'),_0x4fec5d,_0xc5ee('0xc'));_0x43c03a(_0x2ecff5[_0xc5ee('0x12')][_0xc5ee('0x11')]);}})['catch'](function(_0x429e27){logger[_0xc5ee('0xe')](_0xc5ee('0x10'),_0x4fec5d,_0x429e27);_0x5add42(_0x429e27);});});}
\ No newline at end of file
+var _0x2d9b=['../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','info','TeamVoiceQueue,\x20%s,\x20%s','request\x20sent','debug','TeamVoiceQueue,\x20%s,\x20%s,\x20%s','error','message','result','catch','moment','randomstring','ioredis','../../config/utils'];(function(_0x1d9aa0,_0x272488){var _0x226868=function(_0x17127c){while(--_0x17127c){_0x1d9aa0['push'](_0x1d9aa0['shift']());}};_0x226868(++_0x272488);}(_0x2d9b,0xb0));var _0xb2d9=function(_0x55dc1b,_0xedff7){_0x55dc1b=_0x55dc1b-0x0;var _0x143016=_0x2d9b[_0x55dc1b];return _0x143016;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0xb2d9('0x0'));var BPromise=require('bluebird');var rs=require(_0xb2d9('0x1'));var fs=require('fs');var Redis=require(_0xb2d9('0x2'));var db=require('../../mysqldb')['db'];var utils=require(_0xb2d9('0x3'));var logger=require(_0xb2d9('0x4'))(_0xb2d9('0x5'));var config=require(_0xb2d9('0x6'));var jayson=require(_0xb2d9('0x7'));var client=jayson[_0xb2d9('0x8')][_0xb2d9('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x3825cf,_0x1285b7,_0x2d6e94){return new BPromise(function(_0x176a75,_0x306f7d){return client[_0xb2d9('0xa')](_0x3825cf,_0x2d6e94)['then'](function(_0x1e65c0){logger[_0xb2d9('0xb')](_0xb2d9('0xc'),_0x1285b7,_0xb2d9('0xd'));logger[_0xb2d9('0xe')](_0xb2d9('0xf'),_0x1285b7,_0xb2d9('0xd'),JSON['stringify'](_0x1e65c0));if(_0x1e65c0['error']){if(_0x1e65c0[_0xb2d9('0x10')]['code']===0x1f4){logger['error'](_0xb2d9('0xc'),_0x1285b7,_0x1e65c0[_0xb2d9('0x10')]['message']);return _0x306f7d(_0x1e65c0[_0xb2d9('0x10')][_0xb2d9('0x11')]);}logger[_0xb2d9('0x10')](_0xb2d9('0xc'),_0x1285b7,_0x1e65c0[_0xb2d9('0x10')][_0xb2d9('0x11')]);return _0x176a75(_0x1e65c0[_0xb2d9('0x10')][_0xb2d9('0x11')]);}else{logger['info'](_0xb2d9('0xc'),_0x1285b7,'request\x20sent');_0x176a75(_0x1e65c0[_0xb2d9('0x12')]['message']);}})[_0xb2d9('0x13')](function(_0x2ab0ff){logger[_0xb2d9('0x10')](_0xb2d9('0xc'),_0x1285b7,_0x2ab0ff);_0x306f7d(_0x2ab0ff);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6b47=['put','update','delete','destroy','exports','util','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./template.controller','get','isAuthenticated','/:id','show','post','create'];(function(_0x4de8c4,_0x75f17f){var _0x276b10=function(_0x1645e9){while(--_0x1645e9){_0x4de8c4['push'](_0x4de8c4['shift']());}};_0x276b10(++_0x75f17f);}(_0x6b47,0xe9));var _0x76b4=function(_0x620f48,_0x3cad18){_0x620f48=_0x620f48-0x0;var _0x3a7a25=_0x6b47[_0x620f48];return _0x3a7a25;};'use strict';var multer=require('multer');var util=require(_0x76b4('0x0'));var path=require('path');var timeout=require(_0x76b4('0x1'));var express=require(_0x76b4('0x2'));var router=express[_0x76b4('0x3')]();var fs_extra=require(_0x76b4('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x76b4('0x5'));var config=require(_0x76b4('0x6'));var controller=require(_0x76b4('0x7'));router[_0x76b4('0x8')]('/',auth[_0x76b4('0x9')](),controller['index']);router[_0x76b4('0x8')](_0x76b4('0xa'),auth[_0x76b4('0x9')](),controller[_0x76b4('0xb')]);router[_0x76b4('0xc')]('/',auth[_0x76b4('0x9')](),controller[_0x76b4('0xd')]);router[_0x76b4('0xe')](_0x76b4('0xa'),auth[_0x76b4('0x9')](),controller[_0x76b4('0xf')]);router[_0x76b4('0x10')](_0x76b4('0xa'),auth['isAuthenticated'](),controller[_0x76b4('0x11')]);module[_0x76b4('0x12')]=router;
\ No newline at end of file
+var _0x6fad=['multer','util','path','connect-timeout','express','fs-extra','../../components/interaction/service','./template.controller','isAuthenticated','index','get','/:id','show','post','create','update','delete','exports'];(function(_0x48225d,_0x450453){var _0x4f534a=function(_0xaa9176){while(--_0xaa9176){_0x48225d['push'](_0x48225d['shift']());}};_0x4f534a(++_0x450453);}(_0x6fad,0x17a));var _0xd6fa=function(_0x1780b4,_0x16801c){_0x1780b4=_0x1780b4-0x0;var _0x199010=_0x6fad[_0x1780b4];return _0x199010;};'use strict';var multer=require(_0xd6fa('0x0'));var util=require(_0xd6fa('0x1'));var path=require(_0xd6fa('0x2'));var timeout=require(_0xd6fa('0x3'));var express=require(_0xd6fa('0x4'));var router=express['Router']();var fs_extra=require(_0xd6fa('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0xd6fa('0x6'));var config=require('../../config/environment');var controller=require(_0xd6fa('0x7'));router['get']('/',auth[_0xd6fa('0x8')](),controller[_0xd6fa('0x9')]);router[_0xd6fa('0xa')](_0xd6fa('0xb'),auth[_0xd6fa('0x8')](),controller[_0xd6fa('0xc')]);router[_0xd6fa('0xd')]('/',auth['isAuthenticated'](),controller[_0xd6fa('0xe')]);router['put'](_0xd6fa('0xb'),auth[_0xd6fa('0x8')](),controller[_0xd6fa('0xf')]);router[_0xd6fa('0x10')](_0xd6fa('0xb'),auth['isAuthenticated'](),controller['destroy']);module[_0xd6fa('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4f41=['STRING','TEXT'];(function(_0x2ebe5e,_0x5dd251){var _0x408e2f=function(_0x577e86){while(--_0x577e86){_0x2ebe5e['push'](_0x2ebe5e['shift']());}};_0x408e2f(++_0x5dd251);}(_0x4f41,0x182));var _0x14f4=function(_0x59ecad,_0x1abc43){_0x59ecad=_0x59ecad-0x0;var _0x2c6b32=_0x4f41[_0x59ecad];return _0x2c6b32;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize[_0x14f4('0x0')]},'description':{'type':Sequelize['STRING']},'html':{'type':Sequelize[_0x14f4('0x1')]}};
\ No newline at end of file
+var _0x922e=['TEXT','exports','STRING'];(function(_0x121500,_0x19949b){var _0x4d5f18=function(_0x281dda){while(--_0x281dda){_0x121500['push'](_0x121500['shift']());}};_0x4d5f18(++_0x19949b);}(_0x922e,0x1c3));var _0xe922=function(_0x200af4,_0x8416e8){_0x200af4=_0x200af4-0x0;var _0x3831b6=_0x922e[_0x200af4];return _0x3831b6;};'use strict';var Sequelize=require('sequelize');module[_0xe922('0x0')]={'name':{'type':Sequelize[_0xe922('0x1')]},'description':{'type':Sequelize[_0xe922('0x1')]},'html':{'type':Sequelize[_0xe922('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7754=['merge','options','include','findAll','catch','show','params','length','create','role','user','UserProfileSection','error','body','find','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','json','apply','update','destroy','then','get','Templates','UserProfileResource','stack','name','index','Template','rawAttributes','fieldName','type','key','model','map','keys','query','filters','intersection','attributes','fields','nolimit','order','sort','where','pick'];(function(_0x211a15,_0x4e7ee1){var _0x5e6a41=function(_0xab3bc1){while(--_0xab3bc1){_0x211a15['push'](_0x211a15['shift']());}};_0x5e6a41(++_0x4e7ee1);}(_0x7754,0x195));var _0x4775=function(_0x4164f2,_0x38669f){_0x4164f2=_0x4164f2-0x0;var _0x2575c7=_0x7754[_0x4164f2];return _0x2575c7;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x4775('0x0'));var zipdir=require(_0x4775('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x4775('0x2'));var moment=require(_0x4775('0x3'));var BPromise=require(_0x4775('0x4'));var Mustache=require(_0x4775('0x5'));var util=require(_0x4775('0x6'));var path=require(_0x4775('0x7'));var sox=require(_0x4775('0x8'));var csv=require(_0x4775('0x9'));var ejs=require(_0x4775('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x4775('0xb'));var squel=require(_0x4775('0xc'));var crypto=require(_0x4775('0xd'));var jsforce=require(_0x4775('0xe'));var deskjs=require(_0x4775('0xf'));var toCsv=require(_0x4775('0x9'));var querystring=require(_0x4775('0x10'));var Papa=require(_0x4775('0x11'));var Redis=require(_0x4775('0x12'));var authService=require(_0x4775('0x13'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x4775('0x14'));var logger=require(_0x4775('0x15'))('api');var utils=require('../../config/utils');var config=require(_0x4775('0x16'));var licenseUtil=require(_0x4775('0x17'));var db=require(_0x4775('0x18'))['db'];function respondWithStatusCode(_0x226a5b,_0x489b02){_0x489b02=_0x489b02||0xcc;return function(_0x1884cb){if(_0x1884cb){return _0x226a5b[_0x4775('0x19')](_0x489b02);}return _0x226a5b[_0x4775('0x1a')](_0x489b02)[_0x4775('0x1b')]();};}function respondWithResult(_0x3efb81,_0x3630bd){_0x3630bd=_0x3630bd||0xc8;return function(_0x2b1cac){if(_0x2b1cac){return _0x3efb81[_0x4775('0x1a')](_0x3630bd)['json'](_0x2b1cac);}};}function respondWithFilteredResult(_0x536b26,_0x3b6711){return function(_0x4ea7e9){if(_0x4ea7e9){var _0x56dd26=typeof _0x3b6711[_0x4775('0x1c')]===_0x4775('0x1d')&&typeof _0x3b6711[_0x4775('0x1e')]==='undefined';var _0xd648fe=_0x4ea7e9[_0x4775('0x1f')];var _0x12da50=_0x56dd26?0x0:_0x3b6711[_0x4775('0x1c')];var _0x323f6e=_0x56dd26?_0x4ea7e9[_0x4775('0x1f')]:_0x3b6711[_0x4775('0x1c')]+_0x3b6711[_0x4775('0x1e')];var _0x3c9ca7;if(_0x323f6e>=_0xd648fe){_0x323f6e=_0xd648fe;_0x3c9ca7=0xc8;}else{_0x3c9ca7=0xce;}_0x536b26[_0x4775('0x1a')](_0x3c9ca7);return _0x536b26[_0x4775('0x20')](_0x4775('0x21'),_0x12da50+'-'+_0x323f6e+'/'+_0xd648fe)[_0x4775('0x22')](_0x4ea7e9);}return null;};}function patchUpdates(_0x735c42){return function(_0x5b7d80){try{jsonpatch[_0x4775('0x23')](_0x5b7d80,_0x735c42,!![]);}catch(_0x48a0e1){return BPromise['reject'](_0x48a0e1);}return _0x5b7d80['save']();};}function saveUpdates(_0x3ccb70,_0x207d3f){return function(_0x3bd245){if(_0x3bd245){return _0x3bd245[_0x4775('0x24')](_0x3ccb70)['then'](function(_0x140cda){return _0x140cda;});}return null;};}function removeEntity(_0x7f141d,_0x478086){return function(_0x19d006){if(_0x19d006){return _0x19d006[_0x4775('0x25')]()[_0x4775('0x26')](function(){var _0x2f6449=_0x19d006[_0x4775('0x27')]({'plain':!![]});var _0x179dd0=_0x4775('0x28');return db[_0x4775('0x29')][_0x4775('0x25')]({'where':{'type':_0x179dd0,'resourceId':_0x2f6449['id']}})[_0x4775('0x26')](function(){return _0x19d006;});})[_0x4775('0x26')](function(){_0x7f141d[_0x4775('0x1a')](0xcc)[_0x4775('0x1b')]();});}};}function handleEntityNotFound(_0x354c1d,_0x48e5cb){return function(_0x15997f){if(!_0x15997f){_0x354c1d[_0x4775('0x19')](0x194);}return _0x15997f;};}function handleError(_0x295ac3,_0x9266d3){_0x9266d3=_0x9266d3||0x1f4;return function(_0x506072){logger['error'](_0x506072[_0x4775('0x2a')]);if(_0x506072[_0x4775('0x2b')]){delete _0x506072[_0x4775('0x2b')];}_0x295ac3[_0x4775('0x1a')](_0x9266d3)['send'](_0x506072);};}exports[_0x4775('0x2c')]=function(_0x4f7720,_0x4e13f0){var _0x78e968={},_0x2a1fd9={},_0x1160c5={'count':0x0,'rows':[]};var _0x167f43=_['map'](db[_0x4775('0x2d')][_0x4775('0x2e')],function(_0x1b2dca){return{'name':_0x1b2dca[_0x4775('0x2f')],'type':_0x1b2dca[_0x4775('0x30')][_0x4775('0x31')]};});_0x2a1fd9[_0x4775('0x32')]=_[_0x4775('0x33')](_0x167f43,_0x4775('0x2b'));_0x2a1fd9['query']=_[_0x4775('0x34')](_0x4f7720[_0x4775('0x35')]);_0x2a1fd9[_0x4775('0x36')]=_[_0x4775('0x37')](_0x2a1fd9[_0x4775('0x32')],_0x2a1fd9[_0x4775('0x35')]);_0x78e968[_0x4775('0x38')]=_[_0x4775('0x37')](_0x2a1fd9[_0x4775('0x32')],qs[_0x4775('0x39')](_0x4f7720[_0x4775('0x35')][_0x4775('0x39')]));_0x78e968['attributes']=_0x78e968[_0x4775('0x38')]['length']?_0x78e968['attributes']:_0x2a1fd9[_0x4775('0x32')];if(!_0x4f7720['query']['hasOwnProperty'](_0x4775('0x3a'))){_0x78e968[_0x4775('0x1e')]=qs[_0x4775('0x1e')](_0x4f7720['query'][_0x4775('0x1e')]);_0x78e968[_0x4775('0x1c')]=qs[_0x4775('0x1c')](_0x4f7720[_0x4775('0x35')]['offset']);}_0x78e968[_0x4775('0x3b')]=qs[_0x4775('0x3c')](_0x4f7720['query']['sort']);_0x78e968[_0x4775('0x3d')]=qs[_0x4775('0x36')](_[_0x4775('0x3e')](_0x4f7720[_0x4775('0x35')],_0x2a1fd9['filters']),_0x167f43);if(_0x4f7720[_0x4775('0x35')]['filter']){_0x78e968['where']=_[_0x4775('0x3f')](_0x78e968[_0x4775('0x3d')],{'$or':_[_0x4775('0x33')](_0x167f43,function(_0x42c825){if(_0x42c825['type']!=='VIRTUAL'){var _0x4d6131={};_0x4d6131[_0x42c825[_0x4775('0x2b')]]={'$like':'%'+_0x4f7720[_0x4775('0x35')]['filter']+'%'};return _0x4d6131;}})});}_0x78e968=_[_0x4775('0x3f')]({},_0x78e968,_0x4f7720[_0x4775('0x40')]);var _0x916e23={'where':_0x78e968[_0x4775('0x3d')]};return db['Template']['count'](_0x916e23)['then'](function(_0x2e95bc){_0x1160c5['count']=_0x2e95bc;if(_0x4f7720[_0x4775('0x35')]['includeAll']){_0x78e968[_0x4775('0x41')]=[{'all':!![]}];}return db['Template'][_0x4775('0x42')](_0x78e968);})[_0x4775('0x26')](function(_0x10a300){_0x1160c5['rows']=_0x10a300;return _0x1160c5;})[_0x4775('0x26')](respondWithFilteredResult(_0x4e13f0,_0x78e968))[_0x4775('0x43')](handleError(_0x4e13f0,null));};exports[_0x4775('0x44')]=function(_0x176586,_0x2ac383){var _0x1d63c6={'raw':!![],'where':{'id':_0x176586[_0x4775('0x45')]['id']}},_0x295362={};_0x295362['model']=_['keys'](db[_0x4775('0x2d')][_0x4775('0x2e')]);_0x295362[_0x4775('0x35')]=_[_0x4775('0x34')](_0x176586['query']);_0x295362['filters']=_['intersection'](_0x295362['model'],_0x295362[_0x4775('0x35')]);_0x1d63c6[_0x4775('0x38')]=_['intersection'](_0x295362[_0x4775('0x32')],qs['fields'](_0x176586[_0x4775('0x35')][_0x4775('0x39')]));_0x1d63c6[_0x4775('0x38')]=_0x1d63c6[_0x4775('0x38')][_0x4775('0x46')]?_0x1d63c6[_0x4775('0x38')]:_0x295362[_0x4775('0x32')];if(_0x176586[_0x4775('0x35')]['includeAll']){_0x1d63c6[_0x4775('0x41')]=[{'all':!![]}];}_0x1d63c6=_['merge']({},_0x1d63c6,_0x176586[_0x4775('0x40')]);return db[_0x4775('0x2d')]['find'](_0x1d63c6)[_0x4775('0x26')](handleEntityNotFound(_0x2ac383,null))['then'](respondWithResult(_0x2ac383,null))['catch'](handleError(_0x2ac383,null));};exports['create']=function(_0x45fb6c,_0x38bb6c){return db[_0x4775('0x2d')][_0x4775('0x47')](_0x45fb6c['body'],{})[_0x4775('0x26')](function(_0xbdeb2e){var _0x1bed56=_0x45fb6c['user'][_0x4775('0x27')]({'plain':!![]});if(!_0x1bed56)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x1bed56[_0x4775('0x48')]===_0x4775('0x49')){var _0x4d190c=_0xbdeb2e[_0x4775('0x27')]({'plain':!![]});var _0x578493=_0x4775('0x28');return db[_0x4775('0x4a')]['find']({'where':{'name':_0x578493,'userProfileId':_0x1bed56['userProfileId']},'raw':!![]})['then'](function(_0x1eb264){if(_0x1eb264&&_0x1eb264['autoAssociation']===0x0){return db[_0x4775('0x29')][_0x4775('0x47')]({'name':_0x4d190c[_0x4775('0x2b')],'resourceId':_0x4d190c['id'],'type':_0x1eb264[_0x4775('0x2b')],'sectionId':_0x1eb264['id']},{})[_0x4775('0x26')](function(){return _0xbdeb2e;});}else{return _0xbdeb2e;}})[_0x4775('0x43')](function(_0x11c887){logger[_0x4775('0x4b')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x11c887);throw _0x11c887;});}return _0xbdeb2e;})[_0x4775('0x26')](respondWithResult(_0x38bb6c,0xc9))[_0x4775('0x43')](handleError(_0x38bb6c,null));};exports[_0x4775('0x24')]=function(_0x5044b2,_0x478f0f){if(_0x5044b2[_0x4775('0x4c')]['id']){delete _0x5044b2['body']['id'];}return db[_0x4775('0x2d')][_0x4775('0x4d')]({'where':{'id':_0x5044b2['params']['id']}})[_0x4775('0x26')](handleEntityNotFound(_0x478f0f,null))[_0x4775('0x26')](saveUpdates(_0x5044b2['body'],null))[_0x4775('0x26')](respondWithResult(_0x478f0f,null))[_0x4775('0x43')](handleError(_0x478f0f,null));};exports[_0x4775('0x25')]=function(_0x38e1f7,_0x5c3e82){return db[_0x4775('0x2d')]['find']({'where':{'id':_0x38e1f7[_0x4775('0x45')]['id']}})['then'](handleEntityNotFound(_0x5c3e82,null))['then'](removeEntity(_0x5c3e82,null))[_0x4775('0x43')](handleError(_0x5c3e82,null));};
\ No newline at end of file
+var _0x4813=['Templates','UserProfileSection','userProfileId','autoAssociation','catch','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','ejs','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','reject','save','update','then','destroy','get','sendStatus','name','send','index','map','fieldName','type','key','model','query','keys','filters','intersection','attributes','nolimit','order','sort','where','pick','merge','VIRTUAL','options','Template','includeAll','include','findAll','rows','show','params','fields','length','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user'];(function(_0x1df503,_0x581379){var _0x26539a=function(_0x3993c8){while(--_0x3993c8){_0x1df503['push'](_0x1df503['shift']());}};_0x26539a(++_0x581379);}(_0x4813,0x102));var _0x3481=function(_0x882a91,_0x22791e){_0x882a91=_0x882a91-0x0;var _0x34a938=_0x4813[_0x882a91];return _0x34a938;};'use strict';var emlformat=require(_0x3481('0x0'));var rimraf=require(_0x3481('0x1'));var zipdir=require(_0x3481('0x2'));var jsonpatch=require(_0x3481('0x3'));var rp=require(_0x3481('0x4'));var moment=require(_0x3481('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x3481('0x6'));var util=require(_0x3481('0x7'));var path=require(_0x3481('0x8'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x3481('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x3481('0xa'));var crypto=require(_0x3481('0xb'));var jsforce=require(_0x3481('0xc'));var deskjs=require(_0x3481('0xd'));var toCsv=require(_0x3481('0xe'));var querystring=require(_0x3481('0xf'));var Papa=require(_0x3481('0x10'));var Redis=require(_0x3481('0x11'));var authService=require(_0x3481('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x3481('0x13'));var hardwareService=require(_0x3481('0x14'));var logger=require(_0x3481('0x15'))('api');var utils=require(_0x3481('0x16'));var config=require(_0x3481('0x17'));var licenseUtil=require(_0x3481('0x18'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x4d774e,_0x1fa2c4){_0x1fa2c4=_0x1fa2c4||0xcc;return function(_0x56f634){if(_0x56f634){return _0x4d774e['sendStatus'](_0x1fa2c4);}return _0x4d774e[_0x3481('0x19')](_0x1fa2c4)[_0x3481('0x1a')]();};}function respondWithResult(_0x1482f7,_0x4d0146){_0x4d0146=_0x4d0146||0xc8;return function(_0x57746b){if(_0x57746b){return _0x1482f7[_0x3481('0x19')](_0x4d0146)[_0x3481('0x1b')](_0x57746b);}};}function respondWithFilteredResult(_0x20b2a6,_0x4cbe21){return function(_0x302bcf){if(_0x302bcf){var _0x3defed=typeof _0x4cbe21['offset']===_0x3481('0x1c')&&typeof _0x4cbe21[_0x3481('0x1d')]===_0x3481('0x1c');var _0x1d2a69=_0x302bcf[_0x3481('0x1e')];var _0x3e6fff=_0x3defed?0x0:_0x4cbe21[_0x3481('0x1f')];var _0x54a144=_0x3defed?_0x302bcf[_0x3481('0x1e')]:_0x4cbe21[_0x3481('0x1f')]+_0x4cbe21[_0x3481('0x1d')];var _0x41a193;if(_0x54a144>=_0x1d2a69){_0x54a144=_0x1d2a69;_0x41a193=0xc8;}else{_0x41a193=0xce;}_0x20b2a6[_0x3481('0x19')](_0x41a193);return _0x20b2a6[_0x3481('0x20')](_0x3481('0x21'),_0x3e6fff+'-'+_0x54a144+'/'+_0x1d2a69)[_0x3481('0x1b')](_0x302bcf);}return null;};}function patchUpdates(_0x22cee1){return function(_0x501d1d){try{jsonpatch[_0x3481('0x22')](_0x501d1d,_0x22cee1,!![]);}catch(_0x208ef4){return BPromise[_0x3481('0x23')](_0x208ef4);}return _0x501d1d[_0x3481('0x24')]();};}function saveUpdates(_0xc0aa98,_0x1cf664){return function(_0x26d507){if(_0x26d507){return _0x26d507[_0x3481('0x25')](_0xc0aa98)[_0x3481('0x26')](function(_0x40cc6b){return _0x40cc6b;});}return null;};}function removeEntity(_0x235cee,_0x1c88c3){return function(_0x143b4c){if(_0x143b4c){return _0x143b4c[_0x3481('0x27')]()[_0x3481('0x26')](function(){var _0xd84da3=_0x143b4c[_0x3481('0x28')]({'plain':!![]});var _0x3d557f='Templates';return db['UserProfileResource'][_0x3481('0x27')]({'where':{'type':_0x3d557f,'resourceId':_0xd84da3['id']}})[_0x3481('0x26')](function(){return _0x143b4c;});})[_0x3481('0x26')](function(){_0x235cee[_0x3481('0x19')](0xcc)[_0x3481('0x1a')]();});}};}function handleEntityNotFound(_0x5a2858,_0x2a2a11){return function(_0x4adf09){if(!_0x4adf09){_0x5a2858[_0x3481('0x29')](0x194);}return _0x4adf09;};}function handleError(_0x12052e,_0x1c8b9a){_0x1c8b9a=_0x1c8b9a||0x1f4;return function(_0x3e96f0){logger['error'](_0x3e96f0['stack']);if(_0x3e96f0[_0x3481('0x2a')]){delete _0x3e96f0[_0x3481('0x2a')];}_0x12052e[_0x3481('0x19')](_0x1c8b9a)[_0x3481('0x2b')](_0x3e96f0);};}exports[_0x3481('0x2c')]=function(_0x4f2605,_0x4f2df9){var _0xd2bb={},_0x487ce5={},_0x250356={'count':0x0,'rows':[]};var _0x5810b4=_[_0x3481('0x2d')](db['Template']['rawAttributes'],function(_0x388a24){return{'name':_0x388a24[_0x3481('0x2e')],'type':_0x388a24[_0x3481('0x2f')][_0x3481('0x30')]};});_0x487ce5[_0x3481('0x31')]=_[_0x3481('0x2d')](_0x5810b4,_0x3481('0x2a'));_0x487ce5[_0x3481('0x32')]=_[_0x3481('0x33')](_0x4f2605[_0x3481('0x32')]);_0x487ce5[_0x3481('0x34')]=_[_0x3481('0x35')](_0x487ce5[_0x3481('0x31')],_0x487ce5[_0x3481('0x32')]);_0xd2bb[_0x3481('0x36')]=_['intersection'](_0x487ce5['model'],qs['fields'](_0x4f2605[_0x3481('0x32')]['fields']));_0xd2bb['attributes']=_0xd2bb[_0x3481('0x36')]['length']?_0xd2bb[_0x3481('0x36')]:_0x487ce5[_0x3481('0x31')];if(!_0x4f2605[_0x3481('0x32')]['hasOwnProperty'](_0x3481('0x37'))){_0xd2bb[_0x3481('0x1d')]=qs['limit'](_0x4f2605['query'][_0x3481('0x1d')]);_0xd2bb[_0x3481('0x1f')]=qs[_0x3481('0x1f')](_0x4f2605['query'][_0x3481('0x1f')]);}_0xd2bb[_0x3481('0x38')]=qs[_0x3481('0x39')](_0x4f2605[_0x3481('0x32')][_0x3481('0x39')]);_0xd2bb[_0x3481('0x3a')]=qs[_0x3481('0x34')](_[_0x3481('0x3b')](_0x4f2605['query'],_0x487ce5['filters']),_0x5810b4);if(_0x4f2605[_0x3481('0x32')]['filter']){_0xd2bb['where']=_[_0x3481('0x3c')](_0xd2bb[_0x3481('0x3a')],{'$or':_[_0x3481('0x2d')](_0x5810b4,function(_0x2da519){if(_0x2da519['type']!==_0x3481('0x3d')){var _0x1517cf={};_0x1517cf[_0x2da519[_0x3481('0x2a')]]={'$like':'%'+_0x4f2605['query']['filter']+'%'};return _0x1517cf;}})});}_0xd2bb=_['merge']({},_0xd2bb,_0x4f2605[_0x3481('0x3e')]);var _0x879f76={'where':_0xd2bb[_0x3481('0x3a')]};return db[_0x3481('0x3f')][_0x3481('0x1e')](_0x879f76)['then'](function(_0x27debf){_0x250356['count']=_0x27debf;if(_0x4f2605[_0x3481('0x32')][_0x3481('0x40')]){_0xd2bb[_0x3481('0x41')]=[{'all':!![]}];}return db['Template'][_0x3481('0x42')](_0xd2bb);})[_0x3481('0x26')](function(_0x3ddbeb){_0x250356[_0x3481('0x43')]=_0x3ddbeb;return _0x250356;})['then'](respondWithFilteredResult(_0x4f2df9,_0xd2bb))['catch'](handleError(_0x4f2df9,null));};exports[_0x3481('0x44')]=function(_0x9fbe2a,_0x48026e){var _0x10e743={'raw':!![],'where':{'id':_0x9fbe2a[_0x3481('0x45')]['id']}},_0x57ee2e={};_0x57ee2e['model']=_[_0x3481('0x33')](db['Template']['rawAttributes']);_0x57ee2e[_0x3481('0x32')]=_['keys'](_0x9fbe2a[_0x3481('0x32')]);_0x57ee2e[_0x3481('0x34')]=_['intersection'](_0x57ee2e[_0x3481('0x31')],_0x57ee2e[_0x3481('0x32')]);_0x10e743[_0x3481('0x36')]=_[_0x3481('0x35')](_0x57ee2e[_0x3481('0x31')],qs[_0x3481('0x46')](_0x9fbe2a[_0x3481('0x32')]['fields']));_0x10e743['attributes']=_0x10e743['attributes'][_0x3481('0x47')]?_0x10e743['attributes']:_0x57ee2e[_0x3481('0x31')];if(_0x9fbe2a[_0x3481('0x32')]['includeAll']){_0x10e743[_0x3481('0x41')]=[{'all':!![]}];}_0x10e743=_['merge']({},_0x10e743,_0x9fbe2a[_0x3481('0x3e')]);return db['Template'][_0x3481('0x48')](_0x10e743)['then'](handleEntityNotFound(_0x48026e,null))['then'](respondWithResult(_0x48026e,null))['catch'](handleError(_0x48026e,null));};exports[_0x3481('0x49')]=function(_0x3f9474,_0x31370d){return db[_0x3481('0x3f')]['create'](_0x3f9474[_0x3481('0x4a')],{})[_0x3481('0x26')](function(_0x330c5b){var _0x44c021=_0x3f9474['user']['get']({'plain':!![]});if(!_0x44c021)throw new Error(_0x3481('0x4b'));if(_0x44c021[_0x3481('0x4c')]===_0x3481('0x4d')){var _0x907c46=_0x330c5b[_0x3481('0x28')]({'plain':!![]});var _0x5b3aca=_0x3481('0x4e');return db[_0x3481('0x4f')][_0x3481('0x48')]({'where':{'name':_0x5b3aca,'userProfileId':_0x44c021[_0x3481('0x50')]},'raw':!![]})[_0x3481('0x26')](function(_0x5b0a9d){if(_0x5b0a9d&&_0x5b0a9d[_0x3481('0x51')]===0x0){return db['UserProfileResource'][_0x3481('0x49')]({'name':_0x907c46[_0x3481('0x2a')],'resourceId':_0x907c46['id'],'type':_0x5b0a9d[_0x3481('0x2a')],'sectionId':_0x5b0a9d['id']},{})[_0x3481('0x26')](function(){return _0x330c5b;});}else{return _0x330c5b;}})[_0x3481('0x52')](function(_0x110f6e){logger['error'](_0x3481('0x53'),_0x110f6e);throw _0x110f6e;});}return _0x330c5b;})[_0x3481('0x26')](respondWithResult(_0x31370d,0xc9))['catch'](handleError(_0x31370d,null));};exports[_0x3481('0x25')]=function(_0x239718,_0x32fd9d){if(_0x239718[_0x3481('0x4a')]['id']){delete _0x239718['body']['id'];}return db[_0x3481('0x3f')][_0x3481('0x48')]({'where':{'id':_0x239718['params']['id']}})['then'](handleEntityNotFound(_0x32fd9d,null))[_0x3481('0x26')](saveUpdates(_0x239718[_0x3481('0x4a')],null))[_0x3481('0x26')](respondWithResult(_0x32fd9d,null))[_0x3481('0x52')](handleError(_0x32fd9d,null));};exports[_0x3481('0x27')]=function(_0xad5a0a,_0x34084f){return db[_0x3481('0x3f')][_0x3481('0x48')]({'where':{'id':_0xad5a0a[_0x3481('0x45')]['id']}})[_0x3481('0x26')](handleEntityNotFound(_0x34084f,null))[_0x3481('0x26')](removeEntity(_0x34084f,null))[_0x3481('0x52')](handleError(_0x34084f,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb57b=['moment','bluebird','request-promise','path','rimraf','../../config/environment','./template.attributes','exports','define','Template','tools_templates','util','api'];(function(_0x31a92f,_0x2ba4e7){var _0x52212d=function(_0x2d9c02){while(--_0x2d9c02){_0x31a92f['push'](_0x31a92f['shift']());}};_0x52212d(++_0x2ba4e7);}(_0xb57b,0xdb));var _0xbb57=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0xb57b[_0x14add3];return _0x4a174f;};'use strict';var _=require('lodash');var util=require(_0xbb57('0x0'));var logger=require('../../config/logger')(_0xbb57('0x1'));var moment=require(_0xbb57('0x2'));var BPromise=require(_0xbb57('0x3'));var rp=require(_0xbb57('0x4'));var fs=require('fs');var path=require(_0xbb57('0x5'));var rimraf=require(_0xbb57('0x6'));var config=require(_0xbb57('0x7'));var attributes=require(_0xbb57('0x8'));module[_0xbb57('0x9')]=function(_0x15e149,_0x1ce323){return _0x15e149[_0xbb57('0xa')](_0xbb57('0xb'),attributes,{'tableName':_0xbb57('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x2eb1=['../../config/logger','moment','bluebird','request-promise','path','rimraf','../../config/environment','./template.attributes','define','Template','tools_templates','lodash'];(function(_0x4c70c4,_0x963969){var _0x437865=function(_0x54e323){while(--_0x54e323){_0x4c70c4['push'](_0x4c70c4['shift']());}};_0x437865(++_0x963969);}(_0x2eb1,0x11f));var _0x12eb=function(_0x2b1283,_0x325a7e){_0x2b1283=_0x2b1283-0x0;var _0x302990=_0x2eb1[_0x2b1283];return _0x302990;};'use strict';var _=require(_0x12eb('0x0'));var util=require('util');var logger=require(_0x12eb('0x1'))('api');var moment=require(_0x12eb('0x2'));var BPromise=require(_0x12eb('0x3'));var rp=require(_0x12eb('0x4'));var fs=require('fs');var path=require(_0x12eb('0x5'));var rimraf=require(_0x12eb('0x6'));var config=require(_0x12eb('0x7'));var attributes=require(_0x12eb('0x8'));module['exports']=function(_0x43a514,_0x1da7a8){return _0x43a514[_0x12eb('0x9')](_0x12eb('0xa'),attributes,{'tableName':_0x12eb('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x749c=['../../config/logger','rpc','../../config/environment','client','request','then','Template,\x20%s,\x20%s','request\x20sent','Template,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','GetTemplate','Template','findAll','options','raw','where','limit','include','map','model','attributes','debug','catch','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils'];(function(_0x2db2e4,_0x49130e){var _0x2ef52d=function(_0x429b1a){while(--_0x429b1a){_0x2db2e4['push'](_0x2db2e4['shift']());}};_0x2ef52d(++_0x49130e);}(_0x749c,0x17a));var _0xc749=function(_0x3afe18,_0x26922c){_0x3afe18=_0x3afe18-0x0;var _0x19ed1f=_0x749c[_0x3afe18];return _0x19ed1f;};'use strict';var _=require(_0xc749('0x0'));var util=require(_0xc749('0x1'));var moment=require(_0xc749('0x2'));var BPromise=require(_0xc749('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xc749('0x4'));var db=require(_0xc749('0x5'))['db'];var utils=require(_0xc749('0x6'));var logger=require(_0xc749('0x7'))(_0xc749('0x8'));var config=require(_0xc749('0x9'));var jayson=require('jayson/promise');var client=jayson[_0xc749('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0xc3d477,_0x319a38,_0x545931){return new BPromise(function(_0x246131,_0x37e653){return client[_0xc749('0xb')](_0xc3d477,_0x545931)[_0xc749('0xc')](function(_0x18dadb){logger['info'](_0xc749('0xd'),_0x319a38,_0xc749('0xe'));logger['debug'](_0xc749('0xf'),_0x319a38,_0xc749('0xe'),JSON[_0xc749('0x10')](_0x18dadb));if(_0x18dadb['error']){if(_0x18dadb[_0xc749('0x11')][_0xc749('0x12')]===0x1f4){logger[_0xc749('0x11')](_0xc749('0xd'),_0x319a38,_0x18dadb['error']['message']);return _0x37e653(_0x18dadb['error'][_0xc749('0x13')]);}logger[_0xc749('0x11')]('Template,\x20%s,\x20%s',_0x319a38,_0x18dadb[_0xc749('0x11')][_0xc749('0x13')]);return _0x246131(_0x18dadb[_0xc749('0x11')]['message']);}else{logger[_0xc749('0x14')](_0xc749('0xd'),_0x319a38,_0xc749('0xe'));_0x246131(_0x18dadb[_0xc749('0x15')][_0xc749('0x13')]);}})['catch'](function(_0x40a775){logger['error'](_0xc749('0xd'),_0x319a38,_0x40a775);_0x37e653(_0x40a775);});});}exports[_0xc749('0x16')]=function(_0x405c3d){var _0x3b72a1=this;return new Promise(function(_0x575082,_0x4bfe9d){return db[_0xc749('0x17')][_0xc749('0x18')]({'raw':_0x405c3d['options']?_0x405c3d[_0xc749('0x19')][_0xc749('0x1a')]===undefined?!![]:![]:!![],'where':_0x405c3d['options']?_0x405c3d[_0xc749('0x19')][_0xc749('0x1b')]||null:null,'attributes':_0x405c3d['options']?_0x405c3d[_0xc749('0x19')]['attributes']||null:null,'limit':_0x405c3d[_0xc749('0x19')]?_0x405c3d[_0xc749('0x19')][_0xc749('0x1c')]||null:null,'include':_0x405c3d[_0xc749('0x19')]?_0x405c3d[_0xc749('0x19')][_0xc749('0x1d')]?_[_0xc749('0x1e')](_0x405c3d[_0xc749('0x19')][_0xc749('0x1d')],function(_0x4f6171){return{'model':db[_0x4f6171[_0xc749('0x1f')]],'as':_0x4f6171['as'],'attributes':_0x4f6171[_0xc749('0x20')],'include':_0x4f6171['include']?_[_0xc749('0x1e')](_0x4f6171['include'],function(_0xe35116){return{'model':db[_0xe35116[_0xc749('0x1f')]],'as':_0xe35116['as'],'attributes':_0xe35116[_0xc749('0x20')],'include':_0xe35116[_0xc749('0x1d')]?_[_0xc749('0x1e')](_0xe35116[_0xc749('0x1d')],function(_0xcb9531){return{'model':db[_0xcb9531[_0xc749('0x1f')]],'as':_0xcb9531['as'],'attributes':_0xcb9531[_0xc749('0x20')]};}):[]};}):[]};}):[]:[]})[_0xc749('0xc')](function(_0x2db7fc){logger[_0xc749('0x14')](_0xc749('0x16'),_0x405c3d);logger[_0xc749('0x21')]('GetTemplate',_0x405c3d,JSON[_0xc749('0x10')](_0x2db7fc));_0x575082(_0x2db7fc);})[_0xc749('0x22')](function(_0x51f51e){logger['error'](_0xc749('0x16'),_0x51f51e['message'],_0x405c3d);_0x4bfe9d(_0x3b72a1[_0xc749('0x11')](0x1f4,_0x51f51e['message']));});});};
\ No newline at end of file
+var _0xee1e=['GetTemplate','findAll','options','raw','where','attributes','include','model','map','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','then','info','Template,\x20%s,\x20%s','request\x20sent','debug','Template,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch'];(function(_0x4dba7a,_0x5df403){var _0x519db2=function(_0x536659){while(--_0x536659){_0x4dba7a['push'](_0x4dba7a['shift']());}};_0x519db2(++_0x5df403);}(_0xee1e,0x109));var _0xeee1=function(_0x1ca890,_0x21d0d3){_0x1ca890=_0x1ca890-0x0;var _0x3f8e01=_0xee1e[_0x1ca890];return _0x3f8e01;};'use strict';var _=require(_0xeee1('0x0'));var util=require('util');var moment=require(_0xeee1('0x1'));var BPromise=require(_0xeee1('0x2'));var rs=require(_0xeee1('0x3'));var fs=require('fs');var Redis=require(_0xeee1('0x4'));var db=require(_0xeee1('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0xeee1('0x6'))(_0xeee1('0x7'));var config=require(_0xeee1('0x8'));var jayson=require(_0xeee1('0x9'));var client=jayson[_0xeee1('0xa')][_0xeee1('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x3fc4b2,_0x2f8229,_0x28703e){return new BPromise(function(_0x5a4a9d,_0x138407){return client['request'](_0x3fc4b2,_0x28703e)[_0xeee1('0xc')](function(_0x376b2c){logger[_0xeee1('0xd')](_0xeee1('0xe'),_0x2f8229,_0xeee1('0xf'));logger[_0xeee1('0x10')](_0xeee1('0x11'),_0x2f8229,_0xeee1('0xf'),JSON[_0xeee1('0x12')](_0x376b2c));if(_0x376b2c[_0xeee1('0x13')]){if(_0x376b2c['error'][_0xeee1('0x14')]===0x1f4){logger[_0xeee1('0x13')](_0xeee1('0xe'),_0x2f8229,_0x376b2c[_0xeee1('0x13')][_0xeee1('0x15')]);return _0x138407(_0x376b2c[_0xeee1('0x13')][_0xeee1('0x15')]);}logger[_0xeee1('0x13')]('Template,\x20%s,\x20%s',_0x2f8229,_0x376b2c['error'][_0xeee1('0x15')]);return _0x5a4a9d(_0x376b2c[_0xeee1('0x13')][_0xeee1('0x15')]);}else{logger[_0xeee1('0xd')](_0xeee1('0xe'),_0x2f8229,_0xeee1('0xf'));_0x5a4a9d(_0x376b2c['result'][_0xeee1('0x15')]);}})[_0xeee1('0x16')](function(_0x269e25){logger['error']('Template,\x20%s,\x20%s',_0x2f8229,_0x269e25);_0x138407(_0x269e25);});});}exports[_0xeee1('0x17')]=function(_0x257826){var _0x2159ed=this;return new Promise(function(_0x51c184,_0x66010e){return db['Template'][_0xeee1('0x18')]({'raw':_0x257826[_0xeee1('0x19')]?_0x257826[_0xeee1('0x19')][_0xeee1('0x1a')]===undefined?!![]:![]:!![],'where':_0x257826[_0xeee1('0x19')]?_0x257826['options'][_0xeee1('0x1b')]||null:null,'attributes':_0x257826[_0xeee1('0x19')]?_0x257826[_0xeee1('0x19')][_0xeee1('0x1c')]||null:null,'limit':_0x257826['options']?_0x257826[_0xeee1('0x19')]['limit']||null:null,'include':_0x257826['options']?_0x257826[_0xeee1('0x19')][_0xeee1('0x1d')]?_['map'](_0x257826[_0xeee1('0x19')][_0xeee1('0x1d')],function(_0x53ee66){return{'model':db[_0x53ee66[_0xeee1('0x1e')]],'as':_0x53ee66['as'],'attributes':_0x53ee66['attributes'],'include':_0x53ee66['include']?_[_0xeee1('0x1f')](_0x53ee66[_0xeee1('0x1d')],function(_0x301aa9){return{'model':db[_0x301aa9[_0xeee1('0x1e')]],'as':_0x301aa9['as'],'attributes':_0x301aa9[_0xeee1('0x1c')],'include':_0x301aa9[_0xeee1('0x1d')]?_[_0xeee1('0x1f')](_0x301aa9[_0xeee1('0x1d')],function(_0x34f91e){return{'model':db[_0x34f91e['model']],'as':_0x34f91e['as'],'attributes':_0x34f91e[_0xeee1('0x1c')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x5ea8dc){logger[_0xeee1('0xd')]('GetTemplate',_0x257826);logger[_0xeee1('0x10')](_0xeee1('0x17'),_0x257826,JSON[_0xeee1('0x12')](_0x5ea8dc));_0x51c184(_0x5ea8dc);})['catch'](function(_0x32c1b2){logger[_0xeee1('0x13')](_0xeee1('0x17'),_0x32c1b2[_0xeee1('0x15')],_0x257826);_0x66010e(_0x2159ed[_0xeee1('0x13')](0x1f4,_0x32c1b2['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7035=['/:id','show','/:id/all_conditions','/:id/actions','getActions','post','addAllCondition','/:id/any_conditions','addAnyCondition','put','update','delete','destroy','exports','multer','path','connect-timeout','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated'];(function(_0x1e7b34,_0x3bef1a){var _0x5a68b9=function(_0x37812a){while(--_0x37812a){_0x1e7b34['push'](_0x1e7b34['shift']());}};_0x5a68b9(++_0x3bef1a);}(_0x7035,0x15e));var _0x5703=function(_0x2f8401,_0x271658){_0x2f8401=_0x2f8401-0x0;var _0x4ac9d5=_0x7035[_0x2f8401];return _0x4ac9d5;};'use strict';var multer=require(_0x5703('0x0'));var util=require('util');var path=require(_0x5703('0x1'));var timeout=require(_0x5703('0x2'));var express=require('express');var router=express[_0x5703('0x3')]();var fs_extra=require(_0x5703('0x4'));var auth=require(_0x5703('0x5'));var interaction=require(_0x5703('0x6'));var config=require(_0x5703('0x7'));var controller=require('./trigger.controller');router[_0x5703('0x8')]('/',auth[_0x5703('0x9')](),controller['index']);router[_0x5703('0x8')](_0x5703('0xa'),auth[_0x5703('0x9')](),controller[_0x5703('0xb')]);router[_0x5703('0x8')](_0x5703('0xc'),auth['isAuthenticated'](),controller['getAllConditions']);router[_0x5703('0x8')]('/:id/any_conditions',auth[_0x5703('0x9')](),controller['getAnyConditions']);router['get'](_0x5703('0xd'),auth[_0x5703('0x9')](),controller[_0x5703('0xe')]);router['post']('/',auth[_0x5703('0x9')](),controller['create']);router[_0x5703('0xf')](_0x5703('0xc'),auth[_0x5703('0x9')](),controller[_0x5703('0x10')]);router[_0x5703('0xf')](_0x5703('0x11'),auth[_0x5703('0x9')](),controller[_0x5703('0x12')]);router[_0x5703('0xf')](_0x5703('0xd'),auth[_0x5703('0x9')](),controller['addAction']);router[_0x5703('0x13')](_0x5703('0xa'),auth[_0x5703('0x9')](),controller[_0x5703('0x14')]);router[_0x5703('0x15')](_0x5703('0xa'),auth[_0x5703('0x9')](),controller[_0x5703('0x16')]);module[_0x5703('0x17')]=router;
\ No newline at end of file
+var _0xf990=['index','show','/:id/all_conditions','/:id/any_conditions','getAnyConditions','/:id/actions','getActions','post','addAllCondition','addAnyCondition','put','/:id','update','delete','destroy','multer','path','connect-timeout','Router','fs-extra','../../components/interaction/service','../../config/environment','get','isAuthenticated'];(function(_0x5117d1,_0x50c830){var _0x10fc94=function(_0x3c0055){while(--_0x3c0055){_0x5117d1['push'](_0x5117d1['shift']());}};_0x10fc94(++_0x50c830);}(_0xf990,0x87));var _0x0f99=function(_0x3afa1c,_0x33e0d3){_0x3afa1c=_0x3afa1c-0x0;var _0x135181=_0xf990[_0x3afa1c];return _0x135181;};'use strict';var multer=require(_0x0f99('0x0'));var util=require('util');var path=require(_0x0f99('0x1'));var timeout=require(_0x0f99('0x2'));var express=require('express');var router=express[_0x0f99('0x3')]();var fs_extra=require(_0x0f99('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x0f99('0x5'));var config=require(_0x0f99('0x6'));var controller=require('./trigger.controller');router[_0x0f99('0x7')]('/',auth[_0x0f99('0x8')](),controller[_0x0f99('0x9')]);router[_0x0f99('0x7')]('/:id',auth['isAuthenticated'](),controller[_0x0f99('0xa')]);router[_0x0f99('0x7')](_0x0f99('0xb'),auth[_0x0f99('0x8')](),controller['getAllConditions']);router[_0x0f99('0x7')](_0x0f99('0xc'),auth[_0x0f99('0x8')](),controller[_0x0f99('0xd')]);router['get'](_0x0f99('0xe'),auth[_0x0f99('0x8')](),controller[_0x0f99('0xf')]);router[_0x0f99('0x10')]('/',auth['isAuthenticated'](),controller['create']);router[_0x0f99('0x10')](_0x0f99('0xb'),auth[_0x0f99('0x8')](),controller[_0x0f99('0x11')]);router[_0x0f99('0x10')](_0x0f99('0xc'),auth[_0x0f99('0x8')](),controller[_0x0f99('0x12')]);router['post'](_0x0f99('0xe'),auth['isAuthenticated'](),controller['addAction']);router[_0x0f99('0x13')](_0x0f99('0x14'),auth[_0x0f99('0x8')](),controller[_0x0f99('0x15')]);router[_0x0f99('0x16')]('/:id',auth[_0x0f99('0x8')](),controller[_0x0f99('0x17')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9a4a=['exports','STRING'];(function(_0x337a10,_0x5191c7){var _0x575f98=function(_0x3851cd){while(--_0x3851cd){_0x337a10['push'](_0x337a10['shift']());}};_0x575f98(++_0x5191c7);}(_0x9a4a,0x1ec));var _0xa9a4=function(_0x397e5f,_0x454c8f){_0x397e5f=_0x397e5f-0x0;var _0x5302b8=_0x9a4a[_0x397e5f];return _0x5302b8;};'use strict';var Sequelize=require('sequelize');module[_0xa9a4('0x0')]={'name':{'type':Sequelize[_0xa9a4('0x1')]},'channel':{'type':Sequelize[_0xa9a4('0x1')]},'description':{'type':Sequelize[_0xa9a4('0x1')]},'status':{'type':Sequelize['BOOLEAN'],'defaultValue':![]}};
\ No newline at end of file
+var _0x2058=['STRING','BOOLEAN','sequelize','exports'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x2058,0x146));var _0x8205=function(_0x500211,_0x1a0367){_0x500211=_0x500211-0x0;var _0x48f4e0=_0x2058[_0x500211];return _0x48f4e0;};'use strict';var Sequelize=require(_0x8205('0x0'));module[_0x8205('0x1')]={'name':{'type':Sequelize['STRING']},'channel':{'type':Sequelize[_0x8205('0x2')]},'description':{'type':Sequelize['STRING']},'status':{'type':Sequelize[_0x8205('0x3')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1fb6=['autoAssociation','catch','addAllCondition','TriggerAllId','Condition','addAnyCondition','TriggerAnyId','getAllConditions','findOne','sort','length','nolimit','getAnyConditions','hasOwnProperty','TriggerId','Action','order','getActions','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','reject','save','update','then','destroy','Triggers','UserProfileResource','error','name','send','index','map','Trigger','rawAttributes','fieldName','type','model','query','keys','filters','intersection','fields','attributes','pick','where','merge','VIRTUAL','filter','options','includeAll','include','rows','show','params','find','create','body','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','userProfileId'];(function(_0x3d8812,_0x24b648){var _0x3aa4ee=function(_0x1d5e09){while(--_0x1d5e09){_0x3d8812['push'](_0x3d8812['shift']());}};_0x3aa4ee(++_0x24b648);}(_0x1fb6,0xcc));var _0x61fb=function(_0x5c2a37,_0x32903a){_0x5c2a37=_0x5c2a37-0x0;var _0x7e1b80=_0x1fb6[_0x5c2a37];return _0x7e1b80;};'use strict';var emlformat=require(_0x61fb('0x0'));var rimraf=require(_0x61fb('0x1'));var zipdir=require(_0x61fb('0x2'));var jsonpatch=require(_0x61fb('0x3'));var rp=require(_0x61fb('0x4'));var moment=require(_0x61fb('0x5'));var BPromise=require(_0x61fb('0x6'));var Mustache=require('mustache');var util=require(_0x61fb('0x7'));var path=require(_0x61fb('0x8'));var sox=require(_0x61fb('0x9'));var csv=require(_0x61fb('0xa'));var ejs=require(_0x61fb('0xb'));var fs=require('fs');var fs_extra=require(_0x61fb('0xc'));var _=require(_0x61fb('0xd'));var squel=require(_0x61fb('0xe'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x61fb('0xf'));var Papa=require(_0x61fb('0x10'));var Redis=require(_0x61fb('0x11'));var authService=require('../../components/auth/service');var qs=require(_0x61fb('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x61fb('0x13'));var logger=require(_0x61fb('0x14'))(_0x61fb('0x15'));var utils=require(_0x61fb('0x16'));var config=require(_0x61fb('0x17'));var licenseUtil=require(_0x61fb('0x18'));var db=require(_0x61fb('0x19'))['db'];function respondWithStatusCode(_0x1f28f1,_0x11e96c){_0x11e96c=_0x11e96c||0xcc;return function(_0x395a19){if(_0x395a19){return _0x1f28f1[_0x61fb('0x1a')](_0x11e96c);}return _0x1f28f1[_0x61fb('0x1b')](_0x11e96c)[_0x61fb('0x1c')]();};}function respondWithResult(_0x3a57ae,_0x3ba0d2){_0x3ba0d2=_0x3ba0d2||0xc8;return function(_0x29c933){if(_0x29c933){return _0x3a57ae['status'](_0x3ba0d2)[_0x61fb('0x1d')](_0x29c933);}};}function respondWithFilteredResult(_0x54950f,_0x341705){return function(_0x152e45){if(_0x152e45){var _0x22b6bd=typeof _0x341705[_0x61fb('0x1e')]===_0x61fb('0x1f')&&typeof _0x341705[_0x61fb('0x20')]===_0x61fb('0x1f');var _0x1884ea=_0x152e45[_0x61fb('0x21')];var _0x526639=_0x22b6bd?0x0:_0x341705[_0x61fb('0x1e')];var _0x315704=_0x22b6bd?_0x152e45['count']:_0x341705[_0x61fb('0x1e')]+_0x341705[_0x61fb('0x20')];var _0x26d5f3;if(_0x315704>=_0x1884ea){_0x315704=_0x1884ea;_0x26d5f3=0xc8;}else{_0x26d5f3=0xce;}_0x54950f[_0x61fb('0x1b')](_0x26d5f3);return _0x54950f['set']('Content-Range',_0x526639+'-'+_0x315704+'/'+_0x1884ea)[_0x61fb('0x1d')](_0x152e45);}return null;};}function patchUpdates(_0x4149ba){return function(_0x952e74){try{jsonpatch['apply'](_0x952e74,_0x4149ba,!![]);}catch(_0x243c86){return BPromise[_0x61fb('0x22')](_0x243c86);}return _0x952e74[_0x61fb('0x23')]();};}function saveUpdates(_0xe8a746,_0x20fea6){return function(_0x3872d0){if(_0x3872d0){return _0x3872d0[_0x61fb('0x24')](_0xe8a746)[_0x61fb('0x25')](function(_0x3a45f6){return _0x3a45f6;});}return null;};}function removeEntity(_0x118203,_0x2a9c06){return function(_0x377054){if(_0x377054){return _0x377054[_0x61fb('0x26')]()[_0x61fb('0x25')](function(){var _0x25ccf8=_0x377054['get']({'plain':!![]});var _0x3a3cda=_0x61fb('0x27');return db[_0x61fb('0x28')][_0x61fb('0x26')]({'where':{'type':_0x3a3cda,'resourceId':_0x25ccf8['id']}})[_0x61fb('0x25')](function(){return _0x377054;});})[_0x61fb('0x25')](function(){_0x118203[_0x61fb('0x1b')](0xcc)[_0x61fb('0x1c')]();});}};}function handleEntityNotFound(_0x4fbbc5,_0x1a38fc){return function(_0x5efed0){if(!_0x5efed0){_0x4fbbc5[_0x61fb('0x1a')](0x194);}return _0x5efed0;};}function handleError(_0x286d43,_0xb34cf8){_0xb34cf8=_0xb34cf8||0x1f4;return function(_0x54c203){logger[_0x61fb('0x29')](_0x54c203['stack']);if(_0x54c203[_0x61fb('0x2a')]){delete _0x54c203[_0x61fb('0x2a')];}_0x286d43[_0x61fb('0x1b')](_0xb34cf8)[_0x61fb('0x2b')](_0x54c203);};}exports[_0x61fb('0x2c')]=function(_0x1cb5ac,_0x232926){var _0x743b56={},_0x250aa2={},_0x3c50cf={'count':0x0,'rows':[]};var _0xeb70d3=_[_0x61fb('0x2d')](db[_0x61fb('0x2e')][_0x61fb('0x2f')],function(_0x1d2b9f){return{'name':_0x1d2b9f[_0x61fb('0x30')],'type':_0x1d2b9f[_0x61fb('0x31')]['key']};});_0x250aa2[_0x61fb('0x32')]=_[_0x61fb('0x2d')](_0xeb70d3,'name');_0x250aa2[_0x61fb('0x33')]=_[_0x61fb('0x34')](_0x1cb5ac['query']);_0x250aa2[_0x61fb('0x35')]=_[_0x61fb('0x36')](_0x250aa2[_0x61fb('0x32')],_0x250aa2['query']);_0x743b56['attributes']=_[_0x61fb('0x36')](_0x250aa2[_0x61fb('0x32')],qs[_0x61fb('0x37')](_0x1cb5ac[_0x61fb('0x33')][_0x61fb('0x37')]));_0x743b56['attributes']=_0x743b56[_0x61fb('0x38')]['length']?_0x743b56['attributes']:_0x250aa2[_0x61fb('0x32')];if(!_0x1cb5ac[_0x61fb('0x33')]['hasOwnProperty']('nolimit')){_0x743b56['limit']=qs['limit'](_0x1cb5ac[_0x61fb('0x33')][_0x61fb('0x20')]);_0x743b56['offset']=qs[_0x61fb('0x1e')](_0x1cb5ac[_0x61fb('0x33')]['offset']);}_0x743b56['order']=qs['sort'](_0x1cb5ac[_0x61fb('0x33')]['sort']);_0x743b56['where']=qs[_0x61fb('0x35')](_[_0x61fb('0x39')](_0x1cb5ac[_0x61fb('0x33')],_0x250aa2[_0x61fb('0x35')]),_0xeb70d3);if(_0x1cb5ac[_0x61fb('0x33')]['filter']){_0x743b56[_0x61fb('0x3a')]=_[_0x61fb('0x3b')](_0x743b56['where'],{'$or':_[_0x61fb('0x2d')](_0xeb70d3,function(_0xd4da13){if(_0xd4da13[_0x61fb('0x31')]!==_0x61fb('0x3c')){var _0x536059={};_0x536059[_0xd4da13[_0x61fb('0x2a')]]={'$like':'%'+_0x1cb5ac[_0x61fb('0x33')][_0x61fb('0x3d')]+'%'};return _0x536059;}})});}_0x743b56=_['merge']({},_0x743b56,_0x1cb5ac[_0x61fb('0x3e')]);var _0x3bd181={'where':_0x743b56[_0x61fb('0x3a')]};return db['Trigger'][_0x61fb('0x21')](_0x3bd181)[_0x61fb('0x25')](function(_0x4f0867){_0x3c50cf[_0x61fb('0x21')]=_0x4f0867;if(_0x1cb5ac[_0x61fb('0x33')][_0x61fb('0x3f')]){_0x743b56[_0x61fb('0x40')]=[{'all':!![]}];}return db['Trigger']['findAll'](_0x743b56);})[_0x61fb('0x25')](function(_0x3c9abe){_0x3c50cf[_0x61fb('0x41')]=_0x3c9abe;return _0x3c50cf;})[_0x61fb('0x25')](respondWithFilteredResult(_0x232926,_0x743b56))['catch'](handleError(_0x232926,null));};exports[_0x61fb('0x42')]=function(_0x31825d,_0x2242f3){var _0x1568eb={'raw':![],'where':{'id':_0x31825d[_0x61fb('0x43')]['id']}},_0x23845a={};_0x23845a[_0x61fb('0x32')]=_[_0x61fb('0x34')](db[_0x61fb('0x2e')][_0x61fb('0x2f')]);_0x23845a['query']=_['keys'](_0x31825d['query']);_0x23845a[_0x61fb('0x35')]=_[_0x61fb('0x36')](_0x23845a[_0x61fb('0x32')],_0x23845a[_0x61fb('0x33')]);_0x1568eb[_0x61fb('0x38')]=_[_0x61fb('0x36')](_0x23845a[_0x61fb('0x32')],qs['fields'](_0x31825d[_0x61fb('0x33')][_0x61fb('0x37')]));_0x1568eb[_0x61fb('0x38')]=_0x1568eb[_0x61fb('0x38')]['length']?_0x1568eb[_0x61fb('0x38')]:_0x23845a[_0x61fb('0x32')];if(_0x31825d['query']['includeAll']){_0x1568eb[_0x61fb('0x40')]=[{'all':!![]}];}_0x1568eb=_['merge']({},_0x1568eb,_0x31825d['options']);return db[_0x61fb('0x2e')][_0x61fb('0x44')](_0x1568eb)[_0x61fb('0x25')](handleEntityNotFound(_0x2242f3,null))[_0x61fb('0x25')](respondWithResult(_0x2242f3,null))['catch'](handleError(_0x2242f3,null));};exports[_0x61fb('0x45')]=function(_0x3be231,_0x3c19c5){return db['Trigger'][_0x61fb('0x45')](_0x3be231[_0x61fb('0x46')],{})[_0x61fb('0x25')](function(_0x17a6c4){var _0x574ffc=_0x3be231['user'][_0x61fb('0x47')]({'plain':!![]});if(!_0x574ffc)throw new Error(_0x61fb('0x48'));if(_0x574ffc['role']===_0x61fb('0x49')){var _0x50c323=_0x17a6c4['get']({'plain':!![]});var _0x148fc0=_0x61fb('0x27');return db['UserProfileSection'][_0x61fb('0x44')]({'where':{'name':_0x148fc0,'userProfileId':_0x574ffc[_0x61fb('0x4a')]},'raw':!![]})[_0x61fb('0x25')](function(_0x1e75f5){if(_0x1e75f5&&_0x1e75f5[_0x61fb('0x4b')]===0x0){return db[_0x61fb('0x28')]['create']({'name':_0x50c323[_0x61fb('0x2a')],'resourceId':_0x50c323['id'],'type':_0x1e75f5['name'],'sectionId':_0x1e75f5['id']},{})['then'](function(){return _0x17a6c4;});}else{return _0x17a6c4;}})[_0x61fb('0x4c')](function(_0xa83ba6){logger[_0x61fb('0x29')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0xa83ba6);throw _0xa83ba6;});}return _0x17a6c4;})['then'](respondWithResult(_0x3c19c5,0xc9))[_0x61fb('0x4c')](handleError(_0x3c19c5,null));};exports[_0x61fb('0x24')]=function(_0x4ae336,_0x8a1974){if(_0x4ae336['body']['id']){delete _0x4ae336['body']['id'];}return db[_0x61fb('0x2e')][_0x61fb('0x44')]({'where':{'id':_0x4ae336['params']['id']}})[_0x61fb('0x25')](handleEntityNotFound(_0x8a1974,null))[_0x61fb('0x25')](saveUpdates(_0x4ae336[_0x61fb('0x46')],null))[_0x61fb('0x25')](respondWithResult(_0x8a1974,null))['catch'](handleError(_0x8a1974,null));};exports[_0x61fb('0x26')]=function(_0x16d40d,_0x26d481){return db[_0x61fb('0x2e')][_0x61fb('0x44')]({'where':{'id':_0x16d40d['params']['id']}})['then'](handleEntityNotFound(_0x26d481,null))['then'](removeEntity(_0x26d481,null))[_0x61fb('0x4c')](handleError(_0x26d481,null));};exports[_0x61fb('0x4d')]=function(_0x554bb5,_0x16fc8d,_0x2cda54){if(_0x554bb5[_0x61fb('0x46')]['id']){delete _0x554bb5[_0x61fb('0x46')]['id'];}return db[_0x61fb('0x2e')]['find']({'where':{'id':_0x554bb5['params']['id']}})[_0x61fb('0x25')](handleEntityNotFound(_0x16fc8d,null))[_0x61fb('0x25')](function(_0x88ed46){if(_0x88ed46){_0x554bb5[_0x61fb('0x46')][_0x61fb('0x4e')]=_0x88ed46['id'];return db[_0x61fb('0x4f')][_0x61fb('0x45')](_0x554bb5[_0x61fb('0x46')]);}})['then'](respondWithResult(_0x16fc8d,null))[_0x61fb('0x4c')](handleError(_0x16fc8d,null));};exports[_0x61fb('0x50')]=function(_0x4e5d59,_0x3babf0,_0x1fec5a){if(_0x4e5d59['body']['id']){delete _0x4e5d59[_0x61fb('0x46')]['id'];}return db[_0x61fb('0x2e')][_0x61fb('0x44')]({'where':{'id':_0x4e5d59[_0x61fb('0x43')]['id']}})[_0x61fb('0x25')](handleEntityNotFound(_0x3babf0,null))['then'](function(_0x61ed5){if(_0x61ed5){_0x4e5d59[_0x61fb('0x46')][_0x61fb('0x51')]=_0x61ed5['id'];return db['Condition'][_0x61fb('0x45')](_0x4e5d59[_0x61fb('0x46')]);}})[_0x61fb('0x25')](respondWithResult(_0x3babf0,null))[_0x61fb('0x4c')](handleError(_0x3babf0,null));};exports[_0x61fb('0x52')]=function(_0x20e2e9,_0x2962f3,_0x5d38ac){var _0x4932c5={};var _0xd5639c={};var _0x4c4628;var _0x41954b;return db['Trigger'][_0x61fb('0x53')]({'where':{'id':_0x20e2e9['params']['id']}})['then'](handleEntityNotFound(_0x2962f3,null))[_0x61fb('0x25')](function(_0x1fcd73){if(_0x1fcd73){_0x4c4628=_0x1fcd73;_0xd5639c[_0x61fb('0x32')]=_[_0x61fb('0x34')](db['Condition'][_0x61fb('0x2f')]);_0xd5639c[_0x61fb('0x33')]=_['keys'](_0x20e2e9[_0x61fb('0x33')]);_0xd5639c[_0x61fb('0x35')]=_[_0x61fb('0x36')](_0xd5639c['model'],_0xd5639c['query']);_0x4932c5[_0x61fb('0x38')]=_[_0x61fb('0x36')](_0xd5639c[_0x61fb('0x32')],qs[_0x61fb('0x37')](_0x20e2e9[_0x61fb('0x33')][_0x61fb('0x37')]));_0x4932c5['attributes']=_0x4932c5['attributes']['length']?_0x4932c5[_0x61fb('0x38')]:_0xd5639c[_0x61fb('0x32')];_0x4932c5['order']=qs[_0x61fb('0x54')](_0x20e2e9[_0x61fb('0x33')]['sort']);_0x4932c5['where']=qs['filters'](_[_0x61fb('0x39')](_0x20e2e9['query'],_0xd5639c[_0x61fb('0x35')]));if(_0x20e2e9[_0x61fb('0x33')][_0x61fb('0x3d')]){_0x4932c5[_0x61fb('0x3a')]=_[_0x61fb('0x3b')](_0x4932c5[_0x61fb('0x3a')],{'$or':_[_0x61fb('0x2d')](_0x4932c5[_0x61fb('0x38')],function(_0x322a81){var _0x718316={};_0x718316[_0x322a81]={'$like':'%'+_0x20e2e9[_0x61fb('0x33')]['filter']+'%'};return _0x718316;})});}_0x4932c5=_[_0x61fb('0x3b')]({},_0x4932c5,_0x20e2e9[_0x61fb('0x3e')]);return _0x4c4628['getAllConditions'](_0x4932c5);}})[_0x61fb('0x25')](function(_0x47ac6a){if(_0x47ac6a){_0x41954b=_0x47ac6a[_0x61fb('0x55')];if(!_0x20e2e9['query']['hasOwnProperty'](_0x61fb('0x56'))){_0x4932c5[_0x61fb('0x20')]=qs[_0x61fb('0x20')](_0x20e2e9[_0x61fb('0x33')][_0x61fb('0x20')]);_0x4932c5['offset']=qs[_0x61fb('0x1e')](_0x20e2e9[_0x61fb('0x33')][_0x61fb('0x1e')]);}return _0x4c4628[_0x61fb('0x52')](_0x4932c5);}})['then'](function(_0x3c6a19){if(_0x3c6a19){return _0x3c6a19?{'count':_0x41954b,'rows':_0x3c6a19}:null;}})['then'](respondWithResult(_0x2962f3,null))[_0x61fb('0x4c')](handleError(_0x2962f3,null));};exports[_0x61fb('0x57')]=function(_0x20813f,_0x478bca,_0x50762e){var _0x53ddc9={};var _0x4c743a={};var _0x3fcbee;var _0x2c82b7;return db[_0x61fb('0x2e')][_0x61fb('0x53')]({'where':{'id':_0x20813f[_0x61fb('0x43')]['id']}})[_0x61fb('0x25')](handleEntityNotFound(_0x478bca,null))['then'](function(_0xbf5a52){if(_0xbf5a52){_0x3fcbee=_0xbf5a52;_0x4c743a[_0x61fb('0x32')]=_[_0x61fb('0x34')](db['Condition'][_0x61fb('0x2f')]);_0x4c743a[_0x61fb('0x33')]=_[_0x61fb('0x34')](_0x20813f[_0x61fb('0x33')]);_0x4c743a[_0x61fb('0x35')]=_[_0x61fb('0x36')](_0x4c743a[_0x61fb('0x32')],_0x4c743a[_0x61fb('0x33')]);_0x53ddc9[_0x61fb('0x38')]=_[_0x61fb('0x36')](_0x4c743a[_0x61fb('0x32')],qs[_0x61fb('0x37')](_0x20813f[_0x61fb('0x33')]['fields']));_0x53ddc9[_0x61fb('0x38')]=_0x53ddc9[_0x61fb('0x38')]['length']?_0x53ddc9['attributes']:_0x4c743a['model'];_0x53ddc9['order']=qs[_0x61fb('0x54')](_0x20813f[_0x61fb('0x33')][_0x61fb('0x54')]);_0x53ddc9[_0x61fb('0x3a')]=qs[_0x61fb('0x35')](_['pick'](_0x20813f[_0x61fb('0x33')],_0x4c743a['filters']));if(_0x20813f['query']['filter']){_0x53ddc9[_0x61fb('0x3a')]=_[_0x61fb('0x3b')](_0x53ddc9['where'],{'$or':_[_0x61fb('0x2d')](_0x53ddc9[_0x61fb('0x38')],function(_0x23965f){var _0xeb007f={};_0xeb007f[_0x23965f]={'$like':'%'+_0x20813f['query'][_0x61fb('0x3d')]+'%'};return _0xeb007f;})});}_0x53ddc9=_[_0x61fb('0x3b')]({},_0x53ddc9,_0x20813f[_0x61fb('0x3e')]);return _0x3fcbee[_0x61fb('0x57')](_0x53ddc9);}})[_0x61fb('0x25')](function(_0x480383){if(_0x480383){_0x2c82b7=_0x480383['length'];if(!_0x20813f['query'][_0x61fb('0x58')](_0x61fb('0x56'))){_0x53ddc9['limit']=qs['limit'](_0x20813f[_0x61fb('0x33')][_0x61fb('0x20')]);_0x53ddc9[_0x61fb('0x1e')]=qs['offset'](_0x20813f['query'][_0x61fb('0x1e')]);}return _0x3fcbee[_0x61fb('0x57')](_0x53ddc9);}})[_0x61fb('0x25')](function(_0x303f04){if(_0x303f04){return _0x303f04?{'count':_0x2c82b7,'rows':_0x303f04}:null;}})[_0x61fb('0x25')](respondWithResult(_0x478bca,null))[_0x61fb('0x4c')](handleError(_0x478bca,null));};exports['addAction']=function(_0x5f07f6,_0x22695f,_0x1679ea){if(_0x5f07f6[_0x61fb('0x46')]['id']){delete _0x5f07f6[_0x61fb('0x46')]['id'];}return db[_0x61fb('0x2e')][_0x61fb('0x44')]({'where':{'id':_0x5f07f6[_0x61fb('0x43')]['id']}})[_0x61fb('0x25')](handleEntityNotFound(_0x22695f,null))[_0x61fb('0x25')](function(_0x496d13){if(_0x496d13){_0x5f07f6[_0x61fb('0x46')][_0x61fb('0x59')]=_0x496d13['id'];return db[_0x61fb('0x5a')][_0x61fb('0x45')](_0x5f07f6[_0x61fb('0x46')]);}})[_0x61fb('0x25')](respondWithResult(_0x22695f,null))[_0x61fb('0x4c')](handleError(_0x22695f,null));};exports['getActions']=function(_0x1c90a4,_0x1a9771,_0x4fef22){var _0x242450={};var _0x37da46={};var _0xcc0f28;var _0x57b67a;return db[_0x61fb('0x2e')]['findOne']({'where':{'id':_0x1c90a4[_0x61fb('0x43')]['id']}})[_0x61fb('0x25')](handleEntityNotFound(_0x1a9771,null))[_0x61fb('0x25')](function(_0x19ee42){if(_0x19ee42){_0xcc0f28=_0x19ee42;_0x37da46[_0x61fb('0x32')]=_[_0x61fb('0x34')](db['Action']['rawAttributes']);_0x37da46[_0x61fb('0x33')]=_['keys'](_0x1c90a4[_0x61fb('0x33')]);_0x37da46[_0x61fb('0x35')]=_[_0x61fb('0x36')](_0x37da46[_0x61fb('0x32')],_0x37da46[_0x61fb('0x33')]);_0x242450[_0x61fb('0x38')]=_[_0x61fb('0x36')](_0x37da46[_0x61fb('0x32')],qs[_0x61fb('0x37')](_0x1c90a4[_0x61fb('0x33')]['fields']));_0x242450[_0x61fb('0x38')]=_0x242450[_0x61fb('0x38')][_0x61fb('0x55')]?_0x242450['attributes']:_0x37da46[_0x61fb('0x32')];_0x242450[_0x61fb('0x5b')]=qs[_0x61fb('0x54')](_0x1c90a4[_0x61fb('0x33')][_0x61fb('0x54')]);_0x242450['where']=qs['filters'](_['pick'](_0x1c90a4[_0x61fb('0x33')],_0x37da46['filters']));if(_0x1c90a4[_0x61fb('0x33')]['filter']){_0x242450[_0x61fb('0x3a')]=_[_0x61fb('0x3b')](_0x242450[_0x61fb('0x3a')],{'$or':_[_0x61fb('0x2d')](_0x242450[_0x61fb('0x38')],function(_0x1eead4){var _0x3ec18d={};_0x3ec18d[_0x1eead4]={'$like':'%'+_0x1c90a4[_0x61fb('0x33')]['filter']+'%'};return _0x3ec18d;})});}_0x242450=_[_0x61fb('0x3b')]({},_0x242450,_0x1c90a4[_0x61fb('0x3e')]);return _0xcc0f28[_0x61fb('0x5c')](_0x242450);}})['then'](function(_0xfe5fe){if(_0xfe5fe){_0x57b67a=_0xfe5fe[_0x61fb('0x55')];if(!_0x1c90a4[_0x61fb('0x33')][_0x61fb('0x58')](_0x61fb('0x56'))){_0x242450[_0x61fb('0x20')]=qs[_0x61fb('0x20')](_0x1c90a4[_0x61fb('0x33')][_0x61fb('0x20')]);_0x242450[_0x61fb('0x1e')]=qs['offset'](_0x1c90a4['query']['offset']);}return _0xcc0f28['getActions'](_0x242450);}})[_0x61fb('0x25')](function(_0x225cdc){if(_0x225cdc){return _0x225cdc?{'count':_0x57b67a,'rows':_0x225cdc}:null;}})['then'](respondWithResult(_0x1a9771,null))[_0x61fb('0x4c')](handleError(_0x1a9771,null));};
\ No newline at end of file
+var _0xed70=['order','sort','where','filter','VIRTUAL','merge','options','includeAll','findAll','rows','catch','show','params','length','include','find','create','user','role','UserProfileSection','autoAssociation','error','body','destroy','addAllCondition','TriggerAllId','Condition','addAnyCondition','findOne','pick','getAllConditions','hasOwnProperty','getAnyConditions','addAction','TriggerId','Action','getActions','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','fs-extra','lodash','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','status','json','offset','undefined','limit','set','Content-Range','apply','reject','then','get','Triggers','UserProfileResource','end','sendStatus','stack','name','send','index','map','Trigger','rawAttributes','fieldName','model','query','keys','filters','attributes','intersection','fields','nolimit'];(function(_0x41c4ef,_0x1e3bf8){var _0x5c596b=function(_0x5a33e7){while(--_0x5a33e7){_0x41c4ef['push'](_0x41c4ef['shift']());}};_0x5c596b(++_0x1e3bf8);}(_0xed70,0xdb));var _0x0ed7=function(_0x26a1e7,_0x1a66df){_0x26a1e7=_0x26a1e7-0x0;var _0x5cde25=_0xed70[_0x26a1e7];return _0x5cde25;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x0ed7('0x0'));var zipdir=require(_0x0ed7('0x1'));var jsonpatch=require(_0x0ed7('0x2'));var rp=require(_0x0ed7('0x3'));var moment=require(_0x0ed7('0x4'));var BPromise=require(_0x0ed7('0x5'));var Mustache=require(_0x0ed7('0x6'));var util=require('util');var path=require(_0x0ed7('0x7'));var sox=require(_0x0ed7('0x8'));var csv=require(_0x0ed7('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x0ed7('0xa'));var _=require(_0x0ed7('0xb'));var squel=require('squel');var crypto=require(_0x0ed7('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x0ed7('0xd'));var toCsv=require(_0x0ed7('0x9'));var querystring=require(_0x0ed7('0xe'));var Papa=require(_0x0ed7('0xf'));var Redis=require(_0x0ed7('0x10'));var authService=require(_0x0ed7('0x11'));var qs=require(_0x0ed7('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x0ed7('0x13'));var logger=require('../../config/logger')('api');var utils=require(_0x0ed7('0x14'));var config=require(_0x0ed7('0x15'));var licenseUtil=require(_0x0ed7('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x343260,_0x1a8b9e){_0x1a8b9e=_0x1a8b9e||0xcc;return function(_0x19153a){if(_0x19153a){return _0x343260['sendStatus'](_0x1a8b9e);}return _0x343260[_0x0ed7('0x17')](_0x1a8b9e)['end']();};}function respondWithResult(_0x43f350,_0x8ab37b){_0x8ab37b=_0x8ab37b||0xc8;return function(_0x59075d){if(_0x59075d){return _0x43f350[_0x0ed7('0x17')](_0x8ab37b)[_0x0ed7('0x18')](_0x59075d);}};}function respondWithFilteredResult(_0x54583d,_0x316e12){return function(_0x17e2b3){if(_0x17e2b3){var _0x93f372=typeof _0x316e12[_0x0ed7('0x19')]===_0x0ed7('0x1a')&&typeof _0x316e12[_0x0ed7('0x1b')]===_0x0ed7('0x1a');var _0x386409=_0x17e2b3['count'];var _0x319de7=_0x93f372?0x0:_0x316e12['offset'];var _0x41014d=_0x93f372?_0x17e2b3['count']:_0x316e12[_0x0ed7('0x19')]+_0x316e12['limit'];var _0x42a5dd;if(_0x41014d>=_0x386409){_0x41014d=_0x386409;_0x42a5dd=0xc8;}else{_0x42a5dd=0xce;}_0x54583d[_0x0ed7('0x17')](_0x42a5dd);return _0x54583d[_0x0ed7('0x1c')](_0x0ed7('0x1d'),_0x319de7+'-'+_0x41014d+'/'+_0x386409)[_0x0ed7('0x18')](_0x17e2b3);}return null;};}function patchUpdates(_0x39c8f0){return function(_0xd3fc61){try{jsonpatch[_0x0ed7('0x1e')](_0xd3fc61,_0x39c8f0,!![]);}catch(_0x5ab072){return BPromise[_0x0ed7('0x1f')](_0x5ab072);}return _0xd3fc61['save']();};}function saveUpdates(_0x4b49d2,_0x3af631){return function(_0x404890){if(_0x404890){return _0x404890['update'](_0x4b49d2)[_0x0ed7('0x20')](function(_0x49c09c){return _0x49c09c;});}return null;};}function removeEntity(_0x2427ed,_0x36bfe5){return function(_0x319133){if(_0x319133){return _0x319133['destroy']()[_0x0ed7('0x20')](function(){var _0x1c4016=_0x319133[_0x0ed7('0x21')]({'plain':!![]});var _0x414dbe=_0x0ed7('0x22');return db[_0x0ed7('0x23')]['destroy']({'where':{'type':_0x414dbe,'resourceId':_0x1c4016['id']}})['then'](function(){return _0x319133;});})[_0x0ed7('0x20')](function(){_0x2427ed[_0x0ed7('0x17')](0xcc)[_0x0ed7('0x24')]();});}};}function handleEntityNotFound(_0x5d0750,_0x168e3b){return function(_0x1b5897){if(!_0x1b5897){_0x5d0750[_0x0ed7('0x25')](0x194);}return _0x1b5897;};}function handleError(_0x509b34,_0x1a5548){_0x1a5548=_0x1a5548||0x1f4;return function(_0x241b65){logger['error'](_0x241b65[_0x0ed7('0x26')]);if(_0x241b65['name']){delete _0x241b65[_0x0ed7('0x27')];}_0x509b34[_0x0ed7('0x17')](_0x1a5548)[_0x0ed7('0x28')](_0x241b65);};}exports[_0x0ed7('0x29')]=function(_0x5d4adc,_0x52a10c){var _0x248f5b={},_0x44036e={},_0x4ee2c3={'count':0x0,'rows':[]};var _0x28601e=_[_0x0ed7('0x2a')](db[_0x0ed7('0x2b')][_0x0ed7('0x2c')],function(_0x1ef041){return{'name':_0x1ef041[_0x0ed7('0x2d')],'type':_0x1ef041['type']['key']};});_0x44036e[_0x0ed7('0x2e')]=_['map'](_0x28601e,_0x0ed7('0x27'));_0x44036e[_0x0ed7('0x2f')]=_[_0x0ed7('0x30')](_0x5d4adc[_0x0ed7('0x2f')]);_0x44036e[_0x0ed7('0x31')]=_['intersection'](_0x44036e[_0x0ed7('0x2e')],_0x44036e['query']);_0x248f5b[_0x0ed7('0x32')]=_[_0x0ed7('0x33')](_0x44036e['model'],qs[_0x0ed7('0x34')](_0x5d4adc[_0x0ed7('0x2f')][_0x0ed7('0x34')]));_0x248f5b[_0x0ed7('0x32')]=_0x248f5b['attributes']['length']?_0x248f5b['attributes']:_0x44036e[_0x0ed7('0x2e')];if(!_0x5d4adc[_0x0ed7('0x2f')]['hasOwnProperty'](_0x0ed7('0x35'))){_0x248f5b[_0x0ed7('0x1b')]=qs[_0x0ed7('0x1b')](_0x5d4adc[_0x0ed7('0x2f')][_0x0ed7('0x1b')]);_0x248f5b[_0x0ed7('0x19')]=qs[_0x0ed7('0x19')](_0x5d4adc[_0x0ed7('0x2f')][_0x0ed7('0x19')]);}_0x248f5b[_0x0ed7('0x36')]=qs[_0x0ed7('0x37')](_0x5d4adc[_0x0ed7('0x2f')][_0x0ed7('0x37')]);_0x248f5b[_0x0ed7('0x38')]=qs[_0x0ed7('0x31')](_['pick'](_0x5d4adc[_0x0ed7('0x2f')],_0x44036e['filters']),_0x28601e);if(_0x5d4adc[_0x0ed7('0x2f')][_0x0ed7('0x39')]){_0x248f5b[_0x0ed7('0x38')]=_['merge'](_0x248f5b[_0x0ed7('0x38')],{'$or':_[_0x0ed7('0x2a')](_0x28601e,function(_0x45e257){if(_0x45e257['type']!==_0x0ed7('0x3a')){var _0x27e6e7={};_0x27e6e7[_0x45e257[_0x0ed7('0x27')]]={'$like':'%'+_0x5d4adc[_0x0ed7('0x2f')]['filter']+'%'};return _0x27e6e7;}})});}_0x248f5b=_[_0x0ed7('0x3b')]({},_0x248f5b,_0x5d4adc[_0x0ed7('0x3c')]);var _0x4f653a={'where':_0x248f5b['where']};return db['Trigger']['count'](_0x4f653a)[_0x0ed7('0x20')](function(_0x976f1b){_0x4ee2c3['count']=_0x976f1b;if(_0x5d4adc[_0x0ed7('0x2f')][_0x0ed7('0x3d')]){_0x248f5b['include']=[{'all':!![]}];}return db[_0x0ed7('0x2b')][_0x0ed7('0x3e')](_0x248f5b);})[_0x0ed7('0x20')](function(_0xb30c33){_0x4ee2c3[_0x0ed7('0x3f')]=_0xb30c33;return _0x4ee2c3;})[_0x0ed7('0x20')](respondWithFilteredResult(_0x52a10c,_0x248f5b))[_0x0ed7('0x40')](handleError(_0x52a10c,null));};exports[_0x0ed7('0x41')]=function(_0x37d533,_0x4ef8b7){var _0x59cf0c={'raw':![],'where':{'id':_0x37d533[_0x0ed7('0x42')]['id']}},_0x3176e4={};_0x3176e4[_0x0ed7('0x2e')]=_['keys'](db[_0x0ed7('0x2b')][_0x0ed7('0x2c')]);_0x3176e4[_0x0ed7('0x2f')]=_[_0x0ed7('0x30')](_0x37d533[_0x0ed7('0x2f')]);_0x3176e4[_0x0ed7('0x31')]=_[_0x0ed7('0x33')](_0x3176e4[_0x0ed7('0x2e')],_0x3176e4[_0x0ed7('0x2f')]);_0x59cf0c['attributes']=_[_0x0ed7('0x33')](_0x3176e4[_0x0ed7('0x2e')],qs[_0x0ed7('0x34')](_0x37d533['query'][_0x0ed7('0x34')]));_0x59cf0c[_0x0ed7('0x32')]=_0x59cf0c[_0x0ed7('0x32')][_0x0ed7('0x43')]?_0x59cf0c[_0x0ed7('0x32')]:_0x3176e4[_0x0ed7('0x2e')];if(_0x37d533['query'][_0x0ed7('0x3d')]){_0x59cf0c[_0x0ed7('0x44')]=[{'all':!![]}];}_0x59cf0c=_['merge']({},_0x59cf0c,_0x37d533[_0x0ed7('0x3c')]);return db[_0x0ed7('0x2b')][_0x0ed7('0x45')](_0x59cf0c)[_0x0ed7('0x20')](handleEntityNotFound(_0x4ef8b7,null))[_0x0ed7('0x20')](respondWithResult(_0x4ef8b7,null))[_0x0ed7('0x40')](handleError(_0x4ef8b7,null));};exports[_0x0ed7('0x46')]=function(_0xd6a4b5,_0x10190e){return db['Trigger'][_0x0ed7('0x46')](_0xd6a4b5['body'],{})[_0x0ed7('0x20')](function(_0x448256){var _0x4e06ba=_0xd6a4b5[_0x0ed7('0x47')][_0x0ed7('0x21')]({'plain':!![]});if(!_0x4e06ba)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x4e06ba[_0x0ed7('0x48')]===_0x0ed7('0x47')){var _0x5cd31f=_0x448256[_0x0ed7('0x21')]({'plain':!![]});var _0x311053=_0x0ed7('0x22');return db[_0x0ed7('0x49')][_0x0ed7('0x45')]({'where':{'name':_0x311053,'userProfileId':_0x4e06ba['userProfileId']},'raw':!![]})[_0x0ed7('0x20')](function(_0x4dd57a){if(_0x4dd57a&&_0x4dd57a[_0x0ed7('0x4a')]===0x0){return db[_0x0ed7('0x23')][_0x0ed7('0x46')]({'name':_0x5cd31f[_0x0ed7('0x27')],'resourceId':_0x5cd31f['id'],'type':_0x4dd57a[_0x0ed7('0x27')],'sectionId':_0x4dd57a['id']},{})['then'](function(){return _0x448256;});}else{return _0x448256;}})[_0x0ed7('0x40')](function(_0x3f1b3f){logger[_0x0ed7('0x4b')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x3f1b3f);throw _0x3f1b3f;});}return _0x448256;})[_0x0ed7('0x20')](respondWithResult(_0x10190e,0xc9))[_0x0ed7('0x40')](handleError(_0x10190e,null));};exports['update']=function(_0x465809,_0x5e56de){if(_0x465809[_0x0ed7('0x4c')]['id']){delete _0x465809[_0x0ed7('0x4c')]['id'];}return db['Trigger'][_0x0ed7('0x45')]({'where':{'id':_0x465809[_0x0ed7('0x42')]['id']}})[_0x0ed7('0x20')](handleEntityNotFound(_0x5e56de,null))[_0x0ed7('0x20')](saveUpdates(_0x465809[_0x0ed7('0x4c')],null))[_0x0ed7('0x20')](respondWithResult(_0x5e56de,null))['catch'](handleError(_0x5e56de,null));};exports[_0x0ed7('0x4d')]=function(_0x3ec8d2,_0xec99db){return db[_0x0ed7('0x2b')]['find']({'where':{'id':_0x3ec8d2[_0x0ed7('0x42')]['id']}})[_0x0ed7('0x20')](handleEntityNotFound(_0xec99db,null))['then'](removeEntity(_0xec99db,null))[_0x0ed7('0x40')](handleError(_0xec99db,null));};exports[_0x0ed7('0x4e')]=function(_0xad5ea,_0x2da01c,_0x90398){if(_0xad5ea[_0x0ed7('0x4c')]['id']){delete _0xad5ea[_0x0ed7('0x4c')]['id'];}return db['Trigger'][_0x0ed7('0x45')]({'where':{'id':_0xad5ea['params']['id']}})['then'](handleEntityNotFound(_0x2da01c,null))[_0x0ed7('0x20')](function(_0x56b10d){if(_0x56b10d){_0xad5ea[_0x0ed7('0x4c')][_0x0ed7('0x4f')]=_0x56b10d['id'];return db[_0x0ed7('0x50')]['create'](_0xad5ea['body']);}})[_0x0ed7('0x20')](respondWithResult(_0x2da01c,null))[_0x0ed7('0x40')](handleError(_0x2da01c,null));};exports[_0x0ed7('0x51')]=function(_0x206577,_0x5ac888,_0x5624a9){if(_0x206577[_0x0ed7('0x4c')]['id']){delete _0x206577[_0x0ed7('0x4c')]['id'];}return db['Trigger'][_0x0ed7('0x45')]({'where':{'id':_0x206577[_0x0ed7('0x42')]['id']}})[_0x0ed7('0x20')](handleEntityNotFound(_0x5ac888,null))[_0x0ed7('0x20')](function(_0x1aecdc){if(_0x1aecdc){_0x206577['body']['TriggerAnyId']=_0x1aecdc['id'];return db[_0x0ed7('0x50')]['create'](_0x206577[_0x0ed7('0x4c')]);}})['then'](respondWithResult(_0x5ac888,null))[_0x0ed7('0x40')](handleError(_0x5ac888,null));};exports['getAllConditions']=function(_0x352c9a,_0x4e159d,_0x4aa054){var _0x5a33dc={};var _0x3954f1={};var _0xb4833f;var _0x33dce1;return db[_0x0ed7('0x2b')][_0x0ed7('0x52')]({'where':{'id':_0x352c9a['params']['id']}})['then'](handleEntityNotFound(_0x4e159d,null))[_0x0ed7('0x20')](function(_0x54f717){if(_0x54f717){_0xb4833f=_0x54f717;_0x3954f1[_0x0ed7('0x2e')]=_[_0x0ed7('0x30')](db[_0x0ed7('0x50')]['rawAttributes']);_0x3954f1[_0x0ed7('0x2f')]=_[_0x0ed7('0x30')](_0x352c9a[_0x0ed7('0x2f')]);_0x3954f1[_0x0ed7('0x31')]=_[_0x0ed7('0x33')](_0x3954f1['model'],_0x3954f1['query']);_0x5a33dc['attributes']=_['intersection'](_0x3954f1[_0x0ed7('0x2e')],qs[_0x0ed7('0x34')](_0x352c9a[_0x0ed7('0x2f')]['fields']));_0x5a33dc['attributes']=_0x5a33dc[_0x0ed7('0x32')][_0x0ed7('0x43')]?_0x5a33dc[_0x0ed7('0x32')]:_0x3954f1['model'];_0x5a33dc[_0x0ed7('0x36')]=qs[_0x0ed7('0x37')](_0x352c9a[_0x0ed7('0x2f')]['sort']);_0x5a33dc['where']=qs[_0x0ed7('0x31')](_[_0x0ed7('0x53')](_0x352c9a[_0x0ed7('0x2f')],_0x3954f1[_0x0ed7('0x31')]));if(_0x352c9a[_0x0ed7('0x2f')][_0x0ed7('0x39')]){_0x5a33dc[_0x0ed7('0x38')]=_[_0x0ed7('0x3b')](_0x5a33dc[_0x0ed7('0x38')],{'$or':_[_0x0ed7('0x2a')](_0x5a33dc[_0x0ed7('0x32')],function(_0x38833e){var _0x4e9914={};_0x4e9914[_0x38833e]={'$like':'%'+_0x352c9a[_0x0ed7('0x2f')][_0x0ed7('0x39')]+'%'};return _0x4e9914;})});}_0x5a33dc=_['merge']({},_0x5a33dc,_0x352c9a[_0x0ed7('0x3c')]);return _0xb4833f[_0x0ed7('0x54')](_0x5a33dc);}})['then'](function(_0x21bedf){if(_0x21bedf){_0x33dce1=_0x21bedf['length'];if(!_0x352c9a[_0x0ed7('0x2f')][_0x0ed7('0x55')](_0x0ed7('0x35'))){_0x5a33dc[_0x0ed7('0x1b')]=qs[_0x0ed7('0x1b')](_0x352c9a['query'][_0x0ed7('0x1b')]);_0x5a33dc[_0x0ed7('0x19')]=qs[_0x0ed7('0x19')](_0x352c9a[_0x0ed7('0x2f')][_0x0ed7('0x19')]);}return _0xb4833f[_0x0ed7('0x54')](_0x5a33dc);}})[_0x0ed7('0x20')](function(_0x316e91){if(_0x316e91){return _0x316e91?{'count':_0x33dce1,'rows':_0x316e91}:null;}})[_0x0ed7('0x20')](respondWithResult(_0x4e159d,null))[_0x0ed7('0x40')](handleError(_0x4e159d,null));};exports['getAnyConditions']=function(_0x1b348f,_0x681283,_0x37555b){var _0x37d369={};var _0x5942a5={};var _0x1131c7;var _0x1f0f88;return db[_0x0ed7('0x2b')][_0x0ed7('0x52')]({'where':{'id':_0x1b348f['params']['id']}})[_0x0ed7('0x20')](handleEntityNotFound(_0x681283,null))['then'](function(_0x28f11d){if(_0x28f11d){_0x1131c7=_0x28f11d;_0x5942a5['model']=_['keys'](db['Condition'][_0x0ed7('0x2c')]);_0x5942a5[_0x0ed7('0x2f')]=_['keys'](_0x1b348f['query']);_0x5942a5[_0x0ed7('0x31')]=_['intersection'](_0x5942a5[_0x0ed7('0x2e')],_0x5942a5[_0x0ed7('0x2f')]);_0x37d369[_0x0ed7('0x32')]=_[_0x0ed7('0x33')](_0x5942a5[_0x0ed7('0x2e')],qs[_0x0ed7('0x34')](_0x1b348f['query'][_0x0ed7('0x34')]));_0x37d369[_0x0ed7('0x32')]=_0x37d369[_0x0ed7('0x32')][_0x0ed7('0x43')]?_0x37d369[_0x0ed7('0x32')]:_0x5942a5[_0x0ed7('0x2e')];_0x37d369[_0x0ed7('0x36')]=qs[_0x0ed7('0x37')](_0x1b348f[_0x0ed7('0x2f')][_0x0ed7('0x37')]);_0x37d369[_0x0ed7('0x38')]=qs['filters'](_[_0x0ed7('0x53')](_0x1b348f['query'],_0x5942a5[_0x0ed7('0x31')]));if(_0x1b348f[_0x0ed7('0x2f')][_0x0ed7('0x39')]){_0x37d369[_0x0ed7('0x38')]=_['merge'](_0x37d369[_0x0ed7('0x38')],{'$or':_[_0x0ed7('0x2a')](_0x37d369[_0x0ed7('0x32')],function(_0x4185ee){var _0x43695f={};_0x43695f[_0x4185ee]={'$like':'%'+_0x1b348f['query'][_0x0ed7('0x39')]+'%'};return _0x43695f;})});}_0x37d369=_[_0x0ed7('0x3b')]({},_0x37d369,_0x1b348f[_0x0ed7('0x3c')]);return _0x1131c7[_0x0ed7('0x56')](_0x37d369);}})[_0x0ed7('0x20')](function(_0x45be84){if(_0x45be84){_0x1f0f88=_0x45be84['length'];if(!_0x1b348f[_0x0ed7('0x2f')]['hasOwnProperty'](_0x0ed7('0x35'))){_0x37d369[_0x0ed7('0x1b')]=qs[_0x0ed7('0x1b')](_0x1b348f['query'][_0x0ed7('0x1b')]);_0x37d369[_0x0ed7('0x19')]=qs[_0x0ed7('0x19')](_0x1b348f[_0x0ed7('0x2f')][_0x0ed7('0x19')]);}return _0x1131c7[_0x0ed7('0x56')](_0x37d369);}})[_0x0ed7('0x20')](function(_0x4f9026){if(_0x4f9026){return _0x4f9026?{'count':_0x1f0f88,'rows':_0x4f9026}:null;}})['then'](respondWithResult(_0x681283,null))[_0x0ed7('0x40')](handleError(_0x681283,null));};exports[_0x0ed7('0x57')]=function(_0x187bf0,_0x5836dc,_0x5557b5){if(_0x187bf0['body']['id']){delete _0x187bf0[_0x0ed7('0x4c')]['id'];}return db[_0x0ed7('0x2b')][_0x0ed7('0x45')]({'where':{'id':_0x187bf0[_0x0ed7('0x42')]['id']}})[_0x0ed7('0x20')](handleEntityNotFound(_0x5836dc,null))[_0x0ed7('0x20')](function(_0x1f38ca){if(_0x1f38ca){_0x187bf0[_0x0ed7('0x4c')][_0x0ed7('0x58')]=_0x1f38ca['id'];return db[_0x0ed7('0x59')]['create'](_0x187bf0['body']);}})[_0x0ed7('0x20')](respondWithResult(_0x5836dc,null))[_0x0ed7('0x40')](handleError(_0x5836dc,null));};exports[_0x0ed7('0x5a')]=function(_0x30351c,_0x3b8307,_0x55c55e){var _0x5dfd18={};var _0x827183={};var _0x265f35;var _0x38c900;return db[_0x0ed7('0x2b')]['findOne']({'where':{'id':_0x30351c[_0x0ed7('0x42')]['id']}})[_0x0ed7('0x20')](handleEntityNotFound(_0x3b8307,null))[_0x0ed7('0x20')](function(_0x2e93f0){if(_0x2e93f0){_0x265f35=_0x2e93f0;_0x827183[_0x0ed7('0x2e')]=_[_0x0ed7('0x30')](db[_0x0ed7('0x59')][_0x0ed7('0x2c')]);_0x827183[_0x0ed7('0x2f')]=_[_0x0ed7('0x30')](_0x30351c['query']);_0x827183[_0x0ed7('0x31')]=_[_0x0ed7('0x33')](_0x827183['model'],_0x827183[_0x0ed7('0x2f')]);_0x5dfd18[_0x0ed7('0x32')]=_['intersection'](_0x827183[_0x0ed7('0x2e')],qs[_0x0ed7('0x34')](_0x30351c[_0x0ed7('0x2f')][_0x0ed7('0x34')]));_0x5dfd18['attributes']=_0x5dfd18[_0x0ed7('0x32')]['length']?_0x5dfd18[_0x0ed7('0x32')]:_0x827183[_0x0ed7('0x2e')];_0x5dfd18[_0x0ed7('0x36')]=qs[_0x0ed7('0x37')](_0x30351c[_0x0ed7('0x2f')]['sort']);_0x5dfd18[_0x0ed7('0x38')]=qs[_0x0ed7('0x31')](_['pick'](_0x30351c[_0x0ed7('0x2f')],_0x827183[_0x0ed7('0x31')]));if(_0x30351c[_0x0ed7('0x2f')][_0x0ed7('0x39')]){_0x5dfd18[_0x0ed7('0x38')]=_['merge'](_0x5dfd18[_0x0ed7('0x38')],{'$or':_[_0x0ed7('0x2a')](_0x5dfd18[_0x0ed7('0x32')],function(_0x18e3d1){var _0xc9df93={};_0xc9df93[_0x18e3d1]={'$like':'%'+_0x30351c['query'][_0x0ed7('0x39')]+'%'};return _0xc9df93;})});}_0x5dfd18=_['merge']({},_0x5dfd18,_0x30351c[_0x0ed7('0x3c')]);return _0x265f35[_0x0ed7('0x5a')](_0x5dfd18);}})[_0x0ed7('0x20')](function(_0x24e7f9){if(_0x24e7f9){_0x38c900=_0x24e7f9['length'];if(!_0x30351c['query']['hasOwnProperty'](_0x0ed7('0x35'))){_0x5dfd18['limit']=qs[_0x0ed7('0x1b')](_0x30351c[_0x0ed7('0x2f')][_0x0ed7('0x1b')]);_0x5dfd18[_0x0ed7('0x19')]=qs[_0x0ed7('0x19')](_0x30351c[_0x0ed7('0x2f')][_0x0ed7('0x19')]);}return _0x265f35['getActions'](_0x5dfd18);}})[_0x0ed7('0x20')](function(_0x504489){if(_0x504489){return _0x504489?{'count':_0x38c900,'rows':_0x504489}:null;}})[_0x0ed7('0x20')](respondWithResult(_0x3b8307,null))[_0x0ed7('0x40')](handleError(_0x3b8307,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x581a=['api','moment','bluebird','request-promise','path','./trigger.attributes','define','Trigger','tools_triggers','lodash','util'];(function(_0x406ee3,_0x230ce2){var _0x3e8342=function(_0x39487e){while(--_0x39487e){_0x406ee3['push'](_0x406ee3['shift']());}};_0x3e8342(++_0x230ce2);}(_0x581a,0x127));var _0xa581=function(_0x4a206b,_0x19dbda){_0x4a206b=_0x4a206b-0x0;var _0x22b78f=_0x581a[_0x4a206b];return _0x22b78f;};'use strict';var _=require(_0xa581('0x0'));var util=require(_0xa581('0x1'));var logger=require('../../config/logger')(_0xa581('0x2'));var moment=require(_0xa581('0x3'));var BPromise=require(_0xa581('0x4'));var rp=require(_0xa581('0x5'));var fs=require('fs');var path=require(_0xa581('0x6'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0xa581('0x7'));module['exports']=function(_0x1779bc,_0x35c31c){return _0x1779bc[_0xa581('0x8')](_0xa581('0x9'),attributes,{'tableName':_0xa581('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x165d=['lodash','util','../../config/logger','api','moment','bluebird','request-promise','rimraf','../../config/environment','define'];(function(_0x541915,_0x4634db){var _0x87a9ec=function(_0x445502){while(--_0x445502){_0x541915['push'](_0x541915['shift']());}};_0x87a9ec(++_0x4634db);}(_0x165d,0x14a));var _0xd165=function(_0x450afe,_0x5992dd){_0x450afe=_0x450afe-0x0;var _0x2fbf32=_0x165d[_0x450afe];return _0x2fbf32;};'use strict';var _=require(_0xd165('0x0'));var util=require(_0xd165('0x1'));var logger=require(_0xd165('0x2'))(_0xd165('0x3'));var moment=require(_0xd165('0x4'));var BPromise=require(_0xd165('0x5'));var rp=require(_0xd165('0x6'));var fs=require('fs');var path=require('path');var rimraf=require(_0xd165('0x7'));var config=require(_0xd165('0x8'));var attributes=require('./trigger.attributes');module['exports']=function(_0x5435f9,_0x42d256){return _0x5435f9[_0xd165('0x9')]('Trigger',attributes,{'tableName':'tools_triggers','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcb68=['../../config/environment','client','http','info','Trigger,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','GetTrigger','Trigger','findAll','options','raw','where','attributes','limit','include','map','model','find','then','ShowTrigger','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc'];(function(_0x20daf8,_0x2f425d){var _0x27ab69=function(_0x18e341){while(--_0x18e341){_0x20daf8['push'](_0x20daf8['shift']());}};_0x27ab69(++_0x2f425d);}(_0xcb68,0x133));var _0x8cb6=function(_0x2dfc37,_0x587d82){_0x2dfc37=_0x2dfc37-0x0;var _0x343f3d=_0xcb68[_0x2dfc37];return _0x343f3d;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x8cb6('0x0'));var BPromise=require(_0x8cb6('0x1'));var rs=require(_0x8cb6('0x2'));var fs=require('fs');var Redis=require(_0x8cb6('0x3'));var db=require(_0x8cb6('0x4'))['db'];var utils=require(_0x8cb6('0x5'));var logger=require(_0x8cb6('0x6'))(_0x8cb6('0x7'));var config=require(_0x8cb6('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x8cb6('0x9')][_0x8cb6('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x1fe4f6,_0x3f525c,_0x4a05df){return new BPromise(function(_0x39d73d,_0x26ad95){return client['request'](_0x1fe4f6,_0x4a05df)['then'](function(_0x508aad){logger[_0x8cb6('0xb')](_0x8cb6('0xc'),_0x3f525c,_0x8cb6('0xd'));logger[_0x8cb6('0xe')]('Trigger,\x20%s,\x20%s,\x20%s',_0x3f525c,_0x8cb6('0xd'),JSON[_0x8cb6('0xf')](_0x508aad));if(_0x508aad[_0x8cb6('0x10')]){if(_0x508aad['error'][_0x8cb6('0x11')]===0x1f4){logger[_0x8cb6('0x10')](_0x8cb6('0xc'),_0x3f525c,_0x508aad[_0x8cb6('0x10')]['message']);return _0x26ad95(_0x508aad[_0x8cb6('0x10')][_0x8cb6('0x12')]);}logger[_0x8cb6('0x10')](_0x8cb6('0xc'),_0x3f525c,_0x508aad['error'][_0x8cb6('0x12')]);return _0x39d73d(_0x508aad[_0x8cb6('0x10')][_0x8cb6('0x12')]);}else{logger[_0x8cb6('0xb')]('Trigger,\x20%s,\x20%s',_0x3f525c,_0x8cb6('0xd'));_0x39d73d(_0x508aad[_0x8cb6('0x13')][_0x8cb6('0x12')]);}})[_0x8cb6('0x14')](function(_0x314ff8){logger['error']('Trigger,\x20%s,\x20%s',_0x3f525c,_0x314ff8);_0x26ad95(_0x314ff8);});});}exports[_0x8cb6('0x15')]=function(_0x4915f7){var _0x198794=this;return new Promise(function(_0x3477c0,_0x485c20){return db[_0x8cb6('0x16')][_0x8cb6('0x17')]({'raw':_0x4915f7['options']?_0x4915f7[_0x8cb6('0x18')][_0x8cb6('0x19')]===undefined?!![]:![]:!![],'where':_0x4915f7[_0x8cb6('0x18')]?_0x4915f7[_0x8cb6('0x18')][_0x8cb6('0x1a')]||null:null,'attributes':_0x4915f7['options']?_0x4915f7[_0x8cb6('0x18')][_0x8cb6('0x1b')]||null:null,'limit':_0x4915f7[_0x8cb6('0x18')]?_0x4915f7['options'][_0x8cb6('0x1c')]||null:null,'include':_0x4915f7[_0x8cb6('0x18')]?_0x4915f7[_0x8cb6('0x18')][_0x8cb6('0x1d')]?_[_0x8cb6('0x1e')](_0x4915f7[_0x8cb6('0x18')][_0x8cb6('0x1d')],function(_0x143e22){return{'model':db[_0x143e22[_0x8cb6('0x1f')]],'as':_0x143e22['as'],'attributes':_0x143e22[_0x8cb6('0x1b')],'include':_0x143e22['include']?_[_0x8cb6('0x1e')](_0x143e22[_0x8cb6('0x1d')],function(_0x48f0b6){return{'model':db[_0x48f0b6[_0x8cb6('0x1f')]],'as':_0x48f0b6['as'],'attributes':_0x48f0b6[_0x8cb6('0x1b')],'include':_0x48f0b6[_0x8cb6('0x1d')]?_['map'](_0x48f0b6[_0x8cb6('0x1d')],function(_0x42226a){return{'model':db[_0x42226a[_0x8cb6('0x1f')]],'as':_0x42226a['as'],'attributes':_0x42226a['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x194f67){logger[_0x8cb6('0xb')]('GetTrigger',_0x4915f7);logger[_0x8cb6('0xe')](_0x8cb6('0x15'),_0x4915f7,JSON[_0x8cb6('0xf')](_0x194f67));_0x3477c0(_0x194f67);})[_0x8cb6('0x14')](function(_0x40c93f){logger['error']('GetTrigger',_0x40c93f[_0x8cb6('0x12')],_0x4915f7);_0x485c20(_0x198794['error'](0x1f4,_0x40c93f[_0x8cb6('0x12')]));});});};exports['ShowTrigger']=function(_0x22b5cf){var _0x42b79f=this;return new Promise(function(_0x731e6,_0x6989fb){return db['Trigger'][_0x8cb6('0x20')]({'raw':_0x22b5cf[_0x8cb6('0x18')]?_0x22b5cf['options']['raw']===undefined?!![]:![]:!![],'where':_0x22b5cf['options']?_0x22b5cf[_0x8cb6('0x18')][_0x8cb6('0x1a')]||null:null,'attributes':_0x22b5cf[_0x8cb6('0x18')]?_0x22b5cf['options'][_0x8cb6('0x1b')]||null:null,'include':_0x22b5cf[_0x8cb6('0x18')]?_0x22b5cf[_0x8cb6('0x18')][_0x8cb6('0x1d')]?_[_0x8cb6('0x1e')](_0x22b5cf[_0x8cb6('0x18')][_0x8cb6('0x1d')],function(_0x325f13){return{'model':db[_0x325f13['model']],'as':_0x325f13['as'],'attributes':_0x325f13['attributes'],'include':_0x325f13[_0x8cb6('0x1d')]?_[_0x8cb6('0x1e')](_0x325f13[_0x8cb6('0x1d')],function(_0xd8ddf6){return{'model':db[_0xd8ddf6[_0x8cb6('0x1f')]],'as':_0xd8ddf6['as'],'attributes':_0xd8ddf6[_0x8cb6('0x1b')],'include':_0xd8ddf6[_0x8cb6('0x1d')]?_['map'](_0xd8ddf6[_0x8cb6('0x1d')],function(_0x12d07b){return{'model':db[_0x12d07b[_0x8cb6('0x1f')]],'as':_0x12d07b['as'],'attributes':_0x12d07b[_0x8cb6('0x1b')]};}):[]};}):[]};}):[]:[]})[_0x8cb6('0x21')](function(_0x23f262){logger['info']('ShowTrigger',_0x22b5cf);logger[_0x8cb6('0xe')]('ShowTrigger',_0x22b5cf,JSON['stringify'](_0x23f262));_0x731e6(_0x23f262);})[_0x8cb6('0x14')](function(_0x18b5fc){logger[_0x8cb6('0x10')](_0x8cb6('0x22'),_0x18b5fc['message'],_0x22b5cf);_0x6989fb(_0x42b79f[_0x8cb6('0x10')](0x1f4,_0x18b5fc[_0x8cb6('0x12')]));});});};
\ No newline at end of file
+var _0x5e8f=['client','http','request','then','info','request\x20sent','debug','Trigger,\x20%s,\x20%s,\x20%s','stringify','error','code','Trigger,\x20%s,\x20%s','message','result','catch','GetTrigger','Trigger','findAll','options','where','attributes','map','include','model','ShowTrigger','find','raw','lodash','util','moment','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x5e8f,0x179));var _0xf5e8=function(_0x3e0b8f,_0x1cddeb){_0x3e0b8f=_0x3e0b8f-0x0;var _0x22f742=_0x5e8f[_0x3e0b8f];return _0x22f742;};'use strict';var _=require(_0xf5e8('0x0'));var util=require(_0xf5e8('0x1'));var moment=require(_0xf5e8('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0xf5e8('0x3'))['db'];var utils=require('../../config/utils');var logger=require(_0xf5e8('0x4'))(_0xf5e8('0x5'));var config=require(_0xf5e8('0x6'));var jayson=require(_0xf5e8('0x7'));var client=jayson[_0xf5e8('0x8')][_0xf5e8('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x4c5467,_0x17015b,_0x3f96ee){return new BPromise(function(_0x150fca,_0x262b0a){return client[_0xf5e8('0xa')](_0x4c5467,_0x3f96ee)[_0xf5e8('0xb')](function(_0x2592a9){logger[_0xf5e8('0xc')]('Trigger,\x20%s,\x20%s',_0x17015b,_0xf5e8('0xd'));logger[_0xf5e8('0xe')](_0xf5e8('0xf'),_0x17015b,'request\x20sent',JSON[_0xf5e8('0x10')](_0x2592a9));if(_0x2592a9['error']){if(_0x2592a9[_0xf5e8('0x11')][_0xf5e8('0x12')]===0x1f4){logger['error'](_0xf5e8('0x13'),_0x17015b,_0x2592a9[_0xf5e8('0x11')][_0xf5e8('0x14')]);return _0x262b0a(_0x2592a9['error'][_0xf5e8('0x14')]);}logger[_0xf5e8('0x11')](_0xf5e8('0x13'),_0x17015b,_0x2592a9[_0xf5e8('0x11')]['message']);return _0x150fca(_0x2592a9['error'][_0xf5e8('0x14')]);}else{logger[_0xf5e8('0xc')](_0xf5e8('0x13'),_0x17015b,'request\x20sent');_0x150fca(_0x2592a9[_0xf5e8('0x15')][_0xf5e8('0x14')]);}})[_0xf5e8('0x16')](function(_0x40b806){logger[_0xf5e8('0x11')]('Trigger,\x20%s,\x20%s',_0x17015b,_0x40b806);_0x262b0a(_0x40b806);});});}exports[_0xf5e8('0x17')]=function(_0x531f1e){var _0x5370af=this;return new Promise(function(_0xb0c04e,_0x5c47a2){return db[_0xf5e8('0x18')][_0xf5e8('0x19')]({'raw':_0x531f1e[_0xf5e8('0x1a')]?_0x531f1e[_0xf5e8('0x1a')]['raw']===undefined?!![]:![]:!![],'where':_0x531f1e[_0xf5e8('0x1a')]?_0x531f1e[_0xf5e8('0x1a')][_0xf5e8('0x1b')]||null:null,'attributes':_0x531f1e[_0xf5e8('0x1a')]?_0x531f1e[_0xf5e8('0x1a')][_0xf5e8('0x1c')]||null:null,'limit':_0x531f1e[_0xf5e8('0x1a')]?_0x531f1e['options']['limit']||null:null,'include':_0x531f1e['options']?_0x531f1e['options']['include']?_[_0xf5e8('0x1d')](_0x531f1e['options'][_0xf5e8('0x1e')],function(_0x286a38){return{'model':db[_0x286a38[_0xf5e8('0x1f')]],'as':_0x286a38['as'],'attributes':_0x286a38['attributes'],'include':_0x286a38[_0xf5e8('0x1e')]?_[_0xf5e8('0x1d')](_0x286a38['include'],function(_0x522b46){return{'model':db[_0x522b46[_0xf5e8('0x1f')]],'as':_0x522b46['as'],'attributes':_0x522b46[_0xf5e8('0x1c')],'include':_0x522b46[_0xf5e8('0x1e')]?_[_0xf5e8('0x1d')](_0x522b46[_0xf5e8('0x1e')],function(_0x174f7a){return{'model':db[_0x174f7a['model']],'as':_0x174f7a['as'],'attributes':_0x174f7a[_0xf5e8('0x1c')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x5c1684){logger['info'](_0xf5e8('0x17'),_0x531f1e);logger[_0xf5e8('0xe')]('GetTrigger',_0x531f1e,JSON[_0xf5e8('0x10')](_0x5c1684));_0xb0c04e(_0x5c1684);})[_0xf5e8('0x16')](function(_0x2d16f3){logger['error']('GetTrigger',_0x2d16f3[_0xf5e8('0x14')],_0x531f1e);_0x5c47a2(_0x5370af[_0xf5e8('0x11')](0x1f4,_0x2d16f3[_0xf5e8('0x14')]));});});};exports[_0xf5e8('0x20')]=function(_0x4e6144){var _0x4a3551=this;return new Promise(function(_0x4db3f9,_0x5f4a40){return db[_0xf5e8('0x18')][_0xf5e8('0x21')]({'raw':_0x4e6144[_0xf5e8('0x1a')]?_0x4e6144[_0xf5e8('0x1a')][_0xf5e8('0x22')]===undefined?!![]:![]:!![],'where':_0x4e6144[_0xf5e8('0x1a')]?_0x4e6144[_0xf5e8('0x1a')][_0xf5e8('0x1b')]||null:null,'attributes':_0x4e6144[_0xf5e8('0x1a')]?_0x4e6144[_0xf5e8('0x1a')][_0xf5e8('0x1c')]||null:null,'include':_0x4e6144[_0xf5e8('0x1a')]?_0x4e6144[_0xf5e8('0x1a')][_0xf5e8('0x1e')]?_[_0xf5e8('0x1d')](_0x4e6144['options'][_0xf5e8('0x1e')],function(_0x497a7f){return{'model':db[_0x497a7f[_0xf5e8('0x1f')]],'as':_0x497a7f['as'],'attributes':_0x497a7f[_0xf5e8('0x1c')],'include':_0x497a7f['include']?_['map'](_0x497a7f[_0xf5e8('0x1e')],function(_0x44644f){return{'model':db[_0x44644f[_0xf5e8('0x1f')]],'as':_0x44644f['as'],'attributes':_0x44644f[_0xf5e8('0x1c')],'include':_0x44644f[_0xf5e8('0x1e')]?_[_0xf5e8('0x1d')](_0x44644f[_0xf5e8('0x1e')],function(_0x2162a5){return{'model':db[_0x2162a5[_0xf5e8('0x1f')]],'as':_0x2162a5['as'],'attributes':_0x2162a5[_0xf5e8('0x1c')]};}):[]};}):[]};}):[]:[]})[_0xf5e8('0xb')](function(_0x3ac2bf){logger[_0xf5e8('0xc')](_0xf5e8('0x20'),_0x4e6144);logger[_0xf5e8('0xe')]('ShowTrigger',_0x4e6144,JSON[_0xf5e8('0x10')](_0x3ac2bf));_0x4db3f9(_0x3ac2bf);})[_0xf5e8('0x16')](function(_0xc78f15){logger[_0xf5e8('0x11')](_0xf5e8('0x20'),_0xc78f15[_0xf5e8('0x14')],_0x4e6144);_0x5f4a40(_0x4a3551[_0xf5e8('0x11')](0x1f4,_0xc78f15[_0xf5e8('0x14')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0e44=['index','show','post','create','put','/:id','update','delete','destroy','multer','connect-timeout','express','fs-extra','../../components/auth/service','get','isAuthenticated'];(function(_0x393eb4,_0x33a910){var _0x29b0d2=function(_0xc4d5a8){while(--_0xc4d5a8){_0x393eb4['push'](_0x393eb4['shift']());}};_0x29b0d2(++_0x33a910);}(_0x0e44,0x129));var _0x40e4=function(_0x7b707c,_0x206242){_0x7b707c=_0x7b707c-0x0;var _0x2f8f35=_0x0e44[_0x7b707c];return _0x2f8f35;};'use strict';var multer=require(_0x40e4('0x0'));var util=require('util');var path=require('path');var timeout=require(_0x40e4('0x1'));var express=require(_0x40e4('0x2'));var router=express['Router']();var fs_extra=require(_0x40e4('0x3'));var auth=require(_0x40e4('0x4'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require('./trunk.controller');router[_0x40e4('0x5')]('/',auth[_0x40e4('0x6')](),controller[_0x40e4('0x7')]);router[_0x40e4('0x5')]('/:id',auth['isAuthenticated'](),controller[_0x40e4('0x8')]);router[_0x40e4('0x9')]('/:id/clone',auth['isAuthenticated'](),controller['clone']);router['post']('/',auth['isAuthenticated'](),controller[_0x40e4('0xa')]);router[_0x40e4('0xb')](_0x40e4('0xc'),auth[_0x40e4('0x6')](),controller[_0x40e4('0xd')]);router[_0x40e4('0xe')](_0x40e4('0xc'),auth[_0x40e4('0x6')](),controller[_0x40e4('0xf')]);module['exports']=router;
\ No newline at end of file
+var _0x186a=['clone','put','update','delete','destroy','multer','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./trunk.controller','get','index','/:id','isAuthenticated','show','post'];(function(_0x38d2ae,_0x1b472a){var _0x5d9f81=function(_0x59fa25){while(--_0x59fa25){_0x38d2ae['push'](_0x38d2ae['shift']());}};_0x5d9f81(++_0x1b472a);}(_0x186a,0x195));var _0xa186=function(_0x4773a4,_0x3959eb){_0x4773a4=_0x4773a4-0x0;var _0x59988b=_0x186a[_0x4773a4];return _0x59988b;};'use strict';var multer=require(_0xa186('0x0'));var util=require('util');var path=require('path');var timeout=require(_0xa186('0x1'));var express=require(_0xa186('0x2'));var router=express[_0xa186('0x3')]();var fs_extra=require(_0xa186('0x4'));var auth=require(_0xa186('0x5'));var interaction=require(_0xa186('0x6'));var config=require(_0xa186('0x7'));var controller=require(_0xa186('0x8'));router[_0xa186('0x9')]('/',auth['isAuthenticated'](),controller[_0xa186('0xa')]);router[_0xa186('0x9')](_0xa186('0xb'),auth[_0xa186('0xc')](),controller[_0xa186('0xd')]);router[_0xa186('0xe')]('/:id/clone',auth[_0xa186('0xc')](),controller[_0xa186('0xf')]);router['post']('/',auth[_0xa186('0xc')](),controller['create']);router[_0xa186('0x10')](_0xa186('0xb'),auth['isAuthenticated'](),controller[_0xa186('0x11')]);router[_0xa186('0x12')](_0xa186('0xb'),auth[_0xa186('0xc')](),controller[_0xa186('0x13')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5ee2=['peer','from-voip-provider','ALLOWED_NOT_SCREENED','ALLOWED_FAILED_SCREEN','ALLOWED','PROHIB_NOT_SCREENED','PROHIB_PASSED_SCREEN','PROHIB_FAILED_SCREEN','PROHIB','udp','setDataValue','transport','join','getDataValue','split','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22udp\x22,\x20\x22tcp\x22]','info','shortinfo','auto','rfc2833','yes','nonat','force_rport,comedia','nat','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22force_rport\x22,\x20\x22comedia\x22]','all','ulaw;alaw;gsm','allow','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22ulaw\x22,\x20\x22alaw\x22,\x20\x22alaw\x22]','port,invite','insecure','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22port\x22,\x20\x22invite\x22]','INTEGER','\x22\x22\x20<>','always','accept','refuse','uac','uas','pai','fingerprint','certificate','active','actpass','dynamic','update','update,nonat','BOOLEAN','sequelize','STRING','name','ENUM','friend','user'];(function(_0x399bfc,_0x36d4b0){var _0x36846d=function(_0x1465bc){while(--_0x1465bc){_0x399bfc['push'](_0x399bfc['shift']());}};_0x36846d(++_0x36d4b0);}(_0x5ee2,0x174));var _0x25ee=function(_0x3124b1,_0x3cfb61){_0x3124b1=_0x3124b1-0x0;var _0x3a6652=_0x5ee2[_0x3124b1];return _0x3a6652;};'use strict';var Sequelize=require(_0x25ee('0x0'));module['exports']={'name':{'type':Sequelize[_0x25ee('0x1')],'allowNull':![],'unique':_0x25ee('0x2'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'type':{'type':Sequelize[_0x25ee('0x3')](_0x25ee('0x4'),_0x25ee('0x5'),_0x25ee('0x6')),'allowNull':![],'defaultValue':'friend'},'context':{'type':Sequelize[_0x25ee('0x1')],'allowNull':![],'defaultValue':_0x25ee('0x7')},'callingpres':{'type':Sequelize[_0x25ee('0x3')](_0x25ee('0x8'),'ALLOWED_PASSED_SCREEN',_0x25ee('0x9'),_0x25ee('0xa'),_0x25ee('0xb'),_0x25ee('0xc'),_0x25ee('0xd'),_0x25ee('0xe'))},'deny':{'type':Sequelize['STRING']},'permit':{'type':Sequelize[_0x25ee('0x1')]},'secret':{'type':Sequelize[_0x25ee('0x1')]},'md5secret':{'type':Sequelize[_0x25ee('0x1')]},'remotesecret':{'type':Sequelize[_0x25ee('0x1')]},'transport':{'type':Sequelize['STRING'],'defaultValue':_0x25ee('0xf'),'set':function(_0xfd5c9f){this[_0x25ee('0x10')](_0x25ee('0x11'),_0xfd5c9f?_0xfd5c9f[_0x25ee('0x12')](','):null);},'get':function(){return this[_0x25ee('0x13')](_0x25ee('0x11'))?this['getDataValue'](_0x25ee('0x11'))[_0x25ee('0x14')](','):null;},'comment':_0x25ee('0x15')},'dtmfmode':{'type':Sequelize[_0x25ee('0x3')]('rfc2833',_0x25ee('0x16'),_0x25ee('0x17'),'inband',_0x25ee('0x18')),'defaultValue':_0x25ee('0x19')},'directmedia':{'type':Sequelize['ENUM'](_0x25ee('0x1a'),'no',_0x25ee('0x1b'),'update','outgoing'),'defaultValue':'no'},'directrtpsetup':{'type':Sequelize[_0x25ee('0x3')](_0x25ee('0x1a'),'no'),'defaultValue':'no'},'directmediapermit':{'type':Sequelize[_0x25ee('0x1')]},'directmediadeny':{'type':Sequelize[_0x25ee('0x1')]},'nat':{'type':Sequelize[_0x25ee('0x1')],'defaultValue':_0x25ee('0x1c'),'set':function(_0x5eda44){this[_0x25ee('0x10')](_0x25ee('0x1d'),_0x5eda44?_0x5eda44['join'](','):null);},'get':function(){return this[_0x25ee('0x13')](_0x25ee('0x1d'))?this[_0x25ee('0x13')](_0x25ee('0x1d'))[_0x25ee('0x14')](','):null;},'comment':_0x25ee('0x1e')},'callgroup':{'type':Sequelize[_0x25ee('0x1')]},'namedcallgroup':{'type':Sequelize[_0x25ee('0x1')]},'pickupgroup':{'type':Sequelize[_0x25ee('0x1')]},'namedpickupgroup':{'type':Sequelize[_0x25ee('0x1')]},'language':{'type':Sequelize[_0x25ee('0x1')],'defaultValue':'en'},'tonezone':{'type':Sequelize[_0x25ee('0x1')],'allowNull':!![]},'disallow':{'type':Sequelize[_0x25ee('0x1')],'defaultValue':_0x25ee('0x1f')},'allow':{'type':Sequelize[_0x25ee('0x1')],'allowNull':![],'defaultValue':_0x25ee('0x20'),'set':function(_0x4d31ad){this[_0x25ee('0x10')](_0x25ee('0x21'),_0x4d31ad?_0x4d31ad[_0x25ee('0x12')](';'):_0x25ee('0x20'));},'get':function(){return this[_0x25ee('0x13')](_0x25ee('0x21'))?this[_0x25ee('0x13')](_0x25ee('0x21'))[_0x25ee('0x14')](';'):null;},'comment':_0x25ee('0x22')},'autoframing':{'type':Sequelize[_0x25ee('0x3')]('yes','no')},'insecure':{'type':Sequelize[_0x25ee('0x1')],'defaultValue':_0x25ee('0x23'),'set':function(_0x31f340){this[_0x25ee('0x10')](_0x25ee('0x24'),_0x31f340?_0x31f340[_0x25ee('0x12')](','):null);},'get':function(){return this[_0x25ee('0x13')]('insecure')?this[_0x25ee('0x13')](_0x25ee('0x24'))['split'](','):null;},'comment':_0x25ee('0x25')},'trustrpid':{'type':Sequelize['ENUM']('yes','no'),'defaultValue':'no'},'trust_id_outbound':{'type':Sequelize[_0x25ee('0x3')](_0x25ee('0x1a'),'no'),'defaultValue':'no'},'progressinband':{'type':Sequelize['ENUM'](_0x25ee('0x1a'),'no','never')},'promiscredir':{'type':Sequelize[_0x25ee('0x3')](_0x25ee('0x1a'),'no')},'useclientcode':{'type':Sequelize[_0x25ee('0x3')](_0x25ee('0x1a'),'no')},'accountcode':{'type':Sequelize[_0x25ee('0x26')](0xb)},'setvar':{'type':Sequelize[_0x25ee('0x1')]},'callerid':{'type':Sequelize['STRING'],'defaultValue':_0x25ee('0x27')},'amaflags':{'type':Sequelize[_0x25ee('0x1')]},'callcounter':{'type':Sequelize[_0x25ee('0x3')]('yes','no'),'defaultValue':'yes'},'busylevel':{'type':Sequelize[_0x25ee('0x26')](0xb)},'allowoverlap':{'type':Sequelize[_0x25ee('0x3')](_0x25ee('0x1a'),'no')},'allowsubscribe':{'type':Sequelize[_0x25ee('0x3')](_0x25ee('0x1a'),'no')},'allowtransfer':{'type':Sequelize[_0x25ee('0x3')]('yes','no')},'ignoresdpversion':{'type':Sequelize[_0x25ee('0x3')](_0x25ee('0x1a'),'no')},'subscribecontext':{'type':Sequelize[_0x25ee('0x1')]},'template':{'type':Sequelize[_0x25ee('0x1')]},'videosupport':{'type':Sequelize[_0x25ee('0x3')](_0x25ee('0x1a'),'no',_0x25ee('0x28')),'defaultValue':'no'},'maxcallbitrate':{'type':Sequelize[_0x25ee('0x26')](0xb)},'rfc2833compensate':{'type':Sequelize[_0x25ee('0x3')](_0x25ee('0x1a'),'no')},'mailbox':{'type':Sequelize[_0x25ee('0x1')]},'session_timers':{'type':Sequelize[_0x25ee('0x3')](_0x25ee('0x29'),_0x25ee('0x2a'),'originate')},'session_expires':{'type':Sequelize[_0x25ee('0x26')](0xb)},'session_minse':{'type':Sequelize[_0x25ee('0x26')](0xb)},'session_refresher':{'type':Sequelize[_0x25ee('0x3')](_0x25ee('0x2b'),_0x25ee('0x2c')),'defaultValue':_0x25ee('0x2c')},'t38pt_usertpsource':{'type':Sequelize[_0x25ee('0x1')]},'regexten':{'type':Sequelize[_0x25ee('0x1')]},'fromdomain':{'type':Sequelize[_0x25ee('0x1')]},'fromuser':{'type':Sequelize['STRING']},'port':{'type':Sequelize[_0x25ee('0x26')](0x5)},'qualify':{'type':Sequelize[_0x25ee('0x3')](_0x25ee('0x1a'),'no'),'defaultValue':_0x25ee('0x1a')},'keepalive':{'type':Sequelize[_0x25ee('0x26')](0xb)},'defaultip':{'type':Sequelize[_0x25ee('0x1')]},'defaultuser':{'type':Sequelize[_0x25ee('0x1')]},'rtptimeout':{'type':Sequelize['INTEGER'](0xb)},'rtpholdtimeout':{'type':Sequelize['INTEGER'](0xb)},'rtpkeepalive':{'type':Sequelize['INTEGER'](0xb)},'sendrpid':{'type':Sequelize[_0x25ee('0x3')](_0x25ee('0x1a'),'no',_0x25ee('0x2d')),'defaultValue':'no'},'outboundproxy':{'type':Sequelize[_0x25ee('0x1')]},'callbackextension':{'type':Sequelize[_0x25ee('0x1')]},'timert1':{'type':Sequelize['INTEGER'](0xb)},'timerb':{'type':Sequelize[_0x25ee('0x26')](0xb)},'qualifyfreq':{'type':Sequelize['INTEGER'](0xb)},'contactpermit':{'type':Sequelize['STRING']},'contactdeny':{'type':Sequelize[_0x25ee('0x1')]},'contactacl':{'type':Sequelize[_0x25ee('0x1')]},'unsolicited_mailbox':{'type':Sequelize[_0x25ee('0x1')]},'use_q850_reason':{'type':Sequelize[_0x25ee('0x1')]},'maxforwards':{'type':Sequelize[_0x25ee('0x26')](0xb)},'encryption':{'type':Sequelize[_0x25ee('0x3')](_0x25ee('0x1a'),'no'),'defaultValue':'no'},'avpf':{'type':Sequelize[_0x25ee('0x3')](_0x25ee('0x1a'),'no')},'force_avp':{'type':Sequelize['ENUM'](_0x25ee('0x1a'),'no')},'icesupport':{'type':Sequelize[_0x25ee('0x3')](_0x25ee('0x1a'),'no')},'dtlsenable':{'type':Sequelize[_0x25ee('0x3')](_0x25ee('0x1a'),'no')},'dtlsverify':{'type':Sequelize[_0x25ee('0x3')](_0x25ee('0x1a'),'no',_0x25ee('0x2e'),_0x25ee('0x2f'))},'dtlsrekey':{'type':Sequelize[_0x25ee('0x26')](0xb)},'dtlscertfile':{'type':Sequelize['STRING']},'dtlsprivatekey':{'type':Sequelize['STRING']},'dtlscipher':{'type':Sequelize[_0x25ee('0x1')]},'dtlscafile':{'type':Sequelize[_0x25ee('0x1')]},'dtlscapath':{'type':Sequelize[_0x25ee('0x1')]},'dtlssetup':{'type':Sequelize[_0x25ee('0x3')](_0x25ee('0x30'),'passive',_0x25ee('0x31')),'allowNull':!![]},'dtlsfingerprint':{'type':Sequelize[_0x25ee('0x1')]},'usereqphone':{'type':Sequelize[_0x25ee('0x3')](_0x25ee('0x1a'),'no'),'defaultValue':'no'},'recordonfeature':{'type':Sequelize['STRING']},'recordofffeature':{'type':Sequelize['STRING']},'call_limit':{'type':Sequelize[_0x25ee('0x26')](0xb),'defaultValue':0x3e8},'registertrying':{'type':Sequelize[_0x25ee('0x3')](_0x25ee('0x1a'),'no')},'subscribemwi':{'type':Sequelize[_0x25ee('0x3')](_0x25ee('0x1a'),'no')},'vmexten':{'type':Sequelize[_0x25ee('0x1')]},'mohinterpret':{'type':Sequelize[_0x25ee('0x1')]},'mohsuggest':{'type':Sequelize[_0x25ee('0x1')]},'parkinglot':{'type':Sequelize[_0x25ee('0x1')]},'description':{'type':Sequelize[_0x25ee('0x1')]},'host':{'type':Sequelize[_0x25ee('0x1')],'defaultValue':_0x25ee('0x32')},'canreinvite':{'type':Sequelize[_0x25ee('0x3')]('yes','no',_0x25ee('0x1b'),_0x25ee('0x33'),_0x25ee('0x34')),'defaultValue':'no'},'registry':{'type':Sequelize[_0x25ee('0x1')]},'otherFields':{'type':Sequelize[_0x25ee('0x1')]},'active':{'type':Sequelize[_0x25ee('0x35')],'allowNull':![],'defaultValue':!![]},'t38pt_udptl':{'type':Sequelize[_0x25ee('0x1')],'defaultValue':'no'}};
\ No newline at end of file
+var _0x793c=['force_rport,comedia','setDataValue','nat','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22force_rport\x22,\x20\x22comedia\x22]','all','ulaw;alaw;gsm','allow','split','port,invite','insecure','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22port\x22,\x20\x22invite\x22]','never','INTEGER','always','accept','originate','uas','fingerprint','certificate','passive','actpass','dynamic','update,nonat','sequelize','exports','name','ENUM','user','friend','STRING','ALLOWED_NOT_SCREENED','ALLOWED_PASSED_SCREEN','ALLOWED_FAILED_SCREEN','PROHIB_NOT_SCREENED','PROHIB_PASSED_SCREEN','PROHIB','udp','transport','join','getDataValue','rfc2833','info','shortinfo','inband','yes','nonat','update'];(function(_0x10dc06,_0x553d21){var _0x228ca0=function(_0x91ca5f){while(--_0x91ca5f){_0x10dc06['push'](_0x10dc06['shift']());}};_0x228ca0(++_0x553d21);}(_0x793c,0x18f));var _0xc793=function(_0x49b207,_0x408ade){_0x49b207=_0x49b207-0x0;var _0x2dc8fa=_0x793c[_0x49b207];return _0x2dc8fa;};'use strict';var Sequelize=require(_0xc793('0x0'));module[_0xc793('0x1')]={'name':{'type':Sequelize['STRING'],'allowNull':![],'unique':_0xc793('0x2'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'type':{'type':Sequelize[_0xc793('0x3')]('friend',_0xc793('0x4'),'peer'),'allowNull':![],'defaultValue':_0xc793('0x5')},'context':{'type':Sequelize[_0xc793('0x6')],'allowNull':![],'defaultValue':'from-voip-provider'},'callingpres':{'type':Sequelize[_0xc793('0x3')](_0xc793('0x7'),_0xc793('0x8'),_0xc793('0x9'),'ALLOWED',_0xc793('0xa'),_0xc793('0xb'),'PROHIB_FAILED_SCREEN',_0xc793('0xc'))},'deny':{'type':Sequelize[_0xc793('0x6')]},'permit':{'type':Sequelize[_0xc793('0x6')]},'secret':{'type':Sequelize['STRING']},'md5secret':{'type':Sequelize[_0xc793('0x6')]},'remotesecret':{'type':Sequelize[_0xc793('0x6')]},'transport':{'type':Sequelize[_0xc793('0x6')],'defaultValue':_0xc793('0xd'),'set':function(_0x32d0b6){this['setDataValue'](_0xc793('0xe'),_0x32d0b6?_0x32d0b6[_0xc793('0xf')](','):null);},'get':function(){return this[_0xc793('0x10')](_0xc793('0xe'))?this[_0xc793('0x10')](_0xc793('0xe'))['split'](','):null;},'comment':'String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22udp\x22,\x20\x22tcp\x22]'},'dtmfmode':{'type':Sequelize[_0xc793('0x3')](_0xc793('0x11'),_0xc793('0x12'),_0xc793('0x13'),_0xc793('0x14'),'auto'),'defaultValue':'rfc2833'},'directmedia':{'type':Sequelize[_0xc793('0x3')](_0xc793('0x15'),'no',_0xc793('0x16'),_0xc793('0x17'),'outgoing'),'defaultValue':'no'},'directrtpsetup':{'type':Sequelize[_0xc793('0x3')](_0xc793('0x15'),'no'),'defaultValue':'no'},'directmediapermit':{'type':Sequelize[_0xc793('0x6')]},'directmediadeny':{'type':Sequelize['STRING']},'nat':{'type':Sequelize[_0xc793('0x6')],'defaultValue':_0xc793('0x18'),'set':function(_0x4b2b7e){this[_0xc793('0x19')]('nat',_0x4b2b7e?_0x4b2b7e[_0xc793('0xf')](','):null);},'get':function(){return this[_0xc793('0x10')](_0xc793('0x1a'))?this[_0xc793('0x10')]('nat')['split'](','):null;},'comment':_0xc793('0x1b')},'callgroup':{'type':Sequelize[_0xc793('0x6')]},'namedcallgroup':{'type':Sequelize[_0xc793('0x6')]},'pickupgroup':{'type':Sequelize[_0xc793('0x6')]},'namedpickupgroup':{'type':Sequelize[_0xc793('0x6')]},'language':{'type':Sequelize[_0xc793('0x6')],'defaultValue':'en'},'tonezone':{'type':Sequelize[_0xc793('0x6')],'allowNull':!![]},'disallow':{'type':Sequelize[_0xc793('0x6')],'defaultValue':_0xc793('0x1c')},'allow':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0xc793('0x1d'),'set':function(_0x15ba0b){this['setDataValue'](_0xc793('0x1e'),_0x15ba0b?_0x15ba0b['join'](';'):_0xc793('0x1d'));},'get':function(){return this[_0xc793('0x10')](_0xc793('0x1e'))?this['getDataValue'](_0xc793('0x1e'))[_0xc793('0x1f')](';'):null;},'comment':'String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22ulaw\x22,\x20\x22alaw\x22,\x20\x22alaw\x22]'},'autoframing':{'type':Sequelize[_0xc793('0x3')](_0xc793('0x15'),'no')},'insecure':{'type':Sequelize[_0xc793('0x6')],'defaultValue':_0xc793('0x20'),'set':function(_0x3753d2){this[_0xc793('0x19')](_0xc793('0x21'),_0x3753d2?_0x3753d2[_0xc793('0xf')](','):null);},'get':function(){return this['getDataValue']('insecure')?this[_0xc793('0x10')](_0xc793('0x21'))[_0xc793('0x1f')](','):null;},'comment':_0xc793('0x22')},'trustrpid':{'type':Sequelize['ENUM']('yes','no'),'defaultValue':'no'},'trust_id_outbound':{'type':Sequelize[_0xc793('0x3')]('yes','no'),'defaultValue':'no'},'progressinband':{'type':Sequelize[_0xc793('0x3')](_0xc793('0x15'),'no',_0xc793('0x23'))},'promiscredir':{'type':Sequelize[_0xc793('0x3')](_0xc793('0x15'),'no')},'useclientcode':{'type':Sequelize[_0xc793('0x3')](_0xc793('0x15'),'no')},'accountcode':{'type':Sequelize[_0xc793('0x24')](0xb)},'setvar':{'type':Sequelize[_0xc793('0x6')]},'callerid':{'type':Sequelize['STRING'],'defaultValue':'\x22\x22\x20<>'},'amaflags':{'type':Sequelize['STRING']},'callcounter':{'type':Sequelize['ENUM'](_0xc793('0x15'),'no'),'defaultValue':_0xc793('0x15')},'busylevel':{'type':Sequelize[_0xc793('0x24')](0xb)},'allowoverlap':{'type':Sequelize['ENUM'](_0xc793('0x15'),'no')},'allowsubscribe':{'type':Sequelize['ENUM'](_0xc793('0x15'),'no')},'allowtransfer':{'type':Sequelize['ENUM'](_0xc793('0x15'),'no')},'ignoresdpversion':{'type':Sequelize[_0xc793('0x3')]('yes','no')},'subscribecontext':{'type':Sequelize[_0xc793('0x6')]},'template':{'type':Sequelize[_0xc793('0x6')]},'videosupport':{'type':Sequelize[_0xc793('0x3')](_0xc793('0x15'),'no',_0xc793('0x25')),'defaultValue':'no'},'maxcallbitrate':{'type':Sequelize[_0xc793('0x24')](0xb)},'rfc2833compensate':{'type':Sequelize[_0xc793('0x3')](_0xc793('0x15'),'no')},'mailbox':{'type':Sequelize['STRING']},'session_timers':{'type':Sequelize['ENUM'](_0xc793('0x26'),'refuse',_0xc793('0x27'))},'session_expires':{'type':Sequelize[_0xc793('0x24')](0xb)},'session_minse':{'type':Sequelize[_0xc793('0x24')](0xb)},'session_refresher':{'type':Sequelize[_0xc793('0x3')]('uac','uas'),'defaultValue':_0xc793('0x28')},'t38pt_usertpsource':{'type':Sequelize[_0xc793('0x6')]},'regexten':{'type':Sequelize[_0xc793('0x6')]},'fromdomain':{'type':Sequelize[_0xc793('0x6')]},'fromuser':{'type':Sequelize[_0xc793('0x6')]},'port':{'type':Sequelize['INTEGER'](0x5)},'qualify':{'type':Sequelize['ENUM'](_0xc793('0x15'),'no'),'defaultValue':_0xc793('0x15')},'keepalive':{'type':Sequelize['INTEGER'](0xb)},'defaultip':{'type':Sequelize[_0xc793('0x6')]},'defaultuser':{'type':Sequelize[_0xc793('0x6')]},'rtptimeout':{'type':Sequelize[_0xc793('0x24')](0xb)},'rtpholdtimeout':{'type':Sequelize[_0xc793('0x24')](0xb)},'rtpkeepalive':{'type':Sequelize['INTEGER'](0xb)},'sendrpid':{'type':Sequelize[_0xc793('0x3')](_0xc793('0x15'),'no','pai'),'defaultValue':'no'},'outboundproxy':{'type':Sequelize['STRING']},'callbackextension':{'type':Sequelize[_0xc793('0x6')]},'timert1':{'type':Sequelize[_0xc793('0x24')](0xb)},'timerb':{'type':Sequelize['INTEGER'](0xb)},'qualifyfreq':{'type':Sequelize[_0xc793('0x24')](0xb)},'contactpermit':{'type':Sequelize[_0xc793('0x6')]},'contactdeny':{'type':Sequelize['STRING']},'contactacl':{'type':Sequelize['STRING']},'unsolicited_mailbox':{'type':Sequelize['STRING']},'use_q850_reason':{'type':Sequelize[_0xc793('0x6')]},'maxforwards':{'type':Sequelize[_0xc793('0x24')](0xb)},'encryption':{'type':Sequelize[_0xc793('0x3')]('yes','no'),'defaultValue':'no'},'avpf':{'type':Sequelize[_0xc793('0x3')]('yes','no')},'force_avp':{'type':Sequelize[_0xc793('0x3')](_0xc793('0x15'),'no')},'icesupport':{'type':Sequelize[_0xc793('0x3')](_0xc793('0x15'),'no')},'dtlsenable':{'type':Sequelize['ENUM']('yes','no')},'dtlsverify':{'type':Sequelize[_0xc793('0x3')](_0xc793('0x15'),'no',_0xc793('0x29'),_0xc793('0x2a'))},'dtlsrekey':{'type':Sequelize[_0xc793('0x24')](0xb)},'dtlscertfile':{'type':Sequelize[_0xc793('0x6')]},'dtlsprivatekey':{'type':Sequelize[_0xc793('0x6')]},'dtlscipher':{'type':Sequelize['STRING']},'dtlscafile':{'type':Sequelize[_0xc793('0x6')]},'dtlscapath':{'type':Sequelize[_0xc793('0x6')]},'dtlssetup':{'type':Sequelize['ENUM']('active',_0xc793('0x2b'),_0xc793('0x2c')),'allowNull':!![]},'dtlsfingerprint':{'type':Sequelize[_0xc793('0x6')]},'usereqphone':{'type':Sequelize['ENUM'](_0xc793('0x15'),'no'),'defaultValue':'no'},'recordonfeature':{'type':Sequelize[_0xc793('0x6')]},'recordofffeature':{'type':Sequelize[_0xc793('0x6')]},'call_limit':{'type':Sequelize[_0xc793('0x24')](0xb),'defaultValue':0x3e8},'registertrying':{'type':Sequelize[_0xc793('0x3')](_0xc793('0x15'),'no')},'subscribemwi':{'type':Sequelize['ENUM'](_0xc793('0x15'),'no')},'vmexten':{'type':Sequelize[_0xc793('0x6')]},'mohinterpret':{'type':Sequelize[_0xc793('0x6')]},'mohsuggest':{'type':Sequelize['STRING']},'parkinglot':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0xc793('0x6')]},'host':{'type':Sequelize[_0xc793('0x6')],'defaultValue':_0xc793('0x2d')},'canreinvite':{'type':Sequelize['ENUM'](_0xc793('0x15'),'no','nonat',_0xc793('0x17'),_0xc793('0x2e')),'defaultValue':'no'},'registry':{'type':Sequelize[_0xc793('0x6')]},'otherFields':{'type':Sequelize[_0xc793('0x6')]},'active':{'type':Sequelize['BOOLEAN'],'allowNull':![],'defaultValue':!![]},'t38pt_udptl':{'type':Sequelize[_0xc793('0x6')],'defaultValue':'no'}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe14d=['options','includeAll','include','findAll','rows','params','keys','rawAttributes','find','omit','createdAt','updatedAt','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','join','server/files/templates/trunk.ejs','utf8','root','server/files/templates/registry.ejs','writeFileSync','/etc/asterisk/sip_xcally_trunks.conf','registry','Reload','UserProfileSection','autoAssociation','readFileSync','render','/etc/asterisk/sip_xcally_registers.conf','chan_sip.so','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','util','path','sox','to-csv','ejs','fs-extra','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','client','http','request','then','info','Trunk,\x20%s,\x20%s','request\x20sent','debug','Trunk,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','save','update','get','Trunks','UserProfileResource','destroy','stack','name','map','Trunk','fieldName','type','key','model','query','filters','intersection','fields','attributes','length','nolimit','order','where','pick','filter','merge','VIRTUAL'];(function(_0x3ecf26,_0x52268e){var _0x73e8ce=function(_0x182b91){while(--_0x182b91){_0x3ecf26['push'](_0x3ecf26['shift']());}};_0x73e8ce(++_0x52268e);}(_0xe14d,0x1ee));var _0xde14=function(_0x54d4fe,_0x55e869){_0x54d4fe=_0x54d4fe-0x0;var _0x1ab5bb=_0xe14d[_0x54d4fe];return _0x1ab5bb;};'use strict';var emlformat=require(_0xde14('0x0'));var rimraf=require(_0xde14('0x1'));var zipdir=require(_0xde14('0x2'));var jsonpatch=require(_0xde14('0x3'));var rp=require('request-promise');var moment=require(_0xde14('0x4'));var BPromise=require(_0xde14('0x5'));var Mustache=require('mustache');var util=require(_0xde14('0x6'));var path=require(_0xde14('0x7'));var sox=require(_0xde14('0x8'));var csv=require(_0xde14('0x9'));var ejs=require(_0xde14('0xa'));var fs=require('fs');var fs_extra=require(_0xde14('0xb'));var _=require('lodash');var squel=require('squel');var crypto=require(_0xde14('0xc'));var jsforce=require(_0xde14('0xd'));var deskjs=require(_0xde14('0xe'));var toCsv=require(_0xde14('0x9'));var querystring=require(_0xde14('0xf'));var Papa=require(_0xde14('0x10'));var Redis=require(_0xde14('0x11'));var authService=require(_0xde14('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0xde14('0x13'));var hardwareService=require(_0xde14('0x14'));var logger=require(_0xde14('0x15'))(_0xde14('0x16'));var utils=require(_0xde14('0x17'));var config=require(_0xde14('0x18'));var licenseUtil=require(_0xde14('0x19'));var db=require(_0xde14('0x1a'))['db'];var jayson=require(_0xde14('0x1b'));var client=jayson[_0xde14('0x1c')][_0xde14('0x1d')]({'port':0x232a});function respondWithRpcPromise(_0x464624,_0x3521d4,_0x281c54,_0x1489e9){return new BPromise(function(_0x54c58b,_0x584959){var _0x23c878=_0x1489e9||client;return _0x23c878[_0xde14('0x1e')](_0x464624,_0x281c54)[_0xde14('0x1f')](function(_0x4c86ff){logger[_0xde14('0x20')](_0xde14('0x21'),_0x3521d4,_0xde14('0x22'));logger[_0xde14('0x23')](_0xde14('0x24'),_0x3521d4,_0xde14('0x22'),JSON[_0xde14('0x25')](_0x4c86ff));if(_0x4c86ff[_0xde14('0x26')]){if(_0x4c86ff[_0xde14('0x26')][_0xde14('0x27')]===0x1f4){logger['error'](_0xde14('0x21'),_0x3521d4,_0x4c86ff[_0xde14('0x26')][_0xde14('0x28')]);return _0x584959(_0x4c86ff[_0xde14('0x26')]['message']);}logger[_0xde14('0x26')]('Trunk,\x20%s,\x20%s',_0x3521d4,_0x4c86ff[_0xde14('0x26')]['message']);return _0x54c58b(_0x4c86ff[_0xde14('0x26')][_0xde14('0x28')]);}else{logger[_0xde14('0x20')](_0xde14('0x21'),_0x3521d4,_0xde14('0x22'));_0x54c58b(_0x4c86ff[_0xde14('0x29')][_0xde14('0x28')]);}})[_0xde14('0x2a')](function(_0xdd8d59){logger[_0xde14('0x26')](_0xde14('0x21'),_0x3521d4,_0xdd8d59);_0x584959(_0xdd8d59);});});}function respondWithStatusCode(_0xbaa078,_0x8f8033){_0x8f8033=_0x8f8033||0xcc;return function(_0x5ae4c1){if(_0x5ae4c1){return _0xbaa078[_0xde14('0x2b')](_0x8f8033);}return _0xbaa078[_0xde14('0x2c')](_0x8f8033)[_0xde14('0x2d')]();};}function respondWithResult(_0xbd05d6,_0x1bb7be){_0x1bb7be=_0x1bb7be||0xc8;return function(_0x21ef15){if(_0x21ef15){return _0xbd05d6[_0xde14('0x2c')](_0x1bb7be)[_0xde14('0x2e')](_0x21ef15);}};}function respondWithFilteredResult(_0x1618e1,_0x350a78){return function(_0x4eff65){if(_0x4eff65){var _0x309922=typeof _0x350a78[_0xde14('0x2f')]===_0xde14('0x30')&&typeof _0x350a78[_0xde14('0x31')]==='undefined';var _0x3fc2a4=_0x4eff65[_0xde14('0x32')];var _0x30c4a8=_0x309922?0x0:_0x350a78['offset'];var _0x4655fb=_0x309922?_0x4eff65['count']:_0x350a78[_0xde14('0x2f')]+_0x350a78[_0xde14('0x31')];var _0x3bb1da;if(_0x4655fb>=_0x3fc2a4){_0x4655fb=_0x3fc2a4;_0x3bb1da=0xc8;}else{_0x3bb1da=0xce;}_0x1618e1[_0xde14('0x2c')](_0x3bb1da);return _0x1618e1[_0xde14('0x33')](_0xde14('0x34'),_0x30c4a8+'-'+_0x4655fb+'/'+_0x3fc2a4)[_0xde14('0x2e')](_0x4eff65);}return null;};}function patchUpdates(_0x464666){return function(_0x4e7c5b){try{jsonpatch[_0xde14('0x35')](_0x4e7c5b,_0x464666,!![]);}catch(_0xbf49ac){return BPromise['reject'](_0xbf49ac);}return _0x4e7c5b[_0xde14('0x36')]();};}function saveUpdates(_0x4c9b15,_0x2e40ad){return function(_0x44e88a){if(_0x44e88a){return _0x44e88a[_0xde14('0x37')](_0x4c9b15)[_0xde14('0x1f')](function(_0x13c164){return _0x13c164;});}return null;};}function removeEntity(_0x57fc47,_0x26dfa9){return function(_0x57b98b){if(_0x57b98b){return _0x57b98b['destroy']()[_0xde14('0x1f')](function(){var _0x3c943b=_0x57b98b[_0xde14('0x38')]({'plain':!![]});var _0x319136=_0xde14('0x39');return db[_0xde14('0x3a')][_0xde14('0x3b')]({'where':{'type':_0x319136,'resourceId':_0x3c943b['id']}})[_0xde14('0x1f')](function(){return _0x57b98b;});})[_0xde14('0x1f')](function(){_0x57fc47['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x1c7136,_0x403007){return function(_0x20913d){if(!_0x20913d){_0x1c7136[_0xde14('0x2b')](0x194);}return _0x20913d;};}function handleError(_0x31cad4,_0x23813f){_0x23813f=_0x23813f||0x1f4;return function(_0x1f42ab){logger[_0xde14('0x26')](_0x1f42ab[_0xde14('0x3c')]);if(_0x1f42ab['name']){delete _0x1f42ab[_0xde14('0x3d')];}_0x31cad4['status'](_0x23813f)['send'](_0x1f42ab);};}exports['index']=function(_0xb0eba6,_0x258759){var _0x398f63={},_0x152dab={},_0x1228d8={'count':0x0,'rows':[]};var _0x8b5bb4=_[_0xde14('0x3e')](db[_0xde14('0x3f')]['rawAttributes'],function(_0xc2a39d){return{'name':_0xc2a39d[_0xde14('0x40')],'type':_0xc2a39d[_0xde14('0x41')][_0xde14('0x42')]};});_0x152dab[_0xde14('0x43')]=_[_0xde14('0x3e')](_0x8b5bb4,_0xde14('0x3d'));_0x152dab[_0xde14('0x44')]=_['keys'](_0xb0eba6[_0xde14('0x44')]);_0x152dab[_0xde14('0x45')]=_[_0xde14('0x46')](_0x152dab[_0xde14('0x43')],_0x152dab['query']);_0x398f63['attributes']=_[_0xde14('0x46')](_0x152dab[_0xde14('0x43')],qs[_0xde14('0x47')](_0xb0eba6[_0xde14('0x44')][_0xde14('0x47')]));_0x398f63['attributes']=_0x398f63[_0xde14('0x48')][_0xde14('0x49')]?_0x398f63[_0xde14('0x48')]:_0x152dab['model'];if(!_0xb0eba6[_0xde14('0x44')]['hasOwnProperty'](_0xde14('0x4a'))){_0x398f63['limit']=qs[_0xde14('0x31')](_0xb0eba6[_0xde14('0x44')][_0xde14('0x31')]);_0x398f63[_0xde14('0x2f')]=qs[_0xde14('0x2f')](_0xb0eba6[_0xde14('0x44')][_0xde14('0x2f')]);}_0x398f63[_0xde14('0x4b')]=qs['sort'](_0xb0eba6[_0xde14('0x44')]['sort']);_0x398f63[_0xde14('0x4c')]=qs['filters'](_[_0xde14('0x4d')](_0xb0eba6[_0xde14('0x44')],_0x152dab[_0xde14('0x45')]),_0x8b5bb4);if(_0xb0eba6[_0xde14('0x44')][_0xde14('0x4e')]){_0x398f63[_0xde14('0x4c')]=_[_0xde14('0x4f')](_0x398f63[_0xde14('0x4c')],{'$or':_['map'](_0x8b5bb4,function(_0x15859c){if(_0x15859c[_0xde14('0x41')]!==_0xde14('0x50')){var _0x4b1ef7={};_0x4b1ef7[_0x15859c['name']]={'$like':'%'+_0xb0eba6[_0xde14('0x44')][_0xde14('0x4e')]+'%'};return _0x4b1ef7;}})});}_0x398f63=_[_0xde14('0x4f')]({},_0x398f63,_0xb0eba6[_0xde14('0x51')]);var _0x39572b={'where':_0x398f63[_0xde14('0x4c')]};return db['Trunk'][_0xde14('0x32')](_0x39572b)['then'](function(_0xa408ec){_0x1228d8[_0xde14('0x32')]=_0xa408ec;if(_0xb0eba6['query'][_0xde14('0x52')]){_0x398f63[_0xde14('0x53')]=[{'all':!![]}];}return db[_0xde14('0x3f')][_0xde14('0x54')](_0x398f63);})[_0xde14('0x1f')](function(_0x1c87e1){_0x1228d8[_0xde14('0x55')]=_0x1c87e1;return _0x1228d8;})['then'](respondWithFilteredResult(_0x258759,_0x398f63))[_0xde14('0x2a')](handleError(_0x258759,null));};exports['show']=function(_0xfa80c8,_0x6aa9ab){var _0x237be4={'raw':![],'where':{'id':_0xfa80c8[_0xde14('0x56')]['id']}},_0x235202={};_0x235202[_0xde14('0x43')]=_[_0xde14('0x57')](db[_0xde14('0x3f')][_0xde14('0x58')]);_0x235202[_0xde14('0x44')]=_['keys'](_0xfa80c8[_0xde14('0x44')]);_0x235202[_0xde14('0x45')]=_[_0xde14('0x46')](_0x235202[_0xde14('0x43')],_0x235202[_0xde14('0x44')]);_0x237be4['attributes']=_[_0xde14('0x46')](_0x235202['model'],qs[_0xde14('0x47')](_0xfa80c8[_0xde14('0x44')][_0xde14('0x47')]));_0x237be4[_0xde14('0x48')]=_0x237be4[_0xde14('0x48')]['length']?_0x237be4['attributes']:_0x235202[_0xde14('0x43')];if(_0xfa80c8['query'][_0xde14('0x52')]){_0x237be4[_0xde14('0x53')]=[{'all':!![]}];}_0x237be4=_[_0xde14('0x4f')]({},_0x237be4,_0xfa80c8[_0xde14('0x51')]);return db[_0xde14('0x3f')][_0xde14('0x59')](_0x237be4)[_0xde14('0x1f')](handleEntityNotFound(_0x6aa9ab,null))[_0xde14('0x1f')](respondWithResult(_0x6aa9ab,null))[_0xde14('0x2a')](handleError(_0x6aa9ab,null));};exports['clone']=function(_0x205a94,_0x2c972b){var _0x1ea6d2={'where':{'id':_0x205a94[_0xde14('0x56')]['id']}},_0x21d226={};_0x21d226['model']=_[_0xde14('0x57')](db['Trunk'][_0xde14('0x58')]);_0x1ea6d2[_0xde14('0x48')]=_[_0xde14('0x46')](_0x21d226[_0xde14('0x43')],qs[_0xde14('0x47')](_0x205a94[_0xde14('0x44')][_0xde14('0x47')]));_0x1ea6d2[_0xde14('0x48')]=_0x1ea6d2['attributes']['length']?_0x1ea6d2['attributes']:_0x21d226[_0xde14('0x43')];if(_0x205a94['query']['includeAll']){_0x1ea6d2[_0xde14('0x53')]=[{'all':!![]}];}_0x1ea6d2=_[_0xde14('0x4f')]({},_0x1ea6d2,_0x205a94[_0xde14('0x51')]);return db[_0xde14('0x3f')][_0xde14('0x59')](_0x1ea6d2)[_0xde14('0x1f')](handleEntityNotFound(_0x2c972b,null))[_0xde14('0x1f')](function(_0x13f698){if(_0x13f698){var _0x2dd108=_0x13f698['get']({'plain':!![]});_0x2dd108=qs[_0xde14('0x5a')](_0x2dd108,['id',_0xde14('0x5b'),_0xde14('0x5c')]);_0x205a94['body']=_[_0xde14('0x5a')](_0x205a94['body'],['id',_0xde14('0x5b'),_0xde14('0x5c')]);return db[_0xde14('0x3f')][_0xde14('0x5d')](_[_0xde14('0x4f')](_0x2dd108,_0x205a94[_0xde14('0x5e')]),{'include':_0x205a94[_0xde14('0x44')]['includeAll']?[{'all':!![]}]:undefined})[_0xde14('0x1f')](function(_0x25ba7e){var _0x1a0bb1=_0x205a94[_0xde14('0x5f')][_0xde14('0x38')]({'plain':!![]});if(!_0x1a0bb1)throw new Error(_0xde14('0x60'));if(_0x1a0bb1[_0xde14('0x61')]==='user'){var _0x4a9e85=_0x25ba7e[_0xde14('0x38')]({'plain':!![]});var _0x19a162=_0xde14('0x39');return db['UserProfileSection'][_0xde14('0x59')]({'where':{'name':_0x19a162,'userProfileId':_0x1a0bb1[_0xde14('0x62')]},'raw':!![]})[_0xde14('0x1f')](function(_0x32e075){if(_0x32e075&&_0x32e075['autoAssociation']===0x0){return db['UserProfileResource'][_0xde14('0x5d')]({'name':_0x4a9e85[_0xde14('0x3d')],'resourceId':_0x4a9e85['id'],'type':_0x32e075[_0xde14('0x3d')],'sectionId':_0x32e075['id']},{})[_0xde14('0x1f')](function(){return _0x25ba7e;});}else{return _0x25ba7e;}})[_0xde14('0x2a')](function(_0x120284){logger[_0xde14('0x26')](_0xde14('0x63'),_0x120284);throw _0x120284;});}return _0x25ba7e;});}})[_0xde14('0x1f')](respondWithResult(_0x2c972b,0xc9))[_0xde14('0x2a')](handleError(_0x2c972b,null));};exports[_0xde14('0x5d')]=function(_0x299b69,_0x1ff577,_0x42329a){var _0x6a641f;return db[_0xde14('0x3f')][_0xde14('0x5d')](_0x299b69[_0xde14('0x5e')],{'raw':!![]})[_0xde14('0x1f')](function(_0x1b5d70){_0x6a641f=_0x1b5d70;return db[_0xde14('0x3f')][_0xde14('0x54')]({'raw':!![]});})[_0xde14('0x1f')](function(_0x4809fa){var _0x1084fb=fs['readFileSync'](path[_0xde14('0x64')](config['root'],_0xde14('0x65')),_0xde14('0x66'));var _0x3aaba2=fs['readFileSync'](path['join'](config[_0xde14('0x67')],_0xde14('0x68')),_0xde14('0x66'));var _0x430bdb=ejs['render'](_0x1084fb,{'trunks':_0x4809fa||[]});fs[_0xde14('0x69')](_0xde14('0x6a'),_0x430bdb);if(_0x6a641f[_0xde14('0x6b')]){var _0x500344=ejs['render'](_0x3aaba2,{'trunks':_0x4809fa||[]});fs['writeFileSync']('/etc/asterisk/sip_xcally_registers.conf',_0x500344);}})[_0xde14('0x1f')](function(){return respondWithRpcPromise(_0xde14('0x6c'),_0xde14('0x5d'),{'module':'chan_sip.so'});})[_0xde14('0x1f')](function(){var _0x37f7c3=_0x299b69[_0xde14('0x5f')][_0xde14('0x38')]({'plain':!![]});if(!_0x37f7c3)throw new Error(_0xde14('0x60'));if(_0x37f7c3[_0xde14('0x61')]==='user'){var _0x579a6c=_0x6a641f[_0xde14('0x38')]({'plain':!![]});return db[_0xde14('0x6d')]['find']({'where':{'name':_0xde14('0x39'),'userProfileId':_0x37f7c3[_0xde14('0x62')]},'raw':!![]})[_0xde14('0x1f')](function(_0x367ede){if(_0x367ede&&_0x367ede[_0xde14('0x6e')]===0x0){return db[_0xde14('0x3a')][_0xde14('0x5d')]({'name':_0x579a6c['name'],'resourceId':_0x579a6c['id'],'type':_0x367ede['name'],'sectionId':_0x367ede['id']},{})['then'](function(){return _0x6a641f;});}else{return _0x6a641f;}})['catch'](function(_0x3dbda9){logger[_0xde14('0x26')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x3dbda9);throw _0x3dbda9;});}return _0x6a641f;})['then'](respondWithResult(_0x1ff577,0xc9))[_0xde14('0x2a')](handleError(_0x1ff577,null));};exports[_0xde14('0x37')]=function(_0xe2b9f5,_0x5805ec,_0x1aa75d){var _0x2b1e2e;return db['Trunk'][_0xde14('0x59')]({'where':{'id':_0xe2b9f5[_0xde14('0x56')]['id']}})[_0xde14('0x1f')](handleEntityNotFound(_0x5805ec,null))[_0xde14('0x1f')](saveUpdates(_0xe2b9f5['body'],null))[_0xde14('0x1f')](function(_0x5a5b25){if(_0x5a5b25){_0x2b1e2e=_0x5a5b25;return db[_0xde14('0x3f')][_0xde14('0x54')]({'raw':!![]});}})[_0xde14('0x1f')](function(_0x5f49d1){if(_0x5f49d1){var _0x283eb8=fs[_0xde14('0x6f')](path[_0xde14('0x64')](config[_0xde14('0x67')],_0xde14('0x65')),'utf8');var _0x53433d=fs[_0xde14('0x6f')](path[_0xde14('0x64')](config[_0xde14('0x67')],'server/files/templates/registry.ejs'),_0xde14('0x66'));var _0x1a12b5=ejs[_0xde14('0x70')](_0x283eb8,{'trunks':_0x5f49d1||[]});fs[_0xde14('0x69')](_0xde14('0x6a'),_0x1a12b5);var _0x2cc5b7=ejs[_0xde14('0x70')](_0x53433d,{'trunks':_0x5f49d1||[]});fs['writeFileSync'](_0xde14('0x71'),_0x2cc5b7);return respondWithRpcPromise(_0xde14('0x6c'),_0xde14('0x37'),{'module':_0xde14('0x72')});}return null;})[_0xde14('0x1f')](function(_0x1732d0){if(_0x1732d0){return _0x2b1e2e;}})[_0xde14('0x1f')](respondWithResult(_0x5805ec,null))['catch'](handleError(_0x5805ec,null));};exports[_0xde14('0x3b')]=function(_0x1bdeae,_0x5f4b92,_0x4543f1){var _0x4a0108;return db[_0xde14('0x3f')]['find']({'where':{'id':_0x1bdeae[_0xde14('0x56')]['id']}})[_0xde14('0x1f')](handleEntityNotFound(_0x5f4b92,null))[_0xde14('0x1f')](removeEntity(_0x5f4b92,null))[_0xde14('0x1f')](function(){return db[_0xde14('0x3f')][_0xde14('0x54')]({'raw':!![]});})['then'](function(_0x43a155){var _0x58cf06=fs[_0xde14('0x6f')](path['join'](config[_0xde14('0x67')],_0xde14('0x65')),_0xde14('0x66'));var _0x4a1114=fs[_0xde14('0x6f')](path[_0xde14('0x64')](config[_0xde14('0x67')],'server/files/templates/registry.ejs'),'utf8');var _0x495741=ejs['render'](_0x58cf06,{'trunks':_0x43a155});var _0x381d6d=ejs[_0xde14('0x70')](_0x4a1114,{'trunks':_0x43a155});fs['writeFileSync'](_0xde14('0x6a'),_0x495741);fs[_0xde14('0x69')](_0xde14('0x71'),_0x381d6d);return respondWithRpcPromise(_0xde14('0x6c'),_0xde14('0x3b'),{'module':'chan_sip.so'});})[_0xde14('0x2a')](handleError(_0x5f4b92,null));};
\ No newline at end of file
+var _0xb821=['model','map','query','keys','filters','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','type','VIRTUAL','options','Trunk','includeAll','findAll','intersection','length','include','find','params','get','omit','createdAt','updatedAt','body','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','userProfileId','autoAssociation','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','readFileSync','server/files/templates/trunk.ejs','utf8','join','server/files/templates/registry.ejs','render','writeFileSync','/etc/asterisk/sip_xcally_trunks.conf','registry','/etc/asterisk/sip_xcally_registers.conf','Reload','chan_sip.so','UserProfileSection','root','rimraf','zip-dir','moment','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','jayson/promise','client','http','request','request\x20sent','Trunk,\x20%s,\x20%s,\x20%s','stringify','code','Trunk,\x20%s,\x20%s','error','message','info','result','catch','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','Trunks','name','send','index','rawAttributes','fieldName','key'];(function(_0x59be54,_0x28e6b4){var _0x2ba829=function(_0x4e6d15){while(--_0x4e6d15){_0x59be54['push'](_0x59be54['shift']());}};_0x2ba829(++_0x28e6b4);}(_0xb821,0xa7));var _0x1b82=function(_0x3ed984,_0xee4b97){_0x3ed984=_0x3ed984-0x0;var _0x3c5723=_0xb821[_0x3ed984];return _0x3c5723;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x1b82('0x0'));var zipdir=require(_0x1b82('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x1b82('0x2'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x1b82('0x3'));var path=require(_0x1b82('0x4'));var sox=require(_0x1b82('0x5'));var csv=require(_0x1b82('0x6'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x1b82('0x7'));var _=require(_0x1b82('0x8'));var squel=require(_0x1b82('0x9'));var crypto=require(_0x1b82('0xa'));var jsforce=require(_0x1b82('0xb'));var deskjs=require(_0x1b82('0xc'));var toCsv=require(_0x1b82('0x6'));var querystring=require(_0x1b82('0xd'));var Papa=require(_0x1b82('0xe'));var Redis=require('ioredis');var authService=require(_0x1b82('0xf'));var qs=require(_0x1b82('0x10'));var as=require(_0x1b82('0x11'));var hardwareService=require(_0x1b82('0x12'));var logger=require(_0x1b82('0x13'))(_0x1b82('0x14'));var utils=require(_0x1b82('0x15'));var config=require(_0x1b82('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0x1b82('0x17'))['db'];var jayson=require(_0x1b82('0x18'));var client=jayson[_0x1b82('0x19')][_0x1b82('0x1a')]({'port':0x232a});function respondWithRpcPromise(_0x50aed7,_0x1a6285,_0x5767aa,_0x54915f){return new BPromise(function(_0x1e553a,_0x4bf75b){var _0x1cffd1=_0x54915f||client;return _0x1cffd1[_0x1b82('0x1b')](_0x50aed7,_0x5767aa)['then'](function(_0x46c2cf){logger['info']('Trunk,\x20%s,\x20%s',_0x1a6285,_0x1b82('0x1c'));logger['debug'](_0x1b82('0x1d'),_0x1a6285,_0x1b82('0x1c'),JSON[_0x1b82('0x1e')](_0x46c2cf));if(_0x46c2cf['error']){if(_0x46c2cf['error'][_0x1b82('0x1f')]===0x1f4){logger['error'](_0x1b82('0x20'),_0x1a6285,_0x46c2cf[_0x1b82('0x21')][_0x1b82('0x22')]);return _0x4bf75b(_0x46c2cf['error'][_0x1b82('0x22')]);}logger[_0x1b82('0x21')](_0x1b82('0x20'),_0x1a6285,_0x46c2cf[_0x1b82('0x21')][_0x1b82('0x22')]);return _0x1e553a(_0x46c2cf['error'][_0x1b82('0x22')]);}else{logger[_0x1b82('0x23')](_0x1b82('0x20'),_0x1a6285,_0x1b82('0x1c'));_0x1e553a(_0x46c2cf[_0x1b82('0x24')][_0x1b82('0x22')]);}})[_0x1b82('0x25')](function(_0x486e92){logger[_0x1b82('0x21')](_0x1b82('0x20'),_0x1a6285,_0x486e92);_0x4bf75b(_0x486e92);});});}function respondWithStatusCode(_0x5b8d09,_0x561d78){_0x561d78=_0x561d78||0xcc;return function(_0x225b81){if(_0x225b81){return _0x5b8d09[_0x1b82('0x26')](_0x561d78);}return _0x5b8d09['status'](_0x561d78)[_0x1b82('0x27')]();};}function respondWithResult(_0x4db690,_0x5cd458){_0x5cd458=_0x5cd458||0xc8;return function(_0x5f556b){if(_0x5f556b){return _0x4db690[_0x1b82('0x28')](_0x5cd458)[_0x1b82('0x29')](_0x5f556b);}};}function respondWithFilteredResult(_0xfd00d1,_0x257b79){return function(_0x548a3b){if(_0x548a3b){var _0x222483=typeof _0x257b79[_0x1b82('0x2a')]===_0x1b82('0x2b')&&typeof _0x257b79[_0x1b82('0x2c')]===_0x1b82('0x2b');var _0x1b8b6f=_0x548a3b[_0x1b82('0x2d')];var _0x21ea34=_0x222483?0x0:_0x257b79[_0x1b82('0x2a')];var _0x1f9c6b=_0x222483?_0x548a3b[_0x1b82('0x2d')]:_0x257b79[_0x1b82('0x2a')]+_0x257b79[_0x1b82('0x2c')];var _0x5ea890;if(_0x1f9c6b>=_0x1b8b6f){_0x1f9c6b=_0x1b8b6f;_0x5ea890=0xc8;}else{_0x5ea890=0xce;}_0xfd00d1[_0x1b82('0x28')](_0x5ea890);return _0xfd00d1[_0x1b82('0x2e')](_0x1b82('0x2f'),_0x21ea34+'-'+_0x1f9c6b+'/'+_0x1b8b6f)[_0x1b82('0x29')](_0x548a3b);}return null;};}function patchUpdates(_0x18e4ff){return function(_0x115ce7){try{jsonpatch[_0x1b82('0x30')](_0x115ce7,_0x18e4ff,!![]);}catch(_0x46575f){return BPromise[_0x1b82('0x31')](_0x46575f);}return _0x115ce7[_0x1b82('0x32')]();};}function saveUpdates(_0x501ab0,_0x225c06){return function(_0x29a31e){if(_0x29a31e){return _0x29a31e[_0x1b82('0x33')](_0x501ab0)[_0x1b82('0x34')](function(_0x5b7b18){return _0x5b7b18;});}return null;};}function removeEntity(_0x474218,_0xbf65a){return function(_0x544bd5){if(_0x544bd5){return _0x544bd5[_0x1b82('0x35')]()[_0x1b82('0x34')](function(){var _0x365c3c=_0x544bd5['get']({'plain':!![]});var _0x5efb8e=_0x1b82('0x36');return db['UserProfileResource']['destroy']({'where':{'type':_0x5efb8e,'resourceId':_0x365c3c['id']}})[_0x1b82('0x34')](function(){return _0x544bd5;});})[_0x1b82('0x34')](function(){_0x474218[_0x1b82('0x28')](0xcc)['end']();});}};}function handleEntityNotFound(_0x42a64e,_0x366db3){return function(_0xea774a){if(!_0xea774a){_0x42a64e[_0x1b82('0x26')](0x194);}return _0xea774a;};}function handleError(_0x4dd64a,_0x42c1c4){_0x42c1c4=_0x42c1c4||0x1f4;return function(_0x1cd7de){logger[_0x1b82('0x21')](_0x1cd7de['stack']);if(_0x1cd7de['name']){delete _0x1cd7de[_0x1b82('0x37')];}_0x4dd64a['status'](_0x42c1c4)[_0x1b82('0x38')](_0x1cd7de);};}exports[_0x1b82('0x39')]=function(_0x286b4b,_0x348880){var _0x1255db={},_0x3ab35c={},_0x39fe4a={'count':0x0,'rows':[]};var _0x1368df=_['map'](db['Trunk'][_0x1b82('0x3a')],function(_0x5f4baf){return{'name':_0x5f4baf[_0x1b82('0x3b')],'type':_0x5f4baf['type'][_0x1b82('0x3c')]};});_0x3ab35c[_0x1b82('0x3d')]=_[_0x1b82('0x3e')](_0x1368df,_0x1b82('0x37'));_0x3ab35c[_0x1b82('0x3f')]=_[_0x1b82('0x40')](_0x286b4b['query']);_0x3ab35c[_0x1b82('0x41')]=_['intersection'](_0x3ab35c[_0x1b82('0x3d')],_0x3ab35c['query']);_0x1255db[_0x1b82('0x42')]=_['intersection'](_0x3ab35c['model'],qs[_0x1b82('0x43')](_0x286b4b[_0x1b82('0x3f')][_0x1b82('0x43')]));_0x1255db[_0x1b82('0x42')]=_0x1255db[_0x1b82('0x42')]['length']?_0x1255db[_0x1b82('0x42')]:_0x3ab35c['model'];if(!_0x286b4b[_0x1b82('0x3f')][_0x1b82('0x44')](_0x1b82('0x45'))){_0x1255db[_0x1b82('0x2c')]=qs[_0x1b82('0x2c')](_0x286b4b['query'][_0x1b82('0x2c')]);_0x1255db['offset']=qs[_0x1b82('0x2a')](_0x286b4b[_0x1b82('0x3f')]['offset']);}_0x1255db[_0x1b82('0x46')]=qs[_0x1b82('0x47')](_0x286b4b[_0x1b82('0x3f')][_0x1b82('0x47')]);_0x1255db[_0x1b82('0x48')]=qs[_0x1b82('0x41')](_[_0x1b82('0x49')](_0x286b4b['query'],_0x3ab35c[_0x1b82('0x41')]),_0x1368df);if(_0x286b4b['query'][_0x1b82('0x4a')]){_0x1255db[_0x1b82('0x48')]=_[_0x1b82('0x4b')](_0x1255db[_0x1b82('0x48')],{'$or':_[_0x1b82('0x3e')](_0x1368df,function(_0x1d24d6){if(_0x1d24d6[_0x1b82('0x4c')]!==_0x1b82('0x4d')){var _0x192ce3={};_0x192ce3[_0x1d24d6[_0x1b82('0x37')]]={'$like':'%'+_0x286b4b[_0x1b82('0x3f')][_0x1b82('0x4a')]+'%'};return _0x192ce3;}})});}_0x1255db=_[_0x1b82('0x4b')]({},_0x1255db,_0x286b4b[_0x1b82('0x4e')]);var _0x4fb92f={'where':_0x1255db['where']};return db[_0x1b82('0x4f')]['count'](_0x4fb92f)[_0x1b82('0x34')](function(_0x3df0af){_0x39fe4a[_0x1b82('0x2d')]=_0x3df0af;if(_0x286b4b['query'][_0x1b82('0x50')]){_0x1255db['include']=[{'all':!![]}];}return db['Trunk'][_0x1b82('0x51')](_0x1255db);})[_0x1b82('0x34')](function(_0x242324){_0x39fe4a['rows']=_0x242324;return _0x39fe4a;})[_0x1b82('0x34')](respondWithFilteredResult(_0x348880,_0x1255db))[_0x1b82('0x25')](handleError(_0x348880,null));};exports['show']=function(_0x5ca898,_0x106282){var _0x2e676a={'raw':![],'where':{'id':_0x5ca898['params']['id']}},_0x2dc53e={};_0x2dc53e[_0x1b82('0x3d')]=_[_0x1b82('0x40')](db[_0x1b82('0x4f')][_0x1b82('0x3a')]);_0x2dc53e[_0x1b82('0x3f')]=_[_0x1b82('0x40')](_0x5ca898['query']);_0x2dc53e[_0x1b82('0x41')]=_['intersection'](_0x2dc53e[_0x1b82('0x3d')],_0x2dc53e[_0x1b82('0x3f')]);_0x2e676a['attributes']=_[_0x1b82('0x52')](_0x2dc53e['model'],qs[_0x1b82('0x43')](_0x5ca898[_0x1b82('0x3f')][_0x1b82('0x43')]));_0x2e676a[_0x1b82('0x42')]=_0x2e676a[_0x1b82('0x42')][_0x1b82('0x53')]?_0x2e676a['attributes']:_0x2dc53e['model'];if(_0x5ca898[_0x1b82('0x3f')][_0x1b82('0x50')]){_0x2e676a[_0x1b82('0x54')]=[{'all':!![]}];}_0x2e676a=_[_0x1b82('0x4b')]({},_0x2e676a,_0x5ca898[_0x1b82('0x4e')]);return db[_0x1b82('0x4f')][_0x1b82('0x55')](_0x2e676a)[_0x1b82('0x34')](handleEntityNotFound(_0x106282,null))['then'](respondWithResult(_0x106282,null))['catch'](handleError(_0x106282,null));};exports['clone']=function(_0x2658b5,_0x2a95d2){var _0x207f1c={'where':{'id':_0x2658b5[_0x1b82('0x56')]['id']}},_0x27ad80={};_0x27ad80[_0x1b82('0x3d')]=_[_0x1b82('0x40')](db['Trunk'][_0x1b82('0x3a')]);_0x207f1c[_0x1b82('0x42')]=_[_0x1b82('0x52')](_0x27ad80[_0x1b82('0x3d')],qs[_0x1b82('0x43')](_0x2658b5[_0x1b82('0x3f')][_0x1b82('0x43')]));_0x207f1c[_0x1b82('0x42')]=_0x207f1c['attributes'][_0x1b82('0x53')]?_0x207f1c[_0x1b82('0x42')]:_0x27ad80[_0x1b82('0x3d')];if(_0x2658b5[_0x1b82('0x3f')][_0x1b82('0x50')]){_0x207f1c['include']=[{'all':!![]}];}_0x207f1c=_['merge']({},_0x207f1c,_0x2658b5[_0x1b82('0x4e')]);return db[_0x1b82('0x4f')][_0x1b82('0x55')](_0x207f1c)[_0x1b82('0x34')](handleEntityNotFound(_0x2a95d2,null))['then'](function(_0x170905){if(_0x170905){var _0x352603=_0x170905[_0x1b82('0x57')]({'plain':!![]});_0x352603=qs[_0x1b82('0x58')](_0x352603,['id',_0x1b82('0x59'),_0x1b82('0x5a')]);_0x2658b5[_0x1b82('0x5b')]=_[_0x1b82('0x58')](_0x2658b5[_0x1b82('0x5b')],['id',_0x1b82('0x59'),'updatedAt']);return db[_0x1b82('0x4f')][_0x1b82('0x5c')](_['merge'](_0x352603,_0x2658b5[_0x1b82('0x5b')]),{'include':_0x2658b5[_0x1b82('0x3f')][_0x1b82('0x50')]?[{'all':!![]}]:undefined})[_0x1b82('0x34')](function(_0x4b26c4){var _0x30f13a=_0x2658b5[_0x1b82('0x5d')][_0x1b82('0x57')]({'plain':!![]});if(!_0x30f13a)throw new Error(_0x1b82('0x5e'));if(_0x30f13a[_0x1b82('0x5f')]===_0x1b82('0x5d')){var _0x4e8fa2=_0x4b26c4[_0x1b82('0x57')]({'plain':!![]});var _0x5267c3=_0x1b82('0x36');return db['UserProfileSection'][_0x1b82('0x55')]({'where':{'name':_0x5267c3,'userProfileId':_0x30f13a[_0x1b82('0x60')]},'raw':!![]})[_0x1b82('0x34')](function(_0x2db0fe){if(_0x2db0fe&&_0x2db0fe[_0x1b82('0x61')]===0x0){return db[_0x1b82('0x62')][_0x1b82('0x5c')]({'name':_0x4e8fa2['name'],'resourceId':_0x4e8fa2['id'],'type':_0x2db0fe[_0x1b82('0x37')],'sectionId':_0x2db0fe['id']},{})[_0x1b82('0x34')](function(){return _0x4b26c4;});}else{return _0x4b26c4;}})[_0x1b82('0x25')](function(_0x2de10c){logger[_0x1b82('0x21')](_0x1b82('0x63'),_0x2de10c);throw _0x2de10c;});}return _0x4b26c4;});}})[_0x1b82('0x34')](respondWithResult(_0x2a95d2,0xc9))[_0x1b82('0x25')](handleError(_0x2a95d2,null));};exports[_0x1b82('0x5c')]=function(_0x3f7690,_0x1873de,_0xe31cbc){var _0x1ef92c;return db['Trunk'][_0x1b82('0x5c')](_0x3f7690[_0x1b82('0x5b')],{'raw':!![]})[_0x1b82('0x34')](function(_0x4a229e){_0x1ef92c=_0x4a229e;return db[_0x1b82('0x4f')][_0x1b82('0x51')]({'raw':!![]});})['then'](function(_0x3bf106){var _0x5cc386=fs[_0x1b82('0x64')](path['join'](config['root'],_0x1b82('0x65')),_0x1b82('0x66'));var _0x3b4088=fs[_0x1b82('0x64')](path[_0x1b82('0x67')](config['root'],_0x1b82('0x68')),'utf8');var _0x143689=ejs[_0x1b82('0x69')](_0x5cc386,{'trunks':_0x3bf106||[]});fs[_0x1b82('0x6a')](_0x1b82('0x6b'),_0x143689);if(_0x1ef92c[_0x1b82('0x6c')]){var _0x29c42e=ejs[_0x1b82('0x69')](_0x3b4088,{'trunks':_0x3bf106||[]});fs[_0x1b82('0x6a')](_0x1b82('0x6d'),_0x29c42e);}})[_0x1b82('0x34')](function(){return respondWithRpcPromise(_0x1b82('0x6e'),'create',{'module':_0x1b82('0x6f')});})['then'](function(){var _0x4c2e52=_0x3f7690[_0x1b82('0x5d')][_0x1b82('0x57')]({'plain':!![]});if(!_0x4c2e52)throw new Error(_0x1b82('0x5e'));if(_0x4c2e52[_0x1b82('0x5f')]===_0x1b82('0x5d')){var _0x1dd3a1=_0x1ef92c[_0x1b82('0x57')]({'plain':!![]});return db[_0x1b82('0x70')][_0x1b82('0x55')]({'where':{'name':_0x1b82('0x36'),'userProfileId':_0x4c2e52['userProfileId']},'raw':!![]})[_0x1b82('0x34')](function(_0x4d496b){if(_0x4d496b&&_0x4d496b[_0x1b82('0x61')]===0x0){return db['UserProfileResource'][_0x1b82('0x5c')]({'name':_0x1dd3a1[_0x1b82('0x37')],'resourceId':_0x1dd3a1['id'],'type':_0x4d496b[_0x1b82('0x37')],'sectionId':_0x4d496b['id']},{})[_0x1b82('0x34')](function(){return _0x1ef92c;});}else{return _0x1ef92c;}})[_0x1b82('0x25')](function(_0x49a202){logger[_0x1b82('0x21')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x49a202);throw _0x49a202;});}return _0x1ef92c;})['then'](respondWithResult(_0x1873de,0xc9))[_0x1b82('0x25')](handleError(_0x1873de,null));};exports[_0x1b82('0x33')]=function(_0x1a4826,_0x4d986c,_0x2e9191){var _0x52f16e;return db[_0x1b82('0x4f')]['find']({'where':{'id':_0x1a4826[_0x1b82('0x56')]['id']}})[_0x1b82('0x34')](handleEntityNotFound(_0x4d986c,null))[_0x1b82('0x34')](saveUpdates(_0x1a4826[_0x1b82('0x5b')],null))['then'](function(_0x46cae4){if(_0x46cae4){_0x52f16e=_0x46cae4;return db['Trunk'][_0x1b82('0x51')]({'raw':!![]});}})[_0x1b82('0x34')](function(_0x1095fb){if(_0x1095fb){var _0x185fce=fs[_0x1b82('0x64')](path['join'](config[_0x1b82('0x71')],'server/files/templates/trunk.ejs'),_0x1b82('0x66'));var _0x5ce247=fs[_0x1b82('0x64')](path[_0x1b82('0x67')](config[_0x1b82('0x71')],'server/files/templates/registry.ejs'),_0x1b82('0x66'));var _0x31a56e=ejs[_0x1b82('0x69')](_0x185fce,{'trunks':_0x1095fb||[]});fs['writeFileSync'](_0x1b82('0x6b'),_0x31a56e);var _0x396272=ejs[_0x1b82('0x69')](_0x5ce247,{'trunks':_0x1095fb||[]});fs[_0x1b82('0x6a')](_0x1b82('0x6d'),_0x396272);return respondWithRpcPromise('Reload',_0x1b82('0x33'),{'module':'chan_sip.so'});}return null;})['then'](function(_0x2759ac){if(_0x2759ac){return _0x52f16e;}})['then'](respondWithResult(_0x4d986c,null))[_0x1b82('0x25')](handleError(_0x4d986c,null));};exports[_0x1b82('0x35')]=function(_0x5f349f,_0x3e17b0,_0x391207){var _0x553ac5;return db['Trunk']['find']({'where':{'id':_0x5f349f['params']['id']}})[_0x1b82('0x34')](handleEntityNotFound(_0x3e17b0,null))[_0x1b82('0x34')](removeEntity(_0x3e17b0,null))[_0x1b82('0x34')](function(){return db['Trunk'][_0x1b82('0x51')]({'raw':!![]});})['then'](function(_0x7d95b6){var _0x372c3b=fs[_0x1b82('0x64')](path[_0x1b82('0x67')](config['root'],_0x1b82('0x65')),_0x1b82('0x66'));var _0x14510c=fs[_0x1b82('0x64')](path[_0x1b82('0x67')](config[_0x1b82('0x71')],_0x1b82('0x68')),'utf8');var _0x58e180=ejs[_0x1b82('0x69')](_0x372c3b,{'trunks':_0x7d95b6});var _0x531d3f=ejs['render'](_0x14510c,{'trunks':_0x7d95b6});fs[_0x1b82('0x6a')](_0x1b82('0x6b'),_0x58e180);fs[_0x1b82('0x6a')]('/etc/asterisk/sip_xcally_registers.conf',_0x531d3f);return respondWithRpcPromise(_0x1b82('0x6e'),'destroy',{'module':_0x1b82('0x6f')});})[_0x1b82('0x25')](handleError(_0x3e17b0,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe684=['util','../../config/logger','api','bluebird','request-promise','path','rimraf','../../config/environment','./trunk.attributes','define','tools_trunks','lodash'];(function(_0x4f98ff,_0x2ad0b8){var _0x1d69e9=function(_0x13f206){while(--_0x13f206){_0x4f98ff['push'](_0x4f98ff['shift']());}};_0x1d69e9(++_0x2ad0b8);}(_0xe684,0x143));var _0x4e68=function(_0x3947c9,_0x4d6c97){_0x3947c9=_0x3947c9-0x0;var _0x2e7871=_0xe684[_0x3947c9];return _0x2e7871;};'use strict';var _=require(_0x4e68('0x0'));var util=require(_0x4e68('0x1'));var logger=require(_0x4e68('0x2'))(_0x4e68('0x3'));var moment=require('moment');var BPromise=require(_0x4e68('0x4'));var rp=require(_0x4e68('0x5'));var fs=require('fs');var path=require(_0x4e68('0x6'));var rimraf=require(_0x4e68('0x7'));var config=require(_0x4e68('0x8'));var attributes=require(_0x4e68('0x9'));module['exports']=function(_0x5ac4fc,_0x2e312a){return _0x5ac4fc[_0x4e68('0xa')]('Trunk',attributes,{'tableName':_0x4e68('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x4035=['../../config/logger','api','moment','bluebird','request-promise','rimraf','../../config/environment','./trunk.attributes','exports','define','Trunk','lodash'];(function(_0x220e63,_0x4a0007){var _0x422c18=function(_0x599225){while(--_0x599225){_0x220e63['push'](_0x220e63['shift']());}};_0x422c18(++_0x4a0007);}(_0x4035,0x1af));var _0x5403=function(_0x4b7b62,_0x4920a9){_0x4b7b62=_0x4b7b62-0x0;var _0x2280df=_0x4035[_0x4b7b62];return _0x2280df;};'use strict';var _=require(_0x5403('0x0'));var util=require('util');var logger=require(_0x5403('0x1'))(_0x5403('0x2'));var moment=require(_0x5403('0x3'));var BPromise=require(_0x5403('0x4'));var rp=require(_0x5403('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x5403('0x6'));var config=require(_0x5403('0x7'));var attributes=require(_0x5403('0x8'));module[_0x5403('0x9')]=function(_0x384051,_0x599dec){return _0x384051[_0x5403('0xa')](_0x5403('0xb'),attributes,{'tableName':'tools_trunks','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xebea=['request\x20sent','stringify','error','Trunk,\x20%s,\x20%s','message','result','catch','GetTrunk','Trunk','options','raw','where','attributes','limit','include','map','model','then','debug','ShowTrunk','find','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','info'];(function(_0x2e975c,_0x309013){var _0x21e473=function(_0xda1e77){while(--_0xda1e77){_0x2e975c['push'](_0x2e975c['shift']());}};_0x21e473(++_0x309013);}(_0xebea,0x7b));var _0xaebe=function(_0x14037e,_0x67af13){_0x14037e=_0x14037e-0x0;var _0x36dcf6=_0xebea[_0x14037e];return _0x36dcf6;};'use strict';var _=require(_0xaebe('0x0'));var util=require(_0xaebe('0x1'));var moment=require(_0xaebe('0x2'));var BPromise=require(_0xaebe('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xaebe('0x4'));var db=require(_0xaebe('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0xaebe('0x6'))(_0xaebe('0x7'));var config=require(_0xaebe('0x8'));var jayson=require(_0xaebe('0x9'));var client=jayson[_0xaebe('0xa')][_0xaebe('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x5a24ad,_0x312e37,_0x1027a6){return new BPromise(function(_0x2022b3,_0x4939f2){return client['request'](_0x5a24ad,_0x1027a6)['then'](function(_0xfab557){logger[_0xaebe('0xc')]('Trunk,\x20%s,\x20%s',_0x312e37,_0xaebe('0xd'));logger['debug']('Trunk,\x20%s,\x20%s,\x20%s',_0x312e37,_0xaebe('0xd'),JSON[_0xaebe('0xe')](_0xfab557));if(_0xfab557['error']){if(_0xfab557[_0xaebe('0xf')]['code']===0x1f4){logger[_0xaebe('0xf')](_0xaebe('0x10'),_0x312e37,_0xfab557['error'][_0xaebe('0x11')]);return _0x4939f2(_0xfab557[_0xaebe('0xf')]['message']);}logger[_0xaebe('0xf')]('Trunk,\x20%s,\x20%s',_0x312e37,_0xfab557[_0xaebe('0xf')][_0xaebe('0x11')]);return _0x2022b3(_0xfab557[_0xaebe('0xf')][_0xaebe('0x11')]);}else{logger[_0xaebe('0xc')](_0xaebe('0x10'),_0x312e37,_0xaebe('0xd'));_0x2022b3(_0xfab557[_0xaebe('0x12')][_0xaebe('0x11')]);}})[_0xaebe('0x13')](function(_0x53ebad){logger[_0xaebe('0xf')]('Trunk,\x20%s,\x20%s',_0x312e37,_0x53ebad);_0x4939f2(_0x53ebad);});});}exports[_0xaebe('0x14')]=function(_0x4346a2){var _0x9270ba=this;return new Promise(function(_0x4b6116,_0x236dfa){return db[_0xaebe('0x15')]['findAll']({'raw':_0x4346a2[_0xaebe('0x16')]?_0x4346a2[_0xaebe('0x16')][_0xaebe('0x17')]===undefined?!![]:![]:!![],'where':_0x4346a2['options']?_0x4346a2[_0xaebe('0x16')][_0xaebe('0x18')]||null:null,'attributes':_0x4346a2['options']?_0x4346a2[_0xaebe('0x16')][_0xaebe('0x19')]||null:null,'limit':_0x4346a2['options']?_0x4346a2[_0xaebe('0x16')][_0xaebe('0x1a')]||null:null,'include':_0x4346a2[_0xaebe('0x16')]?_0x4346a2[_0xaebe('0x16')][_0xaebe('0x1b')]?_[_0xaebe('0x1c')](_0x4346a2[_0xaebe('0x16')][_0xaebe('0x1b')],function(_0x41b303){return{'model':db[_0x41b303[_0xaebe('0x1d')]],'as':_0x41b303['as'],'attributes':_0x41b303['attributes'],'include':_0x41b303[_0xaebe('0x1b')]?_[_0xaebe('0x1c')](_0x41b303['include'],function(_0x5dbbb9){return{'model':db[_0x5dbbb9[_0xaebe('0x1d')]],'as':_0x5dbbb9['as'],'attributes':_0x5dbbb9[_0xaebe('0x19')],'include':_0x5dbbb9[_0xaebe('0x1b')]?_[_0xaebe('0x1c')](_0x5dbbb9[_0xaebe('0x1b')],function(_0x33fc18){return{'model':db[_0x33fc18[_0xaebe('0x1d')]],'as':_0x33fc18['as'],'attributes':_0x33fc18[_0xaebe('0x19')]};}):[]};}):[]};}):[]:[]})[_0xaebe('0x1e')](function(_0x10d426){logger[_0xaebe('0xc')](_0xaebe('0x14'),_0x4346a2);logger[_0xaebe('0x1f')](_0xaebe('0x14'),_0x4346a2,JSON['stringify'](_0x10d426));_0x4b6116(_0x10d426);})[_0xaebe('0x13')](function(_0x370402){logger[_0xaebe('0xf')]('GetTrunk',_0x370402[_0xaebe('0x11')],_0x4346a2);_0x236dfa(_0x9270ba[_0xaebe('0xf')](0x1f4,_0x370402['message']));});});};exports[_0xaebe('0x20')]=function(_0x4c2e0a){var _0x3c70fa=this;return new Promise(function(_0x230f5e,_0x5c94a3){return db[_0xaebe('0x15')][_0xaebe('0x21')]({'raw':_0x4c2e0a['options']?_0x4c2e0a['options'][_0xaebe('0x17')]===undefined?!![]:![]:!![],'where':_0x4c2e0a[_0xaebe('0x16')]?_0x4c2e0a['options'][_0xaebe('0x18')]||null:null,'attributes':_0x4c2e0a[_0xaebe('0x16')]?_0x4c2e0a[_0xaebe('0x16')][_0xaebe('0x19')]||null:null,'include':_0x4c2e0a[_0xaebe('0x16')]?_0x4c2e0a[_0xaebe('0x16')]['include']?_[_0xaebe('0x1c')](_0x4c2e0a[_0xaebe('0x16')][_0xaebe('0x1b')],function(_0x2beb91){return{'model':db[_0x2beb91[_0xaebe('0x1d')]],'as':_0x2beb91['as'],'attributes':_0x2beb91[_0xaebe('0x19')],'include':_0x2beb91[_0xaebe('0x1b')]?_[_0xaebe('0x1c')](_0x2beb91[_0xaebe('0x1b')],function(_0x37cc5d){return{'model':db[_0x37cc5d[_0xaebe('0x1d')]],'as':_0x37cc5d['as'],'attributes':_0x37cc5d[_0xaebe('0x19')],'include':_0x37cc5d[_0xaebe('0x1b')]?_[_0xaebe('0x1c')](_0x37cc5d[_0xaebe('0x1b')],function(_0x23b865){return{'model':db[_0x23b865['model']],'as':_0x23b865['as'],'attributes':_0x23b865[_0xaebe('0x19')]};}):[]};}):[]};}):[]:[]})[_0xaebe('0x1e')](function(_0x5cf456){logger[_0xaebe('0xc')](_0xaebe('0x20'),_0x4c2e0a);logger[_0xaebe('0x1f')](_0xaebe('0x20'),_0x4c2e0a,JSON['stringify'](_0x5cf456));_0x230f5e(_0x5cf456);})['catch'](function(_0x29d31f){logger[_0xaebe('0xf')]('ShowTrunk',_0x29d31f[_0xaebe('0x11')],_0x4c2e0a);_0x5c94a3(_0x3c70fa[_0xaebe('0xf')](0x1f4,_0x29d31f[_0xaebe('0x11')]));});});};
\ No newline at end of file
+var _0x2362=['result','catch','GetTrunk','Trunk','options','raw','where','limit','map','include','model','attributes','then','find','ShowTrunk','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/environment','jayson/promise','client','http','request','info','Trunk,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message'];(function(_0x470f63,_0x48d80b){var _0x4f09e2=function(_0x3aa3a4){while(--_0x3aa3a4){_0x470f63['push'](_0x470f63['shift']());}};_0x4f09e2(++_0x48d80b);}(_0x2362,0x117));var _0x2236=function(_0x5ac5e5,_0x2f2a44){_0x5ac5e5=_0x5ac5e5-0x0;var _0x3bcb99=_0x2362[_0x5ac5e5];return _0x3bcb99;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x2236('0x0'));var BPromise=require(_0x2236('0x1'));var rs=require(_0x2236('0x2'));var fs=require('fs');var Redis=require(_0x2236('0x3'));var db=require(_0x2236('0x4'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')('rpc');var config=require(_0x2236('0x5'));var jayson=require(_0x2236('0x6'));var client=jayson[_0x2236('0x7')][_0x2236('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x1b3238,_0x5a0333,_0x3b590c){return new BPromise(function(_0x5b1aa4,_0x55f738){return client[_0x2236('0x9')](_0x1b3238,_0x3b590c)['then'](function(_0x5034a4){logger[_0x2236('0xa')](_0x2236('0xb'),_0x5a0333,_0x2236('0xc'));logger[_0x2236('0xd')]('Trunk,\x20%s,\x20%s,\x20%s',_0x5a0333,_0x2236('0xc'),JSON[_0x2236('0xe')](_0x5034a4));if(_0x5034a4[_0x2236('0xf')]){if(_0x5034a4['error'][_0x2236('0x10')]===0x1f4){logger[_0x2236('0xf')](_0x2236('0xb'),_0x5a0333,_0x5034a4[_0x2236('0xf')][_0x2236('0x11')]);return _0x55f738(_0x5034a4[_0x2236('0xf')][_0x2236('0x11')]);}logger[_0x2236('0xf')](_0x2236('0xb'),_0x5a0333,_0x5034a4[_0x2236('0xf')][_0x2236('0x11')]);return _0x5b1aa4(_0x5034a4[_0x2236('0xf')]['message']);}else{logger[_0x2236('0xa')]('Trunk,\x20%s,\x20%s',_0x5a0333,_0x2236('0xc'));_0x5b1aa4(_0x5034a4[_0x2236('0x12')]['message']);}})[_0x2236('0x13')](function(_0x4f525c){logger[_0x2236('0xf')](_0x2236('0xb'),_0x5a0333,_0x4f525c);_0x55f738(_0x4f525c);});});}exports[_0x2236('0x14')]=function(_0x2f1e3b){var _0x14f0f4=this;return new Promise(function(_0x539b0b,_0x11d5b2){return db[_0x2236('0x15')]['findAll']({'raw':_0x2f1e3b[_0x2236('0x16')]?_0x2f1e3b[_0x2236('0x16')][_0x2236('0x17')]===undefined?!![]:![]:!![],'where':_0x2f1e3b['options']?_0x2f1e3b['options'][_0x2236('0x18')]||null:null,'attributes':_0x2f1e3b[_0x2236('0x16')]?_0x2f1e3b[_0x2236('0x16')]['attributes']||null:null,'limit':_0x2f1e3b[_0x2236('0x16')]?_0x2f1e3b[_0x2236('0x16')][_0x2236('0x19')]||null:null,'include':_0x2f1e3b[_0x2236('0x16')]?_0x2f1e3b[_0x2236('0x16')]['include']?_[_0x2236('0x1a')](_0x2f1e3b[_0x2236('0x16')][_0x2236('0x1b')],function(_0x314204){return{'model':db[_0x314204[_0x2236('0x1c')]],'as':_0x314204['as'],'attributes':_0x314204[_0x2236('0x1d')],'include':_0x314204['include']?_[_0x2236('0x1a')](_0x314204[_0x2236('0x1b')],function(_0x5ddc25){return{'model':db[_0x5ddc25[_0x2236('0x1c')]],'as':_0x5ddc25['as'],'attributes':_0x5ddc25['attributes'],'include':_0x5ddc25['include']?_[_0x2236('0x1a')](_0x5ddc25[_0x2236('0x1b')],function(_0x1d1223){return{'model':db[_0x1d1223[_0x2236('0x1c')]],'as':_0x1d1223['as'],'attributes':_0x1d1223[_0x2236('0x1d')]};}):[]};}):[]};}):[]:[]})[_0x2236('0x1e')](function(_0x118a3d){logger['info'](_0x2236('0x14'),_0x2f1e3b);logger['debug'](_0x2236('0x14'),_0x2f1e3b,JSON[_0x2236('0xe')](_0x118a3d));_0x539b0b(_0x118a3d);})['catch'](function(_0x42b510){logger['error'](_0x2236('0x14'),_0x42b510[_0x2236('0x11')],_0x2f1e3b);_0x11d5b2(_0x14f0f4['error'](0x1f4,_0x42b510[_0x2236('0x11')]));});});};exports['ShowTrunk']=function(_0x70b5ac){var _0x132568=this;return new Promise(function(_0x5c7ef5,_0x3cee9c){return db['Trunk'][_0x2236('0x1f')]({'raw':_0x70b5ac[_0x2236('0x16')]?_0x70b5ac[_0x2236('0x16')][_0x2236('0x17')]===undefined?!![]:![]:!![],'where':_0x70b5ac[_0x2236('0x16')]?_0x70b5ac[_0x2236('0x16')][_0x2236('0x18')]||null:null,'attributes':_0x70b5ac[_0x2236('0x16')]?_0x70b5ac[_0x2236('0x16')][_0x2236('0x1d')]||null:null,'include':_0x70b5ac['options']?_0x70b5ac['options'][_0x2236('0x1b')]?_[_0x2236('0x1a')](_0x70b5ac[_0x2236('0x16')][_0x2236('0x1b')],function(_0x20f9dd){return{'model':db[_0x20f9dd[_0x2236('0x1c')]],'as':_0x20f9dd['as'],'attributes':_0x20f9dd['attributes'],'include':_0x20f9dd[_0x2236('0x1b')]?_[_0x2236('0x1a')](_0x20f9dd[_0x2236('0x1b')],function(_0x52fc1a){return{'model':db[_0x52fc1a[_0x2236('0x1c')]],'as':_0x52fc1a['as'],'attributes':_0x52fc1a[_0x2236('0x1d')],'include':_0x52fc1a[_0x2236('0x1b')]?_[_0x2236('0x1a')](_0x52fc1a[_0x2236('0x1b')],function(_0x42bca9){return{'model':db[_0x42bca9[_0x2236('0x1c')]],'as':_0x42bca9['as'],'attributes':_0x42bca9[_0x2236('0x1d')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x3324a9){logger[_0x2236('0xa')](_0x2236('0x20'),_0x70b5ac);logger[_0x2236('0xd')](_0x2236('0x20'),_0x70b5ac,JSON[_0x2236('0xe')](_0x3324a9));_0x5c7ef5(_0x3324a9);})[_0x2236('0x13')](function(_0x5e9476){logger[_0x2236('0xf')]('ShowTrunk',_0x5e9476[_0x2236('0x11')],_0x70b5ac);_0x3cee9c(_0x132568[_0x2236('0xf')](0x1f4,_0x5e9476[_0x2236('0x11')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x45ec=['/:id/square_projects','/:id/scheduled_calls','getScheduledCalls','post','addContacts','create','/create_many','addQueues','root','server/files/images/','%s-%s','now','single','/:id/login','login','logout','pause','/:id/unpause','addTeams','/:id/mail_interactions','addMailInteractions','/:id/fax_interactions','addFaxInteractions','/:id/sms_interactions','addSmsInteractions','addOpenchannelInteractions','/:id/whatsapp_interactions','addWhatsappInteractions','addMailAccounts','addOpenchannelAccounts','/:id/chat_websites','addChatWebsites','addWhatsappAccounts','createApiKey','put','/:id/password','changePassword','removeQueues','removeTeams','destroy','delete','/:id/chat_interactions','removeChatInteractions','removeMailInteractions','removeFaxInteractions','removeSmsInteractions','removeOpenchannelInteractions','removeWhatsappInteractions','removeFaxAccounts','/:id/sms_accounts','removeSmsAccounts','removeWhatsappAccounts','removeSquareProjects','/:id/api_key','removeApiKey','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./user.controller','get','isAuthenticated','/describe','whoami','/presence','/:id','show','/:id/avatar','getAvatar','getOpenTabs','/:id/contacts','getContacts','/:id/queues','getQueues','/:id/queues_rt','getVoiceQueuesRt','/:id/screen_recordings','getScreenRecordings','/:id/chat/interactions','getChatInteractions','/:id/openchannel/interactions','getOpenchannelInteractions','/:id/mail/interactions','getMailInteractions','/:id/sms/interactions','getSmsInteractions','getFaxInteractions','/:id/whatsapp/interactions','/:id/teams','getTeams','/:id/lists','getLists','/:id/agents','getAgents','getVoicePrefixes','/:id/fax_accounts','/:id/mail_accounts','getMailAccounts','/:id/openchannel_accounts','getOpenchannelAccounts','/:id/whatsapp_accounts'];(function(_0x3947c9,_0x4d6c97){var _0x2e7871=function(_0x1236cc){while(--_0x1236cc){_0x3947c9['push'](_0x3947c9['shift']());}};_0x2e7871(++_0x4d6c97);}(_0x45ec,0x1db));var _0xc45e=function(_0x4c3051,_0x3471aa){_0x4c3051=_0x4c3051-0x0;var _0x1b8721=_0x45ec[_0x4c3051];return _0x1b8721;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0xc45e('0x0'));var timeout=require(_0xc45e('0x1'));var express=require(_0xc45e('0x2'));var router=express[_0xc45e('0x3')]();var fs_extra=require(_0xc45e('0x4'));var auth=require(_0xc45e('0x5'));var interaction=require(_0xc45e('0x6'));var config=require(_0xc45e('0x7'));var controller=require(_0xc45e('0x8'));router[_0xc45e('0x9')]('/',auth[_0xc45e('0xa')](),controller['index']);router[_0xc45e('0x9')](_0xc45e('0xb'),auth[_0xc45e('0xa')](),controller['describe']);router[_0xc45e('0x9')]('/whoami',auth['isAuthenticated'](),controller[_0xc45e('0xc')]);router[_0xc45e('0x9')](_0xc45e('0xd'),auth[_0xc45e('0xa')](),controller['getPresence']);router[_0xc45e('0x9')](_0xc45e('0xe'),auth[_0xc45e('0xa')](),controller[_0xc45e('0xf')]);router['get'](_0xc45e('0x10'),controller[_0xc45e('0x11')]);router[_0xc45e('0x9')]('/:id/open_tabs',auth[_0xc45e('0xa')](),controller[_0xc45e('0x12')]);router[_0xc45e('0x9')](_0xc45e('0x13'),auth[_0xc45e('0xa')](),controller[_0xc45e('0x14')]);router[_0xc45e('0x9')](_0xc45e('0x15'),auth['isAuthenticated'](),controller[_0xc45e('0x16')]);router[_0xc45e('0x9')](_0xc45e('0x17'),auth[_0xc45e('0xa')](),controller[_0xc45e('0x18')]);router[_0xc45e('0x9')]('/:id/groups',auth['isAuthenticated'](),controller['getGroups']);router[_0xc45e('0x9')]('/:id/recordings',auth['isAuthenticated'](),controller['getRecordings']);router[_0xc45e('0x9')](_0xc45e('0x19'),auth[_0xc45e('0xa')](),controller[_0xc45e('0x1a')]);router[_0xc45e('0x9')](_0xc45e('0x1b'),auth[_0xc45e('0xa')](),controller[_0xc45e('0x1c')]);router[_0xc45e('0x9')](_0xc45e('0x1d'),auth[_0xc45e('0xa')](),controller[_0xc45e('0x1e')]);router[_0xc45e('0x9')](_0xc45e('0x1f'),auth[_0xc45e('0xa')](),controller[_0xc45e('0x20')]);router[_0xc45e('0x9')](_0xc45e('0x21'),auth[_0xc45e('0xa')](),controller[_0xc45e('0x22')]);router[_0xc45e('0x9')]('/:id/fax/interactions',auth['isAuthenticated'](),controller[_0xc45e('0x23')]);router[_0xc45e('0x9')](_0xc45e('0x24'),auth[_0xc45e('0xa')](),controller['getWhatsappInteractions']);router[_0xc45e('0x9')](_0xc45e('0x25'),auth[_0xc45e('0xa')](),controller[_0xc45e('0x26')]);router[_0xc45e('0x9')](_0xc45e('0x27'),auth['isAuthenticated'](),controller[_0xc45e('0x28')]);router[_0xc45e('0x9')](_0xc45e('0x29'),auth[_0xc45e('0xa')](),controller[_0xc45e('0x2a')]);router[_0xc45e('0x9')]('/:id/prefixes',auth['isAuthenticated'](),controller[_0xc45e('0x2b')]);router[_0xc45e('0x9')](_0xc45e('0x2c'),auth[_0xc45e('0xa')](),controller['getFaxAccounts']);router['get'](_0xc45e('0x2d'),auth[_0xc45e('0xa')](),controller[_0xc45e('0x2e')]);router[_0xc45e('0x9')](_0xc45e('0x2f'),auth[_0xc45e('0xa')](),controller[_0xc45e('0x30')]);router[_0xc45e('0x9')]('/:id/sms_accounts',auth[_0xc45e('0xa')](),controller['getSmsAccounts']);router[_0xc45e('0x9')]('/:id/chat_websites',auth[_0xc45e('0xa')](),controller['getChatWebsites']);router['get'](_0xc45e('0x31'),auth[_0xc45e('0xa')](),controller['getWhatsappAccounts']);router[_0xc45e('0x9')](_0xc45e('0x32'),auth[_0xc45e('0xa')](),controller['getSquareProjects']);router['get'](_0xc45e('0x33'),auth[_0xc45e('0xa')](),controller[_0xc45e('0x34')]);router[_0xc45e('0x9')]('/:id/api_key',auth[_0xc45e('0xa')](),controller['getApiKey']);router[_0xc45e('0x35')](_0xc45e('0x13'),auth[_0xc45e('0xa')](),controller[_0xc45e('0x36')]);router[_0xc45e('0x35')]('/',auth[_0xc45e('0xa')](),controller[_0xc45e('0x37')]);router[_0xc45e('0x35')](_0xc45e('0x38'),auth[_0xc45e('0xa')](),controller['bulkCreate']);router[_0xc45e('0x35')](_0xc45e('0x15'),auth[_0xc45e('0xa')](),controller[_0xc45e('0x39')]);var upload=multer({'storage':multer['diskStorage']({'destination':function(_0x49b0ce,_0x4d93d4,_0x502999){_0x502999(null,path['join'](config[_0xc45e('0x3a')],_0xc45e('0x3b')));},'filename':function(_0x36ed08,_0x8ebf1f,_0x2c3363){_0x2c3363(null,util['format'](_0xc45e('0x3c'),Date[_0xc45e('0x3d')](),_0x8ebf1f['originalname']));}})});router[_0xc45e('0x35')](_0xc45e('0x10'),upload[_0xc45e('0x3e')]('file'),controller['addAvatar']);router[_0xc45e('0x35')](_0xc45e('0x3f'),auth['isAuthenticated'](),controller[_0xc45e('0x40')]);router[_0xc45e('0x35')]('/:id/logout',auth['isAuthenticated'](),controller[_0xc45e('0x41')]);router['post']('/:id/pause',auth[_0xc45e('0xa')](),controller[_0xc45e('0x42')]);router[_0xc45e('0x35')](_0xc45e('0x43'),auth[_0xc45e('0xa')](),controller['unpause']);router[_0xc45e('0x35')](_0xc45e('0x25'),auth[_0xc45e('0xa')](),controller[_0xc45e('0x44')]);router[_0xc45e('0x35')]('/:id/chat_interactions',auth[_0xc45e('0xa')](),controller['addChatInteractions']);router[_0xc45e('0x35')](_0xc45e('0x45'),auth[_0xc45e('0xa')](),controller[_0xc45e('0x46')]);router[_0xc45e('0x35')](_0xc45e('0x47'),auth['isAuthenticated'](),controller[_0xc45e('0x48')]);router['post'](_0xc45e('0x49'),auth[_0xc45e('0xa')](),controller[_0xc45e('0x4a')]);router['post']('/:id/openchannel_interactions',auth['isAuthenticated'](),controller[_0xc45e('0x4b')]);router[_0xc45e('0x35')](_0xc45e('0x4c'),auth[_0xc45e('0xa')](),controller[_0xc45e('0x4d')]);router['post'](_0xc45e('0x2c'),auth[_0xc45e('0xa')](),controller['addFaxAccounts']);router[_0xc45e('0x35')](_0xc45e('0x2d'),auth[_0xc45e('0xa')](),controller[_0xc45e('0x4e')]);router[_0xc45e('0x35')](_0xc45e('0x2f'),auth[_0xc45e('0xa')](),controller[_0xc45e('0x4f')]);router[_0xc45e('0x35')]('/:id/sms_accounts',auth[_0xc45e('0xa')](),controller['addSmsAccounts']);router[_0xc45e('0x35')](_0xc45e('0x50'),auth['isAuthenticated'](),controller[_0xc45e('0x51')]);router[_0xc45e('0x35')]('/:id/whatsapp_accounts',auth[_0xc45e('0xa')](),controller[_0xc45e('0x52')]);router['post'](_0xc45e('0x32'),auth[_0xc45e('0xa')](),controller['addSquareProjects']);router[_0xc45e('0x35')]('/:id/api_key',auth[_0xc45e('0xa')](),controller[_0xc45e('0x53')]);router['put'](_0xc45e('0xe'),auth[_0xc45e('0xa')](),controller['update']);router[_0xc45e('0x54')](_0xc45e('0x55'),auth['isAuthenticated'](),controller[_0xc45e('0x56')]);router['delete']('/:id/queues',auth['isAuthenticated'](),controller[_0xc45e('0x57')]);router['delete'](_0xc45e('0x25'),auth['isAuthenticated'](),controller[_0xc45e('0x58')]);router['delete'](_0xc45e('0xe'),auth[_0xc45e('0xa')](),controller[_0xc45e('0x59')]);router[_0xc45e('0x5a')](_0xc45e('0x5b'),auth[_0xc45e('0xa')](),controller[_0xc45e('0x5c')]);router[_0xc45e('0x5a')](_0xc45e('0x45'),auth['isAuthenticated'](),controller[_0xc45e('0x5d')]);router[_0xc45e('0x5a')]('/:id/fax_interactions',auth['isAuthenticated'](),controller[_0xc45e('0x5e')]);router['delete'](_0xc45e('0x49'),auth[_0xc45e('0xa')](),controller[_0xc45e('0x5f')]);router[_0xc45e('0x5a')]('/:id/openchannel_interactions',auth['isAuthenticated'](),controller[_0xc45e('0x60')]);router[_0xc45e('0x5a')](_0xc45e('0x4c'),auth['isAuthenticated'](),controller[_0xc45e('0x61')]);router[_0xc45e('0x5a')]('/:id/fax_accounts',auth[_0xc45e('0xa')](),controller[_0xc45e('0x62')]);router['delete']('/:id/mail_accounts',auth['isAuthenticated'](),controller['removeMailAccounts']);router[_0xc45e('0x5a')](_0xc45e('0x2f'),auth[_0xc45e('0xa')](),controller['removeOpenchannelAccounts']);router[_0xc45e('0x5a')](_0xc45e('0x63'),auth[_0xc45e('0xa')](),controller[_0xc45e('0x64')]);router[_0xc45e('0x5a')](_0xc45e('0x50'),auth[_0xc45e('0xa')](),controller['removeChatWebsites']);router[_0xc45e('0x5a')](_0xc45e('0x31'),auth[_0xc45e('0xa')](),controller[_0xc45e('0x65')]);router[_0xc45e('0x5a')](_0xc45e('0x32'),auth[_0xc45e('0xa')](),controller[_0xc45e('0x66')]);router['delete'](_0xc45e('0x67'),auth[_0xc45e('0xa')](),controller[_0xc45e('0x68')]);module['exports']=router;
\ No newline at end of file
+var _0x51c9=['addSmsAccounts','addChatWebsites','addWhatsappAccounts','addSquareProjects','createApiKey','update','put','/:id/password','changePassword','delete','/:id/queues','removeTeams','destroy','/:id/mail_interactions','removeOpenchannelInteractions','removeWhatsappInteractions','removeFaxAccounts','removeOpenchannelAccounts','removeSmsAccounts','removeChatWebsites','removeWhatsappAccounts','removeSquareProjects','removeApiKey','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','index','/describe','isAuthenticated','/whoami','whoami','/presence','/:id','show','/:id/avatar','getAvatar','/:id/open_tabs','/:id/contacts','getContacts','getQueues','/:id/queues_rt','getVoiceQueuesRt','/:id/groups','getRecordings','/:id/screen_recordings','getScreenRecordings','/:id/chat/interactions','/:id/openchannel/interactions','/:id/mail/interactions','getMailInteractions','/:id/fax/interactions','getFaxInteractions','/:id/whatsapp/interactions','getWhatsappInteractions','/:id/teams','getTeams','getLists','/:id/agents','getAgents','getVoicePrefixes','/:id/fax_accounts','getFaxAccounts','/:id/mail_accounts','getMailAccounts','/:id/openchannel_accounts','getOpenchannelAccounts','/:id/sms_accounts','getSmsAccounts','/:id/chat_websites','getChatWebsites','/:id/whatsapp_accounts','getWhatsappAccounts','/:id/square_projects','getSquareProjects','/:id/scheduled_calls','getScheduledCalls','/:id/api_key','getApiKey','addContacts','create','post','/create_many','bulkCreate','diskStorage','join','root','server/files/images/','format','originalname','single','file','addAvatar','/:id/login','/:id/logout','logout','pause','/:id/unpause','unpause','addTeams','/:id/chat_interactions','addChatInteractions','addMailInteractions','/:id/fax_interactions','addFaxInteractions','/:id/sms_interactions','/:id/openchannel_interactions','addOpenchannelInteractions','/:id/whatsapp_interactions','addFaxAccounts','addMailAccounts','addOpenchannelAccounts'];(function(_0x286855,_0x2747ad){var _0x3644c9=function(_0x306d18){while(--_0x306d18){_0x286855['push'](_0x286855['shift']());}};_0x3644c9(++_0x2747ad);}(_0x51c9,0x105));var _0x951c=function(_0x13cd35,_0x59bdbd){_0x13cd35=_0x13cd35-0x0;var _0x24220e=_0x51c9[_0x13cd35];return _0x24220e;};'use strict';var multer=require(_0x951c('0x0'));var util=require(_0x951c('0x1'));var path=require(_0x951c('0x2'));var timeout=require(_0x951c('0x3'));var express=require(_0x951c('0x4'));var router=express[_0x951c('0x5')]();var fs_extra=require(_0x951c('0x6'));var auth=require(_0x951c('0x7'));var interaction=require(_0x951c('0x8'));var config=require(_0x951c('0x9'));var controller=require('./user.controller');router[_0x951c('0xa')]('/',auth['isAuthenticated'](),controller[_0x951c('0xb')]);router['get'](_0x951c('0xc'),auth[_0x951c('0xd')](),controller['describe']);router[_0x951c('0xa')](_0x951c('0xe'),auth[_0x951c('0xd')](),controller[_0x951c('0xf')]);router[_0x951c('0xa')](_0x951c('0x10'),auth[_0x951c('0xd')](),controller['getPresence']);router[_0x951c('0xa')](_0x951c('0x11'),auth[_0x951c('0xd')](),controller[_0x951c('0x12')]);router[_0x951c('0xa')](_0x951c('0x13'),controller[_0x951c('0x14')]);router['get'](_0x951c('0x15'),auth['isAuthenticated'](),controller['getOpenTabs']);router[_0x951c('0xa')](_0x951c('0x16'),auth['isAuthenticated'](),controller[_0x951c('0x17')]);router[_0x951c('0xa')]('/:id/queues',auth[_0x951c('0xd')](),controller[_0x951c('0x18')]);router[_0x951c('0xa')](_0x951c('0x19'),auth['isAuthenticated'](),controller[_0x951c('0x1a')]);router['get'](_0x951c('0x1b'),auth[_0x951c('0xd')](),controller['getGroups']);router[_0x951c('0xa')]('/:id/recordings',auth[_0x951c('0xd')](),controller[_0x951c('0x1c')]);router[_0x951c('0xa')](_0x951c('0x1d'),auth[_0x951c('0xd')](),controller[_0x951c('0x1e')]);router[_0x951c('0xa')](_0x951c('0x1f'),auth[_0x951c('0xd')](),controller['getChatInteractions']);router['get'](_0x951c('0x20'),auth['isAuthenticated'](),controller['getOpenchannelInteractions']);router['get'](_0x951c('0x21'),auth['isAuthenticated'](),controller[_0x951c('0x22')]);router['get']('/:id/sms/interactions',auth[_0x951c('0xd')](),controller['getSmsInteractions']);router[_0x951c('0xa')](_0x951c('0x23'),auth['isAuthenticated'](),controller[_0x951c('0x24')]);router[_0x951c('0xa')](_0x951c('0x25'),auth[_0x951c('0xd')](),controller[_0x951c('0x26')]);router[_0x951c('0xa')](_0x951c('0x27'),auth['isAuthenticated'](),controller[_0x951c('0x28')]);router['get']('/:id/lists',auth[_0x951c('0xd')](),controller[_0x951c('0x29')]);router[_0x951c('0xa')](_0x951c('0x2a'),auth[_0x951c('0xd')](),controller[_0x951c('0x2b')]);router[_0x951c('0xa')]('/:id/prefixes',auth[_0x951c('0xd')](),controller[_0x951c('0x2c')]);router['get'](_0x951c('0x2d'),auth[_0x951c('0xd')](),controller[_0x951c('0x2e')]);router['get'](_0x951c('0x2f'),auth[_0x951c('0xd')](),controller[_0x951c('0x30')]);router[_0x951c('0xa')](_0x951c('0x31'),auth[_0x951c('0xd')](),controller[_0x951c('0x32')]);router['get'](_0x951c('0x33'),auth[_0x951c('0xd')](),controller[_0x951c('0x34')]);router[_0x951c('0xa')](_0x951c('0x35'),auth['isAuthenticated'](),controller[_0x951c('0x36')]);router[_0x951c('0xa')](_0x951c('0x37'),auth[_0x951c('0xd')](),controller[_0x951c('0x38')]);router['get'](_0x951c('0x39'),auth[_0x951c('0xd')](),controller[_0x951c('0x3a')]);router[_0x951c('0xa')](_0x951c('0x3b'),auth[_0x951c('0xd')](),controller[_0x951c('0x3c')]);router[_0x951c('0xa')](_0x951c('0x3d'),auth[_0x951c('0xd')](),controller[_0x951c('0x3e')]);router['post']('/:id/contacts',auth['isAuthenticated'](),controller[_0x951c('0x3f')]);router['post']('/',auth['isAuthenticated'](),controller[_0x951c('0x40')]);router[_0x951c('0x41')](_0x951c('0x42'),auth['isAuthenticated'](),controller[_0x951c('0x43')]);router[_0x951c('0x41')]('/:id/queues',auth[_0x951c('0xd')](),controller['addQueues']);var upload=multer({'storage':multer[_0x951c('0x44')]({'destination':function(_0x4b936b,_0x26afe4,_0x24da19){_0x24da19(null,path[_0x951c('0x45')](config[_0x951c('0x46')],_0x951c('0x47')));},'filename':function(_0x254e7d,_0x42b408,_0x2247d2){_0x2247d2(null,util[_0x951c('0x48')]('%s-%s',Date['now'](),_0x42b408[_0x951c('0x49')]));}})});router[_0x951c('0x41')](_0x951c('0x13'),upload[_0x951c('0x4a')](_0x951c('0x4b')),controller[_0x951c('0x4c')]);router[_0x951c('0x41')](_0x951c('0x4d'),auth['isAuthenticated'](),controller['login']);router['post'](_0x951c('0x4e'),auth[_0x951c('0xd')](),controller[_0x951c('0x4f')]);router['post']('/:id/pause',auth[_0x951c('0xd')](),controller[_0x951c('0x50')]);router['post'](_0x951c('0x51'),auth[_0x951c('0xd')](),controller[_0x951c('0x52')]);router['post']('/:id/teams',auth[_0x951c('0xd')](),controller[_0x951c('0x53')]);router[_0x951c('0x41')](_0x951c('0x54'),auth[_0x951c('0xd')](),controller[_0x951c('0x55')]);router[_0x951c('0x41')]('/:id/mail_interactions',auth[_0x951c('0xd')](),controller[_0x951c('0x56')]);router[_0x951c('0x41')](_0x951c('0x57'),auth[_0x951c('0xd')](),controller[_0x951c('0x58')]);router[_0x951c('0x41')](_0x951c('0x59'),auth[_0x951c('0xd')](),controller['addSmsInteractions']);router[_0x951c('0x41')](_0x951c('0x5a'),auth[_0x951c('0xd')](),controller[_0x951c('0x5b')]);router[_0x951c('0x41')](_0x951c('0x5c'),auth[_0x951c('0xd')](),controller['addWhatsappInteractions']);router[_0x951c('0x41')](_0x951c('0x2d'),auth[_0x951c('0xd')](),controller[_0x951c('0x5d')]);router[_0x951c('0x41')](_0x951c('0x2f'),auth[_0x951c('0xd')](),controller[_0x951c('0x5e')]);router['post'](_0x951c('0x31'),auth[_0x951c('0xd')](),controller[_0x951c('0x5f')]);router['post']('/:id/sms_accounts',auth['isAuthenticated'](),controller[_0x951c('0x60')]);router[_0x951c('0x41')](_0x951c('0x35'),auth[_0x951c('0xd')](),controller[_0x951c('0x61')]);router[_0x951c('0x41')](_0x951c('0x37'),auth[_0x951c('0xd')](),controller[_0x951c('0x62')]);router[_0x951c('0x41')](_0x951c('0x39'),auth[_0x951c('0xd')](),controller[_0x951c('0x63')]);router[_0x951c('0x41')](_0x951c('0x3d'),auth[_0x951c('0xd')](),controller[_0x951c('0x64')]);router['put'](_0x951c('0x11'),auth[_0x951c('0xd')](),controller[_0x951c('0x65')]);router[_0x951c('0x66')](_0x951c('0x67'),auth[_0x951c('0xd')](),controller[_0x951c('0x68')]);router[_0x951c('0x69')](_0x951c('0x6a'),auth[_0x951c('0xd')](),controller['removeQueues']);router[_0x951c('0x69')](_0x951c('0x27'),auth['isAuthenticated'](),controller[_0x951c('0x6b')]);router[_0x951c('0x69')](_0x951c('0x11'),auth[_0x951c('0xd')](),controller[_0x951c('0x6c')]);router[_0x951c('0x69')]('/:id/chat_interactions',auth[_0x951c('0xd')](),controller['removeChatInteractions']);router[_0x951c('0x69')](_0x951c('0x6d'),auth['isAuthenticated'](),controller['removeMailInteractions']);router['delete'](_0x951c('0x57'),auth[_0x951c('0xd')](),controller['removeFaxInteractions']);router[_0x951c('0x69')](_0x951c('0x59'),auth['isAuthenticated'](),controller['removeSmsInteractions']);router[_0x951c('0x69')](_0x951c('0x5a'),auth[_0x951c('0xd')](),controller[_0x951c('0x6e')]);router[_0x951c('0x69')](_0x951c('0x5c'),auth[_0x951c('0xd')](),controller[_0x951c('0x6f')]);router[_0x951c('0x69')](_0x951c('0x2d'),auth[_0x951c('0xd')](),controller[_0x951c('0x70')]);router[_0x951c('0x69')]('/:id/mail_accounts',auth[_0x951c('0xd')](),controller['removeMailAccounts']);router[_0x951c('0x69')](_0x951c('0x31'),auth[_0x951c('0xd')](),controller[_0x951c('0x71')]);router['delete'](_0x951c('0x33'),auth[_0x951c('0xd')](),controller[_0x951c('0x72')]);router['delete'](_0x951c('0x35'),auth[_0x951c('0xd')](),controller[_0x951c('0x73')]);router[_0x951c('0x69')](_0x951c('0x37'),auth[_0x951c('0xd')](),controller[_0x951c('0x74')]);router[_0x951c('0x69')](_0x951c('0x39'),auth[_0x951c('0xd')](),controller[_0x951c('0x75')]);router['delete'](_0x951c('0x3d'),auth[_0x951c('0xd')](),controller[_0x951c('0x76')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x66fa=['wss','encryption','avpf','force_avp','icesupport','dtlsenable','dtlsverify','dtlssetup','dtlscertfile','rtcp_mux','/etc/pki/tls/certs/motion.crt','dtlsprivatekey','/etc/pki/tls/private/motion.key','permissions','map','VIRTUAL','phoneBarEnableScreenRecordingByAgent','string','false','screenrecording','blocked','loginAttempts','blockedAt','UNSIGNED','sequelize','moment','util','STRING','name','setDataValue','defaultuser','The\x20name\x20of\x20the\x20user','format','\x22%s\x22\x20<%s>','internal','email','ENUM','user','agent','telephone','local','accountcode','getDataValue','fullname','DATE','BOOLEAN','DEFAULT\x20PAUSE','INTEGER','peer','from-sip','ALLOWED_FAILED_SCREEN','ALLOWED','PROHIB_NOT_SCREENED','PROHIB_FAILED_SCREEN','join','transport','split','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22udp\x22,\x20\x22tcp\x22]','rfc2833','info','inband','auto','update','yes','force_rport,comedia','nat','all','ulaw;alaw;gsm','allow','insecure','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22port\x22,\x20\x22invite\x22]','\x22\x22\x20<>','always','accept','refuse','originate','uac','uas','active','actpass','TEXT','get','isArray','udp'];(function(_0x56e42d,_0x2efbd4){var _0x5020c1=function(_0x142c42){while(--_0x142c42){_0x56e42d['push'](_0x56e42d['shift']());}};_0x5020c1(++_0x2efbd4);}(_0x66fa,0x168));var _0xa66f=function(_0x295e3f,_0x1e2b7b){_0x295e3f=_0x295e3f-0x0;var _0x57a9a6=_0x66fa[_0x295e3f];return _0x57a9a6;};'use strict';var Sequelize=require(_0xa66f('0x0'));var moment=require(_0xa66f('0x1'));var util=require(_0xa66f('0x2'));var _=require('lodash');module['exports']={'name':{'type':Sequelize[_0xa66f('0x3')],'allowNull':![],'unique':_0xa66f('0x4'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i},'set':function(_0x3aaeff){this[_0xa66f('0x5')](_0xa66f('0x4'),_0x3aaeff);this[_0xa66f('0x5')](_0xa66f('0x6'),_0x3aaeff);},'comment':_0xa66f('0x7')},'fullname':{'type':Sequelize[_0xa66f('0x3')],'allowNull':![],'set':function(_0x33bd0d){this[_0xa66f('0x5')]('fullname',_0x33bd0d);this[_0xa66f('0x5')]('callerid',util[_0xa66f('0x8')](_0xa66f('0x9'),_0x33bd0d,this['getDataValue'](_0xa66f('0xa'))));}},'alias':{'type':Sequelize[_0xa66f('0x3')]},'email':{'type':Sequelize[_0xa66f('0x3')],'allowNull':![],'unique':_0xa66f('0xb'),'validate':{'isEmail':!![]},'set':function(_0x234c43){if(_0x234c43){this[_0xa66f('0x5')]('email',_0x234c43['toLowerCase']());}}},'role':{'type':Sequelize[_0xa66f('0xc')]('admin',_0xa66f('0xd'),_0xa66f('0xe'),_0xa66f('0xf')),'allowNull':![]},'password':{'type':Sequelize['STRING'],'allowNull':![],'validate':{'notEmpty':!![]}},'provider':{'type':Sequelize[_0xa66f('0x3')],'defaultValue':_0xa66f('0x10')},'internal':{'type':Sequelize['INTEGER'](0xb),'allowNull':![],'unique':_0xa66f('0xa'),'set':function(_0x24423a){this[_0xa66f('0x5')](_0xa66f('0xa'),_0x24423a);this['setDataValue'](_0xa66f('0x11'),_0x24423a);this[_0xa66f('0x5')]('callerid',util[_0xa66f('0x8')](_0xa66f('0x9'),this[_0xa66f('0x12')](_0xa66f('0x13')),_0x24423a));}},'salt':{'type':Sequelize[_0xa66f('0x3')]},'phone':{'type':Sequelize[_0xa66f('0x3')]},'mobile':{'type':Sequelize['STRING']},'address':{'type':Sequelize['STRING']},'zipcode':{'type':Sequelize[_0xa66f('0x3')]},'userpic':{'type':Sequelize[_0xa66f('0x3')]},'city':{'type':Sequelize[_0xa66f('0x3')]},'country':{'type':Sequelize[_0xa66f('0x3')]},'online':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'lastLoginAt':{'type':Sequelize[_0xa66f('0x14')]},'voicePause':{'type':Sequelize[_0xa66f('0x15')],'defaultValue':![]},'chatPause':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'mailPause':{'type':Sequelize[_0xa66f('0x15')],'defaultValue':![]},'faxPause':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'smsPause':{'type':Sequelize[_0xa66f('0x15')],'defaultValue':![]},'whatsappPause':{'type':Sequelize[_0xa66f('0x15')],'defaultValue':![]},'openchannelPause':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'pauseType':{'type':Sequelize['STRING'],'defaultValue':_0xa66f('0x16')},'lastPauseAt':{'type':Sequelize['DATE']},'chatCapacity':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'mailCapacity':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'faxCapacity':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'smsCapacity':{'type':Sequelize[_0xa66f('0x17')],'defaultValue':0x0},'whatsappCapacity':{'type':Sequelize[_0xa66f('0x17')],'defaultValue':0x0},'openchannelCapacity':{'type':Sequelize[_0xa66f('0x17')],'defaultValue':0x0},'phoneBarAutoAnswer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'phoneBarEnableSettings':{'type':Sequelize[_0xa66f('0x15')],'defaultValue':!![]},'phoneBarListenPort':{'type':Sequelize[_0xa66f('0x17')](0x5),'defaultValue':0x1428},'phoneBarExpires':{'type':Sequelize['INTEGER'](0x5),'defaultValue':0x78},'phoneBarRemoteControl':{'type':Sequelize[_0xa66f('0x15')],'defaultValue':![]},'phoneBarRemoteControlPort':{'type':Sequelize[_0xa66f('0x17')],'defaultValue':0x26a0},'phoneBarEnableRecording':{'type':Sequelize[_0xa66f('0x15')],'defaultValue':![]},'phoneBarRingInUse':{'type':Sequelize[_0xa66f('0x15')],'defaultValue':![]},'chanspy':{'type':Sequelize[_0xa66f('0x15')],'defaultValue':![]},'description':{'type':Sequelize[_0xa66f('0x3')],'allowNull':!![]},'host':{'type':Sequelize['STRING'],'allowNull':!![],'defaultValue':'dynamic'},'ipaddr':{'type':Sequelize[_0xa66f('0x3')],'allowNull':!![]},'port':{'type':Sequelize['INTEGER'](0x5),'allowNull':!![]},'regseconds':{'type':Sequelize[_0xa66f('0x17')](0xb),'allowNull':!![]},'fullcontact':{'type':Sequelize[_0xa66f('0x3')],'allowNull':!![]},'regserver':{'type':Sequelize[_0xa66f('0x3')],'allowNull':!![]},'useragent':{'type':Sequelize['STRING'],'allowNull':!![]},'lastms':{'type':Sequelize[_0xa66f('0x17')](0xb),'allowNull':!![]},'type':{'type':Sequelize['ENUM']('friend','user',_0xa66f('0x18')),'allowNull':!![],'defaultValue':'friend'},'context':{'type':Sequelize[_0xa66f('0x3')],'allowNull':!![],'defaultValue':_0xa66f('0x19')},'callingpres':{'type':Sequelize[_0xa66f('0xc')]('ALLOWED_NOT_SCREENED','ALLOWED_PASSED_SCREEN',_0xa66f('0x1a'),_0xa66f('0x1b'),_0xa66f('0x1c'),'PROHIB_PASSED_SCREEN',_0xa66f('0x1d'),'PROHIB'),'allowNull':!![]},'deny':{'type':Sequelize[_0xa66f('0x3')],'allowNull':!![]},'permit':{'type':Sequelize[_0xa66f('0x3')],'allowNull':!![]},'secret':{'type':Sequelize[_0xa66f('0x3')],'allowNull':!![]},'md5secret':{'type':Sequelize[_0xa66f('0x3')],'allowNull':!![]},'remotesecret':{'type':Sequelize[_0xa66f('0x3')],'allowNull':!![]},'transport':{'type':Sequelize[_0xa66f('0x3')],'allowNull':!![],'defaultValue':'udp','set':function(_0x3e5b98){this[_0xa66f('0x5')]('transport',_0x3e5b98?_0x3e5b98[_0xa66f('0x1e')](','):null);},'get':function(){return this[_0xa66f('0x12')]('transport')?this['getDataValue'](_0xa66f('0x1f'))[_0xa66f('0x20')](','):null;},'comment':_0xa66f('0x21')},'dtmfmode':{'type':Sequelize[_0xa66f('0xc')](_0xa66f('0x22'),_0xa66f('0x23'),'shortinfo',_0xa66f('0x24'),_0xa66f('0x25')),'allowNull':!![],'defaultValue':_0xa66f('0x22')},'directmedia':{'type':Sequelize[_0xa66f('0xc')]('yes','no','nonat',_0xa66f('0x26'),'outgoing'),'allowNull':!![],'defaultValue':'no'},'directrtpsetup':{'type':Sequelize[_0xa66f('0xc')](_0xa66f('0x27'),'no'),'allowNull':!![],'defaultValue':'no'},'directmediapermit':{'type':Sequelize[_0xa66f('0x3')],'allowNull':!![]},'directmediadeny':{'type':Sequelize[_0xa66f('0x3')],'allowNull':!![]},'nat':{'type':Sequelize[_0xa66f('0x3')],'allowNull':!![],'defaultValue':_0xa66f('0x28'),'set':function(_0x343cdc){this[_0xa66f('0x5')](_0xa66f('0x29'),_0x343cdc?_0x343cdc[_0xa66f('0x1e')](','):null);},'get':function(){return this[_0xa66f('0x12')](_0xa66f('0x29'))?this['getDataValue'](_0xa66f('0x29'))[_0xa66f('0x20')](','):null;},'comment':'String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22force_rport\x22,\x20\x22comedia\x22]'},'callgroup':{'type':Sequelize[_0xa66f('0x3')]},'namedcallgroup':{'type':Sequelize['STRING']},'pickupgroup':{'type':Sequelize[_0xa66f('0x3')]},'namedpickupgroup':{'type':Sequelize[_0xa66f('0x3')]},'language':{'type':Sequelize[_0xa66f('0x3')],'defaultValue':'en'},'tonezone':{'type':Sequelize[_0xa66f('0x3')]},'disallow':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0xa66f('0x2a')},'allow':{'type':Sequelize[_0xa66f('0x3')],'allowNull':![],'defaultValue':_0xa66f('0x2b'),'set':function(_0x34a742){this['setDataValue'](_0xa66f('0x2c'),_0x34a742?_0x34a742['join'](';'):_0xa66f('0x2b'));},'get':function(){return this[_0xa66f('0x12')](_0xa66f('0x2c'))?this[_0xa66f('0x12')]('allow')[_0xa66f('0x20')](';'):null;},'comment':'String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22ulaw\x22,\x20\x22alaw\x22,\x20\x22gsm\x22]'},'autoframing':{'type':Sequelize[_0xa66f('0xc')](_0xa66f('0x27'),'no'),'allowNull':!![]},'insecure':{'type':Sequelize[_0xa66f('0x3')],'allowNull':!![],'set':function(_0x3c5c91){this[_0xa66f('0x5')](_0xa66f('0x2d'),_0x3c5c91?_0x3c5c91[_0xa66f('0x1e')](','):null);},'get':function(){return this[_0xa66f('0x12')](_0xa66f('0x2d'))?this[_0xa66f('0x12')](_0xa66f('0x2d'))[_0xa66f('0x20')](','):null;},'comment':_0xa66f('0x2e')},'trustrpid':{'type':Sequelize[_0xa66f('0xc')](_0xa66f('0x27'),'no'),'allowNull':!![],'defaultValue':'no'},'trust_id_outbound':{'type':Sequelize['ENUM'](_0xa66f('0x27'),'no'),'allowNull':!![],'defaultValue':'no'},'progressinband':{'type':Sequelize[_0xa66f('0xc')](_0xa66f('0x27'),'no','never'),'allowNull':!![]},'promiscredir':{'type':Sequelize[_0xa66f('0xc')]('yes','no'),'allowNull':!![]},'useclientcode':{'type':Sequelize[_0xa66f('0xc')](_0xa66f('0x27'),'no'),'allowNull':!![]},'accountcode':{'type':Sequelize[_0xa66f('0x17')](0xb),'allowNull':!![]},'setvar':{'type':Sequelize['STRING'],'allowNull':!![]},'callerid':{'type':Sequelize['STRING'],'allowNull':!![],'defaultValue':_0xa66f('0x2f')},'amaflags':{'type':Sequelize[_0xa66f('0x3')],'allowNull':!![]},'callcounter':{'type':Sequelize[_0xa66f('0xc')](_0xa66f('0x27'),'no'),'allowNull':!![],'defaultValue':_0xa66f('0x27')},'busylevel':{'type':Sequelize[_0xa66f('0x17')](0xb),'allowNull':!![]},'allowoverlap':{'type':Sequelize['ENUM'](_0xa66f('0x27'),'no'),'allowNull':!![]},'allowsubscribe':{'type':Sequelize[_0xa66f('0xc')]('yes','no'),'allowNull':!![]},'allowtransfer':{'type':Sequelize['ENUM'](_0xa66f('0x27'),'no'),'allowNull':!![]},'ignoresdpversion':{'type':Sequelize[_0xa66f('0xc')](_0xa66f('0x27'),'no'),'allowNull':!![]},'subscribecontext':{'type':Sequelize[_0xa66f('0x3')],'allowNull':!![]},'template':{'type':Sequelize[_0xa66f('0x3')],'allowNull':!![]},'videosupport':{'type':Sequelize['ENUM'](_0xa66f('0x27'),'no',_0xa66f('0x30')),'allowNull':!![],'defaultValue':'no'},'maxcallbitrate':{'type':Sequelize[_0xa66f('0x17')](0xb),'allowNull':!![]},'rfc2833compensate':{'type':Sequelize[_0xa66f('0xc')](_0xa66f('0x27'),'no'),'allowNull':!![]},'mailbox':{'type':Sequelize['STRING'],'allowNull':!![]},'session_timers':{'type':Sequelize[_0xa66f('0xc')](_0xa66f('0x31'),_0xa66f('0x32'),_0xa66f('0x33')),'allowNull':!![]},'session_expires':{'type':Sequelize[_0xa66f('0x17')](0xb),'allowNull':!![]},'session_minse':{'type':Sequelize['INTEGER'](0xb),'allowNull':!![]},'session_refresher':{'type':Sequelize['ENUM'](_0xa66f('0x34'),_0xa66f('0x35')),'allowNull':!![],'defaultValue':_0xa66f('0x35')},'t38pt_usertpsource':{'type':Sequelize[_0xa66f('0x3')],'allowNull':!![]},'regexten':{'type':Sequelize[_0xa66f('0x3')],'allowNull':!![]},'fromdomain':{'type':Sequelize[_0xa66f('0x3')],'allowNull':!![]},'fromuser':{'type':Sequelize[_0xa66f('0x3')],'allowNull':!![]},'qualify':{'type':Sequelize[_0xa66f('0xc')]('yes','no'),'allowNull':!![],'defaultValue':_0xa66f('0x27')},'keepalive':{'type':Sequelize[_0xa66f('0x17')](0xb),'allowNull':!![]},'defaultip':{'type':Sequelize[_0xa66f('0x3')],'allowNull':!![]},'defaultuser':{'type':Sequelize[_0xa66f('0x3')],'allowNull':!![]},'rtptimeout':{'type':Sequelize[_0xa66f('0x17')](0xb),'allowNull':!![]},'rtpholdtimeout':{'type':Sequelize['INTEGER'](0xb),'allowNull':!![]},'rtpkeepalive':{'type':Sequelize[_0xa66f('0x17')](0xb),'allowNull':!![]},'sendrpid':{'type':Sequelize[_0xa66f('0xc')](_0xa66f('0x27'),'no'),'allowNull':!![],'defaultValue':'no'},'outboundproxy':{'type':Sequelize['STRING'],'allowNull':!![]},'callbackextension':{'type':Sequelize['STRING'],'allowNull':!![]},'timert1':{'type':Sequelize[_0xa66f('0x17')](0xb),'allowNull':!![]},'timerb':{'type':Sequelize[_0xa66f('0x17')](0xb),'allowNull':!![]},'qualifyfreq':{'type':Sequelize[_0xa66f('0x17')](0xb),'allowNull':!![]},'contactpermit':{'type':Sequelize[_0xa66f('0x3')],'allowNull':!![]},'contactdeny':{'type':Sequelize[_0xa66f('0x3')],'allowNull':!![]},'contactacl':{'type':Sequelize['STRING'],'allowNull':!![]},'unsolicited_mailbox':{'type':Sequelize[_0xa66f('0x3')],'allowNull':!![]},'use_q850_reason':{'type':Sequelize['STRING'],'allowNull':!![]},'maxforwards':{'type':Sequelize[_0xa66f('0x17')](0xb),'allowNull':!![]},'encryption':{'type':Sequelize[_0xa66f('0xc')](_0xa66f('0x27'),'no'),'allowNull':!![],'defaultValue':'no'},'avpf':{'type':Sequelize['ENUM'](_0xa66f('0x27'),'no'),'allowNull':!![]},'force_avp':{'type':Sequelize['ENUM'](_0xa66f('0x27'),'no'),'allowNull':!![]},'icesupport':{'type':Sequelize[_0xa66f('0xc')](_0xa66f('0x27'),'no'),'allowNull':!![]},'dtlsenable':{'type':Sequelize[_0xa66f('0xc')](_0xa66f('0x27'),'no'),'allowNull':!![]},'dtlsverify':{'type':Sequelize[_0xa66f('0xc')](_0xa66f('0x27'),'no','fingerprint','certificate'),'allowNull':!![]},'dtlsrekey':{'type':Sequelize['INTEGER'](0xb),'allowNull':!![]},'dtlscertfile':{'type':Sequelize[_0xa66f('0x3')],'allowNull':!![]},'dtlsprivatekey':{'type':Sequelize[_0xa66f('0x3')],'allowNull':!![]},'dtlscipher':{'type':Sequelize[_0xa66f('0x3')],'allowNull':!![]},'dtlscafile':{'type':Sequelize[_0xa66f('0x3')],'allowNull':!![]},'dtlscapath':{'type':Sequelize[_0xa66f('0x3')],'allowNull':!![]},'dtlssetup':{'type':Sequelize[_0xa66f('0xc')](_0xa66f('0x36'),'passive',_0xa66f('0x37')),'allowNull':!![]},'dtlsfingerprint':{'type':Sequelize['STRING'],'allowNull':!![]},'usereqphone':{'type':Sequelize[_0xa66f('0xc')](_0xa66f('0x27'),'no'),'allowNull':!![],'defaultValue':'no'},'recordonfeature':{'type':Sequelize['STRING'],'allowNull':!![]},'recordofffeature':{'type':Sequelize[_0xa66f('0x3')],'allowNull':!![]},'call_limit':{'type':Sequelize[_0xa66f('0x17')](0xb),'allowNull':!![],'defaultValue':0xa},'registertrying':{'type':Sequelize[_0xa66f('0xc')]('yes','no'),'allowNull':!![]},'subscribemwi':{'type':Sequelize['ENUM']('yes','no'),'allowNull':!![]},'vmexten':{'type':Sequelize[_0xa66f('0x3')],'allowNull':!![]},'mohinterpret':{'type':Sequelize['STRING'],'allowNull':!![]},'mohsuggest':{'type':Sequelize[_0xa66f('0x3')],'allowNull':!![]},'parkinglot':{'type':Sequelize['STRING'],'allowNull':!![]},'canreinvite':{'type':Sequelize[_0xa66f('0xc')](_0xa66f('0x27'),'no','nonat','update','update,nonat'),'allowNull':!![],'defaultValue':'no'},'loginInPause':{'type':Sequelize[_0xa66f('0x15')],'defaultValue':![]},'resetPasswordToken':{'type':Sequelize[_0xa66f('0x3')]},'resetPasswordExpires':{'type':Sequelize[_0xa66f('0x14')]},'passwordResetAt':{'type':Sequelize[_0xa66f('0x14')],'defaultValue':null},'previousPasswords':{'type':Sequelize[_0xa66f('0x38')]},'showWebBar':{'type':Sequelize['INTEGER'],'defaultValue':0x0,'set':function(_0xe7af9d){this[_0xa66f('0x5')]('showWebBar',_0xe7af9d);var _0x4ec127=this[_0xa66f('0x39')]({'plain':!![]});switch(_0xe7af9d){case 0x0:case 0x1:var _0xb90573=_0x4ec127[_0xa66f('0x1f')]?_[_0xa66f('0x3a')](_0x4ec127[_0xa66f('0x1f')])?_0x4ec127[_0xa66f('0x1f')][_0xa66f('0x1e')]():_0x4ec127[_0xa66f('0x1f')]:_0xa66f('0x3b');if(_0xb90573===_0xa66f('0x3c')){_0xb90573=_0xa66f('0x3b');}this[_0xa66f('0x5')](_0xa66f('0x1f'),_0xb90573);this['setDataValue'](_0xa66f('0x3d'),'no');this['setDataValue'](_0xa66f('0x3e'),null);this[_0xa66f('0x5')](_0xa66f('0x3f'),null);this[_0xa66f('0x5')](_0xa66f('0x40'),null);this[_0xa66f('0x5')](_0xa66f('0x41'),null);this[_0xa66f('0x5')](_0xa66f('0x42'),null);this[_0xa66f('0x5')](_0xa66f('0x43'),null);this[_0xa66f('0x5')](_0xa66f('0x44'),null);this[_0xa66f('0x5')]('dtlsprivatekey',null);this[_0xa66f('0x5')](_0xa66f('0x45'),'no');break;case 0x2:this[_0xa66f('0x5')](_0xa66f('0x1f'),'wss');this[_0xa66f('0x5')](_0xa66f('0x3d'),'yes');this['setDataValue'](_0xa66f('0x3e'),_0xa66f('0x27'));this[_0xa66f('0x5')](_0xa66f('0x3f'),'yes');this[_0xa66f('0x5')](_0xa66f('0x40'),_0xa66f('0x27'));this[_0xa66f('0x5')](_0xa66f('0x41'),_0xa66f('0x27'));this[_0xa66f('0x5')](_0xa66f('0x42'),'no');this[_0xa66f('0x5')](_0xa66f('0x43'),_0xa66f('0x37'));this['setDataValue'](_0xa66f('0x44'),_0x4ec127['dtlscertfile']||_0xa66f('0x46'));this[_0xa66f('0x5')](_0xa66f('0x47'),_0x4ec127[_0xa66f('0x47')]||_0xa66f('0x48'));this[_0xa66f('0x5')](_0xa66f('0x45'),'yes');break;default:}}},'permissions':{'type':Sequelize[_0xa66f('0x38')],'set':function(_0xa203e){this['setDataValue']('permissions',_0xa203e?_0xa203e[_0xa66f('0x1e')](','):[]);},'get':function(){return this[_0xa66f('0x12')](_0xa66f('0x49'))?_[_0xa66f('0x4a')](this['getDataValue'](_0xa66f('0x49'))[_0xa66f('0x20')](','),function(_0x17f631){return parseInt(_0x17f631,0xa);}):[];}},'phoneBarUnconditionalNumber':{'type':Sequelize[_0xa66f('0x3')]},'phoneBarNoReplyNumber':{'type':Sequelize[_0xa66f('0x3')]},'phoneBarBusyNumber':{'type':Sequelize[_0xa66f('0x3')]},'phoneBarUnconditional':{'type':Sequelize[_0xa66f('0x15')],'defaultValue':![]},'phoneBarNoReply':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'phoneBarBusy':{'type':Sequelize[_0xa66f('0x15')],'defaultValue':![]},'phoneBarDnd':{'type':Sequelize[_0xa66f('0x15')],'defaultValue':!![]},'phoneBarUnansweredCallBadge':{'type':Sequelize[_0xa66f('0x15')],'defaultValue':!![]},'phoneBarEnableDtmfTone':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'phoneBarAutoAnswerDelay':{'type':Sequelize[_0xa66f('0x17')],'defaultValue':0x0},'extensionMonitor':{'type':Sequelize[_0xa66f('0x3')],'defaultValue':''},'crudPermissions':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'rtcp_mux':{'type':Sequelize[_0xa66f('0xc')](_0xa66f('0x27'),'no'),'defaultValue':'no'},'allowmessenger':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'phoneBarOutboundProxy':{'type':Sequelize[_0xa66f('0x3')]},'phoneBarEnableJaws':{'type':Sequelize[_0xa66f('0x15')],'defaultValue':![]},'phoneBarEnableScreenRecordingByAgent':{'type':Sequelize[_0xa66f('0x15')],'defaultValue':![]},'phoneBarEnableVideoRecording':{'type':Sequelize[_0xa66f('0x4b')],'get':function(){return this[_0xa66f('0x12')](_0xa66f('0x4c'))?this['getDataValue']('phoneBarEnableScreenRecordingByAgent'):![];}},'phoneBarEnableAutomaticScreenRecording':{'type':Sequelize[_0xa66f('0x15')],'defaultValue':![]},'phoneBarPrefixRequired':{'type':Sequelize[_0xa66f('0x15')],'defaultValue':![]},'hotdesk':{'type':Sequelize[_0xa66f('0x15')],'defaultValue':![]},'interface':{'type':Sequelize[_0xa66f('0x3')],'defaultValue':null},'privacyEnabled':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'apiKeyNonce':{'type':Sequelize[_0xa66f('0x3')],'allowNull':!![]},'apiKeyIat':{'type':Sequelize[_0xa66f('0x3')],'allowNull':!![]},'screenrecording':{'type':Sequelize['BOOLEAN'],'defaultValue':![],'set':function(_0xca5065){if(typeof _0xca5065===_0xa66f('0x4d')){var _0x41ec78=_0xca5065==='1'?!![]:_0xca5065==='0'?![]:_0xca5065==='true'?!![]:_0xca5065===_0xa66f('0x4e')?![]:![];this[_0xa66f('0x5')](_0xa66f('0x4f'),_0x41ec78);}else{this['setDataValue']('screenrecording',_0xca5065);}}},'blocked':{'type':Sequelize['BOOLEAN'],'defaultValue':![],'set':function(_0x137d07){this[_0xa66f('0x5')](_0xa66f('0x50'),_0x137d07);if(_0x137d07===!![]){this['setDataValue']('blockedAt',moment());this[_0xa66f('0x5')](_0xa66f('0x51'),0x0);}else{this[_0xa66f('0x5')](_0xa66f('0x52'),null);}}},'blockedAt':{'type':Sequelize[_0xa66f('0x14')],'defaultValue':null},'loginAttempts':{'type':Sequelize[_0xa66f('0x17')],'defaultValue':0x0},'disabled':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'settingsEnabled':{'type':Sequelize[_0xa66f('0x15')],'defaultValue':!![]},'wssPort':{'type':Sequelize['INTEGER'](0x5)[_0xa66f('0x53')],'defaultValue':0x1f99},'downloadAttachments':{'type':Sequelize[_0xa66f('0x15')],'defaultValue':!![]},'downloadOmnichannelInteractions':{'type':Sequelize[_0xa66f('0x15')],'defaultValue':!![]},'downloadVoiceRecordings':{'type':Sequelize[_0xa66f('0x15')],'defaultValue':!![]},'ignorePauseForPreviewCalls':{'type':Sequelize[_0xa66f('0x15')],'defaultValue':![]},'selectRecallMeCampaign':{'type':Sequelize[_0xa66f('0x15')],'defaultValue':![]}};
\ No newline at end of file
+var _0x383a=['agent','telephone','local','INTEGER','accountcode','\x22%s\x22\x20<%s>','getDataValue','fullname','BOOLEAN','DATE','dynamic','ENUM','friend','peer','from-sip','ALLOWED_NOT_SCREENED','ALLOWED','PROHIB_NOT_SCREENED','PROHIB_PASSED_SCREEN','PROHIB','udp','transport','join','split','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22udp\x22,\x20\x22tcp\x22]','rfc2833','shortinfo','inband','yes','update','outgoing','force_rport,comedia','nat','all','ulaw;alaw;gsm','allow','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22ulaw\x22,\x20\x22alaw\x22,\x20\x22gsm\x22]','insecure','String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22port\x22,\x20\x22invite\x22]','never','\x22\x22\x20<>','always','accept','refuse','uas','fingerprint','certificate','active','passive','actpass','nonat','update,nonat','showWebBar','isArray','wss','encryption','force_avp','icesupport','dtlsenable','dtlsverify','dtlssetup','dtlscertfile','dtlsprivatekey','rtcp_mux','avpf','/etc/pki/tls/certs/motion.crt','/etc/pki/tls/private/motion.key','TEXT','permissions','map','string','true','false','screenrecording','blocked','blockedAt','UNSIGNED','moment','util','STRING','setDataValue','name','The\x20name\x20of\x20the\x20user','format','internal','email','toLowerCase','user'];(function(_0x1c082f,_0x49f0f5){var _0x50d279=function(_0x2b0c32){while(--_0x2b0c32){_0x1c082f['push'](_0x1c082f['shift']());}};_0x50d279(++_0x49f0f5);}(_0x383a,0x1ad));var _0xa383=function(_0x457549,_0x3e0f46){_0x457549=_0x457549-0x0;var _0x3c1d6f=_0x383a[_0x457549];return _0x3c1d6f;};'use strict';var Sequelize=require('sequelize');var moment=require(_0xa383('0x0'));var util=require(_0xa383('0x1'));var _=require('lodash');module['exports']={'name':{'type':Sequelize[_0xa383('0x2')],'allowNull':![],'unique':'name','validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i},'set':function(_0x15f485){this[_0xa383('0x3')](_0xa383('0x4'),_0x15f485);this['setDataValue']('defaultuser',_0x15f485);},'comment':_0xa383('0x5')},'fullname':{'type':Sequelize[_0xa383('0x2')],'allowNull':![],'set':function(_0x15559c){this['setDataValue']('fullname',_0x15559c);this['setDataValue']('callerid',util[_0xa383('0x6')]('\x22%s\x22\x20<%s>',_0x15559c,this['getDataValue'](_0xa383('0x7'))));}},'alias':{'type':Sequelize[_0xa383('0x2')]},'email':{'type':Sequelize['STRING'],'allowNull':![],'unique':_0xa383('0x8'),'validate':{'isEmail':!![]},'set':function(_0x98afe6){if(_0x98afe6){this[_0xa383('0x3')]('email',_0x98afe6[_0xa383('0x9')]());}}},'role':{'type':Sequelize['ENUM']('admin',_0xa383('0xa'),_0xa383('0xb'),_0xa383('0xc')),'allowNull':![]},'password':{'type':Sequelize[_0xa383('0x2')],'allowNull':![],'validate':{'notEmpty':!![]}},'provider':{'type':Sequelize['STRING'],'defaultValue':_0xa383('0xd')},'internal':{'type':Sequelize[_0xa383('0xe')](0xb),'allowNull':![],'unique':_0xa383('0x7'),'set':function(_0xdf9a86){this[_0xa383('0x3')](_0xa383('0x7'),_0xdf9a86);this[_0xa383('0x3')](_0xa383('0xf'),_0xdf9a86);this['setDataValue']('callerid',util[_0xa383('0x6')](_0xa383('0x10'),this[_0xa383('0x11')](_0xa383('0x12')),_0xdf9a86));}},'salt':{'type':Sequelize['STRING']},'phone':{'type':Sequelize[_0xa383('0x2')]},'mobile':{'type':Sequelize['STRING']},'address':{'type':Sequelize[_0xa383('0x2')]},'zipcode':{'type':Sequelize[_0xa383('0x2')]},'userpic':{'type':Sequelize[_0xa383('0x2')]},'city':{'type':Sequelize[_0xa383('0x2')]},'country':{'type':Sequelize[_0xa383('0x2')]},'online':{'type':Sequelize[_0xa383('0x13')],'defaultValue':![]},'lastLoginAt':{'type':Sequelize[_0xa383('0x14')]},'voicePause':{'type':Sequelize[_0xa383('0x13')],'defaultValue':![]},'chatPause':{'type':Sequelize[_0xa383('0x13')],'defaultValue':![]},'mailPause':{'type':Sequelize[_0xa383('0x13')],'defaultValue':![]},'faxPause':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'smsPause':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'whatsappPause':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'openchannelPause':{'type':Sequelize[_0xa383('0x13')],'defaultValue':![]},'pauseType':{'type':Sequelize[_0xa383('0x2')],'defaultValue':'DEFAULT\x20PAUSE'},'lastPauseAt':{'type':Sequelize[_0xa383('0x14')]},'chatCapacity':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'mailCapacity':{'type':Sequelize[_0xa383('0xe')],'defaultValue':0x0},'faxCapacity':{'type':Sequelize[_0xa383('0xe')],'defaultValue':0x0},'smsCapacity':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'whatsappCapacity':{'type':Sequelize[_0xa383('0xe')],'defaultValue':0x0},'openchannelCapacity':{'type':Sequelize[_0xa383('0xe')],'defaultValue':0x0},'phoneBarAutoAnswer':{'type':Sequelize[_0xa383('0x13')],'defaultValue':![]},'phoneBarEnableSettings':{'type':Sequelize[_0xa383('0x13')],'defaultValue':!![]},'phoneBarListenPort':{'type':Sequelize[_0xa383('0xe')](0x5),'defaultValue':0x1428},'phoneBarExpires':{'type':Sequelize[_0xa383('0xe')](0x5),'defaultValue':0x78},'phoneBarRemoteControl':{'type':Sequelize[_0xa383('0x13')],'defaultValue':![]},'phoneBarRemoteControlPort':{'type':Sequelize[_0xa383('0xe')],'defaultValue':0x26a0},'phoneBarEnableRecording':{'type':Sequelize[_0xa383('0x13')],'defaultValue':![]},'phoneBarRingInUse':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'chanspy':{'type':Sequelize[_0xa383('0x13')],'defaultValue':![]},'description':{'type':Sequelize[_0xa383('0x2')],'allowNull':!![]},'host':{'type':Sequelize[_0xa383('0x2')],'allowNull':!![],'defaultValue':_0xa383('0x15')},'ipaddr':{'type':Sequelize[_0xa383('0x2')],'allowNull':!![]},'port':{'type':Sequelize[_0xa383('0xe')](0x5),'allowNull':!![]},'regseconds':{'type':Sequelize[_0xa383('0xe')](0xb),'allowNull':!![]},'fullcontact':{'type':Sequelize[_0xa383('0x2')],'allowNull':!![]},'regserver':{'type':Sequelize['STRING'],'allowNull':!![]},'useragent':{'type':Sequelize[_0xa383('0x2')],'allowNull':!![]},'lastms':{'type':Sequelize[_0xa383('0xe')](0xb),'allowNull':!![]},'type':{'type':Sequelize[_0xa383('0x16')](_0xa383('0x17'),_0xa383('0xa'),_0xa383('0x18')),'allowNull':!![],'defaultValue':_0xa383('0x17')},'context':{'type':Sequelize[_0xa383('0x2')],'allowNull':!![],'defaultValue':_0xa383('0x19')},'callingpres':{'type':Sequelize[_0xa383('0x16')](_0xa383('0x1a'),'ALLOWED_PASSED_SCREEN','ALLOWED_FAILED_SCREEN',_0xa383('0x1b'),_0xa383('0x1c'),_0xa383('0x1d'),'PROHIB_FAILED_SCREEN',_0xa383('0x1e')),'allowNull':!![]},'deny':{'type':Sequelize[_0xa383('0x2')],'allowNull':!![]},'permit':{'type':Sequelize[_0xa383('0x2')],'allowNull':!![]},'secret':{'type':Sequelize[_0xa383('0x2')],'allowNull':!![]},'md5secret':{'type':Sequelize['STRING'],'allowNull':!![]},'remotesecret':{'type':Sequelize[_0xa383('0x2')],'allowNull':!![]},'transport':{'type':Sequelize[_0xa383('0x2')],'allowNull':!![],'defaultValue':_0xa383('0x1f'),'set':function(_0x110a19){this['setDataValue'](_0xa383('0x20'),_0x110a19?_0x110a19[_0xa383('0x21')](','):null);},'get':function(){return this[_0xa383('0x11')](_0xa383('0x20'))?this[_0xa383('0x11')]('transport')[_0xa383('0x22')](','):null;},'comment':_0xa383('0x23')},'dtmfmode':{'type':Sequelize[_0xa383('0x16')](_0xa383('0x24'),'info',_0xa383('0x25'),_0xa383('0x26'),'auto'),'allowNull':!![],'defaultValue':_0xa383('0x24')},'directmedia':{'type':Sequelize[_0xa383('0x16')](_0xa383('0x27'),'no','nonat',_0xa383('0x28'),_0xa383('0x29')),'allowNull':!![],'defaultValue':'no'},'directrtpsetup':{'type':Sequelize[_0xa383('0x16')](_0xa383('0x27'),'no'),'allowNull':!![],'defaultValue':'no'},'directmediapermit':{'type':Sequelize['STRING'],'allowNull':!![]},'directmediadeny':{'type':Sequelize[_0xa383('0x2')],'allowNull':!![]},'nat':{'type':Sequelize['STRING'],'allowNull':!![],'defaultValue':_0xa383('0x2a'),'set':function(_0x273656){this[_0xa383('0x3')]('nat',_0x273656?_0x273656[_0xa383('0x21')](','):null);},'get':function(){return this[_0xa383('0x11')](_0xa383('0x2b'))?this[_0xa383('0x11')](_0xa383('0x2b'))[_0xa383('0x22')](','):null;},'comment':'String\x20is\x20deprecated.\x20Please\x20use\x20an\x20Array\x20as\x20[\x22force_rport\x22,\x20\x22comedia\x22]'},'callgroup':{'type':Sequelize[_0xa383('0x2')]},'namedcallgroup':{'type':Sequelize[_0xa383('0x2')]},'pickupgroup':{'type':Sequelize[_0xa383('0x2')]},'namedpickupgroup':{'type':Sequelize['STRING']},'language':{'type':Sequelize[_0xa383('0x2')],'defaultValue':'en'},'tonezone':{'type':Sequelize[_0xa383('0x2')]},'disallow':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0xa383('0x2c')},'allow':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':'ulaw;alaw;gsm','set':function(_0x39bf06){this[_0xa383('0x3')]('allow',_0x39bf06?_0x39bf06[_0xa383('0x21')](';'):_0xa383('0x2d'));},'get':function(){return this[_0xa383('0x11')](_0xa383('0x2e'))?this['getDataValue'](_0xa383('0x2e'))[_0xa383('0x22')](';'):null;},'comment':_0xa383('0x2f')},'autoframing':{'type':Sequelize[_0xa383('0x16')](_0xa383('0x27'),'no'),'allowNull':!![]},'insecure':{'type':Sequelize['STRING'],'allowNull':!![],'set':function(_0x279d6c){this[_0xa383('0x3')](_0xa383('0x30'),_0x279d6c?_0x279d6c['join'](','):null);},'get':function(){return this[_0xa383('0x11')](_0xa383('0x30'))?this[_0xa383('0x11')](_0xa383('0x30'))[_0xa383('0x22')](','):null;},'comment':_0xa383('0x31')},'trustrpid':{'type':Sequelize[_0xa383('0x16')]('yes','no'),'allowNull':!![],'defaultValue':'no'},'trust_id_outbound':{'type':Sequelize[_0xa383('0x16')]('yes','no'),'allowNull':!![],'defaultValue':'no'},'progressinband':{'type':Sequelize[_0xa383('0x16')]('yes','no',_0xa383('0x32')),'allowNull':!![]},'promiscredir':{'type':Sequelize['ENUM'](_0xa383('0x27'),'no'),'allowNull':!![]},'useclientcode':{'type':Sequelize[_0xa383('0x16')](_0xa383('0x27'),'no'),'allowNull':!![]},'accountcode':{'type':Sequelize[_0xa383('0xe')](0xb),'allowNull':!![]},'setvar':{'type':Sequelize[_0xa383('0x2')],'allowNull':!![]},'callerid':{'type':Sequelize['STRING'],'allowNull':!![],'defaultValue':_0xa383('0x33')},'amaflags':{'type':Sequelize[_0xa383('0x2')],'allowNull':!![]},'callcounter':{'type':Sequelize[_0xa383('0x16')](_0xa383('0x27'),'no'),'allowNull':!![],'defaultValue':'yes'},'busylevel':{'type':Sequelize[_0xa383('0xe')](0xb),'allowNull':!![]},'allowoverlap':{'type':Sequelize[_0xa383('0x16')](_0xa383('0x27'),'no'),'allowNull':!![]},'allowsubscribe':{'type':Sequelize['ENUM']('yes','no'),'allowNull':!![]},'allowtransfer':{'type':Sequelize[_0xa383('0x16')](_0xa383('0x27'),'no'),'allowNull':!![]},'ignoresdpversion':{'type':Sequelize[_0xa383('0x16')](_0xa383('0x27'),'no'),'allowNull':!![]},'subscribecontext':{'type':Sequelize[_0xa383('0x2')],'allowNull':!![]},'template':{'type':Sequelize[_0xa383('0x2')],'allowNull':!![]},'videosupport':{'type':Sequelize[_0xa383('0x16')](_0xa383('0x27'),'no',_0xa383('0x34')),'allowNull':!![],'defaultValue':'no'},'maxcallbitrate':{'type':Sequelize[_0xa383('0xe')](0xb),'allowNull':!![]},'rfc2833compensate':{'type':Sequelize[_0xa383('0x16')](_0xa383('0x27'),'no'),'allowNull':!![]},'mailbox':{'type':Sequelize['STRING'],'allowNull':!![]},'session_timers':{'type':Sequelize[_0xa383('0x16')](_0xa383('0x35'),_0xa383('0x36'),'originate'),'allowNull':!![]},'session_expires':{'type':Sequelize['INTEGER'](0xb),'allowNull':!![]},'session_minse':{'type':Sequelize['INTEGER'](0xb),'allowNull':!![]},'session_refresher':{'type':Sequelize[_0xa383('0x16')]('uac','uas'),'allowNull':!![],'defaultValue':_0xa383('0x37')},'t38pt_usertpsource':{'type':Sequelize[_0xa383('0x2')],'allowNull':!![]},'regexten':{'type':Sequelize[_0xa383('0x2')],'allowNull':!![]},'fromdomain':{'type':Sequelize[_0xa383('0x2')],'allowNull':!![]},'fromuser':{'type':Sequelize[_0xa383('0x2')],'allowNull':!![]},'qualify':{'type':Sequelize[_0xa383('0x16')](_0xa383('0x27'),'no'),'allowNull':!![],'defaultValue':_0xa383('0x27')},'keepalive':{'type':Sequelize[_0xa383('0xe')](0xb),'allowNull':!![]},'defaultip':{'type':Sequelize['STRING'],'allowNull':!![]},'defaultuser':{'type':Sequelize[_0xa383('0x2')],'allowNull':!![]},'rtptimeout':{'type':Sequelize[_0xa383('0xe')](0xb),'allowNull':!![]},'rtpholdtimeout':{'type':Sequelize['INTEGER'](0xb),'allowNull':!![]},'rtpkeepalive':{'type':Sequelize['INTEGER'](0xb),'allowNull':!![]},'sendrpid':{'type':Sequelize['ENUM'](_0xa383('0x27'),'no'),'allowNull':!![],'defaultValue':'no'},'outboundproxy':{'type':Sequelize[_0xa383('0x2')],'allowNull':!![]},'callbackextension':{'type':Sequelize[_0xa383('0x2')],'allowNull':!![]},'timert1':{'type':Sequelize[_0xa383('0xe')](0xb),'allowNull':!![]},'timerb':{'type':Sequelize['INTEGER'](0xb),'allowNull':!![]},'qualifyfreq':{'type':Sequelize[_0xa383('0xe')](0xb),'allowNull':!![]},'contactpermit':{'type':Sequelize[_0xa383('0x2')],'allowNull':!![]},'contactdeny':{'type':Sequelize[_0xa383('0x2')],'allowNull':!![]},'contactacl':{'type':Sequelize['STRING'],'allowNull':!![]},'unsolicited_mailbox':{'type':Sequelize['STRING'],'allowNull':!![]},'use_q850_reason':{'type':Sequelize[_0xa383('0x2')],'allowNull':!![]},'maxforwards':{'type':Sequelize[_0xa383('0xe')](0xb),'allowNull':!![]},'encryption':{'type':Sequelize[_0xa383('0x16')](_0xa383('0x27'),'no'),'allowNull':!![],'defaultValue':'no'},'avpf':{'type':Sequelize['ENUM'](_0xa383('0x27'),'no'),'allowNull':!![]},'force_avp':{'type':Sequelize['ENUM'](_0xa383('0x27'),'no'),'allowNull':!![]},'icesupport':{'type':Sequelize[_0xa383('0x16')](_0xa383('0x27'),'no'),'allowNull':!![]},'dtlsenable':{'type':Sequelize[_0xa383('0x16')]('yes','no'),'allowNull':!![]},'dtlsverify':{'type':Sequelize['ENUM'](_0xa383('0x27'),'no',_0xa383('0x38'),_0xa383('0x39')),'allowNull':!![]},'dtlsrekey':{'type':Sequelize['INTEGER'](0xb),'allowNull':!![]},'dtlscertfile':{'type':Sequelize[_0xa383('0x2')],'allowNull':!![]},'dtlsprivatekey':{'type':Sequelize[_0xa383('0x2')],'allowNull':!![]},'dtlscipher':{'type':Sequelize['STRING'],'allowNull':!![]},'dtlscafile':{'type':Sequelize[_0xa383('0x2')],'allowNull':!![]},'dtlscapath':{'type':Sequelize[_0xa383('0x2')],'allowNull':!![]},'dtlssetup':{'type':Sequelize['ENUM'](_0xa383('0x3a'),_0xa383('0x3b'),_0xa383('0x3c')),'allowNull':!![]},'dtlsfingerprint':{'type':Sequelize[_0xa383('0x2')],'allowNull':!![]},'usereqphone':{'type':Sequelize[_0xa383('0x16')]('yes','no'),'allowNull':!![],'defaultValue':'no'},'recordonfeature':{'type':Sequelize[_0xa383('0x2')],'allowNull':!![]},'recordofffeature':{'type':Sequelize[_0xa383('0x2')],'allowNull':!![]},'call_limit':{'type':Sequelize['INTEGER'](0xb),'allowNull':!![],'defaultValue':0xa},'registertrying':{'type':Sequelize['ENUM'](_0xa383('0x27'),'no'),'allowNull':!![]},'subscribemwi':{'type':Sequelize[_0xa383('0x16')]('yes','no'),'allowNull':!![]},'vmexten':{'type':Sequelize[_0xa383('0x2')],'allowNull':!![]},'mohinterpret':{'type':Sequelize[_0xa383('0x2')],'allowNull':!![]},'mohsuggest':{'type':Sequelize[_0xa383('0x2')],'allowNull':!![]},'parkinglot':{'type':Sequelize[_0xa383('0x2')],'allowNull':!![]},'canreinvite':{'type':Sequelize[_0xa383('0x16')]('yes','no',_0xa383('0x3d'),'update',_0xa383('0x3e')),'allowNull':!![],'defaultValue':'no'},'loginInPause':{'type':Sequelize[_0xa383('0x13')],'defaultValue':![]},'resetPasswordToken':{'type':Sequelize[_0xa383('0x2')]},'resetPasswordExpires':{'type':Sequelize[_0xa383('0x14')]},'passwordResetAt':{'type':Sequelize[_0xa383('0x14')],'defaultValue':null},'previousPasswords':{'type':Sequelize['TEXT']},'showWebBar':{'type':Sequelize[_0xa383('0xe')],'defaultValue':0x0,'set':function(_0x4bfde9){this['setDataValue'](_0xa383('0x3f'),_0x4bfde9);var _0x33a427=this['get']({'plain':!![]});switch(_0x4bfde9){case 0x0:case 0x1:var _0x46f5c3=_0x33a427['transport']?_[_0xa383('0x40')](_0x33a427[_0xa383('0x20')])?_0x33a427['transport'][_0xa383('0x21')]():_0x33a427[_0xa383('0x20')]:_0xa383('0x1f');if(_0x46f5c3===_0xa383('0x41')){_0x46f5c3=_0xa383('0x1f');}this[_0xa383('0x3')]('transport',_0x46f5c3);this[_0xa383('0x3')](_0xa383('0x42'),'no');this[_0xa383('0x3')]('avpf',null);this[_0xa383('0x3')](_0xa383('0x43'),null);this[_0xa383('0x3')](_0xa383('0x44'),null);this[_0xa383('0x3')](_0xa383('0x45'),null);this[_0xa383('0x3')](_0xa383('0x46'),null);this[_0xa383('0x3')](_0xa383('0x47'),null);this['setDataValue'](_0xa383('0x48'),null);this[_0xa383('0x3')](_0xa383('0x49'),null);this[_0xa383('0x3')](_0xa383('0x4a'),'no');break;case 0x2:this['setDataValue']('transport','wss');this[_0xa383('0x3')](_0xa383('0x42'),_0xa383('0x27'));this[_0xa383('0x3')](_0xa383('0x4b'),_0xa383('0x27'));this[_0xa383('0x3')]('force_avp',_0xa383('0x27'));this[_0xa383('0x3')](_0xa383('0x44'),'yes');this[_0xa383('0x3')](_0xa383('0x45'),_0xa383('0x27'));this[_0xa383('0x3')](_0xa383('0x46'),'no');this[_0xa383('0x3')](_0xa383('0x47'),_0xa383('0x3c'));this['setDataValue'](_0xa383('0x48'),_0x33a427['dtlscertfile']||_0xa383('0x4c'));this['setDataValue'](_0xa383('0x49'),_0x33a427[_0xa383('0x49')]||_0xa383('0x4d'));this['setDataValue'](_0xa383('0x4a'),_0xa383('0x27'));break;default:}}},'permissions':{'type':Sequelize[_0xa383('0x4e')],'set':function(_0x3de972){this['setDataValue'](_0xa383('0x4f'),_0x3de972?_0x3de972['join'](','):[]);},'get':function(){return this[_0xa383('0x11')](_0xa383('0x4f'))?_[_0xa383('0x50')](this[_0xa383('0x11')](_0xa383('0x4f'))[_0xa383('0x22')](','),function(_0x381270){return parseInt(_0x381270,0xa);}):[];}},'phoneBarUnconditionalNumber':{'type':Sequelize[_0xa383('0x2')]},'phoneBarNoReplyNumber':{'type':Sequelize[_0xa383('0x2')]},'phoneBarBusyNumber':{'type':Sequelize['STRING']},'phoneBarUnconditional':{'type':Sequelize[_0xa383('0x13')],'defaultValue':![]},'phoneBarNoReply':{'type':Sequelize[_0xa383('0x13')],'defaultValue':![]},'phoneBarBusy':{'type':Sequelize[_0xa383('0x13')],'defaultValue':![]},'phoneBarDnd':{'type':Sequelize[_0xa383('0x13')],'defaultValue':!![]},'phoneBarUnansweredCallBadge':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'phoneBarEnableDtmfTone':{'type':Sequelize[_0xa383('0x13')],'defaultValue':![]},'phoneBarAutoAnswerDelay':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'extensionMonitor':{'type':Sequelize[_0xa383('0x2')],'defaultValue':''},'crudPermissions':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'rtcp_mux':{'type':Sequelize[_0xa383('0x16')](_0xa383('0x27'),'no'),'defaultValue':'no'},'allowmessenger':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'phoneBarOutboundProxy':{'type':Sequelize[_0xa383('0x2')]},'phoneBarEnableJaws':{'type':Sequelize[_0xa383('0x13')],'defaultValue':![]},'phoneBarEnableScreenRecordingByAgent':{'type':Sequelize[_0xa383('0x13')],'defaultValue':![]},'phoneBarEnableVideoRecording':{'type':Sequelize['VIRTUAL'],'get':function(){return this['getDataValue']('phoneBarEnableScreenRecordingByAgent')?this[_0xa383('0x11')]('phoneBarEnableScreenRecordingByAgent'):![];}},'phoneBarEnableAutomaticScreenRecording':{'type':Sequelize[_0xa383('0x13')],'defaultValue':![]},'phoneBarPrefixRequired':{'type':Sequelize[_0xa383('0x13')],'defaultValue':![]},'hotdesk':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'interface':{'type':Sequelize[_0xa383('0x2')],'defaultValue':null},'privacyEnabled':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'apiKeyNonce':{'type':Sequelize[_0xa383('0x2')],'allowNull':!![]},'apiKeyIat':{'type':Sequelize[_0xa383('0x2')],'allowNull':!![]},'screenrecording':{'type':Sequelize[_0xa383('0x13')],'defaultValue':![],'set':function(_0x357c7e){if(typeof _0x357c7e===_0xa383('0x51')){var _0x2775e5=_0x357c7e==='1'?!![]:_0x357c7e==='0'?![]:_0x357c7e===_0xa383('0x52')?!![]:_0x357c7e===_0xa383('0x53')?![]:![];this['setDataValue'](_0xa383('0x54'),_0x2775e5);}else{this['setDataValue'](_0xa383('0x54'),_0x357c7e);}}},'blocked':{'type':Sequelize[_0xa383('0x13')],'defaultValue':![],'set':function(_0x329bff){this[_0xa383('0x3')](_0xa383('0x55'),_0x329bff);if(_0x329bff===!![]){this[_0xa383('0x3')]('blockedAt',moment());this[_0xa383('0x3')]('loginAttempts',0x0);}else{this[_0xa383('0x3')](_0xa383('0x56'),null);}}},'blockedAt':{'type':Sequelize[_0xa383('0x14')],'defaultValue':null},'loginAttempts':{'type':Sequelize[_0xa383('0xe')],'defaultValue':0x0},'disabled':{'type':Sequelize[_0xa383('0x13')],'defaultValue':![]},'settingsEnabled':{'type':Sequelize[_0xa383('0x13')],'defaultValue':!![]},'wssPort':{'type':Sequelize[_0xa383('0xe')](0x5)[_0xa383('0x57')],'defaultValue':0x1f99},'downloadAttachments':{'type':Sequelize[_0xa383('0x13')],'defaultValue':!![]},'downloadOmnichannelInteractions':{'type':Sequelize[_0xa383('0x13')],'defaultValue':!![]},'downloadVoiceRecordings':{'type':Sequelize[_0xa383('0x13')],'defaultValue':!![]},'ignorePauseForPreviewCalls':{'type':Sequelize[_0xa383('0x13')],'defaultValue':![]},'selectRecallMeCampaign':{'type':Sequelize['BOOLEAN'],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe2fe=['Whatsapp','Fax','getOpenchannelQueues','Openchannel','transaction','addAgent','getDataValue','Voice','TeamVoicePrefix','VoicePrefixId','removeTeams','Chat','getMailQueues','Mail','flatten','removeAgent','UserVoicePrefix','getLists','getAgents','values','You\x20can\x27t\x20delete\x20yourself','addChatInteractions','user_has_chat_interactions:save','removeChatInteractions','user_has_chat_interactions:remove','addMailInteractions','user_has_mail_interactions:save','removeMailInteractions','user_has_mail_interactions:remove','addFaxInteractions','user_has_fax_interactions:save','removeFaxInteractions','user_has_fax_interactions:remove','addSmsInteractions','user_has_sms_interactions:save','user_has_sms_interactions:remove','addOpenchannelInteractions','removeOpenchannelInteractions','user_has_openchannel_interactions:remove','addWhatsappInteractions','user_has_whatsapp_interactions:save','removeWhatsappInteractions','getVoicePrefixes','VoicePrefix','getFaxAccounts','FaxAccount','addFaxAccounts','removeFaxAccounts','getMailAccounts','MailAccount','addMailAccounts','removeMailAccounts','getOpenchannelAccounts','OpenchannelAccount','addOpenchannelAccounts','removeOpenchannelAccounts','getSmsAccounts','SmsAccount','addSmsAccounts','removeSmsAccounts','getChatWebsites','ChatWebsite','addChatWebsites','removeChatWebsites','getWhatsappAccounts','WhatsappAccount','addWhatsappAccounts','removeWhatsappAccounts','getSquareProjects','SquareProject','addSquareProjects','removeSquareProjects','getScheduledCalls','CmHopper','$and','$or','$gt','$gte','$lt','$lte','$ne','$eq','$between','$notBetween','$in','$notIn','$notLike','$iLike','$notILike','$overlap','$contains','$contained','firstName','lastName','Contact','dialActive','getApiKey','token','No\x20API\x20access\x20key\x20found!','generateApiKey','iat','nonce','You\x20don\x27t\x20have\x20sufficient\x20privileges\x20to\x20access\x20this\x20resource.','removeApiKey','apiKeyNonce','apiKeyIat','API\x20key\x20not\x20available','whoami','Unable\x20to\x20retrieve\x20the\x20current\x20user','queues','teams','desc','asc','uniqBy','Unable\x20to\x20retrieve\x20RPC\x20agents\x20(AMI)','client','http','Unable\x20to\x20retrieve\x20RPC\x20agents\x20(Routing)','result','offline','idle','unknown','ringing','voiceStatus','busy','slice','toUpperCase','SELECT','ui.','field','user_has_','_interactions','ui.UserId\x20=\x20?','OpenTabs','moment','path','squel','jayson/promise','ioredis','../../components/auth/service','../../components/parsers/qs','api','../../config/utils','../../config/license/util','../../mysqldb','redis','register','localhost','request','then','info','User,\x20%s,\x20%s','debug','request\x20sent','stringify','error','code','message','catch','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','update','destroy','get','role','Users','Agents','agent','telephone','map','value','includes','find','name','stack','send','index','User','rawAttributes','fieldName','type','key','password','includeAll','attributes','push','findAll','openTabs','true','length','chat','rows','dataValues','sms','mail','openchannel','whatsapp','model','keys','salt','query','intersection','fields','include','merge','fax','body','describe','params','addContacts','ids','omit','internal','Setting','findById','securePassword','validatePasswordPattern','max','isNil','min_internal','sequelize','select\x20(select\x20IFNULL(max(internal)+1,1)\x20from\x20users\x20where\x20internal\x20<\x20md.internal)\x20as\x20\x27from\x27,\x20md.internal\x20-\x201\x20as\x20\x27to\x27\x20from\x20users\x20md\x20where\x20md.internal\x20!=\x201\x20and\x20not\x20exists\x20(select\x201\x20from\x20users\x20md2\x20where\x20md2.internal\x20=\x20md.internal\x20-\x201)','QueryTypes','from','voicemail','mailbox','VoiceMail','fullname','102','110','104','106','108','109','100','111','114','115','user','admin','Unauthorized.\x20You\x20must\x20be\x20an\x20administrator\x20in\x20order\x20to\x20create\x20another\x20administrator','checkUserLimits','settingsEnabled','userProfileId','create','UserProfileSection','Telephones','UserProfileResource','bulkCreate','Unauthorized','some','Unauthorized.\x20You\x20must\x20be\x20an\x20administrator\x20in\x20order\x20to\x20create\x20an\x20user','Unauthorized.\x20You\x20must\x20be\x20an\x20administrator\x20in\x20order\x20to\x20create\x20an\x20administrator','all','each','isEmpty','autoAssociation','compact','changePassword','oldPassword','newPassword','Sequelize','Invalid\x20body\x20format.\x20Use\x20oldPassword\x20and\x20newPassword','authenticate','Wrong\x20credentials','New\x20password\x20must\x20be\x20different\x20from\x20old\x20password','ValidationError','Invalid\x20body\x20format.\x20Use\x20newPassword','findOne','passwordHistoryLimit','previousPasswords','validatePasswordHistory','updatePasswordsHistory','channel','online','loginInPause','interface','Unknown\x20channel','capitalize','toLowerCase','Queues','penalty','spread','QueueId','emit','Queue:save','voice','VoiceQueue','format','SIP/%s','voicePause','UserVoiceQueueRt','upsert','remove','isArray','Queue:remove','addAvatar','userpic','file','getAvatar','root','existsSync','join','server/files/images/','download','getOpenTabs','ChatOpenTabs','CHAT','FAX','createdAt','MailOpenTabs','MAIL','SmsOpenTabs','SMS','WhatsappOpenTabs','getContacts','CmContact','filters','sort','where','filter','options','List','Tag','Tags','color','tag','nolimit','getQueues','isValidChannel','order','Queue','hasOwnProperty','getVoiceQueuesRt','pick','ChatGroup','getGroups','getRecordings','VoiceRecording','UserId','getScreenRecordings','ScreenRecording','getChatInteractions','ChatInteraction','OpenchannelInteraction','getOpenchannelInteractions','getMailInteractions','MailInteraction','getSmsInteractions','SmsInteraction','getFaxInteractions','FaxInteraction','WhatsappInteraction','getWhatsappInteractions','login','phone','LOCAL/%s@from-sip/n','intrf','user:%s','headers','remoteAddress','socket','User\x20not\x20found\x20or\x20not\x20allowed\x20to\x20perform\x20login\x20method','getVoiceQueues','UserVoiceQueue.penalty','forEach','YYYY-MM-DD\x20HH:mm:ss','LOGIN','PAUSE','LOGININPAUSE','MemberReport','concat','isMiddleware','resolve','QueuePause','pause','updateAttributes','getChannels','DEFAULT\x20PAUSE','unpause','mailPause','faxPause','openchannelPause','smsPause','whatsapppause','pauseType','lastPauseAt','manual','%s%s','Pause','getTeams','Team','addTeams','setDataValue','getChatQueues','getSmsQueues','Sms','getWhatsappQueues'];(function(_0x12de34,_0x17c9a1){var _0x5538d3=function(_0x5f2fc7){while(--_0x5f2fc7){_0x12de34['push'](_0x12de34['shift']());}};_0x5538d3(++_0x17c9a1);}(_0xe2fe,0x86));var _0xee2f=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0xe2fe[_0x14add3];return _0x4a174f;};'use strict';var moment=require(_0xee2f('0x0'));var BPromise=require('bluebird');var util=require('util');var path=require(_0xee2f('0x1'));var fs=require('fs');var _=require('lodash');var squel=require(_0xee2f('0x2'));var jayson=require(_0xee2f('0x3'));var Redis=require(_0xee2f('0x4'));var authService=require(_0xee2f('0x5'));var qs=require(_0xee2f('0x6'));var logger=require('../../config/logger')(_0xee2f('0x7'));var utils=require(_0xee2f('0x8'));var config=require('../../config/environment');var licenseUtil=require(_0xee2f('0x9'));var db=require(_0xee2f('0xa'))['db'];var socket=require('socket.io-emitter')(new Redis(config[_0xee2f('0xb')]));require('./user.socket')[_0xee2f('0xc')](socket);config[_0xee2f('0xb')]=_['defaults'](config[_0xee2f('0xb')],{'host':_0xee2f('0xd'),'port':0x18eb});var client=jayson['client']['http']({'port':0x232a});var values;function respondWithRpcPromise(_0x4818df,_0x56bbea,_0x2b8fb1,_0x4cb4bf){return new BPromise(function(_0x481ea7,_0x53047d){var _0x25ddf7=_0x4cb4bf||client;return _0x25ddf7[_0xee2f('0xe')](_0x4818df,_0x2b8fb1)[_0xee2f('0xf')](function(_0x100449){logger[_0xee2f('0x10')](_0xee2f('0x11'),_0x56bbea,'request\x20sent');logger[_0xee2f('0x12')]('User,\x20%s,\x20%s,\x20%s',_0x56bbea,_0xee2f('0x13'),JSON[_0xee2f('0x14')](_0x100449));if(_0x100449['error']){if(_0x100449[_0xee2f('0x15')][_0xee2f('0x16')]===0x1f4){logger[_0xee2f('0x15')](_0xee2f('0x11'),_0x56bbea,_0x100449[_0xee2f('0x15')]['message']);return _0x53047d(_0x100449[_0xee2f('0x15')]['message']);}logger[_0xee2f('0x15')](_0xee2f('0x11'),_0x56bbea,_0x100449['error']['message']);return _0x481ea7(_0x100449[_0xee2f('0x15')]['message']);}else{logger[_0xee2f('0x10')](_0xee2f('0x11'),_0x56bbea,_0xee2f('0x13'));_0x481ea7(_0x100449['result'][_0xee2f('0x17')]);}})[_0xee2f('0x18')](function(_0x4db2cc){logger[_0xee2f('0x15')](_0xee2f('0x11'),_0x56bbea,_0x4db2cc);_0x53047d(_0x4db2cc);});});}function respondWithStatusCode(_0x5d36d4,_0x5e73ad){_0x5e73ad=_0x5e73ad||0xcc;return function(_0x40d1fd){if(_0x40d1fd){return _0x5d36d4[_0xee2f('0x19')](_0x5e73ad);}return _0x5d36d4[_0xee2f('0x1a')](_0x5e73ad)[_0xee2f('0x1b')]();};}function respondWithResult(_0x472e3b,_0xf278cc){_0xf278cc=_0xf278cc||0xc8;return function(_0x39a39c){if(_0x39a39c){return _0x472e3b['status'](_0xf278cc)[_0xee2f('0x1c')](_0x39a39c);}};}function respondWithFilteredResult(_0x2c47c5,_0x15ceda){return function(_0x70e308){if(_0x70e308){var _0x820101=typeof _0x15ceda[_0xee2f('0x1d')]===_0xee2f('0x1e')&&typeof _0x15ceda[_0xee2f('0x1f')]===_0xee2f('0x1e');var _0x1e394f=_0x70e308[_0xee2f('0x20')];var _0x168adc=_0x820101?0x0:_0x15ceda[_0xee2f('0x1d')];var _0x45c4a0=_0x820101?_0x70e308['count']:_0x15ceda['offset']+_0x15ceda['limit'];var _0x18bdbb;if(_0x45c4a0>=_0x1e394f){_0x45c4a0=_0x1e394f;_0x18bdbb=0xc8;}else{_0x18bdbb=0xce;}_0x2c47c5[_0xee2f('0x1a')](_0x18bdbb);return _0x2c47c5[_0xee2f('0x21')](_0xee2f('0x22'),_0x168adc+'-'+_0x45c4a0+'/'+_0x1e394f)[_0xee2f('0x1c')](_0x70e308);}return null;};}function saveUpdates(_0x3737fd){return function(_0x4d8398){if(_0x4d8398){return _0x4d8398[_0xee2f('0x23')](_0x3737fd)['then'](function(_0x235697){return _0x235697;});}return null;};}function removeEntity(_0x180429){return function(_0x25ee9c){if(_0x25ee9c){return _0x25ee9c[_0xee2f('0x24')]()[_0xee2f('0xf')](function(){var _0x47d5a6=_0x25ee9c[_0xee2f('0x25')]({'plain':!![]});if(_0x47d5a6[_0xee2f('0x26')]==='admin')return;var _0x4ee0e1=[{'name':_0xee2f('0x27'),'value':'user','ignore':!![]},{'name':_0xee2f('0x28'),'value':_0xee2f('0x29'),'ignore':![]},{'name':'Telephones','value':_0xee2f('0x2a'),'ignore':![]}];var _0x5ca9f6=_(_0x4ee0e1)['filter']('ignore')[_0xee2f('0x2b')](_0xee2f('0x2c'))['value']();if(_[_0xee2f('0x2d')](_0x5ca9f6,_0x47d5a6[_0xee2f('0x26')])){return;}var _0xd64b7=_[_0xee2f('0x2e')](_0x4ee0e1,[_0xee2f('0x2c'),_0x47d5a6['role']])[_0xee2f('0x2f')];return db['UserProfileResource'][_0xee2f('0x24')]({'where':{'type':_0xd64b7,'resourceId':_0x47d5a6['id']}})[_0xee2f('0xf')](function(){return _0x25ee9c;});})[_0xee2f('0xf')](function(){_0x180429['status'](0xcc)[_0xee2f('0x1b')]();});}};}function handleEntityNotFound(_0x5ed71e){return function(_0xd3aaa9){if(!_0xd3aaa9){_0x5ed71e['sendStatus'](0x194);}return _0xd3aaa9;};}function handleError(_0x3e6dcc,_0x13a824){_0x13a824=_0x13a824||0x1f4;return function(_0x13149e){logger[_0xee2f('0x15')](_0x13149e[_0xee2f('0x30')]);if(_0x13149e[_0xee2f('0x2f')]){delete _0x13149e[_0xee2f('0x2f')];}_0x3e6dcc[_0xee2f('0x1a')](_0x13a824)[_0xee2f('0x31')](_0x13149e);};}exports[_0xee2f('0x32')]=function(_0x433547,_0x5ad0a7){var _0x4584b8={},_0x47e54b={'count':0x0,'rows':[]};var _0x46166f=_(db[_0xee2f('0x33')][_0xee2f('0x34')])[_0xee2f('0x2b')](function(_0xaddf3b){return{'name':_0xaddf3b[_0xee2f('0x35')],'type':_0xaddf3b[_0xee2f('0x36')][_0xee2f('0x37')]};})['filter'](function(_0x562d58){return!_['includes']([_0xee2f('0x38'),'salt'],_0x562d58[_0xee2f('0x2f')]);})['value']();_0x4584b8=qs['getOptions'](_0x46166f,_0x433547);var _0x5027a6={'where':_0x4584b8['where']};return db[_0xee2f('0x33')][_0xee2f('0x20')](_0x5027a6)[_0xee2f('0xf')](function(_0x268775){_0x47e54b['count']=_0x268775;if(_0x433547['query'][_0xee2f('0x39')]){_0x4584b8['include']=[{'all':!![]}];}if(!_['includes'](_0x4584b8[_0xee2f('0x3a')],'id')){_0x4584b8[_0xee2f('0x3a')][_0xee2f('0x3b')]('id');}return db['User'][_0xee2f('0x3c')](_0x4584b8);})[_0xee2f('0xf')](function(_0x19bd4d){_0x47e54b['rows']=_0x19bd4d;if(_0x433547['query'][_0xee2f('0x3d')]===_0xee2f('0x3e')){var _0x3bf382=[];for(var _0x2b9b33=0x0;_0x2b9b33<_0x47e54b['rows'][_0xee2f('0x3f')];_0x2b9b33++){_0x3bf382[_0xee2f('0x3b')](get_open_tabs(_0xee2f('0x40'),_0x47e54b[_0xee2f('0x41')][_0x2b9b33][_0xee2f('0x42')]));_0x3bf382[_0xee2f('0x3b')](get_open_tabs(_0xee2f('0x43'),_0x47e54b[_0xee2f('0x41')][_0x2b9b33][_0xee2f('0x42')]));_0x3bf382[_0xee2f('0x3b')](get_open_tabs('fax',_0x47e54b['rows'][_0x2b9b33]['dataValues']));_0x3bf382['push'](get_open_tabs(_0xee2f('0x44'),_0x47e54b[_0xee2f('0x41')][_0x2b9b33][_0xee2f('0x42')]));_0x3bf382[_0xee2f('0x3b')](get_open_tabs(_0xee2f('0x45'),_0x47e54b['rows'][_0x2b9b33][_0xee2f('0x42')]));_0x3bf382[_0xee2f('0x3b')](get_open_tabs(_0xee2f('0x46'),_0x47e54b[_0xee2f('0x41')][_0x2b9b33]['dataValues']));}return BPromise['all'](_0x3bf382)['then'](function(_0x1609f0){return _0x47e54b;});}else{return _0x47e54b;}})['then'](respondWithFilteredResult(_0x5ad0a7,_0x4584b8))['catch'](handleError(_0x5ad0a7,null));};exports['show']=function(_0x5f39b4,_0x3834d1){var _0x3ebb54={'raw':![],'where':{'id':_0x5f39b4['params']['id']}},_0x32da72={};_0x32da72[_0xee2f('0x47')]=_['differenceBy'](_[_0xee2f('0x48')](db[_0xee2f('0x33')][_0xee2f('0x34')]),[_0xee2f('0x38'),_0xee2f('0x49')]);_0x32da72['query']=_['keys'](_0x5f39b4[_0xee2f('0x4a')]);_0x32da72['filters']=_[_0xee2f('0x4b')](_0x32da72[_0xee2f('0x47')],_0x32da72[_0xee2f('0x4a')]);_0x3ebb54[_0xee2f('0x3a')]=_['intersection'](_0x32da72['model'],qs[_0xee2f('0x4c')](_0x5f39b4[_0xee2f('0x4a')][_0xee2f('0x4c')]));_0x3ebb54[_0xee2f('0x3a')]=_0x3ebb54[_0xee2f('0x3a')][_0xee2f('0x3f')]?_0x3ebb54[_0xee2f('0x3a')]:_0x32da72[_0xee2f('0x47')];if(_0x5f39b4[_0xee2f('0x4a')][_0xee2f('0x39')]){_0x3ebb54[_0xee2f('0x4d')]=[{'all':!![]}];}_0x3ebb54=_[_0xee2f('0x4e')]({},_0x3ebb54,_0x5f39b4['options']);if(!_[_0xee2f('0x2d')](_0x3ebb54[_0xee2f('0x3a')],'id')){_0x3ebb54[_0xee2f('0x3a')][_0xee2f('0x3b')]('id');}return db['User'][_0xee2f('0x2e')](_0x3ebb54)[_0xee2f('0xf')](handleEntityNotFound(_0x3834d1,null))[_0xee2f('0xf')](function(_0xda9ad5){var _0xa88c4c=[];values=_0xda9ad5;if(_0x5f39b4['query'][_0xee2f('0x3d')]==='true'){_0xa88c4c['push'](get_open_tabs(_0xee2f('0x40'),_0xda9ad5[_0xee2f('0x42')]));_0xa88c4c[_0xee2f('0x3b')](get_open_tabs(_0xee2f('0x43'),_0xda9ad5[_0xee2f('0x42')]));_0xa88c4c[_0xee2f('0x3b')](get_open_tabs(_0xee2f('0x45'),_0xda9ad5['dataValues']));_0xa88c4c[_0xee2f('0x3b')](get_open_tabs(_0xee2f('0x46'),_0xda9ad5[_0xee2f('0x42')]));_0xa88c4c[_0xee2f('0x3b')](get_open_tabs(_0xee2f('0x4f'),_0xda9ad5[_0xee2f('0x42')]));_0xa88c4c[_0xee2f('0x3b')](get_open_tabs(_0xee2f('0x44'),_0xda9ad5[_0xee2f('0x42')]));return BPromise['all'](_0xa88c4c);}else{return values;}})[_0xee2f('0xf')](function(_0x4b9d29){return values;})[_0xee2f('0xf')](respondWithResult(_0x3834d1,null))[_0xee2f('0x18')](handleError(_0x3834d1,null));};exports[_0xee2f('0x23')]=function(_0x11ba31,_0x2f3891){if(_0x11ba31['body']['id']){delete _0x11ba31[_0xee2f('0x50')]['id'];}delete _0x11ba31[_0xee2f('0x50')][_0xee2f('0x26')];return db[_0xee2f('0x33')]['find']({'where':{'id':_0x11ba31['params']['id']}})['then'](handleEntityNotFound(_0x2f3891,null))['then'](saveUpdates(_0x11ba31['body'],null))[_0xee2f('0xf')](respondWithResult(_0x2f3891,null))['catch'](handleError(_0x2f3891,null));};exports[_0xee2f('0x51')]=function(_0x1421da,_0xd967e9){return db[_0xee2f('0x33')][_0xee2f('0x51')]()[_0xee2f('0xf')](respondWithResult(_0xd967e9,null))['catch'](handleError(_0xd967e9,null));};exports['addContacts']=function(_0x1708c5,_0x58e464){return db[_0xee2f('0x33')]['find']({'where':{'id':_0x1708c5[_0xee2f('0x52')]['id']}})['then'](handleEntityNotFound(_0x58e464,null))[_0xee2f('0xf')](function(_0x38616b){if(_0x38616b){return _0x38616b[_0xee2f('0x53')](_0x1708c5['body'][_0xee2f('0x54')],_[_0xee2f('0x55')](_0x1708c5[_0xee2f('0x50')],[_0xee2f('0x54'),'id'])||{});}})[_0xee2f('0xf')](respondWithResult(_0x58e464,null))[_0xee2f('0x18')](handleError(_0x58e464,null));};function validateUser(_0xf0c721){return new BPromise(function(_0x54f48f,_0x3ee766){if(_0xf0c721[_0xee2f('0x56')])return _0x54f48f(_0xf0c721);return db[_0xee2f('0x57')][_0xee2f('0x58')](0x1)[_0xee2f('0xf')](function(_0x3c9d47){if(_0x3c9d47[_0xee2f('0x59')])authService[_0xee2f('0x5a')](_0xf0c721[_0xee2f('0x38')]);db[_0xee2f('0x33')][_0xee2f('0x5b')]('internal')[_0xee2f('0xf')](function(_0xf15bc1){if(_['isNil'](_0xf15bc1)){_0xf0c721[_0xee2f('0x56')]=_0x3c9d47['min_internal']||0x1;return;}if(_[_0xee2f('0x5c')](_0x3c9d47['min_internal'])||_0x3c9d47['min_internal']===_0xf15bc1){_0xf0c721[_0xee2f('0x56')]=_0xf15bc1+0x1;return;}if(_0x3c9d47[_0xee2f('0x5d')]>_0xf15bc1){_0xf0c721[_0xee2f('0x56')]=_0x3c9d47[_0xee2f('0x5d')];return;}return db[_0xee2f('0x5e')]['query'](_0xee2f('0x5f'),{'type':db[_0xee2f('0x5e')][_0xee2f('0x60')]['SELECT']})[_0xee2f('0xf')](function(_0x413d70){if(_0x413d70&&_0x413d70['length']){for(var _0x1f1c55=0x0,_0x32800d=_0x413d70[_0xee2f('0x3f')];_0x1f1c55<_0x32800d&&_[_0xee2f('0x5c')](_0xf0c721[_0xee2f('0x56')]);_0x1f1c55++){if(_0x3c9d47[_0xee2f('0x5d')]<=_0x413d70[_0x1f1c55][_0xee2f('0x61')]){_0xf0c721[_0xee2f('0x56')]=_0x413d70[_0x1f1c55][_0xee2f('0x61')];}else if(_0x3c9d47['min_internal']>_0x413d70[_0x1f1c55]['from']&&_0x3c9d47['min_internal']<=_0x413d70[_0x1f1c55]['to']){_0xf0c721[_0xee2f('0x56')]=_0x3c9d47[_0xee2f('0x5d')];}}}if(_[_0xee2f('0x5c')](_0xf0c721[_0xee2f('0x56')])){_0xf0c721[_0xee2f('0x56')]=_0xf15bc1+0x1;}return _0x54f48f(_0xf0c721);});});})['catch'](function(_0x2b69f0){_0x3ee766(_0x2b69f0);});});}function updateUser(_0x3a4464){return new BPromise(function(_0x4e39ba,_0x2c4a18){try{if(_0x3a4464[_0xee2f('0x62')]){_0x3a4464[_0xee2f('0x63')]=_0x3a4464['internal'];_0x3a4464[_0xee2f('0x64')]={'mailbox':_0x3a4464['internal'],'password':_0x3a4464[_0xee2f('0x38')],'fullname':_0x3a4464[_0xee2f('0x65')],'email':_0x3a4464['email']};}if(_0x3a4464[_0xee2f('0x26')]===_0xee2f('0x29')){if(!_0x3a4464['permissions'])_0x3a4464['permissions']=['101',_0xee2f('0x66'),'103','113',_0xee2f('0x67'),_0xee2f('0x68'),'105',_0xee2f('0x69'),'107',_0xee2f('0x6a'),_0xee2f('0x6b'),_0xee2f('0x6c'),_0xee2f('0x6d'),_0xee2f('0x6e'),_0xee2f('0x6f')];}_0x4e39ba(_0x3a4464);}catch(_0x20990f){_0x2c4a18(_0x20990f);}});}exports['create']=function(_0x86eb61,_0x2989a8){if(_0x86eb61[_0xee2f('0x70')][_0xee2f('0x26')]===_0xee2f('0x29'))throw new Error('Unauthorized');if(_0x86eb61[_0xee2f('0x50')][_0xee2f('0x26')]===_0xee2f('0x70')&&_0x86eb61[_0xee2f('0x70')][_0xee2f('0x26')]!==_0xee2f('0x71')){throw new Error('Unauthorized.\x20You\x20must\x20be\x20an\x20administrator\x20in\x20order\x20to\x20create\x20an\x20user');}if(_0x86eb61['body'][_0xee2f('0x26')]===_0xee2f('0x71')&&_0x86eb61[_0xee2f('0x70')][_0xee2f('0x26')]!==_0xee2f('0x71')){throw new Error(_0xee2f('0x72'));}return licenseUtil[_0xee2f('0x73')]([_0x86eb61['body']])['then'](function(){return validateUser(_0x86eb61[_0xee2f('0x50')]);})[_0xee2f('0xf')](function(_0x12c4f9){return updateUser(_0x12c4f9)[_0xee2f('0xf')](function(_0x38ee46){if(_0x38ee46[_0xee2f('0x26')]===_0xee2f('0x71')){_0x38ee46[_0xee2f('0x74')]=_0x86eb61[_0xee2f('0x70')][_0xee2f('0x74')];delete _0x38ee46[_0xee2f('0x75')];}return _0x38ee46;});})[_0xee2f('0xf')](function(_0x563d01){return db['User'][_0xee2f('0x76')](_0x563d01,{'include':[{'model':db['VoiceMail'],'as':'VoiceMail'}]});})['then'](function(_0x5a1fdc){if(_0x86eb61[_0xee2f('0x50')][_0xee2f('0x26')]==='user')return _0x5a1fdc;if(_0x86eb61['user'][_0xee2f('0x26')]!==_0xee2f('0x70'))return _0x5a1fdc;return db[_0xee2f('0x77')]['find']({'where':{'name':_0x5a1fdc['role']===_0xee2f('0x29')?_0xee2f('0x28'):_0xee2f('0x78'),'userProfileId':_0x86eb61['user'][_0xee2f('0x75')]},'raw':!![]})['then'](function(_0x1afacf){if(!_0x1afacf||_0x1afacf['autoAssociation']!=0x0)return _0x5a1fdc;return db[_0xee2f('0x79')][_0xee2f('0x76')]({'name':_0x5a1fdc[_0xee2f('0x2f')],'resourceId':_0x5a1fdc['id'],'type':_0x1afacf['name'],'sectionId':_0x1afacf['id']},{})['then'](function(){return _0x5a1fdc;});})[_0xee2f('0x18')](function(_0x4448a6){logger[_0xee2f('0x15')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x4448a6);throw _0x4448a6;});})[_0xee2f('0xf')](respondWithResult(_0x2989a8,0xc9))[_0xee2f('0x18')](handleError(_0x2989a8,null));};exports[_0xee2f('0x7a')]=function(_0x346fc2,_0x413340){var _0x2c14f=_0x346fc2[_0xee2f('0x50')];var _0x16326e=[];if(_0x346fc2[_0xee2f('0x70')][_0xee2f('0x26')]===_0xee2f('0x29'))throw new Error(_0xee2f('0x7b'));if(_[_0xee2f('0x7c')](_0x2c14f,[_0xee2f('0x26'),'user'])&&_0x346fc2[_0xee2f('0x70')][_0xee2f('0x26')]!==_0xee2f('0x71')){throw new Error(_0xee2f('0x7d'));}if(_[_0xee2f('0x7c')](_0x2c14f,[_0xee2f('0x26'),_0xee2f('0x71')])&&_0x346fc2[_0xee2f('0x70')][_0xee2f('0x26')]!==_0xee2f('0x71')){throw new Error(_0xee2f('0x7e'));}return licenseUtil['checkUserLimits'](_0x2c14f)[_0xee2f('0xf')](function(){return validateUser(_0x2c14f[0x0]);})[_0xee2f('0xf')](function(){for(var _0x1422e9=0x1;_0x1422e9<_0x2c14f[_0xee2f('0x3f')];_0x1422e9++){var _0x53d769=_0x2c14f[_0x1422e9-0x1][_0xee2f('0x56')];if(!_0x2c14f[_0x1422e9][_0xee2f('0x56')])_0x2c14f[_0x1422e9][_0xee2f('0x56')]=_0x53d769+0x1;_0x16326e['push'](validateUser(_0x2c14f[_0x1422e9]));}return BPromise['all'](_0x16326e);})[_0xee2f('0xf')](function(){_0x16326e=[];for(var _0x48fe47=0x0;_0x48fe47<_0x2c14f['length'];_0x48fe47++){_0x16326e['push'](updateUser(_0x2c14f[_0x48fe47]));}return BPromise[_0xee2f('0x7f')](_0x16326e);})[_0xee2f('0xf')](function(){return BPromise[_0xee2f('0x80')](_0x2c14f,function(_0x172cee){return db['User'][_0xee2f('0x76')](_0x172cee,{'include':[{'model':db[_0xee2f('0x64')],'as':_0xee2f('0x64')}]})['then'](function(_0x20e5db){_0x172cee['id']=_0x20e5db['id'];return _0x172cee;});});})['then'](function(_0x150445){if(_0x346fc2['body']['role']===_0xee2f('0x70'))return _0x150445;if(_0x346fc2['user'][_0xee2f('0x26')]!=='user')return _0x150445;var _0x4e585b=_[_0xee2f('0x7c')](_0x150445,function(_0x20bc03){return _0x20bc03['role']===_0xee2f('0x29')||_0x20bc03[_0xee2f('0x26')]==='telephone';});if(!_0x4e585b)return _0x150445;return db['UserProfileSection'][_0xee2f('0x3c')]({'where':{'name':{'$or':[_0xee2f('0x28'),'Telephones']},'userProfileId':_0x346fc2[_0xee2f('0x70')][_0xee2f('0x75')]},'raw':!![]})[_0xee2f('0xf')](function(_0x2238c2){if(_[_0xee2f('0x81')](_0x2238c2)||!_['some'](_0x2238c2,['autoAssociation',0x0]))return _0x150445;_0x16326e=[];var _0x567de2=_(_0x2238c2)[_0xee2f('0x2b')](function(_0x1fe927){if(_0x1fe927[_0xee2f('0x82')]===0x1)return;return _0x1fe927[_0xee2f('0x2f')]===_0xee2f('0x28')?_0xee2f('0x29'):_0xee2f('0x2a');})[_0xee2f('0x83')]()[_0xee2f('0x2c')]();for(var _0x173f5f=0x0;_0x173f5f<_0x150445[_0xee2f('0x3f')];_0x173f5f++){if(!_[_0xee2f('0x2d')](_0x567de2,_0x150445[_0x173f5f][_0xee2f('0x26')]))return;var _0x470780=_0x150445[_0x173f5f][_0xee2f('0x26')]===_0xee2f('0x29')?'Agents':'Telephones';_0x16326e[_0xee2f('0x3b')](db[_0xee2f('0x79')]['create']({'name':_0x150445[_0x173f5f][_0xee2f('0x2f')],'resourceId':_0x150445[_0x173f5f]['id'],'type':_0x470780,'sectionId':_[_0xee2f('0x2e')](_0x2238c2,[_0xee2f('0x2f'),_0x470780])['id']},{}));}return BPromise['all'](_0x16326e);});})[_0xee2f('0xf')](respondWithResult(_0x413340,0xc9))[_0xee2f('0x18')](handleError(_0x413340,null));};exports[_0xee2f('0x84')]=function(_0x609bd9,_0x1954b5){if(_0x609bd9[_0xee2f('0x50')]['id']){delete _0x609bd9[_0xee2f('0x50')]['id'];}return db[_0xee2f('0x33')][_0xee2f('0x2e')]({'where':{'id':_0x609bd9['params']['id']}})[_0xee2f('0xf')](function(_0x16b101){if(!_0x16b101)return null;if(_0x16b101['id']===_0x609bd9[_0xee2f('0x70')]['id']){if(!_0x609bd9[_0xee2f('0x50')][_0xee2f('0x85')]||!_0x609bd9[_0xee2f('0x50')][_0xee2f('0x86')]){throw new db[(_0xee2f('0x87'))]['ValidationError'](_0xee2f('0x88'));}if(!_0x16b101[_0xee2f('0x89')](_0x609bd9['body'][_0xee2f('0x85')])){throw new db['Sequelize']['ValidationError'](_0xee2f('0x8a'));}if(_0x609bd9[_0xee2f('0x50')][_0xee2f('0x85')]===_0x609bd9[_0xee2f('0x50')][_0xee2f('0x86')]){throw new db[(_0xee2f('0x87'))]['ValidationError'](_0xee2f('0x8b'));}}else if(_0x609bd9[_0xee2f('0x70')]['role']===_0xee2f('0x71')){if(!_0x609bd9[_0xee2f('0x50')]['newPassword']){throw new db[(_0xee2f('0x87'))][(_0xee2f('0x8c'))](_0xee2f('0x8d'));}}else if(_0x609bd9[_0xee2f('0x70')][_0xee2f('0x26')]===_0xee2f('0x70')){if(!_0x609bd9[_0xee2f('0x50')][_0xee2f('0x86')]){throw new db[(_0xee2f('0x87'))][(_0xee2f('0x8c'))](_0xee2f('0x8d'));}if(_0x16b101[_0xee2f('0x26')]!=='agent'){throw new db[(_0xee2f('0x87'))]['ValidationError']('Unauthorized');}}else{throw new db['Sequelize'][(_0xee2f('0x8c'))]('Unauthorized');}return _0x16b101;})[_0xee2f('0xf')](handleEntityNotFound(_0x1954b5,null))[_0xee2f('0xf')](function(_0x344a3a){return db['Setting'][_0xee2f('0x8e')]({'attributes':['id',_0xee2f('0x59'),'enforcePasswordHistory',_0xee2f('0x8f')]})[_0xee2f('0xf')](function(_0x392446){if(_0x392446[_0xee2f('0x59')])authService[_0xee2f('0x5a')](_0x609bd9[_0xee2f('0x50')][_0xee2f('0x86')]);if(!_0x392446['enforcePasswordHistory']||!_0x344a3a[_0xee2f('0x90')])return _0x344a3a;authService[_0xee2f('0x91')](_0x609bd9['body'][_0xee2f('0x86')],_0x344a3a[_0xee2f('0x90')],_0x392446[_0xee2f('0x8f')]);return _0x344a3a;})['then'](saveUpdates({'password':_0x609bd9[_0xee2f('0x50')][_0xee2f('0x86')],'passwordResetAt':_0x609bd9[_0xee2f('0x70')]['id']==_0x609bd9[_0xee2f('0x52')]['id']?moment():null,'previousPasswords':authService[_0xee2f('0x92')](_0x609bd9[_0xee2f('0x50')]['newPassword'],_0x344a3a[_0xee2f('0x90')])},null));})[_0xee2f('0xf')](respondWithResult(_0x1954b5,null))[_0xee2f('0x18')](handleError(_0x1954b5,null));};exports['addQueues']=function(_0x50670a,_0xd39c00){var _0x52bb33=_0x50670a[_0xee2f('0x50')][_0xee2f('0x93')];return db['User'][_0xee2f('0x2e')]({'where':{'id':_0x50670a[_0xee2f('0x52')]['id']},'attributes':['id','name','role',_0xee2f('0x94'),_0xee2f('0x95'),'voicePause',_0xee2f('0x96')]})[_0xee2f('0xf')](handleEntityNotFound(_0xd39c00,null))[_0xee2f('0xf')](function(_0xd98eab){if(_0xd98eab){if(!utils['isValidChannel'](_0x52bb33)){throw new db[(_0xee2f('0x87'))][(_0xee2f('0x8c'))](_0xee2f('0x97'));}return _0xd98eab['add'+_[_0xee2f('0x98')](_0x52bb33[_0xee2f('0x99')]())+_0xee2f('0x9a')](_0x50670a[_0xee2f('0x50')]['ids'],{'penalty':_0x50670a['body'][_0xee2f('0x9b')]||0x0})[_0xee2f('0x9c')](function(_0x1fff43){for(var _0x56abfb=0x0;_0x56abfb<_0x50670a[_0xee2f('0x50')][_0xee2f('0x54')]['length'];_0x56abfb+=0x1){var _0x969efe={'UserId':Number(_0x50670a[_0xee2f('0x52')]['id'])};_0x969efe[_[_0xee2f('0x98')](_0x52bb33[_0xee2f('0x99')]())+_0xee2f('0x9d')]=Number(_0x50670a[_0xee2f('0x50')][_0xee2f('0x54')][_0x56abfb]);socket[_0xee2f('0x9e')]('user'+_[_0xee2f('0x98')](_0x52bb33[_0xee2f('0x99')]())+_0xee2f('0x9f'),_0x969efe);}return _0x1fff43;})['then'](function(){if(_0x52bb33===_0xee2f('0xa0')){return db[_0xee2f('0xa1')][_0xee2f('0x3c')]({'where':{'id':_0x50670a[_0xee2f('0x50')][_0xee2f('0x54')]||[]},'raw':!![],'attributes':['id',_0xee2f('0x2f')]});}})[_0xee2f('0xf')](function(_0x3a71fa){var _0x298dfa=_0xd98eab[_0xee2f('0x25')]({'plain':!![]});var _0x2bf351=[];if(_0x52bb33===_0xee2f('0xa0')&&_0x298dfa['role']===_0xee2f('0x29')&&_0x298dfa['online']){for(var _0xc1d07e=0x0;_0xc1d07e<_0x3a71fa[_0xee2f('0x3f')];_0xc1d07e+=0x1){_0x2bf351['push']({'membername':_0x298dfa[_0xee2f('0x2f')],'UserId':_0x298dfa['id'],'queue_name':_0x3a71fa[_0xc1d07e][_0xee2f('0x2f')],'VoiceQueueId':_0x3a71fa[_0xc1d07e]['id'],'interface':_[_0xee2f('0x5c')](_0x298dfa[_0xee2f('0x96')])?util[_0xee2f('0xa2')](_0xee2f('0xa3'),_0x298dfa['name']):_0x298dfa[_0xee2f('0x96')],'paused':_0x298dfa[_0xee2f('0xa4')]||![],'penalty':_0x50670a[_0xee2f('0x50')][_0xee2f('0x9b')]||0x0});}return BPromise[_0xee2f('0x80')](_0x2bf351,function(_0x31b0f7){return db[_0xee2f('0xa5')][_0xee2f('0xa6')](_0x31b0f7);});}return _0xd98eab;});}})[_0xee2f('0xf')](respondWithStatusCode(_0xd39c00,null))[_0xee2f('0x18')](handleError(_0xd39c00,null));};exports['removeQueues']=function(_0x1d4d12,_0x3ab6c7){var _0x37ebf7;return db['User']['find']({'where':{'id':_0x1d4d12[_0xee2f('0x52')]['id']},'attributes':['id',_0xee2f('0x2f'),_0xee2f('0x26')]})[_0xee2f('0xf')](handleEntityNotFound(_0x3ab6c7,null))[_0xee2f('0xf')](function(_0x4a91ca){if(_0x4a91ca){_0x37ebf7=_0x4a91ca;if(!_0x1d4d12[_0xee2f('0x4a')][_0xee2f('0x93')]||!utils['isValidChannel'](_0x1d4d12[_0xee2f('0x4a')][_0xee2f('0x93')])){throw new db[(_0xee2f('0x87'))][(_0xee2f('0x8c'))](_0xee2f('0x97'));}return _0x4a91ca[_0xee2f('0xa7')+_['capitalize'](_0x1d4d12[_0xee2f('0x4a')][_0xee2f('0x93')][_0xee2f('0x99')]())+_0xee2f('0x9a')](_0x1d4d12[_0xee2f('0x4a')][_0xee2f('0x54')]);}})[_0xee2f('0xf')](function(_0x2bd952){if(_[_0xee2f('0xa8')](_0x1d4d12[_0xee2f('0x4a')][_0xee2f('0x54')])){for(var _0x5010eb=0x0;_0x5010eb<_0x1d4d12[_0xee2f('0x4a')][_0xee2f('0x54')][_0xee2f('0x3f')];_0x5010eb+=0x1){var _0x11e4f5={'UserId':Number(_0x1d4d12[_0xee2f('0x52')]['id'])};_0x11e4f5[_[_0xee2f('0x98')](_0x1d4d12['query'][_0xee2f('0x93')][_0xee2f('0x99')]())+_0xee2f('0x9d')]=Number(_0x1d4d12[_0xee2f('0x4a')]['ids'][_0x5010eb]);socket[_0xee2f('0x9e')](_0xee2f('0x70')+_[_0xee2f('0x98')](_0x1d4d12[_0xee2f('0x4a')][_0xee2f('0x93')][_0xee2f('0x99')]())+_0xee2f('0xa9'),_0x11e4f5);}}else{var _0x11e4f5={'UserId':Number(_0x1d4d12['params']['id'])};_0x11e4f5[_['capitalize'](_0x1d4d12[_0xee2f('0x4a')][_0xee2f('0x93')][_0xee2f('0x99')]())+'QueueId']=Number(_0x1d4d12[_0xee2f('0x4a')]['ids']);socket[_0xee2f('0x9e')]('user'+_[_0xee2f('0x98')](_0x1d4d12[_0xee2f('0x4a')]['channel'][_0xee2f('0x99')]())+'Queue:remove',_0x11e4f5);}return _0x2bd952;})[_0xee2f('0xf')](function(){if(_0x1d4d12['query'][_0xee2f('0x93')]===_0xee2f('0xa0')){return db[_0xee2f('0xa5')][_0xee2f('0x24')]({'where':{'UserId':_0x1d4d12[_0xee2f('0x52')]['id'],'VoiceQueueId':_0x1d4d12['query'][_0xee2f('0x54')]},'individualHooks':!![]})[_0xee2f('0xf')](function(){return _0x37ebf7;});}return _0x37ebf7;})[_0xee2f('0xf')](respondWithStatusCode(_0x3ab6c7,null))[_0xee2f('0x18')](handleError(_0x3ab6c7,null));};exports[_0xee2f('0xaa')]=function(_0x73e99a,_0x55f1bd){_0x73e99a[_0xee2f('0x50')][_0xee2f('0xab')]=_0x73e99a[_0xee2f('0xac')]['filename'];return db[_0xee2f('0x33')][_0xee2f('0x2e')]({'where':{'id':_0x73e99a[_0xee2f('0x52')]['id']}})[_0xee2f('0xf')](handleEntityNotFound(_0x55f1bd,null))[_0xee2f('0xf')](saveUpdates(_0x73e99a[_0xee2f('0x50')],null))[_0xee2f('0xf')](respondWithResult(_0x55f1bd,null))[_0xee2f('0x18')](handleError(_0x55f1bd,null));};exports[_0xee2f('0xad')]=function(_0x2dc4ff,_0x351e10){var _0x3f0ef6=path['join'](config[_0xee2f('0xae')],'server/files/images/logos/default_profile.png');return db[_0xee2f('0x33')][_0xee2f('0x2e')]({'where':{'id':_0x2dc4ff['params']['id']},'attributes':['id',_0xee2f('0xab')],'raw':!![]})['then'](handleEntityNotFound(_0x351e10,null))[_0xee2f('0xf')](function(_0x34a358){if(_0x34a358){if(_[_0xee2f('0x5c')](_0x34a358[_0xee2f('0xab')])){return _0x351e10['download'](_0x3f0ef6);}else{if(!fs[_0xee2f('0xaf')](path[_0xee2f('0xb0')](config[_0xee2f('0xae')],_0xee2f('0xb1'),_0x34a358[_0xee2f('0xab')]))){return _0x351e10[_0xee2f('0xb2')](_0x3f0ef6);}return _0x351e10['download'](path[_0xee2f('0xb0')](config['root'],_0xee2f('0xb1'),_0x34a358[_0xee2f('0xab')]));}}})['catch'](handleError(_0x351e10,null));};exports[_0xee2f('0xb3')]=function(_0x44c1a8,_0x4b9d27){return db['User'][_0xee2f('0x2e')]({'where':{'id':_0x44c1a8[_0xee2f('0x52')]['id']},'attributes':['id']})[_0xee2f('0xf')](handleEntityNotFound(_0x4b9d27,null))[_0xee2f('0xf')](function(_0x2f5a60){var _0x33182c=[];values=_0x2f5a60['dataValues'];_0x33182c[_0xee2f('0x3b')](get_open_tabs('chat',_0x2f5a60['dataValues']));_0x33182c['push'](get_open_tabs(_0xee2f('0x43'),_0x2f5a60['dataValues']));_0x33182c[_0xee2f('0x3b')](get_open_tabs(_0xee2f('0x45'),_0x2f5a60['dataValues']));_0x33182c[_0xee2f('0x3b')](get_open_tabs(_0xee2f('0x46'),_0x2f5a60[_0xee2f('0x42')]));_0x33182c[_0xee2f('0x3b')](get_open_tabs(_0xee2f('0x4f'),_0x2f5a60['dataValues']));_0x33182c[_0xee2f('0x3b')](get_open_tabs(_0xee2f('0x44'),_0x2f5a60[_0xee2f('0x42')]));return BPromise[_0xee2f('0x7f')](_0x33182c);})[_0xee2f('0xf')](function(_0x1cbce0){var _0x6e5a1d=[];if(_0x1cbce0){for(var _0xf2d880=0x0;_0xf2d880<values[_0xee2f('0xb4')][_0xee2f('0x3f')];_0xf2d880++){var _0x5f3179=values[_0xee2f('0xb4')][_0xf2d880];_0x6e5a1d[_0xee2f('0x3b')]({'channel':_0xee2f('0xb5'),'id':_0x5f3179['id'],'createdAt':_0x5f3179['createdAt']});}for(var _0xf2d880=0x0;_0xf2d880<values['FaxOpenTabs'][_0xee2f('0x3f')];_0xf2d880++){var _0x5f3179=values['FaxOpenTabs'][_0xf2d880];_0x6e5a1d[_0xee2f('0x3b')]({'channel':_0xee2f('0xb6'),'id':_0x5f3179['id'],'createdAt':_0x5f3179['createdAt']});}for(var _0xf2d880=0x0;_0xf2d880<values['OpenchannelOpenTabs']['length'];_0xf2d880++){var _0x5f3179=values['OpenchannelOpenTabs'][_0xf2d880];_0x6e5a1d[_0xee2f('0x3b')]({'channel':'OPENCHANNEL','id':_0x5f3179['id'],'createdAt':_0x5f3179[_0xee2f('0xb7')]});}for(var _0xf2d880=0x0;_0xf2d880<values[_0xee2f('0xb8')][_0xee2f('0x3f')];_0xf2d880++){var _0x5f3179=values[_0xee2f('0xb8')][_0xf2d880];_0x6e5a1d[_0xee2f('0x3b')]({'channel':_0xee2f('0xb9'),'id':_0x5f3179['id'],'createdAt':_0x5f3179[_0xee2f('0xb7')]});}for(var _0xf2d880=0x0;_0xf2d880<values[_0xee2f('0xba')][_0xee2f('0x3f')];_0xf2d880++){var _0x5f3179=values[_0xee2f('0xba')][_0xf2d880];_0x6e5a1d[_0xee2f('0x3b')]({'channel':_0xee2f('0xbb'),'id':_0x5f3179['id'],'createdAt':_0x5f3179['createdAt']});}for(var _0xf2d880=0x0;_0xf2d880<values[_0xee2f('0xbc')][_0xee2f('0x3f')];_0xf2d880++){var _0x5f3179=values[_0xee2f('0xbc')][_0xf2d880];_0x6e5a1d[_0xee2f('0x3b')]({'channel':'WHATSAPP','id':_0x5f3179['id'],'createdAt':_0x5f3179['createdAt']});}var _0x399fe1={'count':_0x6e5a1d['length'],'rows':_0x6e5a1d};return _0x399fe1;}else return null;})[_0xee2f('0xf')](respondWithResult(_0x4b9d27,null))[_0xee2f('0x18')](handleError(_0x4b9d27,null));};exports[_0xee2f('0xbd')]=function(_0x3152b6,_0x5d19be){var _0x5760cd={};var _0x5a489d={};var _0x3bdc48;var _0x4d63f0;return db['User'][_0xee2f('0x8e')]({'where':{'id':_0x3152b6[_0xee2f('0x52')]['id']}})['then'](handleEntityNotFound(_0x5d19be,null))[_0xee2f('0xf')](function(_0xad9ab9){if(_0xad9ab9){_0x3bdc48=_0xad9ab9;_0x5a489d[_0xee2f('0x47')]=_[_0xee2f('0x48')](db[_0xee2f('0xbe')][_0xee2f('0x34')]);_0x5a489d['query']=_['keys'](_0x3152b6[_0xee2f('0x4a')]);_0x5a489d[_0xee2f('0xbf')]=_['intersection'](_0x5a489d[_0xee2f('0x47')],_0x5a489d[_0xee2f('0x4a')]);_0x5760cd['attributes']=_['intersection'](_0x5a489d[_0xee2f('0x47')],qs['fields'](_0x3152b6[_0xee2f('0x4a')]['fields']));_0x5760cd[_0xee2f('0x3a')]=_0x5760cd[_0xee2f('0x3a')][_0xee2f('0x3f')]?_0x5760cd[_0xee2f('0x3a')]:_0x5a489d['model'];_0x5760cd['order']=qs[_0xee2f('0xc0')](_0x3152b6[_0xee2f('0x4a')][_0xee2f('0xc0')]);_0x5760cd[_0xee2f('0xc1')]=qs['filters'](_['pick'](_0x3152b6['query'],_0x5a489d[_0xee2f('0xbf')]));if(_0x3152b6[_0xee2f('0x4a')][_0xee2f('0xc2')]){_0x5760cd[_0xee2f('0xc1')]=_[_0xee2f('0x4e')](_0x5760cd['where'],{'$or':_[_0xee2f('0x2b')](_0x5760cd[_0xee2f('0x3a')],function(_0x137d00){var _0x3650e8={};_0x3650e8[_0x137d00]={'$like':'%'+_0x3152b6[_0xee2f('0x4a')]['filter']+'%'};return _0x3650e8;})});}_0x5760cd=_[_0xee2f('0x4e')]({},_0x5760cd,_0x3152b6[_0xee2f('0xc3')]);return _0x3bdc48['getContacts'](_0x5760cd);}})[_0xee2f('0xf')](function(_0x3544bb){if(_0x3544bb){_0x4d63f0=_0x3544bb[_0xee2f('0x3f')];if(_0x3152b6['query']['hasOwnProperty'](_0xee2f('0x39'))){_0x5760cd[_0xee2f('0x4d')]=[{'model':db['CmList'],'as':_0xee2f('0xc4'),'required':![]},{'model':db[_0xee2f('0xc5')],'as':_0xee2f('0xc6'),'attributes':['id','name',_0xee2f('0xc7')],'where':_0x3152b6[_0xee2f('0x4a')][_0xee2f('0xc8')]?{'id':_0x3152b6['query'][_0xee2f('0xc8')]}:undefined,'required':_0x3152b6[_0xee2f('0x4a')][_0xee2f('0xc8')]?!![]:![]}];}if(!_0x3152b6[_0xee2f('0x4a')]['hasOwnProperty'](_0xee2f('0xc9'))){_0x5760cd[_0xee2f('0x1f')]=qs[_0xee2f('0x1f')](_0x3152b6[_0xee2f('0x4a')][_0xee2f('0x1f')]);_0x5760cd['offset']=qs[_0xee2f('0x1d')](_0x3152b6['query'][_0xee2f('0x1d')]);}return _0x3bdc48[_0xee2f('0xbd')](_0x5760cd);}})[_0xee2f('0xf')](function(_0x4a946b){if(_0x4a946b){return _0x4a946b?{'count':_0x4d63f0,'rows':_0x4a946b}:null;}})[_0xee2f('0xf')](respondWithResult(_0x5d19be,null))[_0xee2f('0x18')](handleError(_0x5d19be,null));};exports[_0xee2f('0xca')]=function(_0x333e06,_0x5814c7){var _0x10167c;var _0x5edd6e;var _0x2dea92={};var _0x5837ea;return db[_0xee2f('0x33')][_0xee2f('0x8e')]({'where':{'id':_0x333e06[_0xee2f('0x52')]['id']},'attributes':['id',_0xee2f('0x2f'),_0xee2f('0x26')]})[_0xee2f('0xf')](handleEntityNotFound(_0x5814c7,null))['then'](function(_0x35053b){if(!utils[_0xee2f('0xcb')](_0x333e06['query'][_0xee2f('0x93')])){throw new db[(_0xee2f('0x87'))][(_0xee2f('0x8c'))](_0xee2f('0x97'));}_0x10167c=_0x35053b;var _0x36cb26={};_0x36cb26[_0xee2f('0x47')]=_[_0xee2f('0x48')](db[_[_0xee2f('0x98')](_0x333e06[_0xee2f('0x4a')][_0xee2f('0x93')])+'Queue']['rawAttributes']);_0x36cb26[_0xee2f('0x4a')]=_[_0xee2f('0x48')](_0x333e06[_0xee2f('0x4a')]);_0x36cb26['filters']=_[_0xee2f('0x4b')](_0x36cb26[_0xee2f('0x47')],_0x36cb26[_0xee2f('0x4a')]);_0x2dea92[_0xee2f('0x3a')]=_[_0xee2f('0x4b')](_0x36cb26[_0xee2f('0x47')],qs[_0xee2f('0x4c')](_0x333e06['query'][_0xee2f('0x4c')]));_0x2dea92[_0xee2f('0x3a')]=_0x2dea92[_0xee2f('0x3a')]['length']?_0x2dea92['attributes']:_0x36cb26[_0xee2f('0x47')];_0x2dea92[_0xee2f('0xcc')]=qs['sort'](_0x333e06[_0xee2f('0x4a')]['sort']);_0x2dea92['where']=qs['filters'](_['pick'](_0x333e06[_0xee2f('0x4a')],_0x36cb26[_0xee2f('0xbf')]));if(_0x333e06['query'][_0xee2f('0xc2')]){_0x2dea92[_0xee2f('0xc1')]=_[_0xee2f('0x4e')](_0x2dea92['where'],{'$or':_[_0xee2f('0x2b')](_0x2dea92['attributes'],function(_0x115ddd){var _0x30f467={};_0x30f467[_0x115ddd]={'$like':'%'+_0x333e06[_0xee2f('0x4a')][_0xee2f('0xc2')]+'%'};return _0x30f467;})});}_0x2dea92=_['merge']({},_0x2dea92,_0x333e06[_0xee2f('0xc3')]);switch(_0x10167c[_0xee2f('0x26')]){case _0xee2f('0x71'):return db[_[_0xee2f('0x98')](_0x333e06['query'][_0xee2f('0x93')])+_0xee2f('0xcd')][_0xee2f('0x3c')](_0x2dea92);case'user':case'agent':return _0x10167c[_0xee2f('0x25')+_[_0xee2f('0x98')](_0x333e06['query'][_0xee2f('0x93')])+_0xee2f('0x9a')](_0x2dea92);default:throw new db['Sequelize'][(_0xee2f('0x8c'))]('Unknown\x20role');}})[_0xee2f('0xf')](function(_0x55a2c0){_0x5837ea=_0x55a2c0['length'];if(!_0x333e06[_0xee2f('0x4a')][_0xee2f('0xce')]('nolimit')){_0x2dea92[_0xee2f('0x1f')]=qs[_0xee2f('0x1f')](_0x333e06[_0xee2f('0x4a')]['limit']);_0x2dea92[_0xee2f('0x1d')]=qs['offset'](_0x333e06['query'][_0xee2f('0x1d')]);}switch(_0x10167c[_0xee2f('0x26')]){case _0xee2f('0x71'):return db[_[_0xee2f('0x98')](_0x333e06[_0xee2f('0x4a')]['channel'])+_0xee2f('0xcd')][_0xee2f('0x3c')](_0x2dea92);case _0xee2f('0x70'):case'agent':return _0x10167c[_0xee2f('0x25')+_[_0xee2f('0x98')](_0x333e06['query'][_0xee2f('0x93')])+'Queues'](_0x2dea92);}})[_0xee2f('0xf')](function(_0x3219a3){return{'count':_0x5837ea,'rows':_0x3219a3};})['then'](respondWithResult(_0x5814c7,null))['catch'](handleError(_0x5814c7,null));};exports[_0xee2f('0xcf')]=function(_0x4b9c10,_0x35688c){var _0x9e8796={};var _0x1d9853={};var _0x512f69;var _0x3b2456;return db[_0xee2f('0x33')]['findOne']({'where':{'id':_0x4b9c10[_0xee2f('0x52')]['id']}})[_0xee2f('0xf')](handleEntityNotFound(_0x35688c,null))['then'](function(_0x171580){if(_0x171580){_0x512f69=_0x171580;_0x1d9853['model']=_['keys'](db[_0xee2f('0xa5')][_0xee2f('0x34')]);_0x1d9853[_0xee2f('0x4a')]=_[_0xee2f('0x48')](_0x4b9c10[_0xee2f('0x4a')]);_0x1d9853[_0xee2f('0xbf')]=_[_0xee2f('0x4b')](_0x1d9853[_0xee2f('0x47')],_0x1d9853[_0xee2f('0x4a')]);_0x9e8796[_0xee2f('0x3a')]=_['intersection'](_0x1d9853[_0xee2f('0x47')],qs[_0xee2f('0x4c')](_0x4b9c10['query'][_0xee2f('0x4c')]));_0x9e8796[_0xee2f('0x3a')]=_0x9e8796[_0xee2f('0x3a')][_0xee2f('0x3f')]?_0x9e8796[_0xee2f('0x3a')]:_0x1d9853[_0xee2f('0x47')];_0x9e8796['order']=qs['sort'](_0x4b9c10[_0xee2f('0x4a')][_0xee2f('0xc0')]);_0x9e8796['where']=qs[_0xee2f('0xbf')](_[_0xee2f('0xd0')](_0x4b9c10[_0xee2f('0x4a')],_0x1d9853[_0xee2f('0xbf')]));if(_0x4b9c10[_0xee2f('0x4a')]['filter']){_0x9e8796[_0xee2f('0xc1')]=_[_0xee2f('0x4e')](_0x9e8796[_0xee2f('0xc1')],{'$or':_[_0xee2f('0x2b')](_0x9e8796[_0xee2f('0x3a')],function(_0xa8d003){var _0x1906d3={};_0x1906d3[_0xa8d003]={'$like':'%'+_0x4b9c10[_0xee2f('0x4a')][_0xee2f('0xc2')]+'%'};return _0x1906d3;})});}_0x9e8796=_[_0xee2f('0x4e')]({},_0x9e8796,_0x4b9c10[_0xee2f('0xc3')]);return _0x512f69[_0xee2f('0xcf')](_0x9e8796);}})['then'](function(_0x57e9d7){if(_0x57e9d7){_0x3b2456=_0x57e9d7[_0xee2f('0x3f')];if(!_0x4b9c10['query'][_0xee2f('0xce')](_0xee2f('0xc9'))){_0x9e8796['limit']=qs[_0xee2f('0x1f')](_0x4b9c10[_0xee2f('0x4a')][_0xee2f('0x1f')]);_0x9e8796[_0xee2f('0x1d')]=qs[_0xee2f('0x1d')](_0x4b9c10['query'][_0xee2f('0x1d')]);}return _0x512f69['getVoiceQueuesRt'](_0x9e8796);}})[_0xee2f('0xf')](function(_0x2ae04d){if(_0x2ae04d){return _0x2ae04d?{'count':_0x3b2456,'rows':_0x2ae04d}:null;}})['then'](respondWithResult(_0x35688c,null))[_0xee2f('0x18')](handleError(_0x35688c,null));};exports['getGroups']=function(_0x13ed17,_0x527c5f){var _0x36ee46={};var _0x5374ca={};var _0x1d8b7e;var _0x1f9158;return db[_0xee2f('0x33')][_0xee2f('0x8e')]({'where':{'id':_0x13ed17[_0xee2f('0x52')]['id']}})[_0xee2f('0xf')](handleEntityNotFound(_0x527c5f,null))[_0xee2f('0xf')](function(_0x422450){if(_0x422450){_0x1d8b7e=_0x422450;_0x5374ca[_0xee2f('0x47')]=_[_0xee2f('0x48')](db[_0xee2f('0xd1')][_0xee2f('0x34')]);_0x5374ca[_0xee2f('0x4a')]=_[_0xee2f('0x48')](_0x13ed17[_0xee2f('0x4a')]);_0x5374ca['filters']=_[_0xee2f('0x4b')](_0x5374ca[_0xee2f('0x47')],_0x5374ca['query']);_0x36ee46[_0xee2f('0x3a')]=_[_0xee2f('0x4b')](_0x5374ca[_0xee2f('0x47')],qs['fields'](_0x13ed17[_0xee2f('0x4a')][_0xee2f('0x4c')]));_0x36ee46[_0xee2f('0x3a')]=_0x36ee46[_0xee2f('0x3a')][_0xee2f('0x3f')]?_0x36ee46[_0xee2f('0x3a')]:_0x5374ca[_0xee2f('0x47')];_0x36ee46[_0xee2f('0xcc')]=qs[_0xee2f('0xc0')](_0x13ed17[_0xee2f('0x4a')][_0xee2f('0xc0')]);_0x36ee46['where']=qs['filters'](_[_0xee2f('0xd0')](_0x13ed17['query'],_0x5374ca[_0xee2f('0xbf')]));if(_0x13ed17['query'][_0xee2f('0xc2')]){_0x36ee46[_0xee2f('0xc1')]=_[_0xee2f('0x4e')](_0x36ee46[_0xee2f('0xc1')],{'$or':_[_0xee2f('0x2b')](_0x36ee46['attributes'],function(_0x233570){var _0x48f516={};_0x48f516[_0x233570]={'$like':'%'+_0x13ed17['query'][_0xee2f('0xc2')]+'%'};return _0x48f516;})});}_0x36ee46=_['merge']({},_0x36ee46,_0x13ed17[_0xee2f('0xc3')]);return _0x1d8b7e[_0xee2f('0xd2')](_0x36ee46);}})[_0xee2f('0xf')](function(_0x50f1bf){if(_0x50f1bf){_0x1f9158=_0x50f1bf[_0xee2f('0x3f')];if(!_0x13ed17[_0xee2f('0x4a')][_0xee2f('0xce')](_0xee2f('0xc9'))){_0x36ee46['limit']=qs['limit'](_0x13ed17[_0xee2f('0x4a')][_0xee2f('0x1f')]);_0x36ee46['offset']=qs['offset'](_0x13ed17[_0xee2f('0x4a')][_0xee2f('0x1d')]);}return _0x1d8b7e[_0xee2f('0xd2')](_0x36ee46);}})[_0xee2f('0xf')](function(_0x3c3664){if(_0x3c3664){return _0x3c3664?{'count':_0x1f9158,'rows':_0x3c3664}:null;}})['then'](respondWithResult(_0x527c5f,null))[_0xee2f('0x18')](handleError(_0x527c5f,null));};exports[_0xee2f('0xd3')]=function(_0xae9b0f,_0x560263){var _0x5755bd={'raw':!![],'where':{}};var _0x5d9e28={};var _0xf19fab={'count':0x0,'rows':[]};return db[_0xee2f('0x33')][_0xee2f('0x8e')]({'where':{'id':_0xae9b0f['params']['id']}})['then'](handleEntityNotFound(_0x560263,null))['then'](function(_0x1ed4f1){if(_0x1ed4f1){_0x5d9e28[_0xee2f('0x47')]=_['keys'](db[_0xee2f('0xd4')]['rawAttributes']);_0x5d9e28[_0xee2f('0x4a')]=_[_0xee2f('0x48')](_0xae9b0f['query']);_0x5d9e28[_0xee2f('0xbf')]=_[_0xee2f('0x4b')](_0x5d9e28[_0xee2f('0x47')],_0x5d9e28[_0xee2f('0x4a')]);_0x5755bd[_0xee2f('0x3a')]=_['intersection'](_0x5d9e28[_0xee2f('0x47')],qs['fields'](_0xae9b0f['query']['fields']));_0x5755bd['attributes']=_0x5755bd[_0xee2f('0x3a')]['length']?_0x5755bd['attributes']:_0x5d9e28['model'];if(!_0xae9b0f[_0xee2f('0x4a')][_0xee2f('0xce')](_0xee2f('0xc9'))){_0x5755bd[_0xee2f('0x1f')]=qs[_0xee2f('0x1f')](_0xae9b0f[_0xee2f('0x4a')][_0xee2f('0x1f')]);_0x5755bd[_0xee2f('0x1d')]=qs[_0xee2f('0x1d')](_0xae9b0f[_0xee2f('0x4a')][_0xee2f('0x1d')]);}_0x5755bd[_0xee2f('0xcc')]=qs['sort'](_0xae9b0f[_0xee2f('0x4a')][_0xee2f('0xc0')]);_0x5755bd[_0xee2f('0xc1')]=qs[_0xee2f('0xbf')](_[_0xee2f('0xd0')](_0xae9b0f[_0xee2f('0x4a')],_0x5d9e28[_0xee2f('0xbf')]));_0x5755bd[_0xee2f('0xc1')][_0xee2f('0xd5')]=_0x1ed4f1['id'];if(_0xae9b0f[_0xee2f('0x4a')]['filter']){_0x5755bd[_0xee2f('0xc1')]=_[_0xee2f('0x4e')](_0x5755bd['where'],{'$or':_[_0xee2f('0x2b')](_0x5755bd[_0xee2f('0x3a')],function(_0x5e279f){var _0x2afb0c={};_0x2afb0c[_0x5e279f]={'$like':'%'+_0xae9b0f[_0xee2f('0x4a')][_0xee2f('0xc2')]+'%'};return _0x2afb0c;})});}_0x5755bd=_['merge']({},_0x5755bd,_0xae9b0f[_0xee2f('0xc3')]);return db['VoiceRecording'][_0xee2f('0x20')]({'where':_0x5755bd[_0xee2f('0xc1')]})[_0xee2f('0xf')](function(_0x11c4fe){_0xf19fab['count']=_0x11c4fe;if(_0xae9b0f['query']['includeAll']){_0x5755bd[_0xee2f('0x4d')]=[{'all':!![]}];}return db[_0xee2f('0xd4')][_0xee2f('0x3c')](_0x5755bd);})[_0xee2f('0xf')](function(_0x3beaf6){_0xf19fab[_0xee2f('0x41')]=_0x3beaf6;return _0xf19fab;});}})[_0xee2f('0xf')](respondWithFilteredResult(_0x560263,_0x5755bd))[_0xee2f('0x18')](handleError(_0x560263,null));};exports[_0xee2f('0xd6')]=function(_0xc32c37,_0x5ad7c3){var _0x5416fe={'raw':!![],'where':{}};var _0x5ee772={};var _0x5b7183={'count':0x0,'rows':[]};return db[_0xee2f('0x33')][_0xee2f('0x8e')]({'where':{'id':_0xc32c37[_0xee2f('0x52')]['id']}})[_0xee2f('0xf')](handleEntityNotFound(_0x5ad7c3,null))[_0xee2f('0xf')](function(_0x2bd23c){if(_0x2bd23c){_0x5ee772[_0xee2f('0x47')]=_[_0xee2f('0x48')](db[_0xee2f('0xd7')][_0xee2f('0x34')]);_0x5ee772[_0xee2f('0x4a')]=_[_0xee2f('0x48')](_0xc32c37['query']);_0x5ee772[_0xee2f('0xbf')]=_[_0xee2f('0x4b')](_0x5ee772[_0xee2f('0x47')],_0x5ee772[_0xee2f('0x4a')]);_0x5416fe[_0xee2f('0x3a')]=_[_0xee2f('0x4b')](_0x5ee772[_0xee2f('0x47')],qs['fields'](_0xc32c37[_0xee2f('0x4a')][_0xee2f('0x4c')]));_0x5416fe[_0xee2f('0x3a')]=_0x5416fe[_0xee2f('0x3a')][_0xee2f('0x3f')]?_0x5416fe['attributes']:_0x5ee772['model'];if(!_0xc32c37[_0xee2f('0x4a')][_0xee2f('0xce')](_0xee2f('0xc9'))){_0x5416fe['limit']=qs['limit'](_0xc32c37['query'][_0xee2f('0x1f')]);_0x5416fe[_0xee2f('0x1d')]=qs[_0xee2f('0x1d')](_0xc32c37[_0xee2f('0x4a')]['offset']);}_0x5416fe['order']=qs[_0xee2f('0xc0')](_0xc32c37[_0xee2f('0x4a')][_0xee2f('0xc0')]);_0x5416fe[_0xee2f('0xc1')]=qs[_0xee2f('0xbf')](_[_0xee2f('0xd0')](_0xc32c37[_0xee2f('0x4a')],_0x5ee772[_0xee2f('0xbf')]));_0x5416fe[_0xee2f('0xc1')][_0xee2f('0xd5')]=_0x2bd23c['id'];if(_0xc32c37['query'][_0xee2f('0xc2')]){_0x5416fe[_0xee2f('0xc1')]=_[_0xee2f('0x4e')](_0x5416fe[_0xee2f('0xc1')],{'$or':_[_0xee2f('0x2b')](_0x5416fe[_0xee2f('0x3a')],function(_0x1eba94){var _0x5c5309={};_0x5c5309[_0x1eba94]={'$like':'%'+_0xc32c37[_0xee2f('0x4a')][_0xee2f('0xc2')]+'%'};return _0x5c5309;})});}_0x5416fe=_[_0xee2f('0x4e')]({},_0x5416fe,_0xc32c37[_0xee2f('0xc3')]);return db['ScreenRecording'][_0xee2f('0x20')]({'where':_0x5416fe[_0xee2f('0xc1')]})[_0xee2f('0xf')](function(_0x5aae6b){_0x5b7183[_0xee2f('0x20')]=_0x5aae6b;if(_0xc32c37[_0xee2f('0x4a')][_0xee2f('0x39')]){_0x5416fe[_0xee2f('0x4d')]=[{'all':!![]}];}return db[_0xee2f('0xd7')][_0xee2f('0x3c')](_0x5416fe);})[_0xee2f('0xf')](function(_0x1322a3){_0x5b7183[_0xee2f('0x41')]=_0x1322a3;return _0x5b7183;});}})['then'](respondWithFilteredResult(_0x5ad7c3,_0x5416fe))[_0xee2f('0x18')](handleError(_0x5ad7c3,null));};exports[_0xee2f('0xd8')]=function(_0xd87372,_0x333bd4){var _0x3c8759={};var _0x2a2232={};var _0x5de2a9;var _0x3f0fbc;return db[_0xee2f('0x33')][_0xee2f('0x8e')]({'where':{'id':_0xd87372['params']['id']}})[_0xee2f('0xf')](handleEntityNotFound(_0x333bd4,null))[_0xee2f('0xf')](function(_0x42eaf0){if(_0x42eaf0){_0x5de2a9=_0x42eaf0;_0x2a2232[_0xee2f('0x47')]=_[_0xee2f('0x48')](db[_0xee2f('0xd9')]['rawAttributes']);_0x2a2232[_0xee2f('0x4a')]=_['keys'](_0xd87372[_0xee2f('0x4a')]);_0x2a2232['filters']=_[_0xee2f('0x4b')](_0x2a2232[_0xee2f('0x47')],_0x2a2232[_0xee2f('0x4a')]);_0x3c8759[_0xee2f('0x3a')]=_[_0xee2f('0x4b')](_0x2a2232[_0xee2f('0x47')],qs[_0xee2f('0x4c')](_0xd87372[_0xee2f('0x4a')][_0xee2f('0x4c')]));_0x3c8759[_0xee2f('0x3a')]=_0x3c8759[_0xee2f('0x3a')][_0xee2f('0x3f')]?_0x3c8759[_0xee2f('0x3a')]:_0x2a2232[_0xee2f('0x47')];_0x3c8759[_0xee2f('0xcc')]=qs['sort'](_0xd87372[_0xee2f('0x4a')][_0xee2f('0xc0')]);_0x3c8759[_0xee2f('0xc1')]=qs[_0xee2f('0xbf')](_['pick'](_0xd87372[_0xee2f('0x4a')],_0x2a2232[_0xee2f('0xbf')]));if(_0xd87372['query'][_0xee2f('0xc2')]){_0x3c8759['where']=_[_0xee2f('0x4e')](_0x3c8759[_0xee2f('0xc1')],{'$or':_[_0xee2f('0x2b')](_0x3c8759[_0xee2f('0x3a')],function(_0x4a7dd7){var _0x5002ae={};_0x5002ae[_0x4a7dd7]={'$like':'%'+_0xd87372['query'][_0xee2f('0xc2')]+'%'};return _0x5002ae;})});}_0x3c8759=_[_0xee2f('0x4e')]({},_0x3c8759,_0xd87372['options']);return _0x5de2a9['getChatInteractions'](_0x3c8759);}})[_0xee2f('0xf')](function(_0x4fdeb7){if(_0x4fdeb7){_0x3f0fbc=_0x4fdeb7['length'];if(!_0xd87372['query'][_0xee2f('0xce')]('nolimit')){_0x3c8759[_0xee2f('0x1f')]=qs['limit'](_0xd87372['query']['limit']);_0x3c8759['offset']=qs['offset'](_0xd87372[_0xee2f('0x4a')][_0xee2f('0x1d')]);}return _0x5de2a9[_0xee2f('0xd8')](_0x3c8759);}})[_0xee2f('0xf')](function(_0x12243c){if(_0x12243c){return _0x12243c?{'count':_0x3f0fbc,'rows':_0x12243c}:null;}})[_0xee2f('0xf')](respondWithResult(_0x333bd4,null))['catch'](handleError(_0x333bd4,null));};exports['getOpenchannelInteractions']=function(_0x5f0ab0,_0x42f9ac){var _0x1e26ed={};var _0x4d1245={};var _0x3ad061;var _0x5d9163;return db[_0xee2f('0x33')][_0xee2f('0x8e')]({'where':{'id':_0x5f0ab0[_0xee2f('0x52')]['id']}})[_0xee2f('0xf')](handleEntityNotFound(_0x42f9ac,null))['then'](function(_0x433aa7){if(_0x433aa7){_0x3ad061=_0x433aa7;_0x4d1245[_0xee2f('0x47')]=_[_0xee2f('0x48')](db[_0xee2f('0xda')]['rawAttributes']);_0x4d1245[_0xee2f('0x4a')]=_[_0xee2f('0x48')](_0x5f0ab0[_0xee2f('0x4a')]);_0x4d1245['filters']=_[_0xee2f('0x4b')](_0x4d1245[_0xee2f('0x47')],_0x4d1245[_0xee2f('0x4a')]);_0x1e26ed[_0xee2f('0x3a')]=_[_0xee2f('0x4b')](_0x4d1245[_0xee2f('0x47')],qs[_0xee2f('0x4c')](_0x5f0ab0['query'][_0xee2f('0x4c')]));_0x1e26ed[_0xee2f('0x3a')]=_0x1e26ed[_0xee2f('0x3a')][_0xee2f('0x3f')]?_0x1e26ed[_0xee2f('0x3a')]:_0x4d1245[_0xee2f('0x47')];_0x1e26ed[_0xee2f('0xcc')]=qs[_0xee2f('0xc0')](_0x5f0ab0[_0xee2f('0x4a')]['sort']);_0x1e26ed[_0xee2f('0xc1')]=qs[_0xee2f('0xbf')](_[_0xee2f('0xd0')](_0x5f0ab0[_0xee2f('0x4a')],_0x4d1245['filters']));if(_0x5f0ab0[_0xee2f('0x4a')][_0xee2f('0xc2')]){_0x1e26ed[_0xee2f('0xc1')]=_[_0xee2f('0x4e')](_0x1e26ed['where'],{'$or':_[_0xee2f('0x2b')](_0x1e26ed[_0xee2f('0x3a')],function(_0x4d694e){var _0x4b0d80={};_0x4b0d80[_0x4d694e]={'$like':'%'+_0x5f0ab0[_0xee2f('0x4a')][_0xee2f('0xc2')]+'%'};return _0x4b0d80;})});}_0x1e26ed=_[_0xee2f('0x4e')]({},_0x1e26ed,_0x5f0ab0['options']);return _0x3ad061[_0xee2f('0xdb')](_0x1e26ed);}})[_0xee2f('0xf')](function(_0x1622b8){if(_0x1622b8){_0x5d9163=_0x1622b8['length'];if(!_0x5f0ab0['query'][_0xee2f('0xce')](_0xee2f('0xc9'))){_0x1e26ed[_0xee2f('0x1f')]=qs[_0xee2f('0x1f')](_0x5f0ab0['query'][_0xee2f('0x1f')]);_0x1e26ed[_0xee2f('0x1d')]=qs[_0xee2f('0x1d')](_0x5f0ab0[_0xee2f('0x4a')][_0xee2f('0x1d')]);}return _0x3ad061['getOpenchannelInteractions'](_0x1e26ed);}})[_0xee2f('0xf')](function(_0x420103){if(_0x420103){return _0x420103?{'count':_0x5d9163,'rows':_0x420103}:null;}})[_0xee2f('0xf')](respondWithResult(_0x42f9ac,null))['catch'](handleError(_0x42f9ac,null));};exports[_0xee2f('0xdc')]=function(_0x487ed6,_0x5efa25){var _0x46d304={'raw':!![],'where':{}};var _0x1fca9d={};var _0x241e6a={'count':0x0,'rows':[]};return db['User'][_0xee2f('0x8e')]({'where':{'id':_0x487ed6[_0xee2f('0x52')]['id']}})['then'](handleEntityNotFound(_0x5efa25,null))[_0xee2f('0xf')](function(_0x209468){if(_0x209468){_0x1fca9d[_0xee2f('0x47')]=_[_0xee2f('0x48')](db[_0xee2f('0xdd')]['rawAttributes']);_0x1fca9d[_0xee2f('0x4a')]=_[_0xee2f('0x48')](_0x487ed6['query']);_0x1fca9d[_0xee2f('0xbf')]=_[_0xee2f('0x4b')](_0x1fca9d[_0xee2f('0x47')],_0x1fca9d[_0xee2f('0x4a')]);_0x46d304[_0xee2f('0x3a')]=_[_0xee2f('0x4b')](_0x1fca9d['model'],qs[_0xee2f('0x4c')](_0x487ed6[_0xee2f('0x4a')][_0xee2f('0x4c')]));_0x46d304[_0xee2f('0x3a')]=_0x46d304[_0xee2f('0x3a')][_0xee2f('0x3f')]?_0x46d304['attributes']:_0x1fca9d[_0xee2f('0x47')];if(!_0x487ed6['query'][_0xee2f('0xce')](_0xee2f('0xc9'))){_0x46d304[_0xee2f('0x1f')]=qs[_0xee2f('0x1f')](_0x487ed6[_0xee2f('0x4a')][_0xee2f('0x1f')]);_0x46d304[_0xee2f('0x1d')]=qs['offset'](_0x487ed6['query'][_0xee2f('0x1d')]);}_0x46d304[_0xee2f('0xcc')]=qs[_0xee2f('0xc0')](_0x487ed6['query'][_0xee2f('0xc0')]);_0x46d304[_0xee2f('0xc1')]=qs[_0xee2f('0xbf')](_[_0xee2f('0xd0')](_0x487ed6['query'],_0x1fca9d['filters']));_0x46d304['where'][_0xee2f('0xd5')]=_0x209468['id'];if(_0x487ed6['query'][_0xee2f('0xc2')]){_0x46d304[_0xee2f('0xc1')]=_[_0xee2f('0x4e')](_0x46d304[_0xee2f('0xc1')],{'$or':_['map'](_0x46d304[_0xee2f('0x3a')],function(_0x404593){var _0x57c011={};_0x57c011[_0x404593]={'$like':'%'+_0x487ed6[_0xee2f('0x4a')][_0xee2f('0xc2')]+'%'};return _0x57c011;})});}_0x46d304=_[_0xee2f('0x4e')]({},_0x46d304,_0x487ed6[_0xee2f('0xc3')]);return db[_0xee2f('0xdd')]['count']({'where':_0x46d304[_0xee2f('0xc1')]})[_0xee2f('0xf')](function(_0xcdef91){_0x241e6a[_0xee2f('0x20')]=_0xcdef91;if(_0x487ed6['query'][_0xee2f('0x39')]){_0x46d304[_0xee2f('0x4d')]=[{'all':!![]}];}return db[_0xee2f('0xdd')][_0xee2f('0x3c')](_0x46d304);})[_0xee2f('0xf')](function(_0x2da621){_0x241e6a[_0xee2f('0x41')]=_0x2da621;return _0x241e6a;});}})[_0xee2f('0xf')](respondWithFilteredResult(_0x5efa25,_0x46d304))['catch'](handleError(_0x5efa25,null));};exports[_0xee2f('0xde')]=function(_0x4f7cd3,_0x738fbe){var _0x3287aa={};var _0x14debc={};var _0x1a0cf9;var _0x25e117;return db[_0xee2f('0x33')]['findOne']({'where':{'id':_0x4f7cd3['params']['id']}})[_0xee2f('0xf')](handleEntityNotFound(_0x738fbe,null))[_0xee2f('0xf')](function(_0x43eb48){if(_0x43eb48){_0x1a0cf9=_0x43eb48;_0x14debc[_0xee2f('0x47')]=_['keys'](db[_0xee2f('0xdf')][_0xee2f('0x34')]);_0x14debc[_0xee2f('0x4a')]=_[_0xee2f('0x48')](_0x4f7cd3['query']);_0x14debc['filters']=_[_0xee2f('0x4b')](_0x14debc[_0xee2f('0x47')],_0x14debc[_0xee2f('0x4a')]);_0x3287aa[_0xee2f('0x3a')]=_[_0xee2f('0x4b')](_0x14debc['model'],qs[_0xee2f('0x4c')](_0x4f7cd3[_0xee2f('0x4a')][_0xee2f('0x4c')]));_0x3287aa['attributes']=_0x3287aa[_0xee2f('0x3a')]['length']?_0x3287aa[_0xee2f('0x3a')]:_0x14debc[_0xee2f('0x47')];_0x3287aa[_0xee2f('0xcc')]=qs['sort'](_0x4f7cd3[_0xee2f('0x4a')]['sort']);_0x3287aa[_0xee2f('0xc1')]=qs['filters'](_[_0xee2f('0xd0')](_0x4f7cd3[_0xee2f('0x4a')],_0x14debc[_0xee2f('0xbf')]));if(_0x4f7cd3[_0xee2f('0x4a')][_0xee2f('0xc2')]){_0x3287aa['where']=_[_0xee2f('0x4e')](_0x3287aa[_0xee2f('0xc1')],{'$or':_['map'](_0x3287aa['attributes'],function(_0x23c94f){var _0x2be16d={};_0x2be16d[_0x23c94f]={'$like':'%'+_0x4f7cd3['query'][_0xee2f('0xc2')]+'%'};return _0x2be16d;})});}_0x3287aa=_[_0xee2f('0x4e')]({},_0x3287aa,_0x4f7cd3['options']);return _0x1a0cf9[_0xee2f('0xde')](_0x3287aa);}})['then'](function(_0x7f44bc){if(_0x7f44bc){_0x25e117=_0x7f44bc[_0xee2f('0x3f')];if(!_0x4f7cd3[_0xee2f('0x4a')][_0xee2f('0xce')](_0xee2f('0xc9'))){_0x3287aa['limit']=qs[_0xee2f('0x1f')](_0x4f7cd3[_0xee2f('0x4a')][_0xee2f('0x1f')]);_0x3287aa['offset']=qs[_0xee2f('0x1d')](_0x4f7cd3[_0xee2f('0x4a')][_0xee2f('0x1d')]);}return _0x1a0cf9[_0xee2f('0xde')](_0x3287aa);}})['then'](function(_0x2caf49){if(_0x2caf49){return _0x2caf49?{'count':_0x25e117,'rows':_0x2caf49}:null;}})['then'](respondWithResult(_0x738fbe,null))[_0xee2f('0x18')](handleError(_0x738fbe,null));};exports[_0xee2f('0xe0')]=function(_0x3024fd,_0x315311){var _0x3aed5d={};var _0x3302c1={};var _0x365fa8;var _0x4a2583;return db[_0xee2f('0x33')]['findOne']({'where':{'id':_0x3024fd[_0xee2f('0x52')]['id']}})[_0xee2f('0xf')](handleEntityNotFound(_0x315311,null))[_0xee2f('0xf')](function(_0x261c98){if(_0x261c98){_0x365fa8=_0x261c98;_0x3302c1[_0xee2f('0x47')]=_[_0xee2f('0x48')](db[_0xee2f('0xe1')][_0xee2f('0x34')]);_0x3302c1[_0xee2f('0x4a')]=_['keys'](_0x3024fd[_0xee2f('0x4a')]);_0x3302c1[_0xee2f('0xbf')]=_[_0xee2f('0x4b')](_0x3302c1[_0xee2f('0x47')],_0x3302c1[_0xee2f('0x4a')]);_0x3aed5d['attributes']=_[_0xee2f('0x4b')](_0x3302c1[_0xee2f('0x47')],qs[_0xee2f('0x4c')](_0x3024fd[_0xee2f('0x4a')][_0xee2f('0x4c')]));_0x3aed5d[_0xee2f('0x3a')]=_0x3aed5d[_0xee2f('0x3a')][_0xee2f('0x3f')]?_0x3aed5d[_0xee2f('0x3a')]:_0x3302c1['model'];_0x3aed5d['order']=qs['sort'](_0x3024fd['query'][_0xee2f('0xc0')]);_0x3aed5d[_0xee2f('0xc1')]=qs[_0xee2f('0xbf')](_[_0xee2f('0xd0')](_0x3024fd[_0xee2f('0x4a')],_0x3302c1[_0xee2f('0xbf')]));if(_0x3024fd[_0xee2f('0x4a')][_0xee2f('0xc2')]){_0x3aed5d[_0xee2f('0xc1')]=_[_0xee2f('0x4e')](_0x3aed5d[_0xee2f('0xc1')],{'$or':_['map'](_0x3aed5d[_0xee2f('0x3a')],function(_0x4e3f9b){var _0x32a84c={};_0x32a84c[_0x4e3f9b]={'$like':'%'+_0x3024fd['query'][_0xee2f('0xc2')]+'%'};return _0x32a84c;})});}_0x3aed5d=_[_0xee2f('0x4e')]({},_0x3aed5d,_0x3024fd[_0xee2f('0xc3')]);return _0x365fa8['getFaxInteractions'](_0x3aed5d);}})['then'](function(_0x14da11){if(_0x14da11){_0x4a2583=_0x14da11[_0xee2f('0x3f')];if(!_0x3024fd[_0xee2f('0x4a')][_0xee2f('0xce')]('nolimit')){_0x3aed5d[_0xee2f('0x1f')]=qs[_0xee2f('0x1f')](_0x3024fd['query'][_0xee2f('0x1f')]);_0x3aed5d[_0xee2f('0x1d')]=qs['offset'](_0x3024fd['query'][_0xee2f('0x1d')]);}return _0x365fa8['getFaxInteractions'](_0x3aed5d);}})[_0xee2f('0xf')](function(_0x5ecf65){if(_0x5ecf65){return _0x5ecf65?{'count':_0x4a2583,'rows':_0x5ecf65}:null;}})[_0xee2f('0xf')](respondWithResult(_0x315311,null))['catch'](handleError(_0x315311,null));};exports['getWhatsappInteractions']=function(_0x557de2,_0x356cc2){var _0x92587={};var _0x52752d={};var _0xdf4793;var _0x4d14d5;return db[_0xee2f('0x33')][_0xee2f('0x8e')]({'where':{'id':_0x557de2[_0xee2f('0x52')]['id']}})[_0xee2f('0xf')](handleEntityNotFound(_0x356cc2,null))[_0xee2f('0xf')](function(_0x319219){if(_0x319219){_0xdf4793=_0x319219;_0x52752d[_0xee2f('0x47')]=_[_0xee2f('0x48')](db[_0xee2f('0xe2')][_0xee2f('0x34')]);_0x52752d['query']=_[_0xee2f('0x48')](_0x557de2['query']);_0x52752d[_0xee2f('0xbf')]=_[_0xee2f('0x4b')](_0x52752d[_0xee2f('0x47')],_0x52752d['query']);_0x92587[_0xee2f('0x3a')]=_[_0xee2f('0x4b')](_0x52752d[_0xee2f('0x47')],qs[_0xee2f('0x4c')](_0x557de2[_0xee2f('0x4a')][_0xee2f('0x4c')]));_0x92587[_0xee2f('0x3a')]=_0x92587[_0xee2f('0x3a')][_0xee2f('0x3f')]?_0x92587[_0xee2f('0x3a')]:_0x52752d[_0xee2f('0x47')];_0x92587[_0xee2f('0xcc')]=qs[_0xee2f('0xc0')](_0x557de2[_0xee2f('0x4a')]['sort']);_0x92587['where']=qs['filters'](_[_0xee2f('0xd0')](_0x557de2['query'],_0x52752d[_0xee2f('0xbf')]));if(_0x557de2['query']['filter']){_0x92587[_0xee2f('0xc1')]=_[_0xee2f('0x4e')](_0x92587[_0xee2f('0xc1')],{'$or':_[_0xee2f('0x2b')](_0x92587['attributes'],function(_0x59fb57){var _0x534410={};_0x534410[_0x59fb57]={'$like':'%'+_0x557de2[_0xee2f('0x4a')]['filter']+'%'};return _0x534410;})});}_0x92587=_[_0xee2f('0x4e')]({},_0x92587,_0x557de2['options']);return _0xdf4793[_0xee2f('0xe3')](_0x92587);}})[_0xee2f('0xf')](function(_0x4d5fb2){if(_0x4d5fb2){_0x4d14d5=_0x4d5fb2['length'];if(!_0x557de2[_0xee2f('0x4a')]['hasOwnProperty']('nolimit')){_0x92587[_0xee2f('0x1f')]=qs['limit'](_0x557de2[_0xee2f('0x4a')][_0xee2f('0x1f')]);_0x92587[_0xee2f('0x1d')]=qs[_0xee2f('0x1d')](_0x557de2['query'][_0xee2f('0x1d')]);}return _0xdf4793[_0xee2f('0xe3')](_0x92587);}})[_0xee2f('0xf')](function(_0xdc3f85){if(_0xdc3f85){return _0xdc3f85?{'count':_0x4d14d5,'rows':_0xdc3f85}:null;}})[_0xee2f('0xf')](respondWithResult(_0x356cc2,null))[_0xee2f('0x18')](handleError(_0x356cc2,null));};exports[_0xee2f('0xe4')]=function(_0x3ac766,_0x1b88f9,_0x5ac3d4){var _0x1acb51;var _0x1c9336;var _0x127f28;var _0x4586aa=!_[_0xee2f('0x5c')](_0x3ac766['params']['id'])?_0x3ac766[_0xee2f('0x52')]['id']:!_['isNil'](_0x3ac766[_0xee2f('0x70')]['id'])?_0x3ac766[_0xee2f('0x70')]['id']:null;return db[_0xee2f('0x33')][_0xee2f('0x2e')]({'where':{'id':_0x4586aa,'role':{'$or':[_0xee2f('0x71'),_0xee2f('0x70'),_0xee2f('0x29')]}},'attributes':['id',_0xee2f('0x2f'),_0xee2f('0xe5'),'mobile',_0xee2f('0x26'),'internal',_0xee2f('0x95')]})[_0xee2f('0xf')](function(_0x14fc3f){if(_0x14fc3f){if(_0x14fc3f[_0xee2f('0x26')]===_0xee2f('0x29')){_0x1acb51=_0x14fc3f;if(_0x3ac766[_0xee2f('0x50')][_0xee2f('0x96')]){_0x127f28=util[_0xee2f('0xa2')](_0xee2f('0xe6'),_0x1acb51[_0x3ac766['body'][_0xee2f('0x96')]]);}else if(_0x3ac766[_0xee2f('0x50')][_0xee2f('0xe7')]){_0x127f28=util[_0xee2f('0xa2')](_0xee2f('0xa3'),_0x3ac766[_0xee2f('0x50')][_0xee2f('0xe7')]);}else{_0x127f28=util['format']('SIP/%s',_0x1acb51[_0xee2f('0x2f')]);}socket['to'](util[_0xee2f('0xa2')](_0xee2f('0xe8'),_0x1acb51[_0xee2f('0x2f')]))[_0xee2f('0x9e')]('user:forcelogout',{'user':{'id':_0x1acb51['id'],'name':_0x1acb51[_0xee2f('0x2f')]},'ip':_0x3ac766[_0xee2f('0xe9')]['x-forwarded-for']||_0x3ac766['connection'][_0xee2f('0xea')]||_0x3ac766[_0xee2f('0xeb')][_0xee2f('0xea')]||_0x3ac766['connection'][_0xee2f('0xeb')]['remoteAddress']});return db['UserVoiceQueueRt'][_0xee2f('0x24')]({'where':{'membername':_0x1acb51[_0xee2f('0x2f')]},'individualHooks':!![]});}}else{throw new db[(_0xee2f('0x87'))][(_0xee2f('0x8c'))](_0xee2f('0xec'));}})['then'](function(){if(_0x1acb51){return _0x1acb51[_0xee2f('0xed')]({'raw':!![]});}})['then'](function(_0x37b9eb){if(_0x1acb51){var _0x26d7a9=[];if(_0x37b9eb){_0x1c9336=_0x37b9eb;if(_0x1c9336[_0xee2f('0x3f')]){for(var _0x398811=0x0;_0x398811<_0x1c9336[_0xee2f('0x3f')];_0x398811++){_0x26d7a9['push']({'membername':_0x1acb51[_0xee2f('0x2f')],'UserId':_0x1acb51['id'],'queue_name':_0x1c9336[_0x398811]['name'],'VoiceQueueId':_0x1c9336[_0x398811]['id'],'interface':_0x127f28,'paused':_0x1acb51[_0xee2f('0x95')]||![],'penalty':_0x1c9336[_0x398811][_0xee2f('0xee')]||0x0});}return BPromise[_0xee2f('0x80')](_0x26d7a9,function(_0x476903){return db[_0xee2f('0xa5')][_0xee2f('0xa6')](_0x476903);});}}}})['then'](function(){if(_0x1acb51){return db['MemberReport'][_0xee2f('0x3c')]({'where':{'membername':_0x1acb51[_0xee2f('0x2f')],'exitAt':null}});}})[_0xee2f('0xf')](function(_0x1c497b){if(_0x1acb51){var _0x3a0b56=[];_0x1c497b[_0xee2f('0xef')](function(_0x1f9321){_0x3a0b56[_0xee2f('0x3b')](_0x1f9321[_0xee2f('0x23')]({'exitAt':moment()[_0xee2f('0xa2')](_0xee2f('0xf0'))}));});return BPromise[_0xee2f('0x7f')](_0x3a0b56);}})['then'](function(){if(_0x1acb51){var _0x1f9e14=[];var _0x113f9e=[];var _0x127226=utils['getChannels']();var _0x31e967={'membername':_0x1acb51[_0xee2f('0x2f')],'interface':_0x127f28,'enterAt':moment()[_0xee2f('0xa2')]('YYYY-MM-DD\x20HH:mm:ss'),'role':_0x1acb51[_0xee2f('0x26')],'internal':_0x1acb51[_0xee2f('0x56')]};_0x127226[_0xee2f('0xef')](function(_0x5a9911){_0x1f9e14[_0xee2f('0x3b')](_[_0xee2f('0x4e')]({'channel':_0x5a9911,'type':_0xee2f('0xf1'),'data1':_0x3ac766[_0xee2f('0x50')]['device'],'data2':_0x127f28},_0x31e967));if(_0x1acb51[_0xee2f('0x95')]){_0x113f9e[_0xee2f('0x3b')](_[_0xee2f('0x4e')]({'channel':_0x5a9911,'type':_0xee2f('0xf2'),'data1':_0xee2f('0xf3')},_0x31e967));}});return db[_0xee2f('0xf4')][_0xee2f('0x7a')](_0x1f9e14[_0xee2f('0xf5')](_0x113f9e),{'individualHooks':!![]});}})[_0xee2f('0xf')](function(){if(_0x1acb51){return _0x1acb51['update']({'online':!![],'lastLoginAt':moment()[_0xee2f('0xa2')](_0xee2f('0xf0')),'voicePause':_0x1acb51['loginInPause']||![],'mailPause':_0x1acb51[_0xee2f('0x95')]||![],'chatPause':_0x1acb51[_0xee2f('0x95')]||![],'faxPause':_0x1acb51[_0xee2f('0x95')]||![],'smsPause':_0x1acb51['loginInPause']||![],'openchannelPause':_0x1acb51[_0xee2f('0x95')]||![],'whatsappPause':_0x1acb51[_0xee2f('0x95')]||![],'pauseType':_0x1acb51[_0xee2f('0x95')]?_0xee2f('0xf3'):null,'interface':_0x127f28,'lastPauseAt':moment()[_0xee2f('0xa2')](_0xee2f('0xf0'))});}})[_0xee2f('0xf')](function(_0x502492){if(_0x3ac766[_0xee2f('0xf6')]){return _0x5ac3d4();}else{return BPromise[_0xee2f('0xf7')](_0x502492)['then'](respondWithResult(_0x1b88f9,null));}})[_0xee2f('0x18')](handleError(_0x1b88f9,null));};exports['logout']=function(_0x4910ca,_0x58b6f8){var _0x5807a2;return db[_0xee2f('0x33')]['find']({'where':{'id':_0x4910ca['params']['id'],'role':_0xee2f('0x29')},'attributes':['id','name','role']})[_0xee2f('0xf')](handleEntityNotFound(_0x58b6f8,null))[_0xee2f('0xf')](function(_0x3a85b0){if(_0x3a85b0){_0x5807a2=_0x3a85b0;return db[_0xee2f('0xa5')][_0xee2f('0x24')]({'where':{'membername':_0x5807a2['name']},'individualHooks':!![]});}})[_0xee2f('0xf')](function(){return db[_0xee2f('0xf4')][_0xee2f('0x3c')]({'where':{'membername':_0x5807a2[_0xee2f('0x2f')],'exitAt':null}});})[_0xee2f('0xf')](function(_0x319580){var _0x1c1f1d=[];_0x319580['forEach'](function(_0x22ec32){_0x1c1f1d[_0xee2f('0x3b')](_0x22ec32[_0xee2f('0x23')]({'exitAt':moment()[_0xee2f('0xa2')](_0xee2f('0xf0'))}));});return BPromise[_0xee2f('0x7f')](_0x1c1f1d);})[_0xee2f('0xf')](function(){return _0x5807a2[_0xee2f('0x23')]({'online':![],'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![],'whatsappPause':![],'interface':null});})['then'](respondWithResult(_0x58b6f8,null))[_0xee2f('0x18')](handleError(_0x58b6f8,null));};exports['pause']=function(_0x19fc37,_0x689be5){var _0x428074;return db[_0xee2f('0xa5')][_0xee2f('0x23')]({'paused':0x1},{'where':{'UserId':_0x19fc37[_0xee2f('0x52')]['id']},'individualHooks':!![]})[_0xee2f('0xf')](function(){return db[_0xee2f('0x33')][_0xee2f('0x2e')]({'where':{'id':_0x19fc37[_0xee2f('0x52')]['id'],'role':'agent'},'attributes':['id','name',_0xee2f('0x26'),_0xee2f('0x56'),'interface']});})[_0xee2f('0xf')](handleEntityNotFound(_0x689be5,null))['then'](function(_0x4a7ab2){if(_0x4a7ab2){_0x428074=_0x4a7ab2;return respondWithRpcPromise(_0xee2f('0xf8'),_0xee2f('0xf9'),{'id':_0x428074['id'],'name':_0x428074[_0xee2f('0x2f')],'pause':!![]});}})[_0xee2f('0xf')](function(){if(_0x428074){return db[_0xee2f('0xf4')]['findAll']({'where':{'membername':_0x428074[_0xee2f('0x2f')],'type':'PAUSE','exitAt':null}});}})[_0xee2f('0xf')](function(_0x193209){if(_0x193209[_0xee2f('0x3f')]){var _0x26cec1=moment()[_0xee2f('0xa2')](_0xee2f('0xf0'));for(var _0x55d043=0x0,_0x172aa0=_0x193209[_0xee2f('0x3f')];_0x55d043<_0x172aa0;_0x55d043++){_0x193209[_0x55d043][_0xee2f('0xfa')]({'exitAt':_0x26cec1});}}})[_0xee2f('0xf')](function(){var _0xf8a3c3=[];var _0x28b7e2=utils[_0xee2f('0xfb')]();_0x28b7e2['forEach'](function(_0x224b67){_0xf8a3c3[_0xee2f('0x3b')]({'channel':_0x224b67,'membername':_0x428074['name'],'interface':_[_0xee2f('0x5c')](_0x428074[_0xee2f('0x96')])?util['format'](_0xee2f('0xa3'),_0x428074[_0xee2f('0x2f')]):_0x428074['interface'],'type':_0xee2f('0xf2'),'enterAt':moment()[_0xee2f('0xa2')]('YYYY-MM-DD\x20HH:mm:ss'),'data1':_0x19fc37[_0xee2f('0x50')][_0xee2f('0x36')]||_0xee2f('0xfc'),'role':_0x428074[_0xee2f('0x26')],'internal':_0x428074[_0xee2f('0x56')]});});return db[_0xee2f('0xf4')]['bulkCreate'](_0xf8a3c3,{'individualHooks':!![]});})[_0xee2f('0xf')](function(){return _0x428074[_0xee2f('0x23')]({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'whatsappPause':!![],'openchannelPause':!![],'pauseType':_0x19fc37['body'][_0xee2f('0x36')]||_0xee2f('0xfc'),'lastPauseAt':moment()[_0xee2f('0xa2')](_0xee2f('0xf0'))});})[_0xee2f('0xf')](respondWithResult(_0x689be5,null))[_0xee2f('0x18')](handleError(_0x689be5,null));};exports[_0xee2f('0xfd')]=function(_0x333942,_0x3a07eb){var _0x308211;return db[_0xee2f('0x33')][_0xee2f('0x2e')]({'where':{'id':_0x333942[_0xee2f('0x52')]['id']},'attributes':['id',_0xee2f('0x2f'),_0xee2f('0x26'),_0xee2f('0xa4'),_0xee2f('0xfe'),'chatPause',_0xee2f('0xff'),_0xee2f('0x100'),_0xee2f('0x101'),_0xee2f('0x102'),_0xee2f('0x103'),_0xee2f('0x104')]})['then'](handleEntityNotFound(_0x3a07eb,null))[_0xee2f('0xf')](function(_0x338686){if(_0x338686){_0x308211=_0x338686;if(_0x333942['body']['channel']&&!utils[_0xee2f('0xcb')](_0x333942[_0xee2f('0x50')][_0xee2f('0x93')])){throw new db[(_0xee2f('0x87'))][(_0xee2f('0x8c'))](_0xee2f('0x97'));}switch(_0x333942[_0xee2f('0x50')][_0xee2f('0x93')]){case _0xee2f('0xa0'):return respondWithRpcPromise('QueuePause',_0xee2f('0xfd'),{'id':_0x308211['id'],'name':_0x308211[_0xee2f('0x2f')],'pause':![]})['then'](function(){return db[_0xee2f('0xa5')][_0xee2f('0x23')]({'paused':0x0},{'where':{'UserId':_0x308211['id']},'individualHooks':!![]});})[_0xee2f('0xf')](function(){return db[_0xee2f('0xf4')][_0xee2f('0x2e')]({'where':{'channel':_0x333942[_0xee2f('0x50')][_0xee2f('0x93')],'membername':_0x308211[_0xee2f('0x2f')],'type':_0xee2f('0xf2'),'exitAt':null}});})[_0xee2f('0xf')](function(_0x337d57){if(_0x337d57){return _0x337d57['update']({'exitAt':moment()[_0xee2f('0xa2')](_0xee2f('0xf0')),'data2':_0xee2f('0x105')},{'individualHooks':!![]});}return null;})['then'](function(){return _0x308211[_0xee2f('0x23')]({'voicePause':![]});});case _0xee2f('0x44'):case _0xee2f('0x40'):case'fax':case _0xee2f('0x43'):case _0xee2f('0x46'):case _0xee2f('0x45'):return db[_0xee2f('0xf4')]['find']({'where':{'channel':_0x333942[_0xee2f('0x50')]['channel'],'membername':_0x308211[_0xee2f('0x2f')],'type':'PAUSE','exitAt':null}})[_0xee2f('0xf')](function(_0x440076){if(_0x440076){return _0x440076['update']({'exitAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'data2':'manual'},{'individualHooks':!![]});}return null;})[_0xee2f('0xf')](function(){var _0x3d299a={};_[_0xee2f('0x21')](_0x3d299a,util['format'](_0xee2f('0x106'),_0x333942['body'][_0xee2f('0x93')],_0xee2f('0x107')),![]);return _0x308211[_0xee2f('0x23')](_0x3d299a);});default:return respondWithRpcPromise(_0xee2f('0xf8'),_0xee2f('0xfd'),{'id':_0x308211['id'],'name':_0x308211[_0xee2f('0x2f')],'pause':![]})['then'](function(){return db[_0xee2f('0xa5')][_0xee2f('0x23')]({'paused':0x0},{'where':{'UserId':_0x308211['id']}});})[_0xee2f('0xf')](function(){return db['MemberReport'][_0xee2f('0x3c')]({'where':{'membername':_0x308211['name'],'type':_0xee2f('0xf2'),'exitAt':null}});})['then'](function(_0x5ea182){var _0x3de1e1=[];_0x5ea182[_0xee2f('0xef')](function(_0xdf565){_0x3de1e1['push'](_0xdf565['update']({'exitAt':moment()[_0xee2f('0xa2')]('YYYY-MM-DD\x20HH:mm:ss'),'data2':_0xee2f('0x105')}));});return BPromise[_0xee2f('0x7f')](_0x3de1e1);})[_0xee2f('0xf')](function(){return _0x308211['update']({'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'whatsappPause':![],'openchannelPause':![]});});}}})['then'](respondWithResult(_0x3a07eb,null))[_0xee2f('0x18')](handleError(_0x3a07eb,null));};exports[_0xee2f('0x108')]=function(_0x39ef68,_0x4cdb8f){var _0x173f28={};var _0x5325d3={};var _0x15c318;var _0x2ff80e;return db['User'][_0xee2f('0x8e')]({'where':{'id':_0x39ef68[_0xee2f('0x52')]['id']}})[_0xee2f('0xf')](handleEntityNotFound(_0x4cdb8f,null))[_0xee2f('0xf')](function(_0x4e4e0f){if(_0x4e4e0f){_0x15c318=_0x4e4e0f;_0x5325d3[_0xee2f('0x47')]=_[_0xee2f('0x48')](db[_0xee2f('0x109')][_0xee2f('0x34')]);_0x5325d3['query']=_[_0xee2f('0x48')](_0x39ef68[_0xee2f('0x4a')]);_0x5325d3[_0xee2f('0xbf')]=_[_0xee2f('0x4b')](_0x5325d3['model'],_0x5325d3['query']);_0x173f28[_0xee2f('0x3a')]=_[_0xee2f('0x4b')](_0x5325d3[_0xee2f('0x47')],qs[_0xee2f('0x4c')](_0x39ef68['query']['fields']));_0x173f28[_0xee2f('0x3a')]=_0x173f28['attributes']['length']?_0x173f28[_0xee2f('0x3a')]:_0x5325d3[_0xee2f('0x47')];_0x173f28[_0xee2f('0xcc')]=qs[_0xee2f('0xc0')](_0x39ef68[_0xee2f('0x4a')][_0xee2f('0xc0')]);_0x173f28[_0xee2f('0xc1')]=qs[_0xee2f('0xbf')](_[_0xee2f('0xd0')](_0x39ef68[_0xee2f('0x4a')],_0x5325d3[_0xee2f('0xbf')]));if(_0x39ef68[_0xee2f('0x4a')]['filter']){_0x173f28[_0xee2f('0xc1')]=_[_0xee2f('0x4e')](_0x173f28[_0xee2f('0xc1')],{'$or':_[_0xee2f('0x2b')](_0x173f28[_0xee2f('0x3a')],function(_0x11fda5){var _0x49e704={};_0x49e704[_0x11fda5]={'$like':'%'+_0x39ef68[_0xee2f('0x4a')]['filter']+'%'};return _0x49e704;})});}_0x173f28=_['merge']({},_0x173f28,_0x39ef68[_0xee2f('0xc3')]);return _0x15c318[_0xee2f('0x108')](_0x173f28);}})[_0xee2f('0xf')](function(_0x5ee8e4){if(_0x5ee8e4){_0x2ff80e=_0x5ee8e4[_0xee2f('0x3f')];if(!_0x39ef68[_0xee2f('0x4a')][_0xee2f('0xce')](_0xee2f('0xc9'))){_0x173f28['limit']=qs['limit'](_0x39ef68[_0xee2f('0x4a')][_0xee2f('0x1f')]);_0x173f28[_0xee2f('0x1d')]=qs[_0xee2f('0x1d')](_0x39ef68[_0xee2f('0x4a')][_0xee2f('0x1d')]);}return _0x15c318[_0xee2f('0x108')](_0x173f28);}})[_0xee2f('0xf')](function(_0x1daa87){if(_0x1daa87){return _0x1daa87?{'count':_0x2ff80e,'rows':_0x1daa87}:null;}})[_0xee2f('0xf')](respondWithResult(_0x4cdb8f,null))[_0xee2f('0x18')](handleError(_0x4cdb8f,null));};exports['addTeams']=function(_0x1b0e52,_0x24d542){return db[_0xee2f('0x33')][_0xee2f('0x2e')]({'where':{'id':_0x1b0e52[_0xee2f('0x52')]['id']}})[_0xee2f('0xf')](handleEntityNotFound(_0x24d542,null))[_0xee2f('0xf')](function(_0x242849){if(_0x242849){var _0x6d5fa3=_0x242849['get']({'plain':!![]});return _0x242849[_0xee2f('0x10a')](_0x1b0e52[_0xee2f('0x50')][_0xee2f('0x54')],_[_0xee2f('0x55')](_0x1b0e52[_0xee2f('0x50')],[_0xee2f('0x54'),'id'])||{})[_0xee2f('0xf')](function(){for(var _0x296892=0x0;_0x296892<_0x1b0e52['body'][_0xee2f('0x54')][_0xee2f('0x3f')];_0x296892++){var _0x259350=[];var _0x5e05b2={};db['Team']['findOne']({'where':{'id':_0x1b0e52[_0xee2f('0x50')]['ids'][_0x296892]}})[_0xee2f('0xf')](function(_0x2c19d7){_0x5e05b2=_0x2c19d7[_0xee2f('0x42')];_0x259350[_0xee2f('0x3b')](_0x2c19d7['getVoiceQueues']()[_0xee2f('0xf')](function(_0x48e5f5){for(var _0x2e28a=0x0;_0x2e28a<_0x48e5f5['length'];_0x2e28a++){_0x48e5f5[_0x2e28a][_0xee2f('0x10b')](_0xee2f('0x93'),'Voice');}return _0x48e5f5;}));_0x259350[_0xee2f('0x3b')](_0x2c19d7[_0xee2f('0x10c')]()[_0xee2f('0xf')](function(_0x3d5567){for(var _0x1ca3ba=0x0;_0x1ca3ba<_0x3d5567[_0xee2f('0x3f')];_0x1ca3ba++){_0x3d5567[_0x1ca3ba][_0xee2f('0x10b')]('channel','Chat');}return _0x3d5567;}));_0x259350[_0xee2f('0x3b')](_0x2c19d7['getMailQueues']()[_0xee2f('0xf')](function(_0x5332dc){for(var _0x484265=0x0;_0x484265<_0x5332dc[_0xee2f('0x3f')];_0x484265++){_0x5332dc[_0x484265][_0xee2f('0x10b')]('channel','Mail');}return _0x5332dc;}));_0x259350[_0xee2f('0x3b')](_0x2c19d7[_0xee2f('0x10d')]()[_0xee2f('0xf')](function(_0xce4953){for(var _0x2e1ca7=0x0;_0x2e1ca7<_0xce4953['length'];_0x2e1ca7++){_0xce4953[_0x2e1ca7][_0xee2f('0x10b')](_0xee2f('0x93'),_0xee2f('0x10e'));}return _0xce4953;}));_0x259350['push'](_0x2c19d7[_0xee2f('0x10f')]()['then'](function(_0x46496a){for(var _0x1f2ff0=0x0;_0x1f2ff0<_0x46496a[_0xee2f('0x3f')];_0x1f2ff0++){_0x46496a[_0x1f2ff0][_0xee2f('0x10b')](_0xee2f('0x93'),_0xee2f('0x110'));}return _0x46496a;}));_0x259350['push'](_0x2c19d7['getFaxQueues']()[_0xee2f('0xf')](function(_0x5b5e43){for(var _0xe9b2=0x0;_0xe9b2<_0x5b5e43[_0xee2f('0x3f')];_0xe9b2++){_0x5b5e43[_0xe9b2]['setDataValue'](_0xee2f('0x93'),_0xee2f('0x111'));}return _0x5b5e43;}));_0x259350[_0xee2f('0x3b')](_0x2c19d7[_0xee2f('0x112')]()[_0xee2f('0xf')](function(_0x48433b){for(var _0x5e8f35=0x0;_0x5e8f35<_0x48433b[_0xee2f('0x3f')];_0x5e8f35++){_0x48433b[_0x5e8f35]['setDataValue']('channel',_0xee2f('0x113'));}return _0x48433b;}));return BPromise[_0xee2f('0x7f')](_0x259350);})[_0xee2f('0xf')](function(_0xf1710f){var _0x4011af=_['flatten'](_0xf1710f);_0x259350=[];return db[_0xee2f('0x5e')][_0xee2f('0x114')](function(_0x1a105d){for(var _0x2dccaa=0x0;_0x2dccaa<_0x4011af[_0xee2f('0x3f')];_0x2dccaa++){_0x259350[_0xee2f('0x3b')](_0x4011af[_0x2dccaa][_0xee2f('0x115')](_0x6d5fa3['id']),{'transaction':_0x1a105d});}return BPromise[_0xee2f('0x7f')](_0x259350)['then'](function(){if(_0x6d5fa3[_0xee2f('0x94')]){return BPromise[_0xee2f('0x80')](_[_0xee2f('0xc2')](_0x4011af,function(_0x2ddc6b){return _0x2ddc6b[_0xee2f('0x116')](_0xee2f('0x93'))===_0xee2f('0x117');}),function(_0x11e1b0){return db['UserVoiceQueueRt'][_0xee2f('0xa6')]({'membername':_0x6d5fa3[_0xee2f('0x2f')],'UserId':_0x6d5fa3['id'],'queue_name':_0x11e1b0[_0xee2f('0x2f')],'VoiceQueueId':_0x11e1b0['id'],'interface':_[_0xee2f('0x5c')](_0x6d5fa3[_0xee2f('0x96')])?util[_0xee2f('0xa2')](_0xee2f('0xa3'),_0x6d5fa3[_0xee2f('0x2f')]):_0x6d5fa3['interface'],'paused':_0x6d5fa3[_0xee2f('0xa4')]||![],'penalty':_0x6d5fa3['penalty']},{'transaction':_0x1a105d});});}else{return;}})[_0xee2f('0xf')](function(){for(var _0xcb0b55=0x0;_0xcb0b55<_0x4011af[_0xee2f('0x3f')];_0xcb0b55++){var _0x37ace8=_0x4011af[_0xcb0b55]['getDataValue'](_0xee2f('0x93'));var _0x40bd0b=_0x37ace8+_0xee2f('0x9d');socket['emit'](_0xee2f('0x70')+_0x37ace8+_0xee2f('0x9f'),{'UserId':_0x6d5fa3['id'],['queueField']:_0x4011af[_0xcb0b55]['id']});}});});})[_0xee2f('0xf')](function(){db[_0xee2f('0x118')][_0xee2f('0x8e')]({'where':{'teamId':_0x5e05b2['id']}})[_0xee2f('0xf')](function(_0x5a4cb2){if(_0x5a4cb2){db['UserVoicePrefix'][_0xee2f('0x76')]({'UserId':_0x1b0e52[_0xee2f('0x52')]['id'],'VoicePrefixId':_0x5a4cb2[_0xee2f('0x119')]});}});});}});}})[_0xee2f('0xf')](respondWithStatusCode(_0x24d542,null))[_0xee2f('0x18')](handleError(_0x24d542,null));};exports[_0xee2f('0x11a')]=function(_0x29942a,_0xad050){return db[_0xee2f('0x33')]['findOne']({'where':{'id':_0x29942a[_0xee2f('0x52')]['id']}})[_0xee2f('0xf')](handleEntityNotFound(_0xad050,null))[_0xee2f('0xf')](function(_0x34f917){if(_0x34f917){var _0x39f215=_0x34f917['get']({'plain':!![]});var _0x4f337a=_0x29942a[_0xee2f('0x4a')][_0xee2f('0x54')];return _0x34f917[_0xee2f('0x11a')](_0x4f337a)[_0xee2f('0xf')](function(){for(var _0x154be7=0x0;_0x154be7<_0x4f337a['length'];_0x154be7++){var _0x12bd85=[];var _0x71b84b={};db[_0xee2f('0x109')][_0xee2f('0x8e')]({'where':{'id':_0x4f337a[_0x154be7]}})[_0xee2f('0xf')](function(_0x147c9a){_0x71b84b=_0x147c9a[_0xee2f('0x42')];_0x12bd85[_0xee2f('0x3b')](_0x147c9a[_0xee2f('0xed')]()['then'](function(_0x563eac){for(var _0xbf5226=0x0;_0xbf5226<_0x563eac['length'];_0xbf5226++){_0x563eac[_0xbf5226][_0xee2f('0x10b')]('channel',_0xee2f('0x117'));}return _0x563eac;}));_0x12bd85[_0xee2f('0x3b')](_0x147c9a[_0xee2f('0x10c')]()['then'](function(_0x63a843){for(var _0x2c3d34=0x0;_0x2c3d34<_0x63a843[_0xee2f('0x3f')];_0x2c3d34++){_0x63a843[_0x2c3d34][_0xee2f('0x10b')]('channel',_0xee2f('0x11b'));}return _0x63a843;}));_0x12bd85['push'](_0x147c9a[_0xee2f('0x11c')]()[_0xee2f('0xf')](function(_0x31df34){for(var _0x5db793=0x0;_0x5db793<_0x31df34[_0xee2f('0x3f')];_0x5db793++){_0x31df34[_0x5db793][_0xee2f('0x10b')](_0xee2f('0x93'),_0xee2f('0x11d'));}return _0x31df34;}));_0x12bd85['push'](_0x147c9a[_0xee2f('0x10d')]()['then'](function(_0x3c0025){for(var _0x48b1fb=0x0;_0x48b1fb<_0x3c0025[_0xee2f('0x3f')];_0x48b1fb++){_0x3c0025[_0x48b1fb][_0xee2f('0x10b')](_0xee2f('0x93'),'Sms');}return _0x3c0025;}));_0x12bd85[_0xee2f('0x3b')](_0x147c9a[_0xee2f('0x10f')]()[_0xee2f('0xf')](function(_0x16f397){for(var _0x135630=0x0;_0x135630<_0x16f397[_0xee2f('0x3f')];_0x135630++){_0x16f397[_0x135630][_0xee2f('0x10b')](_0xee2f('0x93'),_0xee2f('0x110'));}return _0x16f397;}));_0x12bd85[_0xee2f('0x3b')](_0x147c9a['getFaxQueues']()[_0xee2f('0xf')](function(_0x1f1519){for(var _0x1a3739=0x0;_0x1a3739<_0x1f1519[_0xee2f('0x3f')];_0x1a3739++){_0x1f1519[_0x1a3739][_0xee2f('0x10b')](_0xee2f('0x93'),'Fax');}return _0x1f1519;}));_0x12bd85[_0xee2f('0x3b')](_0x147c9a[_0xee2f('0x112')]()[_0xee2f('0xf')](function(_0x2704f7){for(var _0x4dc1a8=0x0;_0x4dc1a8<_0x2704f7[_0xee2f('0x3f')];_0x4dc1a8++){_0x2704f7[_0x4dc1a8][_0xee2f('0x10b')](_0xee2f('0x93'),'Openchannel');}return _0x2704f7;}));return BPromise[_0xee2f('0x7f')](_0x12bd85);})[_0xee2f('0xf')](function(_0x5ce582){var _0x3de2b0=_[_0xee2f('0x11e')](_0x5ce582);_0x12bd85=[];return db[_0xee2f('0x5e')]['transaction'](function(_0x3e522d){for(var _0x384c06=0x0;_0x384c06<_0x3de2b0[_0xee2f('0x3f')];_0x384c06++){_0x12bd85['push'](_0x3de2b0[_0x384c06][_0xee2f('0x11f')](_0x39f215['id']),{'transaction':_0x3e522d});}return BPromise[_0xee2f('0x7f')](_0x12bd85)[_0xee2f('0xf')](function(){if(_0x39f215[_0xee2f('0x94')]){return BPromise[_0xee2f('0x80')](_[_0xee2f('0xc2')](_0x3de2b0,function(_0x5d968e){return _0x5d968e[_0xee2f('0x116')](_0xee2f('0x93'))===_0xee2f('0x117');}),function(_0x304108){return db[_0xee2f('0xa5')][_0xee2f('0x24')]({'where':{'VoiceQueueId':_0x304108['id'],'UserId':_0x39f215['id']},'transaction':_0x3e522d});});}else{return;}})[_0xee2f('0xf')](function(){db[_0xee2f('0x118')][_0xee2f('0x8e')]({'where':{'teamId':_0x71b84b['id']}})[_0xee2f('0xf')](function(_0x3f2655){if(_0x3f2655){return db[_0xee2f('0x120')]['destroy']({'where':{'UserId':_0x39f215['id'],'VoicePrefixId':_0x3f2655[_0xee2f('0x42')][_0xee2f('0x119')]}});}});})[_0xee2f('0xf')](function(){for(var _0x19f0ae=0x0;_0x19f0ae<_0x3de2b0[_0xee2f('0x3f')];_0x19f0ae++){var _0x46af0c=_0x3de2b0[_0x19f0ae][_0xee2f('0x116')]('channel');var _0x690db4=_0x46af0c+_0xee2f('0x9d');socket[_0xee2f('0x9e')](_0xee2f('0x70')+_0x46af0c+_0xee2f('0xa9'),{'UserId':_0x39f215['id'],['queueField']:_0x3de2b0[_0x19f0ae]['id']});}});});});}});}})[_0xee2f('0xf')](respondWithStatusCode(_0xad050,null))[_0xee2f('0x18')](handleError(_0xad050,null));};exports[_0xee2f('0x121')]=function(_0x24e9a6,_0x47f6f4){var _0x3b1305={};var _0x429f25={};var _0x1b4f53;var _0x52852c;return db[_0xee2f('0x33')]['findOne']({'where':{'id':_0x24e9a6['params']['id']}})['then'](handleEntityNotFound(_0x47f6f4,null))[_0xee2f('0xf')](function(_0x38e2c7){if(_0x38e2c7){_0x1b4f53=_0x38e2c7;_0x429f25['model']=_['keys'](db['CmList'][_0xee2f('0x34')]);_0x429f25[_0xee2f('0x4a')]=_[_0xee2f('0x48')](_0x24e9a6[_0xee2f('0x4a')]);_0x429f25[_0xee2f('0xbf')]=_['intersection'](_0x429f25[_0xee2f('0x47')],_0x429f25[_0xee2f('0x4a')]);_0x3b1305[_0xee2f('0x3a')]=_[_0xee2f('0x4b')](_0x429f25[_0xee2f('0x47')],qs['fields'](_0x24e9a6['query']['fields']));_0x3b1305[_0xee2f('0x3a')]=_0x3b1305[_0xee2f('0x3a')]['length']?_0x3b1305[_0xee2f('0x3a')]:_0x429f25['model'];_0x3b1305['order']=qs[_0xee2f('0xc0')](_0x24e9a6[_0xee2f('0x4a')][_0xee2f('0xc0')]);_0x3b1305[_0xee2f('0xc1')]=qs[_0xee2f('0xbf')](_[_0xee2f('0xd0')](_0x24e9a6[_0xee2f('0x4a')],_0x429f25['filters']));if(_0x24e9a6[_0xee2f('0x4a')][_0xee2f('0xc2')]){_0x3b1305[_0xee2f('0xc1')]=_[_0xee2f('0x4e')](_0x3b1305[_0xee2f('0xc1')],{'$or':_[_0xee2f('0x2b')](_0x3b1305[_0xee2f('0x3a')],function(_0x28cb6c){var _0x288cdb={};_0x288cdb[_0x28cb6c]={'$like':'%'+_0x24e9a6[_0xee2f('0x4a')]['filter']+'%'};return _0x288cdb;})});}_0x3b1305=_[_0xee2f('0x4e')]({},_0x3b1305,_0x24e9a6['options']);return _0x1b4f53[_0xee2f('0x121')](_0x3b1305);}})[_0xee2f('0xf')](function(_0x44129){if(_0x44129){_0x52852c=_0x44129[_0xee2f('0x3f')];if(!_0x24e9a6[_0xee2f('0x4a')][_0xee2f('0xce')](_0xee2f('0xc9'))){_0x3b1305['limit']=qs['limit'](_0x24e9a6[_0xee2f('0x4a')][_0xee2f('0x1f')]);_0x3b1305[_0xee2f('0x1d')]=qs[_0xee2f('0x1d')](_0x24e9a6[_0xee2f('0x4a')]['offset']);}return _0x1b4f53[_0xee2f('0x121')](_0x3b1305);}})['then'](function(_0x27c595){if(_0x27c595){return _0x27c595?{'count':_0x52852c,'rows':_0x27c595}:null;}})[_0xee2f('0xf')](respondWithResult(_0x47f6f4,null))[_0xee2f('0x18')](handleError(_0x47f6f4,null));};exports[_0xee2f('0x122')]=function(_0x2febb2,_0x1c951e){var _0x341086={};var _0x2356c2={};var _0x431e4e;var _0x30c3f8;return db[_0xee2f('0x33')]['findOne']({'where':{'id':_0x2febb2[_0xee2f('0x52')]['id']}})[_0xee2f('0xf')](handleEntityNotFound(_0x1c951e,null))[_0xee2f('0xf')](function(_0x2c8c5e){if(_0x2c8c5e){_0x431e4e=_0x2c8c5e;_0x2356c2[_0xee2f('0x47')]=_[_0xee2f('0x48')](db[_0xee2f('0x33')][_0xee2f('0x34')]);_0x2356c2[_0xee2f('0x4a')]=_[_0xee2f('0x48')](_0x2febb2[_0xee2f('0x4a')]);_0x2356c2[_0xee2f('0xbf')]=_[_0xee2f('0x4b')](_0x2356c2[_0xee2f('0x47')],_0x2356c2[_0xee2f('0x4a')]);_0x341086[_0xee2f('0x3a')]=_['intersection'](_0x2356c2[_0xee2f('0x47')],qs['fields'](_0x2febb2[_0xee2f('0x4a')][_0xee2f('0x4c')]));_0x341086[_0xee2f('0x3a')]=_0x341086[_0xee2f('0x3a')][_0xee2f('0x3f')]?_0x341086[_0xee2f('0x3a')]:_0x2356c2['model'];_0x341086['order']=qs[_0xee2f('0xc0')](_0x2febb2[_0xee2f('0x4a')]['sort']);_0x341086[_0xee2f('0xc1')]=qs['filters'](_[_0xee2f('0xd0')](_0x2febb2['query'],_0x2356c2['filters']));if(_0x2febb2[_0xee2f('0x4a')][_0xee2f('0xc2')]){_0x341086[_0xee2f('0xc1')]=_['merge'](_0x341086['where'],{'$or':_[_0xee2f('0x2b')](_0x341086['attributes'],function(_0x2ce692){var _0x12fe93={};_0x12fe93[_0x2ce692]={'$like':'%'+_0x2febb2['query']['filter']+'%'};return _0x12fe93;})});}_0x341086[_0xee2f('0x47')]=db[_0xee2f('0x33')];_0x341086['as']='Agents';_0x341086=_[_0xee2f('0x4e')]({},_0x341086,_0x2febb2['options']);return _0x431e4e[_0xee2f('0xed')]({'include':[_0x341086]});}})[_0xee2f('0xf')](function(_0x53055f){if(_0x53055f){var _0x4a09fb={},_0x162b77=[],_0x51be84=0x0;for(var _0x4d00f3=0x0;_0x4d00f3<_0x53055f[_0xee2f('0x3f')];_0x4d00f3+=0x1){for(var _0x4ee50e=0x0,_0x140131;_0x4ee50e<_0x53055f[_0x4d00f3]['Agents'][_0xee2f('0x3f')];_0x4ee50e+=0x1){_0x140131=_0x53055f[_0x4d00f3][_0xee2f('0x28')][_0x4ee50e][_0xee2f('0x25')]({'plain':!![]});_0x4a09fb[_0x140131['id']]=_0x140131;}}_0x4a09fb=_[_0xee2f('0x123')](_0x4a09fb);for(var _0x10172c=qs['offset'](_0x2febb2[_0xee2f('0x4a')][_0xee2f('0x1d')]);_0x10172c<_0x4a09fb[_0xee2f('0x3f')]&&_0x162b77[_0xee2f('0x3f')]<qs[_0xee2f('0x1f')](_0x2febb2[_0xee2f('0x4a')][_0xee2f('0x1f')]);_0x10172c+=0x1){if(_0x4a09fb[_0x10172c]){_0x162b77[_0xee2f('0x3b')](_0x4a09fb[_0x10172c]);}}return{'count':_0x4a09fb[_0xee2f('0x3f')],'rows':_0x162b77};}})[_0xee2f('0xf')](respondWithResult(_0x1c951e,null))[_0xee2f('0x18')](handleError(_0x1c951e,null));};exports['destroy']=function(_0x22cbdc,_0x1bf951){if(_0x22cbdc[_0xee2f('0x70')]['id']==_0x22cbdc[_0xee2f('0x52')]['id']){return _0x1bf951['status'](0x1f4)['send']({'message':_0xee2f('0x124')});}return db['User']['find']({'where':{'id':_0x22cbdc[_0xee2f('0x52')]['id']}})[_0xee2f('0xf')](handleEntityNotFound(_0x1bf951,null))[_0xee2f('0xf')](removeEntity(_0x1bf951,null))[_0xee2f('0x18')](handleError(_0x1bf951,null));};exports[_0xee2f('0x125')]=function(_0x1015a1,_0xd3a98b){return db['User']['find']({'where':{'id':_0x1015a1['params']['id']}})[_0xee2f('0xf')](handleEntityNotFound(_0xd3a98b,null))['then'](function(_0x2136e7){if(_0x2136e7){return _0x2136e7[_0xee2f('0x125')](_0x1015a1[_0xee2f('0x50')][_0xee2f('0x54')],_[_0xee2f('0x55')](_0x1015a1[_0xee2f('0x50')],[_0xee2f('0x54'),'id'])||{})[_0xee2f('0x9c')](function(){for(var _0x344c2d=0x0;_0x344c2d<_0x1015a1[_0xee2f('0x50')][_0xee2f('0x54')]['length'];_0x344c2d+=0x1){socket[_0xee2f('0x9e')](_0xee2f('0x126'),{'ChatInteractionId':Number(_0x1015a1[_0xee2f('0x50')][_0xee2f('0x54')][_0x344c2d]),'UserId':Number(_0x1015a1['params']['id'])});}return _0x1015a1[_0xee2f('0x50')][_0xee2f('0x54')];});}})[_0xee2f('0xf')](respondWithResult(_0xd3a98b,null))['catch'](handleError(_0xd3a98b,null));};exports[_0xee2f('0x127')]=function(_0x5d3862,_0x42cc7d){return db[_0xee2f('0x33')][_0xee2f('0x2e')]({'where':{'id':_0x5d3862[_0xee2f('0x52')]['id']}})['then'](handleEntityNotFound(_0x42cc7d,null))[_0xee2f('0xf')](function(_0x591e80){if(_0x591e80){return _0x591e80[_0xee2f('0x127')](_0x5d3862['query'][_0xee2f('0x54')])[_0xee2f('0xf')](function(){if(_[_0xee2f('0xa8')](_0x5d3862[_0xee2f('0x4a')][_0xee2f('0x54')])){for(var _0x13ebd2=0x0;_0x13ebd2<_0x5d3862[_0xee2f('0x4a')][_0xee2f('0x54')][_0xee2f('0x3f')];_0x13ebd2+=0x1){socket[_0xee2f('0x9e')](_0xee2f('0x128'),{'ChatInteractionId':Number(_0x5d3862['query'][_0xee2f('0x54')][_0x13ebd2]),'UserId':Number(_0x5d3862['params']['id'])});}}else{socket['emit'](_0xee2f('0x128'),{'ChatInteractionId':Number(_0x5d3862['query'][_0xee2f('0x54')]),'UserId':Number(_0x5d3862[_0xee2f('0x52')]['id'])});}});}})[_0xee2f('0xf')](respondWithStatusCode(_0x42cc7d,null))['catch'](handleError(_0x42cc7d,null));};exports['addMailInteractions']=function(_0x292329,_0x340e5f){return db[_0xee2f('0x33')][_0xee2f('0x2e')]({'where':{'id':_0x292329[_0xee2f('0x52')]['id']}})[_0xee2f('0xf')](handleEntityNotFound(_0x340e5f,null))[_0xee2f('0xf')](function(_0x4341e6){if(_0x4341e6){return _0x4341e6[_0xee2f('0x129')](_0x292329[_0xee2f('0x50')]['ids'],_[_0xee2f('0x55')](_0x292329['body'],[_0xee2f('0x54'),'id'])||{})['spread'](function(){for(var _0x254f87=0x0;_0x254f87<_0x292329[_0xee2f('0x50')][_0xee2f('0x54')][_0xee2f('0x3f')];_0x254f87+=0x1){socket['emit'](_0xee2f('0x12a'),{'MailInteractionId':Number(_0x292329[_0xee2f('0x50')][_0xee2f('0x54')][_0x254f87]),'UserId':Number(_0x292329[_0xee2f('0x52')]['id'])});}return _0x292329['body']['ids'];});}})[_0xee2f('0xf')](respondWithResult(_0x340e5f,null))['catch'](handleError(_0x340e5f,null));};exports[_0xee2f('0x12b')]=function(_0x2be2c2,_0x42a400){return db[_0xee2f('0x33')][_0xee2f('0x2e')]({'where':{'id':_0x2be2c2['params']['id']}})[_0xee2f('0xf')](handleEntityNotFound(_0x42a400,null))[_0xee2f('0xf')](function(_0x3dbb84){if(_0x3dbb84){return _0x3dbb84[_0xee2f('0x12b')](_0x2be2c2[_0xee2f('0x4a')][_0xee2f('0x54')])['then'](function(){if(_[_0xee2f('0xa8')](_0x2be2c2[_0xee2f('0x4a')][_0xee2f('0x54')])){for(var _0x1353c1=0x0;_0x1353c1<_0x2be2c2['query'][_0xee2f('0x54')][_0xee2f('0x3f')];_0x1353c1+=0x1){socket['emit'](_0xee2f('0x12c'),{'MailInteractionId':Number(_0x2be2c2['query'][_0xee2f('0x54')][_0x1353c1]),'UserId':Number(_0x2be2c2[_0xee2f('0x52')]['id'])});}}else{socket[_0xee2f('0x9e')](_0xee2f('0x12c'),{'MailInteractionId':Number(_0x2be2c2[_0xee2f('0x4a')][_0xee2f('0x54')]),'UserId':Number(_0x2be2c2[_0xee2f('0x52')]['id'])});}});}})[_0xee2f('0xf')](respondWithStatusCode(_0x42a400,null))[_0xee2f('0x18')](handleError(_0x42a400,null));};exports[_0xee2f('0x12d')]=function(_0x12a803,_0x257482){return db[_0xee2f('0x33')][_0xee2f('0x2e')]({'where':{'id':_0x12a803['params']['id']}})[_0xee2f('0xf')](handleEntityNotFound(_0x257482,null))[_0xee2f('0xf')](function(_0x3719af){if(_0x3719af){return _0x3719af['addFaxInteractions'](_0x12a803[_0xee2f('0x50')][_0xee2f('0x54')],_['omit'](_0x12a803[_0xee2f('0x50')],[_0xee2f('0x54'),'id'])||{})[_0xee2f('0x9c')](function(){for(var _0x2c6296=0x0;_0x2c6296<_0x12a803[_0xee2f('0x50')][_0xee2f('0x54')]['length'];_0x2c6296+=0x1){socket[_0xee2f('0x9e')](_0xee2f('0x12e'),{'FaxInteractionId':Number(_0x12a803[_0xee2f('0x50')][_0xee2f('0x54')][_0x2c6296]),'UserId':Number(_0x12a803['params']['id'])});}return _0x12a803['body'][_0xee2f('0x54')];});}})['then'](respondWithResult(_0x257482,null))['catch'](handleError(_0x257482,null));};exports['removeFaxInteractions']=function(_0x2a7d6a,_0x553dc9){return db[_0xee2f('0x33')][_0xee2f('0x2e')]({'where':{'id':_0x2a7d6a[_0xee2f('0x52')]['id']}})[_0xee2f('0xf')](handleEntityNotFound(_0x553dc9,null))[_0xee2f('0xf')](function(_0x4f4654){if(_0x4f4654){return _0x4f4654[_0xee2f('0x12f')](_0x2a7d6a[_0xee2f('0x4a')][_0xee2f('0x54')])['then'](function(){if(_[_0xee2f('0xa8')](_0x2a7d6a[_0xee2f('0x4a')][_0xee2f('0x54')])){for(var _0x237734=0x0;_0x237734<_0x2a7d6a[_0xee2f('0x4a')][_0xee2f('0x54')][_0xee2f('0x3f')];_0x237734+=0x1){socket[_0xee2f('0x9e')](_0xee2f('0x130'),{'FaxInteractionId':Number(_0x2a7d6a[_0xee2f('0x4a')][_0xee2f('0x54')][_0x237734]),'UserId':Number(_0x2a7d6a[_0xee2f('0x52')]['id'])});}}else{socket['emit'](_0xee2f('0x130'),{'FaxInteractionId':Number(_0x2a7d6a[_0xee2f('0x4a')][_0xee2f('0x54')]),'UserId':Number(_0x2a7d6a[_0xee2f('0x52')]['id'])});}});}})[_0xee2f('0xf')](respondWithStatusCode(_0x553dc9,null))[_0xee2f('0x18')](handleError(_0x553dc9,null));};exports[_0xee2f('0x131')]=function(_0x4a1687,_0x338e06){return db[_0xee2f('0x33')][_0xee2f('0x2e')]({'where':{'id':_0x4a1687[_0xee2f('0x52')]['id']}})[_0xee2f('0xf')](handleEntityNotFound(_0x338e06,null))[_0xee2f('0xf')](function(_0x4b5061){if(_0x4b5061){return _0x4b5061[_0xee2f('0x131')](_0x4a1687[_0xee2f('0x50')][_0xee2f('0x54')],_[_0xee2f('0x55')](_0x4a1687[_0xee2f('0x50')],[_0xee2f('0x54'),'id'])||{})[_0xee2f('0x9c')](function(){for(var _0x1e2e4e=0x0;_0x1e2e4e<_0x4a1687[_0xee2f('0x50')]['ids'][_0xee2f('0x3f')];_0x1e2e4e+=0x1){socket['emit'](_0xee2f('0x132'),{'SmsInteractionId':Number(_0x4a1687['body']['ids'][_0x1e2e4e]),'UserId':Number(_0x4a1687[_0xee2f('0x52')]['id'])});}return _0x4a1687[_0xee2f('0x50')]['ids'];});}})['then'](respondWithResult(_0x338e06,null))[_0xee2f('0x18')](handleError(_0x338e06,null));};exports['removeSmsInteractions']=function(_0x2d1f66,_0x486aab){return db['User'][_0xee2f('0x2e')]({'where':{'id':_0x2d1f66['params']['id']}})[_0xee2f('0xf')](handleEntityNotFound(_0x486aab,null))[_0xee2f('0xf')](function(_0x176d4c){if(_0x176d4c){return _0x176d4c['removeSmsInteractions'](_0x2d1f66[_0xee2f('0x4a')][_0xee2f('0x54')])['then'](function(){if(_[_0xee2f('0xa8')](_0x2d1f66[_0xee2f('0x4a')][_0xee2f('0x54')])){for(var _0xee2846=0x0;_0xee2846<_0x2d1f66[_0xee2f('0x4a')]['ids'][_0xee2f('0x3f')];_0xee2846+=0x1){socket[_0xee2f('0x9e')]('user_has_sms_interactions:remove',{'SmsInteractionId':Number(_0x2d1f66[_0xee2f('0x4a')][_0xee2f('0x54')][_0xee2846]),'UserId':Number(_0x2d1f66[_0xee2f('0x52')]['id'])});}}else{socket[_0xee2f('0x9e')](_0xee2f('0x133'),{'SmsInteractionId':Number(_0x2d1f66[_0xee2f('0x4a')][_0xee2f('0x54')]),'UserId':Number(_0x2d1f66[_0xee2f('0x52')]['id'])});}});}})[_0xee2f('0xf')](respondWithStatusCode(_0x486aab,null))[_0xee2f('0x18')](handleError(_0x486aab,null));};exports[_0xee2f('0x134')]=function(_0x57afba,_0x4c9418){return db[_0xee2f('0x33')][_0xee2f('0x2e')]({'where':{'id':_0x57afba[_0xee2f('0x52')]['id']}})['then'](handleEntityNotFound(_0x4c9418,null))['then'](function(_0x2bb1d5){if(_0x2bb1d5){return _0x2bb1d5[_0xee2f('0x134')](_0x57afba[_0xee2f('0x50')]['ids'],_[_0xee2f('0x55')](_0x57afba['body'],[_0xee2f('0x54'),'id'])||{})[_0xee2f('0x9c')](function(){for(var _0xf4fff5=0x0;_0xf4fff5<_0x57afba[_0xee2f('0x50')]['ids'][_0xee2f('0x3f')];_0xf4fff5+=0x1){socket[_0xee2f('0x9e')]('user_has_openchannel_interactions:save',{'OpenchannelInteractionId':Number(_0x57afba[_0xee2f('0x50')]['ids'][_0xf4fff5]),'UserId':Number(_0x57afba[_0xee2f('0x52')]['id'])});}return _0x57afba[_0xee2f('0x50')]['ids'];});}})[_0xee2f('0xf')](respondWithResult(_0x4c9418,null))[_0xee2f('0x18')](handleError(_0x4c9418,null));};exports[_0xee2f('0x135')]=function(_0x405475,_0x416a5a){return db['User'][_0xee2f('0x2e')]({'where':{'id':_0x405475['params']['id']}})[_0xee2f('0xf')](handleEntityNotFound(_0x416a5a,null))['then'](function(_0x1a5262){if(_0x1a5262){return _0x1a5262[_0xee2f('0x135')](_0x405475[_0xee2f('0x4a')]['ids'])[_0xee2f('0xf')](function(){if(_[_0xee2f('0xa8')](_0x405475[_0xee2f('0x4a')][_0xee2f('0x54')])){for(var _0x3511ad=0x0;_0x3511ad<_0x405475[_0xee2f('0x4a')][_0xee2f('0x54')][_0xee2f('0x3f')];_0x3511ad+=0x1){socket[_0xee2f('0x9e')](_0xee2f('0x136'),{'OpenchannelInteractionId':Number(_0x405475['query'][_0xee2f('0x54')][_0x3511ad]),'UserId':Number(_0x405475[_0xee2f('0x52')]['id'])});}}else{socket['emit']('user_has_openchannel_interactions:remove',{'OpenchannelInteractionId':Number(_0x405475[_0xee2f('0x4a')][_0xee2f('0x54')]),'UserId':Number(_0x405475[_0xee2f('0x52')]['id'])});}});}})[_0xee2f('0xf')](respondWithStatusCode(_0x416a5a,null))[_0xee2f('0x18')](handleError(_0x416a5a,null));};exports[_0xee2f('0x137')]=function(_0x5807ab,_0x495a8e){return db['User']['find']({'where':{'id':_0x5807ab[_0xee2f('0x52')]['id']}})[_0xee2f('0xf')](handleEntityNotFound(_0x495a8e,null))['then'](function(_0x241122){if(_0x241122){return _0x241122[_0xee2f('0x137')](_0x5807ab[_0xee2f('0x50')][_0xee2f('0x54')],_[_0xee2f('0x55')](_0x5807ab[_0xee2f('0x50')],[_0xee2f('0x54'),'id'])||{})[_0xee2f('0x9c')](function(){for(var _0x35f0c3=0x0;_0x35f0c3<_0x5807ab[_0xee2f('0x50')][_0xee2f('0x54')]['length'];_0x35f0c3+=0x1){socket[_0xee2f('0x9e')](_0xee2f('0x138'),{'WhatsappInteractionId':Number(_0x5807ab[_0xee2f('0x50')][_0xee2f('0x54')][_0x35f0c3]),'UserId':Number(_0x5807ab[_0xee2f('0x52')]['id'])});}return _0x5807ab['body'][_0xee2f('0x54')];});}})['then'](respondWithResult(_0x495a8e,null))[_0xee2f('0x18')](handleError(_0x495a8e,null));};exports[_0xee2f('0x139')]=function(_0x22ab72,_0x3fc9e5){return db[_0xee2f('0x33')][_0xee2f('0x2e')]({'where':{'id':_0x22ab72[_0xee2f('0x52')]['id']}})[_0xee2f('0xf')](handleEntityNotFound(_0x3fc9e5,null))[_0xee2f('0xf')](function(_0x509763){if(_0x509763){return _0x509763[_0xee2f('0x139')](_0x22ab72['query'][_0xee2f('0x54')]);}})[_0xee2f('0xf')](respondWithStatusCode(_0x3fc9e5,null))['catch'](handleError(_0x3fc9e5,null));};exports[_0xee2f('0x13a')]=function(_0x4e4878,_0x436af9){var _0x13a596={};var _0x478f83={};var _0x4ad437;var _0x7042a9;return db[_0xee2f('0x33')]['findOne']({'where':{'id':_0x4e4878['params']['id']}})[_0xee2f('0xf')](handleEntityNotFound(_0x436af9,null))[_0xee2f('0xf')](function(_0x254caf){if(_0x254caf){_0x4ad437=_0x254caf;_0x478f83[_0xee2f('0x47')]=_[_0xee2f('0x48')](db[_0xee2f('0x13b')][_0xee2f('0x34')]);_0x478f83[_0xee2f('0x4a')]=_[_0xee2f('0x48')](_0x4e4878[_0xee2f('0x4a')]);_0x478f83[_0xee2f('0xbf')]=_[_0xee2f('0x4b')](_0x478f83['model'],_0x478f83['query']);_0x13a596['attributes']=_[_0xee2f('0x4b')](_0x478f83[_0xee2f('0x47')],qs[_0xee2f('0x4c')](_0x4e4878[_0xee2f('0x4a')][_0xee2f('0x4c')]));_0x13a596[_0xee2f('0x3a')]=_0x13a596[_0xee2f('0x3a')][_0xee2f('0x3f')]?_0x13a596['attributes']:_0x478f83[_0xee2f('0x47')];_0x13a596[_0xee2f('0xcc')]=qs[_0xee2f('0xc0')](_0x4e4878[_0xee2f('0x4a')][_0xee2f('0xc0')]);_0x13a596['where']=qs[_0xee2f('0xbf')](_[_0xee2f('0xd0')](_0x4e4878[_0xee2f('0x4a')],_0x478f83['filters']));if(_0x4e4878[_0xee2f('0x4a')][_0xee2f('0xc2')]){_0x13a596[_0xee2f('0xc1')]=_['merge'](_0x13a596[_0xee2f('0xc1')],{'$or':_['map'](_0x13a596[_0xee2f('0x3a')],function(_0x238162){var _0x51d47c={};_0x51d47c[_0x238162]={'$like':'%'+_0x4e4878[_0xee2f('0x4a')][_0xee2f('0xc2')]+'%'};return _0x51d47c;})});}_0x13a596=_['merge']({},_0x13a596,_0x4e4878[_0xee2f('0xc3')]);return _0x4ad437[_0xee2f('0x13a')](_0x13a596);}})[_0xee2f('0xf')](function(_0x1a78e6){if(_0x1a78e6){_0x7042a9=_0x1a78e6[_0xee2f('0x3f')];if(!_0x4e4878[_0xee2f('0x4a')][_0xee2f('0xce')](_0xee2f('0xc9'))){_0x13a596[_0xee2f('0x1f')]=qs[_0xee2f('0x1f')](_0x4e4878[_0xee2f('0x4a')][_0xee2f('0x1f')]);_0x13a596['offset']=qs[_0xee2f('0x1d')](_0x4e4878['query'][_0xee2f('0x1d')]);}return _0x4ad437['getVoicePrefixes'](_0x13a596);}})[_0xee2f('0xf')](function(_0x1d5f44){if(_0x1d5f44){return _0x1d5f44?{'count':_0x7042a9,'rows':_0x1d5f44}:null;}})[_0xee2f('0xf')](respondWithResult(_0x436af9,null))['catch'](handleError(_0x436af9,null));};exports[_0xee2f('0x13c')]=function(_0x1a4f28,_0x5ad698){var _0x23ea3f={};var _0x154fee={};var _0x30a5dd;var _0x29659b;return db[_0xee2f('0x33')][_0xee2f('0x8e')]({'where':{'id':_0x1a4f28[_0xee2f('0x52')]['id']}})[_0xee2f('0xf')](handleEntityNotFound(_0x5ad698,null))['then'](function(_0x5bea69){if(_0x5bea69){_0x30a5dd=_0x5bea69;_0x154fee[_0xee2f('0x47')]=_['keys'](db[_0xee2f('0x13d')][_0xee2f('0x34')]);_0x154fee[_0xee2f('0x4a')]=_[_0xee2f('0x48')](_0x1a4f28['query']);_0x154fee[_0xee2f('0xbf')]=_[_0xee2f('0x4b')](_0x154fee[_0xee2f('0x47')],_0x154fee['query']);_0x23ea3f[_0xee2f('0x3a')]=_[_0xee2f('0x4b')](_0x154fee['model'],qs['fields'](_0x1a4f28['query'][_0xee2f('0x4c')]));_0x23ea3f[_0xee2f('0x3a')]=_0x23ea3f[_0xee2f('0x3a')][_0xee2f('0x3f')]?_0x23ea3f[_0xee2f('0x3a')]:_0x154fee[_0xee2f('0x47')];_0x23ea3f[_0xee2f('0xcc')]=qs[_0xee2f('0xc0')](_0x1a4f28['query'][_0xee2f('0xc0')]);_0x23ea3f['where']=qs[_0xee2f('0xbf')](_[_0xee2f('0xd0')](_0x1a4f28['query'],_0x154fee[_0xee2f('0xbf')]));if(_0x1a4f28[_0xee2f('0x4a')][_0xee2f('0xc2')]){_0x23ea3f[_0xee2f('0xc1')]=_[_0xee2f('0x4e')](_0x23ea3f[_0xee2f('0xc1')],{'$or':_[_0xee2f('0x2b')](_0x23ea3f[_0xee2f('0x3a')],function(_0x3c2176){var _0x1f517a={};_0x1f517a[_0x3c2176]={'$like':'%'+_0x1a4f28[_0xee2f('0x4a')][_0xee2f('0xc2')]+'%'};return _0x1f517a;})});}_0x23ea3f=_[_0xee2f('0x4e')]({},_0x23ea3f,_0x1a4f28['options']);return _0x30a5dd['getFaxAccounts'](_0x23ea3f);}})['then'](function(_0x149df9){if(_0x149df9){_0x29659b=_0x149df9[_0xee2f('0x3f')];if(!_0x1a4f28['query'][_0xee2f('0xce')](_0xee2f('0xc9'))){_0x23ea3f['limit']=qs['limit'](_0x1a4f28[_0xee2f('0x4a')][_0xee2f('0x1f')]);_0x23ea3f[_0xee2f('0x1d')]=qs[_0xee2f('0x1d')](_0x1a4f28['query']['offset']);}return _0x30a5dd[_0xee2f('0x13c')](_0x23ea3f);}})['then'](function(_0x4e31a1){if(_0x4e31a1){return _0x4e31a1?{'count':_0x29659b,'rows':_0x4e31a1}:null;}})['then'](respondWithResult(_0x5ad698,null))[_0xee2f('0x18')](handleError(_0x5ad698,null));};exports['addFaxAccounts']=function(_0x3fc7f9,_0x4d50fa){return db['User'][_0xee2f('0x2e')]({'where':{'id':_0x3fc7f9[_0xee2f('0x52')]['id']}})[_0xee2f('0xf')](handleEntityNotFound(_0x4d50fa,null))['then'](function(_0x23ac2b){if(_0x23ac2b){return _0x23ac2b[_0xee2f('0x13e')](_0x3fc7f9[_0xee2f('0x50')][_0xee2f('0x54')],_['omit'](_0x3fc7f9[_0xee2f('0x50')],['ids','id'])||{});}})[_0xee2f('0xf')](respondWithResult(_0x4d50fa,null))[_0xee2f('0x18')](handleError(_0x4d50fa,null));};exports[_0xee2f('0x13f')]=function(_0x58e943,_0x58dacf){return db[_0xee2f('0x33')][_0xee2f('0x2e')]({'where':{'id':_0x58e943[_0xee2f('0x52')]['id']}})['then'](handleEntityNotFound(_0x58dacf,null))[_0xee2f('0xf')](function(_0xda70b8){if(_0xda70b8){return _0xda70b8[_0xee2f('0x13f')](_0x58e943[_0xee2f('0x4a')][_0xee2f('0x54')]);}})['then'](respondWithStatusCode(_0x58dacf,null))[_0xee2f('0x18')](handleError(_0x58dacf,null));};exports[_0xee2f('0x140')]=function(_0xcec946,_0x16c529){var _0x3223e9={};var _0x3549b5={};var _0x20c52d;var _0x1f76be;return db[_0xee2f('0x33')][_0xee2f('0x8e')]({'where':{'id':_0xcec946['params']['id']}})[_0xee2f('0xf')](handleEntityNotFound(_0x16c529,null))[_0xee2f('0xf')](function(_0x3db6c8){if(_0x3db6c8){_0x20c52d=_0x3db6c8;_0x3549b5['model']=_[_0xee2f('0x48')](db[_0xee2f('0x141')][_0xee2f('0x34')]);_0x3549b5['query']=_[_0xee2f('0x48')](_0xcec946['query']);_0x3549b5[_0xee2f('0xbf')]=_['intersection'](_0x3549b5['model'],_0x3549b5[_0xee2f('0x4a')]);_0x3223e9['attributes']=_[_0xee2f('0x4b')](_0x3549b5[_0xee2f('0x47')],qs[_0xee2f('0x4c')](_0xcec946['query'][_0xee2f('0x4c')]));_0x3223e9[_0xee2f('0x3a')]=_0x3223e9[_0xee2f('0x3a')]['length']?_0x3223e9[_0xee2f('0x3a')]:_0x3549b5[_0xee2f('0x47')];_0x3223e9[_0xee2f('0xcc')]=qs[_0xee2f('0xc0')](_0xcec946[_0xee2f('0x4a')][_0xee2f('0xc0')]);_0x3223e9[_0xee2f('0xc1')]=qs[_0xee2f('0xbf')](_[_0xee2f('0xd0')](_0xcec946[_0xee2f('0x4a')],_0x3549b5['filters']));if(_0xcec946['query'][_0xee2f('0xc2')]){_0x3223e9[_0xee2f('0xc1')]=_['merge'](_0x3223e9['where'],{'$or':_[_0xee2f('0x2b')](_0x3223e9[_0xee2f('0x3a')],function(_0x5f387a){var _0x4eebce={};_0x4eebce[_0x5f387a]={'$like':'%'+_0xcec946[_0xee2f('0x4a')][_0xee2f('0xc2')]+'%'};return _0x4eebce;})});}_0x3223e9=_['merge']({},_0x3223e9,_0xcec946[_0xee2f('0xc3')]);return _0x20c52d['getMailAccounts'](_0x3223e9);}})['then'](function(_0xd6c5b1){if(_0xd6c5b1){_0x1f76be=_0xd6c5b1[_0xee2f('0x3f')];if(!_0xcec946[_0xee2f('0x4a')][_0xee2f('0xce')](_0xee2f('0xc9'))){_0x3223e9[_0xee2f('0x1f')]=qs[_0xee2f('0x1f')](_0xcec946['query'][_0xee2f('0x1f')]);_0x3223e9[_0xee2f('0x1d')]=qs['offset'](_0xcec946[_0xee2f('0x4a')][_0xee2f('0x1d')]);}return _0x20c52d[_0xee2f('0x140')](_0x3223e9);}})[_0xee2f('0xf')](function(_0xc7a8fe){if(_0xc7a8fe){return _0xc7a8fe?{'count':_0x1f76be,'rows':_0xc7a8fe}:null;}})[_0xee2f('0xf')](respondWithResult(_0x16c529,null))[_0xee2f('0x18')](handleError(_0x16c529,null));};exports[_0xee2f('0x142')]=function(_0x10ca5f,_0x970b25){return db['User']['find']({'where':{'id':_0x10ca5f[_0xee2f('0x52')]['id']}})[_0xee2f('0xf')](handleEntityNotFound(_0x970b25,null))[_0xee2f('0xf')](function(_0x42f304){if(_0x42f304){return _0x42f304['addMailAccounts'](_0x10ca5f['body']['ids'],_[_0xee2f('0x55')](_0x10ca5f['body'],['ids','id'])||{});}})['then'](respondWithResult(_0x970b25,null))[_0xee2f('0x18')](handleError(_0x970b25,null));};exports[_0xee2f('0x143')]=function(_0x58aa2f,_0x4d0eae){return db[_0xee2f('0x33')][_0xee2f('0x2e')]({'where':{'id':_0x58aa2f[_0xee2f('0x52')]['id']}})[_0xee2f('0xf')](handleEntityNotFound(_0x4d0eae,null))['then'](function(_0x3679d0){if(_0x3679d0){return _0x3679d0[_0xee2f('0x143')](_0x58aa2f[_0xee2f('0x4a')][_0xee2f('0x54')]);}})['then'](respondWithStatusCode(_0x4d0eae,null))['catch'](handleError(_0x4d0eae,null));};exports[_0xee2f('0x144')]=function(_0x14c527,_0x3b4c45){var _0xae6760={};var _0x192f0a={};var _0x190ede;var _0x3a5f04;return db[_0xee2f('0x33')]['findOne']({'where':{'id':_0x14c527[_0xee2f('0x52')]['id']}})[_0xee2f('0xf')](handleEntityNotFound(_0x3b4c45,null))['then'](function(_0x2e88c8){if(_0x2e88c8){_0x190ede=_0x2e88c8;_0x192f0a['model']=_[_0xee2f('0x48')](db[_0xee2f('0x145')][_0xee2f('0x34')]);_0x192f0a[_0xee2f('0x4a')]=_['keys'](_0x14c527['query']);_0x192f0a[_0xee2f('0xbf')]=_[_0xee2f('0x4b')](_0x192f0a['model'],_0x192f0a[_0xee2f('0x4a')]);_0xae6760['attributes']=_[_0xee2f('0x4b')](_0x192f0a['model'],qs['fields'](_0x14c527[_0xee2f('0x4a')]['fields']));_0xae6760[_0xee2f('0x3a')]=_0xae6760['attributes'][_0xee2f('0x3f')]?_0xae6760[_0xee2f('0x3a')]:_0x192f0a[_0xee2f('0x47')];_0xae6760[_0xee2f('0xcc')]=qs[_0xee2f('0xc0')](_0x14c527[_0xee2f('0x4a')]['sort']);_0xae6760[_0xee2f('0xc1')]=qs[_0xee2f('0xbf')](_[_0xee2f('0xd0')](_0x14c527[_0xee2f('0x4a')],_0x192f0a[_0xee2f('0xbf')]));if(_0x14c527[_0xee2f('0x4a')][_0xee2f('0xc2')]){_0xae6760[_0xee2f('0xc1')]=_[_0xee2f('0x4e')](_0xae6760[_0xee2f('0xc1')],{'$or':_[_0xee2f('0x2b')](_0xae6760['attributes'],function(_0x27aa31){var _0x20cc0b={};_0x20cc0b[_0x27aa31]={'$like':'%'+_0x14c527[_0xee2f('0x4a')][_0xee2f('0xc2')]+'%'};return _0x20cc0b;})});}_0xae6760=_[_0xee2f('0x4e')]({},_0xae6760,_0x14c527[_0xee2f('0xc3')]);return _0x190ede[_0xee2f('0x144')](_0xae6760);}})['then'](function(_0x2a19de){if(_0x2a19de){_0x3a5f04=_0x2a19de['length'];if(!_0x14c527[_0xee2f('0x4a')]['hasOwnProperty'](_0xee2f('0xc9'))){_0xae6760[_0xee2f('0x1f')]=qs[_0xee2f('0x1f')](_0x14c527[_0xee2f('0x4a')][_0xee2f('0x1f')]);_0xae6760['offset']=qs[_0xee2f('0x1d')](_0x14c527[_0xee2f('0x4a')][_0xee2f('0x1d')]);}return _0x190ede[_0xee2f('0x144')](_0xae6760);}})[_0xee2f('0xf')](function(_0x52be41){if(_0x52be41){return _0x52be41?{'count':_0x3a5f04,'rows':_0x52be41}:null;}})[_0xee2f('0xf')](respondWithResult(_0x3b4c45,null))['catch'](handleError(_0x3b4c45,null));};exports[_0xee2f('0x146')]=function(_0x4e268d,_0x398941){return db['User'][_0xee2f('0x2e')]({'where':{'id':_0x4e268d['params']['id']}})[_0xee2f('0xf')](handleEntityNotFound(_0x398941,null))[_0xee2f('0xf')](function(_0x1f405d){if(_0x1f405d){return _0x1f405d[_0xee2f('0x146')](_0x4e268d['body'][_0xee2f('0x54')],_[_0xee2f('0x55')](_0x4e268d[_0xee2f('0x50')],[_0xee2f('0x54'),'id'])||{});}})[_0xee2f('0xf')](respondWithResult(_0x398941,null))[_0xee2f('0x18')](handleError(_0x398941,null));};exports[_0xee2f('0x147')]=function(_0x454cdc,_0x38f330){return db[_0xee2f('0x33')][_0xee2f('0x2e')]({'where':{'id':_0x454cdc[_0xee2f('0x52')]['id']}})[_0xee2f('0xf')](handleEntityNotFound(_0x38f330,null))[_0xee2f('0xf')](function(_0x394c79){if(_0x394c79){return _0x394c79[_0xee2f('0x147')](_0x454cdc['query'][_0xee2f('0x54')]);}})[_0xee2f('0xf')](respondWithStatusCode(_0x38f330,null))['catch'](handleError(_0x38f330,null));};exports[_0xee2f('0x148')]=function(_0x73216d,_0x437c31){var _0xeabd45={};var _0x29b388={};var _0x532158;var _0x201850;return db[_0xee2f('0x33')][_0xee2f('0x8e')]({'where':{'id':_0x73216d[_0xee2f('0x52')]['id']}})['then'](handleEntityNotFound(_0x437c31,null))[_0xee2f('0xf')](function(_0x577503){if(_0x577503){_0x532158=_0x577503;_0x29b388[_0xee2f('0x47')]=_['keys'](db[_0xee2f('0x149')][_0xee2f('0x34')]);_0x29b388[_0xee2f('0x4a')]=_['keys'](_0x73216d[_0xee2f('0x4a')]);_0x29b388[_0xee2f('0xbf')]=_[_0xee2f('0x4b')](_0x29b388[_0xee2f('0x47')],_0x29b388[_0xee2f('0x4a')]);_0xeabd45[_0xee2f('0x3a')]=_['intersection'](_0x29b388[_0xee2f('0x47')],qs['fields'](_0x73216d[_0xee2f('0x4a')][_0xee2f('0x4c')]));_0xeabd45[_0xee2f('0x3a')]=_0xeabd45['attributes'][_0xee2f('0x3f')]?_0xeabd45['attributes']:_0x29b388['model'];_0xeabd45[_0xee2f('0xcc')]=qs['sort'](_0x73216d[_0xee2f('0x4a')]['sort']);_0xeabd45['where']=qs['filters'](_[_0xee2f('0xd0')](_0x73216d[_0xee2f('0x4a')],_0x29b388['filters']));if(_0x73216d[_0xee2f('0x4a')][_0xee2f('0xc2')]){_0xeabd45['where']=_[_0xee2f('0x4e')](_0xeabd45[_0xee2f('0xc1')],{'$or':_[_0xee2f('0x2b')](_0xeabd45[_0xee2f('0x3a')],function(_0x3ad52e){var _0x4acfdb={};_0x4acfdb[_0x3ad52e]={'$like':'%'+_0x73216d[_0xee2f('0x4a')][_0xee2f('0xc2')]+'%'};return _0x4acfdb;})});}_0xeabd45=_[_0xee2f('0x4e')]({},_0xeabd45,_0x73216d[_0xee2f('0xc3')]);return _0x532158[_0xee2f('0x148')](_0xeabd45);}})[_0xee2f('0xf')](function(_0x1f1897){if(_0x1f1897){_0x201850=_0x1f1897[_0xee2f('0x3f')];if(!_0x73216d['query'][_0xee2f('0xce')](_0xee2f('0xc9'))){_0xeabd45['limit']=qs[_0xee2f('0x1f')](_0x73216d[_0xee2f('0x4a')][_0xee2f('0x1f')]);_0xeabd45[_0xee2f('0x1d')]=qs[_0xee2f('0x1d')](_0x73216d[_0xee2f('0x4a')][_0xee2f('0x1d')]);}return _0x532158[_0xee2f('0x148')](_0xeabd45);}})[_0xee2f('0xf')](function(_0x1dda95){if(_0x1dda95){return _0x1dda95?{'count':_0x201850,'rows':_0x1dda95}:null;}})[_0xee2f('0xf')](respondWithResult(_0x437c31,null))['catch'](handleError(_0x437c31,null));};exports[_0xee2f('0x14a')]=function(_0x4d9433,_0x508e19){return db[_0xee2f('0x33')][_0xee2f('0x2e')]({'where':{'id':_0x4d9433[_0xee2f('0x52')]['id']}})[_0xee2f('0xf')](handleEntityNotFound(_0x508e19,null))[_0xee2f('0xf')](function(_0x579a85){if(_0x579a85){return _0x579a85[_0xee2f('0x14a')](_0x4d9433[_0xee2f('0x50')]['ids'],_[_0xee2f('0x55')](_0x4d9433[_0xee2f('0x50')],[_0xee2f('0x54'),'id'])||{});}})[_0xee2f('0xf')](respondWithResult(_0x508e19,null))['catch'](handleError(_0x508e19,null));};exports[_0xee2f('0x14b')]=function(_0x177190,_0x230f75){return db['User']['find']({'where':{'id':_0x177190[_0xee2f('0x52')]['id']}})[_0xee2f('0xf')](handleEntityNotFound(_0x230f75,null))[_0xee2f('0xf')](function(_0x4b2011){if(_0x4b2011){return _0x4b2011[_0xee2f('0x14b')](_0x177190[_0xee2f('0x4a')]['ids']);}})[_0xee2f('0xf')](respondWithStatusCode(_0x230f75,null))['catch'](handleError(_0x230f75,null));};exports[_0xee2f('0x14c')]=function(_0x30a6a0,_0x146410){var _0x3234c7={};var _0x27680b={};var _0x12ee30;var _0x12735a;return db['User']['findOne']({'where':{'id':_0x30a6a0['params']['id']}})[_0xee2f('0xf')](handleEntityNotFound(_0x146410,null))[_0xee2f('0xf')](function(_0x22c1e7){if(_0x22c1e7){_0x12ee30=_0x22c1e7;_0x27680b[_0xee2f('0x47')]=_['keys'](db[_0xee2f('0x14d')][_0xee2f('0x34')]);_0x27680b[_0xee2f('0x4a')]=_[_0xee2f('0x48')](_0x30a6a0['query']);_0x27680b[_0xee2f('0xbf')]=_[_0xee2f('0x4b')](_0x27680b[_0xee2f('0x47')],_0x27680b[_0xee2f('0x4a')]);_0x3234c7[_0xee2f('0x3a')]=_['intersection'](_0x27680b[_0xee2f('0x47')],qs[_0xee2f('0x4c')](_0x30a6a0[_0xee2f('0x4a')][_0xee2f('0x4c')]));_0x3234c7[_0xee2f('0x3a')]=_0x3234c7[_0xee2f('0x3a')][_0xee2f('0x3f')]?_0x3234c7[_0xee2f('0x3a')]:_0x27680b[_0xee2f('0x47')];_0x3234c7['order']=qs[_0xee2f('0xc0')](_0x30a6a0[_0xee2f('0x4a')][_0xee2f('0xc0')]);_0x3234c7[_0xee2f('0xc1')]=qs[_0xee2f('0xbf')](_[_0xee2f('0xd0')](_0x30a6a0[_0xee2f('0x4a')],_0x27680b[_0xee2f('0xbf')]));if(_0x30a6a0[_0xee2f('0x4a')]['filter']){_0x3234c7[_0xee2f('0xc1')]=_[_0xee2f('0x4e')](_0x3234c7[_0xee2f('0xc1')],{'$or':_[_0xee2f('0x2b')](_0x3234c7['attributes'],function(_0x29a838){var _0x1cb1fa={};_0x1cb1fa[_0x29a838]={'$like':'%'+_0x30a6a0[_0xee2f('0x4a')]['filter']+'%'};return _0x1cb1fa;})});}_0x3234c7=_[_0xee2f('0x4e')]({},_0x3234c7,_0x30a6a0[_0xee2f('0xc3')]);return _0x12ee30[_0xee2f('0x14c')](_0x3234c7);}})[_0xee2f('0xf')](function(_0x40915a){if(_0x40915a){_0x12735a=_0x40915a[_0xee2f('0x3f')];if(!_0x30a6a0[_0xee2f('0x4a')][_0xee2f('0xce')](_0xee2f('0xc9'))){_0x3234c7[_0xee2f('0x1f')]=qs[_0xee2f('0x1f')](_0x30a6a0['query'][_0xee2f('0x1f')]);_0x3234c7[_0xee2f('0x1d')]=qs[_0xee2f('0x1d')](_0x30a6a0[_0xee2f('0x4a')][_0xee2f('0x1d')]);}return _0x12ee30[_0xee2f('0x14c')](_0x3234c7);}})[_0xee2f('0xf')](function(_0x19ce9a){if(_0x19ce9a){return _0x19ce9a?{'count':_0x12735a,'rows':_0x19ce9a}:null;}})[_0xee2f('0xf')](respondWithResult(_0x146410,null))[_0xee2f('0x18')](handleError(_0x146410,null));};exports[_0xee2f('0x14e')]=function(_0x41ed41,_0x2d7adb){return db[_0xee2f('0x33')]['find']({'where':{'id':_0x41ed41['params']['id']}})[_0xee2f('0xf')](handleEntityNotFound(_0x2d7adb,null))[_0xee2f('0xf')](function(_0x363259){if(_0x363259){return _0x363259[_0xee2f('0x14e')](_0x41ed41['body'][_0xee2f('0x54')],_[_0xee2f('0x55')](_0x41ed41[_0xee2f('0x50')],[_0xee2f('0x54'),'id'])||{});}})[_0xee2f('0xf')](respondWithResult(_0x2d7adb,null))[_0xee2f('0x18')](handleError(_0x2d7adb,null));};exports[_0xee2f('0x14f')]=function(_0x5a3210,_0x268513){return db[_0xee2f('0x33')][_0xee2f('0x2e')]({'where':{'id':_0x5a3210[_0xee2f('0x52')]['id']}})[_0xee2f('0xf')](handleEntityNotFound(_0x268513,null))['then'](function(_0x2c4896){if(_0x2c4896){return _0x2c4896[_0xee2f('0x14f')](_0x5a3210[_0xee2f('0x4a')][_0xee2f('0x54')]);}})[_0xee2f('0xf')](respondWithStatusCode(_0x268513,null))[_0xee2f('0x18')](handleError(_0x268513,null));};exports[_0xee2f('0x150')]=function(_0x47bc7a,_0x379d46){var _0x3b8a96={};var _0x3d8226={};var _0x2894b5;var _0x58aac4;return db[_0xee2f('0x33')][_0xee2f('0x8e')]({'where':{'id':_0x47bc7a['params']['id']}})[_0xee2f('0xf')](handleEntityNotFound(_0x379d46,null))[_0xee2f('0xf')](function(_0x1b6097){if(_0x1b6097){_0x2894b5=_0x1b6097;_0x3d8226['model']=_['keys'](db[_0xee2f('0x151')][_0xee2f('0x34')]);_0x3d8226['query']=_['keys'](_0x47bc7a[_0xee2f('0x4a')]);_0x3d8226[_0xee2f('0xbf')]=_[_0xee2f('0x4b')](_0x3d8226['model'],_0x3d8226[_0xee2f('0x4a')]);_0x3b8a96[_0xee2f('0x3a')]=_[_0xee2f('0x4b')](_0x3d8226[_0xee2f('0x47')],qs['fields'](_0x47bc7a['query'][_0xee2f('0x4c')]));_0x3b8a96[_0xee2f('0x3a')]=_0x3b8a96[_0xee2f('0x3a')]['length']?_0x3b8a96[_0xee2f('0x3a')]:_0x3d8226[_0xee2f('0x47')];_0x3b8a96[_0xee2f('0xcc')]=qs[_0xee2f('0xc0')](_0x47bc7a['query']['sort']);_0x3b8a96['where']=qs[_0xee2f('0xbf')](_[_0xee2f('0xd0')](_0x47bc7a[_0xee2f('0x4a')],_0x3d8226[_0xee2f('0xbf')]));if(_0x47bc7a[_0xee2f('0x4a')]['filter']){_0x3b8a96['where']=_[_0xee2f('0x4e')](_0x3b8a96['where'],{'$or':_[_0xee2f('0x2b')](_0x3b8a96[_0xee2f('0x3a')],function(_0x53eed8){var _0x319355={};_0x319355[_0x53eed8]={'$like':'%'+_0x47bc7a[_0xee2f('0x4a')]['filter']+'%'};return _0x319355;})});}_0x3b8a96=_[_0xee2f('0x4e')]({},_0x3b8a96,_0x47bc7a['options']);return _0x2894b5['getWhatsappAccounts'](_0x3b8a96);}})[_0xee2f('0xf')](function(_0xe76a61){if(_0xe76a61){_0x58aac4=_0xe76a61[_0xee2f('0x3f')];if(!_0x47bc7a['query']['hasOwnProperty']('nolimit')){_0x3b8a96[_0xee2f('0x1f')]=qs['limit'](_0x47bc7a[_0xee2f('0x4a')]['limit']);_0x3b8a96['offset']=qs[_0xee2f('0x1d')](_0x47bc7a[_0xee2f('0x4a')][_0xee2f('0x1d')]);}return _0x2894b5[_0xee2f('0x150')](_0x3b8a96);}})[_0xee2f('0xf')](function(_0x10c8f8){if(_0x10c8f8){return _0x10c8f8?{'count':_0x58aac4,'rows':_0x10c8f8}:null;}})[_0xee2f('0xf')](respondWithResult(_0x379d46,null))[_0xee2f('0x18')](handleError(_0x379d46,null));};exports['addWhatsappAccounts']=function(_0x148e6f,_0x381e34){return db[_0xee2f('0x33')]['find']({'where':{'id':_0x148e6f[_0xee2f('0x52')]['id']}})[_0xee2f('0xf')](handleEntityNotFound(_0x381e34,null))[_0xee2f('0xf')](function(_0xc3a9a5){if(_0xc3a9a5){return _0xc3a9a5[_0xee2f('0x152')](_0x148e6f[_0xee2f('0x50')][_0xee2f('0x54')],_['omit'](_0x148e6f['body'],[_0xee2f('0x54'),'id'])||{});}})[_0xee2f('0xf')](respondWithResult(_0x381e34,null))[_0xee2f('0x18')](handleError(_0x381e34,null));};exports[_0xee2f('0x153')]=function(_0x52734f,_0x33c78b){return db[_0xee2f('0x33')][_0xee2f('0x2e')]({'where':{'id':_0x52734f[_0xee2f('0x52')]['id']}})[_0xee2f('0xf')](handleEntityNotFound(_0x33c78b,null))[_0xee2f('0xf')](function(_0x2e48c7){if(_0x2e48c7){return _0x2e48c7['removeWhatsappAccounts'](_0x52734f[_0xee2f('0x4a')][_0xee2f('0x54')]);}})[_0xee2f('0xf')](respondWithStatusCode(_0x33c78b,null))['catch'](handleError(_0x33c78b,null));};exports[_0xee2f('0x154')]=function(_0x3aeee5,_0x59169e){var _0x3c7ede={};var _0x3bb17e={};var _0x371492;var _0x441fcf;return db['User'][_0xee2f('0x8e')]({'where':{'id':_0x3aeee5[_0xee2f('0x52')]['id']}})[_0xee2f('0xf')](handleEntityNotFound(_0x59169e,null))[_0xee2f('0xf')](function(_0x47e2af){if(_0x47e2af){_0x371492=_0x47e2af;_0x3bb17e[_0xee2f('0x47')]=_['keys'](db[_0xee2f('0x155')]['rawAttributes']);_0x3bb17e[_0xee2f('0x4a')]=_[_0xee2f('0x48')](_0x3aeee5['query']);_0x3bb17e[_0xee2f('0xbf')]=_[_0xee2f('0x4b')](_0x3bb17e[_0xee2f('0x47')],_0x3bb17e['query']);_0x3c7ede[_0xee2f('0x3a')]=_['intersection'](_0x3bb17e[_0xee2f('0x47')],qs[_0xee2f('0x4c')](_0x3aeee5['query']['fields']));_0x3c7ede['attributes']=_0x3c7ede[_0xee2f('0x3a')][_0xee2f('0x3f')]?_0x3c7ede[_0xee2f('0x3a')]:_0x3bb17e['model'];_0x3c7ede['order']=qs[_0xee2f('0xc0')](_0x3aeee5[_0xee2f('0x4a')][_0xee2f('0xc0')]);_0x3c7ede[_0xee2f('0xc1')]=qs['filters'](_[_0xee2f('0xd0')](_0x3aeee5[_0xee2f('0x4a')],_0x3bb17e['filters']));if(_0x3aeee5['query'][_0xee2f('0xc2')]){_0x3c7ede[_0xee2f('0xc1')]=_[_0xee2f('0x4e')](_0x3c7ede['where'],{'$or':_['map'](_0x3c7ede[_0xee2f('0x3a')],function(_0x55cc11){var _0x12d4b5={};_0x12d4b5[_0x55cc11]={'$like':'%'+_0x3aeee5[_0xee2f('0x4a')][_0xee2f('0xc2')]+'%'};return _0x12d4b5;})});}_0x3c7ede=_['merge']({},_0x3c7ede,_0x3aeee5[_0xee2f('0xc3')]);return _0x371492[_0xee2f('0x154')](_0x3c7ede);}})['then'](function(_0x1e9f75){if(_0x1e9f75){_0x441fcf=_0x1e9f75[_0xee2f('0x3f')];if(!_0x3aeee5[_0xee2f('0x4a')][_0xee2f('0xce')]('nolimit')){_0x3c7ede[_0xee2f('0x1f')]=qs[_0xee2f('0x1f')](_0x3aeee5['query']['limit']);_0x3c7ede['offset']=qs[_0xee2f('0x1d')](_0x3aeee5[_0xee2f('0x4a')][_0xee2f('0x1d')]);}return _0x371492[_0xee2f('0x154')](_0x3c7ede);}})['then'](function(_0x3c3377){if(_0x3c3377){return _0x3c3377?{'count':_0x441fcf,'rows':_0x3c3377}:null;}})['then'](respondWithResult(_0x59169e,null))[_0xee2f('0x18')](handleError(_0x59169e,null));};exports['addSquareProjects']=function(_0x329d1e,_0x58ed2c){return db[_0xee2f('0x33')][_0xee2f('0x2e')]({'where':{'id':_0x329d1e[_0xee2f('0x52')]['id']}})[_0xee2f('0xf')](handleEntityNotFound(_0x58ed2c,null))['then'](function(_0x318680){if(_0x318680){return _0x318680[_0xee2f('0x156')](_0x329d1e[_0xee2f('0x50')]['ids'],_[_0xee2f('0x55')](_0x329d1e[_0xee2f('0x50')],[_0xee2f('0x54'),'id'])||{});}})[_0xee2f('0xf')](respondWithResult(_0x58ed2c,null))[_0xee2f('0x18')](handleError(_0x58ed2c,null));};exports[_0xee2f('0x157')]=function(_0x123ada,_0x1b35c5){return db[_0xee2f('0x33')][_0xee2f('0x2e')]({'where':{'id':_0x123ada[_0xee2f('0x52')]['id']}})['then'](handleEntityNotFound(_0x1b35c5,null))[_0xee2f('0xf')](function(_0x39d931){if(_0x39d931){return _0x39d931[_0xee2f('0x157')](_0x123ada['query']['ids']);}})[_0xee2f('0xf')](respondWithStatusCode(_0x1b35c5,null))[_0xee2f('0x18')](handleError(_0x1b35c5,null));};exports[_0xee2f('0x158')]=function(_0x263d7c,_0x56c2e5){var _0x7d9aca={},_0x52fa6a={},_0x6e6b23={'count':0x0,'rows':[]};var _0x19cce3=db[_0xee2f('0x159')][_0xee2f('0x34')];_0x52fa6a[_0xee2f('0x47')]=_[_0xee2f('0x48')](_0x19cce3);_0x52fa6a[_0xee2f('0x4a')]=_[_0xee2f('0x48')](_0x263d7c[_0xee2f('0x4a')]);_0x52fa6a[_0xee2f('0xbf')]=_[_0xee2f('0x4b')](_0x52fa6a[_0xee2f('0x47')],_0x52fa6a[_0xee2f('0x4a')]);_0x52fa6a[_0xee2f('0xbf')]=_[_0xee2f('0xf5')](_0x52fa6a[_0xee2f('0xbf')],[_0xee2f('0x15a'),_0xee2f('0x15b'),_0xee2f('0x15c'),_0xee2f('0x15d'),_0xee2f('0x15e'),_0xee2f('0x15f'),_0xee2f('0x160'),_0xee2f('0x161'),'$not',_0xee2f('0x162'),_0xee2f('0x163'),_0xee2f('0x164'),_0xee2f('0x165'),'$like',_0xee2f('0x166'),_0xee2f('0x167'),_0xee2f('0x168'),'$like',_0xee2f('0x169'),_0xee2f('0x16a'),_0xee2f('0x16b'),'$any']);_0x7d9aca[_0xee2f('0x3a')]=_[_0xee2f('0x4b')](_0x52fa6a[_0xee2f('0x47')],qs[_0xee2f('0x4c')](_0x263d7c[_0xee2f('0x4a')][_0xee2f('0x4c')]));_0x7d9aca[_0xee2f('0x3a')]=_0x7d9aca[_0xee2f('0x3a')]['length']?_0x7d9aca[_0xee2f('0x3a')]:_0x52fa6a['model'];if(!_0x263d7c[_0xee2f('0x4a')][_0xee2f('0xce')](_0xee2f('0xc9'))){_0x7d9aca['limit']=qs[_0xee2f('0x1f')](_0x263d7c[_0xee2f('0x4a')][_0xee2f('0x1f')]);_0x7d9aca[_0xee2f('0x1d')]=qs[_0xee2f('0x1d')](_0x263d7c[_0xee2f('0x4a')][_0xee2f('0x1d')]);}_0x7d9aca['order']=qs[_0xee2f('0xc0')](_0x263d7c['query']['sort']);_0x7d9aca[_0xee2f('0xc1')]=qs[_0xee2f('0xbf')](_[_0xee2f('0xd0')](_0x263d7c['query'],_0x52fa6a['filters']));if(_0x263d7c[_0xee2f('0x4a')][_0xee2f('0xc2')]){_0x7d9aca[_0xee2f('0xc1')]=_[_0xee2f('0x4e')](_0x7d9aca[_0xee2f('0xc1')],{'$or':_[_0xee2f('0x2b')](_0x7d9aca[_0xee2f('0x3a')],function(_0x1b7ed3){var _0x3d41f2={};_0x3d41f2[_0x1b7ed3]={'$like':'%'+_0x263d7c[_0xee2f('0x4a')][_0xee2f('0xc2')]+'%'};return _0x3d41f2;})});}_0x7d9aca['where']={'$and':[_0x7d9aca['where'],{'$or':[{'UserId':_0x263d7c[_0xee2f('0x52')]['id']},{'OwnerId':_0x263d7c[_0xee2f('0x52')]['id']}]}]};_0x7d9aca=_[_0xee2f('0x4e')]({},_0x7d9aca,_0x263d7c[_0xee2f('0xc3')]);var _0x4c4ded={'where':_0x7d9aca['where']};return db[_0xee2f('0x159')][_0xee2f('0x20')](_0x4c4ded)[_0xee2f('0xf')](function(_0x3e841c){_0x6e6b23[_0xee2f('0x20')]=_0x3e841c;if(_0x263d7c[_0xee2f('0x4a')][_0xee2f('0x39')]){_0x7d9aca[_0xee2f('0x4d')]=[{'attributes':['id',_0xee2f('0x16c'),_0xee2f('0x16d'),_0xee2f('0xe5')],'model':db[_0xee2f('0xbe')],'as':_0xee2f('0x16e')},{'attributes':['id',_0xee2f('0x2f'),_0xee2f('0x16f')],'model':db['VoiceQueue'],'as':'Queue'}];}return db[_0xee2f('0x159')][_0xee2f('0x3c')](_0x7d9aca);})[_0xee2f('0xf')](function(_0x2fb928){_0x6e6b23[_0xee2f('0x41')]=_0x2fb928;return _0x6e6b23;})[_0xee2f('0xf')](respondWithFilteredResult(_0x56c2e5,_0x7d9aca))[_0xee2f('0x18')](handleError(_0x56c2e5,null));};exports[_0xee2f('0x170')]=function(_0xcd2028,_0x504248){if(!_['isNil'](_0xcd2028[_0xee2f('0x70')]['id'])&&(_0xcd2028[_0xee2f('0x70')][_0xee2f('0x26')]=='admin'||_0xcd2028['user'][_0xee2f('0x26')]==_0xee2f('0x70'))){return db[_0xee2f('0x33')][_0xee2f('0x8e')]({'where':{'id':_0xcd2028[_0xee2f('0x52')]['id']},'raw':!![]})[_0xee2f('0xf')](function(_0x22a7d4){return authService['retrieveApiKey'](_0x22a7d4);})[_0xee2f('0xf')](function(_0x480824){if(_0x480824){return _0x504248[_0xee2f('0x1a')](0xc8)['json']({'api_key':_0x480824[_0xee2f('0x171')]});}else{return _0x504248[_0xee2f('0x1a')](0xcc)[_0xee2f('0x1c')]({'message':_0xee2f('0x172')});}})[_0xee2f('0x18')](handleError(_0x504248,0x193));}else{return _0x504248[_0xee2f('0x1a')](0x191)[_0xee2f('0x1c')]({'message':'You\x20don\x27t\x20have\x20sufficient\x20privileges\x20to\x20access\x20this\x20resource.'});}};exports['createApiKey']=function(_0x17ab32,_0x453060){if(!_[_0xee2f('0x5c')](_0x17ab32[_0xee2f('0x70')]['id'])&&(_0x17ab32[_0xee2f('0x70')][_0xee2f('0x26')]==_0xee2f('0x71')||_0x17ab32[_0xee2f('0x70')][_0xee2f('0x26')]==_0xee2f('0x70'))){return db[_0xee2f('0x33')][_0xee2f('0x2e')]({'where':{'id':_0x17ab32['params']['id']}})[_0xee2f('0xf')](function(_0x30dc1e){return authService[_0xee2f('0x173')](_0x30dc1e);})['then'](function(_0x3768b8){return db[_0xee2f('0x33')][_0xee2f('0x23')]({'apiKeyIat':_0x3768b8[_0xee2f('0x174')],'apiKeyNonce':_0x3768b8[_0xee2f('0x175')]},{'where':{'id':_0x17ab32[_0xee2f('0x52')]['id']}})[_0xee2f('0xf')](function(){return _0x453060[_0xee2f('0x1a')](0xc8)[_0xee2f('0x1c')]({'api_key':_0x3768b8['token']});});})[_0xee2f('0x18')](handleError(_0x453060,0x193));}else{return _0x453060[_0xee2f('0x1a')](0x191)[_0xee2f('0x1c')]({'message':_0xee2f('0x176')});}};exports[_0xee2f('0x177')]=function(_0x2989b6,_0x2bf030){if(!_['isNil'](_0x2989b6['user']['id'])&&(_0x2989b6[_0xee2f('0x70')][_0xee2f('0x26')]=='admin'||_0x2989b6['user']['role']==_0xee2f('0x70'))){return db[_0xee2f('0x33')][_0xee2f('0x2e')]({'where':{'id':_0x2989b6['params']['id']}})[_0xee2f('0xf')](handleEntityNotFound(_0x2bf030,null))['then'](function(_0x1597ee){if(_0x1597ee&&_0x1597ee[_0xee2f('0x178')]&&_0x1597ee[_0xee2f('0x179')])return _0x1597ee;else throw{'message':_0xee2f('0x17a')};})[_0xee2f('0xf')](function(_0x3e32a5){return db[_0xee2f('0x33')]['update']({'apiKeyNonce':null,'apiKeyIat':null},{'where':{'id':_0x2989b6[_0xee2f('0x52')]['id']}});})[_0xee2f('0xf')](respondWithStatusCode(_0x2bf030,0xc8))[_0xee2f('0x18')](handleError(_0x2bf030,0x193));}else{return _0x2bf030['status'](0x191)[_0xee2f('0x1c')]({'message':_0xee2f('0x176')});}};exports[_0xee2f('0x17b')]=function(_0x330989,_0x15fac5){var _0x338efd=_0x330989['user'][_0xee2f('0x25')]({'plain':!![]});if(!_0x338efd){return _0x15fac5[_0xee2f('0x1a')](0x191)[_0xee2f('0x31')](_0xee2f('0x17c'));}else{return _0x15fac5[_0xee2f('0x1a')](0xc8)[_0xee2f('0x1c')](_0x338efd);}};exports['getPresence']=function(_0x37dc68,_0x2a31dd){var _0x292b55={'offset':0x0},_0xd5bd5d={'count':0x0,'rows':[]};Promise[_0xee2f('0xf7')]()[_0xee2f('0xf')](function(){if(!_0x37dc68[_0xee2f('0x4a')][_0xee2f('0xc2')]&&!_0x37dc68[_0xee2f('0x4a')]['teams']&&!_0x37dc68['query'][_0xee2f('0x17d')])return[];return Promise[_0xee2f('0xf7')]()['then'](function(){var _0x1108ee=[];if(!_[_0xee2f('0x81')](_0x37dc68[_0xee2f('0x4a')][_0xee2f('0x17e')])){_0x1108ee['push'](db[_0xee2f('0x109')][_0xee2f('0x3c')]({'attributes':['id',_0xee2f('0x2f')],'where':{'id':_0x37dc68[_0xee2f('0x4a')][_0xee2f('0x17e')]}}));}if(!_[_0xee2f('0x81')](_0x37dc68[_0xee2f('0x4a')][_0xee2f('0x17d')])){_0x1108ee['push'](db[_0xee2f('0xa1')][_0xee2f('0x3c')]({'attributes':['id','name'],'type':'inbound','where':{'id':_0x37dc68[_0xee2f('0x4a')][_0xee2f('0x17d')]}}));}return Promise[_0xee2f('0x7f')](_0x1108ee);})[_0xee2f('0xf')](function(_0x40eaeb){var _0x427e65=_[_0xee2f('0x11e')](_0x40eaeb)[_0xee2f('0x2b')](function(_0x536aec){return _0x536aec['getAgents']({'attributes':['id',_0xee2f('0x2f'),_0xee2f('0x56'),_0xee2f('0x94')],'raw':!![]});});return Promise[_0xee2f('0x7f')](_0x427e65);})[_0xee2f('0xf')](function(_0x4c4acf){var _0x164bb6=_['flatten'](_0x4c4acf);if(!_0x37dc68[_0xee2f('0x4a')][_0xee2f('0xc2')])return _0x164bb6;if(_[_0xee2f('0x81')](_0x164bb6)){return db['User'][_0xee2f('0x3c')]({'attributes':['id','name',_0xee2f('0x56'),_0xee2f('0x94')],'where':{'role':_0xee2f('0x29'),'$or':[db['sequelize']['where'](db[_0xee2f('0x5e')]['fn']('lower',db[_0xee2f('0x5e')]['col'](_0xee2f('0x2f'))),{'$like':'%'+_0x37dc68[_0xee2f('0x4a')]['filter'][_0xee2f('0x99')]()+'%'}),{'internal':{'$like':'%'+_0x37dc68[_0xee2f('0x4a')][_0xee2f('0xc2')]+'%'}}]},'raw':!![]});}else{return _(_0x164bb6)[_0xee2f('0x11e')]()[_0xee2f('0xc2')](function(_0x314f87){return _0x314f87[_0xee2f('0x2f')][_0xee2f('0x99')]()['includes'](_0x37dc68[_0xee2f('0x4a')][_0xee2f('0xc2')]['toLowerCase']())||_0x314f87[_0xee2f('0x56')]['toString']()[_0xee2f('0x2d')](_0x37dc68[_0xee2f('0x4a')][_0xee2f('0xc2')]);})[_0xee2f('0x2c')]();}})[_0xee2f('0xf')](function(_0x267406){var _0x267728=_0xee2f('0x2f');var _0x9c4fd2='asc';if(_0x37dc68[_0xee2f('0x4a')][_0xee2f('0xc0')]){var _0x9c4fd2=_0x37dc68[_0xee2f('0x4a')][_0xee2f('0xc0')][0x0]==='-'?_0xee2f('0x17f'):_0xee2f('0x180');var _0x267728=_0x9c4fd2===_0xee2f('0x180')?_0x37dc68[_0xee2f('0x4a')]['sort']:_0x37dc68[_0xee2f('0x4a')][_0xee2f('0xc0')]['substring'](0x1);}return _(_0x267406)[_0xee2f('0x181')]('id')['orderBy']([function(_0x18e249){return _0x267728===_0xee2f('0x2f')?_0x18e249[_0x267728][_0xee2f('0x99')]():_0x18e249[_0x267728];}],[_0x9c4fd2])[_0xee2f('0x2b')](function(_0x48abe3){return _[_0xee2f('0xd0')](_0x48abe3,['id',_0xee2f('0x2f'),_0xee2f('0x56'),'online']);})[_0xee2f('0x2c')]();})[_0xee2f('0xf')](function(_0x2b6e60){return client[_0xee2f('0xe')](_0xee2f('0x28'),_0x37dc68)[_0xee2f('0xf')](function(_0x568176){if(_0x568176[_0xee2f('0x15')])throw new Error(_0xee2f('0x182'));var _0x8beb6=_0x568176['result'];var _0x4068ad=jayson[_0xee2f('0x183')][_0xee2f('0x184')]({'port':0x232c});return _0x4068ad[_0xee2f('0xe')]('Agents',_0x37dc68)['then'](function(_0xe3d80b){if(_0xe3d80b[_0xee2f('0x15')])throw new Error(_0xee2f('0x185'));var _0x5ed04d=_0xe3d80b[_0xee2f('0x186')];return _[_0xee2f('0x4e')]({},_0x5ed04d,_0x8beb6);});})['then'](function(_0x31386e){return _[_0xee2f('0x2b')](_0x2b6e60,function(_0x373b20){var _0x1f9a8c=_[_0xee2f('0x2e')](_0x31386e[_0xee2f('0x41')],['id',_0x373b20['id']]);if(!_0x1f9a8c||!_0x373b20['online']){_0x373b20[_0xee2f('0x1a')]=_0xee2f('0x187');}else if(_0x1f9a8c[_0xee2f('0xa4')]){_0x373b20['status']=_0xee2f('0xf9');}else{_0x373b20['status']=_[_0xee2f('0x2d')]([_0xee2f('0x188'),_0xee2f('0x189'),'unavailable',_0xee2f('0x18a'),null,undefined],_0x1f9a8c[_0xee2f('0x18b')])?_0xee2f('0x94'):_0xee2f('0x18c');}return _0x373b20;});});});})['then'](function(_0xfd4bd4){if(!_0x37dc68[_0xee2f('0x4a')][_0xee2f('0xce')]('nolimit')){_0x292b55['limit']=qs['limit'](_0x37dc68[_0xee2f('0x4a')]['limit']||0xa);_0x292b55['offset']=qs[_0xee2f('0x1d')](_0x37dc68[_0xee2f('0x4a')][_0xee2f('0x1d')]);}_0xd5bd5d[_0xee2f('0x20')]=_0xfd4bd4[_0xee2f('0x3f')];_0xd5bd5d['rows']=_0x292b55[_0xee2f('0x1f')]?_0xfd4bd4[_0xee2f('0x18d')](_0x292b55[_0xee2f('0x1d')],_0x292b55[_0xee2f('0x1d')]+_0x292b55[_0xee2f('0x1f')]):_0xfd4bd4;return _0xd5bd5d;})[_0xee2f('0xf')](respondWithFilteredResult(_0x2a31dd,_0x292b55))[_0xee2f('0x18')](handleError(_0x2a31dd,null));};function get_open_tabs(_0x2fd423,_0x134cb5){var _0x56339c=_0x2fd423['charAt'](0x0)[_0xee2f('0x18e')]()+_0x2fd423[_0xee2f('0x18d')](0x1);var _0x2026d6={'type':db[_0xee2f('0x87')][_0xee2f('0x60')][_0xee2f('0x18f')],'raw':!![]};return new BPromise(function(_0x40f955,_0x1fbe32){var _0x4fd774=squel['select']()['field'](_0xee2f('0x190')+_0x56339c+'InteractionId','id')[_0xee2f('0x191')]('ui.createdAt')['from'](_0xee2f('0x192')+_0x2fd423+_0xee2f('0x193'),'ui')[_0xee2f('0xc1')](_0xee2f('0x194'),_0x134cb5['id']);return db[_0xee2f('0x5e')][_0xee2f('0x4a')](_0x4fd774['toString'](),_0x2026d6)['then'](function(_0x1abb3f){_0x134cb5[_0x56339c+_0xee2f('0x195')]=_0x1abb3f;_0x40f955(_0x1abb3f);})[_0xee2f('0x18')](function(_0x528bf1){_0x1fbe32(_0x528bf1);});});};
\ No newline at end of file
+var _0x1883=['login','phone','LOCAL/%s@from-sip/n','intrf','SIP/%s','user:%s','user:forcelogout','headers','x-forwarded-for','remoteAddress','connection','socket','getVoiceQueues','MemberReport','forEach','YYYY-MM-DD\x20HH:mm:ss','getChannels','LOGIN','device','PAUSE','bulkCreate','concat','resolve','logout','pause','updateAttributes','DEFAULT\x20PAUSE','unpause','openchannelPause','smsPause','whatsapppause','pauseType','QueuePause','manual','%s%s','getTeams','Team','addTeams','setDataValue','Voice','getChatQueues','Chat','getMailQueues','Mail','Sms','getWhatsappQueues','Whatsapp','getFaxQueues','Fax','Openchannel','getDataValue','TeamVoicePrefix','UserVoicePrefix','VoicePrefixId','removeTeams','getSmsQueues','getOpenchannelQueues','flatten','transaction','removeAgent','getLists','getAgents','values','You\x20can\x27t\x20delete\x20yourself','addChatInteractions','user_has_chat_interactions:save','removeChatInteractions','user_has_chat_interactions:remove','addMailInteractions','user_has_mail_interactions:save','removeMailInteractions','user_has_mail_interactions:remove','addFaxInteractions','user_has_fax_interactions:save','removeFaxInteractions','user_has_fax_interactions:remove','addSmsInteractions','user_has_sms_interactions:save','removeSmsInteractions','user_has_sms_interactions:remove','addOpenchannelInteractions','removeOpenchannelInteractions','user_has_openchannel_interactions:remove','addWhatsappInteractions','user_has_whatsapp_interactions:save','removeWhatsappInteractions','VoicePrefix','getVoicePrefixes','getFaxAccounts','FaxAccount','addFaxAccounts','removeFaxAccounts','MailAccount','getMailAccounts','addMailAccounts','removeMailAccounts','getOpenchannelAccounts','OpenchannelAccount','addOpenchannelAccounts','removeOpenchannelAccounts','getSmsAccounts','SmsAccount','removeSmsAccounts','getChatWebsites','ChatWebsite','addChatWebsites','removeChatWebsites','WhatsappAccount','getWhatsappAccounts','addWhatsappAccounts','removeWhatsappAccounts','getSquareProjects','SquareProject','addSquareProjects','removeSquareProjects','getScheduledCalls','CmHopper','$and','$or','$gt','$gte','$lt','$ne','$eq','$not','$between','$notBetween','$in','$like','$iLike','$notILike','$overlap','$contained','firstName','lastName','Contact','getApiKey','retrieveApiKey','token','You\x20don\x27t\x20have\x20sufficient\x20privileges\x20to\x20access\x20this\x20resource.','createApiKey','generateApiKey','iat','removeApiKey','apiKeyIat','API\x20key\x20not\x20available','whoami','Unable\x20to\x20retrieve\x20the\x20current\x20user','getPresence','teams','queues','inbound','lower','col','toString','asc','desc','uniqBy','Unable\x20to\x20retrieve\x20RPC\x20agents\x20(Routing)','idle','unavailable','ringing','busy','slice','charAt','select','InteractionId','field','user_has_','_interactions','ui.UserId\x20=\x20?','moment','bluebird','util','path','lodash','squel','jayson/promise','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','socket.io-emitter','./user.socket','register','defaults','localhost','client','http','request','then','info','User,\x20%s,\x20%s','debug','stringify','code','error','message','result','status','end','json','undefined','limit','count','offset','set','Content-Range','update','destroy','get','role','admin','Users','user','Agents','agent','Telephones','telephone','filter','ignore','map','value','includes','UserProfileResource','name','send','User','rawAttributes','fieldName','type','key','password','salt','getOptions','query','includeAll','findAll','rows','openTabs','length','chat','dataValues','push','sms','fax','openchannel','all','catch','show','model','keys','filters','intersection','attributes','fields','include','merge','whatsapp','mail','body','params','describe','addContacts','ids','omit','Setting','findById','securePassword','validatePasswordPattern','max','isNil','internal','min_internal','sequelize','select\x20(select\x20IFNULL(max(internal)+1,1)\x20from\x20users\x20where\x20internal\x20<\x20md.internal)\x20as\x20\x27from\x27,\x20md.internal\x20-\x201\x20as\x20\x27to\x27\x20from\x20users\x20md\x20where\x20md.internal\x20!=\x201\x20and\x20not\x20exists\x20(select\x201\x20from\x20users\x20md2\x20where\x20md2.internal\x20=\x20md.internal\x20-\x201)','QueryTypes','SELECT','from','voicemail','mailbox','VoiceMail','fullname','email','permissions','102','103','113','110','104','105','107','108','109','111','114','115','create','Unauthorized','Unauthorized.\x20You\x20must\x20be\x20an\x20administrator\x20in\x20order\x20to\x20create\x20an\x20user','Unauthorized.\x20You\x20must\x20be\x20an\x20administrator\x20in\x20order\x20to\x20create\x20another\x20administrator','checkUserLimits','settingsEnabled','userProfileId','UserProfileSection','find','autoAssociation','some','Unauthorized.\x20You\x20must\x20be\x20an\x20administrator\x20in\x20order\x20to\x20create\x20an\x20administrator','isEmpty','compact','changePassword','oldPassword','ValidationError','Invalid\x20body\x20format.\x20Use\x20oldPassword\x20and\x20newPassword','Wrong\x20credentials','newPassword','New\x20password\x20must\x20be\x20different\x20from\x20old\x20password','Sequelize','findOne','enforcePasswordHistory','passwordHistoryLimit','previousPasswords','updatePasswordsHistory','channel','online','loginInPause','voicePause','interface','isValidChannel','add','capitalize','Queues','penalty','spread','QueueId','toLowerCase','Queue:save','voice','VoiceQueue','format','each','UserVoiceQueueRt','upsert','remove','isArray','emit','Queue:remove','addAvatar','userpic','file','join','root','server/files/images/logos/default_profile.png','download','existsSync','server/files/images/','ChatOpenTabs','CHAT','FaxOpenTabs','FAX','createdAt','OpenchannelOpenTabs','OPENCHANNEL','MailOpenTabs','MAIL','SmsOpenTabs','SMS','WhatsappOpenTabs','WHATSAPP','getContacts','CmContact','order','sort','where','options','hasOwnProperty','CmList','List','Tag','Tags','color','tag','nolimit','getQueues','Unknown\x20channel','Queue','pick','Unknown\x20role','getVoiceQueuesRt','getGroups','ChatGroup','VoiceRecording','UserId','getScreenRecordings','ScreenRecording','ChatInteraction','getChatInteractions','getOpenchannelInteractions','OpenchannelInteraction','MailInteraction','getSmsInteractions','SmsInteraction','getFaxInteractions','FaxInteraction','getWhatsappInteractions'];(function(_0x4982ac,_0x33c813){var _0x17cc30=function(_0x56c55d){while(--_0x56c55d){_0x4982ac['push'](_0x4982ac['shift']());}};_0x17cc30(++_0x33c813);}(_0x1883,0xab));var _0x3188=function(_0x56a9ee,_0x213c9a){_0x56a9ee=_0x56a9ee-0x0;var _0x15c7f4=_0x1883[_0x56a9ee];return _0x15c7f4;};'use strict';var moment=require(_0x3188('0x0'));var BPromise=require(_0x3188('0x1'));var util=require(_0x3188('0x2'));var path=require(_0x3188('0x3'));var fs=require('fs');var _=require(_0x3188('0x4'));var squel=require(_0x3188('0x5'));var jayson=require(_0x3188('0x6'));var Redis=require(_0x3188('0x7'));var authService=require(_0x3188('0x8'));var qs=require(_0x3188('0x9'));var logger=require(_0x3188('0xa'))(_0x3188('0xb'));var utils=require(_0x3188('0xc'));var config=require(_0x3188('0xd'));var licenseUtil=require(_0x3188('0xe'));var db=require(_0x3188('0xf'))['db'];var socket=require(_0x3188('0x10'))(new Redis(config['redis']));require(_0x3188('0x11'))[_0x3188('0x12')](socket);config['redis']=_[_0x3188('0x13')](config['redis'],{'host':_0x3188('0x14'),'port':0x18eb});var client=jayson[_0x3188('0x15')][_0x3188('0x16')]({'port':0x232a});var values;function respondWithRpcPromise(_0x43b69,_0x5b968e,_0x44aca9,_0x2cdcb2){return new BPromise(function(_0x4dcadb,_0x5c029f){var _0x339b4a=_0x2cdcb2||client;return _0x339b4a[_0x3188('0x17')](_0x43b69,_0x44aca9)[_0x3188('0x18')](function(_0x3ae228){logger[_0x3188('0x19')](_0x3188('0x1a'),_0x5b968e,'request\x20sent');logger[_0x3188('0x1b')]('User,\x20%s,\x20%s,\x20%s',_0x5b968e,'request\x20sent',JSON[_0x3188('0x1c')](_0x3ae228));if(_0x3ae228['error']){if(_0x3ae228['error'][_0x3188('0x1d')]===0x1f4){logger[_0x3188('0x1e')](_0x3188('0x1a'),_0x5b968e,_0x3ae228[_0x3188('0x1e')][_0x3188('0x1f')]);return _0x5c029f(_0x3ae228[_0x3188('0x1e')]['message']);}logger[_0x3188('0x1e')](_0x3188('0x1a'),_0x5b968e,_0x3ae228[_0x3188('0x1e')][_0x3188('0x1f')]);return _0x4dcadb(_0x3ae228[_0x3188('0x1e')][_0x3188('0x1f')]);}else{logger[_0x3188('0x19')](_0x3188('0x1a'),_0x5b968e,'request\x20sent');_0x4dcadb(_0x3ae228[_0x3188('0x20')][_0x3188('0x1f')]);}})['catch'](function(_0x518b2f){logger['error'](_0x3188('0x1a'),_0x5b968e,_0x518b2f);_0x5c029f(_0x518b2f);});});}function respondWithStatusCode(_0x8b207,_0xd292b5){_0xd292b5=_0xd292b5||0xcc;return function(_0x5980f3){if(_0x5980f3){return _0x8b207['sendStatus'](_0xd292b5);}return _0x8b207[_0x3188('0x21')](_0xd292b5)[_0x3188('0x22')]();};}function respondWithResult(_0x375077,_0xaf6a8e){_0xaf6a8e=_0xaf6a8e||0xc8;return function(_0xb61717){if(_0xb61717){return _0x375077['status'](_0xaf6a8e)[_0x3188('0x23')](_0xb61717);}};}function respondWithFilteredResult(_0x33f882,_0x5a2e67){return function(_0xcbaec9){if(_0xcbaec9){var _0x4be6c3=typeof _0x5a2e67['offset']===_0x3188('0x24')&&typeof _0x5a2e67[_0x3188('0x25')]===_0x3188('0x24');var _0x1aeaba=_0xcbaec9[_0x3188('0x26')];var _0x2cd060=_0x4be6c3?0x0:_0x5a2e67[_0x3188('0x27')];var _0x11021c=_0x4be6c3?_0xcbaec9['count']:_0x5a2e67[_0x3188('0x27')]+_0x5a2e67[_0x3188('0x25')];var _0x52bb13;if(_0x11021c>=_0x1aeaba){_0x11021c=_0x1aeaba;_0x52bb13=0xc8;}else{_0x52bb13=0xce;}_0x33f882[_0x3188('0x21')](_0x52bb13);return _0x33f882[_0x3188('0x28')](_0x3188('0x29'),_0x2cd060+'-'+_0x11021c+'/'+_0x1aeaba)[_0x3188('0x23')](_0xcbaec9);}return null;};}function saveUpdates(_0x20e6aa){return function(_0x1f1c6f){if(_0x1f1c6f){return _0x1f1c6f[_0x3188('0x2a')](_0x20e6aa)[_0x3188('0x18')](function(_0x57c21c){return _0x57c21c;});}return null;};}function removeEntity(_0x44fa15){return function(_0x5d97d0){if(_0x5d97d0){return _0x5d97d0[_0x3188('0x2b')]()['then'](function(){var _0x3f82ce=_0x5d97d0[_0x3188('0x2c')]({'plain':!![]});if(_0x3f82ce[_0x3188('0x2d')]===_0x3188('0x2e'))return;var _0x43b8ae=[{'name':_0x3188('0x2f'),'value':_0x3188('0x30'),'ignore':!![]},{'name':_0x3188('0x31'),'value':_0x3188('0x32'),'ignore':![]},{'name':_0x3188('0x33'),'value':_0x3188('0x34'),'ignore':![]}];var _0x2d86fa=_(_0x43b8ae)[_0x3188('0x35')](_0x3188('0x36'))[_0x3188('0x37')](_0x3188('0x38'))[_0x3188('0x38')]();if(_[_0x3188('0x39')](_0x2d86fa,_0x3f82ce['role'])){return;}var _0x47374b=_['find'](_0x43b8ae,[_0x3188('0x38'),_0x3f82ce[_0x3188('0x2d')]])['name'];return db[_0x3188('0x3a')][_0x3188('0x2b')]({'where':{'type':_0x47374b,'resourceId':_0x3f82ce['id']}})[_0x3188('0x18')](function(){return _0x5d97d0;});})[_0x3188('0x18')](function(){_0x44fa15[_0x3188('0x21')](0xcc)[_0x3188('0x22')]();});}};}function handleEntityNotFound(_0x2bef8e){return function(_0x51b7a9){if(!_0x51b7a9){_0x2bef8e['sendStatus'](0x194);}return _0x51b7a9;};}function handleError(_0xa876c8,_0x231e2d){_0x231e2d=_0x231e2d||0x1f4;return function(_0x3d298b){logger[_0x3188('0x1e')](_0x3d298b['stack']);if(_0x3d298b[_0x3188('0x3b')]){delete _0x3d298b[_0x3188('0x3b')];}_0xa876c8[_0x3188('0x21')](_0x231e2d)[_0x3188('0x3c')](_0x3d298b);};}exports['index']=function(_0x201ef2,_0x4a290f){var _0x130e73={},_0x57895f={'count':0x0,'rows':[]};var _0x2bd31e=_(db[_0x3188('0x3d')][_0x3188('0x3e')])[_0x3188('0x37')](function(_0x22f8da){return{'name':_0x22f8da[_0x3188('0x3f')],'type':_0x22f8da[_0x3188('0x40')][_0x3188('0x41')]};})[_0x3188('0x35')](function(_0x138d90){return!_['includes']([_0x3188('0x42'),_0x3188('0x43')],_0x138d90[_0x3188('0x3b')]);})[_0x3188('0x38')]();_0x130e73=qs[_0x3188('0x44')](_0x2bd31e,_0x201ef2);var _0x332b49={'where':_0x130e73['where']};return db[_0x3188('0x3d')]['count'](_0x332b49)[_0x3188('0x18')](function(_0x459a58){_0x57895f[_0x3188('0x26')]=_0x459a58;if(_0x201ef2[_0x3188('0x45')][_0x3188('0x46')]){_0x130e73['include']=[{'all':!![]}];}if(!_['includes'](_0x130e73['attributes'],'id')){_0x130e73['attributes']['push']('id');}return db[_0x3188('0x3d')][_0x3188('0x47')](_0x130e73);})[_0x3188('0x18')](function(_0x1b40b1){_0x57895f[_0x3188('0x48')]=_0x1b40b1;if(_0x201ef2['query'][_0x3188('0x49')]==='true'){var _0xf40deb=[];for(var _0x4fc779=0x0;_0x4fc779<_0x57895f[_0x3188('0x48')][_0x3188('0x4a')];_0x4fc779++){_0xf40deb['push'](get_open_tabs(_0x3188('0x4b'),_0x57895f[_0x3188('0x48')][_0x4fc779][_0x3188('0x4c')]));_0xf40deb[_0x3188('0x4d')](get_open_tabs(_0x3188('0x4e'),_0x57895f['rows'][_0x4fc779]['dataValues']));_0xf40deb[_0x3188('0x4d')](get_open_tabs(_0x3188('0x4f'),_0x57895f['rows'][_0x4fc779][_0x3188('0x4c')]));_0xf40deb[_0x3188('0x4d')](get_open_tabs('mail',_0x57895f[_0x3188('0x48')][_0x4fc779][_0x3188('0x4c')]));_0xf40deb[_0x3188('0x4d')](get_open_tabs(_0x3188('0x50'),_0x57895f[_0x3188('0x48')][_0x4fc779]['dataValues']));_0xf40deb[_0x3188('0x4d')](get_open_tabs('whatsapp',_0x57895f[_0x3188('0x48')][_0x4fc779][_0x3188('0x4c')]));}return BPromise[_0x3188('0x51')](_0xf40deb)[_0x3188('0x18')](function(_0xe4cbb0){return _0x57895f;});}else{return _0x57895f;}})[_0x3188('0x18')](respondWithFilteredResult(_0x4a290f,_0x130e73))[_0x3188('0x52')](handleError(_0x4a290f,null));};exports[_0x3188('0x53')]=function(_0x5f7205,_0xf21263){var _0x308364={'raw':![],'where':{'id':_0x5f7205['params']['id']}},_0x50c08d={};_0x50c08d[_0x3188('0x54')]=_['differenceBy'](_[_0x3188('0x55')](db[_0x3188('0x3d')]['rawAttributes']),[_0x3188('0x42'),_0x3188('0x43')]);_0x50c08d[_0x3188('0x45')]=_[_0x3188('0x55')](_0x5f7205[_0x3188('0x45')]);_0x50c08d[_0x3188('0x56')]=_[_0x3188('0x57')](_0x50c08d[_0x3188('0x54')],_0x50c08d['query']);_0x308364[_0x3188('0x58')]=_[_0x3188('0x57')](_0x50c08d['model'],qs[_0x3188('0x59')](_0x5f7205['query'][_0x3188('0x59')]));_0x308364[_0x3188('0x58')]=_0x308364[_0x3188('0x58')]['length']?_0x308364['attributes']:_0x50c08d['model'];if(_0x5f7205['query']['includeAll']){_0x308364[_0x3188('0x5a')]=[{'all':!![]}];}_0x308364=_[_0x3188('0x5b')]({},_0x308364,_0x5f7205['options']);if(!_[_0x3188('0x39')](_0x308364[_0x3188('0x58')],'id')){_0x308364['attributes']['push']('id');}return db['User']['find'](_0x308364)['then'](handleEntityNotFound(_0xf21263,null))[_0x3188('0x18')](function(_0x4763a5){var _0x9860ab=[];values=_0x4763a5;if(_0x5f7205[_0x3188('0x45')][_0x3188('0x49')]==='true'){_0x9860ab[_0x3188('0x4d')](get_open_tabs(_0x3188('0x4b'),_0x4763a5['dataValues']));_0x9860ab['push'](get_open_tabs('sms',_0x4763a5[_0x3188('0x4c')]));_0x9860ab[_0x3188('0x4d')](get_open_tabs(_0x3188('0x50'),_0x4763a5['dataValues']));_0x9860ab[_0x3188('0x4d')](get_open_tabs(_0x3188('0x5c'),_0x4763a5[_0x3188('0x4c')]));_0x9860ab[_0x3188('0x4d')](get_open_tabs(_0x3188('0x4f'),_0x4763a5['dataValues']));_0x9860ab[_0x3188('0x4d')](get_open_tabs(_0x3188('0x5d'),_0x4763a5[_0x3188('0x4c')]));return BPromise['all'](_0x9860ab);}else{return values;}})[_0x3188('0x18')](function(_0x138a0e){return values;})[_0x3188('0x18')](respondWithResult(_0xf21263,null))[_0x3188('0x52')](handleError(_0xf21263,null));};exports['update']=function(_0x33d751,_0x3808c3){if(_0x33d751[_0x3188('0x5e')]['id']){delete _0x33d751[_0x3188('0x5e')]['id'];}delete _0x33d751[_0x3188('0x5e')][_0x3188('0x2d')];return db[_0x3188('0x3d')]['find']({'where':{'id':_0x33d751[_0x3188('0x5f')]['id']}})[_0x3188('0x18')](handleEntityNotFound(_0x3808c3,null))[_0x3188('0x18')](saveUpdates(_0x33d751[_0x3188('0x5e')],null))[_0x3188('0x18')](respondWithResult(_0x3808c3,null))[_0x3188('0x52')](handleError(_0x3808c3,null));};exports[_0x3188('0x60')]=function(_0x565fab,_0x236ed8){return db[_0x3188('0x3d')][_0x3188('0x60')]()[_0x3188('0x18')](respondWithResult(_0x236ed8,null))[_0x3188('0x52')](handleError(_0x236ed8,null));};exports['addContacts']=function(_0xd6b6c8,_0x587c00){return db['User']['find']({'where':{'id':_0xd6b6c8[_0x3188('0x5f')]['id']}})[_0x3188('0x18')](handleEntityNotFound(_0x587c00,null))[_0x3188('0x18')](function(_0x3ee08e){if(_0x3ee08e){return _0x3ee08e[_0x3188('0x61')](_0xd6b6c8[_0x3188('0x5e')][_0x3188('0x62')],_[_0x3188('0x63')](_0xd6b6c8[_0x3188('0x5e')],[_0x3188('0x62'),'id'])||{});}})['then'](respondWithResult(_0x587c00,null))[_0x3188('0x52')](handleError(_0x587c00,null));};function validateUser(_0x5d3318){return new BPromise(function(_0x4c90ff,_0x4ad2c6){if(_0x5d3318['internal'])return _0x4c90ff(_0x5d3318);return db[_0x3188('0x64')][_0x3188('0x65')](0x1)[_0x3188('0x18')](function(_0x8b6d37){if(_0x8b6d37[_0x3188('0x66')])authService[_0x3188('0x67')](_0x5d3318['password']);db[_0x3188('0x3d')][_0x3188('0x68')]('internal')[_0x3188('0x18')](function(_0x3fceb8){if(_[_0x3188('0x69')](_0x3fceb8)){_0x5d3318[_0x3188('0x6a')]=_0x8b6d37[_0x3188('0x6b')]||0x1;return;}if(_[_0x3188('0x69')](_0x8b6d37['min_internal'])||_0x8b6d37[_0x3188('0x6b')]===_0x3fceb8){_0x5d3318[_0x3188('0x6a')]=_0x3fceb8+0x1;return;}if(_0x8b6d37['min_internal']>_0x3fceb8){_0x5d3318[_0x3188('0x6a')]=_0x8b6d37[_0x3188('0x6b')];return;}return db[_0x3188('0x6c')]['query'](_0x3188('0x6d'),{'type':db[_0x3188('0x6c')][_0x3188('0x6e')][_0x3188('0x6f')]})[_0x3188('0x18')](function(_0x1bfd9b){if(_0x1bfd9b&&_0x1bfd9b[_0x3188('0x4a')]){for(var _0x54a8e1=0x0,_0x5eb047=_0x1bfd9b['length'];_0x54a8e1<_0x5eb047&&_['isNil'](_0x5d3318[_0x3188('0x6a')]);_0x54a8e1++){if(_0x8b6d37[_0x3188('0x6b')]<=_0x1bfd9b[_0x54a8e1][_0x3188('0x70')]){_0x5d3318[_0x3188('0x6a')]=_0x1bfd9b[_0x54a8e1][_0x3188('0x70')];}else if(_0x8b6d37['min_internal']>_0x1bfd9b[_0x54a8e1][_0x3188('0x70')]&&_0x8b6d37['min_internal']<=_0x1bfd9b[_0x54a8e1]['to']){_0x5d3318[_0x3188('0x6a')]=_0x8b6d37[_0x3188('0x6b')];}}}if(_['isNil'](_0x5d3318[_0x3188('0x6a')])){_0x5d3318['internal']=_0x3fceb8+0x1;}return _0x4c90ff(_0x5d3318);});});})[_0x3188('0x52')](function(_0x1a7c3b){_0x4ad2c6(_0x1a7c3b);});});}function updateUser(_0x51a8fc){return new BPromise(function(_0x3b4240,_0x4ef102){try{if(_0x51a8fc[_0x3188('0x71')]){_0x51a8fc[_0x3188('0x72')]=_0x51a8fc[_0x3188('0x6a')];_0x51a8fc[_0x3188('0x73')]={'mailbox':_0x51a8fc[_0x3188('0x6a')],'password':_0x51a8fc['password'],'fullname':_0x51a8fc[_0x3188('0x74')],'email':_0x51a8fc[_0x3188('0x75')]};}if(_0x51a8fc['role']===_0x3188('0x32')){if(!_0x51a8fc[_0x3188('0x76')])_0x51a8fc['permissions']=['101',_0x3188('0x77'),_0x3188('0x78'),_0x3188('0x79'),_0x3188('0x7a'),_0x3188('0x7b'),_0x3188('0x7c'),'106',_0x3188('0x7d'),_0x3188('0x7e'),_0x3188('0x7f'),'100',_0x3188('0x80'),_0x3188('0x81'),_0x3188('0x82')];}_0x3b4240(_0x51a8fc);}catch(_0x310f46){_0x4ef102(_0x310f46);}});}exports[_0x3188('0x83')]=function(_0xa0f9fa,_0x53b834){if(_0xa0f9fa['user']['role']===_0x3188('0x32'))throw new Error(_0x3188('0x84'));if(_0xa0f9fa['body'][_0x3188('0x2d')]===_0x3188('0x30')&&_0xa0f9fa[_0x3188('0x30')][_0x3188('0x2d')]!==_0x3188('0x2e')){throw new Error(_0x3188('0x85'));}if(_0xa0f9fa['body'][_0x3188('0x2d')]===_0x3188('0x2e')&&_0xa0f9fa[_0x3188('0x30')][_0x3188('0x2d')]!==_0x3188('0x2e')){throw new Error(_0x3188('0x86'));}return licenseUtil[_0x3188('0x87')]([_0xa0f9fa[_0x3188('0x5e')]])[_0x3188('0x18')](function(){return validateUser(_0xa0f9fa[_0x3188('0x5e')]);})[_0x3188('0x18')](function(_0x598c91){return updateUser(_0x598c91)[_0x3188('0x18')](function(_0x371004){if(_0x371004[_0x3188('0x2d')]===_0x3188('0x2e')){_0x371004[_0x3188('0x88')]=_0xa0f9fa[_0x3188('0x30')]['settingsEnabled'];delete _0x371004[_0x3188('0x89')];}return _0x371004;});})[_0x3188('0x18')](function(_0x3fb35c){return db[_0x3188('0x3d')][_0x3188('0x83')](_0x3fb35c,{'include':[{'model':db['VoiceMail'],'as':_0x3188('0x73')}]});})[_0x3188('0x18')](function(_0x51320c){if(_0xa0f9fa[_0x3188('0x5e')][_0x3188('0x2d')]===_0x3188('0x30'))return _0x51320c;if(_0xa0f9fa['user'][_0x3188('0x2d')]!=='user')return _0x51320c;return db[_0x3188('0x8a')][_0x3188('0x8b')]({'where':{'name':_0x51320c[_0x3188('0x2d')]===_0x3188('0x32')?_0x3188('0x31'):_0x3188('0x33'),'userProfileId':_0xa0f9fa['user']['userProfileId']},'raw':!![]})[_0x3188('0x18')](function(_0x471b8a){if(!_0x471b8a||_0x471b8a[_0x3188('0x8c')]!=0x0)return _0x51320c;return db[_0x3188('0x3a')][_0x3188('0x83')]({'name':_0x51320c[_0x3188('0x3b')],'resourceId':_0x51320c['id'],'type':_0x471b8a['name'],'sectionId':_0x471b8a['id']},{})[_0x3188('0x18')](function(){return _0x51320c;});})[_0x3188('0x52')](function(_0x397482){logger[_0x3188('0x1e')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x397482);throw _0x397482;});})[_0x3188('0x18')](respondWithResult(_0x53b834,0xc9))['catch'](handleError(_0x53b834,null));};exports['bulkCreate']=function(_0x4bd06f,_0x570fd4){var _0x3028c6=_0x4bd06f[_0x3188('0x5e')];var _0x50f6d7=[];if(_0x4bd06f[_0x3188('0x30')][_0x3188('0x2d')]==='agent')throw new Error(_0x3188('0x84'));if(_['some'](_0x3028c6,[_0x3188('0x2d'),_0x3188('0x30')])&&_0x4bd06f['user'][_0x3188('0x2d')]!==_0x3188('0x2e')){throw new Error(_0x3188('0x85'));}if(_[_0x3188('0x8d')](_0x3028c6,[_0x3188('0x2d'),_0x3188('0x2e')])&&_0x4bd06f[_0x3188('0x30')][_0x3188('0x2d')]!==_0x3188('0x2e')){throw new Error(_0x3188('0x8e'));}return licenseUtil['checkUserLimits'](_0x3028c6)[_0x3188('0x18')](function(){return validateUser(_0x3028c6[0x0]);})[_0x3188('0x18')](function(){for(var _0x298121=0x1;_0x298121<_0x3028c6['length'];_0x298121++){var _0x96eda5=_0x3028c6[_0x298121-0x1]['internal'];if(!_0x3028c6[_0x298121][_0x3188('0x6a')])_0x3028c6[_0x298121]['internal']=_0x96eda5+0x1;_0x50f6d7['push'](validateUser(_0x3028c6[_0x298121]));}return BPromise['all'](_0x50f6d7);})['then'](function(){_0x50f6d7=[];for(var _0x3e7a0e=0x0;_0x3e7a0e<_0x3028c6[_0x3188('0x4a')];_0x3e7a0e++){_0x50f6d7[_0x3188('0x4d')](updateUser(_0x3028c6[_0x3e7a0e]));}return BPromise[_0x3188('0x51')](_0x50f6d7);})[_0x3188('0x18')](function(){return BPromise['each'](_0x3028c6,function(_0x38df3a){return db['User']['create'](_0x38df3a,{'include':[{'model':db[_0x3188('0x73')],'as':_0x3188('0x73')}]})['then'](function(_0x14d35b){_0x38df3a['id']=_0x14d35b['id'];return _0x38df3a;});});})[_0x3188('0x18')](function(_0x2c3f21){if(_0x4bd06f[_0x3188('0x5e')][_0x3188('0x2d')]===_0x3188('0x30'))return _0x2c3f21;if(_0x4bd06f[_0x3188('0x30')]['role']!==_0x3188('0x30'))return _0x2c3f21;var _0xa54e8a=_[_0x3188('0x8d')](_0x2c3f21,function(_0x1df7db){return _0x1df7db[_0x3188('0x2d')]===_0x3188('0x32')||_0x1df7db[_0x3188('0x2d')]===_0x3188('0x34');});if(!_0xa54e8a)return _0x2c3f21;return db[_0x3188('0x8a')]['findAll']({'where':{'name':{'$or':[_0x3188('0x31'),'Telephones']},'userProfileId':_0x4bd06f[_0x3188('0x30')][_0x3188('0x89')]},'raw':!![]})[_0x3188('0x18')](function(_0x1bfec4){if(_[_0x3188('0x8f')](_0x1bfec4)||!_[_0x3188('0x8d')](_0x1bfec4,[_0x3188('0x8c'),0x0]))return _0x2c3f21;_0x50f6d7=[];var _0x1d657f=_(_0x1bfec4)[_0x3188('0x37')](function(_0x378a11){if(_0x378a11[_0x3188('0x8c')]===0x1)return;return _0x378a11[_0x3188('0x3b')]==='Agents'?_0x3188('0x32'):_0x3188('0x34');})[_0x3188('0x90')]()[_0x3188('0x38')]();for(var _0x2f32ba=0x0;_0x2f32ba<_0x2c3f21[_0x3188('0x4a')];_0x2f32ba++){if(!_[_0x3188('0x39')](_0x1d657f,_0x2c3f21[_0x2f32ba]['role']))return;var _0x97f747=_0x2c3f21[_0x2f32ba][_0x3188('0x2d')]===_0x3188('0x32')?_0x3188('0x31'):_0x3188('0x33');_0x50f6d7['push'](db['UserProfileResource'][_0x3188('0x83')]({'name':_0x2c3f21[_0x2f32ba][_0x3188('0x3b')],'resourceId':_0x2c3f21[_0x2f32ba]['id'],'type':_0x97f747,'sectionId':_[_0x3188('0x8b')](_0x1bfec4,[_0x3188('0x3b'),_0x97f747])['id']},{}));}return BPromise[_0x3188('0x51')](_0x50f6d7);});})['then'](respondWithResult(_0x570fd4,0xc9))[_0x3188('0x52')](handleError(_0x570fd4,null));};exports[_0x3188('0x91')]=function(_0x403ac1,_0x5a98c8){if(_0x403ac1[_0x3188('0x5e')]['id']){delete _0x403ac1[_0x3188('0x5e')]['id'];}return db[_0x3188('0x3d')][_0x3188('0x8b')]({'where':{'id':_0x403ac1[_0x3188('0x5f')]['id']}})[_0x3188('0x18')](function(_0x2156ea){if(!_0x2156ea)return null;if(_0x2156ea['id']===_0x403ac1['user']['id']){if(!_0x403ac1[_0x3188('0x5e')][_0x3188('0x92')]||!_0x403ac1[_0x3188('0x5e')]['newPassword']){throw new db['Sequelize'][(_0x3188('0x93'))](_0x3188('0x94'));}if(!_0x2156ea['authenticate'](_0x403ac1['body']['oldPassword'])){throw new db['Sequelize']['ValidationError'](_0x3188('0x95'));}if(_0x403ac1[_0x3188('0x5e')]['oldPassword']===_0x403ac1['body'][_0x3188('0x96')]){throw new db['Sequelize'][(_0x3188('0x93'))](_0x3188('0x97'));}}else if(_0x403ac1['user'][_0x3188('0x2d')]===_0x3188('0x2e')){if(!_0x403ac1[_0x3188('0x5e')][_0x3188('0x96')]){throw new db[(_0x3188('0x98'))]['ValidationError']('Invalid\x20body\x20format.\x20Use\x20newPassword');}}else if(_0x403ac1['user'][_0x3188('0x2d')]===_0x3188('0x30')){if(!_0x403ac1[_0x3188('0x5e')]['newPassword']){throw new db[(_0x3188('0x98'))][(_0x3188('0x93'))]('Invalid\x20body\x20format.\x20Use\x20newPassword');}if(_0x2156ea[_0x3188('0x2d')]!=='agent'){throw new db[(_0x3188('0x98'))]['ValidationError'](_0x3188('0x84'));}}else{throw new db[(_0x3188('0x98'))][(_0x3188('0x93'))]('Unauthorized');}return _0x2156ea;})['then'](handleEntityNotFound(_0x5a98c8,null))[_0x3188('0x18')](function(_0x5f453e){return db[_0x3188('0x64')][_0x3188('0x99')]({'attributes':['id',_0x3188('0x66'),_0x3188('0x9a'),_0x3188('0x9b')]})[_0x3188('0x18')](function(_0x4e46e1){if(_0x4e46e1[_0x3188('0x66')])authService[_0x3188('0x67')](_0x403ac1['body'][_0x3188('0x96')]);if(!_0x4e46e1[_0x3188('0x9a')]||!_0x5f453e[_0x3188('0x9c')])return _0x5f453e;authService['validatePasswordHistory'](_0x403ac1[_0x3188('0x5e')][_0x3188('0x96')],_0x5f453e[_0x3188('0x9c')],_0x4e46e1[_0x3188('0x9b')]);return _0x5f453e;})[_0x3188('0x18')](saveUpdates({'password':_0x403ac1['body'][_0x3188('0x96')],'passwordResetAt':_0x403ac1[_0x3188('0x30')]['id']==_0x403ac1['params']['id']?moment():null,'previousPasswords':authService[_0x3188('0x9d')](_0x403ac1[_0x3188('0x5e')]['newPassword'],_0x5f453e[_0x3188('0x9c')])},null));})[_0x3188('0x18')](respondWithResult(_0x5a98c8,null))[_0x3188('0x52')](handleError(_0x5a98c8,null));};exports['addQueues']=function(_0x140105,_0x2ddf08){var _0xaa6779=_0x140105['body'][_0x3188('0x9e')];return db['User'][_0x3188('0x8b')]({'where':{'id':_0x140105[_0x3188('0x5f')]['id']},'attributes':['id',_0x3188('0x3b'),_0x3188('0x2d'),_0x3188('0x9f'),_0x3188('0xa0'),_0x3188('0xa1'),_0x3188('0xa2')]})[_0x3188('0x18')](handleEntityNotFound(_0x2ddf08,null))[_0x3188('0x18')](function(_0x166f22){if(_0x166f22){if(!utils[_0x3188('0xa3')](_0xaa6779)){throw new db[(_0x3188('0x98'))][(_0x3188('0x93'))]('Unknown\x20channel');}return _0x166f22[_0x3188('0xa4')+_[_0x3188('0xa5')](_0xaa6779['toLowerCase']())+_0x3188('0xa6')](_0x140105[_0x3188('0x5e')]['ids'],{'penalty':_0x140105['body'][_0x3188('0xa7')]||0x0})[_0x3188('0xa8')](function(_0x6a23e6){for(var _0x8607bf=0x0;_0x8607bf<_0x140105['body'][_0x3188('0x62')][_0x3188('0x4a')];_0x8607bf+=0x1){var _0x485669={'UserId':Number(_0x140105[_0x3188('0x5f')]['id'])};_0x485669[_[_0x3188('0xa5')](_0xaa6779['toLowerCase']())+_0x3188('0xa9')]=Number(_0x140105[_0x3188('0x5e')]['ids'][_0x8607bf]);socket['emit']('user'+_['capitalize'](_0xaa6779[_0x3188('0xaa')]())+_0x3188('0xab'),_0x485669);}return _0x6a23e6;})[_0x3188('0x18')](function(){if(_0xaa6779===_0x3188('0xac')){return db[_0x3188('0xad')][_0x3188('0x47')]({'where':{'id':_0x140105['body'][_0x3188('0x62')]||[]},'raw':!![],'attributes':['id','name']});}})[_0x3188('0x18')](function(_0x3ef3f8){var _0x14d3f1=_0x166f22[_0x3188('0x2c')]({'plain':!![]});var _0x1f1b05=[];if(_0xaa6779===_0x3188('0xac')&&_0x14d3f1[_0x3188('0x2d')]===_0x3188('0x32')&&_0x14d3f1['online']){for(var _0x26b120=0x0;_0x26b120<_0x3ef3f8[_0x3188('0x4a')];_0x26b120+=0x1){_0x1f1b05[_0x3188('0x4d')]({'membername':_0x14d3f1['name'],'UserId':_0x14d3f1['id'],'queue_name':_0x3ef3f8[_0x26b120][_0x3188('0x3b')],'VoiceQueueId':_0x3ef3f8[_0x26b120]['id'],'interface':_['isNil'](_0x14d3f1['interface'])?util[_0x3188('0xae')]('SIP/%s',_0x14d3f1['name']):_0x14d3f1[_0x3188('0xa2')],'paused':_0x14d3f1[_0x3188('0xa1')]||![],'penalty':_0x140105[_0x3188('0x5e')][_0x3188('0xa7')]||0x0});}return BPromise[_0x3188('0xaf')](_0x1f1b05,function(_0x3f4ccd){return db[_0x3188('0xb0')][_0x3188('0xb1')](_0x3f4ccd);});}return _0x166f22;});}})['then'](respondWithStatusCode(_0x2ddf08,null))['catch'](handleError(_0x2ddf08,null));};exports['removeQueues']=function(_0x3de1d6,_0x1039da){var _0x1d96fd;return db[_0x3188('0x3d')][_0x3188('0x8b')]({'where':{'id':_0x3de1d6[_0x3188('0x5f')]['id']},'attributes':['id',_0x3188('0x3b'),'role']})[_0x3188('0x18')](handleEntityNotFound(_0x1039da,null))[_0x3188('0x18')](function(_0x1b56be){if(_0x1b56be){_0x1d96fd=_0x1b56be;if(!_0x3de1d6[_0x3188('0x45')][_0x3188('0x9e')]||!utils[_0x3188('0xa3')](_0x3de1d6['query'][_0x3188('0x9e')])){throw new db[(_0x3188('0x98'))][(_0x3188('0x93'))]('Unknown\x20channel');}return _0x1b56be[_0x3188('0xb2')+_[_0x3188('0xa5')](_0x3de1d6['query']['channel'][_0x3188('0xaa')]())+_0x3188('0xa6')](_0x3de1d6[_0x3188('0x45')][_0x3188('0x62')]);}})[_0x3188('0x18')](function(_0x9e879b){if(_[_0x3188('0xb3')](_0x3de1d6[_0x3188('0x45')][_0x3188('0x62')])){for(var _0xfb9fc9=0x0;_0xfb9fc9<_0x3de1d6[_0x3188('0x45')][_0x3188('0x62')][_0x3188('0x4a')];_0xfb9fc9+=0x1){var _0x380c3b={'UserId':Number(_0x3de1d6['params']['id'])};_0x380c3b[_[_0x3188('0xa5')](_0x3de1d6[_0x3188('0x45')][_0x3188('0x9e')][_0x3188('0xaa')]())+_0x3188('0xa9')]=Number(_0x3de1d6[_0x3188('0x45')]['ids'][_0xfb9fc9]);socket[_0x3188('0xb4')]('user'+_['capitalize'](_0x3de1d6[_0x3188('0x45')][_0x3188('0x9e')][_0x3188('0xaa')]())+'Queue:remove',_0x380c3b);}}else{var _0x380c3b={'UserId':Number(_0x3de1d6[_0x3188('0x5f')]['id'])};_0x380c3b[_[_0x3188('0xa5')](_0x3de1d6[_0x3188('0x45')][_0x3188('0x9e')]['toLowerCase']())+_0x3188('0xa9')]=Number(_0x3de1d6[_0x3188('0x45')][_0x3188('0x62')]);socket[_0x3188('0xb4')]('user'+_[_0x3188('0xa5')](_0x3de1d6['query'][_0x3188('0x9e')][_0x3188('0xaa')]())+_0x3188('0xb5'),_0x380c3b);}return _0x9e879b;})[_0x3188('0x18')](function(){if(_0x3de1d6['query'][_0x3188('0x9e')]===_0x3188('0xac')){return db[_0x3188('0xb0')]['destroy']({'where':{'UserId':_0x3de1d6[_0x3188('0x5f')]['id'],'VoiceQueueId':_0x3de1d6[_0x3188('0x45')]['ids']},'individualHooks':!![]})[_0x3188('0x18')](function(){return _0x1d96fd;});}return _0x1d96fd;})['then'](respondWithStatusCode(_0x1039da,null))[_0x3188('0x52')](handleError(_0x1039da,null));};exports[_0x3188('0xb6')]=function(_0x4fdf52,_0xacce00){_0x4fdf52[_0x3188('0x5e')][_0x3188('0xb7')]=_0x4fdf52[_0x3188('0xb8')]['filename'];return db[_0x3188('0x3d')]['find']({'where':{'id':_0x4fdf52['params']['id']}})[_0x3188('0x18')](handleEntityNotFound(_0xacce00,null))[_0x3188('0x18')](saveUpdates(_0x4fdf52[_0x3188('0x5e')],null))[_0x3188('0x18')](respondWithResult(_0xacce00,null))[_0x3188('0x52')](handleError(_0xacce00,null));};exports['getAvatar']=function(_0x462b12,_0x2dca13){var _0x738c8b=path[_0x3188('0xb9')](config[_0x3188('0xba')],_0x3188('0xbb'));return db[_0x3188('0x3d')][_0x3188('0x8b')]({'where':{'id':_0x462b12[_0x3188('0x5f')]['id']},'attributes':['id',_0x3188('0xb7')],'raw':!![]})[_0x3188('0x18')](handleEntityNotFound(_0x2dca13,null))[_0x3188('0x18')](function(_0x191d99){if(_0x191d99){if(_[_0x3188('0x69')](_0x191d99[_0x3188('0xb7')])){return _0x2dca13[_0x3188('0xbc')](_0x738c8b);}else{if(!fs[_0x3188('0xbd')](path[_0x3188('0xb9')](config[_0x3188('0xba')],_0x3188('0xbe'),_0x191d99[_0x3188('0xb7')]))){return _0x2dca13[_0x3188('0xbc')](_0x738c8b);}return _0x2dca13[_0x3188('0xbc')](path[_0x3188('0xb9')](config['root'],_0x3188('0xbe'),_0x191d99[_0x3188('0xb7')]));}}})[_0x3188('0x52')](handleError(_0x2dca13,null));};exports['getOpenTabs']=function(_0x22510c,_0x900157){return db[_0x3188('0x3d')]['find']({'where':{'id':_0x22510c[_0x3188('0x5f')]['id']},'attributes':['id']})[_0x3188('0x18')](handleEntityNotFound(_0x900157,null))[_0x3188('0x18')](function(_0x1ec199){var _0x1ca6b0=[];values=_0x1ec199['dataValues'];_0x1ca6b0[_0x3188('0x4d')](get_open_tabs(_0x3188('0x4b'),_0x1ec199[_0x3188('0x4c')]));_0x1ca6b0[_0x3188('0x4d')](get_open_tabs(_0x3188('0x4e'),_0x1ec199[_0x3188('0x4c')]));_0x1ca6b0['push'](get_open_tabs('openchannel',_0x1ec199[_0x3188('0x4c')]));_0x1ca6b0[_0x3188('0x4d')](get_open_tabs(_0x3188('0x5c'),_0x1ec199[_0x3188('0x4c')]));_0x1ca6b0[_0x3188('0x4d')](get_open_tabs(_0x3188('0x4f'),_0x1ec199[_0x3188('0x4c')]));_0x1ca6b0['push'](get_open_tabs(_0x3188('0x5d'),_0x1ec199['dataValues']));return BPromise['all'](_0x1ca6b0);})[_0x3188('0x18')](function(_0x206a98){var _0x4dd44e=[];if(_0x206a98){for(var _0x19f30e=0x0;_0x19f30e<values[_0x3188('0xbf')][_0x3188('0x4a')];_0x19f30e++){var _0x90a6bf=values[_0x3188('0xbf')][_0x19f30e];_0x4dd44e['push']({'channel':_0x3188('0xc0'),'id':_0x90a6bf['id'],'createdAt':_0x90a6bf['createdAt']});}for(var _0x19f30e=0x0;_0x19f30e<values[_0x3188('0xc1')][_0x3188('0x4a')];_0x19f30e++){var _0x90a6bf=values[_0x3188('0xc1')][_0x19f30e];_0x4dd44e[_0x3188('0x4d')]({'channel':_0x3188('0xc2'),'id':_0x90a6bf['id'],'createdAt':_0x90a6bf[_0x3188('0xc3')]});}for(var _0x19f30e=0x0;_0x19f30e<values['OpenchannelOpenTabs'][_0x3188('0x4a')];_0x19f30e++){var _0x90a6bf=values[_0x3188('0xc4')][_0x19f30e];_0x4dd44e[_0x3188('0x4d')]({'channel':_0x3188('0xc5'),'id':_0x90a6bf['id'],'createdAt':_0x90a6bf[_0x3188('0xc3')]});}for(var _0x19f30e=0x0;_0x19f30e<values[_0x3188('0xc6')][_0x3188('0x4a')];_0x19f30e++){var _0x90a6bf=values['MailOpenTabs'][_0x19f30e];_0x4dd44e[_0x3188('0x4d')]({'channel':_0x3188('0xc7'),'id':_0x90a6bf['id'],'createdAt':_0x90a6bf[_0x3188('0xc3')]});}for(var _0x19f30e=0x0;_0x19f30e<values[_0x3188('0xc8')][_0x3188('0x4a')];_0x19f30e++){var _0x90a6bf=values['SmsOpenTabs'][_0x19f30e];_0x4dd44e[_0x3188('0x4d')]({'channel':_0x3188('0xc9'),'id':_0x90a6bf['id'],'createdAt':_0x90a6bf[_0x3188('0xc3')]});}for(var _0x19f30e=0x0;_0x19f30e<values['WhatsappOpenTabs']['length'];_0x19f30e++){var _0x90a6bf=values[_0x3188('0xca')][_0x19f30e];_0x4dd44e[_0x3188('0x4d')]({'channel':_0x3188('0xcb'),'id':_0x90a6bf['id'],'createdAt':_0x90a6bf[_0x3188('0xc3')]});}var _0x5268b7={'count':_0x4dd44e['length'],'rows':_0x4dd44e};return _0x5268b7;}else return null;})['then'](respondWithResult(_0x900157,null))['catch'](handleError(_0x900157,null));};exports[_0x3188('0xcc')]=function(_0x14687d,_0x26a3fc){var _0x3f0132={};var _0x27cdb7={};var _0xf4fcb;var _0x132914;return db['User'][_0x3188('0x99')]({'where':{'id':_0x14687d['params']['id']}})[_0x3188('0x18')](handleEntityNotFound(_0x26a3fc,null))[_0x3188('0x18')](function(_0x276769){if(_0x276769){_0xf4fcb=_0x276769;_0x27cdb7[_0x3188('0x54')]=_['keys'](db[_0x3188('0xcd')][_0x3188('0x3e')]);_0x27cdb7[_0x3188('0x45')]=_[_0x3188('0x55')](_0x14687d[_0x3188('0x45')]);_0x27cdb7[_0x3188('0x56')]=_[_0x3188('0x57')](_0x27cdb7[_0x3188('0x54')],_0x27cdb7[_0x3188('0x45')]);_0x3f0132[_0x3188('0x58')]=_['intersection'](_0x27cdb7['model'],qs[_0x3188('0x59')](_0x14687d[_0x3188('0x45')][_0x3188('0x59')]));_0x3f0132[_0x3188('0x58')]=_0x3f0132[_0x3188('0x58')][_0x3188('0x4a')]?_0x3f0132['attributes']:_0x27cdb7[_0x3188('0x54')];_0x3f0132[_0x3188('0xce')]=qs[_0x3188('0xcf')](_0x14687d[_0x3188('0x45')][_0x3188('0xcf')]);_0x3f0132['where']=qs[_0x3188('0x56')](_['pick'](_0x14687d[_0x3188('0x45')],_0x27cdb7[_0x3188('0x56')]));if(_0x14687d[_0x3188('0x45')]['filter']){_0x3f0132['where']=_['merge'](_0x3f0132[_0x3188('0xd0')],{'$or':_['map'](_0x3f0132[_0x3188('0x58')],function(_0x4129a5){var _0x50a567={};_0x50a567[_0x4129a5]={'$like':'%'+_0x14687d[_0x3188('0x45')][_0x3188('0x35')]+'%'};return _0x50a567;})});}_0x3f0132=_[_0x3188('0x5b')]({},_0x3f0132,_0x14687d[_0x3188('0xd1')]);return _0xf4fcb[_0x3188('0xcc')](_0x3f0132);}})[_0x3188('0x18')](function(_0x372a1c){if(_0x372a1c){_0x132914=_0x372a1c[_0x3188('0x4a')];if(_0x14687d[_0x3188('0x45')][_0x3188('0xd2')](_0x3188('0x46'))){_0x3f0132[_0x3188('0x5a')]=[{'model':db[_0x3188('0xd3')],'as':_0x3188('0xd4'),'required':![]},{'model':db[_0x3188('0xd5')],'as':_0x3188('0xd6'),'attributes':['id',_0x3188('0x3b'),_0x3188('0xd7')],'where':_0x14687d[_0x3188('0x45')][_0x3188('0xd8')]?{'id':_0x14687d[_0x3188('0x45')][_0x3188('0xd8')]}:undefined,'required':_0x14687d[_0x3188('0x45')][_0x3188('0xd8')]?!![]:![]}];}if(!_0x14687d[_0x3188('0x45')][_0x3188('0xd2')](_0x3188('0xd9'))){_0x3f0132[_0x3188('0x25')]=qs[_0x3188('0x25')](_0x14687d[_0x3188('0x45')]['limit']);_0x3f0132[_0x3188('0x27')]=qs[_0x3188('0x27')](_0x14687d['query'][_0x3188('0x27')]);}return _0xf4fcb[_0x3188('0xcc')](_0x3f0132);}})[_0x3188('0x18')](function(_0x431002){if(_0x431002){return _0x431002?{'count':_0x132914,'rows':_0x431002}:null;}})[_0x3188('0x18')](respondWithResult(_0x26a3fc,null))[_0x3188('0x52')](handleError(_0x26a3fc,null));};exports[_0x3188('0xda')]=function(_0x5e4d53,_0x33351f){var _0x91e136;var _0x102f24;var _0x304d45={};var _0x12b058;return db[_0x3188('0x3d')][_0x3188('0x99')]({'where':{'id':_0x5e4d53[_0x3188('0x5f')]['id']},'attributes':['id',_0x3188('0x3b'),_0x3188('0x2d')]})[_0x3188('0x18')](handleEntityNotFound(_0x33351f,null))[_0x3188('0x18')](function(_0x4f3c2b){if(!utils['isValidChannel'](_0x5e4d53[_0x3188('0x45')]['channel'])){throw new db[(_0x3188('0x98'))]['ValidationError'](_0x3188('0xdb'));}_0x91e136=_0x4f3c2b;var _0x5c0983={};_0x5c0983[_0x3188('0x54')]=_['keys'](db[_['capitalize'](_0x5e4d53[_0x3188('0x45')][_0x3188('0x9e')])+_0x3188('0xdc')][_0x3188('0x3e')]);_0x5c0983[_0x3188('0x45')]=_['keys'](_0x5e4d53[_0x3188('0x45')]);_0x5c0983['filters']=_['intersection'](_0x5c0983['model'],_0x5c0983[_0x3188('0x45')]);_0x304d45[_0x3188('0x58')]=_[_0x3188('0x57')](_0x5c0983[_0x3188('0x54')],qs[_0x3188('0x59')](_0x5e4d53['query'][_0x3188('0x59')]));_0x304d45[_0x3188('0x58')]=_0x304d45[_0x3188('0x58')]['length']?_0x304d45[_0x3188('0x58')]:_0x5c0983[_0x3188('0x54')];_0x304d45[_0x3188('0xce')]=qs[_0x3188('0xcf')](_0x5e4d53['query'][_0x3188('0xcf')]);_0x304d45[_0x3188('0xd0')]=qs[_0x3188('0x56')](_[_0x3188('0xdd')](_0x5e4d53[_0x3188('0x45')],_0x5c0983[_0x3188('0x56')]));if(_0x5e4d53[_0x3188('0x45')][_0x3188('0x35')]){_0x304d45[_0x3188('0xd0')]=_[_0x3188('0x5b')](_0x304d45['where'],{'$or':_[_0x3188('0x37')](_0x304d45[_0x3188('0x58')],function(_0x506b62){var _0x19d46e={};_0x19d46e[_0x506b62]={'$like':'%'+_0x5e4d53[_0x3188('0x45')][_0x3188('0x35')]+'%'};return _0x19d46e;})});}_0x304d45=_['merge']({},_0x304d45,_0x5e4d53[_0x3188('0xd1')]);switch(_0x91e136[_0x3188('0x2d')]){case _0x3188('0x2e'):return db[_[_0x3188('0xa5')](_0x5e4d53[_0x3188('0x45')][_0x3188('0x9e')])+_0x3188('0xdc')]['findAll'](_0x304d45);case'user':case _0x3188('0x32'):return _0x91e136[_0x3188('0x2c')+_[_0x3188('0xa5')](_0x5e4d53['query']['channel'])+_0x3188('0xa6')](_0x304d45);default:throw new db[(_0x3188('0x98'))][(_0x3188('0x93'))](_0x3188('0xde'));}})['then'](function(_0x5257e8){_0x12b058=_0x5257e8['length'];if(!_0x5e4d53[_0x3188('0x45')]['hasOwnProperty'](_0x3188('0xd9'))){_0x304d45['limit']=qs[_0x3188('0x25')](_0x5e4d53[_0x3188('0x45')][_0x3188('0x25')]);_0x304d45[_0x3188('0x27')]=qs[_0x3188('0x27')](_0x5e4d53[_0x3188('0x45')][_0x3188('0x27')]);}switch(_0x91e136[_0x3188('0x2d')]){case'admin':return db[_[_0x3188('0xa5')](_0x5e4d53[_0x3188('0x45')][_0x3188('0x9e')])+'Queue'][_0x3188('0x47')](_0x304d45);case _0x3188('0x30'):case'agent':return _0x91e136[_0x3188('0x2c')+_[_0x3188('0xa5')](_0x5e4d53[_0x3188('0x45')]['channel'])+_0x3188('0xa6')](_0x304d45);}})[_0x3188('0x18')](function(_0x2d32fa){return{'count':_0x12b058,'rows':_0x2d32fa};})[_0x3188('0x18')](respondWithResult(_0x33351f,null))[_0x3188('0x52')](handleError(_0x33351f,null));};exports[_0x3188('0xdf')]=function(_0x2e50ba,_0x27a48b){var _0x18b0cb={};var _0x3826e3={};var _0x50b668;var _0x1ef99b;return db[_0x3188('0x3d')][_0x3188('0x99')]({'where':{'id':_0x2e50ba[_0x3188('0x5f')]['id']}})[_0x3188('0x18')](handleEntityNotFound(_0x27a48b,null))[_0x3188('0x18')](function(_0x2c8c7e){if(_0x2c8c7e){_0x50b668=_0x2c8c7e;_0x3826e3[_0x3188('0x54')]=_['keys'](db[_0x3188('0xb0')]['rawAttributes']);_0x3826e3[_0x3188('0x45')]=_['keys'](_0x2e50ba[_0x3188('0x45')]);_0x3826e3[_0x3188('0x56')]=_['intersection'](_0x3826e3[_0x3188('0x54')],_0x3826e3[_0x3188('0x45')]);_0x18b0cb[_0x3188('0x58')]=_[_0x3188('0x57')](_0x3826e3['model'],qs[_0x3188('0x59')](_0x2e50ba[_0x3188('0x45')]['fields']));_0x18b0cb[_0x3188('0x58')]=_0x18b0cb[_0x3188('0x58')]['length']?_0x18b0cb[_0x3188('0x58')]:_0x3826e3[_0x3188('0x54')];_0x18b0cb[_0x3188('0xce')]=qs['sort'](_0x2e50ba[_0x3188('0x45')][_0x3188('0xcf')]);_0x18b0cb[_0x3188('0xd0')]=qs['filters'](_[_0x3188('0xdd')](_0x2e50ba[_0x3188('0x45')],_0x3826e3['filters']));if(_0x2e50ba[_0x3188('0x45')][_0x3188('0x35')]){_0x18b0cb[_0x3188('0xd0')]=_[_0x3188('0x5b')](_0x18b0cb[_0x3188('0xd0')],{'$or':_[_0x3188('0x37')](_0x18b0cb[_0x3188('0x58')],function(_0x2b6edf){var _0x14ceef={};_0x14ceef[_0x2b6edf]={'$like':'%'+_0x2e50ba[_0x3188('0x45')]['filter']+'%'};return _0x14ceef;})});}_0x18b0cb=_[_0x3188('0x5b')]({},_0x18b0cb,_0x2e50ba[_0x3188('0xd1')]);return _0x50b668[_0x3188('0xdf')](_0x18b0cb);}})[_0x3188('0x18')](function(_0x542235){if(_0x542235){_0x1ef99b=_0x542235[_0x3188('0x4a')];if(!_0x2e50ba['query'][_0x3188('0xd2')](_0x3188('0xd9'))){_0x18b0cb['limit']=qs['limit'](_0x2e50ba[_0x3188('0x45')]['limit']);_0x18b0cb[_0x3188('0x27')]=qs[_0x3188('0x27')](_0x2e50ba['query'][_0x3188('0x27')]);}return _0x50b668['getVoiceQueuesRt'](_0x18b0cb);}})[_0x3188('0x18')](function(_0x4050db){if(_0x4050db){return _0x4050db?{'count':_0x1ef99b,'rows':_0x4050db}:null;}})[_0x3188('0x18')](respondWithResult(_0x27a48b,null))[_0x3188('0x52')](handleError(_0x27a48b,null));};exports[_0x3188('0xe0')]=function(_0x24de23,_0x2beeb0){var _0x3a088f={};var _0x2bc0b5={};var _0x48d27c;var _0x3dc27c;return db[_0x3188('0x3d')][_0x3188('0x99')]({'where':{'id':_0x24de23['params']['id']}})[_0x3188('0x18')](handleEntityNotFound(_0x2beeb0,null))[_0x3188('0x18')](function(_0x2d7978){if(_0x2d7978){_0x48d27c=_0x2d7978;_0x2bc0b5['model']=_['keys'](db[_0x3188('0xe1')]['rawAttributes']);_0x2bc0b5['query']=_['keys'](_0x24de23['query']);_0x2bc0b5[_0x3188('0x56')]=_['intersection'](_0x2bc0b5['model'],_0x2bc0b5[_0x3188('0x45')]);_0x3a088f[_0x3188('0x58')]=_['intersection'](_0x2bc0b5['model'],qs[_0x3188('0x59')](_0x24de23[_0x3188('0x45')]['fields']));_0x3a088f[_0x3188('0x58')]=_0x3a088f[_0x3188('0x58')][_0x3188('0x4a')]?_0x3a088f[_0x3188('0x58')]:_0x2bc0b5['model'];_0x3a088f[_0x3188('0xce')]=qs[_0x3188('0xcf')](_0x24de23[_0x3188('0x45')][_0x3188('0xcf')]);_0x3a088f['where']=qs[_0x3188('0x56')](_['pick'](_0x24de23['query'],_0x2bc0b5[_0x3188('0x56')]));if(_0x24de23['query'][_0x3188('0x35')]){_0x3a088f[_0x3188('0xd0')]=_[_0x3188('0x5b')](_0x3a088f[_0x3188('0xd0')],{'$or':_[_0x3188('0x37')](_0x3a088f[_0x3188('0x58')],function(_0x48d10d){var _0x5023cf={};_0x5023cf[_0x48d10d]={'$like':'%'+_0x24de23['query'][_0x3188('0x35')]+'%'};return _0x5023cf;})});}_0x3a088f=_['merge']({},_0x3a088f,_0x24de23['options']);return _0x48d27c[_0x3188('0xe0')](_0x3a088f);}})[_0x3188('0x18')](function(_0x4b9917){if(_0x4b9917){_0x3dc27c=_0x4b9917[_0x3188('0x4a')];if(!_0x24de23[_0x3188('0x45')]['hasOwnProperty'](_0x3188('0xd9'))){_0x3a088f['limit']=qs[_0x3188('0x25')](_0x24de23['query'][_0x3188('0x25')]);_0x3a088f[_0x3188('0x27')]=qs[_0x3188('0x27')](_0x24de23[_0x3188('0x45')]['offset']);}return _0x48d27c['getGroups'](_0x3a088f);}})[_0x3188('0x18')](function(_0x5adfd8){if(_0x5adfd8){return _0x5adfd8?{'count':_0x3dc27c,'rows':_0x5adfd8}:null;}})[_0x3188('0x18')](respondWithResult(_0x2beeb0,null))[_0x3188('0x52')](handleError(_0x2beeb0,null));};exports['getRecordings']=function(_0x1b71ec,_0x4cf30b){var _0x12139c={'raw':!![],'where':{}};var _0x3261bc={};var _0x22685b={'count':0x0,'rows':[]};return db[_0x3188('0x3d')][_0x3188('0x99')]({'where':{'id':_0x1b71ec[_0x3188('0x5f')]['id']}})['then'](handleEntityNotFound(_0x4cf30b,null))['then'](function(_0xacae75){if(_0xacae75){_0x3261bc[_0x3188('0x54')]=_[_0x3188('0x55')](db[_0x3188('0xe2')][_0x3188('0x3e')]);_0x3261bc[_0x3188('0x45')]=_[_0x3188('0x55')](_0x1b71ec['query']);_0x3261bc[_0x3188('0x56')]=_['intersection'](_0x3261bc[_0x3188('0x54')],_0x3261bc[_0x3188('0x45')]);_0x12139c[_0x3188('0x58')]=_[_0x3188('0x57')](_0x3261bc[_0x3188('0x54')],qs[_0x3188('0x59')](_0x1b71ec[_0x3188('0x45')][_0x3188('0x59')]));_0x12139c[_0x3188('0x58')]=_0x12139c[_0x3188('0x58')][_0x3188('0x4a')]?_0x12139c[_0x3188('0x58')]:_0x3261bc[_0x3188('0x54')];if(!_0x1b71ec[_0x3188('0x45')]['hasOwnProperty'](_0x3188('0xd9'))){_0x12139c[_0x3188('0x25')]=qs['limit'](_0x1b71ec[_0x3188('0x45')][_0x3188('0x25')]);_0x12139c[_0x3188('0x27')]=qs[_0x3188('0x27')](_0x1b71ec[_0x3188('0x45')][_0x3188('0x27')]);}_0x12139c['order']=qs[_0x3188('0xcf')](_0x1b71ec[_0x3188('0x45')]['sort']);_0x12139c[_0x3188('0xd0')]=qs[_0x3188('0x56')](_['pick'](_0x1b71ec[_0x3188('0x45')],_0x3261bc[_0x3188('0x56')]));_0x12139c[_0x3188('0xd0')][_0x3188('0xe3')]=_0xacae75['id'];if(_0x1b71ec[_0x3188('0x45')][_0x3188('0x35')]){_0x12139c[_0x3188('0xd0')]=_['merge'](_0x12139c[_0x3188('0xd0')],{'$or':_[_0x3188('0x37')](_0x12139c[_0x3188('0x58')],function(_0x37d6ce){var _0x388901={};_0x388901[_0x37d6ce]={'$like':'%'+_0x1b71ec[_0x3188('0x45')][_0x3188('0x35')]+'%'};return _0x388901;})});}_0x12139c=_[_0x3188('0x5b')]({},_0x12139c,_0x1b71ec[_0x3188('0xd1')]);return db[_0x3188('0xe2')][_0x3188('0x26')]({'where':_0x12139c[_0x3188('0xd0')]})[_0x3188('0x18')](function(_0x193fda){_0x22685b['count']=_0x193fda;if(_0x1b71ec[_0x3188('0x45')]['includeAll']){_0x12139c[_0x3188('0x5a')]=[{'all':!![]}];}return db[_0x3188('0xe2')][_0x3188('0x47')](_0x12139c);})[_0x3188('0x18')](function(_0x2d7d2c){_0x22685b[_0x3188('0x48')]=_0x2d7d2c;return _0x22685b;});}})[_0x3188('0x18')](respondWithFilteredResult(_0x4cf30b,_0x12139c))[_0x3188('0x52')](handleError(_0x4cf30b,null));};exports[_0x3188('0xe4')]=function(_0x5647be,_0x12569f){var _0x167baf={'raw':!![],'where':{}};var _0x378d9d={};var _0x584ce7={'count':0x0,'rows':[]};return db[_0x3188('0x3d')][_0x3188('0x99')]({'where':{'id':_0x5647be[_0x3188('0x5f')]['id']}})[_0x3188('0x18')](handleEntityNotFound(_0x12569f,null))[_0x3188('0x18')](function(_0x5ad28e){if(_0x5ad28e){_0x378d9d[_0x3188('0x54')]=_[_0x3188('0x55')](db['ScreenRecording'][_0x3188('0x3e')]);_0x378d9d[_0x3188('0x45')]=_[_0x3188('0x55')](_0x5647be[_0x3188('0x45')]);_0x378d9d[_0x3188('0x56')]=_[_0x3188('0x57')](_0x378d9d['model'],_0x378d9d[_0x3188('0x45')]);_0x167baf[_0x3188('0x58')]=_[_0x3188('0x57')](_0x378d9d[_0x3188('0x54')],qs[_0x3188('0x59')](_0x5647be[_0x3188('0x45')][_0x3188('0x59')]));_0x167baf['attributes']=_0x167baf[_0x3188('0x58')]['length']?_0x167baf['attributes']:_0x378d9d[_0x3188('0x54')];if(!_0x5647be[_0x3188('0x45')]['hasOwnProperty'](_0x3188('0xd9'))){_0x167baf[_0x3188('0x25')]=qs[_0x3188('0x25')](_0x5647be[_0x3188('0x45')]['limit']);_0x167baf['offset']=qs[_0x3188('0x27')](_0x5647be[_0x3188('0x45')]['offset']);}_0x167baf[_0x3188('0xce')]=qs[_0x3188('0xcf')](_0x5647be[_0x3188('0x45')][_0x3188('0xcf')]);_0x167baf[_0x3188('0xd0')]=qs[_0x3188('0x56')](_[_0x3188('0xdd')](_0x5647be[_0x3188('0x45')],_0x378d9d[_0x3188('0x56')]));_0x167baf['where'][_0x3188('0xe3')]=_0x5ad28e['id'];if(_0x5647be[_0x3188('0x45')][_0x3188('0x35')]){_0x167baf[_0x3188('0xd0')]=_[_0x3188('0x5b')](_0x167baf[_0x3188('0xd0')],{'$or':_['map'](_0x167baf['attributes'],function(_0x26ccbd){var _0x36ff9b={};_0x36ff9b[_0x26ccbd]={'$like':'%'+_0x5647be[_0x3188('0x45')][_0x3188('0x35')]+'%'};return _0x36ff9b;})});}_0x167baf=_[_0x3188('0x5b')]({},_0x167baf,_0x5647be[_0x3188('0xd1')]);return db[_0x3188('0xe5')][_0x3188('0x26')]({'where':_0x167baf[_0x3188('0xd0')]})['then'](function(_0x49a42a){_0x584ce7[_0x3188('0x26')]=_0x49a42a;if(_0x5647be[_0x3188('0x45')][_0x3188('0x46')]){_0x167baf[_0x3188('0x5a')]=[{'all':!![]}];}return db[_0x3188('0xe5')][_0x3188('0x47')](_0x167baf);})[_0x3188('0x18')](function(_0x20a701){_0x584ce7[_0x3188('0x48')]=_0x20a701;return _0x584ce7;});}})[_0x3188('0x18')](respondWithFilteredResult(_0x12569f,_0x167baf))[_0x3188('0x52')](handleError(_0x12569f,null));};exports['getChatInteractions']=function(_0xe2b471,_0x3ae1c7){var _0x4bbbba={};var _0x49e89e={};var _0x5bd3c1;var _0x591114;return db[_0x3188('0x3d')][_0x3188('0x99')]({'where':{'id':_0xe2b471['params']['id']}})['then'](handleEntityNotFound(_0x3ae1c7,null))[_0x3188('0x18')](function(_0x2e143c){if(_0x2e143c){_0x5bd3c1=_0x2e143c;_0x49e89e[_0x3188('0x54')]=_['keys'](db[_0x3188('0xe6')]['rawAttributes']);_0x49e89e[_0x3188('0x45')]=_[_0x3188('0x55')](_0xe2b471['query']);_0x49e89e[_0x3188('0x56')]=_['intersection'](_0x49e89e[_0x3188('0x54')],_0x49e89e[_0x3188('0x45')]);_0x4bbbba['attributes']=_[_0x3188('0x57')](_0x49e89e['model'],qs[_0x3188('0x59')](_0xe2b471[_0x3188('0x45')][_0x3188('0x59')]));_0x4bbbba[_0x3188('0x58')]=_0x4bbbba[_0x3188('0x58')][_0x3188('0x4a')]?_0x4bbbba['attributes']:_0x49e89e['model'];_0x4bbbba[_0x3188('0xce')]=qs['sort'](_0xe2b471[_0x3188('0x45')][_0x3188('0xcf')]);_0x4bbbba['where']=qs[_0x3188('0x56')](_[_0x3188('0xdd')](_0xe2b471[_0x3188('0x45')],_0x49e89e['filters']));if(_0xe2b471[_0x3188('0x45')][_0x3188('0x35')]){_0x4bbbba[_0x3188('0xd0')]=_[_0x3188('0x5b')](_0x4bbbba['where'],{'$or':_[_0x3188('0x37')](_0x4bbbba[_0x3188('0x58')],function(_0x175db1){var _0xce6d62={};_0xce6d62[_0x175db1]={'$like':'%'+_0xe2b471['query'][_0x3188('0x35')]+'%'};return _0xce6d62;})});}_0x4bbbba=_[_0x3188('0x5b')]({},_0x4bbbba,_0xe2b471[_0x3188('0xd1')]);return _0x5bd3c1[_0x3188('0xe7')](_0x4bbbba);}})['then'](function(_0x1324dd){if(_0x1324dd){_0x591114=_0x1324dd['length'];if(!_0xe2b471[_0x3188('0x45')]['hasOwnProperty']('nolimit')){_0x4bbbba[_0x3188('0x25')]=qs[_0x3188('0x25')](_0xe2b471[_0x3188('0x45')][_0x3188('0x25')]);_0x4bbbba[_0x3188('0x27')]=qs[_0x3188('0x27')](_0xe2b471[_0x3188('0x45')][_0x3188('0x27')]);}return _0x5bd3c1[_0x3188('0xe7')](_0x4bbbba);}})[_0x3188('0x18')](function(_0x1e3e21){if(_0x1e3e21){return _0x1e3e21?{'count':_0x591114,'rows':_0x1e3e21}:null;}})[_0x3188('0x18')](respondWithResult(_0x3ae1c7,null))[_0x3188('0x52')](handleError(_0x3ae1c7,null));};exports[_0x3188('0xe8')]=function(_0x225539,_0x4fedf4){var _0x3574e5={};var _0x3a4b28={};var _0x584058;var _0x2a8ef9;return db[_0x3188('0x3d')][_0x3188('0x99')]({'where':{'id':_0x225539[_0x3188('0x5f')]['id']}})[_0x3188('0x18')](handleEntityNotFound(_0x4fedf4,null))['then'](function(_0x27ba74){if(_0x27ba74){_0x584058=_0x27ba74;_0x3a4b28[_0x3188('0x54')]=_[_0x3188('0x55')](db[_0x3188('0xe9')][_0x3188('0x3e')]);_0x3a4b28[_0x3188('0x45')]=_['keys'](_0x225539[_0x3188('0x45')]);_0x3a4b28[_0x3188('0x56')]=_['intersection'](_0x3a4b28[_0x3188('0x54')],_0x3a4b28[_0x3188('0x45')]);_0x3574e5[_0x3188('0x58')]=_['intersection'](_0x3a4b28['model'],qs[_0x3188('0x59')](_0x225539[_0x3188('0x45')][_0x3188('0x59')]));_0x3574e5[_0x3188('0x58')]=_0x3574e5[_0x3188('0x58')][_0x3188('0x4a')]?_0x3574e5['attributes']:_0x3a4b28['model'];_0x3574e5['order']=qs[_0x3188('0xcf')](_0x225539[_0x3188('0x45')][_0x3188('0xcf')]);_0x3574e5['where']=qs[_0x3188('0x56')](_[_0x3188('0xdd')](_0x225539['query'],_0x3a4b28[_0x3188('0x56')]));if(_0x225539[_0x3188('0x45')][_0x3188('0x35')]){_0x3574e5['where']=_[_0x3188('0x5b')](_0x3574e5[_0x3188('0xd0')],{'$or':_[_0x3188('0x37')](_0x3574e5[_0x3188('0x58')],function(_0x1ffde9){var _0x47c205={};_0x47c205[_0x1ffde9]={'$like':'%'+_0x225539[_0x3188('0x45')][_0x3188('0x35')]+'%'};return _0x47c205;})});}_0x3574e5=_[_0x3188('0x5b')]({},_0x3574e5,_0x225539[_0x3188('0xd1')]);return _0x584058[_0x3188('0xe8')](_0x3574e5);}})['then'](function(_0x111d84){if(_0x111d84){_0x2a8ef9=_0x111d84[_0x3188('0x4a')];if(!_0x225539[_0x3188('0x45')][_0x3188('0xd2')](_0x3188('0xd9'))){_0x3574e5[_0x3188('0x25')]=qs[_0x3188('0x25')](_0x225539[_0x3188('0x45')][_0x3188('0x25')]);_0x3574e5[_0x3188('0x27')]=qs[_0x3188('0x27')](_0x225539[_0x3188('0x45')]['offset']);}return _0x584058[_0x3188('0xe8')](_0x3574e5);}})[_0x3188('0x18')](function(_0x8ac236){if(_0x8ac236){return _0x8ac236?{'count':_0x2a8ef9,'rows':_0x8ac236}:null;}})[_0x3188('0x18')](respondWithResult(_0x4fedf4,null))[_0x3188('0x52')](handleError(_0x4fedf4,null));};exports['getMailInteractions']=function(_0x16958e,_0x1f3d3e){var _0xbb4037={'raw':!![],'where':{}};var _0x3136b2={};var _0x58b47a={'count':0x0,'rows':[]};return db[_0x3188('0x3d')][_0x3188('0x99')]({'where':{'id':_0x16958e['params']['id']}})[_0x3188('0x18')](handleEntityNotFound(_0x1f3d3e,null))[_0x3188('0x18')](function(_0x33a921){if(_0x33a921){_0x3136b2[_0x3188('0x54')]=_['keys'](db[_0x3188('0xea')][_0x3188('0x3e')]);_0x3136b2[_0x3188('0x45')]=_[_0x3188('0x55')](_0x16958e[_0x3188('0x45')]);_0x3136b2[_0x3188('0x56')]=_['intersection'](_0x3136b2[_0x3188('0x54')],_0x3136b2['query']);_0xbb4037['attributes']=_[_0x3188('0x57')](_0x3136b2[_0x3188('0x54')],qs['fields'](_0x16958e[_0x3188('0x45')][_0x3188('0x59')]));_0xbb4037[_0x3188('0x58')]=_0xbb4037['attributes'][_0x3188('0x4a')]?_0xbb4037[_0x3188('0x58')]:_0x3136b2[_0x3188('0x54')];if(!_0x16958e[_0x3188('0x45')][_0x3188('0xd2')]('nolimit')){_0xbb4037[_0x3188('0x25')]=qs[_0x3188('0x25')](_0x16958e[_0x3188('0x45')][_0x3188('0x25')]);_0xbb4037['offset']=qs[_0x3188('0x27')](_0x16958e[_0x3188('0x45')][_0x3188('0x27')]);}_0xbb4037[_0x3188('0xce')]=qs[_0x3188('0xcf')](_0x16958e[_0x3188('0x45')][_0x3188('0xcf')]);_0xbb4037[_0x3188('0xd0')]=qs['filters'](_[_0x3188('0xdd')](_0x16958e[_0x3188('0x45')],_0x3136b2['filters']));_0xbb4037[_0x3188('0xd0')][_0x3188('0xe3')]=_0x33a921['id'];if(_0x16958e[_0x3188('0x45')]['filter']){_0xbb4037[_0x3188('0xd0')]=_['merge'](_0xbb4037['where'],{'$or':_[_0x3188('0x37')](_0xbb4037[_0x3188('0x58')],function(_0x4996e4){var _0x202fc2={};_0x202fc2[_0x4996e4]={'$like':'%'+_0x16958e[_0x3188('0x45')][_0x3188('0x35')]+'%'};return _0x202fc2;})});}_0xbb4037=_[_0x3188('0x5b')]({},_0xbb4037,_0x16958e[_0x3188('0xd1')]);return db['MailInteraction'][_0x3188('0x26')]({'where':_0xbb4037[_0x3188('0xd0')]})[_0x3188('0x18')](function(_0x53bcdf){_0x58b47a[_0x3188('0x26')]=_0x53bcdf;if(_0x16958e[_0x3188('0x45')]['includeAll']){_0xbb4037[_0x3188('0x5a')]=[{'all':!![]}];}return db[_0x3188('0xea')][_0x3188('0x47')](_0xbb4037);})[_0x3188('0x18')](function(_0x37dffd){_0x58b47a['rows']=_0x37dffd;return _0x58b47a;});}})[_0x3188('0x18')](respondWithFilteredResult(_0x1f3d3e,_0xbb4037))[_0x3188('0x52')](handleError(_0x1f3d3e,null));};exports[_0x3188('0xeb')]=function(_0x5358af,_0x2f50f3){var _0x492d94={};var _0x59ca65={};var _0x2e830c;var _0x283453;return db['User'][_0x3188('0x99')]({'where':{'id':_0x5358af[_0x3188('0x5f')]['id']}})[_0x3188('0x18')](handleEntityNotFound(_0x2f50f3,null))[_0x3188('0x18')](function(_0x38e6ee){if(_0x38e6ee){_0x2e830c=_0x38e6ee;_0x59ca65[_0x3188('0x54')]=_[_0x3188('0x55')](db[_0x3188('0xec')][_0x3188('0x3e')]);_0x59ca65['query']=_[_0x3188('0x55')](_0x5358af[_0x3188('0x45')]);_0x59ca65[_0x3188('0x56')]=_['intersection'](_0x59ca65['model'],_0x59ca65[_0x3188('0x45')]);_0x492d94[_0x3188('0x58')]=_[_0x3188('0x57')](_0x59ca65[_0x3188('0x54')],qs['fields'](_0x5358af['query'][_0x3188('0x59')]));_0x492d94[_0x3188('0x58')]=_0x492d94['attributes'][_0x3188('0x4a')]?_0x492d94[_0x3188('0x58')]:_0x59ca65['model'];_0x492d94[_0x3188('0xce')]=qs['sort'](_0x5358af[_0x3188('0x45')][_0x3188('0xcf')]);_0x492d94['where']=qs[_0x3188('0x56')](_['pick'](_0x5358af[_0x3188('0x45')],_0x59ca65[_0x3188('0x56')]));if(_0x5358af['query'][_0x3188('0x35')]){_0x492d94[_0x3188('0xd0')]=_[_0x3188('0x5b')](_0x492d94[_0x3188('0xd0')],{'$or':_[_0x3188('0x37')](_0x492d94[_0x3188('0x58')],function(_0x5c54ec){var _0x10294b={};_0x10294b[_0x5c54ec]={'$like':'%'+_0x5358af[_0x3188('0x45')][_0x3188('0x35')]+'%'};return _0x10294b;})});}_0x492d94=_[_0x3188('0x5b')]({},_0x492d94,_0x5358af['options']);return _0x2e830c[_0x3188('0xeb')](_0x492d94);}})[_0x3188('0x18')](function(_0x3f9fd9){if(_0x3f9fd9){_0x283453=_0x3f9fd9[_0x3188('0x4a')];if(!_0x5358af['query'][_0x3188('0xd2')](_0x3188('0xd9'))){_0x492d94['limit']=qs[_0x3188('0x25')](_0x5358af[_0x3188('0x45')]['limit']);_0x492d94[_0x3188('0x27')]=qs['offset'](_0x5358af[_0x3188('0x45')]['offset']);}return _0x2e830c['getSmsInteractions'](_0x492d94);}})[_0x3188('0x18')](function(_0x309c63){if(_0x309c63){return _0x309c63?{'count':_0x283453,'rows':_0x309c63}:null;}})[_0x3188('0x18')](respondWithResult(_0x2f50f3,null))[_0x3188('0x52')](handleError(_0x2f50f3,null));};exports[_0x3188('0xed')]=function(_0x3aff4f,_0x18430f){var _0x5b8783={};var _0xe70812={};var _0x5af69f;var _0xf1b451;return db['User'][_0x3188('0x99')]({'where':{'id':_0x3aff4f[_0x3188('0x5f')]['id']}})[_0x3188('0x18')](handleEntityNotFound(_0x18430f,null))['then'](function(_0x1a1bb2){if(_0x1a1bb2){_0x5af69f=_0x1a1bb2;_0xe70812['model']=_['keys'](db[_0x3188('0xee')][_0x3188('0x3e')]);_0xe70812[_0x3188('0x45')]=_['keys'](_0x3aff4f[_0x3188('0x45')]);_0xe70812[_0x3188('0x56')]=_[_0x3188('0x57')](_0xe70812['model'],_0xe70812['query']);_0x5b8783['attributes']=_['intersection'](_0xe70812['model'],qs['fields'](_0x3aff4f[_0x3188('0x45')]['fields']));_0x5b8783['attributes']=_0x5b8783[_0x3188('0x58')][_0x3188('0x4a')]?_0x5b8783[_0x3188('0x58')]:_0xe70812[_0x3188('0x54')];_0x5b8783[_0x3188('0xce')]=qs[_0x3188('0xcf')](_0x3aff4f[_0x3188('0x45')][_0x3188('0xcf')]);_0x5b8783[_0x3188('0xd0')]=qs[_0x3188('0x56')](_[_0x3188('0xdd')](_0x3aff4f[_0x3188('0x45')],_0xe70812[_0x3188('0x56')]));if(_0x3aff4f['query'][_0x3188('0x35')]){_0x5b8783[_0x3188('0xd0')]=_[_0x3188('0x5b')](_0x5b8783[_0x3188('0xd0')],{'$or':_[_0x3188('0x37')](_0x5b8783[_0x3188('0x58')],function(_0xe4b747){var _0x55fb36={};_0x55fb36[_0xe4b747]={'$like':'%'+_0x3aff4f['query'][_0x3188('0x35')]+'%'};return _0x55fb36;})});}_0x5b8783=_[_0x3188('0x5b')]({},_0x5b8783,_0x3aff4f[_0x3188('0xd1')]);return _0x5af69f['getFaxInteractions'](_0x5b8783);}})[_0x3188('0x18')](function(_0x2f56a5){if(_0x2f56a5){_0xf1b451=_0x2f56a5[_0x3188('0x4a')];if(!_0x3aff4f[_0x3188('0x45')][_0x3188('0xd2')](_0x3188('0xd9'))){_0x5b8783[_0x3188('0x25')]=qs['limit'](_0x3aff4f[_0x3188('0x45')][_0x3188('0x25')]);_0x5b8783[_0x3188('0x27')]=qs[_0x3188('0x27')](_0x3aff4f[_0x3188('0x45')][_0x3188('0x27')]);}return _0x5af69f['getFaxInteractions'](_0x5b8783);}})[_0x3188('0x18')](function(_0x3385d7){if(_0x3385d7){return _0x3385d7?{'count':_0xf1b451,'rows':_0x3385d7}:null;}})[_0x3188('0x18')](respondWithResult(_0x18430f,null))[_0x3188('0x52')](handleError(_0x18430f,null));};exports[_0x3188('0xef')]=function(_0x1618ee,_0x1cb753){var _0x1663e8={};var _0x375db8={};var _0x23b4a2;var _0x21865d;return db[_0x3188('0x3d')][_0x3188('0x99')]({'where':{'id':_0x1618ee[_0x3188('0x5f')]['id']}})[_0x3188('0x18')](handleEntityNotFound(_0x1cb753,null))[_0x3188('0x18')](function(_0x971aca){if(_0x971aca){_0x23b4a2=_0x971aca;_0x375db8[_0x3188('0x54')]=_[_0x3188('0x55')](db['WhatsappInteraction'][_0x3188('0x3e')]);_0x375db8[_0x3188('0x45')]=_['keys'](_0x1618ee['query']);_0x375db8[_0x3188('0x56')]=_['intersection'](_0x375db8[_0x3188('0x54')],_0x375db8['query']);_0x1663e8[_0x3188('0x58')]=_[_0x3188('0x57')](_0x375db8[_0x3188('0x54')],qs[_0x3188('0x59')](_0x1618ee[_0x3188('0x45')][_0x3188('0x59')]));_0x1663e8[_0x3188('0x58')]=_0x1663e8['attributes'][_0x3188('0x4a')]?_0x1663e8[_0x3188('0x58')]:_0x375db8['model'];_0x1663e8['order']=qs[_0x3188('0xcf')](_0x1618ee[_0x3188('0x45')][_0x3188('0xcf')]);_0x1663e8[_0x3188('0xd0')]=qs['filters'](_[_0x3188('0xdd')](_0x1618ee[_0x3188('0x45')],_0x375db8[_0x3188('0x56')]));if(_0x1618ee[_0x3188('0x45')][_0x3188('0x35')]){_0x1663e8[_0x3188('0xd0')]=_[_0x3188('0x5b')](_0x1663e8[_0x3188('0xd0')],{'$or':_[_0x3188('0x37')](_0x1663e8[_0x3188('0x58')],function(_0x3151a7){var _0x55c3f8={};_0x55c3f8[_0x3151a7]={'$like':'%'+_0x1618ee['query'][_0x3188('0x35')]+'%'};return _0x55c3f8;})});}_0x1663e8=_[_0x3188('0x5b')]({},_0x1663e8,_0x1618ee['options']);return _0x23b4a2['getWhatsappInteractions'](_0x1663e8);}})['then'](function(_0x24b855){if(_0x24b855){_0x21865d=_0x24b855[_0x3188('0x4a')];if(!_0x1618ee[_0x3188('0x45')][_0x3188('0xd2')]('nolimit')){_0x1663e8[_0x3188('0x25')]=qs[_0x3188('0x25')](_0x1618ee[_0x3188('0x45')][_0x3188('0x25')]);_0x1663e8[_0x3188('0x27')]=qs[_0x3188('0x27')](_0x1618ee[_0x3188('0x45')][_0x3188('0x27')]);}return _0x23b4a2['getWhatsappInteractions'](_0x1663e8);}})[_0x3188('0x18')](function(_0x3b6e7f){if(_0x3b6e7f){return _0x3b6e7f?{'count':_0x21865d,'rows':_0x3b6e7f}:null;}})[_0x3188('0x18')](respondWithResult(_0x1cb753,null))[_0x3188('0x52')](handleError(_0x1cb753,null));};exports[_0x3188('0xf0')]=function(_0x16d477,_0x4fc92b,_0x565f72){var _0x1a1e65;var _0x4eea3e;var _0x5dade5;var _0x4d91f8=!_['isNil'](_0x16d477[_0x3188('0x5f')]['id'])?_0x16d477[_0x3188('0x5f')]['id']:!_[_0x3188('0x69')](_0x16d477[_0x3188('0x30')]['id'])?_0x16d477[_0x3188('0x30')]['id']:null;return db[_0x3188('0x3d')]['find']({'where':{'id':_0x4d91f8,'role':{'$or':[_0x3188('0x2e'),_0x3188('0x30'),_0x3188('0x32')]}},'attributes':['id',_0x3188('0x3b'),_0x3188('0xf1'),'mobile',_0x3188('0x2d'),_0x3188('0x6a'),_0x3188('0xa0')]})[_0x3188('0x18')](function(_0x5c18ed){if(_0x5c18ed){if(_0x5c18ed['role']===_0x3188('0x32')){_0x1a1e65=_0x5c18ed;if(_0x16d477['body'][_0x3188('0xa2')]){_0x5dade5=util[_0x3188('0xae')](_0x3188('0xf2'),_0x1a1e65[_0x16d477[_0x3188('0x5e')][_0x3188('0xa2')]]);}else if(_0x16d477['body'][_0x3188('0xf3')]){_0x5dade5=util[_0x3188('0xae')]('SIP/%s',_0x16d477['body']['intrf']);}else{_0x5dade5=util[_0x3188('0xae')](_0x3188('0xf4'),_0x1a1e65[_0x3188('0x3b')]);}socket['to'](util[_0x3188('0xae')](_0x3188('0xf5'),_0x1a1e65[_0x3188('0x3b')]))[_0x3188('0xb4')](_0x3188('0xf6'),{'user':{'id':_0x1a1e65['id'],'name':_0x1a1e65[_0x3188('0x3b')]},'ip':_0x16d477[_0x3188('0xf7')][_0x3188('0xf8')]||_0x16d477['connection'][_0x3188('0xf9')]||_0x16d477['socket'][_0x3188('0xf9')]||_0x16d477[_0x3188('0xfa')][_0x3188('0xfb')][_0x3188('0xf9')]});return db['UserVoiceQueueRt'][_0x3188('0x2b')]({'where':{'membername':_0x1a1e65[_0x3188('0x3b')]},'individualHooks':!![]});}}else{throw new db['Sequelize'][(_0x3188('0x93'))]('User\x20not\x20found\x20or\x20not\x20allowed\x20to\x20perform\x20login\x20method');}})['then'](function(){if(_0x1a1e65){return _0x1a1e65[_0x3188('0xfc')]({'raw':!![]});}})[_0x3188('0x18')](function(_0x59e0ee){if(_0x1a1e65){var _0x455869=[];if(_0x59e0ee){_0x4eea3e=_0x59e0ee;if(_0x4eea3e[_0x3188('0x4a')]){for(var _0x546ad0=0x0;_0x546ad0<_0x4eea3e[_0x3188('0x4a')];_0x546ad0++){_0x455869[_0x3188('0x4d')]({'membername':_0x1a1e65['name'],'UserId':_0x1a1e65['id'],'queue_name':_0x4eea3e[_0x546ad0][_0x3188('0x3b')],'VoiceQueueId':_0x4eea3e[_0x546ad0]['id'],'interface':_0x5dade5,'paused':_0x1a1e65[_0x3188('0xa0')]||![],'penalty':_0x4eea3e[_0x546ad0]['UserVoiceQueue.penalty']||0x0});}return BPromise[_0x3188('0xaf')](_0x455869,function(_0x170829){return db[_0x3188('0xb0')]['upsert'](_0x170829);});}}}})['then'](function(){if(_0x1a1e65){return db[_0x3188('0xfd')][_0x3188('0x47')]({'where':{'membername':_0x1a1e65[_0x3188('0x3b')],'exitAt':null}});}})[_0x3188('0x18')](function(_0x464deb){if(_0x1a1e65){var _0x54d33a=[];_0x464deb[_0x3188('0xfe')](function(_0x58556e){_0x54d33a[_0x3188('0x4d')](_0x58556e[_0x3188('0x2a')]({'exitAt':moment()[_0x3188('0xae')](_0x3188('0xff'))}));});return BPromise['all'](_0x54d33a);}})[_0x3188('0x18')](function(){if(_0x1a1e65){var _0x3b49e0=[];var _0x556d42=[];var _0x407f91=utils[_0x3188('0x100')]();var _0x333b17={'membername':_0x1a1e65[_0x3188('0x3b')],'interface':_0x5dade5,'enterAt':moment()['format'](_0x3188('0xff')),'role':_0x1a1e65['role'],'internal':_0x1a1e65[_0x3188('0x6a')]};_0x407f91['forEach'](function(_0x5e4f17){_0x3b49e0[_0x3188('0x4d')](_[_0x3188('0x5b')]({'channel':_0x5e4f17,'type':_0x3188('0x101'),'data1':_0x16d477[_0x3188('0x5e')][_0x3188('0x102')],'data2':_0x5dade5},_0x333b17));if(_0x1a1e65[_0x3188('0xa0')]){_0x556d42[_0x3188('0x4d')](_[_0x3188('0x5b')]({'channel':_0x5e4f17,'type':_0x3188('0x103'),'data1':'LOGININPAUSE'},_0x333b17));}});return db[_0x3188('0xfd')][_0x3188('0x104')](_0x3b49e0[_0x3188('0x105')](_0x556d42),{'individualHooks':!![]});}})['then'](function(){if(_0x1a1e65){return _0x1a1e65[_0x3188('0x2a')]({'online':!![],'lastLoginAt':moment()['format'](_0x3188('0xff')),'voicePause':_0x1a1e65['loginInPause']||![],'mailPause':_0x1a1e65['loginInPause']||![],'chatPause':_0x1a1e65[_0x3188('0xa0')]||![],'faxPause':_0x1a1e65[_0x3188('0xa0')]||![],'smsPause':_0x1a1e65['loginInPause']||![],'openchannelPause':_0x1a1e65[_0x3188('0xa0')]||![],'whatsappPause':_0x1a1e65[_0x3188('0xa0')]||![],'pauseType':_0x1a1e65[_0x3188('0xa0')]?'LOGININPAUSE':null,'interface':_0x5dade5,'lastPauseAt':moment()[_0x3188('0xae')](_0x3188('0xff'))});}})[_0x3188('0x18')](function(_0x1421aa){if(_0x16d477['isMiddleware']){return _0x565f72();}else{return BPromise[_0x3188('0x106')](_0x1421aa)[_0x3188('0x18')](respondWithResult(_0x4fc92b,null));}})[_0x3188('0x52')](handleError(_0x4fc92b,null));};exports[_0x3188('0x107')]=function(_0x2de2ba,_0x2aa9f3){var _0x590db0;return db['User'][_0x3188('0x8b')]({'where':{'id':_0x2de2ba[_0x3188('0x5f')]['id'],'role':_0x3188('0x32')},'attributes':['id',_0x3188('0x3b'),_0x3188('0x2d')]})[_0x3188('0x18')](handleEntityNotFound(_0x2aa9f3,null))[_0x3188('0x18')](function(_0x40f41a){if(_0x40f41a){_0x590db0=_0x40f41a;return db[_0x3188('0xb0')][_0x3188('0x2b')]({'where':{'membername':_0x590db0[_0x3188('0x3b')]},'individualHooks':!![]});}})['then'](function(){return db['MemberReport'][_0x3188('0x47')]({'where':{'membername':_0x590db0[_0x3188('0x3b')],'exitAt':null}});})[_0x3188('0x18')](function(_0x4900e1){var _0xadecf5=[];_0x4900e1[_0x3188('0xfe')](function(_0x3f0f8a){_0xadecf5[_0x3188('0x4d')](_0x3f0f8a[_0x3188('0x2a')]({'exitAt':moment()['format'](_0x3188('0xff'))}));});return BPromise[_0x3188('0x51')](_0xadecf5);})['then'](function(){return _0x590db0[_0x3188('0x2a')]({'online':![],'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![],'whatsappPause':![],'interface':null});})[_0x3188('0x18')](respondWithResult(_0x2aa9f3,null))[_0x3188('0x52')](handleError(_0x2aa9f3,null));};exports['pause']=function(_0x122861,_0x552387){var _0x430491;return db[_0x3188('0xb0')][_0x3188('0x2a')]({'paused':0x1},{'where':{'UserId':_0x122861['params']['id']},'individualHooks':!![]})[_0x3188('0x18')](function(){return db[_0x3188('0x3d')][_0x3188('0x8b')]({'where':{'id':_0x122861[_0x3188('0x5f')]['id'],'role':_0x3188('0x32')},'attributes':['id',_0x3188('0x3b'),_0x3188('0x2d'),_0x3188('0x6a'),_0x3188('0xa2')]});})[_0x3188('0x18')](handleEntityNotFound(_0x552387,null))['then'](function(_0x5203d4){if(_0x5203d4){_0x430491=_0x5203d4;return respondWithRpcPromise('QueuePause',_0x3188('0x108'),{'id':_0x430491['id'],'name':_0x430491[_0x3188('0x3b')],'pause':!![]});}})['then'](function(){if(_0x430491){return db[_0x3188('0xfd')][_0x3188('0x47')]({'where':{'membername':_0x430491['name'],'type':_0x3188('0x103'),'exitAt':null}});}})[_0x3188('0x18')](function(_0x22851e){if(_0x22851e['length']){var _0x52a529=moment()[_0x3188('0xae')]('YYYY-MM-DD\x20HH:mm:ss');for(var _0x21d558=0x0,_0x381f4b=_0x22851e[_0x3188('0x4a')];_0x21d558<_0x381f4b;_0x21d558++){_0x22851e[_0x21d558][_0x3188('0x109')]({'exitAt':_0x52a529});}}})[_0x3188('0x18')](function(){var _0x3696ac=[];var _0x24ab61=utils[_0x3188('0x100')]();_0x24ab61[_0x3188('0xfe')](function(_0x5c6bc1){_0x3696ac[_0x3188('0x4d')]({'channel':_0x5c6bc1,'membername':_0x430491[_0x3188('0x3b')],'interface':_[_0x3188('0x69')](_0x430491['interface'])?util[_0x3188('0xae')](_0x3188('0xf4'),_0x430491[_0x3188('0x3b')]):_0x430491['interface'],'type':_0x3188('0x103'),'enterAt':moment()[_0x3188('0xae')](_0x3188('0xff')),'data1':_0x122861['body']['type']||_0x3188('0x10a'),'role':_0x430491[_0x3188('0x2d')],'internal':_0x430491[_0x3188('0x6a')]});});return db['MemberReport'][_0x3188('0x104')](_0x3696ac,{'individualHooks':!![]});})[_0x3188('0x18')](function(){return _0x430491[_0x3188('0x2a')]({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'whatsappPause':!![],'openchannelPause':!![],'pauseType':_0x122861['body'][_0x3188('0x40')]||_0x3188('0x10a'),'lastPauseAt':moment()[_0x3188('0xae')](_0x3188('0xff'))});})[_0x3188('0x18')](respondWithResult(_0x552387,null))['catch'](handleError(_0x552387,null));};exports[_0x3188('0x10b')]=function(_0x202ae2,_0x11cd60){var _0x2f0920;return db[_0x3188('0x3d')][_0x3188('0x8b')]({'where':{'id':_0x202ae2[_0x3188('0x5f')]['id']},'attributes':['id',_0x3188('0x3b'),'role',_0x3188('0xa1'),'mailPause','chatPause','faxPause',_0x3188('0x10c'),_0x3188('0x10d'),_0x3188('0x10e'),_0x3188('0x10f'),'lastPauseAt']})[_0x3188('0x18')](handleEntityNotFound(_0x11cd60,null))[_0x3188('0x18')](function(_0x3403b0){if(_0x3403b0){_0x2f0920=_0x3403b0;if(_0x202ae2[_0x3188('0x5e')]['channel']&&!utils[_0x3188('0xa3')](_0x202ae2[_0x3188('0x5e')]['channel'])){throw new db[(_0x3188('0x98'))]['ValidationError'](_0x3188('0xdb'));}switch(_0x202ae2[_0x3188('0x5e')][_0x3188('0x9e')]){case _0x3188('0xac'):return respondWithRpcPromise(_0x3188('0x110'),_0x3188('0x10b'),{'id':_0x2f0920['id'],'name':_0x2f0920['name'],'pause':![]})['then'](function(){return db[_0x3188('0xb0')]['update']({'paused':0x0},{'where':{'UserId':_0x2f0920['id']},'individualHooks':!![]});})[_0x3188('0x18')](function(){return db[_0x3188('0xfd')][_0x3188('0x8b')]({'where':{'channel':_0x202ae2[_0x3188('0x5e')]['channel'],'membername':_0x2f0920[_0x3188('0x3b')],'type':_0x3188('0x103'),'exitAt':null}});})[_0x3188('0x18')](function(_0x21302e){if(_0x21302e){return _0x21302e['update']({'exitAt':moment()[_0x3188('0xae')](_0x3188('0xff')),'data2':'manual'},{'individualHooks':!![]});}return null;})['then'](function(){return _0x2f0920[_0x3188('0x2a')]({'voicePause':![]});});case _0x3188('0x5d'):case'chat':case _0x3188('0x4f'):case'sms':case _0x3188('0x5c'):case _0x3188('0x50'):return db['MemberReport'][_0x3188('0x8b')]({'where':{'channel':_0x202ae2[_0x3188('0x5e')][_0x3188('0x9e')],'membername':_0x2f0920[_0x3188('0x3b')],'type':_0x3188('0x103'),'exitAt':null}})[_0x3188('0x18')](function(_0x3da184){if(_0x3da184){return _0x3da184[_0x3188('0x2a')]({'exitAt':moment()['format'](_0x3188('0xff')),'data2':_0x3188('0x111')},{'individualHooks':!![]});}return null;})[_0x3188('0x18')](function(){var _0x148674={};_[_0x3188('0x28')](_0x148674,util[_0x3188('0xae')](_0x3188('0x112'),_0x202ae2['body'][_0x3188('0x9e')],'Pause'),![]);return _0x2f0920[_0x3188('0x2a')](_0x148674);});default:return respondWithRpcPromise(_0x3188('0x110'),_0x3188('0x10b'),{'id':_0x2f0920['id'],'name':_0x2f0920[_0x3188('0x3b')],'pause':![]})[_0x3188('0x18')](function(){return db['UserVoiceQueueRt']['update']({'paused':0x0},{'where':{'UserId':_0x2f0920['id']}});})[_0x3188('0x18')](function(){return db['MemberReport'][_0x3188('0x47')]({'where':{'membername':_0x2f0920[_0x3188('0x3b')],'type':'PAUSE','exitAt':null}});})['then'](function(_0x23617a){var _0x575a53=[];_0x23617a[_0x3188('0xfe')](function(_0x3bf8d1){_0x575a53[_0x3188('0x4d')](_0x3bf8d1[_0x3188('0x2a')]({'exitAt':moment()[_0x3188('0xae')](_0x3188('0xff')),'data2':_0x3188('0x111')}));});return BPromise[_0x3188('0x51')](_0x575a53);})[_0x3188('0x18')](function(){return _0x2f0920['update']({'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'whatsappPause':![],'openchannelPause':![]});});}}})[_0x3188('0x18')](respondWithResult(_0x11cd60,null))[_0x3188('0x52')](handleError(_0x11cd60,null));};exports[_0x3188('0x113')]=function(_0x20a3ad,_0x4b0528){var _0x4f37d8={};var _0x445ba0={};var _0x5a783f;var _0x35dc65;return db[_0x3188('0x3d')]['findOne']({'where':{'id':_0x20a3ad[_0x3188('0x5f')]['id']}})[_0x3188('0x18')](handleEntityNotFound(_0x4b0528,null))['then'](function(_0x1f52b0){if(_0x1f52b0){_0x5a783f=_0x1f52b0;_0x445ba0[_0x3188('0x54')]=_[_0x3188('0x55')](db[_0x3188('0x114')][_0x3188('0x3e')]);_0x445ba0[_0x3188('0x45')]=_[_0x3188('0x55')](_0x20a3ad[_0x3188('0x45')]);_0x445ba0[_0x3188('0x56')]=_[_0x3188('0x57')](_0x445ba0[_0x3188('0x54')],_0x445ba0['query']);_0x4f37d8[_0x3188('0x58')]=_[_0x3188('0x57')](_0x445ba0[_0x3188('0x54')],qs[_0x3188('0x59')](_0x20a3ad[_0x3188('0x45')][_0x3188('0x59')]));_0x4f37d8['attributes']=_0x4f37d8[_0x3188('0x58')][_0x3188('0x4a')]?_0x4f37d8[_0x3188('0x58')]:_0x445ba0[_0x3188('0x54')];_0x4f37d8[_0x3188('0xce')]=qs[_0x3188('0xcf')](_0x20a3ad['query'][_0x3188('0xcf')]);_0x4f37d8['where']=qs[_0x3188('0x56')](_['pick'](_0x20a3ad[_0x3188('0x45')],_0x445ba0['filters']));if(_0x20a3ad[_0x3188('0x45')]['filter']){_0x4f37d8[_0x3188('0xd0')]=_[_0x3188('0x5b')](_0x4f37d8['where'],{'$or':_[_0x3188('0x37')](_0x4f37d8['attributes'],function(_0x4b7eef){var _0x17d1c6={};_0x17d1c6[_0x4b7eef]={'$like':'%'+_0x20a3ad[_0x3188('0x45')]['filter']+'%'};return _0x17d1c6;})});}_0x4f37d8=_[_0x3188('0x5b')]({},_0x4f37d8,_0x20a3ad[_0x3188('0xd1')]);return _0x5a783f['getTeams'](_0x4f37d8);}})[_0x3188('0x18')](function(_0x2954df){if(_0x2954df){_0x35dc65=_0x2954df[_0x3188('0x4a')];if(!_0x20a3ad[_0x3188('0x45')][_0x3188('0xd2')]('nolimit')){_0x4f37d8[_0x3188('0x25')]=qs['limit'](_0x20a3ad[_0x3188('0x45')]['limit']);_0x4f37d8[_0x3188('0x27')]=qs[_0x3188('0x27')](_0x20a3ad[_0x3188('0x45')][_0x3188('0x27')]);}return _0x5a783f[_0x3188('0x113')](_0x4f37d8);}})['then'](function(_0x32c0a5){if(_0x32c0a5){return _0x32c0a5?{'count':_0x35dc65,'rows':_0x32c0a5}:null;}})['then'](respondWithResult(_0x4b0528,null))[_0x3188('0x52')](handleError(_0x4b0528,null));};exports[_0x3188('0x115')]=function(_0xca7d3c,_0x586c94){return db[_0x3188('0x3d')][_0x3188('0x8b')]({'where':{'id':_0xca7d3c['params']['id']}})[_0x3188('0x18')](handleEntityNotFound(_0x586c94,null))[_0x3188('0x18')](function(_0x5833e7){if(_0x5833e7){var _0x5ea3da=_0x5833e7[_0x3188('0x2c')]({'plain':!![]});return _0x5833e7[_0x3188('0x115')](_0xca7d3c[_0x3188('0x5e')][_0x3188('0x62')],_[_0x3188('0x63')](_0xca7d3c[_0x3188('0x5e')],[_0x3188('0x62'),'id'])||{})[_0x3188('0x18')](function(){for(var _0x151527=0x0;_0x151527<_0xca7d3c[_0x3188('0x5e')][_0x3188('0x62')][_0x3188('0x4a')];_0x151527++){var _0x47df08=[];var _0x2d9726={};db['Team'][_0x3188('0x99')]({'where':{'id':_0xca7d3c[_0x3188('0x5e')][_0x3188('0x62')][_0x151527]}})[_0x3188('0x18')](function(_0x560699){_0x2d9726=_0x560699['dataValues'];_0x47df08[_0x3188('0x4d')](_0x560699['getVoiceQueues']()['then'](function(_0x53962c){for(var _0x1554b8=0x0;_0x1554b8<_0x53962c[_0x3188('0x4a')];_0x1554b8++){_0x53962c[_0x1554b8][_0x3188('0x116')](_0x3188('0x9e'),_0x3188('0x117'));}return _0x53962c;}));_0x47df08[_0x3188('0x4d')](_0x560699[_0x3188('0x118')]()[_0x3188('0x18')](function(_0xab7320){for(var _0x42f804=0x0;_0x42f804<_0xab7320[_0x3188('0x4a')];_0x42f804++){_0xab7320[_0x42f804][_0x3188('0x116')](_0x3188('0x9e'),_0x3188('0x119'));}return _0xab7320;}));_0x47df08[_0x3188('0x4d')](_0x560699[_0x3188('0x11a')]()[_0x3188('0x18')](function(_0x1dd829){for(var _0xed5a46=0x0;_0xed5a46<_0x1dd829[_0x3188('0x4a')];_0xed5a46++){_0x1dd829[_0xed5a46]['setDataValue'](_0x3188('0x9e'),_0x3188('0x11b'));}return _0x1dd829;}));_0x47df08[_0x3188('0x4d')](_0x560699['getSmsQueues']()[_0x3188('0x18')](function(_0x3e56c3){for(var _0x5b218c=0x0;_0x5b218c<_0x3e56c3[_0x3188('0x4a')];_0x5b218c++){_0x3e56c3[_0x5b218c][_0x3188('0x116')](_0x3188('0x9e'),_0x3188('0x11c'));}return _0x3e56c3;}));_0x47df08['push'](_0x560699[_0x3188('0x11d')]()[_0x3188('0x18')](function(_0x5dcf37){for(var _0x38681c=0x0;_0x38681c<_0x5dcf37[_0x3188('0x4a')];_0x38681c++){_0x5dcf37[_0x38681c][_0x3188('0x116')](_0x3188('0x9e'),_0x3188('0x11e'));}return _0x5dcf37;}));_0x47df08[_0x3188('0x4d')](_0x560699[_0x3188('0x11f')]()['then'](function(_0x342a74){for(var _0x1b6121=0x0;_0x1b6121<_0x342a74[_0x3188('0x4a')];_0x1b6121++){_0x342a74[_0x1b6121]['setDataValue']('channel',_0x3188('0x120'));}return _0x342a74;}));_0x47df08['push'](_0x560699['getOpenchannelQueues']()[_0x3188('0x18')](function(_0x1157d5){for(var _0x2ba2e8=0x0;_0x2ba2e8<_0x1157d5[_0x3188('0x4a')];_0x2ba2e8++){_0x1157d5[_0x2ba2e8]['setDataValue'](_0x3188('0x9e'),_0x3188('0x121'));}return _0x1157d5;}));return BPromise[_0x3188('0x51')](_0x47df08);})[_0x3188('0x18')](function(_0x4e50e9){var _0x34d1ed=_['flatten'](_0x4e50e9);_0x47df08=[];return db[_0x3188('0x6c')]['transaction'](function(_0x5b8c8b){for(var _0x16e1b3=0x0;_0x16e1b3<_0x34d1ed[_0x3188('0x4a')];_0x16e1b3++){_0x47df08[_0x3188('0x4d')](_0x34d1ed[_0x16e1b3]['addAgent'](_0x5ea3da['id']),{'transaction':_0x5b8c8b});}return BPromise[_0x3188('0x51')](_0x47df08)[_0x3188('0x18')](function(){if(_0x5ea3da[_0x3188('0x9f')]){return BPromise[_0x3188('0xaf')](_[_0x3188('0x35')](_0x34d1ed,function(_0xdd6818){return _0xdd6818[_0x3188('0x122')](_0x3188('0x9e'))===_0x3188('0x117');}),function(_0x411e40){return db['UserVoiceQueueRt'][_0x3188('0xb1')]({'membername':_0x5ea3da[_0x3188('0x3b')],'UserId':_0x5ea3da['id'],'queue_name':_0x411e40[_0x3188('0x3b')],'VoiceQueueId':_0x411e40['id'],'interface':_['isNil'](_0x5ea3da[_0x3188('0xa2')])?util[_0x3188('0xae')](_0x3188('0xf4'),_0x5ea3da[_0x3188('0x3b')]):_0x5ea3da[_0x3188('0xa2')],'paused':_0x5ea3da[_0x3188('0xa1')]||![],'penalty':_0x5ea3da[_0x3188('0xa7')]},{'transaction':_0x5b8c8b});});}else{return;}})['then'](function(){for(var _0x207b64=0x0;_0x207b64<_0x34d1ed[_0x3188('0x4a')];_0x207b64++){var _0x277e2c=_0x34d1ed[_0x207b64][_0x3188('0x122')](_0x3188('0x9e'));var _0x23ba48=_0x277e2c+_0x3188('0xa9');socket[_0x3188('0xb4')](_0x3188('0x30')+_0x277e2c+_0x3188('0xab'),{'UserId':_0x5ea3da['id'],['queueField']:_0x34d1ed[_0x207b64]['id']});}});});})['then'](function(){db[_0x3188('0x123')][_0x3188('0x99')]({'where':{'teamId':_0x2d9726['id']}})[_0x3188('0x18')](function(_0x355ab1){if(_0x355ab1){db[_0x3188('0x124')]['create']({'UserId':_0xca7d3c[_0x3188('0x5f')]['id'],'VoicePrefixId':_0x355ab1[_0x3188('0x125')]});}});});}});}})[_0x3188('0x18')](respondWithStatusCode(_0x586c94,null))['catch'](handleError(_0x586c94,null));};exports[_0x3188('0x126')]=function(_0x39aec6,_0x576246){return db[_0x3188('0x3d')][_0x3188('0x99')]({'where':{'id':_0x39aec6[_0x3188('0x5f')]['id']}})['then'](handleEntityNotFound(_0x576246,null))['then'](function(_0x671559){if(_0x671559){var _0x375819=_0x671559['get']({'plain':!![]});var _0x5a312a=_0x39aec6[_0x3188('0x45')][_0x3188('0x62')];return _0x671559[_0x3188('0x126')](_0x5a312a)['then'](function(){for(var _0x5621cc=0x0;_0x5621cc<_0x5a312a[_0x3188('0x4a')];_0x5621cc++){var _0x3b8727=[];var _0xfde00={};db[_0x3188('0x114')][_0x3188('0x99')]({'where':{'id':_0x5a312a[_0x5621cc]}})[_0x3188('0x18')](function(_0x1c7bbc){_0xfde00=_0x1c7bbc[_0x3188('0x4c')];_0x3b8727['push'](_0x1c7bbc[_0x3188('0xfc')]()[_0x3188('0x18')](function(_0x31df71){for(var _0x34c94e=0x0;_0x34c94e<_0x31df71[_0x3188('0x4a')];_0x34c94e++){_0x31df71[_0x34c94e][_0x3188('0x116')]('channel','Voice');}return _0x31df71;}));_0x3b8727[_0x3188('0x4d')](_0x1c7bbc[_0x3188('0x118')]()[_0x3188('0x18')](function(_0x1bc985){for(var _0x1cab34=0x0;_0x1cab34<_0x1bc985[_0x3188('0x4a')];_0x1cab34++){_0x1bc985[_0x1cab34][_0x3188('0x116')](_0x3188('0x9e'),'Chat');}return _0x1bc985;}));_0x3b8727[_0x3188('0x4d')](_0x1c7bbc[_0x3188('0x11a')]()[_0x3188('0x18')](function(_0x436ac7){for(var _0x48e521=0x0;_0x48e521<_0x436ac7[_0x3188('0x4a')];_0x48e521++){_0x436ac7[_0x48e521][_0x3188('0x116')]('channel',_0x3188('0x11b'));}return _0x436ac7;}));_0x3b8727[_0x3188('0x4d')](_0x1c7bbc[_0x3188('0x127')]()['then'](function(_0x581799){for(var _0x2830f9=0x0;_0x2830f9<_0x581799[_0x3188('0x4a')];_0x2830f9++){_0x581799[_0x2830f9][_0x3188('0x116')](_0x3188('0x9e'),_0x3188('0x11c'));}return _0x581799;}));_0x3b8727[_0x3188('0x4d')](_0x1c7bbc[_0x3188('0x11d')]()['then'](function(_0x4c7541){for(var _0x404e64=0x0;_0x404e64<_0x4c7541[_0x3188('0x4a')];_0x404e64++){_0x4c7541[_0x404e64]['setDataValue'](_0x3188('0x9e'),_0x3188('0x11e'));}return _0x4c7541;}));_0x3b8727['push'](_0x1c7bbc[_0x3188('0x11f')]()[_0x3188('0x18')](function(_0x1cc547){for(var _0x381407=0x0;_0x381407<_0x1cc547[_0x3188('0x4a')];_0x381407++){_0x1cc547[_0x381407][_0x3188('0x116')]('channel','Fax');}return _0x1cc547;}));_0x3b8727[_0x3188('0x4d')](_0x1c7bbc[_0x3188('0x128')]()[_0x3188('0x18')](function(_0x366e84){for(var _0x1f034f=0x0;_0x1f034f<_0x366e84[_0x3188('0x4a')];_0x1f034f++){_0x366e84[_0x1f034f][_0x3188('0x116')]('channel',_0x3188('0x121'));}return _0x366e84;}));return BPromise[_0x3188('0x51')](_0x3b8727);})[_0x3188('0x18')](function(_0x4cafce){var _0x5cfab0=_[_0x3188('0x129')](_0x4cafce);_0x3b8727=[];return db[_0x3188('0x6c')][_0x3188('0x12a')](function(_0x3d6848){for(var _0x12f7e4=0x0;_0x12f7e4<_0x5cfab0[_0x3188('0x4a')];_0x12f7e4++){_0x3b8727[_0x3188('0x4d')](_0x5cfab0[_0x12f7e4][_0x3188('0x12b')](_0x375819['id']),{'transaction':_0x3d6848});}return BPromise['all'](_0x3b8727)[_0x3188('0x18')](function(){if(_0x375819[_0x3188('0x9f')]){return BPromise['each'](_[_0x3188('0x35')](_0x5cfab0,function(_0x3cd010){return _0x3cd010[_0x3188('0x122')](_0x3188('0x9e'))===_0x3188('0x117');}),function(_0xe8d190){return db[_0x3188('0xb0')]['destroy']({'where':{'VoiceQueueId':_0xe8d190['id'],'UserId':_0x375819['id']},'transaction':_0x3d6848});});}else{return;}})[_0x3188('0x18')](function(){db['TeamVoicePrefix'][_0x3188('0x99')]({'where':{'teamId':_0xfde00['id']}})[_0x3188('0x18')](function(_0x1e3f66){if(_0x1e3f66){return db[_0x3188('0x124')]['destroy']({'where':{'UserId':_0x375819['id'],'VoicePrefixId':_0x1e3f66[_0x3188('0x4c')][_0x3188('0x125')]}});}});})[_0x3188('0x18')](function(){for(var _0x2fa308=0x0;_0x2fa308<_0x5cfab0[_0x3188('0x4a')];_0x2fa308++){var _0xdde110=_0x5cfab0[_0x2fa308]['getDataValue']('channel');var _0x45c4b0=_0xdde110+_0x3188('0xa9');socket[_0x3188('0xb4')](_0x3188('0x30')+_0xdde110+_0x3188('0xb5'),{'UserId':_0x375819['id'],['queueField']:_0x5cfab0[_0x2fa308]['id']});}});});});}});}})[_0x3188('0x18')](respondWithStatusCode(_0x576246,null))[_0x3188('0x52')](handleError(_0x576246,null));};exports['getLists']=function(_0x49fad3,_0x5ad43d){var _0x4ad7ae={};var _0x52cd00={};var _0x593bf3;var _0x32ed21;return db[_0x3188('0x3d')][_0x3188('0x99')]({'where':{'id':_0x49fad3['params']['id']}})[_0x3188('0x18')](handleEntityNotFound(_0x5ad43d,null))[_0x3188('0x18')](function(_0x4ff62b){if(_0x4ff62b){_0x593bf3=_0x4ff62b;_0x52cd00['model']=_[_0x3188('0x55')](db[_0x3188('0xd3')][_0x3188('0x3e')]);_0x52cd00['query']=_['keys'](_0x49fad3[_0x3188('0x45')]);_0x52cd00[_0x3188('0x56')]=_[_0x3188('0x57')](_0x52cd00['model'],_0x52cd00['query']);_0x4ad7ae[_0x3188('0x58')]=_[_0x3188('0x57')](_0x52cd00[_0x3188('0x54')],qs[_0x3188('0x59')](_0x49fad3[_0x3188('0x45')][_0x3188('0x59')]));_0x4ad7ae[_0x3188('0x58')]=_0x4ad7ae[_0x3188('0x58')][_0x3188('0x4a')]?_0x4ad7ae['attributes']:_0x52cd00['model'];_0x4ad7ae[_0x3188('0xce')]=qs[_0x3188('0xcf')](_0x49fad3[_0x3188('0x45')]['sort']);_0x4ad7ae[_0x3188('0xd0')]=qs[_0x3188('0x56')](_[_0x3188('0xdd')](_0x49fad3[_0x3188('0x45')],_0x52cd00[_0x3188('0x56')]));if(_0x49fad3[_0x3188('0x45')][_0x3188('0x35')]){_0x4ad7ae[_0x3188('0xd0')]=_[_0x3188('0x5b')](_0x4ad7ae[_0x3188('0xd0')],{'$or':_[_0x3188('0x37')](_0x4ad7ae[_0x3188('0x58')],function(_0x38d350){var _0x327204={};_0x327204[_0x38d350]={'$like':'%'+_0x49fad3['query'][_0x3188('0x35')]+'%'};return _0x327204;})});}_0x4ad7ae=_[_0x3188('0x5b')]({},_0x4ad7ae,_0x49fad3['options']);return _0x593bf3[_0x3188('0x12c')](_0x4ad7ae);}})['then'](function(_0x3498cf){if(_0x3498cf){_0x32ed21=_0x3498cf[_0x3188('0x4a')];if(!_0x49fad3[_0x3188('0x45')][_0x3188('0xd2')]('nolimit')){_0x4ad7ae[_0x3188('0x25')]=qs[_0x3188('0x25')](_0x49fad3[_0x3188('0x45')][_0x3188('0x25')]);_0x4ad7ae[_0x3188('0x27')]=qs[_0x3188('0x27')](_0x49fad3[_0x3188('0x45')][_0x3188('0x27')]);}return _0x593bf3[_0x3188('0x12c')](_0x4ad7ae);}})[_0x3188('0x18')](function(_0x337517){if(_0x337517){return _0x337517?{'count':_0x32ed21,'rows':_0x337517}:null;}})[_0x3188('0x18')](respondWithResult(_0x5ad43d,null))[_0x3188('0x52')](handleError(_0x5ad43d,null));};exports[_0x3188('0x12d')]=function(_0x21cd22,_0x266609){var _0x27ec19={};var _0x17b15b={};var _0xc3aa3d;var _0x1762ce;return db[_0x3188('0x3d')][_0x3188('0x99')]({'where':{'id':_0x21cd22['params']['id']}})['then'](handleEntityNotFound(_0x266609,null))[_0x3188('0x18')](function(_0x50ea08){if(_0x50ea08){_0xc3aa3d=_0x50ea08;_0x17b15b[_0x3188('0x54')]=_[_0x3188('0x55')](db[_0x3188('0x3d')][_0x3188('0x3e')]);_0x17b15b[_0x3188('0x45')]=_[_0x3188('0x55')](_0x21cd22['query']);_0x17b15b[_0x3188('0x56')]=_[_0x3188('0x57')](_0x17b15b[_0x3188('0x54')],_0x17b15b[_0x3188('0x45')]);_0x27ec19['attributes']=_['intersection'](_0x17b15b[_0x3188('0x54')],qs[_0x3188('0x59')](_0x21cd22[_0x3188('0x45')][_0x3188('0x59')]));_0x27ec19[_0x3188('0x58')]=_0x27ec19[_0x3188('0x58')][_0x3188('0x4a')]?_0x27ec19['attributes']:_0x17b15b[_0x3188('0x54')];_0x27ec19[_0x3188('0xce')]=qs[_0x3188('0xcf')](_0x21cd22['query'][_0x3188('0xcf')]);_0x27ec19[_0x3188('0xd0')]=qs[_0x3188('0x56')](_[_0x3188('0xdd')](_0x21cd22[_0x3188('0x45')],_0x17b15b['filters']));if(_0x21cd22[_0x3188('0x45')]['filter']){_0x27ec19['where']=_[_0x3188('0x5b')](_0x27ec19[_0x3188('0xd0')],{'$or':_[_0x3188('0x37')](_0x27ec19[_0x3188('0x58')],function(_0x217524){var _0x4b3000={};_0x4b3000[_0x217524]={'$like':'%'+_0x21cd22[_0x3188('0x45')][_0x3188('0x35')]+'%'};return _0x4b3000;})});}_0x27ec19[_0x3188('0x54')]=db[_0x3188('0x3d')];_0x27ec19['as']=_0x3188('0x31');_0x27ec19=_[_0x3188('0x5b')]({},_0x27ec19,_0x21cd22[_0x3188('0xd1')]);return _0xc3aa3d[_0x3188('0xfc')]({'include':[_0x27ec19]});}})[_0x3188('0x18')](function(_0x561f88){if(_0x561f88){var _0xd5db7={},_0x2c430d=[],_0x233118=0x0;for(var _0x59c1ab=0x0;_0x59c1ab<_0x561f88[_0x3188('0x4a')];_0x59c1ab+=0x1){for(var _0x25f858=0x0,_0x22c20e;_0x25f858<_0x561f88[_0x59c1ab][_0x3188('0x31')][_0x3188('0x4a')];_0x25f858+=0x1){_0x22c20e=_0x561f88[_0x59c1ab][_0x3188('0x31')][_0x25f858]['get']({'plain':!![]});_0xd5db7[_0x22c20e['id']]=_0x22c20e;}}_0xd5db7=_[_0x3188('0x12e')](_0xd5db7);for(var _0x55760b=qs['offset'](_0x21cd22['query'][_0x3188('0x27')]);_0x55760b<_0xd5db7[_0x3188('0x4a')]&&_0x2c430d[_0x3188('0x4a')]<qs[_0x3188('0x25')](_0x21cd22[_0x3188('0x45')][_0x3188('0x25')]);_0x55760b+=0x1){if(_0xd5db7[_0x55760b]){_0x2c430d[_0x3188('0x4d')](_0xd5db7[_0x55760b]);}}return{'count':_0xd5db7[_0x3188('0x4a')],'rows':_0x2c430d};}})[_0x3188('0x18')](respondWithResult(_0x266609,null))[_0x3188('0x52')](handleError(_0x266609,null));};exports[_0x3188('0x2b')]=function(_0x3d7597,_0x272b88){if(_0x3d7597[_0x3188('0x30')]['id']==_0x3d7597[_0x3188('0x5f')]['id']){return _0x272b88['status'](0x1f4)[_0x3188('0x3c')]({'message':_0x3188('0x12f')});}return db[_0x3188('0x3d')][_0x3188('0x8b')]({'where':{'id':_0x3d7597['params']['id']}})[_0x3188('0x18')](handleEntityNotFound(_0x272b88,null))['then'](removeEntity(_0x272b88,null))['catch'](handleError(_0x272b88,null));};exports[_0x3188('0x130')]=function(_0x47e2cf,_0xdf72){return db[_0x3188('0x3d')][_0x3188('0x8b')]({'where':{'id':_0x47e2cf[_0x3188('0x5f')]['id']}})[_0x3188('0x18')](handleEntityNotFound(_0xdf72,null))[_0x3188('0x18')](function(_0x50d028){if(_0x50d028){return _0x50d028[_0x3188('0x130')](_0x47e2cf[_0x3188('0x5e')][_0x3188('0x62')],_[_0x3188('0x63')](_0x47e2cf['body'],['ids','id'])||{})[_0x3188('0xa8')](function(){for(var _0x28056e=0x0;_0x28056e<_0x47e2cf['body']['ids'][_0x3188('0x4a')];_0x28056e+=0x1){socket['emit'](_0x3188('0x131'),{'ChatInteractionId':Number(_0x47e2cf[_0x3188('0x5e')][_0x3188('0x62')][_0x28056e]),'UserId':Number(_0x47e2cf['params']['id'])});}return _0x47e2cf[_0x3188('0x5e')][_0x3188('0x62')];});}})[_0x3188('0x18')](respondWithResult(_0xdf72,null))[_0x3188('0x52')](handleError(_0xdf72,null));};exports[_0x3188('0x132')]=function(_0x55c3e4,_0x3ff5b2){return db[_0x3188('0x3d')][_0x3188('0x8b')]({'where':{'id':_0x55c3e4[_0x3188('0x5f')]['id']}})['then'](handleEntityNotFound(_0x3ff5b2,null))[_0x3188('0x18')](function(_0x454efe){if(_0x454efe){return _0x454efe[_0x3188('0x132')](_0x55c3e4[_0x3188('0x45')][_0x3188('0x62')])[_0x3188('0x18')](function(){if(_[_0x3188('0xb3')](_0x55c3e4['query'][_0x3188('0x62')])){for(var _0x440aeb=0x0;_0x440aeb<_0x55c3e4['query'][_0x3188('0x62')][_0x3188('0x4a')];_0x440aeb+=0x1){socket[_0x3188('0xb4')](_0x3188('0x133'),{'ChatInteractionId':Number(_0x55c3e4[_0x3188('0x45')][_0x3188('0x62')][_0x440aeb]),'UserId':Number(_0x55c3e4[_0x3188('0x5f')]['id'])});}}else{socket[_0x3188('0xb4')](_0x3188('0x133'),{'ChatInteractionId':Number(_0x55c3e4[_0x3188('0x45')][_0x3188('0x62')]),'UserId':Number(_0x55c3e4[_0x3188('0x5f')]['id'])});}});}})['then'](respondWithStatusCode(_0x3ff5b2,null))[_0x3188('0x52')](handleError(_0x3ff5b2,null));};exports['addMailInteractions']=function(_0x299dc2,_0x4aceb9){return db[_0x3188('0x3d')][_0x3188('0x8b')]({'where':{'id':_0x299dc2[_0x3188('0x5f')]['id']}})['then'](handleEntityNotFound(_0x4aceb9,null))['then'](function(_0x28ed46){if(_0x28ed46){return _0x28ed46[_0x3188('0x134')](_0x299dc2['body']['ids'],_[_0x3188('0x63')](_0x299dc2['body'],[_0x3188('0x62'),'id'])||{})[_0x3188('0xa8')](function(){for(var _0x2b9d94=0x0;_0x2b9d94<_0x299dc2[_0x3188('0x5e')][_0x3188('0x62')][_0x3188('0x4a')];_0x2b9d94+=0x1){socket[_0x3188('0xb4')](_0x3188('0x135'),{'MailInteractionId':Number(_0x299dc2['body'][_0x3188('0x62')][_0x2b9d94]),'UserId':Number(_0x299dc2[_0x3188('0x5f')]['id'])});}return _0x299dc2[_0x3188('0x5e')][_0x3188('0x62')];});}})[_0x3188('0x18')](respondWithResult(_0x4aceb9,null))[_0x3188('0x52')](handleError(_0x4aceb9,null));};exports[_0x3188('0x136')]=function(_0x55e5c5,_0x478d1e){return db['User']['find']({'where':{'id':_0x55e5c5['params']['id']}})['then'](handleEntityNotFound(_0x478d1e,null))['then'](function(_0x6f9ea4){if(_0x6f9ea4){return _0x6f9ea4[_0x3188('0x136')](_0x55e5c5['query']['ids'])[_0x3188('0x18')](function(){if(_[_0x3188('0xb3')](_0x55e5c5[_0x3188('0x45')][_0x3188('0x62')])){for(var _0x2cb78b=0x0;_0x2cb78b<_0x55e5c5[_0x3188('0x45')][_0x3188('0x62')][_0x3188('0x4a')];_0x2cb78b+=0x1){socket[_0x3188('0xb4')](_0x3188('0x137'),{'MailInteractionId':Number(_0x55e5c5[_0x3188('0x45')][_0x3188('0x62')][_0x2cb78b]),'UserId':Number(_0x55e5c5[_0x3188('0x5f')]['id'])});}}else{socket[_0x3188('0xb4')](_0x3188('0x137'),{'MailInteractionId':Number(_0x55e5c5[_0x3188('0x45')][_0x3188('0x62')]),'UserId':Number(_0x55e5c5['params']['id'])});}});}})['then'](respondWithStatusCode(_0x478d1e,null))[_0x3188('0x52')](handleError(_0x478d1e,null));};exports['addFaxInteractions']=function(_0x466110,_0x58dd1e){return db['User'][_0x3188('0x8b')]({'where':{'id':_0x466110[_0x3188('0x5f')]['id']}})['then'](handleEntityNotFound(_0x58dd1e,null))[_0x3188('0x18')](function(_0x32c39c){if(_0x32c39c){return _0x32c39c[_0x3188('0x138')](_0x466110[_0x3188('0x5e')][_0x3188('0x62')],_[_0x3188('0x63')](_0x466110[_0x3188('0x5e')],['ids','id'])||{})[_0x3188('0xa8')](function(){for(var _0x126e75=0x0;_0x126e75<_0x466110[_0x3188('0x5e')][_0x3188('0x62')][_0x3188('0x4a')];_0x126e75+=0x1){socket['emit'](_0x3188('0x139'),{'FaxInteractionId':Number(_0x466110[_0x3188('0x5e')]['ids'][_0x126e75]),'UserId':Number(_0x466110[_0x3188('0x5f')]['id'])});}return _0x466110[_0x3188('0x5e')][_0x3188('0x62')];});}})[_0x3188('0x18')](respondWithResult(_0x58dd1e,null))[_0x3188('0x52')](handleError(_0x58dd1e,null));};exports[_0x3188('0x13a')]=function(_0x55b2ce,_0x29d4bf){return db[_0x3188('0x3d')][_0x3188('0x8b')]({'where':{'id':_0x55b2ce['params']['id']}})[_0x3188('0x18')](handleEntityNotFound(_0x29d4bf,null))[_0x3188('0x18')](function(_0x5ab63d){if(_0x5ab63d){return _0x5ab63d['removeFaxInteractions'](_0x55b2ce[_0x3188('0x45')]['ids'])[_0x3188('0x18')](function(){if(_[_0x3188('0xb3')](_0x55b2ce[_0x3188('0x45')][_0x3188('0x62')])){for(var _0x1391f9=0x0;_0x1391f9<_0x55b2ce[_0x3188('0x45')][_0x3188('0x62')][_0x3188('0x4a')];_0x1391f9+=0x1){socket[_0x3188('0xb4')](_0x3188('0x13b'),{'FaxInteractionId':Number(_0x55b2ce[_0x3188('0x45')][_0x3188('0x62')][_0x1391f9]),'UserId':Number(_0x55b2ce['params']['id'])});}}else{socket[_0x3188('0xb4')](_0x3188('0x13b'),{'FaxInteractionId':Number(_0x55b2ce[_0x3188('0x45')]['ids']),'UserId':Number(_0x55b2ce[_0x3188('0x5f')]['id'])});}});}})['then'](respondWithStatusCode(_0x29d4bf,null))['catch'](handleError(_0x29d4bf,null));};exports[_0x3188('0x13c')]=function(_0x6a8252,_0x256d65){return db[_0x3188('0x3d')][_0x3188('0x8b')]({'where':{'id':_0x6a8252[_0x3188('0x5f')]['id']}})[_0x3188('0x18')](handleEntityNotFound(_0x256d65,null))['then'](function(_0x351e3b){if(_0x351e3b){return _0x351e3b[_0x3188('0x13c')](_0x6a8252[_0x3188('0x5e')]['ids'],_[_0x3188('0x63')](_0x6a8252[_0x3188('0x5e')],[_0x3188('0x62'),'id'])||{})[_0x3188('0xa8')](function(){for(var _0x1ff43d=0x0;_0x1ff43d<_0x6a8252[_0x3188('0x5e')][_0x3188('0x62')][_0x3188('0x4a')];_0x1ff43d+=0x1){socket[_0x3188('0xb4')](_0x3188('0x13d'),{'SmsInteractionId':Number(_0x6a8252[_0x3188('0x5e')][_0x3188('0x62')][_0x1ff43d]),'UserId':Number(_0x6a8252[_0x3188('0x5f')]['id'])});}return _0x6a8252[_0x3188('0x5e')]['ids'];});}})[_0x3188('0x18')](respondWithResult(_0x256d65,null))[_0x3188('0x52')](handleError(_0x256d65,null));};exports[_0x3188('0x13e')]=function(_0x424633,_0x3ea760){return db[_0x3188('0x3d')][_0x3188('0x8b')]({'where':{'id':_0x424633[_0x3188('0x5f')]['id']}})[_0x3188('0x18')](handleEntityNotFound(_0x3ea760,null))[_0x3188('0x18')](function(_0x10cc49){if(_0x10cc49){return _0x10cc49[_0x3188('0x13e')](_0x424633[_0x3188('0x45')][_0x3188('0x62')])[_0x3188('0x18')](function(){if(_['isArray'](_0x424633[_0x3188('0x45')]['ids'])){for(var _0x1fb4e9=0x0;_0x1fb4e9<_0x424633[_0x3188('0x45')][_0x3188('0x62')][_0x3188('0x4a')];_0x1fb4e9+=0x1){socket['emit'](_0x3188('0x13f'),{'SmsInteractionId':Number(_0x424633['query']['ids'][_0x1fb4e9]),'UserId':Number(_0x424633[_0x3188('0x5f')]['id'])});}}else{socket[_0x3188('0xb4')](_0x3188('0x13f'),{'SmsInteractionId':Number(_0x424633['query']['ids']),'UserId':Number(_0x424633[_0x3188('0x5f')]['id'])});}});}})[_0x3188('0x18')](respondWithStatusCode(_0x3ea760,null))[_0x3188('0x52')](handleError(_0x3ea760,null));};exports[_0x3188('0x140')]=function(_0xaef574,_0x2bd679){return db[_0x3188('0x3d')]['find']({'where':{'id':_0xaef574[_0x3188('0x5f')]['id']}})['then'](handleEntityNotFound(_0x2bd679,null))[_0x3188('0x18')](function(_0x2a6189){if(_0x2a6189){return _0x2a6189[_0x3188('0x140')](_0xaef574[_0x3188('0x5e')][_0x3188('0x62')],_['omit'](_0xaef574['body'],[_0x3188('0x62'),'id'])||{})['spread'](function(){for(var _0x436ce4=0x0;_0x436ce4<_0xaef574[_0x3188('0x5e')]['ids'][_0x3188('0x4a')];_0x436ce4+=0x1){socket[_0x3188('0xb4')]('user_has_openchannel_interactions:save',{'OpenchannelInteractionId':Number(_0xaef574['body'][_0x3188('0x62')][_0x436ce4]),'UserId':Number(_0xaef574[_0x3188('0x5f')]['id'])});}return _0xaef574[_0x3188('0x5e')]['ids'];});}})['then'](respondWithResult(_0x2bd679,null))[_0x3188('0x52')](handleError(_0x2bd679,null));};exports[_0x3188('0x141')]=function(_0x5b9961,_0xe2febf){return db[_0x3188('0x3d')][_0x3188('0x8b')]({'where':{'id':_0x5b9961[_0x3188('0x5f')]['id']}})[_0x3188('0x18')](handleEntityNotFound(_0xe2febf,null))['then'](function(_0x1275a7){if(_0x1275a7){return _0x1275a7[_0x3188('0x141')](_0x5b9961[_0x3188('0x45')][_0x3188('0x62')])[_0x3188('0x18')](function(){if(_[_0x3188('0xb3')](_0x5b9961['query']['ids'])){for(var _0xb73dd=0x0;_0xb73dd<_0x5b9961['query'][_0x3188('0x62')][_0x3188('0x4a')];_0xb73dd+=0x1){socket[_0x3188('0xb4')]('user_has_openchannel_interactions:remove',{'OpenchannelInteractionId':Number(_0x5b9961[_0x3188('0x45')][_0x3188('0x62')][_0xb73dd]),'UserId':Number(_0x5b9961[_0x3188('0x5f')]['id'])});}}else{socket[_0x3188('0xb4')](_0x3188('0x142'),{'OpenchannelInteractionId':Number(_0x5b9961['query']['ids']),'UserId':Number(_0x5b9961[_0x3188('0x5f')]['id'])});}});}})[_0x3188('0x18')](respondWithStatusCode(_0xe2febf,null))[_0x3188('0x52')](handleError(_0xe2febf,null));};exports[_0x3188('0x143')]=function(_0x6823ae,_0x421a91){return db[_0x3188('0x3d')]['find']({'where':{'id':_0x6823ae[_0x3188('0x5f')]['id']}})[_0x3188('0x18')](handleEntityNotFound(_0x421a91,null))[_0x3188('0x18')](function(_0x4fd597){if(_0x4fd597){return _0x4fd597[_0x3188('0x143')](_0x6823ae['body'][_0x3188('0x62')],_[_0x3188('0x63')](_0x6823ae[_0x3188('0x5e')],[_0x3188('0x62'),'id'])||{})[_0x3188('0xa8')](function(){for(var _0x4fcb11=0x0;_0x4fcb11<_0x6823ae[_0x3188('0x5e')]['ids'][_0x3188('0x4a')];_0x4fcb11+=0x1){socket[_0x3188('0xb4')](_0x3188('0x144'),{'WhatsappInteractionId':Number(_0x6823ae['body']['ids'][_0x4fcb11]),'UserId':Number(_0x6823ae['params']['id'])});}return _0x6823ae[_0x3188('0x5e')][_0x3188('0x62')];});}})[_0x3188('0x18')](respondWithResult(_0x421a91,null))['catch'](handleError(_0x421a91,null));};exports[_0x3188('0x145')]=function(_0x165baf,_0x27e94d){return db[_0x3188('0x3d')][_0x3188('0x8b')]({'where':{'id':_0x165baf[_0x3188('0x5f')]['id']}})['then'](handleEntityNotFound(_0x27e94d,null))[_0x3188('0x18')](function(_0x3bbef3){if(_0x3bbef3){return _0x3bbef3[_0x3188('0x145')](_0x165baf[_0x3188('0x45')][_0x3188('0x62')]);}})[_0x3188('0x18')](respondWithStatusCode(_0x27e94d,null))[_0x3188('0x52')](handleError(_0x27e94d,null));};exports['getVoicePrefixes']=function(_0x6c413c,_0x2226b5){var _0x389f56={};var _0x47a661={};var _0x1068fd;var _0x4405fa;return db['User'][_0x3188('0x99')]({'where':{'id':_0x6c413c[_0x3188('0x5f')]['id']}})[_0x3188('0x18')](handleEntityNotFound(_0x2226b5,null))[_0x3188('0x18')](function(_0x517fc3){if(_0x517fc3){_0x1068fd=_0x517fc3;_0x47a661['model']=_[_0x3188('0x55')](db[_0x3188('0x146')][_0x3188('0x3e')]);_0x47a661[_0x3188('0x45')]=_[_0x3188('0x55')](_0x6c413c[_0x3188('0x45')]);_0x47a661[_0x3188('0x56')]=_[_0x3188('0x57')](_0x47a661[_0x3188('0x54')],_0x47a661[_0x3188('0x45')]);_0x389f56[_0x3188('0x58')]=_[_0x3188('0x57')](_0x47a661[_0x3188('0x54')],qs[_0x3188('0x59')](_0x6c413c[_0x3188('0x45')][_0x3188('0x59')]));_0x389f56[_0x3188('0x58')]=_0x389f56[_0x3188('0x58')][_0x3188('0x4a')]?_0x389f56[_0x3188('0x58')]:_0x47a661[_0x3188('0x54')];_0x389f56['order']=qs[_0x3188('0xcf')](_0x6c413c[_0x3188('0x45')]['sort']);_0x389f56['where']=qs[_0x3188('0x56')](_[_0x3188('0xdd')](_0x6c413c[_0x3188('0x45')],_0x47a661[_0x3188('0x56')]));if(_0x6c413c['query']['filter']){_0x389f56[_0x3188('0xd0')]=_[_0x3188('0x5b')](_0x389f56[_0x3188('0xd0')],{'$or':_['map'](_0x389f56[_0x3188('0x58')],function(_0x7edc4c){var _0x51fad4={};_0x51fad4[_0x7edc4c]={'$like':'%'+_0x6c413c[_0x3188('0x45')]['filter']+'%'};return _0x51fad4;})});}_0x389f56=_[_0x3188('0x5b')]({},_0x389f56,_0x6c413c[_0x3188('0xd1')]);return _0x1068fd[_0x3188('0x147')](_0x389f56);}})[_0x3188('0x18')](function(_0x292006){if(_0x292006){_0x4405fa=_0x292006[_0x3188('0x4a')];if(!_0x6c413c[_0x3188('0x45')]['hasOwnProperty'](_0x3188('0xd9'))){_0x389f56[_0x3188('0x25')]=qs[_0x3188('0x25')](_0x6c413c[_0x3188('0x45')]['limit']);_0x389f56[_0x3188('0x27')]=qs['offset'](_0x6c413c[_0x3188('0x45')][_0x3188('0x27')]);}return _0x1068fd[_0x3188('0x147')](_0x389f56);}})[_0x3188('0x18')](function(_0x5cbff8){if(_0x5cbff8){return _0x5cbff8?{'count':_0x4405fa,'rows':_0x5cbff8}:null;}})['then'](respondWithResult(_0x2226b5,null))[_0x3188('0x52')](handleError(_0x2226b5,null));};exports[_0x3188('0x148')]=function(_0x1450f0,_0x4d03d6){var _0x19c18d={};var _0x11f8e8={};var _0xa86eba;var _0x16bb21;return db['User'][_0x3188('0x99')]({'where':{'id':_0x1450f0['params']['id']}})[_0x3188('0x18')](handleEntityNotFound(_0x4d03d6,null))[_0x3188('0x18')](function(_0xcac665){if(_0xcac665){_0xa86eba=_0xcac665;_0x11f8e8[_0x3188('0x54')]=_['keys'](db[_0x3188('0x149')][_0x3188('0x3e')]);_0x11f8e8[_0x3188('0x45')]=_['keys'](_0x1450f0[_0x3188('0x45')]);_0x11f8e8[_0x3188('0x56')]=_['intersection'](_0x11f8e8[_0x3188('0x54')],_0x11f8e8[_0x3188('0x45')]);_0x19c18d[_0x3188('0x58')]=_[_0x3188('0x57')](_0x11f8e8[_0x3188('0x54')],qs['fields'](_0x1450f0[_0x3188('0x45')]['fields']));_0x19c18d[_0x3188('0x58')]=_0x19c18d[_0x3188('0x58')]['length']?_0x19c18d[_0x3188('0x58')]:_0x11f8e8['model'];_0x19c18d[_0x3188('0xce')]=qs[_0x3188('0xcf')](_0x1450f0['query']['sort']);_0x19c18d['where']=qs[_0x3188('0x56')](_[_0x3188('0xdd')](_0x1450f0[_0x3188('0x45')],_0x11f8e8[_0x3188('0x56')]));if(_0x1450f0[_0x3188('0x45')]['filter']){_0x19c18d[_0x3188('0xd0')]=_[_0x3188('0x5b')](_0x19c18d['where'],{'$or':_[_0x3188('0x37')](_0x19c18d[_0x3188('0x58')],function(_0x2a279c){var _0x3ae4f1={};_0x3ae4f1[_0x2a279c]={'$like':'%'+_0x1450f0[_0x3188('0x45')]['filter']+'%'};return _0x3ae4f1;})});}_0x19c18d=_['merge']({},_0x19c18d,_0x1450f0[_0x3188('0xd1')]);return _0xa86eba[_0x3188('0x148')](_0x19c18d);}})[_0x3188('0x18')](function(_0x210aac){if(_0x210aac){_0x16bb21=_0x210aac[_0x3188('0x4a')];if(!_0x1450f0['query'][_0x3188('0xd2')]('nolimit')){_0x19c18d[_0x3188('0x25')]=qs[_0x3188('0x25')](_0x1450f0[_0x3188('0x45')][_0x3188('0x25')]);_0x19c18d[_0x3188('0x27')]=qs[_0x3188('0x27')](_0x1450f0[_0x3188('0x45')][_0x3188('0x27')]);}return _0xa86eba[_0x3188('0x148')](_0x19c18d);}})[_0x3188('0x18')](function(_0x34d8b9){if(_0x34d8b9){return _0x34d8b9?{'count':_0x16bb21,'rows':_0x34d8b9}:null;}})[_0x3188('0x18')](respondWithResult(_0x4d03d6,null))['catch'](handleError(_0x4d03d6,null));};exports[_0x3188('0x14a')]=function(_0x1c4957,_0xb0c910){return db[_0x3188('0x3d')][_0x3188('0x8b')]({'where':{'id':_0x1c4957[_0x3188('0x5f')]['id']}})[_0x3188('0x18')](handleEntityNotFound(_0xb0c910,null))[_0x3188('0x18')](function(_0x2bb10f){if(_0x2bb10f){return _0x2bb10f[_0x3188('0x14a')](_0x1c4957['body']['ids'],_[_0x3188('0x63')](_0x1c4957[_0x3188('0x5e')],[_0x3188('0x62'),'id'])||{});}})[_0x3188('0x18')](respondWithResult(_0xb0c910,null))['catch'](handleError(_0xb0c910,null));};exports[_0x3188('0x14b')]=function(_0x348a62,_0x1851a9){return db[_0x3188('0x3d')][_0x3188('0x8b')]({'where':{'id':_0x348a62[_0x3188('0x5f')]['id']}})['then'](handleEntityNotFound(_0x1851a9,null))[_0x3188('0x18')](function(_0x24f7ae){if(_0x24f7ae){return _0x24f7ae[_0x3188('0x14b')](_0x348a62[_0x3188('0x45')][_0x3188('0x62')]);}})[_0x3188('0x18')](respondWithStatusCode(_0x1851a9,null))[_0x3188('0x52')](handleError(_0x1851a9,null));};exports['getMailAccounts']=function(_0x348f93,_0x2de784){var _0x5c1760={};var _0x20b1db={};var _0x5129a9;var _0x10143d;return db[_0x3188('0x3d')][_0x3188('0x99')]({'where':{'id':_0x348f93[_0x3188('0x5f')]['id']}})[_0x3188('0x18')](handleEntityNotFound(_0x2de784,null))[_0x3188('0x18')](function(_0x913d79){if(_0x913d79){_0x5129a9=_0x913d79;_0x20b1db[_0x3188('0x54')]=_[_0x3188('0x55')](db[_0x3188('0x14c')][_0x3188('0x3e')]);_0x20b1db[_0x3188('0x45')]=_[_0x3188('0x55')](_0x348f93[_0x3188('0x45')]);_0x20b1db[_0x3188('0x56')]=_[_0x3188('0x57')](_0x20b1db[_0x3188('0x54')],_0x20b1db[_0x3188('0x45')]);_0x5c1760[_0x3188('0x58')]=_['intersection'](_0x20b1db['model'],qs[_0x3188('0x59')](_0x348f93[_0x3188('0x45')][_0x3188('0x59')]));_0x5c1760[_0x3188('0x58')]=_0x5c1760[_0x3188('0x58')][_0x3188('0x4a')]?_0x5c1760[_0x3188('0x58')]:_0x20b1db['model'];_0x5c1760[_0x3188('0xce')]=qs['sort'](_0x348f93[_0x3188('0x45')][_0x3188('0xcf')]);_0x5c1760[_0x3188('0xd0')]=qs[_0x3188('0x56')](_[_0x3188('0xdd')](_0x348f93[_0x3188('0x45')],_0x20b1db[_0x3188('0x56')]));if(_0x348f93['query'][_0x3188('0x35')]){_0x5c1760[_0x3188('0xd0')]=_[_0x3188('0x5b')](_0x5c1760[_0x3188('0xd0')],{'$or':_['map'](_0x5c1760['attributes'],function(_0x2c114e){var _0x212ad8={};_0x212ad8[_0x2c114e]={'$like':'%'+_0x348f93[_0x3188('0x45')][_0x3188('0x35')]+'%'};return _0x212ad8;})});}_0x5c1760=_[_0x3188('0x5b')]({},_0x5c1760,_0x348f93[_0x3188('0xd1')]);return _0x5129a9[_0x3188('0x14d')](_0x5c1760);}})[_0x3188('0x18')](function(_0x139b44){if(_0x139b44){_0x10143d=_0x139b44['length'];if(!_0x348f93['query'][_0x3188('0xd2')](_0x3188('0xd9'))){_0x5c1760[_0x3188('0x25')]=qs[_0x3188('0x25')](_0x348f93[_0x3188('0x45')][_0x3188('0x25')]);_0x5c1760['offset']=qs['offset'](_0x348f93[_0x3188('0x45')][_0x3188('0x27')]);}return _0x5129a9[_0x3188('0x14d')](_0x5c1760);}})[_0x3188('0x18')](function(_0x2ee7b8){if(_0x2ee7b8){return _0x2ee7b8?{'count':_0x10143d,'rows':_0x2ee7b8}:null;}})[_0x3188('0x18')](respondWithResult(_0x2de784,null))[_0x3188('0x52')](handleError(_0x2de784,null));};exports[_0x3188('0x14e')]=function(_0x10427a,_0x34f4db){return db['User'][_0x3188('0x8b')]({'where':{'id':_0x10427a[_0x3188('0x5f')]['id']}})[_0x3188('0x18')](handleEntityNotFound(_0x34f4db,null))['then'](function(_0x1f6658){if(_0x1f6658){return _0x1f6658[_0x3188('0x14e')](_0x10427a[_0x3188('0x5e')]['ids'],_[_0x3188('0x63')](_0x10427a['body'],['ids','id'])||{});}})[_0x3188('0x18')](respondWithResult(_0x34f4db,null))[_0x3188('0x52')](handleError(_0x34f4db,null));};exports[_0x3188('0x14f')]=function(_0x15b220,_0x57e1b3){return db[_0x3188('0x3d')][_0x3188('0x8b')]({'where':{'id':_0x15b220[_0x3188('0x5f')]['id']}})['then'](handleEntityNotFound(_0x57e1b3,null))[_0x3188('0x18')](function(_0x284e30){if(_0x284e30){return _0x284e30[_0x3188('0x14f')](_0x15b220[_0x3188('0x45')][_0x3188('0x62')]);}})['then'](respondWithStatusCode(_0x57e1b3,null))[_0x3188('0x52')](handleError(_0x57e1b3,null));};exports[_0x3188('0x150')]=function(_0xe4d0bc,_0x4da19b){var _0x16ed82={};var _0x424c3b={};var _0x456332;var _0x2f4e59;return db[_0x3188('0x3d')]['findOne']({'where':{'id':_0xe4d0bc[_0x3188('0x5f')]['id']}})[_0x3188('0x18')](handleEntityNotFound(_0x4da19b,null))[_0x3188('0x18')](function(_0x4458b7){if(_0x4458b7){_0x456332=_0x4458b7;_0x424c3b['model']=_['keys'](db[_0x3188('0x151')][_0x3188('0x3e')]);_0x424c3b['query']=_[_0x3188('0x55')](_0xe4d0bc[_0x3188('0x45')]);_0x424c3b['filters']=_['intersection'](_0x424c3b[_0x3188('0x54')],_0x424c3b[_0x3188('0x45')]);_0x16ed82[_0x3188('0x58')]=_['intersection'](_0x424c3b['model'],qs[_0x3188('0x59')](_0xe4d0bc[_0x3188('0x45')][_0x3188('0x59')]));_0x16ed82[_0x3188('0x58')]=_0x16ed82['attributes'][_0x3188('0x4a')]?_0x16ed82[_0x3188('0x58')]:_0x424c3b[_0x3188('0x54')];_0x16ed82[_0x3188('0xce')]=qs['sort'](_0xe4d0bc[_0x3188('0x45')]['sort']);_0x16ed82['where']=qs[_0x3188('0x56')](_['pick'](_0xe4d0bc[_0x3188('0x45')],_0x424c3b[_0x3188('0x56')]));if(_0xe4d0bc[_0x3188('0x45')][_0x3188('0x35')]){_0x16ed82['where']=_[_0x3188('0x5b')](_0x16ed82['where'],{'$or':_[_0x3188('0x37')](_0x16ed82[_0x3188('0x58')],function(_0x5efe87){var _0x277ed8={};_0x277ed8[_0x5efe87]={'$like':'%'+_0xe4d0bc[_0x3188('0x45')]['filter']+'%'};return _0x277ed8;})});}_0x16ed82=_['merge']({},_0x16ed82,_0xe4d0bc[_0x3188('0xd1')]);return _0x456332[_0x3188('0x150')](_0x16ed82);}})['then'](function(_0x48cdbf){if(_0x48cdbf){_0x2f4e59=_0x48cdbf['length'];if(!_0xe4d0bc[_0x3188('0x45')]['hasOwnProperty'](_0x3188('0xd9'))){_0x16ed82['limit']=qs[_0x3188('0x25')](_0xe4d0bc['query'][_0x3188('0x25')]);_0x16ed82[_0x3188('0x27')]=qs[_0x3188('0x27')](_0xe4d0bc[_0x3188('0x45')]['offset']);}return _0x456332['getOpenchannelAccounts'](_0x16ed82);}})[_0x3188('0x18')](function(_0x25f00a){if(_0x25f00a){return _0x25f00a?{'count':_0x2f4e59,'rows':_0x25f00a}:null;}})[_0x3188('0x18')](respondWithResult(_0x4da19b,null))['catch'](handleError(_0x4da19b,null));};exports[_0x3188('0x152')]=function(_0x14df88,_0x341d71){return db[_0x3188('0x3d')]['find']({'where':{'id':_0x14df88[_0x3188('0x5f')]['id']}})[_0x3188('0x18')](handleEntityNotFound(_0x341d71,null))[_0x3188('0x18')](function(_0x57f285){if(_0x57f285){return _0x57f285[_0x3188('0x152')](_0x14df88[_0x3188('0x5e')][_0x3188('0x62')],_[_0x3188('0x63')](_0x14df88[_0x3188('0x5e')],[_0x3188('0x62'),'id'])||{});}})[_0x3188('0x18')](respondWithResult(_0x341d71,null))[_0x3188('0x52')](handleError(_0x341d71,null));};exports[_0x3188('0x153')]=function(_0x2686ba,_0x27e37b){return db[_0x3188('0x3d')][_0x3188('0x8b')]({'where':{'id':_0x2686ba[_0x3188('0x5f')]['id']}})[_0x3188('0x18')](handleEntityNotFound(_0x27e37b,null))[_0x3188('0x18')](function(_0x33d493){if(_0x33d493){return _0x33d493[_0x3188('0x153')](_0x2686ba[_0x3188('0x45')][_0x3188('0x62')]);}})[_0x3188('0x18')](respondWithStatusCode(_0x27e37b,null))[_0x3188('0x52')](handleError(_0x27e37b,null));};exports[_0x3188('0x154')]=function(_0x195a2b,_0x3d2255){var _0x358993={};var _0x506661={};var _0x5389eb;var _0x2f6e2b;return db[_0x3188('0x3d')]['findOne']({'where':{'id':_0x195a2b[_0x3188('0x5f')]['id']}})[_0x3188('0x18')](handleEntityNotFound(_0x3d2255,null))[_0x3188('0x18')](function(_0x31f6fa){if(_0x31f6fa){_0x5389eb=_0x31f6fa;_0x506661['model']=_['keys'](db[_0x3188('0x155')][_0x3188('0x3e')]);_0x506661['query']=_['keys'](_0x195a2b[_0x3188('0x45')]);_0x506661[_0x3188('0x56')]=_[_0x3188('0x57')](_0x506661[_0x3188('0x54')],_0x506661[_0x3188('0x45')]);_0x358993[_0x3188('0x58')]=_[_0x3188('0x57')](_0x506661['model'],qs[_0x3188('0x59')](_0x195a2b[_0x3188('0x45')]['fields']));_0x358993[_0x3188('0x58')]=_0x358993[_0x3188('0x58')][_0x3188('0x4a')]?_0x358993[_0x3188('0x58')]:_0x506661[_0x3188('0x54')];_0x358993[_0x3188('0xce')]=qs[_0x3188('0xcf')](_0x195a2b[_0x3188('0x45')][_0x3188('0xcf')]);_0x358993[_0x3188('0xd0')]=qs['filters'](_[_0x3188('0xdd')](_0x195a2b[_0x3188('0x45')],_0x506661['filters']));if(_0x195a2b['query'][_0x3188('0x35')]){_0x358993[_0x3188('0xd0')]=_['merge'](_0x358993['where'],{'$or':_[_0x3188('0x37')](_0x358993[_0x3188('0x58')],function(_0x3e3a70){var _0xa593f={};_0xa593f[_0x3e3a70]={'$like':'%'+_0x195a2b[_0x3188('0x45')][_0x3188('0x35')]+'%'};return _0xa593f;})});}_0x358993=_[_0x3188('0x5b')]({},_0x358993,_0x195a2b['options']);return _0x5389eb[_0x3188('0x154')](_0x358993);}})[_0x3188('0x18')](function(_0x5aec19){if(_0x5aec19){_0x2f6e2b=_0x5aec19['length'];if(!_0x195a2b[_0x3188('0x45')][_0x3188('0xd2')](_0x3188('0xd9'))){_0x358993[_0x3188('0x25')]=qs['limit'](_0x195a2b['query'][_0x3188('0x25')]);_0x358993[_0x3188('0x27')]=qs['offset'](_0x195a2b[_0x3188('0x45')]['offset']);}return _0x5389eb[_0x3188('0x154')](_0x358993);}})[_0x3188('0x18')](function(_0xfd2789){if(_0xfd2789){return _0xfd2789?{'count':_0x2f6e2b,'rows':_0xfd2789}:null;}})[_0x3188('0x18')](respondWithResult(_0x3d2255,null))[_0x3188('0x52')](handleError(_0x3d2255,null));};exports['addSmsAccounts']=function(_0x4116d1,_0x3366e5){return db['User'][_0x3188('0x8b')]({'where':{'id':_0x4116d1['params']['id']}})[_0x3188('0x18')](handleEntityNotFound(_0x3366e5,null))[_0x3188('0x18')](function(_0x116d10){if(_0x116d10){return _0x116d10['addSmsAccounts'](_0x4116d1[_0x3188('0x5e')][_0x3188('0x62')],_['omit'](_0x4116d1[_0x3188('0x5e')],[_0x3188('0x62'),'id'])||{});}})[_0x3188('0x18')](respondWithResult(_0x3366e5,null))[_0x3188('0x52')](handleError(_0x3366e5,null));};exports[_0x3188('0x156')]=function(_0x359e50,_0x49de88){return db[_0x3188('0x3d')][_0x3188('0x8b')]({'where':{'id':_0x359e50[_0x3188('0x5f')]['id']}})[_0x3188('0x18')](handleEntityNotFound(_0x49de88,null))['then'](function(_0x5bb21c){if(_0x5bb21c){return _0x5bb21c['removeSmsAccounts'](_0x359e50[_0x3188('0x45')]['ids']);}})['then'](respondWithStatusCode(_0x49de88,null))[_0x3188('0x52')](handleError(_0x49de88,null));};exports[_0x3188('0x157')]=function(_0x32f763,_0x15a84d){var _0x2527ed={};var _0x206246={};var _0x3f323e;var _0x1a76a7;return db[_0x3188('0x3d')]['findOne']({'where':{'id':_0x32f763['params']['id']}})[_0x3188('0x18')](handleEntityNotFound(_0x15a84d,null))[_0x3188('0x18')](function(_0x10c801){if(_0x10c801){_0x3f323e=_0x10c801;_0x206246[_0x3188('0x54')]=_[_0x3188('0x55')](db[_0x3188('0x158')]['rawAttributes']);_0x206246[_0x3188('0x45')]=_[_0x3188('0x55')](_0x32f763[_0x3188('0x45')]);_0x206246['filters']=_[_0x3188('0x57')](_0x206246[_0x3188('0x54')],_0x206246[_0x3188('0x45')]);_0x2527ed['attributes']=_['intersection'](_0x206246[_0x3188('0x54')],qs[_0x3188('0x59')](_0x32f763[_0x3188('0x45')][_0x3188('0x59')]));_0x2527ed[_0x3188('0x58')]=_0x2527ed['attributes']['length']?_0x2527ed['attributes']:_0x206246['model'];_0x2527ed[_0x3188('0xce')]=qs[_0x3188('0xcf')](_0x32f763['query'][_0x3188('0xcf')]);_0x2527ed[_0x3188('0xd0')]=qs['filters'](_[_0x3188('0xdd')](_0x32f763[_0x3188('0x45')],_0x206246[_0x3188('0x56')]));if(_0x32f763[_0x3188('0x45')][_0x3188('0x35')]){_0x2527ed[_0x3188('0xd0')]=_[_0x3188('0x5b')](_0x2527ed[_0x3188('0xd0')],{'$or':_[_0x3188('0x37')](_0x2527ed[_0x3188('0x58')],function(_0x2e3401){var _0x7bae={};_0x7bae[_0x2e3401]={'$like':'%'+_0x32f763[_0x3188('0x45')][_0x3188('0x35')]+'%'};return _0x7bae;})});}_0x2527ed=_[_0x3188('0x5b')]({},_0x2527ed,_0x32f763[_0x3188('0xd1')]);return _0x3f323e[_0x3188('0x157')](_0x2527ed);}})[_0x3188('0x18')](function(_0x575697){if(_0x575697){_0x1a76a7=_0x575697[_0x3188('0x4a')];if(!_0x32f763[_0x3188('0x45')][_0x3188('0xd2')]('nolimit')){_0x2527ed['limit']=qs[_0x3188('0x25')](_0x32f763[_0x3188('0x45')][_0x3188('0x25')]);_0x2527ed[_0x3188('0x27')]=qs[_0x3188('0x27')](_0x32f763[_0x3188('0x45')][_0x3188('0x27')]);}return _0x3f323e['getChatWebsites'](_0x2527ed);}})[_0x3188('0x18')](function(_0x46ddbd){if(_0x46ddbd){return _0x46ddbd?{'count':_0x1a76a7,'rows':_0x46ddbd}:null;}})[_0x3188('0x18')](respondWithResult(_0x15a84d,null))[_0x3188('0x52')](handleError(_0x15a84d,null));};exports['addChatWebsites']=function(_0xd74b3,_0x6643ad){return db[_0x3188('0x3d')][_0x3188('0x8b')]({'where':{'id':_0xd74b3['params']['id']}})[_0x3188('0x18')](handleEntityNotFound(_0x6643ad,null))[_0x3188('0x18')](function(_0x375660){if(_0x375660){return _0x375660[_0x3188('0x159')](_0xd74b3[_0x3188('0x5e')][_0x3188('0x62')],_['omit'](_0xd74b3[_0x3188('0x5e')],[_0x3188('0x62'),'id'])||{});}})[_0x3188('0x18')](respondWithResult(_0x6643ad,null))[_0x3188('0x52')](handleError(_0x6643ad,null));};exports[_0x3188('0x15a')]=function(_0x268ef6,_0x49159c){return db[_0x3188('0x3d')][_0x3188('0x8b')]({'where':{'id':_0x268ef6[_0x3188('0x5f')]['id']}})[_0x3188('0x18')](handleEntityNotFound(_0x49159c,null))['then'](function(_0x519e5b){if(_0x519e5b){return _0x519e5b[_0x3188('0x15a')](_0x268ef6[_0x3188('0x45')][_0x3188('0x62')]);}})[_0x3188('0x18')](respondWithStatusCode(_0x49159c,null))[_0x3188('0x52')](handleError(_0x49159c,null));};exports['getWhatsappAccounts']=function(_0x42533c,_0x12eea9){var _0x1aefbc={};var _0xf0870f={};var _0x4e9816;var _0x59d7be;return db[_0x3188('0x3d')][_0x3188('0x99')]({'where':{'id':_0x42533c[_0x3188('0x5f')]['id']}})[_0x3188('0x18')](handleEntityNotFound(_0x12eea9,null))[_0x3188('0x18')](function(_0x3f69b9){if(_0x3f69b9){_0x4e9816=_0x3f69b9;_0xf0870f['model']=_['keys'](db[_0x3188('0x15b')][_0x3188('0x3e')]);_0xf0870f['query']=_[_0x3188('0x55')](_0x42533c[_0x3188('0x45')]);_0xf0870f[_0x3188('0x56')]=_[_0x3188('0x57')](_0xf0870f[_0x3188('0x54')],_0xf0870f[_0x3188('0x45')]);_0x1aefbc[_0x3188('0x58')]=_['intersection'](_0xf0870f['model'],qs['fields'](_0x42533c[_0x3188('0x45')]['fields']));_0x1aefbc[_0x3188('0x58')]=_0x1aefbc[_0x3188('0x58')][_0x3188('0x4a')]?_0x1aefbc['attributes']:_0xf0870f[_0x3188('0x54')];_0x1aefbc['order']=qs[_0x3188('0xcf')](_0x42533c[_0x3188('0x45')][_0x3188('0xcf')]);_0x1aefbc[_0x3188('0xd0')]=qs[_0x3188('0x56')](_['pick'](_0x42533c['query'],_0xf0870f[_0x3188('0x56')]));if(_0x42533c[_0x3188('0x45')]['filter']){_0x1aefbc[_0x3188('0xd0')]=_[_0x3188('0x5b')](_0x1aefbc[_0x3188('0xd0')],{'$or':_['map'](_0x1aefbc[_0x3188('0x58')],function(_0x306eac){var _0x218993={};_0x218993[_0x306eac]={'$like':'%'+_0x42533c[_0x3188('0x45')][_0x3188('0x35')]+'%'};return _0x218993;})});}_0x1aefbc=_['merge']({},_0x1aefbc,_0x42533c['options']);return _0x4e9816['getWhatsappAccounts'](_0x1aefbc);}})[_0x3188('0x18')](function(_0xe89139){if(_0xe89139){_0x59d7be=_0xe89139['length'];if(!_0x42533c[_0x3188('0x45')][_0x3188('0xd2')]('nolimit')){_0x1aefbc[_0x3188('0x25')]=qs[_0x3188('0x25')](_0x42533c['query'][_0x3188('0x25')]);_0x1aefbc[_0x3188('0x27')]=qs[_0x3188('0x27')](_0x42533c[_0x3188('0x45')][_0x3188('0x27')]);}return _0x4e9816[_0x3188('0x15c')](_0x1aefbc);}})[_0x3188('0x18')](function(_0x1fd383){if(_0x1fd383){return _0x1fd383?{'count':_0x59d7be,'rows':_0x1fd383}:null;}})[_0x3188('0x18')](respondWithResult(_0x12eea9,null))[_0x3188('0x52')](handleError(_0x12eea9,null));};exports['addWhatsappAccounts']=function(_0x22b0ca,_0x13bade){return db[_0x3188('0x3d')]['find']({'where':{'id':_0x22b0ca['params']['id']}})[_0x3188('0x18')](handleEntityNotFound(_0x13bade,null))['then'](function(_0x246b38){if(_0x246b38){return _0x246b38[_0x3188('0x15d')](_0x22b0ca['body'][_0x3188('0x62')],_[_0x3188('0x63')](_0x22b0ca[_0x3188('0x5e')],['ids','id'])||{});}})['then'](respondWithResult(_0x13bade,null))[_0x3188('0x52')](handleError(_0x13bade,null));};exports[_0x3188('0x15e')]=function(_0x358fe5,_0x1be622){return db['User'][_0x3188('0x8b')]({'where':{'id':_0x358fe5[_0x3188('0x5f')]['id']}})[_0x3188('0x18')](handleEntityNotFound(_0x1be622,null))[_0x3188('0x18')](function(_0x4897f8){if(_0x4897f8){return _0x4897f8[_0x3188('0x15e')](_0x358fe5[_0x3188('0x45')][_0x3188('0x62')]);}})['then'](respondWithStatusCode(_0x1be622,null))[_0x3188('0x52')](handleError(_0x1be622,null));};exports[_0x3188('0x15f')]=function(_0x466905,_0x3fcf76){var _0x4b0c54={};var _0x25c780={};var _0x38830f;var _0x3b0454;return db[_0x3188('0x3d')][_0x3188('0x99')]({'where':{'id':_0x466905['params']['id']}})[_0x3188('0x18')](handleEntityNotFound(_0x3fcf76,null))['then'](function(_0x2aa659){if(_0x2aa659){_0x38830f=_0x2aa659;_0x25c780['model']=_[_0x3188('0x55')](db[_0x3188('0x160')][_0x3188('0x3e')]);_0x25c780[_0x3188('0x45')]=_[_0x3188('0x55')](_0x466905[_0x3188('0x45')]);_0x25c780[_0x3188('0x56')]=_[_0x3188('0x57')](_0x25c780[_0x3188('0x54')],_0x25c780[_0x3188('0x45')]);_0x4b0c54[_0x3188('0x58')]=_[_0x3188('0x57')](_0x25c780[_0x3188('0x54')],qs['fields'](_0x466905[_0x3188('0x45')][_0x3188('0x59')]));_0x4b0c54[_0x3188('0x58')]=_0x4b0c54['attributes'][_0x3188('0x4a')]?_0x4b0c54[_0x3188('0x58')]:_0x25c780[_0x3188('0x54')];_0x4b0c54[_0x3188('0xce')]=qs[_0x3188('0xcf')](_0x466905[_0x3188('0x45')]['sort']);_0x4b0c54[_0x3188('0xd0')]=qs[_0x3188('0x56')](_[_0x3188('0xdd')](_0x466905[_0x3188('0x45')],_0x25c780['filters']));if(_0x466905['query']['filter']){_0x4b0c54['where']=_[_0x3188('0x5b')](_0x4b0c54[_0x3188('0xd0')],{'$or':_[_0x3188('0x37')](_0x4b0c54[_0x3188('0x58')],function(_0x12a937){var _0xa19d97={};_0xa19d97[_0x12a937]={'$like':'%'+_0x466905['query'][_0x3188('0x35')]+'%'};return _0xa19d97;})});}_0x4b0c54=_[_0x3188('0x5b')]({},_0x4b0c54,_0x466905[_0x3188('0xd1')]);return _0x38830f['getSquareProjects'](_0x4b0c54);}})['then'](function(_0x4a9f1e){if(_0x4a9f1e){_0x3b0454=_0x4a9f1e[_0x3188('0x4a')];if(!_0x466905[_0x3188('0x45')][_0x3188('0xd2')](_0x3188('0xd9'))){_0x4b0c54[_0x3188('0x25')]=qs[_0x3188('0x25')](_0x466905[_0x3188('0x45')]['limit']);_0x4b0c54['offset']=qs[_0x3188('0x27')](_0x466905[_0x3188('0x45')][_0x3188('0x27')]);}return _0x38830f[_0x3188('0x15f')](_0x4b0c54);}})[_0x3188('0x18')](function(_0x7fa887){if(_0x7fa887){return _0x7fa887?{'count':_0x3b0454,'rows':_0x7fa887}:null;}})[_0x3188('0x18')](respondWithResult(_0x3fcf76,null))[_0x3188('0x52')](handleError(_0x3fcf76,null));};exports[_0x3188('0x161')]=function(_0x44f884,_0x313a36){return db[_0x3188('0x3d')][_0x3188('0x8b')]({'where':{'id':_0x44f884[_0x3188('0x5f')]['id']}})[_0x3188('0x18')](handleEntityNotFound(_0x313a36,null))['then'](function(_0x24b7cb){if(_0x24b7cb){return _0x24b7cb['addSquareProjects'](_0x44f884[_0x3188('0x5e')][_0x3188('0x62')],_[_0x3188('0x63')](_0x44f884[_0x3188('0x5e')],['ids','id'])||{});}})[_0x3188('0x18')](respondWithResult(_0x313a36,null))[_0x3188('0x52')](handleError(_0x313a36,null));};exports[_0x3188('0x162')]=function(_0x586fa3,_0x45de33){return db['User'][_0x3188('0x8b')]({'where':{'id':_0x586fa3[_0x3188('0x5f')]['id']}})['then'](handleEntityNotFound(_0x45de33,null))[_0x3188('0x18')](function(_0xacf451){if(_0xacf451){return _0xacf451['removeSquareProjects'](_0x586fa3['query'][_0x3188('0x62')]);}})[_0x3188('0x18')](respondWithStatusCode(_0x45de33,null))['catch'](handleError(_0x45de33,null));};exports[_0x3188('0x163')]=function(_0x3ca6e3,_0x3aa6d5){var _0x1b099c={},_0x5d4aa2={},_0x571303={'count':0x0,'rows':[]};var _0x43b0b6=db[_0x3188('0x164')][_0x3188('0x3e')];_0x5d4aa2[_0x3188('0x54')]=_[_0x3188('0x55')](_0x43b0b6);_0x5d4aa2[_0x3188('0x45')]=_[_0x3188('0x55')](_0x3ca6e3[_0x3188('0x45')]);_0x5d4aa2[_0x3188('0x56')]=_[_0x3188('0x57')](_0x5d4aa2[_0x3188('0x54')],_0x5d4aa2[_0x3188('0x45')]);_0x5d4aa2[_0x3188('0x56')]=_['concat'](_0x5d4aa2[_0x3188('0x56')],[_0x3188('0x165'),_0x3188('0x166'),_0x3188('0x167'),_0x3188('0x168'),_0x3188('0x169'),'$lte',_0x3188('0x16a'),_0x3188('0x16b'),_0x3188('0x16c'),_0x3188('0x16d'),_0x3188('0x16e'),_0x3188('0x16f'),'$notIn',_0x3188('0x170'),'$notLike',_0x3188('0x171'),_0x3188('0x172'),_0x3188('0x170'),_0x3188('0x173'),'$contains',_0x3188('0x174'),'$any']);_0x1b099c[_0x3188('0x58')]=_['intersection'](_0x5d4aa2['model'],qs['fields'](_0x3ca6e3[_0x3188('0x45')][_0x3188('0x59')]));_0x1b099c[_0x3188('0x58')]=_0x1b099c[_0x3188('0x58')]['length']?_0x1b099c[_0x3188('0x58')]:_0x5d4aa2[_0x3188('0x54')];if(!_0x3ca6e3['query'][_0x3188('0xd2')](_0x3188('0xd9'))){_0x1b099c[_0x3188('0x25')]=qs['limit'](_0x3ca6e3['query'][_0x3188('0x25')]);_0x1b099c[_0x3188('0x27')]=qs['offset'](_0x3ca6e3[_0x3188('0x45')]['offset']);}_0x1b099c['order']=qs[_0x3188('0xcf')](_0x3ca6e3[_0x3188('0x45')][_0x3188('0xcf')]);_0x1b099c[_0x3188('0xd0')]=qs['filters'](_[_0x3188('0xdd')](_0x3ca6e3[_0x3188('0x45')],_0x5d4aa2[_0x3188('0x56')]));if(_0x3ca6e3['query'][_0x3188('0x35')]){_0x1b099c[_0x3188('0xd0')]=_[_0x3188('0x5b')](_0x1b099c[_0x3188('0xd0')],{'$or':_[_0x3188('0x37')](_0x1b099c['attributes'],function(_0x15dac6){var _0x55fc6e={};_0x55fc6e[_0x15dac6]={'$like':'%'+_0x3ca6e3[_0x3188('0x45')][_0x3188('0x35')]+'%'};return _0x55fc6e;})});}_0x1b099c['where']={'$and':[_0x1b099c[_0x3188('0xd0')],{'$or':[{'UserId':_0x3ca6e3[_0x3188('0x5f')]['id']},{'OwnerId':_0x3ca6e3[_0x3188('0x5f')]['id']}]}]};_0x1b099c=_[_0x3188('0x5b')]({},_0x1b099c,_0x3ca6e3[_0x3188('0xd1')]);var _0x5b3323={'where':_0x1b099c[_0x3188('0xd0')]};return db[_0x3188('0x164')][_0x3188('0x26')](_0x5b3323)[_0x3188('0x18')](function(_0x255cc3){_0x571303[_0x3188('0x26')]=_0x255cc3;if(_0x3ca6e3[_0x3188('0x45')][_0x3188('0x46')]){_0x1b099c[_0x3188('0x5a')]=[{'attributes':['id',_0x3188('0x175'),_0x3188('0x176'),_0x3188('0xf1')],'model':db[_0x3188('0xcd')],'as':_0x3188('0x177')},{'attributes':['id',_0x3188('0x3b'),'dialActive'],'model':db['VoiceQueue'],'as':'Queue'}];}return db[_0x3188('0x164')][_0x3188('0x47')](_0x1b099c);})[_0x3188('0x18')](function(_0x294085){_0x571303[_0x3188('0x48')]=_0x294085;return _0x571303;})[_0x3188('0x18')](respondWithFilteredResult(_0x3aa6d5,_0x1b099c))[_0x3188('0x52')](handleError(_0x3aa6d5,null));};exports[_0x3188('0x178')]=function(_0x30612b,_0x1f6e0f){if(!_[_0x3188('0x69')](_0x30612b[_0x3188('0x30')]['id'])&&(_0x30612b[_0x3188('0x30')][_0x3188('0x2d')]==_0x3188('0x2e')||_0x30612b[_0x3188('0x30')][_0x3188('0x2d')]==_0x3188('0x30'))){return db[_0x3188('0x3d')]['findOne']({'where':{'id':_0x30612b['params']['id']},'raw':!![]})['then'](function(_0x214900){return authService[_0x3188('0x179')](_0x214900);})[_0x3188('0x18')](function(_0x3011e4){if(_0x3011e4){return _0x1f6e0f['status'](0xc8)[_0x3188('0x23')]({'api_key':_0x3011e4[_0x3188('0x17a')]});}else{return _0x1f6e0f[_0x3188('0x21')](0xcc)[_0x3188('0x23')]({'message':'No\x20API\x20access\x20key\x20found!'});}})[_0x3188('0x52')](handleError(_0x1f6e0f,0x193));}else{return _0x1f6e0f['status'](0x191)[_0x3188('0x23')]({'message':_0x3188('0x17b')});}};exports[_0x3188('0x17c')]=function(_0x4701f4,_0x5df1a9){if(!_[_0x3188('0x69')](_0x4701f4[_0x3188('0x30')]['id'])&&(_0x4701f4[_0x3188('0x30')][_0x3188('0x2d')]=='admin'||_0x4701f4[_0x3188('0x30')][_0x3188('0x2d')]==_0x3188('0x30'))){return db[_0x3188('0x3d')][_0x3188('0x8b')]({'where':{'id':_0x4701f4[_0x3188('0x5f')]['id']}})[_0x3188('0x18')](function(_0x154c8c){return authService[_0x3188('0x17d')](_0x154c8c);})[_0x3188('0x18')](function(_0x17419f){return db[_0x3188('0x3d')]['update']({'apiKeyIat':_0x17419f[_0x3188('0x17e')],'apiKeyNonce':_0x17419f['nonce']},{'where':{'id':_0x4701f4[_0x3188('0x5f')]['id']}})[_0x3188('0x18')](function(){return _0x5df1a9[_0x3188('0x21')](0xc8)[_0x3188('0x23')]({'api_key':_0x17419f[_0x3188('0x17a')]});});})[_0x3188('0x52')](handleError(_0x5df1a9,0x193));}else{return _0x5df1a9[_0x3188('0x21')](0x191)[_0x3188('0x23')]({'message':_0x3188('0x17b')});}};exports[_0x3188('0x17f')]=function(_0x15b828,_0xd92068){if(!_[_0x3188('0x69')](_0x15b828[_0x3188('0x30')]['id'])&&(_0x15b828[_0x3188('0x30')]['role']=='admin'||_0x15b828[_0x3188('0x30')][_0x3188('0x2d')]==_0x3188('0x30'))){return db['User']['find']({'where':{'id':_0x15b828[_0x3188('0x5f')]['id']}})[_0x3188('0x18')](handleEntityNotFound(_0xd92068,null))[_0x3188('0x18')](function(_0x13f209){if(_0x13f209&&_0x13f209['apiKeyNonce']&&_0x13f209[_0x3188('0x180')])return _0x13f209;else throw{'message':_0x3188('0x181')};})[_0x3188('0x18')](function(_0x357ccb){return db['User'][_0x3188('0x2a')]({'apiKeyNonce':null,'apiKeyIat':null},{'where':{'id':_0x15b828['params']['id']}});})[_0x3188('0x18')](respondWithStatusCode(_0xd92068,0xc8))[_0x3188('0x52')](handleError(_0xd92068,0x193));}else{return _0xd92068[_0x3188('0x21')](0x191)[_0x3188('0x23')]({'message':_0x3188('0x17b')});}};exports[_0x3188('0x182')]=function(_0xca7a33,_0x14a6b1){var _0x1b75ff=_0xca7a33['user'][_0x3188('0x2c')]({'plain':!![]});if(!_0x1b75ff){return _0x14a6b1[_0x3188('0x21')](0x191)[_0x3188('0x3c')](_0x3188('0x183'));}else{return _0x14a6b1['status'](0xc8)[_0x3188('0x23')](_0x1b75ff);}};exports[_0x3188('0x184')]=function(_0x2e2825,_0x53dadb){var _0x48e6b1={'offset':0x0},_0x9cd59c={'count':0x0,'rows':[]};Promise['resolve']()[_0x3188('0x18')](function(){if(!_0x2e2825['query'][_0x3188('0x35')]&&!_0x2e2825[_0x3188('0x45')]['teams']&&!_0x2e2825[_0x3188('0x45')]['queues'])return[];return Promise[_0x3188('0x106')]()[_0x3188('0x18')](function(){var _0x3fcbdd=[];if(!_[_0x3188('0x8f')](_0x2e2825['query'][_0x3188('0x185')])){_0x3fcbdd[_0x3188('0x4d')](db[_0x3188('0x114')]['findAll']({'attributes':['id',_0x3188('0x3b')],'where':{'id':_0x2e2825['query'][_0x3188('0x185')]}}));}if(!_[_0x3188('0x8f')](_0x2e2825[_0x3188('0x45')][_0x3188('0x186')])){_0x3fcbdd[_0x3188('0x4d')](db['VoiceQueue'][_0x3188('0x47')]({'attributes':['id',_0x3188('0x3b')],'type':_0x3188('0x187'),'where':{'id':_0x2e2825['query'][_0x3188('0x186')]}}));}return Promise[_0x3188('0x51')](_0x3fcbdd);})[_0x3188('0x18')](function(_0x495120){var _0x377426=_['flatten'](_0x495120)[_0x3188('0x37')](function(_0x2e8056){return _0x2e8056['getAgents']({'attributes':['id','name',_0x3188('0x6a'),_0x3188('0x9f')],'raw':!![]});});return Promise[_0x3188('0x51')](_0x377426);})['then'](function(_0x15026f){var _0x3361b8=_[_0x3188('0x129')](_0x15026f);if(!_0x2e2825['query'][_0x3188('0x35')])return _0x3361b8;if(_[_0x3188('0x8f')](_0x3361b8)){return db[_0x3188('0x3d')][_0x3188('0x47')]({'attributes':['id',_0x3188('0x3b'),_0x3188('0x6a'),_0x3188('0x9f')],'where':{'role':_0x3188('0x32'),'$or':[db[_0x3188('0x6c')]['where'](db['sequelize']['fn'](_0x3188('0x188'),db[_0x3188('0x6c')][_0x3188('0x189')](_0x3188('0x3b'))),{'$like':'%'+_0x2e2825[_0x3188('0x45')][_0x3188('0x35')][_0x3188('0xaa')]()+'%'}),{'internal':{'$like':'%'+_0x2e2825[_0x3188('0x45')][_0x3188('0x35')]+'%'}}]},'raw':!![]});}else{return _(_0x3361b8)[_0x3188('0x129')]()['filter'](function(_0x3efe0d){return _0x3efe0d[_0x3188('0x3b')]['toLowerCase']()[_0x3188('0x39')](_0x2e2825[_0x3188('0x45')][_0x3188('0x35')][_0x3188('0xaa')]())||_0x3efe0d[_0x3188('0x6a')][_0x3188('0x18a')]()[_0x3188('0x39')](_0x2e2825[_0x3188('0x45')]['filter']);})[_0x3188('0x38')]();}})[_0x3188('0x18')](function(_0x3f973d){var _0x17dbb9=_0x3188('0x3b');var _0x25ae20=_0x3188('0x18b');if(_0x2e2825[_0x3188('0x45')][_0x3188('0xcf')]){var _0x25ae20=_0x2e2825['query'][_0x3188('0xcf')][0x0]==='-'?_0x3188('0x18c'):_0x3188('0x18b');var _0x17dbb9=_0x25ae20==='asc'?_0x2e2825[_0x3188('0x45')][_0x3188('0xcf')]:_0x2e2825[_0x3188('0x45')][_0x3188('0xcf')]['substring'](0x1);}return _(_0x3f973d)[_0x3188('0x18d')]('id')['orderBy']([function(_0x5b05e7){return _0x17dbb9==='name'?_0x5b05e7[_0x17dbb9][_0x3188('0xaa')]():_0x5b05e7[_0x17dbb9];}],[_0x25ae20])[_0x3188('0x37')](function(_0x14c481){return _[_0x3188('0xdd')](_0x14c481,['id',_0x3188('0x3b'),_0x3188('0x6a'),_0x3188('0x9f')]);})[_0x3188('0x38')]();})['then'](function(_0x1513ce){return client[_0x3188('0x17')](_0x3188('0x31'),_0x2e2825)[_0x3188('0x18')](function(_0x63e01){if(_0x63e01[_0x3188('0x1e')])throw new Error('Unable\x20to\x20retrieve\x20RPC\x20agents\x20(AMI)');var _0x48a095=_0x63e01[_0x3188('0x20')];var _0xdfb538=jayson[_0x3188('0x15')][_0x3188('0x16')]({'port':0x232c});return _0xdfb538[_0x3188('0x17')](_0x3188('0x31'),_0x2e2825)[_0x3188('0x18')](function(_0x13d437){if(_0x13d437['error'])throw new Error(_0x3188('0x18e'));var _0x2a878e=_0x13d437[_0x3188('0x20')];return _[_0x3188('0x5b')]({},_0x2a878e,_0x48a095);});})[_0x3188('0x18')](function(_0x2ccc63){return _[_0x3188('0x37')](_0x1513ce,function(_0x23ce90){var _0x4787c4=_[_0x3188('0x8b')](_0x2ccc63[_0x3188('0x48')],['id',_0x23ce90['id']]);if(!_0x4787c4||!_0x23ce90[_0x3188('0x9f')]){_0x23ce90['status']='offline';}else if(_0x4787c4[_0x3188('0xa1')]){_0x23ce90[_0x3188('0x21')]=_0x3188('0x108');}else{_0x23ce90[_0x3188('0x21')]=_['includes']([_0x3188('0x18f'),'unknown',_0x3188('0x190'),_0x3188('0x191'),null,undefined],_0x4787c4['voiceStatus'])?_0x3188('0x9f'):_0x3188('0x192');}return _0x23ce90;});});});})[_0x3188('0x18')](function(_0x440f03){if(!_0x2e2825[_0x3188('0x45')][_0x3188('0xd2')]('nolimit')){_0x48e6b1[_0x3188('0x25')]=qs[_0x3188('0x25')](_0x2e2825[_0x3188('0x45')]['limit']||0xa);_0x48e6b1[_0x3188('0x27')]=qs[_0x3188('0x27')](_0x2e2825[_0x3188('0x45')]['offset']);}_0x9cd59c[_0x3188('0x26')]=_0x440f03[_0x3188('0x4a')];_0x9cd59c[_0x3188('0x48')]=_0x48e6b1['limit']?_0x440f03[_0x3188('0x193')](_0x48e6b1[_0x3188('0x27')],_0x48e6b1[_0x3188('0x27')]+_0x48e6b1[_0x3188('0x25')]):_0x440f03;return _0x9cd59c;})[_0x3188('0x18')](respondWithFilteredResult(_0x53dadb,_0x48e6b1))['catch'](handleError(_0x53dadb,null));};function get_open_tabs(_0x14fe3c,_0x2bfd68){var _0x43af9d=_0x14fe3c[_0x3188('0x194')](0x0)['toUpperCase']()+_0x14fe3c[_0x3188('0x193')](0x1);var _0xff9aa2={'type':db[_0x3188('0x98')]['QueryTypes'][_0x3188('0x6f')],'raw':!![]};return new BPromise(function(_0x516229,_0x31f8bd){var _0x11594f=squel[_0x3188('0x195')]()['field']('ui.'+_0x43af9d+_0x3188('0x196'),'id')[_0x3188('0x197')]('ui.createdAt')['from'](_0x3188('0x198')+_0x14fe3c+_0x3188('0x199'),'ui')['where'](_0x3188('0x19a'),_0x2bfd68['id']);return db[_0x3188('0x6c')][_0x3188('0x45')](_0x11594f[_0x3188('0x18a')](),_0xff9aa2)['then'](function(_0x9b247c){_0x2bfd68[_0x43af9d+'OpenTabs']=_0x9b247c;_0x516229(_0x9b247c);})['catch'](function(_0x27e026){_0x31f8bd(_0x27e026);});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc18f=['emit','hasOwnProperty','exports','events','User','setMaxListeners'];(function(_0x2e2db2,_0x1e3f57){var _0x2a906a=function(_0x285a3f){while(--_0x285a3f){_0x2e2db2['push'](_0x2e2db2['shift']());}};_0x2a906a(++_0x1e3f57);}(_0xc18f,0x93));var _0xfc18=function(_0x238220,_0x1118f1){_0x238220=_0x238220-0x0;var _0x5d8c1e=_0xc18f[_0x238220];return _0x5d8c1e;};'use strict';var EventEmitter=require(_0xfc18('0x0'));var User=require('../../mysqldb')['db'][_0xfc18('0x1')];var UserEvents=new EventEmitter();UserEvents[_0xfc18('0x2')](0x0);var events={'afterCreate':'save','afterUpdate':'update','afterDestroy':'remove'};function emitEvent(_0x491e77){return function(_0x542574,_0x5d4097,_0x429f4f){UserEvents[_0xfc18('0x3')](_0x491e77+':'+_0x542574['id'],_0x542574);UserEvents['emit'](_0x491e77,_0x542574);_0x429f4f(null);};}for(var e in events){if(events[_0xfc18('0x4')](e)){var event=events[e];User['hook'](e,emitEvent(event));}}module[_0xfc18('0x5')]=UserEvents;
\ No newline at end of file
+var _0xe98a=['User','setMaxListeners','save','remove','hasOwnProperty','hook','events','../../mysqldb'];(function(_0x22490e,_0x4935bd){var _0x5b6459=function(_0x46ab8e){while(--_0x46ab8e){_0x22490e['push'](_0x22490e['shift']());}};_0x5b6459(++_0x4935bd);}(_0xe98a,0x86));var _0xae98=function(_0x456fb1,_0x859a1d){_0x456fb1=_0x456fb1-0x0;var _0x4083d6=_0xe98a[_0x456fb1];return _0x4083d6;};'use strict';var EventEmitter=require(_0xae98('0x0'));var User=require(_0xae98('0x1'))['db'][_0xae98('0x2')];var UserEvents=new EventEmitter();UserEvents[_0xae98('0x3')](0x0);var events={'afterCreate':_0xae98('0x4'),'afterUpdate':'update','afterDestroy':_0xae98('0x5')};function emitEvent(_0x375bed){return function(_0x4312d9,_0x228a91,_0x422aad){UserEvents['emit'](_0x375bed+':'+_0x4312d9['id'],_0x4312d9);UserEvents['emit'](_0x375bed,_0x4312d9);_0x422aad(null);};}for(var e in events){if(events[_0xae98('0x6')](e)){var event=events[e];User[_0xae98('0x7')](e,emitEvent(event));}}module['exports']=UserEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2265=['undefined','resolve','UserProfile','find','privacyEnabled','updateMd5Password','updatePassword','catch','changed','password','concat','VoiceExtension','bulkCreate','destroy','length','encryptPassword','function','Missing\x20Callback','base64','salt','pbkdf2Sync','toString','pbkdf2','indexOf','provider','Invalid\x20password','makeSalt','md5secret',':asterisk:','crypto','util','lodash','context','from-sip','system','%s%s','push','merge','Set','format','chanspy','record','MixMonitor','${UNIQUEID}.%s,a','auth','Authenticate','SIP/%s,%s','name','options','join','WAV','gsm','CDR(type)=internal','extensionMonitor','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','Dial','SIP/%s,,tTxXU(xcally-mixmonitor-context)','Hangup','priority','defaults','VoiceChanSpy','findAll','then','internal','exports','models','User','utf8','utf8_bin','userProfileId'];(function(_0x39cb25,_0x390002){var _0x2e38f5=function(_0x677aa3){while(--_0x677aa3){_0x39cb25['push'](_0x39cb25['shift']());}};_0x2e38f5(++_0x390002);}(_0x2265,0xa9));var _0x5226=function(_0x278e3c,_0x1c9cfd){_0x278e3c=_0x278e3c-0x0;var _0x3e2d9b=_0x2265[_0x278e3c];return _0x3e2d9b;};'use strict';var BPromise=require('bluebird');var crypto=require(_0x5226('0x0'));var util=require(_0x5226('0x1'));var md5=require('md5');var _=require(_0x5226('0x2'));var attributes=require('./user.attributes');var authTypes=['google'];var validatePresenceOf=function(_0x5ac56c){return _0x5ac56c&&_0x5ac56c['length'];};var getChanSpyApplications=function(_0x2aa933,_0x385587,_0x2d7950){var _0x567ab9={'context':_0x2aa933[_0x5226('0x3')]||_0x5226('0x4'),'type':_0x5226('0x5'),'isApp':![],'UserId':_0x2aa933['id']};var _0x55a569=[];for(var _0x1950de=0x0,_0x177a3d=0x1;_0x1950de<_0x2d7950['length'];_0x1950de++,_0x177a3d=0x1){var _0x42d7af={'exten':util['format'](_0x5226('0x6'),_0x2d7950[_0x1950de]['prefix'],_0x385587),'ChanSpyId':_0x2d7950[_0x1950de]['id']};_0x55a569[_0x5226('0x7')](_[_0x5226('0x8')]({'app':_0x5226('0x9'),'appdata':util[_0x5226('0xa')]('CDR(type)=%s',_0x5226('0xb')),'priority':_0x177a3d++},_0x567ab9,_0x42d7af));if(_0x2d7950[_0x1950de][_0x5226('0xc')]){_0x55a569['push'](_[_0x5226('0x8')]({'app':_0x5226('0xd'),'appdata':util[_0x5226('0xa')](_0x5226('0xe'),_0x2d7950[_0x1950de]['recordingFormat']),'priority':_0x177a3d++},_0x567ab9,_0x42d7af));}if(_0x2d7950[_0x1950de][_0x5226('0xf')]){_0x55a569[_0x5226('0x7')](_[_0x5226('0x8')]({'app':_0x5226('0x10'),'appdata':_0x2d7950[_0x1950de]['password'],'priority':_0x177a3d++},_0x567ab9,_0x42d7af));}_0x55a569[_0x5226('0x7')](_['merge']({'app':'ChanSpy','appdata':util[_0x5226('0xa')](_0x5226('0x11'),_0x2aa933[_0x5226('0x12')],_0x2d7950[_0x1950de][_0x5226('0x13')]?_0x2d7950[_0x1950de][_0x5226('0x13')][_0x5226('0x14')](''):''),'priority':_0x177a3d++},_0x567ab9,_0x42d7af));if(_0x2d7950[_0x1950de][_0x5226('0xc')]){_0x55a569[_0x5226('0x7')](_[_0x5226('0x8')]({'app':'StopMixMonitor','priority':_0x177a3d++},_0x567ab9,_0x42d7af));}}return _0x55a569;};var getUserApplications=function(_0xd88910,_0x5a0bf8){var _0x5b2565=['wav',_0x5226('0x15'),_0x5226('0x16')];var _0x284950={'context':_0xd88910['context']||_0x5226('0x4'),'exten':_0x5a0bf8,'type':_0x5226('0x5'),'isApp':![],'UserId':_0xd88910['id']};var _0x4a07bd=[{'app':_0x5226('0x9'),'appdata':_0x5226('0x17')}];if(_0xd88910[_0x5226('0x18')]&&_['includes'](_0x5b2565,_0xd88910[_0x5226('0x18')])){_0x4a07bd['push']({'app':_0x5226('0x9'),'appdata':_0x5226('0x19')});_0x4a07bd[_0x5226('0x7')]({'app':_0x5226('0x9'),'appdata':util['format']('_XCALLY_MIXMONITOR_FORMAT=%s',_0xd88910[_0x5226('0x18')])});_0x4a07bd[_0x5226('0x7')]({'app':_0x5226('0x1a'),'appdata':util[_0x5226('0xa')](_0x5226('0x1b'),_0xd88910['name'])});}else{_0x4a07bd[_0x5226('0x7')]({'app':'Dial','appdata':util[_0x5226('0xa')]('SIP/%s,,tTxX',_0xd88910['name'])});}_0x4a07bd[_0x5226('0x7')]({'app':_0x5226('0x1c')});for(var _0x1652da=0x0;_0x1652da<_0x4a07bd['length'];_0x1652da++){_0x4a07bd[_0x1652da][_0x5226('0x1d')]=_0x1652da+0x1;_0x4a07bd[_0x1652da]=_[_0x5226('0x1e')](_0x4a07bd[_0x1652da],_0x284950);}return _0x4a07bd;};var getChanSpyPromise=function(_0xd9e53a,_0x34f78f){return new BPromise(function(_0x2ea025,_0x5af1dc){return _0xd9e53a[_0x5226('0x1f')][_0x5226('0x20')]()[_0x5226('0x21')](function(_0xf551d7){if(_0xf551d7){var _0x1fb578=getChanSpyApplications(_0x34f78f,_0x34f78f[_0x5226('0x22')],_0xf551d7);if(_0x34f78f[_0x5226('0x22')]!=_0x34f78f[_0x5226('0x12')]){_0x1fb578=_0x1fb578['concat'](getChanSpyApplications(_0x34f78f,_0x34f78f[_0x5226('0x12')],_0xf551d7));}return _0x2ea025(_0x1fb578);}return _0x2ea025([]);})['catch'](function(_0x50854a){_0x5af1dc(_0x50854a);});});};module[_0x5226('0x23')]=function(_0x4d45af,_0x4b185d){var _0x18641b=_0x4d45af[_0x5226('0x24')];return _0x4d45af['define'](_0x5226('0x25'),attributes,{'tableName':'users','charset':_0x5226('0x26'),'collate':_0x5226('0x27'),'hooks':{'beforeCreate':function(_0x129637,_0x4e39e0,_0x1a8d37){var _0x23afbb=typeof _0x129637[_0x5226('0x28')]===_0x5226('0x29')?BPromise[_0x5226('0x2a')](null):_0x18641b[_0x5226('0x2b')][_0x5226('0x2c')]({'where':{'id':_0x129637[_0x5226('0x28')]}});_0x23afbb[_0x5226('0x21')](function(_0x572442){if(_0x572442){_0x129637[_0x5226('0x2d')]=_0x572442[_0x5226('0x2d')];}})[_0x5226('0x21')](function(){_0x129637[_0x5226('0x2e')]();_0x129637[_0x5226('0x2f')](_0x1a8d37);})[_0x5226('0x30')](function(_0x70cc3b){_0x1a8d37(_0x70cc3b);});},'beforeUpdate':function(_0x588ff3,_0x2c8570,_0x4d79be){Promise[_0x5226('0x2a')]()[_0x5226('0x21')](function(){if(_0x588ff3[_0x5226('0x31')]('userProfileId')===![])return;return _0x18641b['UserProfile'][_0x5226('0x2c')]({'where':{'id':_0x588ff3[_0x5226('0x28')]}})[_0x5226('0x21')](function(_0x1fe452){if(_0x1fe452)_0x588ff3[_0x5226('0x2d')]=_0x1fe452[_0x5226('0x2d')];return;});})[_0x5226('0x21')](function(){if(_0x588ff3['changed'](_0x5226('0x32'))){_0x588ff3[_0x5226('0x2e')]();return _0x588ff3[_0x5226('0x2f')](_0x4d79be);}_0x4d79be();})['catch'](function(_0x54e713){_0x4d79be(_0x54e713);});},'afterCreate':function(_0x3e79a3,_0x31ed85,_0x5500b5){var _0x2ac65d=getUserApplications(_0x3e79a3,_0x3e79a3[_0x5226('0x22')]);if(_0x3e79a3[_0x5226('0x22')]!=_0x3e79a3[_0x5226('0x12')]){_0x2ac65d=_0x2ac65d[_0x5226('0x33')](getUserApplications(_0x3e79a3,_0x3e79a3['name']));}return _0x18641b[_0x5226('0x34')][_0x5226('0x35')](_0x2ac65d)[_0x5226('0x21')](function(){if(_0x3e79a3['chanspy']){return getChanSpyPromise(_0x18641b,_0x3e79a3);}})[_0x5226('0x21')](function(_0x10991a){if(_0x10991a&&_0x10991a['length']){return _0x18641b[_0x5226('0x34')][_0x5226('0x35')](_0x10991a);}})[_0x5226('0x21')](function(){_0x5500b5();})[_0x5226('0x30')](function(_0x39b823){_0x5500b5(_0x39b823);});},'afterUpdate':function(_0x173710,_0x6755fb,_0xea4ead){return BPromise[_0x5226('0x2a')]()['then'](function(){if(_0x173710[_0x5226('0x31')](_0x5226('0xb'))||_0x173710[_0x5226('0x31')](_0x5226('0x3'))){return _0x18641b[_0x5226('0x34')][_0x5226('0x36')]({'where':{'UserId':_0x173710['id'],'type':_0x5226('0x5'),'ChanSpyId':{'$ne':null}}})[_0x5226('0x21')](function(){if(_0x173710[_0x5226('0xb')]){return getChanSpyPromise(_0x18641b,_0x173710)[_0x5226('0x21')](function(_0x1475da){if(_0x1475da&&_0x1475da[_0x5226('0x37')]){return _0x18641b[_0x5226('0x34')][_0x5226('0x35')](_0x1475da);}});}});}})[_0x5226('0x21')](function(){if(_0x173710[_0x5226('0x31')](_0x5226('0x18'))||_0x173710[_0x5226('0x31')](_0x5226('0x3'))){return _0x18641b[_0x5226('0x34')][_0x5226('0x36')]({'where':{'UserId':_0x173710['id'],'type':'system','ChanSpyId':null}})['then'](function(){var _0x308440=getUserApplications(_0x173710,_0x173710[_0x5226('0x22')]);if(_0x173710[_0x5226('0x22')]!=_0x173710[_0x5226('0x12')]){_0x308440=_0x308440[_0x5226('0x33')](getUserApplications(_0x173710,_0x173710['name']));}return _0x18641b[_0x5226('0x34')][_0x5226('0x35')](_0x308440);});}})['then'](function(){_0xea4ead();})['catch'](function(_0xfa55f1){_0xea4ead(_0xfa55f1);});},'afterDestroy':function(_0x9eece6,_0x35111b){return _0x18641b[_0x5226('0x34')][_0x5226('0x36')]({'where':{'UserId':_0x9eece6['id'],'type':'system'}});}},'instanceMethods':{'authenticate':function(_0xa44c06,_0x3b9623){if(!_0x3b9623){return this[_0x5226('0x32')]===this[_0x5226('0x38')](_0xa44c06);}var _0x383715=this;this['encryptPassword'](_0xa44c06,function(_0x440fcb,_0x5d0c08){if(_0x440fcb){_0x3b9623(_0x440fcb);}if(_0x383715[_0x5226('0x32')]===_0x5d0c08){_0x3b9623(null,!![]);}else{_0x3b9623(null,![]);}});},'makeSalt':function(_0x4ec38d,_0x398d57){var _0x1a4108=0x10;if(typeof arguments[0x0]===_0x5226('0x39')){_0x398d57=arguments[0x0];_0x4ec38d=_0x1a4108;}else if(typeof arguments[0x1]==='function'){_0x398d57=arguments[0x1];}else{throw new Error(_0x5226('0x3a'));}if(!_0x4ec38d){_0x4ec38d=_0x1a4108;}return crypto['randomBytes'](_0x4ec38d,function(_0x3c4651,_0x41c295){if(_0x3c4651){_0x398d57(_0x3c4651);}return _0x398d57(null,_0x41c295['toString'](_0x5226('0x3b')));});},'encryptPassword':function(_0x400caa,_0x400780){if(!_0x400caa||!this[_0x5226('0x3c')]){return _0x400780?_0x400780(null):null;}var _0x46a1e6=0x2710;var _0x3285e3=0x40;var _0x35deef=new Buffer(this[_0x5226('0x3c')],_0x5226('0x3b'));if(!_0x400780){return crypto[_0x5226('0x3d')](_0x400caa,_0x35deef,_0x46a1e6,_0x3285e3,'sha1')[_0x5226('0x3e')](_0x5226('0x3b'));}return crypto[_0x5226('0x3f')](_0x400caa,_0x35deef,_0x46a1e6,_0x3285e3,'sha1',function(_0x4ee3a6,_0x365f63){if(_0x4ee3a6){_0x400780(_0x4ee3a6);}return _0x400780(null,_0x365f63[_0x5226('0x3e')](_0x5226('0x3b')));});},'updatePassword':function(_0x42cfd6){if(!this[_0x5226('0x32')]){return _0x42cfd6(null);}if(!validatePresenceOf(this['password'])&&authTypes[_0x5226('0x40')](this[_0x5226('0x41')])===-0x1){_0x42cfd6(new Error(_0x5226('0x42')));}var _0x2dfbe4=this;this[_0x5226('0x43')](function(_0x5b40a2,_0x26b7b8){if(_0x5b40a2){return _0x42cfd6(_0x5b40a2);}_0x2dfbe4[_0x5226('0x3c')]=_0x26b7b8;_0x2dfbe4[_0x5226('0x38')](_0x2dfbe4[_0x5226('0x32')],function(_0x1c42c7,_0x4ab746){if(_0x1c42c7){_0x42cfd6(_0x1c42c7);}_0x2dfbe4[_0x5226('0x32')]=_0x4ab746;_0x42cfd6(null);});});},'updateMd5Password':function(){this[_0x5226('0x44')]=md5(this[_0x5226('0x12')]+_0x5226('0x45')+this[_0x5226('0x32')]);return this['md5secret'];}}});};
\ No newline at end of file
+var _0xd814=['provider','Invalid\x20password','makeSalt','md5secret',':asterisk:','bluebird','crypto','util','./user.attributes','google','context','from-sip','system','length','format','%s%s','prefix','push','merge','Set','chanspy','record','recordingFormat','auth','Authenticate','ChanSpy','name','options','join','StopMixMonitor','wav','WAV','gsm','CDR(type)=internal','extensionMonitor','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=%s','Dial','SIP/%s,,tTxXU(xcally-mixmonitor-context)','Hangup','priority','defaults','VoiceChanSpy','findAll','internal','concat','catch','exports','models','define','User','users','utf8','utf8_bin','UserProfile','find','then','privacyEnabled','updatePassword','resolve','changed','userProfileId','password','VoiceExtension','destroy','bulkCreate','function','Missing\x20Callback','randomBytes','base64','salt','sha1','toString'];(function(_0x23a51b,_0x49f2b0){var _0x9e31c=function(_0x573151){while(--_0x573151){_0x23a51b['push'](_0x23a51b['shift']());}};_0x9e31c(++_0x49f2b0);}(_0xd814,0x129));var _0x4d81=function(_0x970d77,_0x468d5b){_0x970d77=_0x970d77-0x0;var _0x783e22=_0xd814[_0x970d77];return _0x783e22;};'use strict';var BPromise=require(_0x4d81('0x0'));var crypto=require(_0x4d81('0x1'));var util=require(_0x4d81('0x2'));var md5=require('md5');var _=require('lodash');var attributes=require(_0x4d81('0x3'));var authTypes=[_0x4d81('0x4')];var validatePresenceOf=function(_0x5cc752){return _0x5cc752&&_0x5cc752['length'];};var getChanSpyApplications=function(_0x2ddf8d,_0x6d1457,_0x2a655a){var _0x205dca={'context':_0x2ddf8d[_0x4d81('0x5')]||_0x4d81('0x6'),'type':_0x4d81('0x7'),'isApp':![],'UserId':_0x2ddf8d['id']};var _0x485bad=[];for(var _0x3a6790=0x0,_0x96bdeb=0x1;_0x3a6790<_0x2a655a[_0x4d81('0x8')];_0x3a6790++,_0x96bdeb=0x1){var _0x4ad10d={'exten':util[_0x4d81('0x9')](_0x4d81('0xa'),_0x2a655a[_0x3a6790][_0x4d81('0xb')],_0x6d1457),'ChanSpyId':_0x2a655a[_0x3a6790]['id']};_0x485bad[_0x4d81('0xc')](_[_0x4d81('0xd')]({'app':_0x4d81('0xe'),'appdata':util[_0x4d81('0x9')]('CDR(type)=%s',_0x4d81('0xf')),'priority':_0x96bdeb++},_0x205dca,_0x4ad10d));if(_0x2a655a[_0x3a6790][_0x4d81('0x10')]){_0x485bad[_0x4d81('0xc')](_[_0x4d81('0xd')]({'app':'MixMonitor','appdata':util['format']('${UNIQUEID}.%s,a',_0x2a655a[_0x3a6790][_0x4d81('0x11')]),'priority':_0x96bdeb++},_0x205dca,_0x4ad10d));}if(_0x2a655a[_0x3a6790][_0x4d81('0x12')]){_0x485bad[_0x4d81('0xc')](_[_0x4d81('0xd')]({'app':_0x4d81('0x13'),'appdata':_0x2a655a[_0x3a6790]['password'],'priority':_0x96bdeb++},_0x205dca,_0x4ad10d));}_0x485bad[_0x4d81('0xc')](_[_0x4d81('0xd')]({'app':_0x4d81('0x14'),'appdata':util['format']('SIP/%s,%s',_0x2ddf8d[_0x4d81('0x15')],_0x2a655a[_0x3a6790][_0x4d81('0x16')]?_0x2a655a[_0x3a6790][_0x4d81('0x16')][_0x4d81('0x17')](''):''),'priority':_0x96bdeb++},_0x205dca,_0x4ad10d));if(_0x2a655a[_0x3a6790]['record']){_0x485bad['push'](_[_0x4d81('0xd')]({'app':_0x4d81('0x18'),'priority':_0x96bdeb++},_0x205dca,_0x4ad10d));}}return _0x485bad;};var getUserApplications=function(_0x413b61,_0x59a5e8){var _0x50de56=[_0x4d81('0x19'),_0x4d81('0x1a'),_0x4d81('0x1b')];var _0x5a1b4f={'context':_0x413b61['context']||_0x4d81('0x6'),'exten':_0x59a5e8,'type':_0x4d81('0x7'),'isApp':![],'UserId':_0x413b61['id']};var _0x48aa50=[{'app':_0x4d81('0xe'),'appdata':_0x4d81('0x1c')}];if(_0x413b61[_0x4d81('0x1d')]&&_['includes'](_0x50de56,_0x413b61[_0x4d81('0x1d')])){_0x48aa50['push']({'app':_0x4d81('0xe'),'appdata':_0x4d81('0x1e')});_0x48aa50[_0x4d81('0xc')]({'app':_0x4d81('0xe'),'appdata':util[_0x4d81('0x9')](_0x4d81('0x1f'),_0x413b61[_0x4d81('0x1d')])});_0x48aa50[_0x4d81('0xc')]({'app':_0x4d81('0x20'),'appdata':util[_0x4d81('0x9')](_0x4d81('0x21'),_0x413b61['name'])});}else{_0x48aa50[_0x4d81('0xc')]({'app':_0x4d81('0x20'),'appdata':util['format']('SIP/%s,,tTxX',_0x413b61[_0x4d81('0x15')])});}_0x48aa50[_0x4d81('0xc')]({'app':_0x4d81('0x22')});for(var _0x17ffa8=0x0;_0x17ffa8<_0x48aa50[_0x4d81('0x8')];_0x17ffa8++){_0x48aa50[_0x17ffa8][_0x4d81('0x23')]=_0x17ffa8+0x1;_0x48aa50[_0x17ffa8]=_[_0x4d81('0x24')](_0x48aa50[_0x17ffa8],_0x5a1b4f);}return _0x48aa50;};var getChanSpyPromise=function(_0x537731,_0x39d89e){return new BPromise(function(_0xd28a69,_0x2cd23a){return _0x537731[_0x4d81('0x25')][_0x4d81('0x26')]()['then'](function(_0xc320b7){if(_0xc320b7){var _0x56b01e=getChanSpyApplications(_0x39d89e,_0x39d89e[_0x4d81('0x27')],_0xc320b7);if(_0x39d89e['internal']!=_0x39d89e[_0x4d81('0x15')]){_0x56b01e=_0x56b01e[_0x4d81('0x28')](getChanSpyApplications(_0x39d89e,_0x39d89e[_0x4d81('0x15')],_0xc320b7));}return _0xd28a69(_0x56b01e);}return _0xd28a69([]);})[_0x4d81('0x29')](function(_0x5ba6f3){_0x2cd23a(_0x5ba6f3);});});};module[_0x4d81('0x2a')]=function(_0x4499ed,_0x47643d){var _0x5d20ef=_0x4499ed[_0x4d81('0x2b')];return _0x4499ed[_0x4d81('0x2c')](_0x4d81('0x2d'),attributes,{'tableName':_0x4d81('0x2e'),'charset':_0x4d81('0x2f'),'collate':_0x4d81('0x30'),'hooks':{'beforeCreate':function(_0x524bcd,_0x53cb03,_0xd3745a){var _0x567e8a=typeof _0x524bcd['userProfileId']==='undefined'?BPromise['resolve'](null):_0x5d20ef[_0x4d81('0x31')][_0x4d81('0x32')]({'where':{'id':_0x524bcd['userProfileId']}});_0x567e8a[_0x4d81('0x33')](function(_0x2eb088){if(_0x2eb088){_0x524bcd['privacyEnabled']=_0x2eb088[_0x4d81('0x34')];}})[_0x4d81('0x33')](function(){_0x524bcd['updateMd5Password']();_0x524bcd[_0x4d81('0x35')](_0xd3745a);})['catch'](function(_0x15fd40){_0xd3745a(_0x15fd40);});},'beforeUpdate':function(_0x5f2b25,_0x42c8aa,_0xede819){Promise[_0x4d81('0x36')]()[_0x4d81('0x33')](function(){if(_0x5f2b25[_0x4d81('0x37')](_0x4d81('0x38'))===![])return;return _0x5d20ef['UserProfile'][_0x4d81('0x32')]({'where':{'id':_0x5f2b25[_0x4d81('0x38')]}})[_0x4d81('0x33')](function(_0x5b87d4){if(_0x5b87d4)_0x5f2b25[_0x4d81('0x34')]=_0x5b87d4[_0x4d81('0x34')];return;});})[_0x4d81('0x33')](function(){if(_0x5f2b25[_0x4d81('0x37')](_0x4d81('0x39'))){_0x5f2b25['updateMd5Password']();return _0x5f2b25[_0x4d81('0x35')](_0xede819);}_0xede819();})['catch'](function(_0x40101f){_0xede819(_0x40101f);});},'afterCreate':function(_0x376d87,_0x284826,_0x4fa600){var _0x789515=getUserApplications(_0x376d87,_0x376d87[_0x4d81('0x27')]);if(_0x376d87[_0x4d81('0x27')]!=_0x376d87[_0x4d81('0x15')]){_0x789515=_0x789515[_0x4d81('0x28')](getUserApplications(_0x376d87,_0x376d87[_0x4d81('0x15')]));}return _0x5d20ef['VoiceExtension']['bulkCreate'](_0x789515)[_0x4d81('0x33')](function(){if(_0x376d87[_0x4d81('0xf')]){return getChanSpyPromise(_0x5d20ef,_0x376d87);}})[_0x4d81('0x33')](function(_0x126776){if(_0x126776&&_0x126776['length']){return _0x5d20ef['VoiceExtension']['bulkCreate'](_0x126776);}})['then'](function(){_0x4fa600();})[_0x4d81('0x29')](function(_0x55d4c0){_0x4fa600(_0x55d4c0);});},'afterUpdate':function(_0x37c073,_0x53b943,_0x433e02){return BPromise[_0x4d81('0x36')]()['then'](function(){if(_0x37c073[_0x4d81('0x37')](_0x4d81('0xf'))||_0x37c073[_0x4d81('0x37')](_0x4d81('0x5'))){return _0x5d20ef[_0x4d81('0x3a')][_0x4d81('0x3b')]({'where':{'UserId':_0x37c073['id'],'type':_0x4d81('0x7'),'ChanSpyId':{'$ne':null}}})[_0x4d81('0x33')](function(){if(_0x37c073[_0x4d81('0xf')]){return getChanSpyPromise(_0x5d20ef,_0x37c073)['then'](function(_0x4ab18b){if(_0x4ab18b&&_0x4ab18b[_0x4d81('0x8')]){return _0x5d20ef[_0x4d81('0x3a')]['bulkCreate'](_0x4ab18b);}});}});}})[_0x4d81('0x33')](function(){if(_0x37c073['changed']('extensionMonitor')||_0x37c073[_0x4d81('0x37')](_0x4d81('0x5'))){return _0x5d20ef['VoiceExtension'][_0x4d81('0x3b')]({'where':{'UserId':_0x37c073['id'],'type':_0x4d81('0x7'),'ChanSpyId':null}})[_0x4d81('0x33')](function(){var _0x18d507=getUserApplications(_0x37c073,_0x37c073[_0x4d81('0x27')]);if(_0x37c073[_0x4d81('0x27')]!=_0x37c073['name']){_0x18d507=_0x18d507['concat'](getUserApplications(_0x37c073,_0x37c073[_0x4d81('0x15')]));}return _0x5d20ef[_0x4d81('0x3a')][_0x4d81('0x3c')](_0x18d507);});}})[_0x4d81('0x33')](function(){_0x433e02();})[_0x4d81('0x29')](function(_0x4848ec){_0x433e02(_0x4848ec);});},'afterDestroy':function(_0x4657f7,_0x287c1b){return _0x5d20ef['VoiceExtension'][_0x4d81('0x3b')]({'where':{'UserId':_0x4657f7['id'],'type':_0x4d81('0x7')}});}},'instanceMethods':{'authenticate':function(_0x16d5d3,_0x5a5f21){if(!_0x5a5f21){return this['password']===this['encryptPassword'](_0x16d5d3);}var _0x5ca0c9=this;this['encryptPassword'](_0x16d5d3,function(_0x5d3915,_0x4bdd56){if(_0x5d3915){_0x5a5f21(_0x5d3915);}if(_0x5ca0c9[_0x4d81('0x39')]===_0x4bdd56){_0x5a5f21(null,!![]);}else{_0x5a5f21(null,![]);}});},'makeSalt':function(_0x120bc2,_0x31918d){var _0xdd44c1=0x10;if(typeof arguments[0x0]===_0x4d81('0x3d')){_0x31918d=arguments[0x0];_0x120bc2=_0xdd44c1;}else if(typeof arguments[0x1]===_0x4d81('0x3d')){_0x31918d=arguments[0x1];}else{throw new Error(_0x4d81('0x3e'));}if(!_0x120bc2){_0x120bc2=_0xdd44c1;}return crypto[_0x4d81('0x3f')](_0x120bc2,function(_0x20120e,_0x1b1147){if(_0x20120e){_0x31918d(_0x20120e);}return _0x31918d(null,_0x1b1147['toString'](_0x4d81('0x40')));});},'encryptPassword':function(_0x562078,_0x519959){if(!_0x562078||!this[_0x4d81('0x41')]){return _0x519959?_0x519959(null):null;}var _0x160b98=0x2710;var _0x127b42=0x40;var _0x27a766=new Buffer(this[_0x4d81('0x41')],_0x4d81('0x40'));if(!_0x519959){return crypto['pbkdf2Sync'](_0x562078,_0x27a766,_0x160b98,_0x127b42,_0x4d81('0x42'))[_0x4d81('0x43')](_0x4d81('0x40'));}return crypto['pbkdf2'](_0x562078,_0x27a766,_0x160b98,_0x127b42,_0x4d81('0x42'),function(_0x22a8a7,_0x4d26a4){if(_0x22a8a7){_0x519959(_0x22a8a7);}return _0x519959(null,_0x4d26a4['toString'](_0x4d81('0x40')));});},'updatePassword':function(_0x54b35d){if(!this['password']){return _0x54b35d(null);}if(!validatePresenceOf(this['password'])&&authTypes['indexOf'](this[_0x4d81('0x44')])===-0x1){_0x54b35d(new Error(_0x4d81('0x45')));}var _0x30ec53=this;this[_0x4d81('0x46')](function(_0x42d02b,_0x5c8fb8){if(_0x42d02b){return _0x54b35d(_0x42d02b);}_0x30ec53[_0x4d81('0x41')]=_0x5c8fb8;_0x30ec53['encryptPassword'](_0x30ec53['password'],function(_0x29fc87,_0x33f45b){if(_0x29fc87){_0x54b35d(_0x29fc87);}_0x30ec53[_0x4d81('0x39')]=_0x33f45b;_0x54b35d(null);});});},'updateMd5Password':function(){this[_0x4d81('0x47')]=md5(this[_0x4d81('0x15')]+_0x4d81('0x48')+this[_0x4d81('0x39')]);return this[_0x4d81('0x47')];}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3b04=['concat','lodash','moment','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./user.socket','request','then','info','request\x20sent','debug','User,\x20%s,\x20%s,\x20%s','stringify','error','code','User,\x20%s,\x20%s','message','result','GetUser','findAll','options','raw','attributes','include','map','model','catch','ShowUser','User','find','where','internal','interface','update','name','PAUSE','length','YYYY-MM-DD\x20HH:mm:ss','updateAttributes','getChannels','push','format','SIP/%s','type','DEFAULT\x20PAUSE','role','body','uniqueid','MemberReport','bulkCreate','findOne','channel','voice','UserVoiceQueueRt','system','mail','fax','sms','openchannel','whatsapp','set','Pause','forEach','all','LogoutUser','LoginUser','mobile','phone','loginInPause','count','getLicense','agents','Maximum\x20login\x20has\x20been\x20reached','getVoiceQueues','upsert','UserVoiceQueue.penalty','merge','callysquare','LOGININPAUSE'];(function(_0x1537cc,_0x40ad4f){var _0x571b66=function(_0xe364ac){while(--_0xe364ac){_0x1537cc['push'](_0x1537cc['shift']());}};_0x571b66(++_0x40ad4f);}(_0x3b04,0x1c3));var _0x43b0=function(_0x221b74,_0x46e40d){_0x221b74=_0x221b74-0x0;var _0x4e0019=_0x3b04[_0x221b74];return _0x4e0019;};'use strict';var _=require(_0x43b0('0x0'));var util=require('util');var moment=require(_0x43b0('0x1'));var BPromise=require('bluebird');var rs=require(_0x43b0('0x2'));var fs=require('fs');var Redis=require(_0x43b0('0x3'));var db=require(_0x43b0('0x4'))['db'];var utils=require(_0x43b0('0x5'));var logger=require('../../config/logger')(_0x43b0('0x6'));var config=require(_0x43b0('0x7'));var jayson=require(_0x43b0('0x8'));var client=jayson[_0x43b0('0x9')][_0x43b0('0xa')]({'port':0x232a});config[_0x43b0('0xb')]=_[_0x43b0('0xc')](config[_0x43b0('0xb')],{'host':_0x43b0('0xd'),'port':0x18eb});var socket=require(_0x43b0('0xe'))(new Redis(config[_0x43b0('0xb')]));require(_0x43b0('0xf'))['register'](socket);function respondWithRpcPromise(_0x4dfb09,_0x33663e,_0x437af7){return new BPromise(function(_0x2e73c4,_0xa8df24){return client[_0x43b0('0x10')](_0x4dfb09,_0x437af7)[_0x43b0('0x11')](function(_0x35a18e){logger[_0x43b0('0x12')]('User,\x20%s,\x20%s',_0x33663e,_0x43b0('0x13'));logger[_0x43b0('0x14')](_0x43b0('0x15'),_0x33663e,_0x43b0('0x13'),JSON[_0x43b0('0x16')](_0x35a18e));if(_0x35a18e[_0x43b0('0x17')]){if(_0x35a18e[_0x43b0('0x17')][_0x43b0('0x18')]===0x1f4){logger[_0x43b0('0x17')](_0x43b0('0x19'),_0x33663e,_0x35a18e[_0x43b0('0x17')][_0x43b0('0x1a')]);return _0xa8df24(_0x35a18e[_0x43b0('0x17')][_0x43b0('0x1a')]);}logger['error'](_0x43b0('0x19'),_0x33663e,_0x35a18e[_0x43b0('0x17')][_0x43b0('0x1a')]);return _0x2e73c4(_0x35a18e[_0x43b0('0x17')][_0x43b0('0x1a')]);}else{logger[_0x43b0('0x12')](_0x43b0('0x19'),_0x33663e,_0x43b0('0x13'));_0x2e73c4(_0x35a18e[_0x43b0('0x1b')][_0x43b0('0x1a')]);}})['catch'](function(_0x3bea1b){logger[_0x43b0('0x17')](_0x43b0('0x19'),_0x33663e,_0x3bea1b);_0xa8df24(_0x3bea1b);});});}exports[_0x43b0('0x1c')]=function(_0x546ae2){var _0x474722=this;return new Promise(function(_0x40afde,_0x174a9c){return db['User'][_0x43b0('0x1d')]({'raw':_0x546ae2[_0x43b0('0x1e')]?_0x546ae2[_0x43b0('0x1e')][_0x43b0('0x1f')]===undefined?!![]:![]:!![],'where':_0x546ae2[_0x43b0('0x1e')]?_0x546ae2[_0x43b0('0x1e')]['where']||null:null,'attributes':_0x546ae2[_0x43b0('0x1e')]?_0x546ae2[_0x43b0('0x1e')][_0x43b0('0x20')]||null:null,'limit':_0x546ae2[_0x43b0('0x1e')]?_0x546ae2['options']['limit']||null:null,'include':_0x546ae2['options']?_0x546ae2[_0x43b0('0x1e')][_0x43b0('0x21')]?_[_0x43b0('0x22')](_0x546ae2[_0x43b0('0x1e')][_0x43b0('0x21')],function(_0x1e5ea7){return{'model':db[_0x1e5ea7[_0x43b0('0x23')]],'as':_0x1e5ea7['as'],'attributes':_0x1e5ea7['attributes'],'include':_0x1e5ea7[_0x43b0('0x21')]?_[_0x43b0('0x22')](_0x1e5ea7['include'],function(_0x589dc4){return{'model':db[_0x589dc4['model']],'as':_0x589dc4['as'],'attributes':_0x589dc4[_0x43b0('0x20')],'include':_0x589dc4[_0x43b0('0x21')]?_[_0x43b0('0x22')](_0x589dc4['include'],function(_0x52dfa5){return{'model':db[_0x52dfa5[_0x43b0('0x23')]],'as':_0x52dfa5['as'],'attributes':_0x52dfa5['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x49adb5){logger[_0x43b0('0x12')](_0x43b0('0x1c'),_0x546ae2);logger[_0x43b0('0x14')](_0x43b0('0x1c'),_0x546ae2,JSON[_0x43b0('0x16')](_0x49adb5));_0x40afde(_0x49adb5);})[_0x43b0('0x24')](function(_0xa3f494){logger[_0x43b0('0x17')](_0x43b0('0x1c'),_0xa3f494[_0x43b0('0x1a')],_0x546ae2);_0x174a9c(_0x474722[_0x43b0('0x17')](0x1f4,_0xa3f494[_0x43b0('0x1a')]));});});};exports[_0x43b0('0x25')]=function(_0x3f38aa){var _0x5477c5=this;return new Promise(function(_0x2ad1df,_0x2700b8){return db[_0x43b0('0x26')][_0x43b0('0x27')]({'raw':_0x3f38aa[_0x43b0('0x1e')]?_0x3f38aa[_0x43b0('0x1e')][_0x43b0('0x1f')]===undefined?!![]:![]:!![],'where':_0x3f38aa[_0x43b0('0x1e')]?_0x3f38aa[_0x43b0('0x1e')][_0x43b0('0x28')]||null:null,'attributes':_0x3f38aa[_0x43b0('0x1e')]?_0x3f38aa[_0x43b0('0x1e')][_0x43b0('0x20')]||null:null,'include':_0x3f38aa[_0x43b0('0x1e')]?_0x3f38aa[_0x43b0('0x1e')][_0x43b0('0x21')]?_[_0x43b0('0x22')](_0x3f38aa['options'][_0x43b0('0x21')],function(_0x5b86bf){return{'model':db[_0x5b86bf[_0x43b0('0x23')]],'as':_0x5b86bf['as'],'attributes':_0x5b86bf[_0x43b0('0x20')],'include':_0x5b86bf[_0x43b0('0x21')]?_[_0x43b0('0x22')](_0x5b86bf[_0x43b0('0x21')],function(_0x128c35){return{'model':db[_0x128c35[_0x43b0('0x23')]],'as':_0x128c35['as'],'attributes':_0x128c35[_0x43b0('0x20')],'include':_0x128c35['include']?_[_0x43b0('0x22')](_0x128c35[_0x43b0('0x21')],function(_0x4a673d){return{'model':db[_0x4a673d[_0x43b0('0x23')]],'as':_0x4a673d['as'],'attributes':_0x4a673d[_0x43b0('0x20')]};}):[]};}):[]};}):[]:[]})[_0x43b0('0x11')](function(_0x56b88c){logger[_0x43b0('0x12')](_0x43b0('0x25'),_0x3f38aa);logger[_0x43b0('0x14')]('ShowUser',_0x3f38aa,JSON['stringify'](_0x56b88c));_0x2ad1df(_0x56b88c);})[_0x43b0('0x24')](function(_0x50971d){logger[_0x43b0('0x17')](_0x43b0('0x25'),_0x50971d['message'],_0x3f38aa);_0x2700b8(_0x5477c5[_0x43b0('0x17')](0x1f4,_0x50971d['message']));});});};exports['PauseUser']=function(_0x1c2578){var _0x2fafd6=this;return new Promise(function(_0x1a0deb,_0x43679f){var _0x33d0d6;return db[_0x43b0('0x26')][_0x43b0('0x27')]({'where':_0x1c2578[_0x43b0('0x1e')]['where']||{},'attributes':['id','name','role',_0x43b0('0x29'),_0x43b0('0x2a')]})[_0x43b0('0x11')](function(_0x11ed6e){if(_0x11ed6e){_0x33d0d6=_0x11ed6e;return db['UserVoiceQueueRt'][_0x43b0('0x2b')]({'paused':0x1},{'where':{'UserId':_0x33d0d6['id']},'individualHooks':!![]});}})[_0x43b0('0x11')](function(){if(_0x33d0d6){return db['MemberReport'][_0x43b0('0x1d')]({'where':{'membername':_0x33d0d6[_0x43b0('0x2c')],'type':_0x43b0('0x2d'),'exitAt':null}});}})[_0x43b0('0x11')](function(_0x1ed379){if(_0x33d0d6){if(_0x1ed379&&_0x1ed379[_0x43b0('0x2e')]){var _0x37c2c6=moment()['format'](_0x43b0('0x2f'));for(var _0x307215=0x0,_0x4c71c5=_0x1ed379['length'];_0x307215<_0x4c71c5;_0x307215++){_0x1ed379[_0x307215][_0x43b0('0x30')]({'exitAt':_0x37c2c6});}}}})[_0x43b0('0x11')](function(){if(_0x33d0d6){var _0x24b81a=[];var _0x5d4427=utils[_0x43b0('0x31')]();_0x5d4427['forEach'](function(_0x55e1bf){_0x24b81a[_0x43b0('0x32')]({'channel':_0x55e1bf,'membername':_0x33d0d6['name'],'interface':_['isNil'](_0x33d0d6['interface'])?util[_0x43b0('0x33')](_0x43b0('0x34'),_0x33d0d6[_0x43b0('0x2c')]):_0x33d0d6[_0x43b0('0x2a')],'type':'PAUSE','enterAt':moment()[_0x43b0('0x33')]('YYYY-MM-DD\x20HH:mm:ss'),'data1':_0x1c2578['body'][_0x43b0('0x35')]||_0x43b0('0x36'),'role':_0x33d0d6[_0x43b0('0x37')],'internal':_0x33d0d6['internal'],'uniqueid':_0x1c2578[_0x43b0('0x38')][_0x43b0('0x39')]||null});});return db[_0x43b0('0x3a')][_0x43b0('0x3b')](_0x24b81a,{'individualHooks':!![]});}})[_0x43b0('0x11')](function(){if(_0x33d0d6){return _0x33d0d6[_0x43b0('0x2b')]({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'openchannelPause':!![],'whatsappPause':!![],'pauseType':_0x1c2578['body'][_0x43b0('0x35')]||_0x43b0('0x36'),'lastPauseAt':moment()[_0x43b0('0x33')](_0x43b0('0x2f'))});}})['then'](function(_0x306025){_0x1a0deb(_0x306025);})[_0x43b0('0x24')](function(_0xed4a59){_0x43679f(_0x2fafd6[_0x43b0('0x17')](0x1f4,_0xed4a59[_0x43b0('0x1a')]));});});};exports['UnpauseUser']=function(_0x5058d3){var _0x5e1f41=this;return new Promise(function(_0x15e54b,_0x18f60e){var _0x16f294;return db[_0x43b0('0x26')][_0x43b0('0x3c')]({'where':_0x5058d3['options'][_0x43b0('0x28')]||{},'attributes':['id',_0x43b0('0x2c')]})['then'](function(_0x4a9554){if(_0x4a9554){_0x16f294=_0x4a9554;if(_0x5058d3['body']['channel']&&!utils['isValidChannel'](_0x5058d3['body'][_0x43b0('0x3d')])){throw new Error('Unknown\x20channel');}switch(_0x5058d3[_0x43b0('0x38')][_0x43b0('0x3d')]){case _0x43b0('0x3e'):return db[_0x43b0('0x3f')][_0x43b0('0x2b')]({'paused':0x0},{'where':{'UserId':_0x16f294['id']}})[_0x43b0('0x11')](function(){return db[_0x43b0('0x3a')][_0x43b0('0x27')]({'where':{'channel':_0x5058d3[_0x43b0('0x38')]['channel'],'membername':_0x16f294[_0x43b0('0x2c')],'type':'PAUSE','exitAt':null}});})[_0x43b0('0x11')](function(_0x15969d){if(_0x15969d){return _0x15969d[_0x43b0('0x2b')]({'exitAt':moment()[_0x43b0('0x33')](_0x43b0('0x2f')),'data2':_0x43b0('0x40')},{'individualHooks':!![]});}return null;})['then'](function(){return _0x16f294[_0x43b0('0x2b')]({'voicePause':![]});});case _0x43b0('0x41'):case'chat':case _0x43b0('0x42'):case _0x43b0('0x43'):case _0x43b0('0x44'):case _0x43b0('0x45'):return db[_0x43b0('0x3a')][_0x43b0('0x27')]({'where':{'channel':_0x5058d3[_0x43b0('0x38')][_0x43b0('0x3d')],'membername':_0x16f294['name'],'type':_0x43b0('0x2d'),'exitAt':null}})[_0x43b0('0x11')](function(_0x3012ae){return _0x3012ae[_0x43b0('0x2b')]({'exitAt':moment()[_0x43b0('0x33')](_0x43b0('0x2f')),'data2':'system'},{'individualHooks':!![]});})[_0x43b0('0x11')](function(){var _0x48702c={};_[_0x43b0('0x46')](_0x48702c,util[_0x43b0('0x33')]('%s%s',_0x5058d3[_0x43b0('0x38')][_0x43b0('0x3d')],_0x43b0('0x47')),![]);return _0x16f294[_0x43b0('0x2b')](_0x48702c);});default:return db[_0x43b0('0x3f')][_0x43b0('0x2b')]({'paused':0x0},{'where':{'UserId':_0x16f294['id']}})[_0x43b0('0x11')](function(){return db['MemberReport']['findAll']({'where':{'membername':_0x16f294[_0x43b0('0x2c')],'type':'PAUSE','exitAt':null}});})[_0x43b0('0x11')](function(_0x3bbdc6){var _0xd5eb5=[];_0x3bbdc6[_0x43b0('0x48')](function(_0x3e0cb3){_0xd5eb5[_0x43b0('0x32')](_0x3e0cb3[_0x43b0('0x2b')]({'exitAt':moment()['format'](_0x43b0('0x2f')),'data2':_0x43b0('0x40')}));});return BPromise[_0x43b0('0x49')](_0xd5eb5);})[_0x43b0('0x11')](function(){return _0x16f294['update']({'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![],'whatsappPause':![]});});}}})[_0x43b0('0x11')](function(_0x45f74c){_0x15e54b(_0x45f74c);})[_0x43b0('0x24')](function(_0x52bc5c){_0x18f60e(_0x5e1f41[_0x43b0('0x17')](0x1f4,_0x52bc5c[_0x43b0('0x1a')]));});});};exports[_0x43b0('0x4a')]=function(_0x52fb99){var _0xc3c2ca=this;return new Promise(function(_0x489ffe,_0x24fc8a){var _0x4843d7;return db[_0x43b0('0x26')][_0x43b0('0x3c')]({'where':_0x52fb99[_0x43b0('0x1e')][_0x43b0('0x28')]||{},'attributes':['id',_0x43b0('0x2c')]})['then'](function(_0x341f7d){if(_0x341f7d){_0x4843d7=_0x341f7d;return db['UserVoiceQueueRt']['destroy']({'where':{'membername':_0x4843d7[_0x43b0('0x2c')]},'individualHooks':!![]});}})['then'](function(){if(_0x4843d7){return db[_0x43b0('0x3a')][_0x43b0('0x1d')]({'where':{'membername':_0x4843d7[_0x43b0('0x2c')],'exitAt':null}});}})['then'](function(_0x19767a){if(_0x4843d7){if(_0x19767a&&_0x19767a[_0x43b0('0x2e')]){var _0xf6304e=[];_0x19767a[_0x43b0('0x48')](function(_0x400fb5){_0xf6304e[_0x43b0('0x32')](_0x400fb5[_0x43b0('0x2b')]({'exitAt':moment()[_0x43b0('0x33')]('YYYY-MM-DD\x20HH:mm:ss')}));});return BPromise[_0x43b0('0x49')](_0xf6304e);}}})['then'](function(){if(_0x4843d7){return _0x4843d7[_0x43b0('0x2b')]({'online':![],'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});}})[_0x43b0('0x11')](function(_0x15f757){_0x489ffe(_0x15f757);})['catch'](function(_0x263799){_0x24fc8a(_0xc3c2ca[_0x43b0('0x17')](0x1f4,_0x263799[_0x43b0('0x1a')]));});});};exports[_0x43b0('0x4b')]=function(_0x122a2f){var _0x295e9e=this;return new Promise(function(_0x40187c,_0x3e7f28){var _0x52e87d;var _0x57528d;var _0x32f806;var _0x2be2df;return db['User'][_0x43b0('0x3c')]({'where':_0x122a2f[_0x43b0('0x1e')][_0x43b0('0x28')]||{},'attributes':['id',_0x43b0('0x2c'),_0x43b0('0x37'),_0x43b0('0x4c'),_0x43b0('0x4d'),_0x43b0('0x29'),_0x43b0('0x4e'),_0x43b0('0x2a')]})['then'](function(_0x42b303){if(_0x42b303){_0x52e87d=_0x42b303;_0x2be2df=_0x122a2f[_0x43b0('0x38')]['interface']?_0x122a2f[_0x43b0('0x38')][_0x43b0('0x2a')]:util[_0x43b0('0x33')](_0x43b0('0x34'),_0x52e87d[_0x43b0('0x2c')]);return db['User'][_0x43b0('0x4f')]({'where':{'role':'agent','online':!![],'id':{'$ne':_0x52e87d['id']}}});}})[_0x43b0('0x11')](function(_0x5c8c96){if(_0x5c8c96){_0x32f806=_0x5c8c96;return require('../../config/license/util')[_0x43b0('0x50')]();}})[_0x43b0('0x11')](function(_0x35e90f){if(_0x35e90f&&_0x35e90f['agents']&&_0x32f806>=_0x35e90f[_0x43b0('0x51')]){throw new Error(_0x43b0('0x52'));}})[_0x43b0('0x11')](function(){if(_0x52e87d){return db['UserVoiceQueueRt']['destroy']({'where':{'membername':_0x52e87d[_0x43b0('0x2c')]},'individualHooks':!![]});}})['then'](function(){if(_0x52e87d){return _0x52e87d[_0x43b0('0x53')]({'raw':!![]});}})[_0x43b0('0x11')](function(_0x385677){if(_0x52e87d){if(_0x385677){var _0x13488c=[];_0x57528d=_0x385677;if(_0x57528d['length']){for(var _0x5e65ab=0x0;_0x5e65ab<_0x57528d[_0x43b0('0x2e')];_0x5e65ab++){_0x13488c['push'](db[_0x43b0('0x3f')][_0x43b0('0x54')]({'membername':_0x52e87d['name'],'UserId':_0x52e87d['id'],'queue_name':_0x57528d[_0x5e65ab][_0x43b0('0x2c')],'VoiceQueueId':_0x57528d[_0x5e65ab]['id'],'interface':_0x2be2df,'paused':_0x52e87d[_0x43b0('0x4e')]||![],'penalty':_0x57528d[_0x5e65ab][_0x43b0('0x55')]||0x0}));}return BPromise[_0x43b0('0x49')](_0x13488c);}}}})[_0x43b0('0x11')](function(){if(_0x52e87d){return db[_0x43b0('0x3a')][_0x43b0('0x1d')]({'where':{'membername':_0x52e87d[_0x43b0('0x2c')],'exitAt':null}});}})[_0x43b0('0x11')](function(_0x41db95){if(_0x52e87d){if(_0x41db95&&_0x41db95[_0x43b0('0x2e')]){var _0x3a6677=[];_0x41db95[_0x43b0('0x48')](function(_0x5b5544){_0x3a6677[_0x43b0('0x32')](_0x5b5544[_0x43b0('0x2b')]({'exitAt':moment()[_0x43b0('0x33')](_0x43b0('0x2f'))}));});return BPromise[_0x43b0('0x49')](_0x3a6677);}}})[_0x43b0('0x11')](function(_0x4f9aea){if(_0x52e87d){var _0x18f6ab=[];var _0x349f5b=[];var _0x1a025c=utils[_0x43b0('0x31')]();var _0x39e796={'membername':_0x52e87d[_0x43b0('0x2c')],'interface':_0x2be2df,'enterAt':moment()[_0x43b0('0x33')](_0x43b0('0x2f')),'role':_0x52e87d[_0x43b0('0x37')],'internal':_0x52e87d[_0x43b0('0x29')]};_0x1a025c[_0x43b0('0x48')](function(_0x4013c8){_0x18f6ab['push'](_[_0x43b0('0x56')]({'channel':_0x4013c8,'type':'LOGIN','data1':_0x43b0('0x57'),'data2':_0x2be2df},_0x39e796));if(_0x52e87d[_0x43b0('0x4e')]){_0x349f5b[_0x43b0('0x32')](_[_0x43b0('0x56')]({'channel':_0x4013c8,'type':_0x43b0('0x2d'),'data1':_0x43b0('0x58')},_0x39e796));}});return db[_0x43b0('0x3a')][_0x43b0('0x3b')](_0x18f6ab[_0x43b0('0x59')](_0x349f5b),{'individualHooks':!![]});}})[_0x43b0('0x11')](function(){if(_0x52e87d){return _0x52e87d[_0x43b0('0x2b')]({'online':!![],'lastLoginAt':moment()[_0x43b0('0x33')]('YYYY-MM-DD\x20HH:mm:ss'),'voicePause':_0x52e87d[_0x43b0('0x4e')]||![],'mailPause':_0x52e87d[_0x43b0('0x4e')]||![],'chatPause':_0x52e87d[_0x43b0('0x4e')]||![],'faxPause':_0x52e87d[_0x43b0('0x4e')]||![],'smsPause':_0x52e87d[_0x43b0('0x4e')]||![],'openchannelPause':_0x52e87d[_0x43b0('0x4e')]||![],'pauseType':_0x52e87d[_0x43b0('0x4e')]?_0x43b0('0x58'):null,'lastPauseAt':moment()[_0x43b0('0x33')]('YYYY-MM-DD\x20HH:mm:ss'),'interface':_0x2be2df});}})[_0x43b0('0x11')](function(_0x21c01f){_0x40187c(_0x21c01f);})[_0x43b0('0x24')](function(_0x18f0c1){_0x3e7f28(_0x295e9e[_0x43b0('0x17')](0x1f4,_0x18f0c1['message']));});});};
\ No newline at end of file
+var _0xa8a2=['GetUser','User','findAll','options','raw','attributes','limit','include','map','model','where','ShowUser','PauseUser','find','name','role','internal','interface','then','UserVoiceQueueRt','update','format','YYYY-MM-DD\x20HH:mm:ss','updateAttributes','getChannels','forEach','push','isNil','SIP/%s','PAUSE','body','type','DEFAULT\x20PAUSE','uniqueid','MemberReport','UnpauseUser','channel','isValidChannel','Unknown\x20channel','voice','mail','chat','fax','sms','whatsapp','system','set','%s%s','all','LogoutUser','destroy','length','LoginUser','findOne','phone','agent','../../config/license/util','getLicense','agents','Maximum\x20login\x20has\x20been\x20reached','getVoiceQueues','loginInPause','merge','LOGININPAUSE','bulkCreate','concat','lodash','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','redis','defaults','localhost','socket.io-emitter','./user.socket','request','info','User,\x20%s,\x20%s','debug','request\x20sent','stringify','error','message','catch'];(function(_0x104987,_0x89ae5a){var _0x46f934=function(_0x29a8f3){while(--_0x29a8f3){_0x104987['push'](_0x104987['shift']());}};_0x46f934(++_0x89ae5a);}(_0xa8a2,0x1aa));var _0x2a8a=function(_0x312b06,_0x5ad05e){_0x312b06=_0x312b06-0x0;var _0x54dd60=_0xa8a2[_0x312b06];return _0x54dd60;};'use strict';var _=require(_0x2a8a('0x0'));var util=require('util');var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x2a8a('0x1'));var fs=require('fs');var Redis=require(_0x2a8a('0x2'));var db=require(_0x2a8a('0x3'))['db'];var utils=require(_0x2a8a('0x4'));var logger=require(_0x2a8a('0x5'))(_0x2a8a('0x6'));var config=require(_0x2a8a('0x7'));var jayson=require(_0x2a8a('0x8'));var client=jayson['client'][_0x2a8a('0x9')]({'port':0x232a});config[_0x2a8a('0xa')]=_[_0x2a8a('0xb')](config[_0x2a8a('0xa')],{'host':_0x2a8a('0xc'),'port':0x18eb});var socket=require(_0x2a8a('0xd'))(new Redis(config[_0x2a8a('0xa')]));require(_0x2a8a('0xe'))['register'](socket);function respondWithRpcPromise(_0x47ce7c,_0x52860a,_0x2d733c){return new BPromise(function(_0x26a9d9,_0x376ee2){return client[_0x2a8a('0xf')](_0x47ce7c,_0x2d733c)['then'](function(_0x114827){logger[_0x2a8a('0x10')](_0x2a8a('0x11'),_0x52860a,'request\x20sent');logger[_0x2a8a('0x12')]('User,\x20%s,\x20%s,\x20%s',_0x52860a,_0x2a8a('0x13'),JSON[_0x2a8a('0x14')](_0x114827));if(_0x114827[_0x2a8a('0x15')]){if(_0x114827['error']['code']===0x1f4){logger[_0x2a8a('0x15')]('User,\x20%s,\x20%s',_0x52860a,_0x114827[_0x2a8a('0x15')][_0x2a8a('0x16')]);return _0x376ee2(_0x114827[_0x2a8a('0x15')]['message']);}logger[_0x2a8a('0x15')](_0x2a8a('0x11'),_0x52860a,_0x114827[_0x2a8a('0x15')][_0x2a8a('0x16')]);return _0x26a9d9(_0x114827['error']['message']);}else{logger[_0x2a8a('0x10')](_0x2a8a('0x11'),_0x52860a,'request\x20sent');_0x26a9d9(_0x114827['result'][_0x2a8a('0x16')]);}})[_0x2a8a('0x17')](function(_0xe429cd){logger[_0x2a8a('0x15')](_0x2a8a('0x11'),_0x52860a,_0xe429cd);_0x376ee2(_0xe429cd);});});}exports[_0x2a8a('0x18')]=function(_0x12e4ff){var _0x3356b6=this;return new Promise(function(_0x48158d,_0x1c70ee){return db[_0x2a8a('0x19')][_0x2a8a('0x1a')]({'raw':_0x12e4ff[_0x2a8a('0x1b')]?_0x12e4ff[_0x2a8a('0x1b')][_0x2a8a('0x1c')]===undefined?!![]:![]:!![],'where':_0x12e4ff[_0x2a8a('0x1b')]?_0x12e4ff[_0x2a8a('0x1b')]['where']||null:null,'attributes':_0x12e4ff[_0x2a8a('0x1b')]?_0x12e4ff[_0x2a8a('0x1b')][_0x2a8a('0x1d')]||null:null,'limit':_0x12e4ff[_0x2a8a('0x1b')]?_0x12e4ff[_0x2a8a('0x1b')][_0x2a8a('0x1e')]||null:null,'include':_0x12e4ff[_0x2a8a('0x1b')]?_0x12e4ff[_0x2a8a('0x1b')][_0x2a8a('0x1f')]?_[_0x2a8a('0x20')](_0x12e4ff['options'][_0x2a8a('0x1f')],function(_0x86508b){return{'model':db[_0x86508b[_0x2a8a('0x21')]],'as':_0x86508b['as'],'attributes':_0x86508b[_0x2a8a('0x1d')],'include':_0x86508b['include']?_[_0x2a8a('0x20')](_0x86508b['include'],function(_0x1f7baa){return{'model':db[_0x1f7baa['model']],'as':_0x1f7baa['as'],'attributes':_0x1f7baa[_0x2a8a('0x1d')],'include':_0x1f7baa[_0x2a8a('0x1f')]?_[_0x2a8a('0x20')](_0x1f7baa['include'],function(_0x1b8cc8){return{'model':db[_0x1b8cc8[_0x2a8a('0x21')]],'as':_0x1b8cc8['as'],'attributes':_0x1b8cc8[_0x2a8a('0x1d')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x2e5b57){logger['info']('GetUser',_0x12e4ff);logger[_0x2a8a('0x12')](_0x2a8a('0x18'),_0x12e4ff,JSON['stringify'](_0x2e5b57));_0x48158d(_0x2e5b57);})[_0x2a8a('0x17')](function(_0x3308aa){logger[_0x2a8a('0x15')](_0x2a8a('0x18'),_0x3308aa['message'],_0x12e4ff);_0x1c70ee(_0x3356b6['error'](0x1f4,_0x3308aa[_0x2a8a('0x16')]));});});};exports['ShowUser']=function(_0x1c18c0){var _0x1eab09=this;return new Promise(function(_0x2a4499,_0x891ee9){return db[_0x2a8a('0x19')]['find']({'raw':_0x1c18c0['options']?_0x1c18c0[_0x2a8a('0x1b')][_0x2a8a('0x1c')]===undefined?!![]:![]:!![],'where':_0x1c18c0[_0x2a8a('0x1b')]?_0x1c18c0[_0x2a8a('0x1b')][_0x2a8a('0x22')]||null:null,'attributes':_0x1c18c0[_0x2a8a('0x1b')]?_0x1c18c0['options'][_0x2a8a('0x1d')]||null:null,'include':_0x1c18c0[_0x2a8a('0x1b')]?_0x1c18c0['options'][_0x2a8a('0x1f')]?_[_0x2a8a('0x20')](_0x1c18c0[_0x2a8a('0x1b')]['include'],function(_0x5905c6){return{'model':db[_0x5905c6[_0x2a8a('0x21')]],'as':_0x5905c6['as'],'attributes':_0x5905c6['attributes'],'include':_0x5905c6[_0x2a8a('0x1f')]?_[_0x2a8a('0x20')](_0x5905c6[_0x2a8a('0x1f')],function(_0x5bc242){return{'model':db[_0x5bc242[_0x2a8a('0x21')]],'as':_0x5bc242['as'],'attributes':_0x5bc242[_0x2a8a('0x1d')],'include':_0x5bc242[_0x2a8a('0x1f')]?_['map'](_0x5bc242[_0x2a8a('0x1f')],function(_0x301719){return{'model':db[_0x301719['model']],'as':_0x301719['as'],'attributes':_0x301719['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x480224){logger[_0x2a8a('0x10')](_0x2a8a('0x23'),_0x1c18c0);logger[_0x2a8a('0x12')](_0x2a8a('0x23'),_0x1c18c0,JSON['stringify'](_0x480224));_0x2a4499(_0x480224);})[_0x2a8a('0x17')](function(_0x12b2c3){logger['error'](_0x2a8a('0x23'),_0x12b2c3[_0x2a8a('0x16')],_0x1c18c0);_0x891ee9(_0x1eab09[_0x2a8a('0x15')](0x1f4,_0x12b2c3[_0x2a8a('0x16')]));});});};exports[_0x2a8a('0x24')]=function(_0x42432a){var _0xa9f613=this;return new Promise(function(_0x5edf72,_0x5cb3bb){var _0x459863;return db['User'][_0x2a8a('0x25')]({'where':_0x42432a[_0x2a8a('0x1b')][_0x2a8a('0x22')]||{},'attributes':['id',_0x2a8a('0x26'),_0x2a8a('0x27'),_0x2a8a('0x28'),_0x2a8a('0x29')]})[_0x2a8a('0x2a')](function(_0x404d98){if(_0x404d98){_0x459863=_0x404d98;return db[_0x2a8a('0x2b')][_0x2a8a('0x2c')]({'paused':0x1},{'where':{'UserId':_0x459863['id']},'individualHooks':!![]});}})[_0x2a8a('0x2a')](function(){if(_0x459863){return db['MemberReport']['findAll']({'where':{'membername':_0x459863[_0x2a8a('0x26')],'type':'PAUSE','exitAt':null}});}})[_0x2a8a('0x2a')](function(_0xa34faf){if(_0x459863){if(_0xa34faf&&_0xa34faf['length']){var _0x56740f=moment()[_0x2a8a('0x2d')](_0x2a8a('0x2e'));for(var _0x2b6d20=0x0,_0x464cf4=_0xa34faf['length'];_0x2b6d20<_0x464cf4;_0x2b6d20++){_0xa34faf[_0x2b6d20][_0x2a8a('0x2f')]({'exitAt':_0x56740f});}}}})[_0x2a8a('0x2a')](function(){if(_0x459863){var _0x27a8c9=[];var _0x239d41=utils[_0x2a8a('0x30')]();_0x239d41[_0x2a8a('0x31')](function(_0x40718f){_0x27a8c9[_0x2a8a('0x32')]({'channel':_0x40718f,'membername':_0x459863['name'],'interface':_[_0x2a8a('0x33')](_0x459863[_0x2a8a('0x29')])?util[_0x2a8a('0x2d')](_0x2a8a('0x34'),_0x459863[_0x2a8a('0x26')]):_0x459863[_0x2a8a('0x29')],'type':_0x2a8a('0x35'),'enterAt':moment()[_0x2a8a('0x2d')](_0x2a8a('0x2e')),'data1':_0x42432a[_0x2a8a('0x36')][_0x2a8a('0x37')]||_0x2a8a('0x38'),'role':_0x459863[_0x2a8a('0x27')],'internal':_0x459863[_0x2a8a('0x28')],'uniqueid':_0x42432a['body'][_0x2a8a('0x39')]||null});});return db[_0x2a8a('0x3a')]['bulkCreate'](_0x27a8c9,{'individualHooks':!![]});}})[_0x2a8a('0x2a')](function(){if(_0x459863){return _0x459863[_0x2a8a('0x2c')]({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'openchannelPause':!![],'whatsappPause':!![],'pauseType':_0x42432a['body'][_0x2a8a('0x37')]||_0x2a8a('0x38'),'lastPauseAt':moment()[_0x2a8a('0x2d')](_0x2a8a('0x2e'))});}})[_0x2a8a('0x2a')](function(_0x35107e){_0x5edf72(_0x35107e);})[_0x2a8a('0x17')](function(_0x5a9757){_0x5cb3bb(_0xa9f613['error'](0x1f4,_0x5a9757['message']));});});};exports[_0x2a8a('0x3b')]=function(_0x59d21a){var _0x13098b=this;return new Promise(function(_0x171b0e,_0x5c74e7){var _0x1e4edb;return db['User']['findOne']({'where':_0x59d21a[_0x2a8a('0x1b')]['where']||{},'attributes':['id',_0x2a8a('0x26')]})[_0x2a8a('0x2a')](function(_0x5c2abc){if(_0x5c2abc){_0x1e4edb=_0x5c2abc;if(_0x59d21a[_0x2a8a('0x36')][_0x2a8a('0x3c')]&&!utils[_0x2a8a('0x3d')](_0x59d21a['body'][_0x2a8a('0x3c')])){throw new Error(_0x2a8a('0x3e'));}switch(_0x59d21a['body'][_0x2a8a('0x3c')]){case _0x2a8a('0x3f'):return db[_0x2a8a('0x2b')][_0x2a8a('0x2c')]({'paused':0x0},{'where':{'UserId':_0x1e4edb['id']}})[_0x2a8a('0x2a')](function(){return db['MemberReport'][_0x2a8a('0x25')]({'where':{'channel':_0x59d21a[_0x2a8a('0x36')][_0x2a8a('0x3c')],'membername':_0x1e4edb[_0x2a8a('0x26')],'type':_0x2a8a('0x35'),'exitAt':null}});})['then'](function(_0x33d695){if(_0x33d695){return _0x33d695[_0x2a8a('0x2c')]({'exitAt':moment()[_0x2a8a('0x2d')](_0x2a8a('0x2e')),'data2':'system'},{'individualHooks':!![]});}return null;})['then'](function(){return _0x1e4edb[_0x2a8a('0x2c')]({'voicePause':![]});});case _0x2a8a('0x40'):case _0x2a8a('0x41'):case _0x2a8a('0x42'):case _0x2a8a('0x43'):case'openchannel':case _0x2a8a('0x44'):return db[_0x2a8a('0x3a')]['find']({'where':{'channel':_0x59d21a[_0x2a8a('0x36')][_0x2a8a('0x3c')],'membername':_0x1e4edb[_0x2a8a('0x26')],'type':_0x2a8a('0x35'),'exitAt':null}})[_0x2a8a('0x2a')](function(_0x2dd69a){return _0x2dd69a[_0x2a8a('0x2c')]({'exitAt':moment()[_0x2a8a('0x2d')](_0x2a8a('0x2e')),'data2':_0x2a8a('0x45')},{'individualHooks':!![]});})[_0x2a8a('0x2a')](function(){var _0x133f74={};_[_0x2a8a('0x46')](_0x133f74,util[_0x2a8a('0x2d')](_0x2a8a('0x47'),_0x59d21a[_0x2a8a('0x36')][_0x2a8a('0x3c')],'Pause'),![]);return _0x1e4edb[_0x2a8a('0x2c')](_0x133f74);});default:return db[_0x2a8a('0x2b')][_0x2a8a('0x2c')]({'paused':0x0},{'where':{'UserId':_0x1e4edb['id']}})[_0x2a8a('0x2a')](function(){return db[_0x2a8a('0x3a')][_0x2a8a('0x1a')]({'where':{'membername':_0x1e4edb[_0x2a8a('0x26')],'type':_0x2a8a('0x35'),'exitAt':null}});})[_0x2a8a('0x2a')](function(_0x285d27){var _0x3798b5=[];_0x285d27[_0x2a8a('0x31')](function(_0x19618f){_0x3798b5[_0x2a8a('0x32')](_0x19618f['update']({'exitAt':moment()[_0x2a8a('0x2d')](_0x2a8a('0x2e')),'data2':'system'}));});return BPromise[_0x2a8a('0x48')](_0x3798b5);})[_0x2a8a('0x2a')](function(){return _0x1e4edb[_0x2a8a('0x2c')]({'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![],'whatsappPause':![]});});}}})[_0x2a8a('0x2a')](function(_0x49db4a){_0x171b0e(_0x49db4a);})[_0x2a8a('0x17')](function(_0x241619){_0x5c74e7(_0x13098b[_0x2a8a('0x15')](0x1f4,_0x241619[_0x2a8a('0x16')]));});});};exports[_0x2a8a('0x49')]=function(_0x48d868){var _0x24d64d=this;return new Promise(function(_0x30250e,_0x2120c1){var _0x560682;return db[_0x2a8a('0x19')]['findOne']({'where':_0x48d868[_0x2a8a('0x1b')]['where']||{},'attributes':['id','name']})['then'](function(_0x24f986){if(_0x24f986){_0x560682=_0x24f986;return db[_0x2a8a('0x2b')][_0x2a8a('0x4a')]({'where':{'membername':_0x560682[_0x2a8a('0x26')]},'individualHooks':!![]});}})['then'](function(){if(_0x560682){return db[_0x2a8a('0x3a')][_0x2a8a('0x1a')]({'where':{'membername':_0x560682[_0x2a8a('0x26')],'exitAt':null}});}})[_0x2a8a('0x2a')](function(_0x95009f){if(_0x560682){if(_0x95009f&&_0x95009f[_0x2a8a('0x4b')]){var _0x394323=[];_0x95009f[_0x2a8a('0x31')](function(_0x295fb8){_0x394323[_0x2a8a('0x32')](_0x295fb8['update']({'exitAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss')}));});return BPromise[_0x2a8a('0x48')](_0x394323);}}})[_0x2a8a('0x2a')](function(){if(_0x560682){return _0x560682[_0x2a8a('0x2c')]({'online':![],'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});}})[_0x2a8a('0x2a')](function(_0x33ba23){_0x30250e(_0x33ba23);})['catch'](function(_0x3bcd96){_0x2120c1(_0x24d64d[_0x2a8a('0x15')](0x1f4,_0x3bcd96[_0x2a8a('0x16')]));});});};exports[_0x2a8a('0x4c')]=function(_0x2ac393){var _0xce2f62=this;return new Promise(function(_0x18d483,_0x3c2c30){var _0x5c9fb3;var _0x38206c;var _0x3f9135;var _0x15a7b3;return db[_0x2a8a('0x19')][_0x2a8a('0x4d')]({'where':_0x2ac393[_0x2a8a('0x1b')][_0x2a8a('0x22')]||{},'attributes':['id','name',_0x2a8a('0x27'),'mobile',_0x2a8a('0x4e'),_0x2a8a('0x28'),'loginInPause','interface']})[_0x2a8a('0x2a')](function(_0x22b3fa){if(_0x22b3fa){_0x5c9fb3=_0x22b3fa;_0x15a7b3=_0x2ac393['body'][_0x2a8a('0x29')]?_0x2ac393[_0x2a8a('0x36')][_0x2a8a('0x29')]:util[_0x2a8a('0x2d')](_0x2a8a('0x34'),_0x5c9fb3['name']);return db['User']['count']({'where':{'role':_0x2a8a('0x4f'),'online':!![],'id':{'$ne':_0x5c9fb3['id']}}});}})[_0x2a8a('0x2a')](function(_0x1a55d7){if(_0x1a55d7){_0x3f9135=_0x1a55d7;return require(_0x2a8a('0x50'))[_0x2a8a('0x51')]();}})[_0x2a8a('0x2a')](function(_0xe3742f){if(_0xe3742f&&_0xe3742f[_0x2a8a('0x52')]&&_0x3f9135>=_0xe3742f[_0x2a8a('0x52')]){throw new Error(_0x2a8a('0x53'));}})[_0x2a8a('0x2a')](function(){if(_0x5c9fb3){return db['UserVoiceQueueRt'][_0x2a8a('0x4a')]({'where':{'membername':_0x5c9fb3[_0x2a8a('0x26')]},'individualHooks':!![]});}})[_0x2a8a('0x2a')](function(){if(_0x5c9fb3){return _0x5c9fb3[_0x2a8a('0x54')]({'raw':!![]});}})['then'](function(_0x4d0c2b){if(_0x5c9fb3){if(_0x4d0c2b){var _0x2a46d0=[];_0x38206c=_0x4d0c2b;if(_0x38206c[_0x2a8a('0x4b')]){for(var _0x2ed4e1=0x0;_0x2ed4e1<_0x38206c[_0x2a8a('0x4b')];_0x2ed4e1++){_0x2a46d0['push'](db[_0x2a8a('0x2b')]['upsert']({'membername':_0x5c9fb3[_0x2a8a('0x26')],'UserId':_0x5c9fb3['id'],'queue_name':_0x38206c[_0x2ed4e1]['name'],'VoiceQueueId':_0x38206c[_0x2ed4e1]['id'],'interface':_0x15a7b3,'paused':_0x5c9fb3[_0x2a8a('0x55')]||![],'penalty':_0x38206c[_0x2ed4e1]['UserVoiceQueue.penalty']||0x0}));}return BPromise[_0x2a8a('0x48')](_0x2a46d0);}}}})['then'](function(){if(_0x5c9fb3){return db['MemberReport'][_0x2a8a('0x1a')]({'where':{'membername':_0x5c9fb3[_0x2a8a('0x26')],'exitAt':null}});}})[_0x2a8a('0x2a')](function(_0x1b9464){if(_0x5c9fb3){if(_0x1b9464&&_0x1b9464['length']){var _0x490f6a=[];_0x1b9464[_0x2a8a('0x31')](function(_0x1b05b6){_0x490f6a[_0x2a8a('0x32')](_0x1b05b6['update']({'exitAt':moment()['format'](_0x2a8a('0x2e'))}));});return BPromise['all'](_0x490f6a);}}})[_0x2a8a('0x2a')](function(_0x236b27){if(_0x5c9fb3){var _0x302dbe=[];var _0x29e042=[];var _0x20276c=utils[_0x2a8a('0x30')]();var _0x25e23d={'membername':_0x5c9fb3[_0x2a8a('0x26')],'interface':_0x15a7b3,'enterAt':moment()[_0x2a8a('0x2d')](_0x2a8a('0x2e')),'role':_0x5c9fb3[_0x2a8a('0x27')],'internal':_0x5c9fb3[_0x2a8a('0x28')]};_0x20276c[_0x2a8a('0x31')](function(_0x13135c){_0x302dbe[_0x2a8a('0x32')](_['merge']({'channel':_0x13135c,'type':'LOGIN','data1':'callysquare','data2':_0x15a7b3},_0x25e23d));if(_0x5c9fb3[_0x2a8a('0x55')]){_0x29e042['push'](_[_0x2a8a('0x56')]({'channel':_0x13135c,'type':'PAUSE','data1':_0x2a8a('0x57')},_0x25e23d));}});return db[_0x2a8a('0x3a')][_0x2a8a('0x58')](_0x302dbe[_0x2a8a('0x59')](_0x29e042),{'individualHooks':!![]});}})[_0x2a8a('0x2a')](function(){if(_0x5c9fb3){return _0x5c9fb3[_0x2a8a('0x2c')]({'online':!![],'lastLoginAt':moment()['format'](_0x2a8a('0x2e')),'voicePause':_0x5c9fb3[_0x2a8a('0x55')]||![],'mailPause':_0x5c9fb3[_0x2a8a('0x55')]||![],'chatPause':_0x5c9fb3['loginInPause']||![],'faxPause':_0x5c9fb3[_0x2a8a('0x55')]||![],'smsPause':_0x5c9fb3[_0x2a8a('0x55')]||![],'openchannelPause':_0x5c9fb3[_0x2a8a('0x55')]||![],'pauseType':_0x5c9fb3['loginInPause']?_0x2a8a('0x57'):null,'lastPauseAt':moment()[_0x2a8a('0x2d')](_0x2a8a('0x2e')),'interface':_0x15a7b3});}})[_0x2a8a('0x2a')](function(_0xedde4c){_0x18d483(_0xedde4c);})['catch'](function(_0x4101b5){_0x3c2c30(_0xce2f62['error'](0x1f4,_0x4101b5[_0x2a8a('0x16')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x90ef=['emit','removeListener','register','./user.events','save','remove','update'];(function(_0x447a2d,_0x193f1b){var _0x2a3ea3=function(_0x438fbc){while(--_0x438fbc){_0x447a2d['push'](_0x447a2d['shift']());}};_0x2a3ea3(++_0x193f1b);}(_0x90ef,0x1df));var _0xf90e=function(_0x41543b,_0x110fb2){_0x41543b=_0x41543b-0x0;var _0x420547=_0x90ef[_0x41543b];return _0x420547;};'use strict';var UserEvents=require(_0xf90e('0x0'));var events=[_0xf90e('0x1'),_0xf90e('0x2'),_0xf90e('0x3')];function createListener(_0x3eeaa3,_0x4dd244){return function(_0x5615ff){_0x4dd244[_0xf90e('0x4')](_0x3eeaa3,_0x5615ff);};}function removeListener(_0x5a2e4d,_0x3ee82d){return function(){UserEvents[_0xf90e('0x5')](_0x5a2e4d,_0x3ee82d);};}exports[_0xf90e('0x6')]=function(_0x5b4535){for(var _0x2004d8=0x0,_0x25835d=events['length'];_0x2004d8<_0x25835d;_0x2004d8++){var _0x4df0fd=events[_0x2004d8];var _0x387bbc=createListener('user:'+_0x4df0fd,_0x5b4535);UserEvents['on'](_0x4df0fd,_0x387bbc);}};
\ No newline at end of file
+var _0x775e=['removeListener','register','user:','./user.events','save','update','emit'];(function(_0x3d93be,_0x324e66){var _0x3b97b1=function(_0x15bdae){while(--_0x15bdae){_0x3d93be['push'](_0x3d93be['shift']());}};_0x3b97b1(++_0x324e66);}(_0x775e,0xb2));var _0xe775=function(_0x67482b,_0x51dc8f){_0x67482b=_0x67482b-0x0;var _0x3855bd=_0x775e[_0x67482b];return _0x3855bd;};'use strict';var UserEvents=require(_0xe775('0x0'));var events=[_0xe775('0x1'),'remove',_0xe775('0x2')];function createListener(_0x5409be,_0x236eaa){return function(_0x2cd6a9){_0x236eaa[_0xe775('0x3')](_0x5409be,_0x2cd6a9);};}function removeListener(_0x7c7938,_0x1072e5){return function(){UserEvents[_0xe775('0x4')](_0x7c7938,_0x1072e5);};}exports[_0xe775('0x5')]=function(_0x2c6b71){for(var _0x1c644e=0x0,_0x52f44a=events['length'];_0x1c644e<_0x52f44a;_0x1c644e++){var _0x30fb7c=events[_0x1c644e];var _0x55d4f1=createListener(_0xe775('0x6')+_0x30fb7c,_0x2c6b71);UserEvents['on'](_0x30fb7c,_0x55d4f1);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcb91=['express','Router','../../components/auth/service','../../components/interaction/service','exports','path','connect-timeout'];(function(_0x37f4cb,_0x29ebc1){var _0x311f20=function(_0x2b8169){while(--_0x2b8169){_0x37f4cb['push'](_0x37f4cb['shift']());}};_0x311f20(++_0x29ebc1);}(_0xcb91,0x1a9));var _0x1cb9=function(_0x164af1,_0x3cf772){_0x164af1=_0x164af1-0x0;var _0x5d81a2=_0xcb91[_0x164af1];return _0x5d81a2;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x1cb9('0x0'));var timeout=require(_0x1cb9('0x1'));var express=require(_0x1cb9('0x2'));var router=express[_0x1cb9('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x1cb9('0x4'));var interaction=require(_0x1cb9('0x5'));var config=require('../../config/environment');module[_0x1cb9('0x6')]=router;
\ No newline at end of file
+var _0x0713=['../../config/environment','exports','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service'];(function(_0x42eb92,_0x1dcaaf){var _0x42559b=function(_0x47c209){while(--_0x47c209){_0x42eb92['push'](_0x42eb92['shift']());}};_0x42559b(++_0x1dcaaf);}(_0x0713,0x1ba));var _0x3071=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x0713[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x3071('0x0'));var timeout=require(_0x3071('0x1'));var express=require(_0x3071('0x2'));var router=express[_0x3071('0x3')]();var fs_extra=require(_0x3071('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x3071('0x5'));var config=require(_0x3071('0x6'));module[_0x3071('0x7')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa915=['INTEGER','exports'];(function(_0x785602,_0x1cf40b){var _0x55d3f0=function(_0x3581df){while(--_0x3581df){_0x785602['push'](_0x785602['shift']());}};_0x55d3f0(++_0x1cf40b);}(_0xa915,0x1d7));var _0x5a91=function(_0x330204,_0x2c2a75){_0x330204=_0x330204-0x0;var _0x2bed7c=_0xa915[_0x330204];return _0x2bed7c;};'use strict';var Sequelize=require('sequelize');module[_0x5a91('0x0')]={'penalty':{'type':Sequelize[_0x5a91('0x1')],'defaultValue':0x0}};
\ No newline at end of file
+var _0x7192=['INTEGER','exports'];(function(_0x2936dd,_0x2df6c2){var _0x2c7c46=function(_0x392c75){while(--_0x392c75){_0x2936dd['push'](_0x2936dd['shift']());}};_0x2c7c46(++_0x2df6c2);}(_0x7192,0x1ad));var _0x2719=function(_0x510417,_0x28bef5){_0x510417=_0x510417-0x0;var _0x221d99=_0x7192[_0x510417];return _0x221d99;};'use strict';var Sequelize=require('sequelize');module[_0x2719('0x0')]={'penalty':{'type':Sequelize[_0x2719('0x1')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8bf5=['../../config/logger','api','moment','bluebird','request-promise','path','../../config/environment','./userChatQueue.attributes','exports','UserChatQueue','user_has_chat_queues','util'];(function(_0x36d4cd,_0x3d895b){var _0x52ba66=function(_0x42d1c7){while(--_0x42d1c7){_0x36d4cd['push'](_0x36d4cd['shift']());}};_0x52ba66(++_0x3d895b);}(_0x8bf5,0x17f));var _0x58bf=function(_0x335fa8,_0x1773b6){_0x335fa8=_0x335fa8-0x0;var _0x2e6259=_0x8bf5[_0x335fa8];return _0x2e6259;};'use strict';var _=require('lodash');var util=require(_0x58bf('0x0'));var logger=require(_0x58bf('0x1'))(_0x58bf('0x2'));var moment=require(_0x58bf('0x3'));var BPromise=require(_0x58bf('0x4'));var rp=require(_0x58bf('0x5'));var fs=require('fs');var path=require(_0x58bf('0x6'));var rimraf=require('rimraf');var config=require(_0x58bf('0x7'));var attributes=require(_0x58bf('0x8'));module[_0x58bf('0x9')]=function(_0x136c0c,_0x366b32){return _0x136c0c['define'](_0x58bf('0xa'),attributes,{'tableName':_0x58bf('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xebd9=['moment','request-promise','rimraf','../../config/environment','./userChatQueue.attributes','exports','define','UserChatQueue','user_has_chat_queues','lodash','util','../../config/logger'];(function(_0x5e1020,_0x547f90){var _0x26658b=function(_0x522ff7){while(--_0x522ff7){_0x5e1020['push'](_0x5e1020['shift']());}};_0x26658b(++_0x547f90);}(_0xebd9,0x135));var _0x9ebd=function(_0x575711,_0x533c8b){_0x575711=_0x575711-0x0;var _0x5e2157=_0xebd9[_0x575711];return _0x5e2157;};'use strict';var _=require(_0x9ebd('0x0'));var util=require(_0x9ebd('0x1'));var logger=require(_0x9ebd('0x2'))('api');var moment=require(_0x9ebd('0x3'));var BPromise=require('bluebird');var rp=require(_0x9ebd('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x9ebd('0x5'));var config=require(_0x9ebd('0x6'));var attributes=require(_0x9ebd('0x7'));module[_0x9ebd('0x8')]=function(_0x3a1963,_0x4f5759){return _0x3a1963[_0x9ebd('0x9')](_0x9ebd('0xa'),attributes,{'tableName':_0x9ebd('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfe2f=['message','result','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','then','info','UserChatQueue,\x20%s,\x20%s','request\x20sent','UserChatQueue,\x20%s,\x20%s,\x20%s','stringify','error'];(function(_0x1e26c3,_0x14c694){var _0x432e2a=function(_0x56895f){while(--_0x56895f){_0x1e26c3['push'](_0x1e26c3['shift']());}};_0x432e2a(++_0x14c694);}(_0xfe2f,0xbf));var _0xffe2=function(_0x1aa81b,_0x21504a){_0x1aa81b=_0x1aa81b-0x0;var _0x29c348=_0xfe2f[_0x1aa81b];return _0x29c348;};'use strict';var _=require('lodash');var util=require(_0xffe2('0x0'));var moment=require(_0xffe2('0x1'));var BPromise=require(_0xffe2('0x2'));var rs=require(_0xffe2('0x3'));var fs=require('fs');var Redis=require(_0xffe2('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0xffe2('0x5'));var logger=require(_0xffe2('0x6'))(_0xffe2('0x7'));var config=require(_0xffe2('0x8'));var jayson=require(_0xffe2('0x9'));var client=jayson[_0xffe2('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x551eba,_0x2073e5,_0x27e784){return new BPromise(function(_0x21711a,_0x38246a){return client[_0xffe2('0xb')](_0x551eba,_0x27e784)[_0xffe2('0xc')](function(_0x4988fd){logger[_0xffe2('0xd')](_0xffe2('0xe'),_0x2073e5,_0xffe2('0xf'));logger['debug'](_0xffe2('0x10'),_0x2073e5,_0xffe2('0xf'),JSON[_0xffe2('0x11')](_0x4988fd));if(_0x4988fd[_0xffe2('0x12')]){if(_0x4988fd[_0xffe2('0x12')]['code']===0x1f4){logger[_0xffe2('0x12')](_0xffe2('0xe'),_0x2073e5,_0x4988fd[_0xffe2('0x12')][_0xffe2('0x13')]);return _0x38246a(_0x4988fd[_0xffe2('0x12')][_0xffe2('0x13')]);}logger[_0xffe2('0x12')]('UserChatQueue,\x20%s,\x20%s',_0x2073e5,_0x4988fd[_0xffe2('0x12')][_0xffe2('0x13')]);return _0x21711a(_0x4988fd[_0xffe2('0x12')][_0xffe2('0x13')]);}else{logger[_0xffe2('0xd')](_0xffe2('0xe'),_0x2073e5,_0xffe2('0xf'));_0x21711a(_0x4988fd[_0xffe2('0x14')][_0xffe2('0x13')]);}})['catch'](function(_0x53d831){logger[_0xffe2('0x12')](_0xffe2('0xe'),_0x2073e5,_0x53d831);_0x38246a(_0x53d831);});});}
\ No newline at end of file
+var _0xa727=['../../config/logger','../../config/environment','jayson/promise','client','request','info','debug','UserChatQueue,\x20%s,\x20%s,\x20%s','error','code','message','UserChatQueue,\x20%s,\x20%s','result','catch','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils'];(function(_0x133e76,_0x302ed6){var _0x5da7c1=function(_0x5330cc){while(--_0x5330cc){_0x133e76['push'](_0x133e76['shift']());}};_0x5da7c1(++_0x302ed6);}(_0xa727,0xe0));var _0x7a72=function(_0x4734af,_0x2c01c8){_0x4734af=_0x4734af-0x0;var _0x1d7330=_0xa727[_0x4734af];return _0x1d7330;};'use strict';var _=require(_0x7a72('0x0'));var util=require(_0x7a72('0x1'));var moment=require(_0x7a72('0x2'));var BPromise=require(_0x7a72('0x3'));var rs=require(_0x7a72('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x7a72('0x5'))['db'];var utils=require(_0x7a72('0x6'));var logger=require(_0x7a72('0x7'))('rpc');var config=require(_0x7a72('0x8'));var jayson=require(_0x7a72('0x9'));var client=jayson[_0x7a72('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x39f1d1,_0x8ea273,_0x20a18b){return new BPromise(function(_0x1f34b2,_0x3fba09){return client[_0x7a72('0xb')](_0x39f1d1,_0x20a18b)['then'](function(_0xceb32f){logger[_0x7a72('0xc')]('UserChatQueue,\x20%s,\x20%s',_0x8ea273,'request\x20sent');logger[_0x7a72('0xd')](_0x7a72('0xe'),_0x8ea273,'request\x20sent',JSON['stringify'](_0xceb32f));if(_0xceb32f[_0x7a72('0xf')]){if(_0xceb32f['error'][_0x7a72('0x10')]===0x1f4){logger[_0x7a72('0xf')]('UserChatQueue,\x20%s,\x20%s',_0x8ea273,_0xceb32f[_0x7a72('0xf')][_0x7a72('0x11')]);return _0x3fba09(_0xceb32f[_0x7a72('0xf')]['message']);}logger[_0x7a72('0xf')]('UserChatQueue,\x20%s,\x20%s',_0x8ea273,_0xceb32f[_0x7a72('0xf')][_0x7a72('0x11')]);return _0x1f34b2(_0xceb32f[_0x7a72('0xf')][_0x7a72('0x11')]);}else{logger[_0x7a72('0xc')](_0x7a72('0x12'),_0x8ea273,'request\x20sent');_0x1f34b2(_0xceb32f[_0x7a72('0x13')][_0x7a72('0x11')]);}})[_0x7a72('0x14')](function(_0x59a825){logger['error'](_0x7a72('0x12'),_0x8ea273,_0x59a825);_0x3fba09(_0x59a825);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['../../components/interaction/service','../../config/environment','exports','multer','util','path','Router','../../components/auth/service'];(function(_0x1221e8,_0x2e7229){var _0x3f3041=function(_0x2042c){while(--_0x2042c){_0x1221e8['push'](_0x1221e8['shift']());}};_0x3f3041(++_0x2e7229);}(_0xa9e0,0x123));var _0x0a9e=function(_0x92c450,_0x41f1e3){_0x92c450=_0x92c450-0x0;var _0x2a9599=_0xa9e0[_0x92c450];return _0x2a9599;};'use strict';var multer=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var path=require(_0x0a9e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0a9e('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x0a9e('0x4'));var interaction=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));module[_0x0a9e('0x7')]=router;
\ No newline at end of file
+var _0xe706=['../../components/interaction/service','../../config/environment','exports','multer','util','path','express','Router','fs-extra','../../components/auth/service'];(function(_0x4115df,_0x372f8b){var _0x2c36f4=function(_0x17818e){while(--_0x17818e){_0x4115df['push'](_0x4115df['shift']());}};_0x2c36f4(++_0x372f8b);}(_0xe706,0xa3));var _0x6e70=function(_0x15a8e1,_0x21e63d){_0x15a8e1=_0x15a8e1-0x0;var _0x185130=_0xe706[_0x15a8e1];return _0x185130;};'use strict';var multer=require(_0x6e70('0x0'));var util=require(_0x6e70('0x1'));var path=require(_0x6e70('0x2'));var timeout=require('connect-timeout');var express=require(_0x6e70('0x3'));var router=express[_0x6e70('0x4')]();var fs_extra=require(_0x6e70('0x5'));var auth=require(_0x6e70('0x6'));var interaction=require(_0x6e70('0x7'));var config=require(_0x6e70('0x8'));module[_0x6e70('0x9')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd38e=['sequelize','exports','INTEGER','STRING'];(function(_0x3d5a3c,_0x2d7f9f){var _0xf78c85=function(_0x43e7fd){while(--_0x43e7fd){_0x3d5a3c['push'](_0x3d5a3c['shift']());}};_0xf78c85(++_0x2d7f9f);}(_0xd38e,0x198));var _0xed38=function(_0x5e6986,_0x50065d){_0x5e6986=_0x5e6986-0x0;var _0x14e53d=_0xd38e[_0x5e6986];return _0x14e53d;};'use strict';var Sequelize=require(_0xed38('0x0'));module[_0xed38('0x1')]={'penalty':{'type':Sequelize['INTEGER'],'defaultValue':0x0},'assigned':{'type':Sequelize[_0xed38('0x2')],'defaultValue':0x0},'queue':{'type':Sequelize[_0xed38('0x3')]}};
\ No newline at end of file
+var _0xb18b=['STRING','exports','INTEGER'];(function(_0x4fcb07,_0x4a77a4){var _0xf2eeb=function(_0x279b1a){while(--_0x279b1a){_0x4fcb07['push'](_0x4fcb07['shift']());}};_0xf2eeb(++_0x4a77a4);}(_0xb18b,0x1ea));var _0xbb18=function(_0x7d1b89,_0x58faa5){_0x7d1b89=_0x7d1b89-0x0;var _0x435a5b=_0xb18b[_0x7d1b89];return _0x435a5b;};'use strict';var Sequelize=require('sequelize');module[_0xbb18('0x0')]={'penalty':{'type':Sequelize[_0xbb18('0x1')],'defaultValue':0x0},'assigned':{'type':Sequelize[_0xbb18('0x1')],'defaultValue':0x0},'queue':{'type':Sequelize[_0xbb18('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfa7d=['api','moment','bluebird','request-promise','rimraf','./userFaxQueue.attributes','exports','define','user_has_fax_queues','../../config/logger'];(function(_0x9312fc,_0x3c5496){var _0x16de3c=function(_0x2fde05){while(--_0x2fde05){_0x9312fc['push'](_0x9312fc['shift']());}};_0x16de3c(++_0x3c5496);}(_0xfa7d,0x1e9));var _0xdfa7=function(_0x47e7cb,_0x4c1b8d){_0x47e7cb=_0x47e7cb-0x0;var _0x2a8874=_0xfa7d[_0x47e7cb];return _0x2a8874;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0xdfa7('0x0'))(_0xdfa7('0x1'));var moment=require(_0xdfa7('0x2'));var BPromise=require(_0xdfa7('0x3'));var rp=require(_0xdfa7('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0xdfa7('0x5'));var config=require('../../config/environment');var attributes=require(_0xdfa7('0x6'));module[_0xdfa7('0x7')]=function(_0x53428c,_0x5f3e7d){return _0x53428c[_0xdfa7('0x8')]('UserFaxQueue',attributes,{'tableName':_0xdfa7('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xf4c3=['util','../../config/logger','api','moment','request-promise','path','./userFaxQueue.attributes','define','UserFaxQueue','user_has_fax_queues','lodash'];(function(_0x4e0a54,_0x87e74d){var _0x29ec64=function(_0x2e0092){while(--_0x2e0092){_0x4e0a54['push'](_0x4e0a54['shift']());}};_0x29ec64(++_0x87e74d);}(_0xf4c3,0x78));var _0x3f4c=function(_0x16278c,_0x1def38){_0x16278c=_0x16278c-0x0;var _0x45c928=_0xf4c3[_0x16278c];return _0x45c928;};'use strict';var _=require(_0x3f4c('0x0'));var util=require(_0x3f4c('0x1'));var logger=require(_0x3f4c('0x2'))(_0x3f4c('0x3'));var moment=require(_0x3f4c('0x4'));var BPromise=require('bluebird');var rp=require(_0x3f4c('0x5'));var fs=require('fs');var path=require(_0x3f4c('0x6'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x3f4c('0x7'));module['exports']=function(_0xba8c54,_0x4bc1a2){return _0xba8c54[_0x3f4c('0x8')](_0x3f4c('0x9'),attributes,{'tableName':_0x3f4c('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd30b=['../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','UserFaxQueue,\x20%s,\x20%s','debug','UserFaxQueue,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','info','result','catch','lodash','bluebird','randomstring','ioredis','../../mysqldb'];(function(_0x4be3ca,_0x1fb9bc){var _0x5d2c7f=function(_0x3fe9ec){while(--_0x3fe9ec){_0x4be3ca['push'](_0x4be3ca['shift']());}};_0x5d2c7f(++_0x1fb9bc);}(_0xd30b,0xc3));var _0xbd30=function(_0x421196,_0x1cbd94){_0x421196=_0x421196-0x0;var _0x2738af=_0xd30b[_0x421196];return _0x2738af;};'use strict';var _=require(_0xbd30('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0xbd30('0x1'));var rs=require(_0xbd30('0x2'));var fs=require('fs');var Redis=require(_0xbd30('0x3'));var db=require(_0xbd30('0x4'))['db'];var utils=require(_0xbd30('0x5'));var logger=require(_0xbd30('0x6'))(_0xbd30('0x7'));var config=require(_0xbd30('0x8'));var jayson=require(_0xbd30('0x9'));var client=jayson[_0xbd30('0xa')][_0xbd30('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x278306,_0x3dda3e,_0x18b770){return new BPromise(function(_0x311198,_0x2b6d7a){return client[_0xbd30('0xc')](_0x278306,_0x18b770)[_0xbd30('0xd')](function(_0x3f9f92){logger['info'](_0xbd30('0xe'),_0x3dda3e,'request\x20sent');logger[_0xbd30('0xf')](_0xbd30('0x10'),_0x3dda3e,_0xbd30('0x11'),JSON[_0xbd30('0x12')](_0x3f9f92));if(_0x3f9f92[_0xbd30('0x13')]){if(_0x3f9f92[_0xbd30('0x13')][_0xbd30('0x14')]===0x1f4){logger[_0xbd30('0x13')](_0xbd30('0xe'),_0x3dda3e,_0x3f9f92[_0xbd30('0x13')][_0xbd30('0x15')]);return _0x2b6d7a(_0x3f9f92['error'][_0xbd30('0x15')]);}logger[_0xbd30('0x13')](_0xbd30('0xe'),_0x3dda3e,_0x3f9f92[_0xbd30('0x13')][_0xbd30('0x15')]);return _0x311198(_0x3f9f92[_0xbd30('0x13')][_0xbd30('0x15')]);}else{logger[_0xbd30('0x16')](_0xbd30('0xe'),_0x3dda3e,'request\x20sent');_0x311198(_0x3f9f92[_0xbd30('0x17')]['message']);}})[_0xbd30('0x18')](function(_0x4a7192){logger['error'](_0xbd30('0xe'),_0x3dda3e,_0x4a7192);_0x2b6d7a(_0x4a7192);});});}
\ No newline at end of file
+var _0xaf2c=['code','message','info','result','lodash','moment','ioredis','../../config/utils','../../config/logger','rpc','http','request','then','UserFaxQueue,\x20%s,\x20%s','request\x20sent','debug','UserFaxQueue,\x20%s,\x20%s,\x20%s','stringify','error'];(function(_0x13df5c,_0x5db4a2){var _0x366d1d=function(_0x4b937c){while(--_0x4b937c){_0x13df5c['push'](_0x13df5c['shift']());}};_0x366d1d(++_0x5db4a2);}(_0xaf2c,0xfb));var _0xcaf2=function(_0xd9a981,_0x546de6){_0xd9a981=_0xd9a981-0x0;var _0x1b7b1b=_0xaf2c[_0xd9a981];return _0x1b7b1b;};'use strict';var _=require(_0xcaf2('0x0'));var util=require('util');var moment=require(_0xcaf2('0x1'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xcaf2('0x2'));var db=require('../../mysqldb')['db'];var utils=require(_0xcaf2('0x3'));var logger=require(_0xcaf2('0x4'))(_0xcaf2('0x5'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson['client'][_0xcaf2('0x6')]({'port':0x232a});function respondWithRpcPromise(_0x453b53,_0x84bdfb,_0x4f7264){return new BPromise(function(_0x6e5aa5,_0x32cd48){return client[_0xcaf2('0x7')](_0x453b53,_0x4f7264)[_0xcaf2('0x8')](function(_0x2468b4){logger['info'](_0xcaf2('0x9'),_0x84bdfb,_0xcaf2('0xa'));logger[_0xcaf2('0xb')](_0xcaf2('0xc'),_0x84bdfb,'request\x20sent',JSON[_0xcaf2('0xd')](_0x2468b4));if(_0x2468b4[_0xcaf2('0xe')]){if(_0x2468b4['error'][_0xcaf2('0xf')]===0x1f4){logger['error'](_0xcaf2('0x9'),_0x84bdfb,_0x2468b4['error'][_0xcaf2('0x10')]);return _0x32cd48(_0x2468b4[_0xcaf2('0xe')]['message']);}logger[_0xcaf2('0xe')](_0xcaf2('0x9'),_0x84bdfb,_0x2468b4[_0xcaf2('0xe')][_0xcaf2('0x10')]);return _0x6e5aa5(_0x2468b4[_0xcaf2('0xe')]['message']);}else{logger[_0xcaf2('0x11')](_0xcaf2('0x9'),_0x84bdfb,_0xcaf2('0xa'));_0x6e5aa5(_0x2468b4[_0xcaf2('0x12')]['message']);}})['catch'](function(_0x5a86e3){logger[_0xcaf2('0xe')](_0xcaf2('0x9'),_0x84bdfb,_0x5a86e3);_0x32cd48(_0x5a86e3);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x70e0=['../../components/auth/service','../../components/interaction/service','exports','multer','util','path','Router','fs-extra'];(function(_0x581cbb,_0x5de920){var _0x44c4dc=function(_0x128895){while(--_0x128895){_0x581cbb['push'](_0x581cbb['shift']());}};_0x44c4dc(++_0x5de920);}(_0x70e0,0x17b));var _0x070e=function(_0x45fbb2,_0x2c9061){_0x45fbb2=_0x45fbb2-0x0;var _0x55dfb1=_0x70e0[_0x45fbb2];return _0x55dfb1;};'use strict';var multer=require(_0x070e('0x0'));var util=require(_0x070e('0x1'));var path=require(_0x070e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x070e('0x3')]();var fs_extra=require(_0x070e('0x4'));var auth=require(_0x070e('0x5'));var interaction=require(_0x070e('0x6'));var config=require('../../config/environment');module[_0x070e('0x7')]=router;
\ No newline at end of file
+var _0xcb91=['express','Router','../../components/auth/service','../../components/interaction/service','exports','path','connect-timeout'];(function(_0x4f70b4,_0x3ff4c2){var _0x1dac16=function(_0x49db97){while(--_0x49db97){_0x4f70b4['push'](_0x4f70b4['shift']());}};_0x1dac16(++_0x3ff4c2);}(_0xcb91,0x1a9));var _0x1cb9=function(_0x3b7b8a,_0x52c3b0){_0x3b7b8a=_0x3b7b8a-0x0;var _0x441206=_0xcb91[_0x3b7b8a];return _0x441206;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x1cb9('0x0'));var timeout=require(_0x1cb9('0x1'));var express=require(_0x1cb9('0x2'));var router=express[_0x1cb9('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x1cb9('0x4'));var interaction=require(_0x1cb9('0x5'));var config=require('../../config/environment');module[_0x1cb9('0x6')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbd59=['INTEGER'];(function(_0x1f3141,_0x1ba202){var _0x441c99=function(_0x55ed4b){while(--_0x55ed4b){_0x1f3141['push'](_0x1f3141['shift']());}};_0x441c99(++_0x1ba202);}(_0xbd59,0x173));var _0x9bd5=function(_0x2b6136,_0x98b2bf){_0x2b6136=_0x2b6136-0x0;var _0x386b66=_0xbd59[_0x2b6136];return _0x386b66;};'use strict';var Sequelize=require('sequelize');module['exports']={'penalty':{'type':Sequelize[_0x9bd5('0x0')],'defaultValue':0x0}};
\ No newline at end of file
+var _0xd035=['INTEGER','sequelize','exports'];(function(_0x19e09d,_0x37349e){var _0x42e332=function(_0x3d5d94){while(--_0x3d5d94){_0x19e09d['push'](_0x19e09d['shift']());}};_0x42e332(++_0x37349e);}(_0xd035,0xdc));var _0x5d03=function(_0x31abee,_0x11ff0c){_0x31abee=_0x31abee-0x0;var _0x3c1761=_0xd035[_0x31abee];return _0x3c1761;};'use strict';var Sequelize=require(_0x5d03('0x0'));module[_0x5d03('0x1')]={'penalty':{'type':Sequelize[_0x5d03('0x2')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x060b=['api','bluebird','exports','define','UserMailQueue','user_has_mail_queues','lodash','util'];(function(_0x18656a,_0x4a79a8){var _0x2c2464=function(_0x4ec076){while(--_0x4ec076){_0x18656a['push'](_0x18656a['shift']());}};_0x2c2464(++_0x4a79a8);}(_0x060b,0x1e6));var _0xb060=function(_0x289642,_0xa28560){_0x289642=_0x289642-0x0;var _0x3f30ff=_0x060b[_0x289642];return _0x3f30ff;};'use strict';var _=require(_0xb060('0x0'));var util=require(_0xb060('0x1'));var logger=require('../../config/logger')(_0xb060('0x2'));var moment=require('moment');var BPromise=require(_0xb060('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require('./userMailQueue.attributes');module[_0xb060('0x4')]=function(_0x21ed56,_0x33d12b){return _0x21ed56[_0xb060('0x5')](_0xb060('0x6'),attributes,{'tableName':_0xb060('0x7'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x1501=['UserMailQueue','user_has_mail_queues','lodash','util','../../config/logger','api','moment','request-promise','path','../../config/environment','./userMailQueue.attributes','exports','define'];(function(_0xc67528,_0x24e2fb){var _0x38e26d=function(_0x1b0efe){while(--_0x1b0efe){_0xc67528['push'](_0xc67528['shift']());}};_0x38e26d(++_0x24e2fb);}(_0x1501,0xab));var _0x1150=function(_0x2e84ee,_0x283c59){_0x2e84ee=_0x2e84ee-0x0;var _0x5c82d0=_0x1501[_0x2e84ee];return _0x5c82d0;};'use strict';var _=require(_0x1150('0x0'));var util=require(_0x1150('0x1'));var logger=require(_0x1150('0x2'))(_0x1150('0x3'));var moment=require(_0x1150('0x4'));var BPromise=require('bluebird');var rp=require(_0x1150('0x5'));var fs=require('fs');var path=require(_0x1150('0x6'));var rimraf=require('rimraf');var config=require(_0x1150('0x7'));var attributes=require(_0x1150('0x8'));module[_0x1150('0x9')]=function(_0x5a230a,_0x4792cc){return _0x5a230a[_0x1150('0xa')](_0x1150('0xb'),attributes,{'tableName':_0x1150('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7fbe=['request','then','UserMailQueue,\x20%s,\x20%s','request\x20sent','debug','UserMailQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http'];(function(_0x37b8e8,_0x326e52){var _0x31372e=function(_0xea4dae){while(--_0xea4dae){_0x37b8e8['push'](_0x37b8e8['shift']());}};_0x31372e(++_0x326e52);}(_0x7fbe,0x1ec));var _0xe7fb=function(_0x411add,_0x1aed38){_0x411add=_0x411add-0x0;var _0x238242=_0x7fbe[_0x411add];return _0x238242;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0xe7fb('0x0'));var BPromise=require(_0xe7fb('0x1'));var rs=require(_0xe7fb('0x2'));var fs=require('fs');var Redis=require(_0xe7fb('0x3'));var db=require(_0xe7fb('0x4'))['db'];var utils=require(_0xe7fb('0x5'));var logger=require(_0xe7fb('0x6'))(_0xe7fb('0x7'));var config=require(_0xe7fb('0x8'));var jayson=require(_0xe7fb('0x9'));var client=jayson[_0xe7fb('0xa')][_0xe7fb('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x24cd67,_0x1f943f,_0x5ad75b){return new BPromise(function(_0x213ebc,_0x228f6b){return client[_0xe7fb('0xc')](_0x24cd67,_0x5ad75b)[_0xe7fb('0xd')](function(_0x4ba197){logger['info'](_0xe7fb('0xe'),_0x1f943f,_0xe7fb('0xf'));logger[_0xe7fb('0x10')](_0xe7fb('0x11'),_0x1f943f,_0xe7fb('0xf'),JSON[_0xe7fb('0x12')](_0x4ba197));if(_0x4ba197[_0xe7fb('0x13')]){if(_0x4ba197[_0xe7fb('0x13')][_0xe7fb('0x14')]===0x1f4){logger[_0xe7fb('0x13')](_0xe7fb('0xe'),_0x1f943f,_0x4ba197[_0xe7fb('0x13')][_0xe7fb('0x15')]);return _0x228f6b(_0x4ba197[_0xe7fb('0x13')][_0xe7fb('0x15')]);}logger['error'](_0xe7fb('0xe'),_0x1f943f,_0x4ba197[_0xe7fb('0x13')]['message']);return _0x213ebc(_0x4ba197[_0xe7fb('0x13')][_0xe7fb('0x15')]);}else{logger['info'](_0xe7fb('0xe'),_0x1f943f,'request\x20sent');_0x213ebc(_0x4ba197[_0xe7fb('0x16')][_0xe7fb('0x15')]);}})[_0xe7fb('0x17')](function(_0x17e8a8){logger['error'](_0xe7fb('0xe'),_0x1f943f,_0x17e8a8);_0x228f6b(_0x17e8a8);});});}
\ No newline at end of file
+var _0x7fbe=['request','then','UserMailQueue,\x20%s,\x20%s','request\x20sent','debug','UserMailQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http'];(function(_0x17d2f6,_0xca2f0){var _0x3c73fb=function(_0x4bfac6){while(--_0x4bfac6){_0x17d2f6['push'](_0x17d2f6['shift']());}};_0x3c73fb(++_0xca2f0);}(_0x7fbe,0x1ec));var _0xe7fb=function(_0x333fc8,_0x2b292c){_0x333fc8=_0x333fc8-0x0;var _0x432439=_0x7fbe[_0x333fc8];return _0x432439;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0xe7fb('0x0'));var BPromise=require(_0xe7fb('0x1'));var rs=require(_0xe7fb('0x2'));var fs=require('fs');var Redis=require(_0xe7fb('0x3'));var db=require(_0xe7fb('0x4'))['db'];var utils=require(_0xe7fb('0x5'));var logger=require(_0xe7fb('0x6'))(_0xe7fb('0x7'));var config=require(_0xe7fb('0x8'));var jayson=require(_0xe7fb('0x9'));var client=jayson[_0xe7fb('0xa')][_0xe7fb('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x24cd67,_0x1f943f,_0x5ad75b){return new BPromise(function(_0x213ebc,_0x228f6b){return client[_0xe7fb('0xc')](_0x24cd67,_0x5ad75b)[_0xe7fb('0xd')](function(_0x4ba197){logger['info'](_0xe7fb('0xe'),_0x1f943f,_0xe7fb('0xf'));logger[_0xe7fb('0x10')](_0xe7fb('0x11'),_0x1f943f,_0xe7fb('0xf'),JSON[_0xe7fb('0x12')](_0x4ba197));if(_0x4ba197[_0xe7fb('0x13')]){if(_0x4ba197[_0xe7fb('0x13')][_0xe7fb('0x14')]===0x1f4){logger[_0xe7fb('0x13')](_0xe7fb('0xe'),_0x1f943f,_0x4ba197[_0xe7fb('0x13')][_0xe7fb('0x15')]);return _0x228f6b(_0x4ba197[_0xe7fb('0x13')][_0xe7fb('0x15')]);}logger['error'](_0xe7fb('0xe'),_0x1f943f,_0x4ba197[_0xe7fb('0x13')]['message']);return _0x213ebc(_0x4ba197[_0xe7fb('0x13')][_0xe7fb('0x15')]);}else{logger['info'](_0xe7fb('0xe'),_0x1f943f,'request\x20sent');_0x213ebc(_0x4ba197[_0xe7fb('0x16')][_0xe7fb('0x15')]);}})[_0xe7fb('0x17')](function(_0x17e8a8){logger['error'](_0xe7fb('0xe'),_0x1f943f,_0x17e8a8);_0x228f6b(_0x17e8a8);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7140=['Router','fs-extra','../../components/interaction/service','post','exports','multer','path','connect-timeout','express'];(function(_0x37db5b,_0x5e640f){var _0x31df66=function(_0x1292b7){while(--_0x1292b7){_0x37db5b['push'](_0x37db5b['shift']());}};_0x31df66(++_0x5e640f);}(_0x7140,0x1f4));var _0x0714=function(_0x4450b1,_0x214ace){_0x4450b1=_0x4450b1-0x0;var _0x399b0b=_0x7140[_0x4450b1];return _0x399b0b;};'use strict';var multer=require(_0x0714('0x0'));var util=require('util');var path=require(_0x0714('0x1'));var timeout=require(_0x0714('0x2'));var express=require(_0x0714('0x3'));var router=express[_0x0714('0x4')]();var fs_extra=require(_0x0714('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x0714('0x6'));var config=require('../../config/environment');var controller=require('./userNotification.controller');router[_0x0714('0x7')]('/',auth['isAuthenticated'](),controller['sendUserNotification']);module[_0x0714('0x8')]=router;
\ No newline at end of file
+var _0xbc41=['../../components/auth/service','post','sendUserNotification','exports','util','express','fs-extra'];(function(_0x22452b,_0x192478){var _0x494d97=function(_0x34a5b3){while(--_0x34a5b3){_0x22452b['push'](_0x22452b['shift']());}};_0x494d97(++_0x192478);}(_0xbc41,0x12a));var _0x1bc4=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0xbc41[_0x321bb2];return _0x9c12ed;};'use strict';var multer=require('multer');var util=require(_0x1bc4('0x0'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0x1bc4('0x1'));var router=express['Router']();var fs_extra=require(_0x1bc4('0x2'));var auth=require(_0x1bc4('0x3'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require('./userNotification.controller');router[_0x1bc4('0x4')]('/',auth['isAuthenticated'](),controller[_0x1bc4('0x5')]);module[_0x1bc4('0x6')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x73a4=['TEXT','STRING','BOOLEAN','sequelize','exports'];(function(_0x536f7d,_0x167fe3){var _0x1c1b84=function(_0x4d0a54){while(--_0x4d0a54){_0x536f7d['push'](_0x536f7d['shift']());}};_0x1c1b84(++_0x167fe3);}(_0x73a4,0x12f));var _0x473a=function(_0x565f8e,_0xda615c){_0x565f8e=_0x565f8e-0x0;var _0x31c445=_0x73a4[_0x565f8e];return _0x31c445;};'use strict';var Sequelize=require(_0x473a('0x0'));module[_0x473a('0x1')]={'body':{'type':Sequelize[_0x473a('0x2')]},'senderName':{'type':Sequelize[_0x473a('0x3')]},'recipientsId':{'type':Sequelize[_0x473a('0x2')]},'recipientsDescription':{'type':Sequelize[_0x473a('0x3')]},'beep':{'type':Sequelize[_0x473a('0x4')]}};
\ No newline at end of file
+var _0x6bc8=['sequelize','TEXT','STRING','BOOLEAN'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x6bc8,0xcc));var _0x86bc=function(_0x4cd7f2,_0x5e6d66){_0x4cd7f2=_0x4cd7f2-0x0;var _0x2bcfe5=_0x6bc8[_0x4cd7f2];return _0x2bcfe5;};'use strict';var Sequelize=require(_0x86bc('0x0'));module['exports']={'body':{'type':Sequelize[_0x86bc('0x1')]},'senderName':{'type':Sequelize[_0x86bc('0x2')]},'recipientsId':{'type':Sequelize['TEXT']},'recipientsDescription':{'type':Sequelize[_0x86bc('0x2')]},'beep':{'type':Sequelize[_0x86bc('0x3')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf789=['flatten','findOne','map','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','redis','localhost','sendStatus','status','json','offset','undefined','limit','count','set','apply','reject','update','then','end','error','stack','name','send','sendUserNotification','hasOwnProperty','text','body','TemplateId','view','Sequelize','ValidationError','recipients','Missing\x20\x27recipients\x27\x20parameter','Invalid\x20\x27recipients\x27\x20object','chatqueue','faxqueue','mailqueue','openchannelqueue','voicequeue','whatsappqueue','team','user','some','includes','model','toLowerCase','Invalid\x20model\x20in\x20\x27recipients\x27\x20object','senderName','recipientsDescription','beep','SenderId','recipientsId','sortBy','join','sequelize','transaction','UserNotification','create','forEach','recipient','emit','userNotification:send','Template','Invalid\x20\x27TemplateId\x27\x20parameter','render','catch','startCase','User','union','ids','queue','replace','push','all'];(function(_0x456102,_0x23ed88){var _0x43d783=function(_0x52fd60){while(--_0x52fd60){_0x456102['push'](_0x456102['shift']());}};_0x43d783(++_0x23ed88);}(_0xf789,0x64));var _0x9f78=function(_0x41aa0f,_0x27aa30){_0x41aa0f=_0x41aa0f-0x0;var _0xaae926=_0xf789[_0x41aa0f];return _0xaae926;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x9f78('0x0'));var jsonpatch=require(_0x9f78('0x1'));var rp=require(_0x9f78('0x2'));var moment=require(_0x9f78('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x9f78('0x4'));var util=require(_0x9f78('0x5'));var path=require(_0x9f78('0x6'));var sox=require(_0x9f78('0x7'));var csv=require(_0x9f78('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x9f78('0x9'));var squel=require(_0x9f78('0xa'));var crypto=require(_0x9f78('0xb'));var jsforce=require(_0x9f78('0xc'));var deskjs=require(_0x9f78('0xd'));var toCsv=require(_0x9f78('0x8'));var querystring=require(_0x9f78('0xe'));var Papa=require('papaparse');var Redis=require(_0x9f78('0xf'));var authService=require(_0x9f78('0x10'));var qs=require(_0x9f78('0x11'));var as=require(_0x9f78('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x9f78('0x13'))(_0x9f78('0x14'));var utils=require(_0x9f78('0x15'));var config=require(_0x9f78('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0x9f78('0x17'))['db'];config[_0x9f78('0x18')]=_['defaults'](config[_0x9f78('0x18')],{'host':_0x9f78('0x19'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x9f78('0x18')]));require('./userNotification.socket')['register'](socket);function respondWithStatusCode(_0x1ae7d0,_0x246ede){_0x246ede=_0x246ede||0xcc;return function(_0x3e901b){if(_0x3e901b){return _0x1ae7d0[_0x9f78('0x1a')](_0x246ede);}return _0x1ae7d0[_0x9f78('0x1b')](_0x246ede)['end']();};}function respondWithResult(_0x6825d1,_0x503907){_0x503907=_0x503907||0xc8;return function(_0x50fd2f){if(_0x50fd2f){return _0x6825d1[_0x9f78('0x1b')](_0x503907)[_0x9f78('0x1c')](_0x50fd2f);}};}function respondWithFilteredResult(_0x249f73,_0x247d62){return function(_0x141428){if(_0x141428){var _0x904d49=typeof _0x247d62[_0x9f78('0x1d')]===_0x9f78('0x1e')&&typeof _0x247d62[_0x9f78('0x1f')]===_0x9f78('0x1e');var _0x486321=_0x141428['count'];var _0x116bd1=_0x904d49?0x0:_0x247d62[_0x9f78('0x1d')];var _0x5226ac=_0x904d49?_0x141428[_0x9f78('0x20')]:_0x247d62['offset']+_0x247d62[_0x9f78('0x1f')];var _0x4e0557;if(_0x5226ac>=_0x486321){_0x5226ac=_0x486321;_0x4e0557=0xc8;}else{_0x4e0557=0xce;}_0x249f73[_0x9f78('0x1b')](_0x4e0557);return _0x249f73[_0x9f78('0x21')]('Content-Range',_0x116bd1+'-'+_0x5226ac+'/'+_0x486321)[_0x9f78('0x1c')](_0x141428);}return null;};}function patchUpdates(_0x2d1d90){return function(_0x565a30){try{jsonpatch[_0x9f78('0x22')](_0x565a30,_0x2d1d90,!![]);}catch(_0xcb5774){return BPromise[_0x9f78('0x23')](_0xcb5774);}return _0x565a30['save']();};}function saveUpdates(_0x2e33ee,_0x406a43){return function(_0x3dcace){if(_0x3dcace){return _0x3dcace[_0x9f78('0x24')](_0x2e33ee)[_0x9f78('0x25')](function(_0xbd6a1b){return _0xbd6a1b;});}return null;};}function removeEntity(_0x4b0799,_0xe8a3fe){return function(_0x2c9111){if(_0x2c9111){return _0x2c9111['destroy']()[_0x9f78('0x25')](function(){_0x4b0799[_0x9f78('0x1b')](0xcc)[_0x9f78('0x26')]();});}};}function handleEntityNotFound(_0xd86dc9,_0x2e913c){return function(_0x5d1db2){if(!_0x5d1db2){_0xd86dc9[_0x9f78('0x1a')](0x194);}return _0x5d1db2;};}function handleError(_0x54d570,_0x570c66){_0x570c66=_0x570c66||0x1f4;return function(_0x2645a5){logger[_0x9f78('0x27')](_0x2645a5[_0x9f78('0x28')]);if(_0x2645a5[_0x9f78('0x29')]){delete _0x2645a5[_0x9f78('0x29')];}_0x54d570['status'](_0x570c66)[_0x9f78('0x2a')](_0x2645a5);};}exports[_0x9f78('0x2b')]=function(_0x5214ed,_0x4df65,_0x45995d){if(!_0x5214ed['body'][_0x9f78('0x2c')](_0x9f78('0x2d'))&&!_0x5214ed[_0x9f78('0x2e')][_0x9f78('0x2c')](_0x9f78('0x2f'))){throw new db['Sequelize']['ValidationError']('Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27');}else{if(_0x5214ed[_0x9f78('0x2e')][_0x9f78('0x2c')](_0x9f78('0x2f'))&&!_0x5214ed[_0x9f78('0x2e')][_0x9f78('0x2c')](_0x9f78('0x30'))){throw new db[(_0x9f78('0x31'))][(_0x9f78('0x32'))]('Missing\x20\x27view\x27\x20parameter');}if(!_0x5214ed[_0x9f78('0x2e')][_0x9f78('0x2c')](_0x9f78('0x33'))){throw new db[(_0x9f78('0x31'))][(_0x9f78('0x32'))](_0x9f78('0x34'));}else{try{var _0x51a20d=JSON['parse'](_0x5214ed[_0x9f78('0x2e')][_0x9f78('0x33')]);}catch(_0x32cb25){logger[_0x9f78('0x27')](_0x32cb25);throw new db['Sequelize'][(_0x9f78('0x32'))](_0x9f78('0x35'));}var _0x10aec9=[_0x9f78('0x36'),_0x9f78('0x37'),_0x9f78('0x38'),_0x9f78('0x39'),'smsqueue',_0x9f78('0x3a'),_0x9f78('0x3b'),_0x9f78('0x3c'),_0x9f78('0x3d')];if(_[_0x9f78('0x3e')](_0x51a20d,function(_0x4b4cac){return!_[_0x9f78('0x3f')](_0x10aec9,_0x4b4cac[_0x9f78('0x40')][_0x9f78('0x41')]());})){throw new db[(_0x9f78('0x31'))]['ValidationError'](_0x9f78('0x42'));}}}var _0x38ed32={};_0x38ed32['senderName']=_0x5214ed[_0x9f78('0x2e')][_0x9f78('0x2c')]('senderName')?_0x5214ed[_0x9f78('0x2e')][_0x9f78('0x43')]:_0x5214ed[_0x9f78('0x3d')]['fullname'];_0x38ed32['recipientsDescription']=_['isEmpty'](_0x5214ed[_0x9f78('0x2e')][_0x9f78('0x44')])?null:_0x5214ed[_0x9f78('0x2e')][_0x9f78('0x44')];_0x38ed32[_0x9f78('0x45')]=_0x5214ed[_0x9f78('0x2e')][_0x9f78('0x45')]||![];_0x38ed32[_0x9f78('0x46')]=_0x5214ed['user']['id'];return getContent(_0x5214ed[_0x9f78('0x2e')])[_0x9f78('0x25')](function(_0x282115){_0x38ed32[_0x9f78('0x2e')]=_0x282115;return getRecipients(_0x51a20d);})[_0x9f78('0x25')](function(_0x55e43f){_0x38ed32[_0x9f78('0x47')]=_[_0x9f78('0x48')](_0x55e43f)[_0x9f78('0x49')](',');return db[_0x9f78('0x4a')][_0x9f78('0x4b')](function(_0x7f98c1){return db[_0x9f78('0x4c')][_0x9f78('0x4d')](_0x38ed32,{'raw':!![],'transaction':_0x7f98c1})[_0x9f78('0x25')](function(_0x5715cb){var _0x32413f={'sender':_0x38ed32[_0x9f78('0x43')],'description':_0x38ed32[_0x9f78('0x44')],'content':_0x38ed32['body'],'beep':_0x38ed32[_0x9f78('0x45')]};_0x55e43f[_0x9f78('0x4e')](function(_0x36c5a1){_0x32413f[_0x9f78('0x4f')]=_0x36c5a1;socket[_0x9f78('0x50')](_0x9f78('0x51'),_0x32413f);});return _0x5715cb;});});})['then'](respondWithResult(_0x4df65,0xc9))['catch'](handleError(_0x4df65,null));};function getContent(_0x1f18a0){return new BPromise(function(_0x5321c2,_0x560b6b){if(_0x1f18a0['text']){_0x5321c2(_0x1f18a0[_0x9f78('0x2d')]);return;}return db[_0x9f78('0x52')]['findOne']({'attributes':['html'],'where':{'id':_0x1f18a0['TemplateId']},'raw':!![]})[_0x9f78('0x25')](function(_0x38204b){if(!_0x38204b)throw new db[(_0x9f78('0x31'))][(_0x9f78('0x32'))](_0x9f78('0x53'));var _0x25954d=Mustache[_0x9f78('0x54')](_0x38204b['html'],_0x1f18a0['view']);_0x5321c2(_0x25954d);})[_0x9f78('0x55')](function(_0x1df293){_0x560b6b(_0x1df293);});});}function getRecipients(_0x49327f){return new BPromise(function(_0x1a6719,_0x3e8a98){var _0x4cfa58=[];var _0x25e209=[];_0x49327f[_0x9f78('0x4e')](function(_0x5860a7){var _0x1afdaa=_[_0x9f78('0x56')](_0x5860a7[_0x9f78('0x40')][_0x9f78('0x41')]());if(_0x1afdaa===_0x9f78('0x57')){_0x4cfa58=_[_0x9f78('0x58')](_0x4cfa58,_0x5860a7[_0x9f78('0x59')]);}else{if(_[_0x9f78('0x3f')](_0x1afdaa,_0x9f78('0x5a')))_0x1afdaa=_0x1afdaa[_0x9f78('0x5b')](_0x9f78('0x5a'),'Queue');_0x5860a7[_0x9f78('0x59')][_0x9f78('0x4e')](function(_0x29a3bb){_0x25e209[_0x9f78('0x5c')](getAgents(_0x1afdaa,_0x29a3bb));});}});return BPromise[_0x9f78('0x5d')](_0x25e209)[_0x9f78('0x25')](function(_0x102f7f){_0x4cfa58=_[_0x9f78('0x58')](_0x4cfa58,_[_0x9f78('0x5e')](_0x102f7f));_0x1a6719(_0x4cfa58);})[_0x9f78('0x55')](function(_0x4fc71d){_0x3e8a98(_0x4fc71d);});});}function getAgents(_0x8c8643,_0x4713c8){return new BPromise(function(_0x2df0aa,_0x3d9e6c){return db[_0x8c8643][_0x9f78('0x5f')]({'where':{'id':_0x4713c8}})[_0x9f78('0x25')](function(_0x12e4e5){return _0x12e4e5['getAgents']({'attributes':['id'],'raw':!![]})[_0x9f78('0x25')](function(_0x5b93ab){var _0x2ffd70=_[_0x9f78('0x60')](_0x5b93ab,'id');_0x2df0aa(_0x2ffd70);});})[_0x9f78('0x55')](function(_0x37776a){_0x3d9e6c(_0x37776a);});});}
\ No newline at end of file
+var _0x3eb7=['undefined','limit','count','Content-Range','apply','then','error','stack','name','send','hasOwnProperty','text','body','TemplateId','Sequelize','view','ValidationError','Missing\x20\x27view\x27\x20parameter','recipients','Missing\x20\x27recipients\x27\x20parameter','parse','Invalid\x20\x27recipients\x27\x20object','chatqueue','faxqueue','openchannelqueue','smsqueue','voicequeue','team','user','some','includes','model','toLowerCase','senderName','fullname','recipientsDescription','beep','SenderId','recipientsId','sortBy','join','sequelize','transaction','UserNotification','create','forEach','emit','userNotification:send','catch','Template','findOne','html','render','startCase','User','union','ids','queue','Queue','push','all','flatten','getAgents','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','register','sendStatus','status','end','json','offset'];(function(_0x20fc19,_0xbb66d6){var _0x1c2d66=function(_0x27bae6){while(--_0x27bae6){_0x20fc19['push'](_0x20fc19['shift']());}};_0x1c2d66(++_0xbb66d6);}(_0x3eb7,0x103));var _0x73eb=function(_0xf80db5,_0x559f7d){_0xf80db5=_0xf80db5-0x0;var _0xc7eac6=_0x3eb7[_0xf80db5];return _0xc7eac6;};'use strict';var emlformat=require(_0x73eb('0x0'));var rimraf=require(_0x73eb('0x1'));var zipdir=require(_0x73eb('0x2'));var jsonpatch=require(_0x73eb('0x3'));var rp=require(_0x73eb('0x4'));var moment=require(_0x73eb('0x5'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x73eb('0x6'));var path=require(_0x73eb('0x7'));var sox=require(_0x73eb('0x8'));var csv=require(_0x73eb('0x9'));var ejs=require(_0x73eb('0xa'));var fs=require('fs');var fs_extra=require(_0x73eb('0xb'));var _=require(_0x73eb('0xc'));var squel=require('squel');var crypto=require(_0x73eb('0xd'));var jsforce=require(_0x73eb('0xe'));var deskjs=require(_0x73eb('0xf'));var toCsv=require(_0x73eb('0x9'));var querystring=require(_0x73eb('0x10'));var Papa=require(_0x73eb('0x11'));var Redis=require(_0x73eb('0x12'));var authService=require(_0x73eb('0x13'));var qs=require(_0x73eb('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x73eb('0x15'));var logger=require(_0x73eb('0x16'))(_0x73eb('0x17'));var utils=require(_0x73eb('0x18'));var config=require(_0x73eb('0x19'));var licenseUtil=require(_0x73eb('0x1a'));var db=require(_0x73eb('0x1b'))['db'];config[_0x73eb('0x1c')]=_['defaults'](config[_0x73eb('0x1c')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x73eb('0x1c')]));require('./userNotification.socket')[_0x73eb('0x1d')](socket);function respondWithStatusCode(_0xe25f2e,_0x5a23a6){_0x5a23a6=_0x5a23a6||0xcc;return function(_0xcee2fa){if(_0xcee2fa){return _0xe25f2e[_0x73eb('0x1e')](_0x5a23a6);}return _0xe25f2e[_0x73eb('0x1f')](_0x5a23a6)[_0x73eb('0x20')]();};}function respondWithResult(_0x3c5f65,_0x4f3d4f){_0x4f3d4f=_0x4f3d4f||0xc8;return function(_0x4a5228){if(_0x4a5228){return _0x3c5f65['status'](_0x4f3d4f)[_0x73eb('0x21')](_0x4a5228);}};}function respondWithFilteredResult(_0x531211,_0x4a35e3){return function(_0x1a1995){if(_0x1a1995){var _0x2eedc6=typeof _0x4a35e3[_0x73eb('0x22')]===_0x73eb('0x23')&&typeof _0x4a35e3[_0x73eb('0x24')]===_0x73eb('0x23');var _0x49bb70=_0x1a1995[_0x73eb('0x25')];var _0x133cfd=_0x2eedc6?0x0:_0x4a35e3['offset'];var _0x247ae9=_0x2eedc6?_0x1a1995[_0x73eb('0x25')]:_0x4a35e3[_0x73eb('0x22')]+_0x4a35e3[_0x73eb('0x24')];var _0x3c7880;if(_0x247ae9>=_0x49bb70){_0x247ae9=_0x49bb70;_0x3c7880=0xc8;}else{_0x3c7880=0xce;}_0x531211[_0x73eb('0x1f')](_0x3c7880);return _0x531211['set'](_0x73eb('0x26'),_0x133cfd+'-'+_0x247ae9+'/'+_0x49bb70)[_0x73eb('0x21')](_0x1a1995);}return null;};}function patchUpdates(_0xa27479){return function(_0x2233bd){try{jsonpatch[_0x73eb('0x27')](_0x2233bd,_0xa27479,!![]);}catch(_0x48bc8a){return BPromise['reject'](_0x48bc8a);}return _0x2233bd['save']();};}function saveUpdates(_0x3cc4e2,_0x1a4dda){return function(_0xc3aafc){if(_0xc3aafc){return _0xc3aafc['update'](_0x3cc4e2)[_0x73eb('0x28')](function(_0x1b28e4){return _0x1b28e4;});}return null;};}function removeEntity(_0x78af73,_0x2343fe){return function(_0xe8c343){if(_0xe8c343){return _0xe8c343['destroy']()[_0x73eb('0x28')](function(){_0x78af73[_0x73eb('0x1f')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3235ad,_0x1fc1df){return function(_0xe73850){if(!_0xe73850){_0x3235ad[_0x73eb('0x1e')](0x194);}return _0xe73850;};}function handleError(_0x208d85,_0x7ae10d){_0x7ae10d=_0x7ae10d||0x1f4;return function(_0x29d589){logger[_0x73eb('0x29')](_0x29d589[_0x73eb('0x2a')]);if(_0x29d589[_0x73eb('0x2b')]){delete _0x29d589[_0x73eb('0x2b')];}_0x208d85[_0x73eb('0x1f')](_0x7ae10d)[_0x73eb('0x2c')](_0x29d589);};}exports['sendUserNotification']=function(_0x26fb76,_0x556c97,_0x21b342){if(!_0x26fb76['body'][_0x73eb('0x2d')](_0x73eb('0x2e'))&&!_0x26fb76[_0x73eb('0x2f')][_0x73eb('0x2d')](_0x73eb('0x30'))){throw new db[(_0x73eb('0x31'))]['ValidationError']('Must\x20specify\x20at\x20least\x20one\x20argument\x20for\x20\x27text\x27\x20or\x20\x27TemplateId\x27');}else{if(_0x26fb76[_0x73eb('0x2f')]['hasOwnProperty'](_0x73eb('0x30'))&&!_0x26fb76['body'][_0x73eb('0x2d')](_0x73eb('0x32'))){throw new db[(_0x73eb('0x31'))][(_0x73eb('0x33'))](_0x73eb('0x34'));}if(!_0x26fb76[_0x73eb('0x2f')]['hasOwnProperty'](_0x73eb('0x35'))){throw new db[(_0x73eb('0x31'))][(_0x73eb('0x33'))](_0x73eb('0x36'));}else{try{var _0x2e439f=JSON[_0x73eb('0x37')](_0x26fb76[_0x73eb('0x2f')]['recipients']);}catch(_0x30e39c){logger[_0x73eb('0x29')](_0x30e39c);throw new db[(_0x73eb('0x31'))][(_0x73eb('0x33'))](_0x73eb('0x38'));}var _0x35c063=[_0x73eb('0x39'),_0x73eb('0x3a'),'mailqueue',_0x73eb('0x3b'),_0x73eb('0x3c'),_0x73eb('0x3d'),'whatsappqueue',_0x73eb('0x3e'),_0x73eb('0x3f')];if(_[_0x73eb('0x40')](_0x2e439f,function(_0x6bc68c){return!_[_0x73eb('0x41')](_0x35c063,_0x6bc68c[_0x73eb('0x42')][_0x73eb('0x43')]());})){throw new db[(_0x73eb('0x31'))]['ValidationError']('Invalid\x20model\x20in\x20\x27recipients\x27\x20object');}}}var _0x5968a5={};_0x5968a5[_0x73eb('0x44')]=_0x26fb76[_0x73eb('0x2f')][_0x73eb('0x2d')](_0x73eb('0x44'))?_0x26fb76[_0x73eb('0x2f')]['senderName']:_0x26fb76[_0x73eb('0x3f')][_0x73eb('0x45')];_0x5968a5[_0x73eb('0x46')]=_['isEmpty'](_0x26fb76[_0x73eb('0x2f')][_0x73eb('0x46')])?null:_0x26fb76[_0x73eb('0x2f')][_0x73eb('0x46')];_0x5968a5['beep']=_0x26fb76['body'][_0x73eb('0x47')]||![];_0x5968a5[_0x73eb('0x48')]=_0x26fb76[_0x73eb('0x3f')]['id'];return getContent(_0x26fb76[_0x73eb('0x2f')])['then'](function(_0x46c267){_0x5968a5[_0x73eb('0x2f')]=_0x46c267;return getRecipients(_0x2e439f);})[_0x73eb('0x28')](function(_0x24b14e){_0x5968a5[_0x73eb('0x49')]=_[_0x73eb('0x4a')](_0x24b14e)[_0x73eb('0x4b')](',');return db[_0x73eb('0x4c')][_0x73eb('0x4d')](function(_0x4a796d){return db[_0x73eb('0x4e')][_0x73eb('0x4f')](_0x5968a5,{'raw':!![],'transaction':_0x4a796d})[_0x73eb('0x28')](function(_0x4da733){var _0x141acd={'sender':_0x5968a5[_0x73eb('0x44')],'description':_0x5968a5[_0x73eb('0x46')],'content':_0x5968a5[_0x73eb('0x2f')],'beep':_0x5968a5[_0x73eb('0x47')]};_0x24b14e[_0x73eb('0x50')](function(_0x11b241){_0x141acd['recipient']=_0x11b241;socket[_0x73eb('0x51')](_0x73eb('0x52'),_0x141acd);});return _0x4da733;});});})[_0x73eb('0x28')](respondWithResult(_0x556c97,0xc9))[_0x73eb('0x53')](handleError(_0x556c97,null));};function getContent(_0x2bcbff){return new BPromise(function(_0x565f99,_0x4a819d){if(_0x2bcbff[_0x73eb('0x2e')]){_0x565f99(_0x2bcbff['text']);return;}return db[_0x73eb('0x54')][_0x73eb('0x55')]({'attributes':[_0x73eb('0x56')],'where':{'id':_0x2bcbff[_0x73eb('0x30')]},'raw':!![]})[_0x73eb('0x28')](function(_0x5cf73b){if(!_0x5cf73b)throw new db[(_0x73eb('0x31'))][(_0x73eb('0x33'))]('Invalid\x20\x27TemplateId\x27\x20parameter');var _0x4dfb85=Mustache[_0x73eb('0x57')](_0x5cf73b['html'],_0x2bcbff['view']);_0x565f99(_0x4dfb85);})['catch'](function(_0xaf8cc3){_0x4a819d(_0xaf8cc3);});});}function getRecipients(_0x2db4c6){return new BPromise(function(_0x5889d0,_0x1f86eb){var _0x5bacfc=[];var _0x36a704=[];_0x2db4c6[_0x73eb('0x50')](function(_0x400345){var _0x4c47e9=_[_0x73eb('0x58')](_0x400345[_0x73eb('0x42')][_0x73eb('0x43')]());if(_0x4c47e9===_0x73eb('0x59')){_0x5bacfc=_[_0x73eb('0x5a')](_0x5bacfc,_0x400345[_0x73eb('0x5b')]);}else{if(_[_0x73eb('0x41')](_0x4c47e9,_0x73eb('0x5c')))_0x4c47e9=_0x4c47e9['replace'](_0x73eb('0x5c'),_0x73eb('0x5d'));_0x400345['ids'][_0x73eb('0x50')](function(_0x288568){_0x36a704[_0x73eb('0x5e')](getAgents(_0x4c47e9,_0x288568));});}});return BPromise[_0x73eb('0x5f')](_0x36a704)[_0x73eb('0x28')](function(_0x2b3cf9){_0x5bacfc=_[_0x73eb('0x5a')](_0x5bacfc,_[_0x73eb('0x60')](_0x2b3cf9));_0x5889d0(_0x5bacfc);})[_0x73eb('0x53')](function(_0x360942){_0x1f86eb(_0x360942);});});}function getAgents(_0x12f1ad,_0x410855){return new BPromise(function(_0x2d9e76,_0x2ddd84){return db[_0x12f1ad][_0x73eb('0x55')]({'where':{'id':_0x410855}})[_0x73eb('0x28')](function(_0x2bfb03){return _0x2bfb03[_0x73eb('0x61')]({'attributes':['id'],'raw':!![]})[_0x73eb('0x28')](function(_0x4823e2){var _0x36d2ee=_['map'](_0x4823e2,'id');_0x2d9e76(_0x36d2ee);});})[_0x73eb('0x53')](function(_0x1dbdcd){_0x2ddd84(_0x1dbdcd);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x78c5=['save','update','remove','emit','hasOwnProperty','hook','exports','../../mysqldb','UserNotification'];(function(_0x11bc9a,_0x11411b){var _0x4a045f=function(_0x3a5d7f){while(--_0x3a5d7f){_0x11bc9a['push'](_0x11bc9a['shift']());}};_0x4a045f(++_0x11411b);}(_0x78c5,0x130));var _0x578c=function(_0x125425,_0x4b6bab){_0x125425=_0x125425-0x0;var _0xd04dc4=_0x78c5[_0x125425];return _0xd04dc4;};'use strict';var EventEmitter=require('events');var UserNotification=require(_0x578c('0x0'))['db'][_0x578c('0x1')];var UserNotificationEvents=new EventEmitter();UserNotificationEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x578c('0x2'),'afterUpdate':_0x578c('0x3'),'afterDestroy':_0x578c('0x4')};function emitEvent(_0x564cbd){return function(_0x1a2ee3,_0x45cdfa,_0x1fb4c1){UserNotificationEvents[_0x578c('0x5')](_0x564cbd+':'+_0x1a2ee3['id'],_0x1a2ee3);UserNotificationEvents[_0x578c('0x5')](_0x564cbd,_0x1a2ee3);_0x1fb4c1(null);};}for(var e in events){if(events[_0x578c('0x6')](e)){var event=events[e];UserNotification[_0x578c('0x7')](e,emitEvent(event));}}module[_0x578c('0x8')]=UserNotificationEvents;
\ No newline at end of file
+var _0x0ed3=['hasOwnProperty','hook','exports','events','../../mysqldb','UserNotification','setMaxListeners','save','update','emit'];(function(_0x4a6953,_0x226a21){var _0x4c1f52=function(_0x4380eb){while(--_0x4380eb){_0x4a6953['push'](_0x4a6953['shift']());}};_0x4c1f52(++_0x226a21);}(_0x0ed3,0x111));var _0x30ed=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x0ed3[_0x14add3];return _0x4a174f;};'use strict';var EventEmitter=require(_0x30ed('0x0'));var UserNotification=require(_0x30ed('0x1'))['db'][_0x30ed('0x2')];var UserNotificationEvents=new EventEmitter();UserNotificationEvents[_0x30ed('0x3')](0x0);var events={'afterCreate':_0x30ed('0x4'),'afterUpdate':_0x30ed('0x5'),'afterDestroy':'remove'};function emitEvent(_0x373cf5){return function(_0x48eed4,_0x3d598b,_0x5dc774){UserNotificationEvents[_0x30ed('0x6')](_0x373cf5+':'+_0x48eed4['id'],_0x48eed4);UserNotificationEvents[_0x30ed('0x6')](_0x373cf5,_0x48eed4);_0x5dc774(null);};}for(var e in events){if(events[_0x30ed('0x7')](e)){var event=events[e];UserNotification[_0x30ed('0x8')](e,emitEvent(event));}}module[_0x30ed('0x9')]=UserNotificationEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe3f6=['define','userNotifications','utf8mb4_unicode_ci','lodash','util','../../config/logger','moment','request-promise','path','../../config/environment','exports'];(function(_0x2aa33a,_0x5683df){var _0x14f094=function(_0x16e570){while(--_0x16e570){_0x2aa33a['push'](_0x2aa33a['shift']());}};_0x14f094(++_0x5683df);}(_0xe3f6,0x92));var _0x6e3f=function(_0x45d3f0,_0x4be53f){_0x45d3f0=_0x45d3f0-0x0;var _0x314b79=_0xe3f6[_0x45d3f0];return _0x314b79;};'use strict';var _=require(_0x6e3f('0x0'));var util=require(_0x6e3f('0x1'));var logger=require(_0x6e3f('0x2'))('api');var moment=require(_0x6e3f('0x3'));var BPromise=require('bluebird');var rp=require(_0x6e3f('0x4'));var fs=require('fs');var path=require(_0x6e3f('0x5'));var rimraf=require('rimraf');var config=require(_0x6e3f('0x6'));var attributes=require('./userNotification.attributes');module[_0x6e3f('0x7')]=function(_0x5ff9b4,_0xbeed8){return _0x5ff9b4[_0x6e3f('0x8')]('UserNotification',attributes,{'tableName':_0x6e3f('0x9'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':'utf8mb4','collate':_0x6e3f('0xa')});};
\ No newline at end of file
+var _0x19b8=['lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./userNotification.attributes','exports','UserNotification','utf8mb4'];(function(_0x4e4ea0,_0x1cce94){var _0xa8ac31=function(_0x513d43){while(--_0x513d43){_0x4e4ea0['push'](_0x4e4ea0['shift']());}};_0xa8ac31(++_0x1cce94);}(_0x19b8,0x9a));var _0x819b=function(_0x17ce52,_0x174d05){_0x17ce52=_0x17ce52-0x0;var _0x468524=_0x19b8[_0x17ce52];return _0x468524;};'use strict';var _=require(_0x819b('0x0'));var util=require(_0x819b('0x1'));var logger=require(_0x819b('0x2'))(_0x819b('0x3'));var moment=require(_0x819b('0x4'));var BPromise=require(_0x819b('0x5'));var rp=require(_0x819b('0x6'));var fs=require('fs');var path=require(_0x819b('0x7'));var rimraf=require(_0x819b('0x8'));var config=require(_0x819b('0x9'));var attributes=require(_0x819b('0xa'));module[_0x819b('0xb')]=function(_0x3236dd,_0x2b08ab){return _0x3236dd['define'](_0x819b('0xc'),attributes,{'tableName':'userNotifications','paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x819b('0xd'),'collate':'utf8mb4_unicode_ci'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x98d0=['util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','redis','localhost','./userNotification.socket','register','request','then','info','UserNotification,\x20%s,\x20%s','request\x20sent','debug','UserNotification,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','lodash'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x98d0,0x143));var _0x098d=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x98d0[_0x14add3];return _0x4a174f;};'use strict';var _=require(_0x098d('0x0'));var util=require(_0x098d('0x1'));var moment=require(_0x098d('0x2'));var BPromise=require(_0x098d('0x3'));var rs=require(_0x098d('0x4'));var fs=require('fs');var Redis=require(_0x098d('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x098d('0x6'));var logger=require(_0x098d('0x7'))(_0x098d('0x8'));var config=require(_0x098d('0x9'));var jayson=require(_0x098d('0xa'));var client=jayson['client']['http']({'port':0x232a});config['redis']=_['defaults'](config[_0x098d('0xb')],{'host':_0x098d('0xc'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x098d('0xb')]));require(_0x098d('0xd'))[_0x098d('0xe')](socket);function respondWithRpcPromise(_0x89fcf3,_0x23c0be,_0x57e522){return new BPromise(function(_0x5e7a47,_0x289c5b){return client[_0x098d('0xf')](_0x89fcf3,_0x57e522)[_0x098d('0x10')](function(_0x2eb658){logger[_0x098d('0x11')](_0x098d('0x12'),_0x23c0be,_0x098d('0x13'));logger[_0x098d('0x14')](_0x098d('0x15'),_0x23c0be,_0x098d('0x13'),JSON[_0x098d('0x16')](_0x2eb658));if(_0x2eb658['error']){if(_0x2eb658[_0x098d('0x17')][_0x098d('0x18')]===0x1f4){logger[_0x098d('0x17')](_0x098d('0x12'),_0x23c0be,_0x2eb658[_0x098d('0x17')]['message']);return _0x289c5b(_0x2eb658[_0x098d('0x17')][_0x098d('0x19')]);}logger[_0x098d('0x17')](_0x098d('0x12'),_0x23c0be,_0x2eb658[_0x098d('0x17')]['message']);return _0x5e7a47(_0x2eb658[_0x098d('0x17')]['message']);}else{logger['info'](_0x098d('0x12'),_0x23c0be,_0x098d('0x13'));_0x5e7a47(_0x2eb658['result'][_0x098d('0x19')]);}})[_0x098d('0x1a')](function(_0x327504){logger[_0x098d('0x17')](_0x098d('0x12'),_0x23c0be,_0x327504);_0x289c5b(_0x327504);});});}
\ No newline at end of file
+var _0x4a0a=['error','code','UserNotification,\x20%s,\x20%s','message','result','catch','lodash','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','defaults','redis','localhost','socket.io-emitter','register','info','request\x20sent','debug','stringify'];(function(_0x5e61e8,_0x6748d6){var _0x2fcadc=function(_0x24dd1c){while(--_0x24dd1c){_0x5e61e8['push'](_0x5e61e8['shift']());}};_0x2fcadc(++_0x6748d6);}(_0x4a0a,0x19b));var _0xa4a0=function(_0x263a74,_0xc31414){_0x263a74=_0x263a74-0x0;var _0x2aa86c=_0x4a0a[_0x263a74];return _0x2aa86c;};'use strict';var _=require(_0xa4a0('0x0'));var util=require('util');var moment=require(_0xa4a0('0x1'));var BPromise=require(_0xa4a0('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xa4a0('0x3'));var db=require(_0xa4a0('0x4'))['db'];var utils=require(_0xa4a0('0x5'));var logger=require(_0xa4a0('0x6'))(_0xa4a0('0x7'));var config=require(_0xa4a0('0x8'));var jayson=require(_0xa4a0('0x9'));var client=jayson[_0xa4a0('0xa')][_0xa4a0('0xb')]({'port':0x232a});config['redis']=_[_0xa4a0('0xc')](config[_0xa4a0('0xd')],{'host':_0xa4a0('0xe'),'port':0x18eb});var socket=require(_0xa4a0('0xf'))(new Redis(config[_0xa4a0('0xd')]));require('./userNotification.socket')[_0xa4a0('0x10')](socket);function respondWithRpcPromise(_0x26a00d,_0x2032c0,_0x20beb7){return new BPromise(function(_0x54e688,_0x29ec47){return client['request'](_0x26a00d,_0x20beb7)['then'](function(_0x315594){logger[_0xa4a0('0x11')]('UserNotification,\x20%s,\x20%s',_0x2032c0,_0xa4a0('0x12'));logger[_0xa4a0('0x13')]('UserNotification,\x20%s,\x20%s,\x20%s',_0x2032c0,_0xa4a0('0x12'),JSON[_0xa4a0('0x14')](_0x315594));if(_0x315594[_0xa4a0('0x15')]){if(_0x315594[_0xa4a0('0x15')][_0xa4a0('0x16')]===0x1f4){logger['error'](_0xa4a0('0x17'),_0x2032c0,_0x315594[_0xa4a0('0x15')][_0xa4a0('0x18')]);return _0x29ec47(_0x315594[_0xa4a0('0x15')][_0xa4a0('0x18')]);}logger[_0xa4a0('0x15')](_0xa4a0('0x17'),_0x2032c0,_0x315594[_0xa4a0('0x15')][_0xa4a0('0x18')]);return _0x54e688(_0x315594[_0xa4a0('0x15')]['message']);}else{logger[_0xa4a0('0x11')](_0xa4a0('0x17'),_0x2032c0,_0xa4a0('0x12'));_0x54e688(_0x315594[_0xa4a0('0x19')][_0xa4a0('0x18')]);}})[_0xa4a0('0x1a')](function(_0x3cff52){logger[_0xa4a0('0x15')](_0xa4a0('0x17'),_0x2032c0,_0x3cff52);_0x29ec47(_0x3cff52);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2bf1=['remove','update','emit','register','userNotification:','./userNotification.events'];(function(_0x4792c8,_0x5158a1){var _0x35edb1=function(_0x2472d3){while(--_0x2472d3){_0x4792c8['push'](_0x4792c8['shift']());}};_0x35edb1(++_0x5158a1);}(_0x2bf1,0x149));var _0x12bf=function(_0x2dea24,_0x2fc021){_0x2dea24=_0x2dea24-0x0;var _0x309d58=_0x2bf1[_0x2dea24];return _0x309d58;};'use strict';var UserNotificationEvents=require(_0x12bf('0x0'));var events=['save',_0x12bf('0x1'),_0x12bf('0x2')];function createListener(_0xd7f44a,_0x2bf2be){return function(_0x3d8ad3){_0x2bf2be[_0x12bf('0x3')](_0xd7f44a,_0x3d8ad3);};}function removeListener(_0x48ad96,_0x2df592){return function(){UserNotificationEvents['removeListener'](_0x48ad96,_0x2df592);};}exports[_0x12bf('0x4')]=function(_0x59943b){for(var _0x1a40bc=0x0,_0x275af7=events['length'];_0x1a40bc<_0x275af7;_0x1a40bc++){var _0x2b0754=events[_0x1a40bc];var _0x52c4e3=createListener(_0x12bf('0x5')+_0x2b0754,_0x59943b);UserNotificationEvents['on'](_0x2b0754,_0x52c4e3);}};
\ No newline at end of file
+var _0xf585=['removeListener','register','length','userNotification:','./userNotification.events','save','remove','update','emit'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xf585,0xe5));var _0x5f58=function(_0x50a0c2,_0x4befab){_0x50a0c2=_0x50a0c2-0x0;var _0x5ebadd=_0xf585[_0x50a0c2];return _0x5ebadd;};'use strict';var UserNotificationEvents=require(_0x5f58('0x0'));var events=[_0x5f58('0x1'),_0x5f58('0x2'),_0x5f58('0x3')];function createListener(_0x4a6aed,_0x1dcd33){return function(_0x469f30){_0x1dcd33[_0x5f58('0x4')](_0x4a6aed,_0x469f30);};}function removeListener(_0x38dcc0,_0x5ac1cf){return function(){UserNotificationEvents[_0x5f58('0x5')](_0x38dcc0,_0x5ac1cf);};}exports[_0x5f58('0x6')]=function(_0x36005b){for(var _0x52482c=0x0,_0x1ed84c=events[_0x5f58('0x7')];_0x52482c<_0x1ed84c;_0x52482c++){var _0x3f4af6=events[_0x52482c];var _0x14d83f=createListener(_0x5f58('0x8')+_0x3f4af6,_0x36005b);UserNotificationEvents['on'](_0x3f4af6,_0x14d83f);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9c44=['express','Router','fs-extra','../../components/auth/service','exports','path','connect-timeout'];(function(_0xc98354,_0x3bf67b){var _0x424479=function(_0x2604c7){while(--_0x2604c7){_0xc98354['push'](_0xc98354['shift']());}};_0x424479(++_0x3bf67b);}(_0x9c44,0x178));var _0x49c4=function(_0x1694f5,_0x49b7c3){_0x1694f5=_0x1694f5-0x0;var _0x5b4321=_0x9c44[_0x1694f5];return _0x5b4321;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x49c4('0x0'));var timeout=require(_0x49c4('0x1'));var express=require(_0x49c4('0x2'));var router=express[_0x49c4('0x3')]();var fs_extra=require(_0x49c4('0x4'));var auth=require(_0x49c4('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');module[_0x49c4('0x6')]=router;
\ No newline at end of file
+var _0xd8b0=['Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','multer','util'];(function(_0x50d84b,_0x1d7ea7){var _0x6d4270=function(_0x883f21){while(--_0x883f21){_0x50d84b['push'](_0x50d84b['shift']());}};_0x6d4270(++_0x1d7ea7);}(_0xd8b0,0xad));var _0x0d8b=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0xd8b0[_0xa464c9];return _0x3d73c4;};'use strict';var multer=require(_0x0d8b('0x0'));var util=require(_0x0d8b('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0d8b('0x2')]();var fs_extra=require(_0x0d8b('0x3'));var auth=require(_0x0d8b('0x4'));var interaction=require(_0x0d8b('0x5'));var config=require(_0x0d8b('0x6'));module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x326c=['INTEGER','sequelize'];(function(_0x2f28ee,_0x445b56){var _0xcb9e8=function(_0xf124ec){while(--_0xf124ec){_0x2f28ee['push'](_0x2f28ee['shift']());}};_0xcb9e8(++_0x445b56);}(_0x326c,0xcf));var _0xc326=function(_0x1e4bd6,_0x41b49c){_0x1e4bd6=_0x1e4bd6-0x0;var _0x3e5b15=_0x326c[_0x1e4bd6];return _0x3e5b15;};'use strict';var Sequelize=require(_0xc326('0x0'));module['exports']={'penalty':{'type':Sequelize[_0xc326('0x1')],'defaultValue':0x0}};
\ No newline at end of file
+var _0x5af4=['INTEGER','sequelize','exports'];(function(_0xd9205d,_0x6bee17){var _0x1d09c4=function(_0xb9f802){while(--_0xb9f802){_0xd9205d['push'](_0xd9205d['shift']());}};_0x1d09c4(++_0x6bee17);}(_0x5af4,0xd9));var _0x45af=function(_0x343d35,_0x19fde6){_0x343d35=_0x343d35-0x0;var _0x4cf4f6=_0x5af4[_0x343d35];return _0x4cf4f6;};'use strict';var Sequelize=require(_0x45af('0x0'));module[_0x45af('0x1')]={'penalty':{'type':Sequelize[_0x45af('0x2')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbd8e=['rimraf','../../config/environment','./userOpenchannelQueue.attributes','exports','define','user_has_openchannel_queues','lodash','util','../../config/logger','api','bluebird','request-promise','path'];(function(_0x7b173,_0x539d7f){var _0x1c598c=function(_0xe1e1e0){while(--_0xe1e1e0){_0x7b173['push'](_0x7b173['shift']());}};_0x1c598c(++_0x539d7f);}(_0xbd8e,0x88));var _0xebd8=function(_0x21a9d9,_0x4d5ac8){_0x21a9d9=_0x21a9d9-0x0;var _0x46adce=_0xbd8e[_0x21a9d9];return _0x46adce;};'use strict';var _=require(_0xebd8('0x0'));var util=require(_0xebd8('0x1'));var logger=require(_0xebd8('0x2'))(_0xebd8('0x3'));var moment=require('moment');var BPromise=require(_0xebd8('0x4'));var rp=require(_0xebd8('0x5'));var fs=require('fs');var path=require(_0xebd8('0x6'));var rimraf=require(_0xebd8('0x7'));var config=require(_0xebd8('0x8'));var attributes=require(_0xebd8('0x9'));module[_0xebd8('0xa')]=function(_0x51e609,_0x5917f9){return _0x51e609[_0xebd8('0xb')]('UserOpenchannelQueue',attributes,{'tableName':_0xebd8('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x0f84=['exports','define','UserOpenchannelQueue','user_has_openchannel_queues','../../config/logger','api','bluebird','request-promise','./userOpenchannelQueue.attributes'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x0f84,0x82));var _0x40f8=function(_0x25f0eb,_0x459e27){_0x25f0eb=_0x25f0eb-0x0;var _0x2ccc95=_0x0f84[_0x25f0eb];return _0x2ccc95;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0x40f8('0x0'))(_0x40f8('0x1'));var moment=require('moment');var BPromise=require(_0x40f8('0x2'));var rp=require(_0x40f8('0x3'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0x40f8('0x4'));module[_0x40f8('0x5')]=function(_0x171268,_0x223d37){return _0x171268[_0x40f8('0x6')](_0x40f8('0x7'),attributes,{'tableName':_0x40f8('0x8'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd12c=['client','request','then','info','UserOpenchannelQueue,\x20%s,\x20%s','request\x20sent','UserOpenchannelQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','jayson/promise'];(function(_0x1df65d,_0x15482d){var _0x412396=function(_0x537ad8){while(--_0x537ad8){_0x1df65d['push'](_0x1df65d['shift']());}};_0x412396(++_0x15482d);}(_0xd12c,0x157));var _0xcd12=function(_0x4c9be7,_0x538b4d){_0x4c9be7=_0x4c9be7-0x0;var _0x5250a7=_0xd12c[_0x4c9be7];return _0x5250a7;};'use strict';var _=require(_0xcd12('0x0'));var util=require('util');var moment=require(_0xcd12('0x1'));var BPromise=require(_0xcd12('0x2'));var rs=require(_0xcd12('0x3'));var fs=require('fs');var Redis=require(_0xcd12('0x4'));var db=require(_0xcd12('0x5'))['db'];var utils=require(_0xcd12('0x6'));var logger=require(_0xcd12('0x7'))('rpc');var config=require('../../config/environment');var jayson=require(_0xcd12('0x8'));var client=jayson[_0xcd12('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x33ddd1,_0x233532,_0x319c42){return new BPromise(function(_0x33c29f,_0x2e6c49){return client[_0xcd12('0xa')](_0x33ddd1,_0x319c42)[_0xcd12('0xb')](function(_0x5c5c07){logger[_0xcd12('0xc')](_0xcd12('0xd'),_0x233532,_0xcd12('0xe'));logger['debug'](_0xcd12('0xf'),_0x233532,_0xcd12('0xe'),JSON[_0xcd12('0x10')](_0x5c5c07));if(_0x5c5c07[_0xcd12('0x11')]){if(_0x5c5c07[_0xcd12('0x11')][_0xcd12('0x12')]===0x1f4){logger[_0xcd12('0x11')](_0xcd12('0xd'),_0x233532,_0x5c5c07[_0xcd12('0x11')][_0xcd12('0x13')]);return _0x2e6c49(_0x5c5c07['error'][_0xcd12('0x13')]);}logger[_0xcd12('0x11')](_0xcd12('0xd'),_0x233532,_0x5c5c07[_0xcd12('0x11')][_0xcd12('0x13')]);return _0x33c29f(_0x5c5c07[_0xcd12('0x11')][_0xcd12('0x13')]);}else{logger[_0xcd12('0xc')](_0xcd12('0xd'),_0x233532,_0xcd12('0xe'));_0x33c29f(_0x5c5c07[_0xcd12('0x14')]['message']);}})[_0xcd12('0x15')](function(_0xaaef73){logger['error']('UserOpenchannelQueue,\x20%s,\x20%s',_0x233532,_0xaaef73);_0x2e6c49(_0xaaef73);});});}
\ No newline at end of file
+var _0x8425=['../../config/utils','../../config/logger','rpc','../../config/environment','request','info','UserOpenchannelQueue,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','catch','lodash','moment','bluebird','randomstring','ioredis'];(function(_0x2bf5bd,_0x120787){var _0xc810c0=function(_0xba9dd3){while(--_0xba9dd3){_0x2bf5bd['push'](_0x2bf5bd['shift']());}};_0xc810c0(++_0x120787);}(_0x8425,0x9d));var _0x5842=function(_0x43bc3b,_0x31565e){_0x43bc3b=_0x43bc3b-0x0;var _0x35d773=_0x8425[_0x43bc3b];return _0x35d773;};'use strict';var _=require(_0x5842('0x0'));var util=require('util');var moment=require(_0x5842('0x1'));var BPromise=require(_0x5842('0x2'));var rs=require(_0x5842('0x3'));var fs=require('fs');var Redis=require(_0x5842('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x5842('0x5'));var logger=require(_0x5842('0x6'))(_0x5842('0x7'));var config=require(_0x5842('0x8'));var jayson=require('jayson/promise');var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x285ba0,_0x5b4efd,_0x196d2d){return new BPromise(function(_0x208d64,_0x572b4e){return client[_0x5842('0x9')](_0x285ba0,_0x196d2d)['then'](function(_0x238add){logger[_0x5842('0xa')](_0x5842('0xb'),_0x5b4efd,_0x5842('0xc'));logger['debug']('UserOpenchannelQueue,\x20%s,\x20%s,\x20%s',_0x5b4efd,_0x5842('0xc'),JSON[_0x5842('0xd')](_0x238add));if(_0x238add[_0x5842('0xe')]){if(_0x238add[_0x5842('0xe')][_0x5842('0xf')]===0x1f4){logger[_0x5842('0xe')](_0x5842('0xb'),_0x5b4efd,_0x238add[_0x5842('0xe')][_0x5842('0x10')]);return _0x572b4e(_0x238add[_0x5842('0xe')]['message']);}logger[_0x5842('0xe')](_0x5842('0xb'),_0x5b4efd,_0x238add['error']['message']);return _0x208d64(_0x238add['error'][_0x5842('0x10')]);}else{logger['info'](_0x5842('0xb'),_0x5b4efd,_0x5842('0xc'));_0x208d64(_0x238add['result'][_0x5842('0x10')]);}})[_0x5842('0x11')](function(_0x53a9fc){logger[_0x5842('0xe')](_0x5842('0xb'),_0x5b4efd,_0x53a9fc);_0x572b4e(_0x53a9fc);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2623=['/:id/resources','getResources','post','create','/:id/clone','clone','addResources','put','/:id','update','delete','removeSections','removeResources','util','path','connect-timeout','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','index','isAuthenticated','show','/:id/sections','getSections'];(function(_0x26da64,_0x233800){var _0x48549b=function(_0x56baaf){while(--_0x56baaf){_0x26da64['push'](_0x26da64['shift']());}};_0x48549b(++_0x233800);}(_0x2623,0x8f));var _0x3262=function(_0x25d2fb,_0x18a774){_0x25d2fb=_0x25d2fb-0x0;var _0x1ded53=_0x2623[_0x25d2fb];return _0x1ded53;};'use strict';var multer=require('multer');var util=require(_0x3262('0x0'));var path=require(_0x3262('0x1'));var timeout=require(_0x3262('0x2'));var express=require('express');var router=express['Router']();var fs_extra=require(_0x3262('0x3'));var auth=require(_0x3262('0x4'));var interaction=require(_0x3262('0x5'));var config=require(_0x3262('0x6'));var controller=require('./userProfile.controller');router[_0x3262('0x7')]('/',auth['isAuthenticated'](),controller[_0x3262('0x8')]);router['get']('/describe',auth[_0x3262('0x9')](),controller['describe']);router[_0x3262('0x7')]('/:id',auth[_0x3262('0x9')](),controller[_0x3262('0xa')]);router['get'](_0x3262('0xb'),auth[_0x3262('0x9')](),controller[_0x3262('0xc')]);router[_0x3262('0x7')](_0x3262('0xd'),auth[_0x3262('0x9')](),controller[_0x3262('0xe')]);router[_0x3262('0xf')]('/',auth[_0x3262('0x9')](),controller[_0x3262('0x10')]);router[_0x3262('0xf')](_0x3262('0x11'),auth[_0x3262('0x9')](),controller[_0x3262('0x12')]);router[_0x3262('0xf')](_0x3262('0xb'),auth['isAuthenticated'](),controller['addSections']);router[_0x3262('0xf')](_0x3262('0xd'),auth[_0x3262('0x9')](),controller[_0x3262('0x13')]);router[_0x3262('0x14')](_0x3262('0x15'),auth[_0x3262('0x9')](),controller[_0x3262('0x16')]);router[_0x3262('0x17')](_0x3262('0x15'),auth['isAuthenticated'](),controller['destroy']);router['delete'](_0x3262('0xb'),auth[_0x3262('0x9')](),controller[_0x3262('0x18')]);router[_0x3262('0x17')]('/:id/resources',auth[_0x3262('0x9')](),controller[_0x3262('0x19')]);module['exports']=router;
\ No newline at end of file
+var _0x93b6=['fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./userProfile.controller','get','isAuthenticated','index','/describe','/:id','show','/:id/sections','getSections','getResources','post','create','/:id/clone','clone','addSections','/:id/resources','addResources','put','update','delete','removeSections','removeResources','exports','multer','util','connect-timeout','express'];(function(_0x37b11d,_0x4df80b){var _0x55ab3d=function(_0x5af155){while(--_0x5af155){_0x37b11d['push'](_0x37b11d['shift']());}};_0x55ab3d(++_0x4df80b);}(_0x93b6,0x151));var _0x693b=function(_0x53dd94,_0x28c013){_0x53dd94=_0x53dd94-0x0;var _0x4f311a=_0x93b6[_0x53dd94];return _0x4f311a;};'use strict';var multer=require(_0x693b('0x0'));var util=require(_0x693b('0x1'));var path=require('path');var timeout=require(_0x693b('0x2'));var express=require(_0x693b('0x3'));var router=express['Router']();var fs_extra=require(_0x693b('0x4'));var auth=require(_0x693b('0x5'));var interaction=require(_0x693b('0x6'));var config=require(_0x693b('0x7'));var controller=require(_0x693b('0x8'));router[_0x693b('0x9')]('/',auth[_0x693b('0xa')](),controller[_0x693b('0xb')]);router[_0x693b('0x9')](_0x693b('0xc'),auth['isAuthenticated'](),controller['describe']);router['get'](_0x693b('0xd'),auth[_0x693b('0xa')](),controller[_0x693b('0xe')]);router[_0x693b('0x9')](_0x693b('0xf'),auth[_0x693b('0xa')](),controller[_0x693b('0x10')]);router[_0x693b('0x9')]('/:id/resources',auth[_0x693b('0xa')](),controller[_0x693b('0x11')]);router[_0x693b('0x12')]('/',auth['isAuthenticated'](),controller[_0x693b('0x13')]);router[_0x693b('0x12')](_0x693b('0x14'),auth[_0x693b('0xa')](),controller[_0x693b('0x15')]);router[_0x693b('0x12')](_0x693b('0xf'),auth['isAuthenticated'](),controller[_0x693b('0x16')]);router[_0x693b('0x12')](_0x693b('0x17'),auth[_0x693b('0xa')](),controller[_0x693b('0x18')]);router[_0x693b('0x19')](_0x693b('0xd'),auth[_0x693b('0xa')](),controller[_0x693b('0x1a')]);router[_0x693b('0x1b')](_0x693b('0xd'),auth[_0x693b('0xa')](),controller['destroy']);router[_0x693b('0x1b')](_0x693b('0xf'),auth[_0x693b('0xa')](),controller[_0x693b('0x1c')]);router[_0x693b('0x1b')]('/:id/resources',auth[_0x693b('0xa')](),controller[_0x693b('0x1d')]);module[_0x693b('0x1e')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x78c9=['STRING','BOOLEAN','name','crudPermissions','join','getDataValue','split'];(function(_0x4bc9b0,_0x2f0b98){var _0x1503c7=function(_0x32e70a){while(--_0x32e70a){_0x4bc9b0['push'](_0x4bc9b0['shift']());}};_0x1503c7(++_0x2f0b98);}(_0x78c9,0x198));var _0x978c=function(_0x1188c5,_0x2c4d7d){_0x1188c5=_0x1188c5-0x0;var _0x30ab58=_0x78c9[_0x1188c5];return _0x30ab58;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize['STRING'],'allowNull':![],'unique':_0x978c('0x0')},'crudPermissions':{'type':Sequelize['STRING'],'set':function(_0x48c69c){this['setDataValue'](_0x978c('0x1'),_0x48c69c?_0x48c69c[_0x978c('0x2')](''):[]);},'get':function(){return this['getDataValue'](_0x978c('0x1'))?this[_0x978c('0x3')](_0x978c('0x1'))[_0x978c('0x4')](''):[];},'allowNull':![],'defaultValue':'r'},'description':{'type':Sequelize[_0x978c('0x5')],'allowNull':!![]},'privacyEnabled':{'type':Sequelize[_0x978c('0x6')],'defaultValue':![]},'downloadAttachments':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'downloadCallySquareRecordings':{'type':Sequelize[_0x978c('0x6')],'defaultValue':!![]},'downloadContactManagerLists':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'downloadJscriptySessions':{'type':Sequelize[_0x978c('0x6')],'defaultValue':!![]},'downloadOmnichannelInteractions':{'type':Sequelize[_0x978c('0x6')],'defaultValue':!![]},'downloadScreenRecordings':{'type':Sequelize[_0x978c('0x6')],'defaultValue':!![]},'downloadVoiceRecordings':{'type':Sequelize[_0x978c('0x6')],'defaultValue':!![]}};
\ No newline at end of file
+var _0xf906=['crudPermissions','join','getDataValue','split','BOOLEAN','sequelize','name','STRING','setDataValue'];(function(_0x5378be,_0x5d4e61){var _0x43dd5e=function(_0x2dc56f){while(--_0x2dc56f){_0x5378be['push'](_0x5378be['shift']());}};_0x43dd5e(++_0x5d4e61);}(_0xf906,0xb9));var _0x6f90=function(_0x164a00,_0x548e17){_0x164a00=_0x164a00-0x0;var _0x39c8bd=_0xf906[_0x164a00];return _0x39c8bd;};'use strict';var Sequelize=require(_0x6f90('0x0'));module['exports']={'name':{'type':Sequelize['STRING'],'allowNull':![],'unique':_0x6f90('0x1')},'crudPermissions':{'type':Sequelize[_0x6f90('0x2')],'set':function(_0xe317da){this[_0x6f90('0x3')](_0x6f90('0x4'),_0xe317da?_0xe317da[_0x6f90('0x5')](''):[]);},'get':function(){return this[_0x6f90('0x6')](_0x6f90('0x4'))?this[_0x6f90('0x6')](_0x6f90('0x4'))[_0x6f90('0x7')](''):[];},'allowNull':![],'defaultValue':'r'},'description':{'type':Sequelize[_0x6f90('0x2')],'allowNull':!![]},'privacyEnabled':{'type':Sequelize[_0x6f90('0x8')],'defaultValue':![]},'downloadAttachments':{'type':Sequelize[_0x6f90('0x8')],'defaultValue':!![]},'downloadCallySquareRecordings':{'type':Sequelize[_0x6f90('0x8')],'defaultValue':!![]},'downloadContactManagerLists':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'downloadJscriptySessions':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'downloadOmnichannelInteractions':{'type':Sequelize[_0x6f90('0x8')],'defaultValue':!![]},'downloadScreenRecordings':{'type':Sequelize[_0x6f90('0x8')],'defaultValue':!![]},'downloadVoiceRecordings':{'type':Sequelize[_0x6f90('0x8')],'defaultValue':!![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfbbb=['destroy','then','error','stack','name','send','index','map','UserProfile','rawAttributes','fieldName','model','keys','query','filters','intersection','attributes','fields','length','nolimit','order','sort','where','pick','filter','merge','type','VIRTUAL','includeAll','include','findAll','rows','show','params','options','find','catch','create','body','clone','get','omit','createdAt','updatedAt','sequelize','transaction','each','autoAssociation','UserProfileResource','sectionId','Resources','UserProfileSection','describe','addSections','push','removeSections','ids','getSections','enabled','includes','subsections','findOne','Dashboard','forEach','Plugin','resourceId','addResources','userProfileId','bulkCreate','removeResources','getResources','section','Missing\x20section\x20parameter','hasOwnProperty','No\x20User\x20Profile\x20found\x20for\x20id\x20','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','to-csv','fs-extra','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','./userProfile.socket','register','sendStatus','status','end','undefined','limit','count','offset','set','Content-Range','json','apply','reject','save','update'];(function(_0x50ee78,_0x3382a7){var _0x68bf5a=function(_0x2c8722){while(--_0x2c8722){_0x50ee78['push'](_0x50ee78['shift']());}};_0x68bf5a(++_0x3382a7);}(_0xfbbb,0x1b3));var _0xbfbb=function(_0x3f4b38,_0x2afa50){_0x3f4b38=_0x3f4b38-0x0;var _0x3b0a60=_0xfbbb[_0x3f4b38];return _0x3b0a60;};'use strict';var emlformat=require(_0xbfbb('0x0'));var rimraf=require(_0xbfbb('0x1'));var zipdir=require(_0xbfbb('0x2'));var jsonpatch=require(_0xbfbb('0x3'));var rp=require(_0xbfbb('0x4'));var moment=require(_0xbfbb('0x5'));var BPromise=require(_0xbfbb('0x6'));var Mustache=require(_0xbfbb('0x7'));var util=require(_0xbfbb('0x8'));var path=require('path');var sox=require('sox');var csv=require(_0xbfbb('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xbfbb('0xa'));var _=require(_0xbfbb('0xb'));var squel=require(_0xbfbb('0xc'));var crypto=require('crypto');var jsforce=require(_0xbfbb('0xd'));var deskjs=require(_0xbfbb('0xe'));var toCsv=require(_0xbfbb('0x9'));var querystring=require(_0xbfbb('0xf'));var Papa=require(_0xbfbb('0x10'));var Redis=require(_0xbfbb('0x11'));var authService=require('../../components/auth/service');var qs=require(_0xbfbb('0x12'));var as=require(_0xbfbb('0x13'));var hardwareService=require(_0xbfbb('0x14'));var logger=require(_0xbfbb('0x15'))('api');var utils=require(_0xbfbb('0x16'));var config=require(_0xbfbb('0x17'));var licenseUtil=require(_0xbfbb('0x18'));var db=require(_0xbfbb('0x19'))['db'];config[_0xbfbb('0x1a')]=_[_0xbfbb('0x1b')](config[_0xbfbb('0x1a')],{'host':_0xbfbb('0x1c'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xbfbb('0x1a')]));require(_0xbfbb('0x1d'))[_0xbfbb('0x1e')](socket);function respondWithStatusCode(_0x23cba2,_0xb6b36f){_0xb6b36f=_0xb6b36f||0xcc;return function(_0x59c1f2){if(_0x59c1f2){return _0x23cba2[_0xbfbb('0x1f')](_0xb6b36f);}return _0x23cba2[_0xbfbb('0x20')](_0xb6b36f)[_0xbfbb('0x21')]();};}function respondWithResult(_0xe0e3aa,_0x200810){_0x200810=_0x200810||0xc8;return function(_0x422c91){if(_0x422c91){return _0xe0e3aa[_0xbfbb('0x20')](_0x200810)['json'](_0x422c91);}};}function respondWithFilteredResult(_0x4fdd6d,_0xb1eb99){return function(_0x4be5df){if(_0x4be5df){var _0xc18041=typeof _0xb1eb99['offset']===_0xbfbb('0x22')&&typeof _0xb1eb99[_0xbfbb('0x23')]===_0xbfbb('0x22');var _0xa911a8=_0x4be5df[_0xbfbb('0x24')];var _0x52fcef=_0xc18041?0x0:_0xb1eb99[_0xbfbb('0x25')];var _0x4a9ffc=_0xc18041?_0x4be5df[_0xbfbb('0x24')]:_0xb1eb99[_0xbfbb('0x25')]+_0xb1eb99[_0xbfbb('0x23')];var _0x10b77c;if(_0x4a9ffc>=_0xa911a8){_0x4a9ffc=_0xa911a8;_0x10b77c=0xc8;}else{_0x10b77c=0xce;}_0x4fdd6d[_0xbfbb('0x20')](_0x10b77c);return _0x4fdd6d[_0xbfbb('0x26')](_0xbfbb('0x27'),_0x52fcef+'-'+_0x4a9ffc+'/'+_0xa911a8)[_0xbfbb('0x28')](_0x4be5df);}return null;};}function patchUpdates(_0x4fe886){return function(_0x2b935b){try{jsonpatch[_0xbfbb('0x29')](_0x2b935b,_0x4fe886,!![]);}catch(_0x5e0cbb){return BPromise[_0xbfbb('0x2a')](_0x5e0cbb);}return _0x2b935b[_0xbfbb('0x2b')]();};}function saveUpdates(_0x44bf61,_0x26b9d6){return function(_0x5adf09){if(_0x5adf09){return _0x5adf09[_0xbfbb('0x2c')](_0x44bf61)['then'](function(_0x151342){return _0x151342;});}return null;};}function removeEntity(_0x34e580,_0x400efb){return function(_0x23308c){if(_0x23308c){return _0x23308c[_0xbfbb('0x2d')]()[_0xbfbb('0x2e')](function(){_0x34e580[_0xbfbb('0x20')](0xcc)[_0xbfbb('0x21')]();});}};}function handleEntityNotFound(_0x1bb8d6,_0x3db9c6){return function(_0x217750){if(!_0x217750){_0x1bb8d6[_0xbfbb('0x1f')](0x194);}return _0x217750;};}function handleError(_0x28c7bb,_0x153895){_0x153895=_0x153895||0x1f4;return function(_0x5c9295){logger[_0xbfbb('0x2f')](_0x5c9295[_0xbfbb('0x30')]);if(_0x5c9295[_0xbfbb('0x31')]){delete _0x5c9295[_0xbfbb('0x31')];}_0x28c7bb['status'](_0x153895)[_0xbfbb('0x32')](_0x5c9295);};}exports[_0xbfbb('0x33')]=function(_0x303f3b,_0x4ff37e){var _0x1a5afe={},_0x37976b={},_0x1e59db={'count':0x0,'rows':[]};var _0x1d5f19=_[_0xbfbb('0x34')](db[_0xbfbb('0x35')][_0xbfbb('0x36')],function(_0x1208ad){return{'name':_0x1208ad[_0xbfbb('0x37')],'type':_0x1208ad['type']['key']};});_0x37976b[_0xbfbb('0x38')]=_[_0xbfbb('0x34')](_0x1d5f19,_0xbfbb('0x31'));_0x37976b['query']=_[_0xbfbb('0x39')](_0x303f3b[_0xbfbb('0x3a')]);_0x37976b[_0xbfbb('0x3b')]=_[_0xbfbb('0x3c')](_0x37976b['model'],_0x37976b[_0xbfbb('0x3a')]);_0x1a5afe[_0xbfbb('0x3d')]=_['intersection'](_0x37976b[_0xbfbb('0x38')],qs[_0xbfbb('0x3e')](_0x303f3b[_0xbfbb('0x3a')]['fields']));_0x1a5afe['attributes']=_0x1a5afe[_0xbfbb('0x3d')][_0xbfbb('0x3f')]?_0x1a5afe['attributes']:_0x37976b[_0xbfbb('0x38')];if(!_0x303f3b[_0xbfbb('0x3a')]['hasOwnProperty'](_0xbfbb('0x40'))){_0x1a5afe['limit']=qs[_0xbfbb('0x23')](_0x303f3b['query'][_0xbfbb('0x23')]);_0x1a5afe['offset']=qs[_0xbfbb('0x25')](_0x303f3b[_0xbfbb('0x3a')][_0xbfbb('0x25')]);}_0x1a5afe[_0xbfbb('0x41')]=qs[_0xbfbb('0x42')](_0x303f3b[_0xbfbb('0x3a')]['sort']);_0x1a5afe[_0xbfbb('0x43')]=qs[_0xbfbb('0x3b')](_[_0xbfbb('0x44')](_0x303f3b[_0xbfbb('0x3a')],_0x37976b[_0xbfbb('0x3b')]),_0x1d5f19);if(_0x303f3b[_0xbfbb('0x3a')][_0xbfbb('0x45')]){_0x1a5afe[_0xbfbb('0x43')]=_[_0xbfbb('0x46')](_0x1a5afe[_0xbfbb('0x43')],{'$or':_[_0xbfbb('0x34')](_0x1d5f19,function(_0xaeed2b){if(_0xaeed2b[_0xbfbb('0x47')]!==_0xbfbb('0x48')){var _0x1042ba={};_0x1042ba[_0xaeed2b[_0xbfbb('0x31')]]={'$like':'%'+_0x303f3b[_0xbfbb('0x3a')][_0xbfbb('0x45')]+'%'};return _0x1042ba;}})});}_0x1a5afe=_[_0xbfbb('0x46')]({},_0x1a5afe,_0x303f3b['options']);var _0x568097={'where':_0x1a5afe[_0xbfbb('0x43')]};return db['UserProfile'][_0xbfbb('0x24')](_0x568097)[_0xbfbb('0x2e')](function(_0x325105){_0x1e59db[_0xbfbb('0x24')]=_0x325105;if(_0x303f3b[_0xbfbb('0x3a')][_0xbfbb('0x49')]){_0x1a5afe[_0xbfbb('0x4a')]=[{'all':!![]}];}return db[_0xbfbb('0x35')][_0xbfbb('0x4b')](_0x1a5afe);})[_0xbfbb('0x2e')](function(_0x2d8690){_0x1e59db[_0xbfbb('0x4c')]=_0x2d8690;return _0x1e59db;})[_0xbfbb('0x2e')](respondWithFilteredResult(_0x4ff37e,_0x1a5afe))['catch'](handleError(_0x4ff37e,null));};exports[_0xbfbb('0x4d')]=function(_0x40b205,_0xd3c42d){var _0x52e2f5={'raw':![],'where':{'id':_0x40b205[_0xbfbb('0x4e')]['id']}},_0x2c3547={};_0x2c3547[_0xbfbb('0x38')]=_[_0xbfbb('0x39')](db[_0xbfbb('0x35')][_0xbfbb('0x36')]);_0x2c3547[_0xbfbb('0x3a')]=_[_0xbfbb('0x39')](_0x40b205['query']);_0x2c3547[_0xbfbb('0x3b')]=_[_0xbfbb('0x3c')](_0x2c3547[_0xbfbb('0x38')],_0x2c3547['query']);_0x52e2f5[_0xbfbb('0x3d')]=_['intersection'](_0x2c3547['model'],qs['fields'](_0x40b205[_0xbfbb('0x3a')][_0xbfbb('0x3e')]));_0x52e2f5[_0xbfbb('0x3d')]=_0x52e2f5[_0xbfbb('0x3d')][_0xbfbb('0x3f')]?_0x52e2f5[_0xbfbb('0x3d')]:_0x2c3547['model'];if(_0x40b205[_0xbfbb('0x3a')]['includeAll']){_0x52e2f5[_0xbfbb('0x4a')]=[{'all':!![]}];}_0x52e2f5=_[_0xbfbb('0x46')]({},_0x52e2f5,_0x40b205[_0xbfbb('0x4f')]);return db[_0xbfbb('0x35')][_0xbfbb('0x50')](_0x52e2f5)[_0xbfbb('0x2e')](handleEntityNotFound(_0xd3c42d,null))[_0xbfbb('0x2e')](respondWithResult(_0xd3c42d,null))[_0xbfbb('0x51')](handleError(_0xd3c42d,null));};exports[_0xbfbb('0x52')]=function(_0x342f9d,_0x45aac7){return db[_0xbfbb('0x35')][_0xbfbb('0x52')](_0x342f9d[_0xbfbb('0x53')],{})[_0xbfbb('0x2e')](respondWithResult(_0x45aac7,0xc9))[_0xbfbb('0x51')](handleError(_0x45aac7,null));};exports[_0xbfbb('0x54')]=function(_0x43195b,_0x35a7e9){var _0x5646e2={'where':{'id':_0x43195b[_0xbfbb('0x4e')]['id']}},_0x8c8166={};_0x8c8166[_0xbfbb('0x38')]=_[_0xbfbb('0x39')](db[_0xbfbb('0x35')]['rawAttributes']);_0x5646e2[_0xbfbb('0x3d')]=_['intersection'](_0x8c8166[_0xbfbb('0x38')],qs[_0xbfbb('0x3e')](_0x43195b[_0xbfbb('0x3a')][_0xbfbb('0x3e')]));_0x5646e2['attributes']=_0x5646e2[_0xbfbb('0x3d')][_0xbfbb('0x3f')]?_0x5646e2[_0xbfbb('0x3d')]:_0x8c8166[_0xbfbb('0x38')];if(_0x43195b['query'][_0xbfbb('0x49')]){_0x5646e2['include']=[{'all':!![]}];}_0x5646e2=_[_0xbfbb('0x46')]({},_0x5646e2,_0x43195b[_0xbfbb('0x4f')]);return db[_0xbfbb('0x35')]['find'](_0x5646e2)['then'](handleEntityNotFound(_0x35a7e9,null))[_0xbfbb('0x2e')](function(_0x428ddf){if(_0x428ddf){var _0x464acb=_0x428ddf[_0xbfbb('0x55')]({'plain':!![]});_0x464acb=qs[_0xbfbb('0x56')](_0x464acb,['id',_0xbfbb('0x57'),_0xbfbb('0x58'),'crudPermissions']);_0x43195b[_0xbfbb('0x53')]=_[_0xbfbb('0x56')](_0x43195b[_0xbfbb('0x53')],['id',_0xbfbb('0x57'),'updatedAt']);return db[_0xbfbb('0x59')][_0xbfbb('0x5a')](function(_0x57debb){return db[_0xbfbb('0x35')][_0xbfbb('0x52')](_[_0xbfbb('0x46')](_0x464acb,_0x43195b[_0xbfbb('0x53')]),{'include':_0x43195b['query'][_0xbfbb('0x49')]?[{'all':!![]}]:undefined,'transaction':_0x57debb})[_0xbfbb('0x2e')](function(_0x332a15){var _0x738565=_0x332a15[_0xbfbb('0x55')]({'plain':!![]});return db['UserProfileSection'][_0xbfbb('0x4b')]({'where':{'userProfileId':_0x43195b[_0xbfbb('0x4e')]['id']},'raw':!![]})['then'](function(_0x4689d6){if(_0x4689d6){return BPromise[_0xbfbb('0x5b')](_0x4689d6,function(_0x49038b){return new BPromise(function(_0x5062a7,_0x235bc4){if(_0x49038b[_0xbfbb('0x5c')]===null||_0x49038b[_0xbfbb('0x5c')]===0x1)_0x5062a7(null);return db[_0xbfbb('0x5d')]['findAll']({'where':{'sectionId':_0x49038b['id']},'raw':!![]})['then'](function(_0x484533){var _0x348ffc=_['map'](_0x484533,function(_0x32a4d3){return qs['omit'](_0x32a4d3,['id',_0xbfbb('0x57'),_0xbfbb('0x58'),_0xbfbb('0x5e')]);});_0x5062a7(_0x348ffc);})[_0xbfbb('0x51')](function(_0x5f19f0){_0x235bc4(_0x5f19f0);});})[_0xbfbb('0x2e')](function(_0x544afe){var _0x547d99=qs[_0xbfbb('0x56')](_0x49038b,['id',_0xbfbb('0x57'),_0xbfbb('0x58')]);_0x547d99['userProfileId']=_0x738565['id'];if(_0x544afe)_0x547d99[_0xbfbb('0x5f')]=_0x544afe;return _0x547d99;})[_0xbfbb('0x2e')](function(_0x506a6e){return db[_0xbfbb('0x60')][_0xbfbb('0x52')](_0x506a6e,{'include':[{'model':db[_0xbfbb('0x5d')],'as':_0xbfbb('0x5f')}],'raw':!![],'transaction':_0x57debb});});})[_0xbfbb('0x2e')](function(){return _0x738565;});}});});});}})['then'](respondWithResult(_0x35a7e9,0xc9))[_0xbfbb('0x51')](handleError(_0x35a7e9,null));};exports['update']=function(_0x2a183f,_0x21bd4d){if(_0x2a183f[_0xbfbb('0x53')]['id']){delete _0x2a183f['body']['id'];}return db['UserProfile'][_0xbfbb('0x50')]({'where':{'id':_0x2a183f[_0xbfbb('0x4e')]['id']}})[_0xbfbb('0x2e')](handleEntityNotFound(_0x21bd4d,null))[_0xbfbb('0x2e')](saveUpdates(_0x2a183f[_0xbfbb('0x53')],null))['then'](respondWithResult(_0x21bd4d,null))['catch'](handleError(_0x21bd4d,null));};exports[_0xbfbb('0x2d')]=function(_0x5c2bc5,_0x2391f3){return db[_0xbfbb('0x35')][_0xbfbb('0x50')]({'where':{'id':_0x5c2bc5['params']['id']}})[_0xbfbb('0x2e')](handleEntityNotFound(_0x2391f3,null))['then'](removeEntity(_0x2391f3,null))[_0xbfbb('0x51')](handleError(_0x2391f3,null));};exports[_0xbfbb('0x61')]=function(_0x45111a,_0x315ea1){return db[_0xbfbb('0x35')][_0xbfbb('0x61')]()[_0xbfbb('0x2e')](respondWithResult(_0x315ea1,null))[_0xbfbb('0x51')](handleError(_0x315ea1,null));};exports[_0xbfbb('0x62')]=function(_0x4dd49c,_0x20ad61){var _0x34ab26=_0x4dd49c[_0xbfbb('0x53')];return db[_0xbfbb('0x35')]['find']({'where':{'id':_0x4dd49c['params']['id']}})['then'](handleEntityNotFound(_0x20ad61,null))[_0xbfbb('0x2e')](function(_0x24c3b0){if(_0x24c3b0){return db[_0xbfbb('0x59')][_0xbfbb('0x5a')](function(_0x4541d9){return db[_0xbfbb('0x60')][_0xbfbb('0x2d')]({'where':{'userProfileId':_0x4dd49c[_0xbfbb('0x4e')]['id'],'sectionId':_['map'](_0x34ab26,function(_0x30db4f){return _0x30db4f[_0xbfbb('0x5e')];})},'transaction':_0x4541d9})[_0xbfbb('0x2e')](function(){var _0xb0f0d=_[_0xbfbb('0x34')](_0x34ab26,function(_0x266137){_0x266137['userProfileId']=_0x4dd49c[_0xbfbb('0x4e')]['id'];return _0x266137;});var _0x40a697=[];return BPromise[_0xbfbb('0x5b')](_0xb0f0d,function(_0x50cbb3){return db[_0xbfbb('0x60')][_0xbfbb('0x52')](_0x50cbb3,{'include':[{'model':db[_0xbfbb('0x5d')],'as':'Resources'}],'raw':!![],'transaction':_0x4541d9})[_0xbfbb('0x2e')](function(_0x1d14e2){_0x40a697[_0xbfbb('0x63')](_0x1d14e2[_0xbfbb('0x55')]({'plain':!![]}));});})[_0xbfbb('0x2e')](function(){return _0x40a697;});});});}})[_0xbfbb('0x2e')](function(_0x3718a3){return _0x3718a3;})['then'](respondWithResult(_0x20ad61,null))[_0xbfbb('0x51')](handleError(_0x20ad61,null));};exports[_0xbfbb('0x64')]=function(_0x2fda12,_0x345784){var _0x45aeaa;return db[_0xbfbb('0x35')][_0xbfbb('0x50')]({'where':{'id':_0x2fda12[_0xbfbb('0x4e')]['id']},'attributes':['id','name']})[_0xbfbb('0x2e')](handleEntityNotFound(_0x345784,null))['then'](function(_0x32e901){if(_0x32e901){_0x45aeaa=_0x32e901;return db[_0xbfbb('0x60')][_0xbfbb('0x2d')]({'where':{'userProfileId':_0x2fda12['params']['id'],'sectionId':_0x2fda12[_0xbfbb('0x3a')][_0xbfbb('0x65')]}});}})['then'](function(){return _0x45aeaa;})['then'](respondWithStatusCode(_0x345784,null))[_0xbfbb('0x51')](handleError(_0x345784,null));};exports[_0xbfbb('0x66')]=function(_0x1a52b2,_0x23814a){var _0x41066e=[];var _0x114a1f=[];return db['UserProfileSection']['findAll']({'where':{'userProfileId':_0x1a52b2['params']['id']},'raw':!![]})[_0xbfbb('0x2e')](function(_0xd5f3ac){_0x41066e=_['filter'](_0xd5f3ac,function(_0x43b232){return _0x43b232[_0xbfbb('0x67')]===0x1||_[_0xbfbb('0x68')]([0x3eb,0x709],_0x43b232['sectionId']);});if(!_['isEmpty'](_0x41066e)){return _[_0xbfbb('0x34')](_0x41066e,function(_0x545579){return _0x545579[_0xbfbb('0x5e')];});}else{return;}})[_0xbfbb('0x2e')](function(_0x5eaac2){if(_0x5eaac2)_0x114a1f=_0x5eaac2;if(_[_0xbfbb('0x68')](_0x114a1f,0x64)){var _0x59055a=_['find'](_0x41066e,{'sectionId':0x64});return hasDefaultDashboard(_0x59055a)[_0xbfbb('0x2e')](function(_0x4fe247){return _[_0xbfbb('0x34')](_0x41066e,function(_0x5edb64){if(_0x5edb64['sectionId']===0x64){_0x5edb64['subsections']=_0x4fe247;}return _0x5edb64;});});}else{return;}})[_0xbfbb('0x2e')](function(_0x61caa0){if(_0x61caa0)_0x41066e=_0x61caa0;if(_[_0xbfbb('0x68')](_0x114a1f,0x3eb)){var _0x4bae1f=_[_0xbfbb('0x50')](_0x41066e,{'sectionId':0x3eb});return getCustomDashboards(_0x4bae1f)[_0xbfbb('0x2e')](function(_0x3c5e9a){return _[_0xbfbb('0x34')](_0x41066e,function(_0x1b3863){if(_0x4bae1f[_0xbfbb('0x67')]){if(_0x1b3863[_0xbfbb('0x5e')]===0x3eb){_0x1b3863[_0xbfbb('0x69')]=_0x3c5e9a;}}else{if(_0x1b3863[_0xbfbb('0x5e')]===0x64){_0x1b3863[_0xbfbb('0x69')]=_0x3c5e9a;}}return _0x1b3863;});});}else{return;}})[_0xbfbb('0x2e')](function(_0x498715){if(_0x498715)_0x41066e=_0x498715;if(_[_0xbfbb('0x68')](_0x114a1f,0x709)){var _0x3f5e37=_[_0xbfbb('0x50')](_0x41066e,{'sectionId':0x709});return getPlugins(_0x3f5e37)['then'](function(_0x4ea3fd){if(_0x3f5e37['enabled']){return _[_0xbfbb('0x34')](_0x41066e,function(_0x33fa2b){if(_0x33fa2b['sectionId']===0x709){_0x33fa2b[_0xbfbb('0x69')]=_0x4ea3fd;}return _0x33fa2b;});}else{var _0x26fa09={'sectionId':0x76c,'enabled':0x1,'subsections':_0x4ea3fd};var _0x11fbeb=_[_0xbfbb('0x34')](_0x41066e);_0x11fbeb[_0xbfbb('0x63')](_0x26fa09);return _0x11fbeb;}});}else{return;}})[_0xbfbb('0x2e')](function(_0x578221){if(_0x578221)_0x41066e=_0x578221;return _[_0xbfbb('0x45')](_0x41066e,[_0xbfbb('0x67'),0x1]);})[_0xbfbb('0x2e')](respondWithResult(_0x23814a,null))[_0xbfbb('0x51')](handleError(_0x23814a,null));};function hasDefaultDashboard(_0x30e32c){var _0x877e16=[0x65];return new BPromise(function(_0x2cd58a,_0x3d13f8){try{if(_0x30e32c[_0xbfbb('0x5c')]){_0x2cd58a(_0x877e16);}else{return db[_0xbfbb('0x5d')][_0xbfbb('0x6a')]({'where':{'sectionId':_0x30e32c['id']},'raw':!![]})['then'](function(_0x1143bc){_0x1143bc?_0x2cd58a(_0x877e16):_0x2cd58a();});}}catch(_0x5f1035){_0x3d13f8(_0x5f1035);}});}function getCustomDashboards(_0x2a09f8){var _0x55067d=[];return new BPromise(function(_0x9dbbf9,_0x3f0dc9){try{if(_0x2a09f8[_0xbfbb('0x5c')]){return db[_0xbfbb('0x6b')]['findAll']({'raw':!![]})[_0xbfbb('0x2e')](function(_0x486124){_0x486124[_0xbfbb('0x6c')](function(_0x2c676b){_0x55067d[_0xbfbb('0x63')](_0x2c676b['id']+0x1869f);});_0x9dbbf9(_0x55067d);});}else{return db[_0xbfbb('0x5d')][_0xbfbb('0x4b')]({'where':{'sectionId':_0x2a09f8['id']},'raw':!![]})[_0xbfbb('0x2e')](function(_0x4aa3b3){_0x4aa3b3[_0xbfbb('0x6c')](function(_0x5c52bc){_0x55067d['push'](_0x5c52bc['resourceId']+0x1869f);});_0x9dbbf9(_0x55067d);});}}catch(_0x9a355a){_0x3f0dc9(_0x9a355a);}});}function getPlugins(_0x409fcc){var _0x435814=[];return new BPromise(function(_0x3a6819,_0x49d0f5){try{if(_0x409fcc[_0xbfbb('0x5c')]){return db[_0xbfbb('0x6d')][_0xbfbb('0x4b')]({'raw':!![]})[_0xbfbb('0x2e')](function(_0x29ddba){_0x29ddba['forEach'](function(_0xd4f3c5){_0x435814['push'](_0xd4f3c5['id']+0x15b38);});_0x3a6819(_0x435814);});}else{return db[_0xbfbb('0x5d')]['findAll']({'where':{'sectionId':_0x409fcc['id']},'raw':!![]})[_0xbfbb('0x2e')](function(_0x360a36){_0x360a36[_0xbfbb('0x6c')](function(_0x45ac9d){_0x435814[_0xbfbb('0x63')](_0x45ac9d[_0xbfbb('0x6e')]+0x15b38);});_0x3a6819(_0x435814);});}}catch(_0x118f67){_0x49d0f5(_0x118f67);}});}exports[_0xbfbb('0x6f')]=function(_0x16f7bd,_0x5c9114){return db['UserProfile'][_0xbfbb('0x50')]({'where':{'id':_0x16f7bd[_0xbfbb('0x4e')]['id']}})[_0xbfbb('0x2e')](handleEntityNotFound(_0x5c9114,null))[_0xbfbb('0x2e')](function(_0x143e06){if(_0x143e06){return db[_0xbfbb('0x59')][_0xbfbb('0x5a')](function(_0x1cd894){return db['UserProfileSection'][_0xbfbb('0x4b')]({'where':{'userProfileId':_0x16f7bd['params']['id']},'attributes':['id'],'raw':!![]})[_0xbfbb('0x2e')](function(_0x264214){if(_0x264214){return db[_0xbfbb('0x60')][_0xbfbb('0x2d')]({'where':{'userProfileId':_0x16f7bd[_0xbfbb('0x4e')]['id'],'id':_[_0xbfbb('0x34')](_0x264214,function(_0x4dea86){return _0x4dea86['id'];})},'transaction':_0x1cd894});}})[_0xbfbb('0x2e')](function(_0x2eab21){var _0x39c9e4=_[_0xbfbb('0x34')](_0x16f7bd['body'],function(_0x5c0d45){_0x5c0d45[_0xbfbb('0x70')]=_0x16f7bd[_0xbfbb('0x4e')]['id'];return _0x5c0d45;});return db[_0xbfbb('0x60')][_0xbfbb('0x71')](_0x39c9e4,{'raw':!![],'transaction':_0x1cd894});})[_0xbfbb('0x2e')](function(_0x1852a2){var _0x1220c5=_[_0xbfbb('0x45')](_[_0xbfbb('0x34')](_0x1852a2,function(_0x3686a7){return _0x3686a7[_0xbfbb('0x55')]({'plain':!![]});}),{'includeAll':![]});if(_0x1220c5){return db[_0xbfbb('0x60')][_0xbfbb('0x4b')]({'where':{'userProfileId':_0x16f7bd[_0xbfbb('0x4e')]['id'],'sectionId':_[_0xbfbb('0x34')](_0x1220c5,function(_0x3ac155){return _0x3ac155['sectionId'];})},'attributes':['id',_0xbfbb('0x5e')],'raw':!![]})[_0xbfbb('0x2e')](function(_0x510ed0){var _0x4e17c0=_['map'](_0x16f7bd[_0xbfbb('0x53')],function(_0x3eebdd){_0x3eebdd[_0xbfbb('0x70')]=_0x16f7bd[_0xbfbb('0x4e')]['id'];return _0x3eebdd;});return db[_0xbfbb('0x5d')]['bulkCreate'](_0x4e17c0,{'raw':!![],'transaction':_0x1cd894});});}})[_0xbfbb('0x51')](handleError(_0x5c9114,null));});}})['then'](function(_0x1f652c){var _0x5ec718=_['map'](_0x1f652c,function(_0x17d233){return _0x17d233['get']({'plain':!![]});});})[_0xbfbb('0x2e')](respondWithResult(_0x5c9114,null))[_0xbfbb('0x51')](handleError(_0x5c9114,null));};exports['removeResources']=function(_0x1b634f,_0x127e59,_0x27e63d){return db[_0xbfbb('0x35')][_0xbfbb('0x50')]({'where':{'id':_0x1b634f[_0xbfbb('0x4e')]['id']}})[_0xbfbb('0x2e')](handleEntityNotFound(_0x127e59,null))[_0xbfbb('0x2e')](function(_0x3534e3){if(_0x3534e3){return _0x3534e3[_0xbfbb('0x72')](_0x1b634f['query']['ids']);}})[_0xbfbb('0x2e')](respondWithStatusCode(_0x127e59,null))[_0xbfbb('0x51')](handleError(_0x127e59,null));};exports[_0xbfbb('0x73')]=function(_0x13cbdc,_0x5dc2de){var _0x2efb84={};if(!_0x13cbdc[_0xbfbb('0x3a')][_0xbfbb('0x74')])throw new Error(_0xbfbb('0x75'));if(!_0x13cbdc[_0xbfbb('0x3a')][_0xbfbb('0x76')](_0xbfbb('0x40'))){_0x2efb84['limit']=qs['limit'](_0x13cbdc[_0xbfbb('0x3a')][_0xbfbb('0x23')]);_0x2efb84[_0xbfbb('0x25')]=qs['offset'](_0x13cbdc[_0xbfbb('0x3a')]['offset']);}return db[_0xbfbb('0x35')]['find']({'where':{'id':_0x13cbdc['params']['id']}})['then'](function(_0x4bf89d){if(!_0x4bf89d)throw new Error(_0xbfbb('0x77')+_0x13cbdc['params']['id']);return db[_0xbfbb('0x35')]['getResources'](_0x13cbdc);})[_0xbfbb('0x2e')](respondWithFilteredResult(_0x5dc2de,_0x2efb84))['catch'](handleError(_0x5dc2de,null));};
\ No newline at end of file
+var _0x4213=['getResources','section','Missing\x20section\x20parameter','hasOwnProperty','No\x20User\x20Profile\x20found\x20for\x20id\x20','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','papaparse','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./userProfile.socket','register','sendStatus','status','offset','undefined','limit','count','set','Content-Range','json','apply','reject','update','then','destroy','end','error','name','send','UserProfile','fieldName','type','key','model','map','query','keys','intersection','fields','attributes','length','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','catch','rawAttributes','filters','create','clone','params','omit','createdAt','updatedAt','body','sequelize','transaction','get','UserProfileSection','each','autoAssociation','UserProfileResource','sectionId','Resources','find','describe','addSections','push','removeSections','ids','getSections','enabled','includes','isEmpty','subsections','forEach','Plugin','resourceId','userProfileId','bulkCreate','removeResources'];(function(_0x4ff09b,_0x53f67d){var _0x3f5c2e=function(_0x124592){while(--_0x124592){_0x4ff09b['push'](_0x4ff09b['shift']());}};_0x3f5c2e(++_0x53f67d);}(_0x4213,0x77));var _0x3421=function(_0x39c7d9,_0x243320){_0x39c7d9=_0x39c7d9-0x0;var _0x5b0638=_0x4213[_0x39c7d9];return _0x5b0638;};'use strict';var emlformat=require(_0x3421('0x0'));var rimraf=require(_0x3421('0x1'));var zipdir=require(_0x3421('0x2'));var jsonpatch=require(_0x3421('0x3'));var rp=require(_0x3421('0x4'));var moment=require(_0x3421('0x5'));var BPromise=require(_0x3421('0x6'));var Mustache=require('mustache');var util=require(_0x3421('0x7'));var path=require('path');var sox=require(_0x3421('0x8'));var csv=require(_0x3421('0x9'));var ejs=require(_0x3421('0xa'));var fs=require('fs');var fs_extra=require(_0x3421('0xb'));var _=require('lodash');var squel=require(_0x3421('0xc'));var crypto=require(_0x3421('0xd'));var jsforce=require(_0x3421('0xe'));var deskjs=require(_0x3421('0xf'));var toCsv=require(_0x3421('0x9'));var querystring=require('querystring');var Papa=require(_0x3421('0x10'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x3421('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x3421('0x12'));var logger=require(_0x3421('0x13'))(_0x3421('0x14'));var utils=require(_0x3421('0x15'));var config=require(_0x3421('0x16'));var licenseUtil=require(_0x3421('0x17'));var db=require(_0x3421('0x18'))['db'];config['redis']=_[_0x3421('0x19')](config[_0x3421('0x1a')],{'host':_0x3421('0x1b'),'port':0x18eb});var socket=require(_0x3421('0x1c'))(new Redis(config[_0x3421('0x1a')]));require(_0x3421('0x1d'))[_0x3421('0x1e')](socket);function respondWithStatusCode(_0x59ea4a,_0xafd9e0){_0xafd9e0=_0xafd9e0||0xcc;return function(_0x4b5f43){if(_0x4b5f43){return _0x59ea4a[_0x3421('0x1f')](_0xafd9e0);}return _0x59ea4a[_0x3421('0x20')](_0xafd9e0)['end']();};}function respondWithResult(_0x1e33ab,_0x4c6f7b){_0x4c6f7b=_0x4c6f7b||0xc8;return function(_0x16bc8f){if(_0x16bc8f){return _0x1e33ab[_0x3421('0x20')](_0x4c6f7b)['json'](_0x16bc8f);}};}function respondWithFilteredResult(_0x3584d6,_0x3dec08){return function(_0x130d3c){if(_0x130d3c){var _0x104cc5=typeof _0x3dec08[_0x3421('0x21')]===_0x3421('0x22')&&typeof _0x3dec08[_0x3421('0x23')]===_0x3421('0x22');var _0x197b83=_0x130d3c[_0x3421('0x24')];var _0x538a8b=_0x104cc5?0x0:_0x3dec08['offset'];var _0x420114=_0x104cc5?_0x130d3c['count']:_0x3dec08['offset']+_0x3dec08['limit'];var _0x33155b;if(_0x420114>=_0x197b83){_0x420114=_0x197b83;_0x33155b=0xc8;}else{_0x33155b=0xce;}_0x3584d6[_0x3421('0x20')](_0x33155b);return _0x3584d6[_0x3421('0x25')](_0x3421('0x26'),_0x538a8b+'-'+_0x420114+'/'+_0x197b83)[_0x3421('0x27')](_0x130d3c);}return null;};}function patchUpdates(_0x39bed4){return function(_0x3df305){try{jsonpatch[_0x3421('0x28')](_0x3df305,_0x39bed4,!![]);}catch(_0xb9af5f){return BPromise[_0x3421('0x29')](_0xb9af5f);}return _0x3df305['save']();};}function saveUpdates(_0x57a4af,_0x494423){return function(_0x3fef90){if(_0x3fef90){return _0x3fef90[_0x3421('0x2a')](_0x57a4af)[_0x3421('0x2b')](function(_0x5bc28a){return _0x5bc28a;});}return null;};}function removeEntity(_0x506af4,_0x1b65d0){return function(_0x5b53b6){if(_0x5b53b6){return _0x5b53b6[_0x3421('0x2c')]()['then'](function(){_0x506af4[_0x3421('0x20')](0xcc)[_0x3421('0x2d')]();});}};}function handleEntityNotFound(_0x36d75f,_0x2e6a75){return function(_0x186885){if(!_0x186885){_0x36d75f['sendStatus'](0x194);}return _0x186885;};}function handleError(_0x332017,_0x52fd41){_0x52fd41=_0x52fd41||0x1f4;return function(_0x5efe73){logger[_0x3421('0x2e')](_0x5efe73['stack']);if(_0x5efe73['name']){delete _0x5efe73[_0x3421('0x2f')];}_0x332017['status'](_0x52fd41)[_0x3421('0x30')](_0x5efe73);};}exports['index']=function(_0xc7f9fb,_0xbe9f09){var _0x48d828={},_0x3f7c0b={},_0x3bc7c1={'count':0x0,'rows':[]};var _0x420349=_['map'](db[_0x3421('0x31')]['rawAttributes'],function(_0x2b5af4){return{'name':_0x2b5af4[_0x3421('0x32')],'type':_0x2b5af4[_0x3421('0x33')][_0x3421('0x34')]};});_0x3f7c0b[_0x3421('0x35')]=_[_0x3421('0x36')](_0x420349,_0x3421('0x2f'));_0x3f7c0b[_0x3421('0x37')]=_[_0x3421('0x38')](_0xc7f9fb[_0x3421('0x37')]);_0x3f7c0b['filters']=_['intersection'](_0x3f7c0b[_0x3421('0x35')],_0x3f7c0b[_0x3421('0x37')]);_0x48d828['attributes']=_[_0x3421('0x39')](_0x3f7c0b[_0x3421('0x35')],qs[_0x3421('0x3a')](_0xc7f9fb[_0x3421('0x37')][_0x3421('0x3a')]));_0x48d828['attributes']=_0x48d828[_0x3421('0x3b')][_0x3421('0x3c')]?_0x48d828[_0x3421('0x3b')]:_0x3f7c0b['model'];if(!_0xc7f9fb[_0x3421('0x37')]['hasOwnProperty'](_0x3421('0x3d'))){_0x48d828[_0x3421('0x23')]=qs[_0x3421('0x23')](_0xc7f9fb[_0x3421('0x37')][_0x3421('0x23')]);_0x48d828[_0x3421('0x21')]=qs[_0x3421('0x21')](_0xc7f9fb['query']['offset']);}_0x48d828['order']=qs[_0x3421('0x3e')](_0xc7f9fb['query']['sort']);_0x48d828[_0x3421('0x3f')]=qs['filters'](_[_0x3421('0x40')](_0xc7f9fb[_0x3421('0x37')],_0x3f7c0b['filters']),_0x420349);if(_0xc7f9fb[_0x3421('0x37')][_0x3421('0x41')]){_0x48d828[_0x3421('0x3f')]=_[_0x3421('0x42')](_0x48d828['where'],{'$or':_[_0x3421('0x36')](_0x420349,function(_0x2745c9){if(_0x2745c9[_0x3421('0x33')]!==_0x3421('0x43')){var _0x25de09={};_0x25de09[_0x2745c9['name']]={'$like':'%'+_0xc7f9fb[_0x3421('0x37')][_0x3421('0x41')]+'%'};return _0x25de09;}})});}_0x48d828=_['merge']({},_0x48d828,_0xc7f9fb[_0x3421('0x44')]);var _0x5daa14={'where':_0x48d828['where']};return db['UserProfile'][_0x3421('0x24')](_0x5daa14)[_0x3421('0x2b')](function(_0x41bdb7){_0x3bc7c1[_0x3421('0x24')]=_0x41bdb7;if(_0xc7f9fb[_0x3421('0x37')][_0x3421('0x45')]){_0x48d828[_0x3421('0x46')]=[{'all':!![]}];}return db[_0x3421('0x31')][_0x3421('0x47')](_0x48d828);})[_0x3421('0x2b')](function(_0x3b9d15){_0x3bc7c1[_0x3421('0x48')]=_0x3b9d15;return _0x3bc7c1;})[_0x3421('0x2b')](respondWithFilteredResult(_0xbe9f09,_0x48d828))[_0x3421('0x49')](handleError(_0xbe9f09,null));};exports['show']=function(_0x3076eb,_0x2e7c59){var _0x139d55={'raw':![],'where':{'id':_0x3076eb['params']['id']}},_0x4466be={};_0x4466be[_0x3421('0x35')]=_['keys'](db[_0x3421('0x31')][_0x3421('0x4a')]);_0x4466be[_0x3421('0x37')]=_[_0x3421('0x38')](_0x3076eb[_0x3421('0x37')]);_0x4466be[_0x3421('0x4b')]=_[_0x3421('0x39')](_0x4466be[_0x3421('0x35')],_0x4466be[_0x3421('0x37')]);_0x139d55[_0x3421('0x3b')]=_[_0x3421('0x39')](_0x4466be[_0x3421('0x35')],qs[_0x3421('0x3a')](_0x3076eb['query'][_0x3421('0x3a')]));_0x139d55['attributes']=_0x139d55[_0x3421('0x3b')][_0x3421('0x3c')]?_0x139d55[_0x3421('0x3b')]:_0x4466be[_0x3421('0x35')];if(_0x3076eb[_0x3421('0x37')][_0x3421('0x45')]){_0x139d55[_0x3421('0x46')]=[{'all':!![]}];}_0x139d55=_[_0x3421('0x42')]({},_0x139d55,_0x3076eb[_0x3421('0x44')]);return db[_0x3421('0x31')]['find'](_0x139d55)[_0x3421('0x2b')](handleEntityNotFound(_0x2e7c59,null))[_0x3421('0x2b')](respondWithResult(_0x2e7c59,null))[_0x3421('0x49')](handleError(_0x2e7c59,null));};exports['create']=function(_0x566f95,_0x43a94f){return db[_0x3421('0x31')][_0x3421('0x4c')](_0x566f95['body'],{})[_0x3421('0x2b')](respondWithResult(_0x43a94f,0xc9))[_0x3421('0x49')](handleError(_0x43a94f,null));};exports[_0x3421('0x4d')]=function(_0x356376,_0x57554a){var _0x99523d={'where':{'id':_0x356376[_0x3421('0x4e')]['id']}},_0x1bcf74={};_0x1bcf74['model']=_['keys'](db['UserProfile'][_0x3421('0x4a')]);_0x99523d[_0x3421('0x3b')]=_['intersection'](_0x1bcf74['model'],qs[_0x3421('0x3a')](_0x356376[_0x3421('0x37')][_0x3421('0x3a')]));_0x99523d[_0x3421('0x3b')]=_0x99523d[_0x3421('0x3b')]['length']?_0x99523d[_0x3421('0x3b')]:_0x1bcf74[_0x3421('0x35')];if(_0x356376[_0x3421('0x37')][_0x3421('0x45')]){_0x99523d['include']=[{'all':!![]}];}_0x99523d=_[_0x3421('0x42')]({},_0x99523d,_0x356376[_0x3421('0x44')]);return db[_0x3421('0x31')]['find'](_0x99523d)[_0x3421('0x2b')](handleEntityNotFound(_0x57554a,null))['then'](function(_0x598dfa){if(_0x598dfa){var _0x11d30f=_0x598dfa['get']({'plain':!![]});_0x11d30f=qs[_0x3421('0x4f')](_0x11d30f,['id',_0x3421('0x50'),_0x3421('0x51'),'crudPermissions']);_0x356376[_0x3421('0x52')]=_[_0x3421('0x4f')](_0x356376[_0x3421('0x52')],['id',_0x3421('0x50'),_0x3421('0x51')]);return db[_0x3421('0x53')][_0x3421('0x54')](function(_0x21e3d4){return db[_0x3421('0x31')]['create'](_[_0x3421('0x42')](_0x11d30f,_0x356376[_0x3421('0x52')]),{'include':_0x356376['query'][_0x3421('0x45')]?[{'all':!![]}]:undefined,'transaction':_0x21e3d4})[_0x3421('0x2b')](function(_0x394cb2){var _0x5df17c=_0x394cb2[_0x3421('0x55')]({'plain':!![]});return db[_0x3421('0x56')][_0x3421('0x47')]({'where':{'userProfileId':_0x356376[_0x3421('0x4e')]['id']},'raw':!![]})[_0x3421('0x2b')](function(_0x365626){if(_0x365626){return BPromise[_0x3421('0x57')](_0x365626,function(_0x3254aa){return new BPromise(function(_0x31fd9b,_0x279b44){if(_0x3254aa[_0x3421('0x58')]===null||_0x3254aa[_0x3421('0x58')]===0x1)_0x31fd9b(null);return db[_0x3421('0x59')][_0x3421('0x47')]({'where':{'sectionId':_0x3254aa['id']},'raw':!![]})[_0x3421('0x2b')](function(_0x4820d3){var _0x3f942c=_[_0x3421('0x36')](_0x4820d3,function(_0x3fce62){return qs[_0x3421('0x4f')](_0x3fce62,['id',_0x3421('0x50'),_0x3421('0x51'),_0x3421('0x5a')]);});_0x31fd9b(_0x3f942c);})[_0x3421('0x49')](function(_0x5d6488){_0x279b44(_0x5d6488);});})[_0x3421('0x2b')](function(_0x5dc921){var _0x2f14fe=qs[_0x3421('0x4f')](_0x3254aa,['id',_0x3421('0x50'),_0x3421('0x51')]);_0x2f14fe['userProfileId']=_0x5df17c['id'];if(_0x5dc921)_0x2f14fe[_0x3421('0x5b')]=_0x5dc921;return _0x2f14fe;})[_0x3421('0x2b')](function(_0x9def45){return db[_0x3421('0x56')][_0x3421('0x4c')](_0x9def45,{'include':[{'model':db[_0x3421('0x59')],'as':'Resources'}],'raw':!![],'transaction':_0x21e3d4});});})[_0x3421('0x2b')](function(){return _0x5df17c;});}});});});}})[_0x3421('0x2b')](respondWithResult(_0x57554a,0xc9))[_0x3421('0x49')](handleError(_0x57554a,null));};exports[_0x3421('0x2a')]=function(_0x443b0a,_0x1ba5e1){if(_0x443b0a[_0x3421('0x52')]['id']){delete _0x443b0a[_0x3421('0x52')]['id'];}return db['UserProfile'][_0x3421('0x5c')]({'where':{'id':_0x443b0a[_0x3421('0x4e')]['id']}})[_0x3421('0x2b')](handleEntityNotFound(_0x1ba5e1,null))[_0x3421('0x2b')](saveUpdates(_0x443b0a[_0x3421('0x52')],null))['then'](respondWithResult(_0x1ba5e1,null))['catch'](handleError(_0x1ba5e1,null));};exports[_0x3421('0x2c')]=function(_0x103d84,_0x230f65){return db['UserProfile'][_0x3421('0x5c')]({'where':{'id':_0x103d84['params']['id']}})[_0x3421('0x2b')](handleEntityNotFound(_0x230f65,null))['then'](removeEntity(_0x230f65,null))['catch'](handleError(_0x230f65,null));};exports['describe']=function(_0x5c1a53,_0x4fd786){return db[_0x3421('0x31')][_0x3421('0x5d')]()[_0x3421('0x2b')](respondWithResult(_0x4fd786,null))[_0x3421('0x49')](handleError(_0x4fd786,null));};exports[_0x3421('0x5e')]=function(_0x3ccb08,_0x231067){var _0x11e770=_0x3ccb08[_0x3421('0x52')];return db[_0x3421('0x31')]['find']({'where':{'id':_0x3ccb08[_0x3421('0x4e')]['id']}})['then'](handleEntityNotFound(_0x231067,null))[_0x3421('0x2b')](function(_0x41e5f8){if(_0x41e5f8){return db[_0x3421('0x53')][_0x3421('0x54')](function(_0x4191a7){return db[_0x3421('0x56')][_0x3421('0x2c')]({'where':{'userProfileId':_0x3ccb08[_0x3421('0x4e')]['id'],'sectionId':_[_0x3421('0x36')](_0x11e770,function(_0x5c74a8){return _0x5c74a8[_0x3421('0x5a')];})},'transaction':_0x4191a7})[_0x3421('0x2b')](function(){var _0x1ed098=_['map'](_0x11e770,function(_0x572e7d){_0x572e7d['userProfileId']=_0x3ccb08['params']['id'];return _0x572e7d;});var _0x8b3181=[];return BPromise['each'](_0x1ed098,function(_0x2b3837){return db[_0x3421('0x56')][_0x3421('0x4c')](_0x2b3837,{'include':[{'model':db[_0x3421('0x59')],'as':'Resources'}],'raw':!![],'transaction':_0x4191a7})[_0x3421('0x2b')](function(_0x1bb080){_0x8b3181[_0x3421('0x5f')](_0x1bb080[_0x3421('0x55')]({'plain':!![]}));});})[_0x3421('0x2b')](function(){return _0x8b3181;});});});}})[_0x3421('0x2b')](function(_0x5011ec){return _0x5011ec;})[_0x3421('0x2b')](respondWithResult(_0x231067,null))[_0x3421('0x49')](handleError(_0x231067,null));};exports[_0x3421('0x60')]=function(_0x2af027,_0x37e6d8){var _0x180727;return db[_0x3421('0x31')]['find']({'where':{'id':_0x2af027['params']['id']},'attributes':['id',_0x3421('0x2f')]})[_0x3421('0x2b')](handleEntityNotFound(_0x37e6d8,null))[_0x3421('0x2b')](function(_0x5d04c6){if(_0x5d04c6){_0x180727=_0x5d04c6;return db[_0x3421('0x56')]['destroy']({'where':{'userProfileId':_0x2af027[_0x3421('0x4e')]['id'],'sectionId':_0x2af027['query'][_0x3421('0x61')]}});}})[_0x3421('0x2b')](function(){return _0x180727;})[_0x3421('0x2b')](respondWithStatusCode(_0x37e6d8,null))[_0x3421('0x49')](handleError(_0x37e6d8,null));};exports[_0x3421('0x62')]=function(_0x1c8863,_0x202655){var _0x17609c=[];var _0x3f1df5=[];return db[_0x3421('0x56')][_0x3421('0x47')]({'where':{'userProfileId':_0x1c8863[_0x3421('0x4e')]['id']},'raw':!![]})['then'](function(_0x321335){_0x17609c=_[_0x3421('0x41')](_0x321335,function(_0x301ca2){return _0x301ca2[_0x3421('0x63')]===0x1||_[_0x3421('0x64')]([0x3eb,0x709],_0x301ca2[_0x3421('0x5a')]);});if(!_[_0x3421('0x65')](_0x17609c)){return _[_0x3421('0x36')](_0x17609c,function(_0x54b6e6){return _0x54b6e6[_0x3421('0x5a')];});}else{return;}})['then'](function(_0x4d92ed){if(_0x4d92ed)_0x3f1df5=_0x4d92ed;if(_['includes'](_0x3f1df5,0x64)){var _0x4fe03c=_[_0x3421('0x5c')](_0x17609c,{'sectionId':0x64});return hasDefaultDashboard(_0x4fe03c)[_0x3421('0x2b')](function(_0x22ff90){return _['map'](_0x17609c,function(_0x3ef962){if(_0x3ef962[_0x3421('0x5a')]===0x64){_0x3ef962[_0x3421('0x66')]=_0x22ff90;}return _0x3ef962;});});}else{return;}})[_0x3421('0x2b')](function(_0x22d82c){if(_0x22d82c)_0x17609c=_0x22d82c;if(_[_0x3421('0x64')](_0x3f1df5,0x3eb)){var _0x13363e=_[_0x3421('0x5c')](_0x17609c,{'sectionId':0x3eb});return getCustomDashboards(_0x13363e)[_0x3421('0x2b')](function(_0x18245a){return _[_0x3421('0x36')](_0x17609c,function(_0x414218){if(_0x13363e[_0x3421('0x63')]){if(_0x414218[_0x3421('0x5a')]===0x3eb){_0x414218[_0x3421('0x66')]=_0x18245a;}}else{if(_0x414218[_0x3421('0x5a')]===0x64){_0x414218[_0x3421('0x66')]=_0x18245a;}}return _0x414218;});});}else{return;}})['then'](function(_0x5afe2f){if(_0x5afe2f)_0x17609c=_0x5afe2f;if(_[_0x3421('0x64')](_0x3f1df5,0x709)){var _0x4c02ae=_[_0x3421('0x5c')](_0x17609c,{'sectionId':0x709});return getPlugins(_0x4c02ae)[_0x3421('0x2b')](function(_0x5c1c7b){if(_0x4c02ae[_0x3421('0x63')]){return _[_0x3421('0x36')](_0x17609c,function(_0x3b9bbe){if(_0x3b9bbe[_0x3421('0x5a')]===0x709){_0x3b9bbe[_0x3421('0x66')]=_0x5c1c7b;}return _0x3b9bbe;});}else{var _0x46042a={'sectionId':0x76c,'enabled':0x1,'subsections':_0x5c1c7b};var _0x31a08c=_[_0x3421('0x36')](_0x17609c);_0x31a08c[_0x3421('0x5f')](_0x46042a);return _0x31a08c;}});}else{return;}})[_0x3421('0x2b')](function(_0x12dc9c){if(_0x12dc9c)_0x17609c=_0x12dc9c;return _[_0x3421('0x41')](_0x17609c,[_0x3421('0x63'),0x1]);})['then'](respondWithResult(_0x202655,null))[_0x3421('0x49')](handleError(_0x202655,null));};function hasDefaultDashboard(_0x516a81){var _0x14d3e0=[0x65];return new BPromise(function(_0x3ca3de,_0x5ef74e){try{if(_0x516a81[_0x3421('0x58')]){_0x3ca3de(_0x14d3e0);}else{return db['UserProfileResource']['findOne']({'where':{'sectionId':_0x516a81['id']},'raw':!![]})[_0x3421('0x2b')](function(_0xe9a2da){_0xe9a2da?_0x3ca3de(_0x14d3e0):_0x3ca3de();});}}catch(_0x3e88fa){_0x5ef74e(_0x3e88fa);}});}function getCustomDashboards(_0x52104f){var _0x12a8cc=[];return new BPromise(function(_0x18773c,_0x315fb0){try{if(_0x52104f['autoAssociation']){return db['Dashboard'][_0x3421('0x47')]({'raw':!![]})[_0x3421('0x2b')](function(_0x3e9edf){_0x3e9edf[_0x3421('0x67')](function(_0x50afea){_0x12a8cc[_0x3421('0x5f')](_0x50afea['id']+0x1869f);});_0x18773c(_0x12a8cc);});}else{return db[_0x3421('0x59')][_0x3421('0x47')]({'where':{'sectionId':_0x52104f['id']},'raw':!![]})[_0x3421('0x2b')](function(_0x307a4f){_0x307a4f[_0x3421('0x67')](function(_0x3e59e7){_0x12a8cc[_0x3421('0x5f')](_0x3e59e7['resourceId']+0x1869f);});_0x18773c(_0x12a8cc);});}}catch(_0x27967d){_0x315fb0(_0x27967d);}});}function getPlugins(_0x113772){var _0x531a15=[];return new BPromise(function(_0x5ae17c,_0x2dbdf9){try{if(_0x113772[_0x3421('0x58')]){return db[_0x3421('0x68')][_0x3421('0x47')]({'raw':!![]})[_0x3421('0x2b')](function(_0x59739e){_0x59739e['forEach'](function(_0x1d4eaf){_0x531a15['push'](_0x1d4eaf['id']+0x15b38);});_0x5ae17c(_0x531a15);});}else{return db['UserProfileResource'][_0x3421('0x47')]({'where':{'sectionId':_0x113772['id']},'raw':!![]})[_0x3421('0x2b')](function(_0x3bf463){_0x3bf463[_0x3421('0x67')](function(_0x55bbc5){_0x531a15['push'](_0x55bbc5[_0x3421('0x69')]+0x15b38);});_0x5ae17c(_0x531a15);});}}catch(_0x5a922d){_0x2dbdf9(_0x5a922d);}});}exports['addResources']=function(_0x1fb48f,_0x3fc2b6){return db[_0x3421('0x31')]['find']({'where':{'id':_0x1fb48f['params']['id']}})['then'](handleEntityNotFound(_0x3fc2b6,null))[_0x3421('0x2b')](function(_0x1fad28){if(_0x1fad28){return db[_0x3421('0x53')][_0x3421('0x54')](function(_0x35a01f){return db[_0x3421('0x56')][_0x3421('0x47')]({'where':{'userProfileId':_0x1fb48f['params']['id']},'attributes':['id'],'raw':!![]})[_0x3421('0x2b')](function(_0x210490){if(_0x210490){return db[_0x3421('0x56')][_0x3421('0x2c')]({'where':{'userProfileId':_0x1fb48f[_0x3421('0x4e')]['id'],'id':_[_0x3421('0x36')](_0x210490,function(_0x381a66){return _0x381a66['id'];})},'transaction':_0x35a01f});}})[_0x3421('0x2b')](function(_0x276656){var _0x5f54b8=_['map'](_0x1fb48f[_0x3421('0x52')],function(_0x5537c2){_0x5537c2[_0x3421('0x6a')]=_0x1fb48f['params']['id'];return _0x5537c2;});return db[_0x3421('0x56')][_0x3421('0x6b')](_0x5f54b8,{'raw':!![],'transaction':_0x35a01f});})[_0x3421('0x2b')](function(_0x264345){var _0x1b5934=_['filter'](_['map'](_0x264345,function(_0x23f8ba){return _0x23f8ba[_0x3421('0x55')]({'plain':!![]});}),{'includeAll':![]});if(_0x1b5934){return db[_0x3421('0x56')][_0x3421('0x47')]({'where':{'userProfileId':_0x1fb48f['params']['id'],'sectionId':_[_0x3421('0x36')](_0x1b5934,function(_0x455389){return _0x455389[_0x3421('0x5a')];})},'attributes':['id',_0x3421('0x5a')],'raw':!![]})[_0x3421('0x2b')](function(_0x3274a1){var _0x31095c=_['map'](_0x1fb48f[_0x3421('0x52')],function(_0x275c49){_0x275c49['userProfileId']=_0x1fb48f[_0x3421('0x4e')]['id'];return _0x275c49;});return db[_0x3421('0x59')][_0x3421('0x6b')](_0x31095c,{'raw':!![],'transaction':_0x35a01f});});}})['catch'](handleError(_0x3fc2b6,null));});}})[_0x3421('0x2b')](function(_0x1cc0d1){var _0x4cfd86=_[_0x3421('0x36')](_0x1cc0d1,function(_0x34f986){return _0x34f986[_0x3421('0x55')]({'plain':!![]});});})[_0x3421('0x2b')](respondWithResult(_0x3fc2b6,null))[_0x3421('0x49')](handleError(_0x3fc2b6,null));};exports[_0x3421('0x6c')]=function(_0x211f8d,_0x21791d,_0x5e8e57){return db[_0x3421('0x31')]['find']({'where':{'id':_0x211f8d['params']['id']}})[_0x3421('0x2b')](handleEntityNotFound(_0x21791d,null))[_0x3421('0x2b')](function(_0x1d84cb){if(_0x1d84cb){return _0x1d84cb[_0x3421('0x6c')](_0x211f8d['query'][_0x3421('0x61')]);}})[_0x3421('0x2b')](respondWithStatusCode(_0x21791d,null))[_0x3421('0x49')](handleError(_0x21791d,null));};exports[_0x3421('0x6d')]=function(_0x13b03f,_0x2b8967){var _0xe3de53={};if(!_0x13b03f[_0x3421('0x37')][_0x3421('0x6e')])throw new Error(_0x3421('0x6f'));if(!_0x13b03f[_0x3421('0x37')][_0x3421('0x70')](_0x3421('0x3d'))){_0xe3de53[_0x3421('0x23')]=qs[_0x3421('0x23')](_0x13b03f[_0x3421('0x37')][_0x3421('0x23')]);_0xe3de53[_0x3421('0x21')]=qs[_0x3421('0x21')](_0x13b03f[_0x3421('0x37')][_0x3421('0x21')]);}return db['UserProfile']['find']({'where':{'id':_0x13b03f[_0x3421('0x4e')]['id']}})[_0x3421('0x2b')](function(_0x1a7038){if(!_0x1a7038)throw new Error(_0x3421('0x71')+_0x13b03f['params']['id']);return db[_0x3421('0x31')][_0x3421('0x6d')](_0x13b03f);})['then'](respondWithFilteredResult(_0x2b8967,_0xe3de53))[_0x3421('0x49')](handleError(_0x2b8967,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1967=['exports','../../mysqldb','UserProfile','setMaxListeners','save','update','remove','emit','hasOwnProperty','hook'];(function(_0x3cb424,_0x32aa90){var _0x449bc9=function(_0x77aa33){while(--_0x77aa33){_0x3cb424['push'](_0x3cb424['shift']());}};_0x449bc9(++_0x32aa90);}(_0x1967,0x173));var _0x7196=function(_0x30ae11,_0x5430bc){_0x30ae11=_0x30ae11-0x0;var _0x1bfe11=_0x1967[_0x30ae11];return _0x1bfe11;};'use strict';var EventEmitter=require('events');var UserProfile=require(_0x7196('0x0'))['db'][_0x7196('0x1')];var UserProfileEvents=new EventEmitter();UserProfileEvents[_0x7196('0x2')](0x0);var events={'afterCreate':_0x7196('0x3'),'afterUpdate':_0x7196('0x4'),'afterDestroy':_0x7196('0x5')};function emitEvent(_0x302f34){return function(_0x1aaddd,_0x458ae8,_0x3ae43f){UserProfileEvents['emit'](_0x302f34+':'+_0x1aaddd['id'],_0x1aaddd);UserProfileEvents[_0x7196('0x6')](_0x302f34,_0x1aaddd);_0x3ae43f(null);};}for(var e in events){if(events[_0x7196('0x7')](e)){var event=events[e];UserProfile[_0x7196('0x8')](e,emitEvent(event));}}module[_0x7196('0x9')]=UserProfileEvents;
\ No newline at end of file
+var _0xc6ac=['setMaxListeners','save','update','remove','emit','hasOwnProperty','exports','events','../../mysqldb','UserProfile'];(function(_0x3c8742,_0x5b3d0e){var _0x535256=function(_0x4be3b9){while(--_0x4be3b9){_0x3c8742['push'](_0x3c8742['shift']());}};_0x535256(++_0x5b3d0e);}(_0xc6ac,0x15b));var _0xcc6a=function(_0x27fdad,_0x1511a1){_0x27fdad=_0x27fdad-0x0;var _0xbd0815=_0xc6ac[_0x27fdad];return _0xbd0815;};'use strict';var EventEmitter=require(_0xcc6a('0x0'));var UserProfile=require(_0xcc6a('0x1'))['db'][_0xcc6a('0x2')];var UserProfileEvents=new EventEmitter();UserProfileEvents[_0xcc6a('0x3')](0x0);var events={'afterCreate':_0xcc6a('0x4'),'afterUpdate':_0xcc6a('0x5'),'afterDestroy':_0xcc6a('0x6')};function emitEvent(_0x31bbcd){return function(_0x297643,_0x22ee99,_0x2f26ab){UserProfileEvents[_0xcc6a('0x7')](_0x31bbcd+':'+_0x297643['id'],_0x297643);UserProfileEvents[_0xcc6a('0x7')](_0x31bbcd,_0x297643);_0x2f26ab(null);};}for(var e in events){if(events[_0xcc6a('0x8')](e)){var event=events[e];UserProfile['hook'](e,emitEvent(event));}}module[_0xcc6a('0x9')]=UserProfileEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x66fa=['sugarcrmaccounts','SugarcrmAccount','deskaccounts','DeskAccount','zohoaccounts','ZohoAccount','vtigeraccounts','cannedanswers','dispositions','Disposition','customdashboards','intervals','Interval','Pause','scheduler','Schedule','sounds','tags','Tag','templates','Template','Trigger','trunks','Trunk','variables','plugins','Plugin','extractedreports','Reports','reportId','AnalyticMetric','charAt','toUpperCase','Sequelize','QueryTypes','SELECT','select','ui.','InteractionId','from','user_has_','_interactions','ui.UserId\x20=\x20?','sequelize','query','toString','OpenTabs','UserProfile','user_profiles','mergeResources','Invalid\x20section\x20\x27','isEmpty','length','UserProfileSection','find','params','all','union','ignore','push','autoAssociation','model','keys','filters','intersection','attributes','fields','nolimit','limit','offset','order','sort','where','pick','merge','key','VIRTUAL','foreignKey','options','includeAll','reportType','default','custom','CustomReports','rows','count','include','color','tag','openTabs','chat','dataValues','sms','mail','openchannel','whatsapp','lodash','./userProfile.attributes','squel','exports','models','filter','field','value','then','associatedResources','findAll','map','name','catch','resolve','UserProfileResource','AnalyticExtractedReport','resourceId','type','toLowerCase','squareprojects','odbc','SquareOdbc','squarerecordings','childModel','parentSections','SquareProjects','projectName','projects','JscriptyProject','contacts','CmContact','Lists','ListId','lists','companies','globalcustomfields','chatqueues','ChatQueue','chatwebsites','faxqueues','FaxQueue','faxaccounts','inboundroutes','internalroutes','VoiceExtension','contexts','VoiceContext','voicemails','VoiceMail','voicerecordings','membername','User','role','agent','Telephones','VoiceQueues','queue','inbound','QueueCampaigns','VoiceQueue','VoiceChanSpy','VoicePrefix','ivrcampaigns','Campaign','mailqueues','MailQueue','mailaccounts','MailAccount','mailsubstatuses','MailSubstatus','OpenchannelQueue','smsqueues','smsaccounts','SmsAccount','whatsappaccounts','WhatsappAccount','teams','Team','voicequeues','telephones','Users','user','Agents','ZendeskAccount','salesforceaccounts','FreshdeskAccount'];(function(_0x5398f3,_0x4213f6){var _0x3c12b7=function(_0x5e87fd){while(--_0x5e87fd){_0x5398f3['push'](_0x5398f3['shift']());}};_0x3c12b7(++_0x4213f6);}(_0x66fa,0x117));var _0xa66f=function(_0x4ddc7f,_0x1ce29d){_0x4ddc7f=_0x4ddc7f-0x0;var _0x136c62=_0x66fa[_0x4ddc7f];return _0x136c62;};'use strict';var _=require(_0xa66f('0x0'));var attributes=require(_0xa66f('0x1'));var qs=require('../../components/parsers/qs');var squel=require(_0xa66f('0x2'));module[_0xa66f('0x3')]=function(_0x234f2d){var _0x12a38f=_0x234f2d[_0xa66f('0x4')];function _0x2a2abf(_0x3f4904,_0x5ebea5){return new Promise(function(_0x4fd9d0,_0x2239d3){if(!_0x5ebea5)return _0x4fd9d0(null);var _0x20a150=_0x5ebea5[_0xa66f('0x5')]?{[_0x5ebea5[_0xa66f('0x5')][_0xa66f('0x6')]]:_0x5ebea5['filter'][_0xa66f('0x7')]}:undefined;return _0x12a38f[_0x3f4904]['findAll']({'where':_0x20a150,'raw':!![]})[_0xa66f('0x8')](function(_0x597c7c){_0x5ebea5[_0xa66f('0x9')]=_['map'](_0x597c7c,'id');_0x4fd9d0(_0x5ebea5);})['catch'](function(_0x55e6dc){_0x2239d3(_0x55e6dc);});});}function _0x1e1997(_0x825868,_0x4979c6){return new Promise(function(_0x14d31e,_0x4cd893){var _0x28634d=_0x825868['filter']?{[_0x825868[_0xa66f('0x5')][_0xa66f('0x6')]]:_0x825868[_0xa66f('0x5')]['value']}:undefined;return _0x12a38f[_0x825868['model']][_0xa66f('0xa')]({'where':_0x28634d,'raw':!![]})['then'](function(_0x528427){_0x4979c6['associatedResources']=_[_0xa66f('0xb')](_0x528427,function(_0x452c37){return _0x452c37[_0xa66f('0xc')];});_0x14d31e(_0x4979c6);})[_0xa66f('0xd')](function(_0xd348f9){_0x4cd893(_0xd348f9);});});}function _0x567d4f(_0x5510dc,_0x19b5ac,_0x32d338){if(!_0x19b5ac)return Promise[_0xa66f('0xe')](null);return new Promise(function(_0x403f4d,_0x5c67f5){return _0x12a38f[_0xa66f('0xf')]['findAll']({'where':{'sectionId':_0x19b5ac['id']},'raw':!![]})['then'](function(_0x2f9da2){if(_0x5510dc[_0xa66f('0x6')]&&_0x5510dc[_0xa66f('0x6')]!=='id'){_0x19b5ac[_0xa66f('0x9')]=_[_0xa66f('0xb')](_0x2f9da2,function(_0x408bc7){return _0x408bc7[_0x5510dc[_0xa66f('0x6')]];});}else{if(_0x32d338===_0xa66f('0x10')){_0x19b5ac[_0xa66f('0x9')]=_[_0xa66f('0xb')](_0x2f9da2,function(_0x235b61){return{'id':_0x235b61[_0xa66f('0x11')],'type':_0x235b61[_0xa66f('0x12')]};});}else{_0x19b5ac[_0xa66f('0x9')]=_[_0xa66f('0xb')](_0x2f9da2,function(_0x5cd613){return _0x5cd613[_0xa66f('0x11')];});}}_0x403f4d(_0x19b5ac);})[_0xa66f('0xd')](function(_0x40ee00){_0x5c67f5(_0x40ee00);});});}function _0x37ee13(_0x5cbd82,_0x337602){var _0x473822={'parentSections':[]};switch(_0x5cbd82[_0xa66f('0x13')]()){case _0xa66f('0x14'):_0x473822['childModel']='SquareProject';break;case _0xa66f('0x15'):_0x473822['childModel']=_0xa66f('0x16');break;case _0xa66f('0x17'):_0x473822[_0xa66f('0x18')]='SquareRecording';_0x473822[_0xa66f('0x19')]=[{'name':_0xa66f('0x1a'),'field':_0xa66f('0xc'),'foreignKey':_0xa66f('0x1b')}];break;case _0xa66f('0x1c'):_0x473822[_0xa66f('0x18')]=_0xa66f('0x1d');break;case _0xa66f('0x1e'):_0x473822[_0xa66f('0x18')]=_0xa66f('0x1f');_0x473822[_0xa66f('0x19')]=[{'name':_0xa66f('0x20'),'field':'id','foreignKey':_0xa66f('0x21')}];break;case _0xa66f('0x22'):_0x473822['childModel']='CmList';break;case _0xa66f('0x23'):_0x473822[_0xa66f('0x18')]='CmCompany';break;case _0xa66f('0x24'):_0x473822[_0xa66f('0x18')]='CmCustomField';break;case _0xa66f('0x25'):_0x473822[_0xa66f('0x18')]=_0xa66f('0x26');break;case _0xa66f('0x27'):_0x473822[_0xa66f('0x18')]='ChatWebsite';break;case _0xa66f('0x28'):_0x473822['childModel']=_0xa66f('0x29');break;case _0xa66f('0x2a'):_0x473822[_0xa66f('0x18')]='FaxAccount';break;case _0xa66f('0x2b'):case _0xa66f('0x2c'):case'outboundroutes':_0x473822[_0xa66f('0x18')]=_0xa66f('0x2d');break;case _0xa66f('0x2e'):_0x473822[_0xa66f('0x18')]=_0xa66f('0x2f');break;case _0xa66f('0x30'):_0x473822[_0xa66f('0x18')]=_0xa66f('0x31');break;case _0xa66f('0x32'):_0x473822[_0xa66f('0x18')]='VoiceRecording';_0x473822[_0xa66f('0x19')]=[{'name':'Agents','field':_0xa66f('0xc'),'foreignKey':_0xa66f('0x33'),'model':_0xa66f('0x34'),'filter':{'field':_0xa66f('0x35'),'value':[_0xa66f('0x36')]}},{'name':_0xa66f('0x37'),'field':_0xa66f('0xc'),'foreignKey':_0xa66f('0x33'),'model':'User','filter':{'field':_0xa66f('0x35'),'value':['telephone']}},{'name':_0xa66f('0x38'),'field':_0xa66f('0xc'),'foreignKey':_0xa66f('0x39'),'model':'VoiceQueue','filter':{'field':'type','value':[_0xa66f('0x3a')]}},{'name':_0xa66f('0x3b'),'field':_0xa66f('0xc'),'foreignKey':_0xa66f('0x39'),'model':_0xa66f('0x3c'),'filter':{'field':'type','value':['outbound']}}];break;case'musiconholds':_0x473822[_0xa66f('0x18')]='VoiceMusicOnHold';break;case'chanspies':_0x473822['childModel']=_0xa66f('0x3d');break;case'voiceprefixes':_0x473822[_0xa66f('0x18')]=_0xa66f('0x3e');break;case _0xa66f('0x3f'):_0x473822[_0xa66f('0x18')]=_0xa66f('0x40');break;case _0xa66f('0x41'):_0x473822[_0xa66f('0x18')]=_0xa66f('0x42');break;case _0xa66f('0x43'):_0x473822[_0xa66f('0x18')]=_0xa66f('0x44');break;case _0xa66f('0x45'):_0x473822[_0xa66f('0x18')]=_0xa66f('0x46');break;case'openchannelqueues':_0x473822[_0xa66f('0x18')]=_0xa66f('0x47');break;case'openchannelaccounts':_0x473822[_0xa66f('0x18')]='OpenchannelAccount';break;case _0xa66f('0x48'):_0x473822[_0xa66f('0x18')]='SmsQueue';break;case _0xa66f('0x49'):_0x473822[_0xa66f('0x18')]=_0xa66f('0x4a');break;case'whatsappqueues':_0x473822[_0xa66f('0x18')]='WhatsappQueue';break;case _0xa66f('0x4b'):_0x473822[_0xa66f('0x18')]=_0xa66f('0x4c');break;case _0xa66f('0x4d'):_0x473822[_0xa66f('0x18')]=_0xa66f('0x4e');break;case _0xa66f('0x4f'):case'queuecampaigns':_0x473822[_0xa66f('0x18')]=_0xa66f('0x3c');if(_0x337602){_0x473822[_0xa66f('0x19')]=[{'name':_0xa66f('0x38')},{'name':_0xa66f('0x3b')}];}break;case'users':case'agents':case _0xa66f('0x50'):_0x473822[_0xa66f('0x18')]=_0xa66f('0x34');if(_0x337602){_0x473822[_0xa66f('0x19')]=[{'name':_0xa66f('0x51'),'filter':{'field':_0xa66f('0x35'),'value':['admin',_0xa66f('0x52')]},'ignore':!![]},{'name':_0xa66f('0x53')},{'name':_0xa66f('0x37')}];}break;case'zendeskaccounts':_0x473822['childModel']=_0xa66f('0x54');break;case _0xa66f('0x55'):_0x473822[_0xa66f('0x18')]='SalesforceAccount';break;case'freshdeskaccounts':_0x473822['childModel']=_0xa66f('0x56');break;case _0xa66f('0x57'):_0x473822[_0xa66f('0x18')]=_0xa66f('0x58');break;case _0xa66f('0x59'):_0x473822[_0xa66f('0x18')]=_0xa66f('0x5a');break;case _0xa66f('0x5b'):_0x473822['childModel']=_0xa66f('0x5c');break;case _0xa66f('0x5d'):_0x473822[_0xa66f('0x18')]=_0xa66f('0x34');break;case _0xa66f('0x5e'):_0x473822[_0xa66f('0x18')]='CannedAnswer';break;case _0xa66f('0x5f'):_0x473822[_0xa66f('0x18')]=_0xa66f('0x60');break;case _0xa66f('0x61'):_0x473822[_0xa66f('0x18')]='Dashboard';break;case _0xa66f('0x62'):_0x473822['childModel']=_0xa66f('0x63');break;case'pauses':_0x473822['childModel']=_0xa66f('0x64');break;case _0xa66f('0x65'):_0x473822[_0xa66f('0x18')]=_0xa66f('0x66');break;case _0xa66f('0x67'):_0x473822[_0xa66f('0x18')]='Sound';break;case _0xa66f('0x68'):_0x473822[_0xa66f('0x18')]=_0xa66f('0x69');break;case _0xa66f('0x6a'):_0x473822['childModel']=_0xa66f('0x6b');break;case'triggers':_0x473822[_0xa66f('0x18')]=_0xa66f('0x6c');break;case _0xa66f('0x6d'):_0x473822[_0xa66f('0x18')]=_0xa66f('0x6e');break;case _0xa66f('0x6f'):_0x473822[_0xa66f('0x18')]='Variable';break;case _0xa66f('0x70'):_0x473822[_0xa66f('0x18')]=_0xa66f('0x71');break;case _0xa66f('0x72'):_0x473822[_0xa66f('0x18')]=_0xa66f('0x10');_0x473822[_0xa66f('0x19')]=[{'name':_0xa66f('0x73'),'field':'id','foreignKey':_0xa66f('0x74')}];break;case'metrics':_0x473822['childModel']=_0xa66f('0x75');break;}return _0x473822;}function _0x8c7bdc(_0x31ffea,_0xf5cdf8){var _0x2f1f1e=_0x31ffea[_0xa66f('0x76')](0x0)[_0xa66f('0x77')]()+_0x31ffea['slice'](0x1);var _0x1709eb={'type':_0x12a38f[_0xa66f('0x78')][_0xa66f('0x79')][_0xa66f('0x7a')],'raw':!![]};return new Promise(function(_0x53d22a,_0x29f216){var _0x242100=squel[_0xa66f('0x7b')]()[_0xa66f('0x6')](_0xa66f('0x7c')+_0x2f1f1e+_0xa66f('0x7d'),'id')['field']('ui.createdAt')[_0xa66f('0x7e')](_0xa66f('0x7f')+_0x31ffea+_0xa66f('0x80'),'ui')['where'](_0xa66f('0x81'),_0xf5cdf8['id']);return _0x12a38f[_0xa66f('0x82')][_0xa66f('0x83')](_0x242100[_0xa66f('0x84')](),_0x1709eb)[_0xa66f('0x8')](function(_0x465758){_0xf5cdf8[_0x2f1f1e+_0xa66f('0x85')]=_0x465758;_0x53d22a(_0x465758);})[_0xa66f('0xd')](function(_0x3b8428){_0x29f216(_0x3b8428);});});}return _0x234f2d['define'](_0xa66f('0x86'),attributes,{'tableName':_0xa66f('0x87'),'paranoid':![],'indexes':[],'timestamps':!![],'classMethods':{'getResources':function(_0x235e4f){var _0x172c42={'raw':![],'where':{}};var _0x4565f5={};var _0x148ad1={'count':0x0,'rows':[]};var _0x41ffa7=_0x235e4f[_0xa66f('0x83')]['section'];var _0x52f22d=_0x235e4f[_0xa66f('0x83')][_0xa66f('0x88')]||![];var _0x2540ad=_0x37ee13(_0x41ffa7,_0x52f22d);if(!_0x2540ad[_0xa66f('0x18')])throw new Error(_0xa66f('0x89')+_0x41ffa7+'\x27');var _0x508e73=[{'name':_0x41ffa7}];if(!_[_0xa66f('0x8a')](_0x2540ad['parentSections']))_0x508e73=_0x2540ad[_0xa66f('0x19')];var _0x66dbf4=[];for(var _0x450e1d=0x0;_0x450e1d<_0x508e73[_0xa66f('0x8b')];_0x450e1d++){_0x66dbf4['push'](_0x12a38f[_0xa66f('0x8c')][_0xa66f('0x8d')]({'where':{'userProfileId':_0x235e4f[_0xa66f('0x8e')]['id'],'name':_0x508e73[_0x450e1d][_0xa66f('0xc')]},'raw':!![]}));}return Promise[_0xa66f('0x8f')](_0x66dbf4)[_0xa66f('0x8')](function(_0xe06d44){var _0x2bdb18=_[_0xa66f('0x5')](_0xe06d44,function(_0x36b92f){return _0x36b92f?_0x36b92f:undefined;});var _0x290323=_[_0xa66f('0x5')](_0x508e73,['ignore',!![]]);var _0x1854d3=_[_0xa66f('0x8a')](_0x2bdb18)&&_[_0xa66f('0x8a')](_0x290323)?null:_[_0xa66f('0x90')](_0x290323,_0x2bdb18);if(!_0x1854d3)return null;var _0x178434=[];for(var _0x325916=0x0;_0x325916<_0x1854d3[_0xa66f('0x8b')];_0x325916++){var _0x68bd43=_['find'](_0x508e73,function(_0x5173f0){return _0x1854d3[_0x325916]?_0x5173f0[_0xa66f('0xc')]===_0x1854d3[_0x325916][_0xa66f('0xc')]:null;});if(_0x68bd43){if(_0x1854d3[_0x325916][_0xa66f('0x91')]){_0x178434[_0xa66f('0x92')](_0x2a2abf(_0x2540ad[_0xa66f('0x18')],_0x1854d3[_0x325916]));}else{if(!_0x1854d3[_0x325916][_0xa66f('0x93')]){_0x178434[_0xa66f('0x92')](_0x567d4f(_0x68bd43,_0x1854d3[_0x325916],_0x2540ad['childModel']));}else{if(_0x68bd43['model']){_0x178434[_0xa66f('0x92')](_0x1e1997(_0x68bd43,_0x1854d3[_0x325916]));}}}}}return Promise[_0xa66f('0x8f')](_0x178434);})[_0xa66f('0x8')](function(_0x5b03a4){var _0x53b01b=_0x5b03a4;var _0x2dc550=null;if(_0x53b01b){_0x2dc550=_0x53b01b[_0xa66f('0x8b')]===0x1?_0x53b01b[0x0]:null;}if(!_0x2dc550&&!_0x53b01b)return _0x148ad1;var _0x4293dc=_0x12a38f[_0x2540ad[_0xa66f('0x18')]]['rawAttributes'];_0x4565f5[_0xa66f('0x94')]=_[_0xa66f('0x95')](_0x4293dc);_0x4565f5[_0xa66f('0x83')]=_[_0xa66f('0x95')](_0x235e4f[_0xa66f('0x83')]);_0x4565f5[_0xa66f('0x96')]=_[_0xa66f('0x97')](_0x4565f5[_0xa66f('0x94')],_0x4565f5['query']);_0x172c42[_0xa66f('0x98')]=_[_0xa66f('0x97')](_0x4565f5['model'],qs['fields'](_0x235e4f[_0xa66f('0x83')][_0xa66f('0x99')]));_0x172c42['attributes']=_0x172c42[_0xa66f('0x98')]['length']?_0x172c42[_0xa66f('0x98')]:_0x4565f5['model'];if(!_0x235e4f['query']['hasOwnProperty'](_0xa66f('0x9a'))){_0x172c42[_0xa66f('0x9b')]=qs[_0xa66f('0x9b')](_0x235e4f[_0xa66f('0x83')][_0xa66f('0x9b')]);_0x172c42[_0xa66f('0x9c')]=qs[_0xa66f('0x9c')](_0x235e4f[_0xa66f('0x83')][_0xa66f('0x9c')]);}_0x172c42[_0xa66f('0x9d')]=qs[_0xa66f('0x9e')](_0x235e4f[_0xa66f('0x83')][_0xa66f('0x9e')]);_0x172c42[_0xa66f('0x9f')]=qs[_0xa66f('0x96')](_[_0xa66f('0xa0')](_0x235e4f['query'],_0x4565f5[_0xa66f('0x96')]));if(_0x235e4f['query'][_0xa66f('0x5')]){_0x172c42['where']=_[_0xa66f('0xa1')](_0x172c42[_0xa66f('0x9f')],{'$or':_[_0xa66f('0xb')](_0x4293dc,function(_0x5ecc98){if(_0x5ecc98['type'][_0xa66f('0xa2')]!==_0xa66f('0xa3')){var _0x38b869={};_0x38b869[_0x5ecc98[_0xa66f('0x6')]]={'$like':'%'+_0x235e4f[_0xa66f('0x83')][_0xa66f('0x5')]+'%'};return _0x38b869;}})});}var _0x30bcda=[];var _0x578bff=null;var _0x4013b9={};if(_0x2dc550){_0x578bff=_[_0xa66f('0x8d')](_0x508e73,[_0xa66f('0xc'),_0x2dc550[_0xa66f('0xc')]]);if(_0x578bff[_0xa66f('0x6')]){_0x4013b9={};if(_0x2540ad[_0xa66f('0x18')]===_0xa66f('0x10')){_0x4013b9[_0x578bff[_0xa66f('0xa4')]]=_[_0xa66f('0xb')](_0x2dc550[_0xa66f('0x9')],'id');}else{_0x4013b9[_0x578bff[_0xa66f('0xa4')]]=_0x2dc550[_0xa66f('0x9')];}_0x30bcda[_0xa66f('0x92')](_0x4013b9);}else{_0x172c42['where']['id']=_0x2dc550[_0xa66f('0x9')];}}else{for(var _0x722786=0x0;_0x722786<_0x53b01b[_0xa66f('0x8b')];_0x722786++){_0x578bff=_[_0xa66f('0x8d')](_0x508e73,[_0xa66f('0xc'),_0x53b01b[_0x722786][_0xa66f('0xc')]]);if(_0x578bff[_0xa66f('0x6')]){_0x4013b9={};_0x4013b9[_0x578bff[_0xa66f('0xa4')]]=_0x53b01b[_0x722786][_0xa66f('0x9')];_0x30bcda['push'](_0x4013b9);}else{if(!_0x172c42[_0xa66f('0x9f')]['id'])_0x172c42['where']['id']=[];_0x53b01b[_0x722786][_0xa66f('0x9')]['forEach'](function(_0x25d203){_0x172c42['where']['id'][_0xa66f('0x92')](_0x25d203);});}}}if(!_['isEmpty'](_0x30bcda)){_0x172c42[_0xa66f('0x9f')]=_[_0xa66f('0xa1')](_0x172c42[_0xa66f('0x9f')],{'$and':{'$or':_0x30bcda}});}_0x172c42=_[_0xa66f('0xa1')]({},_0x172c42,_0x235e4f[_0xa66f('0xa5')]);if(_0x2dc550&&!_0x2dc550[_0xa66f('0x93')]&&_0x2540ad['childModel']===_0xa66f('0x10')){if(_0x235e4f[_0xa66f('0x83')][_0xa66f('0xa6')]){_0x172c42['include']=[{'all':!![]}];}return _0x12a38f[_0x2540ad[_0xa66f('0x18')]][_0xa66f('0xa')](_0x172c42)['then'](function(_0x1e8510){var _0x473ebd=[];_0x1e8510['forEach'](function(_0x57f0b7){var _0x125bf4;switch(_0x57f0b7[_0xa66f('0xa7')]){case _0xa66f('0xa8'):_0x125bf4=_[_0xa66f('0x8d')](_0x2dc550[_0xa66f('0x9')],function(_0x495a04){return _0x495a04['id']===_0x57f0b7[_0xa66f('0x74')]&&_0x495a04[_0xa66f('0x12')]==='DefaultReports';});break;case _0xa66f('0xa9'):_0x125bf4=_[_0xa66f('0x8d')](_0x2dc550['associatedResources'],function(_0x453847){return _0x453847['id']===_0x57f0b7[_0xa66f('0x74')]&&_0x453847[_0xa66f('0x12')]===_0xa66f('0xaa');});break;}if(_0x125bf4)_0x473ebd[_0xa66f('0x92')](_0x57f0b7);});_0x148ad1['count']=_0x473ebd[_0xa66f('0x8b')];_0x148ad1[_0xa66f('0xab')]=_0x473ebd;return _0x148ad1;});}else{return _0x12a38f[_0x2540ad[_0xa66f('0x18')]][_0xa66f('0xac')]({'where':_0x172c42[_0xa66f('0x9f')]})[_0xa66f('0x8')](function(_0x4e318d){_0x148ad1[_0xa66f('0xac')]=_0x4e318d;if(_0x235e4f[_0xa66f('0x83')][_0xa66f('0xa6')]){if(_0x2540ad[_0xa66f('0x18')]===_0xa66f('0x1f')){_0x172c42[_0xa66f('0xad')]=[{'model':_0x12a38f[_0xa66f('0x69')],'as':'Tags','attributes':['id','name',_0xa66f('0xae')],'required':_0x235e4f['query'][_0xa66f('0xaf')]?!![]:![]},{'model':_0x12a38f[_0xa66f('0x69')],'as':'ThroughTags','attributes':['id',_0xa66f('0xc'),_0xa66f('0xae')],'through':_0x235e4f[_0xa66f('0x83')]['tag']?{'attributes':[],'where':{'TagId':_0x235e4f['query'][_0xa66f('0xaf')]||undefined}}:{},'required':_0x235e4f['query'][_0xa66f('0xaf')]?!![]:![]}];}else{_0x172c42[_0xa66f('0xad')]=[{'all':!![]}];}}return _0x12a38f[_0x2540ad[_0xa66f('0x18')]]['findAll'](_0x172c42);})[_0xa66f('0x8')](function(_0x4cefa7){_0x148ad1[_0xa66f('0xab')]=_0x4cefa7;if(_0x41ffa7===_0xa66f('0x53')&&_0x235e4f[_0xa66f('0x83')][_0xa66f('0xb0')]==='true'){var _0x20a5bc=[];for(var _0x3ac90f=0x0;_0x3ac90f<_0x148ad1[_0xa66f('0xab')][_0xa66f('0x8b')];_0x3ac90f++){_0x20a5bc[_0xa66f('0x92')](_0x8c7bdc(_0xa66f('0xb1'),_0x148ad1['rows'][_0x3ac90f][_0xa66f('0xb2')]));_0x20a5bc[_0xa66f('0x92')](_0x8c7bdc(_0xa66f('0xb3'),_0x148ad1[_0xa66f('0xab')][_0x3ac90f][_0xa66f('0xb2')]));_0x20a5bc['push'](_0x8c7bdc('fax',_0x148ad1[_0xa66f('0xab')][_0x3ac90f][_0xa66f('0xb2')]));_0x20a5bc[_0xa66f('0x92')](_0x8c7bdc(_0xa66f('0xb4'),_0x148ad1[_0xa66f('0xab')][_0x3ac90f][_0xa66f('0xb2')]));_0x20a5bc[_0xa66f('0x92')](_0x8c7bdc(_0xa66f('0xb5'),_0x148ad1[_0xa66f('0xab')][_0x3ac90f][_0xa66f('0xb2')]));_0x20a5bc[_0xa66f('0x92')](_0x8c7bdc(_0xa66f('0xb6'),_0x148ad1['rows'][_0x3ac90f][_0xa66f('0xb2')]));}return Promise[_0xa66f('0x8f')](_0x20a5bc)['then'](function(){return _0x148ad1;});}return _0x148ad1;});}});}}});};
\ No newline at end of file
+var _0x7046=['ChatWebsite','faxqueues','FaxQueue','faxaccounts','FaxAccount','inboundroutes','internalroutes','outboundroutes','VoiceExtension','contexts','VoiceContext','voicemails','VoiceMail','voicerecordings','Agents','membername','role','Telephones','User','telephone','VoiceQueues','inbound','queue','outbound','musiconholds','chanspies','voiceprefixes','VoicePrefix','ivrcampaigns','mailqueues','MailQueue','MailAccount','mailsubstatuses','openchannelqueues','OpenchannelQueue','openchannelaccounts','OpenchannelAccount','smsaccounts','SmsAccount','WhatsappQueue','WhatsappAccount','teams','Team','queuecampaigns','VoiceQueue','users','telephones','Users','admin','user','zendeskaccounts','ZendeskAccount','salesforceaccounts','freshdeskaccounts','FreshdeskAccount','DeskAccount','zohoaccounts','ZohoAccount','vtigeraccounts','cannedanswers','CannedAnswer','dispositions','Disposition','customdashboards','Dashboard','intervals','Interval','pauses','Pause','scheduler','Sound','tags','templates','Template','triggers','Trigger','trunks','Trunk','Variable','plugins','Plugin','extractedreports','reportId','AnalyticMetric','charAt','Sequelize','QueryTypes','SELECT','select','ui.','InteractionId','ui.createdAt','from','where','ui.UserId\x20=\x20?','sequelize','OpenTabs','define','UserProfile','query','section','mergeResources','Invalid\x20section\x20\x27','isEmpty','length','push','UserProfileSection','find','params','all','ignore','autoAssociation','keys','intersection','attributes','fields','limit','offset','order','sort','filters','pick','key','foreignKey','forEach','merge','includeAll','reportType','custom','count','rows','Tags','tag','Tag','color','include','openTabs','true','dataValues','fax','openchannel','whatsapp','lodash','./userProfile.attributes','../../components/parsers/qs','squel','models','filter','value','associatedResources','map','catch','field','model','findAll','then','name','resolve','UserProfileResource','AnalyticExtractedReport','resourceId','type','toLowerCase','squareprojects','childModel','SquareProject','odbc','SquareOdbc','squarerecordings','SquareRecording','parentSections','projectName','projects','JscriptyProject','CmContact','ListId','CmCompany','globalcustomfields','CmCustomField','chatqueues','ChatQueue','chatwebsites'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x7046,0x144));var _0x6704=function(_0x53ccf2,_0x13cb67){_0x53ccf2=_0x53ccf2-0x0;var _0x5a2964=_0x7046[_0x53ccf2];return _0x5a2964;};'use strict';var _=require(_0x6704('0x0'));var attributes=require(_0x6704('0x1'));var qs=require(_0x6704('0x2'));var squel=require(_0x6704('0x3'));module['exports']=function(_0x1fd895){var _0x4399c6=_0x1fd895[_0x6704('0x4')];function _0x5258e7(_0x1e9b2a,_0x35bcc6){return new Promise(function(_0x3f4169,_0x626a14){if(!_0x35bcc6)return _0x3f4169(null);var _0x2917be=_0x35bcc6['filter']?{[_0x35bcc6[_0x6704('0x5')]['field']]:_0x35bcc6['filter'][_0x6704('0x6')]}:undefined;return _0x4399c6[_0x1e9b2a]['findAll']({'where':_0x2917be,'raw':!![]})['then'](function(_0x3ca599){_0x35bcc6[_0x6704('0x7')]=_[_0x6704('0x8')](_0x3ca599,'id');_0x3f4169(_0x35bcc6);})[_0x6704('0x9')](function(_0x356687){_0x626a14(_0x356687);});});}function _0x40d57d(_0x3dfda4,_0x426715){return new Promise(function(_0x58cc09,_0x2c8b0f){var _0x29e6f7=_0x3dfda4['filter']?{[_0x3dfda4[_0x6704('0x5')][_0x6704('0xa')]]:_0x3dfda4[_0x6704('0x5')][_0x6704('0x6')]}:undefined;return _0x4399c6[_0x3dfda4[_0x6704('0xb')]][_0x6704('0xc')]({'where':_0x29e6f7,'raw':!![]})[_0x6704('0xd')](function(_0x2da4df){_0x426715[_0x6704('0x7')]=_['map'](_0x2da4df,function(_0x168258){return _0x168258[_0x6704('0xe')];});_0x58cc09(_0x426715);})[_0x6704('0x9')](function(_0x4fef80){_0x2c8b0f(_0x4fef80);});});}function _0x11782a(_0x244537,_0x3e7d1f,_0x29fa46){if(!_0x3e7d1f)return Promise[_0x6704('0xf')](null);return new Promise(function(_0x5adb35,_0x1e5f6e){return _0x4399c6[_0x6704('0x10')][_0x6704('0xc')]({'where':{'sectionId':_0x3e7d1f['id']},'raw':!![]})[_0x6704('0xd')](function(_0x344ed9){if(_0x244537['field']&&_0x244537[_0x6704('0xa')]!=='id'){_0x3e7d1f[_0x6704('0x7')]=_[_0x6704('0x8')](_0x344ed9,function(_0x156106){return _0x156106[_0x244537[_0x6704('0xa')]];});}else{if(_0x29fa46===_0x6704('0x11')){_0x3e7d1f[_0x6704('0x7')]=_['map'](_0x344ed9,function(_0x1df6d7){return{'id':_0x1df6d7[_0x6704('0x12')],'type':_0x1df6d7[_0x6704('0x13')]};});}else{_0x3e7d1f['associatedResources']=_['map'](_0x344ed9,function(_0x48d829){return _0x48d829[_0x6704('0x12')];});}}_0x5adb35(_0x3e7d1f);})[_0x6704('0x9')](function(_0x4ecf4c){_0x1e5f6e(_0x4ecf4c);});});}function _0x41f89e(_0x56d1e1,_0xf2c459){var _0xabb97a={'parentSections':[]};switch(_0x56d1e1[_0x6704('0x14')]()){case _0x6704('0x15'):_0xabb97a[_0x6704('0x16')]=_0x6704('0x17');break;case _0x6704('0x18'):_0xabb97a[_0x6704('0x16')]=_0x6704('0x19');break;case _0x6704('0x1a'):_0xabb97a[_0x6704('0x16')]=_0x6704('0x1b');_0xabb97a[_0x6704('0x1c')]=[{'name':'SquareProjects','field':'name','foreignKey':_0x6704('0x1d')}];break;case _0x6704('0x1e'):_0xabb97a[_0x6704('0x16')]=_0x6704('0x1f');break;case'contacts':_0xabb97a[_0x6704('0x16')]=_0x6704('0x20');_0xabb97a['parentSections']=[{'name':'Lists','field':'id','foreignKey':_0x6704('0x21')}];break;case'lists':_0xabb97a[_0x6704('0x16')]='CmList';break;case'companies':_0xabb97a[_0x6704('0x16')]=_0x6704('0x22');break;case _0x6704('0x23'):_0xabb97a['childModel']=_0x6704('0x24');break;case _0x6704('0x25'):_0xabb97a[_0x6704('0x16')]=_0x6704('0x26');break;case _0x6704('0x27'):_0xabb97a[_0x6704('0x16')]=_0x6704('0x28');break;case _0x6704('0x29'):_0xabb97a[_0x6704('0x16')]=_0x6704('0x2a');break;case _0x6704('0x2b'):_0xabb97a[_0x6704('0x16')]=_0x6704('0x2c');break;case _0x6704('0x2d'):case _0x6704('0x2e'):case _0x6704('0x2f'):_0xabb97a[_0x6704('0x16')]=_0x6704('0x30');break;case _0x6704('0x31'):_0xabb97a[_0x6704('0x16')]=_0x6704('0x32');break;case _0x6704('0x33'):_0xabb97a[_0x6704('0x16')]=_0x6704('0x34');break;case _0x6704('0x35'):_0xabb97a['childModel']='VoiceRecording';_0xabb97a['parentSections']=[{'name':_0x6704('0x36'),'field':_0x6704('0xe'),'foreignKey':_0x6704('0x37'),'model':'User','filter':{'field':_0x6704('0x38'),'value':['agent']}},{'name':_0x6704('0x39'),'field':_0x6704('0xe'),'foreignKey':_0x6704('0x37'),'model':_0x6704('0x3a'),'filter':{'field':_0x6704('0x38'),'value':[_0x6704('0x3b')]}},{'name':_0x6704('0x3c'),'field':_0x6704('0xe'),'foreignKey':'queue','model':'VoiceQueue','filter':{'field':_0x6704('0x13'),'value':[_0x6704('0x3d')]}},{'name':'QueueCampaigns','field':'name','foreignKey':_0x6704('0x3e'),'model':'VoiceQueue','filter':{'field':_0x6704('0x13'),'value':[_0x6704('0x3f')]}}];break;case _0x6704('0x40'):_0xabb97a[_0x6704('0x16')]='VoiceMusicOnHold';break;case _0x6704('0x41'):_0xabb97a[_0x6704('0x16')]='VoiceChanSpy';break;case _0x6704('0x42'):_0xabb97a['childModel']=_0x6704('0x43');break;case _0x6704('0x44'):_0xabb97a[_0x6704('0x16')]='Campaign';break;case _0x6704('0x45'):_0xabb97a[_0x6704('0x16')]=_0x6704('0x46');break;case'mailaccounts':_0xabb97a[_0x6704('0x16')]=_0x6704('0x47');break;case _0x6704('0x48'):_0xabb97a[_0x6704('0x16')]='MailSubstatus';break;case _0x6704('0x49'):_0xabb97a['childModel']=_0x6704('0x4a');break;case _0x6704('0x4b'):_0xabb97a[_0x6704('0x16')]=_0x6704('0x4c');break;case'smsqueues':_0xabb97a['childModel']='SmsQueue';break;case _0x6704('0x4d'):_0xabb97a['childModel']=_0x6704('0x4e');break;case'whatsappqueues':_0xabb97a[_0x6704('0x16')]=_0x6704('0x4f');break;case'whatsappaccounts':_0xabb97a[_0x6704('0x16')]=_0x6704('0x50');break;case _0x6704('0x51'):_0xabb97a[_0x6704('0x16')]=_0x6704('0x52');break;case'voicequeues':case _0x6704('0x53'):_0xabb97a[_0x6704('0x16')]=_0x6704('0x54');if(_0xf2c459){_0xabb97a[_0x6704('0x1c')]=[{'name':_0x6704('0x3c')},{'name':'QueueCampaigns'}];}break;case _0x6704('0x55'):case'agents':case _0x6704('0x56'):_0xabb97a[_0x6704('0x16')]=_0x6704('0x3a');if(_0xf2c459){_0xabb97a[_0x6704('0x1c')]=[{'name':_0x6704('0x57'),'filter':{'field':'role','value':[_0x6704('0x58'),_0x6704('0x59')]},'ignore':!![]},{'name':'Agents'},{'name':_0x6704('0x39')}];}break;case _0x6704('0x5a'):_0xabb97a[_0x6704('0x16')]=_0x6704('0x5b');break;case _0x6704('0x5c'):_0xabb97a[_0x6704('0x16')]='SalesforceAccount';break;case _0x6704('0x5d'):_0xabb97a['childModel']=_0x6704('0x5e');break;case'sugarcrmaccounts':_0xabb97a[_0x6704('0x16')]='SugarcrmAccount';break;case'deskaccounts':_0xabb97a[_0x6704('0x16')]=_0x6704('0x5f');break;case _0x6704('0x60'):_0xabb97a[_0x6704('0x16')]=_0x6704('0x61');break;case _0x6704('0x62'):_0xabb97a['childModel']='User';break;case _0x6704('0x63'):_0xabb97a[_0x6704('0x16')]=_0x6704('0x64');break;case _0x6704('0x65'):_0xabb97a[_0x6704('0x16')]=_0x6704('0x66');break;case _0x6704('0x67'):_0xabb97a[_0x6704('0x16')]=_0x6704('0x68');break;case _0x6704('0x69'):_0xabb97a[_0x6704('0x16')]=_0x6704('0x6a');break;case _0x6704('0x6b'):_0xabb97a[_0x6704('0x16')]=_0x6704('0x6c');break;case _0x6704('0x6d'):_0xabb97a[_0x6704('0x16')]='Schedule';break;case'sounds':_0xabb97a[_0x6704('0x16')]=_0x6704('0x6e');break;case _0x6704('0x6f'):_0xabb97a[_0x6704('0x16')]='Tag';break;case _0x6704('0x70'):_0xabb97a[_0x6704('0x16')]=_0x6704('0x71');break;case _0x6704('0x72'):_0xabb97a['childModel']=_0x6704('0x73');break;case _0x6704('0x74'):_0xabb97a[_0x6704('0x16')]=_0x6704('0x75');break;case'variables':_0xabb97a['childModel']=_0x6704('0x76');break;case _0x6704('0x77'):_0xabb97a[_0x6704('0x16')]=_0x6704('0x78');break;case _0x6704('0x79'):_0xabb97a[_0x6704('0x16')]='AnalyticExtractedReport';_0xabb97a[_0x6704('0x1c')]=[{'name':'Reports','field':'id','foreignKey':_0x6704('0x7a')}];break;case'metrics':_0xabb97a['childModel']=_0x6704('0x7b');break;}return _0xabb97a;}function _0x2d1603(_0x18003e,_0xedf7ac){var _0x1514c5=_0x18003e[_0x6704('0x7c')](0x0)['toUpperCase']()+_0x18003e['slice'](0x1);var _0x46c386={'type':_0x4399c6[_0x6704('0x7d')][_0x6704('0x7e')][_0x6704('0x7f')],'raw':!![]};return new Promise(function(_0x3d6c5b,_0x15131a){var _0x5759ca=squel[_0x6704('0x80')]()[_0x6704('0xa')](_0x6704('0x81')+_0x1514c5+_0x6704('0x82'),'id')[_0x6704('0xa')](_0x6704('0x83'))[_0x6704('0x84')]('user_has_'+_0x18003e+'_interactions','ui')[_0x6704('0x85')](_0x6704('0x86'),_0xedf7ac['id']);return _0x4399c6[_0x6704('0x87')]['query'](_0x5759ca['toString'](),_0x46c386)[_0x6704('0xd')](function(_0x334ddb){_0xedf7ac[_0x1514c5+_0x6704('0x88')]=_0x334ddb;_0x3d6c5b(_0x334ddb);})[_0x6704('0x9')](function(_0x5d6f52){_0x15131a(_0x5d6f52);});});}return _0x1fd895[_0x6704('0x89')](_0x6704('0x8a'),attributes,{'tableName':'user_profiles','paranoid':![],'indexes':[],'timestamps':!![],'classMethods':{'getResources':function(_0x4e3626){var _0x27b424={'raw':![],'where':{}};var _0x270e9e={};var _0x3f93f2={'count':0x0,'rows':[]};var _0x2d9b2f=_0x4e3626[_0x6704('0x8b')][_0x6704('0x8c')];var _0x295b2f=_0x4e3626['query'][_0x6704('0x8d')]||![];var _0x40f1f8=_0x41f89e(_0x2d9b2f,_0x295b2f);if(!_0x40f1f8[_0x6704('0x16')])throw new Error(_0x6704('0x8e')+_0x2d9b2f+'\x27');var _0x1ea6b2=[{'name':_0x2d9b2f}];if(!_[_0x6704('0x8f')](_0x40f1f8[_0x6704('0x1c')]))_0x1ea6b2=_0x40f1f8[_0x6704('0x1c')];var _0x1b81d6=[];for(var _0x3e99c6=0x0;_0x3e99c6<_0x1ea6b2[_0x6704('0x90')];_0x3e99c6++){_0x1b81d6[_0x6704('0x91')](_0x4399c6[_0x6704('0x92')][_0x6704('0x93')]({'where':{'userProfileId':_0x4e3626[_0x6704('0x94')]['id'],'name':_0x1ea6b2[_0x3e99c6][_0x6704('0xe')]},'raw':!![]}));}return Promise[_0x6704('0x95')](_0x1b81d6)[_0x6704('0xd')](function(_0x202ec0){var _0x58c74f=_[_0x6704('0x5')](_0x202ec0,function(_0x74daa4){return _0x74daa4?_0x74daa4:undefined;});var _0xb8b952=_[_0x6704('0x5')](_0x1ea6b2,['ignore',!![]]);var _0x51e599=_[_0x6704('0x8f')](_0x58c74f)&&_['isEmpty'](_0xb8b952)?null:_['union'](_0xb8b952,_0x58c74f);if(!_0x51e599)return null;var _0x1fb2d4=[];for(var _0x4e4f30=0x0;_0x4e4f30<_0x51e599[_0x6704('0x90')];_0x4e4f30++){var _0x574d48=_[_0x6704('0x93')](_0x1ea6b2,function(_0x57c55d){return _0x51e599[_0x4e4f30]?_0x57c55d[_0x6704('0xe')]===_0x51e599[_0x4e4f30][_0x6704('0xe')]:null;});if(_0x574d48){if(_0x51e599[_0x4e4f30][_0x6704('0x96')]){_0x1fb2d4['push'](_0x5258e7(_0x40f1f8['childModel'],_0x51e599[_0x4e4f30]));}else{if(!_0x51e599[_0x4e4f30][_0x6704('0x97')]){_0x1fb2d4['push'](_0x11782a(_0x574d48,_0x51e599[_0x4e4f30],_0x40f1f8[_0x6704('0x16')]));}else{if(_0x574d48['model']){_0x1fb2d4[_0x6704('0x91')](_0x40d57d(_0x574d48,_0x51e599[_0x4e4f30]));}}}}}return Promise[_0x6704('0x95')](_0x1fb2d4);})[_0x6704('0xd')](function(_0x1d0388){var _0x1b131a=_0x1d0388;var _0x12d9fc=null;if(_0x1b131a){_0x12d9fc=_0x1b131a[_0x6704('0x90')]===0x1?_0x1b131a[0x0]:null;}if(!_0x12d9fc&&!_0x1b131a)return _0x3f93f2;var _0x2e08dc=_0x4399c6[_0x40f1f8['childModel']]['rawAttributes'];_0x270e9e[_0x6704('0xb')]=_[_0x6704('0x98')](_0x2e08dc);_0x270e9e[_0x6704('0x8b')]=_[_0x6704('0x98')](_0x4e3626[_0x6704('0x8b')]);_0x270e9e['filters']=_[_0x6704('0x99')](_0x270e9e[_0x6704('0xb')],_0x270e9e[_0x6704('0x8b')]);_0x27b424[_0x6704('0x9a')]=_[_0x6704('0x99')](_0x270e9e['model'],qs[_0x6704('0x9b')](_0x4e3626[_0x6704('0x8b')][_0x6704('0x9b')]));_0x27b424['attributes']=_0x27b424['attributes'][_0x6704('0x90')]?_0x27b424[_0x6704('0x9a')]:_0x270e9e[_0x6704('0xb')];if(!_0x4e3626[_0x6704('0x8b')]['hasOwnProperty']('nolimit')){_0x27b424['limit']=qs[_0x6704('0x9c')](_0x4e3626[_0x6704('0x8b')]['limit']);_0x27b424['offset']=qs[_0x6704('0x9d')](_0x4e3626[_0x6704('0x8b')][_0x6704('0x9d')]);}_0x27b424[_0x6704('0x9e')]=qs[_0x6704('0x9f')](_0x4e3626['query'][_0x6704('0x9f')]);_0x27b424[_0x6704('0x85')]=qs[_0x6704('0xa0')](_[_0x6704('0xa1')](_0x4e3626[_0x6704('0x8b')],_0x270e9e[_0x6704('0xa0')]));if(_0x4e3626[_0x6704('0x8b')][_0x6704('0x5')]){_0x27b424[_0x6704('0x85')]=_['merge'](_0x27b424[_0x6704('0x85')],{'$or':_[_0x6704('0x8')](_0x2e08dc,function(_0x361f12){if(_0x361f12[_0x6704('0x13')][_0x6704('0xa2')]!=='VIRTUAL'){var _0x370e44={};_0x370e44[_0x361f12['field']]={'$like':'%'+_0x4e3626[_0x6704('0x8b')][_0x6704('0x5')]+'%'};return _0x370e44;}})});}var _0x39bdeb=[];var _0x35eba8=null;var _0x2f778e={};if(_0x12d9fc){_0x35eba8=_[_0x6704('0x93')](_0x1ea6b2,[_0x6704('0xe'),_0x12d9fc[_0x6704('0xe')]]);if(_0x35eba8['field']){_0x2f778e={};if(_0x40f1f8['childModel']===_0x6704('0x11')){_0x2f778e[_0x35eba8[_0x6704('0xa3')]]=_[_0x6704('0x8')](_0x12d9fc[_0x6704('0x7')],'id');}else{_0x2f778e[_0x35eba8[_0x6704('0xa3')]]=_0x12d9fc[_0x6704('0x7')];}_0x39bdeb['push'](_0x2f778e);}else{_0x27b424[_0x6704('0x85')]['id']=_0x12d9fc['associatedResources'];}}else{for(var _0x39483b=0x0;_0x39483b<_0x1b131a[_0x6704('0x90')];_0x39483b++){_0x35eba8=_[_0x6704('0x93')](_0x1ea6b2,[_0x6704('0xe'),_0x1b131a[_0x39483b][_0x6704('0xe')]]);if(_0x35eba8[_0x6704('0xa')]){_0x2f778e={};_0x2f778e[_0x35eba8[_0x6704('0xa3')]]=_0x1b131a[_0x39483b][_0x6704('0x7')];_0x39bdeb[_0x6704('0x91')](_0x2f778e);}else{if(!_0x27b424['where']['id'])_0x27b424[_0x6704('0x85')]['id']=[];_0x1b131a[_0x39483b][_0x6704('0x7')][_0x6704('0xa4')](function(_0x4f03f0){_0x27b424[_0x6704('0x85')]['id'][_0x6704('0x91')](_0x4f03f0);});}}}if(!_[_0x6704('0x8f')](_0x39bdeb)){_0x27b424[_0x6704('0x85')]=_['merge'](_0x27b424['where'],{'$and':{'$or':_0x39bdeb}});}_0x27b424=_[_0x6704('0xa5')]({},_0x27b424,_0x4e3626['options']);if(_0x12d9fc&&!_0x12d9fc[_0x6704('0x97')]&&_0x40f1f8[_0x6704('0x16')]===_0x6704('0x11')){if(_0x4e3626['query'][_0x6704('0xa6')]){_0x27b424['include']=[{'all':!![]}];}return _0x4399c6[_0x40f1f8[_0x6704('0x16')]][_0x6704('0xc')](_0x27b424)[_0x6704('0xd')](function(_0x586f77){var _0x48c6bd=[];_0x586f77['forEach'](function(_0x14d04a){var _0x33659d;switch(_0x14d04a[_0x6704('0xa7')]){case'default':_0x33659d=_[_0x6704('0x93')](_0x12d9fc['associatedResources'],function(_0x2761b5){return _0x2761b5['id']===_0x14d04a['reportId']&&_0x2761b5[_0x6704('0x13')]==='DefaultReports';});break;case _0x6704('0xa8'):_0x33659d=_[_0x6704('0x93')](_0x12d9fc['associatedResources'],function(_0x31dd63){return _0x31dd63['id']===_0x14d04a[_0x6704('0x7a')]&&_0x31dd63[_0x6704('0x13')]==='CustomReports';});break;}if(_0x33659d)_0x48c6bd['push'](_0x14d04a);});_0x3f93f2[_0x6704('0xa9')]=_0x48c6bd[_0x6704('0x90')];_0x3f93f2[_0x6704('0xaa')]=_0x48c6bd;return _0x3f93f2;});}else{return _0x4399c6[_0x40f1f8[_0x6704('0x16')]][_0x6704('0xa9')]({'where':_0x27b424[_0x6704('0x85')]})[_0x6704('0xd')](function(_0x51420d){_0x3f93f2[_0x6704('0xa9')]=_0x51420d;if(_0x4e3626[_0x6704('0x8b')][_0x6704('0xa6')]){if(_0x40f1f8[_0x6704('0x16')]===_0x6704('0x20')){_0x27b424['include']=[{'model':_0x4399c6['Tag'],'as':_0x6704('0xab'),'attributes':['id','name','color'],'required':_0x4e3626[_0x6704('0x8b')][_0x6704('0xac')]?!![]:![]},{'model':_0x4399c6[_0x6704('0xad')],'as':'ThroughTags','attributes':['id',_0x6704('0xe'),_0x6704('0xae')],'through':_0x4e3626[_0x6704('0x8b')][_0x6704('0xac')]?{'attributes':[],'where':{'TagId':_0x4e3626[_0x6704('0x8b')][_0x6704('0xac')]||undefined}}:{},'required':_0x4e3626[_0x6704('0x8b')][_0x6704('0xac')]?!![]:![]}];}else{_0x27b424[_0x6704('0xaf')]=[{'all':!![]}];}}return _0x4399c6[_0x40f1f8[_0x6704('0x16')]][_0x6704('0xc')](_0x27b424);})[_0x6704('0xd')](function(_0x27727e){_0x3f93f2[_0x6704('0xaa')]=_0x27727e;if(_0x2d9b2f===_0x6704('0x36')&&_0x4e3626[_0x6704('0x8b')][_0x6704('0xb0')]===_0x6704('0xb1')){var _0x583faa=[];for(var _0x1c5af4=0x0;_0x1c5af4<_0x3f93f2[_0x6704('0xaa')]['length'];_0x1c5af4++){_0x583faa[_0x6704('0x91')](_0x2d1603('chat',_0x3f93f2[_0x6704('0xaa')][_0x1c5af4]['dataValues']));_0x583faa['push'](_0x2d1603('sms',_0x3f93f2[_0x6704('0xaa')][_0x1c5af4][_0x6704('0xb2')]));_0x583faa['push'](_0x2d1603(_0x6704('0xb3'),_0x3f93f2[_0x6704('0xaa')][_0x1c5af4][_0x6704('0xb2')]));_0x583faa['push'](_0x2d1603('mail',_0x3f93f2[_0x6704('0xaa')][_0x1c5af4][_0x6704('0xb2')]));_0x583faa[_0x6704('0x91')](_0x2d1603(_0x6704('0xb4'),_0x3f93f2[_0x6704('0xaa')][_0x1c5af4][_0x6704('0xb2')]));_0x583faa[_0x6704('0x91')](_0x2d1603(_0x6704('0xb5'),_0x3f93f2[_0x6704('0xaa')][_0x1c5af4][_0x6704('0xb2')]));}return Promise[_0x6704('0x95')](_0x583faa)[_0x6704('0xd')](function(){return _0x3f93f2;});}return _0x3f93f2;});}});}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5581=['request\x20sent','debug','stringify','error','code','message','catch','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','client','http','defaults','redis','localhost','socket.io-emitter','register','request','then','info','UserProfile,\x20%s,\x20%s'];(function(_0x11081d,_0x3229cc){var _0x4d6780=function(_0x316a0b){while(--_0x316a0b){_0x11081d['push'](_0x11081d['shift']());}};_0x4d6780(++_0x3229cc);}(_0x5581,0x115));var _0x1558=function(_0x456fb1,_0x859a1d){_0x456fb1=_0x456fb1-0x0;var _0x4083d6=_0x5581[_0x456fb1];return _0x4083d6;};'use strict';var _=require(_0x1558('0x0'));var util=require('util');var moment=require(_0x1558('0x1'));var BPromise=require(_0x1558('0x2'));var rs=require(_0x1558('0x3'));var fs=require('fs');var Redis=require(_0x1558('0x4'));var db=require(_0x1558('0x5'))['db'];var utils=require(_0x1558('0x6'));var logger=require('../../config/logger')(_0x1558('0x7'));var config=require(_0x1558('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x1558('0x9')][_0x1558('0xa')]({'port':0x232a});config['redis']=_[_0x1558('0xb')](config[_0x1558('0xc')],{'host':_0x1558('0xd'),'port':0x18eb});var socket=require(_0x1558('0xe'))(new Redis(config[_0x1558('0xc')]));require('./userProfile.socket')[_0x1558('0xf')](socket);function respondWithRpcPromise(_0xe26278,_0x5f43a1,_0x296193){return new BPromise(function(_0x30f42b,_0x4e97c8){return client[_0x1558('0x10')](_0xe26278,_0x296193)[_0x1558('0x11')](function(_0x2bb578){logger[_0x1558('0x12')](_0x1558('0x13'),_0x5f43a1,_0x1558('0x14'));logger[_0x1558('0x15')]('UserProfile,\x20%s,\x20%s,\x20%s',_0x5f43a1,_0x1558('0x14'),JSON[_0x1558('0x16')](_0x2bb578));if(_0x2bb578[_0x1558('0x17')]){if(_0x2bb578[_0x1558('0x17')][_0x1558('0x18')]===0x1f4){logger[_0x1558('0x17')](_0x1558('0x13'),_0x5f43a1,_0x2bb578[_0x1558('0x17')][_0x1558('0x19')]);return _0x4e97c8(_0x2bb578['error'][_0x1558('0x19')]);}logger[_0x1558('0x17')](_0x1558('0x13'),_0x5f43a1,_0x2bb578['error'][_0x1558('0x19')]);return _0x30f42b(_0x2bb578[_0x1558('0x17')][_0x1558('0x19')]);}else{logger[_0x1558('0x12')](_0x1558('0x13'),_0x5f43a1,'request\x20sent');_0x30f42b(_0x2bb578['result'][_0x1558('0x19')]);}})[_0x1558('0x1a')](function(_0xaa0a82){logger[_0x1558('0x17')](_0x1558('0x13'),_0x5f43a1,_0xaa0a82);_0x4e97c8(_0xaa0a82);});});}
\ No newline at end of file
+var _0xc274=['register','request','then','request\x20sent','debug','stringify','error','UserProfile,\x20%s,\x20%s','message','info','result','catch','util','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','http','redis','defaults','socket.io-emitter','./userProfile.socket'];(function(_0xcc2fce,_0x24b95e){var _0x287b9a=function(_0x3503d1){while(--_0x3503d1){_0xcc2fce['push'](_0xcc2fce['shift']());}};_0x287b9a(++_0x24b95e);}(_0xc274,0x151));var _0x4c27=function(_0x399d18,_0x5c07da){_0x399d18=_0x399d18-0x0;var _0x3e5dd1=_0xc274[_0x399d18];return _0x3e5dd1;};'use strict';var _=require('lodash');var util=require(_0x4c27('0x0'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x4c27('0x1'));var fs=require('fs');var Redis=require(_0x4c27('0x2'));var db=require(_0x4c27('0x3'))['db'];var utils=require(_0x4c27('0x4'));var logger=require(_0x4c27('0x5'))(_0x4c27('0x6'));var config=require('../../config/environment');var jayson=require(_0x4c27('0x7'));var client=jayson['client'][_0x4c27('0x8')]({'port':0x232a});config[_0x4c27('0x9')]=_[_0x4c27('0xa')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x4c27('0xb'))(new Redis(config['redis']));require(_0x4c27('0xc'))[_0x4c27('0xd')](socket);function respondWithRpcPromise(_0x2d0a27,_0x846d26,_0x2604cf){return new BPromise(function(_0x5c666e,_0x29b5ff){return client[_0x4c27('0xe')](_0x2d0a27,_0x2604cf)[_0x4c27('0xf')](function(_0x163df3){logger['info']('UserProfile,\x20%s,\x20%s',_0x846d26,_0x4c27('0x10'));logger[_0x4c27('0x11')]('UserProfile,\x20%s,\x20%s,\x20%s',_0x846d26,'request\x20sent',JSON[_0x4c27('0x12')](_0x163df3));if(_0x163df3[_0x4c27('0x13')]){if(_0x163df3[_0x4c27('0x13')]['code']===0x1f4){logger[_0x4c27('0x13')](_0x4c27('0x14'),_0x846d26,_0x163df3[_0x4c27('0x13')]['message']);return _0x29b5ff(_0x163df3[_0x4c27('0x13')]['message']);}logger['error'](_0x4c27('0x14'),_0x846d26,_0x163df3[_0x4c27('0x13')][_0x4c27('0x15')]);return _0x5c666e(_0x163df3[_0x4c27('0x13')]['message']);}else{logger[_0x4c27('0x16')](_0x4c27('0x14'),_0x846d26,'request\x20sent');_0x5c666e(_0x163df3[_0x4c27('0x17')][_0x4c27('0x15')]);}})[_0x4c27('0x18')](function(_0x42a9d6){logger['error'](_0x4c27('0x14'),_0x846d26,_0x42a9d6);_0x29b5ff(_0x42a9d6);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x88bc=['length','userProfile:','./userProfile.events','save','update','emit','removeListener','register'];(function(_0x186376,_0x5d988a){var _0x2dbdd9=function(_0x96908e){while(--_0x96908e){_0x186376['push'](_0x186376['shift']());}};_0x2dbdd9(++_0x5d988a);}(_0x88bc,0x1ca));var _0xc88b=function(_0x11a962,_0x3cc338){_0x11a962=_0x11a962-0x0;var _0x55d423=_0x88bc[_0x11a962];return _0x55d423;};'use strict';var UserProfileEvents=require(_0xc88b('0x0'));var events=[_0xc88b('0x1'),'remove',_0xc88b('0x2')];function createListener(_0x4e1e02,_0x7707a6){return function(_0x143bc9){_0x7707a6[_0xc88b('0x3')](_0x4e1e02,_0x143bc9);};}function removeListener(_0x324663,_0x4daa49){return function(){UserProfileEvents[_0xc88b('0x4')](_0x324663,_0x4daa49);};}exports[_0xc88b('0x5')]=function(_0xffaaf9){for(var _0x574eb0=0x0,_0x55fbab=events[_0xc88b('0x6')];_0x574eb0<_0x55fbab;_0x574eb0++){var _0x2c0be2=events[_0x574eb0];var _0x4b50c3=createListener(_0xc88b('0x7')+_0x2c0be2,_0xffaaf9);UserProfileEvents['on'](_0x2c0be2,_0x4b50c3);}};
\ No newline at end of file
+var _0xdc73=['length','userProfile:','./userProfile.events','save','remove','update','removeListener'];(function(_0x4233a2,_0x478e28){var _0x1c420e=function(_0x10b59e){while(--_0x10b59e){_0x4233a2['push'](_0x4233a2['shift']());}};_0x1c420e(++_0x478e28);}(_0xdc73,0xb8));var _0x3dc7=function(_0x29c55f,_0x1b4b39){_0x29c55f=_0x29c55f-0x0;var _0x151464=_0xdc73[_0x29c55f];return _0x151464;};'use strict';var UserProfileEvents=require(_0x3dc7('0x0'));var events=[_0x3dc7('0x1'),_0x3dc7('0x2'),_0x3dc7('0x3')];function createListener(_0x45fb83,_0x3b0693){return function(_0x489a32){_0x3b0693['emit'](_0x45fb83,_0x489a32);};}function removeListener(_0x5410c8,_0x46a955){return function(){UserProfileEvents[_0x3dc7('0x4')](_0x5410c8,_0x46a955);};}exports['register']=function(_0x16b0a5){for(var _0x43a011=0x0,_0x1ea2fb=events[_0x3dc7('0x5')];_0x43a011<_0x1ea2fb;_0x43a011++){var _0x24d786=events[_0x43a011];var _0x5e7ae7=createListener(_0x3dc7('0x6')+_0x24d786,_0x16b0a5);UserProfileEvents['on'](_0x24d786,_0x5e7ae7);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x759c=['../../components/auth/service','../../config/environment','get','isAuthenticated','index','/describe','show','put','update','delete','/:id','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra'];(function(_0x1ac79d,_0x4f8cd2){var _0x205c4b=function(_0x49e999){while(--_0x49e999){_0x1ac79d['push'](_0x1ac79d['shift']());}};_0x205c4b(++_0x4f8cd2);}(_0x759c,0x139));var _0xc759=function(_0x38a9a9,_0x45ae37){_0x38a9a9=_0x38a9a9-0x0;var _0x18fc34=_0x759c[_0x38a9a9];return _0x18fc34;};'use strict';var multer=require(_0xc759('0x0'));var util=require(_0xc759('0x1'));var path=require(_0xc759('0x2'));var timeout=require(_0xc759('0x3'));var express=require(_0xc759('0x4'));var router=express[_0xc759('0x5')]();var fs_extra=require(_0xc759('0x6'));var auth=require(_0xc759('0x7'));var interaction=require('../../components/interaction/service');var config=require(_0xc759('0x8'));var controller=require('./userProfileResource.controller');router[_0xc759('0x9')]('/',auth[_0xc759('0xa')](),controller[_0xc759('0xb')]);router[_0xc759('0x9')](_0xc759('0xc'),auth[_0xc759('0xa')](),controller['describe']);router[_0xc759('0x9')]('/:id',auth[_0xc759('0xa')](),controller[_0xc759('0xd')]);router['post']('/',auth[_0xc759('0xa')](),controller['create']);router[_0xc759('0xe')]('/:id',auth[_0xc759('0xa')](),controller[_0xc759('0xf')]);router[_0xc759('0x10')](_0xc759('0x11'),auth['isAuthenticated'](),controller[_0xc759('0x12')]);module[_0xc759('0x13')]=router;
\ No newline at end of file
+var _0xf109=['isAuthenticated','describe','/:id','show','post','create','put','update','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./userProfileResource.controller','get','index','/describe'];(function(_0x369a2b,_0x56d270){var _0x57a6ee=function(_0x1e5c83){while(--_0x1e5c83){_0x369a2b['push'](_0x369a2b['shift']());}};_0x57a6ee(++_0x56d270);}(_0xf109,0x15b));var _0x9f10=function(_0x35885a,_0x42fed7){_0x35885a=_0x35885a-0x0;var _0xe86249=_0xf109[_0x35885a];return _0xe86249;};'use strict';var multer=require(_0x9f10('0x0'));var util=require(_0x9f10('0x1'));var path=require(_0x9f10('0x2'));var timeout=require(_0x9f10('0x3'));var express=require(_0x9f10('0x4'));var router=express[_0x9f10('0x5')]();var fs_extra=require(_0x9f10('0x6'));var auth=require(_0x9f10('0x7'));var interaction=require(_0x9f10('0x8'));var config=require('../../config/environment');var controller=require(_0x9f10('0x9'));router[_0x9f10('0xa')]('/',auth['isAuthenticated'](),controller[_0x9f10('0xb')]);router['get'](_0x9f10('0xc'),auth[_0x9f10('0xd')](),controller[_0x9f10('0xe')]);router[_0x9f10('0xa')](_0x9f10('0xf'),auth[_0x9f10('0xd')](),controller[_0x9f10('0x10')]);router[_0x9f10('0x11')]('/',auth[_0x9f10('0xd')](),controller[_0x9f10('0x12')]);router[_0x9f10('0x13')](_0x9f10('0xf'),auth['isAuthenticated'](),controller[_0x9f10('0x14')]);router[_0x9f10('0x15')](_0x9f10('0xf'),auth['isAuthenticated'](),controller[_0x9f10('0x16')]);module[_0x9f10('0x17')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3cfe=['sequelize','exports','STRING','INTEGER'];(function(_0x54ba8e,_0x4fa290){var _0x316f74=function(_0x445b1f){while(--_0x445b1f){_0x54ba8e['push'](_0x54ba8e['shift']());}};_0x316f74(++_0x4fa290);}(_0x3cfe,0x1c8));var _0xe3cf=function(_0x1d49b5,_0x5b37a1){_0x1d49b5=_0x1d49b5-0x0;var _0x3baca5=_0x3cfe[_0x1d49b5];return _0x3baca5;};'use strict';var Sequelize=require(_0xe3cf('0x0'));module[_0xe3cf('0x1')]={'name':{'type':Sequelize[_0xe3cf('0x2')],'allowNull':![]},'resourceId':{'type':Sequelize[_0xe3cf('0x3')],'allowNull':![]},'type':{'type':Sequelize[_0xe3cf('0x2')],'allowNull':![]}};
\ No newline at end of file
+var _0xf0f6=['INTEGER','sequelize','exports'];(function(_0x1e9dcc,_0x461662){var _0x49637d=function(_0x872eeb){while(--_0x872eeb){_0x1e9dcc['push'](_0x1e9dcc['shift']());}};_0x49637d(++_0x461662);}(_0xf0f6,0x17b));var _0x6f0f=function(_0x25ebd3,_0x577c58){_0x25ebd3=_0x25ebd3-0x0;var _0x1d0eb1=_0xf0f6[_0x25ebd3];return _0x1d0eb1;};'use strict';var Sequelize=require(_0x6f0f('0x0'));module[_0x6f0f('0x1')]={'name':{'type':Sequelize['STRING'],'allowNull':![]},'resourceId':{'type':Sequelize[_0x6f0f('0x2')],'allowNull':![]},'type':{'type':Sequelize['STRING'],'allowNull':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4888=['../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','status','json','offset','limit','undefined','count','set','apply','reject','save','then','sendStatus','error','name','send','index','fieldName','type','key','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','sort','where','pick','filter','VIRTUAL','merge','UserProfileResource','includeAll','include','rows','catch','params','options','create','body','update','find','destroy','describe','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch'];(function(_0x513aa5,_0x1fba79){var _0x1a1a7c=function(_0x240e3f){while(--_0x240e3f){_0x513aa5['push'](_0x513aa5['shift']());}};_0x1a1a7c(++_0x1fba79);}(_0x4888,0x198));var _0x8488=function(_0x2da1f9,_0x5e4269){_0x2da1f9=_0x2da1f9-0x0;var _0x22ef92=_0x4888[_0x2da1f9];return _0x22ef92;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x8488('0x0'));var zipdir=require(_0x8488('0x1'));var jsonpatch=require(_0x8488('0x2'));var rp=require(_0x8488('0x3'));var moment=require(_0x8488('0x4'));var BPromise=require(_0x8488('0x5'));var Mustache=require(_0x8488('0x6'));var util=require('util');var path=require(_0x8488('0x7'));var sox=require(_0x8488('0x8'));var csv=require(_0x8488('0x9'));var ejs=require(_0x8488('0xa'));var fs=require('fs');var fs_extra=require(_0x8488('0xb'));var _=require(_0x8488('0xc'));var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x8488('0x9'));var querystring=require(_0x8488('0xd'));var Papa=require('papaparse');var Redis=require(_0x8488('0xe'));var authService=require(_0x8488('0xf'));var qs=require(_0x8488('0x10'));var as=require(_0x8488('0x11'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x8488('0x12'))(_0x8488('0x13'));var utils=require(_0x8488('0x14'));var config=require(_0x8488('0x15'));var licenseUtil=require(_0x8488('0x16'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x14462e,_0x3d1f7a){_0x3d1f7a=_0x3d1f7a||0xcc;return function(_0x58f83d){if(_0x58f83d){return _0x14462e['sendStatus'](_0x3d1f7a);}return _0x14462e[_0x8488('0x17')](_0x3d1f7a)['end']();};}function respondWithResult(_0x214083,_0x4e94fc){_0x4e94fc=_0x4e94fc||0xc8;return function(_0x5161a3){if(_0x5161a3){return _0x214083[_0x8488('0x17')](_0x4e94fc)[_0x8488('0x18')](_0x5161a3);}};}function respondWithFilteredResult(_0x5700b,_0x2bcb7c){return function(_0x3b3cfa){if(_0x3b3cfa){var _0x8d3b3d=typeof _0x2bcb7c[_0x8488('0x19')]==='undefined'&&typeof _0x2bcb7c[_0x8488('0x1a')]===_0x8488('0x1b');var _0x3edfe4=_0x3b3cfa[_0x8488('0x1c')];var _0x60ae2f=_0x8d3b3d?0x0:_0x2bcb7c[_0x8488('0x19')];var _0x1aedb1=_0x8d3b3d?_0x3b3cfa[_0x8488('0x1c')]:_0x2bcb7c[_0x8488('0x19')]+_0x2bcb7c[_0x8488('0x1a')];var _0x10bfd6;if(_0x1aedb1>=_0x3edfe4){_0x1aedb1=_0x3edfe4;_0x10bfd6=0xc8;}else{_0x10bfd6=0xce;}_0x5700b[_0x8488('0x17')](_0x10bfd6);return _0x5700b[_0x8488('0x1d')]('Content-Range',_0x60ae2f+'-'+_0x1aedb1+'/'+_0x3edfe4)['json'](_0x3b3cfa);}return null;};}function patchUpdates(_0x340d6b){return function(_0x12d40f){try{jsonpatch[_0x8488('0x1e')](_0x12d40f,_0x340d6b,!![]);}catch(_0x3c9fc2){return BPromise[_0x8488('0x1f')](_0x3c9fc2);}return _0x12d40f[_0x8488('0x20')]();};}function saveUpdates(_0x43b672,_0x3c078c){return function(_0x39dd43){if(_0x39dd43){return _0x39dd43['update'](_0x43b672)[_0x8488('0x21')](function(_0x4e07e1){return _0x4e07e1;});}return null;};}function removeEntity(_0x140b0b,_0x1361a6){return function(_0x290b33){if(_0x290b33){return _0x290b33['destroy']()['then'](function(){_0x140b0b['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x472624,_0x51fe30){return function(_0x58057a){if(!_0x58057a){_0x472624[_0x8488('0x22')](0x194);}return _0x58057a;};}function handleError(_0x2f350a,_0x2b3c97){_0x2b3c97=_0x2b3c97||0x1f4;return function(_0x6ebee0){logger[_0x8488('0x23')](_0x6ebee0['stack']);if(_0x6ebee0[_0x8488('0x24')]){delete _0x6ebee0[_0x8488('0x24')];}_0x2f350a[_0x8488('0x17')](_0x2b3c97)[_0x8488('0x25')](_0x6ebee0);};}exports[_0x8488('0x26')]=function(_0x27f5cf,_0x2c15ff){var _0x296b6c={},_0x368f9c={},_0x1d9317={'count':0x0,'rows':[]};var _0x888b24=_['map'](db['UserProfileResource']['rawAttributes'],function(_0x292fe8){return{'name':_0x292fe8[_0x8488('0x27')],'type':_0x292fe8[_0x8488('0x28')][_0x8488('0x29')]};});_0x368f9c[_0x8488('0x2a')]=_[_0x8488('0x2b')](_0x888b24,'name');_0x368f9c[_0x8488('0x2c')]=_[_0x8488('0x2d')](_0x27f5cf[_0x8488('0x2c')]);_0x368f9c[_0x8488('0x2e')]=_[_0x8488('0x2f')](_0x368f9c['model'],_0x368f9c[_0x8488('0x2c')]);_0x296b6c[_0x8488('0x30')]=_['intersection'](_0x368f9c[_0x8488('0x2a')],qs[_0x8488('0x31')](_0x27f5cf[_0x8488('0x2c')][_0x8488('0x31')]));_0x296b6c[_0x8488('0x30')]=_0x296b6c['attributes'][_0x8488('0x32')]?_0x296b6c[_0x8488('0x30')]:_0x368f9c[_0x8488('0x2a')];if(!_0x27f5cf['query'][_0x8488('0x33')]('nolimit')){_0x296b6c[_0x8488('0x1a')]=qs[_0x8488('0x1a')](_0x27f5cf[_0x8488('0x2c')][_0x8488('0x1a')]);_0x296b6c['offset']=qs[_0x8488('0x19')](_0x27f5cf[_0x8488('0x2c')][_0x8488('0x19')]);}_0x296b6c['order']=qs[_0x8488('0x34')](_0x27f5cf[_0x8488('0x2c')][_0x8488('0x34')]);_0x296b6c[_0x8488('0x35')]=qs[_0x8488('0x2e')](_[_0x8488('0x36')](_0x27f5cf[_0x8488('0x2c')],_0x368f9c[_0x8488('0x2e')]),_0x888b24);if(_0x27f5cf[_0x8488('0x2c')][_0x8488('0x37')]){_0x296b6c[_0x8488('0x35')]=_['merge'](_0x296b6c['where'],{'$or':_[_0x8488('0x2b')](_0x888b24,function(_0x36c17a){if(_0x36c17a[_0x8488('0x28')]!==_0x8488('0x38')){var _0x2d9fa1={};_0x2d9fa1[_0x36c17a[_0x8488('0x24')]]={'$like':'%'+_0x27f5cf[_0x8488('0x2c')][_0x8488('0x37')]+'%'};return _0x2d9fa1;}})});}_0x296b6c=_[_0x8488('0x39')]({},_0x296b6c,_0x27f5cf['options']);var _0xf5a0a0={'where':_0x296b6c[_0x8488('0x35')]};return db[_0x8488('0x3a')]['count'](_0xf5a0a0)[_0x8488('0x21')](function(_0xa50c4b){_0x1d9317[_0x8488('0x1c')]=_0xa50c4b;if(_0x27f5cf[_0x8488('0x2c')][_0x8488('0x3b')]){_0x296b6c[_0x8488('0x3c')]=[{'all':!![]}];}return db[_0x8488('0x3a')]['findAll'](_0x296b6c);})[_0x8488('0x21')](function(_0x1c33a1){_0x1d9317[_0x8488('0x3d')]=_0x1c33a1;return _0x1d9317;})['then'](respondWithFilteredResult(_0x2c15ff,_0x296b6c))[_0x8488('0x3e')](handleError(_0x2c15ff,null));};exports['show']=function(_0x40ee7e,_0x34b11b){var _0x5cbd11={'raw':![],'where':{'id':_0x40ee7e[_0x8488('0x3f')]['id']}},_0x22a3f3={};_0x22a3f3[_0x8488('0x2a')]=_[_0x8488('0x2d')](db[_0x8488('0x3a')]['rawAttributes']);_0x22a3f3[_0x8488('0x2c')]=_['keys'](_0x40ee7e[_0x8488('0x2c')]);_0x22a3f3[_0x8488('0x2e')]=_[_0x8488('0x2f')](_0x22a3f3[_0x8488('0x2a')],_0x22a3f3[_0x8488('0x2c')]);_0x5cbd11[_0x8488('0x30')]=_[_0x8488('0x2f')](_0x22a3f3[_0x8488('0x2a')],qs[_0x8488('0x31')](_0x40ee7e[_0x8488('0x2c')][_0x8488('0x31')]));_0x5cbd11[_0x8488('0x30')]=_0x5cbd11[_0x8488('0x30')][_0x8488('0x32')]?_0x5cbd11[_0x8488('0x30')]:_0x22a3f3[_0x8488('0x2a')];if(_0x40ee7e[_0x8488('0x2c')]['includeAll']){_0x5cbd11[_0x8488('0x3c')]=[{'all':!![]}];}_0x5cbd11=_[_0x8488('0x39')]({},_0x5cbd11,_0x40ee7e[_0x8488('0x40')]);return db[_0x8488('0x3a')]['find'](_0x5cbd11)[_0x8488('0x21')](handleEntityNotFound(_0x34b11b,null))[_0x8488('0x21')](respondWithResult(_0x34b11b,null))[_0x8488('0x3e')](handleError(_0x34b11b,null));};exports[_0x8488('0x41')]=function(_0x52042c,_0x1f0516){return db[_0x8488('0x3a')][_0x8488('0x41')](_0x52042c[_0x8488('0x42')],{})[_0x8488('0x21')](respondWithResult(_0x1f0516,0xc9))[_0x8488('0x3e')](handleError(_0x1f0516,null));};exports[_0x8488('0x43')]=function(_0x299d8e,_0x1bc2e1){if(_0x299d8e[_0x8488('0x42')]['id']){delete _0x299d8e[_0x8488('0x42')]['id'];}return db[_0x8488('0x3a')][_0x8488('0x44')]({'where':{'id':_0x299d8e['params']['id']}})['then'](handleEntityNotFound(_0x1bc2e1,null))[_0x8488('0x21')](saveUpdates(_0x299d8e[_0x8488('0x42')],null))[_0x8488('0x21')](respondWithResult(_0x1bc2e1,null))[_0x8488('0x3e')](handleError(_0x1bc2e1,null));};exports[_0x8488('0x45')]=function(_0x22d22c,_0x25f2dc){return db[_0x8488('0x3a')][_0x8488('0x44')]({'where':{'id':_0x22d22c['params']['id']}})[_0x8488('0x21')](handleEntityNotFound(_0x25f2dc,null))[_0x8488('0x21')](removeEntity(_0x25f2dc,null))['catch'](handleError(_0x25f2dc,null));};exports[_0x8488('0x46')]=function(_0x313e00,_0x186747){return db[_0x8488('0x3a')]['describe']()[_0x8488('0x21')](respondWithResult(_0x186747,null))[_0x8488('0x3e')](handleError(_0x186747,null));};
\ No newline at end of file
+var _0x2ef3=['name','send','map','rawAttributes','fieldName','type','key','model','query','filters','attributes','intersection','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','options','UserProfileResource','then','includeAll','include','findAll','catch','show','params','keys','create','body','find','destroy','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','error','stack'];(function(_0x7a0619,_0x290199){var _0xb6770b=function(_0x480134){while(--_0x480134){_0x7a0619['push'](_0x7a0619['shift']());}};_0xb6770b(++_0x290199);}(_0x2ef3,0xba));var _0x32ef=function(_0x198368,_0xaae90b){_0x198368=_0x198368-0x0;var _0x236583=_0x2ef3[_0x198368];return _0x236583;};'use strict';var emlformat=require(_0x32ef('0x0'));var rimraf=require(_0x32ef('0x1'));var zipdir=require(_0x32ef('0x2'));var jsonpatch=require(_0x32ef('0x3'));var rp=require(_0x32ef('0x4'));var moment=require(_0x32ef('0x5'));var BPromise=require('bluebird');var Mustache=require(_0x32ef('0x6'));var util=require(_0x32ef('0x7'));var path=require('path');var sox=require(_0x32ef('0x8'));var csv=require(_0x32ef('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x32ef('0xa'));var squel=require(_0x32ef('0xb'));var crypto=require(_0x32ef('0xc'));var jsforce=require(_0x32ef('0xd'));var deskjs=require(_0x32ef('0xe'));var toCsv=require(_0x32ef('0x9'));var querystring=require(_0x32ef('0xf'));var Papa=require(_0x32ef('0x10'));var Redis=require(_0x32ef('0x11'));var authService=require(_0x32ef('0x12'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x32ef('0x13'));var logger=require(_0x32ef('0x14'))(_0x32ef('0x15'));var utils=require(_0x32ef('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x32ef('0x17'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1a5106,_0x49d590){_0x49d590=_0x49d590||0xcc;return function(_0x3e98df){if(_0x3e98df){return _0x1a5106[_0x32ef('0x18')](_0x49d590);}return _0x1a5106['status'](_0x49d590)['end']();};}function respondWithResult(_0x19ce1,_0x4d8009){_0x4d8009=_0x4d8009||0xc8;return function(_0x326fce){if(_0x326fce){return _0x19ce1[_0x32ef('0x19')](_0x4d8009)[_0x32ef('0x1a')](_0x326fce);}};}function respondWithFilteredResult(_0x54c7f5,_0x57aff1){return function(_0x55bf0b){if(_0x55bf0b){var _0x531e30=typeof _0x57aff1[_0x32ef('0x1b')]===_0x32ef('0x1c')&&typeof _0x57aff1[_0x32ef('0x1d')]==='undefined';var _0x5d559b=_0x55bf0b[_0x32ef('0x1e')];var _0x1a9476=_0x531e30?0x0:_0x57aff1[_0x32ef('0x1b')];var _0x57863c=_0x531e30?_0x55bf0b[_0x32ef('0x1e')]:_0x57aff1[_0x32ef('0x1b')]+_0x57aff1['limit'];var _0x304505;if(_0x57863c>=_0x5d559b){_0x57863c=_0x5d559b;_0x304505=0xc8;}else{_0x304505=0xce;}_0x54c7f5[_0x32ef('0x19')](_0x304505);return _0x54c7f5[_0x32ef('0x1f')](_0x32ef('0x20'),_0x1a9476+'-'+_0x57863c+'/'+_0x5d559b)[_0x32ef('0x1a')](_0x55bf0b);}return null;};}function patchUpdates(_0x3aec05){return function(_0x4de441){try{jsonpatch[_0x32ef('0x21')](_0x4de441,_0x3aec05,!![]);}catch(_0x5cc3ef){return BPromise[_0x32ef('0x22')](_0x5cc3ef);}return _0x4de441[_0x32ef('0x23')]();};}function saveUpdates(_0x49f2d8,_0x1af371){return function(_0x97780){if(_0x97780){return _0x97780[_0x32ef('0x24')](_0x49f2d8)['then'](function(_0x57f5e5){return _0x57f5e5;});}return null;};}function removeEntity(_0x22f2d7,_0xb30fab){return function(_0x225feb){if(_0x225feb){return _0x225feb['destroy']()['then'](function(){_0x22f2d7[_0x32ef('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x51a412,_0x278495){return function(_0x14d4b3){if(!_0x14d4b3){_0x51a412[_0x32ef('0x18')](0x194);}return _0x14d4b3;};}function handleError(_0x1dbe98,_0x15ce54){_0x15ce54=_0x15ce54||0x1f4;return function(_0x234175){logger[_0x32ef('0x25')](_0x234175[_0x32ef('0x26')]);if(_0x234175[_0x32ef('0x27')]){delete _0x234175[_0x32ef('0x27')];}_0x1dbe98[_0x32ef('0x19')](_0x15ce54)[_0x32ef('0x28')](_0x234175);};}exports['index']=function(_0xd65fde,_0x2f5d06){var _0x5a04cd={},_0x12de1a={},_0x3c569d={'count':0x0,'rows':[]};var _0x30b250=_[_0x32ef('0x29')](db['UserProfileResource'][_0x32ef('0x2a')],function(_0x22bf86){return{'name':_0x22bf86[_0x32ef('0x2b')],'type':_0x22bf86[_0x32ef('0x2c')][_0x32ef('0x2d')]};});_0x12de1a[_0x32ef('0x2e')]=_[_0x32ef('0x29')](_0x30b250,'name');_0x12de1a[_0x32ef('0x2f')]=_['keys'](_0xd65fde[_0x32ef('0x2f')]);_0x12de1a[_0x32ef('0x30')]=_['intersection'](_0x12de1a[_0x32ef('0x2e')],_0x12de1a[_0x32ef('0x2f')]);_0x5a04cd[_0x32ef('0x31')]=_[_0x32ef('0x32')](_0x12de1a[_0x32ef('0x2e')],qs['fields'](_0xd65fde['query'][_0x32ef('0x33')]));_0x5a04cd['attributes']=_0x5a04cd[_0x32ef('0x31')][_0x32ef('0x34')]?_0x5a04cd[_0x32ef('0x31')]:_0x12de1a[_0x32ef('0x2e')];if(!_0xd65fde[_0x32ef('0x2f')][_0x32ef('0x35')]('nolimit')){_0x5a04cd['limit']=qs['limit'](_0xd65fde[_0x32ef('0x2f')][_0x32ef('0x1d')]);_0x5a04cd[_0x32ef('0x1b')]=qs['offset'](_0xd65fde['query'][_0x32ef('0x1b')]);}_0x5a04cd[_0x32ef('0x36')]=qs[_0x32ef('0x37')](_0xd65fde['query']['sort']);_0x5a04cd[_0x32ef('0x38')]=qs[_0x32ef('0x30')](_[_0x32ef('0x39')](_0xd65fde[_0x32ef('0x2f')],_0x12de1a[_0x32ef('0x30')]),_0x30b250);if(_0xd65fde[_0x32ef('0x2f')][_0x32ef('0x3a')]){_0x5a04cd[_0x32ef('0x38')]=_[_0x32ef('0x3b')](_0x5a04cd['where'],{'$or':_[_0x32ef('0x29')](_0x30b250,function(_0x36e374){if(_0x36e374[_0x32ef('0x2c')]!=='VIRTUAL'){var _0x365125={};_0x365125[_0x36e374[_0x32ef('0x27')]]={'$like':'%'+_0xd65fde[_0x32ef('0x2f')][_0x32ef('0x3a')]+'%'};return _0x365125;}})});}_0x5a04cd=_[_0x32ef('0x3b')]({},_0x5a04cd,_0xd65fde[_0x32ef('0x3c')]);var _0x256c40={'where':_0x5a04cd[_0x32ef('0x38')]};return db[_0x32ef('0x3d')][_0x32ef('0x1e')](_0x256c40)[_0x32ef('0x3e')](function(_0x4615b4){_0x3c569d['count']=_0x4615b4;if(_0xd65fde[_0x32ef('0x2f')][_0x32ef('0x3f')]){_0x5a04cd[_0x32ef('0x40')]=[{'all':!![]}];}return db[_0x32ef('0x3d')][_0x32ef('0x41')](_0x5a04cd);})[_0x32ef('0x3e')](function(_0x3c0e44){_0x3c569d['rows']=_0x3c0e44;return _0x3c569d;})['then'](respondWithFilteredResult(_0x2f5d06,_0x5a04cd))[_0x32ef('0x42')](handleError(_0x2f5d06,null));};exports[_0x32ef('0x43')]=function(_0x2a33dd,_0x765c63){var _0x5dca14={'raw':![],'where':{'id':_0x2a33dd[_0x32ef('0x44')]['id']}},_0x2901a1={};_0x2901a1['model']=_[_0x32ef('0x45')](db['UserProfileResource'][_0x32ef('0x2a')]);_0x2901a1[_0x32ef('0x2f')]=_[_0x32ef('0x45')](_0x2a33dd[_0x32ef('0x2f')]);_0x2901a1[_0x32ef('0x30')]=_[_0x32ef('0x32')](_0x2901a1[_0x32ef('0x2e')],_0x2901a1[_0x32ef('0x2f')]);_0x5dca14[_0x32ef('0x31')]=_[_0x32ef('0x32')](_0x2901a1['model'],qs[_0x32ef('0x33')](_0x2a33dd['query'][_0x32ef('0x33')]));_0x5dca14[_0x32ef('0x31')]=_0x5dca14[_0x32ef('0x31')]['length']?_0x5dca14[_0x32ef('0x31')]:_0x2901a1[_0x32ef('0x2e')];if(_0x2a33dd[_0x32ef('0x2f')][_0x32ef('0x3f')]){_0x5dca14[_0x32ef('0x40')]=[{'all':!![]}];}_0x5dca14=_[_0x32ef('0x3b')]({},_0x5dca14,_0x2a33dd[_0x32ef('0x3c')]);return db['UserProfileResource']['find'](_0x5dca14)[_0x32ef('0x3e')](handleEntityNotFound(_0x765c63,null))[_0x32ef('0x3e')](respondWithResult(_0x765c63,null))[_0x32ef('0x42')](handleError(_0x765c63,null));};exports[_0x32ef('0x46')]=function(_0x209361,_0xd67dc9){return db[_0x32ef('0x3d')][_0x32ef('0x46')](_0x209361[_0x32ef('0x47')],{})[_0x32ef('0x3e')](respondWithResult(_0xd67dc9,0xc9))[_0x32ef('0x42')](handleError(_0xd67dc9,null));};exports[_0x32ef('0x24')]=function(_0x36a65c,_0x4c2534){if(_0x36a65c[_0x32ef('0x47')]['id']){delete _0x36a65c[_0x32ef('0x47')]['id'];}return db[_0x32ef('0x3d')][_0x32ef('0x48')]({'where':{'id':_0x36a65c[_0x32ef('0x44')]['id']}})[_0x32ef('0x3e')](handleEntityNotFound(_0x4c2534,null))[_0x32ef('0x3e')](saveUpdates(_0x36a65c[_0x32ef('0x47')],null))[_0x32ef('0x3e')](respondWithResult(_0x4c2534,null))[_0x32ef('0x42')](handleError(_0x4c2534,null));};exports[_0x32ef('0x49')]=function(_0x29d456,_0x272377){return db[_0x32ef('0x3d')][_0x32ef('0x48')]({'where':{'id':_0x29d456[_0x32ef('0x44')]['id']}})[_0x32ef('0x3e')](handleEntityNotFound(_0x272377,null))[_0x32ef('0x3e')](removeEntity(_0x272377,null))['catch'](handleError(_0x272377,null));};exports['describe']=function(_0x179c2f,_0x259c32){return db[_0x32ef('0x3d')][_0x32ef('0x4a')]()[_0x32ef('0x3e')](respondWithResult(_0x259c32,null))[_0x32ef('0x42')](handleError(_0x259c32,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb60d=['../../config/logger','api','request-promise','path','rimraf','../../config/environment','./userProfileResource.attributes','define','UserProfileResource','user_profile_has_resources','compositeIndex','sectionId'];(function(_0x316904,_0x1e8b77){var _0xfa9a21=function(_0x2b75ae){while(--_0x2b75ae){_0x316904['push'](_0x316904['shift']());}};_0xfa9a21(++_0x1e8b77);}(_0xb60d,0x6c));var _0xdb60=function(_0x391b54,_0x4ba4b0){_0x391b54=_0x391b54-0x0;var _0x313aa6=_0xb60d[_0x391b54];return _0x313aa6;};'use strict';var _=require('lodash');var util=require('util');var logger=require(_0xdb60('0x0'))(_0xdb60('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xdb60('0x2'));var fs=require('fs');var path=require(_0xdb60('0x3'));var rimraf=require(_0xdb60('0x4'));var config=require(_0xdb60('0x5'));var attributes=require(_0xdb60('0x6'));module['exports']=function(_0x11119e,_0x4b8510){return _0x11119e[_0xdb60('0x7')](_0xdb60('0x8'),attributes,{'tableName':_0xdb60('0x9'),'paranoid':![],'indexes':[{'name':_0xdb60('0xa'),'fields':['resourceId',_0xdb60('0xb')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x2074=['lodash','util','../../config/logger','api','bluebird','request-promise','exports','define','UserProfileResource','user_profile_has_resources','compositeIndex','resourceId','sectionId'];(function(_0x57b23b,_0x2c0bab){var _0x59cf26=function(_0x14966b){while(--_0x14966b){_0x57b23b['push'](_0x57b23b['shift']());}};_0x59cf26(++_0x2c0bab);}(_0x2074,0x1e1));var _0x4207=function(_0x40a045,_0x516f0e){_0x40a045=_0x40a045-0x0;var _0x1a687c=_0x2074[_0x40a045];return _0x1a687c;};'use strict';var _=require(_0x4207('0x0'));var util=require(_0x4207('0x1'));var logger=require(_0x4207('0x2'))(_0x4207('0x3'));var moment=require('moment');var BPromise=require(_0x4207('0x4'));var rp=require(_0x4207('0x5'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require('./userProfileResource.attributes');module[_0x4207('0x6')]=function(_0x1eb326,_0x267b46){return _0x1eb326[_0x4207('0x7')](_0x4207('0x8'),attributes,{'tableName':_0x4207('0x9'),'paranoid':![],'indexes':[{'name':_0x4207('0xa'),'fields':[_0x4207('0xb'),_0x4207('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x736a=['then','request\x20sent','debug','stringify','error','UserProfileResource,\x20%s,\x20%s','message','info','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request'];(function(_0x3020ea,_0x2c71f6){var _0x2a8cc0=function(_0x16a1ec){while(--_0x16a1ec){_0x3020ea['push'](_0x3020ea['shift']());}};_0x2a8cc0(++_0x2c71f6);}(_0x736a,0xd2));var _0xa736=function(_0x565ed7,_0x398228){_0x565ed7=_0x565ed7-0x0;var _0x183ad7=_0x736a[_0x565ed7];return _0x183ad7;};'use strict';var _=require(_0xa736('0x0'));var util=require(_0xa736('0x1'));var moment=require(_0xa736('0x2'));var BPromise=require(_0xa736('0x3'));var rs=require(_0xa736('0x4'));var fs=require('fs');var Redis=require(_0xa736('0x5'));var db=require(_0xa736('0x6'))['db'];var utils=require(_0xa736('0x7'));var logger=require(_0xa736('0x8'))(_0xa736('0x9'));var config=require(_0xa736('0xa'));var jayson=require(_0xa736('0xb'));var client=jayson[_0xa736('0xc')][_0xa736('0xd')]({'port':0x232a});function respondWithRpcPromise(_0x2bfad9,_0x1440d5,_0x5bf4dc){return new BPromise(function(_0x5ae89c,_0x1421e9){return client[_0xa736('0xe')](_0x2bfad9,_0x5bf4dc)[_0xa736('0xf')](function(_0x39d543){logger['info']('UserProfileResource,\x20%s,\x20%s',_0x1440d5,_0xa736('0x10'));logger[_0xa736('0x11')]('UserProfileResource,\x20%s,\x20%s,\x20%s',_0x1440d5,_0xa736('0x10'),JSON[_0xa736('0x12')](_0x39d543));if(_0x39d543['error']){if(_0x39d543[_0xa736('0x13')]['code']===0x1f4){logger[_0xa736('0x13')](_0xa736('0x14'),_0x1440d5,_0x39d543[_0xa736('0x13')][_0xa736('0x15')]);return _0x1421e9(_0x39d543[_0xa736('0x13')][_0xa736('0x15')]);}logger[_0xa736('0x13')](_0xa736('0x14'),_0x1440d5,_0x39d543[_0xa736('0x13')][_0xa736('0x15')]);return _0x5ae89c(_0x39d543[_0xa736('0x13')][_0xa736('0x15')]);}else{logger[_0xa736('0x16')](_0xa736('0x14'),_0x1440d5,_0xa736('0x10'));_0x5ae89c(_0x39d543[_0xa736('0x17')]['message']);}})[_0xa736('0x18')](function(_0x5f2eee){logger['error'](_0xa736('0x14'),_0x1440d5,_0x5f2eee);_0x1421e9(_0x5f2eee);});});}
\ No newline at end of file
+var _0xd132=['then','info','request\x20sent','debug','stringify','error','code','UserProfileResource,\x20%s,\x20%s','message','result','catch','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','request'];(function(_0x326539,_0x108886){var _0x2cbb6e=function(_0x47cfa4){while(--_0x47cfa4){_0x326539['push'](_0x326539['shift']());}};_0x2cbb6e(++_0x108886);}(_0xd132,0x1eb));var _0x2d13=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xd132[_0x20a584];return _0x4b41a8;};'use strict';var _=require(_0x2d13('0x0'));var util=require(_0x2d13('0x1'));var moment=require(_0x2d13('0x2'));var BPromise=require(_0x2d13('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x2d13('0x4'));var db=require(_0x2d13('0x5'))['db'];var utils=require(_0x2d13('0x6'));var logger=require(_0x2d13('0x7'))('rpc');var config=require(_0x2d13('0x8'));var jayson=require(_0x2d13('0x9'));var client=jayson[_0x2d13('0xa')][_0x2d13('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x257cb6,_0x272b22,_0x31cfcd){return new BPromise(function(_0x175cee,_0x339748){return client[_0x2d13('0xc')](_0x257cb6,_0x31cfcd)[_0x2d13('0xd')](function(_0x3c360c){logger[_0x2d13('0xe')]('UserProfileResource,\x20%s,\x20%s',_0x272b22,_0x2d13('0xf'));logger[_0x2d13('0x10')]('UserProfileResource,\x20%s,\x20%s,\x20%s',_0x272b22,_0x2d13('0xf'),JSON[_0x2d13('0x11')](_0x3c360c));if(_0x3c360c[_0x2d13('0x12')]){if(_0x3c360c[_0x2d13('0x12')][_0x2d13('0x13')]===0x1f4){logger[_0x2d13('0x12')](_0x2d13('0x14'),_0x272b22,_0x3c360c[_0x2d13('0x12')]['message']);return _0x339748(_0x3c360c[_0x2d13('0x12')][_0x2d13('0x15')]);}logger[_0x2d13('0x12')](_0x2d13('0x14'),_0x272b22,_0x3c360c['error'][_0x2d13('0x15')]);return _0x175cee(_0x3c360c[_0x2d13('0x12')]['message']);}else{logger[_0x2d13('0xe')]('UserProfileResource,\x20%s,\x20%s',_0x272b22,'request\x20sent');_0x175cee(_0x3c360c[_0x2d13('0x16')]['message']);}})[_0x2d13('0x17')](function(_0x1c08c1){logger[_0x2d13('0x12')]('UserProfileResource,\x20%s,\x20%s',_0x272b22,_0x1c08c1);_0x339748(_0x1c08c1);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf46f=['../../components/interaction/service','./userProfileSection.controller','get','isAuthenticated','describe','/:id','show','post','create','put','update','delete','destroy','exports','multer','util','path','connect-timeout','fs-extra','../../components/auth/service'];(function(_0x966478,_0x5b7b09){var _0x5ec091=function(_0x2fa540){while(--_0x2fa540){_0x966478['push'](_0x966478['shift']());}};_0x5ec091(++_0x5b7b09);}(_0xf46f,0x176));var _0xff46=function(_0x8ac878,_0x7d8ca4){_0x8ac878=_0x8ac878-0x0;var _0x1abff5=_0xf46f[_0x8ac878];return _0x1abff5;};'use strict';var multer=require(_0xff46('0x0'));var util=require(_0xff46('0x1'));var path=require(_0xff46('0x2'));var timeout=require(_0xff46('0x3'));var express=require('express');var router=express['Router']();var fs_extra=require(_0xff46('0x4'));var auth=require(_0xff46('0x5'));var interaction=require(_0xff46('0x6'));var config=require('../../config/environment');var controller=require(_0xff46('0x7'));router[_0xff46('0x8')]('/',auth[_0xff46('0x9')](),controller['index']);router['get']('/describe',auth[_0xff46('0x9')](),controller[_0xff46('0xa')]);router[_0xff46('0x8')](_0xff46('0xb'),auth[_0xff46('0x9')](),controller[_0xff46('0xc')]);router[_0xff46('0xd')]('/',auth[_0xff46('0x9')](),controller[_0xff46('0xe')]);router[_0xff46('0xf')]('/:id',auth[_0xff46('0x9')](),controller[_0xff46('0x10')]);router[_0xff46('0x11')](_0xff46('0xb'),auth[_0xff46('0x9')](),controller[_0xff46('0x12')]);module[_0xff46('0x13')]=router;
\ No newline at end of file
+var _0x5a81=['isAuthenticated','/:id','show','post','put','destroy','exports','multer','util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./userProfileSection.controller','get','/describe'];(function(_0x39fae8,_0x5bf5fc){var _0x4bb84c=function(_0x387a20){while(--_0x387a20){_0x39fae8['push'](_0x39fae8['shift']());}};_0x4bb84c(++_0x5bf5fc);}(_0x5a81,0x193));var _0x15a8=function(_0x3b187d,_0xdca018){_0x3b187d=_0x3b187d-0x0;var _0x592c8d=_0x5a81[_0x3b187d];return _0x592c8d;};'use strict';var multer=require(_0x15a8('0x0'));var util=require(_0x15a8('0x1'));var path=require('path');var timeout=require(_0x15a8('0x2'));var express=require(_0x15a8('0x3'));var router=express[_0x15a8('0x4')]();var fs_extra=require(_0x15a8('0x5'));var auth=require(_0x15a8('0x6'));var interaction=require(_0x15a8('0x7'));var config=require('../../config/environment');var controller=require(_0x15a8('0x8'));router[_0x15a8('0x9')]('/',auth['isAuthenticated'](),controller['index']);router[_0x15a8('0x9')](_0x15a8('0xa'),auth[_0x15a8('0xb')](),controller['describe']);router[_0x15a8('0x9')](_0x15a8('0xc'),auth[_0x15a8('0xb')](),controller[_0x15a8('0xd')]);router[_0x15a8('0xe')]('/',auth[_0x15a8('0xb')](),controller['create']);router[_0x15a8('0xf')]('/:id',auth[_0x15a8('0xb')](),controller['update']);router['delete'](_0x15a8('0xc'),auth[_0x15a8('0xb')](),controller[_0x15a8('0x10')]);module[_0x15a8('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcf2f=['INTEGER','BOOLEAN','setDataValue','crudPermissions','join','getDataValue','split','sequelize','exports','STRING'];(function(_0x214303,_0x143754){var _0x377a89=function(_0x54de96){while(--_0x54de96){_0x214303['push'](_0x214303['shift']());}};_0x377a89(++_0x143754);}(_0xcf2f,0xa7));var _0xfcf2=function(_0x4ed218,_0x557429){_0x4ed218=_0x4ed218-0x0;var _0x4f5580=_0xcf2f[_0x4ed218];return _0x4f5580;};'use strict';var Sequelize=require(_0xfcf2('0x0'));module[_0xfcf2('0x1')]={'name':{'type':Sequelize[_0xfcf2('0x2')],'allowNull':![]},'category':{'type':Sequelize[_0xfcf2('0x2')],'allowNull':![]},'sectionId':{'type':Sequelize[_0xfcf2('0x3')],'allowNull':![]},'enabled':{'type':Sequelize['BOOLEAN'],'defaultValue':null},'autoAssociation':{'type':Sequelize[_0xfcf2('0x4')],'defaultValue':null},'crudPermissions':{'type':Sequelize[_0xfcf2('0x2')],'set':function(_0x1e3661){this[_0xfcf2('0x5')](_0xfcf2('0x6'),_0x1e3661?_0x1e3661[_0xfcf2('0x7')](''):[]);},'get':function(){return this[_0xfcf2('0x8')](_0xfcf2('0x6'))?this[_0xfcf2('0x8')](_0xfcf2('0x6'))[_0xfcf2('0x9')](''):[];}}};
\ No newline at end of file
+var _0x7072=['exports','STRING','INTEGER','BOOLEAN','crudPermissions','join','getDataValue','split'];(function(_0x5d108f,_0x4006ee){var _0x597384=function(_0x146871){while(--_0x146871){_0x5d108f['push'](_0x5d108f['shift']());}};_0x597384(++_0x4006ee);}(_0x7072,0x138));var _0x2707=function(_0x465a0c,_0x19d4d5){_0x465a0c=_0x465a0c-0x0;var _0x1e202e=_0x7072[_0x465a0c];return _0x1e202e;};'use strict';var Sequelize=require('sequelize');module[_0x2707('0x0')]={'name':{'type':Sequelize[_0x2707('0x1')],'allowNull':![]},'category':{'type':Sequelize[_0x2707('0x1')],'allowNull':![]},'sectionId':{'type':Sequelize[_0x2707('0x2')],'allowNull':![]},'enabled':{'type':Sequelize[_0x2707('0x3')],'defaultValue':null},'autoAssociation':{'type':Sequelize['BOOLEAN'],'defaultValue':null},'crudPermissions':{'type':Sequelize['STRING'],'set':function(_0xfdfa7a){this['setDataValue'](_0x2707('0x4'),_0xfdfa7a?_0xfdfa7a[_0x2707('0x5')](''):[]);},'get':function(){return this[_0x2707('0x6')](_0x2707('0x4'))?this[_0x2707('0x6')](_0x2707('0x4'))[_0x2707('0x7')](''):[];}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2102=['reject','save','update','then','end','error','stack','name','send','index','map','UserProfileSection','rawAttributes','fieldName','key','query','keys','filters','intersection','attributes','model','fields','length','nolimit','sort','where','pick','filter','merge','options','includeAll','include','findAll','rows','catch','show','find','create','body','params','describe','eml-format','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','../../mysqldb','status','json','offset','limit','undefined','count','set','Content-Range','apply'];(function(_0x5b5b5f,_0x1d88f8){var _0x380741=function(_0x11ccc0){while(--_0x11ccc0){_0x5b5b5f['push'](_0x5b5b5f['shift']());}};_0x380741(++_0x1d88f8);}(_0x2102,0x1eb));var _0x2210=function(_0x453cbc,_0x8bd2c7){_0x453cbc=_0x453cbc-0x0;var _0x3b6e3b=_0x2102[_0x453cbc];return _0x3b6e3b;};'use strict';var emlformat=require(_0x2210('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x2210('0x1'));var rp=require(_0x2210('0x2'));var moment=require(_0x2210('0x3'));var BPromise=require(_0x2210('0x4'));var Mustache=require(_0x2210('0x5'));var util=require(_0x2210('0x6'));var path=require('path');var sox=require(_0x2210('0x7'));var csv=require(_0x2210('0x8'));var ejs=require(_0x2210('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x2210('0xa'));var squel=require(_0x2210('0xb'));var crypto=require(_0x2210('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x2210('0xd'));var toCsv=require(_0x2210('0x8'));var querystring=require(_0x2210('0xe'));var Papa=require(_0x2210('0xf'));var Redis=require(_0x2210('0x10'));var authService=require(_0x2210('0x11'));var qs=require(_0x2210('0x12'));var as=require(_0x2210('0x13'));var hardwareService=require(_0x2210('0x14'));var logger=require('../../config/logger')(_0x2210('0x15'));var utils=require('../../config/utils');var config=require(_0x2210('0x16'));var licenseUtil=require(_0x2210('0x17'));var db=require(_0x2210('0x18'))['db'];function respondWithStatusCode(_0x7fd002,_0x3a2c82){_0x3a2c82=_0x3a2c82||0xcc;return function(_0x54bad5){if(_0x54bad5){return _0x7fd002['sendStatus'](_0x3a2c82);}return _0x7fd002[_0x2210('0x19')](_0x3a2c82)['end']();};}function respondWithResult(_0x1edfd7,_0x1a8859){_0x1a8859=_0x1a8859||0xc8;return function(_0x343410){if(_0x343410){return _0x1edfd7['status'](_0x1a8859)[_0x2210('0x1a')](_0x343410);}};}function respondWithFilteredResult(_0x291c73,_0x324ef8){return function(_0x2dee9b){if(_0x2dee9b){var _0x4af4fd=typeof _0x324ef8[_0x2210('0x1b')]==='undefined'&&typeof _0x324ef8[_0x2210('0x1c')]===_0x2210('0x1d');var _0x2ae6c7=_0x2dee9b[_0x2210('0x1e')];var _0x4a6e81=_0x4af4fd?0x0:_0x324ef8[_0x2210('0x1b')];var _0x5189cf=_0x4af4fd?_0x2dee9b[_0x2210('0x1e')]:_0x324ef8[_0x2210('0x1b')]+_0x324ef8['limit'];var _0x2ee888;if(_0x5189cf>=_0x2ae6c7){_0x5189cf=_0x2ae6c7;_0x2ee888=0xc8;}else{_0x2ee888=0xce;}_0x291c73[_0x2210('0x19')](_0x2ee888);return _0x291c73[_0x2210('0x1f')](_0x2210('0x20'),_0x4a6e81+'-'+_0x5189cf+'/'+_0x2ae6c7)[_0x2210('0x1a')](_0x2dee9b);}return null;};}function patchUpdates(_0x4c3f2d){return function(_0x1fa76e){try{jsonpatch[_0x2210('0x21')](_0x1fa76e,_0x4c3f2d,!![]);}catch(_0x39dc17){return BPromise[_0x2210('0x22')](_0x39dc17);}return _0x1fa76e[_0x2210('0x23')]();};}function saveUpdates(_0x3e727a,_0x559bdd){return function(_0x232328){if(_0x232328){return _0x232328[_0x2210('0x24')](_0x3e727a)[_0x2210('0x25')](function(_0x4440a0){return _0x4440a0;});}return null;};}function removeEntity(_0x33e5fc,_0x13ccea){return function(_0x2b9ed1){if(_0x2b9ed1){return _0x2b9ed1['destroy']()[_0x2210('0x25')](function(){_0x33e5fc[_0x2210('0x19')](0xcc)[_0x2210('0x26')]();});}};}function handleEntityNotFound(_0x56335c,_0x17fa42){return function(_0x3239f3){if(!_0x3239f3){_0x56335c['sendStatus'](0x194);}return _0x3239f3;};}function handleError(_0x2a516e,_0x20c972){_0x20c972=_0x20c972||0x1f4;return function(_0x473773){logger[_0x2210('0x27')](_0x473773[_0x2210('0x28')]);if(_0x473773['name']){delete _0x473773[_0x2210('0x29')];}_0x2a516e[_0x2210('0x19')](_0x20c972)[_0x2210('0x2a')](_0x473773);};}exports[_0x2210('0x2b')]=function(_0x1a41d5,_0x4a146a){var _0x35810d={},_0x1b803d={},_0x11418d={'count':0x0,'rows':[]};var _0x3a5600=_[_0x2210('0x2c')](db[_0x2210('0x2d')][_0x2210('0x2e')],function(_0x10348b){return{'name':_0x10348b[_0x2210('0x2f')],'type':_0x10348b['type'][_0x2210('0x30')]};});_0x1b803d['model']=_[_0x2210('0x2c')](_0x3a5600,_0x2210('0x29'));_0x1b803d[_0x2210('0x31')]=_[_0x2210('0x32')](_0x1a41d5[_0x2210('0x31')]);_0x1b803d[_0x2210('0x33')]=_[_0x2210('0x34')](_0x1b803d['model'],_0x1b803d[_0x2210('0x31')]);_0x35810d[_0x2210('0x35')]=_[_0x2210('0x34')](_0x1b803d[_0x2210('0x36')],qs['fields'](_0x1a41d5[_0x2210('0x31')][_0x2210('0x37')]));_0x35810d[_0x2210('0x35')]=_0x35810d['attributes'][_0x2210('0x38')]?_0x35810d['attributes']:_0x1b803d[_0x2210('0x36')];if(!_0x1a41d5[_0x2210('0x31')]['hasOwnProperty'](_0x2210('0x39'))){_0x35810d[_0x2210('0x1c')]=qs[_0x2210('0x1c')](_0x1a41d5[_0x2210('0x31')][_0x2210('0x1c')]);_0x35810d[_0x2210('0x1b')]=qs['offset'](_0x1a41d5[_0x2210('0x31')]['offset']);}_0x35810d['order']=qs['sort'](_0x1a41d5[_0x2210('0x31')][_0x2210('0x3a')]);_0x35810d[_0x2210('0x3b')]=qs['filters'](_[_0x2210('0x3c')](_0x1a41d5[_0x2210('0x31')],_0x1b803d[_0x2210('0x33')]),_0x3a5600);if(_0x1a41d5[_0x2210('0x31')][_0x2210('0x3d')]){_0x35810d['where']=_['merge'](_0x35810d[_0x2210('0x3b')],{'$or':_[_0x2210('0x2c')](_0x3a5600,function(_0x475cf9){if(_0x475cf9['type']!=='VIRTUAL'){var _0xb86d3b={};_0xb86d3b[_0x475cf9[_0x2210('0x29')]]={'$like':'%'+_0x1a41d5[_0x2210('0x31')]['filter']+'%'};return _0xb86d3b;}})});}_0x35810d=_[_0x2210('0x3e')]({},_0x35810d,_0x1a41d5[_0x2210('0x3f')]);var _0x3ed6ef={'where':_0x35810d[_0x2210('0x3b')]};return db[_0x2210('0x2d')][_0x2210('0x1e')](_0x3ed6ef)[_0x2210('0x25')](function(_0x4f4d3f){_0x11418d['count']=_0x4f4d3f;if(_0x1a41d5['query'][_0x2210('0x40')]){_0x35810d[_0x2210('0x41')]=[{'all':!![]}];}return db[_0x2210('0x2d')][_0x2210('0x42')](_0x35810d);})[_0x2210('0x25')](function(_0x3964e5){_0x11418d[_0x2210('0x43')]=_0x3964e5;return _0x11418d;})[_0x2210('0x25')](respondWithFilteredResult(_0x4a146a,_0x35810d))[_0x2210('0x44')](handleError(_0x4a146a,null));};exports[_0x2210('0x45')]=function(_0x21fe24,_0x1db50a){var _0x403dab={'raw':![],'where':{'id':_0x21fe24['params']['id']}},_0x35cecc={};_0x35cecc[_0x2210('0x36')]=_[_0x2210('0x32')](db[_0x2210('0x2d')][_0x2210('0x2e')]);_0x35cecc['query']=_['keys'](_0x21fe24[_0x2210('0x31')]);_0x35cecc['filters']=_[_0x2210('0x34')](_0x35cecc['model'],_0x35cecc[_0x2210('0x31')]);_0x403dab[_0x2210('0x35')]=_[_0x2210('0x34')](_0x35cecc[_0x2210('0x36')],qs[_0x2210('0x37')](_0x21fe24[_0x2210('0x31')][_0x2210('0x37')]));_0x403dab[_0x2210('0x35')]=_0x403dab['attributes'][_0x2210('0x38')]?_0x403dab[_0x2210('0x35')]:_0x35cecc[_0x2210('0x36')];if(_0x21fe24['query'][_0x2210('0x40')]){_0x403dab[_0x2210('0x41')]=[{'all':!![]}];}_0x403dab=_[_0x2210('0x3e')]({},_0x403dab,_0x21fe24['options']);return db[_0x2210('0x2d')][_0x2210('0x46')](_0x403dab)['then'](handleEntityNotFound(_0x1db50a,null))[_0x2210('0x25')](respondWithResult(_0x1db50a,null))[_0x2210('0x44')](handleError(_0x1db50a,null));};exports[_0x2210('0x47')]=function(_0x211abc,_0x414ba5){return db[_0x2210('0x2d')][_0x2210('0x47')](_0x211abc[_0x2210('0x48')],{})[_0x2210('0x25')](respondWithResult(_0x414ba5,0xc9))[_0x2210('0x44')](handleError(_0x414ba5,null));};exports[_0x2210('0x24')]=function(_0x4e19f4,_0x2234c6){if(_0x4e19f4['body']['id']){delete _0x4e19f4[_0x2210('0x48')]['id'];}return db[_0x2210('0x2d')][_0x2210('0x46')]({'where':{'id':_0x4e19f4[_0x2210('0x49')]['id']}})[_0x2210('0x25')](handleEntityNotFound(_0x2234c6,null))[_0x2210('0x25')](saveUpdates(_0x4e19f4[_0x2210('0x48')],null))[_0x2210('0x25')](respondWithResult(_0x2234c6,null))[_0x2210('0x44')](handleError(_0x2234c6,null));};exports['destroy']=function(_0xbf23df,_0x1a88f3){return db[_0x2210('0x2d')][_0x2210('0x46')]({'where':{'id':_0xbf23df[_0x2210('0x49')]['id']}})[_0x2210('0x25')](handleEntityNotFound(_0x1a88f3,null))['then'](removeEntity(_0x1a88f3,null))[_0x2210('0x44')](handleError(_0x1a88f3,null));};exports[_0x2210('0x4a')]=function(_0x1a0fa3,_0x4062bd){return db[_0x2210('0x2d')][_0x2210('0x4a')]()[_0x2210('0x25')](respondWithResult(_0x4062bd,null))[_0x2210('0x44')](handleError(_0x4062bd,null));};
\ No newline at end of file
+var _0x543d=['show','params','fields','find','create','body','describe','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','path','sox','squel','crypto','jsforce','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','end','error','stack','name','send','map','UserProfileSection','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','length','nolimit','order','sort','where','pick','filter','merge','options','includeAll','include','rows','catch'];(function(_0x45ac9f,_0x58ea30){var _0x248bd4=function(_0x2ad35a){while(--_0x2ad35a){_0x45ac9f['push'](_0x45ac9f['shift']());}};_0x248bd4(++_0x58ea30);}(_0x543d,0x1cf));var _0xd543=function(_0x1830a9,_0x1583bd){_0x1830a9=_0x1830a9-0x0;var _0x2b6166=_0x543d[_0x1830a9];return _0x2b6166;};'use strict';var emlformat=require(_0xd543('0x0'));var rimraf=require(_0xd543('0x1'));var zipdir=require(_0xd543('0x2'));var jsonpatch=require(_0xd543('0x3'));var rp=require('request-promise');var moment=require(_0xd543('0x4'));var BPromise=require(_0xd543('0x5'));var Mustache=require('mustache');var util=require('util');var path=require(_0xd543('0x6'));var sox=require(_0xd543('0x7'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0xd543('0x8'));var crypto=require(_0xd543('0x9'));var jsforce=require(_0xd543('0xa'));var deskjs=require('desk.js');var toCsv=require(_0xd543('0xb'));var querystring=require(_0xd543('0xc'));var Papa=require(_0xd543('0xd'));var Redis=require(_0xd543('0xe'));var authService=require(_0xd543('0xf'));var qs=require(_0xd543('0x10'));var as=require(_0xd543('0x11'));var hardwareService=require(_0xd543('0x12'));var logger=require('../../config/logger')(_0xd543('0x13'));var utils=require(_0xd543('0x14'));var config=require(_0xd543('0x15'));var licenseUtil=require(_0xd543('0x16'));var db=require(_0xd543('0x17'))['db'];function respondWithStatusCode(_0x50a392,_0x16408c){_0x16408c=_0x16408c||0xcc;return function(_0x55a1b6){if(_0x55a1b6){return _0x50a392[_0xd543('0x18')](_0x16408c);}return _0x50a392['status'](_0x16408c)['end']();};}function respondWithResult(_0xccb3c3,_0x52e8be){_0x52e8be=_0x52e8be||0xc8;return function(_0x383ff9){if(_0x383ff9){return _0xccb3c3[_0xd543('0x19')](_0x52e8be)[_0xd543('0x1a')](_0x383ff9);}};}function respondWithFilteredResult(_0x37517e,_0x14cc14){return function(_0x528b31){if(_0x528b31){var _0x40498a=typeof _0x14cc14[_0xd543('0x1b')]===_0xd543('0x1c')&&typeof _0x14cc14[_0xd543('0x1d')]==='undefined';var _0x2780a3=_0x528b31[_0xd543('0x1e')];var _0x35b2db=_0x40498a?0x0:_0x14cc14[_0xd543('0x1b')];var _0x185166=_0x40498a?_0x528b31[_0xd543('0x1e')]:_0x14cc14[_0xd543('0x1b')]+_0x14cc14[_0xd543('0x1d')];var _0x4cec6f;if(_0x185166>=_0x2780a3){_0x185166=_0x2780a3;_0x4cec6f=0xc8;}else{_0x4cec6f=0xce;}_0x37517e[_0xd543('0x19')](_0x4cec6f);return _0x37517e[_0xd543('0x1f')](_0xd543('0x20'),_0x35b2db+'-'+_0x185166+'/'+_0x2780a3)[_0xd543('0x1a')](_0x528b31);}return null;};}function patchUpdates(_0x133618){return function(_0x53e58a){try{jsonpatch[_0xd543('0x21')](_0x53e58a,_0x133618,!![]);}catch(_0x135e39){return BPromise[_0xd543('0x22')](_0x135e39);}return _0x53e58a[_0xd543('0x23')]();};}function saveUpdates(_0x433ba6,_0x1e6cf7){return function(_0x1b8412){if(_0x1b8412){return _0x1b8412[_0xd543('0x24')](_0x433ba6)[_0xd543('0x25')](function(_0x3b6d0f){return _0x3b6d0f;});}return null;};}function removeEntity(_0x3512db,_0x38c153){return function(_0x2e0ad7){if(_0x2e0ad7){return _0x2e0ad7[_0xd543('0x26')]()[_0xd543('0x25')](function(){_0x3512db[_0xd543('0x19')](0xcc)[_0xd543('0x27')]();});}};}function handleEntityNotFound(_0x481a38,_0x4bbb81){return function(_0x5a59a8){if(!_0x5a59a8){_0x481a38[_0xd543('0x18')](0x194);}return _0x5a59a8;};}function handleError(_0x28121e,_0x2e27c7){_0x2e27c7=_0x2e27c7||0x1f4;return function(_0x259a81){logger[_0xd543('0x28')](_0x259a81[_0xd543('0x29')]);if(_0x259a81[_0xd543('0x2a')]){delete _0x259a81[_0xd543('0x2a')];}_0x28121e[_0xd543('0x19')](_0x2e27c7)[_0xd543('0x2b')](_0x259a81);};}exports['index']=function(_0x5155bc,_0x50c6c8){var _0x490a72={},_0xc02ac4={},_0x589551={'count':0x0,'rows':[]};var _0x1d92eb=_[_0xd543('0x2c')](db[_0xd543('0x2d')][_0xd543('0x2e')],function(_0x19dbc7){return{'name':_0x19dbc7[_0xd543('0x2f')],'type':_0x19dbc7[_0xd543('0x30')][_0xd543('0x31')]};});_0xc02ac4[_0xd543('0x32')]=_[_0xd543('0x2c')](_0x1d92eb,_0xd543('0x2a'));_0xc02ac4[_0xd543('0x33')]=_[_0xd543('0x34')](_0x5155bc[_0xd543('0x33')]);_0xc02ac4[_0xd543('0x35')]=_[_0xd543('0x36')](_0xc02ac4[_0xd543('0x32')],_0xc02ac4[_0xd543('0x33')]);_0x490a72[_0xd543('0x37')]=_[_0xd543('0x36')](_0xc02ac4[_0xd543('0x32')],qs['fields'](_0x5155bc[_0xd543('0x33')]['fields']));_0x490a72[_0xd543('0x37')]=_0x490a72[_0xd543('0x37')][_0xd543('0x38')]?_0x490a72[_0xd543('0x37')]:_0xc02ac4[_0xd543('0x32')];if(!_0x5155bc['query']['hasOwnProperty'](_0xd543('0x39'))){_0x490a72[_0xd543('0x1d')]=qs[_0xd543('0x1d')](_0x5155bc[_0xd543('0x33')][_0xd543('0x1d')]);_0x490a72['offset']=qs[_0xd543('0x1b')](_0x5155bc[_0xd543('0x33')][_0xd543('0x1b')]);}_0x490a72[_0xd543('0x3a')]=qs[_0xd543('0x3b')](_0x5155bc[_0xd543('0x33')][_0xd543('0x3b')]);_0x490a72[_0xd543('0x3c')]=qs[_0xd543('0x35')](_[_0xd543('0x3d')](_0x5155bc['query'],_0xc02ac4['filters']),_0x1d92eb);if(_0x5155bc[_0xd543('0x33')][_0xd543('0x3e')]){_0x490a72[_0xd543('0x3c')]=_[_0xd543('0x3f')](_0x490a72[_0xd543('0x3c')],{'$or':_[_0xd543('0x2c')](_0x1d92eb,function(_0x520718){if(_0x520718['type']!=='VIRTUAL'){var _0x3739ba={};_0x3739ba[_0x520718[_0xd543('0x2a')]]={'$like':'%'+_0x5155bc['query']['filter']+'%'};return _0x3739ba;}})});}_0x490a72=_['merge']({},_0x490a72,_0x5155bc[_0xd543('0x40')]);var _0x55f785={'where':_0x490a72['where']};return db[_0xd543('0x2d')][_0xd543('0x1e')](_0x55f785)['then'](function(_0x24a780){_0x589551[_0xd543('0x1e')]=_0x24a780;if(_0x5155bc[_0xd543('0x33')][_0xd543('0x41')]){_0x490a72[_0xd543('0x42')]=[{'all':!![]}];}return db[_0xd543('0x2d')]['findAll'](_0x490a72);})[_0xd543('0x25')](function(_0x48aa4a){_0x589551[_0xd543('0x43')]=_0x48aa4a;return _0x589551;})[_0xd543('0x25')](respondWithFilteredResult(_0x50c6c8,_0x490a72))[_0xd543('0x44')](handleError(_0x50c6c8,null));};exports[_0xd543('0x45')]=function(_0x18dc85,_0x29fc11){var _0x1ea4eb={'raw':![],'where':{'id':_0x18dc85[_0xd543('0x46')]['id']}},_0x59177e={};_0x59177e[_0xd543('0x32')]=_[_0xd543('0x34')](db[_0xd543('0x2d')][_0xd543('0x2e')]);_0x59177e[_0xd543('0x33')]=_[_0xd543('0x34')](_0x18dc85[_0xd543('0x33')]);_0x59177e[_0xd543('0x35')]=_[_0xd543('0x36')](_0x59177e['model'],_0x59177e[_0xd543('0x33')]);_0x1ea4eb[_0xd543('0x37')]=_[_0xd543('0x36')](_0x59177e[_0xd543('0x32')],qs[_0xd543('0x47')](_0x18dc85[_0xd543('0x33')][_0xd543('0x47')]));_0x1ea4eb[_0xd543('0x37')]=_0x1ea4eb[_0xd543('0x37')][_0xd543('0x38')]?_0x1ea4eb['attributes']:_0x59177e['model'];if(_0x18dc85[_0xd543('0x33')][_0xd543('0x41')]){_0x1ea4eb[_0xd543('0x42')]=[{'all':!![]}];}_0x1ea4eb=_[_0xd543('0x3f')]({},_0x1ea4eb,_0x18dc85[_0xd543('0x40')]);return db['UserProfileSection'][_0xd543('0x48')](_0x1ea4eb)[_0xd543('0x25')](handleEntityNotFound(_0x29fc11,null))[_0xd543('0x25')](respondWithResult(_0x29fc11,null))[_0xd543('0x44')](handleError(_0x29fc11,null));};exports[_0xd543('0x49')]=function(_0x38fb82,_0x268ad2){return db[_0xd543('0x2d')][_0xd543('0x49')](_0x38fb82['body'],{})['then'](respondWithResult(_0x268ad2,0xc9))[_0xd543('0x44')](handleError(_0x268ad2,null));};exports[_0xd543('0x24')]=function(_0x48a14d,_0x2f2820){if(_0x48a14d[_0xd543('0x4a')]['id']){delete _0x48a14d[_0xd543('0x4a')]['id'];}return db[_0xd543('0x2d')][_0xd543('0x48')]({'where':{'id':_0x48a14d[_0xd543('0x46')]['id']}})[_0xd543('0x25')](handleEntityNotFound(_0x2f2820,null))[_0xd543('0x25')](saveUpdates(_0x48a14d[_0xd543('0x4a')],null))[_0xd543('0x25')](respondWithResult(_0x2f2820,null))[_0xd543('0x44')](handleError(_0x2f2820,null));};exports[_0xd543('0x26')]=function(_0x1c12a2,_0x1a6759){return db[_0xd543('0x2d')][_0xd543('0x48')]({'where':{'id':_0x1c12a2['params']['id']}})[_0xd543('0x25')](handleEntityNotFound(_0x1a6759,null))[_0xd543('0x25')](removeEntity(_0x1a6759,null))['catch'](handleError(_0x1a6759,null));};exports[_0xd543('0x4b')]=function(_0x3dc139,_0x4cec7b){return db['UserProfileSection'][_0xd543('0x4b')]()[_0xd543('0x25')](respondWithResult(_0x4cec7b,null))[_0xd543('0x44')](handleError(_0x4cec7b,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd9ed=['lodash','util','../../config/logger','api','moment','bluebird','request-promise','../../config/environment','exports','define','compositeIndex','sectionId','userProfileId'];(function(_0x485b5a,_0x2b289b){var _0xd2b34d=function(_0x34dcbd){while(--_0x34dcbd){_0x485b5a['push'](_0x485b5a['shift']());}};_0xd2b34d(++_0x2b289b);}(_0xd9ed,0x68));var _0xdd9e=function(_0x38f85c,_0x49a6cb){_0x38f85c=_0x38f85c-0x0;var _0x5642d7=_0xd9ed[_0x38f85c];return _0x5642d7;};'use strict';var _=require(_0xdd9e('0x0'));var util=require(_0xdd9e('0x1'));var logger=require(_0xdd9e('0x2'))(_0xdd9e('0x3'));var moment=require(_0xdd9e('0x4'));var BPromise=require(_0xdd9e('0x5'));var rp=require(_0xdd9e('0x6'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0xdd9e('0x7'));var attributes=require('./userProfileSection.attributes');module[_0xdd9e('0x8')]=function(_0x12a52c,_0x280c73){return _0x12a52c[_0xdd9e('0x9')]('UserProfileSection',attributes,{'tableName':'user_profile_has_sections','paranoid':![],'indexes':[{'name':_0xdd9e('0xa'),'fields':[_0xdd9e('0xb'),_0xdd9e('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x5248=['api','moment','bluebird','request-promise','../../config/environment','./userProfileSection.attributes','exports','define','UserProfileSection','user_profile_has_sections','compositeIndex','sectionId','lodash','util'];(function(_0x2b4da3,_0x4de853){var _0x5489a2=function(_0x5c6cff){while(--_0x5c6cff){_0x2b4da3['push'](_0x2b4da3['shift']());}};_0x5489a2(++_0x4de853);}(_0x5248,0x108));var _0x8524=function(_0x1be17a,_0x33d296){_0x1be17a=_0x1be17a-0x0;var _0x5c397a=_0x5248[_0x1be17a];return _0x5c397a;};'use strict';var _=require(_0x8524('0x0'));var util=require(_0x8524('0x1'));var logger=require('../../config/logger')(_0x8524('0x2'));var moment=require(_0x8524('0x3'));var BPromise=require(_0x8524('0x4'));var rp=require(_0x8524('0x5'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x8524('0x6'));var attributes=require(_0x8524('0x7'));module[_0x8524('0x8')]=function(_0x4dba6f,_0x52dcc9){return _0x4dba6f[_0x8524('0x9')](_0x8524('0xa'),attributes,{'tableName':_0x8524('0xb'),'paranoid':![],'indexes':[{'name':_0x8524('0xc'),'fields':[_0x8524('0xd'),'userProfileId']}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x739f=['util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','jayson/promise','client','then','info','UserProfileSection,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','lodash'];(function(_0x58afd5,_0x534a48){var _0x3e503b=function(_0x27ba44){while(--_0x27ba44){_0x58afd5['push'](_0x58afd5['shift']());}};_0x3e503b(++_0x534a48);}(_0x739f,0xbc));var _0xf739=function(_0x40a634,_0x1f6074){_0x40a634=_0x40a634-0x0;var _0xd095f8=_0x739f[_0x40a634];return _0xd095f8;};'use strict';var _=require(_0xf739('0x0'));var util=require(_0xf739('0x1'));var moment=require(_0xf739('0x2'));var BPromise=require(_0xf739('0x3'));var rs=require(_0xf739('0x4'));var fs=require('fs');var Redis=require(_0xf739('0x5'));var db=require(_0xf739('0x6'))['db'];var utils=require('../../config/utils');var logger=require(_0xf739('0x7'))('rpc');var config=require('../../config/environment');var jayson=require(_0xf739('0x8'));var client=jayson[_0xf739('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x57ae17,_0x40400b,_0x53606f){return new BPromise(function(_0x156305,_0x56d021){return client['request'](_0x57ae17,_0x53606f)[_0xf739('0xa')](function(_0x177c8){logger[_0xf739('0xb')](_0xf739('0xc'),_0x40400b,_0xf739('0xd'));logger[_0xf739('0xe')]('UserProfileSection,\x20%s,\x20%s,\x20%s',_0x40400b,_0xf739('0xd'),JSON[_0xf739('0xf')](_0x177c8));if(_0x177c8[_0xf739('0x10')]){if(_0x177c8['error'][_0xf739('0x11')]===0x1f4){logger[_0xf739('0x10')]('UserProfileSection,\x20%s,\x20%s',_0x40400b,_0x177c8[_0xf739('0x10')][_0xf739('0x12')]);return _0x56d021(_0x177c8[_0xf739('0x10')][_0xf739('0x12')]);}logger['error']('UserProfileSection,\x20%s,\x20%s',_0x40400b,_0x177c8['error'][_0xf739('0x12')]);return _0x156305(_0x177c8[_0xf739('0x10')][_0xf739('0x12')]);}else{logger[_0xf739('0xb')](_0xf739('0xc'),_0x40400b,'request\x20sent');_0x156305(_0x177c8[_0xf739('0x13')]['message']);}})[_0xf739('0x14')](function(_0x3c695f){logger[_0xf739('0x10')](_0xf739('0xc'),_0x40400b,_0x3c695f);_0x56d021(_0x3c695f);});});}
\ No newline at end of file
+var _0x0a25=['../../config/environment','http','then','info','UserProfileSection,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','lodash','moment','randomstring','ioredis','../../config/utils','rpc'];(function(_0x20acdb,_0x210c8e){var _0x383b0d=function(_0x5d0919){while(--_0x5d0919){_0x20acdb['push'](_0x20acdb['shift']());}};_0x383b0d(++_0x210c8e);}(_0x0a25,0x1bc));var _0x50a2=function(_0xcdc46b,_0x5007bf){_0xcdc46b=_0xcdc46b-0x0;var _0x4f46cb=_0x0a25[_0xcdc46b];return _0x4f46cb;};'use strict';var _=require(_0x50a2('0x0'));var util=require('util');var moment=require(_0x50a2('0x1'));var BPromise=require('bluebird');var rs=require(_0x50a2('0x2'));var fs=require('fs');var Redis=require(_0x50a2('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x50a2('0x4'));var logger=require('../../config/logger')(_0x50a2('0x5'));var config=require(_0x50a2('0x6'));var jayson=require('jayson/promise');var client=jayson['client'][_0x50a2('0x7')]({'port':0x232a});function respondWithRpcPromise(_0x3a6323,_0x3d3db7,_0x3982a1){return new BPromise(function(_0x3c858a,_0x5b5db9){return client['request'](_0x3a6323,_0x3982a1)[_0x50a2('0x8')](function(_0x17a8e6){logger[_0x50a2('0x9')](_0x50a2('0xa'),_0x3d3db7,_0x50a2('0xb'));logger['debug']('UserProfileSection,\x20%s,\x20%s,\x20%s',_0x3d3db7,_0x50a2('0xb'),JSON[_0x50a2('0xc')](_0x17a8e6));if(_0x17a8e6['error']){if(_0x17a8e6[_0x50a2('0xd')][_0x50a2('0xe')]===0x1f4){logger[_0x50a2('0xd')](_0x50a2('0xa'),_0x3d3db7,_0x17a8e6['error'][_0x50a2('0xf')]);return _0x5b5db9(_0x17a8e6[_0x50a2('0xd')]['message']);}logger[_0x50a2('0xd')](_0x50a2('0xa'),_0x3d3db7,_0x17a8e6['error'][_0x50a2('0xf')]);return _0x3c858a(_0x17a8e6[_0x50a2('0xd')][_0x50a2('0xf')]);}else{logger[_0x50a2('0x9')](_0x50a2('0xa'),_0x3d3db7,_0x50a2('0xb'));_0x3c858a(_0x17a8e6[_0x50a2('0x10')]['message']);}})[_0x50a2('0x11')](function(_0x71d6d4){logger[_0x50a2('0xd')](_0x50a2('0xa'),_0x3d3db7,_0x71d6d4);_0x5b5db9(_0x71d6d4);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x70e0=['../../components/auth/service','../../components/interaction/service','exports','multer','util','path','Router','fs-extra'];(function(_0x481834,_0x37284b){var _0x1ff46e=function(_0x30b67a){while(--_0x30b67a){_0x481834['push'](_0x481834['shift']());}};_0x1ff46e(++_0x37284b);}(_0x70e0,0x17b));var _0x070e=function(_0x342ac9,_0x40d69d){_0x342ac9=_0x342ac9-0x0;var _0xb5e11e=_0x70e0[_0x342ac9];return _0xb5e11e;};'use strict';var multer=require(_0x070e('0x0'));var util=require(_0x070e('0x1'));var path=require(_0x070e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x070e('0x3')]();var fs_extra=require(_0x070e('0x4'));var auth=require(_0x070e('0x5'));var interaction=require(_0x070e('0x6'));var config=require('../../config/environment');module[_0x070e('0x7')]=router;
\ No newline at end of file
+var _0x9c44=['express','Router','fs-extra','../../components/auth/service','exports','path','connect-timeout'];(function(_0x335f5c,_0xce622c){var _0x27458c=function(_0x108b7f){while(--_0x108b7f){_0x335f5c['push'](_0x335f5c['shift']());}};_0x27458c(++_0xce622c);}(_0x9c44,0x178));var _0x49c4=function(_0x334841,_0x2bbc4c){_0x334841=_0x334841-0x0;var _0x5beb4b=_0x9c44[_0x334841];return _0x5beb4b;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x49c4('0x0'));var timeout=require(_0x49c4('0x1'));var express=require(_0x49c4('0x2'));var router=express[_0x49c4('0x3')]();var fs_extra=require(_0x49c4('0x4'));var auth=require(_0x49c4('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');module[_0x49c4('0x6')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x190a=['INTEGER','sequelize','exports'];(function(_0x13591d,_0x1e8ad5){var _0x67c76c=function(_0x526637){while(--_0x526637){_0x13591d['push'](_0x13591d['shift']());}};_0x67c76c(++_0x1e8ad5);}(_0x190a,0x1ea));var _0xa190=function(_0x8b4fa9,_0xd0f53e){_0x8b4fa9=_0x8b4fa9-0x0;var _0x3f726a=_0x190a[_0x8b4fa9];return _0x3f726a;};'use strict';var Sequelize=require(_0xa190('0x0'));module[_0xa190('0x1')]={'penalty':{'type':Sequelize[_0xa190('0x2')],'defaultValue':0x0}};
\ No newline at end of file
+var _0xe64b=['sequelize','INTEGER'];(function(_0x99692,_0x32528e){var _0xe5fbb4=function(_0x58a4e1){while(--_0x58a4e1){_0x99692['push'](_0x99692['shift']());}};_0xe5fbb4(++_0x32528e);}(_0xe64b,0xc4));var _0xbe64=function(_0x1d97f9,_0x5d0572){_0x1d97f9=_0x1d97f9-0x0;var _0x427abf=_0xe64b[_0x1d97f9];return _0x427abf;};'use strict';var Sequelize=require(_0xbe64('0x0'));module['exports']={'penalty':{'type':Sequelize[_0xbe64('0x1')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe2fe=['../../config/environment','exports','define','UserSmsQueue','lodash','api','bluebird','request-promise','path','rimraf'];(function(_0x454e6d,_0x1e1f38){var _0x4bc294=function(_0x2c803a){while(--_0x2c803a){_0x454e6d['push'](_0x454e6d['shift']());}};_0x4bc294(++_0x1e1f38);}(_0xe2fe,0x86));var _0xee2f=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0xe2fe[_0x14add3];return _0x4a174f;};'use strict';var _=require(_0xee2f('0x0'));var util=require('util');var logger=require('../../config/logger')(_0xee2f('0x1'));var moment=require('moment');var BPromise=require(_0xee2f('0x2'));var rp=require(_0xee2f('0x3'));var fs=require('fs');var path=require(_0xee2f('0x4'));var rimraf=require(_0xee2f('0x5'));var config=require(_0xee2f('0x6'));var attributes=require('./userSmsQueue.attributes');module[_0xee2f('0x7')]=function(_0x2b7e7c,_0x49926b){return _0x2b7e7c[_0xee2f('0x8')](_0xee2f('0x9'),attributes,{'tableName':'user_has_sms_queues','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x0eeb=['../../config/environment','./userSmsQueue.attributes','exports','define','user_has_sms_queues','lodash','util','../../config/logger','api','moment','bluebird','rimraf'];(function(_0x121886,_0x8cd8e5){var _0x20ca01=function(_0x15e144){while(--_0x15e144){_0x121886['push'](_0x121886['shift']());}};_0x20ca01(++_0x8cd8e5);}(_0x0eeb,0xc5));var _0xb0ee=function(_0x59ee6f,_0x450239){_0x59ee6f=_0x59ee6f-0x0;var _0x4c0979=_0x0eeb[_0x59ee6f];return _0x4c0979;};'use strict';var _=require(_0xb0ee('0x0'));var util=require(_0xb0ee('0x1'));var logger=require(_0xb0ee('0x2'))(_0xb0ee('0x3'));var moment=require(_0xb0ee('0x4'));var BPromise=require(_0xb0ee('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0xb0ee('0x6'));var config=require(_0xb0ee('0x7'));var attributes=require(_0xb0ee('0x8'));module[_0xb0ee('0x9')]=function(_0x209dda,_0x453fa4){return _0x209dda[_0xb0ee('0xa')]('UserSmsQueue',attributes,{'tableName':_0xb0ee('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc7d5=['message','info','result','catch','lodash','util','moment','randomstring','../../mysqldb','../../config/utils','rpc','../../config/environment','client','request','then','UserSmsQueue,\x20%s,\x20%s','debug','request\x20sent','stringify','error','code'];(function(_0x37cea8,_0x4ca6d8){var _0xb6a245=function(_0x4f4230){while(--_0x4f4230){_0x37cea8['push'](_0x37cea8['shift']());}};_0xb6a245(++_0x4ca6d8);}(_0xc7d5,0x1d2));var _0x5c7d=function(_0x4008ed,_0x5a3f09){_0x4008ed=_0x4008ed-0x0;var _0x572961=_0xc7d5[_0x4008ed];return _0x572961;};'use strict';var _=require(_0x5c7d('0x0'));var util=require(_0x5c7d('0x1'));var moment=require(_0x5c7d('0x2'));var BPromise=require('bluebird');var rs=require(_0x5c7d('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x5c7d('0x4'))['db'];var utils=require(_0x5c7d('0x5'));var logger=require('../../config/logger')(_0x5c7d('0x6'));var config=require(_0x5c7d('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x5c7d('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x33338d,_0x2b1159,_0x1562a3){return new BPromise(function(_0x4c318e,_0x143c23){return client[_0x5c7d('0x9')](_0x33338d,_0x1562a3)[_0x5c7d('0xa')](function(_0x4dcdcd){logger['info'](_0x5c7d('0xb'),_0x2b1159,'request\x20sent');logger[_0x5c7d('0xc')]('UserSmsQueue,\x20%s,\x20%s,\x20%s',_0x2b1159,_0x5c7d('0xd'),JSON[_0x5c7d('0xe')](_0x4dcdcd));if(_0x4dcdcd[_0x5c7d('0xf')]){if(_0x4dcdcd[_0x5c7d('0xf')][_0x5c7d('0x10')]===0x1f4){logger['error'](_0x5c7d('0xb'),_0x2b1159,_0x4dcdcd[_0x5c7d('0xf')]['message']);return _0x143c23(_0x4dcdcd[_0x5c7d('0xf')]['message']);}logger[_0x5c7d('0xf')]('UserSmsQueue,\x20%s,\x20%s',_0x2b1159,_0x4dcdcd[_0x5c7d('0xf')][_0x5c7d('0x11')]);return _0x4c318e(_0x4dcdcd[_0x5c7d('0xf')]['message']);}else{logger[_0x5c7d('0x12')](_0x5c7d('0xb'),_0x2b1159,'request\x20sent');_0x4c318e(_0x4dcdcd[_0x5c7d('0x13')]['message']);}})[_0x5c7d('0x14')](function(_0x4dd75a){logger[_0x5c7d('0xf')](_0x5c7d('0xb'),_0x2b1159,_0x4dd75a);_0x143c23(_0x4dd75a);});});}
\ No newline at end of file
+var _0xa424=['result','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/environment','jayson/promise','client','http','then','UserSmsQueue,\x20%s,\x20%s','request\x20sent','debug','UserSmsQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info'];(function(_0x27436e,_0x5cbf11){var _0x7040e1=function(_0x5bd098){while(--_0x5bd098){_0x27436e['push'](_0x27436e['shift']());}};_0x7040e1(++_0x5cbf11);}(_0xa424,0xb9));var _0x4a42=function(_0x11dabc,_0x2afdcb){_0x11dabc=_0x11dabc-0x0;var _0x3e5eda=_0xa424[_0x11dabc];return _0x3e5eda;};'use strict';var _=require(_0x4a42('0x0'));var util=require(_0x4a42('0x1'));var moment=require(_0x4a42('0x2'));var BPromise=require(_0x4a42('0x3'));var rs=require(_0x4a42('0x4'));var fs=require('fs');var Redis=require(_0x4a42('0x5'));var db=require(_0x4a42('0x6'))['db'];var utils=require(_0x4a42('0x7'));var logger=require('../../config/logger')('rpc');var config=require(_0x4a42('0x8'));var jayson=require(_0x4a42('0x9'));var client=jayson[_0x4a42('0xa')][_0x4a42('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x4cd5d4,_0x40867f,_0x51c92a){return new BPromise(function(_0x1c94ec,_0x4b0461){return client['request'](_0x4cd5d4,_0x51c92a)[_0x4a42('0xc')](function(_0x3dde13){logger['info'](_0x4a42('0xd'),_0x40867f,_0x4a42('0xe'));logger[_0x4a42('0xf')](_0x4a42('0x10'),_0x40867f,_0x4a42('0xe'),JSON[_0x4a42('0x11')](_0x3dde13));if(_0x3dde13[_0x4a42('0x12')]){if(_0x3dde13[_0x4a42('0x12')][_0x4a42('0x13')]===0x1f4){logger['error']('UserSmsQueue,\x20%s,\x20%s',_0x40867f,_0x3dde13[_0x4a42('0x12')][_0x4a42('0x14')]);return _0x4b0461(_0x3dde13[_0x4a42('0x12')][_0x4a42('0x14')]);}logger[_0x4a42('0x12')](_0x4a42('0xd'),_0x40867f,_0x3dde13[_0x4a42('0x12')]['message']);return _0x1c94ec(_0x3dde13[_0x4a42('0x12')][_0x4a42('0x14')]);}else{logger[_0x4a42('0x15')](_0x4a42('0xd'),_0x40867f,_0x4a42('0xe'));_0x1c94ec(_0x3dde13[_0x4a42('0x16')][_0x4a42('0x14')]);}})['catch'](function(_0x108c8f){logger[_0x4a42('0x12')](_0x4a42('0xd'),_0x40867f,_0x108c8f);_0x4b0461(_0x108c8f);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf689=['INTEGER','sequelize'];(function(_0x1b664c,_0x11ae24){var _0x245c8e=function(_0x197922){while(--_0x197922){_0x1b664c['push'](_0x1b664c['shift']());}};_0x245c8e(++_0x11ae24);}(_0xf689,0x1e7));var _0x9f68=function(_0x1623d6,_0x4037d8){_0x1623d6=_0x1623d6-0x0;var _0x549427=_0xf689[_0x1623d6];return _0x549427;};'use strict';var Sequelize=require(_0x9f68('0x0'));module['exports']={'UserId':{'type':Sequelize[_0x9f68('0x1')]},'VoicePrefixId':{'type':Sequelize[_0x9f68('0x1')]}};
\ No newline at end of file
+var _0x54bd=['exports','INTEGER','sequelize'];(function(_0x3b4b5c,_0x5645f4){var _0x17f2e2=function(_0x3679c7){while(--_0x3679c7){_0x3b4b5c['push'](_0x3b4b5c['shift']());}};_0x17f2e2(++_0x5645f4);}(_0x54bd,0x11f));var _0xd54b=function(_0x43a73c,_0x2c5b99){_0x43a73c=_0x43a73c-0x0;var _0x3b5c3b=_0x54bd[_0x43a73c];return _0x3b5c3b;};'use strict';var Sequelize=require(_0xd54b('0x0'));module[_0xd54b('0x1')]={'UserId':{'type':Sequelize[_0xd54b('0x2')]},'VoicePrefixId':{'type':Sequelize[_0xd54b('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['../../config/environment','./userVoicePrefix.attributes','exports','define','UserVoicePrefix','lodash','util','../../config/logger','bluebird','path','rimraf'];(function(_0x362059,_0x42529a){var _0x2a6c20=function(_0x19bb6a){while(--_0x19bb6a){_0x362059['push'](_0x362059['shift']());}};_0x2a6c20(++_0x42529a);}(_0xa9e0,0x123));var _0x0a9e=function(_0x13ea00,_0x12f610){_0x13ea00=_0x13ea00-0x0;var _0x1f7347=_0xa9e0[_0x13ea00];return _0x1f7347;};'use strict';var _=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var logger=require(_0x0a9e('0x2'))('api');var moment=require('moment');var BPromise=require(_0x0a9e('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x0a9e('0x4'));var rimraf=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var attributes=require(_0x0a9e('0x7'));module[_0x0a9e('0x8')]=function(_0x57b080,_0x219af0){return _0x57b080[_0x0a9e('0x9')](_0x0a9e('0xa'),attributes,{'tableName':'user_has_voice_prefixes','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xa9e0=['../../config/environment','./userVoicePrefix.attributes','exports','define','UserVoicePrefix','lodash','util','../../config/logger','bluebird','path','rimraf'];(function(_0x2672f4,_0x4bd101){var _0x1bbd94=function(_0x382009){while(--_0x382009){_0x2672f4['push'](_0x2672f4['shift']());}};_0x1bbd94(++_0x4bd101);}(_0xa9e0,0x123));var _0x0a9e=function(_0x484e36,_0x4482d8){_0x484e36=_0x484e36-0x0;var _0xafc85d=_0xa9e0[_0x484e36];return _0xafc85d;};'use strict';var _=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var logger=require(_0x0a9e('0x2'))('api');var moment=require('moment');var BPromise=require(_0x0a9e('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x0a9e('0x4'));var rimraf=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var attributes=require(_0x0a9e('0x7'));module[_0x0a9e('0x8')]=function(_0x57b080,_0x219af0){return _0x57b080[_0x0a9e('0x9')](_0x0a9e('0xa'),attributes,{'tableName':'user_has_voice_prefixes','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe706=['../../components/interaction/service','../../config/environment','exports','multer','util','path','express','Router','fs-extra','../../components/auth/service'];(function(_0x403345,_0x495dfa){var _0x1ed2d2=function(_0x82e3c8){while(--_0x82e3c8){_0x403345['push'](_0x403345['shift']());}};_0x1ed2d2(++_0x495dfa);}(_0xe706,0xa3));var _0x6e70=function(_0x4a30b7,_0x3dabc8){_0x4a30b7=_0x4a30b7-0x0;var _0xe48f3c=_0xe706[_0x4a30b7];return _0xe48f3c;};'use strict';var multer=require(_0x6e70('0x0'));var util=require(_0x6e70('0x1'));var path=require(_0x6e70('0x2'));var timeout=require('connect-timeout');var express=require(_0x6e70('0x3'));var router=express[_0x6e70('0x4')]();var fs_extra=require(_0x6e70('0x5'));var auth=require(_0x6e70('0x6'));var interaction=require(_0x6e70('0x7'));var config=require(_0x6e70('0x8'));module[_0x6e70('0x9')]=router;
\ No newline at end of file
+var _0x9c44=['express','Router','fs-extra','../../components/auth/service','exports','path','connect-timeout'];(function(_0x263f4c,_0x438626){var _0x3a78d3=function(_0xbdb00f){while(--_0xbdb00f){_0x263f4c['push'](_0x263f4c['shift']());}};_0x3a78d3(++_0x438626);}(_0x9c44,0x178));var _0x49c4=function(_0x13b02f,_0x462a53){_0x13b02f=_0x13b02f-0x0;var _0x12e9a6=_0x9c44[_0x13b02f];return _0x12e9a6;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x49c4('0x0'));var timeout=require(_0x49c4('0x1'));var express=require(_0x49c4('0x2'));var router=express[_0x49c4('0x3')]();var fs_extra=require(_0x49c4('0x4'));var auth=require(_0x49c4('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');module[_0x49c4('0x6')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa482=['INTEGER','sequelize','exports'];(function(_0x35938d,_0x4c261e){var _0x3c91fe=function(_0x357d3f){while(--_0x357d3f){_0x35938d['push'](_0x35938d['shift']());}};_0x3c91fe(++_0x4c261e);}(_0xa482,0x181));var _0x2a48=function(_0x13a451,_0x1c8a50){_0x13a451=_0x13a451-0x0;var _0x1714b3=_0xa482[_0x13a451];return _0x1714b3;};'use strict';var Sequelize=require(_0x2a48('0x0'));module[_0x2a48('0x1')]={'penalty':{'type':Sequelize[_0x2a48('0x2')],'defaultValue':0x0}};
\ No newline at end of file
+var _0xedb3=['exports','INTEGER','sequelize'];(function(_0x263b35,_0x421508){var _0x48168e=function(_0x3bb3a6){while(--_0x3bb3a6){_0x263b35['push'](_0x263b35['shift']());}};_0x48168e(++_0x421508);}(_0xedb3,0x10a));var _0x3edb=function(_0x87b0ff,_0x314389){_0x87b0ff=_0x87b0ff-0x0;var _0x3bc0b2=_0xedb3[_0x87b0ff];return _0x3bc0b2;};'use strict';var Sequelize=require(_0x3edb('0x0'));module[_0x3edb('0x1')]={'penalty':{'type':Sequelize[_0x3edb('0x2')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x74dd=['api','request-promise','path','rimraf','./userVoiceQueue.attributes','exports','define','lodash','util','../../config/logger'];(function(_0x53ccf2,_0x13cb67){var _0x5a2964=function(_0x3b0514){while(--_0x3b0514){_0x53ccf2['push'](_0x53ccf2['shift']());}};_0x5a2964(++_0x13cb67);}(_0x74dd,0x9d));var _0xd74d=function(_0x229a9d,_0x4d3229){_0x229a9d=_0x229a9d-0x0;var _0x5bd600=_0x74dd[_0x229a9d];return _0x5bd600;};'use strict';var _=require(_0xd74d('0x0'));var util=require(_0xd74d('0x1'));var logger=require(_0xd74d('0x2'))(_0xd74d('0x3'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0xd74d('0x4'));var fs=require('fs');var path=require(_0xd74d('0x5'));var rimraf=require(_0xd74d('0x6'));var config=require('../../config/environment');var attributes=require(_0xd74d('0x7'));module[_0xd74d('0x8')]=function(_0x424bf9,_0x4ac462){return _0x424bf9[_0xd74d('0x9')]('UserVoiceQueue',attributes,{'tableName':'user_has_voice_queues','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x5ff3=['path','../../config/environment','exports','user_has_voice_queues','lodash','../../config/logger','bluebird'];(function(_0x1a2056,_0x1dcf5e){var _0x324fa0=function(_0x5e6c70){while(--_0x5e6c70){_0x1a2056['push'](_0x1a2056['shift']());}};_0x324fa0(++_0x1dcf5e);}(_0x5ff3,0x1d9));var _0x35ff=function(_0x22af2f,_0x29a54d){_0x22af2f=_0x22af2f-0x0;var _0x1aeefb=_0x5ff3[_0x22af2f];return _0x1aeefb;};'use strict';var _=require(_0x35ff('0x0'));var util=require('util');var logger=require(_0x35ff('0x1'))('api');var moment=require('moment');var BPromise=require(_0x35ff('0x2'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x35ff('0x3'));var rimraf=require('rimraf');var config=require(_0x35ff('0x4'));var attributes=require('./userVoiceQueue.attributes');module[_0x35ff('0x5')]=function(_0x2f2dce,_0x23f902){return _0x2f2dce['define']('UserVoiceQueue',attributes,{'tableName':_0x35ff('0x6'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf456=['rpc','../../config/environment','jayson/promise','client','http','request','then','info','UserVoiceQueue,\x20%s,\x20%s','request\x20sent','UserVoiceQueue,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb'];(function(_0xef4ef0,_0x3c72f9){var _0x39b60b=function(_0x1d824c){while(--_0x1d824c){_0xef4ef0['push'](_0xef4ef0['shift']());}};_0x39b60b(++_0x3c72f9);}(_0xf456,0xdf));var _0x6f45=function(_0x21d4cf,_0x67f736){_0x21d4cf=_0x21d4cf-0x0;var _0x5b693f=_0xf456[_0x21d4cf];return _0x5b693f;};'use strict';var _=require(_0x6f45('0x0'));var util=require(_0x6f45('0x1'));var moment=require(_0x6f45('0x2'));var BPromise=require(_0x6f45('0x3'));var rs=require(_0x6f45('0x4'));var fs=require('fs');var Redis=require(_0x6f45('0x5'));var db=require(_0x6f45('0x6'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0x6f45('0x7'));var config=require(_0x6f45('0x8'));var jayson=require(_0x6f45('0x9'));var client=jayson[_0x6f45('0xa')][_0x6f45('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x213467,_0x3bb0fe,_0x5f446b){return new BPromise(function(_0x1f085f,_0x61542f){return client[_0x6f45('0xc')](_0x213467,_0x5f446b)[_0x6f45('0xd')](function(_0x3c77f9){logger[_0x6f45('0xe')](_0x6f45('0xf'),_0x3bb0fe,_0x6f45('0x10'));logger['debug'](_0x6f45('0x11'),_0x3bb0fe,'request\x20sent',JSON[_0x6f45('0x12')](_0x3c77f9));if(_0x3c77f9[_0x6f45('0x13')]){if(_0x3c77f9['error']['code']===0x1f4){logger[_0x6f45('0x13')](_0x6f45('0xf'),_0x3bb0fe,_0x3c77f9[_0x6f45('0x13')]['message']);return _0x61542f(_0x3c77f9[_0x6f45('0x13')][_0x6f45('0x14')]);}logger[_0x6f45('0x13')](_0x6f45('0xf'),_0x3bb0fe,_0x3c77f9['error']['message']);return _0x1f085f(_0x3c77f9['error'][_0x6f45('0x14')]);}else{logger[_0x6f45('0xe')](_0x6f45('0xf'),_0x3bb0fe,_0x6f45('0x10'));_0x1f085f(_0x3c77f9[_0x6f45('0x15')][_0x6f45('0x14')]);}})[_0x6f45('0x16')](function(_0x351388){logger[_0x6f45('0x13')](_0x6f45('0xf'),_0x3bb0fe,_0x351388);_0x61542f(_0x351388);});});}
\ No newline at end of file
+var _0xb08f=['randomstring','../../mysqldb','rpc','../../config/environment','jayson/promise','client','http','request','info','UserVoiceQueue,\x20%s,\x20%s','request\x20sent','UserVoiceQueue,\x20%s,\x20%s,\x20%s','stringify','code','error','message','result','lodash','util','moment'];(function(_0x1057cd,_0x25ec93){var _0x1a7ea5=function(_0x262917){while(--_0x262917){_0x1057cd['push'](_0x1057cd['shift']());}};_0x1a7ea5(++_0x25ec93);}(_0xb08f,0xb1));var _0xfb08=function(_0x561b22,_0x1f4fee){_0x561b22=_0x561b22-0x0;var _0x2e8a7a=_0xb08f[_0x561b22];return _0x2e8a7a;};'use strict';var _=require(_0xfb08('0x0'));var util=require(_0xfb08('0x1'));var moment=require(_0xfb08('0x2'));var BPromise=require('bluebird');var rs=require(_0xfb08('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xfb08('0x4'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0xfb08('0x5'));var config=require(_0xfb08('0x6'));var jayson=require(_0xfb08('0x7'));var client=jayson[_0xfb08('0x8')][_0xfb08('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x15cd42,_0x4a95db,_0x20056e){return new BPromise(function(_0x57abee,_0x203193){return client[_0xfb08('0xa')](_0x15cd42,_0x20056e)['then'](function(_0x2e1dd5){logger[_0xfb08('0xb')](_0xfb08('0xc'),_0x4a95db,_0xfb08('0xd'));logger['debug'](_0xfb08('0xe'),_0x4a95db,_0xfb08('0xd'),JSON[_0xfb08('0xf')](_0x2e1dd5));if(_0x2e1dd5['error']){if(_0x2e1dd5['error'][_0xfb08('0x10')]===0x1f4){logger[_0xfb08('0x11')](_0xfb08('0xc'),_0x4a95db,_0x2e1dd5[_0xfb08('0x11')][_0xfb08('0x12')]);return _0x203193(_0x2e1dd5['error']['message']);}logger['error'](_0xfb08('0xc'),_0x4a95db,_0x2e1dd5['error'][_0xfb08('0x12')]);return _0x57abee(_0x2e1dd5[_0xfb08('0x11')][_0xfb08('0x12')]);}else{logger['info'](_0xfb08('0xc'),_0x4a95db,'request\x20sent');_0x57abee(_0x2e1dd5[_0xfb08('0x13')][_0xfb08('0x12')]);}})['catch'](function(_0x558ee9){logger[_0xfb08('0x11')](_0xfb08('0xc'),_0x4a95db,_0x558ee9);_0x203193(_0x558ee9);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd8b0=['Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','multer','util'];(function(_0x53a911,_0x4a48c1){var _0x19b3cd=function(_0x11a11d){while(--_0x11a11d){_0x53a911['push'](_0x53a911['shift']());}};_0x19b3cd(++_0x4a48c1);}(_0xd8b0,0xad));var _0x0d8b=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xd8b0[_0x20a584];return _0x4b41a8;};'use strict';var multer=require(_0x0d8b('0x0'));var util=require(_0x0d8b('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0d8b('0x2')]();var fs_extra=require(_0x0d8b('0x3'));var auth=require(_0x0d8b('0x4'));var interaction=require(_0x0d8b('0x5'));var config=require(_0x0d8b('0x6'));module['exports']=router;
\ No newline at end of file
+var _0x9c44=['express','Router','fs-extra','../../components/auth/service','exports','path','connect-timeout'];(function(_0x2deb15,_0x102a17){var _0x1abb33=function(_0x1a1a10){while(--_0x1a1a10){_0x2deb15['push'](_0x2deb15['shift']());}};_0x1abb33(++_0x102a17);}(_0x9c44,0x178));var _0x49c4=function(_0x1caf6a,_0x26a5bf){_0x1caf6a=_0x1caf6a-0x0;var _0x1bf493=_0x9c44[_0x1caf6a];return _0x1bf493;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0x49c4('0x0'));var timeout=require(_0x49c4('0x1'));var express=require(_0x49c4('0x2'));var router=express[_0x49c4('0x3')]();var fs_extra=require(_0x49c4('0x4'));var auth=require(_0x49c4('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');module[_0x49c4('0x6')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2e1a=['STRING','queue_interface','INTEGER','Required\x20by\x20Asterisk'];(function(_0x2dafbe,_0x5d04de){var _0x58a45a=function(_0x50ac96){while(--_0x50ac96){_0x2dafbe['push'](_0x2dafbe['shift']());}};_0x58a45a(++_0x5d04de);}(_0x2e1a,0xd6));var _0xa2e1=function(_0x467cb0,_0x303070){_0x467cb0=_0x467cb0-0x0;var _0x2153f7=_0x2e1a[_0x467cb0];return _0x2153f7;};'use strict';var Sequelize=require('sequelize');module['exports']={'uniqueid':{'type':Sequelize[_0xa2e1('0x0')],'primaryKey':!![],'autoIncrement':!![],'comment':_0xa2e1('0x1')},'membername':{'type':Sequelize['STRING'],'allowNull':![],'comment':_0xa2e1('0x1')},'UserId':{'type':Sequelize[_0xa2e1('0x0')],'allowNull':![]},'queue_name':{'type':Sequelize[_0xa2e1('0x2')],'allowNull':![],'unique':_0xa2e1('0x3'),'comment':_0xa2e1('0x1')},'VoiceQueueId':{'type':Sequelize[_0xa2e1('0x0')],'allowNull':![]},'interface':{'type':Sequelize[_0xa2e1('0x2')],'allowNull':![],'unique':'queue_interface','comment':_0xa2e1('0x1')},'penalty':{'type':Sequelize[_0xa2e1('0x0')](0xb),'defaultValue':0x0,'comment':_0xa2e1('0x1')},'paused':{'type':Sequelize[_0xa2e1('0x0')](0xb),'defaultValue':0x0,'comment':_0xa2e1('0x1')}};
\ No newline at end of file
+var _0xe538=['sequelize','exports','INTEGER','Required\x20by\x20Asterisk','STRING','queue_interface'];(function(_0x4e7c04,_0x244bd5){var _0x38dd72=function(_0xa86a04){while(--_0xa86a04){_0x4e7c04['push'](_0x4e7c04['shift']());}};_0x38dd72(++_0x244bd5);}(_0xe538,0x1e0));var _0x8e53=function(_0x26ac27,_0x574b86){_0x26ac27=_0x26ac27-0x0;var _0x44a599=_0xe538[_0x26ac27];return _0x44a599;};'use strict';var Sequelize=require(_0x8e53('0x0'));module[_0x8e53('0x1')]={'uniqueid':{'type':Sequelize[_0x8e53('0x2')],'primaryKey':!![],'autoIncrement':!![],'comment':_0x8e53('0x3')},'membername':{'type':Sequelize[_0x8e53('0x4')],'allowNull':![],'comment':'Required\x20by\x20Asterisk'},'UserId':{'type':Sequelize[_0x8e53('0x2')],'allowNull':![]},'queue_name':{'type':Sequelize['STRING'],'allowNull':![],'unique':_0x8e53('0x5'),'comment':'Required\x20by\x20Asterisk'},'VoiceQueueId':{'type':Sequelize[_0x8e53('0x2')],'allowNull':![]},'interface':{'type':Sequelize['STRING'],'allowNull':![],'unique':_0x8e53('0x5'),'comment':_0x8e53('0x3')},'penalty':{'type':Sequelize[_0x8e53('0x2')](0xb),'defaultValue':0x0,'comment':'Required\x20by\x20Asterisk'},'paused':{'type':Sequelize[_0x8e53('0x2')](0xb),'defaultValue':0x0,'comment':_0x8e53('0x3')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9398=['UserVoiceQueueRt','update','remove','emit','hasOwnProperty','hook','exports','events'];(function(_0x41d480,_0x7c02cf){var _0x31b07c=function(_0x59c248){while(--_0x59c248){_0x41d480['push'](_0x41d480['shift']());}};_0x31b07c(++_0x7c02cf);}(_0x9398,0xf7));var _0x8939=function(_0x334a58,_0xb0f451){_0x334a58=_0x334a58-0x0;var _0x3140d8=_0x9398[_0x334a58];return _0x3140d8;};'use strict';var EventEmitter=require(_0x8939('0x0'));var UserVoiceQueueRt=require('../../mysqldb')['db'][_0x8939('0x1')];var UserVoiceQueueRtEvents=new EventEmitter();UserVoiceQueueRtEvents['setMaxListeners'](0x0);var events={'afterCreate':'save','afterUpdate':_0x8939('0x2'),'afterDestroy':_0x8939('0x3')};function emitEvent(_0x377f04){return function(_0x6ecd1c,_0x4c4149,_0x3d1509){UserVoiceQueueRtEvents[_0x8939('0x4')](_0x377f04+':'+_0x6ecd1c['id'],_0x6ecd1c);UserVoiceQueueRtEvents[_0x8939('0x4')](_0x377f04,_0x6ecd1c);_0x3d1509(null);};}for(var e in events){if(events[_0x8939('0x5')](e)){var event=events[e];UserVoiceQueueRt[_0x8939('0x6')](e,emitEvent(event));}}module[_0x8939('0x7')]=UserVoiceQueueRtEvents;
\ No newline at end of file
+var _0xeeb7=['update','remove','emit','hasOwnProperty','hook','UserVoiceQueueRt','setMaxListeners','save'];(function(_0x50789f,_0x12e471){var _0x5c27eb=function(_0x1ac06f){while(--_0x1ac06f){_0x50789f['push'](_0x50789f['shift']());}};_0x5c27eb(++_0x12e471);}(_0xeeb7,0x1dd));var _0x7eeb=function(_0x245afe,_0x319cde){_0x245afe=_0x245afe-0x0;var _0x4eefde=_0xeeb7[_0x245afe];return _0x4eefde;};'use strict';var EventEmitter=require('events');var UserVoiceQueueRt=require('../../mysqldb')['db'][_0x7eeb('0x0')];var UserVoiceQueueRtEvents=new EventEmitter();UserVoiceQueueRtEvents[_0x7eeb('0x1')](0x0);var events={'afterCreate':_0x7eeb('0x2'),'afterUpdate':_0x7eeb('0x3'),'afterDestroy':_0x7eeb('0x4')};function emitEvent(_0x39819a){return function(_0x58399e,_0x4013ac,_0x3a88b1){UserVoiceQueueRtEvents[_0x7eeb('0x5')](_0x39819a+':'+_0x58399e['id'],_0x58399e);UserVoiceQueueRtEvents['emit'](_0x39819a,_0x58399e);_0x3a88b1(null);};}for(var e in events){if(events[_0x7eeb('0x6')](e)){var event=events[e];UserVoiceQueueRt[_0x7eeb('0x7')](e,emitEvent(event));}}module['exports']=UserVoiceQueueRtEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x64da=['util','api','moment','bluebird','rimraf','../../config/environment','./userVoiceQueueRt.attributes','exports','define','UserVoiceQueueRt','user_has_voice_queues_rt','lodash'];(function(_0x949b20,_0x2e9cbf){var _0x48bb33=function(_0x6595d){while(--_0x6595d){_0x949b20['push'](_0x949b20['shift']());}};_0x48bb33(++_0x2e9cbf);}(_0x64da,0x12b));var _0xa64d=function(_0x502c7d,_0x2f1285){_0x502c7d=_0x502c7d-0x0;var _0x30b7ed=_0x64da[_0x502c7d];return _0x30b7ed;};'use strict';var _=require(_0xa64d('0x0'));var util=require(_0xa64d('0x1'));var logger=require('../../config/logger')(_0xa64d('0x2'));var moment=require(_0xa64d('0x3'));var BPromise=require(_0xa64d('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require(_0xa64d('0x5'));var config=require(_0xa64d('0x6'));var attributes=require(_0xa64d('0x7'));module[_0xa64d('0x8')]=function(_0x722e86,_0x53bb82){return _0x722e86[_0xa64d('0x9')](_0xa64d('0xa'),attributes,{'tableName':_0xa64d('0xb'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x32b3=['api','bluebird','path','rimraf','../../config/environment','define','lodash','util','../../config/logger'];(function(_0x19b709,_0x373b44){var _0x29eb28=function(_0x4a66c4){while(--_0x4a66c4){_0x19b709['push'](_0x19b709['shift']());}};_0x29eb28(++_0x373b44);}(_0x32b3,0x165));var _0x332b=function(_0x2abffd,_0x760487){_0x2abffd=_0x2abffd-0x0;var _0xe147d4=_0x32b3[_0x2abffd];return _0xe147d4;};'use strict';var _=require(_0x332b('0x0'));var util=require(_0x332b('0x1'));var logger=require(_0x332b('0x2'))(_0x332b('0x3'));var moment=require('moment');var BPromise=require(_0x332b('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x332b('0x5'));var rimraf=require(_0x332b('0x6'));var config=require(_0x332b('0x7'));var attributes=require('./userVoiceQueueRt.attributes');module['exports']=function(_0x27eaee,_0x3f63de){return _0x27eaee[_0x332b('0x8')]('UserVoiceQueueRt',attributes,{'tableName':'user_has_voice_queues_rt','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x141e=['message','result','GetVoiceQueueRtPauses','UserVoiceQueueRt','findAll','options','raw','where','sequelize','literal','`paused`\x20=\x201,\x201,\x20null','outboundQueuePauses','stringify','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','register','then','info','UserVoiceQueueRt,\x20%s,\x20%s','request\x20sent','debug','UserVoiceQueueRt,\x20%s,\x20%s,\x20%s','error'];(function(_0x2f5ac5,_0x1ee939){var _0x37c9a8=function(_0x15031f){while(--_0x15031f){_0x2f5ac5['push'](_0x2f5ac5['shift']());}};_0x37c9a8(++_0x1ee939);}(_0x141e,0x110));var _0xe141=function(_0x30bd01,_0x557a2c){_0x30bd01=_0x30bd01-0x0;var _0x44cdc3=_0x141e[_0x30bd01];return _0x44cdc3;};'use strict';var _=require(_0xe141('0x0'));var util=require(_0xe141('0x1'));var moment=require(_0xe141('0x2'));var BPromise=require(_0xe141('0x3'));var rs=require(_0xe141('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xe141('0x5'))['db'];var utils=require(_0xe141('0x6'));var logger=require(_0xe141('0x7'))(_0xe141('0x8'));var config=require(_0xe141('0x9'));var jayson=require(_0xe141('0xa'));var client=jayson[_0xe141('0xb')][_0xe141('0xc')]({'port':0x232a});config[_0xe141('0xd')]=_[_0xe141('0xe')](config[_0xe141('0xd')],{'host':_0xe141('0xf'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require('./userVoiceQueueRt.socket')[_0xe141('0x10')](socket);function respondWithRpcPromise(_0x4b5956,_0xf9d847,_0x45a55e){return new BPromise(function(_0x5d69ee,_0x4dbc58){return client['request'](_0x4b5956,_0x45a55e)[_0xe141('0x11')](function(_0xc20c07){logger[_0xe141('0x12')](_0xe141('0x13'),_0xf9d847,_0xe141('0x14'));logger[_0xe141('0x15')](_0xe141('0x16'),_0xf9d847,_0xe141('0x14'),JSON['stringify'](_0xc20c07));if(_0xc20c07['error']){if(_0xc20c07[_0xe141('0x17')]['code']===0x1f4){logger[_0xe141('0x17')](_0xe141('0x13'),_0xf9d847,_0xc20c07[_0xe141('0x17')][_0xe141('0x18')]);return _0x4dbc58(_0xc20c07[_0xe141('0x17')][_0xe141('0x18')]);}logger[_0xe141('0x17')](_0xe141('0x13'),_0xf9d847,_0xc20c07[_0xe141('0x17')][_0xe141('0x18')]);return _0x5d69ee(_0xc20c07[_0xe141('0x17')]['message']);}else{logger[_0xe141('0x12')]('UserVoiceQueueRt,\x20%s,\x20%s',_0xf9d847,_0xe141('0x14'));_0x5d69ee(_0xc20c07[_0xe141('0x19')][_0xe141('0x18')]);}})['catch'](function(_0x4d01d0){logger[_0xe141('0x17')]('UserVoiceQueueRt,\x20%s,\x20%s',_0xf9d847,_0x4d01d0);_0x4dbc58(_0x4d01d0);});});}exports[_0xe141('0x1a')]=function(_0x25ef51){var _0x52657e=this;return new Promise(function(_0x154bc2,_0x124ca5){return db[_0xe141('0x1b')][_0xe141('0x1c')]({'raw':_0x25ef51[_0xe141('0x1d')]?_0x25ef51[_0xe141('0x1d')][_0xe141('0x1e')]===undefined?!![]:![]:!![],'where':_0x25ef51[_0xe141('0x1d')]?_0x25ef51['options'][_0xe141('0x1f')]||null:null,'attributes':[[db[_0xe141('0x20')]['fn']('COUNT',db[_0xe141('0x20')]['fn']('IF',db[_0xe141('0x20')][_0xe141('0x21')](_0xe141('0x22')))),_0xe141('0x23')]]})[_0xe141('0x11')](function(_0x486338){logger['info']('GetVoiceQueueRtPauses',_0x25ef51);logger[_0xe141('0x15')](_0xe141('0x1a'),_0x25ef51,JSON[_0xe141('0x24')](_0x486338));_0x154bc2(_0x486338);})['catch'](function(_0x2f2a61){logger[_0xe141('0x17')](_0xe141('0x1a'),_0x2f2a61[_0xe141('0x18')],_0x25ef51);_0x124ca5(_0x52657e[_0xe141('0x17')](0x1f4,_0x2f2a61[_0xe141('0x18')]));});});};
\ No newline at end of file
+var _0x2c8f=['info','UserVoiceQueueRt,\x20%s,\x20%s','request\x20sent','debug','UserVoiceQueueRt,\x20%s,\x20%s,\x20%s','stringify','code','error','message','result','catch','GetVoiceQueueRtPauses','UserVoiceQueueRt','options','sequelize','COUNT','literal','`paused`\x20=\x201,\x201,\x20null','outboundQueuePauses','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./userVoiceQueueRt.socket','register','request','then'];(function(_0x3d4c1d,_0x2ce9dd){var _0x23687b=function(_0x1cfe50){while(--_0x1cfe50){_0x3d4c1d['push'](_0x3d4c1d['shift']());}};_0x23687b(++_0x2ce9dd);}(_0x2c8f,0x132));var _0xf2c8=function(_0x5e2230,_0x4ec3b5){_0x5e2230=_0x5e2230-0x0;var _0x52c8f0=_0x2c8f[_0x5e2230];return _0x52c8f0;};'use strict';var _=require(_0xf2c8('0x0'));var util=require(_0xf2c8('0x1'));var moment=require(_0xf2c8('0x2'));var BPromise=require(_0xf2c8('0x3'));var rs=require(_0xf2c8('0x4'));var fs=require('fs');var Redis=require(_0xf2c8('0x5'));var db=require(_0xf2c8('0x6'))['db'];var utils=require(_0xf2c8('0x7'));var logger=require(_0xf2c8('0x8'))(_0xf2c8('0x9'));var config=require(_0xf2c8('0xa'));var jayson=require(_0xf2c8('0xb'));var client=jayson[_0xf2c8('0xc')][_0xf2c8('0xd')]({'port':0x232a});config[_0xf2c8('0xe')]=_[_0xf2c8('0xf')](config[_0xf2c8('0xe')],{'host':_0xf2c8('0x10'),'port':0x18eb});var socket=require(_0xf2c8('0x11'))(new Redis(config[_0xf2c8('0xe')]));require(_0xf2c8('0x12'))[_0xf2c8('0x13')](socket);function respondWithRpcPromise(_0x43c2ab,_0x2d81f9,_0x2d1068){return new BPromise(function(_0xf3580a,_0x28955d){return client[_0xf2c8('0x14')](_0x43c2ab,_0x2d1068)[_0xf2c8('0x15')](function(_0x4ffd51){logger[_0xf2c8('0x16')](_0xf2c8('0x17'),_0x2d81f9,_0xf2c8('0x18'));logger[_0xf2c8('0x19')](_0xf2c8('0x1a'),_0x2d81f9,_0xf2c8('0x18'),JSON[_0xf2c8('0x1b')](_0x4ffd51));if(_0x4ffd51['error']){if(_0x4ffd51['error'][_0xf2c8('0x1c')]===0x1f4){logger[_0xf2c8('0x1d')](_0xf2c8('0x17'),_0x2d81f9,_0x4ffd51[_0xf2c8('0x1d')][_0xf2c8('0x1e')]);return _0x28955d(_0x4ffd51['error'][_0xf2c8('0x1e')]);}logger[_0xf2c8('0x1d')](_0xf2c8('0x17'),_0x2d81f9,_0x4ffd51['error'][_0xf2c8('0x1e')]);return _0xf3580a(_0x4ffd51[_0xf2c8('0x1d')][_0xf2c8('0x1e')]);}else{logger[_0xf2c8('0x16')]('UserVoiceQueueRt,\x20%s,\x20%s',_0x2d81f9,_0xf2c8('0x18'));_0xf3580a(_0x4ffd51[_0xf2c8('0x1f')]['message']);}})[_0xf2c8('0x20')](function(_0x4a14ba){logger[_0xf2c8('0x1d')](_0xf2c8('0x17'),_0x2d81f9,_0x4a14ba);_0x28955d(_0x4a14ba);});});}exports[_0xf2c8('0x21')]=function(_0x130792){var _0x53d073=this;return new Promise(function(_0x7a9304,_0x525888){return db[_0xf2c8('0x22')]['findAll']({'raw':_0x130792[_0xf2c8('0x23')]?_0x130792[_0xf2c8('0x23')]['raw']===undefined?!![]:![]:!![],'where':_0x130792['options']?_0x130792[_0xf2c8('0x23')]['where']||null:null,'attributes':[[db[_0xf2c8('0x24')]['fn'](_0xf2c8('0x25'),db[_0xf2c8('0x24')]['fn']('IF',db[_0xf2c8('0x24')][_0xf2c8('0x26')](_0xf2c8('0x27')))),_0xf2c8('0x28')]]})['then'](function(_0x35e759){logger[_0xf2c8('0x16')](_0xf2c8('0x21'),_0x130792);logger[_0xf2c8('0x19')](_0xf2c8('0x21'),_0x130792,JSON[_0xf2c8('0x1b')](_0x35e759));_0x7a9304(_0x35e759);})[_0xf2c8('0x20')](function(_0x1e0166){logger[_0xf2c8('0x1d')](_0xf2c8('0x21'),_0x1e0166[_0xf2c8('0x1e')],_0x130792);_0x525888(_0x53d073[_0xf2c8('0x1d')](0x1f4,_0x1e0166[_0xf2c8('0x1e')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8506=['register','userVoiceQueueRt:','save','update','emit'];(function(_0x544e0a,_0x4a9ea4){var _0x1917ce=function(_0x107780){while(--_0x107780){_0x544e0a['push'](_0x544e0a['shift']());}};_0x1917ce(++_0x4a9ea4);}(_0x8506,0xe8));var _0x6850=function(_0x910efa,_0x395dc4){_0x910efa=_0x910efa-0x0;var _0x40d9aa=_0x8506[_0x910efa];return _0x40d9aa;};'use strict';var UserVoiceQueueRtEvents=require('./userVoiceQueueRt.events');var events=[_0x6850('0x0'),'remove',_0x6850('0x1')];function createListener(_0x4961f6,_0x24d989){return function(_0x4be7b8){_0x24d989[_0x6850('0x2')](_0x4961f6,_0x4be7b8);};}function removeListener(_0x204a8a,_0x321eff){return function(){UserVoiceQueueRtEvents['removeListener'](_0x204a8a,_0x321eff);};}exports[_0x6850('0x3')]=function(_0x372f0b){for(var _0x232459=0x0,_0x3c301f=events['length'];_0x232459<_0x3c301f;_0x232459++){var _0x51c0ad=events[_0x232459];var _0x5466ee=createListener(_0x6850('0x4')+_0x51c0ad,_0x372f0b);UserVoiceQueueRtEvents['on'](_0x51c0ad,_0x5466ee);}};
\ No newline at end of file
+var _0x741c=['remove','update','removeListener','register','length','userVoiceQueueRt:','./userVoiceQueueRt.events','save'];(function(_0x510c10,_0x2c7cee){var _0x3a02bf=function(_0x217648){while(--_0x217648){_0x510c10['push'](_0x510c10['shift']());}};_0x3a02bf(++_0x2c7cee);}(_0x741c,0x196));var _0xc741=function(_0x57b54c,_0x54ce0d){_0x57b54c=_0x57b54c-0x0;var _0x59cc19=_0x741c[_0x57b54c];return _0x59cc19;};'use strict';var UserVoiceQueueRtEvents=require(_0xc741('0x0'));var events=[_0xc741('0x1'),_0xc741('0x2'),_0xc741('0x3')];function createListener(_0x1241fd,_0x31de60){return function(_0x5c8d3b){_0x31de60['emit'](_0x1241fd,_0x5c8d3b);};}function removeListener(_0x4089bf,_0x4ccc27){return function(){UserVoiceQueueRtEvents[_0xc741('0x4')](_0x4089bf,_0x4ccc27);};}exports[_0xc741('0x5')]=function(_0x3708ae){for(var _0x133bc4=0x0,_0x3f3d82=events[_0xc741('0x6')];_0x133bc4<_0x3f3d82;_0x133bc4++){var _0x46b743=events[_0x133bc4];var _0x598ead=createListener(_0xc741('0x7')+_0x46b743,_0x3708ae);UserVoiceQueueRtEvents['on'](_0x46b743,_0x598ead);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x70e0=['../../components/auth/service','../../components/interaction/service','exports','multer','util','path','Router','fs-extra'];(function(_0x529a4b,_0x132b90){var _0xd8e7fe=function(_0x5e221d){while(--_0x5e221d){_0x529a4b['push'](_0x529a4b['shift']());}};_0xd8e7fe(++_0x132b90);}(_0x70e0,0x17b));var _0x070e=function(_0x369360,_0x557372){_0x369360=_0x369360-0x0;var _0x45e36d=_0x70e0[_0x369360];return _0x45e36d;};'use strict';var multer=require(_0x070e('0x0'));var util=require(_0x070e('0x1'));var path=require(_0x070e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x070e('0x3')]();var fs_extra=require(_0x070e('0x4'));var auth=require(_0x070e('0x5'));var interaction=require(_0x070e('0x6'));var config=require('../../config/environment');module[_0x070e('0x7')]=router;
\ No newline at end of file
+var _0xe706=['../../components/interaction/service','../../config/environment','exports','multer','util','path','express','Router','fs-extra','../../components/auth/service'];(function(_0x2e4605,_0x4044b5){var _0x566a81=function(_0x3ca174){while(--_0x3ca174){_0x2e4605['push'](_0x2e4605['shift']());}};_0x566a81(++_0x4044b5);}(_0xe706,0xa3));var _0x6e70=function(_0x4201de,_0x43ac07){_0x4201de=_0x4201de-0x0;var _0x3fef97=_0xe706[_0x4201de];return _0x3fef97;};'use strict';var multer=require(_0x6e70('0x0'));var util=require(_0x6e70('0x1'));var path=require(_0x6e70('0x2'));var timeout=require('connect-timeout');var express=require(_0x6e70('0x3'));var router=express[_0x6e70('0x4')]();var fs_extra=require(_0x6e70('0x5'));var auth=require(_0x6e70('0x6'));var interaction=require(_0x6e70('0x7'));var config=require(_0x6e70('0x8'));module[_0x6e70('0x9')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8a04=['INTEGER','exports'];(function(_0x2a84c8,_0x54502d){var _0x840d9c=function(_0x354fd1){while(--_0x354fd1){_0x2a84c8['push'](_0x2a84c8['shift']());}};_0x840d9c(++_0x54502d);}(_0x8a04,0x109));var _0x48a0=function(_0x54cb55,_0x18d9df){_0x54cb55=_0x54cb55-0x0;var _0x14eadd=_0x8a04[_0x54cb55];return _0x14eadd;};'use strict';var Sequelize=require('sequelize');module[_0x48a0('0x0')]={'penalty':{'type':Sequelize[_0x48a0('0x1')],'defaultValue':0x0}};
\ No newline at end of file
+var _0xcaf8=['INTEGER','sequelize'];(function(_0x455c6c,_0x1e78b7){var _0x488242=function(_0x3e8fb0){while(--_0x3e8fb0){_0x455c6c['push'](_0x455c6c['shift']());}};_0x488242(++_0x1e78b7);}(_0xcaf8,0x16d));var _0x8caf=function(_0x326753,_0x45d5fd){_0x326753=_0x326753-0x0;var _0x410a0b=_0xcaf8[_0x326753];return _0x410a0b;};'use strict';var Sequelize=require(_0x8caf('0x0'));module['exports']={'penalty':{'type':Sequelize[_0x8caf('0x1')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc7c9=['lodash','util','api','moment','request-promise','path','../../config/environment','./userWhatsappQueue.attributes','exports','UserWhatsappQueue'];(function(_0xd0cd0b,_0x490956){var _0x59cced=function(_0x567251){while(--_0x567251){_0xd0cd0b['push'](_0xd0cd0b['shift']());}};_0x59cced(++_0x490956);}(_0xc7c9,0x8c));var _0x9c7c=function(_0x2e4dfc,_0x23820e){_0x2e4dfc=_0x2e4dfc-0x0;var _0x36470c=_0xc7c9[_0x2e4dfc];return _0x36470c;};'use strict';var _=require(_0x9c7c('0x0'));var util=require(_0x9c7c('0x1'));var logger=require('../../config/logger')(_0x9c7c('0x2'));var moment=require(_0x9c7c('0x3'));var BPromise=require('bluebird');var rp=require(_0x9c7c('0x4'));var fs=require('fs');var path=require(_0x9c7c('0x5'));var rimraf=require('rimraf');var config=require(_0x9c7c('0x6'));var attributes=require(_0x9c7c('0x7'));module[_0x9c7c('0x8')]=function(_0x16fb30,_0x1fff98){return _0x16fb30['define'](_0x9c7c('0x9'),attributes,{'tableName':'user_has_whatsapp_queues','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x1fda=['./userWhatsappQueue.attributes','exports','UserWhatsappQueue','lodash','util','api','moment','request-promise','path','rimraf','../../config/environment'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x1fda,0x1a5));var _0xa1fd=function(_0x3ce4a5,_0x50bc4b){_0x3ce4a5=_0x3ce4a5-0x0;var _0x3f5809=_0x1fda[_0x3ce4a5];return _0x3f5809;};'use strict';var _=require(_0xa1fd('0x0'));var util=require(_0xa1fd('0x1'));var logger=require('../../config/logger')(_0xa1fd('0x2'));var moment=require(_0xa1fd('0x3'));var BPromise=require('bluebird');var rp=require(_0xa1fd('0x4'));var fs=require('fs');var path=require(_0xa1fd('0x5'));var rimraf=require(_0xa1fd('0x6'));var config=require(_0xa1fd('0x7'));var attributes=require(_0xa1fd('0x8'));module[_0xa1fd('0x9')]=function(_0x4b86b6,_0x3f9c3e){return _0x4b86b6['define'](_0xa1fd('0xa'),attributes,{'tableName':'user_has_whatsapp_queues','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x052b=['UserWhatsappQueue,\x20%s,\x20%s,\x20%s','error','UserWhatsappQueue,\x20%s,\x20%s','message','result','catch','lodash','util','bluebird','randomstring','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','request\x20sent','debug'];(function(_0x266fba,_0x3daf38){var _0x5d4cbd=function(_0x2afa20){while(--_0x2afa20){_0x266fba['push'](_0x266fba['shift']());}};_0x5d4cbd(++_0x3daf38);}(_0x052b,0x141));var _0xb052=function(_0xdbfbc,_0x534d71){_0xdbfbc=_0xdbfbc-0x0;var _0x59c77b=_0x052b[_0xdbfbc];return _0x59c77b;};'use strict';var _=require(_0xb052('0x0'));var util=require(_0xb052('0x1'));var moment=require('moment');var BPromise=require(_0xb052('0x2'));var rs=require(_0xb052('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xb052('0x4'))(_0xb052('0x5'));var config=require(_0xb052('0x6'));var jayson=require(_0xb052('0x7'));var client=jayson[_0xb052('0x8')][_0xb052('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x26429d,_0x5009e3,_0x16a591){return new BPromise(function(_0x5b1641,_0x1e50a9){return client[_0xb052('0xa')](_0x26429d,_0x16a591)[_0xb052('0xb')](function(_0x4ceb85){logger[_0xb052('0xc')]('UserWhatsappQueue,\x20%s,\x20%s',_0x5009e3,_0xb052('0xd'));logger[_0xb052('0xe')](_0xb052('0xf'),_0x5009e3,_0xb052('0xd'),JSON['stringify'](_0x4ceb85));if(_0x4ceb85['error']){if(_0x4ceb85[_0xb052('0x10')]['code']===0x1f4){logger[_0xb052('0x10')](_0xb052('0x11'),_0x5009e3,_0x4ceb85[_0xb052('0x10')][_0xb052('0x12')]);return _0x1e50a9(_0x4ceb85['error'][_0xb052('0x12')]);}logger[_0xb052('0x10')](_0xb052('0x11'),_0x5009e3,_0x4ceb85['error'][_0xb052('0x12')]);return _0x5b1641(_0x4ceb85[_0xb052('0x10')]['message']);}else{logger[_0xb052('0xc')](_0xb052('0x11'),_0x5009e3,_0xb052('0xd'));_0x5b1641(_0x4ceb85[_0xb052('0x13')]['message']);}})[_0xb052('0x14')](function(_0x14a674){logger['error'](_0xb052('0x11'),_0x5009e3,_0x14a674);_0x1e50a9(_0x14a674);});});}
\ No newline at end of file
+var _0xce39=['../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','UserWhatsappQueue,\x20%s,\x20%s','request\x20sent','debug','UserWhatsappQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','lodash','util','bluebird','../../mysqldb','../../config/utils'];(function(_0x3a9025,_0x3f436c){var _0x13c47d=function(_0x161085){while(--_0x161085){_0x3a9025['push'](_0x3a9025['shift']());}};_0x13c47d(++_0x3f436c);}(_0xce39,0xd3));var _0x9ce3=function(_0x2641f9,_0x26715f){_0x2641f9=_0x2641f9-0x0;var _0x585741=_0xce39[_0x2641f9];return _0x585741;};'use strict';var _=require(_0x9ce3('0x0'));var util=require(_0x9ce3('0x1'));var moment=require('moment');var BPromise=require(_0x9ce3('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x9ce3('0x3'))['db'];var utils=require(_0x9ce3('0x4'));var logger=require(_0x9ce3('0x5'))(_0x9ce3('0x6'));var config=require(_0x9ce3('0x7'));var jayson=require(_0x9ce3('0x8'));var client=jayson[_0x9ce3('0x9')][_0x9ce3('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x2ce75e,_0x39a9b8,_0x109c43){return new BPromise(function(_0x3d0d79,_0x361e22){return client[_0x9ce3('0xb')](_0x2ce75e,_0x109c43)[_0x9ce3('0xc')](function(_0x4fba21){logger[_0x9ce3('0xd')](_0x9ce3('0xe'),_0x39a9b8,_0x9ce3('0xf'));logger[_0x9ce3('0x10')](_0x9ce3('0x11'),_0x39a9b8,_0x9ce3('0xf'),JSON[_0x9ce3('0x12')](_0x4fba21));if(_0x4fba21[_0x9ce3('0x13')]){if(_0x4fba21[_0x9ce3('0x13')][_0x9ce3('0x14')]===0x1f4){logger['error'](_0x9ce3('0xe'),_0x39a9b8,_0x4fba21[_0x9ce3('0x13')]['message']);return _0x361e22(_0x4fba21[_0x9ce3('0x13')]['message']);}logger[_0x9ce3('0x13')]('UserWhatsappQueue,\x20%s,\x20%s',_0x39a9b8,_0x4fba21[_0x9ce3('0x13')][_0x9ce3('0x15')]);return _0x3d0d79(_0x4fba21[_0x9ce3('0x13')][_0x9ce3('0x15')]);}else{logger[_0x9ce3('0xd')](_0x9ce3('0xe'),_0x39a9b8,_0x9ce3('0xf'));_0x3d0d79(_0x4fba21[_0x9ce3('0x16')]['message']);}})[_0x9ce3('0x17')](function(_0x1a80a9){logger[_0x9ce3('0x13')]('UserWhatsappQueue,\x20%s,\x20%s',_0x39a9b8,_0x1a80a9);_0x361e22(_0x1a80a9);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf725=['show','create','put','update','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/:id'];(function(_0x1162a7,_0x42bab0){var _0x4a118b=function(_0x1427d2){while(--_0x1427d2){_0x1162a7['push'](_0x1162a7['shift']());}};_0x4a118b(++_0x42bab0);}(_0xf725,0x7e));var _0x5f72=function(_0x124827,_0x3dfdf4){_0x124827=_0x124827-0x0;var _0x361435=_0xf725[_0x124827];return _0x361435;};'use strict';var multer=require(_0x5f72('0x0'));var util=require(_0x5f72('0x1'));var path=require(_0x5f72('0x2'));var timeout=require(_0x5f72('0x3'));var express=require(_0x5f72('0x4'));var router=express[_0x5f72('0x5')]();var fs_extra=require(_0x5f72('0x6'));var auth=require(_0x5f72('0x7'));var interaction=require(_0x5f72('0x8'));var config=require(_0x5f72('0x9'));var controller=require('./variable.controller');router[_0x5f72('0xa')]('/',auth[_0x5f72('0xb')](),controller[_0x5f72('0xc')]);router[_0x5f72('0xa')](_0x5f72('0xd'),auth[_0x5f72('0xb')](),controller[_0x5f72('0xe')]);router['post']('/',auth['isAuthenticated'](),controller[_0x5f72('0xf')]);router[_0x5f72('0x10')]('/:id',auth[_0x5f72('0xb')](),controller[_0x5f72('0x11')]);router['delete'](_0x5f72('0xd'),auth[_0x5f72('0xb')](),controller[_0x5f72('0x12')]);module[_0x5f72('0x13')]=router;
\ No newline at end of file
+var _0xf0ba=['multer','util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../config/environment','get','/:id','isAuthenticated','show','post','create','put','update','destroy'];(function(_0x530ec8,_0x3b402d){var _0xdd83a5=function(_0x55b080){while(--_0x55b080){_0x530ec8['push'](_0x530ec8['shift']());}};_0xdd83a5(++_0x3b402d);}(_0xf0ba,0x1ed));var _0xaf0b=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0xf0ba[_0x14add3];return _0x4a174f;};'use strict';var multer=require(_0xaf0b('0x0'));var util=require(_0xaf0b('0x1'));var path=require(_0xaf0b('0x2'));var timeout=require(_0xaf0b('0x3'));var express=require(_0xaf0b('0x4'));var router=express['Router']();var fs_extra=require(_0xaf0b('0x5'));var auth=require(_0xaf0b('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0xaf0b('0x7'));var controller=require('./variable.controller');router[_0xaf0b('0x8')]('/',auth['isAuthenticated'](),controller['index']);router[_0xaf0b('0x8')](_0xaf0b('0x9'),auth[_0xaf0b('0xa')](),controller[_0xaf0b('0xb')]);router[_0xaf0b('0xc')]('/',auth['isAuthenticated'](),controller[_0xaf0b('0xd')]);router[_0xaf0b('0xe')](_0xaf0b('0x9'),auth['isAuthenticated'](),controller[_0xaf0b('0xf')]);router['delete'](_0xaf0b('0x9'),auth[_0xaf0b('0xa')](),controller[_0xaf0b('0x10')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xca8d=['STRING','name','sequelize','exports'];(function(_0x1d3245,_0x25416a){var _0x353503=function(_0x301216){while(--_0x301216){_0x1d3245['push'](_0x1d3245['shift']());}};_0x353503(++_0x25416a);}(_0xca8d,0x172));var _0xdca8=function(_0x1a7e4b,_0x2fbd40){_0x1a7e4b=_0x1a7e4b-0x0;var _0x37a8fd=_0xca8d[_0x1a7e4b];return _0x37a8fd;};'use strict';var Sequelize=require(_0xdca8('0x0'));module[_0xdca8('0x1')]={'name':{'type':Sequelize[_0xdca8('0x2')],'unique':_0xdca8('0x3'),'allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize[_0xdca8('0x2')]}};
\ No newline at end of file
+var _0xa3b9=['sequelize','STRING'];(function(_0x5e5d16,_0x5dab8a){var _0x3787c1=function(_0x4997b9){while(--_0x4997b9){_0x5e5d16['push'](_0x5e5d16['shift']());}};_0x3787c1(++_0x5dab8a);}(_0xa3b9,0xc8));var _0x9a3b=function(_0x308642,_0x21d0d6){_0x308642=_0x308642-0x0;var _0x57ed2c=_0xa3b9[_0x308642];return _0x57ed2c;};'use strict';var Sequelize=require(_0x9a3b('0x0'));module['exports']={'name':{'type':Sequelize[_0x9a3b('0x1')],'unique':'name','allowNull':![],'validate':{'notEmpty':!![]}},'description':{'type':Sequelize[_0x9a3b('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf1ea=['get','Variables','UserProfileResource','error','send','map','fieldName','type','key','model','query','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','VIRTUAL','Variable','includeAll','include','findAll','rows','catch','show','params','rawAttributes','keys','options','find','create','body','role','user','UserProfileSection','userProfileId','name','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','eml-format','fast-json-patch','request-promise','moment','bluebird','util','path','sox','ejs','fs-extra','lodash','squel','crypto','to-csv','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','apply','reject','save','update','then','destroy'];(function(_0x51020b,_0x38c2c7){var _0x371e47=function(_0x2a538f){while(--_0x2a538f){_0x51020b['push'](_0x51020b['shift']());}};_0x371e47(++_0x38c2c7);}(_0xf1ea,0x7f));var _0xaf1e=function(_0xf5fad6,_0x13cba0){_0xf5fad6=_0xf5fad6-0x0;var _0x4c8d92=_0xf1ea[_0xf5fad6];return _0x4c8d92;};'use strict';var emlformat=require(_0xaf1e('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xaf1e('0x1'));var rp=require(_0xaf1e('0x2'));var moment=require(_0xaf1e('0x3'));var BPromise=require(_0xaf1e('0x4'));var Mustache=require('mustache');var util=require(_0xaf1e('0x5'));var path=require(_0xaf1e('0x6'));var sox=require(_0xaf1e('0x7'));var csv=require('to-csv');var ejs=require(_0xaf1e('0x8'));var fs=require('fs');var fs_extra=require(_0xaf1e('0x9'));var _=require(_0xaf1e('0xa'));var squel=require(_0xaf1e('0xb'));var crypto=require(_0xaf1e('0xc'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xaf1e('0xd'));var querystring=require('querystring');var Papa=require(_0xaf1e('0xe'));var Redis=require(_0xaf1e('0xf'));var authService=require('../../components/auth/service');var qs=require(_0xaf1e('0x10'));var as=require(_0xaf1e('0x11'));var hardwareService=require(_0xaf1e('0x12'));var logger=require(_0xaf1e('0x13'))('api');var utils=require(_0xaf1e('0x14'));var config=require(_0xaf1e('0x15'));var licenseUtil=require(_0xaf1e('0x16'));var db=require(_0xaf1e('0x17'))['db'];function respondWithStatusCode(_0x542f40,_0x47af52){_0x47af52=_0x47af52||0xcc;return function(_0x404acd){if(_0x404acd){return _0x542f40[_0xaf1e('0x18')](_0x47af52);}return _0x542f40[_0xaf1e('0x19')](_0x47af52)[_0xaf1e('0x1a')]();};}function respondWithResult(_0x4f990d,_0x53ff23){_0x53ff23=_0x53ff23||0xc8;return function(_0x294a16){if(_0x294a16){return _0x4f990d[_0xaf1e('0x19')](_0x53ff23)[_0xaf1e('0x1b')](_0x294a16);}};}function respondWithFilteredResult(_0x58e9d5,_0x1d2dea){return function(_0xe8e7dc){if(_0xe8e7dc){var _0xd92047=typeof _0x1d2dea[_0xaf1e('0x1c')]===_0xaf1e('0x1d')&&typeof _0x1d2dea[_0xaf1e('0x1e')]===_0xaf1e('0x1d');var _0xb068d5=_0xe8e7dc[_0xaf1e('0x1f')];var _0x2fc0e2=_0xd92047?0x0:_0x1d2dea[_0xaf1e('0x1c')];var _0x2f7e42=_0xd92047?_0xe8e7dc[_0xaf1e('0x1f')]:_0x1d2dea[_0xaf1e('0x1c')]+_0x1d2dea[_0xaf1e('0x1e')];var _0x4d71cc;if(_0x2f7e42>=_0xb068d5){_0x2f7e42=_0xb068d5;_0x4d71cc=0xc8;}else{_0x4d71cc=0xce;}_0x58e9d5['status'](_0x4d71cc);return _0x58e9d5[_0xaf1e('0x20')]('Content-Range',_0x2fc0e2+'-'+_0x2f7e42+'/'+_0xb068d5)['json'](_0xe8e7dc);}return null;};}function patchUpdates(_0x58c732){return function(_0x174299){try{jsonpatch[_0xaf1e('0x21')](_0x174299,_0x58c732,!![]);}catch(_0x5c8241){return BPromise[_0xaf1e('0x22')](_0x5c8241);}return _0x174299[_0xaf1e('0x23')]();};}function saveUpdates(_0x11fcea,_0x5270c0){return function(_0x1dc272){if(_0x1dc272){return _0x1dc272[_0xaf1e('0x24')](_0x11fcea)[_0xaf1e('0x25')](function(_0x4bc320){return _0x4bc320;});}return null;};}function removeEntity(_0x40e8eb,_0x5b356a){return function(_0x11c5ce){if(_0x11c5ce){return _0x11c5ce[_0xaf1e('0x26')]()[_0xaf1e('0x25')](function(){var _0x452d29=_0x11c5ce[_0xaf1e('0x27')]({'plain':!![]});var _0x565a1b=_0xaf1e('0x28');return db[_0xaf1e('0x29')][_0xaf1e('0x26')]({'where':{'type':_0x565a1b,'resourceId':_0x452d29['id']}})['then'](function(){return _0x11c5ce;});})[_0xaf1e('0x25')](function(){_0x40e8eb['status'](0xcc)[_0xaf1e('0x1a')]();});}};}function handleEntityNotFound(_0x3c49aa,_0x273774){return function(_0x50915b){if(!_0x50915b){_0x3c49aa[_0xaf1e('0x18')](0x194);}return _0x50915b;};}function handleError(_0x390ef5,_0x1b239c){_0x1b239c=_0x1b239c||0x1f4;return function(_0xa55359){logger[_0xaf1e('0x2a')](_0xa55359['stack']);if(_0xa55359['name']){delete _0xa55359['name'];}_0x390ef5[_0xaf1e('0x19')](_0x1b239c)[_0xaf1e('0x2b')](_0xa55359);};}exports['index']=function(_0x36a023,_0x22b62c){var _0x2c06e1={},_0x3c4bd5={},_0x5b8dd8={'count':0x0,'rows':[]};var _0x54fe8d=_[_0xaf1e('0x2c')](db['Variable']['rawAttributes'],function(_0xfadce3){return{'name':_0xfadce3[_0xaf1e('0x2d')],'type':_0xfadce3[_0xaf1e('0x2e')][_0xaf1e('0x2f')]};});_0x3c4bd5[_0xaf1e('0x30')]=_['map'](_0x54fe8d,'name');_0x3c4bd5[_0xaf1e('0x31')]=_['keys'](_0x36a023[_0xaf1e('0x31')]);_0x3c4bd5['filters']=_[_0xaf1e('0x32')](_0x3c4bd5['model'],_0x3c4bd5['query']);_0x2c06e1[_0xaf1e('0x33')]=_['intersection'](_0x3c4bd5[_0xaf1e('0x30')],qs[_0xaf1e('0x34')](_0x36a023[_0xaf1e('0x31')][_0xaf1e('0x34')]));_0x2c06e1[_0xaf1e('0x33')]=_0x2c06e1['attributes']['length']?_0x2c06e1[_0xaf1e('0x33')]:_0x3c4bd5[_0xaf1e('0x30')];if(!_0x36a023[_0xaf1e('0x31')][_0xaf1e('0x35')](_0xaf1e('0x36'))){_0x2c06e1[_0xaf1e('0x1e')]=qs[_0xaf1e('0x1e')](_0x36a023[_0xaf1e('0x31')]['limit']);_0x2c06e1['offset']=qs['offset'](_0x36a023[_0xaf1e('0x31')][_0xaf1e('0x1c')]);}_0x2c06e1[_0xaf1e('0x37')]=qs['sort'](_0x36a023[_0xaf1e('0x31')][_0xaf1e('0x38')]);_0x2c06e1[_0xaf1e('0x39')]=qs[_0xaf1e('0x3a')](_[_0xaf1e('0x3b')](_0x36a023[_0xaf1e('0x31')],_0x3c4bd5[_0xaf1e('0x3a')]),_0x54fe8d);if(_0x36a023[_0xaf1e('0x31')][_0xaf1e('0x3c')]){_0x2c06e1[_0xaf1e('0x39')]=_[_0xaf1e('0x3d')](_0x2c06e1[_0xaf1e('0x39')],{'$or':_['map'](_0x54fe8d,function(_0x2b15e6){if(_0x2b15e6[_0xaf1e('0x2e')]!==_0xaf1e('0x3e')){var _0xf8598a={};_0xf8598a[_0x2b15e6['name']]={'$like':'%'+_0x36a023[_0xaf1e('0x31')]['filter']+'%'};return _0xf8598a;}})});}_0x2c06e1=_[_0xaf1e('0x3d')]({},_0x2c06e1,_0x36a023['options']);var _0x4e8360={'where':_0x2c06e1[_0xaf1e('0x39')]};return db[_0xaf1e('0x3f')][_0xaf1e('0x1f')](_0x4e8360)[_0xaf1e('0x25')](function(_0x138d32){_0x5b8dd8[_0xaf1e('0x1f')]=_0x138d32;if(_0x36a023[_0xaf1e('0x31')][_0xaf1e('0x40')]){_0x2c06e1[_0xaf1e('0x41')]=[{'all':!![]}];}return db['Variable'][_0xaf1e('0x42')](_0x2c06e1);})[_0xaf1e('0x25')](function(_0x2a071d){_0x5b8dd8[_0xaf1e('0x43')]=_0x2a071d;return _0x5b8dd8;})['then'](respondWithFilteredResult(_0x22b62c,_0x2c06e1))[_0xaf1e('0x44')](handleError(_0x22b62c,null));};exports[_0xaf1e('0x45')]=function(_0x1c89d9,_0x79a491){var _0x3006d3={'raw':!![],'where':{'id':_0x1c89d9[_0xaf1e('0x46')]['id']}},_0x18a213={};_0x18a213[_0xaf1e('0x30')]=_['keys'](db[_0xaf1e('0x3f')][_0xaf1e('0x47')]);_0x18a213[_0xaf1e('0x31')]=_[_0xaf1e('0x48')](_0x1c89d9[_0xaf1e('0x31')]);_0x18a213['filters']=_[_0xaf1e('0x32')](_0x18a213[_0xaf1e('0x30')],_0x18a213[_0xaf1e('0x31')]);_0x3006d3[_0xaf1e('0x33')]=_[_0xaf1e('0x32')](_0x18a213[_0xaf1e('0x30')],qs[_0xaf1e('0x34')](_0x1c89d9[_0xaf1e('0x31')][_0xaf1e('0x34')]));_0x3006d3['attributes']=_0x3006d3['attributes']['length']?_0x3006d3[_0xaf1e('0x33')]:_0x18a213[_0xaf1e('0x30')];if(_0x1c89d9[_0xaf1e('0x31')][_0xaf1e('0x40')]){_0x3006d3['include']=[{'all':!![]}];}_0x3006d3=_[_0xaf1e('0x3d')]({},_0x3006d3,_0x1c89d9[_0xaf1e('0x49')]);return db['Variable'][_0xaf1e('0x4a')](_0x3006d3)[_0xaf1e('0x25')](handleEntityNotFound(_0x79a491,null))[_0xaf1e('0x25')](respondWithResult(_0x79a491,null))[_0xaf1e('0x44')](handleError(_0x79a491,null));};exports[_0xaf1e('0x4b')]=function(_0x4fc4bc,_0xc09b41){return db[_0xaf1e('0x3f')][_0xaf1e('0x4b')](_0x4fc4bc[_0xaf1e('0x4c')],{})['then'](function(_0x499caf){var _0x452819=_0x4fc4bc['user']['get']({'plain':!![]});if(!_0x452819)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x452819[_0xaf1e('0x4d')]===_0xaf1e('0x4e')){var _0x2959b1=_0x499caf['get']({'plain':!![]});var _0x3e72b5=_0xaf1e('0x28');return db[_0xaf1e('0x4f')][_0xaf1e('0x4a')]({'where':{'name':_0x3e72b5,'userProfileId':_0x452819[_0xaf1e('0x50')]},'raw':!![]})['then'](function(_0x141a11){if(_0x141a11&&_0x141a11['autoAssociation']===0x0){return db[_0xaf1e('0x29')][_0xaf1e('0x4b')]({'name':_0x2959b1[_0xaf1e('0x51')],'resourceId':_0x2959b1['id'],'type':_0x141a11['name'],'sectionId':_0x141a11['id']},{})[_0xaf1e('0x25')](function(){return _0x499caf;});}else{return _0x499caf;}})[_0xaf1e('0x44')](function(_0x589a69){logger['error'](_0xaf1e('0x52'),_0x589a69);throw _0x589a69;});}return _0x499caf;})['then'](respondWithResult(_0xc09b41,0xc9))[_0xaf1e('0x44')](handleError(_0xc09b41,null));};exports[_0xaf1e('0x24')]=function(_0x24fd61,_0x52a4f7){if(_0x24fd61[_0xaf1e('0x4c')]['id']){delete _0x24fd61['body']['id'];}return db['Variable'][_0xaf1e('0x4a')]({'where':{'id':_0x24fd61[_0xaf1e('0x46')]['id']}})[_0xaf1e('0x25')](handleEntityNotFound(_0x52a4f7,null))[_0xaf1e('0x25')](saveUpdates(_0x24fd61[_0xaf1e('0x4c')],null))[_0xaf1e('0x25')](respondWithResult(_0x52a4f7,null))['catch'](handleError(_0x52a4f7,null));};exports['destroy']=function(_0xe6bda8,_0x35cda1){return db[_0xaf1e('0x3f')][_0xaf1e('0x4a')]({'where':{'id':_0xe6bda8[_0xaf1e('0x46')]['id']}})[_0xaf1e('0x25')](handleEntityNotFound(_0x35cda1,null))[_0xaf1e('0x25')](removeEntity(_0x35cda1,null))[_0xaf1e('0x44')](handleError(_0x35cda1,null));};
\ No newline at end of file
+var _0x796f=['api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','reject','save','update','then','Variables','destroy','error','stack','name','send','index','Variable','rawAttributes','fieldName','type','key','map','query','keys','filters','intersection','model','attributes','length','hasOwnProperty','nolimit','sort','where','pick','merge','filter','options','includeAll','findAll','catch','show','include','find','create','body','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','UserProfileResource','params','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware'];(function(_0x500419,_0x549162){var _0x241c1a=function(_0x3bea1a){while(--_0x3bea1a){_0x500419['push'](_0x500419['shift']());}};_0x241c1a(++_0x549162);}(_0x796f,0xec));var _0xf796=function(_0x53fe14,_0x58e63c){_0x53fe14=_0x53fe14-0x0;var _0x255496=_0x796f[_0x53fe14];return _0x255496;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xf796('0x0'));var zipdir=require(_0xf796('0x1'));var jsonpatch=require(_0xf796('0x2'));var rp=require(_0xf796('0x3'));var moment=require(_0xf796('0x4'));var BPromise=require(_0xf796('0x5'));var Mustache=require('mustache');var util=require('util');var path=require(_0xf796('0x6'));var sox=require(_0xf796('0x7'));var csv=require(_0xf796('0x8'));var ejs=require(_0xf796('0x9'));var fs=require('fs');var fs_extra=require(_0xf796('0xa'));var _=require(_0xf796('0xb'));var squel=require(_0xf796('0xc'));var crypto=require(_0xf796('0xd'));var jsforce=require(_0xf796('0xe'));var deskjs=require(_0xf796('0xf'));var toCsv=require(_0xf796('0x8'));var querystring=require(_0xf796('0x10'));var Papa=require(_0xf796('0x11'));var Redis=require(_0xf796('0x12'));var authService=require(_0xf796('0x13'));var qs=require(_0xf796('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xf796('0x15'));var logger=require('../../config/logger')(_0xf796('0x16'));var utils=require(_0xf796('0x17'));var config=require('../../config/environment');var licenseUtil=require(_0xf796('0x18'));var db=require(_0xf796('0x19'))['db'];function respondWithStatusCode(_0xc8e210,_0x538e98){_0x538e98=_0x538e98||0xcc;return function(_0x509e4d){if(_0x509e4d){return _0xc8e210[_0xf796('0x1a')](_0x538e98);}return _0xc8e210[_0xf796('0x1b')](_0x538e98)[_0xf796('0x1c')]();};}function respondWithResult(_0x4ab6be,_0x43766c){_0x43766c=_0x43766c||0xc8;return function(_0x371520){if(_0x371520){return _0x4ab6be[_0xf796('0x1b')](_0x43766c)[_0xf796('0x1d')](_0x371520);}};}function respondWithFilteredResult(_0x291177,_0x54709b){return function(_0xdb13e4){if(_0xdb13e4){var _0x9c8d7c=typeof _0x54709b['offset']===_0xf796('0x1e')&&typeof _0x54709b[_0xf796('0x1f')]==='undefined';var _0x4631e6=_0xdb13e4[_0xf796('0x20')];var _0x38a456=_0x9c8d7c?0x0:_0x54709b[_0xf796('0x21')];var _0x5cec36=_0x9c8d7c?_0xdb13e4[_0xf796('0x20')]:_0x54709b[_0xf796('0x21')]+_0x54709b[_0xf796('0x1f')];var _0x511956;if(_0x5cec36>=_0x4631e6){_0x5cec36=_0x4631e6;_0x511956=0xc8;}else{_0x511956=0xce;}_0x291177[_0xf796('0x1b')](_0x511956);return _0x291177[_0xf796('0x22')](_0xf796('0x23'),_0x38a456+'-'+_0x5cec36+'/'+_0x4631e6)[_0xf796('0x1d')](_0xdb13e4);}return null;};}function patchUpdates(_0x50ba0c){return function(_0x41b9cf){try{jsonpatch[_0xf796('0x24')](_0x41b9cf,_0x50ba0c,!![]);}catch(_0x1a83d7){return BPromise[_0xf796('0x25')](_0x1a83d7);}return _0x41b9cf[_0xf796('0x26')]();};}function saveUpdates(_0x2ed842,_0x512df5){return function(_0x4beed3){if(_0x4beed3){return _0x4beed3[_0xf796('0x27')](_0x2ed842)[_0xf796('0x28')](function(_0x31c20b){return _0x31c20b;});}return null;};}function removeEntity(_0x30f33c,_0x3fe71f){return function(_0x76bd23){if(_0x76bd23){return _0x76bd23['destroy']()[_0xf796('0x28')](function(){var _0x51a474=_0x76bd23['get']({'plain':!![]});var _0x5536f3=_0xf796('0x29');return db['UserProfileResource'][_0xf796('0x2a')]({'where':{'type':_0x5536f3,'resourceId':_0x51a474['id']}})[_0xf796('0x28')](function(){return _0x76bd23;});})[_0xf796('0x28')](function(){_0x30f33c['status'](0xcc)[_0xf796('0x1c')]();});}};}function handleEntityNotFound(_0x1ddc25,_0x1546db){return function(_0x2607ab){if(!_0x2607ab){_0x1ddc25[_0xf796('0x1a')](0x194);}return _0x2607ab;};}function handleError(_0x109703,_0x1fb298){_0x1fb298=_0x1fb298||0x1f4;return function(_0x1ee3af){logger[_0xf796('0x2b')](_0x1ee3af[_0xf796('0x2c')]);if(_0x1ee3af[_0xf796('0x2d')]){delete _0x1ee3af[_0xf796('0x2d')];}_0x109703[_0xf796('0x1b')](_0x1fb298)[_0xf796('0x2e')](_0x1ee3af);};}exports[_0xf796('0x2f')]=function(_0x3b3417,_0x24959c){var _0x201910={},_0x3a9509={},_0x3b7921={'count':0x0,'rows':[]};var _0x46429e=_['map'](db[_0xf796('0x30')][_0xf796('0x31')],function(_0x215910){return{'name':_0x215910[_0xf796('0x32')],'type':_0x215910[_0xf796('0x33')][_0xf796('0x34')]};});_0x3a9509['model']=_[_0xf796('0x35')](_0x46429e,_0xf796('0x2d'));_0x3a9509[_0xf796('0x36')]=_[_0xf796('0x37')](_0x3b3417[_0xf796('0x36')]);_0x3a9509[_0xf796('0x38')]=_[_0xf796('0x39')](_0x3a9509[_0xf796('0x3a')],_0x3a9509['query']);_0x201910['attributes']=_[_0xf796('0x39')](_0x3a9509[_0xf796('0x3a')],qs['fields'](_0x3b3417[_0xf796('0x36')]['fields']));_0x201910[_0xf796('0x3b')]=_0x201910[_0xf796('0x3b')][_0xf796('0x3c')]?_0x201910['attributes']:_0x3a9509['model'];if(!_0x3b3417['query'][_0xf796('0x3d')](_0xf796('0x3e'))){_0x201910[_0xf796('0x1f')]=qs[_0xf796('0x1f')](_0x3b3417['query']['limit']);_0x201910['offset']=qs[_0xf796('0x21')](_0x3b3417[_0xf796('0x36')][_0xf796('0x21')]);}_0x201910['order']=qs['sort'](_0x3b3417['query'][_0xf796('0x3f')]);_0x201910[_0xf796('0x40')]=qs[_0xf796('0x38')](_[_0xf796('0x41')](_0x3b3417[_0xf796('0x36')],_0x3a9509[_0xf796('0x38')]),_0x46429e);if(_0x3b3417['query']['filter']){_0x201910[_0xf796('0x40')]=_[_0xf796('0x42')](_0x201910[_0xf796('0x40')],{'$or':_['map'](_0x46429e,function(_0x5d16e9){if(_0x5d16e9[_0xf796('0x33')]!=='VIRTUAL'){var _0x230aea={};_0x230aea[_0x5d16e9[_0xf796('0x2d')]]={'$like':'%'+_0x3b3417[_0xf796('0x36')][_0xf796('0x43')]+'%'};return _0x230aea;}})});}_0x201910=_['merge']({},_0x201910,_0x3b3417[_0xf796('0x44')]);var _0x2ffc96={'where':_0x201910['where']};return db['Variable'][_0xf796('0x20')](_0x2ffc96)[_0xf796('0x28')](function(_0x4ce3ea){_0x3b7921[_0xf796('0x20')]=_0x4ce3ea;if(_0x3b3417[_0xf796('0x36')][_0xf796('0x45')]){_0x201910['include']=[{'all':!![]}];}return db[_0xf796('0x30')][_0xf796('0x46')](_0x201910);})['then'](function(_0x198322){_0x3b7921['rows']=_0x198322;return _0x3b7921;})[_0xf796('0x28')](respondWithFilteredResult(_0x24959c,_0x201910))[_0xf796('0x47')](handleError(_0x24959c,null));};exports[_0xf796('0x48')]=function(_0xa440d0,_0x28c922){var _0x42c0d7={'raw':!![],'where':{'id':_0xa440d0['params']['id']}},_0x21eb6b={};_0x21eb6b[_0xf796('0x3a')]=_['keys'](db[_0xf796('0x30')][_0xf796('0x31')]);_0x21eb6b['query']=_[_0xf796('0x37')](_0xa440d0[_0xf796('0x36')]);_0x21eb6b['filters']=_[_0xf796('0x39')](_0x21eb6b[_0xf796('0x3a')],_0x21eb6b[_0xf796('0x36')]);_0x42c0d7[_0xf796('0x3b')]=_[_0xf796('0x39')](_0x21eb6b[_0xf796('0x3a')],qs['fields'](_0xa440d0[_0xf796('0x36')]['fields']));_0x42c0d7['attributes']=_0x42c0d7[_0xf796('0x3b')][_0xf796('0x3c')]?_0x42c0d7[_0xf796('0x3b')]:_0x21eb6b[_0xf796('0x3a')];if(_0xa440d0['query'][_0xf796('0x45')]){_0x42c0d7[_0xf796('0x49')]=[{'all':!![]}];}_0x42c0d7=_['merge']({},_0x42c0d7,_0xa440d0[_0xf796('0x44')]);return db[_0xf796('0x30')][_0xf796('0x4a')](_0x42c0d7)[_0xf796('0x28')](handleEntityNotFound(_0x28c922,null))[_0xf796('0x28')](respondWithResult(_0x28c922,null))[_0xf796('0x47')](handleError(_0x28c922,null));};exports[_0xf796('0x4b')]=function(_0x3f0d9b,_0x222642){return db[_0xf796('0x30')][_0xf796('0x4b')](_0x3f0d9b[_0xf796('0x4c')],{})[_0xf796('0x28')](function(_0x39ca21){var _0x52d031=_0x3f0d9b[_0xf796('0x4d')][_0xf796('0x4e')]({'plain':!![]});if(!_0x52d031)throw new Error(_0xf796('0x4f'));if(_0x52d031[_0xf796('0x50')]==='user'){var _0x46cde4=_0x39ca21['get']({'plain':!![]});var _0x38ac52=_0xf796('0x29');return db[_0xf796('0x51')][_0xf796('0x4a')]({'where':{'name':_0x38ac52,'userProfileId':_0x52d031[_0xf796('0x52')]},'raw':!![]})[_0xf796('0x28')](function(_0xe9af79){if(_0xe9af79&&_0xe9af79[_0xf796('0x53')]===0x0){return db[_0xf796('0x54')]['create']({'name':_0x46cde4[_0xf796('0x2d')],'resourceId':_0x46cde4['id'],'type':_0xe9af79[_0xf796('0x2d')],'sectionId':_0xe9af79['id']},{})[_0xf796('0x28')](function(){return _0x39ca21;});}else{return _0x39ca21;}})[_0xf796('0x47')](function(_0x45d175){logger[_0xf796('0x2b')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x45d175);throw _0x45d175;});}return _0x39ca21;})['then'](respondWithResult(_0x222642,0xc9))[_0xf796('0x47')](handleError(_0x222642,null));};exports['update']=function(_0x558cbb,_0x384fc4){if(_0x558cbb[_0xf796('0x4c')]['id']){delete _0x558cbb[_0xf796('0x4c')]['id'];}return db[_0xf796('0x30')]['find']({'where':{'id':_0x558cbb[_0xf796('0x55')]['id']}})[_0xf796('0x28')](handleEntityNotFound(_0x384fc4,null))[_0xf796('0x28')](saveUpdates(_0x558cbb[_0xf796('0x4c')],null))[_0xf796('0x28')](respondWithResult(_0x384fc4,null))[_0xf796('0x47')](handleError(_0x384fc4,null));};exports[_0xf796('0x2a')]=function(_0x36dbfb,_0x4f020e){return db[_0xf796('0x30')][_0xf796('0x4a')]({'where':{'id':_0x36dbfb[_0xf796('0x55')]['id']}})[_0xf796('0x28')](handleEntityNotFound(_0x4f020e,null))[_0xf796('0x28')](removeEntity(_0x4f020e,null))[_0xf796('0x47')](handleError(_0x4f020e,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb19a=['../../config/logger','api','moment','bluebird','request-promise','path','./variable.attributes','exports','define','Variable','lodash'];(function(_0x6afd9d,_0x51a02a){var _0x3af1f5=function(_0x31c62a){while(--_0x31c62a){_0x6afd9d['push'](_0x6afd9d['shift']());}};_0x3af1f5(++_0x51a02a);}(_0xb19a,0x8e));var _0xab19=function(_0x457163,_0x49512b){_0x457163=_0x457163-0x0;var _0x39f577=_0xb19a[_0x457163];return _0x39f577;};'use strict';var _=require(_0xab19('0x0'));var util=require('util');var logger=require(_0xab19('0x1'))(_0xab19('0x2'));var moment=require(_0xab19('0x3'));var BPromise=require(_0xab19('0x4'));var rp=require(_0xab19('0x5'));var fs=require('fs');var path=require(_0xab19('0x6'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0xab19('0x7'));module[_0xab19('0x8')]=function(_0xbae145,_0x30a717){return _0xbae145[_0xab19('0x9')](_0xab19('0xa'),attributes,{'tableName':'tools_variables','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x16da=['../../config/logger','api','moment','bluebird','request-promise','path','../../config/environment','exports','define','tools_variables','lodash'];(function(_0x2c791d,_0x4fe5fd){var _0x4bc2f0=function(_0x3116be){while(--_0x3116be){_0x2c791d['push'](_0x2c791d['shift']());}};_0x4bc2f0(++_0x4fe5fd);}(_0x16da,0x128));var _0xa16d=function(_0x5a4f67,_0x3a9b08){_0x5a4f67=_0x5a4f67-0x0;var _0x402f73=_0x16da[_0x5a4f67];return _0x402f73;};'use strict';var _=require(_0xa16d('0x0'));var util=require('util');var logger=require(_0xa16d('0x1'))(_0xa16d('0x2'));var moment=require(_0xa16d('0x3'));var BPromise=require(_0xa16d('0x4'));var rp=require(_0xa16d('0x5'));var fs=require('fs');var path=require(_0xa16d('0x6'));var rimraf=require('rimraf');var config=require(_0xa16d('0x7'));var attributes=require('./variable.attributes');module[_0xa16d('0x8')]=function(_0x25fae6,_0x20ae9d){return _0x25fae6[_0xa16d('0x9')]('Variable',attributes,{'tableName':_0xa16d('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe14b=['ioredis','../../config/utils','../../config/environment','jayson/promise','client','http','then','info','Variable,\x20%s,\x20%s','Variable,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','result','catch','ShowVariable','Variable','find','options','raw','where','attributes','map','include','model','stringify','lodash','util','randomstring'];(function(_0x509b99,_0x3ff1f0){var _0x383d46=function(_0x5cfcab){while(--_0x5cfcab){_0x509b99['push'](_0x509b99['shift']());}};_0x383d46(++_0x3ff1f0);}(_0xe14b,0x93));var _0xbe14=function(_0x5b8342,_0x1816b3){_0x5b8342=_0x5b8342-0x0;var _0x58d071=_0xe14b[_0x5b8342];return _0x58d071;};'use strict';var _=require(_0xbe14('0x0'));var util=require(_0xbe14('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xbe14('0x2'));var fs=require('fs');var Redis=require(_0xbe14('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0xbe14('0x4'));var logger=require('../../config/logger')('rpc');var config=require(_0xbe14('0x5'));var jayson=require(_0xbe14('0x6'));var client=jayson[_0xbe14('0x7')][_0xbe14('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x1d9ade,_0x39387e,_0x196fca){return new BPromise(function(_0x566ae7,_0x50f909){return client['request'](_0x1d9ade,_0x196fca)[_0xbe14('0x9')](function(_0x6fceff){logger[_0xbe14('0xa')](_0xbe14('0xb'),_0x39387e,'request\x20sent');logger['debug'](_0xbe14('0xc'),_0x39387e,_0xbe14('0xd'),JSON['stringify'](_0x6fceff));if(_0x6fceff[_0xbe14('0xe')]){if(_0x6fceff[_0xbe14('0xe')][_0xbe14('0xf')]===0x1f4){logger[_0xbe14('0xe')](_0xbe14('0xb'),_0x39387e,_0x6fceff[_0xbe14('0xe')][_0xbe14('0x10')]);return _0x50f909(_0x6fceff[_0xbe14('0xe')][_0xbe14('0x10')]);}logger[_0xbe14('0xe')](_0xbe14('0xb'),_0x39387e,_0x6fceff[_0xbe14('0xe')][_0xbe14('0x10')]);return _0x566ae7(_0x6fceff['error']['message']);}else{logger[_0xbe14('0xa')](_0xbe14('0xb'),_0x39387e,_0xbe14('0xd'));_0x566ae7(_0x6fceff[_0xbe14('0x11')]['message']);}})[_0xbe14('0x12')](function(_0xe9c3ec){logger[_0xbe14('0xe')](_0xbe14('0xb'),_0x39387e,_0xe9c3ec);_0x50f909(_0xe9c3ec);});});}exports[_0xbe14('0x13')]=function(_0x29ab73){var _0x17ae86=this;return new Promise(function(_0x5ea1f8,_0x137ee5){return db[_0xbe14('0x14')][_0xbe14('0x15')]({'raw':_0x29ab73[_0xbe14('0x16')]?_0x29ab73[_0xbe14('0x16')][_0xbe14('0x17')]===undefined?!![]:![]:!![],'where':_0x29ab73['options']?_0x29ab73[_0xbe14('0x16')][_0xbe14('0x18')]||null:null,'attributes':_0x29ab73[_0xbe14('0x16')]?_0x29ab73[_0xbe14('0x16')][_0xbe14('0x19')]||null:null,'include':_0x29ab73['options']?_0x29ab73[_0xbe14('0x16')]['include']?_[_0xbe14('0x1a')](_0x29ab73['options'][_0xbe14('0x1b')],function(_0x4a25fa){return{'model':db[_0x4a25fa[_0xbe14('0x1c')]],'as':_0x4a25fa['as'],'attributes':_0x4a25fa[_0xbe14('0x19')],'include':_0x4a25fa['include']?_[_0xbe14('0x1a')](_0x4a25fa['include'],function(_0x4587a8){return{'model':db[_0x4587a8['model']],'as':_0x4587a8['as'],'attributes':_0x4587a8[_0xbe14('0x19')],'include':_0x4587a8[_0xbe14('0x1b')]?_[_0xbe14('0x1a')](_0x4587a8[_0xbe14('0x1b')],function(_0x15ef02){return{'model':db[_0x15ef02[_0xbe14('0x1c')]],'as':_0x15ef02['as'],'attributes':_0x15ef02['attributes']};}):[]};}):[]};}):[]:[]})[_0xbe14('0x9')](function(_0x1ba46a){logger[_0xbe14('0xa')](_0xbe14('0x13'),_0x29ab73);logger['debug'](_0xbe14('0x13'),_0x29ab73,JSON[_0xbe14('0x1d')](_0x1ba46a));_0x5ea1f8(_0x1ba46a);})['catch'](function(_0x3c3613){logger[_0xbe14('0xe')](_0xbe14('0x13'),_0x3c3613[_0xbe14('0x10')],_0x29ab73);_0x137ee5(_0x17ae86[_0xbe14('0xe')](0x1f4,_0x3c3613[_0xbe14('0x10')]));});});};
\ No newline at end of file
+var _0x4b84=['catch','lodash','util','randomstring','../../config/utils','../../config/logger','rpc','http','then','info','request\x20sent','debug','Variable,\x20%s,\x20%s,\x20%s','stringify','error','Variable,\x20%s,\x20%s','message','ShowVariable','Variable','find','options','raw','where','attributes','include','map','model'];(function(_0x4ec926,_0x42b17a){var _0x5dfb90=function(_0xc4b512){while(--_0xc4b512){_0x4ec926['push'](_0x4ec926['shift']());}};_0x5dfb90(++_0x42b17a);}(_0x4b84,0x1cc));var _0x44b8=function(_0x22663b,_0xc8c6e3){_0x22663b=_0x22663b-0x0;var _0x310d0a=_0x4b84[_0x22663b];return _0x310d0a;};'use strict';var _=require(_0x44b8('0x0'));var util=require(_0x44b8('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x44b8('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x44b8('0x3'));var logger=require(_0x44b8('0x4'))(_0x44b8('0x5'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson['client'][_0x44b8('0x6')]({'port':0x232a});function respondWithRpcPromise(_0x54274b,_0x327f59,_0x5947f7){return new BPromise(function(_0x3e87c5,_0x5a2353){return client['request'](_0x54274b,_0x5947f7)[_0x44b8('0x7')](function(_0x42319d){logger[_0x44b8('0x8')]('Variable,\x20%s,\x20%s',_0x327f59,_0x44b8('0x9'));logger[_0x44b8('0xa')](_0x44b8('0xb'),_0x327f59,_0x44b8('0x9'),JSON[_0x44b8('0xc')](_0x42319d));if(_0x42319d[_0x44b8('0xd')]){if(_0x42319d[_0x44b8('0xd')]['code']===0x1f4){logger[_0x44b8('0xd')](_0x44b8('0xe'),_0x327f59,_0x42319d['error'][_0x44b8('0xf')]);return _0x5a2353(_0x42319d['error'][_0x44b8('0xf')]);}logger[_0x44b8('0xd')]('Variable,\x20%s,\x20%s',_0x327f59,_0x42319d[_0x44b8('0xd')]['message']);return _0x3e87c5(_0x42319d['error'][_0x44b8('0xf')]);}else{logger[_0x44b8('0x8')](_0x44b8('0xe'),_0x327f59,_0x44b8('0x9'));_0x3e87c5(_0x42319d['result']['message']);}})['catch'](function(_0x3fe9fb){logger['error'](_0x44b8('0xe'),_0x327f59,_0x3fe9fb);_0x5a2353(_0x3fe9fb);});});}exports[_0x44b8('0x10')]=function(_0x55e258){var _0x36743e=this;return new Promise(function(_0xe3de8f,_0x5103f5){return db[_0x44b8('0x11')][_0x44b8('0x12')]({'raw':_0x55e258['options']?_0x55e258[_0x44b8('0x13')][_0x44b8('0x14')]===undefined?!![]:![]:!![],'where':_0x55e258[_0x44b8('0x13')]?_0x55e258[_0x44b8('0x13')][_0x44b8('0x15')]||null:null,'attributes':_0x55e258[_0x44b8('0x13')]?_0x55e258[_0x44b8('0x13')][_0x44b8('0x16')]||null:null,'include':_0x55e258[_0x44b8('0x13')]?_0x55e258[_0x44b8('0x13')][_0x44b8('0x17')]?_[_0x44b8('0x18')](_0x55e258['options'][_0x44b8('0x17')],function(_0x3a8aa4){return{'model':db[_0x3a8aa4[_0x44b8('0x19')]],'as':_0x3a8aa4['as'],'attributes':_0x3a8aa4[_0x44b8('0x16')],'include':_0x3a8aa4[_0x44b8('0x17')]?_['map'](_0x3a8aa4[_0x44b8('0x17')],function(_0x54677c){return{'model':db[_0x54677c[_0x44b8('0x19')]],'as':_0x54677c['as'],'attributes':_0x54677c[_0x44b8('0x16')],'include':_0x54677c[_0x44b8('0x17')]?_[_0x44b8('0x18')](_0x54677c[_0x44b8('0x17')],function(_0x59acbc){return{'model':db[_0x59acbc[_0x44b8('0x19')]],'as':_0x59acbc['as'],'attributes':_0x59acbc['attributes']};}):[]};}):[]};}):[]:[]})[_0x44b8('0x7')](function(_0x350482){logger['info'](_0x44b8('0x10'),_0x55e258);logger[_0x44b8('0xa')](_0x44b8('0x10'),_0x55e258,JSON['stringify'](_0x350482));_0xe3de8f(_0x350482);})[_0x44b8('0x1a')](function(_0x242342){logger['error'](_0x44b8('0x10'),_0x242342['message'],_0x55e258);_0x5103f5(_0x36743e[_0x44b8('0xd')](0x1f4,_0x242342['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x10c7=['/pull','pull','/restart','restart','/migrations','migrations','express','../../components/auth/service','get','index','/fetch','isAuthenticated','canUpdate','fetch','/reset'];(function(_0x2616a5,_0x16564c){var _0x594e2b=function(_0x1178d4){while(--_0x1178d4){_0x2616a5['push'](_0x2616a5['shift']());}};_0x594e2b(++_0x16564c);}(_0x10c7,0xd8));var _0x710c=function(_0x1a7fe0,_0x349c84){_0x1a7fe0=_0x1a7fe0-0x0;var _0x2ee091=_0x10c7[_0x1a7fe0];return _0x2ee091;};'use strict';var express=require(_0x710c('0x0'));var router=express['Router']();var auth=require(_0x710c('0x1'));var controller=require('./version.controller');router[_0x710c('0x2')]('/',controller[_0x710c('0x3')]);router[_0x710c('0x2')](_0x710c('0x4'),auth[_0x710c('0x5')](),auth[_0x710c('0x6')](),controller[_0x710c('0x7')]);router[_0x710c('0x2')](_0x710c('0x8'),auth[_0x710c('0x5')](),auth['canUpdate'](),controller['reset']);router[_0x710c('0x2')](_0x710c('0x9'),auth[_0x710c('0x5')](),auth[_0x710c('0x6')](),controller[_0x710c('0xa')]);router[_0x710c('0x2')](_0x710c('0xb'),auth[_0x710c('0x5')](),controller[_0x710c('0xc')]);router[_0x710c('0x2')](_0x710c('0xd'),controller[_0x710c('0xe')]);module['exports']=router;
\ No newline at end of file
+var _0x9bc4=['pull','restart','exports','express','Router','../../components/auth/service','get','index','/fetch','canUpdate','reset','/pull','isAuthenticated'];(function(_0xc51067,_0x211d0f){var _0x4977d1=function(_0x2efe18){while(--_0x2efe18){_0xc51067['push'](_0xc51067['shift']());}};_0x4977d1(++_0x211d0f);}(_0x9bc4,0xac));var _0x49bc=function(_0x537adc,_0x498f9b){_0x537adc=_0x537adc-0x0;var _0x237b0f=_0x9bc4[_0x537adc];return _0x237b0f;};'use strict';var express=require(_0x49bc('0x0'));var router=express[_0x49bc('0x1')]();var auth=require(_0x49bc('0x2'));var controller=require('./version.controller');router[_0x49bc('0x3')]('/',controller[_0x49bc('0x4')]);router['get'](_0x49bc('0x5'),auth['isAuthenticated'](),auth[_0x49bc('0x6')](),controller['fetch']);router[_0x49bc('0x3')]('/reset',auth['isAuthenticated'](),auth['canUpdate'](),controller[_0x49bc('0x7')]);router[_0x49bc('0x3')](_0x49bc('0x8'),auth[_0x49bc('0x9')](),auth[_0x49bc('0x6')](),controller[_0x49bc('0xa')]);router[_0x49bc('0x3')]('/restart',auth[_0x49bc('0x9')](),controller[_0x49bc('0xb')]);router[_0x49bc('0x3')]('/migrations',controller['migrations']);module[_0x49bc('0xc')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe765=['server','map','Database\x20migrated\x20successfully\x20from\x20version\x20','\x20to\x20','last','UniqueConstraintError','Database\x20already\x20up-to-date','umzug','path','lodash','version','compare-versions','child_process','../../mysqldb','../../config/environment','../../config/logger','update','simple-git','root','index','exports','query','latest','tags','2.0.0','status','json','fetch','origin','master','error','info','git\x20fetch','reset','--hard','FETCH_HEAD','git\x20reset\x20--hard\x20FETCH_HEAD','git\x20reset\x20--hard','pull','npm\x20install\x20--production','restart','then','pm2\x20restart\x20motion\x20%s','catch','migrations','replace','.js','push','length','Migration','sequelize','getQueryInterface','Migration\x20tried\x20to\x20use\x20old\x20style\x20\x22done\x22\x20callback.\x20Please\x20upgrade\x20to\x20\x22umzug\x22\x20and\x20return\x20a\x20promise\x20instead.','join'];(function(_0x23c945,_0xb51232){var _0x5d5a5f=function(_0x1e9f74){while(--_0x1e9f74){_0x23c945['push'](_0x23c945['shift']());}};_0x5d5a5f(++_0xb51232);}(_0xe765,0xdf));var _0x5e76=function(_0x3c5830,_0x30f52a){_0x3c5830=_0x3c5830-0x0;var _0x780d57=_0xe765[_0x3c5830];return _0x780d57;};'use strict';var Umzug=require(_0x5e76('0x0'));var path=require(_0x5e76('0x1'));var fs=require('fs');var _=require(_0x5e76('0x2'));var pkginfo=require('pkginfo')(module,_0x5e76('0x3'));var compareVersions=require(_0x5e76('0x4'));var exec=require(_0x5e76('0x5'))['exec'];var db=require(_0x5e76('0x6'))['db'];var config=require(_0x5e76('0x7'));var pm2=require('../../config/pm2');var logger=require(_0x5e76('0x8'))(_0x5e76('0x9'));var git=require(_0x5e76('0xa'))(config[_0x5e76('0xb')]);exports[_0x5e76('0xc')]=function(_0x2ec8c9,_0x34ff43){var _0x5ec2a8={'current':module[_0x5e76('0xd')][_0x5e76('0x3')],'phonebar':0x2};if(_0x2ec8c9[_0x5e76('0xe')]&&_0x2ec8c9[_0x5e76('0xe')][_0x5e76('0xf')]){return git['fetch']()[_0x5e76('0x10')](function(_0x503086,_0x49bfff){_0x5ec2a8[_0x5e76('0xf')]=(_0x503086?module[_0x5e76('0xd')][_0x5e76('0x3')]:_0x49bfff['latest'])||_0x5e76('0x11');return _0x34ff43[_0x5e76('0x12')](0xc8)['json'](_0x5ec2a8);});}else{return _0x34ff43['status'](0xc8)[_0x5e76('0x13')](_0x5ec2a8);}};exports[_0x5e76('0x14')]=function(_0x260b84,_0x17aa91){return git[_0x5e76('0x14')]([_0x5e76('0x15'),_0x5e76('0x16')],function(_0x16a175){if(_0x16a175){logger[_0x5e76('0x17')](_0x16a175);return _0x17aa91[_0x5e76('0x12')](0x1f4)[_0x5e76('0x13')](_0x16a175);}logger[_0x5e76('0x18')](_0x5e76('0x19'));return _0x17aa91['status'](0xc8)[_0x5e76('0x13')]({'output':'git\x20fetch\x20origin\x20master'});});};exports[_0x5e76('0x1a')]=function(_0x32ec43,_0x342768){return git[_0x5e76('0x1a')]([_0x5e76('0x1b'),_0x5e76('0x1c')],function(_0x1fcf77){if(_0x1fcf77){logger[_0x5e76('0x17')](_0x1fcf77);return _0x342768[_0x5e76('0x12')](0x1f4)[_0x5e76('0x13')](_0x1fcf77);}logger[_0x5e76('0x18')](_0x5e76('0x1d'));return _0x342768[_0x5e76('0x12')](0xc8)[_0x5e76('0x13')]({'output':_0x5e76('0x1e')});});};exports[_0x5e76('0x1f')]=function(_0x3cbf63,_0x1cefe3){exec(_0x5e76('0x20'),function(_0x593370,_0x58cc8d,_0x2509e0){logger[_0x5e76('0x18')](_0x58cc8d);logger[_0x5e76('0x18')](_0x2509e0);if(_0x593370){logger[_0x5e76('0x17')](_0x593370);return _0x1cefe3[_0x5e76('0x12')](0x1f4)[_0x5e76('0x13')](_0x593370);}return _0x1cefe3[_0x5e76('0x12')](0xc8)[_0x5e76('0x13')]({'output':_0x58cc8d});});};exports[_0x5e76('0x21')]=function(_0xcc4ad6,_0x4aa8bc){return pm2[_0x5e76('0x21')]('motion2')[_0x5e76('0x22')](function(_0x46763c){logger[_0x5e76('0x18')](_0x5e76('0x23'),_0x46763c);return _0x4aa8bc[_0x5e76('0x12')](0xc8)['json']({'output':'Your\x20system\x20has\x20been\x20restart\x20successfully'});})[_0x5e76('0x24')](function(_0x2a5771){logger[_0x5e76('0x17')](_0x2a5771);return _0x4aa8bc[_0x5e76('0x12')](0x1f4)[_0x5e76('0x13')](_0x2a5771);});};exports['migrations']=function(_0x308754,_0x4ca6d9){var _0xceb134=fs['readdirSync'](path['join'](config[_0x5e76('0xb')],'server',_0x5e76('0x25')));var _0x509421=[];for(var _0x62dead=0x0;_0x62dead<_0xceb134['length'];_0x62dead++){var _0x37cb2c=_0xceb134[_0x62dead][_0x5e76('0x26')](_0x5e76('0x27'),'');if(compareVersions(module[_0x5e76('0xd')][_0x5e76('0x3')],_0x37cb2c)===-0x1){_0x509421[_0x5e76('0x28')](_0x37cb2c);}}if(_0x509421[_0x5e76('0x29')]){var _0x40a9a7=_0x509421['sort'](compareVersions);var _0x43d159=new Umzug({'storage':'sequelize','storageOptions':{'model':db['Migration'],'modelName':_0x5e76('0x2a'),'columnName':'version'},'migrations':{'params':[db[_0x5e76('0x2b')][_0x5e76('0x2c')](),db[_0x5e76('0x2b')]['constructor'],function(){throw new Error(_0x5e76('0x2d'));}],'path':path[_0x5e76('0x2e')](config['root'],_0x5e76('0x2f'),_0x5e76('0x25')),'pattern':/\.js$/}});_0x43d159['up']({'migrations':_[_0x5e76('0x30')](_0x40a9a7,function(_0x5c9029){return _0x5c9029+'.js';})})[_0x5e76('0x22')](function(){return _0x4ca6d9['status'](0xc8)[_0x5e76('0x13')]({'output':_0x5e76('0x31')+module[_0x5e76('0xd')][_0x5e76('0x3')]+_0x5e76('0x32')+_[_0x5e76('0x33')](_0x40a9a7),'migrations':_[_0x5e76('0x2e')](_0x40a9a7)});})['catch'](function(_0x23d713){if(_0x23d713 instanceof db[_0x5e76('0x2b')][_0x5e76('0x34')]){return _0x4ca6d9['status'](0xc8)['json']({'output':_0x5e76('0x35')});}else{return _0x4ca6d9[_0x5e76('0x12')](0x1f4)['json'](_0x23d713);}});}else{return _0x4ca6d9[_0x5e76('0x12')](0xc8)[_0x5e76('0x13')]({'output':_0x5e76('0x35')});}};
\ No newline at end of file
+var _0xa074=['../../config/logger','update','simple-git','root','exports','version','fetch','tags','latest','2.0.0','status','origin','master','error','json','info','git\x20fetch','git\x20fetch\x20origin\x20master','reset','--hard','FETCH_HEAD','git\x20reset\x20--hard\x20FETCH_HEAD','git\x20reset\x20--hard','pull','npm\x20install\x20--production','restart','motion2','then','Your\x20system\x20has\x20been\x20restart\x20successfully','catch','migrations','server','length','replace','push','sort','Migration','sequelize','getQueryInterface','.js','Database\x20migrated\x20successfully\x20from\x20version\x20','\x20to\x20','last','join','UniqueConstraintError','Database\x20already\x20up-to-date','umzug','path','lodash','pkginfo','compare-versions','child_process','exec','../../mysqldb','../../config/environment'];(function(_0x107df9,_0x4d1825){var _0x2df84a=function(_0x3330ed){while(--_0x3330ed){_0x107df9['push'](_0x107df9['shift']());}};_0x2df84a(++_0x4d1825);}(_0xa074,0xd3));var _0x4a07=function(_0x8c43de,_0x90ff31){_0x8c43de=_0x8c43de-0x0;var _0xa6591b=_0xa074[_0x8c43de];return _0xa6591b;};'use strict';var Umzug=require(_0x4a07('0x0'));var path=require(_0x4a07('0x1'));var fs=require('fs');var _=require(_0x4a07('0x2'));var pkginfo=require(_0x4a07('0x3'))(module,'version');var compareVersions=require(_0x4a07('0x4'));var exec=require(_0x4a07('0x5'))[_0x4a07('0x6')];var db=require(_0x4a07('0x7'))['db'];var config=require(_0x4a07('0x8'));var pm2=require('../../config/pm2');var logger=require(_0x4a07('0x9'))(_0x4a07('0xa'));var git=require(_0x4a07('0xb'))(config[_0x4a07('0xc')]);exports['index']=function(_0x1ed165,_0xf950be){var _0x460481={'current':module[_0x4a07('0xd')][_0x4a07('0xe')],'phonebar':0x2};if(_0x1ed165['query']&&_0x1ed165['query']['latest']){return git[_0x4a07('0xf')]()[_0x4a07('0x10')](function(_0x592fab,_0x4d38bf){_0x460481[_0x4a07('0x11')]=(_0x592fab?module[_0x4a07('0xd')][_0x4a07('0xe')]:_0x4d38bf['latest'])||_0x4a07('0x12');return _0xf950be[_0x4a07('0x13')](0xc8)['json'](_0x460481);});}else{return _0xf950be[_0x4a07('0x13')](0xc8)['json'](_0x460481);}};exports[_0x4a07('0xf')]=function(_0x35d8c2,_0x5a7abb){return git['fetch']([_0x4a07('0x14'),_0x4a07('0x15')],function(_0x174119){if(_0x174119){logger[_0x4a07('0x16')](_0x174119);return _0x5a7abb['status'](0x1f4)[_0x4a07('0x17')](_0x174119);}logger[_0x4a07('0x18')](_0x4a07('0x19'));return _0x5a7abb[_0x4a07('0x13')](0xc8)[_0x4a07('0x17')]({'output':_0x4a07('0x1a')});});};exports[_0x4a07('0x1b')]=function(_0x2cf6d0,_0x2cad72){return git[_0x4a07('0x1b')]([_0x4a07('0x1c'),_0x4a07('0x1d')],function(_0x453543){if(_0x453543){logger[_0x4a07('0x16')](_0x453543);return _0x2cad72['status'](0x1f4)[_0x4a07('0x17')](_0x453543);}logger[_0x4a07('0x18')](_0x4a07('0x1e'));return _0x2cad72['status'](0xc8)[_0x4a07('0x17')]({'output':_0x4a07('0x1f')});});};exports[_0x4a07('0x20')]=function(_0x455f07,_0x29bc91){exec(_0x4a07('0x21'),function(_0x5a1594,_0x1bada1,_0x102c21){logger[_0x4a07('0x18')](_0x1bada1);logger[_0x4a07('0x18')](_0x102c21);if(_0x5a1594){logger[_0x4a07('0x16')](_0x5a1594);return _0x29bc91[_0x4a07('0x13')](0x1f4)[_0x4a07('0x17')](_0x5a1594);}return _0x29bc91[_0x4a07('0x13')](0xc8)[_0x4a07('0x17')]({'output':_0x1bada1});});};exports['restart']=function(_0x40acf0,_0x1c5cd7){return pm2[_0x4a07('0x22')](_0x4a07('0x23'))[_0x4a07('0x24')](function(_0xb86c72){logger[_0x4a07('0x18')]('pm2\x20restart\x20motion\x20%s',_0xb86c72);return _0x1c5cd7[_0x4a07('0x13')](0xc8)[_0x4a07('0x17')]({'output':_0x4a07('0x25')});})[_0x4a07('0x26')](function(_0xeaf631){logger[_0x4a07('0x16')](_0xeaf631);return _0x1c5cd7[_0x4a07('0x13')](0x1f4)[_0x4a07('0x17')](_0xeaf631);});};exports[_0x4a07('0x27')]=function(_0x514357,_0x2dbec1){var _0x33467a=fs['readdirSync'](path['join'](config['root'],_0x4a07('0x28'),_0x4a07('0x27')));var _0x188014=[];for(var _0x10884f=0x0;_0x10884f<_0x33467a[_0x4a07('0x29')];_0x10884f++){var _0x1fb884=_0x33467a[_0x10884f][_0x4a07('0x2a')]('.js','');if(compareVersions(module[_0x4a07('0xd')][_0x4a07('0xe')],_0x1fb884)===-0x1){_0x188014[_0x4a07('0x2b')](_0x1fb884);}}if(_0x188014[_0x4a07('0x29')]){var _0x13bd6f=_0x188014[_0x4a07('0x2c')](compareVersions);var _0xe0a026=new Umzug({'storage':'sequelize','storageOptions':{'model':db[_0x4a07('0x2d')],'modelName':_0x4a07('0x2d'),'columnName':_0x4a07('0xe')},'migrations':{'params':[db[_0x4a07('0x2e')][_0x4a07('0x2f')](),db[_0x4a07('0x2e')]['constructor'],function(){throw new Error('Migration\x20tried\x20to\x20use\x20old\x20style\x20\x22done\x22\x20callback.\x20Please\x20upgrade\x20to\x20\x22umzug\x22\x20and\x20return\x20a\x20promise\x20instead.');}],'path':path['join'](config[_0x4a07('0xc')],_0x4a07('0x28'),'migrations'),'pattern':/\.js$/}});_0xe0a026['up']({'migrations':_['map'](_0x13bd6f,function(_0x2ffbb7){return _0x2ffbb7+_0x4a07('0x30');})})[_0x4a07('0x24')](function(){return _0x2dbec1[_0x4a07('0x13')](0xc8)[_0x4a07('0x17')]({'output':_0x4a07('0x31')+module[_0x4a07('0xd')][_0x4a07('0xe')]+_0x4a07('0x32')+_[_0x4a07('0x33')](_0x13bd6f),'migrations':_[_0x4a07('0x34')](_0x13bd6f)});})[_0x4a07('0x26')](function(_0x4f0c2d){if(_0x4f0c2d instanceof db[_0x4a07('0x2e')][_0x4a07('0x35')]){return _0x2dbec1[_0x4a07('0x13')](0xc8)[_0x4a07('0x17')]({'output':_0x4a07('0x36')});}else{return _0x2dbec1[_0x4a07('0x13')](0x1f4)[_0x4a07('0x17')](_0x4f0c2d);}});}else{return _0x2dbec1[_0x4a07('0x13')](0xc8)[_0x4a07('0x17')]({'output':_0x4a07('0x36')});}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaad4=['./voiceAgentReport.controller','get','isAuthenticated','index','/describe','show','post','put','update','delete','destroy','exports','multer','connect-timeout','express','Router','fs-extra','../../config/environment'];(function(_0x304196,_0x158a7d){var _0x5b7f1f=function(_0x2f74cc){while(--_0x2f74cc){_0x304196['push'](_0x304196['shift']());}};_0x5b7f1f(++_0x158a7d);}(_0xaad4,0x174));var _0x4aad=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0xaad4[_0x321bb2];return _0x9c12ed;};'use strict';var multer=require(_0x4aad('0x0'));var util=require('util');var path=require('path');var timeout=require(_0x4aad('0x1'));var express=require(_0x4aad('0x2'));var router=express[_0x4aad('0x3')]();var fs_extra=require(_0x4aad('0x4'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x4aad('0x5'));var controller=require(_0x4aad('0x6'));router[_0x4aad('0x7')]('/',auth[_0x4aad('0x8')](),controller[_0x4aad('0x9')]);router[_0x4aad('0x7')](_0x4aad('0xa'),auth[_0x4aad('0x8')](),controller['describe']);router[_0x4aad('0x7')]('/:id',auth['isAuthenticated'](),controller[_0x4aad('0xb')]);router[_0x4aad('0xc')]('/',auth[_0x4aad('0x8')](),controller['create']);router[_0x4aad('0xd')]('/:id',auth['isAuthenticated'](),controller[_0x4aad('0xe')]);router[_0x4aad('0xf')]('/:id',auth[_0x4aad('0x8')](),controller[_0x4aad('0x10')]);module[_0x4aad('0x11')]=router;
\ No newline at end of file
+var _0x2e63=['delete','destroy','multer','util','path','express','Router','../../components/auth/service','../../config/environment','./voiceAgentReport.controller','get','isAuthenticated','index','/describe','/:id','post','create','put','update'];(function(_0x616290,_0x280b7f){var _0x453879=function(_0x27bda7){while(--_0x27bda7){_0x616290['push'](_0x616290['shift']());}};_0x453879(++_0x280b7f);}(_0x2e63,0x11f));var _0x32e6=function(_0x282530,_0x5a31b2){_0x282530=_0x282530-0x0;var _0x266c57=_0x2e63[_0x282530];return _0x266c57;};'use strict';var multer=require(_0x32e6('0x0'));var util=require(_0x32e6('0x1'));var path=require(_0x32e6('0x2'));var timeout=require('connect-timeout');var express=require(_0x32e6('0x3'));var router=express[_0x32e6('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x32e6('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0x32e6('0x6'));var controller=require(_0x32e6('0x7'));router[_0x32e6('0x8')]('/',auth[_0x32e6('0x9')](),controller[_0x32e6('0xa')]);router[_0x32e6('0x8')](_0x32e6('0xb'),auth['isAuthenticated'](),controller['describe']);router[_0x32e6('0x8')](_0x32e6('0xc'),auth[_0x32e6('0x9')](),controller['show']);router[_0x32e6('0xd')]('/',auth[_0x32e6('0x9')](),controller[_0x32e6('0xe')]);router[_0x32e6('0xf')]('/:id',auth['isAuthenticated'](),controller[_0x32e6('0x10')]);router[_0x32e6('0x11')](_0x32e6('0xc'),auth[_0x32e6('0x9')](),controller[_0x32e6('0x12')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8769=['exports','STRING','DATE','BOOLEAN','INTEGER','FORWARD,\x20BLIND,\x20ATTENDED','sequelize'];(function(_0x420d8d,_0x78b67f){var _0x4865d7=function(_0x2965df){while(--_0x2965df){_0x420d8d['push'](_0x420d8d['shift']());}};_0x4865d7(++_0x78b67f);}(_0x8769,0x110));var _0x9876=function(_0x2b9b7f,_0x4d47df){_0x2b9b7f=_0x2b9b7f-0x0;var _0x4ed19a=_0x8769[_0x2b9b7f];return _0x4ed19a;};'use strict';var Sequelize=require(_0x9876('0x0'));module[_0x9876('0x1')]={'type':{'type':Sequelize['STRING']},'uniqueid':{'type':Sequelize[_0x9876('0x2')]},'calleridnum':{'type':Sequelize['STRING']},'calleridname':{'type':Sequelize[_0x9876('0x2')]},'queue':{'type':Sequelize[_0x9876('0x2')]},'interface':{'type':Sequelize['STRING']},'membername':{'type':Sequelize['STRING']},'agentcalledAt':{'type':Sequelize[_0x9876('0x3')]},'agentconnectAt':{'type':Sequelize[_0x9876('0x3')]},'agentcompleteAt':{'type':Sequelize['DATE']},'agentringnoanswerAt':{'type':Sequelize[_0x9876('0x3')]},'agentdumpAt':{'type':Sequelize[_0x9876('0x3')]},'holdtime':{'type':Sequelize['INTEGER']},'agentcomplete':{'type':Sequelize[_0x9876('0x4')],'defaultValue':![]},'agentringnoanswer':{'type':Sequelize[_0x9876('0x4')],'defaultValue':![]},'agentdump':{'type':Sequelize[_0x9876('0x4')],'defaultValue':![]},'talktime':{'type':Sequelize[_0x9876('0x5')]},'agentacw':{'type':Sequelize[_0x9876('0x4')],'defaultValue':![]},'acwtime':{'type':Sequelize[_0x9876('0x5')]},'reason':{'type':Sequelize[_0x9876('0x2')]},'lastevent':{'type':Sequelize[_0x9876('0x2')]},'channel':{'type':Sequelize[_0x9876('0x2')]},'channelstate':{'type':Sequelize[_0x9876('0x5')]},'channelstatedesc':{'type':Sequelize[_0x9876('0x2')]},'connectedlinenum':{'type':Sequelize[_0x9876('0x2')]},'connectedlinename':{'type':Sequelize[_0x9876('0x2')]},'language':{'type':Sequelize[_0x9876('0x2')]},'accountcode':{'type':Sequelize[_0x9876('0x2')]},'context':{'type':Sequelize['STRING']},'exten':{'type':Sequelize[_0x9876('0x2')]},'priority':{'type':Sequelize['STRING']},'destchannel':{'type':Sequelize[_0x9876('0x2')]},'destchannelstate':{'type':Sequelize[_0x9876('0x5')]},'destchannelstatedesc':{'type':Sequelize['STRING']},'destcalleridnum':{'type':Sequelize['STRING']},'destcalleridname':{'type':Sequelize[_0x9876('0x2')]},'destconnectedlinenum':{'type':Sequelize['STRING']},'destconnectedlinename':{'type':Sequelize[_0x9876('0x2')]},'destlanguage':{'type':Sequelize[_0x9876('0x2')]},'destaccountcode':{'type':Sequelize[_0x9876('0x2')]},'destcontext':{'type':Sequelize[_0x9876('0x2')]},'destexten':{'type':Sequelize['STRING']},'destpriority':{'type':Sequelize[_0x9876('0x2')]},'destuniqueid':{'type':Sequelize[_0x9876('0x2')]},'answeredelsewheredestinationuniqueid':{'type':Sequelize[_0x9876('0x2')]},'answeredelsewheremembername':{'type':Sequelize[_0x9876('0x2')]},'transfer':{'type':Sequelize[_0x9876('0x4')],'defaultValue':![]},'transfertype':{'type':Sequelize[_0x9876('0x2')],'comment':_0x9876('0x6')},'transferexten':{'type':Sequelize[_0x9876('0x2')]},'transferuniqueid':{'type':Sequelize[_0x9876('0x2')]},'agententerreason':{'type':Sequelize[_0x9876('0x5')],'defaultValue':0x0}};
\ No newline at end of file
+var _0x6901=['BOOLEAN','sequelize','STRING','DATE','INTEGER'];(function(_0x2cfbcf,_0x2cf96f){var _0x41fc13=function(_0x4d7a26){while(--_0x4d7a26){_0x2cfbcf['push'](_0x2cfbcf['shift']());}};_0x41fc13(++_0x2cf96f);}(_0x6901,0x100));var _0x1690=function(_0x1c9d6d,_0x554268){_0x1c9d6d=_0x1c9d6d-0x0;var _0x49e8a4=_0x6901[_0x1c9d6d];return _0x49e8a4;};'use strict';var Sequelize=require(_0x1690('0x0'));module['exports']={'type':{'type':Sequelize[_0x1690('0x1')]},'uniqueid':{'type':Sequelize[_0x1690('0x1')]},'calleridnum':{'type':Sequelize['STRING']},'calleridname':{'type':Sequelize['STRING']},'queue':{'type':Sequelize[_0x1690('0x1')]},'interface':{'type':Sequelize[_0x1690('0x1')]},'membername':{'type':Sequelize['STRING']},'agentcalledAt':{'type':Sequelize['DATE']},'agentconnectAt':{'type':Sequelize[_0x1690('0x2')]},'agentcompleteAt':{'type':Sequelize['DATE']},'agentringnoanswerAt':{'type':Sequelize['DATE']},'agentdumpAt':{'type':Sequelize[_0x1690('0x2')]},'holdtime':{'type':Sequelize[_0x1690('0x3')]},'agentcomplete':{'type':Sequelize[_0x1690('0x4')],'defaultValue':![]},'agentringnoanswer':{'type':Sequelize[_0x1690('0x4')],'defaultValue':![]},'agentdump':{'type':Sequelize[_0x1690('0x4')],'defaultValue':![]},'talktime':{'type':Sequelize[_0x1690('0x3')]},'agentacw':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'acwtime':{'type':Sequelize[_0x1690('0x3')]},'reason':{'type':Sequelize[_0x1690('0x1')]},'lastevent':{'type':Sequelize[_0x1690('0x1')]},'channel':{'type':Sequelize[_0x1690('0x1')]},'channelstate':{'type':Sequelize[_0x1690('0x3')]},'channelstatedesc':{'type':Sequelize[_0x1690('0x1')]},'connectedlinenum':{'type':Sequelize['STRING']},'connectedlinename':{'type':Sequelize[_0x1690('0x1')]},'language':{'type':Sequelize[_0x1690('0x1')]},'accountcode':{'type':Sequelize['STRING']},'context':{'type':Sequelize[_0x1690('0x1')]},'exten':{'type':Sequelize[_0x1690('0x1')]},'priority':{'type':Sequelize[_0x1690('0x1')]},'destchannel':{'type':Sequelize[_0x1690('0x1')]},'destchannelstate':{'type':Sequelize[_0x1690('0x3')]},'destchannelstatedesc':{'type':Sequelize[_0x1690('0x1')]},'destcalleridnum':{'type':Sequelize[_0x1690('0x1')]},'destcalleridname':{'type':Sequelize[_0x1690('0x1')]},'destconnectedlinenum':{'type':Sequelize[_0x1690('0x1')]},'destconnectedlinename':{'type':Sequelize[_0x1690('0x1')]},'destlanguage':{'type':Sequelize['STRING']},'destaccountcode':{'type':Sequelize[_0x1690('0x1')]},'destcontext':{'type':Sequelize[_0x1690('0x1')]},'destexten':{'type':Sequelize[_0x1690('0x1')]},'destpriority':{'type':Sequelize['STRING']},'destuniqueid':{'type':Sequelize['STRING']},'answeredelsewheredestinationuniqueid':{'type':Sequelize[_0x1690('0x1')]},'answeredelsewheremembername':{'type':Sequelize['STRING']},'transfer':{'type':Sequelize[_0x1690('0x4')],'defaultValue':![]},'transfertype':{'type':Sequelize['STRING'],'comment':'FORWARD,\x20BLIND,\x20ATTENDED'},'transferexten':{'type':Sequelize[_0x1690('0x1')]},'transferuniqueid':{'type':Sequelize['STRING']},'agententerreason':{'type':Sequelize[_0x1690('0x3')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['type','options','includeAll','include','findAll','catch','show','params','find','body','describe','eml-format','rimraf','zip-dir','moment','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/license/util','../../mysqldb','sendStatus','end','status','json','undefined','limit','offset','count','set','Content-Range','apply','save','update','then','destroy','stack','name','send','index','VoiceAgentReport','rawAttributes','fieldName','key','model','map','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','where','filter','merge'];(function(_0x8a969d,_0x339d9f){var _0x1d8dc7=function(_0x283ec0){while(--_0x283ec0){_0x8a969d['push'](_0x8a969d['shift']());}};_0x1d8dc7(++_0x339d9f);}(_0xa9e0,0x123));var _0x0a9e=function(_0x1facfa,_0x1acf7d){_0x1facfa=_0x1facfa-0x0;var _0x9ec701=_0xa9e0[_0x1facfa];return _0x9ec701;};'use strict';var emlformat=require(_0x0a9e('0x0'));var rimraf=require(_0x0a9e('0x1'));var zipdir=require(_0x0a9e('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x0a9e('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x0a9e('0x4'));var util=require(_0x0a9e('0x5'));var path=require(_0x0a9e('0x6'));var sox=require(_0x0a9e('0x7'));var csv=require(_0x0a9e('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x0a9e('0x9'));var _=require(_0x0a9e('0xa'));var squel=require(_0x0a9e('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x0a9e('0xc'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x0a9e('0xd'));var Redis=require(_0x0a9e('0xe'));var authService=require(_0x0a9e('0xf'));var qs=require(_0x0a9e('0x10'));var as=require(_0x0a9e('0x11'));var hardwareService=require(_0x0a9e('0x12'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x0a9e('0x13'));var db=require(_0x0a9e('0x14'))['db'];function respondWithStatusCode(_0xd5b662,_0x26d672){_0x26d672=_0x26d672||0xcc;return function(_0x32d742){if(_0x32d742){return _0xd5b662[_0x0a9e('0x15')](_0x26d672);}return _0xd5b662['status'](_0x26d672)[_0x0a9e('0x16')]();};}function respondWithResult(_0x239b12,_0x2b4227){_0x2b4227=_0x2b4227||0xc8;return function(_0x281129){if(_0x281129){return _0x239b12[_0x0a9e('0x17')](_0x2b4227)[_0x0a9e('0x18')](_0x281129);}};}function respondWithFilteredResult(_0x52a03d,_0x22dccb){return function(_0x5d0880){if(_0x5d0880){var _0x1985b6=typeof _0x22dccb['offset']===_0x0a9e('0x19')&&typeof _0x22dccb[_0x0a9e('0x1a')]==='undefined';var _0x225616=_0x5d0880['count'];var _0x459eb1=_0x1985b6?0x0:_0x22dccb[_0x0a9e('0x1b')];var _0x106033=_0x1985b6?_0x5d0880[_0x0a9e('0x1c')]:_0x22dccb[_0x0a9e('0x1b')]+_0x22dccb[_0x0a9e('0x1a')];var _0x530eb7;if(_0x106033>=_0x225616){_0x106033=_0x225616;_0x530eb7=0xc8;}else{_0x530eb7=0xce;}_0x52a03d[_0x0a9e('0x17')](_0x530eb7);return _0x52a03d[_0x0a9e('0x1d')](_0x0a9e('0x1e'),_0x459eb1+'-'+_0x106033+'/'+_0x225616)[_0x0a9e('0x18')](_0x5d0880);}return null;};}function patchUpdates(_0x105080){return function(_0x4bb1e3){try{jsonpatch[_0x0a9e('0x1f')](_0x4bb1e3,_0x105080,!![]);}catch(_0x155cce){return BPromise['reject'](_0x155cce);}return _0x4bb1e3[_0x0a9e('0x20')]();};}function saveUpdates(_0x5a09ef,_0x588269){return function(_0x3a02e1){if(_0x3a02e1){return _0x3a02e1[_0x0a9e('0x21')](_0x5a09ef)[_0x0a9e('0x22')](function(_0x30bae6){return _0x30bae6;});}return null;};}function removeEntity(_0x4abc77,_0xfb6e48){return function(_0x2fb0e4){if(_0x2fb0e4){return _0x2fb0e4[_0x0a9e('0x23')]()[_0x0a9e('0x22')](function(){_0x4abc77[_0x0a9e('0x17')](0xcc)[_0x0a9e('0x16')]();});}};}function handleEntityNotFound(_0x16b1ca,_0x5ea472){return function(_0x59181e){if(!_0x59181e){_0x16b1ca[_0x0a9e('0x15')](0x194);}return _0x59181e;};}function handleError(_0x3a8e58,_0x40c424){_0x40c424=_0x40c424||0x1f4;return function(_0x33161b){logger['error'](_0x33161b[_0x0a9e('0x24')]);if(_0x33161b['name']){delete _0x33161b[_0x0a9e('0x25')];}_0x3a8e58['status'](_0x40c424)[_0x0a9e('0x26')](_0x33161b);};}exports[_0x0a9e('0x27')]=function(_0x25fba9,_0x14433c){var _0x140511={},_0x1538a4={},_0x11c3b6={'count':0x0,'rows':[]};var _0x14de77=_['map'](db[_0x0a9e('0x28')][_0x0a9e('0x29')],function(_0x2b1f27){return{'name':_0x2b1f27[_0x0a9e('0x2a')],'type':_0x2b1f27['type'][_0x0a9e('0x2b')]};});_0x1538a4[_0x0a9e('0x2c')]=_[_0x0a9e('0x2d')](_0x14de77,_0x0a9e('0x25'));_0x1538a4[_0x0a9e('0x2e')]=_[_0x0a9e('0x2f')](_0x25fba9[_0x0a9e('0x2e')]);_0x1538a4[_0x0a9e('0x30')]=_[_0x0a9e('0x31')](_0x1538a4['model'],_0x1538a4[_0x0a9e('0x2e')]);_0x140511['attributes']=_[_0x0a9e('0x31')](_0x1538a4[_0x0a9e('0x2c')],qs[_0x0a9e('0x32')](_0x25fba9[_0x0a9e('0x2e')][_0x0a9e('0x32')]));_0x140511['attributes']=_0x140511[_0x0a9e('0x33')][_0x0a9e('0x34')]?_0x140511[_0x0a9e('0x33')]:_0x1538a4[_0x0a9e('0x2c')];if(!_0x25fba9[_0x0a9e('0x2e')][_0x0a9e('0x35')](_0x0a9e('0x36'))){_0x140511[_0x0a9e('0x1a')]=qs['limit'](_0x25fba9[_0x0a9e('0x2e')]['limit']);_0x140511[_0x0a9e('0x1b')]=qs[_0x0a9e('0x1b')](_0x25fba9[_0x0a9e('0x2e')][_0x0a9e('0x1b')]);}_0x140511['order']=qs[_0x0a9e('0x37')](_0x25fba9[_0x0a9e('0x2e')][_0x0a9e('0x37')]);_0x140511[_0x0a9e('0x38')]=qs['filters'](_['pick'](_0x25fba9[_0x0a9e('0x2e')],_0x1538a4['filters']),_0x14de77);if(_0x25fba9[_0x0a9e('0x2e')][_0x0a9e('0x39')]){_0x140511[_0x0a9e('0x38')]=_[_0x0a9e('0x3a')](_0x140511['where'],{'$or':_[_0x0a9e('0x2d')](_0x14de77,function(_0x3bfce8){if(_0x3bfce8[_0x0a9e('0x3b')]!=='VIRTUAL'){var _0x1dbf74={};_0x1dbf74[_0x3bfce8[_0x0a9e('0x25')]]={'$like':'%'+_0x25fba9[_0x0a9e('0x2e')]['filter']+'%'};return _0x1dbf74;}})});}_0x140511=_['merge']({},_0x140511,_0x25fba9[_0x0a9e('0x3c')]);var _0x40d766={'where':_0x140511['where']};return db[_0x0a9e('0x28')][_0x0a9e('0x1c')](_0x40d766)[_0x0a9e('0x22')](function(_0x148f55){_0x11c3b6['count']=_0x148f55;if(_0x25fba9['query'][_0x0a9e('0x3d')]){_0x140511[_0x0a9e('0x3e')]=[{'all':!![]}];}return db['VoiceAgentReport'][_0x0a9e('0x3f')](_0x140511);})[_0x0a9e('0x22')](function(_0x1459bb){_0x11c3b6['rows']=_0x1459bb;return _0x11c3b6;})[_0x0a9e('0x22')](respondWithFilteredResult(_0x14433c,_0x140511))[_0x0a9e('0x40')](handleError(_0x14433c,null));};exports[_0x0a9e('0x41')]=function(_0x43dd5b,_0x13cb1f){var _0xeaa5e5={'raw':![],'where':{'id':_0x43dd5b[_0x0a9e('0x42')]['id']}},_0x2881b3={};_0x2881b3[_0x0a9e('0x2c')]=_[_0x0a9e('0x2f')](db[_0x0a9e('0x28')][_0x0a9e('0x29')]);_0x2881b3[_0x0a9e('0x2e')]=_[_0x0a9e('0x2f')](_0x43dd5b[_0x0a9e('0x2e')]);_0x2881b3['filters']=_['intersection'](_0x2881b3[_0x0a9e('0x2c')],_0x2881b3[_0x0a9e('0x2e')]);_0xeaa5e5[_0x0a9e('0x33')]=_[_0x0a9e('0x31')](_0x2881b3[_0x0a9e('0x2c')],qs[_0x0a9e('0x32')](_0x43dd5b[_0x0a9e('0x2e')][_0x0a9e('0x32')]));_0xeaa5e5[_0x0a9e('0x33')]=_0xeaa5e5[_0x0a9e('0x33')][_0x0a9e('0x34')]?_0xeaa5e5[_0x0a9e('0x33')]:_0x2881b3['model'];if(_0x43dd5b[_0x0a9e('0x2e')][_0x0a9e('0x3d')]){_0xeaa5e5[_0x0a9e('0x3e')]=[{'all':!![]}];}_0xeaa5e5=_[_0x0a9e('0x3a')]({},_0xeaa5e5,_0x43dd5b[_0x0a9e('0x3c')]);return db[_0x0a9e('0x28')][_0x0a9e('0x43')](_0xeaa5e5)[_0x0a9e('0x22')](handleEntityNotFound(_0x13cb1f,null))['then'](respondWithResult(_0x13cb1f,null))[_0x0a9e('0x40')](handleError(_0x13cb1f,null));};exports['create']=function(_0x473dc8,_0x476688){return db[_0x0a9e('0x28')]['create'](_0x473dc8[_0x0a9e('0x44')],{})[_0x0a9e('0x22')](respondWithResult(_0x476688,0xc9))[_0x0a9e('0x40')](handleError(_0x476688,null));};exports[_0x0a9e('0x21')]=function(_0x45c845,_0x37be73){if(_0x45c845[_0x0a9e('0x44')]['id']){delete _0x45c845['body']['id'];}return db[_0x0a9e('0x28')][_0x0a9e('0x43')]({'where':{'id':_0x45c845[_0x0a9e('0x42')]['id']}})[_0x0a9e('0x22')](handleEntityNotFound(_0x37be73,null))[_0x0a9e('0x22')](saveUpdates(_0x45c845[_0x0a9e('0x44')],null))[_0x0a9e('0x22')](respondWithResult(_0x37be73,null))[_0x0a9e('0x40')](handleError(_0x37be73,null));};exports[_0x0a9e('0x23')]=function(_0x58a5c2,_0xe401a){return db[_0x0a9e('0x28')]['find']({'where':{'id':_0x58a5c2['params']['id']}})['then'](handleEntityNotFound(_0xe401a,null))[_0x0a9e('0x22')](removeEntity(_0xe401a,null))[_0x0a9e('0x40')](handleError(_0xe401a,null));};exports[_0x0a9e('0x45')]=function(_0x11545a,_0x61bb17){return db[_0x0a9e('0x28')][_0x0a9e('0x45')]()[_0x0a9e('0x22')](respondWithResult(_0x61bb17,null))['catch'](handleError(_0x61bb17,null));};
\ No newline at end of file
+var _0xa9e0=['type','options','includeAll','include','findAll','catch','show','params','find','body','describe','eml-format','rimraf','zip-dir','moment','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/license/util','../../mysqldb','sendStatus','end','status','json','undefined','limit','offset','count','set','Content-Range','apply','save','update','then','destroy','stack','name','send','index','VoiceAgentReport','rawAttributes','fieldName','key','model','map','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','where','filter','merge'];(function(_0xaa1b3e,_0x47d976){var _0x454d7d=function(_0x575b32){while(--_0x575b32){_0xaa1b3e['push'](_0xaa1b3e['shift']());}};_0x454d7d(++_0x47d976);}(_0xa9e0,0x123));var _0x0a9e=function(_0x4c7fb5,_0x2548ef){_0x4c7fb5=_0x4c7fb5-0x0;var _0x2e10ac=_0xa9e0[_0x4c7fb5];return _0x2e10ac;};'use strict';var emlformat=require(_0x0a9e('0x0'));var rimraf=require(_0x0a9e('0x1'));var zipdir=require(_0x0a9e('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x0a9e('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x0a9e('0x4'));var util=require(_0x0a9e('0x5'));var path=require(_0x0a9e('0x6'));var sox=require(_0x0a9e('0x7'));var csv=require(_0x0a9e('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x0a9e('0x9'));var _=require(_0x0a9e('0xa'));var squel=require(_0x0a9e('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x0a9e('0xc'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x0a9e('0xd'));var Redis=require(_0x0a9e('0xe'));var authService=require(_0x0a9e('0xf'));var qs=require(_0x0a9e('0x10'));var as=require(_0x0a9e('0x11'));var hardwareService=require(_0x0a9e('0x12'));var logger=require('../../config/logger')('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x0a9e('0x13'));var db=require(_0x0a9e('0x14'))['db'];function respondWithStatusCode(_0xd5b662,_0x26d672){_0x26d672=_0x26d672||0xcc;return function(_0x32d742){if(_0x32d742){return _0xd5b662[_0x0a9e('0x15')](_0x26d672);}return _0xd5b662['status'](_0x26d672)[_0x0a9e('0x16')]();};}function respondWithResult(_0x239b12,_0x2b4227){_0x2b4227=_0x2b4227||0xc8;return function(_0x281129){if(_0x281129){return _0x239b12[_0x0a9e('0x17')](_0x2b4227)[_0x0a9e('0x18')](_0x281129);}};}function respondWithFilteredResult(_0x52a03d,_0x22dccb){return function(_0x5d0880){if(_0x5d0880){var _0x1985b6=typeof _0x22dccb['offset']===_0x0a9e('0x19')&&typeof _0x22dccb[_0x0a9e('0x1a')]==='undefined';var _0x225616=_0x5d0880['count'];var _0x459eb1=_0x1985b6?0x0:_0x22dccb[_0x0a9e('0x1b')];var _0x106033=_0x1985b6?_0x5d0880[_0x0a9e('0x1c')]:_0x22dccb[_0x0a9e('0x1b')]+_0x22dccb[_0x0a9e('0x1a')];var _0x530eb7;if(_0x106033>=_0x225616){_0x106033=_0x225616;_0x530eb7=0xc8;}else{_0x530eb7=0xce;}_0x52a03d[_0x0a9e('0x17')](_0x530eb7);return _0x52a03d[_0x0a9e('0x1d')](_0x0a9e('0x1e'),_0x459eb1+'-'+_0x106033+'/'+_0x225616)[_0x0a9e('0x18')](_0x5d0880);}return null;};}function patchUpdates(_0x105080){return function(_0x4bb1e3){try{jsonpatch[_0x0a9e('0x1f')](_0x4bb1e3,_0x105080,!![]);}catch(_0x155cce){return BPromise['reject'](_0x155cce);}return _0x4bb1e3[_0x0a9e('0x20')]();};}function saveUpdates(_0x5a09ef,_0x588269){return function(_0x3a02e1){if(_0x3a02e1){return _0x3a02e1[_0x0a9e('0x21')](_0x5a09ef)[_0x0a9e('0x22')](function(_0x30bae6){return _0x30bae6;});}return null;};}function removeEntity(_0x4abc77,_0xfb6e48){return function(_0x2fb0e4){if(_0x2fb0e4){return _0x2fb0e4[_0x0a9e('0x23')]()[_0x0a9e('0x22')](function(){_0x4abc77[_0x0a9e('0x17')](0xcc)[_0x0a9e('0x16')]();});}};}function handleEntityNotFound(_0x16b1ca,_0x5ea472){return function(_0x59181e){if(!_0x59181e){_0x16b1ca[_0x0a9e('0x15')](0x194);}return _0x59181e;};}function handleError(_0x3a8e58,_0x40c424){_0x40c424=_0x40c424||0x1f4;return function(_0x33161b){logger['error'](_0x33161b[_0x0a9e('0x24')]);if(_0x33161b['name']){delete _0x33161b[_0x0a9e('0x25')];}_0x3a8e58['status'](_0x40c424)[_0x0a9e('0x26')](_0x33161b);};}exports[_0x0a9e('0x27')]=function(_0x25fba9,_0x14433c){var _0x140511={},_0x1538a4={},_0x11c3b6={'count':0x0,'rows':[]};var _0x14de77=_['map'](db[_0x0a9e('0x28')][_0x0a9e('0x29')],function(_0x2b1f27){return{'name':_0x2b1f27[_0x0a9e('0x2a')],'type':_0x2b1f27['type'][_0x0a9e('0x2b')]};});_0x1538a4[_0x0a9e('0x2c')]=_[_0x0a9e('0x2d')](_0x14de77,_0x0a9e('0x25'));_0x1538a4[_0x0a9e('0x2e')]=_[_0x0a9e('0x2f')](_0x25fba9[_0x0a9e('0x2e')]);_0x1538a4[_0x0a9e('0x30')]=_[_0x0a9e('0x31')](_0x1538a4['model'],_0x1538a4[_0x0a9e('0x2e')]);_0x140511['attributes']=_[_0x0a9e('0x31')](_0x1538a4[_0x0a9e('0x2c')],qs[_0x0a9e('0x32')](_0x25fba9[_0x0a9e('0x2e')][_0x0a9e('0x32')]));_0x140511['attributes']=_0x140511[_0x0a9e('0x33')][_0x0a9e('0x34')]?_0x140511[_0x0a9e('0x33')]:_0x1538a4[_0x0a9e('0x2c')];if(!_0x25fba9[_0x0a9e('0x2e')][_0x0a9e('0x35')](_0x0a9e('0x36'))){_0x140511[_0x0a9e('0x1a')]=qs['limit'](_0x25fba9[_0x0a9e('0x2e')]['limit']);_0x140511[_0x0a9e('0x1b')]=qs[_0x0a9e('0x1b')](_0x25fba9[_0x0a9e('0x2e')][_0x0a9e('0x1b')]);}_0x140511['order']=qs[_0x0a9e('0x37')](_0x25fba9[_0x0a9e('0x2e')][_0x0a9e('0x37')]);_0x140511[_0x0a9e('0x38')]=qs['filters'](_['pick'](_0x25fba9[_0x0a9e('0x2e')],_0x1538a4['filters']),_0x14de77);if(_0x25fba9[_0x0a9e('0x2e')][_0x0a9e('0x39')]){_0x140511[_0x0a9e('0x38')]=_[_0x0a9e('0x3a')](_0x140511['where'],{'$or':_[_0x0a9e('0x2d')](_0x14de77,function(_0x3bfce8){if(_0x3bfce8[_0x0a9e('0x3b')]!=='VIRTUAL'){var _0x1dbf74={};_0x1dbf74[_0x3bfce8[_0x0a9e('0x25')]]={'$like':'%'+_0x25fba9[_0x0a9e('0x2e')]['filter']+'%'};return _0x1dbf74;}})});}_0x140511=_['merge']({},_0x140511,_0x25fba9[_0x0a9e('0x3c')]);var _0x40d766={'where':_0x140511['where']};return db[_0x0a9e('0x28')][_0x0a9e('0x1c')](_0x40d766)[_0x0a9e('0x22')](function(_0x148f55){_0x11c3b6['count']=_0x148f55;if(_0x25fba9['query'][_0x0a9e('0x3d')]){_0x140511[_0x0a9e('0x3e')]=[{'all':!![]}];}return db['VoiceAgentReport'][_0x0a9e('0x3f')](_0x140511);})[_0x0a9e('0x22')](function(_0x1459bb){_0x11c3b6['rows']=_0x1459bb;return _0x11c3b6;})[_0x0a9e('0x22')](respondWithFilteredResult(_0x14433c,_0x140511))[_0x0a9e('0x40')](handleError(_0x14433c,null));};exports[_0x0a9e('0x41')]=function(_0x43dd5b,_0x13cb1f){var _0xeaa5e5={'raw':![],'where':{'id':_0x43dd5b[_0x0a9e('0x42')]['id']}},_0x2881b3={};_0x2881b3[_0x0a9e('0x2c')]=_[_0x0a9e('0x2f')](db[_0x0a9e('0x28')][_0x0a9e('0x29')]);_0x2881b3[_0x0a9e('0x2e')]=_[_0x0a9e('0x2f')](_0x43dd5b[_0x0a9e('0x2e')]);_0x2881b3['filters']=_['intersection'](_0x2881b3[_0x0a9e('0x2c')],_0x2881b3[_0x0a9e('0x2e')]);_0xeaa5e5[_0x0a9e('0x33')]=_[_0x0a9e('0x31')](_0x2881b3[_0x0a9e('0x2c')],qs[_0x0a9e('0x32')](_0x43dd5b[_0x0a9e('0x2e')][_0x0a9e('0x32')]));_0xeaa5e5[_0x0a9e('0x33')]=_0xeaa5e5[_0x0a9e('0x33')][_0x0a9e('0x34')]?_0xeaa5e5[_0x0a9e('0x33')]:_0x2881b3['model'];if(_0x43dd5b[_0x0a9e('0x2e')][_0x0a9e('0x3d')]){_0xeaa5e5[_0x0a9e('0x3e')]=[{'all':!![]}];}_0xeaa5e5=_[_0x0a9e('0x3a')]({},_0xeaa5e5,_0x43dd5b[_0x0a9e('0x3c')]);return db[_0x0a9e('0x28')][_0x0a9e('0x43')](_0xeaa5e5)[_0x0a9e('0x22')](handleEntityNotFound(_0x13cb1f,null))['then'](respondWithResult(_0x13cb1f,null))[_0x0a9e('0x40')](handleError(_0x13cb1f,null));};exports['create']=function(_0x473dc8,_0x476688){return db[_0x0a9e('0x28')]['create'](_0x473dc8[_0x0a9e('0x44')],{})[_0x0a9e('0x22')](respondWithResult(_0x476688,0xc9))[_0x0a9e('0x40')](handleError(_0x476688,null));};exports[_0x0a9e('0x21')]=function(_0x45c845,_0x37be73){if(_0x45c845[_0x0a9e('0x44')]['id']){delete _0x45c845['body']['id'];}return db[_0x0a9e('0x28')][_0x0a9e('0x43')]({'where':{'id':_0x45c845[_0x0a9e('0x42')]['id']}})[_0x0a9e('0x22')](handleEntityNotFound(_0x37be73,null))[_0x0a9e('0x22')](saveUpdates(_0x45c845[_0x0a9e('0x44')],null))[_0x0a9e('0x22')](respondWithResult(_0x37be73,null))[_0x0a9e('0x40')](handleError(_0x37be73,null));};exports[_0x0a9e('0x23')]=function(_0x58a5c2,_0xe401a){return db[_0x0a9e('0x28')]['find']({'where':{'id':_0x58a5c2['params']['id']}})['then'](handleEntityNotFound(_0xe401a,null))[_0x0a9e('0x22')](removeEntity(_0xe401a,null))[_0x0a9e('0x40')](handleError(_0xe401a,null));};exports[_0x0a9e('0x45')]=function(_0x11545a,_0x61bb17){return db[_0x0a9e('0x28')][_0x0a9e('0x45')]()[_0x0a9e('0x22')](respondWithResult(_0x61bb17,null))['catch'](handleError(_0x61bb17,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7676=['define','VoiceAgentReport','uniqueid','destuniqueid','lodash','util','../../config/logger','moment','path','../../config/environment','./voiceAgentReport.attributes','exports'];(function(_0x245772,_0x2c0818){var _0x1a1c3b=function(_0x4087ac){while(--_0x4087ac){_0x245772['push'](_0x245772['shift']());}};_0x1a1c3b(++_0x2c0818);}(_0x7676,0xb8));var _0x6767=function(_0x1569b3,_0xb0b9c){_0x1569b3=_0x1569b3-0x0;var _0x15a524=_0x7676[_0x1569b3];return _0x15a524;};'use strict';var _=require(_0x6767('0x0'));var util=require(_0x6767('0x1'));var logger=require(_0x6767('0x2'))('api');var moment=require(_0x6767('0x3'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x6767('0x4'));var rimraf=require('rimraf');var config=require(_0x6767('0x5'));var attributes=require(_0x6767('0x6'));module[_0x6767('0x7')]=function(_0x4d0c08,_0x24d747){return _0x4d0c08[_0x6767('0x8')](_0x6767('0x9'),attributes,{'tableName':'report_agent','paranoid':![],'indexes':[{'fields':[_0x6767('0xa'),_0x6767('0xb')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xb717=['uniqueid','destuniqueid','lodash','../../config/logger','moment','bluebird','request-promise','rimraf','../../config/environment','./voiceAgentReport.attributes','exports','define','VoiceAgentReport','report_agent'];(function(_0x4b055c,_0x4b870b){var _0x4b62bb=function(_0x4884c2){while(--_0x4884c2){_0x4b055c['push'](_0x4b055c['shift']());}};_0x4b62bb(++_0x4b870b);}(_0xb717,0x1b4));var _0x7b71=function(_0x5b89ea,_0x4c11e0){_0x5b89ea=_0x5b89ea-0x0;var _0x470cae=_0xb717[_0x5b89ea];return _0x470cae;};'use strict';var _=require(_0x7b71('0x0'));var util=require('util');var logger=require(_0x7b71('0x1'))('api');var moment=require(_0x7b71('0x2'));var BPromise=require(_0x7b71('0x3'));var rp=require(_0x7b71('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x7b71('0x5'));var config=require(_0x7b71('0x6'));var attributes=require(_0x7b71('0x7'));module[_0x7b71('0x8')]=function(_0x3d3643,_0x593c15){return _0x3d3643[_0x7b71('0x9')](_0x7b71('0xa'),attributes,{'tableName':_0x7b71('0xb'),'paranoid':![],'indexes':[{'fields':[_0x7b71('0xc'),_0x7b71('0xd')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2691=['ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','VoiceAgentReport,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','info','catch','CreateVoiceAgentReport','UpdateVoiceAgentReport','VoiceAgentReport','update','body','options','raw','where','limit','lodash','util','bluebird'];(function(_0x4f8d61,_0x29eff0){var _0x3bc078=function(_0x4c7203){while(--_0x4c7203){_0x4f8d61['push'](_0x4f8d61['shift']());}};_0x3bc078(++_0x29eff0);}(_0x2691,0x13d));var _0x1269=function(_0x26b954,_0x42d66a){_0x26b954=_0x26b954-0x0;var _0x5d3dc2=_0x2691[_0x26b954];return _0x5d3dc2;};'use strict';var _=require(_0x1269('0x0'));var util=require(_0x1269('0x1'));var moment=require('moment');var BPromise=require(_0x1269('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x1269('0x3'));var db=require(_0x1269('0x4'))['db'];var utils=require(_0x1269('0x5'));var logger=require(_0x1269('0x6'))(_0x1269('0x7'));var config=require(_0x1269('0x8'));var jayson=require(_0x1269('0x9'));var client=jayson[_0x1269('0xa')][_0x1269('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x34f2bb,_0x54b41b,_0x4b4221){return new BPromise(function(_0x37aede,_0x1d28bf){return client[_0x1269('0xc')](_0x34f2bb,_0x4b4221)[_0x1269('0xd')](function(_0x386367){logger['info'](_0x1269('0xe'),_0x54b41b,_0x1269('0xf'));logger[_0x1269('0x10')]('VoiceAgentReport,\x20%s,\x20%s,\x20%s',_0x54b41b,_0x1269('0xf'),JSON[_0x1269('0x11')](_0x386367));if(_0x386367[_0x1269('0x12')]){if(_0x386367[_0x1269('0x12')][_0x1269('0x13')]===0x1f4){logger[_0x1269('0x12')](_0x1269('0xe'),_0x54b41b,_0x386367[_0x1269('0x12')][_0x1269('0x14')]);return _0x1d28bf(_0x386367[_0x1269('0x12')]['message']);}logger[_0x1269('0x12')]('VoiceAgentReport,\x20%s,\x20%s',_0x54b41b,_0x386367['error'][_0x1269('0x14')]);return _0x37aede(_0x386367[_0x1269('0x12')][_0x1269('0x14')]);}else{logger[_0x1269('0x15')](_0x1269('0xe'),_0x54b41b,_0x1269('0xf'));_0x37aede(_0x386367['result'][_0x1269('0x14')]);}})[_0x1269('0x16')](function(_0x3475ae){logger['error'](_0x1269('0xe'),_0x54b41b,_0x3475ae);_0x1d28bf(_0x3475ae);});});}exports[_0x1269('0x17')]=function(_0x4f545d){var _0x2e8306=this;return new Promise(function(_0x832293,_0x58d7d4){return db['VoiceAgentReport']['create'](_0x4f545d['body'],{'raw':_0x4f545d['options']?_0x4f545d['options']['raw']===undefined?!![]:![]:!![]})[_0x1269('0xd')](function(_0x1bbeba){logger[_0x1269('0x15')](_0x1269('0x17'),_0x4f545d);logger[_0x1269('0x10')](_0x1269('0x17'),_0x4f545d,JSON['stringify'](_0x1bbeba));_0x832293(_0x1bbeba);})['catch'](function(_0xc381ab){logger[_0x1269('0x12')](_0x1269('0x17'),_0xc381ab[_0x1269('0x14')],_0x4f545d);_0x58d7d4(_0x2e8306[_0x1269('0x12')](0x1f4,_0xc381ab['message']));});});};exports[_0x1269('0x18')]=function(_0x49e99d){var _0x2b8481=this;return new Promise(function(_0x262261,_0x1e02c3){return db[_0x1269('0x19')][_0x1269('0x1a')](_0x49e99d[_0x1269('0x1b')],{'raw':_0x49e99d['options']?_0x49e99d[_0x1269('0x1c')][_0x1269('0x1d')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x49e99d[_0x1269('0x1c')]?_0x49e99d['options'][_0x1269('0x1e')]||null:null,'attributes':_0x49e99d['options']?_0x49e99d[_0x1269('0x1c')]['attributes']||null:null,'limit':_0x49e99d[_0x1269('0x1c')]?_0x49e99d[_0x1269('0x1c')][_0x1269('0x1f')]||null:null})[_0x1269('0xd')](function(_0x47a4a8){logger[_0x1269('0x15')]('UpdateVoiceAgentReport',_0x49e99d);logger['debug'](_0x1269('0x18'),_0x49e99d,JSON[_0x1269('0x11')](_0x47a4a8));_0x262261(_0x47a4a8);})[_0x1269('0x16')](function(_0x377984){logger[_0x1269('0x12')](_0x1269('0x18'),_0x377984[_0x1269('0x14')],_0x49e99d);_0x1e02c3(_0x2b8481[_0x1269('0x12')](0x1f4,_0x377984['message']));});});};
\ No newline at end of file
+var _0x5901=['client','http','request','then','info','VoiceAgentReport,\x20%s,\x20%s','request\x20sent','debug','VoiceAgentReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','CreateVoiceAgentReport','create','body','raw','UpdateVoiceAgentReport','update','options','where','limit','moment','bluebird','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment'];(function(_0x108a38,_0xec9fd2){var _0x51f608=function(_0x5ed09f){while(--_0x5ed09f){_0x108a38['push'](_0x108a38['shift']());}};_0x51f608(++_0xec9fd2);}(_0x5901,0x1bb));var _0x1590=function(_0x17691c,_0x3f89ea){_0x17691c=_0x17691c-0x0;var _0x519d7b=_0x5901[_0x17691c];return _0x519d7b;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x1590('0x0'));var BPromise=require(_0x1590('0x1'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x1590('0x2'));var db=require('../../mysqldb')['db'];var utils=require(_0x1590('0x3'));var logger=require(_0x1590('0x4'))(_0x1590('0x5'));var config=require(_0x1590('0x6'));var jayson=require('jayson/promise');var client=jayson[_0x1590('0x7')][_0x1590('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x3df78c,_0x1da4f6,_0x371417){return new BPromise(function(_0x3b1ca5,_0xb8f3bc){return client[_0x1590('0x9')](_0x3df78c,_0x371417)[_0x1590('0xa')](function(_0x2a57fd){logger[_0x1590('0xb')](_0x1590('0xc'),_0x1da4f6,_0x1590('0xd'));logger[_0x1590('0xe')](_0x1590('0xf'),_0x1da4f6,_0x1590('0xd'),JSON[_0x1590('0x10')](_0x2a57fd));if(_0x2a57fd['error']){if(_0x2a57fd[_0x1590('0x11')][_0x1590('0x12')]===0x1f4){logger[_0x1590('0x11')](_0x1590('0xc'),_0x1da4f6,_0x2a57fd['error']['message']);return _0xb8f3bc(_0x2a57fd['error'][_0x1590('0x13')]);}logger['error']('VoiceAgentReport,\x20%s,\x20%s',_0x1da4f6,_0x2a57fd['error'][_0x1590('0x13')]);return _0x3b1ca5(_0x2a57fd['error'][_0x1590('0x13')]);}else{logger[_0x1590('0xb')](_0x1590('0xc'),_0x1da4f6,_0x1590('0xd'));_0x3b1ca5(_0x2a57fd['result'][_0x1590('0x13')]);}})[_0x1590('0x14')](function(_0x5afd72){logger[_0x1590('0x11')](_0x1590('0xc'),_0x1da4f6,_0x5afd72);_0xb8f3bc(_0x5afd72);});});}exports[_0x1590('0x15')]=function(_0x2b2250){var _0x4dad2d=this;return new Promise(function(_0x12f0f7,_0x8a7863){return db['VoiceAgentReport'][_0x1590('0x16')](_0x2b2250[_0x1590('0x17')],{'raw':_0x2b2250['options']?_0x2b2250['options'][_0x1590('0x18')]===undefined?!![]:![]:!![]})['then'](function(_0xd83e31){logger['info'](_0x1590('0x15'),_0x2b2250);logger[_0x1590('0xe')](_0x1590('0x15'),_0x2b2250,JSON[_0x1590('0x10')](_0xd83e31));_0x12f0f7(_0xd83e31);})[_0x1590('0x14')](function(_0x51b010){logger[_0x1590('0x11')](_0x1590('0x15'),_0x51b010['message'],_0x2b2250);_0x8a7863(_0x4dad2d['error'](0x1f4,_0x51b010[_0x1590('0x13')]));});});};exports[_0x1590('0x19')]=function(_0x186f06){var _0x48431b=this;return new Promise(function(_0x199c3e,_0x5d50e0){return db['VoiceAgentReport'][_0x1590('0x1a')](_0x186f06[_0x1590('0x17')],{'raw':_0x186f06['options']?_0x186f06[_0x1590('0x1b')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x186f06[_0x1590('0x1b')]?_0x186f06[_0x1590('0x1b')][_0x1590('0x1c')]||null:null,'attributes':_0x186f06[_0x1590('0x1b')]?_0x186f06[_0x1590('0x1b')]['attributes']||null:null,'limit':_0x186f06[_0x1590('0x1b')]?_0x186f06[_0x1590('0x1b')][_0x1590('0x1d')]||null:null})['then'](function(_0x1780db){logger[_0x1590('0xb')](_0x1590('0x19'),_0x186f06);logger['debug'](_0x1590('0x19'),_0x186f06,JSON[_0x1590('0x10')](_0x1780db));_0x199c3e(_0x1780db);})['catch'](function(_0xebd814){logger[_0x1590('0x11')](_0x1590('0x19'),_0xebd814['message'],_0x186f06);_0x5d50e0(_0x48431b[_0x1590('0x11')](0x1f4,_0xebd814[_0x1590('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5075=['get','isAuthenticated','describe','show','post','create','/:id','delete','destroy','exports','multer','util','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./voiceCallReport.controller','index'];(function(_0x4113f8,_0x4adb2a){var _0x44f662=function(_0x2afa57){while(--_0x2afa57){_0x4113f8['push'](_0x4113f8['shift']());}};_0x44f662(++_0x4adb2a);}(_0x5075,0x73));var _0x5507=function(_0x1da448,_0x565a9f){_0x1da448=_0x1da448-0x0;var _0xdb7a13=_0x5075[_0x1da448];return _0xdb7a13;};'use strict';var multer=require(_0x5507('0x0'));var util=require(_0x5507('0x1'));var path=require(_0x5507('0x2'));var timeout=require(_0x5507('0x3'));var express=require(_0x5507('0x4'));var router=express[_0x5507('0x5')]();var fs_extra=require(_0x5507('0x6'));var auth=require('../../components/auth/service');var interaction=require(_0x5507('0x7'));var config=require(_0x5507('0x8'));var controller=require(_0x5507('0x9'));router['get']('/',auth['isAuthenticated'](),controller[_0x5507('0xa')]);router[_0x5507('0xb')]('/describe',auth[_0x5507('0xc')](),controller[_0x5507('0xd')]);router[_0x5507('0xb')]('/:id',auth['isAuthenticated'](),controller[_0x5507('0xe')]);router[_0x5507('0xf')]('/',auth[_0x5507('0xc')](),controller[_0x5507('0x10')]);router['put'](_0x5507('0x11'),auth[_0x5507('0xc')](),controller['update']);router[_0x5507('0x12')](_0x5507('0x11'),auth['isAuthenticated'](),controller[_0x5507('0x13')]);module[_0x5507('0x14')]=router;
\ No newline at end of file
+var _0x55ca=['create','put','update','delete','destroy','multer','util','Router','fs-extra','../../components/interaction/service','../../config/environment','./voiceCallReport.controller','get','isAuthenticated','index','describe','/:id'];(function(_0x4cde67,_0x1f58b8){var _0xd80b56=function(_0x3f222f){while(--_0x3f222f){_0x4cde67['push'](_0x4cde67['shift']());}};_0xd80b56(++_0x1f58b8);}(_0x55ca,0x126));var _0xa55c=function(_0x34f701,_0x37e407){_0x34f701=_0x34f701-0x0;var _0x3e2429=_0x55ca[_0x34f701];return _0x3e2429;};'use strict';var multer=require(_0xa55c('0x0'));var util=require(_0xa55c('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require('express');var router=express[_0xa55c('0x2')]();var fs_extra=require(_0xa55c('0x3'));var auth=require('../../components/auth/service');var interaction=require(_0xa55c('0x4'));var config=require(_0xa55c('0x5'));var controller=require(_0xa55c('0x6'));router[_0xa55c('0x7')]('/',auth[_0xa55c('0x8')](),controller[_0xa55c('0x9')]);router[_0xa55c('0x7')]('/describe',auth[_0xa55c('0x8')](),controller[_0xa55c('0xa')]);router['get'](_0xa55c('0xb'),auth[_0xa55c('0x8')](),controller['show']);router['post']('/',auth[_0xa55c('0x8')](),controller[_0xa55c('0xc')]);router[_0xa55c('0xd')](_0xa55c('0xb'),auth[_0xa55c('0x8')](),controller[_0xa55c('0xe')]);router[_0xa55c('0xf')](_0xa55c('0xb'),auth[_0xa55c('0x8')](),controller[_0xa55c('0x10')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xff22=['ENUM','inbound','internal','outbound','inbound-fax','outbound-fax','dialer','TEXT','DATE','INTEGER','sequelize','exports','STRING'];(function(_0x2dadb9,_0x42cfe6){var _0x2f0097=function(_0x21163f){while(--_0x21163f){_0x2dadb9['push'](_0x2dadb9['shift']());}};_0x2f0097(++_0x42cfe6);}(_0xff22,0x135));var _0x2ff2=function(_0x2df5e5,_0x34e30e){_0x2df5e5=_0x2df5e5-0x0;var _0xf89f7c=_0xff22[_0x2df5e5];return _0xf89f7c;};'use strict';var Sequelize=require(_0x2ff2('0x0'));module[_0x2ff2('0x1')]={'uniqueid':{'type':Sequelize[_0x2ff2('0x2')]},'type':{'type':Sequelize[_0x2ff2('0x3')](_0x2ff2('0x4'),_0x2ff2('0x5'),_0x2ff2('0x6'),_0x2ff2('0x7'),_0x2ff2('0x8'),_0x2ff2('0x9'))},'tag':{'type':Sequelize[_0x2ff2('0x2')]},'accountcode':{'type':Sequelize[_0x2ff2('0x2')]},'source':{'type':Sequelize[_0x2ff2('0x2')]},'destination':{'type':Sequelize[_0x2ff2('0x2')]},'destinationcontext':{'type':Sequelize[_0x2ff2('0x2')]},'callerid':{'type':Sequelize[_0x2ff2('0x2')]},'channel':{'type':Sequelize[_0x2ff2('0x2')]},'destinationchannel':{'type':Sequelize[_0x2ff2('0x2')]},'lastapplication':{'type':Sequelize[_0x2ff2('0x2')]},'lastdata':{'type':Sequelize[_0x2ff2('0xa')]},'starttime':{'type':Sequelize[_0x2ff2('0xb')]},'systemanswertime':{'type':Sequelize[_0x2ff2('0xb')]},'answertime':{'type':Sequelize[_0x2ff2('0xb')]},'endtime':{'type':Sequelize[_0x2ff2('0xb')]},'duration':{'type':Sequelize[_0x2ff2('0xc')]},'billableseconds':{'type':Sequelize[_0x2ff2('0xc')]},'mohtime':{'type':Sequelize[_0x2ff2('0xc')],'defaultValue':0x0},'disposition':{'type':Sequelize[_0x2ff2('0x2')]},'amaflags':{'type':Sequelize[_0x2ff2('0x2')]},'userfield':{'type':Sequelize['STRING']},'userDisposition':{'type':Sequelize['STRING']},'userSecondDisposition':{'type':Sequelize[_0x2ff2('0x2')]},'userThirdDisposition':{'type':Sequelize[_0x2ff2('0x2')]},'note':{'type':Sequelize[_0x2ff2('0x2')]},'prefix':{'type':Sequelize[_0x2ff2('0x2')]},'routeid':{'type':Sequelize['INTEGER']},'sipcallid':{'type':Sequelize[_0x2ff2('0x2')]}};
\ No newline at end of file
+var _0xaebe=['internal','outbound','inbound-fax','outbound-fax','TEXT','DATE','INTEGER','sequelize','exports','STRING'];(function(_0x3bf83f,_0x181cac){var _0x22c4a9=function(_0xb3ff0d){while(--_0xb3ff0d){_0x3bf83f['push'](_0x3bf83f['shift']());}};_0x22c4a9(++_0x181cac);}(_0xaebe,0xed));var _0xeaeb=function(_0x51c819,_0xd812db){_0x51c819=_0x51c819-0x0;var _0x15c5d2=_0xaebe[_0x51c819];return _0x15c5d2;};'use strict';var Sequelize=require(_0xeaeb('0x0'));module[_0xeaeb('0x1')]={'uniqueid':{'type':Sequelize[_0xeaeb('0x2')]},'type':{'type':Sequelize['ENUM']('inbound',_0xeaeb('0x3'),_0xeaeb('0x4'),_0xeaeb('0x5'),_0xeaeb('0x6'),'dialer')},'tag':{'type':Sequelize[_0xeaeb('0x2')]},'accountcode':{'type':Sequelize[_0xeaeb('0x2')]},'source':{'type':Sequelize[_0xeaeb('0x2')]},'destination':{'type':Sequelize[_0xeaeb('0x2')]},'destinationcontext':{'type':Sequelize[_0xeaeb('0x2')]},'callerid':{'type':Sequelize['STRING']},'channel':{'type':Sequelize[_0xeaeb('0x2')]},'destinationchannel':{'type':Sequelize['STRING']},'lastapplication':{'type':Sequelize['STRING']},'lastdata':{'type':Sequelize[_0xeaeb('0x7')]},'starttime':{'type':Sequelize['DATE']},'systemanswertime':{'type':Sequelize[_0xeaeb('0x8')]},'answertime':{'type':Sequelize['DATE']},'endtime':{'type':Sequelize[_0xeaeb('0x8')]},'duration':{'type':Sequelize[_0xeaeb('0x9')]},'billableseconds':{'type':Sequelize[_0xeaeb('0x9')]},'mohtime':{'type':Sequelize[_0xeaeb('0x9')],'defaultValue':0x0},'disposition':{'type':Sequelize[_0xeaeb('0x2')]},'amaflags':{'type':Sequelize[_0xeaeb('0x2')]},'userfield':{'type':Sequelize[_0xeaeb('0x2')]},'userDisposition':{'type':Sequelize['STRING']},'userSecondDisposition':{'type':Sequelize[_0xeaeb('0x2')]},'userThirdDisposition':{'type':Sequelize['STRING']},'note':{'type':Sequelize['STRING']},'prefix':{'type':Sequelize[_0xeaeb('0x2')]},'routeid':{'type':Sequelize['INTEGER']},'sipcallid':{'type':Sequelize[_0xeaeb('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0b0e=['bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','status','undefined','offset','limit','set','json','apply','reject','save','then','destroy','error','stack','name','index','map','VoiceCallReport','rawAttributes','fieldName','type','query','keys','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','filters','filter','merge','where','VIRTUAL','options','count','includeAll','fullname','alias','User','findAll','rows','params','find','create','body','catch','describe','update','uniqueid','user','eml-format','zip-dir','request-promise','moment'];(function(_0x14fd4e,_0x45a172){var _0x21ef11=function(_0x161106){while(--_0x161106){_0x14fd4e['push'](_0x14fd4e['shift']());}};_0x21ef11(++_0x45a172);}(_0x0b0e,0x187));var _0xe0b0=function(_0x11f893,_0x259935){_0x11f893=_0x11f893-0x0;var _0x400fa8=_0x0b0e[_0x11f893];return _0x400fa8;};'use strict';var emlformat=require(_0xe0b0('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xe0b0('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xe0b0('0x2'));var moment=require(_0xe0b0('0x3'));var BPromise=require(_0xe0b0('0x4'));var Mustache=require(_0xe0b0('0x5'));var util=require(_0xe0b0('0x6'));var path=require(_0xe0b0('0x7'));var sox=require(_0xe0b0('0x8'));var csv=require(_0xe0b0('0x9'));var ejs=require(_0xe0b0('0xa'));var fs=require('fs');var fs_extra=require(_0xe0b0('0xb'));var _=require(_0xe0b0('0xc'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xe0b0('0xd'));var deskjs=require(_0xe0b0('0xe'));var toCsv=require(_0xe0b0('0x9'));var querystring=require(_0xe0b0('0xf'));var Papa=require('papaparse');var Redis=require(_0xe0b0('0x10'));var authService=require(_0xe0b0('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0xe0b0('0x12'));var hardwareService=require(_0xe0b0('0x13'));var logger=require('../../config/logger')(_0xe0b0('0x14'));var utils=require(_0xe0b0('0x15'));var config=require(_0xe0b0('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0xe0b0('0x17'))['db'];function respondWithStatusCode(_0x1c358a,_0x3cc19a){_0x3cc19a=_0x3cc19a||0xcc;return function(_0x45f914){if(_0x45f914){return _0x1c358a[_0xe0b0('0x18')](_0x3cc19a);}return _0x1c358a['status'](_0x3cc19a)[_0xe0b0('0x19')]();};}function respondWithResult(_0x154de6,_0x743318){_0x743318=_0x743318||0xc8;return function(_0x24babd){if(_0x24babd){return _0x154de6[_0xe0b0('0x1a')](_0x743318)['json'](_0x24babd);}};}function respondWithFilteredResult(_0x41a7e2,_0x5adb01){return function(_0x35cb40){if(_0x35cb40){var _0xadee6e=typeof _0x5adb01['offset']===_0xe0b0('0x1b')&&typeof _0x5adb01['limit']===_0xe0b0('0x1b');var _0x100204=_0x35cb40['count'];var _0x54a3eb=_0xadee6e?0x0:_0x5adb01[_0xe0b0('0x1c')];var _0x50a441=_0xadee6e?_0x35cb40['count']:_0x5adb01['offset']+_0x5adb01[_0xe0b0('0x1d')];var _0x50fa4a;if(_0x50a441>=_0x100204){_0x50a441=_0x100204;_0x50fa4a=0xc8;}else{_0x50fa4a=0xce;}_0x41a7e2['status'](_0x50fa4a);return _0x41a7e2[_0xe0b0('0x1e')]('Content-Range',_0x54a3eb+'-'+_0x50a441+'/'+_0x100204)[_0xe0b0('0x1f')](_0x35cb40);}return null;};}function patchUpdates(_0x5dba2f){return function(_0x2c84cc){try{jsonpatch[_0xe0b0('0x20')](_0x2c84cc,_0x5dba2f,!![]);}catch(_0x3e10b3){return BPromise[_0xe0b0('0x21')](_0x3e10b3);}return _0x2c84cc[_0xe0b0('0x22')]();};}function saveUpdates(_0x58b804,_0x4cae54){return function(_0x2fa820){if(_0x2fa820){return _0x2fa820['update'](_0x58b804)[_0xe0b0('0x23')](function(_0x31b5f8){return _0x31b5f8;});}return null;};}function removeEntity(_0x513e63,_0x170ad8){return function(_0x503883){if(_0x503883){return _0x503883[_0xe0b0('0x24')]()['then'](function(){_0x513e63[_0xe0b0('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3e5c88,_0x4de537){return function(_0x4700cc){if(!_0x4700cc){_0x3e5c88['sendStatus'](0x194);}return _0x4700cc;};}function handleError(_0x3c221d,_0x5c5317){_0x5c5317=_0x5c5317||0x1f4;return function(_0x362aba){logger[_0xe0b0('0x25')](_0x362aba[_0xe0b0('0x26')]);if(_0x362aba[_0xe0b0('0x27')]){delete _0x362aba[_0xe0b0('0x27')];}_0x3c221d[_0xe0b0('0x1a')](_0x5c5317)['send'](_0x362aba);};}exports[_0xe0b0('0x28')]=function(_0x1b8aa8,_0x5b7a64){var _0x15e13b={},_0x419b1f={},_0x36d137={'count':0x0,'rows':[]};var _0x1d5759=_[_0xe0b0('0x29')](db[_0xe0b0('0x2a')][_0xe0b0('0x2b')],function(_0x4fb3b7){return{'name':_0x4fb3b7[_0xe0b0('0x2c')],'type':_0x4fb3b7[_0xe0b0('0x2d')]['key']};});_0x419b1f['model']=_[_0xe0b0('0x29')](_0x1d5759,_0xe0b0('0x27'));_0x419b1f[_0xe0b0('0x2e')]=_[_0xe0b0('0x2f')](_0x1b8aa8[_0xe0b0('0x2e')]);_0x419b1f['filters']=_[_0xe0b0('0x30')](_0x419b1f[_0xe0b0('0x31')],_0x419b1f[_0xe0b0('0x2e')]);_0x15e13b[_0xe0b0('0x32')]=_[_0xe0b0('0x30')](_0x419b1f['model'],qs[_0xe0b0('0x33')](_0x1b8aa8[_0xe0b0('0x2e')][_0xe0b0('0x33')]));_0x15e13b[_0xe0b0('0x32')]=_0x15e13b[_0xe0b0('0x32')][_0xe0b0('0x34')]?_0x15e13b[_0xe0b0('0x32')]:_0x419b1f[_0xe0b0('0x31')];if(!_0x1b8aa8[_0xe0b0('0x2e')][_0xe0b0('0x35')](_0xe0b0('0x36'))){_0x15e13b[_0xe0b0('0x1d')]=qs[_0xe0b0('0x1d')](_0x1b8aa8[_0xe0b0('0x2e')][_0xe0b0('0x1d')]);_0x15e13b['offset']=qs[_0xe0b0('0x1c')](_0x1b8aa8[_0xe0b0('0x2e')][_0xe0b0('0x1c')]);}_0x15e13b[_0xe0b0('0x37')]=qs[_0xe0b0('0x38')](_0x1b8aa8[_0xe0b0('0x2e')][_0xe0b0('0x38')]);_0x15e13b['where']=qs['filters'](_['pick'](_0x1b8aa8['query'],_0x419b1f[_0xe0b0('0x39')]),_0x1d5759);if(_0x1b8aa8[_0xe0b0('0x2e')][_0xe0b0('0x3a')]){_0x15e13b['where']=_[_0xe0b0('0x3b')](_0x15e13b[_0xe0b0('0x3c')],{'$or':_[_0xe0b0('0x29')](_0x1d5759,function(_0x297c64){if(_0x297c64['type']!==_0xe0b0('0x3d')){var _0xfbb61d={};_0xfbb61d[_0x297c64[_0xe0b0('0x27')]]={'$like':'%'+_0x1b8aa8[_0xe0b0('0x2e')][_0xe0b0('0x3a')]+'%'};return _0xfbb61d;}})});}_0x15e13b=_[_0xe0b0('0x3b')]({},_0x15e13b,_0x1b8aa8[_0xe0b0('0x3e')]);var _0x115a69={'where':_0x15e13b[_0xe0b0('0x3c')]};return db['VoiceCallReport'][_0xe0b0('0x3f')](_0x115a69)['then'](function(_0x34178d){_0x36d137[_0xe0b0('0x3f')]=_0x34178d;if(_0x1b8aa8[_0xe0b0('0x2e')][_0xe0b0('0x40')]){_0x15e13b['include']=[{'attributes':['id',_0xe0b0('0x27'),_0xe0b0('0x41'),_0xe0b0('0x42')],'model':db[_0xe0b0('0x43')],'as':_0xe0b0('0x43')}];}return db[_0xe0b0('0x2a')][_0xe0b0('0x44')](_0x15e13b);})[_0xe0b0('0x23')](function(_0x52ffe4){_0x36d137[_0xe0b0('0x45')]=_0x52ffe4;return _0x36d137;})[_0xe0b0('0x23')](respondWithFilteredResult(_0x5b7a64,_0x15e13b))['catch'](handleError(_0x5b7a64,null));};exports['show']=function(_0x327fb4,_0x247f8d){var _0x56e7df={'raw':!![],'where':{'id':_0x327fb4[_0xe0b0('0x46')]['id']}},_0x18a59d={};_0x18a59d[_0xe0b0('0x31')]=_[_0xe0b0('0x2f')](db[_0xe0b0('0x2a')]['rawAttributes']);_0x18a59d['query']=_['keys'](_0x327fb4[_0xe0b0('0x2e')]);_0x18a59d[_0xe0b0('0x39')]=_['intersection'](_0x18a59d[_0xe0b0('0x31')],_0x18a59d[_0xe0b0('0x2e')]);_0x56e7df[_0xe0b0('0x32')]=_[_0xe0b0('0x30')](_0x18a59d[_0xe0b0('0x31')],qs['fields'](_0x327fb4['query'][_0xe0b0('0x33')]));_0x56e7df[_0xe0b0('0x32')]=_0x56e7df[_0xe0b0('0x32')][_0xe0b0('0x34')]?_0x56e7df[_0xe0b0('0x32')]:_0x18a59d['model'];if(_0x327fb4[_0xe0b0('0x2e')][_0xe0b0('0x40')]){_0x56e7df['include']=[{'all':!![]}];}_0x56e7df=_['merge']({},_0x56e7df,_0x327fb4['options']);return db[_0xe0b0('0x2a')][_0xe0b0('0x47')](_0x56e7df)[_0xe0b0('0x23')](handleEntityNotFound(_0x247f8d,null))[_0xe0b0('0x23')](respondWithResult(_0x247f8d,null))['catch'](handleError(_0x247f8d,null));};exports[_0xe0b0('0x48')]=function(_0x87d8f3,_0x483f12){return db['VoiceCallReport'][_0xe0b0('0x48')](_0x87d8f3[_0xe0b0('0x49')],{})['then'](respondWithResult(_0x483f12,0xc9))[_0xe0b0('0x4a')](handleError(_0x483f12,null));};exports[_0xe0b0('0x24')]=function(_0x504284,_0x5cb2b6){return db[_0xe0b0('0x2a')]['find']({'where':{'id':_0x504284[_0xe0b0('0x46')]['id']}})[_0xe0b0('0x23')](handleEntityNotFound(_0x5cb2b6,null))[_0xe0b0('0x23')](removeEntity(_0x5cb2b6,null))[_0xe0b0('0x4a')](handleError(_0x5cb2b6,null));};exports[_0xe0b0('0x4b')]=function(_0xf9e694,_0x5f5486){return db['VoiceCallReport'][_0xe0b0('0x4b')]()['then'](respondWithResult(_0x5f5486,null))['catch'](handleError(_0x5f5486,null));};exports[_0xe0b0('0x4c')]=function(_0x222174,_0x54cf7b){if(_0x222174['body'][_0xe0b0('0x4d')]){delete _0x222174[_0xe0b0('0x49')][_0xe0b0('0x4d')];}return db[_0xe0b0('0x2a')][_0xe0b0('0x47')]({'where':{'uniqueid':_0x222174[_0xe0b0('0x46')]['id'],'UserId':{'$or':[null,_0x222174[_0xe0b0('0x4e')]['id']]}}})['then'](handleEntityNotFound(_0x54cf7b,null))[_0xe0b0('0x23')](saveUpdates(_0x222174['body'],null))[_0xe0b0('0x23')](respondWithResult(_0x54cf7b,null))['catch'](handleError(_0x54cf7b,null));};
\ No newline at end of file
+var _0xdb28=['options','includeAll','fullname','User','findAll','rows','catch','show','params','rawAttributes','intersection','include','find','create','destroy','describe','body','uniqueid','user','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','to-csv','ejs','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','../../mysqldb','status','end','json','offset','undefined','count','limit','set','apply','save','update','then','sendStatus','error','stack','name','send','index','VoiceCallReport','fieldName','type','key','map','query','keys','model','fields','attributes','length','nolimit','order','sort','filters','filter','where','VIRTUAL','merge'];(function(_0x4d1a84,_0x77d51d){var _0x187fbc=function(_0x1709ec){while(--_0x1709ec){_0x4d1a84['push'](_0x4d1a84['shift']());}};_0x187fbc(++_0x77d51d);}(_0xdb28,0x106));var _0x8db2=function(_0x1fe848,_0x502460){_0x1fe848=_0x1fe848-0x0;var _0x12bc8d=_0xdb28[_0x1fe848];return _0x12bc8d;};'use strict';var emlformat=require(_0x8db2('0x0'));var rimraf=require(_0x8db2('0x1'));var zipdir=require(_0x8db2('0x2'));var jsonpatch=require(_0x8db2('0x3'));var rp=require('request-promise');var moment=require(_0x8db2('0x4'));var BPromise=require(_0x8db2('0x5'));var Mustache=require(_0x8db2('0x6'));var util=require(_0x8db2('0x7'));var path=require(_0x8db2('0x8'));var sox=require('sox');var csv=require(_0x8db2('0x9'));var ejs=require(_0x8db2('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0x8db2('0xb'));var crypto=require(_0x8db2('0xc'));var jsforce=require(_0x8db2('0xd'));var deskjs=require(_0x8db2('0xe'));var toCsv=require(_0x8db2('0x9'));var querystring=require(_0x8db2('0xf'));var Papa=require(_0x8db2('0x10'));var Redis=require('ioredis');var authService=require(_0x8db2('0x11'));var qs=require(_0x8db2('0x12'));var as=require(_0x8db2('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x8db2('0x14'))(_0x8db2('0x15'));var utils=require('../../config/utils');var config=require(_0x8db2('0x16'));var licenseUtil=require(_0x8db2('0x17'));var db=require(_0x8db2('0x18'))['db'];function respondWithStatusCode(_0x204f49,_0x37d017){_0x37d017=_0x37d017||0xcc;return function(_0x559fb1){if(_0x559fb1){return _0x204f49['sendStatus'](_0x37d017);}return _0x204f49[_0x8db2('0x19')](_0x37d017)[_0x8db2('0x1a')]();};}function respondWithResult(_0x350d61,_0x1d6a15){_0x1d6a15=_0x1d6a15||0xc8;return function(_0x227355){if(_0x227355){return _0x350d61[_0x8db2('0x19')](_0x1d6a15)[_0x8db2('0x1b')](_0x227355);}};}function respondWithFilteredResult(_0x3c96a7,_0x131252){return function(_0x16c8c2){if(_0x16c8c2){var _0x5489a9=typeof _0x131252[_0x8db2('0x1c')]===_0x8db2('0x1d')&&typeof _0x131252['limit']===_0x8db2('0x1d');var _0x44957d=_0x16c8c2[_0x8db2('0x1e')];var _0x3fddc2=_0x5489a9?0x0:_0x131252[_0x8db2('0x1c')];var _0x46ce14=_0x5489a9?_0x16c8c2['count']:_0x131252['offset']+_0x131252[_0x8db2('0x1f')];var _0x104e33;if(_0x46ce14>=_0x44957d){_0x46ce14=_0x44957d;_0x104e33=0xc8;}else{_0x104e33=0xce;}_0x3c96a7[_0x8db2('0x19')](_0x104e33);return _0x3c96a7[_0x8db2('0x20')]('Content-Range',_0x3fddc2+'-'+_0x46ce14+'/'+_0x44957d)[_0x8db2('0x1b')](_0x16c8c2);}return null;};}function patchUpdates(_0x36a9ff){return function(_0x260940){try{jsonpatch[_0x8db2('0x21')](_0x260940,_0x36a9ff,!![]);}catch(_0x3dbe8e){return BPromise['reject'](_0x3dbe8e);}return _0x260940[_0x8db2('0x22')]();};}function saveUpdates(_0x3e30e6,_0x18f69c){return function(_0x125be2){if(_0x125be2){return _0x125be2[_0x8db2('0x23')](_0x3e30e6)[_0x8db2('0x24')](function(_0x796ec1){return _0x796ec1;});}return null;};}function removeEntity(_0x5c6614,_0x256202){return function(_0x4f6516){if(_0x4f6516){return _0x4f6516['destroy']()['then'](function(){_0x5c6614['status'](0xcc)[_0x8db2('0x1a')]();});}};}function handleEntityNotFound(_0x29b5cd,_0x3be281){return function(_0x2baed0){if(!_0x2baed0){_0x29b5cd[_0x8db2('0x25')](0x194);}return _0x2baed0;};}function handleError(_0x8d4f54,_0x58cd9d){_0x58cd9d=_0x58cd9d||0x1f4;return function(_0x3544ba){logger[_0x8db2('0x26')](_0x3544ba[_0x8db2('0x27')]);if(_0x3544ba[_0x8db2('0x28')]){delete _0x3544ba['name'];}_0x8d4f54[_0x8db2('0x19')](_0x58cd9d)[_0x8db2('0x29')](_0x3544ba);};}exports[_0x8db2('0x2a')]=function(_0x1687ed,_0xbe5ece){var _0x21bae5={},_0xa54ea3={},_0x3124d5={'count':0x0,'rows':[]};var _0xbc5366=_['map'](db[_0x8db2('0x2b')]['rawAttributes'],function(_0x59cb77){return{'name':_0x59cb77[_0x8db2('0x2c')],'type':_0x59cb77[_0x8db2('0x2d')][_0x8db2('0x2e')]};});_0xa54ea3['model']=_[_0x8db2('0x2f')](_0xbc5366,'name');_0xa54ea3[_0x8db2('0x30')]=_[_0x8db2('0x31')](_0x1687ed[_0x8db2('0x30')]);_0xa54ea3['filters']=_['intersection'](_0xa54ea3[_0x8db2('0x32')],_0xa54ea3[_0x8db2('0x30')]);_0x21bae5['attributes']=_['intersection'](_0xa54ea3[_0x8db2('0x32')],qs[_0x8db2('0x33')](_0x1687ed[_0x8db2('0x30')][_0x8db2('0x33')]));_0x21bae5[_0x8db2('0x34')]=_0x21bae5[_0x8db2('0x34')][_0x8db2('0x35')]?_0x21bae5[_0x8db2('0x34')]:_0xa54ea3[_0x8db2('0x32')];if(!_0x1687ed[_0x8db2('0x30')]['hasOwnProperty'](_0x8db2('0x36'))){_0x21bae5[_0x8db2('0x1f')]=qs['limit'](_0x1687ed[_0x8db2('0x30')][_0x8db2('0x1f')]);_0x21bae5['offset']=qs['offset'](_0x1687ed[_0x8db2('0x30')]['offset']);}_0x21bae5[_0x8db2('0x37')]=qs[_0x8db2('0x38')](_0x1687ed[_0x8db2('0x30')][_0x8db2('0x38')]);_0x21bae5['where']=qs[_0x8db2('0x39')](_['pick'](_0x1687ed[_0x8db2('0x30')],_0xa54ea3[_0x8db2('0x39')]),_0xbc5366);if(_0x1687ed[_0x8db2('0x30')][_0x8db2('0x3a')]){_0x21bae5['where']=_['merge'](_0x21bae5[_0x8db2('0x3b')],{'$or':_[_0x8db2('0x2f')](_0xbc5366,function(_0x5dc2b4){if(_0x5dc2b4[_0x8db2('0x2d')]!==_0x8db2('0x3c')){var _0x656dd2={};_0x656dd2[_0x5dc2b4['name']]={'$like':'%'+_0x1687ed[_0x8db2('0x30')][_0x8db2('0x3a')]+'%'};return _0x656dd2;}})});}_0x21bae5=_[_0x8db2('0x3d')]({},_0x21bae5,_0x1687ed[_0x8db2('0x3e')]);var _0x2e6f0c={'where':_0x21bae5[_0x8db2('0x3b')]};return db[_0x8db2('0x2b')][_0x8db2('0x1e')](_0x2e6f0c)[_0x8db2('0x24')](function(_0x63c561){_0x3124d5[_0x8db2('0x1e')]=_0x63c561;if(_0x1687ed[_0x8db2('0x30')][_0x8db2('0x3f')]){_0x21bae5['include']=[{'attributes':['id',_0x8db2('0x28'),_0x8db2('0x40'),'alias'],'model':db['User'],'as':_0x8db2('0x41')}];}return db['VoiceCallReport'][_0x8db2('0x42')](_0x21bae5);})[_0x8db2('0x24')](function(_0x313130){_0x3124d5[_0x8db2('0x43')]=_0x313130;return _0x3124d5;})[_0x8db2('0x24')](respondWithFilteredResult(_0xbe5ece,_0x21bae5))[_0x8db2('0x44')](handleError(_0xbe5ece,null));};exports[_0x8db2('0x45')]=function(_0x5c97ef,_0x2f86b1){var _0x3d44de={'raw':!![],'where':{'id':_0x5c97ef[_0x8db2('0x46')]['id']}},_0x40c69e={};_0x40c69e['model']=_[_0x8db2('0x31')](db[_0x8db2('0x2b')][_0x8db2('0x47')]);_0x40c69e[_0x8db2('0x30')]=_['keys'](_0x5c97ef[_0x8db2('0x30')]);_0x40c69e['filters']=_[_0x8db2('0x48')](_0x40c69e[_0x8db2('0x32')],_0x40c69e[_0x8db2('0x30')]);_0x3d44de['attributes']=_['intersection'](_0x40c69e[_0x8db2('0x32')],qs['fields'](_0x5c97ef[_0x8db2('0x30')][_0x8db2('0x33')]));_0x3d44de[_0x8db2('0x34')]=_0x3d44de[_0x8db2('0x34')][_0x8db2('0x35')]?_0x3d44de[_0x8db2('0x34')]:_0x40c69e[_0x8db2('0x32')];if(_0x5c97ef[_0x8db2('0x30')][_0x8db2('0x3f')]){_0x3d44de[_0x8db2('0x49')]=[{'all':!![]}];}_0x3d44de=_[_0x8db2('0x3d')]({},_0x3d44de,_0x5c97ef[_0x8db2('0x3e')]);return db['VoiceCallReport'][_0x8db2('0x4a')](_0x3d44de)[_0x8db2('0x24')](handleEntityNotFound(_0x2f86b1,null))[_0x8db2('0x24')](respondWithResult(_0x2f86b1,null))[_0x8db2('0x44')](handleError(_0x2f86b1,null));};exports['create']=function(_0x4ffd9d,_0x11c224){return db[_0x8db2('0x2b')][_0x8db2('0x4b')](_0x4ffd9d['body'],{})['then'](respondWithResult(_0x11c224,0xc9))['catch'](handleError(_0x11c224,null));};exports[_0x8db2('0x4c')]=function(_0x368c37,_0x55c7dd){return db[_0x8db2('0x2b')][_0x8db2('0x4a')]({'where':{'id':_0x368c37[_0x8db2('0x46')]['id']}})[_0x8db2('0x24')](handleEntityNotFound(_0x55c7dd,null))['then'](removeEntity(_0x55c7dd,null))['catch'](handleError(_0x55c7dd,null));};exports[_0x8db2('0x4d')]=function(_0x18c6ef,_0x2908e4){return db[_0x8db2('0x2b')][_0x8db2('0x4d')]()[_0x8db2('0x24')](respondWithResult(_0x2908e4,null))[_0x8db2('0x44')](handleError(_0x2908e4,null));};exports[_0x8db2('0x23')]=function(_0x4187d6,_0x426ae0){if(_0x4187d6[_0x8db2('0x4e')][_0x8db2('0x4f')]){delete _0x4187d6[_0x8db2('0x4e')][_0x8db2('0x4f')];}return db[_0x8db2('0x2b')]['find']({'where':{'uniqueid':_0x4187d6[_0x8db2('0x46')]['id'],'UserId':{'$or':[null,_0x4187d6[_0x8db2('0x50')]['id']]}}})['then'](handleEntityNotFound(_0x426ae0,null))[_0x8db2('0x24')](saveUpdates(_0x4187d6[_0x8db2('0x4e')],null))[_0x8db2('0x24')](respondWithResult(_0x426ae0,null))['catch'](handleError(_0x426ae0,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe3aa=['VoiceCallReport','report_call','uniqueid','util','../../config/logger','api','bluebird','request-promise','path','./voiceCallReport.attributes','exports','define'];(function(_0x2e0338,_0x317189){var _0x3f4266=function(_0x397f06){while(--_0x397f06){_0x2e0338['push'](_0x2e0338['shift']());}};_0x3f4266(++_0x317189);}(_0xe3aa,0x9f));var _0xae3a=function(_0x2cbffb,_0x480e7a){_0x2cbffb=_0x2cbffb-0x0;var _0x2fe809=_0xe3aa[_0x2cbffb];return _0x2fe809;};'use strict';var _=require('lodash');var util=require(_0xae3a('0x0'));var logger=require(_0xae3a('0x1'))(_0xae3a('0x2'));var moment=require('moment');var BPromise=require(_0xae3a('0x3'));var rp=require(_0xae3a('0x4'));var fs=require('fs');var path=require(_0xae3a('0x5'));var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require(_0xae3a('0x6'));module[_0xae3a('0x7')]=function(_0x2a2a26,_0x3f39dc){return _0x2a2a26[_0xae3a('0x8')](_0xae3a('0x9'),attributes,{'tableName':_0xae3a('0xa'),'paranoid':![],'indexes':[{'fields':[_0xae3a('0xb')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xa0dd=['path','rimraf','../../config/environment','define','VoiceCallReport','report_call','lodash','util','../../config/logger','api','moment','bluebird','request-promise'];(function(_0xe1dfb3,_0x269c47){var _0x1e469f=function(_0x7b6ce1){while(--_0x7b6ce1){_0xe1dfb3['push'](_0xe1dfb3['shift']());}};_0x1e469f(++_0x269c47);}(_0xa0dd,0xc9));var _0xda0d=function(_0x1f88ec,_0x50d321){_0x1f88ec=_0x1f88ec-0x0;var _0x24abd0=_0xa0dd[_0x1f88ec];return _0x24abd0;};'use strict';var _=require(_0xda0d('0x0'));var util=require(_0xda0d('0x1'));var logger=require(_0xda0d('0x2'))(_0xda0d('0x3'));var moment=require(_0xda0d('0x4'));var BPromise=require(_0xda0d('0x5'));var rp=require(_0xda0d('0x6'));var fs=require('fs');var path=require(_0xda0d('0x7'));var rimraf=require(_0xda0d('0x8'));var config=require(_0xda0d('0x9'));var attributes=require('./voiceCallReport.attributes');module['exports']=function(_0xa8ac08,_0x27d247){return _0xa8ac08[_0xda0d('0xa')](_0xda0d('0xb'),attributes,{'tableName':_0xda0d('0xc'),'paranoid':![],'indexes':[{'fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xea03=['create','body','UpdateVoiceCallReport','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','then','info','VoiceCallReport,\x20%s,\x20%s','request\x20sent','debug','VoiceCallReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','GetVoiceCallReport','findAll','options','raw','where','attributes','limit','include','map','model','catch','CreateVoiceCallReport','VoiceCallReport'];(function(_0x393180,_0x52ac8e){var _0x240355=function(_0x22f269){while(--_0x22f269){_0x393180['push'](_0x393180['shift']());}};_0x240355(++_0x52ac8e);}(_0xea03,0x16b));var _0x3ea0=function(_0x4b634f,_0x4c0372){_0x4b634f=_0x4b634f-0x0;var _0x302e3c=_0xea03[_0x4b634f];return _0x302e3c;};'use strict';var _=require(_0x3ea0('0x0'));var util=require(_0x3ea0('0x1'));var moment=require('moment');var BPromise=require(_0x3ea0('0x2'));var rs=require(_0x3ea0('0x3'));var fs=require('fs');var Redis=require(_0x3ea0('0x4'));var db=require(_0x3ea0('0x5'))['db'];var utils=require(_0x3ea0('0x6'));var logger=require(_0x3ea0('0x7'))(_0x3ea0('0x8'));var config=require(_0x3ea0('0x9'));var jayson=require(_0x3ea0('0xa'));var client=jayson[_0x3ea0('0xb')][_0x3ea0('0xc')]({'port':0x232a});function respondWithRpcPromise(_0x57972f,_0x25318b,_0x249579){return new BPromise(function(_0x42ca6c,_0x2f197a){return client['request'](_0x57972f,_0x249579)[_0x3ea0('0xd')](function(_0x3e7e2a){logger[_0x3ea0('0xe')](_0x3ea0('0xf'),_0x25318b,_0x3ea0('0x10'));logger[_0x3ea0('0x11')](_0x3ea0('0x12'),_0x25318b,'request\x20sent',JSON[_0x3ea0('0x13')](_0x3e7e2a));if(_0x3e7e2a[_0x3ea0('0x14')]){if(_0x3e7e2a[_0x3ea0('0x14')][_0x3ea0('0x15')]===0x1f4){logger[_0x3ea0('0x14')]('VoiceCallReport,\x20%s,\x20%s',_0x25318b,_0x3e7e2a['error'][_0x3ea0('0x16')]);return _0x2f197a(_0x3e7e2a[_0x3ea0('0x14')]['message']);}logger[_0x3ea0('0x14')]('VoiceCallReport,\x20%s,\x20%s',_0x25318b,_0x3e7e2a[_0x3ea0('0x14')]['message']);return _0x42ca6c(_0x3e7e2a[_0x3ea0('0x14')][_0x3ea0('0x16')]);}else{logger[_0x3ea0('0xe')]('VoiceCallReport,\x20%s,\x20%s',_0x25318b,_0x3ea0('0x10'));_0x42ca6c(_0x3e7e2a[_0x3ea0('0x17')][_0x3ea0('0x16')]);}})['catch'](function(_0x1b3f69){logger[_0x3ea0('0x14')]('VoiceCallReport,\x20%s,\x20%s',_0x25318b,_0x1b3f69);_0x2f197a(_0x1b3f69);});});}exports[_0x3ea0('0x18')]=function(_0x4e1a44){var _0x4543bf=this;return new Promise(function(_0x223a6a,_0x5c7738){return db['VoiceCallReport'][_0x3ea0('0x19')]({'raw':_0x4e1a44[_0x3ea0('0x1a')]?_0x4e1a44['options'][_0x3ea0('0x1b')]===undefined?!![]:![]:!![],'where':_0x4e1a44['options']?_0x4e1a44[_0x3ea0('0x1a')][_0x3ea0('0x1c')]||null:null,'attributes':_0x4e1a44[_0x3ea0('0x1a')]?_0x4e1a44['options'][_0x3ea0('0x1d')]||null:null,'limit':_0x4e1a44['options']?_0x4e1a44[_0x3ea0('0x1a')][_0x3ea0('0x1e')]||null:null,'include':_0x4e1a44[_0x3ea0('0x1a')]?_0x4e1a44['options'][_0x3ea0('0x1f')]?_[_0x3ea0('0x20')](_0x4e1a44['options'][_0x3ea0('0x1f')],function(_0x24d54c){return{'model':db[_0x24d54c['model']],'as':_0x24d54c['as'],'attributes':_0x24d54c[_0x3ea0('0x1d')],'include':_0x24d54c[_0x3ea0('0x1f')]?_['map'](_0x24d54c[_0x3ea0('0x1f')],function(_0x573581){return{'model':db[_0x573581[_0x3ea0('0x21')]],'as':_0x573581['as'],'attributes':_0x573581['attributes'],'include':_0x573581[_0x3ea0('0x1f')]?_['map'](_0x573581[_0x3ea0('0x1f')],function(_0x13cbd0){return{'model':db[_0x13cbd0[_0x3ea0('0x21')]],'as':_0x13cbd0['as'],'attributes':_0x13cbd0[_0x3ea0('0x1d')]};}):[]};}):[]};}):[]:[]})[_0x3ea0('0xd')](function(_0x1fd7eb){logger[_0x3ea0('0xe')](_0x3ea0('0x18'),_0x4e1a44);logger[_0x3ea0('0x11')](_0x3ea0('0x18'),_0x4e1a44,JSON[_0x3ea0('0x13')](_0x1fd7eb));_0x223a6a(_0x1fd7eb);})[_0x3ea0('0x22')](function(_0x3bec47){logger['error']('GetVoiceCallReport',_0x3bec47[_0x3ea0('0x16')],_0x4e1a44);_0x5c7738(_0x4543bf[_0x3ea0('0x14')](0x1f4,_0x3bec47[_0x3ea0('0x16')]));});});};exports[_0x3ea0('0x23')]=function(_0x415c5e){var _0x170425=this;return new Promise(function(_0x4f4c60,_0x2e8276){return db[_0x3ea0('0x24')][_0x3ea0('0x25')](_0x415c5e[_0x3ea0('0x26')],{'raw':_0x415c5e[_0x3ea0('0x1a')]?_0x415c5e['options']['raw']===undefined?!![]:![]:!![]})[_0x3ea0('0xd')](function(_0xb0cd1f){logger[_0x3ea0('0xe')]('CreateVoiceCallReport',_0x415c5e);logger[_0x3ea0('0x11')](_0x3ea0('0x23'),_0x415c5e,JSON[_0x3ea0('0x13')](_0xb0cd1f));_0x4f4c60(_0xb0cd1f);})[_0x3ea0('0x22')](function(_0x5710e3){logger[_0x3ea0('0x14')](_0x3ea0('0x23'),_0x5710e3['message'],_0x415c5e);_0x2e8276(_0x170425['error'](0x1f4,_0x5710e3[_0x3ea0('0x16')]));});});};exports[_0x3ea0('0x27')]=function(_0x15e993){var _0x549522=this;return new Promise(function(_0xd8f722,_0x42a71d){return db[_0x3ea0('0x24')]['update'](_0x15e993[_0x3ea0('0x26')],{'raw':_0x15e993['options']?_0x15e993[_0x3ea0('0x1a')][_0x3ea0('0x1b')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x15e993[_0x3ea0('0x1a')]?_0x15e993[_0x3ea0('0x1a')]['where']||null:null,'attributes':_0x15e993[_0x3ea0('0x1a')]?_0x15e993[_0x3ea0('0x1a')][_0x3ea0('0x1d')]||null:null,'limit':_0x15e993[_0x3ea0('0x1a')]?_0x15e993[_0x3ea0('0x1a')][_0x3ea0('0x1e')]||null:null})[_0x3ea0('0xd')](function(_0x4d2e1c){logger[_0x3ea0('0xe')](_0x3ea0('0x27'),_0x15e993);logger[_0x3ea0('0x11')]('UpdateVoiceCallReport',_0x15e993,JSON[_0x3ea0('0x13')](_0x4d2e1c));_0xd8f722(_0x4d2e1c);})[_0x3ea0('0x22')](function(_0x5063f6){logger[_0x3ea0('0x14')](_0x3ea0('0x27'),_0x5063f6[_0x3ea0('0x16')],_0x15e993);_0x42a71d(_0x549522[_0x3ea0('0x14')](0x1f4,_0x5063f6[_0x3ea0('0x16')]));});});};
\ No newline at end of file
+var _0xdf14=['client','http','request','then','info','VoiceCallReport,\x20%s,\x20%s','request\x20sent','debug','VoiceCallReport,\x20%s,\x20%s,\x20%s','stringify','error','message','result','GetVoiceCallReport','VoiceCallReport','findAll','options','raw','where','attributes','limit','include','map','model','CreateVoiceCallReport','create','body','catch','UpdateVoiceCallReport','update','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment'];(function(_0x150469,_0x5ec8a2){var _0x110773=function(_0x3c8448){while(--_0x3c8448){_0x150469['push'](_0x150469['shift']());}};_0x110773(++_0x5ec8a2);}(_0xdf14,0x93));var _0x4df1=function(_0x12a96f,_0x5ab3bd){_0x12a96f=_0x12a96f-0x0;var _0x32b4f2=_0xdf14[_0x12a96f];return _0x32b4f2;};'use strict';var _=require(_0x4df1('0x0'));var util=require(_0x4df1('0x1'));var moment=require(_0x4df1('0x2'));var BPromise=require('bluebird');var rs=require(_0x4df1('0x3'));var fs=require('fs');var Redis=require(_0x4df1('0x4'));var db=require(_0x4df1('0x5'))['db'];var utils=require(_0x4df1('0x6'));var logger=require('../../config/logger')(_0x4df1('0x7'));var config=require(_0x4df1('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x4df1('0x9')][_0x4df1('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x324468,_0x1202eb,_0x5609cd){return new BPromise(function(_0x2cc870,_0x5178e3){return client[_0x4df1('0xb')](_0x324468,_0x5609cd)[_0x4df1('0xc')](function(_0x468fdd){logger[_0x4df1('0xd')](_0x4df1('0xe'),_0x1202eb,_0x4df1('0xf'));logger[_0x4df1('0x10')](_0x4df1('0x11'),_0x1202eb,_0x4df1('0xf'),JSON[_0x4df1('0x12')](_0x468fdd));if(_0x468fdd['error']){if(_0x468fdd[_0x4df1('0x13')]['code']===0x1f4){logger[_0x4df1('0x13')](_0x4df1('0xe'),_0x1202eb,_0x468fdd[_0x4df1('0x13')]['message']);return _0x5178e3(_0x468fdd[_0x4df1('0x13')][_0x4df1('0x14')]);}logger['error'](_0x4df1('0xe'),_0x1202eb,_0x468fdd['error'][_0x4df1('0x14')]);return _0x2cc870(_0x468fdd[_0x4df1('0x13')]['message']);}else{logger[_0x4df1('0xd')]('VoiceCallReport,\x20%s,\x20%s',_0x1202eb,'request\x20sent');_0x2cc870(_0x468fdd[_0x4df1('0x15')][_0x4df1('0x14')]);}})['catch'](function(_0x14cd17){logger[_0x4df1('0x13')](_0x4df1('0xe'),_0x1202eb,_0x14cd17);_0x5178e3(_0x14cd17);});});}exports[_0x4df1('0x16')]=function(_0x48e379){var _0x88cae3=this;return new Promise(function(_0x2aac81,_0x5a4bfc){return db[_0x4df1('0x17')][_0x4df1('0x18')]({'raw':_0x48e379['options']?_0x48e379[_0x4df1('0x19')][_0x4df1('0x1a')]===undefined?!![]:![]:!![],'where':_0x48e379[_0x4df1('0x19')]?_0x48e379[_0x4df1('0x19')][_0x4df1('0x1b')]||null:null,'attributes':_0x48e379['options']?_0x48e379[_0x4df1('0x19')][_0x4df1('0x1c')]||null:null,'limit':_0x48e379[_0x4df1('0x19')]?_0x48e379[_0x4df1('0x19')][_0x4df1('0x1d')]||null:null,'include':_0x48e379[_0x4df1('0x19')]?_0x48e379[_0x4df1('0x19')][_0x4df1('0x1e')]?_[_0x4df1('0x1f')](_0x48e379[_0x4df1('0x19')][_0x4df1('0x1e')],function(_0x302f64){return{'model':db[_0x302f64['model']],'as':_0x302f64['as'],'attributes':_0x302f64[_0x4df1('0x1c')],'include':_0x302f64[_0x4df1('0x1e')]?_[_0x4df1('0x1f')](_0x302f64[_0x4df1('0x1e')],function(_0x30466b){return{'model':db[_0x30466b[_0x4df1('0x20')]],'as':_0x30466b['as'],'attributes':_0x30466b['attributes'],'include':_0x30466b[_0x4df1('0x1e')]?_[_0x4df1('0x1f')](_0x30466b['include'],function(_0x275fd1){return{'model':db[_0x275fd1['model']],'as':_0x275fd1['as'],'attributes':_0x275fd1[_0x4df1('0x1c')]};}):[]};}):[]};}):[]:[]})[_0x4df1('0xc')](function(_0x137e14){logger[_0x4df1('0xd')](_0x4df1('0x16'),_0x48e379);logger['debug'](_0x4df1('0x16'),_0x48e379,JSON['stringify'](_0x137e14));_0x2aac81(_0x137e14);})['catch'](function(_0x1190bb){logger[_0x4df1('0x13')]('GetVoiceCallReport',_0x1190bb[_0x4df1('0x14')],_0x48e379);_0x5a4bfc(_0x88cae3[_0x4df1('0x13')](0x1f4,_0x1190bb[_0x4df1('0x14')]));});});};exports[_0x4df1('0x21')]=function(_0x5fc06d){var _0x203624=this;return new Promise(function(_0x58c37d,_0x43e7d2){return db['VoiceCallReport'][_0x4df1('0x22')](_0x5fc06d[_0x4df1('0x23')],{'raw':_0x5fc06d['options']?_0x5fc06d[_0x4df1('0x19')]['raw']===undefined?!![]:![]:!![]})[_0x4df1('0xc')](function(_0x3d27ca){logger[_0x4df1('0xd')]('CreateVoiceCallReport',_0x5fc06d);logger[_0x4df1('0x10')]('CreateVoiceCallReport',_0x5fc06d,JSON[_0x4df1('0x12')](_0x3d27ca));_0x58c37d(_0x3d27ca);})[_0x4df1('0x24')](function(_0x107bee){logger[_0x4df1('0x13')](_0x4df1('0x21'),_0x107bee[_0x4df1('0x14')],_0x5fc06d);_0x43e7d2(_0x203624[_0x4df1('0x13')](0x1f4,_0x107bee[_0x4df1('0x14')]));});});};exports[_0x4df1('0x25')]=function(_0x4b222e){var _0x85af61=this;return new Promise(function(_0x5ec3e5,_0x3774de){return db[_0x4df1('0x17')][_0x4df1('0x26')](_0x4b222e[_0x4df1('0x23')],{'raw':_0x4b222e[_0x4df1('0x19')]?_0x4b222e[_0x4df1('0x19')][_0x4df1('0x1a')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x4b222e[_0x4df1('0x19')]?_0x4b222e['options'][_0x4df1('0x1b')]||null:null,'attributes':_0x4b222e['options']?_0x4b222e[_0x4df1('0x19')][_0x4df1('0x1c')]||null:null,'limit':_0x4b222e[_0x4df1('0x19')]?_0x4b222e['options'][_0x4df1('0x1d')]||null:null})[_0x4df1('0xc')](function(_0x247780){logger[_0x4df1('0xd')]('UpdateVoiceCallReport',_0x4b222e);logger[_0x4df1('0x10')](_0x4df1('0x25'),_0x4b222e,JSON[_0x4df1('0x12')](_0x247780));_0x5ec3e5(_0x247780);})[_0x4df1('0x24')](function(_0x367893){logger[_0x4df1('0x13')](_0x4df1('0x25'),_0x367893[_0x4df1('0x14')],_0x4b222e);_0x3774de(_0x85af61[_0x4df1('0x13')](0x1f4,_0x367893[_0x4df1('0x14')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x84e1=['Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','show','post','create','put','update','delete','/:id','destroy','exports','multer','path','connect-timeout','express'];(function(_0x70f4ee,_0x44afc1){var _0x2387fa=function(_0x4fd7c3){while(--_0x4fd7c3){_0x70f4ee['push'](_0x70f4ee['shift']());}};_0x2387fa(++_0x44afc1);}(_0x84e1,0x1df));var _0x184e=function(_0x8c43de,_0x90ff31){_0x8c43de=_0x8c43de-0x0;var _0xa6591b=_0x84e1[_0x8c43de];return _0xa6591b;};'use strict';var multer=require(_0x184e('0x0'));var util=require('util');var path=require(_0x184e('0x1'));var timeout=require(_0x184e('0x2'));var express=require(_0x184e('0x3'));var router=express[_0x184e('0x4')]();var fs_extra=require(_0x184e('0x5'));var auth=require(_0x184e('0x6'));var interaction=require(_0x184e('0x7'));var config=require(_0x184e('0x8'));var controller=require('./voiceChanSpy.controller');router[_0x184e('0x9')]('/',auth[_0x184e('0xa')](),controller[_0x184e('0xb')]);router[_0x184e('0x9')]('/:id',auth[_0x184e('0xa')](),controller[_0x184e('0xc')]);router[_0x184e('0xd')]('/',auth['isAuthenticated'](),controller[_0x184e('0xe')]);router[_0x184e('0xf')]('/:id',auth[_0x184e('0xa')](),controller[_0x184e('0x10')]);router[_0x184e('0x11')](_0x184e('0x12'),auth[_0x184e('0xa')](),controller[_0x184e('0x13')]);module[_0x184e('0x14')]=router;
\ No newline at end of file
+var _0x4ff3=['Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','isAuthenticated','index','get','show','post','create','put','/:id','update','delete','destroy','exports','multer','util','path','express'];(function(_0x25e7cb,_0x3579b7){var _0x375d92=function(_0xe8cf3b){while(--_0xe8cf3b){_0x25e7cb['push'](_0x25e7cb['shift']());}};_0x375d92(++_0x3579b7);}(_0x4ff3,0x1b5));var _0x34ff=function(_0x347895,_0x5dda9b){_0x347895=_0x347895-0x0;var _0x2d6177=_0x4ff3[_0x347895];return _0x2d6177;};'use strict';var multer=require(_0x34ff('0x0'));var util=require(_0x34ff('0x1'));var path=require(_0x34ff('0x2'));var timeout=require('connect-timeout');var express=require(_0x34ff('0x3'));var router=express[_0x34ff('0x4')]();var fs_extra=require(_0x34ff('0x5'));var auth=require(_0x34ff('0x6'));var interaction=require(_0x34ff('0x7'));var config=require(_0x34ff('0x8'));var controller=require('./voiceChanSpy.controller');router['get']('/',auth[_0x34ff('0x9')](),controller[_0x34ff('0xa')]);router[_0x34ff('0xb')]('/:id',auth[_0x34ff('0x9')](),controller[_0x34ff('0xc')]);router[_0x34ff('0xd')]('/',auth['isAuthenticated'](),controller[_0x34ff('0xe')]);router[_0x34ff('0xf')](_0x34ff('0x10'),auth[_0x34ff('0x9')](),controller[_0x34ff('0x11')]);router[_0x34ff('0x12')](_0x34ff('0x10'),auth[_0x34ff('0x9')](),controller[_0x34ff('0x13')]);module[_0x34ff('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x66d1=['STRING','name','setDataValue','options','getDataValue','BOOLEAN','exports'];(function(_0x1b9c6c,_0x461414){var _0x3a4658=function(_0x16ae62){while(--_0x16ae62){_0x1b9c6c['push'](_0x1b9c6c['shift']());}};_0x3a4658(++_0x461414);}(_0x66d1,0xd1));var _0x166d=function(_0x246115,_0x398123){_0x246115=_0x246115-0x0;var _0x385878=_0x66d1[_0x246115];return _0x385878;};'use strict';var Sequelize=require('sequelize');module[_0x166d('0x0')]={'name':{'type':Sequelize[_0x166d('0x1')]},'prefix':{'type':Sequelize['STRING'],'unique':_0x166d('0x2'),'allowNull':![]},'options':{'type':Sequelize[_0x166d('0x1')],'set':function(_0x578810){this[_0x166d('0x3')](_0x166d('0x4'),_0x578810?_0x578810['join'](''):[]);},'get':function(){return this[_0x166d('0x5')](_0x166d('0x4'))?this[_0x166d('0x5')](_0x166d('0x4'))['split'](''):[];}},'auth':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'password':{'type':Sequelize[_0x166d('0x1')]},'record':{'type':Sequelize[_0x166d('0x6')],'defaultValue':![]},'recordingFormat':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0x166d('0x1')]}};
\ No newline at end of file
+var _0xf929=['STRING','name','setDataValue','options','join','getDataValue','split','BOOLEAN','sequelize','exports'];(function(_0x15ab11,_0x53d371){var _0x404ac1=function(_0x2a9db5){while(--_0x2a9db5){_0x15ab11['push'](_0x15ab11['shift']());}};_0x404ac1(++_0x53d371);}(_0xf929,0x1a2));var _0x9f92=function(_0x43c4db,_0x35d13d){_0x43c4db=_0x43c4db-0x0;var _0x40eb66=_0xf929[_0x43c4db];return _0x40eb66;};'use strict';var Sequelize=require(_0x9f92('0x0'));module[_0x9f92('0x1')]={'name':{'type':Sequelize[_0x9f92('0x2')]},'prefix':{'type':Sequelize['STRING'],'unique':_0x9f92('0x3'),'allowNull':![]},'options':{'type':Sequelize[_0x9f92('0x2')],'set':function(_0x2dfbe0){this[_0x9f92('0x4')](_0x9f92('0x5'),_0x2dfbe0?_0x2dfbe0[_0x9f92('0x6')](''):[]);},'get':function(){return this[_0x9f92('0x7')]('options')?this[_0x9f92('0x7')]('options')[_0x9f92('0x8')](''):[];}},'auth':{'type':Sequelize[_0x9f92('0x9')],'defaultValue':![]},'password':{'type':Sequelize['STRING']},'record':{'type':Sequelize[_0x9f92('0x9')],'defaultValue':![]},'recordingFormat':{'type':Sequelize[_0x9f92('0x2')]},'description':{'type':Sequelize[_0x9f92('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xae7b=['model','query','filters','intersection','attributes','fields','length','nolimit','order','sort','where','pick','filter','merge','includeAll','include','findAll','rows','catch','show','params','keys','options','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','body','eml-format','rimraf','zip-dir','moment','bluebird','mustache','util','to-csv','ejs','fs-extra','squel','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','status','end','offset','undefined','limit','count','set','Content-Range','json','apply','reject','save','update','then','get','ChanSpies','UserProfileResource','destroy','error','stack','name','send','index','map','VoiceChanSpy','rawAttributes','fieldName','type','key'];(function(_0x2d7f0e,_0x3e6fbd){var _0x110b07=function(_0x557b00){while(--_0x557b00){_0x2d7f0e['push'](_0x2d7f0e['shift']());}};_0x110b07(++_0x3e6fbd);}(_0xae7b,0xbe));var _0xbae7=function(_0xf75663,_0x181505){_0xf75663=_0xf75663-0x0;var _0x38e6e9=_0xae7b[_0xf75663];return _0x38e6e9;};'use strict';var emlformat=require(_0xbae7('0x0'));var rimraf=require(_0xbae7('0x1'));var zipdir=require(_0xbae7('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xbae7('0x3'));var BPromise=require(_0xbae7('0x4'));var Mustache=require(_0xbae7('0x5'));var util=require(_0xbae7('0x6'));var path=require('path');var sox=require('sox');var csv=require(_0xbae7('0x7'));var ejs=require(_0xbae7('0x8'));var fs=require('fs');var fs_extra=require(_0xbae7('0x9'));var _=require('lodash');var squel=require(_0xbae7('0xa'));var crypto=require('crypto');var jsforce=require(_0xbae7('0xb'));var deskjs=require(_0xbae7('0xc'));var toCsv=require(_0xbae7('0x7'));var querystring=require('querystring');var Papa=require(_0xbae7('0xd'));var Redis=require('ioredis');var authService=require(_0xbae7('0xe'));var qs=require(_0xbae7('0xf'));var as=require(_0xbae7('0x10'));var hardwareService=require(_0xbae7('0x11'));var logger=require('../../config/logger')(_0xbae7('0x12'));var utils=require(_0xbae7('0x13'));var config=require('../../config/environment');var licenseUtil=require(_0xbae7('0x14'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x3d17ae,_0x4090a1){_0x4090a1=_0x4090a1||0xcc;return function(_0x5b1abe){if(_0x5b1abe){return _0x3d17ae['sendStatus'](_0x4090a1);}return _0x3d17ae[_0xbae7('0x15')](_0x4090a1)[_0xbae7('0x16')]();};}function respondWithResult(_0x43e4ca,_0x25d1a){_0x25d1a=_0x25d1a||0xc8;return function(_0x4cc0a9){if(_0x4cc0a9){return _0x43e4ca[_0xbae7('0x15')](_0x25d1a)['json'](_0x4cc0a9);}};}function respondWithFilteredResult(_0x5aae99,_0x249669){return function(_0xb272c4){if(_0xb272c4){var _0x1b9ee1=typeof _0x249669[_0xbae7('0x17')]===_0xbae7('0x18')&&typeof _0x249669[_0xbae7('0x19')]==='undefined';var _0x1b2949=_0xb272c4[_0xbae7('0x1a')];var _0x99d88=_0x1b9ee1?0x0:_0x249669[_0xbae7('0x17')];var _0x1fc9fb=_0x1b9ee1?_0xb272c4['count']:_0x249669['offset']+_0x249669['limit'];var _0xa9ed79;if(_0x1fc9fb>=_0x1b2949){_0x1fc9fb=_0x1b2949;_0xa9ed79=0xc8;}else{_0xa9ed79=0xce;}_0x5aae99[_0xbae7('0x15')](_0xa9ed79);return _0x5aae99[_0xbae7('0x1b')](_0xbae7('0x1c'),_0x99d88+'-'+_0x1fc9fb+'/'+_0x1b2949)[_0xbae7('0x1d')](_0xb272c4);}return null;};}function patchUpdates(_0x519980){return function(_0xd87dc2){try{jsonpatch[_0xbae7('0x1e')](_0xd87dc2,_0x519980,!![]);}catch(_0x34a82b){return BPromise[_0xbae7('0x1f')](_0x34a82b);}return _0xd87dc2[_0xbae7('0x20')]();};}function saveUpdates(_0x502f06,_0x32d772){return function(_0x3e4569){if(_0x3e4569){return _0x3e4569[_0xbae7('0x21')](_0x502f06)[_0xbae7('0x22')](function(_0xb5d7f3){return _0xb5d7f3;});}return null;};}function removeEntity(_0x384ea6,_0x32f8eb){return function(_0x5c0245){if(_0x5c0245){return _0x5c0245['destroy']()[_0xbae7('0x22')](function(){var _0x3bedda=_0x5c0245[_0xbae7('0x23')]({'plain':!![]});var _0x375df5=_0xbae7('0x24');return db[_0xbae7('0x25')][_0xbae7('0x26')]({'where':{'type':_0x375df5,'resourceId':_0x3bedda['id']}})[_0xbae7('0x22')](function(){return _0x5c0245;});})[_0xbae7('0x22')](function(){_0x384ea6[_0xbae7('0x15')](0xcc)[_0xbae7('0x16')]();});}};}function handleEntityNotFound(_0x3523f0,_0x47eb5d){return function(_0x5865f4){if(!_0x5865f4){_0x3523f0['sendStatus'](0x194);}return _0x5865f4;};}function handleError(_0xa60a1c,_0x105a50){_0x105a50=_0x105a50||0x1f4;return function(_0x203848){logger[_0xbae7('0x27')](_0x203848[_0xbae7('0x28')]);if(_0x203848[_0xbae7('0x29')]){delete _0x203848['name'];}_0xa60a1c['status'](_0x105a50)[_0xbae7('0x2a')](_0x203848);};}exports[_0xbae7('0x2b')]=function(_0x34feff,_0x258c08){var _0xcee3dd={},_0x2ddce5={},_0x590cfa={'count':0x0,'rows':[]};var _0x3ba648=_[_0xbae7('0x2c')](db[_0xbae7('0x2d')][_0xbae7('0x2e')],function(_0x467949){return{'name':_0x467949[_0xbae7('0x2f')],'type':_0x467949[_0xbae7('0x30')][_0xbae7('0x31')]};});_0x2ddce5[_0xbae7('0x32')]=_[_0xbae7('0x2c')](_0x3ba648,_0xbae7('0x29'));_0x2ddce5[_0xbae7('0x33')]=_['keys'](_0x34feff[_0xbae7('0x33')]);_0x2ddce5[_0xbae7('0x34')]=_[_0xbae7('0x35')](_0x2ddce5['model'],_0x2ddce5[_0xbae7('0x33')]);_0xcee3dd[_0xbae7('0x36')]=_['intersection'](_0x2ddce5[_0xbae7('0x32')],qs[_0xbae7('0x37')](_0x34feff[_0xbae7('0x33')][_0xbae7('0x37')]));_0xcee3dd[_0xbae7('0x36')]=_0xcee3dd[_0xbae7('0x36')][_0xbae7('0x38')]?_0xcee3dd[_0xbae7('0x36')]:_0x2ddce5[_0xbae7('0x32')];if(!_0x34feff['query']['hasOwnProperty'](_0xbae7('0x39'))){_0xcee3dd[_0xbae7('0x19')]=qs['limit'](_0x34feff[_0xbae7('0x33')][_0xbae7('0x19')]);_0xcee3dd[_0xbae7('0x17')]=qs[_0xbae7('0x17')](_0x34feff[_0xbae7('0x33')][_0xbae7('0x17')]);}_0xcee3dd[_0xbae7('0x3a')]=qs[_0xbae7('0x3b')](_0x34feff['query']['sort']);_0xcee3dd[_0xbae7('0x3c')]=qs['filters'](_[_0xbae7('0x3d')](_0x34feff['query'],_0x2ddce5[_0xbae7('0x34')]),_0x3ba648);if(_0x34feff[_0xbae7('0x33')][_0xbae7('0x3e')]){_0xcee3dd[_0xbae7('0x3c')]=_[_0xbae7('0x3f')](_0xcee3dd[_0xbae7('0x3c')],{'$or':_['map'](_0x3ba648,function(_0x16659d){if(_0x16659d['type']!=='VIRTUAL'){var _0x29e238={};_0x29e238[_0x16659d[_0xbae7('0x29')]]={'$like':'%'+_0x34feff[_0xbae7('0x33')][_0xbae7('0x3e')]+'%'};return _0x29e238;}})});}_0xcee3dd=_[_0xbae7('0x3f')]({},_0xcee3dd,_0x34feff['options']);var _0x151c1a={'where':_0xcee3dd[_0xbae7('0x3c')]};return db[_0xbae7('0x2d')][_0xbae7('0x1a')](_0x151c1a)[_0xbae7('0x22')](function(_0x5047b0){_0x590cfa[_0xbae7('0x1a')]=_0x5047b0;if(_0x34feff['query'][_0xbae7('0x40')]){_0xcee3dd[_0xbae7('0x41')]=[{'all':!![]}];}return db[_0xbae7('0x2d')][_0xbae7('0x42')](_0xcee3dd);})[_0xbae7('0x22')](function(_0x57f345){_0x590cfa[_0xbae7('0x43')]=_0x57f345;return _0x590cfa;})[_0xbae7('0x22')](respondWithFilteredResult(_0x258c08,_0xcee3dd))[_0xbae7('0x44')](handleError(_0x258c08,null));};exports[_0xbae7('0x45')]=function(_0x2c4a98,_0x15cb3c){var _0x300ffe={'raw':![],'where':{'id':_0x2c4a98[_0xbae7('0x46')]['id']}},_0x5b5874={};_0x5b5874[_0xbae7('0x32')]=_[_0xbae7('0x47')](db[_0xbae7('0x2d')][_0xbae7('0x2e')]);_0x5b5874[_0xbae7('0x33')]=_['keys'](_0x2c4a98['query']);_0x5b5874[_0xbae7('0x34')]=_[_0xbae7('0x35')](_0x5b5874['model'],_0x5b5874[_0xbae7('0x33')]);_0x300ffe[_0xbae7('0x36')]=_[_0xbae7('0x35')](_0x5b5874[_0xbae7('0x32')],qs[_0xbae7('0x37')](_0x2c4a98['query'][_0xbae7('0x37')]));_0x300ffe[_0xbae7('0x36')]=_0x300ffe[_0xbae7('0x36')][_0xbae7('0x38')]?_0x300ffe['attributes']:_0x5b5874[_0xbae7('0x32')];if(_0x2c4a98[_0xbae7('0x33')][_0xbae7('0x40')]){_0x300ffe[_0xbae7('0x41')]=[{'all':!![]}];}_0x300ffe=_['merge']({},_0x300ffe,_0x2c4a98[_0xbae7('0x48')]);return db[_0xbae7('0x2d')][_0xbae7('0x49')](_0x300ffe)[_0xbae7('0x22')](handleEntityNotFound(_0x15cb3c,null))['then'](respondWithResult(_0x15cb3c,null))[_0xbae7('0x44')](handleError(_0x15cb3c,null));};exports[_0xbae7('0x4a')]=function(_0xb6df1f,_0x363b7b){return db[_0xbae7('0x2d')]['create'](_0xb6df1f['body'],{})['then'](function(_0xf16c98){var _0xdfffb2=_0xb6df1f[_0xbae7('0x4b')][_0xbae7('0x23')]({'plain':!![]});if(!_0xdfffb2)throw new Error(_0xbae7('0x4c'));if(_0xdfffb2['role']==='user'){var _0x1bb00a=_0xf16c98[_0xbae7('0x23')]({'plain':!![]});var _0x45a4c7='ChanSpies';return db[_0xbae7('0x4d')][_0xbae7('0x49')]({'where':{'name':_0x45a4c7,'userProfileId':_0xdfffb2[_0xbae7('0x4e')]},'raw':!![]})[_0xbae7('0x22')](function(_0x405b3e){if(_0x405b3e&&_0x405b3e['autoAssociation']===0x0){return db[_0xbae7('0x25')]['create']({'name':_0x1bb00a[_0xbae7('0x29')],'resourceId':_0x1bb00a['id'],'type':_0x405b3e[_0xbae7('0x29')],'sectionId':_0x405b3e['id']},{})[_0xbae7('0x22')](function(){return _0xf16c98;});}else{return _0xf16c98;}})[_0xbae7('0x44')](function(_0x384fbc){logger[_0xbae7('0x27')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x384fbc);throw _0x384fbc;});}return _0xf16c98;})[_0xbae7('0x22')](respondWithResult(_0x363b7b,0xc9))[_0xbae7('0x44')](handleError(_0x363b7b,null));};exports['update']=function(_0x4cbcda,_0x570a02){if(_0x4cbcda['body']['id']){delete _0x4cbcda[_0xbae7('0x4f')]['id'];}return db[_0xbae7('0x2d')][_0xbae7('0x49')]({'where':{'id':_0x4cbcda[_0xbae7('0x46')]['id']}})[_0xbae7('0x22')](handleEntityNotFound(_0x570a02,null))[_0xbae7('0x22')](saveUpdates(_0x4cbcda['body'],null))[_0xbae7('0x22')](respondWithResult(_0x570a02,null))[_0xbae7('0x44')](handleError(_0x570a02,null));};exports[_0xbae7('0x26')]=function(_0x312df7,_0x49f170){return db[_0xbae7('0x2d')][_0xbae7('0x49')]({'where':{'id':_0x312df7['params']['id']}})[_0xbae7('0x22')](handleEntityNotFound(_0x49f170,null))[_0xbae7('0x22')](removeEntity(_0x49f170,null))['catch'](handleError(_0x49f170,null));};
\ No newline at end of file
+var _0xec56=['eml-format','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','get','UserProfileResource','error','stack','name','send','index','map','rawAttributes','fieldName','type','keys','query','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','sort','where','filters','pick','filter','merge','VIRTUAL','options','VoiceChanSpy','include','findAll','rows','catch','show','params','includeAll','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body'];(function(_0x2d89ce,_0x24d58d){var _0x3fad10=function(_0xad0ec){while(--_0xad0ec){_0x2d89ce['push'](_0x2d89ce['shift']());}};_0x3fad10(++_0x24d58d);}(_0xec56,0x1bd));var _0x6ec5=function(_0x3eabf3,_0x72a6ac){_0x3eabf3=_0x3eabf3-0x0;var _0x3d01e8=_0xec56[_0x3eabf3];return _0x3d01e8;};'use strict';var emlformat=require(_0x6ec5('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x6ec5('0x1'));var rp=require(_0x6ec5('0x2'));var moment=require(_0x6ec5('0x3'));var BPromise=require(_0x6ec5('0x4'));var Mustache=require(_0x6ec5('0x5'));var util=require(_0x6ec5('0x6'));var path=require(_0x6ec5('0x7'));var sox=require(_0x6ec5('0x8'));var csv=require(_0x6ec5('0x9'));var ejs=require(_0x6ec5('0xa'));var fs=require('fs');var fs_extra=require(_0x6ec5('0xb'));var _=require(_0x6ec5('0xc'));var squel=require(_0x6ec5('0xd'));var crypto=require(_0x6ec5('0xe'));var jsforce=require(_0x6ec5('0xf'));var deskjs=require(_0x6ec5('0x10'));var toCsv=require(_0x6ec5('0x9'));var querystring=require(_0x6ec5('0x11'));var Papa=require(_0x6ec5('0x12'));var Redis=require('ioredis');var authService=require(_0x6ec5('0x13'));var qs=require(_0x6ec5('0x14'));var as=require(_0x6ec5('0x15'));var hardwareService=require(_0x6ec5('0x16'));var logger=require(_0x6ec5('0x17'))(_0x6ec5('0x18'));var utils=require(_0x6ec5('0x19'));var config=require('../../config/environment');var licenseUtil=require(_0x6ec5('0x1a'));var db=require(_0x6ec5('0x1b'))['db'];function respondWithStatusCode(_0x2b1f61,_0xb04ab6){_0xb04ab6=_0xb04ab6||0xcc;return function(_0x135aaf){if(_0x135aaf){return _0x2b1f61[_0x6ec5('0x1c')](_0xb04ab6);}return _0x2b1f61[_0x6ec5('0x1d')](_0xb04ab6)[_0x6ec5('0x1e')]();};}function respondWithResult(_0x5166ad,_0x3ed07a){_0x3ed07a=_0x3ed07a||0xc8;return function(_0x4d1510){if(_0x4d1510){return _0x5166ad[_0x6ec5('0x1d')](_0x3ed07a)[_0x6ec5('0x1f')](_0x4d1510);}};}function respondWithFilteredResult(_0x4a4e3c,_0x9fc0e7){return function(_0xdc0b10){if(_0xdc0b10){var _0x4d09fe=typeof _0x9fc0e7[_0x6ec5('0x20')]===_0x6ec5('0x21')&&typeof _0x9fc0e7[_0x6ec5('0x22')]===_0x6ec5('0x21');var _0x23b3e3=_0xdc0b10[_0x6ec5('0x23')];var _0x1dbee9=_0x4d09fe?0x0:_0x9fc0e7[_0x6ec5('0x20')];var _0x2608c0=_0x4d09fe?_0xdc0b10[_0x6ec5('0x23')]:_0x9fc0e7[_0x6ec5('0x20')]+_0x9fc0e7[_0x6ec5('0x22')];var _0x437f0f;if(_0x2608c0>=_0x23b3e3){_0x2608c0=_0x23b3e3;_0x437f0f=0xc8;}else{_0x437f0f=0xce;}_0x4a4e3c[_0x6ec5('0x1d')](_0x437f0f);return _0x4a4e3c[_0x6ec5('0x24')](_0x6ec5('0x25'),_0x1dbee9+'-'+_0x2608c0+'/'+_0x23b3e3)[_0x6ec5('0x1f')](_0xdc0b10);}return null;};}function patchUpdates(_0x4abd5d){return function(_0x272532){try{jsonpatch[_0x6ec5('0x26')](_0x272532,_0x4abd5d,!![]);}catch(_0xd045b){return BPromise[_0x6ec5('0x27')](_0xd045b);}return _0x272532[_0x6ec5('0x28')]();};}function saveUpdates(_0x38a821,_0x18243f){return function(_0x48733b){if(_0x48733b){return _0x48733b[_0x6ec5('0x29')](_0x38a821)[_0x6ec5('0x2a')](function(_0x358d18){return _0x358d18;});}return null;};}function removeEntity(_0x1560c6,_0x57060c){return function(_0x27f631){if(_0x27f631){return _0x27f631[_0x6ec5('0x2b')]()['then'](function(){var _0x2dc0a7=_0x27f631[_0x6ec5('0x2c')]({'plain':!![]});var _0xb4d269='ChanSpies';return db[_0x6ec5('0x2d')][_0x6ec5('0x2b')]({'where':{'type':_0xb4d269,'resourceId':_0x2dc0a7['id']}})[_0x6ec5('0x2a')](function(){return _0x27f631;});})[_0x6ec5('0x2a')](function(){_0x1560c6[_0x6ec5('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x171e2a,_0x267a30){return function(_0x4a9860){if(!_0x4a9860){_0x171e2a[_0x6ec5('0x1c')](0x194);}return _0x4a9860;};}function handleError(_0x3f5ee0,_0x5c8c7d){_0x5c8c7d=_0x5c8c7d||0x1f4;return function(_0x3d36cb){logger[_0x6ec5('0x2e')](_0x3d36cb[_0x6ec5('0x2f')]);if(_0x3d36cb[_0x6ec5('0x30')]){delete _0x3d36cb[_0x6ec5('0x30')];}_0x3f5ee0['status'](_0x5c8c7d)[_0x6ec5('0x31')](_0x3d36cb);};}exports[_0x6ec5('0x32')]=function(_0x24aff9,_0x174164){var _0x3e6d33={},_0x22c3d3={},_0x394132={'count':0x0,'rows':[]};var _0x59a6de=_[_0x6ec5('0x33')](db['VoiceChanSpy'][_0x6ec5('0x34')],function(_0x5c6517){return{'name':_0x5c6517[_0x6ec5('0x35')],'type':_0x5c6517[_0x6ec5('0x36')]['key']};});_0x22c3d3['model']=_[_0x6ec5('0x33')](_0x59a6de,_0x6ec5('0x30'));_0x22c3d3['query']=_[_0x6ec5('0x37')](_0x24aff9[_0x6ec5('0x38')]);_0x22c3d3['filters']=_[_0x6ec5('0x39')](_0x22c3d3[_0x6ec5('0x3a')],_0x22c3d3[_0x6ec5('0x38')]);_0x3e6d33[_0x6ec5('0x3b')]=_[_0x6ec5('0x39')](_0x22c3d3[_0x6ec5('0x3a')],qs[_0x6ec5('0x3c')](_0x24aff9[_0x6ec5('0x38')]['fields']));_0x3e6d33[_0x6ec5('0x3b')]=_0x3e6d33['attributes'][_0x6ec5('0x3d')]?_0x3e6d33[_0x6ec5('0x3b')]:_0x22c3d3[_0x6ec5('0x3a')];if(!_0x24aff9[_0x6ec5('0x38')][_0x6ec5('0x3e')](_0x6ec5('0x3f'))){_0x3e6d33[_0x6ec5('0x22')]=qs[_0x6ec5('0x22')](_0x24aff9[_0x6ec5('0x38')][_0x6ec5('0x22')]);_0x3e6d33[_0x6ec5('0x20')]=qs['offset'](_0x24aff9['query'][_0x6ec5('0x20')]);}_0x3e6d33['order']=qs[_0x6ec5('0x40')](_0x24aff9[_0x6ec5('0x38')][_0x6ec5('0x40')]);_0x3e6d33[_0x6ec5('0x41')]=qs[_0x6ec5('0x42')](_[_0x6ec5('0x43')](_0x24aff9[_0x6ec5('0x38')],_0x22c3d3['filters']),_0x59a6de);if(_0x24aff9[_0x6ec5('0x38')][_0x6ec5('0x44')]){_0x3e6d33[_0x6ec5('0x41')]=_[_0x6ec5('0x45')](_0x3e6d33[_0x6ec5('0x41')],{'$or':_[_0x6ec5('0x33')](_0x59a6de,function(_0x74e78b){if(_0x74e78b[_0x6ec5('0x36')]!==_0x6ec5('0x46')){var _0x53dcd8={};_0x53dcd8[_0x74e78b[_0x6ec5('0x30')]]={'$like':'%'+_0x24aff9['query'][_0x6ec5('0x44')]+'%'};return _0x53dcd8;}})});}_0x3e6d33=_['merge']({},_0x3e6d33,_0x24aff9[_0x6ec5('0x47')]);var _0x45de3c={'where':_0x3e6d33['where']};return db[_0x6ec5('0x48')][_0x6ec5('0x23')](_0x45de3c)[_0x6ec5('0x2a')](function(_0x48c019){_0x394132[_0x6ec5('0x23')]=_0x48c019;if(_0x24aff9[_0x6ec5('0x38')]['includeAll']){_0x3e6d33[_0x6ec5('0x49')]=[{'all':!![]}];}return db[_0x6ec5('0x48')][_0x6ec5('0x4a')](_0x3e6d33);})[_0x6ec5('0x2a')](function(_0x43d858){_0x394132[_0x6ec5('0x4b')]=_0x43d858;return _0x394132;})[_0x6ec5('0x2a')](respondWithFilteredResult(_0x174164,_0x3e6d33))[_0x6ec5('0x4c')](handleError(_0x174164,null));};exports[_0x6ec5('0x4d')]=function(_0x5a7b9c,_0x96340b){var _0x4ee5f5={'raw':![],'where':{'id':_0x5a7b9c[_0x6ec5('0x4e')]['id']}},_0x17cfed={};_0x17cfed[_0x6ec5('0x3a')]=_[_0x6ec5('0x37')](db['VoiceChanSpy'][_0x6ec5('0x34')]);_0x17cfed[_0x6ec5('0x38')]=_['keys'](_0x5a7b9c[_0x6ec5('0x38')]);_0x17cfed['filters']=_[_0x6ec5('0x39')](_0x17cfed[_0x6ec5('0x3a')],_0x17cfed[_0x6ec5('0x38')]);_0x4ee5f5[_0x6ec5('0x3b')]=_['intersection'](_0x17cfed['model'],qs[_0x6ec5('0x3c')](_0x5a7b9c['query'][_0x6ec5('0x3c')]));_0x4ee5f5[_0x6ec5('0x3b')]=_0x4ee5f5[_0x6ec5('0x3b')][_0x6ec5('0x3d')]?_0x4ee5f5[_0x6ec5('0x3b')]:_0x17cfed['model'];if(_0x5a7b9c['query'][_0x6ec5('0x4f')]){_0x4ee5f5[_0x6ec5('0x49')]=[{'all':!![]}];}_0x4ee5f5=_[_0x6ec5('0x45')]({},_0x4ee5f5,_0x5a7b9c[_0x6ec5('0x47')]);return db[_0x6ec5('0x48')][_0x6ec5('0x50')](_0x4ee5f5)[_0x6ec5('0x2a')](handleEntityNotFound(_0x96340b,null))[_0x6ec5('0x2a')](respondWithResult(_0x96340b,null))[_0x6ec5('0x4c')](handleError(_0x96340b,null));};exports[_0x6ec5('0x51')]=function(_0xd265c,_0x1c5e2f){return db[_0x6ec5('0x48')][_0x6ec5('0x51')](_0xd265c['body'],{})[_0x6ec5('0x2a')](function(_0x51709d){var _0x40b9cc=_0xd265c[_0x6ec5('0x52')]['get']({'plain':!![]});if(!_0x40b9cc)throw new Error(_0x6ec5('0x53'));if(_0x40b9cc[_0x6ec5('0x54')]==='user'){var _0x23a64d=_0x51709d[_0x6ec5('0x2c')]({'plain':!![]});var _0x486552='ChanSpies';return db[_0x6ec5('0x55')]['find']({'where':{'name':_0x486552,'userProfileId':_0x40b9cc['userProfileId']},'raw':!![]})[_0x6ec5('0x2a')](function(_0x101966){if(_0x101966&&_0x101966[_0x6ec5('0x56')]===0x0){return db[_0x6ec5('0x2d')]['create']({'name':_0x23a64d[_0x6ec5('0x30')],'resourceId':_0x23a64d['id'],'type':_0x101966[_0x6ec5('0x30')],'sectionId':_0x101966['id']},{})[_0x6ec5('0x2a')](function(){return _0x51709d;});}else{return _0x51709d;}})[_0x6ec5('0x4c')](function(_0x9bde51){logger[_0x6ec5('0x2e')](_0x6ec5('0x57'),_0x9bde51);throw _0x9bde51;});}return _0x51709d;})[_0x6ec5('0x2a')](respondWithResult(_0x1c5e2f,0xc9))[_0x6ec5('0x4c')](handleError(_0x1c5e2f,null));};exports[_0x6ec5('0x29')]=function(_0x29317f,_0x4370f2){if(_0x29317f[_0x6ec5('0x58')]['id']){delete _0x29317f['body']['id'];}return db[_0x6ec5('0x48')][_0x6ec5('0x50')]({'where':{'id':_0x29317f['params']['id']}})[_0x6ec5('0x2a')](handleEntityNotFound(_0x4370f2,null))[_0x6ec5('0x2a')](saveUpdates(_0x29317f[_0x6ec5('0x58')],null))[_0x6ec5('0x2a')](respondWithResult(_0x4370f2,null))[_0x6ec5('0x4c')](handleError(_0x4370f2,null));};exports['destroy']=function(_0x5f3d3f,_0x282cbc){return db['VoiceChanSpy'][_0x6ec5('0x50')]({'where':{'id':_0x5f3d3f[_0x6ec5('0x4e')]['id']}})[_0x6ec5('0x2a')](handleEntityNotFound(_0x282cbc,null))[_0x6ec5('0x2a')](removeEntity(_0x282cbc,null))[_0x6ec5('0x4c')](handleError(_0x282cbc,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8785=['format','CDR(type)=%s','chanspy','push','MixMonitor','${UNIQUEID}.%s,a','recordingFormat','auth','Authenticate','password','SIP/%s,%s','name','options','join','record','StopMixMonitor','length','internal','User','findAll','then','catch','exports','models','define','voice_chanspy','VoiceExtension','bulkCreate','destroy','util','bluebird','./voiceChanSpy.attributes','context','%s%s','system','merge','Set'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x8785,0x120));var _0x5878=function(_0x750c70,_0x103733){_0x750c70=_0x750c70-0x0;var _0x33b75c=_0x8785[_0x750c70];return _0x33b75c;};'use strict';var _=require('lodash');var util=require(_0x5878('0x0'));var BPromise=require(_0x5878('0x1'));var attributes=require(_0x5878('0x2'));var getUserApplications=function(_0xed3736,_0x495ff4,_0x30f473){var _0x5a9d96=0x1;var _0x595f5c=[];var _0x29de95={'context':_0x495ff4[_0x5878('0x3')]||'from-sip','exten':util['format'](_0x5878('0x4'),_0xed3736['prefix'],_0x30f473),'type':_0x5878('0x5'),'isApp':![],'ChanSpyId':_0xed3736['id'],'UserId':_0x495ff4['id']};_0x595f5c['push'](_[_0x5878('0x6')]({'app':_0x5878('0x7'),'appdata':util[_0x5878('0x8')](_0x5878('0x9'),_0x5878('0xa')),'priority':_0x5a9d96++},_0x29de95));if(_0xed3736['record']){_0x595f5c[_0x5878('0xb')](_[_0x5878('0x6')]({'app':_0x5878('0xc'),'appdata':util[_0x5878('0x8')](_0x5878('0xd'),_0xed3736[_0x5878('0xe')]),'priority':_0x5a9d96++},_0x29de95));}if(_0xed3736[_0x5878('0xf')]){_0x595f5c[_0x5878('0xb')](_[_0x5878('0x6')]({'app':_0x5878('0x10'),'appdata':_0xed3736[_0x5878('0x11')],'priority':_0x5a9d96++},_0x29de95));}_0x595f5c[_0x5878('0xb')](_[_0x5878('0x6')]({'app':'ChanSpy','appdata':util['format'](_0x5878('0x12'),_0x495ff4[_0x5878('0x13')],_0xed3736[_0x5878('0x14')]?_0xed3736['options'][_0x5878('0x15')](''):''),'priority':_0x5a9d96++},_0x29de95));if(_0xed3736[_0x5878('0x16')]){_0x595f5c[_0x5878('0xb')](_[_0x5878('0x6')]({'app':_0x5878('0x17'),'priority':_0x5a9d96++},_0x29de95));}return _0x595f5c;};var getChanSpyApplications=function(_0xc3a658,_0x408621){var _0x36fd11=[];for(var _0x484448=0x0,_0x26f1f9=0x1;_0x484448<_0x408621[_0x5878('0x18')];_0x484448++,_0x26f1f9=0x1){_0x36fd11=_0x36fd11['concat'](getUserApplications(_0xc3a658,_0x408621[_0x484448],_0x408621[_0x484448]['internal']));if(_0x408621[_0x484448][_0x5878('0x19')]!=_0x408621[_0x484448][_0x5878('0x13')]){_0x36fd11=_0x36fd11['concat'](getUserApplications(_0xc3a658,_0x408621[_0x484448],_0x408621[_0x484448][_0x5878('0x13')]));}}return _0x36fd11;};var getChanSpyPromise=function(_0x3619e4,_0x328728){return new BPromise(function(_0x4d30f5,_0x2bf252){return _0x3619e4[_0x5878('0x1a')][_0x5878('0x1b')]({'attributes':['id',_0x5878('0x13'),_0x5878('0x19')],'where':{'role':'agent','chanspy':!![]},'raw':!![]})[_0x5878('0x1c')](function(_0x4380c2){if(_0x4380c2){return _0x4d30f5(getChanSpyApplications(_0x328728,_0x4380c2));}return _0x4d30f5([]);})[_0x5878('0x1d')](function(_0x4a21c2){_0x2bf252(_0x4a21c2);});});};module[_0x5878('0x1e')]=function(_0x369032,_0x1f9796){var _0x41ebee=_0x369032[_0x5878('0x1f')];return _0x369032[_0x5878('0x20')]('VoiceChanSpy',attributes,{'tableName':_0x5878('0x21'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x3986d1,_0x55eeb6,_0x120914){return getChanSpyPromise(_0x41ebee,_0x3986d1)[_0x5878('0x1c')](function(_0x21e8eb){if(_0x21e8eb&&_0x21e8eb['length']){return _0x41ebee[_0x5878('0x22')][_0x5878('0x23')](_0x21e8eb);}})[_0x5878('0x1c')](function(){_0x120914();})[_0x5878('0x1d')](function(_0x423d52){_0x120914(_0x423d52);});},'afterUpdate':function(_0x3a1b3a,_0x1ec222,_0x540735){return _0x41ebee[_0x5878('0x22')][_0x5878('0x24')]({'where':{'ChanSpyId':_0x3a1b3a['id']}})[_0x5878('0x1c')](function(){return getChanSpyPromise(_0x41ebee,_0x3a1b3a);})[_0x5878('0x1c')](function(_0x457c79){if(_0x457c79&&_0x457c79[_0x5878('0x18')]){return _0x41ebee['VoiceExtension']['bulkCreate'](_0x457c79);}})[_0x5878('0x1c')](function(){_0x540735();})[_0x5878('0x1d')](function(_0x411d0d){_0x540735(_0x411d0d);});},'afterDestroy':function(_0x3d73eb,_0x5c564f,_0x528fd4){return _0x41ebee[_0x5878('0x22')][_0x5878('0x24')]({'where':{'ChanSpyId':_0x3d73eb['id']}})['then'](function(){_0x528fd4();})[_0x5878('0x1d')](function(_0x425ac1){_0x528fd4(_0x425ac1);});}}});};
\ No newline at end of file
+var _0x8414=['StopMixMonitor','length','concat','internal','findAll','then','catch','exports','models','VoiceChanSpy','voice_chanspy','VoiceExtension','bulkCreate','destroy','util','bluebird','./voiceChanSpy.attributes','context','from-sip','format','%s%s','prefix','system','push','merge','CDR(type)=%s','chanspy','record','MixMonitor','Authenticate','ChanSpy','SIP/%s,%s','name','options','join'];(function(_0x6e1239,_0x3562ac){var _0x418150=function(_0x279f06){while(--_0x279f06){_0x6e1239['push'](_0x6e1239['shift']());}};_0x418150(++_0x3562ac);}(_0x8414,0x1d5));var _0x4841=function(_0x434804,_0x415f68){_0x434804=_0x434804-0x0;var _0x573fc8=_0x8414[_0x434804];return _0x573fc8;};'use strict';var _=require('lodash');var util=require(_0x4841('0x0'));var BPromise=require(_0x4841('0x1'));var attributes=require(_0x4841('0x2'));var getUserApplications=function(_0x3eee07,_0x55d278,_0x1e26e9){var _0x37d36a=0x1;var _0x5d2433=[];var _0x59bdf9={'context':_0x55d278[_0x4841('0x3')]||_0x4841('0x4'),'exten':util[_0x4841('0x5')](_0x4841('0x6'),_0x3eee07[_0x4841('0x7')],_0x1e26e9),'type':_0x4841('0x8'),'isApp':![],'ChanSpyId':_0x3eee07['id'],'UserId':_0x55d278['id']};_0x5d2433[_0x4841('0x9')](_[_0x4841('0xa')]({'app':'Set','appdata':util[_0x4841('0x5')](_0x4841('0xb'),_0x4841('0xc')),'priority':_0x37d36a++},_0x59bdf9));if(_0x3eee07[_0x4841('0xd')]){_0x5d2433['push'](_['merge']({'app':_0x4841('0xe'),'appdata':util[_0x4841('0x5')]('${UNIQUEID}.%s,a',_0x3eee07['recordingFormat']),'priority':_0x37d36a++},_0x59bdf9));}if(_0x3eee07['auth']){_0x5d2433['push'](_[_0x4841('0xa')]({'app':_0x4841('0xf'),'appdata':_0x3eee07['password'],'priority':_0x37d36a++},_0x59bdf9));}_0x5d2433['push'](_[_0x4841('0xa')]({'app':_0x4841('0x10'),'appdata':util[_0x4841('0x5')](_0x4841('0x11'),_0x55d278[_0x4841('0x12')],_0x3eee07[_0x4841('0x13')]?_0x3eee07['options'][_0x4841('0x14')](''):''),'priority':_0x37d36a++},_0x59bdf9));if(_0x3eee07[_0x4841('0xd')]){_0x5d2433[_0x4841('0x9')](_[_0x4841('0xa')]({'app':_0x4841('0x15'),'priority':_0x37d36a++},_0x59bdf9));}return _0x5d2433;};var getChanSpyApplications=function(_0x1f6640,_0x531d39){var _0x547191=[];for(var _0x14d638=0x0,_0x22c2e9=0x1;_0x14d638<_0x531d39[_0x4841('0x16')];_0x14d638++,_0x22c2e9=0x1){_0x547191=_0x547191[_0x4841('0x17')](getUserApplications(_0x1f6640,_0x531d39[_0x14d638],_0x531d39[_0x14d638][_0x4841('0x18')]));if(_0x531d39[_0x14d638][_0x4841('0x18')]!=_0x531d39[_0x14d638][_0x4841('0x12')]){_0x547191=_0x547191['concat'](getUserApplications(_0x1f6640,_0x531d39[_0x14d638],_0x531d39[_0x14d638][_0x4841('0x12')]));}}return _0x547191;};var getChanSpyPromise=function(_0x554d41,_0x525854){return new BPromise(function(_0x112797,_0x38bf57){return _0x554d41['User'][_0x4841('0x19')]({'attributes':['id','name',_0x4841('0x18')],'where':{'role':'agent','chanspy':!![]},'raw':!![]})[_0x4841('0x1a')](function(_0x374529){if(_0x374529){return _0x112797(getChanSpyApplications(_0x525854,_0x374529));}return _0x112797([]);})[_0x4841('0x1b')](function(_0x29bec6){_0x38bf57(_0x29bec6);});});};module[_0x4841('0x1c')]=function(_0x28c9bf,_0x32ae6d){var _0x44bd40=_0x28c9bf[_0x4841('0x1d')];return _0x28c9bf['define'](_0x4841('0x1e'),attributes,{'tableName':_0x4841('0x1f'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x5e7f33,_0x346a4b,_0x14c6bb){return getChanSpyPromise(_0x44bd40,_0x5e7f33)[_0x4841('0x1a')](function(_0x6ac7f2){if(_0x6ac7f2&&_0x6ac7f2[_0x4841('0x16')]){return _0x44bd40[_0x4841('0x20')]['bulkCreate'](_0x6ac7f2);}})[_0x4841('0x1a')](function(){_0x14c6bb();})[_0x4841('0x1b')](function(_0x111d23){_0x14c6bb(_0x111d23);});},'afterUpdate':function(_0x229ae0,_0x13f005,_0x440f37){return _0x44bd40[_0x4841('0x20')]['destroy']({'where':{'ChanSpyId':_0x229ae0['id']}})[_0x4841('0x1a')](function(){return getChanSpyPromise(_0x44bd40,_0x229ae0);})[_0x4841('0x1a')](function(_0x3257f9){if(_0x3257f9&&_0x3257f9['length']){return _0x44bd40[_0x4841('0x20')][_0x4841('0x21')](_0x3257f9);}})[_0x4841('0x1a')](function(){_0x440f37();})[_0x4841('0x1b')](function(_0x2e0e09){_0x440f37(_0x2e0e09);});},'afterDestroy':function(_0x595355,_0xabb4bd,_0x21cbeb){return _0x44bd40[_0x4841('0x20')][_0x4841('0x22')]({'where':{'ChanSpyId':_0x595355['id']}})[_0x4841('0x1a')](function(){_0x21cbeb();})[_0x4841('0x1b')](function(_0x2a9993){_0x21cbeb(_0x2a9993);});}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2e54=['rpc','jayson/promise','client','http','request','then','info','VoiceChanSpy,\x20%s,\x20%s','request\x20sent','debug','VoiceChanSpy,\x20%s,\x20%s,\x20%s','error','message','result','catch','lodash','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger'];(function(_0xd0a847,_0x72562b){var _0x2536ec=function(_0x20e4db){while(--_0x20e4db){_0xd0a847['push'](_0xd0a847['shift']());}};_0x2536ec(++_0x72562b);}(_0x2e54,0x1dd));var _0x42e5=function(_0x177001,_0x55bd0f){_0x177001=_0x177001-0x0;var _0x42f2c9=_0x2e54[_0x177001];return _0x42f2c9;};'use strict';var _=require(_0x42e5('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x42e5('0x1'));var rs=require(_0x42e5('0x2'));var fs=require('fs');var Redis=require(_0x42e5('0x3'));var db=require(_0x42e5('0x4'))['db'];var utils=require(_0x42e5('0x5'));var logger=require(_0x42e5('0x6'))(_0x42e5('0x7'));var config=require('../../config/environment');var jayson=require(_0x42e5('0x8'));var client=jayson[_0x42e5('0x9')][_0x42e5('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x4bed10,_0x2af5bb,_0x56be20){return new BPromise(function(_0x335b92,_0x490b99){return client[_0x42e5('0xb')](_0x4bed10,_0x56be20)[_0x42e5('0xc')](function(_0x10ee5a){logger[_0x42e5('0xd')](_0x42e5('0xe'),_0x2af5bb,_0x42e5('0xf'));logger[_0x42e5('0x10')](_0x42e5('0x11'),_0x2af5bb,_0x42e5('0xf'),JSON['stringify'](_0x10ee5a));if(_0x10ee5a[_0x42e5('0x12')]){if(_0x10ee5a[_0x42e5('0x12')]['code']===0x1f4){logger[_0x42e5('0x12')](_0x42e5('0xe'),_0x2af5bb,_0x10ee5a[_0x42e5('0x12')][_0x42e5('0x13')]);return _0x490b99(_0x10ee5a[_0x42e5('0x12')][_0x42e5('0x13')]);}logger[_0x42e5('0x12')](_0x42e5('0xe'),_0x2af5bb,_0x10ee5a[_0x42e5('0x12')][_0x42e5('0x13')]);return _0x335b92(_0x10ee5a['error'][_0x42e5('0x13')]);}else{logger[_0x42e5('0xd')](_0x42e5('0xe'),_0x2af5bb,_0x42e5('0xf'));_0x335b92(_0x10ee5a[_0x42e5('0x14')][_0x42e5('0x13')]);}})[_0x42e5('0x15')](function(_0x3abe3d){logger[_0x42e5('0x12')](_0x42e5('0xe'),_0x2af5bb,_0x3abe3d);_0x490b99(_0x3abe3d);});});}
\ No newline at end of file
+var _0x0eaa=['http','then','info','VoiceChanSpy,\x20%s,\x20%s','request\x20sent','VoiceChanSpy,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','lodash','util','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise'];(function(_0x43e97d,_0x56a06b){var _0x424cd9=function(_0x4f574b){while(--_0x4f574b){_0x43e97d['push'](_0x43e97d['shift']());}};_0x424cd9(++_0x56a06b);}(_0x0eaa,0x1c5));var _0xa0ea=function(_0x482d06,_0x1c7c4a){_0x482d06=_0x482d06-0x0;var _0x3bdd88=_0x0eaa[_0x482d06];return _0x3bdd88;};'use strict';var _=require(_0xa0ea('0x0'));var util=require(_0xa0ea('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xa0ea('0x2'));var fs=require('fs');var Redis=require(_0xa0ea('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0xa0ea('0x4'));var logger=require(_0xa0ea('0x5'))(_0xa0ea('0x6'));var config=require(_0xa0ea('0x7'));var jayson=require(_0xa0ea('0x8'));var client=jayson['client'][_0xa0ea('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x521881,_0x4b8856,_0x361178){return new BPromise(function(_0x8632a1,_0x5b2adc){return client['request'](_0x521881,_0x361178)[_0xa0ea('0xa')](function(_0x2746f2){logger[_0xa0ea('0xb')](_0xa0ea('0xc'),_0x4b8856,_0xa0ea('0xd'));logger['debug'](_0xa0ea('0xe'),_0x4b8856,_0xa0ea('0xd'),JSON[_0xa0ea('0xf')](_0x2746f2));if(_0x2746f2[_0xa0ea('0x10')]){if(_0x2746f2['error'][_0xa0ea('0x11')]===0x1f4){logger[_0xa0ea('0x10')](_0xa0ea('0xc'),_0x4b8856,_0x2746f2[_0xa0ea('0x10')][_0xa0ea('0x12')]);return _0x5b2adc(_0x2746f2['error'][_0xa0ea('0x12')]);}logger[_0xa0ea('0x10')]('VoiceChanSpy,\x20%s,\x20%s',_0x4b8856,_0x2746f2[_0xa0ea('0x10')][_0xa0ea('0x12')]);return _0x8632a1(_0x2746f2[_0xa0ea('0x10')][_0xa0ea('0x12')]);}else{logger['info'](_0xa0ea('0xc'),_0x4b8856,_0xa0ea('0xd'));_0x8632a1(_0x2746f2[_0xa0ea('0x13')][_0xa0ea('0x12')]);}})[_0xa0ea('0x14')](function(_0x34b94c){logger[_0xa0ea('0x10')](_0xa0ea('0xc'),_0x4b8856,_0x34b94c);_0x5b2adc(_0x34b94c);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xee95=['multer','util','connect-timeout','express','../../config/environment','get','isAuthenticated','index','show','post','create','put','/:id','update','delete','destroy','exports'];(function(_0x18a4f7,_0x3f915c){var _0x368cf3=function(_0x173245){while(--_0x173245){_0x18a4f7['push'](_0x18a4f7['shift']());}};_0x368cf3(++_0x3f915c);}(_0xee95,0xcc));var _0x5ee9=function(_0x5ac96b,_0x2098a2){_0x5ac96b=_0x5ac96b-0x0;var _0x530927=_0xee95[_0x5ac96b];return _0x530927;};'use strict';var multer=require(_0x5ee9('0x0'));var util=require(_0x5ee9('0x1'));var path=require('path');var timeout=require(_0x5ee9('0x2'));var express=require(_0x5ee9('0x3'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require(_0x5ee9('0x4'));var controller=require('./voiceContext.controller');router[_0x5ee9('0x5')]('/',auth[_0x5ee9('0x6')](),controller[_0x5ee9('0x7')]);router['get']('/:id',auth[_0x5ee9('0x6')](),controller[_0x5ee9('0x8')]);router[_0x5ee9('0x9')]('/',auth[_0x5ee9('0x6')](),controller[_0x5ee9('0xa')]);router[_0x5ee9('0xb')](_0x5ee9('0xc'),auth[_0x5ee9('0x6')](),controller[_0x5ee9('0xd')]);router[_0x5ee9('0xe')](_0x5ee9('0xc'),auth[_0x5ee9('0x6')](),controller[_0x5ee9('0xf')]);module[_0x5ee9('0x10')]=router;
\ No newline at end of file
+var _0xa296=['show','post','create','isAuthenticated','update','delete','destroy','exports','util','path','connect-timeout','Router','fs-extra','../../components/interaction/service','./voiceContext.controller','get','index','/:id'];(function(_0x54ad50,_0x5d12de){var _0x59c08c=function(_0x1bf7d){while(--_0x1bf7d){_0x54ad50['push'](_0x54ad50['shift']());}};_0x59c08c(++_0x5d12de);}(_0xa296,0x98));var _0x6a29=function(_0x474e22,_0x5d5515){_0x474e22=_0x474e22-0x0;var _0x76a179=_0xa296[_0x474e22];return _0x76a179;};'use strict';var multer=require('multer');var util=require(_0x6a29('0x0'));var path=require(_0x6a29('0x1'));var timeout=require(_0x6a29('0x2'));var express=require('express');var router=express[_0x6a29('0x3')]();var fs_extra=require(_0x6a29('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x6a29('0x5'));var config=require('../../config/environment');var controller=require(_0x6a29('0x6'));router[_0x6a29('0x7')]('/',auth['isAuthenticated'](),controller[_0x6a29('0x8')]);router[_0x6a29('0x7')](_0x6a29('0x9'),auth['isAuthenticated'](),controller[_0x6a29('0xa')]);router[_0x6a29('0xb')]('/',auth['isAuthenticated'](),controller[_0x6a29('0xc')]);router['put']('/:id',auth[_0x6a29('0xd')](),controller[_0x6a29('0xe')]);router[_0x6a29('0xf')](_0x6a29('0x9'),auth[_0x6a29('0xd')](),controller[_0x6a29('0x10')]);module[_0x6a29('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x238b=['exports','STRING','name','sequelize'];(function(_0x2fca9d,_0x1acd79){var _0x3cb2e9=function(_0x2d5289){while(--_0x2d5289){_0x2fca9d['push'](_0x2fca9d['shift']());}};_0x3cb2e9(++_0x1acd79);}(_0x238b,0x83));var _0xb238=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x238b[_0x20a584];return _0x4b41a8;};'use strict';var Sequelize=require(_0xb238('0x0'));module[_0xb238('0x1')]={'name':{'type':Sequelize[_0xb238('0x2')],'unique':_0xb238('0x3')},'description':{'type':Sequelize[_0xb238('0x2')],'allowNull':!![]},'defaultEntry':{'type':Sequelize['BOOLEAN'],'defaultValue':0x0}};
\ No newline at end of file
+var _0x259a=['STRING','name','BOOLEAN','sequelize','exports'];(function(_0x2a00d0,_0x1af498){var _0xc33e6a=function(_0x3ba0e0){while(--_0x3ba0e0){_0x2a00d0['push'](_0x2a00d0['shift']());}};_0xc33e6a(++_0x1af498);}(_0x259a,0xa3));var _0xa259=function(_0x383356,_0x33d2f5){_0x383356=_0x383356-0x0;var _0x32ee5a=_0x259a[_0x383356];return _0x32ee5a;};'use strict';var Sequelize=require(_0xa259('0x0'));module[_0xa259('0x1')]={'name':{'type':Sequelize[_0xa259('0x2')],'unique':_0xa259('0x3')},'description':{'type':Sequelize[_0xa259('0x2')],'allowNull':!![]},'defaultEntry':{'type':Sequelize[_0xa259('0x4')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xef52=['where','filters','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','show','params','keys','create','readFileSync','join','root','utf8','render','writeFileSync','Reload','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','find','userProfileId','body','server/files/templates/context.ejs','chan_sip.so','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','client','http','request','info','VoiceContext,\x20%s,\x20%s','debug','VoiceContext,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','catch','sendStatus','end','json','undefined','count','offset','limit','status','set','apply','reject','save','update','then','get','Contexts','UserProfileResource','destroy','stack','name','send','index','VoiceContext','fieldName','type','key','model','map','query','intersection','attributes','fields','length','nolimit','sort'];(function(_0x1671b3,_0x5d9cdd){var _0x447444=function(_0x5edad4){while(--_0x5edad4){_0x1671b3['push'](_0x1671b3['shift']());}};_0x447444(++_0x5d9cdd);}(_0xef52,0xea));var _0x2ef5=function(_0x3e85a4,_0x18c3a9){_0x3e85a4=_0x3e85a4-0x0;var _0x21e7d1=_0xef52[_0x3e85a4];return _0x21e7d1;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x2ef5('0x0'));var zipdir=require(_0x2ef5('0x1'));var jsonpatch=require(_0x2ef5('0x2'));var rp=require('request-promise');var moment=require(_0x2ef5('0x3'));var BPromise=require(_0x2ef5('0x4'));var Mustache=require(_0x2ef5('0x5'));var util=require(_0x2ef5('0x6'));var path=require(_0x2ef5('0x7'));var sox=require(_0x2ef5('0x8'));var csv=require(_0x2ef5('0x9'));var ejs=require(_0x2ef5('0xa'));var fs=require('fs');var fs_extra=require(_0x2ef5('0xb'));var _=require(_0x2ef5('0xc'));var squel=require(_0x2ef5('0xd'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x2ef5('0x9'));var querystring=require('querystring');var Papa=require(_0x2ef5('0xe'));var Redis=require(_0x2ef5('0xf'));var authService=require(_0x2ef5('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0x2ef5('0x11'));var hardwareService=require(_0x2ef5('0x12'));var logger=require(_0x2ef5('0x13'))(_0x2ef5('0x14'));var utils=require(_0x2ef5('0x15'));var config=require(_0x2ef5('0x16'));var licenseUtil=require(_0x2ef5('0x17'));var db=require('../../mysqldb')['db'];var jayson=require('jayson/promise');var client=jayson[_0x2ef5('0x18')][_0x2ef5('0x19')]({'port':0x232a});function respondWithRpcPromise(_0x19a820,_0x2a8434,_0x38cdad,_0x9d5cd9){return new BPromise(function(_0x2f829a,_0x54f59f){var _0x78d273=_0x9d5cd9||client;return _0x78d273[_0x2ef5('0x1a')](_0x19a820,_0x38cdad)['then'](function(_0x502555){logger[_0x2ef5('0x1b')](_0x2ef5('0x1c'),_0x2a8434,'request\x20sent');logger[_0x2ef5('0x1d')](_0x2ef5('0x1e'),_0x2a8434,_0x2ef5('0x1f'),JSON[_0x2ef5('0x20')](_0x502555));if(_0x502555[_0x2ef5('0x21')]){if(_0x502555[_0x2ef5('0x21')][_0x2ef5('0x22')]===0x1f4){logger[_0x2ef5('0x21')]('VoiceContext,\x20%s,\x20%s',_0x2a8434,_0x502555[_0x2ef5('0x21')][_0x2ef5('0x23')]);return _0x54f59f(_0x502555['error']['message']);}logger[_0x2ef5('0x21')]('VoiceContext,\x20%s,\x20%s',_0x2a8434,_0x502555[_0x2ef5('0x21')][_0x2ef5('0x23')]);return _0x2f829a(_0x502555[_0x2ef5('0x21')][_0x2ef5('0x23')]);}else{logger[_0x2ef5('0x1b')]('VoiceContext,\x20%s,\x20%s',_0x2a8434,_0x2ef5('0x1f'));_0x2f829a(_0x502555['result'][_0x2ef5('0x23')]);}})[_0x2ef5('0x24')](function(_0x47b335){logger[_0x2ef5('0x21')](_0x2ef5('0x1c'),_0x2a8434,_0x47b335);_0x54f59f(_0x47b335);});});}function respondWithStatusCode(_0x2a92c8,_0x350a06){_0x350a06=_0x350a06||0xcc;return function(_0x2bc950){if(_0x2bc950){return _0x2a92c8[_0x2ef5('0x25')](_0x350a06);}return _0x2a92c8['status'](_0x350a06)[_0x2ef5('0x26')]();};}function respondWithResult(_0x26eead,_0x34748d){_0x34748d=_0x34748d||0xc8;return function(_0x3a4a6d){if(_0x3a4a6d){return _0x26eead['status'](_0x34748d)[_0x2ef5('0x27')](_0x3a4a6d);}};}function respondWithFilteredResult(_0x6979a,_0x55ab3b){return function(_0x36bd19){if(_0x36bd19){var _0x2e61b6=typeof _0x55ab3b['offset']==='undefined'&&typeof _0x55ab3b['limit']===_0x2ef5('0x28');var _0x499fa2=_0x36bd19['count'];var _0x118cf3=_0x2e61b6?0x0:_0x55ab3b['offset'];var _0x5b713b=_0x2e61b6?_0x36bd19[_0x2ef5('0x29')]:_0x55ab3b[_0x2ef5('0x2a')]+_0x55ab3b[_0x2ef5('0x2b')];var _0x549926;if(_0x5b713b>=_0x499fa2){_0x5b713b=_0x499fa2;_0x549926=0xc8;}else{_0x549926=0xce;}_0x6979a[_0x2ef5('0x2c')](_0x549926);return _0x6979a[_0x2ef5('0x2d')]('Content-Range',_0x118cf3+'-'+_0x5b713b+'/'+_0x499fa2)[_0x2ef5('0x27')](_0x36bd19);}return null;};}function patchUpdates(_0x15c8bf){return function(_0x4685b1){try{jsonpatch[_0x2ef5('0x2e')](_0x4685b1,_0x15c8bf,!![]);}catch(_0x48dedd){return BPromise[_0x2ef5('0x2f')](_0x48dedd);}return _0x4685b1[_0x2ef5('0x30')]();};}function saveUpdates(_0x56beee,_0x3f2e8c){return function(_0x58e0ff){if(_0x58e0ff){return _0x58e0ff[_0x2ef5('0x31')](_0x56beee)['then'](function(_0x2d6333){return _0x2d6333;});}return null;};}function removeEntity(_0xb7f7de,_0x51a962){return function(_0x2eccf3){if(_0x2eccf3){return _0x2eccf3['destroy']()[_0x2ef5('0x32')](function(){var _0x278544=_0x2eccf3[_0x2ef5('0x33')]({'plain':!![]});var _0x27da97=_0x2ef5('0x34');return db[_0x2ef5('0x35')][_0x2ef5('0x36')]({'where':{'type':_0x27da97,'resourceId':_0x278544['id']}})[_0x2ef5('0x32')](function(){return _0x2eccf3;});})[_0x2ef5('0x32')](function(){_0xb7f7de[_0x2ef5('0x2c')](0xcc)[_0x2ef5('0x26')]();});}};}function handleEntityNotFound(_0x35bf95,_0x2bf09c){return function(_0x27ac86){if(!_0x27ac86){_0x35bf95['sendStatus'](0x194);}return _0x27ac86;};}function handleError(_0x2ac9ac,_0x599ef9){_0x599ef9=_0x599ef9||0x1f4;return function(_0x38b336){logger[_0x2ef5('0x21')](_0x38b336[_0x2ef5('0x37')]);if(_0x38b336['name']){delete _0x38b336[_0x2ef5('0x38')];}_0x2ac9ac[_0x2ef5('0x2c')](_0x599ef9)[_0x2ef5('0x39')](_0x38b336);};}exports[_0x2ef5('0x3a')]=function(_0x133d0b,_0x4ed1be){var _0x3f653c={},_0x3f8d09={},_0x53e1ac={'count':0x0,'rows':[]};var _0x13324f=_['map'](db[_0x2ef5('0x3b')]['rawAttributes'],function(_0x4c645b){return{'name':_0x4c645b[_0x2ef5('0x3c')],'type':_0x4c645b[_0x2ef5('0x3d')][_0x2ef5('0x3e')]};});_0x3f8d09[_0x2ef5('0x3f')]=_[_0x2ef5('0x40')](_0x13324f,_0x2ef5('0x38'));_0x3f8d09[_0x2ef5('0x41')]=_['keys'](_0x133d0b[_0x2ef5('0x41')]);_0x3f8d09['filters']=_[_0x2ef5('0x42')](_0x3f8d09[_0x2ef5('0x3f')],_0x3f8d09['query']);_0x3f653c[_0x2ef5('0x43')]=_[_0x2ef5('0x42')](_0x3f8d09[_0x2ef5('0x3f')],qs[_0x2ef5('0x44')](_0x133d0b[_0x2ef5('0x41')]['fields']));_0x3f653c[_0x2ef5('0x43')]=_0x3f653c[_0x2ef5('0x43')][_0x2ef5('0x45')]?_0x3f653c[_0x2ef5('0x43')]:_0x3f8d09[_0x2ef5('0x3f')];if(!_0x133d0b[_0x2ef5('0x41')]['hasOwnProperty'](_0x2ef5('0x46'))){_0x3f653c[_0x2ef5('0x2b')]=qs[_0x2ef5('0x2b')](_0x133d0b['query'][_0x2ef5('0x2b')]);_0x3f653c[_0x2ef5('0x2a')]=qs[_0x2ef5('0x2a')](_0x133d0b[_0x2ef5('0x41')]['offset']);}_0x3f653c['order']=qs[_0x2ef5('0x47')](_0x133d0b[_0x2ef5('0x41')][_0x2ef5('0x47')]);_0x3f653c[_0x2ef5('0x48')]=qs[_0x2ef5('0x49')](_[_0x2ef5('0x4a')](_0x133d0b[_0x2ef5('0x41')],_0x3f8d09[_0x2ef5('0x49')]),_0x13324f);if(_0x133d0b[_0x2ef5('0x41')][_0x2ef5('0x4b')]){_0x3f653c['where']=_[_0x2ef5('0x4c')](_0x3f653c[_0x2ef5('0x48')],{'$or':_[_0x2ef5('0x40')](_0x13324f,function(_0x4d8135){if(_0x4d8135['type']!==_0x2ef5('0x4d')){var _0x2908b7={};_0x2908b7[_0x4d8135[_0x2ef5('0x38')]]={'$like':'%'+_0x133d0b[_0x2ef5('0x41')][_0x2ef5('0x4b')]+'%'};return _0x2908b7;}})});}_0x3f653c=_[_0x2ef5('0x4c')]({},_0x3f653c,_0x133d0b[_0x2ef5('0x4e')]);var _0x45ec80={'where':_0x3f653c[_0x2ef5('0x48')]};return db['VoiceContext'][_0x2ef5('0x29')](_0x45ec80)[_0x2ef5('0x32')](function(_0x5e9729){_0x53e1ac[_0x2ef5('0x29')]=_0x5e9729;if(_0x133d0b[_0x2ef5('0x41')][_0x2ef5('0x4f')]){_0x3f653c[_0x2ef5('0x50')]=[{'all':!![]}];}return db[_0x2ef5('0x3b')][_0x2ef5('0x51')](_0x3f653c);})[_0x2ef5('0x32')](function(_0x5b080c){_0x53e1ac[_0x2ef5('0x52')]=_0x5b080c;return _0x53e1ac;})[_0x2ef5('0x32')](respondWithFilteredResult(_0x4ed1be,_0x3f653c))[_0x2ef5('0x24')](handleError(_0x4ed1be,null));};exports[_0x2ef5('0x53')]=function(_0x36b972,_0x20f884){var _0x29a40f={'raw':![],'where':{'id':_0x36b972[_0x2ef5('0x54')]['id']}},_0x1631b1={};_0x1631b1[_0x2ef5('0x3f')]=_['keys'](db[_0x2ef5('0x3b')]['rawAttributes']);_0x1631b1['query']=_[_0x2ef5('0x55')](_0x36b972[_0x2ef5('0x41')]);_0x1631b1[_0x2ef5('0x49')]=_['intersection'](_0x1631b1['model'],_0x1631b1['query']);_0x29a40f[_0x2ef5('0x43')]=_['intersection'](_0x1631b1[_0x2ef5('0x3f')],qs['fields'](_0x36b972[_0x2ef5('0x41')][_0x2ef5('0x44')]));_0x29a40f[_0x2ef5('0x43')]=_0x29a40f[_0x2ef5('0x43')]['length']?_0x29a40f[_0x2ef5('0x43')]:_0x1631b1[_0x2ef5('0x3f')];if(_0x36b972[_0x2ef5('0x41')][_0x2ef5('0x4f')]){_0x29a40f['include']=[{'all':!![]}];}_0x29a40f=_[_0x2ef5('0x4c')]({},_0x29a40f,_0x36b972[_0x2ef5('0x4e')]);return db[_0x2ef5('0x3b')]['find'](_0x29a40f)['then'](handleEntityNotFound(_0x20f884,null))[_0x2ef5('0x32')](respondWithResult(_0x20f884,null))[_0x2ef5('0x24')](handleError(_0x20f884,null));};exports[_0x2ef5('0x56')]=function(_0x387e39,_0x1b373d,_0x50134b){var _0xd410f0;return db[_0x2ef5('0x3b')]['create'](_0x387e39['body'],{'raw':!![]})[_0x2ef5('0x32')](function(_0x614543){_0xd410f0=_0x614543;return db[_0x2ef5('0x3b')][_0x2ef5('0x51')]({'raw':!![]});})[_0x2ef5('0x32')](function(_0x492374){var _0x2ed6e2=fs[_0x2ef5('0x57')](path[_0x2ef5('0x58')](config[_0x2ef5('0x59')],'server/files/templates/context.ejs'),_0x2ef5('0x5a'));var _0x30e598=ejs[_0x2ef5('0x5b')](_0x2ed6e2,{'contexts':_0x492374||[]});fs[_0x2ef5('0x5c')]('/etc/asterisk/extensions_xcally_contexts.conf',_0x30e598);})[_0x2ef5('0x32')](function(){return respondWithRpcPromise(_0x2ef5('0x5d'),'create',{'module':'chan_sip.so'});})[_0x2ef5('0x32')](function(){var _0x5543f8=_0x387e39[_0x2ef5('0x5e')][_0x2ef5('0x33')]({'plain':!![]});if(!_0x5543f8)throw new Error(_0x2ef5('0x5f'));if(_0x5543f8[_0x2ef5('0x60')]===_0x2ef5('0x5e')){var _0xe8acfb=_0xd410f0[_0x2ef5('0x33')]({'plain':!![]});return db['UserProfileSection'][_0x2ef5('0x61')]({'where':{'name':_0x2ef5('0x34'),'userProfileId':_0x5543f8[_0x2ef5('0x62')]},'raw':!![]})[_0x2ef5('0x32')](function(_0x398f86){if(_0x398f86&&_0x398f86['autoAssociation']===0x0){return db[_0x2ef5('0x35')][_0x2ef5('0x56')]({'name':_0xe8acfb[_0x2ef5('0x38')],'resourceId':_0xe8acfb['id'],'type':_0x398f86['name'],'sectionId':_0x398f86['id']},{})[_0x2ef5('0x32')](function(){return _0xd410f0;});}else{return _0xd410f0;}})[_0x2ef5('0x24')](function(_0x3edb72){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x3edb72);throw _0x3edb72;});}return _0xd410f0;})[_0x2ef5('0x32')](respondWithResult(_0x1b373d,0xc9))[_0x2ef5('0x24')](handleError(_0x1b373d,null));};exports[_0x2ef5('0x31')]=function(_0x382f08,_0x2ba4df,_0x254a8a){var _0x75cdf;return db[_0x2ef5('0x3b')][_0x2ef5('0x61')]({'where':{'id':_0x382f08[_0x2ef5('0x54')]['id']}})[_0x2ef5('0x32')](handleEntityNotFound(_0x2ba4df,null))[_0x2ef5('0x32')](saveUpdates(_0x382f08[_0x2ef5('0x63')],null))[_0x2ef5('0x32')](function(_0x2794cc){if(_0x2794cc){_0x75cdf=_0x2794cc;return db['VoiceContext'][_0x2ef5('0x51')]({'raw':!![]});}})[_0x2ef5('0x32')](function(_0x2e7dfa){var _0x141219=fs['readFileSync'](path[_0x2ef5('0x58')](config[_0x2ef5('0x59')],_0x2ef5('0x64')),_0x2ef5('0x5a'));var _0x29675d=ejs[_0x2ef5('0x5b')](_0x141219,{'contexts':_0x2e7dfa||[]});fs['writeFileSync']('/etc/asterisk/extensions_xcally_contexts.conf',_0x29675d);})['then'](function(){return respondWithRpcPromise('Reload',_0x2ef5('0x31'),{'module':_0x2ef5('0x65')});})['then'](function(){return _0x75cdf;})['then'](respondWithResult(_0x2ba4df,null))[_0x2ef5('0x24')](handleError(_0x2ba4df,null));};exports[_0x2ef5('0x36')]=function(_0x2bf187,_0x4739e7,_0x322046){var _0x2c6fc4;return db[_0x2ef5('0x3b')][_0x2ef5('0x61')]({'where':{'id':_0x2bf187[_0x2ef5('0x54')]['id']}})[_0x2ef5('0x32')](handleEntityNotFound(_0x4739e7,null))[_0x2ef5('0x32')](removeEntity(_0x4739e7,null))[_0x2ef5('0x32')](function(){return db['VoiceContext'][_0x2ef5('0x51')]({'raw':!![]});})[_0x2ef5('0x32')](function(_0x38d82b){var _0x4e5f51=fs['readFileSync'](path['join'](config[_0x2ef5('0x59')],_0x2ef5('0x64')),_0x2ef5('0x5a'));var _0x532eb2=ejs[_0x2ef5('0x5b')](_0x4e5f51,{'contexts':_0x38d82b});fs['writeFileSync']('/etc/asterisk/extensions_xcally_contexts.conf',_0x532eb2);return respondWithRpcPromise(_0x2ef5('0x5d'),_0x2ef5('0x36'),{'module':_0x2ef5('0x65')});})[_0x2ef5('0x24')](handleError(_0x4739e7,null));};
\ No newline at end of file
+var _0xfad9=['update','server/files/templates/context.ejs','/etc/asterisk/extensions_xcally_contexts.conf','chan_sip.so','params','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','jayson/promise','request','then','VoiceContext,\x20%s,\x20%s','request\x20sent','debug','VoiceContext,\x20%s,\x20%s,\x20%s','stringify','error','message','info','result','catch','sendStatus','end','status','json','offset','limit','undefined','count','Content-Range','apply','reject','save','destroy','get','UserProfileResource','stack','name','send','index','map','rawAttributes','type','key','keys','query','filters','intersection','model','attributes','fields','length','nolimit','order','sort','where','pick','VIRTUAL','merge','VoiceContext','includeAll','include','findAll','rows','show','find','create','body','readFileSync','root','utf8','render','writeFileSync','Reload','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','Contexts','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s'];(function(_0x31147e,_0x2ff5b9){var _0x395bf8=function(_0x4bdec4){while(--_0x4bdec4){_0x31147e['push'](_0x31147e['shift']());}};_0x395bf8(++_0x2ff5b9);}(_0xfad9,0x1a9));var _0x9fad=function(_0x12254f,_0x100cfe){_0x12254f=_0x12254f-0x0;var _0x3a4fa2=_0xfad9[_0x12254f];return _0x3a4fa2;};'use strict';var emlformat=require(_0x9fad('0x0'));var rimraf=require(_0x9fad('0x1'));var zipdir=require(_0x9fad('0x2'));var jsonpatch=require(_0x9fad('0x3'));var rp=require('request-promise');var moment=require(_0x9fad('0x4'));var BPromise=require(_0x9fad('0x5'));var Mustache=require(_0x9fad('0x6'));var util=require(_0x9fad('0x7'));var path=require('path');var sox=require('sox');var csv=require(_0x9fad('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x9fad('0x9'));var _=require(_0x9fad('0xa'));var squel=require(_0x9fad('0xb'));var crypto=require(_0x9fad('0xc'));var jsforce=require(_0x9fad('0xd'));var deskjs=require(_0x9fad('0xe'));var toCsv=require('to-csv');var querystring=require(_0x9fad('0xf'));var Papa=require(_0x9fad('0x10'));var Redis=require(_0x9fad('0x11'));var authService=require(_0x9fad('0x12'));var qs=require(_0x9fad('0x13'));var as=require(_0x9fad('0x14'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x9fad('0x15'))(_0x9fad('0x16'));var utils=require(_0x9fad('0x17'));var config=require(_0x9fad('0x18'));var licenseUtil=require(_0x9fad('0x19'));var db=require(_0x9fad('0x1a'))['db'];var jayson=require(_0x9fad('0x1b'));var client=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x5a74f4,_0xeb33a8,_0x2698cd,_0x14f4d1){return new BPromise(function(_0x1645ed,_0x1fc206){var _0x2c18de=_0x14f4d1||client;return _0x2c18de[_0x9fad('0x1c')](_0x5a74f4,_0x2698cd)[_0x9fad('0x1d')](function(_0x554ac9){logger['info'](_0x9fad('0x1e'),_0xeb33a8,_0x9fad('0x1f'));logger[_0x9fad('0x20')](_0x9fad('0x21'),_0xeb33a8,_0x9fad('0x1f'),JSON[_0x9fad('0x22')](_0x554ac9));if(_0x554ac9[_0x9fad('0x23')]){if(_0x554ac9['error']['code']===0x1f4){logger[_0x9fad('0x23')]('VoiceContext,\x20%s,\x20%s',_0xeb33a8,_0x554ac9[_0x9fad('0x23')][_0x9fad('0x24')]);return _0x1fc206(_0x554ac9[_0x9fad('0x23')][_0x9fad('0x24')]);}logger[_0x9fad('0x23')](_0x9fad('0x1e'),_0xeb33a8,_0x554ac9[_0x9fad('0x23')][_0x9fad('0x24')]);return _0x1645ed(_0x554ac9[_0x9fad('0x23')]['message']);}else{logger[_0x9fad('0x25')](_0x9fad('0x1e'),_0xeb33a8,'request\x20sent');_0x1645ed(_0x554ac9[_0x9fad('0x26')][_0x9fad('0x24')]);}})[_0x9fad('0x27')](function(_0x17dfb1){logger[_0x9fad('0x23')](_0x9fad('0x1e'),_0xeb33a8,_0x17dfb1);_0x1fc206(_0x17dfb1);});});}function respondWithStatusCode(_0x13daff,_0x182619){_0x182619=_0x182619||0xcc;return function(_0x26555c){if(_0x26555c){return _0x13daff[_0x9fad('0x28')](_0x182619);}return _0x13daff['status'](_0x182619)[_0x9fad('0x29')]();};}function respondWithResult(_0x53f0e0,_0xddad88){_0xddad88=_0xddad88||0xc8;return function(_0x28ef0d){if(_0x28ef0d){return _0x53f0e0[_0x9fad('0x2a')](_0xddad88)[_0x9fad('0x2b')](_0x28ef0d);}};}function respondWithFilteredResult(_0x3911b5,_0x5c86c0){return function(_0x38e303){if(_0x38e303){var _0x2de22a=typeof _0x5c86c0[_0x9fad('0x2c')]==='undefined'&&typeof _0x5c86c0[_0x9fad('0x2d')]===_0x9fad('0x2e');var _0x2a1997=_0x38e303[_0x9fad('0x2f')];var _0x1d3a1e=_0x2de22a?0x0:_0x5c86c0['offset'];var _0x55ac33=_0x2de22a?_0x38e303[_0x9fad('0x2f')]:_0x5c86c0[_0x9fad('0x2c')]+_0x5c86c0['limit'];var _0x5da468;if(_0x55ac33>=_0x2a1997){_0x55ac33=_0x2a1997;_0x5da468=0xc8;}else{_0x5da468=0xce;}_0x3911b5[_0x9fad('0x2a')](_0x5da468);return _0x3911b5['set'](_0x9fad('0x30'),_0x1d3a1e+'-'+_0x55ac33+'/'+_0x2a1997)[_0x9fad('0x2b')](_0x38e303);}return null;};}function patchUpdates(_0xb032d3){return function(_0x341712){try{jsonpatch[_0x9fad('0x31')](_0x341712,_0xb032d3,!![]);}catch(_0x416123){return BPromise[_0x9fad('0x32')](_0x416123);}return _0x341712[_0x9fad('0x33')]();};}function saveUpdates(_0x131258,_0x1d82e0){return function(_0x849a8b){if(_0x849a8b){return _0x849a8b['update'](_0x131258)[_0x9fad('0x1d')](function(_0xf7b3f8){return _0xf7b3f8;});}return null;};}function removeEntity(_0x1dd344,_0x374882){return function(_0x57928c){if(_0x57928c){return _0x57928c[_0x9fad('0x34')]()['then'](function(){var _0x18cc1e=_0x57928c[_0x9fad('0x35')]({'plain':!![]});var _0x51ec76='Contexts';return db[_0x9fad('0x36')][_0x9fad('0x34')]({'where':{'type':_0x51ec76,'resourceId':_0x18cc1e['id']}})['then'](function(){return _0x57928c;});})[_0x9fad('0x1d')](function(){_0x1dd344[_0x9fad('0x2a')](0xcc)[_0x9fad('0x29')]();});}};}function handleEntityNotFound(_0x1be53d,_0x269321){return function(_0x4614ee){if(!_0x4614ee){_0x1be53d[_0x9fad('0x28')](0x194);}return _0x4614ee;};}function handleError(_0x2169c2,_0x4bf352){_0x4bf352=_0x4bf352||0x1f4;return function(_0x15f102){logger['error'](_0x15f102[_0x9fad('0x37')]);if(_0x15f102[_0x9fad('0x38')]){delete _0x15f102[_0x9fad('0x38')];}_0x2169c2[_0x9fad('0x2a')](_0x4bf352)[_0x9fad('0x39')](_0x15f102);};}exports[_0x9fad('0x3a')]=function(_0x2f4d5f,_0x5bf176){var _0x5e41c0={},_0x45fa3f={},_0x536db3={'count':0x0,'rows':[]};var _0x11f9a2=_[_0x9fad('0x3b')](db['VoiceContext'][_0x9fad('0x3c')],function(_0x3165d7){return{'name':_0x3165d7['fieldName'],'type':_0x3165d7[_0x9fad('0x3d')][_0x9fad('0x3e')]};});_0x45fa3f['model']=_[_0x9fad('0x3b')](_0x11f9a2,_0x9fad('0x38'));_0x45fa3f['query']=_[_0x9fad('0x3f')](_0x2f4d5f[_0x9fad('0x40')]);_0x45fa3f[_0x9fad('0x41')]=_[_0x9fad('0x42')](_0x45fa3f[_0x9fad('0x43')],_0x45fa3f[_0x9fad('0x40')]);_0x5e41c0[_0x9fad('0x44')]=_[_0x9fad('0x42')](_0x45fa3f[_0x9fad('0x43')],qs['fields'](_0x2f4d5f[_0x9fad('0x40')][_0x9fad('0x45')]));_0x5e41c0['attributes']=_0x5e41c0[_0x9fad('0x44')][_0x9fad('0x46')]?_0x5e41c0[_0x9fad('0x44')]:_0x45fa3f[_0x9fad('0x43')];if(!_0x2f4d5f[_0x9fad('0x40')]['hasOwnProperty'](_0x9fad('0x47'))){_0x5e41c0[_0x9fad('0x2d')]=qs[_0x9fad('0x2d')](_0x2f4d5f[_0x9fad('0x40')][_0x9fad('0x2d')]);_0x5e41c0[_0x9fad('0x2c')]=qs[_0x9fad('0x2c')](_0x2f4d5f[_0x9fad('0x40')]['offset']);}_0x5e41c0[_0x9fad('0x48')]=qs[_0x9fad('0x49')](_0x2f4d5f[_0x9fad('0x40')][_0x9fad('0x49')]);_0x5e41c0[_0x9fad('0x4a')]=qs['filters'](_[_0x9fad('0x4b')](_0x2f4d5f['query'],_0x45fa3f[_0x9fad('0x41')]),_0x11f9a2);if(_0x2f4d5f[_0x9fad('0x40')]['filter']){_0x5e41c0[_0x9fad('0x4a')]=_['merge'](_0x5e41c0[_0x9fad('0x4a')],{'$or':_[_0x9fad('0x3b')](_0x11f9a2,function(_0x4b2d6a){if(_0x4b2d6a[_0x9fad('0x3d')]!==_0x9fad('0x4c')){var _0x31c110={};_0x31c110[_0x4b2d6a[_0x9fad('0x38')]]={'$like':'%'+_0x2f4d5f[_0x9fad('0x40')]['filter']+'%'};return _0x31c110;}})});}_0x5e41c0=_[_0x9fad('0x4d')]({},_0x5e41c0,_0x2f4d5f['options']);var _0x48eed6={'where':_0x5e41c0[_0x9fad('0x4a')]};return db[_0x9fad('0x4e')]['count'](_0x48eed6)[_0x9fad('0x1d')](function(_0x472d7f){_0x536db3[_0x9fad('0x2f')]=_0x472d7f;if(_0x2f4d5f['query'][_0x9fad('0x4f')]){_0x5e41c0[_0x9fad('0x50')]=[{'all':!![]}];}return db['VoiceContext'][_0x9fad('0x51')](_0x5e41c0);})[_0x9fad('0x1d')](function(_0x20a303){_0x536db3[_0x9fad('0x52')]=_0x20a303;return _0x536db3;})[_0x9fad('0x1d')](respondWithFilteredResult(_0x5bf176,_0x5e41c0))[_0x9fad('0x27')](handleError(_0x5bf176,null));};exports[_0x9fad('0x53')]=function(_0x9b3f3f,_0x5ac99c){var _0x3e09d1={'raw':![],'where':{'id':_0x9b3f3f['params']['id']}},_0xf20d96={};_0xf20d96[_0x9fad('0x43')]=_[_0x9fad('0x3f')](db[_0x9fad('0x4e')][_0x9fad('0x3c')]);_0xf20d96[_0x9fad('0x40')]=_[_0x9fad('0x3f')](_0x9b3f3f[_0x9fad('0x40')]);_0xf20d96[_0x9fad('0x41')]=_['intersection'](_0xf20d96[_0x9fad('0x43')],_0xf20d96[_0x9fad('0x40')]);_0x3e09d1[_0x9fad('0x44')]=_['intersection'](_0xf20d96[_0x9fad('0x43')],qs[_0x9fad('0x45')](_0x9b3f3f[_0x9fad('0x40')]['fields']));_0x3e09d1[_0x9fad('0x44')]=_0x3e09d1[_0x9fad('0x44')]['length']?_0x3e09d1['attributes']:_0xf20d96[_0x9fad('0x43')];if(_0x9b3f3f[_0x9fad('0x40')][_0x9fad('0x4f')]){_0x3e09d1[_0x9fad('0x50')]=[{'all':!![]}];}_0x3e09d1=_['merge']({},_0x3e09d1,_0x9b3f3f['options']);return db[_0x9fad('0x4e')][_0x9fad('0x54')](_0x3e09d1)[_0x9fad('0x1d')](handleEntityNotFound(_0x5ac99c,null))[_0x9fad('0x1d')](respondWithResult(_0x5ac99c,null))[_0x9fad('0x27')](handleError(_0x5ac99c,null));};exports[_0x9fad('0x55')]=function(_0x95192,_0x100df8,_0x36bc1b){var _0x170b92;return db[_0x9fad('0x4e')][_0x9fad('0x55')](_0x95192[_0x9fad('0x56')],{'raw':!![]})[_0x9fad('0x1d')](function(_0x47a50){_0x170b92=_0x47a50;return db[_0x9fad('0x4e')][_0x9fad('0x51')]({'raw':!![]});})[_0x9fad('0x1d')](function(_0x1121a6){var _0x13a231=fs[_0x9fad('0x57')](path['join'](config[_0x9fad('0x58')],'server/files/templates/context.ejs'),_0x9fad('0x59'));var _0x2ed806=ejs[_0x9fad('0x5a')](_0x13a231,{'contexts':_0x1121a6||[]});fs[_0x9fad('0x5b')]('/etc/asterisk/extensions_xcally_contexts.conf',_0x2ed806);})[_0x9fad('0x1d')](function(){return respondWithRpcPromise(_0x9fad('0x5c'),'create',{'module':'chan_sip.so'});})['then'](function(){var _0x52bb7c=_0x95192[_0x9fad('0x5d')][_0x9fad('0x35')]({'plain':!![]});if(!_0x52bb7c)throw new Error(_0x9fad('0x5e'));if(_0x52bb7c['role']==='user'){var _0x2bb936=_0x170b92[_0x9fad('0x35')]({'plain':!![]});return db[_0x9fad('0x5f')][_0x9fad('0x54')]({'where':{'name':_0x9fad('0x60'),'userProfileId':_0x52bb7c[_0x9fad('0x61')]},'raw':!![]})[_0x9fad('0x1d')](function(_0x1529f5){if(_0x1529f5&&_0x1529f5[_0x9fad('0x62')]===0x0){return db[_0x9fad('0x36')][_0x9fad('0x55')]({'name':_0x2bb936[_0x9fad('0x38')],'resourceId':_0x2bb936['id'],'type':_0x1529f5[_0x9fad('0x38')],'sectionId':_0x1529f5['id']},{})['then'](function(){return _0x170b92;});}else{return _0x170b92;}})[_0x9fad('0x27')](function(_0x21a3c8){logger[_0x9fad('0x23')](_0x9fad('0x63'),_0x21a3c8);throw _0x21a3c8;});}return _0x170b92;})[_0x9fad('0x1d')](respondWithResult(_0x100df8,0xc9))[_0x9fad('0x27')](handleError(_0x100df8,null));};exports[_0x9fad('0x64')]=function(_0xe49554,_0x597635,_0x6b6cc4){var _0x4be059;return db['VoiceContext'][_0x9fad('0x54')]({'where':{'id':_0xe49554['params']['id']}})['then'](handleEntityNotFound(_0x597635,null))[_0x9fad('0x1d')](saveUpdates(_0xe49554[_0x9fad('0x56')],null))[_0x9fad('0x1d')](function(_0x261e5a){if(_0x261e5a){_0x4be059=_0x261e5a;return db[_0x9fad('0x4e')][_0x9fad('0x51')]({'raw':!![]});}})[_0x9fad('0x1d')](function(_0xca82c1){var _0x59c18e=fs['readFileSync'](path['join'](config[_0x9fad('0x58')],_0x9fad('0x65')),_0x9fad('0x59'));var _0x5347c4=ejs['render'](_0x59c18e,{'contexts':_0xca82c1||[]});fs['writeFileSync'](_0x9fad('0x66'),_0x5347c4);})[_0x9fad('0x1d')](function(){return respondWithRpcPromise(_0x9fad('0x5c'),_0x9fad('0x64'),{'module':_0x9fad('0x67')});})[_0x9fad('0x1d')](function(){return _0x4be059;})['then'](respondWithResult(_0x597635,null))[_0x9fad('0x27')](handleError(_0x597635,null));};exports['destroy']=function(_0x3ceb9b,_0x20ca23,_0x660f3e){var _0xf9a638;return db[_0x9fad('0x4e')][_0x9fad('0x54')]({'where':{'id':_0x3ceb9b[_0x9fad('0x68')]['id']}})[_0x9fad('0x1d')](handleEntityNotFound(_0x20ca23,null))[_0x9fad('0x1d')](removeEntity(_0x20ca23,null))[_0x9fad('0x1d')](function(){return db[_0x9fad('0x4e')][_0x9fad('0x51')]({'raw':!![]});})[_0x9fad('0x1d')](function(_0x2ad5e7){var _0x18ac1a=fs[_0x9fad('0x57')](path['join'](config['root'],'server/files/templates/context.ejs'),_0x9fad('0x59'));var _0x21075e=ejs['render'](_0x18ac1a,{'contexts':_0x2ad5e7});fs[_0x9fad('0x5b')](_0x9fad('0x66'),_0x21075e);return respondWithRpcPromise(_0x9fad('0x5c'),_0x9fad('0x34'),{'module':_0x9fad('0x67')});})[_0x9fad('0x27')](handleError(_0x20ca23,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9dcb=['moment','bluebird','request-promise','exports','define','VoiceContext','util','../../config/logger'];(function(_0x34021d,_0x753aa6){var _0x16597b=function(_0x2d040a){while(--_0x2d040a){_0x34021d['push'](_0x34021d['shift']());}};_0x16597b(++_0x753aa6);}(_0x9dcb,0x96));var _0xb9dc=function(_0x397e5f,_0x454c8f){_0x397e5f=_0x397e5f-0x0;var _0x5302b8=_0x9dcb[_0x397e5f];return _0x5302b8;};'use strict';var _=require('lodash');var util=require(_0xb9dc('0x0'));var logger=require(_0xb9dc('0x1'))('api');var moment=require(_0xb9dc('0x2'));var BPromise=require(_0xb9dc('0x3'));var rp=require(_0xb9dc('0x4'));var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require('../../config/environment');var attributes=require('./voiceContext.attributes');module[_0xb9dc('0x5')]=function(_0x54aaad,_0x35f887){return _0x54aaad[_0xb9dc('0x6')](_0xb9dc('0x7'),attributes,{'tableName':'voice_contexts','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0xfffd=['moment','bluebird','request-promise','path','rimraf','../../config/environment','./voiceContext.attributes','exports','define','voice_contexts','lodash','util','../../config/logger','api'];(function(_0x462999,_0x24d200){var _0x4b1366=function(_0x1fa353){while(--_0x1fa353){_0x462999['push'](_0x462999['shift']());}};_0x4b1366(++_0x24d200);}(_0xfffd,0xea));var _0xdfff=function(_0x5f3bf8,_0xd360ee){_0x5f3bf8=_0x5f3bf8-0x0;var _0x474481=_0xfffd[_0x5f3bf8];return _0x474481;};'use strict';var _=require(_0xdfff('0x0'));var util=require(_0xdfff('0x1'));var logger=require(_0xdfff('0x2'))(_0xdfff('0x3'));var moment=require(_0xdfff('0x4'));var BPromise=require(_0xdfff('0x5'));var rp=require(_0xdfff('0x6'));var fs=require('fs');var path=require(_0xdfff('0x7'));var rimraf=require(_0xdfff('0x8'));var config=require(_0xdfff('0x9'));var attributes=require(_0xdfff('0xa'));module[_0xdfff('0xb')]=function(_0x3addb0,_0x566763){return _0x3addb0[_0xdfff('0xc')]('VoiceContext',attributes,{'tableName':_0xdfff('0xd'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3264=['jayson/promise','client','http','request','then','request\x20sent','debug','VoiceContext,\x20%s,\x20%s,\x20%s','error','VoiceContext,\x20%s,\x20%s','message','result','catch','util','moment','bluebird','randomstring','../../config/utils','../../config/environment'];(function(_0x5c2c78,_0x928e77){var _0x3e655a=function(_0x445180){while(--_0x445180){_0x5c2c78['push'](_0x5c2c78['shift']());}};_0x3e655a(++_0x928e77);}(_0x3264,0x7f));var _0x4326=function(_0x6cf19c,_0x2f3f02){_0x6cf19c=_0x6cf19c-0x0;var _0xce14f3=_0x3264[_0x6cf19c];return _0xce14f3;};'use strict';var _=require('lodash');var util=require(_0x4326('0x0'));var moment=require(_0x4326('0x1'));var BPromise=require(_0x4326('0x2'));var rs=require(_0x4326('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x4326('0x4'));var logger=require('../../config/logger')('rpc');var config=require(_0x4326('0x5'));var jayson=require(_0x4326('0x6'));var client=jayson[_0x4326('0x7')][_0x4326('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x56bcce,_0x3a7544,_0x2993a1){return new BPromise(function(_0x22071c,_0x129365){return client[_0x4326('0x9')](_0x56bcce,_0x2993a1)[_0x4326('0xa')](function(_0x1609f){logger['info']('VoiceContext,\x20%s,\x20%s',_0x3a7544,_0x4326('0xb'));logger[_0x4326('0xc')](_0x4326('0xd'),_0x3a7544,_0x4326('0xb'),JSON['stringify'](_0x1609f));if(_0x1609f['error']){if(_0x1609f[_0x4326('0xe')]['code']===0x1f4){logger[_0x4326('0xe')](_0x4326('0xf'),_0x3a7544,_0x1609f[_0x4326('0xe')]['message']);return _0x129365(_0x1609f['error'][_0x4326('0x10')]);}logger['error']('VoiceContext,\x20%s,\x20%s',_0x3a7544,_0x1609f[_0x4326('0xe')][_0x4326('0x10')]);return _0x22071c(_0x1609f[_0x4326('0xe')][_0x4326('0x10')]);}else{logger['info'](_0x4326('0xf'),_0x3a7544,_0x4326('0xb'));_0x22071c(_0x1609f[_0x4326('0x11')]['message']);}})[_0x4326('0x12')](function(_0x40c169){logger[_0x4326('0xe')](_0x4326('0xf'),_0x3a7544,_0x40c169);_0x129365(_0x40c169);});});}
\ No newline at end of file
+var _0xe39a=['request','then','info','VoiceContext,\x20%s,\x20%s','request\x20sent','debug','VoiceContext,\x20%s,\x20%s,\x20%s','stringify','error','message','catch','util','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','jayson/promise','client','http'];(function(_0x30abff,_0x5f2c5f){var _0x4c571e=function(_0x43de9a){while(--_0x43de9a){_0x30abff['push'](_0x30abff['shift']());}};_0x4c571e(++_0x5f2c5f);}(_0xe39a,0xb3));var _0xae39=function(_0x5ab93c,_0x51dd70){_0x5ab93c=_0x5ab93c-0x0;var _0x2a904b=_0xe39a[_0x5ab93c];return _0x2a904b;};'use strict';var _=require('lodash');var util=require(_0xae39('0x0'));var moment=require('moment');var BPromise=require(_0xae39('0x1'));var rs=require(_0xae39('0x2'));var fs=require('fs');var Redis=require(_0xae39('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0xae39('0x4'));var logger=require(_0xae39('0x5'))(_0xae39('0x6'));var config=require('../../config/environment');var jayson=require(_0xae39('0x7'));var client=jayson[_0xae39('0x8')][_0xae39('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x161878,_0x369eb3,_0x44144a){return new BPromise(function(_0x393bce,_0x3db872){return client[_0xae39('0xa')](_0x161878,_0x44144a)[_0xae39('0xb')](function(_0x452ce8){logger[_0xae39('0xc')](_0xae39('0xd'),_0x369eb3,_0xae39('0xe'));logger[_0xae39('0xf')](_0xae39('0x10'),_0x369eb3,'request\x20sent',JSON[_0xae39('0x11')](_0x452ce8));if(_0x452ce8['error']){if(_0x452ce8['error']['code']===0x1f4){logger['error']('VoiceContext,\x20%s,\x20%s',_0x369eb3,_0x452ce8[_0xae39('0x12')]['message']);return _0x3db872(_0x452ce8[_0xae39('0x12')][_0xae39('0x13')]);}logger[_0xae39('0x12')](_0xae39('0xd'),_0x369eb3,_0x452ce8[_0xae39('0x12')][_0xae39('0x13')]);return _0x393bce(_0x452ce8[_0xae39('0x12')]['message']);}else{logger[_0xae39('0xc')](_0xae39('0xd'),_0x369eb3,'request\x20sent');_0x393bce(_0x452ce8['result'][_0xae39('0x13')]);}})[_0xae39('0x14')](function(_0x10870b){logger[_0xae39('0x12')](_0xae39('0xd'),_0x369eb3,_0x10870b);_0x3db872(_0x10870b);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x51a0=['connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./voiceDialReport.controller','get','isAuthenticated','index','describe','put','/:id','update','delete','destroy','exports','multer','util','path'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x51a0,0x1c9));var _0x051a=function(_0x5b7e2e,_0x689e00){_0x5b7e2e=_0x5b7e2e-0x0;var _0x31c1a2=_0x51a0[_0x5b7e2e];return _0x31c1a2;};'use strict';var multer=require(_0x051a('0x0'));var util=require(_0x051a('0x1'));var path=require(_0x051a('0x2'));var timeout=require(_0x051a('0x3'));var express=require(_0x051a('0x4'));var router=express[_0x051a('0x5')]();var fs_extra=require(_0x051a('0x6'));var auth=require(_0x051a('0x7'));var interaction=require(_0x051a('0x8'));var config=require('../../config/environment');var controller=require(_0x051a('0x9'));router[_0x051a('0xa')]('/',auth[_0x051a('0xb')](),controller[_0x051a('0xc')]);router[_0x051a('0xa')]('/describe',auth[_0x051a('0xb')](),controller[_0x051a('0xd')]);router[_0x051a('0xa')]('/:id',auth[_0x051a('0xb')](),controller['show']);router['post']('/',auth[_0x051a('0xb')](),controller['create']);router[_0x051a('0xe')](_0x051a('0xf'),auth[_0x051a('0xb')](),controller[_0x051a('0x10')]);router[_0x051a('0x11')](_0x051a('0xf'),auth[_0x051a('0xb')](),controller[_0x051a('0x12')]);module[_0x051a('0x13')]=router;
\ No newline at end of file
+var _0x6d37=['util','path','connect-timeout','express','Router','../../components/auth/service','../../config/environment','get','isAuthenticated','index','describe','show','post','create','put','/:id','update','delete','destroy','multer'];(function(_0x8b9323,_0x3f782c){var _0x36bf3b=function(_0x5233f4){while(--_0x5233f4){_0x8b9323['push'](_0x8b9323['shift']());}};_0x36bf3b(++_0x3f782c);}(_0x6d37,0x103));var _0x76d3=function(_0x403933,_0x49b813){_0x403933=_0x403933-0x0;var _0x126e09=_0x6d37[_0x403933];return _0x126e09;};'use strict';var multer=require(_0x76d3('0x0'));var util=require(_0x76d3('0x1'));var path=require(_0x76d3('0x2'));var timeout=require(_0x76d3('0x3'));var express=require(_0x76d3('0x4'));var router=express[_0x76d3('0x5')]();var fs_extra=require('fs-extra');var auth=require(_0x76d3('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0x76d3('0x7'));var controller=require('./voiceDialReport.controller');router[_0x76d3('0x8')]('/',auth[_0x76d3('0x9')](),controller[_0x76d3('0xa')]);router[_0x76d3('0x8')]('/describe',auth[_0x76d3('0x9')](),controller[_0x76d3('0xb')]);router[_0x76d3('0x8')]('/:id',auth[_0x76d3('0x9')](),controller[_0x76d3('0xc')]);router[_0x76d3('0xd')]('/',auth[_0x76d3('0x9')](),controller[_0x76d3('0xe')]);router[_0x76d3('0xf')](_0x76d3('0x10'),auth[_0x76d3('0x9')](),controller[_0x76d3('0x11')]);router[_0x76d3('0x12')](_0x76d3('0x10'),auth[_0x76d3('0x9')](),controller[_0x76d3('0x13')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6f0d=['STRING','INTEGER','DATE','called,connect,complete','exports'];(function(_0x55c961,_0x1b9995){var _0x198e36=function(_0x245060){while(--_0x245060){_0x55c961['push'](_0x55c961['shift']());}};_0x198e36(++_0x1b9995);}(_0x6f0d,0x16c));var _0xd6f0=function(_0x325e47,_0x54ee7d){_0x325e47=_0x325e47-0x0;var _0x2af010=_0x6f0d[_0x325e47];return _0x2af010;};'use strict';var Sequelize=require('sequelize');module[_0xd6f0('0x0')]={'privilege':{'type':Sequelize[_0xd6f0('0x1')]},'channel':{'type':Sequelize[_0xd6f0('0x1')]},'channelstate':{'type':Sequelize[_0xd6f0('0x2')]},'channelstatedesc':{'type':Sequelize['STRING']},'calleridnum':{'type':Sequelize[_0xd6f0('0x1')]},'calleridname':{'type':Sequelize[_0xd6f0('0x1')]},'connectedlinenum':{'type':Sequelize[_0xd6f0('0x1')]},'connectedlinename':{'type':Sequelize[_0xd6f0('0x1')]},'language':{'type':Sequelize[_0xd6f0('0x1')]},'accountcode':{'type':Sequelize['STRING']},'context':{'type':Sequelize[_0xd6f0('0x1')]},'exten':{'type':Sequelize['STRING']},'priority':{'type':Sequelize[_0xd6f0('0x2')]},'uniqueid':{'type':Sequelize[_0xd6f0('0x1')]},'linkedid':{'type':Sequelize[_0xd6f0('0x1')]},'destchannel':{'type':Sequelize[_0xd6f0('0x1')]},'destchannelstate':{'type':Sequelize['INTEGER']},'destchannelstatedesc':{'type':Sequelize['STRING']},'destcalleridnum':{'type':Sequelize[_0xd6f0('0x1')]},'destcalleridname':{'type':Sequelize[_0xd6f0('0x1')]},'destconnectedlinenum':{'type':Sequelize[_0xd6f0('0x1')]},'destconnectedlinename':{'type':Sequelize[_0xd6f0('0x1')]},'destlanguage':{'type':Sequelize[_0xd6f0('0x1')]},'destaccountcode':{'type':Sequelize['STRING']},'destcontext':{'type':Sequelize[_0xd6f0('0x1')]},'destexten':{'type':Sequelize[_0xd6f0('0x1')]},'destpriority':{'type':Sequelize[_0xd6f0('0x2')]},'destuniqueid':{'type':Sequelize[_0xd6f0('0x1')]},'destlinkedid':{'type':Sequelize['STRING']},'dialstring':{'type':Sequelize[_0xd6f0('0x1')]},'dialstatus':{'type':Sequelize[_0xd6f0('0x1')]},'starttime':{'type':Sequelize[_0xd6f0('0x3')]},'answertime':{'type':Sequelize[_0xd6f0('0x3')]},'endtime':{'type':Sequelize[_0xd6f0('0x3')]},'lastevent':{'type':Sequelize[_0xd6f0('0x1')],'comment':_0xd6f0('0x4')},'routeId':{'type':Sequelize[_0xd6f0('0x2')]},'duration':{'type':Sequelize[_0xd6f0('0x2')]},'holdtime':{'type':Sequelize['INTEGER']},'billableseconds':{'type':Sequelize[_0xd6f0('0x2')]}};
\ No newline at end of file
+var _0x3e74=['DATE','sequelize','STRING','INTEGER'];(function(_0x334841,_0x2bbc4c){var _0x5beb4b=function(_0x4bea72){while(--_0x4bea72){_0x334841['push'](_0x334841['shift']());}};_0x5beb4b(++_0x2bbc4c);}(_0x3e74,0x175));var _0x43e7=function(_0x5692bd,_0x40d943){_0x5692bd=_0x5692bd-0x0;var _0x167766=_0x3e74[_0x5692bd];return _0x167766;};'use strict';var Sequelize=require(_0x43e7('0x0'));module['exports']={'privilege':{'type':Sequelize[_0x43e7('0x1')]},'channel':{'type':Sequelize[_0x43e7('0x1')]},'channelstate':{'type':Sequelize[_0x43e7('0x2')]},'channelstatedesc':{'type':Sequelize['STRING']},'calleridnum':{'type':Sequelize['STRING']},'calleridname':{'type':Sequelize[_0x43e7('0x1')]},'connectedlinenum':{'type':Sequelize['STRING']},'connectedlinename':{'type':Sequelize[_0x43e7('0x1')]},'language':{'type':Sequelize[_0x43e7('0x1')]},'accountcode':{'type':Sequelize[_0x43e7('0x1')]},'context':{'type':Sequelize[_0x43e7('0x1')]},'exten':{'type':Sequelize[_0x43e7('0x1')]},'priority':{'type':Sequelize['INTEGER']},'uniqueid':{'type':Sequelize[_0x43e7('0x1')]},'linkedid':{'type':Sequelize[_0x43e7('0x1')]},'destchannel':{'type':Sequelize[_0x43e7('0x1')]},'destchannelstate':{'type':Sequelize[_0x43e7('0x2')]},'destchannelstatedesc':{'type':Sequelize[_0x43e7('0x1')]},'destcalleridnum':{'type':Sequelize['STRING']},'destcalleridname':{'type':Sequelize[_0x43e7('0x1')]},'destconnectedlinenum':{'type':Sequelize['STRING']},'destconnectedlinename':{'type':Sequelize['STRING']},'destlanguage':{'type':Sequelize[_0x43e7('0x1')]},'destaccountcode':{'type':Sequelize[_0x43e7('0x1')]},'destcontext':{'type':Sequelize['STRING']},'destexten':{'type':Sequelize[_0x43e7('0x1')]},'destpriority':{'type':Sequelize['INTEGER']},'destuniqueid':{'type':Sequelize[_0x43e7('0x1')]},'destlinkedid':{'type':Sequelize[_0x43e7('0x1')]},'dialstring':{'type':Sequelize['STRING']},'dialstatus':{'type':Sequelize[_0x43e7('0x1')]},'starttime':{'type':Sequelize[_0x43e7('0x3')]},'answertime':{'type':Sequelize[_0x43e7('0x3')]},'endtime':{'type':Sequelize[_0x43e7('0x3')]},'lastevent':{'type':Sequelize['STRING'],'comment':'called,connect,complete'},'routeId':{'type':Sequelize[_0x43e7('0x2')]},'duration':{'type':Sequelize[_0x43e7('0x2')]},'holdtime':{'type':Sequelize[_0x43e7('0x2')]},'billableseconds':{'type':Sequelize['INTEGER']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x575b=['catch','create','body','params','describe','eml-format','rimraf','zip-dir','moment','bluebird','mustache','sox','to-csv','ejs','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','undefined','count','offset','limit','set','apply','update','then','destroy','error','stack','VoiceDialReport','rawAttributes','fieldName','type','key','model','map','name','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','merge','VIRTUAL','options','includeAll','include','findAll','rows','show','find'];(function(_0x34467b,_0x423ab6){var _0x4733c3=function(_0x55c381){while(--_0x55c381){_0x34467b['push'](_0x34467b['shift']());}};_0x4733c3(++_0x423ab6);}(_0x575b,0x1af));var _0xb575=function(_0x17d9e3,_0x1f969c){_0x17d9e3=_0x17d9e3-0x0;var _0x14192d=_0x575b[_0x17d9e3];return _0x14192d;};'use strict';var emlformat=require(_0xb575('0x0'));var rimraf=require(_0xb575('0x1'));var zipdir=require(_0xb575('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xb575('0x3'));var BPromise=require(_0xb575('0x4'));var Mustache=require(_0xb575('0x5'));var util=require('util');var path=require('path');var sox=require(_0xb575('0x6'));var csv=require(_0xb575('0x7'));var ejs=require(_0xb575('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xb575('0x9'));var deskjs=require(_0xb575('0xa'));var toCsv=require(_0xb575('0x7'));var querystring=require(_0xb575('0xb'));var Papa=require(_0xb575('0xc'));var Redis=require(_0xb575('0xd'));var authService=require(_0xb575('0xe'));var qs=require('../../components/parsers/qs');var as=require(_0xb575('0xf'));var hardwareService=require(_0xb575('0x10'));var logger=require(_0xb575('0x11'))('api');var utils=require(_0xb575('0x12'));var config=require(_0xb575('0x13'));var licenseUtil=require(_0xb575('0x14'));var db=require(_0xb575('0x15'))['db'];function respondWithStatusCode(_0x540a13,_0x32c7a3){_0x32c7a3=_0x32c7a3||0xcc;return function(_0xa1c64c){if(_0xa1c64c){return _0x540a13[_0xb575('0x16')](_0x32c7a3);}return _0x540a13[_0xb575('0x17')](_0x32c7a3)[_0xb575('0x18')]();};}function respondWithResult(_0x57ba4,_0x167404){_0x167404=_0x167404||0xc8;return function(_0x1d0111){if(_0x1d0111){return _0x57ba4['status'](_0x167404)[_0xb575('0x19')](_0x1d0111);}};}function respondWithFilteredResult(_0x73e397,_0x2ee3b4){return function(_0x1334e2){if(_0x1334e2){var _0x133626=typeof _0x2ee3b4['offset']===_0xb575('0x1a')&&typeof _0x2ee3b4['limit']===_0xb575('0x1a');var _0x46d27f=_0x1334e2[_0xb575('0x1b')];var _0x43166d=_0x133626?0x0:_0x2ee3b4[_0xb575('0x1c')];var _0x4f1e14=_0x133626?_0x1334e2[_0xb575('0x1b')]:_0x2ee3b4[_0xb575('0x1c')]+_0x2ee3b4[_0xb575('0x1d')];var _0x10c4ca;if(_0x4f1e14>=_0x46d27f){_0x4f1e14=_0x46d27f;_0x10c4ca=0xc8;}else{_0x10c4ca=0xce;}_0x73e397[_0xb575('0x17')](_0x10c4ca);return _0x73e397[_0xb575('0x1e')]('Content-Range',_0x43166d+'-'+_0x4f1e14+'/'+_0x46d27f)[_0xb575('0x19')](_0x1334e2);}return null;};}function patchUpdates(_0x17c465){return function(_0x3ee02e){try{jsonpatch[_0xb575('0x1f')](_0x3ee02e,_0x17c465,!![]);}catch(_0x2c6cff){return BPromise['reject'](_0x2c6cff);}return _0x3ee02e['save']();};}function saveUpdates(_0x482fb2,_0x555b90){return function(_0x540496){if(_0x540496){return _0x540496[_0xb575('0x20')](_0x482fb2)[_0xb575('0x21')](function(_0x3b117e){return _0x3b117e;});}return null;};}function removeEntity(_0x40159f,_0x1669c7){return function(_0x4b7555){if(_0x4b7555){return _0x4b7555[_0xb575('0x22')]()[_0xb575('0x21')](function(){_0x40159f['status'](0xcc)[_0xb575('0x18')]();});}};}function handleEntityNotFound(_0x444a35,_0x87a0a2){return function(_0x487dad){if(!_0x487dad){_0x444a35['sendStatus'](0x194);}return _0x487dad;};}function handleError(_0x4516c1,_0xfeb0f1){_0xfeb0f1=_0xfeb0f1||0x1f4;return function(_0x38b1ae){logger[_0xb575('0x23')](_0x38b1ae[_0xb575('0x24')]);if(_0x38b1ae['name']){delete _0x38b1ae['name'];}_0x4516c1[_0xb575('0x17')](_0xfeb0f1)['send'](_0x38b1ae);};}exports['index']=function(_0x44897d,_0x4a64c0){var _0x20e677={},_0x1e5944={},_0x2f18e7={'count':0x0,'rows':[]};var _0x394312=_['map'](db[_0xb575('0x25')][_0xb575('0x26')],function(_0xc5847a){return{'name':_0xc5847a[_0xb575('0x27')],'type':_0xc5847a[_0xb575('0x28')][_0xb575('0x29')]};});_0x1e5944[_0xb575('0x2a')]=_[_0xb575('0x2b')](_0x394312,_0xb575('0x2c'));_0x1e5944[_0xb575('0x2d')]=_[_0xb575('0x2e')](_0x44897d[_0xb575('0x2d')]);_0x1e5944[_0xb575('0x2f')]=_[_0xb575('0x30')](_0x1e5944[_0xb575('0x2a')],_0x1e5944['query']);_0x20e677[_0xb575('0x31')]=_[_0xb575('0x30')](_0x1e5944[_0xb575('0x2a')],qs[_0xb575('0x32')](_0x44897d[_0xb575('0x2d')][_0xb575('0x32')]));_0x20e677[_0xb575('0x31')]=_0x20e677[_0xb575('0x31')][_0xb575('0x33')]?_0x20e677[_0xb575('0x31')]:_0x1e5944[_0xb575('0x2a')];if(!_0x44897d['query'][_0xb575('0x34')](_0xb575('0x35'))){_0x20e677[_0xb575('0x1d')]=qs['limit'](_0x44897d[_0xb575('0x2d')][_0xb575('0x1d')]);_0x20e677[_0xb575('0x1c')]=qs['offset'](_0x44897d[_0xb575('0x2d')]['offset']);}_0x20e677['order']=qs[_0xb575('0x36')](_0x44897d[_0xb575('0x2d')][_0xb575('0x36')]);_0x20e677[_0xb575('0x37')]=qs[_0xb575('0x2f')](_[_0xb575('0x38')](_0x44897d['query'],_0x1e5944[_0xb575('0x2f')]),_0x394312);if(_0x44897d[_0xb575('0x2d')]['filter']){_0x20e677['where']=_[_0xb575('0x39')](_0x20e677[_0xb575('0x37')],{'$or':_[_0xb575('0x2b')](_0x394312,function(_0x45c5e5){if(_0x45c5e5[_0xb575('0x28')]!==_0xb575('0x3a')){var _0x4fe648={};_0x4fe648[_0x45c5e5[_0xb575('0x2c')]]={'$like':'%'+_0x44897d[_0xb575('0x2d')]['filter']+'%'};return _0x4fe648;}})});}_0x20e677=_['merge']({},_0x20e677,_0x44897d[_0xb575('0x3b')]);var _0x229f4d={'where':_0x20e677[_0xb575('0x37')]};return db[_0xb575('0x25')][_0xb575('0x1b')](_0x229f4d)[_0xb575('0x21')](function(_0xae1739){_0x2f18e7[_0xb575('0x1b')]=_0xae1739;if(_0x44897d[_0xb575('0x2d')][_0xb575('0x3c')]){_0x20e677[_0xb575('0x3d')]=[{'all':!![]}];}return db['VoiceDialReport'][_0xb575('0x3e')](_0x20e677);})['then'](function(_0x5231b8){_0x2f18e7[_0xb575('0x3f')]=_0x5231b8;return _0x2f18e7;})['then'](respondWithFilteredResult(_0x4a64c0,_0x20e677))['catch'](handleError(_0x4a64c0,null));};exports[_0xb575('0x40')]=function(_0x33ffbd,_0x5e38a2){var _0x4f25a0={'raw':!![],'where':{'id':_0x33ffbd['params']['id']}},_0x57686e={};_0x57686e['model']=_[_0xb575('0x2e')](db[_0xb575('0x25')][_0xb575('0x26')]);_0x57686e[_0xb575('0x2d')]=_[_0xb575('0x2e')](_0x33ffbd['query']);_0x57686e[_0xb575('0x2f')]=_[_0xb575('0x30')](_0x57686e[_0xb575('0x2a')],_0x57686e[_0xb575('0x2d')]);_0x4f25a0[_0xb575('0x31')]=_['intersection'](_0x57686e['model'],qs[_0xb575('0x32')](_0x33ffbd[_0xb575('0x2d')][_0xb575('0x32')]));_0x4f25a0[_0xb575('0x31')]=_0x4f25a0[_0xb575('0x31')][_0xb575('0x33')]?_0x4f25a0[_0xb575('0x31')]:_0x57686e[_0xb575('0x2a')];if(_0x33ffbd[_0xb575('0x2d')]['includeAll']){_0x4f25a0[_0xb575('0x3d')]=[{'all':!![]}];}_0x4f25a0=_[_0xb575('0x39')]({},_0x4f25a0,_0x33ffbd['options']);return db[_0xb575('0x25')][_0xb575('0x41')](_0x4f25a0)['then'](handleEntityNotFound(_0x5e38a2,null))[_0xb575('0x21')](respondWithResult(_0x5e38a2,null))[_0xb575('0x42')](handleError(_0x5e38a2,null));};exports[_0xb575('0x43')]=function(_0x502688,_0x373174){return db[_0xb575('0x25')][_0xb575('0x43')](_0x502688[_0xb575('0x44')],{})[_0xb575('0x21')](respondWithResult(_0x373174,0xc9))[_0xb575('0x42')](handleError(_0x373174,null));};exports[_0xb575('0x20')]=function(_0xe57611,_0x107571){if(_0xe57611['body']['id']){delete _0xe57611[_0xb575('0x44')]['id'];}return db[_0xb575('0x25')]['find']({'where':{'id':_0xe57611['params']['id']}})['then'](handleEntityNotFound(_0x107571,null))[_0xb575('0x21')](saveUpdates(_0xe57611[_0xb575('0x44')],null))['then'](respondWithResult(_0x107571,null))[_0xb575('0x42')](handleError(_0x107571,null));};exports[_0xb575('0x22')]=function(_0x7dad38,_0x7852c8){return db[_0xb575('0x25')][_0xb575('0x41')]({'where':{'id':_0x7dad38[_0xb575('0x45')]['id']}})['then'](handleEntityNotFound(_0x7852c8,null))[_0xb575('0x21')](removeEntity(_0x7852c8,null))[_0xb575('0x42')](handleError(_0x7852c8,null));};exports[_0xb575('0x46')]=function(_0x42d8f0,_0x92e45b){return db[_0xb575('0x25')]['describe']()[_0xb575('0x21')](respondWithResult(_0x92e45b,null))['catch'](handleError(_0x92e45b,null));};
\ No newline at end of file
+var _0x112b=['fieldName','type','model','query','keys','filters','intersection','fields','length','attributes','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','findAll','show','params','includeAll','catch','create','body','find','describe','zip-dir','fast-json-patch','request-promise','moment','bluebird','path','sox','ejs','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','Content-Range','apply','reject','save','update','then','destroy','error','name','send','index','map','VoiceDialReport','rawAttributes'];(function(_0x30d2f5,_0x415413){var _0x402667=function(_0x595461){while(--_0x595461){_0x30d2f5['push'](_0x30d2f5['shift']());}};_0x402667(++_0x415413);}(_0x112b,0xac));var _0xb112=function(_0x4ed520,_0x21be63){_0x4ed520=_0x4ed520-0x0;var _0x4415a6=_0x112b[_0x4ed520];return _0x4415a6;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xb112('0x0'));var jsonpatch=require(_0xb112('0x1'));var rp=require(_0xb112('0x2'));var moment=require(_0xb112('0x3'));var BPromise=require(_0xb112('0x4'));var Mustache=require('mustache');var util=require('util');var path=require(_0xb112('0x5'));var sox=require(_0xb112('0x6'));var csv=require('to-csv');var ejs=require(_0xb112('0x7'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0xb112('0x8'));var crypto=require(_0xb112('0x9'));var jsforce=require(_0xb112('0xa'));var deskjs=require(_0xb112('0xb'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xb112('0xc'));var Redis=require(_0xb112('0xd'));var authService=require(_0xb112('0xe'));var qs=require(_0xb112('0xf'));var as=require(_0xb112('0x10'));var hardwareService=require(_0xb112('0x11'));var logger=require(_0xb112('0x12'))(_0xb112('0x13'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0xb112('0x14'));var db=require(_0xb112('0x15'))['db'];function respondWithStatusCode(_0x44eb47,_0x2aede6){_0x2aede6=_0x2aede6||0xcc;return function(_0x32af82){if(_0x32af82){return _0x44eb47[_0xb112('0x16')](_0x2aede6);}return _0x44eb47[_0xb112('0x17')](_0x2aede6)[_0xb112('0x18')]();};}function respondWithResult(_0x2b3cd1,_0x3eb1af){_0x3eb1af=_0x3eb1af||0xc8;return function(_0xf53a6d){if(_0xf53a6d){return _0x2b3cd1[_0xb112('0x17')](_0x3eb1af)[_0xb112('0x19')](_0xf53a6d);}};}function respondWithFilteredResult(_0x5ada9a,_0x303049){return function(_0x4ab122){if(_0x4ab122){var _0x588bbc=typeof _0x303049[_0xb112('0x1a')]===_0xb112('0x1b')&&typeof _0x303049[_0xb112('0x1c')]===_0xb112('0x1b');var _0x13d778=_0x4ab122[_0xb112('0x1d')];var _0xc5b971=_0x588bbc?0x0:_0x303049[_0xb112('0x1a')];var _0x1f0dc2=_0x588bbc?_0x4ab122[_0xb112('0x1d')]:_0x303049[_0xb112('0x1a')]+_0x303049['limit'];var _0xd6c248;if(_0x1f0dc2>=_0x13d778){_0x1f0dc2=_0x13d778;_0xd6c248=0xc8;}else{_0xd6c248=0xce;}_0x5ada9a[_0xb112('0x17')](_0xd6c248);return _0x5ada9a['set'](_0xb112('0x1e'),_0xc5b971+'-'+_0x1f0dc2+'/'+_0x13d778)['json'](_0x4ab122);}return null;};}function patchUpdates(_0x35bffe){return function(_0x39b4d2){try{jsonpatch[_0xb112('0x1f')](_0x39b4d2,_0x35bffe,!![]);}catch(_0x360643){return BPromise[_0xb112('0x20')](_0x360643);}return _0x39b4d2[_0xb112('0x21')]();};}function saveUpdates(_0x584e30,_0xb6992d){return function(_0x5ccebe){if(_0x5ccebe){return _0x5ccebe[_0xb112('0x22')](_0x584e30)[_0xb112('0x23')](function(_0x271235){return _0x271235;});}return null;};}function removeEntity(_0x37f455,_0x3c39bb){return function(_0x1f8c3e){if(_0x1f8c3e){return _0x1f8c3e[_0xb112('0x24')]()[_0xb112('0x23')](function(){_0x37f455[_0xb112('0x17')](0xcc)[_0xb112('0x18')]();});}};}function handleEntityNotFound(_0x250c5c,_0x1e255a){return function(_0x11df88){if(!_0x11df88){_0x250c5c['sendStatus'](0x194);}return _0x11df88;};}function handleError(_0x4bf80f,_0x233ccc){_0x233ccc=_0x233ccc||0x1f4;return function(_0x220181){logger[_0xb112('0x25')](_0x220181['stack']);if(_0x220181[_0xb112('0x26')]){delete _0x220181[_0xb112('0x26')];}_0x4bf80f[_0xb112('0x17')](_0x233ccc)[_0xb112('0x27')](_0x220181);};}exports[_0xb112('0x28')]=function(_0x22e3ad,_0x51fb95){var _0x408ce0={},_0x4a181c={},_0x297093={'count':0x0,'rows':[]};var _0x10e65a=_[_0xb112('0x29')](db[_0xb112('0x2a')][_0xb112('0x2b')],function(_0x19fb48){return{'name':_0x19fb48[_0xb112('0x2c')],'type':_0x19fb48[_0xb112('0x2d')]['key']};});_0x4a181c[_0xb112('0x2e')]=_['map'](_0x10e65a,_0xb112('0x26'));_0x4a181c[_0xb112('0x2f')]=_[_0xb112('0x30')](_0x22e3ad[_0xb112('0x2f')]);_0x4a181c[_0xb112('0x31')]=_['intersection'](_0x4a181c['model'],_0x4a181c[_0xb112('0x2f')]);_0x408ce0['attributes']=_[_0xb112('0x32')](_0x4a181c[_0xb112('0x2e')],qs['fields'](_0x22e3ad['query'][_0xb112('0x33')]));_0x408ce0['attributes']=_0x408ce0['attributes'][_0xb112('0x34')]?_0x408ce0[_0xb112('0x35')]:_0x4a181c[_0xb112('0x2e')];if(!_0x22e3ad[_0xb112('0x2f')][_0xb112('0x36')](_0xb112('0x37'))){_0x408ce0[_0xb112('0x1c')]=qs[_0xb112('0x1c')](_0x22e3ad['query']['limit']);_0x408ce0['offset']=qs[_0xb112('0x1a')](_0x22e3ad[_0xb112('0x2f')][_0xb112('0x1a')]);}_0x408ce0['order']=qs[_0xb112('0x38')](_0x22e3ad[_0xb112('0x2f')][_0xb112('0x38')]);_0x408ce0[_0xb112('0x39')]=qs[_0xb112('0x31')](_[_0xb112('0x3a')](_0x22e3ad[_0xb112('0x2f')],_0x4a181c['filters']),_0x10e65a);if(_0x22e3ad[_0xb112('0x2f')][_0xb112('0x3b')]){_0x408ce0[_0xb112('0x39')]=_[_0xb112('0x3c')](_0x408ce0[_0xb112('0x39')],{'$or':_[_0xb112('0x29')](_0x10e65a,function(_0x48597b){if(_0x48597b[_0xb112('0x2d')]!==_0xb112('0x3d')){var _0x58e1b1={};_0x58e1b1[_0x48597b['name']]={'$like':'%'+_0x22e3ad[_0xb112('0x2f')][_0xb112('0x3b')]+'%'};return _0x58e1b1;}})});}_0x408ce0=_[_0xb112('0x3c')]({},_0x408ce0,_0x22e3ad[_0xb112('0x3e')]);var _0x282215={'where':_0x408ce0[_0xb112('0x39')]};return db[_0xb112('0x2a')]['count'](_0x282215)[_0xb112('0x23')](function(_0x465c3a){_0x297093[_0xb112('0x1d')]=_0x465c3a;if(_0x22e3ad[_0xb112('0x2f')]['includeAll']){_0x408ce0['include']=[{'all':!![]}];}return db[_0xb112('0x2a')][_0xb112('0x3f')](_0x408ce0);})[_0xb112('0x23')](function(_0x33ff10){_0x297093['rows']=_0x33ff10;return _0x297093;})['then'](respondWithFilteredResult(_0x51fb95,_0x408ce0))['catch'](handleError(_0x51fb95,null));};exports[_0xb112('0x40')]=function(_0xe018e7,_0xdb8b23){var _0x164bdf={'raw':!![],'where':{'id':_0xe018e7[_0xb112('0x41')]['id']}},_0x5deed0={};_0x5deed0['model']=_[_0xb112('0x30')](db[_0xb112('0x2a')][_0xb112('0x2b')]);_0x5deed0[_0xb112('0x2f')]=_[_0xb112('0x30')](_0xe018e7[_0xb112('0x2f')]);_0x5deed0[_0xb112('0x31')]=_['intersection'](_0x5deed0[_0xb112('0x2e')],_0x5deed0[_0xb112('0x2f')]);_0x164bdf[_0xb112('0x35')]=_[_0xb112('0x32')](_0x5deed0[_0xb112('0x2e')],qs[_0xb112('0x33')](_0xe018e7[_0xb112('0x2f')][_0xb112('0x33')]));_0x164bdf[_0xb112('0x35')]=_0x164bdf[_0xb112('0x35')][_0xb112('0x34')]?_0x164bdf[_0xb112('0x35')]:_0x5deed0[_0xb112('0x2e')];if(_0xe018e7[_0xb112('0x2f')][_0xb112('0x42')]){_0x164bdf['include']=[{'all':!![]}];}_0x164bdf=_['merge']({},_0x164bdf,_0xe018e7[_0xb112('0x3e')]);return db[_0xb112('0x2a')]['find'](_0x164bdf)[_0xb112('0x23')](handleEntityNotFound(_0xdb8b23,null))[_0xb112('0x23')](respondWithResult(_0xdb8b23,null))[_0xb112('0x43')](handleError(_0xdb8b23,null));};exports[_0xb112('0x44')]=function(_0x2205ca,_0x4d8461){return db[_0xb112('0x2a')][_0xb112('0x44')](_0x2205ca[_0xb112('0x45')],{})[_0xb112('0x23')](respondWithResult(_0x4d8461,0xc9))[_0xb112('0x43')](handleError(_0x4d8461,null));};exports[_0xb112('0x22')]=function(_0xd1c4b2,_0x4faa16){if(_0xd1c4b2[_0xb112('0x45')]['id']){delete _0xd1c4b2[_0xb112('0x45')]['id'];}return db[_0xb112('0x2a')][_0xb112('0x46')]({'where':{'id':_0xd1c4b2[_0xb112('0x41')]['id']}})[_0xb112('0x23')](handleEntityNotFound(_0x4faa16,null))[_0xb112('0x23')](saveUpdates(_0xd1c4b2[_0xb112('0x45')],null))[_0xb112('0x23')](respondWithResult(_0x4faa16,null))[_0xb112('0x43')](handleError(_0x4faa16,null));};exports[_0xb112('0x24')]=function(_0x26b644,_0x5d6739){return db['VoiceDialReport'][_0xb112('0x46')]({'where':{'id':_0x26b644[_0xb112('0x41')]['id']}})['then'](handleEntityNotFound(_0x5d6739,null))['then'](removeEntity(_0x5d6739,null))['catch'](handleError(_0x5d6739,null));};exports['describe']=function(_0x5a592e,_0x3dc762){return db[_0xb112('0x2a')][_0xb112('0x47')]()[_0xb112('0x23')](respondWithResult(_0x3dc762,null))[_0xb112('0x43')](handleError(_0x3dc762,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9092=['./voiceDialReport.attributes','exports','VoiceDialReport','uniqueid','lodash','util','../../config/logger','api','moment','path','../../config/environment'];(function(_0x2c91e9,_0x2fb965){var _0x13f0ff=function(_0xb39edf){while(--_0xb39edf){_0x2c91e9['push'](_0x2c91e9['shift']());}};_0x13f0ff(++_0x2fb965);}(_0x9092,0xa9));var _0x2909=function(_0x1b3351,_0x139e30){_0x1b3351=_0x1b3351-0x0;var _0x1b0226=_0x9092[_0x1b3351];return _0x1b0226;};'use strict';var _=require(_0x2909('0x0'));var util=require(_0x2909('0x1'));var logger=require(_0x2909('0x2'))(_0x2909('0x3'));var moment=require(_0x2909('0x4'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x2909('0x5'));var rimraf=require('rimraf');var config=require(_0x2909('0x6'));var attributes=require(_0x2909('0x7'));module[_0x2909('0x8')]=function(_0x4719a9,_0xcd3491){return _0x4719a9['define'](_0x2909('0x9'),attributes,{'tableName':'report_dial','paranoid':![],'indexes':[{'fields':[_0x2909('0xa')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x702c=['path','rimraf','./voiceDialReport.attributes','exports','define','VoiceDialReport','report_dial','uniqueid','lodash','util','../../config/logger','api','moment','request-promise'];(function(_0x267d86,_0x5a7e15){var _0x5e883f=function(_0x558c4f){while(--_0x558c4f){_0x267d86['push'](_0x267d86['shift']());}};_0x5e883f(++_0x5a7e15);}(_0x702c,0x1e4));var _0xc702=function(_0x327e22,_0x3619fe){_0x327e22=_0x327e22-0x0;var _0x4828f7=_0x702c[_0x327e22];return _0x4828f7;};'use strict';var _=require(_0xc702('0x0'));var util=require(_0xc702('0x1'));var logger=require(_0xc702('0x2'))(_0xc702('0x3'));var moment=require(_0xc702('0x4'));var BPromise=require('bluebird');var rp=require(_0xc702('0x5'));var fs=require('fs');var path=require(_0xc702('0x6'));var rimraf=require(_0xc702('0x7'));var config=require('../../config/environment');var attributes=require(_0xc702('0x8'));module[_0xc702('0x9')]=function(_0x5eb689,_0x5d4f43){return _0x5eb689[_0xc702('0xa')](_0xc702('0xb'),attributes,{'tableName':_0xc702('0xc'),'paranoid':![],'indexes':[{'fields':[_0xc702('0xd')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x000e=['raw','CreateVoiceDialReport','UpdateVoiceDialReport','where','attributes','limit','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','then','info','VoiceDialReport,\x20%s,\x20%s','request\x20sent','debug','VoiceDialReport,\x20%s,\x20%s,\x20%s','stringify','error','message','catch','VoiceDialReport','create','body','options'];(function(_0x400c08,_0x39747d){var _0x121cf8=function(_0x5f049f){while(--_0x5f049f){_0x400c08['push'](_0x400c08['shift']());}};_0x121cf8(++_0x39747d);}(_0x000e,0xcc));var _0xe000=function(_0x43e931,_0x10a093){_0x43e931=_0x43e931-0x0;var _0xb63674=_0x000e[_0x43e931];return _0xb63674;};'use strict';var _=require('lodash');var util=require(_0xe000('0x0'));var moment=require(_0xe000('0x1'));var BPromise=require(_0xe000('0x2'));var rs=require(_0xe000('0x3'));var fs=require('fs');var Redis=require(_0xe000('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0xe000('0x5'));var logger=require(_0xe000('0x6'))(_0xe000('0x7'));var config=require(_0xe000('0x8'));var jayson=require(_0xe000('0x9'));var client=jayson[_0xe000('0xa')][_0xe000('0xb')]({'port':0x232a});function respondWithRpcPromise(_0x1663b4,_0x13b7a3,_0x9ab616){return new BPromise(function(_0x5c62a0,_0x718e3f){return client[_0xe000('0xc')](_0x1663b4,_0x9ab616)[_0xe000('0xd')](function(_0xdf1b57){logger[_0xe000('0xe')](_0xe000('0xf'),_0x13b7a3,_0xe000('0x10'));logger[_0xe000('0x11')](_0xe000('0x12'),_0x13b7a3,_0xe000('0x10'),JSON[_0xe000('0x13')](_0xdf1b57));if(_0xdf1b57[_0xe000('0x14')]){if(_0xdf1b57[_0xe000('0x14')]['code']===0x1f4){logger[_0xe000('0x14')](_0xe000('0xf'),_0x13b7a3,_0xdf1b57['error'][_0xe000('0x15')]);return _0x718e3f(_0xdf1b57['error']['message']);}logger[_0xe000('0x14')](_0xe000('0xf'),_0x13b7a3,_0xdf1b57['error'][_0xe000('0x15')]);return _0x5c62a0(_0xdf1b57[_0xe000('0x14')][_0xe000('0x15')]);}else{logger[_0xe000('0xe')]('VoiceDialReport,\x20%s,\x20%s',_0x13b7a3,_0xe000('0x10'));_0x5c62a0(_0xdf1b57['result']['message']);}})[_0xe000('0x16')](function(_0x2fb9e5){logger[_0xe000('0x14')](_0xe000('0xf'),_0x13b7a3,_0x2fb9e5);_0x718e3f(_0x2fb9e5);});});}exports['CreateVoiceDialReport']=function(_0x5110bd){var _0x4f69e9=this;return new Promise(function(_0x513caa,_0x43986f){return db[_0xe000('0x17')][_0xe000('0x18')](_0x5110bd[_0xe000('0x19')],{'raw':_0x5110bd[_0xe000('0x1a')]?_0x5110bd[_0xe000('0x1a')][_0xe000('0x1b')]===undefined?!![]:![]:!![]})[_0xe000('0xd')](function(_0x267572){logger[_0xe000('0xe')](_0xe000('0x1c'),_0x5110bd);logger[_0xe000('0x11')]('CreateVoiceDialReport',_0x5110bd,JSON[_0xe000('0x13')](_0x267572));_0x513caa(_0x267572);})['catch'](function(_0x1dc793){logger[_0xe000('0x14')](_0xe000('0x1c'),_0x1dc793[_0xe000('0x15')],_0x5110bd);_0x43986f(_0x4f69e9[_0xe000('0x14')](0x1f4,_0x1dc793[_0xe000('0x15')]));});});};exports[_0xe000('0x1d')]=function(_0x552169){var _0x136419=this;return new Promise(function(_0x28c10c,_0x119e15){return db[_0xe000('0x17')]['update'](_0x552169[_0xe000('0x19')],{'raw':_0x552169[_0xe000('0x1a')]?_0x552169[_0xe000('0x1a')][_0xe000('0x1b')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x552169['options']?_0x552169[_0xe000('0x1a')][_0xe000('0x1e')]||null:null,'attributes':_0x552169[_0xe000('0x1a')]?_0x552169[_0xe000('0x1a')][_0xe000('0x1f')]||null:null,'limit':_0x552169[_0xe000('0x1a')]?_0x552169[_0xe000('0x1a')][_0xe000('0x20')]||null:null})[_0xe000('0xd')](function(_0x4568d6){logger[_0xe000('0xe')](_0xe000('0x1d'),_0x552169);logger[_0xe000('0x11')](_0xe000('0x1d'),_0x552169,JSON[_0xe000('0x13')](_0x4568d6));_0x28c10c(_0x4568d6);})[_0xe000('0x16')](function(_0x498051){logger['error'](_0xe000('0x1d'),_0x498051[_0xe000('0x15')],_0x552169);_0x119e15(_0x136419['error'](0x1f4,_0x498051[_0xe000('0x15')]));});});};
\ No newline at end of file
+var _0xb013=['options','raw','CreateVoiceDialReport','debug','stringify','VoiceDialReport','attributes','limit','UpdateVoiceDialReport','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','rpc','../../config/environment','client','request','then','info','VoiceDialReport,\x20%s,\x20%s','request\x20sent','VoiceDialReport,\x20%s,\x20%s,\x20%s','error','message','result','catch','body'];(function(_0x2964b8,_0x5ac4ba){var _0x9165b7=function(_0x4c604f){while(--_0x4c604f){_0x2964b8['push'](_0x2964b8['shift']());}};_0x9165b7(++_0x5ac4ba);}(_0xb013,0x18f));var _0x3b01=function(_0x29d915,_0x54a040){_0x29d915=_0x29d915-0x0;var _0x160f86=_0xb013[_0x29d915];return _0x160f86;};'use strict';var _=require(_0x3b01('0x0'));var util=require(_0x3b01('0x1'));var moment=require(_0x3b01('0x2'));var BPromise=require(_0x3b01('0x3'));var rs=require(_0x3b01('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x3b01('0x5'))['db'];var utils=require(_0x3b01('0x6'));var logger=require('../../config/logger')(_0x3b01('0x7'));var config=require(_0x3b01('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x3b01('0x9')]['http']({'port':0x232a});function respondWithRpcPromise(_0x3b147d,_0x240e08,_0x4568fe){return new BPromise(function(_0x598e89,_0x1799fc){return client[_0x3b01('0xa')](_0x3b147d,_0x4568fe)[_0x3b01('0xb')](function(_0x508f39){logger[_0x3b01('0xc')](_0x3b01('0xd'),_0x240e08,_0x3b01('0xe'));logger['debug'](_0x3b01('0xf'),_0x240e08,'request\x20sent',JSON['stringify'](_0x508f39));if(_0x508f39[_0x3b01('0x10')]){if(_0x508f39[_0x3b01('0x10')]['code']===0x1f4){logger['error'](_0x3b01('0xd'),_0x240e08,_0x508f39['error'][_0x3b01('0x11')]);return _0x1799fc(_0x508f39[_0x3b01('0x10')][_0x3b01('0x11')]);}logger[_0x3b01('0x10')](_0x3b01('0xd'),_0x240e08,_0x508f39[_0x3b01('0x10')][_0x3b01('0x11')]);return _0x598e89(_0x508f39[_0x3b01('0x10')][_0x3b01('0x11')]);}else{logger['info']('VoiceDialReport,\x20%s,\x20%s',_0x240e08,_0x3b01('0xe'));_0x598e89(_0x508f39[_0x3b01('0x12')]['message']);}})[_0x3b01('0x13')](function(_0x48803a){logger[_0x3b01('0x10')](_0x3b01('0xd'),_0x240e08,_0x48803a);_0x1799fc(_0x48803a);});});}exports['CreateVoiceDialReport']=function(_0x2b0181){var _0x496cae=this;return new Promise(function(_0xaa0a6e,_0x5f5b36){return db['VoiceDialReport']['create'](_0x2b0181[_0x3b01('0x14')],{'raw':_0x2b0181[_0x3b01('0x15')]?_0x2b0181[_0x3b01('0x15')][_0x3b01('0x16')]===undefined?!![]:![]:!![]})[_0x3b01('0xb')](function(_0x5aac40){logger[_0x3b01('0xc')](_0x3b01('0x17'),_0x2b0181);logger[_0x3b01('0x18')](_0x3b01('0x17'),_0x2b0181,JSON[_0x3b01('0x19')](_0x5aac40));_0xaa0a6e(_0x5aac40);})[_0x3b01('0x13')](function(_0x5cc918){logger[_0x3b01('0x10')](_0x3b01('0x17'),_0x5cc918[_0x3b01('0x11')],_0x2b0181);_0x5f5b36(_0x496cae[_0x3b01('0x10')](0x1f4,_0x5cc918[_0x3b01('0x11')]));});});};exports['UpdateVoiceDialReport']=function(_0x1b8b42){var _0x2b2c91=this;return new Promise(function(_0x218d3a,_0x376e83){return db[_0x3b01('0x1a')]['update'](_0x1b8b42['body'],{'raw':_0x1b8b42[_0x3b01('0x15')]?_0x1b8b42['options'][_0x3b01('0x16')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x1b8b42[_0x3b01('0x15')]?_0x1b8b42[_0x3b01('0x15')]['where']||null:null,'attributes':_0x1b8b42[_0x3b01('0x15')]?_0x1b8b42[_0x3b01('0x15')][_0x3b01('0x1b')]||null:null,'limit':_0x1b8b42[_0x3b01('0x15')]?_0x1b8b42[_0x3b01('0x15')][_0x3b01('0x1c')]||null:null})[_0x3b01('0xb')](function(_0x516cec){logger[_0x3b01('0xc')](_0x3b01('0x1d'),_0x1b8b42);logger[_0x3b01('0x18')](_0x3b01('0x1d'),_0x1b8b42,JSON[_0x3b01('0x19')](_0x516cec));_0x218d3a(_0x516cec);})[_0x3b01('0x13')](function(_0x4b736e){logger[_0x3b01('0x10')](_0x3b01('0x1d'),_0x4b736e['message'],_0x1b8b42);_0x376e83(_0x2b2c91[_0x3b01('0x10')](0x1f4,_0x4b736e[_0x3b01('0x11')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x27ef=['create','/:id/applications','addApplications','delete','exports','multer','path','express','Router','fs-extra','isAuthenticated','/:id','show','post'];(function(_0x26e327,_0x2d6ea6){var _0x52a232=function(_0x294101){while(--_0x294101){_0x26e327['push'](_0x26e327['shift']());}};_0x52a232(++_0x2d6ea6);}(_0x27ef,0x67));var _0xf27e=function(_0x4a0f16,_0x21ba18){_0x4a0f16=_0x4a0f16-0x0;var _0x45d653=_0x27ef[_0x4a0f16];return _0x45d653;};'use strict';var multer=require(_0xf27e('0x0'));var util=require('util');var path=require(_0xf27e('0x1'));var timeout=require('connect-timeout');var express=require(_0xf27e('0x2'));var router=express[_0xf27e('0x3')]();var fs_extra=require(_0xf27e('0x4'));var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require('./voiceExtension.controller');router['get']('/',auth[_0xf27e('0x5')](),controller['index']);router['get'](_0xf27e('0x6'),auth['isAuthenticated'](),controller[_0xf27e('0x7')]);router[_0xf27e('0x8')]('/',auth[_0xf27e('0x5')](),controller[_0xf27e('0x9')]);router['post'](_0xf27e('0xa'),auth[_0xf27e('0x5')](),controller[_0xf27e('0xb')]);router['put'](_0xf27e('0x6'),auth['isAuthenticated'](),controller['update']);router[_0xf27e('0xc')](_0xf27e('0x6'),auth[_0xf27e('0x5')](),controller['destroy']);module[_0xf27e('0xd')]=router;
\ No newline at end of file
+var _0xb59c=['connect-timeout','express','Router','../../components/auth/service','get','isAuthenticated','index','show','post','/:id/applications','addApplications','put','/:id','exports','multer','util'];(function(_0x3d1926,_0xb69bf4){var _0x592586=function(_0x224919){while(--_0x224919){_0x3d1926['push'](_0x3d1926['shift']());}};_0x592586(++_0xb69bf4);}(_0xb59c,0xde));var _0xcb59=function(_0x3141f6,_0x2dee28){_0x3141f6=_0x3141f6-0x0;var _0x1ad771=_0xb59c[_0x3141f6];return _0x1ad771;};'use strict';var multer=require(_0xcb59('0x0'));var util=require(_0xcb59('0x1'));var path=require('path');var timeout=require(_0xcb59('0x2'));var express=require(_0xcb59('0x3'));var router=express[_0xcb59('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0xcb59('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require('./voiceExtension.controller');router[_0xcb59('0x6')]('/',auth[_0xcb59('0x7')](),controller[_0xcb59('0x8')]);router[_0xcb59('0x6')]('/:id',auth[_0xcb59('0x7')](),controller[_0xcb59('0x9')]);router[_0xcb59('0xa')]('/',auth[_0xcb59('0x7')](),controller['create']);router[_0xcb59('0xa')](_0xcb59('0xb'),auth[_0xcb59('0x7')](),controller[_0xcb59('0xc')]);router[_0xcb59('0xd')](_0xcb59('0xe'),auth['isAuthenticated'](),controller['update']);router['delete'](_0xcb59('0xe'),auth[_0xcb59('0x7')](),controller['destroy']);module[_0xcb59('0xf')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf99d=['any','*,*,*,*','BOOLEAN','INTEGER','wav','VIRTUAL','sequelize','exports','STRING','compositeIndex','NoOp','ENUM','inbound','internal','inbound-fax','outbound-fax','system'];(function(_0x947c3e,_0x485597){var _0x278044=function(_0x2cb902){while(--_0x2cb902){_0x947c3e['push'](_0x947c3e['shift']());}};_0x278044(++_0x485597);}(_0xf99d,0xe3));var _0xdf99=function(_0x125ff8,_0x41925f){_0x125ff8=_0x125ff8-0x0;var _0x2d9ef=_0xf99d[_0x125ff8];return _0x2d9ef;};'use strict';var Sequelize=require(_0xdf99('0x0'));module[_0xdf99('0x1')]={'context':{'type':Sequelize[_0xdf99('0x2')],'allowNull':![],'unique':_0xdf99('0x3'),'validate':{'notEmpty':!![],'is':/[A-Za-z0-9._\+*!\-\[\]]+$/i}},'exten':{'type':Sequelize[_0xdf99('0x2')],'allowNull':![],'unique':'compositeIndex'},'priority':{'type':Sequelize[_0xdf99('0x2')],'allowNull':![],'defaultValue':'1','unique':_0xdf99('0x3')},'tag':{'type':Sequelize[_0xdf99('0x2')],'allowNull':![],'defaultValue':'--'},'app':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0xdf99('0x4')},'appdata':{'type':Sequelize['STRING'](0x1000),'allowNull':!![],'defaultValue':''},'type':{'type':Sequelize[_0xdf99('0x5')](_0xdf99('0x6'),'outbound',_0xdf99('0x7'),_0xdf99('0x8'),_0xdf99('0x9'),_0xdf99('0xa'),_0xdf99('0xb')),'allowNull':![]},'description':{'type':Sequelize[_0xdf99('0x2')]},'interval':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0xdf99('0xc')},'IntervalId':{'type':Sequelize['INTEGER']},'isApp':{'type':Sequelize['BOOLEAN'],'allowNull':![],'defaultValue':![]},'appType':{'type':Sequelize[_0xdf99('0x2')],'defaultValue':null},'callerID':{'type':Sequelize[_0xdf99('0x2')],'allowNull':!![]},'record':{'type':Sequelize[_0xdf99('0xd')],'defaultValue':![]},'cutdigits':{'type':Sequelize[_0xdf99('0xe')]},'recordingFormat':{'type':Sequelize[_0xdf99('0x2')],'defaultValue':_0xdf99('0xf')},'answer':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]},'name':{'type':Sequelize[_0xdf99('0x10')],'get':function(_0x13a7e9){return this['getDataValue']('exten');}},'alias':{'type':Sequelize[_0xdf99('0x2')],'allowNull':!![]}};
\ No newline at end of file
+var _0x684f=['system','any','*,*,*,*','INTEGER','BOOLEAN','VIRTUAL','getDataValue','exten','exports','STRING','compositeIndex','NoOp','ENUM','inbound','internal','inbound-fax','outbound-fax'];(function(_0x167cc1,_0x56ef5a){var _0x10bc4b=function(_0xd6a255){while(--_0xd6a255){_0x167cc1['push'](_0x167cc1['shift']());}};_0x10bc4b(++_0x56ef5a);}(_0x684f,0x1d3));var _0xf684=function(_0x4f97b9,_0x5009d3){_0x4f97b9=_0x4f97b9-0x0;var _0x4e8c5e=_0x684f[_0x4f97b9];return _0x4e8c5e;};'use strict';var Sequelize=require('sequelize');module[_0xf684('0x0')]={'context':{'type':Sequelize[_0xf684('0x1')],'allowNull':![],'unique':'compositeIndex','validate':{'notEmpty':!![],'is':/[A-Za-z0-9._\+*!\-\[\]]+$/i}},'exten':{'type':Sequelize[_0xf684('0x1')],'allowNull':![],'unique':_0xf684('0x2')},'priority':{'type':Sequelize[_0xf684('0x1')],'allowNull':![],'defaultValue':'1','unique':'compositeIndex'},'tag':{'type':Sequelize[_0xf684('0x1')],'allowNull':![],'defaultValue':'--'},'app':{'type':Sequelize[_0xf684('0x1')],'allowNull':![],'defaultValue':_0xf684('0x3')},'appdata':{'type':Sequelize['STRING'](0x1000),'allowNull':!![],'defaultValue':''},'type':{'type':Sequelize[_0xf684('0x4')](_0xf684('0x5'),'outbound',_0xf684('0x6'),_0xf684('0x7'),_0xf684('0x8'),_0xf684('0x9'),_0xf684('0xa')),'allowNull':![]},'description':{'type':Sequelize['STRING']},'interval':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':_0xf684('0xb')},'IntervalId':{'type':Sequelize[_0xf684('0xc')]},'isApp':{'type':Sequelize['BOOLEAN'],'allowNull':![],'defaultValue':![]},'appType':{'type':Sequelize[_0xf684('0x1')],'defaultValue':null},'callerID':{'type':Sequelize[_0xf684('0x1')],'allowNull':!![]},'record':{'type':Sequelize[_0xf684('0xd')],'defaultValue':![]},'cutdigits':{'type':Sequelize[_0xf684('0xc')]},'recordingFormat':{'type':Sequelize[_0xf684('0x1')],'defaultValue':'wav'},'answer':{'type':Sequelize[_0xf684('0xd')],'defaultValue':!![]},'name':{'type':Sequelize[_0xf684('0xe')],'get':function(_0x4287e9){return this[_0xf684('0xf')](_0xf684('0x10'));}},'alias':{'type':Sequelize[_0xf684('0x1')],'allowNull':!![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xab89=['intersection','model','attributes','fields','hasOwnProperty','nolimit','order','sort','pick','where','merge','includeAll','include','findAll','length','options','catch','params','create','startsWith','exten','body','concat','role','user','InboundRoutes','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','context','description','recordingFormat','cutdigits','mandatoryDisposition','alias','addApplications','sequelize','transaction','Transaction','ISOLATION_LEVELS','READ_COMMITTED','findOne','VoiceExtensionId','isApp','createRouting','bulkCreate','findAndCountAll','finally','lodash','../../components/parsers/qs','api','../../mysqldb','redis','./voiceExtension.socket','register','sendStatus','end','status','json','offset','undefined','limit','count','set','then','get','inbound','OutboundRoutes','outbound','InternalRoutes','internal','filter','map','value','includes','type','find','name','UserProfileResource','destroy','error','stack','send','VoiceExtension','rawAttributes','key','keys','query','filters'];(function(_0x3721e3,_0x38ad5d){var _0x3e30c6=function(_0x3a6e92){while(--_0x3a6e92){_0x3721e3['push'](_0x3721e3['shift']());}};_0x3e30c6(++_0x38ad5d);}(_0xab89,0x199));var _0x9ab8=function(_0x341e0f,_0x4a09d0){_0x341e0f=_0x341e0f-0x0;var _0x59555a=_0xab89[_0x341e0f];return _0x59555a;};'use strict';var _=require(_0x9ab8('0x0'));var Redis=require('ioredis');var qs=require(_0x9ab8('0x1'));var logger=require('../../config/logger')(_0x9ab8('0x2'));var config=require('../../config/environment');var db=require(_0x9ab8('0x3'))['db'];config[_0x9ab8('0x4')]=_['defaults'](config[_0x9ab8('0x4')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x9ab8('0x4')]));require(_0x9ab8('0x5'))[_0x9ab8('0x6')](socket);function respondWithStatusCode(_0x5ef326,_0x5daba8){_0x5daba8=_0x5daba8||0xcc;return function(_0x1784cf){if(_0x1784cf){return _0x5ef326[_0x9ab8('0x7')](_0x5daba8);}return _0x5ef326['status'](_0x5daba8)[_0x9ab8('0x8')]();};}function respondWithResult(_0x2abcbe,_0x5ca993){_0x5ca993=_0x5ca993||0xc8;return function(_0x5db992){if(_0x5db992){return _0x2abcbe[_0x9ab8('0x9')](_0x5ca993)[_0x9ab8('0xa')](_0x5db992);}};}function respondWithFilteredResult(_0x274de8,_0x517bce){return function(_0x4925bb){if(_0x4925bb){var _0x54b0ac=typeof _0x517bce[_0x9ab8('0xb')]===_0x9ab8('0xc')&&typeof _0x517bce[_0x9ab8('0xd')]===_0x9ab8('0xc');var _0x5defc4=_0x4925bb[_0x9ab8('0xe')];var _0x27482b=_0x54b0ac?0x0:_0x517bce[_0x9ab8('0xb')];var _0x28d0d4=_0x54b0ac?_0x4925bb[_0x9ab8('0xe')]:_0x517bce[_0x9ab8('0xb')]+_0x517bce[_0x9ab8('0xd')];var _0x578645;if(_0x28d0d4>=_0x5defc4){_0x28d0d4=_0x5defc4;_0x578645=0xc8;}else{_0x578645=0xce;}_0x274de8[_0x9ab8('0x9')](_0x578645);return _0x274de8[_0x9ab8('0xf')]('Content-Range',_0x27482b+'-'+_0x28d0d4+'/'+_0x5defc4)[_0x9ab8('0xa')](_0x4925bb);}return null;};}function removeEntity(_0x499406){return function(_0xa2dcf9){if(_0xa2dcf9){return _0xa2dcf9['destroy']()[_0x9ab8('0x10')](function(){var _0x3cb149=_0xa2dcf9[_0x9ab8('0x11')]({'plain':!![]});var _0x504fd1=[{'name':'InboundRoutes','value':_0x9ab8('0x12'),'ignore':![]},{'name':_0x9ab8('0x13'),'value':_0x9ab8('0x14'),'ignore':![]},{'name':_0x9ab8('0x15'),'value':_0x9ab8('0x16'),'ignore':![]}];var _0x5d4ae9=_(_0x504fd1)[_0x9ab8('0x17')]('ignore')[_0x9ab8('0x18')]('value')[_0x9ab8('0x19')]();if(_[_0x9ab8('0x1a')](_0x5d4ae9,_0x3cb149[_0x9ab8('0x1b')])){return;}var _0x360e4e=_[_0x9ab8('0x1c')](_0x504fd1,[_0x9ab8('0x19'),_0x3cb149[_0x9ab8('0x1b')]])[_0x9ab8('0x1d')];return db[_0x9ab8('0x1e')][_0x9ab8('0x1f')]({'where':{'type':_0x360e4e,'resourceId':_0x3cb149['id']}})['then'](function(){return _0xa2dcf9;});})['then'](function(){_0x499406['status'](0xcc)[_0x9ab8('0x8')]();});}};}function handleEntityNotFound(_0x390dd3){return function(_0x14c9f5){if(!_0x14c9f5){_0x390dd3['sendStatus'](0x194);}return _0x14c9f5;};}function handleError(_0x5ee15e,_0x498743){_0x498743=_0x498743||0x1f4;return function(_0x193fee){logger[_0x9ab8('0x20')](_0x193fee[_0x9ab8('0x21')]);if(_0x193fee[_0x9ab8('0x1d')]){delete _0x193fee[_0x9ab8('0x1d')];}_0x5ee15e[_0x9ab8('0x9')](_0x498743)[_0x9ab8('0x22')](_0x193fee);};}exports['index']=function(_0x3738db,_0x4f1171){var _0x4001f4={},_0x89c66e={},_0x2d6407={'count':0x0,'rows':[]};var _0x4ef87c=_[_0x9ab8('0x18')](db[_0x9ab8('0x23')][_0x9ab8('0x24')],function(_0x2bcde7){return{'name':_0x2bcde7['fieldName'],'type':_0x2bcde7[_0x9ab8('0x1b')][_0x9ab8('0x25')]};});_0x89c66e['model']=_[_0x9ab8('0x18')](_0x4ef87c,_0x9ab8('0x1d'));_0x89c66e['query']=_[_0x9ab8('0x26')](_0x3738db[_0x9ab8('0x27')]);_0x89c66e[_0x9ab8('0x28')]=_[_0x9ab8('0x29')](_0x89c66e[_0x9ab8('0x2a')],_0x89c66e['query']);_0x4001f4[_0x9ab8('0x2b')]=_[_0x9ab8('0x29')](_0x89c66e[_0x9ab8('0x2a')],qs[_0x9ab8('0x2c')](_0x3738db[_0x9ab8('0x27')][_0x9ab8('0x2c')]));_0x4001f4[_0x9ab8('0x2b')]=_0x4001f4[_0x9ab8('0x2b')]['length']?_0x4001f4[_0x9ab8('0x2b')]:_0x89c66e['model'];if(!_0x3738db[_0x9ab8('0x27')][_0x9ab8('0x2d')](_0x9ab8('0x2e'))){_0x4001f4[_0x9ab8('0xd')]=qs['limit'](_0x3738db[_0x9ab8('0x27')]['limit']);_0x4001f4[_0x9ab8('0xb')]=qs[_0x9ab8('0xb')](_0x3738db['query'][_0x9ab8('0xb')]);}_0x4001f4[_0x9ab8('0x2f')]=qs[_0x9ab8('0x30')](_0x3738db['query'][_0x9ab8('0x30')]);_0x4001f4['where']=qs[_0x9ab8('0x28')](_[_0x9ab8('0x31')](_0x3738db[_0x9ab8('0x27')],_0x89c66e[_0x9ab8('0x28')]),_0x4ef87c);if(_0x3738db[_0x9ab8('0x27')][_0x9ab8('0x17')]){_0x4001f4['where']=_['merge'](_0x4001f4[_0x9ab8('0x32')],{'$or':_['map'](_0x4ef87c,function(_0x404685){if(_0x404685['type']!=='VIRTUAL'){var _0x52f959={};_0x52f959[_0x404685['name']]={'$like':'%'+_0x3738db[_0x9ab8('0x27')]['filter']+'%'};return _0x52f959;}})});}_0x4001f4=_[_0x9ab8('0x33')]({},_0x4001f4,_0x3738db['options']);var _0x5dbd75={'where':_0x4001f4[_0x9ab8('0x32')]};return db['VoiceExtension'][_0x9ab8('0xe')](_0x5dbd75)[_0x9ab8('0x10')](function(_0x597b9b){_0x2d6407[_0x9ab8('0xe')]=_0x597b9b;if(_0x3738db[_0x9ab8('0x27')][_0x9ab8('0x34')]){_0x4001f4[_0x9ab8('0x35')]=[{'all':!![]}];}return db['VoiceExtension'][_0x9ab8('0x36')](_0x4001f4);})[_0x9ab8('0x10')](function(_0x2fb5a3){_0x2d6407['rows']=_0x2fb5a3;return _0x2d6407;})[_0x9ab8('0x10')](respondWithFilteredResult(_0x4f1171,_0x4001f4))['catch'](handleError(_0x4f1171,null));};exports['show']=function(_0x24d6f4,_0xfb583){var _0x1757c3={'raw':![],'where':{'id':_0x24d6f4['params']['id']}},_0x1fab8e={};_0x1fab8e['model']=_[_0x9ab8('0x26')](db[_0x9ab8('0x23')][_0x9ab8('0x24')]);_0x1fab8e['query']=_[_0x9ab8('0x26')](_0x24d6f4['query']);_0x1fab8e['filters']=_[_0x9ab8('0x29')](_0x1fab8e['model'],_0x1fab8e['query']);_0x1757c3[_0x9ab8('0x2b')]=_['intersection'](_0x1fab8e[_0x9ab8('0x2a')],qs['fields'](_0x24d6f4['query']['fields']));_0x1757c3['attributes']=_0x1757c3[_0x9ab8('0x2b')][_0x9ab8('0x37')]?_0x1757c3[_0x9ab8('0x2b')]:_0x1fab8e[_0x9ab8('0x2a')];if(_0x24d6f4[_0x9ab8('0x27')]['includeAll']){_0x1757c3['include']=[{'all':!![]}];}_0x1757c3=_[_0x9ab8('0x33')]({},_0x1757c3,_0x24d6f4[_0x9ab8('0x38')]);return db[_0x9ab8('0x23')][_0x9ab8('0x1c')](_0x1757c3)[_0x9ab8('0x10')](handleEntityNotFound(_0xfb583,null))['then'](respondWithResult(_0xfb583,null))[_0x9ab8('0x39')](handleError(_0xfb583,null));};exports[_0x9ab8('0x1f')]=function(_0x2f6026,_0x367ab2){return db[_0x9ab8('0x23')][_0x9ab8('0x1c')]({'where':{'id':_0x2f6026[_0x9ab8('0x3a')]['id']}})[_0x9ab8('0x10')](handleEntityNotFound(_0x367ab2,null))[_0x9ab8('0x10')](removeEntity(_0x367ab2,null))[_0x9ab8('0x39')](handleError(_0x367ab2,null));};exports[_0x9ab8('0x3b')]=function(_0x4f0ef1,_0x2ddf31){if(_0x4f0ef1['body'][_0x9ab8('0x1b')]===_0x9ab8('0x14')&&!_[_0x9ab8('0x3c')](_0x4f0ef1['body'][_0x9ab8('0x3d')],'_')){_0x4f0ef1[_0x9ab8('0x3e')][_0x9ab8('0x3d')]='_'[_0x9ab8('0x3f')](_0x4f0ef1[_0x9ab8('0x3e')]['exten']);}return db[_0x9ab8('0x23')][_0x9ab8('0x3b')](_0x4f0ef1[_0x9ab8('0x3e')],{'raw':![]})[_0x9ab8('0x10')](function(_0x4a16a6){var _0x3b4f29=_0x4f0ef1['user'][_0x9ab8('0x11')]({'plain':!![]});if(!_0x3b4f29)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x3b4f29[_0x9ab8('0x40')]===_0x9ab8('0x41')){var _0x4e0c57=_0x4a16a6[_0x9ab8('0x11')]({'plain':!![]});var _0x27b53d=[{'name':_0x9ab8('0x42'),'value':_0x9ab8('0x12')},{'name':'OutboundRoutes','value':_0x9ab8('0x14')},{'name':_0x9ab8('0x15'),'value':_0x9ab8('0x16')}];var _0x2091d7=_[_0x9ab8('0x1c')](_0x27b53d,[_0x9ab8('0x19'),_0x4e0c57['type']])[_0x9ab8('0x1d')];return db[_0x9ab8('0x43')]['find']({'where':{'name':_0x2091d7,'userProfileId':_0x3b4f29['userProfileId']},'raw':!![]})[_0x9ab8('0x10')](function(_0x2e75d2){if(_0x2e75d2&&_0x2e75d2[_0x9ab8('0x44')]===0x0){return db[_0x9ab8('0x1e')][_0x9ab8('0x3b')]({'name':_0x4e0c57[_0x9ab8('0x1d')],'resourceId':_0x4e0c57['id'],'type':_0x2e75d2[_0x9ab8('0x1d')],'sectionId':_0x2e75d2['id']},{})[_0x9ab8('0x10')](function(){return _0x4a16a6;});}else{return _0x4a16a6;}})[_0x9ab8('0x39')](function(_0x5babbc){logger[_0x9ab8('0x20')](_0x9ab8('0x45'),_0x5babbc);throw _0x5babbc;});}return _0x4a16a6;})[_0x9ab8('0x10')](respondWithResult(_0x2ddf31,0xc9))['catch'](handleError(_0x2ddf31,null));};exports['update']=function(_0x1562ba,_0x166649){if(_0x1562ba['body']['id']){delete _0x1562ba[_0x9ab8('0x3e')]['id'];}return db['VoiceExtension'][_0x9ab8('0x1c')]({'where':{'id':_0x1562ba[_0x9ab8('0x3a')]['id']}})[_0x9ab8('0x10')](handleEntityNotFound(_0x166649,null))[_0x9ab8('0x10')](function(_0x3a9ef1){if(_0x3a9ef1){return db[_0x9ab8('0x23')][_0x9ab8('0x46')](_[_0x9ab8('0x31')](_0x1562ba[_0x9ab8('0x3e')],[_0x9ab8('0x3d'),_0x9ab8('0x47'),_0x9ab8('0x48'),_0x9ab8('0x49'),_0x9ab8('0x4a'),_0x9ab8('0x4b'),_0x9ab8('0x4c')]),{'where':{'context':_0x3a9ef1[_0x9ab8('0x47')],'exten':_0x3a9ef1['exten']},'individualHooks':!![]})[_0x9ab8('0x10')](function(_0x2e85a7){return _0x2e85a7;});}return null;})[_0x9ab8('0x10')](respondWithStatusCode(_0x166649,null))['catch'](handleError(_0x166649,null));};exports[_0x9ab8('0x4d')]=function(_0x34b0a6,_0x1f3901){var _0x1a0152=_0x34b0a6[_0x9ab8('0x3a')]['id'];var _0xdf10b=_0x34b0a6[_0x9ab8('0x3e')];var _0x45f22d=0xc8;var _0x1a6b16=null;return db[_0x9ab8('0x4e')][_0x9ab8('0x4f')]({'isolationLevel':db[_0x9ab8('0x4e')][_0x9ab8('0x50')][_0x9ab8('0x51')][_0x9ab8('0x52')]},function(_0x3678cb){return db[_0x9ab8('0x23')][_0x9ab8('0x53')]({'where':{'id':_0x1a0152},'transaction':_0x3678cb})[_0x9ab8('0x10')](function(_0x57362c){if(_0x57362c){return db[_0x9ab8('0x23')][_0x9ab8('0x1f')]({'where':{'VoiceExtensionId':_0x1a0152},'transaction':_0x3678cb})['then'](function(){var _0x4e174a=_['map'](_0xdf10b,function(_0x4d70f2){_0x4d70f2[_0x9ab8('0x54')]=_0x1a0152;_0x4d70f2[_0x9ab8('0x55')]=!![];return _0x4d70f2;});return _0x57362c[_0x9ab8('0x56')](_0x4e174a);})[_0x9ab8('0x10')](function(_0x162de1){return db[_0x9ab8('0x23')][_0x9ab8('0x57')](_0x162de1,{'transaction':_0x3678cb});});}else{_0x45f22d=0x194;_0x1a6b16=[];}});})[_0x9ab8('0x10')](function(){if(_0x45f22d!==0x194){return db['VoiceExtension'][_0x9ab8('0x58')]({'where':{'isApp':!![],'VoiceExtensionId':_0x1a0152},'order':'priority'})['then'](function(_0x248414){_0x1a6b16=_0x248414;});}})[_0x9ab8('0x39')](function(_0x12f6a9){_0x45f22d=0x1f4;logger['error'](_0x12f6a9[_0x9ab8('0x21')]);if(_0x12f6a9[_0x9ab8('0x1d')]){delete _0x12f6a9[_0x9ab8('0x1d')];}_0x1a6b16=_0x12f6a9;})[_0x9ab8('0x59')](function(){if(_0x1a6b16===null){_0x1f3901[_0x9ab8('0x7')](_0x45f22d);}else{if(_0x45f22d===0x1f4){_0x1f3901[_0x9ab8('0x9')](_0x45f22d)[_0x9ab8('0x22')](_0x1a6b16);}else{_0x1f3901[_0x9ab8('0x9')](_0x45f22d)[_0x9ab8('0xa')](_0x1a6b16);}}});};
\ No newline at end of file
+var _0xec63=['UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','context','recordingFormat','cutdigits','alias','addApplications','transaction','sequelize','ISOLATION_LEVELS','READ_COMMITTED','VoiceExtensionId','isApp','bulkCreate','findAndCountAll','priority','json','lodash','ioredis','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','defaults','redis','localhost','sendStatus','status','end','offset','undefined','count','limit','set','Content-Range','destroy','then','InboundRoutes','inbound','OutboundRoutes','outbound','InternalRoutes','filter','ignore','map','value','includes','type','find','name','UserProfileResource','error','stack','send','index','VoiceExtension','rawAttributes','fieldName','key','keys','query','intersection','attributes','model','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','VIRTUAL','merge','includeAll','include','rows','catch','show','params','options','create','body','startsWith','exten','user','get'];(function(_0x1f9f5f,_0x509fb7){var _0x51d649=function(_0x4a5285){while(--_0x4a5285){_0x1f9f5f['push'](_0x1f9f5f['shift']());}};_0x51d649(++_0x509fb7);}(_0xec63,0x70));var _0x3ec6=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0xec63[_0x321bb2];return _0x9c12ed;};'use strict';var _=require(_0x3ec6('0x0'));var Redis=require(_0x3ec6('0x1'));var qs=require(_0x3ec6('0x2'));var logger=require(_0x3ec6('0x3'))(_0x3ec6('0x4'));var config=require(_0x3ec6('0x5'));var db=require(_0x3ec6('0x6'))['db'];config['redis']=_[_0x3ec6('0x7')](config[_0x3ec6('0x8')],{'host':_0x3ec6('0x9'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x3ec6('0x8')]));require('./voiceExtension.socket')['register'](socket);function respondWithStatusCode(_0x27435a,_0x23bb20){_0x23bb20=_0x23bb20||0xcc;return function(_0x48b7b7){if(_0x48b7b7){return _0x27435a[_0x3ec6('0xa')](_0x23bb20);}return _0x27435a[_0x3ec6('0xb')](_0x23bb20)[_0x3ec6('0xc')]();};}function respondWithResult(_0xc210a,_0x428293){_0x428293=_0x428293||0xc8;return function(_0x53c286){if(_0x53c286){return _0xc210a[_0x3ec6('0xb')](_0x428293)['json'](_0x53c286);}};}function respondWithFilteredResult(_0x4d6900,_0x20bfa3){return function(_0x374124){if(_0x374124){var _0xb6b4ac=typeof _0x20bfa3[_0x3ec6('0xd')]===_0x3ec6('0xe')&&typeof _0x20bfa3['limit']==='undefined';var _0x1270c1=_0x374124[_0x3ec6('0xf')];var _0x1724dc=_0xb6b4ac?0x0:_0x20bfa3[_0x3ec6('0xd')];var _0x4501ee=_0xb6b4ac?_0x374124[_0x3ec6('0xf')]:_0x20bfa3[_0x3ec6('0xd')]+_0x20bfa3[_0x3ec6('0x10')];var _0x39094e;if(_0x4501ee>=_0x1270c1){_0x4501ee=_0x1270c1;_0x39094e=0xc8;}else{_0x39094e=0xce;}_0x4d6900[_0x3ec6('0xb')](_0x39094e);return _0x4d6900[_0x3ec6('0x11')](_0x3ec6('0x12'),_0x1724dc+'-'+_0x4501ee+'/'+_0x1270c1)['json'](_0x374124);}return null;};}function removeEntity(_0x2222fa){return function(_0x1fef2b){if(_0x1fef2b){return _0x1fef2b[_0x3ec6('0x13')]()[_0x3ec6('0x14')](function(){var _0x266998=_0x1fef2b['get']({'plain':!![]});var _0x108955=[{'name':_0x3ec6('0x15'),'value':_0x3ec6('0x16'),'ignore':![]},{'name':_0x3ec6('0x17'),'value':_0x3ec6('0x18'),'ignore':![]},{'name':_0x3ec6('0x19'),'value':'internal','ignore':![]}];var _0x707bb9=_(_0x108955)[_0x3ec6('0x1a')](_0x3ec6('0x1b'))[_0x3ec6('0x1c')](_0x3ec6('0x1d'))[_0x3ec6('0x1d')]();if(_[_0x3ec6('0x1e')](_0x707bb9,_0x266998[_0x3ec6('0x1f')])){return;}var _0x27b85d=_[_0x3ec6('0x20')](_0x108955,['value',_0x266998[_0x3ec6('0x1f')]])[_0x3ec6('0x21')];return db[_0x3ec6('0x22')][_0x3ec6('0x13')]({'where':{'type':_0x27b85d,'resourceId':_0x266998['id']}})[_0x3ec6('0x14')](function(){return _0x1fef2b;});})[_0x3ec6('0x14')](function(){_0x2222fa[_0x3ec6('0xb')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5b9287){return function(_0x4ee790){if(!_0x4ee790){_0x5b9287[_0x3ec6('0xa')](0x194);}return _0x4ee790;};}function handleError(_0x392c33,_0x5c12e9){_0x5c12e9=_0x5c12e9||0x1f4;return function(_0x59379f){logger[_0x3ec6('0x23')](_0x59379f[_0x3ec6('0x24')]);if(_0x59379f[_0x3ec6('0x21')]){delete _0x59379f['name'];}_0x392c33[_0x3ec6('0xb')](_0x5c12e9)[_0x3ec6('0x25')](_0x59379f);};}exports[_0x3ec6('0x26')]=function(_0x3fce3b,_0x1cf7c5){var _0x4e49ec={},_0x1a2496={},_0x5a0d90={'count':0x0,'rows':[]};var _0x3d4b24=_['map'](db[_0x3ec6('0x27')][_0x3ec6('0x28')],function(_0x521900){return{'name':_0x521900[_0x3ec6('0x29')],'type':_0x521900[_0x3ec6('0x1f')][_0x3ec6('0x2a')]};});_0x1a2496['model']=_['map'](_0x3d4b24,'name');_0x1a2496['query']=_[_0x3ec6('0x2b')](_0x3fce3b[_0x3ec6('0x2c')]);_0x1a2496['filters']=_[_0x3ec6('0x2d')](_0x1a2496['model'],_0x1a2496[_0x3ec6('0x2c')]);_0x4e49ec[_0x3ec6('0x2e')]=_['intersection'](_0x1a2496[_0x3ec6('0x2f')],qs['fields'](_0x3fce3b['query'][_0x3ec6('0x30')]));_0x4e49ec[_0x3ec6('0x2e')]=_0x4e49ec[_0x3ec6('0x2e')][_0x3ec6('0x31')]?_0x4e49ec['attributes']:_0x1a2496['model'];if(!_0x3fce3b['query'][_0x3ec6('0x32')](_0x3ec6('0x33'))){_0x4e49ec[_0x3ec6('0x10')]=qs[_0x3ec6('0x10')](_0x3fce3b[_0x3ec6('0x2c')][_0x3ec6('0x10')]);_0x4e49ec['offset']=qs[_0x3ec6('0xd')](_0x3fce3b[_0x3ec6('0x2c')][_0x3ec6('0xd')]);}_0x4e49ec[_0x3ec6('0x34')]=qs[_0x3ec6('0x35')](_0x3fce3b[_0x3ec6('0x2c')]['sort']);_0x4e49ec[_0x3ec6('0x36')]=qs[_0x3ec6('0x37')](_[_0x3ec6('0x38')](_0x3fce3b[_0x3ec6('0x2c')],_0x1a2496[_0x3ec6('0x37')]),_0x3d4b24);if(_0x3fce3b['query']['filter']){_0x4e49ec[_0x3ec6('0x36')]=_['merge'](_0x4e49ec['where'],{'$or':_[_0x3ec6('0x1c')](_0x3d4b24,function(_0x564dda){if(_0x564dda[_0x3ec6('0x1f')]!==_0x3ec6('0x39')){var _0x2e5855={};_0x2e5855[_0x564dda[_0x3ec6('0x21')]]={'$like':'%'+_0x3fce3b[_0x3ec6('0x2c')]['filter']+'%'};return _0x2e5855;}})});}_0x4e49ec=_[_0x3ec6('0x3a')]({},_0x4e49ec,_0x3fce3b['options']);var _0x3a8511={'where':_0x4e49ec['where']};return db[_0x3ec6('0x27')][_0x3ec6('0xf')](_0x3a8511)[_0x3ec6('0x14')](function(_0x17f228){_0x5a0d90[_0x3ec6('0xf')]=_0x17f228;if(_0x3fce3b[_0x3ec6('0x2c')][_0x3ec6('0x3b')]){_0x4e49ec[_0x3ec6('0x3c')]=[{'all':!![]}];}return db[_0x3ec6('0x27')]['findAll'](_0x4e49ec);})[_0x3ec6('0x14')](function(_0x44494f){_0x5a0d90[_0x3ec6('0x3d')]=_0x44494f;return _0x5a0d90;})[_0x3ec6('0x14')](respondWithFilteredResult(_0x1cf7c5,_0x4e49ec))[_0x3ec6('0x3e')](handleError(_0x1cf7c5,null));};exports[_0x3ec6('0x3f')]=function(_0x1229ad,_0x4d64de){var _0x857f99={'raw':![],'where':{'id':_0x1229ad[_0x3ec6('0x40')]['id']}},_0x15d266={};_0x15d266['model']=_[_0x3ec6('0x2b')](db[_0x3ec6('0x27')][_0x3ec6('0x28')]);_0x15d266[_0x3ec6('0x2c')]=_[_0x3ec6('0x2b')](_0x1229ad[_0x3ec6('0x2c')]);_0x15d266[_0x3ec6('0x37')]=_[_0x3ec6('0x2d')](_0x15d266[_0x3ec6('0x2f')],_0x15d266[_0x3ec6('0x2c')]);_0x857f99[_0x3ec6('0x2e')]=_[_0x3ec6('0x2d')](_0x15d266[_0x3ec6('0x2f')],qs[_0x3ec6('0x30')](_0x1229ad[_0x3ec6('0x2c')][_0x3ec6('0x30')]));_0x857f99['attributes']=_0x857f99[_0x3ec6('0x2e')]['length']?_0x857f99[_0x3ec6('0x2e')]:_0x15d266['model'];if(_0x1229ad[_0x3ec6('0x2c')][_0x3ec6('0x3b')]){_0x857f99[_0x3ec6('0x3c')]=[{'all':!![]}];}_0x857f99=_['merge']({},_0x857f99,_0x1229ad[_0x3ec6('0x41')]);return db[_0x3ec6('0x27')][_0x3ec6('0x20')](_0x857f99)['then'](handleEntityNotFound(_0x4d64de,null))[_0x3ec6('0x14')](respondWithResult(_0x4d64de,null))[_0x3ec6('0x3e')](handleError(_0x4d64de,null));};exports[_0x3ec6('0x13')]=function(_0x351721,_0x186e4f){return db['VoiceExtension'][_0x3ec6('0x20')]({'where':{'id':_0x351721[_0x3ec6('0x40')]['id']}})[_0x3ec6('0x14')](handleEntityNotFound(_0x186e4f,null))[_0x3ec6('0x14')](removeEntity(_0x186e4f,null))[_0x3ec6('0x3e')](handleError(_0x186e4f,null));};exports[_0x3ec6('0x42')]=function(_0x167055,_0x5eb51f){if(_0x167055[_0x3ec6('0x43')][_0x3ec6('0x1f')]===_0x3ec6('0x18')&&!_[_0x3ec6('0x44')](_0x167055[_0x3ec6('0x43')][_0x3ec6('0x45')],'_')){_0x167055[_0x3ec6('0x43')][_0x3ec6('0x45')]='_'['concat'](_0x167055[_0x3ec6('0x43')][_0x3ec6('0x45')]);}return db[_0x3ec6('0x27')]['create'](_0x167055[_0x3ec6('0x43')],{'raw':![]})[_0x3ec6('0x14')](function(_0x14e184){var _0x178798=_0x167055[_0x3ec6('0x46')][_0x3ec6('0x47')]({'plain':!![]});if(!_0x178798)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x178798['role']===_0x3ec6('0x46')){var _0x42b502=_0x14e184['get']({'plain':!![]});var _0x548094=[{'name':_0x3ec6('0x15'),'value':_0x3ec6('0x16')},{'name':_0x3ec6('0x17'),'value':_0x3ec6('0x18')},{'name':_0x3ec6('0x19'),'value':'internal'}];var _0x4c87d0=_['find'](_0x548094,[_0x3ec6('0x1d'),_0x42b502[_0x3ec6('0x1f')]])[_0x3ec6('0x21')];return db[_0x3ec6('0x48')]['find']({'where':{'name':_0x4c87d0,'userProfileId':_0x178798[_0x3ec6('0x49')]},'raw':!![]})[_0x3ec6('0x14')](function(_0x9e6bf1){if(_0x9e6bf1&&_0x9e6bf1[_0x3ec6('0x4a')]===0x0){return db[_0x3ec6('0x22')]['create']({'name':_0x42b502[_0x3ec6('0x21')],'resourceId':_0x42b502['id'],'type':_0x9e6bf1[_0x3ec6('0x21')],'sectionId':_0x9e6bf1['id']},{})['then'](function(){return _0x14e184;});}else{return _0x14e184;}})['catch'](function(_0xbdd3cc){logger[_0x3ec6('0x23')](_0x3ec6('0x4b'),_0xbdd3cc);throw _0xbdd3cc;});}return _0x14e184;})[_0x3ec6('0x14')](respondWithResult(_0x5eb51f,0xc9))[_0x3ec6('0x3e')](handleError(_0x5eb51f,null));};exports[_0x3ec6('0x4c')]=function(_0x56ffaf,_0x161fcb){if(_0x56ffaf[_0x3ec6('0x43')]['id']){delete _0x56ffaf[_0x3ec6('0x43')]['id'];}return db[_0x3ec6('0x27')][_0x3ec6('0x20')]({'where':{'id':_0x56ffaf[_0x3ec6('0x40')]['id']}})['then'](handleEntityNotFound(_0x161fcb,null))[_0x3ec6('0x14')](function(_0x48277b){if(_0x48277b){return db[_0x3ec6('0x27')][_0x3ec6('0x4c')](_['pick'](_0x56ffaf[_0x3ec6('0x43')],[_0x3ec6('0x45'),_0x3ec6('0x4d'),'description',_0x3ec6('0x4e'),_0x3ec6('0x4f'),'mandatoryDisposition',_0x3ec6('0x50')]),{'where':{'context':_0x48277b[_0x3ec6('0x4d')],'exten':_0x48277b[_0x3ec6('0x45')]},'individualHooks':!![]})['then'](function(_0x474219){return _0x474219;});}return null;})[_0x3ec6('0x14')](respondWithStatusCode(_0x161fcb,null))[_0x3ec6('0x3e')](handleError(_0x161fcb,null));};exports[_0x3ec6('0x51')]=function(_0x50636b,_0x2f10ed){var _0x35f015=_0x50636b[_0x3ec6('0x40')]['id'];var _0x422ba8=_0x50636b['body'];var _0x427ab7=0xc8;var _0xcb1a12=null;return db['sequelize'][_0x3ec6('0x52')]({'isolationLevel':db[_0x3ec6('0x53')]['Transaction'][_0x3ec6('0x54')][_0x3ec6('0x55')]},function(_0x13a94d){return db[_0x3ec6('0x27')]['findOne']({'where':{'id':_0x35f015},'transaction':_0x13a94d})[_0x3ec6('0x14')](function(_0x54f957){if(_0x54f957){return db[_0x3ec6('0x27')][_0x3ec6('0x13')]({'where':{'VoiceExtensionId':_0x35f015},'transaction':_0x13a94d})[_0x3ec6('0x14')](function(){var _0x13eb4e=_[_0x3ec6('0x1c')](_0x422ba8,function(_0x3e19fe){_0x3e19fe[_0x3ec6('0x56')]=_0x35f015;_0x3e19fe[_0x3ec6('0x57')]=!![];return _0x3e19fe;});return _0x54f957['createRouting'](_0x13eb4e);})['then'](function(_0x430d8b){return db[_0x3ec6('0x27')][_0x3ec6('0x58')](_0x430d8b,{'transaction':_0x13a94d});});}else{_0x427ab7=0x194;_0xcb1a12=[];}});})[_0x3ec6('0x14')](function(){if(_0x427ab7!==0x194){return db[_0x3ec6('0x27')][_0x3ec6('0x59')]({'where':{'isApp':!![],'VoiceExtensionId':_0x35f015},'order':_0x3ec6('0x5a')})['then'](function(_0x1d793a){_0xcb1a12=_0x1d793a;});}})[_0x3ec6('0x3e')](function(_0x13da1c){_0x427ab7=0x1f4;logger[_0x3ec6('0x23')](_0x13da1c[_0x3ec6('0x24')]);if(_0x13da1c['name']){delete _0x13da1c[_0x3ec6('0x21')];}_0xcb1a12=_0x13da1c;})['finally'](function(){if(_0xcb1a12===null){_0x2f10ed[_0x3ec6('0xa')](_0x427ab7);}else{if(_0x427ab7===0x1f4){_0x2f10ed[_0x3ec6('0xb')](_0x427ab7)['send'](_0xcb1a12);}else{_0x2f10ed['status'](_0x427ab7)[_0x3ec6('0x5b')](_0xcb1a12);}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1dac=['exports','events','../../mysqldb','VoiceExtension','setMaxListeners','save','update','remove','emit','hasOwnProperty'];(function(_0x5d6e35,_0x4d1ac0){var _0x5d7ada=function(_0x2f7dd3){while(--_0x2f7dd3){_0x5d6e35['push'](_0x5d6e35['shift']());}};_0x5d7ada(++_0x4d1ac0);}(_0x1dac,0x187));var _0xc1da=function(_0x3a6922,_0xc728be){_0x3a6922=_0x3a6922-0x0;var _0x9c1b44=_0x1dac[_0x3a6922];return _0x9c1b44;};'use strict';var EventEmitter=require(_0xc1da('0x0'));var VoiceExtension=require(_0xc1da('0x1'))['db'][_0xc1da('0x2')];var VoiceExtensionEvents=new EventEmitter();VoiceExtensionEvents[_0xc1da('0x3')](0x0);var events={'afterCreate':_0xc1da('0x4'),'afterUpdate':_0xc1da('0x5'),'afterDestroy':_0xc1da('0x6')};function emitEvent(_0x21d4e1){return function(_0x1a3abe,_0x556699,_0x3d498d){VoiceExtensionEvents[_0xc1da('0x7')](_0x21d4e1+':'+_0x1a3abe['id'],_0x1a3abe);VoiceExtensionEvents['emit'](_0x21d4e1,_0x1a3abe);_0x3d498d(null);};}for(var e in events){if(events[_0xc1da('0x8')](e)){var event=events[e];VoiceExtension['hook'](e,emitEvent(event));}}module[_0xc1da('0x9')]=VoiceExtensionEvents;
\ No newline at end of file
+var _0x4482=['hasOwnProperty','hook','exports','events','../../mysqldb','VoiceExtension','setMaxListeners','save','update','remove','emit'];(function(_0x1aa047,_0x84595b){var _0x3eaeca=function(_0x2f7941){while(--_0x2f7941){_0x1aa047['push'](_0x1aa047['shift']());}};_0x3eaeca(++_0x84595b);}(_0x4482,0x87));var _0x2448=function(_0x305988,_0x54888a){_0x305988=_0x305988-0x0;var _0x55441f=_0x4482[_0x305988];return _0x55441f;};'use strict';var EventEmitter=require(_0x2448('0x0'));var VoiceExtension=require(_0x2448('0x1'))['db'][_0x2448('0x2')];var VoiceExtensionEvents=new EventEmitter();VoiceExtensionEvents[_0x2448('0x3')](0x0);var events={'afterCreate':_0x2448('0x4'),'afterUpdate':_0x2448('0x5'),'afterDestroy':_0x2448('0x6')};function emitEvent(_0x4dd0e7){return function(_0x370bd3,_0x240498,_0x16f1e5){VoiceExtensionEvents[_0x2448('0x7')](_0x4dd0e7+':'+_0x370bd3['id'],_0x370bd3);VoiceExtensionEvents[_0x2448('0x7')](_0x4dd0e7,_0x370bd3);_0x16f1e5(null);};}for(var e in events){if(events[_0x2448('0x8')](e)){var event=events[e];VoiceExtension[_0x2448('0x9')](e,emitEvent(event));}}module[_0x2448('0xa')]=VoiceExtensionEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5d17=['none','indexOf','U(xcally-mixmonitor-context)','replace','isEmpty','Interval','findAll','interval','then','*,*,*,*','intervals','map','tag','toLowerCase','CDR(tag)=','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):','callerID','NoOp(No\x20number\x20available)','hasOwnProperty','answer','queue','playback','app','appType','custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','GotoIfTime',',${EXTEN},','outboundDial','appdata','priority','last','concat','catch','define','voice_extensions','get','lodash','./voiceExtension.attributes','models','type','Set','context','exten','alias','NoOp','push','inbound','CDR(routeid)=','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','outbound','CDR(type)=outbound','CDR(routeAlias)=','No\x20alias\x20set','cutdigits','${EXTEN:','${EXTEN}','ExecIf','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','CDR(prefix)=noprefix','outboundrouteid=','recordingFormat','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','_XCALLY_MIXMONITOR_FORMAT=','trunk','timeout','options','url','split','length','name','phone','param','prefix','join'];(function(_0x592f1e,_0x2e1389){var _0x3f3b54=function(_0x1c7b8a){while(--_0x1c7b8a){_0x592f1e['push'](_0x592f1e['shift']());}};_0x3f3b54(++_0x2e1389);}(_0x5d17,0x114));var _0x75d1=function(_0x2ec461,_0x5f588a){_0x2ec461=_0x2ec461-0x0;var _0x28603d=_0x5d17[_0x2ec461];return _0x28603d;};'use strict';var _=require(_0x75d1('0x0'));var attributes=require(_0x75d1('0x1'));module['exports']=function(_0x5b3ed3){var _0x39c0ec=_0x5b3ed3[_0x75d1('0x2')];function _0x1c9ba6(_0x5b3267){var _0x177460=0x2;var _0x45d03a=[{'type':_0x5b3267[_0x75d1('0x3')],'app':_0x75d1('0x4'),'appdata':'CDR(type)='+_0x5b3267[_0x75d1('0x3')],'context':_0x5b3267[_0x75d1('0x5')],'exten':_0x5b3267[_0x75d1('0x6')],'priority':_0x177460++,'VoiceExtensionId':_0x5b3267['id']},{'type':_0x5b3267[_0x75d1('0x3')],'app':_0x5b3267[_0x75d1('0x7')]?_0x75d1('0x4'):_0x75d1('0x8'),'appdata':_0x5b3267['alias']?'CDR(routeAlias)='+_0x5b3267[_0x75d1('0x7')]:'No\x20alias\x20set','context':_0x5b3267['context'],'exten':_0x5b3267[_0x75d1('0x6')],'priority':_0x177460++,'VoiceExtensionId':_0x5b3267['id']}];if(_0x5b3267[_0x75d1('0x3')]==='inbound'){_0x45d03a[_0x75d1('0x9')]({'type':_0x75d1('0xa'),'app':_0x75d1('0x4'),'appdata':_0x75d1('0xb')+_0x5b3267['id'],'context':_0x5b3267[_0x75d1('0x5')],'exten':_0x5b3267[_0x75d1('0x6')],'priority':_0x177460++,'VoiceExtensionId':_0x5b3267['id']});}_0x45d03a['push']({'type':_0x5b3267[_0x75d1('0x3')],'app':_0x75d1('0x4'),'appdata':_0x75d1('0xc'),'context':_0x5b3267[_0x75d1('0x5')],'exten':_0x5b3267['exten'],'priority':_0x177460++,'VoiceExtensionId':_0x5b3267['id']},{'type':_0x5b3267['type'],'app':'Set','appdata':_0x75d1('0xd'),'context':_0x5b3267[_0x75d1('0x5')],'exten':_0x5b3267[_0x75d1('0x6')],'priority':_0x177460++,'VoiceExtensionId':_0x5b3267['id']},{'type':_0x5b3267['type'],'app':_0x75d1('0x4'),'appdata':_0x75d1('0xe'),'context':_0x5b3267[_0x75d1('0x5')],'exten':_0x5b3267[_0x75d1('0x6')],'priority':_0x177460++,'VoiceExtensionId':_0x5b3267['id']});return _0x45d03a;}function _0x1160ca(_0x39a26b){var _0x2845bc=0x2;var _0x59dead=[{'type':_0x75d1('0xf'),'app':_0x75d1('0x4'),'appdata':_0x75d1('0x10'),'context':_0x39a26b['context'],'exten':_0x39a26b['exten'],'priority':_0x2845bc++,'VoiceExtensionId':_0x39a26b['id']},{'type':_0x75d1('0xf'),'app':_0x39a26b[_0x75d1('0x7')]?'Set':_0x75d1('0x8'),'appdata':_0x39a26b[_0x75d1('0x7')]?_0x75d1('0x11')+_0x39a26b[_0x75d1('0x7')]:_0x75d1('0x12'),'context':_0x39a26b[_0x75d1('0x5')],'exten':_0x39a26b['exten'],'priority':_0x2845bc++,'VoiceExtensionId':_0x39a26b['id']},{'type':_0x75d1('0xf'),'app':_0x75d1('0x4'),'appdata':'CDR(destination)='+(_0x39a26b[_0x75d1('0x13')]?_0x75d1('0x14')+_0x39a26b['cutdigits']+'}':_0x75d1('0x15')),'context':_0x39a26b['context'],'exten':_0x39a26b[_0x75d1('0x6')],'priority':_0x2845bc++,'VoiceExtensionId':_0x39a26b['id']},{'type':_0x75d1('0xf'),'app':_0x75d1('0x4'),'appdata':'CDR(routeid)='+_0x39a26b['id'],'context':_0x39a26b['context'],'exten':_0x39a26b[_0x75d1('0x6')],'priority':_0x2845bc++,'VoiceExtensionId':_0x39a26b['id']},{'type':_0x75d1('0xf'),'app':_0x75d1('0x16'),'appdata':_0x75d1('0x17')+(_0x2845bc+0x2)+'):Goto('+(_0x2845bc+0x1)+')','context':_0x39a26b[_0x75d1('0x5')],'exten':_0x39a26b[_0x75d1('0x6')],'priority':_0x2845bc++,'VoiceExtensionId':_0x39a26b['id']},{'type':_0x75d1('0xf'),'app':'Set','appdata':_0x39a26b['cutdigits']?'CDR(prefix)=${EXTEN:0:'+_0x39a26b[_0x75d1('0x13')]+'}':_0x75d1('0x18'),'context':_0x39a26b[_0x75d1('0x5')],'exten':_0x39a26b[_0x75d1('0x6')],'priority':_0x2845bc++,'VoiceExtensionId':_0x39a26b['id']},{'type':_0x75d1('0xf'),'app':'Set','appdata':'XCALLY-MOTION-ANSWER=0','context':_0x39a26b[_0x75d1('0x5')],'exten':_0x39a26b[_0x75d1('0x6')],'priority':_0x2845bc++,'VoiceExtensionId':_0x39a26b['id']},{'type':'outbound','app':_0x75d1('0x4'),'appdata':'XCALLY-MOTION-PROGRESS=0','context':_0x39a26b[_0x75d1('0x5')],'exten':_0x39a26b[_0x75d1('0x6')],'priority':_0x2845bc++,'VoiceExtensionId':_0x39a26b['id']},{'type':_0x75d1('0xf'),'app':_0x75d1('0x4'),'appdata':_0x75d1('0xe'),'context':_0x39a26b['context'],'exten':_0x39a26b[_0x75d1('0x6')],'priority':_0x2845bc++,'VoiceExtensionId':_0x39a26b['id']},{'type':_0x75d1('0xf'),'app':_0x75d1('0x4'),'appdata':_0x75d1('0x19')+_0x39a26b['id'],'context':_0x39a26b['context'],'exten':_0x39a26b[_0x75d1('0x6')],'priority':_0x2845bc++,'VoiceExtensionId':_0x39a26b['id']}];if(_0x39a26b['hasOwnProperty'](_0x75d1('0x1a'))&&_0x39a26b[_0x75d1('0x1a')]!=='none'){_0x59dead[_0x75d1('0x9')]({'type':_0x75d1('0xf'),'app':_0x75d1('0x4'),'appdata':_0x75d1('0x1b'),'context':_0x39a26b[_0x75d1('0x5')],'exten':_0x39a26b['exten'],'priority':_0x2845bc++,'VoiceExtensionId':_0x39a26b['id']},{'type':_0x75d1('0xf'),'app':_0x75d1('0x4'),'appdata':_0x75d1('0x1c')+_0x39a26b[_0x75d1('0x1a')]||'wav','context':_0x39a26b['context'],'exten':_0x39a26b['exten'],'priority':_0x2845bc++,'VoiceExtensionId':_0x39a26b['id']});}return _0x59dead;}function _0x3d9275(_0x29ad6b,_0x40dc07){var _0x131f51=[{'name':_0x75d1('0x1d'),'param':0x0},{'name':_0x75d1('0x1e'),'param':0x1},{'name':_0x75d1('0x1f'),'param':0x2},{'name':_0x75d1('0x20'),'param':0x3}];var _0x433092={};var _0x534511=_0x40dc07[_0x75d1('0x21')](',');var _0x429c38=[];for(var _0x39ac3e=0x0;_0x39ac3e<_0x131f51[_0x75d1('0x22')];_0x39ac3e++){switch(_0x131f51[_0x39ac3e][_0x75d1('0x23')]){case'trunk':_0x433092['trunk']=_0x534511[_0x131f51[_0x39ac3e]['param']][_0x75d1('0x21')]('/')[0x1];_0x433092[_0x75d1('0x24')]=_0x534511[_0x131f51[_0x39ac3e][_0x75d1('0x25')]][_0x75d1('0x21')]('/')[0x2];_0x433092[_0x75d1('0x26')]=_0x433092[_0x75d1('0x24')]?_0x433092['phone']['split']('$')[0x0]:undefined;_0x433092['phone']=_0x29ad6b[_0x75d1('0x13')]?(_0x433092['prefix']||'')+'${EXTEN:'+_0x29ad6b[_0x75d1('0x13')]+'}':(_0x433092[_0x75d1('0x26')]||'')+_0x75d1('0x15');_0x429c38[_0x131f51[_0x39ac3e][_0x75d1('0x25')]]=['SIP',_0x433092[_0x75d1('0x1d')],_0x433092[_0x75d1('0x24')]][_0x75d1('0x27')]('/');break;case _0x75d1('0x1f'):_0x433092[_0x75d1('0x1f')]=_0x534511[_0x131f51[_0x39ac3e][_0x75d1('0x25')]];if(_0x29ad6b[_0x75d1('0x1a')]!==_0x75d1('0x28')){if(_0x433092[_0x75d1('0x1f')][_0x75d1('0x29')](_0x75d1('0x2a'))<0x0){_0x433092[_0x75d1('0x1f')]+=_0x75d1('0x2a');}}else{_0x433092[_0x75d1('0x1f')]=_0x433092[_0x75d1('0x1f')][_0x75d1('0x2b')](_0x75d1('0x2a'),'');}_0x429c38[_0x131f51[_0x39ac3e][_0x75d1('0x25')]]=_0x433092[_0x75d1('0x1f')];break;default:_0x429c38[_0x131f51[_0x39ac3e][_0x75d1('0x25')]]=_0x534511[_0x131f51[_0x39ac3e][_0x75d1('0x25')]];}}return _0x429c38[_0x75d1('0x27')](',');}function _0x4e70ba(_0x5b2949,_0x246078,_0x40b74e){return new Promise(function(_0x429909,_0x1d9853){var _0x4af3bb=[];if(_[_0x75d1('0x2c')](_0x246078))return _0x429909(_0x4af3bb);_0x39c0ec[_0x75d1('0x2d')][_0x75d1('0x2e')]({'attributes':['id',_0x75d1('0x2f'),'IntervalId'],'raw':!![]})[_0x75d1('0x30')](function(_0xfa2137){for(var _0x43143d=0x0,_0x283097=0x0;_0x43143d<_0x246078['length'];_0x43143d++,_0x283097=0x0){var _0x34d132=_0x246078[_0x43143d];var _0x5159a8=[];var _0x130dd3=[];delete _0x34d132['id'];if(_0x34d132[_0x75d1('0x2f')]!==_0x75d1('0x31')){_0x34d132[_0x75d1('0x32')]=[_0x34d132[_0x75d1('0x2f')]];}else{_0x34d132[_0x75d1('0x32')]=_0x34d132['IntervalId']?_[_0x75d1('0x33')](_['filter'](_0xfa2137,{'IntervalId':_0x34d132['IntervalId']}),_0x75d1('0x2f')):[];}_0x34d132[_0x75d1('0x5')]=_0x5b2949[_0x75d1('0x5')];_0x34d132[_0x75d1('0x6')]=_0x5b2949[_0x75d1('0x6')];if(_0x34d132[_0x75d1('0x3')])_0x34d132[_0x75d1('0x3')]=_0x34d132['type']['toLowerCase']();if(_0x5b2949[_0x75d1('0x3')]===_0x75d1('0xf')){if(_0x34d132['hasOwnProperty'](_0x75d1('0x34'))&&_0x34d132[_0x75d1('0x34')]&&_0x34d132[_0x75d1('0x34')]!=='--'){_0x5159a8['push']({'type':_0x34d132[_0x75d1('0x3')][_0x75d1('0x35')](),'app':_0x75d1('0x4'),'appdata':_0x75d1('0x36')+_0x34d132[_0x75d1('0x34')],'context':_0x5b2949[_0x75d1('0x5')],'exten':_0x5b2949[_0x75d1('0x6')],'priority':_0x34d132['intervals'][_0x75d1('0x22')]+_0x40b74e+_0x283097++,'VoiceExtensionId':_0x5b2949['id']});}_0x5159a8[_0x75d1('0x9')]({'type':_0x34d132[_0x75d1('0x3')][_0x75d1('0x35')](),'app':_0x75d1('0x16'),'appdata':_0x75d1('0x37')+(_0x34d132[_0x75d1('0x38')]?'Set(CALLERID(all)='+_0x34d132[_0x75d1('0x38')]+')':_0x75d1('0x39')),'context':_0x5b2949[_0x75d1('0x5')],'exten':_0x5b2949['exten'],'priority':_0x34d132[_0x75d1('0x32')][_0x75d1('0x22')]+_0x40b74e+_0x283097++,'VoiceExtensionId':_0x5b2949['id']});}else{if(_0x34d132[_0x75d1('0x3a')](_0x75d1('0x3b'))){if([_0x75d1('0x3c'),_0x75d1('0x3d')]['includes'](_0x34d132[_0x75d1('0x3e')][_0x75d1('0x35')]())&&_0x34d132[_0x75d1('0x3f')]!==_0x75d1('0x40')){if(_0x34d132[_0x75d1('0x3b')]){_0x5159a8[_0x75d1('0x9')]({'type':_0x34d132[_0x75d1('0x3')][_0x75d1('0x35')](),'app':_0x75d1('0x16'),'appdata':_0x75d1('0x41'),'context':_0x5b2949[_0x75d1('0x5')],'exten':_0x5b2949[_0x75d1('0x6')],'priority':_0x34d132['intervals']['length']+_0x40b74e+_0x283097++,'VoiceExtensionId':_0x5b2949['id']});_0x5159a8[_0x75d1('0x9')]({'type':_0x34d132['type'][_0x75d1('0x35')](),'app':_0x75d1('0x4'),'appdata':'XCALLY-MOTION-ANSWER=1','context':_0x5b2949[_0x75d1('0x5')],'exten':_0x5b2949[_0x75d1('0x6')],'priority':_0x34d132[_0x75d1('0x32')][_0x75d1('0x22')]+_0x40b74e+_0x283097++,'VoiceExtensionId':_0x5b2949['id']});}else{_0x5159a8[_0x75d1('0x9')]({'type':_0x34d132[_0x75d1('0x3')][_0x75d1('0x35')](),'app':'ExecIf','appdata':_0x75d1('0x42'),'context':_0x5b2949[_0x75d1('0x5')],'exten':_0x5b2949[_0x75d1('0x6')],'priority':_0x34d132[_0x75d1('0x32')][_0x75d1('0x22')]+_0x40b74e+_0x283097++,'VoiceExtensionId':_0x5b2949['id']});_0x5159a8[_0x75d1('0x9')]({'type':_0x34d132[_0x75d1('0x3')][_0x75d1('0x35')](),'app':_0x75d1('0x4'),'appdata':_0x75d1('0x43'),'context':_0x5b2949['context'],'exten':_0x5b2949['exten'],'priority':_0x34d132[_0x75d1('0x32')][_0x75d1('0x22')]+_0x40b74e+_0x283097++,'VoiceExtensionId':_0x5b2949['id']});}}}}for(var _0xd6a332=0x0;_0xd6a332<_0x34d132['intervals'][_0x75d1('0x22')];_0xd6a332++){var _0x586acb=_0x40b74e+_0x34d132[_0x75d1('0x32')][_0x75d1('0x22')];var _0x349852=_0xd6a332===_0x34d132[_0x75d1('0x32')]['length']-0x1?_0x40b74e+_0x5159a8[_0x75d1('0x22')]+_0x130dd3['length']+0x2:_0x40b74e+_0xd6a332+0x1;_0x5159a8['splice'](_0xd6a332,0x0,{'type':_0x5b2949[_0x75d1('0x3')],'app':_0x75d1('0x44'),'appdata':_0x34d132[_0x75d1('0x32')][_0xd6a332]+'?'+_0x5b2949[_0x75d1('0x5')]+',${EXTEN},'+_0x586acb+':'+_0x5b2949['context']+_0x75d1('0x45')+_0x349852,'exten':_0x5b2949[_0x75d1('0x6')],'context':_0x5b2949[_0x75d1('0x5')],'priority':_0x40b74e+_0xd6a332,'VoiceExtensionId':_0x5b2949['id']});}if(_0x34d132[_0x75d1('0x3f')]===_0x75d1('0x46'))_0x34d132['appdata']=_0x3d9275(_0x5b2949,_0x34d132[_0x75d1('0x47')]);_0x34d132[_0x75d1('0x48')]=_0x5159a8[_0x75d1('0x22')]?_[_0x75d1('0x49')](_0x5159a8)[_0x75d1('0x48')]+0x1:_0x40b74e;_0x4af3bb=_[_0x75d1('0x4a')](_0x4af3bb,_0x5159a8,[_0x34d132],_0x130dd3);_0x40b74e=_[_0x75d1('0x49')](_0x4af3bb)[_0x75d1('0x48')]+0x1;}return _0x429909(_0x4af3bb);})[_0x75d1('0x4b')](function(_0x9e30a5){_0x1d9853(_0x9e30a5);});});}return _0x5b3ed3[_0x75d1('0x4c')]('VoiceExtension',attributes,{'tableName':_0x75d1('0x4d'),'paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x1d93ea){var _0x109473=this[_0x75d1('0x4e')]({'plain':!![]});var _0x3754b1=_0x109473[_0x75d1('0x3')]===_0x75d1('0xf')?_0x1160ca(_0x109473):_0x1c9ba6(_0x109473);return _0x4e70ba(_0x109473,_0x1d93ea,_['last'](_0x3754b1)['priority']+0x1)[_0x75d1('0x30')](function(_0x3e6ac3){var _0x6f8ca2=_[_0x75d1('0x4a')](_0x3754b1,_0x3e6ac3);_0x6f8ca2[_0x75d1('0x9')]({'type':_0x109473['type'],'app':'Hangup','exten':_0x109473[_0x75d1('0x6')],'context':_0x109473[_0x75d1('0x5')],'priority':_['last'](_0x6f8ca2)[_0x75d1('0x48')]+0x1,'VoiceExtensionId':_0x109473['id']});return _0x6f8ca2;});}}});};
\ No newline at end of file
+var _0xcb06=['exten','alias','NoOp','CDR(routeAlias)=','No\x20alias\x20set','inbound','push','CDR(routeid)=','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','outbound','CDR(type)=outbound','cutdigits','${EXTEN:','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','hasOwnProperty','recordingFormat','wav','trunk','timeout','options','url','split','length','param','phone','prefix','${EXTEN}','SIP','join','none','U(xcally-mixmonitor-context)','replace','isEmpty','Interval','findAll','IntervalId','then','interval','*,*,*,*','intervals','filter','tag','toLowerCase','CDR(tag)=','ExecIf','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):','callerID','Set(CALLERID(all)=','NoOp(No\x20number\x20available)','answer','queue','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','XCALLY-MOTION-PROGRESS=1','splice','GotoIfTime',',${EXTEN},','appdata','priority','last','catch','define','voice_extensions','get','concat','Hangup','models','Set','CDR(type)=','type','context'];(function(_0x304375,_0x2895ea){var _0x15d16b=function(_0xd7d887){while(--_0xd7d887){_0x304375['push'](_0x304375['shift']());}};_0x15d16b(++_0x2895ea);}(_0xcb06,0x127));var _0x6cb0=function(_0x35c33d,_0x46defa){_0x35c33d=_0x35c33d-0x0;var _0x5139b3=_0xcb06[_0x35c33d];return _0x5139b3;};'use strict';var _=require('lodash');var attributes=require('./voiceExtension.attributes');module['exports']=function(_0x323164){var _0x52fcdf=_0x323164[_0x6cb0('0x0')];function _0x5d6c71(_0x12010c){var _0x5eab59=0x2;var _0x83e48a=[{'type':_0x12010c['type'],'app':_0x6cb0('0x1'),'appdata':_0x6cb0('0x2')+_0x12010c[_0x6cb0('0x3')],'context':_0x12010c[_0x6cb0('0x4')],'exten':_0x12010c[_0x6cb0('0x5')],'priority':_0x5eab59++,'VoiceExtensionId':_0x12010c['id']},{'type':_0x12010c[_0x6cb0('0x3')],'app':_0x12010c[_0x6cb0('0x6')]?'Set':_0x6cb0('0x7'),'appdata':_0x12010c[_0x6cb0('0x6')]?_0x6cb0('0x8')+_0x12010c[_0x6cb0('0x6')]:_0x6cb0('0x9'),'context':_0x12010c[_0x6cb0('0x4')],'exten':_0x12010c[_0x6cb0('0x5')],'priority':_0x5eab59++,'VoiceExtensionId':_0x12010c['id']}];if(_0x12010c[_0x6cb0('0x3')]===_0x6cb0('0xa')){_0x83e48a[_0x6cb0('0xb')]({'type':_0x6cb0('0xa'),'app':_0x6cb0('0x1'),'appdata':_0x6cb0('0xc')+_0x12010c['id'],'context':_0x12010c['context'],'exten':_0x12010c[_0x6cb0('0x5')],'priority':_0x5eab59++,'VoiceExtensionId':_0x12010c['id']});}_0x83e48a[_0x6cb0('0xb')]({'type':_0x12010c[_0x6cb0('0x3')],'app':_0x6cb0('0x1'),'appdata':'XCALLY-MOTION-ANSWER=0','context':_0x12010c[_0x6cb0('0x4')],'exten':_0x12010c[_0x6cb0('0x5')],'priority':_0x5eab59++,'VoiceExtensionId':_0x12010c['id']},{'type':_0x12010c[_0x6cb0('0x3')],'app':_0x6cb0('0x1'),'appdata':_0x6cb0('0xd'),'context':_0x12010c[_0x6cb0('0x4')],'exten':_0x12010c['exten'],'priority':_0x5eab59++,'VoiceExtensionId':_0x12010c['id']},{'type':_0x12010c[_0x6cb0('0x3')],'app':_0x6cb0('0x1'),'appdata':_0x6cb0('0xe'),'context':_0x12010c['context'],'exten':_0x12010c[_0x6cb0('0x5')],'priority':_0x5eab59++,'VoiceExtensionId':_0x12010c['id']});return _0x83e48a;}function _0x34b18d(_0x3bae9c){var _0x307259=0x2;var _0x2539da=[{'type':_0x6cb0('0xf'),'app':'Set','appdata':_0x6cb0('0x10'),'context':_0x3bae9c[_0x6cb0('0x4')],'exten':_0x3bae9c[_0x6cb0('0x5')],'priority':_0x307259++,'VoiceExtensionId':_0x3bae9c['id']},{'type':_0x6cb0('0xf'),'app':_0x3bae9c[_0x6cb0('0x6')]?_0x6cb0('0x1'):'NoOp','appdata':_0x3bae9c['alias']?_0x6cb0('0x8')+_0x3bae9c[_0x6cb0('0x6')]:'No\x20alias\x20set','context':_0x3bae9c['context'],'exten':_0x3bae9c[_0x6cb0('0x5')],'priority':_0x307259++,'VoiceExtensionId':_0x3bae9c['id']},{'type':_0x6cb0('0xf'),'app':_0x6cb0('0x1'),'appdata':'CDR(destination)='+(_0x3bae9c[_0x6cb0('0x11')]?_0x6cb0('0x12')+_0x3bae9c[_0x6cb0('0x11')]+'}':'${EXTEN}'),'context':_0x3bae9c[_0x6cb0('0x4')],'exten':_0x3bae9c[_0x6cb0('0x5')],'priority':_0x307259++,'VoiceExtensionId':_0x3bae9c['id']},{'type':_0x6cb0('0xf'),'app':_0x6cb0('0x1'),'appdata':'CDR(routeid)='+_0x3bae9c['id'],'context':_0x3bae9c[_0x6cb0('0x4')],'exten':_0x3bae9c[_0x6cb0('0x5')],'priority':_0x307259++,'VoiceExtensionId':_0x3bae9c['id']},{'type':_0x6cb0('0xf'),'app':'ExecIf','appdata':_0x6cb0('0x13')+(_0x307259+0x2)+_0x6cb0('0x14')+(_0x307259+0x1)+')','context':_0x3bae9c[_0x6cb0('0x4')],'exten':_0x3bae9c[_0x6cb0('0x5')],'priority':_0x307259++,'VoiceExtensionId':_0x3bae9c['id']},{'type':_0x6cb0('0xf'),'app':_0x6cb0('0x1'),'appdata':_0x3bae9c['cutdigits']?_0x6cb0('0x15')+_0x3bae9c[_0x6cb0('0x11')]+'}':_0x6cb0('0x16'),'context':_0x3bae9c[_0x6cb0('0x4')],'exten':_0x3bae9c['exten'],'priority':_0x307259++,'VoiceExtensionId':_0x3bae9c['id']},{'type':_0x6cb0('0xf'),'app':_0x6cb0('0x1'),'appdata':'XCALLY-MOTION-ANSWER=0','context':_0x3bae9c[_0x6cb0('0x4')],'exten':_0x3bae9c['exten'],'priority':_0x307259++,'VoiceExtensionId':_0x3bae9c['id']},{'type':_0x6cb0('0xf'),'app':_0x6cb0('0x1'),'appdata':_0x6cb0('0xd'),'context':_0x3bae9c[_0x6cb0('0x4')],'exten':_0x3bae9c[_0x6cb0('0x5')],'priority':_0x307259++,'VoiceExtensionId':_0x3bae9c['id']},{'type':_0x6cb0('0xf'),'app':_0x6cb0('0x1'),'appdata':'MONITOR_OPTIONS=ab','context':_0x3bae9c[_0x6cb0('0x4')],'exten':_0x3bae9c['exten'],'priority':_0x307259++,'VoiceExtensionId':_0x3bae9c['id']},{'type':'outbound','app':_0x6cb0('0x1'),'appdata':'outboundrouteid='+_0x3bae9c['id'],'context':_0x3bae9c[_0x6cb0('0x4')],'exten':_0x3bae9c[_0x6cb0('0x5')],'priority':_0x307259++,'VoiceExtensionId':_0x3bae9c['id']}];if(_0x3bae9c[_0x6cb0('0x17')]('recordingFormat')&&_0x3bae9c[_0x6cb0('0x18')]!=='none'){_0x2539da[_0x6cb0('0xb')]({'type':_0x6cb0('0xf'),'app':'Set','appdata':'_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','context':_0x3bae9c[_0x6cb0('0x4')],'exten':_0x3bae9c[_0x6cb0('0x5')],'priority':_0x307259++,'VoiceExtensionId':_0x3bae9c['id']},{'type':_0x6cb0('0xf'),'app':'Set','appdata':'_XCALLY_MIXMONITOR_FORMAT='+_0x3bae9c[_0x6cb0('0x18')]||_0x6cb0('0x19'),'context':_0x3bae9c[_0x6cb0('0x4')],'exten':_0x3bae9c[_0x6cb0('0x5')],'priority':_0x307259++,'VoiceExtensionId':_0x3bae9c['id']});}return _0x2539da;}function _0x588ca0(_0xc21b27,_0x2b325b){var _0x5b74f4=[{'name':_0x6cb0('0x1a'),'param':0x0},{'name':_0x6cb0('0x1b'),'param':0x1},{'name':_0x6cb0('0x1c'),'param':0x2},{'name':_0x6cb0('0x1d'),'param':0x3}];var _0x26f2e8={};var _0xd8bf6c=_0x2b325b[_0x6cb0('0x1e')](',');var _0xb68de7=[];for(var _0x3076fc=0x0;_0x3076fc<_0x5b74f4[_0x6cb0('0x1f')];_0x3076fc++){switch(_0x5b74f4[_0x3076fc]['name']){case'trunk':_0x26f2e8[_0x6cb0('0x1a')]=_0xd8bf6c[_0x5b74f4[_0x3076fc][_0x6cb0('0x20')]][_0x6cb0('0x1e')]('/')[0x1];_0x26f2e8[_0x6cb0('0x21')]=_0xd8bf6c[_0x5b74f4[_0x3076fc][_0x6cb0('0x20')]]['split']('/')[0x2];_0x26f2e8[_0x6cb0('0x22')]=_0x26f2e8[_0x6cb0('0x21')]?_0x26f2e8[_0x6cb0('0x21')][_0x6cb0('0x1e')]('$')[0x0]:undefined;_0x26f2e8[_0x6cb0('0x21')]=_0xc21b27[_0x6cb0('0x11')]?(_0x26f2e8[_0x6cb0('0x22')]||'')+_0x6cb0('0x12')+_0xc21b27['cutdigits']+'}':(_0x26f2e8[_0x6cb0('0x22')]||'')+_0x6cb0('0x23');_0xb68de7[_0x5b74f4[_0x3076fc][_0x6cb0('0x20')]]=[_0x6cb0('0x24'),_0x26f2e8[_0x6cb0('0x1a')],_0x26f2e8[_0x6cb0('0x21')]][_0x6cb0('0x25')]('/');break;case _0x6cb0('0x1c'):_0x26f2e8[_0x6cb0('0x1c')]=_0xd8bf6c[_0x5b74f4[_0x3076fc]['param']];if(_0xc21b27[_0x6cb0('0x18')]!==_0x6cb0('0x26')){if(_0x26f2e8[_0x6cb0('0x1c')]['indexOf'](_0x6cb0('0x27'))<0x0){_0x26f2e8['options']+='U(xcally-mixmonitor-context)';}}else{_0x26f2e8[_0x6cb0('0x1c')]=_0x26f2e8[_0x6cb0('0x1c')][_0x6cb0('0x28')](_0x6cb0('0x27'),'');}_0xb68de7[_0x5b74f4[_0x3076fc][_0x6cb0('0x20')]]=_0x26f2e8[_0x6cb0('0x1c')];break;default:_0xb68de7[_0x5b74f4[_0x3076fc]['param']]=_0xd8bf6c[_0x5b74f4[_0x3076fc][_0x6cb0('0x20')]];}}return _0xb68de7['join'](',');}function _0x29e154(_0x588226,_0x80e7f7,_0x4f29a8){return new Promise(function(_0x25f805,_0x3308f1){var _0x1b9a46=[];if(_[_0x6cb0('0x29')](_0x80e7f7))return _0x25f805(_0x1b9a46);_0x52fcdf[_0x6cb0('0x2a')][_0x6cb0('0x2b')]({'attributes':['id','interval',_0x6cb0('0x2c')],'raw':!![]})[_0x6cb0('0x2d')](function(_0x577c39){for(var _0x4a7886=0x0,_0xa85dbe=0x0;_0x4a7886<_0x80e7f7[_0x6cb0('0x1f')];_0x4a7886++,_0xa85dbe=0x0){var _0x39c1ac=_0x80e7f7[_0x4a7886];var _0x4e655a=[];var _0xdbab3a=[];delete _0x39c1ac['id'];if(_0x39c1ac[_0x6cb0('0x2e')]!==_0x6cb0('0x2f')){_0x39c1ac[_0x6cb0('0x30')]=[_0x39c1ac[_0x6cb0('0x2e')]];}else{_0x39c1ac[_0x6cb0('0x30')]=_0x39c1ac[_0x6cb0('0x2c')]?_['map'](_[_0x6cb0('0x31')](_0x577c39,{'IntervalId':_0x39c1ac[_0x6cb0('0x2c')]}),_0x6cb0('0x2e')):[];}_0x39c1ac[_0x6cb0('0x4')]=_0x588226[_0x6cb0('0x4')];_0x39c1ac[_0x6cb0('0x5')]=_0x588226['exten'];if(_0x39c1ac[_0x6cb0('0x3')])_0x39c1ac[_0x6cb0('0x3')]=_0x39c1ac[_0x6cb0('0x3')]['toLowerCase']();if(_0x588226[_0x6cb0('0x3')]===_0x6cb0('0xf')){if(_0x39c1ac[_0x6cb0('0x17')]('tag')&&_0x39c1ac[_0x6cb0('0x32')]&&_0x39c1ac[_0x6cb0('0x32')]!=='--'){_0x4e655a[_0x6cb0('0xb')]({'type':_0x39c1ac[_0x6cb0('0x3')][_0x6cb0('0x33')](),'app':'Set','appdata':_0x6cb0('0x34')+_0x39c1ac[_0x6cb0('0x32')],'context':_0x588226[_0x6cb0('0x4')],'exten':_0x588226[_0x6cb0('0x5')],'priority':_0x39c1ac[_0x6cb0('0x30')][_0x6cb0('0x1f')]+_0x4f29a8+_0xa85dbe++,'VoiceExtensionId':_0x588226['id']});}_0x4e655a[_0x6cb0('0xb')]({'type':_0x39c1ac[_0x6cb0('0x3')]['toLowerCase'](),'app':_0x6cb0('0x35'),'appdata':_0x6cb0('0x36')+(_0x39c1ac[_0x6cb0('0x37')]?_0x6cb0('0x38')+_0x39c1ac[_0x6cb0('0x37')]+')':_0x6cb0('0x39')),'context':_0x588226[_0x6cb0('0x4')],'exten':_0x588226[_0x6cb0('0x5')],'priority':_0x39c1ac[_0x6cb0('0x30')]['length']+_0x4f29a8+_0xa85dbe++,'VoiceExtensionId':_0x588226['id']});}else{if(_0x39c1ac['hasOwnProperty'](_0x6cb0('0x3a'))){if([_0x6cb0('0x3b'),'playback']['includes'](_0x39c1ac['app'][_0x6cb0('0x33')]())&&_0x39c1ac['appType']!=='custom'){if(_0x39c1ac['answer']){_0x4e655a[_0x6cb0('0xb')]({'type':_0x39c1ac['type']['toLowerCase'](),'app':_0x6cb0('0x35'),'appdata':_0x6cb0('0x3c'),'context':_0x588226[_0x6cb0('0x4')],'exten':_0x588226[_0x6cb0('0x5')],'priority':_0x39c1ac[_0x6cb0('0x30')]['length']+_0x4f29a8+_0xa85dbe++,'VoiceExtensionId':_0x588226['id']});_0x4e655a[_0x6cb0('0xb')]({'type':_0x39c1ac[_0x6cb0('0x3')][_0x6cb0('0x33')](),'app':_0x6cb0('0x1'),'appdata':_0x6cb0('0x3d'),'context':_0x588226[_0x6cb0('0x4')],'exten':_0x588226[_0x6cb0('0x5')],'priority':_0x39c1ac[_0x6cb0('0x30')][_0x6cb0('0x1f')]+_0x4f29a8+_0xa85dbe++,'VoiceExtensionId':_0x588226['id']});}else{_0x4e655a[_0x6cb0('0xb')]({'type':_0x39c1ac[_0x6cb0('0x3')][_0x6cb0('0x33')](),'app':_0x6cb0('0x35'),'appdata':'$[${XCALLY-MOTION-PROGRESS}=0]?Progress','context':_0x588226[_0x6cb0('0x4')],'exten':_0x588226[_0x6cb0('0x5')],'priority':_0x39c1ac[_0x6cb0('0x30')][_0x6cb0('0x1f')]+_0x4f29a8+_0xa85dbe++,'VoiceExtensionId':_0x588226['id']});_0x4e655a['push']({'type':_0x39c1ac[_0x6cb0('0x3')][_0x6cb0('0x33')](),'app':_0x6cb0('0x1'),'appdata':_0x6cb0('0x3e'),'context':_0x588226[_0x6cb0('0x4')],'exten':_0x588226[_0x6cb0('0x5')],'priority':_0x39c1ac[_0x6cb0('0x30')][_0x6cb0('0x1f')]+_0x4f29a8+_0xa85dbe++,'VoiceExtensionId':_0x588226['id']});}}}}for(var _0x279781=0x0;_0x279781<_0x39c1ac[_0x6cb0('0x30')]['length'];_0x279781++){var _0x3155c4=_0x4f29a8+_0x39c1ac[_0x6cb0('0x30')]['length'];var _0x53bdfe=_0x279781===_0x39c1ac['intervals'][_0x6cb0('0x1f')]-0x1?_0x4f29a8+_0x4e655a[_0x6cb0('0x1f')]+_0xdbab3a[_0x6cb0('0x1f')]+0x2:_0x4f29a8+_0x279781+0x1;_0x4e655a[_0x6cb0('0x3f')](_0x279781,0x0,{'type':_0x588226[_0x6cb0('0x3')],'app':_0x6cb0('0x40'),'appdata':_0x39c1ac[_0x6cb0('0x30')][_0x279781]+'?'+_0x588226['context']+_0x6cb0('0x41')+_0x3155c4+':'+_0x588226[_0x6cb0('0x4')]+',${EXTEN},'+_0x53bdfe,'exten':_0x588226['exten'],'context':_0x588226[_0x6cb0('0x4')],'priority':_0x4f29a8+_0x279781,'VoiceExtensionId':_0x588226['id']});}if(_0x39c1ac['appType']==='outboundDial')_0x39c1ac[_0x6cb0('0x42')]=_0x588ca0(_0x588226,_0x39c1ac[_0x6cb0('0x42')]);_0x39c1ac[_0x6cb0('0x43')]=_0x4e655a['length']?_[_0x6cb0('0x44')](_0x4e655a)[_0x6cb0('0x43')]+0x1:_0x4f29a8;_0x1b9a46=_['concat'](_0x1b9a46,_0x4e655a,[_0x39c1ac],_0xdbab3a);_0x4f29a8=_[_0x6cb0('0x44')](_0x1b9a46)[_0x6cb0('0x43')]+0x1;}return _0x25f805(_0x1b9a46);})[_0x6cb0('0x45')](function(_0x581b82){_0x3308f1(_0x581b82);});});}return _0x323164[_0x6cb0('0x46')]('VoiceExtension',attributes,{'tableName':_0x6cb0('0x47'),'paranoid':![],'indexes':[],'timestamps':!![],'instanceMethods':{'createRouting':function(_0x1c70dd){var _0x16e640=this[_0x6cb0('0x48')]({'plain':!![]});var _0x4a54f3=_0x16e640[_0x6cb0('0x3')]===_0x6cb0('0xf')?_0x34b18d(_0x16e640):_0x5d6c71(_0x16e640);return _0x29e154(_0x16e640,_0x1c70dd,_[_0x6cb0('0x44')](_0x4a54f3)['priority']+0x1)['then'](function(_0x12fd3c){var _0x32350d=_[_0x6cb0('0x49')](_0x4a54f3,_0x12fd3c);_0x32350d['push']({'type':_0x16e640['type'],'app':_0x6cb0('0x4a'),'exten':_0x16e640[_0x6cb0('0x5')],'context':_0x16e640[_0x6cb0('0x4')],'priority':_[_0x6cb0('0x44')](_0x32350d)[_0x6cb0('0x43')]+0x1,'VoiceExtensionId':_0x16e640['id']});return _0x32350d;});}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb242=['defaults','localhost','./voiceExtension.socket','then','info','VoiceExtension,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','findAll','options','raw','where','limit','include','model','attributes','GetVoiceExtension','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/environment','jayson/promise','http','redis'];(function(_0x39df2c,_0x1ac426){var _0x1fd94a=function(_0x3108e){while(--_0x3108e){_0x39df2c['push'](_0x39df2c['shift']());}};_0x1fd94a(++_0x1ac426);}(_0xb242,0x1f3));var _0x2b24=function(_0x4c2dfc,_0x4814c0){_0x4c2dfc=_0x4c2dfc-0x0;var _0xfd728d=_0xb242[_0x4c2dfc];return _0xfd728d;};'use strict';var _=require('lodash');var util=require(_0x2b24('0x0'));var moment=require(_0x2b24('0x1'));var BPromise=require(_0x2b24('0x2'));var rs=require(_0x2b24('0x3'));var fs=require('fs');var Redis=require(_0x2b24('0x4'));var db=require(_0x2b24('0x5'))['db'];var utils=require(_0x2b24('0x6'));var logger=require('../../config/logger')('rpc');var config=require(_0x2b24('0x7'));var jayson=require(_0x2b24('0x8'));var client=jayson['client'][_0x2b24('0x9')]({'port':0x232a});config[_0x2b24('0xa')]=_[_0x2b24('0xb')](config['redis'],{'host':_0x2b24('0xc'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x2b24('0xa')]));require(_0x2b24('0xd'))['register'](socket);function respondWithRpcPromise(_0x280030,_0x56dd79,_0x24efd2){return new BPromise(function(_0x12a5cb,_0x5e219d){return client['request'](_0x280030,_0x24efd2)[_0x2b24('0xe')](function(_0x4ab047){logger[_0x2b24('0xf')](_0x2b24('0x10'),_0x56dd79,_0x2b24('0x11'));logger[_0x2b24('0x12')]('VoiceExtension,\x20%s,\x20%s,\x20%s',_0x56dd79,'request\x20sent',JSON[_0x2b24('0x13')](_0x4ab047));if(_0x4ab047[_0x2b24('0x14')]){if(_0x4ab047[_0x2b24('0x14')][_0x2b24('0x15')]===0x1f4){logger[_0x2b24('0x14')]('VoiceExtension,\x20%s,\x20%s',_0x56dd79,_0x4ab047[_0x2b24('0x14')][_0x2b24('0x16')]);return _0x5e219d(_0x4ab047['error'][_0x2b24('0x16')]);}logger[_0x2b24('0x14')]('VoiceExtension,\x20%s,\x20%s',_0x56dd79,_0x4ab047[_0x2b24('0x14')][_0x2b24('0x16')]);return _0x12a5cb(_0x4ab047[_0x2b24('0x14')][_0x2b24('0x16')]);}else{logger['info'](_0x2b24('0x10'),_0x56dd79,_0x2b24('0x11'));_0x12a5cb(_0x4ab047[_0x2b24('0x17')]['message']);}})[_0x2b24('0x18')](function(_0xa45843){logger[_0x2b24('0x14')]('VoiceExtension,\x20%s,\x20%s',_0x56dd79,_0xa45843);_0x5e219d(_0xa45843);});});}exports['GetVoiceExtension']=function(_0x30f993){var _0x271827=this;return new Promise(function(_0xb6e4f8,_0x357596){return db['VoiceExtension'][_0x2b24('0x19')]({'raw':_0x30f993[_0x2b24('0x1a')]?_0x30f993[_0x2b24('0x1a')][_0x2b24('0x1b')]===undefined?!![]:![]:!![],'where':_0x30f993['options']?_0x30f993['options'][_0x2b24('0x1c')]||null:null,'attributes':_0x30f993['options']?_0x30f993['options']['attributes']||null:null,'limit':_0x30f993['options']?_0x30f993[_0x2b24('0x1a')][_0x2b24('0x1d')]||null:null,'include':_0x30f993[_0x2b24('0x1a')]?_0x30f993[_0x2b24('0x1a')]['include']?_['map'](_0x30f993['options'][_0x2b24('0x1e')],function(_0x20801c){return{'model':db[_0x20801c[_0x2b24('0x1f')]],'as':_0x20801c['as'],'attributes':_0x20801c[_0x2b24('0x20')],'include':_0x20801c['include']?_['map'](_0x20801c[_0x2b24('0x1e')],function(_0x3bd10a){return{'model':db[_0x3bd10a['model']],'as':_0x3bd10a['as'],'attributes':_0x3bd10a['attributes'],'include':_0x3bd10a[_0x2b24('0x1e')]?_['map'](_0x3bd10a['include'],function(_0x2a9a05){return{'model':db[_0x2a9a05[_0x2b24('0x1f')]],'as':_0x2a9a05['as'],'attributes':_0x2a9a05[_0x2b24('0x20')]};}):[]};}):[]};}):[]:[]})[_0x2b24('0xe')](function(_0x4e6991){logger[_0x2b24('0xf')]('GetVoiceExtension',_0x30f993);logger[_0x2b24('0x12')](_0x2b24('0x21'),_0x30f993,JSON[_0x2b24('0x13')](_0x4e6991));_0xb6e4f8(_0x4e6991);})[_0x2b24('0x18')](function(_0x316253){logger[_0x2b24('0x14')](_0x2b24('0x21'),_0x316253[_0x2b24('0x16')],_0x30f993);_0x357596(_0x271827[_0x2b24('0x14')](0x1f4,_0x316253[_0x2b24('0x16')]));});});};
\ No newline at end of file
+var _0x3cb7=['http','redis','defaults','localhost','./voiceExtension.socket','register','request','then','info','VoiceExtension,\x20%s,\x20%s','request\x20sent','VoiceExtension,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','GetVoiceExtension','options','raw','attributes','limit','include','map','model','debug','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise'];(function(_0x3c017e,_0x545467){var _0x5a35fb=function(_0x27bb9f){while(--_0x27bb9f){_0x3c017e['push'](_0x3c017e['shift']());}};_0x5a35fb(++_0x545467);}(_0x3cb7,0xcf));var _0x73cb=function(_0x45bcb1,_0x46cad0){_0x45bcb1=_0x45bcb1-0x0;var _0x4bd6a3=_0x3cb7[_0x45bcb1];return _0x4bd6a3;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x73cb('0x0'));var BPromise=require('bluebird');var rs=require(_0x73cb('0x1'));var fs=require('fs');var Redis=require(_0x73cb('0x2'));var db=require(_0x73cb('0x3'))['db'];var utils=require(_0x73cb('0x4'));var logger=require(_0x73cb('0x5'))(_0x73cb('0x6'));var config=require(_0x73cb('0x7'));var jayson=require(_0x73cb('0x8'));var client=jayson['client'][_0x73cb('0x9')]({'port':0x232a});config[_0x73cb('0xa')]=_[_0x73cb('0xb')](config[_0x73cb('0xa')],{'host':_0x73cb('0xc'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x73cb('0xa')]));require(_0x73cb('0xd'))[_0x73cb('0xe')](socket);function respondWithRpcPromise(_0x29deae,_0x1826dd,_0xc1a63e){return new BPromise(function(_0x43eab2,_0x501542){return client[_0x73cb('0xf')](_0x29deae,_0xc1a63e)[_0x73cb('0x10')](function(_0x35900e){logger[_0x73cb('0x11')](_0x73cb('0x12'),_0x1826dd,_0x73cb('0x13'));logger['debug'](_0x73cb('0x14'),_0x1826dd,_0x73cb('0x13'),JSON[_0x73cb('0x15')](_0x35900e));if(_0x35900e[_0x73cb('0x16')]){if(_0x35900e[_0x73cb('0x16')][_0x73cb('0x17')]===0x1f4){logger[_0x73cb('0x16')](_0x73cb('0x12'),_0x1826dd,_0x35900e[_0x73cb('0x16')][_0x73cb('0x18')]);return _0x501542(_0x35900e['error']['message']);}logger['error'](_0x73cb('0x12'),_0x1826dd,_0x35900e[_0x73cb('0x16')][_0x73cb('0x18')]);return _0x43eab2(_0x35900e[_0x73cb('0x16')][_0x73cb('0x18')]);}else{logger['info'](_0x73cb('0x12'),_0x1826dd,_0x73cb('0x13'));_0x43eab2(_0x35900e[_0x73cb('0x19')][_0x73cb('0x18')]);}})[_0x73cb('0x1a')](function(_0x28ee3b){logger[_0x73cb('0x16')](_0x73cb('0x12'),_0x1826dd,_0x28ee3b);_0x501542(_0x28ee3b);});});}exports[_0x73cb('0x1b')]=function(_0x31fb89){var _0x50a5c4=this;return new Promise(function(_0xe092aa,_0x18d19e){return db['VoiceExtension']['findAll']({'raw':_0x31fb89[_0x73cb('0x1c')]?_0x31fb89[_0x73cb('0x1c')][_0x73cb('0x1d')]===undefined?!![]:![]:!![],'where':_0x31fb89['options']?_0x31fb89[_0x73cb('0x1c')]['where']||null:null,'attributes':_0x31fb89['options']?_0x31fb89[_0x73cb('0x1c')][_0x73cb('0x1e')]||null:null,'limit':_0x31fb89['options']?_0x31fb89[_0x73cb('0x1c')][_0x73cb('0x1f')]||null:null,'include':_0x31fb89[_0x73cb('0x1c')]?_0x31fb89['options'][_0x73cb('0x20')]?_[_0x73cb('0x21')](_0x31fb89[_0x73cb('0x1c')][_0x73cb('0x20')],function(_0x2e7a31){return{'model':db[_0x2e7a31[_0x73cb('0x22')]],'as':_0x2e7a31['as'],'attributes':_0x2e7a31[_0x73cb('0x1e')],'include':_0x2e7a31[_0x73cb('0x20')]?_[_0x73cb('0x21')](_0x2e7a31['include'],function(_0x27f91f){return{'model':db[_0x27f91f['model']],'as':_0x27f91f['as'],'attributes':_0x27f91f[_0x73cb('0x1e')],'include':_0x27f91f[_0x73cb('0x20')]?_[_0x73cb('0x21')](_0x27f91f[_0x73cb('0x20')],function(_0x2d6ac8){return{'model':db[_0x2d6ac8[_0x73cb('0x22')]],'as':_0x2d6ac8['as'],'attributes':_0x2d6ac8['attributes']};}):[]};}):[]};}):[]:[]})[_0x73cb('0x10')](function(_0x4a1b82){logger[_0x73cb('0x11')]('GetVoiceExtension',_0x31fb89);logger[_0x73cb('0x23')](_0x73cb('0x1b'),_0x31fb89,JSON[_0x73cb('0x15')](_0x4a1b82));_0xe092aa(_0x4a1b82);})[_0x73cb('0x1a')](function(_0x5b5557){logger['error'](_0x73cb('0x1b'),_0x5b5557[_0x73cb('0x18')],_0x31fb89);_0x18d19e(_0x50a5c4[_0x73cb('0x16')](0x1f4,_0x5b5557[_0x73cb('0x18')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe14b=['removeListener','register','length','./voiceExtension.events','save','emit'];(function(_0x2f0ed7,_0x2207f5){var _0x5bbea4=function(_0x224b71){while(--_0x224b71){_0x2f0ed7['push'](_0x2f0ed7['shift']());}};_0x5bbea4(++_0x2207f5);}(_0xe14b,0x93));var _0xbe14=function(_0x3622ff,_0x2c8738){_0x3622ff=_0x3622ff-0x0;var _0x179176=_0xe14b[_0x3622ff];return _0x179176;};'use strict';var VoiceExtensionEvents=require(_0xbe14('0x0'));var events=[_0xbe14('0x1'),'remove','update'];function createListener(_0x11c3a0,_0x36393a){return function(_0x48a116){_0x36393a[_0xbe14('0x2')](_0x11c3a0,_0x48a116);};}function removeListener(_0x5ce8fb,_0x496c04){return function(){VoiceExtensionEvents[_0xbe14('0x3')](_0x5ce8fb,_0x496c04);};}exports[_0xbe14('0x4')]=function(_0x1fe204){for(var _0x1ff100=0x0,_0x1d9ade=events[_0xbe14('0x5')];_0x1ff100<_0x1d9ade;_0x1ff100++){var _0x196fca=events[_0x1ff100];var _0x566ae7=createListener('voiceExtension:'+_0x196fca,_0x1fe204);VoiceExtensionEvents['on'](_0x196fca,_0x566ae7);}};
\ No newline at end of file
+var _0xc4aa=['remove','update','removeListener','register','length','./voiceExtension.events','save'];(function(_0x2ed81b,_0x385235){var _0x1c2aec=function(_0x25c9a7){while(--_0x25c9a7){_0x2ed81b['push'](_0x2ed81b['shift']());}};_0x1c2aec(++_0x385235);}(_0xc4aa,0x1b7));var _0xac4a=function(_0x342baa,_0x4a110f){_0x342baa=_0x342baa-0x0;var _0x1208f3=_0xc4aa[_0x342baa];return _0x1208f3;};'use strict';var VoiceExtensionEvents=require(_0xac4a('0x0'));var events=[_0xac4a('0x1'),_0xac4a('0x2'),_0xac4a('0x3')];function createListener(_0x275161,_0x22469d){return function(_0x58634e){_0x22469d['emit'](_0x275161,_0x58634e);};}function removeListener(_0x47d4f6,_0x2f48ed){return function(){VoiceExtensionEvents[_0xac4a('0x4')](_0x47d4f6,_0x2f48ed);};}exports[_0xac4a('0x5')]=function(_0x215f39){for(var _0x96be2b=0x0,_0x15cd34=events[_0xac4a('0x6')];_0x96be2b<_0x15cd34;_0x96be2b++){var _0x10525b=events[_0x96be2b];var _0x5c6179=createListener('voiceExtension:'+_0x10525b,_0x215f39);VoiceExtensionEvents['on'](_0x10525b,_0x5c6179);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd046=['get','show','getMessages','isAuthenticated','update','delete','/:id','destroy','exports','util','path','connect-timeout','Router','../../components/interaction/service','./voiceMail.controller','index'];(function(_0x5568fb,_0x395cd8){var _0x117131=function(_0x1c5ee1){while(--_0x1c5ee1){_0x5568fb['push'](_0x5568fb['shift']());}};_0x117131(++_0x395cd8);}(_0xd046,0x129));var _0x6d04=function(_0x7b634a,_0x2f6e7e){_0x7b634a=_0x7b634a-0x0;var _0x898456=_0xd046[_0x7b634a];return _0x898456;};'use strict';var multer=require('multer');var util=require(_0x6d04('0x0'));var path=require(_0x6d04('0x1'));var timeout=require(_0x6d04('0x2'));var express=require('express');var router=express[_0x6d04('0x3')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require(_0x6d04('0x4'));var config=require('../../config/environment');var controller=require(_0x6d04('0x5'));router['get']('/',auth['isAuthenticated'](),controller[_0x6d04('0x6')]);router[_0x6d04('0x7')]('/:id',auth['isAuthenticated'](),controller[_0x6d04('0x8')]);router[_0x6d04('0x7')]('/:id/messages',auth['isAuthenticated'](),controller[_0x6d04('0x9')]);router['post']('/',auth[_0x6d04('0xa')](),controller['create']);router['put']('/:id',auth[_0x6d04('0xa')](),controller[_0x6d04('0xb')]);router[_0x6d04('0xc')](_0x6d04('0xd'),auth['isAuthenticated'](),controller[_0x6d04('0xe')]);module[_0x6d04('0xf')]=router;
\ No newline at end of file
+var _0xa6b0=['post','create','put','update','delete','destroy','exports','multer','util','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./voiceMail.controller','get','isAuthenticated','index','/:id','show','/:id/messages'];(function(_0x491db6,_0x1a7ccd){var _0x499475=function(_0x1dbca0){while(--_0x1dbca0){_0x491db6['push'](_0x491db6['shift']());}};_0x499475(++_0x1a7ccd);}(_0xa6b0,0xaf));var _0x0a6b=function(_0x5ed5a0,_0x11723c){_0x5ed5a0=_0x5ed5a0-0x0;var _0x5e3fe3=_0xa6b0[_0x5ed5a0];return _0x5e3fe3;};'use strict';var multer=require(_0x0a6b('0x0'));var util=require(_0x0a6b('0x1'));var path=require('path');var timeout=require('connect-timeout');var express=require(_0x0a6b('0x2'));var router=express[_0x0a6b('0x3')]();var fs_extra=require(_0x0a6b('0x4'));var auth=require('../../components/auth/service');var interaction=require(_0x0a6b('0x5'));var config=require(_0x0a6b('0x6'));var controller=require(_0x0a6b('0x7'));router[_0x0a6b('0x8')]('/',auth[_0x0a6b('0x9')](),controller[_0x0a6b('0xa')]);router[_0x0a6b('0x8')](_0x0a6b('0xb'),auth[_0x0a6b('0x9')](),controller[_0x0a6b('0xc')]);router[_0x0a6b('0x8')](_0x0a6b('0xd'),auth['isAuthenticated'](),controller['getMessages']);router[_0x0a6b('0xe')]('/',auth[_0x0a6b('0x9')](),controller[_0x0a6b('0xf')]);router[_0x0a6b('0x10')](_0x0a6b('0xb'),auth[_0x0a6b('0x9')](),controller[_0x0a6b('0x11')]);router[_0x0a6b('0x12')](_0x0a6b('0xb'),auth[_0x0a6b('0x9')](),controller[_0x0a6b('0x13')]);module[_0x0a6b('0x14')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x49f1=['trim','central','ENUM','yes','TINYINT(4)','TIMESTAMP','INTEGER','VIRTUAL','getDataValue','\x20-\x20','mailbox','sequelize','STRING','from-voicemail','contest_mailbox','setDataValue','string'];(function(_0x21d746,_0x25e3ff){var _0x7ff66a=function(_0x1bfbf8){while(--_0x1bfbf8){_0x21d746['push'](_0x21d746['shift']());}};_0x7ff66a(++_0x25e3ff);}(_0x49f1,0xb5));var _0x149f=function(_0x318cbe,_0x5c349b){_0x318cbe=_0x318cbe-0x0;var _0x323412=_0x49f1[_0x318cbe];return _0x323412;};'use strict';var Sequelize=require(_0x149f('0x0'));module['exports']={'customer_id':{'type':Sequelize[_0x149f('0x1')]},'context':{'type':Sequelize[_0x149f('0x1')],'defaultValue':_0x149f('0x2'),'unique':_0x149f('0x3')},'mailbox':{'type':Sequelize[_0x149f('0x1')],'defaultValue':'','allowNull':![],'unique':'contest_mailbox'},'password':{'type':Sequelize['STRING']},'fullname':{'type':Sequelize[_0x149f('0x1')]},'email':{'type':Sequelize[_0x149f('0x1')],'validate':{'isEmail':!![]},'set':function(_0x148cdc){this[_0x149f('0x4')]('email',typeof _0x148cdc===_0x149f('0x5')&&_0x148cdc[_0x149f('0x6')]()?_0x148cdc[_0x149f('0x6')]():null);}},'pager':{'type':Sequelize['STRING']},'tz':{'type':Sequelize[_0x149f('0x1')],'defaultValue':_0x149f('0x7')},'attach':{'type':Sequelize[_0x149f('0x8')](_0x149f('0x9'),'no'),'defaultValue':_0x149f('0x9'),'allowNull':![]},'saycid':{'type':Sequelize[_0x149f('0x8')](_0x149f('0x9'),'no'),'defaultValue':'yes','allowNull':![]},'dialout':{'type':Sequelize[_0x149f('0x1')]},'callback':{'type':Sequelize['STRING']},'review':{'type':Sequelize[_0x149f('0x8')](_0x149f('0x9'),'no'),'defaultValue':'no','allowNull':![]},'operator':{'type':Sequelize[_0x149f('0x8')](_0x149f('0x9'),'no'),'defaultValue':'no','allowNull':![]},'envelope':{'type':Sequelize[_0x149f('0x8')]('yes','no'),'defaultValue':'no','allowNull':![]},'sayduration':{'type':Sequelize[_0x149f('0x8')](_0x149f('0x9'),'no'),'defaultValue':'no','allowNull':![]},'saydurationm':{'type':_0x149f('0xa'),'defaultValue':0x1,'allowNull':![]},'sendvoicemail':{'type':Sequelize['ENUM'](_0x149f('0x9'),'no'),'defaultValue':'no','allowNull':![]},'delete':{'type':Sequelize['ENUM'](_0x149f('0x9'),'no'),'defaultValue':'no','allowNull':![]},'nextaftercmd':{'type':Sequelize['ENUM']('yes','no'),'defaultValue':_0x149f('0x9'),'allowNull':![]},'forcename':{'type':Sequelize[_0x149f('0x8')](_0x149f('0x9'),'no'),'defaultValue':'no','allowNull':![]},'forcegreetings':{'type':Sequelize[_0x149f('0x8')](_0x149f('0x9'),'no'),'defaultValue':'no','allowNull':![]},'hidefromdir':{'type':Sequelize[_0x149f('0x8')](_0x149f('0x9'),'no'),'defaultValue':'yes','allowNull':![]},'stamp':{'type':_0x149f('0xb')},'emailsubject':{'type':Sequelize['STRING']},'emailbody':{'type':Sequelize[_0x149f('0x1')]},'maxsecs':{'type':Sequelize['INTEGER'](0xff),'defaultValue':0xb4,'allowNull':![]},'maxmsg':{'type':Sequelize[_0x149f('0xc')](0xff),'defaultValue':0x64,'allowNull':![]},'name':{'type':Sequelize[_0x149f('0xd')],'get':function(){return this[_0x149f('0xe')]('fullname')+_0x149f('0xf')+this[_0x149f('0xe')](_0x149f('0x10'));}}};
\ No newline at end of file
+var _0xc9bd=['trim','central','ENUM','yes','TINYINT(4)','INTEGER','VIRTUAL','getDataValue','mailbox','sequelize','STRING','from-voicemail','contest_mailbox','setDataValue','string'];(function(_0x31bac9,_0x47a14c){var _0xe764c7=function(_0x2e7915){while(--_0x2e7915){_0x31bac9['push'](_0x31bac9['shift']());}};_0xe764c7(++_0x47a14c);}(_0xc9bd,0x81));var _0xdc9b=function(_0x46f3f8,_0x12c74b){_0x46f3f8=_0x46f3f8-0x0;var _0xbc57cd=_0xc9bd[_0x46f3f8];return _0xbc57cd;};'use strict';var Sequelize=require(_0xdc9b('0x0'));module['exports']={'customer_id':{'type':Sequelize[_0xdc9b('0x1')]},'context':{'type':Sequelize['STRING'],'defaultValue':_0xdc9b('0x2'),'unique':_0xdc9b('0x3')},'mailbox':{'type':Sequelize[_0xdc9b('0x1')],'defaultValue':'','allowNull':![],'unique':_0xdc9b('0x3')},'password':{'type':Sequelize[_0xdc9b('0x1')]},'fullname':{'type':Sequelize[_0xdc9b('0x1')]},'email':{'type':Sequelize[_0xdc9b('0x1')],'validate':{'isEmail':!![]},'set':function(_0x950497){this[_0xdc9b('0x4')]('email',typeof _0x950497===_0xdc9b('0x5')&&_0x950497[_0xdc9b('0x6')]()?_0x950497[_0xdc9b('0x6')]():null);}},'pager':{'type':Sequelize[_0xdc9b('0x1')]},'tz':{'type':Sequelize[_0xdc9b('0x1')],'defaultValue':_0xdc9b('0x7')},'attach':{'type':Sequelize[_0xdc9b('0x8')]('yes','no'),'defaultValue':_0xdc9b('0x9'),'allowNull':![]},'saycid':{'type':Sequelize[_0xdc9b('0x8')](_0xdc9b('0x9'),'no'),'defaultValue':_0xdc9b('0x9'),'allowNull':![]},'dialout':{'type':Sequelize[_0xdc9b('0x1')]},'callback':{'type':Sequelize['STRING']},'review':{'type':Sequelize[_0xdc9b('0x8')](_0xdc9b('0x9'),'no'),'defaultValue':'no','allowNull':![]},'operator':{'type':Sequelize[_0xdc9b('0x8')](_0xdc9b('0x9'),'no'),'defaultValue':'no','allowNull':![]},'envelope':{'type':Sequelize[_0xdc9b('0x8')](_0xdc9b('0x9'),'no'),'defaultValue':'no','allowNull':![]},'sayduration':{'type':Sequelize['ENUM']('yes','no'),'defaultValue':'no','allowNull':![]},'saydurationm':{'type':_0xdc9b('0xa'),'defaultValue':0x1,'allowNull':![]},'sendvoicemail':{'type':Sequelize['ENUM']('yes','no'),'defaultValue':'no','allowNull':![]},'delete':{'type':Sequelize[_0xdc9b('0x8')](_0xdc9b('0x9'),'no'),'defaultValue':'no','allowNull':![]},'nextaftercmd':{'type':Sequelize[_0xdc9b('0x8')](_0xdc9b('0x9'),'no'),'defaultValue':_0xdc9b('0x9'),'allowNull':![]},'forcename':{'type':Sequelize['ENUM'](_0xdc9b('0x9'),'no'),'defaultValue':'no','allowNull':![]},'forcegreetings':{'type':Sequelize[_0xdc9b('0x8')]('yes','no'),'defaultValue':'no','allowNull':![]},'hidefromdir':{'type':Sequelize[_0xdc9b('0x8')](_0xdc9b('0x9'),'no'),'defaultValue':_0xdc9b('0x9'),'allowNull':![]},'stamp':{'type':'TIMESTAMP'},'emailsubject':{'type':Sequelize[_0xdc9b('0x1')]},'emailbody':{'type':Sequelize[_0xdc9b('0x1')]},'maxsecs':{'type':Sequelize[_0xdc9b('0xb')](0xff),'defaultValue':0xb4,'allowNull':![]},'maxmsg':{'type':Sequelize['INTEGER'](0xff),'defaultValue':0x64,'allowNull':![]},'name':{'type':Sequelize[_0xdc9b('0xc')],'get':function(){return this[_0xdc9b('0xd')]('fullname')+'\x20-\x20'+this[_0xdc9b('0xd')](_0xdc9b('0xe'));}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1339=['../../config/utils','../../config/environment','../../config/license/util','status','json','undefined','limit','offset','Content-Range','then','destroy','get','Voicemails','UserProfileResource','end','sendStatus','stack','name','send','index','map','rawAttributes','fieldName','type','key','query','filters','intersection','attributes','model','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','VoiceMail','count','includeAll','include','findAll','catch','show','params','keys','options','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','getMessages','VoiceMailMessage','pick','findAndCountAll','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api'];(function(_0xa464c9,_0x7c86d8){var _0x3d73c4=function(_0x5c2056){while(--_0x5c2056){_0xa464c9['push'](_0xa464c9['shift']());}};_0x3d73c4(++_0x7c86d8);}(_0x1339,0x1ed));var _0x9133=function(_0x481394,_0x4efafd){_0x481394=_0x481394-0x0;var _0x5a947b=_0x1339[_0x481394];return _0x5a947b;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x9133('0x0'));var jsonpatch=require(_0x9133('0x1'));var rp=require(_0x9133('0x2'));var moment=require(_0x9133('0x3'));var BPromise=require(_0x9133('0x4'));var Mustache=require(_0x9133('0x5'));var util=require(_0x9133('0x6'));var path=require(_0x9133('0x7'));var sox=require('sox');var csv=require(_0x9133('0x8'));var ejs=require(_0x9133('0x9'));var fs=require('fs');var fs_extra=require(_0x9133('0xa'));var _=require('lodash');var squel=require(_0x9133('0xb'));var crypto=require(_0x9133('0xc'));var jsforce=require(_0x9133('0xd'));var deskjs=require(_0x9133('0xe'));var toCsv=require(_0x9133('0x8'));var querystring=require(_0x9133('0xf'));var Papa=require(_0x9133('0x10'));var Redis=require(_0x9133('0x11'));var authService=require(_0x9133('0x12'));var qs=require(_0x9133('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x9133('0x14'));var logger=require(_0x9133('0x15'))(_0x9133('0x16'));var utils=require(_0x9133('0x17'));var config=require(_0x9133('0x18'));var licenseUtil=require(_0x9133('0x19'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0xb64550,_0x7cc59e){_0x7cc59e=_0x7cc59e||0xcc;return function(_0x4bbfdc){if(_0x4bbfdc){return _0xb64550['sendStatus'](_0x7cc59e);}return _0xb64550[_0x9133('0x1a')](_0x7cc59e)['end']();};}function respondWithResult(_0x22132a,_0x439e1a){_0x439e1a=_0x439e1a||0xc8;return function(_0x17dfd1){if(_0x17dfd1){return _0x22132a[_0x9133('0x1a')](_0x439e1a)[_0x9133('0x1b')](_0x17dfd1);}};}function respondWithFilteredResult(_0x4327b3,_0x49cc5d){return function(_0x13f8fc){if(_0x13f8fc){var _0x1e23ce=typeof _0x49cc5d['offset']===_0x9133('0x1c')&&typeof _0x49cc5d[_0x9133('0x1d')]===_0x9133('0x1c');var _0x427663=_0x13f8fc['count'];var _0x1f3484=_0x1e23ce?0x0:_0x49cc5d['offset'];var _0x3c48ef=_0x1e23ce?_0x13f8fc['count']:_0x49cc5d[_0x9133('0x1e')]+_0x49cc5d[_0x9133('0x1d')];var _0x5e8620;if(_0x3c48ef>=_0x427663){_0x3c48ef=_0x427663;_0x5e8620=0xc8;}else{_0x5e8620=0xce;}_0x4327b3[_0x9133('0x1a')](_0x5e8620);return _0x4327b3['set'](_0x9133('0x1f'),_0x1f3484+'-'+_0x3c48ef+'/'+_0x427663)['json'](_0x13f8fc);}return null;};}function patchUpdates(_0x5e4f0c){return function(_0x2f7354){try{jsonpatch['apply'](_0x2f7354,_0x5e4f0c,!![]);}catch(_0x12c2d4){return BPromise['reject'](_0x12c2d4);}return _0x2f7354['save']();};}function saveUpdates(_0x4c846e,_0x2e99a1){return function(_0x2dcfb8){if(_0x2dcfb8){return _0x2dcfb8['update'](_0x4c846e)[_0x9133('0x20')](function(_0x3f5d0e){return _0x3f5d0e;});}return null;};}function removeEntity(_0xff08d5,_0x26190c){return function(_0x4f26e8){if(_0x4f26e8){return _0x4f26e8[_0x9133('0x21')]()['then'](function(){var _0x187e32=_0x4f26e8[_0x9133('0x22')]({'plain':!![]});var _0x3f278d=_0x9133('0x23');return db[_0x9133('0x24')][_0x9133('0x21')]({'where':{'type':_0x3f278d,'resourceId':_0x187e32['id']}})[_0x9133('0x20')](function(){return _0x4f26e8;});})[_0x9133('0x20')](function(){_0xff08d5[_0x9133('0x1a')](0xcc)[_0x9133('0x25')]();});}};}function handleEntityNotFound(_0x51de62,_0x517e7b){return function(_0x477bf1){if(!_0x477bf1){_0x51de62[_0x9133('0x26')](0x194);}return _0x477bf1;};}function handleError(_0x428e18,_0x348486){_0x348486=_0x348486||0x1f4;return function(_0x4de894){logger['error'](_0x4de894[_0x9133('0x27')]);if(_0x4de894[_0x9133('0x28')]){delete _0x4de894[_0x9133('0x28')];}_0x428e18[_0x9133('0x1a')](_0x348486)[_0x9133('0x29')](_0x4de894);};}exports[_0x9133('0x2a')]=function(_0x48c713,_0x58afe0){var _0x5a27c1={},_0x1ad222={},_0x4a4a8e={'count':0x0,'rows':[]};var _0x43b5f3=_[_0x9133('0x2b')](db['VoiceMail'][_0x9133('0x2c')],function(_0x5dd90b){return{'name':_0x5dd90b[_0x9133('0x2d')],'type':_0x5dd90b[_0x9133('0x2e')][_0x9133('0x2f')]};});_0x1ad222['model']=_[_0x9133('0x2b')](_0x43b5f3,_0x9133('0x28'));_0x1ad222[_0x9133('0x30')]=_['keys'](_0x48c713[_0x9133('0x30')]);_0x1ad222[_0x9133('0x31')]=_[_0x9133('0x32')](_0x1ad222['model'],_0x1ad222[_0x9133('0x30')]);_0x5a27c1[_0x9133('0x33')]=_[_0x9133('0x32')](_0x1ad222[_0x9133('0x34')],qs['fields'](_0x48c713[_0x9133('0x30')][_0x9133('0x35')]));_0x5a27c1['attributes']=_0x5a27c1[_0x9133('0x33')][_0x9133('0x36')]?_0x5a27c1[_0x9133('0x33')]:_0x1ad222[_0x9133('0x34')];if(!_0x48c713[_0x9133('0x30')][_0x9133('0x37')](_0x9133('0x38'))){_0x5a27c1[_0x9133('0x1d')]=qs[_0x9133('0x1d')](_0x48c713[_0x9133('0x30')][_0x9133('0x1d')]);_0x5a27c1['offset']=qs[_0x9133('0x1e')](_0x48c713[_0x9133('0x30')]['offset']);}_0x5a27c1[_0x9133('0x39')]=qs[_0x9133('0x3a')](_0x48c713[_0x9133('0x30')][_0x9133('0x3a')]);_0x5a27c1[_0x9133('0x3b')]=qs[_0x9133('0x31')](_['pick'](_0x48c713['query'],_0x1ad222[_0x9133('0x31')]),_0x43b5f3);if(_0x48c713[_0x9133('0x30')][_0x9133('0x3c')]){_0x5a27c1[_0x9133('0x3b')]=_[_0x9133('0x3d')](_0x5a27c1[_0x9133('0x3b')],{'$or':_[_0x9133('0x2b')](_0x43b5f3,function(_0x2ee83e){if(_0x2ee83e[_0x9133('0x2e')]!=='VIRTUAL'){var _0xafd8f9={};_0xafd8f9[_0x2ee83e[_0x9133('0x28')]]={'$like':'%'+_0x48c713[_0x9133('0x30')][_0x9133('0x3c')]+'%'};return _0xafd8f9;}})});}_0x5a27c1=_[_0x9133('0x3d')]({},_0x5a27c1,_0x48c713['options']);var _0x3c691e={'where':_0x5a27c1[_0x9133('0x3b')]};return db[_0x9133('0x3e')][_0x9133('0x3f')](_0x3c691e)['then'](function(_0x146734){_0x4a4a8e[_0x9133('0x3f')]=_0x146734;if(_0x48c713[_0x9133('0x30')][_0x9133('0x40')]){_0x5a27c1[_0x9133('0x41')]=[{'all':!![]}];}return db[_0x9133('0x3e')][_0x9133('0x42')](_0x5a27c1);})['then'](function(_0x7f6cd9){_0x4a4a8e['rows']=_0x7f6cd9;return _0x4a4a8e;})['then'](respondWithFilteredResult(_0x58afe0,_0x5a27c1))[_0x9133('0x43')](handleError(_0x58afe0,null));};exports[_0x9133('0x44')]=function(_0x46156d,_0x264df4){var _0xdd485f={'raw':!![],'where':{'id':_0x46156d[_0x9133('0x45')]['id']}},_0x2d2bf7={};_0x2d2bf7[_0x9133('0x34')]=_[_0x9133('0x46')](db['VoiceMail'][_0x9133('0x2c')]);_0x2d2bf7[_0x9133('0x30')]=_[_0x9133('0x46')](_0x46156d['query']);_0x2d2bf7['filters']=_[_0x9133('0x32')](_0x2d2bf7[_0x9133('0x34')],_0x2d2bf7['query']);_0xdd485f[_0x9133('0x33')]=_[_0x9133('0x32')](_0x2d2bf7[_0x9133('0x34')],qs[_0x9133('0x35')](_0x46156d[_0x9133('0x30')]['fields']));_0xdd485f[_0x9133('0x33')]=_0xdd485f[_0x9133('0x33')][_0x9133('0x36')]?_0xdd485f['attributes']:_0x2d2bf7[_0x9133('0x34')];if(_0x46156d[_0x9133('0x30')]['includeAll']){_0xdd485f['include']=[{'all':!![]}];}_0xdd485f=_[_0x9133('0x3d')]({},_0xdd485f,_0x46156d[_0x9133('0x47')]);return db[_0x9133('0x3e')][_0x9133('0x48')](_0xdd485f)[_0x9133('0x20')](handleEntityNotFound(_0x264df4,null))[_0x9133('0x20')](respondWithResult(_0x264df4,null))[_0x9133('0x43')](handleError(_0x264df4,null));};exports[_0x9133('0x49')]=function(_0x23f134,_0xf07fbb){return db[_0x9133('0x3e')][_0x9133('0x49')](_0x23f134['body'],{})['then'](function(_0xf2e098){var _0x4dc2f3=_0x23f134[_0x9133('0x4a')][_0x9133('0x22')]({'plain':!![]});if(!_0x4dc2f3)throw new Error(_0x9133('0x4b'));if(_0x4dc2f3[_0x9133('0x4c')]==='user'){var _0x2a3848=_0xf2e098[_0x9133('0x22')]({'plain':!![]});var _0x799772='Voicemails';return db[_0x9133('0x4d')][_0x9133('0x48')]({'where':{'name':_0x799772,'userProfileId':_0x4dc2f3[_0x9133('0x4e')]},'raw':!![]})['then'](function(_0x14c825){if(_0x14c825&&_0x14c825['autoAssociation']===0x0){return db[_0x9133('0x24')][_0x9133('0x49')]({'name':_0x2a3848[_0x9133('0x28')],'resourceId':_0x2a3848['id'],'type':_0x14c825[_0x9133('0x28')],'sectionId':_0x14c825['id']},{})['then'](function(){return _0xf2e098;});}else{return _0xf2e098;}})['catch'](function(_0x2f09f6){logger[_0x9133('0x4f')](_0x9133('0x50'),_0x2f09f6);throw _0x2f09f6;});}return _0xf2e098;})[_0x9133('0x20')](respondWithResult(_0xf07fbb,0xc9))[_0x9133('0x43')](handleError(_0xf07fbb,null));};exports['update']=function(_0x554bb9,_0x33599b){if(_0x554bb9[_0x9133('0x51')]['id']){delete _0x554bb9['body']['id'];}return db[_0x9133('0x3e')][_0x9133('0x48')]({'where':{'id':_0x554bb9['params']['id']}})['then'](handleEntityNotFound(_0x33599b,null))['then'](saveUpdates(_0x554bb9[_0x9133('0x51')],null))['then'](respondWithResult(_0x33599b,null))[_0x9133('0x43')](handleError(_0x33599b,null));};exports[_0x9133('0x21')]=function(_0x439258,_0x3d6daa){return db['VoiceMail'][_0x9133('0x48')]({'where':{'id':_0x439258['params']['id']}})[_0x9133('0x20')](handleEntityNotFound(_0x3d6daa,null))[_0x9133('0x20')](removeEntity(_0x3d6daa,null))[_0x9133('0x43')](handleError(_0x3d6daa,null));};exports[_0x9133('0x52')]=function(_0x3b9927,_0x3534bf,_0x56861c){return db['VoiceMail']['findOne']({'where':{'id':_0x3b9927[_0x9133('0x45')]['id']}})[_0x9133('0x20')](handleEntityNotFound(_0x3534bf,null))[_0x9133('0x20')](function(_0x54a330){var _0x3f4cd7;var _0x1f6684={},_0x415d55={};_0x415d55[_0x9133('0x34')]=_[_0x9133('0x46')](db[_0x9133('0x53')][_0x9133('0x2c')]);_0x415d55[_0x9133('0x30')]=_['keys'](_0x3b9927[_0x9133('0x30')]);_0x415d55['filters']=_[_0x9133('0x32')](_0x415d55['model'],_0x415d55[_0x9133('0x30')]);_0x1f6684[_0x9133('0x33')]=_['intersection'](_0x415d55['model'],qs[_0x9133('0x35')](_0x3b9927[_0x9133('0x30')][_0x9133('0x35')]));_0x1f6684[_0x9133('0x33')]=_0x1f6684[_0x9133('0x33')][_0x9133('0x36')]?_0x1f6684[_0x9133('0x33')]:_0x415d55[_0x9133('0x34')];if(!_0x3b9927[_0x9133('0x30')][_0x9133('0x37')](_0x9133('0x38'))){_0x1f6684['limit']=qs[_0x9133('0x1d')](_0x3b9927['query'][_0x9133('0x1d')]);_0x1f6684[_0x9133('0x1e')]=qs[_0x9133('0x1e')](_0x3b9927[_0x9133('0x30')][_0x9133('0x1e')]);}_0x1f6684['order']=qs[_0x9133('0x3a')](_0x3b9927[_0x9133('0x30')][_0x9133('0x3a')]);_0x1f6684[_0x9133('0x3b')]=qs['filters'](_[_0x9133('0x54')](_0x3b9927[_0x9133('0x30')],_0x415d55[_0x9133('0x31')]));if(_0x3b9927[_0x9133('0x30')]['filter']){_0x1f6684['where']=_[_0x9133('0x3d')](_0x1f6684[_0x9133('0x3b')],{'$or':_[_0x9133('0x2b')](_0x1f6684[_0x9133('0x33')],function(_0x28cc46){var _0x2cfaf8={};_0x2cfaf8[_0x28cc46]={'$like':'%'+_0x3b9927['query'][_0x9133('0x3c')]+'%'};return _0x2cfaf8;})});}_0x1f6684[_0x9133('0x3b')]=_[_0x9133('0x3d')](_0x1f6684[_0x9133('0x3b')],{'mailboxuser':_0x54a330['mailbox']});_0x1f6684=_[_0x9133('0x3d')]({},_0x1f6684,_0x3b9927['options']);return db[_0x9133('0x53')][_0x9133('0x55')](_0x1f6684)[_0x9133('0x20')](respondWithFilteredResult(_0x3534bf,_0x1f6684));})[_0x9133('0x43')](handleError(_0x3534bf,null));};
\ No newline at end of file
+var _0xd64b=['merge','filter','options','includeAll','include','findAll','catch','params','filters','find','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','body','getMessages','findOne','order','sort','mailbox','VoiceMailMessage','findAndCountAll','eml-format','zip-dir','request-promise','moment','bluebird','mustache','util','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','sendStatus','status','end','json','undefined','count','offset','apply','reject','update','then','destroy','get','Voicemails','stack','name','send','index','map','VoiceMail','rawAttributes','type','model','keys','intersection','query','fields','attributes','length','hasOwnProperty','nolimit','limit','where','pick'];(function(_0x568f96,_0x32d489){var _0x5a053a=function(_0x5570ce){while(--_0x5570ce){_0x568f96['push'](_0x568f96['shift']());}};_0x5a053a(++_0x32d489);}(_0xd64b,0xc1));var _0xbd64=function(_0x2a05ce,_0x5de2c9){_0x2a05ce=_0x2a05ce-0x0;var _0x3d3b83=_0xd64b[_0x2a05ce];return _0x3d3b83;};'use strict';var emlformat=require(_0xbd64('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xbd64('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0xbd64('0x2'));var moment=require(_0xbd64('0x3'));var BPromise=require(_0xbd64('0x4'));var Mustache=require(_0xbd64('0x5'));var util=require(_0xbd64('0x6'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xbd64('0x7'));var _=require(_0xbd64('0x8'));var squel=require(_0xbd64('0x9'));var crypto=require(_0xbd64('0xa'));var jsforce=require(_0xbd64('0xb'));var deskjs=require(_0xbd64('0xc'));var toCsv=require(_0xbd64('0xd'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xbd64('0xe'));var authService=require(_0xbd64('0xf'));var qs=require(_0xbd64('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xbd64('0x11'));var logger=require(_0xbd64('0x12'))(_0xbd64('0x13'));var utils=require(_0xbd64('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0xbd64('0x15'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x136f60,_0x2729d8){_0x2729d8=_0x2729d8||0xcc;return function(_0x3a941c){if(_0x3a941c){return _0x136f60[_0xbd64('0x16')](_0x2729d8);}return _0x136f60[_0xbd64('0x17')](_0x2729d8)[_0xbd64('0x18')]();};}function respondWithResult(_0x2e23f2,_0x269e2f){_0x269e2f=_0x269e2f||0xc8;return function(_0x2b5808){if(_0x2b5808){return _0x2e23f2['status'](_0x269e2f)[_0xbd64('0x19')](_0x2b5808);}};}function respondWithFilteredResult(_0x13e7a4,_0x3ff550){return function(_0x32fd34){if(_0x32fd34){var _0x29fc16=typeof _0x3ff550['offset']===_0xbd64('0x1a')&&typeof _0x3ff550['limit']===_0xbd64('0x1a');var _0x1432a6=_0x32fd34[_0xbd64('0x1b')];var _0x1d7a14=_0x29fc16?0x0:_0x3ff550[_0xbd64('0x1c')];var _0x2f4554=_0x29fc16?_0x32fd34[_0xbd64('0x1b')]:_0x3ff550[_0xbd64('0x1c')]+_0x3ff550['limit'];var _0x305545;if(_0x2f4554>=_0x1432a6){_0x2f4554=_0x1432a6;_0x305545=0xc8;}else{_0x305545=0xce;}_0x13e7a4[_0xbd64('0x17')](_0x305545);return _0x13e7a4['set']('Content-Range',_0x1d7a14+'-'+_0x2f4554+'/'+_0x1432a6)[_0xbd64('0x19')](_0x32fd34);}return null;};}function patchUpdates(_0x42b328){return function(_0x196d21){try{jsonpatch[_0xbd64('0x1d')](_0x196d21,_0x42b328,!![]);}catch(_0x2c5551){return BPromise[_0xbd64('0x1e')](_0x2c5551);}return _0x196d21['save']();};}function saveUpdates(_0x4d4a16,_0x6038f){return function(_0x41f2f){if(_0x41f2f){return _0x41f2f[_0xbd64('0x1f')](_0x4d4a16)[_0xbd64('0x20')](function(_0x55e74c){return _0x55e74c;});}return null;};}function removeEntity(_0x51d118,_0x28497c){return function(_0x4afaff){if(_0x4afaff){return _0x4afaff[_0xbd64('0x21')]()['then'](function(){var _0x33452d=_0x4afaff[_0xbd64('0x22')]({'plain':!![]});var _0x3d12a0=_0xbd64('0x23');return db['UserProfileResource'][_0xbd64('0x21')]({'where':{'type':_0x3d12a0,'resourceId':_0x33452d['id']}})[_0xbd64('0x20')](function(){return _0x4afaff;});})[_0xbd64('0x20')](function(){_0x51d118[_0xbd64('0x17')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4e8719,_0x29c9c8){return function(_0x49eac5){if(!_0x49eac5){_0x4e8719['sendStatus'](0x194);}return _0x49eac5;};}function handleError(_0xfa918,_0x5aacdd){_0x5aacdd=_0x5aacdd||0x1f4;return function(_0x3cf5b7){logger['error'](_0x3cf5b7[_0xbd64('0x24')]);if(_0x3cf5b7['name']){delete _0x3cf5b7[_0xbd64('0x25')];}_0xfa918[_0xbd64('0x17')](_0x5aacdd)[_0xbd64('0x26')](_0x3cf5b7);};}exports[_0xbd64('0x27')]=function(_0x306f19,_0x207ffc){var _0x4ed44a={},_0x35bdd5={},_0xe876c9={'count':0x0,'rows':[]};var _0xc44280=_[_0xbd64('0x28')](db[_0xbd64('0x29')][_0xbd64('0x2a')],function(_0x5e70d3){return{'name':_0x5e70d3['fieldName'],'type':_0x5e70d3[_0xbd64('0x2b')]['key']};});_0x35bdd5[_0xbd64('0x2c')]=_[_0xbd64('0x28')](_0xc44280,'name');_0x35bdd5['query']=_[_0xbd64('0x2d')](_0x306f19['query']);_0x35bdd5['filters']=_[_0xbd64('0x2e')](_0x35bdd5[_0xbd64('0x2c')],_0x35bdd5[_0xbd64('0x2f')]);_0x4ed44a['attributes']=_[_0xbd64('0x2e')](_0x35bdd5['model'],qs[_0xbd64('0x30')](_0x306f19[_0xbd64('0x2f')][_0xbd64('0x30')]));_0x4ed44a[_0xbd64('0x31')]=_0x4ed44a[_0xbd64('0x31')][_0xbd64('0x32')]?_0x4ed44a['attributes']:_0x35bdd5['model'];if(!_0x306f19[_0xbd64('0x2f')][_0xbd64('0x33')](_0xbd64('0x34'))){_0x4ed44a[_0xbd64('0x35')]=qs[_0xbd64('0x35')](_0x306f19[_0xbd64('0x2f')]['limit']);_0x4ed44a['offset']=qs[_0xbd64('0x1c')](_0x306f19[_0xbd64('0x2f')][_0xbd64('0x1c')]);}_0x4ed44a['order']=qs['sort'](_0x306f19[_0xbd64('0x2f')]['sort']);_0x4ed44a[_0xbd64('0x36')]=qs['filters'](_[_0xbd64('0x37')](_0x306f19[_0xbd64('0x2f')],_0x35bdd5['filters']),_0xc44280);if(_0x306f19[_0xbd64('0x2f')]['filter']){_0x4ed44a['where']=_[_0xbd64('0x38')](_0x4ed44a[_0xbd64('0x36')],{'$or':_[_0xbd64('0x28')](_0xc44280,function(_0x52f401){if(_0x52f401['type']!=='VIRTUAL'){var _0x344d46={};_0x344d46[_0x52f401[_0xbd64('0x25')]]={'$like':'%'+_0x306f19['query'][_0xbd64('0x39')]+'%'};return _0x344d46;}})});}_0x4ed44a=_[_0xbd64('0x38')]({},_0x4ed44a,_0x306f19[_0xbd64('0x3a')]);var _0x27fd12={'where':_0x4ed44a['where']};return db['VoiceMail'][_0xbd64('0x1b')](_0x27fd12)['then'](function(_0x595a91){_0xe876c9[_0xbd64('0x1b')]=_0x595a91;if(_0x306f19[_0xbd64('0x2f')][_0xbd64('0x3b')]){_0x4ed44a[_0xbd64('0x3c')]=[{'all':!![]}];}return db[_0xbd64('0x29')][_0xbd64('0x3d')](_0x4ed44a);})[_0xbd64('0x20')](function(_0x762380){_0xe876c9['rows']=_0x762380;return _0xe876c9;})[_0xbd64('0x20')](respondWithFilteredResult(_0x207ffc,_0x4ed44a))[_0xbd64('0x3e')](handleError(_0x207ffc,null));};exports['show']=function(_0x41b27a,_0x1e4983){var _0xe5b069={'raw':!![],'where':{'id':_0x41b27a[_0xbd64('0x3f')]['id']}},_0x2bc972={};_0x2bc972[_0xbd64('0x2c')]=_[_0xbd64('0x2d')](db['VoiceMail'][_0xbd64('0x2a')]);_0x2bc972['query']=_[_0xbd64('0x2d')](_0x41b27a['query']);_0x2bc972[_0xbd64('0x40')]=_[_0xbd64('0x2e')](_0x2bc972[_0xbd64('0x2c')],_0x2bc972['query']);_0xe5b069[_0xbd64('0x31')]=_['intersection'](_0x2bc972['model'],qs['fields'](_0x41b27a[_0xbd64('0x2f')][_0xbd64('0x30')]));_0xe5b069[_0xbd64('0x31')]=_0xe5b069[_0xbd64('0x31')][_0xbd64('0x32')]?_0xe5b069[_0xbd64('0x31')]:_0x2bc972[_0xbd64('0x2c')];if(_0x41b27a['query'][_0xbd64('0x3b')]){_0xe5b069[_0xbd64('0x3c')]=[{'all':!![]}];}_0xe5b069=_[_0xbd64('0x38')]({},_0xe5b069,_0x41b27a['options']);return db[_0xbd64('0x29')][_0xbd64('0x41')](_0xe5b069)[_0xbd64('0x20')](handleEntityNotFound(_0x1e4983,null))[_0xbd64('0x20')](respondWithResult(_0x1e4983,null))[_0xbd64('0x3e')](handleError(_0x1e4983,null));};exports['create']=function(_0x283699,_0x1a9ec8){return db[_0xbd64('0x29')][_0xbd64('0x42')](_0x283699['body'],{})['then'](function(_0x1e008f){var _0x2a7eec=_0x283699[_0xbd64('0x43')][_0xbd64('0x22')]({'plain':!![]});if(!_0x2a7eec)throw new Error(_0xbd64('0x44'));if(_0x2a7eec[_0xbd64('0x45')]===_0xbd64('0x43')){var _0x3807a7=_0x1e008f[_0xbd64('0x22')]({'plain':!![]});var _0x2709b2=_0xbd64('0x23');return db[_0xbd64('0x46')][_0xbd64('0x41')]({'where':{'name':_0x2709b2,'userProfileId':_0x2a7eec[_0xbd64('0x47')]},'raw':!![]})[_0xbd64('0x20')](function(_0x5bd444){if(_0x5bd444&&_0x5bd444[_0xbd64('0x48')]===0x0){return db['UserProfileResource']['create']({'name':_0x3807a7['name'],'resourceId':_0x3807a7['id'],'type':_0x5bd444['name'],'sectionId':_0x5bd444['id']},{})[_0xbd64('0x20')](function(){return _0x1e008f;});}else{return _0x1e008f;}})[_0xbd64('0x3e')](function(_0x5480f5){logger[_0xbd64('0x49')](_0xbd64('0x4a'),_0x5480f5);throw _0x5480f5;});}return _0x1e008f;})[_0xbd64('0x20')](respondWithResult(_0x1a9ec8,0xc9))['catch'](handleError(_0x1a9ec8,null));};exports[_0xbd64('0x1f')]=function(_0x371bad,_0x44cd4f){if(_0x371bad[_0xbd64('0x4b')]['id']){delete _0x371bad[_0xbd64('0x4b')]['id'];}return db[_0xbd64('0x29')]['find']({'where':{'id':_0x371bad['params']['id']}})['then'](handleEntityNotFound(_0x44cd4f,null))[_0xbd64('0x20')](saveUpdates(_0x371bad[_0xbd64('0x4b')],null))[_0xbd64('0x20')](respondWithResult(_0x44cd4f,null))[_0xbd64('0x3e')](handleError(_0x44cd4f,null));};exports['destroy']=function(_0x1d0d9f,_0x20b275){return db[_0xbd64('0x29')][_0xbd64('0x41')]({'where':{'id':_0x1d0d9f[_0xbd64('0x3f')]['id']}})[_0xbd64('0x20')](handleEntityNotFound(_0x20b275,null))['then'](removeEntity(_0x20b275,null))[_0xbd64('0x3e')](handleError(_0x20b275,null));};exports[_0xbd64('0x4c')]=function(_0x15f1fc,_0x1fe3e5,_0x465661){return db[_0xbd64('0x29')][_0xbd64('0x4d')]({'where':{'id':_0x15f1fc[_0xbd64('0x3f')]['id']}})[_0xbd64('0x20')](handleEntityNotFound(_0x1fe3e5,null))[_0xbd64('0x20')](function(_0x3812b3){var _0xffda84;var _0x4a1e21={},_0x56c7d9={};_0x56c7d9[_0xbd64('0x2c')]=_[_0xbd64('0x2d')](db['VoiceMailMessage']['rawAttributes']);_0x56c7d9[_0xbd64('0x2f')]=_[_0xbd64('0x2d')](_0x15f1fc['query']);_0x56c7d9[_0xbd64('0x40')]=_[_0xbd64('0x2e')](_0x56c7d9[_0xbd64('0x2c')],_0x56c7d9[_0xbd64('0x2f')]);_0x4a1e21[_0xbd64('0x31')]=_[_0xbd64('0x2e')](_0x56c7d9[_0xbd64('0x2c')],qs[_0xbd64('0x30')](_0x15f1fc[_0xbd64('0x2f')]['fields']));_0x4a1e21[_0xbd64('0x31')]=_0x4a1e21[_0xbd64('0x31')][_0xbd64('0x32')]?_0x4a1e21['attributes']:_0x56c7d9[_0xbd64('0x2c')];if(!_0x15f1fc[_0xbd64('0x2f')]['hasOwnProperty'](_0xbd64('0x34'))){_0x4a1e21[_0xbd64('0x35')]=qs[_0xbd64('0x35')](_0x15f1fc[_0xbd64('0x2f')][_0xbd64('0x35')]);_0x4a1e21[_0xbd64('0x1c')]=qs['offset'](_0x15f1fc[_0xbd64('0x2f')][_0xbd64('0x1c')]);}_0x4a1e21[_0xbd64('0x4e')]=qs[_0xbd64('0x4f')](_0x15f1fc['query'][_0xbd64('0x4f')]);_0x4a1e21[_0xbd64('0x36')]=qs['filters'](_[_0xbd64('0x37')](_0x15f1fc['query'],_0x56c7d9[_0xbd64('0x40')]));if(_0x15f1fc[_0xbd64('0x2f')][_0xbd64('0x39')]){_0x4a1e21[_0xbd64('0x36')]=_['merge'](_0x4a1e21[_0xbd64('0x36')],{'$or':_[_0xbd64('0x28')](_0x4a1e21[_0xbd64('0x31')],function(_0x23925c){var _0x463a60={};_0x463a60[_0x23925c]={'$like':'%'+_0x15f1fc[_0xbd64('0x2f')]['filter']+'%'};return _0x463a60;})});}_0x4a1e21['where']=_['merge'](_0x4a1e21[_0xbd64('0x36')],{'mailboxuser':_0x3812b3[_0xbd64('0x50')]});_0x4a1e21=_[_0xbd64('0x38')]({},_0x4a1e21,_0x15f1fc[_0xbd64('0x3a')]);return db[_0xbd64('0x51')][_0xbd64('0x52')](_0x4a1e21)['then'](respondWithFilteredResult(_0x1fe3e5,_0x4a1e21));})[_0xbd64('0x3e')](handleError(_0x1fe3e5,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf41b=['mailbox_context','mailbox','context','lodash','util','api','moment','bluebird','path','rimraf','../../config/environment','exports','VoiceMail','voice_voicemail'];(function(_0x4a747d,_0x3b747f){var _0x3a5b5c=function(_0x4b3e81){while(--_0x4b3e81){_0x4a747d['push'](_0x4a747d['shift']());}};_0x3a5b5c(++_0x3b747f);}(_0xf41b,0x16f));var _0xbf41=function(_0x1c208e,_0x2a0a5b){_0x1c208e=_0x1c208e-0x0;var _0x5104ff=_0xf41b[_0x1c208e];return _0x5104ff;};'use strict';var _=require(_0xbf41('0x0'));var util=require(_0xbf41('0x1'));var logger=require('../../config/logger')(_0xbf41('0x2'));var moment=require(_0xbf41('0x3'));var BPromise=require(_0xbf41('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xbf41('0x5'));var rimraf=require(_0xbf41('0x6'));var config=require(_0xbf41('0x7'));var attributes=require('./voiceMail.attributes');module[_0xbf41('0x8')]=function(_0x2da4f3,_0x91624c){return _0x2da4f3['define'](_0xbf41('0x9'),attributes,{'tableName':_0xbf41('0xa'),'paranoid':![],'indexes':[{'name':_0xbf41('0xb'),'fields':[_0xbf41('0xc'),_0xbf41('0xd')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0x02e0=['mailbox','lodash','../../config/logger','api','moment','request-promise','rimraf','../../config/environment','exports','VoiceMail'];(function(_0xe3b7bb,_0x263836){var _0x2df486=function(_0x527828){while(--_0x527828){_0xe3b7bb['push'](_0xe3b7bb['shift']());}};_0x2df486(++_0x263836);}(_0x02e0,0x119));var _0x002e=function(_0x464791,_0x348913){_0x464791=_0x464791-0x0;var _0x52e794=_0x02e0[_0x464791];return _0x52e794;};'use strict';var _=require(_0x002e('0x0'));var util=require('util');var logger=require(_0x002e('0x1'))(_0x002e('0x2'));var moment=require(_0x002e('0x3'));var BPromise=require('bluebird');var rp=require(_0x002e('0x4'));var fs=require('fs');var path=require('path');var rimraf=require(_0x002e('0x5'));var config=require(_0x002e('0x6'));var attributes=require('./voiceMail.attributes');module[_0x002e('0x7')]=function(_0x40ff13,_0x5b8028){return _0x40ff13['define'](_0x002e('0x8'),attributes,{'tableName':'voice_voicemail','paranoid':![],'indexes':[{'name':'mailbox_context','fields':[_0x002e('0x9'),'context']}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa70e=['../../config/logger','rpc','client','http','request','then','info','VoiceMail,\x20%s,\x20%s','debug','VoiceMail,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils'];(function(_0x2d126e,_0x1e8257){var _0xcb04d3=function(_0x19a2d9){while(--_0x19a2d9){_0x2d126e['push'](_0x2d126e['shift']());}};_0xcb04d3(++_0x1e8257);}(_0xa70e,0x185));var _0xea70=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xa70e[_0x3dd15e];return _0x231fd0;};'use strict';var _=require('lodash');var util=require(_0xea70('0x0'));var moment=require(_0xea70('0x1'));var BPromise=require(_0xea70('0x2'));var rs=require(_0xea70('0x3'));var fs=require('fs');var Redis=require(_0xea70('0x4'));var db=require(_0xea70('0x5'))['db'];var utils=require(_0xea70('0x6'));var logger=require(_0xea70('0x7'))(_0xea70('0x8'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0xea70('0x9')][_0xea70('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x50b506,_0x50a385,_0x29c97f){return new BPromise(function(_0x593d38,_0x4e4a12){return client[_0xea70('0xb')](_0x50b506,_0x29c97f)[_0xea70('0xc')](function(_0x90959d){logger[_0xea70('0xd')](_0xea70('0xe'),_0x50a385,'request\x20sent');logger[_0xea70('0xf')](_0xea70('0x10'),_0x50a385,_0xea70('0x11'),JSON[_0xea70('0x12')](_0x90959d));if(_0x90959d[_0xea70('0x13')]){if(_0x90959d[_0xea70('0x13')]['code']===0x1f4){logger[_0xea70('0x13')](_0xea70('0xe'),_0x50a385,_0x90959d[_0xea70('0x13')][_0xea70('0x14')]);return _0x4e4a12(_0x90959d['error'][_0xea70('0x14')]);}logger['error'](_0xea70('0xe'),_0x50a385,_0x90959d['error'][_0xea70('0x14')]);return _0x593d38(_0x90959d[_0xea70('0x13')][_0xea70('0x14')]);}else{logger[_0xea70('0xd')](_0xea70('0xe'),_0x50a385,_0xea70('0x11'));_0x593d38(_0x90959d[_0xea70('0x15')][_0xea70('0x14')]);}})['catch'](function(_0x8a34f2){logger[_0xea70('0x13')](_0xea70('0xe'),_0x50a385,_0x8a34f2);_0x4e4a12(_0x8a34f2);});});}
\ No newline at end of file
+var _0x9cc0=['jayson/promise','client','request','then','info','request\x20sent','debug','VoiceMail,\x20%s,\x20%s,\x20%s','stringify','error','VoiceMail,\x20%s,\x20%s','message','result','catch','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','rpc','../../config/environment'];(function(_0x5eaa0b,_0x433b2f){var _0x28b295=function(_0x5e4f6d){while(--_0x5e4f6d){_0x5eaa0b['push'](_0x5eaa0b['shift']());}};_0x28b295(++_0x433b2f);}(_0x9cc0,0x122));var _0x09cc=function(_0x5e38a4,_0x333514){_0x5e38a4=_0x5e38a4-0x0;var _0x401332=_0x9cc0[_0x5e38a4];return _0x401332;};'use strict';var _=require(_0x09cc('0x0'));var util=require(_0x09cc('0x1'));var moment=require(_0x09cc('0x2'));var BPromise=require(_0x09cc('0x3'));var rs=require(_0x09cc('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x09cc('0x5'))['db'];var utils=require(_0x09cc('0x6'));var logger=require('../../config/logger')(_0x09cc('0x7'));var config=require(_0x09cc('0x8'));var jayson=require(_0x09cc('0x9'));var client=jayson[_0x09cc('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x8b561,_0x4e8ea8,_0x4c413a){return new BPromise(function(_0x462389,_0x2dc4dd){return client[_0x09cc('0xb')](_0x8b561,_0x4c413a)[_0x09cc('0xc')](function(_0xa1419c){logger[_0x09cc('0xd')]('VoiceMail,\x20%s,\x20%s',_0x4e8ea8,_0x09cc('0xe'));logger[_0x09cc('0xf')](_0x09cc('0x10'),_0x4e8ea8,_0x09cc('0xe'),JSON[_0x09cc('0x11')](_0xa1419c));if(_0xa1419c[_0x09cc('0x12')]){if(_0xa1419c[_0x09cc('0x12')]['code']===0x1f4){logger[_0x09cc('0x12')](_0x09cc('0x13'),_0x4e8ea8,_0xa1419c['error'][_0x09cc('0x14')]);return _0x2dc4dd(_0xa1419c['error']['message']);}logger[_0x09cc('0x12')](_0x09cc('0x13'),_0x4e8ea8,_0xa1419c[_0x09cc('0x12')][_0x09cc('0x14')]);return _0x462389(_0xa1419c[_0x09cc('0x12')][_0x09cc('0x14')]);}else{logger[_0x09cc('0xd')]('VoiceMail,\x20%s,\x20%s',_0x4e8ea8,_0x09cc('0xe'));_0x462389(_0xa1419c[_0x09cc('0x15')][_0x09cc('0x14')]);}})[_0x09cc('0x16')](function(_0x232446){logger['error'](_0x09cc('0x13'),_0x4e8ea8,_0x232446);_0x2dc4dd(_0x232446);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa902=['util','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','isAuthenticated','index','get','show','/:id/download','download','post','create','put','update','delete','/:id','exports','multer'];(function(_0x4f1e26,_0x20d3f6){var _0x2656f2=function(_0x5124ce){while(--_0x5124ce){_0x4f1e26['push'](_0x4f1e26['shift']());}};_0x2656f2(++_0x20d3f6);}(_0xa902,0x6d));var _0x2a90=function(_0x2e7a34,_0x5ee29d){_0x2e7a34=_0x2e7a34-0x0;var _0x55fd22=_0xa902[_0x2e7a34];return _0x55fd22;};'use strict';var multer=require(_0x2a90('0x0'));var util=require(_0x2a90('0x1'));var path=require('path');var timeout=require(_0x2a90('0x2'));var express=require(_0x2a90('0x3'));var router=express[_0x2a90('0x4')]();var fs_extra=require(_0x2a90('0x5'));var auth=require(_0x2a90('0x6'));var interaction=require(_0x2a90('0x7'));var config=require(_0x2a90('0x8'));var controller=require('./voiceMailMessage.controller');router['get']('/',auth[_0x2a90('0x9')](),controller[_0x2a90('0xa')]);router[_0x2a90('0xb')]('/:id',auth[_0x2a90('0x9')](),controller[_0x2a90('0xc')]);router[_0x2a90('0xb')](_0x2a90('0xd'),auth[_0x2a90('0x9')](),controller[_0x2a90('0xe')]);router[_0x2a90('0xf')]('/',auth['isAuthenticated'](),controller[_0x2a90('0x10')]);router[_0x2a90('0x11')]('/:id',auth['isAuthenticated'](),controller[_0x2a90('0x12')]);router[_0x2a90('0x13')](_0x2a90('0x14'),auth['isAuthenticated'](),controller['destroy']);module[_0x2a90('0x15')]=router;
\ No newline at end of file
+var _0x8c5b=['fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./voiceMailMessage.controller','get','isAuthenticated','index','/:id','/:id/download','download','post','create','put','destroy','exports','path','connect-timeout','express','Router'];(function(_0xd89560,_0xb229f){var _0x26563d=function(_0x8c8c91){while(--_0x8c8c91){_0xd89560['push'](_0xd89560['shift']());}};_0x26563d(++_0xb229f);}(_0x8c5b,0xd8));var _0xb8c5=function(_0x49988d,_0x15dae4){_0x49988d=_0x49988d-0x0;var _0x2259f7=_0x8c5b[_0x49988d];return _0x2259f7;};'use strict';var multer=require('multer');var util=require('util');var path=require(_0xb8c5('0x0'));var timeout=require(_0xb8c5('0x1'));var express=require(_0xb8c5('0x2'));var router=express[_0xb8c5('0x3')]();var fs_extra=require(_0xb8c5('0x4'));var auth=require(_0xb8c5('0x5'));var interaction=require(_0xb8c5('0x6'));var config=require(_0xb8c5('0x7'));var controller=require(_0xb8c5('0x8'));router[_0xb8c5('0x9')]('/',auth[_0xb8c5('0xa')](),controller[_0xb8c5('0xb')]);router[_0xb8c5('0x9')](_0xb8c5('0xc'),auth['isAuthenticated'](),controller['show']);router[_0xb8c5('0x9')](_0xb8c5('0xd'),auth['isAuthenticated'](),controller[_0xb8c5('0xe')]);router[_0xb8c5('0xf')]('/',auth[_0xb8c5('0xa')](),controller[_0xb8c5('0x10')]);router[_0xb8c5('0x11')](_0xb8c5('0xc'),auth[_0xb8c5('0xa')](),controller['update']);router['delete'](_0xb8c5('0xc'),auth[_0xb8c5('0xa')](),controller[_0xb8c5('0x12')]);module[_0xb8c5('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf9f6=['VIRTUAL','getDataValue','INTEGER','STRING','literal'];(function(_0x4cb8ae,_0x521060){var _0x40649e=function(_0x55078e){while(--_0x55078e){_0x4cb8ae['push'](_0x4cb8ae['shift']());}};_0x40649e(++_0x521060);}(_0xf9f6,0x14a));var _0x6f9f=function(_0x12a2a6,_0x374ff1){_0x12a2a6=_0x12a2a6-0x0;var _0x1754ae=_0xf9f6[_0x12a2a6];return _0x1754ae;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize[_0x6f9f('0x0')],'get':function(_0x139d3d){return this[_0x6f9f('0x1')]('id');}},'msgnum':{'type':Sequelize[_0x6f9f('0x2')](0xb),'defaultValue':0x0,'allowNull':![]},'dir':{'type':Sequelize[_0x6f9f('0x3')],'defaultValue':''},'context':{'type':Sequelize['STRING'],'defaultValue':''},'macrocontext':{'type':Sequelize[_0x6f9f('0x3')],'defaultValue':''},'callerid':{'type':Sequelize[_0x6f9f('0x3')],'defaultValue':''},'origtime':{'type':Sequelize[_0x6f9f('0x3')],'defaultValue':''},'duration':{'type':Sequelize[_0x6f9f('0x3')],'defaultValue':''},'mailboxuser':{'type':Sequelize[_0x6f9f('0x3')],'defaultValue':''},'mailboxcontext':{'type':Sequelize[_0x6f9f('0x3')],'defaultValue':''},'recording':{'type':Sequelize['BLOB']('long'),'defaultValue':null},'flag':{'type':Sequelize[_0x6f9f('0x3')],'defaultValue':''},'msg_id':{'type':Sequelize[_0x6f9f('0x3')],'defaultValue':''},'stamp':{'type':'TIMESTAMP','defaultValue':Sequelize[_0x6f9f('0x4')]('CURRENT_TIMESTAMP\x20ON\x20UPDATE\x20CURRENT_TIMESTAMP')}};
\ No newline at end of file
+var _0xaa8f=['exports','VIRTUAL','getDataValue','INTEGER','STRING','BLOB','long','TIMESTAMP','literal','CURRENT_TIMESTAMP\x20ON\x20UPDATE\x20CURRENT_TIMESTAMP'];(function(_0x4711e9,_0x3c8f60){var _0x51fc70=function(_0x270067){while(--_0x270067){_0x4711e9['push'](_0x4711e9['shift']());}};_0x51fc70(++_0x3c8f60);}(_0xaa8f,0x118));var _0xfaa8=function(_0x226ad1,_0x2858e2){_0x226ad1=_0x226ad1-0x0;var _0x16b625=_0xaa8f[_0x226ad1];return _0x16b625;};'use strict';var Sequelize=require('sequelize');module[_0xfaa8('0x0')]={'name':{'type':Sequelize[_0xfaa8('0x1')],'get':function(_0x1b9bcf){return this[_0xfaa8('0x2')]('id');}},'msgnum':{'type':Sequelize[_0xfaa8('0x3')](0xb),'defaultValue':0x0,'allowNull':![]},'dir':{'type':Sequelize[_0xfaa8('0x4')],'defaultValue':''},'context':{'type':Sequelize[_0xfaa8('0x4')],'defaultValue':''},'macrocontext':{'type':Sequelize[_0xfaa8('0x4')],'defaultValue':''},'callerid':{'type':Sequelize[_0xfaa8('0x4')],'defaultValue':''},'origtime':{'type':Sequelize[_0xfaa8('0x4')],'defaultValue':''},'duration':{'type':Sequelize[_0xfaa8('0x4')],'defaultValue':''},'mailboxuser':{'type':Sequelize[_0xfaa8('0x4')],'defaultValue':''},'mailboxcontext':{'type':Sequelize[_0xfaa8('0x4')],'defaultValue':''},'recording':{'type':Sequelize[_0xfaa8('0x5')](_0xfaa8('0x6')),'defaultValue':null},'flag':{'type':Sequelize[_0xfaa8('0x4')],'defaultValue':''},'msg_id':{'type':Sequelize[_0xfaa8('0x4')],'defaultValue':''},'stamp':{'type':_0xfaa8('0x7'),'defaultValue':Sequelize[_0xfaa8('0x8')](_0xfaa8('0x9'))}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd060=['../../config/logger','api','../../config/utils','../../config/environment','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','reject','save','update','then','destroy','stack','name','index','map','VoiceMailMessage','fieldName','type','model','differenceBy','query','keys','filters','intersection','attributes','fields','nolimit','sort','pick','filter','where','merge','options','includeAll','include','findAll','rows','catch','show','params','length','create','body','find','download','recording','msg_id','Sequelize','ValidationError','VoiceMailMessage\x20not\x20found','attachment','.wav\x22','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','path','sox','to-csv','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware'];(function(_0x387f72,_0x10bbe0){var _0x101b0e=function(_0x13d429){while(--_0x13d429){_0x387f72['push'](_0x387f72['shift']());}};_0x101b0e(++_0x10bbe0);}(_0xd060,0x180));var _0x0d06=function(_0x543d90,_0x2ebe65){_0x543d90=_0x543d90-0x0;var _0x14b12c=_0xd060[_0x543d90];return _0x14b12c;};'use strict';var emlformat=require(_0x0d06('0x0'));var rimraf=require(_0x0d06('0x1'));var zipdir=require(_0x0d06('0x2'));var jsonpatch=require(_0x0d06('0x3'));var rp=require('request-promise');var moment=require(_0x0d06('0x4'));var BPromise=require(_0x0d06('0x5'));var Mustache=require(_0x0d06('0x6'));var util=require('util');var path=require(_0x0d06('0x7'));var sox=require(_0x0d06('0x8'));var csv=require(_0x0d06('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x0d06('0xa'));var _=require(_0x0d06('0xb'));var squel=require('squel');var crypto=require(_0x0d06('0xc'));var jsforce=require(_0x0d06('0xd'));var deskjs=require(_0x0d06('0xe'));var toCsv=require('to-csv');var querystring=require(_0x0d06('0xf'));var Papa=require(_0x0d06('0x10'));var Redis=require('ioredis');var authService=require(_0x0d06('0x11'));var qs=require(_0x0d06('0x12'));var as=require(_0x0d06('0x13'));var hardwareService=require(_0x0d06('0x14'));var logger=require(_0x0d06('0x15'))(_0x0d06('0x16'));var utils=require(_0x0d06('0x17'));var config=require(_0x0d06('0x18'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x473875,_0x247e40){_0x247e40=_0x247e40||0xcc;return function(_0x320d82){if(_0x320d82){return _0x473875[_0x0d06('0x19')](_0x247e40);}return _0x473875[_0x0d06('0x1a')](_0x247e40)[_0x0d06('0x1b')]();};}function respondWithResult(_0x3d1c87,_0x3d942c){_0x3d942c=_0x3d942c||0xc8;return function(_0x2bec93){if(_0x2bec93){return _0x3d1c87[_0x0d06('0x1a')](_0x3d942c)[_0x0d06('0x1c')](_0x2bec93);}};}function respondWithFilteredResult(_0x181c3e,_0x28f0dd){return function(_0x348451){if(_0x348451){var _0x4288ab=typeof _0x28f0dd['offset']===_0x0d06('0x1d')&&typeof _0x28f0dd[_0x0d06('0x1e')]===_0x0d06('0x1d');var _0x38f9dd=_0x348451[_0x0d06('0x1f')];var _0x27ed28=_0x4288ab?0x0:_0x28f0dd[_0x0d06('0x20')];var _0x3afd9c=_0x4288ab?_0x348451[_0x0d06('0x1f')]:_0x28f0dd[_0x0d06('0x20')]+_0x28f0dd[_0x0d06('0x1e')];var _0x411345;if(_0x3afd9c>=_0x38f9dd){_0x3afd9c=_0x38f9dd;_0x411345=0xc8;}else{_0x411345=0xce;}_0x181c3e[_0x0d06('0x1a')](_0x411345);return _0x181c3e[_0x0d06('0x21')](_0x0d06('0x22'),_0x27ed28+'-'+_0x3afd9c+'/'+_0x38f9dd)[_0x0d06('0x1c')](_0x348451);}return null;};}function patchUpdates(_0x3aba22){return function(_0x59b84f){try{jsonpatch['apply'](_0x59b84f,_0x3aba22,!![]);}catch(_0x377690){return BPromise[_0x0d06('0x23')](_0x377690);}return _0x59b84f[_0x0d06('0x24')]();};}function saveUpdates(_0x56e807,_0x27f081){return function(_0x28bb0e){if(_0x28bb0e){return _0x28bb0e[_0x0d06('0x25')](_0x56e807)[_0x0d06('0x26')](function(_0x2b2bb7){return _0x2b2bb7;});}return null;};}function removeEntity(_0x55a0fd,_0x57ad38){return function(_0x31db72){if(_0x31db72){return _0x31db72[_0x0d06('0x27')]()[_0x0d06('0x26')](function(){_0x55a0fd[_0x0d06('0x1a')](0xcc)[_0x0d06('0x1b')]();});}};}function handleEntityNotFound(_0x22603f,_0xc491e1){return function(_0x4a3601){if(!_0x4a3601){_0x22603f[_0x0d06('0x19')](0x194);}return _0x4a3601;};}function handleError(_0x4f73c7,_0x6aa9c6){_0x6aa9c6=_0x6aa9c6||0x1f4;return function(_0x3a111e){logger['error'](_0x3a111e[_0x0d06('0x28')]);if(_0x3a111e[_0x0d06('0x29')]){delete _0x3a111e[_0x0d06('0x29')];}_0x4f73c7['status'](_0x6aa9c6)['send'](_0x3a111e);};}exports[_0x0d06('0x2a')]=function(_0x293539,_0x4d77be){var _0x45c7d1={},_0x2dd46b={},_0x5c4f79={'count':0x0,'rows':[]};var _0x2941a0=_[_0x0d06('0x2b')](db[_0x0d06('0x2c')]['rawAttributes'],function(_0x4266d4){return{'name':_0x4266d4[_0x0d06('0x2d')],'type':_0x4266d4[_0x0d06('0x2e')]['key']};});_0x2dd46b[_0x0d06('0x2f')]=_[_0x0d06('0x30')](_[_0x0d06('0x2b')](_0x2941a0,_0x0d06('0x29')),['name']);_0x2dd46b[_0x0d06('0x31')]=_[_0x0d06('0x32')](_0x293539['query']);_0x2dd46b[_0x0d06('0x33')]=_[_0x0d06('0x34')](_0x2dd46b['model'],_0x2dd46b[_0x0d06('0x31')]);_0x45c7d1[_0x0d06('0x35')]=_[_0x0d06('0x34')](_0x2dd46b[_0x0d06('0x2f')],qs[_0x0d06('0x36')](_0x293539[_0x0d06('0x31')]['fields']));_0x45c7d1['attributes']=_0x45c7d1[_0x0d06('0x35')]['length']?_0x45c7d1['attributes']:_0x2dd46b[_0x0d06('0x2f')];if(!_0x293539[_0x0d06('0x31')]['hasOwnProperty'](_0x0d06('0x37'))){_0x45c7d1[_0x0d06('0x1e')]=qs['limit'](_0x293539[_0x0d06('0x31')][_0x0d06('0x1e')]);_0x45c7d1['offset']=qs[_0x0d06('0x20')](_0x293539['query'][_0x0d06('0x20')]);}_0x45c7d1['order']=qs[_0x0d06('0x38')](_0x293539[_0x0d06('0x31')][_0x0d06('0x38')]);_0x45c7d1['where']=qs[_0x0d06('0x33')](_[_0x0d06('0x39')](_0x293539[_0x0d06('0x31')],_0x2dd46b[_0x0d06('0x33')]),_0x2941a0);if(_0x293539[_0x0d06('0x31')][_0x0d06('0x3a')]){_0x45c7d1[_0x0d06('0x3b')]=_[_0x0d06('0x3c')](_0x45c7d1[_0x0d06('0x3b')],{'$or':_[_0x0d06('0x2b')](_0x2941a0,function(_0x2bb853){if(_0x2bb853[_0x0d06('0x2e')]!=='VIRTUAL'){var _0x9b8c97={};_0x9b8c97[_0x2bb853[_0x0d06('0x29')]]={'$like':'%'+_0x293539[_0x0d06('0x31')][_0x0d06('0x3a')]+'%'};return _0x9b8c97;}})});}_0x45c7d1=_[_0x0d06('0x3c')]({},_0x45c7d1,_0x293539[_0x0d06('0x3d')]);var _0x586170={'where':_0x45c7d1[_0x0d06('0x3b')]};return db[_0x0d06('0x2c')][_0x0d06('0x1f')](_0x586170)[_0x0d06('0x26')](function(_0x17384a){_0x5c4f79[_0x0d06('0x1f')]=_0x17384a;if(_0x293539[_0x0d06('0x31')][_0x0d06('0x3e')]){_0x45c7d1[_0x0d06('0x3f')]=[{'all':!![]}];}return db[_0x0d06('0x2c')][_0x0d06('0x40')](_0x45c7d1);})[_0x0d06('0x26')](function(_0x4f2cb1){_0x5c4f79[_0x0d06('0x41')]=_0x4f2cb1;return _0x5c4f79;})[_0x0d06('0x26')](respondWithFilteredResult(_0x4d77be,_0x45c7d1))[_0x0d06('0x42')](handleError(_0x4d77be,null));};exports[_0x0d06('0x43')]=function(_0x4acc18,_0x29c14c){var _0x5bd4db={'raw':!![],'where':{'id':_0x4acc18[_0x0d06('0x44')]['id']}},_0x23aeed={};_0x23aeed[_0x0d06('0x2f')]=_[_0x0d06('0x32')](db[_0x0d06('0x2c')]['rawAttributes']);_0x23aeed['query']=_[_0x0d06('0x32')](_0x4acc18['query']);_0x23aeed[_0x0d06('0x33')]=_[_0x0d06('0x34')](_0x23aeed['model'],_0x23aeed['query']);_0x5bd4db[_0x0d06('0x35')]=_['intersection'](_0x23aeed[_0x0d06('0x2f')],qs[_0x0d06('0x36')](_0x4acc18[_0x0d06('0x31')]['fields']));_0x5bd4db[_0x0d06('0x35')]=_0x5bd4db['attributes'][_0x0d06('0x45')]?_0x5bd4db[_0x0d06('0x35')]:_0x23aeed[_0x0d06('0x2f')];if(_0x4acc18[_0x0d06('0x31')]['includeAll']){_0x5bd4db[_0x0d06('0x3f')]=[{'all':!![]}];}_0x5bd4db=_['merge']({},_0x5bd4db,_0x4acc18[_0x0d06('0x3d')]);return db[_0x0d06('0x2c')]['find'](_0x5bd4db)['then'](handleEntityNotFound(_0x29c14c,null))[_0x0d06('0x26')](respondWithResult(_0x29c14c,null))['catch'](handleError(_0x29c14c,null));};exports[_0x0d06('0x46')]=function(_0x6bf99e,_0x4daed1){return db['VoiceMailMessage']['create'](_0x6bf99e[_0x0d06('0x47')],{})[_0x0d06('0x26')](respondWithResult(_0x4daed1,0xc9))[_0x0d06('0x42')](handleError(_0x4daed1,null));};exports[_0x0d06('0x25')]=function(_0x2af71d,_0x56f0f8){if(_0x2af71d[_0x0d06('0x47')]['id']){delete _0x2af71d[_0x0d06('0x47')]['id'];}return db[_0x0d06('0x2c')][_0x0d06('0x48')]({'where':{'id':_0x2af71d['params']['id']}})['then'](handleEntityNotFound(_0x56f0f8,null))[_0x0d06('0x26')](saveUpdates(_0x2af71d[_0x0d06('0x47')],null))[_0x0d06('0x26')](respondWithResult(_0x56f0f8,null))['catch'](handleError(_0x56f0f8,null));};exports[_0x0d06('0x27')]=function(_0xe38153,_0x101548){return db['VoiceMailMessage'][_0x0d06('0x48')]({'where':{'id':_0xe38153[_0x0d06('0x44')]['id']}})[_0x0d06('0x26')](handleEntityNotFound(_0x101548,null))[_0x0d06('0x26')](removeEntity(_0x101548,null))[_0x0d06('0x42')](handleError(_0x101548,null));};exports[_0x0d06('0x49')]=function(_0x5f0ae4,_0x2f025d,_0x2e6183){return db[_0x0d06('0x2c')][_0x0d06('0x48')]({'where':{'id':_0x5f0ae4[_0x0d06('0x44')]['id']},'attributes':['id',_0x0d06('0x4a'),_0x0d06('0x4b')]})['then'](handleEntityNotFound(_0x2f025d,null))[_0x0d06('0x26')](function(_0x184daa){if(_0x184daa){if(!_0x184daa[_0x0d06('0x4a')]){throw new db[(_0x0d06('0x4c'))][(_0x0d06('0x4d'))](_0x0d06('0x4e'));}var _0x1046d2={'Content-Type':'audio/wav','Content-Disposition':_0x0d06('0x4f')};if(_0x184daa[_0x0d06('0x4b')]){_0x1046d2['Content-Disposition']='attachment;\x20filename=\x22'+_0x184daa[_0x0d06('0x4b')]+_0x0d06('0x50');}_0x2f025d[_0x0d06('0x21')](_0x1046d2);return _0x2f025d['send'](new Buffer(_0x184daa[_0x0d06('0x4a')]));}})['catch'](handleError(_0x2f025d,null));};
\ No newline at end of file
+var _0x5ecb=['rawAttributes','merge','create','body','find','download','msg_id','recording','Sequelize','VoiceMailMessage\x20not\x20found','attachment','Content-Disposition','attachment;\x20filename=\x22','.wav\x22','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','crypto','desk.js','papaparse','ioredis','../../components/auth/service','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','limit','undefined','count','offset','set','apply','reject','save','update','destroy','then','stack','send','index','map','VoiceMailMessage','fieldName','type','key','differenceBy','name','query','keys','filters','intersection','model','fields','attributes','nolimit','order','sort','where','pick','filter','options','includeAll','include','catch','show','params'];(function(_0x465028,_0x4570ac){var _0xb783d4=function(_0x5458c5){while(--_0x5458c5){_0x465028['push'](_0x465028['shift']());}};_0xb783d4(++_0x4570ac);}(_0x5ecb,0x15a));var _0xb5ec=function(_0x1cd674,_0x8d3638){_0x1cd674=_0x1cd674-0x0;var _0x27928f=_0x5ecb[_0x1cd674];return _0x27928f;};'use strict';var emlformat=require(_0xb5ec('0x0'));var rimraf=require(_0xb5ec('0x1'));var zipdir=require(_0xb5ec('0x2'));var jsonpatch=require(_0xb5ec('0x3'));var rp=require('request-promise');var moment=require(_0xb5ec('0x4'));var BPromise=require(_0xb5ec('0x5'));var Mustache=require(_0xb5ec('0x6'));var util=require(_0xb5ec('0x7'));var path=require(_0xb5ec('0x8'));var sox=require('sox');var csv=require(_0xb5ec('0x9'));var ejs=require(_0xb5ec('0xa'));var fs=require('fs');var fs_extra=require(_0xb5ec('0xb'));var _=require(_0xb5ec('0xc'));var squel=require('squel');var crypto=require(_0xb5ec('0xd'));var jsforce=require('jsforce');var deskjs=require(_0xb5ec('0xe'));var toCsv=require(_0xb5ec('0x9'));var querystring=require('querystring');var Papa=require(_0xb5ec('0xf'));var Redis=require(_0xb5ec('0x10'));var authService=require(_0xb5ec('0x11'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xb5ec('0x12'));var logger=require(_0xb5ec('0x13'))(_0xb5ec('0x14'));var utils=require(_0xb5ec('0x15'));var config=require(_0xb5ec('0x16'));var licenseUtil=require(_0xb5ec('0x17'));var db=require(_0xb5ec('0x18'))['db'];function respondWithStatusCode(_0x4866ec,_0x1ed312){_0x1ed312=_0x1ed312||0xcc;return function(_0x14d73e){if(_0x14d73e){return _0x4866ec[_0xb5ec('0x19')](_0x1ed312);}return _0x4866ec['status'](_0x1ed312)[_0xb5ec('0x1a')]();};}function respondWithResult(_0xa7bff4,_0x4cc3c4){_0x4cc3c4=_0x4cc3c4||0xc8;return function(_0x1d5ed1){if(_0x1d5ed1){return _0xa7bff4[_0xb5ec('0x1b')](_0x4cc3c4)[_0xb5ec('0x1c')](_0x1d5ed1);}};}function respondWithFilteredResult(_0x1c020a,_0x4f67a1){return function(_0x53dde4){if(_0x53dde4){var _0x4c7c59=typeof _0x4f67a1['offset']==='undefined'&&typeof _0x4f67a1[_0xb5ec('0x1d')]===_0xb5ec('0x1e');var _0x513b86=_0x53dde4[_0xb5ec('0x1f')];var _0x52825b=_0x4c7c59?0x0:_0x4f67a1['offset'];var _0x2599a7=_0x4c7c59?_0x53dde4[_0xb5ec('0x1f')]:_0x4f67a1[_0xb5ec('0x20')]+_0x4f67a1[_0xb5ec('0x1d')];var _0x4c0534;if(_0x2599a7>=_0x513b86){_0x2599a7=_0x513b86;_0x4c0534=0xc8;}else{_0x4c0534=0xce;}_0x1c020a[_0xb5ec('0x1b')](_0x4c0534);return _0x1c020a[_0xb5ec('0x21')]('Content-Range',_0x52825b+'-'+_0x2599a7+'/'+_0x513b86)[_0xb5ec('0x1c')](_0x53dde4);}return null;};}function patchUpdates(_0x3d1bb7){return function(_0x39a87d){try{jsonpatch[_0xb5ec('0x22')](_0x39a87d,_0x3d1bb7,!![]);}catch(_0x8514f9){return BPromise[_0xb5ec('0x23')](_0x8514f9);}return _0x39a87d[_0xb5ec('0x24')]();};}function saveUpdates(_0x121350,_0x49d2cc){return function(_0x33607e){if(_0x33607e){return _0x33607e[_0xb5ec('0x25')](_0x121350)['then'](function(_0x18903e){return _0x18903e;});}return null;};}function removeEntity(_0x30806b,_0x24a7fd){return function(_0x40018f){if(_0x40018f){return _0x40018f[_0xb5ec('0x26')]()[_0xb5ec('0x27')](function(){_0x30806b[_0xb5ec('0x1b')](0xcc)[_0xb5ec('0x1a')]();});}};}function handleEntityNotFound(_0x32ae2a,_0xff45af){return function(_0x2ad5cd){if(!_0x2ad5cd){_0x32ae2a[_0xb5ec('0x19')](0x194);}return _0x2ad5cd;};}function handleError(_0x389da8,_0x138f2c){_0x138f2c=_0x138f2c||0x1f4;return function(_0x11948a){logger['error'](_0x11948a[_0xb5ec('0x28')]);if(_0x11948a['name']){delete _0x11948a['name'];}_0x389da8[_0xb5ec('0x1b')](_0x138f2c)[_0xb5ec('0x29')](_0x11948a);};}exports[_0xb5ec('0x2a')]=function(_0x4179fc,_0x174c3f){var _0x9b504c={},_0x20bebe={},_0x3e5a72={'count':0x0,'rows':[]};var _0x1b095c=_[_0xb5ec('0x2b')](db[_0xb5ec('0x2c')]['rawAttributes'],function(_0x293911){return{'name':_0x293911[_0xb5ec('0x2d')],'type':_0x293911[_0xb5ec('0x2e')][_0xb5ec('0x2f')]};});_0x20bebe['model']=_[_0xb5ec('0x30')](_['map'](_0x1b095c,_0xb5ec('0x31')),[_0xb5ec('0x31')]);_0x20bebe[_0xb5ec('0x32')]=_[_0xb5ec('0x33')](_0x4179fc['query']);_0x20bebe[_0xb5ec('0x34')]=_[_0xb5ec('0x35')](_0x20bebe[_0xb5ec('0x36')],_0x20bebe[_0xb5ec('0x32')]);_0x9b504c['attributes']=_[_0xb5ec('0x35')](_0x20bebe['model'],qs[_0xb5ec('0x37')](_0x4179fc[_0xb5ec('0x32')][_0xb5ec('0x37')]));_0x9b504c[_0xb5ec('0x38')]=_0x9b504c[_0xb5ec('0x38')]['length']?_0x9b504c[_0xb5ec('0x38')]:_0x20bebe['model'];if(!_0x4179fc[_0xb5ec('0x32')]['hasOwnProperty'](_0xb5ec('0x39'))){_0x9b504c['limit']=qs['limit'](_0x4179fc[_0xb5ec('0x32')]['limit']);_0x9b504c[_0xb5ec('0x20')]=qs[_0xb5ec('0x20')](_0x4179fc[_0xb5ec('0x32')][_0xb5ec('0x20')]);}_0x9b504c[_0xb5ec('0x3a')]=qs[_0xb5ec('0x3b')](_0x4179fc[_0xb5ec('0x32')][_0xb5ec('0x3b')]);_0x9b504c[_0xb5ec('0x3c')]=qs[_0xb5ec('0x34')](_[_0xb5ec('0x3d')](_0x4179fc[_0xb5ec('0x32')],_0x20bebe['filters']),_0x1b095c);if(_0x4179fc[_0xb5ec('0x32')][_0xb5ec('0x3e')]){_0x9b504c['where']=_['merge'](_0x9b504c[_0xb5ec('0x3c')],{'$or':_['map'](_0x1b095c,function(_0x250393){if(_0x250393['type']!=='VIRTUAL'){var _0x38e681={};_0x38e681[_0x250393['name']]={'$like':'%'+_0x4179fc[_0xb5ec('0x32')][_0xb5ec('0x3e')]+'%'};return _0x38e681;}})});}_0x9b504c=_['merge']({},_0x9b504c,_0x4179fc[_0xb5ec('0x3f')]);var _0x273d21={'where':_0x9b504c[_0xb5ec('0x3c')]};return db[_0xb5ec('0x2c')][_0xb5ec('0x1f')](_0x273d21)[_0xb5ec('0x27')](function(_0x4e4516){_0x3e5a72['count']=_0x4e4516;if(_0x4179fc['query'][_0xb5ec('0x40')]){_0x9b504c[_0xb5ec('0x41')]=[{'all':!![]}];}return db[_0xb5ec('0x2c')]['findAll'](_0x9b504c);})['then'](function(_0x475028){_0x3e5a72['rows']=_0x475028;return _0x3e5a72;})[_0xb5ec('0x27')](respondWithFilteredResult(_0x174c3f,_0x9b504c))[_0xb5ec('0x42')](handleError(_0x174c3f,null));};exports[_0xb5ec('0x43')]=function(_0x5195be,_0x5ffb74){var _0x19591b={'raw':!![],'where':{'id':_0x5195be[_0xb5ec('0x44')]['id']}},_0x30f831={};_0x30f831[_0xb5ec('0x36')]=_['keys'](db[_0xb5ec('0x2c')][_0xb5ec('0x45')]);_0x30f831[_0xb5ec('0x32')]=_[_0xb5ec('0x33')](_0x5195be[_0xb5ec('0x32')]);_0x30f831['filters']=_[_0xb5ec('0x35')](_0x30f831[_0xb5ec('0x36')],_0x30f831['query']);_0x19591b[_0xb5ec('0x38')]=_[_0xb5ec('0x35')](_0x30f831[_0xb5ec('0x36')],qs[_0xb5ec('0x37')](_0x5195be['query'][_0xb5ec('0x37')]));_0x19591b[_0xb5ec('0x38')]=_0x19591b[_0xb5ec('0x38')]['length']?_0x19591b[_0xb5ec('0x38')]:_0x30f831['model'];if(_0x5195be['query']['includeAll']){_0x19591b[_0xb5ec('0x41')]=[{'all':!![]}];}_0x19591b=_[_0xb5ec('0x46')]({},_0x19591b,_0x5195be[_0xb5ec('0x3f')]);return db[_0xb5ec('0x2c')]['find'](_0x19591b)[_0xb5ec('0x27')](handleEntityNotFound(_0x5ffb74,null))[_0xb5ec('0x27')](respondWithResult(_0x5ffb74,null))['catch'](handleError(_0x5ffb74,null));};exports[_0xb5ec('0x47')]=function(_0x31c357,_0x15a7a4){return db[_0xb5ec('0x2c')][_0xb5ec('0x47')](_0x31c357['body'],{})[_0xb5ec('0x27')](respondWithResult(_0x15a7a4,0xc9))[_0xb5ec('0x42')](handleError(_0x15a7a4,null));};exports[_0xb5ec('0x25')]=function(_0x3f3949,_0x2777e3){if(_0x3f3949[_0xb5ec('0x48')]['id']){delete _0x3f3949[_0xb5ec('0x48')]['id'];}return db[_0xb5ec('0x2c')]['find']({'where':{'id':_0x3f3949[_0xb5ec('0x44')]['id']}})[_0xb5ec('0x27')](handleEntityNotFound(_0x2777e3,null))['then'](saveUpdates(_0x3f3949['body'],null))[_0xb5ec('0x27')](respondWithResult(_0x2777e3,null))['catch'](handleError(_0x2777e3,null));};exports[_0xb5ec('0x26')]=function(_0x12bd2a,_0x410ca6){return db['VoiceMailMessage'][_0xb5ec('0x49')]({'where':{'id':_0x12bd2a[_0xb5ec('0x44')]['id']}})[_0xb5ec('0x27')](handleEntityNotFound(_0x410ca6,null))[_0xb5ec('0x27')](removeEntity(_0x410ca6,null))[_0xb5ec('0x42')](handleError(_0x410ca6,null));};exports[_0xb5ec('0x4a')]=function(_0xe43300,_0x134371,_0x5bf3ae){return db[_0xb5ec('0x2c')]['find']({'where':{'id':_0xe43300[_0xb5ec('0x44')]['id']},'attributes':['id','recording',_0xb5ec('0x4b')]})['then'](handleEntityNotFound(_0x134371,null))['then'](function(_0x5e39b7){if(_0x5e39b7){if(!_0x5e39b7[_0xb5ec('0x4c')]){throw new db[(_0xb5ec('0x4d'))]['ValidationError'](_0xb5ec('0x4e'));}var _0x50a267={'Content-Type':'audio/wav','Content-Disposition':_0xb5ec('0x4f')};if(_0x5e39b7[_0xb5ec('0x4b')]){_0x50a267[_0xb5ec('0x50')]=_0xb5ec('0x51')+_0x5e39b7['msg_id']+_0xb5ec('0x52');}_0x134371['set'](_0x50a267);return _0x134371[_0xb5ec('0x29')](new Buffer(_0x5e39b7['recording']));}})[_0xb5ec('0x42')](handleError(_0x134371,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x25ac=['VoiceMailMessage','voice_voicemail_messages','dir','lodash','util','../../config/logger','moment','bluebird','request-promise','path','rimraf','./voiceMailMessage.attributes','exports','define'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x25ac,0xab));var _0xc25a=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x25ac[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0xc25a('0x0'));var util=require(_0xc25a('0x1'));var logger=require(_0xc25a('0x2'))('api');var moment=require(_0xc25a('0x3'));var BPromise=require(_0xc25a('0x4'));var rp=require(_0xc25a('0x5'));var fs=require('fs');var path=require(_0xc25a('0x6'));var rimraf=require(_0xc25a('0x7'));var config=require('../../config/environment');var attributes=require(_0xc25a('0x8'));module[_0xc25a('0x9')]=function(_0x581ce1,_0xfa77a9){return _0x581ce1[_0xc25a('0xa')](_0xc25a('0xb'),attributes,{'tableName':_0xc25a('0xc'),'paranoid':![],'indexes':[{'name':_0xc25a('0xd'),'fields':[_0xc25a('0xd')]}],'timestamps':![]});};
\ No newline at end of file
+var _0xcc0e=['define','VoiceMailMessage','voice_voicemail_messages','dir','lodash','util','../../config/logger','bluebird','request-promise','path','rimraf','../../config/environment','./voiceMailMessage.attributes','exports'];(function(_0x5ee55a,_0x48eed9){var _0x2d58f2=function(_0x2be121){while(--_0x2be121){_0x5ee55a['push'](_0x5ee55a['shift']());}};_0x2d58f2(++_0x48eed9);}(_0xcc0e,0x90));var _0xecc0=function(_0x1408bf,_0x1930e9){_0x1408bf=_0x1408bf-0x0;var _0x4d773b=_0xcc0e[_0x1408bf];return _0x4d773b;};'use strict';var _=require(_0xecc0('0x0'));var util=require(_0xecc0('0x1'));var logger=require(_0xecc0('0x2'))('api');var moment=require('moment');var BPromise=require(_0xecc0('0x3'));var rp=require(_0xecc0('0x4'));var fs=require('fs');var path=require(_0xecc0('0x5'));var rimraf=require(_0xecc0('0x6'));var config=require(_0xecc0('0x7'));var attributes=require(_0xecc0('0x8'));module[_0xecc0('0x9')]=function(_0x115e77,_0x1a6a15){return _0x115e77[_0xecc0('0xa')](_0xecc0('0xb'),attributes,{'tableName':_0xecc0('0xc'),'paranoid':![],'indexes':[{'name':_0xecc0('0xd'),'fields':[_0xecc0('0xd')]}],'timestamps':![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xba7c=['http','request','then','VoiceMailMessage,\x20%s,\x20%s','debug','VoiceMailMessage,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','info','catch','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/environment','jayson/promise','client'];(function(_0x3edd46,_0x4698e3){var _0x12a771=function(_0x255c4b){while(--_0x255c4b){_0x3edd46['push'](_0x3edd46['shift']());}};_0x12a771(++_0x4698e3);}(_0xba7c,0x1ae));var _0xcba7=function(_0x125e92,_0x352b3b){_0x125e92=_0x125e92-0x0;var _0xd55843=_0xba7c[_0x125e92];return _0xd55843;};'use strict';var _=require(_0xcba7('0x0'));var util=require(_0xcba7('0x1'));var moment=require(_0xcba7('0x2'));var BPromise=require('bluebird');var rs=require(_0xcba7('0x3'));var fs=require('fs');var Redis=require(_0xcba7('0x4'));var db=require(_0xcba7('0x5'))['db'];var utils=require(_0xcba7('0x6'));var logger=require('../../config/logger')('rpc');var config=require(_0xcba7('0x7'));var jayson=require(_0xcba7('0x8'));var client=jayson[_0xcba7('0x9')][_0xcba7('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x70bb2c,_0x1b38a4,_0x380638){return new BPromise(function(_0x6772f0,_0x21a7e2){return client[_0xcba7('0xb')](_0x70bb2c,_0x380638)[_0xcba7('0xc')](function(_0x3bc160){logger['info'](_0xcba7('0xd'),_0x1b38a4,'request\x20sent');logger[_0xcba7('0xe')](_0xcba7('0xf'),_0x1b38a4,_0xcba7('0x10'),JSON['stringify'](_0x3bc160));if(_0x3bc160[_0xcba7('0x11')]){if(_0x3bc160[_0xcba7('0x11')][_0xcba7('0x12')]===0x1f4){logger[_0xcba7('0x11')](_0xcba7('0xd'),_0x1b38a4,_0x3bc160[_0xcba7('0x11')][_0xcba7('0x13')]);return _0x21a7e2(_0x3bc160['error']['message']);}logger[_0xcba7('0x11')](_0xcba7('0xd'),_0x1b38a4,_0x3bc160['error'][_0xcba7('0x13')]);return _0x6772f0(_0x3bc160[_0xcba7('0x11')][_0xcba7('0x13')]);}else{logger[_0xcba7('0x14')](_0xcba7('0xd'),_0x1b38a4,'request\x20sent');_0x6772f0(_0x3bc160['result'][_0xcba7('0x13')]);}})[_0xcba7('0x15')](function(_0x806fca){logger[_0xcba7('0x11')]('VoiceMailMessage,\x20%s,\x20%s',_0x1b38a4,_0x806fca);_0x21a7e2(_0x806fca);});});}
\ No newline at end of file
+var _0x37f7=['catch','lodash','moment','bluebird','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','request','then','VoiceMailMessage,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','info','result'];(function(_0x4e1bd3,_0xda464d){var _0x234e83=function(_0x144f4d){while(--_0x144f4d){_0x4e1bd3['push'](_0x4e1bd3['shift']());}};_0x234e83(++_0xda464d);}(_0x37f7,0x1cf));var _0x737f=function(_0x22a202,_0x44480e){_0x22a202=_0x22a202-0x0;var _0x9ced07=_0x37f7[_0x22a202];return _0x9ced07;};'use strict';var _=require(_0x737f('0x0'));var util=require('util');var moment=require(_0x737f('0x1'));var BPromise=require(_0x737f('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x737f('0x3'))['db'];var utils=require(_0x737f('0x4'));var logger=require(_0x737f('0x5'))('rpc');var config=require(_0x737f('0x6'));var jayson=require(_0x737f('0x7'));var client=jayson[_0x737f('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x50745a,_0x2c6c64,_0x1f6d0){return new BPromise(function(_0x4748bb,_0x3c158d){return client[_0x737f('0x9')](_0x50745a,_0x1f6d0)[_0x737f('0xa')](function(_0x2f89cf){logger['info'](_0x737f('0xb'),_0x2c6c64,_0x737f('0xc'));logger[_0x737f('0xd')]('VoiceMailMessage,\x20%s,\x20%s,\x20%s',_0x2c6c64,'request\x20sent',JSON[_0x737f('0xe')](_0x2f89cf));if(_0x2f89cf[_0x737f('0xf')]){if(_0x2f89cf[_0x737f('0xf')][_0x737f('0x10')]===0x1f4){logger['error']('VoiceMailMessage,\x20%s,\x20%s',_0x2c6c64,_0x2f89cf[_0x737f('0xf')]['message']);return _0x3c158d(_0x2f89cf[_0x737f('0xf')][_0x737f('0x11')]);}logger[_0x737f('0xf')](_0x737f('0xb'),_0x2c6c64,_0x2f89cf[_0x737f('0xf')][_0x737f('0x11')]);return _0x4748bb(_0x2f89cf[_0x737f('0xf')][_0x737f('0x11')]);}else{logger[_0x737f('0x12')](_0x737f('0xb'),_0x2c6c64,_0x737f('0xc'));_0x4748bb(_0x2f89cf[_0x737f('0x13')][_0x737f('0x11')]);}})[_0x737f('0x14')](function(_0x2aee85){logger['error'](_0x737f('0xb'),_0x2c6c64,_0x2aee85);_0x3c158d(_0x2aee85);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc4c6=['removeSound','exports','multer','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','./voiceMusicOnHold.controller','get','index','isAuthenticated','/:id/sounds','getSounds','post','create','addSound','put','/:id','delete','destroy'];(function(_0x528575,_0x2e067d){var _0x3063b7=function(_0x1ee183){while(--_0x1ee183){_0x528575['push'](_0x528575['shift']());}};_0x3063b7(++_0x2e067d);}(_0xc4c6,0x120));var _0x6c4c=function(_0x4bae5c,_0x3d9f1e){_0x4bae5c=_0x4bae5c-0x0;var _0x3550fc=_0xc4c6[_0x4bae5c];return _0x3550fc;};'use strict';var multer=require(_0x6c4c('0x0'));var util=require('util');var path=require(_0x6c4c('0x1'));var timeout=require(_0x6c4c('0x2'));var express=require(_0x6c4c('0x3'));var router=express[_0x6c4c('0x4')]();var fs_extra=require(_0x6c4c('0x5'));var auth=require(_0x6c4c('0x6'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x6c4c('0x7'));router[_0x6c4c('0x8')]('/',auth['isAuthenticated'](),controller[_0x6c4c('0x9')]);router[_0x6c4c('0x8')]('/:id',auth[_0x6c4c('0xa')](),controller['show']);router['get'](_0x6c4c('0xb'),auth[_0x6c4c('0xa')](),controller[_0x6c4c('0xc')]);router[_0x6c4c('0xd')]('/',auth[_0x6c4c('0xa')](),controller[_0x6c4c('0xe')]);router[_0x6c4c('0xd')](_0x6c4c('0xb'),auth[_0x6c4c('0xa')](),controller[_0x6c4c('0xf')]);router[_0x6c4c('0x10')](_0x6c4c('0x11'),auth[_0x6c4c('0xa')](),controller['update']);router[_0x6c4c('0x12')](_0x6c4c('0x11'),auth[_0x6c4c('0xa')](),controller[_0x6c4c('0x13')]);router[_0x6c4c('0x12')]('/:id/sounds/:id2',auth[_0x6c4c('0xa')](),controller[_0x6c4c('0x14')]);module[_0x6c4c('0x15')]=router;
\ No newline at end of file
+var _0xd88f=['multer','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','isAuthenticated','index','get','/:id/sounds','getSounds','post','create','addSound','update','delete','/:id/sounds/:id2','removeSound'];(function(_0x39a860,_0x24cae1){var _0x3e28a9=function(_0x5a8eae){while(--_0x5a8eae){_0x39a860['push'](_0x39a860['shift']());}};_0x3e28a9(++_0x24cae1);}(_0xd88f,0x160));var _0xfd88=function(_0x4067ac,_0x363603){_0x4067ac=_0x4067ac-0x0;var _0x53d74d=_0xd88f[_0x4067ac];return _0x53d74d;};'use strict';var multer=require(_0xfd88('0x0'));var util=require(_0xfd88('0x1'));var path=require(_0xfd88('0x2'));var timeout=require(_0xfd88('0x3'));var express=require(_0xfd88('0x4'));var router=express[_0xfd88('0x5')]();var fs_extra=require(_0xfd88('0x6'));var auth=require(_0xfd88('0x7'));var interaction=require(_0xfd88('0x8'));var config=require(_0xfd88('0x9'));var controller=require('./voiceMusicOnHold.controller');router['get']('/',auth[_0xfd88('0xa')](),controller[_0xfd88('0xb')]);router['get']('/:id',auth['isAuthenticated'](),controller['show']);router[_0xfd88('0xc')](_0xfd88('0xd'),auth[_0xfd88('0xa')](),controller[_0xfd88('0xe')]);router[_0xfd88('0xf')]('/',auth[_0xfd88('0xa')](),controller[_0xfd88('0x10')]);router[_0xfd88('0xf')](_0xfd88('0xd'),auth['isAuthenticated'](),controller[_0xfd88('0x11')]);router['put']('/:id',auth[_0xfd88('0xa')](),controller[_0xfd88('0x12')]);router[_0xfd88('0x13')]('/:id',auth[_0xfd88('0xa')](),controller['destroy']);router['delete'](_0xfd88('0x14'),auth[_0xfd88('0xa')](),controller[_0xfd88('0x15')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xff05=['ENUM','custom','files','quietmp3nb','quietmp3','mp3','alpha','TIMESTAMP','BOOLEAN','sequelize','exports','STRING'];(function(_0x51addd,_0x49e642){var _0x1b0c02=function(_0x3bbec8){while(--_0x3bbec8){_0x51addd['push'](_0x51addd['shift']());}};_0x1b0c02(++_0x49e642);}(_0xff05,0xed));var _0x5ff0=function(_0x30d352,_0x347364){_0x30d352=_0x30d352-0x0;var _0x42a2da=_0xff05[_0x30d352];return _0x42a2da;};'use strict';var Sequelize=require(_0x5ff0('0x0'));module[_0x5ff0('0x1')]={'name':{'type':Sequelize[_0x5ff0('0x2')],'allowNull':![],'unique':'name'},'mode':{'type':Sequelize[_0x5ff0('0x3')](_0x5ff0('0x4'),_0x5ff0('0x5'),'mp3nb',_0x5ff0('0x6'),_0x5ff0('0x7'),_0x5ff0('0x8')),'allowNull':!![],'defaultValue':_0x5ff0('0x5')},'directory':{'type':Sequelize['STRING'],'allowNull':!![]},'application':{'type':Sequelize[_0x5ff0('0x2')],'allowNull':!![]},'digit':{'type':Sequelize[_0x5ff0('0x2')],'allowNull':!![]},'sort':{'type':Sequelize[_0x5ff0('0x2')],'allowNull':!![],'defaultValue':_0x5ff0('0x9')},'format':{'type':Sequelize['STRING'],'allowNull':!![]},'stamp':{'type':_0x5ff0('0xa')},'defaultEntry':{'type':Sequelize[_0x5ff0('0xb')],'defaultValue':0x0}};
\ No newline at end of file
+var _0xe82e=['mp3','STRING','alpha','TIMESTAMP','BOOLEAN','sequelize','exports','name','ENUM','custom','files','quietmp3nb','quietmp3'];(function(_0x43cad5,_0x46b95f){var _0x1fac7e=function(_0x533eb8){while(--_0x533eb8){_0x43cad5['push'](_0x43cad5['shift']());}};_0x1fac7e(++_0x46b95f);}(_0xe82e,0x18b));var _0xee82=function(_0x2aec52,_0x59d962){_0x2aec52=_0x2aec52-0x0;var _0x3b8835=_0xe82e[_0x2aec52];return _0x3b8835;};'use strict';var Sequelize=require(_0xee82('0x0'));module[_0xee82('0x1')]={'name':{'type':Sequelize['STRING'],'allowNull':![],'unique':_0xee82('0x2')},'mode':{'type':Sequelize[_0xee82('0x3')](_0xee82('0x4'),_0xee82('0x5'),'mp3nb',_0xee82('0x6'),_0xee82('0x7'),_0xee82('0x8')),'allowNull':!![],'defaultValue':_0xee82('0x5')},'directory':{'type':Sequelize[_0xee82('0x9')],'allowNull':!![]},'application':{'type':Sequelize['STRING'],'allowNull':!![]},'digit':{'type':Sequelize[_0xee82('0x9')],'allowNull':!![]},'sort':{'type':Sequelize[_0xee82('0x9')],'allowNull':!![],'defaultValue':_0xee82('0xa')},'format':{'type':Sequelize['STRING'],'allowNull':!![]},'stamp':{'type':_0xee82('0xb')},'defaultEntry':{'type':Sequelize[_0xee82('0xc')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6050=['name','index','map','VoiceMusicOnHold','rawAttributes','type','key','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','filter','merge','VIRTUAL','includeAll','include','findAll','params','options','find','catch','body','create','sequelize','transaction','files','directory','mode','mkdirSync','0777','user','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','readdirSync','join','rmdirSync','Sequelize','ValidationError','message','addSound','Sound','findOne','save_name','converted_format','server/files/sounds/converted','format','%s.%s','basename','root','server/files/moh','symlinkSync','removeSound','id2','createdAt','unlinkSync','getSounds','eml-format','moment','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','undefined','limit','offset','count','set','Content-Range','apply','reject','save','update','destroy','MusicOnHolds','UserProfileResource','then','end','error'];(function(_0x13d07a,_0x41efc3){var _0x5ee0ee=function(_0x4ca94a){while(--_0x4ca94a){_0x13d07a['push'](_0x13d07a['shift']());}};_0x5ee0ee(++_0x41efc3);}(_0x6050,0xb5));var _0x0605=function(_0x56aebe,_0x51bcc3){_0x56aebe=_0x56aebe-0x0;var _0x181691=_0x6050[_0x56aebe];return _0x181691;};'use strict';var emlformat=require(_0x0605('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x0605('0x1'));var BPromise=require('bluebird');var Mustache=require(_0x0605('0x2'));var util=require(_0x0605('0x3'));var path=require(_0x0605('0x4'));var sox=require('sox');var csv=require(_0x0605('0x5'));var ejs=require(_0x0605('0x6'));var fs=require('fs');var fs_extra=require(_0x0605('0x7'));var _=require(_0x0605('0x8'));var squel=require(_0x0605('0x9'));var crypto=require(_0x0605('0xa'));var jsforce=require(_0x0605('0xb'));var deskjs=require(_0x0605('0xc'));var toCsv=require(_0x0605('0x5'));var querystring=require('querystring');var Papa=require(_0x0605('0xd'));var Redis=require(_0x0605('0xe'));var authService=require(_0x0605('0xf'));var qs=require(_0x0605('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x0605('0x11'));var logger=require(_0x0605('0x12'))(_0x0605('0x13'));var utils=require(_0x0605('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0x0605('0x15'));var db=require(_0x0605('0x16'))['db'];function respondWithStatusCode(_0x3e522e,_0x1312b7){_0x1312b7=_0x1312b7||0xcc;return function(_0x3cc897){if(_0x3cc897){return _0x3e522e[_0x0605('0x17')](_0x1312b7);}return _0x3e522e['status'](_0x1312b7)['end']();};}function respondWithResult(_0x52ac6b,_0x28c009){_0x28c009=_0x28c009||0xc8;return function(_0x10f517){if(_0x10f517){return _0x52ac6b[_0x0605('0x18')](_0x28c009)['json'](_0x10f517);}};}function respondWithFilteredResult(_0x4152c6,_0x5534c9){return function(_0xa30213){if(_0xa30213){var _0x152188=typeof _0x5534c9['offset']===_0x0605('0x19')&&typeof _0x5534c9[_0x0605('0x1a')]===_0x0605('0x19');var _0xa7de1f=_0xa30213['count'];var _0x532c3e=_0x152188?0x0:_0x5534c9[_0x0605('0x1b')];var _0x48894c=_0x152188?_0xa30213[_0x0605('0x1c')]:_0x5534c9[_0x0605('0x1b')]+_0x5534c9['limit'];var _0x1342f0;if(_0x48894c>=_0xa7de1f){_0x48894c=_0xa7de1f;_0x1342f0=0xc8;}else{_0x1342f0=0xce;}_0x4152c6[_0x0605('0x18')](_0x1342f0);return _0x4152c6[_0x0605('0x1d')](_0x0605('0x1e'),_0x532c3e+'-'+_0x48894c+'/'+_0xa7de1f)['json'](_0xa30213);}return null;};}function patchUpdates(_0x13da49){return function(_0x2ede26){try{jsonpatch[_0x0605('0x1f')](_0x2ede26,_0x13da49,!![]);}catch(_0x229cf0){return BPromise[_0x0605('0x20')](_0x229cf0);}return _0x2ede26[_0x0605('0x21')]();};}function saveUpdates(_0x7d0a5a,_0x544ff5){return function(_0x389f18){if(_0x389f18){return _0x389f18[_0x0605('0x22')](_0x7d0a5a)['then'](function(_0x3394f5){return _0x3394f5;});}return null;};}function removeEntity(_0x3621ef,_0x4ba20d){return function(_0x1f4d35){if(_0x1f4d35){return _0x1f4d35[_0x0605('0x23')]()['then'](function(){var _0xbd19a7=_0x1f4d35['get']({'plain':!![]});var _0x5a5aee=_0x0605('0x24');return db[_0x0605('0x25')]['destroy']({'where':{'type':_0x5a5aee,'resourceId':_0xbd19a7['id']}})[_0x0605('0x26')](function(){return _0x1f4d35;});})[_0x0605('0x26')](function(){_0x3621ef[_0x0605('0x18')](0xcc)[_0x0605('0x27')]();});}};}function handleEntityNotFound(_0x1fb7cf,_0x488331){return function(_0x8ed54b){if(!_0x8ed54b){_0x1fb7cf[_0x0605('0x17')](0x194);}return _0x8ed54b;};}function handleError(_0x5b0cc5,_0x3514f5){_0x3514f5=_0x3514f5||0x1f4;return function(_0x4cc42f){logger[_0x0605('0x28')](_0x4cc42f['stack']);if(_0x4cc42f[_0x0605('0x29')]){delete _0x4cc42f[_0x0605('0x29')];}_0x5b0cc5['status'](_0x3514f5)['send'](_0x4cc42f);};}exports[_0x0605('0x2a')]=function(_0x22c9d0,_0x37f2d4){var _0x541308={},_0x62e74a={},_0x3ba25f={'count':0x0,'rows':[]};var _0x4bffaf=_[_0x0605('0x2b')](db[_0x0605('0x2c')][_0x0605('0x2d')],function(_0x5727a9){return{'name':_0x5727a9['fieldName'],'type':_0x5727a9[_0x0605('0x2e')][_0x0605('0x2f')]};});_0x62e74a[_0x0605('0x30')]=_[_0x0605('0x2b')](_0x4bffaf,_0x0605('0x29'));_0x62e74a[_0x0605('0x31')]=_[_0x0605('0x32')](_0x22c9d0[_0x0605('0x31')]);_0x62e74a['filters']=_[_0x0605('0x33')](_0x62e74a[_0x0605('0x30')],_0x62e74a[_0x0605('0x31')]);_0x541308[_0x0605('0x34')]=_['intersection'](_0x62e74a[_0x0605('0x30')],qs[_0x0605('0x35')](_0x22c9d0[_0x0605('0x31')][_0x0605('0x35')]));_0x541308['attributes']=_0x541308['attributes'][_0x0605('0x36')]?_0x541308['attributes']:_0x62e74a[_0x0605('0x30')];if(!_0x22c9d0[_0x0605('0x31')][_0x0605('0x37')](_0x0605('0x38'))){_0x541308[_0x0605('0x1a')]=qs['limit'](_0x22c9d0['query'][_0x0605('0x1a')]);_0x541308[_0x0605('0x1b')]=qs[_0x0605('0x1b')](_0x22c9d0[_0x0605('0x31')][_0x0605('0x1b')]);}_0x541308[_0x0605('0x39')]=qs[_0x0605('0x3a')](_0x22c9d0[_0x0605('0x31')][_0x0605('0x3a')]);delete _0x22c9d0[_0x0605('0x31')][_0x0605('0x3a')];_0x541308[_0x0605('0x3b')]=qs[_0x0605('0x3c')](_[_0x0605('0x3d')](_0x22c9d0[_0x0605('0x31')],_0x62e74a['filters']),_0x4bffaf);if(_0x22c9d0[_0x0605('0x31')][_0x0605('0x3e')]){_0x541308[_0x0605('0x3b')]=_[_0x0605('0x3f')](_0x541308[_0x0605('0x3b')],{'$or':_[_0x0605('0x2b')](_0x4bffaf,function(_0x96133f){if(_0x96133f[_0x0605('0x2e')]!==_0x0605('0x40')){var _0x2da69e={};_0x2da69e[_0x96133f[_0x0605('0x29')]]={'$like':'%'+_0x22c9d0[_0x0605('0x31')][_0x0605('0x3e')]+'%'};return _0x2da69e;}})});}_0x541308=_[_0x0605('0x3f')]({},_0x541308,_0x22c9d0['options']);var _0x499a74={'where':_0x541308[_0x0605('0x3b')]};return db[_0x0605('0x2c')][_0x0605('0x1c')](_0x499a74)[_0x0605('0x26')](function(_0x5661c0){_0x3ba25f[_0x0605('0x1c')]=_0x5661c0;if(_0x22c9d0['query'][_0x0605('0x41')]){_0x541308[_0x0605('0x42')]=[{'all':!![]}];}return db['VoiceMusicOnHold'][_0x0605('0x43')](_0x541308);})['then'](function(_0x2d16a6){_0x3ba25f['rows']=_0x2d16a6;return _0x3ba25f;})[_0x0605('0x26')](respondWithFilteredResult(_0x37f2d4,_0x541308))['catch'](handleError(_0x37f2d4,null));};exports['show']=function(_0x1c6d6a,_0x47e21a){var _0x4324d9={'raw':![],'where':{'id':_0x1c6d6a[_0x0605('0x44')]['id']}},_0x497e7b={};_0x497e7b[_0x0605('0x30')]=_[_0x0605('0x32')](db[_0x0605('0x2c')]['rawAttributes']);_0x497e7b[_0x0605('0x31')]=_[_0x0605('0x32')](_0x1c6d6a[_0x0605('0x31')]);_0x497e7b['filters']=_[_0x0605('0x33')](_0x497e7b['model'],_0x497e7b[_0x0605('0x31')]);_0x4324d9[_0x0605('0x34')]=_[_0x0605('0x33')](_0x497e7b[_0x0605('0x30')],qs[_0x0605('0x35')](_0x1c6d6a[_0x0605('0x31')][_0x0605('0x35')]));_0x4324d9[_0x0605('0x34')]=_0x4324d9[_0x0605('0x34')]['length']?_0x4324d9[_0x0605('0x34')]:_0x497e7b['model'];if(_0x1c6d6a['query'][_0x0605('0x41')]){_0x4324d9[_0x0605('0x42')]=[{'all':!![]}];}_0x4324d9=_['merge']({},_0x4324d9,_0x1c6d6a[_0x0605('0x45')]);return db[_0x0605('0x2c')][_0x0605('0x46')](_0x4324d9)[_0x0605('0x26')](handleEntityNotFound(_0x47e21a,null))[_0x0605('0x26')](respondWithResult(_0x47e21a,null))[_0x0605('0x47')](handleError(_0x47e21a,null));};exports[_0x0605('0x22')]=function(_0x984ac5,_0x597208){if(_0x984ac5['body']['id']){delete _0x984ac5[_0x0605('0x48')]['id'];}return db[_0x0605('0x2c')][_0x0605('0x46')]({'where':{'id':_0x984ac5[_0x0605('0x44')]['id']}})[_0x0605('0x26')](handleEntityNotFound(_0x597208,null))[_0x0605('0x26')](saveUpdates(_0x984ac5[_0x0605('0x48')],null))['then'](respondWithResult(_0x597208,null))['catch'](handleError(_0x597208,null));};exports[_0x0605('0x49')]=function(_0x49c496,_0x3c97e3,_0xf9c61f){return db[_0x0605('0x4a')][_0x0605('0x4b')](function(_0x542f26){if(_0x49c496[_0x0605('0x48')]['mode']===_0x0605('0x4c')){_0x49c496['body'][_0x0605('0x4d')]=path['join'](config['root'],'server/files/moh',_0x49c496[_0x0605('0x48')]['name']);}return db[_0x0605('0x2c')][_0x0605('0x49')](_0x49c496[_0x0605('0x48')],{'transaction':_0x542f26})['then'](function(_0x3de49f){if(_0x49c496[_0x0605('0x48')][_0x0605('0x4e')]===_0x0605('0x4c')){fs[_0x0605('0x4f')](_0x3de49f[_0x0605('0x4d')],parseInt(_0x0605('0x50'),0x8));}var _0x2ba876=_0x49c496[_0x0605('0x51')][_0x0605('0x52')]({'plain':!![]});if(!_0x2ba876)throw new Error(_0x0605('0x53'));if(_0x2ba876['role']===_0x0605('0x51')){var _0x287f64=_0x3de49f[_0x0605('0x52')]({'plain':!![]});return db[_0x0605('0x54')][_0x0605('0x46')]({'where':{'name':_0x0605('0x24'),'userProfileId':_0x2ba876[_0x0605('0x55')]},'raw':!![]})[_0x0605('0x26')](function(_0x1cc5d0){if(_0x1cc5d0&&_0x1cc5d0[_0x0605('0x56')]===0x0){return db[_0x0605('0x25')][_0x0605('0x49')]({'name':_0x287f64[_0x0605('0x29')],'resourceId':_0x287f64['id'],'type':_0x1cc5d0[_0x0605('0x29')],'sectionId':_0x1cc5d0['id']},{})[_0x0605('0x26')](function(){return _0x3de49f;});}else{return _0x3de49f;}})[_0x0605('0x47')](function(_0x58cbb5){logger[_0x0605('0x28')](_0x0605('0x57'),_0x58cbb5);});}return _0x3de49f;});})[_0x0605('0x26')](respondWithResult(_0x3c97e3,0xc9))[_0x0605('0x47')](handleError(_0x3c97e3,null));};exports[_0x0605('0x23')]=function(_0x1e78bc,_0x35efb3,_0x14fb58){var _0x53b415;return db['VoiceMusicOnHold'][_0x0605('0x46')]({'where':{'id':_0x1e78bc['params']['id']}})[_0x0605('0x26')](function(_0x276631){if(_0x276631){return db[_0x0605('0x4a')][_0x0605('0x4b')](function(_0x1627d5){return _0x276631['destroy']({'transaction':_0x1627d5,'raw':!![]})[_0x0605('0x26')](function(_0x52fc5c){if(_0x52fc5c[_0x0605('0x4d')]){fs[_0x0605('0x58')](_0x52fc5c['directory'])['forEach'](function(_0xb9942a){fs['unlinkSync'](path[_0x0605('0x59')](_0x52fc5c[_0x0605('0x4d')],_0xb9942a));});fs[_0x0605('0x5a')](_0x52fc5c['directory']);}return _0x52fc5c;});})['catch'](function(_0x535bbe){throw new db[(_0x0605('0x5b'))][(_0x0605('0x5c'))](_0x535bbe[_0x0605('0x5d')]);});}})[_0x0605('0x26')](handleEntityNotFound(_0x35efb3,null))[_0x0605('0x26')](removeEntity(_0x35efb3,null))[_0x0605('0x47')](handleError(_0x35efb3,null));};exports[_0x0605('0x5e')]=function(_0x3811a3,_0x1ea1d2,_0x2ff9b5){return db['sequelize'][_0x0605('0x4b')](function(_0x21029b){var _0x141235;return db[_0x0605('0x2c')]['find']({'where':{'id':_0x3811a3[_0x0605('0x44')]['id']}})['then'](function(_0x358421){if(_0x358421){_0x141235=_0x358421;return _0x358421[_0x0605('0x5e')](_0x3811a3[_0x0605('0x48')]['id'],{'transaction':_0x21029b});}})[_0x0605('0x26')](function(_0x4ac57e){if(_0x4ac57e){return db[_0x0605('0x5f')][_0x0605('0x60')]({'where':{'id':_0x3811a3[_0x0605('0x48')]['id']},'attributes':['id',_0x0605('0x29'),_0x0605('0x61'),_0x0605('0x62'),'createdAt'],'raw':!![]});}})[_0x0605('0x26')](function(_0x3e4e92){if(_0x3e4e92){var _0x479f3a=path['join'](config['root'],_0x0605('0x63'),util[_0x0605('0x64')](_0x0605('0x65'),path[_0x0605('0x66')](_0x3e4e92[_0x0605('0x61')],path['extname'](_0x3e4e92[_0x0605('0x61')])),_0x3e4e92[_0x0605('0x62')]));var _0x46cc8d=path[_0x0605('0x59')](config[_0x0605('0x67')],_0x0605('0x68'),_0x141235['name'],util['format'](_0x0605('0x65'),_0x3e4e92[_0x0605('0x29')],_0x3e4e92[_0x0605('0x62')]));fs[_0x0605('0x69')](_0x479f3a,_0x46cc8d);return _0x3e4e92;}})['catch'](function(_0xab59c5){throw new db[(_0x0605('0x5b'))][(_0x0605('0x5c'))](_0xab59c5['message']);});})[_0x0605('0x26')](handleEntityNotFound(_0x1ea1d2,null))['then'](respondWithResult(_0x1ea1d2,0xc9))['catch'](handleError(_0x1ea1d2,null));};exports[_0x0605('0x6a')]=function(_0x5c88f0,_0x34661f,_0x4796f7){return db[_0x0605('0x4a')]['transaction'](function(_0x514d6f){var _0x2d4165;return db[_0x0605('0x2c')]['findOne']({'where':{'id':_0x5c88f0[_0x0605('0x44')]['id']}})[_0x0605('0x26')](handleEntityNotFound(_0x34661f,null))[_0x0605('0x26')](function(_0x16ab03){if(_0x16ab03){_0x2d4165=_0x16ab03;return _0x16ab03[_0x0605('0x6a')](_0x5c88f0[_0x0605('0x44')][_0x0605('0x6b')]);}})[_0x0605('0x26')](function(_0x3b9d23){if(_0x3b9d23){return db[_0x0605('0x5f')][_0x0605('0x60')]({'where':{'id':_0x5c88f0['params'][_0x0605('0x6b')]},'attributes':['id',_0x0605('0x29'),_0x0605('0x61'),_0x0605('0x62'),_0x0605('0x6c')],'raw':!![]});}})[_0x0605('0x26')](function(_0x22c8d1){if(_0x22c8d1){fs[_0x0605('0x6d')](path[_0x0605('0x59')](_0x2d4165[_0x0605('0x4d')],util[_0x0605('0x64')](_0x0605('0x65'),_0x22c8d1[_0x0605('0x29')],_0x22c8d1[_0x0605('0x62')])));return _0x22c8d1;}})['catch'](function(_0x37f190){throw new db[(_0x0605('0x5b'))][(_0x0605('0x5c'))](_0x37f190[_0x0605('0x5d')]);});})['then'](handleEntityNotFound(_0x34661f,null))[_0x0605('0x26')](respondWithStatusCode(_0x34661f,0xcc))[_0x0605('0x47')](handleError(_0x34661f,null));};exports[_0x0605('0x6e')]=function(_0x1eaba5,_0x256b7f,_0x3e2db6){var _0x628956={};var _0x4ba675={};var _0x376628;var _0x442632;return db[_0x0605('0x2c')][_0x0605('0x60')]({'where':{'id':_0x1eaba5[_0x0605('0x44')]['id']}})[_0x0605('0x26')](handleEntityNotFound(_0x256b7f,null))[_0x0605('0x26')](function(_0x4a400c){if(_0x4a400c){_0x376628=_0x4a400c;_0x4ba675[_0x0605('0x30')]=_[_0x0605('0x32')](db[_0x0605('0x5f')][_0x0605('0x2d')]);_0x4ba675['query']=_['keys'](_0x1eaba5[_0x0605('0x31')]);_0x4ba675[_0x0605('0x3c')]=_[_0x0605('0x33')](_0x4ba675[_0x0605('0x30')],_0x4ba675[_0x0605('0x31')]);_0x628956[_0x0605('0x34')]=_[_0x0605('0x33')](_0x4ba675[_0x0605('0x30')],qs[_0x0605('0x35')](_0x1eaba5[_0x0605('0x31')]['fields']));_0x628956[_0x0605('0x34')]=_0x628956['attributes'][_0x0605('0x36')]?_0x628956[_0x0605('0x34')]:_0x4ba675[_0x0605('0x30')];_0x628956['order']=qs['sort'](_0x1eaba5[_0x0605('0x31')][_0x0605('0x3a')]);_0x628956[_0x0605('0x3b')]=qs[_0x0605('0x3c')](_[_0x0605('0x3d')](_0x1eaba5[_0x0605('0x31')],_0x4ba675['filters']));if(_0x1eaba5[_0x0605('0x31')][_0x0605('0x3e')]){_0x628956[_0x0605('0x3b')]=_[_0x0605('0x3f')](_0x628956[_0x0605('0x3b')],{'$or':_[_0x0605('0x2b')](_0x628956['attributes'],function(_0x177bb){var _0x174345={};_0x174345[_0x177bb]={'$like':'%'+_0x1eaba5[_0x0605('0x31')][_0x0605('0x3e')]+'%'};return _0x174345;})});}_0x628956=_[_0x0605('0x3f')]({},_0x628956,_0x1eaba5['options']);return _0x376628[_0x0605('0x6e')](_0x628956);}})[_0x0605('0x26')](function(_0x534cc4){if(_0x534cc4){_0x442632=_0x534cc4[_0x0605('0x36')];if(!_0x1eaba5['query'][_0x0605('0x37')](_0x0605('0x38'))){_0x628956[_0x0605('0x1a')]=qs[_0x0605('0x1a')](_0x1eaba5['query']['limit']);_0x628956[_0x0605('0x1b')]=qs[_0x0605('0x1b')](_0x1eaba5['query'][_0x0605('0x1b')]);}return _0x376628[_0x0605('0x6e')](_0x628956);}})[_0x0605('0x26')](function(_0x40f083){if(_0x40f083){return _0x40f083?{'count':_0x442632,'rows':_0x40f083}:null;}})[_0x0605('0x26')](respondWithResult(_0x256b7f,null))[_0x0605('0x47')](handleError(_0x256b7f,null));};
\ No newline at end of file
+var _0x2f4e=['createdAt','server/files/sounds/converted','basename','extname','server/files/moh','format','%s.%s','symlinkSync','id2','getSounds','pick','hasOwnProperty','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','to-csv','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','save','update','then','get','MusicOnHolds','destroy','error','stack','name','send','index','map','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','fields','attributes','length','nolimit','order','sort','where','filter','merge','options','includeAll','VoiceMusicOnHold','findAll','rows','catch','show','params','include','body','find','sequelize','transaction','mode','files','directory','create','mkdirSync','0777','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','UserProfileResource','readdirSync','forEach','unlinkSync','join','rmdirSync','Sequelize','ValidationError','message','addSound','Sound','findOne','save_name','converted_format'];(function(_0x5cebc0,_0x274cc6){var _0x1772c5=function(_0xdd138c){while(--_0xdd138c){_0x5cebc0['push'](_0x5cebc0['shift']());}};_0x1772c5(++_0x274cc6);}(_0x2f4e,0x1d4));var _0xe2f4=function(_0x497998,_0x3e9a00){_0x497998=_0x497998-0x0;var _0x4871fb=_0x2f4e[_0x497998];return _0x4871fb;};'use strict';var emlformat=require(_0xe2f4('0x0'));var rimraf=require(_0xe2f4('0x1'));var zipdir=require(_0xe2f4('0x2'));var jsonpatch=require(_0xe2f4('0x3'));var rp=require('request-promise');var moment=require(_0xe2f4('0x4'));var BPromise=require(_0xe2f4('0x5'));var Mustache=require(_0xe2f4('0x6'));var util=require('util');var path=require('path');var sox=require('sox');var csv=require(_0xe2f4('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xe2f4('0x8'));var _=require(_0xe2f4('0x9'));var squel=require('squel');var crypto=require(_0xe2f4('0xa'));var jsforce=require(_0xe2f4('0xb'));var deskjs=require(_0xe2f4('0xc'));var toCsv=require('to-csv');var querystring=require(_0xe2f4('0xd'));var Papa=require(_0xe2f4('0xe'));var Redis=require(_0xe2f4('0xf'));var authService=require(_0xe2f4('0x10'));var qs=require('../../components/parsers/qs');var as=require(_0xe2f4('0x11'));var hardwareService=require(_0xe2f4('0x12'));var logger=require(_0xe2f4('0x13'))(_0xe2f4('0x14'));var utils=require(_0xe2f4('0x15'));var config=require(_0xe2f4('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0xe2f4('0x17'))['db'];function respondWithStatusCode(_0x395ea1,_0x3f0d55){_0x3f0d55=_0x3f0d55||0xcc;return function(_0x5e669f){if(_0x5e669f){return _0x395ea1[_0xe2f4('0x18')](_0x3f0d55);}return _0x395ea1[_0xe2f4('0x19')](_0x3f0d55)[_0xe2f4('0x1a')]();};}function respondWithResult(_0x2a00d1,_0x64ef82){_0x64ef82=_0x64ef82||0xc8;return function(_0x52daf1){if(_0x52daf1){return _0x2a00d1[_0xe2f4('0x19')](_0x64ef82)[_0xe2f4('0x1b')](_0x52daf1);}};}function respondWithFilteredResult(_0x49bd2d,_0x23a640){return function(_0x2c7bad){if(_0x2c7bad){var _0x2a2676=typeof _0x23a640[_0xe2f4('0x1c')]===_0xe2f4('0x1d')&&typeof _0x23a640['limit']===_0xe2f4('0x1d');var _0x224ba4=_0x2c7bad['count'];var _0x32b8ac=_0x2a2676?0x0:_0x23a640[_0xe2f4('0x1c')];var _0x22ad53=_0x2a2676?_0x2c7bad[_0xe2f4('0x1e')]:_0x23a640[_0xe2f4('0x1c')]+_0x23a640[_0xe2f4('0x1f')];var _0x4c3c41;if(_0x22ad53>=_0x224ba4){_0x22ad53=_0x224ba4;_0x4c3c41=0xc8;}else{_0x4c3c41=0xce;}_0x49bd2d[_0xe2f4('0x19')](_0x4c3c41);return _0x49bd2d[_0xe2f4('0x20')](_0xe2f4('0x21'),_0x32b8ac+'-'+_0x22ad53+'/'+_0x224ba4)[_0xe2f4('0x1b')](_0x2c7bad);}return null;};}function patchUpdates(_0x9b2ed5){return function(_0x30a21d){try{jsonpatch[_0xe2f4('0x22')](_0x30a21d,_0x9b2ed5,!![]);}catch(_0x20b5ff){return BPromise['reject'](_0x20b5ff);}return _0x30a21d[_0xe2f4('0x23')]();};}function saveUpdates(_0x7e34c2,_0x574bf2){return function(_0x44b13d){if(_0x44b13d){return _0x44b13d[_0xe2f4('0x24')](_0x7e34c2)['then'](function(_0x1b5b0e){return _0x1b5b0e;});}return null;};}function removeEntity(_0x1acd5d,_0x268a3f){return function(_0x3c3362){if(_0x3c3362){return _0x3c3362['destroy']()[_0xe2f4('0x25')](function(){var _0x7ae96f=_0x3c3362[_0xe2f4('0x26')]({'plain':!![]});var _0x4d766c=_0xe2f4('0x27');return db['UserProfileResource'][_0xe2f4('0x28')]({'where':{'type':_0x4d766c,'resourceId':_0x7ae96f['id']}})['then'](function(){return _0x3c3362;});})[_0xe2f4('0x25')](function(){_0x1acd5d[_0xe2f4('0x19')](0xcc)[_0xe2f4('0x1a')]();});}};}function handleEntityNotFound(_0x11faae,_0x5db904){return function(_0x3cca00){if(!_0x3cca00){_0x11faae[_0xe2f4('0x18')](0x194);}return _0x3cca00;};}function handleError(_0x1bd628,_0xa8c1a5){_0xa8c1a5=_0xa8c1a5||0x1f4;return function(_0x11e6b4){logger[_0xe2f4('0x29')](_0x11e6b4[_0xe2f4('0x2a')]);if(_0x11e6b4[_0xe2f4('0x2b')]){delete _0x11e6b4[_0xe2f4('0x2b')];}_0x1bd628[_0xe2f4('0x19')](_0xa8c1a5)[_0xe2f4('0x2c')](_0x11e6b4);};}exports[_0xe2f4('0x2d')]=function(_0x2aa58d,_0x4a084b){var _0x3ddc8a={},_0x35df4e={},_0x592d83={'count':0x0,'rows':[]};var _0x197604=_[_0xe2f4('0x2e')](db['VoiceMusicOnHold'][_0xe2f4('0x2f')],function(_0x1a8a2d){return{'name':_0x1a8a2d[_0xe2f4('0x30')],'type':_0x1a8a2d[_0xe2f4('0x31')][_0xe2f4('0x32')]};});_0x35df4e[_0xe2f4('0x33')]=_['map'](_0x197604,_0xe2f4('0x2b'));_0x35df4e['query']=_[_0xe2f4('0x34')](_0x2aa58d[_0xe2f4('0x35')]);_0x35df4e[_0xe2f4('0x36')]=_[_0xe2f4('0x37')](_0x35df4e[_0xe2f4('0x33')],_0x35df4e[_0xe2f4('0x35')]);_0x3ddc8a['attributes']=_[_0xe2f4('0x37')](_0x35df4e[_0xe2f4('0x33')],qs[_0xe2f4('0x38')](_0x2aa58d[_0xe2f4('0x35')]['fields']));_0x3ddc8a['attributes']=_0x3ddc8a[_0xe2f4('0x39')][_0xe2f4('0x3a')]?_0x3ddc8a[_0xe2f4('0x39')]:_0x35df4e[_0xe2f4('0x33')];if(!_0x2aa58d['query']['hasOwnProperty'](_0xe2f4('0x3b'))){_0x3ddc8a[_0xe2f4('0x1f')]=qs[_0xe2f4('0x1f')](_0x2aa58d[_0xe2f4('0x35')][_0xe2f4('0x1f')]);_0x3ddc8a[_0xe2f4('0x1c')]=qs[_0xe2f4('0x1c')](_0x2aa58d[_0xe2f4('0x35')][_0xe2f4('0x1c')]);}_0x3ddc8a[_0xe2f4('0x3c')]=qs['sort'](_0x2aa58d['query'][_0xe2f4('0x3d')]);delete _0x2aa58d[_0xe2f4('0x35')][_0xe2f4('0x3d')];_0x3ddc8a[_0xe2f4('0x3e')]=qs[_0xe2f4('0x36')](_['pick'](_0x2aa58d[_0xe2f4('0x35')],_0x35df4e[_0xe2f4('0x36')]),_0x197604);if(_0x2aa58d[_0xe2f4('0x35')][_0xe2f4('0x3f')]){_0x3ddc8a[_0xe2f4('0x3e')]=_[_0xe2f4('0x40')](_0x3ddc8a[_0xe2f4('0x3e')],{'$or':_['map'](_0x197604,function(_0x117186){if(_0x117186[_0xe2f4('0x31')]!=='VIRTUAL'){var _0x3331d2={};_0x3331d2[_0x117186[_0xe2f4('0x2b')]]={'$like':'%'+_0x2aa58d[_0xe2f4('0x35')][_0xe2f4('0x3f')]+'%'};return _0x3331d2;}})});}_0x3ddc8a=_[_0xe2f4('0x40')]({},_0x3ddc8a,_0x2aa58d[_0xe2f4('0x41')]);var _0x1d7b9b={'where':_0x3ddc8a[_0xe2f4('0x3e')]};return db['VoiceMusicOnHold'][_0xe2f4('0x1e')](_0x1d7b9b)[_0xe2f4('0x25')](function(_0x5c6d91){_0x592d83['count']=_0x5c6d91;if(_0x2aa58d[_0xe2f4('0x35')][_0xe2f4('0x42')]){_0x3ddc8a['include']=[{'all':!![]}];}return db[_0xe2f4('0x43')][_0xe2f4('0x44')](_0x3ddc8a);})[_0xe2f4('0x25')](function(_0x3b141e){_0x592d83[_0xe2f4('0x45')]=_0x3b141e;return _0x592d83;})[_0xe2f4('0x25')](respondWithFilteredResult(_0x4a084b,_0x3ddc8a))[_0xe2f4('0x46')](handleError(_0x4a084b,null));};exports[_0xe2f4('0x47')]=function(_0x3a70bb,_0x97001f){var _0x3b33d7={'raw':![],'where':{'id':_0x3a70bb[_0xe2f4('0x48')]['id']}},_0x2fca5e={};_0x2fca5e['model']=_[_0xe2f4('0x34')](db['VoiceMusicOnHold'][_0xe2f4('0x2f')]);_0x2fca5e['query']=_[_0xe2f4('0x34')](_0x3a70bb[_0xe2f4('0x35')]);_0x2fca5e['filters']=_[_0xe2f4('0x37')](_0x2fca5e[_0xe2f4('0x33')],_0x2fca5e[_0xe2f4('0x35')]);_0x3b33d7[_0xe2f4('0x39')]=_[_0xe2f4('0x37')](_0x2fca5e['model'],qs[_0xe2f4('0x38')](_0x3a70bb['query']['fields']));_0x3b33d7['attributes']=_0x3b33d7[_0xe2f4('0x39')]['length']?_0x3b33d7[_0xe2f4('0x39')]:_0x2fca5e['model'];if(_0x3a70bb[_0xe2f4('0x35')][_0xe2f4('0x42')]){_0x3b33d7[_0xe2f4('0x49')]=[{'all':!![]}];}_0x3b33d7=_[_0xe2f4('0x40')]({},_0x3b33d7,_0x3a70bb[_0xe2f4('0x41')]);return db[_0xe2f4('0x43')]['find'](_0x3b33d7)['then'](handleEntityNotFound(_0x97001f,null))[_0xe2f4('0x25')](respondWithResult(_0x97001f,null))['catch'](handleError(_0x97001f,null));};exports['update']=function(_0x27d305,_0x45bd2c){if(_0x27d305[_0xe2f4('0x4a')]['id']){delete _0x27d305['body']['id'];}return db[_0xe2f4('0x43')][_0xe2f4('0x4b')]({'where':{'id':_0x27d305['params']['id']}})[_0xe2f4('0x25')](handleEntityNotFound(_0x45bd2c,null))[_0xe2f4('0x25')](saveUpdates(_0x27d305[_0xe2f4('0x4a')],null))[_0xe2f4('0x25')](respondWithResult(_0x45bd2c,null))[_0xe2f4('0x46')](handleError(_0x45bd2c,null));};exports['create']=function(_0x158f3d,_0x533d81,_0x35da6f){return db[_0xe2f4('0x4c')][_0xe2f4('0x4d')](function(_0x48b08c){if(_0x158f3d[_0xe2f4('0x4a')][_0xe2f4('0x4e')]===_0xe2f4('0x4f')){_0x158f3d['body'][_0xe2f4('0x50')]=path['join'](config['root'],'server/files/moh',_0x158f3d[_0xe2f4('0x4a')][_0xe2f4('0x2b')]);}return db[_0xe2f4('0x43')][_0xe2f4('0x51')](_0x158f3d[_0xe2f4('0x4a')],{'transaction':_0x48b08c})['then'](function(_0x8799a9){if(_0x158f3d[_0xe2f4('0x4a')][_0xe2f4('0x4e')]==='files'){fs[_0xe2f4('0x52')](_0x8799a9['directory'],parseInt(_0xe2f4('0x53'),0x8));}var _0x516800=_0x158f3d[_0xe2f4('0x54')]['get']({'plain':!![]});if(!_0x516800)throw new Error(_0xe2f4('0x55'));if(_0x516800[_0xe2f4('0x56')]===_0xe2f4('0x54')){var _0x5576f8=_0x8799a9[_0xe2f4('0x26')]({'plain':!![]});return db[_0xe2f4('0x57')][_0xe2f4('0x4b')]({'where':{'name':_0xe2f4('0x27'),'userProfileId':_0x516800['userProfileId']},'raw':!![]})[_0xe2f4('0x25')](function(_0xc7e2c1){if(_0xc7e2c1&&_0xc7e2c1['autoAssociation']===0x0){return db[_0xe2f4('0x58')]['create']({'name':_0x5576f8[_0xe2f4('0x2b')],'resourceId':_0x5576f8['id'],'type':_0xc7e2c1[_0xe2f4('0x2b')],'sectionId':_0xc7e2c1['id']},{})['then'](function(){return _0x8799a9;});}else{return _0x8799a9;}})[_0xe2f4('0x46')](function(_0x164395){logger[_0xe2f4('0x29')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x164395);});}return _0x8799a9;});})[_0xe2f4('0x25')](respondWithResult(_0x533d81,0xc9))[_0xe2f4('0x46')](handleError(_0x533d81,null));};exports[_0xe2f4('0x28')]=function(_0x12c4d2,_0x2288b9,_0x3f8dcb){var _0x23e8c0;return db[_0xe2f4('0x43')][_0xe2f4('0x4b')]({'where':{'id':_0x12c4d2[_0xe2f4('0x48')]['id']}})[_0xe2f4('0x25')](function(_0x4e01fd){if(_0x4e01fd){return db[_0xe2f4('0x4c')][_0xe2f4('0x4d')](function(_0x4c863c){return _0x4e01fd[_0xe2f4('0x28')]({'transaction':_0x4c863c,'raw':!![]})['then'](function(_0x531777){if(_0x531777[_0xe2f4('0x50')]){fs[_0xe2f4('0x59')](_0x531777[_0xe2f4('0x50')])[_0xe2f4('0x5a')](function(_0x17b2c3){fs[_0xe2f4('0x5b')](path[_0xe2f4('0x5c')](_0x531777[_0xe2f4('0x50')],_0x17b2c3));});fs[_0xe2f4('0x5d')](_0x531777['directory']);}return _0x531777;});})[_0xe2f4('0x46')](function(_0x2087d4){throw new db[(_0xe2f4('0x5e'))][(_0xe2f4('0x5f'))](_0x2087d4[_0xe2f4('0x60')]);});}})[_0xe2f4('0x25')](handleEntityNotFound(_0x2288b9,null))[_0xe2f4('0x25')](removeEntity(_0x2288b9,null))[_0xe2f4('0x46')](handleError(_0x2288b9,null));};exports[_0xe2f4('0x61')]=function(_0x174ed2,_0x4465a9,_0x20f612){return db[_0xe2f4('0x4c')]['transaction'](function(_0x55c003){var _0xc83094;return db[_0xe2f4('0x43')][_0xe2f4('0x4b')]({'where':{'id':_0x174ed2[_0xe2f4('0x48')]['id']}})[_0xe2f4('0x25')](function(_0x3232a3){if(_0x3232a3){_0xc83094=_0x3232a3;return _0x3232a3['addSound'](_0x174ed2[_0xe2f4('0x4a')]['id'],{'transaction':_0x55c003});}})[_0xe2f4('0x25')](function(_0x25ada0){if(_0x25ada0){return db[_0xe2f4('0x62')][_0xe2f4('0x63')]({'where':{'id':_0x174ed2['body']['id']},'attributes':['id',_0xe2f4('0x2b'),_0xe2f4('0x64'),_0xe2f4('0x65'),_0xe2f4('0x66')],'raw':!![]});}})[_0xe2f4('0x25')](function(_0x34cca0){if(_0x34cca0){var _0x512188=path[_0xe2f4('0x5c')](config['root'],_0xe2f4('0x67'),util['format']('%s.%s',path[_0xe2f4('0x68')](_0x34cca0[_0xe2f4('0x64')],path[_0xe2f4('0x69')](_0x34cca0[_0xe2f4('0x64')])),_0x34cca0[_0xe2f4('0x65')]));var _0x1a0281=path[_0xe2f4('0x5c')](config['root'],_0xe2f4('0x6a'),_0xc83094[_0xe2f4('0x2b')],util[_0xe2f4('0x6b')](_0xe2f4('0x6c'),_0x34cca0[_0xe2f4('0x2b')],_0x34cca0['converted_format']));fs[_0xe2f4('0x6d')](_0x512188,_0x1a0281);return _0x34cca0;}})[_0xe2f4('0x46')](function(_0x1880c8){throw new db['Sequelize'][(_0xe2f4('0x5f'))](_0x1880c8[_0xe2f4('0x60')]);});})[_0xe2f4('0x25')](handleEntityNotFound(_0x4465a9,null))[_0xe2f4('0x25')](respondWithResult(_0x4465a9,0xc9))[_0xe2f4('0x46')](handleError(_0x4465a9,null));};exports['removeSound']=function(_0x5c048f,_0x1d26a4,_0x22eef5){return db[_0xe2f4('0x4c')][_0xe2f4('0x4d')](function(_0x4b59e1){var _0x2516f3;return db[_0xe2f4('0x43')]['findOne']({'where':{'id':_0x5c048f[_0xe2f4('0x48')]['id']}})[_0xe2f4('0x25')](handleEntityNotFound(_0x1d26a4,null))[_0xe2f4('0x25')](function(_0x558579){if(_0x558579){_0x2516f3=_0x558579;return _0x558579['removeSound'](_0x5c048f[_0xe2f4('0x48')][_0xe2f4('0x6e')]);}})['then'](function(_0x20fc2){if(_0x20fc2){return db[_0xe2f4('0x62')]['findOne']({'where':{'id':_0x5c048f[_0xe2f4('0x48')][_0xe2f4('0x6e')]},'attributes':['id','name','save_name',_0xe2f4('0x65'),_0xe2f4('0x66')],'raw':!![]});}})[_0xe2f4('0x25')](function(_0x36fe25){if(_0x36fe25){fs['unlinkSync'](path[_0xe2f4('0x5c')](_0x2516f3[_0xe2f4('0x50')],util['format'](_0xe2f4('0x6c'),_0x36fe25[_0xe2f4('0x2b')],_0x36fe25[_0xe2f4('0x65')])));return _0x36fe25;}})[_0xe2f4('0x46')](function(_0x4cb51c){throw new db[(_0xe2f4('0x5e'))]['ValidationError'](_0x4cb51c[_0xe2f4('0x60')]);});})[_0xe2f4('0x25')](handleEntityNotFound(_0x1d26a4,null))[_0xe2f4('0x25')](respondWithStatusCode(_0x1d26a4,0xcc))[_0xe2f4('0x46')](handleError(_0x1d26a4,null));};exports[_0xe2f4('0x6f')]=function(_0x8b06af,_0x24e649,_0x1fabc0){var _0x1c5e3a={};var _0x4c61b9={};var _0x4e520;var _0x4349f6;return db[_0xe2f4('0x43')][_0xe2f4('0x63')]({'where':{'id':_0x8b06af[_0xe2f4('0x48')]['id']}})[_0xe2f4('0x25')](handleEntityNotFound(_0x24e649,null))[_0xe2f4('0x25')](function(_0x626eb3){if(_0x626eb3){_0x4e520=_0x626eb3;_0x4c61b9[_0xe2f4('0x33')]=_[_0xe2f4('0x34')](db[_0xe2f4('0x62')][_0xe2f4('0x2f')]);_0x4c61b9['query']=_['keys'](_0x8b06af[_0xe2f4('0x35')]);_0x4c61b9[_0xe2f4('0x36')]=_['intersection'](_0x4c61b9[_0xe2f4('0x33')],_0x4c61b9['query']);_0x1c5e3a[_0xe2f4('0x39')]=_['intersection'](_0x4c61b9[_0xe2f4('0x33')],qs[_0xe2f4('0x38')](_0x8b06af['query'][_0xe2f4('0x38')]));_0x1c5e3a[_0xe2f4('0x39')]=_0x1c5e3a[_0xe2f4('0x39')]['length']?_0x1c5e3a[_0xe2f4('0x39')]:_0x4c61b9[_0xe2f4('0x33')];_0x1c5e3a[_0xe2f4('0x3c')]=qs[_0xe2f4('0x3d')](_0x8b06af[_0xe2f4('0x35')][_0xe2f4('0x3d')]);_0x1c5e3a[_0xe2f4('0x3e')]=qs['filters'](_[_0xe2f4('0x70')](_0x8b06af['query'],_0x4c61b9[_0xe2f4('0x36')]));if(_0x8b06af[_0xe2f4('0x35')][_0xe2f4('0x3f')]){_0x1c5e3a[_0xe2f4('0x3e')]=_['merge'](_0x1c5e3a[_0xe2f4('0x3e')],{'$or':_[_0xe2f4('0x2e')](_0x1c5e3a[_0xe2f4('0x39')],function(_0x2469f2){var _0x3e2483={};_0x3e2483[_0x2469f2]={'$like':'%'+_0x8b06af[_0xe2f4('0x35')][_0xe2f4('0x3f')]+'%'};return _0x3e2483;})});}_0x1c5e3a=_['merge']({},_0x1c5e3a,_0x8b06af[_0xe2f4('0x41')]);return _0x4e520[_0xe2f4('0x6f')](_0x1c5e3a);}})[_0xe2f4('0x25')](function(_0x5a200a){if(_0x5a200a){_0x4349f6=_0x5a200a[_0xe2f4('0x3a')];if(!_0x8b06af[_0xe2f4('0x35')][_0xe2f4('0x71')](_0xe2f4('0x3b'))){_0x1c5e3a[_0xe2f4('0x1f')]=qs[_0xe2f4('0x1f')](_0x8b06af['query'][_0xe2f4('0x1f')]);_0x1c5e3a['offset']=qs[_0xe2f4('0x1c')](_0x8b06af[_0xe2f4('0x35')][_0xe2f4('0x1c')]);}return _0x4e520[_0xe2f4('0x6f')](_0x1c5e3a);}})[_0xe2f4('0x25')](function(_0x2a7433){if(_0x2a7433){return _0x2a7433?{'count':_0x4349f6,'rows':_0x2a7433}:null;}})[_0xe2f4('0x25')](respondWithResult(_0x24e649,null))[_0xe2f4('0x46')](handleError(_0x24e649,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xec5f=['request-promise','path','rimraf','../../config/environment','exports','VoiceMusicOnHold','voice_musiconhold','lodash','api','bluebird'];(function(_0x22bd19,_0x41d44a){var _0x2af304=function(_0x1b1572){while(--_0x1b1572){_0x22bd19['push'](_0x22bd19['shift']());}};_0x2af304(++_0x41d44a);}(_0xec5f,0x89));var _0xfec5=function(_0x4d2cd8,_0x13a00d){_0x4d2cd8=_0x4d2cd8-0x0;var _0x821b27=_0xec5f[_0x4d2cd8];return _0x821b27;};'use strict';var _=require(_0xfec5('0x0'));var util=require('util');var logger=require('../../config/logger')(_0xfec5('0x1'));var moment=require('moment');var BPromise=require(_0xfec5('0x2'));var rp=require(_0xfec5('0x3'));var fs=require('fs');var path=require(_0xfec5('0x4'));var rimraf=require(_0xfec5('0x5'));var config=require(_0xfec5('0x6'));var attributes=require('./voiceMusicOnHold.attributes');module[_0xfec5('0x7')]=function(_0x5e605c,_0x1d65ee){return _0x5e605c['define'](_0xfec5('0x8'),attributes,{'tableName':_0xfec5('0x9'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x4f26=['lodash','../../config/logger','api','moment','path','rimraf','./voiceMusicOnHold.attributes','exports','define','VoiceMusicOnHold'];(function(_0x4db509,_0x3b167a){var _0x2fdd98=function(_0x215de6){while(--_0x215de6){_0x4db509['push'](_0x4db509['shift']());}};_0x2fdd98(++_0x3b167a);}(_0x4f26,0xdc));var _0x64f2=function(_0x7da66,_0x270b1d){_0x7da66=_0x7da66-0x0;var _0x153ce3=_0x4f26[_0x7da66];return _0x153ce3;};'use strict';var _=require(_0x64f2('0x0'));var util=require('util');var logger=require(_0x64f2('0x1'))(_0x64f2('0x2'));var moment=require(_0x64f2('0x3'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0x64f2('0x4'));var rimraf=require(_0x64f2('0x5'));var config=require('../../config/environment');var attributes=require(_0x64f2('0x6'));module[_0x64f2('0x7')]=function(_0x3906ae,_0x1c7103){return _0x3906ae[_0x64f2('0x8')](_0x64f2('0x9'),attributes,{'tableName':'voice_musiconhold','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x70e0=['code','VoiceMusicOnHold,\x20%s,\x20%s','message','result','catch','lodash','util','moment','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','client','request','then','info','debug','VoiceMusicOnHold,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error'];(function(_0x4b9f10,_0x55c1f7){var _0x3960ae=function(_0x1c23b4){while(--_0x1c23b4){_0x4b9f10['push'](_0x4b9f10['shift']());}};_0x3960ae(++_0x55c1f7);}(_0x70e0,0x17b));var _0x070e=function(_0x282ed8,_0x58d1ad){_0x282ed8=_0x282ed8-0x0;var _0x3c5f93=_0x70e0[_0x282ed8];return _0x3c5f93;};'use strict';var _=require(_0x070e('0x0'));var util=require(_0x070e('0x1'));var moment=require(_0x070e('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x070e('0x3'));var db=require(_0x070e('0x4'))['db'];var utils=require(_0x070e('0x5'));var logger=require(_0x070e('0x6'))('rpc');var config=require(_0x070e('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x070e('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x56e420,_0x5032e5,_0x35ab0c){return new BPromise(function(_0x1e11f0,_0x604664){return client[_0x070e('0x9')](_0x56e420,_0x35ab0c)[_0x070e('0xa')](function(_0x68a09e){logger[_0x070e('0xb')]('VoiceMusicOnHold,\x20%s,\x20%s',_0x5032e5,'request\x20sent');logger[_0x070e('0xc')](_0x070e('0xd'),_0x5032e5,_0x070e('0xe'),JSON[_0x070e('0xf')](_0x68a09e));if(_0x68a09e[_0x070e('0x10')]){if(_0x68a09e[_0x070e('0x10')][_0x070e('0x11')]===0x1f4){logger[_0x070e('0x10')](_0x070e('0x12'),_0x5032e5,_0x68a09e[_0x070e('0x10')][_0x070e('0x13')]);return _0x604664(_0x68a09e['error']['message']);}logger[_0x070e('0x10')]('VoiceMusicOnHold,\x20%s,\x20%s',_0x5032e5,_0x68a09e['error']['message']);return _0x1e11f0(_0x68a09e[_0x070e('0x10')][_0x070e('0x13')]);}else{logger['info']('VoiceMusicOnHold,\x20%s,\x20%s',_0x5032e5,_0x070e('0xe'));_0x1e11f0(_0x68a09e[_0x070e('0x14')][_0x070e('0x13')]);}})[_0x070e('0x15')](function(_0x5bc71e){logger['error'](_0x070e('0x12'),_0x5032e5,_0x5bc71e);_0x604664(_0x5bc71e);});});}
\ No newline at end of file
+var _0x70e0=['code','VoiceMusicOnHold,\x20%s,\x20%s','message','result','catch','lodash','util','moment','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','client','request','then','info','debug','VoiceMusicOnHold,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error'];(function(_0x203881,_0x3e708e){var _0xb21f65=function(_0x5f3d02){while(--_0x5f3d02){_0x203881['push'](_0x203881['shift']());}};_0xb21f65(++_0x3e708e);}(_0x70e0,0x17b));var _0x070e=function(_0x22536f,_0x2853c8){_0x22536f=_0x22536f-0x0;var _0x5afe0f=_0x70e0[_0x22536f];return _0x5afe0f;};'use strict';var _=require(_0x070e('0x0'));var util=require(_0x070e('0x1'));var moment=require(_0x070e('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x070e('0x3'));var db=require(_0x070e('0x4'))['db'];var utils=require(_0x070e('0x5'));var logger=require(_0x070e('0x6'))('rpc');var config=require(_0x070e('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x070e('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x56e420,_0x5032e5,_0x35ab0c){return new BPromise(function(_0x1e11f0,_0x604664){return client[_0x070e('0x9')](_0x56e420,_0x35ab0c)[_0x070e('0xa')](function(_0x68a09e){logger[_0x070e('0xb')]('VoiceMusicOnHold,\x20%s,\x20%s',_0x5032e5,'request\x20sent');logger[_0x070e('0xc')](_0x070e('0xd'),_0x5032e5,_0x070e('0xe'),JSON[_0x070e('0xf')](_0x68a09e));if(_0x68a09e[_0x070e('0x10')]){if(_0x68a09e[_0x070e('0x10')][_0x070e('0x11')]===0x1f4){logger[_0x070e('0x10')](_0x070e('0x12'),_0x5032e5,_0x68a09e[_0x070e('0x10')][_0x070e('0x13')]);return _0x604664(_0x68a09e['error']['message']);}logger[_0x070e('0x10')]('VoiceMusicOnHold,\x20%s,\x20%s',_0x5032e5,_0x68a09e['error']['message']);return _0x1e11f0(_0x68a09e[_0x070e('0x10')][_0x070e('0x13')]);}else{logger['info']('VoiceMusicOnHold,\x20%s,\x20%s',_0x5032e5,_0x070e('0xe'));_0x1e11f0(_0x68a09e[_0x070e('0x14')][_0x070e('0x13')]);}})[_0x070e('0x15')](function(_0x5bc71e){logger['error'](_0x070e('0x12'),_0x5032e5,_0x5bc71e);_0x604664(_0x5bc71e);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xef8b=['getTeams','post','create','addTeams','put','/:id','delete','removeAgents','removeTeams','exports','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./voicePrefix.controller','get','index','/describe','describe','/:id/users','isAuthenticated','getAgents','/:id/teams'];(function(_0x2f0e4c,_0x31c847){var _0x61a2d6=function(_0xfb0361){while(--_0xfb0361){_0x2f0e4c['push'](_0x2f0e4c['shift']());}};_0x61a2d6(++_0x31c847);}(_0xef8b,0x192));var _0xbef8=function(_0xe896bf,_0x4f8e5e){_0xe896bf=_0xe896bf-0x0;var _0x4c7a8a=_0xef8b[_0xe896bf];return _0x4c7a8a;};'use strict';var multer=require('multer');var util=require(_0xbef8('0x0'));var path=require(_0xbef8('0x1'));var timeout=require(_0xbef8('0x2'));var express=require(_0xbef8('0x3'));var router=express[_0xbef8('0x4')]();var fs_extra=require(_0xbef8('0x5'));var auth=require(_0xbef8('0x6'));var interaction=require(_0xbef8('0x7'));var config=require(_0xbef8('0x8'));var controller=require(_0xbef8('0x9'));router[_0xbef8('0xa')]('/',auth['isAuthenticated'](),controller[_0xbef8('0xb')]);router[_0xbef8('0xa')](_0xbef8('0xc'),auth['isAuthenticated'](),controller[_0xbef8('0xd')]);router[_0xbef8('0xa')]('/:id',auth['isAuthenticated'](),controller['show']);router[_0xbef8('0xa')](_0xbef8('0xe'),auth[_0xbef8('0xf')](),controller[_0xbef8('0x10')]);router[_0xbef8('0xa')](_0xbef8('0x11'),auth[_0xbef8('0xf')](),controller[_0xbef8('0x12')]);router[_0xbef8('0x13')]('/',auth['isAuthenticated'](),controller[_0xbef8('0x14')]);router[_0xbef8('0x13')](_0xbef8('0xe'),auth['isAuthenticated'](),controller['addAgents']);router['post'](_0xbef8('0x11'),auth['isAuthenticated'](),controller[_0xbef8('0x15')]);router[_0xbef8('0x16')]('/:id',auth[_0xbef8('0xf')](),controller['update']);router['delete'](_0xbef8('0x17'),auth['isAuthenticated'](),controller['destroy']);router[_0xbef8('0x18')](_0xbef8('0xe'),auth[_0xbef8('0xf')](),controller[_0xbef8('0x19')]);router[_0xbef8('0x18')](_0xbef8('0x11'),auth['isAuthenticated'](),controller[_0xbef8('0x1a')]);module[_0xbef8('0x1b')]=router;
\ No newline at end of file
+var _0x9589=['./voicePrefix.controller','get','isAuthenticated','index','/describe','describe','/:id','show','/:id/users','getAgents','/:id/teams','getTeams','post','create','addAgents','addTeams','put','delete','removeAgents','removeTeams','multer','util','path','connect-timeout','express','fs-extra','../../components/auth/service','../../components/interaction/service'];(function(_0x1318c4,_0x5564b1){var _0x13e831=function(_0x4f7aaa){while(--_0x4f7aaa){_0x1318c4['push'](_0x1318c4['shift']());}};_0x13e831(++_0x5564b1);}(_0x9589,0xbc));var _0x9958=function(_0x472b29,_0x1b8ae7){_0x472b29=_0x472b29-0x0;var _0x37e0f2=_0x9589[_0x472b29];return _0x37e0f2;};'use strict';var multer=require(_0x9958('0x0'));var util=require(_0x9958('0x1'));var path=require(_0x9958('0x2'));var timeout=require(_0x9958('0x3'));var express=require(_0x9958('0x4'));var router=express['Router']();var fs_extra=require(_0x9958('0x5'));var auth=require(_0x9958('0x6'));var interaction=require(_0x9958('0x7'));var config=require('../../config/environment');var controller=require(_0x9958('0x8'));router[_0x9958('0x9')]('/',auth[_0x9958('0xa')](),controller[_0x9958('0xb')]);router[_0x9958('0x9')](_0x9958('0xc'),auth['isAuthenticated'](),controller[_0x9958('0xd')]);router[_0x9958('0x9')](_0x9958('0xe'),auth[_0x9958('0xa')](),controller[_0x9958('0xf')]);router[_0x9958('0x9')](_0x9958('0x10'),auth[_0x9958('0xa')](),controller[_0x9958('0x11')]);router[_0x9958('0x9')](_0x9958('0x12'),auth[_0x9958('0xa')](),controller[_0x9958('0x13')]);router[_0x9958('0x14')]('/',auth[_0x9958('0xa')](),controller[_0x9958('0x15')]);router[_0x9958('0x14')](_0x9958('0x10'),auth['isAuthenticated'](),controller[_0x9958('0x16')]);router['post'](_0x9958('0x12'),auth['isAuthenticated'](),controller[_0x9958('0x17')]);router[_0x9958('0x18')](_0x9958('0xe'),auth[_0x9958('0xa')](),controller['update']);router[_0x9958('0x19')](_0x9958('0xe'),auth['isAuthenticated'](),controller['destroy']);router[_0x9958('0x19')]('/:id/users',auth[_0x9958('0xa')](),controller[_0x9958('0x1a')]);router[_0x9958('0x19')](_0x9958('0x12'),auth[_0x9958('0xa')](),controller[_0x9958('0x1b')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf410=['name','system-','getDataValue','sequelize','exports','STRING'];(function(_0x581960,_0x1232ff){var _0x4ee892=function(_0x2a920d){while(--_0x2a920d){_0x581960['push'](_0x581960['shift']());}};_0x4ee892(++_0x1232ff);}(_0xf410,0x183));var _0x0f41=function(_0x5e6e9f,_0x5538af){_0x5e6e9f=_0x5e6e9f-0x0;var _0x42ea43=_0xf410[_0x5e6e9f];return _0x42ea43;};'use strict';var Sequelize=require(_0x0f41('0x0'));module[_0x0f41('0x1')]={'name':{'type':Sequelize[_0x0f41('0x2')],'allowNull':![],'unique':_0x0f41('0x3')},'prefix':{'type':Sequelize['VIRTUAL'],'get':function(_0xeeec){return _0x0f41('0x4')+this[_0x0f41('0x5')](_0x0f41('0x3'))+'-';}},'description':{'type':Sequelize[_0x0f41('0x2')]},'callerIdAll':{'type':Sequelize[_0x0f41('0x2')]},'VoiceExtensionId':{'type':Sequelize['INTEGER']}};
\ No newline at end of file
+var _0x0f7a=['exports','STRING','name','system-','INTEGER'];(function(_0x33f7e1,_0x48d209){var _0x23bab4=function(_0xd532b0){while(--_0xd532b0){_0x33f7e1['push'](_0x33f7e1['shift']());}};_0x23bab4(++_0x48d209);}(_0x0f7a,0x13b));var _0xa0f7=function(_0x47d95d,_0xe3f35a){_0x47d95d=_0x47d95d-0x0;var _0x154f04=_0x0f7a[_0x47d95d];return _0x154f04;};'use strict';var Sequelize=require('sequelize');module[_0xa0f7('0x0')]={'name':{'type':Sequelize[_0xa0f7('0x1')],'allowNull':![],'unique':_0xa0f7('0x2')},'prefix':{'type':Sequelize['VIRTUAL'],'get':function(_0x5c2df7){return _0xa0f7('0x3')+this['getDataValue'](_0xa0f7('0x2'))+'-';}},'description':{'type':Sequelize[_0xa0f7('0x1')]},'callerIdAll':{'type':Sequelize[_0xa0f7('0x1')]},'VoiceExtensionId':{'type':Sequelize[_0xa0f7('0x4')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2da6=['clone','ut.UserId\x20=\x20?','QueryTypes','SELECT','every','TeamId','all','value','removeTeams','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','redis','defaults','./voicePrefix.socket','register','sendStatus','status','end','json','offset','undefined','limit','count','set','apply','reject','save','update','then','destroy','get','UserProfileResource','error','stack','name','send','index','map','VoicePrefix','fieldName','type','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','VIRTUAL','merge','options','include','rows','show','params','includeAll','find','catch','describe','sequelize','transaction','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','context','from-sip','exten','app','system','description','Voice\x20Prefix\x20Extension','priority','appdata','prefix','NoOp','VoiceExtensionId','VoicePrefixId','Extensions\x20creation\x20failed','push','Set','CDR(prefix)=','callerIdAll','No\x20callerid\x20available','goto','charAt','system-','VoiceExtension','findById','addAgents','ids','omit','spread','emit','removeAgents','userVoicePrefix:remove','getAgents','findOne','User','rawAttributes','nolimit','getTeams','Team','addTeams','findAll','Agents','online','voicePause','flatMap','each','findOrCreate','forEach','userVoicePrefix:save','field','tq.TeamId','team_has_voice_prefixes','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','VoicePrefixId\x20=\x20?'];(function(_0x187d80,_0x5b793f){var _0x498a77=function(_0x633dc9){while(--_0x633dc9){_0x187d80['push'](_0x187d80['shift']());}};_0x498a77(++_0x5b793f);}(_0x2da6,0x1dd));var _0x62da=function(_0x2a5ae8,_0x3485ab){_0x2a5ae8=_0x2a5ae8-0x0;var _0x4e0a0c=_0x2da6[_0x2a5ae8];return _0x4e0a0c;};'use strict';var emlformat=require(_0x62da('0x0'));var rimraf=require(_0x62da('0x1'));var zipdir=require(_0x62da('0x2'));var jsonpatch=require(_0x62da('0x3'));var rp=require(_0x62da('0x4'));var moment=require(_0x62da('0x5'));var BPromise=require(_0x62da('0x6'));var Mustache=require(_0x62da('0x7'));var util=require('util');var path=require('path');var sox=require(_0x62da('0x8'));var csv=require(_0x62da('0x9'));var ejs=require(_0x62da('0xa'));var fs=require('fs');var fs_extra=require(_0x62da('0xb'));var _=require(_0x62da('0xc'));var squel=require(_0x62da('0xd'));var crypto=require(_0x62da('0xe'));var jsforce=require(_0x62da('0xf'));var deskjs=require(_0x62da('0x10'));var toCsv=require('to-csv');var querystring=require(_0x62da('0x11'));var Papa=require(_0x62da('0x12'));var Redis=require(_0x62da('0x13'));var authService=require(_0x62da('0x14'));var qs=require('../../components/parsers/qs');var as=require(_0x62da('0x15'));var hardwareService=require(_0x62da('0x16'));var logger=require(_0x62da('0x17'))(_0x62da('0x18'));var utils=require(_0x62da('0x19'));var config=require('../../config/environment');var licenseUtil=require(_0x62da('0x1a'));var db=require(_0x62da('0x1b'))['db'];config[_0x62da('0x1c')]=_[_0x62da('0x1d')](config[_0x62da('0x1c')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x62da('0x1c')]));require(_0x62da('0x1e'))[_0x62da('0x1f')](socket);function respondWithStatusCode(_0x191ed5,_0x23240e){_0x23240e=_0x23240e||0xcc;return function(_0x2c7ca5){if(_0x2c7ca5){return _0x191ed5[_0x62da('0x20')](_0x23240e);}return _0x191ed5[_0x62da('0x21')](_0x23240e)[_0x62da('0x22')]();};}function respondWithResult(_0xcc1a25,_0x33ec53){_0x33ec53=_0x33ec53||0xc8;return function(_0x27ab5f){if(_0x27ab5f){return _0xcc1a25[_0x62da('0x21')](_0x33ec53)[_0x62da('0x23')](_0x27ab5f);}};}function respondWithFilteredResult(_0x4bdab9,_0x4ad626){return function(_0xa7050b){if(_0xa7050b){var _0x4ae4fb=typeof _0x4ad626[_0x62da('0x24')]===_0x62da('0x25')&&typeof _0x4ad626[_0x62da('0x26')]==='undefined';var _0x29191b=_0xa7050b['count'];var _0x2e6b7e=_0x4ae4fb?0x0:_0x4ad626[_0x62da('0x24')];var _0x3b90c8=_0x4ae4fb?_0xa7050b[_0x62da('0x27')]:_0x4ad626[_0x62da('0x24')]+_0x4ad626[_0x62da('0x26')];var _0x183033;if(_0x3b90c8>=_0x29191b){_0x3b90c8=_0x29191b;_0x183033=0xc8;}else{_0x183033=0xce;}_0x4bdab9[_0x62da('0x21')](_0x183033);return _0x4bdab9[_0x62da('0x28')]('Content-Range',_0x2e6b7e+'-'+_0x3b90c8+'/'+_0x29191b)[_0x62da('0x23')](_0xa7050b);}return null;};}function patchUpdates(_0x866a76){return function(_0x2fd925){try{jsonpatch[_0x62da('0x29')](_0x2fd925,_0x866a76,!![]);}catch(_0x35f687){return BPromise[_0x62da('0x2a')](_0x35f687);}return _0x2fd925[_0x62da('0x2b')]();};}function saveUpdates(_0x50ed6b,_0x55fd3b){return function(_0x509fd9){if(_0x509fd9){return _0x509fd9[_0x62da('0x2c')](_0x50ed6b)[_0x62da('0x2d')](function(_0x14897c){return _0x14897c;});}return null;};}function removeEntity(_0x3f6fc9,_0x4b1237){return function(_0x2b7daa){if(_0x2b7daa){return _0x2b7daa[_0x62da('0x2e')]()['then'](function(){var _0x3ccf96=_0x2b7daa[_0x62da('0x2f')]({'plain':!![]});var _0x1775ea='VoicePrefixes';return db[_0x62da('0x30')][_0x62da('0x2e')]({'where':{'type':_0x1775ea,'resourceId':_0x3ccf96['id']}})[_0x62da('0x2d')](function(){return _0x2b7daa;});})['then'](function(){_0x3f6fc9['status'](0xcc)[_0x62da('0x22')]();});}};}function handleEntityNotFound(_0x301e3d,_0x220ffc){return function(_0x594c5a){if(!_0x594c5a){_0x301e3d[_0x62da('0x20')](0x194);}return _0x594c5a;};}function handleError(_0x2a4681,_0x3f253c){_0x3f253c=_0x3f253c||0x1f4;return function(_0x1f841c){logger[_0x62da('0x31')](_0x1f841c[_0x62da('0x32')]);if(_0x1f841c['name']){delete _0x1f841c[_0x62da('0x33')];}_0x2a4681['status'](_0x3f253c)[_0x62da('0x34')](_0x1f841c);};}exports[_0x62da('0x35')]=function(_0x231a52,_0x336a5c){var _0x10dd0d={},_0x1c4749={},_0x5dfc92={'count':0x0,'rows':[]};var _0x204f7b=_[_0x62da('0x36')](db[_0x62da('0x37')]['rawAttributes'],function(_0x1af659){return{'name':_0x1af659[_0x62da('0x38')],'type':_0x1af659[_0x62da('0x39')]['key']};});_0x1c4749[_0x62da('0x3a')]=_[_0x62da('0x36')](_0x204f7b,'name');_0x1c4749[_0x62da('0x3b')]=_[_0x62da('0x3c')](_0x231a52['query']);_0x1c4749[_0x62da('0x3d')]=_[_0x62da('0x3e')](_0x1c4749[_0x62da('0x3a')],_0x1c4749[_0x62da('0x3b')]);_0x10dd0d[_0x62da('0x3f')]=_[_0x62da('0x3e')](_0x1c4749[_0x62da('0x3a')],qs[_0x62da('0x40')](_0x231a52[_0x62da('0x3b')][_0x62da('0x40')]));_0x10dd0d[_0x62da('0x3f')]=_0x10dd0d[_0x62da('0x3f')][_0x62da('0x41')]?_0x10dd0d[_0x62da('0x3f')]:_0x1c4749[_0x62da('0x3a')];if(!_0x231a52[_0x62da('0x3b')][_0x62da('0x42')]('nolimit')){_0x10dd0d[_0x62da('0x26')]=qs['limit'](_0x231a52[_0x62da('0x3b')][_0x62da('0x26')]);_0x10dd0d[_0x62da('0x24')]=qs['offset'](_0x231a52[_0x62da('0x3b')][_0x62da('0x24')]);}_0x10dd0d[_0x62da('0x43')]=qs[_0x62da('0x44')](_0x231a52['query'][_0x62da('0x44')]);_0x10dd0d[_0x62da('0x45')]=qs[_0x62da('0x3d')](_[_0x62da('0x46')](_0x231a52[_0x62da('0x3b')],_0x1c4749[_0x62da('0x3d')]),_0x204f7b);if(_0x231a52[_0x62da('0x3b')][_0x62da('0x47')]){_0x10dd0d[_0x62da('0x45')]=_['merge'](_0x10dd0d[_0x62da('0x45')],{'$or':_[_0x62da('0x36')](_0x204f7b,function(_0x584a82){if(_0x584a82[_0x62da('0x39')]!==_0x62da('0x48')){var _0xf15329={};_0xf15329[_0x584a82[_0x62da('0x33')]]={'$like':'%'+_0x231a52[_0x62da('0x3b')][_0x62da('0x47')]+'%'};return _0xf15329;}})});}_0x10dd0d=_[_0x62da('0x49')]({},_0x10dd0d,_0x231a52[_0x62da('0x4a')]);var _0x47a1fa={'where':_0x10dd0d['where']};return db['VoicePrefix'][_0x62da('0x27')](_0x47a1fa)['then'](function(_0x86f5a8){_0x5dfc92['count']=_0x86f5a8;if(_0x231a52['query']['includeAll']){_0x10dd0d[_0x62da('0x4b')]=[{'all':!![]}];}return db[_0x62da('0x37')]['findAll'](_0x10dd0d);})[_0x62da('0x2d')](function(_0x4fe444){_0x5dfc92[_0x62da('0x4c')]=_0x4fe444;return _0x5dfc92;})['then'](respondWithFilteredResult(_0x336a5c,_0x10dd0d))['catch'](handleError(_0x336a5c,null));};exports[_0x62da('0x4d')]=function(_0xc0270a,_0x21360b){var _0x52c608={'raw':![],'where':{'id':_0xc0270a[_0x62da('0x4e')]['id']}},_0x2b6014={};_0x2b6014[_0x62da('0x3a')]=_[_0x62da('0x3c')](db[_0x62da('0x37')]['rawAttributes']);_0x2b6014['query']=_[_0x62da('0x3c')](_0xc0270a[_0x62da('0x3b')]);_0x2b6014[_0x62da('0x3d')]=_[_0x62da('0x3e')](_0x2b6014[_0x62da('0x3a')],_0x2b6014['query']);_0x52c608['attributes']=_[_0x62da('0x3e')](_0x2b6014[_0x62da('0x3a')],qs['fields'](_0xc0270a[_0x62da('0x3b')][_0x62da('0x40')]));_0x52c608[_0x62da('0x3f')]=_0x52c608[_0x62da('0x3f')][_0x62da('0x41')]?_0x52c608['attributes']:_0x2b6014[_0x62da('0x3a')];if(_0xc0270a[_0x62da('0x3b')][_0x62da('0x4f')]){_0x52c608[_0x62da('0x4b')]=[{'all':!![]}];}_0x52c608=_[_0x62da('0x49')]({},_0x52c608,_0xc0270a[_0x62da('0x4a')]);return db[_0x62da('0x37')][_0x62da('0x50')](_0x52c608)[_0x62da('0x2d')](handleEntityNotFound(_0x21360b,null))['then'](respondWithResult(_0x21360b,null))[_0x62da('0x51')](handleError(_0x21360b,null));};exports[_0x62da('0x2e')]=function(_0x48ca2e,_0x5b0eab){return db['VoicePrefix'][_0x62da('0x50')]({'where':{'id':_0x48ca2e[_0x62da('0x4e')]['id']}})[_0x62da('0x2d')](handleEntityNotFound(_0x5b0eab,null))['then'](removeEntity(_0x5b0eab,null))[_0x62da('0x51')](handleError(_0x5b0eab,null));};exports[_0x62da('0x52')]=function(_0x301595,_0x4f8954){return db[_0x62da('0x37')][_0x62da('0x52')]()[_0x62da('0x2d')](respondWithResult(_0x4f8954,null))[_0x62da('0x51')](handleError(_0x4f8954,null));};exports['create']=function(_0xb093c0,_0x8fef99){var _0x1a9a5d;return db[_0x62da('0x53')][_0x62da('0x54')](function(_0x247d2f){return db[_0x62da('0x37')][_0x62da('0x55')](_0xb093c0[_0x62da('0x56')],{'transaction':_0x247d2f})['then'](function(_0x506d12){_0x1a9a5d=_0x506d12[_0x62da('0x2f')]({'plain':!![]});return db['VoiceExtension']['find']({'where':{'id':_0x1a9a5d['VoiceExtensionId']},'raw':!![]})[_0x62da('0x2d')](function(_0x14473c){return createVoicePrefixExtensions(_0x1a9a5d,_0x14473c,_0x247d2f);});});})[_0x62da('0x2d')](function(){var _0x56c18e=_0xb093c0[_0x62da('0x57')][_0x62da('0x2f')]({'plain':!![]});if(!_0x56c18e)throw new Error(_0x62da('0x58'));if(_0x56c18e[_0x62da('0x59')]==='user'){var _0x1cb3b2=_0x1a9a5d;return db[_0x62da('0x5a')][_0x62da('0x50')]({'where':{'name':'VoicePrefixes','userProfileId':_0x56c18e[_0x62da('0x5b')]},'raw':!![]})['then'](function(_0xba9ae0){if(_0xba9ae0&&_0xba9ae0['autoAssociation']===0x0){return db[_0x62da('0x30')][_0x62da('0x55')]({'name':_0x1cb3b2[_0x62da('0x33')],'resourceId':_0x1cb3b2['id'],'type':_0xba9ae0[_0x62da('0x33')],'sectionId':_0xba9ae0['id']},{})[_0x62da('0x2d')](function(){return _0x1a9a5d;});}else{return _0x1a9a5d;}})[_0x62da('0x51')](function(_0x2b62ad){logger['error'](_0x62da('0x5c'),_0x2b62ad);throw _0x2b62ad;});}return _0x1a9a5d;})[_0x62da('0x2d')](respondWithResult(_0x8fef99,null))['catch'](handleError(_0x8fef99,null));};function Extension(_0x4f708e,_0x1d7552,_0x51150e,_0x5c7f93){this[_0x62da('0x5d')]=_0x62da('0x5e');this[_0x62da('0x5f')]=_0x4f708e;this[_0x62da('0x60')]=_0x51150e;this[_0x62da('0x39')]=_0x62da('0x61');this[_0x62da('0x62')]=_0x62da('0x63');this[_0x62da('0x64')]=_0x1d7552;this[_0x62da('0x65')]=_0x5c7f93;}function createVoicePrefixExtensions(_0x3abdd3,_0x57cb15,_0x4b0c44){return new BPromise(function(_0x20eb3b,_0x148a8c){var _0x4b80dc=new Extension(formatPrefixName(_0x3abdd3[_0x62da('0x66')]),0x1,_0x62da('0x67'),'Voice\x20Prefix');_0x4b80dc['VoicePrefixId']=_0x3abdd3['id'];return db['VoiceExtension'][_0x62da('0x55')](_0x4b80dc,{'transaction':_0x4b0c44})[_0x62da('0x2d')](function(_0x505b32){var _0x25f4d7=_0x505b32['get']({'plain':!![]});var _0x2f4d24=_[_0x62da('0x36')](addVoicePrefixExtensions(_0x3abdd3,_0x57cb15),function(_0x3b59de){_0x3b59de[_0x62da('0x68')]=_0x25f4d7['id'];_0x3b59de[_0x62da('0x69')]=_0x3abdd3['id'];return _0x3b59de;});return db['VoiceExtension']['bulkCreate'](_0x2f4d24,{'transaction':_0x4b0c44})[_0x62da('0x2d')](function(_0x47e36a){if(!_0x47e36a){return _0x148a8c(_0x62da('0x6a'));}else{return _0x20eb3b(_0x47e36a);}})[_0x62da('0x51')](function(_0x5ab20a){return _0x148a8c(_0x5ab20a);});});;});};function addVoicePrefixExtensions(_0x2a1186,_0x533bbc){var _0x48a928=[];var _0x4c4bd2=formatPrefixName(_0x2a1186['prefix']);_0x48a928[_0x62da('0x6b')](new Extension(_0x4c4bd2,0x2,_0x62da('0x6c'),_0x62da('0x6d')+_0x2a1186[_0x62da('0x33')]));if(_0x2a1186[_0x62da('0x6e')]){_0x48a928[_0x62da('0x6b')](new Extension(_0x4c4bd2,0x3,_0x62da('0x6c'),'PREFIX-CALLERIDALL='+_0x2a1186['callerIdAll']));}else{_0x48a928[_0x62da('0x6b')](new Extension(_0x4c4bd2,0x3,_0x62da('0x67'),_0x62da('0x6f')));}_0x48a928['push'](new Extension(_0x4c4bd2,0x4,_0x62da('0x70'),_0x533bbc[_0x62da('0x5d')]+','+'${EXTEN:'+(0x8+_0x2a1186['name'][_0x62da('0x41')])+'}'+','+0x1));return _0x48a928;}function formatPrefixName(_0xe7392){var _0x1aa68e='_';for(var _0x4fa33a=0x0;_0x4fa33a<_0xe7392['length'];_0x4fa33a++){if(_0xe7392[_0x62da('0x71')](_0x4fa33a)=='-'){_0x1aa68e+=_0xe7392[_0x62da('0x71')](_0x4fa33a);}else{_0x1aa68e+='['+_0xe7392[_0x62da('0x71')](_0x4fa33a)+']';}}_0x1aa68e+='.';return _0x1aa68e;}exports['update']=function(_0x43801c,_0xf0a02d,_0x488ff8){var _0x455aa4=_0x43801c[_0x62da('0x56')];_0x455aa4[_0x62da('0x66')]=_0x62da('0x72')+_0x455aa4[_0x62da('0x33')]+'-';return db[_0x62da('0x53')][_0x62da('0x54')](function(_0x2ecfe4){return db[_0x62da('0x37')][_0x62da('0x2c')](_0x455aa4,{'where':{'id':_0x455aa4['id']},'transaction':_0x2ecfe4})['then'](function(){return db[_0x62da('0x73')][_0x62da('0x2e')]({'where':{'VoicePrefixId':_0x455aa4['id']},'transaction':_0x2ecfe4})['then'](function(){return db['VoiceExtension'][_0x62da('0x50')]({'where':{'id':_0x455aa4[_0x62da('0x68')]},'raw':!![]})['then'](function(_0xb20141){return createVoicePrefixExtensions(_0x455aa4,_0xb20141,_0x2ecfe4);});});});})[_0x62da('0x2d')](function(){return db[_0x62da('0x37')][_0x62da('0x74')](_0x455aa4['id']);})['then'](respondWithResult(_0xf0a02d,null))[_0x62da('0x51')](handleError(_0xf0a02d,null));};exports[_0x62da('0x75')]=function(_0x149866,_0x301036,_0x3c6479){return db[_0x62da('0x37')][_0x62da('0x50')]({'where':{'id':_0x149866[_0x62da('0x4e')]['id']}})[_0x62da('0x2d')](handleEntityNotFound(_0x301036,null))[_0x62da('0x2d')](function(_0x1d40f3){if(_0x1d40f3){return _0x1d40f3[_0x62da('0x75')](_0x149866[_0x62da('0x56')][_0x62da('0x76')],_[_0x62da('0x77')](_0x149866[_0x62da('0x56')],[_0x62da('0x76'),'id'])||{})[_0x62da('0x78')](function(_0x5d04b1){for(var _0x5a4497=0x0;_0x5a4497<_0x149866[_0x62da('0x56')][_0x62da('0x76')][_0x62da('0x41')];_0x5a4497+=0x1){socket[_0x62da('0x79')]('userVoicePrefix:save',{'UserId':Number(_0x149866['body'][_0x62da('0x76')][_0x5a4497]),'VoicePrefixId':Number(_0x149866[_0x62da('0x4e')]['id'])});}return _0x5d04b1;});}})[_0x62da('0x2d')](respondWithResult(_0x301036,null))[_0x62da('0x51')](handleError(_0x301036,null));};exports[_0x62da('0x7a')]=function(_0x2de434,_0xcebee,_0x187ffd){return db[_0x62da('0x37')]['find']({'where':{'id':_0x2de434[_0x62da('0x4e')]['id']}})[_0x62da('0x2d')](handleEntityNotFound(_0xcebee,null))[_0x62da('0x2d')](function(_0x265c56){if(_0x265c56){return _0x265c56[_0x62da('0x7a')](_0x2de434['query'][_0x62da('0x76')])['then'](function(){if(_['isArray'](_0x2de434['query'][_0x62da('0x76')])){for(var _0x3b11ac=0x0;_0x3b11ac<_0x2de434['query'][_0x62da('0x76')][_0x62da('0x41')];_0x3b11ac+=0x1){socket['emit']('userVoicePrefix:remove',{'UserId':Number(_0x2de434['query'][_0x62da('0x76')][_0x3b11ac]),'VoicePrefixId':Number(_0x2de434[_0x62da('0x4e')]['id'])});}}else{socket[_0x62da('0x79')](_0x62da('0x7b'),{'UserId':Number(_0x2de434[_0x62da('0x3b')]['ids']),'VoicePrefixId':Number(_0x2de434['params']['id'])});}});}})['then'](respondWithStatusCode(_0xcebee,null))[_0x62da('0x51')](handleError(_0xcebee,null));};exports[_0x62da('0x7c')]=function(_0x2171d8,_0x12fdba,_0x39d59d){var _0x2175e2={};var _0x5ed89d={};var _0x3103fc;var _0xc072ab;return db['VoicePrefix'][_0x62da('0x7d')]({'where':{'id':_0x2171d8['params']['id']}})[_0x62da('0x2d')](handleEntityNotFound(_0x12fdba,null))[_0x62da('0x2d')](function(_0x3c097d){if(_0x3c097d){_0x3103fc=_0x3c097d;_0x5ed89d[_0x62da('0x3a')]=_[_0x62da('0x3c')](db[_0x62da('0x7e')][_0x62da('0x7f')]);_0x5ed89d[_0x62da('0x3b')]=_['keys'](_0x2171d8[_0x62da('0x3b')]);_0x5ed89d[_0x62da('0x3d')]=_['intersection'](_0x5ed89d['model'],_0x5ed89d[_0x62da('0x3b')]);_0x2175e2[_0x62da('0x3f')]=_[_0x62da('0x3e')](_0x5ed89d['model'],qs[_0x62da('0x40')](_0x2171d8[_0x62da('0x3b')][_0x62da('0x40')]));_0x2175e2[_0x62da('0x3f')]=_0x2175e2[_0x62da('0x3f')][_0x62da('0x41')]?_0x2175e2['attributes']:_0x5ed89d[_0x62da('0x3a')];_0x2175e2[_0x62da('0x43')]=qs[_0x62da('0x44')](_0x2171d8[_0x62da('0x3b')][_0x62da('0x44')]);_0x2175e2[_0x62da('0x45')]=qs[_0x62da('0x3d')](_[_0x62da('0x46')](_0x2171d8['query'],_0x5ed89d[_0x62da('0x3d')]));if(_0x2171d8[_0x62da('0x3b')][_0x62da('0x47')]){_0x2175e2[_0x62da('0x45')]=_[_0x62da('0x49')](_0x2175e2[_0x62da('0x45')],{'$or':_[_0x62da('0x36')](_0x2175e2['attributes'],function(_0x1fae9a){var _0x26b27f={};_0x26b27f[_0x1fae9a]={'$like':'%'+_0x2171d8[_0x62da('0x3b')][_0x62da('0x47')]+'%'};return _0x26b27f;})});}_0x2175e2=_[_0x62da('0x49')]({},_0x2175e2,_0x2171d8['options']);return _0x3103fc[_0x62da('0x7c')](_0x2175e2);}})[_0x62da('0x2d')](function(_0x18720f){if(_0x18720f){_0xc072ab=_0x18720f['length'];if(!_0x2171d8['query'][_0x62da('0x42')](_0x62da('0x80'))){_0x2175e2['limit']=qs['limit'](_0x2171d8[_0x62da('0x3b')][_0x62da('0x26')]);_0x2175e2['offset']=qs[_0x62da('0x24')](_0x2171d8[_0x62da('0x3b')][_0x62da('0x24')]);}return _0x3103fc[_0x62da('0x7c')](_0x2175e2);}})['then'](function(_0xe77a9e){if(_0xe77a9e){return _0xe77a9e?{'count':_0xc072ab,'rows':_0xe77a9e}:null;}})[_0x62da('0x2d')](respondWithResult(_0x12fdba,null))[_0x62da('0x51')](handleError(_0x12fdba,null));};exports[_0x62da('0x81')]=function(_0x418b55,_0x1938a5,_0xeb81f4){var _0x10e0a3={};var _0x14c03f={};var _0x57c5df;var _0x588f0b;return db[_0x62da('0x37')][_0x62da('0x7d')]({'where':{'id':_0x418b55['params']['id']}})[_0x62da('0x2d')](handleEntityNotFound(_0x1938a5,null))[_0x62da('0x2d')](function(_0x28c14c){if(_0x28c14c){_0x57c5df=_0x28c14c;_0x14c03f[_0x62da('0x3a')]=_['keys'](db[_0x62da('0x82')][_0x62da('0x7f')]);_0x14c03f[_0x62da('0x3b')]=_['keys'](_0x418b55[_0x62da('0x3b')]);_0x14c03f[_0x62da('0x3d')]=_['intersection'](_0x14c03f[_0x62da('0x3a')],_0x14c03f[_0x62da('0x3b')]);_0x10e0a3[_0x62da('0x3f')]=_[_0x62da('0x3e')](_0x14c03f['model'],qs['fields'](_0x418b55['query']['fields']));_0x10e0a3['attributes']=_0x10e0a3['attributes'][_0x62da('0x41')]?_0x10e0a3[_0x62da('0x3f')]:_0x14c03f[_0x62da('0x3a')];_0x10e0a3[_0x62da('0x43')]=qs[_0x62da('0x44')](_0x418b55[_0x62da('0x3b')][_0x62da('0x44')]);_0x10e0a3[_0x62da('0x45')]=qs[_0x62da('0x3d')](_[_0x62da('0x46')](_0x418b55[_0x62da('0x3b')],_0x14c03f[_0x62da('0x3d')]));if(_0x418b55[_0x62da('0x3b')]['filter']){_0x10e0a3[_0x62da('0x45')]=_['merge'](_0x10e0a3['where'],{'$or':_[_0x62da('0x36')](_0x10e0a3['attributes'],function(_0x45d3fe){var _0x445948={};_0x445948[_0x45d3fe]={'$like':'%'+_0x418b55['query'][_0x62da('0x47')]+'%'};return _0x445948;})});}_0x10e0a3=_['merge']({},_0x10e0a3,_0x418b55[_0x62da('0x4a')]);return _0x57c5df[_0x62da('0x81')](_0x10e0a3);}})[_0x62da('0x2d')](function(_0x2bb092){if(_0x2bb092){_0x588f0b=_0x2bb092[_0x62da('0x41')];if(!_0x418b55['query'][_0x62da('0x42')](_0x62da('0x80'))){_0x10e0a3['limit']=qs[_0x62da('0x26')](_0x418b55[_0x62da('0x3b')]['limit']);_0x10e0a3['offset']=qs['offset'](_0x418b55['query'][_0x62da('0x24')]);}return _0x57c5df[_0x62da('0x81')](_0x10e0a3);}})['then'](function(_0x1ac1f5){if(_0x1ac1f5){return _0x1ac1f5?{'count':_0x588f0b,'rows':_0x1ac1f5}:null;}})[_0x62da('0x2d')](respondWithResult(_0x1938a5,null))['catch'](handleError(_0x1938a5,null));};exports[_0x62da('0x83')]=function(_0x3541bf,_0x53ca3a,_0x1f14d5){var _0x33c7b9=_0x3541bf['body'][_0x62da('0x76')];var _0x539d21;return db[_0x62da('0x82')][_0x62da('0x84')]({'where':{'id':_0x33c7b9},'attributes':['id'],'include':[{'model':db[_0x62da('0x7e')],'as':_0x62da('0x85'),'attributes':['id',_0x62da('0x33'),_0x62da('0x86'),_0x62da('0x87'),'interface'],'raw':!![]}]})[_0x62da('0x2d')](function(_0x4b40d4){if(_0x4b40d4){_0x539d21=_0x4b40d4;var _0x3126e9=_[_0x62da('0x88')](_0x4b40d4,function(_0x2b096f){var _0x259f4a=_0x2b096f['get']({'plain':!![]});return _0x259f4a['Agents'];});return db[_0x62da('0x37')]['find']({'where':{'id':_0x3541bf[_0x62da('0x4e')]['id']}})[_0x62da('0x2d')](function(_0x2bf638){return db['sequelize'][_0x62da('0x54')](function(_0x6bb139){return _0x2bf638[_0x62da('0x83')](_0x33c7b9,{'transaction':_0x6bb139})[_0x62da('0x2d')](function(){return BPromise['each'](_0x539d21,function(_0x38703d){return db['TeamVoicePrefix']['upsert']({'TeamId':_0x38703d['id'],'VoicePrefixId':_0x3541bf[_0x62da('0x4e')]['id']},{'transaction':_0x6bb139});});})['then'](function(){return BPromise[_0x62da('0x89')](_0x3126e9,function(_0xf386bd){return db['UserVoicePrefix'][_0x62da('0x8a')]({'where':{'UserId':_0xf386bd['id'],'VoicePrefixId':_0x3541bf[_0x62da('0x4e')]['id']},'transaction':_0x6bb139});});})['then'](function(){_0x3126e9[_0x62da('0x8b')](function(_0x4001a5){socket[_0x62da('0x79')](_0x62da('0x8c'),{'UserId':_0x4001a5['id'],'VoicePrefixId':_0x2bf638['id']});});});});});}})['then'](respondWithStatusCode(_0x53ca3a,null))[_0x62da('0x51')](handleError(_0x53ca3a,null));};exports['removeTeams']=function(_0x18c6b9,_0x2dc790,_0x1540a7){return db[_0x62da('0x82')][_0x62da('0x84')]({'where':{'id':_0x18c6b9[_0x62da('0x3b')]['ids']},'attributes':['id'],'include':[{'model':db[_0x62da('0x7e')],'as':_0x62da('0x85'),'attributes':['id'],'raw':!![]}]})[_0x62da('0x2d')](handleEntityNotFound(_0x2dc790,null))[_0x62da('0x2d')](function(_0x14031d){var _0x38e98f=_[_0x62da('0x36')](_0x14031d,'id');var _0x361bd5=[];var _0x3a2db8=[];var _0x59cf70=squel['select']();_0x59cf70[_0x62da('0x8d')](_0x62da('0x8e'))['from'](_0x62da('0x8f'),'tq')['join'](_0x62da('0x90'),'ut',_0x62da('0x91'))[_0x62da('0x45')](_0x62da('0x92'),_0x18c6b9['params']['id']);for(var _0x242038=0x0;_0x242038<_0x14031d['length'];_0x242038+=0x1){let _0x14dba9=_0x14031d[_0x242038];for(var _0xd8f03f=0x0;_0xd8f03f<_0x14dba9[_0x62da('0x85')]['length'];_0xd8f03f+=0x1){let _0x3ba89f=_0x14dba9['Agents'][_0xd8f03f];var _0x4a6483=_0x59cf70[_0x62da('0x93')]();_0x4a6483[_0x62da('0x45')](_0x62da('0x94'),_0x3ba89f['id']);_0x3a2db8['push'](db[_0x62da('0x53')]['query'](_0x4a6483['toString'](),{'type':db['sequelize'][_0x62da('0x95')][_0x62da('0x96')]})[_0x62da('0x2d')](function(_0x429c01){if(_0x429c01[_0x62da('0x41')]===0x1){return _0x3ba89f['id'];}else{var _0x4093e3=_[_0x62da('0x97')](_[_0x62da('0x36')](_0x429c01,_0x62da('0x98')),function(_0x2c0693){return _['includes'](_0x38e98f,_0x2c0693);});if(_0x4093e3){return _0x3ba89f['id'];}}}));}}return BPromise[_0x62da('0x99')](_0x3a2db8)[_0x62da('0x2d')](function(_0x42c0f5){_0x361bd5=_(_0x361bd5)['union'](_0x42c0f5)['compact']()[_0x62da('0x9a')]();return db['VoicePrefix'][_0x62da('0x50')]({'where':{'id':_0x18c6b9[_0x62da('0x4e')]['id']}})[_0x62da('0x2d')](function(_0x4a253d){return db[_0x62da('0x53')][_0x62da('0x54')](function(_0x2ebb08){return _0x4a253d[_0x62da('0x9b')](_0x18c6b9[_0x62da('0x3b')][_0x62da('0x76')],{'transaction':_0x2ebb08})['then'](function(){if(!_['isEmpty'](_0x361bd5)){return _0x4a253d[_0x62da('0x7a')](_0x361bd5,{'transaction':_0x2ebb08});}})[_0x62da('0x2d')](function(){_0x361bd5['forEach'](function(_0xa4f26f){socket[_0x62da('0x79')](_0x62da('0x7b'),{'UserId':_0xa4f26f,'VoicePrefixId':_0x4a253d['id']});});});});});});})[_0x62da('0x2d')](respondWithStatusCode(_0x2dc790,null))['catch'](handleError(_0x2dc790,null));};
\ No newline at end of file
+var _0x3423=['VoiceExtension','role','user','UserProfileSection','VoicePrefixes','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','from-sip','exten','app','system','description','Voice\x20Prefix\x20Extension','priority','appdata','prefix','NoOp','Voice\x20Prefix','VoicePrefixId','VoiceExtensionId','bulkCreate','Extensions\x20creation\x20failed','push','callerIdAll','Set','PREFIX-CALLERIDALL=','No\x20callerid\x20available','context','charAt','transaction','findById','addAgents','ids','omit','spread','emit','userVoicePrefix:save','removeAgents','isArray','userVoicePrefix:remove','findOne','order','getAgents','nolimit','getTeams','Team','addTeams','online','Agents','each','TeamVoicePrefix','upsert','findOrCreate','forEach','removeTeams','User','select','field','tq.TeamId','from','team_has_voice_prefixes','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','clone','ut.UserId\x20=\x20?','toString','QueryTypes','SELECT','TeamId','includes','all','union','compact','value','isEmpty','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','../../components/auth/service','api','../../config/utils','../../config/license/util','redis','defaults','localhost','socket.io-emitter','./voicePrefix.socket','register','sendStatus','status','json','offset','undefined','limit','count','Content-Range','apply','reject','save','update','destroy','UserProfileResource','then','end','error','stack','name','index','VoicePrefix','rawAttributes','fieldName','type','key','model','map','query','keys','attributes','intersection','fields','length','hasOwnProperty','sort','where','filters','pick','filter','merge','options','include','findAll','rows','catch','show','includeAll','find','params','describe','create','sequelize','body','get'];(function(_0x22e199,_0x10e2e2){var _0x2a9011=function(_0x18b544){while(--_0x18b544){_0x22e199['push'](_0x22e199['shift']());}};_0x2a9011(++_0x10e2e2);}(_0x3423,0x188));var _0x3342=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x3423[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x3342('0x0'));var jsonpatch=require(_0x3342('0x1'));var rp=require(_0x3342('0x2'));var moment=require(_0x3342('0x3'));var BPromise=require(_0x3342('0x4'));var Mustache=require(_0x3342('0x5'));var util=require(_0x3342('0x6'));var path=require(_0x3342('0x7'));var sox=require(_0x3342('0x8'));var csv=require(_0x3342('0x9'));var ejs=require(_0x3342('0xa'));var fs=require('fs');var fs_extra=require(_0x3342('0xb'));var _=require(_0x3342('0xc'));var squel=require(_0x3342('0xd'));var crypto=require(_0x3342('0xe'));var jsforce=require(_0x3342('0xf'));var deskjs=require(_0x3342('0x10'));var toCsv=require(_0x3342('0x9'));var querystring=require(_0x3342('0x11'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0x3342('0x12'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x3342('0x13'));var utils=require(_0x3342('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0x3342('0x15'));var db=require('../../mysqldb')['db'];config[_0x3342('0x16')]=_[_0x3342('0x17')](config['redis'],{'host':_0x3342('0x18'),'port':0x18eb});var socket=require(_0x3342('0x19'))(new Redis(config[_0x3342('0x16')]));require(_0x3342('0x1a'))[_0x3342('0x1b')](socket);function respondWithStatusCode(_0x104077,_0x34a306){_0x34a306=_0x34a306||0xcc;return function(_0x59be1d){if(_0x59be1d){return _0x104077[_0x3342('0x1c')](_0x34a306);}return _0x104077[_0x3342('0x1d')](_0x34a306)['end']();};}function respondWithResult(_0x40d609,_0x2c9df0){_0x2c9df0=_0x2c9df0||0xc8;return function(_0x51ef91){if(_0x51ef91){return _0x40d609['status'](_0x2c9df0)[_0x3342('0x1e')](_0x51ef91);}};}function respondWithFilteredResult(_0x143cf1,_0x6949fc){return function(_0x2075cb){if(_0x2075cb){var _0x12947a=typeof _0x6949fc[_0x3342('0x1f')]===_0x3342('0x20')&&typeof _0x6949fc[_0x3342('0x21')]===_0x3342('0x20');var _0x4f4c2a=_0x2075cb[_0x3342('0x22')];var _0xda235a=_0x12947a?0x0:_0x6949fc[_0x3342('0x1f')];var _0x5e05f5=_0x12947a?_0x2075cb[_0x3342('0x22')]:_0x6949fc[_0x3342('0x1f')]+_0x6949fc['limit'];var _0xe774b7;if(_0x5e05f5>=_0x4f4c2a){_0x5e05f5=_0x4f4c2a;_0xe774b7=0xc8;}else{_0xe774b7=0xce;}_0x143cf1[_0x3342('0x1d')](_0xe774b7);return _0x143cf1['set'](_0x3342('0x23'),_0xda235a+'-'+_0x5e05f5+'/'+_0x4f4c2a)['json'](_0x2075cb);}return null;};}function patchUpdates(_0x3f271c){return function(_0x38994e){try{jsonpatch[_0x3342('0x24')](_0x38994e,_0x3f271c,!![]);}catch(_0x2dbad1){return BPromise[_0x3342('0x25')](_0x2dbad1);}return _0x38994e[_0x3342('0x26')]();};}function saveUpdates(_0x26eb87,_0x2d8622){return function(_0x5d4f14){if(_0x5d4f14){return _0x5d4f14[_0x3342('0x27')](_0x26eb87)['then'](function(_0x51cf45){return _0x51cf45;});}return null;};}function removeEntity(_0x986ab0,_0x52ba65){return function(_0x5d2f0b){if(_0x5d2f0b){return _0x5d2f0b[_0x3342('0x28')]()['then'](function(){var _0x37df78=_0x5d2f0b['get']({'plain':!![]});var _0x524286='VoicePrefixes';return db[_0x3342('0x29')][_0x3342('0x28')]({'where':{'type':_0x524286,'resourceId':_0x37df78['id']}})[_0x3342('0x2a')](function(){return _0x5d2f0b;});})['then'](function(){_0x986ab0[_0x3342('0x1d')](0xcc)[_0x3342('0x2b')]();});}};}function handleEntityNotFound(_0x1cc542,_0x272a52){return function(_0x4fbfb7){if(!_0x4fbfb7){_0x1cc542[_0x3342('0x1c')](0x194);}return _0x4fbfb7;};}function handleError(_0x3d6810,_0x387ba2){_0x387ba2=_0x387ba2||0x1f4;return function(_0x301114){logger[_0x3342('0x2c')](_0x301114[_0x3342('0x2d')]);if(_0x301114[_0x3342('0x2e')]){delete _0x301114['name'];}_0x3d6810[_0x3342('0x1d')](_0x387ba2)['send'](_0x301114);};}exports[_0x3342('0x2f')]=function(_0x407f8c,_0x508f87){var _0x250396={},_0x1cc42d={},_0x347d52={'count':0x0,'rows':[]};var _0x4e7410=_['map'](db[_0x3342('0x30')][_0x3342('0x31')],function(_0x311cfe){return{'name':_0x311cfe[_0x3342('0x32')],'type':_0x311cfe[_0x3342('0x33')][_0x3342('0x34')]};});_0x1cc42d[_0x3342('0x35')]=_[_0x3342('0x36')](_0x4e7410,_0x3342('0x2e'));_0x1cc42d[_0x3342('0x37')]=_[_0x3342('0x38')](_0x407f8c[_0x3342('0x37')]);_0x1cc42d['filters']=_['intersection'](_0x1cc42d[_0x3342('0x35')],_0x1cc42d['query']);_0x250396[_0x3342('0x39')]=_[_0x3342('0x3a')](_0x1cc42d[_0x3342('0x35')],qs[_0x3342('0x3b')](_0x407f8c[_0x3342('0x37')][_0x3342('0x3b')]));_0x250396[_0x3342('0x39')]=_0x250396['attributes'][_0x3342('0x3c')]?_0x250396[_0x3342('0x39')]:_0x1cc42d[_0x3342('0x35')];if(!_0x407f8c[_0x3342('0x37')][_0x3342('0x3d')]('nolimit')){_0x250396[_0x3342('0x21')]=qs['limit'](_0x407f8c[_0x3342('0x37')][_0x3342('0x21')]);_0x250396[_0x3342('0x1f')]=qs[_0x3342('0x1f')](_0x407f8c['query'][_0x3342('0x1f')]);}_0x250396['order']=qs[_0x3342('0x3e')](_0x407f8c[_0x3342('0x37')][_0x3342('0x3e')]);_0x250396[_0x3342('0x3f')]=qs[_0x3342('0x40')](_[_0x3342('0x41')](_0x407f8c[_0x3342('0x37')],_0x1cc42d['filters']),_0x4e7410);if(_0x407f8c[_0x3342('0x37')][_0x3342('0x42')]){_0x250396['where']=_[_0x3342('0x43')](_0x250396[_0x3342('0x3f')],{'$or':_['map'](_0x4e7410,function(_0x45b956){if(_0x45b956[_0x3342('0x33')]!=='VIRTUAL'){var _0x4985db={};_0x4985db[_0x45b956['name']]={'$like':'%'+_0x407f8c[_0x3342('0x37')][_0x3342('0x42')]+'%'};return _0x4985db;}})});}_0x250396=_['merge']({},_0x250396,_0x407f8c[_0x3342('0x44')]);var _0x2a1f7e={'where':_0x250396[_0x3342('0x3f')]};return db[_0x3342('0x30')][_0x3342('0x22')](_0x2a1f7e)[_0x3342('0x2a')](function(_0x34de7b){_0x347d52[_0x3342('0x22')]=_0x34de7b;if(_0x407f8c['query']['includeAll']){_0x250396[_0x3342('0x45')]=[{'all':!![]}];}return db[_0x3342('0x30')][_0x3342('0x46')](_0x250396);})[_0x3342('0x2a')](function(_0x717946){_0x347d52[_0x3342('0x47')]=_0x717946;return _0x347d52;})['then'](respondWithFilteredResult(_0x508f87,_0x250396))[_0x3342('0x48')](handleError(_0x508f87,null));};exports[_0x3342('0x49')]=function(_0x283ce9,_0x309423){var _0x64e352={'raw':![],'where':{'id':_0x283ce9['params']['id']}},_0x365d6f={};_0x365d6f[_0x3342('0x35')]=_['keys'](db[_0x3342('0x30')][_0x3342('0x31')]);_0x365d6f[_0x3342('0x37')]=_[_0x3342('0x38')](_0x283ce9['query']);_0x365d6f[_0x3342('0x40')]=_[_0x3342('0x3a')](_0x365d6f['model'],_0x365d6f[_0x3342('0x37')]);_0x64e352[_0x3342('0x39')]=_[_0x3342('0x3a')](_0x365d6f[_0x3342('0x35')],qs['fields'](_0x283ce9[_0x3342('0x37')][_0x3342('0x3b')]));_0x64e352['attributes']=_0x64e352[_0x3342('0x39')]['length']?_0x64e352['attributes']:_0x365d6f[_0x3342('0x35')];if(_0x283ce9[_0x3342('0x37')][_0x3342('0x4a')]){_0x64e352[_0x3342('0x45')]=[{'all':!![]}];}_0x64e352=_[_0x3342('0x43')]({},_0x64e352,_0x283ce9[_0x3342('0x44')]);return db[_0x3342('0x30')]['find'](_0x64e352)['then'](handleEntityNotFound(_0x309423,null))[_0x3342('0x2a')](respondWithResult(_0x309423,null))['catch'](handleError(_0x309423,null));};exports[_0x3342('0x28')]=function(_0x5e1202,_0x4c9214){return db['VoicePrefix'][_0x3342('0x4b')]({'where':{'id':_0x5e1202[_0x3342('0x4c')]['id']}})[_0x3342('0x2a')](handleEntityNotFound(_0x4c9214,null))[_0x3342('0x2a')](removeEntity(_0x4c9214,null))['catch'](handleError(_0x4c9214,null));};exports[_0x3342('0x4d')]=function(_0x3a6597,_0x4ce271){return db[_0x3342('0x30')][_0x3342('0x4d')]()[_0x3342('0x2a')](respondWithResult(_0x4ce271,null))['catch'](handleError(_0x4ce271,null));};exports[_0x3342('0x4e')]=function(_0x1497d9,_0x45eb2c){var _0x3be76c;return db[_0x3342('0x4f')]['transaction'](function(_0x2699d2){return db[_0x3342('0x30')][_0x3342('0x4e')](_0x1497d9[_0x3342('0x50')],{'transaction':_0x2699d2})[_0x3342('0x2a')](function(_0x386a5d){_0x3be76c=_0x386a5d[_0x3342('0x51')]({'plain':!![]});return db[_0x3342('0x52')][_0x3342('0x4b')]({'where':{'id':_0x3be76c['VoiceExtensionId']},'raw':!![]})[_0x3342('0x2a')](function(_0x4eebaa){return createVoicePrefixExtensions(_0x3be76c,_0x4eebaa,_0x2699d2);});});})[_0x3342('0x2a')](function(){var _0x524fb6=_0x1497d9['user']['get']({'plain':!![]});if(!_0x524fb6)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x524fb6[_0x3342('0x53')]===_0x3342('0x54')){var _0x3cd098=_0x3be76c;return db[_0x3342('0x55')][_0x3342('0x4b')]({'where':{'name':_0x3342('0x56'),'userProfileId':_0x524fb6[_0x3342('0x57')]},'raw':!![]})[_0x3342('0x2a')](function(_0x2938e0){if(_0x2938e0&&_0x2938e0[_0x3342('0x58')]===0x0){return db[_0x3342('0x29')]['create']({'name':_0x3cd098['name'],'resourceId':_0x3cd098['id'],'type':_0x2938e0[_0x3342('0x2e')],'sectionId':_0x2938e0['id']},{})['then'](function(){return _0x3be76c;});}else{return _0x3be76c;}})[_0x3342('0x48')](function(_0x59964b){logger['error'](_0x3342('0x59'),_0x59964b);throw _0x59964b;});}return _0x3be76c;})[_0x3342('0x2a')](respondWithResult(_0x45eb2c,null))[_0x3342('0x48')](handleError(_0x45eb2c,null));};function Extension(_0x5d5e0f,_0x58d37a,_0x54b41d,_0x3cc92a){this['context']=_0x3342('0x5a');this[_0x3342('0x5b')]=_0x5d5e0f;this[_0x3342('0x5c')]=_0x54b41d;this['type']=_0x3342('0x5d');this[_0x3342('0x5e')]=_0x3342('0x5f');this[_0x3342('0x60')]=_0x58d37a;this[_0x3342('0x61')]=_0x3cc92a;}function createVoicePrefixExtensions(_0x19e27b,_0xa4452,_0x57942a){return new BPromise(function(_0x4bc9a9,_0x30e299){var _0x4ec1c4=new Extension(formatPrefixName(_0x19e27b[_0x3342('0x62')]),0x1,_0x3342('0x63'),_0x3342('0x64'));_0x4ec1c4[_0x3342('0x65')]=_0x19e27b['id'];return db[_0x3342('0x52')]['create'](_0x4ec1c4,{'transaction':_0x57942a})[_0x3342('0x2a')](function(_0x3f2fcb){var _0x4c1c6a=_0x3f2fcb[_0x3342('0x51')]({'plain':!![]});var _0x14cc64=_[_0x3342('0x36')](addVoicePrefixExtensions(_0x19e27b,_0xa4452),function(_0x2858a6){_0x2858a6[_0x3342('0x66')]=_0x4c1c6a['id'];_0x2858a6[_0x3342('0x65')]=_0x19e27b['id'];return _0x2858a6;});return db[_0x3342('0x52')][_0x3342('0x67')](_0x14cc64,{'transaction':_0x57942a})[_0x3342('0x2a')](function(_0x36eec8){if(!_0x36eec8){return _0x30e299(_0x3342('0x68'));}else{return _0x4bc9a9(_0x36eec8);}})[_0x3342('0x48')](function(_0x3b01a3){return _0x30e299(_0x3b01a3);});});;});};function addVoicePrefixExtensions(_0x58cbdd,_0x5c9399){var _0x146ffc=[];var _0x4672b5=formatPrefixName(_0x58cbdd[_0x3342('0x62')]);_0x146ffc[_0x3342('0x69')](new Extension(_0x4672b5,0x2,'Set','CDR(prefix)='+_0x58cbdd[_0x3342('0x2e')]));if(_0x58cbdd[_0x3342('0x6a')]){_0x146ffc[_0x3342('0x69')](new Extension(_0x4672b5,0x3,_0x3342('0x6b'),_0x3342('0x6c')+_0x58cbdd[_0x3342('0x6a')]));}else{_0x146ffc[_0x3342('0x69')](new Extension(_0x4672b5,0x3,_0x3342('0x63'),_0x3342('0x6d')));}_0x146ffc[_0x3342('0x69')](new Extension(_0x4672b5,0x4,'goto',_0x5c9399[_0x3342('0x6e')]+','+'${EXTEN:'+(0x8+_0x58cbdd[_0x3342('0x2e')][_0x3342('0x3c')])+'}'+','+0x1));return _0x146ffc;}function formatPrefixName(_0x536fbc){var _0x18cadb='_';for(var _0x3506d4=0x0;_0x3506d4<_0x536fbc['length'];_0x3506d4++){if(_0x536fbc[_0x3342('0x6f')](_0x3506d4)=='-'){_0x18cadb+=_0x536fbc[_0x3342('0x6f')](_0x3506d4);}else{_0x18cadb+='['+_0x536fbc[_0x3342('0x6f')](_0x3506d4)+']';}}_0x18cadb+='.';return _0x18cadb;}exports[_0x3342('0x27')]=function(_0x6b9502,_0x42bc3b,_0x28d937){var _0x57b8ac=_0x6b9502[_0x3342('0x50')];_0x57b8ac['prefix']='system-'+_0x57b8ac[_0x3342('0x2e')]+'-';return db[_0x3342('0x4f')][_0x3342('0x70')](function(_0x28e73f){return db[_0x3342('0x30')][_0x3342('0x27')](_0x57b8ac,{'where':{'id':_0x57b8ac['id']},'transaction':_0x28e73f})[_0x3342('0x2a')](function(){return db[_0x3342('0x52')]['destroy']({'where':{'VoicePrefixId':_0x57b8ac['id']},'transaction':_0x28e73f})[_0x3342('0x2a')](function(){return db[_0x3342('0x52')][_0x3342('0x4b')]({'where':{'id':_0x57b8ac[_0x3342('0x66')]},'raw':!![]})[_0x3342('0x2a')](function(_0x2f02ce){return createVoicePrefixExtensions(_0x57b8ac,_0x2f02ce,_0x28e73f);});});});})[_0x3342('0x2a')](function(){return db['VoicePrefix'][_0x3342('0x71')](_0x57b8ac['id']);})[_0x3342('0x2a')](respondWithResult(_0x42bc3b,null))[_0x3342('0x48')](handleError(_0x42bc3b,null));};exports[_0x3342('0x72')]=function(_0x38a83f,_0x30e493,_0x5a9027){return db['VoicePrefix']['find']({'where':{'id':_0x38a83f[_0x3342('0x4c')]['id']}})[_0x3342('0x2a')](handleEntityNotFound(_0x30e493,null))[_0x3342('0x2a')](function(_0x43cabb){if(_0x43cabb){return _0x43cabb[_0x3342('0x72')](_0x38a83f[_0x3342('0x50')][_0x3342('0x73')],_[_0x3342('0x74')](_0x38a83f['body'],[_0x3342('0x73'),'id'])||{})[_0x3342('0x75')](function(_0x2967d6){for(var _0x42782f=0x0;_0x42782f<_0x38a83f['body'][_0x3342('0x73')][_0x3342('0x3c')];_0x42782f+=0x1){socket[_0x3342('0x76')](_0x3342('0x77'),{'UserId':Number(_0x38a83f[_0x3342('0x50')][_0x3342('0x73')][_0x42782f]),'VoicePrefixId':Number(_0x38a83f[_0x3342('0x4c')]['id'])});}return _0x2967d6;});}})[_0x3342('0x2a')](respondWithResult(_0x30e493,null))[_0x3342('0x48')](handleError(_0x30e493,null));};exports['removeAgents']=function(_0xdc419a,_0x1862b8,_0x58c1b1){return db[_0x3342('0x30')]['find']({'where':{'id':_0xdc419a[_0x3342('0x4c')]['id']}})['then'](handleEntityNotFound(_0x1862b8,null))[_0x3342('0x2a')](function(_0x5b2f46){if(_0x5b2f46){return _0x5b2f46[_0x3342('0x78')](_0xdc419a[_0x3342('0x37')]['ids'])[_0x3342('0x2a')](function(){if(_[_0x3342('0x79')](_0xdc419a['query'][_0x3342('0x73')])){for(var _0x24c9ef=0x0;_0x24c9ef<_0xdc419a[_0x3342('0x37')][_0x3342('0x73')][_0x3342('0x3c')];_0x24c9ef+=0x1){socket[_0x3342('0x76')]('userVoicePrefix:remove',{'UserId':Number(_0xdc419a[_0x3342('0x37')][_0x3342('0x73')][_0x24c9ef]),'VoicePrefixId':Number(_0xdc419a[_0x3342('0x4c')]['id'])});}}else{socket[_0x3342('0x76')](_0x3342('0x7a'),{'UserId':Number(_0xdc419a[_0x3342('0x37')][_0x3342('0x73')]),'VoicePrefixId':Number(_0xdc419a[_0x3342('0x4c')]['id'])});}});}})[_0x3342('0x2a')](respondWithStatusCode(_0x1862b8,null))[_0x3342('0x48')](handleError(_0x1862b8,null));};exports['getAgents']=function(_0x677fc4,_0x7c5834,_0x2e050f){var _0x592122={};var _0x5ef689={};var _0x344a1d;var _0x52e891;return db['VoicePrefix'][_0x3342('0x7b')]({'where':{'id':_0x677fc4[_0x3342('0x4c')]['id']}})['then'](handleEntityNotFound(_0x7c5834,null))[_0x3342('0x2a')](function(_0x4d7132){if(_0x4d7132){_0x344a1d=_0x4d7132;_0x5ef689[_0x3342('0x35')]=_['keys'](db['User'][_0x3342('0x31')]);_0x5ef689[_0x3342('0x37')]=_[_0x3342('0x38')](_0x677fc4['query']);_0x5ef689['filters']=_[_0x3342('0x3a')](_0x5ef689['model'],_0x5ef689[_0x3342('0x37')]);_0x592122[_0x3342('0x39')]=_[_0x3342('0x3a')](_0x5ef689[_0x3342('0x35')],qs['fields'](_0x677fc4['query'][_0x3342('0x3b')]));_0x592122[_0x3342('0x39')]=_0x592122['attributes'][_0x3342('0x3c')]?_0x592122['attributes']:_0x5ef689[_0x3342('0x35')];_0x592122[_0x3342('0x7c')]=qs[_0x3342('0x3e')](_0x677fc4[_0x3342('0x37')][_0x3342('0x3e')]);_0x592122['where']=qs['filters'](_['pick'](_0x677fc4[_0x3342('0x37')],_0x5ef689[_0x3342('0x40')]));if(_0x677fc4[_0x3342('0x37')]['filter']){_0x592122[_0x3342('0x3f')]=_[_0x3342('0x43')](_0x592122[_0x3342('0x3f')],{'$or':_[_0x3342('0x36')](_0x592122[_0x3342('0x39')],function(_0x2355c0){var _0x5cfbf6={};_0x5cfbf6[_0x2355c0]={'$like':'%'+_0x677fc4[_0x3342('0x37')]['filter']+'%'};return _0x5cfbf6;})});}_0x592122=_['merge']({},_0x592122,_0x677fc4['options']);return _0x344a1d[_0x3342('0x7d')](_0x592122);}})[_0x3342('0x2a')](function(_0x50c080){if(_0x50c080){_0x52e891=_0x50c080[_0x3342('0x3c')];if(!_0x677fc4[_0x3342('0x37')]['hasOwnProperty'](_0x3342('0x7e'))){_0x592122[_0x3342('0x21')]=qs[_0x3342('0x21')](_0x677fc4[_0x3342('0x37')][_0x3342('0x21')]);_0x592122[_0x3342('0x1f')]=qs[_0x3342('0x1f')](_0x677fc4[_0x3342('0x37')]['offset']);}return _0x344a1d[_0x3342('0x7d')](_0x592122);}})[_0x3342('0x2a')](function(_0x13738c){if(_0x13738c){return _0x13738c?{'count':_0x52e891,'rows':_0x13738c}:null;}})[_0x3342('0x2a')](respondWithResult(_0x7c5834,null))[_0x3342('0x48')](handleError(_0x7c5834,null));};exports[_0x3342('0x7f')]=function(_0x2d2902,_0x49de28,_0x57a3f8){var _0x1fdaa3={};var _0x2fd436={};var _0x28b7ba;var _0x36ac0d;return db[_0x3342('0x30')][_0x3342('0x7b')]({'where':{'id':_0x2d2902[_0x3342('0x4c')]['id']}})['then'](handleEntityNotFound(_0x49de28,null))[_0x3342('0x2a')](function(_0x15652e){if(_0x15652e){_0x28b7ba=_0x15652e;_0x2fd436[_0x3342('0x35')]=_[_0x3342('0x38')](db[_0x3342('0x80')]['rawAttributes']);_0x2fd436[_0x3342('0x37')]=_[_0x3342('0x38')](_0x2d2902[_0x3342('0x37')]);_0x2fd436[_0x3342('0x40')]=_['intersection'](_0x2fd436[_0x3342('0x35')],_0x2fd436[_0x3342('0x37')]);_0x1fdaa3[_0x3342('0x39')]=_[_0x3342('0x3a')](_0x2fd436[_0x3342('0x35')],qs[_0x3342('0x3b')](_0x2d2902[_0x3342('0x37')]['fields']));_0x1fdaa3['attributes']=_0x1fdaa3[_0x3342('0x39')]['length']?_0x1fdaa3[_0x3342('0x39')]:_0x2fd436[_0x3342('0x35')];_0x1fdaa3[_0x3342('0x7c')]=qs[_0x3342('0x3e')](_0x2d2902[_0x3342('0x37')]['sort']);_0x1fdaa3[_0x3342('0x3f')]=qs[_0x3342('0x40')](_[_0x3342('0x41')](_0x2d2902['query'],_0x2fd436['filters']));if(_0x2d2902[_0x3342('0x37')][_0x3342('0x42')]){_0x1fdaa3[_0x3342('0x3f')]=_[_0x3342('0x43')](_0x1fdaa3[_0x3342('0x3f')],{'$or':_[_0x3342('0x36')](_0x1fdaa3[_0x3342('0x39')],function(_0x2c8c08){var _0x316b4c={};_0x316b4c[_0x2c8c08]={'$like':'%'+_0x2d2902[_0x3342('0x37')][_0x3342('0x42')]+'%'};return _0x316b4c;})});}_0x1fdaa3=_[_0x3342('0x43')]({},_0x1fdaa3,_0x2d2902['options']);return _0x28b7ba['getTeams'](_0x1fdaa3);}})['then'](function(_0x2539a0){if(_0x2539a0){_0x36ac0d=_0x2539a0[_0x3342('0x3c')];if(!_0x2d2902[_0x3342('0x37')][_0x3342('0x3d')](_0x3342('0x7e'))){_0x1fdaa3['limit']=qs[_0x3342('0x21')](_0x2d2902[_0x3342('0x37')][_0x3342('0x21')]);_0x1fdaa3['offset']=qs[_0x3342('0x1f')](_0x2d2902[_0x3342('0x37')]['offset']);}return _0x28b7ba['getTeams'](_0x1fdaa3);}})[_0x3342('0x2a')](function(_0x1cbc11){if(_0x1cbc11){return _0x1cbc11?{'count':_0x36ac0d,'rows':_0x1cbc11}:null;}})[_0x3342('0x2a')](respondWithResult(_0x49de28,null))[_0x3342('0x48')](handleError(_0x49de28,null));};exports[_0x3342('0x81')]=function(_0x51b0f9,_0x48cb53,_0x37fdc5){var _0x26063d=_0x51b0f9[_0x3342('0x50')][_0x3342('0x73')];var _0x43323e;return db[_0x3342('0x80')][_0x3342('0x46')]({'where':{'id':_0x26063d},'attributes':['id'],'include':[{'model':db['User'],'as':'Agents','attributes':['id','name',_0x3342('0x82'),'voicePause','interface'],'raw':!![]}]})['then'](function(_0x3c1c34){if(_0x3c1c34){_0x43323e=_0x3c1c34;var _0x319a6e=_['flatMap'](_0x3c1c34,function(_0x36739b){var _0x4dcbb1=_0x36739b['get']({'plain':!![]});return _0x4dcbb1[_0x3342('0x83')];});return db['VoicePrefix'][_0x3342('0x4b')]({'where':{'id':_0x51b0f9[_0x3342('0x4c')]['id']}})[_0x3342('0x2a')](function(_0x2b029d){return db[_0x3342('0x4f')][_0x3342('0x70')](function(_0x5aa6ce){return _0x2b029d[_0x3342('0x81')](_0x26063d,{'transaction':_0x5aa6ce})[_0x3342('0x2a')](function(){return BPromise[_0x3342('0x84')](_0x43323e,function(_0x5d9c1e){return db[_0x3342('0x85')][_0x3342('0x86')]({'TeamId':_0x5d9c1e['id'],'VoicePrefixId':_0x51b0f9[_0x3342('0x4c')]['id']},{'transaction':_0x5aa6ce});});})[_0x3342('0x2a')](function(){return BPromise[_0x3342('0x84')](_0x319a6e,function(_0x41de0c){return db['UserVoicePrefix'][_0x3342('0x87')]({'where':{'UserId':_0x41de0c['id'],'VoicePrefixId':_0x51b0f9[_0x3342('0x4c')]['id']},'transaction':_0x5aa6ce});});})[_0x3342('0x2a')](function(){_0x319a6e[_0x3342('0x88')](function(_0x441c2a){socket['emit'](_0x3342('0x77'),{'UserId':_0x441c2a['id'],'VoicePrefixId':_0x2b029d['id']});});});});});}})[_0x3342('0x2a')](respondWithStatusCode(_0x48cb53,null))[_0x3342('0x48')](handleError(_0x48cb53,null));};exports[_0x3342('0x89')]=function(_0x498de2,_0x100d41,_0x56251e){return db[_0x3342('0x80')][_0x3342('0x46')]({'where':{'id':_0x498de2[_0x3342('0x37')]['ids']},'attributes':['id'],'include':[{'model':db[_0x3342('0x8a')],'as':'Agents','attributes':['id'],'raw':!![]}]})[_0x3342('0x2a')](handleEntityNotFound(_0x100d41,null))['then'](function(_0x340350){var _0xe6d040=_[_0x3342('0x36')](_0x340350,'id');var _0x58253f=[];var _0x25b867=[];var _0x3a6d87=squel[_0x3342('0x8b')]();_0x3a6d87[_0x3342('0x8c')](_0x3342('0x8d'))[_0x3342('0x8e')](_0x3342('0x8f'),'tq')['join'](_0x3342('0x90'),'ut',_0x3342('0x91'))[_0x3342('0x3f')]('VoicePrefixId\x20=\x20?',_0x498de2[_0x3342('0x4c')]['id']);for(var _0x3c0eb8=0x0;_0x3c0eb8<_0x340350[_0x3342('0x3c')];_0x3c0eb8+=0x1){let _0x2b5df1=_0x340350[_0x3c0eb8];for(var _0xe57bc1=0x0;_0xe57bc1<_0x2b5df1[_0x3342('0x83')][_0x3342('0x3c')];_0xe57bc1+=0x1){let _0x2ae81c=_0x2b5df1['Agents'][_0xe57bc1];var _0x448a3c=_0x3a6d87[_0x3342('0x92')]();_0x448a3c['where'](_0x3342('0x93'),_0x2ae81c['id']);_0x25b867[_0x3342('0x69')](db[_0x3342('0x4f')][_0x3342('0x37')](_0x448a3c[_0x3342('0x94')](),{'type':db[_0x3342('0x4f')][_0x3342('0x95')][_0x3342('0x96')]})[_0x3342('0x2a')](function(_0x31095f){if(_0x31095f[_0x3342('0x3c')]===0x1){return _0x2ae81c['id'];}else{var _0x4a301d=_['every'](_[_0x3342('0x36')](_0x31095f,_0x3342('0x97')),function(_0x107e1b){return _[_0x3342('0x98')](_0xe6d040,_0x107e1b);});if(_0x4a301d){return _0x2ae81c['id'];}}}));}}return BPromise[_0x3342('0x99')](_0x25b867)[_0x3342('0x2a')](function(_0x34f15a){_0x58253f=_(_0x58253f)[_0x3342('0x9a')](_0x34f15a)[_0x3342('0x9b')]()[_0x3342('0x9c')]();return db[_0x3342('0x30')][_0x3342('0x4b')]({'where':{'id':_0x498de2[_0x3342('0x4c')]['id']}})[_0x3342('0x2a')](function(_0x45d548){return db[_0x3342('0x4f')]['transaction'](function(_0x4e1359){return _0x45d548[_0x3342('0x89')](_0x498de2[_0x3342('0x37')]['ids'],{'transaction':_0x4e1359})[_0x3342('0x2a')](function(){if(!_[_0x3342('0x9d')](_0x58253f)){return _0x45d548['removeAgents'](_0x58253f,{'transaction':_0x4e1359});}})[_0x3342('0x2a')](function(){_0x58253f['forEach'](function(_0x24049f){socket[_0x3342('0x76')](_0x3342('0x7a'),{'UserId':_0x24049f,'VoicePrefixId':_0x45d548['id']});});});});});});})[_0x3342('0x2a')](respondWithStatusCode(_0x100d41,null))[_0x3342('0x48')](handleError(_0x100d41,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe18c=['exports','VoicePrefix','save','remove','emit','hasOwnProperty','hook'];(function(_0x4dd97b,_0x39eeba){var _0xe4d837=function(_0x4a4360){while(--_0x4a4360){_0x4dd97b['push'](_0x4dd97b['shift']());}};_0xe4d837(++_0x39eeba);}(_0xe18c,0x135));var _0xce18=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0xe18c[_0x321bb2];return _0x9c12ed;};'use strict';var EventEmitter=require('events');var VoicePrefix=require('../../mysqldb')['db'][_0xce18('0x0')];var VoicePrefixEvents=new EventEmitter();VoicePrefixEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xce18('0x1'),'afterUpdate':'update','afterDestroy':_0xce18('0x2')};function emitEvent(_0x3048aa){return function(_0x162a0d,_0x9f6057,_0xd739d1){VoicePrefixEvents['emit'](_0x3048aa+':'+_0x162a0d['id'],_0x162a0d);VoicePrefixEvents[_0xce18('0x3')](_0x3048aa,_0x162a0d);_0xd739d1(null);};}for(var e in events){if(events[_0xce18('0x4')](e)){var event=events[e];VoicePrefix[_0xce18('0x5')](e,emitEvent(event));}}module[_0xce18('0x6')]=VoicePrefixEvents;
\ No newline at end of file
+var _0x9476=['emit','hasOwnProperty','hook','events','VoicePrefix','setMaxListeners','save','remove'];(function(_0x1931a7,_0x407984){var _0x2cf102=function(_0x458499){while(--_0x458499){_0x1931a7['push'](_0x1931a7['shift']());}};_0x2cf102(++_0x407984);}(_0x9476,0xcb));var _0x6947=function(_0x29e160,_0x1a188e){_0x29e160=_0x29e160-0x0;var _0x224c24=_0x9476[_0x29e160];return _0x224c24;};'use strict';var EventEmitter=require(_0x6947('0x0'));var VoicePrefix=require('../../mysqldb')['db'][_0x6947('0x1')];var VoicePrefixEvents=new EventEmitter();VoicePrefixEvents[_0x6947('0x2')](0x0);var events={'afterCreate':_0x6947('0x3'),'afterUpdate':'update','afterDestroy':_0x6947('0x4')};function emitEvent(_0xef075e){return function(_0x204231,_0x324c37,_0x371b2d){VoicePrefixEvents[_0x6947('0x5')](_0xef075e+':'+_0x204231['id'],_0x204231);VoicePrefixEvents['emit'](_0xef075e,_0x204231);_0x371b2d(null);};}for(var e in events){if(events[_0x6947('0x6')](e)){var event=events[e];VoicePrefix[_0x6947('0x7')](e,emitEvent(event));}}module['exports']=VoicePrefixEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3a50=['voice_prefixes','util','../../config/logger','api','moment','bluebird','path','../../config/environment','exports','define','VoicePrefix'];(function(_0x263a74,_0xc31414){var _0x2aa86c=function(_0x382896){while(--_0x382896){_0x263a74['push'](_0x263a74['shift']());}};_0x2aa86c(++_0xc31414);}(_0x3a50,0x1ae));var _0x03a5=function(_0x57b54c,_0x54ce0d){_0x57b54c=_0x57b54c-0x0;var _0x59cc19=_0x3a50[_0x57b54c];return _0x59cc19;};'use strict';var _=require('lodash');var util=require(_0x03a5('0x0'));var logger=require(_0x03a5('0x1'))(_0x03a5('0x2'));var moment=require(_0x03a5('0x3'));var BPromise=require(_0x03a5('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x03a5('0x5'));var rimraf=require('rimraf');var config=require(_0x03a5('0x6'));var attributes=require('./voicePrefix.attributes');module[_0x03a5('0x7')]=function(_0x5f3296,_0x389486){return _0x5f3296[_0x03a5('0x8')](_0x03a5('0x9'),attributes,{'tableName':_0x03a5('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x6b48=['lodash','util','../../config/logger','moment','bluebird','request-promise','rimraf','./voicePrefix.attributes','define','VoicePrefix'];(function(_0x27530d,_0x46480a){var _0x59e561=function(_0x395fe9){while(--_0x395fe9){_0x27530d['push'](_0x27530d['shift']());}};_0x59e561(++_0x46480a);}(_0x6b48,0x154));var _0x86b4=function(_0x86a91c,_0x4eb20c){_0x86a91c=_0x86a91c-0x0;var _0x899439=_0x6b48[_0x86a91c];return _0x899439;};'use strict';var _=require(_0x86b4('0x0'));var util=require(_0x86b4('0x1'));var logger=require(_0x86b4('0x2'))('api');var moment=require(_0x86b4('0x3'));var BPromise=require(_0x86b4('0x4'));var rp=require(_0x86b4('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0x86b4('0x6'));var config=require('../../config/environment');var attributes=require(_0x86b4('0x7'));module['exports']=function(_0xaefb68,_0x31d3d5){return _0xaefb68[_0x86b4('0x8')](_0x86b4('0x9'),attributes,{'tableName':'voice_prefixes','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1c01=['jayson/promise','client','redis','socket.io-emitter','./voicePrefix.socket','request','then','VoicePrefix,\x20%s,\x20%s','request\x20sent','debug','VoicePrefix,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','lodash','util','moment','bluebird','ioredis','../../config/logger','rpc','../../config/environment'];(function(_0x442947,_0x2af84f){var _0x547f0e=function(_0x30d50a){while(--_0x30d50a){_0x442947['push'](_0x442947['shift']());}};_0x547f0e(++_0x2af84f);}(_0x1c01,0x190));var _0x11c0=function(_0x59bfb7,_0x15b248){_0x59bfb7=_0x59bfb7-0x0;var _0x5dfec5=_0x1c01[_0x59bfb7];return _0x5dfec5;};'use strict';var _=require(_0x11c0('0x0'));var util=require(_0x11c0('0x1'));var moment=require(_0x11c0('0x2'));var BPromise=require(_0x11c0('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x11c0('0x4'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x11c0('0x5'))(_0x11c0('0x6'));var config=require(_0x11c0('0x7'));var jayson=require(_0x11c0('0x8'));var client=jayson[_0x11c0('0x9')]['http']({'port':0x232a});config[_0x11c0('0xa')]=_['defaults'](config[_0x11c0('0xa')],{'host':'localhost','port':0x18eb});var socket=require(_0x11c0('0xb'))(new Redis(config['redis']));require(_0x11c0('0xc'))['register'](socket);function respondWithRpcPromise(_0x5de14e,_0xba38f,_0x5e8002){return new BPromise(function(_0x426122,_0x39b2ac){return client[_0x11c0('0xd')](_0x5de14e,_0x5e8002)[_0x11c0('0xe')](function(_0x3cc04b){logger['info'](_0x11c0('0xf'),_0xba38f,_0x11c0('0x10'));logger[_0x11c0('0x11')](_0x11c0('0x12'),_0xba38f,'request\x20sent',JSON['stringify'](_0x3cc04b));if(_0x3cc04b[_0x11c0('0x13')]){if(_0x3cc04b[_0x11c0('0x13')][_0x11c0('0x14')]===0x1f4){logger[_0x11c0('0x13')](_0x11c0('0xf'),_0xba38f,_0x3cc04b[_0x11c0('0x13')][_0x11c0('0x15')]);return _0x39b2ac(_0x3cc04b['error'][_0x11c0('0x15')]);}logger['error'](_0x11c0('0xf'),_0xba38f,_0x3cc04b['error'][_0x11c0('0x15')]);return _0x426122(_0x3cc04b[_0x11c0('0x13')][_0x11c0('0x15')]);}else{logger['info'](_0x11c0('0xf'),_0xba38f,_0x11c0('0x10'));_0x426122(_0x3cc04b[_0x11c0('0x16')][_0x11c0('0x15')]);}})[_0x11c0('0x17')](function(_0x3d0a2e){logger['error']('VoicePrefix,\x20%s,\x20%s',_0xba38f,_0x3d0a2e);_0x39b2ac(_0x3d0a2e);});});}
\ No newline at end of file
+var _0xe5af=['stringify','error','code','VoicePrefix,\x20%s,\x20%s','message','result','util','moment','randomstring','ioredis','../../mysqldb','../../config/logger','jayson/promise','client','defaults','redis','localhost','socket.io-emitter','./voicePrefix.socket','request','then','info','request\x20sent','debug','VoicePrefix,\x20%s,\x20%s,\x20%s'];(function(_0x1f4f14,_0x570d4b){var _0x3135b1=function(_0x89b844){while(--_0x89b844){_0x1f4f14['push'](_0x1f4f14['shift']());}};_0x3135b1(++_0x570d4b);}(_0xe5af,0x9c));var _0xfe5a=function(_0x1a3e76,_0x43a50c){_0x1a3e76=_0x1a3e76-0x0;var _0x41bc26=_0xe5af[_0x1a3e76];return _0x41bc26;};'use strict';var _=require('lodash');var util=require(_0xfe5a('0x0'));var moment=require(_0xfe5a('0x1'));var BPromise=require('bluebird');var rs=require(_0xfe5a('0x2'));var fs=require('fs');var Redis=require(_0xfe5a('0x3'));var db=require(_0xfe5a('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0xfe5a('0x5'))('rpc');var config=require('../../config/environment');var jayson=require(_0xfe5a('0x6'));var client=jayson[_0xfe5a('0x7')]['http']({'port':0x232a});config['redis']=_[_0xfe5a('0x8')](config[_0xfe5a('0x9')],{'host':_0xfe5a('0xa'),'port':0x18eb});var socket=require(_0xfe5a('0xb'))(new Redis(config['redis']));require(_0xfe5a('0xc'))['register'](socket);function respondWithRpcPromise(_0x51718e,_0x259e8a,_0x2cb946){return new BPromise(function(_0x543619,_0xb51e47){return client[_0xfe5a('0xd')](_0x51718e,_0x2cb946)[_0xfe5a('0xe')](function(_0x50024c){logger[_0xfe5a('0xf')]('VoicePrefix,\x20%s,\x20%s',_0x259e8a,_0xfe5a('0x10'));logger[_0xfe5a('0x11')](_0xfe5a('0x12'),_0x259e8a,_0xfe5a('0x10'),JSON[_0xfe5a('0x13')](_0x50024c));if(_0x50024c['error']){if(_0x50024c[_0xfe5a('0x14')][_0xfe5a('0x15')]===0x1f4){logger[_0xfe5a('0x14')](_0xfe5a('0x16'),_0x259e8a,_0x50024c[_0xfe5a('0x14')][_0xfe5a('0x17')]);return _0xb51e47(_0x50024c[_0xfe5a('0x14')][_0xfe5a('0x17')]);}logger[_0xfe5a('0x14')](_0xfe5a('0x16'),_0x259e8a,_0x50024c[_0xfe5a('0x14')][_0xfe5a('0x17')]);return _0x543619(_0x50024c[_0xfe5a('0x14')][_0xfe5a('0x17')]);}else{logger[_0xfe5a('0xf')](_0xfe5a('0x16'),_0x259e8a,'request\x20sent');_0x543619(_0x50024c[_0xfe5a('0x18')][_0xfe5a('0x17')]);}})['catch'](function(_0x3b0101){logger[_0xfe5a('0x14')](_0xfe5a('0x16'),_0x259e8a,_0x3b0101);_0xb51e47(_0x3b0101);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8b2b=['remove','emit','length','voicePrefix:','./voicePrefix.events','save'];(function(_0x4d47bd,_0x49f679){var _0x186983=function(_0x594636){while(--_0x594636){_0x4d47bd['push'](_0x4d47bd['shift']());}};_0x186983(++_0x49f679);}(_0x8b2b,0x1c0));var _0xb8b2=function(_0x1c6900,_0x1a28db){_0x1c6900=_0x1c6900-0x0;var _0x3ccbff=_0x8b2b[_0x1c6900];return _0x3ccbff;};'use strict';var VoicePrefixEvents=require(_0xb8b2('0x0'));var events=[_0xb8b2('0x1'),_0xb8b2('0x2'),'update'];function createListener(_0x199e25,_0x415a60){return function(_0x3beb9e){_0x415a60[_0xb8b2('0x3')](_0x199e25,_0x3beb9e);};}function removeListener(_0x1199f8,_0x2928a7){return function(){VoicePrefixEvents['removeListener'](_0x1199f8,_0x2928a7);};}exports['register']=function(_0xba7734){for(var _0x31b3f9=0x0,_0x2f0032=events[_0xb8b2('0x4')];_0x31b3f9<_0x2f0032;_0x31b3f9++){var _0x4a4c69=events[_0x31b3f9];var _0x541b1b=createListener(_0xb8b2('0x5')+_0x4a4c69,_0xba7734);VoicePrefixEvents['on'](_0x4a4c69,_0x541b1b);}};
\ No newline at end of file
+var _0xa902=['update','removeListener','register','./voicePrefix.events','save','remove'];(function(_0x285def,_0x2ca38f){var _0x3eaa92=function(_0x458fb2){while(--_0x458fb2){_0x285def['push'](_0x285def['shift']());}};_0x3eaa92(++_0x2ca38f);}(_0xa902,0x8d));var _0x2a90=function(_0x3104f0,_0x4239da){_0x3104f0=_0x3104f0-0x0;var _0x4d4c80=_0xa902[_0x3104f0];return _0x4d4c80;};'use strict';var VoicePrefixEvents=require(_0x2a90('0x0'));var events=[_0x2a90('0x1'),_0x2a90('0x2'),_0x2a90('0x3')];function createListener(_0x1b4117,_0x4983a4){return function(_0x2da982){_0x4983a4['emit'](_0x1b4117,_0x2da982);};}function removeListener(_0x4961c2,_0x169808){return function(){VoicePrefixEvents[_0x2a90('0x4')](_0x4961c2,_0x169808);};}exports[_0x2a90('0x5')]=function(_0x21e1d2){for(var _0x4a32c7=0x0,_0x25bcfc=events['length'];_0x4a32c7<_0x25bcfc;_0x4a32c7++){var _0x4109e6=events[_0x4a32c7];var _0x570659=createListener('voicePrefix:'+_0x4109e6,_0x21e1d2);VoicePrefixEvents['on'](_0x4109e6,_0x570659);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['addAgents','/:id/blacklists','addBlackLists','update','delete','destroy','removeTeams','removeAgents','removeLists','removeBlackLists','exports','multer','util','path','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./voiceQueue.controller','get','index','/:id','getHoppers','/:id/hopper_histories','isAuthenticated','getHopperHistories','/:id/hopper_black','getHopperBlacks','/:id/teams','/:id/users','getAgents','/:id/members','getMembers','/:id/lists','getLists','post','create','/:id/clone','clone','addTeams'];(function(_0x574524,_0x114ff8){var _0x4c6d91=function(_0x5e60eb){while(--_0x5e60eb){_0x574524['push'](_0x574524['shift']());}};_0x4c6d91(++_0x114ff8);}(_0xa9e0,0x123));var _0x0a9e=function(_0x1ddedd,_0x485606){_0x1ddedd=_0x1ddedd-0x0;var _0xa3e1ac=_0xa9e0[_0x1ddedd];return _0xa3e1ac;};'use strict';var multer=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var path=require(_0x0a9e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0a9e('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x0a9e('0x4'));var interaction=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var controller=require(_0x0a9e('0x7'));router[_0x0a9e('0x8')]('/',auth['isAuthenticated'](),controller[_0x0a9e('0x9')]);router[_0x0a9e('0x8')](_0x0a9e('0xa'),auth['isAuthenticated'](),controller['show']);router[_0x0a9e('0x8')]('/:id/hoppers',auth['isAuthenticated'](),controller[_0x0a9e('0xb')]);router[_0x0a9e('0x8')](_0x0a9e('0xc'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0xe')]);router[_0x0a9e('0x8')]('/:id/hopper_finals',auth['isAuthenticated'](),controller['getHopperFinals']);router['get'](_0x0a9e('0xf'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x10')]);router[_0x0a9e('0x8')](_0x0a9e('0x11'),auth[_0x0a9e('0xd')](),controller['getTeams']);router[_0x0a9e('0x8')](_0x0a9e('0x12'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x13')]);router[_0x0a9e('0x8')](_0x0a9e('0x14'),auth['isAuthenticated'](),controller[_0x0a9e('0x15')]);router['get'](_0x0a9e('0x16'),auth['isAuthenticated'](),controller[_0x0a9e('0x17')]);router[_0x0a9e('0x8')]('/:id/blacklists',auth[_0x0a9e('0xd')](),controller['getBlackLists']);router[_0x0a9e('0x18')]('/',auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x19')]);router[_0x0a9e('0x18')](_0x0a9e('0x1a'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x1b')]);router[_0x0a9e('0x18')](_0x0a9e('0x11'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x1c')]);router[_0x0a9e('0x18')]('/:id/users',auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x1d')]);router['post'](_0x0a9e('0x16'),auth['isAuthenticated'](),controller['addLists']);router[_0x0a9e('0x18')](_0x0a9e('0x1e'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x1f')]);router['put'](_0x0a9e('0xa'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x20')]);router[_0x0a9e('0x21')](_0x0a9e('0xa'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x22')]);router['delete']('/:id/teams',auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x23')]);router[_0x0a9e('0x21')](_0x0a9e('0x12'),auth['isAuthenticated'](),controller[_0x0a9e('0x24')]);router['delete'](_0x0a9e('0x16'),auth['isAuthenticated'](),controller[_0x0a9e('0x25')]);router[_0x0a9e('0x21')](_0x0a9e('0x1e'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x26')]);module[_0x0a9e('0x27')]=router;
\ No newline at end of file
+var _0xa9e0=['addAgents','/:id/blacklists','addBlackLists','update','delete','destroy','removeTeams','removeAgents','removeLists','removeBlackLists','exports','multer','util','path','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./voiceQueue.controller','get','index','/:id','getHoppers','/:id/hopper_histories','isAuthenticated','getHopperHistories','/:id/hopper_black','getHopperBlacks','/:id/teams','/:id/users','getAgents','/:id/members','getMembers','/:id/lists','getLists','post','create','/:id/clone','clone','addTeams'];(function(_0x3f19b3,_0x3f0849){var _0xd61898=function(_0x3ca685){while(--_0x3ca685){_0x3f19b3['push'](_0x3f19b3['shift']());}};_0xd61898(++_0x3f0849);}(_0xa9e0,0x123));var _0x0a9e=function(_0x3ce3c,_0x319337){_0x3ce3c=_0x3ce3c-0x0;var _0x55a2c9=_0xa9e0[_0x3ce3c];return _0x55a2c9;};'use strict';var multer=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var path=require(_0x0a9e('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x0a9e('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x0a9e('0x4'));var interaction=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var controller=require(_0x0a9e('0x7'));router[_0x0a9e('0x8')]('/',auth['isAuthenticated'](),controller[_0x0a9e('0x9')]);router[_0x0a9e('0x8')](_0x0a9e('0xa'),auth['isAuthenticated'](),controller['show']);router[_0x0a9e('0x8')]('/:id/hoppers',auth['isAuthenticated'](),controller[_0x0a9e('0xb')]);router[_0x0a9e('0x8')](_0x0a9e('0xc'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0xe')]);router[_0x0a9e('0x8')]('/:id/hopper_finals',auth['isAuthenticated'](),controller['getHopperFinals']);router['get'](_0x0a9e('0xf'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x10')]);router[_0x0a9e('0x8')](_0x0a9e('0x11'),auth[_0x0a9e('0xd')](),controller['getTeams']);router[_0x0a9e('0x8')](_0x0a9e('0x12'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x13')]);router[_0x0a9e('0x8')](_0x0a9e('0x14'),auth['isAuthenticated'](),controller[_0x0a9e('0x15')]);router['get'](_0x0a9e('0x16'),auth['isAuthenticated'](),controller[_0x0a9e('0x17')]);router[_0x0a9e('0x8')]('/:id/blacklists',auth[_0x0a9e('0xd')](),controller['getBlackLists']);router[_0x0a9e('0x18')]('/',auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x19')]);router[_0x0a9e('0x18')](_0x0a9e('0x1a'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x1b')]);router[_0x0a9e('0x18')](_0x0a9e('0x11'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x1c')]);router[_0x0a9e('0x18')]('/:id/users',auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x1d')]);router['post'](_0x0a9e('0x16'),auth['isAuthenticated'](),controller['addLists']);router[_0x0a9e('0x18')](_0x0a9e('0x1e'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x1f')]);router['put'](_0x0a9e('0xa'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x20')]);router[_0x0a9e('0x21')](_0x0a9e('0xa'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x22')]);router['delete']('/:id/teams',auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x23')]);router[_0x0a9e('0x21')](_0x0a9e('0x12'),auth['isAuthenticated'](),controller[_0x0a9e('0x24')]);router['delete'](_0x0a9e('0x16'),auth['isAuthenticated'](),controller[_0x0a9e('0x25')]);router[_0x0a9e('0x21')](_0x0a9e('0x1e'),auth[_0x0a9e('0xd')](),controller[_0x0a9e('0x26')]);module[_0x0a9e('0x27')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd573=['#AMD\x20After\x20Greeting\x20Silence','#AMD\x20Min\x20Word\x20Length','#AMD\x20Between\x20Words\x20Silence','#AMD\x20Silence\x20Threshold\x20(min:0,\x20max:32767)','#AMD\x20Maximum\x20Word\x20Length','Active/Disactive\x20Recall\x20In\x20Queue','DESC','ASC','Random\x20Last\x20Digit\x20(min:1,\x20max:15)','#NoSuchNumber\x20Retry\x20(min:1,\x20max:999)','Drop\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Abandoned\x20Retry\x20(min:1,\x20max:999)','Abandoned\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Machine\x20Retry\x20(min:1,\x20max:999)','AgentReject\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','mandatoryDispositionPauseId','mandatoryDisposition','sequelize','exports','STRING','name','ENUM','inbound','ringall','leastrecent','random','rrordered','setDataValue','strategy','rrmemory','type','getDataValue','dialMethod','booked','roundrobin','progressive','power','INTEGER','yes','all','once','TEXT','periodic_announce','join','split','joinempty','leavewhenempty','wrapuptime','BOOLEAN','Active/Disactive\x20Campaign','predictive','Dial\x20Method.','UNSIGNED','Max\x209999\x20member\x20in\x20queue(min:1,\x20max:9999),\x200\x20means\x20unlimited.','FLOAT','Power\x20Level:\x20Calls\x20for\x20agents\x20(min:1,\x20max:10).','agentBusyFactor','dropRate','Predictive\x20Optimization\x20Percentage\x20(min:\x201,\x20max:\x2095)','Interval\x20Predictive\x20Minutes\x20(min:5\x20max:30)','Originate\x20Timeout\x20Seconds\x20(min:1,\x20max:999)','tTxX','Queue\x20Timeout\x20Seconds\x20(min:1,\x20max:999)','AGI\x20queue\x20option\x20(use:\x20agi://127.0.0.1/square,<project_name>)','#Congestion\x20Retry\x20(min:1,\x20max:999)','Congestion\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Busy\x20Retry\x20(min:1,\x20max:999)','Busy\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#NoAnswer\x20Retry\x20(min:1,\x20max:999)','NoAnswer\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Global\x20Max\x20Retry\x20(min:1,\x20max:999)','07:00-22:00,*,*,*','always','never','onlyIfOpen','Active/Disactive\x20AMD','#AMD\x20Initial\x20Silence'];(function(_0x5bddd2,_0x3463f6){var _0x2bab4f=function(_0x1083b0){while(--_0x1083b0){_0x5bddd2['push'](_0x5bddd2['shift']());}};_0x2bab4f(++_0x3463f6);}(_0xd573,0x1df));var _0x3d57=function(_0x221c35,_0x5d6aad){_0x221c35=_0x221c35-0x0;var _0x5c9817=_0xd573[_0x221c35];return _0x5c9817;};'use strict';var Sequelize=require(_0x3d57('0x0'));module[_0x3d57('0x1')]={'name':{'type':Sequelize[_0x3d57('0x2')],'allowNull':![],'unique':_0x3d57('0x3'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'type':{'type':Sequelize[_0x3d57('0x4')](_0x3d57('0x5'),'outbound'),'allowNull':![],'defaultValue':_0x3d57('0x5')},'musiconhold':{'type':Sequelize[_0x3d57('0x2')],'defaultValue':'default'},'announce':{'type':Sequelize['STRING'],'defaultValue':''},'strategy':{'type':Sequelize[_0x3d57('0x4')]('rr',_0x3d57('0x6'),_0x3d57('0x7'),'fewestcalls',_0x3d57('0x8'),'rrmemory','linear','wrandom',_0x3d57('0x9')),'allowNull':![],'defaultValue':_0x3d57('0x6'),'set':function(_0x2370ba){this[_0x3d57('0xa')](_0x3d57('0xb'),_0x2370ba?_0x2370ba:_0x3d57('0xc'));},'get':function(){var _0x5a1807=this['getDataValue'](_0x3d57('0xd'));var _0x168a24=this[_0x3d57('0xe')](_0x3d57('0xf'));var _0x39c35f=this[_0x3d57('0xe')]('strategy');if(_0x5a1807===_0x3d57('0x5')){return _0x39c35f;}if(_0x168a24===_0x3d57('0x10')&&_0x39c35f===_0x3d57('0xc')||_0x168a24===_0x3d57('0x10')&&_0x39c35f===_0x3d57('0x11')){return _0x39c35f;}if(_0x168a24===_0x3d57('0x12')||_0x168a24==='predictive'||_0x168a24===_0x3d57('0x13')){return _0x39c35f;}return null;}},'servicelevel':{'type':Sequelize[_0x3d57('0x14')](0xb),'defaultValue':0x0},'context':{'type':Sequelize[_0x3d57('0x2')],'defaultValue':null},'penaltymemberslimit':{'type':Sequelize['INTEGER'](0xb)},'timeout':{'type':Sequelize[_0x3d57('0x14')](0xb),'defaultValue':0xf},'retry':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x2},'timeoutpriority':{'type':Sequelize['STRING']},'weight':{'type':Sequelize[_0x3d57('0x14')](0xb),'allowNull':!![],'defaultValue':0x0},'wrapuptime':{'type':Sequelize[_0x3d57('0x14')](0xb),'defaultValue':0x0},'autofill':{'type':Sequelize[_0x3d57('0x4')](_0x3d57('0x15'),'no'),'defaultValue':'yes'},'autopause':{'type':Sequelize['ENUM']('yes','no',_0x3d57('0x16')),'defaultValue':'no'},'autopausedelay':{'type':Sequelize[_0x3d57('0x14')](0xb)},'autopausebusy':{'type':Sequelize[_0x3d57('0x4')]('yes','no'),'defaultValue':'no'},'autopauseunavail':{'type':Sequelize[_0x3d57('0x4')](_0x3d57('0x15'),'no'),'defaultValue':'no'},'maxlen':{'type':Sequelize[_0x3d57('0x14')](0xb),'defaultValue':0x0},'setinterfacevar':{'type':Sequelize[_0x3d57('0x4')]('yes','no'),'defaultValue':'no'},'setqueueentryvar':{'type':Sequelize[_0x3d57('0x4')](_0x3d57('0x15'),'no'),'defautValue':'no'},'setqueuevar':{'type':Sequelize[_0x3d57('0x4')]('yes','no'),'defaultValue':'no'},'eventmemberstatus':{'type':Sequelize[_0x3d57('0x4')](_0x3d57('0x15'),'no'),'defaultValue':'no'},'membermacro':{'type':Sequelize['STRING'],'allowNull':!![]},'membergosub':{'type':Sequelize[_0x3d57('0x2')],'allowNull':!![]},'announce_frequency':{'type':Sequelize[_0x3d57('0x14')](0xb),'defaultValue':0x0},'min_announce_frequency':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x0},'periodic_announce_frequency':{'type':Sequelize[_0x3d57('0x14')](0xb),'defaultValue':0x0},'random_periodic_announce':{'type':Sequelize['ENUM']('yes','no'),'defaultValue':'no'},'relative_periodic_announce':{'type':Sequelize[_0x3d57('0x4')](_0x3d57('0x15'),'no'),'defaultValue':'yes'},'announce_holdtime':{'type':Sequelize['ENUM'](_0x3d57('0x15'),'no',_0x3d57('0x17')),'defaultValue':'no'},'announce_position':{'type':Sequelize['STRING'],'defaultValue':'no'},'announce_to_first_user':{'type':Sequelize[_0x3d57('0x4')]('yes','no')},'announce_position_limit':{'type':Sequelize[_0x3d57('0x14')](0xb)},'announce_round_seconds':{'type':Sequelize[_0x3d57('0x4')]('0','5','10','15','20','30'),'defaultValue':'0'},'monitor_format':{'type':Sequelize[_0x3d57('0x2')],'defaultValue':''},'monitor_type':{'type':Sequelize[_0x3d57('0x2')]},'queue_youarenext':{'type':Sequelize[_0x3d57('0x2')],'defaultValue':null},'queue_thereare':{'type':Sequelize['STRING'],'defaultValue':null},'queue_callswaiting':{'type':Sequelize[_0x3d57('0x2')],'defaultValue':null},'queue_holdtime':{'type':Sequelize['STRING'],'defaultValue':null},'queue_minute':{'type':Sequelize[_0x3d57('0x2')],'allowNull':!![],'defaultValue':null},'queue_minutes':{'type':Sequelize[_0x3d57('0x2')],'defaultValue':null},'queue_seconds':{'type':Sequelize[_0x3d57('0x2')],'defaultValue':null},'queue_thankyou':{'type':Sequelize['STRING'],'defaultValue':null},'queue_reporthold':{'type':Sequelize['STRING']},'queue_quantity1':{'type':Sequelize['STRING']},'queue_quantity2':{'type':Sequelize[_0x3d57('0x2')]},'queue_periodic_announce':{'type':Sequelize[_0x3d57('0x2')]},'queue_less_than':{'type':Sequelize['STRING']},'periodic_announce':{'type':Sequelize[_0x3d57('0x18')],'set':function(_0x3c80e8){this[_0x3d57('0xa')](_0x3d57('0x19'),_0x3c80e8?_0x3c80e8[_0x3d57('0x1a')](','):[]);},'get':function(){return this[_0x3d57('0xe')](_0x3d57('0x19'))?this[_0x3d57('0xe')](_0x3d57('0x19'))[_0x3d57('0x1b')](','):[];}},'joinempty':{'type':Sequelize[_0x3d57('0x2')],'defaultValue':_0x3d57('0x15'),'set':function(_0x35fc7f){this[_0x3d57('0xa')](_0x3d57('0x1c'),_0x35fc7f?_0x35fc7f['join'](','):undefined);},'get':function(){return this[_0x3d57('0xe')](_0x3d57('0x1c'))?this[_0x3d57('0xe')](_0x3d57('0x1c'))[_0x3d57('0x1b')](','):undefined;}},'leavewhenempty':{'type':Sequelize[_0x3d57('0x2')],'defaultValue':'no','set':function(_0x4d67b7){this[_0x3d57('0xa')](_0x3d57('0x1d'),_0x4d67b7?_0x4d67b7['join'](','):undefined);},'get':function(){return this['getDataValue'](_0x3d57('0x1d'))?this['getDataValue']('leavewhenempty')['split'](','):undefined;}},'reportholdtime':{'type':Sequelize[_0x3d57('0x4')](_0x3d57('0x15'),'no'),'defaultValue':'no'},'ringinuse':{'type':Sequelize[_0x3d57('0x4')](_0x3d57('0x15'),'no'),'defaultValue':'no'},'memberdelay':{'type':Sequelize[_0x3d57('0x14')](0xb),'defaultValue':0x0},'timeoutrestart':{'type':Sequelize[_0x3d57('0x4')]('yes','no'),'defaultValue':'no'},'defaultrule':{'type':Sequelize[_0x3d57('0x2')]},'description':{'type':Sequelize['STRING']},'acw':{'type':Sequelize['BOOLEAN'],'defaultValue':0x0,'set':function(_0x4652e0){this[_0x3d57('0xa')]('acw',_0x4652e0);if(_0x4652e0){if(this[_0x3d57('0xe')](_0x3d57('0x1e'))<0x2){this['setDataValue'](_0x3d57('0x1e'),0x2);}}}},'acwTimeout':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0xa},'dialActive':{'type':Sequelize[_0x3d57('0x1f')],'defaultValue':0x0,'comment':_0x3d57('0x20')},'dialMethod':{'type':Sequelize[_0x3d57('0x4')]('preview','progressive',_0x3d57('0x13'),_0x3d57('0x21'),_0x3d57('0x10')),'defaultValue':_0x3d57('0x12'),'comment':_0x3d57('0x22')},'dialLimitChannel':{'type':Sequelize[_0x3d57('0x14')](0x4)['UNSIGNED'],'defaultValue':0x0,'validate':{'min':0x0,'max':0x270f},'comment':'Max\x209999\x20channels,\x200\x20means\x20unlimited.'},'dialLimitQueue':{'type':Sequelize[_0x3d57('0x14')](0x4)[_0x3d57('0x23')],'defaultValue':0x0,'validate':{'min':0x0,'max':0x270f},'comment':_0x3d57('0x24')},'dialPowerLevel':{'type':Sequelize[_0x3d57('0x25')](0x2)['UNSIGNED'],'defaultValue':0x1,'validate':{'min':0x1,'max':0xa},'comment':_0x3d57('0x26')},'dialPredictiveOptimization':{'type':Sequelize[_0x3d57('0x4')](_0x3d57('0x27'),_0x3d57('0x28')),'defaultValue':'dropRate','comment':'Only\x20for\x20predictive\x20method.'},'dialPredictiveOptimizationPercentage':{'type':Sequelize[_0x3d57('0x25')](0x2)[_0x3d57('0x23')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x5f},'comment':_0x3d57('0x29')},'dialPredictiveInterval':{'type':Sequelize[_0x3d57('0x14')](0x3)[_0x3d57('0x23')],'defaultValue':0xa,'validate':{'min':0x5,'max':0x1e},'comment':_0x3d57('0x2a')},'dialOriginateCallerIdName':{'type':Sequelize[_0x3d57('0x2')]},'dialOriginateCallerIdNumber':{'type':Sequelize[_0x3d57('0x2')]},'dialOriginateTimeout':{'type':Sequelize[_0x3d57('0x14')](0x3)[_0x3d57('0x23')],'defaultValue':0x1e,'validate':{'min':0x1,'max':0x3e7},'comment':_0x3d57('0x2b')},'dialQueueOptions':{'type':Sequelize[_0x3d57('0x2')],'defaultValue':_0x3d57('0x2c'),'comment':'https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Application_Queue'},'dialQueueTimeout':{'type':Sequelize[_0x3d57('0x14')](0x3)[_0x3d57('0x23')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x3d57('0x2d')},'dialQueueProject':{'type':Sequelize[_0x3d57('0x2')],'comment':_0x3d57('0x2e')},'dialCongestionMaxRetry':{'type':Sequelize['INTEGER'](0x3)[_0x3d57('0x23')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x3d57('0x2f')},'dialCongestionRetryFrequency':{'type':Sequelize[_0x3d57('0x14')](0x5)['UNSIGNED'],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x3d57('0x30')},'dialBusyMaxRetry':{'type':Sequelize['INTEGER'](0x3)[_0x3d57('0x23')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x3d57('0x31')},'dialBusyRetryFrequency':{'type':Sequelize[_0x3d57('0x14')](0x5)[_0x3d57('0x23')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x3d57('0x32')},'dialNoAnswerMaxRetry':{'type':Sequelize[_0x3d57('0x14')](0x3)['UNSIGNED'],'defaultValue':0x3,'comment':_0x3d57('0x33')},'dialNoAnswerRetryFrequency':{'type':Sequelize[_0x3d57('0x14')](0x5)[_0x3d57('0x23')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x3d57('0x34')},'dialGlobalMaxRetry':{'type':Sequelize[_0x3d57('0x14')](0x3)[_0x3d57('0x23')],'validate':{'min':0x1,'max':0x3e7},'defaultValue':0x4,'comment':_0x3d57('0x35')},'dialTimezone':{'type':Sequelize[_0x3d57('0x2')],'defaultValue':null},'dialGlobalInterval':{'type':Sequelize[_0x3d57('0x2')],'defaultValue':_0x3d57('0x36')},'dialPrefix':{'type':Sequelize[_0x3d57('0x2')],'defaultValue':null},'dialCheckDuplicateType':{'type':Sequelize[_0x3d57('0x4')](_0x3d57('0x37'),_0x3d57('0x38'),_0x3d57('0x39')),'defaultValue':_0x3d57('0x37')},'dialAMDActive':{'type':Sequelize[_0x3d57('0x1f')],'defaultValue':0x0,'comment':_0x3d57('0x3a')},'dialAMDInitialSilence':{'type':Sequelize[_0x3d57('0x14')](0x9)['UNSIGNED'],'defaultValue':0x9c4,'validate':{'min':0x0},'comment':_0x3d57('0x3b')},'dialAMDGreeting':{'type':Sequelize['INTEGER'](0x9)[_0x3d57('0x23')],'defaultValue':0x5dc,'validate':{'min':0x0},'comment':'#AMD\x20Greeting'},'dialAMDAfterGreetingSilence':{'type':Sequelize['INTEGER'](0x9)[_0x3d57('0x23')],'defaultValue':0x320,'validate':{'min':0x0},'comment':_0x3d57('0x3c')},'dialAMDTotalAnalysisTime':{'type':Sequelize['INTEGER'](0x9)[_0x3d57('0x23')],'defaultValue':0x1388,'validate':{'min':0x0},'comment':'#AMD\x20Total\x20Analysis\x20Time'},'dialAMDMinWordLength':{'type':Sequelize[_0x3d57('0x14')](0x9)['UNSIGNED'],'defaultValue':0x64,'validate':{'min':0x0},'comment':_0x3d57('0x3d')},'dialAMDBetweenWordsSilence':{'type':Sequelize['INTEGER'](0x9)['UNSIGNED'],'defaultValue':0x32,'validate':{'min':0x0},'comment':_0x3d57('0x3e')},'dialAMDMaximumNumberOfWords':{'type':Sequelize['INTEGER'](0x9)[_0x3d57('0x23')],'defaultValue':0x3,'validate':{'min':0x0},'comment':'#AMD\x20Maximum\x20Number\x20Of\x20Words'},'dialAMDSilenceThreshold':{'type':Sequelize[_0x3d57('0x14')](0x5)[_0x3d57('0x23')],'validate':{'min':0x0,'max':0x7fff},'defaultValue':0x100,'comment':_0x3d57('0x3f')},'dialAMDMaximumWordLength':{'type':Sequelize[_0x3d57('0x14')](0x9)[_0x3d57('0x23')],'defaultValue':0x1388,'validate':{'min':0x0},'comment':_0x3d57('0x40')},'dialRecallMeTimeout':{'type':Sequelize[_0x3d57('0x14')](0x5)[_0x3d57('0x23')],'validate':{'min':0x1},'defaultValue':0x1e,'comment':'#RecallMe\x20Timeout\x20(min:1)'},'dialRecallInQueue':{'type':Sequelize[_0x3d57('0x1f')],'defaultValue':0x0,'comment':_0x3d57('0x41')},'dialOrderByScheduledAt':{'type':Sequelize[_0x3d57('0x4')](_0x3d57('0x42'),_0x3d57('0x43')),'defaultValue':_0x3d57('0x42')},'dialQueueProject2':{'type':Sequelize[_0x3d57('0x2')],'comment':_0x3d57('0x2e')},'dialAgiAfterHangupClient':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'dialAgiAfterHangupAgent':{'type':Sequelize[_0x3d57('0x1f')],'defaultValue':![]},'dialRandomLastDigitCallerIdNumber':{'type':Sequelize[_0x3d57('0x14')](0x3)[_0x3d57('0x23')],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':_0x3d57('0x44')},'dialCutDigit':{'type':Sequelize[_0x3d57('0x14')](0x3)[_0x3d57('0x23')],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':'Cut\x20Digit\x20(min:1,\x20max:15)'},'dialNoSuchNumberMaxRetry':{'type':Sequelize['INTEGER'](0x3)['UNSIGNED'],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x3d57('0x45')},'dialNoSuchNumberRetryFrequency':{'type':Sequelize[_0x3d57('0x14')](0x5)[_0x3d57('0x23')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'NoSuchNumber\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'dialDropMaxRetry':{'type':Sequelize[_0x3d57('0x14')](0x3)[_0x3d57('0x23')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'#Drop\x20Retry\x20(min:1,\x20max:999)'},'dialDropRetryFrequency':{'type':Sequelize[_0x3d57('0x14')](0x5)[_0x3d57('0x23')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x3d57('0x46')},'dialAbandonedMaxRetry':{'type':Sequelize[_0x3d57('0x14')](0x3)[_0x3d57('0x23')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x3d57('0x47')},'dialAbandonedRetryFrequency':{'type':Sequelize[_0x3d57('0x14')](0x5)[_0x3d57('0x23')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x3d57('0x48')},'dialMachineMaxRetry':{'type':Sequelize['INTEGER'](0x3)[_0x3d57('0x23')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x3d57('0x49')},'dialMachineRetryFrequency':{'type':Sequelize['INTEGER'](0x5)['UNSIGNED'],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'Machine\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'dialAgentRejectMaxRetry':{'type':Sequelize[_0x3d57('0x14')](0x3)[_0x3d57('0x23')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'#AgentReject\x20Retry\x20(min:1,\x20max:999)'},'dialAgentRejectRetryFrequency':{'type':Sequelize['INTEGER'](0x5)[_0x3d57('0x23')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x3d57('0x4a')},'mandatoryDispositionPauseId':{'type':Sequelize[_0x3d57('0x14')],'allowNull':!![],'comment':'Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled'},'mandatoryDisposition':{'type':Sequelize['BOOLEAN'],'defaultValue':![],'comment':'Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','set':function(_0x4fc9b8){if(!_0x4fc9b8)this[_0x3d57('0xa')](_0x3d57('0x4b'),null);this[_0x3d57('0xa')](_0x3d57('0x4c'),_0x4fc9b8);}},'dialPredictiveIntervalMaxThreshold':{'type':Sequelize[_0x3d57('0x14')](0x3)[_0x3d57('0x23')],'defaultValue':0x14,'validate':{'min':0x1,'max':0x64}},'dialPredictiveIntervalMinThreshold':{'type':Sequelize[_0x3d57('0x14')](0x3)[_0x3d57('0x23')],'defaultValue':0xa,'validate':{'min':0x1,'max':0x64}},'dialPreviewAutoRecallMe':{'type':Sequelize['BOOLEAN'],'defaultValue':!![]}};
\ No newline at end of file
+var _0xfe88=['never','onlyIfOpen','always','Active/Disactive\x20AMD','#AMD\x20Initial\x20Silence','#AMD\x20Greeting','#AMD\x20After\x20Greeting\x20Silence','#AMD\x20Maximum\x20Number\x20Of\x20Words','#AMD\x20Silence\x20Threshold\x20(min:0,\x20max:32767)','#AMD\x20Maximum\x20Word\x20Length','Active/Disactive\x20Recall\x20In\x20Queue','ASC','Random\x20Last\x20Digit\x20(min:1,\x20max:15)','Cut\x20Digit\x20(min:1,\x20max:15)','#NoSuchNumber\x20Retry\x20(min:1,\x20max:999)','NoSuchNumber\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Drop\x20Retry\x20(min:1,\x20max:999)','Drop\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','Abandoned\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#Machine\x20Retry\x20(min:1,\x20max:999)','Machine\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#AgentReject\x20Retry\x20(min:1,\x20max:999)','AgentReject\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','mandatoryDispositionPauseId','mandatoryDisposition','sequelize','exports','STRING','name','ENUM','inbound','default','fewestcalls','random','rrmemory','linear','wrandom','ringall','strategy','getDataValue','type','dialMethod','booked','progressive','predictive','power','INTEGER','all','yes','once','TEXT','setDataValue','join','periodic_announce','split','joinempty','leavewhenempty','BOOLEAN','acw','wrapuptime','preview','Dial\x20Method.','UNSIGNED','Max\x209999\x20channels,\x200\x20means\x20unlimited.','Max\x209999\x20member\x20in\x20queue(min:1,\x20max:9999),\x200\x20means\x20unlimited.','FLOAT','Power\x20Level:\x20Calls\x20for\x20agents\x20(min:1,\x20max:10).','agentBusyFactor','dropRate','Only\x20for\x20predictive\x20method.','Interval\x20Predictive\x20Minutes\x20(min:5\x20max:30)','Originate\x20Timeout\x20Seconds\x20(min:1,\x20max:999)','tTxX','https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Application_Queue','Queue\x20Timeout\x20Seconds\x20(min:1,\x20max:999)','AGI\x20queue\x20option\x20(use:\x20agi://127.0.0.1/square,<project_name>)','#Congestion\x20Retry\x20(min:1,\x20max:999)','#Busy\x20Retry\x20(min:1,\x20max:999)','Busy\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)','#NoAnswer\x20Retry\x20(min:1,\x20max:999)','NoAnswer\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'];(function(_0x5dd38f,_0x20b7bb){var _0x58b8d1=function(_0x281b2a){while(--_0x281b2a){_0x5dd38f['push'](_0x5dd38f['shift']());}};_0x58b8d1(++_0x20b7bb);}(_0xfe88,0x167));var _0x8fe8=function(_0x5c768b,_0x5e88a6){_0x5c768b=_0x5c768b-0x0;var _0x335af8=_0xfe88[_0x5c768b];return _0x335af8;};'use strict';var Sequelize=require(_0x8fe8('0x0'));module[_0x8fe8('0x1')]={'name':{'type':Sequelize[_0x8fe8('0x2')],'allowNull':![],'unique':_0x8fe8('0x3'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'type':{'type':Sequelize[_0x8fe8('0x4')](_0x8fe8('0x5'),'outbound'),'allowNull':![],'defaultValue':'inbound'},'musiconhold':{'type':Sequelize[_0x8fe8('0x2')],'defaultValue':_0x8fe8('0x6')},'announce':{'type':Sequelize['STRING'],'defaultValue':''},'strategy':{'type':Sequelize[_0x8fe8('0x4')]('rr','ringall','leastrecent',_0x8fe8('0x7'),_0x8fe8('0x8'),_0x8fe8('0x9'),_0x8fe8('0xa'),_0x8fe8('0xb'),'rrordered'),'allowNull':![],'defaultValue':_0x8fe8('0xc'),'set':function(_0x5139b1){this['setDataValue'](_0x8fe8('0xd'),_0x5139b1?_0x5139b1:_0x8fe8('0x9'));},'get':function(){var _0x61686e=this[_0x8fe8('0xe')](_0x8fe8('0xf'));var _0xfa764c=this[_0x8fe8('0xe')](_0x8fe8('0x10'));var _0x24cf34=this[_0x8fe8('0xe')](_0x8fe8('0xd'));if(_0x61686e===_0x8fe8('0x5')){return _0x24cf34;}if(_0xfa764c===_0x8fe8('0x11')&&_0x24cf34===_0x8fe8('0x9')||_0xfa764c==='booked'&&_0x24cf34==='roundrobin'){return _0x24cf34;}if(_0xfa764c===_0x8fe8('0x12')||_0xfa764c===_0x8fe8('0x13')||_0xfa764c===_0x8fe8('0x14')){return _0x24cf34;}return null;}},'servicelevel':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x0},'context':{'type':Sequelize[_0x8fe8('0x2')],'defaultValue':null},'penaltymemberslimit':{'type':Sequelize[_0x8fe8('0x15')](0xb)},'timeout':{'type':Sequelize[_0x8fe8('0x15')](0xb),'defaultValue':0xf},'retry':{'type':Sequelize['INTEGER'](0xb),'defaultValue':0x2},'timeoutpriority':{'type':Sequelize[_0x8fe8('0x2')]},'weight':{'type':Sequelize[_0x8fe8('0x15')](0xb),'allowNull':!![],'defaultValue':0x0},'wrapuptime':{'type':Sequelize[_0x8fe8('0x15')](0xb),'defaultValue':0x0},'autofill':{'type':Sequelize[_0x8fe8('0x4')]('yes','no'),'defaultValue':'yes'},'autopause':{'type':Sequelize[_0x8fe8('0x4')]('yes','no',_0x8fe8('0x16')),'defaultValue':'no'},'autopausedelay':{'type':Sequelize[_0x8fe8('0x15')](0xb)},'autopausebusy':{'type':Sequelize[_0x8fe8('0x4')](_0x8fe8('0x17'),'no'),'defaultValue':'no'},'autopauseunavail':{'type':Sequelize[_0x8fe8('0x4')]('yes','no'),'defaultValue':'no'},'maxlen':{'type':Sequelize[_0x8fe8('0x15')](0xb),'defaultValue':0x0},'setinterfacevar':{'type':Sequelize[_0x8fe8('0x4')](_0x8fe8('0x17'),'no'),'defaultValue':'no'},'setqueueentryvar':{'type':Sequelize[_0x8fe8('0x4')](_0x8fe8('0x17'),'no'),'defautValue':'no'},'setqueuevar':{'type':Sequelize[_0x8fe8('0x4')](_0x8fe8('0x17'),'no'),'defaultValue':'no'},'eventmemberstatus':{'type':Sequelize[_0x8fe8('0x4')](_0x8fe8('0x17'),'no'),'defaultValue':'no'},'membermacro':{'type':Sequelize['STRING'],'allowNull':!![]},'membergosub':{'type':Sequelize[_0x8fe8('0x2')],'allowNull':!![]},'announce_frequency':{'type':Sequelize[_0x8fe8('0x15')](0xb),'defaultValue':0x0},'min_announce_frequency':{'type':Sequelize[_0x8fe8('0x15')](0xb),'defaultValue':0x0},'periodic_announce_frequency':{'type':Sequelize[_0x8fe8('0x15')](0xb),'defaultValue':0x0},'random_periodic_announce':{'type':Sequelize[_0x8fe8('0x4')](_0x8fe8('0x17'),'no'),'defaultValue':'no'},'relative_periodic_announce':{'type':Sequelize['ENUM']('yes','no'),'defaultValue':_0x8fe8('0x17')},'announce_holdtime':{'type':Sequelize[_0x8fe8('0x4')](_0x8fe8('0x17'),'no',_0x8fe8('0x18')),'defaultValue':'no'},'announce_position':{'type':Sequelize[_0x8fe8('0x2')],'defaultValue':'no'},'announce_to_first_user':{'type':Sequelize['ENUM'](_0x8fe8('0x17'),'no')},'announce_position_limit':{'type':Sequelize['INTEGER'](0xb)},'announce_round_seconds':{'type':Sequelize['ENUM']('0','5','10','15','20','30'),'defaultValue':'0'},'monitor_format':{'type':Sequelize[_0x8fe8('0x2')],'defaultValue':''},'monitor_type':{'type':Sequelize[_0x8fe8('0x2')]},'queue_youarenext':{'type':Sequelize[_0x8fe8('0x2')],'defaultValue':null},'queue_thereare':{'type':Sequelize[_0x8fe8('0x2')],'defaultValue':null},'queue_callswaiting':{'type':Sequelize[_0x8fe8('0x2')],'defaultValue':null},'queue_holdtime':{'type':Sequelize[_0x8fe8('0x2')],'defaultValue':null},'queue_minute':{'type':Sequelize[_0x8fe8('0x2')],'allowNull':!![],'defaultValue':null},'queue_minutes':{'type':Sequelize[_0x8fe8('0x2')],'defaultValue':null},'queue_seconds':{'type':Sequelize[_0x8fe8('0x2')],'defaultValue':null},'queue_thankyou':{'type':Sequelize[_0x8fe8('0x2')],'defaultValue':null},'queue_reporthold':{'type':Sequelize[_0x8fe8('0x2')]},'queue_quantity1':{'type':Sequelize['STRING']},'queue_quantity2':{'type':Sequelize[_0x8fe8('0x2')]},'queue_periodic_announce':{'type':Sequelize[_0x8fe8('0x2')]},'queue_less_than':{'type':Sequelize[_0x8fe8('0x2')]},'periodic_announce':{'type':Sequelize[_0x8fe8('0x19')],'set':function(_0x2a616f){this[_0x8fe8('0x1a')]('periodic_announce',_0x2a616f?_0x2a616f[_0x8fe8('0x1b')](','):[]);},'get':function(){return this[_0x8fe8('0xe')](_0x8fe8('0x1c'))?this[_0x8fe8('0xe')]('periodic_announce')[_0x8fe8('0x1d')](','):[];}},'joinempty':{'type':Sequelize['STRING'],'defaultValue':'yes','set':function(_0x2176dd){this[_0x8fe8('0x1a')](_0x8fe8('0x1e'),_0x2176dd?_0x2176dd[_0x8fe8('0x1b')](','):undefined);},'get':function(){return this[_0x8fe8('0xe')](_0x8fe8('0x1e'))?this[_0x8fe8('0xe')](_0x8fe8('0x1e'))[_0x8fe8('0x1d')](','):undefined;}},'leavewhenempty':{'type':Sequelize['STRING'],'defaultValue':'no','set':function(_0x4fe9dd){this[_0x8fe8('0x1a')]('leavewhenempty',_0x4fe9dd?_0x4fe9dd['join'](','):undefined);},'get':function(){return this[_0x8fe8('0xe')](_0x8fe8('0x1f'))?this[_0x8fe8('0xe')](_0x8fe8('0x1f'))[_0x8fe8('0x1d')](','):undefined;}},'reportholdtime':{'type':Sequelize[_0x8fe8('0x4')](_0x8fe8('0x17'),'no'),'defaultValue':'no'},'ringinuse':{'type':Sequelize[_0x8fe8('0x4')](_0x8fe8('0x17'),'no'),'defaultValue':'no'},'memberdelay':{'type':Sequelize[_0x8fe8('0x15')](0xb),'defaultValue':0x0},'timeoutrestart':{'type':Sequelize[_0x8fe8('0x4')](_0x8fe8('0x17'),'no'),'defaultValue':'no'},'defaultrule':{'type':Sequelize['STRING']},'description':{'type':Sequelize[_0x8fe8('0x2')]},'acw':{'type':Sequelize[_0x8fe8('0x20')],'defaultValue':0x0,'set':function(_0x19e9a6){this[_0x8fe8('0x1a')](_0x8fe8('0x21'),_0x19e9a6);if(_0x19e9a6){if(this[_0x8fe8('0xe')]('wrapuptime')<0x2){this[_0x8fe8('0x1a')](_0x8fe8('0x22'),0x2);}}}},'acwTimeout':{'type':Sequelize[_0x8fe8('0x15')](0xb),'defaultValue':0xa},'dialActive':{'type':Sequelize[_0x8fe8('0x20')],'defaultValue':0x0,'comment':'Active/Disactive\x20Campaign'},'dialMethod':{'type':Sequelize[_0x8fe8('0x4')](_0x8fe8('0x23'),'progressive',_0x8fe8('0x14'),_0x8fe8('0x13'),_0x8fe8('0x11')),'defaultValue':_0x8fe8('0x12'),'comment':_0x8fe8('0x24')},'dialLimitChannel':{'type':Sequelize[_0x8fe8('0x15')](0x4)[_0x8fe8('0x25')],'defaultValue':0x0,'validate':{'min':0x0,'max':0x270f},'comment':_0x8fe8('0x26')},'dialLimitQueue':{'type':Sequelize[_0x8fe8('0x15')](0x4)[_0x8fe8('0x25')],'defaultValue':0x0,'validate':{'min':0x0,'max':0x270f},'comment':_0x8fe8('0x27')},'dialPowerLevel':{'type':Sequelize[_0x8fe8('0x28')](0x2)['UNSIGNED'],'defaultValue':0x1,'validate':{'min':0x1,'max':0xa},'comment':_0x8fe8('0x29')},'dialPredictiveOptimization':{'type':Sequelize[_0x8fe8('0x4')](_0x8fe8('0x2a'),_0x8fe8('0x2b')),'defaultValue':_0x8fe8('0x2b'),'comment':_0x8fe8('0x2c')},'dialPredictiveOptimizationPercentage':{'type':Sequelize[_0x8fe8('0x28')](0x2)[_0x8fe8('0x25')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x5f},'comment':'Predictive\x20Optimization\x20Percentage\x20(min:\x201,\x20max:\x2095)'},'dialPredictiveInterval':{'type':Sequelize[_0x8fe8('0x15')](0x3)[_0x8fe8('0x25')],'defaultValue':0xa,'validate':{'min':0x5,'max':0x1e},'comment':_0x8fe8('0x2d')},'dialOriginateCallerIdName':{'type':Sequelize[_0x8fe8('0x2')]},'dialOriginateCallerIdNumber':{'type':Sequelize[_0x8fe8('0x2')]},'dialOriginateTimeout':{'type':Sequelize[_0x8fe8('0x15')](0x3)[_0x8fe8('0x25')],'defaultValue':0x1e,'validate':{'min':0x1,'max':0x3e7},'comment':_0x8fe8('0x2e')},'dialQueueOptions':{'type':Sequelize['STRING'],'defaultValue':_0x8fe8('0x2f'),'comment':_0x8fe8('0x30')},'dialQueueTimeout':{'type':Sequelize[_0x8fe8('0x15')](0x3)[_0x8fe8('0x25')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x8fe8('0x31')},'dialQueueProject':{'type':Sequelize[_0x8fe8('0x2')],'comment':_0x8fe8('0x32')},'dialCongestionMaxRetry':{'type':Sequelize[_0x8fe8('0x15')](0x3)[_0x8fe8('0x25')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x8fe8('0x33')},'dialCongestionRetryFrequency':{'type':Sequelize['INTEGER'](0x5)[_0x8fe8('0x25')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':'Congestion\x20Retry\x20Frequency\x20Minutes\x20(min:1,\x20max:99999)'},'dialBusyMaxRetry':{'type':Sequelize[_0x8fe8('0x15')](0x3)[_0x8fe8('0x25')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x8fe8('0x34')},'dialBusyRetryFrequency':{'type':Sequelize[_0x8fe8('0x15')](0x5)[_0x8fe8('0x25')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x8fe8('0x35')},'dialNoAnswerMaxRetry':{'type':Sequelize['INTEGER'](0x3)[_0x8fe8('0x25')],'defaultValue':0x3,'comment':_0x8fe8('0x36')},'dialNoAnswerRetryFrequency':{'type':Sequelize[_0x8fe8('0x15')](0x5)[_0x8fe8('0x25')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x8fe8('0x37')},'dialGlobalMaxRetry':{'type':Sequelize[_0x8fe8('0x15')](0x3)[_0x8fe8('0x25')],'validate':{'min':0x1,'max':0x3e7},'defaultValue':0x4,'comment':'#Global\x20Max\x20Retry\x20(min:1,\x20max:999)'},'dialTimezone':{'type':Sequelize[_0x8fe8('0x2')],'defaultValue':null},'dialGlobalInterval':{'type':Sequelize['STRING'],'defaultValue':'07:00-22:00,*,*,*'},'dialPrefix':{'type':Sequelize[_0x8fe8('0x2')],'defaultValue':null},'dialCheckDuplicateType':{'type':Sequelize[_0x8fe8('0x4')]('always',_0x8fe8('0x38'),_0x8fe8('0x39')),'defaultValue':_0x8fe8('0x3a')},'dialAMDActive':{'type':Sequelize['BOOLEAN'],'defaultValue':0x0,'comment':_0x8fe8('0x3b')},'dialAMDInitialSilence':{'type':Sequelize[_0x8fe8('0x15')](0x9)[_0x8fe8('0x25')],'defaultValue':0x9c4,'validate':{'min':0x0},'comment':_0x8fe8('0x3c')},'dialAMDGreeting':{'type':Sequelize['INTEGER'](0x9)[_0x8fe8('0x25')],'defaultValue':0x5dc,'validate':{'min':0x0},'comment':_0x8fe8('0x3d')},'dialAMDAfterGreetingSilence':{'type':Sequelize[_0x8fe8('0x15')](0x9)[_0x8fe8('0x25')],'defaultValue':0x320,'validate':{'min':0x0},'comment':_0x8fe8('0x3e')},'dialAMDTotalAnalysisTime':{'type':Sequelize['INTEGER'](0x9)[_0x8fe8('0x25')],'defaultValue':0x1388,'validate':{'min':0x0},'comment':'#AMD\x20Total\x20Analysis\x20Time'},'dialAMDMinWordLength':{'type':Sequelize[_0x8fe8('0x15')](0x9)[_0x8fe8('0x25')],'defaultValue':0x64,'validate':{'min':0x0},'comment':'#AMD\x20Min\x20Word\x20Length'},'dialAMDBetweenWordsSilence':{'type':Sequelize[_0x8fe8('0x15')](0x9)[_0x8fe8('0x25')],'defaultValue':0x32,'validate':{'min':0x0},'comment':'#AMD\x20Between\x20Words\x20Silence'},'dialAMDMaximumNumberOfWords':{'type':Sequelize[_0x8fe8('0x15')](0x9)[_0x8fe8('0x25')],'defaultValue':0x3,'validate':{'min':0x0},'comment':_0x8fe8('0x3f')},'dialAMDSilenceThreshold':{'type':Sequelize[_0x8fe8('0x15')](0x5)['UNSIGNED'],'validate':{'min':0x0,'max':0x7fff},'defaultValue':0x100,'comment':_0x8fe8('0x40')},'dialAMDMaximumWordLength':{'type':Sequelize[_0x8fe8('0x15')](0x9)[_0x8fe8('0x25')],'defaultValue':0x1388,'validate':{'min':0x0},'comment':_0x8fe8('0x41')},'dialRecallMeTimeout':{'type':Sequelize['INTEGER'](0x5)['UNSIGNED'],'validate':{'min':0x1},'defaultValue':0x1e,'comment':'#RecallMe\x20Timeout\x20(min:1)'},'dialRecallInQueue':{'type':Sequelize['BOOLEAN'],'defaultValue':0x0,'comment':_0x8fe8('0x42')},'dialOrderByScheduledAt':{'type':Sequelize[_0x8fe8('0x4')]('DESC',_0x8fe8('0x43')),'defaultValue':'DESC'},'dialQueueProject2':{'type':Sequelize['STRING'],'comment':_0x8fe8('0x32')},'dialAgiAfterHangupClient':{'type':Sequelize[_0x8fe8('0x20')],'defaultValue':![]},'dialAgiAfterHangupAgent':{'type':Sequelize[_0x8fe8('0x20')],'defaultValue':![]},'dialRandomLastDigitCallerIdNumber':{'type':Sequelize[_0x8fe8('0x15')](0x3)[_0x8fe8('0x25')],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':_0x8fe8('0x44')},'dialCutDigit':{'type':Sequelize['INTEGER'](0x3)[_0x8fe8('0x25')],'validate':{'min':0x0,'max':0xf},'defaultValue':0x0,'comment':_0x8fe8('0x45')},'dialNoSuchNumberMaxRetry':{'type':Sequelize[_0x8fe8('0x15')](0x3)[_0x8fe8('0x25')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x8fe8('0x46')},'dialNoSuchNumberRetryFrequency':{'type':Sequelize[_0x8fe8('0x15')](0x5)[_0x8fe8('0x25')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x8fe8('0x47')},'dialDropMaxRetry':{'type':Sequelize[_0x8fe8('0x15')](0x3)[_0x8fe8('0x25')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x8fe8('0x48')},'dialDropRetryFrequency':{'type':Sequelize[_0x8fe8('0x15')](0x5)['UNSIGNED'],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x8fe8('0x49')},'dialAbandonedMaxRetry':{'type':Sequelize['INTEGER'](0x3)[_0x8fe8('0x25')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':'#Abandoned\x20Retry\x20(min:1,\x20max:999)'},'dialAbandonedRetryFrequency':{'type':Sequelize[_0x8fe8('0x15')](0x5)[_0x8fe8('0x25')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x8fe8('0x4a')},'dialMachineMaxRetry':{'type':Sequelize[_0x8fe8('0x15')](0x3)[_0x8fe8('0x25')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x8fe8('0x4b')},'dialMachineRetryFrequency':{'type':Sequelize[_0x8fe8('0x15')](0x5)['UNSIGNED'],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x8fe8('0x4c')},'dialAgentRejectMaxRetry':{'type':Sequelize[_0x8fe8('0x15')](0x3)[_0x8fe8('0x25')],'defaultValue':0x3,'validate':{'min':0x1,'max':0x3e7},'comment':_0x8fe8('0x4d')},'dialAgentRejectRetryFrequency':{'type':Sequelize[_0x8fe8('0x15')](0x5)[_0x8fe8('0x25')],'validate':{'min':0x1,'max':0x1869f},'defaultValue':0x96,'comment':_0x8fe8('0x4e')},'mandatoryDispositionPauseId':{'type':Sequelize[_0x8fe8('0x15')],'allowNull':!![],'comment':_0x8fe8('0x4f')},'mandatoryDisposition':{'type':Sequelize[_0x8fe8('0x20')],'defaultValue':![],'comment':_0x8fe8('0x50'),'set':function(_0x10298c){if(!_0x10298c)this[_0x8fe8('0x1a')](_0x8fe8('0x51'),null);this[_0x8fe8('0x1a')](_0x8fe8('0x52'),_0x10298c);}},'dialPredictiveIntervalMaxThreshold':{'type':Sequelize['INTEGER'](0x3)[_0x8fe8('0x25')],'defaultValue':0x14,'validate':{'min':0x1,'max':0x64}},'dialPredictiveIntervalMinThreshold':{'type':Sequelize[_0x8fe8('0x15')](0x3)['UNSIGNED'],'defaultValue':0xa,'validate':{'min':0x1,'max':0x64}},'dialPreviewAutoRecallMe':{'type':Sequelize[_0x8fe8('0x20')],'defaultValue':!![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdba4=['cm_contacts','deletedAt\x20IS\x20NULL','removeLists','getBlackLists','addBlackLists','spread','cm_hopper_black','removeBlackLists','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','ejs','fs-extra','squel','jsforce','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','status','json','limit','undefined','offset','count','set','apply','reject','save','update','then','destroy','get','VoiceQueues','inbound','QueueCampaigns','outbound','map','value','includes','type','find','name','UserProfileResource','end','stack','send','index','VoiceQueue','fieldName','key','query','filters','model','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','merge','VIRTUAL','filter','options','includeAll','include','findAll','params','keys','rawAttributes','intersection','catch','create','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','autoAssociation','error','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','clone','omit','createdAt','updatedAt','body','findOne','VoiceQueueId','CmHopper','rows','CmHopperHistory','order','getHopperFinals','CmHopperFinal','getHopperBlacks','CmHopperBlack','getTeams','addTeams','teams','Team','User','online','voicePause','interface','flatMap','Agents','forEach','penalty','sequelize','each','TeamVoiceQueue','upsert','UserVoiceQueue','findOrCreate','UserVoiceQueueRt','isNil','SIP/%s','emit','userVoiceQueue:save','removeTeams','field','tq.TeamId','team_has_voice_queues','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','VoiceQueueId\x20=\x20?','ut.UserId\x20=\x20?','push','toString','SELECT','TeamId','all','union','ids','isEmpty','removeAgents','userVoiceQueue:remove','addAgents','isArray','getAgents','getMembers','getLists','CmList','addLists','dialCheckDuplicateType','always','into','cm_hopper','fromQuery','phone','scheduledAt','ContactId','ListId','select','NOW()','CmListId','from','ListId\x20=\x20?','phone\x20IS\x20NOT\x20NULL','phone\x20NOT\x20IN\x20(?)','COALESCE(calleridnum,\x27\x27)','cm_hopper_final','COALESCE(phone,\x27\x27)','onlyIfOpen','insert'];(function(_0x1e8eb3,_0x288c96){var _0x4b645d=function(_0x4614ca){while(--_0x4614ca){_0x1e8eb3['push'](_0x1e8eb3['shift']());}};_0x4b645d(++_0x288c96);}(_0xdba4,0xc2));var _0x4dba=function(_0x3ac588,_0x1d4856){_0x3ac588=_0x3ac588-0x0;var _0x51d53d=_0xdba4[_0x3ac588];return _0x51d53d;};'use strict';var emlformat=require(_0x4dba('0x0'));var rimraf=require(_0x4dba('0x1'));var zipdir=require(_0x4dba('0x2'));var jsonpatch=require(_0x4dba('0x3'));var rp=require(_0x4dba('0x4'));var moment=require(_0x4dba('0x5'));var BPromise=require(_0x4dba('0x6'));var Mustache=require(_0x4dba('0x7'));var util=require(_0x4dba('0x8'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x4dba('0x9'));var fs=require('fs');var fs_extra=require(_0x4dba('0xa'));var _=require('lodash');var squel=require(_0x4dba('0xb'));var crypto=require('crypto');var jsforce=require(_0x4dba('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x4dba('0xd'));var querystring=require(_0x4dba('0xe'));var Papa=require(_0x4dba('0xf'));var Redis=require(_0x4dba('0x10'));var authService=require(_0x4dba('0x11'));var qs=require(_0x4dba('0x12'));var as=require(_0x4dba('0x13'));var hardwareService=require(_0x4dba('0x14'));var logger=require('../../config/logger')('api');var utils=require(_0x4dba('0x15'));var config=require(_0x4dba('0x16'));var licenseUtil=require(_0x4dba('0x17'));var db=require(_0x4dba('0x18'))['db'];config[_0x4dba('0x19')]=_[_0x4dba('0x1a')](config[_0x4dba('0x19')],{'host':_0x4dba('0x1b'),'port':0x18eb});var socket=require(_0x4dba('0x1c'))(new Redis(config[_0x4dba('0x19')]));require('./voiceQueue.socket')[_0x4dba('0x1d')](socket);function respondWithStatusCode(_0x323361,_0x27d4e8){_0x27d4e8=_0x27d4e8||0xcc;return function(_0xee4d31){if(_0xee4d31){return _0x323361['sendStatus'](_0x27d4e8);}return _0x323361[_0x4dba('0x1e')](_0x27d4e8)['end']();};}function respondWithResult(_0x5f499e,_0x9f97de){_0x9f97de=_0x9f97de||0xc8;return function(_0x5d4f12){if(_0x5d4f12){return _0x5f499e[_0x4dba('0x1e')](_0x9f97de)[_0x4dba('0x1f')](_0x5d4f12);}};}function respondWithFilteredResult(_0x3aa9d8,_0x16b9ee){return function(_0x51300c){if(_0x51300c){var _0x391be9=typeof _0x16b9ee['offset']==='undefined'&&typeof _0x16b9ee[_0x4dba('0x20')]===_0x4dba('0x21');var _0x450157=_0x51300c['count'];var _0x5bb821=_0x391be9?0x0:_0x16b9ee[_0x4dba('0x22')];var _0x45fd3c=_0x391be9?_0x51300c[_0x4dba('0x23')]:_0x16b9ee[_0x4dba('0x22')]+_0x16b9ee[_0x4dba('0x20')];var _0x4aec27;if(_0x45fd3c>=_0x450157){_0x45fd3c=_0x450157;_0x4aec27=0xc8;}else{_0x4aec27=0xce;}_0x3aa9d8['status'](_0x4aec27);return _0x3aa9d8[_0x4dba('0x24')]('Content-Range',_0x5bb821+'-'+_0x45fd3c+'/'+_0x450157)[_0x4dba('0x1f')](_0x51300c);}return null;};}function patchUpdates(_0x2043a3){return function(_0x1dc237){try{jsonpatch[_0x4dba('0x25')](_0x1dc237,_0x2043a3,!![]);}catch(_0x4b4ae0){return BPromise[_0x4dba('0x26')](_0x4b4ae0);}return _0x1dc237[_0x4dba('0x27')]();};}function saveUpdates(_0x45d73f,_0x223d03){return function(_0x5abc12){if(_0x5abc12){return _0x5abc12[_0x4dba('0x28')](_0x45d73f)[_0x4dba('0x29')](function(_0x1b17dc){return _0x1b17dc;});}return null;};}function removeEntity(_0x4f5315,_0x421b21){return function(_0x427ca6){if(_0x427ca6){return _0x427ca6[_0x4dba('0x2a')]()[_0x4dba('0x29')](function(){var _0xd0bd40=_0x427ca6[_0x4dba('0x2b')]({'plain':!![]});var _0x1dd77e=[{'name':_0x4dba('0x2c'),'value':_0x4dba('0x2d'),'ignore':![]},{'name':_0x4dba('0x2e'),'value':_0x4dba('0x2f'),'ignore':![]}];var _0xb79e3a=_(_0x1dd77e)['filter']('ignore')[_0x4dba('0x30')](_0x4dba('0x31'))[_0x4dba('0x31')]();if(_[_0x4dba('0x32')](_0xb79e3a,_0xd0bd40[_0x4dba('0x33')])){return;}var _0x4737bd=_[_0x4dba('0x34')](_0x1dd77e,['value',_0xd0bd40['type']])[_0x4dba('0x35')];return db[_0x4dba('0x36')][_0x4dba('0x2a')]({'where':{'type':_0x4737bd,'resourceId':_0xd0bd40['id']}})[_0x4dba('0x29')](function(){return _0x427ca6;});})['then'](function(){_0x4f5315[_0x4dba('0x1e')](0xcc)[_0x4dba('0x37')]();});}};}function handleEntityNotFound(_0x167d62,_0x17fef3){return function(_0x686f69){if(!_0x686f69){_0x167d62['sendStatus'](0x194);}return _0x686f69;};}function handleError(_0x22957c,_0xa9caeb){_0xa9caeb=_0xa9caeb||0x1f4;return function(_0x888ea9){logger['error'](_0x888ea9[_0x4dba('0x38')]);if(_0x888ea9[_0x4dba('0x35')]){delete _0x888ea9[_0x4dba('0x35')];}_0x22957c[_0x4dba('0x1e')](_0xa9caeb)[_0x4dba('0x39')](_0x888ea9);};}exports[_0x4dba('0x3a')]=function(_0x436253,_0x330065){var _0x1f1fd4={},_0xdec00f={},_0x5152ef={'count':0x0,'rows':[]};var _0x291eef=_[_0x4dba('0x30')](db[_0x4dba('0x3b')]['rawAttributes'],function(_0x15baea){return{'name':_0x15baea[_0x4dba('0x3c')],'type':_0x15baea[_0x4dba('0x33')][_0x4dba('0x3d')]};});_0xdec00f['model']=_['map'](_0x291eef,'name');_0xdec00f[_0x4dba('0x3e')]=_['keys'](_0x436253[_0x4dba('0x3e')]);_0xdec00f[_0x4dba('0x3f')]=_['intersection'](_0xdec00f[_0x4dba('0x40')],_0xdec00f[_0x4dba('0x3e')]);_0x1f1fd4[_0x4dba('0x41')]=_['intersection'](_0xdec00f['model'],qs[_0x4dba('0x42')](_0x436253[_0x4dba('0x3e')][_0x4dba('0x42')]));_0x1f1fd4[_0x4dba('0x41')]=_0x1f1fd4[_0x4dba('0x41')][_0x4dba('0x43')]?_0x1f1fd4[_0x4dba('0x41')]:_0xdec00f[_0x4dba('0x40')];if(!_0x436253['query'][_0x4dba('0x44')](_0x4dba('0x45'))){_0x1f1fd4[_0x4dba('0x20')]=qs[_0x4dba('0x20')](_0x436253[_0x4dba('0x3e')][_0x4dba('0x20')]);_0x1f1fd4[_0x4dba('0x22')]=qs[_0x4dba('0x22')](_0x436253[_0x4dba('0x3e')][_0x4dba('0x22')]);}_0x1f1fd4['order']=qs[_0x4dba('0x46')](_0x436253[_0x4dba('0x3e')]['sort']);_0x1f1fd4[_0x4dba('0x47')]=qs[_0x4dba('0x3f')](_[_0x4dba('0x48')](_0x436253[_0x4dba('0x3e')],_0xdec00f[_0x4dba('0x3f')]),_0x291eef);if(_0x436253[_0x4dba('0x3e')]['filter']){_0x1f1fd4[_0x4dba('0x47')]=_[_0x4dba('0x49')](_0x1f1fd4['where'],{'$or':_[_0x4dba('0x30')](_0x291eef,function(_0x53f28f){if(_0x53f28f[_0x4dba('0x33')]!==_0x4dba('0x4a')){var _0x3af454={};_0x3af454[_0x53f28f[_0x4dba('0x35')]]={'$like':'%'+_0x436253['query'][_0x4dba('0x4b')]+'%'};return _0x3af454;}})});}_0x1f1fd4=_['merge']({},_0x1f1fd4,_0x436253[_0x4dba('0x4c')]);var _0x263573={'where':_0x1f1fd4[_0x4dba('0x47')]};return db[_0x4dba('0x3b')][_0x4dba('0x23')](_0x263573)[_0x4dba('0x29')](function(_0x418624){_0x5152ef[_0x4dba('0x23')]=_0x418624;if(_0x436253[_0x4dba('0x3e')][_0x4dba('0x4d')]){_0x1f1fd4[_0x4dba('0x4e')]=[{'all':!![]}];}return db['VoiceQueue'][_0x4dba('0x4f')](_0x1f1fd4);})[_0x4dba('0x29')](function(_0x2ec8a2){_0x5152ef['rows']=_0x2ec8a2;return _0x5152ef;})[_0x4dba('0x29')](respondWithFilteredResult(_0x330065,_0x1f1fd4))['catch'](handleError(_0x330065,null));};exports['show']=function(_0x1ce9e6,_0x3ca2d8){var _0x4d2115={'raw':![],'where':{'id':_0x1ce9e6[_0x4dba('0x50')]['id']}},_0x5930f9={};_0x5930f9[_0x4dba('0x40')]=_[_0x4dba('0x51')](db[_0x4dba('0x3b')][_0x4dba('0x52')]);_0x5930f9['query']=_['keys'](_0x1ce9e6[_0x4dba('0x3e')]);_0x5930f9[_0x4dba('0x3f')]=_[_0x4dba('0x53')](_0x5930f9['model'],_0x5930f9['query']);_0x4d2115['attributes']=_[_0x4dba('0x53')](_0x5930f9['model'],qs[_0x4dba('0x42')](_0x1ce9e6[_0x4dba('0x3e')][_0x4dba('0x42')]));_0x4d2115[_0x4dba('0x41')]=_0x4d2115['attributes'][_0x4dba('0x43')]?_0x4d2115[_0x4dba('0x41')]:_0x5930f9['model'];if(_0x1ce9e6[_0x4dba('0x3e')][_0x4dba('0x4d')]){_0x4d2115[_0x4dba('0x4e')]=[{'all':!![]}];}_0x4d2115=_[_0x4dba('0x49')]({},_0x4d2115,_0x1ce9e6[_0x4dba('0x4c')]);return db[_0x4dba('0x3b')][_0x4dba('0x34')](_0x4d2115)['then'](handleEntityNotFound(_0x3ca2d8,null))[_0x4dba('0x29')](respondWithResult(_0x3ca2d8,null))[_0x4dba('0x54')](handleError(_0x3ca2d8,null));};exports[_0x4dba('0x55')]=function(_0x36b161,_0x397b04){return db[_0x4dba('0x3b')][_0x4dba('0x55')](_0x36b161['body'],{})[_0x4dba('0x29')](function(_0x5cefba){var _0xdaa11a=_0x36b161[_0x4dba('0x56')]['get']({'plain':!![]});if(!_0xdaa11a)throw new Error(_0x4dba('0x57'));if(_0xdaa11a[_0x4dba('0x58')]===_0x4dba('0x56')){var _0x515a70=_0x5cefba[_0x4dba('0x2b')]({'plain':!![]});var _0x397e=[{'name':_0x4dba('0x2c'),'value':_0x4dba('0x2d')},{'name':'QueueCampaigns','value':_0x4dba('0x2f')}];var _0x4d4320=_['find'](_0x397e,[_0x4dba('0x31'),_0x515a70[_0x4dba('0x33')]])[_0x4dba('0x35')];return db[_0x4dba('0x59')][_0x4dba('0x34')]({'where':{'name':_0x4d4320,'userProfileId':_0xdaa11a[_0x4dba('0x5a')]},'raw':!![]})[_0x4dba('0x29')](function(_0x3642b5){if(_0x3642b5&&_0x3642b5[_0x4dba('0x5b')]===0x0){return db['UserProfileResource'][_0x4dba('0x55')]({'name':_0x515a70[_0x4dba('0x35')],'resourceId':_0x515a70['id'],'type':_0x3642b5[_0x4dba('0x35')],'sectionId':_0x3642b5['id']},{})[_0x4dba('0x29')](function(){return _0x5cefba;});}else{return _0x5cefba;}})[_0x4dba('0x54')](function(_0x14bb15){logger[_0x4dba('0x5c')](_0x4dba('0x5d'),_0x14bb15);throw _0x14bb15;});}return _0x5cefba;})[_0x4dba('0x29')](respondWithResult(_0x397b04,0xc9))['catch'](handleError(_0x397b04,null));};exports[_0x4dba('0x5e')]=function(_0x330bea,_0x4933a2){var _0x214920={'where':{'id':_0x330bea['params']['id']}},_0x54be09={};_0x54be09['model']=_['keys'](db['VoiceQueue'][_0x4dba('0x52')]);_0x214920['attributes']=_[_0x4dba('0x53')](_0x54be09[_0x4dba('0x40')],qs['fields'](_0x330bea[_0x4dba('0x3e')][_0x4dba('0x42')]));_0x214920['attributes']=_0x214920['attributes'][_0x4dba('0x43')]?_0x214920[_0x4dba('0x41')]:_0x54be09['model'];if(_0x330bea[_0x4dba('0x3e')][_0x4dba('0x4d')]){_0x214920[_0x4dba('0x4e')]=[{'all':!![]}];}_0x214920=_[_0x4dba('0x49')]({},_0x214920,_0x330bea[_0x4dba('0x4c')]);return db['VoiceQueue'][_0x4dba('0x34')](_0x214920)['then'](handleEntityNotFound(_0x4933a2,null))[_0x4dba('0x29')](function(_0x4d9327){if(_0x4d9327){var _0x52022b=_0x4d9327[_0x4dba('0x2b')]({'plain':!![]});_0x52022b=qs[_0x4dba('0x5f')](_0x52022b,['id',_0x4dba('0x60'),_0x4dba('0x61')]);_0x330bea[_0x4dba('0x62')]=_['omit'](_0x330bea[_0x4dba('0x62')],['id',_0x4dba('0x60'),_0x4dba('0x61')]);return db[_0x4dba('0x3b')][_0x4dba('0x55')](_['merge'](_0x52022b,_0x330bea[_0x4dba('0x62')]),{'include':_0x330bea['query'][_0x4dba('0x4d')]?[{'all':!![]}]:undefined})['then'](function(_0x51609f){var _0x4c0ca9=_0x330bea[_0x4dba('0x56')][_0x4dba('0x2b')]({'plain':!![]});if(!_0x4c0ca9)throw new Error(_0x4dba('0x57'));if(_0x4c0ca9['role']===_0x4dba('0x56')){var _0x24cff1=_0x51609f[_0x4dba('0x2b')]({'plain':!![]});var _0x2b0070=[{'name':_0x4dba('0x2c'),'value':_0x4dba('0x2d')},{'name':_0x4dba('0x2e'),'value':_0x4dba('0x2f')}];var _0x2eff43=_[_0x4dba('0x34')](_0x2b0070,[_0x4dba('0x31'),_0x24cff1[_0x4dba('0x33')]])[_0x4dba('0x35')];return db[_0x4dba('0x59')]['find']({'where':{'name':_0x2eff43,'userProfileId':_0x4c0ca9[_0x4dba('0x5a')]},'raw':!![]})[_0x4dba('0x29')](function(_0x34243d){if(_0x34243d&&_0x34243d[_0x4dba('0x5b')]===0x0){return db[_0x4dba('0x36')]['create']({'name':_0x24cff1[_0x4dba('0x35')],'resourceId':_0x24cff1['id'],'type':_0x34243d[_0x4dba('0x35')],'sectionId':_0x34243d['id']},{})[_0x4dba('0x29')](function(){return _0x51609f;});}else{return _0x51609f;}})[_0x4dba('0x54')](function(_0x4b911d){logger[_0x4dba('0x5c')](_0x4dba('0x5d'),_0x4b911d);throw _0x4b911d;});}return _0x51609f;});}})[_0x4dba('0x29')](respondWithResult(_0x4933a2,0xc9))['catch'](handleError(_0x4933a2,null));};exports[_0x4dba('0x28')]=function(_0x1e3a15,_0x1546d4){if(_0x1e3a15[_0x4dba('0x62')]['id']){delete _0x1e3a15[_0x4dba('0x62')]['id'];}return db['VoiceQueue'][_0x4dba('0x34')]({'where':{'id':_0x1e3a15['params']['id']}})['then'](handleEntityNotFound(_0x1546d4,null))[_0x4dba('0x29')](saveUpdates(_0x1e3a15['body'],null))[_0x4dba('0x29')](respondWithResult(_0x1546d4,null))['catch'](handleError(_0x1546d4,null));};exports[_0x4dba('0x2a')]=function(_0x2582d2,_0xaa8f03){return db['VoiceQueue'][_0x4dba('0x34')]({'where':{'id':_0x2582d2['params']['id']}})['then'](handleEntityNotFound(_0xaa8f03,null))[_0x4dba('0x29')](removeEntity(_0xaa8f03,null))['catch'](handleError(_0xaa8f03,null));};exports['getHoppers']=function(_0x30af83,_0x8eb1bd,_0x299ac8){var _0x57514a={'raw':![],'where':{}};var _0x1ca2db={};var _0x384c18={'count':0x0,'rows':[]};return db['VoiceQueue'][_0x4dba('0x63')]({'where':{'id':_0x30af83[_0x4dba('0x50')]['id']}})[_0x4dba('0x29')](handleEntityNotFound(_0x8eb1bd,null))[_0x4dba('0x29')](function(_0x4ab478){if(_0x4ab478){_0x1ca2db[_0x4dba('0x40')]=_['keys'](db['CmHopper']['rawAttributes']);_0x1ca2db['query']=_[_0x4dba('0x51')](_0x30af83[_0x4dba('0x3e')]);_0x1ca2db[_0x4dba('0x3f')]=_['intersection'](_0x1ca2db[_0x4dba('0x40')],_0x1ca2db[_0x4dba('0x3e')]);_0x57514a['attributes']=_[_0x4dba('0x53')](_0x1ca2db['model'],qs[_0x4dba('0x42')](_0x30af83[_0x4dba('0x3e')][_0x4dba('0x42')]));_0x57514a[_0x4dba('0x41')]=_0x57514a[_0x4dba('0x41')]['length']?_0x57514a['attributes']:_0x1ca2db[_0x4dba('0x40')];if(!_0x30af83[_0x4dba('0x3e')][_0x4dba('0x44')]('nolimit')){_0x57514a[_0x4dba('0x20')]=qs[_0x4dba('0x20')](_0x30af83[_0x4dba('0x3e')][_0x4dba('0x20')]);_0x57514a[_0x4dba('0x22')]=qs['offset'](_0x30af83[_0x4dba('0x3e')][_0x4dba('0x22')]);}_0x57514a['order']=qs[_0x4dba('0x46')](_0x30af83[_0x4dba('0x3e')][_0x4dba('0x46')]);_0x57514a[_0x4dba('0x47')]=qs[_0x4dba('0x3f')](_[_0x4dba('0x48')](_0x30af83[_0x4dba('0x3e')],_0x1ca2db[_0x4dba('0x3f')]));_0x57514a[_0x4dba('0x47')][_0x4dba('0x64')]=_0x4ab478['id'];if(_0x30af83['query']['filter']){_0x57514a[_0x4dba('0x47')]=_['merge'](_0x57514a[_0x4dba('0x47')],{'$or':_['map'](_0x57514a[_0x4dba('0x41')],function(_0xf93c95){var _0x2a7e9a={};_0x2a7e9a[_0xf93c95]={'$like':'%'+_0x30af83['query'][_0x4dba('0x4b')]+'%'};return _0x2a7e9a;})});}_0x57514a=_['merge']({},_0x57514a,_0x30af83[_0x4dba('0x4c')]);return db[_0x4dba('0x65')][_0x4dba('0x23')]({'where':_0x57514a[_0x4dba('0x47')]})[_0x4dba('0x29')](function(_0x4f144d){_0x384c18[_0x4dba('0x23')]=_0x4f144d;if(_0x30af83[_0x4dba('0x3e')][_0x4dba('0x4d')]){_0x57514a['include']=[{'all':!![]}];}return db['CmHopper'][_0x4dba('0x4f')](_0x57514a);})[_0x4dba('0x29')](function(_0x164682){_0x384c18[_0x4dba('0x66')]=_0x164682;return _0x384c18;});}})['then'](respondWithFilteredResult(_0x8eb1bd,_0x57514a))['catch'](handleError(_0x8eb1bd,null));};exports['getHopperHistories']=function(_0x219e38,_0xfe2a9d,_0x4eff6d){var _0x331cdb={'raw':!![],'where':{}};var _0xb73b70={};var _0x25cda4={'count':0x0,'rows':[]};return db['VoiceQueue'][_0x4dba('0x63')]({'where':{'id':_0x219e38[_0x4dba('0x50')]['id']}})[_0x4dba('0x29')](handleEntityNotFound(_0xfe2a9d,null))['then'](function(_0x4db9c5){if(_0x4db9c5){_0xb73b70[_0x4dba('0x40')]=_['keys'](db[_0x4dba('0x67')]['rawAttributes']);_0xb73b70[_0x4dba('0x3e')]=_[_0x4dba('0x51')](_0x219e38[_0x4dba('0x3e')]);_0xb73b70[_0x4dba('0x3f')]=_['intersection'](_0xb73b70[_0x4dba('0x40')],_0xb73b70[_0x4dba('0x3e')]);_0x331cdb[_0x4dba('0x41')]=_[_0x4dba('0x53')](_0xb73b70[_0x4dba('0x40')],qs[_0x4dba('0x42')](_0x219e38[_0x4dba('0x3e')]['fields']));_0x331cdb[_0x4dba('0x41')]=_0x331cdb[_0x4dba('0x41')][_0x4dba('0x43')]?_0x331cdb['attributes']:_0xb73b70['model'];if(!_0x219e38[_0x4dba('0x3e')][_0x4dba('0x44')](_0x4dba('0x45'))){_0x331cdb[_0x4dba('0x20')]=qs[_0x4dba('0x20')](_0x219e38[_0x4dba('0x3e')][_0x4dba('0x20')]);_0x331cdb['offset']=qs[_0x4dba('0x22')](_0x219e38['query'][_0x4dba('0x22')]);}_0x331cdb[_0x4dba('0x68')]=qs[_0x4dba('0x46')](_0x219e38[_0x4dba('0x3e')][_0x4dba('0x46')]);_0x331cdb['where']=qs[_0x4dba('0x3f')](_[_0x4dba('0x48')](_0x219e38[_0x4dba('0x3e')],_0xb73b70[_0x4dba('0x3f')]));_0x331cdb[_0x4dba('0x47')][_0x4dba('0x64')]=_0x4db9c5['id'];if(_0x219e38[_0x4dba('0x3e')][_0x4dba('0x4b')]){_0x331cdb[_0x4dba('0x47')]=_['merge'](_0x331cdb[_0x4dba('0x47')],{'$or':_['map'](_0x331cdb[_0x4dba('0x41')],function(_0xbe02e8){var _0x160c42={};_0x160c42[_0xbe02e8]={'$like':'%'+_0x219e38['query'][_0x4dba('0x4b')]+'%'};return _0x160c42;})});}_0x331cdb=_[_0x4dba('0x49')]({},_0x331cdb,_0x219e38[_0x4dba('0x4c')]);return db[_0x4dba('0x67')]['count']({'where':_0x331cdb[_0x4dba('0x47')]})[_0x4dba('0x29')](function(_0x44f929){_0x25cda4[_0x4dba('0x23')]=_0x44f929;if(_0x219e38[_0x4dba('0x3e')][_0x4dba('0x4d')]){_0x331cdb['include']=[{'all':!![]}];}return db[_0x4dba('0x67')][_0x4dba('0x4f')](_0x331cdb);})[_0x4dba('0x29')](function(_0x39c666){_0x25cda4['rows']=_0x39c666;return _0x25cda4;});}})[_0x4dba('0x29')](respondWithFilteredResult(_0xfe2a9d,_0x331cdb))['catch'](handleError(_0xfe2a9d,null));};exports[_0x4dba('0x69')]=function(_0x5dc5aa,_0x43ddec,_0x3fd8a8){var _0x2d5015={'raw':!![],'where':{}};var _0x4da31f={};var _0x5daef4={'count':0x0,'rows':[]};return db[_0x4dba('0x3b')][_0x4dba('0x63')]({'where':{'id':_0x5dc5aa[_0x4dba('0x50')]['id']}})[_0x4dba('0x29')](handleEntityNotFound(_0x43ddec,null))['then'](function(_0xd9ab06){if(_0xd9ab06){_0x4da31f['model']=_['keys'](db[_0x4dba('0x6a')][_0x4dba('0x52')]);_0x4da31f[_0x4dba('0x3e')]=_['keys'](_0x5dc5aa['query']);_0x4da31f['filters']=_[_0x4dba('0x53')](_0x4da31f[_0x4dba('0x40')],_0x4da31f[_0x4dba('0x3e')]);_0x2d5015['attributes']=_['intersection'](_0x4da31f['model'],qs[_0x4dba('0x42')](_0x5dc5aa[_0x4dba('0x3e')][_0x4dba('0x42')]));_0x2d5015['attributes']=_0x2d5015[_0x4dba('0x41')][_0x4dba('0x43')]?_0x2d5015['attributes']:_0x4da31f['model'];if(!_0x5dc5aa['query'][_0x4dba('0x44')](_0x4dba('0x45'))){_0x2d5015[_0x4dba('0x20')]=qs[_0x4dba('0x20')](_0x5dc5aa[_0x4dba('0x3e')]['limit']);_0x2d5015[_0x4dba('0x22')]=qs[_0x4dba('0x22')](_0x5dc5aa[_0x4dba('0x3e')][_0x4dba('0x22')]);}_0x2d5015[_0x4dba('0x68')]=qs[_0x4dba('0x46')](_0x5dc5aa[_0x4dba('0x3e')][_0x4dba('0x46')]);_0x2d5015[_0x4dba('0x47')]=qs[_0x4dba('0x3f')](_[_0x4dba('0x48')](_0x5dc5aa[_0x4dba('0x3e')],_0x4da31f['filters']));_0x2d5015[_0x4dba('0x47')]['VoiceQueueId']=_0xd9ab06['id'];if(_0x5dc5aa['query'][_0x4dba('0x4b')]){_0x2d5015[_0x4dba('0x47')]=_[_0x4dba('0x49')](_0x2d5015[_0x4dba('0x47')],{'$or':_[_0x4dba('0x30')](_0x2d5015[_0x4dba('0x41')],function(_0x1d1dfd){var _0x754235={};_0x754235[_0x1d1dfd]={'$like':'%'+_0x5dc5aa[_0x4dba('0x3e')][_0x4dba('0x4b')]+'%'};return _0x754235;})});}_0x2d5015=_[_0x4dba('0x49')]({},_0x2d5015,_0x5dc5aa[_0x4dba('0x4c')]);return db[_0x4dba('0x6a')][_0x4dba('0x23')]({'where':_0x2d5015['where']})[_0x4dba('0x29')](function(_0xe42cd1){_0x5daef4[_0x4dba('0x23')]=_0xe42cd1;if(_0x5dc5aa[_0x4dba('0x3e')][_0x4dba('0x4d')]){_0x2d5015['include']=[{'all':!![]}];}return db[_0x4dba('0x6a')][_0x4dba('0x4f')](_0x2d5015);})[_0x4dba('0x29')](function(_0x4b9453){_0x5daef4['rows']=_0x4b9453;return _0x5daef4;});}})[_0x4dba('0x29')](respondWithFilteredResult(_0x43ddec,_0x2d5015))[_0x4dba('0x54')](handleError(_0x43ddec,null));};exports[_0x4dba('0x6b')]=function(_0x297e11,_0x376f9a,_0x11ac50){var _0x2d851f={'raw':!![],'where':{}};var _0x57c184={};var _0x16460b={'count':0x0,'rows':[]};return db[_0x4dba('0x3b')][_0x4dba('0x63')]({'where':{'id':_0x297e11['params']['id']}})[_0x4dba('0x29')](handleEntityNotFound(_0x376f9a,null))[_0x4dba('0x29')](function(_0x533d9a){if(_0x533d9a){_0x57c184[_0x4dba('0x40')]=_['keys'](db[_0x4dba('0x6c')]['rawAttributes']);_0x57c184[_0x4dba('0x3e')]=_['keys'](_0x297e11[_0x4dba('0x3e')]);_0x57c184[_0x4dba('0x3f')]=_[_0x4dba('0x53')](_0x57c184[_0x4dba('0x40')],_0x57c184[_0x4dba('0x3e')]);_0x2d851f['attributes']=_[_0x4dba('0x53')](_0x57c184[_0x4dba('0x40')],qs[_0x4dba('0x42')](_0x297e11[_0x4dba('0x3e')][_0x4dba('0x42')]));_0x2d851f[_0x4dba('0x41')]=_0x2d851f[_0x4dba('0x41')][_0x4dba('0x43')]?_0x2d851f[_0x4dba('0x41')]:_0x57c184[_0x4dba('0x40')];if(!_0x297e11[_0x4dba('0x3e')][_0x4dba('0x44')]('nolimit')){_0x2d851f[_0x4dba('0x20')]=qs[_0x4dba('0x20')](_0x297e11[_0x4dba('0x3e')]['limit']);_0x2d851f[_0x4dba('0x22')]=qs[_0x4dba('0x22')](_0x297e11['query'][_0x4dba('0x22')]);}_0x2d851f['order']=qs[_0x4dba('0x46')](_0x297e11['query'][_0x4dba('0x46')]);_0x2d851f[_0x4dba('0x47')]=qs[_0x4dba('0x3f')](_[_0x4dba('0x48')](_0x297e11[_0x4dba('0x3e')],_0x57c184[_0x4dba('0x3f')]));_0x2d851f['where'][_0x4dba('0x64')]=_0x533d9a['id'];if(_0x297e11[_0x4dba('0x3e')][_0x4dba('0x4b')]){_0x2d851f['where']=_[_0x4dba('0x49')](_0x2d851f[_0x4dba('0x47')],{'$or':_[_0x4dba('0x30')](_0x2d851f[_0x4dba('0x41')],function(_0x15a87c){var _0x4f81a4={};_0x4f81a4[_0x15a87c]={'$like':'%'+_0x297e11[_0x4dba('0x3e')][_0x4dba('0x4b')]+'%'};return _0x4f81a4;})});}_0x2d851f=_[_0x4dba('0x49')]({},_0x2d851f,_0x297e11['options']);return db[_0x4dba('0x6c')]['count']({'where':_0x2d851f[_0x4dba('0x47')]})['then'](function(_0x3c0023){_0x16460b[_0x4dba('0x23')]=_0x3c0023;if(_0x297e11['query'][_0x4dba('0x4d')]){_0x2d851f['include']=[{'all':!![]}];}return db[_0x4dba('0x6c')][_0x4dba('0x4f')](_0x2d851f);})[_0x4dba('0x29')](function(_0x53e269){_0x16460b[_0x4dba('0x66')]=_0x53e269;return _0x16460b;});}})['then'](respondWithFilteredResult(_0x376f9a,_0x2d851f))[_0x4dba('0x54')](handleError(_0x376f9a,null));};exports[_0x4dba('0x6d')]=function(_0x48d8d0,_0xfa2373,_0x3988ad){var _0x564f1a={};var _0x4b47cd={};var _0x9b12d7;var _0x250f51;return db[_0x4dba('0x3b')][_0x4dba('0x63')]({'where':{'id':_0x48d8d0[_0x4dba('0x50')]['id']}})[_0x4dba('0x29')](handleEntityNotFound(_0xfa2373,null))[_0x4dba('0x29')](function(_0x2421d9){if(_0x2421d9){_0x9b12d7=_0x2421d9;_0x4b47cd['model']=_[_0x4dba('0x51')](db['Team'][_0x4dba('0x52')]);_0x4b47cd['query']=_[_0x4dba('0x51')](_0x48d8d0[_0x4dba('0x3e')]);_0x4b47cd['filters']=_[_0x4dba('0x53')](_0x4b47cd[_0x4dba('0x40')],_0x4b47cd[_0x4dba('0x3e')]);_0x564f1a[_0x4dba('0x41')]=_[_0x4dba('0x53')](_0x4b47cd[_0x4dba('0x40')],qs[_0x4dba('0x42')](_0x48d8d0[_0x4dba('0x3e')]['fields']));_0x564f1a[_0x4dba('0x41')]=_0x564f1a['attributes']['length']?_0x564f1a['attributes']:_0x4b47cd[_0x4dba('0x40')];_0x564f1a[_0x4dba('0x68')]=qs['sort'](_0x48d8d0[_0x4dba('0x3e')][_0x4dba('0x46')]);_0x564f1a[_0x4dba('0x47')]=qs[_0x4dba('0x3f')](_['pick'](_0x48d8d0[_0x4dba('0x3e')],_0x4b47cd[_0x4dba('0x3f')]));if(_0x48d8d0['query'][_0x4dba('0x4b')]){_0x564f1a[_0x4dba('0x47')]=_[_0x4dba('0x49')](_0x564f1a['where'],{'$or':_[_0x4dba('0x30')](_0x564f1a[_0x4dba('0x41')],function(_0x531855){var _0x1794d8={};_0x1794d8[_0x531855]={'$like':'%'+_0x48d8d0[_0x4dba('0x3e')][_0x4dba('0x4b')]+'%'};return _0x1794d8;})});}_0x564f1a=_['merge']({},_0x564f1a,_0x48d8d0[_0x4dba('0x4c')]);return _0x9b12d7[_0x4dba('0x6d')](_0x564f1a);}})[_0x4dba('0x29')](function(_0x5d794b){if(_0x5d794b){_0x250f51=_0x5d794b[_0x4dba('0x43')];if(!_0x48d8d0[_0x4dba('0x3e')][_0x4dba('0x44')]('nolimit')){_0x564f1a[_0x4dba('0x20')]=qs[_0x4dba('0x20')](_0x48d8d0[_0x4dba('0x3e')]['limit']);_0x564f1a['offset']=qs[_0x4dba('0x22')](_0x48d8d0[_0x4dba('0x3e')][_0x4dba('0x22')]);}return _0x9b12d7[_0x4dba('0x6d')](_0x564f1a);}})[_0x4dba('0x29')](function(_0x4e336c){if(_0x4e336c){return _0x4e336c?{'count':_0x250f51,'rows':_0x4e336c}:null;}})[_0x4dba('0x29')](respondWithResult(_0xfa2373,null))[_0x4dba('0x54')](handleError(_0xfa2373,null));};exports[_0x4dba('0x6e')]=function(_0x5552cc,_0x1da955,_0x5250ef){var _0x42cb24=_0x5552cc[_0x4dba('0x62')][_0x4dba('0x6f')];var _0x2d2319=_[_0x4dba('0x30')](_0x42cb24,'id');return db[_0x4dba('0x70')][_0x4dba('0x4f')]({'where':{'id':_0x2d2319},'attributes':['id'],'include':[{'model':db[_0x4dba('0x71')],'as':'Agents','attributes':['id','name',_0x4dba('0x72'),_0x4dba('0x73'),_0x4dba('0x74')],'raw':!![]}]})[_0x4dba('0x29')](function(_0x5459b1){if(_0x5459b1){var _0x4b4d10=_[_0x4dba('0x75')](_0x5459b1,function(_0x5b0606){var _0x3c7876=_0x5b0606[_0x4dba('0x2b')]({'plain':!![]});_0x3c7876[_0x4dba('0x76')][_0x4dba('0x77')](function(_0x2844a8){_0x2844a8['penalty']=_['find'](_0x42cb24,{'id':_0x3c7876['id']})[_0x4dba('0x78')];});return _0x3c7876[_0x4dba('0x76')];});return db[_0x4dba('0x3b')][_0x4dba('0x34')]({'where':{'id':_0x5552cc[_0x4dba('0x50')]['id']}})[_0x4dba('0x29')](function(_0x1bc9a0){return db[_0x4dba('0x79')]['transaction'](function(_0x50e5a0){return _0x1bc9a0[_0x4dba('0x6e')](_0x2d2319,{'transaction':_0x50e5a0})[_0x4dba('0x29')](function(){return BPromise[_0x4dba('0x7a')](_0x42cb24,function(_0x4eb2ef){return db[_0x4dba('0x7b')][_0x4dba('0x7c')]({'TeamId':_0x4eb2ef['id'],'VoiceQueueId':_0x5552cc[_0x4dba('0x50')]['id'],'penalty':_0x4eb2ef[_0x4dba('0x78')]},{'transaction':_0x50e5a0});});})[_0x4dba('0x29')](function(){return BPromise[_0x4dba('0x7a')](_0x4b4d10,function(_0x1c4167){return db[_0x4dba('0x7d')][_0x4dba('0x7e')]({'where':{'UserId':_0x1c4167['id'],'VoiceQueueId':_0x5552cc[_0x4dba('0x50')]['id']},'defaults':{'penalty':_0x1c4167[_0x4dba('0x78')]},'transaction':_0x50e5a0});});})[_0x4dba('0x29')](function(){return BPromise[_0x4dba('0x7a')](_[_0x4dba('0x4b')](_0x4b4d10,{'online':!![]}),function(_0x2da119){return db[_0x4dba('0x7f')]['upsert']({'membername':_0x2da119[_0x4dba('0x35')],'UserId':_0x2da119['id'],'queue_name':_0x1bc9a0[_0x4dba('0x35')],'VoiceQueueId':_0x1bc9a0['id'],'interface':_[_0x4dba('0x80')](_0x2da119[_0x4dba('0x74')])?util['format'](_0x4dba('0x81'),_0x2da119[_0x4dba('0x35')]):_0x2da119[_0x4dba('0x74')],'paused':_0x2da119[_0x4dba('0x73')]||![],'penalty':_0x2da119[_0x4dba('0x78')]},{'transaction':_0x50e5a0});});})[_0x4dba('0x29')](function(){_0x4b4d10['forEach'](function(_0x4d3fe7){socket[_0x4dba('0x82')](_0x4dba('0x83'),{'UserId':_0x4d3fe7['id'],'VoiceQueueId':_0x1bc9a0['id']});});});});});}})['then'](respondWithStatusCode(_0x1da955,null))[_0x4dba('0x54')](handleError(_0x1da955,null));};exports[_0x4dba('0x84')]=function(_0x1d5101,_0x233834,_0x19f30c){return db[_0x4dba('0x70')]['findAll']({'where':{'id':_0x1d5101['query']['ids']},'attributes':['id'],'include':[{'model':db[_0x4dba('0x71')],'as':_0x4dba('0x76'),'attributes':['id'],'raw':!![]}]})['then'](handleEntityNotFound(_0x233834,null))['then'](function(_0x488304){var _0x35477c=_[_0x4dba('0x30')](_0x488304,'id');var _0x19f981=[];var _0x29e8d0=[];var _0x14981a=squel['select']();_0x14981a[_0x4dba('0x85')](_0x4dba('0x86'))['from'](_0x4dba('0x87'),'tq')['join'](_0x4dba('0x88'),'ut',_0x4dba('0x89'))[_0x4dba('0x47')](_0x4dba('0x8a'),_0x1d5101[_0x4dba('0x50')]['id']);for(var _0x2b97ec=0x0;_0x2b97ec<_0x488304['length'];_0x2b97ec+=0x1){let _0x2e513a=_0x488304[_0x2b97ec];for(var _0x4ea671=0x0;_0x4ea671<_0x2e513a[_0x4dba('0x76')][_0x4dba('0x43')];_0x4ea671+=0x1){let _0xec71fd=_0x2e513a[_0x4dba('0x76')][_0x4ea671];var _0x18bbd9=_0x14981a['clone']();_0x18bbd9[_0x4dba('0x47')](_0x4dba('0x8b'),_0xec71fd['id']);_0x29e8d0[_0x4dba('0x8c')](db[_0x4dba('0x79')][_0x4dba('0x3e')](_0x18bbd9[_0x4dba('0x8d')](),{'type':db[_0x4dba('0x79')]['QueryTypes'][_0x4dba('0x8e')]})['then'](function(_0x2b2cd3){if(_0x2b2cd3[_0x4dba('0x43')]===0x1){return _0xec71fd['id'];}else{var _0x5c3d46=_['every'](_[_0x4dba('0x30')](_0x2b2cd3,_0x4dba('0x8f')),function(_0x1b8ab3){return _[_0x4dba('0x32')](_0x35477c,_0x1b8ab3);});if(_0x5c3d46){return _0xec71fd['id'];}}}));}}return BPromise[_0x4dba('0x90')](_0x29e8d0)[_0x4dba('0x29')](function(_0x44c08d){_0x19f981=_(_0x19f981)[_0x4dba('0x91')](_0x44c08d)['compact']()[_0x4dba('0x31')]();return db[_0x4dba('0x3b')][_0x4dba('0x34')]({'where':{'id':_0x1d5101[_0x4dba('0x50')]['id']}})['then'](function(_0x1b8d30){return db[_0x4dba('0x79')]['transaction'](function(_0x4bffa1){return _0x1b8d30[_0x4dba('0x84')](_0x1d5101[_0x4dba('0x3e')][_0x4dba('0x92')],{'transaction':_0x4bffa1})[_0x4dba('0x29')](function(){if(!_[_0x4dba('0x93')](_0x19f981)){return _0x1b8d30[_0x4dba('0x94')](_0x19f981,{'transaction':_0x4bffa1})[_0x4dba('0x29')](function(){return db['UserVoiceQueueRt'][_0x4dba('0x2a')]({'where':{'VoiceQueueId':_0x1d5101[_0x4dba('0x50')]['id'],'UserId':_0x19f981},'transaction':_0x4bffa1});});}})['then'](function(){_0x19f981['forEach'](function(_0x23837b){socket[_0x4dba('0x82')](_0x4dba('0x95'),{'UserId':_0x23837b,'VoiceQueueId':_0x1b8d30['id']});});});});});});})[_0x4dba('0x29')](respondWithStatusCode(_0x233834,null))[_0x4dba('0x54')](handleError(_0x233834,null));};exports[_0x4dba('0x96')]=function(_0x2603f3,_0x5cba05,_0x1bbfa3){var _0x36328d,_0x23494e;return db[_0x4dba('0x3b')][_0x4dba('0x34')]({'where':{'id':_0x2603f3[_0x4dba('0x50')]['id']}})[_0x4dba('0x29')](handleEntityNotFound(_0x5cba05,null))[_0x4dba('0x29')](function(_0x50de8d){if(_0x50de8d){_0x23494e=_0x50de8d;return _0x50de8d[_0x4dba('0x96')](_0x2603f3['body'][_0x4dba('0x92')],_['omit'](_0x2603f3[_0x4dba('0x62')],[_0x4dba('0x92'),'id'])||{})['spread'](function(_0xa6172e){for(var _0x5f445a=0x0;_0x5f445a<_0x2603f3['body']['ids']['length'];_0x5f445a+=0x1){socket[_0x4dba('0x82')]('userVoiceQueue:save',{'UserId':Number(_0x2603f3[_0x4dba('0x62')][_0x4dba('0x92')][_0x5f445a]),'VoiceQueueId':Number(_0x2603f3[_0x4dba('0x50')]['id'])});}return _0xa6172e;});}})[_0x4dba('0x29')](function(_0x191130){_0x36328d=_0x191130||[];if(_0x23494e){return db['User'][_0x4dba('0x4f')]({'where':{'id':_0x2603f3[_0x4dba('0x62')][_0x4dba('0x92')]},'attributes':['id',_0x4dba('0x35'),'online',_0x4dba('0x73'),_0x4dba('0x74')],'raw':!![]});}})['then'](function(_0x13834d){if(!_['isEmpty'](_0x13834d)){var _0x4ab5f7=[];for(var _0x5025e8=0x0;_0x5025e8<_0x13834d[_0x4dba('0x43')];_0x5025e8++){if(_0x13834d[_0x5025e8][_0x4dba('0x72')]){_0x4ab5f7[_0x4dba('0x8c')](db['UserVoiceQueueRt']['upsert']({'membername':_0x13834d[_0x5025e8][_0x4dba('0x35')],'UserId':_0x13834d[_0x5025e8]['id'],'queue_name':_0x23494e[_0x4dba('0x35')],'VoiceQueueId':_0x23494e['id'],'interface':_[_0x4dba('0x80')](_0x13834d[_0x5025e8]['interface'])?util['format'](_0x4dba('0x81'),_0x13834d[_0x5025e8][_0x4dba('0x35')]):_0x13834d[_0x5025e8][_0x4dba('0x74')],'paused':_0x13834d[_0x5025e8][_0x4dba('0x73')]||![],'penalty':_0x2603f3['body']['penalty']||0x0}));}}return BPromise['all'](_0x4ab5f7);}})[_0x4dba('0x29')](function(){return _0x36328d;})[_0x4dba('0x29')](respondWithResult(_0x5cba05,null))['catch'](handleError(_0x5cba05,null));};exports[_0x4dba('0x94')]=function(_0x2b4239,_0x19aebc,_0x3844ab){return db['VoiceQueue'][_0x4dba('0x34')]({'where':{'id':_0x2b4239['params']['id']}})[_0x4dba('0x29')](handleEntityNotFound(_0x19aebc,null))[_0x4dba('0x29')](function(_0x2c78e2){if(_0x2c78e2){return _0x2c78e2[_0x4dba('0x94')](_0x2b4239[_0x4dba('0x3e')][_0x4dba('0x92')])[_0x4dba('0x29')](function(){if(_[_0x4dba('0x97')](_0x2b4239[_0x4dba('0x3e')][_0x4dba('0x92')])){for(var _0x4dace9=0x0;_0x4dace9<_0x2b4239[_0x4dba('0x3e')][_0x4dba('0x92')][_0x4dba('0x43')];_0x4dace9+=0x1){socket[_0x4dba('0x82')](_0x4dba('0x95'),{'UserId':Number(_0x2b4239['query']['ids'][_0x4dace9]),'VoiceQueueId':Number(_0x2b4239['params']['id'])});}}else{socket['emit'](_0x4dba('0x95'),{'UserId':Number(_0x2b4239[_0x4dba('0x3e')][_0x4dba('0x92')]),'VoiceQueueId':Number(_0x2b4239['params']['id'])});}});}})[_0x4dba('0x29')](function(_0x3f5077){return db['UserVoiceQueueRt'][_0x4dba('0x2a')]({'where':{'VoiceQueueId':_0x2b4239[_0x4dba('0x50')]['id'],'UserId':_0x2b4239[_0x4dba('0x3e')][_0x4dba('0x92')]}})[_0x4dba('0x29')](function(){return _0x3f5077;});})[_0x4dba('0x29')](respondWithStatusCode(_0x19aebc,null))['catch'](handleError(_0x19aebc,null));};exports[_0x4dba('0x98')]=function(_0x5f3ada,_0x1cc6a1,_0x1f68a6){var _0x42ca20={};var _0xfb4865={};var _0x198c10;var _0x5bce35;return db['VoiceQueue'][_0x4dba('0x63')]({'where':{'id':_0x5f3ada[_0x4dba('0x50')]['id']}})[_0x4dba('0x29')](handleEntityNotFound(_0x1cc6a1,null))[_0x4dba('0x29')](function(_0x5c5a47){if(_0x5c5a47){_0x198c10=_0x5c5a47;_0xfb4865[_0x4dba('0x40')]=_[_0x4dba('0x51')](db['User'][_0x4dba('0x52')]);_0xfb4865[_0x4dba('0x3e')]=_[_0x4dba('0x51')](_0x5f3ada['query']);_0xfb4865[_0x4dba('0x3f')]=_['intersection'](_0xfb4865[_0x4dba('0x40')],_0xfb4865[_0x4dba('0x3e')]);_0x42ca20['attributes']=_['intersection'](_0xfb4865['model'],qs[_0x4dba('0x42')](_0x5f3ada['query']['fields']));_0x42ca20[_0x4dba('0x41')]=_0x42ca20['attributes'][_0x4dba('0x43')]?_0x42ca20[_0x4dba('0x41')]:_0xfb4865['model'];_0x42ca20[_0x4dba('0x68')]=qs[_0x4dba('0x46')](_0x5f3ada[_0x4dba('0x3e')][_0x4dba('0x46')]);_0x42ca20['where']=qs[_0x4dba('0x3f')](_[_0x4dba('0x48')](_0x5f3ada[_0x4dba('0x3e')],_0xfb4865[_0x4dba('0x3f')]));if(_0x5f3ada['query'][_0x4dba('0x4b')]){_0x42ca20[_0x4dba('0x47')]=_[_0x4dba('0x49')](_0x42ca20[_0x4dba('0x47')],{'$or':_[_0x4dba('0x30')](_0x42ca20[_0x4dba('0x41')],function(_0x2dabad){var _0x5c8767={};_0x5c8767[_0x2dabad]={'$like':'%'+_0x5f3ada['query']['filter']+'%'};return _0x5c8767;})});}_0x42ca20=_[_0x4dba('0x49')]({},_0x42ca20,_0x5f3ada[_0x4dba('0x4c')]);return _0x198c10['getAgents'](_0x42ca20);}})[_0x4dba('0x29')](function(_0x56d82c){if(_0x56d82c){_0x5bce35=_0x56d82c[_0x4dba('0x43')];if(!_0x5f3ada[_0x4dba('0x3e')][_0x4dba('0x44')]('nolimit')){_0x42ca20[_0x4dba('0x20')]=qs['limit'](_0x5f3ada[_0x4dba('0x3e')][_0x4dba('0x20')]);_0x42ca20['offset']=qs[_0x4dba('0x22')](_0x5f3ada[_0x4dba('0x3e')]['offset']);}return _0x198c10['getAgents'](_0x42ca20);}})[_0x4dba('0x29')](function(_0x920889){if(_0x920889){return _0x920889?{'count':_0x5bce35,'rows':_0x920889}:null;}})['then'](respondWithResult(_0x1cc6a1,null))[_0x4dba('0x54')](handleError(_0x1cc6a1,null));};exports[_0x4dba('0x99')]=function(_0xf115e1,_0x121425,_0x3ef425){var _0x560d38={};var _0x16e1af={};var _0x44d0dc;var _0x333ccf;return db['VoiceQueue']['findOne']({'where':{'id':_0xf115e1[_0x4dba('0x50')]['id']}})['then'](handleEntityNotFound(_0x121425,null))[_0x4dba('0x29')](function(_0x3763da){if(_0x3763da){_0x44d0dc=_0x3763da;_0x16e1af[_0x4dba('0x40')]=_[_0x4dba('0x51')](db[_0x4dba('0x7f')][_0x4dba('0x52')]);_0x16e1af[_0x4dba('0x3e')]=_['keys'](_0xf115e1[_0x4dba('0x3e')]);_0x16e1af[_0x4dba('0x3f')]=_['intersection'](_0x16e1af[_0x4dba('0x40')],_0x16e1af[_0x4dba('0x3e')]);_0x560d38[_0x4dba('0x41')]=_[_0x4dba('0x53')](_0x16e1af[_0x4dba('0x40')],qs['fields'](_0xf115e1[_0x4dba('0x3e')][_0x4dba('0x42')]));_0x560d38[_0x4dba('0x41')]=_0x560d38[_0x4dba('0x41')][_0x4dba('0x43')]?_0x560d38[_0x4dba('0x41')]:_0x16e1af[_0x4dba('0x40')];_0x560d38[_0x4dba('0x68')]=qs[_0x4dba('0x46')](_0xf115e1[_0x4dba('0x3e')][_0x4dba('0x46')]);_0x560d38[_0x4dba('0x47')]=qs['filters'](_[_0x4dba('0x48')](_0xf115e1[_0x4dba('0x3e')],_0x16e1af[_0x4dba('0x3f')]));if(_0xf115e1[_0x4dba('0x3e')][_0x4dba('0x4b')]){_0x560d38['where']=_[_0x4dba('0x49')](_0x560d38[_0x4dba('0x47')],{'$or':_['map'](_0x560d38['attributes'],function(_0x20512f){var _0x32e69f={};_0x32e69f[_0x20512f]={'$like':'%'+_0xf115e1[_0x4dba('0x3e')]['filter']+'%'};return _0x32e69f;})});}_0x560d38=_[_0x4dba('0x49')]({},_0x560d38,_0xf115e1[_0x4dba('0x4c')]);return _0x44d0dc[_0x4dba('0x99')](_0x560d38);}})[_0x4dba('0x29')](function(_0x4aefe3){if(_0x4aefe3){_0x333ccf=_0x4aefe3[_0x4dba('0x43')];if(!_0xf115e1['query'][_0x4dba('0x44')](_0x4dba('0x45'))){_0x560d38[_0x4dba('0x20')]=qs[_0x4dba('0x20')](_0xf115e1[_0x4dba('0x3e')]['limit']);_0x560d38[_0x4dba('0x22')]=qs[_0x4dba('0x22')](_0xf115e1[_0x4dba('0x3e')][_0x4dba('0x22')]);}return _0x44d0dc[_0x4dba('0x99')](_0x560d38);}})[_0x4dba('0x29')](function(_0x35ac62){return _0x35ac62?{'count':_0x333ccf,'rows':_0x35ac62}:null;})[_0x4dba('0x29')](respondWithResult(_0x121425,null))[_0x4dba('0x54')](handleError(_0x121425,null));};exports[_0x4dba('0x9a')]=function(_0xe5acaf,_0x15f756,_0x54940d){var _0x401a63={};var _0x5dc829={};var _0x33b88c;var _0xdffcfd;return db[_0x4dba('0x3b')][_0x4dba('0x63')]({'where':{'id':_0xe5acaf['params']['id']}})[_0x4dba('0x29')](handleEntityNotFound(_0x15f756,null))['then'](function(_0xe14e80){if(_0xe14e80){_0x33b88c=_0xe14e80;_0x5dc829[_0x4dba('0x40')]=_[_0x4dba('0x51')](db[_0x4dba('0x9b')][_0x4dba('0x52')]);_0x5dc829['query']=_[_0x4dba('0x51')](_0xe5acaf[_0x4dba('0x3e')]);_0x5dc829[_0x4dba('0x3f')]=_[_0x4dba('0x53')](_0x5dc829[_0x4dba('0x40')],_0x5dc829['query']);_0x401a63['attributes']=_[_0x4dba('0x53')](_0x5dc829[_0x4dba('0x40')],qs['fields'](_0xe5acaf[_0x4dba('0x3e')]['fields']));_0x401a63[_0x4dba('0x41')]=_0x401a63['attributes'][_0x4dba('0x43')]?_0x401a63[_0x4dba('0x41')]:_0x5dc829[_0x4dba('0x40')];_0x401a63['order']=qs[_0x4dba('0x46')](_0xe5acaf['query']['sort']);_0x401a63[_0x4dba('0x47')]=qs[_0x4dba('0x3f')](_[_0x4dba('0x48')](_0xe5acaf['query'],_0x5dc829[_0x4dba('0x3f')]));if(_0xe5acaf['query'][_0x4dba('0x4b')]){_0x401a63['where']=_[_0x4dba('0x49')](_0x401a63['where'],{'$or':_[_0x4dba('0x30')](_0x401a63['attributes'],function(_0x3ac88e){var _0x7e22f4={};_0x7e22f4[_0x3ac88e]={'$like':'%'+_0xe5acaf[_0x4dba('0x3e')][_0x4dba('0x4b')]+'%'};return _0x7e22f4;})});}_0x401a63=_['merge']({},_0x401a63,_0xe5acaf[_0x4dba('0x4c')]);return _0x33b88c[_0x4dba('0x9a')](_0x401a63);}})[_0x4dba('0x29')](function(_0x4cfe08){if(_0x4cfe08){_0xdffcfd=_0x4cfe08['length'];if(!_0xe5acaf[_0x4dba('0x3e')][_0x4dba('0x44')](_0x4dba('0x45'))){_0x401a63[_0x4dba('0x20')]=qs['limit'](_0xe5acaf[_0x4dba('0x3e')][_0x4dba('0x20')]);_0x401a63[_0x4dba('0x22')]=qs[_0x4dba('0x22')](_0xe5acaf[_0x4dba('0x3e')][_0x4dba('0x22')]);}return _0x33b88c[_0x4dba('0x9a')](_0x401a63);}})[_0x4dba('0x29')](function(_0x4033ab){if(_0x4033ab){return _0x4033ab?{'count':_0xdffcfd,'rows':_0x4033ab}:null;}})[_0x4dba('0x29')](respondWithResult(_0x15f756,null))[_0x4dba('0x54')](handleError(_0x15f756,null));};exports[_0x4dba('0x9c')]=function(_0x517127,_0x37cd85,_0x3ae17c){var _0x142a22,_0x5dbc26;return db[_0x4dba('0x3b')][_0x4dba('0x34')]({'where':{'id':_0x517127['params']['id']}})['then'](handleEntityNotFound(_0x37cd85,null))[_0x4dba('0x29')](function(_0x28ad99){if(_0x28ad99){_0x5dbc26=_0x28ad99;return _0x28ad99[_0x4dba('0x9c')](_0x517127[_0x4dba('0x62')][_0x4dba('0x92')],_[_0x4dba('0x5f')](_0x517127['body'],[_0x4dba('0x92'),'id'])||{});}return null;})['spread'](function(_0x1368b1){var _0x18da4d;_0x142a22=_0x1368b1||[];var _0x22bba6=[];if(_0x1368b1){for(var _0x49568a=0x0;_0x49568a<_0x1368b1[_0x4dba('0x43')];_0x49568a+=0x1){var _0x406e84=_0x1368b1[_0x49568a][_0x4dba('0x2b')]({'plain':!![]});_0x5dbc26[_0x4dba('0x9d')]=_0x517127['body']['dialCheckDuplicateType']?_0x517127[_0x4dba('0x62')][_0x4dba('0x9d')]:_0x5dbc26[_0x4dba('0x9d')];switch(_0x5dbc26[_0x4dba('0x9d')]){case _0x4dba('0x9e'):_0x18da4d=squel['insert']()[_0x4dba('0x9f')](_0x4dba('0xa0'))[_0x4dba('0xa1')]([_0x4dba('0xa2'),_0x4dba('0xa3'),_0x4dba('0xa4'),_0x4dba('0xa5'),'VoiceQueueId',_0x4dba('0x60'),'updatedAt'],squel[_0x4dba('0xa6')]()[_0x4dba('0x85')]('phone',_0x4dba('0xa2'))['field'](_0x4dba('0xa7'),_0x4dba('0xa3'))[_0x4dba('0x85')]('id','ContactId')[_0x4dba('0x85')](_0x406e84[_0x4dba('0xa8')][_0x4dba('0x8d')](),_0x4dba('0xa5'))[_0x4dba('0x85')](_0x517127[_0x4dba('0x50')]['id'][_0x4dba('0x8d')](),_0x4dba('0x64'))[_0x4dba('0x85')](_0x4dba('0xa7'),_0x4dba('0x60'))[_0x4dba('0x85')](_0x4dba('0xa7'),_0x4dba('0x61'))[_0x4dba('0xa9')]('cm_contacts')[_0x4dba('0x47')]('deletedAt\x20IS\x20NULL')[_0x4dba('0x47')](_0x4dba('0xaa'),_0x406e84[_0x4dba('0xa8')][_0x4dba('0x8d')]())[_0x4dba('0x47')](_0x4dba('0xab'))[_0x4dba('0x47')](_0x4dba('0xac'),squel[_0x4dba('0xa6')]()[_0x4dba('0x85')](_0x4dba('0xad'))['from'](_0x4dba('0xae'))[_0x4dba('0x47')](_0x4dba('0x8a'),_0x517127['params']['id'][_0x4dba('0x8d')]()))[_0x4dba('0x47')](_0x4dba('0xac'),squel[_0x4dba('0xa6')]()[_0x4dba('0x85')](_0x4dba('0xaf'))[_0x4dba('0xa9')]('cm_hopper')[_0x4dba('0x47')]('VoiceQueueId\x20=\x20?',_0x517127['params']['id']['toString']())))['toString']();break;case _0x4dba('0xb0'):_0x18da4d=squel[_0x4dba('0xb1')]()[_0x4dba('0x9f')](_0x4dba('0xa0'))[_0x4dba('0xa1')]([_0x4dba('0xa2'),_0x4dba('0xa3'),_0x4dba('0xa4'),_0x4dba('0xa5'),_0x4dba('0x64'),_0x4dba('0x60'),_0x4dba('0x61')],squel[_0x4dba('0xa6')]()['field'](_0x4dba('0xa2'),_0x4dba('0xa2'))[_0x4dba('0x85')](_0x4dba('0xa7'),'scheduledAt')[_0x4dba('0x85')]('id',_0x4dba('0xa4'))[_0x4dba('0x85')](_0x406e84[_0x4dba('0xa8')]['toString'](),'ListId')[_0x4dba('0x85')](_0x517127[_0x4dba('0x50')]['id'][_0x4dba('0x8d')](),_0x4dba('0x64'))[_0x4dba('0x85')](_0x4dba('0xa7'),'createdAt')['field'](_0x4dba('0xa7'),_0x4dba('0x61'))[_0x4dba('0xa9')](_0x4dba('0xb2'))[_0x4dba('0x47')](_0x4dba('0xb3'))['where'](_0x4dba('0xaa'),_0x406e84[_0x4dba('0xa8')]['toString']())[_0x4dba('0x47')]('phone\x20IS\x20NOT\x20NULL')[_0x4dba('0x47')](_0x4dba('0xac'),squel['select']()[_0x4dba('0x85')](_0x4dba('0xaf'))[_0x4dba('0xa9')](_0x4dba('0xa0'))['where'](_0x4dba('0x8a'),_0x517127[_0x4dba('0x50')]['id'][_0x4dba('0x8d')]())))[_0x4dba('0x8d')]();break;default:_0x18da4d=squel[_0x4dba('0xb1')]()[_0x4dba('0x9f')](_0x4dba('0xa0'))['fromQuery']([_0x4dba('0xa2'),_0x4dba('0xa3'),_0x4dba('0xa4'),'ListId','VoiceQueueId',_0x4dba('0x60'),_0x4dba('0x61')],squel[_0x4dba('0xa6')]()['field'](_0x4dba('0xa2'),_0x4dba('0xa2'))[_0x4dba('0x85')]('NOW()','scheduledAt')[_0x4dba('0x85')]('id',_0x4dba('0xa4'))[_0x4dba('0x85')](_0x406e84[_0x4dba('0xa8')][_0x4dba('0x8d')](),_0x4dba('0xa5'))[_0x4dba('0x85')](_0x517127[_0x4dba('0x50')]['id'][_0x4dba('0x8d')](),_0x4dba('0x64'))[_0x4dba('0x85')](_0x4dba('0xa7'),'createdAt')[_0x4dba('0x85')](_0x4dba('0xa7'),_0x4dba('0x61'))['from'](_0x4dba('0xb2'))[_0x4dba('0x47')](_0x4dba('0xb3'))['where']('ListId\x20=\x20?',_0x406e84['CmListId'][_0x4dba('0x8d')]())[_0x4dba('0x47')](_0x4dba('0xab')))[_0x4dba('0x8d')]();}_0x22bba6[_0x4dba('0x8c')](db[_0x4dba('0x79')][_0x4dba('0x3e')](_0x18da4d));}return BPromise['all'](_0x22bba6);}})[_0x4dba('0x29')](function(){return _0x142a22;})[_0x4dba('0x29')](respondWithResult(_0x37cd85,null))[_0x4dba('0x54')](handleError(_0x37cd85,null));};exports[_0x4dba('0xb4')]=function(_0x5a020c,_0x40cc61,_0x552e34){return db['VoiceQueue'][_0x4dba('0x34')]({'where':{'id':_0x5a020c['params']['id']}})[_0x4dba('0x29')](handleEntityNotFound(_0x40cc61,null))['then'](function(_0x43bbf3){if(_0x43bbf3){return _0x43bbf3['removeLists'](_0x5a020c[_0x4dba('0x3e')][_0x4dba('0x92')]);}})[_0x4dba('0x29')](function(_0x4962ef){if(_0x4962ef){return db[_0x4dba('0x65')][_0x4dba('0x2a')]({'where':{'ListId':_0x5a020c['query']['ids'],'VoiceQueueId':_0x5a020c[_0x4dba('0x50')]['id']}})[_0x4dba('0x29')](function(){return _0x4962ef;});}})['then'](respondWithStatusCode(_0x40cc61,null))[_0x4dba('0x54')](handleError(_0x40cc61,null));};exports[_0x4dba('0xb5')]=function(_0x3fdfce,_0x5d6ec6,_0x7f06ef){var _0x2d00eb={};var _0xebb435={};var _0x1f5094;var _0x2c83b3;return db[_0x4dba('0x3b')][_0x4dba('0x63')]({'where':{'id':_0x3fdfce[_0x4dba('0x50')]['id']}})[_0x4dba('0x29')](handleEntityNotFound(_0x5d6ec6,null))[_0x4dba('0x29')](function(_0x457c11){if(_0x457c11){_0x1f5094=_0x457c11;_0xebb435[_0x4dba('0x40')]=_[_0x4dba('0x51')](db['CmList'][_0x4dba('0x52')]);_0xebb435[_0x4dba('0x3e')]=_[_0x4dba('0x51')](_0x3fdfce[_0x4dba('0x3e')]);_0xebb435[_0x4dba('0x3f')]=_[_0x4dba('0x53')](_0xebb435['model'],_0xebb435['query']);_0x2d00eb[_0x4dba('0x41')]=_['intersection'](_0xebb435['model'],qs[_0x4dba('0x42')](_0x3fdfce[_0x4dba('0x3e')][_0x4dba('0x42')]));_0x2d00eb[_0x4dba('0x41')]=_0x2d00eb[_0x4dba('0x41')][_0x4dba('0x43')]?_0x2d00eb['attributes']:_0xebb435[_0x4dba('0x40')];_0x2d00eb[_0x4dba('0x68')]=qs[_0x4dba('0x46')](_0x3fdfce['query'][_0x4dba('0x46')]);_0x2d00eb['where']=qs[_0x4dba('0x3f')](_[_0x4dba('0x48')](_0x3fdfce[_0x4dba('0x3e')],_0xebb435[_0x4dba('0x3f')]));if(_0x3fdfce[_0x4dba('0x3e')][_0x4dba('0x4b')]){_0x2d00eb[_0x4dba('0x47')]=_[_0x4dba('0x49')](_0x2d00eb[_0x4dba('0x47')],{'$or':_[_0x4dba('0x30')](_0x2d00eb['attributes'],function(_0x28d9be){var _0x51f8b8={};_0x51f8b8[_0x28d9be]={'$like':'%'+_0x3fdfce['query']['filter']+'%'};return _0x51f8b8;})});}_0x2d00eb=_[_0x4dba('0x49')]({},_0x2d00eb,_0x3fdfce[_0x4dba('0x4c')]);return _0x1f5094[_0x4dba('0xb5')](_0x2d00eb);}})[_0x4dba('0x29')](function(_0x4638c7){if(_0x4638c7){_0x2c83b3=_0x4638c7[_0x4dba('0x43')];if(!_0x3fdfce[_0x4dba('0x3e')][_0x4dba('0x44')](_0x4dba('0x45'))){_0x2d00eb[_0x4dba('0x20')]=qs[_0x4dba('0x20')](_0x3fdfce[_0x4dba('0x3e')][_0x4dba('0x20')]);_0x2d00eb['offset']=qs[_0x4dba('0x22')](_0x3fdfce[_0x4dba('0x3e')][_0x4dba('0x22')]);}return _0x1f5094[_0x4dba('0xb5')](_0x2d00eb);}})[_0x4dba('0x29')](function(_0x4db70e){if(_0x4db70e){return _0x4db70e?{'count':_0x2c83b3,'rows':_0x4db70e}:null;}})[_0x4dba('0x29')](respondWithResult(_0x5d6ec6,null))[_0x4dba('0x54')](handleError(_0x5d6ec6,null));};exports[_0x4dba('0xb6')]=function(_0x21ce42,_0xdfe179,_0x5775f0){var _0x561099,_0x56e3a7;return db['VoiceQueue']['find']({'where':{'id':_0x21ce42['params']['id']}})[_0x4dba('0x29')](handleEntityNotFound(_0xdfe179,null))[_0x4dba('0x29')](function(_0x4df00c){if(_0x4df00c){_0x56e3a7=_0x4df00c;return _0x4df00c[_0x4dba('0xb6')](_0x21ce42[_0x4dba('0x62')]['ids'],_['omit'](_0x21ce42[_0x4dba('0x62')],[_0x4dba('0x92'),'id'])||{});}return null;})[_0x4dba('0xb7')](function(_0x176f5c){var _0x3bf2e0;_0x561099=_0x176f5c||[];var _0x35e784=[];if(_0x176f5c){for(var _0x41d59c=0x0;_0x41d59c<_0x176f5c[_0x4dba('0x43')];_0x41d59c+=0x1){var _0x5ee505=_0x176f5c[_0x41d59c][_0x4dba('0x2b')]({'plain':!![]});_0x3bf2e0=squel[_0x4dba('0xb1')]()[_0x4dba('0x9f')](_0x4dba('0xb8'))[_0x4dba('0xa1')]([_0x4dba('0xa2'),'ContactId',_0x4dba('0xa5'),_0x4dba('0x64'),_0x4dba('0x60'),_0x4dba('0x61')],squel[_0x4dba('0xa6')]()[_0x4dba('0x85')](_0x4dba('0xa2'),_0x4dba('0xa2'))[_0x4dba('0x85')]('id',_0x4dba('0xa4'))[_0x4dba('0x85')](_0x5ee505['CmListId'][_0x4dba('0x8d')](),_0x4dba('0xa5'))['field'](_0x21ce42[_0x4dba('0x50')]['id'][_0x4dba('0x8d')](),'VoiceQueueId')[_0x4dba('0x85')](_0x4dba('0xa7'),'createdAt')[_0x4dba('0x85')](_0x4dba('0xa7'),'updatedAt')['from']('cm_contacts')[_0x4dba('0x47')]('deletedAt\x20IS\x20NULL')['where'](_0x4dba('0xaa'),_0x5ee505[_0x4dba('0xa8')][_0x4dba('0x8d')]())[_0x4dba('0x47')](_0x4dba('0xab')))[_0x4dba('0x8d')]();_0x35e784[_0x4dba('0x8c')](db[_0x4dba('0x79')][_0x4dba('0x3e')](_0x3bf2e0));}return BPromise[_0x4dba('0x90')](_0x35e784);}})[_0x4dba('0x29')](function(){return _0x561099;})['then'](respondWithResult(_0xdfe179,null))[_0x4dba('0x54')](handleError(_0xdfe179,null));};exports[_0x4dba('0xb9')]=function(_0x3232f9,_0xbf23b2,_0x39feac){return db[_0x4dba('0x3b')][_0x4dba('0x34')]({'where':{'id':_0x3232f9[_0x4dba('0x50')]['id']}})[_0x4dba('0x29')](handleEntityNotFound(_0xbf23b2,null))[_0x4dba('0x29')](function(_0x28057a){if(_0x28057a){return _0x28057a['removeBlackLists'](_0x3232f9[_0x4dba('0x3e')][_0x4dba('0x92')]);}})['then'](function(_0x33382f){if(_0x33382f){return db[_0x4dba('0x6c')][_0x4dba('0x2a')]({'where':{'ListId':_0x3232f9[_0x4dba('0x3e')]['ids'],'VoiceQueueId':_0x3232f9[_0x4dba('0x50')]['id']}})['then'](function(){return _0x33382f;});}})[_0x4dba('0x29')](respondWithStatusCode(_0xbf23b2,null))['catch'](handleError(_0xbf23b2,null));};
\ No newline at end of file
+var _0x8be3=['VIRTUAL','include','findAll','rows','catch','params','length','includeAll','options','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','QueueCampaigns','UserProfileSection','userProfileId','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','clone','omit','createdAt','updatedAt','autoAssociation','findOne','CmHopper','nolimit','VoiceQueueId','getHopperHistories','CmHopperHistory','CmHopperFinal','CmHopperBlack','getTeams','addTeams','teams','User','Agents','online','voicePause','interface','flatMap','penalty','sequelize','transaction','each','TeamVoiceQueue','upsert','UserVoiceQueue','UserVoiceQueueRt','isNil','format','SIP/%s','forEach','userVoiceQueue:save','Team','ids','select','from','join','user_has_teams','ut.TeamId\x20=\x20tq.TeamId','VoiceQueueId\x20=\x20?','ut.UserId\x20=\x20?','push','toString','QueryTypes','SELECT','every','TeamId','all','union','compact','isEmpty','removeAgents','userVoiceQueue:remove','addAgents','spread','emit','getAgents','getMembers','getLists','CmList','dialCheckDuplicateType','insert','into','fromQuery','phone','scheduledAt','ContactId','ListId','field','NOW()','CmListId','cm_contacts','deletedAt\x20IS\x20NULL','ListId\x20=\x20?','phone\x20IS\x20NOT\x20NULL','phone\x20NOT\x20IN\x20(?)','COALESCE(calleridnum,\x27\x27)','COALESCE(phone,\x27\x27)','cm_hopper','getBlackLists','addBlackLists','cm_hopper_black','removeBlackLists','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','lodash','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./voiceQueue.socket','register','sendStatus','status','end','json','offset','undefined','limit','count','set','apply','reject','save','update','destroy','then','get','VoiceQueues','inbound','outbound','filter','ignore','map','value','includes','find','type','name','error','stack','send','index','VoiceQueue','rawAttributes','fieldName','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','order','sort','where','pick','merge'];(function(_0x328e11,_0x4bc12c){var _0xd77b6c=function(_0x5abc5b){while(--_0x5abc5b){_0x328e11['push'](_0x328e11['shift']());}};_0xd77b6c(++_0x4bc12c);}(_0x8be3,0x1d5));var _0x38be=function(_0x11cdf4,_0x4a4906){_0x11cdf4=_0x11cdf4-0x0;var _0x4bb9c6=_0x8be3[_0x11cdf4];return _0x4bb9c6;};'use strict';var emlformat=require(_0x38be('0x0'));var rimraf=require(_0x38be('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x38be('0x2'));var rp=require(_0x38be('0x3'));var moment=require(_0x38be('0x4'));var BPromise=require(_0x38be('0x5'));var Mustache=require(_0x38be('0x6'));var util=require(_0x38be('0x7'));var path=require(_0x38be('0x8'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x38be('0x9'));var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x38be('0xa'));var Papa=require(_0x38be('0xb'));var Redis=require(_0x38be('0xc'));var authService=require(_0x38be('0xd'));var qs=require(_0x38be('0xe'));var as=require(_0x38be('0xf'));var hardwareService=require(_0x38be('0x10'));var logger=require(_0x38be('0x11'))(_0x38be('0x12'));var utils=require(_0x38be('0x13'));var config=require(_0x38be('0x14'));var licenseUtil=require(_0x38be('0x15'));var db=require(_0x38be('0x16'))['db'];config[_0x38be('0x17')]=_[_0x38be('0x18')](config[_0x38be('0x17')],{'host':_0x38be('0x19'),'port':0x18eb});var socket=require(_0x38be('0x1a'))(new Redis(config['redis']));require(_0x38be('0x1b'))[_0x38be('0x1c')](socket);function respondWithStatusCode(_0xd9da8c,_0x23d191){_0x23d191=_0x23d191||0xcc;return function(_0x18932d){if(_0x18932d){return _0xd9da8c[_0x38be('0x1d')](_0x23d191);}return _0xd9da8c[_0x38be('0x1e')](_0x23d191)[_0x38be('0x1f')]();};}function respondWithResult(_0x5a3462,_0x4e797b){_0x4e797b=_0x4e797b||0xc8;return function(_0x566e96){if(_0x566e96){return _0x5a3462[_0x38be('0x1e')](_0x4e797b)[_0x38be('0x20')](_0x566e96);}};}function respondWithFilteredResult(_0x362139,_0x9cf3c7){return function(_0x5b5808){if(_0x5b5808){var _0x460d40=typeof _0x9cf3c7[_0x38be('0x21')]===_0x38be('0x22')&&typeof _0x9cf3c7[_0x38be('0x23')]===_0x38be('0x22');var _0x206d0e=_0x5b5808[_0x38be('0x24')];var _0x2cd705=_0x460d40?0x0:_0x9cf3c7['offset'];var _0x5de8db=_0x460d40?_0x5b5808[_0x38be('0x24')]:_0x9cf3c7[_0x38be('0x21')]+_0x9cf3c7['limit'];var _0x201b0d;if(_0x5de8db>=_0x206d0e){_0x5de8db=_0x206d0e;_0x201b0d=0xc8;}else{_0x201b0d=0xce;}_0x362139[_0x38be('0x1e')](_0x201b0d);return _0x362139[_0x38be('0x25')]('Content-Range',_0x2cd705+'-'+_0x5de8db+'/'+_0x206d0e)['json'](_0x5b5808);}return null;};}function patchUpdates(_0x9dfc87){return function(_0x2438fe){try{jsonpatch[_0x38be('0x26')](_0x2438fe,_0x9dfc87,!![]);}catch(_0x46e262){return BPromise[_0x38be('0x27')](_0x46e262);}return _0x2438fe[_0x38be('0x28')]();};}function saveUpdates(_0x2b4bc8,_0x1c838e){return function(_0x4decf6){if(_0x4decf6){return _0x4decf6[_0x38be('0x29')](_0x2b4bc8)['then'](function(_0x39dbb5){return _0x39dbb5;});}return null;};}function removeEntity(_0x41b00a,_0xe6e301){return function(_0x3dfe21){if(_0x3dfe21){return _0x3dfe21[_0x38be('0x2a')]()[_0x38be('0x2b')](function(){var _0x771f29=_0x3dfe21[_0x38be('0x2c')]({'plain':!![]});var _0x21facd=[{'name':_0x38be('0x2d'),'value':_0x38be('0x2e'),'ignore':![]},{'name':'QueueCampaigns','value':_0x38be('0x2f'),'ignore':![]}];var _0x218010=_(_0x21facd)[_0x38be('0x30')](_0x38be('0x31'))[_0x38be('0x32')]('value')[_0x38be('0x33')]();if(_[_0x38be('0x34')](_0x218010,_0x771f29['type'])){return;}var _0x10ed2d=_[_0x38be('0x35')](_0x21facd,[_0x38be('0x33'),_0x771f29[_0x38be('0x36')]])[_0x38be('0x37')];return db['UserProfileResource'][_0x38be('0x2a')]({'where':{'type':_0x10ed2d,'resourceId':_0x771f29['id']}})[_0x38be('0x2b')](function(){return _0x3dfe21;});})[_0x38be('0x2b')](function(){_0x41b00a[_0x38be('0x1e')](0xcc)[_0x38be('0x1f')]();});}};}function handleEntityNotFound(_0x4ec005,_0x263f6a){return function(_0x26da7e){if(!_0x26da7e){_0x4ec005[_0x38be('0x1d')](0x194);}return _0x26da7e;};}function handleError(_0x370b1f,_0x43bfea){_0x43bfea=_0x43bfea||0x1f4;return function(_0x287f8b){logger[_0x38be('0x38')](_0x287f8b[_0x38be('0x39')]);if(_0x287f8b[_0x38be('0x37')]){delete _0x287f8b[_0x38be('0x37')];}_0x370b1f['status'](_0x43bfea)[_0x38be('0x3a')](_0x287f8b);};}exports[_0x38be('0x3b')]=function(_0x33167a,_0x5d5bf8){var _0x515951={},_0x21dd91={},_0x142704={'count':0x0,'rows':[]};var _0x1e0303=_[_0x38be('0x32')](db[_0x38be('0x3c')][_0x38be('0x3d')],function(_0x1545cf){return{'name':_0x1545cf[_0x38be('0x3e')],'type':_0x1545cf[_0x38be('0x36')][_0x38be('0x3f')]};});_0x21dd91[_0x38be('0x40')]=_['map'](_0x1e0303,_0x38be('0x37'));_0x21dd91[_0x38be('0x41')]=_[_0x38be('0x42')](_0x33167a['query']);_0x21dd91[_0x38be('0x43')]=_[_0x38be('0x44')](_0x21dd91[_0x38be('0x40')],_0x21dd91[_0x38be('0x41')]);_0x515951[_0x38be('0x45')]=_[_0x38be('0x44')](_0x21dd91[_0x38be('0x40')],qs[_0x38be('0x46')](_0x33167a[_0x38be('0x41')][_0x38be('0x46')]));_0x515951[_0x38be('0x45')]=_0x515951[_0x38be('0x45')]['length']?_0x515951[_0x38be('0x45')]:_0x21dd91[_0x38be('0x40')];if(!_0x33167a[_0x38be('0x41')][_0x38be('0x47')]('nolimit')){_0x515951[_0x38be('0x23')]=qs[_0x38be('0x23')](_0x33167a[_0x38be('0x41')][_0x38be('0x23')]);_0x515951['offset']=qs['offset'](_0x33167a[_0x38be('0x41')]['offset']);}_0x515951[_0x38be('0x48')]=qs[_0x38be('0x49')](_0x33167a[_0x38be('0x41')][_0x38be('0x49')]);_0x515951[_0x38be('0x4a')]=qs[_0x38be('0x43')](_[_0x38be('0x4b')](_0x33167a[_0x38be('0x41')],_0x21dd91['filters']),_0x1e0303);if(_0x33167a[_0x38be('0x41')]['filter']){_0x515951[_0x38be('0x4a')]=_[_0x38be('0x4c')](_0x515951[_0x38be('0x4a')],{'$or':_[_0x38be('0x32')](_0x1e0303,function(_0x12f939){if(_0x12f939['type']!==_0x38be('0x4d')){var _0x5955ff={};_0x5955ff[_0x12f939['name']]={'$like':'%'+_0x33167a[_0x38be('0x41')][_0x38be('0x30')]+'%'};return _0x5955ff;}})});}_0x515951=_['merge']({},_0x515951,_0x33167a['options']);var _0x20a7a3={'where':_0x515951[_0x38be('0x4a')]};return db['VoiceQueue']['count'](_0x20a7a3)[_0x38be('0x2b')](function(_0x5e0a01){_0x142704[_0x38be('0x24')]=_0x5e0a01;if(_0x33167a['query']['includeAll']){_0x515951[_0x38be('0x4e')]=[{'all':!![]}];}return db[_0x38be('0x3c')][_0x38be('0x4f')](_0x515951);})[_0x38be('0x2b')](function(_0x110c59){_0x142704[_0x38be('0x50')]=_0x110c59;return _0x142704;})['then'](respondWithFilteredResult(_0x5d5bf8,_0x515951))[_0x38be('0x51')](handleError(_0x5d5bf8,null));};exports['show']=function(_0x4db2c5,_0x2d50cb){var _0x467742={'raw':![],'where':{'id':_0x4db2c5[_0x38be('0x52')]['id']}},_0x3cb3c4={};_0x3cb3c4[_0x38be('0x40')]=_[_0x38be('0x42')](db[_0x38be('0x3c')][_0x38be('0x3d')]);_0x3cb3c4[_0x38be('0x41')]=_[_0x38be('0x42')](_0x4db2c5[_0x38be('0x41')]);_0x3cb3c4[_0x38be('0x43')]=_[_0x38be('0x44')](_0x3cb3c4[_0x38be('0x40')],_0x3cb3c4[_0x38be('0x41')]);_0x467742[_0x38be('0x45')]=_[_0x38be('0x44')](_0x3cb3c4[_0x38be('0x40')],qs['fields'](_0x4db2c5['query']['fields']));_0x467742['attributes']=_0x467742[_0x38be('0x45')][_0x38be('0x53')]?_0x467742[_0x38be('0x45')]:_0x3cb3c4['model'];if(_0x4db2c5[_0x38be('0x41')][_0x38be('0x54')]){_0x467742[_0x38be('0x4e')]=[{'all':!![]}];}_0x467742=_[_0x38be('0x4c')]({},_0x467742,_0x4db2c5[_0x38be('0x55')]);return db[_0x38be('0x3c')][_0x38be('0x35')](_0x467742)[_0x38be('0x2b')](handleEntityNotFound(_0x2d50cb,null))[_0x38be('0x2b')](respondWithResult(_0x2d50cb,null))[_0x38be('0x51')](handleError(_0x2d50cb,null));};exports[_0x38be('0x56')]=function(_0x198992,_0xa42ce){return db[_0x38be('0x3c')][_0x38be('0x56')](_0x198992[_0x38be('0x57')],{})['then'](function(_0x30b557){var _0x12ac93=_0x198992['user']['get']({'plain':!![]});if(!_0x12ac93)throw new Error(_0x38be('0x58'));if(_0x12ac93[_0x38be('0x59')]===_0x38be('0x5a')){var _0x4596df=_0x30b557['get']({'plain':!![]});var _0x2c4761=[{'name':_0x38be('0x2d'),'value':'inbound'},{'name':_0x38be('0x5b'),'value':'outbound'}];var _0x3a48ef=_[_0x38be('0x35')](_0x2c4761,[_0x38be('0x33'),_0x4596df[_0x38be('0x36')]])[_0x38be('0x37')];return db[_0x38be('0x5c')][_0x38be('0x35')]({'where':{'name':_0x3a48ef,'userProfileId':_0x12ac93[_0x38be('0x5d')]},'raw':!![]})['then'](function(_0x194253){if(_0x194253&&_0x194253['autoAssociation']===0x0){return db[_0x38be('0x5e')][_0x38be('0x56')]({'name':_0x4596df[_0x38be('0x37')],'resourceId':_0x4596df['id'],'type':_0x194253[_0x38be('0x37')],'sectionId':_0x194253['id']},{})['then'](function(){return _0x30b557;});}else{return _0x30b557;}})[_0x38be('0x51')](function(_0x45b163){logger[_0x38be('0x38')](_0x38be('0x5f'),_0x45b163);throw _0x45b163;});}return _0x30b557;})[_0x38be('0x2b')](respondWithResult(_0xa42ce,0xc9))[_0x38be('0x51')](handleError(_0xa42ce,null));};exports[_0x38be('0x60')]=function(_0x42220d,_0x45bb44){var _0x1e83f6={'where':{'id':_0x42220d[_0x38be('0x52')]['id']}},_0x38cfeb={};_0x38cfeb['model']=_[_0x38be('0x42')](db['VoiceQueue'][_0x38be('0x3d')]);_0x1e83f6[_0x38be('0x45')]=_[_0x38be('0x44')](_0x38cfeb[_0x38be('0x40')],qs[_0x38be('0x46')](_0x42220d[_0x38be('0x41')][_0x38be('0x46')]));_0x1e83f6[_0x38be('0x45')]=_0x1e83f6[_0x38be('0x45')][_0x38be('0x53')]?_0x1e83f6['attributes']:_0x38cfeb[_0x38be('0x40')];if(_0x42220d[_0x38be('0x41')][_0x38be('0x54')]){_0x1e83f6['include']=[{'all':!![]}];}_0x1e83f6=_['merge']({},_0x1e83f6,_0x42220d[_0x38be('0x55')]);return db[_0x38be('0x3c')][_0x38be('0x35')](_0x1e83f6)[_0x38be('0x2b')](handleEntityNotFound(_0x45bb44,null))['then'](function(_0x1f19d7){if(_0x1f19d7){var _0x146ec0=_0x1f19d7[_0x38be('0x2c')]({'plain':!![]});_0x146ec0=qs[_0x38be('0x61')](_0x146ec0,['id',_0x38be('0x62'),_0x38be('0x63')]);_0x42220d['body']=_['omit'](_0x42220d[_0x38be('0x57')],['id','createdAt',_0x38be('0x63')]);return db[_0x38be('0x3c')][_0x38be('0x56')](_[_0x38be('0x4c')](_0x146ec0,_0x42220d[_0x38be('0x57')]),{'include':_0x42220d['query'][_0x38be('0x54')]?[{'all':!![]}]:undefined})[_0x38be('0x2b')](function(_0x5c33fb){var _0x1897f1=_0x42220d[_0x38be('0x5a')]['get']({'plain':!![]});if(!_0x1897f1)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x1897f1[_0x38be('0x59')]===_0x38be('0x5a')){var _0x347c0e=_0x5c33fb['get']({'plain':!![]});var _0x542b2a=[{'name':_0x38be('0x2d'),'value':'inbound'},{'name':_0x38be('0x5b'),'value':_0x38be('0x2f')}];var _0x12a1b0=_['find'](_0x542b2a,['value',_0x347c0e[_0x38be('0x36')]])['name'];return db[_0x38be('0x5c')][_0x38be('0x35')]({'where':{'name':_0x12a1b0,'userProfileId':_0x1897f1[_0x38be('0x5d')]},'raw':!![]})[_0x38be('0x2b')](function(_0x48e2a9){if(_0x48e2a9&&_0x48e2a9[_0x38be('0x64')]===0x0){return db[_0x38be('0x5e')][_0x38be('0x56')]({'name':_0x347c0e['name'],'resourceId':_0x347c0e['id'],'type':_0x48e2a9[_0x38be('0x37')],'sectionId':_0x48e2a9['id']},{})[_0x38be('0x2b')](function(){return _0x5c33fb;});}else{return _0x5c33fb;}})[_0x38be('0x51')](function(_0x597e46){logger[_0x38be('0x38')](_0x38be('0x5f'),_0x597e46);throw _0x597e46;});}return _0x5c33fb;});}})['then'](respondWithResult(_0x45bb44,0xc9))[_0x38be('0x51')](handleError(_0x45bb44,null));};exports[_0x38be('0x29')]=function(_0x40c5ec,_0x22576e){if(_0x40c5ec[_0x38be('0x57')]['id']){delete _0x40c5ec[_0x38be('0x57')]['id'];}return db[_0x38be('0x3c')][_0x38be('0x35')]({'where':{'id':_0x40c5ec[_0x38be('0x52')]['id']}})[_0x38be('0x2b')](handleEntityNotFound(_0x22576e,null))[_0x38be('0x2b')](saveUpdates(_0x40c5ec[_0x38be('0x57')],null))[_0x38be('0x2b')](respondWithResult(_0x22576e,null))[_0x38be('0x51')](handleError(_0x22576e,null));};exports['destroy']=function(_0x3dac62,_0x8ca0cf){return db['VoiceQueue']['find']({'where':{'id':_0x3dac62[_0x38be('0x52')]['id']}})[_0x38be('0x2b')](handleEntityNotFound(_0x8ca0cf,null))[_0x38be('0x2b')](removeEntity(_0x8ca0cf,null))[_0x38be('0x51')](handleError(_0x8ca0cf,null));};exports['getHoppers']=function(_0x17ac2d,_0x5dafee,_0x57c676){var _0x13a434={'raw':![],'where':{}};var _0x3862ec={};var _0xcddbdd={'count':0x0,'rows':[]};return db[_0x38be('0x3c')][_0x38be('0x65')]({'where':{'id':_0x17ac2d['params']['id']}})[_0x38be('0x2b')](handleEntityNotFound(_0x5dafee,null))[_0x38be('0x2b')](function(_0x4aef7c){if(_0x4aef7c){_0x3862ec[_0x38be('0x40')]=_[_0x38be('0x42')](db[_0x38be('0x66')][_0x38be('0x3d')]);_0x3862ec[_0x38be('0x41')]=_[_0x38be('0x42')](_0x17ac2d['query']);_0x3862ec[_0x38be('0x43')]=_[_0x38be('0x44')](_0x3862ec[_0x38be('0x40')],_0x3862ec['query']);_0x13a434[_0x38be('0x45')]=_[_0x38be('0x44')](_0x3862ec[_0x38be('0x40')],qs[_0x38be('0x46')](_0x17ac2d[_0x38be('0x41')][_0x38be('0x46')]));_0x13a434['attributes']=_0x13a434['attributes'][_0x38be('0x53')]?_0x13a434[_0x38be('0x45')]:_0x3862ec[_0x38be('0x40')];if(!_0x17ac2d[_0x38be('0x41')][_0x38be('0x47')](_0x38be('0x67'))){_0x13a434[_0x38be('0x23')]=qs[_0x38be('0x23')](_0x17ac2d[_0x38be('0x41')][_0x38be('0x23')]);_0x13a434[_0x38be('0x21')]=qs[_0x38be('0x21')](_0x17ac2d[_0x38be('0x41')][_0x38be('0x21')]);}_0x13a434[_0x38be('0x48')]=qs[_0x38be('0x49')](_0x17ac2d[_0x38be('0x41')][_0x38be('0x49')]);_0x13a434[_0x38be('0x4a')]=qs[_0x38be('0x43')](_[_0x38be('0x4b')](_0x17ac2d['query'],_0x3862ec['filters']));_0x13a434[_0x38be('0x4a')][_0x38be('0x68')]=_0x4aef7c['id'];if(_0x17ac2d[_0x38be('0x41')]['filter']){_0x13a434['where']=_[_0x38be('0x4c')](_0x13a434[_0x38be('0x4a')],{'$or':_[_0x38be('0x32')](_0x13a434[_0x38be('0x45')],function(_0x2f88d9){var _0x3a4e28={};_0x3a4e28[_0x2f88d9]={'$like':'%'+_0x17ac2d[_0x38be('0x41')][_0x38be('0x30')]+'%'};return _0x3a4e28;})});}_0x13a434=_[_0x38be('0x4c')]({},_0x13a434,_0x17ac2d[_0x38be('0x55')]);return db[_0x38be('0x66')][_0x38be('0x24')]({'where':_0x13a434[_0x38be('0x4a')]})[_0x38be('0x2b')](function(_0x45c509){_0xcddbdd[_0x38be('0x24')]=_0x45c509;if(_0x17ac2d[_0x38be('0x41')][_0x38be('0x54')]){_0x13a434['include']=[{'all':!![]}];}return db[_0x38be('0x66')][_0x38be('0x4f')](_0x13a434);})['then'](function(_0x399e4f){_0xcddbdd[_0x38be('0x50')]=_0x399e4f;return _0xcddbdd;});}})[_0x38be('0x2b')](respondWithFilteredResult(_0x5dafee,_0x13a434))[_0x38be('0x51')](handleError(_0x5dafee,null));};exports[_0x38be('0x69')]=function(_0x56fd7a,_0x175a8a,_0x15361c){var _0x4ce168={'raw':!![],'where':{}};var _0x571e56={};var _0x8b6985={'count':0x0,'rows':[]};return db[_0x38be('0x3c')][_0x38be('0x65')]({'where':{'id':_0x56fd7a['params']['id']}})[_0x38be('0x2b')](handleEntityNotFound(_0x175a8a,null))[_0x38be('0x2b')](function(_0x554379){if(_0x554379){_0x571e56[_0x38be('0x40')]=_[_0x38be('0x42')](db[_0x38be('0x6a')][_0x38be('0x3d')]);_0x571e56[_0x38be('0x41')]=_['keys'](_0x56fd7a[_0x38be('0x41')]);_0x571e56[_0x38be('0x43')]=_[_0x38be('0x44')](_0x571e56[_0x38be('0x40')],_0x571e56[_0x38be('0x41')]);_0x4ce168[_0x38be('0x45')]=_['intersection'](_0x571e56[_0x38be('0x40')],qs[_0x38be('0x46')](_0x56fd7a['query'][_0x38be('0x46')]));_0x4ce168[_0x38be('0x45')]=_0x4ce168[_0x38be('0x45')][_0x38be('0x53')]?_0x4ce168[_0x38be('0x45')]:_0x571e56[_0x38be('0x40')];if(!_0x56fd7a[_0x38be('0x41')][_0x38be('0x47')]('nolimit')){_0x4ce168[_0x38be('0x23')]=qs[_0x38be('0x23')](_0x56fd7a[_0x38be('0x41')][_0x38be('0x23')]);_0x4ce168[_0x38be('0x21')]=qs[_0x38be('0x21')](_0x56fd7a['query'][_0x38be('0x21')]);}_0x4ce168['order']=qs[_0x38be('0x49')](_0x56fd7a[_0x38be('0x41')][_0x38be('0x49')]);_0x4ce168['where']=qs[_0x38be('0x43')](_[_0x38be('0x4b')](_0x56fd7a[_0x38be('0x41')],_0x571e56[_0x38be('0x43')]));_0x4ce168[_0x38be('0x4a')][_0x38be('0x68')]=_0x554379['id'];if(_0x56fd7a[_0x38be('0x41')]['filter']){_0x4ce168[_0x38be('0x4a')]=_[_0x38be('0x4c')](_0x4ce168[_0x38be('0x4a')],{'$or':_[_0x38be('0x32')](_0x4ce168[_0x38be('0x45')],function(_0x2ed129){var _0x5547fc={};_0x5547fc[_0x2ed129]={'$like':'%'+_0x56fd7a[_0x38be('0x41')][_0x38be('0x30')]+'%'};return _0x5547fc;})});}_0x4ce168=_[_0x38be('0x4c')]({},_0x4ce168,_0x56fd7a[_0x38be('0x55')]);return db[_0x38be('0x6a')][_0x38be('0x24')]({'where':_0x4ce168[_0x38be('0x4a')]})['then'](function(_0x8a72b7){_0x8b6985[_0x38be('0x24')]=_0x8a72b7;if(_0x56fd7a[_0x38be('0x41')][_0x38be('0x54')]){_0x4ce168[_0x38be('0x4e')]=[{'all':!![]}];}return db['CmHopperHistory'][_0x38be('0x4f')](_0x4ce168);})[_0x38be('0x2b')](function(_0x13c542){_0x8b6985['rows']=_0x13c542;return _0x8b6985;});}})[_0x38be('0x2b')](respondWithFilteredResult(_0x175a8a,_0x4ce168))[_0x38be('0x51')](handleError(_0x175a8a,null));};exports['getHopperFinals']=function(_0x5c9c7b,_0x59273f,_0x42138a){var _0x5bc431={'raw':!![],'where':{}};var _0x292522={};var _0x545bb3={'count':0x0,'rows':[]};return db['VoiceQueue'][_0x38be('0x65')]({'where':{'id':_0x5c9c7b['params']['id']}})[_0x38be('0x2b')](handleEntityNotFound(_0x59273f,null))[_0x38be('0x2b')](function(_0x50fddf){if(_0x50fddf){_0x292522[_0x38be('0x40')]=_[_0x38be('0x42')](db[_0x38be('0x6b')][_0x38be('0x3d')]);_0x292522['query']=_[_0x38be('0x42')](_0x5c9c7b['query']);_0x292522[_0x38be('0x43')]=_['intersection'](_0x292522[_0x38be('0x40')],_0x292522['query']);_0x5bc431[_0x38be('0x45')]=_['intersection'](_0x292522[_0x38be('0x40')],qs[_0x38be('0x46')](_0x5c9c7b[_0x38be('0x41')][_0x38be('0x46')]));_0x5bc431[_0x38be('0x45')]=_0x5bc431['attributes'][_0x38be('0x53')]?_0x5bc431[_0x38be('0x45')]:_0x292522[_0x38be('0x40')];if(!_0x5c9c7b[_0x38be('0x41')][_0x38be('0x47')](_0x38be('0x67'))){_0x5bc431[_0x38be('0x23')]=qs['limit'](_0x5c9c7b[_0x38be('0x41')]['limit']);_0x5bc431[_0x38be('0x21')]=qs['offset'](_0x5c9c7b['query']['offset']);}_0x5bc431[_0x38be('0x48')]=qs[_0x38be('0x49')](_0x5c9c7b['query'][_0x38be('0x49')]);_0x5bc431[_0x38be('0x4a')]=qs[_0x38be('0x43')](_[_0x38be('0x4b')](_0x5c9c7b[_0x38be('0x41')],_0x292522[_0x38be('0x43')]));_0x5bc431[_0x38be('0x4a')][_0x38be('0x68')]=_0x50fddf['id'];if(_0x5c9c7b[_0x38be('0x41')]['filter']){_0x5bc431[_0x38be('0x4a')]=_[_0x38be('0x4c')](_0x5bc431[_0x38be('0x4a')],{'$or':_['map'](_0x5bc431[_0x38be('0x45')],function(_0x4e2a27){var _0x5130c0={};_0x5130c0[_0x4e2a27]={'$like':'%'+_0x5c9c7b['query'][_0x38be('0x30')]+'%'};return _0x5130c0;})});}_0x5bc431=_[_0x38be('0x4c')]({},_0x5bc431,_0x5c9c7b['options']);return db[_0x38be('0x6b')][_0x38be('0x24')]({'where':_0x5bc431['where']})[_0x38be('0x2b')](function(_0x302903){_0x545bb3[_0x38be('0x24')]=_0x302903;if(_0x5c9c7b[_0x38be('0x41')][_0x38be('0x54')]){_0x5bc431[_0x38be('0x4e')]=[{'all':!![]}];}return db[_0x38be('0x6b')][_0x38be('0x4f')](_0x5bc431);})['then'](function(_0x361155){_0x545bb3[_0x38be('0x50')]=_0x361155;return _0x545bb3;});}})['then'](respondWithFilteredResult(_0x59273f,_0x5bc431))[_0x38be('0x51')](handleError(_0x59273f,null));};exports['getHopperBlacks']=function(_0x5ad0a6,_0x4bbf52,_0x478984){var _0x5d5928={'raw':!![],'where':{}};var _0x274fb2={};var _0x2a4ff0={'count':0x0,'rows':[]};return db[_0x38be('0x3c')][_0x38be('0x65')]({'where':{'id':_0x5ad0a6[_0x38be('0x52')]['id']}})['then'](handleEntityNotFound(_0x4bbf52,null))[_0x38be('0x2b')](function(_0x33eda6){if(_0x33eda6){_0x274fb2[_0x38be('0x40')]=_[_0x38be('0x42')](db[_0x38be('0x6c')][_0x38be('0x3d')]);_0x274fb2[_0x38be('0x41')]=_['keys'](_0x5ad0a6[_0x38be('0x41')]);_0x274fb2[_0x38be('0x43')]=_[_0x38be('0x44')](_0x274fb2[_0x38be('0x40')],_0x274fb2[_0x38be('0x41')]);_0x5d5928['attributes']=_[_0x38be('0x44')](_0x274fb2[_0x38be('0x40')],qs['fields'](_0x5ad0a6[_0x38be('0x41')][_0x38be('0x46')]));_0x5d5928[_0x38be('0x45')]=_0x5d5928['attributes'][_0x38be('0x53')]?_0x5d5928[_0x38be('0x45')]:_0x274fb2[_0x38be('0x40')];if(!_0x5ad0a6[_0x38be('0x41')][_0x38be('0x47')](_0x38be('0x67'))){_0x5d5928['limit']=qs['limit'](_0x5ad0a6[_0x38be('0x41')][_0x38be('0x23')]);_0x5d5928['offset']=qs['offset'](_0x5ad0a6[_0x38be('0x41')][_0x38be('0x21')]);}_0x5d5928[_0x38be('0x48')]=qs[_0x38be('0x49')](_0x5ad0a6[_0x38be('0x41')]['sort']);_0x5d5928['where']=qs[_0x38be('0x43')](_['pick'](_0x5ad0a6[_0x38be('0x41')],_0x274fb2[_0x38be('0x43')]));_0x5d5928[_0x38be('0x4a')][_0x38be('0x68')]=_0x33eda6['id'];if(_0x5ad0a6[_0x38be('0x41')][_0x38be('0x30')]){_0x5d5928[_0x38be('0x4a')]=_[_0x38be('0x4c')](_0x5d5928[_0x38be('0x4a')],{'$or':_[_0x38be('0x32')](_0x5d5928[_0x38be('0x45')],function(_0x45f9f2){var _0x7f7ef3={};_0x7f7ef3[_0x45f9f2]={'$like':'%'+_0x5ad0a6['query'][_0x38be('0x30')]+'%'};return _0x7f7ef3;})});}_0x5d5928=_[_0x38be('0x4c')]({},_0x5d5928,_0x5ad0a6[_0x38be('0x55')]);return db['CmHopperBlack'][_0x38be('0x24')]({'where':_0x5d5928['where']})[_0x38be('0x2b')](function(_0x79ffc2){_0x2a4ff0[_0x38be('0x24')]=_0x79ffc2;if(_0x5ad0a6['query'][_0x38be('0x54')]){_0x5d5928['include']=[{'all':!![]}];}return db[_0x38be('0x6c')][_0x38be('0x4f')](_0x5d5928);})[_0x38be('0x2b')](function(_0x2f50bb){_0x2a4ff0['rows']=_0x2f50bb;return _0x2a4ff0;});}})[_0x38be('0x2b')](respondWithFilteredResult(_0x4bbf52,_0x5d5928))[_0x38be('0x51')](handleError(_0x4bbf52,null));};exports[_0x38be('0x6d')]=function(_0x4d5526,_0x1abe5b,_0x58ff3c){var _0x5c1737={};var _0x25e8d0={};var _0x258da2;var _0x408219;return db['VoiceQueue'][_0x38be('0x65')]({'where':{'id':_0x4d5526[_0x38be('0x52')]['id']}})[_0x38be('0x2b')](handleEntityNotFound(_0x1abe5b,null))[_0x38be('0x2b')](function(_0x19c87f){if(_0x19c87f){_0x258da2=_0x19c87f;_0x25e8d0['model']=_[_0x38be('0x42')](db['Team'][_0x38be('0x3d')]);_0x25e8d0[_0x38be('0x41')]=_[_0x38be('0x42')](_0x4d5526[_0x38be('0x41')]);_0x25e8d0[_0x38be('0x43')]=_[_0x38be('0x44')](_0x25e8d0['model'],_0x25e8d0[_0x38be('0x41')]);_0x5c1737['attributes']=_[_0x38be('0x44')](_0x25e8d0[_0x38be('0x40')],qs[_0x38be('0x46')](_0x4d5526[_0x38be('0x41')][_0x38be('0x46')]));_0x5c1737[_0x38be('0x45')]=_0x5c1737[_0x38be('0x45')]['length']?_0x5c1737[_0x38be('0x45')]:_0x25e8d0[_0x38be('0x40')];_0x5c1737[_0x38be('0x48')]=qs[_0x38be('0x49')](_0x4d5526[_0x38be('0x41')][_0x38be('0x49')]);_0x5c1737[_0x38be('0x4a')]=qs[_0x38be('0x43')](_[_0x38be('0x4b')](_0x4d5526[_0x38be('0x41')],_0x25e8d0[_0x38be('0x43')]));if(_0x4d5526[_0x38be('0x41')][_0x38be('0x30')]){_0x5c1737[_0x38be('0x4a')]=_[_0x38be('0x4c')](_0x5c1737['where'],{'$or':_[_0x38be('0x32')](_0x5c1737['attributes'],function(_0x2a9440){var _0x3e6ec3={};_0x3e6ec3[_0x2a9440]={'$like':'%'+_0x4d5526['query'][_0x38be('0x30')]+'%'};return _0x3e6ec3;})});}_0x5c1737=_[_0x38be('0x4c')]({},_0x5c1737,_0x4d5526[_0x38be('0x55')]);return _0x258da2['getTeams'](_0x5c1737);}})[_0x38be('0x2b')](function(_0x1a7797){if(_0x1a7797){_0x408219=_0x1a7797[_0x38be('0x53')];if(!_0x4d5526[_0x38be('0x41')][_0x38be('0x47')]('nolimit')){_0x5c1737['limit']=qs[_0x38be('0x23')](_0x4d5526[_0x38be('0x41')][_0x38be('0x23')]);_0x5c1737[_0x38be('0x21')]=qs['offset'](_0x4d5526[_0x38be('0x41')][_0x38be('0x21')]);}return _0x258da2['getTeams'](_0x5c1737);}})['then'](function(_0x15d37a){if(_0x15d37a){return _0x15d37a?{'count':_0x408219,'rows':_0x15d37a}:null;}})[_0x38be('0x2b')](respondWithResult(_0x1abe5b,null))[_0x38be('0x51')](handleError(_0x1abe5b,null));};exports[_0x38be('0x6e')]=function(_0x490691,_0x1ecfb3,_0x3e3b41){var _0x455200=_0x490691[_0x38be('0x57')][_0x38be('0x6f')];var _0x4a374b=_['map'](_0x455200,'id');return db['Team'][_0x38be('0x4f')]({'where':{'id':_0x4a374b},'attributes':['id'],'include':[{'model':db[_0x38be('0x70')],'as':_0x38be('0x71'),'attributes':['id',_0x38be('0x37'),_0x38be('0x72'),_0x38be('0x73'),_0x38be('0x74')],'raw':!![]}]})[_0x38be('0x2b')](function(_0xc4ccd3){if(_0xc4ccd3){var _0x5ca6e2=_[_0x38be('0x75')](_0xc4ccd3,function(_0x45ca5d){var _0x479ffb=_0x45ca5d['get']({'plain':!![]});_0x479ffb['Agents']['forEach'](function(_0x175c57){_0x175c57[_0x38be('0x76')]=_[_0x38be('0x35')](_0x455200,{'id':_0x479ffb['id']})[_0x38be('0x76')];});return _0x479ffb[_0x38be('0x71')];});return db[_0x38be('0x3c')][_0x38be('0x35')]({'where':{'id':_0x490691[_0x38be('0x52')]['id']}})[_0x38be('0x2b')](function(_0x532b8e){return db[_0x38be('0x77')][_0x38be('0x78')](function(_0x8043a8){return _0x532b8e[_0x38be('0x6e')](_0x4a374b,{'transaction':_0x8043a8})[_0x38be('0x2b')](function(){return BPromise[_0x38be('0x79')](_0x455200,function(_0x5ddcdf){return db[_0x38be('0x7a')][_0x38be('0x7b')]({'TeamId':_0x5ddcdf['id'],'VoiceQueueId':_0x490691[_0x38be('0x52')]['id'],'penalty':_0x5ddcdf['penalty']},{'transaction':_0x8043a8});});})[_0x38be('0x2b')](function(){return BPromise['each'](_0x5ca6e2,function(_0x4def25){return db[_0x38be('0x7c')]['findOrCreate']({'where':{'UserId':_0x4def25['id'],'VoiceQueueId':_0x490691['params']['id']},'defaults':{'penalty':_0x4def25[_0x38be('0x76')]},'transaction':_0x8043a8});});})[_0x38be('0x2b')](function(){return BPromise[_0x38be('0x79')](_[_0x38be('0x30')](_0x5ca6e2,{'online':!![]}),function(_0x1753d8){return db[_0x38be('0x7d')][_0x38be('0x7b')]({'membername':_0x1753d8[_0x38be('0x37')],'UserId':_0x1753d8['id'],'queue_name':_0x532b8e[_0x38be('0x37')],'VoiceQueueId':_0x532b8e['id'],'interface':_[_0x38be('0x7e')](_0x1753d8[_0x38be('0x74')])?util[_0x38be('0x7f')](_0x38be('0x80'),_0x1753d8[_0x38be('0x37')]):_0x1753d8[_0x38be('0x74')],'paused':_0x1753d8['voicePause']||![],'penalty':_0x1753d8[_0x38be('0x76')]},{'transaction':_0x8043a8});});})['then'](function(){_0x5ca6e2[_0x38be('0x81')](function(_0xdf3d6b){socket['emit'](_0x38be('0x82'),{'UserId':_0xdf3d6b['id'],'VoiceQueueId':_0x532b8e['id']});});});});});}})[_0x38be('0x2b')](respondWithStatusCode(_0x1ecfb3,null))['catch'](handleError(_0x1ecfb3,null));};exports['removeTeams']=function(_0x304ee0,_0x15d735,_0x2fd64a){return db[_0x38be('0x83')][_0x38be('0x4f')]({'where':{'id':_0x304ee0['query'][_0x38be('0x84')]},'attributes':['id'],'include':[{'model':db[_0x38be('0x70')],'as':_0x38be('0x71'),'attributes':['id'],'raw':!![]}]})[_0x38be('0x2b')](handleEntityNotFound(_0x15d735,null))['then'](function(_0x31f0d1){var _0x4c3859=_[_0x38be('0x32')](_0x31f0d1,'id');var _0x4747c1=[];var _0x5805d3=[];var _0x565312=squel[_0x38be('0x85')]();_0x565312['field']('tq.TeamId')[_0x38be('0x86')]('team_has_voice_queues','tq')[_0x38be('0x87')](_0x38be('0x88'),'ut',_0x38be('0x89'))[_0x38be('0x4a')](_0x38be('0x8a'),_0x304ee0[_0x38be('0x52')]['id']);for(var _0x550c12=0x0;_0x550c12<_0x31f0d1[_0x38be('0x53')];_0x550c12+=0x1){let _0x48733d=_0x31f0d1[_0x550c12];for(var _0x99ff5d=0x0;_0x99ff5d<_0x48733d[_0x38be('0x71')][_0x38be('0x53')];_0x99ff5d+=0x1){let _0x5616a8=_0x48733d[_0x38be('0x71')][_0x99ff5d];var _0xad63d7=_0x565312['clone']();_0xad63d7[_0x38be('0x4a')](_0x38be('0x8b'),_0x5616a8['id']);_0x5805d3[_0x38be('0x8c')](db[_0x38be('0x77')][_0x38be('0x41')](_0xad63d7[_0x38be('0x8d')](),{'type':db[_0x38be('0x77')][_0x38be('0x8e')][_0x38be('0x8f')]})['then'](function(_0x19c91c){if(_0x19c91c[_0x38be('0x53')]===0x1){return _0x5616a8['id'];}else{var _0x3c96e4=_[_0x38be('0x90')](_[_0x38be('0x32')](_0x19c91c,_0x38be('0x91')),function(_0x57d83e){return _[_0x38be('0x34')](_0x4c3859,_0x57d83e);});if(_0x3c96e4){return _0x5616a8['id'];}}}));}}return BPromise[_0x38be('0x92')](_0x5805d3)[_0x38be('0x2b')](function(_0x43493d){_0x4747c1=_(_0x4747c1)[_0x38be('0x93')](_0x43493d)[_0x38be('0x94')]()[_0x38be('0x33')]();return db[_0x38be('0x3c')][_0x38be('0x35')]({'where':{'id':_0x304ee0['params']['id']}})[_0x38be('0x2b')](function(_0x5bff45){return db['sequelize'][_0x38be('0x78')](function(_0x3ea9f3){return _0x5bff45['removeTeams'](_0x304ee0[_0x38be('0x41')][_0x38be('0x84')],{'transaction':_0x3ea9f3})['then'](function(){if(!_[_0x38be('0x95')](_0x4747c1)){return _0x5bff45[_0x38be('0x96')](_0x4747c1,{'transaction':_0x3ea9f3})[_0x38be('0x2b')](function(){return db[_0x38be('0x7d')][_0x38be('0x2a')]({'where':{'VoiceQueueId':_0x304ee0[_0x38be('0x52')]['id'],'UserId':_0x4747c1},'transaction':_0x3ea9f3});});}})[_0x38be('0x2b')](function(){_0x4747c1['forEach'](function(_0x34d4d8){socket['emit'](_0x38be('0x97'),{'UserId':_0x34d4d8,'VoiceQueueId':_0x5bff45['id']});});});});});});})[_0x38be('0x2b')](respondWithStatusCode(_0x15d735,null))[_0x38be('0x51')](handleError(_0x15d735,null));};exports[_0x38be('0x98')]=function(_0x135e99,_0x5da77f,_0x4d30f9){var _0x445de8,_0x363e2d;return db[_0x38be('0x3c')][_0x38be('0x35')]({'where':{'id':_0x135e99[_0x38be('0x52')]['id']}})['then'](handleEntityNotFound(_0x5da77f,null))[_0x38be('0x2b')](function(_0x190e6a){if(_0x190e6a){_0x363e2d=_0x190e6a;return _0x190e6a[_0x38be('0x98')](_0x135e99[_0x38be('0x57')][_0x38be('0x84')],_[_0x38be('0x61')](_0x135e99['body'],[_0x38be('0x84'),'id'])||{})[_0x38be('0x99')](function(_0x20c547){for(var _0x4a6ebe=0x0;_0x4a6ebe<_0x135e99[_0x38be('0x57')][_0x38be('0x84')][_0x38be('0x53')];_0x4a6ebe+=0x1){socket[_0x38be('0x9a')](_0x38be('0x82'),{'UserId':Number(_0x135e99[_0x38be('0x57')]['ids'][_0x4a6ebe]),'VoiceQueueId':Number(_0x135e99['params']['id'])});}return _0x20c547;});}})[_0x38be('0x2b')](function(_0x20fbbd){_0x445de8=_0x20fbbd||[];if(_0x363e2d){return db['User'][_0x38be('0x4f')]({'where':{'id':_0x135e99[_0x38be('0x57')][_0x38be('0x84')]},'attributes':['id',_0x38be('0x37'),_0x38be('0x72'),_0x38be('0x73'),_0x38be('0x74')],'raw':!![]});}})['then'](function(_0x11efab){if(!_['isEmpty'](_0x11efab)){var _0x22a1c1=[];for(var _0x5ba153=0x0;_0x5ba153<_0x11efab[_0x38be('0x53')];_0x5ba153++){if(_0x11efab[_0x5ba153][_0x38be('0x72')]){_0x22a1c1['push'](db['UserVoiceQueueRt'][_0x38be('0x7b')]({'membername':_0x11efab[_0x5ba153]['name'],'UserId':_0x11efab[_0x5ba153]['id'],'queue_name':_0x363e2d['name'],'VoiceQueueId':_0x363e2d['id'],'interface':_['isNil'](_0x11efab[_0x5ba153][_0x38be('0x74')])?util[_0x38be('0x7f')](_0x38be('0x80'),_0x11efab[_0x5ba153][_0x38be('0x37')]):_0x11efab[_0x5ba153][_0x38be('0x74')],'paused':_0x11efab[_0x5ba153]['voicePause']||![],'penalty':_0x135e99[_0x38be('0x57')][_0x38be('0x76')]||0x0}));}}return BPromise[_0x38be('0x92')](_0x22a1c1);}})['then'](function(){return _0x445de8;})[_0x38be('0x2b')](respondWithResult(_0x5da77f,null))[_0x38be('0x51')](handleError(_0x5da77f,null));};exports['removeAgents']=function(_0x8f58cd,_0x4b5559,_0x5c083c){return db[_0x38be('0x3c')][_0x38be('0x35')]({'where':{'id':_0x8f58cd[_0x38be('0x52')]['id']}})[_0x38be('0x2b')](handleEntityNotFound(_0x4b5559,null))[_0x38be('0x2b')](function(_0x130860){if(_0x130860){return _0x130860[_0x38be('0x96')](_0x8f58cd[_0x38be('0x41')][_0x38be('0x84')])[_0x38be('0x2b')](function(){if(_['isArray'](_0x8f58cd['query'][_0x38be('0x84')])){for(var _0x2e3cd1=0x0;_0x2e3cd1<_0x8f58cd[_0x38be('0x41')][_0x38be('0x84')][_0x38be('0x53')];_0x2e3cd1+=0x1){socket[_0x38be('0x9a')](_0x38be('0x97'),{'UserId':Number(_0x8f58cd['query'][_0x38be('0x84')][_0x2e3cd1]),'VoiceQueueId':Number(_0x8f58cd[_0x38be('0x52')]['id'])});}}else{socket[_0x38be('0x9a')](_0x38be('0x97'),{'UserId':Number(_0x8f58cd[_0x38be('0x41')][_0x38be('0x84')]),'VoiceQueueId':Number(_0x8f58cd[_0x38be('0x52')]['id'])});}});}})[_0x38be('0x2b')](function(_0x53e02){return db['UserVoiceQueueRt'][_0x38be('0x2a')]({'where':{'VoiceQueueId':_0x8f58cd[_0x38be('0x52')]['id'],'UserId':_0x8f58cd[_0x38be('0x41')][_0x38be('0x84')]}})[_0x38be('0x2b')](function(){return _0x53e02;});})[_0x38be('0x2b')](respondWithStatusCode(_0x4b5559,null))['catch'](handleError(_0x4b5559,null));};exports[_0x38be('0x9b')]=function(_0x1e1238,_0xafe4ac,_0x4467b8){var _0x3e81be={};var _0x193267={};var _0x3d39d4;var _0x526e04;return db['VoiceQueue']['findOne']({'where':{'id':_0x1e1238[_0x38be('0x52')]['id']}})['then'](handleEntityNotFound(_0xafe4ac,null))['then'](function(_0x188da6){if(_0x188da6){_0x3d39d4=_0x188da6;_0x193267[_0x38be('0x40')]=_[_0x38be('0x42')](db[_0x38be('0x70')][_0x38be('0x3d')]);_0x193267[_0x38be('0x41')]=_[_0x38be('0x42')](_0x1e1238[_0x38be('0x41')]);_0x193267['filters']=_[_0x38be('0x44')](_0x193267[_0x38be('0x40')],_0x193267[_0x38be('0x41')]);_0x3e81be[_0x38be('0x45')]=_[_0x38be('0x44')](_0x193267[_0x38be('0x40')],qs[_0x38be('0x46')](_0x1e1238[_0x38be('0x41')][_0x38be('0x46')]));_0x3e81be[_0x38be('0x45')]=_0x3e81be[_0x38be('0x45')][_0x38be('0x53')]?_0x3e81be[_0x38be('0x45')]:_0x193267[_0x38be('0x40')];_0x3e81be[_0x38be('0x48')]=qs[_0x38be('0x49')](_0x1e1238[_0x38be('0x41')][_0x38be('0x49')]);_0x3e81be[_0x38be('0x4a')]=qs['filters'](_[_0x38be('0x4b')](_0x1e1238[_0x38be('0x41')],_0x193267[_0x38be('0x43')]));if(_0x1e1238['query'][_0x38be('0x30')]){_0x3e81be[_0x38be('0x4a')]=_[_0x38be('0x4c')](_0x3e81be[_0x38be('0x4a')],{'$or':_[_0x38be('0x32')](_0x3e81be[_0x38be('0x45')],function(_0x2b4213){var _0x40dc57={};_0x40dc57[_0x2b4213]={'$like':'%'+_0x1e1238[_0x38be('0x41')]['filter']+'%'};return _0x40dc57;})});}_0x3e81be=_['merge']({},_0x3e81be,_0x1e1238[_0x38be('0x55')]);return _0x3d39d4[_0x38be('0x9b')](_0x3e81be);}})[_0x38be('0x2b')](function(_0x234c34){if(_0x234c34){_0x526e04=_0x234c34['length'];if(!_0x1e1238[_0x38be('0x41')][_0x38be('0x47')](_0x38be('0x67'))){_0x3e81be[_0x38be('0x23')]=qs['limit'](_0x1e1238['query'][_0x38be('0x23')]);_0x3e81be[_0x38be('0x21')]=qs[_0x38be('0x21')](_0x1e1238[_0x38be('0x41')]['offset']);}return _0x3d39d4['getAgents'](_0x3e81be);}})[_0x38be('0x2b')](function(_0x37ecb5){if(_0x37ecb5){return _0x37ecb5?{'count':_0x526e04,'rows':_0x37ecb5}:null;}})[_0x38be('0x2b')](respondWithResult(_0xafe4ac,null))[_0x38be('0x51')](handleError(_0xafe4ac,null));};exports[_0x38be('0x9c')]=function(_0x1a2681,_0x5de55a,_0x1baf12){var _0x3eb87f={};var _0x328a6d={};var _0x2a769d;var _0x37546b;return db['VoiceQueue'][_0x38be('0x65')]({'where':{'id':_0x1a2681[_0x38be('0x52')]['id']}})[_0x38be('0x2b')](handleEntityNotFound(_0x5de55a,null))['then'](function(_0xf16b3b){if(_0xf16b3b){_0x2a769d=_0xf16b3b;_0x328a6d[_0x38be('0x40')]=_['keys'](db['UserVoiceQueueRt'][_0x38be('0x3d')]);_0x328a6d[_0x38be('0x41')]=_[_0x38be('0x42')](_0x1a2681[_0x38be('0x41')]);_0x328a6d['filters']=_[_0x38be('0x44')](_0x328a6d['model'],_0x328a6d[_0x38be('0x41')]);_0x3eb87f[_0x38be('0x45')]=_['intersection'](_0x328a6d[_0x38be('0x40')],qs[_0x38be('0x46')](_0x1a2681[_0x38be('0x41')][_0x38be('0x46')]));_0x3eb87f['attributes']=_0x3eb87f[_0x38be('0x45')][_0x38be('0x53')]?_0x3eb87f[_0x38be('0x45')]:_0x328a6d[_0x38be('0x40')];_0x3eb87f[_0x38be('0x48')]=qs['sort'](_0x1a2681[_0x38be('0x41')][_0x38be('0x49')]);_0x3eb87f[_0x38be('0x4a')]=qs[_0x38be('0x43')](_[_0x38be('0x4b')](_0x1a2681[_0x38be('0x41')],_0x328a6d[_0x38be('0x43')]));if(_0x1a2681['query']['filter']){_0x3eb87f[_0x38be('0x4a')]=_['merge'](_0x3eb87f[_0x38be('0x4a')],{'$or':_['map'](_0x3eb87f[_0x38be('0x45')],function(_0x208f7e){var _0x17c6c5={};_0x17c6c5[_0x208f7e]={'$like':'%'+_0x1a2681[_0x38be('0x41')]['filter']+'%'};return _0x17c6c5;})});}_0x3eb87f=_[_0x38be('0x4c')]({},_0x3eb87f,_0x1a2681[_0x38be('0x55')]);return _0x2a769d['getMembers'](_0x3eb87f);}})[_0x38be('0x2b')](function(_0x5f4a3d){if(_0x5f4a3d){_0x37546b=_0x5f4a3d['length'];if(!_0x1a2681[_0x38be('0x41')][_0x38be('0x47')](_0x38be('0x67'))){_0x3eb87f['limit']=qs[_0x38be('0x23')](_0x1a2681[_0x38be('0x41')][_0x38be('0x23')]);_0x3eb87f[_0x38be('0x21')]=qs[_0x38be('0x21')](_0x1a2681[_0x38be('0x41')]['offset']);}return _0x2a769d['getMembers'](_0x3eb87f);}})[_0x38be('0x2b')](function(_0x99e738){return _0x99e738?{'count':_0x37546b,'rows':_0x99e738}:null;})[_0x38be('0x2b')](respondWithResult(_0x5de55a,null))[_0x38be('0x51')](handleError(_0x5de55a,null));};exports[_0x38be('0x9d')]=function(_0x22701c,_0x4f66cd,_0x5bcb85){var _0x5ab34d={};var _0x4cf837={};var _0x2461d8;var _0x547f3c;return db[_0x38be('0x3c')]['findOne']({'where':{'id':_0x22701c[_0x38be('0x52')]['id']}})[_0x38be('0x2b')](handleEntityNotFound(_0x4f66cd,null))[_0x38be('0x2b')](function(_0x2b3c6a){if(_0x2b3c6a){_0x2461d8=_0x2b3c6a;_0x4cf837['model']=_[_0x38be('0x42')](db[_0x38be('0x9e')][_0x38be('0x3d')]);_0x4cf837[_0x38be('0x41')]=_[_0x38be('0x42')](_0x22701c['query']);_0x4cf837[_0x38be('0x43')]=_['intersection'](_0x4cf837['model'],_0x4cf837[_0x38be('0x41')]);_0x5ab34d['attributes']=_[_0x38be('0x44')](_0x4cf837[_0x38be('0x40')],qs[_0x38be('0x46')](_0x22701c[_0x38be('0x41')][_0x38be('0x46')]));_0x5ab34d['attributes']=_0x5ab34d[_0x38be('0x45')][_0x38be('0x53')]?_0x5ab34d['attributes']:_0x4cf837['model'];_0x5ab34d[_0x38be('0x48')]=qs[_0x38be('0x49')](_0x22701c[_0x38be('0x41')]['sort']);_0x5ab34d[_0x38be('0x4a')]=qs[_0x38be('0x43')](_['pick'](_0x22701c['query'],_0x4cf837[_0x38be('0x43')]));if(_0x22701c[_0x38be('0x41')][_0x38be('0x30')]){_0x5ab34d['where']=_['merge'](_0x5ab34d[_0x38be('0x4a')],{'$or':_[_0x38be('0x32')](_0x5ab34d[_0x38be('0x45')],function(_0x1f9f2d){var _0x3b4c90={};_0x3b4c90[_0x1f9f2d]={'$like':'%'+_0x22701c[_0x38be('0x41')]['filter']+'%'};return _0x3b4c90;})});}_0x5ab34d=_[_0x38be('0x4c')]({},_0x5ab34d,_0x22701c[_0x38be('0x55')]);return _0x2461d8[_0x38be('0x9d')](_0x5ab34d);}})[_0x38be('0x2b')](function(_0x532820){if(_0x532820){_0x547f3c=_0x532820['length'];if(!_0x22701c['query'][_0x38be('0x47')](_0x38be('0x67'))){_0x5ab34d[_0x38be('0x23')]=qs['limit'](_0x22701c[_0x38be('0x41')][_0x38be('0x23')]);_0x5ab34d[_0x38be('0x21')]=qs['offset'](_0x22701c[_0x38be('0x41')]['offset']);}return _0x2461d8['getLists'](_0x5ab34d);}})[_0x38be('0x2b')](function(_0x295b13){if(_0x295b13){return _0x295b13?{'count':_0x547f3c,'rows':_0x295b13}:null;}})[_0x38be('0x2b')](respondWithResult(_0x4f66cd,null))['catch'](handleError(_0x4f66cd,null));};exports['addLists']=function(_0x187d2c,_0xf72231,_0x350442){var _0x14f15b,_0x43d9f6;return db[_0x38be('0x3c')][_0x38be('0x35')]({'where':{'id':_0x187d2c['params']['id']}})['then'](handleEntityNotFound(_0xf72231,null))[_0x38be('0x2b')](function(_0x3f45c7){if(_0x3f45c7){_0x43d9f6=_0x3f45c7;return _0x3f45c7['addLists'](_0x187d2c[_0x38be('0x57')][_0x38be('0x84')],_[_0x38be('0x61')](_0x187d2c[_0x38be('0x57')],['ids','id'])||{});}return null;})[_0x38be('0x99')](function(_0x397905){var _0x4ebfaf;_0x14f15b=_0x397905||[];var _0x54f4d5=[];if(_0x397905){for(var _0x4cce52=0x0;_0x4cce52<_0x397905[_0x38be('0x53')];_0x4cce52+=0x1){var _0x4bde4b=_0x397905[_0x4cce52]['get']({'plain':!![]});_0x43d9f6[_0x38be('0x9f')]=_0x187d2c[_0x38be('0x57')][_0x38be('0x9f')]?_0x187d2c[_0x38be('0x57')][_0x38be('0x9f')]:_0x43d9f6[_0x38be('0x9f')];switch(_0x43d9f6[_0x38be('0x9f')]){case'always':_0x4ebfaf=squel[_0x38be('0xa0')]()[_0x38be('0xa1')]('cm_hopper')[_0x38be('0xa2')]([_0x38be('0xa3'),_0x38be('0xa4'),_0x38be('0xa5'),_0x38be('0xa6'),'VoiceQueueId',_0x38be('0x62'),'updatedAt'],squel[_0x38be('0x85')]()[_0x38be('0xa7')](_0x38be('0xa3'),_0x38be('0xa3'))['field'](_0x38be('0xa8'),'scheduledAt')['field']('id',_0x38be('0xa5'))['field'](_0x4bde4b[_0x38be('0xa9')][_0x38be('0x8d')](),_0x38be('0xa6'))[_0x38be('0xa7')](_0x187d2c[_0x38be('0x52')]['id'][_0x38be('0x8d')](),_0x38be('0x68'))[_0x38be('0xa7')](_0x38be('0xa8'),_0x38be('0x62'))[_0x38be('0xa7')](_0x38be('0xa8'),'updatedAt')[_0x38be('0x86')](_0x38be('0xaa'))[_0x38be('0x4a')](_0x38be('0xab'))['where'](_0x38be('0xac'),_0x4bde4b[_0x38be('0xa9')]['toString']())[_0x38be('0x4a')](_0x38be('0xad'))[_0x38be('0x4a')](_0x38be('0xae'),squel[_0x38be('0x85')]()[_0x38be('0xa7')](_0x38be('0xaf'))[_0x38be('0x86')]('cm_hopper_final')[_0x38be('0x4a')](_0x38be('0x8a'),_0x187d2c['params']['id'][_0x38be('0x8d')]()))['where'](_0x38be('0xae'),squel[_0x38be('0x85')]()[_0x38be('0xa7')](_0x38be('0xb0'))['from'](_0x38be('0xb1'))[_0x38be('0x4a')](_0x38be('0x8a'),_0x187d2c[_0x38be('0x52')]['id'][_0x38be('0x8d')]())))[_0x38be('0x8d')]();break;case'onlyIfOpen':_0x4ebfaf=squel[_0x38be('0xa0')]()[_0x38be('0xa1')]('cm_hopper')['fromQuery']([_0x38be('0xa3'),_0x38be('0xa4'),_0x38be('0xa5'),_0x38be('0xa6'),'VoiceQueueId',_0x38be('0x62'),_0x38be('0x63')],squel['select']()['field'](_0x38be('0xa3'),_0x38be('0xa3'))[_0x38be('0xa7')]('NOW()','scheduledAt')[_0x38be('0xa7')]('id',_0x38be('0xa5'))[_0x38be('0xa7')](_0x4bde4b['CmListId'][_0x38be('0x8d')](),'ListId')['field'](_0x187d2c[_0x38be('0x52')]['id']['toString'](),_0x38be('0x68'))[_0x38be('0xa7')](_0x38be('0xa8'),_0x38be('0x62'))[_0x38be('0xa7')](_0x38be('0xa8'),'updatedAt')['from'](_0x38be('0xaa'))[_0x38be('0x4a')](_0x38be('0xab'))[_0x38be('0x4a')](_0x38be('0xac'),_0x4bde4b[_0x38be('0xa9')][_0x38be('0x8d')]())['where'](_0x38be('0xad'))[_0x38be('0x4a')](_0x38be('0xae'),squel[_0x38be('0x85')]()[_0x38be('0xa7')](_0x38be('0xb0'))[_0x38be('0x86')](_0x38be('0xb1'))['where'](_0x38be('0x8a'),_0x187d2c['params']['id'][_0x38be('0x8d')]())))['toString']();break;default:_0x4ebfaf=squel['insert']()[_0x38be('0xa1')](_0x38be('0xb1'))[_0x38be('0xa2')]([_0x38be('0xa3'),_0x38be('0xa4'),_0x38be('0xa5'),_0x38be('0xa6'),_0x38be('0x68'),'createdAt',_0x38be('0x63')],squel['select']()[_0x38be('0xa7')](_0x38be('0xa3'),_0x38be('0xa3'))[_0x38be('0xa7')](_0x38be('0xa8'),'scheduledAt')[_0x38be('0xa7')]('id','ContactId')['field'](_0x4bde4b[_0x38be('0xa9')][_0x38be('0x8d')](),_0x38be('0xa6'))[_0x38be('0xa7')](_0x187d2c['params']['id'][_0x38be('0x8d')](),_0x38be('0x68'))['field'](_0x38be('0xa8'),_0x38be('0x62'))[_0x38be('0xa7')]('NOW()',_0x38be('0x63'))[_0x38be('0x86')](_0x38be('0xaa'))['where']('deletedAt\x20IS\x20NULL')['where']('ListId\x20=\x20?',_0x4bde4b[_0x38be('0xa9')][_0x38be('0x8d')]())[_0x38be('0x4a')]('phone\x20IS\x20NOT\x20NULL'))['toString']();}_0x54f4d5[_0x38be('0x8c')](db[_0x38be('0x77')]['query'](_0x4ebfaf));}return BPromise[_0x38be('0x92')](_0x54f4d5);}})[_0x38be('0x2b')](function(){return _0x14f15b;})[_0x38be('0x2b')](respondWithResult(_0xf72231,null))[_0x38be('0x51')](handleError(_0xf72231,null));};exports['removeLists']=function(_0x4f57e4,_0x4a2e36,_0x30ffe8){return db[_0x38be('0x3c')][_0x38be('0x35')]({'where':{'id':_0x4f57e4['params']['id']}})[_0x38be('0x2b')](handleEntityNotFound(_0x4a2e36,null))[_0x38be('0x2b')](function(_0x4e6fa1){if(_0x4e6fa1){return _0x4e6fa1['removeLists'](_0x4f57e4[_0x38be('0x41')]['ids']);}})['then'](function(_0x2660fc){if(_0x2660fc){return db['CmHopper'][_0x38be('0x2a')]({'where':{'ListId':_0x4f57e4[_0x38be('0x41')][_0x38be('0x84')],'VoiceQueueId':_0x4f57e4[_0x38be('0x52')]['id']}})[_0x38be('0x2b')](function(){return _0x2660fc;});}})[_0x38be('0x2b')](respondWithStatusCode(_0x4a2e36,null))[_0x38be('0x51')](handleError(_0x4a2e36,null));};exports[_0x38be('0xb2')]=function(_0x268122,_0x3c3790,_0x860e5c){var _0x2b89e5={};var _0x228324={};var _0x344d9d;var _0x46cff4;return db[_0x38be('0x3c')]['findOne']({'where':{'id':_0x268122[_0x38be('0x52')]['id']}})[_0x38be('0x2b')](handleEntityNotFound(_0x3c3790,null))[_0x38be('0x2b')](function(_0x37aa5e){if(_0x37aa5e){_0x344d9d=_0x37aa5e;_0x228324[_0x38be('0x40')]=_['keys'](db[_0x38be('0x9e')][_0x38be('0x3d')]);_0x228324[_0x38be('0x41')]=_[_0x38be('0x42')](_0x268122[_0x38be('0x41')]);_0x228324[_0x38be('0x43')]=_[_0x38be('0x44')](_0x228324[_0x38be('0x40')],_0x228324[_0x38be('0x41')]);_0x2b89e5[_0x38be('0x45')]=_[_0x38be('0x44')](_0x228324[_0x38be('0x40')],qs['fields'](_0x268122['query']['fields']));_0x2b89e5[_0x38be('0x45')]=_0x2b89e5[_0x38be('0x45')][_0x38be('0x53')]?_0x2b89e5[_0x38be('0x45')]:_0x228324[_0x38be('0x40')];_0x2b89e5[_0x38be('0x48')]=qs[_0x38be('0x49')](_0x268122['query'][_0x38be('0x49')]);_0x2b89e5[_0x38be('0x4a')]=qs['filters'](_[_0x38be('0x4b')](_0x268122[_0x38be('0x41')],_0x228324[_0x38be('0x43')]));if(_0x268122[_0x38be('0x41')]['filter']){_0x2b89e5['where']=_[_0x38be('0x4c')](_0x2b89e5[_0x38be('0x4a')],{'$or':_[_0x38be('0x32')](_0x2b89e5[_0x38be('0x45')],function(_0x2e48c1){var _0x5223f5={};_0x5223f5[_0x2e48c1]={'$like':'%'+_0x268122[_0x38be('0x41')][_0x38be('0x30')]+'%'};return _0x5223f5;})});}_0x2b89e5=_[_0x38be('0x4c')]({},_0x2b89e5,_0x268122[_0x38be('0x55')]);return _0x344d9d[_0x38be('0xb2')](_0x2b89e5);}})[_0x38be('0x2b')](function(_0x552dd7){if(_0x552dd7){_0x46cff4=_0x552dd7[_0x38be('0x53')];if(!_0x268122[_0x38be('0x41')]['hasOwnProperty']('nolimit')){_0x2b89e5[_0x38be('0x23')]=qs['limit'](_0x268122[_0x38be('0x41')][_0x38be('0x23')]);_0x2b89e5[_0x38be('0x21')]=qs[_0x38be('0x21')](_0x268122[_0x38be('0x41')][_0x38be('0x21')]);}return _0x344d9d[_0x38be('0xb2')](_0x2b89e5);}})[_0x38be('0x2b')](function(_0x294189){if(_0x294189){return _0x294189?{'count':_0x46cff4,'rows':_0x294189}:null;}})['then'](respondWithResult(_0x3c3790,null))[_0x38be('0x51')](handleError(_0x3c3790,null));};exports[_0x38be('0xb3')]=function(_0xa18c8f,_0x53baf5,_0x85283a){var _0x214296,_0x256ea9;return db[_0x38be('0x3c')][_0x38be('0x35')]({'where':{'id':_0xa18c8f[_0x38be('0x52')]['id']}})[_0x38be('0x2b')](handleEntityNotFound(_0x53baf5,null))[_0x38be('0x2b')](function(_0x2d19ba){if(_0x2d19ba){_0x256ea9=_0x2d19ba;return _0x2d19ba[_0x38be('0xb3')](_0xa18c8f[_0x38be('0x57')][_0x38be('0x84')],_[_0x38be('0x61')](_0xa18c8f[_0x38be('0x57')],['ids','id'])||{});}return null;})[_0x38be('0x99')](function(_0x2ff0b3){var _0x155f5b;_0x214296=_0x2ff0b3||[];var _0x89d11c=[];if(_0x2ff0b3){for(var _0x1a64f4=0x0;_0x1a64f4<_0x2ff0b3[_0x38be('0x53')];_0x1a64f4+=0x1){var _0x57af2d=_0x2ff0b3[_0x1a64f4]['get']({'plain':!![]});_0x155f5b=squel[_0x38be('0xa0')]()[_0x38be('0xa1')](_0x38be('0xb4'))[_0x38be('0xa2')]([_0x38be('0xa3'),'ContactId',_0x38be('0xa6'),_0x38be('0x68'),_0x38be('0x62'),_0x38be('0x63')],squel['select']()['field'](_0x38be('0xa3'),_0x38be('0xa3'))[_0x38be('0xa7')]('id',_0x38be('0xa5'))[_0x38be('0xa7')](_0x57af2d['CmListId'][_0x38be('0x8d')](),_0x38be('0xa6'))[_0x38be('0xa7')](_0xa18c8f[_0x38be('0x52')]['id'][_0x38be('0x8d')](),_0x38be('0x68'))['field'](_0x38be('0xa8'),_0x38be('0x62'))[_0x38be('0xa7')](_0x38be('0xa8'),_0x38be('0x63'))[_0x38be('0x86')](_0x38be('0xaa'))['where'](_0x38be('0xab'))[_0x38be('0x4a')](_0x38be('0xac'),_0x57af2d[_0x38be('0xa9')][_0x38be('0x8d')]())['where'](_0x38be('0xad')))[_0x38be('0x8d')]();_0x89d11c['push'](db['sequelize'][_0x38be('0x41')](_0x155f5b));}return BPromise[_0x38be('0x92')](_0x89d11c);}})[_0x38be('0x2b')](function(){return _0x214296;})['then'](respondWithResult(_0x53baf5,null))['catch'](handleError(_0x53baf5,null));};exports[_0x38be('0xb5')]=function(_0x1fd8ba,_0x4254ff,_0x497d93){return db[_0x38be('0x3c')]['find']({'where':{'id':_0x1fd8ba[_0x38be('0x52')]['id']}})['then'](handleEntityNotFound(_0x4254ff,null))[_0x38be('0x2b')](function(_0x1980bc){if(_0x1980bc){return _0x1980bc[_0x38be('0xb5')](_0x1fd8ba[_0x38be('0x41')][_0x38be('0x84')]);}})[_0x38be('0x2b')](function(_0x4831e1){if(_0x4831e1){return db[_0x38be('0x6c')]['destroy']({'where':{'ListId':_0x1fd8ba[_0x38be('0x41')][_0x38be('0x84')],'VoiceQueueId':_0x1fd8ba[_0x38be('0x52')]['id']}})['then'](function(){return _0x4831e1;});}})[_0x38be('0x2b')](respondWithStatusCode(_0x4254ff,null))[_0x38be('0x51')](handleError(_0x4254ff,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb40d=['exports','../../mysqldb','VoiceQueue','setMaxListeners','save','remove','emit','hook'];(function(_0x348c3f,_0x1d7588){var _0x2c6831=function(_0x105976){while(--_0x105976){_0x348c3f['push'](_0x348c3f['shift']());}};_0x2c6831(++_0x1d7588);}(_0xb40d,0x1a1));var _0xdb40=function(_0x276ff9,_0x378650){_0x276ff9=_0x276ff9-0x0;var _0x975945=_0xb40d[_0x276ff9];return _0x975945;};'use strict';var EventEmitter=require('events');var VoiceQueue=require(_0xdb40('0x0'))['db'][_0xdb40('0x1')];var VoiceQueueEvents=new EventEmitter();VoiceQueueEvents[_0xdb40('0x2')](0x0);var events={'afterCreate':_0xdb40('0x3'),'afterUpdate':'update','afterDestroy':_0xdb40('0x4')};function emitEvent(_0x290304){return function(_0x2cd737,_0x3215aa,_0x124bff){VoiceQueueEvents[_0xdb40('0x5')](_0x290304+':'+_0x2cd737['id'],_0x2cd737);VoiceQueueEvents[_0xdb40('0x5')](_0x290304,_0x2cd737);_0x124bff(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];VoiceQueue[_0xdb40('0x6')](e,emitEvent(event));}}module[_0xdb40('0x7')]=VoiceQueueEvents;
\ No newline at end of file
+var _0xdcc3=['save','remove','emit','hasOwnProperty','exports','../../mysqldb'];(function(_0x25be50,_0x5bc06f){var _0x2245be=function(_0xead4){while(--_0xead4){_0x25be50['push'](_0x25be50['shift']());}};_0x2245be(++_0x5bc06f);}(_0xdcc3,0x1cd));var _0x3dcc=function(_0x54cb07,_0x4e6bcd){_0x54cb07=_0x54cb07-0x0;var _0x6d02d8=_0xdcc3[_0x54cb07];return _0x6d02d8;};'use strict';var EventEmitter=require('events');var VoiceQueue=require(_0x3dcc('0x0'))['db']['VoiceQueue'];var VoiceQueueEvents=new EventEmitter();VoiceQueueEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x3dcc('0x1'),'afterUpdate':'update','afterDestroy':_0x3dcc('0x2')};function emitEvent(_0xc3fa18){return function(_0x3939ee,_0x345c8d,_0x9f726a){VoiceQueueEvents[_0x3dcc('0x3')](_0xc3fa18+':'+_0x3939ee['id'],_0x3939ee);VoiceQueueEvents[_0x3dcc('0x3')](_0xc3fa18,_0x3939ee);_0x9f726a(null);};}for(var e in events){if(events[_0x3dcc('0x4')](e)){var event=events[e];VoiceQueue['hook'](e,emitEvent(event));}}module[_0x3dcc('0x5')]=VoiceQueueEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['../../config/environment','./voiceQueue.attributes','exports','define','VoiceQueue','lodash','util','../../config/logger','bluebird','path','rimraf'];(function(_0x42abe9,_0x30156f){var _0x5efa72=function(_0x480f0f){while(--_0x480f0f){_0x42abe9['push'](_0x42abe9['shift']());}};_0x5efa72(++_0x30156f);}(_0xa9e0,0x123));var _0x0a9e=function(_0x3635ce,_0x33a6f9){_0x3635ce=_0x3635ce-0x0;var _0x97ecd0=_0xa9e0[_0x3635ce];return _0x97ecd0;};'use strict';var _=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var logger=require(_0x0a9e('0x2'))('api');var moment=require('moment');var BPromise=require(_0x0a9e('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x0a9e('0x4'));var rimraf=require(_0x0a9e('0x5'));var config=require(_0x0a9e('0x6'));var attributes=require(_0x0a9e('0x7'));module[_0x0a9e('0x8')]=function(_0x57b080,_0x219af0){return _0x57b080[_0x0a9e('0x9')](_0x0a9e('0xa'),attributes,{'tableName':'voice_queues','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x34e8=['voice_queues','lodash','util','../../config/logger','api','bluebird','request-promise','path','rimraf','../../config/environment','./voiceQueue.attributes','exports','VoiceQueue'];(function(_0x4594ff,_0x2f0c1b){var _0x107113=function(_0x4c2a7c){while(--_0x4c2a7c){_0x4594ff['push'](_0x4594ff['shift']());}};_0x107113(++_0x2f0c1b);}(_0x34e8,0x12c));var _0x834e=function(_0x21dfbe,_0x27434c){_0x21dfbe=_0x21dfbe-0x0;var _0xac18ee=_0x34e8[_0x21dfbe];return _0xac18ee;};'use strict';var _=require(_0x834e('0x0'));var util=require(_0x834e('0x1'));var logger=require(_0x834e('0x2'))(_0x834e('0x3'));var moment=require('moment');var BPromise=require(_0x834e('0x4'));var rp=require(_0x834e('0x5'));var fs=require('fs');var path=require(_0x834e('0x6'));var rimraf=require(_0x834e('0x7'));var config=require(_0x834e('0x8'));var attributes=require(_0x834e('0x9'));module[_0x834e('0xa')]=function(_0x4a2018,_0x858aa1){return _0x4a2018['define'](_0x834e('0xb'),attributes,{'tableName':_0x834e('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8df5=['register','request','then','info','VoiceQueue,\x20%s,\x20%s','debug','VoiceQueue,\x20%s,\x20%s,\x20%s','error','message','result','catch','GetVoiceQueue','VoiceQueue','findAll','options','raw','where','attributes','limit','map','include','model','stringify','ShowVoiceQueue','find','lodash','moment','bluebird','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','redis','localhost','socket.io-emitter','./voiceQueue.socket'];(function(_0x559a80,_0x3d193d){var _0x42f555=function(_0x24e596){while(--_0x24e596){_0x559a80['push'](_0x559a80['shift']());}};_0x42f555(++_0x3d193d);}(_0x8df5,0x123));var _0x58df=function(_0x29a838,_0x558e2a){_0x29a838=_0x29a838-0x0;var _0x54fa37=_0x8df5[_0x29a838];return _0x54fa37;};'use strict';var _=require(_0x58df('0x0'));var util=require('util');var moment=require(_0x58df('0x1'));var BPromise=require(_0x58df('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x58df('0x3'));var logger=require(_0x58df('0x4'))('rpc');var config=require(_0x58df('0x5'));var jayson=require(_0x58df('0x6'));var client=jayson[_0x58df('0x7')][_0x58df('0x8')]({'port':0x232a});config[_0x58df('0x9')]=_['defaults'](config[_0x58df('0x9')],{'host':_0x58df('0xa'),'port':0x18eb});var socket=require(_0x58df('0xb'))(new Redis(config[_0x58df('0x9')]));require(_0x58df('0xc'))[_0x58df('0xd')](socket);function respondWithRpcPromise(_0x2d11c2,_0x9b1271,_0x4f2387){return new BPromise(function(_0x3f6b02,_0x537ae9){return client[_0x58df('0xe')](_0x2d11c2,_0x4f2387)[_0x58df('0xf')](function(_0x225057){logger[_0x58df('0x10')](_0x58df('0x11'),_0x9b1271,'request\x20sent');logger[_0x58df('0x12')](_0x58df('0x13'),_0x9b1271,'request\x20sent',JSON['stringify'](_0x225057));if(_0x225057[_0x58df('0x14')]){if(_0x225057[_0x58df('0x14')]['code']===0x1f4){logger[_0x58df('0x14')]('VoiceQueue,\x20%s,\x20%s',_0x9b1271,_0x225057[_0x58df('0x14')][_0x58df('0x15')]);return _0x537ae9(_0x225057[_0x58df('0x14')][_0x58df('0x15')]);}logger[_0x58df('0x14')]('VoiceQueue,\x20%s,\x20%s',_0x9b1271,_0x225057[_0x58df('0x14')][_0x58df('0x15')]);return _0x3f6b02(_0x225057[_0x58df('0x14')][_0x58df('0x15')]);}else{logger[_0x58df('0x10')](_0x58df('0x11'),_0x9b1271,'request\x20sent');_0x3f6b02(_0x225057[_0x58df('0x16')][_0x58df('0x15')]);}})[_0x58df('0x17')](function(_0x117c43){logger[_0x58df('0x14')](_0x58df('0x11'),_0x9b1271,_0x117c43);_0x537ae9(_0x117c43);});});}exports[_0x58df('0x18')]=function(_0x181db0){var _0x1c68ed=this;return new Promise(function(_0x37fbbf,_0x421a17){return db[_0x58df('0x19')][_0x58df('0x1a')]({'raw':_0x181db0['options']?_0x181db0[_0x58df('0x1b')][_0x58df('0x1c')]===undefined?!![]:![]:!![],'where':_0x181db0[_0x58df('0x1b')]?_0x181db0[_0x58df('0x1b')][_0x58df('0x1d')]||null:null,'attributes':_0x181db0[_0x58df('0x1b')]?_0x181db0['options'][_0x58df('0x1e')]||null:null,'limit':_0x181db0[_0x58df('0x1b')]?_0x181db0[_0x58df('0x1b')][_0x58df('0x1f')]||null:null,'include':_0x181db0[_0x58df('0x1b')]?_0x181db0[_0x58df('0x1b')]['include']?_[_0x58df('0x20')](_0x181db0[_0x58df('0x1b')]['include'],function(_0x119858){return{'model':db[_0x119858['model']],'as':_0x119858['as'],'attributes':_0x119858[_0x58df('0x1e')],'include':_0x119858[_0x58df('0x21')]?_[_0x58df('0x20')](_0x119858[_0x58df('0x21')],function(_0x5c06a9){return{'model':db[_0x5c06a9[_0x58df('0x22')]],'as':_0x5c06a9['as'],'attributes':_0x5c06a9[_0x58df('0x1e')],'include':_0x5c06a9[_0x58df('0x21')]?_['map'](_0x5c06a9[_0x58df('0x21')],function(_0x366bf1){return{'model':db[_0x366bf1['model']],'as':_0x366bf1['as'],'attributes':_0x366bf1[_0x58df('0x1e')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x320059){logger[_0x58df('0x10')](_0x58df('0x18'),_0x181db0);logger[_0x58df('0x12')](_0x58df('0x18'),_0x181db0,JSON[_0x58df('0x23')](_0x320059));_0x37fbbf(_0x320059);})[_0x58df('0x17')](function(_0x314ea2){logger[_0x58df('0x14')]('GetVoiceQueue',_0x314ea2[_0x58df('0x15')],_0x181db0);_0x421a17(_0x1c68ed[_0x58df('0x14')](0x1f4,_0x314ea2[_0x58df('0x15')]));});});};exports[_0x58df('0x24')]=function(_0x83f9c4){var _0xaa9c60=this;return new Promise(function(_0x3bf03d,_0x1fcbd9){return db[_0x58df('0x19')][_0x58df('0x25')]({'raw':_0x83f9c4[_0x58df('0x1b')]?_0x83f9c4[_0x58df('0x1b')]['raw']===undefined?!![]:![]:!![],'where':_0x83f9c4[_0x58df('0x1b')]?_0x83f9c4[_0x58df('0x1b')][_0x58df('0x1d')]||null:null,'attributes':_0x83f9c4[_0x58df('0x1b')]?_0x83f9c4[_0x58df('0x1b')]['attributes']||null:null,'include':_0x83f9c4[_0x58df('0x1b')]?_0x83f9c4['options'][_0x58df('0x21')]?_[_0x58df('0x20')](_0x83f9c4[_0x58df('0x1b')][_0x58df('0x21')],function(_0x434ba3){return{'model':db[_0x434ba3[_0x58df('0x22')]],'as':_0x434ba3['as'],'attributes':_0x434ba3[_0x58df('0x1e')],'include':_0x434ba3[_0x58df('0x21')]?_[_0x58df('0x20')](_0x434ba3[_0x58df('0x21')],function(_0x26bea0){return{'model':db[_0x26bea0[_0x58df('0x22')]],'as':_0x26bea0['as'],'attributes':_0x26bea0[_0x58df('0x1e')],'include':_0x26bea0[_0x58df('0x21')]?_['map'](_0x26bea0[_0x58df('0x21')],function(_0x36270d){return{'model':db[_0x36270d['model']],'as':_0x36270d['as'],'attributes':_0x36270d[_0x58df('0x1e')]};}):[]};}):[]};}):[]:[]})[_0x58df('0xf')](function(_0x1ebe7a){logger[_0x58df('0x10')]('ShowVoiceQueue',_0x83f9c4);logger[_0x58df('0x12')](_0x58df('0x24'),_0x83f9c4,JSON[_0x58df('0x23')](_0x1ebe7a));_0x3bf03d(_0x1ebe7a);})['catch'](function(_0x501dcb){logger[_0x58df('0x14')](_0x58df('0x24'),_0x501dcb[_0x58df('0x15')],_0x83f9c4);_0x1fcbd9(_0xaa9c60['error'](0x1f4,_0x501dcb['message']));});});};
\ No newline at end of file
+var _0x7b6c=['../../config/logger','rpc','../../config/environment','client','redis','defaults','localhost','socket.io-emitter','./voiceQueue.socket','register','request','then','info','request\x20sent','debug','VoiceQueue,\x20%s,\x20%s,\x20%s','stringify','error','VoiceQueue,\x20%s,\x20%s','message','GetVoiceQueue','findAll','options','raw','where','attributes','include','map','model','catch','ShowVoiceQueue','find','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils'];(function(_0x40220a,_0x22feb1){var _0x3903cc=function(_0x33a296){while(--_0x33a296){_0x40220a['push'](_0x40220a['shift']());}};_0x3903cc(++_0x22feb1);}(_0x7b6c,0x110));var _0xc7b6=function(_0x407fee,_0x53cc6f){_0x407fee=_0x407fee-0x0;var _0x5324ad=_0x7b6c[_0x407fee];return _0x5324ad;};'use strict';var _=require(_0xc7b6('0x0'));var util=require(_0xc7b6('0x1'));var moment=require(_0xc7b6('0x2'));var BPromise=require(_0xc7b6('0x3'));var rs=require(_0xc7b6('0x4'));var fs=require('fs');var Redis=require(_0xc7b6('0x5'));var db=require(_0xc7b6('0x6'))['db'];var utils=require(_0xc7b6('0x7'));var logger=require(_0xc7b6('0x8'))(_0xc7b6('0x9'));var config=require(_0xc7b6('0xa'));var jayson=require('jayson/promise');var client=jayson[_0xc7b6('0xb')]['http']({'port':0x232a});config[_0xc7b6('0xc')]=_[_0xc7b6('0xd')](config[_0xc7b6('0xc')],{'host':_0xc7b6('0xe'),'port':0x18eb});var socket=require(_0xc7b6('0xf'))(new Redis(config[_0xc7b6('0xc')]));require(_0xc7b6('0x10'))[_0xc7b6('0x11')](socket);function respondWithRpcPromise(_0xc453e7,_0x76ac3,_0x5a1cc3){return new BPromise(function(_0x219fa0,_0x409cdd){return client[_0xc7b6('0x12')](_0xc453e7,_0x5a1cc3)[_0xc7b6('0x13')](function(_0x48d198){logger[_0xc7b6('0x14')]('VoiceQueue,\x20%s,\x20%s',_0x76ac3,_0xc7b6('0x15'));logger[_0xc7b6('0x16')](_0xc7b6('0x17'),_0x76ac3,'request\x20sent',JSON[_0xc7b6('0x18')](_0x48d198));if(_0x48d198[_0xc7b6('0x19')]){if(_0x48d198[_0xc7b6('0x19')]['code']===0x1f4){logger[_0xc7b6('0x19')](_0xc7b6('0x1a'),_0x76ac3,_0x48d198[_0xc7b6('0x19')][_0xc7b6('0x1b')]);return _0x409cdd(_0x48d198[_0xc7b6('0x19')]['message']);}logger[_0xc7b6('0x19')](_0xc7b6('0x1a'),_0x76ac3,_0x48d198[_0xc7b6('0x19')][_0xc7b6('0x1b')]);return _0x219fa0(_0x48d198['error'][_0xc7b6('0x1b')]);}else{logger['info'](_0xc7b6('0x1a'),_0x76ac3,'request\x20sent');_0x219fa0(_0x48d198['result'][_0xc7b6('0x1b')]);}})['catch'](function(_0x45b571){logger[_0xc7b6('0x19')](_0xc7b6('0x1a'),_0x76ac3,_0x45b571);_0x409cdd(_0x45b571);});});}exports[_0xc7b6('0x1c')]=function(_0x4eadba){var _0x324bf8=this;return new Promise(function(_0xfed032,_0x52107e){return db['VoiceQueue'][_0xc7b6('0x1d')]({'raw':_0x4eadba[_0xc7b6('0x1e')]?_0x4eadba[_0xc7b6('0x1e')][_0xc7b6('0x1f')]===undefined?!![]:![]:!![],'where':_0x4eadba[_0xc7b6('0x1e')]?_0x4eadba['options'][_0xc7b6('0x20')]||null:null,'attributes':_0x4eadba[_0xc7b6('0x1e')]?_0x4eadba[_0xc7b6('0x1e')][_0xc7b6('0x21')]||null:null,'limit':_0x4eadba[_0xc7b6('0x1e')]?_0x4eadba[_0xc7b6('0x1e')]['limit']||null:null,'include':_0x4eadba[_0xc7b6('0x1e')]?_0x4eadba[_0xc7b6('0x1e')][_0xc7b6('0x22')]?_[_0xc7b6('0x23')](_0x4eadba[_0xc7b6('0x1e')][_0xc7b6('0x22')],function(_0xebc9b2){return{'model':db[_0xebc9b2[_0xc7b6('0x24')]],'as':_0xebc9b2['as'],'attributes':_0xebc9b2[_0xc7b6('0x21')],'include':_0xebc9b2['include']?_[_0xc7b6('0x23')](_0xebc9b2[_0xc7b6('0x22')],function(_0x56127a){return{'model':db[_0x56127a[_0xc7b6('0x24')]],'as':_0x56127a['as'],'attributes':_0x56127a[_0xc7b6('0x21')],'include':_0x56127a[_0xc7b6('0x22')]?_[_0xc7b6('0x23')](_0x56127a[_0xc7b6('0x22')],function(_0x5e1262){return{'model':db[_0x5e1262[_0xc7b6('0x24')]],'as':_0x5e1262['as'],'attributes':_0x5e1262['attributes']};}):[]};}):[]};}):[]:[]})[_0xc7b6('0x13')](function(_0x580e68){logger[_0xc7b6('0x14')]('GetVoiceQueue',_0x4eadba);logger['debug'](_0xc7b6('0x1c'),_0x4eadba,JSON[_0xc7b6('0x18')](_0x580e68));_0xfed032(_0x580e68);})[_0xc7b6('0x25')](function(_0x500345){logger['error'](_0xc7b6('0x1c'),_0x500345[_0xc7b6('0x1b')],_0x4eadba);_0x52107e(_0x324bf8[_0xc7b6('0x19')](0x1f4,_0x500345['message']));});});};exports[_0xc7b6('0x26')]=function(_0x1ac992){var _0x1dd9d4=this;return new Promise(function(_0x1809fe,_0x31a1cc){return db['VoiceQueue'][_0xc7b6('0x27')]({'raw':_0x1ac992['options']?_0x1ac992[_0xc7b6('0x1e')][_0xc7b6('0x1f')]===undefined?!![]:![]:!![],'where':_0x1ac992['options']?_0x1ac992[_0xc7b6('0x1e')]['where']||null:null,'attributes':_0x1ac992[_0xc7b6('0x1e')]?_0x1ac992[_0xc7b6('0x1e')][_0xc7b6('0x21')]||null:null,'include':_0x1ac992['options']?_0x1ac992[_0xc7b6('0x1e')]['include']?_['map'](_0x1ac992[_0xc7b6('0x1e')]['include'],function(_0x298f98){return{'model':db[_0x298f98[_0xc7b6('0x24')]],'as':_0x298f98['as'],'attributes':_0x298f98[_0xc7b6('0x21')],'include':_0x298f98['include']?_[_0xc7b6('0x23')](_0x298f98[_0xc7b6('0x22')],function(_0x547963){return{'model':db[_0x547963[_0xc7b6('0x24')]],'as':_0x547963['as'],'attributes':_0x547963[_0xc7b6('0x21')],'include':_0x547963['include']?_[_0xc7b6('0x23')](_0x547963['include'],function(_0x5e89bb){return{'model':db[_0x5e89bb['model']],'as':_0x5e89bb['as'],'attributes':_0x5e89bb['attributes']};}):[]};}):[]};}):[]:[]})[_0xc7b6('0x13')](function(_0x272654){logger['info'](_0xc7b6('0x26'),_0x1ac992);logger[_0xc7b6('0x16')](_0xc7b6('0x26'),_0x1ac992,JSON[_0xc7b6('0x18')](_0x272654));_0x1809fe(_0x272654);})['catch'](function(_0x2d9587){logger[_0xc7b6('0x19')]('ShowVoiceQueue',_0x2d9587['message'],_0x1ac992);_0x31a1cc(_0x1dd9d4['error'](0x1f4,_0x2d9587['message']));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd32a=['register','length','voiceQueue:','save','remove','update','emit','removeListener'];(function(_0x5c5a78,_0x13ecee){var _0x3fa9c9=function(_0x512947){while(--_0x512947){_0x5c5a78['push'](_0x5c5a78['shift']());}};_0x3fa9c9(++_0x13ecee);}(_0xd32a,0xd3));var _0xad32=function(_0x3740fe,_0x6c543c){_0x3740fe=_0x3740fe-0x0;var _0x55492b=_0xd32a[_0x3740fe];return _0x55492b;};'use strict';var VoiceQueueEvents=require('./voiceQueue.events');var events=[_0xad32('0x0'),_0xad32('0x1'),_0xad32('0x2')];function createListener(_0x1232e3,_0xd8a64a){return function(_0x10a268){_0xd8a64a[_0xad32('0x3')](_0x1232e3,_0x10a268);};}function removeListener(_0x1c94ad,_0x2799c0){return function(){VoiceQueueEvents[_0xad32('0x4')](_0x1c94ad,_0x2799c0);};}exports[_0xad32('0x5')]=function(_0x306432){for(var _0x329d56=0x0,_0x4a336a=events[_0xad32('0x6')];_0x329d56<_0x4a336a;_0x329d56++){var _0x4a3c03=events[_0x329d56];var _0x1abeb8=createListener(_0xad32('0x7')+_0x4a3c03,_0x306432);VoiceQueueEvents['on'](_0x4a3c03,_0x1abeb8);}};
\ No newline at end of file
+var _0x588a=['voiceQueue:','./voiceQueue.events','save','register','length'];(function(_0x178589,_0x4fa1c2){var _0x448a72=function(_0x5a75fc){while(--_0x5a75fc){_0x178589['push'](_0x178589['shift']());}};_0x448a72(++_0x4fa1c2);}(_0x588a,0xc9));var _0xa588=function(_0x36411c,_0x55cd2b){_0x36411c=_0x36411c-0x0;var _0x10b6c4=_0x588a[_0x36411c];return _0x10b6c4;};'use strict';var VoiceQueueEvents=require(_0xa588('0x0'));var events=[_0xa588('0x1'),'remove','update'];function createListener(_0x201495,_0x3264c8){return function(_0x3f0780){_0x3264c8['emit'](_0x201495,_0x3f0780);};}function removeListener(_0x398c1e,_0x2c396b){return function(){VoiceQueueEvents['removeListener'](_0x398c1e,_0x2c396b);};}exports[_0xa588('0x2')]=function(_0x192847){for(var _0x4c35e6=0x0,_0x3e5584=events[_0xa588('0x3')];_0x4c35e6<_0x3e5584;_0x4c35e6++){var _0x13adda=events[_0x4c35e6];var _0x2109ac=createListener(_0xa588('0x4')+_0x13adda,_0x192847);VoiceQueueEvents['on'](_0x13adda,_0x2109ac);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6ff7=['fs-extra','../../components/auth/service','../../config/environment','get','isAuthenticated','index','/describe','describe','/index','getVoiceQueuesReport','/:id','put','update','delete','destroy','multer','path','connect-timeout','Router'];(function(_0xde2d06,_0x3759bb){var _0x341de2=function(_0x36cb8f){while(--_0x36cb8f){_0xde2d06['push'](_0xde2d06['shift']());}};_0x341de2(++_0x3759bb);}(_0x6ff7,0x6e));var _0x76ff=function(_0x15957e,_0xa5edf5){_0x15957e=_0x15957e-0x0;var _0x3b87d0=_0x6ff7[_0x15957e];return _0x3b87d0;};'use strict';var multer=require(_0x76ff('0x0'));var util=require('util');var path=require(_0x76ff('0x1'));var timeout=require(_0x76ff('0x2'));var express=require('express');var router=express[_0x76ff('0x3')]();var fs_extra=require(_0x76ff('0x4'));var auth=require(_0x76ff('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0x76ff('0x6'));var controller=require('./voiceQueueReport.controller');router[_0x76ff('0x7')]('/',auth[_0x76ff('0x8')](),controller[_0x76ff('0x9')]);router[_0x76ff('0x7')](_0x76ff('0xa'),auth[_0x76ff('0x8')](),controller[_0x76ff('0xb')]);router[_0x76ff('0x7')](_0x76ff('0xc'),auth[_0x76ff('0x8')](),controller[_0x76ff('0xd')]);router['get'](_0x76ff('0xe'),auth['isAuthenticated'](),controller['show']);router['post']('/',auth['isAuthenticated'](),controller['create']);router[_0x76ff('0xf')]('/:id',auth[_0x76ff('0x8')](),controller[_0x76ff('0x10')]);router[_0x76ff('0x11')]('/:id',auth['isAuthenticated'](),controller[_0x76ff('0x12')]);module['exports']=router;
\ No newline at end of file
+var _0x8976=['../../components/interaction/service','../../config/environment','get','isAuthenticated','index','/describe','describe','/:id','show','post','put','delete','destroy','exports','multer','path','connect-timeout','Router','../../components/auth/service'];(function(_0x9b9ce4,_0x27dc90){var _0x5a89df=function(_0x2bbd7c){while(--_0x2bbd7c){_0x9b9ce4['push'](_0x9b9ce4['shift']());}};_0x5a89df(++_0x27dc90);}(_0x8976,0x1e9));var _0x6897=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x8976[_0x3dd15e];return _0x231fd0;};'use strict';var multer=require(_0x6897('0x0'));var util=require('util');var path=require(_0x6897('0x1'));var timeout=require(_0x6897('0x2'));var express=require('express');var router=express[_0x6897('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x6897('0x4'));var interaction=require(_0x6897('0x5'));var config=require(_0x6897('0x6'));var controller=require('./voiceQueueReport.controller');router[_0x6897('0x7')]('/',auth[_0x6897('0x8')](),controller[_0x6897('0x9')]);router[_0x6897('0x7')](_0x6897('0xa'),auth[_0x6897('0x8')](),controller[_0x6897('0xb')]);router[_0x6897('0x7')]('/index',auth[_0x6897('0x8')](),controller['getVoiceQueuesReport']);router[_0x6897('0x7')](_0x6897('0xc'),auth[_0x6897('0x8')](),controller[_0x6897('0xd')]);router[_0x6897('0xe')]('/',auth[_0x6897('0x8')](),controller['create']);router[_0x6897('0xf')](_0x6897('0xc'),auth[_0x6897('0x8')](),controller['update']);router[_0x6897('0x10')](_0x6897('0xc'),auth[_0x6897('0x8')](),controller[_0x6897('0x11')]);module[_0x6897('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9c8d=['sequelize','moment','exports','STRING','DATE','getDataValue','format','diff','seconds','setDataValue','INTEGER','BOOLEAN','FORWARD,\x20BLIND,\x20ATTENDED'];(function(_0x59afbe,_0xbfa297){var _0x301735=function(_0x2f4d27){while(--_0x2f4d27){_0x59afbe['push'](_0x59afbe['shift']());}};_0x301735(++_0xbfa297);}(_0x9c8d,0xc3));var _0xd9c8=function(_0x4e170d,_0x2e4c21){_0x4e170d=_0x4e170d-0x0;var _0x59e4af=_0x9c8d[_0x4e170d];return _0x59e4af;};'use strict';var Sequelize=require(_0xd9c8('0x0'));var moment=require(_0xd9c8('0x1'));module[_0xd9c8('0x2')]={'type':{'type':Sequelize[_0xd9c8('0x3')]},'uniqueid':{'type':Sequelize[_0xd9c8('0x3')]},'calleridnum':{'type':Sequelize[_0xd9c8('0x3')]},'calleridname':{'type':Sequelize[_0xd9c8('0x3')]},'queue':{'type':Sequelize[_0xd9c8('0x3')]},'queuecallerjoinAt':{'type':Sequelize[_0xd9c8('0x4')]},'queuecallerleaveAt':{'type':Sequelize[_0xd9c8('0x4')],'set':function(_0x53eb22){var _0x3d3760=moment(_0x53eb22);var _0x43fb8c=moment(this[_0xd9c8('0x5')]('queuecallerjoinAt'))[_0xd9c8('0x6')]('YYYY-MM-DD\x20HH:mm:ss');var _0xa99cf=_0x3d3760[_0xd9c8('0x7')](_0x43fb8c,_0xd9c8('0x8'));this[_0xd9c8('0x9')]('queuecallerleaveAt',_0x53eb22);this[_0xd9c8('0x9')]('holdtime',_0xa99cf||null);}},'position':{'type':Sequelize['INTEGER']},'count':{'type':Sequelize['INTEGER']},'queuecallerabandon':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'queuecallerabandonAt':{'type':Sequelize['DATE']},'queuecallercomplete':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'queuecallercompleteAt':{'type':Sequelize['DATE']},'queuecallerexit':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'queuecallerexitAt':{'type':Sequelize['DATE']},'queuecallerexitreason':{'type':Sequelize[_0xd9c8('0x3')],'comment':'COMPLETEDBYCALLER,\x20COMPLETEDBYAGENT,\x20FORWARDTRANFER,\x20BLINDTRANSFER,\x20ATTENDEDTRANSFER,\x20EXITWITHKEY,\x20TIMEOUT'},'originalposition':{'type':Sequelize[_0xd9c8('0xa')]},'channel':{'type':Sequelize[_0xd9c8('0x3')]},'connectedlinenum':{'type':Sequelize['STRING']},'connectedlinename':{'type':Sequelize[_0xd9c8('0x3')]},'accountcode':{'type':Sequelize[_0xd9c8('0x3')]},'context':{'type':Sequelize[_0xd9c8('0x3')]},'exten':{'type':Sequelize[_0xd9c8('0x3')]},'priority':{'type':Sequelize['STRING']},'holdtime':{'type':Sequelize[_0xd9c8('0xa')]},'mohtime':{'type':Sequelize[_0xd9c8('0xa')],'defaultValue':0x0},'assigned':{'type':Sequelize[_0xd9c8('0xb')],'defaultValue':![]},'lastAssignedTo':{'type':Sequelize[_0xd9c8('0x3')]},'transfer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'transfertype':{'type':Sequelize[_0xd9c8('0x3')],'comment':_0xd9c8('0xc')},'transferexten':{'type':Sequelize[_0xd9c8('0x3')]},'transferuniqueid':{'type':Sequelize[_0xd9c8('0x3')]},'disposition':{'type':Sequelize['STRING']},'secondDisposition':{'type':Sequelize[_0xd9c8('0x3')]},'thirdDisposition':{'type':Sequelize[_0xd9c8('0x3')]},'queuecallerenterreason':{'type':Sequelize['INTEGER'],'defaultValue':0x0}};
\ No newline at end of file
+var _0x490b=['holdtime','INTEGER','BOOLEAN','sequelize','moment','STRING','DATE','getDataValue','queuecallerjoinAt','format','YYYY-MM-DD\x20HH:mm:ss','diff','seconds','setDataValue','queuecallerleaveAt'];(function(_0x2dfe4c,_0x50b346){var _0x3a2814=function(_0x2c47af){while(--_0x2c47af){_0x2dfe4c['push'](_0x2dfe4c['shift']());}};_0x3a2814(++_0x50b346);}(_0x490b,0x12f));var _0xb490=function(_0x31e29a,_0x349c9b){_0x31e29a=_0x31e29a-0x0;var _0x32d892=_0x490b[_0x31e29a];return _0x32d892;};'use strict';var Sequelize=require(_0xb490('0x0'));var moment=require(_0xb490('0x1'));module['exports']={'type':{'type':Sequelize[_0xb490('0x2')]},'uniqueid':{'type':Sequelize['STRING']},'calleridnum':{'type':Sequelize[_0xb490('0x2')]},'calleridname':{'type':Sequelize['STRING']},'queue':{'type':Sequelize[_0xb490('0x2')]},'queuecallerjoinAt':{'type':Sequelize[_0xb490('0x3')]},'queuecallerleaveAt':{'type':Sequelize[_0xb490('0x3')],'set':function(_0x2fac37){var _0x539727=moment(_0x2fac37);var _0xbd9d91=moment(this[_0xb490('0x4')](_0xb490('0x5')))[_0xb490('0x6')](_0xb490('0x7'));var _0xb6393f=_0x539727[_0xb490('0x8')](_0xbd9d91,_0xb490('0x9'));this[_0xb490('0xa')](_0xb490('0xb'),_0x2fac37);this[_0xb490('0xa')](_0xb490('0xc'),_0xb6393f||null);}},'position':{'type':Sequelize[_0xb490('0xd')]},'count':{'type':Sequelize[_0xb490('0xd')]},'queuecallerabandon':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'queuecallerabandonAt':{'type':Sequelize[_0xb490('0x3')]},'queuecallercomplete':{'type':Sequelize[_0xb490('0xe')],'defaultValue':![]},'queuecallercompleteAt':{'type':Sequelize[_0xb490('0x3')]},'queuecallerexit':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'queuecallerexitAt':{'type':Sequelize['DATE']},'queuecallerexitreason':{'type':Sequelize[_0xb490('0x2')],'comment':'COMPLETEDBYCALLER,\x20COMPLETEDBYAGENT,\x20FORWARDTRANFER,\x20BLINDTRANSFER,\x20ATTENDEDTRANSFER,\x20EXITWITHKEY,\x20TIMEOUT'},'originalposition':{'type':Sequelize['INTEGER']},'channel':{'type':Sequelize['STRING']},'connectedlinenum':{'type':Sequelize['STRING']},'connectedlinename':{'type':Sequelize['STRING']},'accountcode':{'type':Sequelize[_0xb490('0x2')]},'context':{'type':Sequelize['STRING']},'exten':{'type':Sequelize[_0xb490('0x2')]},'priority':{'type':Sequelize['STRING']},'holdtime':{'type':Sequelize[_0xb490('0xd')]},'mohtime':{'type':Sequelize[_0xb490('0xd')],'defaultValue':0x0},'assigned':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'lastAssignedTo':{'type':Sequelize[_0xb490('0x2')]},'transfer':{'type':Sequelize[_0xb490('0xe')],'defaultValue':![]},'transfertype':{'type':Sequelize[_0xb490('0x2')],'comment':'FORWARD,\x20BLIND,\x20ATTENDED'},'transferexten':{'type':Sequelize[_0xb490('0x2')]},'transferuniqueid':{'type':Sequelize[_0xb490('0x2')]},'disposition':{'type':Sequelize[_0xb490('0x2')]},'secondDisposition':{'type':Sequelize[_0xb490('0x2')]},'thirdDisposition':{'type':Sequelize[_0xb490('0x2')]},'queuecallerenterreason':{'type':Sequelize[_0xb490('0xd')],'defaultValue':0x0}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x66d3=['eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','sendStatus','status','offset','undefined','limit','count','set','Content-Range','json','apply','reject','save','update','then','end','error','stack','name','send','index','rawAttributes','type','model','query','filters','intersection','attributes','nolimit','order','sort','where','pick','filter','map','VIRTUAL','merge','options','VoiceQueueReport','includeAll','include','findAll','rows','catch','show','params','keys','fields','length','find','create','body','destroy','describe','getVoiceQueuesReport'];(function(_0x2a6501,_0x9c5a0e){var _0x34d3ae=function(_0x204c8b){while(--_0x204c8b){_0x2a6501['push'](_0x2a6501['shift']());}};_0x34d3ae(++_0x9c5a0e);}(_0x66d3,0x19a));var _0x366d=function(_0x9adc0d,_0x1cca61){_0x9adc0d=_0x9adc0d-0x0;var _0x51f988=_0x66d3[_0x9adc0d];return _0x51f988;};'use strict';var emlformat=require(_0x366d('0x0'));var rimraf=require(_0x366d('0x1'));var zipdir=require(_0x366d('0x2'));var jsonpatch=require(_0x366d('0x3'));var rp=require('request-promise');var moment=require(_0x366d('0x4'));var BPromise=require(_0x366d('0x5'));var Mustache=require(_0x366d('0x6'));var util=require(_0x366d('0x7'));var path=require('path');var sox=require(_0x366d('0x8'));var csv=require(_0x366d('0x9'));var ejs=require(_0x366d('0xa'));var fs=require('fs');var fs_extra=require(_0x366d('0xb'));var _=require(_0x366d('0xc'));var squel=require(_0x366d('0xd'));var crypto=require(_0x366d('0xe'));var jsforce=require(_0x366d('0xf'));var deskjs=require(_0x366d('0x10'));var toCsv=require(_0x366d('0x9'));var querystring=require('querystring');var Papa=require(_0x366d('0x11'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x366d('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x366d('0x13'));var logger=require('../../config/logger')(_0x366d('0x14'));var utils=require(_0x366d('0x15'));var config=require(_0x366d('0x16'));var licenseUtil=require(_0x366d('0x17'));var db=require(_0x366d('0x18'))['db'];config[_0x366d('0x19')]=_[_0x366d('0x1a')](config[_0x366d('0x19')],{'host':_0x366d('0x1b'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x366d('0x19')]));require('./voiceQueueReport.socket')['register'](socket);function respondWithStatusCode(_0x2e70d4,_0x13a53d){_0x13a53d=_0x13a53d||0xcc;return function(_0x1b96ab){if(_0x1b96ab){return _0x2e70d4[_0x366d('0x1c')](_0x13a53d);}return _0x2e70d4[_0x366d('0x1d')](_0x13a53d)['end']();};}function respondWithResult(_0x3e7074,_0x113670){_0x113670=_0x113670||0xc8;return function(_0x123703){if(_0x123703){return _0x3e7074['status'](_0x113670)['json'](_0x123703);}};}function respondWithFilteredResult(_0x421f5b,_0x43aecc){return function(_0x38de59){if(_0x38de59){var _0x463c54=typeof _0x43aecc[_0x366d('0x1e')]===_0x366d('0x1f')&&typeof _0x43aecc[_0x366d('0x20')]===_0x366d('0x1f');var _0x52fe77=_0x38de59[_0x366d('0x21')];var _0x1e7f7c=_0x463c54?0x0:_0x43aecc[_0x366d('0x1e')];var _0x503bff=_0x463c54?_0x38de59[_0x366d('0x21')]:_0x43aecc['offset']+_0x43aecc['limit'];var _0x535e93;if(_0x503bff>=_0x52fe77){_0x503bff=_0x52fe77;_0x535e93=0xc8;}else{_0x535e93=0xce;}_0x421f5b[_0x366d('0x1d')](_0x535e93);return _0x421f5b[_0x366d('0x22')](_0x366d('0x23'),_0x1e7f7c+'-'+_0x503bff+'/'+_0x52fe77)[_0x366d('0x24')](_0x38de59);}return null;};}function patchUpdates(_0x36561a){return function(_0x4b5d2e){try{jsonpatch[_0x366d('0x25')](_0x4b5d2e,_0x36561a,!![]);}catch(_0x753691){return BPromise[_0x366d('0x26')](_0x753691);}return _0x4b5d2e[_0x366d('0x27')]();};}function saveUpdates(_0x5481bf,_0x42c58a){return function(_0x15209f){if(_0x15209f){return _0x15209f[_0x366d('0x28')](_0x5481bf)[_0x366d('0x29')](function(_0x5c711e){return _0x5c711e;});}return null;};}function removeEntity(_0xdc714a,_0x3af35f){return function(_0x19f0cc){if(_0x19f0cc){return _0x19f0cc['destroy']()[_0x366d('0x29')](function(){_0xdc714a['status'](0xcc)[_0x366d('0x2a')]();});}};}function handleEntityNotFound(_0x396017,_0x49fa39){return function(_0x18f55d){if(!_0x18f55d){_0x396017[_0x366d('0x1c')](0x194);}return _0x18f55d;};}function handleError(_0x37897c,_0x12e9aa){_0x12e9aa=_0x12e9aa||0x1f4;return function(_0x1e8f61){logger[_0x366d('0x2b')](_0x1e8f61[_0x366d('0x2c')]);if(_0x1e8f61[_0x366d('0x2d')]){delete _0x1e8f61[_0x366d('0x2d')];}_0x37897c[_0x366d('0x1d')](_0x12e9aa)[_0x366d('0x2e')](_0x1e8f61);};}exports[_0x366d('0x2f')]=function(_0x20aff4,_0x28889e){var _0x264380={},_0x3f292e={},_0x1f4423={'count':0x0,'rows':[]};var _0x591c4d=_['map'](db['VoiceQueueReport'][_0x366d('0x30')],function(_0x13ea3d){return{'name':_0x13ea3d['fieldName'],'type':_0x13ea3d[_0x366d('0x31')]['key']};});_0x3f292e[_0x366d('0x32')]=_['map'](_0x591c4d,_0x366d('0x2d'));_0x3f292e[_0x366d('0x33')]=_['keys'](_0x20aff4[_0x366d('0x33')]);_0x3f292e[_0x366d('0x34')]=_[_0x366d('0x35')](_0x3f292e['model'],_0x3f292e['query']);_0x264380['attributes']=_[_0x366d('0x35')](_0x3f292e[_0x366d('0x32')],qs['fields'](_0x20aff4[_0x366d('0x33')]['fields']));_0x264380[_0x366d('0x36')]=_0x264380['attributes']['length']?_0x264380[_0x366d('0x36')]:_0x3f292e[_0x366d('0x32')];if(!_0x20aff4[_0x366d('0x33')]['hasOwnProperty'](_0x366d('0x37'))){_0x264380[_0x366d('0x20')]=qs[_0x366d('0x20')](_0x20aff4[_0x366d('0x33')][_0x366d('0x20')]);_0x264380[_0x366d('0x1e')]=qs['offset'](_0x20aff4['query'][_0x366d('0x1e')]);}_0x264380[_0x366d('0x38')]=qs['sort'](_0x20aff4[_0x366d('0x33')][_0x366d('0x39')]);_0x264380[_0x366d('0x3a')]=qs['filters'](_[_0x366d('0x3b')](_0x20aff4[_0x366d('0x33')],_0x3f292e[_0x366d('0x34')]),_0x591c4d);if(_0x20aff4[_0x366d('0x33')][_0x366d('0x3c')]){_0x264380[_0x366d('0x3a')]=_['merge'](_0x264380['where'],{'$or':_[_0x366d('0x3d')](_0x591c4d,function(_0x596e43){if(_0x596e43[_0x366d('0x31')]!==_0x366d('0x3e')){var _0x27d0ea={};_0x27d0ea[_0x596e43[_0x366d('0x2d')]]={'$like':'%'+_0x20aff4['query'][_0x366d('0x3c')]+'%'};return _0x27d0ea;}})});}_0x264380=_[_0x366d('0x3f')]({},_0x264380,_0x20aff4[_0x366d('0x40')]);var _0x275150={'where':_0x264380[_0x366d('0x3a')]};return db[_0x366d('0x41')][_0x366d('0x21')](_0x275150)[_0x366d('0x29')](function(_0x253d5c){_0x1f4423[_0x366d('0x21')]=_0x253d5c;if(_0x20aff4[_0x366d('0x33')][_0x366d('0x42')]){_0x264380[_0x366d('0x43')]=[{'all':!![]}];}return db[_0x366d('0x41')][_0x366d('0x44')](_0x264380);})[_0x366d('0x29')](function(_0x2e512f){_0x1f4423[_0x366d('0x45')]=_0x2e512f;return _0x1f4423;})['then'](respondWithFilteredResult(_0x28889e,_0x264380))[_0x366d('0x46')](handleError(_0x28889e,null));};exports[_0x366d('0x47')]=function(_0x25a414,_0x6a10c8){var _0x33b623={'raw':![],'where':{'id':_0x25a414[_0x366d('0x48')]['id']}},_0x438fa9={};_0x438fa9[_0x366d('0x32')]=_[_0x366d('0x49')](db[_0x366d('0x41')][_0x366d('0x30')]);_0x438fa9['query']=_[_0x366d('0x49')](_0x25a414[_0x366d('0x33')]);_0x438fa9[_0x366d('0x34')]=_[_0x366d('0x35')](_0x438fa9['model'],_0x438fa9[_0x366d('0x33')]);_0x33b623[_0x366d('0x36')]=_[_0x366d('0x35')](_0x438fa9[_0x366d('0x32')],qs['fields'](_0x25a414[_0x366d('0x33')][_0x366d('0x4a')]));_0x33b623['attributes']=_0x33b623[_0x366d('0x36')][_0x366d('0x4b')]?_0x33b623[_0x366d('0x36')]:_0x438fa9[_0x366d('0x32')];if(_0x25a414[_0x366d('0x33')][_0x366d('0x42')]){_0x33b623['include']=[{'all':!![]}];}_0x33b623=_['merge']({},_0x33b623,_0x25a414[_0x366d('0x40')]);return db[_0x366d('0x41')][_0x366d('0x4c')](_0x33b623)[_0x366d('0x29')](handleEntityNotFound(_0x6a10c8,null))[_0x366d('0x29')](respondWithResult(_0x6a10c8,null))[_0x366d('0x46')](handleError(_0x6a10c8,null));};exports[_0x366d('0x4d')]=function(_0x5cc26c,_0x5c8460){return db[_0x366d('0x41')]['create'](_0x5cc26c[_0x366d('0x4e')],{})[_0x366d('0x29')](respondWithResult(_0x5c8460,0xc9))[_0x366d('0x46')](handleError(_0x5c8460,null));};exports[_0x366d('0x28')]=function(_0x790211,_0x1a5fc7){if(_0x790211[_0x366d('0x4e')]['id']){delete _0x790211[_0x366d('0x4e')]['id'];}return db[_0x366d('0x41')][_0x366d('0x4c')]({'where':{'id':_0x790211[_0x366d('0x48')]['id']}})[_0x366d('0x29')](handleEntityNotFound(_0x1a5fc7,null))[_0x366d('0x29')](saveUpdates(_0x790211['body'],null))[_0x366d('0x29')](respondWithResult(_0x1a5fc7,null))['catch'](handleError(_0x1a5fc7,null));};exports[_0x366d('0x4f')]=function(_0x16a1db,_0x3b9c3c){return db['VoiceQueueReport']['find']({'where':{'id':_0x16a1db[_0x366d('0x48')]['id']}})['then'](handleEntityNotFound(_0x3b9c3c,null))[_0x366d('0x29')](removeEntity(_0x3b9c3c,null))[_0x366d('0x46')](handleError(_0x3b9c3c,null));};exports['describe']=function(_0x19cd30,_0x5516d6){return db['VoiceQueueReport'][_0x366d('0x50')]()['then'](respondWithResult(_0x5516d6,null))[_0x366d('0x46')](handleError(_0x5516d6,null));};exports[_0x366d('0x51')]=function(_0x33ae3e,_0x2592b9){var _0x439e49={},_0x306a2d={},_0x58da20={'count':0x0,'rows':[]};_0x306a2d[_0x366d('0x32')]=_[_0x366d('0x49')](db[_0x366d('0x41')][_0x366d('0x30')]);_0x306a2d[_0x366d('0x33')]=_[_0x366d('0x49')](_0x33ae3e[_0x366d('0x33')]);_0x306a2d['filters']=_[_0x366d('0x35')](_0x306a2d[_0x366d('0x32')],_0x306a2d[_0x366d('0x33')]);_0x439e49[_0x366d('0x36')]=_[_0x366d('0x35')](_0x306a2d[_0x366d('0x32')],qs[_0x366d('0x4a')](_0x33ae3e[_0x366d('0x33')][_0x366d('0x4a')]));_0x439e49[_0x366d('0x36')]=_0x439e49[_0x366d('0x36')][_0x366d('0x4b')]?_0x439e49[_0x366d('0x36')]:_0x306a2d[_0x366d('0x32')];if(!_0x33ae3e['query']['hasOwnProperty'](_0x366d('0x37'))){_0x439e49[_0x366d('0x20')]=qs[_0x366d('0x20')](_0x33ae3e[_0x366d('0x33')][_0x366d('0x20')]);_0x439e49[_0x366d('0x1e')]=qs[_0x366d('0x1e')](_0x33ae3e[_0x366d('0x33')]['offset']);}_0x439e49[_0x366d('0x38')]=qs[_0x366d('0x39')](_0x33ae3e[_0x366d('0x33')][_0x366d('0x39')]);_0x439e49[_0x366d('0x3a')]=qs[_0x366d('0x34')](_[_0x366d('0x3b')](_0x33ae3e[_0x366d('0x33')],_0x306a2d[_0x366d('0x34')]));if(_0x33ae3e['query']['filter']){_0x439e49['where']=_[_0x366d('0x3f')](_0x439e49[_0x366d('0x3a')],{'$or':_[_0x366d('0x3d')](_0x439e49[_0x366d('0x36')],function(_0x497f36){var _0x560402={};_0x560402[_0x497f36]={'$like':'%'+_0x33ae3e[_0x366d('0x33')][_0x366d('0x3c')]+'%'};return _0x560402;})});}_0x439e49=_['merge']({},_0x439e49,_0x33ae3e['options']);var _0x4669e0={'where':_0x439e49['where']};return db[_0x366d('0x41')]['count'](_0x4669e0)[_0x366d('0x29')](function(_0x4ef43b){_0x58da20[_0x366d('0x21')]=_0x4ef43b;if(_0x33ae3e[_0x366d('0x33')][_0x366d('0x42')]){_0x439e49['include']=[{'all':!![]}];}return db[_0x366d('0x41')][_0x366d('0x44')](_0x439e49);})[_0x366d('0x29')](function(_0xf2a94b){_0x58da20[_0x366d('0x45')]=_0xf2a94b;return _0x58da20;})[_0x366d('0x29')](respondWithFilteredResult(_0x2592b9,_0x439e49,_0x366d('0x51')))[_0x366d('0x46')](handleError(_0x2592b9,null,'getVoiceQueuesReport'));};
\ No newline at end of file
+var _0x2853=['rawAttributes','fieldName','key','model','map','query','filters','intersection','fields','attributes','length','hasOwnProperty','order','sort','where','pick','filter','merge','type','VIRTUAL','options','include','findAll','rows','catch','show','params','keys','find','create','body','describe','getVoiceQueuesReport','nolimit','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/license/util','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./voiceQueueReport.socket','register','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','json','reject','save','update','then','error','stack','name','index','VoiceQueueReport'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x2853,0xce));var _0x3285=function(_0x139a3c,_0x4fc883){_0x139a3c=_0x139a3c-0x0;var _0x2b375b=_0x2853[_0x139a3c];return _0x2b375b;};'use strict';var emlformat=require(_0x3285('0x0'));var rimraf=require(_0x3285('0x1'));var zipdir=require(_0x3285('0x2'));var jsonpatch=require(_0x3285('0x3'));var rp=require(_0x3285('0x4'));var moment=require(_0x3285('0x5'));var BPromise=require(_0x3285('0x6'));var Mustache=require(_0x3285('0x7'));var util=require(_0x3285('0x8'));var path=require(_0x3285('0x9'));var sox=require(_0x3285('0xa'));var csv=require(_0x3285('0xb'));var ejs=require(_0x3285('0xc'));var fs=require('fs');var fs_extra=require(_0x3285('0xd'));var _=require('lodash');var squel=require(_0x3285('0xe'));var crypto=require(_0x3285('0xf'));var jsforce=require(_0x3285('0x10'));var deskjs=require(_0x3285('0x11'));var toCsv=require(_0x3285('0xb'));var querystring=require('querystring');var Papa=require(_0x3285('0x12'));var Redis=require(_0x3285('0x13'));var authService=require('../../components/auth/service');var qs=require(_0x3285('0x14'));var as=require(_0x3285('0x15'));var hardwareService=require(_0x3285('0x16'));var logger=require(_0x3285('0x17'))(_0x3285('0x18'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x3285('0x19'));var db=require(_0x3285('0x1a'))['db'];config['redis']=_[_0x3285('0x1b')](config[_0x3285('0x1c')],{'host':_0x3285('0x1d'),'port':0x18eb});var socket=require(_0x3285('0x1e'))(new Redis(config['redis']));require(_0x3285('0x1f'))[_0x3285('0x20')](socket);function respondWithStatusCode(_0x482cbb,_0x2dd0e3){_0x2dd0e3=_0x2dd0e3||0xcc;return function(_0x152c9e){if(_0x152c9e){return _0x482cbb[_0x3285('0x21')](_0x2dd0e3);}return _0x482cbb[_0x3285('0x22')](_0x2dd0e3)[_0x3285('0x23')]();};}function respondWithResult(_0x1c0dc0,_0x552237){_0x552237=_0x552237||0xc8;return function(_0x136cb2){if(_0x136cb2){return _0x1c0dc0['status'](_0x552237)['json'](_0x136cb2);}};}function respondWithFilteredResult(_0x5241f2,_0x4b6131){return function(_0x408d2){if(_0x408d2){var _0x70a356=typeof _0x4b6131[_0x3285('0x24')]===_0x3285('0x25')&&typeof _0x4b6131[_0x3285('0x26')]===_0x3285('0x25');var _0x57ba29=_0x408d2[_0x3285('0x27')];var _0x3467ee=_0x70a356?0x0:_0x4b6131[_0x3285('0x24')];var _0xacdaeb=_0x70a356?_0x408d2['count']:_0x4b6131[_0x3285('0x24')]+_0x4b6131[_0x3285('0x26')];var _0x581964;if(_0xacdaeb>=_0x57ba29){_0xacdaeb=_0x57ba29;_0x581964=0xc8;}else{_0x581964=0xce;}_0x5241f2[_0x3285('0x22')](_0x581964);return _0x5241f2[_0x3285('0x28')](_0x3285('0x29'),_0x3467ee+'-'+_0xacdaeb+'/'+_0x57ba29)[_0x3285('0x2a')](_0x408d2);}return null;};}function patchUpdates(_0x2f3519){return function(_0x579527){try{jsonpatch['apply'](_0x579527,_0x2f3519,!![]);}catch(_0x3a2a05){return BPromise[_0x3285('0x2b')](_0x3a2a05);}return _0x579527[_0x3285('0x2c')]();};}function saveUpdates(_0x1c1744,_0x3fa823){return function(_0xb9a7ca){if(_0xb9a7ca){return _0xb9a7ca[_0x3285('0x2d')](_0x1c1744)[_0x3285('0x2e')](function(_0x16cbdb){return _0x16cbdb;});}return null;};}function removeEntity(_0x3cb3e2,_0x2ee063){return function(_0x1874b9){if(_0x1874b9){return _0x1874b9['destroy']()[_0x3285('0x2e')](function(){_0x3cb3e2['status'](0xcc)[_0x3285('0x23')]();});}};}function handleEntityNotFound(_0x504702,_0x2545cf){return function(_0x9c6708){if(!_0x9c6708){_0x504702['sendStatus'](0x194);}return _0x9c6708;};}function handleError(_0x11ed40,_0x141582){_0x141582=_0x141582||0x1f4;return function(_0x2f9c7c){logger[_0x3285('0x2f')](_0x2f9c7c[_0x3285('0x30')]);if(_0x2f9c7c[_0x3285('0x31')]){delete _0x2f9c7c[_0x3285('0x31')];}_0x11ed40['status'](_0x141582)['send'](_0x2f9c7c);};}exports[_0x3285('0x32')]=function(_0x558b5d,_0x2538c9){var _0x264ada={},_0x548799={},_0x3f6f52={'count':0x0,'rows':[]};var _0x393c63=_['map'](db[_0x3285('0x33')][_0x3285('0x34')],function(_0x1a161d){return{'name':_0x1a161d[_0x3285('0x35')],'type':_0x1a161d['type'][_0x3285('0x36')]};});_0x548799[_0x3285('0x37')]=_[_0x3285('0x38')](_0x393c63,_0x3285('0x31'));_0x548799[_0x3285('0x39')]=_['keys'](_0x558b5d[_0x3285('0x39')]);_0x548799[_0x3285('0x3a')]=_[_0x3285('0x3b')](_0x548799['model'],_0x548799[_0x3285('0x39')]);_0x264ada['attributes']=_['intersection'](_0x548799[_0x3285('0x37')],qs['fields'](_0x558b5d['query'][_0x3285('0x3c')]));_0x264ada[_0x3285('0x3d')]=_0x264ada[_0x3285('0x3d')][_0x3285('0x3e')]?_0x264ada[_0x3285('0x3d')]:_0x548799[_0x3285('0x37')];if(!_0x558b5d[_0x3285('0x39')][_0x3285('0x3f')]('nolimit')){_0x264ada[_0x3285('0x26')]=qs[_0x3285('0x26')](_0x558b5d[_0x3285('0x39')]['limit']);_0x264ada[_0x3285('0x24')]=qs['offset'](_0x558b5d[_0x3285('0x39')]['offset']);}_0x264ada[_0x3285('0x40')]=qs[_0x3285('0x41')](_0x558b5d[_0x3285('0x39')][_0x3285('0x41')]);_0x264ada[_0x3285('0x42')]=qs[_0x3285('0x3a')](_[_0x3285('0x43')](_0x558b5d[_0x3285('0x39')],_0x548799['filters']),_0x393c63);if(_0x558b5d[_0x3285('0x39')][_0x3285('0x44')]){_0x264ada[_0x3285('0x42')]=_[_0x3285('0x45')](_0x264ada[_0x3285('0x42')],{'$or':_['map'](_0x393c63,function(_0x1409e3){if(_0x1409e3[_0x3285('0x46')]!==_0x3285('0x47')){var _0xcbc33d={};_0xcbc33d[_0x1409e3[_0x3285('0x31')]]={'$like':'%'+_0x558b5d['query'][_0x3285('0x44')]+'%'};return _0xcbc33d;}})});}_0x264ada=_[_0x3285('0x45')]({},_0x264ada,_0x558b5d[_0x3285('0x48')]);var _0x5506cc={'where':_0x264ada['where']};return db[_0x3285('0x33')][_0x3285('0x27')](_0x5506cc)['then'](function(_0x200ea7){_0x3f6f52[_0x3285('0x27')]=_0x200ea7;if(_0x558b5d[_0x3285('0x39')]['includeAll']){_0x264ada[_0x3285('0x49')]=[{'all':!![]}];}return db[_0x3285('0x33')][_0x3285('0x4a')](_0x264ada);})[_0x3285('0x2e')](function(_0x3d1dcb){_0x3f6f52[_0x3285('0x4b')]=_0x3d1dcb;return _0x3f6f52;})[_0x3285('0x2e')](respondWithFilteredResult(_0x2538c9,_0x264ada))[_0x3285('0x4c')](handleError(_0x2538c9,null));};exports[_0x3285('0x4d')]=function(_0x440d4f,_0x421dfd){var _0x1e6ea7={'raw':![],'where':{'id':_0x440d4f[_0x3285('0x4e')]['id']}},_0x5d597f={};_0x5d597f[_0x3285('0x37')]=_['keys'](db[_0x3285('0x33')][_0x3285('0x34')]);_0x5d597f['query']=_[_0x3285('0x4f')](_0x440d4f[_0x3285('0x39')]);_0x5d597f['filters']=_[_0x3285('0x3b')](_0x5d597f[_0x3285('0x37')],_0x5d597f['query']);_0x1e6ea7[_0x3285('0x3d')]=_[_0x3285('0x3b')](_0x5d597f['model'],qs[_0x3285('0x3c')](_0x440d4f[_0x3285('0x39')][_0x3285('0x3c')]));_0x1e6ea7[_0x3285('0x3d')]=_0x1e6ea7[_0x3285('0x3d')][_0x3285('0x3e')]?_0x1e6ea7[_0x3285('0x3d')]:_0x5d597f[_0x3285('0x37')];if(_0x440d4f[_0x3285('0x39')]['includeAll']){_0x1e6ea7[_0x3285('0x49')]=[{'all':!![]}];}_0x1e6ea7=_[_0x3285('0x45')]({},_0x1e6ea7,_0x440d4f[_0x3285('0x48')]);return db[_0x3285('0x33')][_0x3285('0x50')](_0x1e6ea7)[_0x3285('0x2e')](handleEntityNotFound(_0x421dfd,null))[_0x3285('0x2e')](respondWithResult(_0x421dfd,null))['catch'](handleError(_0x421dfd,null));};exports[_0x3285('0x51')]=function(_0x5a676d,_0xe24d93){return db[_0x3285('0x33')][_0x3285('0x51')](_0x5a676d[_0x3285('0x52')],{})[_0x3285('0x2e')](respondWithResult(_0xe24d93,0xc9))[_0x3285('0x4c')](handleError(_0xe24d93,null));};exports[_0x3285('0x2d')]=function(_0x576ac2,_0x99476c){if(_0x576ac2[_0x3285('0x52')]['id']){delete _0x576ac2[_0x3285('0x52')]['id'];}return db[_0x3285('0x33')]['find']({'where':{'id':_0x576ac2['params']['id']}})[_0x3285('0x2e')](handleEntityNotFound(_0x99476c,null))[_0x3285('0x2e')](saveUpdates(_0x576ac2[_0x3285('0x52')],null))['then'](respondWithResult(_0x99476c,null))[_0x3285('0x4c')](handleError(_0x99476c,null));};exports['destroy']=function(_0x369ed9,_0x2ba44b){return db[_0x3285('0x33')][_0x3285('0x50')]({'where':{'id':_0x369ed9[_0x3285('0x4e')]['id']}})[_0x3285('0x2e')](handleEntityNotFound(_0x2ba44b,null))[_0x3285('0x2e')](removeEntity(_0x2ba44b,null))[_0x3285('0x4c')](handleError(_0x2ba44b,null));};exports[_0x3285('0x53')]=function(_0x30a34f,_0x463e15){return db['VoiceQueueReport'][_0x3285('0x53')]()[_0x3285('0x2e')](respondWithResult(_0x463e15,null))[_0x3285('0x4c')](handleError(_0x463e15,null));};exports[_0x3285('0x54')]=function(_0x81b896,_0x5a4643){var _0xa6d42a={},_0x1d7757={},_0x3d140e={'count':0x0,'rows':[]};_0x1d7757[_0x3285('0x37')]=_[_0x3285('0x4f')](db['VoiceQueueReport']['rawAttributes']);_0x1d7757[_0x3285('0x39')]=_['keys'](_0x81b896['query']);_0x1d7757[_0x3285('0x3a')]=_['intersection'](_0x1d7757[_0x3285('0x37')],_0x1d7757[_0x3285('0x39')]);_0xa6d42a[_0x3285('0x3d')]=_[_0x3285('0x3b')](_0x1d7757[_0x3285('0x37')],qs['fields'](_0x81b896[_0x3285('0x39')][_0x3285('0x3c')]));_0xa6d42a[_0x3285('0x3d')]=_0xa6d42a[_0x3285('0x3d')][_0x3285('0x3e')]?_0xa6d42a[_0x3285('0x3d')]:_0x1d7757[_0x3285('0x37')];if(!_0x81b896[_0x3285('0x39')][_0x3285('0x3f')](_0x3285('0x55'))){_0xa6d42a[_0x3285('0x26')]=qs[_0x3285('0x26')](_0x81b896[_0x3285('0x39')][_0x3285('0x26')]);_0xa6d42a[_0x3285('0x24')]=qs[_0x3285('0x24')](_0x81b896[_0x3285('0x39')][_0x3285('0x24')]);}_0xa6d42a[_0x3285('0x40')]=qs[_0x3285('0x41')](_0x81b896[_0x3285('0x39')]['sort']);_0xa6d42a['where']=qs[_0x3285('0x3a')](_[_0x3285('0x43')](_0x81b896[_0x3285('0x39')],_0x1d7757[_0x3285('0x3a')]));if(_0x81b896[_0x3285('0x39')][_0x3285('0x44')]){_0xa6d42a['where']=_['merge'](_0xa6d42a[_0x3285('0x42')],{'$or':_[_0x3285('0x38')](_0xa6d42a[_0x3285('0x3d')],function(_0x1ce0f9){var _0x308875={};_0x308875[_0x1ce0f9]={'$like':'%'+_0x81b896[_0x3285('0x39')][_0x3285('0x44')]+'%'};return _0x308875;})});}_0xa6d42a=_[_0x3285('0x45')]({},_0xa6d42a,_0x81b896[_0x3285('0x48')]);var _0x3bcc59={'where':_0xa6d42a[_0x3285('0x42')]};return db[_0x3285('0x33')][_0x3285('0x27')](_0x3bcc59)[_0x3285('0x2e')](function(_0x53b6ed){_0x3d140e[_0x3285('0x27')]=_0x53b6ed;if(_0x81b896[_0x3285('0x39')]['includeAll']){_0xa6d42a[_0x3285('0x49')]=[{'all':!![]}];}return db['VoiceQueueReport'][_0x3285('0x4a')](_0xa6d42a);})[_0x3285('0x2e')](function(_0x411679){_0x3d140e['rows']=_0x411679;return _0x3d140e;})[_0x3285('0x2e')](respondWithFilteredResult(_0x5a4643,_0xa6d42a,_0x3285('0x54')))[_0x3285('0x4c')](handleError(_0x5a4643,null,_0x3285('0x54')));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcaaa=['emit','hook','events','VoiceQueueReport','setMaxListeners','save','update'];(function(_0x3e955c,_0x5e47ca){var _0x4fecc4=function(_0x18ac2f){while(--_0x18ac2f){_0x3e955c['push'](_0x3e955c['shift']());}};_0x4fecc4(++_0x5e47ca);}(_0xcaaa,0x16e));var _0xacaa=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xcaaa[_0x3dd15e];return _0x231fd0;};'use strict';var EventEmitter=require(_0xacaa('0x0'));var VoiceQueueReport=require('../../mysqldb')['db'][_0xacaa('0x1')];var VoiceQueueReportEvents=new EventEmitter();VoiceQueueReportEvents[_0xacaa('0x2')](0x0);var events={'afterCreate':_0xacaa('0x3'),'afterUpdate':_0xacaa('0x4'),'afterDestroy':'remove'};function emitEvent(_0x1fd111){return function(_0x22e1dc,_0x129be0,_0x267639){VoiceQueueReportEvents[_0xacaa('0x5')](_0x1fd111+':'+_0x22e1dc['id'],_0x22e1dc);VoiceQueueReportEvents[_0xacaa('0x5')](_0x1fd111,_0x22e1dc);_0x267639(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];VoiceQueueReport[_0xacaa('0x6')](e,emitEvent(event));}}module['exports']=VoiceQueueReportEvents;
\ No newline at end of file
+var _0xa6a8=['update','remove','emit','hasOwnProperty','exports','events','../../mysqldb','VoiceQueueReport','save'];(function(_0x1343e5,_0x876e5f){var _0x39cf50=function(_0x23d8d4){while(--_0x23d8d4){_0x1343e5['push'](_0x1343e5['shift']());}};_0x39cf50(++_0x876e5f);}(_0xa6a8,0xef));var _0x8a6a=function(_0x39684f,_0x4764b8){_0x39684f=_0x39684f-0x0;var _0x4dafd8=_0xa6a8[_0x39684f];return _0x4dafd8;};'use strict';var EventEmitter=require(_0x8a6a('0x0'));var VoiceQueueReport=require(_0x8a6a('0x1'))['db'][_0x8a6a('0x2')];var VoiceQueueReportEvents=new EventEmitter();VoiceQueueReportEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x8a6a('0x3'),'afterUpdate':_0x8a6a('0x4'),'afterDestroy':_0x8a6a('0x5')};function emitEvent(_0x25105c){return function(_0x5f4700,_0x2fa032,_0x2239ae){VoiceQueueReportEvents[_0x8a6a('0x6')](_0x25105c+':'+_0x5f4700['id'],_0x5f4700);VoiceQueueReportEvents[_0x8a6a('0x6')](_0x25105c,_0x5f4700);_0x2239ae(null);};}for(var e in events){if(events[_0x8a6a('0x7')](e)){var event=events[e];VoiceQueueReport['hook'](e,emitEvent(event));}}module[_0x8a6a('0x8')]=VoiceQueueReportEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3e16=['calleridnum','lodash','util','../../config/logger','api','bluebird','request-promise','path','rimraf','./voiceQueueReport.attributes','define','report_queue','uniqueid'];(function(_0x534ec3,_0x312bb5){var _0x29476b=function(_0x54b3ee){while(--_0x54b3ee){_0x534ec3['push'](_0x534ec3['shift']());}};_0x29476b(++_0x312bb5);}(_0x3e16,0x17a));var _0x63e1=function(_0x1a5b2b,_0x5c2965){_0x1a5b2b=_0x1a5b2b-0x0;var _0x2735c5=_0x3e16[_0x1a5b2b];return _0x2735c5;};'use strict';var _=require(_0x63e1('0x0'));var util=require(_0x63e1('0x1'));var logger=require(_0x63e1('0x2'))(_0x63e1('0x3'));var moment=require('moment');var BPromise=require(_0x63e1('0x4'));var rp=require(_0x63e1('0x5'));var fs=require('fs');var path=require(_0x63e1('0x6'));var rimraf=require(_0x63e1('0x7'));var config=require('../../config/environment');var attributes=require(_0x63e1('0x8'));module['exports']=function(_0x154f2a,_0x3d4353){return _0x154f2a[_0x63e1('0x9')]('VoiceQueueReport',attributes,{'tableName':_0x63e1('0xa'),'paranoid':![],'indexes':[{'fields':[_0x63e1('0xb')]},{'fields':[_0x63e1('0xc')]}],'timestamps':!![]});};
\ No newline at end of file
+var _0xb67d=['util','../../config/logger','api','moment','bluebird','path','rimraf','../../config/environment','./voiceQueueReport.attributes','exports','define','VoiceQueueReport','report_queue','uniqueid','calleridnum','lodash'];(function(_0xb67235,_0x56fce2){var _0x241b05=function(_0x3dca68){while(--_0x3dca68){_0xb67235['push'](_0xb67235['shift']());}};_0x241b05(++_0x56fce2);}(_0xb67d,0x1ef));var _0xdb67=function(_0x4b369d,_0x265eb8){_0x4b369d=_0x4b369d-0x0;var _0x571a98=_0xb67d[_0x4b369d];return _0x571a98;};'use strict';var _=require(_0xdb67('0x0'));var util=require(_0xdb67('0x1'));var logger=require(_0xdb67('0x2'))(_0xdb67('0x3'));var moment=require(_0xdb67('0x4'));var BPromise=require(_0xdb67('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xdb67('0x6'));var rimraf=require(_0xdb67('0x7'));var config=require(_0xdb67('0x8'));var attributes=require(_0xdb67('0x9'));module[_0xdb67('0xa')]=function(_0x166334,_0x5761f7){return _0x166334[_0xdb67('0xb')](_0xdb67('0xc'),attributes,{'tableName':_0xdb67('0xd'),'paranoid':![],'indexes':[{'fields':[_0xdb67('0xe')]},{'fields':[_0xdb67('0xf')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xffef=['limit','model','include','map','attributes','catch','create','CreateVoiceQueueReport','UpdateVoiceQueueReport','body','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','localhost','socket.io-emitter','./voiceQueueReport.socket','register','then','info','request\x20sent','debug','VoiceQueueReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','VoiceQueueReport,\x20%s,\x20%s','result','GetVoiceQueueReport','VoiceQueueReport','options','raw','where'];(function(_0x296565,_0x3340bc){var _0x8e9481=function(_0x2c086c){while(--_0x2c086c){_0x296565['push'](_0x296565['shift']());}};_0x8e9481(++_0x3340bc);}(_0xffef,0x1cc));var _0xfffe=function(_0x4caf06,_0x30f853){_0x4caf06=_0x4caf06-0x0;var _0x260d2c=_0xffef[_0x4caf06];return _0x260d2c;};'use strict';var _=require(_0xfffe('0x0'));var util=require(_0xfffe('0x1'));var moment=require(_0xfffe('0x2'));var BPromise=require(_0xfffe('0x3'));var rs=require(_0xfffe('0x4'));var fs=require('fs');var Redis=require(_0xfffe('0x5'));var db=require(_0xfffe('0x6'))['db'];var utils=require(_0xfffe('0x7'));var logger=require(_0xfffe('0x8'))(_0xfffe('0x9'));var config=require(_0xfffe('0xa'));var jayson=require(_0xfffe('0xb'));var client=jayson[_0xfffe('0xc')][_0xfffe('0xd')]({'port':0x232a});config[_0xfffe('0xe')]=_['defaults'](config[_0xfffe('0xe')],{'host':_0xfffe('0xf'),'port':0x18eb});var socket=require(_0xfffe('0x10'))(new Redis(config[_0xfffe('0xe')]));require(_0xfffe('0x11'))[_0xfffe('0x12')](socket);function respondWithRpcPromise(_0x28ec8c,_0x50ddb9,_0x5aaba1){return new BPromise(function(_0x3c7008,_0x395fe7){return client['request'](_0x28ec8c,_0x5aaba1)[_0xfffe('0x13')](function(_0x2f9cc1){logger[_0xfffe('0x14')]('VoiceQueueReport,\x20%s,\x20%s',_0x50ddb9,_0xfffe('0x15'));logger[_0xfffe('0x16')](_0xfffe('0x17'),_0x50ddb9,'request\x20sent',JSON[_0xfffe('0x18')](_0x2f9cc1));if(_0x2f9cc1[_0xfffe('0x19')]){if(_0x2f9cc1[_0xfffe('0x19')][_0xfffe('0x1a')]===0x1f4){logger[_0xfffe('0x19')]('VoiceQueueReport,\x20%s,\x20%s',_0x50ddb9,_0x2f9cc1[_0xfffe('0x19')][_0xfffe('0x1b')]);return _0x395fe7(_0x2f9cc1[_0xfffe('0x19')][_0xfffe('0x1b')]);}logger[_0xfffe('0x19')](_0xfffe('0x1c'),_0x50ddb9,_0x2f9cc1['error'][_0xfffe('0x1b')]);return _0x3c7008(_0x2f9cc1['error']['message']);}else{logger[_0xfffe('0x14')](_0xfffe('0x1c'),_0x50ddb9,_0xfffe('0x15'));_0x3c7008(_0x2f9cc1[_0xfffe('0x1d')][_0xfffe('0x1b')]);}})['catch'](function(_0x526538){logger[_0xfffe('0x19')](_0xfffe('0x1c'),_0x50ddb9,_0x526538);_0x395fe7(_0x526538);});});}exports[_0xfffe('0x1e')]=function(_0x328aab){var _0x55547a=this;return new Promise(function(_0x1b1bde,_0x8ebd69){return db[_0xfffe('0x1f')]['findAll']({'raw':_0x328aab['options']?_0x328aab[_0xfffe('0x20')][_0xfffe('0x21')]===undefined?!![]:![]:!![],'where':_0x328aab[_0xfffe('0x20')]?_0x328aab[_0xfffe('0x20')][_0xfffe('0x22')]||null:null,'attributes':_0x328aab[_0xfffe('0x20')]?_0x328aab[_0xfffe('0x20')]['attributes']||null:null,'limit':_0x328aab[_0xfffe('0x20')]?_0x328aab['options'][_0xfffe('0x23')]||null:null,'include':_0x328aab['options']?_0x328aab['options']['include']?_['map'](_0x328aab['options']['include'],function(_0x55a990){return{'model':db[_0x55a990[_0xfffe('0x24')]],'as':_0x55a990['as'],'attributes':_0x55a990['attributes'],'include':_0x55a990[_0xfffe('0x25')]?_[_0xfffe('0x26')](_0x55a990[_0xfffe('0x25')],function(_0x1671d3){return{'model':db[_0x1671d3['model']],'as':_0x1671d3['as'],'attributes':_0x1671d3[_0xfffe('0x27')],'include':_0x1671d3[_0xfffe('0x25')]?_[_0xfffe('0x26')](_0x1671d3['include'],function(_0x465f5a){return{'model':db[_0x465f5a['model']],'as':_0x465f5a['as'],'attributes':_0x465f5a[_0xfffe('0x27')]};}):[]};}):[]};}):[]:[]})[_0xfffe('0x13')](function(_0x1e7fda){logger[_0xfffe('0x14')](_0xfffe('0x1e'),_0x328aab);logger['debug'](_0xfffe('0x1e'),_0x328aab,JSON[_0xfffe('0x18')](_0x1e7fda));_0x1b1bde(_0x1e7fda);})[_0xfffe('0x28')](function(_0x2a54a5){logger['error']('GetVoiceQueueReport',_0x2a54a5[_0xfffe('0x1b')],_0x328aab);_0x8ebd69(_0x55547a[_0xfffe('0x19')](0x1f4,_0x2a54a5[_0xfffe('0x1b')]));});});};exports['CreateVoiceQueueReport']=function(_0x1726cc){var _0x1bb2a3=this;return new Promise(function(_0x26beac,_0x23bcac){return db[_0xfffe('0x1f')][_0xfffe('0x29')](_0x1726cc['body'],{'raw':_0x1726cc['options']?_0x1726cc[_0xfffe('0x20')][_0xfffe('0x21')]===undefined?!![]:![]:!![]})[_0xfffe('0x13')](function(_0x387b56){logger[_0xfffe('0x14')](_0xfffe('0x2a'),_0x1726cc);logger[_0xfffe('0x16')](_0xfffe('0x2a'),_0x1726cc,JSON[_0xfffe('0x18')](_0x387b56));_0x26beac(_0x387b56);})[_0xfffe('0x28')](function(_0x2bdf21){logger['error'](_0xfffe('0x2a'),_0x2bdf21[_0xfffe('0x1b')],_0x1726cc);_0x23bcac(_0x1bb2a3['error'](0x1f4,_0x2bdf21[_0xfffe('0x1b')]));});});};exports[_0xfffe('0x2b')]=function(_0x5b7a60){var _0x269f00=this;return new Promise(function(_0x4fd64a,_0xd2b2d7){return db['VoiceQueueReport']['update'](_0x5b7a60[_0xfffe('0x2c')],{'raw':_0x5b7a60['options']?_0x5b7a60['options'][_0xfffe('0x21')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x5b7a60[_0xfffe('0x20')]?_0x5b7a60[_0xfffe('0x20')][_0xfffe('0x22')]||null:null,'attributes':_0x5b7a60[_0xfffe('0x20')]?_0x5b7a60[_0xfffe('0x20')]['attributes']||null:null,'limit':_0x5b7a60[_0xfffe('0x20')]?_0x5b7a60[_0xfffe('0x20')][_0xfffe('0x23')]||null:null})['then'](function(_0x31f3d0){logger[_0xfffe('0x14')](_0xfffe('0x2b'),_0x5b7a60);logger[_0xfffe('0x16')]('UpdateVoiceQueueReport',_0x5b7a60,JSON['stringify'](_0x31f3d0));_0x4fd64a(_0x31f3d0);})[_0xfffe('0x28')](function(_0x404fcd){logger['error']('UpdateVoiceQueueReport',_0x404fcd[_0xfffe('0x1b')],_0x5b7a60);_0xd2b2d7(_0x269f00[_0xfffe('0x19')](0x1f4,_0x404fcd['message']));});});};
\ No newline at end of file
+var _0x8e68=['localhost','socket.io-emitter','register','then','info','request\x20sent','debug','VoiceQueueReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','VoiceQueueReport,\x20%s,\x20%s','VoiceQueueReport','options','raw','where','attributes','limit','include','map','model','GetVoiceQueueReport','CreateVoiceQueueReport','create','body','update','UpdateVoiceQueueReport','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x8e68,0xf5));var _0x88e6=function(_0x5208a9,_0x192f7d){_0x5208a9=_0x5208a9-0x0;var _0x5b0c4a=_0x8e68[_0x5208a9];return _0x5b0c4a;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x88e6('0x0'));var BPromise=require(_0x88e6('0x1'));var rs=require(_0x88e6('0x2'));var fs=require('fs');var Redis=require(_0x88e6('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x88e6('0x4'));var logger=require(_0x88e6('0x5'))(_0x88e6('0x6'));var config=require(_0x88e6('0x7'));var jayson=require(_0x88e6('0x8'));var client=jayson[_0x88e6('0x9')][_0x88e6('0xa')]({'port':0x232a});config[_0x88e6('0xb')]=_[_0x88e6('0xc')](config[_0x88e6('0xb')],{'host':_0x88e6('0xd'),'port':0x18eb});var socket=require(_0x88e6('0xe'))(new Redis(config['redis']));require('./voiceQueueReport.socket')[_0x88e6('0xf')](socket);function respondWithRpcPromise(_0x327796,_0x151162,_0x5d778d){return new BPromise(function(_0xc6dfe5,_0x5881e4){return client['request'](_0x327796,_0x5d778d)[_0x88e6('0x10')](function(_0x37509f){logger[_0x88e6('0x11')]('VoiceQueueReport,\x20%s,\x20%s',_0x151162,_0x88e6('0x12'));logger[_0x88e6('0x13')](_0x88e6('0x14'),_0x151162,_0x88e6('0x12'),JSON[_0x88e6('0x15')](_0x37509f));if(_0x37509f[_0x88e6('0x16')]){if(_0x37509f[_0x88e6('0x16')][_0x88e6('0x17')]===0x1f4){logger[_0x88e6('0x16')]('VoiceQueueReport,\x20%s,\x20%s',_0x151162,_0x37509f[_0x88e6('0x16')][_0x88e6('0x18')]);return _0x5881e4(_0x37509f[_0x88e6('0x16')][_0x88e6('0x18')]);}logger[_0x88e6('0x16')]('VoiceQueueReport,\x20%s,\x20%s',_0x151162,_0x37509f[_0x88e6('0x16')][_0x88e6('0x18')]);return _0xc6dfe5(_0x37509f[_0x88e6('0x16')][_0x88e6('0x18')]);}else{logger['info']('VoiceQueueReport,\x20%s,\x20%s',_0x151162,'request\x20sent');_0xc6dfe5(_0x37509f[_0x88e6('0x19')]['message']);}})[_0x88e6('0x1a')](function(_0x57771e){logger[_0x88e6('0x16')](_0x88e6('0x1b'),_0x151162,_0x57771e);_0x5881e4(_0x57771e);});});}exports['GetVoiceQueueReport']=function(_0x3cfcf4){var _0x1cd87a=this;return new Promise(function(_0x48c0b2,_0x2ac146){return db[_0x88e6('0x1c')]['findAll']({'raw':_0x3cfcf4[_0x88e6('0x1d')]?_0x3cfcf4['options'][_0x88e6('0x1e')]===undefined?!![]:![]:!![],'where':_0x3cfcf4[_0x88e6('0x1d')]?_0x3cfcf4[_0x88e6('0x1d')][_0x88e6('0x1f')]||null:null,'attributes':_0x3cfcf4[_0x88e6('0x1d')]?_0x3cfcf4[_0x88e6('0x1d')][_0x88e6('0x20')]||null:null,'limit':_0x3cfcf4[_0x88e6('0x1d')]?_0x3cfcf4['options'][_0x88e6('0x21')]||null:null,'include':_0x3cfcf4[_0x88e6('0x1d')]?_0x3cfcf4[_0x88e6('0x1d')][_0x88e6('0x22')]?_[_0x88e6('0x23')](_0x3cfcf4['options']['include'],function(_0x1476c1){return{'model':db[_0x1476c1[_0x88e6('0x24')]],'as':_0x1476c1['as'],'attributes':_0x1476c1[_0x88e6('0x20')],'include':_0x1476c1['include']?_[_0x88e6('0x23')](_0x1476c1[_0x88e6('0x22')],function(_0x562b8e){return{'model':db[_0x562b8e[_0x88e6('0x24')]],'as':_0x562b8e['as'],'attributes':_0x562b8e[_0x88e6('0x20')],'include':_0x562b8e['include']?_['map'](_0x562b8e[_0x88e6('0x22')],function(_0x5ee481){return{'model':db[_0x5ee481[_0x88e6('0x24')]],'as':_0x5ee481['as'],'attributes':_0x5ee481[_0x88e6('0x20')]};}):[]};}):[]};}):[]:[]})[_0x88e6('0x10')](function(_0x4ac49e){logger[_0x88e6('0x11')](_0x88e6('0x25'),_0x3cfcf4);logger[_0x88e6('0x13')](_0x88e6('0x25'),_0x3cfcf4,JSON[_0x88e6('0x15')](_0x4ac49e));_0x48c0b2(_0x4ac49e);})[_0x88e6('0x1a')](function(_0x1415be){logger[_0x88e6('0x16')](_0x88e6('0x25'),_0x1415be[_0x88e6('0x18')],_0x3cfcf4);_0x2ac146(_0x1cd87a['error'](0x1f4,_0x1415be[_0x88e6('0x18')]));});});};exports[_0x88e6('0x26')]=function(_0x39fd5f){var _0x168e5c=this;return new Promise(function(_0x35bdd4,_0x4aa2fc){return db[_0x88e6('0x1c')][_0x88e6('0x27')](_0x39fd5f[_0x88e6('0x28')],{'raw':_0x39fd5f[_0x88e6('0x1d')]?_0x39fd5f['options']['raw']===undefined?!![]:![]:!![]})['then'](function(_0x3cc168){logger[_0x88e6('0x11')](_0x88e6('0x26'),_0x39fd5f);logger[_0x88e6('0x13')]('CreateVoiceQueueReport',_0x39fd5f,JSON['stringify'](_0x3cc168));_0x35bdd4(_0x3cc168);})[_0x88e6('0x1a')](function(_0x1ea0c0){logger['error']('CreateVoiceQueueReport',_0x1ea0c0[_0x88e6('0x18')],_0x39fd5f);_0x4aa2fc(_0x168e5c[_0x88e6('0x16')](0x1f4,_0x1ea0c0[_0x88e6('0x18')]));});});};exports['UpdateVoiceQueueReport']=function(_0x5f3cf2){var _0x52616a=this;return new Promise(function(_0x3d273e,_0x5b6c38){return db[_0x88e6('0x1c')][_0x88e6('0x29')](_0x5f3cf2[_0x88e6('0x28')],{'raw':_0x5f3cf2['options']?_0x5f3cf2['options']['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x5f3cf2[_0x88e6('0x1d')]?_0x5f3cf2[_0x88e6('0x1d')][_0x88e6('0x1f')]||null:null,'attributes':_0x5f3cf2[_0x88e6('0x1d')]?_0x5f3cf2[_0x88e6('0x1d')][_0x88e6('0x20')]||null:null,'limit':_0x5f3cf2[_0x88e6('0x1d')]?_0x5f3cf2[_0x88e6('0x1d')][_0x88e6('0x21')]||null:null})[_0x88e6('0x10')](function(_0x492098){logger[_0x88e6('0x11')](_0x88e6('0x2a'),_0x5f3cf2);logger[_0x88e6('0x13')](_0x88e6('0x2a'),_0x5f3cf2,JSON[_0x88e6('0x15')](_0x492098));_0x3d273e(_0x492098);})['catch'](function(_0x557550){logger[_0x88e6('0x16')](_0x88e6('0x2a'),_0x557550[_0x88e6('0x18')],_0x5f3cf2);_0x5b6c38(_0x52616a[_0x88e6('0x16')](0x1f4,_0x557550[_0x88e6('0x18')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe9e8=['voiceQueueReport:','./voiceQueueReport.events','save','remove','update','removeListener','register','length'];(function(_0x456c8d,_0x591aac){var _0x46470f=function(_0x43a19a){while(--_0x43a19a){_0x456c8d['push'](_0x456c8d['shift']());}};_0x46470f(++_0x591aac);}(_0xe9e8,0x179));var _0x8e9e=function(_0x127927,_0x2f29cd){_0x127927=_0x127927-0x0;var _0x76759=_0xe9e8[_0x127927];return _0x76759;};'use strict';var VoiceQueueReportEvents=require(_0x8e9e('0x0'));var events=[_0x8e9e('0x1'),_0x8e9e('0x2'),_0x8e9e('0x3')];function createListener(_0x1a564e,_0x349180){return function(_0x398891){_0x349180['emit'](_0x1a564e,_0x398891);};}function removeListener(_0x1508fb,_0x497f2a){return function(){VoiceQueueReportEvents[_0x8e9e('0x4')](_0x1508fb,_0x497f2a);};}exports[_0x8e9e('0x5')]=function(_0x3b5e8d){for(var _0x5de00e=0x0,_0x4dae01=events[_0x8e9e('0x6')];_0x5de00e<_0x4dae01;_0x5de00e++){var _0x2e00d9=events[_0x5de00e];var _0x3afd97=createListener(_0x8e9e('0x7')+_0x2e00d9,_0x3b5e8d);VoiceQueueReportEvents['on'](_0x2e00d9,_0x3afd97);}};
\ No newline at end of file
+var _0x6e0d=['length','voiceQueueReport:','./voiceQueueReport.events','save','remove','update'];(function(_0x329619,_0x2ca422){var _0x4b9c4e=function(_0x5eecd6){while(--_0x5eecd6){_0x329619['push'](_0x329619['shift']());}};_0x4b9c4e(++_0x2ca422);}(_0x6e0d,0x11c));var _0xd6e0=function(_0x4df111,_0x30e27b){_0x4df111=_0x4df111-0x0;var _0x361727=_0x6e0d[_0x4df111];return _0x361727;};'use strict';var VoiceQueueReportEvents=require(_0xd6e0('0x0'));var events=[_0xd6e0('0x1'),_0xd6e0('0x2'),_0xd6e0('0x3')];function createListener(_0x4e3660,_0x63eadf){return function(_0x5c1016){_0x63eadf['emit'](_0x4e3660,_0x5c1016);};}function removeListener(_0x5f2ddc,_0x39a23c){return function(){VoiceQueueReportEvents['removeListener'](_0x5f2ddc,_0x39a23c);};}exports['register']=function(_0x56bad4){for(var _0x97b7c1=0x0,_0x16c96d=events[_0xd6e0('0x4')];_0x97b7c1<_0x16c96d;_0x97b7c1++){var _0x1515da=events[_0x97b7c1];var _0x22ce6d=createListener(_0xd6e0('0x5')+_0x1515da,_0x56bad4);VoiceQueueReportEvents['on'](_0x1515da,_0x22ce6d);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3efe=['get','show','post','create','put','/:id','update','delete','destroy','exports','multer','util','path','connect-timeout','express','fs-extra','../../components/interaction/service','./voiceQueuesLog.controller','isAuthenticated','index'];(function(_0x2b10c6,_0x185590){var _0x3789d2=function(_0x272987){while(--_0x272987){_0x2b10c6['push'](_0x2b10c6['shift']());}};_0x3789d2(++_0x185590);}(_0x3efe,0x136));var _0xe3ef=function(_0x167cc1,_0x56ef5a){_0x167cc1=_0x167cc1-0x0;var _0x10bc4b=_0x3efe[_0x167cc1];return _0x10bc4b;};'use strict';var multer=require(_0xe3ef('0x0'));var util=require(_0xe3ef('0x1'));var path=require(_0xe3ef('0x2'));var timeout=require(_0xe3ef('0x3'));var express=require(_0xe3ef('0x4'));var router=express['Router']();var fs_extra=require(_0xe3ef('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0xe3ef('0x6'));var config=require('../../config/environment');var controller=require(_0xe3ef('0x7'));router['get']('/',auth[_0xe3ef('0x8')](),controller[_0xe3ef('0x9')]);router[_0xe3ef('0xa')]('/:id',auth[_0xe3ef('0x8')](),controller[_0xe3ef('0xb')]);router[_0xe3ef('0xc')]('/',auth[_0xe3ef('0x8')](),controller[_0xe3ef('0xd')]);router[_0xe3ef('0xe')](_0xe3ef('0xf'),auth[_0xe3ef('0x8')](),controller[_0xe3ef('0x10')]);router[_0xe3ef('0x11')](_0xe3ef('0xf'),auth[_0xe3ef('0x8')](),controller[_0xe3ef('0x12')]);module[_0xe3ef('0x13')]=router;
\ No newline at end of file
+var _0xea8d=['Router','fs-extra','../../components/auth/service','../../components/interaction/service','./voiceQueuesLog.controller','get','isAuthenticated','index','show','post','create','put','/:id','update','exports','multer','util','path'];(function(_0x3153cf,_0x4193aa){var _0x413ea3=function(_0x54e42b){while(--_0x54e42b){_0x3153cf['push'](_0x3153cf['shift']());}};_0x413ea3(++_0x4193aa);}(_0xea8d,0x1ad));var _0xdea8=function(_0x29fcd6,_0x485657){_0x29fcd6=_0x29fcd6-0x0;var _0x50c56c=_0xea8d[_0x29fcd6];return _0x50c56c;};'use strict';var multer=require(_0xdea8('0x0'));var util=require(_0xdea8('0x1'));var path=require(_0xdea8('0x2'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0xdea8('0x3')]();var fs_extra=require(_0xdea8('0x4'));var auth=require(_0xdea8('0x5'));var interaction=require(_0xdea8('0x6'));var config=require('../../config/environment');var controller=require(_0xdea8('0x7'));router[_0xdea8('0x8')]('/',auth[_0xdea8('0x9')](),controller[_0xdea8('0xa')]);router['get']('/:id',auth[_0xdea8('0x9')](),controller[_0xdea8('0xb')]);router[_0xdea8('0xc')]('/',auth[_0xdea8('0x9')](),controller[_0xdea8('0xd')]);router[_0xdea8('0xe')](_0xdea8('0xf'),auth[_0xdea8('0x9')](),controller[_0xdea8('0x10')]);router['delete']('/:id',auth[_0xdea8('0x9')](),controller['destroy']);module[_0xdea8('0x11')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb70d=['YYYY-MM-DD\x20HH:mm:ss','moment','STRING'];(function(_0x22cfdc,_0xe97df4){var _0x396bc2=function(_0x2b87b1){while(--_0x2b87b1){_0x22cfdc['push'](_0x22cfdc['shift']());}};_0x396bc2(++_0xe97df4);}(_0xb70d,0x181));var _0xdb70=function(_0x4f4f31,_0x5cadd0){_0x4f4f31=_0x4f4f31-0x0;var _0x5ba659=_0xb70d[_0x4f4f31];return _0x5ba659;};'use strict';var Sequelize=require('sequelize');var moment=require(_0xdb70('0x0'));module['exports']={'time':{'type':Sequelize[_0xdb70('0x1')]},'callid':{'type':Sequelize[_0xdb70('0x1')],'allowNull':![],'defaultValue':''},'queuename':{'type':Sequelize[_0xdb70('0x1')],'allowNull':![],'defaultValue':''},'agent':{'type':Sequelize[_0xdb70('0x1')],'allowNull':![],'defaultValue':''},'event':{'type':Sequelize[_0xdb70('0x1')],'allowNull':![],'defaultValue':''},'data':{'type':Sequelize[_0xdb70('0x1')],'allowNull':![],'defaultValue':''},'data1':{'type':Sequelize[_0xdb70('0x1')],'allowNull':![],'defaultValue':''},'data2':{'type':Sequelize[_0xdb70('0x1')],'allowNull':![],'defaultValue':''},'data3':{'type':Sequelize[_0xdb70('0x1')],'allowNull':![],'defaultValue':''},'data4':{'type':Sequelize[_0xdb70('0x1')],'allowNull':![],'defaultValue':''},'data5':{'type':Sequelize[_0xdb70('0x1')],'allowNull':![],'defaultValue':''},'dtm':{'type':Sequelize['DATE'],'allowNull':![],'defaultValue':moment()['format'](_0xdb70('0x2'))}};
\ No newline at end of file
+var _0xcb04=['sequelize','moment','exports','STRING','DATE','format','YYYY-MM-DD\x20HH:mm:ss'];(function(_0x3115b3,_0x54a5a1){var _0x11ff79=function(_0x2fdf0f){while(--_0x2fdf0f){_0x3115b3['push'](_0x3115b3['shift']());}};_0x11ff79(++_0x54a5a1);}(_0xcb04,0x9a));var _0x4cb0=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0xcb04[_0x14add3];return _0x4a174f;};'use strict';var Sequelize=require(_0x4cb0('0x0'));var moment=require(_0x4cb0('0x1'));module[_0x4cb0('0x2')]={'time':{'type':Sequelize[_0x4cb0('0x3')]},'callid':{'type':Sequelize[_0x4cb0('0x3')],'allowNull':![],'defaultValue':''},'queuename':{'type':Sequelize[_0x4cb0('0x3')],'allowNull':![],'defaultValue':''},'agent':{'type':Sequelize[_0x4cb0('0x3')],'allowNull':![],'defaultValue':''},'event':{'type':Sequelize[_0x4cb0('0x3')],'allowNull':![],'defaultValue':''},'data':{'type':Sequelize[_0x4cb0('0x3')],'allowNull':![],'defaultValue':''},'data1':{'type':Sequelize[_0x4cb0('0x3')],'allowNull':![],'defaultValue':''},'data2':{'type':Sequelize['STRING'],'allowNull':![],'defaultValue':''},'data3':{'type':Sequelize[_0x4cb0('0x3')],'allowNull':![],'defaultValue':''},'data4':{'type':Sequelize[_0x4cb0('0x3')],'allowNull':![],'defaultValue':''},'data5':{'type':Sequelize[_0x4cb0('0x3')],'allowNull':![],'defaultValue':''},'dtm':{'type':Sequelize[_0x4cb0('0x4')],'allowNull':![],'defaultValue':moment()[_0x4cb0('0x5')](_0x4cb0('0x6'))}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xeaec=['end','stack','name','send','index','map','VoiceQueuesLog','rawAttributes','fieldName','type','key','model','query','keys','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','filters','pick','filter','VIRTUAL','merge','options','includeAll','include','findAll','rows','catch','show','params','find','create','body','eml-format','rimraf','zip-dir','moment','sox','to-csv','ejs','lodash','crypto','jsforce','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','offset','limit','undefined','count','set','Content-Range','apply','reject','save','update','then','destroy'];(function(_0x59d237,_0x49c6a5){var _0x555534=function(_0x4af35e){while(--_0x4af35e){_0x59d237['push'](_0x59d237['shift']());}};_0x555534(++_0x49c6a5);}(_0xeaec,0x193));var _0xceae=function(_0x48a6e3,_0x473966){_0x48a6e3=_0x48a6e3-0x0;var _0x14e4a5=_0xeaec[_0x48a6e3];return _0x14e4a5;};'use strict';var emlformat=require(_0xceae('0x0'));var rimraf=require(_0xceae('0x1'));var zipdir=require(_0xceae('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0xceae('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require(_0xceae('0x4'));var csv=require(_0xceae('0x5'));var ejs=require(_0xceae('0x6'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xceae('0x7'));var squel=require('squel');var crypto=require(_0xceae('0x8'));var jsforce=require(_0xceae('0x9'));var deskjs=require('desk.js');var toCsv=require(_0xceae('0x5'));var querystring=require('querystring');var Papa=require(_0xceae('0xa'));var Redis=require(_0xceae('0xb'));var authService=require('../../components/auth/service');var qs=require(_0xceae('0xc'));var as=require(_0xceae('0xd'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xceae('0xe'))(_0xceae('0xf'));var utils=require(_0xceae('0x10'));var config=require(_0xceae('0x11'));var licenseUtil=require(_0xceae('0x12'));var db=require(_0xceae('0x13'))['db'];function respondWithStatusCode(_0x20df4e,_0x48cc69){_0x48cc69=_0x48cc69||0xcc;return function(_0x4e6bb0){if(_0x4e6bb0){return _0x20df4e[_0xceae('0x14')](_0x48cc69);}return _0x20df4e[_0xceae('0x15')](_0x48cc69)['end']();};}function respondWithResult(_0x2c0146,_0x5cc874){_0x5cc874=_0x5cc874||0xc8;return function(_0x3190eb){if(_0x3190eb){return _0x2c0146[_0xceae('0x15')](_0x5cc874)[_0xceae('0x16')](_0x3190eb);}};}function respondWithFilteredResult(_0x50a5e3,_0x43c3b9){return function(_0x46616d){if(_0x46616d){var _0x509382=typeof _0x43c3b9[_0xceae('0x17')]==='undefined'&&typeof _0x43c3b9[_0xceae('0x18')]===_0xceae('0x19');var _0x1a0eb0=_0x46616d[_0xceae('0x1a')];var _0x248a21=_0x509382?0x0:_0x43c3b9[_0xceae('0x17')];var _0x1a6b1f=_0x509382?_0x46616d[_0xceae('0x1a')]:_0x43c3b9[_0xceae('0x17')]+_0x43c3b9[_0xceae('0x18')];var _0x57459c;if(_0x1a6b1f>=_0x1a0eb0){_0x1a6b1f=_0x1a0eb0;_0x57459c=0xc8;}else{_0x57459c=0xce;}_0x50a5e3['status'](_0x57459c);return _0x50a5e3[_0xceae('0x1b')](_0xceae('0x1c'),_0x248a21+'-'+_0x1a6b1f+'/'+_0x1a0eb0)[_0xceae('0x16')](_0x46616d);}return null;};}function patchUpdates(_0x3531a2){return function(_0x22adc1){try{jsonpatch[_0xceae('0x1d')](_0x22adc1,_0x3531a2,!![]);}catch(_0x34e3b7){return BPromise[_0xceae('0x1e')](_0x34e3b7);}return _0x22adc1[_0xceae('0x1f')]();};}function saveUpdates(_0x15c70d,_0x4e3942){return function(_0x440a14){if(_0x440a14){return _0x440a14[_0xceae('0x20')](_0x15c70d)[_0xceae('0x21')](function(_0x9ba187){return _0x9ba187;});}return null;};}function removeEntity(_0x458524,_0x3a27ea){return function(_0x1f4cf3){if(_0x1f4cf3){return _0x1f4cf3[_0xceae('0x22')]()['then'](function(){_0x458524['status'](0xcc)[_0xceae('0x23')]();});}};}function handleEntityNotFound(_0x104008,_0x3348cf){return function(_0x1b51dd){if(!_0x1b51dd){_0x104008[_0xceae('0x14')](0x194);}return _0x1b51dd;};}function handleError(_0xefae1,_0x54748d){_0x54748d=_0x54748d||0x1f4;return function(_0x4c4ed9){logger['error'](_0x4c4ed9[_0xceae('0x24')]);if(_0x4c4ed9[_0xceae('0x25')]){delete _0x4c4ed9[_0xceae('0x25')];}_0xefae1[_0xceae('0x15')](_0x54748d)[_0xceae('0x26')](_0x4c4ed9);};}exports[_0xceae('0x27')]=function(_0x31d95c,_0x53e7dd){var _0x4e701={},_0x36251b={},_0x2b33b0={'count':0x0,'rows':[]};var _0x562897=_[_0xceae('0x28')](db[_0xceae('0x29')][_0xceae('0x2a')],function(_0xbbca09){return{'name':_0xbbca09[_0xceae('0x2b')],'type':_0xbbca09[_0xceae('0x2c')][_0xceae('0x2d')]};});_0x36251b[_0xceae('0x2e')]=_['map'](_0x562897,_0xceae('0x25'));_0x36251b[_0xceae('0x2f')]=_[_0xceae('0x30')](_0x31d95c[_0xceae('0x2f')]);_0x36251b['filters']=_[_0xceae('0x31')](_0x36251b[_0xceae('0x2e')],_0x36251b['query']);_0x4e701[_0xceae('0x32')]=_[_0xceae('0x31')](_0x36251b[_0xceae('0x2e')],qs['fields'](_0x31d95c[_0xceae('0x2f')][_0xceae('0x33')]));_0x4e701[_0xceae('0x32')]=_0x4e701[_0xceae('0x32')][_0xceae('0x34')]?_0x4e701[_0xceae('0x32')]:_0x36251b[_0xceae('0x2e')];if(!_0x31d95c[_0xceae('0x2f')][_0xceae('0x35')]('nolimit')){_0x4e701['limit']=qs[_0xceae('0x18')](_0x31d95c[_0xceae('0x2f')][_0xceae('0x18')]);_0x4e701[_0xceae('0x17')]=qs['offset'](_0x31d95c[_0xceae('0x2f')][_0xceae('0x17')]);}_0x4e701[_0xceae('0x36')]=qs[_0xceae('0x37')](_0x31d95c[_0xceae('0x2f')][_0xceae('0x37')]);_0x4e701[_0xceae('0x38')]=qs[_0xceae('0x39')](_[_0xceae('0x3a')](_0x31d95c[_0xceae('0x2f')],_0x36251b[_0xceae('0x39')]),_0x562897);if(_0x31d95c[_0xceae('0x2f')][_0xceae('0x3b')]){_0x4e701[_0xceae('0x38')]=_['merge'](_0x4e701[_0xceae('0x38')],{'$or':_[_0xceae('0x28')](_0x562897,function(_0x5980d8){if(_0x5980d8[_0xceae('0x2c')]!==_0xceae('0x3c')){var _0x258c9b={};_0x258c9b[_0x5980d8[_0xceae('0x25')]]={'$like':'%'+_0x31d95c[_0xceae('0x2f')]['filter']+'%'};return _0x258c9b;}})});}_0x4e701=_[_0xceae('0x3d')]({},_0x4e701,_0x31d95c[_0xceae('0x3e')]);var _0x30debf={'where':_0x4e701[_0xceae('0x38')]};return db[_0xceae('0x29')][_0xceae('0x1a')](_0x30debf)[_0xceae('0x21')](function(_0x518fe3){_0x2b33b0[_0xceae('0x1a')]=_0x518fe3;if(_0x31d95c[_0xceae('0x2f')][_0xceae('0x3f')]){_0x4e701[_0xceae('0x40')]=[{'all':!![]}];}return db[_0xceae('0x29')][_0xceae('0x41')](_0x4e701);})[_0xceae('0x21')](function(_0x370429){_0x2b33b0[_0xceae('0x42')]=_0x370429;return _0x2b33b0;})[_0xceae('0x21')](respondWithFilteredResult(_0x53e7dd,_0x4e701))[_0xceae('0x43')](handleError(_0x53e7dd,null));};exports[_0xceae('0x44')]=function(_0x4a4cf5,_0x3b6e90){var _0x7e45b9={'raw':!![],'where':{'id':_0x4a4cf5[_0xceae('0x45')]['id']}},_0x347e01={};_0x347e01[_0xceae('0x2e')]=_[_0xceae('0x30')](db[_0xceae('0x29')][_0xceae('0x2a')]);_0x347e01[_0xceae('0x2f')]=_[_0xceae('0x30')](_0x4a4cf5['query']);_0x347e01[_0xceae('0x39')]=_[_0xceae('0x31')](_0x347e01[_0xceae('0x2e')],_0x347e01[_0xceae('0x2f')]);_0x7e45b9[_0xceae('0x32')]=_[_0xceae('0x31')](_0x347e01['model'],qs[_0xceae('0x33')](_0x4a4cf5[_0xceae('0x2f')][_0xceae('0x33')]));_0x7e45b9['attributes']=_0x7e45b9[_0xceae('0x32')]['length']?_0x7e45b9[_0xceae('0x32')]:_0x347e01[_0xceae('0x2e')];if(_0x4a4cf5[_0xceae('0x2f')][_0xceae('0x3f')]){_0x7e45b9['include']=[{'all':!![]}];}_0x7e45b9=_['merge']({},_0x7e45b9,_0x4a4cf5[_0xceae('0x3e')]);return db[_0xceae('0x29')][_0xceae('0x46')](_0x7e45b9)[_0xceae('0x21')](handleEntityNotFound(_0x3b6e90,null))['then'](respondWithResult(_0x3b6e90,null))[_0xceae('0x43')](handleError(_0x3b6e90,null));};exports[_0xceae('0x47')]=function(_0x937b13,_0x219dac){return db['VoiceQueuesLog'][_0xceae('0x47')](_0x937b13[_0xceae('0x48')],{})['then'](respondWithResult(_0x219dac,0xc9))[_0xceae('0x43')](handleError(_0x219dac,null));};exports[_0xceae('0x20')]=function(_0x43dc37,_0x5ebe87){if(_0x43dc37[_0xceae('0x48')]['id']){delete _0x43dc37[_0xceae('0x48')]['id'];}return db[_0xceae('0x29')][_0xceae('0x46')]({'where':{'id':_0x43dc37[_0xceae('0x45')]['id']}})[_0xceae('0x21')](handleEntityNotFound(_0x5ebe87,null))[_0xceae('0x21')](saveUpdates(_0x43dc37[_0xceae('0x48')],null))[_0xceae('0x21')](respondWithResult(_0x5ebe87,null))[_0xceae('0x43')](handleError(_0x5ebe87,null));};exports[_0xceae('0x22')]=function(_0x224cd2,_0x1eb8ff){return db[_0xceae('0x29')][_0xceae('0x46')]({'where':{'id':_0x224cd2[_0xceae('0x45')]['id']}})[_0xceae('0x21')](handleEntityNotFound(_0x1eb8ff,null))['then'](removeEntity(_0x1eb8ff,null))[_0xceae('0x43')](handleError(_0x1eb8ff,null));};
\ No newline at end of file
+var _0x0478=['attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','then','includeAll','include','findAll','rows','show','params','fields','options','find','catch','create','body','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','sox','to-csv','fs-extra','squel','crypto','jsforce','papaparse','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','json','offset','undefined','limit','count','status','apply','reject','save','update','destroy','error','name','send','index','map','VoiceQueuesLog','rawAttributes','fieldName','type','model','keys','query','filters','intersection'];(function(_0x501510,_0x61caa9){var _0x1e6ee5=function(_0x32845b){while(--_0x32845b){_0x501510['push'](_0x501510['shift']());}};_0x1e6ee5(++_0x61caa9);}(_0x0478,0xa6));var _0x8047=function(_0x5c57b8,_0x257617){_0x5c57b8=_0x5c57b8-0x0;var _0x4fce35=_0x0478[_0x5c57b8];return _0x4fce35;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x8047('0x0'));var zipdir=require(_0x8047('0x1'));var jsonpatch=require(_0x8047('0x2'));var rp=require(_0x8047('0x3'));var moment=require(_0x8047('0x4'));var BPromise=require(_0x8047('0x5'));var Mustache=require(_0x8047('0x6'));var util=require(_0x8047('0x7'));var path=require('path');var sox=require(_0x8047('0x8'));var csv=require(_0x8047('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x8047('0xa'));var _=require('lodash');var squel=require(_0x8047('0xb'));var crypto=require(_0x8047('0xc'));var jsforce=require(_0x8047('0xd'));var deskjs=require('desk.js');var toCsv=require(_0x8047('0x9'));var querystring=require('querystring');var Papa=require(_0x8047('0xe'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x8047('0xf'));var logger=require('../../config/logger')(_0x8047('0x10'));var utils=require(_0x8047('0x11'));var config=require(_0x8047('0x12'));var licenseUtil=require('../../config/license/util');var db=require(_0x8047('0x13'))['db'];function respondWithStatusCode(_0x5f390a,_0x27b8f6){_0x27b8f6=_0x27b8f6||0xcc;return function(_0x319f6b){if(_0x319f6b){return _0x5f390a[_0x8047('0x14')](_0x27b8f6);}return _0x5f390a['status'](_0x27b8f6)[_0x8047('0x15')]();};}function respondWithResult(_0xc2c098,_0x3e6c3a){_0x3e6c3a=_0x3e6c3a||0xc8;return function(_0x48f672){if(_0x48f672){return _0xc2c098['status'](_0x3e6c3a)[_0x8047('0x16')](_0x48f672);}};}function respondWithFilteredResult(_0x47856f,_0x25c593){return function(_0x3073f3){if(_0x3073f3){var _0x336db0=typeof _0x25c593[_0x8047('0x17')]===_0x8047('0x18')&&typeof _0x25c593[_0x8047('0x19')]===_0x8047('0x18');var _0x18ff2e=_0x3073f3[_0x8047('0x1a')];var _0xd46e08=_0x336db0?0x0:_0x25c593[_0x8047('0x17')];var _0x12331d=_0x336db0?_0x3073f3[_0x8047('0x1a')]:_0x25c593[_0x8047('0x17')]+_0x25c593[_0x8047('0x19')];var _0x329d70;if(_0x12331d>=_0x18ff2e){_0x12331d=_0x18ff2e;_0x329d70=0xc8;}else{_0x329d70=0xce;}_0x47856f[_0x8047('0x1b')](_0x329d70);return _0x47856f['set']('Content-Range',_0xd46e08+'-'+_0x12331d+'/'+_0x18ff2e)[_0x8047('0x16')](_0x3073f3);}return null;};}function patchUpdates(_0x54db64){return function(_0x78b945){try{jsonpatch[_0x8047('0x1c')](_0x78b945,_0x54db64,!![]);}catch(_0x55185b){return BPromise[_0x8047('0x1d')](_0x55185b);}return _0x78b945[_0x8047('0x1e')]();};}function saveUpdates(_0x417a2a,_0x147b4d){return function(_0x2e2f61){if(_0x2e2f61){return _0x2e2f61[_0x8047('0x1f')](_0x417a2a)['then'](function(_0x2629f6){return _0x2629f6;});}return null;};}function removeEntity(_0x1764a2,_0x521b83){return function(_0x41f234){if(_0x41f234){return _0x41f234[_0x8047('0x20')]()['then'](function(){_0x1764a2[_0x8047('0x1b')](0xcc)[_0x8047('0x15')]();});}};}function handleEntityNotFound(_0x3db68e,_0x289cc8){return function(_0x5c2a05){if(!_0x5c2a05){_0x3db68e[_0x8047('0x14')](0x194);}return _0x5c2a05;};}function handleError(_0x4d4036,_0x2ade2a){_0x2ade2a=_0x2ade2a||0x1f4;return function(_0x391a28){logger[_0x8047('0x21')](_0x391a28['stack']);if(_0x391a28[_0x8047('0x22')]){delete _0x391a28[_0x8047('0x22')];}_0x4d4036[_0x8047('0x1b')](_0x2ade2a)[_0x8047('0x23')](_0x391a28);};}exports[_0x8047('0x24')]=function(_0x58482c,_0x1654ea){var _0xbfe0e5={},_0x488368={},_0x345e4b={'count':0x0,'rows':[]};var _0x2a8000=_[_0x8047('0x25')](db[_0x8047('0x26')][_0x8047('0x27')],function(_0x7a1d7e){return{'name':_0x7a1d7e[_0x8047('0x28')],'type':_0x7a1d7e[_0x8047('0x29')]['key']};});_0x488368[_0x8047('0x2a')]=_[_0x8047('0x25')](_0x2a8000,_0x8047('0x22'));_0x488368['query']=_[_0x8047('0x2b')](_0x58482c[_0x8047('0x2c')]);_0x488368[_0x8047('0x2d')]=_[_0x8047('0x2e')](_0x488368['model'],_0x488368[_0x8047('0x2c')]);_0xbfe0e5[_0x8047('0x2f')]=_[_0x8047('0x2e')](_0x488368['model'],qs['fields'](_0x58482c[_0x8047('0x2c')]['fields']));_0xbfe0e5[_0x8047('0x2f')]=_0xbfe0e5[_0x8047('0x2f')][_0x8047('0x30')]?_0xbfe0e5[_0x8047('0x2f')]:_0x488368[_0x8047('0x2a')];if(!_0x58482c[_0x8047('0x2c')][_0x8047('0x31')](_0x8047('0x32'))){_0xbfe0e5['limit']=qs[_0x8047('0x19')](_0x58482c['query'][_0x8047('0x19')]);_0xbfe0e5[_0x8047('0x17')]=qs[_0x8047('0x17')](_0x58482c[_0x8047('0x2c')][_0x8047('0x17')]);}_0xbfe0e5[_0x8047('0x33')]=qs[_0x8047('0x34')](_0x58482c['query'][_0x8047('0x34')]);_0xbfe0e5[_0x8047('0x35')]=qs[_0x8047('0x2d')](_[_0x8047('0x36')](_0x58482c[_0x8047('0x2c')],_0x488368[_0x8047('0x2d')]),_0x2a8000);if(_0x58482c[_0x8047('0x2c')][_0x8047('0x37')]){_0xbfe0e5[_0x8047('0x35')]=_[_0x8047('0x38')](_0xbfe0e5[_0x8047('0x35')],{'$or':_[_0x8047('0x25')](_0x2a8000,function(_0x5f0434){if(_0x5f0434[_0x8047('0x29')]!==_0x8047('0x39')){var _0xb95dca={};_0xb95dca[_0x5f0434[_0x8047('0x22')]]={'$like':'%'+_0x58482c['query'][_0x8047('0x37')]+'%'};return _0xb95dca;}})});}_0xbfe0e5=_[_0x8047('0x38')]({},_0xbfe0e5,_0x58482c['options']);var _0x1490d1={'where':_0xbfe0e5[_0x8047('0x35')]};return db[_0x8047('0x26')][_0x8047('0x1a')](_0x1490d1)[_0x8047('0x3a')](function(_0x375496){_0x345e4b[_0x8047('0x1a')]=_0x375496;if(_0x58482c[_0x8047('0x2c')][_0x8047('0x3b')]){_0xbfe0e5[_0x8047('0x3c')]=[{'all':!![]}];}return db[_0x8047('0x26')][_0x8047('0x3d')](_0xbfe0e5);})[_0x8047('0x3a')](function(_0x423c54){_0x345e4b[_0x8047('0x3e')]=_0x423c54;return _0x345e4b;})[_0x8047('0x3a')](respondWithFilteredResult(_0x1654ea,_0xbfe0e5))['catch'](handleError(_0x1654ea,null));};exports[_0x8047('0x3f')]=function(_0x52b8cf,_0x420e9b){var _0x3ec6d2={'raw':!![],'where':{'id':_0x52b8cf[_0x8047('0x40')]['id']}},_0x51b60f={};_0x51b60f[_0x8047('0x2a')]=_['keys'](db[_0x8047('0x26')]['rawAttributes']);_0x51b60f[_0x8047('0x2c')]=_[_0x8047('0x2b')](_0x52b8cf[_0x8047('0x2c')]);_0x51b60f['filters']=_[_0x8047('0x2e')](_0x51b60f[_0x8047('0x2a')],_0x51b60f[_0x8047('0x2c')]);_0x3ec6d2[_0x8047('0x2f')]=_['intersection'](_0x51b60f['model'],qs[_0x8047('0x41')](_0x52b8cf[_0x8047('0x2c')][_0x8047('0x41')]));_0x3ec6d2[_0x8047('0x2f')]=_0x3ec6d2['attributes'][_0x8047('0x30')]?_0x3ec6d2['attributes']:_0x51b60f[_0x8047('0x2a')];if(_0x52b8cf[_0x8047('0x2c')]['includeAll']){_0x3ec6d2[_0x8047('0x3c')]=[{'all':!![]}];}_0x3ec6d2=_[_0x8047('0x38')]({},_0x3ec6d2,_0x52b8cf[_0x8047('0x42')]);return db[_0x8047('0x26')][_0x8047('0x43')](_0x3ec6d2)[_0x8047('0x3a')](handleEntityNotFound(_0x420e9b,null))[_0x8047('0x3a')](respondWithResult(_0x420e9b,null))[_0x8047('0x44')](handleError(_0x420e9b,null));};exports[_0x8047('0x45')]=function(_0x2fd562,_0x136ac5){return db['VoiceQueuesLog'][_0x8047('0x45')](_0x2fd562['body'],{})[_0x8047('0x3a')](respondWithResult(_0x136ac5,0xc9))[_0x8047('0x44')](handleError(_0x136ac5,null));};exports[_0x8047('0x1f')]=function(_0x2cb805,_0xf56165){if(_0x2cb805[_0x8047('0x46')]['id']){delete _0x2cb805[_0x8047('0x46')]['id'];}return db['VoiceQueuesLog'][_0x8047('0x43')]({'where':{'id':_0x2cb805[_0x8047('0x40')]['id']}})['then'](handleEntityNotFound(_0xf56165,null))[_0x8047('0x3a')](saveUpdates(_0x2cb805[_0x8047('0x46')],null))['then'](respondWithResult(_0xf56165,null))['catch'](handleError(_0xf56165,null));};exports[_0x8047('0x20')]=function(_0x40fbf2,_0x4dba38){return db[_0x8047('0x26')][_0x8047('0x43')]({'where':{'id':_0x40fbf2[_0x8047('0x40')]['id']}})['then'](handleEntityNotFound(_0x4dba38,null))[_0x8047('0x3a')](removeEntity(_0x4dba38,null))[_0x8047('0x44')](handleError(_0x4dba38,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xafab=['path','rimraf','../../config/environment','exports','define','VoiceQueuesLog','voice_queues_log','event_dtm','event','dtm','lodash','util','moment','request-promise'];(function(_0x8abd64,_0x539570){var _0xd2511e=function(_0x9fef7d){while(--_0x9fef7d){_0x8abd64['push'](_0x8abd64['shift']());}};_0xd2511e(++_0x539570);}(_0xafab,0x122));var _0xbafa=function(_0x380e3a,_0x85748a){_0x380e3a=_0x380e3a-0x0;var _0x1cdc3e=_0xafab[_0x380e3a];return _0x1cdc3e;};'use strict';var _=require(_0xbafa('0x0'));var util=require(_0xbafa('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0xbafa('0x2'));var BPromise=require('bluebird');var rp=require(_0xbafa('0x3'));var fs=require('fs');var path=require(_0xbafa('0x4'));var rimraf=require(_0xbafa('0x5'));var config=require(_0xbafa('0x6'));var attributes=require('./voiceQueuesLog.attributes');module[_0xbafa('0x7')]=function(_0x43a771,_0x3d22dc){return _0x43a771[_0xbafa('0x8')](_0xbafa('0x9'),attributes,{'tableName':_0xbafa('0xa'),'paranoid':![],'indexes':[{'name':_0xbafa('0xb'),'fields':[_0xbafa('0xc'),_0xbafa('0xd')]}],'timestamps':![]});};
\ No newline at end of file
+var _0x12aa=['bluebird','path','rimraf','./voiceQueuesLog.attributes','exports','define','VoiceQueuesLog','voice_queues_log','event','dtm','lodash','util','api','moment'];(function(_0x2c366f,_0x1bd4f8){var _0x180634=function(_0x5dcd2c){while(--_0x5dcd2c){_0x2c366f['push'](_0x2c366f['shift']());}};_0x180634(++_0x1bd4f8);}(_0x12aa,0x1a0));var _0xa12a=function(_0x4b5dbb,_0x3773f2){_0x4b5dbb=_0x4b5dbb-0x0;var _0x4282e8=_0x12aa[_0x4b5dbb];return _0x4282e8;};'use strict';var _=require(_0xa12a('0x0'));var util=require(_0xa12a('0x1'));var logger=require('../../config/logger')(_0xa12a('0x2'));var moment=require(_0xa12a('0x3'));var BPromise=require(_0xa12a('0x4'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xa12a('0x5'));var rimraf=require(_0xa12a('0x6'));var config=require('../../config/environment');var attributes=require(_0xa12a('0x7'));module[_0xa12a('0x8')]=function(_0x318793,_0x50d86c){return _0x318793[_0xa12a('0x9')](_0xa12a('0xa'),attributes,{'tableName':_0xa12a('0xb'),'paranoid':![],'indexes':[{'name':'event_dtm','fields':[_0xa12a('0xc'),_0xa12a('0xd')]}],'timestamps':![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe3c8=['debug','VoiceQueuesLog,\x20%s,\x20%s,\x20%s','stringify','error','message','lodash','util','moment','bluebird','randomstring','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','request','info','VoiceQueuesLog,\x20%s,\x20%s','request\x20sent'];(function(_0x14827d,_0x3298fd){var _0x520bb4=function(_0x37a0df){while(--_0x37a0df){_0x14827d['push'](_0x14827d['shift']());}};_0x520bb4(++_0x3298fd);}(_0xe3c8,0x145));var _0x8e3c=function(_0x40487e,_0xeecfb4){_0x40487e=_0x40487e-0x0;var _0xa88e49=_0xe3c8[_0x40487e];return _0xa88e49;};'use strict';var _=require(_0x8e3c('0x0'));var util=require(_0x8e3c('0x1'));var moment=require(_0x8e3c('0x2'));var BPromise=require(_0x8e3c('0x3'));var rs=require(_0x8e3c('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x8e3c('0x5'));var logger=require('../../config/logger')(_0x8e3c('0x6'));var config=require(_0x8e3c('0x7'));var jayson=require(_0x8e3c('0x8'));var client=jayson[_0x8e3c('0x9')][_0x8e3c('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x5c1a19,_0x3c6d0b,_0x29cdba){return new BPromise(function(_0x3d3a97,_0xadc123){return client[_0x8e3c('0xb')](_0x5c1a19,_0x29cdba)['then'](function(_0x5ee141){logger[_0x8e3c('0xc')](_0x8e3c('0xd'),_0x3c6d0b,_0x8e3c('0xe'));logger[_0x8e3c('0xf')](_0x8e3c('0x10'),_0x3c6d0b,_0x8e3c('0xe'),JSON[_0x8e3c('0x11')](_0x5ee141));if(_0x5ee141['error']){if(_0x5ee141[_0x8e3c('0x12')]['code']===0x1f4){logger[_0x8e3c('0x12')](_0x8e3c('0xd'),_0x3c6d0b,_0x5ee141['error'][_0x8e3c('0x13')]);return _0xadc123(_0x5ee141['error']['message']);}logger[_0x8e3c('0x12')](_0x8e3c('0xd'),_0x3c6d0b,_0x5ee141[_0x8e3c('0x12')]['message']);return _0x3d3a97(_0x5ee141[_0x8e3c('0x12')][_0x8e3c('0x13')]);}else{logger[_0x8e3c('0xc')](_0x8e3c('0xd'),_0x3c6d0b,'request\x20sent');_0x3d3a97(_0x5ee141['result'][_0x8e3c('0x13')]);}})['catch'](function(_0x18a073){logger[_0x8e3c('0x12')](_0x8e3c('0xd'),_0x3c6d0b,_0x18a073);_0xadc123(_0x18a073);});});}
\ No newline at end of file
+var _0xb223=['stringify','error','code','message','info','result','catch','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','request','VoiceQueuesLog,\x20%s,\x20%s','request\x20sent','debug','VoiceQueuesLog,\x20%s,\x20%s,\x20%s'];(function(_0x1509c6,_0x33e7fc){var _0x1cd714=function(_0x1c23d7){while(--_0x1c23d7){_0x1509c6['push'](_0x1509c6['shift']());}};_0x1cd714(++_0x33e7fc);}(_0xb223,0x157));var _0x3b22=function(_0x2f465e,_0x138cd4){_0x2f465e=_0x2f465e-0x0;var _0x1c1bdb=_0xb223[_0x2f465e];return _0x1c1bdb;};'use strict';var _=require(_0x3b22('0x0'));var util=require(_0x3b22('0x1'));var moment=require('moment');var BPromise=require(_0x3b22('0x2'));var rs=require(_0x3b22('0x3'));var fs=require('fs');var Redis=require(_0x3b22('0x4'));var db=require(_0x3b22('0x5'))['db'];var utils=require(_0x3b22('0x6'));var logger=require(_0x3b22('0x7'))(_0x3b22('0x8'));var config=require(_0x3b22('0x9'));var jayson=require(_0x3b22('0xa'));var client=jayson[_0x3b22('0xb')]['http']({'port':0x232a});function respondWithRpcPromise(_0x2c82f8,_0x2f8c9d,_0x134763){return new BPromise(function(_0x846ed,_0x4511fe){return client[_0x3b22('0xc')](_0x2c82f8,_0x134763)['then'](function(_0x36f113){logger['info'](_0x3b22('0xd'),_0x2f8c9d,_0x3b22('0xe'));logger[_0x3b22('0xf')](_0x3b22('0x10'),_0x2f8c9d,'request\x20sent',JSON[_0x3b22('0x11')](_0x36f113));if(_0x36f113['error']){if(_0x36f113[_0x3b22('0x12')][_0x3b22('0x13')]===0x1f4){logger[_0x3b22('0x12')](_0x3b22('0xd'),_0x2f8c9d,_0x36f113['error']['message']);return _0x4511fe(_0x36f113['error'][_0x3b22('0x14')]);}logger[_0x3b22('0x12')](_0x3b22('0xd'),_0x2f8c9d,_0x36f113[_0x3b22('0x12')][_0x3b22('0x14')]);return _0x846ed(_0x36f113['error']['message']);}else{logger[_0x3b22('0x15')](_0x3b22('0xd'),_0x2f8c9d,'request\x20sent');_0x846ed(_0x36f113[_0x3b22('0x16')][_0x3b22('0x14')]);}})[_0x3b22('0x17')](function(_0x1f264e){logger['error'](_0x3b22('0xd'),_0x2f8c9d,_0x1f264e);_0x4511fe(_0x1f264e);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2489=['../../components/auth/service','../../config/environment','./voiceRecording.controller','get','isAuthenticated','index','describe','/:id','show','/:id/download','/:id/downloads','/:id/transcribe','downloadTranscribe','post','destroy','exports','util','path','connect-timeout','express','Router'];(function(_0x1cee6a,_0x2f6a18){var _0x37c39e=function(_0x5abc3f){while(--_0x5abc3f){_0x1cee6a['push'](_0x1cee6a['shift']());}};_0x37c39e(++_0x2f6a18);}(_0x2489,0x64));var _0x9248=function(_0x30a98e,_0x178b53){_0x30a98e=_0x30a98e-0x0;var _0x553e3c=_0x2489[_0x30a98e];return _0x553e3c;};'use strict';var multer=require('multer');var util=require(_0x9248('0x0'));var path=require(_0x9248('0x1'));var timeout=require(_0x9248('0x2'));var express=require(_0x9248('0x3'));var router=express[_0x9248('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0x9248('0x5'));var interaction=require('../../components/interaction/service');var config=require(_0x9248('0x6'));var controller=require(_0x9248('0x7'));router[_0x9248('0x8')]('/',auth[_0x9248('0x9')](),controller[_0x9248('0xa')]);router[_0x9248('0x8')]('/describe',auth[_0x9248('0x9')](),controller[_0x9248('0xb')]);router[_0x9248('0x8')](_0x9248('0xc'),auth[_0x9248('0x9')](),controller[_0x9248('0xd')]);router[_0x9248('0x8')](_0x9248('0xe'),auth[_0x9248('0x9')](),controller['download']);router[_0x9248('0x8')](_0x9248('0xf'),controller['downloads']);router[_0x9248('0x8')](_0x9248('0x10'),auth['isAuthenticated'](),controller[_0x9248('0x11')]);router[_0x9248('0x12')]('/',auth[_0x9248('0x9')](),controller['create']);router[_0x9248('0x12')](_0x9248('0x10'),auth['isAuthenticated'](),controller['runTranscribe']);router['put']('/:id',auth[_0x9248('0x9')](),controller['update']);router['delete']('/:id',auth[_0x9248('0x9')](),controller[_0x9248('0x13')]);module[_0x9248('0x14')]=router;
\ No newline at end of file
+var _0xf763=['express','fs-extra','../../components/auth/service','../../components/interaction/service','get','index','describe','/:id','isAuthenticated','show','/:id/download','download','/:id/downloads','downloads','post','/:id/transcribe','runTranscribe','update','delete','destroy','exports','multer','util','path'];(function(_0x5a3712,_0x306b4a){var _0x1a3964=function(_0x1f213b){while(--_0x1f213b){_0x5a3712['push'](_0x5a3712['shift']());}};_0x1a3964(++_0x306b4a);}(_0xf763,0x1dd));var _0x3f76=function(_0x7082f6,_0x4a439f){_0x7082f6=_0x7082f6-0x0;var _0xe833c6=_0xf763[_0x7082f6];return _0xe833c6;};'use strict';var multer=require(_0x3f76('0x0'));var util=require(_0x3f76('0x1'));var path=require(_0x3f76('0x2'));var timeout=require('connect-timeout');var express=require(_0x3f76('0x3'));var router=express['Router']();var fs_extra=require(_0x3f76('0x4'));var auth=require(_0x3f76('0x5'));var interaction=require(_0x3f76('0x6'));var config=require('../../config/environment');var controller=require('./voiceRecording.controller');router[_0x3f76('0x7')]('/',auth['isAuthenticated'](),controller[_0x3f76('0x8')]);router[_0x3f76('0x7')]('/describe',auth['isAuthenticated'](),controller[_0x3f76('0x9')]);router['get'](_0x3f76('0xa'),auth[_0x3f76('0xb')](),controller[_0x3f76('0xc')]);router[_0x3f76('0x7')](_0x3f76('0xd'),auth[_0x3f76('0xb')](),controller[_0x3f76('0xe')]);router[_0x3f76('0x7')](_0x3f76('0xf'),controller[_0x3f76('0x10')]);router[_0x3f76('0x7')]('/:id/transcribe',auth[_0x3f76('0xb')](),controller['downloadTranscribe']);router['post']('/',auth[_0x3f76('0xb')](),controller['create']);router[_0x3f76('0x11')](_0x3f76('0x12'),auth[_0x3f76('0xb')](),controller[_0x3f76('0x13')]);router['put']('/:id',auth[_0x3f76('0xb')](),controller[_0x3f76('0x14')]);router[_0x3f76('0x15')](_0x3f76('0xa'),auth['isAuthenticated'](),controller[_0x3f76('0x16')]);module[_0x3f76('0x17')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['DATE','updatedAt','toString','sequelize','moment','path','getDataValue','extname','value','STRING','setDataValue','channel','TEXT','NEW','FLOAT','BOOLEAN','format','MM-DD-YYYY\x20HH:mm'];(function(_0x3ab9ee,_0x4a74b8){var _0x82ee88=function(_0x6ccc7e){while(--_0x6ccc7e){_0x3ab9ee['push'](_0x3ab9ee['shift']());}};_0x82ee88(++_0x4a74b8);}(_0xa9e0,0x123));var _0x0a9e=function(_0x3e112d,_0x2bb132){_0x3e112d=_0x3e112d-0x0;var _0x531c31=_0xa9e0[_0x3e112d];return _0x531c31;};'use strict';var Sequelize=require(_0x0a9e('0x0'));var moment=require(_0x0a9e('0x1'));var path=require(_0x0a9e('0x2'));module['exports']={'format':{'type':Sequelize['VIRTUAL'],'get':function(){return this[_0x0a9e('0x3')]('value')?path[_0x0a9e('0x4')](this[_0x0a9e('0x3')](_0x0a9e('0x5'))):undefined;}},'uniqueid':{'type':Sequelize[_0x0a9e('0x6')]},'channel':{'type':Sequelize[_0x0a9e('0x6')],'set':function(_0x57b080){if(_0x57b080){this[_0x0a9e('0x7')](_0x0a9e('0x8'),_0x57b080);this[_0x0a9e('0x7')]('membername',_0x57b080['split'](/\/|-/)[0x1]);}}},'membername':{'type':Sequelize[_0x0a9e('0x6')]},'calleridnum':{'type':Sequelize['STRING']},'calleridname':{'type':Sequelize['STRING']},'connectedlinenum':{'type':Sequelize[_0x0a9e('0x6')]},'connectedlinename':{'type':Sequelize[_0x0a9e('0x6')]},'accountcode':{'type':Sequelize[_0x0a9e('0x6')]},'context':{'type':Sequelize[_0x0a9e('0x6')]},'exten':{'type':Sequelize[_0x0a9e('0x6')]},'value':{'type':Sequelize[_0x0a9e('0x6')]},'type':{'type':Sequelize['STRING']},'rating':{'type':Sequelize['INTEGER'],'validate':{'max':0x5,'min':0x0}},'queue':{'type':Sequelize['STRING']},'userDisposition':{'type':Sequelize['STRING']},'userSecondDisposition':{'type':Sequelize[_0x0a9e('0x6')]},'userThirdDisposition':{'type':Sequelize[_0x0a9e('0x6')]},'location':{'type':Sequelize[_0x0a9e('0x9')]},'transcribeName':{'type':Sequelize[_0x0a9e('0x6')]},'transcribeStatus':{'type':Sequelize[_0x0a9e('0x6')],'defaultValue':_0x0a9e('0xa')},'fileUri':{'type':Sequelize['TEXT']},'fileText':{'type':Sequelize[_0x0a9e('0x9')]},'failureReason':{'type':Sequelize[_0x0a9e('0x9')]},'sentiment':{'type':Sequelize[_0x0a9e('0x6')]},'sPositive':{'type':Sequelize[_0x0a9e('0xb')]},'sNegative':{'type':Sequelize[_0x0a9e('0xb')]},'sNeutral':{'type':Sequelize[_0x0a9e('0xb')]},'sMixed':{'type':Sequelize['FLOAT']},'tempSentiment':{'type':Sequelize[_0x0a9e('0xc')],'defaultValue':![]},'createdAt':{'type':Sequelize['DATE'],'get':function(){return moment(this[_0x0a9e('0x3')]('createdAt'))[_0x0a9e('0xd')](_0x0a9e('0xe'))['toString']();}},'updatedAt':{'type':Sequelize[_0x0a9e('0xf')],'get':function(){return moment(this['getDataValue'](_0x0a9e('0x10')))[_0x0a9e('0xd')](_0x0a9e('0xe'))[_0x0a9e('0x11')]();}}};
\ No newline at end of file
+var _0xa9e0=['DATE','updatedAt','toString','sequelize','moment','path','getDataValue','extname','value','STRING','setDataValue','channel','TEXT','NEW','FLOAT','BOOLEAN','format','MM-DD-YYYY\x20HH:mm'];(function(_0x1ccdf7,_0x215d5a){var _0x52a0ae=function(_0x40324a){while(--_0x40324a){_0x1ccdf7['push'](_0x1ccdf7['shift']());}};_0x52a0ae(++_0x215d5a);}(_0xa9e0,0x123));var _0x0a9e=function(_0x32d457,_0x1a39c9){_0x32d457=_0x32d457-0x0;var _0x338386=_0xa9e0[_0x32d457];return _0x338386;};'use strict';var Sequelize=require(_0x0a9e('0x0'));var moment=require(_0x0a9e('0x1'));var path=require(_0x0a9e('0x2'));module['exports']={'format':{'type':Sequelize['VIRTUAL'],'get':function(){return this[_0x0a9e('0x3')]('value')?path[_0x0a9e('0x4')](this[_0x0a9e('0x3')](_0x0a9e('0x5'))):undefined;}},'uniqueid':{'type':Sequelize[_0x0a9e('0x6')]},'channel':{'type':Sequelize[_0x0a9e('0x6')],'set':function(_0x57b080){if(_0x57b080){this[_0x0a9e('0x7')](_0x0a9e('0x8'),_0x57b080);this[_0x0a9e('0x7')]('membername',_0x57b080['split'](/\/|-/)[0x1]);}}},'membername':{'type':Sequelize[_0x0a9e('0x6')]},'calleridnum':{'type':Sequelize['STRING']},'calleridname':{'type':Sequelize['STRING']},'connectedlinenum':{'type':Sequelize[_0x0a9e('0x6')]},'connectedlinename':{'type':Sequelize[_0x0a9e('0x6')]},'accountcode':{'type':Sequelize[_0x0a9e('0x6')]},'context':{'type':Sequelize[_0x0a9e('0x6')]},'exten':{'type':Sequelize[_0x0a9e('0x6')]},'value':{'type':Sequelize[_0x0a9e('0x6')]},'type':{'type':Sequelize['STRING']},'rating':{'type':Sequelize['INTEGER'],'validate':{'max':0x5,'min':0x0}},'queue':{'type':Sequelize['STRING']},'userDisposition':{'type':Sequelize['STRING']},'userSecondDisposition':{'type':Sequelize[_0x0a9e('0x6')]},'userThirdDisposition':{'type':Sequelize[_0x0a9e('0x6')]},'location':{'type':Sequelize[_0x0a9e('0x9')]},'transcribeName':{'type':Sequelize[_0x0a9e('0x6')]},'transcribeStatus':{'type':Sequelize[_0x0a9e('0x6')],'defaultValue':_0x0a9e('0xa')},'fileUri':{'type':Sequelize['TEXT']},'fileText':{'type':Sequelize[_0x0a9e('0x9')]},'failureReason':{'type':Sequelize[_0x0a9e('0x9')]},'sentiment':{'type':Sequelize[_0x0a9e('0x6')]},'sPositive':{'type':Sequelize[_0x0a9e('0xb')]},'sNegative':{'type':Sequelize[_0x0a9e('0xb')]},'sNeutral':{'type':Sequelize[_0x0a9e('0xb')]},'sMixed':{'type':Sequelize['FLOAT']},'tempSentiment':{'type':Sequelize[_0x0a9e('0xc')],'defaultValue':![]},'createdAt':{'type':Sequelize['DATE'],'get':function(){return moment(this[_0x0a9e('0x3')]('createdAt'))[_0x0a9e('0xd')](_0x0a9e('0xe'))['toString']();}},'updatedAt':{'type':Sequelize[_0x0a9e('0xf')],'get':function(){return moment(this['getDataValue'](_0x0a9e('0x10')))[_0x0a9e('0xd')](_0x0a9e('0xe'))[_0x0a9e('0x11')]();}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc1e3=['isNil','Entity\x20not\x20found','info','cancellazione\x20fisica\x20documento\x20%s','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','File:\x20\x22','unlinkSync','listBuckets','createBucket','TranscribeService','[RUNTRANSCRIPT][%d]\x20Starting\x20voice\x20recording\x20upload\x20in\x20bucket\x20%s','basename','readFileSync','[RUNTRANSCRIPT][%d]\x20Voice\x20recording\x20uploaded\x20in\x20bucket\x20%s\x20(%s)','bucket','Bucket','Location','[RUNTRANSCRIPT][%d]\x20Sending\x20transcribe\x20request','[RUNTRANSCRIPT][%d]\x20Transcription\x20job\x20%s\x20created','TranscriptionJob','TranscriptionJobName','transcribeStatus','TranscriptionJobStatus','Sequelize','ValidationError','Voice\x20Recording\x20not\x20found','findOne','transcribe','transcribeAccountId','language','Transcribe\x20not\x20configured','runSentiment','sentiment','sentimentRegion','CloudProvider','Cloud\x20Provider\x20not\x20available','data1','data2','Cloud\x20Provider\x20not\x20configured','Buckets','Name','transcribeRegion','[RUNTRANSCRIPT][%d]\x20Bucket\x20%s\x20available','NEW','[RUNTRANSCRIPT][%d]\x20Transcript\x20action\x20already\x20requested','tempSentiment','updateAttributes','writeFile','downloadTranscribe','fileText','/server/files/transcribes/transcribe_','.txt','Transcript\x20not\x20available','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','mustache','util','path','sox','fs-extra','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','sendStatus','status','end','json','offset','undefined','count','set','Content-Range','save','update','destroy','then','error','stack','name','send','index','map','VoiceRecording','rawAttributes','fieldName','differenceBy','format','keys','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','filter','merge','type','VIRTUAL','options','include','findAll','catch','params','includeAll','find','create','body','describe','download','../../components/encryptor','uniqueid','value','%s.cypher','existsSync','decryptFile','secrets','filename','unlink','VoiceRecording\x20not\x20found','Not\x20found','downloads','sequelize','MD5','token','push','$and','recording','extname'];(function(_0x60d079,_0x338d19){var _0x299ab6=function(_0x2ea759){while(--_0x2ea759){_0x60d079['push'](_0x60d079['shift']());}};_0x299ab6(++_0x338d19);}(_0xc1e3,0xcb));var _0x3c1e=function(_0x4adb2e,_0x193181){_0x4adb2e=_0x4adb2e-0x0;var _0x48215d=_0xc1e3[_0x4adb2e];return _0x48215d;};'use strict';var emlformat=require(_0x3c1e('0x0'));var rimraf=require(_0x3c1e('0x1'));var zipdir=require(_0x3c1e('0x2'));var jsonpatch=require(_0x3c1e('0x3'));var rp=require(_0x3c1e('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x3c1e('0x5'));var util=require(_0x3c1e('0x6'));var path=require(_0x3c1e('0x7'));var sox=require(_0x3c1e('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x3c1e('0x9'));var _=require(_0x3c1e('0xa'));var squel=require(_0x3c1e('0xb'));var crypto=require(_0x3c1e('0xc'));var jsforce=require(_0x3c1e('0xd'));var deskjs=require(_0x3c1e('0xe'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x3c1e('0xf'));var AWS=require('aws-sdk');var uuidv4=require('uuid/v4');var Redis=require(_0x3c1e('0x10'));var authService=require(_0x3c1e('0x11'));var qs=require(_0x3c1e('0x12'));var as=require(_0x3c1e('0x13'));var hardwareService=require(_0x3c1e('0x14'));var logger=require('../../config/logger')(_0x3c1e('0x15'));var utils=require(_0x3c1e('0x16'));var config=require(_0x3c1e('0x17'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x1e96d0,_0x54330f){_0x54330f=_0x54330f||0xcc;return function(_0x470da0){if(_0x470da0){return _0x1e96d0[_0x3c1e('0x18')](_0x54330f);}return _0x1e96d0[_0x3c1e('0x19')](_0x54330f)[_0x3c1e('0x1a')]();};}function respondWithResult(_0x582ecc,_0x3dc4f9){_0x3dc4f9=_0x3dc4f9||0xc8;return function(_0x210679){if(_0x210679){return _0x582ecc['status'](_0x3dc4f9)[_0x3c1e('0x1b')](_0x210679);}};}function respondWithFilteredResult(_0x422d6a,_0x3ef8b1){return function(_0x4548cf){if(_0x4548cf){var _0x4920e4=typeof _0x3ef8b1[_0x3c1e('0x1c')]===_0x3c1e('0x1d')&&typeof _0x3ef8b1['limit']===_0x3c1e('0x1d');var _0x63f60f=_0x4548cf[_0x3c1e('0x1e')];var _0x586fc3=_0x4920e4?0x0:_0x3ef8b1[_0x3c1e('0x1c')];var _0x332e08=_0x4920e4?_0x4548cf[_0x3c1e('0x1e')]:_0x3ef8b1[_0x3c1e('0x1c')]+_0x3ef8b1['limit'];var _0x3b3157;if(_0x332e08>=_0x63f60f){_0x332e08=_0x63f60f;_0x3b3157=0xc8;}else{_0x3b3157=0xce;}_0x422d6a[_0x3c1e('0x19')](_0x3b3157);return _0x422d6a[_0x3c1e('0x1f')](_0x3c1e('0x20'),_0x586fc3+'-'+_0x332e08+'/'+_0x63f60f)[_0x3c1e('0x1b')](_0x4548cf);}return null;};}function patchUpdates(_0x226a9e){return function(_0x5dbbe0){try{jsonpatch['apply'](_0x5dbbe0,_0x226a9e,!![]);}catch(_0x51e85a){return BPromise['reject'](_0x51e85a);}return _0x5dbbe0[_0x3c1e('0x21')]();};}function saveUpdates(_0x208cb9,_0x7e4920){return function(_0x5e39d0){if(_0x5e39d0){return _0x5e39d0[_0x3c1e('0x22')](_0x208cb9)['then'](function(_0x1bcd36){return _0x1bcd36;});}return null;};}function removeEntity(_0x22105b,_0x2303c3){return function(_0x32d70a){if(_0x32d70a){return _0x32d70a[_0x3c1e('0x23')]()[_0x3c1e('0x24')](function(){_0x22105b[_0x3c1e('0x19')](0xcc)[_0x3c1e('0x1a')]();});}};}function handleEntityNotFound(_0x357653,_0x5a5d42){return function(_0x3d1d04){if(!_0x3d1d04){_0x357653['sendStatus'](0x194);}return _0x3d1d04;};}function handleError(_0x1a9a6a,_0x1eb315){_0x1eb315=_0x1eb315||0x1f4;return function(_0xcde3a0){logger[_0x3c1e('0x25')](_0xcde3a0[_0x3c1e('0x26')]);if(_0xcde3a0[_0x3c1e('0x27')]){delete _0xcde3a0[_0x3c1e('0x27')];}_0x1a9a6a['status'](_0x1eb315)[_0x3c1e('0x28')](_0xcde3a0);};}exports[_0x3c1e('0x29')]=function(_0x24f989,_0x1781c1){var _0x98e204={},_0x2a8c4e={},_0x24ccd4={'count':0x0,'rows':[]};var _0x1f24c6=_[_0x3c1e('0x2a')](db[_0x3c1e('0x2b')][_0x3c1e('0x2c')],function(_0xf520d9){return{'name':_0xf520d9[_0x3c1e('0x2d')],'type':_0xf520d9['type']['key']};});_0x2a8c4e['model']=_[_0x3c1e('0x2e')](_['map'](_0x1f24c6,_0x3c1e('0x27')),[_0x3c1e('0x2f')]);_0x2a8c4e['query']=_[_0x3c1e('0x30')](_0x24f989[_0x3c1e('0x31')]);_0x2a8c4e[_0x3c1e('0x32')]=_[_0x3c1e('0x33')](_0x2a8c4e[_0x3c1e('0x34')],_0x2a8c4e[_0x3c1e('0x31')]);_0x98e204[_0x3c1e('0x35')]=_[_0x3c1e('0x33')](_0x2a8c4e[_0x3c1e('0x34')],qs['fields'](_0x24f989[_0x3c1e('0x31')][_0x3c1e('0x36')]));_0x98e204[_0x3c1e('0x35')]=_0x98e204[_0x3c1e('0x35')][_0x3c1e('0x37')]?_0x98e204[_0x3c1e('0x35')]:_0x2a8c4e['model'];if(!_0x24f989['query'][_0x3c1e('0x38')](_0x3c1e('0x39'))){_0x98e204[_0x3c1e('0x3a')]=qs[_0x3c1e('0x3a')](_0x24f989[_0x3c1e('0x31')][_0x3c1e('0x3a')]);_0x98e204[_0x3c1e('0x1c')]=qs['offset'](_0x24f989[_0x3c1e('0x31')][_0x3c1e('0x1c')]);}_0x98e204[_0x3c1e('0x3b')]=qs[_0x3c1e('0x3c')](_0x24f989[_0x3c1e('0x31')][_0x3c1e('0x3c')]);_0x98e204[_0x3c1e('0x3d')]=qs[_0x3c1e('0x32')](_[_0x3c1e('0x3e')](_0x24f989[_0x3c1e('0x31')],_0x2a8c4e['filters']),_0x1f24c6);if(_0x24f989['query'][_0x3c1e('0x3f')]){_0x98e204[_0x3c1e('0x3d')]=_[_0x3c1e('0x40')](_0x98e204['where'],{'$or':_['map'](_0x1f24c6,function(_0x1499f9){if(_0x1499f9[_0x3c1e('0x41')]!==_0x3c1e('0x42')){var _0x4deb10={};_0x4deb10[_0x1499f9[_0x3c1e('0x27')]]={'$like':'%'+_0x24f989[_0x3c1e('0x31')]['filter']+'%'};return _0x4deb10;}})});}_0x98e204=_['merge']({},_0x98e204,_0x24f989[_0x3c1e('0x43')]);var _0x14b3d8={'where':_0x98e204[_0x3c1e('0x3d')]};return db[_0x3c1e('0x2b')][_0x3c1e('0x1e')](_0x14b3d8)[_0x3c1e('0x24')](function(_0x33e430){_0x24ccd4['count']=_0x33e430;if(_0x24f989[_0x3c1e('0x31')]['includeAll']){_0x98e204[_0x3c1e('0x44')]=[{'all':!![]}];}return db['VoiceRecording'][_0x3c1e('0x45')](_0x98e204);})[_0x3c1e('0x24')](function(_0x2cd819){_0x24ccd4['rows']=_0x2cd819;return _0x24ccd4;})[_0x3c1e('0x24')](respondWithFilteredResult(_0x1781c1,_0x98e204))[_0x3c1e('0x46')](handleError(_0x1781c1,null));};exports['show']=function(_0x1642dc,_0x1c4e7f){var _0x8a3115={'raw':![],'where':{'id':_0x1642dc[_0x3c1e('0x47')]['id']}},_0x5e1a8d={};_0x5e1a8d[_0x3c1e('0x34')]=_[_0x3c1e('0x30')](db[_0x3c1e('0x2b')][_0x3c1e('0x2c')]);_0x5e1a8d[_0x3c1e('0x31')]=_[_0x3c1e('0x30')](_0x1642dc['query']);_0x5e1a8d[_0x3c1e('0x32')]=_[_0x3c1e('0x33')](_0x5e1a8d[_0x3c1e('0x34')],_0x5e1a8d[_0x3c1e('0x31')]);_0x8a3115[_0x3c1e('0x35')]=_[_0x3c1e('0x33')](_0x5e1a8d[_0x3c1e('0x34')],qs[_0x3c1e('0x36')](_0x1642dc[_0x3c1e('0x31')]['fields']));_0x8a3115[_0x3c1e('0x35')]=_0x8a3115[_0x3c1e('0x35')][_0x3c1e('0x37')]?_0x8a3115[_0x3c1e('0x35')]:_0x5e1a8d[_0x3c1e('0x34')];if(_0x1642dc[_0x3c1e('0x31')][_0x3c1e('0x48')]){_0x8a3115[_0x3c1e('0x44')]=[{'all':!![]}];}_0x8a3115=_[_0x3c1e('0x40')]({},_0x8a3115,_0x1642dc[_0x3c1e('0x43')]);return db[_0x3c1e('0x2b')][_0x3c1e('0x49')](_0x8a3115)[_0x3c1e('0x24')](handleEntityNotFound(_0x1c4e7f,null))[_0x3c1e('0x24')](respondWithResult(_0x1c4e7f,null))[_0x3c1e('0x46')](handleError(_0x1c4e7f,null));};exports[_0x3c1e('0x4a')]=function(_0x47291f,_0x46efdf){return db[_0x3c1e('0x2b')]['create'](_0x47291f[_0x3c1e('0x4b')],{})[_0x3c1e('0x24')](respondWithResult(_0x46efdf,0xc9))[_0x3c1e('0x46')](handleError(_0x46efdf,null));};exports[_0x3c1e('0x22')]=function(_0x37688f,_0x597ced){if(_0x37688f[_0x3c1e('0x4b')]['id']){delete _0x37688f[_0x3c1e('0x4b')]['id'];}return db[_0x3c1e('0x2b')][_0x3c1e('0x49')]({'where':{'id':_0x37688f[_0x3c1e('0x47')]['id']}})['then'](handleEntityNotFound(_0x597ced,null))[_0x3c1e('0x24')](saveUpdates(_0x37688f[_0x3c1e('0x4b')],null))[_0x3c1e('0x24')](respondWithResult(_0x597ced,null))[_0x3c1e('0x46')](handleError(_0x597ced,null));};exports['describe']=function(_0x2cbc34,_0x10013b){return db[_0x3c1e('0x2b')][_0x3c1e('0x4c')]()[_0x3c1e('0x24')](respondWithResult(_0x10013b,null))['catch'](handleError(_0x10013b,null));};exports[_0x3c1e('0x4d')]=function(_0x2399d6,_0x2f9391,_0x480470){var _0x11d215=require(_0x3c1e('0x4e'));var _0x163b3c=![];var _0x525c91={};if(_0x2399d6[_0x3c1e('0x31')][_0x3c1e('0x41')]&&_0x2399d6[_0x3c1e('0x31')][_0x3c1e('0x41')]===_0x3c1e('0x4f')){_0x525c91[_0x3c1e('0x4f')]=_0x2399d6[_0x3c1e('0x47')]['id'];}else{_0x525c91['id']=_0x2399d6[_0x3c1e('0x47')]['id'];}return db[_0x3c1e('0x2b')][_0x3c1e('0x49')]({'where':_0x525c91,'attributes':['id',_0x3c1e('0x50')],'raw':!![]})['then'](handleEntityNotFound(_0x2f9391,null))[_0x3c1e('0x24')](function(_0x302c77){if(_0x302c77){var _0x25e892=_0x302c77[_0x3c1e('0x50')];var _0x3fe6af=util[_0x3c1e('0x2f')](_0x3c1e('0x51'),_0x25e892);if(fs[_0x3c1e('0x52')](_0x3fe6af)){_0x163b3c=!![];return _0x11d215[_0x3c1e('0x53')](_0x3fe6af,_0x25e892,config[_0x3c1e('0x54')]['recording'])[_0x3c1e('0x24')](function(){return _0x302c77;});}return _0x302c77;}})['then'](function(_0x24db41){if(_0x24db41){var _0x30294b=_0x24db41[_0x3c1e('0x50')];if(!fs[_0x3c1e('0x52')](_0x30294b)){throw new db['Sequelize']['ValidationError']('VoiceRecording\x20not\x20found');}if(_0x24db41[_0x3c1e('0x55')]){return _0x2f9391[_0x3c1e('0x4d')](_0x30294b,_0x24db41['filename']+path['extname'](_0x30294b),function(){if(_0x163b3c){fs[_0x3c1e('0x56')](_0x30294b);}});}else{return _0x2f9391[_0x3c1e('0x4d')](_0x30294b,function(_0x4f1200){if(_0x163b3c){fs[_0x3c1e('0x56')](_0x30294b);}});}}})[_0x3c1e('0x46')](function(_0x47b469){if(_0x47b469['message']===_0x3c1e('0x57')){_0x2f9391[_0x3c1e('0x19')](0x194)[_0x3c1e('0x28')](_0x3c1e('0x58'));}else{return handleError(_0x2f9391,null);}});};exports[_0x3c1e('0x59')]=function(_0x1c386e,_0x58fdfc,_0x360ecb){var _0x190416=require('../../components/encryptor');var _0x26024c=![];var _0x2d84e={'$and':[db[_0x3c1e('0x5a')][_0x3c1e('0x3d')](db['sequelize']['fn'](_0x3c1e('0x5b'),db[_0x3c1e('0x5a')]['col'](_0x3c1e('0x4f'))),_0x1c386e[_0x3c1e('0x31')][_0x3c1e('0x5c')])]};if(_0x1c386e[_0x3c1e('0x31')][_0x3c1e('0x41')]&&_0x1c386e['query']['type']===_0x3c1e('0x4f')){_0x2d84e['$and'][_0x3c1e('0x5d')]({'uniqueid':_0x1c386e[_0x3c1e('0x47')]['id']});}else{_0x2d84e[_0x3c1e('0x5e')][_0x3c1e('0x5d')]({'id':_0x1c386e['params']['id']});}return db['VoiceRecording'][_0x3c1e('0x49')]({'where':_0x2d84e,'attributes':['id',_0x3c1e('0x50')],'raw':!![]})[_0x3c1e('0x24')](handleEntityNotFound(_0x58fdfc,null))[_0x3c1e('0x24')](function(_0x1c3c0f){if(_0x1c3c0f){var _0x136768=util[_0x3c1e('0x2f')](_0x3c1e('0x51'),_0x1c3c0f[_0x3c1e('0x50')]);if(fs[_0x3c1e('0x52')](_0x136768)){_0x26024c=!![];return _0x190416['decryptFile'](_0x136768,_0x1c3c0f[_0x3c1e('0x50')],config[_0x3c1e('0x54')][_0x3c1e('0x5f')])[_0x3c1e('0x24')](function(){return _0x1c3c0f;});}return _0x1c3c0f;}})[_0x3c1e('0x24')](function(_0x1c83f4){if(_0x1c83f4){if(!fs[_0x3c1e('0x52')](_0x1c83f4[_0x3c1e('0x50')])){throw new db['Sequelize']['ValidationError'](_0x3c1e('0x57'));}if(_0x1c83f4[_0x3c1e('0x55')]){return _0x58fdfc[_0x3c1e('0x4d')](_0x1c83f4[_0x3c1e('0x50')],_0x1c83f4[_0x3c1e('0x55')]+path[_0x3c1e('0x60')](_0x1c83f4['value']),function(){if(_0x26024c){fs['unlink'](_0x1c83f4[_0x3c1e('0x50')]);}});}else{return _0x58fdfc['download'](_0x1c83f4[_0x3c1e('0x50')],function(_0x19dcae){if(_0x26024c){fs['unlink'](_0x1c83f4[_0x3c1e('0x50')]);}});}}})[_0x3c1e('0x46')](handleError(_0x58fdfc,null));};exports['destroy']=function(_0xeeb765,_0x2e2d5f){return db[_0x3c1e('0x2b')][_0x3c1e('0x49')]({'where':{'id':_0xeeb765[_0x3c1e('0x47')]['id']}})[_0x3c1e('0x24')](function(_0x1044f9){if(_[_0x3c1e('0x61')](_0x1044f9)){throw new ReferenceError(_0x3c1e('0x62'));}return _0x1044f9;})[_0x3c1e('0x24')](function(_0xe57ad1){var _0x3d6367=_0xe57ad1[_0x3c1e('0x50')];logger[_0x3c1e('0x63')](_0x3c1e('0x64'),_0x3d6367);if(!_[_0x3c1e('0x61')](_0xe57ad1[_0x3c1e('0x50')])&&fs[_0x3c1e('0x52')](_0x3d6367)){logger[_0x3c1e('0x63')]('File:\x20\x22'+_0x3d6367+_0x3c1e('0x65'));fs['unlinkSync'](_0x3d6367);}_0x3d6367=_0x3d6367+'.cypher';if(!_['isNil'](_0xe57ad1[_0x3c1e('0x50')])&&fs['existsSync'](_0x3d6367)){logger['info'](_0x3c1e('0x66')+_0x3d6367+_0x3c1e('0x65'));fs[_0x3c1e('0x67')](_0x3d6367);}return _0xe57ad1;})[_0x3c1e('0x24')](function(_0x352cf2){if(!_0x352cf2)throw new InternalError();return _0x352cf2['destroy']();})[_0x3c1e('0x24')](function(){_0x2e2d5f[_0x3c1e('0x19')](0xcc)[_0x3c1e('0x1a')]();})[_0x3c1e('0x46')](handleError(_0x2e2d5f,null));};function getBucketslist(_0x372ae6,_0x1c531c,_0x5166fd){return new Promise(function(_0x5097ee,_0x653d7b){var _0x34a1b2=new AWS['S3']({'accessKeyId':_0x1c531c,'secretAccessKey':_0x372ae6,'region':_0x5166fd});_0x34a1b2[_0x3c1e('0x68')]({},function(_0x2d54f3,_0x237f5a){if(_0x2d54f3){return _0x653d7b(_0x2d54f3);}else{return _0x5097ee(_0x237f5a);}});});}function createBucket(_0x1833b9,_0x3b5684,_0x46d3a0,_0x1cc220){return new Promise(function(_0x3f3121,_0x11d23a){var _0x324960=new AWS['S3']({'accessKeyId':_0x3b5684,'secretAccessKey':_0x1833b9,'region':_0x46d3a0});_0x324960[_0x3c1e('0x69')]({'Bucket':_0x1cc220},function(_0x24bc86,_0x2aeb94){if(_0x24bc86){return _0x11d23a(_0x24bc86);}else{return _0x3f3121(_0x2aeb94);}});});}function uploadFile(_0x29e61d,_0x4c9e64,_0x2f3d78,_0x5cda73,_0x141606,_0x11fda9){return new Promise(function(_0x7a3c82,_0x1820ab){var _0x503b0e=new AWS['S3']({'accessKeyId':_0x4c9e64,'secretAccessKey':_0x29e61d,'region':_0x2f3d78});_0x503b0e['upload']({'Bucket':_0x5cda73,'Key':_0x141606,'Body':_0x11fda9},function(_0x109c5c,_0x12f67f){if(_0x109c5c){return _0x1820ab(_0x109c5c);}else{return _0x7a3c82(_0x12f67f);}});});}function startTranscribe(_0x3eb351,_0x21d6e0,_0x1f5e7b,_0x4713e3,_0x4db15a,_0x29768a){return new Promise(function(_0xdcdeee,_0x45eddc){var _0x4754ff=new AWS[(_0x3c1e('0x6a'))]({'accessKeyId':_0x21d6e0,'secretAccessKey':_0x3eb351,'region':_0x1f5e7b});_0x4754ff['startTranscriptionJob']({'TranscriptionJobName':_0x4713e3,'LanguageCode':_0x4db15a,'Media':{'MediaFileUri':_0x29768a}},function(_0x16b0a3,_0x545386){if(_0x16b0a3){return _0x45eddc(_0x16b0a3);}else{return _0xdcdeee(_0x545386);}});});}function transcribe(_0x562df6,_0x199ddd,_0x339a69,_0x27cfe1,_0x51f343,_0x24f3d,_0x14e3be){return new Promise(function(_0x29d63d,_0x5945f5){var _0x2439c5={};logger['info'](util['format'](_0x3c1e('0x6b'),_0x562df6,_0x51f343));return uploadFile(_0x199ddd,_0x339a69,_0x27cfe1,_0x51f343,path[_0x3c1e('0x6c')](_0x24f3d),fs[_0x3c1e('0x6d')](_0x24f3d))[_0x3c1e('0x24')](function(_0x11e7e5){logger[_0x3c1e('0x63')](util['format'](_0x3c1e('0x6e'),_0x562df6,_0x51f343,_0x11e7e5['Location']));_0x2439c5[_0x3c1e('0x6f')]=_0x11e7e5[_0x3c1e('0x70')];_0x2439c5['location']=_0x11e7e5[_0x3c1e('0x71')];logger[_0x3c1e('0x63')](util[_0x3c1e('0x2f')](_0x3c1e('0x72'),_0x562df6));return startTranscribe(_0x199ddd,_0x339a69,_0x27cfe1,uuidv4(),_0x14e3be,_0x11e7e5[_0x3c1e('0x71')]);})['then'](function(_0xf96e92){logger[_0x3c1e('0x63')](util['format'](_0x3c1e('0x73'),_0x562df6,_0xf96e92[_0x3c1e('0x74')][_0x3c1e('0x75')]));_0x2439c5['transcribeName']=_0xf96e92['TranscriptionJob'][_0x3c1e('0x75')];_0x2439c5[_0x3c1e('0x76')]=_0xf96e92['TranscriptionJob'][_0x3c1e('0x77')];return _0x29d63d(_0x2439c5);})[_0x3c1e('0x46')](function(_0x160b2e){return _0x5945f5(_0x160b2e);});});}exports['runTranscribe']=function(_0x49d2ef,_0x96df40,_0xc463ea){var _0x5041a2;var _0x51474b;var _0x2c14ff;var _0x131f56=require('../../components/encryptor');return db[_0x3c1e('0x2b')]['findOne']({'where':{'id':_0x49d2ef[_0x3c1e('0x47')]['id']}})['then'](function(_0x5d50d4){if(_0x5d50d4){var _0x431cd4=util[_0x3c1e('0x2f')](_0x3c1e('0x51'),_0x5d50d4[_0x3c1e('0x50')]);if(fs[_0x3c1e('0x52')](_0x431cd4)){cypher=!![];return _0x131f56[_0x3c1e('0x53')](_0x431cd4,_0x5d50d4[_0x3c1e('0x50')],config[_0x3c1e('0x54')]['recording'])['then'](function(){return _0x5d50d4;});}return _0x5d50d4;}})['then'](function(_0x857c68){if(!_0x857c68){throw new db[(_0x3c1e('0x78'))][(_0x3c1e('0x79'))](_0x3c1e('0x7a'));}_0x51474b=_0x857c68;return db['Setting'][_0x3c1e('0x7b')]({'where':{'id':0x1}});})[_0x3c1e('0x24')](handleEntityNotFound(_0x96df40,null))[_0x3c1e('0x24')](function(_0x16e2dd){if(_0x16e2dd){_0x5041a2=_0x16e2dd;if(!_0x5041a2[_0x3c1e('0x7c')]||!_0x5041a2[_0x3c1e('0x7d')]||!_0x5041a2['transcribeRegion']||!_0x5041a2[_0x3c1e('0x7e')]||!_0x5041a2[_0x3c1e('0x6f')]){throw new db['Sequelize']['ValidationError'](_0x3c1e('0x7f'));}if(_0x49d2ef[_0x3c1e('0x4b')][_0x3c1e('0x80')]&&(!_0x5041a2[_0x3c1e('0x81')]||!_0x5041a2['sentimentAccountId']||!_0x5041a2[_0x3c1e('0x82')]||!_0x5041a2[_0x3c1e('0x7e')]||!_0x5041a2[_0x3c1e('0x6f')])){throw new db[(_0x3c1e('0x78'))][(_0x3c1e('0x79'))]('Sentiment\x20Analysis\x20not\x20configured');}return db[_0x3c1e('0x83')][_0x3c1e('0x7b')]({'where':{'id':_0x5041a2[_0x3c1e('0x7d')]}});}})[_0x3c1e('0x24')](function(_0x14641c){if(!_0x14641c){throw new db['Sequelize'][(_0x3c1e('0x79'))](_0x3c1e('0x84'));}if(!_0x14641c[_0x3c1e('0x85')]||!_0x14641c[_0x3c1e('0x86')]){throw new db[(_0x3c1e('0x78'))][(_0x3c1e('0x79'))](_0x3c1e('0x87'));}_0x2c14ff=_0x14641c;return getBucketslist(_0x2c14ff['data1'],_0x2c14ff['data2'],_0x5041a2['transcribeRegion']);})['then'](function(_0x1b5a86){if(_0x1b5a86&&_0x1b5a86[_0x3c1e('0x88')]){var _0x34482e=_['find'](_0x1b5a86[_0x3c1e('0x88')],function(_0x3ae42f){return _0x3ae42f[_0x3c1e('0x89')]===_0x5041a2[_0x3c1e('0x6f')];});if(!_0x34482e){logger['info'](util['format']('[RUNTRANSCRIPT][%d]\x20Bucket\x20%s\x20not\x20available',_0x49d2ef['params']['id'],_0x5041a2['bucket']));return createBucket(_0x2c14ff[_0x3c1e('0x85')],_0x2c14ff[_0x3c1e('0x86')],_0x5041a2[_0x3c1e('0x8a')],_0x5041a2['bucket']);}logger[_0x3c1e('0x63')](util[_0x3c1e('0x2f')](_0x3c1e('0x8b'),_0x49d2ef[_0x3c1e('0x47')]['id'],_0x5041a2[_0x3c1e('0x6f')]));return;}})[_0x3c1e('0x24')](function(_0x9b2554){if(_0x51474b[_0x3c1e('0x76')]===_0x3c1e('0x8c')){return transcribe(_0x49d2ef[_0x3c1e('0x47')]['id'],_0x2c14ff[_0x3c1e('0x85')],_0x2c14ff['data2'],_0x5041a2['transcribeRegion'],_0x5041a2[_0x3c1e('0x6f')],_0x51474b[_0x3c1e('0x50')],_0x5041a2['language']);}else{logger[_0x3c1e('0x63')](util[_0x3c1e('0x2f')](_0x3c1e('0x8d'),_0x49d2ef[_0x3c1e('0x47')]['id']));return{'transcribeStatus':'IN_PROGRESS'};}})['then'](function(_0x3c6556){if(_0x3c6556){_0x3c6556[_0x3c1e('0x8e')]=_0x49d2ef['body'][_0x3c1e('0x80')];return _0x51474b[_0x3c1e('0x8f')](_0x3c6556);}})[_0x3c1e('0x24')](respondWithResult(_0x96df40,null))[_0x3c1e('0x46')](handleError(_0x96df40,null));};function writeFile(_0x11fad6,_0x4293e2){return new Promise(function(_0x434f89,_0x16ec90){fs[_0x3c1e('0x90')](_0x4293e2,_0x11fad6,function(_0x532619,_0x1eaaba){if(_0x532619){return _0x16ec90(_0x532619);}else{return _0x434f89(_0x1eaaba);}});});}exports[_0x3c1e('0x91')]=function(_0x17907e,_0x474d80,_0x22c3f9){return db[_0x3c1e('0x2b')][_0x3c1e('0x7b')]({'where':{'id':_0x17907e[_0x3c1e('0x47')]['id']}})[_0x3c1e('0x24')](handleEntityNotFound(_0x474d80))[_0x3c1e('0x24')](function(_0x72ac5b){if(_0x72ac5b&&_0x72ac5b[_0x3c1e('0x92')]){var _0x5879f5=_0x72ac5b[_0x3c1e('0x92')];var _0x43280d=config['root']+_0x3c1e('0x93')+_0x72ac5b['id']+_0x3c1e('0x94');if(fs[_0x3c1e('0x52')](_0x43280d)){return _0x43280d;}return writeFile(_0x5879f5,_0x43280d)[_0x3c1e('0x24')](function(){return _0x43280d;});}else{throw new db[(_0x3c1e('0x78'))][(_0x3c1e('0x79'))](_0x3c1e('0x95'));}})[_0x3c1e('0x24')](function(_0x285e67){return _0x474d80[_0x3c1e('0x4d')](_0x285e67);})['catch'](handleError(_0x474d80));};
\ No newline at end of file
+var _0x9b4b=['order','sort','where','pick','type','VIRTUAL','merge','options','includeAll','include','rows','catch','create','body','update','params','describe','download','uniqueid','value','%s.cypher','decryptFile','recording','existsSync','Sequelize','ValidationError','filename','extname','unlink','Not\x20found','../../components/encryptor','sequelize','MD5','col','token','$and','push','find','secrets','isNil','Entity\x20not\x20found','info','cancellazione\x20fisica\x20documento\x20%s','File:\x20\x22','unlinkSync','.cypher','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','listBuckets','upload','TranscribeService','startTranscriptionJob','[RUNTRANSCRIPT][%d]\x20Starting\x20voice\x20recording\x20upload\x20in\x20bucket\x20%s','basename','readFileSync','[RUNTRANSCRIPT][%d]\x20Voice\x20recording\x20uploaded\x20in\x20bucket\x20%s\x20(%s)','Location','bucket','Bucket','[RUNTRANSCRIPT][%d]\x20Sending\x20transcribe\x20request','[RUNTRANSCRIPT][%d]\x20Transcription\x20job\x20%s\x20created','TranscriptionJob','TranscriptionJobName','transcribeName','transcribeStatus','TranscriptionJobStatus','runTranscribe','Voice\x20Recording\x20not\x20found','Setting','findOne','transcribe','transcribeAccountId','Transcribe\x20not\x20configured','runSentiment','sentiment','sentimentAccountId','language','Sentiment\x20Analysis\x20not\x20configured','CloudProvider','Cloud\x20Provider\x20not\x20available','data1','data2','Cloud\x20Provider\x20not\x20configured','transcribeRegion','Buckets','Name','[RUNTRANSCRIPT][%d]\x20Bucket\x20%s\x20not\x20available','[RUNTRANSCRIPT][%d]\x20Bucket\x20%s\x20available','NEW','[RUNTRANSCRIPT][%d]\x20Transcript\x20action\x20already\x20requested','IN_PROGRESS','tempSentiment','updateAttributes','writeFile','downloadTranscribe','fileText','/server/files/transcribes/transcribe_','.txt','Transcript\x20not\x20available','eml-format','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','fs-extra','lodash','squel','crypto','querystring','papaparse','aws-sdk','uuid/v4','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','apply','reject','save','then','destroy','error','stack','name','send','index','map','VoiceRecording','rawAttributes','fieldName','key','differenceBy','format','keys','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit'];(function(_0x2aecb2,_0x343312){var _0x3ebb80=function(_0x19fab3){while(--_0x19fab3){_0x2aecb2['push'](_0x2aecb2['shift']());}};_0x3ebb80(++_0x343312);}(_0x9b4b,0x1a2));var _0xb9b4=function(_0x2920dd,_0x19d049){_0x2920dd=_0x2920dd-0x0;var _0x5d4e52=_0x9b4b[_0x2920dd];return _0x5d4e52;};'use strict';var emlformat=require(_0xb9b4('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xb9b4('0x1'));var rp=require(_0xb9b4('0x2'));var moment=require(_0xb9b4('0x3'));var BPromise=require(_0xb9b4('0x4'));var Mustache=require(_0xb9b4('0x5'));var util=require(_0xb9b4('0x6'));var path=require(_0xb9b4('0x7'));var sox=require('sox');var csv=require(_0xb9b4('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xb9b4('0x9'));var _=require(_0xb9b4('0xa'));var squel=require(_0xb9b4('0xb'));var crypto=require(_0xb9b4('0xc'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xb9b4('0x8'));var querystring=require(_0xb9b4('0xd'));var Papa=require(_0xb9b4('0xe'));var AWS=require(_0xb9b4('0xf'));var uuidv4=require(_0xb9b4('0x10'));var Redis=require(_0xb9b4('0x11'));var authService=require(_0xb9b4('0x12'));var qs=require(_0xb9b4('0x13'));var as=require(_0xb9b4('0x14'));var hardwareService=require(_0xb9b4('0x15'));var logger=require(_0xb9b4('0x16'))(_0xb9b4('0x17'));var utils=require(_0xb9b4('0x18'));var config=require('../../config/environment');var licenseUtil=require(_0xb9b4('0x19'));var db=require(_0xb9b4('0x1a'))['db'];function respondWithStatusCode(_0x37f268,_0x1b0706){_0x1b0706=_0x1b0706||0xcc;return function(_0x5bf932){if(_0x5bf932){return _0x37f268[_0xb9b4('0x1b')](_0x1b0706);}return _0x37f268[_0xb9b4('0x1c')](_0x1b0706)[_0xb9b4('0x1d')]();};}function respondWithResult(_0xa06d62,_0x3d6c78){_0x3d6c78=_0x3d6c78||0xc8;return function(_0x5a7b76){if(_0x5a7b76){return _0xa06d62[_0xb9b4('0x1c')](_0x3d6c78)[_0xb9b4('0x1e')](_0x5a7b76);}};}function respondWithFilteredResult(_0x10ba86,_0x58a1bc){return function(_0x3b410a){if(_0x3b410a){var _0x2c3ba9=typeof _0x58a1bc[_0xb9b4('0x1f')]===_0xb9b4('0x20')&&typeof _0x58a1bc[_0xb9b4('0x21')]===_0xb9b4('0x20');var _0x2651ba=_0x3b410a[_0xb9b4('0x22')];var _0x5be4de=_0x2c3ba9?0x0:_0x58a1bc[_0xb9b4('0x1f')];var _0x3ecac7=_0x2c3ba9?_0x3b410a[_0xb9b4('0x22')]:_0x58a1bc[_0xb9b4('0x1f')]+_0x58a1bc[_0xb9b4('0x21')];var _0x4dc359;if(_0x3ecac7>=_0x2651ba){_0x3ecac7=_0x2651ba;_0x4dc359=0xc8;}else{_0x4dc359=0xce;}_0x10ba86[_0xb9b4('0x1c')](_0x4dc359);return _0x10ba86['set']('Content-Range',_0x5be4de+'-'+_0x3ecac7+'/'+_0x2651ba)[_0xb9b4('0x1e')](_0x3b410a);}return null;};}function patchUpdates(_0x2c57f1){return function(_0x351c5e){try{jsonpatch[_0xb9b4('0x23')](_0x351c5e,_0x2c57f1,!![]);}catch(_0x34cfcf){return BPromise[_0xb9b4('0x24')](_0x34cfcf);}return _0x351c5e[_0xb9b4('0x25')]();};}function saveUpdates(_0x4edb82,_0x2e36f6){return function(_0xfbfe8b){if(_0xfbfe8b){return _0xfbfe8b['update'](_0x4edb82)[_0xb9b4('0x26')](function(_0x3a19a8){return _0x3a19a8;});}return null;};}function removeEntity(_0x4db590,_0x2a44f4){return function(_0x440e41){if(_0x440e41){return _0x440e41[_0xb9b4('0x27')]()['then'](function(){_0x4db590[_0xb9b4('0x1c')](0xcc)[_0xb9b4('0x1d')]();});}};}function handleEntityNotFound(_0x583c5b,_0x2d1f70){return function(_0x16b329){if(!_0x16b329){_0x583c5b[_0xb9b4('0x1b')](0x194);}return _0x16b329;};}function handleError(_0x3be67f,_0xf17825){_0xf17825=_0xf17825||0x1f4;return function(_0x478dab){logger[_0xb9b4('0x28')](_0x478dab[_0xb9b4('0x29')]);if(_0x478dab[_0xb9b4('0x2a')]){delete _0x478dab[_0xb9b4('0x2a')];}_0x3be67f[_0xb9b4('0x1c')](_0xf17825)[_0xb9b4('0x2b')](_0x478dab);};}exports[_0xb9b4('0x2c')]=function(_0x145906,_0xcb7edc){var _0xb78414={},_0x6b7ca7={},_0x3b11af={'count':0x0,'rows':[]};var _0x396296=_[_0xb9b4('0x2d')](db[_0xb9b4('0x2e')][_0xb9b4('0x2f')],function(_0x20e878){return{'name':_0x20e878[_0xb9b4('0x30')],'type':_0x20e878['type'][_0xb9b4('0x31')]};});_0x6b7ca7['model']=_[_0xb9b4('0x32')](_[_0xb9b4('0x2d')](_0x396296,_0xb9b4('0x2a')),[_0xb9b4('0x33')]);_0x6b7ca7['query']=_[_0xb9b4('0x34')](_0x145906[_0xb9b4('0x35')]);_0x6b7ca7[_0xb9b4('0x36')]=_[_0xb9b4('0x37')](_0x6b7ca7[_0xb9b4('0x38')],_0x6b7ca7[_0xb9b4('0x35')]);_0xb78414[_0xb9b4('0x39')]=_[_0xb9b4('0x37')](_0x6b7ca7[_0xb9b4('0x38')],qs[_0xb9b4('0x3a')](_0x145906['query'][_0xb9b4('0x3a')]));_0xb78414['attributes']=_0xb78414[_0xb9b4('0x39')][_0xb9b4('0x3b')]?_0xb78414[_0xb9b4('0x39')]:_0x6b7ca7[_0xb9b4('0x38')];if(!_0x145906['query'][_0xb9b4('0x3c')](_0xb9b4('0x3d'))){_0xb78414[_0xb9b4('0x21')]=qs['limit'](_0x145906['query']['limit']);_0xb78414[_0xb9b4('0x1f')]=qs[_0xb9b4('0x1f')](_0x145906[_0xb9b4('0x35')][_0xb9b4('0x1f')]);}_0xb78414[_0xb9b4('0x3e')]=qs['sort'](_0x145906[_0xb9b4('0x35')][_0xb9b4('0x3f')]);_0xb78414[_0xb9b4('0x40')]=qs[_0xb9b4('0x36')](_[_0xb9b4('0x41')](_0x145906[_0xb9b4('0x35')],_0x6b7ca7['filters']),_0x396296);if(_0x145906[_0xb9b4('0x35')]['filter']){_0xb78414[_0xb9b4('0x40')]=_['merge'](_0xb78414[_0xb9b4('0x40')],{'$or':_['map'](_0x396296,function(_0x4ea1e7){if(_0x4ea1e7[_0xb9b4('0x42')]!==_0xb9b4('0x43')){var _0x501114={};_0x501114[_0x4ea1e7[_0xb9b4('0x2a')]]={'$like':'%'+_0x145906[_0xb9b4('0x35')]['filter']+'%'};return _0x501114;}})});}_0xb78414=_[_0xb9b4('0x44')]({},_0xb78414,_0x145906[_0xb9b4('0x45')]);var _0x1496fb={'where':_0xb78414[_0xb9b4('0x40')]};return db['VoiceRecording'][_0xb9b4('0x22')](_0x1496fb)['then'](function(_0x1abe63){_0x3b11af[_0xb9b4('0x22')]=_0x1abe63;if(_0x145906['query'][_0xb9b4('0x46')]){_0xb78414[_0xb9b4('0x47')]=[{'all':!![]}];}return db[_0xb9b4('0x2e')]['findAll'](_0xb78414);})[_0xb9b4('0x26')](function(_0x5283d1){_0x3b11af[_0xb9b4('0x48')]=_0x5283d1;return _0x3b11af;})['then'](respondWithFilteredResult(_0xcb7edc,_0xb78414))['catch'](handleError(_0xcb7edc,null));};exports['show']=function(_0x4f37e0,_0x50bc38){var _0x244a98={'raw':![],'where':{'id':_0x4f37e0['params']['id']}},_0x4f2d69={};_0x4f2d69[_0xb9b4('0x38')]=_[_0xb9b4('0x34')](db[_0xb9b4('0x2e')][_0xb9b4('0x2f')]);_0x4f2d69[_0xb9b4('0x35')]=_['keys'](_0x4f37e0['query']);_0x4f2d69[_0xb9b4('0x36')]=_[_0xb9b4('0x37')](_0x4f2d69[_0xb9b4('0x38')],_0x4f2d69[_0xb9b4('0x35')]);_0x244a98[_0xb9b4('0x39')]=_[_0xb9b4('0x37')](_0x4f2d69[_0xb9b4('0x38')],qs[_0xb9b4('0x3a')](_0x4f37e0[_0xb9b4('0x35')][_0xb9b4('0x3a')]));_0x244a98['attributes']=_0x244a98[_0xb9b4('0x39')]['length']?_0x244a98[_0xb9b4('0x39')]:_0x4f2d69['model'];if(_0x4f37e0[_0xb9b4('0x35')]['includeAll']){_0x244a98[_0xb9b4('0x47')]=[{'all':!![]}];}_0x244a98=_[_0xb9b4('0x44')]({},_0x244a98,_0x4f37e0['options']);return db[_0xb9b4('0x2e')]['find'](_0x244a98)[_0xb9b4('0x26')](handleEntityNotFound(_0x50bc38,null))[_0xb9b4('0x26')](respondWithResult(_0x50bc38,null))[_0xb9b4('0x49')](handleError(_0x50bc38,null));};exports[_0xb9b4('0x4a')]=function(_0x183c37,_0x50c769){return db[_0xb9b4('0x2e')]['create'](_0x183c37[_0xb9b4('0x4b')],{})[_0xb9b4('0x26')](respondWithResult(_0x50c769,0xc9))['catch'](handleError(_0x50c769,null));};exports[_0xb9b4('0x4c')]=function(_0x47fc2d,_0x1a0441){if(_0x47fc2d[_0xb9b4('0x4b')]['id']){delete _0x47fc2d['body']['id'];}return db['VoiceRecording']['find']({'where':{'id':_0x47fc2d[_0xb9b4('0x4d')]['id']}})[_0xb9b4('0x26')](handleEntityNotFound(_0x1a0441,null))[_0xb9b4('0x26')](saveUpdates(_0x47fc2d[_0xb9b4('0x4b')],null))[_0xb9b4('0x26')](respondWithResult(_0x1a0441,null))[_0xb9b4('0x49')](handleError(_0x1a0441,null));};exports['describe']=function(_0x591bc5,_0x102431){return db['VoiceRecording'][_0xb9b4('0x4e')]()['then'](respondWithResult(_0x102431,null))[_0xb9b4('0x49')](handleError(_0x102431,null));};exports[_0xb9b4('0x4f')]=function(_0x42522e,_0xb7df9,_0x27a318){var _0x5826bc=require('../../components/encryptor');var _0x3e38bd=![];var _0x3366ab={};if(_0x42522e[_0xb9b4('0x35')][_0xb9b4('0x42')]&&_0x42522e[_0xb9b4('0x35')][_0xb9b4('0x42')]===_0xb9b4('0x50')){_0x3366ab[_0xb9b4('0x50')]=_0x42522e['params']['id'];}else{_0x3366ab['id']=_0x42522e[_0xb9b4('0x4d')]['id'];}return db[_0xb9b4('0x2e')]['find']({'where':_0x3366ab,'attributes':['id','value'],'raw':!![]})[_0xb9b4('0x26')](handleEntityNotFound(_0xb7df9,null))[_0xb9b4('0x26')](function(_0x479ad9){if(_0x479ad9){var _0x2af3f2=_0x479ad9[_0xb9b4('0x51')];var _0x30853b=util['format'](_0xb9b4('0x52'),_0x2af3f2);if(fs['existsSync'](_0x30853b)){_0x3e38bd=!![];return _0x5826bc[_0xb9b4('0x53')](_0x30853b,_0x2af3f2,config['secrets'][_0xb9b4('0x54')])['then'](function(){return _0x479ad9;});}return _0x479ad9;}})[_0xb9b4('0x26')](function(_0x1fe179){if(_0x1fe179){var _0x15d08c=_0x1fe179[_0xb9b4('0x51')];if(!fs[_0xb9b4('0x55')](_0x15d08c)){throw new db[(_0xb9b4('0x56'))][(_0xb9b4('0x57'))]('VoiceRecording\x20not\x20found');}if(_0x1fe179[_0xb9b4('0x58')]){return _0xb7df9['download'](_0x15d08c,_0x1fe179[_0xb9b4('0x58')]+path[_0xb9b4('0x59')](_0x15d08c),function(){if(_0x3e38bd){fs[_0xb9b4('0x5a')](_0x15d08c);}});}else{return _0xb7df9[_0xb9b4('0x4f')](_0x15d08c,function(_0x53a0a0){if(_0x3e38bd){fs[_0xb9b4('0x5a')](_0x15d08c);}});}}})[_0xb9b4('0x49')](function(_0x499c1f){if(_0x499c1f['message']==='VoiceRecording\x20not\x20found'){_0xb7df9[_0xb9b4('0x1c')](0x194)[_0xb9b4('0x2b')](_0xb9b4('0x5b'));}else{return handleError(_0xb7df9,null);}});};exports['downloads']=function(_0x3475ad,_0x3e92f2,_0x45c0f1){var _0x23d3c2=require(_0xb9b4('0x5c'));var _0x39f5de=![];var _0x2d14d4={'$and':[db['sequelize'][_0xb9b4('0x40')](db[_0xb9b4('0x5d')]['fn'](_0xb9b4('0x5e'),db['sequelize'][_0xb9b4('0x5f')](_0xb9b4('0x50'))),_0x3475ad[_0xb9b4('0x35')][_0xb9b4('0x60')])]};if(_0x3475ad[_0xb9b4('0x35')][_0xb9b4('0x42')]&&_0x3475ad['query']['type']===_0xb9b4('0x50')){_0x2d14d4[_0xb9b4('0x61')][_0xb9b4('0x62')]({'uniqueid':_0x3475ad[_0xb9b4('0x4d')]['id']});}else{_0x2d14d4[_0xb9b4('0x61')][_0xb9b4('0x62')]({'id':_0x3475ad[_0xb9b4('0x4d')]['id']});}return db[_0xb9b4('0x2e')][_0xb9b4('0x63')]({'where':_0x2d14d4,'attributes':['id',_0xb9b4('0x51')],'raw':!![]})[_0xb9b4('0x26')](handleEntityNotFound(_0x3e92f2,null))[_0xb9b4('0x26')](function(_0x3e1274){if(_0x3e1274){var _0x22fd57=util[_0xb9b4('0x33')]('%s.cypher',_0x3e1274['value']);if(fs['existsSync'](_0x22fd57)){_0x39f5de=!![];return _0x23d3c2[_0xb9b4('0x53')](_0x22fd57,_0x3e1274[_0xb9b4('0x51')],config[_0xb9b4('0x64')]['recording'])[_0xb9b4('0x26')](function(){return _0x3e1274;});}return _0x3e1274;}})['then'](function(_0x17c2b1){if(_0x17c2b1){if(!fs['existsSync'](_0x17c2b1['value'])){throw new db['Sequelize'][(_0xb9b4('0x57'))]('VoiceRecording\x20not\x20found');}if(_0x17c2b1[_0xb9b4('0x58')]){return _0x3e92f2[_0xb9b4('0x4f')](_0x17c2b1['value'],_0x17c2b1[_0xb9b4('0x58')]+path['extname'](_0x17c2b1[_0xb9b4('0x51')]),function(){if(_0x39f5de){fs['unlink'](_0x17c2b1[_0xb9b4('0x51')]);}});}else{return _0x3e92f2[_0xb9b4('0x4f')](_0x17c2b1['value'],function(_0x37feed){if(_0x39f5de){fs[_0xb9b4('0x5a')](_0x17c2b1['value']);}});}}})['catch'](handleError(_0x3e92f2,null));};exports[_0xb9b4('0x27')]=function(_0x1d4daa,_0x31e2cd){return db[_0xb9b4('0x2e')][_0xb9b4('0x63')]({'where':{'id':_0x1d4daa[_0xb9b4('0x4d')]['id']}})[_0xb9b4('0x26')](function(_0x33ee65){if(_[_0xb9b4('0x65')](_0x33ee65)){throw new ReferenceError(_0xb9b4('0x66'));}return _0x33ee65;})[_0xb9b4('0x26')](function(_0x251548){var _0x19913f=_0x251548[_0xb9b4('0x51')];logger[_0xb9b4('0x67')](_0xb9b4('0x68'),_0x19913f);if(!_[_0xb9b4('0x65')](_0x251548[_0xb9b4('0x51')])&&fs[_0xb9b4('0x55')](_0x19913f)){logger[_0xb9b4('0x67')](_0xb9b4('0x69')+_0x19913f+'\x22\x20trovato\x20eseguo\x20la\x20cancellazione');fs[_0xb9b4('0x6a')](_0x19913f);}_0x19913f=_0x19913f+_0xb9b4('0x6b');if(!_[_0xb9b4('0x65')](_0x251548[_0xb9b4('0x51')])&&fs['existsSync'](_0x19913f)){logger[_0xb9b4('0x67')]('File:\x20\x22'+_0x19913f+_0xb9b4('0x6c'));fs[_0xb9b4('0x6a')](_0x19913f);}return _0x251548;})['then'](function(_0x27f849){if(!_0x27f849)throw new InternalError();return _0x27f849[_0xb9b4('0x27')]();})['then'](function(){_0x31e2cd[_0xb9b4('0x1c')](0xcc)[_0xb9b4('0x1d')]();})[_0xb9b4('0x49')](handleError(_0x31e2cd,null));};function getBucketslist(_0x4f952f,_0x26cc99,_0x392217){return new Promise(function(_0x49f601,_0x2e73ba){var _0x551925=new AWS['S3']({'accessKeyId':_0x26cc99,'secretAccessKey':_0x4f952f,'region':_0x392217});_0x551925[_0xb9b4('0x6d')]({},function(_0x4ad323,_0x47a3a2){if(_0x4ad323){return _0x2e73ba(_0x4ad323);}else{return _0x49f601(_0x47a3a2);}});});}function createBucket(_0x3e981a,_0x1ff14c,_0x4104e9,_0x32341b){return new Promise(function(_0x1db4f5,_0x23a7fa){var _0x18cd19=new AWS['S3']({'accessKeyId':_0x1ff14c,'secretAccessKey':_0x3e981a,'region':_0x4104e9});_0x18cd19['createBucket']({'Bucket':_0x32341b},function(_0x400629,_0x31a287){if(_0x400629){return _0x23a7fa(_0x400629);}else{return _0x1db4f5(_0x31a287);}});});}function uploadFile(_0xaa1b0f,_0x1d9b85,_0x3a693b,_0x4cdcb4,_0x3cbc77,_0xda5ff0){return new Promise(function(_0x470f96,_0x190faa){var _0x22c1d2=new AWS['S3']({'accessKeyId':_0x1d9b85,'secretAccessKey':_0xaa1b0f,'region':_0x3a693b});_0x22c1d2[_0xb9b4('0x6e')]({'Bucket':_0x4cdcb4,'Key':_0x3cbc77,'Body':_0xda5ff0},function(_0x3334f8,_0x1c4575){if(_0x3334f8){return _0x190faa(_0x3334f8);}else{return _0x470f96(_0x1c4575);}});});}function startTranscribe(_0x56b7ac,_0x4df587,_0x3fb0ea,_0x50c97d,_0x5bb06b,_0x29f4f9){return new Promise(function(_0x21a57b,_0x13d140){var _0x40801e=new AWS[(_0xb9b4('0x6f'))]({'accessKeyId':_0x4df587,'secretAccessKey':_0x56b7ac,'region':_0x3fb0ea});_0x40801e[_0xb9b4('0x70')]({'TranscriptionJobName':_0x50c97d,'LanguageCode':_0x5bb06b,'Media':{'MediaFileUri':_0x29f4f9}},function(_0xf75061,_0x2461b9){if(_0xf75061){return _0x13d140(_0xf75061);}else{return _0x21a57b(_0x2461b9);}});});}function transcribe(_0x2820e3,_0x88df14,_0x2fe36c,_0x22f1ea,_0x2ce504,_0x134b3e,_0x191596){return new Promise(function(_0x373ab2,_0x19a0b0){var _0x1be87a={};logger[_0xb9b4('0x67')](util[_0xb9b4('0x33')](_0xb9b4('0x71'),_0x2820e3,_0x2ce504));return uploadFile(_0x88df14,_0x2fe36c,_0x22f1ea,_0x2ce504,path[_0xb9b4('0x72')](_0x134b3e),fs[_0xb9b4('0x73')](_0x134b3e))[_0xb9b4('0x26')](function(_0x15a770){logger[_0xb9b4('0x67')](util[_0xb9b4('0x33')](_0xb9b4('0x74'),_0x2820e3,_0x2ce504,_0x15a770[_0xb9b4('0x75')]));_0x1be87a[_0xb9b4('0x76')]=_0x15a770[_0xb9b4('0x77')];_0x1be87a['location']=_0x15a770[_0xb9b4('0x75')];logger[_0xb9b4('0x67')](util['format'](_0xb9b4('0x78'),_0x2820e3));return startTranscribe(_0x88df14,_0x2fe36c,_0x22f1ea,uuidv4(),_0x191596,_0x15a770[_0xb9b4('0x75')]);})[_0xb9b4('0x26')](function(_0x1a36c7){logger[_0xb9b4('0x67')](util['format'](_0xb9b4('0x79'),_0x2820e3,_0x1a36c7[_0xb9b4('0x7a')][_0xb9b4('0x7b')]));_0x1be87a[_0xb9b4('0x7c')]=_0x1a36c7['TranscriptionJob'][_0xb9b4('0x7b')];_0x1be87a[_0xb9b4('0x7d')]=_0x1a36c7[_0xb9b4('0x7a')][_0xb9b4('0x7e')];return _0x373ab2(_0x1be87a);})[_0xb9b4('0x49')](function(_0x149138){return _0x19a0b0(_0x149138);});});}exports[_0xb9b4('0x7f')]=function(_0xf6b988,_0x189803,_0x5b7ffe){var _0x4d38ce;var _0x57ad46;var _0x52d9f5;var _0x52bd7f=require(_0xb9b4('0x5c'));return db['VoiceRecording']['findOne']({'where':{'id':_0xf6b988[_0xb9b4('0x4d')]['id']}})[_0xb9b4('0x26')](function(_0x1af8cc){if(_0x1af8cc){var _0x21650e=util['format']('%s.cypher',_0x1af8cc[_0xb9b4('0x51')]);if(fs['existsSync'](_0x21650e)){cypher=!![];return _0x52bd7f[_0xb9b4('0x53')](_0x21650e,_0x1af8cc[_0xb9b4('0x51')],config[_0xb9b4('0x64')][_0xb9b4('0x54')])[_0xb9b4('0x26')](function(){return _0x1af8cc;});}return _0x1af8cc;}})['then'](function(_0x79d372){if(!_0x79d372){throw new db['Sequelize'][(_0xb9b4('0x57'))](_0xb9b4('0x80'));}_0x57ad46=_0x79d372;return db[_0xb9b4('0x81')][_0xb9b4('0x82')]({'where':{'id':0x1}});})[_0xb9b4('0x26')](handleEntityNotFound(_0x189803,null))[_0xb9b4('0x26')](function(_0x5497d5){if(_0x5497d5){_0x4d38ce=_0x5497d5;if(!_0x4d38ce[_0xb9b4('0x83')]||!_0x4d38ce[_0xb9b4('0x84')]||!_0x4d38ce['transcribeRegion']||!_0x4d38ce['language']||!_0x4d38ce[_0xb9b4('0x76')]){throw new db[(_0xb9b4('0x56'))]['ValidationError'](_0xb9b4('0x85'));}if(_0xf6b988['body'][_0xb9b4('0x86')]&&(!_0x4d38ce[_0xb9b4('0x87')]||!_0x4d38ce[_0xb9b4('0x88')]||!_0x4d38ce['sentimentRegion']||!_0x4d38ce[_0xb9b4('0x89')]||!_0x4d38ce[_0xb9b4('0x76')])){throw new db['Sequelize'][(_0xb9b4('0x57'))](_0xb9b4('0x8a'));}return db[_0xb9b4('0x8b')][_0xb9b4('0x82')]({'where':{'id':_0x4d38ce[_0xb9b4('0x84')]}});}})['then'](function(_0x316ac7){if(!_0x316ac7){throw new db[(_0xb9b4('0x56'))][(_0xb9b4('0x57'))](_0xb9b4('0x8c'));}if(!_0x316ac7[_0xb9b4('0x8d')]||!_0x316ac7[_0xb9b4('0x8e')]){throw new db['Sequelize'][(_0xb9b4('0x57'))](_0xb9b4('0x8f'));}_0x52d9f5=_0x316ac7;return getBucketslist(_0x52d9f5[_0xb9b4('0x8d')],_0x52d9f5['data2'],_0x4d38ce[_0xb9b4('0x90')]);})[_0xb9b4('0x26')](function(_0x2b6f78){if(_0x2b6f78&&_0x2b6f78[_0xb9b4('0x91')]){var _0x248c69=_[_0xb9b4('0x63')](_0x2b6f78[_0xb9b4('0x91')],function(_0x10c31d){return _0x10c31d[_0xb9b4('0x92')]===_0x4d38ce[_0xb9b4('0x76')];});if(!_0x248c69){logger['info'](util[_0xb9b4('0x33')](_0xb9b4('0x93'),_0xf6b988[_0xb9b4('0x4d')]['id'],_0x4d38ce[_0xb9b4('0x76')]));return createBucket(_0x52d9f5[_0xb9b4('0x8d')],_0x52d9f5[_0xb9b4('0x8e')],_0x4d38ce['transcribeRegion'],_0x4d38ce[_0xb9b4('0x76')]);}logger['info'](util[_0xb9b4('0x33')](_0xb9b4('0x94'),_0xf6b988[_0xb9b4('0x4d')]['id'],_0x4d38ce[_0xb9b4('0x76')]));return;}})[_0xb9b4('0x26')](function(_0x476c12){if(_0x57ad46[_0xb9b4('0x7d')]===_0xb9b4('0x95')){return transcribe(_0xf6b988[_0xb9b4('0x4d')]['id'],_0x52d9f5[_0xb9b4('0x8d')],_0x52d9f5[_0xb9b4('0x8e')],_0x4d38ce[_0xb9b4('0x90')],_0x4d38ce[_0xb9b4('0x76')],_0x57ad46['value'],_0x4d38ce['language']);}else{logger[_0xb9b4('0x67')](util[_0xb9b4('0x33')](_0xb9b4('0x96'),_0xf6b988[_0xb9b4('0x4d')]['id']));return{'transcribeStatus':_0xb9b4('0x97')};}})[_0xb9b4('0x26')](function(_0x121ae3){if(_0x121ae3){_0x121ae3[_0xb9b4('0x98')]=_0xf6b988[_0xb9b4('0x4b')][_0xb9b4('0x86')];return _0x57ad46[_0xb9b4('0x99')](_0x121ae3);}})[_0xb9b4('0x26')](respondWithResult(_0x189803,null))[_0xb9b4('0x49')](handleError(_0x189803,null));};function writeFile(_0x3c175a,_0x3b8570){return new Promise(function(_0xa25bb5,_0x4a1b36){fs[_0xb9b4('0x9a')](_0x3b8570,_0x3c175a,function(_0x3ca3e1,_0x3a9561){if(_0x3ca3e1){return _0x4a1b36(_0x3ca3e1);}else{return _0xa25bb5(_0x3a9561);}});});}exports[_0xb9b4('0x9b')]=function(_0xd6881,_0x2903e1,_0x657ecf){return db['VoiceRecording'][_0xb9b4('0x82')]({'where':{'id':_0xd6881['params']['id']}})[_0xb9b4('0x26')](handleEntityNotFound(_0x2903e1))[_0xb9b4('0x26')](function(_0x480184){if(_0x480184&&_0x480184['fileText']){var _0x5d256b=_0x480184[_0xb9b4('0x9c')];var _0x4f29b1=config['root']+_0xb9b4('0x9d')+_0x480184['id']+_0xb9b4('0x9e');if(fs[_0xb9b4('0x55')](_0x4f29b1)){return _0x4f29b1;}return writeFile(_0x5d256b,_0x4f29b1)[_0xb9b4('0x26')](function(){return _0x4f29b1;});}else{throw new db[(_0xb9b4('0x56'))][(_0xb9b4('0x57'))](_0xb9b4('0x9f'));}})[_0xb9b4('0x26')](function(_0x1d7f3e){return _0x2903e1[_0xb9b4('0x4f')](_0x1d7f3e);})[_0xb9b4('0x49')](handleError(_0x2903e1));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x81fc=['exports','VoiceRecording','uniqueid','lodash','util','../../config/logger','api','bluebird','request-promise','rimraf','./voiceRecording.attributes'];(function(_0x173441,_0x26b0d9){var _0x2423a8=function(_0x4d96c2){while(--_0x4d96c2){_0x173441['push'](_0x173441['shift']());}};_0x2423a8(++_0x26b0d9);}(_0x81fc,0x92));var _0xc81f=function(_0x3a1dc0,_0x3b0a92){_0x3a1dc0=_0x3a1dc0-0x0;var _0x285f66=_0x81fc[_0x3a1dc0];return _0x285f66;};'use strict';var _=require(_0xc81f('0x0'));var util=require(_0xc81f('0x1'));var logger=require(_0xc81f('0x2'))(_0xc81f('0x3'));var moment=require('moment');var BPromise=require(_0xc81f('0x4'));var rp=require(_0xc81f('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0xc81f('0x6'));var config=require('../../config/environment');var attributes=require(_0xc81f('0x7'));module[_0xc81f('0x8')]=function(_0x2cd742,_0x265fb5){return _0x2cd742['define'](_0xc81f('0x9'),attributes,{'tableName':'voice_recordings','paranoid':![],'indexes':[{'name':_0xc81f('0xa'),'fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
+var _0xe6f1=['util','../../config/logger','api','bluebird','request-promise','path','rimraf','../../config/environment','./voiceRecording.attributes','exports','VoiceRecording','uniqueid'];(function(_0x10f5b2,_0x1cda8b){var _0xb3f77c=function(_0x5dead6){while(--_0x5dead6){_0x10f5b2['push'](_0x10f5b2['shift']());}};_0xb3f77c(++_0x1cda8b);}(_0xe6f1,0x1d4));var _0x1e6f=function(_0x421ff6,_0x40f195){_0x421ff6=_0x421ff6-0x0;var _0x177051=_0xe6f1[_0x421ff6];return _0x177051;};'use strict';var _=require('lodash');var util=require(_0x1e6f('0x0'));var logger=require(_0x1e6f('0x1'))(_0x1e6f('0x2'));var moment=require('moment');var BPromise=require(_0x1e6f('0x3'));var rp=require(_0x1e6f('0x4'));var fs=require('fs');var path=require(_0x1e6f('0x5'));var rimraf=require(_0x1e6f('0x6'));var config=require(_0x1e6f('0x7'));var attributes=require(_0x1e6f('0x8'));module[_0x1e6f('0x9')]=function(_0x14c56d,_0x298efb){return _0x14c56d['define'](_0x1e6f('0xa'),attributes,{'tableName':'voice_recordings','paranoid':![],'indexes':[{'name':_0x1e6f('0xb'),'fields':[_0x1e6f('0xb')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4e2e=['error','message','result','VoiceRecording','update','body','options','raw','attributes','limit','UpdateVoiceRecording','debug','catch','../../components/encryptor','findOne','create','callRecordingEncryption','format','%s.cypher','value','encryptFile','secrets','recording','unlink','CreateVoiceRecording','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','http','request','then','info','VoiceRecording,\x20%s,\x20%s','request\x20sent','VoiceRecording,\x20%s,\x20%s,\x20%s','stringify'];(function(_0xa85606,_0x54bec7){var _0x80246a=function(_0x49b7f0){while(--_0x49b7f0){_0xa85606['push'](_0xa85606['shift']());}};_0x80246a(++_0x54bec7);}(_0x4e2e,0x1f2));var _0xe4e2=function(_0x4f96eb,_0x29d191){_0x4f96eb=_0x4f96eb-0x0;var _0x676a28=_0x4e2e[_0x4f96eb];return _0x676a28;};'use strict';var _=require('lodash');var util=require(_0xe4e2('0x0'));var moment=require(_0xe4e2('0x1'));var BPromise=require(_0xe4e2('0x2'));var rs=require(_0xe4e2('0x3'));var fs=require('fs');var Redis=require(_0xe4e2('0x4'));var db=require(_0xe4e2('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0xe4e2('0x6'))(_0xe4e2('0x7'));var config=require(_0xe4e2('0x8'));var jayson=require(_0xe4e2('0x9'));var client=jayson['client'][_0xe4e2('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x36b1c6,_0x1c4e64,_0x125338){return new BPromise(function(_0x956c75,_0x27304b){return client[_0xe4e2('0xb')](_0x36b1c6,_0x125338)[_0xe4e2('0xc')](function(_0x4912da){logger[_0xe4e2('0xd')](_0xe4e2('0xe'),_0x1c4e64,_0xe4e2('0xf'));logger['debug'](_0xe4e2('0x10'),_0x1c4e64,_0xe4e2('0xf'),JSON[_0xe4e2('0x11')](_0x4912da));if(_0x4912da[_0xe4e2('0x12')]){if(_0x4912da[_0xe4e2('0x12')]['code']===0x1f4){logger[_0xe4e2('0x12')](_0xe4e2('0xe'),_0x1c4e64,_0x4912da[_0xe4e2('0x12')][_0xe4e2('0x13')]);return _0x27304b(_0x4912da['error'][_0xe4e2('0x13')]);}logger[_0xe4e2('0x12')](_0xe4e2('0xe'),_0x1c4e64,_0x4912da[_0xe4e2('0x12')][_0xe4e2('0x13')]);return _0x956c75(_0x4912da['error']['message']);}else{logger[_0xe4e2('0xd')](_0xe4e2('0xe'),_0x1c4e64,_0xe4e2('0xf'));_0x956c75(_0x4912da[_0xe4e2('0x14')][_0xe4e2('0x13')]);}})['catch'](function(_0x754778){logger[_0xe4e2('0x12')](_0xe4e2('0xe'),_0x1c4e64,_0x754778);_0x27304b(_0x754778);});});}exports['UpdateVoiceRecording']=function(_0x196f16){var _0x54c80b=this;return new Promise(function(_0x1d5e9d,_0x3f313b){return db[_0xe4e2('0x15')][_0xe4e2('0x16')](_0x196f16[_0xe4e2('0x17')],{'raw':_0x196f16[_0xe4e2('0x18')]?_0x196f16[_0xe4e2('0x18')][_0xe4e2('0x19')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x196f16[_0xe4e2('0x18')]?_0x196f16[_0xe4e2('0x18')]['where']||null:null,'attributes':_0x196f16[_0xe4e2('0x18')]?_0x196f16[_0xe4e2('0x18')][_0xe4e2('0x1a')]||null:null,'limit':_0x196f16[_0xe4e2('0x18')]?_0x196f16[_0xe4e2('0x18')][_0xe4e2('0x1b')]||null:null})[_0xe4e2('0xc')](function(_0x51c67e){logger[_0xe4e2('0xd')](_0xe4e2('0x1c'),_0x196f16);logger[_0xe4e2('0x1d')]('UpdateVoiceRecording',_0x196f16,JSON[_0xe4e2('0x11')](_0x51c67e));_0x1d5e9d(_0x51c67e);})[_0xe4e2('0x1e')](function(_0x598fa3){logger[_0xe4e2('0x12')](_0xe4e2('0x1c'),_0x598fa3[_0xe4e2('0x13')],_0x196f16);_0x3f313b(_0x54c80b[_0xe4e2('0x12')](0x1f4,_0x598fa3[_0xe4e2('0x13')]));});});};exports['CreateVoiceRecording']=function(_0x166610){var _0x357903=this;return new Promise(function(_0x1f6d1f,_0x5120fd){var _0x3a31b8=require(_0xe4e2('0x1f'));var _0x31f651;return db['Setting'][_0xe4e2('0x20')]({'attributes':['id','callRecordingEncryption'],'where':{'id':0x1},'raw':!![]})[_0xe4e2('0xc')](function(_0x1e21c0){_0x31f651=_0x1e21c0;return db['VoiceRecording'][_0xe4e2('0x21')](_0x166610[_0xe4e2('0x17')]);})[_0xe4e2('0xc')](function(_0x41500b){if(_0x31f651[_0xe4e2('0x22')]&&fs['existsSync'](_0x41500b['value'])){var _0x2cb235=util[_0xe4e2('0x23')](_0xe4e2('0x24'),_0x41500b[_0xe4e2('0x25')]);return _0x3a31b8[_0xe4e2('0x26')](_0x41500b[_0xe4e2('0x25')],_0x2cb235,config[_0xe4e2('0x27')][_0xe4e2('0x28')])[_0xe4e2('0xc')](function(){fs[_0xe4e2('0x29')](_0x41500b[_0xe4e2('0x25')]);logger[_0xe4e2('0xd')]('CreateVoiceRecording\x20file\x20encrypted');return _0x41500b;});}return _0x41500b;})[_0xe4e2('0xc')](function(_0x8ffc6){logger[_0xe4e2('0xd')](_0xe4e2('0x2a'),_0x166610);logger[_0xe4e2('0x1d')](_0xe4e2('0x2a'),_0x166610,JSON['stringify'](_0x8ffc6));_0x1f6d1f(_0x8ffc6);})[_0xe4e2('0x1e')](function(_0x286714){logger[_0xe4e2('0x12')](_0xe4e2('0x2a'),_0x286714[_0xe4e2('0x13')],_0x166610);_0x5120fd(_0x357903[_0xe4e2('0x12')](0x1f4,_0x286714[_0xe4e2('0x13')]));});});};
\ No newline at end of file
+var _0xc2c7=['../../config/logger','jayson/promise','client','http','request','then','VoiceRecording,\x20%s,\x20%s','request\x20sent','debug','VoiceRecording,\x20%s,\x20%s,\x20%s','stringify','error','code','message','UpdateVoiceRecording','VoiceRecording','update','body','options','raw','attributes','limit','catch','CreateVoiceRecording','../../components/encryptor','Setting','findOne','callRecordingEncryption','create','existsSync','format','%s.cypher','value','encryptFile','secrets','unlink','info','CreateVoiceRecording\x20file\x20encrypted','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils'];(function(_0x371b36,_0x8606f7){var _0x449638=function(_0x4ed4eb){while(--_0x4ed4eb){_0x371b36['push'](_0x371b36['shift']());}};_0x449638(++_0x8606f7);}(_0xc2c7,0x134));var _0x7c2c=function(_0x405b73,_0x87494f){_0x405b73=_0x405b73-0x0;var _0x1c7bcc=_0xc2c7[_0x405b73];return _0x1c7bcc;};'use strict';var _=require('lodash');var util=require(_0x7c2c('0x0'));var moment=require(_0x7c2c('0x1'));var BPromise=require(_0x7c2c('0x2'));var rs=require(_0x7c2c('0x3'));var fs=require('fs');var Redis=require(_0x7c2c('0x4'));var db=require(_0x7c2c('0x5'))['db'];var utils=require(_0x7c2c('0x6'));var logger=require(_0x7c2c('0x7'))('rpc');var config=require('../../config/environment');var jayson=require(_0x7c2c('0x8'));var client=jayson[_0x7c2c('0x9')][_0x7c2c('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x54f027,_0x4abe93,_0x5a1027){return new BPromise(function(_0x2274cd,_0x29638d){return client[_0x7c2c('0xb')](_0x54f027,_0x5a1027)[_0x7c2c('0xc')](function(_0x279cff){logger['info'](_0x7c2c('0xd'),_0x4abe93,_0x7c2c('0xe'));logger[_0x7c2c('0xf')](_0x7c2c('0x10'),_0x4abe93,_0x7c2c('0xe'),JSON[_0x7c2c('0x11')](_0x279cff));if(_0x279cff[_0x7c2c('0x12')]){if(_0x279cff[_0x7c2c('0x12')][_0x7c2c('0x13')]===0x1f4){logger[_0x7c2c('0x12')](_0x7c2c('0xd'),_0x4abe93,_0x279cff[_0x7c2c('0x12')][_0x7c2c('0x14')]);return _0x29638d(_0x279cff[_0x7c2c('0x12')][_0x7c2c('0x14')]);}logger[_0x7c2c('0x12')]('VoiceRecording,\x20%s,\x20%s',_0x4abe93,_0x279cff['error'][_0x7c2c('0x14')]);return _0x2274cd(_0x279cff[_0x7c2c('0x12')][_0x7c2c('0x14')]);}else{logger['info'](_0x7c2c('0xd'),_0x4abe93,_0x7c2c('0xe'));_0x2274cd(_0x279cff['result'][_0x7c2c('0x14')]);}})['catch'](function(_0x1aa355){logger['error'](_0x7c2c('0xd'),_0x4abe93,_0x1aa355);_0x29638d(_0x1aa355);});});}exports[_0x7c2c('0x15')]=function(_0x14453f){var _0x2a9539=this;return new Promise(function(_0x17df4a,_0x26be0f){return db[_0x7c2c('0x16')][_0x7c2c('0x17')](_0x14453f[_0x7c2c('0x18')],{'raw':_0x14453f[_0x7c2c('0x19')]?_0x14453f[_0x7c2c('0x19')][_0x7c2c('0x1a')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x14453f['options']?_0x14453f[_0x7c2c('0x19')]['where']||null:null,'attributes':_0x14453f['options']?_0x14453f[_0x7c2c('0x19')][_0x7c2c('0x1b')]||null:null,'limit':_0x14453f[_0x7c2c('0x19')]?_0x14453f[_0x7c2c('0x19')][_0x7c2c('0x1c')]||null:null})[_0x7c2c('0xc')](function(_0xa84620){logger['info'](_0x7c2c('0x15'),_0x14453f);logger['debug'](_0x7c2c('0x15'),_0x14453f,JSON['stringify'](_0xa84620));_0x17df4a(_0xa84620);})[_0x7c2c('0x1d')](function(_0x274c3b){logger[_0x7c2c('0x12')]('UpdateVoiceRecording',_0x274c3b['message'],_0x14453f);_0x26be0f(_0x2a9539[_0x7c2c('0x12')](0x1f4,_0x274c3b[_0x7c2c('0x14')]));});});};exports[_0x7c2c('0x1e')]=function(_0x150690){var _0x31d8f3=this;return new Promise(function(_0xa8e145,_0x3f4618){var _0x4b1dd0=require(_0x7c2c('0x1f'));var _0xf39941;return db[_0x7c2c('0x20')][_0x7c2c('0x21')]({'attributes':['id',_0x7c2c('0x22')],'where':{'id':0x1},'raw':!![]})[_0x7c2c('0xc')](function(_0xf2bfd1){_0xf39941=_0xf2bfd1;return db[_0x7c2c('0x16')][_0x7c2c('0x23')](_0x150690['body']);})[_0x7c2c('0xc')](function(_0x3a3730){if(_0xf39941[_0x7c2c('0x22')]&&fs[_0x7c2c('0x24')](_0x3a3730['value'])){var _0xcb98ba=util[_0x7c2c('0x25')](_0x7c2c('0x26'),_0x3a3730[_0x7c2c('0x27')]);return _0x4b1dd0[_0x7c2c('0x28')](_0x3a3730[_0x7c2c('0x27')],_0xcb98ba,config[_0x7c2c('0x29')]['recording'])[_0x7c2c('0xc')](function(){fs[_0x7c2c('0x2a')](_0x3a3730[_0x7c2c('0x27')]);logger[_0x7c2c('0x2b')](_0x7c2c('0x2c'));return _0x3a3730;});}return _0x3a3730;})['then'](function(_0x47ef3c){logger[_0x7c2c('0x2b')]('CreateVoiceRecording',_0x150690);logger['debug'](_0x7c2c('0x1e'),_0x150690,JSON[_0x7c2c('0x11')](_0x47ef3c));_0xa8e145(_0x47ef3c);})[_0x7c2c('0x1d')](function(_0x156c03){logger['error'](_0x7c2c('0x1e'),_0x156c03[_0x7c2c('0x14')],_0x150690);_0x3f4618(_0x31d8f3[_0x7c2c('0x12')](0x1f4,_0x156c03[_0x7c2c('0x14')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xacaa=['../../components/auth/service','../../components/interaction/service','./voiceTransferReport.controller','isAuthenticated','index','get','/describe','describe','/:id','show','post','put','update','delete','destroy','exports','util','path','connect-timeout','express','fs-extra'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xacaa,0xa3));var _0xaaca=function(_0xd82a86,_0x1ba4f0){_0xd82a86=_0xd82a86-0x0;var _0x1d392d=_0xacaa[_0xd82a86];return _0x1d392d;};'use strict';var multer=require('multer');var util=require(_0xaaca('0x0'));var path=require(_0xaaca('0x1'));var timeout=require(_0xaaca('0x2'));var express=require(_0xaaca('0x3'));var router=express['Router']();var fs_extra=require(_0xaaca('0x4'));var auth=require(_0xaaca('0x5'));var interaction=require(_0xaaca('0x6'));var config=require('../../config/environment');var controller=require(_0xaaca('0x7'));router['get']('/',auth[_0xaaca('0x8')](),controller[_0xaaca('0x9')]);router[_0xaaca('0xa')](_0xaaca('0xb'),auth['isAuthenticated'](),controller[_0xaaca('0xc')]);router[_0xaaca('0xa')](_0xaaca('0xd'),auth['isAuthenticated'](),controller[_0xaaca('0xe')]);router[_0xaaca('0xf')]('/',auth[_0xaaca('0x8')](),controller['create']);router[_0xaaca('0x10')](_0xaaca('0xd'),auth[_0xaaca('0x8')](),controller[_0xaaca('0x11')]);router[_0xaaca('0x12')](_0xaaca('0xd'),auth[_0xaaca('0x8')](),controller[_0xaaca('0x13')]);module[_0xaaca('0x14')]=router;
\ No newline at end of file
+var _0x28bc=['update','delete','destroy','multer','util','connect-timeout','express','../../components/auth/service','../../components/interaction/service','../../config/environment','get','index','/describe','isAuthenticated','/:id','post','create','put'];(function(_0x28f11e,_0x17d684){var _0x411e56=function(_0xb06a1c){while(--_0xb06a1c){_0x28f11e['push'](_0x28f11e['shift']());}};_0x411e56(++_0x17d684);}(_0x28bc,0x93));var _0xc28b=function(_0x424a9a,_0x2dd9af){_0x424a9a=_0x424a9a-0x0;var _0xa7831c=_0x28bc[_0x424a9a];return _0xa7831c;};'use strict';var multer=require(_0xc28b('0x0'));var util=require(_0xc28b('0x1'));var path=require('path');var timeout=require(_0xc28b('0x2'));var express=require(_0xc28b('0x3'));var router=express['Router']();var fs_extra=require('fs-extra');var auth=require(_0xc28b('0x4'));var interaction=require(_0xc28b('0x5'));var config=require(_0xc28b('0x6'));var controller=require('./voiceTransferReport.controller');router[_0xc28b('0x7')]('/',auth['isAuthenticated'](),controller[_0xc28b('0x8')]);router[_0xc28b('0x7')](_0xc28b('0x9'),auth[_0xc28b('0xa')](),controller['describe']);router[_0xc28b('0x7')](_0xc28b('0xb'),auth['isAuthenticated'](),controller['show']);router[_0xc28b('0xc')]('/',auth['isAuthenticated'](),controller[_0xc28b('0xd')]);router[_0xc28b('0xe')]('/:id',auth['isAuthenticated'](),controller[_0xc28b('0xf')]);router[_0xc28b('0x10')](_0xc28b('0xb'),auth[_0xc28b('0xa')](),controller[_0xc28b('0x11')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa5b9=['STRING','Yes','sequelize','exports','ENUM','blind','attended'];(function(_0x223fee,_0xf73c07){var _0xb2b8e4=function(_0x412320){while(--_0x412320){_0x223fee['push'](_0x223fee['shift']());}};_0xb2b8e4(++_0xf73c07);}(_0xa5b9,0x1ad));var _0x9a5b=function(_0x1b96f3,_0x593070){_0x1b96f3=_0x1b96f3-0x0;var _0x4e3f3e=_0xa5b9[_0x1b96f3];return _0x4e3f3e;};'use strict';var Sequelize=require(_0x9a5b('0x0'));var moment=require('moment');module[_0x9a5b('0x1')]={'type':{'type':Sequelize[_0x9a5b('0x2')](_0x9a5b('0x3'),_0x9a5b('0x4'))},'result':{'type':Sequelize[_0x9a5b('0x5')]},'transfererchannel':{'type':Sequelize['STRING']},'transferercalleridnum':{'type':Sequelize[_0x9a5b('0x5')]},'transferercalleridname':{'type':Sequelize[_0x9a5b('0x5')]},'transfererconnectedlinenum':{'type':Sequelize['STRING']},'transfererconnectedlinename':{'type':Sequelize['STRING']},'transfereraccountcode':{'type':Sequelize[_0x9a5b('0x5')]},'transferercontext':{'type':Sequelize[_0x9a5b('0x5')]},'transfererexten':{'type':Sequelize['STRING']},'transfererlinkedid':{'type':Sequelize['STRING']},'transfereechannel':{'type':Sequelize['STRING']},'transfereecalleridnum':{'type':Sequelize['STRING']},'transfereecalleridname':{'type':Sequelize['STRING']},'transfereeconnectedlinenum':{'type':Sequelize[_0x9a5b('0x5')]},'transfereeconnectedlinename':{'type':Sequelize['STRING']},'transfereeaccountcode':{'type':Sequelize[_0x9a5b('0x5')]},'transfereecontext':{'type':Sequelize[_0x9a5b('0x5')]},'transfereeexten':{'type':Sequelize[_0x9a5b('0x5')]},'transfereelinkedid':{'type':Sequelize['STRING']},'isexternal':{'type':Sequelize['ENUM'](_0x9a5b('0x6'),'No')},'context':{'type':Sequelize[_0x9a5b('0x5')]},'extension':{'type':Sequelize['STRING']}};
\ No newline at end of file
+var _0xfbfa=['attended','STRING','sequelize','moment','exports','ENUM'];(function(_0x1a2a12,_0x51a08c){var _0x325c5a=function(_0x4e947a){while(--_0x4e947a){_0x1a2a12['push'](_0x1a2a12['shift']());}};_0x325c5a(++_0x51a08c);}(_0xfbfa,0x13a));var _0xafbf=function(_0x549490,_0xea5dd0){_0x549490=_0x549490-0x0;var _0x3a8791=_0xfbfa[_0x549490];return _0x3a8791;};'use strict';var Sequelize=require(_0xafbf('0x0'));var moment=require(_0xafbf('0x1'));module[_0xafbf('0x2')]={'type':{'type':Sequelize[_0xafbf('0x3')]('blind',_0xafbf('0x4'))},'result':{'type':Sequelize[_0xafbf('0x5')]},'transfererchannel':{'type':Sequelize[_0xafbf('0x5')]},'transferercalleridnum':{'type':Sequelize[_0xafbf('0x5')]},'transferercalleridname':{'type':Sequelize[_0xafbf('0x5')]},'transfererconnectedlinenum':{'type':Sequelize[_0xafbf('0x5')]},'transfererconnectedlinename':{'type':Sequelize[_0xafbf('0x5')]},'transfereraccountcode':{'type':Sequelize[_0xafbf('0x5')]},'transferercontext':{'type':Sequelize['STRING']},'transfererexten':{'type':Sequelize['STRING']},'transfererlinkedid':{'type':Sequelize['STRING']},'transfereechannel':{'type':Sequelize[_0xafbf('0x5')]},'transfereecalleridnum':{'type':Sequelize[_0xafbf('0x5')]},'transfereecalleridname':{'type':Sequelize['STRING']},'transfereeconnectedlinenum':{'type':Sequelize['STRING']},'transfereeconnectedlinename':{'type':Sequelize[_0xafbf('0x5')]},'transfereeaccountcode':{'type':Sequelize[_0xafbf('0x5')]},'transfereecontext':{'type':Sequelize[_0xafbf('0x5')]},'transfereeexten':{'type':Sequelize[_0xafbf('0x5')]},'transfereelinkedid':{'type':Sequelize[_0xafbf('0x5')]},'isexternal':{'type':Sequelize[_0xafbf('0x3')]('Yes','No')},'context':{'type':Sequelize[_0xafbf('0x5')]},'extension':{'type':Sequelize[_0xafbf('0x5')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x135d=['fieldName','type','key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','offset','order','sort','where','pick','merge','filter','options','include','findAll','rows','catch','show','params','keys','find','create','body','describe','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../config/license/util','sendStatus','end','status','json','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','destroy','error','name','send','index','map','VoiceTransferReport','rawAttributes'];(function(_0x3a8ce9,_0x42b558){var _0x178204=function(_0x99437d){while(--_0x99437d){_0x3a8ce9['push'](_0x3a8ce9['shift']());}};_0x178204(++_0x42b558);}(_0x135d,0x10c));var _0xd135=function(_0x31ecb6,_0x454bfe){_0x31ecb6=_0x31ecb6-0x0;var _0x24409e=_0x135d[_0x31ecb6];return _0x24409e;};'use strict';var emlformat=require(_0xd135('0x0'));var rimraf=require(_0xd135('0x1'));var zipdir=require(_0xd135('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0xd135('0x3'));var moment=require(_0xd135('0x4'));var BPromise=require(_0xd135('0x5'));var Mustache=require(_0xd135('0x6'));var util=require(_0xd135('0x7'));var path=require(_0xd135('0x8'));var sox=require(_0xd135('0x9'));var csv=require(_0xd135('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xd135('0xb'));var _=require(_0xd135('0xc'));var squel=require(_0xd135('0xd'));var crypto=require(_0xd135('0xe'));var jsforce=require(_0xd135('0xf'));var deskjs=require('desk.js');var toCsv=require(_0xd135('0xa'));var querystring=require(_0xd135('0x10'));var Papa=require(_0xd135('0x11'));var Redis=require(_0xd135('0x12'));var authService=require(_0xd135('0x13'));var qs=require(_0xd135('0x14'));var as=require(_0xd135('0x15'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xd135('0x16'))(_0xd135('0x17'));var utils=require('../../config/utils');var config=require(_0xd135('0x18'));var licenseUtil=require(_0xd135('0x19'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x325785,_0x177687){_0x177687=_0x177687||0xcc;return function(_0x45c42e){if(_0x45c42e){return _0x325785[_0xd135('0x1a')](_0x177687);}return _0x325785['status'](_0x177687)[_0xd135('0x1b')]();};}function respondWithResult(_0x35a8b5,_0x3d617a){_0x3d617a=_0x3d617a||0xc8;return function(_0x4d82f8){if(_0x4d82f8){return _0x35a8b5[_0xd135('0x1c')](_0x3d617a)[_0xd135('0x1d')](_0x4d82f8);}};}function respondWithFilteredResult(_0x53b130,_0xa25587){return function(_0xa70100){if(_0xa70100){var _0x39897b=typeof _0xa25587['offset']===_0xd135('0x1e')&&typeof _0xa25587[_0xd135('0x1f')]===_0xd135('0x1e');var _0x558c19=_0xa70100['count'];var _0x159e6c=_0x39897b?0x0:_0xa25587['offset'];var _0x598773=_0x39897b?_0xa70100[_0xd135('0x20')]:_0xa25587['offset']+_0xa25587[_0xd135('0x1f')];var _0x2d28da;if(_0x598773>=_0x558c19){_0x598773=_0x558c19;_0x2d28da=0xc8;}else{_0x2d28da=0xce;}_0x53b130[_0xd135('0x1c')](_0x2d28da);return _0x53b130[_0xd135('0x21')](_0xd135('0x22'),_0x159e6c+'-'+_0x598773+'/'+_0x558c19)['json'](_0xa70100);}return null;};}function patchUpdates(_0x336fe9){return function(_0x2416cd){try{jsonpatch[_0xd135('0x23')](_0x2416cd,_0x336fe9,!![]);}catch(_0x3b8a2a){return BPromise[_0xd135('0x24')](_0x3b8a2a);}return _0x2416cd[_0xd135('0x25')]();};}function saveUpdates(_0x195a1a,_0x46199f){return function(_0xf578e5){if(_0xf578e5){return _0xf578e5[_0xd135('0x26')](_0x195a1a)[_0xd135('0x27')](function(_0x3b146b){return _0x3b146b;});}return null;};}function removeEntity(_0x63598f,_0x9ba99c){return function(_0x2c55d6){if(_0x2c55d6){return _0x2c55d6[_0xd135('0x28')]()[_0xd135('0x27')](function(){_0x63598f['status'](0xcc)[_0xd135('0x1b')]();});}};}function handleEntityNotFound(_0x1bbb81,_0x2d8c33){return function(_0x3748c4){if(!_0x3748c4){_0x1bbb81[_0xd135('0x1a')](0x194);}return _0x3748c4;};}function handleError(_0x260e68,_0x2fd0a8){_0x2fd0a8=_0x2fd0a8||0x1f4;return function(_0x430409){logger[_0xd135('0x29')](_0x430409['stack']);if(_0x430409[_0xd135('0x2a')]){delete _0x430409[_0xd135('0x2a')];}_0x260e68[_0xd135('0x1c')](_0x2fd0a8)[_0xd135('0x2b')](_0x430409);};}exports[_0xd135('0x2c')]=function(_0x3f03a8,_0x56601a){var _0x3e9f0e={},_0x482a60={},_0x195417={'count':0x0,'rows':[]};var _0x1027b0=_[_0xd135('0x2d')](db[_0xd135('0x2e')][_0xd135('0x2f')],function(_0x2fac3f){return{'name':_0x2fac3f[_0xd135('0x30')],'type':_0x2fac3f[_0xd135('0x31')][_0xd135('0x32')]};});_0x482a60[_0xd135('0x33')]=_[_0xd135('0x2d')](_0x1027b0,_0xd135('0x2a'));_0x482a60[_0xd135('0x34')]=_['keys'](_0x3f03a8[_0xd135('0x34')]);_0x482a60[_0xd135('0x35')]=_[_0xd135('0x36')](_0x482a60[_0xd135('0x33')],_0x482a60[_0xd135('0x34')]);_0x3e9f0e[_0xd135('0x37')]=_[_0xd135('0x36')](_0x482a60[_0xd135('0x33')],qs[_0xd135('0x38')](_0x3f03a8[_0xd135('0x34')][_0xd135('0x38')]));_0x3e9f0e['attributes']=_0x3e9f0e[_0xd135('0x37')][_0xd135('0x39')]?_0x3e9f0e['attributes']:_0x482a60[_0xd135('0x33')];if(!_0x3f03a8['query'][_0xd135('0x3a')](_0xd135('0x3b'))){_0x3e9f0e[_0xd135('0x1f')]=qs[_0xd135('0x1f')](_0x3f03a8[_0xd135('0x34')][_0xd135('0x1f')]);_0x3e9f0e[_0xd135('0x3c')]=qs['offset'](_0x3f03a8[_0xd135('0x34')][_0xd135('0x3c')]);}_0x3e9f0e[_0xd135('0x3d')]=qs[_0xd135('0x3e')](_0x3f03a8[_0xd135('0x34')][_0xd135('0x3e')]);_0x3e9f0e[_0xd135('0x3f')]=qs[_0xd135('0x35')](_[_0xd135('0x40')](_0x3f03a8[_0xd135('0x34')],_0x482a60[_0xd135('0x35')]),_0x1027b0);if(_0x3f03a8['query']['filter']){_0x3e9f0e[_0xd135('0x3f')]=_[_0xd135('0x41')](_0x3e9f0e[_0xd135('0x3f')],{'$or':_['map'](_0x1027b0,function(_0xd08be7){if(_0xd08be7[_0xd135('0x31')]!=='VIRTUAL'){var _0x4f956a={};_0x4f956a[_0xd08be7[_0xd135('0x2a')]]={'$like':'%'+_0x3f03a8[_0xd135('0x34')][_0xd135('0x42')]+'%'};return _0x4f956a;}})});}_0x3e9f0e=_[_0xd135('0x41')]({},_0x3e9f0e,_0x3f03a8[_0xd135('0x43')]);var _0x101368={'where':_0x3e9f0e['where']};return db['VoiceTransferReport'][_0xd135('0x20')](_0x101368)[_0xd135('0x27')](function(_0x3109e5){_0x195417[_0xd135('0x20')]=_0x3109e5;if(_0x3f03a8[_0xd135('0x34')]['includeAll']){_0x3e9f0e[_0xd135('0x44')]=[{'all':!![]}];}return db[_0xd135('0x2e')][_0xd135('0x45')](_0x3e9f0e);})[_0xd135('0x27')](function(_0x1df367){_0x195417[_0xd135('0x46')]=_0x1df367;return _0x195417;})[_0xd135('0x27')](respondWithFilteredResult(_0x56601a,_0x3e9f0e))[_0xd135('0x47')](handleError(_0x56601a,null));};exports[_0xd135('0x48')]=function(_0x3a653f,_0x41ebf5){var _0x289c63={'raw':!![],'where':{'id':_0x3a653f[_0xd135('0x49')]['id']}},_0x569573={};_0x569573['model']=_[_0xd135('0x4a')](db[_0xd135('0x2e')]['rawAttributes']);_0x569573[_0xd135('0x34')]=_['keys'](_0x3a653f[_0xd135('0x34')]);_0x569573['filters']=_[_0xd135('0x36')](_0x569573[_0xd135('0x33')],_0x569573['query']);_0x289c63['attributes']=_[_0xd135('0x36')](_0x569573[_0xd135('0x33')],qs['fields'](_0x3a653f[_0xd135('0x34')][_0xd135('0x38')]));_0x289c63[_0xd135('0x37')]=_0x289c63[_0xd135('0x37')]['length']?_0x289c63['attributes']:_0x569573[_0xd135('0x33')];if(_0x3a653f[_0xd135('0x34')]['includeAll']){_0x289c63[_0xd135('0x44')]=[{'all':!![]}];}_0x289c63=_[_0xd135('0x41')]({},_0x289c63,_0x3a653f['options']);return db[_0xd135('0x2e')][_0xd135('0x4b')](_0x289c63)[_0xd135('0x27')](handleEntityNotFound(_0x41ebf5,null))[_0xd135('0x27')](respondWithResult(_0x41ebf5,null))[_0xd135('0x47')](handleError(_0x41ebf5,null));};exports[_0xd135('0x4c')]=function(_0x3ac6fe,_0x4fdfa2){return db[_0xd135('0x2e')][_0xd135('0x4c')](_0x3ac6fe[_0xd135('0x4d')],{})[_0xd135('0x27')](respondWithResult(_0x4fdfa2,0xc9))[_0xd135('0x47')](handleError(_0x4fdfa2,null));};exports['update']=function(_0x3ba0b1,_0x39bf1a){if(_0x3ba0b1[_0xd135('0x4d')]['id']){delete _0x3ba0b1['body']['id'];}return db[_0xd135('0x2e')]['find']({'where':{'id':_0x3ba0b1['params']['id']}})[_0xd135('0x27')](handleEntityNotFound(_0x39bf1a,null))['then'](saveUpdates(_0x3ba0b1[_0xd135('0x4d')],null))['then'](respondWithResult(_0x39bf1a,null))['catch'](handleError(_0x39bf1a,null));};exports[_0xd135('0x28')]=function(_0x2ce4e4,_0x2fb926){return db[_0xd135('0x2e')]['find']({'where':{'id':_0x2ce4e4['params']['id']}})['then'](handleEntityNotFound(_0x2fb926,null))['then'](removeEntity(_0x2fb926,null))[_0xd135('0x47')](handleError(_0x2fb926,null));};exports[_0xd135('0x4e')]=function(_0x12d55a,_0x513c7b){return db[_0xd135('0x2e')][_0xd135('0x4e')]()[_0xd135('0x27')](respondWithResult(_0x513c7b,null))[_0xd135('0x47')](handleError(_0x513c7b,null));};
\ No newline at end of file
+var _0xb1b2=['../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','undefined','count','limit','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','send','index','map','VoiceTransferReport','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','VIRTUAL','options','include','findAll','catch','show','params','includeAll','find','create','body','describe','eml-format','zip-dir','fast-json-patch','request-promise','mustache','util','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware'];(function(_0x11005e,_0x20c3d2){var _0x29338f=function(_0x3384e9){while(--_0x3384e9){_0x11005e['push'](_0x11005e['shift']());}};_0x29338f(++_0x20c3d2);}(_0xb1b2,0x128));var _0x2b1b=function(_0x4bb811,_0x2c796a){_0x4bb811=_0x4bb811-0x0;var _0x5cf515=_0xb1b2[_0x4bb811];return _0x5cf515;};'use strict';var emlformat=require(_0x2b1b('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x2b1b('0x1'));var jsonpatch=require(_0x2b1b('0x2'));var rp=require(_0x2b1b('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x2b1b('0x4'));var util=require(_0x2b1b('0x5'));var path=require('path');var sox=require(_0x2b1b('0x6'));var csv=require(_0x2b1b('0x7'));var ejs=require(_0x2b1b('0x8'));var fs=require('fs');var fs_extra=require(_0x2b1b('0x9'));var _=require(_0x2b1b('0xa'));var squel=require(_0x2b1b('0xb'));var crypto=require(_0x2b1b('0xc'));var jsforce=require(_0x2b1b('0xd'));var deskjs=require(_0x2b1b('0xe'));var toCsv=require(_0x2b1b('0x7'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x2b1b('0xf'));var authService=require(_0x2b1b('0x10'));var qs=require(_0x2b1b('0x11'));var as=require(_0x2b1b('0x12'));var hardwareService=require(_0x2b1b('0x13'));var logger=require(_0x2b1b('0x14'))(_0x2b1b('0x15'));var utils=require(_0x2b1b('0x16'));var config=require(_0x2b1b('0x17'));var licenseUtil=require(_0x2b1b('0x18'));var db=require(_0x2b1b('0x19'))['db'];function respondWithStatusCode(_0x453737,_0x27c703){_0x27c703=_0x27c703||0xcc;return function(_0x302593){if(_0x302593){return _0x453737[_0x2b1b('0x1a')](_0x27c703);}return _0x453737['status'](_0x27c703)[_0x2b1b('0x1b')]();};}function respondWithResult(_0x3658cd,_0x45c61f){_0x45c61f=_0x45c61f||0xc8;return function(_0x5ca43d){if(_0x5ca43d){return _0x3658cd[_0x2b1b('0x1c')](_0x45c61f)[_0x2b1b('0x1d')](_0x5ca43d);}};}function respondWithFilteredResult(_0x4e8eff,_0x20f34b){return function(_0x15f617){if(_0x15f617){var _0x1fa1f0=typeof _0x20f34b[_0x2b1b('0x1e')]===_0x2b1b('0x1f')&&typeof _0x20f34b['limit']===_0x2b1b('0x1f');var _0x1e3f96=_0x15f617[_0x2b1b('0x20')];var _0x548841=_0x1fa1f0?0x0:_0x20f34b['offset'];var _0x5c4699=_0x1fa1f0?_0x15f617[_0x2b1b('0x20')]:_0x20f34b[_0x2b1b('0x1e')]+_0x20f34b[_0x2b1b('0x21')];var _0x250450;if(_0x5c4699>=_0x1e3f96){_0x5c4699=_0x1e3f96;_0x250450=0xc8;}else{_0x250450=0xce;}_0x4e8eff[_0x2b1b('0x1c')](_0x250450);return _0x4e8eff['set'](_0x2b1b('0x22'),_0x548841+'-'+_0x5c4699+'/'+_0x1e3f96)[_0x2b1b('0x1d')](_0x15f617);}return null;};}function patchUpdates(_0x304ed6){return function(_0x5973e6){try{jsonpatch[_0x2b1b('0x23')](_0x5973e6,_0x304ed6,!![]);}catch(_0x57f2c9){return BPromise[_0x2b1b('0x24')](_0x57f2c9);}return _0x5973e6[_0x2b1b('0x25')]();};}function saveUpdates(_0x120b66,_0x47b137){return function(_0x157c42){if(_0x157c42){return _0x157c42[_0x2b1b('0x26')](_0x120b66)[_0x2b1b('0x27')](function(_0x1662cc){return _0x1662cc;});}return null;};}function removeEntity(_0x4659f0,_0x3e1e72){return function(_0xb1b02){if(_0xb1b02){return _0xb1b02[_0x2b1b('0x28')]()[_0x2b1b('0x27')](function(){_0x4659f0[_0x2b1b('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x537781,_0x15a11e){return function(_0x38fe56){if(!_0x38fe56){_0x537781['sendStatus'](0x194);}return _0x38fe56;};}function handleError(_0x1fa85a,_0x3d1255){_0x3d1255=_0x3d1255||0x1f4;return function(_0x885406){logger[_0x2b1b('0x29')](_0x885406[_0x2b1b('0x2a')]);if(_0x885406[_0x2b1b('0x2b')]){delete _0x885406[_0x2b1b('0x2b')];}_0x1fa85a[_0x2b1b('0x1c')](_0x3d1255)[_0x2b1b('0x2c')](_0x885406);};}exports[_0x2b1b('0x2d')]=function(_0x533737,_0x4f4f3c){var _0x7f5bb3={},_0x46c790={},_0x383ca1={'count':0x0,'rows':[]};var _0xbd63af=_[_0x2b1b('0x2e')](db[_0x2b1b('0x2f')]['rawAttributes'],function(_0x168fa3){return{'name':_0x168fa3[_0x2b1b('0x30')],'type':_0x168fa3[_0x2b1b('0x31')][_0x2b1b('0x32')]};});_0x46c790[_0x2b1b('0x33')]=_[_0x2b1b('0x2e')](_0xbd63af,_0x2b1b('0x2b'));_0x46c790[_0x2b1b('0x34')]=_[_0x2b1b('0x35')](_0x533737['query']);_0x46c790[_0x2b1b('0x36')]=_['intersection'](_0x46c790[_0x2b1b('0x33')],_0x46c790[_0x2b1b('0x34')]);_0x7f5bb3['attributes']=_[_0x2b1b('0x37')](_0x46c790[_0x2b1b('0x33')],qs[_0x2b1b('0x38')](_0x533737[_0x2b1b('0x34')][_0x2b1b('0x38')]));_0x7f5bb3[_0x2b1b('0x39')]=_0x7f5bb3[_0x2b1b('0x39')][_0x2b1b('0x3a')]?_0x7f5bb3[_0x2b1b('0x39')]:_0x46c790[_0x2b1b('0x33')];if(!_0x533737['query'][_0x2b1b('0x3b')](_0x2b1b('0x3c'))){_0x7f5bb3['limit']=qs[_0x2b1b('0x21')](_0x533737['query'][_0x2b1b('0x21')]);_0x7f5bb3[_0x2b1b('0x1e')]=qs[_0x2b1b('0x1e')](_0x533737[_0x2b1b('0x34')][_0x2b1b('0x1e')]);}_0x7f5bb3[_0x2b1b('0x3d')]=qs[_0x2b1b('0x3e')](_0x533737[_0x2b1b('0x34')][_0x2b1b('0x3e')]);_0x7f5bb3['where']=qs[_0x2b1b('0x36')](_[_0x2b1b('0x3f')](_0x533737['query'],_0x46c790[_0x2b1b('0x36')]),_0xbd63af);if(_0x533737[_0x2b1b('0x34')][_0x2b1b('0x40')]){_0x7f5bb3[_0x2b1b('0x41')]=_[_0x2b1b('0x42')](_0x7f5bb3['where'],{'$or':_[_0x2b1b('0x2e')](_0xbd63af,function(_0x5a0153){if(_0x5a0153[_0x2b1b('0x31')]!==_0x2b1b('0x43')){var _0x16a5bb={};_0x16a5bb[_0x5a0153[_0x2b1b('0x2b')]]={'$like':'%'+_0x533737[_0x2b1b('0x34')][_0x2b1b('0x40')]+'%'};return _0x16a5bb;}})});}_0x7f5bb3=_[_0x2b1b('0x42')]({},_0x7f5bb3,_0x533737[_0x2b1b('0x44')]);var _0x516bef={'where':_0x7f5bb3['where']};return db[_0x2b1b('0x2f')][_0x2b1b('0x20')](_0x516bef)['then'](function(_0x135a72){_0x383ca1[_0x2b1b('0x20')]=_0x135a72;if(_0x533737[_0x2b1b('0x34')]['includeAll']){_0x7f5bb3[_0x2b1b('0x45')]=[{'all':!![]}];}return db[_0x2b1b('0x2f')][_0x2b1b('0x46')](_0x7f5bb3);})[_0x2b1b('0x27')](function(_0x3e1b35){_0x383ca1['rows']=_0x3e1b35;return _0x383ca1;})[_0x2b1b('0x27')](respondWithFilteredResult(_0x4f4f3c,_0x7f5bb3))[_0x2b1b('0x47')](handleError(_0x4f4f3c,null));};exports[_0x2b1b('0x48')]=function(_0x2ccc52,_0x27cc59){var _0x59716a={'raw':!![],'where':{'id':_0x2ccc52[_0x2b1b('0x49')]['id']}},_0x55615b={};_0x55615b[_0x2b1b('0x33')]=_[_0x2b1b('0x35')](db['VoiceTransferReport']['rawAttributes']);_0x55615b[_0x2b1b('0x34')]=_[_0x2b1b('0x35')](_0x2ccc52['query']);_0x55615b[_0x2b1b('0x36')]=_[_0x2b1b('0x37')](_0x55615b[_0x2b1b('0x33')],_0x55615b[_0x2b1b('0x34')]);_0x59716a[_0x2b1b('0x39')]=_[_0x2b1b('0x37')](_0x55615b[_0x2b1b('0x33')],qs[_0x2b1b('0x38')](_0x2ccc52[_0x2b1b('0x34')][_0x2b1b('0x38')]));_0x59716a[_0x2b1b('0x39')]=_0x59716a['attributes'][_0x2b1b('0x3a')]?_0x59716a[_0x2b1b('0x39')]:_0x55615b[_0x2b1b('0x33')];if(_0x2ccc52[_0x2b1b('0x34')][_0x2b1b('0x4a')]){_0x59716a[_0x2b1b('0x45')]=[{'all':!![]}];}_0x59716a=_[_0x2b1b('0x42')]({},_0x59716a,_0x2ccc52['options']);return db['VoiceTransferReport'][_0x2b1b('0x4b')](_0x59716a)[_0x2b1b('0x27')](handleEntityNotFound(_0x27cc59,null))[_0x2b1b('0x27')](respondWithResult(_0x27cc59,null))[_0x2b1b('0x47')](handleError(_0x27cc59,null));};exports[_0x2b1b('0x4c')]=function(_0x73ff6d,_0x26cd20){return db[_0x2b1b('0x2f')][_0x2b1b('0x4c')](_0x73ff6d[_0x2b1b('0x4d')],{})[_0x2b1b('0x27')](respondWithResult(_0x26cd20,0xc9))['catch'](handleError(_0x26cd20,null));};exports['update']=function(_0x1912eb,_0x3417da){if(_0x1912eb[_0x2b1b('0x4d')]['id']){delete _0x1912eb[_0x2b1b('0x4d')]['id'];}return db[_0x2b1b('0x2f')]['find']({'where':{'id':_0x1912eb[_0x2b1b('0x49')]['id']}})[_0x2b1b('0x27')](handleEntityNotFound(_0x3417da,null))['then'](saveUpdates(_0x1912eb['body'],null))[_0x2b1b('0x27')](respondWithResult(_0x3417da,null))['catch'](handleError(_0x3417da,null));};exports['destroy']=function(_0x33431d,_0x157aa7){return db['VoiceTransferReport'][_0x2b1b('0x4b')]({'where':{'id':_0x33431d[_0x2b1b('0x49')]['id']}})[_0x2b1b('0x27')](handleEntityNotFound(_0x157aa7,null))[_0x2b1b('0x27')](removeEntity(_0x157aa7,null))['catch'](handleError(_0x157aa7,null));};exports[_0x2b1b('0x4e')]=function(_0x532683,_0x363183){return db[_0x2b1b('0x2f')][_0x2b1b('0x4e')]()[_0x2b1b('0x27')](respondWithResult(_0x363183,null))[_0x2b1b('0x47')](handleError(_0x363183,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x449c=['./voiceTransferReport.attributes','VoiceTransferReport','report_call_transfer','lodash','util','../../config/logger','api','moment','request-promise','rimraf','../../config/environment'];(function(_0x5ada18,_0xf488e4){var _0x1821f6=function(_0x281f0a){while(--_0x281f0a){_0x5ada18['push'](_0x5ada18['shift']());}};_0x1821f6(++_0xf488e4);}(_0x449c,0x9d));var _0xc449=function(_0x34b821,_0x504e55){_0x34b821=_0x34b821-0x0;var _0x5e00a0=_0x449c[_0x34b821];return _0x5e00a0;};'use strict';var _=require(_0xc449('0x0'));var util=require(_0xc449('0x1'));var logger=require(_0xc449('0x2'))(_0xc449('0x3'));var moment=require(_0xc449('0x4'));var BPromise=require('bluebird');var rp=require(_0xc449('0x5'));var fs=require('fs');var path=require('path');var rimraf=require(_0xc449('0x6'));var config=require(_0xc449('0x7'));var attributes=require(_0xc449('0x8'));module['exports']=function(_0x59916b,_0x1da7e1){return _0x59916b['define'](_0xc449('0x9'),attributes,{'tableName':_0xc449('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x668e=['./voiceTransferReport.attributes','exports','define','VoiceTransferReport','report_call_transfer','util','../../config/logger','api','path','rimraf','../../config/environment'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x668e,0x12e));var _0xe668=function(_0x38c0b2,_0x6a67a5){_0x38c0b2=_0x38c0b2-0x0;var _0x283c00=_0x668e[_0x38c0b2];return _0x283c00;};'use strict';var _=require('lodash');var util=require(_0xe668('0x0'));var logger=require(_0xe668('0x1'))(_0xe668('0x2'));var moment=require('moment');var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0xe668('0x3'));var rimraf=require(_0xe668('0x4'));var config=require(_0xe668('0x5'));var attributes=require(_0xe668('0x6'));module[_0xe668('0x7')]=function(_0x5a7419,_0x7928a1){return _0x5a7419[_0xe668('0x8')](_0xe668('0x9'),attributes,{'tableName':_0xe668('0xa'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb2da=['options','lodash','util','bluebird','randomstring','ioredis','../../config/utils','rpc','jayson/promise','client','request','then','info','request\x20sent','debug','VoiceTransferReport,\x20%s,\x20%s,\x20%s','stringify','error','code','VoiceTransferReport,\x20%s,\x20%s','message','result','catch','CreateVoiceTransferReport','VoiceTransferReport','create','body'];(function(_0x5c3ae9,_0x450f9a){var _0x3f5950=function(_0x594c1f){while(--_0x594c1f){_0x5c3ae9['push'](_0x5c3ae9['shift']());}};_0x3f5950(++_0x450f9a);}(_0xb2da,0x17b));var _0xab2d=function(_0x3d3ada,_0x1aa5da){_0x3d3ada=_0x3d3ada-0x0;var _0x200254=_0xb2da[_0x3d3ada];return _0x200254;};'use strict';var _=require(_0xab2d('0x0'));var util=require(_0xab2d('0x1'));var moment=require('moment');var BPromise=require(_0xab2d('0x2'));var rs=require(_0xab2d('0x3'));var fs=require('fs');var Redis=require(_0xab2d('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0xab2d('0x5'));var logger=require('../../config/logger')(_0xab2d('0x6'));var config=require('../../config/environment');var jayson=require(_0xab2d('0x7'));var client=jayson[_0xab2d('0x8')]['http']({'port':0x232a});function respondWithRpcPromise(_0x5344ca,_0x2b3dc8,_0x29df08){return new BPromise(function(_0x951134,_0x49ef13){return client[_0xab2d('0x9')](_0x5344ca,_0x29df08)[_0xab2d('0xa')](function(_0x3a5000){logger[_0xab2d('0xb')]('VoiceTransferReport,\x20%s,\x20%s',_0x2b3dc8,_0xab2d('0xc'));logger[_0xab2d('0xd')](_0xab2d('0xe'),_0x2b3dc8,_0xab2d('0xc'),JSON[_0xab2d('0xf')](_0x3a5000));if(_0x3a5000[_0xab2d('0x10')]){if(_0x3a5000[_0xab2d('0x10')][_0xab2d('0x11')]===0x1f4){logger[_0xab2d('0x10')](_0xab2d('0x12'),_0x2b3dc8,_0x3a5000[_0xab2d('0x10')][_0xab2d('0x13')]);return _0x49ef13(_0x3a5000[_0xab2d('0x10')][_0xab2d('0x13')]);}logger[_0xab2d('0x10')](_0xab2d('0x12'),_0x2b3dc8,_0x3a5000[_0xab2d('0x10')][_0xab2d('0x13')]);return _0x951134(_0x3a5000[_0xab2d('0x10')]['message']);}else{logger[_0xab2d('0xb')]('VoiceTransferReport,\x20%s,\x20%s',_0x2b3dc8,_0xab2d('0xc'));_0x951134(_0x3a5000[_0xab2d('0x14')][_0xab2d('0x13')]);}})[_0xab2d('0x15')](function(_0x183804){logger[_0xab2d('0x10')](_0xab2d('0x12'),_0x2b3dc8,_0x183804);_0x49ef13(_0x183804);});});}exports[_0xab2d('0x16')]=function(_0x47a6e3){var _0x42b10c=this;return new Promise(function(_0x4f66f6,_0xdf5d85){return db[_0xab2d('0x17')][_0xab2d('0x18')](_0x47a6e3[_0xab2d('0x19')],{'raw':_0x47a6e3[_0xab2d('0x1a')]?_0x47a6e3['options']['raw']===undefined?!![]:![]:!![]})['then'](function(_0x59992b){logger['info'](_0xab2d('0x16'),_0x47a6e3);logger[_0xab2d('0xd')]('CreateVoiceTransferReport',_0x47a6e3,JSON['stringify'](_0x59992b));_0x4f66f6(_0x59992b);})[_0xab2d('0x15')](function(_0x11c794){logger[_0xab2d('0x10')]('CreateVoiceTransferReport',_0x11c794[_0xab2d('0x13')],_0x47a6e3);_0xdf5d85(_0x42b10c[_0xab2d('0x10')](0x1f4,_0x11c794[_0xab2d('0x13')]));});});};
\ No newline at end of file
+var _0x5ed8=['info','CreateVoiceTransferReport','VoiceTransferReport','create','options','raw','then','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','request','VoiceTransferReport,\x20%s,\x20%s','request\x20sent','debug','VoiceTransferReport,\x20%s,\x20%s,\x20%s','stringify','error','code','message'];(function(_0x19e35c,_0x29cd1e){var _0x3e1fe8=function(_0x17258b){while(--_0x17258b){_0x19e35c['push'](_0x19e35c['shift']());}};_0x3e1fe8(++_0x29cd1e);}(_0x5ed8,0x133));var _0x85ed=function(_0x1b349a,_0x22222c){_0x1b349a=_0x1b349a-0x0;var _0x5d1f7c=_0x5ed8[_0x1b349a];return _0x5d1f7c;};'use strict';var _=require(_0x85ed('0x0'));var util=require(_0x85ed('0x1'));var moment=require(_0x85ed('0x2'));var BPromise=require(_0x85ed('0x3'));var rs=require(_0x85ed('0x4'));var fs=require('fs');var Redis=require(_0x85ed('0x5'));var db=require(_0x85ed('0x6'))['db'];var utils=require(_0x85ed('0x7'));var logger=require(_0x85ed('0x8'))(_0x85ed('0x9'));var config=require(_0x85ed('0xa'));var jayson=require(_0x85ed('0xb'));var client=jayson[_0x85ed('0xc')][_0x85ed('0xd')]({'port':0x232a});function respondWithRpcPromise(_0xd51bfb,_0x40e7b9,_0x2cecaf){return new BPromise(function(_0x364544,_0x2ad8be){return client[_0x85ed('0xe')](_0xd51bfb,_0x2cecaf)['then'](function(_0x40e31e){logger['info'](_0x85ed('0xf'),_0x40e7b9,_0x85ed('0x10'));logger[_0x85ed('0x11')](_0x85ed('0x12'),_0x40e7b9,_0x85ed('0x10'),JSON[_0x85ed('0x13')](_0x40e31e));if(_0x40e31e[_0x85ed('0x14')]){if(_0x40e31e[_0x85ed('0x14')][_0x85ed('0x15')]===0x1f4){logger[_0x85ed('0x14')]('VoiceTransferReport,\x20%s,\x20%s',_0x40e7b9,_0x40e31e['error'][_0x85ed('0x16')]);return _0x2ad8be(_0x40e31e[_0x85ed('0x14')][_0x85ed('0x16')]);}logger[_0x85ed('0x14')](_0x85ed('0xf'),_0x40e7b9,_0x40e31e['error']['message']);return _0x364544(_0x40e31e['error']['message']);}else{logger[_0x85ed('0x17')](_0x85ed('0xf'),_0x40e7b9,'request\x20sent');_0x364544(_0x40e31e['result'][_0x85ed('0x16')]);}})['catch'](function(_0x4cfa29){logger[_0x85ed('0x14')]('VoiceTransferReport,\x20%s,\x20%s',_0x40e7b9,_0x4cfa29);_0x2ad8be(_0x4cfa29);});});}exports[_0x85ed('0x18')]=function(_0x3c354f){var _0x43125a=this;return new Promise(function(_0x54177a,_0x57b781){return db[_0x85ed('0x19')][_0x85ed('0x1a')](_0x3c354f['body'],{'raw':_0x3c354f[_0x85ed('0x1b')]?_0x3c354f['options'][_0x85ed('0x1c')]===undefined?!![]:![]:!![]})[_0x85ed('0x1d')](function(_0x525741){logger[_0x85ed('0x17')]('CreateVoiceTransferReport',_0x3c354f);logger[_0x85ed('0x11')](_0x85ed('0x18'),_0x3c354f,JSON[_0x85ed('0x13')](_0x525741));_0x54177a(_0x525741);})['catch'](function(_0x31fd14){logger[_0x85ed('0x14')](_0x85ed('0x18'),_0x31fd14[_0x85ed('0x16')],_0x3c354f);_0x57b781(_0x43125a['error'](0x1f4,_0x31fd14[_0x85ed('0x16')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x54ef=['unhold','/calls','/transfer','transfer','express','Router','../../components/auth/service','post','/originate','isAuthenticated','isWebrtcLicence','originate','/hangup','hangup','/answer','/hold','hold','/unhold'];(function(_0xb00b9c,_0x52632e){var _0x4b51ce=function(_0x15ea7d){while(--_0x15ea7d){_0xb00b9c['push'](_0xb00b9c['shift']());}};_0x4b51ce(++_0x52632e);}(_0x54ef,0x112));var _0xf54e=function(_0x119ecc,_0x4fcd44){_0x119ecc=_0x119ecc-0x0;var _0x6d4c7f=_0x54ef[_0x119ecc];return _0x6d4c7f;};'use strict';var express=require(_0xf54e('0x0'));var router=express[_0xf54e('0x1')]();var auth=require(_0xf54e('0x2'));var controller=require('./webbar.controller');router[_0xf54e('0x3')](_0xf54e('0x4'),auth[_0xf54e('0x5')](),auth[_0xf54e('0x6')](),controller[_0xf54e('0x7')]);router[_0xf54e('0x3')](_0xf54e('0x8'),auth['isAuthenticated'](),auth['isWebrtcLicence'](),controller[_0xf54e('0x9')]);router[_0xf54e('0x3')](_0xf54e('0xa'),auth['isAuthenticated'](),auth[_0xf54e('0x6')](),controller['answer']);router[_0xf54e('0x3')](_0xf54e('0xb'),auth['isAuthenticated'](),auth[_0xf54e('0x6')](),controller[_0xf54e('0xc')]);router[_0xf54e('0x3')](_0xf54e('0xd'),auth['isAuthenticated'](),auth[_0xf54e('0x6')](),controller[_0xf54e('0xe')]);router[_0xf54e('0x3')](_0xf54e('0xf'),auth['isAuthenticated'](),auth[_0xf54e('0x6')](),controller['calls']);router['post'](_0xf54e('0x10'),auth[_0xf54e('0x5')](),auth[_0xf54e('0x6')](),controller[_0xf54e('0x11')]);module['exports']=router;
\ No newline at end of file
+var _0x750a=['Router','post','/originate','isAuthenticated','isWebrtcLicence','originate','/hangup','hangup','/answer','/unhold','unhold','/calls','calls','/transfer','transfer','exports'];(function(_0x41bdd4,_0x3d5c76){var _0x5c03a6=function(_0x59634a){while(--_0x59634a){_0x41bdd4['push'](_0x41bdd4['shift']());}};_0x5c03a6(++_0x3d5c76);}(_0x750a,0x140));var _0xa750=function(_0x36e2d5,_0x178342){_0x36e2d5=_0x36e2d5-0x0;var _0x323cc7=_0x750a[_0x36e2d5];return _0x323cc7;};'use strict';var express=require('express');var router=express[_0xa750('0x0')]();var auth=require('../../components/auth/service');var controller=require('./webbar.controller');router[_0xa750('0x1')](_0xa750('0x2'),auth[_0xa750('0x3')](),auth[_0xa750('0x4')](),controller[_0xa750('0x5')]);router[_0xa750('0x1')](_0xa750('0x6'),auth[_0xa750('0x3')](),auth[_0xa750('0x4')](),controller[_0xa750('0x7')]);router[_0xa750('0x1')](_0xa750('0x8'),auth[_0xa750('0x3')](),auth['isWebrtcLicence'](),controller['answer']);router[_0xa750('0x1')]('/hold',auth[_0xa750('0x3')](),auth[_0xa750('0x4')](),controller['hold']);router[_0xa750('0x1')](_0xa750('0x9'),auth['isAuthenticated'](),auth['isWebrtcLicence'](),controller[_0xa750('0xa')]);router['post'](_0xa750('0xb'),auth[_0xa750('0x3')](),auth['isWebrtcLicence'](),controller[_0xa750('0xc')]);router[_0xa750('0x1')](_0xa750('0xd'),auth['isAuthenticated'](),auth[_0xa750('0x4')](),controller[_0xa750('0xe')]);module[_0xa750('0xf')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8b29=['error','name','status','send','NotFound','then','code','message','result','catch','agent','VoiceChannels','all','filter','rows','UserId','sessionId','sessionId\x20','\x20not\x20found!','originate','originate\x20fired:','body','length','json','userId','callNumber','callerId','callbackUrl','entityFound:','format','user:%s','originate\x20executed!','hangup\x20fired:','webbar:hangup','hangup\x20executed!','answer\x20fired:','webbar:answer','answer\x20executed!','hold','webbar:hold','hold\x20executed!','unhold','unhold\x20fired:','webbar:unhold','conference','webbar:conference','conference\x20executed!','transfer\x20fired:','transferNumber','webbar:transfer','path','../../mysqldb','../../config/environment','jayson/promise','client','../../config/logger','ioredis','redis','defaults','localhost','socket.io-emitter','validate','number','userId\x20is\x20required','string','sessionId\x20is\x20required','info','stringify','emit','log'];(function(_0x5baa41,_0x3b7551){var _0x248b55=function(_0x811771){while(--_0x811771){_0x5baa41['push'](_0x5baa41['shift']());}};_0x248b55(++_0x3b7551);}(_0x8b29,0xbe));var _0x98b2=function(_0x1f0868,_0x4f4970){_0x1f0868=_0x1f0868-0x0;var _0x48311c=_0x8b29[_0x1f0868];return _0x48311c;};'use strict';var path=require(_0x98b2('0x0'));var fs=require('fs');var _=require('lodash');var db=require(_0x98b2('0x1'))['db'];var config=require(_0x98b2('0x2'));var util=require('util');var BPromise=require('bluebird');var jayson=require(_0x98b2('0x3'));var amiClient=jayson[_0x98b2('0x4')]['http']({'port':0x232a});var logger=require(_0x98b2('0x5'))('webbarapi');var Redis=require(_0x98b2('0x6'));config[_0x98b2('0x7')]=_[_0x98b2('0x8')](config[_0x98b2('0x7')],{'host':_0x98b2('0x9'),'port':0x18eb});var io=require(_0x98b2('0xa'))(new Redis(config[_0x98b2('0x7')]));var Schema=require(_0x98b2('0xb'));var originateValidation=new Schema({'userId':{'type':_0x98b2('0xc'),'required':[!![],_0x98b2('0xd')]},'callNumber':{'type':'string','required':[!![],'callNumber\x20is\x20required']},'callerId':{'type':_0x98b2('0xe')},'callbackUrl':{'type':_0x98b2('0xe')}});var hangupValidation=new Schema({'userId':{'type':_0x98b2('0xc'),'required':[!![],_0x98b2('0xd')]},'sessionId':{'type':_0x98b2('0xe'),'required':![]}});var answerValidation=new Schema({'userId':{'type':_0x98b2('0xc'),'required':[!![],'userId\x20is\x20required']},'sessionId':{'type':_0x98b2('0xe'),'required':![]}});var transferValidation=new Schema({'userId':{'type':_0x98b2('0xc'),'required':[!![],'userId\x20is\x20required']},'sessionId':{'type':_0x98b2('0xe'),'required':[!![],_0x98b2('0xf')]},'transferNumber':{'type':_0x98b2('0xe'),'required':[!![],'transferNumber\x20is\x20required']}});var holdValidation=new Schema({'userId':{'type':'number','required':[!![],_0x98b2('0xd')]},'sessionId':{'type':'string','required':![]}});var unholdValidation=new Schema({'userId':{'type':_0x98b2('0xc'),'required':[!![],'userId\x20is\x20required']},'sessionId':{'type':'string','required':![]}});var callsValidation=new Schema({'userId':{'type':'number','required':[!![],_0x98b2('0xd')]}});var conferenceValidation=new Schema({'userId':{'type':_0x98b2('0xc'),'required':[!![],_0x98b2('0xd')]}});function emit(_0x5ecea1,_0x5bb60d,_0x5dd057){logger[_0x98b2('0x10')](_0x5ecea1,_0x5bb60d,JSON[_0x98b2('0x11')](_0x5dd057));io['to'](_0x5ecea1)[_0x98b2('0x12')](_0x5bb60d,_0x5dd057);}function handleError(_0x2c7797){return function(_0x4b9f2c){console[_0x98b2('0x13')]('handleError:',_0x4b9f2c,_0x4b9f2c instanceof RangeError);logger[_0x98b2('0x14')](_0x4b9f2c['stack']);if(_0x4b9f2c instanceof RangeError){if(_0x4b9f2c[_0x98b2('0x15')]){delete _0x4b9f2c[_0x98b2('0x15')];}_0x2c7797[_0x98b2('0x16')](0x194)[_0x98b2('0x17')](_0x4b9f2c);}else{if(_0x4b9f2c['name']){delete _0x4b9f2c[_0x98b2('0x15')];}_0x2c7797[_0x98b2('0x16')](0x1f4)['send'](_0x4b9f2c);}};}function checkError(){return function(_0x47e74d){if(!_0x47e74d){throw new RangeError(_0x98b2('0x18'));}return _0x47e74d;};}function respondWithRpcPromise(_0xf45da9,_0x4a3fa1){return new BPromise(function(_0x4ddded,_0x3796c0){var _0x37fc18=amiClient;return _0x37fc18['request'](_0xf45da9,_0x4a3fa1)[_0x98b2('0x19')](function(_0x13d149){if(_0x13d149[_0x98b2('0x14')]){if(_0x13d149['error'][_0x98b2('0x1a')]===0x1f4){return _0x3796c0(_0x13d149['error'][_0x98b2('0x1b')]);}return _0x4ddded(_0x13d149['error']['message']);}else{_0x4ddded(_0x13d149[_0x98b2('0x1c')]);}})[_0x98b2('0x1d')](function(_0x5fcd00){_0x3796c0(_0x5fcd00);});});}function getAgent(_0x525b57){return db['User']['findOne']({'where':{'id':_0x525b57,'role':_0x98b2('0x1e')}})[_0x98b2('0x19')](checkError());}function getAgentCheckSession(_0x50aafb,_0xecb32b){return new BPromise(function(_0x28db65,_0x26625b){var _0x56efb6=respondWithRpcPromise(_0x98b2('0x1f'));var _0x1dee11=getAgent(_0x50aafb);Promise[_0x98b2('0x20')]([_0x56efb6,_0x1dee11])[_0x98b2('0x19')](function(_0x25393d){var _0x5dd95f=_0x25393d[0x0];var _0x23883f=_0x25393d[0x1];var _0x51df64=_[_0x98b2('0x21')](_0x5dd95f[_0x98b2('0x22')],function(_0x4d197c){return _0x4d197c[_0x98b2('0x23')]==_0x23883f['id']&&_0x4d197c[_0x98b2('0x24')]==_0xecb32b;});if(_0x51df64['length']==0x1){_0x28db65(_0x23883f);}else{_0x26625b(new RangeError(_0x98b2('0x25')+_0xecb32b+_0x98b2('0x26')));}});});}exports[_0x98b2('0x27')]=function(_0x16a93b,_0x4aee2a){logger['info'](_0x98b2('0x28'),_0x16a93b[_0x98b2('0x29')]);var _0x22b52c=originateValidation[_0x98b2('0xb')](_0x16a93b[_0x98b2('0x29')]);if(_0x22b52c[_0x98b2('0x2a')]>0x0){return _0x4aee2a['status'](0x190)[_0x98b2('0x2b')](_0x22b52c);}var _0x2ecb46=_0x16a93b[_0x98b2('0x29')][_0x98b2('0x2c')];var _0x38cab7=_0x16a93b[_0x98b2('0x29')][_0x98b2('0x2d')];var _0x90c163=_0x16a93b[_0x98b2('0x29')][_0x98b2('0x2e')];var _0x226b19=_0x16a93b[_0x98b2('0x29')][_0x98b2('0x2f')];return getAgent(_0x2ecb46)['then'](function(_0x50532e){logger[_0x98b2('0x10')](_0x98b2('0x30'),_0x50532e[_0x98b2('0x15')]);emit(util[_0x98b2('0x31')](_0x98b2('0x32'),_0x50532e[_0x98b2('0x15')]),'webbar:originate',{'callNumber':_0x38cab7,'callerId':_0x90c163,'callbackUrl':_0x226b19});return _0x4aee2a[_0x98b2('0x16')](0xc8)[_0x98b2('0x2b')]({'error':![],'message':_0x98b2('0x33')});})[_0x98b2('0x1d')](handleError(_0x4aee2a));};exports['hangup']=function(_0x13fe8b,_0x193d40){logger[_0x98b2('0x10')](_0x98b2('0x34'),_0x13fe8b[_0x98b2('0x29')]);var _0x3eea54=hangupValidation[_0x98b2('0xb')](_0x13fe8b['body']);if(_0x3eea54[_0x98b2('0x2a')]>0x0){return _0x193d40['status'](0x190)[_0x98b2('0x2b')](_0x3eea54);}var _0x5130c4=_0x13fe8b[_0x98b2('0x29')][_0x98b2('0x2c')];var _0x5ba581=_0x13fe8b['body'][_0x98b2('0x24')];return getAgent(_0x5130c4)[_0x98b2('0x19')](function(_0x42c69c){logger['info'](_0x98b2('0x30'),_0x42c69c[_0x98b2('0x15')]);emit(util[_0x98b2('0x31')](_0x98b2('0x32'),_0x42c69c[_0x98b2('0x15')]),_0x98b2('0x35'),{'sessionId':_0x5ba581});return _0x193d40['status'](0xc8)[_0x98b2('0x2b')]({'error':![],'message':_0x98b2('0x36')});})[_0x98b2('0x1d')](handleError(_0x193d40));};exports['answer']=function(_0x807a78,_0x1c7867){logger[_0x98b2('0x10')](_0x98b2('0x37'),_0x807a78[_0x98b2('0x29')]);var _0x3415e9=answerValidation['validate'](_0x807a78[_0x98b2('0x29')]);if(_0x3415e9['length']>0x0){return _0x1c7867[_0x98b2('0x16')](0x190)[_0x98b2('0x2b')](_0x3415e9);}var _0x410094=_0x807a78[_0x98b2('0x29')][_0x98b2('0x2c')];var _0x32e14b=_0x807a78[_0x98b2('0x29')][_0x98b2('0x24')];return getAgent(_0x410094)[_0x98b2('0x19')](function(_0x53508e){logger[_0x98b2('0x10')]('entityFound:',_0x53508e[_0x98b2('0x15')]);emit(util[_0x98b2('0x31')](_0x98b2('0x32'),_0x53508e[_0x98b2('0x15')]),_0x98b2('0x38'),{'sessionId':_0x32e14b});return _0x1c7867[_0x98b2('0x16')](0xc8)['json']({'error':![],'message':_0x98b2('0x39')});})[_0x98b2('0x1d')](handleError(_0x1c7867));};exports[_0x98b2('0x3a')]=function(_0x2bd1ca,_0xc8b7d7){logger['info']('hold\x20fired:',_0x2bd1ca[_0x98b2('0x29')]);var _0x3f902e=holdValidation[_0x98b2('0xb')](_0x2bd1ca[_0x98b2('0x29')]);if(_0x3f902e['length']>0x0){return _0xc8b7d7['status'](0x190)['json'](_0x3f902e);}var _0xea5f5d=_0x2bd1ca[_0x98b2('0x29')][_0x98b2('0x2c')];var _0x31b155=_0x2bd1ca[_0x98b2('0x29')][_0x98b2('0x24')];return getAgent(_0xea5f5d)[_0x98b2('0x19')](function(_0x2b08ed){logger[_0x98b2('0x10')]('entityFound:',_0x2b08ed[_0x98b2('0x15')]);emit(util['format'](_0x98b2('0x32'),_0x2b08ed[_0x98b2('0x15')]),_0x98b2('0x3b'),{'sessionId':_0x31b155});return _0xc8b7d7[_0x98b2('0x16')](0xc8)['json']({'error':![],'message':_0x98b2('0x3c')});})[_0x98b2('0x1d')](handleError(_0xc8b7d7));};exports[_0x98b2('0x3d')]=function(_0x1e13b8,_0x6ce50d){logger['info'](_0x98b2('0x3e'),_0x1e13b8[_0x98b2('0x29')]);var _0x1986e1=unholdValidation[_0x98b2('0xb')](_0x1e13b8[_0x98b2('0x29')]);if(_0x1986e1[_0x98b2('0x2a')]>0x0){return _0x6ce50d[_0x98b2('0x16')](0x190)[_0x98b2('0x2b')](_0x1986e1);}var _0x175a1b=_0x1e13b8[_0x98b2('0x29')][_0x98b2('0x2c')];var _0x384fcf=_0x1e13b8['body'][_0x98b2('0x24')];return getAgent(_0x175a1b)[_0x98b2('0x19')](function(_0x5e4779){logger['info'](_0x98b2('0x30'),_0x5e4779['name']);emit(util[_0x98b2('0x31')](_0x98b2('0x32'),_0x5e4779[_0x98b2('0x15')]),_0x98b2('0x3f'),{'sessionId':_0x384fcf});return _0x6ce50d[_0x98b2('0x16')](0xc8)[_0x98b2('0x2b')]({'error':![],'message':'unhold\x20executed!'});})[_0x98b2('0x1d')](handleError(_0x6ce50d));};exports['calls']=function(_0x4d74e9,_0xf9da91){logger[_0x98b2('0x10')]('calls\x20fired:',_0xf9da91[_0x98b2('0x29')]);var _0x1253e2=callsValidation['validate'](_0x4d74e9[_0x98b2('0x29')]);if(_0x1253e2[_0x98b2('0x2a')]>0x0){return _0xf9da91[_0x98b2('0x16')](0x190)[_0x98b2('0x2b')](_0x1253e2);}var _0x48ed1d=_0x4d74e9['body'][_0x98b2('0x2c')];var _0x2fda72=respondWithRpcPromise(_0x98b2('0x1f'));var _0x18b350=getAgent(_0x48ed1d);return Promise[_0x98b2('0x20')]([_0x2fda72,_0x18b350])['then'](function(_0x4f4f8d){var _0x2e9490=_0x4f4f8d[0x0];var _0x53d054=_0x4f4f8d[0x1];var _0x357b04=_[_0x98b2('0x21')](_0x2e9490[_0x98b2('0x22')],function(_0x1b6051){return _0x1b6051[_0x98b2('0x23')]==_0x53d054['id'];});return _0xf9da91[_0x98b2('0x16')](0xc8)['json']({'count':_0x357b04[_0x98b2('0x2a')],'rows':_0x357b04});})[_0x98b2('0x1d')](handleError(_0xf9da91));};exports[_0x98b2('0x40')]=function(_0x2b2a25,_0x16c46b){logger[_0x98b2('0x10')]('conference\x20fired:',_0x2b2a25['body']);var _0x250df6=conferenceValidation[_0x98b2('0xb')](_0x2b2a25[_0x98b2('0x29')]);if(_0x250df6[_0x98b2('0x2a')]>0x0){return _0x16c46b[_0x98b2('0x16')](0x190)[_0x98b2('0x2b')](_0x250df6);}var _0x1f15fa=_0x2b2a25[_0x98b2('0x29')]['userId'];return getAgent(_0x1f15fa)[_0x98b2('0x19')](function(_0x29942c){logger[_0x98b2('0x10')]('entityFound:',_0x29942c[_0x98b2('0x15')]);emit(util[_0x98b2('0x31')](_0x98b2('0x32'),_0x29942c['name']),_0x98b2('0x41'));return _0x16c46b[_0x98b2('0x16')](0xc8)['json']({'error':![],'message':_0x98b2('0x42')});})['catch'](handleError(_0x16c46b));};exports['transfer']=function(_0x4d9973,_0x5b59f8){logger[_0x98b2('0x10')](_0x98b2('0x43'),_0x4d9973[_0x98b2('0x29')]);var _0x4e3af5=transferValidation[_0x98b2('0xb')](_0x4d9973[_0x98b2('0x29')]);if(_0x4e3af5[_0x98b2('0x2a')]>0x0){return _0x5b59f8[_0x98b2('0x16')](0x190)[_0x98b2('0x2b')](_0x4e3af5);}var _0x15cbb3=_0x4d9973[_0x98b2('0x29')]['userId'];var _0x46b3fb=_0x4d9973['body'][_0x98b2('0x24')];var _0x3877ae=_0x4d9973[_0x98b2('0x29')][_0x98b2('0x44')];return getAgent(_0x15cbb3)[_0x98b2('0x19')](function(_0x10351d){logger[_0x98b2('0x10')]('entityFound:',_0x10351d['name']);emit(util[_0x98b2('0x31')](_0x98b2('0x32'),_0x10351d[_0x98b2('0x15')]),_0x98b2('0x45'),{'sessionId':_0x46b3fb,'transferNumber':_0x3877ae});return _0x5b59f8['status'](0xc8)[_0x98b2('0x2b')]({'error':![],'message':'transfer\x20executed!'});})[_0x98b2('0x1d')](handleError(_0x5b59f8));};
\ No newline at end of file
+var _0xac55=['stack','name','status','send','NotFound','request','then','error','message','catch','User','findOne','agent','VoiceChannels','filter','UserId','sessionId','length','sessionId\x20','originate','originate\x20fired:','body','userId','callNumber','callerId','callbackUrl','entityFound:','webbar:originate','originate\x20executed!','hangup','hangup\x20fired:','json','user:%s','webbar:hangup','answer','answer\x20fired:','webbar:answer','answer\x20executed!','hold','webbar:hold','hold\x20executed!','unhold','unhold\x20fired:','format','webbar:unhold','unhold\x20executed!','calls','conference','conference\x20fired:','webbar:conference','conference\x20executed!','transfer','transfer\x20fired:','transferNumber','webbar:transfer','transfer\x20executed!','path','lodash','../../mysqldb','../../config/environment','bluebird','jayson/promise','client','http','../../config/logger','webbarapi','ioredis','redis','localhost','socket.io-emitter','validate','number','userId\x20is\x20required','string','sessionId\x20is\x20required','transferNumber\x20is\x20required','info','stringify','log','handleError:'];(function(_0x32f903,_0x438c95){var _0x11fdb5=function(_0x526fcb){while(--_0x526fcb){_0x32f903['push'](_0x32f903['shift']());}};_0x11fdb5(++_0x438c95);}(_0xac55,0x1c8));var _0x5ac5=function(_0x589a82,_0xcbca56){_0x589a82=_0x589a82-0x0;var _0xb6b258=_0xac55[_0x589a82];return _0xb6b258;};'use strict';var path=require(_0x5ac5('0x0'));var fs=require('fs');var _=require(_0x5ac5('0x1'));var db=require(_0x5ac5('0x2'))['db'];var config=require(_0x5ac5('0x3'));var util=require('util');var BPromise=require(_0x5ac5('0x4'));var jayson=require(_0x5ac5('0x5'));var amiClient=jayson[_0x5ac5('0x6')][_0x5ac5('0x7')]({'port':0x232a});var logger=require(_0x5ac5('0x8'))(_0x5ac5('0x9'));var Redis=require(_0x5ac5('0xa'));config['redis']=_['defaults'](config[_0x5ac5('0xb')],{'host':_0x5ac5('0xc'),'port':0x18eb});var io=require(_0x5ac5('0xd'))(new Redis(config[_0x5ac5('0xb')]));var Schema=require(_0x5ac5('0xe'));var originateValidation=new Schema({'userId':{'type':_0x5ac5('0xf'),'required':[!![],_0x5ac5('0x10')]},'callNumber':{'type':'string','required':[!![],'callNumber\x20is\x20required']},'callerId':{'type':_0x5ac5('0x11')},'callbackUrl':{'type':_0x5ac5('0x11')}});var hangupValidation=new Schema({'userId':{'type':'number','required':[!![],_0x5ac5('0x10')]},'sessionId':{'type':_0x5ac5('0x11'),'required':![]}});var answerValidation=new Schema({'userId':{'type':'number','required':[!![],_0x5ac5('0x10')]},'sessionId':{'type':_0x5ac5('0x11'),'required':![]}});var transferValidation=new Schema({'userId':{'type':'number','required':[!![],_0x5ac5('0x10')]},'sessionId':{'type':_0x5ac5('0x11'),'required':[!![],_0x5ac5('0x12')]},'transferNumber':{'type':_0x5ac5('0x11'),'required':[!![],_0x5ac5('0x13')]}});var holdValidation=new Schema({'userId':{'type':'number','required':[!![],_0x5ac5('0x10')]},'sessionId':{'type':'string','required':![]}});var unholdValidation=new Schema({'userId':{'type':_0x5ac5('0xf'),'required':[!![],_0x5ac5('0x10')]},'sessionId':{'type':'string','required':![]}});var callsValidation=new Schema({'userId':{'type':_0x5ac5('0xf'),'required':[!![],'userId\x20is\x20required']}});var conferenceValidation=new Schema({'userId':{'type':_0x5ac5('0xf'),'required':[!![],_0x5ac5('0x10')]}});function emit(_0x30244d,_0x1282be,_0x34a95e){logger[_0x5ac5('0x14')](_0x30244d,_0x1282be,JSON[_0x5ac5('0x15')](_0x34a95e));io['to'](_0x30244d)['emit'](_0x1282be,_0x34a95e);}function handleError(_0x4e186a){return function(_0x5364a6){console[_0x5ac5('0x16')](_0x5ac5('0x17'),_0x5364a6,_0x5364a6 instanceof RangeError);logger['error'](_0x5364a6[_0x5ac5('0x18')]);if(_0x5364a6 instanceof RangeError){if(_0x5364a6['name']){delete _0x5364a6[_0x5ac5('0x19')];}_0x4e186a['status'](0x194)['send'](_0x5364a6);}else{if(_0x5364a6[_0x5ac5('0x19')]){delete _0x5364a6['name'];}_0x4e186a[_0x5ac5('0x1a')](0x1f4)[_0x5ac5('0x1b')](_0x5364a6);}};}function checkError(){return function(_0x5c21d8){if(!_0x5c21d8){throw new RangeError(_0x5ac5('0x1c'));}return _0x5c21d8;};}function respondWithRpcPromise(_0x4ac526,_0x29a44c){return new BPromise(function(_0x40bdbc,_0x47993e){var _0x47a898=amiClient;return _0x47a898[_0x5ac5('0x1d')](_0x4ac526,_0x29a44c)[_0x5ac5('0x1e')](function(_0x400308){if(_0x400308[_0x5ac5('0x1f')]){if(_0x400308[_0x5ac5('0x1f')]['code']===0x1f4){return _0x47993e(_0x400308[_0x5ac5('0x1f')][_0x5ac5('0x20')]);}return _0x40bdbc(_0x400308[_0x5ac5('0x1f')][_0x5ac5('0x20')]);}else{_0x40bdbc(_0x400308['result']);}})[_0x5ac5('0x21')](function(_0x4eda97){_0x47993e(_0x4eda97);});});}function getAgent(_0x17c507){return db[_0x5ac5('0x22')][_0x5ac5('0x23')]({'where':{'id':_0x17c507,'role':_0x5ac5('0x24')}})[_0x5ac5('0x1e')](checkError());}function getAgentCheckSession(_0x3b3ec0,_0x5ce67c){return new BPromise(function(_0x31f9cc,_0x4a5f4d){var _0x24e8c7=respondWithRpcPromise(_0x5ac5('0x25'));var _0x35535f=getAgent(_0x3b3ec0);Promise['all']([_0x24e8c7,_0x35535f])[_0x5ac5('0x1e')](function(_0x229941){var _0x21df31=_0x229941[0x0];var _0x21307c=_0x229941[0x1];var _0x4eafa1=_[_0x5ac5('0x26')](_0x21df31['rows'],function(_0x3414ba){return _0x3414ba[_0x5ac5('0x27')]==_0x21307c['id']&&_0x3414ba[_0x5ac5('0x28')]==_0x5ce67c;});if(_0x4eafa1[_0x5ac5('0x29')]==0x1){_0x31f9cc(_0x21307c);}else{_0x4a5f4d(new RangeError(_0x5ac5('0x2a')+_0x5ce67c+'\x20not\x20found!'));}});});}exports[_0x5ac5('0x2b')]=function(_0x21116,_0x36285d){logger['info'](_0x5ac5('0x2c'),_0x21116['body']);var _0x472782=originateValidation[_0x5ac5('0xe')](_0x21116[_0x5ac5('0x2d')]);if(_0x472782[_0x5ac5('0x29')]>0x0){return _0x36285d[_0x5ac5('0x1a')](0x190)['json'](_0x472782);}var _0x39a895=_0x21116['body'][_0x5ac5('0x2e')];var _0x5ae4af=_0x21116[_0x5ac5('0x2d')][_0x5ac5('0x2f')];var _0x47a5d8=_0x21116[_0x5ac5('0x2d')][_0x5ac5('0x30')];var _0x585e4b=_0x21116['body'][_0x5ac5('0x31')];return getAgent(_0x39a895)[_0x5ac5('0x1e')](function(_0x243204){logger[_0x5ac5('0x14')](_0x5ac5('0x32'),_0x243204[_0x5ac5('0x19')]);emit(util['format']('user:%s',_0x243204['name']),_0x5ac5('0x33'),{'callNumber':_0x5ae4af,'callerId':_0x47a5d8,'callbackUrl':_0x585e4b});return _0x36285d[_0x5ac5('0x1a')](0xc8)['json']({'error':![],'message':_0x5ac5('0x34')});})[_0x5ac5('0x21')](handleError(_0x36285d));};exports[_0x5ac5('0x35')]=function(_0x38667d,_0x46290f){logger[_0x5ac5('0x14')](_0x5ac5('0x36'),_0x38667d[_0x5ac5('0x2d')]);var _0x2d726e=hangupValidation['validate'](_0x38667d[_0x5ac5('0x2d')]);if(_0x2d726e['length']>0x0){return _0x46290f[_0x5ac5('0x1a')](0x190)[_0x5ac5('0x37')](_0x2d726e);}var _0x1ca0f0=_0x38667d[_0x5ac5('0x2d')][_0x5ac5('0x2e')];var _0x1ec79a=_0x38667d[_0x5ac5('0x2d')][_0x5ac5('0x28')];return getAgent(_0x1ca0f0)[_0x5ac5('0x1e')](function(_0x5105fc){logger[_0x5ac5('0x14')](_0x5ac5('0x32'),_0x5105fc['name']);emit(util['format'](_0x5ac5('0x38'),_0x5105fc['name']),_0x5ac5('0x39'),{'sessionId':_0x1ec79a});return _0x46290f[_0x5ac5('0x1a')](0xc8)['json']({'error':![],'message':'hangup\x20executed!'});})[_0x5ac5('0x21')](handleError(_0x46290f));};exports[_0x5ac5('0x3a')]=function(_0x32cc92,_0x1475b0){logger[_0x5ac5('0x14')](_0x5ac5('0x3b'),_0x32cc92[_0x5ac5('0x2d')]);var _0x5a86a0=answerValidation[_0x5ac5('0xe')](_0x32cc92[_0x5ac5('0x2d')]);if(_0x5a86a0[_0x5ac5('0x29')]>0x0){return _0x1475b0[_0x5ac5('0x1a')](0x190)[_0x5ac5('0x37')](_0x5a86a0);}var _0x3abf39=_0x32cc92['body'][_0x5ac5('0x2e')];var _0x24657d=_0x32cc92[_0x5ac5('0x2d')][_0x5ac5('0x28')];return getAgent(_0x3abf39)['then'](function(_0x228179){logger[_0x5ac5('0x14')](_0x5ac5('0x32'),_0x228179['name']);emit(util['format'](_0x5ac5('0x38'),_0x228179[_0x5ac5('0x19')]),_0x5ac5('0x3c'),{'sessionId':_0x24657d});return _0x1475b0[_0x5ac5('0x1a')](0xc8)['json']({'error':![],'message':_0x5ac5('0x3d')});})['catch'](handleError(_0x1475b0));};exports[_0x5ac5('0x3e')]=function(_0x3dfeba,_0x4d90cf){logger[_0x5ac5('0x14')]('hold\x20fired:',_0x3dfeba[_0x5ac5('0x2d')]);var _0x3f26e0=holdValidation[_0x5ac5('0xe')](_0x3dfeba['body']);if(_0x3f26e0['length']>0x0){return _0x4d90cf[_0x5ac5('0x1a')](0x190)[_0x5ac5('0x37')](_0x3f26e0);}var _0xd6ae55=_0x3dfeba[_0x5ac5('0x2d')][_0x5ac5('0x2e')];var _0x3534ce=_0x3dfeba[_0x5ac5('0x2d')][_0x5ac5('0x28')];return getAgent(_0xd6ae55)[_0x5ac5('0x1e')](function(_0x536765){logger[_0x5ac5('0x14')](_0x5ac5('0x32'),_0x536765[_0x5ac5('0x19')]);emit(util['format']('user:%s',_0x536765[_0x5ac5('0x19')]),_0x5ac5('0x3f'),{'sessionId':_0x3534ce});return _0x4d90cf[_0x5ac5('0x1a')](0xc8)['json']({'error':![],'message':_0x5ac5('0x40')});})[_0x5ac5('0x21')](handleError(_0x4d90cf));};exports[_0x5ac5('0x41')]=function(_0x2a3396,_0x326f60){logger[_0x5ac5('0x14')](_0x5ac5('0x42'),_0x2a3396['body']);var _0x5ac4e3=unholdValidation['validate'](_0x2a3396[_0x5ac5('0x2d')]);if(_0x5ac4e3[_0x5ac5('0x29')]>0x0){return _0x326f60[_0x5ac5('0x1a')](0x190)['json'](_0x5ac4e3);}var _0x1973f6=_0x2a3396[_0x5ac5('0x2d')][_0x5ac5('0x2e')];var _0x286304=_0x2a3396[_0x5ac5('0x2d')]['sessionId'];return getAgent(_0x1973f6)['then'](function(_0x516ffd){logger[_0x5ac5('0x14')](_0x5ac5('0x32'),_0x516ffd[_0x5ac5('0x19')]);emit(util[_0x5ac5('0x43')](_0x5ac5('0x38'),_0x516ffd[_0x5ac5('0x19')]),_0x5ac5('0x44'),{'sessionId':_0x286304});return _0x326f60[_0x5ac5('0x1a')](0xc8)[_0x5ac5('0x37')]({'error':![],'message':_0x5ac5('0x45')});})[_0x5ac5('0x21')](handleError(_0x326f60));};exports[_0x5ac5('0x46')]=function(_0x447603,_0x252030){logger[_0x5ac5('0x14')]('calls\x20fired:',_0x252030[_0x5ac5('0x2d')]);var _0x360fb8=callsValidation['validate'](_0x447603[_0x5ac5('0x2d')]);if(_0x360fb8[_0x5ac5('0x29')]>0x0){return _0x252030[_0x5ac5('0x1a')](0x190)[_0x5ac5('0x37')](_0x360fb8);}var _0x316af1=_0x447603[_0x5ac5('0x2d')]['userId'];var _0x2b5329=respondWithRpcPromise(_0x5ac5('0x25'));var _0x424bed=getAgent(_0x316af1);return Promise['all']([_0x2b5329,_0x424bed])[_0x5ac5('0x1e')](function(_0x44e349){var _0x4dd8be=_0x44e349[0x0];var _0x1a6428=_0x44e349[0x1];var _0x3227dc=_['filter'](_0x4dd8be['rows'],function(_0x4d1346){return _0x4d1346[_0x5ac5('0x27')]==_0x1a6428['id'];});return _0x252030[_0x5ac5('0x1a')](0xc8)[_0x5ac5('0x37')]({'count':_0x3227dc[_0x5ac5('0x29')],'rows':_0x3227dc});})[_0x5ac5('0x21')](handleError(_0x252030));};exports[_0x5ac5('0x47')]=function(_0x4ee231,_0x75ca64){logger[_0x5ac5('0x14')](_0x5ac5('0x48'),_0x4ee231[_0x5ac5('0x2d')]);var _0x1f9b9b=conferenceValidation['validate'](_0x4ee231['body']);if(_0x1f9b9b['length']>0x0){return _0x75ca64[_0x5ac5('0x1a')](0x190)[_0x5ac5('0x37')](_0x1f9b9b);}var _0x334a1c=_0x4ee231[_0x5ac5('0x2d')]['userId'];return getAgent(_0x334a1c)[_0x5ac5('0x1e')](function(_0x38b128){logger[_0x5ac5('0x14')]('entityFound:',_0x38b128['name']);emit(util['format'](_0x5ac5('0x38'),_0x38b128[_0x5ac5('0x19')]),_0x5ac5('0x49'));return _0x75ca64[_0x5ac5('0x1a')](0xc8)[_0x5ac5('0x37')]({'error':![],'message':_0x5ac5('0x4a')});})['catch'](handleError(_0x75ca64));};exports[_0x5ac5('0x4b')]=function(_0x5532d6,_0x492179){logger[_0x5ac5('0x14')](_0x5ac5('0x4c'),_0x5532d6[_0x5ac5('0x2d')]);var _0x324ec9=transferValidation[_0x5ac5('0xe')](_0x5532d6[_0x5ac5('0x2d')]);if(_0x324ec9[_0x5ac5('0x29')]>0x0){return _0x492179[_0x5ac5('0x1a')](0x190)[_0x5ac5('0x37')](_0x324ec9);}var _0x130c67=_0x5532d6[_0x5ac5('0x2d')][_0x5ac5('0x2e')];var _0x299b02=_0x5532d6[_0x5ac5('0x2d')][_0x5ac5('0x28')];var _0x46315b=_0x5532d6[_0x5ac5('0x2d')][_0x5ac5('0x4d')];return getAgent(_0x130c67)[_0x5ac5('0x1e')](function(_0xc95ae5){logger[_0x5ac5('0x14')]('entityFound:',_0xc95ae5[_0x5ac5('0x19')]);emit(util['format'](_0x5ac5('0x38'),_0xc95ae5['name']),_0x5ac5('0x4e'),{'sessionId':_0x299b02,'transferNumber':_0x46315b});return _0x492179['status'](0xc8)['json']({'error':![],'message':_0x5ac5('0x4f')});})['catch'](handleError(_0x492179));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7880=['/:id/canned_answers','getAnswers','/:id/users','getAgents','/:id/applications','getApplications','post','create','addDisposition','addAnswer','addAgents','addApplications','notify','put','update','delete','removeDispositions','removeAnswers','exports','util','path','connect-timeout','express','Router','fs-extra','../../components/interaction/service','../../config/environment','./whatsappAccount.controller','get','isAuthenticated','index','/describe','describe','/:id','show','/:id/dispositions','getDispositions'];(function(_0x4d2c26,_0x2701f9){var _0x5bf9b4=function(_0x52edc6){while(--_0x52edc6){_0x4d2c26['push'](_0x4d2c26['shift']());}};_0x5bf9b4(++_0x2701f9);}(_0x7880,0x1f4));var _0x0788=function(_0x3252b1,_0x54e32d){_0x3252b1=_0x3252b1-0x0;var _0x5f189d=_0x7880[_0x3252b1];return _0x5f189d;};'use strict';var multer=require('multer');var util=require(_0x0788('0x0'));var path=require(_0x0788('0x1'));var timeout=require(_0x0788('0x2'));var express=require(_0x0788('0x3'));var router=express[_0x0788('0x4')]();var fs_extra=require(_0x0788('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0x0788('0x6'));var config=require(_0x0788('0x7'));var controller=require(_0x0788('0x8'));router[_0x0788('0x9')]('/',auth[_0x0788('0xa')](),controller[_0x0788('0xb')]);router[_0x0788('0x9')](_0x0788('0xc'),auth[_0x0788('0xa')](),controller[_0x0788('0xd')]);router['get'](_0x0788('0xe'),auth['isAuthenticated'](),controller[_0x0788('0xf')]);router['get'](_0x0788('0x10'),auth[_0x0788('0xa')](),controller[_0x0788('0x11')]);router[_0x0788('0x9')](_0x0788('0x12'),auth['isAuthenticated'](),controller[_0x0788('0x13')]);router[_0x0788('0x9')](_0x0788('0x14'),auth[_0x0788('0xa')](),controller[_0x0788('0x15')]);router[_0x0788('0x9')](_0x0788('0x16'),auth['isAuthenticated'](),controller[_0x0788('0x17')]);router[_0x0788('0x18')]('/',auth[_0x0788('0xa')](),controller[_0x0788('0x19')]);router['post'](_0x0788('0x10'),auth['isAuthenticated'](),controller[_0x0788('0x1a')]);router[_0x0788('0x18')](_0x0788('0x12'),auth[_0x0788('0xa')](),controller[_0x0788('0x1b')]);router[_0x0788('0x18')]('/:id/users',auth['isAuthenticated'](),controller[_0x0788('0x1c')]);router[_0x0788('0x18')]('/:id/applications',auth[_0x0788('0xa')](),controller[_0x0788('0x1d')]);router[_0x0788('0x18')]('/:id/notify',controller[_0x0788('0x1e')]);router[_0x0788('0x18')]('/:id/send',auth[_0x0788('0xa')](),controller['send']);router[_0x0788('0x1f')]('/:id',auth[_0x0788('0xa')](),controller[_0x0788('0x20')]);router[_0x0788('0x21')](_0x0788('0xe'),auth[_0x0788('0xa')](),controller['destroy']);router['delete'](_0x0788('0x10'),auth[_0x0788('0xa')](),controller[_0x0788('0x22')]);router[_0x0788('0x21')]('/:id/canned_answers',auth['isAuthenticated'](),controller[_0x0788('0x23')]);router[_0x0788('0x21')](_0x0788('0x14'),auth['isAuthenticated'](),controller['removeAgents']);module[_0x0788('0x24')]=router;
\ No newline at end of file
+var _0x8e3f=['addDisposition','addAgents','addApplications','/:id/notify','/:id/send','send','put','update','destroy','delete','removeAnswers','removeAgents','exports','multer','util','path','express','Router','fs-extra','../../components/interaction/service','../../config/environment','get','isAuthenticated','index','describe','/:id','show','/:id/dispositions','getDispositions','/:id/canned_answers','getAnswers','/:id/users','getAgents','/:id/applications','post','create'];(function(_0x31cb0d,_0x2374eb){var _0x5f3af6=function(_0x5e1778){while(--_0x5e1778){_0x31cb0d['push'](_0x31cb0d['shift']());}};_0x5f3af6(++_0x2374eb);}(_0x8e3f,0xc1));var _0xf8e3=function(_0x4a9fb1,_0x273043){_0x4a9fb1=_0x4a9fb1-0x0;var _0x348672=_0x8e3f[_0x4a9fb1];return _0x348672;};'use strict';var multer=require(_0xf8e3('0x0'));var util=require(_0xf8e3('0x1'));var path=require(_0xf8e3('0x2'));var timeout=require('connect-timeout');var express=require(_0xf8e3('0x3'));var router=express[_0xf8e3('0x4')]();var fs_extra=require(_0xf8e3('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0xf8e3('0x6'));var config=require(_0xf8e3('0x7'));var controller=require('./whatsappAccount.controller');router[_0xf8e3('0x8')]('/',auth[_0xf8e3('0x9')](),controller[_0xf8e3('0xa')]);router[_0xf8e3('0x8')]('/describe',auth[_0xf8e3('0x9')](),controller[_0xf8e3('0xb')]);router[_0xf8e3('0x8')](_0xf8e3('0xc'),auth[_0xf8e3('0x9')](),controller[_0xf8e3('0xd')]);router[_0xf8e3('0x8')](_0xf8e3('0xe'),auth[_0xf8e3('0x9')](),controller[_0xf8e3('0xf')]);router[_0xf8e3('0x8')](_0xf8e3('0x10'),auth['isAuthenticated'](),controller[_0xf8e3('0x11')]);router[_0xf8e3('0x8')](_0xf8e3('0x12'),auth['isAuthenticated'](),controller[_0xf8e3('0x13')]);router[_0xf8e3('0x8')](_0xf8e3('0x14'),auth[_0xf8e3('0x9')](),controller['getApplications']);router[_0xf8e3('0x15')]('/',auth[_0xf8e3('0x9')](),controller[_0xf8e3('0x16')]);router['post'](_0xf8e3('0xe'),auth['isAuthenticated'](),controller[_0xf8e3('0x17')]);router[_0xf8e3('0x15')](_0xf8e3('0x10'),auth['isAuthenticated'](),controller['addAnswer']);router[_0xf8e3('0x15')](_0xf8e3('0x12'),auth[_0xf8e3('0x9')](),controller[_0xf8e3('0x18')]);router[_0xf8e3('0x15')](_0xf8e3('0x14'),auth[_0xf8e3('0x9')](),controller[_0xf8e3('0x19')]);router[_0xf8e3('0x15')](_0xf8e3('0x1a'),controller['notify']);router[_0xf8e3('0x15')](_0xf8e3('0x1b'),auth[_0xf8e3('0x9')](),controller[_0xf8e3('0x1c')]);router[_0xf8e3('0x1d')](_0xf8e3('0xc'),auth[_0xf8e3('0x9')](),controller[_0xf8e3('0x1e')]);router['delete'](_0xf8e3('0xc'),auth[_0xf8e3('0x9')](),controller[_0xf8e3('0x1f')]);router[_0xf8e3('0x20')]('/:id/dispositions',auth[_0xf8e3('0x9')](),controller['removeDispositions']);router[_0xf8e3('0x20')](_0xf8e3('0x10'),auth[_0xf8e3('0x9')](),controller[_0xf8e3('0x21')]);router[_0xf8e3('0x20')](_0xf8e3('0x12'),auth['isAuthenticated'](),controller[_0xf8e3('0x22')]);module[_0xf8e3('0x23')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd0f9=['name','ENUM','twilio','TEXT','BOOLEAN','INTEGER','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','setDataValue','mandatoryDisposition','sequelize','randomstring','STRING'];(function(_0x197dd2,_0x39ceab){var _0x205360=function(_0x20deaf){while(--_0x20deaf){_0x197dd2['push'](_0x197dd2['shift']());}};_0x205360(++_0x39ceab);}(_0xd0f9,0x169));var _0x9d0f=function(_0xb24a3e,_0x4a3594){_0xb24a3e=_0xb24a3e-0x0;var _0x4038d7=_0xd0f9[_0xb24a3e];return _0x4038d7;};'use strict';var Sequelize=require(_0x9d0f('0x0'));var rs=require(_0x9d0f('0x1'));module['exports']={'name':{'type':Sequelize[_0x9d0f('0x2')],'unique':_0x9d0f('0x3'),'allowNull':![]},'key':{'type':Sequelize[_0x9d0f('0x2')],'allowNull':![]},'remote':{'type':Sequelize[_0x9d0f('0x2')],'allowNull':![]},'token':{'type':Sequelize['STRING'],'defaultValue':function(){return rs['generate']();}},'phone':{'type':Sequelize[_0x9d0f('0x2')]},'type':{'type':Sequelize[_0x9d0f('0x4')](_0x9d0f('0x5'),'sinch')},'accountSid':{'type':Sequelize[_0x9d0f('0x2')]},'baseUrl':{'type':Sequelize['STRING']},'authToken':{'type':Sequelize[_0x9d0f('0x2')]},'notificationTemplate':{'type':Sequelize[_0x9d0f('0x6')],'defaultValue':function(){return'Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}';}},'notificationSound':{'type':Sequelize[_0x9d0f('0x7')],'defaultValue':![]},'notificationShake':{'type':Sequelize[_0x9d0f('0x7')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize[_0x9d0f('0x8')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0x9d0f('0x8')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0x9d0f('0x7')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize['INTEGER'],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'mandatoryDispositionPauseId':{'type':Sequelize['INTEGER'],'comment':_0x9d0f('0x9')},'mandatoryDisposition':{'type':Sequelize['BOOLEAN'],'defaultValue':![],'comment':_0x9d0f('0xa'),'set':function(_0x3f1ccf){if(!_0x3f1ccf){this['setDataValue']('mandatoryDispositionPauseId',null);}this[_0x9d0f('0xb')](_0x9d0f('0xc'),_0x3f1ccf);}},'description':{'type':Sequelize[_0x9d0f('0x2')]}};
\ No newline at end of file
+var _0xb542=['STRING','ENUM','twilio','sinch','TEXT','Account:\x20{{account.name}}<br/>{{#queue}}Queue:\x20{{queue.name}}<br/>{{/queue}}From\x20:\x20{{from}}','BOOLEAN','INTEGER','Status\x20to\x20put\x20when\x20mandatory\x20disposition\x20is\x20enabled','Enabled/disables\x20mandatory\x20dispo\x20on\x20a\x20queue','setDataValue','mandatoryDispositionPauseId','mandatoryDisposition','sequelize','exports'];(function(_0x4dd1f3,_0x1067c8){var _0x3d39db=function(_0x446fb3){while(--_0x446fb3){_0x4dd1f3['push'](_0x4dd1f3['shift']());}};_0x3d39db(++_0x1067c8);}(_0xb542,0xa3));var _0x2b54=function(_0x46196f,_0x4d2e36){_0x46196f=_0x46196f-0x0;var _0x4cfb09=_0xb542[_0x46196f];return _0x4cfb09;};'use strict';var Sequelize=require(_0x2b54('0x0'));var rs=require('randomstring');module[_0x2b54('0x1')]={'name':{'type':Sequelize[_0x2b54('0x2')],'unique':'name','allowNull':![]},'key':{'type':Sequelize[_0x2b54('0x2')],'allowNull':![]},'remote':{'type':Sequelize['STRING'],'allowNull':![]},'token':{'type':Sequelize[_0x2b54('0x2')],'defaultValue':function(){return rs['generate']();}},'phone':{'type':Sequelize['STRING']},'type':{'type':Sequelize[_0x2b54('0x3')](_0x2b54('0x4'),_0x2b54('0x5'))},'accountSid':{'type':Sequelize['STRING']},'baseUrl':{'type':Sequelize['STRING']},'authToken':{'type':Sequelize[_0x2b54('0x2')]},'notificationTemplate':{'type':Sequelize[_0x2b54('0x6')],'defaultValue':function(){return _0x2b54('0x7');}},'notificationSound':{'type':Sequelize[_0x2b54('0x8')],'defaultValue':![]},'notificationShake':{'type':Sequelize[_0x2b54('0x8')],'defaultValue':![]},'waitForTheAssignedAgent':{'type':Sequelize[_0x2b54('0x9')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0xa},'queueTransfer':{'type':Sequelize[_0x2b54('0x8')],'defaultValue':![]},'queueTransferTimeout':{'type':Sequelize[_0x2b54('0x9')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'agentTransfer':{'type':Sequelize[_0x2b54('0x8')],'defaultValue':![]},'agentTransferTimeout':{'type':Sequelize[_0x2b54('0x9')],'validate':{'min':0x1,'max':0x20c49b},'defaultValue':0x12c},'mandatoryDispositionPauseId':{'type':Sequelize[_0x2b54('0x9')],'comment':_0x2b54('0xa')},'mandatoryDisposition':{'type':Sequelize[_0x2b54('0x8')],'defaultValue':![],'comment':_0x2b54('0xb'),'set':function(_0xf49b93){if(!_0xf49b93){this[_0x2b54('0xc')](_0x2b54('0xd'),null);}this[_0x2b54('0xc')](_0x2b54('0xe'),_0xf49b93);}},'description':{'type':Sequelize[_0x2b54('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x66a7=['defaults','redis','localhost','./whatsappAccount.socket','register','jayson/promise','client','http','then','info','WhatsappAccount,\x20%s,\x20%s','request\x20sent','WhatsappAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','sendStatus','status','end','json','limit','undefined','count','offset','set','Content-Range','apply','update','WhatsappAccounts','UserProfileResource','destroy','stack','name','index','Pause','map','WhatsappAccount','rawAttributes','type','model','keys','query','intersection','fields','attributes','length','nolimit','order','sort','where','filters','pick','VIRTUAL','filter','options','includeAll','include','show','params','find','create','body','user','role','get','UserProfileSection','userProfileId','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','mandatoryDispositionPause','describe','addDisposition','Disposition','getDispositions','findOne','hasOwnProperty','WhatsappAccountId','merge','findAll','rows','removeDispositions','ids','addAnswer','getAnswers','CannedAnswer','removeAnswers','addAgents','omit','emit','userWhatsappAccount:save','removeAgents','isArray','userWhatsappAccount:remove','getAgents','addApplications','transaction','sequelize','Transaction','ISOLATION_LEVELS','READ_COMMITTED','WhatsappApplication','findAndCountAll','priority','finally','send','getApplications','notify','whatsapp','account','statuses','read','message_id','orderBy','Applications','asc','CmContact','Sequelize','ValidationError','no\x20available\x20attributes','createdAt','updatedAt','difference','CompanyId','ListId','mobile','twilio','from','From','replace','whatsapp:','messageId','notifications','isNil','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','DESC','list','Contacts','contact','WhatsappInteraction','spread','interaction','created','autoclose','applications','push','close','unmanaged','*,*,*,*','WhatsappMessage','ContactId','AttachmentId','UserId','User','unshift','Start','startRouting','receiveMessage','entity\x20found','WhatsappAccount,\x20%s,\x20%s,\x20%s,\x20%s','Content-Type','<?xml\x20version=\x221.0\x22\x20encoding=\x22UTF-8\x22?>\x0a<Response></Response>','to\x20is\x20mandatory','List','out','Messages','dataValues','eml-format','zip-dir','moment','mustache','util','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment'];(function(_0x4f064e,_0x225fcb){var _0x404a2d=function(_0x5badc9){while(--_0x5badc9){_0x4f064e['push'](_0x4f064e['shift']());}};_0x404a2d(++_0x225fcb);}(_0x66a7,0xab));var _0x766a=function(_0x4d8a8f,_0x2afd4c){_0x4d8a8f=_0x4d8a8f-0x0;var _0xfc4adc=_0x66a7[_0x4d8a8f];return _0xfc4adc;};'use strict';var emlformat=require(_0x766a('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x766a('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x766a('0x2'));var BPromise=require('bluebird');var Mustache=require(_0x766a('0x3'));var util=require(_0x766a('0x4'));var path=require(_0x766a('0x5'));var sox=require(_0x766a('0x6'));var csv=require('to-csv');var ejs=require(_0x766a('0x7'));var fs=require('fs');var fs_extra=require(_0x766a('0x8'));var _=require(_0x766a('0x9'));var squel=require(_0x766a('0xa'));var crypto=require(_0x766a('0xb'));var jsforce=require(_0x766a('0xc'));var deskjs=require(_0x766a('0xd'));var toCsv=require(_0x766a('0xe'));var querystring=require(_0x766a('0xf'));var Papa=require(_0x766a('0x10'));var Redis=require('ioredis');var authService=require(_0x766a('0x11'));var qs=require(_0x766a('0x12'));var as=require(_0x766a('0x13'));var hardwareService=require(_0x766a('0x14'));var logger=require('../../config/logger')(_0x766a('0x15'));var utils=require('../../config/utils');var config=require(_0x766a('0x16'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config['redis']=_[_0x766a('0x17')](config[_0x766a('0x18')],{'host':_0x766a('0x19'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0x766a('0x1a'))[_0x766a('0x1b')](socket);var jayson=require(_0x766a('0x1c'));var client=jayson[_0x766a('0x1d')][_0x766a('0x1e')]({'port':0x232c});function respondWithRpcPromise(_0x2bca37,_0x8a5ae9,_0x57046d,_0x22c44b){return new BPromise(function(_0x2dc8fd,_0xe5bc98){var _0x312bb0=_0x22c44b||client;return _0x312bb0['request'](_0x2bca37,_0x57046d)[_0x766a('0x1f')](function(_0x175aae){logger[_0x766a('0x20')](_0x766a('0x21'),_0x8a5ae9,_0x766a('0x22'));logger['debug'](_0x766a('0x23'),_0x8a5ae9,_0x766a('0x22'),JSON[_0x766a('0x24')](_0x175aae));if(_0x175aae[_0x766a('0x25')]){if(_0x175aae['error']['code']===0x1f4){logger['error'](_0x766a('0x21'),_0x8a5ae9,_0x175aae[_0x766a('0x25')][_0x766a('0x26')]);return _0xe5bc98(_0x175aae['error'][_0x766a('0x26')]);}logger[_0x766a('0x25')](_0x766a('0x21'),_0x8a5ae9,_0x175aae['error'][_0x766a('0x26')]);return _0x2dc8fd(_0x175aae[_0x766a('0x25')][_0x766a('0x26')]);}else{logger['info'](_0x766a('0x21'),_0x8a5ae9,_0x766a('0x22'));_0x2dc8fd(_0x175aae[_0x766a('0x27')]['message']);}})[_0x766a('0x28')](function(_0x54a5b8){logger['error'](_0x766a('0x21'),_0x8a5ae9,_0x54a5b8);_0xe5bc98(_0x54a5b8);});});}function respondWithStatusCode(_0x145b38,_0x4a1170){_0x4a1170=_0x4a1170||0xcc;return function(_0x40ae86){if(_0x40ae86){return _0x145b38[_0x766a('0x29')](_0x4a1170);}return _0x145b38[_0x766a('0x2a')](_0x4a1170)[_0x766a('0x2b')]();};}function respondWithResult(_0x335fa3,_0x52e378){_0x52e378=_0x52e378||0xc8;return function(_0x887ee8){if(_0x887ee8){return _0x335fa3[_0x766a('0x2a')](_0x52e378)[_0x766a('0x2c')](_0x887ee8);}};}function respondWithFilteredResult(_0x2ec492,_0x18d3c9){return function(_0x37ca51){if(_0x37ca51){var _0x10d3bf=typeof _0x18d3c9['offset']==='undefined'&&typeof _0x18d3c9[_0x766a('0x2d')]===_0x766a('0x2e');var _0x9c4388=_0x37ca51[_0x766a('0x2f')];var _0x10cb3b=_0x10d3bf?0x0:_0x18d3c9[_0x766a('0x30')];var _0x1dcb94=_0x10d3bf?_0x37ca51[_0x766a('0x2f')]:_0x18d3c9[_0x766a('0x30')]+_0x18d3c9['limit'];var _0x66e7;if(_0x1dcb94>=_0x9c4388){_0x1dcb94=_0x9c4388;_0x66e7=0xc8;}else{_0x66e7=0xce;}_0x2ec492[_0x766a('0x2a')](_0x66e7);return _0x2ec492[_0x766a('0x31')](_0x766a('0x32'),_0x10cb3b+'-'+_0x1dcb94+'/'+_0x9c4388)['json'](_0x37ca51);}return null;};}function patchUpdates(_0x332246){return function(_0x3bcbc6){try{jsonpatch[_0x766a('0x33')](_0x3bcbc6,_0x332246,!![]);}catch(_0x2264c5){return BPromise['reject'](_0x2264c5);}return _0x3bcbc6['save']();};}function saveUpdates(_0xd24889,_0x223180){return function(_0x587f5b){if(_0x587f5b){return _0x587f5b[_0x766a('0x34')](_0xd24889)[_0x766a('0x1f')](function(_0x3f9558){return _0x3f9558;});}return null;};}function removeEntity(_0x248296,_0x133392){return function(_0x5b28f0){if(_0x5b28f0){return _0x5b28f0['destroy']()[_0x766a('0x1f')](function(){var _0x426bc9=_0x5b28f0['get']({'plain':!![]});var _0x4c7cda=_0x766a('0x35');return db[_0x766a('0x36')][_0x766a('0x37')]({'where':{'type':_0x4c7cda,'resourceId':_0x426bc9['id']}})['then'](function(){return _0x5b28f0;});})[_0x766a('0x1f')](function(){_0x248296[_0x766a('0x2a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x662a0f,_0x361693){return function(_0x35447a){if(!_0x35447a){_0x662a0f[_0x766a('0x29')](0x194);}return _0x35447a;};}function handleError(_0x18582c,_0x2c6382){_0x2c6382=_0x2c6382||0x1f4;return function(_0x4df01b){logger[_0x766a('0x25')](_0x4df01b[_0x766a('0x38')]);if(_0x4df01b[_0x766a('0x39')]){delete _0x4df01b['name'];}_0x18582c[_0x766a('0x2a')](_0x2c6382)['send'](_0x4df01b);};}exports[_0x766a('0x3a')]=function(_0x2fa3e9,_0x32793c){var _0x4065bb={'include':[{'model':db[_0x766a('0x3b')],'as':'mandatoryDispositionPause'}]},_0x407c76={},_0x44bb10={'count':0x0,'rows':[]};var _0x7e983c=_[_0x766a('0x3c')](db[_0x766a('0x3d')][_0x766a('0x3e')],function(_0x3072a5){return{'name':_0x3072a5['fieldName'],'type':_0x3072a5[_0x766a('0x3f')]['key']};});_0x407c76[_0x766a('0x40')]=_[_0x766a('0x3c')](_0x7e983c,'name');_0x407c76['query']=_[_0x766a('0x41')](_0x2fa3e9[_0x766a('0x42')]);_0x407c76['filters']=_[_0x766a('0x43')](_0x407c76[_0x766a('0x40')],_0x407c76[_0x766a('0x42')]);_0x4065bb['attributes']=_[_0x766a('0x43')](_0x407c76[_0x766a('0x40')],qs[_0x766a('0x44')](_0x2fa3e9['query'][_0x766a('0x44')]));_0x4065bb[_0x766a('0x45')]=_0x4065bb[_0x766a('0x45')][_0x766a('0x46')]?_0x4065bb[_0x766a('0x45')]:_0x407c76[_0x766a('0x40')];if(!_0x2fa3e9[_0x766a('0x42')]['hasOwnProperty'](_0x766a('0x47'))){_0x4065bb[_0x766a('0x2d')]=qs[_0x766a('0x2d')](_0x2fa3e9[_0x766a('0x42')][_0x766a('0x2d')]);_0x4065bb[_0x766a('0x30')]=qs[_0x766a('0x30')](_0x2fa3e9[_0x766a('0x42')][_0x766a('0x30')]);}_0x4065bb[_0x766a('0x48')]=qs[_0x766a('0x49')](_0x2fa3e9['query'][_0x766a('0x49')]);_0x4065bb[_0x766a('0x4a')]=qs[_0x766a('0x4b')](_[_0x766a('0x4c')](_0x2fa3e9[_0x766a('0x42')],_0x407c76['filters']),_0x7e983c);if(_0x2fa3e9[_0x766a('0x42')]['filter']){_0x4065bb[_0x766a('0x4a')]=_['merge'](_0x4065bb[_0x766a('0x4a')],{'$or':_[_0x766a('0x3c')](_0x7e983c,function(_0x52dd4f){if(_0x52dd4f[_0x766a('0x3f')]!==_0x766a('0x4d')){var _0x5b8da3={};_0x5b8da3[_0x52dd4f[_0x766a('0x39')]]={'$like':'%'+_0x2fa3e9[_0x766a('0x42')][_0x766a('0x4e')]+'%'};return _0x5b8da3;}})});}_0x4065bb=_['merge']({},_0x4065bb,_0x2fa3e9[_0x766a('0x4f')]);var _0x5823e1={'where':_0x4065bb[_0x766a('0x4a')]};return db['WhatsappAccount'][_0x766a('0x2f')](_0x5823e1)[_0x766a('0x1f')](function(_0x41a6dd){_0x44bb10[_0x766a('0x2f')]=_0x41a6dd;if(_0x2fa3e9[_0x766a('0x42')][_0x766a('0x50')]){_0x4065bb[_0x766a('0x51')]=[{'all':!![]}];}return db[_0x766a('0x3d')]['findAll'](_0x4065bb);})[_0x766a('0x1f')](function(_0x17d6e1){_0x44bb10['rows']=_0x17d6e1;return _0x44bb10;})[_0x766a('0x1f')](respondWithFilteredResult(_0x32793c,_0x4065bb))['catch'](handleError(_0x32793c,null));};exports[_0x766a('0x52')]=function(_0x509495,_0x183c43){var _0x5a3af6={'raw':![],'where':{'id':_0x509495[_0x766a('0x53')]['id']},'include':[{'model':db['Pause'],'as':'mandatoryDispositionPause'}]},_0x3f1172={};_0x3f1172[_0x766a('0x40')]=_[_0x766a('0x41')](db[_0x766a('0x3d')][_0x766a('0x3e')]);_0x3f1172[_0x766a('0x42')]=_['keys'](_0x509495[_0x766a('0x42')]);_0x3f1172[_0x766a('0x4b')]=_[_0x766a('0x43')](_0x3f1172[_0x766a('0x40')],_0x3f1172[_0x766a('0x42')]);_0x5a3af6[_0x766a('0x45')]=_['intersection'](_0x3f1172[_0x766a('0x40')],qs['fields'](_0x509495[_0x766a('0x42')]['fields']));_0x5a3af6[_0x766a('0x45')]=_0x5a3af6['attributes'][_0x766a('0x46')]?_0x5a3af6[_0x766a('0x45')]:_0x3f1172[_0x766a('0x40')];if(_0x509495['query'][_0x766a('0x50')]){_0x5a3af6[_0x766a('0x51')]=[{'all':!![]}];}_0x5a3af6=_['merge']({},_0x5a3af6,_0x509495['options']);return db['WhatsappAccount'][_0x766a('0x54')](_0x5a3af6)[_0x766a('0x1f')](handleEntityNotFound(_0x183c43,null))[_0x766a('0x1f')](respondWithResult(_0x183c43,null))[_0x766a('0x28')](handleError(_0x183c43,null));};exports['create']=function(_0x42481b,_0x551dcb){return db['WhatsappAccount'][_0x766a('0x55')](_0x42481b[_0x766a('0x56')],{})['then'](function(_0x1f90fc){var _0x5660b9=_0x42481b[_0x766a('0x57')]['get']({'plain':!![]});if(!_0x5660b9)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x5660b9[_0x766a('0x58')]==='user'){var _0x499173=_0x1f90fc[_0x766a('0x59')]({'plain':!![]});var _0x2845df='WhatsappAccounts';return db[_0x766a('0x5a')][_0x766a('0x54')]({'where':{'name':_0x2845df,'userProfileId':_0x5660b9[_0x766a('0x5b')]},'raw':!![]})[_0x766a('0x1f')](function(_0x12d390){if(_0x12d390&&_0x12d390[_0x766a('0x5c')]===0x0){return db[_0x766a('0x36')][_0x766a('0x55')]({'name':_0x499173[_0x766a('0x39')],'resourceId':_0x499173['id'],'type':_0x12d390[_0x766a('0x39')],'sectionId':_0x12d390['id']},{})[_0x766a('0x1f')](function(){return _0x1f90fc;});}else{return _0x1f90fc;}})[_0x766a('0x28')](function(_0x2be4a8){logger[_0x766a('0x25')](_0x766a('0x5d'),_0x2be4a8);throw _0x2be4a8;});}return _0x1f90fc;})[_0x766a('0x1f')](respondWithResult(_0x551dcb,0xc9))['catch'](handleError(_0x551dcb,null));};exports['update']=function(_0x22efdf,_0x100d40){if(_0x22efdf[_0x766a('0x56')]['id']){delete _0x22efdf['body']['id'];}return db[_0x766a('0x3d')][_0x766a('0x54')]({'where':{'id':_0x22efdf[_0x766a('0x53')]['id']},'include':[{'model':db[_0x766a('0x3b')],'as':_0x766a('0x5e')}]})[_0x766a('0x1f')](handleEntityNotFound(_0x100d40,null))[_0x766a('0x1f')](saveUpdates(_0x22efdf['body'],null))[_0x766a('0x1f')](respondWithResult(_0x100d40,null))[_0x766a('0x28')](handleError(_0x100d40,null));};exports[_0x766a('0x37')]=function(_0x37af13,_0x3c2dc8){return db[_0x766a('0x3d')][_0x766a('0x54')]({'where':{'id':_0x37af13[_0x766a('0x53')]['id']}})[_0x766a('0x1f')](handleEntityNotFound(_0x3c2dc8,null))[_0x766a('0x1f')](removeEntity(_0x3c2dc8,null))['catch'](handleError(_0x3c2dc8,null));};exports[_0x766a('0x5f')]=function(_0x5e0f4d,_0x54bf50){return db[_0x766a('0x3d')][_0x766a('0x5f')]()[_0x766a('0x1f')](respondWithResult(_0x54bf50,null))[_0x766a('0x28')](handleError(_0x54bf50,null));};exports[_0x766a('0x60')]=function(_0xe07e4e,_0x519f0a,_0x4cdb9c){if(_0xe07e4e[_0x766a('0x56')]['id']){delete _0xe07e4e['body']['id'];}return db[_0x766a('0x3d')][_0x766a('0x54')]({'where':{'id':_0xe07e4e[_0x766a('0x53')]['id']}})[_0x766a('0x1f')](handleEntityNotFound(_0x519f0a,null))['then'](function(_0x300b5c){if(_0x300b5c){_0xe07e4e[_0x766a('0x56')]['WhatsappAccountId']=_0x300b5c['id'];return db[_0x766a('0x61')][_0x766a('0x55')](_0xe07e4e['body']);}})[_0x766a('0x1f')](respondWithResult(_0x519f0a,null))[_0x766a('0x28')](handleError(_0x519f0a,null));};exports[_0x766a('0x62')]=function(_0x325f9c,_0x18d80e,_0x3694d4){var _0x357646={'raw':![],'where':{}};var _0x9516ed={};var _0x397997={'count':0x0,'rows':[]};return db[_0x766a('0x3d')][_0x766a('0x63')]({'where':{'id':_0x325f9c[_0x766a('0x53')]['id']}})[_0x766a('0x1f')](handleEntityNotFound(_0x18d80e,null))[_0x766a('0x1f')](function(_0x123818){if(_0x123818){_0x9516ed[_0x766a('0x40')]=_[_0x766a('0x41')](db['Disposition'][_0x766a('0x3e')]);_0x9516ed[_0x766a('0x42')]=_[_0x766a('0x41')](_0x325f9c[_0x766a('0x42')]);_0x9516ed['filters']=_[_0x766a('0x43')](_0x9516ed[_0x766a('0x40')],_0x9516ed['query']);_0x357646['attributes']=_[_0x766a('0x43')](_0x9516ed[_0x766a('0x40')],qs[_0x766a('0x44')](_0x325f9c[_0x766a('0x42')][_0x766a('0x44')]));_0x357646[_0x766a('0x45')]=_0x357646[_0x766a('0x45')][_0x766a('0x46')]?_0x357646[_0x766a('0x45')]:_0x9516ed[_0x766a('0x40')];if(!_0x325f9c[_0x766a('0x42')][_0x766a('0x64')](_0x766a('0x47'))){_0x357646[_0x766a('0x2d')]=qs['limit'](_0x325f9c[_0x766a('0x42')][_0x766a('0x2d')]);_0x357646['offset']=qs['offset'](_0x325f9c['query'][_0x766a('0x30')]);}_0x357646[_0x766a('0x48')]=qs[_0x766a('0x49')](_0x325f9c[_0x766a('0x42')][_0x766a('0x49')]);_0x357646[_0x766a('0x4a')]=qs[_0x766a('0x4b')](_[_0x766a('0x4c')](_0x325f9c[_0x766a('0x42')],_0x9516ed[_0x766a('0x4b')]));_0x357646[_0x766a('0x4a')][_0x766a('0x65')]=_0x123818['id'];if(_0x325f9c[_0x766a('0x42')][_0x766a('0x4e')]){_0x357646[_0x766a('0x4a')]=_['merge'](_0x357646[_0x766a('0x4a')],{'$or':_[_0x766a('0x3c')](_0x357646[_0x766a('0x45')],function(_0x456e8d){var _0x3d6110={};_0x3d6110[_0x456e8d]={'$like':'%'+_0x325f9c[_0x766a('0x42')]['filter']+'%'};return _0x3d6110;})});}_0x357646=_[_0x766a('0x66')]({},_0x357646,_0x325f9c[_0x766a('0x4f')]);return db[_0x766a('0x61')][_0x766a('0x2f')]({'where':_0x357646[_0x766a('0x4a')]})['then'](function(_0x1079d8){_0x397997[_0x766a('0x2f')]=_0x1079d8;if(_0x325f9c[_0x766a('0x42')][_0x766a('0x50')]){_0x357646[_0x766a('0x51')]=[{'all':!![]}];}return db[_0x766a('0x61')][_0x766a('0x67')](_0x357646);})['then'](function(_0x23049b){_0x397997[_0x766a('0x68')]=_0x23049b;return _0x397997;});}})[_0x766a('0x1f')](respondWithFilteredResult(_0x18d80e,_0x357646))[_0x766a('0x28')](handleError(_0x18d80e,null));};exports[_0x766a('0x69')]=function(_0x3aa566,_0x21867a,_0x193973){return db[_0x766a('0x3d')]['find']({'where':{'id':_0x3aa566[_0x766a('0x53')]['id']}})[_0x766a('0x1f')](handleEntityNotFound(_0x21867a,null))['then'](function(_0x1ba773){if(_0x1ba773){return _0x1ba773[_0x766a('0x69')](_0x3aa566[_0x766a('0x42')][_0x766a('0x6a')]);}})[_0x766a('0x1f')](respondWithStatusCode(_0x21867a,null))[_0x766a('0x28')](handleError(_0x21867a,null));};exports[_0x766a('0x6b')]=function(_0x491887,_0x3ebc6e,_0x1ed6b6){if(_0x491887['body']['id']){delete _0x491887['body']['id'];}return db[_0x766a('0x3d')][_0x766a('0x54')]({'where':{'id':_0x491887[_0x766a('0x53')]['id']}})[_0x766a('0x1f')](handleEntityNotFound(_0x3ebc6e,null))[_0x766a('0x1f')](function(_0x3b2f3e){if(_0x3b2f3e){_0x491887[_0x766a('0x56')][_0x766a('0x65')]=_0x3b2f3e['id'];return db['CannedAnswer'][_0x766a('0x55')](_0x491887[_0x766a('0x56')]);}})[_0x766a('0x1f')](respondWithResult(_0x3ebc6e,null))[_0x766a('0x28')](handleError(_0x3ebc6e,null));};exports[_0x766a('0x6c')]=function(_0x8c2a5d,_0x490197,_0x2a0089){var _0x4fadb7={'raw':![],'where':{}};var _0x486115={};var _0x3dad03={'count':0x0,'rows':[]};return db[_0x766a('0x3d')]['findOne']({'where':{'id':_0x8c2a5d[_0x766a('0x53')]['id']}})['then'](handleEntityNotFound(_0x490197,null))[_0x766a('0x1f')](function(_0x246c58){if(_0x246c58){_0x486115[_0x766a('0x40')]=_['keys'](db[_0x766a('0x6d')]['rawAttributes']);_0x486115['query']=_['keys'](_0x8c2a5d[_0x766a('0x42')]);_0x486115[_0x766a('0x4b')]=_[_0x766a('0x43')](_0x486115[_0x766a('0x40')],_0x486115[_0x766a('0x42')]);_0x4fadb7[_0x766a('0x45')]=_[_0x766a('0x43')](_0x486115['model'],qs[_0x766a('0x44')](_0x8c2a5d[_0x766a('0x42')][_0x766a('0x44')]));_0x4fadb7[_0x766a('0x45')]=_0x4fadb7[_0x766a('0x45')][_0x766a('0x46')]?_0x4fadb7[_0x766a('0x45')]:_0x486115['model'];if(!_0x8c2a5d[_0x766a('0x42')]['hasOwnProperty'](_0x766a('0x47'))){_0x4fadb7['limit']=qs[_0x766a('0x2d')](_0x8c2a5d[_0x766a('0x42')][_0x766a('0x2d')]);_0x4fadb7[_0x766a('0x30')]=qs[_0x766a('0x30')](_0x8c2a5d[_0x766a('0x42')]['offset']);}_0x4fadb7[_0x766a('0x48')]=qs[_0x766a('0x49')](_0x8c2a5d[_0x766a('0x42')][_0x766a('0x49')]);_0x4fadb7[_0x766a('0x4a')]=qs[_0x766a('0x4b')](_[_0x766a('0x4c')](_0x8c2a5d[_0x766a('0x42')],_0x486115[_0x766a('0x4b')]));_0x4fadb7[_0x766a('0x4a')][_0x766a('0x65')]=_0x246c58['id'];if(_0x8c2a5d[_0x766a('0x42')][_0x766a('0x4e')]){_0x4fadb7[_0x766a('0x4a')]=_[_0x766a('0x66')](_0x4fadb7[_0x766a('0x4a')],{'$or':_['map'](_0x4fadb7[_0x766a('0x45')],function(_0x4938e3){var _0x5a56c5={};_0x5a56c5[_0x4938e3]={'$like':'%'+_0x8c2a5d[_0x766a('0x42')][_0x766a('0x4e')]+'%'};return _0x5a56c5;})});}_0x4fadb7=_[_0x766a('0x66')]({},_0x4fadb7,_0x8c2a5d['options']);return db[_0x766a('0x6d')][_0x766a('0x2f')]({'where':_0x4fadb7[_0x766a('0x4a')]})[_0x766a('0x1f')](function(_0x519fa8){_0x3dad03[_0x766a('0x2f')]=_0x519fa8;if(_0x8c2a5d[_0x766a('0x42')][_0x766a('0x50')]){_0x4fadb7[_0x766a('0x51')]=[{'all':!![]}];}return db[_0x766a('0x6d')][_0x766a('0x67')](_0x4fadb7);})['then'](function(_0x5ad3a3){_0x3dad03[_0x766a('0x68')]=_0x5ad3a3;return _0x3dad03;});}})[_0x766a('0x1f')](respondWithFilteredResult(_0x490197,_0x4fadb7))[_0x766a('0x28')](handleError(_0x490197,null));};exports[_0x766a('0x6e')]=function(_0x42ab72,_0x266d2f,_0x1284b5){return db[_0x766a('0x3d')][_0x766a('0x54')]({'where':{'id':_0x42ab72['params']['id']}})['then'](handleEntityNotFound(_0x266d2f,null))[_0x766a('0x1f')](function(_0x16e0da){if(_0x16e0da){return _0x16e0da['removeAnswers'](_0x42ab72[_0x766a('0x42')]['ids']);}})[_0x766a('0x1f')](respondWithStatusCode(_0x266d2f,null))[_0x766a('0x28')](handleError(_0x266d2f,null));};exports[_0x766a('0x6f')]=function(_0x46d86c,_0x263109,_0x19aa6d){return db['WhatsappAccount'][_0x766a('0x54')]({'where':{'id':_0x46d86c[_0x766a('0x53')]['id']}})[_0x766a('0x1f')](handleEntityNotFound(_0x263109,null))[_0x766a('0x1f')](function(_0x54e6ea){if(_0x54e6ea){return _0x54e6ea[_0x766a('0x6f')](_0x46d86c[_0x766a('0x56')]['ids'],_[_0x766a('0x70')](_0x46d86c[_0x766a('0x56')],[_0x766a('0x6a'),'id'])||{})['spread'](function(_0x170c0c){for(var _0x162f87=0x0;_0x162f87<_0x46d86c[_0x766a('0x56')][_0x766a('0x6a')][_0x766a('0x46')];_0x162f87+=0x1){socket[_0x766a('0x71')](_0x766a('0x72'),{'UserId':Number(_0x46d86c[_0x766a('0x56')][_0x766a('0x6a')][_0x162f87]),'WhatsappAccountId':Number(_0x46d86c['params']['id'])});}return _0x170c0c;});}})[_0x766a('0x1f')](respondWithResult(_0x263109,null))['catch'](handleError(_0x263109,null));};exports[_0x766a('0x73')]=function(_0x464d66,_0x136c70,_0x3deba8){return db['WhatsappAccount'][_0x766a('0x54')]({'where':{'id':_0x464d66[_0x766a('0x53')]['id']}})[_0x766a('0x1f')](handleEntityNotFound(_0x136c70,null))[_0x766a('0x1f')](function(_0x2b420a){if(_0x2b420a){return _0x2b420a[_0x766a('0x73')](_0x464d66[_0x766a('0x42')]['ids'])[_0x766a('0x1f')](function(){if(_[_0x766a('0x74')](_0x464d66['query']['ids'])){for(var _0x10b0ec=0x0;_0x10b0ec<_0x464d66[_0x766a('0x42')]['ids'][_0x766a('0x46')];_0x10b0ec+=0x1){socket['emit'](_0x766a('0x75'),{'UserId':Number(_0x464d66['query'][_0x766a('0x6a')][_0x10b0ec]),'WhatsappAccountId':Number(_0x464d66[_0x766a('0x53')]['id'])});}}else{socket[_0x766a('0x71')]('userWhatsappAccount:remove',{'UserId':Number(_0x464d66[_0x766a('0x42')][_0x766a('0x6a')]),'WhatsappAccountId':Number(_0x464d66[_0x766a('0x53')]['id'])});}});}})[_0x766a('0x1f')](respondWithStatusCode(_0x136c70,null))[_0x766a('0x28')](handleError(_0x136c70,null));};exports[_0x766a('0x76')]=function(_0x279f08,_0x506370,_0x48c1f1){var _0x461205={};var _0x55e4cb={};var _0x3a787c;var _0x79d236;return db[_0x766a('0x3d')][_0x766a('0x63')]({'where':{'id':_0x279f08['params']['id']}})[_0x766a('0x1f')](handleEntityNotFound(_0x506370,null))[_0x766a('0x1f')](function(_0x290a5b){if(_0x290a5b){_0x3a787c=_0x290a5b;_0x55e4cb[_0x766a('0x40')]=_[_0x766a('0x41')](db['User'][_0x766a('0x3e')]);_0x55e4cb['query']=_[_0x766a('0x41')](_0x279f08[_0x766a('0x42')]);_0x55e4cb[_0x766a('0x4b')]=_[_0x766a('0x43')](_0x55e4cb[_0x766a('0x40')],_0x55e4cb[_0x766a('0x42')]);_0x461205[_0x766a('0x45')]=_[_0x766a('0x43')](_0x55e4cb[_0x766a('0x40')],qs[_0x766a('0x44')](_0x279f08[_0x766a('0x42')][_0x766a('0x44')]));_0x461205['attributes']=_0x461205[_0x766a('0x45')]['length']?_0x461205[_0x766a('0x45')]:_0x55e4cb['model'];_0x461205[_0x766a('0x48')]=qs[_0x766a('0x49')](_0x279f08[_0x766a('0x42')]['sort']);_0x461205['where']=qs[_0x766a('0x4b')](_['pick'](_0x279f08['query'],_0x55e4cb[_0x766a('0x4b')]));if(_0x279f08[_0x766a('0x42')][_0x766a('0x4e')]){_0x461205[_0x766a('0x4a')]=_[_0x766a('0x66')](_0x461205['where'],{'$or':_[_0x766a('0x3c')](_0x461205[_0x766a('0x45')],function(_0x571a1f){var _0x20755c={};_0x20755c[_0x571a1f]={'$like':'%'+_0x279f08['query'][_0x766a('0x4e')]+'%'};return _0x20755c;})});}_0x461205=_[_0x766a('0x66')]({},_0x461205,_0x279f08['options']);return _0x3a787c[_0x766a('0x76')](_0x461205);}})[_0x766a('0x1f')](function(_0x1f670c){if(_0x1f670c){_0x79d236=_0x1f670c[_0x766a('0x46')];if(!_0x279f08[_0x766a('0x42')]['hasOwnProperty'](_0x766a('0x47'))){_0x461205[_0x766a('0x2d')]=qs[_0x766a('0x2d')](_0x279f08[_0x766a('0x42')]['limit']);_0x461205[_0x766a('0x30')]=qs[_0x766a('0x30')](_0x279f08[_0x766a('0x42')][_0x766a('0x30')]);}return _0x3a787c[_0x766a('0x76')](_0x461205);}})['then'](function(_0x4d5d7b){if(_0x4d5d7b){return _0x4d5d7b?{'count':_0x79d236,'rows':_0x4d5d7b}:null;}})[_0x766a('0x1f')](respondWithResult(_0x506370,null))['catch'](handleError(_0x506370,null));};exports[_0x766a('0x77')]=function(_0x2b197c,_0x36aa76){var _0x817bc9=_0x2b197c['params']['id'];var _0x54ee92=_0x2b197c['body'];var _0x2437f5=0xc8;var _0x43dc03=null;return db['sequelize'][_0x766a('0x78')]({'isolationLevel':db[_0x766a('0x79')][_0x766a('0x7a')][_0x766a('0x7b')][_0x766a('0x7c')]},function(_0xfe62c9){return db[_0x766a('0x3d')][_0x766a('0x63')]({'where':{'id':_0x817bc9},'transaction':_0xfe62c9})[_0x766a('0x1f')](function(_0x5d2a92){if(_0x5d2a92){return db[_0x766a('0x7d')][_0x766a('0x37')]({'where':{'WhatsappAccountId':_0x817bc9},'transaction':_0xfe62c9})[_0x766a('0x1f')](function(){var _0x4657d0=_[_0x766a('0x3c')](_0x54ee92,function(_0x97fd83){_0x97fd83[_0x766a('0x65')]=_0x817bc9;return _0x97fd83;});return db[_0x766a('0x7d')]['bulkCreate'](_0x4657d0,{'transaction':_0xfe62c9});});}else{_0x2437f5=0x194;_0x43dc03=[];}});})[_0x766a('0x1f')](function(){if(_0x2437f5!==0x194){return db[_0x766a('0x7d')][_0x766a('0x7e')]({'where':{'WhatsappAccountId':_0x817bc9},'order':_0x766a('0x7f')})[_0x766a('0x1f')](function(_0x5725c3){_0x43dc03=_0x5725c3;});}})[_0x766a('0x28')](function(_0x39f236){_0x2437f5=0x1f4;logger[_0x766a('0x25')](_0x39f236[_0x766a('0x38')]);if(_0x39f236[_0x766a('0x39')]){delete _0x39f236[_0x766a('0x39')];}_0x43dc03=_0x39f236;})[_0x766a('0x80')](function(){if(_0x43dc03===null){_0x36aa76[_0x766a('0x29')](_0x2437f5);}else{if(_0x2437f5===0x1f4){_0x36aa76[_0x766a('0x2a')](_0x2437f5)[_0x766a('0x81')](_0x43dc03);}else{_0x36aa76[_0x766a('0x2a')](_0x2437f5)['json'](_0x43dc03);}}});};exports[_0x766a('0x82')]=function(_0x2d49c2,_0x42ecdb,_0x8b1d30){var _0x4a8e98={};var _0x2dff4f={};var _0x58e246;var _0x28cc2d;return db[_0x766a('0x3d')][_0x766a('0x63')]({'where':{'id':_0x2d49c2[_0x766a('0x53')]['id']}})[_0x766a('0x1f')](handleEntityNotFound(_0x42ecdb,null))['then'](function(_0x3597de){if(_0x3597de){_0x58e246=_0x3597de;_0x2dff4f['model']=_[_0x766a('0x41')](db[_0x766a('0x7d')][_0x766a('0x3e')]);_0x2dff4f[_0x766a('0x42')]=_[_0x766a('0x41')](_0x2d49c2[_0x766a('0x42')]);_0x2dff4f[_0x766a('0x4b')]=_[_0x766a('0x43')](_0x2dff4f[_0x766a('0x40')],_0x2dff4f[_0x766a('0x42')]);_0x4a8e98['attributes']=_['intersection'](_0x2dff4f[_0x766a('0x40')],qs[_0x766a('0x44')](_0x2d49c2[_0x766a('0x42')][_0x766a('0x44')]));_0x4a8e98['attributes']=_0x4a8e98[_0x766a('0x45')][_0x766a('0x46')]?_0x4a8e98['attributes']:_0x2dff4f[_0x766a('0x40')];_0x4a8e98[_0x766a('0x48')]=qs[_0x766a('0x49')](_0x2d49c2['query'][_0x766a('0x49')]);_0x4a8e98[_0x766a('0x4a')]=qs[_0x766a('0x4b')](_[_0x766a('0x4c')](_0x2d49c2[_0x766a('0x42')],_0x2dff4f['filters']));if(_0x2d49c2['query'][_0x766a('0x4e')]){_0x4a8e98[_0x766a('0x4a')]=_[_0x766a('0x66')](_0x4a8e98[_0x766a('0x4a')],{'$or':_[_0x766a('0x3c')](_0x4a8e98[_0x766a('0x45')],function(_0x554936){var _0x4e2e6a={};_0x4e2e6a[_0x554936]={'$like':'%'+_0x2d49c2[_0x766a('0x42')][_0x766a('0x4e')]+'%'};return _0x4e2e6a;})});}_0x4a8e98=_['merge']({},_0x4a8e98,_0x2d49c2[_0x766a('0x4f')]);return _0x58e246[_0x766a('0x82')](_0x4a8e98);}})['then'](function(_0x4afb73){if(_0x4afb73){_0x28cc2d=_0x4afb73[_0x766a('0x46')];if(!_0x2d49c2[_0x766a('0x42')]['hasOwnProperty'](_0x766a('0x47'))){_0x4a8e98[_0x766a('0x2d')]=qs['limit'](_0x2d49c2[_0x766a('0x42')]['limit']);_0x4a8e98[_0x766a('0x30')]=qs[_0x766a('0x30')](_0x2d49c2[_0x766a('0x42')][_0x766a('0x30')]);}return _0x58e246[_0x766a('0x82')](_0x4a8e98);}})[_0x766a('0x1f')](function(_0x53d687){if(_0x53d687){return _0x53d687?{'count':_0x28cc2d,'rows':_0x53d687}:null;}})['then'](respondWithResult(_0x42ecdb,null))[_0x766a('0x28')](handleError(_0x42ecdb,null));};exports[_0x766a('0x83')]=function(_0x38e212,_0x58fb69,_0x3d0ed3){var _0x1c26b7={'channel':_0x766a('0x84')};var _0xa702b8=[];var _0x533a20=[];var _0x11c319={};return db[_0x766a('0x3d')][_0x766a('0x54')]({'where':{'id':_0x38e212[_0x766a('0x53')]['id']},'include':[{'model':db['WhatsappApplication'],'as':'Applications'}]})['then'](handleEntityNotFound(_0x58fb69,null))['then'](function(_0x4510bc){_0x1c26b7[_0x766a('0x85')]=_0x4510bc;if(_0x1c26b7['account']&&_0x1c26b7[_0x766a('0x85')][_0x766a('0x3f')]==='sinch'&&_0x38e212[_0x766a('0x56')][_0x766a('0x86')]){if(_0x38e212[_0x766a('0x56')][_0x766a('0x86')][_0x766a('0x46')]===0x0)return;if(_0x38e212[_0x766a('0x56')][_0x766a('0x86')][0x0]['state']!==_0x766a('0x87'))return;return db['WhatsappMessage']['update']({'read':!![],'readAt':_0x38e212[_0x766a('0x56')][_0x766a('0x86')][0x0]['timestamp']},{'where':{'messageId':_0x38e212[_0x766a('0x56')][_0x766a('0x86')][0x0][_0x766a('0x88')]},'individualHooks':!![]})[_0x766a('0x1f')](function(_0x548852){return _0x58fb69[_0x766a('0x2a')](0xc8)['json'](_0x548852);});}_0x1c26b7['applications']=_[_0x766a('0x89')](_0x4510bc[_0x766a('0x8a')],[_0x766a('0x7f')],[_0x766a('0x8b')]);if(_0x1c26b7[_0x766a('0x85')][_0x766a('0x8a')]){delete _0x1c26b7[_0x766a('0x85')]['Applications'];}return db[_0x766a('0x8c')][_0x766a('0x5f')]()[_0x766a('0x1f')](function(_0x2a68a8){if(!_0x2a68a8){throw new db[(_0x766a('0x8d'))][(_0x766a('0x8e'))](_0x766a('0x8f'));}_0xa702b8=_['difference'](_[_0x766a('0x41')](_0x2a68a8),[_0x766a('0x90'),_0x766a('0x91')]);_0x533a20=_[_0x766a('0x92')](_[_0x766a('0x41')](_0x2a68a8),[_0x766a('0x90'),_0x766a('0x91'),_0x766a('0x93'),_0x766a('0x94')]);_0x1c26b7[_0x766a('0x56')]={'mapKey':_0x766a('0x95')};if(_0x1c26b7[_0x766a('0x85')]&&_0x1c26b7['account']['type']===_0x766a('0x96')){_0x1c26b7[_0x766a('0x56')][_0x766a('0x97')]=_0x38e212['body'][_0x766a('0x98')][_0x766a('0x99')](_0x766a('0x9a'),'');_0x1c26b7[_0x766a('0x56')][_0x766a('0x56')]=_0x38e212[_0x766a('0x56')]['Body'];_0x1c26b7[_0x766a('0x56')][_0x766a('0x9b')]=_0x38e212[_0x766a('0x56')]['MessageSid'];}if(_0x1c26b7['account']&&_0x1c26b7[_0x766a('0x85')][_0x766a('0x3f')]==='sinch'){_0x1c26b7[_0x766a('0x56')][_0x766a('0x97')]=_0x38e212[_0x766a('0x56')][_0x766a('0x9c')][0x0]['from'];_0x1c26b7[_0x766a('0x56')][_0x766a('0x56')]=_0x38e212['body']['notifications'][0x0][_0x766a('0x26')][_0x766a('0x56')];_0x1c26b7['body'][_0x766a('0x9b')]=_0x38e212[_0x766a('0x56')][_0x766a('0x9c')][0x0]['message_id'];}if(_0x1c26b7['body']['id']){delete _0x1c26b7[_0x766a('0x56')]['id'];}if(_['isNil'](_0x1c26b7[_0x766a('0x56')]['from'])){throw new db[(_0x766a('0x8d'))]['ValidationError']('from\x20is\x20mandatory');}if(_[_0x766a('0x9d')](_0x1c26b7['body'][_0x766a('0x56')])||_0x1c26b7[_0x766a('0x56')][_0x766a('0x56')]===''){throw new db['Sequelize']['ValidationError']('body\x20is\x20mandatory\x20and\x20not\x20empty');}if(_[_0x766a('0x9d')](_0x1c26b7[_0x766a('0x56')]['mapKey'])){throw new db[(_0x766a('0x8d'))][(_0x766a('0x8e'))](_0x766a('0x9e')+_0x533a20);}if(!_[_0x766a('0x9f')](_0x533a20,_0x1c26b7[_0x766a('0x56')][_0x766a('0xa0')])){throw new db[(_0x766a('0x8d'))][(_0x766a('0x8e'))](_0x766a('0xa1')+_0x533a20);}_0x11c319[_0x1c26b7[_0x766a('0x56')][_0x766a('0xa0')]]=_0x1c26b7[_0x766a('0x56')][_0x766a('0x97')];return db['CmList'][_0x766a('0x54')]({'where':{'id':_0x1c26b7[_0x766a('0x85')]['ListId']},'include':[{'model':db[_0x766a('0x8c')],'as':'Contacts','where':_0x11c319,'limit':0x1,'order':[['updatedAt',_0x766a('0xa2')]]}]});})[_0x766a('0x1f')](handleEntityNotFound(_0x58fb69,null))[_0x766a('0x1f')](function(_0x33ff7d){if(_0x33ff7d){_0x1c26b7[_0x766a('0xa3')]=_[_0x766a('0x70')](_0x33ff7d,[_0x766a('0xa4')]);if(_0x33ff7d[_0x766a('0xa4')]['length']){return _0x33ff7d[_0x766a('0xa4')][0x0];}var _0x195ad6=_[_0x766a('0x17')](_0x1c26b7[_0x766a('0x56')],{'firstName':_0x1c26b7[_0x766a('0x56')][_0x766a('0x97')],'ListId':_0x33ff7d['id']});_0x195ad6[_0x1c26b7[_0x766a('0x56')]['mapKey']]=_0x1c26b7[_0x766a('0x56')][_0x766a('0x97')];return db[_0x766a('0x8c')][_0x766a('0x55')](_0x195ad6,{'fields':_0xa702b8,'raw':!![]});}})[_0x766a('0x1f')](handleEntityNotFound(_0x58fb69,null))['then'](function(_0x28ff71){if(_0x28ff71){_0x1c26b7[_0x766a('0xa5')]=_0x28ff71;var _0x19fba2={'ContactId':_0x28ff71['id'],'phone':_0x1c26b7['body'][_0x766a('0x97')],'WhatsappAccountId':_0x38e212[_0x766a('0x53')]['id']};var _0x78f705={'ContactId':_0x28ff71['id'],'WhatsappAccountId':_0x38e212[_0x766a('0x53')]['id'],'closed':![]};return db['WhatsappInteraction'][_0x766a('0x54')]({'where':_0x78f705})['then'](function(_0x2492a8){if(_0x2492a8){return[_0x2492a8,![]];}return db[_0x766a('0xa6')][_0x766a('0x55')](_0x19fba2)[_0x766a('0x1f')](function(_0x10cad){return[_0x10cad,!![]];});});}})[_0x766a('0xa7')](function(_0x23c135,_0x1e5f24){_0x1c26b7['interaction']=_0x23c135['get']({'plain':!![]});_0x1c26b7[_0x766a('0xa8')][_0x766a('0xa9')]=![];if(_0x1e5f24){if(_0x1c26b7['account'][_0x766a('0xaa')]){_0x1c26b7[_0x766a('0xab')][_0x766a('0xac')]({'id':0x0,'priority':_0x1c26b7[_0x766a('0xab')][_0x766a('0x46')]+0x1,'app':_0x766a('0xad'),'appdata':_0x766a('0xae'),'interval':_0x766a('0xaf')});}_0x1c26b7[_0x766a('0xa8')]['created']=!![];}return db[_0x766a('0xb0')][_0x766a('0x55')]({'phone':_0x1c26b7[_0x766a('0x56')]['from'],'messageId':_0x1c26b7[_0x766a('0x56')][_0x766a('0x9b')],'body':_0x1c26b7[_0x766a('0x56')][_0x766a('0x56')],'WhatsappAccountId':_0x38e212[_0x766a('0x53')]['id'],'WhatsappInteractionId':_0x23c135['id'],'direction':'in','ContactId':_0x23c135[_0x766a('0xb1')],'AttachmentId':_0x1c26b7['body'][_0x766a('0xb2')]});})['then'](function(_0x11368f){_0x1c26b7['message']=_0x11368f;if(_0x1c26b7[_0x766a('0xa8')][_0x766a('0xb3')]){return db[_0x766a('0xb4')][_0x766a('0x54')]({'attributes':['id',_0x766a('0x39')],'where':{'id':_0x1c26b7['interaction'][_0x766a('0xb3')]}})[_0x766a('0x1f')](function(_0x23cb2e){if(_0x23cb2e){_0x1c26b7[_0x766a('0xab')][_0x766a('0xb5')]({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x23cb2e[_0x766a('0x39')]+','+(_0x1c26b7['account']['waitForTheAssignedAgent']||0xa),'interval':'*,*,*,*'});}return respondWithRpcPromise(_0x766a('0xb6'),_0x766a('0xb7'),_0x1c26b7);});}return respondWithRpcPromise(_0x766a('0xb6'),_0x766a('0xb7'),_0x1c26b7);})[_0x766a('0x1f')](function(_0x219783){if(_0x219783){var _0x9bbe76=0xc8;var _0x397155=_0x766a('0xb8');logger[_0x766a('0x20')](_0x766a('0x23'),_0x397155,_0x9bbe76,_0x766a('0xb9'));logger['debug'](_0x766a('0xba'),_0x397155,_0x9bbe76,_0x766a('0xb9'),JSON[_0x766a('0x24')](_0x219783));if(_0x1c26b7[_0x766a('0x85')]['type']==='twilio'){return _0x58fb69[_0x766a('0x2a')](_0x9bbe76)[_0x766a('0x31')](_0x766a('0xbb'),'text/xml')[_0x766a('0x81')](_0x766a('0xbc'));}else{return _0x58fb69[_0x766a('0x2a')](_0x9bbe76)[_0x766a('0x2c')](_0x219783);}}});})['catch'](handleError(_0x58fb69,null));};exports['send']=function(_0x15fc1e,_0x399d3d,_0x28cfd3){var _0x37ab01,_0x514685,_0x4d5461;if(_[_0x766a('0x9d')](_0x15fc1e['body'][_0x766a('0x56')])||_0x15fc1e[_0x766a('0x56')]['body']===''){throw new db[(_0x766a('0x8d'))][(_0x766a('0x8e'))]('body\x20is\x20mandatory\x20and\x20not\x20empty');}if(_['isNil'](_0x15fc1e['body']['to'])){throw new db['Sequelize']['ValidationError'](_0x766a('0xbd'));}_0x37ab01=_0x15fc1e[_0x766a('0x56')]['to'];return db[_0x766a('0x3d')][_0x766a('0x54')]({'where':{'id':_0x15fc1e[_0x766a('0x53')]['id']},'include':[{'model':db['CmList'],'as':_0x766a('0xbe'),'include':[{'model':db['CmContact'],'as':_0x766a('0xa4'),'where':{'mobile':_0x37ab01},'limit':0x1,'order':[[_0x766a('0x91'),_0x766a('0xa2')]]}]}]})['then'](handleEntityNotFound(_0x399d3d,null))['then'](function(_0x11866e){if(_0x11866e&&_0x11866e['List']){_0x514685=_0x11866e[_0x766a('0x59')]({'plain':!![]});if(_0x514685[_0x766a('0xbe')]&&_0x514685[_0x766a('0xbe')][_0x766a('0xa4')][_0x766a('0x46')]){return _0x514685[_0x766a('0xbe')]['Contacts'][0x0];}return db[_0x766a('0x8c')][_0x766a('0x55')](_[_0x766a('0x17')](_0x15fc1e[_0x766a('0x56')],{'firstName':_0x37ab01,'mobile':_0x37ab01,'phone':_0x37ab01,'ListId':_0x514685[_0x766a('0x94')]}));}})[_0x766a('0x1f')](handleEntityNotFound(_0x399d3d,null))[_0x766a('0x1f')](function(_0x5c7c0c){if(_0x5c7c0c){_0x4d5461=_0x5c7c0c;return db[_0x766a('0xa6')][_0x766a('0x54')]({'where':{'ContactId':_0x4d5461['id'],'closed':![],'WhatsappAccountId':_0x514685['id']}})[_0x766a('0x1f')](function(_0x452a02){if(_0x452a02){return[_0x452a02,![]];}return db[_0x766a('0xa6')]['create']({'UserId':_0x15fc1e[_0x766a('0x57')]['id'],'ContactId':_0x4d5461['id'],'WhatsappAccountId':_0x514685['id'],'phone':_0x37ab01,'firstMsgDirection':_0x766a('0xbf'),'Messages':[_[_0x766a('0x66')](_0x15fc1e[_0x766a('0x56')],{'read':![],'body':_0x15fc1e[_0x766a('0x56')]['body'],'phone':_0x37ab01,'WhatsappAccountId':_0x514685['id'],'UserId':_0x15fc1e[_0x766a('0x57')]['id'],'ContactId':_0x4d5461['id']})]},{'include':[{'model':db[_0x766a('0xb0')],'as':_0x766a('0xc0')}]})[_0x766a('0x1f')](function(_0x5ea044){return[_0x5ea044,!![]];});});}})[_0x766a('0xa7')](function(_0x494900,_0x2d1859){if(_0x2d1859){return _0x494900;}return db[_0x766a('0xb0')][_0x766a('0x55')](_['merge'](_0x15fc1e[_0x766a('0x56')],{'read':![],'body':_0x15fc1e['body']['body'],'phone':_0x37ab01,'WhatsappAccountId':_0x514685['id'],'WhatsappInteractionId':_0x494900['id'],'UserId':_0x15fc1e[_0x766a('0x57')]['id'],'ContactId':_0x4d5461['id']}))[_0x766a('0x1f')](function(_0x3d6f7e){_0x494900[_0x766a('0xc1')][_0x766a('0xc0')]=[];_0x494900['dataValues']['Messages'][_0x766a('0xac')](_0x3d6f7e[_0x766a('0xc1')]);return _0x494900;});})[_0x766a('0x1f')](respondWithResult(_0x399d3d,null))[_0x766a('0x28')](handleError(_0x399d3d,null));};
\ No newline at end of file
+var _0xcb89=['userWhatsappAccount:save','removeAgents','isArray','userWhatsappAccount:remove','getAgents','User','addApplications','sequelize','Transaction','ISOLATION_LEVELS','READ_COMMITTED','bulkCreate','findAndCountAll','stack','send','getApplications','notify','whatsapp','WhatsappApplication','Applications','account','statuses','state','read','WhatsappMessage','timestamp','orderBy','priority','CmContact','no\x20available\x20attributes','createdAt','updatedAt','difference','CompanyId','twilio','from','From','replace','whatsapp:','messageId','MessageSid','notifications','message_id','from\x20is\x20mandatory','isNil','ValidationError','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','includes','Sequelize','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','CmList','ListId','Contacts','list','omit','defaults','contact','WhatsappInteraction','interaction','created','autoclose','applications','push','close','unmanaged','*,*,*,*','ContactId','AttachmentId','UserId','unshift','agent','waitForTheAssignedAgent','startRouting','Start','receiveMessage','WhatsappAccount,\x20%s,\x20%s,\x20%s','entity\x20found','WhatsappAccount,\x20%s,\x20%s,\x20%s,\x20%s','Content-Type','text/xml','<?xml\x20version=\x221.0\x22\x20encoding=\x22UTF-8\x22?>\x0a<Response></Response>','to\x20is\x20mandatory','List','DESC','out','Messages','dataValues','eml-format','rimraf','request-promise','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','redis','localhost','socket.io-emitter','./whatsappAccount.socket','register','jayson/promise','client','http','request','info','WhatsappAccount,\x20%s,\x20%s','request\x20sent','debug','error','message','catch','sendStatus','end','status','undefined','count','offset','limit','set','Content-Range','json','apply','reject','save','update','destroy','then','get','WhatsappAccounts','UserProfileResource','name','index','Pause','mandatoryDispositionPause','map','WhatsappAccount','rawAttributes','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filter','merge','VIRTUAL','options','include','findAll','show','params','includeAll','find','create','body','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','describe','addDisposition','WhatsappAccountId','Disposition','findOne','nolimit','rows','removeDispositions','addAnswer','getAnswers','CannedAnswer','ids','addAgents','spread','emit'];(function(_0x37a873,_0x1cc1ea){var _0x505010=function(_0x53b9e4){while(--_0x53b9e4){_0x37a873['push'](_0x37a873['shift']());}};_0x505010(++_0x1cc1ea);}(_0xcb89,0x1ec));var _0x9cb8=function(_0x580647,_0x43d2c3){_0x580647=_0x580647-0x0;var _0x5f0792=_0xcb89[_0x580647];return _0x5f0792;};'use strict';var emlformat=require(_0x9cb8('0x0'));var rimraf=require(_0x9cb8('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x9cb8('0x2'));var moment=require('moment');var BPromise=require(_0x9cb8('0x3'));var Mustache=require(_0x9cb8('0x4'));var util=require('util');var path=require(_0x9cb8('0x5'));var sox=require(_0x9cb8('0x6'));var csv=require(_0x9cb8('0x7'));var ejs=require(_0x9cb8('0x8'));var fs=require('fs');var fs_extra=require(_0x9cb8('0x9'));var _=require(_0x9cb8('0xa'));var squel=require(_0x9cb8('0xb'));var crypto=require(_0x9cb8('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x9cb8('0xd'));var toCsv=require('to-csv');var querystring=require(_0x9cb8('0xe'));var Papa=require(_0x9cb8('0xf'));var Redis=require('ioredis');var authService=require(_0x9cb8('0x10'));var qs=require(_0x9cb8('0x11'));var as=require(_0x9cb8('0x12'));var hardwareService=require(_0x9cb8('0x13'));var logger=require('../../config/logger')(_0x9cb8('0x14'));var utils=require(_0x9cb8('0x15'));var config=require(_0x9cb8('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0x9cb8('0x17'))['db'];config[_0x9cb8('0x18')]=_['defaults'](config[_0x9cb8('0x18')],{'host':_0x9cb8('0x19'),'port':0x18eb});var socket=require(_0x9cb8('0x1a'))(new Redis(config['redis']));require(_0x9cb8('0x1b'))[_0x9cb8('0x1c')](socket);var jayson=require(_0x9cb8('0x1d'));var client=jayson[_0x9cb8('0x1e')][_0x9cb8('0x1f')]({'port':0x232c});function respondWithRpcPromise(_0x3cfa6b,_0x41570b,_0xdb9bb8,_0x4124e0){return new BPromise(function(_0x4030bb,_0x4b9449){var _0x2b3eff=_0x4124e0||client;return _0x2b3eff[_0x9cb8('0x20')](_0x3cfa6b,_0xdb9bb8)['then'](function(_0x31e359){logger[_0x9cb8('0x21')](_0x9cb8('0x22'),_0x41570b,_0x9cb8('0x23'));logger[_0x9cb8('0x24')]('WhatsappAccount,\x20%s,\x20%s,\x20%s',_0x41570b,_0x9cb8('0x23'),JSON['stringify'](_0x31e359));if(_0x31e359['error']){if(_0x31e359[_0x9cb8('0x25')]['code']===0x1f4){logger[_0x9cb8('0x25')](_0x9cb8('0x22'),_0x41570b,_0x31e359[_0x9cb8('0x25')][_0x9cb8('0x26')]);return _0x4b9449(_0x31e359['error'][_0x9cb8('0x26')]);}logger[_0x9cb8('0x25')](_0x9cb8('0x22'),_0x41570b,_0x31e359['error']['message']);return _0x4030bb(_0x31e359[_0x9cb8('0x25')][_0x9cb8('0x26')]);}else{logger[_0x9cb8('0x21')](_0x9cb8('0x22'),_0x41570b,_0x9cb8('0x23'));_0x4030bb(_0x31e359['result'][_0x9cb8('0x26')]);}})[_0x9cb8('0x27')](function(_0x3bdbdf){logger['error'](_0x9cb8('0x22'),_0x41570b,_0x3bdbdf);_0x4b9449(_0x3bdbdf);});});}function respondWithStatusCode(_0x308b48,_0x3f6ed1){_0x3f6ed1=_0x3f6ed1||0xcc;return function(_0x522574){if(_0x522574){return _0x308b48[_0x9cb8('0x28')](_0x3f6ed1);}return _0x308b48['status'](_0x3f6ed1)[_0x9cb8('0x29')]();};}function respondWithResult(_0x51caef,_0x2bb909){_0x2bb909=_0x2bb909||0xc8;return function(_0x52a3a2){if(_0x52a3a2){return _0x51caef[_0x9cb8('0x2a')](_0x2bb909)['json'](_0x52a3a2);}};}function respondWithFilteredResult(_0x1ad7a1,_0x47cc84){return function(_0x17f04a){if(_0x17f04a){var _0x5d2706=typeof _0x47cc84['offset']===_0x9cb8('0x2b')&&typeof _0x47cc84['limit']==='undefined';var _0x248f07=_0x17f04a[_0x9cb8('0x2c')];var _0x47fcc1=_0x5d2706?0x0:_0x47cc84[_0x9cb8('0x2d')];var _0x5ab480=_0x5d2706?_0x17f04a['count']:_0x47cc84[_0x9cb8('0x2d')]+_0x47cc84[_0x9cb8('0x2e')];var _0x283392;if(_0x5ab480>=_0x248f07){_0x5ab480=_0x248f07;_0x283392=0xc8;}else{_0x283392=0xce;}_0x1ad7a1[_0x9cb8('0x2a')](_0x283392);return _0x1ad7a1[_0x9cb8('0x2f')](_0x9cb8('0x30'),_0x47fcc1+'-'+_0x5ab480+'/'+_0x248f07)[_0x9cb8('0x31')](_0x17f04a);}return null;};}function patchUpdates(_0x2ac8b2){return function(_0xdd6a25){try{jsonpatch[_0x9cb8('0x32')](_0xdd6a25,_0x2ac8b2,!![]);}catch(_0x2aa501){return BPromise[_0x9cb8('0x33')](_0x2aa501);}return _0xdd6a25[_0x9cb8('0x34')]();};}function saveUpdates(_0x4b192a,_0x5e66d0){return function(_0x4f0927){if(_0x4f0927){return _0x4f0927[_0x9cb8('0x35')](_0x4b192a)['then'](function(_0x38a5d9){return _0x38a5d9;});}return null;};}function removeEntity(_0x270380,_0x50361d){return function(_0x843db1){if(_0x843db1){return _0x843db1[_0x9cb8('0x36')]()[_0x9cb8('0x37')](function(){var _0x196a12=_0x843db1[_0x9cb8('0x38')]({'plain':!![]});var _0x3711ea=_0x9cb8('0x39');return db[_0x9cb8('0x3a')][_0x9cb8('0x36')]({'where':{'type':_0x3711ea,'resourceId':_0x196a12['id']}})['then'](function(){return _0x843db1;});})[_0x9cb8('0x37')](function(){_0x270380[_0x9cb8('0x2a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x41e613,_0x325955){return function(_0x5b890e){if(!_0x5b890e){_0x41e613['sendStatus'](0x194);}return _0x5b890e;};}function handleError(_0x420033,_0x151a76){_0x151a76=_0x151a76||0x1f4;return function(_0x38917b){logger[_0x9cb8('0x25')](_0x38917b['stack']);if(_0x38917b[_0x9cb8('0x3b')]){delete _0x38917b[_0x9cb8('0x3b')];}_0x420033['status'](_0x151a76)['send'](_0x38917b);};}exports[_0x9cb8('0x3c')]=function(_0x7cddf6,_0x11ef83){var _0x507917={'include':[{'model':db[_0x9cb8('0x3d')],'as':_0x9cb8('0x3e')}]},_0x5d0ee2={},_0x5bfee5={'count':0x0,'rows':[]};var _0x3c637a=_[_0x9cb8('0x3f')](db[_0x9cb8('0x40')][_0x9cb8('0x41')],function(_0x25c85c){return{'name':_0x25c85c['fieldName'],'type':_0x25c85c[_0x9cb8('0x42')][_0x9cb8('0x43')]};});_0x5d0ee2[_0x9cb8('0x44')]=_['map'](_0x3c637a,'name');_0x5d0ee2[_0x9cb8('0x45')]=_[_0x9cb8('0x46')](_0x7cddf6['query']);_0x5d0ee2[_0x9cb8('0x47')]=_[_0x9cb8('0x48')](_0x5d0ee2[_0x9cb8('0x44')],_0x5d0ee2[_0x9cb8('0x45')]);_0x507917[_0x9cb8('0x49')]=_['intersection'](_0x5d0ee2['model'],qs['fields'](_0x7cddf6[_0x9cb8('0x45')][_0x9cb8('0x4a')]));_0x507917[_0x9cb8('0x49')]=_0x507917['attributes'][_0x9cb8('0x4b')]?_0x507917[_0x9cb8('0x49')]:_0x5d0ee2[_0x9cb8('0x44')];if(!_0x7cddf6['query'][_0x9cb8('0x4c')]('nolimit')){_0x507917[_0x9cb8('0x2e')]=qs[_0x9cb8('0x2e')](_0x7cddf6[_0x9cb8('0x45')][_0x9cb8('0x2e')]);_0x507917['offset']=qs[_0x9cb8('0x2d')](_0x7cddf6[_0x9cb8('0x45')][_0x9cb8('0x2d')]);}_0x507917[_0x9cb8('0x4d')]=qs[_0x9cb8('0x4e')](_0x7cddf6[_0x9cb8('0x45')]['sort']);_0x507917[_0x9cb8('0x4f')]=qs['filters'](_[_0x9cb8('0x50')](_0x7cddf6[_0x9cb8('0x45')],_0x5d0ee2[_0x9cb8('0x47')]),_0x3c637a);if(_0x7cddf6[_0x9cb8('0x45')][_0x9cb8('0x51')]){_0x507917[_0x9cb8('0x4f')]=_[_0x9cb8('0x52')](_0x507917['where'],{'$or':_['map'](_0x3c637a,function(_0x1edc6c){if(_0x1edc6c[_0x9cb8('0x42')]!==_0x9cb8('0x53')){var _0x5eed72={};_0x5eed72[_0x1edc6c[_0x9cb8('0x3b')]]={'$like':'%'+_0x7cddf6['query'][_0x9cb8('0x51')]+'%'};return _0x5eed72;}})});}_0x507917=_[_0x9cb8('0x52')]({},_0x507917,_0x7cddf6[_0x9cb8('0x54')]);var _0x4ce28c={'where':_0x507917[_0x9cb8('0x4f')]};return db[_0x9cb8('0x40')]['count'](_0x4ce28c)['then'](function(_0x847a09){_0x5bfee5['count']=_0x847a09;if(_0x7cddf6[_0x9cb8('0x45')]['includeAll']){_0x507917[_0x9cb8('0x55')]=[{'all':!![]}];}return db[_0x9cb8('0x40')][_0x9cb8('0x56')](_0x507917);})['then'](function(_0x23ec8b){_0x5bfee5['rows']=_0x23ec8b;return _0x5bfee5;})[_0x9cb8('0x37')](respondWithFilteredResult(_0x11ef83,_0x507917))[_0x9cb8('0x27')](handleError(_0x11ef83,null));};exports[_0x9cb8('0x57')]=function(_0x4c06fd,_0x40c2c4){var _0xde6a6e={'raw':![],'where':{'id':_0x4c06fd[_0x9cb8('0x58')]['id']},'include':[{'model':db['Pause'],'as':'mandatoryDispositionPause'}]},_0x5eb4c1={};_0x5eb4c1[_0x9cb8('0x44')]=_[_0x9cb8('0x46')](db[_0x9cb8('0x40')][_0x9cb8('0x41')]);_0x5eb4c1[_0x9cb8('0x45')]=_[_0x9cb8('0x46')](_0x4c06fd[_0x9cb8('0x45')]);_0x5eb4c1[_0x9cb8('0x47')]=_[_0x9cb8('0x48')](_0x5eb4c1['model'],_0x5eb4c1[_0x9cb8('0x45')]);_0xde6a6e[_0x9cb8('0x49')]=_['intersection'](_0x5eb4c1[_0x9cb8('0x44')],qs[_0x9cb8('0x4a')](_0x4c06fd[_0x9cb8('0x45')]['fields']));_0xde6a6e[_0x9cb8('0x49')]=_0xde6a6e[_0x9cb8('0x49')][_0x9cb8('0x4b')]?_0xde6a6e[_0x9cb8('0x49')]:_0x5eb4c1[_0x9cb8('0x44')];if(_0x4c06fd[_0x9cb8('0x45')][_0x9cb8('0x59')]){_0xde6a6e['include']=[{'all':!![]}];}_0xde6a6e=_['merge']({},_0xde6a6e,_0x4c06fd['options']);return db[_0x9cb8('0x40')][_0x9cb8('0x5a')](_0xde6a6e)['then'](handleEntityNotFound(_0x40c2c4,null))[_0x9cb8('0x37')](respondWithResult(_0x40c2c4,null))['catch'](handleError(_0x40c2c4,null));};exports[_0x9cb8('0x5b')]=function(_0x5a94ab,_0x52ea3e){return db['WhatsappAccount']['create'](_0x5a94ab[_0x9cb8('0x5c')],{})[_0x9cb8('0x37')](function(_0x5b0d1c){var _0x93a6d2=_0x5a94ab[_0x9cb8('0x5d')][_0x9cb8('0x38')]({'plain':!![]});if(!_0x93a6d2)throw new Error(_0x9cb8('0x5e'));if(_0x93a6d2[_0x9cb8('0x5f')]==='user'){var _0x185240=_0x5b0d1c['get']({'plain':!![]});var _0x4fdda8=_0x9cb8('0x39');return db[_0x9cb8('0x60')]['find']({'where':{'name':_0x4fdda8,'userProfileId':_0x93a6d2['userProfileId']},'raw':!![]})['then'](function(_0x374295){if(_0x374295&&_0x374295[_0x9cb8('0x61')]===0x0){return db[_0x9cb8('0x3a')][_0x9cb8('0x5b')]({'name':_0x185240[_0x9cb8('0x3b')],'resourceId':_0x185240['id'],'type':_0x374295['name'],'sectionId':_0x374295['id']},{})[_0x9cb8('0x37')](function(){return _0x5b0d1c;});}else{return _0x5b0d1c;}})['catch'](function(_0x5e0875){logger[_0x9cb8('0x25')](_0x9cb8('0x62'),_0x5e0875);throw _0x5e0875;});}return _0x5b0d1c;})[_0x9cb8('0x37')](respondWithResult(_0x52ea3e,0xc9))[_0x9cb8('0x27')](handleError(_0x52ea3e,null));};exports[_0x9cb8('0x35')]=function(_0x28c081,_0x50bb9a){if(_0x28c081[_0x9cb8('0x5c')]['id']){delete _0x28c081['body']['id'];}return db['WhatsappAccount'][_0x9cb8('0x5a')]({'where':{'id':_0x28c081['params']['id']},'include':[{'model':db[_0x9cb8('0x3d')],'as':'mandatoryDispositionPause'}]})['then'](handleEntityNotFound(_0x50bb9a,null))['then'](saveUpdates(_0x28c081[_0x9cb8('0x5c')],null))[_0x9cb8('0x37')](respondWithResult(_0x50bb9a,null))['catch'](handleError(_0x50bb9a,null));};exports['destroy']=function(_0x1b2e8e,_0x4373c4){return db[_0x9cb8('0x40')][_0x9cb8('0x5a')]({'where':{'id':_0x1b2e8e[_0x9cb8('0x58')]['id']}})['then'](handleEntityNotFound(_0x4373c4,null))[_0x9cb8('0x37')](removeEntity(_0x4373c4,null))[_0x9cb8('0x27')](handleError(_0x4373c4,null));};exports[_0x9cb8('0x63')]=function(_0xe0ad96,_0x16031d){return db[_0x9cb8('0x40')][_0x9cb8('0x63')]()['then'](respondWithResult(_0x16031d,null))['catch'](handleError(_0x16031d,null));};exports[_0x9cb8('0x64')]=function(_0xaaf163,_0x86eadd,_0x3a8b7b){if(_0xaaf163[_0x9cb8('0x5c')]['id']){delete _0xaaf163[_0x9cb8('0x5c')]['id'];}return db[_0x9cb8('0x40')]['find']({'where':{'id':_0xaaf163[_0x9cb8('0x58')]['id']}})['then'](handleEntityNotFound(_0x86eadd,null))['then'](function(_0x133208){if(_0x133208){_0xaaf163[_0x9cb8('0x5c')][_0x9cb8('0x65')]=_0x133208['id'];return db[_0x9cb8('0x66')]['create'](_0xaaf163['body']);}})[_0x9cb8('0x37')](respondWithResult(_0x86eadd,null))[_0x9cb8('0x27')](handleError(_0x86eadd,null));};exports['getDispositions']=function(_0x1c7aec,_0x29ba2c,_0x1695e8){var _0x5e1e85={'raw':![],'where':{}};var _0xeb08d0={};var _0x47b2f2={'count':0x0,'rows':[]};return db[_0x9cb8('0x40')][_0x9cb8('0x67')]({'where':{'id':_0x1c7aec[_0x9cb8('0x58')]['id']}})['then'](handleEntityNotFound(_0x29ba2c,null))[_0x9cb8('0x37')](function(_0x4fd2a8){if(_0x4fd2a8){_0xeb08d0[_0x9cb8('0x44')]=_['keys'](db[_0x9cb8('0x66')][_0x9cb8('0x41')]);_0xeb08d0[_0x9cb8('0x45')]=_[_0x9cb8('0x46')](_0x1c7aec[_0x9cb8('0x45')]);_0xeb08d0['filters']=_[_0x9cb8('0x48')](_0xeb08d0[_0x9cb8('0x44')],_0xeb08d0[_0x9cb8('0x45')]);_0x5e1e85['attributes']=_[_0x9cb8('0x48')](_0xeb08d0[_0x9cb8('0x44')],qs[_0x9cb8('0x4a')](_0x1c7aec[_0x9cb8('0x45')][_0x9cb8('0x4a')]));_0x5e1e85['attributes']=_0x5e1e85['attributes'][_0x9cb8('0x4b')]?_0x5e1e85[_0x9cb8('0x49')]:_0xeb08d0['model'];if(!_0x1c7aec[_0x9cb8('0x45')][_0x9cb8('0x4c')](_0x9cb8('0x68'))){_0x5e1e85['limit']=qs['limit'](_0x1c7aec[_0x9cb8('0x45')][_0x9cb8('0x2e')]);_0x5e1e85[_0x9cb8('0x2d')]=qs[_0x9cb8('0x2d')](_0x1c7aec['query'][_0x9cb8('0x2d')]);}_0x5e1e85[_0x9cb8('0x4d')]=qs[_0x9cb8('0x4e')](_0x1c7aec[_0x9cb8('0x45')][_0x9cb8('0x4e')]);_0x5e1e85['where']=qs['filters'](_[_0x9cb8('0x50')](_0x1c7aec[_0x9cb8('0x45')],_0xeb08d0['filters']));_0x5e1e85[_0x9cb8('0x4f')][_0x9cb8('0x65')]=_0x4fd2a8['id'];if(_0x1c7aec[_0x9cb8('0x45')][_0x9cb8('0x51')]){_0x5e1e85[_0x9cb8('0x4f')]=_[_0x9cb8('0x52')](_0x5e1e85[_0x9cb8('0x4f')],{'$or':_[_0x9cb8('0x3f')](_0x5e1e85[_0x9cb8('0x49')],function(_0x56b09e){var _0x25a744={};_0x25a744[_0x56b09e]={'$like':'%'+_0x1c7aec['query'][_0x9cb8('0x51')]+'%'};return _0x25a744;})});}_0x5e1e85=_[_0x9cb8('0x52')]({},_0x5e1e85,_0x1c7aec[_0x9cb8('0x54')]);return db[_0x9cb8('0x66')][_0x9cb8('0x2c')]({'where':_0x5e1e85[_0x9cb8('0x4f')]})['then'](function(_0x4d7c7b){_0x47b2f2[_0x9cb8('0x2c')]=_0x4d7c7b;if(_0x1c7aec[_0x9cb8('0x45')][_0x9cb8('0x59')]){_0x5e1e85[_0x9cb8('0x55')]=[{'all':!![]}];}return db['Disposition'][_0x9cb8('0x56')](_0x5e1e85);})[_0x9cb8('0x37')](function(_0x7c3ea5){_0x47b2f2[_0x9cb8('0x69')]=_0x7c3ea5;return _0x47b2f2;});}})['then'](respondWithFilteredResult(_0x29ba2c,_0x5e1e85))[_0x9cb8('0x27')](handleError(_0x29ba2c,null));};exports[_0x9cb8('0x6a')]=function(_0x544bc6,_0x163de9,_0x53923b){return db[_0x9cb8('0x40')][_0x9cb8('0x5a')]({'where':{'id':_0x544bc6['params']['id']}})[_0x9cb8('0x37')](handleEntityNotFound(_0x163de9,null))[_0x9cb8('0x37')](function(_0x59b62b){if(_0x59b62b){return _0x59b62b['removeDispositions'](_0x544bc6[_0x9cb8('0x45')]['ids']);}})[_0x9cb8('0x37')](respondWithStatusCode(_0x163de9,null))[_0x9cb8('0x27')](handleError(_0x163de9,null));};exports[_0x9cb8('0x6b')]=function(_0x267080,_0x5200c7,_0x5427f5){if(_0x267080['body']['id']){delete _0x267080[_0x9cb8('0x5c')]['id'];}return db['WhatsappAccount'][_0x9cb8('0x5a')]({'where':{'id':_0x267080[_0x9cb8('0x58')]['id']}})[_0x9cb8('0x37')](handleEntityNotFound(_0x5200c7,null))[_0x9cb8('0x37')](function(_0x5e1c20){if(_0x5e1c20){_0x267080[_0x9cb8('0x5c')][_0x9cb8('0x65')]=_0x5e1c20['id'];return db['CannedAnswer'][_0x9cb8('0x5b')](_0x267080[_0x9cb8('0x5c')]);}})['then'](respondWithResult(_0x5200c7,null))[_0x9cb8('0x27')](handleError(_0x5200c7,null));};exports[_0x9cb8('0x6c')]=function(_0x3c9d3b,_0x44000d,_0x450b82){var _0x6b6c62={'raw':![],'where':{}};var _0x12a898={};var _0x3859ee={'count':0x0,'rows':[]};return db[_0x9cb8('0x40')][_0x9cb8('0x67')]({'where':{'id':_0x3c9d3b['params']['id']}})[_0x9cb8('0x37')](handleEntityNotFound(_0x44000d,null))['then'](function(_0x24a80f){if(_0x24a80f){_0x12a898[_0x9cb8('0x44')]=_[_0x9cb8('0x46')](db[_0x9cb8('0x6d')][_0x9cb8('0x41')]);_0x12a898['query']=_[_0x9cb8('0x46')](_0x3c9d3b[_0x9cb8('0x45')]);_0x12a898[_0x9cb8('0x47')]=_['intersection'](_0x12a898[_0x9cb8('0x44')],_0x12a898[_0x9cb8('0x45')]);_0x6b6c62[_0x9cb8('0x49')]=_[_0x9cb8('0x48')](_0x12a898[_0x9cb8('0x44')],qs[_0x9cb8('0x4a')](_0x3c9d3b[_0x9cb8('0x45')][_0x9cb8('0x4a')]));_0x6b6c62['attributes']=_0x6b6c62[_0x9cb8('0x49')][_0x9cb8('0x4b')]?_0x6b6c62[_0x9cb8('0x49')]:_0x12a898['model'];if(!_0x3c9d3b[_0x9cb8('0x45')][_0x9cb8('0x4c')](_0x9cb8('0x68'))){_0x6b6c62[_0x9cb8('0x2e')]=qs['limit'](_0x3c9d3b[_0x9cb8('0x45')][_0x9cb8('0x2e')]);_0x6b6c62[_0x9cb8('0x2d')]=qs[_0x9cb8('0x2d')](_0x3c9d3b[_0x9cb8('0x45')][_0x9cb8('0x2d')]);}_0x6b6c62[_0x9cb8('0x4d')]=qs[_0x9cb8('0x4e')](_0x3c9d3b['query'][_0x9cb8('0x4e')]);_0x6b6c62[_0x9cb8('0x4f')]=qs['filters'](_['pick'](_0x3c9d3b['query'],_0x12a898[_0x9cb8('0x47')]));_0x6b6c62[_0x9cb8('0x4f')]['WhatsappAccountId']=_0x24a80f['id'];if(_0x3c9d3b[_0x9cb8('0x45')][_0x9cb8('0x51')]){_0x6b6c62[_0x9cb8('0x4f')]=_[_0x9cb8('0x52')](_0x6b6c62[_0x9cb8('0x4f')],{'$or':_[_0x9cb8('0x3f')](_0x6b6c62[_0x9cb8('0x49')],function(_0x295d31){var _0x2df6e3={};_0x2df6e3[_0x295d31]={'$like':'%'+_0x3c9d3b[_0x9cb8('0x45')][_0x9cb8('0x51')]+'%'};return _0x2df6e3;})});}_0x6b6c62=_[_0x9cb8('0x52')]({},_0x6b6c62,_0x3c9d3b[_0x9cb8('0x54')]);return db[_0x9cb8('0x6d')][_0x9cb8('0x2c')]({'where':_0x6b6c62[_0x9cb8('0x4f')]})[_0x9cb8('0x37')](function(_0x1d107d){_0x3859ee['count']=_0x1d107d;if(_0x3c9d3b[_0x9cb8('0x45')][_0x9cb8('0x59')]){_0x6b6c62[_0x9cb8('0x55')]=[{'all':!![]}];}return db['CannedAnswer']['findAll'](_0x6b6c62);})[_0x9cb8('0x37')](function(_0x4ee5c6){_0x3859ee[_0x9cb8('0x69')]=_0x4ee5c6;return _0x3859ee;});}})[_0x9cb8('0x37')](respondWithFilteredResult(_0x44000d,_0x6b6c62))['catch'](handleError(_0x44000d,null));};exports['removeAnswers']=function(_0x1edbae,_0x21b8e3,_0x2a1781){return db[_0x9cb8('0x40')][_0x9cb8('0x5a')]({'where':{'id':_0x1edbae[_0x9cb8('0x58')]['id']}})[_0x9cb8('0x37')](handleEntityNotFound(_0x21b8e3,null))[_0x9cb8('0x37')](function(_0x2e11b2){if(_0x2e11b2){return _0x2e11b2['removeAnswers'](_0x1edbae[_0x9cb8('0x45')][_0x9cb8('0x6e')]);}})[_0x9cb8('0x37')](respondWithStatusCode(_0x21b8e3,null))[_0x9cb8('0x27')](handleError(_0x21b8e3,null));};exports[_0x9cb8('0x6f')]=function(_0x1efb86,_0x412677,_0x52b340){return db[_0x9cb8('0x40')][_0x9cb8('0x5a')]({'where':{'id':_0x1efb86['params']['id']}})['then'](handleEntityNotFound(_0x412677,null))[_0x9cb8('0x37')](function(_0x2da18a){if(_0x2da18a){return _0x2da18a[_0x9cb8('0x6f')](_0x1efb86[_0x9cb8('0x5c')][_0x9cb8('0x6e')],_['omit'](_0x1efb86[_0x9cb8('0x5c')],[_0x9cb8('0x6e'),'id'])||{})[_0x9cb8('0x70')](function(_0x5b01a6){for(var _0x5b2eee=0x0;_0x5b2eee<_0x1efb86['body']['ids'][_0x9cb8('0x4b')];_0x5b2eee+=0x1){socket[_0x9cb8('0x71')](_0x9cb8('0x72'),{'UserId':Number(_0x1efb86['body'][_0x9cb8('0x6e')][_0x5b2eee]),'WhatsappAccountId':Number(_0x1efb86[_0x9cb8('0x58')]['id'])});}return _0x5b01a6;});}})['then'](respondWithResult(_0x412677,null))['catch'](handleError(_0x412677,null));};exports[_0x9cb8('0x73')]=function(_0x3eacab,_0x1ee92c,_0x35ec1b){return db[_0x9cb8('0x40')][_0x9cb8('0x5a')]({'where':{'id':_0x3eacab[_0x9cb8('0x58')]['id']}})[_0x9cb8('0x37')](handleEntityNotFound(_0x1ee92c,null))[_0x9cb8('0x37')](function(_0x50e28d){if(_0x50e28d){return _0x50e28d[_0x9cb8('0x73')](_0x3eacab[_0x9cb8('0x45')][_0x9cb8('0x6e')])[_0x9cb8('0x37')](function(){if(_[_0x9cb8('0x74')](_0x3eacab[_0x9cb8('0x45')][_0x9cb8('0x6e')])){for(var _0x2c24cd=0x0;_0x2c24cd<_0x3eacab[_0x9cb8('0x45')][_0x9cb8('0x6e')]['length'];_0x2c24cd+=0x1){socket[_0x9cb8('0x71')](_0x9cb8('0x75'),{'UserId':Number(_0x3eacab[_0x9cb8('0x45')]['ids'][_0x2c24cd]),'WhatsappAccountId':Number(_0x3eacab['params']['id'])});}}else{socket[_0x9cb8('0x71')](_0x9cb8('0x75'),{'UserId':Number(_0x3eacab['query'][_0x9cb8('0x6e')]),'WhatsappAccountId':Number(_0x3eacab['params']['id'])});}});}})[_0x9cb8('0x37')](respondWithStatusCode(_0x1ee92c,null))['catch'](handleError(_0x1ee92c,null));};exports[_0x9cb8('0x76')]=function(_0x1d5720,_0x351258,_0x296158){var _0x2ae7ba={};var _0x595e96={};var _0x181f8e;var _0x26f33e;return db[_0x9cb8('0x40')][_0x9cb8('0x67')]({'where':{'id':_0x1d5720['params']['id']}})[_0x9cb8('0x37')](handleEntityNotFound(_0x351258,null))[_0x9cb8('0x37')](function(_0x333083){if(_0x333083){_0x181f8e=_0x333083;_0x595e96[_0x9cb8('0x44')]=_[_0x9cb8('0x46')](db[_0x9cb8('0x77')]['rawAttributes']);_0x595e96['query']=_[_0x9cb8('0x46')](_0x1d5720['query']);_0x595e96['filters']=_[_0x9cb8('0x48')](_0x595e96['model'],_0x595e96[_0x9cb8('0x45')]);_0x2ae7ba[_0x9cb8('0x49')]=_[_0x9cb8('0x48')](_0x595e96[_0x9cb8('0x44')],qs[_0x9cb8('0x4a')](_0x1d5720[_0x9cb8('0x45')][_0x9cb8('0x4a')]));_0x2ae7ba[_0x9cb8('0x49')]=_0x2ae7ba['attributes'][_0x9cb8('0x4b')]?_0x2ae7ba[_0x9cb8('0x49')]:_0x595e96['model'];_0x2ae7ba[_0x9cb8('0x4d')]=qs[_0x9cb8('0x4e')](_0x1d5720[_0x9cb8('0x45')][_0x9cb8('0x4e')]);_0x2ae7ba[_0x9cb8('0x4f')]=qs['filters'](_['pick'](_0x1d5720[_0x9cb8('0x45')],_0x595e96[_0x9cb8('0x47')]));if(_0x1d5720['query'][_0x9cb8('0x51')]){_0x2ae7ba['where']=_[_0x9cb8('0x52')](_0x2ae7ba[_0x9cb8('0x4f')],{'$or':_['map'](_0x2ae7ba[_0x9cb8('0x49')],function(_0x4f3b4f){var _0x44a294={};_0x44a294[_0x4f3b4f]={'$like':'%'+_0x1d5720[_0x9cb8('0x45')][_0x9cb8('0x51')]+'%'};return _0x44a294;})});}_0x2ae7ba=_[_0x9cb8('0x52')]({},_0x2ae7ba,_0x1d5720[_0x9cb8('0x54')]);return _0x181f8e[_0x9cb8('0x76')](_0x2ae7ba);}})[_0x9cb8('0x37')](function(_0x4e4753){if(_0x4e4753){_0x26f33e=_0x4e4753['length'];if(!_0x1d5720[_0x9cb8('0x45')]['hasOwnProperty'](_0x9cb8('0x68'))){_0x2ae7ba[_0x9cb8('0x2e')]=qs[_0x9cb8('0x2e')](_0x1d5720['query'][_0x9cb8('0x2e')]);_0x2ae7ba['offset']=qs[_0x9cb8('0x2d')](_0x1d5720[_0x9cb8('0x45')][_0x9cb8('0x2d')]);}return _0x181f8e['getAgents'](_0x2ae7ba);}})['then'](function(_0x4bb02a){if(_0x4bb02a){return _0x4bb02a?{'count':_0x26f33e,'rows':_0x4bb02a}:null;}})[_0x9cb8('0x37')](respondWithResult(_0x351258,null))[_0x9cb8('0x27')](handleError(_0x351258,null));};exports[_0x9cb8('0x78')]=function(_0x3f6055,_0x788443){var _0x287d5c=_0x3f6055[_0x9cb8('0x58')]['id'];var _0x12d038=_0x3f6055['body'];var _0x5acaad=0xc8;var _0xa949a=null;return db[_0x9cb8('0x79')]['transaction']({'isolationLevel':db['sequelize'][_0x9cb8('0x7a')][_0x9cb8('0x7b')][_0x9cb8('0x7c')]},function(_0x557980){return db[_0x9cb8('0x40')][_0x9cb8('0x67')]({'where':{'id':_0x287d5c},'transaction':_0x557980})[_0x9cb8('0x37')](function(_0x22a42c){if(_0x22a42c){return db['WhatsappApplication'][_0x9cb8('0x36')]({'where':{'WhatsappAccountId':_0x287d5c},'transaction':_0x557980})[_0x9cb8('0x37')](function(){var _0x430f40=_[_0x9cb8('0x3f')](_0x12d038,function(_0x309370){_0x309370['WhatsappAccountId']=_0x287d5c;return _0x309370;});return db['WhatsappApplication'][_0x9cb8('0x7d')](_0x430f40,{'transaction':_0x557980});});}else{_0x5acaad=0x194;_0xa949a=[];}});})[_0x9cb8('0x37')](function(){if(_0x5acaad!==0x194){return db['WhatsappApplication'][_0x9cb8('0x7e')]({'where':{'WhatsappAccountId':_0x287d5c},'order':'priority'})[_0x9cb8('0x37')](function(_0xef75c4){_0xa949a=_0xef75c4;});}})['catch'](function(_0x4fb91f){_0x5acaad=0x1f4;logger['error'](_0x4fb91f[_0x9cb8('0x7f')]);if(_0x4fb91f['name']){delete _0x4fb91f[_0x9cb8('0x3b')];}_0xa949a=_0x4fb91f;})['finally'](function(){if(_0xa949a===null){_0x788443[_0x9cb8('0x28')](_0x5acaad);}else{if(_0x5acaad===0x1f4){_0x788443[_0x9cb8('0x2a')](_0x5acaad)[_0x9cb8('0x80')](_0xa949a);}else{_0x788443[_0x9cb8('0x2a')](_0x5acaad)[_0x9cb8('0x31')](_0xa949a);}}});};exports[_0x9cb8('0x81')]=function(_0x5412b9,_0x2a7758,_0x193a65){var _0x3cc7fd={};var _0xf34e0={};var _0x57f2b8;var _0x399c6b;return db[_0x9cb8('0x40')][_0x9cb8('0x67')]({'where':{'id':_0x5412b9[_0x9cb8('0x58')]['id']}})[_0x9cb8('0x37')](handleEntityNotFound(_0x2a7758,null))['then'](function(_0x316e28){if(_0x316e28){_0x57f2b8=_0x316e28;_0xf34e0[_0x9cb8('0x44')]=_['keys'](db['WhatsappApplication']['rawAttributes']);_0xf34e0[_0x9cb8('0x45')]=_[_0x9cb8('0x46')](_0x5412b9['query']);_0xf34e0['filters']=_['intersection'](_0xf34e0[_0x9cb8('0x44')],_0xf34e0[_0x9cb8('0x45')]);_0x3cc7fd[_0x9cb8('0x49')]=_['intersection'](_0xf34e0[_0x9cb8('0x44')],qs[_0x9cb8('0x4a')](_0x5412b9[_0x9cb8('0x45')][_0x9cb8('0x4a')]));_0x3cc7fd[_0x9cb8('0x49')]=_0x3cc7fd[_0x9cb8('0x49')][_0x9cb8('0x4b')]?_0x3cc7fd[_0x9cb8('0x49')]:_0xf34e0[_0x9cb8('0x44')];_0x3cc7fd[_0x9cb8('0x4d')]=qs['sort'](_0x5412b9[_0x9cb8('0x45')]['sort']);_0x3cc7fd[_0x9cb8('0x4f')]=qs[_0x9cb8('0x47')](_[_0x9cb8('0x50')](_0x5412b9[_0x9cb8('0x45')],_0xf34e0[_0x9cb8('0x47')]));if(_0x5412b9[_0x9cb8('0x45')][_0x9cb8('0x51')]){_0x3cc7fd[_0x9cb8('0x4f')]=_[_0x9cb8('0x52')](_0x3cc7fd[_0x9cb8('0x4f')],{'$or':_[_0x9cb8('0x3f')](_0x3cc7fd[_0x9cb8('0x49')],function(_0x45b1ee){var _0x2dfbdb={};_0x2dfbdb[_0x45b1ee]={'$like':'%'+_0x5412b9[_0x9cb8('0x45')][_0x9cb8('0x51')]+'%'};return _0x2dfbdb;})});}_0x3cc7fd=_[_0x9cb8('0x52')]({},_0x3cc7fd,_0x5412b9['options']);return _0x57f2b8[_0x9cb8('0x81')](_0x3cc7fd);}})['then'](function(_0x371423){if(_0x371423){_0x399c6b=_0x371423['length'];if(!_0x5412b9['query'][_0x9cb8('0x4c')]('nolimit')){_0x3cc7fd[_0x9cb8('0x2e')]=qs[_0x9cb8('0x2e')](_0x5412b9[_0x9cb8('0x45')][_0x9cb8('0x2e')]);_0x3cc7fd['offset']=qs['offset'](_0x5412b9[_0x9cb8('0x45')][_0x9cb8('0x2d')]);}return _0x57f2b8['getApplications'](_0x3cc7fd);}})[_0x9cb8('0x37')](function(_0x3c721c){if(_0x3c721c){return _0x3c721c?{'count':_0x399c6b,'rows':_0x3c721c}:null;}})[_0x9cb8('0x37')](respondWithResult(_0x2a7758,null))[_0x9cb8('0x27')](handleError(_0x2a7758,null));};exports[_0x9cb8('0x82')]=function(_0x27e51a,_0x254678,_0x6de1a8){var _0x4aa56c={'channel':_0x9cb8('0x83')};var _0x35f7d6=[];var _0x519d1e=[];var _0x482e4b={};return db[_0x9cb8('0x40')][_0x9cb8('0x5a')]({'where':{'id':_0x27e51a[_0x9cb8('0x58')]['id']},'include':[{'model':db[_0x9cb8('0x84')],'as':_0x9cb8('0x85')}]})['then'](handleEntityNotFound(_0x254678,null))[_0x9cb8('0x37')](function(_0x48b75f){_0x4aa56c[_0x9cb8('0x86')]=_0x48b75f;if(_0x4aa56c[_0x9cb8('0x86')]&&_0x4aa56c['account']['type']==='sinch'&&_0x27e51a[_0x9cb8('0x5c')][_0x9cb8('0x87')]){if(_0x27e51a['body']['statuses'][_0x9cb8('0x4b')]===0x0)return;if(_0x27e51a['body'][_0x9cb8('0x87')][0x0][_0x9cb8('0x88')]!==_0x9cb8('0x89'))return;return db[_0x9cb8('0x8a')][_0x9cb8('0x35')]({'read':!![],'readAt':_0x27e51a[_0x9cb8('0x5c')][_0x9cb8('0x87')][0x0][_0x9cb8('0x8b')]},{'where':{'messageId':_0x27e51a[_0x9cb8('0x5c')]['statuses'][0x0]['message_id']},'individualHooks':!![]})[_0x9cb8('0x37')](function(_0x1ee683){return _0x254678[_0x9cb8('0x2a')](0xc8)[_0x9cb8('0x31')](_0x1ee683);});}_0x4aa56c['applications']=_[_0x9cb8('0x8c')](_0x48b75f['Applications'],[_0x9cb8('0x8d')],['asc']);if(_0x4aa56c[_0x9cb8('0x86')][_0x9cb8('0x85')]){delete _0x4aa56c['account'][_0x9cb8('0x85')];}return db[_0x9cb8('0x8e')][_0x9cb8('0x63')]()['then'](function(_0x687071){if(!_0x687071){throw new db['Sequelize']['ValidationError'](_0x9cb8('0x8f'));}_0x35f7d6=_['difference'](_[_0x9cb8('0x46')](_0x687071),[_0x9cb8('0x90'),_0x9cb8('0x91')]);_0x519d1e=_[_0x9cb8('0x92')](_[_0x9cb8('0x46')](_0x687071),[_0x9cb8('0x90'),'updatedAt',_0x9cb8('0x93'),'ListId']);_0x4aa56c[_0x9cb8('0x5c')]={'mapKey':'mobile'};if(_0x4aa56c[_0x9cb8('0x86')]&&_0x4aa56c[_0x9cb8('0x86')][_0x9cb8('0x42')]===_0x9cb8('0x94')){_0x4aa56c['body'][_0x9cb8('0x95')]=_0x27e51a['body'][_0x9cb8('0x96')][_0x9cb8('0x97')](_0x9cb8('0x98'),'');_0x4aa56c['body']['body']=_0x27e51a['body']['Body'];_0x4aa56c[_0x9cb8('0x5c')][_0x9cb8('0x99')]=_0x27e51a[_0x9cb8('0x5c')][_0x9cb8('0x9a')];}if(_0x4aa56c['account']&&_0x4aa56c['account'][_0x9cb8('0x42')]==='sinch'){_0x4aa56c[_0x9cb8('0x5c')][_0x9cb8('0x95')]=_0x27e51a[_0x9cb8('0x5c')][_0x9cb8('0x9b')][0x0][_0x9cb8('0x95')];_0x4aa56c[_0x9cb8('0x5c')][_0x9cb8('0x5c')]=_0x27e51a['body'][_0x9cb8('0x9b')][0x0][_0x9cb8('0x26')][_0x9cb8('0x5c')];_0x4aa56c[_0x9cb8('0x5c')][_0x9cb8('0x99')]=_0x27e51a[_0x9cb8('0x5c')][_0x9cb8('0x9b')][0x0][_0x9cb8('0x9c')];}if(_0x4aa56c[_0x9cb8('0x5c')]['id']){delete _0x4aa56c[_0x9cb8('0x5c')]['id'];}if(_['isNil'](_0x4aa56c[_0x9cb8('0x5c')][_0x9cb8('0x95')])){throw new db['Sequelize']['ValidationError'](_0x9cb8('0x9d'));}if(_[_0x9cb8('0x9e')](_0x4aa56c[_0x9cb8('0x5c')][_0x9cb8('0x5c')])||_0x4aa56c['body'][_0x9cb8('0x5c')]===''){throw new db['Sequelize'][(_0x9cb8('0x9f'))](_0x9cb8('0xa0'));}if(_[_0x9cb8('0x9e')](_0x4aa56c['body'][_0x9cb8('0xa1')])){throw new db['Sequelize'][(_0x9cb8('0x9f'))]('mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x519d1e);}if(!_[_0x9cb8('0xa2')](_0x519d1e,_0x4aa56c[_0x9cb8('0x5c')]['mapKey'])){throw new db[(_0x9cb8('0xa3'))][(_0x9cb8('0x9f'))](_0x9cb8('0xa4')+_0x519d1e);}_0x482e4b[_0x4aa56c[_0x9cb8('0x5c')][_0x9cb8('0xa1')]]=_0x4aa56c['body'][_0x9cb8('0x95')];return db[_0x9cb8('0xa5')][_0x9cb8('0x5a')]({'where':{'id':_0x4aa56c[_0x9cb8('0x86')][_0x9cb8('0xa6')]},'include':[{'model':db[_0x9cb8('0x8e')],'as':_0x9cb8('0xa7'),'where':_0x482e4b,'limit':0x1,'order':[[_0x9cb8('0x91'),'DESC']]}]});})[_0x9cb8('0x37')](handleEntityNotFound(_0x254678,null))[_0x9cb8('0x37')](function(_0x545714){if(_0x545714){_0x4aa56c[_0x9cb8('0xa8')]=_[_0x9cb8('0xa9')](_0x545714,[_0x9cb8('0xa7')]);if(_0x545714[_0x9cb8('0xa7')][_0x9cb8('0x4b')]){return _0x545714[_0x9cb8('0xa7')][0x0];}var _0x12dc6a=_[_0x9cb8('0xaa')](_0x4aa56c[_0x9cb8('0x5c')],{'firstName':_0x4aa56c[_0x9cb8('0x5c')][_0x9cb8('0x95')],'ListId':_0x545714['id']});_0x12dc6a[_0x4aa56c[_0x9cb8('0x5c')][_0x9cb8('0xa1')]]=_0x4aa56c[_0x9cb8('0x5c')][_0x9cb8('0x95')];return db[_0x9cb8('0x8e')]['create'](_0x12dc6a,{'fields':_0x35f7d6,'raw':!![]});}})[_0x9cb8('0x37')](handleEntityNotFound(_0x254678,null))[_0x9cb8('0x37')](function(_0xe14a9c){if(_0xe14a9c){_0x4aa56c[_0x9cb8('0xab')]=_0xe14a9c;var _0x42c406={'ContactId':_0xe14a9c['id'],'phone':_0x4aa56c[_0x9cb8('0x5c')]['from'],'WhatsappAccountId':_0x27e51a[_0x9cb8('0x58')]['id']};var _0x2b4548={'ContactId':_0xe14a9c['id'],'WhatsappAccountId':_0x27e51a[_0x9cb8('0x58')]['id'],'closed':![]};return db[_0x9cb8('0xac')][_0x9cb8('0x5a')]({'where':_0x2b4548})[_0x9cb8('0x37')](function(_0xa8e7e0){if(_0xa8e7e0){return[_0xa8e7e0,![]];}return db[_0x9cb8('0xac')]['create'](_0x42c406)['then'](function(_0x1c47fc){return[_0x1c47fc,!![]];});});}})[_0x9cb8('0x70')](function(_0x204651,_0x57d789){_0x4aa56c[_0x9cb8('0xad')]=_0x204651[_0x9cb8('0x38')]({'plain':!![]});_0x4aa56c[_0x9cb8('0xad')][_0x9cb8('0xae')]=![];if(_0x57d789){if(_0x4aa56c[_0x9cb8('0x86')][_0x9cb8('0xaf')]){_0x4aa56c[_0x9cb8('0xb0')][_0x9cb8('0xb1')]({'id':0x0,'priority':_0x4aa56c[_0x9cb8('0xb0')][_0x9cb8('0x4b')]+0x1,'app':_0x9cb8('0xb2'),'appdata':_0x9cb8('0xb3'),'interval':_0x9cb8('0xb4')});}_0x4aa56c['interaction'][_0x9cb8('0xae')]=!![];}return db[_0x9cb8('0x8a')][_0x9cb8('0x5b')]({'phone':_0x4aa56c[_0x9cb8('0x5c')][_0x9cb8('0x95')],'messageId':_0x4aa56c[_0x9cb8('0x5c')][_0x9cb8('0x99')],'body':_0x4aa56c['body']['body'],'WhatsappAccountId':_0x27e51a['params']['id'],'WhatsappInteractionId':_0x204651['id'],'direction':'in','ContactId':_0x204651[_0x9cb8('0xb5')],'AttachmentId':_0x4aa56c['body'][_0x9cb8('0xb6')]});})[_0x9cb8('0x37')](function(_0x1d9668){_0x4aa56c['message']=_0x1d9668;if(_0x4aa56c['interaction'][_0x9cb8('0xb7')]){return db['User'][_0x9cb8('0x5a')]({'attributes':['id','name'],'where':{'id':_0x4aa56c[_0x9cb8('0xad')][_0x9cb8('0xb7')]}})[_0x9cb8('0x37')](function(_0x44d3a6){if(_0x44d3a6){_0x4aa56c[_0x9cb8('0xb0')][_0x9cb8('0xb8')]({'id':0x0,'priority':0x0,'app':_0x9cb8('0xb9'),'appdata':_0x44d3a6[_0x9cb8('0x3b')]+','+(_0x4aa56c[_0x9cb8('0x86')][_0x9cb8('0xba')]||0xa),'interval':_0x9cb8('0xb4')});}return respondWithRpcPromise('Start',_0x9cb8('0xbb'),_0x4aa56c);});}return respondWithRpcPromise(_0x9cb8('0xbc'),_0x9cb8('0xbb'),_0x4aa56c);})[_0x9cb8('0x37')](function(_0x152e52){if(_0x152e52){var _0xe3cd26=0xc8;var _0x299100=_0x9cb8('0xbd');logger['info'](_0x9cb8('0xbe'),_0x299100,_0xe3cd26,_0x9cb8('0xbf'));logger[_0x9cb8('0x24')](_0x9cb8('0xc0'),_0x299100,_0xe3cd26,'entity\x20found',JSON['stringify'](_0x152e52));if(_0x4aa56c[_0x9cb8('0x86')][_0x9cb8('0x42')]===_0x9cb8('0x94')){return _0x254678[_0x9cb8('0x2a')](_0xe3cd26)[_0x9cb8('0x2f')](_0x9cb8('0xc1'),_0x9cb8('0xc2'))[_0x9cb8('0x80')](_0x9cb8('0xc3'));}else{return _0x254678[_0x9cb8('0x2a')](_0xe3cd26)[_0x9cb8('0x31')](_0x152e52);}}});})[_0x9cb8('0x27')](handleError(_0x254678,null));};exports['send']=function(_0xce5df9,_0x516c6d,_0x15fe0f){var _0x3e231e,_0x3ecb9f,_0x42d112;if(_['isNil'](_0xce5df9[_0x9cb8('0x5c')][_0x9cb8('0x5c')])||_0xce5df9[_0x9cb8('0x5c')][_0x9cb8('0x5c')]===''){throw new db[(_0x9cb8('0xa3'))]['ValidationError'](_0x9cb8('0xa0'));}if(_['isNil'](_0xce5df9[_0x9cb8('0x5c')]['to'])){throw new db['Sequelize'][(_0x9cb8('0x9f'))](_0x9cb8('0xc4'));}_0x3e231e=_0xce5df9['body']['to'];return db[_0x9cb8('0x40')]['find']({'where':{'id':_0xce5df9[_0x9cb8('0x58')]['id']},'include':[{'model':db['CmList'],'as':_0x9cb8('0xc5'),'include':[{'model':db['CmContact'],'as':_0x9cb8('0xa7'),'where':{'mobile':_0x3e231e},'limit':0x1,'order':[['updatedAt',_0x9cb8('0xc6')]]}]}]})['then'](handleEntityNotFound(_0x516c6d,null))[_0x9cb8('0x37')](function(_0x3bedc2){if(_0x3bedc2&&_0x3bedc2['List']){_0x3ecb9f=_0x3bedc2['get']({'plain':!![]});if(_0x3ecb9f[_0x9cb8('0xc5')]&&_0x3ecb9f['List']['Contacts'][_0x9cb8('0x4b')]){return _0x3ecb9f['List']['Contacts'][0x0];}return db[_0x9cb8('0x8e')][_0x9cb8('0x5b')](_[_0x9cb8('0xaa')](_0xce5df9[_0x9cb8('0x5c')],{'firstName':_0x3e231e,'mobile':_0x3e231e,'phone':_0x3e231e,'ListId':_0x3ecb9f['ListId']}));}})[_0x9cb8('0x37')](handleEntityNotFound(_0x516c6d,null))[_0x9cb8('0x37')](function(_0x305fcc){if(_0x305fcc){_0x42d112=_0x305fcc;return db['WhatsappInteraction'][_0x9cb8('0x5a')]({'where':{'ContactId':_0x42d112['id'],'closed':![],'WhatsappAccountId':_0x3ecb9f['id']}})[_0x9cb8('0x37')](function(_0x52200b){if(_0x52200b){return[_0x52200b,![]];}return db[_0x9cb8('0xac')][_0x9cb8('0x5b')]({'UserId':_0xce5df9[_0x9cb8('0x5d')]['id'],'ContactId':_0x42d112['id'],'WhatsappAccountId':_0x3ecb9f['id'],'phone':_0x3e231e,'firstMsgDirection':_0x9cb8('0xc7'),'Messages':[_[_0x9cb8('0x52')](_0xce5df9[_0x9cb8('0x5c')],{'read':![],'body':_0xce5df9[_0x9cb8('0x5c')][_0x9cb8('0x5c')],'phone':_0x3e231e,'WhatsappAccountId':_0x3ecb9f['id'],'UserId':_0xce5df9['user']['id'],'ContactId':_0x42d112['id']})]},{'include':[{'model':db['WhatsappMessage'],'as':_0x9cb8('0xc8')}]})[_0x9cb8('0x37')](function(_0x46113a){return[_0x46113a,!![]];});});}})['spread'](function(_0x56d7c9,_0x1c65de){if(_0x1c65de){return _0x56d7c9;}return db[_0x9cb8('0x8a')][_0x9cb8('0x5b')](_[_0x9cb8('0x52')](_0xce5df9[_0x9cb8('0x5c')],{'read':![],'body':_0xce5df9['body'][_0x9cb8('0x5c')],'phone':_0x3e231e,'WhatsappAccountId':_0x3ecb9f['id'],'WhatsappInteractionId':_0x56d7c9['id'],'UserId':_0xce5df9[_0x9cb8('0x5d')]['id'],'ContactId':_0x42d112['id']}))['then'](function(_0x2e0e51){_0x56d7c9[_0x9cb8('0xc9')][_0x9cb8('0xc8')]=[];_0x56d7c9[_0x9cb8('0xc9')][_0x9cb8('0xc8')]['push'](_0x2e0e51[_0x9cb8('0xc9')]);return _0x56d7c9;});})[_0x9cb8('0x37')](respondWithResult(_0x516c6d,null))[_0x9cb8('0x27')](handleError(_0x516c6d,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcbec=['setMaxListeners','save','update','remove','emit','events','../../mysqldb','WhatsappAccount'];(function(_0x4ad1b8,_0x25f4af){var _0x1eda30=function(_0x46ed45){while(--_0x46ed45){_0x4ad1b8['push'](_0x4ad1b8['shift']());}};_0x1eda30(++_0x25f4af);}(_0xcbec,0x19d));var _0xccbe=function(_0x266bb5,_0x1bf5b3){_0x266bb5=_0x266bb5-0x0;var _0x1e5abb=_0xcbec[_0x266bb5];return _0x1e5abb;};'use strict';var EventEmitter=require(_0xccbe('0x0'));var WhatsappAccount=require(_0xccbe('0x1'))['db'][_0xccbe('0x2')];var WhatsappAccountEvents=new EventEmitter();WhatsappAccountEvents[_0xccbe('0x3')](0x0);var events={'afterCreate':_0xccbe('0x4'),'afterUpdate':_0xccbe('0x5'),'afterDestroy':_0xccbe('0x6')};function emitEvent(_0x2f33ac){return function(_0x1f8d59,_0x2dd8e9,_0xc9328){WhatsappAccountEvents['emit'](_0x2f33ac+':'+_0x1f8d59['id'],_0x1f8d59);WhatsappAccountEvents[_0xccbe('0x7')](_0x2f33ac,_0x1f8d59);_0xc9328(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];WhatsappAccount['hook'](e,emitEvent(event));}}module['exports']=WhatsappAccountEvents;
\ No newline at end of file
+var _0xd344=['../../mysqldb','setMaxListeners','save','update','exports','events'];(function(_0x15970d,_0x1c8bee){var _0x30362e=function(_0x43ca2b){while(--_0x43ca2b){_0x15970d['push'](_0x15970d['shift']());}};_0x30362e(++_0x1c8bee);}(_0xd344,0x1e5));var _0x4d34=function(_0x23851b,_0x18d6f4){_0x23851b=_0x23851b-0x0;var _0x1b7ca3=_0xd344[_0x23851b];return _0x1b7ca3;};'use strict';var EventEmitter=require(_0x4d34('0x0'));var WhatsappAccount=require(_0x4d34('0x1'))['db']['WhatsappAccount'];var WhatsappAccountEvents=new EventEmitter();WhatsappAccountEvents[_0x4d34('0x2')](0x0);var events={'afterCreate':_0x4d34('0x3'),'afterUpdate':_0x4d34('0x4'),'afterDestroy':'remove'};function emitEvent(_0x5b6cd8){return function(_0x3506d1,_0x486485,_0x20cda7){WhatsappAccountEvents['emit'](_0x5b6cd8+':'+_0x3506d1['id'],_0x3506d1);WhatsappAccountEvents['emit'](_0x5b6cd8,_0x3506d1);_0x20cda7(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];WhatsappAccount['hook'](e,emitEvent(event));}}module[_0x4d34('0x5')]=WhatsappAccountEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x894e=['../../config/logger','moment','bluebird','request-promise','path','rimraf','../../config/environment','./whatsappAccount.attributes','exports','lodash','util'];(function(_0x269e12,_0x4a5ed2){var _0x3611b4=function(_0x28cbf9){while(--_0x28cbf9){_0x269e12['push'](_0x269e12['shift']());}};_0x3611b4(++_0x4a5ed2);}(_0x894e,0x6c));var _0xe894=function(_0x3071ab,_0x574a59){_0x3071ab=_0x3071ab-0x0;var _0x2f458c=_0x894e[_0x3071ab];return _0x2f458c;};'use strict';var _=require(_0xe894('0x0'));var util=require(_0xe894('0x1'));var logger=require(_0xe894('0x2'))('api');var moment=require(_0xe894('0x3'));var BPromise=require(_0xe894('0x4'));var rp=require(_0xe894('0x5'));var fs=require('fs');var path=require(_0xe894('0x6'));var rimraf=require(_0xe894('0x7'));var config=require(_0xe894('0x8'));var attributes=require(_0xe894('0x9'));module[_0xe894('0xa')]=function(_0xc9fcf5,_0x35bd79){return _0xc9fcf5['define']('WhatsappAccount',attributes,{'tableName':'whatsapp_accounts','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x43d6=['moment','bluebird','request-promise','path','../../config/environment','./whatsappAccount.attributes','exports','WhatsappAccount','whatsapp_accounts','lodash','util','../../config/logger','api'];(function(_0x1f7825,_0xdc627d){var _0x3f1418=function(_0x41187e){while(--_0x41187e){_0x1f7825['push'](_0x1f7825['shift']());}};_0x3f1418(++_0xdc627d);}(_0x43d6,0xcc));var _0x643d=function(_0x5c877a,_0x4e137c){_0x5c877a=_0x5c877a-0x0;var _0x509d8c=_0x43d6[_0x5c877a];return _0x509d8c;};'use strict';var _=require(_0x643d('0x0'));var util=require(_0x643d('0x1'));var logger=require(_0x643d('0x2'))(_0x643d('0x3'));var moment=require(_0x643d('0x4'));var BPromise=require(_0x643d('0x5'));var rp=require(_0x643d('0x6'));var fs=require('fs');var path=require(_0x643d('0x7'));var rimraf=require('rimraf');var config=require(_0x643d('0x8'));var attributes=require(_0x643d('0x9'));module[_0x643d('0xa')]=function(_0x50054d,_0x18732e){return _0x50054d['define'](_0x643d('0xb'),attributes,{'tableName':_0x643d('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7b84=['request\x20sent','debug','WhatsappAccount,\x20%s,\x20%s,\x20%s','error','code','message','result','ShowWhatsappAccount','WhatsappAccount','find','options','raw','include','map','model','attributes','catch','lodash','util','moment','randomstring','ioredis','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','./whatsappAccount.socket','register','request','then','info','WhatsappAccount,\x20%s,\x20%s'];(function(_0x1d0065,_0x3d0b20){var _0x5c9822=function(_0x3b4519){while(--_0x3b4519){_0x1d0065['push'](_0x1d0065['shift']());}};_0x5c9822(++_0x3d0b20);}(_0x7b84,0x80));var _0x47b8=function(_0x52b84f,_0x1b2ab1){_0x52b84f=_0x52b84f-0x0;var _0x7ae48f=_0x7b84[_0x52b84f];return _0x7ae48f;};'use strict';var _=require(_0x47b8('0x0'));var util=require(_0x47b8('0x1'));var moment=require(_0x47b8('0x2'));var BPromise=require('bluebird');var rs=require(_0x47b8('0x3'));var fs=require('fs');var Redis=require(_0x47b8('0x4'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x47b8('0x5'))(_0x47b8('0x6'));var config=require(_0x47b8('0x7'));var jayson=require(_0x47b8('0x8'));var client=jayson[_0x47b8('0x9')][_0x47b8('0xa')]({'port':0x232a});config[_0x47b8('0xb')]=_[_0x47b8('0xc')](config[_0x47b8('0xb')],{'host':_0x47b8('0xd'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x47b8('0xb')]));require(_0x47b8('0xe'))[_0x47b8('0xf')](socket);function respondWithRpcPromise(_0x1c3bfa,_0x5b2595,_0x41d68b){return new BPromise(function(_0x53a0ad,_0x17e692){return client[_0x47b8('0x10')](_0x1c3bfa,_0x41d68b)[_0x47b8('0x11')](function(_0x1d8ee9){logger[_0x47b8('0x12')](_0x47b8('0x13'),_0x5b2595,_0x47b8('0x14'));logger[_0x47b8('0x15')](_0x47b8('0x16'),_0x5b2595,_0x47b8('0x14'),JSON['stringify'](_0x1d8ee9));if(_0x1d8ee9[_0x47b8('0x17')]){if(_0x1d8ee9[_0x47b8('0x17')][_0x47b8('0x18')]===0x1f4){logger[_0x47b8('0x17')]('WhatsappAccount,\x20%s,\x20%s',_0x5b2595,_0x1d8ee9[_0x47b8('0x17')]['message']);return _0x17e692(_0x1d8ee9[_0x47b8('0x17')][_0x47b8('0x19')]);}logger[_0x47b8('0x17')]('WhatsappAccount,\x20%s,\x20%s',_0x5b2595,_0x1d8ee9[_0x47b8('0x17')]['message']);return _0x53a0ad(_0x1d8ee9[_0x47b8('0x17')]['message']);}else{logger[_0x47b8('0x12')](_0x47b8('0x13'),_0x5b2595,_0x47b8('0x14'));_0x53a0ad(_0x1d8ee9[_0x47b8('0x1a')]['message']);}})['catch'](function(_0x425397){logger['error'](_0x47b8('0x13'),_0x5b2595,_0x425397);_0x17e692(_0x425397);});});}exports[_0x47b8('0x1b')]=function(_0x392560){var _0x92417=this;return new Promise(function(_0x2eae0b,_0x207d04){return db[_0x47b8('0x1c')][_0x47b8('0x1d')]({'raw':_0x392560[_0x47b8('0x1e')]?_0x392560[_0x47b8('0x1e')][_0x47b8('0x1f')]===undefined?!![]:![]:!![],'where':_0x392560['options']?_0x392560[_0x47b8('0x1e')]['where']||null:null,'attributes':_0x392560[_0x47b8('0x1e')]?_0x392560[_0x47b8('0x1e')]['attributes']||null:null,'include':_0x392560[_0x47b8('0x1e')]?_0x392560[_0x47b8('0x1e')][_0x47b8('0x20')]?_[_0x47b8('0x21')](_0x392560[_0x47b8('0x1e')][_0x47b8('0x20')],function(_0x1508a5){return{'model':db[_0x1508a5[_0x47b8('0x22')]],'as':_0x1508a5['as'],'attributes':_0x1508a5[_0x47b8('0x23')],'include':_0x1508a5[_0x47b8('0x20')]?_[_0x47b8('0x21')](_0x1508a5[_0x47b8('0x20')],function(_0x42a0f6){return{'model':db[_0x42a0f6[_0x47b8('0x22')]],'as':_0x42a0f6['as'],'attributes':_0x42a0f6[_0x47b8('0x23')],'include':_0x42a0f6[_0x47b8('0x20')]?_[_0x47b8('0x21')](_0x42a0f6[_0x47b8('0x20')],function(_0x52dd4a){return{'model':db[_0x52dd4a[_0x47b8('0x22')]],'as':_0x52dd4a['as'],'attributes':_0x52dd4a[_0x47b8('0x23')]};}):[]};}):[]};}):[]:[]})[_0x47b8('0x11')](function(_0x1f6509){logger[_0x47b8('0x12')]('ShowWhatsappAccount',_0x392560);logger['debug']('ShowWhatsappAccount',_0x392560,JSON['stringify'](_0x1f6509));_0x2eae0b(_0x1f6509);})[_0x47b8('0x24')](function(_0x3f8e79){logger[_0x47b8('0x17')]('ShowWhatsappAccount',_0x3f8e79[_0x47b8('0x19')],_0x392560);_0x207d04(_0x92417[_0x47b8('0x17')](0x1f4,_0x3f8e79[_0x47b8('0x19')]));});});};
\ No newline at end of file
+var _0xb678=['where','include','map','model','attributes','ShowWhatsappAccount','stringify','lodash','util','randomstring','../../config/utils','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','register','request','then','info','WhatsappAccount,\x20%s,\x20%s','request\x20sent','debug','error','message','result','catch','WhatsappAccount','find','options','raw'];(function(_0x1d59d3,_0x340502){var _0x3e87b0=function(_0x3a1c34){while(--_0x3a1c34){_0x1d59d3['push'](_0x1d59d3['shift']());}};_0x3e87b0(++_0x340502);}(_0xb678,0x6a));var _0x8b67=function(_0x36c5b0,_0x5001da){_0x36c5b0=_0x36c5b0-0x0;var _0xf19333=_0xb678[_0x36c5b0];return _0xf19333;};'use strict';var _=require(_0x8b67('0x0'));var util=require(_0x8b67('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x8b67('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x8b67('0x3'));var logger=require('../../config/logger')('rpc');var config=require('../../config/environment');var jayson=require(_0x8b67('0x4'));var client=jayson[_0x8b67('0x5')][_0x8b67('0x6')]({'port':0x232a});config[_0x8b67('0x7')]=_[_0x8b67('0x8')](config[_0x8b67('0x7')],{'host':_0x8b67('0x9'),'port':0x18eb});var socket=require(_0x8b67('0xa'))(new Redis(config[_0x8b67('0x7')]));require('./whatsappAccount.socket')[_0x8b67('0xb')](socket);function respondWithRpcPromise(_0x6db6be,_0x277f3d,_0x5a30b8){return new BPromise(function(_0x10d727,_0x4efa00){return client[_0x8b67('0xc')](_0x6db6be,_0x5a30b8)[_0x8b67('0xd')](function(_0x46af1e){logger[_0x8b67('0xe')](_0x8b67('0xf'),_0x277f3d,_0x8b67('0x10'));logger[_0x8b67('0x11')]('WhatsappAccount,\x20%s,\x20%s,\x20%s',_0x277f3d,_0x8b67('0x10'),JSON['stringify'](_0x46af1e));if(_0x46af1e[_0x8b67('0x12')]){if(_0x46af1e['error']['code']===0x1f4){logger[_0x8b67('0x12')](_0x8b67('0xf'),_0x277f3d,_0x46af1e[_0x8b67('0x12')][_0x8b67('0x13')]);return _0x4efa00(_0x46af1e[_0x8b67('0x12')][_0x8b67('0x13')]);}logger[_0x8b67('0x12')](_0x8b67('0xf'),_0x277f3d,_0x46af1e[_0x8b67('0x12')][_0x8b67('0x13')]);return _0x10d727(_0x46af1e[_0x8b67('0x12')][_0x8b67('0x13')]);}else{logger[_0x8b67('0xe')](_0x8b67('0xf'),_0x277f3d,'request\x20sent');_0x10d727(_0x46af1e[_0x8b67('0x14')][_0x8b67('0x13')]);}})[_0x8b67('0x15')](function(_0x124016){logger[_0x8b67('0x12')](_0x8b67('0xf'),_0x277f3d,_0x124016);_0x4efa00(_0x124016);});});}exports['ShowWhatsappAccount']=function(_0x29a8da){var _0x2b0f2b=this;return new Promise(function(_0x1ce888,_0x5026a1){return db[_0x8b67('0x16')][_0x8b67('0x17')]({'raw':_0x29a8da[_0x8b67('0x18')]?_0x29a8da[_0x8b67('0x18')][_0x8b67('0x19')]===undefined?!![]:![]:!![],'where':_0x29a8da[_0x8b67('0x18')]?_0x29a8da[_0x8b67('0x18')][_0x8b67('0x1a')]||null:null,'attributes':_0x29a8da[_0x8b67('0x18')]?_0x29a8da[_0x8b67('0x18')]['attributes']||null:null,'include':_0x29a8da[_0x8b67('0x18')]?_0x29a8da[_0x8b67('0x18')][_0x8b67('0x1b')]?_[_0x8b67('0x1c')](_0x29a8da['options']['include'],function(_0x4ec9c8){return{'model':db[_0x4ec9c8[_0x8b67('0x1d')]],'as':_0x4ec9c8['as'],'attributes':_0x4ec9c8[_0x8b67('0x1e')],'include':_0x4ec9c8['include']?_[_0x8b67('0x1c')](_0x4ec9c8['include'],function(_0x2a06b){return{'model':db[_0x2a06b[_0x8b67('0x1d')]],'as':_0x2a06b['as'],'attributes':_0x2a06b[_0x8b67('0x1e')],'include':_0x2a06b[_0x8b67('0x1b')]?_[_0x8b67('0x1c')](_0x2a06b['include'],function(_0x591416){return{'model':db[_0x591416[_0x8b67('0x1d')]],'as':_0x591416['as'],'attributes':_0x591416[_0x8b67('0x1e')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x225e50){logger[_0x8b67('0xe')](_0x8b67('0x1f'),_0x29a8da);logger['debug'](_0x8b67('0x1f'),_0x29a8da,JSON[_0x8b67('0x20')](_0x225e50));_0x1ce888(_0x225e50);})['catch'](function(_0x238d26){logger[_0x8b67('0x12')]('ShowWhatsappAccount',_0x238d26['message'],_0x29a8da);_0x5026a1(_0x2b0f2b[_0x8b67('0x12')](0x1f4,_0x238d26[_0x8b67('0x13')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x80fc=['remove','update','emit','removeListener','register','length','whatsappAccount:','save'];(function(_0x210a3a,_0x1f5265){var _0x328725=function(_0x21de5f){while(--_0x21de5f){_0x210a3a['push'](_0x210a3a['shift']());}};_0x328725(++_0x1f5265);}(_0x80fc,0xb7));var _0xc80f=function(_0x33c146,_0x4987d2){_0x33c146=_0x33c146-0x0;var _0x247916=_0x80fc[_0x33c146];return _0x247916;};'use strict';var WhatsappAccountEvents=require('./whatsappAccount.events');var events=[_0xc80f('0x0'),_0xc80f('0x1'),_0xc80f('0x2')];function createListener(_0x1c0907,_0x45f5c9){return function(_0x2eb1e9){_0x45f5c9[_0xc80f('0x3')](_0x1c0907,_0x2eb1e9);};}function removeListener(_0x534a49,_0x147cd1){return function(){WhatsappAccountEvents[_0xc80f('0x4')](_0x534a49,_0x147cd1);};}exports[_0xc80f('0x5')]=function(_0x3809ad){for(var _0xe3e8d5=0x0,_0x56c124=events[_0xc80f('0x6')];_0xe3e8d5<_0x56c124;_0xe3e8d5++){var _0x5efa59=events[_0xe3e8d5];var _0x3d74bd=createListener(_0xc80f('0x7')+_0x5efa59,_0x3809ad);WhatsappAccountEvents['on'](_0x5efa59,_0x3d74bd);}};
\ No newline at end of file
+var _0x84f8=['./whatsappAccount.events','save','remove','update','emit','removeListener','register','whatsappAccount:'];(function(_0xd7cf16,_0x5d3152){var _0x42e705=function(_0x5d141e){while(--_0x5d141e){_0xd7cf16['push'](_0xd7cf16['shift']());}};_0x42e705(++_0x5d3152);}(_0x84f8,0x1c0));var _0x884f=function(_0x308df9,_0x10ac55){_0x308df9=_0x308df9-0x0;var _0xb1b230=_0x84f8[_0x308df9];return _0xb1b230;};'use strict';var WhatsappAccountEvents=require(_0x884f('0x0'));var events=[_0x884f('0x1'),_0x884f('0x2'),_0x884f('0x3')];function createListener(_0x3fbd5d,_0x3b99c2){return function(_0x42fd2f){_0x3b99c2[_0x884f('0x4')](_0x3fbd5d,_0x42fd2f);};}function removeListener(_0x2dfdf6,_0x33f543){return function(){WhatsappAccountEvents[_0x884f('0x5')](_0x2dfdf6,_0x33f543);};}exports[_0x884f('0x6')]=function(_0x2a1aa2){for(var _0x29887f=0x0,_0x455f7d=events['length'];_0x29887f<_0x455f7d;_0x29887f++){var _0xe900e2=events[_0x29887f];var _0x1852bf=createListener(_0x884f('0x7')+_0xe900e2,_0x2a1aa2);WhatsappAccountEvents['on'](_0xe900e2,_0x1852bf);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9a2e=['post','create','put','update','destroy','multer','path','connect-timeout','Router','fs-extra','../../components/auth/service','get','isAuthenticated','index','/:id','show'];(function(_0x46e363,_0x45d7e2){var _0x3fb059=function(_0x5e6274){while(--_0x5e6274){_0x46e363['push'](_0x46e363['shift']());}};_0x3fb059(++_0x45d7e2);}(_0x9a2e,0x95));var _0xe9a2=function(_0x4e2bfc,_0x4a5ab9){_0x4e2bfc=_0x4e2bfc-0x0;var _0x5c9ba5=_0x9a2e[_0x4e2bfc];return _0x5c9ba5;};'use strict';var multer=require(_0xe9a2('0x0'));var util=require('util');var path=require(_0xe9a2('0x1'));var timeout=require(_0xe9a2('0x2'));var express=require('express');var router=express[_0xe9a2('0x3')]();var fs_extra=require(_0xe9a2('0x4'));var auth=require(_0xe9a2('0x5'));var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require('./whatsappApplication.controller');router[_0xe9a2('0x6')]('/',auth[_0xe9a2('0x7')](),controller[_0xe9a2('0x8')]);router['get'](_0xe9a2('0x9'),auth[_0xe9a2('0x7')](),controller[_0xe9a2('0xa')]);router[_0xe9a2('0xb')]('/',auth[_0xe9a2('0x7')](),controller[_0xe9a2('0xc')]);router[_0xe9a2('0xd')]('/:id',auth['isAuthenticated'](),controller[_0xe9a2('0xe')]);router['delete'](_0xe9a2('0x9'),auth[_0xe9a2('0x7')](),controller[_0xe9a2('0xf')]);module['exports']=router;
\ No newline at end of file
+var _0x3b4a=['express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','./whatsappApplication.controller','get','isAuthenticated','index','post','create','put','/:id','update','exports','multer','util','path','connect-timeout'];(function(_0x666160,_0x436ed1){var _0x17d3ef=function(_0x52bda6){while(--_0x52bda6){_0x666160['push'](_0x666160['shift']());}};_0x17d3ef(++_0x436ed1);}(_0x3b4a,0x165));var _0xa3b4=function(_0xc3999c,_0x4db921){_0xc3999c=_0xc3999c-0x0;var _0x256213=_0x3b4a[_0xc3999c];return _0x256213;};'use strict';var multer=require(_0xa3b4('0x0'));var util=require(_0xa3b4('0x1'));var path=require(_0xa3b4('0x2'));var timeout=require(_0xa3b4('0x3'));var express=require(_0xa3b4('0x4'));var router=express[_0xa3b4('0x5')]();var fs_extra=require(_0xa3b4('0x6'));var auth=require(_0xa3b4('0x7'));var interaction=require(_0xa3b4('0x8'));var config=require('../../config/environment');var controller=require(_0xa3b4('0x9'));router[_0xa3b4('0xa')]('/',auth[_0xa3b4('0xb')](),controller[_0xa3b4('0xc')]);router[_0xa3b4('0xa')]('/:id',auth[_0xa3b4('0xb')](),controller['show']);router[_0xa3b4('0xd')]('/',auth[_0xa3b4('0xb')](),controller[_0xa3b4('0xe')]);router[_0xa3b4('0xf')](_0xa3b4('0x10'),auth[_0xa3b4('0xb')](),controller[_0xa3b4('0x11')]);router['delete'](_0xa3b4('0x10'),auth[_0xa3b4('0xb')](),controller['destroy']);module[_0xa3b4('0x12')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8fd5=['sequelize','INTEGER','STRING','noop','TEXT'];(function(_0x5616f7,_0x5b5d6a){var _0x53ea19=function(_0x3370be){while(--_0x3370be){_0x5616f7['push'](_0x5616f7['shift']());}};_0x53ea19(++_0x5b5d6a);}(_0x8fd5,0xaa));var _0x58fd=function(_0xca1089,_0x5c69da){_0xca1089=_0xca1089-0x0;var _0x219184=_0x8fd5[_0xca1089];return _0x219184;};'use strict';var Sequelize=require(_0x58fd('0x0'));module['exports']={'priority':{'type':Sequelize[_0x58fd('0x1')],'allowNull':![]},'app':{'type':Sequelize[_0x58fd('0x2')],'allowNull':![],'defaultValue':_0x58fd('0x3')},'appdata':{'type':Sequelize[_0x58fd('0x4')]()},'description':{'type':Sequelize['STRING']},'interval':{'type':Sequelize['STRING'],'defaultValue':'*,*,*,*'}};
\ No newline at end of file
+var _0xd7a1=['exports','STRING','noop','TEXT','*,*,*,*'];(function(_0x49ad79,_0x48ee93){var _0xa4e38a=function(_0x4925c7){while(--_0x4925c7){_0x49ad79['push'](_0x49ad79['shift']());}};_0xa4e38a(++_0x48ee93);}(_0xd7a1,0x7d));var _0x1d7a=function(_0x32ede9,_0x29cf32){_0x32ede9=_0x32ede9-0x0;var _0x2464f7=_0xd7a1[_0x32ede9];return _0x2464f7;};'use strict';var Sequelize=require('sequelize');module[_0x1d7a('0x0')]={'priority':{'type':Sequelize['INTEGER'],'allowNull':![]},'app':{'type':Sequelize[_0x1d7a('0x1')],'allowNull':![],'defaultValue':_0x1d7a('0x2')},'appdata':{'type':Sequelize[_0x1d7a('0x3')]()},'description':{'type':Sequelize[_0x1d7a('0x1')]},'interval':{'type':Sequelize[_0x1d7a('0x1')],'defaultValue':_0x1d7a('0x4')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1410=['catch','create','body','params','eml-format','rimraf','zip-dir','fast-json-patch','moment','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','status','end','json','offset','undefined','limit','count','set','apply','reject','update','then','destroy','sendStatus','error','stack','name','send','index','map','WhatsappApplication','rawAttributes','fieldName','key','query','keys','filters','model','attributes','intersection','fields','length','nolimit','order','sort','where','filter','merge','type','VIRTUAL','options','includeAll','include','findAll','find'];(function(_0x3f240c,_0x29f06f){var _0x2b4c28=function(_0x52ee0a){while(--_0x52ee0a){_0x3f240c['push'](_0x3f240c['shift']());}};_0x2b4c28(++_0x29f06f);}(_0x1410,0x130));var _0x0141=function(_0x13a65e,_0x7ba8b2){_0x13a65e=_0x13a65e-0x0;var _0x30ab06=_0x1410[_0x13a65e];return _0x30ab06;};'use strict';var emlformat=require(_0x0141('0x0'));var rimraf=require(_0x0141('0x1'));var zipdir=require(_0x0141('0x2'));var jsonpatch=require(_0x0141('0x3'));var rp=require('request-promise');var moment=require(_0x0141('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x0141('0x5'));var util=require('util');var path=require(_0x0141('0x6'));var sox=require(_0x0141('0x7'));var csv=require(_0x0141('0x8'));var ejs=require(_0x0141('0x9'));var fs=require('fs');var fs_extra=require(_0x0141('0xa'));var _=require(_0x0141('0xb'));var squel=require(_0x0141('0xc'));var crypto=require(_0x0141('0xd'));var jsforce=require(_0x0141('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x0141('0x8'));var querystring=require(_0x0141('0xf'));var Papa=require(_0x0141('0x10'));var Redis=require(_0x0141('0x11'));var authService=require(_0x0141('0x12'));var qs=require(_0x0141('0x13'));var as=require(_0x0141('0x14'));var hardwareService=require(_0x0141('0x15'));var logger=require('../../config/logger')(_0x0141('0x16'));var utils=require(_0x0141('0x17'));var config=require(_0x0141('0x18'));var licenseUtil=require(_0x0141('0x19'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x49cebd,_0xab59e3){_0xab59e3=_0xab59e3||0xcc;return function(_0x25aefb){if(_0x25aefb){return _0x49cebd['sendStatus'](_0xab59e3);}return _0x49cebd[_0x0141('0x1a')](_0xab59e3)[_0x0141('0x1b')]();};}function respondWithResult(_0x16a55a,_0x245007){_0x245007=_0x245007||0xc8;return function(_0x1665e2){if(_0x1665e2){return _0x16a55a['status'](_0x245007)[_0x0141('0x1c')](_0x1665e2);}};}function respondWithFilteredResult(_0x5edd9f,_0x2ee001){return function(_0x3db66a){if(_0x3db66a){var _0x345fbd=typeof _0x2ee001[_0x0141('0x1d')]===_0x0141('0x1e')&&typeof _0x2ee001[_0x0141('0x1f')]==='undefined';var _0x58c3bb=_0x3db66a[_0x0141('0x20')];var _0x3720f6=_0x345fbd?0x0:_0x2ee001['offset'];var _0x9c1eec=_0x345fbd?_0x3db66a[_0x0141('0x20')]:_0x2ee001[_0x0141('0x1d')]+_0x2ee001[_0x0141('0x1f')];var _0x5427b5;if(_0x9c1eec>=_0x58c3bb){_0x9c1eec=_0x58c3bb;_0x5427b5=0xc8;}else{_0x5427b5=0xce;}_0x5edd9f[_0x0141('0x1a')](_0x5427b5);return _0x5edd9f[_0x0141('0x21')]('Content-Range',_0x3720f6+'-'+_0x9c1eec+'/'+_0x58c3bb)[_0x0141('0x1c')](_0x3db66a);}return null;};}function patchUpdates(_0x3e8603){return function(_0x17585f){try{jsonpatch[_0x0141('0x22')](_0x17585f,_0x3e8603,!![]);}catch(_0x316f70){return BPromise[_0x0141('0x23')](_0x316f70);}return _0x17585f['save']();};}function saveUpdates(_0x21d8fc,_0x40c774){return function(_0x363860){if(_0x363860){return _0x363860[_0x0141('0x24')](_0x21d8fc)[_0x0141('0x25')](function(_0x1a4b0b){return _0x1a4b0b;});}return null;};}function removeEntity(_0xccf0c,_0x20656b){return function(_0x12a11e){if(_0x12a11e){return _0x12a11e[_0x0141('0x26')]()[_0x0141('0x25')](function(){_0xccf0c[_0x0141('0x1a')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4247d,_0x14ecbf){return function(_0xb80072){if(!_0xb80072){_0x4247d[_0x0141('0x27')](0x194);}return _0xb80072;};}function handleError(_0xcc5658,_0x52e90a){_0x52e90a=_0x52e90a||0x1f4;return function(_0x59196f){logger[_0x0141('0x28')](_0x59196f[_0x0141('0x29')]);if(_0x59196f['name']){delete _0x59196f[_0x0141('0x2a')];}_0xcc5658['status'](_0x52e90a)[_0x0141('0x2b')](_0x59196f);};}exports[_0x0141('0x2c')]=function(_0x400602,_0x378a87){var _0x2379ad={},_0x29f463={},_0x146daf={'count':0x0,'rows':[]};var _0xc6eabc=_[_0x0141('0x2d')](db[_0x0141('0x2e')][_0x0141('0x2f')],function(_0x36c409){return{'name':_0x36c409[_0x0141('0x30')],'type':_0x36c409['type'][_0x0141('0x31')]};});_0x29f463['model']=_[_0x0141('0x2d')](_0xc6eabc,_0x0141('0x2a'));_0x29f463[_0x0141('0x32')]=_[_0x0141('0x33')](_0x400602[_0x0141('0x32')]);_0x29f463[_0x0141('0x34')]=_['intersection'](_0x29f463[_0x0141('0x35')],_0x29f463['query']);_0x2379ad[_0x0141('0x36')]=_[_0x0141('0x37')](_0x29f463[_0x0141('0x35')],qs['fields'](_0x400602[_0x0141('0x32')][_0x0141('0x38')]));_0x2379ad['attributes']=_0x2379ad[_0x0141('0x36')][_0x0141('0x39')]?_0x2379ad[_0x0141('0x36')]:_0x29f463[_0x0141('0x35')];if(!_0x400602[_0x0141('0x32')]['hasOwnProperty'](_0x0141('0x3a'))){_0x2379ad[_0x0141('0x1f')]=qs[_0x0141('0x1f')](_0x400602[_0x0141('0x32')][_0x0141('0x1f')]);_0x2379ad[_0x0141('0x1d')]=qs['offset'](_0x400602['query'][_0x0141('0x1d')]);}_0x2379ad[_0x0141('0x3b')]=qs['sort'](_0x400602[_0x0141('0x32')][_0x0141('0x3c')]);_0x2379ad[_0x0141('0x3d')]=qs['filters'](_['pick'](_0x400602['query'],_0x29f463[_0x0141('0x34')]),_0xc6eabc);if(_0x400602[_0x0141('0x32')][_0x0141('0x3e')]){_0x2379ad[_0x0141('0x3d')]=_[_0x0141('0x3f')](_0x2379ad[_0x0141('0x3d')],{'$or':_[_0x0141('0x2d')](_0xc6eabc,function(_0x51ae65){if(_0x51ae65[_0x0141('0x40')]!==_0x0141('0x41')){var _0x5b76c1={};_0x5b76c1[_0x51ae65[_0x0141('0x2a')]]={'$like':'%'+_0x400602[_0x0141('0x32')][_0x0141('0x3e')]+'%'};return _0x5b76c1;}})});}_0x2379ad=_[_0x0141('0x3f')]({},_0x2379ad,_0x400602[_0x0141('0x42')]);var _0x158480={'where':_0x2379ad[_0x0141('0x3d')]};return db[_0x0141('0x2e')]['count'](_0x158480)[_0x0141('0x25')](function(_0x9e9408){_0x146daf['count']=_0x9e9408;if(_0x400602[_0x0141('0x32')][_0x0141('0x43')]){_0x2379ad[_0x0141('0x44')]=[{'all':!![]}];}return db[_0x0141('0x2e')][_0x0141('0x45')](_0x2379ad);})['then'](function(_0x1746a1){_0x146daf['rows']=_0x1746a1;return _0x146daf;})[_0x0141('0x25')](respondWithFilteredResult(_0x378a87,_0x2379ad))['catch'](handleError(_0x378a87,null));};exports['show']=function(_0x4e863f,_0x25870d){var _0x2579df={'raw':!![],'where':{'id':_0x4e863f['params']['id']}},_0x210a8c={};_0x210a8c[_0x0141('0x35')]=_[_0x0141('0x33')](db[_0x0141('0x2e')][_0x0141('0x2f')]);_0x210a8c['query']=_[_0x0141('0x33')](_0x4e863f[_0x0141('0x32')]);_0x210a8c[_0x0141('0x34')]=_[_0x0141('0x37')](_0x210a8c[_0x0141('0x35')],_0x210a8c[_0x0141('0x32')]);_0x2579df[_0x0141('0x36')]=_[_0x0141('0x37')](_0x210a8c['model'],qs[_0x0141('0x38')](_0x4e863f[_0x0141('0x32')][_0x0141('0x38')]));_0x2579df['attributes']=_0x2579df[_0x0141('0x36')][_0x0141('0x39')]?_0x2579df[_0x0141('0x36')]:_0x210a8c['model'];if(_0x4e863f[_0x0141('0x32')]['includeAll']){_0x2579df[_0x0141('0x44')]=[{'all':!![]}];}_0x2579df=_['merge']({},_0x2579df,_0x4e863f[_0x0141('0x42')]);return db['WhatsappApplication'][_0x0141('0x46')](_0x2579df)[_0x0141('0x25')](handleEntityNotFound(_0x25870d,null))[_0x0141('0x25')](respondWithResult(_0x25870d,null))[_0x0141('0x47')](handleError(_0x25870d,null));};exports[_0x0141('0x48')]=function(_0x482e1e,_0x3890ef){return db[_0x0141('0x2e')][_0x0141('0x48')](_0x482e1e['body'],{})[_0x0141('0x25')](respondWithResult(_0x3890ef,0xc9))[_0x0141('0x47')](handleError(_0x3890ef,null));};exports[_0x0141('0x24')]=function(_0x4978a3,_0x3e30a8){if(_0x4978a3['body']['id']){delete _0x4978a3[_0x0141('0x49')]['id'];}return db[_0x0141('0x2e')][_0x0141('0x46')]({'where':{'id':_0x4978a3[_0x0141('0x4a')]['id']}})['then'](handleEntityNotFound(_0x3e30a8,null))[_0x0141('0x25')](saveUpdates(_0x4978a3[_0x0141('0x49')],null))[_0x0141('0x25')](respondWithResult(_0x3e30a8,null))[_0x0141('0x47')](handleError(_0x3e30a8,null));};exports[_0x0141('0x26')]=function(_0x2da74f,_0x4a37d3){return db['WhatsappApplication'][_0x0141('0x46')]({'where':{'id':_0x2da74f[_0x0141('0x4a')]['id']}})[_0x0141('0x25')](handleEntityNotFound(_0x4a37d3,null))['then'](removeEntity(_0x4a37d3,null))[_0x0141('0x47')](handleError(_0x4a37d3,null));};
\ No newline at end of file
+var _0x980e=['catch','update','eml-format','fast-json-patch','moment','mustache','util','to-csv','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','status','end','json','offset','undefined','limit','count','set','Content-Range','reject','save','then','sendStatus','error','stack','name','send','index','WhatsappApplication','rawAttributes','fieldName','type','map','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','include','findAll','rows','show','params','includeAll','find','create','body'];(function(_0x25510b,_0x46fc92){var _0x5a07e9=function(_0x25860d){while(--_0x25860d){_0x25510b['push'](_0x25510b['shift']());}};_0x5a07e9(++_0x46fc92);}(_0x980e,0x1a6));var _0xe980=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x980e[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0xe980('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0xe980('0x1'));var rp=require('request-promise');var moment=require(_0xe980('0x2'));var BPromise=require('bluebird');var Mustache=require(_0xe980('0x3'));var util=require(_0xe980('0x4'));var path=require('path');var sox=require('sox');var csv=require(_0xe980('0x5'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xe980('0x6'));var squel=require(_0xe980('0x7'));var crypto=require(_0xe980('0x8'));var jsforce=require(_0xe980('0x9'));var deskjs=require(_0xe980('0xa'));var toCsv=require(_0xe980('0x5'));var querystring=require('querystring');var Papa=require(_0xe980('0xb'));var Redis=require(_0xe980('0xc'));var authService=require(_0xe980('0xd'));var qs=require('../../components/parsers/qs');var as=require(_0xe980('0xe'));var hardwareService=require(_0xe980('0xf'));var logger=require(_0xe980('0x10'))(_0xe980('0x11'));var utils=require(_0xe980('0x12'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x23c9cc,_0x234b1b){_0x234b1b=_0x234b1b||0xcc;return function(_0x58c367){if(_0x58c367){return _0x23c9cc['sendStatus'](_0x234b1b);}return _0x23c9cc[_0xe980('0x13')](_0x234b1b)[_0xe980('0x14')]();};}function respondWithResult(_0x22dc7b,_0x278b95){_0x278b95=_0x278b95||0xc8;return function(_0x21c5ff){if(_0x21c5ff){return _0x22dc7b[_0xe980('0x13')](_0x278b95)[_0xe980('0x15')](_0x21c5ff);}};}function respondWithFilteredResult(_0x4c3661,_0x5e7691){return function(_0x49771e){if(_0x49771e){var _0x594116=typeof _0x5e7691[_0xe980('0x16')]===_0xe980('0x17')&&typeof _0x5e7691[_0xe980('0x18')]===_0xe980('0x17');var _0x551a2c=_0x49771e[_0xe980('0x19')];var _0x1c6354=_0x594116?0x0:_0x5e7691[_0xe980('0x16')];var _0x538d32=_0x594116?_0x49771e['count']:_0x5e7691[_0xe980('0x16')]+_0x5e7691[_0xe980('0x18')];var _0x13e839;if(_0x538d32>=_0x551a2c){_0x538d32=_0x551a2c;_0x13e839=0xc8;}else{_0x13e839=0xce;}_0x4c3661[_0xe980('0x13')](_0x13e839);return _0x4c3661[_0xe980('0x1a')](_0xe980('0x1b'),_0x1c6354+'-'+_0x538d32+'/'+_0x551a2c)[_0xe980('0x15')](_0x49771e);}return null;};}function patchUpdates(_0x2b4c75){return function(_0x5f4db2){try{jsonpatch['apply'](_0x5f4db2,_0x2b4c75,!![]);}catch(_0x12ddc4){return BPromise[_0xe980('0x1c')](_0x12ddc4);}return _0x5f4db2[_0xe980('0x1d')]();};}function saveUpdates(_0x4f929f,_0x399973){return function(_0x31916b){if(_0x31916b){return _0x31916b['update'](_0x4f929f)[_0xe980('0x1e')](function(_0x261931){return _0x261931;});}return null;};}function removeEntity(_0x190d12,_0x4b7888){return function(_0xb9e91d){if(_0xb9e91d){return _0xb9e91d['destroy']()[_0xe980('0x1e')](function(){_0x190d12[_0xe980('0x13')](0xcc)[_0xe980('0x14')]();});}};}function handleEntityNotFound(_0x40a34e,_0x533ed6){return function(_0x11e5dd){if(!_0x11e5dd){_0x40a34e[_0xe980('0x1f')](0x194);}return _0x11e5dd;};}function handleError(_0xdc9ad7,_0x4ac608){_0x4ac608=_0x4ac608||0x1f4;return function(_0x54e755){logger[_0xe980('0x20')](_0x54e755[_0xe980('0x21')]);if(_0x54e755['name']){delete _0x54e755[_0xe980('0x22')];}_0xdc9ad7['status'](_0x4ac608)[_0xe980('0x23')](_0x54e755);};}exports[_0xe980('0x24')]=function(_0x10f084,_0x3ef831){var _0x2a6e8a={},_0x43a7c2={},_0x4caf7c={'count':0x0,'rows':[]};var _0x36aa1d=_['map'](db[_0xe980('0x25')][_0xe980('0x26')],function(_0x421ef9){return{'name':_0x421ef9[_0xe980('0x27')],'type':_0x421ef9[_0xe980('0x28')]['key']};});_0x43a7c2['model']=_[_0xe980('0x29')](_0x36aa1d,_0xe980('0x22'));_0x43a7c2[_0xe980('0x2a')]=_[_0xe980('0x2b')](_0x10f084[_0xe980('0x2a')]);_0x43a7c2[_0xe980('0x2c')]=_[_0xe980('0x2d')](_0x43a7c2[_0xe980('0x2e')],_0x43a7c2[_0xe980('0x2a')]);_0x2a6e8a[_0xe980('0x2f')]=_[_0xe980('0x2d')](_0x43a7c2['model'],qs['fields'](_0x10f084[_0xe980('0x2a')][_0xe980('0x30')]));_0x2a6e8a[_0xe980('0x2f')]=_0x2a6e8a['attributes'][_0xe980('0x31')]?_0x2a6e8a[_0xe980('0x2f')]:_0x43a7c2[_0xe980('0x2e')];if(!_0x10f084[_0xe980('0x2a')][_0xe980('0x32')](_0xe980('0x33'))){_0x2a6e8a[_0xe980('0x18')]=qs[_0xe980('0x18')](_0x10f084[_0xe980('0x2a')][_0xe980('0x18')]);_0x2a6e8a['offset']=qs['offset'](_0x10f084[_0xe980('0x2a')][_0xe980('0x16')]);}_0x2a6e8a['order']=qs[_0xe980('0x34')](_0x10f084['query'][_0xe980('0x34')]);_0x2a6e8a[_0xe980('0x35')]=qs[_0xe980('0x2c')](_[_0xe980('0x36')](_0x10f084[_0xe980('0x2a')],_0x43a7c2[_0xe980('0x2c')]),_0x36aa1d);if(_0x10f084['query'][_0xe980('0x37')]){_0x2a6e8a[_0xe980('0x35')]=_[_0xe980('0x38')](_0x2a6e8a[_0xe980('0x35')],{'$or':_[_0xe980('0x29')](_0x36aa1d,function(_0x51cf67){if(_0x51cf67[_0xe980('0x28')]!==_0xe980('0x39')){var _0x1faffe={};_0x1faffe[_0x51cf67['name']]={'$like':'%'+_0x10f084[_0xe980('0x2a')]['filter']+'%'};return _0x1faffe;}})});}_0x2a6e8a=_[_0xe980('0x38')]({},_0x2a6e8a,_0x10f084[_0xe980('0x3a')]);var _0x577d17={'where':_0x2a6e8a['where']};return db[_0xe980('0x25')][_0xe980('0x19')](_0x577d17)[_0xe980('0x1e')](function(_0x1a1d1f){_0x4caf7c[_0xe980('0x19')]=_0x1a1d1f;if(_0x10f084[_0xe980('0x2a')]['includeAll']){_0x2a6e8a[_0xe980('0x3b')]=[{'all':!![]}];}return db[_0xe980('0x25')][_0xe980('0x3c')](_0x2a6e8a);})['then'](function(_0x8e9b17){_0x4caf7c[_0xe980('0x3d')]=_0x8e9b17;return _0x4caf7c;})[_0xe980('0x1e')](respondWithFilteredResult(_0x3ef831,_0x2a6e8a))['catch'](handleError(_0x3ef831,null));};exports[_0xe980('0x3e')]=function(_0x710f6a,_0x528161){var _0x110c26={'raw':!![],'where':{'id':_0x710f6a[_0xe980('0x3f')]['id']}},_0x27d09d={};_0x27d09d[_0xe980('0x2e')]=_[_0xe980('0x2b')](db[_0xe980('0x25')]['rawAttributes']);_0x27d09d[_0xe980('0x2a')]=_[_0xe980('0x2b')](_0x710f6a[_0xe980('0x2a')]);_0x27d09d[_0xe980('0x2c')]=_['intersection'](_0x27d09d[_0xe980('0x2e')],_0x27d09d[_0xe980('0x2a')]);_0x110c26[_0xe980('0x2f')]=_[_0xe980('0x2d')](_0x27d09d[_0xe980('0x2e')],qs[_0xe980('0x30')](_0x710f6a['query'][_0xe980('0x30')]));_0x110c26[_0xe980('0x2f')]=_0x110c26[_0xe980('0x2f')][_0xe980('0x31')]?_0x110c26[_0xe980('0x2f')]:_0x27d09d[_0xe980('0x2e')];if(_0x710f6a[_0xe980('0x2a')][_0xe980('0x40')]){_0x110c26[_0xe980('0x3b')]=[{'all':!![]}];}_0x110c26=_[_0xe980('0x38')]({},_0x110c26,_0x710f6a[_0xe980('0x3a')]);return db[_0xe980('0x25')][_0xe980('0x41')](_0x110c26)[_0xe980('0x1e')](handleEntityNotFound(_0x528161,null))['then'](respondWithResult(_0x528161,null))['catch'](handleError(_0x528161,null));};exports[_0xe980('0x42')]=function(_0x40b9da,_0x5b2b7d){return db['WhatsappApplication'][_0xe980('0x42')](_0x40b9da[_0xe980('0x43')],{})[_0xe980('0x1e')](respondWithResult(_0x5b2b7d,0xc9))[_0xe980('0x44')](handleError(_0x5b2b7d,null));};exports[_0xe980('0x45')]=function(_0x5e1b39,_0x146208){if(_0x5e1b39[_0xe980('0x43')]['id']){delete _0x5e1b39[_0xe980('0x43')]['id'];}return db['WhatsappApplication']['find']({'where':{'id':_0x5e1b39[_0xe980('0x3f')]['id']}})[_0xe980('0x1e')](handleEntityNotFound(_0x146208,null))['then'](saveUpdates(_0x5e1b39[_0xe980('0x43')],null))['then'](respondWithResult(_0x146208,null))[_0xe980('0x44')](handleError(_0x146208,null));};exports['destroy']=function(_0x52c1b3,_0x4096f2){return db[_0xe980('0x25')][_0xe980('0x41')]({'where':{'id':_0x52c1b3[_0xe980('0x3f')]['id']}})[_0xe980('0x1e')](handleEntityNotFound(_0x4096f2,null))[_0xe980('0x1e')](removeEntity(_0x4096f2,null))['catch'](handleError(_0x4096f2,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0f89=['../../config/environment','./whatsappApplication.attributes','define','WhatsappApplication','whatsapp_applications','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','moment','bluebird','request-promise','path'];(function(_0x1750d9,_0x4ea5c4){var _0x54b579=function(_0x416105){while(--_0x416105){_0x1750d9['push'](_0x1750d9['shift']());}};_0x54b579(++_0x4ea5c4);}(_0x0f89,0x111));var _0x90f8=function(_0x3cbc52,_0x1e70e8){_0x3cbc52=_0x3cbc52-0x0;var _0xa14635=_0x0f89[_0x3cbc52];return _0xa14635;};'use strict';var _=require(_0x90f8('0x0'));var util=require(_0x90f8('0x1'));var logger=require(_0x90f8('0x2'))('api');var moment=require(_0x90f8('0x3'));var BPromise=require(_0x90f8('0x4'));var rp=require(_0x90f8('0x5'));var fs=require('fs');var path=require(_0x90f8('0x6'));var rimraf=require('rimraf');var config=require(_0x90f8('0x7'));var attributes=require(_0x90f8('0x8'));module['exports']=function(_0x7b8d25,_0x4439a9){return _0x7b8d25[_0x90f8('0x9')](_0x90f8('0xa'),attributes,{'tableName':_0x90f8('0xb'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x90f8('0xc'),'collate':_0x90f8('0xd')});};
\ No newline at end of file
+var _0xb458=['path','rimraf','./whatsappApplication.attributes','define','WhatsappApplication','whatsapp_applications','utf8mb4','lodash','util','../../config/logger','bluebird','request-promise'];(function(_0xc6f511,_0x17937f){var _0x47f63a=function(_0x2236c3){while(--_0x2236c3){_0xc6f511['push'](_0xc6f511['shift']());}};_0x47f63a(++_0x17937f);}(_0xb458,0x103));var _0x8b45=function(_0x37bab4,_0x40dadf){_0x37bab4=_0x37bab4-0x0;var _0xe2212b=_0xb458[_0x37bab4];return _0xe2212b;};'use strict';var _=require(_0x8b45('0x0'));var util=require(_0x8b45('0x1'));var logger=require(_0x8b45('0x2'))('api');var moment=require('moment');var BPromise=require(_0x8b45('0x3'));var rp=require(_0x8b45('0x4'));var fs=require('fs');var path=require(_0x8b45('0x5'));var rimraf=require(_0x8b45('0x6'));var config=require('../../config/environment');var attributes=require(_0x8b45('0x7'));module['exports']=function(_0x5cc2d5,_0xe8d774){return _0x5cc2d5[_0x8b45('0x8')](_0x8b45('0x9'),attributes,{'tableName':_0x8b45('0xa'),'paranoid':![],'indexes':[],'timestamps':!![],'charset':_0x8b45('0xb'),'collate':'utf8mb4_unicode_ci'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x98a8=['request','then','info','WhatsappApplication,\x20%s,\x20%s','request\x20sent','debug','WhatsappApplication,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client'];(function(_0x5023f4,_0x5ef38a){var _0x2f4bf0=function(_0x2831c0){while(--_0x2831c0){_0x5023f4['push'](_0x5023f4['shift']());}};_0x2f4bf0(++_0x5ef38a);}(_0x98a8,0x12c));var _0x898a=function(_0xaa0e81,_0x202a9b){_0xaa0e81=_0xaa0e81-0x0;var _0x171b2e=_0x98a8[_0xaa0e81];return _0x171b2e;};'use strict';var _=require(_0x898a('0x0'));var util=require(_0x898a('0x1'));var moment=require(_0x898a('0x2'));var BPromise=require(_0x898a('0x3'));var rs=require(_0x898a('0x4'));var fs=require('fs');var Redis=require(_0x898a('0x5'));var db=require(_0x898a('0x6'))['db'];var utils=require('../../config/utils');var logger=require(_0x898a('0x7'))(_0x898a('0x8'));var config=require(_0x898a('0x9'));var jayson=require(_0x898a('0xa'));var client=jayson[_0x898a('0xb')]['http']({'port':0x232a});function respondWithRpcPromise(_0x3aadc2,_0x564583,_0xfa8c50){return new BPromise(function(_0x4fbce5,_0x42021d){return client[_0x898a('0xc')](_0x3aadc2,_0xfa8c50)[_0x898a('0xd')](function(_0x96b636){logger[_0x898a('0xe')](_0x898a('0xf'),_0x564583,_0x898a('0x10'));logger[_0x898a('0x11')](_0x898a('0x12'),_0x564583,'request\x20sent',JSON[_0x898a('0x13')](_0x96b636));if(_0x96b636['error']){if(_0x96b636[_0x898a('0x14')]['code']===0x1f4){logger[_0x898a('0x14')](_0x898a('0xf'),_0x564583,_0x96b636[_0x898a('0x14')]['message']);return _0x42021d(_0x96b636['error']['message']);}logger[_0x898a('0x14')](_0x898a('0xf'),_0x564583,_0x96b636[_0x898a('0x14')][_0x898a('0x15')]);return _0x4fbce5(_0x96b636[_0x898a('0x14')][_0x898a('0x15')]);}else{logger['info'](_0x898a('0xf'),_0x564583,'request\x20sent');_0x4fbce5(_0x96b636[_0x898a('0x16')]['message']);}})[_0x898a('0x17')](function(_0x4fb05b){logger[_0x898a('0x14')]('WhatsappApplication,\x20%s,\x20%s',_0x564583,_0x4fb05b);_0x42021d(_0x4fb05b);});});}
\ No newline at end of file
+var _0x4c4e=['result','catch','lodash','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','client','http','request','info','WhatsappApplication,\x20%s,\x20%s','request\x20sent','debug','WhatsappApplication,\x20%s,\x20%s,\x20%s','error','code','message'];(function(_0xc4802a,_0x31cbff){var _0x4f8f56=function(_0x291fe8){while(--_0x291fe8){_0xc4802a['push'](_0xc4802a['shift']());}};_0x4f8f56(++_0x31cbff);}(_0x4c4e,0x152));var _0xe4c4=function(_0xc4e2f2,_0x17dfc3){_0xc4e2f2=_0xc4e2f2-0x0;var _0x52b05c=_0x4c4e[_0xc4e2f2];return _0x52b05c;};'use strict';var _=require(_0xe4c4('0x0'));var util=require('util');var moment=require(_0xe4c4('0x1'));var BPromise=require(_0xe4c4('0x2'));var rs=require(_0xe4c4('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xe4c4('0x4'))['db'];var utils=require(_0xe4c4('0x5'));var logger=require(_0xe4c4('0x6'))('rpc');var config=require(_0xe4c4('0x7'));var jayson=require('jayson/promise');var client=jayson[_0xe4c4('0x8')][_0xe4c4('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x262b64,_0xad105,_0x22085a){return new BPromise(function(_0x329d29,_0x28a42e){return client[_0xe4c4('0xa')](_0x262b64,_0x22085a)['then'](function(_0x589b2e){logger[_0xe4c4('0xb')](_0xe4c4('0xc'),_0xad105,_0xe4c4('0xd'));logger[_0xe4c4('0xe')](_0xe4c4('0xf'),_0xad105,_0xe4c4('0xd'),JSON['stringify'](_0x589b2e));if(_0x589b2e[_0xe4c4('0x10')]){if(_0x589b2e[_0xe4c4('0x10')][_0xe4c4('0x11')]===0x1f4){logger[_0xe4c4('0x10')]('WhatsappApplication,\x20%s,\x20%s',_0xad105,_0x589b2e[_0xe4c4('0x10')][_0xe4c4('0x12')]);return _0x28a42e(_0x589b2e['error'][_0xe4c4('0x12')]);}logger[_0xe4c4('0x10')]('WhatsappApplication,\x20%s,\x20%s',_0xad105,_0x589b2e[_0xe4c4('0x10')][_0xe4c4('0x12')]);return _0x329d29(_0x589b2e['error'][_0xe4c4('0x12')]);}else{logger[_0xe4c4('0xb')](_0xe4c4('0xc'),_0xad105,_0xe4c4('0xd'));_0x329d29(_0x589b2e[_0xe4c4('0x13')][_0xe4c4('0x12')]);}})[_0xe4c4('0x14')](function(_0x1038cb){logger[_0xe4c4('0x10')](_0xe4c4('0xc'),_0xad105,_0x1038cb);_0x28a42e(_0x1038cb);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x27a0=['post','create','/:id/tags','tracked','whatsapp','put','destroy','delete','removeTags','util','path','connect-timeout','express','Router','./whatsappInteraction.controller','get','isAuthenticated','index','/describe','describe','/:id','show','/:id/messages','getMessages','/:id/download','download'];(function(_0x5cb1cb,_0x204275){var _0x269d7c=function(_0x16c92e){while(--_0x16c92e){_0x5cb1cb['push'](_0x5cb1cb['shift']());}};_0x269d7c(++_0x204275);}(_0x27a0,0xbf));var _0x027a=function(_0x5f0b17,_0x1650f3){_0x5f0b17=_0x5f0b17-0x0;var _0x39b099=_0x27a0[_0x5f0b17];return _0x39b099;};'use strict';var multer=require('multer');var util=require(_0x027a('0x0'));var path=require(_0x027a('0x1'));var timeout=require(_0x027a('0x2'));var express=require(_0x027a('0x3'));var router=express[_0x027a('0x4')]();var fs_extra=require('fs-extra');var auth=require('../../components/auth/service');var interaction=require('../../components/interaction/service');var config=require('../../config/environment');var controller=require(_0x027a('0x5'));router[_0x027a('0x6')]('/',auth[_0x027a('0x7')](),controller[_0x027a('0x8')]);router[_0x027a('0x6')](_0x027a('0x9'),auth['isAuthenticated'](),controller[_0x027a('0xa')]);router[_0x027a('0x6')](_0x027a('0xb'),auth['isAuthenticated'](),controller[_0x027a('0xc')]);router[_0x027a('0x6')](_0x027a('0xd'),auth['isAuthenticated'](),controller[_0x027a('0xe')]);router[_0x027a('0x6')](_0x027a('0xf'),auth[_0x027a('0x7')](),controller[_0x027a('0x10')]);router[_0x027a('0x11')]('/',auth[_0x027a('0x7')](),controller[_0x027a('0x12')]);router[_0x027a('0x11')](_0x027a('0xd'),auth[_0x027a('0x7')](),controller['addMessage']);router[_0x027a('0x11')](_0x027a('0x13'),auth[_0x027a('0x7')](),interaction[_0x027a('0x14')](_0x027a('0x15'),'whatsappinteraction:addtags'),controller['addTags']);router[_0x027a('0x16')]('/:id',auth[_0x027a('0x7')](),interaction['tracked'](_0x027a('0x15'),'whatsappinteraction:update'),controller['update']);router['delete'](_0x027a('0xb'),auth[_0x027a('0x7')](),interaction[_0x027a('0x14')](_0x027a('0x15'),'whatsappinteraction:destroy'),controller[_0x027a('0x17')]);router[_0x027a('0x18')]('/:id/tags',auth['isAuthenticated'](),controller[_0x027a('0x19')]);module['exports']=router;
\ No newline at end of file
+var _0x1261=['../../components/auth/service','../../components/interaction/service','../../config/environment','./whatsappInteraction.controller','index','get','isAuthenticated','describe','/:id','/:id/messages','download','create','post','addMessage','/:id/tags','whatsappinteraction:addtags','addTags','put','whatsapp','whatsappinteraction:update','update','whatsappinteraction:destroy','destroy','exports','util','path','connect-timeout','express','Router','fs-extra'];(function(_0x9fd116,_0xf32fcf){var _0x4c0175=function(_0xe0d28){while(--_0xe0d28){_0x9fd116['push'](_0x9fd116['shift']());}};_0x4c0175(++_0xf32fcf);}(_0x1261,0x144));var _0x1126=function(_0x2a94cf,_0x2b970d){_0x2a94cf=_0x2a94cf-0x0;var _0x22147f=_0x1261[_0x2a94cf];return _0x22147f;};'use strict';var multer=require('multer');var util=require(_0x1126('0x0'));var path=require(_0x1126('0x1'));var timeout=require(_0x1126('0x2'));var express=require(_0x1126('0x3'));var router=express[_0x1126('0x4')]();var fs_extra=require(_0x1126('0x5'));var auth=require(_0x1126('0x6'));var interaction=require(_0x1126('0x7'));var config=require(_0x1126('0x8'));var controller=require(_0x1126('0x9'));router['get']('/',auth['isAuthenticated'](),controller[_0x1126('0xa')]);router[_0x1126('0xb')]('/describe',auth[_0x1126('0xc')](),controller[_0x1126('0xd')]);router[_0x1126('0xb')](_0x1126('0xe'),auth[_0x1126('0xc')](),controller['show']);router[_0x1126('0xb')](_0x1126('0xf'),auth[_0x1126('0xc')](),controller['getMessages']);router[_0x1126('0xb')]('/:id/download',auth['isAuthenticated'](),controller[_0x1126('0x10')]);router['post']('/',auth[_0x1126('0xc')](),controller[_0x1126('0x11')]);router[_0x1126('0x12')](_0x1126('0xf'),auth[_0x1126('0xc')](),controller[_0x1126('0x13')]);router[_0x1126('0x12')](_0x1126('0x14'),auth[_0x1126('0xc')](),interaction['tracked']('whatsapp',_0x1126('0x15')),controller[_0x1126('0x16')]);router[_0x1126('0x17')]('/:id',auth[_0x1126('0xc')](),interaction['tracked'](_0x1126('0x18'),_0x1126('0x19')),controller[_0x1126('0x1a')]);router['delete'](_0x1126('0xe'),auth[_0x1126('0xc')](),interaction['tracked']('whatsapp',_0x1126('0x1b')),controller[_0x1126('0x1c')]);router['delete']('/:id/tags',auth[_0x1126('0xc')](),controller['removeTags']);module[_0x1126('0x1d')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x99c9=['DATE','STRING','ENUM','out','sequelize','moment','exports','BOOLEAN'];(function(_0x2d7f0e,_0x3e6fbd){var _0x110b07=function(_0x557b00){while(--_0x557b00){_0x2d7f0e['push'](_0x2d7f0e['shift']());}};_0x110b07(++_0x3e6fbd);}(_0x99c9,0x13c));var _0x999c=function(_0x59ee6f,_0x450239){_0x59ee6f=_0x59ee6f-0x0;var _0x4c0979=_0x99c9[_0x59ee6f];return _0x4c0979;};'use strict';var Sequelize=require(_0x999c('0x0'));var moment=require(_0x999c('0x1'));module[_0x999c('0x2')]={'closed':{'type':Sequelize[_0x999c('0x3')],'defaultValue':![]},'closedAt':{'type':Sequelize[_0x999c('0x4')]},'disposition':{'type':Sequelize[_0x999c('0x5')]},'secondDisposition':{'type':Sequelize[_0x999c('0x5')]},'thirdDisposition':{'type':Sequelize['STRING']},'note':{'type':Sequelize[_0x999c('0x5')]},'phone':{'type':Sequelize[_0x999c('0x5')]},'read1stAt':{'type':Sequelize[_0x999c('0x4')]},'firstMsgDirection':{'type':Sequelize[_0x999c('0x6')]('in',_0x999c('0x7')),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize[_0x999c('0x4')]},'lastMsgDirection':{'type':Sequelize[_0x999c('0x6')]('in',_0x999c('0x7')),'defaultValue':'in','allowNull':![]},'autoreplyExecuted':{'type':Sequelize[_0x999c('0x3')],'defaultValue':![]}};
\ No newline at end of file
+var _0x4279=['BOOLEAN','moment','exports','DATE','STRING','ENUM','out'];(function(_0x333767,_0x3e6f9c){var _0x51661b=function(_0x46e5d6){while(--_0x46e5d6){_0x333767['push'](_0x333767['shift']());}};_0x51661b(++_0x3e6f9c);}(_0x4279,0x8d));var _0x9427=function(_0xa11db,_0x4f61cf){_0xa11db=_0xa11db-0x0;var _0x128005=_0x4279[_0xa11db];return _0x128005;};'use strict';var Sequelize=require('sequelize');var moment=require(_0x9427('0x0'));module[_0x9427('0x1')]={'closed':{'type':Sequelize['BOOLEAN'],'defaultValue':![]},'closedAt':{'type':Sequelize[_0x9427('0x2')]},'disposition':{'type':Sequelize[_0x9427('0x3')]},'secondDisposition':{'type':Sequelize[_0x9427('0x3')]},'thirdDisposition':{'type':Sequelize[_0x9427('0x3')]},'note':{'type':Sequelize['STRING']},'phone':{'type':Sequelize[_0x9427('0x3')]},'read1stAt':{'type':Sequelize['DATE']},'firstMsgDirection':{'type':Sequelize[_0x9427('0x4')]('in',_0x9427('0x5')),'defaultValue':'in','allowNull':![]},'lastMsgAt':{'type':Sequelize['DATE']},'lastMsgDirection':{'type':Sequelize[_0x9427('0x4')]('in',_0x9427('0x5')),'defaultValue':'in','allowNull':![]},'autoreplyExecuted':{'type':Sequelize[_0x9427('0x6')],'defaultValue':![]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x12c9=['WhatsappMessage','ids','omit','getMessages','findOne','$gte','format','YYYY-MM-DD\x20HH:mm:ss','options','include','findAll','rows','addTags','setTags','spread','whatsappInteractionTags:save','removeTags','unix','join','root','server','files','attachments','CmContact','lastName','Attachment','direction','secret','Owner','get','mkdirSync','Whatsapp','N.A.','disposition','basename','existsSync','createReadStream','pipe','createWriteStream','System','firstName','out','renderFile','views','transcript-','.pdf','createPdfFromHTML','log','unlinkSync','eml-format','zip-dir','fast-json-patch','request-promise','mustache','util','sox','to-csv','fs-extra','lodash','squel','desk.js','papaparse','ioredis','../../components/parsers/advancedSearch','../../components/export/pdf','../../config/license/hardware','../../config/logger','../../config/utils','../../mysqldb','redis','defaults','localhost','./whatsappInteraction.socket','register','sendStatus','status','end','offset','undefined','count','limit','set','json','reject','save','update','then','destroy','error','stack','name','send','Users','fullname','split','forEach','push','TagIds','map','fieldName','type','key','keys','filters','intersection','model','query','fields','attributes','length','hasOwnProperty','nolimit','sort','where','pick','select','field','color','from','tools_tags','u.id','u.fullname','ui.WhatsappInteractionId','user_has_whatsapp_interactions','u.id\x20=\x20ui.UserId','left_join','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','users','whatsapp_accounts','whatsapp_interaction_has_tags','it.WhatsappInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','expr','search','parseSearch','sqlOperator','conditions','find','unreadMessages','value','having','`\x20>\x200','Contact','operator','$substring','ContactId','buildExpression','text','Tag','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','start','body','some','compact','isEmpty','WhatsappAccountId','concat','createdAt','parse','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20=\x200','tag','isArray','filter','replace','i.phone\x20LIKE\x20?','MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','i.id','clone','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','order','DESC','i.WhatsappAccountId\x20IS\x20NOT\x20NULL','user','getWhatsappAccounts','i.WhatsappAccountId\x20IS\x20NULL','i.WhatsappAccountId\x20IN\x20?','role','sequelize','toString','keyBy','merge','a.key','Account.key','Account.mandatoryDisposition','CASE\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END','c.firstName','Contact.firstName','c.lastName','Contact.lastName','c.email','c.phone','Contact.phone','c.mobile','Contact.mobile','c.fax','Contact.fax','o.fullname','Owner.fullname','o.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.WhatsappInteractionId\x20IN\x20?','groupBy','WhatsappInteractionId','catch','show','params','WhatsappInteraction','rawAttributes','includeAll','create','describe'];(function(_0x3a24a4,_0x171de0){var _0x349fe5=function(_0x2d4d4d){while(--_0x2d4d4d){_0x3a24a4['push'](_0x3a24a4['shift']());}};_0x349fe5(++_0x171de0);}(_0x12c9,0x10e));var _0x912c=function(_0xbd3c56,_0x17ed58){_0xbd3c56=_0xbd3c56-0x0;var _0x2302bb=_0x12c9[_0xbd3c56];return _0x2302bb;};'use strict';var emlformat=require(_0x912c('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x912c('0x1'));var jsonpatch=require(_0x912c('0x2'));var rp=require(_0x912c('0x3'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0x912c('0x4'));var util=require(_0x912c('0x5'));var path=require('path');var sox=require(_0x912c('0x6'));var csv=require(_0x912c('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x912c('0x8'));var _=require(_0x912c('0x9'));var squel=require(_0x912c('0xa'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x912c('0xb'));var toCsv=require(_0x912c('0x7'));var querystring=require('querystring');var Papa=require(_0x912c('0xc'));var Redis=require(_0x912c('0xd'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0x912c('0xe'));var pdf=require(_0x912c('0xf'));var hardwareService=require(_0x912c('0x10'));var logger=require(_0x912c('0x11'))('api');var utils=require(_0x912c('0x12'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x912c('0x13'))['db'];config[_0x912c('0x14')]=_[_0x912c('0x15')](config[_0x912c('0x14')],{'host':_0x912c('0x16'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x912c('0x14')]));require(_0x912c('0x17'))[_0x912c('0x18')](socket);function respondWithStatusCode(_0xb25437,_0x2f89c7){_0x2f89c7=_0x2f89c7||0xcc;return function(_0x3de535){if(_0x3de535){return _0xb25437[_0x912c('0x19')](_0x2f89c7);}return _0xb25437[_0x912c('0x1a')](_0x2f89c7)[_0x912c('0x1b')]();};}function respondWithResult(_0x54caf3,_0x3c6031){_0x3c6031=_0x3c6031||0xc8;return function(_0x17855b){if(_0x17855b){return _0x54caf3[_0x912c('0x1a')](_0x3c6031)['json'](_0x17855b);}};}function respondWithFilteredResult(_0x2ec379,_0x284684){return function(_0x2c8ab5){if(_0x2c8ab5){var _0x47f2e6=typeof _0x284684[_0x912c('0x1c')]===_0x912c('0x1d')&&typeof _0x284684['limit']===_0x912c('0x1d');var _0x3a94c5=_0x2c8ab5[_0x912c('0x1e')];var _0x27fa01=_0x47f2e6?0x0:_0x284684[_0x912c('0x1c')];var _0xec949e=_0x47f2e6?_0x2c8ab5[_0x912c('0x1e')]:_0x284684[_0x912c('0x1c')]+_0x284684[_0x912c('0x1f')];var _0x566ea6;if(_0xec949e>=_0x3a94c5){_0xec949e=_0x3a94c5;_0x566ea6=0xc8;}else{_0x566ea6=0xce;}_0x2ec379['status'](_0x566ea6);return _0x2ec379[_0x912c('0x20')]('Content-Range',_0x27fa01+'-'+_0xec949e+'/'+_0x3a94c5)[_0x912c('0x21')](_0x2c8ab5);}return null;};}function patchUpdates(_0x421a61){return function(_0x44932f){try{jsonpatch['apply'](_0x44932f,_0x421a61,!![]);}catch(_0x1c6eca){return BPromise[_0x912c('0x22')](_0x1c6eca);}return _0x44932f[_0x912c('0x23')]();};}function saveUpdates(_0x35e1ca,_0x5a916e){return function(_0x28d6d9){if(_0x28d6d9){return _0x28d6d9[_0x912c('0x24')](_0x35e1ca)[_0x912c('0x25')](function(_0x1c70f7){return _0x1c70f7;});}return null;};}function removeEntity(_0x1174e2,_0x216e4d){return function(_0x19d97f){if(_0x19d97f){return _0x19d97f[_0x912c('0x26')]()[_0x912c('0x25')](function(){_0x1174e2[_0x912c('0x1a')](0xcc)[_0x912c('0x1b')]();});}};}function handleEntityNotFound(_0x4b3334,_0x5c5d73){return function(_0x275980){if(!_0x275980){_0x4b3334[_0x912c('0x19')](0x194);}return _0x275980;};}function handleError(_0x1d5e8a,_0x161088){_0x161088=_0x161088||0x1f4;return function(_0x6a68ec){logger[_0x912c('0x27')](_0x6a68ec[_0x912c('0x28')]);if(_0x6a68ec['name']){delete _0x6a68ec[_0x912c('0x29')];}_0x1d5e8a[_0x912c('0x1a')](_0x161088)[_0x912c('0x2a')](_0x6a68ec);};}function getInteractionUsers(_0xbd1f95,_0x50e447){return new BPromise(function(_0x36736d,_0x1e6faf){try{if(_0x50e447[_0xbd1f95['id']]){_0xbd1f95[_0x912c('0x2b')]=_['map'](_0x50e447[_0xbd1f95['id']],function(_0x2f064d){return{'id':_0x2f064d['id'],'fullname':_0x2f064d[_0x912c('0x2c')]};});}}catch(_0xab5957){_0x1e6faf(_0xab5957);}_0x36736d(_0xbd1f95);});}function getInteractionTags(_0x54df3b,_0x3d7d11){return new BPromise(function(_0x2526bd,_0x27b6db){try{if(_0x54df3b['TagIds']){_0x54df3b['Tags']=[];_0x54df3b['TagIds'][_0x912c('0x2d')](',')[_0x912c('0x2e')](function(_0x329c44){_0x54df3b['Tags'][_0x912c('0x2f')](_0x3d7d11[_0x329c44]);});}delete _0x54df3b[_0x912c('0x30')];}catch(_0xac916a){_0x27b6db(_0xac916a);}_0x2526bd(_0x54df3b);});}function updateWhatsappInteraction(_0x2b155e,_0x53ca65,_0x46374e){return new BPromise(function(_0xd9fbdf,_0x4bf9ba){return getInteractionUsers(_0x2b155e,_0x46374e)[_0x912c('0x25')](function(_0x39b17f){return getInteractionTags(_0x39b17f,_0x53ca65);})[_0x912c('0x25')](function(_0x1516e5){_0xd9fbdf(_0x1516e5);})['catch'](function(_0x2a0d11){_0x4bf9ba(_0x2a0d11);});});}exports['index']=function(_0x847647,_0x46007b){var _0x172464={},_0xbca6b4={},_0x1b556={'count':0x0,'rows':[]};var _0x21eac9=_[_0x912c('0x31')](db['WhatsappInteraction']['rawAttributes'],function(_0x1b77d9){return{'name':_0x1b77d9[_0x912c('0x32')],'type':_0x1b77d9[_0x912c('0x33')][_0x912c('0x34')]};});_0xbca6b4['model']=_[_0x912c('0x31')](_0x21eac9,_0x912c('0x29'));_0xbca6b4['query']=_[_0x912c('0x35')](_0x847647['query']);_0xbca6b4[_0x912c('0x36')]=_[_0x912c('0x37')](_0xbca6b4[_0x912c('0x38')],_0xbca6b4[_0x912c('0x39')]);_0x172464['attributes']=_[_0x912c('0x37')](_0xbca6b4[_0x912c('0x38')],qs[_0x912c('0x3a')](_0x847647['query'][_0x912c('0x3a')]));_0x172464[_0x912c('0x3b')]=_0x172464[_0x912c('0x3b')][_0x912c('0x3c')]?_0x172464[_0x912c('0x3b')]:_0xbca6b4[_0x912c('0x38')];if(!_0x847647[_0x912c('0x39')][_0x912c('0x3d')](_0x912c('0x3e'))){_0x172464[_0x912c('0x1f')]=qs[_0x912c('0x1f')](_0x847647['query'][_0x912c('0x1f')]);_0x172464[_0x912c('0x1c')]=qs['offset'](_0x847647[_0x912c('0x39')][_0x912c('0x1c')]);}_0x172464['order']=qs[_0x912c('0x3f')](_0x847647[_0x912c('0x39')][_0x912c('0x3f')]);_0x172464[_0x912c('0x40')]=qs[_0x912c('0x36')](_[_0x912c('0x41')](_0x847647[_0x912c('0x39')],_0xbca6b4['filters']),_0x21eac9);var _0x1f3448=[];var _0x5cfbc8=squel[_0x912c('0x42')]()['field']('id')['field'](_0x912c('0x29'))[_0x912c('0x43')](_0x912c('0x44'))[_0x912c('0x45')](_0x912c('0x46'));var _0xa6939c=squel[_0x912c('0x42')]()['field'](_0x912c('0x47'))[_0x912c('0x43')](_0x912c('0x48'))['field'](_0x912c('0x49'))[_0x912c('0x45')](_0x912c('0x4a'),'ui')['left_join']('users','u',_0x912c('0x4b'));var _0x42482c=squel[_0x912c('0x42')]()[_0x912c('0x45')]('whatsapp_interactions','i')[_0x912c('0x4c')](_0x912c('0x4d'),'c',_0x912c('0x4e'))[_0x912c('0x4c')](_0x912c('0x4f'),'o','o.id\x20=\x20i.UserId')['left_join'](_0x912c('0x50'),'a','a.id\x20=\x20i.WhatsappAccountId')['left_join']('whatsapp_messages','me','me.WhatsappInteractionId\x20=\x20i.id')[_0x912c('0x4c')](_0x912c('0x51'),'it',_0x912c('0x52'))['left_join']('tools_tags','t',_0x912c('0x53'));var _0x1eb4a4=squel[_0x912c('0x54')]();var _0x4ae438=[];var _0x10af3f=squel[_0x912c('0x54')]();var _0x12f114;if(_0x847647[_0x912c('0x39')][_0x912c('0x55')]){_0x12f114=as[_0x912c('0x56')](_0x847647[_0x912c('0x39')][_0x912c('0x55')]);var _0x1623c1=_0x12f114[_0x912c('0x57')];for(var _0x1fe727=0x0;_0x1fe727<_0x12f114[_0x912c('0x58')][_0x912c('0x3c')];_0x1fe727++){var _0x3ed421=_0x12f114[_0x912c('0x58')][_0x1fe727];var _0x19c88b='i';var _0xdd1d2b=_[_0x912c('0x59')](_0x21eac9,[_0x912c('0x29'),_0x3ed421[_0x912c('0x43')]]);if(!_0xdd1d2b){switch(_0x3ed421[_0x912c('0x43')]){case _0x912c('0x5a'):if(_0x3ed421[_0x912c('0x5b')]==0x1){_0x42482c[_0x912c('0x5c')]('`'+_0x3ed421['field']+'`\x20=\x200');}else{_0x42482c[_0x912c('0x5c')]('`'+_0x3ed421[_0x912c('0x43')]+_0x912c('0x5d'));}break;case _0x912c('0x5e'):if(_0x3ed421[_0x912c('0x5f')]===_0x912c('0x60')){if(_0x3ed421['value']['split']('\x20')[_0x912c('0x3c')]>0x1){_0x1eb4a4[_0x1623c1]('MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs['getFullTextValue'](_0x3ed421[_0x912c('0x5b')]),null);}else{var _0xad0440='%'+_0x3ed421['value']+'%';_0x1eb4a4[_0x1623c1]('c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?',_0xad0440,_0xad0440,_0xad0440);}}else{_0xdd1d2b=_['find'](_0x21eac9,[_0x912c('0x29'),_0x912c('0x61')]);_0x3ed421['field']=_0x912c('0x61');_0x26f374=as[_0x912c('0x62')](_0x19c88b,_0xdd1d2b[_0x912c('0x33')],_0x3ed421);_0x1eb4a4[_0x1623c1](_0x26f374[_0x912c('0x63')],_0x26f374[_0x912c('0x5b')]['start'],_0x26f374[_0x912c('0x5b')][_0x912c('0x1b')]);}break;case _0x912c('0x64'):var _0x8a48d1=_0x3ed421['value'][_0x912c('0x2d')](',')['map'](function(_0xb08333){return Number(_0xb08333);});_0x8a48d1['forEach'](function(_0x1aa338){_0x10af3f['or'](_0x912c('0x65'),'%,'+_0x1aa338+',%');});_0x4ae438=_[_0x912c('0x66')](_0x4ae438,_0x8a48d1);break;case _0x912c('0x67'):if(_0x3ed421['operator']===_0x912c('0x60')){_0x1eb4a4[_0x1623c1](_0x912c('0x68'),'%'+_0x3ed421[_0x912c('0x5b')]+'%',null);}else{_0xdd1d2b=_[_0x912c('0x59')](_0x21eac9,[_0x912c('0x29'),_0x912c('0x69')]);_0x3ed421[_0x912c('0x43')]='UserId';_0x26f374=as[_0x912c('0x62')](_0x19c88b,_0xdd1d2b[_0x912c('0x33')],_0x3ed421);_0x1eb4a4[_0x1623c1](_0x26f374[_0x912c('0x63')],_0x26f374['value'][_0x912c('0x6a')],_0x26f374[_0x912c('0x5b')][_0x912c('0x1b')]);}break;case _0x912c('0x6b'):_0x26f374=as[_0x912c('0x62')]('me',null,_0x3ed421);_0x1eb4a4[_0x1623c1](_0x26f374[_0x912c('0x63')],_0x26f374[_0x912c('0x5b')]['start'],_0x26f374[_0x912c('0x5b')][_0x912c('0x1b')]);break;}}else{var _0x26f374=as['buildExpression'](_0x19c88b,_0xdd1d2b['type'],_0x3ed421);_0x1eb4a4[_0x1623c1](_0x26f374[_0x912c('0x63')],_0x26f374[_0x912c('0x5b')][_0x912c('0x6a')],_0x26f374[_0x912c('0x5b')][_0x912c('0x1b')]);}}}else{var _0x121849=_(_0x847647[_0x912c('0x39')])[_0x912c('0x35')]()[_0x912c('0x31')](function(_0xce912e){return _[_0x912c('0x6c')](_0x21eac9,[_0x912c('0x29'),_0xce912e])?_0xce912e:undefined;})[_0x912c('0x6d')]()[_0x912c('0x5b')]();if(!_[_0x912c('0x6e')](_0x121849)){_0x121849[_0x912c('0x2e')](function(_0x4ccf2d){if(_0x4ccf2d===_0x912c('0x6f')){_0x42482c[_0x912c('0x40')]('i.WhatsappAccountId\x20IN\x20?',[][_0x912c('0x70')](_0x847647[_0x912c('0x39')][_0x4ccf2d]));}else if(_0x4ccf2d===_0x912c('0x71')){var _0x3408b=JSON[_0x912c('0x72')](_0x847647[_0x912c('0x39')][_0x4ccf2d])['$gte'];var _0x9f4174=JSON[_0x912c('0x72')](_0x847647[_0x912c('0x39')][_0x4ccf2d])['$lte'];_0x42482c[_0x912c('0x40')]('i.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0x3408b,_0x9f4174);}else{if(_0x847647[_0x912c('0x39')][_0x4ccf2d]==='null'){_0x42482c[_0x912c('0x40')]('i.'+_0x4ccf2d+_0x912c('0x73'));}else{_0x42482c[_0x912c('0x40')]('i.'+_0x4ccf2d+_0x912c('0x74'),_0x847647[_0x912c('0x39')][_0x4ccf2d]);}}});}if(_0x847647['query'][_0x912c('0x75')]){if(_0x847647['query']['read']==0x1){_0x42482c[_0x912c('0x5c')](_0x912c('0x76'));}else{_0x42482c['having']('`unreadMessages`\x20>\x200');}}if(_0x847647[_0x912c('0x39')][_0x912c('0x77')]){_0x4ae438=_[_0x912c('0x78')](_0x847647[_0x912c('0x39')][_0x912c('0x77')])?_0x847647[_0x912c('0x39')][_0x912c('0x77')]:new Array(_0x847647['query'][_0x912c('0x77')]);_0x4ae438[_0x912c('0x2e')](function(_0x4e2b9a){_0x10af3f['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x4e2b9a+',%');});}if(_0x847647[_0x912c('0x39')][_0x912c('0x79')]){var _0x1c28c0=_0x847647['query']['filter']['replace']('\x5c','\x5c\x5c')[_0x912c('0x7a')](/'/g,'\x27\x27');if(qs['isNumeric'](_0x1c28c0)){_0x1eb4a4['or']('i.id\x20LIKE\x20?',_0x1c28c0+'%')['or'](_0x912c('0x7b'),_0x1c28c0+'%');}else{_0x1eb4a4['or'](_0x912c('0x7c'),qs[_0x912c('0x7d')](_0x1c28c0))['or'](_0x912c('0x7e'),_0x1c28c0+'%');}}}_0x42482c[_0x912c('0x40')](_0x1eb4a4);_0x42482c['group'](_0x912c('0x7f'));var _0x5b8703={'type':db['Sequelize']['QueryTypes']['SELECT'],'raw':!![]};var _0x190bbc=_0x42482c[_0x912c('0x80')]();_0x190bbc[_0x912c('0x43')](_0x912c('0x7f'));_0x190bbc[_0x912c('0x43')](_0x912c('0x81'),_0x912c('0x5a'));if(_0x172464[_0x912c('0x82')]){_0x172464['order'][_0x912c('0x2e')](function(_0xe741eb){var _0x239c96=_0xe741eb[0x0]==='contactName'?_0xe741eb[0x0]:'i.'+_0xe741eb[0x0];_0x42482c[_0x912c('0x82')](_0x239c96,_0xe741eb[0x1]===_0x912c('0x83')?![]:!![]);});}if(!_[_0x912c('0x6e')](_0x4ae438)){_0x42482c[_0x912c('0x5c')](_0x10af3f);_0x190bbc['where']('t.id\x20IN\x20?',_0x4ae438);}BPromise['resolve']()['then'](function(){if(!_0x12f114){if(_0x847647['query'][_0x912c('0x6f')])return;_0x190bbc['where'](_0x912c('0x84'));_0x42482c[_0x912c('0x40')](_0x912c('0x84'));return;}if(_0x847647[_0x912c('0x85')]['role']!=='agent')return;return _0x847647['user'][_0x912c('0x86')]({'attributes':['id'],'raw':!![]})[_0x912c('0x25')](function(_0x4415ba){if(_[_0x912c('0x6e')](_0x4415ba)){_0x190bbc[_0x912c('0x40')](_0x912c('0x87'));_0x42482c[_0x912c('0x40')](_0x912c('0x87'));}else{_0x190bbc[_0x912c('0x40')](_0x912c('0x88'),_[_0x912c('0x31')](_0x4415ba,'id'));_0x42482c[_0x912c('0x40')](_0x912c('0x88'),_['map'](_0x4415ba,'id'));}});})['then'](function(){if(_0x847647[_0x912c('0x85')][_0x912c('0x89')]==='agent'&&!_0x12f114&&!_0x847647[_0x912c('0x39')][_0x912c('0x6f')])return[];return db[_0x912c('0x8a')][_0x912c('0x39')](_0x190bbc[_0x912c('0x8b')](),_0x5b8703);})[_0x912c('0x25')](function(_0x144867){_0x1b556[_0x912c('0x1e')]=_0x144867['length'];if(_0x1b556['count']===0x0)return[];return db[_0x912c('0x8a')][_0x912c('0x39')](_0x5cfbc8[_0x912c('0x8b')](),_0x5b8703)[_0x912c('0x25')](function(_0x38b819){_0x1f3448=_[_0x912c('0x8c')](_0x38b819,'id');_0x5b8703=_[_0x912c('0x8d')](_0x5b8703,{'model':db['WhatsappInteraction'],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x847647['query']['fields']){_0x172464[_0x912c('0x3b')][_0x912c('0x2e')](function(_0x1027c1){_0x42482c[_0x912c('0x43')]('i.'+_0x1027c1);});}else{_0x42482c['field'](_0x912c('0x81'),_0x912c('0x5a'));_0x42482c[_0x912c('0x43')](_0x912c('0x8e'),_0x912c('0x8f'));_0x42482c[_0x912c('0x43')]('a.mandatoryDisposition',_0x912c('0x90'));_0x42482c[_0x912c('0x43')](_0x912c('0x91'),'contactName');_0x42482c[_0x912c('0x43')]('i.*');_0x42482c[_0x912c('0x43')](_0x912c('0x92'),_0x912c('0x93'));_0x42482c['field'](_0x912c('0x94'),_0x912c('0x95'));_0x42482c['field'](_0x912c('0x96'),'Contact.email');_0x42482c['field'](_0x912c('0x97'),_0x912c('0x98'));_0x42482c['field'](_0x912c('0x99'),_0x912c('0x9a'));_0x42482c['field'](_0x912c('0x9b'),_0x912c('0x9c'));_0x42482c[_0x912c('0x43')](_0x912c('0x9d'),_0x912c('0x9e'));_0x42482c[_0x912c('0x43')](_0x912c('0x9f'),'Owner.internal');_0x42482c[_0x912c('0x43')](_0x912c('0xa0'),_0x912c('0x30'));}if(_0x172464['limit'])_0x42482c[_0x912c('0x1f')](_0x172464[_0x912c('0x1f')]);if(_0x172464[_0x912c('0x1c')])_0x42482c[_0x912c('0x1c')](_0x172464[_0x912c('0x1c')]);return db[_0x912c('0x8a')][_0x912c('0x39')](_0x42482c[_0x912c('0x8b')](),_0x5b8703);})[_0x912c('0x25')](function(_0x341e68){if(_0x341e68['length']>0x0)_0xa6939c[_0x912c('0x40')](_0x912c('0xa1'),_['map'](_0x341e68,'id'));return db[_0x912c('0x8a')][_0x912c('0x39')](_0xa6939c[_0x912c('0x8b')](),_0x5b8703)[_0x912c('0x25')](function(_0x10becc){var _0x10617c=_[_0x912c('0xa2')](_0x10becc,_0x912c('0xa3'));var _0x3cd10b=[];_0x341e68[_0x912c('0x2e')](function(_0x12fb71){_0x3cd10b[_0x912c('0x2f')](updateWhatsappInteraction(_0x12fb71,_0x1f3448,_0x10617c));});return BPromise['all'](_0x3cd10b);});});})[_0x912c('0x25')](function(_0x561f9f){_0x1b556['rows']=_0x561f9f;return _0x1b556;})['then'](respondWithFilteredResult(_0x46007b,_0x172464))[_0x912c('0xa4')](handleError(_0x46007b,null));};exports[_0x912c('0xa5')]=function(_0xcf2c3c,_0x5a7dc1){var _0x5433ae={'raw':![],'where':{'id':_0xcf2c3c[_0x912c('0xa6')]['id']}},_0x1959aa={};_0x1959aa[_0x912c('0x38')]=_[_0x912c('0x35')](db[_0x912c('0xa7')][_0x912c('0xa8')]);_0x1959aa[_0x912c('0x39')]=_[_0x912c('0x35')](_0xcf2c3c[_0x912c('0x39')]);_0x1959aa[_0x912c('0x36')]=_[_0x912c('0x37')](_0x1959aa[_0x912c('0x38')],_0x1959aa[_0x912c('0x39')]);_0x5433ae['attributes']=_['intersection'](_0x1959aa[_0x912c('0x38')],qs[_0x912c('0x3a')](_0xcf2c3c[_0x912c('0x39')]['fields']));_0x5433ae['attributes']=_0x5433ae[_0x912c('0x3b')][_0x912c('0x3c')]?_0x5433ae[_0x912c('0x3b')]:_0x1959aa[_0x912c('0x38')];if(_0xcf2c3c[_0x912c('0x39')][_0x912c('0xa9')]){_0x5433ae['include']=[{'all':!![]}];}_0x5433ae=_[_0x912c('0x8d')]({},_0x5433ae,_0xcf2c3c['options']);return db[_0x912c('0xa7')][_0x912c('0x59')](_0x5433ae)[_0x912c('0x25')](handleEntityNotFound(_0x5a7dc1,null))[_0x912c('0x25')](respondWithResult(_0x5a7dc1,null))[_0x912c('0xa4')](handleError(_0x5a7dc1,null));};exports[_0x912c('0xaa')]=function(_0x29a259,_0x2d2ab4){return db['WhatsappInteraction']['create'](_0x29a259[_0x912c('0x6b')],{})['then'](respondWithResult(_0x2d2ab4,0xc9))[_0x912c('0xa4')](handleError(_0x2d2ab4,null));};exports[_0x912c('0x24')]=function(_0x5f4587,_0x4ce037){if(_0x5f4587[_0x912c('0x6b')]['id']){delete _0x5f4587[_0x912c('0x6b')]['id'];}return db[_0x912c('0xa7')]['find']({'where':{'id':_0x5f4587[_0x912c('0xa6')]['id']}})['then'](handleEntityNotFound(_0x4ce037,null))[_0x912c('0x25')](saveUpdates(_0x5f4587[_0x912c('0x6b')],null))['then'](respondWithResult(_0x4ce037,null))[_0x912c('0xa4')](handleError(_0x4ce037,null));};exports['destroy']=function(_0x33e01b,_0x39cb8c){return db[_0x912c('0xa7')][_0x912c('0x59')]({'where':{'id':_0x33e01b[_0x912c('0xa6')]['id']}})[_0x912c('0x25')](handleEntityNotFound(_0x39cb8c,null))['then'](removeEntity(_0x39cb8c,null))['catch'](handleError(_0x39cb8c,null));};exports[_0x912c('0xab')]=function(_0x5722e2,_0x34c106){return db[_0x912c('0xa7')][_0x912c('0xab')]()['then'](respondWithResult(_0x34c106,null))['catch'](handleError(_0x34c106,null));};exports['addMessage']=function(_0x4cb105,_0x3b1612,_0x14fe45){return db[_0x912c('0xac')][_0x912c('0x59')]({'where':{'id':_0x4cb105[_0x912c('0xa6')]['id']}})[_0x912c('0x25')](handleEntityNotFound(_0x3b1612,null))['then'](function(_0x373000){if(_0x373000){return _0x373000['addMessage'](_0x4cb105[_0x912c('0x6b')][_0x912c('0xad')],_[_0x912c('0xae')](_0x4cb105['body'],['ids','id'])||{});}})[_0x912c('0x25')](respondWithResult(_0x3b1612,null))[_0x912c('0xa4')](handleError(_0x3b1612,null));};exports[_0x912c('0xaf')]=function(_0x19d479,_0x4d4491,_0x58f340){var _0x4fa31e={'raw':![],'where':{}};var _0x5b81c5={};var _0x5e9b66={'count':0x0,'rows':[]};return db[_0x912c('0xa7')][_0x912c('0xb0')]({'where':{'id':_0x19d479['params']['id']}})[_0x912c('0x25')](handleEntityNotFound(_0x4d4491,null))[_0x912c('0x25')](function(_0x1ba5a3){if(_0x1ba5a3){_0x5b81c5[_0x912c('0x38')]=_[_0x912c('0x35')](db[_0x912c('0xac')][_0x912c('0xa8')]);_0x5b81c5['query']=_[_0x912c('0x35')](_0x19d479['query']);_0x5b81c5['filters']=_['intersection'](_0x5b81c5['model'],_0x5b81c5[_0x912c('0x39')]);_0x4fa31e[_0x912c('0x3b')]=_['intersection'](_0x5b81c5[_0x912c('0x38')],qs[_0x912c('0x3a')](_0x19d479[_0x912c('0x39')]['fields']));_0x4fa31e[_0x912c('0x3b')]=_0x4fa31e[_0x912c('0x3b')][_0x912c('0x3c')]?_0x4fa31e[_0x912c('0x3b')]:_0x5b81c5[_0x912c('0x38')];if(!_0x19d479[_0x912c('0x39')][_0x912c('0x3d')](_0x912c('0x3e'))){_0x4fa31e[_0x912c('0x1f')]=qs[_0x912c('0x1f')](_0x19d479[_0x912c('0x39')][_0x912c('0x1f')]);_0x4fa31e['offset']=qs[_0x912c('0x1c')](_0x19d479[_0x912c('0x39')][_0x912c('0x1c')]);}_0x4fa31e['order']=qs[_0x912c('0x3f')](_0x19d479[_0x912c('0x39')][_0x912c('0x3f')]);_0x4fa31e[_0x912c('0x40')]=qs[_0x912c('0x36')](_['pick'](_0x19d479[_0x912c('0x39')],_0x5b81c5['filters']));_0x4fa31e['where'][_0x912c('0xa3')]=_0x1ba5a3['id'];if(_0x19d479[_0x912c('0x39')]['filter']){_0x4fa31e[_0x912c('0x40')]=_['merge'](_0x4fa31e['where'],{'$or':_['map'](_0x4fa31e['attributes'],function(_0xdcd29d){var _0xa45cb7={};_0xa45cb7[_0xdcd29d]={'$like':'%'+_0x19d479[_0x912c('0x39')][_0x912c('0x79')]+'%'};return _0xa45cb7;})});}if(_0x19d479[_0x912c('0x39')][_0x912c('0xb1')]){var _0x4e3c0a=_0x19d479[_0x912c('0x39')]['$gte'][_0x912c('0x2d')](',');var _0x5da9a4={};_0x5da9a4[_0x4e3c0a[0x0]]={'$gte':moment(_0x4e3c0a[0x1])[_0x912c('0xb2')](_0x912c('0xb3'))};_0x4fa31e[_0x912c('0x40')]=_[_0x912c('0x8d')](_0x4fa31e[_0x912c('0x40')],_0x5da9a4);}_0x4fa31e=_[_0x912c('0x8d')]({},_0x4fa31e,_0x19d479[_0x912c('0xb4')]);return db[_0x912c('0xac')][_0x912c('0x1e')]({'where':_0x4fa31e[_0x912c('0x40')]})[_0x912c('0x25')](function(_0x7fe862){_0x5e9b66['count']=_0x7fe862;if(_0x19d479[_0x912c('0x39')]['includeAll']){_0x4fa31e[_0x912c('0xb5')]=[{'all':!![]}];}return db[_0x912c('0xac')][_0x912c('0xb6')](_0x4fa31e);})[_0x912c('0x25')](function(_0x4df6e9){_0x5e9b66[_0x912c('0xb7')]=_0x4df6e9;return _0x5e9b66;});}})[_0x912c('0x25')](respondWithFilteredResult(_0x4d4491,_0x4fa31e))[_0x912c('0xa4')](handleError(_0x4d4491,null));};exports[_0x912c('0xb8')]=function(_0x30f5f0,_0x5b59b0,_0x482c7b){return db[_0x912c('0xa7')][_0x912c('0x59')]({'where':{'id':_0x30f5f0[_0x912c('0xa6')]['id']}})['then'](handleEntityNotFound(_0x5b59b0,null))[_0x912c('0x25')](function(_0x5ebe7a){if(_0x5ebe7a){return _0x5ebe7a[_0x912c('0xb9')](_0x30f5f0['body']['ids'],_[_0x912c('0xae')](_0x30f5f0[_0x912c('0x6b')],[_0x912c('0xad'),'id'])||{})[_0x912c('0xba')](function(){return db[_0x912c('0x64')][_0x912c('0xb6')]({'attributes':['id',_0x912c('0x29'),_0x912c('0x44')],'where':{'id':_0x30f5f0[_0x912c('0x6b')][_0x912c('0xad')]}});})[_0x912c('0x25')](function(_0x5a3e7e){socket['emit'](_0x912c('0xbb'),{'id':Number(_0x30f5f0['params']['id']),'tags':_0x5a3e7e||[]});return{'id':Number(_0x30f5f0[_0x912c('0xa6')]['id']),'tags':_0x5a3e7e||[]};});}})[_0x912c('0x25')](respondWithResult(_0x5b59b0,null))['catch'](handleError(_0x5b59b0,null));};exports[_0x912c('0xbc')]=function(_0x3aad1d,_0x24d114,_0xa875d8){return db['WhatsappInteraction']['find']({'where':{'id':_0x3aad1d[_0x912c('0xa6')]['id']}})[_0x912c('0x25')](handleEntityNotFound(_0x24d114,null))[_0x912c('0x25')](function(_0x46dd3c){if(_0x46dd3c){return _0x46dd3c[_0x912c('0xbc')](_0x3aad1d[_0x912c('0x39')][_0x912c('0xad')]);}})[_0x912c('0x25')](respondWithStatusCode(_0x24d114,null))['catch'](handleError(_0x24d114,null));};exports['download']=function(_0x3a937d,_0x41d0c6){var _0x43fe0e=moment()[_0x912c('0xbd')]()[_0x912c('0x8b')]();var _0x4438de=path[_0x912c('0xbe')](config[_0x912c('0xbf')],_0x912c('0xc0'),_0x912c('0xc1'),'tmp');var _0x1ca6b3=path['join'](config[_0x912c('0xbf')],_0x912c('0xc0'),_0x912c('0xc1'),_0x912c('0xc2'));var _0x38c49c=path[_0x912c('0xbe')](_0x4438de,_0x43fe0e);var _0x1e1cee=util['format']('transcript-%d-%s.zip',_0x3a937d[_0x912c('0xa6')]['id'],_0x43fe0e);var _0x5131e4=path['join'](_0x4438de,_0x1e1cee);var _0x3131b6=[];_0x3131b6[_0x912c('0x2f')]({'model':db[_0x912c('0x67')],'as':_0x912c('0x67'),'attributes':['id',_0x912c('0x2c')],'raw':!![]});_0x3131b6[_0x912c('0x2f')]({'model':db[_0x912c('0xc3')],'as':_0x912c('0x5e'),'attributes':['id','firstName',_0x912c('0xc4')],'raw':!![]});if(_0x3a937d[_0x912c('0x39')][_0x912c('0xc2')]){_0x3131b6[_0x912c('0x2f')]({'model':db[_0x912c('0xc5')],'as':'Attachment','raw':!![]});}var _0x363541=[{'model':db['WhatsappMessage'],'as':'Messages','attributes':['id',_0x912c('0x6b'),_0x912c('0x71'),_0x912c('0xc6'),_0x912c('0xc7'),_0x912c('0x75')],'include':_0x3131b6}];_0x363541[_0x912c('0x2f')]({'model':db['WhatsappAccount'],'as':'Account','attributes':['id','name']});_0x363541[_0x912c('0x2f')]({'model':db[_0x912c('0x67')],'as':_0x912c('0xc8'),'attributes':['id','fullname']});return db[_0x912c('0xa7')][_0x912c('0x59')]({'where':{'id':_0x3a937d['params']['id']},'include':_0x363541})[_0x912c('0x25')](handleEntityNotFound(_0x41d0c6,null))[_0x912c('0x25')](function(_0x49e8d2){if(_0x49e8d2){var _0x4dacef=_0x49e8d2[_0x912c('0xc9')]({'plain':!![]});fs[_0x912c('0xca')](_0x38c49c);var _0x394f1d={'channel':_0x912c('0xcb'),'account':_0x4dacef['Account']['name'],'agent':_0x4dacef[_0x912c('0xc8')]?_0x4dacef['Owner'][_0x912c('0x2c')]:_0x912c('0xcc'),'createdAt':moment(_0x4dacef[_0x912c('0x71')])[_0x912c('0xb2')](_0x912c('0xb3'))[_0x912c('0x8b')](),'closedAt':_0x4dacef['closed']?moment(_0x4dacef['closedAt'])['format'](_0x912c('0xb3'))['toString']():'','disposition':_0x4dacef[_0x912c('0xcd')],'messages':_(_0x4dacef['Messages'])[_0x912c('0x79')]({'secret':![]})[_0x912c('0x31')](function(_0x506f84){if(_0x506f84[_0x912c('0xc5')]){var _0x20dbe2=path[_0x912c('0xbe')](_0x1ca6b3,_0x506f84[_0x912c('0xc5')][_0x912c('0xce')]);if(fs[_0x912c('0xcf')](_0x20dbe2)){fs[_0x912c('0xd0')](_0x20dbe2)[_0x912c('0xd1')](fs[_0x912c('0xd2')](path[_0x912c('0xbe')](_0x38c49c,_0x506f84[_0x912c('0xc5')][_0x912c('0xce')])));}}return{'date':moment(_0x506f84['createdAt'])[_0x912c('0xb2')](_0x912c('0xb3'))['toString'](),'sender':_0x506f84[_0x912c('0xc6')]==='out'?_0x506f84[_0x912c('0x67')]?_0x506f84['User']['fullname']:_0x912c('0xd3'):_0x506f84['Contact'][_0x912c('0xd4')]+(_0x506f84[_0x912c('0x5e')][_0x912c('0xc4')]?'\x20'+_0x506f84['Contact'][_0x912c('0xc4')]:''),'body':_0x506f84['Attachment']?_0x506f84[_0x912c('0xc5')][_0x912c('0xce')]:_0x506f84['body'],'direction':_0x506f84['direction']===_0x912c('0xd5')?'A':'C','secret':_0x506f84[_0x912c('0xc7')],'read':_0x506f84[_0x912c('0x75')],'attachment':_0x506f84[_0x912c('0xc5')]};})[_0x912c('0x5b')]()};return ejs[_0x912c('0xd6')](path[_0x912c('0xbe')](config['root'],'server',_0x912c('0xd7'),'downloadInteraction.ejs'),{'interaction':_0x394f1d})[_0x912c('0x25')](function(_0x4ede7f){var _0x51e630=path[_0x912c('0xbe')](_0x38c49c,_0x912c('0xd8')+_0x4dacef['id']+'-'+_0x43fe0e+_0x912c('0xd9'));var _0x37adf7={'path':_0x51e630,'channel':_0x912c('0xcb'),'interactionId':_0x4dacef['id']};return pdf[_0x912c('0xda')](_0x4ede7f,_0x37adf7);})[_0x912c('0x25')](function(){return new BPromise(function(_0x56fbe6,_0x4cda5e){zipdir(_0x38c49c,{'saveTo':_0x5131e4},function(_0x4b6248,_0x1ef11a){if(_0x4b6248)return _0x4cda5e(_0x4b6248);return _0x56fbe6(_0x1ef11a);});})[_0x912c('0x25')](function(){return new BPromise(function(_0x3de01e,_0x46f75b){rimraf(_0x38c49c,function(_0x2e18b1){if(_0x2e18b1)_0x46f75b(_0x2e18b1);return _0x3de01e();});});})[_0x912c('0x25')](function(){return _0x41d0c6['download'](_0x5131e4,_0x1e1cee,function(_0x1e2d1a){if(_0x1e2d1a){console[_0x912c('0xdb')]('err',_0x1e2d1a);}else{fs[_0x912c('0xdc')](_0x5131e4);}});});});}else{return _0x41d0c6[_0x912c('0x19')](0xc8);}})[_0x912c('0xa4')](handleError(_0x41d0c6,null));};
\ No newline at end of file
+var _0x1ef8=['../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./whatsappInteraction.socket','sendStatus','status','end','json','limit','undefined','count','offset','Content-Range','apply','reject','update','then','stack','name','send','Users','map','fullname','TagIds','split','forEach','Tags','catch','index','WhatsappInteraction','rawAttributes','fieldName','type','key','model','query','keys','intersection','fields','attributes','hasOwnProperty','order','sort','where','filters','field','color','from','select','u.id','ui.WhatsappInteractionId','user_has_whatsapp_interactions','left_join','users','u.id\x20=\x20ui.UserId','whatsapp_interactions','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','o.id\x20=\x20i.UserId','a.id\x20=\x20i.WhatsappAccountId','whatsapp_messages','me.WhatsappInteractionId\x20=\x20i.id','whatsapp_interaction_has_tags','it.WhatsappInteractionId\x20=\x20i.id','expr','search','parseSearch','sqlOperator','conditions','length','find','unreadMessages','value','having','`\x20=\x200','`\x20>\x200','Contact','operator','$substring','getFullTextValue','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId','text','start','User','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','buildExpression','body','some','compact','isEmpty','WhatsappAccountId','i.WhatsappAccountId\x20IN\x20?','concat','createdAt','parse','$gte','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','tag','isArray','filter','replace','isNumeric','i.phone\x20LIKE\x20?','MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','group','i.id','SELECT','clone','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','contactName','t.id\x20IN\x20?','i.WhatsappAccountId\x20IS\x20NOT\x20NULL','user','role','agent','getWhatsappAccounts','i.WhatsappAccountId\x20IS\x20NULL','sequelize','toString','merge','a.key','Account.key','a.mandatoryDisposition','Account.mandatoryDisposition','CASE\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END','i.*','Contact.firstName','c.lastName','Contact.email','c.phone','Contact.phone','Contact.mobile','c.fax','Contact.fax','o.fullname','GROUP_CONCAT(DISTINCT\x20t.id)','ui.WhatsappInteractionId\x20IN\x20?','groupBy','WhatsappInteractionId','push','rows','show','params','includeAll','include','create','destroy','describe','addMessage','ids','omit','getMessages','findOne','WhatsappMessage','pick','YYYY-MM-DD\x20HH:mm:ss','findAll','addTags','setTags','Tag','emit','whatsappInteractionTags:save','removeTags','download','unix','root','files','tmp','attachments','join','format','transcript-%d-%s.zip','CmContact','lastName','Attachment','Messages','direction','secret','WhatsappAccount','Account','Owner','get','mkdirSync','Whatsapp','N.A.','closed','closedAt','disposition','createReadStream','pipe','basename','out','server','views','downloadInteraction.ejs','.pdf','createPdfFromHTML','log','unlinkSync','eml-format','moment','bluebird','mustache','util','path','fs-extra','lodash','squel','crypto','desk.js','to-csv','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils'];(function(_0x2be1c7,_0x17dfdf){var _0xcc8a9c=function(_0x9c1c9){while(--_0x9c1c9){_0x2be1c7['push'](_0x2be1c7['shift']());}};_0xcc8a9c(++_0x17dfdf);}(_0x1ef8,0xd5));var _0x81ef=function(_0x51e0c9,_0x4f3427){_0x51e0c9=_0x51e0c9-0x0;var _0x348e80=_0x1ef8[_0x51e0c9];return _0x348e80;};'use strict';var emlformat=require(_0x81ef('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x81ef('0x1'));var BPromise=require(_0x81ef('0x2'));var Mustache=require(_0x81ef('0x3'));var util=require(_0x81ef('0x4'));var path=require(_0x81ef('0x5'));var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x81ef('0x6'));var _=require(_0x81ef('0x7'));var squel=require(_0x81ef('0x8'));var crypto=require(_0x81ef('0x9'));var jsforce=require('jsforce');var deskjs=require(_0x81ef('0xa'));var toCsv=require(_0x81ef('0xb'));var querystring=require(_0x81ef('0xc'));var Papa=require(_0x81ef('0xd'));var Redis=require(_0x81ef('0xe'));var authService=require('../../components/auth/service');var qs=require(_0x81ef('0xf'));var as=require(_0x81ef('0x10'));var pdf=require('../../components/export/pdf');var hardwareService=require(_0x81ef('0x11'));var logger=require(_0x81ef('0x12'))(_0x81ef('0x13'));var utils=require(_0x81ef('0x14'));var config=require(_0x81ef('0x15'));var licenseUtil=require(_0x81ef('0x16'));var db=require(_0x81ef('0x17'))['db'];config[_0x81ef('0x18')]=_[_0x81ef('0x19')](config[_0x81ef('0x18')],{'host':_0x81ef('0x1a'),'port':0x18eb});var socket=require(_0x81ef('0x1b'))(new Redis(config[_0x81ef('0x18')]));require(_0x81ef('0x1c'))['register'](socket);function respondWithStatusCode(_0x454b84,_0x84b6e3){_0x84b6e3=_0x84b6e3||0xcc;return function(_0x26f0e1){if(_0x26f0e1){return _0x454b84[_0x81ef('0x1d')](_0x84b6e3);}return _0x454b84[_0x81ef('0x1e')](_0x84b6e3)[_0x81ef('0x1f')]();};}function respondWithResult(_0x144929,_0x416095){_0x416095=_0x416095||0xc8;return function(_0xd1a94b){if(_0xd1a94b){return _0x144929['status'](_0x416095)[_0x81ef('0x20')](_0xd1a94b);}};}function respondWithFilteredResult(_0x544781,_0x5edc22){return function(_0x3bd3eb){if(_0x3bd3eb){var _0x285412=typeof _0x5edc22['offset']==='undefined'&&typeof _0x5edc22[_0x81ef('0x21')]===_0x81ef('0x22');var _0x23fe66=_0x3bd3eb[_0x81ef('0x23')];var _0x3085ba=_0x285412?0x0:_0x5edc22[_0x81ef('0x24')];var _0x281911=_0x285412?_0x3bd3eb[_0x81ef('0x23')]:_0x5edc22[_0x81ef('0x24')]+_0x5edc22[_0x81ef('0x21')];var _0x219e27;if(_0x281911>=_0x23fe66){_0x281911=_0x23fe66;_0x219e27=0xc8;}else{_0x219e27=0xce;}_0x544781['status'](_0x219e27);return _0x544781['set'](_0x81ef('0x25'),_0x3085ba+'-'+_0x281911+'/'+_0x23fe66)[_0x81ef('0x20')](_0x3bd3eb);}return null;};}function patchUpdates(_0x511341){return function(_0x3ad6ac){try{jsonpatch[_0x81ef('0x26')](_0x3ad6ac,_0x511341,!![]);}catch(_0x39c8f3){return BPromise[_0x81ef('0x27')](_0x39c8f3);}return _0x3ad6ac['save']();};}function saveUpdates(_0x37596b,_0x481683){return function(_0x381396){if(_0x381396){return _0x381396[_0x81ef('0x28')](_0x37596b)[_0x81ef('0x29')](function(_0x4486e6){return _0x4486e6;});}return null;};}function removeEntity(_0x40aded,_0x435add){return function(_0x274f27){if(_0x274f27){return _0x274f27['destroy']()[_0x81ef('0x29')](function(){_0x40aded['status'](0xcc)[_0x81ef('0x1f')]();});}};}function handleEntityNotFound(_0x357cdf,_0x5ac99f){return function(_0x137e93){if(!_0x137e93){_0x357cdf[_0x81ef('0x1d')](0x194);}return _0x137e93;};}function handleError(_0x22c4a6,_0x4ae554){_0x4ae554=_0x4ae554||0x1f4;return function(_0x407bc3){logger['error'](_0x407bc3[_0x81ef('0x2a')]);if(_0x407bc3[_0x81ef('0x2b')]){delete _0x407bc3[_0x81ef('0x2b')];}_0x22c4a6[_0x81ef('0x1e')](_0x4ae554)[_0x81ef('0x2c')](_0x407bc3);};}function getInteractionUsers(_0x31bed8,_0x232f25){return new BPromise(function(_0x3bb157,_0x2bcf44){try{if(_0x232f25[_0x31bed8['id']]){_0x31bed8[_0x81ef('0x2d')]=_[_0x81ef('0x2e')](_0x232f25[_0x31bed8['id']],function(_0x1d089b){return{'id':_0x1d089b['id'],'fullname':_0x1d089b[_0x81ef('0x2f')]};});}}catch(_0x10f66b){_0x2bcf44(_0x10f66b);}_0x3bb157(_0x31bed8);});}function getInteractionTags(_0x8eb5d1,_0xcd7e19){return new BPromise(function(_0x1bc087,_0x36dd32){try{if(_0x8eb5d1[_0x81ef('0x30')]){_0x8eb5d1['Tags']=[];_0x8eb5d1[_0x81ef('0x30')][_0x81ef('0x31')](',')[_0x81ef('0x32')](function(_0xd45a7c){_0x8eb5d1[_0x81ef('0x33')]['push'](_0xcd7e19[_0xd45a7c]);});}delete _0x8eb5d1['TagIds'];}catch(_0x5876de){_0x36dd32(_0x5876de);}_0x1bc087(_0x8eb5d1);});}function updateWhatsappInteraction(_0x78aa16,_0x760f0a,_0x48e029){return new BPromise(function(_0x2f82c3,_0x2fca64){return getInteractionUsers(_0x78aa16,_0x48e029)['then'](function(_0x94c904){return getInteractionTags(_0x94c904,_0x760f0a);})[_0x81ef('0x29')](function(_0x35cd71){_0x2f82c3(_0x35cd71);})[_0x81ef('0x34')](function(_0x26391d){_0x2fca64(_0x26391d);});});}exports[_0x81ef('0x35')]=function(_0x5787e5,_0x3462a3){var _0x51373f={},_0x2a19a6={},_0x135fd0={'count':0x0,'rows':[]};var _0x2ccce6=_['map'](db[_0x81ef('0x36')][_0x81ef('0x37')],function(_0x21e61b){return{'name':_0x21e61b[_0x81ef('0x38')],'type':_0x21e61b[_0x81ef('0x39')][_0x81ef('0x3a')]};});_0x2a19a6[_0x81ef('0x3b')]=_[_0x81ef('0x2e')](_0x2ccce6,_0x81ef('0x2b'));_0x2a19a6[_0x81ef('0x3c')]=_[_0x81ef('0x3d')](_0x5787e5[_0x81ef('0x3c')]);_0x2a19a6['filters']=_[_0x81ef('0x3e')](_0x2a19a6[_0x81ef('0x3b')],_0x2a19a6['query']);_0x51373f['attributes']=_[_0x81ef('0x3e')](_0x2a19a6[_0x81ef('0x3b')],qs[_0x81ef('0x3f')](_0x5787e5[_0x81ef('0x3c')][_0x81ef('0x3f')]));_0x51373f[_0x81ef('0x40')]=_0x51373f[_0x81ef('0x40')]['length']?_0x51373f[_0x81ef('0x40')]:_0x2a19a6[_0x81ef('0x3b')];if(!_0x5787e5['query'][_0x81ef('0x41')]('nolimit')){_0x51373f[_0x81ef('0x21')]=qs[_0x81ef('0x21')](_0x5787e5[_0x81ef('0x3c')][_0x81ef('0x21')]);_0x51373f[_0x81ef('0x24')]=qs[_0x81ef('0x24')](_0x5787e5[_0x81ef('0x3c')]['offset']);}_0x51373f[_0x81ef('0x42')]=qs[_0x81ef('0x43')](_0x5787e5[_0x81ef('0x3c')][_0x81ef('0x43')]);_0x51373f[_0x81ef('0x44')]=qs[_0x81ef('0x45')](_['pick'](_0x5787e5[_0x81ef('0x3c')],_0x2a19a6['filters']),_0x2ccce6);var _0x2b0d33=[];var _0x235b2d=squel['select']()[_0x81ef('0x46')]('id')[_0x81ef('0x46')](_0x81ef('0x2b'))[_0x81ef('0x46')](_0x81ef('0x47'))[_0x81ef('0x48')]('tools_tags');var _0x287206=squel[_0x81ef('0x49')]()[_0x81ef('0x46')](_0x81ef('0x4a'))['field']('u.fullname')['field'](_0x81ef('0x4b'))[_0x81ef('0x48')](_0x81ef('0x4c'),'ui')[_0x81ef('0x4d')](_0x81ef('0x4e'),'u',_0x81ef('0x4f'));var _0x4d4011=squel[_0x81ef('0x49')]()[_0x81ef('0x48')](_0x81ef('0x50'),'i')['left_join'](_0x81ef('0x51'),'c',_0x81ef('0x52'))[_0x81ef('0x4d')](_0x81ef('0x4e'),'o',_0x81ef('0x53'))[_0x81ef('0x4d')]('whatsapp_accounts','a',_0x81ef('0x54'))['left_join'](_0x81ef('0x55'),'me',_0x81ef('0x56'))[_0x81ef('0x4d')](_0x81ef('0x57'),'it',_0x81ef('0x58'))['left_join']('tools_tags','t','t.id\x20=\x20it.TagId');var _0x5bd195=squel['expr']();var _0x1cea99=[];var _0x5d4885=squel[_0x81ef('0x59')]();var _0x3c2a6c;if(_0x5787e5['query'][_0x81ef('0x5a')]){_0x3c2a6c=as[_0x81ef('0x5b')](_0x5787e5[_0x81ef('0x3c')]['search']);var _0x5a033a=_0x3c2a6c[_0x81ef('0x5c')];for(var _0x2861b4=0x0;_0x2861b4<_0x3c2a6c[_0x81ef('0x5d')][_0x81ef('0x5e')];_0x2861b4++){var _0x344e11=_0x3c2a6c['conditions'][_0x2861b4];var _0x222a95='i';var _0x43e4e4=_[_0x81ef('0x5f')](_0x2ccce6,['name',_0x344e11[_0x81ef('0x46')]]);if(!_0x43e4e4){switch(_0x344e11[_0x81ef('0x46')]){case _0x81ef('0x60'):if(_0x344e11[_0x81ef('0x61')]==0x1){_0x4d4011[_0x81ef('0x62')]('`'+_0x344e11[_0x81ef('0x46')]+_0x81ef('0x63'));}else{_0x4d4011[_0x81ef('0x62')]('`'+_0x344e11[_0x81ef('0x46')]+_0x81ef('0x64'));}break;case _0x81ef('0x65'):if(_0x344e11[_0x81ef('0x66')]===_0x81ef('0x67')){if(_0x344e11[_0x81ef('0x61')][_0x81ef('0x31')]('\x20')[_0x81ef('0x5e')]>0x1){_0x5bd195[_0x5a033a]('MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0x81ef('0x68')](_0x344e11['value']),null);}else{var _0x213398='%'+_0x344e11['value']+'%';_0x5bd195[_0x5a033a](_0x81ef('0x69'),_0x213398,_0x213398,_0x213398);}}else{_0x43e4e4=_[_0x81ef('0x5f')](_0x2ccce6,[_0x81ef('0x2b'),_0x81ef('0x6a')]);_0x344e11[_0x81ef('0x46')]=_0x81ef('0x6a');_0x3e3590=as['buildExpression'](_0x222a95,_0x43e4e4[_0x81ef('0x39')],_0x344e11);_0x5bd195[_0x5a033a](_0x3e3590[_0x81ef('0x6b')],_0x3e3590['value'][_0x81ef('0x6c')],_0x3e3590[_0x81ef('0x61')][_0x81ef('0x1f')]);}break;case'Tag':var _0x801a5d=_0x344e11[_0x81ef('0x61')][_0x81ef('0x31')](',')[_0x81ef('0x2e')](function(_0x386bc1){return Number(_0x386bc1);});_0x801a5d[_0x81ef('0x32')](function(_0xf13c1d){_0x5d4885['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0xf13c1d+',%');});_0x1cea99=_['union'](_0x1cea99,_0x801a5d);break;case _0x81ef('0x6d'):if(_0x344e11[_0x81ef('0x66')]===_0x81ef('0x67')){_0x5bd195[_0x5a033a](_0x81ef('0x6e'),'%'+_0x344e11[_0x81ef('0x61')]+'%',null);}else{_0x43e4e4=_[_0x81ef('0x5f')](_0x2ccce6,['name','UserId']);_0x344e11[_0x81ef('0x46')]=_0x81ef('0x6f');_0x3e3590=as[_0x81ef('0x70')](_0x222a95,_0x43e4e4[_0x81ef('0x39')],_0x344e11);_0x5bd195[_0x5a033a](_0x3e3590[_0x81ef('0x6b')],_0x3e3590[_0x81ef('0x61')][_0x81ef('0x6c')],_0x3e3590[_0x81ef('0x61')][_0x81ef('0x1f')]);}break;case _0x81ef('0x71'):_0x3e3590=as[_0x81ef('0x70')]('me',null,_0x344e11);_0x5bd195[_0x5a033a](_0x3e3590[_0x81ef('0x6b')],_0x3e3590[_0x81ef('0x61')][_0x81ef('0x6c')],_0x3e3590['value'][_0x81ef('0x1f')]);break;}}else{var _0x3e3590=as[_0x81ef('0x70')](_0x222a95,_0x43e4e4['type'],_0x344e11);_0x5bd195[_0x5a033a](_0x3e3590[_0x81ef('0x6b')],_0x3e3590[_0x81ef('0x61')][_0x81ef('0x6c')],_0x3e3590[_0x81ef('0x61')]['end']);}}}else{var _0x4bb783=_(_0x5787e5[_0x81ef('0x3c')])[_0x81ef('0x3d')]()[_0x81ef('0x2e')](function(_0x5def0b){return _[_0x81ef('0x72')](_0x2ccce6,[_0x81ef('0x2b'),_0x5def0b])?_0x5def0b:undefined;})[_0x81ef('0x73')]()[_0x81ef('0x61')]();if(!_[_0x81ef('0x74')](_0x4bb783)){_0x4bb783[_0x81ef('0x32')](function(_0xcec60e){if(_0xcec60e===_0x81ef('0x75')){_0x4d4011['where'](_0x81ef('0x76'),[][_0x81ef('0x77')](_0x5787e5[_0x81ef('0x3c')][_0xcec60e]));}else if(_0xcec60e===_0x81ef('0x78')){var _0xfe01e1=JSON[_0x81ef('0x79')](_0x5787e5[_0x81ef('0x3c')][_0xcec60e])[_0x81ef('0x7a')];var _0xfc3eba=JSON[_0x81ef('0x79')](_0x5787e5['query'][_0xcec60e])[_0x81ef('0x7b')];_0x4d4011['where'](_0x81ef('0x7c'),_0xfe01e1,_0xfc3eba);}else{if(_0x5787e5['query'][_0xcec60e]===_0x81ef('0x7d')){_0x4d4011['where']('i.'+_0xcec60e+_0x81ef('0x7e'));}else{_0x4d4011[_0x81ef('0x44')]('i.'+_0xcec60e+_0x81ef('0x7f'),_0x5787e5[_0x81ef('0x3c')][_0xcec60e]);}}});}if(_0x5787e5[_0x81ef('0x3c')][_0x81ef('0x80')]){if(_0x5787e5['query'][_0x81ef('0x80')]==0x1){_0x4d4011[_0x81ef('0x62')](_0x81ef('0x81'));}else{_0x4d4011['having'](_0x81ef('0x82'));}}if(_0x5787e5[_0x81ef('0x3c')][_0x81ef('0x83')]){_0x1cea99=_[_0x81ef('0x84')](_0x5787e5[_0x81ef('0x3c')][_0x81ef('0x83')])?_0x5787e5[_0x81ef('0x3c')][_0x81ef('0x83')]:new Array(_0x5787e5[_0x81ef('0x3c')][_0x81ef('0x83')]);_0x1cea99['forEach'](function(_0xdc2c9e){_0x5d4885['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0xdc2c9e+',%');});}if(_0x5787e5[_0x81ef('0x3c')][_0x81ef('0x85')]){var _0x35b0e7=_0x5787e5[_0x81ef('0x3c')][_0x81ef('0x85')][_0x81ef('0x86')]('\x5c','\x5c\x5c')['replace'](/'/g,'\x27\x27');if(qs[_0x81ef('0x87')](_0x35b0e7)){_0x5bd195['or']('i.id\x20LIKE\x20?',_0x35b0e7+'%')['or'](_0x81ef('0x88'),_0x35b0e7+'%');}else{_0x5bd195['or'](_0x81ef('0x89'),qs['getFullTextValue'](_0x35b0e7))['or'](_0x81ef('0x8a'),_0x35b0e7+'%');}}}_0x4d4011['where'](_0x5bd195);_0x4d4011[_0x81ef('0x8b')](_0x81ef('0x8c'));var _0x8c7b47={'type':db['Sequelize']['QueryTypes'][_0x81ef('0x8d')],'raw':!![]};var _0x5cf765=_0x4d4011[_0x81ef('0x8e')]();_0x5cf765[_0x81ef('0x46')]('i.id');_0x5cf765['field'](_0x81ef('0x8f'),_0x81ef('0x60'));if(_0x51373f[_0x81ef('0x42')]){_0x51373f['order']['forEach'](function(_0x418b24){var _0x30a59e=_0x418b24[0x0]===_0x81ef('0x90')?_0x418b24[0x0]:'i.'+_0x418b24[0x0];_0x4d4011[_0x81ef('0x42')](_0x30a59e,_0x418b24[0x1]==='DESC'?![]:!![]);});}if(!_[_0x81ef('0x74')](_0x1cea99)){_0x4d4011[_0x81ef('0x62')](_0x5d4885);_0x5cf765[_0x81ef('0x44')](_0x81ef('0x91'),_0x1cea99);}BPromise['resolve']()[_0x81ef('0x29')](function(){if(!_0x3c2a6c){if(_0x5787e5[_0x81ef('0x3c')][_0x81ef('0x75')])return;_0x5cf765[_0x81ef('0x44')](_0x81ef('0x92'));_0x4d4011[_0x81ef('0x44')](_0x81ef('0x92'));return;}if(_0x5787e5[_0x81ef('0x93')][_0x81ef('0x94')]!==_0x81ef('0x95'))return;return _0x5787e5[_0x81ef('0x93')][_0x81ef('0x96')]({'attributes':['id'],'raw':!![]})[_0x81ef('0x29')](function(_0x2a57f8){if(_['isEmpty'](_0x2a57f8)){_0x5cf765[_0x81ef('0x44')]('i.WhatsappAccountId\x20IS\x20NULL');_0x4d4011['where'](_0x81ef('0x97'));}else{_0x5cf765[_0x81ef('0x44')]('i.WhatsappAccountId\x20IN\x20?',_[_0x81ef('0x2e')](_0x2a57f8,'id'));_0x4d4011['where'](_0x81ef('0x76'),_[_0x81ef('0x2e')](_0x2a57f8,'id'));}});})[_0x81ef('0x29')](function(){if(_0x5787e5[_0x81ef('0x93')][_0x81ef('0x94')]===_0x81ef('0x95')&&!_0x3c2a6c&&!_0x5787e5['query'][_0x81ef('0x75')])return[];return db[_0x81ef('0x98')][_0x81ef('0x3c')](_0x5cf765[_0x81ef('0x99')](),_0x8c7b47);})[_0x81ef('0x29')](function(_0x3af924){_0x135fd0['count']=_0x3af924[_0x81ef('0x5e')];if(_0x135fd0['count']===0x0)return[];return db['sequelize'][_0x81ef('0x3c')](_0x235b2d['toString'](),_0x8c7b47)['then'](function(_0x4fe28a){_0x2b0d33=_['keyBy'](_0x4fe28a,'id');_0x8c7b47=_[_0x81ef('0x9a')](_0x8c7b47,{'model':db[_0x81ef('0x36')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x5787e5[_0x81ef('0x3c')][_0x81ef('0x3f')]){_0x51373f['attributes']['forEach'](function(_0x42b6bc){_0x4d4011['field']('i.'+_0x42b6bc);});}else{_0x4d4011[_0x81ef('0x46')](_0x81ef('0x8f'),_0x81ef('0x60'));_0x4d4011[_0x81ef('0x46')](_0x81ef('0x9b'),_0x81ef('0x9c'));_0x4d4011['field'](_0x81ef('0x9d'),_0x81ef('0x9e'));_0x4d4011[_0x81ef('0x46')](_0x81ef('0x9f'),_0x81ef('0x90'));_0x4d4011[_0x81ef('0x46')](_0x81ef('0xa0'));_0x4d4011[_0x81ef('0x46')]('c.firstName',_0x81ef('0xa1'));_0x4d4011['field'](_0x81ef('0xa2'),'Contact.lastName');_0x4d4011[_0x81ef('0x46')]('c.email',_0x81ef('0xa3'));_0x4d4011[_0x81ef('0x46')](_0x81ef('0xa4'),_0x81ef('0xa5'));_0x4d4011[_0x81ef('0x46')]('c.mobile',_0x81ef('0xa6'));_0x4d4011[_0x81ef('0x46')](_0x81ef('0xa7'),_0x81ef('0xa8'));_0x4d4011[_0x81ef('0x46')](_0x81ef('0xa9'),'Owner.fullname');_0x4d4011[_0x81ef('0x46')]('o.internal','Owner.internal');_0x4d4011[_0x81ef('0x46')](_0x81ef('0xaa'),_0x81ef('0x30'));}if(_0x51373f[_0x81ef('0x21')])_0x4d4011[_0x81ef('0x21')](_0x51373f[_0x81ef('0x21')]);if(_0x51373f[_0x81ef('0x24')])_0x4d4011['offset'](_0x51373f[_0x81ef('0x24')]);return db[_0x81ef('0x98')]['query'](_0x4d4011['toString'](),_0x8c7b47);})[_0x81ef('0x29')](function(_0x59da7b){if(_0x59da7b[_0x81ef('0x5e')]>0x0)_0x287206[_0x81ef('0x44')](_0x81ef('0xab'),_['map'](_0x59da7b,'id'));return db[_0x81ef('0x98')][_0x81ef('0x3c')](_0x287206[_0x81ef('0x99')](),_0x8c7b47)[_0x81ef('0x29')](function(_0x288640){var _0x4684cf=_[_0x81ef('0xac')](_0x288640,_0x81ef('0xad'));var _0x2e570f=[];_0x59da7b['forEach'](function(_0x463c12){_0x2e570f[_0x81ef('0xae')](updateWhatsappInteraction(_0x463c12,_0x2b0d33,_0x4684cf));});return BPromise['all'](_0x2e570f);});});})[_0x81ef('0x29')](function(_0x36c04b){_0x135fd0[_0x81ef('0xaf')]=_0x36c04b;return _0x135fd0;})[_0x81ef('0x29')](respondWithFilteredResult(_0x3462a3,_0x51373f))[_0x81ef('0x34')](handleError(_0x3462a3,null));};exports[_0x81ef('0xb0')]=function(_0x5cd252,_0xba7810){var _0x1e4ecf={'raw':![],'where':{'id':_0x5cd252[_0x81ef('0xb1')]['id']}},_0x20a9ff={};_0x20a9ff[_0x81ef('0x3b')]=_[_0x81ef('0x3d')](db['WhatsappInteraction'][_0x81ef('0x37')]);_0x20a9ff['query']=_[_0x81ef('0x3d')](_0x5cd252[_0x81ef('0x3c')]);_0x20a9ff[_0x81ef('0x45')]=_['intersection'](_0x20a9ff[_0x81ef('0x3b')],_0x20a9ff[_0x81ef('0x3c')]);_0x1e4ecf[_0x81ef('0x40')]=_[_0x81ef('0x3e')](_0x20a9ff[_0x81ef('0x3b')],qs[_0x81ef('0x3f')](_0x5cd252[_0x81ef('0x3c')][_0x81ef('0x3f')]));_0x1e4ecf[_0x81ef('0x40')]=_0x1e4ecf[_0x81ef('0x40')][_0x81ef('0x5e')]?_0x1e4ecf[_0x81ef('0x40')]:_0x20a9ff[_0x81ef('0x3b')];if(_0x5cd252[_0x81ef('0x3c')][_0x81ef('0xb2')]){_0x1e4ecf[_0x81ef('0xb3')]=[{'all':!![]}];}_0x1e4ecf=_['merge']({},_0x1e4ecf,_0x5cd252['options']);return db[_0x81ef('0x36')][_0x81ef('0x5f')](_0x1e4ecf)[_0x81ef('0x29')](handleEntityNotFound(_0xba7810,null))['then'](respondWithResult(_0xba7810,null))[_0x81ef('0x34')](handleError(_0xba7810,null));};exports[_0x81ef('0xb4')]=function(_0x451daa,_0x49018d){return db[_0x81ef('0x36')][_0x81ef('0xb4')](_0x451daa[_0x81ef('0x71')],{})['then'](respondWithResult(_0x49018d,0xc9))['catch'](handleError(_0x49018d,null));};exports[_0x81ef('0x28')]=function(_0x1f7c19,_0x276337){if(_0x1f7c19['body']['id']){delete _0x1f7c19[_0x81ef('0x71')]['id'];}return db[_0x81ef('0x36')]['find']({'where':{'id':_0x1f7c19[_0x81ef('0xb1')]['id']}})['then'](handleEntityNotFound(_0x276337,null))[_0x81ef('0x29')](saveUpdates(_0x1f7c19[_0x81ef('0x71')],null))['then'](respondWithResult(_0x276337,null))['catch'](handleError(_0x276337,null));};exports[_0x81ef('0xb5')]=function(_0x548eaf,_0x3ca1e8){return db['WhatsappInteraction'][_0x81ef('0x5f')]({'where':{'id':_0x548eaf[_0x81ef('0xb1')]['id']}})[_0x81ef('0x29')](handleEntityNotFound(_0x3ca1e8,null))['then'](removeEntity(_0x3ca1e8,null))[_0x81ef('0x34')](handleError(_0x3ca1e8,null));};exports['describe']=function(_0x1da617,_0x39a0c5){return db[_0x81ef('0x36')][_0x81ef('0xb6')]()[_0x81ef('0x29')](respondWithResult(_0x39a0c5,null))[_0x81ef('0x34')](handleError(_0x39a0c5,null));};exports[_0x81ef('0xb7')]=function(_0x4e41a7,_0x328d15,_0x57a488){return db['WhatsappMessage']['find']({'where':{'id':_0x4e41a7['params']['id']}})[_0x81ef('0x29')](handleEntityNotFound(_0x328d15,null))[_0x81ef('0x29')](function(_0x1c1313){if(_0x1c1313){return _0x1c1313['addMessage'](_0x4e41a7[_0x81ef('0x71')][_0x81ef('0xb8')],_[_0x81ef('0xb9')](_0x4e41a7[_0x81ef('0x71')],[_0x81ef('0xb8'),'id'])||{});}})[_0x81ef('0x29')](respondWithResult(_0x328d15,null))[_0x81ef('0x34')](handleError(_0x328d15,null));};exports[_0x81ef('0xba')]=function(_0x3adea9,_0x2d1a9d,_0x21e731){var _0x2040d5={'raw':![],'where':{}};var _0x211dea={};var _0x1e5b83={'count':0x0,'rows':[]};return db['WhatsappInteraction'][_0x81ef('0xbb')]({'where':{'id':_0x3adea9['params']['id']}})[_0x81ef('0x29')](handleEntityNotFound(_0x2d1a9d,null))[_0x81ef('0x29')](function(_0x3d8a44){if(_0x3d8a44){_0x211dea['model']=_[_0x81ef('0x3d')](db[_0x81ef('0xbc')][_0x81ef('0x37')]);_0x211dea[_0x81ef('0x3c')]=_[_0x81ef('0x3d')](_0x3adea9['query']);_0x211dea[_0x81ef('0x45')]=_['intersection'](_0x211dea['model'],_0x211dea[_0x81ef('0x3c')]);_0x2040d5[_0x81ef('0x40')]=_[_0x81ef('0x3e')](_0x211dea[_0x81ef('0x3b')],qs[_0x81ef('0x3f')](_0x3adea9[_0x81ef('0x3c')][_0x81ef('0x3f')]));_0x2040d5[_0x81ef('0x40')]=_0x2040d5[_0x81ef('0x40')][_0x81ef('0x5e')]?_0x2040d5[_0x81ef('0x40')]:_0x211dea[_0x81ef('0x3b')];if(!_0x3adea9[_0x81ef('0x3c')][_0x81ef('0x41')]('nolimit')){_0x2040d5[_0x81ef('0x21')]=qs[_0x81ef('0x21')](_0x3adea9[_0x81ef('0x3c')][_0x81ef('0x21')]);_0x2040d5['offset']=qs[_0x81ef('0x24')](_0x3adea9['query']['offset']);}_0x2040d5[_0x81ef('0x42')]=qs['sort'](_0x3adea9[_0x81ef('0x3c')][_0x81ef('0x43')]);_0x2040d5['where']=qs['filters'](_[_0x81ef('0xbd')](_0x3adea9[_0x81ef('0x3c')],_0x211dea['filters']));_0x2040d5[_0x81ef('0x44')][_0x81ef('0xad')]=_0x3d8a44['id'];if(_0x3adea9[_0x81ef('0x3c')][_0x81ef('0x85')]){_0x2040d5[_0x81ef('0x44')]=_[_0x81ef('0x9a')](_0x2040d5[_0x81ef('0x44')],{'$or':_[_0x81ef('0x2e')](_0x2040d5[_0x81ef('0x40')],function(_0x3bf084){var _0x4d4f68={};_0x4d4f68[_0x3bf084]={'$like':'%'+_0x3adea9[_0x81ef('0x3c')][_0x81ef('0x85')]+'%'};return _0x4d4f68;})});}if(_0x3adea9[_0x81ef('0x3c')]['$gte']){var _0x3ce0f1=_0x3adea9[_0x81ef('0x3c')][_0x81ef('0x7a')][_0x81ef('0x31')](',');var _0x43e34b={};_0x43e34b[_0x3ce0f1[0x0]]={'$gte':moment(_0x3ce0f1[0x1])['format'](_0x81ef('0xbe'))};_0x2040d5[_0x81ef('0x44')]=_['merge'](_0x2040d5[_0x81ef('0x44')],_0x43e34b);}_0x2040d5=_[_0x81ef('0x9a')]({},_0x2040d5,_0x3adea9['options']);return db[_0x81ef('0xbc')][_0x81ef('0x23')]({'where':_0x2040d5['where']})[_0x81ef('0x29')](function(_0x7f6fc1){_0x1e5b83[_0x81ef('0x23')]=_0x7f6fc1;if(_0x3adea9[_0x81ef('0x3c')]['includeAll']){_0x2040d5['include']=[{'all':!![]}];}return db[_0x81ef('0xbc')][_0x81ef('0xbf')](_0x2040d5);})['then'](function(_0x468b2f){_0x1e5b83[_0x81ef('0xaf')]=_0x468b2f;return _0x1e5b83;});}})[_0x81ef('0x29')](respondWithFilteredResult(_0x2d1a9d,_0x2040d5))['catch'](handleError(_0x2d1a9d,null));};exports[_0x81ef('0xc0')]=function(_0x10603a,_0x5f25bd,_0x41536d){return db['WhatsappInteraction'][_0x81ef('0x5f')]({'where':{'id':_0x10603a[_0x81ef('0xb1')]['id']}})[_0x81ef('0x29')](handleEntityNotFound(_0x5f25bd,null))[_0x81ef('0x29')](function(_0x2437ed){if(_0x2437ed){return _0x2437ed[_0x81ef('0xc1')](_0x10603a['body'][_0x81ef('0xb8')],_[_0x81ef('0xb9')](_0x10603a[_0x81ef('0x71')],['ids','id'])||{})['spread'](function(){return db[_0x81ef('0xc2')][_0x81ef('0xbf')]({'attributes':['id',_0x81ef('0x2b'),_0x81ef('0x47')],'where':{'id':_0x10603a['body'][_0x81ef('0xb8')]}});})[_0x81ef('0x29')](function(_0x39de60){socket[_0x81ef('0xc3')](_0x81ef('0xc4'),{'id':Number(_0x10603a[_0x81ef('0xb1')]['id']),'tags':_0x39de60||[]});return{'id':Number(_0x10603a[_0x81ef('0xb1')]['id']),'tags':_0x39de60||[]};});}})[_0x81ef('0x29')](respondWithResult(_0x5f25bd,null))[_0x81ef('0x34')](handleError(_0x5f25bd,null));};exports[_0x81ef('0xc5')]=function(_0x3f3bf0,_0x3bf3ce,_0x12633e){return db[_0x81ef('0x36')][_0x81ef('0x5f')]({'where':{'id':_0x3f3bf0[_0x81ef('0xb1')]['id']}})['then'](handleEntityNotFound(_0x3bf3ce,null))['then'](function(_0x13e0ab){if(_0x13e0ab){return _0x13e0ab['removeTags'](_0x3f3bf0[_0x81ef('0x3c')][_0x81ef('0xb8')]);}})[_0x81ef('0x29')](respondWithStatusCode(_0x3bf3ce,null))[_0x81ef('0x34')](handleError(_0x3bf3ce,null));};exports[_0x81ef('0xc6')]=function(_0x1f02d5,_0x1e3d77){var _0x870d6b=moment()[_0x81ef('0xc7')]()['toString']();var _0x2dd6ac=path['join'](config[_0x81ef('0xc8')],'server',_0x81ef('0xc9'),_0x81ef('0xca'));var _0x227c64=path['join'](config['root'],'server','files',_0x81ef('0xcb'));var _0x3c04ad=path[_0x81ef('0xcc')](_0x2dd6ac,_0x870d6b);var _0x5be49f=util[_0x81ef('0xcd')](_0x81ef('0xce'),_0x1f02d5[_0x81ef('0xb1')]['id'],_0x870d6b);var _0x51588c=path[_0x81ef('0xcc')](_0x2dd6ac,_0x5be49f);var _0x253432=[];_0x253432['push']({'model':db['User'],'as':_0x81ef('0x6d'),'attributes':['id',_0x81ef('0x2f')],'raw':!![]});_0x253432[_0x81ef('0xae')]({'model':db[_0x81ef('0xcf')],'as':_0x81ef('0x65'),'attributes':['id','firstName',_0x81ef('0xd0')],'raw':!![]});if(_0x1f02d5[_0x81ef('0x3c')]['attachments']){_0x253432['push']({'model':db[_0x81ef('0xd1')],'as':_0x81ef('0xd1'),'raw':!![]});}var _0x53b935=[{'model':db[_0x81ef('0xbc')],'as':_0x81ef('0xd2'),'attributes':['id',_0x81ef('0x71'),_0x81ef('0x78'),_0x81ef('0xd3'),_0x81ef('0xd4'),_0x81ef('0x80')],'include':_0x253432}];_0x53b935['push']({'model':db[_0x81ef('0xd5')],'as':_0x81ef('0xd6'),'attributes':['id','name']});_0x53b935[_0x81ef('0xae')]({'model':db[_0x81ef('0x6d')],'as':_0x81ef('0xd7'),'attributes':['id',_0x81ef('0x2f')]});return db[_0x81ef('0x36')][_0x81ef('0x5f')]({'where':{'id':_0x1f02d5[_0x81ef('0xb1')]['id']},'include':_0x53b935})['then'](handleEntityNotFound(_0x1e3d77,null))['then'](function(_0x835237){if(_0x835237){var _0x292b99=_0x835237[_0x81ef('0xd8')]({'plain':!![]});fs[_0x81ef('0xd9')](_0x3c04ad);var _0x37ced2={'channel':_0x81ef('0xda'),'account':_0x292b99['Account']['name'],'agent':_0x292b99[_0x81ef('0xd7')]?_0x292b99[_0x81ef('0xd7')][_0x81ef('0x2f')]:_0x81ef('0xdb'),'createdAt':moment(_0x292b99['createdAt'])[_0x81ef('0xcd')](_0x81ef('0xbe'))[_0x81ef('0x99')](),'closedAt':_0x292b99[_0x81ef('0xdc')]?moment(_0x292b99[_0x81ef('0xdd')])['format'](_0x81ef('0xbe'))[_0x81ef('0x99')]():'','disposition':_0x292b99[_0x81ef('0xde')],'messages':_(_0x292b99[_0x81ef('0xd2')])[_0x81ef('0x85')]({'secret':![]})['map'](function(_0x4c5599){if(_0x4c5599[_0x81ef('0xd1')]){var _0x5cf5c9=path[_0x81ef('0xcc')](_0x227c64,_0x4c5599[_0x81ef('0xd1')]['basename']);if(fs['existsSync'](_0x5cf5c9)){fs[_0x81ef('0xdf')](_0x5cf5c9)[_0x81ef('0xe0')](fs['createWriteStream'](path[_0x81ef('0xcc')](_0x3c04ad,_0x4c5599['Attachment'][_0x81ef('0xe1')])));}}return{'date':moment(_0x4c5599[_0x81ef('0x78')])[_0x81ef('0xcd')](_0x81ef('0xbe'))[_0x81ef('0x99')](),'sender':_0x4c5599[_0x81ef('0xd3')]===_0x81ef('0xe2')?_0x4c5599['User']?_0x4c5599[_0x81ef('0x6d')][_0x81ef('0x2f')]:'System':_0x4c5599[_0x81ef('0x65')]['firstName']+(_0x4c5599[_0x81ef('0x65')][_0x81ef('0xd0')]?'\x20'+_0x4c5599[_0x81ef('0x65')]['lastName']:''),'body':_0x4c5599['Attachment']?_0x4c5599['Attachment'][_0x81ef('0xe1')]:_0x4c5599['body'],'direction':_0x4c5599['direction']==='out'?'A':'C','secret':_0x4c5599[_0x81ef('0xd4')],'read':_0x4c5599[_0x81ef('0x80')],'attachment':_0x4c5599[_0x81ef('0xd1')]};})['value']()};return ejs['renderFile'](path[_0x81ef('0xcc')](config[_0x81ef('0xc8')],_0x81ef('0xe3'),_0x81ef('0xe4'),_0x81ef('0xe5')),{'interaction':_0x37ced2})['then'](function(_0x39459c){var _0x47a4e4=path[_0x81ef('0xcc')](_0x3c04ad,'transcript-'+_0x292b99['id']+'-'+_0x870d6b+_0x81ef('0xe6'));var _0x28eda8={'path':_0x47a4e4,'channel':_0x81ef('0xda'),'interactionId':_0x292b99['id']};return pdf[_0x81ef('0xe7')](_0x39459c,_0x28eda8);})[_0x81ef('0x29')](function(){return new BPromise(function(_0x1eb20f,_0x3721c0){zipdir(_0x3c04ad,{'saveTo':_0x51588c},function(_0x441940,_0x1eeef5){if(_0x441940)return _0x3721c0(_0x441940);return _0x1eb20f(_0x1eeef5);});})[_0x81ef('0x29')](function(){return new BPromise(function(_0x1b84e5,_0xbde608){rimraf(_0x3c04ad,function(_0x5b9265){if(_0x5b9265)_0xbde608(_0x5b9265);return _0x1b84e5();});});})[_0x81ef('0x29')](function(){return _0x1e3d77[_0x81ef('0xc6')](_0x51588c,_0x5be49f,function(_0x139e57){if(_0x139e57){console[_0x81ef('0xe8')]('err',_0x139e57);}else{fs[_0x81ef('0xe9')](_0x51588c);}});});});}else{return _0x1e3d77['sendStatus'](0xc8);}})[_0x81ef('0x34')](handleError(_0x1e3d77,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcb91=['WhatsappInteraction','../../mysqldb','WhatsappMessage','setMaxListeners','update','remove','getUsers','then','setDataValue','Users','unreadMessages','length','emit','catch','hasOwnProperty','hook','exports'];(function(_0xfcbcb8,_0x35bf6b){var _0x1b1f97=function(_0x51e11d){while(--_0x51e11d){_0xfcbcb8['push'](_0xfcbcb8['shift']());}};_0x1b1f97(++_0x35bf6b);}(_0xcb91,0x1a9));var _0x1cb9=function(_0x38ce4c,_0xfdbe8c){_0x38ce4c=_0x38ce4c-0x0;var _0x5d4544=_0xcb91[_0x38ce4c];return _0x5d4544;};'use strict';var EventEmitter=require('events');var WhatsappInteraction=require('../../mysqldb')['db'][_0x1cb9('0x0')];var WhatsappMessage=require(_0x1cb9('0x1'))['db'][_0x1cb9('0x2')];var WhatsappInteractionEvents=new EventEmitter();WhatsappInteractionEvents[_0x1cb9('0x3')](0x0);var events={'afterCreate':'save','afterUpdate':_0x1cb9('0x4'),'afterDestroy':_0x1cb9('0x5')};function emitEvent(_0x545a34){return function(_0x13d5fd,_0x1b26cd,_0x53ffbd){_0x13d5fd[_0x1cb9('0x6')]({'attributes':['id'],'raw':!![]})[_0x1cb9('0x7')](function(_0x4ffe20){_0x13d5fd[_0x1cb9('0x8')](_0x1cb9('0x9'),_0x4ffe20['map'](function(_0x3ae0f1){return{'id':_0x3ae0f1['id']};}));return WhatsappMessage['findAll']({'where':{'WhatsappInteractionId':_0x13d5fd['id'],'direction':'in','read':![]},'raw':!![]});})['then'](function(_0x45a12f){_0x13d5fd[_0x1cb9('0x8')](_0x1cb9('0xa'),_0x45a12f[_0x1cb9('0xb')]);WhatsappInteractionEvents[_0x1cb9('0xc')](_0x545a34+':'+_0x13d5fd['id'],_0x13d5fd);WhatsappInteractionEvents['emit'](_0x545a34,_0x13d5fd);_0x53ffbd(null);})[_0x1cb9('0xd')](_0x53ffbd(null));};}for(var e in events){if(events[_0x1cb9('0xe')](e)){var event=events[e];WhatsappInteraction[_0x1cb9('0xf')](e,emitEvent(event));}}module[_0x1cb9('0x10')]=WhatsappInteractionEvents;
\ No newline at end of file
+var _0x1bb2=['hook','exports','../../mysqldb','WhatsappInteraction','save','update','remove','getUsers','then','setDataValue','Users','unreadMessages','length','emit','catch','hasOwnProperty'];(function(_0x4ff521,_0x44efaa){var _0x8313e1=function(_0x4b4b4d){while(--_0x4b4b4d){_0x4ff521['push'](_0x4ff521['shift']());}};_0x8313e1(++_0x44efaa);}(_0x1bb2,0x152));var _0x21bb=function(_0x240300,_0x1581ff){_0x240300=_0x240300-0x0;var _0x85ecb5=_0x1bb2[_0x240300];return _0x85ecb5;};'use strict';var EventEmitter=require('events');var WhatsappInteraction=require(_0x21bb('0x0'))['db'][_0x21bb('0x1')];var WhatsappMessage=require(_0x21bb('0x0'))['db']['WhatsappMessage'];var WhatsappInteractionEvents=new EventEmitter();WhatsappInteractionEvents['setMaxListeners'](0x0);var events={'afterCreate':_0x21bb('0x2'),'afterUpdate':_0x21bb('0x3'),'afterDestroy':_0x21bb('0x4')};function emitEvent(_0x469984){return function(_0x2042df,_0xa0e9a1,_0x198344){_0x2042df[_0x21bb('0x5')]({'attributes':['id'],'raw':!![]})[_0x21bb('0x6')](function(_0x330447){_0x2042df[_0x21bb('0x7')](_0x21bb('0x8'),_0x330447['map'](function(_0x721317){return{'id':_0x721317['id']};}));return WhatsappMessage['findAll']({'where':{'WhatsappInteractionId':_0x2042df['id'],'direction':'in','read':![]},'raw':!![]});})[_0x21bb('0x6')](function(_0x483ba4){_0x2042df['setDataValue'](_0x21bb('0x9'),_0x483ba4[_0x21bb('0xa')]);WhatsappInteractionEvents[_0x21bb('0xb')](_0x469984+':'+_0x2042df['id'],_0x2042df);WhatsappInteractionEvents[_0x21bb('0xb')](_0x469984,_0x2042df);_0x198344(null);})[_0x21bb('0xc')](_0x198344(null));};}for(var e in events){if(events[_0x21bb('0xd')](e)){var event=events[e];WhatsappInteraction[_0x21bb('0xe')](e,emitEvent(event));}}module[_0x21bb('0xf')]=WhatsappInteractionEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7b31=['WhatsappInteraction','changed','closedAt','format','YYYY-MM-DD\x20HH:mm:ss','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','exports','define'];(function(_0x859af7,_0x16d3d6){var _0x55b332=function(_0x396f84){while(--_0x396f84){_0x859af7['push'](_0x859af7['shift']());}};_0x55b332(++_0x16d3d6);}(_0x7b31,0xb5));var _0x17b3=function(_0x5f4826,_0x308f6f){_0x5f4826=_0x5f4826-0x0;var _0x1ea878=_0x7b31[_0x5f4826];return _0x1ea878;};'use strict';var _=require('lodash');var util=require(_0x17b3('0x0'));var logger=require(_0x17b3('0x1'))(_0x17b3('0x2'));var moment=require(_0x17b3('0x3'));var BPromise=require(_0x17b3('0x4'));var rp=require(_0x17b3('0x5'));var fs=require('fs');var path=require(_0x17b3('0x6'));var rimraf=require(_0x17b3('0x7'));var config=require(_0x17b3('0x8'));var attributes=require('./whatsappInteraction.attributes');module[_0x17b3('0x9')]=function(_0x5ebdb6,_0x32ca5f){return _0x5ebdb6[_0x17b3('0xa')](_0x17b3('0xb'),attributes,{'tableName':'whatsapp_interactions','paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x2e451d,_0x527045,_0x5bc11f){if(_0x2e451d[_0x17b3('0xc')]('closed')){_0x2e451d[_0x17b3('0xd')]=moment()[_0x17b3('0xe')](_0x17b3('0xf'));}_0x5bc11f(null,_0x2e451d);}}});};
\ No newline at end of file
+var _0x0cfa=['moment','bluebird','path','../../config/environment','./whatsappInteraction.attributes','exports','define','WhatsappInteraction','whatsapp_interactions','changed','closed','closedAt','format','lodash','util','../../config/logger','api'];(function(_0x3ab51d,_0x2fa01d){var _0x29a04e=function(_0x7807b0){while(--_0x7807b0){_0x3ab51d['push'](_0x3ab51d['shift']());}};_0x29a04e(++_0x2fa01d);}(_0x0cfa,0x73));var _0xa0cf=function(_0x35a4b0,_0x3875d5){_0x35a4b0=_0x35a4b0-0x0;var _0x4cf654=_0x0cfa[_0x35a4b0];return _0x4cf654;};'use strict';var _=require(_0xa0cf('0x0'));var util=require(_0xa0cf('0x1'));var logger=require(_0xa0cf('0x2'))(_0xa0cf('0x3'));var moment=require(_0xa0cf('0x4'));var BPromise=require(_0xa0cf('0x5'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xa0cf('0x6'));var rimraf=require('rimraf');var config=require(_0xa0cf('0x7'));var attributes=require(_0xa0cf('0x8'));module[_0xa0cf('0x9')]=function(_0x265c33,_0x848d37){return _0x265c33[_0xa0cf('0xa')](_0xa0cf('0xb'),attributes,{'tableName':_0xa0cf('0xc'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'beforeUpdate':function(_0x2dbef8,_0x4e2b85,_0x1905d3){if(_0x2dbef8[_0xa0cf('0xd')](_0xa0cf('0xe'))){_0x2dbef8[_0xa0cf('0xf')]=moment()[_0xa0cf('0x10')]('YYYY-MM-DD\x20HH:mm:ss');}_0x1905d3(null,_0x2dbef8);}}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3c6f=['../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','http','redis','socket.io-emitter','./whatsappInteraction.socket','register','request','then','info','WhatsappInteraction,\x20%s,\x20%s','WhatsappInteraction,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','result','UpdateWhatsappInteraction','WhatsappInteraction','options','raw','attributes','debug','AddTagsToWhatsappInteraction','where','addTags','body','omit','AddTags','stringify','catch','lodash','util','moment','bluebird','randomstring','ioredis'];(function(_0xd4a3fb,_0x6b0592){var _0xf42bbf=function(_0x20bf65){while(--_0x20bf65){_0xd4a3fb['push'](_0xd4a3fb['shift']());}};_0xf42bbf(++_0x6b0592);}(_0x3c6f,0x1da));var _0xf3c6=function(_0x5e0fd4,_0x283484){_0x5e0fd4=_0x5e0fd4-0x0;var _0x36692a=_0x3c6f[_0x5e0fd4];return _0x36692a;};'use strict';var _=require(_0xf3c6('0x0'));var util=require(_0xf3c6('0x1'));var moment=require(_0xf3c6('0x2'));var BPromise=require(_0xf3c6('0x3'));var rs=require(_0xf3c6('0x4'));var fs=require('fs');var Redis=require(_0xf3c6('0x5'));var db=require(_0xf3c6('0x6'))['db'];var utils=require(_0xf3c6('0x7'));var logger=require(_0xf3c6('0x8'))(_0xf3c6('0x9'));var config=require('../../config/environment');var jayson=require(_0xf3c6('0xa'));var client=jayson['client'][_0xf3c6('0xb')]({'port':0x232a});config['redis']=_['defaults'](config[_0xf3c6('0xc')],{'host':'localhost','port':0x18eb});var socket=require(_0xf3c6('0xd'))(new Redis(config[_0xf3c6('0xc')]));require(_0xf3c6('0xe'))[_0xf3c6('0xf')](socket);function respondWithRpcPromise(_0x48f41d,_0x21fba1,_0x25519e){return new BPromise(function(_0x5c82e4,_0x5de71e){return client[_0xf3c6('0x10')](_0x48f41d,_0x25519e)[_0xf3c6('0x11')](function(_0x595c10){logger[_0xf3c6('0x12')](_0xf3c6('0x13'),_0x21fba1,'request\x20sent');logger['debug'](_0xf3c6('0x14'),_0x21fba1,_0xf3c6('0x15'),JSON['stringify'](_0x595c10));if(_0x595c10[_0xf3c6('0x16')]){if(_0x595c10[_0xf3c6('0x16')][_0xf3c6('0x17')]===0x1f4){logger['error']('WhatsappInteraction,\x20%s,\x20%s',_0x21fba1,_0x595c10[_0xf3c6('0x16')]['message']);return _0x5de71e(_0x595c10[_0xf3c6('0x16')][_0xf3c6('0x18')]);}logger[_0xf3c6('0x16')](_0xf3c6('0x13'),_0x21fba1,_0x595c10['error'][_0xf3c6('0x18')]);return _0x5c82e4(_0x595c10['error']['message']);}else{logger['info'](_0xf3c6('0x13'),_0x21fba1,_0xf3c6('0x15'));_0x5c82e4(_0x595c10[_0xf3c6('0x19')][_0xf3c6('0x18')]);}})['catch'](function(_0x5b93e2){logger[_0xf3c6('0x16')](_0xf3c6('0x13'),_0x21fba1,_0x5b93e2);_0x5de71e(_0x5b93e2);});});}exports[_0xf3c6('0x1a')]=function(_0x1fb188){var _0x3e421b=this;return new Promise(function(_0x4f69b9,_0x2d1671){return db[_0xf3c6('0x1b')]['update'](_0x1fb188['body'],{'raw':_0x1fb188[_0xf3c6('0x1c')]?_0x1fb188[_0xf3c6('0x1c')][_0xf3c6('0x1d')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x1fb188[_0xf3c6('0x1c')]?_0x1fb188['options']['where']||null:null,'attributes':_0x1fb188[_0xf3c6('0x1c')]?_0x1fb188['options'][_0xf3c6('0x1e')]||null:null,'limit':_0x1fb188[_0xf3c6('0x1c')]?_0x1fb188['options']['limit']||null:null})[_0xf3c6('0x11')](function(_0x493a3d){logger[_0xf3c6('0x12')](_0xf3c6('0x1a'),_0x1fb188);logger[_0xf3c6('0x1f')](_0xf3c6('0x1a'),_0x1fb188,JSON['stringify'](_0x493a3d));_0x4f69b9(_0x493a3d);})['catch'](function(_0x50ede5){logger[_0xf3c6('0x16')](_0xf3c6('0x1a'),_0x50ede5['message'],_0x1fb188);_0x2d1671(_0x3e421b[_0xf3c6('0x16')](0x1f4,_0x50ede5[_0xf3c6('0x18')]));});});};exports[_0xf3c6('0x20')]=function(_0x276064){return new Promise(function(_0x4a1bf7,_0x502bc3){return db['WhatsappInteraction']['find']({'where':_0x276064['options']?_0x276064[_0xf3c6('0x1c')][_0xf3c6('0x21')]||null:null})['then'](function(_0x47026a){if(_0x47026a){return _0x47026a[_0xf3c6('0x22')](_0x276064[_0xf3c6('0x23')]['ids'],_[_0xf3c6('0x24')](_0x276064[_0xf3c6('0x23')],['ids','id'])||{});}})['spread'](function(_0x599d35){logger[_0xf3c6('0x12')](_0xf3c6('0x25'),_0x276064);logger[_0xf3c6('0x1f')](_0xf3c6('0x25'),_0x276064,JSON[_0xf3c6('0x26')](_0x599d35));_0x4a1bf7(_0x599d35);})[_0xf3c6('0x27')](function(_0x306c6e){logger[_0xf3c6('0x16')]('AddTags',_0x306c6e[_0xf3c6('0x18')],_0x276064);_0x502bc3(_this['error'](0x1f4,_0x306c6e['message']));});});};
\ No newline at end of file
+var _0x4658=['then','info','WhatsappInteraction,\x20%s,\x20%s','debug','WhatsappInteraction,\x20%s,\x20%s,\x20%s','error','code','message','result','WhatsappInteraction','update','body','options','where','attributes','limit','UpdateWhatsappInteraction','stringify','catch','AddTagsToWhatsappInteraction','find','ids','omit','spread','AddTags','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','jayson/promise','client','http','redis','defaults','localhost','./whatsappInteraction.socket','register','request'];(function(_0x4a4750,_0x4d22d8){var _0x5b7089=function(_0xc7da7e){while(--_0xc7da7e){_0x4a4750['push'](_0x4a4750['shift']());}};_0x5b7089(++_0x4d22d8);}(_0x4658,0x6d));var _0x8465=function(_0x2298fa,_0x25a7a6){_0x2298fa=_0x2298fa-0x0;var _0x5e6693=_0x4658[_0x2298fa];return _0x5e6693;};'use strict';var _=require('lodash');var util=require(_0x8465('0x0'));var moment=require(_0x8465('0x1'));var BPromise=require(_0x8465('0x2'));var rs=require(_0x8465('0x3'));var fs=require('fs');var Redis=require(_0x8465('0x4'));var db=require(_0x8465('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x8465('0x6'))(_0x8465('0x7'));var config=require('../../config/environment');var jayson=require(_0x8465('0x8'));var client=jayson[_0x8465('0x9')][_0x8465('0xa')]({'port':0x232a});config[_0x8465('0xb')]=_[_0x8465('0xc')](config['redis'],{'host':_0x8465('0xd'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x8465('0xb')]));require(_0x8465('0xe'))[_0x8465('0xf')](socket);function respondWithRpcPromise(_0x56b7fa,_0x30546c,_0xd4d20a){return new BPromise(function(_0x5f35f7,_0x383ff9){return client[_0x8465('0x10')](_0x56b7fa,_0xd4d20a)[_0x8465('0x11')](function(_0x82499e){logger[_0x8465('0x12')](_0x8465('0x13'),_0x30546c,'request\x20sent');logger[_0x8465('0x14')](_0x8465('0x15'),_0x30546c,'request\x20sent',JSON['stringify'](_0x82499e));if(_0x82499e[_0x8465('0x16')]){if(_0x82499e[_0x8465('0x16')][_0x8465('0x17')]===0x1f4){logger[_0x8465('0x16')](_0x8465('0x13'),_0x30546c,_0x82499e[_0x8465('0x16')][_0x8465('0x18')]);return _0x383ff9(_0x82499e[_0x8465('0x16')]['message']);}logger[_0x8465('0x16')]('WhatsappInteraction,\x20%s,\x20%s',_0x30546c,_0x82499e[_0x8465('0x16')][_0x8465('0x18')]);return _0x5f35f7(_0x82499e['error'][_0x8465('0x18')]);}else{logger[_0x8465('0x12')](_0x8465('0x13'),_0x30546c,'request\x20sent');_0x5f35f7(_0x82499e[_0x8465('0x19')][_0x8465('0x18')]);}})['catch'](function(_0x227007){logger['error'](_0x8465('0x13'),_0x30546c,_0x227007);_0x383ff9(_0x227007);});});}exports['UpdateWhatsappInteraction']=function(_0x22e22f){var _0x21a4dc=this;return new Promise(function(_0xbb7e22,_0x317267){return db[_0x8465('0x1a')][_0x8465('0x1b')](_0x22e22f[_0x8465('0x1c')],{'raw':_0x22e22f[_0x8465('0x1d')]?_0x22e22f[_0x8465('0x1d')]['raw']===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x22e22f[_0x8465('0x1d')]?_0x22e22f[_0x8465('0x1d')][_0x8465('0x1e')]||null:null,'attributes':_0x22e22f[_0x8465('0x1d')]?_0x22e22f[_0x8465('0x1d')][_0x8465('0x1f')]||null:null,'limit':_0x22e22f[_0x8465('0x1d')]?_0x22e22f[_0x8465('0x1d')][_0x8465('0x20')]||null:null})[_0x8465('0x11')](function(_0x3130cd){logger[_0x8465('0x12')](_0x8465('0x21'),_0x22e22f);logger['debug'](_0x8465('0x21'),_0x22e22f,JSON[_0x8465('0x22')](_0x3130cd));_0xbb7e22(_0x3130cd);})[_0x8465('0x23')](function(_0x3728aa){logger[_0x8465('0x16')]('UpdateWhatsappInteraction',_0x3728aa['message'],_0x22e22f);_0x317267(_0x21a4dc['error'](0x1f4,_0x3728aa[_0x8465('0x18')]));});});};exports[_0x8465('0x24')]=function(_0x20079f){return new Promise(function(_0x22ee24,_0x5b6525){return db['WhatsappInteraction'][_0x8465('0x25')]({'where':_0x20079f[_0x8465('0x1d')]?_0x20079f['options'][_0x8465('0x1e')]||null:null})[_0x8465('0x11')](function(_0x497887){if(_0x497887){return _0x497887['addTags'](_0x20079f[_0x8465('0x1c')][_0x8465('0x26')],_[_0x8465('0x27')](_0x20079f[_0x8465('0x1c')],[_0x8465('0x26'),'id'])||{});}})[_0x8465('0x28')](function(_0xfb0d10){logger[_0x8465('0x12')](_0x8465('0x29'),_0x20079f);logger['debug'](_0x8465('0x29'),_0x20079f,JSON[_0x8465('0x22')](_0xfb0d10));_0x22ee24(_0xfb0d10);})[_0x8465('0x23')](function(_0x3c773d){logger[_0x8465('0x16')](_0x8465('0x29'),_0x3c773d[_0x8465('0x18')],_0x20079f);_0x5b6525(_this[_0x8465('0x16')](0x1f4,_0x3c773d[_0x8465('0x18')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcd29=['removeListener','register','length','whatsappInteraction:','./whatsappInteraction.events','save','update','emit'];(function(_0x17d9e3,_0x1f969c){var _0x14192d=function(_0x159745){while(--_0x159745){_0x17d9e3['push'](_0x17d9e3['shift']());}};_0x14192d(++_0x1f969c);}(_0xcd29,0x194));var _0x9cd2=function(_0x14b248,_0x5ea00e){_0x14b248=_0x14b248-0x0;var _0x1dd671=_0xcd29[_0x14b248];return _0x1dd671;};'use strict';var WhatsappInteractionEvents=require(_0x9cd2('0x0'));var events=[_0x9cd2('0x1'),'remove',_0x9cd2('0x2')];function createListener(_0x24cbc3,_0x2bef3d){return function(_0x340a5d){_0x2bef3d[_0x9cd2('0x3')](_0x24cbc3,_0x340a5d);};}function removeListener(_0x5555a4,_0x2c6226){return function(){WhatsappInteractionEvents[_0x9cd2('0x4')](_0x5555a4,_0x2c6226);};}exports[_0x9cd2('0x5')]=function(_0x1cf059){for(var _0x4995a0=0x0,_0x20c93b=events[_0x9cd2('0x6')];_0x4995a0<_0x20c93b;_0x4995a0++){var _0x5dd6d7=events[_0x4995a0];var _0x3e1b7c=createListener(_0x9cd2('0x7')+_0x5dd6d7,_0x1cf059);WhatsappInteractionEvents['on'](_0x5dd6d7,_0x3e1b7c);}};
\ No newline at end of file
+var _0xc049=['emit','removeListener','length','whatsappInteraction:','./whatsappInteraction.events','save','remove','update'];(function(_0x3dc55d,_0xd07e93){var _0x3aa7f3=function(_0x506b46){while(--_0x506b46){_0x3dc55d['push'](_0x3dc55d['shift']());}};_0x3aa7f3(++_0xd07e93);}(_0xc049,0x1e4));var _0x9c04=function(_0x12cfb8,_0x3a3a27){_0x12cfb8=_0x12cfb8-0x0;var _0x3065f2=_0xc049[_0x12cfb8];return _0x3065f2;};'use strict';var WhatsappInteractionEvents=require(_0x9c04('0x0'));var events=[_0x9c04('0x1'),_0x9c04('0x2'),_0x9c04('0x3')];function createListener(_0x133863,_0x5d7c3e){return function(_0x10b941){_0x5d7c3e[_0x9c04('0x4')](_0x133863,_0x10b941);};}function removeListener(_0xae53,_0x507083){return function(){WhatsappInteractionEvents[_0x9c04('0x5')](_0xae53,_0x507083);};}exports['register']=function(_0x5eb854){for(var _0x10c803=0x0,_0x56dc95=events[_0x9c04('0x6')];_0x10c803<_0x56dc95;_0x10c803++){var _0x458834=events[_0x10c803];var _0x3c45c5=createListener(_0x9c04('0x7')+_0x458834,_0x5eb854);WhatsappInteractionEvents['on'](_0x458834,_0x3c45c5);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5515=['whatsappmessage:create','create','/:id/status','status','put','/:id','update','accept','/:id/reject','reject','delete','destroy','exports','util','path','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./whatsappMessage.controller','get','isAuthenticated','describe','post','tracked'];(function(_0x507dcd,_0x27258d){var _0xf65eeb=function(_0x37805b){while(--_0x37805b){_0x507dcd['push'](_0x507dcd['shift']());}};_0xf65eeb(++_0x27258d);}(_0x5515,0xf7));var _0x5551=function(_0x1404e7,_0xeaca8f){_0x1404e7=_0x1404e7-0x0;var _0xcf15fd=_0x5515[_0x1404e7];return _0xcf15fd;};'use strict';var multer=require('multer');var util=require(_0x5551('0x0'));var path=require(_0x5551('0x1'));var timeout=require('connect-timeout');var express=require('express');var router=express[_0x5551('0x2')]();var fs_extra=require(_0x5551('0x3'));var auth=require(_0x5551('0x4'));var interaction=require(_0x5551('0x5'));var config=require(_0x5551('0x6'));var controller=require(_0x5551('0x7'));router[_0x5551('0x8')]('/',auth[_0x5551('0x9')](),controller['index']);router[_0x5551('0x8')]('/describe',auth[_0x5551('0x9')](),controller[_0x5551('0xa')]);router[_0x5551('0x8')]('/:id',auth['isAuthenticated'](),controller['show']);router[_0x5551('0xb')]('/',auth[_0x5551('0x9')](),interaction[_0x5551('0xc')]('whatsapp',_0x5551('0xd')),controller[_0x5551('0xe')]);router['post'](_0x5551('0xf'),controller[_0x5551('0x10')]);router[_0x5551('0x11')](_0x5551('0x12'),auth[_0x5551('0x9')](),controller[_0x5551('0x13')]);router[_0x5551('0x11')]('/:id/accept',auth[_0x5551('0x9')](),controller[_0x5551('0x14')]);router[_0x5551('0x11')](_0x5551('0x15'),auth[_0x5551('0x9')](),controller[_0x5551('0x16')]);router[_0x5551('0x17')](_0x5551('0x12'),auth[_0x5551('0x9')](),controller[_0x5551('0x18')]);module[_0x5551('0x19')]=router;
\ No newline at end of file
+var _0xce13=['./whatsappMessage.controller','isAuthenticated','index','/describe','describe','get','/:id','show','post','tracked','whatsapp','status','put','/:id/accept','accept','/:id/reject','reject','exports','util','connect-timeout','express','Router','../../components/auth/service','../../components/interaction/service'];(function(_0x1ba8dc,_0xcc9a7a){var _0x7ce3b5=function(_0x63ded5){while(--_0x63ded5){_0x1ba8dc['push'](_0x1ba8dc['shift']());}};_0x7ce3b5(++_0xcc9a7a);}(_0xce13,0x8a));var _0x3ce1=function(_0x14be05,_0x2d4e72){_0x14be05=_0x14be05-0x0;var _0x22436d=_0xce13[_0x14be05];return _0x22436d;};'use strict';var multer=require('multer');var util=require(_0x3ce1('0x0'));var path=require('path');var timeout=require(_0x3ce1('0x1'));var express=require(_0x3ce1('0x2'));var router=express[_0x3ce1('0x3')]();var fs_extra=require('fs-extra');var auth=require(_0x3ce1('0x4'));var interaction=require(_0x3ce1('0x5'));var config=require('../../config/environment');var controller=require(_0x3ce1('0x6'));router['get']('/',auth[_0x3ce1('0x7')](),controller[_0x3ce1('0x8')]);router['get'](_0x3ce1('0x9'),auth['isAuthenticated'](),controller[_0x3ce1('0xa')]);router[_0x3ce1('0xb')](_0x3ce1('0xc'),auth[_0x3ce1('0x7')](),controller[_0x3ce1('0xd')]);router[_0x3ce1('0xe')]('/',auth[_0x3ce1('0x7')](),interaction[_0x3ce1('0xf')](_0x3ce1('0x10'),'whatsappmessage:create'),controller['create']);router['post']('/:id/status',controller[_0x3ce1('0x11')]);router[_0x3ce1('0x12')]('/:id',auth[_0x3ce1('0x7')](),controller['update']);router[_0x3ce1('0x12')](_0x3ce1('0x13'),auth[_0x3ce1('0x7')](),controller[_0x3ce1('0x14')]);router[_0x3ce1('0x12')](_0x3ce1('0x15'),auth[_0x3ce1('0x7')](),controller[_0x3ce1('0x16')]);router['delete'](_0x3ce1('0xc'),auth[_0x3ce1('0x7')](),controller['destroy']);module[_0x3ce1('0x17')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb0d7=['STRING','DATE','sequelize','TEXT','BOOLEAN','out'];(function(_0x3ffe9d,_0x3bf76d){var _0x37eb59=function(_0x3fa9da){while(--_0x3fa9da){_0x3ffe9d['push'](_0x3ffe9d['shift']());}};_0x37eb59(++_0x3bf76d);}(_0xb0d7,0xb0));var _0x7b0d=function(_0x1cea13,_0x399379){_0x1cea13=_0x1cea13-0x0;var _0x494d2d=_0xb0d7[_0x1cea13];return _0x494d2d;};'use strict';var Sequelize=require(_0x7b0d('0x0'));module['exports']={'body':{'type':Sequelize[_0x7b0d('0x1')]('medium'),'allowNull':![]},'read':{'type':Sequelize[_0x7b0d('0x2')],'defaultValue':![]},'direction':{'type':Sequelize['ENUM']('in',_0x7b0d('0x3')),'defaultValue':_0x7b0d('0x3'),'allowNull':![]},'messageId':{'type':Sequelize[_0x7b0d('0x4')](0xbe)},'phone':{'type':Sequelize[_0x7b0d('0x4')]},'readAt':{'type':Sequelize[_0x7b0d('0x5')]},'secret':{'type':Sequelize[_0x7b0d('0x2')],'defaultValue':![]},'providerName':{'type':Sequelize[_0x7b0d('0x4')]},'providerResponse':{'type':Sequelize['TEXT']}};
\ No newline at end of file
+var _0x742e=['STRING','sequelize','exports','medium','BOOLEAN','ENUM','out'];(function(_0x2adbeb,_0x5581be){var _0x5e18a6=function(_0x84e42b){while(--_0x84e42b){_0x2adbeb['push'](_0x2adbeb['shift']());}};_0x5e18a6(++_0x5581be);}(_0x742e,0xa2));var _0xe742=function(_0x183c7d,_0x485246){_0x183c7d=_0x183c7d-0x0;var _0x4ae382=_0x742e[_0x183c7d];return _0x4ae382;};'use strict';var Sequelize=require(_0xe742('0x0'));module[_0xe742('0x1')]={'body':{'type':Sequelize['TEXT'](_0xe742('0x2')),'allowNull':![]},'read':{'type':Sequelize[_0xe742('0x3')],'defaultValue':![]},'direction':{'type':Sequelize[_0xe742('0x4')]('in',_0xe742('0x5')),'defaultValue':_0xe742('0x5'),'allowNull':![]},'messageId':{'type':Sequelize[_0xe742('0x6')](0xbe)},'phone':{'type':Sequelize[_0xe742('0x6')]},'readAt':{'type':Sequelize['DATE']},'secret':{'type':Sequelize[_0xe742('0x3')],'defaultValue':![]},'providerName':{'type':Sequelize[_0xe742('0x6')]},'providerResponse':{'type':Sequelize['TEXT']}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4c76=['api','../../config/utils','../../config/environment','../../config/license/util','redis','defaults','localhost','socket.io-emitter','./whatsappMessage.socket','jayson/promise','client','http','request','then','info','debug','WhatsappMessage,\x20%s,\x20%s,\x20%s','stringify','error','WhatsappMessage,\x20%s,\x20%s','message','result','catch','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','apply','reject','end','name','index','rawAttributes','key','query','keys','filters','intersection','model','fields','length','attributes','order','sort','where','pick','filter','merge','map','options','WhatsappMessage','includeAll','include','findAll','show','params','find','create','body','update','describe','../../config/logger','whatsapp-interactions','whatsapp','read','readAt','YYYY-MM-DD\x20HH:mm:ss','UserId','agent','WhatsappInteraction','isNil','read1stAt','format','interaction','get','[WHATSAPPMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','user','role','null','AcceptMessage','acceptMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','sequelize','Sequelize','QueryTypes','SELECT','contact','User','fullname','email','internal','manual','channel','motionChannel','event','accept','acceptmessage','WhatsappInteractionId','[WHATSAPPMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','RejectMessage','rejectMessage','interface','SIP/%s','EventManager','rejectmessage','WhatsappAccount','WhatsappAccountId','type','inspect','twilio','MessageSid','messageId','MessageStatus','WhatsappAccount,\x20%s,\x20%s,\x20%s','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../config/license/hardware'];(function(_0xbb7389,_0x12b29d){var _0x12537b=function(_0x42a1f9){while(--_0x42a1f9){_0xbb7389['push'](_0xbb7389['shift']());}};_0x12537b(++_0x12b29d);}(_0x4c76,0x106));var _0x64c7=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x4c76[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x64c7('0x0'));var zipdir=require(_0x64c7('0x1'));var jsonpatch=require(_0x64c7('0x2'));var rp=require(_0x64c7('0x3'));var moment=require('moment');var BPromise=require(_0x64c7('0x4'));var Mustache=require(_0x64c7('0x5'));var util=require(_0x64c7('0x6'));var path=require(_0x64c7('0x7'));var sox=require(_0x64c7('0x8'));var csv=require(_0x64c7('0x9'));var ejs=require(_0x64c7('0xa'));var fs=require('fs');var fs_extra=require(_0x64c7('0xb'));var _=require(_0x64c7('0xc'));var squel=require(_0x64c7('0xd'));var crypto=require(_0x64c7('0xe'));var jsforce=require(_0x64c7('0xf'));var deskjs=require(_0x64c7('0x10'));var toCsv=require(_0x64c7('0x9'));var querystring=require(_0x64c7('0x11'));var Papa=require(_0x64c7('0x12'));var Redis=require(_0x64c7('0x13'));var authService=require(_0x64c7('0x14'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x64c7('0x15'));var logger=require('../../config/logger')(_0x64c7('0x16'));var utils=require(_0x64c7('0x17'));var config=require(_0x64c7('0x18'));var licenseUtil=require(_0x64c7('0x19'));var db=require('../../mysqldb')['db'];config[_0x64c7('0x1a')]=_[_0x64c7('0x1b')](config['redis'],{'host':_0x64c7('0x1c'),'port':0x18eb});var socket=require(_0x64c7('0x1d'))(new Redis(config[_0x64c7('0x1a')]));require(_0x64c7('0x1e'))['register'](socket);var jayson=require(_0x64c7('0x1f'));var client=jayson['client']['http']({'port':0x232c});var client9002=jayson[_0x64c7('0x20')][_0x64c7('0x21')]({'port':0x232a});function respondWithRpcPromise(_0x70fd6d,_0x242f65,_0x1dbb20,_0x3e755d){return new BPromise(function(_0x4d4f4c,_0x19bcc2){var _0x43ad6d=_0x3e755d||client;return _0x43ad6d[_0x64c7('0x22')](_0x70fd6d,_0x1dbb20)[_0x64c7('0x23')](function(_0x946906){logger[_0x64c7('0x24')]('WhatsappMessage,\x20%s,\x20%s',_0x242f65,'request\x20sent');logger[_0x64c7('0x25')](_0x64c7('0x26'),_0x242f65,'request\x20sent',JSON[_0x64c7('0x27')](_0x946906));if(_0x946906[_0x64c7('0x28')]){if(_0x946906[_0x64c7('0x28')]['code']===0x1f4){logger['error']('WhatsappMessage,\x20%s,\x20%s',_0x242f65,_0x946906[_0x64c7('0x28')]['message']);return _0x19bcc2(_0x946906[_0x64c7('0x28')]['message']);}logger[_0x64c7('0x28')](_0x64c7('0x29'),_0x242f65,_0x946906[_0x64c7('0x28')][_0x64c7('0x2a')]);return _0x4d4f4c(_0x946906[_0x64c7('0x28')][_0x64c7('0x2a')]);}else{logger[_0x64c7('0x24')](_0x64c7('0x29'),_0x242f65,'request\x20sent');_0x4d4f4c(_0x946906[_0x64c7('0x2b')]['message']);}})[_0x64c7('0x2c')](function(_0x3bcb74){logger[_0x64c7('0x28')](_0x64c7('0x29'),_0x242f65,_0x3bcb74);_0x19bcc2(_0x3bcb74);});});}function respondWithStatusCode(_0xf025ef,_0x57db9e){_0x57db9e=_0x57db9e||0xcc;return function(_0x2f3b56){if(_0x2f3b56){return _0xf025ef[_0x64c7('0x2d')](_0x57db9e);}return _0xf025ef['status'](_0x57db9e)['end']();};}function respondWithResult(_0x488dc4,_0x5c3caa){_0x5c3caa=_0x5c3caa||0xc8;return function(_0x131238){if(_0x131238){return _0x488dc4[_0x64c7('0x2e')](_0x5c3caa)[_0x64c7('0x2f')](_0x131238);}};}function respondWithFilteredResult(_0x5760a1,_0x7c76f3){return function(_0x39cd44){if(_0x39cd44){var _0x256b78=typeof _0x7c76f3[_0x64c7('0x30')]===_0x64c7('0x31')&&typeof _0x7c76f3[_0x64c7('0x32')]===_0x64c7('0x31');var _0x496997=_0x39cd44[_0x64c7('0x33')];var _0x268e7e=_0x256b78?0x0:_0x7c76f3[_0x64c7('0x30')];var _0x45b94e=_0x256b78?_0x39cd44[_0x64c7('0x33')]:_0x7c76f3[_0x64c7('0x30')]+_0x7c76f3[_0x64c7('0x32')];var _0x307227;if(_0x45b94e>=_0x496997){_0x45b94e=_0x496997;_0x307227=0xc8;}else{_0x307227=0xce;}_0x5760a1['status'](_0x307227);return _0x5760a1[_0x64c7('0x34')](_0x64c7('0x35'),_0x268e7e+'-'+_0x45b94e+'/'+_0x496997)[_0x64c7('0x2f')](_0x39cd44);}return null;};}function patchUpdates(_0x44eb10){return function(_0x484206){try{jsonpatch[_0x64c7('0x36')](_0x484206,_0x44eb10,!![]);}catch(_0x3ac04e){return BPromise[_0x64c7('0x37')](_0x3ac04e);}return _0x484206['save']();};}function saveUpdates(_0x693d0,_0x1759f0){return function(_0x331268){if(_0x331268){return _0x331268['update'](_0x693d0)[_0x64c7('0x23')](function(_0x4fcf87){return _0x4fcf87;});}return null;};}function removeEntity(_0xef3111,_0x5d81e5){return function(_0x1159ad){if(_0x1159ad){return _0x1159ad['destroy']()[_0x64c7('0x23')](function(){_0xef3111[_0x64c7('0x2e')](0xcc)[_0x64c7('0x38')]();});}};}function handleEntityNotFound(_0xb9dfc0,_0x12e424){return function(_0x734e02){if(!_0x734e02){_0xb9dfc0[_0x64c7('0x2d')](0x194);}return _0x734e02;};}function handleError(_0x39d762,_0x4abcaf){_0x4abcaf=_0x4abcaf||0x1f4;return function(_0x28b7c2){logger[_0x64c7('0x28')](_0x28b7c2['stack']);if(_0x28b7c2[_0x64c7('0x39')]){delete _0x28b7c2[_0x64c7('0x39')];}_0x39d762[_0x64c7('0x2e')](_0x4abcaf)['send'](_0x28b7c2);};}exports[_0x64c7('0x3a')]=function(_0xd615a3,_0x148582){var _0x2535a8={},_0x42f951={},_0x35378e={'count':0x0,'rows':[]};var _0x279877=_['map'](db['WhatsappMessage'][_0x64c7('0x3b')],function(_0x3b4045){return{'name':_0x3b4045['fieldName'],'type':_0x3b4045['type'][_0x64c7('0x3c')]};});_0x42f951['model']=_['map'](_0x279877,_0x64c7('0x39'));_0x42f951[_0x64c7('0x3d')]=_[_0x64c7('0x3e')](_0xd615a3['query']);_0x42f951[_0x64c7('0x3f')]=_[_0x64c7('0x40')](_0x42f951[_0x64c7('0x41')],_0x42f951[_0x64c7('0x3d')]);_0x2535a8['attributes']=_[_0x64c7('0x40')](_0x42f951[_0x64c7('0x41')],qs[_0x64c7('0x42')](_0xd615a3[_0x64c7('0x3d')]['fields']));_0x2535a8['attributes']=_0x2535a8['attributes'][_0x64c7('0x43')]?_0x2535a8[_0x64c7('0x44')]:_0x42f951[_0x64c7('0x41')];if(!_0xd615a3[_0x64c7('0x3d')]['hasOwnProperty']('nolimit')){_0x2535a8['limit']=qs[_0x64c7('0x32')](_0xd615a3['query']['limit']);_0x2535a8[_0x64c7('0x30')]=qs[_0x64c7('0x30')](_0xd615a3[_0x64c7('0x3d')][_0x64c7('0x30')]);}_0x2535a8[_0x64c7('0x45')]=qs[_0x64c7('0x46')](_0xd615a3[_0x64c7('0x3d')][_0x64c7('0x46')]);_0x2535a8[_0x64c7('0x47')]=qs[_0x64c7('0x3f')](_[_0x64c7('0x48')](_0xd615a3[_0x64c7('0x3d')],_0x42f951[_0x64c7('0x3f')]),_0x279877);if(_0xd615a3[_0x64c7('0x3d')][_0x64c7('0x49')]){_0x2535a8[_0x64c7('0x47')]=_[_0x64c7('0x4a')](_0x2535a8['where'],{'$or':_[_0x64c7('0x4b')](_0x279877,function(_0x5cfade){if(_0x5cfade['type']!=='VIRTUAL'){var _0x3f33f1={};_0x3f33f1[_0x5cfade[_0x64c7('0x39')]]={'$like':'%'+_0xd615a3[_0x64c7('0x3d')][_0x64c7('0x49')]+'%'};return _0x3f33f1;}})});}_0x2535a8=_[_0x64c7('0x4a')]({},_0x2535a8,_0xd615a3[_0x64c7('0x4c')]);var _0x52747d={'where':_0x2535a8[_0x64c7('0x47')]};return db[_0x64c7('0x4d')][_0x64c7('0x33')](_0x52747d)[_0x64c7('0x23')](function(_0x205966){_0x35378e[_0x64c7('0x33')]=_0x205966;if(_0xd615a3[_0x64c7('0x3d')][_0x64c7('0x4e')]){_0x2535a8[_0x64c7('0x4f')]=[{'all':!![]}];}return db['WhatsappMessage'][_0x64c7('0x50')](_0x2535a8);})[_0x64c7('0x23')](function(_0xd8e02){_0x35378e['rows']=_0xd8e02;return _0x35378e;})['then'](respondWithFilteredResult(_0x148582,_0x2535a8))['catch'](handleError(_0x148582,null));};exports[_0x64c7('0x51')]=function(_0x1e8002,_0x3c4501){var _0x5446fd={'raw':!![],'where':{'id':_0x1e8002[_0x64c7('0x52')]['id']}},_0x3d723a={};_0x3d723a[_0x64c7('0x41')]=_['keys'](db['WhatsappMessage']['rawAttributes']);_0x3d723a[_0x64c7('0x3d')]=_['keys'](_0x1e8002[_0x64c7('0x3d')]);_0x3d723a[_0x64c7('0x3f')]=_[_0x64c7('0x40')](_0x3d723a[_0x64c7('0x41')],_0x3d723a[_0x64c7('0x3d')]);_0x5446fd[_0x64c7('0x44')]=_[_0x64c7('0x40')](_0x3d723a[_0x64c7('0x41')],qs[_0x64c7('0x42')](_0x1e8002[_0x64c7('0x3d')]['fields']));_0x5446fd[_0x64c7('0x44')]=_0x5446fd['attributes'][_0x64c7('0x43')]?_0x5446fd[_0x64c7('0x44')]:_0x3d723a[_0x64c7('0x41')];if(_0x1e8002[_0x64c7('0x3d')]['includeAll']){_0x5446fd['include']=[{'all':!![]}];}_0x5446fd=_['merge']({},_0x5446fd,_0x1e8002[_0x64c7('0x4c')]);return db['WhatsappMessage'][_0x64c7('0x53')](_0x5446fd)[_0x64c7('0x23')](handleEntityNotFound(_0x3c4501,null))['then'](respondWithResult(_0x3c4501,null))[_0x64c7('0x2c')](handleError(_0x3c4501,null));};exports[_0x64c7('0x54')]=function(_0x390f2a,_0x54bd2d){return db[_0x64c7('0x4d')][_0x64c7('0x54')](_0x390f2a[_0x64c7('0x55')],{})[_0x64c7('0x23')](respondWithResult(_0x54bd2d,0xc9))[_0x64c7('0x2c')](handleError(_0x54bd2d,null));};exports[_0x64c7('0x56')]=function(_0x116ae1,_0x3dbc16){if(_0x116ae1[_0x64c7('0x55')]['id']){delete _0x116ae1[_0x64c7('0x55')]['id'];}return db[_0x64c7('0x4d')]['find']({'where':{'id':_0x116ae1[_0x64c7('0x52')]['id']}})[_0x64c7('0x23')](handleEntityNotFound(_0x3dbc16,null))[_0x64c7('0x23')](saveUpdates(_0x116ae1['body'],null))['then'](respondWithResult(_0x3dbc16,null))[_0x64c7('0x2c')](handleError(_0x3dbc16,null));};exports['destroy']=function(_0x17676a,_0x1469b7){return db[_0x64c7('0x4d')][_0x64c7('0x53')]({'where':{'id':_0x17676a[_0x64c7('0x52')]['id']}})[_0x64c7('0x23')](handleEntityNotFound(_0x1469b7,null))[_0x64c7('0x23')](removeEntity(_0x1469b7,null))[_0x64c7('0x2c')](handleError(_0x1469b7,null));};exports[_0x64c7('0x57')]=function(_0x45a93c,_0x47bd5c){return db['WhatsappMessage'][_0x64c7('0x57')]()[_0x64c7('0x23')](respondWithResult(_0x47bd5c,null))[_0x64c7('0x2c')](handleError(_0x47bd5c,null));};var interaction_log=require(_0x64c7('0x58'))(_0x64c7('0x59'));exports['accept']=function(_0x130f1f,_0x5e21b0,_0x26bf6a){var _0x2c1ffe={'agent':{},'channel':_0x64c7('0x5a')};if(_0x130f1f[_0x64c7('0x55')]['id']){delete _0x130f1f['body']['id'];}_0x130f1f[_0x64c7('0x55')][_0x64c7('0x5b')]=!![];_0x130f1f[_0x64c7('0x55')][_0x64c7('0x5c')]=moment()['format'](_0x64c7('0x5d'));_0x130f1f['body'][_0x64c7('0x5e')]=_0x130f1f['body'][_0x64c7('0x5e')]||_0x130f1f['user']['id'];_0x2c1ffe[_0x64c7('0x5f')]['id']=_0x130f1f[_0x64c7('0x55')]['UserId'];return db['WhatsappMessage'][_0x64c7('0x53')]({'where':{'id':_0x130f1f[_0x64c7('0x52')]['id'],'UserId':null}})[_0x64c7('0x23')](handleEntityNotFound(_0x5e21b0,null))[_0x64c7('0x23')](saveUpdates(_0x130f1f[_0x64c7('0x55')],null))[_0x64c7('0x23')](function(_0x340c21){if(_0x340c21){_0x2c1ffe[_0x64c7('0x2a')]=_0x340c21['get']({'plain':!![]});return db[_0x64c7('0x60')][_0x64c7('0x53')]({'where':{'id':_0x340c21['WhatsappInteractionId']}});}return null;})[_0x64c7('0x23')](handleEntityNotFound(_0x5e21b0,null))[_0x64c7('0x23')](function(_0x1d6f79){if(_0x1d6f79){return _0x1d6f79[_0x64c7('0x56')]({'UserId':_0x130f1f[_0x64c7('0x55')][_0x64c7('0x5e')],'read1stAt':_[_0x64c7('0x61')](_0x1d6f79[_0x64c7('0x62')])?moment()[_0x64c7('0x63')](_0x64c7('0x5d')):undefined});}return null;})[_0x64c7('0x23')](function(_0xe31e75){if(_0xe31e75){_0x2c1ffe[_0x64c7('0x64')]=_0xe31e75[_0x64c7('0x65')]({'plain':!![]});interaction_log[_0x64c7('0x24')](_0x64c7('0x66'),_0x130f1f['user']['id'],_0x130f1f[_0x64c7('0x67')][_0x64c7('0x39')],_0x130f1f[_0x64c7('0x67')][_0x64c7('0x68')],_0x2c1ffe[_0x64c7('0x64')]['id'],_0x130f1f[_0x64c7('0x55')]?JSON[_0x64c7('0x27')](_0x130f1f[_0x64c7('0x55')]):_0x64c7('0x69'));return respondWithRpcPromise(_0x64c7('0x6a'),_0x64c7('0x6b'),_0x2c1ffe);}return null;})[_0x64c7('0x23')](function(_0x166a8c){var _0x26c2a9=_0x64c7('0x6c')+_0x166a8c['message'][_0x64c7('0x6d')];return db[_0x64c7('0x6e')]['query'](_0x26c2a9,{'type':db[_0x64c7('0x6f')][_0x64c7('0x70')][_0x64c7('0x71')],'raw':!![]})[_0x64c7('0x23')](function(_0x340c08){return _0x340c08;});})[_0x64c7('0x23')](function(_0x52483e){if(_0x52483e){_0x2c1ffe[_0x64c7('0x2a')][_0x64c7('0x72')]=_0x52483e[0x0];if(!_0x130f1f[_0x64c7('0x55')][_0x64c7('0x5e')])return;return db[_0x64c7('0x73')][_0x64c7('0x53')]({'where':{'id':_0x130f1f['body'][_0x64c7('0x5e')],'role':'agent'},'attributes':['id',_0x64c7('0x39'),_0x64c7('0x74'),_0x64c7('0x75'),_0x64c7('0x76')],'raw':!![]});}return null;})[_0x64c7('0x23')](function(_0x5831a8){if(!_0x5831a8)return null;_0x2c1ffe[_0x64c7('0x2a')][_0x64c7('0x5f')]=_0x5831a8;return _0x2c1ffe;})[_0x64c7('0x23')](function(_0x4ec964){if(_0x4ec964){if(_0x130f1f[_0x64c7('0x55')][_0x64c7('0x77')]){_0x2c1ffe[_0x64c7('0x2a')]['interface']=util[_0x64c7('0x63')]('SIP/%s',_0x130f1f[_0x64c7('0x67')][_0x64c7('0x39')]);_0x2c1ffe[_0x64c7('0x2a')][_0x64c7('0x78')]=_0x2c1ffe[_0x64c7('0x78')];_0x2c1ffe['message'][_0x64c7('0x79')]=_0x2c1ffe[_0x64c7('0x78')];_0x2c1ffe[_0x64c7('0x2a')][_0x64c7('0x7a')]=_0x64c7('0x7b');return respondWithRpcPromise('EventManager','EventManager',{'event':_0x64c7('0x7c'),'message':_0x2c1ffe[_0x64c7('0x2a')]},client9002)[_0x64c7('0x23')](function(){return _0x2c1ffe;});}return _0x2c1ffe;}return null;})[_0x64c7('0x23')](respondWithResult(_0x5e21b0,null))['catch'](handleError(_0x5e21b0,null));};var interaction_log=require(_0x64c7('0x58'))('whatsapp-interactions');exports[_0x64c7('0x37')]=function(_0x12b221,_0xfc98cc,_0x1ee92f){var _0xb2a96b={'agent':{},'channel':'whatsapp'};if(_0x12b221['body']['id']){delete _0x12b221[_0x64c7('0x55')]['id'];}_0x12b221[_0x64c7('0x55')][_0x64c7('0x5e')]=_0x12b221[_0x64c7('0x55')][_0x64c7('0x5e')]||_0x12b221[_0x64c7('0x67')]['id'];_0xb2a96b[_0x64c7('0x5f')]['id']=_0x12b221[_0x64c7('0x55')][_0x64c7('0x5e')];return db[_0x64c7('0x4d')]['find']({'where':{'id':_0x12b221[_0x64c7('0x52')]['id'],'UserId':null}})[_0x64c7('0x23')](handleEntityNotFound(_0xfc98cc,null))[_0x64c7('0x23')](function(_0x4fc41a){if(_0x4fc41a){_0xb2a96b[_0x64c7('0x2a')]=_0x4fc41a[_0x64c7('0x65')]({'plain':!![]});return db[_0x64c7('0x60')]['find']({'where':{'id':_0x4fc41a[_0x64c7('0x7d')]}});}return null;})[_0x64c7('0x23')](handleEntityNotFound(_0xfc98cc,null))[_0x64c7('0x23')](function(_0x16bba9){if(_0x16bba9){_0xb2a96b[_0x64c7('0x64')]=_0x16bba9['get']({'plain':!![]});interaction_log[_0x64c7('0x24')](_0x64c7('0x7e'),_0x12b221[_0x64c7('0x67')]['id'],_0x12b221[_0x64c7('0x67')][_0x64c7('0x39')],_0x12b221['user']['role'],_0xb2a96b[_0x64c7('0x64')]['id'],_0x12b221['body']?JSON[_0x64c7('0x27')](_0x12b221[_0x64c7('0x55')]):_0x64c7('0x69'));return respondWithRpcPromise(_0x64c7('0x7f'),_0x64c7('0x80'),_0xb2a96b);}return null;})[_0x64c7('0x23')](function(_0x587471){var _0x1e3f74=_0x64c7('0x6c')+_0x587471['message'][_0x64c7('0x6d')];return db[_0x64c7('0x6e')]['query'](_0x1e3f74,{'type':db[_0x64c7('0x6f')]['QueryTypes'][_0x64c7('0x71')],'raw':!![]})[_0x64c7('0x23')](function(_0x450359){return _0x450359;});})['then'](function(_0x400281){if(_0x400281){_0xb2a96b[_0x64c7('0x2a')][_0x64c7('0x72')]=_0x400281[0x0];if(!_0x12b221['body']['UserId'])return;return db[_0x64c7('0x73')][_0x64c7('0x53')]({'where':{'id':_0x12b221[_0x64c7('0x55')]['UserId'],'role':_0x64c7('0x5f')},'attributes':['id',_0x64c7('0x39'),'fullname','email','internal'],'raw':!![]});}return null;})[_0x64c7('0x23')](function(_0x5e3d19){if(!_0x5e3d19)return null;_0xb2a96b[_0x64c7('0x2a')][_0x64c7('0x5f')]=_0x5e3d19;return _0xb2a96b;})[_0x64c7('0x23')](function(_0x21da77){if(_0x21da77){_0x21da77['message'][_0x64c7('0x81')]=util[_0x64c7('0x63')](_0x64c7('0x82'),_0x12b221[_0x64c7('0x67')]['name']);_0x21da77[_0x64c7('0x2a')][_0x64c7('0x78')]=_0xb2a96b[_0x64c7('0x78')];_0x21da77[_0x64c7('0x2a')]['motionChannel']=_0xb2a96b[_0x64c7('0x78')];_0x21da77[_0x64c7('0x2a')][_0x64c7('0x7a')]='reject';respondWithRpcPromise(_0x64c7('0x83'),_0x64c7('0x83'),{'event':_0x64c7('0x84'),'message':_0x21da77[_0x64c7('0x2a')]},client9002);return _0xb2a96b;}return null;})['then'](respondWithResult(_0xfc98cc,null))[_0x64c7('0x2c')](handleError(_0xfc98cc,null));};exports[_0x64c7('0x2e')]=function(_0x7df62d,_0x591a35,_0x11c53a){if(_0x7df62d[_0x64c7('0x55')]['id']){delete _0x7df62d[_0x64c7('0x55')]['id'];}var _0x37a118;return db[_0x64c7('0x4d')][_0x64c7('0x53')]({'where':{'id':_0x7df62d[_0x64c7('0x52')]['id']}})[_0x64c7('0x23')](handleEntityNotFound(_0x591a35,null))[_0x64c7('0x23')](function(_0x1193d9){if(_0x1193d9){_0x37a118=_0x1193d9;return db[_0x64c7('0x85')]['find']({'where':{'id':_0x1193d9[_0x64c7('0x86')]}});}})[_0x64c7('0x23')](handleEntityNotFound(_0x591a35,null))[_0x64c7('0x23')](function(_0xf0af32){if(_0xf0af32){logger[_0x64c7('0x25')]('WhatsppMessage,\x20%s,\x20%s,\x20%s',_0x64c7('0x2e'),'received\x20delivery\x20report\x20from',_0xf0af32[_0x64c7('0x87')],util[_0x64c7('0x88')](_0x7df62d['body'],{'showHidden':![],'depth':null}));switch(_0xf0af32[_0x64c7('0x87')]){case _0x64c7('0x89'):if(_0x7df62d[_0x64c7('0x55')][_0x64c7('0x8a')]&&_0x7df62d[_0x64c7('0x55')][_0x64c7('0x8a')]===_0x37a118[_0x64c7('0x8b')]&&_0x7df62d[_0x64c7('0x55')][_0x64c7('0x8c')]&&_0x7df62d['body']['MessageStatus']==='read'){return _0x37a118[_0x64c7('0x56')]({'read':!![]});}else{logger[_0x64c7('0x28')](_0x64c7('0x8d'),_0x64c7('0x2e'),_0x64c7('0x89'),util[_0x64c7('0x88')](_0x7df62d['body'],{'showHidden':![],'depth':null}));}break;}return _0x37a118;}})[_0x64c7('0x23')](respondWithResult(_0x591a35,null))[_0x64c7('0x2c')](handleError(_0x591a35,null));};
\ No newline at end of file
+var _0x504a=['sendStatus','status','end','undefined','limit','count','offset','set','Content-Range','json','apply','reject','update','destroy','stack','name','send','index','WhatsappMessage','rawAttributes','model','map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','pick','filter','where','merge','type','VIRTUAL','options','then','includeAll','include','findAll','rows','catch','show','params','find','create','body','describe','whatsapp','read','readAt','format','YYYY-MM-DD\x20HH:mm:ss','UserId','user','agent','get','WhatsappInteractionId','isNil','read1stAt','interaction','[WHATSAPPMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','stringify','acceptMessage','sequelize','Sequelize','QueryTypes','SELECT','User','fullname','email','internal','manual','channel','motionChannel','event','accept','EventManager','whatsapp-interactions','WhatsappInteraction','[WHATSAPPMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','null','RejectMessage','interface','SIP/%s','rejectmessage','WhatsappAccount','WhatsappAccountId','WhatsppMessage,\x20%s,\x20%s,\x20%s','received\x20delivery\x20report\x20from','inspect','twilio','MessageSid','messageId','MessageStatus','WhatsappAccount,\x20%s,\x20%s,\x20%s','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','ejs','fs-extra','lodash','crypto','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./whatsappMessage.socket','register','jayson/promise','client','http','request','info','WhatsappMessage,\x20%s,\x20%s','request\x20sent','debug','WhatsappMessage,\x20%s,\x20%s,\x20%s','error','code','message','result'];(function(_0x518cda,_0x5c5d9f){var _0x16f06c=function(_0x1b6083){while(--_0x1b6083){_0x518cda['push'](_0x518cda['shift']());}};_0x16f06c(++_0x5c5d9f);}(_0x504a,0x64));var _0xa504=function(_0x1befb6,_0x20110a){_0x1befb6=_0x1befb6-0x0;var _0x3efa4c=_0x504a[_0x1befb6];return _0x3efa4c;};'use strict';var emlformat=require(_0xa504('0x0'));var rimraf=require(_0xa504('0x1'));var zipdir=require(_0xa504('0x2'));var jsonpatch=require(_0xa504('0x3'));var rp=require(_0xa504('0x4'));var moment=require(_0xa504('0x5'));var BPromise=require('bluebird');var Mustache=require(_0xa504('0x6'));var util=require(_0xa504('0x7'));var path=require(_0xa504('0x8'));var sox=require(_0xa504('0x9'));var csv=require('to-csv');var ejs=require(_0xa504('0xa'));var fs=require('fs');var fs_extra=require(_0xa504('0xb'));var _=require(_0xa504('0xc'));var squel=require('squel');var crypto=require(_0xa504('0xd'));var jsforce=require('jsforce');var deskjs=require(_0xa504('0xe'));var toCsv=require('to-csv');var querystring=require(_0xa504('0xf'));var Papa=require(_0xa504('0x10'));var Redis=require(_0xa504('0x11'));var authService=require('../../components/auth/service');var qs=require(_0xa504('0x12'));var as=require(_0xa504('0x13'));var hardwareService=require(_0xa504('0x14'));var logger=require(_0xa504('0x15'))('api');var utils=require(_0xa504('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0xa504('0x17'));var db=require(_0xa504('0x18'))['db'];config['redis']=_['defaults'](config[_0xa504('0x19')],{'host':_0xa504('0x1a'),'port':0x18eb});var socket=require(_0xa504('0x1b'))(new Redis(config[_0xa504('0x19')]));require(_0xa504('0x1c'))[_0xa504('0x1d')](socket);var jayson=require(_0xa504('0x1e'));var client=jayson[_0xa504('0x1f')]['http']({'port':0x232c});var client9002=jayson['client'][_0xa504('0x20')]({'port':0x232a});function respondWithRpcPromise(_0x327c24,_0x2fd621,_0x53ba81,_0x47c77f){return new BPromise(function(_0x336d4d,_0x3420fd){var _0x6ff30b=_0x47c77f||client;return _0x6ff30b[_0xa504('0x21')](_0x327c24,_0x53ba81)['then'](function(_0x1228a9){logger[_0xa504('0x22')](_0xa504('0x23'),_0x2fd621,_0xa504('0x24'));logger[_0xa504('0x25')](_0xa504('0x26'),_0x2fd621,_0xa504('0x24'),JSON['stringify'](_0x1228a9));if(_0x1228a9[_0xa504('0x27')]){if(_0x1228a9[_0xa504('0x27')][_0xa504('0x28')]===0x1f4){logger[_0xa504('0x27')]('WhatsappMessage,\x20%s,\x20%s',_0x2fd621,_0x1228a9['error']['message']);return _0x3420fd(_0x1228a9[_0xa504('0x27')][_0xa504('0x29')]);}logger[_0xa504('0x27')](_0xa504('0x23'),_0x2fd621,_0x1228a9['error'][_0xa504('0x29')]);return _0x336d4d(_0x1228a9[_0xa504('0x27')][_0xa504('0x29')]);}else{logger[_0xa504('0x22')]('WhatsappMessage,\x20%s,\x20%s',_0x2fd621,_0xa504('0x24'));_0x336d4d(_0x1228a9[_0xa504('0x2a')][_0xa504('0x29')]);}})['catch'](function(_0x113a2d){logger[_0xa504('0x27')](_0xa504('0x23'),_0x2fd621,_0x113a2d);_0x3420fd(_0x113a2d);});});}function respondWithStatusCode(_0x2d2d77,_0x4f1197){_0x4f1197=_0x4f1197||0xcc;return function(_0x52c369){if(_0x52c369){return _0x2d2d77[_0xa504('0x2b')](_0x4f1197);}return _0x2d2d77[_0xa504('0x2c')](_0x4f1197)[_0xa504('0x2d')]();};}function respondWithResult(_0x339bbf,_0x52d680){_0x52d680=_0x52d680||0xc8;return function(_0x2c53a7){if(_0x2c53a7){return _0x339bbf[_0xa504('0x2c')](_0x52d680)['json'](_0x2c53a7);}};}function respondWithFilteredResult(_0x271cad,_0x3bd480){return function(_0x2cc706){if(_0x2cc706){var _0x36ca7c=typeof _0x3bd480['offset']===_0xa504('0x2e')&&typeof _0x3bd480[_0xa504('0x2f')]===_0xa504('0x2e');var _0x155fca=_0x2cc706[_0xa504('0x30')];var _0x1529ab=_0x36ca7c?0x0:_0x3bd480[_0xa504('0x31')];var _0x44d926=_0x36ca7c?_0x2cc706[_0xa504('0x30')]:_0x3bd480['offset']+_0x3bd480[_0xa504('0x2f')];var _0x27fcec;if(_0x44d926>=_0x155fca){_0x44d926=_0x155fca;_0x27fcec=0xc8;}else{_0x27fcec=0xce;}_0x271cad[_0xa504('0x2c')](_0x27fcec);return _0x271cad[_0xa504('0x32')](_0xa504('0x33'),_0x1529ab+'-'+_0x44d926+'/'+_0x155fca)[_0xa504('0x34')](_0x2cc706);}return null;};}function patchUpdates(_0x4309d3){return function(_0x24655b){try{jsonpatch[_0xa504('0x35')](_0x24655b,_0x4309d3,!![]);}catch(_0x37ac18){return BPromise[_0xa504('0x36')](_0x37ac18);}return _0x24655b['save']();};}function saveUpdates(_0x41893c,_0x47665e){return function(_0x119958){if(_0x119958){return _0x119958[_0xa504('0x37')](_0x41893c)['then'](function(_0x5bc5ec){return _0x5bc5ec;});}return null;};}function removeEntity(_0x4010c0,_0x44a2fa){return function(_0x58134a){if(_0x58134a){return _0x58134a[_0xa504('0x38')]()['then'](function(){_0x4010c0[_0xa504('0x2c')](0xcc)[_0xa504('0x2d')]();});}};}function handleEntityNotFound(_0x24c03e,_0x7b631d){return function(_0x3f880d){if(!_0x3f880d){_0x24c03e[_0xa504('0x2b')](0x194);}return _0x3f880d;};}function handleError(_0x1750b9,_0x52afc3){_0x52afc3=_0x52afc3||0x1f4;return function(_0x488310){logger['error'](_0x488310[_0xa504('0x39')]);if(_0x488310['name']){delete _0x488310[_0xa504('0x3a')];}_0x1750b9[_0xa504('0x2c')](_0x52afc3)[_0xa504('0x3b')](_0x488310);};}exports[_0xa504('0x3c')]=function(_0x118a66,_0x4cc1a7){var _0x289949={},_0x5d60f9={},_0x5f0f6d={'count':0x0,'rows':[]};var _0x5916d6=_['map'](db[_0xa504('0x3d')][_0xa504('0x3e')],function(_0x405e1f){return{'name':_0x405e1f['fieldName'],'type':_0x405e1f['type']['key']};});_0x5d60f9[_0xa504('0x3f')]=_[_0xa504('0x40')](_0x5916d6,_0xa504('0x3a'));_0x5d60f9[_0xa504('0x41')]=_[_0xa504('0x42')](_0x118a66[_0xa504('0x41')]);_0x5d60f9[_0xa504('0x43')]=_[_0xa504('0x44')](_0x5d60f9[_0xa504('0x3f')],_0x5d60f9['query']);_0x289949[_0xa504('0x45')]=_[_0xa504('0x44')](_0x5d60f9['model'],qs[_0xa504('0x46')](_0x118a66[_0xa504('0x41')]['fields']));_0x289949['attributes']=_0x289949['attributes'][_0xa504('0x47')]?_0x289949[_0xa504('0x45')]:_0x5d60f9[_0xa504('0x3f')];if(!_0x118a66['query'][_0xa504('0x48')](_0xa504('0x49'))){_0x289949['limit']=qs[_0xa504('0x2f')](_0x118a66[_0xa504('0x41')][_0xa504('0x2f')]);_0x289949[_0xa504('0x31')]=qs[_0xa504('0x31')](_0x118a66[_0xa504('0x41')]['offset']);}_0x289949['order']=qs[_0xa504('0x4a')](_0x118a66[_0xa504('0x41')][_0xa504('0x4a')]);_0x289949['where']=qs[_0xa504('0x43')](_[_0xa504('0x4b')](_0x118a66[_0xa504('0x41')],_0x5d60f9[_0xa504('0x43')]),_0x5916d6);if(_0x118a66[_0xa504('0x41')][_0xa504('0x4c')]){_0x289949[_0xa504('0x4d')]=_[_0xa504('0x4e')](_0x289949[_0xa504('0x4d')],{'$or':_[_0xa504('0x40')](_0x5916d6,function(_0x8cc076){if(_0x8cc076[_0xa504('0x4f')]!==_0xa504('0x50')){var _0x454d1c={};_0x454d1c[_0x8cc076['name']]={'$like':'%'+_0x118a66[_0xa504('0x41')][_0xa504('0x4c')]+'%'};return _0x454d1c;}})});}_0x289949=_[_0xa504('0x4e')]({},_0x289949,_0x118a66[_0xa504('0x51')]);var _0x2d9d03={'where':_0x289949[_0xa504('0x4d')]};return db[_0xa504('0x3d')]['count'](_0x2d9d03)[_0xa504('0x52')](function(_0x1c39ba){_0x5f0f6d[_0xa504('0x30')]=_0x1c39ba;if(_0x118a66[_0xa504('0x41')][_0xa504('0x53')]){_0x289949[_0xa504('0x54')]=[{'all':!![]}];}return db[_0xa504('0x3d')][_0xa504('0x55')](_0x289949);})['then'](function(_0x60e1d1){_0x5f0f6d[_0xa504('0x56')]=_0x60e1d1;return _0x5f0f6d;})[_0xa504('0x52')](respondWithFilteredResult(_0x4cc1a7,_0x289949))[_0xa504('0x57')](handleError(_0x4cc1a7,null));};exports[_0xa504('0x58')]=function(_0x5163a9,_0x215345){var _0x2b3b5c={'raw':!![],'where':{'id':_0x5163a9[_0xa504('0x59')]['id']}},_0xde8e8b={};_0xde8e8b[_0xa504('0x3f')]=_[_0xa504('0x42')](db[_0xa504('0x3d')]['rawAttributes']);_0xde8e8b[_0xa504('0x41')]=_['keys'](_0x5163a9[_0xa504('0x41')]);_0xde8e8b['filters']=_['intersection'](_0xde8e8b[_0xa504('0x3f')],_0xde8e8b['query']);_0x2b3b5c[_0xa504('0x45')]=_[_0xa504('0x44')](_0xde8e8b[_0xa504('0x3f')],qs[_0xa504('0x46')](_0x5163a9[_0xa504('0x41')]['fields']));_0x2b3b5c[_0xa504('0x45')]=_0x2b3b5c[_0xa504('0x45')]['length']?_0x2b3b5c[_0xa504('0x45')]:_0xde8e8b['model'];if(_0x5163a9['query'][_0xa504('0x53')]){_0x2b3b5c[_0xa504('0x54')]=[{'all':!![]}];}_0x2b3b5c=_[_0xa504('0x4e')]({},_0x2b3b5c,_0x5163a9['options']);return db['WhatsappMessage'][_0xa504('0x5a')](_0x2b3b5c)['then'](handleEntityNotFound(_0x215345,null))[_0xa504('0x52')](respondWithResult(_0x215345,null))[_0xa504('0x57')](handleError(_0x215345,null));};exports[_0xa504('0x5b')]=function(_0x1a738a,_0xd7350b){return db[_0xa504('0x3d')]['create'](_0x1a738a[_0xa504('0x5c')],{})[_0xa504('0x52')](respondWithResult(_0xd7350b,0xc9))[_0xa504('0x57')](handleError(_0xd7350b,null));};exports[_0xa504('0x37')]=function(_0x40af42,_0x552004){if(_0x40af42[_0xa504('0x5c')]['id']){delete _0x40af42[_0xa504('0x5c')]['id'];}return db['WhatsappMessage'][_0xa504('0x5a')]({'where':{'id':_0x40af42[_0xa504('0x59')]['id']}})['then'](handleEntityNotFound(_0x552004,null))[_0xa504('0x52')](saveUpdates(_0x40af42[_0xa504('0x5c')],null))[_0xa504('0x52')](respondWithResult(_0x552004,null))['catch'](handleError(_0x552004,null));};exports[_0xa504('0x38')]=function(_0x391aea,_0x3d1c66){return db[_0xa504('0x3d')][_0xa504('0x5a')]({'where':{'id':_0x391aea['params']['id']}})[_0xa504('0x52')](handleEntityNotFound(_0x3d1c66,null))['then'](removeEntity(_0x3d1c66,null))['catch'](handleError(_0x3d1c66,null));};exports[_0xa504('0x5d')]=function(_0x410a87,_0x27c0dc){return db[_0xa504('0x3d')]['describe']()['then'](respondWithResult(_0x27c0dc,null))[_0xa504('0x57')](handleError(_0x27c0dc,null));};var interaction_log=require('../../config/logger')('whatsapp-interactions');exports['accept']=function(_0x21ccab,_0x9310da,_0x9619c){var _0xf6067d={'agent':{},'channel':_0xa504('0x5e')};if(_0x21ccab[_0xa504('0x5c')]['id']){delete _0x21ccab['body']['id'];}_0x21ccab[_0xa504('0x5c')][_0xa504('0x5f')]=!![];_0x21ccab[_0xa504('0x5c')][_0xa504('0x60')]=moment()[_0xa504('0x61')](_0xa504('0x62'));_0x21ccab[_0xa504('0x5c')][_0xa504('0x63')]=_0x21ccab[_0xa504('0x5c')][_0xa504('0x63')]||_0x21ccab[_0xa504('0x64')]['id'];_0xf6067d[_0xa504('0x65')]['id']=_0x21ccab[_0xa504('0x5c')]['UserId'];return db['WhatsappMessage'][_0xa504('0x5a')]({'where':{'id':_0x21ccab['params']['id'],'UserId':null}})[_0xa504('0x52')](handleEntityNotFound(_0x9310da,null))['then'](saveUpdates(_0x21ccab[_0xa504('0x5c')],null))[_0xa504('0x52')](function(_0x59fbad){if(_0x59fbad){_0xf6067d[_0xa504('0x29')]=_0x59fbad[_0xa504('0x66')]({'plain':!![]});return db['WhatsappInteraction'][_0xa504('0x5a')]({'where':{'id':_0x59fbad[_0xa504('0x67')]}});}return null;})['then'](handleEntityNotFound(_0x9310da,null))['then'](function(_0x309b99){if(_0x309b99){return _0x309b99[_0xa504('0x37')]({'UserId':_0x21ccab[_0xa504('0x5c')][_0xa504('0x63')],'read1stAt':_[_0xa504('0x68')](_0x309b99[_0xa504('0x69')])?moment()['format'](_0xa504('0x62')):undefined});}return null;})[_0xa504('0x52')](function(_0x519bbc){if(_0x519bbc){_0xf6067d[_0xa504('0x6a')]=_0x519bbc['get']({'plain':!![]});interaction_log[_0xa504('0x22')](_0xa504('0x6b'),_0x21ccab[_0xa504('0x64')]['id'],_0x21ccab[_0xa504('0x64')][_0xa504('0x3a')],_0x21ccab[_0xa504('0x64')][_0xa504('0x6c')],_0xf6067d[_0xa504('0x6a')]['id'],_0x21ccab[_0xa504('0x5c')]?JSON[_0xa504('0x6d')](_0x21ccab[_0xa504('0x5c')]):'null');return respondWithRpcPromise('AcceptMessage',_0xa504('0x6e'),_0xf6067d);}return null;})[_0xa504('0x52')](function(_0x3baed0){var _0x9bc96d='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x3baed0['message']['ContactId'];return db[_0xa504('0x6f')][_0xa504('0x41')](_0x9bc96d,{'type':db[_0xa504('0x70')][_0xa504('0x71')][_0xa504('0x72')],'raw':!![]})[_0xa504('0x52')](function(_0x11231d){return _0x11231d;});})[_0xa504('0x52')](function(_0x4c8f10){if(_0x4c8f10){_0xf6067d[_0xa504('0x29')]['contact']=_0x4c8f10[0x0];if(!_0x21ccab[_0xa504('0x5c')][_0xa504('0x63')])return;return db[_0xa504('0x73')][_0xa504('0x5a')]({'where':{'id':_0x21ccab[_0xa504('0x5c')][_0xa504('0x63')],'role':_0xa504('0x65')},'attributes':['id',_0xa504('0x3a'),_0xa504('0x74'),_0xa504('0x75'),_0xa504('0x76')],'raw':!![]});}return null;})[_0xa504('0x52')](function(_0x199092){if(!_0x199092)return null;_0xf6067d[_0xa504('0x29')][_0xa504('0x65')]=_0x199092;return _0xf6067d;})[_0xa504('0x52')](function(_0x4e5e16){if(_0x4e5e16){if(_0x21ccab[_0xa504('0x5c')][_0xa504('0x77')]){_0xf6067d[_0xa504('0x29')]['interface']=util[_0xa504('0x61')]('SIP/%s',_0x21ccab[_0xa504('0x64')][_0xa504('0x3a')]);_0xf6067d['message'][_0xa504('0x78')]=_0xf6067d[_0xa504('0x78')];_0xf6067d[_0xa504('0x29')][_0xa504('0x79')]=_0xf6067d[_0xa504('0x78')];_0xf6067d[_0xa504('0x29')][_0xa504('0x7a')]=_0xa504('0x7b');return respondWithRpcPromise(_0xa504('0x7c'),_0xa504('0x7c'),{'event':'acceptmessage','message':_0xf6067d[_0xa504('0x29')]},client9002)[_0xa504('0x52')](function(){return _0xf6067d;});}return _0xf6067d;}return null;})[_0xa504('0x52')](respondWithResult(_0x9310da,null))['catch'](handleError(_0x9310da,null));};var interaction_log=require(_0xa504('0x15'))(_0xa504('0x7d'));exports[_0xa504('0x36')]=function(_0x305b92,_0x494346,_0x13da4f){var _0x2d3ebb={'agent':{},'channel':'whatsapp'};if(_0x305b92[_0xa504('0x5c')]['id']){delete _0x305b92['body']['id'];}_0x305b92[_0xa504('0x5c')][_0xa504('0x63')]=_0x305b92[_0xa504('0x5c')][_0xa504('0x63')]||_0x305b92[_0xa504('0x64')]['id'];_0x2d3ebb[_0xa504('0x65')]['id']=_0x305b92[_0xa504('0x5c')][_0xa504('0x63')];return db[_0xa504('0x3d')][_0xa504('0x5a')]({'where':{'id':_0x305b92[_0xa504('0x59')]['id'],'UserId':null}})[_0xa504('0x52')](handleEntityNotFound(_0x494346,null))[_0xa504('0x52')](function(_0x5039e4){if(_0x5039e4){_0x2d3ebb[_0xa504('0x29')]=_0x5039e4[_0xa504('0x66')]({'plain':!![]});return db[_0xa504('0x7e')]['find']({'where':{'id':_0x5039e4[_0xa504('0x67')]}});}return null;})[_0xa504('0x52')](handleEntityNotFound(_0x494346,null))[_0xa504('0x52')](function(_0x29d8d5){if(_0x29d8d5){_0x2d3ebb[_0xa504('0x6a')]=_0x29d8d5[_0xa504('0x66')]({'plain':!![]});interaction_log[_0xa504('0x22')](_0xa504('0x7f'),_0x305b92[_0xa504('0x64')]['id'],_0x305b92[_0xa504('0x64')]['name'],_0x305b92[_0xa504('0x64')][_0xa504('0x6c')],_0x2d3ebb[_0xa504('0x6a')]['id'],_0x305b92['body']?JSON[_0xa504('0x6d')](_0x305b92[_0xa504('0x5c')]):_0xa504('0x80'));return respondWithRpcPromise(_0xa504('0x81'),'rejectMessage',_0x2d3ebb);}return null;})[_0xa504('0x52')](function(_0x5548ce){var _0x4f14cc='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x5548ce[_0xa504('0x29')]['ContactId'];return db[_0xa504('0x6f')][_0xa504('0x41')](_0x4f14cc,{'type':db[_0xa504('0x70')][_0xa504('0x71')]['SELECT'],'raw':!![]})[_0xa504('0x52')](function(_0x2a9ee2){return _0x2a9ee2;});})[_0xa504('0x52')](function(_0x560193){if(_0x560193){_0x2d3ebb[_0xa504('0x29')]['contact']=_0x560193[0x0];if(!_0x305b92[_0xa504('0x5c')][_0xa504('0x63')])return;return db[_0xa504('0x73')][_0xa504('0x5a')]({'where':{'id':_0x305b92[_0xa504('0x5c')][_0xa504('0x63')],'role':'agent'},'attributes':['id','name','fullname',_0xa504('0x75'),_0xa504('0x76')],'raw':!![]});}return null;})[_0xa504('0x52')](function(_0x35650b){if(!_0x35650b)return null;_0x2d3ebb[_0xa504('0x29')][_0xa504('0x65')]=_0x35650b;return _0x2d3ebb;})['then'](function(_0x5c3eae){if(_0x5c3eae){_0x5c3eae[_0xa504('0x29')][_0xa504('0x82')]=util['format'](_0xa504('0x83'),_0x305b92[_0xa504('0x64')][_0xa504('0x3a')]);_0x5c3eae['message']['channel']=_0x2d3ebb[_0xa504('0x78')];_0x5c3eae[_0xa504('0x29')]['motionChannel']=_0x2d3ebb['channel'];_0x5c3eae[_0xa504('0x29')][_0xa504('0x7a')]=_0xa504('0x36');respondWithRpcPromise(_0xa504('0x7c'),_0xa504('0x7c'),{'event':_0xa504('0x84'),'message':_0x5c3eae['message']},client9002);return _0x2d3ebb;}return null;})['then'](respondWithResult(_0x494346,null))[_0xa504('0x57')](handleError(_0x494346,null));};exports[_0xa504('0x2c')]=function(_0x47e859,_0x5d6f9f,_0x18c38e){if(_0x47e859[_0xa504('0x5c')]['id']){delete _0x47e859[_0xa504('0x5c')]['id'];}var _0x5c8567;return db[_0xa504('0x3d')][_0xa504('0x5a')]({'where':{'id':_0x47e859[_0xa504('0x59')]['id']}})['then'](handleEntityNotFound(_0x5d6f9f,null))[_0xa504('0x52')](function(_0xa4a4f0){if(_0xa4a4f0){_0x5c8567=_0xa4a4f0;return db[_0xa504('0x85')][_0xa504('0x5a')]({'where':{'id':_0xa4a4f0[_0xa504('0x86')]}});}})[_0xa504('0x52')](handleEntityNotFound(_0x5d6f9f,null))[_0xa504('0x52')](function(_0x228db3){if(_0x228db3){logger[_0xa504('0x25')](_0xa504('0x87'),_0xa504('0x2c'),_0xa504('0x88'),_0x228db3['type'],util[_0xa504('0x89')](_0x47e859[_0xa504('0x5c')],{'showHidden':![],'depth':null}));switch(_0x228db3[_0xa504('0x4f')]){case _0xa504('0x8a'):if(_0x47e859[_0xa504('0x5c')][_0xa504('0x8b')]&&_0x47e859[_0xa504('0x5c')][_0xa504('0x8b')]===_0x5c8567[_0xa504('0x8c')]&&_0x47e859[_0xa504('0x5c')][_0xa504('0x8d')]&&_0x47e859[_0xa504('0x5c')][_0xa504('0x8d')]===_0xa504('0x5f')){return _0x5c8567[_0xa504('0x37')]({'read':!![]});}else{logger['error'](_0xa504('0x8e'),_0xa504('0x2c'),'twilio',util['inspect'](_0x47e859[_0xa504('0x5c')],{'showHidden':![],'depth':null}));}break;}return _0x5c8567;}})['then'](respondWithResult(_0x5d6f9f,null))['catch'](handleError(_0x5d6f9f,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc900=['remove','emit','hasOwnProperty','hook','WhatsappMessage','setMaxListeners','save'];(function(_0x31ef5f,_0x2f9756){var _0x515234=function(_0x28a907){while(--_0x28a907){_0x31ef5f['push'](_0x31ef5f['shift']());}};_0x515234(++_0x2f9756);}(_0xc900,0xb3));var _0x0c90=function(_0x2861f6,_0x3c09ae){_0x2861f6=_0x2861f6-0x0;var _0x585931=_0xc900[_0x2861f6];return _0x585931;};'use strict';var EventEmitter=require('events');var WhatsappMessage=require('../../mysqldb')['db'][_0x0c90('0x0')];var WhatsappMessageEvents=new EventEmitter();WhatsappMessageEvents[_0x0c90('0x1')](0x0);var events={'afterCreate':_0x0c90('0x2'),'afterUpdate':'update','afterDestroy':_0x0c90('0x3')};function emitEvent(_0x3072aa){return function(_0x492f22,_0x188bba,_0x3f351c){WhatsappMessageEvents[_0x0c90('0x4')](_0x3072aa+':'+_0x492f22['id'],_0x492f22);WhatsappMessageEvents[_0x0c90('0x4')](_0x3072aa,_0x492f22);_0x3f351c(null);};}for(var e in events){if(events[_0x0c90('0x5')](e)){var event=events[e];WhatsappMessage[_0x0c90('0x6')](e,emitEvent(event));}}module['exports']=WhatsappMessageEvents;
\ No newline at end of file
+var _0x23a3=['update','remove','emit','hasOwnProperty','exports','setMaxListeners'];(function(_0x4cedbe,_0x17c16d){var _0x47aee5=function(_0x24150d){while(--_0x24150d){_0x4cedbe['push'](_0x4cedbe['shift']());}};_0x47aee5(++_0x17c16d);}(_0x23a3,0x131));var _0x323a=function(_0x30720e,_0x55753f){_0x30720e=_0x30720e-0x0;var _0x5674ac=_0x23a3[_0x30720e];return _0x5674ac;};'use strict';var EventEmitter=require('events');var WhatsappMessage=require('../../mysqldb')['db']['WhatsappMessage'];var WhatsappMessageEvents=new EventEmitter();WhatsappMessageEvents[_0x323a('0x0')](0x0);var events={'afterCreate':'save','afterUpdate':_0x323a('0x1'),'afterDestroy':_0x323a('0x2')};function emitEvent(_0x122b97){return function(_0x250485,_0x46030e,_0x180066){WhatsappMessageEvents[_0x323a('0x3')](_0x122b97+':'+_0x250485['id'],_0x250485);WhatsappMessageEvents[_0x323a('0x3')](_0x122b97,_0x250485);_0x180066(null);};}for(var e in events){if(events[_0x323a('0x4')](e)){var event=events[e];WhatsappMessage['hook'](e,emitEvent(event));}}module[_0x323a('0x5')]=WhatsappMessageEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb2f1=['/messages/','POST','application/json','statuses','message_id','err','WhatsappMessage,\x20%s','lodash','util','../../config/logger','api','request-promise','node-fetch','path','rimraf','../../config/environment','./whatsappMessage.attributes','exports','define','WhatsappMessage','whatsapp_messages','messageId','fti_whatsapp_messages','body','FULLTEXT','models','get','direction','toLowerCase','secret','WhatsappInteraction','findOne','then','createdAt','error','out','WhatsappAccountId','type','twilio','accountSid','authToken','phone','whatsapp:','remote','/status?token=','token','update','sid','catch','WhatsappMessage,\x20%s,\x20%s,\x20%s','afterCreate','inspect','sinch','baseUrl'];(function(_0x10e8ed,_0x384a0d){var _0x4aea4a=function(_0x486ad1){while(--_0x486ad1){_0x10e8ed['push'](_0x10e8ed['shift']());}};_0x4aea4a(++_0x384a0d);}(_0xb2f1,0x115));var _0x1b2f=function(_0x3b2aa2,_0x244631){_0x3b2aa2=_0x3b2aa2-0x0;var _0x2ede15=_0xb2f1[_0x3b2aa2];return _0x2ede15;};'use strict';var _=require(_0x1b2f('0x0'));var util=require(_0x1b2f('0x1'));var logger=require(_0x1b2f('0x2'))(_0x1b2f('0x3'));var moment=require('moment');var BPromise=require('bluebird');var rp=require(_0x1b2f('0x4'));var fetch=require(_0x1b2f('0x5'));var fs=require('fs');var path=require(_0x1b2f('0x6'));var rimraf=require(_0x1b2f('0x7'));var config=require(_0x1b2f('0x8'));var attributes=require(_0x1b2f('0x9'));module[_0x1b2f('0xa')]=function(_0x37f00c,_0x68ce39){return _0x37f00c[_0x1b2f('0xb')](_0x1b2f('0xc'),attributes,{'tableName':_0x1b2f('0xd'),'paranoid':![],'indexes':[{'name':_0x1b2f('0xe'),'fields':['messageId']},{'name':_0x1b2f('0xf'),'fields':[_0x1b2f('0x10')],'type':_0x1b2f('0x11')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x17dd34,_0x49634a,_0x46a428){var _0x5a1af0=_0x37f00c[_0x1b2f('0x12')];var _0x5e8054=_0x17dd34[_0x1b2f('0x13')]({'plain':!![]});if(_0x5e8054['direction']['toLowerCase']()==='in'||_0x5e8054[_0x1b2f('0x14')][_0x1b2f('0x15')]()==='out'&&!_0x5e8054[_0x1b2f('0x16')]&&!_['isNil'](_0x5e8054['UserId'])){_0x5a1af0[_0x1b2f('0x17')][_0x1b2f('0x18')]({'where':{'id':_0x5e8054['WhatsappInteractionId']}})[_0x1b2f('0x19')](function(_0x3c4474){if(_0x3c4474){_0x3c4474['update']({'lastMsgAt':_0x5e8054[_0x1b2f('0x1a')],'lastMsgDirection':_0x5e8054['direction']['toLowerCase']()});}})['catch'](function(_0x5bb465){console[_0x1b2f('0x1b')](_0x5bb465);});}if(_0x5e8054[_0x1b2f('0x14')]===_0x1b2f('0x1c')&&!_0x5e8054[_0x1b2f('0x16')]){var _0x12cdb4;_0x5a1af0['WhatsappAccount']['find']({'where':{'id':_0x5e8054[_0x1b2f('0x1d')]},'raw':!![]})[_0x1b2f('0x19')](function(_0x3de3f4){_0x12cdb4=_0x3de3f4;if(_0x12cdb4&&_0x12cdb4[_0x1b2f('0x1e')]){switch(_0x12cdb4['type']){case _0x1b2f('0x1f'):var _0x2ee02c=require('twilio');if(_0x12cdb4[_0x1b2f('0x20')]&&_0x12cdb4[_0x1b2f('0x21')]&&_0x12cdb4[_0x1b2f('0x22')]){var _0x7f45b8=new _0x2ee02c(_0x12cdb4[_0x1b2f('0x20')],_0x12cdb4[_0x1b2f('0x21')]);_0x7f45b8['messages']['create']({'body':_0x5e8054[_0x1b2f('0x10')],'to':_0x1b2f('0x23')+_0x5e8054[_0x1b2f('0x22')],'from':'whatsapp:'+_0x12cdb4[_0x1b2f('0x22')],'statusCallback':_0x12cdb4[_0x1b2f('0x24')]+'/api/whatsapp/messages/'+_0x5e8054['id']+_0x1b2f('0x25')+_0x12cdb4[_0x1b2f('0x26')]})[_0x1b2f('0x19')](function(_0xfbc975){if(_0xfbc975['sid']){return _0x17dd34[_0x1b2f('0x27')]({'messageId':_0xfbc975[_0x1b2f('0x28')]});}})[_0x1b2f('0x29')](function(_0x3d1e1a){logger[_0x1b2f('0x1b')](_0x1b2f('0x2a'),_0x1b2f('0x2b'),_0x1b2f('0x1f'),util[_0x1b2f('0x2c')](_0x3d1e1a,{'showHidden':![],'depth':null}));});}else{logger[_0x1b2f('0x1b')]('WhatsappMessage,\x20%s,\x20%s,\x20%s','afterCreate',_0x1b2f('0x1f'),'Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken');}break;case _0x1b2f('0x2d'):var _0x1f031c=_0x12cdb4['accountSid'];var _0x193cb5=_0x12cdb4[_0x1b2f('0x21')];var _0x2cbfeb=_0x12cdb4[_0x1b2f('0x2e')]+'/whatsapp/v1/'+_0x1f031c+_0x1b2f('0x2f');var _0x51264a={'to':[_0x5e8054[_0x1b2f('0x22')]],'message':{'type':'text','text':_0x5e8054[_0x1b2f('0x10')]}};var _0x1b6e62={'method':_0x1b2f('0x30'),'uri':_0x2cbfeb,'headers':{'Authorization':'Bearer\x20'+_0x193cb5,'Content-Type':_0x1b2f('0x31')},'body':_0x51264a,'json':!![]};rp(_0x1b6e62)['then'](function(_0xce1d48){if(_0xce1d48[_0x1b2f('0x32')][0x0][_0x1b2f('0x33')]){return _0x17dd34[_0x1b2f('0x27')]({'messageId':_0xce1d48[_0x1b2f('0x32')][0x0][_0x1b2f('0x33')]});}})[_0x1b2f('0x29')](function(_0x45bee2){logger[_0x1b2f('0x34')](_0x1b2f('0x35'),_0x45bee2);});break;}}})['finally'](function(){_0x46a428();});}else{_0x46a428();}}},'charset':'utf8mb4','collate':'utf8mb4_unicode_ci'});};
\ No newline at end of file
+var _0xa5d4=['path','rimraf','../../config/environment','./whatsappMessage.attributes','define','WhatsappMessage','whatsapp_messages','messageId','fti_whatsapp_messages','body','FULLTEXT','models','get','isNil','UserId','WhatsappInteraction','WhatsappInteractionId','then','createdAt','direction','catch','error','out','secret','WhatsappAccount','WhatsappAccountId','type','twilio','accountSid','phone','messages','create','whatsapp:','remote','/api/whatsapp/messages/','/status?token=','token','sid','update','WhatsappMessage,\x20%s,\x20%s,\x20%s','afterCreate','inspect','Missing\x20parameters:\x20phone,\x20accountSid\x20or\x20authToken','sinch','authToken','baseUrl','/whatsapp/v1/','/messages/','text','Bearer\x20','statuses','message_id','err','WhatsappMessage,\x20%s','finally','utf8mb4','utf8mb4_unicode_ci','lodash','util','../../config/logger','moment','bluebird','request-promise'];(function(_0x1b349a,_0x22222c){var _0x5d1f7c=function(_0x368d7c){while(--_0x368d7c){_0x1b349a['push'](_0x1b349a['shift']());}};_0x5d1f7c(++_0x22222c);}(_0xa5d4,0x135));var _0x4a5d=function(_0x5f1391,_0x19c132){_0x5f1391=_0x5f1391-0x0;var _0x50ebe3=_0xa5d4[_0x5f1391];return _0x50ebe3;};'use strict';var _=require(_0x4a5d('0x0'));var util=require(_0x4a5d('0x1'));var logger=require(_0x4a5d('0x2'))('api');var moment=require(_0x4a5d('0x3'));var BPromise=require(_0x4a5d('0x4'));var rp=require(_0x4a5d('0x5'));var fetch=require('node-fetch');var fs=require('fs');var path=require(_0x4a5d('0x6'));var rimraf=require(_0x4a5d('0x7'));var config=require(_0x4a5d('0x8'));var attributes=require(_0x4a5d('0x9'));module['exports']=function(_0x31ddd3,_0x2348e7){return _0x31ddd3[_0x4a5d('0xa')](_0x4a5d('0xb'),attributes,{'tableName':_0x4a5d('0xc'),'paranoid':![],'indexes':[{'name':_0x4a5d('0xd'),'fields':[_0x4a5d('0xd')]},{'name':_0x4a5d('0xe'),'fields':[_0x4a5d('0xf')],'type':_0x4a5d('0x10')}],'timestamps':!![],'hooks':{'afterCreate':function(_0x4710c3,_0x212c4b,_0x4c01e1){var _0x49665e=_0x31ddd3[_0x4a5d('0x11')];var _0x528afc=_0x4710c3[_0x4a5d('0x12')]({'plain':!![]});if(_0x528afc['direction']['toLowerCase']()==='in'||_0x528afc['direction']['toLowerCase']()==='out'&&!_0x528afc['secret']&&!_[_0x4a5d('0x13')](_0x528afc[_0x4a5d('0x14')])){_0x49665e[_0x4a5d('0x15')]['findOne']({'where':{'id':_0x528afc[_0x4a5d('0x16')]}})[_0x4a5d('0x17')](function(_0x384396){if(_0x384396){_0x384396['update']({'lastMsgAt':_0x528afc[_0x4a5d('0x18')],'lastMsgDirection':_0x528afc[_0x4a5d('0x19')]['toLowerCase']()});}})[_0x4a5d('0x1a')](function(_0x426e49){console[_0x4a5d('0x1b')](_0x426e49);});}if(_0x528afc[_0x4a5d('0x19')]===_0x4a5d('0x1c')&&!_0x528afc[_0x4a5d('0x1d')]){var _0x23d578;_0x49665e[_0x4a5d('0x1e')]['find']({'where':{'id':_0x528afc[_0x4a5d('0x1f')]},'raw':!![]})['then'](function(_0x276019){_0x23d578=_0x276019;if(_0x23d578&&_0x23d578[_0x4a5d('0x20')]){switch(_0x23d578['type']){case _0x4a5d('0x21'):var _0x2e65a4=require(_0x4a5d('0x21'));if(_0x23d578[_0x4a5d('0x22')]&&_0x23d578['authToken']&&_0x23d578[_0x4a5d('0x23')]){var _0x44286b=new _0x2e65a4(_0x23d578[_0x4a5d('0x22')],_0x23d578['authToken']);_0x44286b[_0x4a5d('0x24')][_0x4a5d('0x25')]({'body':_0x528afc[_0x4a5d('0xf')],'to':_0x4a5d('0x26')+_0x528afc[_0x4a5d('0x23')],'from':_0x4a5d('0x26')+_0x23d578[_0x4a5d('0x23')],'statusCallback':_0x23d578[_0x4a5d('0x27')]+_0x4a5d('0x28')+_0x528afc['id']+_0x4a5d('0x29')+_0x23d578[_0x4a5d('0x2a')]})[_0x4a5d('0x17')](function(_0x5ae3ab){if(_0x5ae3ab[_0x4a5d('0x2b')]){return _0x4710c3[_0x4a5d('0x2c')]({'messageId':_0x5ae3ab['sid']});}})[_0x4a5d('0x1a')](function(_0x1b530d){logger[_0x4a5d('0x1b')](_0x4a5d('0x2d'),_0x4a5d('0x2e'),'twilio',util[_0x4a5d('0x2f')](_0x1b530d,{'showHidden':![],'depth':null}));});}else{logger['error'](_0x4a5d('0x2d'),_0x4a5d('0x2e'),'twilio',_0x4a5d('0x30'));}break;case _0x4a5d('0x31'):var _0x27fc4c=_0x23d578[_0x4a5d('0x22')];var _0x4cfbd9=_0x23d578[_0x4a5d('0x32')];var _0x330192=_0x23d578[_0x4a5d('0x33')]+_0x4a5d('0x34')+_0x27fc4c+_0x4a5d('0x35');var _0x12603b={'to':[_0x528afc[_0x4a5d('0x23')]],'message':{'type':_0x4a5d('0x36'),'text':_0x528afc[_0x4a5d('0xf')]}};var _0x252f0e={'method':'POST','uri':_0x330192,'headers':{'Authorization':_0x4a5d('0x37')+_0x4cfbd9,'Content-Type':'application/json'},'body':_0x12603b,'json':!![]};rp(_0x252f0e)[_0x4a5d('0x17')](function(_0xb2a290){if(_0xb2a290[_0x4a5d('0x38')][0x0][_0x4a5d('0x39')]){return _0x4710c3[_0x4a5d('0x2c')]({'messageId':_0xb2a290[_0x4a5d('0x38')][0x0][_0x4a5d('0x39')]});}})[_0x4a5d('0x1a')](function(_0x2a4509){logger[_0x4a5d('0x3a')](_0x4a5d('0x3b'),_0x2a4509);});break;}}})[_0x4a5d('0x3c')](function(){_0x4c01e1();});}else{_0x4c01e1();}}},'charset':_0x4a5d('0x3d'),'collate':_0x4a5d('0x3e')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x06bf=['WhatsappMessage,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','catch','CreateWhatsappMessage','lodash','util','randomstring','../../mysqldb','../../config/utils','../../config/logger','client','http','defaults','redis','localhost','socket.io-emitter','./whatsappMessage.socket','register','request','then','info','WhatsappMessage,\x20%s,\x20%s','debug'];(function(_0x1e7991,_0x3522b2){var _0x5c9b19=function(_0x55583c){while(--_0x55583c){_0x1e7991['push'](_0x1e7991['shift']());}};_0x5c9b19(++_0x3522b2);}(_0x06bf,0x131));var _0xf06b=function(_0x3029d3,_0x564330){_0x3029d3=_0x3029d3-0x0;var _0x1147bd=_0x06bf[_0x3029d3];return _0x1147bd;};'use strict';var _=require(_0xf06b('0x0'));var util=require(_0xf06b('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xf06b('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xf06b('0x3'))['db'];var utils=require(_0xf06b('0x4'));var logger=require(_0xf06b('0x5'))('rpc');var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0xf06b('0x6')][_0xf06b('0x7')]({'port':0x232a});config['redis']=_[_0xf06b('0x8')](config[_0xf06b('0x9')],{'host':_0xf06b('0xa'),'port':0x18eb});var socket=require(_0xf06b('0xb'))(new Redis(config[_0xf06b('0x9')]));require(_0xf06b('0xc'))[_0xf06b('0xd')](socket);function respondWithRpcPromise(_0x31e909,_0x52802c,_0x525628){return new BPromise(function(_0x2ae9c2,_0x1beb62){return client[_0xf06b('0xe')](_0x31e909,_0x525628)[_0xf06b('0xf')](function(_0x31fd36){logger[_0xf06b('0x10')](_0xf06b('0x11'),_0x52802c,'request\x20sent');logger[_0xf06b('0x12')](_0xf06b('0x13'),_0x52802c,_0xf06b('0x14'),JSON[_0xf06b('0x15')](_0x31fd36));if(_0x31fd36['error']){if(_0x31fd36[_0xf06b('0x16')][_0xf06b('0x17')]===0x1f4){logger[_0xf06b('0x16')]('WhatsappMessage,\x20%s,\x20%s',_0x52802c,_0x31fd36[_0xf06b('0x16')][_0xf06b('0x18')]);return _0x1beb62(_0x31fd36[_0xf06b('0x16')][_0xf06b('0x18')]);}logger['error']('WhatsappMessage,\x20%s,\x20%s',_0x52802c,_0x31fd36[_0xf06b('0x16')][_0xf06b('0x18')]);return _0x2ae9c2(_0x31fd36[_0xf06b('0x16')][_0xf06b('0x18')]);}else{logger[_0xf06b('0x10')]('WhatsappMessage,\x20%s,\x20%s',_0x52802c,'request\x20sent');_0x2ae9c2(_0x31fd36['result'][_0xf06b('0x18')]);}})[_0xf06b('0x19')](function(_0x28169f){logger['error'](_0xf06b('0x11'),_0x52802c,_0x28169f);_0x1beb62(_0x28169f);});});}exports[_0xf06b('0x1a')]=function(_0x3e4d4d){var _0x21fb37=this;return new Promise(function(_0x322926,_0x2d472a){return db['WhatsappMessage']['create'](_0x3e4d4d['body'],{'raw':_0x3e4d4d['options']?_0x3e4d4d['options']['raw']===undefined?!![]:![]:!![]})['then'](function(_0x12adff){logger[_0xf06b('0x10')](_0xf06b('0x1a'),_0x3e4d4d);logger[_0xf06b('0x12')]('CreateWhatsappMessage',_0x3e4d4d,JSON['stringify'](_0x12adff));_0x322926(_0x12adff);})['catch'](function(_0x1d9feb){logger[_0xf06b('0x16')]('CreateWhatsappMessage',_0x1d9feb[_0xf06b('0x18')],_0x3e4d4d);_0x2d472a(_0x21fb37[_0xf06b('0x16')](0x1f4,_0x1d9feb['message']));});});};
\ No newline at end of file
+var _0xef99=['ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','http','redis','localhost','./whatsappMessage.socket','register','then','info','WhatsappMessage,\x20%s,\x20%s','request\x20sent','debug','WhatsappMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','CreateWhatsappMessage','WhatsappMessage','create','body','options','raw','util','moment','bluebird','randomstring'];(function(_0x16d860,_0x45427d){var _0x5dd5ff=function(_0x871ea7){while(--_0x871ea7){_0x16d860['push'](_0x16d860['shift']());}};_0x5dd5ff(++_0x45427d);}(_0xef99,0xbc));var _0x9ef9=function(_0xc1fce3,_0xd6ff0f){_0xc1fce3=_0xc1fce3-0x0;var _0x56c03d=_0xef99[_0xc1fce3];return _0x56c03d;};'use strict';var _=require('lodash');var util=require(_0x9ef9('0x0'));var moment=require(_0x9ef9('0x1'));var BPromise=require(_0x9ef9('0x2'));var rs=require(_0x9ef9('0x3'));var fs=require('fs');var Redis=require(_0x9ef9('0x4'));var db=require(_0x9ef9('0x5'))['db'];var utils=require(_0x9ef9('0x6'));var logger=require(_0x9ef9('0x7'))(_0x9ef9('0x8'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson['client'][_0x9ef9('0x9')]({'port':0x232a});config[_0x9ef9('0xa')]=_['defaults'](config[_0x9ef9('0xa')],{'host':_0x9ef9('0xb'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0x9ef9('0xc'))[_0x9ef9('0xd')](socket);function respondWithRpcPromise(_0xfdfdf7,_0x26e302,_0xc130d7){return new BPromise(function(_0x42c02b,_0x3a447f){return client['request'](_0xfdfdf7,_0xc130d7)[_0x9ef9('0xe')](function(_0x3222b6){logger[_0x9ef9('0xf')](_0x9ef9('0x10'),_0x26e302,_0x9ef9('0x11'));logger[_0x9ef9('0x12')](_0x9ef9('0x13'),_0x26e302,'request\x20sent',JSON[_0x9ef9('0x14')](_0x3222b6));if(_0x3222b6[_0x9ef9('0x15')]){if(_0x3222b6[_0x9ef9('0x15')][_0x9ef9('0x16')]===0x1f4){logger[_0x9ef9('0x15')]('WhatsappMessage,\x20%s,\x20%s',_0x26e302,_0x3222b6[_0x9ef9('0x15')][_0x9ef9('0x17')]);return _0x3a447f(_0x3222b6[_0x9ef9('0x15')][_0x9ef9('0x17')]);}logger['error']('WhatsappMessage,\x20%s,\x20%s',_0x26e302,_0x3222b6[_0x9ef9('0x15')][_0x9ef9('0x17')]);return _0x42c02b(_0x3222b6[_0x9ef9('0x15')][_0x9ef9('0x17')]);}else{logger[_0x9ef9('0xf')](_0x9ef9('0x10'),_0x26e302,_0x9ef9('0x11'));_0x42c02b(_0x3222b6[_0x9ef9('0x18')][_0x9ef9('0x17')]);}})[_0x9ef9('0x19')](function(_0x273312){logger['error']('WhatsappMessage,\x20%s,\x20%s',_0x26e302,_0x273312);_0x3a447f(_0x273312);});});}exports[_0x9ef9('0x1a')]=function(_0x2db161){var _0x2a2014=this;return new Promise(function(_0x20c3e1,_0x91428c){return db[_0x9ef9('0x1b')][_0x9ef9('0x1c')](_0x2db161[_0x9ef9('0x1d')],{'raw':_0x2db161[_0x9ef9('0x1e')]?_0x2db161[_0x9ef9('0x1e')][_0x9ef9('0x1f')]===undefined?!![]:![]:!![]})[_0x9ef9('0xe')](function(_0x4e217b){logger['info'](_0x9ef9('0x1a'),_0x2db161);logger['debug'](_0x9ef9('0x1a'),_0x2db161,JSON[_0x9ef9('0x14')](_0x4e217b));_0x20c3e1(_0x4e217b);})['catch'](function(_0x454471){logger[_0x9ef9('0x15')]('CreateWhatsappMessage',_0x454471[_0x9ef9('0x17')],_0x2db161);_0x91428c(_0x2a2014['error'](0x1f4,_0x454471[_0x9ef9('0x17')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaeaf=['update','emit','register','length','whatsappMessage:','./whatsappMessage.events','save','remove'];(function(_0x45ac64,_0x516ab3){var _0x2471f5=function(_0x2d24de){while(--_0x2d24de){_0x45ac64['push'](_0x45ac64['shift']());}};_0x2471f5(++_0x516ab3);}(_0xaeaf,0xd5));var _0xfaea=function(_0x3b5250,_0x7a0b2c){_0x3b5250=_0x3b5250-0x0;var _0xc844a1=_0xaeaf[_0x3b5250];return _0xc844a1;};'use strict';var WhatsappMessageEvents=require(_0xfaea('0x0'));var events=[_0xfaea('0x1'),_0xfaea('0x2'),_0xfaea('0x3')];function createListener(_0x150b07,_0x49e44c){return function(_0x469087){_0x49e44c[_0xfaea('0x4')](_0x150b07,_0x469087);};}function removeListener(_0x5d1f5c,_0x2a68c7){return function(){WhatsappMessageEvents['removeListener'](_0x5d1f5c,_0x2a68c7);};}exports[_0xfaea('0x5')]=function(_0x4c31ff){for(var _0x1264e9=0x0,_0x55fa80=events[_0xfaea('0x6')];_0x1264e9<_0x55fa80;_0x1264e9++){var _0x19e687=events[_0x1264e9];var _0x1709a9=createListener(_0xfaea('0x7')+_0x19e687,_0x4c31ff);WhatsappMessageEvents['on'](_0x19e687,_0x1709a9);}};
\ No newline at end of file
+var _0x2d37=['emit','removeListener','length','whatsappMessage:','save','remove','update'];(function(_0x3eee44,_0x38dda7){var _0x185872=function(_0x371738){while(--_0x371738){_0x3eee44['push'](_0x3eee44['shift']());}};_0x185872(++_0x38dda7);}(_0x2d37,0x7b));var _0x72d3=function(_0x29b0fb,_0x2c7ee7){_0x29b0fb=_0x29b0fb-0x0;var _0x6e5d19=_0x2d37[_0x29b0fb];return _0x6e5d19;};'use strict';var WhatsappMessageEvents=require('./whatsappMessage.events');var events=[_0x72d3('0x0'),_0x72d3('0x1'),_0x72d3('0x2')];function createListener(_0x59c40f,_0x1cfcc7){return function(_0x1fd67c){_0x1cfcc7[_0x72d3('0x3')](_0x59c40f,_0x1fd67c);};}function removeListener(_0x409fe7,_0x10153e){return function(){WhatsappMessageEvents[_0x72d3('0x4')](_0x409fe7,_0x10153e);};}exports['register']=function(_0xd3cc99){for(var _0x155995=0x0,_0x3d026f=events[_0x72d3('0x5')];_0x155995<_0x3d026f;_0x155995++){var _0x15ddd1=events[_0x155995];var _0x568967=createListener(_0x72d3('0x6')+_0x15ddd1,_0xd3cc99);WhatsappMessageEvents['on'](_0x15ddd1,_0x568967);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd6a9=['addTeams','post','put','update','delete','destroy','removeAgents','multer','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','./whatsappQueue.controller','get','isAuthenticated','index','/describe','describe','/:id','getMembers','/:id/users'];(function(_0x1176c4,_0x19f13a){var _0x3101d4=function(_0x23dfe1){while(--_0x23dfe1){_0x1176c4['push'](_0x1176c4['shift']());}};_0x3101d4(++_0x19f13a);}(_0xd6a9,0x13f));var _0x9d6a=function(_0x11da9f,_0x4c2f8e){_0x11da9f=_0x11da9f-0x0;var _0x523fb6=_0xd6a9[_0x11da9f];return _0x523fb6;};'use strict';var multer=require(_0x9d6a('0x0'));var util=require('util');var path=require('path');var timeout=require(_0x9d6a('0x1'));var express=require(_0x9d6a('0x2'));var router=express[_0x9d6a('0x3')]();var fs_extra=require(_0x9d6a('0x4'));var auth=require(_0x9d6a('0x5'));var interaction=require(_0x9d6a('0x6'));var config=require(_0x9d6a('0x7'));var controller=require(_0x9d6a('0x8'));router[_0x9d6a('0x9')]('/',auth[_0x9d6a('0xa')](),controller[_0x9d6a('0xb')]);router[_0x9d6a('0x9')](_0x9d6a('0xc'),auth[_0x9d6a('0xa')](),controller[_0x9d6a('0xd')]);router[_0x9d6a('0x9')](_0x9d6a('0xe'),auth[_0x9d6a('0xa')](),controller['show']);router[_0x9d6a('0x9')]('/:id/members',auth[_0x9d6a('0xa')](),controller[_0x9d6a('0xf')]);router[_0x9d6a('0x9')]('/:id/teams',auth[_0x9d6a('0xa')](),controller['getTeams']);router[_0x9d6a('0x9')](_0x9d6a('0x10'),auth[_0x9d6a('0xa')](),controller['getAgents']);router['post']('/',auth[_0x9d6a('0xa')](),controller['create']);router['post']('/:id/teams',auth[_0x9d6a('0xa')](),controller[_0x9d6a('0x11')]);router[_0x9d6a('0x12')](_0x9d6a('0x10'),auth[_0x9d6a('0xa')](),controller['addAgents']);router[_0x9d6a('0x13')](_0x9d6a('0xe'),auth[_0x9d6a('0xa')](),controller[_0x9d6a('0x14')]);router[_0x9d6a('0x15')]('/:id',auth[_0x9d6a('0xa')](),controller[_0x9d6a('0x16')]);router['delete']('/:id/teams',auth[_0x9d6a('0xa')](),controller['removeTeams']);router['delete'](_0x9d6a('0x10'),auth[_0x9d6a('0xa')](),controller[_0x9d6a('0x17')]);module['exports']=router;
\ No newline at end of file
+var _0x27f2=['/:id','show','/:id/members','getMembers','/:id/teams','getTeams','post','addTeams','addAgents','put','update','delete','destroy','removeTeams','/:id/users','removeAgents','exports','util','path','connect-timeout','express','Router','fs-extra','../../components/auth/service','../../config/environment','./whatsappQueue.controller','get','isAuthenticated','/describe'];(function(_0x4c6c9f,_0x25c8a9){var _0x31e332=function(_0x55ec4f){while(--_0x55ec4f){_0x4c6c9f['push'](_0x4c6c9f['shift']());}};_0x31e332(++_0x25c8a9);}(_0x27f2,0x1c4));var _0x227f=function(_0x44ea05,_0x360d3f){_0x44ea05=_0x44ea05-0x0;var _0x25856b=_0x27f2[_0x44ea05];return _0x25856b;};'use strict';var multer=require('multer');var util=require(_0x227f('0x0'));var path=require(_0x227f('0x1'));var timeout=require(_0x227f('0x2'));var express=require(_0x227f('0x3'));var router=express[_0x227f('0x4')]();var fs_extra=require(_0x227f('0x5'));var auth=require(_0x227f('0x6'));var interaction=require('../../components/interaction/service');var config=require(_0x227f('0x7'));var controller=require(_0x227f('0x8'));router[_0x227f('0x9')]('/',auth[_0x227f('0xa')](),controller['index']);router[_0x227f('0x9')](_0x227f('0xb'),auth['isAuthenticated'](),controller['describe']);router[_0x227f('0x9')](_0x227f('0xc'),auth[_0x227f('0xa')](),controller[_0x227f('0xd')]);router[_0x227f('0x9')](_0x227f('0xe'),auth['isAuthenticated'](),controller[_0x227f('0xf')]);router['get'](_0x227f('0x10'),auth[_0x227f('0xa')](),controller[_0x227f('0x11')]);router[_0x227f('0x9')]('/:id/users',auth['isAuthenticated'](),controller['getAgents']);router['post']('/',auth[_0x227f('0xa')](),controller['create']);router[_0x227f('0x12')](_0x227f('0x10'),auth[_0x227f('0xa')](),controller[_0x227f('0x13')]);router['post']('/:id/users',auth[_0x227f('0xa')](),controller[_0x227f('0x14')]);router[_0x227f('0x15')](_0x227f('0xc'),auth['isAuthenticated'](),controller[_0x227f('0x16')]);router[_0x227f('0x17')](_0x227f('0xc'),auth[_0x227f('0xa')](),controller[_0x227f('0x18')]);router[_0x227f('0x17')](_0x227f('0x10'),auth[_0x227f('0xa')](),controller[_0x227f('0x19')]);router[_0x227f('0x17')](_0x227f('0x1a'),auth['isAuthenticated'](),controller[_0x227f('0x1b')]);module[_0x227f('0x1c')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcb18=['STRING','INTEGER','rrmemory','beepall','roundrobin'];(function(_0x4d0f94,_0x4e5eda){var _0xffebd2=function(_0x13e768){while(--_0x13e768){_0x4d0f94['push'](_0x4d0f94['shift']());}};_0xffebd2(++_0x4e5eda);}(_0xcb18,0x159));var _0x8cb1=function(_0x1f29f5,_0x79ca9d){_0x1f29f5=_0x1f29f5-0x0;var _0x549252=_0xcb18[_0x1f29f5];return _0x549252;};'use strict';var Sequelize=require('sequelize');module['exports']={'name':{'type':Sequelize[_0x8cb1('0x0')],'unique':'name','validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'timeout':{'type':Sequelize[_0x8cb1('0x1')],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize['ENUM'](_0x8cb1('0x2'),_0x8cb1('0x3'),_0x8cb1('0x4'))},'description':{'type':Sequelize[_0x8cb1('0x0')]}};
\ No newline at end of file
+var _0xb7c8=['beepall','exports','STRING','name','INTEGER','ENUM','rrmemory'];(function(_0x7a42ba,_0x24fe51){var _0x464c5d=function(_0xd59385){while(--_0xd59385){_0x7a42ba['push'](_0x7a42ba['shift']());}};_0x464c5d(++_0x24fe51);}(_0xb7c8,0x119));var _0x8b7c=function(_0x3ebbad,_0x3ddd71){_0x3ebbad=_0x3ebbad-0x0;var _0x5cce2d=_0xb7c8[_0x3ebbad];return _0x5cce2d;};'use strict';var Sequelize=require('sequelize');module[_0x8b7c('0x0')]={'name':{'type':Sequelize[_0x8b7c('0x1')],'unique':_0x8b7c('0x2'),'validate':{'notEmpty':!![],'is':/^[A-Za-z0-9\.\_]+$/i}},'timeout':{'type':Sequelize[_0x8b7c('0x3')],'validate':{'min':0x1,'max':0x20c49b}},'strategy':{'type':Sequelize[_0x8b7c('0x4')](_0x8b7c('0x5'),_0x8b7c('0x6'),'roundrobin')},'description':{'type':Sequelize[_0x8b7c('0x1')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x93e4=['rows','catch','show','params','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','user','WhatsappQueues','UserProfileSection','find','userProfileId','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','update','describe','hasOwnProperty','WhatsappQueueId','UserWhatsappQueue','User','UserId','agent','whatsappPause','updatedAt','createdAt','format','%s/%s','getTeams','findOne','addTeams','ids','Team','Agents','online','voicePause','interface','flatMap','sequelize','each','forEach','emit','userWhatsappQueue:save','removeTeams','select','field','tq.TeamId','from','team_has_whatsapp_queues','join','user_has_teams','WhatsappQueueId\x20=\x20?','ut.UserId\x20=\x20?','push','toString','TeamId','includes','union','compact','value','removeAgents','addAgents','omit','spread','isArray','userWhatsappQueue:remove','getAgents','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','lodash','squel','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','redis','defaults','socket.io-emitter','register','sendStatus','end','status','json','offset','limit','undefined','count','set','Content-Range','apply','reject','save','then','get','destroy','error','name','send','index','map','WhatsappQueue','rawAttributes','fieldName','type','query','keys','filters','intersection','model','attributes','fields','length','nolimit','order','sort','where','pick','merge','VIRTUAL','filter','options','include','findAll'];(function(_0x23345f,_0xc1cd34){var _0x1865e0=function(_0x4c76e3){while(--_0x4c76e3){_0x23345f['push'](_0x23345f['shift']());}};_0x1865e0(++_0xc1cd34);}(_0x93e4,0x1e9));var _0x493e=function(_0xf1402a,_0x187f5c){_0xf1402a=_0xf1402a-0x0;var _0x4f7ead=_0x93e4[_0xf1402a];return _0x4f7ead;};'use strict';var emlformat=require(_0x493e('0x0'));var rimraf=require(_0x493e('0x1'));var zipdir=require(_0x493e('0x2'));var jsonpatch=require(_0x493e('0x3'));var rp=require(_0x493e('0x4'));var moment=require(_0x493e('0x5'));var BPromise=require(_0x493e('0x6'));var Mustache=require(_0x493e('0x7'));var util=require(_0x493e('0x8'));var path=require(_0x493e('0x9'));var sox=require(_0x493e('0xa'));var csv=require(_0x493e('0xb'));var ejs=require(_0x493e('0xc'));var fs=require('fs');var fs_extra=require(_0x493e('0xd'));var _=require(_0x493e('0xe'));var squel=require(_0x493e('0xf'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x493e('0x10'));var toCsv=require(_0x493e('0xb'));var querystring=require('querystring');var Papa=require(_0x493e('0x11'));var Redis=require(_0x493e('0x12'));var authService=require(_0x493e('0x13'));var qs=require(_0x493e('0x14'));var as=require(_0x493e('0x15'));var hardwareService=require(_0x493e('0x16'));var logger=require(_0x493e('0x17'))('api');var utils=require(_0x493e('0x18'));var config=require(_0x493e('0x19'));var licenseUtil=require('../../config/license/util');var db=require(_0x493e('0x1a'))['db'];config[_0x493e('0x1b')]=_[_0x493e('0x1c')](config[_0x493e('0x1b')],{'host':'localhost','port':0x18eb});var socket=require(_0x493e('0x1d'))(new Redis(config[_0x493e('0x1b')]));require('./whatsappQueue.socket')[_0x493e('0x1e')](socket);function respondWithStatusCode(_0x603d54,_0x2d8889){_0x2d8889=_0x2d8889||0xcc;return function(_0x430783){if(_0x430783){return _0x603d54[_0x493e('0x1f')](_0x2d8889);}return _0x603d54['status'](_0x2d8889)[_0x493e('0x20')]();};}function respondWithResult(_0x560e3d,_0x1ce537){_0x1ce537=_0x1ce537||0xc8;return function(_0x1eb7ba){if(_0x1eb7ba){return _0x560e3d[_0x493e('0x21')](_0x1ce537)[_0x493e('0x22')](_0x1eb7ba);}};}function respondWithFilteredResult(_0x27e386,_0x208dfb){return function(_0x545038){if(_0x545038){var _0x2f0e1e=typeof _0x208dfb[_0x493e('0x23')]==='undefined'&&typeof _0x208dfb[_0x493e('0x24')]===_0x493e('0x25');var _0x46c4dc=_0x545038[_0x493e('0x26')];var _0x3b4768=_0x2f0e1e?0x0:_0x208dfb['offset'];var _0x5ce7fb=_0x2f0e1e?_0x545038['count']:_0x208dfb[_0x493e('0x23')]+_0x208dfb[_0x493e('0x24')];var _0x4588f2;if(_0x5ce7fb>=_0x46c4dc){_0x5ce7fb=_0x46c4dc;_0x4588f2=0xc8;}else{_0x4588f2=0xce;}_0x27e386[_0x493e('0x21')](_0x4588f2);return _0x27e386[_0x493e('0x27')](_0x493e('0x28'),_0x3b4768+'-'+_0x5ce7fb+'/'+_0x46c4dc)[_0x493e('0x22')](_0x545038);}return null;};}function patchUpdates(_0x93aa94){return function(_0x172d5c){try{jsonpatch[_0x493e('0x29')](_0x172d5c,_0x93aa94,!![]);}catch(_0x43de3e){return BPromise[_0x493e('0x2a')](_0x43de3e);}return _0x172d5c[_0x493e('0x2b')]();};}function saveUpdates(_0x199471,_0x15a76c){return function(_0x4eb965){if(_0x4eb965){return _0x4eb965['update'](_0x199471)[_0x493e('0x2c')](function(_0x5b4e8c){return _0x5b4e8c;});}return null;};}function removeEntity(_0x132415,_0x764d54){return function(_0x2d5a16){if(_0x2d5a16){return _0x2d5a16['destroy']()[_0x493e('0x2c')](function(){var _0x1442c9=_0x2d5a16[_0x493e('0x2d')]({'plain':!![]});var _0x49f66f='WhatsappQueues';return db['UserProfileResource'][_0x493e('0x2e')]({'where':{'type':_0x49f66f,'resourceId':_0x1442c9['id']}})[_0x493e('0x2c')](function(){return _0x2d5a16;});})['then'](function(){_0x132415['status'](0xcc)[_0x493e('0x20')]();});}};}function handleEntityNotFound(_0x5529bf,_0x26c6ed){return function(_0x2377a0){if(!_0x2377a0){_0x5529bf[_0x493e('0x1f')](0x194);}return _0x2377a0;};}function handleError(_0x594278,_0x2ca379){_0x2ca379=_0x2ca379||0x1f4;return function(_0x4cf18d){logger[_0x493e('0x2f')](_0x4cf18d['stack']);if(_0x4cf18d[_0x493e('0x30')]){delete _0x4cf18d[_0x493e('0x30')];}_0x594278[_0x493e('0x21')](_0x2ca379)[_0x493e('0x31')](_0x4cf18d);};}exports[_0x493e('0x32')]=function(_0x569c57,_0x9644b6){var _0x19f5a6={},_0x1e95c5={},_0x2778eb={'count':0x0,'rows':[]};var _0xea331a=_[_0x493e('0x33')](db[_0x493e('0x34')][_0x493e('0x35')],function(_0x1efbce){return{'name':_0x1efbce[_0x493e('0x36')],'type':_0x1efbce[_0x493e('0x37')]['key']};});_0x1e95c5['model']=_['map'](_0xea331a,'name');_0x1e95c5[_0x493e('0x38')]=_[_0x493e('0x39')](_0x569c57[_0x493e('0x38')]);_0x1e95c5[_0x493e('0x3a')]=_[_0x493e('0x3b')](_0x1e95c5[_0x493e('0x3c')],_0x1e95c5[_0x493e('0x38')]);_0x19f5a6[_0x493e('0x3d')]=_[_0x493e('0x3b')](_0x1e95c5[_0x493e('0x3c')],qs[_0x493e('0x3e')](_0x569c57[_0x493e('0x38')][_0x493e('0x3e')]));_0x19f5a6[_0x493e('0x3d')]=_0x19f5a6['attributes'][_0x493e('0x3f')]?_0x19f5a6[_0x493e('0x3d')]:_0x1e95c5[_0x493e('0x3c')];if(!_0x569c57[_0x493e('0x38')]['hasOwnProperty'](_0x493e('0x40'))){_0x19f5a6[_0x493e('0x24')]=qs[_0x493e('0x24')](_0x569c57[_0x493e('0x38')][_0x493e('0x24')]);_0x19f5a6[_0x493e('0x23')]=qs[_0x493e('0x23')](_0x569c57[_0x493e('0x38')][_0x493e('0x23')]);}_0x19f5a6[_0x493e('0x41')]=qs[_0x493e('0x42')](_0x569c57['query'][_0x493e('0x42')]);_0x19f5a6[_0x493e('0x43')]=qs[_0x493e('0x3a')](_[_0x493e('0x44')](_0x569c57[_0x493e('0x38')],_0x1e95c5[_0x493e('0x3a')]),_0xea331a);if(_0x569c57['query']['filter']){_0x19f5a6[_0x493e('0x43')]=_[_0x493e('0x45')](_0x19f5a6[_0x493e('0x43')],{'$or':_[_0x493e('0x33')](_0xea331a,function(_0x26728d){if(_0x26728d['type']!==_0x493e('0x46')){var _0x1ae034={};_0x1ae034[_0x26728d['name']]={'$like':'%'+_0x569c57[_0x493e('0x38')][_0x493e('0x47')]+'%'};return _0x1ae034;}})});}_0x19f5a6=_[_0x493e('0x45')]({},_0x19f5a6,_0x569c57[_0x493e('0x48')]);var _0x972afe={'where':_0x19f5a6['where']};return db[_0x493e('0x34')][_0x493e('0x26')](_0x972afe)[_0x493e('0x2c')](function(_0x4c7e63){_0x2778eb[_0x493e('0x26')]=_0x4c7e63;if(_0x569c57[_0x493e('0x38')]['includeAll']){_0x19f5a6[_0x493e('0x49')]=[{'all':!![]}];}return db[_0x493e('0x34')][_0x493e('0x4a')](_0x19f5a6);})['then'](function(_0x1046f7){_0x2778eb[_0x493e('0x4b')]=_0x1046f7;return _0x2778eb;})[_0x493e('0x2c')](respondWithFilteredResult(_0x9644b6,_0x19f5a6))[_0x493e('0x4c')](handleError(_0x9644b6,null));};exports[_0x493e('0x4d')]=function(_0x2a7603,_0x136719){var _0x3f540d={'raw':!![],'where':{'id':_0x2a7603[_0x493e('0x4e')]['id']}},_0x427c7c={};_0x427c7c[_0x493e('0x3c')]=_[_0x493e('0x39')](db[_0x493e('0x34')][_0x493e('0x35')]);_0x427c7c[_0x493e('0x38')]=_[_0x493e('0x39')](_0x2a7603['query']);_0x427c7c[_0x493e('0x3a')]=_[_0x493e('0x3b')](_0x427c7c[_0x493e('0x3c')],_0x427c7c[_0x493e('0x38')]);_0x3f540d['attributes']=_[_0x493e('0x3b')](_0x427c7c[_0x493e('0x3c')],qs[_0x493e('0x3e')](_0x2a7603['query']['fields']));_0x3f540d[_0x493e('0x3d')]=_0x3f540d[_0x493e('0x3d')][_0x493e('0x3f')]?_0x3f540d[_0x493e('0x3d')]:_0x427c7c[_0x493e('0x3c')];if(_0x2a7603[_0x493e('0x38')]['includeAll']){_0x3f540d['include']=[{'all':!![]}];}_0x3f540d=_[_0x493e('0x45')]({},_0x3f540d,_0x2a7603[_0x493e('0x48')]);return db[_0x493e('0x34')]['find'](_0x3f540d)[_0x493e('0x2c')](handleEntityNotFound(_0x136719,null))[_0x493e('0x2c')](respondWithResult(_0x136719,null))[_0x493e('0x4c')](handleError(_0x136719,null));};exports[_0x493e('0x4f')]=function(_0x360436,_0x262c42){return db['WhatsappQueue']['create'](_0x360436[_0x493e('0x50')],{})[_0x493e('0x2c')](function(_0x491baf){var _0x34a14b=_0x360436['user'][_0x493e('0x2d')]({'plain':!![]});if(!_0x34a14b)throw new Error(_0x493e('0x51'));if(_0x34a14b[_0x493e('0x52')]===_0x493e('0x53')){var _0x1f7172=_0x491baf[_0x493e('0x2d')]({'plain':!![]});var _0x3b706a=_0x493e('0x54');return db[_0x493e('0x55')][_0x493e('0x56')]({'where':{'name':_0x3b706a,'userProfileId':_0x34a14b[_0x493e('0x57')]},'raw':!![]})[_0x493e('0x2c')](function(_0x56f2a3){if(_0x56f2a3&&_0x56f2a3['autoAssociation']===0x0){return db['UserProfileResource'][_0x493e('0x4f')]({'name':_0x1f7172[_0x493e('0x30')],'resourceId':_0x1f7172['id'],'type':_0x56f2a3[_0x493e('0x30')],'sectionId':_0x56f2a3['id']},{})['then'](function(){return _0x491baf;});}else{return _0x491baf;}})[_0x493e('0x4c')](function(_0x381e07){logger[_0x493e('0x2f')](_0x493e('0x58'),_0x381e07);throw _0x381e07;});}return _0x491baf;})[_0x493e('0x2c')](respondWithResult(_0x262c42,0xc9))['catch'](handleError(_0x262c42,null));};exports[_0x493e('0x59')]=function(_0x40a176,_0x2e1bd2){if(_0x40a176[_0x493e('0x50')]['id']){delete _0x40a176[_0x493e('0x50')]['id'];}return db[_0x493e('0x34')][_0x493e('0x56')]({'where':{'id':_0x40a176[_0x493e('0x4e')]['id']}})[_0x493e('0x2c')](handleEntityNotFound(_0x2e1bd2,null))['then'](saveUpdates(_0x40a176['body'],null))[_0x493e('0x2c')](respondWithResult(_0x2e1bd2,null))[_0x493e('0x4c')](handleError(_0x2e1bd2,null));};exports['destroy']=function(_0x52ae41,_0x54d42a){return db[_0x493e('0x34')][_0x493e('0x56')]({'where':{'id':_0x52ae41[_0x493e('0x4e')]['id']}})[_0x493e('0x2c')](handleEntityNotFound(_0x54d42a,null))[_0x493e('0x2c')](removeEntity(_0x54d42a,null))[_0x493e('0x4c')](handleError(_0x54d42a,null));};exports[_0x493e('0x5a')]=function(_0x4a2094,_0x36cd35){return db[_0x493e('0x34')][_0x493e('0x5a')]()[_0x493e('0x2c')](respondWithResult(_0x36cd35,null))[_0x493e('0x4c')](handleError(_0x36cd35,null));};exports['getMembers']=function(_0x170d38,_0x3b9325,_0x3f6623){var _0x2403cb={'raw':!![],'where':{}},_0x163729={},_0x382064;return db['WhatsappQueue']['findOne']({'where':{'id':_0x170d38[_0x493e('0x4e')]['id']}})[_0x493e('0x2c')](handleEntityNotFound(_0x3b9325,null))[_0x493e('0x2c')](function(_0x4fe2af){if(_0x4fe2af){_0x382064=_0x4fe2af['get']({'plain':!![]});_0x163729[_0x493e('0x3c')]=_[_0x493e('0x39')](db['UserWhatsappQueue'][_0x493e('0x35')]);_0x163729['query']=_[_0x493e('0x39')](_0x170d38[_0x493e('0x38')]);_0x163729['filters']=_[_0x493e('0x3b')](_0x163729['model'],_0x163729[_0x493e('0x38')]);_0x2403cb[_0x493e('0x3d')]=_['intersection'](_0x163729[_0x493e('0x3c')],qs[_0x493e('0x3e')](_0x170d38['query'][_0x493e('0x3e')]));_0x2403cb[_0x493e('0x3d')]=_0x2403cb[_0x493e('0x3d')][_0x493e('0x3f')]?_0x2403cb['attributes']:_0x163729[_0x493e('0x3c')];if(!_0x170d38['query'][_0x493e('0x5b')](_0x493e('0x40'))){_0x2403cb['limit']=qs[_0x493e('0x24')](_0x170d38['query']['limit']);_0x2403cb[_0x493e('0x23')]=qs[_0x493e('0x23')](_0x170d38[_0x493e('0x38')][_0x493e('0x23')]);}_0x2403cb[_0x493e('0x41')]=qs[_0x493e('0x42')](_0x170d38[_0x493e('0x38')][_0x493e('0x42')]);_0x2403cb[_0x493e('0x43')]=qs['filters'](_['pick'](_0x170d38[_0x493e('0x38')],_0x163729[_0x493e('0x3a')]));_0x2403cb[_0x493e('0x43')][_0x493e('0x5c')]=_0x4fe2af['id'];if(_0x170d38[_0x493e('0x38')][_0x493e('0x47')]){_0x2403cb['where']=_[_0x493e('0x45')](_0x2403cb['where'],{'$or':_[_0x493e('0x33')](_0x2403cb['attributes'],function(_0x5ceb9c){var _0x12450d={};_0x12450d[_0x5ceb9c]={'$like':'%'+_0x170d38['query']['filter']+'%'};return _0x12450d;})});}_0x2403cb=_[_0x493e('0x45')]({},_0x2403cb,_0x170d38[_0x493e('0x48')]);return db[_0x493e('0x5d')][_0x493e('0x4a')](_0x2403cb);}})[_0x493e('0x2c')](function(_0xe136ad){if(_0xe136ad){return db[_0x493e('0x5e')]['findAndCountAll']({'where':{'id':_[_0x493e('0x33')](_0xe136ad,_0x493e('0x5f')),'role':_0x493e('0x60')},'attributes':['id','name',_0x493e('0x61'),_0x493e('0x62'),_0x493e('0x63')]});}})['then'](function(_0x1e1302){if(_0x1e1302){return{'count':_0x1e1302[_0x493e('0x26')],'rows':_['map'](_0x1e1302[_0x493e('0x4b')],function(_0x30d489){return{'membername':_0x30d489['name'],'UserId':_0x30d489['id'],'queue_name':_0x382064[_0x493e('0x30')],'WhatsappQueueId':_0x382064['id'],'interface':util[_0x493e('0x64')](_0x493e('0x65'),'SIP',_0x30d489[_0x493e('0x30')]),'penalty':0x0,'paused':_0x30d489[_0x493e('0x61')],'createdAt':_0x30d489[_0x493e('0x63')],'updatedAt':_0x30d489[_0x493e('0x62')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x493e('0x2c')](respondWithFilteredResult(_0x3b9325,_0x2403cb))[_0x493e('0x4c')](handleError(_0x3b9325,null));};exports[_0x493e('0x66')]=function(_0x32ef9c,_0x433863,_0x2bbfba){var _0x5aee64={};var _0x22bc5f={};var _0x2a7545;var _0x486cbf;return db['WhatsappQueue'][_0x493e('0x67')]({'where':{'id':_0x32ef9c[_0x493e('0x4e')]['id']}})[_0x493e('0x2c')](handleEntityNotFound(_0x433863,null))[_0x493e('0x2c')](function(_0x3cc514){if(_0x3cc514){_0x2a7545=_0x3cc514;_0x22bc5f[_0x493e('0x3c')]=_[_0x493e('0x39')](db['Team'][_0x493e('0x35')]);_0x22bc5f[_0x493e('0x38')]=_[_0x493e('0x39')](_0x32ef9c[_0x493e('0x38')]);_0x22bc5f[_0x493e('0x3a')]=_['intersection'](_0x22bc5f[_0x493e('0x3c')],_0x22bc5f[_0x493e('0x38')]);_0x5aee64[_0x493e('0x3d')]=_['intersection'](_0x22bc5f[_0x493e('0x3c')],qs[_0x493e('0x3e')](_0x32ef9c['query'][_0x493e('0x3e')]));_0x5aee64[_0x493e('0x3d')]=_0x5aee64['attributes'][_0x493e('0x3f')]?_0x5aee64['attributes']:_0x22bc5f['model'];_0x5aee64[_0x493e('0x41')]=qs[_0x493e('0x42')](_0x32ef9c[_0x493e('0x38')]['sort']);_0x5aee64[_0x493e('0x43')]=qs['filters'](_['pick'](_0x32ef9c[_0x493e('0x38')],_0x22bc5f[_0x493e('0x3a')]));if(_0x32ef9c[_0x493e('0x38')][_0x493e('0x47')]){_0x5aee64[_0x493e('0x43')]=_[_0x493e('0x45')](_0x5aee64[_0x493e('0x43')],{'$or':_[_0x493e('0x33')](_0x5aee64[_0x493e('0x3d')],function(_0x2d4ea7){var _0x4a8a49={};_0x4a8a49[_0x2d4ea7]={'$like':'%'+_0x32ef9c[_0x493e('0x38')]['filter']+'%'};return _0x4a8a49;})});}_0x5aee64=_['merge']({},_0x5aee64,_0x32ef9c[_0x493e('0x48')]);return _0x2a7545[_0x493e('0x66')](_0x5aee64);}})[_0x493e('0x2c')](function(_0x35fef7){if(_0x35fef7){_0x486cbf=_0x35fef7['length'];if(!_0x32ef9c[_0x493e('0x38')][_0x493e('0x5b')]('nolimit')){_0x5aee64[_0x493e('0x24')]=qs[_0x493e('0x24')](_0x32ef9c['query'][_0x493e('0x24')]);_0x5aee64[_0x493e('0x23')]=qs[_0x493e('0x23')](_0x32ef9c[_0x493e('0x38')][_0x493e('0x23')]);}return _0x2a7545[_0x493e('0x66')](_0x5aee64);}})['then'](function(_0x1cb224){if(_0x1cb224){return _0x1cb224?{'count':_0x486cbf,'rows':_0x1cb224}:null;}})[_0x493e('0x2c')](respondWithResult(_0x433863,null))[_0x493e('0x4c')](handleError(_0x433863,null));};exports[_0x493e('0x68')]=function(_0x130b58,_0x42e20f,_0x395edc){var _0x1d8011=_0x130b58[_0x493e('0x50')][_0x493e('0x69')];return db[_0x493e('0x6a')]['findAll']({'where':{'id':_0x1d8011},'attributes':['id'],'include':[{'model':db[_0x493e('0x5e')],'as':_0x493e('0x6b'),'attributes':['id',_0x493e('0x30'),_0x493e('0x6c'),_0x493e('0x6d'),_0x493e('0x6e')],'raw':!![]}]})['then'](function(_0x260fa4){if(_0x260fa4){var _0x4018d7=_[_0x493e('0x6f')](_0x260fa4,function(_0x12d7d4){var _0x19165d=_0x12d7d4[_0x493e('0x2d')]({'plain':!![]});return _0x19165d[_0x493e('0x6b')];});return db[_0x493e('0x34')][_0x493e('0x56')]({'where':{'id':_0x130b58[_0x493e('0x4e')]['id']}})[_0x493e('0x2c')](function(_0x420ab1){return db[_0x493e('0x70')]['transaction'](function(_0x2badbb){return _0x420ab1['addTeams'](_0x1d8011,{'transaction':_0x2badbb})[_0x493e('0x2c')](function(){return BPromise[_0x493e('0x71')](_0x4018d7,function(_0x446983){return db[_0x493e('0x5d')]['findOrCreate']({'where':{'UserId':_0x446983['id'],'WhatsappQueueId':_0x130b58[_0x493e('0x4e')]['id']},'transaction':_0x2badbb});});})[_0x493e('0x2c')](function(){_0x4018d7[_0x493e('0x72')](function(_0x4e9785){socket[_0x493e('0x73')](_0x493e('0x74'),{'UserId':_0x4e9785['id'],'WhatsappQueueId':_0x420ab1['id']});});});});});}})[_0x493e('0x2c')](respondWithStatusCode(_0x42e20f,null))[_0x493e('0x4c')](handleError(_0x42e20f,null));};exports[_0x493e('0x75')]=function(_0x374cae,_0x42a039,_0x211118){return db[_0x493e('0x6a')][_0x493e('0x4a')]({'where':{'id':_0x374cae[_0x493e('0x38')]['ids']},'attributes':['id'],'include':[{'model':db['User'],'as':_0x493e('0x6b'),'attributes':['id'],'raw':!![]}]})[_0x493e('0x2c')](handleEntityNotFound(_0x42a039,null))['then'](function(_0x34cc3a){var _0x28145a=_['map'](_0x34cc3a,'id');var _0xb7782c=[];var _0x485c0e=[];var _0x20f8ff=squel[_0x493e('0x76')]();_0x20f8ff[_0x493e('0x77')](_0x493e('0x78'))[_0x493e('0x79')](_0x493e('0x7a'),'tq')[_0x493e('0x7b')](_0x493e('0x7c'),'ut','ut.TeamId\x20=\x20tq.TeamId')[_0x493e('0x43')](_0x493e('0x7d'),_0x374cae['params']['id']);for(var _0x28a30d=0x0;_0x28a30d<_0x34cc3a[_0x493e('0x3f')];_0x28a30d+=0x1){let _0x21a199=_0x34cc3a[_0x28a30d];for(var _0x22998e=0x0;_0x22998e<_0x21a199[_0x493e('0x6b')][_0x493e('0x3f')];_0x22998e+=0x1){let _0xe7e617=_0x21a199[_0x493e('0x6b')][_0x22998e];var _0x472d63=_0x20f8ff['clone']();_0x472d63[_0x493e('0x43')](_0x493e('0x7e'),_0xe7e617['id']);_0x485c0e[_0x493e('0x7f')](db['sequelize'][_0x493e('0x38')](_0x472d63[_0x493e('0x80')](),{'type':db[_0x493e('0x70')]['QueryTypes']['SELECT']})[_0x493e('0x2c')](function(_0x2b3989){if(_0x2b3989[_0x493e('0x3f')]===0x1){return _0xe7e617['id'];}else{var _0x3a05fc=_['every'](_[_0x493e('0x33')](_0x2b3989,_0x493e('0x81')),function(_0x13fe8d){return _[_0x493e('0x82')](_0x28145a,_0x13fe8d);});if(_0x3a05fc){return _0xe7e617['id'];}}}));}}return BPromise['all'](_0x485c0e)[_0x493e('0x2c')](function(_0x14ec75){_0xb7782c=_(_0xb7782c)[_0x493e('0x83')](_0x14ec75)[_0x493e('0x84')]()[_0x493e('0x85')]();return db[_0x493e('0x34')][_0x493e('0x56')]({'where':{'id':_0x374cae[_0x493e('0x4e')]['id']}})[_0x493e('0x2c')](function(_0x5bb34b){return db[_0x493e('0x70')]['transaction'](function(_0x32070a){return _0x5bb34b[_0x493e('0x75')](_0x374cae[_0x493e('0x38')][_0x493e('0x69')],{'transaction':_0x32070a})[_0x493e('0x2c')](function(){if(!_['isEmpty'](_0xb7782c)){return _0x5bb34b[_0x493e('0x86')](_0xb7782c,{'transaction':_0x32070a});}})[_0x493e('0x2c')](function(){_0xb7782c[_0x493e('0x72')](function(_0x36a854){socket[_0x493e('0x73')]('userWhatsappQueue:remove',{'UserId':_0x36a854,'WhatsappQueueId':_0x5bb34b['id']});});});});});});})[_0x493e('0x2c')](respondWithStatusCode(_0x42a039,null))[_0x493e('0x4c')](handleError(_0x42a039,null));};exports[_0x493e('0x87')]=function(_0x10bf74,_0x4f8e77,_0x2b299f){return db[_0x493e('0x34')][_0x493e('0x56')]({'where':{'id':_0x10bf74['params']['id']}})['then'](handleEntityNotFound(_0x4f8e77,null))[_0x493e('0x2c')](function(_0x2ad597){if(_0x2ad597){return _0x2ad597[_0x493e('0x87')](_0x10bf74['body'][_0x493e('0x69')],_[_0x493e('0x88')](_0x10bf74['body'],[_0x493e('0x69'),'id'])||{})[_0x493e('0x89')](function(_0x434112){for(var _0x12b7c1=0x0;_0x12b7c1<_0x10bf74['body'][_0x493e('0x69')][_0x493e('0x3f')];_0x12b7c1+=0x1){socket[_0x493e('0x73')](_0x493e('0x74'),{'UserId':Number(_0x10bf74[_0x493e('0x50')][_0x493e('0x69')][_0x12b7c1]),'WhatsappQueueId':Number(_0x10bf74[_0x493e('0x4e')]['id'])});}return _0x434112;});}})[_0x493e('0x2c')](respondWithResult(_0x4f8e77,null))[_0x493e('0x4c')](handleError(_0x4f8e77,null));};exports[_0x493e('0x86')]=function(_0x1631bb,_0x1cccd9,_0x3e9a57){return db['WhatsappQueue'][_0x493e('0x56')]({'where':{'id':_0x1631bb[_0x493e('0x4e')]['id']}})[_0x493e('0x2c')](handleEntityNotFound(_0x1cccd9,null))['then'](function(_0x40027d){if(_0x40027d){return _0x40027d['removeAgents'](_0x1631bb['query'][_0x493e('0x69')])[_0x493e('0x2c')](function(){if(_[_0x493e('0x8a')](_0x1631bb[_0x493e('0x38')][_0x493e('0x69')])){for(var _0x32ed83=0x0;_0x32ed83<_0x1631bb[_0x493e('0x38')][_0x493e('0x69')][_0x493e('0x3f')];_0x32ed83+=0x1){socket['emit'](_0x493e('0x8b'),{'UserId':Number(_0x1631bb[_0x493e('0x38')][_0x493e('0x69')][_0x32ed83]),'WhatsappQueueId':Number(_0x1631bb[_0x493e('0x4e')]['id'])});}}else{socket[_0x493e('0x73')]('userWhatsappQueue:remove',{'UserId':Number(_0x1631bb[_0x493e('0x38')][_0x493e('0x69')]),'WhatsappQueueId':Number(_0x1631bb['params']['id'])});}});}})[_0x493e('0x2c')](respondWithStatusCode(_0x1cccd9,null))['catch'](handleError(_0x1cccd9,null));};exports['getAgents']=function(_0x26ea41,_0x9a24a4,_0x2c3059){var _0x27e6a3={};var _0x3c1e07={};var _0xea27bb;var _0x223082;return db['WhatsappQueue']['findOne']({'where':{'id':_0x26ea41['params']['id']}})[_0x493e('0x2c')](handleEntityNotFound(_0x9a24a4,null))[_0x493e('0x2c')](function(_0x3a72dd){if(_0x3a72dd){_0xea27bb=_0x3a72dd;_0x3c1e07[_0x493e('0x3c')]=_[_0x493e('0x39')](db['User']['rawAttributes']);_0x3c1e07['query']=_[_0x493e('0x39')](_0x26ea41[_0x493e('0x38')]);_0x3c1e07['filters']=_[_0x493e('0x3b')](_0x3c1e07[_0x493e('0x3c')],_0x3c1e07[_0x493e('0x38')]);_0x27e6a3[_0x493e('0x3d')]=_[_0x493e('0x3b')](_0x3c1e07[_0x493e('0x3c')],qs[_0x493e('0x3e')](_0x26ea41[_0x493e('0x38')][_0x493e('0x3e')]));_0x27e6a3[_0x493e('0x3d')]=_0x27e6a3['attributes']['length']?_0x27e6a3['attributes']:_0x3c1e07['model'];_0x27e6a3['order']=qs[_0x493e('0x42')](_0x26ea41[_0x493e('0x38')][_0x493e('0x42')]);_0x27e6a3[_0x493e('0x43')]=qs[_0x493e('0x3a')](_['pick'](_0x26ea41[_0x493e('0x38')],_0x3c1e07[_0x493e('0x3a')]));if(_0x26ea41[_0x493e('0x38')][_0x493e('0x47')]){_0x27e6a3[_0x493e('0x43')]=_[_0x493e('0x45')](_0x27e6a3[_0x493e('0x43')],{'$or':_['map'](_0x27e6a3[_0x493e('0x3d')],function(_0x6260d2){var _0x30bd00={};_0x30bd00[_0x6260d2]={'$like':'%'+_0x26ea41[_0x493e('0x38')][_0x493e('0x47')]+'%'};return _0x30bd00;})});}_0x27e6a3=_['merge']({},_0x27e6a3,_0x26ea41[_0x493e('0x48')]);return _0xea27bb['getAgents'](_0x27e6a3);}})[_0x493e('0x2c')](function(_0x5273fb){if(_0x5273fb){_0x223082=_0x5273fb[_0x493e('0x3f')];if(!_0x26ea41['query'][_0x493e('0x5b')](_0x493e('0x40'))){_0x27e6a3[_0x493e('0x24')]=qs[_0x493e('0x24')](_0x26ea41[_0x493e('0x38')][_0x493e('0x24')]);_0x27e6a3[_0x493e('0x23')]=qs['offset'](_0x26ea41[_0x493e('0x38')][_0x493e('0x23')]);}return _0xea27bb[_0x493e('0x8c')](_0x27e6a3);}})['then'](function(_0x3a2c73){if(_0x3a2c73){return _0x3a2c73?{'count':_0x223082,'rows':_0x3a2c73}:null;}})[_0x493e('0x2c')](respondWithResult(_0x9a24a4,null))[_0x493e('0x4c')](handleError(_0x9a24a4,null));};
\ No newline at end of file
+var _0xedf9=['type','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','WhatsappQueue','rows','catch','show','rawAttributes','find','create','body','user','get','role','UserProfileSection','userProfileId','autoAssociation','params','describe','findOne','UserWhatsappQueue','WhatsappQueueId','map','findAll','User','findAndCountAll','UserId','agent','whatsappPause','createdAt','%s/%s','SIP','updatedAt','getTeams','addTeams','ids','Team','Agents','online','voicePause','interface','flatMap','sequelize','transaction','forEach','emit','userWhatsappQueue:save','removeTeams','select','tq.TeamId','from','team_has_whatsapp_queues','join','ut.TeamId\x20=\x20tq.TeamId','WhatsappQueueId\x20=\x20?','clone','ut.UserId\x20=\x20?','push','toString','QueryTypes','SELECT','every','includes','all','union','compact','value','isEmpty','removeAgents','addAgents','omit','spread','isArray','userWhatsappQueue:remove','getAgents','eml-format','rimraf','zip-dir','request-promise','moment','bluebird','util','sox','to-csv','ejs','lodash','squel','crypto','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','redis','defaults','localhost','socket.io-emitter','./whatsappQueue.socket','register','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','save','update','then','destroy','WhatsappQueues','UserProfileResource','error','stack','name','send','index','fieldName'];(function(_0x4a34c1,_0x295420){var _0x3ad522=function(_0x2604d5){while(--_0x2604d5){_0x4a34c1['push'](_0x4a34c1['shift']());}};_0x3ad522(++_0x295420);}(_0xedf9,0x181));var _0x9edf=function(_0x2385fc,_0x4c17b4){_0x2385fc=_0x2385fc-0x0;var _0x5e7e2e=_0xedf9[_0x2385fc];return _0x5e7e2e;};'use strict';var emlformat=require(_0x9edf('0x0'));var rimraf=require(_0x9edf('0x1'));var zipdir=require(_0x9edf('0x2'));var jsonpatch=require('fast-json-patch');var rp=require(_0x9edf('0x3'));var moment=require(_0x9edf('0x4'));var BPromise=require(_0x9edf('0x5'));var Mustache=require('mustache');var util=require(_0x9edf('0x6'));var path=require('path');var sox=require(_0x9edf('0x7'));var csv=require(_0x9edf('0x8'));var ejs=require(_0x9edf('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x9edf('0xa'));var squel=require(_0x9edf('0xb'));var crypto=require(_0x9edf('0xc'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x9edf('0x8'));var querystring=require(_0x9edf('0xd'));var Papa=require(_0x9edf('0xe'));var Redis=require(_0x9edf('0xf'));var authService=require(_0x9edf('0x10'));var qs=require(_0x9edf('0x11'));var as=require(_0x9edf('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x9edf('0x13'))(_0x9edf('0x14'));var utils=require(_0x9edf('0x15'));var config=require(_0x9edf('0x16'));var licenseUtil=require(_0x9edf('0x17'));var db=require('../../mysqldb')['db'];config[_0x9edf('0x18')]=_[_0x9edf('0x19')](config[_0x9edf('0x18')],{'host':_0x9edf('0x1a'),'port':0x18eb});var socket=require(_0x9edf('0x1b'))(new Redis(config[_0x9edf('0x18')]));require(_0x9edf('0x1c'))[_0x9edf('0x1d')](socket);function respondWithStatusCode(_0x1c0eaf,_0x192fc4){_0x192fc4=_0x192fc4||0xcc;return function(_0x6bd25e){if(_0x6bd25e){return _0x1c0eaf[_0x9edf('0x1e')](_0x192fc4);}return _0x1c0eaf[_0x9edf('0x1f')](_0x192fc4)[_0x9edf('0x20')]();};}function respondWithResult(_0x22e293,_0x37c686){_0x37c686=_0x37c686||0xc8;return function(_0x192d02){if(_0x192d02){return _0x22e293['status'](_0x37c686)[_0x9edf('0x21')](_0x192d02);}};}function respondWithFilteredResult(_0x3b35ee,_0x4ebdc8){return function(_0x4ef43a){if(_0x4ef43a){var _0x3b1f96=typeof _0x4ebdc8[_0x9edf('0x22')]===_0x9edf('0x23')&&typeof _0x4ebdc8[_0x9edf('0x24')]==='undefined';var _0x37f908=_0x4ef43a['count'];var _0x1698df=_0x3b1f96?0x0:_0x4ebdc8['offset'];var _0x39766e=_0x3b1f96?_0x4ef43a[_0x9edf('0x25')]:_0x4ebdc8[_0x9edf('0x22')]+_0x4ebdc8[_0x9edf('0x24')];var _0x50612c;if(_0x39766e>=_0x37f908){_0x39766e=_0x37f908;_0x50612c=0xc8;}else{_0x50612c=0xce;}_0x3b35ee[_0x9edf('0x1f')](_0x50612c);return _0x3b35ee[_0x9edf('0x26')](_0x9edf('0x27'),_0x1698df+'-'+_0x39766e+'/'+_0x37f908)[_0x9edf('0x21')](_0x4ef43a);}return null;};}function patchUpdates(_0x39238d){return function(_0x86ddcf){try{jsonpatch[_0x9edf('0x28')](_0x86ddcf,_0x39238d,!![]);}catch(_0x244887){return BPromise['reject'](_0x244887);}return _0x86ddcf[_0x9edf('0x29')]();};}function saveUpdates(_0x39769e,_0x43ca3e){return function(_0x3815f7){if(_0x3815f7){return _0x3815f7[_0x9edf('0x2a')](_0x39769e)[_0x9edf('0x2b')](function(_0x725228){return _0x725228;});}return null;};}function removeEntity(_0x21d4da,_0x2517e8){return function(_0x30abd5){if(_0x30abd5){return _0x30abd5[_0x9edf('0x2c')]()['then'](function(){var _0x284b28=_0x30abd5['get']({'plain':!![]});var _0x3a65f8=_0x9edf('0x2d');return db[_0x9edf('0x2e')][_0x9edf('0x2c')]({'where':{'type':_0x3a65f8,'resourceId':_0x284b28['id']}})[_0x9edf('0x2b')](function(){return _0x30abd5;});})[_0x9edf('0x2b')](function(){_0x21d4da[_0x9edf('0x1f')](0xcc)[_0x9edf('0x20')]();});}};}function handleEntityNotFound(_0x1d116c,_0x410897){return function(_0x36db45){if(!_0x36db45){_0x1d116c['sendStatus'](0x194);}return _0x36db45;};}function handleError(_0x2c2b6a,_0x22ebd3){_0x22ebd3=_0x22ebd3||0x1f4;return function(_0x4a679d){logger[_0x9edf('0x2f')](_0x4a679d[_0x9edf('0x30')]);if(_0x4a679d[_0x9edf('0x31')]){delete _0x4a679d['name'];}_0x2c2b6a[_0x9edf('0x1f')](_0x22ebd3)[_0x9edf('0x32')](_0x4a679d);};}exports[_0x9edf('0x33')]=function(_0x4d6af8,_0x1140c4){var _0x4cb34b={},_0x311166={},_0x458258={'count':0x0,'rows':[]};var _0x40dfd6=_['map'](db['WhatsappQueue']['rawAttributes'],function(_0x155345){return{'name':_0x155345[_0x9edf('0x34')],'type':_0x155345[_0x9edf('0x35')]['key']};});_0x311166[_0x9edf('0x36')]=_['map'](_0x40dfd6,'name');_0x311166[_0x9edf('0x37')]=_[_0x9edf('0x38')](_0x4d6af8[_0x9edf('0x37')]);_0x311166[_0x9edf('0x39')]=_[_0x9edf('0x3a')](_0x311166[_0x9edf('0x36')],_0x311166[_0x9edf('0x37')]);_0x4cb34b['attributes']=_[_0x9edf('0x3a')](_0x311166['model'],qs['fields'](_0x4d6af8['query'][_0x9edf('0x3b')]));_0x4cb34b[_0x9edf('0x3c')]=_0x4cb34b[_0x9edf('0x3c')][_0x9edf('0x3d')]?_0x4cb34b[_0x9edf('0x3c')]:_0x311166['model'];if(!_0x4d6af8[_0x9edf('0x37')][_0x9edf('0x3e')](_0x9edf('0x3f'))){_0x4cb34b[_0x9edf('0x24')]=qs['limit'](_0x4d6af8['query']['limit']);_0x4cb34b[_0x9edf('0x22')]=qs[_0x9edf('0x22')](_0x4d6af8[_0x9edf('0x37')]['offset']);}_0x4cb34b[_0x9edf('0x40')]=qs[_0x9edf('0x41')](_0x4d6af8['query'][_0x9edf('0x41')]);_0x4cb34b[_0x9edf('0x42')]=qs[_0x9edf('0x39')](_[_0x9edf('0x43')](_0x4d6af8[_0x9edf('0x37')],_0x311166[_0x9edf('0x39')]),_0x40dfd6);if(_0x4d6af8[_0x9edf('0x37')][_0x9edf('0x44')]){_0x4cb34b[_0x9edf('0x42')]=_[_0x9edf('0x45')](_0x4cb34b[_0x9edf('0x42')],{'$or':_['map'](_0x40dfd6,function(_0x3a060b){if(_0x3a060b[_0x9edf('0x35')]!==_0x9edf('0x46')){var _0x139ce2={};_0x139ce2[_0x3a060b[_0x9edf('0x31')]]={'$like':'%'+_0x4d6af8['query']['filter']+'%'};return _0x139ce2;}})});}_0x4cb34b=_[_0x9edf('0x45')]({},_0x4cb34b,_0x4d6af8[_0x9edf('0x47')]);var _0x5bb849={'where':_0x4cb34b['where']};return db['WhatsappQueue'][_0x9edf('0x25')](_0x5bb849)[_0x9edf('0x2b')](function(_0x546392){_0x458258[_0x9edf('0x25')]=_0x546392;if(_0x4d6af8['query'][_0x9edf('0x48')]){_0x4cb34b[_0x9edf('0x49')]=[{'all':!![]}];}return db[_0x9edf('0x4a')]['findAll'](_0x4cb34b);})['then'](function(_0x3ff628){_0x458258[_0x9edf('0x4b')]=_0x3ff628;return _0x458258;})[_0x9edf('0x2b')](respondWithFilteredResult(_0x1140c4,_0x4cb34b))[_0x9edf('0x4c')](handleError(_0x1140c4,null));};exports[_0x9edf('0x4d')]=function(_0x54fefa,_0x79c72f){var _0x1b06c9={'raw':!![],'where':{'id':_0x54fefa['params']['id']}},_0x2ed584={};_0x2ed584['model']=_['keys'](db[_0x9edf('0x4a')][_0x9edf('0x4e')]);_0x2ed584['query']=_[_0x9edf('0x38')](_0x54fefa[_0x9edf('0x37')]);_0x2ed584[_0x9edf('0x39')]=_['intersection'](_0x2ed584['model'],_0x2ed584[_0x9edf('0x37')]);_0x1b06c9[_0x9edf('0x3c')]=_[_0x9edf('0x3a')](_0x2ed584[_0x9edf('0x36')],qs[_0x9edf('0x3b')](_0x54fefa[_0x9edf('0x37')][_0x9edf('0x3b')]));_0x1b06c9['attributes']=_0x1b06c9['attributes'][_0x9edf('0x3d')]?_0x1b06c9[_0x9edf('0x3c')]:_0x2ed584[_0x9edf('0x36')];if(_0x54fefa[_0x9edf('0x37')][_0x9edf('0x48')]){_0x1b06c9['include']=[{'all':!![]}];}_0x1b06c9=_['merge']({},_0x1b06c9,_0x54fefa['options']);return db[_0x9edf('0x4a')][_0x9edf('0x4f')](_0x1b06c9)['then'](handleEntityNotFound(_0x79c72f,null))[_0x9edf('0x2b')](respondWithResult(_0x79c72f,null))[_0x9edf('0x4c')](handleError(_0x79c72f,null));};exports[_0x9edf('0x50')]=function(_0x58d815,_0x533dde){return db['WhatsappQueue'][_0x9edf('0x50')](_0x58d815[_0x9edf('0x51')],{})[_0x9edf('0x2b')](function(_0x4e446e){var _0x6f6dcc=_0x58d815[_0x9edf('0x52')][_0x9edf('0x53')]({'plain':!![]});if(!_0x6f6dcc)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x6f6dcc[_0x9edf('0x54')]===_0x9edf('0x52')){var _0x3cba5a=_0x4e446e[_0x9edf('0x53')]({'plain':!![]});var _0x515b95=_0x9edf('0x2d');return db[_0x9edf('0x55')][_0x9edf('0x4f')]({'where':{'name':_0x515b95,'userProfileId':_0x6f6dcc[_0x9edf('0x56')]},'raw':!![]})[_0x9edf('0x2b')](function(_0x1f3efe){if(_0x1f3efe&&_0x1f3efe[_0x9edf('0x57')]===0x0){return db['UserProfileResource'][_0x9edf('0x50')]({'name':_0x3cba5a['name'],'resourceId':_0x3cba5a['id'],'type':_0x1f3efe['name'],'sectionId':_0x1f3efe['id']},{})[_0x9edf('0x2b')](function(){return _0x4e446e;});}else{return _0x4e446e;}})[_0x9edf('0x4c')](function(_0x2f0e11){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x2f0e11);throw _0x2f0e11;});}return _0x4e446e;})['then'](respondWithResult(_0x533dde,0xc9))[_0x9edf('0x4c')](handleError(_0x533dde,null));};exports[_0x9edf('0x2a')]=function(_0x2fc4aa,_0x28f86b){if(_0x2fc4aa['body']['id']){delete _0x2fc4aa[_0x9edf('0x51')]['id'];}return db[_0x9edf('0x4a')][_0x9edf('0x4f')]({'where':{'id':_0x2fc4aa[_0x9edf('0x58')]['id']}})[_0x9edf('0x2b')](handleEntityNotFound(_0x28f86b,null))[_0x9edf('0x2b')](saveUpdates(_0x2fc4aa[_0x9edf('0x51')],null))[_0x9edf('0x2b')](respondWithResult(_0x28f86b,null))[_0x9edf('0x4c')](handleError(_0x28f86b,null));};exports[_0x9edf('0x2c')]=function(_0x2d78e6,_0x1c4348){return db[_0x9edf('0x4a')][_0x9edf('0x4f')]({'where':{'id':_0x2d78e6[_0x9edf('0x58')]['id']}})[_0x9edf('0x2b')](handleEntityNotFound(_0x1c4348,null))[_0x9edf('0x2b')](removeEntity(_0x1c4348,null))['catch'](handleError(_0x1c4348,null));};exports[_0x9edf('0x59')]=function(_0x23638b,_0x44ac42){return db[_0x9edf('0x4a')][_0x9edf('0x59')]()[_0x9edf('0x2b')](respondWithResult(_0x44ac42,null))['catch'](handleError(_0x44ac42,null));};exports['getMembers']=function(_0x2cafa7,_0x5df0d1,_0x757419){var _0x5aa922={'raw':!![],'where':{}},_0x409018={},_0x5d92cb;return db[_0x9edf('0x4a')][_0x9edf('0x5a')]({'where':{'id':_0x2cafa7[_0x9edf('0x58')]['id']}})[_0x9edf('0x2b')](handleEntityNotFound(_0x5df0d1,null))[_0x9edf('0x2b')](function(_0x25c4cb){if(_0x25c4cb){_0x5d92cb=_0x25c4cb[_0x9edf('0x53')]({'plain':!![]});_0x409018['model']=_['keys'](db[_0x9edf('0x5b')][_0x9edf('0x4e')]);_0x409018[_0x9edf('0x37')]=_[_0x9edf('0x38')](_0x2cafa7[_0x9edf('0x37')]);_0x409018['filters']=_[_0x9edf('0x3a')](_0x409018[_0x9edf('0x36')],_0x409018[_0x9edf('0x37')]);_0x5aa922['attributes']=_['intersection'](_0x409018[_0x9edf('0x36')],qs[_0x9edf('0x3b')](_0x2cafa7[_0x9edf('0x37')][_0x9edf('0x3b')]));_0x5aa922['attributes']=_0x5aa922[_0x9edf('0x3c')][_0x9edf('0x3d')]?_0x5aa922[_0x9edf('0x3c')]:_0x409018[_0x9edf('0x36')];if(!_0x2cafa7['query'][_0x9edf('0x3e')](_0x9edf('0x3f'))){_0x5aa922[_0x9edf('0x24')]=qs['limit'](_0x2cafa7[_0x9edf('0x37')][_0x9edf('0x24')]);_0x5aa922[_0x9edf('0x22')]=qs[_0x9edf('0x22')](_0x2cafa7['query'][_0x9edf('0x22')]);}_0x5aa922[_0x9edf('0x40')]=qs[_0x9edf('0x41')](_0x2cafa7[_0x9edf('0x37')][_0x9edf('0x41')]);_0x5aa922[_0x9edf('0x42')]=qs[_0x9edf('0x39')](_['pick'](_0x2cafa7[_0x9edf('0x37')],_0x409018[_0x9edf('0x39')]));_0x5aa922[_0x9edf('0x42')][_0x9edf('0x5c')]=_0x25c4cb['id'];if(_0x2cafa7[_0x9edf('0x37')][_0x9edf('0x44')]){_0x5aa922[_0x9edf('0x42')]=_['merge'](_0x5aa922['where'],{'$or':_[_0x9edf('0x5d')](_0x5aa922['attributes'],function(_0x15f9c6){var _0x19e724={};_0x19e724[_0x15f9c6]={'$like':'%'+_0x2cafa7[_0x9edf('0x37')][_0x9edf('0x44')]+'%'};return _0x19e724;})});}_0x5aa922=_[_0x9edf('0x45')]({},_0x5aa922,_0x2cafa7['options']);return db[_0x9edf('0x5b')][_0x9edf('0x5e')](_0x5aa922);}})['then'](function(_0x300103){if(_0x300103){return db[_0x9edf('0x5f')][_0x9edf('0x60')]({'where':{'id':_[_0x9edf('0x5d')](_0x300103,_0x9edf('0x61')),'role':_0x9edf('0x62')},'attributes':['id',_0x9edf('0x31'),_0x9edf('0x63'),'updatedAt',_0x9edf('0x64')]});}})[_0x9edf('0x2b')](function(_0x156191){if(_0x156191){return{'count':_0x156191[_0x9edf('0x25')],'rows':_[_0x9edf('0x5d')](_0x156191[_0x9edf('0x4b')],function(_0x127c78){return{'membername':_0x127c78[_0x9edf('0x31')],'UserId':_0x127c78['id'],'queue_name':_0x5d92cb[_0x9edf('0x31')],'WhatsappQueueId':_0x5d92cb['id'],'interface':util['format'](_0x9edf('0x65'),_0x9edf('0x66'),_0x127c78[_0x9edf('0x31')]),'penalty':0x0,'paused':_0x127c78[_0x9edf('0x63')],'createdAt':_0x127c78[_0x9edf('0x64')],'updatedAt':_0x127c78[_0x9edf('0x67')]};})};}else{return{'count':0x0,'rows':[]};}})[_0x9edf('0x2b')](respondWithFilteredResult(_0x5df0d1,_0x5aa922))['catch'](handleError(_0x5df0d1,null));};exports[_0x9edf('0x68')]=function(_0x15e56a,_0x468df2,_0x5c5319){var _0x118ddc={};var _0x5b0a78={};var _0x5d2dec;var _0xefec80;return db[_0x9edf('0x4a')]['findOne']({'where':{'id':_0x15e56a[_0x9edf('0x58')]['id']}})['then'](handleEntityNotFound(_0x468df2,null))['then'](function(_0x305aec){if(_0x305aec){_0x5d2dec=_0x305aec;_0x5b0a78[_0x9edf('0x36')]=_[_0x9edf('0x38')](db['Team'][_0x9edf('0x4e')]);_0x5b0a78[_0x9edf('0x37')]=_['keys'](_0x15e56a[_0x9edf('0x37')]);_0x5b0a78[_0x9edf('0x39')]=_[_0x9edf('0x3a')](_0x5b0a78[_0x9edf('0x36')],_0x5b0a78['query']);_0x118ddc[_0x9edf('0x3c')]=_[_0x9edf('0x3a')](_0x5b0a78[_0x9edf('0x36')],qs[_0x9edf('0x3b')](_0x15e56a[_0x9edf('0x37')]['fields']));_0x118ddc[_0x9edf('0x3c')]=_0x118ddc[_0x9edf('0x3c')][_0x9edf('0x3d')]?_0x118ddc[_0x9edf('0x3c')]:_0x5b0a78[_0x9edf('0x36')];_0x118ddc[_0x9edf('0x40')]=qs[_0x9edf('0x41')](_0x15e56a[_0x9edf('0x37')][_0x9edf('0x41')]);_0x118ddc['where']=qs[_0x9edf('0x39')](_[_0x9edf('0x43')](_0x15e56a[_0x9edf('0x37')],_0x5b0a78[_0x9edf('0x39')]));if(_0x15e56a[_0x9edf('0x37')][_0x9edf('0x44')]){_0x118ddc[_0x9edf('0x42')]=_[_0x9edf('0x45')](_0x118ddc[_0x9edf('0x42')],{'$or':_[_0x9edf('0x5d')](_0x118ddc[_0x9edf('0x3c')],function(_0x12aa42){var _0x48a142={};_0x48a142[_0x12aa42]={'$like':'%'+_0x15e56a[_0x9edf('0x37')][_0x9edf('0x44')]+'%'};return _0x48a142;})});}_0x118ddc=_['merge']({},_0x118ddc,_0x15e56a[_0x9edf('0x47')]);return _0x5d2dec[_0x9edf('0x68')](_0x118ddc);}})[_0x9edf('0x2b')](function(_0x3a4d62){if(_0x3a4d62){_0xefec80=_0x3a4d62[_0x9edf('0x3d')];if(!_0x15e56a[_0x9edf('0x37')]['hasOwnProperty'](_0x9edf('0x3f'))){_0x118ddc[_0x9edf('0x24')]=qs[_0x9edf('0x24')](_0x15e56a[_0x9edf('0x37')][_0x9edf('0x24')]);_0x118ddc[_0x9edf('0x22')]=qs['offset'](_0x15e56a[_0x9edf('0x37')]['offset']);}return _0x5d2dec[_0x9edf('0x68')](_0x118ddc);}})[_0x9edf('0x2b')](function(_0x3076d9){if(_0x3076d9){return _0x3076d9?{'count':_0xefec80,'rows':_0x3076d9}:null;}})[_0x9edf('0x2b')](respondWithResult(_0x468df2,null))[_0x9edf('0x4c')](handleError(_0x468df2,null));};exports[_0x9edf('0x69')]=function(_0x1649d4,_0xdeea16,_0x5ece26){var _0x3fa9a1=_0x1649d4[_0x9edf('0x51')][_0x9edf('0x6a')];return db[_0x9edf('0x6b')]['findAll']({'where':{'id':_0x3fa9a1},'attributes':['id'],'include':[{'model':db[_0x9edf('0x5f')],'as':_0x9edf('0x6c'),'attributes':['id',_0x9edf('0x31'),_0x9edf('0x6d'),_0x9edf('0x6e'),_0x9edf('0x6f')],'raw':!![]}]})[_0x9edf('0x2b')](function(_0x1d7e35){if(_0x1d7e35){var _0x156d0c=_[_0x9edf('0x70')](_0x1d7e35,function(_0x4352a7){var _0x289053=_0x4352a7[_0x9edf('0x53')]({'plain':!![]});return _0x289053[_0x9edf('0x6c')];});return db['WhatsappQueue']['find']({'where':{'id':_0x1649d4['params']['id']}})[_0x9edf('0x2b')](function(_0x1b51ed){return db[_0x9edf('0x71')][_0x9edf('0x72')](function(_0x5765c1){return _0x1b51ed[_0x9edf('0x69')](_0x3fa9a1,{'transaction':_0x5765c1})[_0x9edf('0x2b')](function(){return BPromise['each'](_0x156d0c,function(_0x73963f){return db[_0x9edf('0x5b')]['findOrCreate']({'where':{'UserId':_0x73963f['id'],'WhatsappQueueId':_0x1649d4[_0x9edf('0x58')]['id']},'transaction':_0x5765c1});});})[_0x9edf('0x2b')](function(){_0x156d0c[_0x9edf('0x73')](function(_0x9e50a2){socket[_0x9edf('0x74')](_0x9edf('0x75'),{'UserId':_0x9e50a2['id'],'WhatsappQueueId':_0x1b51ed['id']});});});});});}})['then'](respondWithStatusCode(_0xdeea16,null))[_0x9edf('0x4c')](handleError(_0xdeea16,null));};exports[_0x9edf('0x76')]=function(_0x34f173,_0x1ea70d,_0x4190da){return db[_0x9edf('0x6b')][_0x9edf('0x5e')]({'where':{'id':_0x34f173[_0x9edf('0x37')][_0x9edf('0x6a')]},'attributes':['id'],'include':[{'model':db['User'],'as':_0x9edf('0x6c'),'attributes':['id'],'raw':!![]}]})['then'](handleEntityNotFound(_0x1ea70d,null))[_0x9edf('0x2b')](function(_0x1f25e9){var _0x33b96a=_[_0x9edf('0x5d')](_0x1f25e9,'id');var _0x3da767=[];var _0x3e3d67=[];var _0x642e0e=squel[_0x9edf('0x77')]();_0x642e0e['field'](_0x9edf('0x78'))[_0x9edf('0x79')](_0x9edf('0x7a'),'tq')[_0x9edf('0x7b')]('user_has_teams','ut',_0x9edf('0x7c'))[_0x9edf('0x42')](_0x9edf('0x7d'),_0x34f173[_0x9edf('0x58')]['id']);for(var _0x89b7c6=0x0;_0x89b7c6<_0x1f25e9[_0x9edf('0x3d')];_0x89b7c6+=0x1){let _0x28ad03=_0x1f25e9[_0x89b7c6];for(var _0x58e324=0x0;_0x58e324<_0x28ad03[_0x9edf('0x6c')][_0x9edf('0x3d')];_0x58e324+=0x1){let _0x1f2095=_0x28ad03[_0x9edf('0x6c')][_0x58e324];var _0x415099=_0x642e0e[_0x9edf('0x7e')]();_0x415099[_0x9edf('0x42')](_0x9edf('0x7f'),_0x1f2095['id']);_0x3e3d67[_0x9edf('0x80')](db[_0x9edf('0x71')][_0x9edf('0x37')](_0x415099[_0x9edf('0x81')](),{'type':db[_0x9edf('0x71')][_0x9edf('0x82')][_0x9edf('0x83')]})[_0x9edf('0x2b')](function(_0x4a511c){if(_0x4a511c['length']===0x1){return _0x1f2095['id'];}else{var _0x2f529b=_[_0x9edf('0x84')](_['map'](_0x4a511c,'TeamId'),function(_0x383879){return _[_0x9edf('0x85')](_0x33b96a,_0x383879);});if(_0x2f529b){return _0x1f2095['id'];}}}));}}return BPromise[_0x9edf('0x86')](_0x3e3d67)['then'](function(_0x55f541){_0x3da767=_(_0x3da767)[_0x9edf('0x87')](_0x55f541)[_0x9edf('0x88')]()[_0x9edf('0x89')]();return db[_0x9edf('0x4a')][_0x9edf('0x4f')]({'where':{'id':_0x34f173[_0x9edf('0x58')]['id']}})['then'](function(_0xc760a4){return db['sequelize']['transaction'](function(_0x402a46){return _0xc760a4[_0x9edf('0x76')](_0x34f173[_0x9edf('0x37')][_0x9edf('0x6a')],{'transaction':_0x402a46})[_0x9edf('0x2b')](function(){if(!_[_0x9edf('0x8a')](_0x3da767)){return _0xc760a4[_0x9edf('0x8b')](_0x3da767,{'transaction':_0x402a46});}})[_0x9edf('0x2b')](function(){_0x3da767[_0x9edf('0x73')](function(_0x531490){socket[_0x9edf('0x74')]('userWhatsappQueue:remove',{'UserId':_0x531490,'WhatsappQueueId':_0xc760a4['id']});});});});});});})['then'](respondWithStatusCode(_0x1ea70d,null))[_0x9edf('0x4c')](handleError(_0x1ea70d,null));};exports[_0x9edf('0x8c')]=function(_0x21e646,_0x7a16b7,_0x4773f9){return db[_0x9edf('0x4a')][_0x9edf('0x4f')]({'where':{'id':_0x21e646['params']['id']}})['then'](handleEntityNotFound(_0x7a16b7,null))['then'](function(_0x41d5de){if(_0x41d5de){return _0x41d5de[_0x9edf('0x8c')](_0x21e646['body'][_0x9edf('0x6a')],_[_0x9edf('0x8d')](_0x21e646[_0x9edf('0x51')],['ids','id'])||{})[_0x9edf('0x8e')](function(_0x4b143b){for(var _0x59f920=0x0;_0x59f920<_0x21e646[_0x9edf('0x51')][_0x9edf('0x6a')][_0x9edf('0x3d')];_0x59f920+=0x1){socket[_0x9edf('0x74')]('userWhatsappQueue:save',{'UserId':Number(_0x21e646[_0x9edf('0x51')]['ids'][_0x59f920]),'WhatsappQueueId':Number(_0x21e646[_0x9edf('0x58')]['id'])});}return _0x4b143b;});}})[_0x9edf('0x2b')](respondWithResult(_0x7a16b7,null))[_0x9edf('0x4c')](handleError(_0x7a16b7,null));};exports[_0x9edf('0x8b')]=function(_0xf7fb,_0x23640e,_0x1d8e55){return db[_0x9edf('0x4a')][_0x9edf('0x4f')]({'where':{'id':_0xf7fb[_0x9edf('0x58')]['id']}})[_0x9edf('0x2b')](handleEntityNotFound(_0x23640e,null))[_0x9edf('0x2b')](function(_0x1c0ce8){if(_0x1c0ce8){return _0x1c0ce8[_0x9edf('0x8b')](_0xf7fb['query'][_0x9edf('0x6a')])[_0x9edf('0x2b')](function(){if(_[_0x9edf('0x8f')](_0xf7fb[_0x9edf('0x37')][_0x9edf('0x6a')])){for(var _0x59bbec=0x0;_0x59bbec<_0xf7fb[_0x9edf('0x37')][_0x9edf('0x6a')]['length'];_0x59bbec+=0x1){socket[_0x9edf('0x74')](_0x9edf('0x90'),{'UserId':Number(_0xf7fb[_0x9edf('0x37')][_0x9edf('0x6a')][_0x59bbec]),'WhatsappQueueId':Number(_0xf7fb[_0x9edf('0x58')]['id'])});}}else{socket[_0x9edf('0x74')](_0x9edf('0x90'),{'UserId':Number(_0xf7fb['query'][_0x9edf('0x6a')]),'WhatsappQueueId':Number(_0xf7fb[_0x9edf('0x58')]['id'])});}});}})['then'](respondWithStatusCode(_0x23640e,null))['catch'](handleError(_0x23640e,null));};exports[_0x9edf('0x91')]=function(_0xcf0d8c,_0x561102,_0x4df7df){var _0x2bd4a4={};var _0x1062bd={};var _0x3bcdf2;var _0x3577a9;return db['WhatsappQueue']['findOne']({'where':{'id':_0xcf0d8c[_0x9edf('0x58')]['id']}})['then'](handleEntityNotFound(_0x561102,null))[_0x9edf('0x2b')](function(_0x4f0e43){if(_0x4f0e43){_0x3bcdf2=_0x4f0e43;_0x1062bd[_0x9edf('0x36')]=_['keys'](db[_0x9edf('0x5f')][_0x9edf('0x4e')]);_0x1062bd[_0x9edf('0x37')]=_[_0x9edf('0x38')](_0xcf0d8c[_0x9edf('0x37')]);_0x1062bd[_0x9edf('0x39')]=_[_0x9edf('0x3a')](_0x1062bd['model'],_0x1062bd[_0x9edf('0x37')]);_0x2bd4a4[_0x9edf('0x3c')]=_['intersection'](_0x1062bd[_0x9edf('0x36')],qs['fields'](_0xcf0d8c[_0x9edf('0x37')][_0x9edf('0x3b')]));_0x2bd4a4[_0x9edf('0x3c')]=_0x2bd4a4[_0x9edf('0x3c')][_0x9edf('0x3d')]?_0x2bd4a4[_0x9edf('0x3c')]:_0x1062bd[_0x9edf('0x36')];_0x2bd4a4[_0x9edf('0x40')]=qs[_0x9edf('0x41')](_0xcf0d8c[_0x9edf('0x37')]['sort']);_0x2bd4a4['where']=qs[_0x9edf('0x39')](_[_0x9edf('0x43')](_0xcf0d8c[_0x9edf('0x37')],_0x1062bd[_0x9edf('0x39')]));if(_0xcf0d8c[_0x9edf('0x37')][_0x9edf('0x44')]){_0x2bd4a4[_0x9edf('0x42')]=_['merge'](_0x2bd4a4[_0x9edf('0x42')],{'$or':_['map'](_0x2bd4a4[_0x9edf('0x3c')],function(_0x4b311c){var _0x1c2ab5={};_0x1c2ab5[_0x4b311c]={'$like':'%'+_0xcf0d8c[_0x9edf('0x37')][_0x9edf('0x44')]+'%'};return _0x1c2ab5;})});}_0x2bd4a4=_[_0x9edf('0x45')]({},_0x2bd4a4,_0xcf0d8c['options']);return _0x3bcdf2[_0x9edf('0x91')](_0x2bd4a4);}})[_0x9edf('0x2b')](function(_0x2f28c3){if(_0x2f28c3){_0x3577a9=_0x2f28c3[_0x9edf('0x3d')];if(!_0xcf0d8c[_0x9edf('0x37')][_0x9edf('0x3e')]('nolimit')){_0x2bd4a4['limit']=qs['limit'](_0xcf0d8c[_0x9edf('0x37')][_0x9edf('0x24')]);_0x2bd4a4[_0x9edf('0x22')]=qs['offset'](_0xcf0d8c[_0x9edf('0x37')]['offset']);}return _0x3bcdf2[_0x9edf('0x91')](_0x2bd4a4);}})[_0x9edf('0x2b')](function(_0x2791a2){if(_0x2791a2){return _0x2791a2?{'count':_0x3577a9,'rows':_0x2791a2}:null;}})[_0x9edf('0x2b')](respondWithResult(_0x561102,null))['catch'](handleError(_0x561102,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0a4c=['exports','save','update','hook'];(function(_0x523609,_0x228bd4){var _0x5c8635=function(_0x38a606){while(--_0x38a606){_0x523609['push'](_0x523609['shift']());}};_0x5c8635(++_0x228bd4);}(_0x0a4c,0x69));var _0xc0a4=function(_0x34d23d,_0x474dd0){_0x34d23d=_0x34d23d-0x0;var _0x1defd2=_0x0a4c[_0x34d23d];return _0x1defd2;};'use strict';var EventEmitter=require('events');var WhatsappQueue=require('../../mysqldb')['db']['WhatsappQueue'];var WhatsappQueueEvents=new EventEmitter();WhatsappQueueEvents['setMaxListeners'](0x0);var events={'afterCreate':_0xc0a4('0x0'),'afterUpdate':_0xc0a4('0x1'),'afterDestroy':'remove'};function emitEvent(_0x434555){return function(_0x41e14f,_0x529656,_0x6e31be){WhatsappQueueEvents['emit'](_0x434555+':'+_0x41e14f['id'],_0x41e14f);WhatsappQueueEvents['emit'](_0x434555,_0x41e14f);_0x6e31be(null);};}for(var e in events){if(events['hasOwnProperty'](e)){var event=events[e];WhatsappQueue[_0xc0a4('0x2')](e,emitEvent(event));}}module[_0xc0a4('0x3')]=WhatsappQueueEvents;
\ No newline at end of file
+var _0x9c0a=['WhatsappQueue','setMaxListeners','save','update','emit','hasOwnProperty','hook','events'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x9c0a,0x97));var _0xa9c0=function(_0x52b24f,_0xca062d){_0x52b24f=_0x52b24f-0x0;var _0x46ea6b=_0x9c0a[_0x52b24f];return _0x46ea6b;};'use strict';var EventEmitter=require(_0xa9c0('0x0'));var WhatsappQueue=require('../../mysqldb')['db'][_0xa9c0('0x1')];var WhatsappQueueEvents=new EventEmitter();WhatsappQueueEvents[_0xa9c0('0x2')](0x0);var events={'afterCreate':_0xa9c0('0x3'),'afterUpdate':_0xa9c0('0x4'),'afterDestroy':'remove'};function emitEvent(_0x3a8adf){return function(_0x425ca1,_0x466336,_0x2ee920){WhatsappQueueEvents[_0xa9c0('0x5')](_0x3a8adf+':'+_0x425ca1['id'],_0x425ca1);WhatsappQueueEvents[_0xa9c0('0x5')](_0x3a8adf,_0x425ca1);_0x2ee920(null);};}for(var e in events){if(events[_0xa9c0('0x6')](e)){var event=events[e];WhatsappQueue[_0xa9c0('0x7')](e,emitEvent(event));}}module['exports']=WhatsappQueueEvents;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaac3=['moment','request-promise','path','rimraf','../../config/environment','./whatsappQueue.attributes','exports','WhatsappQueue','whatsapp_queues','lodash','util','../../config/logger','api'];(function(_0x1b95d8,_0x50a1ea){var _0x2e1de2=function(_0x5359b7){while(--_0x5359b7){_0x1b95d8['push'](_0x1b95d8['shift']());}};_0x2e1de2(++_0x50a1ea);}(_0xaac3,0x1a9));var _0x3aac=function(_0x2714a3,_0x5a6a08){_0x2714a3=_0x2714a3-0x0;var _0x50e676=_0xaac3[_0x2714a3];return _0x50e676;};'use strict';var _=require(_0x3aac('0x0'));var util=require(_0x3aac('0x1'));var logger=require(_0x3aac('0x2'))(_0x3aac('0x3'));var moment=require(_0x3aac('0x4'));var BPromise=require('bluebird');var rp=require(_0x3aac('0x5'));var fs=require('fs');var path=require(_0x3aac('0x6'));var rimraf=require(_0x3aac('0x7'));var config=require(_0x3aac('0x8'));var attributes=require(_0x3aac('0x9'));module[_0x3aac('0xa')]=function(_0x8952b9,_0x4651aa){return _0x8952b9['define'](_0x3aac('0xb'),attributes,{'tableName':_0x3aac('0xc'),'paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
+var _0x3ebc=['WhatsappQueue','lodash','../../config/logger','moment','request-promise','path','rimraf','../../config/environment','exports','define'];(function(_0x2e373f,_0x175d60){var _0x3d3898=function(_0x11186f){while(--_0x11186f){_0x2e373f['push'](_0x2e373f['shift']());}};_0x3d3898(++_0x175d60);}(_0x3ebc,0x1cd));var _0xc3eb=function(_0x2f2881,_0xc42cfb){_0x2f2881=_0x2f2881-0x0;var _0x1cd755=_0x3ebc[_0x2f2881];return _0x1cd755;};'use strict';var _=require(_0xc3eb('0x0'));var util=require('util');var logger=require(_0xc3eb('0x1'))('api');var moment=require(_0xc3eb('0x2'));var BPromise=require('bluebird');var rp=require(_0xc3eb('0x3'));var fs=require('fs');var path=require(_0xc3eb('0x4'));var rimraf=require(_0xc3eb('0x5'));var config=require(_0xc3eb('0x6'));var attributes=require('./whatsappQueue.attributes');module[_0xc3eb('0x7')]=function(_0xa3fbff,_0xe1a667){return _0xa3fbff[_0xc3eb('0x8')](_0xc3eb('0x9'),attributes,{'tableName':'whatsapp_queues','paranoid':![],'indexes':[],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf241=['include','map','model','attributes','GetWhatsappQueue','ShowWhatsappQueue','WhatsappQueue','find','debug','catch','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','http','redis','localhost','socket.io-emitter','./whatsappQueue.socket','register','then','WhatsappQueue,\x20%s,\x20%s','request\x20sent','WhatsappQueue,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','options','raw','where'];(function(_0x1b6117,_0x39f1e5){var _0x8fa76c=function(_0x48a464){while(--_0x48a464){_0x1b6117['push'](_0x1b6117['shift']());}};_0x8fa76c(++_0x39f1e5);}(_0xf241,0x7f));var _0x1f24=function(_0x4565bf,_0x5ad9d6){_0x4565bf=_0x4565bf-0x0;var _0x5610ba=_0xf241[_0x4565bf];return _0x5610ba;};'use strict';var _=require('lodash');var util=require(_0x1f24('0x0'));var moment=require(_0x1f24('0x1'));var BPromise=require(_0x1f24('0x2'));var rs=require(_0x1f24('0x3'));var fs=require('fs');var Redis=require(_0x1f24('0x4'));var db=require(_0x1f24('0x5'))['db'];var utils=require(_0x1f24('0x6'));var logger=require(_0x1f24('0x7'))('rpc');var config=require(_0x1f24('0x8'));var jayson=require(_0x1f24('0x9'));var client=jayson['client'][_0x1f24('0xa')]({'port':0x232a});config['redis']=_['defaults'](config[_0x1f24('0xb')],{'host':_0x1f24('0xc'),'port':0x18eb});var socket=require(_0x1f24('0xd'))(new Redis(config['redis']));require(_0x1f24('0xe'))[_0x1f24('0xf')](socket);function respondWithRpcPromise(_0x4e9701,_0x440980,_0x22ec71){return new BPromise(function(_0x4a64bf,_0x440b56){return client['request'](_0x4e9701,_0x22ec71)[_0x1f24('0x10')](function(_0x55a4a6){logger['info'](_0x1f24('0x11'),_0x440980,_0x1f24('0x12'));logger['debug'](_0x1f24('0x13'),_0x440980,_0x1f24('0x12'),JSON[_0x1f24('0x14')](_0x55a4a6));if(_0x55a4a6[_0x1f24('0x15')]){if(_0x55a4a6[_0x1f24('0x15')][_0x1f24('0x16')]===0x1f4){logger[_0x1f24('0x15')]('WhatsappQueue,\x20%s,\x20%s',_0x440980,_0x55a4a6['error'][_0x1f24('0x17')]);return _0x440b56(_0x55a4a6[_0x1f24('0x15')][_0x1f24('0x17')]);}logger[_0x1f24('0x15')](_0x1f24('0x11'),_0x440980,_0x55a4a6[_0x1f24('0x15')][_0x1f24('0x17')]);return _0x4a64bf(_0x55a4a6[_0x1f24('0x15')][_0x1f24('0x17')]);}else{logger[_0x1f24('0x18')](_0x1f24('0x11'),_0x440980,_0x1f24('0x12'));_0x4a64bf(_0x55a4a6[_0x1f24('0x19')]['message']);}})['catch'](function(_0x58416d){logger[_0x1f24('0x15')](_0x1f24('0x11'),_0x440980,_0x58416d);_0x440b56(_0x58416d);});});}exports['GetWhatsappQueue']=function(_0x275ead){var _0x48137f=this;return new Promise(function(_0x1640b7,_0x1f6aaf){return db['WhatsappQueue']['findAll']({'raw':_0x275ead[_0x1f24('0x1a')]?_0x275ead[_0x1f24('0x1a')][_0x1f24('0x1b')]===undefined?!![]:![]:!![],'where':_0x275ead[_0x1f24('0x1a')]?_0x275ead['options'][_0x1f24('0x1c')]||null:null,'attributes':_0x275ead['options']?_0x275ead['options']['attributes']||null:null,'limit':_0x275ead[_0x1f24('0x1a')]?_0x275ead[_0x1f24('0x1a')]['limit']||null:null,'include':_0x275ead[_0x1f24('0x1a')]?_0x275ead[_0x1f24('0x1a')][_0x1f24('0x1d')]?_[_0x1f24('0x1e')](_0x275ead[_0x1f24('0x1a')][_0x1f24('0x1d')],function(_0x35f5a5){return{'model':db[_0x35f5a5[_0x1f24('0x1f')]],'as':_0x35f5a5['as'],'attributes':_0x35f5a5[_0x1f24('0x20')],'include':_0x35f5a5[_0x1f24('0x1d')]?_['map'](_0x35f5a5[_0x1f24('0x1d')],function(_0x9a183){return{'model':db[_0x9a183['model']],'as':_0x9a183['as'],'attributes':_0x9a183[_0x1f24('0x20')],'include':_0x9a183[_0x1f24('0x1d')]?_[_0x1f24('0x1e')](_0x9a183[_0x1f24('0x1d')],function(_0x26c7a6){return{'model':db[_0x26c7a6[_0x1f24('0x1f')]],'as':_0x26c7a6['as'],'attributes':_0x26c7a6['attributes']};}):[]};}):[]};}):[]:[]})[_0x1f24('0x10')](function(_0x3c065f){logger[_0x1f24('0x18')](_0x1f24('0x21'),_0x275ead);logger['debug'](_0x1f24('0x21'),_0x275ead,JSON[_0x1f24('0x14')](_0x3c065f));_0x1640b7(_0x3c065f);})['catch'](function(_0x22e48a){logger[_0x1f24('0x15')]('GetWhatsappQueue',_0x22e48a['message'],_0x275ead);_0x1f6aaf(_0x48137f[_0x1f24('0x15')](0x1f4,_0x22e48a[_0x1f24('0x17')]));});});};exports[_0x1f24('0x22')]=function(_0xad0143){var _0x16c83c=this;return new Promise(function(_0x53b27e,_0xaf4ed6){return db[_0x1f24('0x23')][_0x1f24('0x24')]({'raw':_0xad0143[_0x1f24('0x1a')]?_0xad0143['options'][_0x1f24('0x1b')]===undefined?!![]:![]:!![],'where':_0xad0143['options']?_0xad0143['options'][_0x1f24('0x1c')]||null:null,'attributes':_0xad0143['options']?_0xad0143[_0x1f24('0x1a')][_0x1f24('0x20')]||null:null,'include':_0xad0143[_0x1f24('0x1a')]?_0xad0143[_0x1f24('0x1a')][_0x1f24('0x1d')]?_[_0x1f24('0x1e')](_0xad0143['options'][_0x1f24('0x1d')],function(_0x5c2691){return{'model':db[_0x5c2691[_0x1f24('0x1f')]],'as':_0x5c2691['as'],'attributes':_0x5c2691[_0x1f24('0x20')],'include':_0x5c2691[_0x1f24('0x1d')]?_[_0x1f24('0x1e')](_0x5c2691[_0x1f24('0x1d')],function(_0xd3ef1c){return{'model':db[_0xd3ef1c['model']],'as':_0xd3ef1c['as'],'attributes':_0xd3ef1c[_0x1f24('0x20')],'include':_0xd3ef1c['include']?_[_0x1f24('0x1e')](_0xd3ef1c[_0x1f24('0x1d')],function(_0x2f0fc6){return{'model':db[_0x2f0fc6['model']],'as':_0x2f0fc6['as'],'attributes':_0x2f0fc6['attributes']};}):[]};}):[]};}):[]:[]})[_0x1f24('0x10')](function(_0x9a86ef){logger[_0x1f24('0x18')](_0x1f24('0x22'),_0xad0143);logger[_0x1f24('0x25')]('ShowWhatsappQueue',_0xad0143,JSON['stringify'](_0x9a86ef));_0x53b27e(_0x9a86ef);})[_0x1f24('0x26')](function(_0x217a5c){logger[_0x1f24('0x15')](_0x1f24('0x22'),_0x217a5c['message'],_0xad0143);_0xaf4ed6(_0x16c83c[_0x1f24('0x15')](0x1f4,_0x217a5c['message']));});});};
\ No newline at end of file
+var _0xeb37=['ShowWhatsappQueue','find','raw','where','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','redis','defaults','localhost','register','request','info','WhatsappQueue,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','findAll','options','attributes','limit','include','map','model','GetWhatsappQueue'];(function(_0x2d24d8,_0x41e7fe){var _0x940922=function(_0xd92d8e){while(--_0xd92d8e){_0x2d24d8['push'](_0x2d24d8['shift']());}};_0x940922(++_0x41e7fe);}(_0xeb37,0x15a));var _0x7eb3=function(_0x23f297,_0x50b7ce){_0x23f297=_0x23f297-0x0;var _0x13398c=_0xeb37[_0x23f297];return _0x13398c;};'use strict';var _=require('lodash');var util=require(_0x7eb3('0x0'));var moment=require('moment');var BPromise=require(_0x7eb3('0x1'));var rs=require(_0x7eb3('0x2'));var fs=require('fs');var Redis=require(_0x7eb3('0x3'));var db=require(_0x7eb3('0x4'))['db'];var utils=require(_0x7eb3('0x5'));var logger=require(_0x7eb3('0x6'))(_0x7eb3('0x7'));var config=require(_0x7eb3('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x7eb3('0x9')][_0x7eb3('0xa')]({'port':0x232a});config[_0x7eb3('0xb')]=_[_0x7eb3('0xc')](config[_0x7eb3('0xb')],{'host':_0x7eb3('0xd'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x7eb3('0xb')]));require('./whatsappQueue.socket')[_0x7eb3('0xe')](socket);function respondWithRpcPromise(_0x55b9c1,_0xd6d29e,_0x25ac6b){return new BPromise(function(_0x42d22c,_0x33c1e7){return client[_0x7eb3('0xf')](_0x55b9c1,_0x25ac6b)['then'](function(_0x256cd5){logger[_0x7eb3('0x10')](_0x7eb3('0x11'),_0xd6d29e,_0x7eb3('0x12'));logger[_0x7eb3('0x13')]('WhatsappQueue,\x20%s,\x20%s,\x20%s',_0xd6d29e,_0x7eb3('0x12'),JSON[_0x7eb3('0x14')](_0x256cd5));if(_0x256cd5['error']){if(_0x256cd5[_0x7eb3('0x15')][_0x7eb3('0x16')]===0x1f4){logger['error'](_0x7eb3('0x11'),_0xd6d29e,_0x256cd5['error'][_0x7eb3('0x17')]);return _0x33c1e7(_0x256cd5[_0x7eb3('0x15')][_0x7eb3('0x17')]);}logger[_0x7eb3('0x15')](_0x7eb3('0x11'),_0xd6d29e,_0x256cd5[_0x7eb3('0x15')][_0x7eb3('0x17')]);return _0x42d22c(_0x256cd5[_0x7eb3('0x15')][_0x7eb3('0x17')]);}else{logger[_0x7eb3('0x10')](_0x7eb3('0x11'),_0xd6d29e,_0x7eb3('0x12'));_0x42d22c(_0x256cd5[_0x7eb3('0x18')][_0x7eb3('0x17')]);}})[_0x7eb3('0x19')](function(_0x1f0b13){logger[_0x7eb3('0x15')]('WhatsappQueue,\x20%s,\x20%s',_0xd6d29e,_0x1f0b13);_0x33c1e7(_0x1f0b13);});});}exports['GetWhatsappQueue']=function(_0x35f235){var _0x41dd82=this;return new Promise(function(_0x4a320c,_0x46e100){return db['WhatsappQueue'][_0x7eb3('0x1a')]({'raw':_0x35f235[_0x7eb3('0x1b')]?_0x35f235[_0x7eb3('0x1b')]['raw']===undefined?!![]:![]:!![],'where':_0x35f235[_0x7eb3('0x1b')]?_0x35f235[_0x7eb3('0x1b')]['where']||null:null,'attributes':_0x35f235[_0x7eb3('0x1b')]?_0x35f235[_0x7eb3('0x1b')][_0x7eb3('0x1c')]||null:null,'limit':_0x35f235[_0x7eb3('0x1b')]?_0x35f235[_0x7eb3('0x1b')][_0x7eb3('0x1d')]||null:null,'include':_0x35f235[_0x7eb3('0x1b')]?_0x35f235[_0x7eb3('0x1b')][_0x7eb3('0x1e')]?_[_0x7eb3('0x1f')](_0x35f235[_0x7eb3('0x1b')][_0x7eb3('0x1e')],function(_0x5f4bf1){return{'model':db[_0x5f4bf1[_0x7eb3('0x20')]],'as':_0x5f4bf1['as'],'attributes':_0x5f4bf1[_0x7eb3('0x1c')],'include':_0x5f4bf1[_0x7eb3('0x1e')]?_[_0x7eb3('0x1f')](_0x5f4bf1['include'],function(_0x2629aa){return{'model':db[_0x2629aa[_0x7eb3('0x20')]],'as':_0x2629aa['as'],'attributes':_0x2629aa[_0x7eb3('0x1c')],'include':_0x2629aa[_0x7eb3('0x1e')]?_[_0x7eb3('0x1f')](_0x2629aa[_0x7eb3('0x1e')],function(_0x2925c5){return{'model':db[_0x2925c5[_0x7eb3('0x20')]],'as':_0x2925c5['as'],'attributes':_0x2925c5[_0x7eb3('0x1c')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x5aa727){logger['info'](_0x7eb3('0x21'),_0x35f235);logger[_0x7eb3('0x13')]('GetWhatsappQueue',_0x35f235,JSON[_0x7eb3('0x14')](_0x5aa727));_0x4a320c(_0x5aa727);})[_0x7eb3('0x19')](function(_0x58efeb){logger[_0x7eb3('0x15')](_0x7eb3('0x21'),_0x58efeb[_0x7eb3('0x17')],_0x35f235);_0x46e100(_0x41dd82[_0x7eb3('0x15')](0x1f4,_0x58efeb[_0x7eb3('0x17')]));});});};exports[_0x7eb3('0x22')]=function(_0x263844){var _0x43d5bd=this;return new Promise(function(_0x4f1633,_0x25278c){return db['WhatsappQueue'][_0x7eb3('0x23')]({'raw':_0x263844[_0x7eb3('0x1b')]?_0x263844[_0x7eb3('0x1b')][_0x7eb3('0x24')]===undefined?!![]:![]:!![],'where':_0x263844[_0x7eb3('0x1b')]?_0x263844['options'][_0x7eb3('0x25')]||null:null,'attributes':_0x263844[_0x7eb3('0x1b')]?_0x263844[_0x7eb3('0x1b')][_0x7eb3('0x1c')]||null:null,'include':_0x263844[_0x7eb3('0x1b')]?_0x263844['options'][_0x7eb3('0x1e')]?_['map'](_0x263844['options']['include'],function(_0x35f8f6){return{'model':db[_0x35f8f6['model']],'as':_0x35f8f6['as'],'attributes':_0x35f8f6[_0x7eb3('0x1c')],'include':_0x35f8f6[_0x7eb3('0x1e')]?_[_0x7eb3('0x1f')](_0x35f8f6[_0x7eb3('0x1e')],function(_0x58b112){return{'model':db[_0x58b112[_0x7eb3('0x20')]],'as':_0x58b112['as'],'attributes':_0x58b112['attributes'],'include':_0x58b112['include']?_[_0x7eb3('0x1f')](_0x58b112[_0x7eb3('0x1e')],function(_0x56e1ce){return{'model':db[_0x56e1ce[_0x7eb3('0x20')]],'as':_0x56e1ce['as'],'attributes':_0x56e1ce[_0x7eb3('0x1c')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x9106c4){logger[_0x7eb3('0x10')](_0x7eb3('0x22'),_0x263844);logger[_0x7eb3('0x13')](_0x7eb3('0x22'),_0x263844,JSON[_0x7eb3('0x14')](_0x9106c4));_0x4f1633(_0x9106c4);})[_0x7eb3('0x19')](function(_0x3357ac){logger[_0x7eb3('0x15')](_0x7eb3('0x22'),_0x3357ac[_0x7eb3('0x17')],_0x263844);_0x25278c(_0x43d5bd[_0x7eb3('0x15')](0x1f4,_0x3357ac[_0x7eb3('0x17')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3935=['./whatsappQueue.events','save','remove','update','removeListener','length','whatsappQueue:'];(function(_0x59f670,_0x2a34aa){var _0x4ad264=function(_0x4a8709){while(--_0x4a8709){_0x59f670['push'](_0x59f670['shift']());}};_0x4ad264(++_0x2a34aa);}(_0x3935,0xd2));var _0x5393=function(_0x151381,_0x97b314){_0x151381=_0x151381-0x0;var _0x2afab6=_0x3935[_0x151381];return _0x2afab6;};'use strict';var WhatsappQueueEvents=require(_0x5393('0x0'));var events=[_0x5393('0x1'),_0x5393('0x2'),_0x5393('0x3')];function createListener(_0x441971,_0x566035){return function(_0x16e355){_0x566035['emit'](_0x441971,_0x16e355);};}function removeListener(_0x3590f5,_0x43b6a){return function(){WhatsappQueueEvents[_0x5393('0x4')](_0x3590f5,_0x43b6a);};}exports['register']=function(_0x132689){for(var _0x18ed0d=0x0,_0x5cdff9=events[_0x5393('0x5')];_0x18ed0d<_0x5cdff9;_0x18ed0d++){var _0x296d00=events[_0x18ed0d];var _0xb18c62=createListener(_0x5393('0x6')+_0x296d00,_0x132689);WhatsappQueueEvents['on'](_0x296d00,_0xb18c62);}};
\ No newline at end of file
+var _0x1d5c=['register','length','./whatsappQueue.events','save','remove','update'];(function(_0x502c7d,_0x2f1285){var _0x30b7ed=function(_0x2d92f3){while(--_0x2d92f3){_0x502c7d['push'](_0x502c7d['shift']());}};_0x30b7ed(++_0x2f1285);}(_0x1d5c,0xc8));var _0xc1d5=function(_0x56a226,_0x2fb531){_0x56a226=_0x56a226-0x0;var _0x15fcfe=_0x1d5c[_0x56a226];return _0x15fcfe;};'use strict';var WhatsappQueueEvents=require(_0xc1d5('0x0'));var events=[_0xc1d5('0x1'),_0xc1d5('0x2'),_0xc1d5('0x3')];function createListener(_0x278132,_0x2e97af){return function(_0x1c0a63){_0x2e97af['emit'](_0x278132,_0x1c0a63);};}function removeListener(_0x23d560,_0x20bd1e){return function(){WhatsappQueueEvents['removeListener'](_0x23d560,_0x20bd1e);};}exports[_0xc1d5('0x4')]=function(_0x3ffb6d){for(var _0x4f5cf5=0x0,_0x5d2487=events[_0xc1d5('0x5')];_0x4f5cf5<_0x5d2487;_0x4f5cf5++){var _0x28d771=events[_0x4f5cf5];var _0x2fb97a=createListener('whatsappQueue:'+_0x28d771,_0x3ffb6d);WhatsappQueueEvents['on'](_0x28d771,_0x2fb97a);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x865a=['multer','util','path','connect-timeout','Router','../../components/auth/service','../../components/interaction/service','../../config/environment','./whatsappQueueReport.controller','isAuthenticated','get','/describe','describe','/:id','post','put','update','destroy','exports'];(function(_0x2eb35d,_0x4a7a45){var _0x1f9854=function(_0x5eb6f9){while(--_0x5eb6f9){_0x2eb35d['push'](_0x2eb35d['shift']());}};_0x1f9854(++_0x4a7a45);}(_0x865a,0x1b5));var _0xa865=function(_0x2da41e,_0x44e6a1){_0x2da41e=_0x2da41e-0x0;var _0x4ab21c=_0x865a[_0x2da41e];return _0x4ab21c;};'use strict';var multer=require(_0xa865('0x0'));var util=require(_0xa865('0x1'));var path=require(_0xa865('0x2'));var timeout=require(_0xa865('0x3'));var express=require('express');var router=express[_0xa865('0x4')]();var fs_extra=require('fs-extra');var auth=require(_0xa865('0x5'));var interaction=require(_0xa865('0x6'));var config=require(_0xa865('0x7'));var controller=require(_0xa865('0x8'));router['get']('/',auth[_0xa865('0x9')](),controller['index']);router[_0xa865('0xa')](_0xa865('0xb'),auth[_0xa865('0x9')](),controller[_0xa865('0xc')]);router['get'](_0xa865('0xd'),auth[_0xa865('0x9')](),controller['show']);router[_0xa865('0xe')]('/',auth[_0xa865('0x9')](),controller['create']);router[_0xa865('0xf')]('/:id',auth['isAuthenticated'](),controller[_0xa865('0x10')]);router['delete'](_0xa865('0xd'),auth[_0xa865('0x9')](),controller[_0xa865('0x11')]);module[_0xa865('0x12')]=router;
\ No newline at end of file
+var _0x7537=['../../config/environment','./whatsappQueueReport.controller','get','index','/describe','describe','/:id','show','post','isAuthenticated','update','destroy','multer','path','express','fs-extra','../../components/auth/service','../../components/interaction/service'];(function(_0xf0bc0,_0x181c1c){var _0x58552c=function(_0x1377a4){while(--_0x1377a4){_0xf0bc0['push'](_0xf0bc0['shift']());}};_0x58552c(++_0x181c1c);}(_0x7537,0x66));var _0x7753=function(_0x32c24a,_0x54033d){_0x32c24a=_0x32c24a-0x0;var _0x142780=_0x7537[_0x32c24a];return _0x142780;};'use strict';var multer=require(_0x7753('0x0'));var util=require('util');var path=require(_0x7753('0x1'));var timeout=require('connect-timeout');var express=require(_0x7753('0x2'));var router=express['Router']();var fs_extra=require(_0x7753('0x3'));var auth=require(_0x7753('0x4'));var interaction=require(_0x7753('0x5'));var config=require(_0x7753('0x6'));var controller=require(_0x7753('0x7'));router[_0x7753('0x8')]('/',auth['isAuthenticated'](),controller[_0x7753('0x9')]);router[_0x7753('0x8')](_0x7753('0xa'),auth['isAuthenticated'](),controller[_0x7753('0xb')]);router['get'](_0x7753('0xc'),auth['isAuthenticated'](),controller[_0x7753('0xd')]);router[_0x7753('0xe')]('/',auth['isAuthenticated'](),controller['create']);router['put'](_0x7753('0xc'),auth[_0x7753('0xf')](),controller[_0x7753('0x10')]);router['delete'](_0x7753('0xc'),auth[_0x7753('0xf')](),controller[_0x7753('0x11')]);module['exports']=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9957=['exports','STRING','DATE','sequelize'];(function(_0x284c8b,_0x56f762){var _0x2ffd36=function(_0x3b1de6){while(--_0x3b1de6){_0x284c8b['push'](_0x284c8b['shift']());}};_0x2ffd36(++_0x56f762);}(_0x9957,0x93));var _0x7995=function(_0x618414,_0x1a7a60){_0x618414=_0x618414-0x0;var _0x21c19a=_0x9957[_0x618414];return _0x21c19a;};'use strict';var Sequelize=require(_0x7995('0x0'));module[_0x7995('0x1')]={'uniqueid':{'type':Sequelize[_0x7995('0x2')],'allowNull':![]},'from':{'type':Sequelize[_0x7995('0x2')]},'joinAt':{'type':Sequelize['DATE']},'leaveAt':{'type':Sequelize[_0x7995('0x3')]},'acceptAt':{'type':Sequelize[_0x7995('0x3')]},'exitAt':{'type':Sequelize[_0x7995('0x3')]},'reason':{'type':Sequelize[_0x7995('0x2')]}};
\ No newline at end of file
+var _0x9957=['exports','STRING','DATE','sequelize'];(function(_0x3a8641,_0xe81327){var _0xa6755c=function(_0x3e93a5){while(--_0x3e93a5){_0x3a8641['push'](_0x3a8641['shift']());}};_0xa6755c(++_0xe81327);}(_0x9957,0x93));var _0x7995=function(_0xbca1b1,_0x33f0ce){_0xbca1b1=_0xbca1b1-0x0;var _0x4e1686=_0x9957[_0xbca1b1];return _0x4e1686;};'use strict';var Sequelize=require(_0x7995('0x0'));module[_0x7995('0x1')]={'uniqueid':{'type':Sequelize[_0x7995('0x2')],'allowNull':![]},'from':{'type':Sequelize[_0x7995('0x2')]},'joinAt':{'type':Sequelize['DATE']},'leaveAt':{'type':Sequelize[_0x7995('0x3')]},'acceptAt':{'type':Sequelize[_0x7995('0x3')]},'exitAt':{'type':Sequelize[_0x7995('0x3')]},'reason':{'type':Sequelize[_0x7995('0x2')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7916=['VIRTUAL','options','includeAll','include','findAll','catch','params','length','create','body','destroy','describe','eml-format','zip-dir','fast-json-patch','moment','bluebird','mustache','util','sox','ejs','fs-extra','squel','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','undefined','limit','count','offset','set','Content-Range','reject','update','then','end','error','stack','name','send','map','WhatsappQueueReport','rawAttributes','key','query','keys','filters','intersection','model','attributes','fields','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','type'];(function(_0x3fba54,_0x5c3d7d){var _0x2271bf=function(_0x13f66b){while(--_0x13f66b){_0x3fba54['push'](_0x3fba54['shift']());}};_0x2271bf(++_0x5c3d7d);}(_0x7916,0x128));var _0x6791=function(_0x21f307,_0x383f68){_0x21f307=_0x21f307-0x0;var _0x432d22=_0x7916[_0x21f307];return _0x432d22;};'use strict';var emlformat=require(_0x6791('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x6791('0x1'));var jsonpatch=require(_0x6791('0x2'));var rp=require('request-promise');var moment=require(_0x6791('0x3'));var BPromise=require(_0x6791('0x4'));var Mustache=require(_0x6791('0x5'));var util=require(_0x6791('0x6'));var path=require('path');var sox=require(_0x6791('0x7'));var csv=require('to-csv');var ejs=require(_0x6791('0x8'));var fs=require('fs');var fs_extra=require(_0x6791('0x9'));var _=require('lodash');var squel=require(_0x6791('0xa'));var crypto=require('crypto');var jsforce=require(_0x6791('0xb'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0x6791('0xc'));var Papa=require(_0x6791('0xd'));var Redis=require('ioredis');var authService=require(_0x6791('0xe'));var qs=require(_0x6791('0xf'));var as=require(_0x6791('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x6791('0x11'))(_0x6791('0x12'));var utils=require(_0x6791('0x13'));var config=require(_0x6791('0x14'));var licenseUtil=require(_0x6791('0x15'));var db=require(_0x6791('0x16'))['db'];function respondWithStatusCode(_0x61ac73,_0x16c62b){_0x16c62b=_0x16c62b||0xcc;return function(_0x423e22){if(_0x423e22){return _0x61ac73[_0x6791('0x17')](_0x16c62b);}return _0x61ac73[_0x6791('0x18')](_0x16c62b)['end']();};}function respondWithResult(_0x4b1719,_0x34b28d){_0x34b28d=_0x34b28d||0xc8;return function(_0x5122f9){if(_0x5122f9){return _0x4b1719[_0x6791('0x18')](_0x34b28d)['json'](_0x5122f9);}};}function respondWithFilteredResult(_0x3be9f0,_0x163898){return function(_0x517910){if(_0x517910){var _0x3e4792=typeof _0x163898['offset']===_0x6791('0x19')&&typeof _0x163898[_0x6791('0x1a')]==='undefined';var _0xbc35d=_0x517910[_0x6791('0x1b')];var _0x5bec14=_0x3e4792?0x0:_0x163898[_0x6791('0x1c')];var _0x4d8a79=_0x3e4792?_0x517910[_0x6791('0x1b')]:_0x163898[_0x6791('0x1c')]+_0x163898[_0x6791('0x1a')];var _0x3a72ce;if(_0x4d8a79>=_0xbc35d){_0x4d8a79=_0xbc35d;_0x3a72ce=0xc8;}else{_0x3a72ce=0xce;}_0x3be9f0[_0x6791('0x18')](_0x3a72ce);return _0x3be9f0[_0x6791('0x1d')](_0x6791('0x1e'),_0x5bec14+'-'+_0x4d8a79+'/'+_0xbc35d)['json'](_0x517910);}return null;};}function patchUpdates(_0x4a2922){return function(_0x306acb){try{jsonpatch['apply'](_0x306acb,_0x4a2922,!![]);}catch(_0x21ef16){return BPromise[_0x6791('0x1f')](_0x21ef16);}return _0x306acb['save']();};}function saveUpdates(_0x17f200,_0x309610){return function(_0x15b9ab){if(_0x15b9ab){return _0x15b9ab[_0x6791('0x20')](_0x17f200)['then'](function(_0x3e17b3){return _0x3e17b3;});}return null;};}function removeEntity(_0x1b516d,_0x4a8717){return function(_0x53bb44){if(_0x53bb44){return _0x53bb44['destroy']()[_0x6791('0x21')](function(){_0x1b516d['status'](0xcc)[_0x6791('0x22')]();});}};}function handleEntityNotFound(_0x5409f1,_0x54a092){return function(_0x496273){if(!_0x496273){_0x5409f1[_0x6791('0x17')](0x194);}return _0x496273;};}function handleError(_0x23442e,_0xd49b84){_0xd49b84=_0xd49b84||0x1f4;return function(_0x56a74e){logger[_0x6791('0x23')](_0x56a74e[_0x6791('0x24')]);if(_0x56a74e['name']){delete _0x56a74e[_0x6791('0x25')];}_0x23442e['status'](_0xd49b84)[_0x6791('0x26')](_0x56a74e);};}exports['index']=function(_0x4fc5d5,_0x270a1d){var _0x551718={},_0x2f56a2={},_0x34b006={'count':0x0,'rows':[]};var _0x483d6c=_[_0x6791('0x27')](db[_0x6791('0x28')][_0x6791('0x29')],function(_0xd36448){return{'name':_0xd36448['fieldName'],'type':_0xd36448['type'][_0x6791('0x2a')]};});_0x2f56a2['model']=_[_0x6791('0x27')](_0x483d6c,_0x6791('0x25'));_0x2f56a2[_0x6791('0x2b')]=_[_0x6791('0x2c')](_0x4fc5d5[_0x6791('0x2b')]);_0x2f56a2[_0x6791('0x2d')]=_[_0x6791('0x2e')](_0x2f56a2[_0x6791('0x2f')],_0x2f56a2[_0x6791('0x2b')]);_0x551718[_0x6791('0x30')]=_['intersection'](_0x2f56a2[_0x6791('0x2f')],qs[_0x6791('0x31')](_0x4fc5d5[_0x6791('0x2b')][_0x6791('0x31')]));_0x551718[_0x6791('0x30')]=_0x551718[_0x6791('0x30')]['length']?_0x551718['attributes']:_0x2f56a2['model'];if(!_0x4fc5d5[_0x6791('0x2b')][_0x6791('0x32')](_0x6791('0x33'))){_0x551718['limit']=qs['limit'](_0x4fc5d5[_0x6791('0x2b')][_0x6791('0x1a')]);_0x551718[_0x6791('0x1c')]=qs[_0x6791('0x1c')](_0x4fc5d5['query'][_0x6791('0x1c')]);}_0x551718[_0x6791('0x34')]=qs[_0x6791('0x35')](_0x4fc5d5['query'][_0x6791('0x35')]);_0x551718['where']=qs['filters'](_[_0x6791('0x36')](_0x4fc5d5[_0x6791('0x2b')],_0x2f56a2['filters']),_0x483d6c);if(_0x4fc5d5[_0x6791('0x2b')][_0x6791('0x37')]){_0x551718[_0x6791('0x38')]=_[_0x6791('0x39')](_0x551718[_0x6791('0x38')],{'$or':_['map'](_0x483d6c,function(_0x1798cf){if(_0x1798cf[_0x6791('0x3a')]!==_0x6791('0x3b')){var _0x53f48d={};_0x53f48d[_0x1798cf[_0x6791('0x25')]]={'$like':'%'+_0x4fc5d5[_0x6791('0x2b')][_0x6791('0x37')]+'%'};return _0x53f48d;}})});}_0x551718=_['merge']({},_0x551718,_0x4fc5d5[_0x6791('0x3c')]);var _0x31f2bb={'where':_0x551718[_0x6791('0x38')]};return db[_0x6791('0x28')]['count'](_0x31f2bb)[_0x6791('0x21')](function(_0x1a4b64){_0x34b006[_0x6791('0x1b')]=_0x1a4b64;if(_0x4fc5d5[_0x6791('0x2b')][_0x6791('0x3d')]){_0x551718[_0x6791('0x3e')]=[{'all':!![]}];}return db[_0x6791('0x28')][_0x6791('0x3f')](_0x551718);})[_0x6791('0x21')](function(_0x4e4004){_0x34b006['rows']=_0x4e4004;return _0x34b006;})[_0x6791('0x21')](respondWithFilteredResult(_0x270a1d,_0x551718))[_0x6791('0x40')](handleError(_0x270a1d,null));};exports['show']=function(_0x39dcb7,_0x1c9913){var _0x1c6803={'raw':!![],'where':{'id':_0x39dcb7[_0x6791('0x41')]['id']}},_0x3edb86={};_0x3edb86[_0x6791('0x2f')]=_[_0x6791('0x2c')](db['WhatsappQueueReport'][_0x6791('0x29')]);_0x3edb86['query']=_[_0x6791('0x2c')](_0x39dcb7[_0x6791('0x2b')]);_0x3edb86[_0x6791('0x2d')]=_[_0x6791('0x2e')](_0x3edb86['model'],_0x3edb86[_0x6791('0x2b')]);_0x1c6803[_0x6791('0x30')]=_[_0x6791('0x2e')](_0x3edb86[_0x6791('0x2f')],qs[_0x6791('0x31')](_0x39dcb7[_0x6791('0x2b')][_0x6791('0x31')]));_0x1c6803[_0x6791('0x30')]=_0x1c6803['attributes'][_0x6791('0x42')]?_0x1c6803[_0x6791('0x30')]:_0x3edb86[_0x6791('0x2f')];if(_0x39dcb7[_0x6791('0x2b')]['includeAll']){_0x1c6803[_0x6791('0x3e')]=[{'all':!![]}];}_0x1c6803=_[_0x6791('0x39')]({},_0x1c6803,_0x39dcb7['options']);return db[_0x6791('0x28')]['find'](_0x1c6803)[_0x6791('0x21')](handleEntityNotFound(_0x1c9913,null))[_0x6791('0x21')](respondWithResult(_0x1c9913,null))[_0x6791('0x40')](handleError(_0x1c9913,null));};exports[_0x6791('0x43')]=function(_0x18d405,_0xb2a2){return db[_0x6791('0x28')][_0x6791('0x43')](_0x18d405[_0x6791('0x44')],{})['then'](respondWithResult(_0xb2a2,0xc9))[_0x6791('0x40')](handleError(_0xb2a2,null));};exports['update']=function(_0x10e806,_0x2bb86a){if(_0x10e806[_0x6791('0x44')]['id']){delete _0x10e806[_0x6791('0x44')]['id'];}return db[_0x6791('0x28')]['find']({'where':{'id':_0x10e806[_0x6791('0x41')]['id']}})[_0x6791('0x21')](handleEntityNotFound(_0x2bb86a,null))[_0x6791('0x21')](saveUpdates(_0x10e806[_0x6791('0x44')],null))[_0x6791('0x21')](respondWithResult(_0x2bb86a,null))['catch'](handleError(_0x2bb86a,null));};exports[_0x6791('0x45')]=function(_0x42948b,_0x4ff9f4){return db[_0x6791('0x28')]['find']({'where':{'id':_0x42948b[_0x6791('0x41')]['id']}})[_0x6791('0x21')](handleEntityNotFound(_0x4ff9f4,null))[_0x6791('0x21')](removeEntity(_0x4ff9f4,null))[_0x6791('0x40')](handleError(_0x4ff9f4,null));};exports['describe']=function(_0x1b838f,_0x243faf){return db['WhatsappQueueReport'][_0x6791('0x46')]()[_0x6791('0x21')](respondWithResult(_0x243faf,null))[_0x6791('0x40')](handleError(_0x243faf,null));};
\ No newline at end of file
+var _0xc900=['filters','intersection','fields','attributes','length','model','hasOwnProperty','nolimit','order','sort','where','filter','merge','VIRTUAL','options','rows','catch','show','includeAll','include','find','create','body','params','describe','zip-dir','fast-json-patch','request-promise','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','save','update','then','destroy','error','stack','name','send','index','map','WhatsappQueueReport','rawAttributes','fieldName','type','key','keys','query'];(function(_0x3c9161,_0x106ab4){var _0x25dbf4=function(_0x595c49){while(--_0x595c49){_0x3c9161['push'](_0x3c9161['shift']());}};_0x25dbf4(++_0x106ab4);}(_0xc900,0xb3));var _0x0c90=function(_0x4f8ecd,_0x404026){_0x4f8ecd=_0x4f8ecd-0x0;var _0x11e9f9=_0xc900[_0x4f8ecd];return _0x11e9f9;};'use strict';var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x0c90('0x0'));var jsonpatch=require(_0x0c90('0x1'));var rp=require(_0x0c90('0x2'));var moment=require('moment');var BPromise=require(_0x0c90('0x3'));var Mustache=require(_0x0c90('0x4'));var util=require('util');var path=require(_0x0c90('0x5'));var sox=require(_0x0c90('0x6'));var csv=require(_0x0c90('0x7'));var ejs=require(_0x0c90('0x8'));var fs=require('fs');var fs_extra=require(_0x0c90('0x9'));var _=require(_0x0c90('0xa'));var squel=require('squel');var crypto=require(_0x0c90('0xb'));var jsforce=require(_0x0c90('0xc'));var deskjs=require(_0x0c90('0xd'));var toCsv=require(_0x0c90('0x7'));var querystring=require(_0x0c90('0xe'));var Papa=require(_0x0c90('0xf'));var Redis=require(_0x0c90('0x10'));var authService=require(_0x0c90('0x11'));var qs=require(_0x0c90('0x12'));var as=require(_0x0c90('0x13'));var hardwareService=require(_0x0c90('0x14'));var logger=require(_0x0c90('0x15'))(_0x0c90('0x16'));var utils=require('../../config/utils');var config=require(_0x0c90('0x17'));var licenseUtil=require('../../config/license/util');var db=require(_0x0c90('0x18'))['db'];function respondWithStatusCode(_0x50e7db,_0x459cdb){_0x459cdb=_0x459cdb||0xcc;return function(_0x26fc46){if(_0x26fc46){return _0x50e7db[_0x0c90('0x19')](_0x459cdb);}return _0x50e7db[_0x0c90('0x1a')](_0x459cdb)[_0x0c90('0x1b')]();};}function respondWithResult(_0x59ea8e,_0x467b32){_0x467b32=_0x467b32||0xc8;return function(_0x4451e0){if(_0x4451e0){return _0x59ea8e['status'](_0x467b32)[_0x0c90('0x1c')](_0x4451e0);}};}function respondWithFilteredResult(_0x3a492d,_0x3bd5e8){return function(_0x5bef7d){if(_0x5bef7d){var _0x5daeb7=typeof _0x3bd5e8[_0x0c90('0x1d')]===_0x0c90('0x1e')&&typeof _0x3bd5e8[_0x0c90('0x1f')]===_0x0c90('0x1e');var _0x276b92=_0x5bef7d[_0x0c90('0x20')];var _0x42321a=_0x5daeb7?0x0:_0x3bd5e8['offset'];var _0xc3bb47=_0x5daeb7?_0x5bef7d[_0x0c90('0x20')]:_0x3bd5e8[_0x0c90('0x1d')]+_0x3bd5e8[_0x0c90('0x1f')];var _0x594267;if(_0xc3bb47>=_0x276b92){_0xc3bb47=_0x276b92;_0x594267=0xc8;}else{_0x594267=0xce;}_0x3a492d[_0x0c90('0x1a')](_0x594267);return _0x3a492d[_0x0c90('0x21')](_0x0c90('0x22'),_0x42321a+'-'+_0xc3bb47+'/'+_0x276b92)[_0x0c90('0x1c')](_0x5bef7d);}return null;};}function patchUpdates(_0x315932){return function(_0xc08f54){try{jsonpatch['apply'](_0xc08f54,_0x315932,!![]);}catch(_0x365a42){return BPromise['reject'](_0x365a42);}return _0xc08f54[_0x0c90('0x23')]();};}function saveUpdates(_0x1a021e,_0x47b13c){return function(_0x2a053a){if(_0x2a053a){return _0x2a053a[_0x0c90('0x24')](_0x1a021e)[_0x0c90('0x25')](function(_0x86dee){return _0x86dee;});}return null;};}function removeEntity(_0x212164,_0x3b287c){return function(_0x4dfbc3){if(_0x4dfbc3){return _0x4dfbc3[_0x0c90('0x26')]()[_0x0c90('0x25')](function(){_0x212164['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x28d005,_0x3ea861){return function(_0x35c243){if(!_0x35c243){_0x28d005[_0x0c90('0x19')](0x194);}return _0x35c243;};}function handleError(_0x4dde67,_0x2dfa14){_0x2dfa14=_0x2dfa14||0x1f4;return function(_0x438652){logger[_0x0c90('0x27')](_0x438652[_0x0c90('0x28')]);if(_0x438652[_0x0c90('0x29')]){delete _0x438652[_0x0c90('0x29')];}_0x4dde67['status'](_0x2dfa14)[_0x0c90('0x2a')](_0x438652);};}exports[_0x0c90('0x2b')]=function(_0x39f1b2,_0x13b377){var _0x52d28d={},_0x4c8603={},_0x1f27f1={'count':0x0,'rows':[]};var _0x25da6e=_[_0x0c90('0x2c')](db[_0x0c90('0x2d')][_0x0c90('0x2e')],function(_0x562664){return{'name':_0x562664[_0x0c90('0x2f')],'type':_0x562664[_0x0c90('0x30')][_0x0c90('0x31')]};});_0x4c8603['model']=_[_0x0c90('0x2c')](_0x25da6e,'name');_0x4c8603['query']=_[_0x0c90('0x32')](_0x39f1b2[_0x0c90('0x33')]);_0x4c8603[_0x0c90('0x34')]=_[_0x0c90('0x35')](_0x4c8603['model'],_0x4c8603[_0x0c90('0x33')]);_0x52d28d['attributes']=_[_0x0c90('0x35')](_0x4c8603['model'],qs[_0x0c90('0x36')](_0x39f1b2[_0x0c90('0x33')]['fields']));_0x52d28d[_0x0c90('0x37')]=_0x52d28d[_0x0c90('0x37')][_0x0c90('0x38')]?_0x52d28d[_0x0c90('0x37')]:_0x4c8603[_0x0c90('0x39')];if(!_0x39f1b2[_0x0c90('0x33')][_0x0c90('0x3a')](_0x0c90('0x3b'))){_0x52d28d['limit']=qs[_0x0c90('0x1f')](_0x39f1b2[_0x0c90('0x33')][_0x0c90('0x1f')]);_0x52d28d[_0x0c90('0x1d')]=qs['offset'](_0x39f1b2[_0x0c90('0x33')][_0x0c90('0x1d')]);}_0x52d28d[_0x0c90('0x3c')]=qs[_0x0c90('0x3d')](_0x39f1b2[_0x0c90('0x33')][_0x0c90('0x3d')]);_0x52d28d[_0x0c90('0x3e')]=qs[_0x0c90('0x34')](_['pick'](_0x39f1b2[_0x0c90('0x33')],_0x4c8603[_0x0c90('0x34')]),_0x25da6e);if(_0x39f1b2['query'][_0x0c90('0x3f')]){_0x52d28d[_0x0c90('0x3e')]=_[_0x0c90('0x40')](_0x52d28d[_0x0c90('0x3e')],{'$or':_[_0x0c90('0x2c')](_0x25da6e,function(_0x50c126){if(_0x50c126[_0x0c90('0x30')]!==_0x0c90('0x41')){var _0x11530f={};_0x11530f[_0x50c126[_0x0c90('0x29')]]={'$like':'%'+_0x39f1b2[_0x0c90('0x33')][_0x0c90('0x3f')]+'%'};return _0x11530f;}})});}_0x52d28d=_[_0x0c90('0x40')]({},_0x52d28d,_0x39f1b2[_0x0c90('0x42')]);var _0x11a8e3={'where':_0x52d28d['where']};return db[_0x0c90('0x2d')]['count'](_0x11a8e3)[_0x0c90('0x25')](function(_0x593cc0){_0x1f27f1[_0x0c90('0x20')]=_0x593cc0;if(_0x39f1b2[_0x0c90('0x33')]['includeAll']){_0x52d28d['include']=[{'all':!![]}];}return db[_0x0c90('0x2d')]['findAll'](_0x52d28d);})[_0x0c90('0x25')](function(_0x4545bb){_0x1f27f1[_0x0c90('0x43')]=_0x4545bb;return _0x1f27f1;})['then'](respondWithFilteredResult(_0x13b377,_0x52d28d))[_0x0c90('0x44')](handleError(_0x13b377,null));};exports[_0x0c90('0x45')]=function(_0x123b58,_0x3e5137){var _0x2139c3={'raw':!![],'where':{'id':_0x123b58['params']['id']}},_0x1184c4={};_0x1184c4[_0x0c90('0x39')]=_[_0x0c90('0x32')](db[_0x0c90('0x2d')][_0x0c90('0x2e')]);_0x1184c4[_0x0c90('0x33')]=_[_0x0c90('0x32')](_0x123b58[_0x0c90('0x33')]);_0x1184c4['filters']=_[_0x0c90('0x35')](_0x1184c4['model'],_0x1184c4[_0x0c90('0x33')]);_0x2139c3[_0x0c90('0x37')]=_[_0x0c90('0x35')](_0x1184c4[_0x0c90('0x39')],qs[_0x0c90('0x36')](_0x123b58[_0x0c90('0x33')][_0x0c90('0x36')]));_0x2139c3[_0x0c90('0x37')]=_0x2139c3[_0x0c90('0x37')][_0x0c90('0x38')]?_0x2139c3[_0x0c90('0x37')]:_0x1184c4[_0x0c90('0x39')];if(_0x123b58[_0x0c90('0x33')][_0x0c90('0x46')]){_0x2139c3[_0x0c90('0x47')]=[{'all':!![]}];}_0x2139c3=_['merge']({},_0x2139c3,_0x123b58[_0x0c90('0x42')]);return db[_0x0c90('0x2d')][_0x0c90('0x48')](_0x2139c3)[_0x0c90('0x25')](handleEntityNotFound(_0x3e5137,null))[_0x0c90('0x25')](respondWithResult(_0x3e5137,null))[_0x0c90('0x44')](handleError(_0x3e5137,null));};exports[_0x0c90('0x49')]=function(_0x302dc6,_0x3bb138){return db[_0x0c90('0x2d')][_0x0c90('0x49')](_0x302dc6[_0x0c90('0x4a')],{})[_0x0c90('0x25')](respondWithResult(_0x3bb138,0xc9))[_0x0c90('0x44')](handleError(_0x3bb138,null));};exports['update']=function(_0x1b4aac,_0x38f492){if(_0x1b4aac['body']['id']){delete _0x1b4aac['body']['id'];}return db['WhatsappQueueReport'][_0x0c90('0x48')]({'where':{'id':_0x1b4aac[_0x0c90('0x4b')]['id']}})[_0x0c90('0x25')](handleEntityNotFound(_0x38f492,null))[_0x0c90('0x25')](saveUpdates(_0x1b4aac[_0x0c90('0x4a')],null))['then'](respondWithResult(_0x38f492,null))[_0x0c90('0x44')](handleError(_0x38f492,null));};exports[_0x0c90('0x26')]=function(_0x2b756d,_0x549c78){return db[_0x0c90('0x2d')][_0x0c90('0x48')]({'where':{'id':_0x2b756d[_0x0c90('0x4b')]['id']}})[_0x0c90('0x25')](handleEntityNotFound(_0x549c78,null))[_0x0c90('0x25')](removeEntity(_0x549c78,null))[_0x0c90('0x44')](handleError(_0x549c78,null));};exports[_0x0c90('0x4c')]=function(_0x2a339d,_0x1daeed){return db[_0x0c90('0x2d')]['describe']()[_0x0c90('0x25')](respondWithResult(_0x1daeed,null))['catch'](handleError(_0x1daeed,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9990=['util','../../config/logger','moment','../../config/environment','./whatsappQueueReport.attributes','define','WhatsappQueueReport','uniqueid'];(function(_0x479cc2,_0xacaa7e){var _0x57c478=function(_0x5e6219){while(--_0x5e6219){_0x479cc2['push'](_0x479cc2['shift']());}};_0x57c478(++_0xacaa7e);}(_0x9990,0xd0));var _0x0999=function(_0x52ab8a,_0xee034b){_0x52ab8a=_0x52ab8a-0x0;var _0x5d6ddc=_0x9990[_0x52ab8a];return _0x5d6ddc;};'use strict';var _=require('lodash');var util=require(_0x0999('0x0'));var logger=require(_0x0999('0x1'))('api');var moment=require(_0x0999('0x2'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require('path');var rimraf=require('rimraf');var config=require(_0x0999('0x3'));var attributes=require(_0x0999('0x4'));module['exports']=function(_0x46269a,_0xebedd6){return _0x46269a[_0x0999('0x5')](_0x0999('0x6'),attributes,{'tableName':'report_whatsapp_queue','paranoid':![],'indexes':[{'name':_0x0999('0x7'),'fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
+var _0x26fc=['path','rimraf','./whatsappQueueReport.attributes','exports','define','WhatsappQueueReport','report_whatsapp_queue','uniqueid','util','api','moment'];(function(_0x4975cd,_0x2bc7c4){var _0x88e8f9=function(_0x300ee8){while(--_0x300ee8){_0x4975cd['push'](_0x4975cd['shift']());}};_0x88e8f9(++_0x2bc7c4);}(_0x26fc,0x17e));var _0xc26f=function(_0x2f5ac5,_0x1ee939){_0x2f5ac5=_0x2f5ac5-0x0;var _0x37c9a8=_0x26fc[_0x2f5ac5];return _0x37c9a8;};'use strict';var _=require('lodash');var util=require(_0xc26f('0x0'));var logger=require('../../config/logger')(_0xc26f('0x1'));var moment=require(_0xc26f('0x2'));var BPromise=require('bluebird');var rp=require('request-promise');var fs=require('fs');var path=require(_0xc26f('0x3'));var rimraf=require(_0xc26f('0x4'));var config=require('../../config/environment');var attributes=require(_0xc26f('0x5'));module[_0xc26f('0x6')]=function(_0x1e36e4,_0x158833){return _0x1e36e4[_0xc26f('0x7')](_0xc26f('0x8'),attributes,{'tableName':_0xc26f('0x9'),'paranoid':![],'indexes':[{'name':_0xc26f('0xa'),'fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1a9e=['ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','request','then','info','request\x20sent','WhatsappQueueReport,\x20%s,\x20%s,\x20%s','stringify','error','code','WhatsappQueueReport,\x20%s,\x20%s','message','catch','CreateWhatsappQueueReport','create','body','options','debug','UpdateWhatsappQueueReport','WhatsappQueueReport','raw','where','attributes','limit','lodash','util','bluebird','randomstring'];(function(_0x306d69,_0x3ba21b){var _0x28e704=function(_0x1c45eb){while(--_0x1c45eb){_0x306d69['push'](_0x306d69['shift']());}};_0x28e704(++_0x3ba21b);}(_0x1a9e,0x188));var _0xe1a9=function(_0x768588,_0x5e5775){_0x768588=_0x768588-0x0;var _0x10ad68=_0x1a9e[_0x768588];return _0x10ad68;};'use strict';var _=require(_0xe1a9('0x0'));var util=require(_0xe1a9('0x1'));var moment=require('moment');var BPromise=require(_0xe1a9('0x2'));var rs=require(_0xe1a9('0x3'));var fs=require('fs');var Redis=require(_0xe1a9('0x4'));var db=require(_0xe1a9('0x5'))['db'];var utils=require(_0xe1a9('0x6'));var logger=require(_0xe1a9('0x7'))(_0xe1a9('0x8'));var config=require('../../config/environment');var jayson=require(_0xe1a9('0x9'));var client=jayson[_0xe1a9('0xa')]['http']({'port':0x232a});function respondWithRpcPromise(_0x5588e7,_0x2565d3,_0x21cd92){return new BPromise(function(_0x4d57fe,_0x407c53){return client[_0xe1a9('0xb')](_0x5588e7,_0x21cd92)[_0xe1a9('0xc')](function(_0x8893c4){logger[_0xe1a9('0xd')]('WhatsappQueueReport,\x20%s,\x20%s',_0x2565d3,_0xe1a9('0xe'));logger['debug'](_0xe1a9('0xf'),_0x2565d3,'request\x20sent',JSON[_0xe1a9('0x10')](_0x8893c4));if(_0x8893c4[_0xe1a9('0x11')]){if(_0x8893c4[_0xe1a9('0x11')][_0xe1a9('0x12')]===0x1f4){logger[_0xe1a9('0x11')](_0xe1a9('0x13'),_0x2565d3,_0x8893c4['error'][_0xe1a9('0x14')]);return _0x407c53(_0x8893c4['error']['message']);}logger[_0xe1a9('0x11')](_0xe1a9('0x13'),_0x2565d3,_0x8893c4['error'][_0xe1a9('0x14')]);return _0x4d57fe(_0x8893c4[_0xe1a9('0x11')][_0xe1a9('0x14')]);}else{logger[_0xe1a9('0xd')]('WhatsappQueueReport,\x20%s,\x20%s',_0x2565d3,_0xe1a9('0xe'));_0x4d57fe(_0x8893c4['result'][_0xe1a9('0x14')]);}})[_0xe1a9('0x15')](function(_0x3a9085){logger[_0xe1a9('0x11')](_0xe1a9('0x13'),_0x2565d3,_0x3a9085);_0x407c53(_0x3a9085);});});}exports[_0xe1a9('0x16')]=function(_0x18869f){var _0x56cf26=this;return new Promise(function(_0x854fd3,_0x4b0d0e){return db['WhatsappQueueReport'][_0xe1a9('0x17')](_0x18869f[_0xe1a9('0x18')],{'raw':_0x18869f[_0xe1a9('0x19')]?_0x18869f['options']['raw']===undefined?!![]:![]:!![]})[_0xe1a9('0xc')](function(_0x3cb20f){logger['info'](_0xe1a9('0x16'),_0x18869f);logger[_0xe1a9('0x1a')](_0xe1a9('0x16'),_0x18869f,JSON[_0xe1a9('0x10')](_0x3cb20f));_0x854fd3(_0x3cb20f);})[_0xe1a9('0x15')](function(_0x1fea23){logger[_0xe1a9('0x11')](_0xe1a9('0x16'),_0x1fea23[_0xe1a9('0x14')],_0x18869f);_0x4b0d0e(_0x56cf26[_0xe1a9('0x11')](0x1f4,_0x1fea23[_0xe1a9('0x14')]));});});};exports[_0xe1a9('0x1b')]=function(_0x29099d){var _0x3c5504=this;return new Promise(function(_0x121a42,_0x89948e){return db[_0xe1a9('0x1c')]['update'](_0x29099d[_0xe1a9('0x18')],{'raw':_0x29099d[_0xe1a9('0x19')]?_0x29099d['options'][_0xe1a9('0x1d')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x29099d[_0xe1a9('0x19')]?_0x29099d['options'][_0xe1a9('0x1e')]||null:null,'attributes':_0x29099d[_0xe1a9('0x19')]?_0x29099d['options'][_0xe1a9('0x1f')]||null:null,'limit':_0x29099d[_0xe1a9('0x19')]?_0x29099d[_0xe1a9('0x19')][_0xe1a9('0x20')]||null:null})[_0xe1a9('0xc')](function(_0x17481a){logger[_0xe1a9('0xd')](_0xe1a9('0x1b'),_0x29099d);logger[_0xe1a9('0x1a')](_0xe1a9('0x1b'),_0x29099d,JSON[_0xe1a9('0x10')](_0x17481a));_0x121a42(_0x17481a);})[_0xe1a9('0x15')](function(_0x4b62db){logger[_0xe1a9('0x11')](_0xe1a9('0x1b'),_0x4b62db[_0xe1a9('0x14')],_0x29099d);_0x89948e(_0x3c5504[_0xe1a9('0x11')](0x1f4,_0x4b62db['message']));});});};
\ No newline at end of file
+var _0xe8a2=['options','UpdateWhatsappQueueReport','raw','where','attributes','lodash','util','moment','bluebird','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','http','request','then','info','debug','WhatsappQueueReport,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','WhatsappQueueReport,\x20%s,\x20%s','message','result','catch','CreateWhatsappQueueReport','WhatsappQueueReport','create'];(function(_0x7d96f5,_0x3d2050){var _0x3f49fb=function(_0x33d98b){while(--_0x33d98b){_0x7d96f5['push'](_0x7d96f5['shift']());}};_0x3f49fb(++_0x3d2050);}(_0xe8a2,0x85));var _0x2e8a=function(_0x26d1b0,_0x310ec4){_0x26d1b0=_0x26d1b0-0x0;var _0x3f157e=_0xe8a2[_0x26d1b0];return _0x3f157e;};'use strict';var _=require(_0x2e8a('0x0'));var util=require(_0x2e8a('0x1'));var moment=require(_0x2e8a('0x2'));var BPromise=require(_0x2e8a('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x2e8a('0x4'))['db'];var utils=require(_0x2e8a('0x5'));var logger=require(_0x2e8a('0x6'))(_0x2e8a('0x7'));var config=require('../../config/environment');var jayson=require(_0x2e8a('0x8'));var client=jayson[_0x2e8a('0x9')][_0x2e8a('0xa')]({'port':0x232a});function respondWithRpcPromise(_0x1d233e,_0x1bcd27,_0x529a0c){return new BPromise(function(_0x1266e1,_0x4ad001){return client[_0x2e8a('0xb')](_0x1d233e,_0x529a0c)[_0x2e8a('0xc')](function(_0x207ad3){logger[_0x2e8a('0xd')]('WhatsappQueueReport,\x20%s,\x20%s',_0x1bcd27,'request\x20sent');logger[_0x2e8a('0xe')](_0x2e8a('0xf'),_0x1bcd27,_0x2e8a('0x10'),JSON[_0x2e8a('0x11')](_0x207ad3));if(_0x207ad3[_0x2e8a('0x12')]){if(_0x207ad3[_0x2e8a('0x12')][_0x2e8a('0x13')]===0x1f4){logger[_0x2e8a('0x12')](_0x2e8a('0x14'),_0x1bcd27,_0x207ad3[_0x2e8a('0x12')][_0x2e8a('0x15')]);return _0x4ad001(_0x207ad3[_0x2e8a('0x12')][_0x2e8a('0x15')]);}logger[_0x2e8a('0x12')](_0x2e8a('0x14'),_0x1bcd27,_0x207ad3['error'][_0x2e8a('0x15')]);return _0x1266e1(_0x207ad3[_0x2e8a('0x12')][_0x2e8a('0x15')]);}else{logger['info'](_0x2e8a('0x14'),_0x1bcd27,_0x2e8a('0x10'));_0x1266e1(_0x207ad3[_0x2e8a('0x16')]['message']);}})[_0x2e8a('0x17')](function(_0x2c80a2){logger[_0x2e8a('0x12')]('WhatsappQueueReport,\x20%s,\x20%s',_0x1bcd27,_0x2c80a2);_0x4ad001(_0x2c80a2);});});}exports[_0x2e8a('0x18')]=function(_0x5abef7){var _0x225db3=this;return new Promise(function(_0xb59edf,_0x46142a){return db[_0x2e8a('0x19')][_0x2e8a('0x1a')](_0x5abef7['body'],{'raw':_0x5abef7[_0x2e8a('0x1b')]?_0x5abef7[_0x2e8a('0x1b')]['raw']===undefined?!![]:![]:!![]})[_0x2e8a('0xc')](function(_0x2f953b){logger['info'](_0x2e8a('0x18'),_0x5abef7);logger[_0x2e8a('0xe')](_0x2e8a('0x18'),_0x5abef7,JSON[_0x2e8a('0x11')](_0x2f953b));_0xb59edf(_0x2f953b);})[_0x2e8a('0x17')](function(_0x265225){logger[_0x2e8a('0x12')]('CreateWhatsappQueueReport',_0x265225[_0x2e8a('0x15')],_0x5abef7);_0x46142a(_0x225db3[_0x2e8a('0x12')](0x1f4,_0x265225[_0x2e8a('0x15')]));});});};exports[_0x2e8a('0x1c')]=function(_0x43d88a){var _0x3a6a0e=this;return new Promise(function(_0x273d6d,_0x237862){return db[_0x2e8a('0x19')]['update'](_0x43d88a['body'],{'raw':_0x43d88a[_0x2e8a('0x1b')]?_0x43d88a[_0x2e8a('0x1b')][_0x2e8a('0x1d')]===undefined?!![]:![]:!![],'individualHooks':!![],'where':_0x43d88a[_0x2e8a('0x1b')]?_0x43d88a[_0x2e8a('0x1b')][_0x2e8a('0x1e')]||null:null,'attributes':_0x43d88a[_0x2e8a('0x1b')]?_0x43d88a['options'][_0x2e8a('0x1f')]||null:null,'limit':_0x43d88a[_0x2e8a('0x1b')]?_0x43d88a[_0x2e8a('0x1b')]['limit']||null:null})[_0x2e8a('0xc')](function(_0x5545b9){logger[_0x2e8a('0xd')](_0x2e8a('0x1c'),_0x43d88a);logger[_0x2e8a('0xe')](_0x2e8a('0x1c'),_0x43d88a,JSON['stringify'](_0x5545b9));_0x273d6d(_0x5545b9);})[_0x2e8a('0x17')](function(_0x2a2104){logger['error'](_0x2e8a('0x1c'),_0x2a2104[_0x2e8a('0x15')],_0x43d88a);_0x237862(_0x3a6a0e['error'](0x1f4,_0x2a2104[_0x2e8a('0x15')]));});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x151f=['create','put','destroy','exports','multer','util','path','connect-timeout','Router','fs-extra','../../components/interaction/service','../../config/environment','./whatsappTransferReport.controller','get','/describe','isAuthenticated','describe','/:id','show','post'];(function(_0x5c3107,_0x3d1516){var _0x4773b8=function(_0x508ef1){while(--_0x508ef1){_0x5c3107['push'](_0x5c3107['shift']());}};_0x4773b8(++_0x3d1516);}(_0x151f,0xe0));var _0xf151=function(_0x3a9dae,_0x4ffe20){_0x3a9dae=_0x3a9dae-0x0;var _0x1f2ee4=_0x151f[_0x3a9dae];return _0x1f2ee4;};'use strict';var multer=require(_0xf151('0x0'));var util=require(_0xf151('0x1'));var path=require(_0xf151('0x2'));var timeout=require(_0xf151('0x3'));var express=require('express');var router=express[_0xf151('0x4')]();var fs_extra=require(_0xf151('0x5'));var auth=require('../../components/auth/service');var interaction=require(_0xf151('0x6'));var config=require(_0xf151('0x7'));var controller=require(_0xf151('0x8'));router[_0xf151('0x9')]('/',auth['isAuthenticated'](),controller['index']);router['get'](_0xf151('0xa'),auth[_0xf151('0xb')](),controller[_0xf151('0xc')]);router[_0xf151('0x9')](_0xf151('0xd'),auth[_0xf151('0xb')](),controller[_0xf151('0xe')]);router[_0xf151('0xf')]('/',auth[_0xf151('0xb')](),controller[_0xf151('0x10')]);router[_0xf151('0x11')](_0xf151('0xd'),auth[_0xf151('0xb')](),controller['update']);router['delete'](_0xf151('0xd'),auth[_0xf151('0xb')](),controller[_0xf151('0x12')]);module[_0xf151('0x13')]=router;
\ No newline at end of file
+var _0xa022=['express','fs-extra','../../components/auth/service','../../components/interaction/service','../../config/environment','isAuthenticated','index','get','/describe','describe','/:id','show','put','update','delete','destroy','exports','multer','util','path'];(function(_0x9ac89b,_0x25b61d){var _0x40da74=function(_0x2643a2){while(--_0x2643a2){_0x9ac89b['push'](_0x9ac89b['shift']());}};_0x40da74(++_0x25b61d);}(_0xa022,0x115));var _0x2a02=function(_0x459b6a,_0xef066f){_0x459b6a=_0x459b6a-0x0;var _0x33c713=_0xa022[_0x459b6a];return _0x33c713;};'use strict';var multer=require(_0x2a02('0x0'));var util=require(_0x2a02('0x1'));var path=require(_0x2a02('0x2'));var timeout=require('connect-timeout');var express=require(_0x2a02('0x3'));var router=express['Router']();var fs_extra=require(_0x2a02('0x4'));var auth=require(_0x2a02('0x5'));var interaction=require(_0x2a02('0x6'));var config=require(_0x2a02('0x7'));var controller=require('./whatsappTransferReport.controller');router['get']('/',auth[_0x2a02('0x8')](),controller[_0x2a02('0x9')]);router[_0x2a02('0xa')](_0x2a02('0xb'),auth[_0x2a02('0x8')](),controller[_0x2a02('0xc')]);router[_0x2a02('0xa')](_0x2a02('0xd'),auth['isAuthenticated'](),controller[_0x2a02('0xe')]);router['post']('/',auth[_0x2a02('0x8')](),controller['create']);router[_0x2a02('0xf')](_0x2a02('0xd'),auth[_0x2a02('0x8')](),controller[_0x2a02('0x10')]);router[_0x2a02('0x11')](_0x2a02('0xd'),auth[_0x2a02('0x8')](),controller[_0x2a02('0x12')]);module[_0x2a02('0x13')]=router;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2250=['STRING','ENUM','account','agent','queue','sequelize','exports'];(function(_0x489c07,_0x3476f1){var _0x143ece=function(_0x2c9aa3){while(--_0x2c9aa3){_0x489c07['push'](_0x489c07['shift']());}};_0x143ece(++_0x3476f1);}(_0x2250,0x178));var _0x0225=function(_0x3441e2,_0x57b820){_0x3441e2=_0x3441e2-0x0;var _0x1a129b=_0x2250[_0x3441e2];return _0x1a129b;};'use strict';var Sequelize=require(_0x0225('0x0'));module[_0x0225('0x1')]={'uniqueid':{'type':Sequelize[_0x0225('0x2')],'allowNull':![]},'type':{'type':Sequelize[_0x0225('0x3')](_0x0225('0x4'),_0x0225('0x5'),_0x0225('0x6')),'allowNull':![]},'transferredAt':{'type':Sequelize['DATE']}};
\ No newline at end of file
+var _0xeca8=['DATE','sequelize','exports','STRING','ENUM','account','agent'];(function(_0x16b6a6,_0x5b3634){var _0x2645ef=function(_0x436a70){while(--_0x436a70){_0x16b6a6['push'](_0x16b6a6['shift']());}};_0x2645ef(++_0x5b3634);}(_0xeca8,0x1f2));var _0x8eca=function(_0x13f68f,_0x35b5f2){_0x13f68f=_0x13f68f-0x0;var _0x3d05c6=_0xeca8[_0x13f68f];return _0x3d05c6;};'use strict';var Sequelize=require(_0x8eca('0x0'));module[_0x8eca('0x1')]={'uniqueid':{'type':Sequelize[_0x8eca('0x2')],'allowNull':![]},'type':{'type':Sequelize[_0x8eca('0x3')](_0x8eca('0x4'),_0x8eca('0x5'),'queue'),'allowNull':![]},'transferredAt':{'type':Sequelize[_0x8eca('0x6')]}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5857=['save','update','then','destroy','error','stack','name','send','map','WhatsappTransferReport','rawAttributes','fieldName','key','model','query','keys','filters','attributes','intersection','fields','length','order','sort','where','pick','filter','type','VIRTUAL','merge','options','includeAll','findAll','catch','show','params','include','find','create','body','eml-format','request-promise','moment','bluebird','mustache','util','path','sox','ejs','fs-extra','squel','crypto','jsforce','desk.js','to-csv','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','limit','undefined','count','set','Content-Range'];(function(_0xf7a19b,_0x558a28){var _0x5adfa9=function(_0x3e4ecb){while(--_0x3e4ecb){_0xf7a19b['push'](_0xf7a19b['shift']());}};_0x5adfa9(++_0x558a28);}(_0x5857,0xbf));var _0x7585=function(_0xce7084,_0x35ca52){_0xce7084=_0xce7084-0x0;var _0x58ffb0=_0x5857[_0xce7084];return _0x58ffb0;};'use strict';var emlformat=require(_0x7585('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x7585('0x1'));var moment=require(_0x7585('0x2'));var BPromise=require(_0x7585('0x3'));var Mustache=require(_0x7585('0x4'));var util=require(_0x7585('0x5'));var path=require(_0x7585('0x6'));var sox=require(_0x7585('0x7'));var csv=require('to-csv');var ejs=require(_0x7585('0x8'));var fs=require('fs');var fs_extra=require(_0x7585('0x9'));var _=require('lodash');var squel=require(_0x7585('0xa'));var crypto=require(_0x7585('0xb'));var jsforce=require(_0x7585('0xc'));var deskjs=require(_0x7585('0xd'));var toCsv=require(_0x7585('0xe'));var querystring=require('querystring');var Papa=require(_0x7585('0xf'));var Redis=require(_0x7585('0x10'));var authService=require(_0x7585('0x11'));var qs=require(_0x7585('0x12'));var as=require(_0x7585('0x13'));var hardwareService=require(_0x7585('0x14'));var logger=require(_0x7585('0x15'))(_0x7585('0x16'));var utils=require(_0x7585('0x17'));var config=require(_0x7585('0x18'));var licenseUtil=require(_0x7585('0x19'));var db=require(_0x7585('0x1a'))['db'];function respondWithStatusCode(_0x536bf8,_0x32596b){_0x32596b=_0x32596b||0xcc;return function(_0x3b8e26){if(_0x3b8e26){return _0x536bf8[_0x7585('0x1b')](_0x32596b);}return _0x536bf8[_0x7585('0x1c')](_0x32596b)[_0x7585('0x1d')]();};}function respondWithResult(_0x288f5d,_0x3e66d1){_0x3e66d1=_0x3e66d1||0xc8;return function(_0x10ed40){if(_0x10ed40){return _0x288f5d[_0x7585('0x1c')](_0x3e66d1)[_0x7585('0x1e')](_0x10ed40);}};}function respondWithFilteredResult(_0x1414c8,_0x5e3695){return function(_0x4db53c){if(_0x4db53c){var _0x34309b=typeof _0x5e3695[_0x7585('0x1f')]==='undefined'&&typeof _0x5e3695[_0x7585('0x20')]===_0x7585('0x21');var _0x522b05=_0x4db53c[_0x7585('0x22')];var _0x328f12=_0x34309b?0x0:_0x5e3695['offset'];var _0x4c623a=_0x34309b?_0x4db53c[_0x7585('0x22')]:_0x5e3695[_0x7585('0x1f')]+_0x5e3695[_0x7585('0x20')];var _0x49c742;if(_0x4c623a>=_0x522b05){_0x4c623a=_0x522b05;_0x49c742=0xc8;}else{_0x49c742=0xce;}_0x1414c8[_0x7585('0x1c')](_0x49c742);return _0x1414c8[_0x7585('0x23')](_0x7585('0x24'),_0x328f12+'-'+_0x4c623a+'/'+_0x522b05)[_0x7585('0x1e')](_0x4db53c);}return null;};}function patchUpdates(_0x59d044){return function(_0xfdf616){try{jsonpatch['apply'](_0xfdf616,_0x59d044,!![]);}catch(_0x470fd6){return BPromise['reject'](_0x470fd6);}return _0xfdf616[_0x7585('0x25')]();};}function saveUpdates(_0x1db569,_0x394a0e){return function(_0x4fad97){if(_0x4fad97){return _0x4fad97[_0x7585('0x26')](_0x1db569)[_0x7585('0x27')](function(_0x2adb3a){return _0x2adb3a;});}return null;};}function removeEntity(_0x2d8703,_0x390dbd){return function(_0x2b517e){if(_0x2b517e){return _0x2b517e[_0x7585('0x28')]()['then'](function(){_0x2d8703[_0x7585('0x1c')](0xcc)[_0x7585('0x1d')]();});}};}function handleEntityNotFound(_0x2da8a6,_0x484f18){return function(_0x32dead){if(!_0x32dead){_0x2da8a6['sendStatus'](0x194);}return _0x32dead;};}function handleError(_0x268357,_0x4e4376){_0x4e4376=_0x4e4376||0x1f4;return function(_0x3bcac6){logger[_0x7585('0x29')](_0x3bcac6[_0x7585('0x2a')]);if(_0x3bcac6['name']){delete _0x3bcac6[_0x7585('0x2b')];}_0x268357['status'](_0x4e4376)[_0x7585('0x2c')](_0x3bcac6);};}exports['index']=function(_0x128e1a,_0x27f419){var _0x55c5a5={},_0x272cef={},_0x64ae56={'count':0x0,'rows':[]};var _0x560734=_[_0x7585('0x2d')](db[_0x7585('0x2e')][_0x7585('0x2f')],function(_0x196e06){return{'name':_0x196e06[_0x7585('0x30')],'type':_0x196e06['type'][_0x7585('0x31')]};});_0x272cef[_0x7585('0x32')]=_[_0x7585('0x2d')](_0x560734,_0x7585('0x2b'));_0x272cef[_0x7585('0x33')]=_[_0x7585('0x34')](_0x128e1a['query']);_0x272cef[_0x7585('0x35')]=_['intersection'](_0x272cef[_0x7585('0x32')],_0x272cef[_0x7585('0x33')]);_0x55c5a5[_0x7585('0x36')]=_[_0x7585('0x37')](_0x272cef['model'],qs['fields'](_0x128e1a[_0x7585('0x33')][_0x7585('0x38')]));_0x55c5a5[_0x7585('0x36')]=_0x55c5a5['attributes'][_0x7585('0x39')]?_0x55c5a5[_0x7585('0x36')]:_0x272cef['model'];if(!_0x128e1a[_0x7585('0x33')]['hasOwnProperty']('nolimit')){_0x55c5a5['limit']=qs['limit'](_0x128e1a[_0x7585('0x33')][_0x7585('0x20')]);_0x55c5a5[_0x7585('0x1f')]=qs[_0x7585('0x1f')](_0x128e1a[_0x7585('0x33')][_0x7585('0x1f')]);}_0x55c5a5[_0x7585('0x3a')]=qs['sort'](_0x128e1a[_0x7585('0x33')][_0x7585('0x3b')]);_0x55c5a5[_0x7585('0x3c')]=qs[_0x7585('0x35')](_[_0x7585('0x3d')](_0x128e1a[_0x7585('0x33')],_0x272cef[_0x7585('0x35')]),_0x560734);if(_0x128e1a[_0x7585('0x33')][_0x7585('0x3e')]){_0x55c5a5[_0x7585('0x3c')]=_['merge'](_0x55c5a5[_0x7585('0x3c')],{'$or':_['map'](_0x560734,function(_0x52fe19){if(_0x52fe19[_0x7585('0x3f')]!==_0x7585('0x40')){var _0x335b3f={};_0x335b3f[_0x52fe19[_0x7585('0x2b')]]={'$like':'%'+_0x128e1a[_0x7585('0x33')][_0x7585('0x3e')]+'%'};return _0x335b3f;}})});}_0x55c5a5=_[_0x7585('0x41')]({},_0x55c5a5,_0x128e1a[_0x7585('0x42')]);var _0x3a6334={'where':_0x55c5a5[_0x7585('0x3c')]};return db[_0x7585('0x2e')]['count'](_0x3a6334)[_0x7585('0x27')](function(_0xe637a3){_0x64ae56[_0x7585('0x22')]=_0xe637a3;if(_0x128e1a['query'][_0x7585('0x43')]){_0x55c5a5['include']=[{'all':!![]}];}return db['WhatsappTransferReport'][_0x7585('0x44')](_0x55c5a5);})[_0x7585('0x27')](function(_0x3d5654){_0x64ae56['rows']=_0x3d5654;return _0x64ae56;})['then'](respondWithFilteredResult(_0x27f419,_0x55c5a5))[_0x7585('0x45')](handleError(_0x27f419,null));};exports[_0x7585('0x46')]=function(_0x259528,_0x3c781d){var _0x523ad2={'raw':!![],'where':{'id':_0x259528[_0x7585('0x47')]['id']}},_0x25ba74={};_0x25ba74[_0x7585('0x32')]=_[_0x7585('0x34')](db[_0x7585('0x2e')][_0x7585('0x2f')]);_0x25ba74[_0x7585('0x33')]=_[_0x7585('0x34')](_0x259528['query']);_0x25ba74[_0x7585('0x35')]=_[_0x7585('0x37')](_0x25ba74[_0x7585('0x32')],_0x25ba74['query']);_0x523ad2['attributes']=_[_0x7585('0x37')](_0x25ba74[_0x7585('0x32')],qs[_0x7585('0x38')](_0x259528[_0x7585('0x33')][_0x7585('0x38')]));_0x523ad2[_0x7585('0x36')]=_0x523ad2[_0x7585('0x36')][_0x7585('0x39')]?_0x523ad2['attributes']:_0x25ba74[_0x7585('0x32')];if(_0x259528[_0x7585('0x33')][_0x7585('0x43')]){_0x523ad2[_0x7585('0x48')]=[{'all':!![]}];}_0x523ad2=_['merge']({},_0x523ad2,_0x259528[_0x7585('0x42')]);return db[_0x7585('0x2e')][_0x7585('0x49')](_0x523ad2)[_0x7585('0x27')](handleEntityNotFound(_0x3c781d,null))['then'](respondWithResult(_0x3c781d,null))[_0x7585('0x45')](handleError(_0x3c781d,null));};exports[_0x7585('0x4a')]=function(_0x5ce14d,_0x2ec944){return db[_0x7585('0x2e')][_0x7585('0x4a')](_0x5ce14d['body'],{})[_0x7585('0x27')](respondWithResult(_0x2ec944,0xc9))[_0x7585('0x45')](handleError(_0x2ec944,null));};exports['update']=function(_0x59a3e5,_0x3cadb1){if(_0x59a3e5[_0x7585('0x4b')]['id']){delete _0x59a3e5[_0x7585('0x4b')]['id'];}return db[_0x7585('0x2e')][_0x7585('0x49')]({'where':{'id':_0x59a3e5['params']['id']}})[_0x7585('0x27')](handleEntityNotFound(_0x3cadb1,null))['then'](saveUpdates(_0x59a3e5[_0x7585('0x4b')],null))['then'](respondWithResult(_0x3cadb1,null))['catch'](handleError(_0x3cadb1,null));};exports[_0x7585('0x28')]=function(_0x12471e,_0x42a1f4){return db[_0x7585('0x2e')][_0x7585('0x49')]({'where':{'id':_0x12471e[_0x7585('0x47')]['id']}})['then'](handleEntityNotFound(_0x42a1f4,null))[_0x7585('0x27')](removeEntity(_0x42a1f4,null))['catch'](handleError(_0x42a1f4,null));};exports['describe']=function(_0xe5ca9e,_0x36bc83){return db[_0x7585('0x2e')]['describe']()[_0x7585('0x27')](respondWithResult(_0x36bc83,null))[_0x7585('0x45')](handleError(_0x36bc83,null));};
\ No newline at end of file
+var _0x72a1=['pick','filter','merge','VIRTUAL','includeAll','findAll','show','params','rawAttributes','length','options','catch','create','body','update','find','destroy','describe','rimraf','fast-json-patch','moment','bluebird','mustache','path','to-csv','fs-extra','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','status','end','json','undefined','count','offset','limit','set','apply','reject','save','then','sendStatus','error','stack','name','send','index','map','WhatsappTransferReport','type','key','query','keys','filters','intersection','model','attributes','fields','hasOwnProperty','nolimit','order','sort','where'];(function(_0x1b2ff7,_0x12a034){var _0x31656a=function(_0x1165a5){while(--_0x1165a5){_0x1b2ff7['push'](_0x1b2ff7['shift']());}};_0x31656a(++_0x12a034);}(_0x72a1,0x1ce));var _0x172a=function(_0x2d6e36,_0x54eb34){_0x2d6e36=_0x2d6e36-0x0;var _0x4fd474=_0x72a1[_0x2d6e36];return _0x4fd474;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x172a('0x0'));var zipdir=require('zip-dir');var jsonpatch=require(_0x172a('0x1'));var rp=require('request-promise');var moment=require(_0x172a('0x2'));var BPromise=require(_0x172a('0x3'));var Mustache=require(_0x172a('0x4'));var util=require('util');var path=require(_0x172a('0x5'));var sox=require('sox');var csv=require(_0x172a('0x6'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x172a('0x7'));var _=require('lodash');var squel=require(_0x172a('0x8'));var crypto=require(_0x172a('0x9'));var jsforce=require(_0x172a('0xa'));var deskjs=require(_0x172a('0xb'));var toCsv=require('to-csv');var querystring=require(_0x172a('0xc'));var Papa=require('papaparse');var Redis=require(_0x172a('0xd'));var authService=require(_0x172a('0xe'));var qs=require(_0x172a('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x172a('0x10'));var logger=require(_0x172a('0x11'))(_0x172a('0x12'));var utils=require(_0x172a('0x13'));var config=require(_0x172a('0x14'));var licenseUtil=require('../../config/license/util');var db=require(_0x172a('0x15'))['db'];function respondWithStatusCode(_0x3e3a6f,_0x3936f9){_0x3936f9=_0x3936f9||0xcc;return function(_0x901ebc){if(_0x901ebc){return _0x3e3a6f['sendStatus'](_0x3936f9);}return _0x3e3a6f[_0x172a('0x16')](_0x3936f9)[_0x172a('0x17')]();};}function respondWithResult(_0xbea95b,_0x4fa511){_0x4fa511=_0x4fa511||0xc8;return function(_0x27c548){if(_0x27c548){return _0xbea95b[_0x172a('0x16')](_0x4fa511)[_0x172a('0x18')](_0x27c548);}};}function respondWithFilteredResult(_0x32f7a8,_0x5775f9){return function(_0x44661f){if(_0x44661f){var _0x100d2b=typeof _0x5775f9['offset']===_0x172a('0x19')&&typeof _0x5775f9['limit']===_0x172a('0x19');var _0x3cd44f=_0x44661f[_0x172a('0x1a')];var _0x5ad6ec=_0x100d2b?0x0:_0x5775f9[_0x172a('0x1b')];var _0x232c5b=_0x100d2b?_0x44661f[_0x172a('0x1a')]:_0x5775f9[_0x172a('0x1b')]+_0x5775f9[_0x172a('0x1c')];var _0x222584;if(_0x232c5b>=_0x3cd44f){_0x232c5b=_0x3cd44f;_0x222584=0xc8;}else{_0x222584=0xce;}_0x32f7a8[_0x172a('0x16')](_0x222584);return _0x32f7a8[_0x172a('0x1d')]('Content-Range',_0x5ad6ec+'-'+_0x232c5b+'/'+_0x3cd44f)['json'](_0x44661f);}return null;};}function patchUpdates(_0xc3cad1){return function(_0x1267d7){try{jsonpatch[_0x172a('0x1e')](_0x1267d7,_0xc3cad1,!![]);}catch(_0x406dd8){return BPromise[_0x172a('0x1f')](_0x406dd8);}return _0x1267d7[_0x172a('0x20')]();};}function saveUpdates(_0x33b9d3,_0x12fd12){return function(_0x47cbfd){if(_0x47cbfd){return _0x47cbfd['update'](_0x33b9d3)[_0x172a('0x21')](function(_0xb44494){return _0xb44494;});}return null;};}function removeEntity(_0x37e48e,_0x3fb66d){return function(_0x5a9beb){if(_0x5a9beb){return _0x5a9beb['destroy']()[_0x172a('0x21')](function(){_0x37e48e[_0x172a('0x16')](0xcc)[_0x172a('0x17')]();});}};}function handleEntityNotFound(_0x52a9df,_0x5cbc26){return function(_0x526636){if(!_0x526636){_0x52a9df[_0x172a('0x22')](0x194);}return _0x526636;};}function handleError(_0x26cfa6,_0x472903){_0x472903=_0x472903||0x1f4;return function(_0x250bad){logger[_0x172a('0x23')](_0x250bad[_0x172a('0x24')]);if(_0x250bad[_0x172a('0x25')]){delete _0x250bad[_0x172a('0x25')];}_0x26cfa6[_0x172a('0x16')](_0x472903)[_0x172a('0x26')](_0x250bad);};}exports[_0x172a('0x27')]=function(_0x3b13bf,_0x44fe40){var _0x3d5e7b={},_0x5c8699={},_0x1254d8={'count':0x0,'rows':[]};var _0x288905=_[_0x172a('0x28')](db[_0x172a('0x29')]['rawAttributes'],function(_0x5b61be){return{'name':_0x5b61be['fieldName'],'type':_0x5b61be[_0x172a('0x2a')][_0x172a('0x2b')]};});_0x5c8699['model']=_['map'](_0x288905,_0x172a('0x25'));_0x5c8699[_0x172a('0x2c')]=_[_0x172a('0x2d')](_0x3b13bf[_0x172a('0x2c')]);_0x5c8699[_0x172a('0x2e')]=_[_0x172a('0x2f')](_0x5c8699[_0x172a('0x30')],_0x5c8699[_0x172a('0x2c')]);_0x3d5e7b[_0x172a('0x31')]=_[_0x172a('0x2f')](_0x5c8699[_0x172a('0x30')],qs[_0x172a('0x32')](_0x3b13bf[_0x172a('0x2c')][_0x172a('0x32')]));_0x3d5e7b[_0x172a('0x31')]=_0x3d5e7b[_0x172a('0x31')]['length']?_0x3d5e7b['attributes']:_0x5c8699[_0x172a('0x30')];if(!_0x3b13bf[_0x172a('0x2c')][_0x172a('0x33')](_0x172a('0x34'))){_0x3d5e7b['limit']=qs[_0x172a('0x1c')](_0x3b13bf[_0x172a('0x2c')][_0x172a('0x1c')]);_0x3d5e7b['offset']=qs['offset'](_0x3b13bf['query'][_0x172a('0x1b')]);}_0x3d5e7b[_0x172a('0x35')]=qs[_0x172a('0x36')](_0x3b13bf['query'][_0x172a('0x36')]);_0x3d5e7b[_0x172a('0x37')]=qs['filters'](_[_0x172a('0x38')](_0x3b13bf[_0x172a('0x2c')],_0x5c8699[_0x172a('0x2e')]),_0x288905);if(_0x3b13bf[_0x172a('0x2c')][_0x172a('0x39')]){_0x3d5e7b['where']=_[_0x172a('0x3a')](_0x3d5e7b['where'],{'$or':_[_0x172a('0x28')](_0x288905,function(_0x1ba3a5){if(_0x1ba3a5[_0x172a('0x2a')]!==_0x172a('0x3b')){var _0x3f7548={};_0x3f7548[_0x1ba3a5[_0x172a('0x25')]]={'$like':'%'+_0x3b13bf[_0x172a('0x2c')][_0x172a('0x39')]+'%'};return _0x3f7548;}})});}_0x3d5e7b=_[_0x172a('0x3a')]({},_0x3d5e7b,_0x3b13bf['options']);var _0x299871={'where':_0x3d5e7b[_0x172a('0x37')]};return db[_0x172a('0x29')][_0x172a('0x1a')](_0x299871)[_0x172a('0x21')](function(_0x3c3463){_0x1254d8[_0x172a('0x1a')]=_0x3c3463;if(_0x3b13bf[_0x172a('0x2c')][_0x172a('0x3c')]){_0x3d5e7b['include']=[{'all':!![]}];}return db[_0x172a('0x29')][_0x172a('0x3d')](_0x3d5e7b);})['then'](function(_0x7fdf7d){_0x1254d8['rows']=_0x7fdf7d;return _0x1254d8;})['then'](respondWithFilteredResult(_0x44fe40,_0x3d5e7b))['catch'](handleError(_0x44fe40,null));};exports[_0x172a('0x3e')]=function(_0x5d6441,_0x5be8f4){var _0x5cbabd={'raw':!![],'where':{'id':_0x5d6441[_0x172a('0x3f')]['id']}},_0x14b060={};_0x14b060[_0x172a('0x30')]=_['keys'](db[_0x172a('0x29')][_0x172a('0x40')]);_0x14b060[_0x172a('0x2c')]=_[_0x172a('0x2d')](_0x5d6441['query']);_0x14b060[_0x172a('0x2e')]=_[_0x172a('0x2f')](_0x14b060[_0x172a('0x30')],_0x14b060['query']);_0x5cbabd[_0x172a('0x31')]=_[_0x172a('0x2f')](_0x14b060[_0x172a('0x30')],qs[_0x172a('0x32')](_0x5d6441[_0x172a('0x2c')][_0x172a('0x32')]));_0x5cbabd[_0x172a('0x31')]=_0x5cbabd[_0x172a('0x31')][_0x172a('0x41')]?_0x5cbabd[_0x172a('0x31')]:_0x14b060[_0x172a('0x30')];if(_0x5d6441[_0x172a('0x2c')][_0x172a('0x3c')]){_0x5cbabd['include']=[{'all':!![]}];}_0x5cbabd=_[_0x172a('0x3a')]({},_0x5cbabd,_0x5d6441[_0x172a('0x42')]);return db[_0x172a('0x29')]['find'](_0x5cbabd)[_0x172a('0x21')](handleEntityNotFound(_0x5be8f4,null))['then'](respondWithResult(_0x5be8f4,null))[_0x172a('0x43')](handleError(_0x5be8f4,null));};exports[_0x172a('0x44')]=function(_0x6b3454,_0x2ab91e){return db[_0x172a('0x29')][_0x172a('0x44')](_0x6b3454[_0x172a('0x45')],{})['then'](respondWithResult(_0x2ab91e,0xc9))[_0x172a('0x43')](handleError(_0x2ab91e,null));};exports[_0x172a('0x46')]=function(_0x3394f9,_0x52fa39){if(_0x3394f9[_0x172a('0x45')]['id']){delete _0x3394f9[_0x172a('0x45')]['id'];}return db['WhatsappTransferReport'][_0x172a('0x47')]({'where':{'id':_0x3394f9[_0x172a('0x3f')]['id']}})[_0x172a('0x21')](handleEntityNotFound(_0x52fa39,null))[_0x172a('0x21')](saveUpdates(_0x3394f9[_0x172a('0x45')],null))['then'](respondWithResult(_0x52fa39,null))[_0x172a('0x43')](handleError(_0x52fa39,null));};exports[_0x172a('0x48')]=function(_0x18543e,_0x173eaf){return db[_0x172a('0x29')]['find']({'where':{'id':_0x18543e[_0x172a('0x3f')]['id']}})[_0x172a('0x21')](handleEntityNotFound(_0x173eaf,null))[_0x172a('0x21')](removeEntity(_0x173eaf,null))[_0x172a('0x43')](handleError(_0x173eaf,null));};exports[_0x172a('0x49')]=function(_0x1b1524,_0x8e497){return db[_0x172a('0x29')][_0x172a('0x49')]()[_0x172a('0x21')](respondWithResult(_0x8e497,null))[_0x172a('0x43')](handleError(_0x8e497,null));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa1d1=['./whatsappTransferReport.attributes','define','report_whatsapp_transfer','moment','bluebird','request-promise','rimraf','../../config/environment'];(function(_0x24690e,_0x3bcc85){var _0x4de2ec=function(_0x430ce4){while(--_0x430ce4){_0x24690e['push'](_0x24690e['shift']());}};_0x4de2ec(++_0x3bcc85);}(_0xa1d1,0xc3));var _0x1a1d=function(_0xfaa4b4,_0x4821fb){_0xfaa4b4=_0xfaa4b4-0x0;var _0x3adb7b=_0xa1d1[_0xfaa4b4];return _0x3adb7b;};'use strict';var _=require('lodash');var util=require('util');var logger=require('../../config/logger')('api');var moment=require(_0x1a1d('0x0'));var BPromise=require(_0x1a1d('0x1'));var rp=require(_0x1a1d('0x2'));var fs=require('fs');var path=require('path');var rimraf=require(_0x1a1d('0x3'));var config=require(_0x1a1d('0x4'));var attributes=require(_0x1a1d('0x5'));module['exports']=function(_0x4f65ad,_0x3e195b){return _0x4f65ad[_0x1a1d('0x6')]('WhatsappTransferReport',attributes,{'tableName':_0x1a1d('0x7'),'paranoid':![],'indexes':[{'name':'uniqueid','fields':['uniqueid']}],'timestamps':!![]});};
\ No newline at end of file
+var _0xe380=['rimraf','../../config/environment','./whatsappTransferReport.attributes','define','WhatsappTransferReport','report_whatsapp_transfer','uniqueid','util','moment','bluebird','path'];(function(_0x3e08c4,_0x6d2d30){var _0xa42d2d=function(_0x5561b0){while(--_0x5561b0){_0x3e08c4['push'](_0x3e08c4['shift']());}};_0xa42d2d(++_0x6d2d30);}(_0xe380,0xcd));var _0x0e38=function(_0x50a0c2,_0x4befab){_0x50a0c2=_0x50a0c2-0x0;var _0x5ebadd=_0xe380[_0x50a0c2];return _0x5ebadd;};'use strict';var _=require('lodash');var util=require(_0x0e38('0x0'));var logger=require('../../config/logger')('api');var moment=require(_0x0e38('0x1'));var BPromise=require(_0x0e38('0x2'));var rp=require('request-promise');var fs=require('fs');var path=require(_0x0e38('0x3'));var rimraf=require(_0x0e38('0x4'));var config=require(_0x0e38('0x5'));var attributes=require(_0x0e38('0x6'));module['exports']=function(_0x4c2406,_0x1719fe){return _0x4c2406[_0x0e38('0x7')](_0x0e38('0x8'),attributes,{'tableName':_0x0e38('0x9'),'paranoid':![],'indexes':[{'name':_0x0e38('0xa'),'fields':[_0x0e38('0xa')]}],'timestamps':!![]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2614=['request','then','info','WhatsappTransferReport,\x20%s,\x20%s','request\x20sent','debug','error','code','message','result','catch','lodash','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','client','http'];(function(_0x45fc6a,_0x166adb){var _0x14bcfd=function(_0x3ba718){while(--_0x3ba718){_0x45fc6a['push'](_0x45fc6a['shift']());}};_0x14bcfd(++_0x166adb);}(_0x2614,0xfb));var _0x4261=function(_0x454dce,_0x28e02d){_0x454dce=_0x454dce-0x0;var _0x3f0b85=_0x2614[_0x454dce];return _0x3f0b85;};'use strict';var _=require(_0x4261('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x4261('0x1'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x4261('0x2'));var db=require(_0x4261('0x3'))['db'];var utils=require(_0x4261('0x4'));var logger=require(_0x4261('0x5'))(_0x4261('0x6'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x4261('0x7')][_0x4261('0x8')]({'port':0x232a});function respondWithRpcPromise(_0x3c987e,_0x2042dc,_0xde21ff){return new BPromise(function(_0x28c82f,_0x1a047c){return client[_0x4261('0x9')](_0x3c987e,_0xde21ff)[_0x4261('0xa')](function(_0x154ed8){logger[_0x4261('0xb')](_0x4261('0xc'),_0x2042dc,_0x4261('0xd'));logger[_0x4261('0xe')]('WhatsappTransferReport,\x20%s,\x20%s,\x20%s',_0x2042dc,_0x4261('0xd'),JSON['stringify'](_0x154ed8));if(_0x154ed8[_0x4261('0xf')]){if(_0x154ed8[_0x4261('0xf')][_0x4261('0x10')]===0x1f4){logger[_0x4261('0xf')]('WhatsappTransferReport,\x20%s,\x20%s',_0x2042dc,_0x154ed8[_0x4261('0xf')]['message']);return _0x1a047c(_0x154ed8['error'][_0x4261('0x11')]);}logger['error']('WhatsappTransferReport,\x20%s,\x20%s',_0x2042dc,_0x154ed8[_0x4261('0xf')]['message']);return _0x28c82f(_0x154ed8[_0x4261('0xf')][_0x4261('0x11')]);}else{logger[_0x4261('0xb')](_0x4261('0xc'),_0x2042dc,_0x4261('0xd'));_0x28c82f(_0x154ed8[_0x4261('0x12')]['message']);}})[_0x4261('0x13')](function(_0x32cf47){logger['error'](_0x4261('0xc'),_0x2042dc,_0x32cf47);_0x1a047c(_0x32cf47);});});}
\ No newline at end of file
+var _0xc17c=['debug','stringify','error','code','message','request\x20sent','catch','util','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','info','WhatsappTransferReport,\x20%s,\x20%s'];(function(_0x159f91,_0xe8a30f){var _0x26bd65=function(_0x5680d1){while(--_0x5680d1){_0x159f91['push'](_0x159f91['shift']());}};_0x26bd65(++_0xe8a30f);}(_0xc17c,0x124));var _0xcc17=function(_0x47caca,_0x41003f){_0x47caca=_0x47caca-0x0;var _0x2e4376=_0xc17c[_0x47caca];return _0x2e4376;};'use strict';var _=require('lodash');var util=require(_0xcc17('0x0'));var moment=require('moment');var BPromise=require(_0xcc17('0x1'));var rs=require(_0xcc17('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xcc17('0x3'))['db'];var utils=require(_0xcc17('0x4'));var logger=require(_0xcc17('0x5'))(_0xcc17('0x6'));var config=require(_0xcc17('0x7'));var jayson=require('jayson/promise');var client=jayson[_0xcc17('0x8')][_0xcc17('0x9')]({'port':0x232a});function respondWithRpcPromise(_0x5989bb,_0x442f4b,_0xba4ade){return new BPromise(function(_0x1749b4,_0x38e9f3){return client['request'](_0x5989bb,_0xba4ade)['then'](function(_0xa15e25){logger[_0xcc17('0xa')](_0xcc17('0xb'),_0x442f4b,'request\x20sent');logger[_0xcc17('0xc')]('WhatsappTransferReport,\x20%s,\x20%s,\x20%s',_0x442f4b,'request\x20sent',JSON[_0xcc17('0xd')](_0xa15e25));if(_0xa15e25[_0xcc17('0xe')]){if(_0xa15e25[_0xcc17('0xe')][_0xcc17('0xf')]===0x1f4){logger[_0xcc17('0xe')]('WhatsappTransferReport,\x20%s,\x20%s',_0x442f4b,_0xa15e25['error']['message']);return _0x38e9f3(_0xa15e25[_0xcc17('0xe')][_0xcc17('0x10')]);}logger[_0xcc17('0xe')](_0xcc17('0xb'),_0x442f4b,_0xa15e25[_0xcc17('0xe')]['message']);return _0x1749b4(_0xa15e25[_0xcc17('0xe')][_0xcc17('0x10')]);}else{logger['info'](_0xcc17('0xb'),_0x442f4b,_0xcc17('0x11'));_0x1749b4(_0xa15e25['result'][_0xcc17('0x10')]);}})[_0xcc17('0x12')](function(_0x220dd3){logger['error'](_0xcc17('0xb'),_0x442f4b,_0x220dd3);_0x38e9f3(_0x220dd3);});});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdd31=['./config/logger','./config/pm2','./config/pm2/config','./config/schedule','./config/schedule/chat','./config/schedule/transcribe','sequelize','sync','then','listen','info','start','Online\x20apps:','map','online','name','join','Offline\x20apps:','filter','None','seedDB','./config/seedDB','default','./config/license','catch','error','lodash','./rpc'];(function(_0x5e9876,_0x16052d){var _0x576c48=function(_0x338c97){while(--_0x338c97){_0x5e9876['push'](_0x5e9876['shift']());}};_0x576c48(++_0x16052d);}(_0xdd31,0xc2));var _0x1dd3=function(_0x3128b0,_0x3b62be){_0x3128b0=_0x3128b0-0x0;var _0x28c06c=_0xdd31[_0x3128b0];return _0x28c06c;};'use strict';var _=require(_0x1dd3('0x0'));var mysqldb=require('./mysqldb');var rpc=require(_0x1dd3('0x1'));var config=require('./config/environment');var logger=require(_0x1dd3('0x2'))('app');var pm2=require(_0x1dd3('0x3'));var pm2Config=require(_0x1dd3('0x4'));var schedule=require(_0x1dd3('0x5'));var chat=require(_0x1dd3('0x6'));var whatsapp=require('./config/schedule/whatsapp');var transcribe=require(_0x1dd3('0x7'));function main(){return mysqldb['db'][_0x1dd3('0x8')][_0x1dd3('0x9')]()[_0x1dd3('0xa')](function(){return rpc[_0x1dd3('0xb')]();})[_0x1dd3('0xa')](function(_0x42a19f){logger[_0x1dd3('0xc')](_0x42a19f);return chat[_0x1dd3('0xd')]();})[_0x1dd3('0xa')](function(){return whatsapp[_0x1dd3('0xd')]();})[_0x1dd3('0xa')](function(){return schedule[_0x1dd3('0xd')]();})[_0x1dd3('0xa')](function(){return transcribe[_0x1dd3('0xd')]();})['then'](function(_0x316e62){logger[_0x1dd3('0xc')](_0x316e62);return pm2[_0x1dd3('0xd')](pm2Config);})[_0x1dd3('0xa')](function(_0x1abb63){logger['info'](_0x1dd3('0xe'),_[_0x1dd3('0xf')](_['filter'](_0x1abb63,{'status':_0x1dd3('0x10')}),_0x1dd3('0x11'))[_0x1dd3('0x12')]());logger[_0x1dd3('0xc')](_0x1dd3('0x13'),_[_0x1dd3('0xf')](_[_0x1dd3('0x14')](_0x1abb63,function(_0x3efebb){return _0x3efebb['status']!==_0x1dd3('0x10');}),'name')[_0x1dd3('0x12')]()||_0x1dd3('0x15'));config[_0x1dd3('0x16')]&&require(_0x1dd3('0x17'))[_0x1dd3('0x18')]();require(_0x1dd3('0x19'))[_0x1dd3('0x18')]();})[_0x1dd3('0x1a')](function(_0x3d2a28){logger[_0x1dd3('0x1b')]('Server\x20failed\x20to\x20start\x20due\x20to\x20error:\x20%s',_0x3d2a28);process['exit'](0x1);});}main();
\ No newline at end of file
+var _0x286e=['error','Server\x20failed\x20to\x20start\x20due\x20to\x20error:\x20%s','exit','./rpc','./config/environment','./config/logger','./config/pm2/config','./config/schedule','./config/schedule/chat','./config/schedule/whatsapp','./config/schedule/transcribe','then','listen','start','info','Online\x20apps:','map','online','name','Offline\x20apps:','filter','None','seedDB','./config/seedDB','default','catch'];(function(_0x4679b1,_0x213bdd){var _0x320803=function(_0xb94eba){while(--_0xb94eba){_0x4679b1['push'](_0x4679b1['shift']());}};_0x320803(++_0x213bdd);}(_0x286e,0x16f));var _0xe286=function(_0x89ce46,_0x2fb8ed){_0x89ce46=_0x89ce46-0x0;var _0x3e070c=_0x286e[_0x89ce46];return _0x3e070c;};'use strict';var _=require('lodash');var mysqldb=require('./mysqldb');var rpc=require(_0xe286('0x0'));var config=require(_0xe286('0x1'));var logger=require(_0xe286('0x2'))('app');var pm2=require('./config/pm2');var pm2Config=require(_0xe286('0x3'));var schedule=require(_0xe286('0x4'));var chat=require(_0xe286('0x5'));var whatsapp=require(_0xe286('0x6'));var transcribe=require(_0xe286('0x7'));function main(){return mysqldb['db']['sequelize']['sync']()[_0xe286('0x8')](function(){return rpc[_0xe286('0x9')]();})[_0xe286('0x8')](function(_0x4ec26b){logger['info'](_0x4ec26b);return chat[_0xe286('0xa')]();})[_0xe286('0x8')](function(){return whatsapp[_0xe286('0xa')]();})['then'](function(){return schedule[_0xe286('0xa')]();})['then'](function(){return transcribe['start']();})[_0xe286('0x8')](function(_0x85883f){logger[_0xe286('0xb')](_0x85883f);return pm2[_0xe286('0xa')](pm2Config);})[_0xe286('0x8')](function(_0x497c75){logger[_0xe286('0xb')](_0xe286('0xc'),_[_0xe286('0xd')](_['filter'](_0x497c75,{'status':_0xe286('0xe')}),_0xe286('0xf'))['join']());logger[_0xe286('0xb')](_0xe286('0x10'),_[_0xe286('0xd')](_[_0xe286('0x11')](_0x497c75,function(_0xa39655){return _0xa39655['status']!=='online';}),_0xe286('0xf'))['join']()||_0xe286('0x12'));config[_0xe286('0x13')]&&require(_0xe286('0x14'))[_0xe286('0x15')]();require('./config/license')[_0xe286('0x15')]();})[_0xe286('0x16')](function(_0x12bc5a){logger[_0xe286('0x17')](_0xe286('0x18'),_0x12bc5a);process[_0xe286('0x19')](0x1);});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2116=['permissions','md5secret','voicePause','chatPause','mailPause','openchannelPause','pauseType','showWebBar','lastLoginAt','lastPauseAt','crudPermissions','passwordResetAt','alias','phoneBarAutoAnswerDelay','phoneBarDnd','phoneBarEnableRecording','phoneBarEnableDtmfTone','phoneBarEnableSettings','phoneBarPrefixRequired','phoneBarRemoteControl','phoneBarRemoteControlPort','userProfileId','privacyEnabled','settingsEnabled','wssPort','downloadVoiceRecordings','downloadOmnichannelInteractions','downloadAttachments','ignorePauseForPreviewCalls','selectRecallMeCampaign','isChatInteractionAuthorized','use','user','ChatInteraction','params','closed','then','status','disposition','unmanaged','Unmanaged.','Forbidden.','catch','isAuthenticated','headers','authorization','Basic','find','authenticate','pass','json','Wrong\x20credentials.','startsWith','Bearer','apikey','getUuid','query','User','sub','Setting','allowedLoginAttempts','blockDuration','isEqual','apiKeyNonce','API\x20access\x20key\x20is\x20not\x20valid\x20anymore','disabled','blocked','blockedAt','add','minutes','Invalid\x20API\x20access\x20key','Unknown\x20authorization\x20format','User\x20not\x20found.','User\x20object\x20not\x20found.','canUpdate','Forbidden','isWebrtcLicence','getLicense','webrtc','isMiddleware','signToken','It\x20looks\x20like\x20you\x20aren\x27t\x20logged\x20in,\x20please\x20try\x20again.','cookie','motion.token','redirect','send','isNil','apiKeyIat','generateApiKey','regenerateApiKey','validatePasswordPattern','test','Sequelize','ValidationError','The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.','decryptString','split','toLowerCase','format','The\x20password\x20must\x20be\x20different\x20from\x20the\x20last\x20one.\x20Please\x20choose\x20another\x20one.','updatePasswordsHistory','splice','join','promisify','sign','secret','randomBytes','toString','hex','now','HS512','../../mysqldb','../../config/license/util','../encryptor','lodash','jsonwebtoken','express-jwt','basic-auth','bluebird','util','moment','secrets','session','role','fullname','name','internal','email','userpic'];(function(_0x46ddd0,_0x50f8d1){var _0x1823e7=function(_0xb28aff){while(--_0xb28aff){_0x46ddd0['push'](_0x46ddd0['shift']());}};_0x1823e7(++_0x50f8d1);}(_0x2116,0x1f2));var _0x6211=function(_0x283251,_0x65a7d1){_0x283251=_0x283251-0x0;var _0xccf556=_0x2116[_0x283251];return _0xccf556;};'use strict';var db=require(_0x6211('0x0'))['db'];var config=require('../../config/environment');var hardwareConf=require('../../config/license/hardware');var licenseUtil=require(_0x6211('0x1'));var encryptor=require(_0x6211('0x2'));var _=require(_0x6211('0x3'));var jwt=require(_0x6211('0x4'));var expressJwt=require(_0x6211('0x5'));var compose=require('composable-middleware');var basicAuth=require(_0x6211('0x6'));var crypto=require('crypto');var BPromise=require(_0x6211('0x7'));var util=require(_0x6211('0x8'));var moment=require(_0x6211('0x9'));var validateJwt=expressJwt({'secret':config[_0x6211('0xa')][_0x6211('0xb')]});var userAttributes=['id',_0x6211('0xc'),_0x6211('0xd'),_0x6211('0xe'),_0x6211('0xf'),_0x6211('0x10'),_0x6211('0x11'),_0x6211('0x12'),_0x6211('0x13'),_0x6211('0x14'),_0x6211('0x15'),_0x6211('0x16'),'faxPause','smsPause',_0x6211('0x17'),_0x6211('0x18'),_0x6211('0x19'),_0x6211('0x1a'),_0x6211('0x1b'),_0x6211('0x1c'),'allowmessenger',_0x6211('0x1d'),_0x6211('0x1e'),'phoneBarAutoAnswer',_0x6211('0x1f'),_0x6211('0x20'),_0x6211('0x21'),_0x6211('0x22'),_0x6211('0x23'),'phoneBarExpires',_0x6211('0x24'),_0x6211('0x25'),_0x6211('0x26'),'hotdesk','interface',_0x6211('0x27'),_0x6211('0x28'),_0x6211('0x29'),_0x6211('0x2a'),_0x6211('0x2b'),_0x6211('0x2c'),_0x6211('0x2d'),_0x6211('0x2e'),_0x6211('0x2f')];exports[_0x6211('0x30')]=function(){return this['isAuthenticated'](!![])[_0x6211('0x31')](function(_0x1dffd3,_0x7de8c0,_0x2a3919){if(_0x1dffd3[_0x6211('0x32')]){_0x2a3919();}else{return db[_0x6211('0x33')]['findOne']({'where':{'id':_0x1dffd3[_0x6211('0x34')]['id']},'attributes':['id',_0x6211('0x35'),'disposition'],'raw':!![]})[_0x6211('0x36')](function(_0x1113aa){if(_0x1113aa&&_0x1113aa[_0x6211('0x35')]){return _0x7de8c0[_0x6211('0x37')](_0x1113aa[_0x6211('0x38')]===_0x6211('0x39')?0x195:0x193)['json']({'message':_0x1113aa[_0x6211('0x38')]===_0x6211('0x39')?_0x6211('0x3a'):_0x6211('0x3b')});}else{_0x2a3919();}})[_0x6211('0x3c')](function(_0x18f40c){_0x2a3919(_0x18f40c);});}});};exports[_0x6211('0x3d')]=function isAuthenticated(_0x2b211a){return compose()[_0x6211('0x31')](function(_0x4918a5,_0x27469d,_0x578383){var _0x5ddb1c;if(_0x4918a5[_0x6211('0x3e')][_0x6211('0x3f')]){if(_['startsWith'](_0x4918a5[_0x6211('0x3e')]['authorization'],_0x6211('0x40'))){var _0x1c592f=basicAuth(_0x4918a5);db['User'][_0x6211('0x41')]({'where':{'name':_0x1c592f[_0x6211('0xe')]}})['then'](function(_0x2f18e1){if(!_0x2f18e1||!_0x2f18e1[_0x6211('0x42')](_0x1c592f[_0x6211('0x43')])){return _0x27469d[_0x6211('0x37')](0x191)[_0x6211('0x44')]({'message':_0x6211('0x45')});}_0x4918a5[_0x6211('0x32')]={'id':_0x2f18e1['id']};_0x578383();})[_0x6211('0x3c')](function(_0x3c7c9a){_0x578383(_0x3c7c9a);});}else if(_[_0x6211('0x46')](_0x4918a5[_0x6211('0x3e')][_0x6211('0x3f')],_0x6211('0x47'))){validateJwt(_0x4918a5,_0x27469d,_0x578383);}else{if(_0x2b211a){_0x578383();}else{return _0x27469d[_0x6211('0x37')](0x193)[_0x6211('0x44')]({'message':'Unknown\x20authorization\x20format'});}}}else if(_0x4918a5['query'][_0x6211('0x48')]){try{var _0x3a1c7d={'audience':hardwareConf[_0x6211('0x49')](),'issuer':hardwareConf[_0x6211('0x49')]()};verifyJwt(_0x4918a5[_0x6211('0x4a')]['apikey'],_0x3a1c7d)[_0x6211('0x36')](function(_0x450367){return db[_0x6211('0x4b')][_0x6211('0x41')]({'where':{'id':_0x450367[_0x6211('0x4c')]}})[_0x6211('0x36')](function(_0x5d51df){_0x5ddb1c=_0x5d51df;return db[_0x6211('0x4d')]['findOne']({'where':{'id':0x1},'attributes':[_0x6211('0x4e'),_0x6211('0x4f')],'raw':!![]});})[_0x6211('0x36')](function(_0x4f2fce){if(!_0x5ddb1c||!_[_0x6211('0x50')](_0x5ddb1c[_0x6211('0x51')],_0x450367['nonce'])){return _0x27469d[_0x6211('0x37')](0x191)[_0x6211('0x44')]({'message':_0x6211('0x52')});}if(_0x5ddb1c[_0x6211('0x53')]){return _0x27469d[_0x6211('0x37')](0x191)[_0x6211('0x44')]({'message':'Invalid\x20API\x20access\x20key'});}if(_0x5ddb1c[_0x6211('0x54')]){if(_0x4f2fce[_0x6211('0x4f')]>0x0){if(moment(_0x5ddb1c[_0x6211('0x55')])[_0x6211('0x56')](_0x4f2fce['blockDuration'],_0x6211('0x57'))>moment()){return _0x27469d[_0x6211('0x37')](0x191)[_0x6211('0x44')]({'message':_0x6211('0x58')});}}else{return _0x27469d[_0x6211('0x37')](0x191)['json']({'message':_0x6211('0x58')});}}_0x4918a5[_0x6211('0x32')]={'id':_0x5ddb1c['id']};_0x578383();});})[_0x6211('0x3c')](function(){return _0x27469d['status'](0x191)[_0x6211('0x44')]({'message':_0x6211('0x58')});});}catch(_0x3c73ce){_0x578383(_0x3c73ce);}}else if(_0x2b211a){_0x578383();}else{return _0x27469d[_0x6211('0x37')](0x193)['json']({'message':_0x6211('0x59')});}})[_0x6211('0x31')](function(_0x49aaa8,_0xab561d,_0x38e36d){if(_0x49aaa8[_0x6211('0x32')]){db[_0x6211('0x4b')][_0x6211('0x41')]({'where':{'id':_0x49aaa8[_0x6211('0x32')]['id']},'attributes':userAttributes})[_0x6211('0x36')](function(_0x312e38){if(!_0x312e38){return _0xab561d[_0x6211('0x37')](0x194)['json']({'message':_0x6211('0x5a')});}_0x49aaa8[_0x6211('0x32')]=_0x312e38;_0x38e36d();})[_0x6211('0x3c')](function(_0x580150){_0x38e36d(_0x580150);});}else if(_0x2b211a){_0x38e36d();}else{return _0xab561d[_0x6211('0x37')](0x194)[_0x6211('0x44')]({'message':_0x6211('0x5b')});}});};exports[_0x6211('0x5c')]=function canUpdate(){return compose()[_0x6211('0x31')](function(_0x595606,_0x53d20c,_0x1c85d4){return licenseUtil['getLicense']()[_0x6211('0x36')](function(_0x54ad61){if(_0x54ad61['update']){_0x1c85d4();}else{return _0x53d20c[_0x6211('0x37')](0x193)[_0x6211('0x44')]({'message':_0x6211('0x5d')});}})['catch'](function(_0x12c15b){_0x1c85d4(_0x12c15b);});});};exports[_0x6211('0x5e')]=function isWebrtcLicence(){return compose()[_0x6211('0x31')](function(_0x3ed2ff,_0x3eedc0,_0x4c7c9c){return licenseUtil[_0x6211('0x5f')]()[_0x6211('0x36')](function(_0x15b190){if(_0x15b190[_0x6211('0x60')]){_0x4c7c9c();}else{return _0x3eedc0['status'](0x193)['json']({'message':_0x6211('0x5d')});}})[_0x6211('0x3c')](function(_0x51f29a){_0x4c7c9c(_0x51f29a);});});};exports[_0x6211('0x61')]=function(_0x637845,_0x1702ce,_0x1407b7){_0x637845[_0x6211('0x61')]=!![];return _0x1407b7();};exports[_0x6211('0x62')]=function signToken(_0x248ee5){return signJwt(_0x248ee5);};exports['setTokenCookie']=function(_0x117851,_0x33ceb1){if(!_0x117851[_0x6211('0x32')]){return _0x33ceb1['status'](0x194)[_0x6211('0x44')]({'message':_0x6211('0x63')});}var _0xadc7c6={'payload':{'id':_0x117851[_0x6211('0x32')]['id'],'role':_0x117851[_0x6211('0x32')][_0x6211('0xc')]},'options':{'expiresIn':0x15180}};return signJwt(_0xadc7c6)[_0x6211('0x36')](function(_0x4b8deb){_0x33ceb1[_0x6211('0x64')](_0x6211('0x65'),_0x4b8deb);_0x33ceb1[_0x6211('0x66')]('/dashboards/general');})['catch'](function(_0x3b6bd3){return _0x33ceb1[_0x6211('0x37')](0x1f4)[_0x6211('0x67')](_0x3b6bd3);});};exports['retrieveApiKey']=function(_0x3dc83a){if(_[_0x6211('0x68')](_0x3dc83a[_0x6211('0x51')])||_[_0x6211('0x68')](_0x3dc83a[_0x6211('0x69')])){return null;}else{return createJwt(_0x3dc83a);}};exports[_0x6211('0x6a')]=function(_0x2c36d4){_0x2c36d4['apiKeyNonce']=generateNonce();_0x2c36d4[_0x6211('0x69')]=generateIssuedAt();return createJwt(_0x2c36d4);};exports[_0x6211('0x6b')]=function(_0x514b5c,_0xd1a531){var _0x12bc09=_0x514b5c[_0x6211('0x4a')][_0x6211('0x48')];if(_0x12bc09){var _0x3f0c65={'nonce':_0xd1a531[_0x6211('0x51')],'iat':_0xd1a531[_0x6211('0x69')],'audience':hardwareConf[_0x6211('0x49')](),'issuer':hardwareConf[_0x6211('0x49')]()};return verifyJwt(_0x12bc09,_0x3f0c65)[_0x6211('0x36')](function(){return generateApiKey(_0xd1a531);});}else{throw{'message':'Please\x20use\x20the\x20previous\x20API\x20access\x20key\x20to\x20generate\x20a\x20new\x20one'};}};exports[_0x6211('0x6c')]=function(_0x22eb06){var _0x187b78=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(!_0x187b78[_0x6211('0x6d')](_0x22eb06))throw new db[(_0x6211('0x6e'))][(_0x6211('0x6f'))](_0x6211('0x70'));return;};exports['validatePasswordHistory']=function(_0x132941,_0x276b3b,_0x4c8e82){var _0x3d1d0f=encryptor[_0x6211('0x71')](_0x276b3b)[_0x6211('0x72')](',');for(var _0x21d7fe=0x0;_0x21d7fe<_0x4c8e82;_0x21d7fe++){if(!_0x3d1d0f[_0x21d7fe])break;if(_0x132941[_0x6211('0x73')]()===_0x3d1d0f[_0x21d7fe][_0x6211('0x73')]()){var _0x12703b=util[_0x6211('0x74')]('The\x20password\x20must\x20be\x20different\x20from\x20the\x20previous\x20%d\x20passwords.\x20Please\x20choose\x20another\x20one.',_0x4c8e82);if(_0x4c8e82===0x1){_0x12703b=_0x6211('0x75');}throw new db[(_0x6211('0x6e'))][(_0x6211('0x6f'))](_0x12703b);}}return;};exports[_0x6211('0x76')]=function(_0x1ff74d,_0x1abec6){var _0x5b4553=_0x1abec6?encryptor[_0x6211('0x71')](_0x1abec6)['split'](','):[];if(_0x5b4553['length']===0x5){_0x5b4553[_0x6211('0x77')](-0x1,0x1);}_0x5b4553['unshift'](_0x1ff74d);return encryptor['encryptString'](_0x5b4553[_0x6211('0x78')](','));};function signJwt(_0x46d41d){var _0x59731a=BPromise[_0x6211('0x79')](jwt[_0x6211('0x7a')],{'context':jwt});var _0x2dc77a=_0x46d41d[_0x6211('0x7b')]||config[_0x6211('0xa')][_0x6211('0xb')];return new BPromise(function(_0x13790a,_0x39eb47){_0x59731a(_0x46d41d['payload'],_0x2dc77a,_0x46d41d['options'])[_0x6211('0x36')](function(_0x294085){_0x13790a(_0x294085);})['catch'](function(_0x107244){_0x39eb47(_0x107244);});});}function verifyJwt(_0x2819b5,_0x3efd4d,_0x4feca9){var _0x409e4b=BPromise[_0x6211('0x79')](jwt['verify'],{'context':jwt});var _0x50f9f6=_0x4feca9||config['secrets'][_0x6211('0xb')];return new BPromise(function(_0x5e3866,_0x18a6a8){_0x409e4b(_0x2819b5,_0x50f9f6,_0x3efd4d)[_0x6211('0x36')](function(_0x3933de){_0x5e3866(_0x3933de);})[_0x6211('0x3c')](function(_0x1ee522){_0x18a6a8(_0x1ee522);});});}function generateNonce(){return crypto[_0x6211('0x7c')](0x10)[_0x6211('0x7d')](_0x6211('0x7e'));}function generateIssuedAt(){return Math['floor'](Date[_0x6211('0x7f')]()/0x3e8)['toString']();}function createJwt(_0x109479){var _0x4804e6={'payload':{'iat':_0x109479[_0x6211('0x69')],'nonce':_0x109479['apiKeyNonce']},'options':{'algorithm':_0x6211('0x80'),'subject':_0x109479['id']['toString'](),'issuer':hardwareConf[_0x6211('0x49')](),'audience':hardwareConf[_0x6211('0x49')]()}};return signJwt(_0x4804e6)['then'](function(_0x5137d4){return{'iat':_0x109479['apiKeyIat'],'nonce':_0x109479[_0x6211('0x51')],'token':_0x5137d4};});}
\ No newline at end of file
+var _0x2271=['catch','headers','authorization','Basic','User','find','authenticate','pass','Wrong\x20credentials.','startsWith','Bearer','Unknown\x20authorization\x20format','query','apikey','getUuid','Setting','allowedLoginAttempts','apiKeyNonce','nonce','API\x20access\x20key\x20is\x20not\x20valid\x20anymore','disabled','blocked','blockDuration','blockedAt','add','minutes','Invalid\x20API\x20access\x20key','User\x20not\x20found.','canUpdate','getLicense','Forbidden','isWebrtcLicence','webrtc','isMiddleware','It\x20looks\x20like\x20you\x20aren\x27t\x20logged\x20in,\x20please\x20try\x20again.','role','cookie','motion.token','retrieveApiKey','isNil','generateApiKey','apiKeyIat','regenerateApiKey','Please\x20use\x20the\x20previous\x20API\x20access\x20key\x20to\x20generate\x20a\x20new\x20one','validatePasswordPattern','test','Sequelize','ValidationError','validatePasswordHistory','decryptString','split','format','The\x20password\x20must\x20be\x20different\x20from\x20the\x20last\x20one.\x20Please\x20choose\x20another\x20one.','length','unshift','promisify','sign','secret','secrets','session','payload','options','randomBytes','toString','hex','floor','now','../../mysqldb','../../config/license/hardware','../../config/license/util','../encryptor','lodash','jsonwebtoken','express-jwt','composable-middleware','basic-auth','crypto','bluebird','moment','fullname','name','internal','email','permissions','voicePause','chatPause','mailPause','pauseType','crudPermissions','passwordResetAt','alias','phoneBarAutoAnswer','phoneBarAutoAnswerDelay','phoneBarDnd','phoneBarEnableRecording','phoneBarEnableDtmfTone','phoneBarEnableSettings','phoneBarPrefixRequired','phoneBarRemoteControl','hotdesk','interface','privacyEnabled','wssPort','downloadOmnichannelInteractions','ignorePauseForPreviewCalls','selectRecallMeCampaign','isChatInteractionAuthorized','isAuthenticated','use','user','findOne','params','closed','disposition','then','status','json','unmanaged','Unmanaged.','Forbidden.'];(function(_0x32c443,_0x58feaa){var _0x172bd3=function(_0x39f5cf){while(--_0x39f5cf){_0x32c443['push'](_0x32c443['shift']());}};_0x172bd3(++_0x58feaa);}(_0x2271,0x133));var _0x1227=function(_0x77306,_0x401c6e){_0x77306=_0x77306-0x0;var _0x182426=_0x2271[_0x77306];return _0x182426;};'use strict';var db=require(_0x1227('0x0'))['db'];var config=require('../../config/environment');var hardwareConf=require(_0x1227('0x1'));var licenseUtil=require(_0x1227('0x2'));var encryptor=require(_0x1227('0x3'));var _=require(_0x1227('0x4'));var jwt=require(_0x1227('0x5'));var expressJwt=require(_0x1227('0x6'));var compose=require(_0x1227('0x7'));var basicAuth=require(_0x1227('0x8'));var crypto=require(_0x1227('0x9'));var BPromise=require(_0x1227('0xa'));var util=require('util');var moment=require(_0x1227('0xb'));var validateJwt=expressJwt({'secret':config['secrets']['session']});var userAttributes=['id','role',_0x1227('0xc'),_0x1227('0xd'),_0x1227('0xe'),_0x1227('0xf'),'userpic',_0x1227('0x10'),'md5secret',_0x1227('0x11'),_0x1227('0x12'),_0x1227('0x13'),'faxPause','smsPause','openchannelPause',_0x1227('0x14'),'showWebBar','lastLoginAt','lastPauseAt',_0x1227('0x15'),'allowmessenger',_0x1227('0x16'),_0x1227('0x17'),_0x1227('0x18'),_0x1227('0x19'),_0x1227('0x1a'),_0x1227('0x1b'),_0x1227('0x1c'),_0x1227('0x1d'),'phoneBarExpires',_0x1227('0x1e'),_0x1227('0x1f'),'phoneBarRemoteControlPort',_0x1227('0x20'),_0x1227('0x21'),'userProfileId',_0x1227('0x22'),'settingsEnabled',_0x1227('0x23'),'downloadVoiceRecordings',_0x1227('0x24'),'downloadAttachments',_0x1227('0x25'),_0x1227('0x26')];exports[_0x1227('0x27')]=function(){return this[_0x1227('0x28')](!![])[_0x1227('0x29')](function(_0x5098eb,_0x452764,_0x3cfbe4){if(_0x5098eb[_0x1227('0x2a')]){_0x3cfbe4();}else{return db['ChatInteraction'][_0x1227('0x2b')]({'where':{'id':_0x5098eb[_0x1227('0x2c')]['id']},'attributes':['id',_0x1227('0x2d'),_0x1227('0x2e')],'raw':!![]})[_0x1227('0x2f')](function(_0x10c8d2){if(_0x10c8d2&&_0x10c8d2[_0x1227('0x2d')]){return _0x452764[_0x1227('0x30')](_0x10c8d2[_0x1227('0x2e')]==='unmanaged'?0x195:0x193)[_0x1227('0x31')]({'message':_0x10c8d2[_0x1227('0x2e')]===_0x1227('0x32')?_0x1227('0x33'):_0x1227('0x34')});}else{_0x3cfbe4();}})[_0x1227('0x35')](function(_0x48ce17){_0x3cfbe4(_0x48ce17);});}});};exports[_0x1227('0x28')]=function isAuthenticated(_0x59757b){return compose()['use'](function(_0x434d36,_0xf1d6b3,_0x4d0432){var _0x1ce976;if(_0x434d36[_0x1227('0x36')][_0x1227('0x37')]){if(_['startsWith'](_0x434d36[_0x1227('0x36')][_0x1227('0x37')],_0x1227('0x38'))){var _0x2e7fba=basicAuth(_0x434d36);db[_0x1227('0x39')][_0x1227('0x3a')]({'where':{'name':_0x2e7fba['name']}})[_0x1227('0x2f')](function(_0x2f13a9){if(!_0x2f13a9||!_0x2f13a9[_0x1227('0x3b')](_0x2e7fba[_0x1227('0x3c')])){return _0xf1d6b3[_0x1227('0x30')](0x191)['json']({'message':_0x1227('0x3d')});}_0x434d36[_0x1227('0x2a')]={'id':_0x2f13a9['id']};_0x4d0432();})['catch'](function(_0x56094a){_0x4d0432(_0x56094a);});}else if(_[_0x1227('0x3e')](_0x434d36[_0x1227('0x36')][_0x1227('0x37')],_0x1227('0x3f'))){validateJwt(_0x434d36,_0xf1d6b3,_0x4d0432);}else{if(_0x59757b){_0x4d0432();}else{return _0xf1d6b3[_0x1227('0x30')](0x193)['json']({'message':_0x1227('0x40')});}}}else if(_0x434d36[_0x1227('0x41')][_0x1227('0x42')]){try{var _0x459fea={'audience':hardwareConf[_0x1227('0x43')](),'issuer':hardwareConf[_0x1227('0x43')]()};verifyJwt(_0x434d36[_0x1227('0x41')][_0x1227('0x42')],_0x459fea)[_0x1227('0x2f')](function(_0x19ee34){return db[_0x1227('0x39')][_0x1227('0x3a')]({'where':{'id':_0x19ee34['sub']}})[_0x1227('0x2f')](function(_0x46a601){_0x1ce976=_0x46a601;return db[_0x1227('0x44')]['findOne']({'where':{'id':0x1},'attributes':[_0x1227('0x45'),'blockDuration'],'raw':!![]});})[_0x1227('0x2f')](function(_0x2525be){if(!_0x1ce976||!_['isEqual'](_0x1ce976[_0x1227('0x46')],_0x19ee34[_0x1227('0x47')])){return _0xf1d6b3[_0x1227('0x30')](0x191)[_0x1227('0x31')]({'message':_0x1227('0x48')});}if(_0x1ce976[_0x1227('0x49')]){return _0xf1d6b3['status'](0x191)[_0x1227('0x31')]({'message':'Invalid\x20API\x20access\x20key'});}if(_0x1ce976[_0x1227('0x4a')]){if(_0x2525be[_0x1227('0x4b')]>0x0){if(moment(_0x1ce976[_0x1227('0x4c')])[_0x1227('0x4d')](_0x2525be[_0x1227('0x4b')],_0x1227('0x4e'))>moment()){return _0xf1d6b3['status'](0x191)[_0x1227('0x31')]({'message':_0x1227('0x4f')});}}else{return _0xf1d6b3[_0x1227('0x30')](0x191)['json']({'message':'Invalid\x20API\x20access\x20key'});}}_0x434d36[_0x1227('0x2a')]={'id':_0x1ce976['id']};_0x4d0432();});})['catch'](function(){return _0xf1d6b3['status'](0x191)[_0x1227('0x31')]({'message':_0x1227('0x4f')});});}catch(_0x49f082){_0x4d0432(_0x49f082);}}else if(_0x59757b){_0x4d0432();}else{return _0xf1d6b3['status'](0x193)['json']({'message':_0x1227('0x40')});}})['use'](function(_0x5e00c5,_0x282473,_0x2690f3){if(_0x5e00c5[_0x1227('0x2a')]){db[_0x1227('0x39')][_0x1227('0x3a')]({'where':{'id':_0x5e00c5[_0x1227('0x2a')]['id']},'attributes':userAttributes})['then'](function(_0x305f73){if(!_0x305f73){return _0x282473[_0x1227('0x30')](0x194)['json']({'message':_0x1227('0x50')});}_0x5e00c5['user']=_0x305f73;_0x2690f3();})['catch'](function(_0x91daee){_0x2690f3(_0x91daee);});}else if(_0x59757b){_0x2690f3();}else{return _0x282473[_0x1227('0x30')](0x194)[_0x1227('0x31')]({'message':'User\x20object\x20not\x20found.'});}});};exports[_0x1227('0x51')]=function canUpdate(){return compose()[_0x1227('0x29')](function(_0x471f44,_0x566c19,_0x3669c0){return licenseUtil[_0x1227('0x52')]()['then'](function(_0x16318c){if(_0x16318c['update']){_0x3669c0();}else{return _0x566c19[_0x1227('0x30')](0x193)[_0x1227('0x31')]({'message':_0x1227('0x53')});}})['catch'](function(_0x1e75eb){_0x3669c0(_0x1e75eb);});});};exports[_0x1227('0x54')]=function isWebrtcLicence(){return compose()[_0x1227('0x29')](function(_0x508f36,_0x9e8f16,_0x156d63){return licenseUtil['getLicense']()[_0x1227('0x2f')](function(_0x4d5d2d){if(_0x4d5d2d[_0x1227('0x55')]){_0x156d63();}else{return _0x9e8f16[_0x1227('0x30')](0x193)[_0x1227('0x31')]({'message':_0x1227('0x53')});}})[_0x1227('0x35')](function(_0x3db2bb){_0x156d63(_0x3db2bb);});});};exports['isMiddleware']=function(_0xa982d4,_0x48afe8,_0x21080e){_0xa982d4[_0x1227('0x56')]=!![];return _0x21080e();};exports['signToken']=function signToken(_0x370e60){return signJwt(_0x370e60);};exports['setTokenCookie']=function(_0x3aac00,_0x1c664a){if(!_0x3aac00['user']){return _0x1c664a[_0x1227('0x30')](0x194)['json']({'message':_0x1227('0x57')});}var _0x58f59b={'payload':{'id':_0x3aac00[_0x1227('0x2a')]['id'],'role':_0x3aac00[_0x1227('0x2a')][_0x1227('0x58')]},'options':{'expiresIn':0x15180}};return signJwt(_0x58f59b)[_0x1227('0x2f')](function(_0xbf4d9){_0x1c664a[_0x1227('0x59')](_0x1227('0x5a'),_0xbf4d9);_0x1c664a['redirect']('/dashboards/general');})[_0x1227('0x35')](function(_0x708d8e){return _0x1c664a[_0x1227('0x30')](0x1f4)['send'](_0x708d8e);});};exports[_0x1227('0x5b')]=function(_0x1ba566){if(_['isNil'](_0x1ba566[_0x1227('0x46')])||_[_0x1227('0x5c')](_0x1ba566['apiKeyIat'])){return null;}else{return createJwt(_0x1ba566);}};exports[_0x1227('0x5d')]=function(_0x20114b){_0x20114b[_0x1227('0x46')]=generateNonce();_0x20114b[_0x1227('0x5e')]=generateIssuedAt();return createJwt(_0x20114b);};exports[_0x1227('0x5f')]=function(_0x20f821,_0x46cf48){var _0x384d68=_0x20f821['query'][_0x1227('0x42')];if(_0x384d68){var _0x1c02a1={'nonce':_0x46cf48['apiKeyNonce'],'iat':_0x46cf48[_0x1227('0x5e')],'audience':hardwareConf[_0x1227('0x43')](),'issuer':hardwareConf[_0x1227('0x43')]()};return verifyJwt(_0x384d68,_0x1c02a1)[_0x1227('0x2f')](function(){return generateApiKey(_0x46cf48);});}else{throw{'message':_0x1227('0x60')};}};exports[_0x1227('0x61')]=function(_0xfc79d3){var _0x3da63b=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(!_0x3da63b[_0x1227('0x62')](_0xfc79d3))throw new db[(_0x1227('0x63'))][(_0x1227('0x64'))]('The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.');return;};exports[_0x1227('0x65')]=function(_0x155d8f,_0x2320a3,_0x5e76c7){var _0x4410c3=encryptor[_0x1227('0x66')](_0x2320a3)[_0x1227('0x67')](',');for(var _0x3b1be8=0x0;_0x3b1be8<_0x5e76c7;_0x3b1be8++){if(!_0x4410c3[_0x3b1be8])break;if(_0x155d8f['toLowerCase']()===_0x4410c3[_0x3b1be8]['toLowerCase']()){var _0x2d1bd1=util[_0x1227('0x68')]('The\x20password\x20must\x20be\x20different\x20from\x20the\x20previous\x20%d\x20passwords.\x20Please\x20choose\x20another\x20one.',_0x5e76c7);if(_0x5e76c7===0x1){_0x2d1bd1=_0x1227('0x69');}throw new db[(_0x1227('0x63'))][(_0x1227('0x64'))](_0x2d1bd1);}}return;};exports['updatePasswordsHistory']=function(_0x3bdad1,_0x8a7664){var _0x2e9900=_0x8a7664?encryptor[_0x1227('0x66')](_0x8a7664)[_0x1227('0x67')](','):[];if(_0x2e9900[_0x1227('0x6a')]===0x5){_0x2e9900['splice'](-0x1,0x1);}_0x2e9900[_0x1227('0x6b')](_0x3bdad1);return encryptor['encryptString'](_0x2e9900['join'](','));};function signJwt(_0x534ec8){var _0x232f94=BPromise[_0x1227('0x6c')](jwt[_0x1227('0x6d')],{'context':jwt});var _0x26b487=_0x534ec8[_0x1227('0x6e')]||config[_0x1227('0x6f')][_0x1227('0x70')];return new BPromise(function(_0xac6cd6,_0x484566){_0x232f94(_0x534ec8[_0x1227('0x71')],_0x26b487,_0x534ec8[_0x1227('0x72')])[_0x1227('0x2f')](function(_0x487032){_0xac6cd6(_0x487032);})[_0x1227('0x35')](function(_0x2e8117){_0x484566(_0x2e8117);});});}function verifyJwt(_0x83e54f,_0x185082,_0x3dd560){var _0xf1affa=BPromise[_0x1227('0x6c')](jwt['verify'],{'context':jwt});var _0xbbc1be=_0x3dd560||config[_0x1227('0x6f')][_0x1227('0x70')];return new BPromise(function(_0x1a2206,_0x5cc4e8){_0xf1affa(_0x83e54f,_0xbbc1be,_0x185082)[_0x1227('0x2f')](function(_0x2bfc37){_0x1a2206(_0x2bfc37);})[_0x1227('0x35')](function(_0x14dfe3){_0x5cc4e8(_0x14dfe3);});});}function generateNonce(){return crypto[_0x1227('0x73')](0x10)[_0x1227('0x74')](_0x1227('0x75'));}function generateIssuedAt(){return Math[_0x1227('0x76')](Date[_0x1227('0x77')]()/0x3e8)['toString']();}function createJwt(_0x2c7aea){var _0x2aec8c={'payload':{'iat':_0x2c7aea[_0x1227('0x5e')],'nonce':_0x2c7aea['apiKeyNonce']},'options':{'algorithm':'HS512','subject':_0x2c7aea['id'][_0x1227('0x74')](),'issuer':hardwareConf[_0x1227('0x43')](),'audience':hardwareConf[_0x1227('0x43')]()}};return signJwt(_0x2aec8c)[_0x1227('0x2f')](function(_0xbcc987){return{'iat':_0x2c7aea[_0x1227('0x5e')],'nonce':_0x2c7aea[_0x1227('0x46')],'token':_0xbcc987};});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb055=['decryptString','bluebird','lodash','../../config/environment','../../config/logger','app','secrets','session','encrypt','algorithm','join','error','is\x20not\x20a\x20supported\x20algorithm.\x20Your\x20system\x20supports\x20the\x20following\x20algorithms:','test','getCiphers','filter','hasOwnProperty','createReadStream','createWriteStream','createCipher','data','binary','write','end','final','close','unlink','createDecipher','encryptString','secret','update','utf8','base64'];(function(_0x5bf122,_0x27987e){var _0x4dd339=function(_0x32293a){while(--_0x32293a){_0x5bf122['push'](_0x5bf122['shift']());}};_0x4dd339(++_0x27987e);}(_0xb055,0x1ae));var _0x5b05=function(_0xb1313b,_0x12a79b){_0xb1313b=_0xb1313b-0x0;var _0x2ba7e6=_0xb055[_0xb1313b];return _0x2ba7e6;};'use strict';var crypto=require('crypto');var fs=require('fs');var BPromise=require(_0x5b05('0x0'));var _=require(_0x5b05('0x1'));var config=require(_0x5b05('0x2'));var logger=require(_0x5b05('0x3'))(_0x5b05('0x4'));const AES_SUPPORTED_RX=/^aes(-)?\d{3}(-(cbc|cfb|ctr)(1|8)?){0,1}$/;const stringOptions={'secret':config[_0x5b05('0x5')][_0x5b05('0x6')],'algorithm':'aes-256-ctr'};const fileOptions={'algorithm':'aes192'};if(config[_0x5b05('0x7')]&&config['encrypt'][_0x5b05('0x8')]){var isSupported=isAlgorithmSupported(config[_0x5b05('0x7')][_0x5b05('0x8')]);if(isSupported){fileOptions[_0x5b05('0x8')]=config[_0x5b05('0x7')][_0x5b05('0x8')];}else{var supportedAlgorithms=getSupportedCiphers()[_0x5b05('0x9')](',\x20');logger[_0x5b05('0xa')](config[_0x5b05('0x7')][_0x5b05('0x8')],_0x5b05('0xb'),supportedAlgorithms);}}function isASupportedCipher(_0x4edbe7){return AES_SUPPORTED_RX[_0x5b05('0xc')](_0x4edbe7);}function getSupportedCiphers(){return crypto[_0x5b05('0xd')]()[_0x5b05('0xe')](isASupportedCipher);}function isAlgorithmSupported(_0x103308){return getSupportedCiphers()['indexOf'](_0x103308)>-0x1;}function combineOptions(_0x5eb7e9){var _0x1bbf8a={};for(var _0x1095e9 in fileOptions){if(fileOptions['hasOwnProperty'](_0x1095e9)){_0x1bbf8a[_0x1095e9]=fileOptions[_0x1095e9];}}if(_0x5eb7e9){for(var _0x342ae8 in _0x5eb7e9){if(_0x5eb7e9[_0x5b05('0xf')](_0x342ae8)){_0x1bbf8a[_0x342ae8]=_0x5eb7e9[_0x342ae8];}}}return _0x1bbf8a;}exports['encryptFile']=function(_0x2852fa,_0x4c8946,_0x49a5b6,_0x51f1e5){return new BPromise(function(_0x53212b,_0x1a82dd){_0x51f1e5=combineOptions(_0x51f1e5);var _0x355e45=new Buffer(_0x49a5b6);var _0x2b5e25=fs[_0x5b05('0x10')](_0x2852fa);var _0x118159=fs[_0x5b05('0x11')](_0x4c8946);var _0x2a19e7=crypto[_0x5b05('0x12')](_0x51f1e5[_0x5b05('0x8')],_0x355e45);_0x2b5e25['on'](_0x5b05('0x13'),function(_0x5669aa){var _0x38045e=new Buffer(_0x2a19e7['update'](_0x5669aa),_0x5b05('0x14'));_0x118159[_0x5b05('0x15')](_0x38045e);});_0x2b5e25['on'](_0x5b05('0x16'),function(){try{var _0x5414d0=new Buffer(_0x2a19e7[_0x5b05('0x17')](_0x5b05('0x14')),_0x5b05('0x14'));_0x118159['write'](_0x5414d0);_0x118159[_0x5b05('0x16')]();_0x118159['on'](_0x5b05('0x18'),function(){return _0x53212b(_0x4c8946);});}catch(_0x5aaf33){fs[_0x5b05('0x19')](_0x4c8946);return _0x1a82dd(_0x5aaf33);}});});};exports['decryptFile']=function(_0x6d2387,_0x327d9e,_0x382e3f,_0x43550f){return new BPromise(function(_0x3a5061,_0x325027){_0x43550f=combineOptions(_0x43550f);var _0x5a11ae=new Buffer(_0x382e3f);var _0x4dae52=fs[_0x5b05('0x10')](_0x6d2387);var _0x1da99a=fs[_0x5b05('0x11')](_0x327d9e);var _0x4fe453=crypto[_0x5b05('0x1a')](_0x43550f[_0x5b05('0x8')],_0x5a11ae);_0x4dae52['on'](_0x5b05('0x13'),function(_0x5829ed){var _0xfcc574=new Buffer(_0x4fe453['update'](_0x5829ed),'binary');_0x1da99a[_0x5b05('0x15')](_0xfcc574);});_0x4dae52['on']('end',function(){try{var _0x4daa00=new Buffer(_0x4fe453[_0x5b05('0x17')](_0x5b05('0x14')),_0x5b05('0x14'));_0x1da99a[_0x5b05('0x15')](_0x4daa00);_0x1da99a[_0x5b05('0x16')]();_0x1da99a['on']('close',function(){return _0x3a5061(_0x327d9e);});}catch(_0x469837){fs[_0x5b05('0x19')](_0x327d9e);return _0x325027(_0x469837);}});});};exports[_0x5b05('0x1b')]=function(_0x43b6b9,_0x4a6ea4,_0x1d5104){var _0x577853=_0x1d5104||stringOptions['algorithm'];var _0x42a833=_0x4a6ea4||stringOptions[_0x5b05('0x1c')];var _0x3f28b3=crypto[_0x5b05('0x12')](_0x577853,_0x42a833);var _0x27af69=_0x3f28b3[_0x5b05('0x1d')](_0x43b6b9,_0x5b05('0x1e'),_0x5b05('0x1f'));_0x27af69+=_0x3f28b3[_0x5b05('0x17')](_0x5b05('0x1f'));return _0x27af69;};exports[_0x5b05('0x20')]=function(_0x569a38,_0x424ffc,_0xb95a62){var _0x2bffd8=_0xb95a62||stringOptions[_0x5b05('0x8')];var _0x165743=_0x424ffc||stringOptions[_0x5b05('0x1c')];var _0x2fb31c=crypto[_0x5b05('0x1a')](_0x2bffd8,_0x165743);var _0x56ef50=_0x2fb31c['update'](_0x569a38,_0x5b05('0x1f'),_0x5b05('0x1e'));_0x56ef50+=_0x2fb31c[_0x5b05('0x17')](_0x5b05('0x1e'));return _0x56ef50;};
\ No newline at end of file
+var _0xe8b1=['aes192','encrypt','algorithm','join','is\x20not\x20a\x20supported\x20algorithm.\x20Your\x20system\x20supports\x20the\x20following\x20algorithms:','test','getCiphers','filter','indexOf','hasOwnProperty','encryptFile','createWriteStream','data','binary','final','write','end','close','unlink','decryptFile','createDecipher','update','secret','createCipher','utf8','base64','decryptString','crypto','lodash','../../config/environment','../../config/logger','app','session','aes-256-ctr'];(function(_0x2582af,_0x3409f7){var _0x38c9c6=function(_0x2695e4){while(--_0x2695e4){_0x2582af['push'](_0x2582af['shift']());}};_0x38c9c6(++_0x3409f7);}(_0xe8b1,0xc5));var _0x1e8b=function(_0x26f1c4,_0x2bbc6a){_0x26f1c4=_0x26f1c4-0x0;var _0x393a70=_0xe8b1[_0x26f1c4];return _0x393a70;};'use strict';var crypto=require(_0x1e8b('0x0'));var fs=require('fs');var BPromise=require('bluebird');var _=require(_0x1e8b('0x1'));var config=require(_0x1e8b('0x2'));var logger=require(_0x1e8b('0x3'))(_0x1e8b('0x4'));const AES_SUPPORTED_RX=/^aes(-)?\d{3}(-(cbc|cfb|ctr)(1|8)?){0,1}$/;const stringOptions={'secret':config['secrets'][_0x1e8b('0x5')],'algorithm':_0x1e8b('0x6')};const fileOptions={'algorithm':_0x1e8b('0x7')};if(config[_0x1e8b('0x8')]&&config[_0x1e8b('0x8')][_0x1e8b('0x9')]){var isSupported=isAlgorithmSupported(config[_0x1e8b('0x8')][_0x1e8b('0x9')]);if(isSupported){fileOptions['algorithm']=config[_0x1e8b('0x8')][_0x1e8b('0x9')];}else{var supportedAlgorithms=getSupportedCiphers()[_0x1e8b('0xa')](',\x20');logger['error'](config[_0x1e8b('0x8')][_0x1e8b('0x9')],_0x1e8b('0xb'),supportedAlgorithms);}}function isASupportedCipher(_0x9794b){return AES_SUPPORTED_RX[_0x1e8b('0xc')](_0x9794b);}function getSupportedCiphers(){return crypto[_0x1e8b('0xd')]()[_0x1e8b('0xe')](isASupportedCipher);}function isAlgorithmSupported(_0x353ffa){return getSupportedCiphers()[_0x1e8b('0xf')](_0x353ffa)>-0x1;}function combineOptions(_0x5a1925){var _0x4e462e={};for(var _0x358565 in fileOptions){if(fileOptions[_0x1e8b('0x10')](_0x358565)){_0x4e462e[_0x358565]=fileOptions[_0x358565];}}if(_0x5a1925){for(var _0x4af628 in _0x5a1925){if(_0x5a1925['hasOwnProperty'](_0x4af628)){_0x4e462e[_0x4af628]=_0x5a1925[_0x4af628];}}}return _0x4e462e;}exports[_0x1e8b('0x11')]=function(_0x586351,_0x356b54,_0x174f84,_0x227eb9){return new BPromise(function(_0x2b6220,_0x4ad3f4){_0x227eb9=combineOptions(_0x227eb9);var _0x554471=new Buffer(_0x174f84);var _0x10e14c=fs['createReadStream'](_0x586351);var _0x25d434=fs[_0x1e8b('0x12')](_0x356b54);var _0xbd8993=crypto['createCipher'](_0x227eb9['algorithm'],_0x554471);_0x10e14c['on'](_0x1e8b('0x13'),function(_0x433e71){var _0x8df889=new Buffer(_0xbd8993['update'](_0x433e71),_0x1e8b('0x14'));_0x25d434['write'](_0x8df889);});_0x10e14c['on']('end',function(){try{var _0x42b742=new Buffer(_0xbd8993[_0x1e8b('0x15')]('binary'),_0x1e8b('0x14'));_0x25d434[_0x1e8b('0x16')](_0x42b742);_0x25d434[_0x1e8b('0x17')]();_0x25d434['on'](_0x1e8b('0x18'),function(){return _0x2b6220(_0x356b54);});}catch(_0x2fbf7f){fs[_0x1e8b('0x19')](_0x356b54);return _0x4ad3f4(_0x2fbf7f);}});});};exports[_0x1e8b('0x1a')]=function(_0x285930,_0x4e175c,_0x306c8c,_0x919f1b){return new BPromise(function(_0x308a77,_0xf6b5){_0x919f1b=combineOptions(_0x919f1b);var _0x2ef9b4=new Buffer(_0x306c8c);var _0x1cd28b=fs['createReadStream'](_0x285930);var _0x581733=fs[_0x1e8b('0x12')](_0x4e175c);var _0x28bb22=crypto[_0x1e8b('0x1b')](_0x919f1b[_0x1e8b('0x9')],_0x2ef9b4);_0x1cd28b['on'](_0x1e8b('0x13'),function(_0x39d093){var _0x5d3e76=new Buffer(_0x28bb22[_0x1e8b('0x1c')](_0x39d093),_0x1e8b('0x14'));_0x581733[_0x1e8b('0x16')](_0x5d3e76);});_0x1cd28b['on'](_0x1e8b('0x17'),function(){try{var _0x59758f=new Buffer(_0x28bb22[_0x1e8b('0x15')](_0x1e8b('0x14')),_0x1e8b('0x14'));_0x581733[_0x1e8b('0x16')](_0x59758f);_0x581733[_0x1e8b('0x17')]();_0x581733['on']('close',function(){return _0x308a77(_0x4e175c);});}catch(_0x2670ac){fs[_0x1e8b('0x19')](_0x4e175c);return _0xf6b5(_0x2670ac);}});});};exports['encryptString']=function(_0x5d1091,_0x2aa7b8,_0x55ade5){var _0x2cf2e5=_0x55ade5||stringOptions[_0x1e8b('0x9')];var _0x33efdf=_0x2aa7b8||stringOptions[_0x1e8b('0x1d')];var _0x55014c=crypto[_0x1e8b('0x1e')](_0x2cf2e5,_0x33efdf);var _0x1f8b03=_0x55014c['update'](_0x5d1091,_0x1e8b('0x1f'),_0x1e8b('0x20'));_0x1f8b03+=_0x55014c[_0x1e8b('0x15')](_0x1e8b('0x20'));return _0x1f8b03;};exports[_0x1e8b('0x21')]=function(_0x375d11,_0x120ffe,_0x5a6faa){var _0x41f170=_0x5a6faa||stringOptions['algorithm'];var _0x2b2539=_0x120ffe||stringOptions[_0x1e8b('0x1d')];var _0x18565d=crypto['createDecipher'](_0x41f170,_0x2b2539);var _0x1a5e8a=_0x18565d[_0x1e8b('0x1c')](_0x375d11,_0x1e8b('0x20'),'utf8');_0x1a5e8a+=_0x18565d[_0x1e8b('0x15')](_0x1e8b('0x1f'));return _0x1a5e8a;};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2841=['num','Empty','range','forEach','push','%s\x20limit\x20%d\x20OFFSET\x20%d','dirname','basename','.csv','existsSync','join','mkdirSync','length','csv','%s.%s','zip','zip\x20finished','CSV','inspect','Failed','finally','exit','path','lodash','to-csv','bluebird','zip-dir','../../mysqldb','dbH','../../config/logger','analytics','argv','savename','update','info','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','Setting','split','then','sequelize','query','QueryTypes','SELECT'];(function(_0x30b4ce,_0x365fe7){var _0x29c284=function(_0x524dec){while(--_0x524dec){_0x30b4ce['push'](_0x30b4ce['shift']());}};_0x29c284(++_0x365fe7);}(_0x2841,0x11e));var _0x1284=function(_0x467488,_0x38c7ae){_0x467488=_0x467488-0x0;var _0x56107f=_0x2841[_0x467488];return _0x56107f;};'use strict';var util=require('util');var path=require(_0x1284('0x0'));var _=require(_0x1284('0x1'));var csv=require(_0x1284('0x2'));var fs=require('fs');var BPromise=require(_0x1284('0x3'));var zipdir=require(_0x1284('0x4'));var rimraf=require('rimraf');var db=require(_0x1284('0x5'))['db'];var dbH=require('../../mysqldb')[_0x1284('0x6')];var logger=require(_0x1284('0x7'))(_0x1284('0x8'));var EXTRACTED_REPORT_ID=Number(process['argv'][0x2]);var QUERY=process[_0x1284('0x9')][0x3];var PATH=process['argv'][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x3d0833,_0xc2ca45){var _0x4ec489={'status':_0x3d0833};var _0x3b9921={'where':{'id':EXTRACTED_REPORT_ID}};if(_0xc2ca45){_0x4ec489[_0x1284('0xa')]=_0xc2ca45;}return db['AnalyticExtractedReport'][_0x1284('0xb')](_0x4ec489,_0x3b9921);}function main(){var _0xf22bf=0x1388;var _0x59a94b;logger[_0x1284('0xc')](util[_0x1284('0xd')](_0x1284('0xe'),EXTRACTED_REPORT_ID,'CSV'));return db[_0x1284('0xf')]['find']({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x1284('0x10'),'splitSizeCsv']})[_0x1284('0x11')](function(_0x75c75d){if(_0x75c75d){_0x59a94b=_0x75c75d;_0xf22bf=_0x59a94b['splitSizeCsv']||0x1388;}})[_0x1284('0x11')](function(){return dbH[_0x1284('0x12')][_0x1284('0x13')](util[_0x1284('0xd')]('SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t',QUERY),{'type':dbH['sequelize'][_0x1284('0x14')][_0x1284('0x15')]});})[_0x1284('0x11')](function(_0x1af06f){if(!_0x1af06f[0x0][_0x1284('0x16')]){return analyticExtractedReport(_0x1284('0x17'));}var _0x2717ba=[];var _0x56300a=0x0;if(_0x59a94b['split']){if(_0x1af06f&&_0x1af06f['length']){var _0x95b960=_[_0x1284('0x18')](_0x1af06f[0x0]['num']/_0xf22bf);var _0x37469c=Number['isInteger'](_0x1af06f[0x0][_0x1284('0x16')]/_0xf22bf)?_0x1af06f[0x0][_0x1284('0x16')]%_0xf22bf:0x0;_0x95b960[_0x1284('0x19')](function(_0x3406b4){if(_0x3406b4>0x0){_0x56300a+=_0xf22bf;}_0x2717ba[_0x1284('0x1a')](dbH[_0x1284('0x12')][_0x1284('0x13')](util[_0x1284('0xd')](_0x1284('0x1b'),QUERY,_0xf22bf,_0x56300a),{'type':dbH['sequelize'][_0x1284('0x14')][_0x1284('0x15')]}));});if(_0x37469c>0x0){_0x56300a+=_0xf22bf;_0x2717ba['push'](dbH[_0x1284('0x12')][_0x1284('0x13')](util[_0x1284('0xd')](_0x1284('0x1b'),QUERY,_0x37469c,_0x56300a),{'type':dbH[_0x1284('0x12')][_0x1284('0x14')][_0x1284('0x15')]}));}}}else{_0x2717ba['push'](dbH[_0x1284('0x12')]['query'](QUERY,{'type':dbH[_0x1284('0x12')][_0x1284('0x14')][_0x1284('0x15')]}));}var _0x41b1f3=path[_0x1284('0x1c')](PATH);var _0x3368b4=path[_0x1284('0x1d')](PATH,_0x1284('0x1e'));var _0x4f6fb1=_0x59a94b[_0x1284('0x10')]&&_0x2717ba['length']>0x1;var _0x50a1b2=[];if(!fs[_0x1284('0x1f')](path[_0x1284('0x20')](_0x41b1f3,_0x3368b4))&&_0x4f6fb1){fs[_0x1284('0x21')](path['join'](_0x41b1f3,_0x3368b4));}return BPromise['each'](_0x2717ba,function(_0x16d887){_0x50a1b2[_0x1284('0x1a')](_0x16d887);})['then'](function(){for(var _0x5efc68=0x0;_0x5efc68<_0x50a1b2[_0x1284('0x22')];_0x5efc68+=0x1){var _0x1f9692;var _0x25d9f0=_0x50a1b2[_0x5efc68];if(_0x4f6fb1){_0x1f9692=path[_0x1284('0x20')](_0x41b1f3,_0x3368b4,util['format']('%s%d.%s',_0x3368b4,_0x5efc68,_0x1284('0x23')));}else{_0x1f9692=path[_0x1284('0x20')](_0x41b1f3,util['format'](_0x1284('0x24'),_0x3368b4,'csv'));}fs['writeFileSync'](_0x1f9692,csv(_0x25d9f0));}})['then'](function(){if(_0x4f6fb1){return new Promise(function(_0x43c59f){zipdir(path['join'](_0x41b1f3,_0x3368b4),{'saveTo':path['join'](_0x41b1f3,util[_0x1284('0xd')](_0x1284('0x24'),_0x3368b4,_0x1284('0x25')))},function(_0x1a8fa2,_0x155e3f){rimraf(path[_0x1284('0x20')](_0x41b1f3,_0x3368b4),function(){});_0x43c59f(_0x1284('0x26'));});});}})[_0x1284('0x11')](function(){logger[_0x1284('0xc')](util['format']('Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed',EXTRACTED_REPORT_ID,'CSV'));return analyticExtractedReport('Completed',_0x4f6fb1?util[_0x1284('0xd')]('%s.%s',_0x3368b4,_0x4f6fb1?'zip':_0x1284('0x23')):null);});})['catch'](function(_0x47abd6){logger[_0x1284('0xc')](util['format']('Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0x1284('0x27')),util[_0x1284('0x28')](_0x47abd6,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x1284('0x29'));})[_0x1284('0x2a')](function(){process[_0x1284('0x2b')](EXIT_CODE);});}main();
\ No newline at end of file
+var _0x4ab9=['mkdirSync','each','%s%d.%s','csv','writeFileSync','%s.%s','zip','zip\x20finished','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','Completed','catch','inspect','Failed','finally','exit','util','path','lodash','to-csv','bluebird','zip-dir','rimraf','../../mysqldb','dbH','analytics','argv','savename','AnalyticExtractedReport','info','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','CSV','Setting','find','split','splitSizeCsv','then','query','format','sequelize','QueryTypes','SELECT','Empty','num','isInteger','forEach','%s\x20limit\x20%d\x20OFFSET\x20%d','push','basename','.csv','length','existsSync','join'];(function(_0x4ed520,_0x21be63){var _0x4415a6=function(_0x14b151){while(--_0x14b151){_0x4ed520['push'](_0x4ed520['shift']());}};_0x4415a6(++_0x21be63);}(_0x4ab9,0x1e3));var _0x94ab=function(_0x19950b,_0x53d0d7){_0x19950b=_0x19950b-0x0;var _0x3c6b41=_0x4ab9[_0x19950b];return _0x3c6b41;};'use strict';var util=require(_0x94ab('0x0'));var path=require(_0x94ab('0x1'));var _=require(_0x94ab('0x2'));var csv=require(_0x94ab('0x3'));var fs=require('fs');var BPromise=require(_0x94ab('0x4'));var zipdir=require(_0x94ab('0x5'));var rimraf=require(_0x94ab('0x6'));var db=require('../../mysqldb')['db'];var dbH=require(_0x94ab('0x7'))[_0x94ab('0x8')];var logger=require('../../config/logger')(_0x94ab('0x9'));var EXTRACTED_REPORT_ID=Number(process['argv'][0x2]);var QUERY=process[_0x94ab('0xa')][0x3];var PATH=process['argv'][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x571b1f,_0x46dee6){var _0x407aac={'status':_0x571b1f};var _0x94a4db={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x46dee6){_0x407aac[_0x94ab('0xb')]=_0x46dee6;}return db[_0x94ab('0xc')]['update'](_0x407aac,_0x94a4db);}function main(){var _0x506c64=0x1388;var _0x1ea365;logger[_0x94ab('0xd')](util['format'](_0x94ab('0xe'),EXTRACTED_REPORT_ID,_0x94ab('0xf')));return db[_0x94ab('0x10')][_0x94ab('0x11')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0x94ab('0x12'),_0x94ab('0x13')]})[_0x94ab('0x14')](function(_0x5bb0d0){if(_0x5bb0d0){_0x1ea365=_0x5bb0d0;_0x506c64=_0x1ea365[_0x94ab('0x13')]||0x1388;}})['then'](function(){return dbH['sequelize'][_0x94ab('0x15')](util[_0x94ab('0x16')]('SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t',QUERY),{'type':dbH[_0x94ab('0x17')][_0x94ab('0x18')][_0x94ab('0x19')]});})['then'](function(_0x52d585){if(!_0x52d585[0x0]['num']){return analyticExtractedReport(_0x94ab('0x1a'));}var _0x3b05b1=[];var _0x56532e=0x0;if(_0x1ea365['split']){if(_0x52d585&&_0x52d585['length']){var _0x397ed0=_['range'](_0x52d585[0x0][_0x94ab('0x1b')]/_0x506c64);var _0x337be4=Number[_0x94ab('0x1c')](_0x52d585[0x0][_0x94ab('0x1b')]/_0x506c64)?_0x52d585[0x0][_0x94ab('0x1b')]%_0x506c64:0x0;_0x397ed0[_0x94ab('0x1d')](function(_0x54a402){if(_0x54a402>0x0){_0x56532e+=_0x506c64;}_0x3b05b1['push'](dbH['sequelize'][_0x94ab('0x15')](util[_0x94ab('0x16')](_0x94ab('0x1e'),QUERY,_0x506c64,_0x56532e),{'type':dbH[_0x94ab('0x17')][_0x94ab('0x18')][_0x94ab('0x19')]}));});if(_0x337be4>0x0){_0x56532e+=_0x506c64;_0x3b05b1[_0x94ab('0x1f')](dbH[_0x94ab('0x17')][_0x94ab('0x15')](util['format'](_0x94ab('0x1e'),QUERY,_0x337be4,_0x56532e),{'type':dbH[_0x94ab('0x17')]['QueryTypes']['SELECT']}));}}}else{_0x3b05b1[_0x94ab('0x1f')](dbH[_0x94ab('0x17')][_0x94ab('0x15')](QUERY,{'type':dbH[_0x94ab('0x17')][_0x94ab('0x18')][_0x94ab('0x19')]}));}var _0x28e752=path['dirname'](PATH);var _0x54e89c=path[_0x94ab('0x20')](PATH,_0x94ab('0x21'));var _0x1ce272=_0x1ea365[_0x94ab('0x12')]&&_0x3b05b1[_0x94ab('0x22')]>0x1;var _0x10c725=[];if(!fs[_0x94ab('0x23')](path[_0x94ab('0x24')](_0x28e752,_0x54e89c))&&_0x1ce272){fs[_0x94ab('0x25')](path[_0x94ab('0x24')](_0x28e752,_0x54e89c));}return BPromise[_0x94ab('0x26')](_0x3b05b1,function(_0x5a5676){_0x10c725[_0x94ab('0x1f')](_0x5a5676);})['then'](function(){for(var _0x2a8b07=0x0;_0x2a8b07<_0x10c725[_0x94ab('0x22')];_0x2a8b07+=0x1){var _0x3a8ce0;var _0x19b319=_0x10c725[_0x2a8b07];if(_0x1ce272){_0x3a8ce0=path[_0x94ab('0x24')](_0x28e752,_0x54e89c,util['format'](_0x94ab('0x27'),_0x54e89c,_0x2a8b07,_0x94ab('0x28')));}else{_0x3a8ce0=path[_0x94ab('0x24')](_0x28e752,util['format']('%s.%s',_0x54e89c,_0x94ab('0x28')));}fs[_0x94ab('0x29')](_0x3a8ce0,csv(_0x19b319));}})[_0x94ab('0x14')](function(){if(_0x1ce272){return new Promise(function(_0x9cb7fa){zipdir(path[_0x94ab('0x24')](_0x28e752,_0x54e89c),{'saveTo':path[_0x94ab('0x24')](_0x28e752,util['format'](_0x94ab('0x2a'),_0x54e89c,_0x94ab('0x2b')))},function(_0xdbcb83,_0x5161df){rimraf(path[_0x94ab('0x24')](_0x28e752,_0x54e89c),function(){});_0x9cb7fa(_0x94ab('0x2c'));});});}})[_0x94ab('0x14')](function(){logger[_0x94ab('0xd')](util[_0x94ab('0x16')](_0x94ab('0x2d'),EXTRACTED_REPORT_ID,'CSV'));return analyticExtractedReport(_0x94ab('0x2e'),_0x1ce272?util['format'](_0x94ab('0x2a'),_0x54e89c,_0x1ce272?'zip':_0x94ab('0x28')):null);});})[_0x94ab('0x2f')](function(_0x1a4e7c){logger[_0x94ab('0xd')](util[_0x94ab('0x16')]('Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0x94ab('0xf')),util[_0x94ab('0x30')](_0x1a4e7c,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x94ab('0x31'));})[_0x94ab('0x32')](function(){process[_0x94ab('0x33')](EXIT_CODE);});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xda8c=['window','../../mysqldb','dbH','../../config/logger','analytics','argv','AnalyticExtractedReport','map','pick','length','auto','push','body','concat','chunk','forEach','Name:\x20%s\x0aReport:\x20%s\x0aFrom:\x20%s\x20To:\x20%s','name','startDate','format','header','pageBreak','before','margin','landscape','\x20/\x20','footer','Setting','find','split','then','splitSizePdf','range','num','sequelize','query','QueryTypes','SELECT','dirname','basename','.pdf','existsSync','join','mkdirSync','flatten','createPdfKitDocument','%s%d.%s','%s.%s','pdf','zip','zip\x20finished','info','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','PDF','findOne','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','Failed','finally','exit','/fonts/arial-regular.ttf','/fonts/arial-italic.ttf','/fonts/arial-bold-italic.ttf','%s\x20#%d','channel','interactionId','toString','Arial','center','\x09\x09XCALLY\x20Motion\x20-\x20%s\x09\x09\x09\x09%d/%d\x09\x09\x09\x09%s','createWriteStream','finish','end','createPdfFromHTML','lodash','path','moment','pdfmake/src/printer','jsdom'];(function(_0x231f3b,_0x3dc582){var _0x570e94=function(_0x4bf84e){while(--_0x4bf84e){_0x231f3b['push'](_0x231f3b['shift']());}};_0x570e94(++_0x3dc582);}(_0xda8c,0x13b));var _0xcda8=function(_0x5227d2,_0x3a953c){_0x5227d2=_0x5227d2-0x0;var _0x5e6530=_0xda8c[_0x5227d2];return _0x5e6530;};'use strict';var _=require(_0xcda8('0x0'));var fs=require('fs');var util=require('util');var path=require(_0xcda8('0x1'));var moment=require(_0xcda8('0x2'));var htmlToPdfmake=require('html-to-pdfmake');var PdfPrinter=require(_0xcda8('0x3'));var zipdir=require('zip-dir');var rimraf=require('rimraf');var JSDOM=require(_0xcda8('0x4'))['JSDOM'];var window=new JSDOM('')[_0xcda8('0x5')];var BPromise=require('bluebird');var db=require(_0xcda8('0x6'))['db'];var dbH=require(_0xcda8('0x6'))[_0xcda8('0x7')];var logger=require(_0xcda8('0x8'))(_0xcda8('0x9'));var EXTRACTED_REPORT_ID=Number(process[_0xcda8('0xa')][0x2]);var QUERY=process[_0xcda8('0xa')][0x3];var PATH=process[_0xcda8('0xa')][0x4];var NAME=process[_0xcda8('0xa')][0x5];var FORMAT='MMMM\x20Do\x20YYYY,\x20h:mm:ss\x20a';var EXTRACTED_REPORT;var EXIT_CODE=0x0;function analyticExtractedReport(_0x1419ea,_0x1f7edc){var _0x13aa97={'status':_0x1419ea};var _0x3d8957={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x1f7edc){_0x13aa97['savename']=_0x1f7edc;}return db[_0xcda8('0xb')]['update'](_0x13aa97,_0x3d8957);}function getHeaders(_0x187ffd){return _[_0xcda8('0xc')](_0x187ffd,function(_0x4e9580){return{'text':_0x4e9580,'style':'tableHeader'};});}function getRows(_0x405caf,_0x22eb41){return _[_0xcda8('0xc')](_0x22eb41,function(_0x34e48e){return _(_0x34e48e)[_0xcda8('0xd')](_0x405caf)[_0xcda8('0xc')](function(_0x5e97e1){return _0x5e97e1?_['toString'](_0x5e97e1):'';})['value']();});}function createTable(_0x18f693,_0x225c83){var _0x4acac8={'widths':_['fill'](Array(_0x18f693[_0xcda8('0xe')]),0x91),'heights':function(_0xb6df78){return _0xb6df78===0x0?_0xcda8('0xf'):0x32;},'dontBreakRows':!![],'headerRows':0x1,'body':[]};var _0x3d5f60=getHeaders(_0x18f693);_0x4acac8['body'][_0xcda8('0x10')](_0x3d5f60);var _0x392825=getRows(_0x18f693,_0x225c83);_0x4acac8[_0xcda8('0x11')]=_0x4acac8['body'][_0xcda8('0x12')](_0x392825);return _0x4acac8;}function createTables(_0x1b6a4a){var _0xcfcac3=[];var _0x3b672c=_[_0xcda8('0x13')](Object['keys'](_0x1b6a4a[0x0]),0x5);_0x3b672c[_0xcda8('0x14')](function(_0x9174d7){_0xcfcac3['push'](createTable(_0x9174d7,_0x1b6a4a));});return _0xcfcac3;}function getPDFDocDefinition(_0x259d2b){var _0x25af08=util['format'](_0xcda8('0x15'),NAME,EXTRACTED_REPORT[_0xcda8('0x16')],moment(EXTRACTED_REPORT[_0xcda8('0x17')])[_0xcda8('0x18')](FORMAT),moment(EXTRACTED_REPORT['endDate'])[_0xcda8('0x18')](FORMAT));var _0x4c9b49=[];for(var _0x382431=0x0;_0x382431<_0x259d2b['length'];_0x382431++){var _0x5c2719=[];if(_0x382431===0x0){_0x5c2719[_0xcda8('0x10')]({'text':_0x25af08,'style':_0xcda8('0x19')});}var _0x5c0e07={'table':_0x259d2b[_0x382431]};if(_0x382431>0x0){_0x5c0e07[_0xcda8('0x1a')]=_0xcda8('0x1b');_0x5c0e07[_0xcda8('0x1c')]=[0x0,0x46,0x0,0x0];}_0x5c2719['push'](_0x5c0e07);_0x4c9b49[_0xcda8('0x10')](_0x5c2719);}return{'pageSize':'A4','pageOrientation':_0xcda8('0x1d'),'content':_0x4c9b49,'footer':function(_0x5084e2,_0x40fa28){return{'text':_0x5084e2['toString']()+_0xcda8('0x1e')+_0x40fa28,'style':_0xcda8('0x1f')};},'defaultStyle':{'font':'Arial'},'styles':{'header':{'fontSize':0x12,'bold':!![],'margin':[0x0,0x0,0x0,0xa]},'tableHeader':{'bold':!![],'fontSize':0xd,'color':'black'},'footer':{'alignment':'right','margin':[0x0,0x0,0x28,0x0]}}};}function extractReport(_0x260814){var _0x22a56d=0x1388;var _0x3029b1;if(!_0x260814[0x0]['num']){return analyticExtractedReport('Empty');}return db[_0xcda8('0x20')][_0xcda8('0x21')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0xcda8('0x22'),'splitSizePdf']})[_0xcda8('0x23')](function(_0x1dbbe5){if(_0x1dbbe5){_0x3029b1=_0x1dbbe5;_0x22a56d=_0x3029b1[_0xcda8('0x24')]||0x3e8;}})['then'](function(){var _0xc4d8e1=[];var _0x30a8f1=0x0;if(_0x3029b1[_0xcda8('0x22')]){if(_0x260814&&_0x260814[_0xcda8('0xe')]){var _0x2299ea=_[_0xcda8('0x25')](_0x260814[0x0]['num']/_0x22a56d);var _0x1979bd=Number['isInteger'](_0x260814[0x0][_0xcda8('0x26')]/_0x22a56d)?_0x260814[0x0][_0xcda8('0x26')]%_0x22a56d:0x0;_0x2299ea[_0xcda8('0x14')](function(_0x35ecc5){if(_0x35ecc5>0x0){_0x30a8f1+=_0x22a56d;}_0xc4d8e1[_0xcda8('0x10')](dbH[_0xcda8('0x27')][_0xcda8('0x28')](util[_0xcda8('0x18')]('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x22a56d,_0x30a8f1),{'type':dbH[_0xcda8('0x27')][_0xcda8('0x29')][_0xcda8('0x2a')]}));});if(_0x1979bd>0x0){_0x30a8f1+=_0x22a56d;_0xc4d8e1[_0xcda8('0x10')](dbH[_0xcda8('0x27')][_0xcda8('0x28')](util['format']('%s\x20limit\x20%d\x20OFFSET\x20%d',QUERY,_0x1979bd,_0x30a8f1),{'type':dbH[_0xcda8('0x27')][_0xcda8('0x29')][_0xcda8('0x2a')]}));}}}else{_0xc4d8e1['push'](dbH[_0xcda8('0x27')][_0xcda8('0x28')](QUERY,{'type':dbH[_0xcda8('0x27')][_0xcda8('0x29')][_0xcda8('0x2a')]}));}var _0xe4066b=path[_0xcda8('0x2b')](PATH);var _0x39b6a8=path[_0xcda8('0x2c')](PATH,_0xcda8('0x2d'));var _0x34f168=_0x3029b1[_0xcda8('0x22')]&&_0xc4d8e1[_0xcda8('0xe')]>0x1;var _0x313673=[];if(!fs[_0xcda8('0x2e')](path[_0xcda8('0x2f')](_0xe4066b,_0x39b6a8))&&_0x34f168){fs[_0xcda8('0x30')](path[_0xcda8('0x2f')](_0xe4066b,_0x39b6a8));}return BPromise['each'](_0xc4d8e1,function(_0x4df549){_0x313673['push'](_0x4df549);})['then'](function(){var _0x5d7647=[];for(var _0x569a64=0x0;_0x569a64<_0x313673[_0xcda8('0xe')];_0x569a64+=0x1){var _0xbcabcd=_0x313673[_0x569a64];var _0x59aa1f=createTables(_[_0xcda8('0x31')](_0xbcabcd));var _0x15f28f;var _0xdd84f0=getPDFDocDefinition(_0x59aa1f);var _0x494d7a=getPDFPrinter();var _0x1923a3=_0x494d7a[_0xcda8('0x32')](_0xdd84f0);if(_0x34f168){_0x15f28f=path[_0xcda8('0x2f')](_0xe4066b,_0x39b6a8,util[_0xcda8('0x18')](_0xcda8('0x33'),_0x39b6a8,_0x569a64,'pdf'));}else{_0x15f28f=path[_0xcda8('0x2f')](_0xe4066b,util['format'](_0xcda8('0x34'),_0x39b6a8,_0xcda8('0x35')));}_0x5d7647['push'](writePDFDocument(_0x1923a3,_0x15f28f));}return Promise['all'](_0x5d7647);})['then'](function(){if(_0x34f168){return new Promise(function(_0x5c196a){zipdir(path[_0xcda8('0x2f')](_0xe4066b,_0x39b6a8),{'saveTo':path[_0xcda8('0x2f')](_0xe4066b,util[_0xcda8('0x18')](_0xcda8('0x34'),_0x39b6a8,_0xcda8('0x36')))},function(){rimraf(path['join'](_0xe4066b,_0x39b6a8),function(){});_0x5c196a(_0xcda8('0x37'));});});}})[_0xcda8('0x23')](function(){if(!_0x34f168)return;rimraf(path[_0xcda8('0x2f')](_0xe4066b,_0x39b6a8),function(){});})[_0xcda8('0x23')](function(){logger[_0xcda8('0x38')](util[_0xcda8('0x18')]('Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed',EXTRACTED_REPORT_ID,'PDF'));return analyticExtractedReport('Completed',_0x34f168?util[_0xcda8('0x18')](_0xcda8('0x34'),_0x39b6a8,_0x34f168?_0xcda8('0x36'):_0xcda8('0x35')):null);});});}function main(){if(!EXTRACTED_REPORT_ID)return;logger[_0xcda8('0x38')](util['format'](_0xcda8('0x39'),EXTRACTED_REPORT_ID,_0xcda8('0x3a')));return db[_0xcda8('0xb')][_0xcda8('0x3b')]({'where':{'id':EXTRACTED_REPORT_ID}})[_0xcda8('0x23')](function(_0x15fcf0){EXTRACTED_REPORT=_0x15fcf0;return dbH[_0xcda8('0x27')][_0xcda8('0x28')](util['format'](_0xcda8('0x3c'),QUERY),{'type':dbH['sequelize'][_0xcda8('0x29')]['SELECT']});})[_0xcda8('0x23')](extractReport)[_0xcda8('0x3d')](function(_0xace83f){logger[_0xcda8('0x38')](util[_0xcda8('0x18')](_0xcda8('0x3e'),EXTRACTED_REPORT_ID,_0xcda8('0x3a')),util['inspect'](_0xace83f,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0xcda8('0x3f'));})[_0xcda8('0x40')](function(){process[_0xcda8('0x41')](EXIT_CODE);});}main();function getPDFPrinter(){var _0x24cb23=new PdfPrinter({'Arial':{'normal':__dirname+_0xcda8('0x42'),'bold':__dirname+'/fonts/arial-bold.ttf','italics':__dirname+_0xcda8('0x43'),'bolditalics':__dirname+_0xcda8('0x44')}});return _0x24cb23;}function getPDFDocDefinitionFromHTML(_0x8c6d92,_0x27210d){var _0x15d29d=util[_0xcda8('0x18')](_0xcda8('0x45'),_0x27210d[_0xcda8('0x46')],_0x27210d[_0xcda8('0x47')]);var _0x1bc398=moment()['format']('YYYY-MM-DD')[_0xcda8('0x48')]();var _0x3dce01=htmlToPdfmake(_0x8c6d92,{'window':window,'tableAutoSize':!![]});return{'content':[_0x3dce01],'defaultStyle':{'font':_0xcda8('0x49')},'styles':{'header':{'fontSize':0x12,'bold':!![],'alignment':_0xcda8('0x4a'),'margin':[0xa,0xa,0xa,0xa]},'footer':{'fontSize':0x9,'alignment':_0xcda8('0x4a'),'margin':[0xa,0x14,0xa,0xa]},'textblock':{'fontSize':0xb},'textfield':{'bold':!![]},'messageContainer':{'fontSize':0xa},'messageInfo':{'bold':!![]},'interactionData':{'alignment':_0xcda8('0x4a')}},'header':function(){return[{'text':'Interaction\x20Transcript','style':_0xcda8('0x19')}];},'footer':function(_0x1f8d6d,_0x16caa9){return[{'text':util[_0xcda8('0x18')](_0xcda8('0x4b'),_0x15d29d,_0x1f8d6d,_0x16caa9,_0x1bc398),'style':'footer'}];}};}function writePDFDocument(_0x35a2b2,_0x29f75f){return new Promise(function(_0x3cf2f6,_0x121304){var _0x5be934=_0x35a2b2['pipe'](fs[_0xcda8('0x4c')](_0x29f75f));_0x5be934['on'](_0xcda8('0x4d'),function(){_0x3cf2f6(_0xcda8('0x4d'));});_0x5be934['on']('error',function(_0x382426){_0x121304(_0x382426);});_0x35a2b2[_0xcda8('0x4e')]();});}exports[_0xcda8('0x4f')]=function(_0x46059c,_0x1df5ea){var _0x5a2ff8=getPDFPrinter();var _0x244f25=getPDFDocDefinitionFromHTML(_0x46059c,_0x1df5ea);var _0x1fd253=_0x5a2ff8['createPdfKitDocument'](_0x244f25);return writePDFDocument(_0x1fd253,_0x1df5ea['path'])[_0xcda8('0x3d')](function(_0x17032d){throw _0x17032d;});};
\ No newline at end of file
+var _0x629b=['rimraf','jsdom','window','../../mysqldb','../../config/logger','analytics','argv','MMMM\x20Do\x20YYYY,\x20h:mm:ss\x20a','update','tableHeader','map','value','fill','auto','body','push','chunk','keys','forEach','format','Name:\x20%s\x0aReport:\x20%s\x0aFrom:\x20%s\x20To:\x20%s','name','startDate','endDate','length','header','pageBreak','before','margin','landscape','toString','footer','Arial','right','num','find','split','splitSizePdf','then','range','isInteger','sequelize','query','%s\x20limit\x20%d\x20OFFSET\x20%d','SELECT','QueryTypes','dirname','basename','.pdf','existsSync','join','flatten','pdf','%s.%s','all','zip','zip\x20finished','info','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','PDF','Completed','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','catch','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','Failed','finally','exit','/fonts/arial-regular.ttf','/fonts/arial-bold.ttf','/fonts/arial-italic.ttf','channel','interactionId','YYYY-MM-DD','center','Interaction\x20Transcript','\x09\x09XCALLY\x20Motion\x20-\x20%s\x09\x09\x09\x09%d/%d\x09\x09\x09\x09%s','createWriteStream','end','createPdfFromHTML','createPdfKitDocument','lodash','util','path','moment','html-to-pdfmake','zip-dir'];(function(_0x3ab6e6,_0x52c840){var _0xdf569e=function(_0x1294c9){while(--_0x1294c9){_0x3ab6e6['push'](_0x3ab6e6['shift']());}};_0xdf569e(++_0x52c840);}(_0x629b,0x15a));var _0xb629=function(_0x405412,_0x3364ce){_0x405412=_0x405412-0x0;var _0x1c7c28=_0x629b[_0x405412];return _0x1c7c28;};'use strict';var _=require(_0xb629('0x0'));var fs=require('fs');var util=require(_0xb629('0x1'));var path=require(_0xb629('0x2'));var moment=require(_0xb629('0x3'));var htmlToPdfmake=require(_0xb629('0x4'));var PdfPrinter=require('pdfmake/src/printer');var zipdir=require(_0xb629('0x5'));var rimraf=require(_0xb629('0x6'));var JSDOM=require(_0xb629('0x7'))['JSDOM'];var window=new JSDOM('')[_0xb629('0x8')];var BPromise=require('bluebird');var db=require(_0xb629('0x9'))['db'];var dbH=require(_0xb629('0x9'))['dbH'];var logger=require(_0xb629('0xa'))(_0xb629('0xb'));var EXTRACTED_REPORT_ID=Number(process['argv'][0x2]);var QUERY=process[_0xb629('0xc')][0x3];var PATH=process[_0xb629('0xc')][0x4];var NAME=process['argv'][0x5];var FORMAT=_0xb629('0xd');var EXTRACTED_REPORT;var EXIT_CODE=0x0;function analyticExtractedReport(_0x17896d,_0x30ac89){var _0x5c067a={'status':_0x17896d};var _0x2e9e34={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x30ac89){_0x5c067a['savename']=_0x30ac89;}return db['AnalyticExtractedReport'][_0xb629('0xe')](_0x5c067a,_0x2e9e34);}function getHeaders(_0x726772){return _['map'](_0x726772,function(_0x19d237){return{'text':_0x19d237,'style':_0xb629('0xf')};});}function getRows(_0x240eaf,_0x25c578){return _[_0xb629('0x10')](_0x25c578,function(_0x19eaa0){return _(_0x19eaa0)['pick'](_0x240eaf)['map'](function(_0x265009){return _0x265009?_['toString'](_0x265009):'';})[_0xb629('0x11')]();});}function createTable(_0x14a3b3,_0x5bf8f0){var _0x310758={'widths':_[_0xb629('0x12')](Array(_0x14a3b3['length']),0x91),'heights':function(_0x2d6e36){return _0x2d6e36===0x0?_0xb629('0x13'):0x32;},'dontBreakRows':!![],'headerRows':0x1,'body':[]};var _0x5db9fe=getHeaders(_0x14a3b3);_0x310758[_0xb629('0x14')][_0xb629('0x15')](_0x5db9fe);var _0x59db01=getRows(_0x14a3b3,_0x5bf8f0);_0x310758['body']=_0x310758[_0xb629('0x14')]['concat'](_0x59db01);return _0x310758;}function createTables(_0x276f04){var _0x221474=[];var _0x5e6015=_[_0xb629('0x16')](Object[_0xb629('0x17')](_0x276f04[0x0]),0x5);_0x5e6015[_0xb629('0x18')](function(_0x4641bd){_0x221474[_0xb629('0x15')](createTable(_0x4641bd,_0x276f04));});return _0x221474;}function getPDFDocDefinition(_0x5a81ce){var _0x4a4c49=util[_0xb629('0x19')](_0xb629('0x1a'),NAME,EXTRACTED_REPORT[_0xb629('0x1b')],moment(EXTRACTED_REPORT[_0xb629('0x1c')])[_0xb629('0x19')](FORMAT),moment(EXTRACTED_REPORT[_0xb629('0x1d')])[_0xb629('0x19')](FORMAT));var _0x2f261a=[];for(var _0x402d1c=0x0;_0x402d1c<_0x5a81ce[_0xb629('0x1e')];_0x402d1c++){var _0x146e87=[];if(_0x402d1c===0x0){_0x146e87[_0xb629('0x15')]({'text':_0x4a4c49,'style':_0xb629('0x1f')});}var _0x46387c={'table':_0x5a81ce[_0x402d1c]};if(_0x402d1c>0x0){_0x46387c[_0xb629('0x20')]=_0xb629('0x21');_0x46387c[_0xb629('0x22')]=[0x0,0x46,0x0,0x0];}_0x146e87['push'](_0x46387c);_0x2f261a[_0xb629('0x15')](_0x146e87);}return{'pageSize':'A4','pageOrientation':_0xb629('0x23'),'content':_0x2f261a,'footer':function(_0x1f3ce5,_0x360b04){return{'text':_0x1f3ce5[_0xb629('0x24')]()+'\x20/\x20'+_0x360b04,'style':_0xb629('0x25')};},'defaultStyle':{'font':_0xb629('0x26')},'styles':{'header':{'fontSize':0x12,'bold':!![],'margin':[0x0,0x0,0x0,0xa]},'tableHeader':{'bold':!![],'fontSize':0xd,'color':'black'},'footer':{'alignment':_0xb629('0x27'),'margin':[0x0,0x0,0x28,0x0]}}};}function extractReport(_0x33a50e){var _0x1c976f=0x1388;var _0x215e20;if(!_0x33a50e[0x0][_0xb629('0x28')]){return analyticExtractedReport('Empty');}return db['Setting'][_0xb629('0x29')]({'where':{'id':0x1},'raw':!![],'attributes':['id',_0xb629('0x2a'),_0xb629('0x2b')]})[_0xb629('0x2c')](function(_0x1bae5f){if(_0x1bae5f){_0x215e20=_0x1bae5f;_0x1c976f=_0x215e20[_0xb629('0x2b')]||0x3e8;}})['then'](function(){var _0x3e1aef=[];var _0x4ee00b=0x0;if(_0x215e20[_0xb629('0x2a')]){if(_0x33a50e&&_0x33a50e[_0xb629('0x1e')]){var _0x2e13fc=_[_0xb629('0x2d')](_0x33a50e[0x0]['num']/_0x1c976f);var _0x32651e=Number[_0xb629('0x2e')](_0x33a50e[0x0][_0xb629('0x28')]/_0x1c976f)?_0x33a50e[0x0][_0xb629('0x28')]%_0x1c976f:0x0;_0x2e13fc[_0xb629('0x18')](function(_0x3b35c8){if(_0x3b35c8>0x0){_0x4ee00b+=_0x1c976f;}_0x3e1aef['push'](dbH[_0xb629('0x2f')][_0xb629('0x30')](util[_0xb629('0x19')](_0xb629('0x31'),QUERY,_0x1c976f,_0x4ee00b),{'type':dbH['sequelize']['QueryTypes'][_0xb629('0x32')]}));});if(_0x32651e>0x0){_0x4ee00b+=_0x1c976f;_0x3e1aef['push'](dbH[_0xb629('0x2f')][_0xb629('0x30')](util[_0xb629('0x19')](_0xb629('0x31'),QUERY,_0x32651e,_0x4ee00b),{'type':dbH[_0xb629('0x2f')][_0xb629('0x33')][_0xb629('0x32')]}));}}}else{_0x3e1aef[_0xb629('0x15')](dbH['sequelize'][_0xb629('0x30')](QUERY,{'type':dbH[_0xb629('0x2f')]['QueryTypes']['SELECT']}));}var _0xc8495e=path[_0xb629('0x34')](PATH);var _0x536548=path[_0xb629('0x35')](PATH,_0xb629('0x36'));var _0x23fe6e=_0x215e20['split']&&_0x3e1aef[_0xb629('0x1e')]>0x1;var _0x715ff3=[];if(!fs[_0xb629('0x37')](path[_0xb629('0x38')](_0xc8495e,_0x536548))&&_0x23fe6e){fs['mkdirSync'](path['join'](_0xc8495e,_0x536548));}return BPromise['each'](_0x3e1aef,function(_0xf5a62f){_0x715ff3['push'](_0xf5a62f);})['then'](function(){var _0x343647=[];for(var _0x12fc63=0x0;_0x12fc63<_0x715ff3['length'];_0x12fc63+=0x1){var _0x5d42ac=_0x715ff3[_0x12fc63];var _0x4f00a7=createTables(_[_0xb629('0x39')](_0x5d42ac));var _0x23ba3d;var _0x23cfd1=getPDFDocDefinition(_0x4f00a7);var _0x1d8d34=getPDFPrinter();var _0x372384=_0x1d8d34['createPdfKitDocument'](_0x23cfd1);if(_0x23fe6e){_0x23ba3d=path[_0xb629('0x38')](_0xc8495e,_0x536548,util['format']('%s%d.%s',_0x536548,_0x12fc63,_0xb629('0x3a')));}else{_0x23ba3d=path['join'](_0xc8495e,util[_0xb629('0x19')](_0xb629('0x3b'),_0x536548,_0xb629('0x3a')));}_0x343647[_0xb629('0x15')](writePDFDocument(_0x372384,_0x23ba3d));}return Promise[_0xb629('0x3c')](_0x343647);})[_0xb629('0x2c')](function(){if(_0x23fe6e){return new Promise(function(_0x3365b3){zipdir(path['join'](_0xc8495e,_0x536548),{'saveTo':path['join'](_0xc8495e,util[_0xb629('0x19')](_0xb629('0x3b'),_0x536548,_0xb629('0x3d')))},function(){rimraf(path['join'](_0xc8495e,_0x536548),function(){});_0x3365b3(_0xb629('0x3e'));});});}})[_0xb629('0x2c')](function(){if(!_0x23fe6e)return;rimraf(path[_0xb629('0x38')](_0xc8495e,_0x536548),function(){});})['then'](function(){logger[_0xb629('0x3f')](util[_0xb629('0x19')](_0xb629('0x40'),EXTRACTED_REPORT_ID,_0xb629('0x41')));return analyticExtractedReport(_0xb629('0x42'),_0x23fe6e?util['format'](_0xb629('0x3b'),_0x536548,_0x23fe6e?_0xb629('0x3d'):_0xb629('0x3a')):null);});});}function main(){if(!EXTRACTED_REPORT_ID)return;logger[_0xb629('0x3f')](util[_0xb629('0x19')](_0xb629('0x43'),EXTRACTED_REPORT_ID,_0xb629('0x41')));return db['AnalyticExtractedReport']['findOne']({'where':{'id':EXTRACTED_REPORT_ID}})['then'](function(_0x1a07e8){EXTRACTED_REPORT=_0x1a07e8;return dbH['sequelize'][_0xb629('0x30')](util[_0xb629('0x19')](_0xb629('0x44'),QUERY),{'type':dbH[_0xb629('0x2f')][_0xb629('0x33')][_0xb629('0x32')]});})['then'](extractReport)[_0xb629('0x45')](function(_0x3b7a56){logger[_0xb629('0x3f')](util[_0xb629('0x19')](_0xb629('0x46'),EXTRACTED_REPORT_ID,_0xb629('0x41')),util[_0xb629('0x47')](_0x3b7a56,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0xb629('0x48'));})[_0xb629('0x49')](function(){process[_0xb629('0x4a')](EXIT_CODE);});}main();function getPDFPrinter(){var _0x81173f=new PdfPrinter({'Arial':{'normal':__dirname+_0xb629('0x4b'),'bold':__dirname+_0xb629('0x4c'),'italics':__dirname+_0xb629('0x4d'),'bolditalics':__dirname+'/fonts/arial-bold-italic.ttf'}});return _0x81173f;}function getPDFDocDefinitionFromHTML(_0x44ea3d,_0x4e3add){var _0x2cd90f=util[_0xb629('0x19')]('%s\x20#%d',_0x4e3add[_0xb629('0x4e')],_0x4e3add[_0xb629('0x4f')]);var _0x548473=moment()[_0xb629('0x19')](_0xb629('0x50'))[_0xb629('0x24')]();var _0xde2860=htmlToPdfmake(_0x44ea3d,{'window':window,'tableAutoSize':!![]});return{'content':[_0xde2860],'defaultStyle':{'font':'Arial'},'styles':{'header':{'fontSize':0x12,'bold':!![],'alignment':_0xb629('0x51'),'margin':[0xa,0xa,0xa,0xa]},'footer':{'fontSize':0x9,'alignment':_0xb629('0x51'),'margin':[0xa,0x14,0xa,0xa]},'textblock':{'fontSize':0xb},'textfield':{'bold':!![]},'messageContainer':{'fontSize':0xa},'messageInfo':{'bold':!![]},'interactionData':{'alignment':'center'}},'header':function(){return[{'text':_0xb629('0x52'),'style':_0xb629('0x1f')}];},'footer':function(_0x77fd3b,_0x365cf1){return[{'text':util[_0xb629('0x19')](_0xb629('0x53'),_0x2cd90f,_0x77fd3b,_0x365cf1,_0x548473),'style':_0xb629('0x25')}];}};}function writePDFDocument(_0x457421,_0x4de434){return new Promise(function(_0x4d6222,_0x3fa465){var _0x4b9300=_0x457421['pipe'](fs[_0xb629('0x54')](_0x4de434));_0x4b9300['on']('finish',function(){_0x4d6222('finish');});_0x4b9300['on']('error',function(_0xa3c8d6){_0x3fa465(_0xa3c8d6);});_0x457421[_0xb629('0x55')]();});}exports[_0xb629('0x56')]=function(_0x334f2f,_0x243d04){var _0x9644d0=getPDFPrinter();var _0x16765b=getPDFDocDefinitionFromHTML(_0x334f2f,_0x243d04);var _0x5ac9c3=_0x9644d0[_0xb629('0x57')](_0x16765b);return writePDFDocument(_0x5ac9c3,_0x243d04[_0xb629('0x2')])['catch'](function(_0x3b87cf){throw _0x3b87cf;});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe6b8=['mkdirSync','each','%s%d.%s','writeFileSync','binary','%s.%s','zip','zip\x20finished','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','Completed','Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','inspect','Failed','exit','util','path','json2xls','bluebird','zip-dir','rimraf','../../mysqldb','dbH','../../config/logger','analytics','argv','savename','AnalyticExtractedReport','update','info','XLSX','Setting','splitSizeXlsx','then','sequelize','query','format','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','QueryTypes','SELECT','num','split','length','range','isInteger','forEach','push','%s\x20limit\x20%d\x20OFFSET\x20%d','basename','.xlsx','existsSync','join'];(function(_0x556927,_0x34b53f){var _0x5f1235=function(_0x4f4e44){while(--_0x4f4e44){_0x556927['push'](_0x556927['shift']());}};_0x5f1235(++_0x34b53f);}(_0xe6b8,0x140));var _0x8e6b=function(_0x569157,_0x24b54b){_0x569157=_0x569157-0x0;var _0x2dbfed=_0xe6b8[_0x569157];return _0x2dbfed;};'use strict';var util=require(_0x8e6b('0x0'));var path=require(_0x8e6b('0x1'));var _=require('lodash');var fs=require('fs');var json2xls=require(_0x8e6b('0x2'));var BPromise=require(_0x8e6b('0x3'));var zipdir=require(_0x8e6b('0x4'));var rimraf=require(_0x8e6b('0x5'));var db=require(_0x8e6b('0x6'))['db'];var dbH=require('../../mysqldb')[_0x8e6b('0x7')];var logger=require(_0x8e6b('0x8'))(_0x8e6b('0x9'));var EXTRACTED_REPORT_ID=Number(process[_0x8e6b('0xa')][0x2]);var QUERY=process[_0x8e6b('0xa')][0x3];var PATH=process[_0x8e6b('0xa')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x93ecbf,_0x16f6f9){var _0x3ac82b={'status':_0x93ecbf};var _0x31cd03={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x16f6f9){_0x3ac82b[_0x8e6b('0xb')]=_0x16f6f9;}return db[_0x8e6b('0xc')][_0x8e6b('0xd')](_0x3ac82b,_0x31cd03);}function main(){var _0x40f0a3=0x1388;var _0x4ecd99;logger[_0x8e6b('0xe')](util['format']('Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,_0x8e6b('0xf')));return db[_0x8e6b('0x10')]['find']({'where':{'id':0x1},'raw':!![],'attributes':['id','split',_0x8e6b('0x11')]})[_0x8e6b('0x12')](function(_0x4953b6){if(_0x4953b6){_0x4ecd99=_0x4953b6;_0x40f0a3=_0x4ecd99[_0x8e6b('0x11')]||0x1388;}})[_0x8e6b('0x12')](function(){return dbH[_0x8e6b('0x13')][_0x8e6b('0x14')](util[_0x8e6b('0x15')](_0x8e6b('0x16'),QUERY),{'type':dbH['sequelize'][_0x8e6b('0x17')][_0x8e6b('0x18')]});})[_0x8e6b('0x12')](function(_0x1d2d8c){if(!_0x1d2d8c[0x0][_0x8e6b('0x19')]){return analyticExtractedReport('Empty');}var _0x23cec3=[];var _0x3edb26=0x0;if(_0x4ecd99[_0x8e6b('0x1a')]){if(_0x1d2d8c&&_0x1d2d8c[_0x8e6b('0x1b')]){var _0x52ad5a=_[_0x8e6b('0x1c')](_0x1d2d8c[0x0][_0x8e6b('0x19')]/_0x40f0a3);var _0x36a081=Number[_0x8e6b('0x1d')](_0x1d2d8c[0x0][_0x8e6b('0x19')]/_0x40f0a3)?_0x1d2d8c[0x0][_0x8e6b('0x19')]%_0x40f0a3:0x0;_0x52ad5a[_0x8e6b('0x1e')](function(_0xbe88aa){if(_0xbe88aa>0x0){_0x3edb26+=_0x40f0a3;}_0x23cec3[_0x8e6b('0x1f')](dbH[_0x8e6b('0x13')][_0x8e6b('0x14')](util['format'](_0x8e6b('0x20'),QUERY,_0x40f0a3,_0x3edb26),{'type':dbH[_0x8e6b('0x13')][_0x8e6b('0x17')]['SELECT']}));});if(_0x36a081>0x0){_0x3edb26+=_0x40f0a3;_0x23cec3[_0x8e6b('0x1f')](dbH[_0x8e6b('0x13')][_0x8e6b('0x14')](util['format'](_0x8e6b('0x20'),QUERY,_0x36a081,_0x3edb26),{'type':dbH[_0x8e6b('0x13')][_0x8e6b('0x17')]['SELECT']}));}}}else{_0x23cec3['push'](dbH['sequelize'][_0x8e6b('0x14')](QUERY,{'type':dbH['sequelize'][_0x8e6b('0x17')][_0x8e6b('0x18')]}));}var _0x452641=path['dirname'](PATH);var _0x48f28e=path[_0x8e6b('0x21')](PATH,_0x8e6b('0x22'));var _0x268d5e=_0x4ecd99[_0x8e6b('0x1a')]&&_0x23cec3[_0x8e6b('0x1b')]>0x1;var _0x43f64b=[];if(!fs[_0x8e6b('0x23')](path[_0x8e6b('0x24')](_0x452641,_0x48f28e))&&_0x268d5e){fs[_0x8e6b('0x25')](path['join'](_0x452641,_0x48f28e));}return BPromise[_0x8e6b('0x26')](_0x23cec3,function(_0x4835da){_0x43f64b[_0x8e6b('0x1f')](_0x4835da);})[_0x8e6b('0x12')](function(){for(var _0x33ca16=0x0;_0x33ca16<_0x43f64b[_0x8e6b('0x1b')];_0x33ca16+=0x1){var _0x5d5d0f;var _0x1d942f=_0x43f64b[_0x33ca16];if(_0x268d5e){_0x5d5d0f=path['join'](_0x452641,_0x48f28e,util[_0x8e6b('0x15')](_0x8e6b('0x27'),_0x48f28e,_0x33ca16,'xlsx'));}else{_0x5d5d0f=path[_0x8e6b('0x24')](_0x452641,util[_0x8e6b('0x15')]('%s.%s',_0x48f28e,'xlsx'));}fs[_0x8e6b('0x28')](_0x5d5d0f,json2xls(_0x1d942f),_0x8e6b('0x29'));}})[_0x8e6b('0x12')](function(){if(_0x268d5e){return new Promise(function(_0x2cc3ee){zipdir(path[_0x8e6b('0x24')](_0x452641,_0x48f28e),{'saveTo':path[_0x8e6b('0x24')](_0x452641,util['format'](_0x8e6b('0x2a'),_0x48f28e,_0x8e6b('0x2b')))},function(_0x453796,_0x557edb){rimraf(path['join'](_0x452641,_0x48f28e),function(){});_0x2cc3ee(_0x8e6b('0x2c'));});});}})[_0x8e6b('0x12')](function(){logger[_0x8e6b('0xe')](util[_0x8e6b('0x15')](_0x8e6b('0x2d'),EXTRACTED_REPORT_ID,'XLSX'));return analyticExtractedReport(_0x8e6b('0x2e'),_0x268d5e?util['format'](_0x8e6b('0x2a'),_0x48f28e,_0x268d5e?'zip':'xlsx'):null);});})['catch'](function(_0x3da719){logger[_0x8e6b('0xe')](util[_0x8e6b('0x15')](_0x8e6b('0x2f'),EXTRACTED_REPORT_ID,_0x8e6b('0xf')),util[_0x8e6b('0x30')](_0x3da719,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0x8e6b('0x31'));})['finally'](function(){process[_0x8e6b('0x32')](EXIT_CODE);});}main();
\ No newline at end of file
+var _0xf43f=['range','forEach','%s\x20limit\x20%d\x20OFFSET\x20%d','push','query','dirname','basename','existsSync','join','mkdirSync','each','xlsx','%s.%s','writeFileSync','zip','zip\x20finished','Extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format\x20completed','Completed','info','inspect','Failed','util','path','json2xls','bluebird','zip-dir','rimraf','../../mysqldb','../../config/logger','analytics','argv','savename','AnalyticExtractedReport','format','Start\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format','XLSX','Setting','find','splitSizeXlsx','then','sequelize','SELECT\x20count(*)\x20as\x20num\x20FROM\x20(%s)\x20t','QueryTypes','SELECT','num','Empty','split','length'];(function(_0x40b88c,_0x49f636){var _0x36fb50=function(_0x1f2c90){while(--_0x1f2c90){_0x40b88c['push'](_0x40b88c['shift']());}};_0x36fb50(++_0x49f636);}(_0xf43f,0x135));var _0xff43=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xf43f[_0x3dd15e];return _0x231fd0;};'use strict';var util=require(_0xff43('0x0'));var path=require(_0xff43('0x1'));var _=require('lodash');var fs=require('fs');var json2xls=require(_0xff43('0x2'));var BPromise=require(_0xff43('0x3'));var zipdir=require(_0xff43('0x4'));var rimraf=require(_0xff43('0x5'));var db=require(_0xff43('0x6'))['db'];var dbH=require('../../mysqldb')['dbH'];var logger=require(_0xff43('0x7'))(_0xff43('0x8'));var EXTRACTED_REPORT_ID=Number(process[_0xff43('0x9')][0x2]);var QUERY=process[_0xff43('0x9')][0x3];var PATH=process[_0xff43('0x9')][0x4];var EXIT_CODE=0x0;function analyticExtractedReport(_0x2bcd1c,_0x3e46db){var _0x17e74e={'status':_0x2bcd1c};var _0x2b107a={'where':{'id':EXTRACTED_REPORT_ID}};if(_0x3e46db){_0x17e74e[_0xff43('0xa')]=_0x3e46db;}return db[_0xff43('0xb')]['update'](_0x17e74e,_0x2b107a);}function main(){var _0x363a26=0x1388;var _0x682e79;logger['info'](util[_0xff43('0xc')](_0xff43('0xd'),EXTRACTED_REPORT_ID,_0xff43('0xe')));return db[_0xff43('0xf')][_0xff43('0x10')]({'where':{'id':0x1},'raw':!![],'attributes':['id','split',_0xff43('0x11')]})[_0xff43('0x12')](function(_0x4181cb){if(_0x4181cb){_0x682e79=_0x4181cb;_0x363a26=_0x682e79[_0xff43('0x11')]||0x1388;}})[_0xff43('0x12')](function(){return dbH[_0xff43('0x13')]['query'](util['format'](_0xff43('0x14'),QUERY),{'type':dbH[_0xff43('0x13')][_0xff43('0x15')][_0xff43('0x16')]});})[_0xff43('0x12')](function(_0x353690){if(!_0x353690[0x0][_0xff43('0x17')]){return analyticExtractedReport(_0xff43('0x18'));}var _0x3f2e05=[];var _0x208019=0x0;if(_0x682e79[_0xff43('0x19')]){if(_0x353690&&_0x353690[_0xff43('0x1a')]){var _0x39de2f=_[_0xff43('0x1b')](_0x353690[0x0][_0xff43('0x17')]/_0x363a26);var _0x20ce06=Number['isInteger'](_0x353690[0x0][_0xff43('0x17')]/_0x363a26)?_0x353690[0x0][_0xff43('0x17')]%_0x363a26:0x0;_0x39de2f[_0xff43('0x1c')](function(_0x3009e5){if(_0x3009e5>0x0){_0x208019+=_0x363a26;}_0x3f2e05['push'](dbH[_0xff43('0x13')]['query'](util[_0xff43('0xc')](_0xff43('0x1d'),QUERY,_0x363a26,_0x208019),{'type':dbH[_0xff43('0x13')]['QueryTypes'][_0xff43('0x16')]}));});if(_0x20ce06>0x0){_0x208019+=_0x363a26;_0x3f2e05[_0xff43('0x1e')](dbH[_0xff43('0x13')][_0xff43('0x1f')](util['format'](_0xff43('0x1d'),QUERY,_0x20ce06,_0x208019),{'type':dbH[_0xff43('0x13')][_0xff43('0x15')][_0xff43('0x16')]}));}}}else{_0x3f2e05['push'](dbH[_0xff43('0x13')]['query'](QUERY,{'type':dbH[_0xff43('0x13')]['QueryTypes'][_0xff43('0x16')]}));}var _0x3c57d2=path[_0xff43('0x20')](PATH);var _0x4f281b=path[_0xff43('0x21')](PATH,'.xlsx');var _0x475a2a=_0x682e79[_0xff43('0x19')]&&_0x3f2e05['length']>0x1;var _0x56360d=[];if(!fs[_0xff43('0x22')](path[_0xff43('0x23')](_0x3c57d2,_0x4f281b))&&_0x475a2a){fs[_0xff43('0x24')](path[_0xff43('0x23')](_0x3c57d2,_0x4f281b));}return BPromise[_0xff43('0x25')](_0x3f2e05,function(_0x2b305d){_0x56360d['push'](_0x2b305d);})[_0xff43('0x12')](function(){for(var _0xce61c4=0x0;_0xce61c4<_0x56360d['length'];_0xce61c4+=0x1){var _0x3c8737;var _0x570d7e=_0x56360d[_0xce61c4];if(_0x475a2a){_0x3c8737=path[_0xff43('0x23')](_0x3c57d2,_0x4f281b,util[_0xff43('0xc')]('%s%d.%s',_0x4f281b,_0xce61c4,_0xff43('0x26')));}else{_0x3c8737=path['join'](_0x3c57d2,util['format'](_0xff43('0x27'),_0x4f281b,_0xff43('0x26')));}fs[_0xff43('0x28')](_0x3c8737,json2xls(_0x570d7e),'binary');}})[_0xff43('0x12')](function(){if(_0x475a2a){return new Promise(function(_0x10a000){zipdir(path[_0xff43('0x23')](_0x3c57d2,_0x4f281b),{'saveTo':path['join'](_0x3c57d2,util['format']('%s.%s',_0x4f281b,_0xff43('0x29')))},function(_0x5dbb91,_0x256df8){rimraf(path[_0xff43('0x23')](_0x3c57d2,_0x4f281b),function(){});_0x10a000(_0xff43('0x2a'));});});}})[_0xff43('0x12')](function(){logger['info'](util[_0xff43('0xc')](_0xff43('0x2b'),EXTRACTED_REPORT_ID,_0xff43('0xe')));return analyticExtractedReport(_0xff43('0x2c'),_0x475a2a?util[_0xff43('0xc')](_0xff43('0x27'),_0x4f281b,_0x475a2a?_0xff43('0x29'):_0xff43('0x26')):null);});})['catch'](function(_0x4670bf){logger[_0xff43('0x2d')](util[_0xff43('0xc')]('Error\x20during\x20extraction\x20report\x20with\x20id\x20%d\x20in\x20%s\x20format',EXTRACTED_REPORT_ID,'XLSX'),util[_0xff43('0x2e')](_0x4670bf,{'showHidden':![],'depth':null}));EXIT_CODE=0x1;return analyticExtractedReport(_0xff43('0x2f'));})['finally'](function(){process['exit'](EXIT_CODE);});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xca6e=['_XCALLY_MIXMONITOR_FORMAT=','wav','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','length','interval','*,*,*,*','IntervalId','tag','CDR(tag)=','callerID','ExecIf','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):Set(CALLERID(all)=','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):NoOp(No\x20number\x20available)','answer','indexOf','app','toLowerCase','appType','custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','GotoIfTime',',${EXTEN},','last','concat','Hangup','transaction','destroy','bulkCreate','sortBy','catch','error','rewrite','models','Interval','findAll','then','VoiceExtension','uniq','map','exten','CAST(priority\x20AS\x20UNSIGNED)','filter','groupBy','queue','playback','hasOwnProperty','priority','extensions','extension','find','type','format','CDR(type)=%s','context','inbound','push','Set','CDR(routeid)=','VoiceExtensionId','outbound','CDR(destination)=','cutdigits','${EXTEN:','$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto(','):Goto(','CDR(prefix)=noprefix','outboundrouteid=','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xca6e,0xfe));var _0xeca6=function(_0x59bfb8,_0x5dde3f){_0x59bfb8=_0x59bfb8-0x0;var _0x428495=_0xca6e[_0x59bfb8];return _0x428495;};'use strict';var _=require('lodash');var util=require('util');function rewrite(_0x3aa01d,_0x57a138){var _0x4b0ee6=this;return _0x3aa01d[_0xeca6('0x0')][_0xeca6('0x1')][_0xeca6('0x2')]({'raw':!![]})[_0xeca6('0x3')](function(_0xb8fde5){_0x4b0ee6['intervals']=_0xb8fde5;return _0x3aa01d[_0xeca6('0x0')]['VoiceExtension']['findAll']({'where':{'IntervalId':_0x57a138['IntervalId']},'raw':!![]});})[_0xeca6('0x3')](function(_0x408518){return _0x3aa01d[_0xeca6('0x0')][_0xeca6('0x4')]['findAll']({'where':{'exten':{'$in':_[_0xeca6('0x5')](_[_0xeca6('0x6')](_0x408518,_0xeca6('0x7')))}},'order':[{'raw':_0xeca6('0x8')}],'raw':!![]});})[_0xeca6('0x3')](function(_0x5280f9){var _0x48869d=_['filter'](_0x5280f9,{'priority':'1'});var _0x58794c=_[_0xeca6('0x9')](_0x5280f9,{'isApp':0x1});var _0x64cf23=_[_0xeca6('0xa')](_0x58794c,'exten');var _0x52cc4f=[_0xeca6('0xb'),_0xeca6('0xc')];var _0x42d274=[];var _0x18acf9=[];for(var _0x5c7534 in _0x64cf23){if(_0x64cf23[_0xeca6('0xd')](_0x5c7534)){_0x4b0ee6[_0xeca6('0xe')]=0x2;_0x4b0ee6[_0xeca6('0xf')]=[];_0x4b0ee6[_0xeca6('0x10')]=_[_0xeca6('0x11')](_0x48869d,{'exten':_0x64cf23[_0x5c7534][0x0]['exten']});_0x4b0ee6[_0xeca6('0xf')]['push']({'type':_0x64cf23[_0x5c7534][0x0][_0xeca6('0x12')],'app':'Set','appdata':util[_0xeca6('0x13')](_0xeca6('0x14'),_0x64cf23[_0x5c7534][0x0][_0xeca6('0x12')]),'context':_0x64cf23[_0x5c7534][0x0][_0xeca6('0x15')],'exten':_0x64cf23[_0x5c7534][0x0][_0xeca6('0x7')],'priority':_0x4b0ee6['priority']++,'VoiceExtensionId':_0x64cf23[_0x5c7534][0x0]['VoiceExtensionId']});if(_0x64cf23[_0x5c7534][0x0][_0xeca6('0x12')]===_0xeca6('0x16')){_0x4b0ee6[_0xeca6('0xf')][_0xeca6('0x17')]({'type':_0x64cf23[_0x5c7534][0x0][_0xeca6('0x12')],'app':_0xeca6('0x18'),'appdata':_0xeca6('0x19')+_0x64cf23[_0x5c7534][0x0][_0xeca6('0x1a')],'context':_0x64cf23[_0x5c7534][0x0][_0xeca6('0x15')],'exten':_0x64cf23[_0x5c7534][0x0][_0xeca6('0x7')],'priority':_0x4b0ee6[_0xeca6('0xe')]++,'VoiceExtensionId':_0x64cf23[_0x5c7534][0x0][_0xeca6('0x1a')]});}else if(_0x64cf23[_0x5c7534][0x0]['type']===_0xeca6('0x1b')){if(_0x4b0ee6[_0xeca6('0x10')]){_0x4b0ee6[_0xeca6('0xf')][_0xeca6('0x17')]({'type':_0x64cf23[_0x5c7534][0x0][_0xeca6('0x12')],'app':'Set','appdata':_0xeca6('0x1c')+(_0x4b0ee6['extension'][_0xeca6('0x1d')]?_0xeca6('0x1e')+_0x4b0ee6['extension']['cutdigits']+'}':'${EXTEN}'),'context':_0x64cf23[_0x5c7534][0x0][_0xeca6('0x15')],'exten':_0x64cf23[_0x5c7534][0x0]['exten'],'priority':_0x4b0ee6['priority']++,'VoiceExtensionId':_0x64cf23[_0x5c7534][0x0][_0xeca6('0x1a')]});}_0x4b0ee6[_0xeca6('0xf')]['push']({'type':_0x64cf23[_0x5c7534][0x0]['type'],'app':_0xeca6('0x18'),'appdata':_0xeca6('0x19')+_0x64cf23[_0x5c7534][0x0][_0xeca6('0x1a')],'context':_0x64cf23[_0x5c7534][0x0]['context'],'exten':_0x64cf23[_0x5c7534][0x0][_0xeca6('0x7')],'priority':_0x4b0ee6[_0xeca6('0xe')]++,'VoiceExtensionId':_0x64cf23[_0x5c7534][0x0][_0xeca6('0x1a')]});var _0x20e6b2=_0x4b0ee6['priority']++;_0x4b0ee6['extensions']['push']({'type':_0x64cf23[_0x5c7534][0x0][_0xeca6('0x12')],'app':'ExecIf','appdata':_0xeca6('0x1f')+(_0x20e6b2+0x2)+_0xeca6('0x20')+(_0x20e6b2+0x1)+')','context':_0x64cf23[_0x5c7534][0x0][_0xeca6('0x15')],'exten':_0x64cf23[_0x5c7534][0x0][_0xeca6('0x7')],'priority':_0x20e6b2,'VoiceExtensionId':_0x64cf23[_0x5c7534][0x0][_0xeca6('0x1a')]});if(_0x4b0ee6['extension']){_0x4b0ee6[_0xeca6('0xf')][_0xeca6('0x17')]({'type':_0x64cf23[_0x5c7534][0x0]['type'],'app':_0xeca6('0x18'),'appdata':_0x4b0ee6['extension'][_0xeca6('0x1d')]?'CDR(prefix)=${EXTEN:0:'+_0x4b0ee6[_0xeca6('0x10')]['cutdigits']+'}':_0xeca6('0x21'),'context':_0x64cf23[_0x5c7534][0x0][_0xeca6('0x15')],'exten':_0x64cf23[_0x5c7534][0x0]['exten'],'priority':_0x4b0ee6[_0xeca6('0xe')]++,'VoiceExtensionId':_0x64cf23[_0x5c7534][0x0][_0xeca6('0x1a')]});}_0x4b0ee6[_0xeca6('0xf')][_0xeca6('0x17')]({'type':_0x64cf23[_0x5c7534][0x0][_0xeca6('0x12')],'app':_0xeca6('0x18'),'appdata':_0xeca6('0x22')+_0x64cf23[_0x5c7534][0x0][_0xeca6('0x1a')],'context':_0x64cf23[_0x5c7534][0x0][_0xeca6('0x15')],'exten':_0x64cf23[_0x5c7534][0x0]['exten'],'priority':_0x4b0ee6[_0xeca6('0xe')]++,'VoiceExtensionId':_0x64cf23[_0x5c7534][0x0][_0xeca6('0x1a')]});if(_0x4b0ee6[_0xeca6('0x10')]&&_0x4b0ee6[_0xeca6('0x10')]['hasOwnProperty'](_0xeca6('0x23'))&&_0x4b0ee6[_0xeca6('0x10')][_0xeca6('0x23')]!==_0xeca6('0x24')){_0x4b0ee6['extensions']['push']({'type':_0x64cf23[_0x5c7534][0x0][_0xeca6('0x12')],'app':_0xeca6('0x18'),'appdata':_0xeca6('0x25'),'context':_0x64cf23[_0x5c7534][0x0][_0xeca6('0x15')],'exten':_0x64cf23[_0x5c7534][0x0][_0xeca6('0x7')],'priority':_0x4b0ee6['priority']++,'VoiceExtensionId':_0x64cf23[_0x5c7534][0x0][_0xeca6('0x1a')]});_0x4b0ee6[_0xeca6('0xf')][_0xeca6('0x17')]({'type':_0x64cf23[_0x5c7534][0x0][_0xeca6('0x12')],'app':_0xeca6('0x18'),'appdata':_0xeca6('0x26')+_0x4b0ee6[_0xeca6('0x10')]['recordingFormat']||_0xeca6('0x27'),'context':_0x64cf23[_0x5c7534][0x0][_0xeca6('0x15')],'exten':_0x64cf23[_0x5c7534][0x0][_0xeca6('0x7')],'priority':_0x4b0ee6[_0xeca6('0xe')]++,'VoiceExtensionId':_0x64cf23[_0x5c7534][0x0][_0xeca6('0x1a')]});}}_0x4b0ee6['extensions'][_0xeca6('0x17')]({'type':_0x64cf23[_0x5c7534][0x0]['type'],'app':'Set','appdata':_0xeca6('0x28'),'context':_0x64cf23[_0x5c7534][0x0][_0xeca6('0x15')],'exten':_0x64cf23[_0x5c7534][0x0][_0xeca6('0x7')],'priority':_0x4b0ee6[_0xeca6('0xe')]++,'VoiceExtensionId':_0x64cf23[_0x5c7534][0x0][_0xeca6('0x1a')]});_0x4b0ee6[_0xeca6('0xf')][_0xeca6('0x17')]({'type':_0x64cf23[_0x5c7534][0x0][_0xeca6('0x12')],'app':'Set','appdata':_0xeca6('0x29'),'context':_0x64cf23[_0x5c7534][0x0][_0xeca6('0x15')],'exten':_0x64cf23[_0x5c7534][0x0]['exten'],'priority':_0x4b0ee6[_0xeca6('0xe')]++,'VoiceExtensionId':_0x64cf23[_0x5c7534][0x0]['VoiceExtensionId']});_0x4b0ee6['extensions'][_0xeca6('0x17')]({'type':_0x64cf23[_0x5c7534][0x0][_0xeca6('0x12')],'app':_0xeca6('0x18'),'appdata':'MONITOR_OPTIONS=ab','context':_0x64cf23[_0x5c7534][0x0][_0xeca6('0x15')],'exten':_0x64cf23[_0x5c7534][0x0][_0xeca6('0x7')],'priority':_0x4b0ee6[_0xeca6('0xe')]++,'VoiceExtensionId':_0x64cf23[_0x5c7534][0x0]['VoiceExtensionId']});for(var _0x2bfdc7=0x0,_0x45bc1b=0x0;_0x2bfdc7<_0x64cf23[_0x5c7534][_0xeca6('0x2a')];_0x2bfdc7+=0x1,_0x45bc1b=0x0){var _0x2b43cb=_0x64cf23[_0x5c7534][_0x2bfdc7];if(_0x2b43cb['type']){_0x2b43cb[_0xeca6('0x12')]=_0x2b43cb['type']['toLowerCase']();}var _0x191a97=[];var _0x22c786=[];delete _0x2b43cb['id'];delete _0x2b43cb['createdAt'];delete _0x2b43cb['updatedAt'];var _0x4b82fa=_0x2b43cb[_0xeca6('0x2b')]!==_0xeca6('0x2c')?[_0x2b43cb[_0xeca6('0x2b')]]:_0x2b43cb[_0xeca6('0x2d')]?_['map'](_[_0xeca6('0x9')](_0x4b0ee6['intervals'],{'IntervalId':_0x2b43cb[_0xeca6('0x2d')]}),_0xeca6('0x2b')):[];if(_0x2b43cb[_0xeca6('0xd')]('tag')){if(_0x2b43cb[_0xeca6('0x2e')]&&_0x2b43cb['tag']!=='--'){_0x191a97[_0xeca6('0x17')]({'type':_0x2b43cb[_0xeca6('0x12')],'app':_0xeca6('0x18'),'appdata':_0xeca6('0x2f')+_0x2b43cb[_0xeca6('0x2e')],'context':_0x2b43cb[_0xeca6('0x15')],'exten':_0x2b43cb[_0xeca6('0x7')],'priority':_0x4b82fa[_0xeca6('0x2a')]+_0x4b0ee6[_0xeca6('0xe')]+_0x45bc1b++,'VoiceExtensionId':_0x2b43cb[_0xeca6('0x1a')]});}}if(_0x2b43cb[_0xeca6('0x12')]===_0xeca6('0x1b')&&_0x2b43cb[_0xeca6('0xd')](_0xeca6('0x30'))){if(_0x2b43cb['callerID']){_0x191a97[_0xeca6('0x17')]({'type':_0x2b43cb[_0xeca6('0x12')],'app':_0xeca6('0x31'),'appdata':_0xeca6('0x32')+_0x2b43cb[_0xeca6('0x30')]+')','context':_0x2b43cb[_0xeca6('0x15')],'exten':_0x2b43cb[_0xeca6('0x7')],'priority':_0x4b82fa[_0xeca6('0x2a')]+_0x4b0ee6['priority']+_0x45bc1b++,'VoiceExtensionId':_0x2b43cb[_0xeca6('0x1a')]});}else{_0x191a97[_0xeca6('0x17')]({'type':_0x2b43cb[_0xeca6('0x12')],'app':_0xeca6('0x31'),'appdata':_0xeca6('0x33'),'context':_0x2b43cb[_0xeca6('0x15')],'exten':_0x2b43cb[_0xeca6('0x7')],'priority':_0x4b82fa[_0xeca6('0x2a')]+_0x4b0ee6['priority']+_0x45bc1b++,'VoiceExtensionId':_0x2b43cb[_0xeca6('0x1a')]});}}if(_0x2b43cb[_0xeca6('0xd')](_0xeca6('0x34'))){if(_0x52cc4f[_0xeca6('0x35')](_0x2b43cb[_0xeca6('0x36')][_0xeca6('0x37')]())>=0x0&&_0x2b43cb[_0xeca6('0x38')]!==_0xeca6('0x39')){if(_0x2b43cb[_0xeca6('0x34')]){_0x191a97[_0xeca6('0x17')]({'type':_0x2b43cb[_0xeca6('0x12')],'app':'ExecIf','appdata':_0xeca6('0x3a'),'context':_0x2b43cb[_0xeca6('0x15')],'exten':_0x2b43cb[_0xeca6('0x7')],'priority':_0x4b82fa[_0xeca6('0x2a')]+_0x4b0ee6[_0xeca6('0xe')]+_0x45bc1b++,'VoiceExtensionId':_0x2b43cb[_0xeca6('0x1a')]});_0x191a97[_0xeca6('0x17')]({'type':_0x2b43cb[_0xeca6('0x12')],'app':_0xeca6('0x18'),'appdata':'XCALLY-MOTION-ANSWER=1','context':_0x2b43cb[_0xeca6('0x15')],'exten':_0x2b43cb[_0xeca6('0x7')],'priority':_0x4b82fa['length']+_0x4b0ee6[_0xeca6('0xe')]+_0x45bc1b++,'VoiceExtensionId':_0x2b43cb['VoiceExtensionId']});}else{_0x191a97[_0xeca6('0x17')]({'type':_0x2b43cb[_0xeca6('0x12')],'app':_0xeca6('0x31'),'appdata':_0xeca6('0x3b'),'context':_0x2b43cb[_0xeca6('0x15')],'exten':_0x2b43cb[_0xeca6('0x7')],'priority':_0x4b82fa['length']+_0x4b0ee6['priority']+_0x45bc1b++,'VoiceExtensionId':_0x2b43cb[_0xeca6('0x1a')]});_0x191a97[_0xeca6('0x17')]({'type':_0x2b43cb['type'],'app':_0xeca6('0x18'),'appdata':_0xeca6('0x3c'),'context':_0x2b43cb[_0xeca6('0x15')],'exten':_0x2b43cb['exten'],'priority':_0x4b82fa['length']+_0x4b0ee6[_0xeca6('0xe')]+_0x45bc1b++,'VoiceExtensionId':_0x2b43cb[_0xeca6('0x1a')]});}}}for(var _0x274072=0x0;_0x274072<_0x4b82fa[_0xeca6('0x2a')];_0x274072+=0x1){var _0x2fea68=_0x4b0ee6[_0xeca6('0xe')]+_0x4b82fa[_0xeca6('0x2a')];var _0x5dec70=_0x274072===_0x4b82fa[_0xeca6('0x2a')]-0x1?_0x4b0ee6[_0xeca6('0xe')]+_0x191a97['length']+_0x22c786[_0xeca6('0x2a')]+0x2:_0x4b0ee6['priority']+_0x274072+0x1;_0x191a97['splice'](_0x274072,0x0,{'type':_0x2b43cb[_0xeca6('0x12')],'app':_0xeca6('0x3d'),'appdata':_0x4b82fa[_0x274072]+'?'+_0x2b43cb[_0xeca6('0x15')]+_0xeca6('0x3e')+_0x2fea68+':'+_0x2b43cb[_0xeca6('0x15')]+_0xeca6('0x3e')+_0x5dec70,'exten':_0x2b43cb[_0xeca6('0x7')],'context':_0x2b43cb['context'],'priority':_0x4b0ee6[_0xeca6('0xe')]+_0x274072,'VoiceExtensionId':_0x64cf23[_0x5c7534][0x0][_0xeca6('0x1a')]});}_0x2b43cb[_0xeca6('0xe')]=_0x191a97[_0xeca6('0x2a')]?_[_0xeca6('0x3f')](_0x191a97)['priority']+0x1:_0x4b0ee6[_0xeca6('0xe')];_0x4b0ee6['priority']=(_0x22c786[_0xeca6('0x2a')]?_[_0xeca6('0x3f')](_0x22c786)[_0xeca6('0xe')]:_0x2b43cb[_0xeca6('0xe')])+0x1;_0x4b0ee6[_0xeca6('0xf')]=_[_0xeca6('0x40')](_0x4b0ee6[_0xeca6('0xf')],_0x191a97,[_0x2b43cb],_0x22c786);}_0x4b0ee6['extensions'][_0xeca6('0x17')]({'type':_0x64cf23[_0x5c7534][0x0]['type'],'app':_0xeca6('0x41'),'exten':_0x64cf23[_0x5c7534][0x0][_0xeca6('0x7')],'context':_0x64cf23[_0x5c7534][0x0]['context'],'priority':_0x4b0ee6[_0xeca6('0xe')],'VoiceExtensionId':_0x64cf23[_0x5c7534][0x0][_0xeca6('0x1a')]});_0x42d274[_0xeca6('0x17')](_0x64cf23[_0x5c7534][0x0][_0xeca6('0x1a')]);_0x18acf9=_[_0xeca6('0x40')](_0x18acf9,_0x4b0ee6[_0xeca6('0xf')]);}}return _0x3aa01d[_0xeca6('0x42')](function(_0x704f7d){return _0x3aa01d[_0xeca6('0x0')][_0xeca6('0x4')][_0xeca6('0x43')]({'where':{'VoiceExtensionId':{'$in':_0x42d274}},'transaction':_0x704f7d})[_0xeca6('0x3')](function(_0xa88c9e){return _0x3aa01d[_0xeca6('0x0')][_0xeca6('0x4')][_0xeca6('0x44')](_[_0xeca6('0x45')](_0x18acf9,_0xeca6('0xe')),{'transaction':_0x704f7d});});});})[_0xeca6('0x46')](function(_0x5318c7){console[_0xeca6('0x47')](_0x5318c7);});}exports[_0xeca6('0x48')]=rewrite;
\ No newline at end of file
+var _0x8af9=['then','models','VoiceExtension','IntervalId','map','CAST(priority\x20AS\x20UNSIGNED)','filter','groupBy','queue','playback','hasOwnProperty','priority','extensions','exten','push','Set','format','type','context','inbound','CDR(routeid)=','VoiceExtensionId','outbound','extension','CDR(destination)=','cutdigits','${EXTEN:','${EXTEN}','ExecIf','):Goto(','CDR(prefix)=${EXTEN:0:','CDR(prefix)=noprefix','recordingFormat','none','_XCALLY_MIXMONITOR_UNIQUEID=${UNIQUEID}','XCALLY-MOTION-ANSWER=0','XCALLY-MOTION-PROGRESS=0','MONITOR_OPTIONS=ab','toLowerCase','createdAt','updatedAt','interval','intervals','tag','CDR(tag)=','callerID','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):Set(CALLERID(all)=','length','$[${LEN(${PREFIX-CALLERIDALL})}\x20>\x200]?Set(CALLERID(all)=${PREFIX-CALLERIDALL}):NoOp(No\x20number\x20available)','answer','indexOf','app','appType','custom','$[${XCALLY-MOTION-ANSWER}=0]?Answer','XCALLY-MOTION-ANSWER=1','$[${XCALLY-MOTION-PROGRESS}=0]?Progress','XCALLY-MOTION-PROGRESS=1','splice',',${EXTEN},','last','concat','transaction','sortBy','catch','rewrite','lodash','util','findAll'];(function(_0x5e43d3,_0x4ac566){var _0x374f2e=function(_0x706167){while(--_0x706167){_0x5e43d3['push'](_0x5e43d3['shift']());}};_0x374f2e(++_0x4ac566);}(_0x8af9,0x111));var _0x98af=function(_0x3ca328,_0x4bf218){_0x3ca328=_0x3ca328-0x0;var _0x50f7ee=_0x8af9[_0x3ca328];return _0x50f7ee;};'use strict';var _=require(_0x98af('0x0'));var util=require(_0x98af('0x1'));function rewrite(_0x5aa987,_0x18b126){var _0x58f7bd=this;return _0x5aa987['models']['Interval'][_0x98af('0x2')]({'raw':!![]})[_0x98af('0x3')](function(_0x2d9f06){_0x58f7bd['intervals']=_0x2d9f06;return _0x5aa987[_0x98af('0x4')][_0x98af('0x5')][_0x98af('0x2')]({'where':{'IntervalId':_0x18b126[_0x98af('0x6')]},'raw':!![]});})[_0x98af('0x3')](function(_0x594cc5){return _0x5aa987[_0x98af('0x4')][_0x98af('0x5')]['findAll']({'where':{'exten':{'$in':_['uniq'](_[_0x98af('0x7')](_0x594cc5,'exten'))}},'order':[{'raw':_0x98af('0x8')}],'raw':!![]});})[_0x98af('0x3')](function(_0x3ba0ff){var _0x569186=_[_0x98af('0x9')](_0x3ba0ff,{'priority':'1'});var _0x1cb8e1=_[_0x98af('0x9')](_0x3ba0ff,{'isApp':0x1});var _0x382d50=_[_0x98af('0xa')](_0x1cb8e1,'exten');var _0x1965d1=[_0x98af('0xb'),_0x98af('0xc')];var _0x1f73f3=[];var _0x3fdbe5=[];for(var _0x5e2d6d in _0x382d50){if(_0x382d50[_0x98af('0xd')](_0x5e2d6d)){_0x58f7bd[_0x98af('0xe')]=0x2;_0x58f7bd[_0x98af('0xf')]=[];_0x58f7bd['extension']=_['find'](_0x569186,{'exten':_0x382d50[_0x5e2d6d][0x0][_0x98af('0x10')]});_0x58f7bd[_0x98af('0xf')][_0x98af('0x11')]({'type':_0x382d50[_0x5e2d6d][0x0]['type'],'app':_0x98af('0x12'),'appdata':util[_0x98af('0x13')]('CDR(type)=%s',_0x382d50[_0x5e2d6d][0x0][_0x98af('0x14')]),'context':_0x382d50[_0x5e2d6d][0x0][_0x98af('0x15')],'exten':_0x382d50[_0x5e2d6d][0x0][_0x98af('0x10')],'priority':_0x58f7bd['priority']++,'VoiceExtensionId':_0x382d50[_0x5e2d6d][0x0]['VoiceExtensionId']});if(_0x382d50[_0x5e2d6d][0x0][_0x98af('0x14')]===_0x98af('0x16')){_0x58f7bd['extensions'][_0x98af('0x11')]({'type':_0x382d50[_0x5e2d6d][0x0][_0x98af('0x14')],'app':'Set','appdata':_0x98af('0x17')+_0x382d50[_0x5e2d6d][0x0][_0x98af('0x18')],'context':_0x382d50[_0x5e2d6d][0x0]['context'],'exten':_0x382d50[_0x5e2d6d][0x0][_0x98af('0x10')],'priority':_0x58f7bd[_0x98af('0xe')]++,'VoiceExtensionId':_0x382d50[_0x5e2d6d][0x0][_0x98af('0x18')]});}else if(_0x382d50[_0x5e2d6d][0x0][_0x98af('0x14')]===_0x98af('0x19')){if(_0x58f7bd[_0x98af('0x1a')]){_0x58f7bd['extensions'][_0x98af('0x11')]({'type':_0x382d50[_0x5e2d6d][0x0][_0x98af('0x14')],'app':_0x98af('0x12'),'appdata':_0x98af('0x1b')+(_0x58f7bd[_0x98af('0x1a')][_0x98af('0x1c')]?_0x98af('0x1d')+_0x58f7bd[_0x98af('0x1a')][_0x98af('0x1c')]+'}':_0x98af('0x1e')),'context':_0x382d50[_0x5e2d6d][0x0][_0x98af('0x15')],'exten':_0x382d50[_0x5e2d6d][0x0]['exten'],'priority':_0x58f7bd[_0x98af('0xe')]++,'VoiceExtensionId':_0x382d50[_0x5e2d6d][0x0][_0x98af('0x18')]});}_0x58f7bd[_0x98af('0xf')][_0x98af('0x11')]({'type':_0x382d50[_0x5e2d6d][0x0][_0x98af('0x14')],'app':_0x98af('0x12'),'appdata':'CDR(routeid)='+_0x382d50[_0x5e2d6d][0x0][_0x98af('0x18')],'context':_0x382d50[_0x5e2d6d][0x0][_0x98af('0x15')],'exten':_0x382d50[_0x5e2d6d][0x0][_0x98af('0x10')],'priority':_0x58f7bd[_0x98af('0xe')]++,'VoiceExtensionId':_0x382d50[_0x5e2d6d][0x0][_0x98af('0x18')]});var _0x1edf00=_0x58f7bd[_0x98af('0xe')]++;_0x58f7bd[_0x98af('0xf')][_0x98af('0x11')]({'type':_0x382d50[_0x5e2d6d][0x0][_0x98af('0x14')],'app':_0x98af('0x1f'),'appdata':'$[${LEN(${CDR(prefix)})}\x20>\x200]?Goto('+(_0x1edf00+0x2)+_0x98af('0x20')+(_0x1edf00+0x1)+')','context':_0x382d50[_0x5e2d6d][0x0][_0x98af('0x15')],'exten':_0x382d50[_0x5e2d6d][0x0][_0x98af('0x10')],'priority':_0x1edf00,'VoiceExtensionId':_0x382d50[_0x5e2d6d][0x0][_0x98af('0x18')]});if(_0x58f7bd[_0x98af('0x1a')]){_0x58f7bd[_0x98af('0xf')][_0x98af('0x11')]({'type':_0x382d50[_0x5e2d6d][0x0][_0x98af('0x14')],'app':'Set','appdata':_0x58f7bd[_0x98af('0x1a')][_0x98af('0x1c')]?_0x98af('0x21')+_0x58f7bd[_0x98af('0x1a')][_0x98af('0x1c')]+'}':_0x98af('0x22'),'context':_0x382d50[_0x5e2d6d][0x0]['context'],'exten':_0x382d50[_0x5e2d6d][0x0]['exten'],'priority':_0x58f7bd['priority']++,'VoiceExtensionId':_0x382d50[_0x5e2d6d][0x0][_0x98af('0x18')]});}_0x58f7bd[_0x98af('0xf')][_0x98af('0x11')]({'type':_0x382d50[_0x5e2d6d][0x0][_0x98af('0x14')],'app':_0x98af('0x12'),'appdata':'outboundrouteid='+_0x382d50[_0x5e2d6d][0x0][_0x98af('0x18')],'context':_0x382d50[_0x5e2d6d][0x0][_0x98af('0x15')],'exten':_0x382d50[_0x5e2d6d][0x0][_0x98af('0x10')],'priority':_0x58f7bd[_0x98af('0xe')]++,'VoiceExtensionId':_0x382d50[_0x5e2d6d][0x0]['VoiceExtensionId']});if(_0x58f7bd[_0x98af('0x1a')]&&_0x58f7bd[_0x98af('0x1a')]['hasOwnProperty'](_0x98af('0x23'))&&_0x58f7bd['extension'][_0x98af('0x23')]!==_0x98af('0x24')){_0x58f7bd['extensions'][_0x98af('0x11')]({'type':_0x382d50[_0x5e2d6d][0x0][_0x98af('0x14')],'app':_0x98af('0x12'),'appdata':_0x98af('0x25'),'context':_0x382d50[_0x5e2d6d][0x0][_0x98af('0x15')],'exten':_0x382d50[_0x5e2d6d][0x0]['exten'],'priority':_0x58f7bd['priority']++,'VoiceExtensionId':_0x382d50[_0x5e2d6d][0x0][_0x98af('0x18')]});_0x58f7bd[_0x98af('0xf')][_0x98af('0x11')]({'type':_0x382d50[_0x5e2d6d][0x0][_0x98af('0x14')],'app':_0x98af('0x12'),'appdata':'_XCALLY_MIXMONITOR_FORMAT='+_0x58f7bd[_0x98af('0x1a')][_0x98af('0x23')]||'wav','context':_0x382d50[_0x5e2d6d][0x0][_0x98af('0x15')],'exten':_0x382d50[_0x5e2d6d][0x0][_0x98af('0x10')],'priority':_0x58f7bd[_0x98af('0xe')]++,'VoiceExtensionId':_0x382d50[_0x5e2d6d][0x0][_0x98af('0x18')]});}}_0x58f7bd[_0x98af('0xf')]['push']({'type':_0x382d50[_0x5e2d6d][0x0][_0x98af('0x14')],'app':'Set','appdata':_0x98af('0x26'),'context':_0x382d50[_0x5e2d6d][0x0][_0x98af('0x15')],'exten':_0x382d50[_0x5e2d6d][0x0]['exten'],'priority':_0x58f7bd['priority']++,'VoiceExtensionId':_0x382d50[_0x5e2d6d][0x0][_0x98af('0x18')]});_0x58f7bd['extensions'][_0x98af('0x11')]({'type':_0x382d50[_0x5e2d6d][0x0][_0x98af('0x14')],'app':_0x98af('0x12'),'appdata':_0x98af('0x27'),'context':_0x382d50[_0x5e2d6d][0x0]['context'],'exten':_0x382d50[_0x5e2d6d][0x0]['exten'],'priority':_0x58f7bd['priority']++,'VoiceExtensionId':_0x382d50[_0x5e2d6d][0x0][_0x98af('0x18')]});_0x58f7bd[_0x98af('0xf')]['push']({'type':_0x382d50[_0x5e2d6d][0x0][_0x98af('0x14')],'app':_0x98af('0x12'),'appdata':_0x98af('0x28'),'context':_0x382d50[_0x5e2d6d][0x0]['context'],'exten':_0x382d50[_0x5e2d6d][0x0][_0x98af('0x10')],'priority':_0x58f7bd[_0x98af('0xe')]++,'VoiceExtensionId':_0x382d50[_0x5e2d6d][0x0][_0x98af('0x18')]});for(var _0x7f5658=0x0,_0x3059aa=0x0;_0x7f5658<_0x382d50[_0x5e2d6d]['length'];_0x7f5658+=0x1,_0x3059aa=0x0){var _0x2a5bf5=_0x382d50[_0x5e2d6d][_0x7f5658];if(_0x2a5bf5[_0x98af('0x14')]){_0x2a5bf5[_0x98af('0x14')]=_0x2a5bf5[_0x98af('0x14')][_0x98af('0x29')]();}var _0x130714=[];var _0x5b8c64=[];delete _0x2a5bf5['id'];delete _0x2a5bf5[_0x98af('0x2a')];delete _0x2a5bf5[_0x98af('0x2b')];var _0x3d701d=_0x2a5bf5[_0x98af('0x2c')]!=='*,*,*,*'?[_0x2a5bf5[_0x98af('0x2c')]]:_0x2a5bf5[_0x98af('0x6')]?_[_0x98af('0x7')](_[_0x98af('0x9')](_0x58f7bd[_0x98af('0x2d')],{'IntervalId':_0x2a5bf5[_0x98af('0x6')]}),_0x98af('0x2c')):[];if(_0x2a5bf5[_0x98af('0xd')](_0x98af('0x2e'))){if(_0x2a5bf5['tag']&&_0x2a5bf5[_0x98af('0x2e')]!=='--'){_0x130714[_0x98af('0x11')]({'type':_0x2a5bf5[_0x98af('0x14')],'app':_0x98af('0x12'),'appdata':_0x98af('0x2f')+_0x2a5bf5[_0x98af('0x2e')],'context':_0x2a5bf5['context'],'exten':_0x2a5bf5[_0x98af('0x10')],'priority':_0x3d701d['length']+_0x58f7bd[_0x98af('0xe')]+_0x3059aa++,'VoiceExtensionId':_0x2a5bf5[_0x98af('0x18')]});}}if(_0x2a5bf5[_0x98af('0x14')]==='outbound'&&_0x2a5bf5[_0x98af('0xd')](_0x98af('0x30'))){if(_0x2a5bf5['callerID']){_0x130714[_0x98af('0x11')]({'type':_0x2a5bf5['type'],'app':_0x98af('0x1f'),'appdata':_0x98af('0x31')+_0x2a5bf5[_0x98af('0x30')]+')','context':_0x2a5bf5[_0x98af('0x15')],'exten':_0x2a5bf5[_0x98af('0x10')],'priority':_0x3d701d[_0x98af('0x32')]+_0x58f7bd[_0x98af('0xe')]+_0x3059aa++,'VoiceExtensionId':_0x2a5bf5['VoiceExtensionId']});}else{_0x130714['push']({'type':_0x2a5bf5[_0x98af('0x14')],'app':_0x98af('0x1f'),'appdata':_0x98af('0x33'),'context':_0x2a5bf5[_0x98af('0x15')],'exten':_0x2a5bf5[_0x98af('0x10')],'priority':_0x3d701d[_0x98af('0x32')]+_0x58f7bd[_0x98af('0xe')]+_0x3059aa++,'VoiceExtensionId':_0x2a5bf5[_0x98af('0x18')]});}}if(_0x2a5bf5[_0x98af('0xd')](_0x98af('0x34'))){if(_0x1965d1[_0x98af('0x35')](_0x2a5bf5[_0x98af('0x36')]['toLowerCase']())>=0x0&&_0x2a5bf5[_0x98af('0x37')]!==_0x98af('0x38')){if(_0x2a5bf5['answer']){_0x130714['push']({'type':_0x2a5bf5['type'],'app':_0x98af('0x1f'),'appdata':_0x98af('0x39'),'context':_0x2a5bf5[_0x98af('0x15')],'exten':_0x2a5bf5[_0x98af('0x10')],'priority':_0x3d701d['length']+_0x58f7bd[_0x98af('0xe')]+_0x3059aa++,'VoiceExtensionId':_0x2a5bf5[_0x98af('0x18')]});_0x130714[_0x98af('0x11')]({'type':_0x2a5bf5[_0x98af('0x14')],'app':_0x98af('0x12'),'appdata':_0x98af('0x3a'),'context':_0x2a5bf5[_0x98af('0x15')],'exten':_0x2a5bf5[_0x98af('0x10')],'priority':_0x3d701d[_0x98af('0x32')]+_0x58f7bd[_0x98af('0xe')]+_0x3059aa++,'VoiceExtensionId':_0x2a5bf5[_0x98af('0x18')]});}else{_0x130714['push']({'type':_0x2a5bf5[_0x98af('0x14')],'app':_0x98af('0x1f'),'appdata':_0x98af('0x3b'),'context':_0x2a5bf5[_0x98af('0x15')],'exten':_0x2a5bf5[_0x98af('0x10')],'priority':_0x3d701d[_0x98af('0x32')]+_0x58f7bd[_0x98af('0xe')]+_0x3059aa++,'VoiceExtensionId':_0x2a5bf5[_0x98af('0x18')]});_0x130714[_0x98af('0x11')]({'type':_0x2a5bf5[_0x98af('0x14')],'app':'Set','appdata':_0x98af('0x3c'),'context':_0x2a5bf5[_0x98af('0x15')],'exten':_0x2a5bf5[_0x98af('0x10')],'priority':_0x3d701d[_0x98af('0x32')]+_0x58f7bd[_0x98af('0xe')]+_0x3059aa++,'VoiceExtensionId':_0x2a5bf5[_0x98af('0x18')]});}}}for(var _0x5ccd1a=0x0;_0x5ccd1a<_0x3d701d[_0x98af('0x32')];_0x5ccd1a+=0x1){var _0x2ec516=_0x58f7bd['priority']+_0x3d701d[_0x98af('0x32')];var _0x5080b9=_0x5ccd1a===_0x3d701d[_0x98af('0x32')]-0x1?_0x58f7bd[_0x98af('0xe')]+_0x130714[_0x98af('0x32')]+_0x5b8c64[_0x98af('0x32')]+0x2:_0x58f7bd[_0x98af('0xe')]+_0x5ccd1a+0x1;_0x130714[_0x98af('0x3d')](_0x5ccd1a,0x0,{'type':_0x2a5bf5[_0x98af('0x14')],'app':'GotoIfTime','appdata':_0x3d701d[_0x5ccd1a]+'?'+_0x2a5bf5[_0x98af('0x15')]+',${EXTEN},'+_0x2ec516+':'+_0x2a5bf5['context']+_0x98af('0x3e')+_0x5080b9,'exten':_0x2a5bf5[_0x98af('0x10')],'context':_0x2a5bf5[_0x98af('0x15')],'priority':_0x58f7bd[_0x98af('0xe')]+_0x5ccd1a,'VoiceExtensionId':_0x382d50[_0x5e2d6d][0x0]['VoiceExtensionId']});}_0x2a5bf5['priority']=_0x130714[_0x98af('0x32')]?_[_0x98af('0x3f')](_0x130714)['priority']+0x1:_0x58f7bd['priority'];_0x58f7bd[_0x98af('0xe')]=(_0x5b8c64[_0x98af('0x32')]?_[_0x98af('0x3f')](_0x5b8c64)[_0x98af('0xe')]:_0x2a5bf5[_0x98af('0xe')])+0x1;_0x58f7bd[_0x98af('0xf')]=_[_0x98af('0x40')](_0x58f7bd['extensions'],_0x130714,[_0x2a5bf5],_0x5b8c64);}_0x58f7bd[_0x98af('0xf')][_0x98af('0x11')]({'type':_0x382d50[_0x5e2d6d][0x0][_0x98af('0x14')],'app':'Hangup','exten':_0x382d50[_0x5e2d6d][0x0][_0x98af('0x10')],'context':_0x382d50[_0x5e2d6d][0x0][_0x98af('0x15')],'priority':_0x58f7bd['priority'],'VoiceExtensionId':_0x382d50[_0x5e2d6d][0x0][_0x98af('0x18')]});_0x1f73f3['push'](_0x382d50[_0x5e2d6d][0x0][_0x98af('0x18')]);_0x3fdbe5=_[_0x98af('0x40')](_0x3fdbe5,_0x58f7bd[_0x98af('0xf')]);}}return _0x5aa987[_0x98af('0x41')](function(_0x41cd10){return _0x5aa987['models'][_0x98af('0x5')]['destroy']({'where':{'VoiceExtensionId':{'$in':_0x1f73f3}},'transaction':_0x41cd10})[_0x98af('0x3')](function(_0x521021){return _0x5aa987[_0x98af('0x4')]['VoiceExtension']['bulkCreate'](_[_0x98af('0x42')](_0x3fdbe5,_0x98af('0xe')),{'transaction':_0x41cd10});});});})[_0x98af('0x43')](function(_0x2d225e){console['error'](_0x2d225e);});}exports[_0x98af('0x44')]=rewrite;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0d93=['ListId\x20=\x20?','id\x20IN\x20?','calleridnum','cm_hopper_final','fromQuery','str','VoiceQueue','findAll','outbound','dialCheckDuplicateType','CmList','Lists','then','get','sequelize','query','VoiceQueueId','all','BlackLists','onlyIfOpen','CampaignId','Campaign','Error\x20processing\x20rows\x20block:','finally','emit','contact:csv_','Unable\x20to\x20delete\x20temp\x20file:','SIGINT','info','CSV\x20import\x20process\x20stopped!','createReadStream','parse','pause','CSV\x20parsed\x20correctly!','Error\x20executing\x20contact\x20csv\x20import:','bluebird','squel','ioredis','../../../mysqldb','../../../config/environment','api','redis','localhost','socket.io-emitter','register','argv','null','undefined','zipObject','split','Missing\x20socket_timestamp\x20parameter!','error','contact','index','isNil','The\x20row\x20is\x20empty\x20or\x20the\x20number\x20of\x20parameters\x20does\x20not\x20match\x20the\x20columns!','errors','length','message','join','hasOwnProperty','data','firstName\x20not\x20specified!','phone\x20not\x20specified!','birthDate','YYYY-MM-DD','isValid','birthDate\x20format\x20is\x20invalid,\x20YYYY-MM-DD\x20format\x20is\x20supported!','email','email\x20format\x20is\x20not\x20valid!','ListId','CompanyId','duplicate','Duplicate\x20Contact','CmContact','create','push','pick','catch','Error\x20while\x20creating\x20contact:\x20','stringify','cmContact','checkHopper','inspect','cm_hopper','phone','ContactId','createdAt','select','field','NOW()','scheduledAt','toString','updatedAt','deletedAt\x20IS\x20NULL','where','phone\x20IS\x20NOT\x20NULL','phone\x20NOT\x20IN\x20(?)','from','\x20=\x20?','into','cm_contacts'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x0d93,0x89));var _0x30d9=function(_0x19f5fc,_0x4c658a){_0x19f5fc=_0x19f5fc-0x0;var _0x315fa3=_0x0d93[_0x19f5fc];return _0x315fa3;};'use strict';var BPromise=require(_0x30d9('0x0'));var util=require('util');var _=require('lodash');var fs=require('fs');var squel=require(_0x30d9('0x1'));var Papa=require('papaparse');var Redis=require(_0x30d9('0x2'));var db=require(_0x30d9('0x3'))['db'];var config=require(_0x30d9('0x4'));var logger=require('../../../config/logger')(_0x30d9('0x5'));config['redis']=_['defaults'](config[_0x30d9('0x6')],{'host':_0x30d9('0x7'),'port':0x18eb});var socket=require(_0x30d9('0x8'))(new Redis(config[_0x30d9('0x6')]));require('../../../api/cmContact/cmContact.socket')[_0x30d9('0x9')](socket);try{if(!process[_0x30d9('0xa')][0x2]||process[_0x30d9('0xa')][0x2]==='undefined'||process[_0x30d9('0xa')][0x2]===_0x30d9('0xb')){throw new Error('Missing\x20filepath\x20parameter!');}var FILEPATH=process['argv'][0x2];if(!process['argv'][0x3]||process[_0x30d9('0xa')][0x3]===_0x30d9('0xc')||process[_0x30d9('0xa')][0x3]==='null'||!process[_0x30d9('0xa')][0x4]||process[_0x30d9('0xa')][0x4]===_0x30d9('0xc')||process[_0x30d9('0xa')][0x4]===_0x30d9('0xb')){throw new Error('Missing\x20binding\x20parameters!');}var FIELDS=_[_0x30d9('0xd')](process[_0x30d9('0xa')][0x3][_0x30d9('0xe')](','),process[_0x30d9('0xa')][0x4]['split'](','));if(!process[_0x30d9('0xa')][0x5]||process[_0x30d9('0xa')][0x5]===_0x30d9('0xc')||process['argv'][0x5]===_0x30d9('0xb')){throw new Error('Missing\x20ListId\x20parameter!');}var LISTID=process[_0x30d9('0xa')][0x5];var COMPANYID=process[_0x30d9('0xa')][0x6]&&process[_0x30d9('0xa')][0x6]!==_0x30d9('0xc')&&process['argv'][0x6]!==_0x30d9('0xb')?process[_0x30d9('0xa')][0x6]:null;var DUPLICATES=process['argv'][0x7]&&process[_0x30d9('0xa')][0x7]!==_0x30d9('0xc')&&process['argv'][0x7]!==_0x30d9('0xb')?process[_0x30d9('0xa')][0x7]:null;if(!process[_0x30d9('0xa')][0x8]||process[_0x30d9('0xa')][0x8]==='undefined'||process[_0x30d9('0xa')][0x8]===_0x30d9('0xb')){throw new Error(_0x30d9('0xf'));}var SOCKET_TIMESTAMP=process['argv'][0x8];}catch(_0x16a7b1){logger[_0x30d9('0x10')](_0x16a7b1);endCsv();}var total=0x0;var pTotal=0x0;var success=0x0;var errors=0x0;var duplicates=0x0;var rows=[];var hopperContacts='';var promises=[];var index=0x0;var alreadyInvalid=![];function handleCheckRowError(_0x7c5704,_0x1524a3,_0x306ea1,_0x274b1b){var _0xf8f1c1={'message':_0x1524a3};_0xf8f1c1[_0x7c5704]=!![];if(_0x306ea1){_0xf8f1c1[_0x30d9('0x11')]=_0x306ea1;}if(_0x274b1b){_0xf8f1c1[_0x30d9('0x12')]=_0x274b1b;}return _0xf8f1c1;}function isEmail(_0x5ad92d){return/^([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22))*\x40([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d))*$/['test'](_0x5ad92d);}function checkRow(_0x4d5570,_0x4fde04,_0x4aabaa){return new BPromise(function(_0x258e3c,_0x454d86){if(_[_0x30d9('0x13')](_0x4d5570)){return _0x454d86(handleCheckRowError(_0x30d9('0x10'),_0x30d9('0x14'),null,_0x4aabaa));}if(_0x4d5570['errors']&&_0x4d5570[_0x30d9('0x15')][_0x30d9('0x16')]){var _0x5b4799=_['map'](_0x4d5570[_0x30d9('0x15')],_0x30d9('0x17'))[_0x30d9('0x18')](';');return _0x454d86(handleCheckRowError(_0x30d9('0x10'),_0x5b4799,null,_0x4aabaa));}var _0x5cc665={};for(var _0x310968 in FIELDS){if(FIELDS[_0x30d9('0x19')](_0x310968)&&FIELDS[_0x310968]){_0x5cc665[_0x310968]=_0x4d5570['data'][0x0][FIELDS[_0x310968]]||_0x4d5570[_0x30d9('0x1a')][0x0]['\ufeff'+FIELDS[_0x310968]];}}if(!_0x5cc665['firstName']){return _0x454d86(handleCheckRowError(_0x30d9('0x10'),_0x30d9('0x1b'),null,_0x4aabaa));}if(!_0x5cc665['phone']){return _0x454d86(handleCheckRowError(_0x30d9('0x10'),_0x30d9('0x1c'),null,_0x4aabaa));}if(_0x5cc665['birthDate']){var _0x4af8fa=moment(_0x5cc665[_0x30d9('0x1d')],_0x30d9('0x1e'));if(!_0x4af8fa[_0x30d9('0x1f')]()){return _0x454d86(handleCheckRowError(_0x30d9('0x10'),_0x30d9('0x20'),null,_0x4aabaa));}}if(_0x5cc665[_0x30d9('0x21')]){if(!isEmail(_0x5cc665[_0x30d9('0x21')])){return _0x454d86(handleCheckRowError(_0x30d9('0x10'),_0x30d9('0x22'),null,_0x4aabaa));}}_0x5cc665[_0x30d9('0x23')]=LISTID;_0x5cc665[_0x30d9('0x24')]=COMPANYID||undefined;if(DUPLICATES&&DUPLICATES[_0x30d9('0x16')]&&_0x4fde04){var _0x594d23={};for(var _0x1ed4c9=0x0,_0x2688a2=DUPLICATES['length'];_0x1ed4c9<_0x2688a2;_0x1ed4c9+=0x1){_0x594d23[DUPLICATES[_0x1ed4c9]]=_0x5cc665[DUPLICATES[_0x1ed4c9]];}var _0x6bba54=_['find'](_0x4fde04,_0x594d23);if(_0x6bba54){return _0x454d86(handleCheckRowError(_0x30d9('0x25'),_0x30d9('0x26'),_0x6bba54,_0x4aabaa));}}return db[_0x30d9('0x27')][_0x30d9('0x28')](_0x5cc665,{'raw':!![],'hooks':![],'fields':_['keys'](_0x5cc665)})['then'](function(_0x14211f){if(DUPLICATES&&DUPLICATES[_0x30d9('0x16')]&&_0x4fde04){_0x4fde04[_0x30d9('0x29')](_[_0x30d9('0x2a')](_0x5cc665,DUPLICATES));}hopperContacts+=(hopperContacts?',':'')+_0x14211f['id'];return _0x258e3c();})[_0x30d9('0x2b')](function(_0x1dc89f){return _0x454d86(handleCheckRowError('error',_0x30d9('0x2c')+(_0x1dc89f['message']||JSON[_0x30d9('0x2d')](_0x1dc89f)),null,_0x4aabaa));});});}function checkHopper(){function _0x4e5ef2(){return function(_0x4598a6){logger[_0x30d9('0x10')](_0x30d9('0x2e'),_0x30d9('0x2f'),util[_0x30d9('0x30')](_0x4598a6,{'showHidden':![],'depth':null}));};}var _0x216c1b=function(_0x327c05,_0x5863d3){var _0x2ac58a=squel['insert']()['into'](_0x30d9('0x31'))['fromQuery']([_0x30d9('0x32'),'scheduledAt',_0x30d9('0x33'),_0x30d9('0x23'),_0x5863d3,_0x30d9('0x34'),'updatedAt'],squel[_0x30d9('0x35')]()[_0x30d9('0x36')](_0x30d9('0x32'),'phone')[_0x30d9('0x36')](_0x30d9('0x37'),_0x30d9('0x38'))[_0x30d9('0x36')]('id',_0x30d9('0x33'))[_0x30d9('0x36')](LISTID[_0x30d9('0x39')](),_0x30d9('0x23'))[_0x30d9('0x36')](_0x327c05['id'][_0x30d9('0x39')](),_0x5863d3)[_0x30d9('0x36')](_0x30d9('0x37'),'createdAt')[_0x30d9('0x36')]('NOW()',_0x30d9('0x3a'))['from']('cm_contacts')['where'](_0x30d9('0x3b'))[_0x30d9('0x3c')]('ListId\x20=\x20?',LISTID[_0x30d9('0x39')]())[_0x30d9('0x3c')](_0x30d9('0x3d'))[_0x30d9('0x3c')](_0x30d9('0x3e'),squel[_0x30d9('0x35')]()[_0x30d9('0x36')](_0x30d9('0x32'))[_0x30d9('0x3f')](_0x30d9('0x31'))['where'](_0x5863d3+_0x30d9('0x40'),_0x327c05['id'][_0x30d9('0x39')]())))[_0x30d9('0x39')]();return _0x2ac58a;};var _0x16872c=function(_0x53bd05,_0x2d35e4){var _0xc4b950=squel['insert']()[_0x30d9('0x41')](_0x30d9('0x31'))['fromQuery']([_0x30d9('0x32'),'scheduledAt',_0x30d9('0x33'),_0x30d9('0x23'),_0x2d35e4,_0x30d9('0x34'),_0x30d9('0x3a')],squel[_0x30d9('0x35')]()[_0x30d9('0x36')](_0x30d9('0x32'),_0x30d9('0x32'))['field'](_0x30d9('0x37'),_0x30d9('0x38'))[_0x30d9('0x36')]('id',_0x30d9('0x33'))[_0x30d9('0x36')](LISTID['toString'](),_0x30d9('0x23'))[_0x30d9('0x36')](_0x53bd05['id'][_0x30d9('0x39')](),_0x2d35e4)[_0x30d9('0x36')](_0x30d9('0x37'),_0x30d9('0x34'))[_0x30d9('0x36')](_0x30d9('0x37'),_0x30d9('0x3a'))[_0x30d9('0x3f')](_0x30d9('0x42'))[_0x30d9('0x3c')](_0x30d9('0x3b'))['where'](_0x30d9('0x43'),LISTID[_0x30d9('0x39')]())[_0x30d9('0x3c')](_0x30d9('0x44'),squel['str'](hopperContacts))[_0x30d9('0x3c')](_0x30d9('0x3d'))[_0x30d9('0x3c')](_0x30d9('0x3e'),squel['select']()[_0x30d9('0x36')](_0x30d9('0x45'))[_0x30d9('0x3f')](_0x30d9('0x46'))[_0x30d9('0x3c')](_0x2d35e4+'\x20=\x20?',_0x53bd05['id'][_0x30d9('0x39')]()))['where'](_0x30d9('0x3e'),squel[_0x30d9('0x35')]()[_0x30d9('0x36')](_0x30d9('0x32'))[_0x30d9('0x3f')](_0x30d9('0x31'))[_0x30d9('0x3c')](_0x2d35e4+_0x30d9('0x40'),_0x53bd05['id'][_0x30d9('0x39')]())))[_0x30d9('0x39')]();return _0xc4b950;};function _0x48fa7e(_0x47ce74,_0xfc6d03){var _0x225167=squel['insert']()['into'](_0x30d9('0x31'))[_0x30d9('0x47')]([_0x30d9('0x32'),_0x30d9('0x38'),_0x30d9('0x33'),_0x30d9('0x23'),_0xfc6d03,_0x30d9('0x34'),_0x30d9('0x3a')],squel[_0x30d9('0x35')]()[_0x30d9('0x36')](_0x30d9('0x32'),'phone')['field'](_0x30d9('0x37'),_0x30d9('0x38'))[_0x30d9('0x36')]('id',_0x30d9('0x33'))['field'](LISTID[_0x30d9('0x39')](),_0x30d9('0x23'))[_0x30d9('0x36')](_0x47ce74['id'][_0x30d9('0x39')](),_0xfc6d03)['field']('NOW()',_0x30d9('0x34'))['field']('NOW()','updatedAt')[_0x30d9('0x3f')](_0x30d9('0x42'))[_0x30d9('0x3c')](_0x30d9('0x3b'))[_0x30d9('0x3c')]('ListId\x20=\x20?',LISTID[_0x30d9('0x39')]())['where'](_0x30d9('0x44'),squel[_0x30d9('0x48')](hopperContacts))['where']('phone\x20IS\x20NOT\x20NULL'))[_0x30d9('0x39')]();return _0x225167;}function _0x49c464(_0x43c434,_0x24fafb){var _0x7ef9e2=squel['insert']()['into']('cm_hopper_black')['fromQuery']([_0x30d9('0x32'),_0x30d9('0x33'),'ListId',_0x24fafb,_0x30d9('0x34'),_0x30d9('0x3a')],squel[_0x30d9('0x35')]()[_0x30d9('0x36')](_0x30d9('0x32'),'phone')['field']('id',_0x30d9('0x33'))[_0x30d9('0x36')](LISTID['toString'](),_0x30d9('0x23'))[_0x30d9('0x36')](_0x43c434['id'][_0x30d9('0x39')](),_0x24fafb)[_0x30d9('0x36')](_0x30d9('0x37'),_0x30d9('0x34'))['field'](_0x30d9('0x37'),_0x30d9('0x3a'))[_0x30d9('0x3f')](_0x30d9('0x42'))[_0x30d9('0x3c')](_0x30d9('0x3b'))['where']('ListId\x20=\x20?',LISTID['toString']())['where'](_0x30d9('0x44'),squel[_0x30d9('0x48')](hopperContacts))[_0x30d9('0x3c')]('phone\x20IS\x20NOT\x20NULL'))[_0x30d9('0x39')]();return _0x7ef9e2;}return db[_0x30d9('0x49')][_0x30d9('0x4a')]({'where':{'type':_0x30d9('0x4b')},'attributes':['id',_0x30d9('0x4c')],'include':[{'model':db[_0x30d9('0x4d')],'as':_0x30d9('0x4e'),'where':{'id':LISTID}}]})[_0x30d9('0x4f')](function(_0x5a7b32){var _0x2ec537=[];if(_0x5a7b32){var _0x31cd4b;for(var _0xf2c45a=0x0,_0x53a80e;_0xf2c45a<_0x5a7b32[_0x30d9('0x16')];_0xf2c45a+=0x1){_0x53a80e=_0x5a7b32[_0xf2c45a][_0x30d9('0x50')]({'plain':!![]});switch(_0x53a80e['dialCheckDuplicateType']){case'always':_0x2ec537[_0x30d9('0x29')](db[_0x30d9('0x51')][_0x30d9('0x52')](_0x16872c(_0x53a80e,_0x30d9('0x53')))[_0x30d9('0x4f')](function(){})[_0x30d9('0x2b')](_0x4e5ef2()));break;case'onlyIfOpen':_0x2ec537['push'](db[_0x30d9('0x51')][_0x30d9('0x52')](_0x216c1b(_0x53a80e,'VoiceQueueId'))[_0x30d9('0x4f')](function(){})[_0x30d9('0x2b')](_0x4e5ef2()));break;default:_0x2ec537[_0x30d9('0x29')](db['sequelize']['query'](_0x48fa7e(_0x53a80e,_0x30d9('0x53')))[_0x30d9('0x4f')](function(){})[_0x30d9('0x2b')](_0x4e5ef2()));}}}return _0x2ec537;})[_0x30d9('0x54')]()[_0x30d9('0x4f')](function(){return db[_0x30d9('0x49')][_0x30d9('0x4a')]({'where':{'type':_0x30d9('0x4b')},'attributes':['id'],'include':[{'model':db[_0x30d9('0x4d')],'as':_0x30d9('0x55'),'where':{'id':LISTID}}]})['then'](function(_0x17040c){var _0x46b996=[];if(_0x17040c){var _0x2bcb94;for(var _0x256fe1=0x0,_0x4d269d;_0x256fe1<_0x17040c[_0x30d9('0x16')];_0x256fe1+=0x1){_0x4d269d=_0x17040c[_0x256fe1][_0x30d9('0x50')]({'plain':!![]});_0x46b996[_0x30d9('0x29')](db[_0x30d9('0x51')][_0x30d9('0x52')](_0x49c464(_0x4d269d,'VoiceQueueId'))[_0x30d9('0x4f')](function(){})[_0x30d9('0x2b')](_0x4e5ef2()));}}return _0x46b996;})[_0x30d9('0x54')]();})[_0x30d9('0x4f')](function(){return db['Campaign']['findAll']({'attributes':['id',_0x30d9('0x4c')],'include':[{'model':db[_0x30d9('0x4d')],'as':_0x30d9('0x4e'),'where':{'id':LISTID}}]})[_0x30d9('0x4f')](function(_0xe34120){var _0xc80449=[];if(_0xe34120){for(var _0x457881=0x0,_0x184937;_0x457881<_0xe34120[_0x30d9('0x16')];_0x457881+=0x1){_0x184937=_0xe34120[_0x457881]['get']({'plain':!![]});switch(_0x184937[_0x30d9('0x4c')]){case'always':_0xc80449['push'](db[_0x30d9('0x51')][_0x30d9('0x52')](_0x16872c(_0x184937,'CampaignId'))[_0x30d9('0x4f')](function(){})[_0x30d9('0x2b')](_0x4e5ef2()));break;case _0x30d9('0x56'):_0xc80449[_0x30d9('0x29')](db[_0x30d9('0x51')][_0x30d9('0x52')](_0x216c1b(_0x184937,_0x30d9('0x57')))[_0x30d9('0x4f')](function(){})[_0x30d9('0x2b')](_0x4e5ef2()));break;default:_0xc80449['push'](db[_0x30d9('0x51')][_0x30d9('0x52')](_0x48fa7e(_0x184937,_0x30d9('0x57')))[_0x30d9('0x4f')](function(){})[_0x30d9('0x2b')](_0x4e5ef2()));}}}return _0xc80449;})[_0x30d9('0x54')]();})[_0x30d9('0x4f')](function(){return db[_0x30d9('0x58')][_0x30d9('0x4a')]({'attributes':['id'],'include':[{'model':db[_0x30d9('0x4d')],'as':'BlackLists','where':{'id':LISTID}}]})[_0x30d9('0x4f')](function(_0x3efdad){var _0x18d290=[];if(_0x3efdad){for(var _0x3931c7=0x0,_0x4f1e0c;_0x3931c7<_0x3efdad[_0x30d9('0x16')];_0x3931c7+=0x1){_0x4f1e0c=_0x3efdad[_0x3931c7][_0x30d9('0x50')]({'plain':!![]});_0x18d290[_0x30d9('0x29')](db[_0x30d9('0x51')][_0x30d9('0x52')](_0x49c464(_0x4f1e0c,'CampaignId'))[_0x30d9('0x4f')](function(){})['catch'](_0x4e5ef2()));}}return _0x18d290;})['all']();})[_0x30d9('0x2b')](function(_0x2c607a){logger[_0x30d9('0x10')]('cmContact,\x20%s,\x20%s','generalCheckHopper',_0x2c607a['message']);});}var processPromises=function(_0x4b1f92){return BPromise[_0x30d9('0x54')](promises)['then'](function(_0x75f615){})['catch'](function(_0x3a16f5){logger[_0x30d9('0x10')](_0x30d9('0x59'),JSON['stringify'](_0x3a16f5));})[_0x30d9('0x5a')](function(){socket[_0x30d9('0x5b')](_0x30d9('0x5c')+SOCKET_TIMESTAMP,{'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});promises=[];success=0x0;errors=0x0;duplicates=0x0;rows=[];if(_0x4b1f92){return _0x4b1f92['resume']();}});};var endCsv=function(){return BPromise['resolve']()['then'](function(){if(hopperContacts){return checkHopper();}})['then'](function(){socket[_0x30d9('0x5b')](_0x30d9('0x5c')+SOCKET_TIMESTAMP,{'finished':!![],'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});try{fs['unlinkSync'](FILEPATH);}catch(_0x1bc6d4){logger[_0x30d9('0x10')](_0x30d9('0x5d'),JSON['stringify'](_0x1bc6d4));}finally{process['exit'](0x0);}});};process['on'](_0x30d9('0x5e'),function(){logger[_0x30d9('0x5f')](_0x30d9('0x60'));endCsv();});function main(){return BPromise['resolve']()[_0x30d9('0x4f')](function(){if(DUPLICATES){DUPLICATES=DUPLICATES[_0x30d9('0xe')](',');return db[_0x30d9('0x27')][_0x30d9('0x4a')]({'where':{'ListId':LISTID},'attributes':DUPLICATES,'raw':!![]});}})[_0x30d9('0x4f')](function(_0x3e0a1c){var _0x594c8c=fs[_0x30d9('0x61')](FILEPATH,{'highWaterMark':0xf*0x400*0x400});Papa[_0x30d9('0x62')](_0x594c8c,{'header':!![],'skipEmptyLines':!![],'step':function(_0x292f3a,_0x2fb15c){total+=0x1;var _0x258a16=total;promises[_0x30d9('0x29')](checkRow(_0x292f3a,_0x3e0a1c,_0x258a16)[_0x30d9('0x4f')](function(){success+=0x1;})[_0x30d9('0x2b')](function(_0x55ffde){if(_0x55ffde[_0x30d9('0x10')]){errors+=0x1;delete _0x55ffde[_0x30d9('0x10')];}else if(_0x55ffde['duplicate']){duplicates+=0x1;delete _0x55ffde[_0x30d9('0x25')];}rows[_0x30d9('0x29')](_0x55ffde);}));if(total%0xc8===0x0){_0x2fb15c[_0x30d9('0x63')]();return processPromises(_0x2fb15c);}},'complete':function(){return processPromises()[_0x30d9('0x4f')](function(){logger['info'](_0x30d9('0x64'));endCsv();});},'error':function(_0x3a04e4,_0x174ccc){logger[_0x30d9('0x5f')]('CSV\x20parse\x20error',JSON['stringify'](_0x3a04e4));endCsv();}});})[_0x30d9('0x2b')](function(_0x29f672){logger[_0x30d9('0x10')](_0x30d9('0x65'),JSON[_0x30d9('0x2d')](_0x29f672));});}main();
\ No newline at end of file
+var _0x114c=['errors','length','map','message','join','hasOwnProperty','data','firstName\x20not\x20specified!','phone\x20not\x20specified!','birthDate','isValid','birthDate\x20format\x20is\x20invalid,\x20YYYY-MM-DD\x20format\x20is\x20supported!','email','email\x20format\x20is\x20not\x20valid!','ListId','CompanyId','find','duplicate','Duplicate\x20Contact','keys','then','push','pick','cmContact','checkHopper','insert','cm_hopper','scheduledAt','createdAt','updatedAt','select','field','phone','NOW()','ContactId','toString','from','cm_contacts','where','deletedAt\x20IS\x20NULL','ListId\x20=\x20?','phone\x20NOT\x20IN\x20(?)','into','fromQuery','id\x20IN\x20?','str','phone\x20IS\x20NOT\x20NULL','calleridnum','cm_hopper_final','\x20=\x20?','cm_hopper_black','VoiceQueue','findAll','dialCheckDuplicateType','Lists','get','always','sequelize','query','VoiceQueueId','onlyIfOpen','all','outbound','BlackLists','catch','Campaign','CmList','CampaignId','Error\x20processing\x20rows\x20block:','stringify','emit','contact:csv_','unlinkSync','exit','SIGINT','CmContact','createReadStream','parse','pause','info','CSV\x20parsed\x20correctly!','CSV\x20parse\x20error','Error\x20executing\x20contact\x20csv\x20import:','bluebird','util','lodash','squel','papaparse','ioredis','../../../config/environment','api','redis','defaults','../../../api/cmContact/cmContact.socket','register','argv','undefined','null','Missing\x20filepath\x20parameter!','zipObject','split','Missing\x20ListId\x20parameter!','Missing\x20socket_timestamp\x20parameter!','error','test','isNil','The\x20row\x20is\x20empty\x20or\x20the\x20number\x20of\x20parameters\x20does\x20not\x20match\x20the\x20columns!'];(function(_0x5ab44b,_0xaf4c6b){var _0x228968=function(_0x454492){while(--_0x454492){_0x5ab44b['push'](_0x5ab44b['shift']());}};_0x228968(++_0xaf4c6b);}(_0x114c,0xbe));var _0xc114=function(_0x805994,_0x483fe3){_0x805994=_0x805994-0x0;var _0x1803ca=_0x114c[_0x805994];return _0x1803ca;};'use strict';var BPromise=require(_0xc114('0x0'));var util=require(_0xc114('0x1'));var _=require(_0xc114('0x2'));var fs=require('fs');var squel=require(_0xc114('0x3'));var Papa=require(_0xc114('0x4'));var Redis=require(_0xc114('0x5'));var db=require('../../../mysqldb')['db'];var config=require(_0xc114('0x6'));var logger=require('../../../config/logger')(_0xc114('0x7'));config[_0xc114('0x8')]=_[_0xc114('0x9')](config[_0xc114('0x8')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xc114('0x8')]));require(_0xc114('0xa'))[_0xc114('0xb')](socket);try{if(!process[_0xc114('0xc')][0x2]||process[_0xc114('0xc')][0x2]===_0xc114('0xd')||process[_0xc114('0xc')][0x2]===_0xc114('0xe')){throw new Error(_0xc114('0xf'));}var FILEPATH=process['argv'][0x2];if(!process['argv'][0x3]||process[_0xc114('0xc')][0x3]==='undefined'||process[_0xc114('0xc')][0x3]===_0xc114('0xe')||!process[_0xc114('0xc')][0x4]||process[_0xc114('0xc')][0x4]==='undefined'||process['argv'][0x4]==='null'){throw new Error('Missing\x20binding\x20parameters!');}var FIELDS=_[_0xc114('0x10')](process[_0xc114('0xc')][0x3][_0xc114('0x11')](','),process[_0xc114('0xc')][0x4]['split'](','));if(!process[_0xc114('0xc')][0x5]||process[_0xc114('0xc')][0x5]==='undefined'||process[_0xc114('0xc')][0x5]===_0xc114('0xe')){throw new Error(_0xc114('0x12'));}var LISTID=process[_0xc114('0xc')][0x5];var COMPANYID=process['argv'][0x6]&&process[_0xc114('0xc')][0x6]!==_0xc114('0xd')&&process[_0xc114('0xc')][0x6]!==_0xc114('0xe')?process[_0xc114('0xc')][0x6]:null;var DUPLICATES=process[_0xc114('0xc')][0x7]&&process[_0xc114('0xc')][0x7]!=='undefined'&&process[_0xc114('0xc')][0x7]!==_0xc114('0xe')?process[_0xc114('0xc')][0x7]:null;if(!process[_0xc114('0xc')][0x8]||process[_0xc114('0xc')][0x8]===_0xc114('0xd')||process[_0xc114('0xc')][0x8]==='null'){throw new Error(_0xc114('0x13'));}var SOCKET_TIMESTAMP=process[_0xc114('0xc')][0x8];}catch(_0x223203){logger[_0xc114('0x14')](_0x223203);endCsv();}var total=0x0;var pTotal=0x0;var success=0x0;var errors=0x0;var duplicates=0x0;var rows=[];var hopperContacts='';var promises=[];var index=0x0;var alreadyInvalid=![];function handleCheckRowError(_0x3b23cf,_0x22c3dc,_0x319d72,_0x5cbf5){var _0x224075={'message':_0x22c3dc};_0x224075[_0x3b23cf]=!![];if(_0x319d72){_0x224075['contact']=_0x319d72;}if(_0x5cbf5){_0x224075['index']=_0x5cbf5;}return _0x224075;}function isEmail(_0x28a743){return/^([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22))*\x40([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d))*$/[_0xc114('0x15')](_0x28a743);}function checkRow(_0x3e18a2,_0x3b2f2c,_0x4f2162){return new BPromise(function(_0x2c468d,_0x2d699f){if(_[_0xc114('0x16')](_0x3e18a2)){return _0x2d699f(handleCheckRowError(_0xc114('0x14'),_0xc114('0x17'),null,_0x4f2162));}if(_0x3e18a2[_0xc114('0x18')]&&_0x3e18a2[_0xc114('0x18')][_0xc114('0x19')]){var _0x2edcbe=_[_0xc114('0x1a')](_0x3e18a2[_0xc114('0x18')],_0xc114('0x1b'))[_0xc114('0x1c')](';');return _0x2d699f(handleCheckRowError(_0xc114('0x14'),_0x2edcbe,null,_0x4f2162));}var _0x1ab683={};for(var _0x58687d in FIELDS){if(FIELDS[_0xc114('0x1d')](_0x58687d)&&FIELDS[_0x58687d]){_0x1ab683[_0x58687d]=_0x3e18a2[_0xc114('0x1e')][0x0][FIELDS[_0x58687d]]||_0x3e18a2[_0xc114('0x1e')][0x0]['\ufeff'+FIELDS[_0x58687d]];}}if(!_0x1ab683['firstName']){return _0x2d699f(handleCheckRowError(_0xc114('0x14'),_0xc114('0x1f'),null,_0x4f2162));}if(!_0x1ab683['phone']){return _0x2d699f(handleCheckRowError('error',_0xc114('0x20'),null,_0x4f2162));}if(_0x1ab683[_0xc114('0x21')]){var _0x5ccf24=moment(_0x1ab683['birthDate'],'YYYY-MM-DD');if(!_0x5ccf24[_0xc114('0x22')]()){return _0x2d699f(handleCheckRowError(_0xc114('0x14'),_0xc114('0x23'),null,_0x4f2162));}}if(_0x1ab683[_0xc114('0x24')]){if(!isEmail(_0x1ab683[_0xc114('0x24')])){return _0x2d699f(handleCheckRowError(_0xc114('0x14'),_0xc114('0x25'),null,_0x4f2162));}}_0x1ab683[_0xc114('0x26')]=LISTID;_0x1ab683[_0xc114('0x27')]=COMPANYID||undefined;if(DUPLICATES&&DUPLICATES[_0xc114('0x19')]&&_0x3b2f2c){var _0x1e1aa3={};for(var _0x481bfe=0x0,_0x4eff17=DUPLICATES[_0xc114('0x19')];_0x481bfe<_0x4eff17;_0x481bfe+=0x1){_0x1e1aa3[DUPLICATES[_0x481bfe]]=_0x1ab683[DUPLICATES[_0x481bfe]];}var _0x10a256=_[_0xc114('0x28')](_0x3b2f2c,_0x1e1aa3);if(_0x10a256){return _0x2d699f(handleCheckRowError(_0xc114('0x29'),_0xc114('0x2a'),_0x10a256,_0x4f2162));}}return db['CmContact']['create'](_0x1ab683,{'raw':!![],'hooks':![],'fields':_[_0xc114('0x2b')](_0x1ab683)})[_0xc114('0x2c')](function(_0x4ac66b){if(DUPLICATES&&DUPLICATES[_0xc114('0x19')]&&_0x3b2f2c){_0x3b2f2c[_0xc114('0x2d')](_[_0xc114('0x2e')](_0x1ab683,DUPLICATES));}hopperContacts+=(hopperContacts?',':'')+_0x4ac66b['id'];return _0x2c468d();})['catch'](function(_0x56560e){return _0x2d699f(handleCheckRowError('error','Error\x20while\x20creating\x20contact:\x20'+(_0x56560e[_0xc114('0x1b')]||JSON['stringify'](_0x56560e)),null,_0x4f2162));});});}function checkHopper(){function _0x12352d(){return function(_0x477943){logger[_0xc114('0x14')](_0xc114('0x2f'),_0xc114('0x30'),util['inspect'](_0x477943,{'showHidden':![],'depth':null}));};}var _0x1e0067=function(_0x59e6c2,_0x343dd8){var _0x365a3b=squel[_0xc114('0x31')]()['into'](_0xc114('0x32'))['fromQuery'](['phone',_0xc114('0x33'),'ContactId',_0xc114('0x26'),_0x343dd8,_0xc114('0x34'),_0xc114('0x35')],squel[_0xc114('0x36')]()[_0xc114('0x37')](_0xc114('0x38'),_0xc114('0x38'))[_0xc114('0x37')](_0xc114('0x39'),_0xc114('0x33'))[_0xc114('0x37')]('id',_0xc114('0x3a'))['field'](LISTID['toString'](),'ListId')[_0xc114('0x37')](_0x59e6c2['id'][_0xc114('0x3b')](),_0x343dd8)['field'](_0xc114('0x39'),_0xc114('0x34'))['field'](_0xc114('0x39'),'updatedAt')[_0xc114('0x3c')](_0xc114('0x3d'))[_0xc114('0x3e')](_0xc114('0x3f'))['where'](_0xc114('0x40'),LISTID[_0xc114('0x3b')]())[_0xc114('0x3e')]('phone\x20IS\x20NOT\x20NULL')[_0xc114('0x3e')](_0xc114('0x41'),squel[_0xc114('0x36')]()[_0xc114('0x37')](_0xc114('0x38'))[_0xc114('0x3c')](_0xc114('0x32'))[_0xc114('0x3e')](_0x343dd8+'\x20=\x20?',_0x59e6c2['id'][_0xc114('0x3b')]())))[_0xc114('0x3b')]();return _0x365a3b;};var _0x55b565=function(_0x45da4f,_0x45f9fb){var _0x34a9dd=squel[_0xc114('0x31')]()[_0xc114('0x42')]('cm_hopper')[_0xc114('0x43')]([_0xc114('0x38'),_0xc114('0x33'),_0xc114('0x3a'),_0xc114('0x26'),_0x45f9fb,_0xc114('0x34'),_0xc114('0x35')],squel[_0xc114('0x36')]()[_0xc114('0x37')]('phone',_0xc114('0x38'))[_0xc114('0x37')](_0xc114('0x39'),_0xc114('0x33'))['field']('id','ContactId')[_0xc114('0x37')](LISTID[_0xc114('0x3b')](),_0xc114('0x26'))[_0xc114('0x37')](_0x45da4f['id']['toString'](),_0x45f9fb)['field'](_0xc114('0x39'),_0xc114('0x34'))[_0xc114('0x37')](_0xc114('0x39'),_0xc114('0x35'))[_0xc114('0x3c')](_0xc114('0x3d'))['where'](_0xc114('0x3f'))[_0xc114('0x3e')]('ListId\x20=\x20?',LISTID[_0xc114('0x3b')]())['where'](_0xc114('0x44'),squel[_0xc114('0x45')](hopperContacts))['where'](_0xc114('0x46'))['where'](_0xc114('0x41'),squel[_0xc114('0x36')]()[_0xc114('0x37')](_0xc114('0x47'))[_0xc114('0x3c')](_0xc114('0x48'))[_0xc114('0x3e')](_0x45f9fb+_0xc114('0x49'),_0x45da4f['id']['toString']()))[_0xc114('0x3e')](_0xc114('0x41'),squel[_0xc114('0x36')]()[_0xc114('0x37')](_0xc114('0x38'))[_0xc114('0x3c')](_0xc114('0x32'))['where'](_0x45f9fb+'\x20=\x20?',_0x45da4f['id'][_0xc114('0x3b')]())))[_0xc114('0x3b')]();return _0x34a9dd;};function _0x53ec70(_0x2bea06,_0x4be699){var _0x1ef4ac=squel['insert']()['into'](_0xc114('0x32'))[_0xc114('0x43')]([_0xc114('0x38'),_0xc114('0x33'),_0xc114('0x3a'),_0xc114('0x26'),_0x4be699,_0xc114('0x34'),_0xc114('0x35')],squel[_0xc114('0x36')]()[_0xc114('0x37')](_0xc114('0x38'),'phone')[_0xc114('0x37')](_0xc114('0x39'),_0xc114('0x33'))[_0xc114('0x37')]('id',_0xc114('0x3a'))[_0xc114('0x37')](LISTID[_0xc114('0x3b')](),_0xc114('0x26'))[_0xc114('0x37')](_0x2bea06['id'][_0xc114('0x3b')](),_0x4be699)[_0xc114('0x37')](_0xc114('0x39'),_0xc114('0x34'))['field']('NOW()',_0xc114('0x35'))[_0xc114('0x3c')]('cm_contacts')['where'](_0xc114('0x3f'))[_0xc114('0x3e')](_0xc114('0x40'),LISTID[_0xc114('0x3b')]())[_0xc114('0x3e')]('id\x20IN\x20?',squel[_0xc114('0x45')](hopperContacts))[_0xc114('0x3e')]('phone\x20IS\x20NOT\x20NULL'))[_0xc114('0x3b')]();return _0x1ef4ac;}function _0x22ef56(_0x5773ec,_0x1a9758){var _0x1a5abe=squel[_0xc114('0x31')]()['into'](_0xc114('0x4a'))[_0xc114('0x43')](['phone','ContactId',_0xc114('0x26'),_0x1a9758,'createdAt',_0xc114('0x35')],squel[_0xc114('0x36')]()[_0xc114('0x37')](_0xc114('0x38'),_0xc114('0x38'))[_0xc114('0x37')]('id',_0xc114('0x3a'))[_0xc114('0x37')](LISTID['toString'](),_0xc114('0x26'))[_0xc114('0x37')](_0x5773ec['id'][_0xc114('0x3b')](),_0x1a9758)[_0xc114('0x37')](_0xc114('0x39'),_0xc114('0x34'))[_0xc114('0x37')](_0xc114('0x39'),_0xc114('0x35'))[_0xc114('0x3c')]('cm_contacts')[_0xc114('0x3e')](_0xc114('0x3f'))[_0xc114('0x3e')](_0xc114('0x40'),LISTID[_0xc114('0x3b')]())[_0xc114('0x3e')]('id\x20IN\x20?',squel[_0xc114('0x45')](hopperContacts))['where']('phone\x20IS\x20NOT\x20NULL'))[_0xc114('0x3b')]();return _0x1a5abe;}return db[_0xc114('0x4b')][_0xc114('0x4c')]({'where':{'type':'outbound'},'attributes':['id',_0xc114('0x4d')],'include':[{'model':db['CmList'],'as':_0xc114('0x4e'),'where':{'id':LISTID}}]})[_0xc114('0x2c')](function(_0x20c881){var _0x2c2301=[];if(_0x20c881){var _0xd54e48;for(var _0x500e11=0x0,_0x3d8e90;_0x500e11<_0x20c881['length'];_0x500e11+=0x1){_0x3d8e90=_0x20c881[_0x500e11][_0xc114('0x4f')]({'plain':!![]});switch(_0x3d8e90['dialCheckDuplicateType']){case _0xc114('0x50'):_0x2c2301[_0xc114('0x2d')](db[_0xc114('0x51')][_0xc114('0x52')](_0x55b565(_0x3d8e90,_0xc114('0x53')))['then'](function(){})['catch'](_0x12352d()));break;case _0xc114('0x54'):_0x2c2301[_0xc114('0x2d')](db[_0xc114('0x51')]['query'](_0x1e0067(_0x3d8e90,'VoiceQueueId'))[_0xc114('0x2c')](function(){})['catch'](_0x12352d()));break;default:_0x2c2301[_0xc114('0x2d')](db[_0xc114('0x51')][_0xc114('0x52')](_0x53ec70(_0x3d8e90,_0xc114('0x53')))[_0xc114('0x2c')](function(){})['catch'](_0x12352d()));}}}return _0x2c2301;})[_0xc114('0x55')]()[_0xc114('0x2c')](function(){return db[_0xc114('0x4b')][_0xc114('0x4c')]({'where':{'type':_0xc114('0x56')},'attributes':['id'],'include':[{'model':db['CmList'],'as':_0xc114('0x57'),'where':{'id':LISTID}}]})[_0xc114('0x2c')](function(_0x5647e1){var _0x529f66=[];if(_0x5647e1){var _0x483f7e;for(var _0x12c772=0x0,_0x2bbdb6;_0x12c772<_0x5647e1[_0xc114('0x19')];_0x12c772+=0x1){_0x2bbdb6=_0x5647e1[_0x12c772]['get']({'plain':!![]});_0x529f66[_0xc114('0x2d')](db[_0xc114('0x51')][_0xc114('0x52')](_0x22ef56(_0x2bbdb6,_0xc114('0x53')))['then'](function(){})[_0xc114('0x58')](_0x12352d()));}}return _0x529f66;})['all']();})[_0xc114('0x2c')](function(){return db[_0xc114('0x59')]['findAll']({'attributes':['id',_0xc114('0x4d')],'include':[{'model':db[_0xc114('0x5a')],'as':_0xc114('0x4e'),'where':{'id':LISTID}}]})[_0xc114('0x2c')](function(_0x3014b8){var _0x6681cf=[];if(_0x3014b8){for(var _0x3412a0=0x0,_0x57f4b5;_0x3412a0<_0x3014b8[_0xc114('0x19')];_0x3412a0+=0x1){_0x57f4b5=_0x3014b8[_0x3412a0]['get']({'plain':!![]});switch(_0x57f4b5['dialCheckDuplicateType']){case _0xc114('0x50'):_0x6681cf[_0xc114('0x2d')](db[_0xc114('0x51')][_0xc114('0x52')](_0x55b565(_0x57f4b5,'CampaignId'))[_0xc114('0x2c')](function(){})[_0xc114('0x58')](_0x12352d()));break;case _0xc114('0x54'):_0x6681cf['push'](db[_0xc114('0x51')][_0xc114('0x52')](_0x1e0067(_0x57f4b5,_0xc114('0x5b')))['then'](function(){})[_0xc114('0x58')](_0x12352d()));break;default:_0x6681cf[_0xc114('0x2d')](db[_0xc114('0x51')]['query'](_0x53ec70(_0x57f4b5,_0xc114('0x5b')))['then'](function(){})[_0xc114('0x58')](_0x12352d()));}}}return _0x6681cf;})[_0xc114('0x55')]();})[_0xc114('0x2c')](function(){return db[_0xc114('0x59')][_0xc114('0x4c')]({'attributes':['id'],'include':[{'model':db[_0xc114('0x5a')],'as':'BlackLists','where':{'id':LISTID}}]})[_0xc114('0x2c')](function(_0x2bfc59){var _0x1fe760=[];if(_0x2bfc59){for(var _0x3373f7=0x0,_0x166521;_0x3373f7<_0x2bfc59[_0xc114('0x19')];_0x3373f7+=0x1){_0x166521=_0x2bfc59[_0x3373f7][_0xc114('0x4f')]({'plain':!![]});_0x1fe760[_0xc114('0x2d')](db[_0xc114('0x51')][_0xc114('0x52')](_0x22ef56(_0x166521,_0xc114('0x5b')))[_0xc114('0x2c')](function(){})[_0xc114('0x58')](_0x12352d()));}}return _0x1fe760;})['all']();})[_0xc114('0x58')](function(_0x1e6031){logger['error']('cmContact,\x20%s,\x20%s','generalCheckHopper',_0x1e6031[_0xc114('0x1b')]);});}var processPromises=function(_0x1f0cdd){return BPromise[_0xc114('0x55')](promises)['then'](function(_0x3005e5){})[_0xc114('0x58')](function(_0x4010e4){logger[_0xc114('0x14')](_0xc114('0x5c'),JSON[_0xc114('0x5d')](_0x4010e4));})['finally'](function(){socket[_0xc114('0x5e')]('contact:csv_'+SOCKET_TIMESTAMP,{'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});promises=[];success=0x0;errors=0x0;duplicates=0x0;rows=[];if(_0x1f0cdd){return _0x1f0cdd['resume']();}});};var endCsv=function(){return BPromise['resolve']()[_0xc114('0x2c')](function(){if(hopperContacts){return checkHopper();}})[_0xc114('0x2c')](function(){socket[_0xc114('0x5e')](_0xc114('0x5f')+SOCKET_TIMESTAMP,{'finished':!![],'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});try{fs[_0xc114('0x60')](FILEPATH);}catch(_0x179cb6){logger[_0xc114('0x14')]('Unable\x20to\x20delete\x20temp\x20file:',JSON['stringify'](_0x179cb6));}finally{process[_0xc114('0x61')](0x0);}});};process['on'](_0xc114('0x62'),function(){logger['info']('CSV\x20import\x20process\x20stopped!');endCsv();});function main(){return BPromise['resolve']()[_0xc114('0x2c')](function(){if(DUPLICATES){DUPLICATES=DUPLICATES['split'](',');return db[_0xc114('0x63')]['findAll']({'where':{'ListId':LISTID},'attributes':DUPLICATES,'raw':!![]});}})[_0xc114('0x2c')](function(_0x3c2c95){var _0x3bfeda=fs[_0xc114('0x64')](FILEPATH,{'highWaterMark':0xf*0x400*0x400});Papa[_0xc114('0x65')](_0x3bfeda,{'header':!![],'skipEmptyLines':!![],'step':function(_0x2a3090,_0x31b2da){total+=0x1;var _0x40886e=total;promises[_0xc114('0x2d')](checkRow(_0x2a3090,_0x3c2c95,_0x40886e)['then'](function(){success+=0x1;})[_0xc114('0x58')](function(_0xe4687c){if(_0xe4687c[_0xc114('0x14')]){errors+=0x1;delete _0xe4687c[_0xc114('0x14')];}else if(_0xe4687c[_0xc114('0x29')]){duplicates+=0x1;delete _0xe4687c['duplicate'];}rows[_0xc114('0x2d')](_0xe4687c);}));if(total%0xc8===0x0){_0x31b2da[_0xc114('0x66')]();return processPromises(_0x31b2da);}},'complete':function(){return processPromises()[_0xc114('0x2c')](function(){logger[_0xc114('0x67')](_0xc114('0x68'));endCsv();});},'error':function(_0x4cb56e,_0x105285){logger['info'](_0xc114('0x69'),JSON[_0xc114('0x5d')](_0x4cb56e));endCsv();}});})[_0xc114('0x58')](function(_0x18adeb){logger[_0xc114('0x14')](_0xc114('0x6a'),JSON[_0xc114('0x5d')](_0x18adeb));});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd9a5=['.dialCheckDuplicateType\x20IN\x20(','cm_contacts.scheduledat','cm_contacts.ListId','cm_contacts.updatedAt','cm_contacts.priority','cm_contacts.UserId','insert','into','cm_hopper','fromQuery','ContactId','updatedAt','priority','recallme','fields','cm_contacts','cm_contacts.ListId\x20=\x20','.CmListId\x20=\x20?','cm_contacts.createdAt\x20=\x20?','cm_contacts.phone\x20NOT\x20IN\x20(?)','\x22always\x22','\x22onlyIfOpen\x22','toString','cm_contacts.id','cm_contacts.createdAt','ListId','createdAt','field','ListId\x20=\x20?','\x20=\x20?','concat','CompanyId',')\x20NOT\x20IN\x20?','deletedAt\x20IS\x20NULL','MIN(id)','group','info','error','message','errors','push','code','sequelize','query','spread','main','stringify','send','start','root','server/files/tmp','.csv','keys','header','writeFileSync','parse','createReadStream','data','length','trim','replace','isValid','scheduledat\x20wrong\x20format\x20(YYYY-MM-DD\x20HH:mm:ss)','isNaN','UserId','isNumber','agent\x20not\x20exists','email','email\x20wrong\x20format','dateOfBirth','YYYY-MM-DD','dateOfBirth\x20wrong\x20format\x20(YYYY-MM-DD)','\x20not\x20specified','SystemRow','appendFileSync','rows','emit','contact:import:','abort','SystemError','step','duplicates','cm_contacts_','CREATE\x20TABLE\x20','\x20LIKE\x20cm_contacts;','LOAD\x20DATA\x20LOCAL\x20INFILE\x20\x27%s\x27\x20INTO\x20TABLE\x20%s\x20CHARACTER\x20SET\x20UTF8\x20FIELDS\x20TERMINATED\x20BY\x20\x27,\x27\x20ENCLOSED\x20BY\x20\x27\x22\x27\x20LINES\x20TERMINATED\x20BY\x20\x27\x0a\x27\x20IGNORE\x201\x20ROWS\x20(%s)\x20SET\x20id\x20=\x20NULL,\x20ListId\x20=\x20%s,\x20CompanyId\x20=\x20%s,\x20createdAt\x20=\x20\x27%s\x27,\x20updatedAt\x20=\x20\x27%s\x27','isNil','scheduledat',',\x20scheduledAt\x20=\x20NOW()','DROP\x20TABLE\x20','voice_queues_has_cm_lists','voice_queues','voice_queues_has_cm_blacklists','campaigns_has_cm_lists','campaigns','CampaignId','campaigns_has_cm_blacklists','each','then','finish','affectedRows','unlink','exit','catch','complete','argv','arguments\x20<filename>\x20<parameters>\x20<agents>','binding','binding\x20doesn\x27t\x20exists','phone\x20is\x20mandatory','firstName','firstName\x20is\x20mandatory','ListId\x20is\x20mandatory','body\x20id\x20mandatory','map','SIGINT','path','lodash','papaparse','moment','squel','ioredis','../../../mysqldb','../../../config/environment','../../../config/logger','redis','defaults','socket.io-emitter','format','YYYY-MM-DD\x20HH:mm:ss','select','phone','from','join','.id\x20=\x20','where'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0xd9a5,0x74));var _0x5d9a=function(_0xc6439d,_0x3f19ad){_0xc6439d=_0xc6439d-0x0;var _0x3dc4ab=_0xd9a5[_0xc6439d];return _0x3dc4ab;};'use strict';var fs=require('fs');var path=require(_0x5d9a('0x0'));var _=require(_0x5d9a('0x1'));var Papa=require(_0x5d9a('0x2'));var util=require('util');var BPromise=require('bluebird');var moment=require(_0x5d9a('0x3'));var squel=require(_0x5d9a('0x4'));var Redis=require(_0x5d9a('0x5'));var db=require(_0x5d9a('0x6'))['db'];var config=require(_0x5d9a('0x7'));var logger=require(_0x5d9a('0x8'))('import');config[_0x5d9a('0x9')]=_[_0x5d9a('0xa')](config[_0x5d9a('0x9')],{'host':'localhost','port':0x18eb});var socket=require(_0x5d9a('0xb'))(new Redis(config[_0x5d9a('0x9')]));var stats={'finish':![],'errors':[],'rows':0x0,'affectedRows':0x0};var results=[];var stopped=![];var NOW=moment()[_0x5d9a('0xc')](_0x5d9a('0xd'));function isEmail(_0x5e3e58){return/^([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22))*\x40([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d))*$/['test'](_0x5e3e58);}function selectNotIn(_0x29606d,_0x197719,_0x5b20f4,_0xe8e217,_0x111869){return squel[_0x5d9a('0xe')]()['field'](_0x5d9a('0xf'))[_0x5d9a('0x10')](_0xe8e217)[_0x5d9a('0x11')](_0x197719,null,_0x197719+_0x5d9a('0x12')+_0xe8e217+'.'+_0x5b20f4)[_0x5d9a('0x13')](_0xe8e217+'.'+_0x5b20f4+'\x20=\x20'+_0x29606d+'.'+_0x5b20f4)[_0x5d9a('0x13')](_0x197719+_0x5d9a('0x14')+_0x111869[_0x5d9a('0x11')]()+')');}function insertCmHopper(_0x18052d,_0x47f826,_0x7892c6,_0x20ebf4,_0x203e42){var _0x38023f=['cm_contacts.phone',_0x5d9a('0x15'),'cm_contacts.id',_0x5d9a('0x16'),_0x47f826+'.'+_0x20ebf4,'cm_contacts.createdAt',_0x5d9a('0x17'),_0x5d9a('0x18'),_0x5d9a('0x19'),'\x22'+_0x203e42+'\x22'];return squel[_0x5d9a('0x1a')]()[_0x5d9a('0x1b')](_0x5d9a('0x1c'))[_0x5d9a('0x1d')]([_0x5d9a('0xf'),'scheduledat',_0x5d9a('0x1e'),'ListId',_0x20ebf4,'createdAt',_0x5d9a('0x1f'),_0x5d9a('0x20'),'UserId',_0x5d9a('0x21')],squel[_0x5d9a('0xe')]()[_0x5d9a('0x22')](_0x38023f)[_0x5d9a('0x10')](_0x47f826)[_0x5d9a('0x11')](_0x5d9a('0x23'),null,_0x5d9a('0x24')+_0x47f826+'.CmListId')[_0x5d9a('0x11')](_0x7892c6,null,_0x7892c6+'.id\x20=\x20'+_0x47f826+'.'+_0x20ebf4)[_0x5d9a('0x13')](_0x47f826+_0x5d9a('0x25'),_0x18052d)[_0x5d9a('0x13')](_0x5d9a('0x26'),NOW)[_0x5d9a('0x13')](_0x5d9a('0x27'),selectNotIn(_0x47f826,_0x7892c6,_0x20ebf4,_0x5d9a('0x1c'),[_0x5d9a('0x28'),_0x5d9a('0x29')]))[_0x5d9a('0x13')](_0x5d9a('0x27'),selectNotIn(_0x47f826,_0x7892c6,_0x20ebf4,_0x5d9a('0x1c'),['\x22always\x22'])))[_0x5d9a('0x2a')]();}function insertCmHopperBlack(_0x4a7435,_0x2d563d,_0x892e29,_0x2fb2ac){var _0x121e2c=['cm_contacts.phone',_0x5d9a('0x2b'),_0x5d9a('0x16'),_0x2d563d+'.'+_0x2fb2ac,_0x5d9a('0x2c'),'cm_contacts.updatedAt'];return squel[_0x5d9a('0x1a')]()[_0x5d9a('0x1b')]('cm_hopper_black')[_0x5d9a('0x1d')](['phone',_0x5d9a('0x1e'),_0x5d9a('0x2d'),_0x2fb2ac,_0x5d9a('0x2e'),'updatedAt'],squel[_0x5d9a('0xe')]()[_0x5d9a('0x22')](_0x121e2c)[_0x5d9a('0x10')](_0x2d563d)['join'](_0x5d9a('0x23'),null,_0x5d9a('0x24')+_0x2d563d+'.CmListId')[_0x5d9a('0x11')](_0x892e29,null,_0x892e29+_0x5d9a('0x12')+_0x2d563d+'.'+_0x2fb2ac)[_0x5d9a('0x13')](_0x2d563d+_0x5d9a('0x25'),_0x4a7435)[_0x5d9a('0x13')](_0x5d9a('0x26'),NOW)[_0x5d9a('0x13')](_0x5d9a('0x27'),squel[_0x5d9a('0xe')]()[_0x5d9a('0x2f')](_0x5d9a('0xf'))[_0x5d9a('0x10')]('cm_hopper_black')[_0x5d9a('0x13')](_0x5d9a('0x30'),_0x4a7435)[_0x5d9a('0x13')](_0x2fb2ac+_0x5d9a('0x31'),_0x2d563d+'.'+_0x2fb2ac)))[_0x5d9a('0x2a')]();}function insertCmContact(_0x683484,_0x680a5c,_0x196e37,_0x4d906a){var _0x268f3a=_[_0x5d9a('0x32')](_['keys'](_0x4d906a),['ListId',_0x5d9a('0x33'),_0x5d9a('0x2e'),_0x5d9a('0x1f')]);return squel[_0x5d9a('0x1a')]()[_0x5d9a('0x1b')](_0x5d9a('0x23'))[_0x5d9a('0x1d')](_0x268f3a,squel['select']()[_0x5d9a('0x22')](_0x268f3a)[_0x5d9a('0x10')](_0x680a5c)[_0x5d9a('0x13')]('('+_0x196e37['join'](',')+_0x5d9a('0x34'),squel[_0x5d9a('0xe')]()[_0x5d9a('0x22')](_0x196e37)[_0x5d9a('0x10')](_0x5d9a('0x23'))[_0x5d9a('0x13')]('ListId\x20=\x20?',_0x683484)[_0x5d9a('0x13')](_0x5d9a('0x35')))[_0x5d9a('0x13')]('id\x20IN\x20?',squel[_0x5d9a('0xe')]()[_0x5d9a('0x2f')](_0x5d9a('0x36'),'min_id')[_0x5d9a('0x10')](_0x680a5c)[_0x5d9a('0x37')](_0x196e37[_0x5d9a('0x11')](','))))['toString']();}function handleStop(){logger[_0x5d9a('0x38')]('Received\x20SIGINT');stopped=!![];}function handleUncaughtException(_0x218299){logger[_0x5d9a('0x39')](_0x218299[_0x5d9a('0x3a')]);process['exit'](0x1);}function handleError(_0x1bcd18,_0x1ab702){stats[_0x5d9a('0x3b')][_0x5d9a('0x3c')]({'name':_0x1ab702[_0x5d9a('0x3d')],'message':_0x1ab702[_0x5d9a('0x3a')],'row':_0x1bcd18});}function handleQuery(_0x105e52){logger[_0x5d9a('0x38')](_0x105e52);return db[_0x5d9a('0x3e')][_0x5d9a('0x3f')](_0x105e52)[_0x5d9a('0x40')](function(_0x3d3110){results[_0x5d9a('0x3c')](_0x3d3110);})['catch'](function(_0x379e76){logger[_0x5d9a('0x39')](_0x379e76[_0x5d9a('0x3a')]);});}function main(_0x58a0a7,_0x2f671c,_0x3f994d,_0xd0da4e){logger['info'](_0x5d9a('0x41'),_0x58a0a7,JSON[_0x5d9a('0x42')](_0x2f671c));process[_0x5d9a('0x43')](_0x5d9a('0x44'));var _0x39bc89=_0x2f671c['binding'];var _0x3e3ad1=_0x2f671c['socket_timestamp'];var _0x29d541=path['join'](config[_0x5d9a('0x45')],_0x5d9a('0x46'),_0x3e3ad1+_0x5d9a('0x47'));var _0x29cefc=_[_0x5d9a('0x48')](_0x39bc89)[_0x5d9a('0x11')]();logger['info'](_0x5d9a('0x49'),_0x29cefc);fs[_0x5d9a('0x4a')](_0x29d541,_0x29cefc+'\x0a');Papa[_0x5d9a('0x4b')](fs[_0x5d9a('0x4c')](_0x58a0a7),{'header':!![],'skipEmptyLines':!![],'step':function(_0x38c42e,_0x3c0c5b){try{for(var _0x5ba931=0x0,_0x12d72a=[];_0x5ba931<_0x38c42e[_0x5d9a('0x4d')][_0x5d9a('0x4e')];_0x5ba931++){stats['rows']+=0x1;if(_0x38c42e[_0x5d9a('0x3b')][_0x5ba931]){handleError(_0x38c42e[_0x5d9a('0x4d')][_0x5ba931],_0x38c42e[_0x5d9a('0x3b')][_0x5ba931]);}else{var _0x837361=[];for(var _0x392af5 in _0x39bc89){if(_0x39bc89['hasOwnProperty'](_0x392af5)){if(_0x38c42e[_0x5d9a('0x4d')][_0x5ba931][_0x39bc89[_0x392af5]]){var _0x256111=_[_0x5d9a('0x4f')](_0x38c42e[_0x5d9a('0x4d')][_0x5ba931][_0x39bc89[_0x392af5]][_0x5d9a('0x50')](/"/g,'\x27'));switch(_0x392af5){case'scheduledat':var _0x28227d=moment(_0x256111,'YYYY-MM-DD\x20HH:mm:ss',!![]);if(_0x28227d[_0x5d9a('0x51')]()){_0x12d72a[_0x5d9a('0x3c')]('\x22'+_0x256111+'\x22');}else{_0x837361[_0x5d9a('0x3c')](_0x5d9a('0x52'));}break;case _0x5d9a('0x20'):var _0xc3ffab=parseInt(_0x256111);_0x256111=_[_0x5d9a('0x53')](_0xc3ffab)||_0xc3ffab<0x0||_0xc3ffab>0x4?_0xd0da4e?0x3:0x2:_0xc3ffab;_0x12d72a[_0x5d9a('0x3c')]('\x22'+_0x256111+'\x22');break;case _0x5d9a('0x54'):var _0x5d3db4=parseInt(_0x256111);if(_[_0x5d9a('0x55')](_0x5d3db4)&&_['includes'](_0x3f994d,_0x5d3db4)){_0x12d72a[_0x5d9a('0x3c')]('\x22'+_0x5d3db4+'\x22');}else{_0x837361[_0x5d9a('0x3c')](_0x5d9a('0x56'));}break;case _0x5d9a('0x57'):if(isEmail(_0x256111)){_0x12d72a[_0x5d9a('0x3c')]('\x22'+_0x256111+'\x22');}else{_0x837361[_0x5d9a('0x3c')](_0x5d9a('0x58'));}break;case _0x5d9a('0x59'):var _0x407533=moment(_0x256111,_0x5d9a('0x5a'),!![]);if(_0x407533[_0x5d9a('0x51')]()){_0x12d72a[_0x5d9a('0x3c')]('\x22'+_0x256111+'\x22');}else{_0x837361[_0x5d9a('0x3c')](_0x5d9a('0x5b'));}break;default:_0x12d72a[_0x5d9a('0x3c')]('\x22'+_0x256111+'\x22');}}else{switch(_0x392af5){case'firstName':case'phone':_0x837361[_0x5d9a('0x3c')](_0x392af5+_0x5d9a('0x5c'));break;default:_0x12d72a[_0x5d9a('0x3c')]('\x22\x22');}}}}if(_0x837361[_0x5d9a('0x4e')]){handleError(_0x38c42e[_0x5d9a('0x4d')][_0x5ba931],{'code':_0x5d9a('0x5d'),'message':_0x837361[_0x5d9a('0x11')]()});}else{fs[_0x5d9a('0x5e')](_0x29d541,_0x12d72a[_0x5d9a('0x11')]()+'\x0a');}_0x12d72a=[];}if(!(stats[_0x5d9a('0x5f')]%0xc8)){socket[_0x5d9a('0x60')](_0x5d9a('0x61')+_0x3e3ad1,stats);stats[_0x5d9a('0x3b')]=[];}}if(stopped){logger[_0x5d9a('0x38')]('Abort\x20parser');_0x3c0c5b[_0x5d9a('0x62')]();}}catch(_0x54e097){handleError(_0x38c42e[_0x5d9a('0x4d')][_0x5ba931],{'code':_0x5d9a('0x63'),'message':_0x54e097['message']});logger['error'](_0x5d9a('0x64'),_0x54e097['message']);}},'complete':function(){try{var _0x2896c2=[];var _0x507b29=_0x5d9a('0x23');if(_0x2f671c[_0x5d9a('0x65')]&&_0x2f671c[_0x5d9a('0x65')][_0x5d9a('0x4e')]){_0x507b29=_0x5d9a('0x66')+_0x3e3ad1;_0x2896c2['push'](_0x5d9a('0x67')+_0x507b29+_0x5d9a('0x68'));}var _0x3d1cef=util[_0x5d9a('0xc')](_0x5d9a('0x69'),_0x29d541,_0x507b29,_0x29cefc,_0x2f671c[_0x5d9a('0x2d')],_0x2f671c[_0x5d9a('0x33')]||null,NOW,NOW);if(_[_0x5d9a('0x6a')](_0x39bc89[_0x5d9a('0x6b')])){_0x3d1cef+=_0x5d9a('0x6c');}_0x2896c2[_0x5d9a('0x3c')](_0x3d1cef);if(_0x2f671c[_0x5d9a('0x65')]&&_0x2f671c[_0x5d9a('0x65')][_0x5d9a('0x4e')]){_0x2896c2[_0x5d9a('0x3c')](insertCmContact(_0x2f671c[_0x5d9a('0x2d')],_0x507b29,_0x2f671c[_0x5d9a('0x65')],_0x39bc89));_0x2896c2['push'](_0x5d9a('0x6d')+_0x507b29+';');}_0x2896c2[_0x5d9a('0x3c')](insertCmHopper(_0x2f671c[_0x5d9a('0x2d')],_0x5d9a('0x6e'),_0x5d9a('0x6f'),'VoiceQueueId',_0xd0da4e));_0x2896c2['push'](insertCmHopperBlack(_0x2f671c['ListId'],_0x5d9a('0x70'),_0x5d9a('0x6f'),'VoiceQueueId'));_0x2896c2[_0x5d9a('0x3c')](insertCmHopper(_0x2f671c[_0x5d9a('0x2d')],_0x5d9a('0x71'),_0x5d9a('0x72'),_0x5d9a('0x73'),_0xd0da4e));_0x2896c2[_0x5d9a('0x3c')](insertCmHopperBlack(_0x2f671c[_0x5d9a('0x2d')],_0x5d9a('0x74'),_0x5d9a('0x72'),_0x5d9a('0x73')));BPromise[_0x5d9a('0x75')](_0x2896c2,handleQuery)[_0x5d9a('0x76')](function(_0x3a7ee7){stats[_0x5d9a('0x77')]=!![];stats[_0x5d9a('0x78')]=_0x2f671c[_0x5d9a('0x65')]&&_0x2f671c['duplicates']['length']?results[0x2][_0x5d9a('0x78')]:results[0x0][_0x5d9a('0x78')];socket['emit'](_0x5d9a('0x61')+_0x3e3ad1,stats);fs['unlink'](_0x58a0a7);fs[_0x5d9a('0x79')](_0x29d541);process[_0x5d9a('0x7a')](0x0);})[_0x5d9a('0x7b')](function(_0x22d06e){logger[_0x5d9a('0x39')](_0x22d06e[_0x5d9a('0x3a')]);process[_0x5d9a('0x7a')](0x1);});}catch(_0x335297){logger['error'](_0x5d9a('0x7c'),_0x335297[_0x5d9a('0x3a')]);process[_0x5d9a('0x7a')](0x1);}},'error':function(_0x1c8bd6,_0x2ba40f,_0xc41e1f,_0x39d835){throw new Error(_0x39d835);}});}function validate(){if(process['argv']&&process[_0x5d9a('0x7d')][_0x5d9a('0x4e')]<0x4){throw new Error(_0x5d9a('0x7e'));}var _0x334bac=path[_0x5d9a('0x11')](config[_0x5d9a('0x45')],_0x5d9a('0x46'),process[_0x5d9a('0x7d')][0x2]);if(!fs['existsSync'](_0x334bac)){throw new Error('file\x20doesn\x27t\x20exists');}var _0x220023={};try{_0x220023=JSON[_0x5d9a('0x4b')](process[_0x5d9a('0x7d')][0x3]);if(!_0x220023[_0x5d9a('0x7f')]){throw new Error(_0x5d9a('0x80'));}if(!_0x220023[_0x5d9a('0x7f')][_0x5d9a('0xf')]){throw new Error(_0x5d9a('0x81'));}if(!_0x220023[_0x5d9a('0x7f')][_0x5d9a('0x82')]){throw new Error(_0x5d9a('0x83'));}var _0x3f666b=0x0;if(_0x220023['binding'][_0x5d9a('0x54')]){_0x3f666b=0x1;}if(!_0x220023[_0x5d9a('0x2d')]){throw new Error(_0x5d9a('0x84'));}}catch(_0x392a87){throw new Error(_0x5d9a('0x85'));}var _0x594b28=[];try{_0x594b28=_[_0x5d9a('0x86')](JSON['parse'](process[_0x5d9a('0x7d')][0x4]),'id');}catch(_0x18a50b){logger['info']('No\x20agent\x20available');}main(_0x334bac,_0x220023,_0x594b28,_0x3f666b);}validate();process['on'](_0x5d9a('0x87'),handleStop);process['on']('uncaughtException',handleUncaughtException);
\ No newline at end of file
+var _0xdb5f=['\x22always\x22','\x22onlyIfOpen\x22','cm_hopper_black','fromQuery','updatedAt','fields','ListId\x20=\x20?','toString','keys','CompanyId','deletedAt\x20IS\x20NULL','MIN(id)','min_id','group','info','Received\x20SIGINT','error','message','errors','push','query','spread','catch','main','stringify','send','start','binding','socket_timestamp','server/files/tmp','.csv','writeFileSync','data','length','replace','isValid','scheduledat\x20wrong\x20format\x20(YYYY-MM-DD\x20HH:mm:ss)','priority','isNaN','agent\x20not\x20exists','email','email\x20wrong\x20format','YYYY-MM-DD','dateOfBirth\x20wrong\x20format\x20(YYYY-MM-DD)','firstName','appendFileSync','emit','contact:import:','Abort\x20parser','abort','SystemError','step','duplicates','cm_contacts_','\x20LIKE\x20cm_contacts;','isNil',',\x20scheduledAt\x20=\x20NOW()','DROP\x20TABLE\x20','voice_queues','voice_queues_has_cm_blacklists','VoiceQueueId','campaigns','CampaignId','each','then','finish','affectedRows','unlink','exit','complete','argv','arguments\x20<filename>\x20<parameters>\x20<agents>','root','existsSync','file\x20doesn\x27t\x20exists','binding\x20doesn\x27t\x20exists','phone\x20is\x20mandatory','firstName\x20is\x20mandatory','ListId\x20is\x20mandatory','map','parse','No\x20agent\x20available','SIGINT','path','lodash','papaparse','bluebird','moment','squel','../../../mysqldb','../../../config/environment','import','defaults','localhost','socket.io-emitter','redis','format','YYYY-MM-DD\x20HH:mm:ss','test','select','field','phone','from','.id\x20=\x20','where','\x20=\x20','cm_contacts.phone','cm_contacts.id','cm_contacts.ListId','cm_contacts.createdAt','cm_contacts.updatedAt','cm_contacts.priority','insert','into','cm_hopper','scheduledat','ContactId','ListId','createdAt','UserId','cm_contacts','cm_contacts.ListId\x20=\x20','.CmListId','join','.CmListId\x20=\x20?','cm_contacts.createdAt\x20=\x20?','cm_contacts.phone\x20NOT\x20IN\x20(?)'];(function(_0x376b45,_0x5964fb){var _0x2341b3=function(_0x5a7f01){while(--_0x5a7f01){_0x376b45['push'](_0x376b45['shift']());}};_0x2341b3(++_0x5964fb);}(_0xdb5f,0x1d0));var _0xfdb5=function(_0x3dd88d,_0x279903){_0x3dd88d=_0x3dd88d-0x0;var _0x286285=_0xdb5f[_0x3dd88d];return _0x286285;};'use strict';var fs=require('fs');var path=require(_0xfdb5('0x0'));var _=require(_0xfdb5('0x1'));var Papa=require(_0xfdb5('0x2'));var util=require('util');var BPromise=require(_0xfdb5('0x3'));var moment=require(_0xfdb5('0x4'));var squel=require(_0xfdb5('0x5'));var Redis=require('ioredis');var db=require(_0xfdb5('0x6'))['db'];var config=require(_0xfdb5('0x7'));var logger=require('../../../config/logger')(_0xfdb5('0x8'));config['redis']=_[_0xfdb5('0x9')](config['redis'],{'host':_0xfdb5('0xa'),'port':0x18eb});var socket=require(_0xfdb5('0xb'))(new Redis(config[_0xfdb5('0xc')]));var stats={'finish':![],'errors':[],'rows':0x0,'affectedRows':0x0};var results=[];var stopped=![];var NOW=moment()[_0xfdb5('0xd')](_0xfdb5('0xe'));function isEmail(_0x49f16b){return/^([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22))*\x40([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d))*$/[_0xfdb5('0xf')](_0x49f16b);}function selectNotIn(_0x4234b0,_0x17a3f6,_0x1378e6,_0x34bc1a,_0x57cd5e){return squel[_0xfdb5('0x10')]()[_0xfdb5('0x11')](_0xfdb5('0x12'))[_0xfdb5('0x13')](_0x34bc1a)['join'](_0x17a3f6,null,_0x17a3f6+_0xfdb5('0x14')+_0x34bc1a+'.'+_0x1378e6)[_0xfdb5('0x15')](_0x34bc1a+'.'+_0x1378e6+_0xfdb5('0x16')+_0x4234b0+'.'+_0x1378e6)['where'](_0x17a3f6+'.dialCheckDuplicateType\x20IN\x20('+_0x57cd5e['join']()+')');}function insertCmHopper(_0x4c13be,_0x49e6a6,_0x34172e,_0x53a012,_0x59b21d){var _0x534c08=[_0xfdb5('0x17'),'cm_contacts.scheduledat',_0xfdb5('0x18'),_0xfdb5('0x19'),_0x49e6a6+'.'+_0x53a012,_0xfdb5('0x1a'),_0xfdb5('0x1b'),_0xfdb5('0x1c'),'cm_contacts.UserId','\x22'+_0x59b21d+'\x22'];return squel[_0xfdb5('0x1d')]()[_0xfdb5('0x1e')](_0xfdb5('0x1f'))['fromQuery'](['phone',_0xfdb5('0x20'),_0xfdb5('0x21'),_0xfdb5('0x22'),_0x53a012,_0xfdb5('0x23'),'updatedAt','priority',_0xfdb5('0x24'),'recallme'],squel[_0xfdb5('0x10')]()['fields'](_0x534c08)[_0xfdb5('0x13')](_0x49e6a6)['join'](_0xfdb5('0x25'),null,_0xfdb5('0x26')+_0x49e6a6+_0xfdb5('0x27'))[_0xfdb5('0x28')](_0x34172e,null,_0x34172e+_0xfdb5('0x14')+_0x49e6a6+'.'+_0x53a012)[_0xfdb5('0x15')](_0x49e6a6+_0xfdb5('0x29'),_0x4c13be)['where'](_0xfdb5('0x2a'),NOW)['where'](_0xfdb5('0x2b'),selectNotIn(_0x49e6a6,_0x34172e,_0x53a012,_0xfdb5('0x1f'),[_0xfdb5('0x2c'),_0xfdb5('0x2d')]))[_0xfdb5('0x15')](_0xfdb5('0x2b'),selectNotIn(_0x49e6a6,_0x34172e,_0x53a012,_0xfdb5('0x1f'),[_0xfdb5('0x2c')])))['toString']();}function insertCmHopperBlack(_0x3e443c,_0x2a40d7,_0x293fef,_0x3a32aa){var _0x2d3089=[_0xfdb5('0x17'),_0xfdb5('0x18'),_0xfdb5('0x19'),_0x2a40d7+'.'+_0x3a32aa,'cm_contacts.createdAt',_0xfdb5('0x1b')];return squel[_0xfdb5('0x1d')]()[_0xfdb5('0x1e')](_0xfdb5('0x2e'))[_0xfdb5('0x2f')]([_0xfdb5('0x12'),'ContactId',_0xfdb5('0x22'),_0x3a32aa,_0xfdb5('0x23'),_0xfdb5('0x30')],squel[_0xfdb5('0x10')]()[_0xfdb5('0x31')](_0x2d3089)[_0xfdb5('0x13')](_0x2a40d7)['join']('cm_contacts',null,_0xfdb5('0x26')+_0x2a40d7+_0xfdb5('0x27'))[_0xfdb5('0x28')](_0x293fef,null,_0x293fef+_0xfdb5('0x14')+_0x2a40d7+'.'+_0x3a32aa)['where'](_0x2a40d7+_0xfdb5('0x29'),_0x3e443c)['where'](_0xfdb5('0x2a'),NOW)[_0xfdb5('0x15')]('cm_contacts.phone\x20NOT\x20IN\x20(?)',squel[_0xfdb5('0x10')]()[_0xfdb5('0x11')](_0xfdb5('0x12'))[_0xfdb5('0x13')](_0xfdb5('0x2e'))[_0xfdb5('0x15')](_0xfdb5('0x32'),_0x3e443c)['where'](_0x3a32aa+'\x20=\x20?',_0x2a40d7+'.'+_0x3a32aa)))[_0xfdb5('0x33')]();}function insertCmContact(_0x712b5d,_0xe74e62,_0x1ee283,_0xc21b4){var _0x548700=_['concat'](_[_0xfdb5('0x34')](_0xc21b4),[_0xfdb5('0x22'),_0xfdb5('0x35'),_0xfdb5('0x23'),_0xfdb5('0x30')]);return squel[_0xfdb5('0x1d')]()[_0xfdb5('0x1e')](_0xfdb5('0x25'))[_0xfdb5('0x2f')](_0x548700,squel[_0xfdb5('0x10')]()['fields'](_0x548700)[_0xfdb5('0x13')](_0xe74e62)[_0xfdb5('0x15')]('('+_0x1ee283[_0xfdb5('0x28')](',')+')\x20NOT\x20IN\x20?',squel[_0xfdb5('0x10')]()[_0xfdb5('0x31')](_0x1ee283)['from']('cm_contacts')['where'](_0xfdb5('0x32'),_0x712b5d)[_0xfdb5('0x15')](_0xfdb5('0x36')))[_0xfdb5('0x15')]('id\x20IN\x20?',squel[_0xfdb5('0x10')]()['field'](_0xfdb5('0x37'),_0xfdb5('0x38'))[_0xfdb5('0x13')](_0xe74e62)[_0xfdb5('0x39')](_0x1ee283['join'](','))))[_0xfdb5('0x33')]();}function handleStop(){logger[_0xfdb5('0x3a')](_0xfdb5('0x3b'));stopped=!![];}function handleUncaughtException(_0x4d6837){logger[_0xfdb5('0x3c')](_0x4d6837[_0xfdb5('0x3d')]);process['exit'](0x1);}function handleError(_0x27578f,_0x13893b){stats[_0xfdb5('0x3e')][_0xfdb5('0x3f')]({'name':_0x13893b['code'],'message':_0x13893b[_0xfdb5('0x3d')],'row':_0x27578f});}function handleQuery(_0x5d193d){logger[_0xfdb5('0x3a')](_0x5d193d);return db['sequelize'][_0xfdb5('0x40')](_0x5d193d)[_0xfdb5('0x41')](function(_0x37249e){results[_0xfdb5('0x3f')](_0x37249e);})[_0xfdb5('0x42')](function(_0x78b3f2){logger[_0xfdb5('0x3c')](_0x78b3f2[_0xfdb5('0x3d')]);});}function main(_0x4db4b5,_0x14ede9,_0x36f4a8,_0x4b5786){logger[_0xfdb5('0x3a')](_0xfdb5('0x43'),_0x4db4b5,JSON[_0xfdb5('0x44')](_0x14ede9));process[_0xfdb5('0x45')](_0xfdb5('0x46'));var _0xc76e78=_0x14ede9[_0xfdb5('0x47')];var _0x385ce5=_0x14ede9[_0xfdb5('0x48')];var _0x2c2d48=path[_0xfdb5('0x28')](config['root'],_0xfdb5('0x49'),_0x385ce5+_0xfdb5('0x4a'));var _0x22d72e=_['keys'](_0xc76e78)[_0xfdb5('0x28')]();logger[_0xfdb5('0x3a')]('header',_0x22d72e);fs[_0xfdb5('0x4b')](_0x2c2d48,_0x22d72e+'\x0a');Papa['parse'](fs['createReadStream'](_0x4db4b5),{'header':!![],'skipEmptyLines':!![],'step':function(_0x444abf,_0x128f64){try{for(var _0x16adf6=0x0,_0x47316c=[];_0x16adf6<_0x444abf[_0xfdb5('0x4c')][_0xfdb5('0x4d')];_0x16adf6++){stats['rows']+=0x1;if(_0x444abf['errors'][_0x16adf6]){handleError(_0x444abf[_0xfdb5('0x4c')][_0x16adf6],_0x444abf[_0xfdb5('0x3e')][_0x16adf6]);}else{var _0x48031c=[];for(var _0x2f2bae in _0xc76e78){if(_0xc76e78['hasOwnProperty'](_0x2f2bae)){if(_0x444abf[_0xfdb5('0x4c')][_0x16adf6][_0xc76e78[_0x2f2bae]]){var _0x4fcc96=_['trim'](_0x444abf['data'][_0x16adf6][_0xc76e78[_0x2f2bae]][_0xfdb5('0x4e')](/"/g,'\x27'));switch(_0x2f2bae){case _0xfdb5('0x20'):var _0x382157=moment(_0x4fcc96,_0xfdb5('0xe'),!![]);if(_0x382157[_0xfdb5('0x4f')]()){_0x47316c[_0xfdb5('0x3f')]('\x22'+_0x4fcc96+'\x22');}else{_0x48031c[_0xfdb5('0x3f')](_0xfdb5('0x50'));}break;case _0xfdb5('0x51'):var _0x3f9278=parseInt(_0x4fcc96);_0x4fcc96=_[_0xfdb5('0x52')](_0x3f9278)||_0x3f9278<0x0||_0x3f9278>0x4?_0x4b5786?0x3:0x2:_0x3f9278;_0x47316c[_0xfdb5('0x3f')]('\x22'+_0x4fcc96+'\x22');break;case _0xfdb5('0x24'):var _0x2a6ee9=parseInt(_0x4fcc96);if(_['isNumber'](_0x2a6ee9)&&_['includes'](_0x36f4a8,_0x2a6ee9)){_0x47316c[_0xfdb5('0x3f')]('\x22'+_0x2a6ee9+'\x22');}else{_0x48031c[_0xfdb5('0x3f')](_0xfdb5('0x53'));}break;case _0xfdb5('0x54'):if(isEmail(_0x4fcc96)){_0x47316c[_0xfdb5('0x3f')]('\x22'+_0x4fcc96+'\x22');}else{_0x48031c[_0xfdb5('0x3f')](_0xfdb5('0x55'));}break;case'dateOfBirth':var _0x4f86d3=moment(_0x4fcc96,_0xfdb5('0x56'),!![]);if(_0x4f86d3[_0xfdb5('0x4f')]()){_0x47316c[_0xfdb5('0x3f')]('\x22'+_0x4fcc96+'\x22');}else{_0x48031c[_0xfdb5('0x3f')](_0xfdb5('0x57'));}break;default:_0x47316c['push']('\x22'+_0x4fcc96+'\x22');}}else{switch(_0x2f2bae){case _0xfdb5('0x58'):case _0xfdb5('0x12'):_0x48031c[_0xfdb5('0x3f')](_0x2f2bae+'\x20not\x20specified');break;default:_0x47316c[_0xfdb5('0x3f')]('\x22\x22');}}}}if(_0x48031c[_0xfdb5('0x4d')]){handleError(_0x444abf[_0xfdb5('0x4c')][_0x16adf6],{'code':'SystemRow','message':_0x48031c[_0xfdb5('0x28')]()});}else{fs[_0xfdb5('0x59')](_0x2c2d48,_0x47316c[_0xfdb5('0x28')]()+'\x0a');}_0x47316c=[];}if(!(stats['rows']%0xc8)){socket[_0xfdb5('0x5a')](_0xfdb5('0x5b')+_0x385ce5,stats);stats[_0xfdb5('0x3e')]=[];}}if(stopped){logger['info'](_0xfdb5('0x5c'));_0x128f64[_0xfdb5('0x5d')]();}}catch(_0x25021e){handleError(_0x444abf[_0xfdb5('0x4c')][_0x16adf6],{'code':_0xfdb5('0x5e'),'message':_0x25021e[_0xfdb5('0x3d')]});logger[_0xfdb5('0x3c')](_0xfdb5('0x5f'),_0x25021e[_0xfdb5('0x3d')]);}},'complete':function(){try{var _0x2f50c9=[];var _0x5177ba=_0xfdb5('0x25');if(_0x14ede9[_0xfdb5('0x60')]&&_0x14ede9['duplicates'][_0xfdb5('0x4d')]){_0x5177ba=_0xfdb5('0x61')+_0x385ce5;_0x2f50c9['push']('CREATE\x20TABLE\x20'+_0x5177ba+_0xfdb5('0x62'));}var _0x10727c=util[_0xfdb5('0xd')]('LOAD\x20DATA\x20LOCAL\x20INFILE\x20\x27%s\x27\x20INTO\x20TABLE\x20%s\x20CHARACTER\x20SET\x20UTF8\x20FIELDS\x20TERMINATED\x20BY\x20\x27,\x27\x20ENCLOSED\x20BY\x20\x27\x22\x27\x20LINES\x20TERMINATED\x20BY\x20\x27\x0a\x27\x20IGNORE\x201\x20ROWS\x20(%s)\x20SET\x20id\x20=\x20NULL,\x20ListId\x20=\x20%s,\x20CompanyId\x20=\x20%s,\x20createdAt\x20=\x20\x27%s\x27,\x20updatedAt\x20=\x20\x27%s\x27',_0x2c2d48,_0x5177ba,_0x22d72e,_0x14ede9[_0xfdb5('0x22')],_0x14ede9[_0xfdb5('0x35')]||null,NOW,NOW);if(_[_0xfdb5('0x63')](_0xc76e78['scheduledat'])){_0x10727c+=_0xfdb5('0x64');}_0x2f50c9[_0xfdb5('0x3f')](_0x10727c);if(_0x14ede9[_0xfdb5('0x60')]&&_0x14ede9[_0xfdb5('0x60')][_0xfdb5('0x4d')]){_0x2f50c9['push'](insertCmContact(_0x14ede9[_0xfdb5('0x22')],_0x5177ba,_0x14ede9[_0xfdb5('0x60')],_0xc76e78));_0x2f50c9['push'](_0xfdb5('0x65')+_0x5177ba+';');}_0x2f50c9[_0xfdb5('0x3f')](insertCmHopper(_0x14ede9[_0xfdb5('0x22')],'voice_queues_has_cm_lists',_0xfdb5('0x66'),'VoiceQueueId',_0x4b5786));_0x2f50c9[_0xfdb5('0x3f')](insertCmHopperBlack(_0x14ede9[_0xfdb5('0x22')],_0xfdb5('0x67'),_0xfdb5('0x66'),_0xfdb5('0x68')));_0x2f50c9[_0xfdb5('0x3f')](insertCmHopper(_0x14ede9[_0xfdb5('0x22')],'campaigns_has_cm_lists',_0xfdb5('0x69'),'CampaignId',_0x4b5786));_0x2f50c9[_0xfdb5('0x3f')](insertCmHopperBlack(_0x14ede9[_0xfdb5('0x22')],'campaigns_has_cm_blacklists',_0xfdb5('0x69'),_0xfdb5('0x6a')));BPromise[_0xfdb5('0x6b')](_0x2f50c9,handleQuery)[_0xfdb5('0x6c')](function(_0x20d4ca){stats[_0xfdb5('0x6d')]=!![];stats[_0xfdb5('0x6e')]=_0x14ede9[_0xfdb5('0x60')]&&_0x14ede9['duplicates'][_0xfdb5('0x4d')]?results[0x2][_0xfdb5('0x6e')]:results[0x0][_0xfdb5('0x6e')];socket[_0xfdb5('0x5a')](_0xfdb5('0x5b')+_0x385ce5,stats);fs[_0xfdb5('0x6f')](_0x4db4b5);fs[_0xfdb5('0x6f')](_0x2c2d48);process[_0xfdb5('0x70')](0x0);})['catch'](function(_0x16df91){logger['error'](_0x16df91['message']);process[_0xfdb5('0x70')](0x1);});}catch(_0x4d6c41){logger[_0xfdb5('0x3c')](_0xfdb5('0x71'),_0x4d6c41[_0xfdb5('0x3d')]);process[_0xfdb5('0x70')](0x1);}},'error':function(_0x53cc14,_0x62706e,_0x51fcc4,_0x524cc7){throw new Error(_0x524cc7);}});}function validate(){if(process[_0xfdb5('0x72')]&&process[_0xfdb5('0x72')][_0xfdb5('0x4d')]<0x4){throw new Error(_0xfdb5('0x73'));}var _0x14f06a=path[_0xfdb5('0x28')](config[_0xfdb5('0x74')],'server/files/tmp',process[_0xfdb5('0x72')][0x2]);if(!fs[_0xfdb5('0x75')](_0x14f06a)){throw new Error(_0xfdb5('0x76'));}var _0x1d0f43={};try{_0x1d0f43=JSON['parse'](process[_0xfdb5('0x72')][0x3]);if(!_0x1d0f43[_0xfdb5('0x47')]){throw new Error(_0xfdb5('0x77'));}if(!_0x1d0f43[_0xfdb5('0x47')][_0xfdb5('0x12')]){throw new Error(_0xfdb5('0x78'));}if(!_0x1d0f43[_0xfdb5('0x47')][_0xfdb5('0x58')]){throw new Error(_0xfdb5('0x79'));}var _0x2608ce=0x0;if(_0x1d0f43[_0xfdb5('0x47')][_0xfdb5('0x24')]){_0x2608ce=0x1;}if(!_0x1d0f43[_0xfdb5('0x22')]){throw new Error(_0xfdb5('0x7a'));}}catch(_0x4e94fc){throw new Error('body\x20id\x20mandatory');}var _0x53f4bd=[];try{_0x53f4bd=_[_0xfdb5('0x7b')](JSON[_0xfdb5('0x7c')](process[_0xfdb5('0x72')][0x4]),'id');}catch(_0x2ba5a0){logger[_0xfdb5('0x3a')](_0xfdb5('0x7d'));}main(_0x14f06a,_0x1d0f43,_0x53f4bd,_0x2608ce);}validate();process['on'](_0xfdb5('0x7e'),handleStop);process['on']('uncaughtException',handleUncaughtException);
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xabad=['uniqueid','agentcalledAt','***\x20Agent\x20Info\x20***','Agent\x20Name','destcalleridname','Agent\x20Number','destcalleridnum','***\x20Time\x20Info\x20***','Agent\x20Ring','Agent\x20Connect','Agent\x20Complete','agentcompleteAt','Hold\x20Time','holdtime','Talk\x20Time','talktime','Called\x20Number','Member\x20Name','membername','Date','starttime','Answer\x20Time','answertime','Complete\x20Time','endtime','Duration','duration','Billable\x20Time','billableseconds','getSubjects','string','toLowerCase','voice','inbound','push','variable','queue','calleridnum','outbound','Outbound\x20Call','getDescriptions','***\x20Call\x20Info\x20***','keyValue','Caller\x20Number','calleridname','Call\x20To','destexten','Queue','UniqueId'];(function(_0x5d724c,_0x1a2eba){var _0x300bd9=function(_0x5e8ab5){while(--_0x5e8ab5){_0x5d724c['push'](_0x5d724c['shift']());}};_0x300bd9(++_0x1a2eba);}(_0xabad,0xe1));var _0xdaba=function(_0x459d7d,_0x55db19){_0x459d7d=_0x459d7d-0x0;var _0x26abf1=_0xabad[_0x459d7d];return _0x26abf1;};'use strict';exports[_0xdaba('0x0')]=function(_0x136004,_0x41f6c9){var _0x196c73=[{'type':_0xdaba('0x1'),'content':'[xCALLY\x20Ticket]','variableName':null}];switch(_0x136004[_0xdaba('0x2')]()){case _0xdaba('0x3'):switch(_0x41f6c9['toLowerCase']()){case _0xdaba('0x4'):_0x196c73[_0xdaba('0x5')]({'type':_0xdaba('0x6'),'content':'','variableName':_0xdaba('0x7')});_0x196c73[_0xdaba('0x5')]({'type':_0xdaba('0x6'),'content':'','variableName':_0xdaba('0x8')});break;case _0xdaba('0x9'):_0x196c73['push']({'type':'string','content':_0xdaba('0xa'),'variableName':null});_0x196c73['push']({'type':_0xdaba('0x6'),'content':'','variableName':'destcalleridnum'});break;}}return _0x196c73;};exports[_0xdaba('0xb')]=function(_0x1b2903,_0x37cb1e){var _0x34d9e2=[];switch(_0x1b2903[_0xdaba('0x2')]()){case'voice':switch(_0x37cb1e['toLowerCase']()){case'inbound':_0x34d9e2=[{'type':_0xdaba('0x1'),'content':_0xdaba('0xc'),'key':null,'keyType':null,'variableName':null},{'type':_0xdaba('0xd'),'content':'','key':_0xdaba('0xe'),'keyType':_0xdaba('0x6'),'variableName':'calleridnum'},{'type':_0xdaba('0xd'),'content':'','key':'Caller\x20Name','keyType':'variable','variableName':_0xdaba('0xf')},{'type':_0xdaba('0xd'),'content':'','key':_0xdaba('0x10'),'keyType':_0xdaba('0x6'),'variableName':_0xdaba('0x11')},{'type':'keyValue','content':'','key':_0xdaba('0x12'),'keyType':'variable','variableName':'queue'},{'type':_0xdaba('0xd'),'content':'','key':_0xdaba('0x13'),'keyType':_0xdaba('0x6'),'variableName':_0xdaba('0x14')},{'type':_0xdaba('0xd'),'content':'','key':'Date','keyType':_0xdaba('0x6'),'variableName':_0xdaba('0x15')},{'type':_0xdaba('0x1'),'content':_0xdaba('0x16'),'key':null,'keyType':null,'variableName':null},{'type':_0xdaba('0xd'),'content':'','key':_0xdaba('0x17'),'keyType':_0xdaba('0x6'),'variableName':_0xdaba('0x18')},{'type':_0xdaba('0xd'),'content':'','key':_0xdaba('0x19'),'keyType':'variable','variableName':_0xdaba('0x1a')},{'type':_0xdaba('0x1'),'content':_0xdaba('0x1b'),'key':null,'keyType':null,'variableName':null},{'type':_0xdaba('0xd'),'content':'','key':_0xdaba('0x1c'),'keyType':_0xdaba('0x6'),'variableName':_0xdaba('0x15')},{'type':_0xdaba('0xd'),'content':'','key':_0xdaba('0x1d'),'keyType':_0xdaba('0x6'),'variableName':'agentconnectAt'},{'type':_0xdaba('0xd'),'content':'','key':_0xdaba('0x1e'),'keyType':'variable','variableName':_0xdaba('0x1f')},{'type':_0xdaba('0xd'),'content':'','key':_0xdaba('0x20'),'keyType':_0xdaba('0x6'),'variableName':_0xdaba('0x21')},{'type':_0xdaba('0xd'),'content':'','key':_0xdaba('0x22'),'keyType':_0xdaba('0x6'),'variableName':_0xdaba('0x23')}];break;case _0xdaba('0x9'):_0x34d9e2=[{'type':_0xdaba('0x1'),'content':_0xdaba('0xc'),'variableName':null},{'type':'keyValue','content':'','key':_0xdaba('0x24'),'keyType':'variable','keyContent':'','variableName':_0xdaba('0x1a')},{'type':_0xdaba('0xd'),'content':'','key':_0xdaba('0x25'),'keyType':_0xdaba('0x6'),'keyContent':'','variableName':_0xdaba('0x26')},{'type':_0xdaba('0xd'),'content':'','key':_0xdaba('0x13'),'keyType':_0xdaba('0x6'),'keyContent':'','variableName':_0xdaba('0x14')},{'type':_0xdaba('0xd'),'content':'','key':_0xdaba('0x27'),'keyType':_0xdaba('0x6'),'keyContent':'','variableName':_0xdaba('0x28')},{'type':_0xdaba('0x1'),'content':_0xdaba('0x1b')},{'type':_0xdaba('0xd'),'content':'','key':_0xdaba('0x29'),'keyType':_0xdaba('0x6'),'keyContent':'','variableName':_0xdaba('0x2a')},{'type':'keyValue','content':'','key':_0xdaba('0x2b'),'keyType':_0xdaba('0x6'),'keyContent':'','variableName':_0xdaba('0x2c')},{'type':_0xdaba('0xd'),'content':'','key':_0xdaba('0x2d'),'keyType':_0xdaba('0x6'),'keyContent':'','variableName':_0xdaba('0x2e')},{'type':_0xdaba('0xd'),'content':'','key':_0xdaba('0x2f'),'keyType':_0xdaba('0x6'),'keyContent':'','variableName':_0xdaba('0x30')}];break;}}return _0x34d9e2;};
\ No newline at end of file
+var _0xdc2f=['destexten','Queue','UniqueId','uniqueid','Date','agentcalledAt','string','destcalleridname','Agent\x20Number','***\x20Time\x20Info\x20***','Agent\x20Ring','Agent\x20Connect','agentconnectAt','agentcompleteAt','Hold\x20Time','Talk\x20Time','Called\x20Number','Member\x20Name','Answer\x20Time','Complete\x20Time','endtime','Duration','duration','Billable\x20Time','billableseconds','[xCALLY\x20Ticket]','toLowerCase','voice','inbound','variable','queue','push','outbound','Outbound\x20Call','destcalleridnum','***\x20Call\x20Info\x20***','keyValue','Caller\x20Number','Caller\x20Name','calleridname','Call\x20To'];(function(_0x675219,_0x555f86){var _0xa69981=function(_0x355cfd){while(--_0x355cfd){_0x675219['push'](_0x675219['shift']());}};_0xa69981(++_0x555f86);}(_0xdc2f,0x1dc));var _0xfdc2=function(_0x167cc1,_0x56ef5a){_0x167cc1=_0x167cc1-0x0;var _0x10bc4b=_0xdc2f[_0x167cc1];return _0x10bc4b;};'use strict';exports['getSubjects']=function(_0x504413,_0xd01c12){var _0x5b6adb=[{'type':'string','content':_0xfdc2('0x0'),'variableName':null}];switch(_0x504413[_0xfdc2('0x1')]()){case _0xfdc2('0x2'):switch(_0xd01c12[_0xfdc2('0x1')]()){case _0xfdc2('0x3'):_0x5b6adb['push']({'type':_0xfdc2('0x4'),'content':'','variableName':_0xfdc2('0x5')});_0x5b6adb[_0xfdc2('0x6')]({'type':_0xfdc2('0x4'),'content':'','variableName':'calleridnum'});break;case _0xfdc2('0x7'):_0x5b6adb[_0xfdc2('0x6')]({'type':'string','content':_0xfdc2('0x8'),'variableName':null});_0x5b6adb['push']({'type':_0xfdc2('0x4'),'content':'','variableName':_0xfdc2('0x9')});break;}}return _0x5b6adb;};exports['getDescriptions']=function(_0x45ab18,_0x419b34){var _0x1a581b=[];switch(_0x45ab18[_0xfdc2('0x1')]()){case'voice':switch(_0x419b34[_0xfdc2('0x1')]()){case _0xfdc2('0x3'):_0x1a581b=[{'type':'string','content':_0xfdc2('0xa'),'key':null,'keyType':null,'variableName':null},{'type':_0xfdc2('0xb'),'content':'','key':_0xfdc2('0xc'),'keyType':_0xfdc2('0x4'),'variableName':'calleridnum'},{'type':_0xfdc2('0xb'),'content':'','key':_0xfdc2('0xd'),'keyType':_0xfdc2('0x4'),'variableName':_0xfdc2('0xe')},{'type':_0xfdc2('0xb'),'content':'','key':_0xfdc2('0xf'),'keyType':_0xfdc2('0x4'),'variableName':_0xfdc2('0x10')},{'type':_0xfdc2('0xb'),'content':'','key':_0xfdc2('0x11'),'keyType':_0xfdc2('0x4'),'variableName':'queue'},{'type':'keyValue','content':'','key':_0xfdc2('0x12'),'keyType':'variable','variableName':_0xfdc2('0x13')},{'type':'keyValue','content':'','key':_0xfdc2('0x14'),'keyType':_0xfdc2('0x4'),'variableName':_0xfdc2('0x15')},{'type':_0xfdc2('0x16'),'content':'***\x20Agent\x20Info\x20***','key':null,'keyType':null,'variableName':null},{'type':'keyValue','content':'','key':'Agent\x20Name','keyType':_0xfdc2('0x4'),'variableName':_0xfdc2('0x17')},{'type':_0xfdc2('0xb'),'content':'','key':_0xfdc2('0x18'),'keyType':_0xfdc2('0x4'),'variableName':_0xfdc2('0x9')},{'type':_0xfdc2('0x16'),'content':_0xfdc2('0x19'),'key':null,'keyType':null,'variableName':null},{'type':_0xfdc2('0xb'),'content':'','key':_0xfdc2('0x1a'),'keyType':'variable','variableName':_0xfdc2('0x15')},{'type':_0xfdc2('0xb'),'content':'','key':_0xfdc2('0x1b'),'keyType':_0xfdc2('0x4'),'variableName':_0xfdc2('0x1c')},{'type':_0xfdc2('0xb'),'content':'','key':'Agent\x20Complete','keyType':_0xfdc2('0x4'),'variableName':_0xfdc2('0x1d')},{'type':_0xfdc2('0xb'),'content':'','key':_0xfdc2('0x1e'),'keyType':_0xfdc2('0x4'),'variableName':'holdtime'},{'type':_0xfdc2('0xb'),'content':'','key':_0xfdc2('0x1f'),'keyType':_0xfdc2('0x4'),'variableName':'talktime'}];break;case _0xfdc2('0x7'):_0x1a581b=[{'type':_0xfdc2('0x16'),'content':'***\x20Call\x20Info\x20***','variableName':null},{'type':_0xfdc2('0xb'),'content':'','key':_0xfdc2('0x20'),'keyType':_0xfdc2('0x4'),'keyContent':'','variableName':_0xfdc2('0x9')},{'type':_0xfdc2('0xb'),'content':'','key':_0xfdc2('0x21'),'keyType':_0xfdc2('0x4'),'keyContent':'','variableName':'membername'},{'type':'keyValue','content':'','key':_0xfdc2('0x12'),'keyType':_0xfdc2('0x4'),'keyContent':'','variableName':'uniqueid'},{'type':_0xfdc2('0xb'),'content':'','key':_0xfdc2('0x14'),'keyType':_0xfdc2('0x4'),'keyContent':'','variableName':'starttime'},{'type':_0xfdc2('0x16'),'content':_0xfdc2('0x19')},{'type':_0xfdc2('0xb'),'content':'','key':_0xfdc2('0x22'),'keyType':_0xfdc2('0x4'),'keyContent':'','variableName':'answertime'},{'type':'keyValue','content':'','key':_0xfdc2('0x23'),'keyType':'variable','keyContent':'','variableName':_0xfdc2('0x24')},{'type':_0xfdc2('0xb'),'content':'','key':_0xfdc2('0x25'),'keyType':_0xfdc2('0x4'),'keyContent':'','variableName':_0xfdc2('0x26')},{'type':'keyValue','content':'','key':_0xfdc2('0x27'),'keyType':_0xfdc2('0x4'),'keyContent':'','variableName':_0xfdc2('0x28')}];break;}}return _0x1a581b;};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x67ed=['user','query','clone','body','omit','html','phone','fax','mobile','lodash','../../config/logger','openchannel-interactions','mail-interactions','fax-interactions','sms-interactions','whatsapp-interactions','upperFirst','InteractionId','unknown','[%s]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','toUpperCase','role','stringify','null','Interaction','findOne','then','update','info','catch','tracked'];(function(_0x46e749,_0x9b62a){var _0x1b776f=function(_0xe39362){while(--_0xe39362){_0x46e749['push'](_0x46e749['shift']());}};_0x1b776f(++_0x9b62a);}(_0x67ed,0x101));var _0xd67e=function(_0x446452,_0x2f0563){_0x446452=_0x446452-0x0;var _0x1a1692=_0x67ed[_0x446452];return _0x1a1692;};'use strict';var _=require(_0xd67e('0x0'));var db=require('../../mysqldb')['db'];var loggers={'openchannel':require(_0xd67e('0x1'))(_0xd67e('0x2')),'mail':require(_0xd67e('0x1'))(_0xd67e('0x3')),'fax':require(_0xd67e('0x1'))(_0xd67e('0x4')),'sms':require('../../config/logger')(_0xd67e('0x5')),'chat':require(_0xd67e('0x1'))('chat-interactions'),'whatsapp':require(_0xd67e('0x1'))(_0xd67e('0x6'))};function getInteractionId(_0x1f019c,_0x1ca8ca,_0x23998f){if(_0x1f019c&&_0x1f019c[_[_0xd67e('0x7')](_0x23998f)+'InteractionId']){return _0x1f019c[_[_0xd67e('0x7')](_0x23998f)+_0xd67e('0x8')];}else if(_0x1f019c&&_0x1f019c['id']){return _0x1f019c['id'];}else if(_0x1ca8ca&&_0x1ca8ca['id']){return _0x1ca8ca['id'];}else{return _0xd67e('0x9');}}function log(_0x4367cc,_0x28880b,_0x44af85,_0x1ca7da,_0x353ab5,_0x3f74e9){loggers[_0x353ab5['toLowerCase']()][_0x4367cc](_0xd67e('0xa'),_0x3f74e9[_0xd67e('0xb')](),_0x28880b?_0x28880b['id']:null,_0x28880b?_0x28880b['name']:null,_0x28880b?_0x28880b[_0xd67e('0xc')]:null,getInteractionId(_0x44af85,_0x1ca7da,_0x353ab5),_0x44af85?JSON[_0xd67e('0xd')](_0x44af85):_0xd67e('0xe'));}function updateUser(_0x3f9c59,_0x1295c0,_0xc934ba,_0x57dd05,_0x3147c5){db[_['upperFirst'](_0x57dd05)+_0xd67e('0xf')][_0xd67e('0x10')]({'where':{'id':getInteractionId(_0x1295c0,_0xc934ba,_0x57dd05)}})[_0xd67e('0x11')](function(_0x40f298){if(_0x40f298){return _0x40f298[_0xd67e('0x12')]({'UserId':_0x3f9c59?_0x3f9c59['id']:null});}})[_0xd67e('0x11')](function(_0x2555a8){if(_0x2555a8){log(_0xd67e('0x13'),_0x3f9c59,_0x1295c0,_0xc934ba,_0x57dd05,_0x3147c5);}})[_0xd67e('0x14')](function(){log('error',_0x3f9c59,_0x1295c0,_0xc934ba,_0x57dd05,_0x3147c5);});}exports[_0xd67e('0x15')]=function(_0x56e035,_0x46459a){return function(_0x5cb296,_0x325fd3,_0x222ca6){var _0x1c71c4=_0x5cb296[_0xd67e('0x16')];var _0x2b008d={};var _0x3d740c=_0x5cb296[_0xd67e('0x17')];if(_0x2b008d){_0x2b008d=_[_0xd67e('0x18')](_0x5cb296[_0xd67e('0x19')]);_0x2b008d=_[_0xd67e('0x1a')](_0x2b008d,[_0xd67e('0x19'),_0xd67e('0x1b'),_0xd67e('0x1c'),_0xd67e('0x1d'),_0xd67e('0x1e')]);}updateUser(_0x1c71c4,_0x2b008d,_0x3d740c,_0x56e035,_0x46459a);_0x222ca6(null);};};
\ No newline at end of file
+var _0x43e4=['unknown','[%s]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','name','role','stringify','null','Interaction','findOne','then','catch','error','user','query','clone','omit','body','html','phone','fax','mobile','lodash','../../mysqldb','../../config/logger','mail-interactions','fax-interactions','sms-interactions','chat-interactions','whatsapp-interactions','upperFirst','InteractionId'];(function(_0x57ef53,_0x555178){var _0x2da55c=function(_0x2a02a9){while(--_0x2a02a9){_0x57ef53['push'](_0x57ef53['shift']());}};_0x2da55c(++_0x555178);}(_0x43e4,0x17c));var _0x443e=function(_0x31e29a,_0x349c9b){_0x31e29a=_0x31e29a-0x0;var _0x32d892=_0x43e4[_0x31e29a];return _0x32d892;};'use strict';var _=require(_0x443e('0x0'));var db=require(_0x443e('0x1'))['db'];var loggers={'openchannel':require(_0x443e('0x2'))('openchannel-interactions'),'mail':require('../../config/logger')(_0x443e('0x3')),'fax':require(_0x443e('0x2'))(_0x443e('0x4')),'sms':require(_0x443e('0x2'))(_0x443e('0x5')),'chat':require('../../config/logger')(_0x443e('0x6')),'whatsapp':require(_0x443e('0x2'))(_0x443e('0x7'))};function getInteractionId(_0x54a1d1,_0x19bdae,_0x5b54ae){if(_0x54a1d1&&_0x54a1d1[_[_0x443e('0x8')](_0x5b54ae)+_0x443e('0x9')]){return _0x54a1d1[_['upperFirst'](_0x5b54ae)+_0x443e('0x9')];}else if(_0x54a1d1&&_0x54a1d1['id']){return _0x54a1d1['id'];}else if(_0x19bdae&&_0x19bdae['id']){return _0x19bdae['id'];}else{return _0x443e('0xa');}}function log(_0x5f1fa5,_0x15b191,_0x3b3b6b,_0x4ac8f5,_0x43d92c,_0x51ac53){loggers[_0x43d92c['toLowerCase']()][_0x5f1fa5](_0x443e('0xb'),_0x51ac53['toUpperCase'](),_0x15b191?_0x15b191['id']:null,_0x15b191?_0x15b191[_0x443e('0xc')]:null,_0x15b191?_0x15b191[_0x443e('0xd')]:null,getInteractionId(_0x3b3b6b,_0x4ac8f5,_0x43d92c),_0x3b3b6b?JSON[_0x443e('0xe')](_0x3b3b6b):_0x443e('0xf'));}function updateUser(_0x2b8440,_0x499458,_0x261c90,_0x2982d2,_0x1f7fb3){db[_[_0x443e('0x8')](_0x2982d2)+_0x443e('0x10')][_0x443e('0x11')]({'where':{'id':getInteractionId(_0x499458,_0x261c90,_0x2982d2)}})['then'](function(_0x39c408){if(_0x39c408){return _0x39c408['update']({'UserId':_0x2b8440?_0x2b8440['id']:null});}})[_0x443e('0x12')](function(_0x117167){if(_0x117167){log('info',_0x2b8440,_0x499458,_0x261c90,_0x2982d2,_0x1f7fb3);}})[_0x443e('0x13')](function(){log(_0x443e('0x14'),_0x2b8440,_0x499458,_0x261c90,_0x2982d2,_0x1f7fb3);});}exports['tracked']=function(_0x4f7b28,_0x149dac){return function(_0x2a091f,_0xa7f44d,_0x2d61a1){var _0x3795c9=_0x2a091f[_0x443e('0x15')];var _0x279df1={};var _0x2bcc4f=_0x2a091f[_0x443e('0x16')];if(_0x279df1){_0x279df1=_[_0x443e('0x17')](_0x2a091f['body']);_0x279df1=_[_0x443e('0x18')](_0x279df1,[_0x443e('0x19'),_0x443e('0x1a'),_0x443e('0x1b'),_0x443e('0x1c'),_0x443e('0x1d')]);}updateUser(_0x3795c9,_0x279df1,_0x2bcc4f,_0x4f7b28,_0x149dac);_0x2d61a1(null);};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe103=['format','Maximum\x20%s\x20limit\x20have\x20been\x20reached','catch','users','User','user','isUserLimit','util','composable-middleware','../../mysqldb','data1','license','split','createDecipher','aes-256-ctr','%s:%s:%s','update','utf8','final','parse','hasOwnProperty','use','License','findOne','then','count','status','json'];(function(_0xf2d94e,_0x3dbcc1){var _0x49e0ea=function(_0x3653e2){while(--_0x3653e2){_0xf2d94e['push'](_0xf2d94e['shift']());}};_0x49e0ea(++_0x3dbcc1);}(_0xe103,0xaf));var _0x3e10=function(_0x45f6e5,_0x17a515){_0x45f6e5=_0x45f6e5-0x0;var _0x48f124=_0xe103[_0x45f6e5];return _0x48f124;};'use strict';var crypto=require('crypto');var util=require(_0x3e10('0x0'));var compose=require(_0x3e10('0x1'));var db=require(_0x3e10('0x2'))['db'];var config=require('../../config/environment');function getValueFromLicense(_0x211ad4,_0x5c4047){if(_0x211ad4&&_0x5c4047){if(_0x5c4047[_0x3e10('0x3')]&&_0x5c4047[_0x3e10('0x4')]){var _0x319a06=_0x5c4047[_0x3e10('0x3')];var _0x42d70a=_0x5c4047[_0x3e10('0x4')];var _0x3c97af=_0x319a06['split']('-')[0x4];var _0xe52742=_0x319a06[_0x3e10('0x5')]('-')[0x0];var _0xe8231d=crypto[_0x3e10('0x6')](_0x3e10('0x7'),util['format'](_0x3e10('0x8'),_0x3c97af,_0x319a06,_0xe52742));var _0xe01497=_0xe8231d[_0x3e10('0x9')](_0x42d70a,'base64',_0x3e10('0xa'));_0xe01497+=_0xe8231d[_0x3e10('0xb')](_0x3e10('0xa'));var _0x1e0e5f=JSON[_0x3e10('0xc')](_0xe01497);return _0x1e0e5f[_0x3e10('0xd')](_0x211ad4)?_0x1e0e5f[_0x211ad4]:null;}}return null;}function isLimit(_0x5d8e5d,_0x3049b6,_0x47d561,_0x16b281){var _0x2ee7ae=_0x3049b6;return compose()[_0x3e10('0xe')](function(_0x287a5d,_0x5c08c0,_0xd537cb){return db[_0x3e10('0xf')][_0x3e10('0x10')]({'where':{'id':0x1},'raw':!![]})[_0x3e10('0x11')](function(_0x1d6504){var _0x4c8467=getValueFromLicense(_0x5d8e5d,_0x1d6504);return _0x4c8467?_0x4c8467:_0x2ee7ae;})[_0x3e10('0x11')](function(_0x2096be){_0x2ee7ae=_0x2096be;return _0x47d561[_0x3e10('0x12')](_0x16b281);})[_0x3e10('0x11')](function(_0x517f1e){if(_0x517f1e>=_0x2ee7ae){return _0x5c08c0[_0x3e10('0x13')](0x193)[_0x3e10('0x14')]({'message':util[_0x3e10('0x15')](_0x3e10('0x16'),_0x5d8e5d)});}_0xd537cb();})[_0x3e10('0x17')](function(_0x5b3e70){_0xd537cb(_0x5b3e70);});});}function isUserLimit(){return isLimit(_0x3e10('0x18'),0x1,db[_0x3e10('0x19')],{'where':{'$or':[{'role':'admin'},{'role':_0x3e10('0x1a')}]}});}exports[_0x3e10('0x1b')]=isUserLimit;
\ No newline at end of file
+var _0x8028=['Maximum\x20%s\x20limit\x20have\x20been\x20reached','catch','User','user','crypto','util','../../mysqldb','../../config/environment','data1','license','split','createDecipher','aes-256-ctr','format','update','utf8','final','hasOwnProperty','use','License','findOne','then','count','status','json'];(function(_0x596a17,_0x1f96fa){var _0x176f30=function(_0x3b99f0){while(--_0x3b99f0){_0x596a17['push'](_0x596a17['shift']());}};_0x176f30(++_0x1f96fa);}(_0x8028,0x68));var _0x8802=function(_0x168c65,_0x1b8a86){_0x168c65=_0x168c65-0x0;var _0x4faaf0=_0x8028[_0x168c65];return _0x4faaf0;};'use strict';var crypto=require(_0x8802('0x0'));var util=require(_0x8802('0x1'));var compose=require('composable-middleware');var db=require(_0x8802('0x2'))['db'];var config=require(_0x8802('0x3'));function getValueFromLicense(_0x5ff4a1,_0x46331c){if(_0x5ff4a1&&_0x46331c){if(_0x46331c[_0x8802('0x4')]&&_0x46331c[_0x8802('0x5')]){var _0x1e0b81=_0x46331c[_0x8802('0x4')];var _0x7b2fb6=_0x46331c[_0x8802('0x5')];var _0x15dfc1=_0x1e0b81[_0x8802('0x6')]('-')[0x4];var _0x1c2deb=_0x1e0b81[_0x8802('0x6')]('-')[0x0];var _0x2a1fec=crypto[_0x8802('0x7')](_0x8802('0x8'),util[_0x8802('0x9')]('%s:%s:%s',_0x15dfc1,_0x1e0b81,_0x1c2deb));var _0x4d2477=_0x2a1fec[_0x8802('0xa')](_0x7b2fb6,'base64',_0x8802('0xb'));_0x4d2477+=_0x2a1fec[_0x8802('0xc')](_0x8802('0xb'));var _0x3a3312=JSON['parse'](_0x4d2477);return _0x3a3312[_0x8802('0xd')](_0x5ff4a1)?_0x3a3312[_0x5ff4a1]:null;}}return null;}function isLimit(_0x2a859b,_0x3d216c,_0x3ceee1,_0x154f3e){var _0x21d78e=_0x3d216c;return compose()[_0x8802('0xe')](function(_0x5a8dd0,_0x36449f,_0x223e58){return db[_0x8802('0xf')][_0x8802('0x10')]({'where':{'id':0x1},'raw':!![]})[_0x8802('0x11')](function(_0x3ade98){var _0x277eea=getValueFromLicense(_0x2a859b,_0x3ade98);return _0x277eea?_0x277eea:_0x21d78e;})[_0x8802('0x11')](function(_0x173591){_0x21d78e=_0x173591;return _0x3ceee1[_0x8802('0x12')](_0x154f3e);})[_0x8802('0x11')](function(_0x2ee080){if(_0x2ee080>=_0x21d78e){return _0x36449f[_0x8802('0x13')](0x193)[_0x8802('0x14')]({'message':util[_0x8802('0x9')](_0x8802('0x15'),_0x2a859b)});}_0x223e58();})[_0x8802('0x16')](function(_0x33214f){_0x223e58(_0x33214f);});});}function isUserLimit(){return isLimit('users',0x1,db[_0x8802('0x17')],{'where':{'$or':[{'role':'admin'},{'role':_0x8802('0x18')}]}});}exports['isUserLimit']=isUserLimit;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa534=['includes','$ne','$notIn','\x20OR\x20','field','$in','IN\x20?','NOT\x20IN\x20?','=\x20?','$substring','$startsWith','$endsWith','LIKE\x20?','<\x20?','<=\x20?','>=\x20?','BETWEEN\x20?\x20AND\x20?','start','pop','utcOffset','hours','minutes','seconds','moment','parseSearch','sqlOperator','startsWith','[$or]','replace','split','length','forEach','shift','match','indexOf','map','conditions','push','buildExpression','DATE','operator','$eq','$between','value','$gt','add','days','format','YYYY-MM-DD','castTo','text'];(function(_0x5cf052,_0x36e9f4){var _0x245ce6=function(_0x449220){while(--_0x449220){_0x5cf052['push'](_0x5cf052['shift']());}};_0x245ce6(++_0x36e9f4);}(_0xa534,0x17c));var _0x4a53=function(_0x4f9b18,_0x2cb5ca){_0x4f9b18=_0x4f9b18-0x0;var _0x29f20c=_0xa534[_0x4f9b18];return _0x29f20c;};'use strict';var _=require('lodash');var moment=require(_0x4a53('0x0'));exports[_0x4a53('0x1')]=function(_0x53bc2b){var _0x308ee6={'conditions':[]};_0x308ee6[_0x4a53('0x2')]=_[_0x4a53('0x3')](_0x53bc2b,_0x4a53('0x4'))?'or':'and';var _0x28838f=_0x53bc2b['replace']('[$and]','')[_0x4a53('0x5')]('[$or]','')[_0x4a53('0x6')]('||');for(var _0x1bde2b=0x0;_0x1bde2b<_0x28838f[_0x4a53('0x7')];_0x1bde2b++){var _0x3aa46b=_0x28838f[_0x1bde2b][_0x4a53('0x6')](':=');var _0xaf0e06=_0x3aa46b[0x0];var _0x21061f=_0x3aa46b['slice'](0x1);_0x21061f[_0x4a53('0x8')](function(_0x26c3b9){var _0x5cc4ec=_0x26c3b9[_0x4a53('0x6')]('[')[_0x4a53('0x9')]();var _0x1de9c1=_0x26c3b9[_0x4a53('0xa')](/\[(.*?)\]/g);_0x1de9c1['forEach'](function(_0x548324){var _0x257914=_0x548324[_0x4a53('0x6')]('[')['filter'](function(_0xc7432c){return _0xc7432c[_0x4a53('0xb')](']')>-0x1;})[_0x4a53('0xc')](function(_0x17424b){return _0x17424b[_0x4a53('0x6')](']')[0x0];})[0x0];_0x308ee6[_0x4a53('0xd')][_0x4a53('0xe')]({'field':_0xaf0e06,'operator':_0x5cc4ec,'value':_0x257914});});});}return _0x308ee6;};exports[_0x4a53('0xf')]=function(_0x2c2308,_0x341500,_0x2ccb08){var _0x4f67b1={};if(_0x341500===_0x4a53('0x10')){if(_0x2ccb08[_0x4a53('0x11')]===_0x4a53('0x12')){_0x2ccb08['operator']=_0x4a53('0x13');_0x2ccb08['value']+=','+_0x2ccb08[_0x4a53('0x14')];}else if(_['includes']([_0x4a53('0x15'),'$lte'],_0x2ccb08[_0x4a53('0x11')])){_0x2ccb08[_0x4a53('0x14')]=moment(_0x2ccb08[_0x4a53('0x14')])[_0x4a53('0x16')](0x1,_0x4a53('0x17'))[_0x4a53('0x18')](_0x4a53('0x19'));}}if(_0x2ccb08[_0x4a53('0x1a')]){_0x341500=_0x2ccb08[_0x4a53('0x1a')];_0x4f67b1['text']='CAST('+_0x2c2308+'.'+_0x2ccb08['field']+'\x20AS\x20'+_0x2ccb08['castTo']+')\x20'+parseOperator(_0x2ccb08[_0x4a53('0x11')]);}else{_0x4f67b1[_0x4a53('0x1b')]=_0x2c2308+'.'+_0x2ccb08['field']+'\x20'+parseOperator(_0x2ccb08[_0x4a53('0x11')]);}if(_[_0x4a53('0x1c')]([_0x4a53('0x1d'),_0x4a53('0x1e')],_0x2ccb08['operator']))_0x4f67b1[_0x4a53('0x1b')]='('+_0x4f67b1[_0x4a53('0x1b')]+_0x4a53('0x1f')+_0x2c2308+'.'+_0x2ccb08[_0x4a53('0x20')]+'\x20IS\x20NULL)';_0x4f67b1[_0x4a53('0x14')]=parseValue(_0x341500,_0x2ccb08['operator'],_0x2ccb08['value']);return _0x4f67b1;};function parseOperator(_0x5b5986){var _0x2310a2;switch(_0x5b5986){case _0x4a53('0x21'):_0x2310a2=_0x4a53('0x22');break;case _0x4a53('0x1e'):_0x2310a2=_0x4a53('0x23');break;case _0x4a53('0x12'):_0x2310a2=_0x4a53('0x24');break;case _0x4a53('0x1d'):_0x2310a2='<>\x20?';break;case _0x4a53('0x25'):case _0x4a53('0x26'):case _0x4a53('0x27'):_0x2310a2=_0x4a53('0x28');break;case'$lt':_0x2310a2=_0x4a53('0x29');break;case _0x4a53('0x15'):_0x2310a2='>\x20?';break;case'$lte':_0x2310a2=_0x4a53('0x2a');break;case'$gte':_0x2310a2=_0x4a53('0x2b');break;case _0x4a53('0x13'):_0x2310a2=_0x4a53('0x2c');break;}return _0x2310a2;}function parseValue(_0x383084,_0x5aef67,_0x13decd){var _0x4372f7={'start':undefined,'end':undefined};switch(_0x5aef67){case _0x4a53('0x21'):case _0x4a53('0x1e'):_0x4372f7[_0x4a53('0x2d')]=_0x13decd[_0x4a53('0x6')](',');break;case _0x4a53('0x25'):_0x4372f7['start']='%'+_0x13decd+'%';break;case _0x4a53('0x26'):_0x4372f7[_0x4a53('0x2d')]=_0x13decd+'%';break;case _0x4a53('0x27'):_0x4372f7[_0x4a53('0x2d')]='%'+_0x13decd;break;case _0x4a53('0x13'):var _0x2b44d2=_0x13decd[_0x4a53('0x6')](',');var _0x13decd=_0x2b44d2['shift']();var _0x12ec1c=_0x2b44d2[_0x4a53('0x2e')]();if(_0x383084===_0x4a53('0x10')){_0x13decd=moment(_0x13decd)[_0x4a53('0x2f')](0x0,!![])['format']();_0x12ec1c=moment(_0x12ec1c)[_0x4a53('0x2f')](0x0,!![])[_0x4a53('0x16')](0x17,_0x4a53('0x30'))[_0x4a53('0x16')](0x3b,_0x4a53('0x31'))[_0x4a53('0x16')](0x3b,_0x4a53('0x32'))['format']();}_0x4372f7={'start':_0x13decd,'end':_0x12ec1c};break;default:_0x4372f7[_0x4a53('0x2d')]=_0x13decd;break;}return _0x4372f7;}
\ No newline at end of file
+var _0x5bc2=['>=\x20?','$between','BETWEEN\x20?\x20AND\x20?','start','shift','utcOffset','hours','minutes','seconds','lodash','[$or]','and','replace','[$and]','split','length','slice','forEach','match','map','buildExpression','DATE','operator','$eq','value','$gt','$lte','add','format','castTo','text','CAST(','\x20AS\x20','field','includes','$ne','$notIn','$in','IN\x20?','NOT\x20IN\x20?','=\x20?','$substring','$startsWith','$endsWith','LIKE\x20?','<\x20?','>\x20?','$gte'];(function(_0x263a74,_0xc31414){var _0x2aa86c=function(_0x382896){while(--_0x382896){_0x263a74['push'](_0x263a74['shift']());}};_0x2aa86c(++_0xc31414);}(_0x5bc2,0x129));var _0x25bc=function(_0x21aec3,_0x5c97e9){_0x21aec3=_0x21aec3-0x0;var _0x288bbc=_0x5bc2[_0x21aec3];return _0x288bbc;};'use strict';var _=require(_0x25bc('0x0'));var moment=require('moment');exports['parseSearch']=function(_0x509dfe){var _0x556d6a={'conditions':[]};_0x556d6a['sqlOperator']=_['startsWith'](_0x509dfe,_0x25bc('0x1'))?'or':_0x25bc('0x2');var _0xb7f647=_0x509dfe[_0x25bc('0x3')](_0x25bc('0x4'),'')['replace']('[$or]','')[_0x25bc('0x5')]('||');for(var _0x12b043=0x0;_0x12b043<_0xb7f647[_0x25bc('0x6')];_0x12b043++){var _0x57fb81=_0xb7f647[_0x12b043][_0x25bc('0x5')](':=');var _0x449982=_0x57fb81[0x0];var _0x3914ec=_0x57fb81[_0x25bc('0x7')](0x1);_0x3914ec[_0x25bc('0x8')](function(_0x38e89f){var _0x4bc149=_0x38e89f[_0x25bc('0x5')]('[')['shift']();var _0x2b7f44=_0x38e89f[_0x25bc('0x9')](/\[(.*?)\]/g);_0x2b7f44[_0x25bc('0x8')](function(_0x2e3a25){var _0x4958b4=_0x2e3a25[_0x25bc('0x5')]('[')['filter'](function(_0x5a339e){return _0x5a339e['indexOf'](']')>-0x1;})[_0x25bc('0xa')](function(_0x33d818){return _0x33d818['split'](']')[0x0];})[0x0];_0x556d6a['conditions']['push']({'field':_0x449982,'operator':_0x4bc149,'value':_0x4958b4});});});}return _0x556d6a;};exports[_0x25bc('0xb')]=function(_0x166203,_0x171e60,_0x2ae886){var _0xfddc27={};if(_0x171e60===_0x25bc('0xc')){if(_0x2ae886[_0x25bc('0xd')]===_0x25bc('0xe')){_0x2ae886[_0x25bc('0xd')]='$between';_0x2ae886[_0x25bc('0xf')]+=','+_0x2ae886[_0x25bc('0xf')];}else if(_['includes']([_0x25bc('0x10'),_0x25bc('0x11')],_0x2ae886[_0x25bc('0xd')])){_0x2ae886[_0x25bc('0xf')]=moment(_0x2ae886[_0x25bc('0xf')])[_0x25bc('0x12')](0x1,'days')[_0x25bc('0x13')]('YYYY-MM-DD');}}if(_0x2ae886['castTo']){_0x171e60=_0x2ae886[_0x25bc('0x14')];_0xfddc27[_0x25bc('0x15')]=_0x25bc('0x16')+_0x166203+'.'+_0x2ae886['field']+_0x25bc('0x17')+_0x2ae886[_0x25bc('0x14')]+')\x20'+parseOperator(_0x2ae886[_0x25bc('0xd')]);}else{_0xfddc27[_0x25bc('0x15')]=_0x166203+'.'+_0x2ae886[_0x25bc('0x18')]+'\x20'+parseOperator(_0x2ae886[_0x25bc('0xd')]);}if(_[_0x25bc('0x19')]([_0x25bc('0x1a'),_0x25bc('0x1b')],_0x2ae886['operator']))_0xfddc27['text']='('+_0xfddc27[_0x25bc('0x15')]+'\x20OR\x20'+_0x166203+'.'+_0x2ae886['field']+'\x20IS\x20NULL)';_0xfddc27[_0x25bc('0xf')]=parseValue(_0x171e60,_0x2ae886['operator'],_0x2ae886[_0x25bc('0xf')]);return _0xfddc27;};function parseOperator(_0x5e0639){var _0xe0d66b;switch(_0x5e0639){case _0x25bc('0x1c'):_0xe0d66b=_0x25bc('0x1d');break;case'$notIn':_0xe0d66b=_0x25bc('0x1e');break;case _0x25bc('0xe'):_0xe0d66b=_0x25bc('0x1f');break;case _0x25bc('0x1a'):_0xe0d66b='<>\x20?';break;case _0x25bc('0x20'):case _0x25bc('0x21'):case _0x25bc('0x22'):_0xe0d66b=_0x25bc('0x23');break;case'$lt':_0xe0d66b=_0x25bc('0x24');break;case'$gt':_0xe0d66b=_0x25bc('0x25');break;case _0x25bc('0x11'):_0xe0d66b='<=\x20?';break;case _0x25bc('0x26'):_0xe0d66b=_0x25bc('0x27');break;case _0x25bc('0x28'):_0xe0d66b=_0x25bc('0x29');break;}return _0xe0d66b;}function parseValue(_0x11fc9e,_0x1682a0,_0x53c05f){var _0x1bbb0e={'start':undefined,'end':undefined};switch(_0x1682a0){case'$in':case'$notIn':_0x1bbb0e[_0x25bc('0x2a')]=_0x53c05f['split'](',');break;case _0x25bc('0x20'):_0x1bbb0e[_0x25bc('0x2a')]='%'+_0x53c05f+'%';break;case _0x25bc('0x21'):_0x1bbb0e[_0x25bc('0x2a')]=_0x53c05f+'%';break;case _0x25bc('0x22'):_0x1bbb0e[_0x25bc('0x2a')]='%'+_0x53c05f;break;case'$between':var _0x13a722=_0x53c05f[_0x25bc('0x5')](',');var _0x53c05f=_0x13a722[_0x25bc('0x2b')]();var _0x46eee7=_0x13a722['pop']();if(_0x11fc9e===_0x25bc('0xc')){_0x53c05f=moment(_0x53c05f)[_0x25bc('0x2c')](0x0,!![])[_0x25bc('0x13')]();_0x46eee7=moment(_0x46eee7)[_0x25bc('0x2c')](0x0,!![])[_0x25bc('0x12')](0x17,_0x25bc('0x2d'))[_0x25bc('0x12')](0x3b,_0x25bc('0x2e'))[_0x25bc('0x12')](0x3b,_0x25bc('0x2f'))[_0x25bc('0x13')]();}_0x1bbb0e={'start':_0x53c05f,'end':_0x46eee7};break;default:_0x1bbb0e[_0x25bc('0x2a')]=_0x53c05f;break;}return _0x1bbb0e;}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x54ac=['getOptions','query','$id','model','intersection','attributes','nolimit','where','filters','filter','columns','value','merge','type','VIRTUAL','lower','options','lodash','sequelize','moment','parse','keys','includes','fields','isEmpty','find','DATE','format','YYYY-MM-DD','$lte','utc','subtract','name','uniqueid','isArray','split','limit','offset','sort','map','indexOf','cast','col','priority','unsigned','substr','DESC','length','omit','unset','isNumeric','match','^[+]?[0-9]*$','isEmail','getFullTextValue','forEach','push'];(function(_0x5bd5a7,_0x2c904d){var _0x4d6a18=function(_0x2d0eae){while(--_0x2d0eae){_0x5bd5a7['push'](_0x5bd5a7['shift']());}};_0x4d6a18(++_0x2c904d);}(_0x54ac,0x83));var _0xc54a=function(_0x55d911,_0x2b768c){_0x55d911=_0x55d911-0x0;var _0x3104c2=_0x54ac[_0x55d911];return _0x3104c2;};'use strict';var _=require(_0xc54a('0x0'));var sequelize=require(_0xc54a('0x1'));var moment=require(_0xc54a('0x2'));var LIMIT_VALUE=0xfa;function hasSequelizeOperator(_0x4bc9d8){var _0x2300e2=['ne'];try{var _0x855f58=JSON[_0xc54a('0x3')](_0x4bc9d8);var _0x4460db=Object[_0xc54a('0x4')](_0x855f58)[0x0];return _0x2300e2[_0xc54a('0x5')](_0x4460db);}catch(_0x2a095a){return![];}}function getOperatorValue(_0x15df76){var _0x1e7c00=JSON[_0xc54a('0x3')](_0x15df76);var _0x111a2f=Object[_0xc54a('0x4')](_0x1e7c00)[0x0];var _0xc92b00=_0x1e7c00[_0x111a2f];return{['$'+_0x111a2f]:_0xc92b00};}exports[_0xc54a('0x6')]=function(_0x3398b5){var _0xc2d366=null;if(_0x3398b5){_0xc2d366=_0x3398b5['split'](',');}return _0xc2d366;};exports['filters']=function(_0x2e5830,_0x2e27ed){var _0x28c87c={};if(!_[_0xc54a('0x7')](_0x2e5830)){_['forOwn'](_0x2e5830,function(_0x5a503e,_0x361735){try{if(_0x2e27ed){var _0x4ec117=_[_0xc54a('0x8')](_0x2e27ed,{'name':_0x361735})||{};if(hasSequelizeOperator(_0x5a503e)){_0x28c87c[_0x361735]=getOperatorValue(_0x5a503e);}else if(_0x4ec117['type']===_0xc54a('0x9')&&_['isPlainObject'](_0x5a503e)){var _0x54e4c4=JSON[_0xc54a('0x3')](_0x5a503e);var _0x55622a={'$gte':moment(moment(_0x54e4c4['$gte'])[_0xc54a('0xa')](_0xc54a('0xb')))['utc']()['format'](),'$lte':moment(moment(_0x54e4c4[_0xc54a('0xc')])['format'](_0xc54a('0xb')))[_0xc54a('0xd')]()[_0xc54a('0xe')](0x1,'s')[_0xc54a('0xa')]()};_0x28c87c[_0x361735]=_0x55622a;}else if(_0x4ec117[_0xc54a('0xf')]===_0xc54a('0x10')){_0x28c87c[_0x361735]=_0x5a503e;}else{_0x28c87c[_0x361735]=_['isArray'](_0x5a503e)?_0x5a503e:JSON[_0xc54a('0x3')](_0x5a503e);}}else{_0x28c87c[_0x361735]=_[_0xc54a('0x11')](_0x5a503e)?_0x5a503e:JSON[_0xc54a('0x3')](_0x5a503e);}}catch(_0x3826b2){_0x28c87c[_0x361735]=_0x5a503e[_0xc54a('0x12')](',');}});}return _0x28c87c;};exports[_0xc54a('0x13')]=function(_0x880c5e){_0x880c5e=parseInt(_0x880c5e,0xa);if(!_0x880c5e||_0x880c5e<0x0){_0x880c5e=LIMIT_VALUE;}return _0x880c5e;};exports[_0xc54a('0x14')]=function(_0x4a877e){_0x4a877e=parseInt(_0x4a877e,0xa);if(!_0x4a877e||_0x4a877e<0x0){_0x4a877e=0x0;}return _0x4a877e;};exports[_0xc54a('0x15')]=function(_0x461c49){var _0x3f8299,_0x348228=null;if(_0x461c49){_0x3f8299=_0x461c49[_0xc54a('0x12')](',');_0x348228=_[_0xc54a('0x16')](_0x3f8299,function(_0x5b1395){if(_0x5b1395[_0xc54a('0x17')]('-')===0x0){return[_0x5b1395==='priority'?sequelize[_0xc54a('0x18')](sequelize[_0xc54a('0x19')](_0xc54a('0x1a')),_0xc54a('0x1b')):_0x5b1395[_0xc54a('0x1c')](0x1),_0xc54a('0x1d')];}else{return[_0x5b1395===_0xc54a('0x1a')?sequelize[_0xc54a('0x18')](sequelize['col'](_0xc54a('0x1a')),_0xc54a('0x1b')):_0x5b1395,'ASC'];}});}return _0x348228;};exports['omit']=function(_0x37e623,_0x5eee61){if(_['isEmpty'](_0x37e623)){return _0x37e623;}if(_['isArray'](_0x37e623)){for(var _0x599dd4=0x0;_0x599dd4<_0x37e623[_0xc54a('0x1e')];_0x599dd4+=0x1){_0x37e623[_0x599dd4]=this[_0xc54a('0x1f')](_0x37e623[_0x599dd4],_0x5eee61);}return _0x37e623;}if(!_['isObject'](_0x37e623)){return _0x37e623;}if(_['isString'](_0x5eee61)){_0x5eee61=[_0x5eee61];}if(!_['isArray'](_0x5eee61)){return _0x37e623;}for(var _0x47ccc1=0x0;_0x47ccc1<_0x5eee61[_0xc54a('0x1e')];_0x47ccc1+=0x1){_[_0xc54a('0x20')](_0x37e623,_0x5eee61[_0x47ccc1]);}for(var _0x5295a5 in _0x37e623){if(_0x37e623['hasOwnProperty'](_0x5295a5)){_0x37e623[_0x5295a5]=this[_0xc54a('0x1f')](_0x37e623[_0x5295a5],_0x5eee61);}}return _0x37e623;};exports[_0xc54a('0x21')]=function(_0x5234ed){return _0x5234ed[_0xc54a('0x22')](RegExp(_0xc54a('0x23')))?!![]:![];};exports[_0xc54a('0x24')]=function(_0x507f69){return _0x507f69[_0xc54a('0x22')](/^\S+@\S+$/)?!![]:![];};exports[_0xc54a('0x25')]=function(_0x183290){var _0x42c988=[];_0x183290[_0xc54a('0x12')](/[ ,]+/)[_0xc54a('0x26')](function(_0x270ee9){_0x270ee9=_0x270ee9['replace'](/([^:]")"+/g,'$1');_0x270ee9='+'+_0x270ee9+'*';if(_0x270ee9['includes']('@'))_0x270ee9='\x22'+_0x270ee9+'\x22';_0x42c988[_0xc54a('0x27')](_0x270ee9);});return _0x42c988['join']('\x20');};exports[_0xc54a('0x28')]=function(_0x194eac,_0x4e787c,_0x4a8ed9){var _0x2d48f2={},_0x54bf09={};if(_0x4e787c[_0xc54a('0x29')][_0xc54a('0x2a')]){_0x4e787c[_0xc54a('0x29')]['id']=_0x4e787c[_0xc54a('0x29')][_0xc54a('0x2a')];delete _0x4e787c[_0xc54a('0x29')][_0xc54a('0x2a')];}_0x2d48f2[_0xc54a('0x2b')]=_[_0xc54a('0x16')](_0x194eac,_0xc54a('0xf'));_0x2d48f2[_0xc54a('0x29')]=_[_0xc54a('0x4')](_0x4e787c[_0xc54a('0x29')]);_0x2d48f2['filters']=_[_0xc54a('0x2c')](_0x2d48f2[_0xc54a('0x2b')],_0x2d48f2[_0xc54a('0x29')]);_0x54bf09[_0xc54a('0x2d')]=_[_0xc54a('0x2c')](_0x2d48f2['model'],this[_0xc54a('0x6')](_0x4e787c['query'][_0xc54a('0x6')]));_0x54bf09[_0xc54a('0x2d')]=_0x54bf09[_0xc54a('0x2d')][_0xc54a('0x1e')]?_0x54bf09['attributes']:_0x2d48f2[_0xc54a('0x2b')];if(!_0x4e787c['query']['hasOwnProperty'](_0xc54a('0x2e'))){_0x54bf09[_0xc54a('0x13')]=this[_0xc54a('0x13')](_0x4e787c[_0xc54a('0x29')][_0xc54a('0x13')]);_0x54bf09['offset']=this[_0xc54a('0x14')](_0x4e787c['query'][_0xc54a('0x14')]);}_0x54bf09['order']=this['sort'](_0x4e787c[_0xc54a('0x29')][_0xc54a('0x15')]);_0x54bf09[_0xc54a('0x2f')]=this[_0xc54a('0x30')](_['pick'](_0x4e787c[_0xc54a('0x29')],_0x2d48f2[_0xc54a('0x30')]),_0x194eac);if(_0x4e787c[_0xc54a('0x29')][_0xc54a('0x31')]){var _0x51a685=_0x194eac;var _0x1562cb=_0x4e787c['query']['filter'];if(typeof _0x1562cb==='object'){_0x51a685=_[_0xc54a('0x31')](_0x194eac,function(_0x110515){return _[_0xc54a('0x5')](_0x1562cb[_0xc54a('0x32')],_0x110515['name']);});_0x1562cb=_0x1562cb[_0xc54a('0x33')];}_0x54bf09[_0xc54a('0x2f')]=_[_0xc54a('0x34')](_0x54bf09[_0xc54a('0x2f')],{'$or':_[_0xc54a('0x16')](_0x51a685,function(_0x47e415){if(_0x47e415[_0xc54a('0x35')]!==_0xc54a('0x36')){if(_0x4a8ed9){return sequelize['where'](sequelize['fn'](_0xc54a('0x37'),sequelize[_0xc54a('0x19')](_0x47e415[_0xc54a('0xf')])),{'$like':sequelize['fn']('lower','%'+_0x4e787c['query'][_0xc54a('0x31')]+'%')});}else{var _0x3bffb6={};_0x3bffb6[_0x47e415[_0xc54a('0xf')]]={'$like':'%'+_0x4e787c['query'][_0xc54a('0x31')]+'%'};return _0x3bffb6;}}})});}_0x54bf09=_[_0xc54a('0x34')]({},_0x54bf09,_0x4e787c[_0xc54a('0x38')]);return _0x54bf09;};
\ No newline at end of file
+var _0x39c7=['map','name','intersection','attributes','offset','pick','filter','object','columns','value','where','merge','lower','sequelize','moment','parse','keys','includes','fields','split','filters','isEmpty','forOwn','find','type','DATE','isPlainObject','$gte','format','YYYY-MM-DD','utc','$lte','subtract','uniqueid','isArray','limit','sort','priority','cast','substr','col','unsigned','ASC','omit','length','isString','unset','hasOwnProperty','isNumeric','match','^[+]?[0-9]*$','isEmail','forEach','replace','push','join','getOptions','query','$id','model'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x39c7,0x85));var _0x739c=function(_0x5bd4fc,_0x2f9cdf){_0x5bd4fc=_0x5bd4fc-0x0;var _0x4aa866=_0x39c7[_0x5bd4fc];return _0x4aa866;};'use strict';var _=require('lodash');var sequelize=require(_0x739c('0x0'));var moment=require(_0x739c('0x1'));var LIMIT_VALUE=0xfa;function hasSequelizeOperator(_0x11237b){var _0x25fdf5=['ne'];try{var _0xfadce8=JSON[_0x739c('0x2')](_0x11237b);var _0x48c547=Object[_0x739c('0x3')](_0xfadce8)[0x0];return _0x25fdf5[_0x739c('0x4')](_0x48c547);}catch(_0x43dd74){return![];}}function getOperatorValue(_0x5d4525){var _0x4c5030=JSON[_0x739c('0x2')](_0x5d4525);var _0x3c0af1=Object['keys'](_0x4c5030)[0x0];var _0x480159=_0x4c5030[_0x3c0af1];return{['$'+_0x3c0af1]:_0x480159};}exports[_0x739c('0x5')]=function(_0x3475f2){var _0x5e8ed6=null;if(_0x3475f2){_0x5e8ed6=_0x3475f2[_0x739c('0x6')](',');}return _0x5e8ed6;};exports[_0x739c('0x7')]=function(_0x5a2a66,_0x530e42){var _0xd334={};if(!_[_0x739c('0x8')](_0x5a2a66)){_[_0x739c('0x9')](_0x5a2a66,function(_0x27b317,_0x2ef40e){try{if(_0x530e42){var _0x17ceae=_[_0x739c('0xa')](_0x530e42,{'name':_0x2ef40e})||{};if(hasSequelizeOperator(_0x27b317)){_0xd334[_0x2ef40e]=getOperatorValue(_0x27b317);}else if(_0x17ceae[_0x739c('0xb')]===_0x739c('0xc')&&_[_0x739c('0xd')](_0x27b317)){var _0x1a831f=JSON[_0x739c('0x2')](_0x27b317);var _0x5b8dab={'$gte':moment(moment(_0x1a831f[_0x739c('0xe')])[_0x739c('0xf')](_0x739c('0x10')))[_0x739c('0x11')]()[_0x739c('0xf')](),'$lte':moment(moment(_0x1a831f[_0x739c('0x12')])[_0x739c('0xf')](_0x739c('0x10')))[_0x739c('0x11')]()[_0x739c('0x13')](0x1,'s')['format']()};_0xd334[_0x2ef40e]=_0x5b8dab;}else if(_0x17ceae['name']===_0x739c('0x14')){_0xd334[_0x2ef40e]=_0x27b317;}else{_0xd334[_0x2ef40e]=_[_0x739c('0x15')](_0x27b317)?_0x27b317:JSON[_0x739c('0x2')](_0x27b317);}}else{_0xd334[_0x2ef40e]=_['isArray'](_0x27b317)?_0x27b317:JSON[_0x739c('0x2')](_0x27b317);}}catch(_0x2dc479){_0xd334[_0x2ef40e]=_0x27b317[_0x739c('0x6')](',');}});}return _0xd334;};exports[_0x739c('0x16')]=function(_0x25688d){_0x25688d=parseInt(_0x25688d,0xa);if(!_0x25688d||_0x25688d<0x0){_0x25688d=LIMIT_VALUE;}return _0x25688d;};exports['offset']=function(_0x42c706){_0x42c706=parseInt(_0x42c706,0xa);if(!_0x42c706||_0x42c706<0x0){_0x42c706=0x0;}return _0x42c706;};exports[_0x739c('0x17')]=function(_0x464b2f){var _0x4fc201,_0x6554ff=null;if(_0x464b2f){_0x4fc201=_0x464b2f['split'](',');_0x6554ff=_['map'](_0x4fc201,function(_0xd5592a){if(_0xd5592a['indexOf']('-')===0x0){return[_0xd5592a===_0x739c('0x18')?sequelize[_0x739c('0x19')](sequelize['col'](_0x739c('0x18')),'unsigned'):_0xd5592a[_0x739c('0x1a')](0x1),'DESC'];}else{return[_0xd5592a===_0x739c('0x18')?sequelize[_0x739c('0x19')](sequelize[_0x739c('0x1b')](_0x739c('0x18')),_0x739c('0x1c')):_0xd5592a,_0x739c('0x1d')];}});}return _0x6554ff;};exports[_0x739c('0x1e')]=function(_0xd4fcb0,_0x5d404c){if(_[_0x739c('0x8')](_0xd4fcb0)){return _0xd4fcb0;}if(_[_0x739c('0x15')](_0xd4fcb0)){for(var _0x5c963f=0x0;_0x5c963f<_0xd4fcb0[_0x739c('0x1f')];_0x5c963f+=0x1){_0xd4fcb0[_0x5c963f]=this['omit'](_0xd4fcb0[_0x5c963f],_0x5d404c);}return _0xd4fcb0;}if(!_['isObject'](_0xd4fcb0)){return _0xd4fcb0;}if(_[_0x739c('0x20')](_0x5d404c)){_0x5d404c=[_0x5d404c];}if(!_[_0x739c('0x15')](_0x5d404c)){return _0xd4fcb0;}for(var _0x322139=0x0;_0x322139<_0x5d404c[_0x739c('0x1f')];_0x322139+=0x1){_[_0x739c('0x21')](_0xd4fcb0,_0x5d404c[_0x322139]);}for(var _0x4b81ce in _0xd4fcb0){if(_0xd4fcb0[_0x739c('0x22')](_0x4b81ce)){_0xd4fcb0[_0x4b81ce]=this['omit'](_0xd4fcb0[_0x4b81ce],_0x5d404c);}}return _0xd4fcb0;};exports[_0x739c('0x23')]=function(_0x3464d8){return _0x3464d8[_0x739c('0x24')](RegExp(_0x739c('0x25')))?!![]:![];};exports[_0x739c('0x26')]=function(_0x13c5d8){return _0x13c5d8[_0x739c('0x24')](/^\S+@\S+$/)?!![]:![];};exports['getFullTextValue']=function(_0x53789c){var _0x54b23d=[];_0x53789c['split'](/[ ,]+/)[_0x739c('0x27')](function(_0x132256){_0x132256=_0x132256[_0x739c('0x28')](/([^:]")"+/g,'$1');_0x132256='+'+_0x132256+'*';if(_0x132256[_0x739c('0x4')]('@'))_0x132256='\x22'+_0x132256+'\x22';_0x54b23d[_0x739c('0x29')](_0x132256);});return _0x54b23d[_0x739c('0x2a')]('\x20');};exports[_0x739c('0x2b')]=function(_0x161aa5,_0x2471ad,_0x107396){var _0x198b52={},_0xac8767={};if(_0x2471ad[_0x739c('0x2c')][_0x739c('0x2d')]){_0x2471ad[_0x739c('0x2c')]['id']=_0x2471ad[_0x739c('0x2c')][_0x739c('0x2d')];delete _0x2471ad[_0x739c('0x2c')][_0x739c('0x2d')];}_0x198b52[_0x739c('0x2e')]=_[_0x739c('0x2f')](_0x161aa5,_0x739c('0x30'));_0x198b52[_0x739c('0x2c')]=_[_0x739c('0x3')](_0x2471ad[_0x739c('0x2c')]);_0x198b52[_0x739c('0x7')]=_[_0x739c('0x31')](_0x198b52[_0x739c('0x2e')],_0x198b52[_0x739c('0x2c')]);_0xac8767[_0x739c('0x32')]=_[_0x739c('0x31')](_0x198b52[_0x739c('0x2e')],this[_0x739c('0x5')](_0x2471ad[_0x739c('0x2c')][_0x739c('0x5')]));_0xac8767['attributes']=_0xac8767[_0x739c('0x32')][_0x739c('0x1f')]?_0xac8767['attributes']:_0x198b52[_0x739c('0x2e')];if(!_0x2471ad[_0x739c('0x2c')]['hasOwnProperty']('nolimit')){_0xac8767[_0x739c('0x16')]=this[_0x739c('0x16')](_0x2471ad['query'][_0x739c('0x16')]);_0xac8767[_0x739c('0x33')]=this[_0x739c('0x33')](_0x2471ad[_0x739c('0x2c')][_0x739c('0x33')]);}_0xac8767['order']=this[_0x739c('0x17')](_0x2471ad[_0x739c('0x2c')]['sort']);_0xac8767['where']=this['filters'](_[_0x739c('0x34')](_0x2471ad[_0x739c('0x2c')],_0x198b52['filters']),_0x161aa5);if(_0x2471ad[_0x739c('0x2c')]['filter']){var _0x576c53=_0x161aa5;var _0x3cf538=_0x2471ad[_0x739c('0x2c')][_0x739c('0x35')];if(typeof _0x3cf538===_0x739c('0x36')){_0x576c53=_[_0x739c('0x35')](_0x161aa5,function(_0xa2851d){return _[_0x739c('0x4')](_0x3cf538[_0x739c('0x37')],_0xa2851d['name']);});_0x3cf538=_0x3cf538[_0x739c('0x38')];}_0xac8767[_0x739c('0x39')]=_[_0x739c('0x3a')](_0xac8767[_0x739c('0x39')],{'$or':_['map'](_0x576c53,function(_0x967a2){if(_0x967a2[_0x739c('0xb')]!=='VIRTUAL'){if(_0x107396){return sequelize[_0x739c('0x39')](sequelize['fn'](_0x739c('0x3b'),sequelize[_0x739c('0x1b')](_0x967a2[_0x739c('0x30')])),{'$like':sequelize['fn']('lower','%'+_0x2471ad[_0x739c('0x2c')][_0x739c('0x35')]+'%')});}else{var _0x3b6584={};_0x3b6584[_0x967a2[_0x739c('0x30')]]={'$like':'%'+_0x2471ad['query'][_0x739c('0x35')]+'%'};return _0x3b6584;}}})});}_0xac8767=_['merge']({},_0xac8767,_0x2471ad['options']);return _0xac8767;};
\ No newline at end of file
},
encrypt: {
algorithm: 'aes192'
- },
- licenseToken: '83e3f333-7545-74ae-1b81-c5a2efd07a12'
+ }
};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe9ea=['use','json\x20replacer','toISOString','split','static','views','/server/views','ejs','renderFile','view\x20engine','urlencoded','50mb','json','initialize','express','body-parser','cookie-parser','passport','cors','../mysqldb','default','get','env','set','appPath','join','public','development','test','root','client'];(function(_0x2135fa,_0x37239e){var _0x9db511=function(_0x4291ef){while(--_0x4291ef){_0x2135fa['push'](_0x2135fa['shift']());}};_0x9db511(++_0x37239e);}(_0xe9ea,0x8a));var _0xae9e=function(_0x338fbc,_0x24b83c){_0x338fbc=_0x338fbc-0x0;var _0x341b65=_0xe9ea[_0x338fbc];return _0x341b65;};'use strict';var express=require(_0xae9e('0x0'));var favicon=require('serve-favicon');var bodyParser=require(_0xae9e('0x1'));var methodOverride=require('method-override');var cookieParser=require(_0xae9e('0x2'));var errorHandler=require('errorhandler');var path=require('path');var passport=require(_0xae9e('0x3'));var cors=require(_0xae9e('0x4'));var moment=require('moment');var config=require('./environment');var db=require(_0xae9e('0x5'))['db'];exports[_0xae9e('0x6')]=function(_0x4af043){var _0x32b4a7=_0x4af043[_0xae9e('0x7')](_0xae9e('0x8'));if(_0x32b4a7==='production'){_0x4af043[_0xae9e('0x9')](_0xae9e('0xa'),path[_0xae9e('0xb')](config['root'],_0xae9e('0xc')));}if(_0x32b4a7===_0xae9e('0xd')||_0x32b4a7===_0xae9e('0xe')){_0x4af043[_0xae9e('0x9')]('appPath',path['join'](config[_0xae9e('0xf')],_0xae9e('0x10')));_0x4af043[_0xae9e('0x11')](errorHandler());}_0x4af043['set'](_0xae9e('0x12'),function(_0x1bc00a,_0x46f178){if(this[_0x1bc00a]instanceof Date){_0x46f178=this[_0x1bc00a][_0xae9e('0x13')]()[_0xae9e('0x14')]('.')[0x0]+'Z';}return _0x46f178;});_0x4af043[_0xae9e('0x11')](express[_0xae9e('0x15')](_0x4af043[_0xae9e('0x7')](_0xae9e('0xa'))));_0x4af043[_0xae9e('0x9')](_0xae9e('0x16'),config['root']+_0xae9e('0x17'));_0x4af043['engine']('html',require(_0xae9e('0x18'))[_0xae9e('0x19')]);_0x4af043[_0xae9e('0x9')](_0xae9e('0x1a'),'html');_0x4af043[_0xae9e('0x11')](bodyParser[_0xae9e('0x1b')]({'limit':_0xae9e('0x1c'),'extended':!![]}));_0x4af043['use'](bodyParser[_0xae9e('0x1d')]({'limit':_0xae9e('0x1c')}));_0x4af043[_0xae9e('0x11')](cors());_0x4af043[_0xae9e('0x11')](methodOverride());_0x4af043[_0xae9e('0x11')](cookieParser());_0x4af043['use'](passport[_0xae9e('0x1e')]());};
\ No newline at end of file
+var _0x749a=['get','env','production','appPath','join','root','public','development','test','set','use','json\x20replacer','toISOString','split','static','view\x20engine','html','urlencoded','50mb','initialize','express','serve-favicon','body-parser','cookie-parser','path','passport','cors','moment','./environment','../mysqldb','default'];(function(_0x1cc8fe,_0x105328){var _0x230054=function(_0x1a1b56){while(--_0x1a1b56){_0x1cc8fe['push'](_0x1cc8fe['shift']());}};_0x230054(++_0x105328);}(_0x749a,0x1c6));var _0xa749=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0x749a[_0x122ef9];return _0x42fba0;};'use strict';var express=require(_0xa749('0x0'));var favicon=require(_0xa749('0x1'));var bodyParser=require(_0xa749('0x2'));var methodOverride=require('method-override');var cookieParser=require(_0xa749('0x3'));var errorHandler=require('errorhandler');var path=require(_0xa749('0x4'));var passport=require(_0xa749('0x5'));var cors=require(_0xa749('0x6'));var moment=require(_0xa749('0x7'));var config=require(_0xa749('0x8'));var db=require(_0xa749('0x9'))['db'];exports[_0xa749('0xa')]=function(_0x1637cd){var _0x27a6bc=_0x1637cd[_0xa749('0xb')](_0xa749('0xc'));if(_0x27a6bc===_0xa749('0xd')){_0x1637cd['set'](_0xa749('0xe'),path[_0xa749('0xf')](config[_0xa749('0x10')],_0xa749('0x11')));}if(_0x27a6bc===_0xa749('0x12')||_0x27a6bc===_0xa749('0x13')){_0x1637cd[_0xa749('0x14')](_0xa749('0xe'),path[_0xa749('0xf')](config[_0xa749('0x10')],'client'));_0x1637cd[_0xa749('0x15')](errorHandler());}_0x1637cd[_0xa749('0x14')](_0xa749('0x16'),function(_0x2e9599,_0x1a486a){if(this[_0x2e9599]instanceof Date){_0x1a486a=this[_0x2e9599][_0xa749('0x17')]()[_0xa749('0x18')]('.')[0x0]+'Z';}return _0x1a486a;});_0x1637cd[_0xa749('0x15')](express[_0xa749('0x19')](_0x1637cd[_0xa749('0xb')](_0xa749('0xe'))));_0x1637cd[_0xa749('0x14')]('views',config[_0xa749('0x10')]+'/server/views');_0x1637cd['engine']('html',require('ejs')['renderFile']);_0x1637cd['set'](_0xa749('0x1a'),_0xa749('0x1b'));_0x1637cd[_0xa749('0x15')](bodyParser[_0xa749('0x1c')]({'limit':_0xa749('0x1d'),'extended':!![]}));_0x1637cd['use'](bodyParser['json']({'limit':_0xa749('0x1d')}));_0x1637cd['use'](cors());_0x1637cd[_0xa749('0x15')](methodOverride());_0x1637cd[_0xa749('0x15')](cookieParser());_0x1637cd['use'](passport[_0xa749('0x1e')]());};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8b3f=['model','join','update','getUuid','licenseToken','test','win32','replace','hostname','macAddress','md5','digest','hex','substring','lodash','crypto','child_process','execSync','../environment','networkInterfaces','orderBy','keys','length','filter','family','internal','concat','head','mac','00:00:00:00:00:00','address','cpus','map'];(function(_0x10b175,_0x2eb1b4){var _0x169d56=function(_0x31e51f){while(--_0x31e51f){_0x10b175['push'](_0x10b175['shift']());}};_0x169d56(++_0x2eb1b4);}(_0x8b3f,0x137));var _0xf8b3=function(_0x42cae2,_0x284ef8){_0x42cae2=_0x42cae2-0x0;var _0x5f256f=_0x8b3f[_0x42cae2];return _0x5f256f;};'use strict';var _=require(_0xf8b3('0x0'));var os=require('os');var crypto=require(_0xf8b3('0x1'));var machine=require('bimedia-machine-uuid');var exec=require(_0xf8b3('0x2'))[_0xf8b3('0x3')];var config=require(_0xf8b3('0x4'));function getInterfaces(){var _0x5ff5c8=[];var _0x2279b3=os[_0xf8b3('0x5')]();var _0x348ec1=_[_0xf8b3('0x6')](_[_0xf8b3('0x7')](_0x2279b3));for(var _0x1cf614=0x0;_0x1cf614<_0x348ec1[_0xf8b3('0x8')];_0x1cf614++){var _0x3b1c04=_0x2279b3[_0x348ec1[_0x1cf614]][_0xf8b3('0x9')](function(_0x1b44f7){return _0x1b44f7[_0xf8b3('0xa')]==='IPv4'&&_0x1b44f7[_0xf8b3('0xb')]===![];});_0x5ff5c8=_0x5ff5c8[_0xf8b3('0xc')](_0x3b1c04);}return _0x5ff5c8;}function getFirstInterface(){var _0x275b38=_[_0xf8b3('0xd')](getInterfaces());return{'macAddress':_0x275b38&&_0x275b38[_0xf8b3('0xe')]?_0x275b38['mac']:_0xf8b3('0xf'),'ipAddress':_0x275b38&&_0x275b38[_0xf8b3('0x10')]?_0x275b38['address']:'127.0.0.1'};}exports['getFirstInterface']=getFirstInterface;function getCPUhash(){var _0x224d74=_[_0xf8b3('0x6')](os[_0xf8b3('0x11')]()[_0xf8b3('0x12')](function(_0x4fcac1){return _0x4fcac1[_0xf8b3('0x13')];}))[_0xf8b3('0x14')](':');return crypto['createHash']('md5')[_0xf8b3('0x15')](_0x224d74)['digest']('hex');}exports[_0xf8b3('0x16')]=function(){var _0x19e5c2=os['platform']();var _0x15e0c3=/[0-9a-f-]{36}/;if(config[_0xf8b3('0x17')]&&_0x15e0c3[_0xf8b3('0x18')](config['licenseToken'])){return config[_0xf8b3('0x17')];}else if(_0x19e5c2===_0xf8b3('0x19')){return exec('dmidecode\x20--string\x20system-uuid',{'encoding':'utf8'})[_0xf8b3('0x1a')]('\x0d\x0a','');}else{var _0x2305da=getFirstInterface();var _0xcfcb00=getCPUhash();var _0x18b7f4=_0xcfcb00+'|'+os[_0xf8b3('0x1b')]()+'|'+_0x2305da[_0xf8b3('0x1c')]+'|'+_0x2305da['ipAddress'];var _0x4e8153=crypto['createHash'](_0xf8b3('0x1d'))['update'](_0x18b7f4)[_0xf8b3('0x1e')](_0xf8b3('0x1f'));return _0x4e8153[_0xf8b3('0x20')](0x0,0x8)+'-'+_0x4e8153[_0xf8b3('0x20')](0x8,0xc)+'-'+_0x4e8153[_0xf8b3('0x20')](0xc,0x10)+'-'+_0x4e8153[_0xf8b3('0x20')](0x10,0x14)+'-'+_0x4e8153[_0xf8b3('0x20')](0x14);}};
\ No newline at end of file
+var _0x1709=['orderBy','keys','length','filter','concat','mac','00:00:00:00:00:00','address','127.0.0.1','getFirstInterface','cpus','map','model','join','createHash','md5','update','digest','hex','getUuid','platform','test','licenseToken','win32','dmidecode\x20--string\x20system-uuid','utf8','hostname','macAddress','ipAddress','substring','crypto','bimedia-machine-uuid','child_process','../environment'];(function(_0x5ca464,_0x1ed391){var _0x2654b5=function(_0x5245b3){while(--_0x5245b3){_0x5ca464['push'](_0x5ca464['shift']());}};_0x2654b5(++_0x1ed391);}(_0x1709,0xc8));var _0x9170=function(_0x38d3bd,_0x49f837){_0x38d3bd=_0x38d3bd-0x0;var _0x19022c=_0x1709[_0x38d3bd];return _0x19022c;};'use strict';var _=require('lodash');var os=require('os');var crypto=require(_0x9170('0x0'));var machine=require(_0x9170('0x1'));var exec=require(_0x9170('0x2'))['execSync'];var config=require(_0x9170('0x3'));function getInterfaces(){var _0x2e1dab=[];var _0x1560b5=os['networkInterfaces']();var _0x178b61=_[_0x9170('0x4')](_[_0x9170('0x5')](_0x1560b5));for(var _0x346e4f=0x0;_0x346e4f<_0x178b61[_0x9170('0x6')];_0x346e4f++){var _0x378608=_0x1560b5[_0x178b61[_0x346e4f]][_0x9170('0x7')](function(_0xcb71fa){return _0xcb71fa['family']==='IPv4'&&_0xcb71fa['internal']===![];});_0x2e1dab=_0x2e1dab[_0x9170('0x8')](_0x378608);}return _0x2e1dab;}function getFirstInterface(){var _0x4e9f1e=_['head'](getInterfaces());return{'macAddress':_0x4e9f1e&&_0x4e9f1e[_0x9170('0x9')]?_0x4e9f1e[_0x9170('0x9')]:_0x9170('0xa'),'ipAddress':_0x4e9f1e&&_0x4e9f1e[_0x9170('0xb')]?_0x4e9f1e['address']:_0x9170('0xc')};}exports[_0x9170('0xd')]=getFirstInterface;function getCPUhash(){var _0x132475=_[_0x9170('0x4')](os[_0x9170('0xe')]()[_0x9170('0xf')](function(_0xd2a3b2){return _0xd2a3b2[_0x9170('0x10')];}))[_0x9170('0x11')](':');return crypto[_0x9170('0x12')](_0x9170('0x13'))[_0x9170('0x14')](_0x132475)[_0x9170('0x15')](_0x9170('0x16'));}exports[_0x9170('0x17')]=function(){var _0xe30b44=os[_0x9170('0x18')]();var _0x3dbbe0=/[0-9a-f-]{36}/;if(config['licenseToken']&&_0x3dbbe0[_0x9170('0x19')](config[_0x9170('0x1a')])){return config['licenseToken'];}else if(_0xe30b44===_0x9170('0x1b')){return exec(_0x9170('0x1c'),{'encoding':_0x9170('0x1d')})['replace']('\x0d\x0a','');}else{var _0x500ed5=getFirstInterface();var _0x2cdb30=getCPUhash();var _0x41d4b2=_0x2cdb30+'|'+os[_0x9170('0x1e')]()+'|'+_0x500ed5[_0x9170('0x1f')]+'|'+_0x500ed5[_0x9170('0x20')];var _0x2265a4=crypto[_0x9170('0x12')](_0x9170('0x13'))[_0x9170('0x14')](_0x41d4b2)['digest'](_0x9170('0x16'));return _0x2265a4['substring'](0x0,0x8)+'-'+_0x2265a4[_0x9170('0x21')](0x8,0xc)+'-'+_0x2265a4[_0x9170('0x21')](0xc,0x10)+'-'+_0x2265a4[_0x9170('0x21')](0x10,0x14)+'-'+_0x2265a4['substring'](0x14);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcca2=['SERVICE\x20LICENSE\x20STARTED\x20%s','default','util','moment','request-promise','bluebird','pkginfo','version','../../components/encryptor','../logger','license','https://www.xcallymotion.com','format','%s/api/servers/%s/check?version=%s','exports','%s/api/servers/%s/check?version=%s&oldtoken=%s','GET','catch','get','data2','data1','then','THE\x20LICENSE\x20HAS\x20BEEN\x20ENABLED','THE\x20LICENSE\x20HAS\x20BEEN\x20UPDATED','update','Disabled','info','Changed','toUpperCase','YYYY-MM-DD\x20HH:mm','decryptString','days','DEMO\x20START\x20AT\x20%s','error','message','finally','getUuid','findOrCreate'];(function(_0x189b1d,_0x1df005){var _0x3d8ab0=function(_0x59a27f){while(--_0x59a27f){_0x189b1d['push'](_0x189b1d['shift']());}};_0x3d8ab0(++_0x1df005);}(_0xcca2,0x132));var _0x2cca=function(_0x8fdd53,_0x5e59f1){_0x8fdd53=_0x8fdd53-0x0;var _0x4299af=_0xcca2[_0x8fdd53];return _0x4299af;};'use strict';var util=require(_0x2cca('0x0'));var moment=require(_0x2cca('0x1'));var rp=require(_0x2cca('0x2'));var BPromise=require(_0x2cca('0x3'));var pkginfo=require(_0x2cca('0x4'))(module,_0x2cca('0x5'));var db=require('../../mysqldb')['db'];var encryptor=require(_0x2cca('0x6'));var hardware=require('./hardware');var logger=require(_0x2cca('0x7'))(_0x2cca('0x8'));var HOST=_0x2cca('0x9');var TIME=0x3c*0x1388;var DAYS=0x7;var GRAY_PERIOD_REASON;var oldToken;var isOldTokenSent=![];function httpRequest(_0x44189f){return new BPromise(function(_0x440e44,_0x2b32d4){var _0x18f30b=util[_0x2cca('0xa')](_0x2cca('0xb'),HOST,_0x44189f,module[_0x2cca('0xc')][_0x2cca('0x5')]);if(oldToken){_0x18f30b=util[_0x2cca('0xa')](_0x2cca('0xd'),HOST,_0x44189f,module[_0x2cca('0xc')]['version'],oldToken);}var _0x33d3d4={'uri':_0x18f30b,'method':_0x2cca('0xe'),'timeout':0xea60,'json':!![]};return rp(_0x33d3d4)['then'](function(_0x34f912){_0x440e44(_0x34f912);})[_0x2cca('0xf')](function(_0x31d095){_0x2b32d4(_0x31d095);});});}function manageLicense(_0x1d99bb,_0x5a7b50){var _0x222b14=_0x5a7b50[_0x2cca('0x10')]({'plain':!![]});if(!isOldTokenSent&&_0x222b14['data1']!==_0x1d99bb&&!_0x222b14[_0x2cca('0x11')]){oldToken=_0x222b14[_0x2cca('0x12')];}httpRequest(_0x1d99bb)[_0x2cca('0x13')](function(_0xc08477){if(oldToken){oldToken=undefined;isOldTokenSent=!![];}if(_0xc08477['active']){isOldTokenSent=![];if(!_0x222b14[_0x2cca('0x8')]&&_0x222b14['license']!=_0xc08477['license']||_0x222b14[_0x2cca('0x8')]&&_0x222b14[_0x2cca('0x11')]){logger['info'](_0x2cca('0x14'));}if(_0x222b14[_0x2cca('0x8')]&&!_0x222b14[_0x2cca('0x11')]&&_0x222b14['license']!=_0xc08477[_0x2cca('0x8')]){logger['info'](_0x2cca('0x15'));}if(_0x222b14[_0x2cca('0x8')]&&!_0x222b14['data2']&&_0x222b14[_0x2cca('0x8')]==_0xc08477[_0x2cca('0x8')]){return _0x5a7b50;}return _0x5a7b50[_0x2cca('0x16')]({'data1':_0x1d99bb,'data2':null,'license':_0xc08477[_0x2cca('0x8')]});}else{if(_0xc08477[_0x2cca('0x8')]||_0x222b14[_0x2cca('0x8')]){if(!_0x222b14['data2']){if(_0x222b14[_0x2cca('0x12')]==_0x1d99bb){GRAY_PERIOD_REASON=_0x2cca('0x17');logger[_0x2cca('0x18')]('THE\x20LICENSE\x20HAS\x20BEEN\x20DISABLED');}else{GRAY_PERIOD_REASON=_0x2cca('0x19');logger[_0x2cca('0x18')]('NEW\x20UUID\x20DETECTED:\x20FROM\x20%s\x20TO\x20%s',_0x222b14[_0x2cca('0x12')],_0x1d99bb);}logger[_0x2cca('0x18')]('%s\x20-\x20GRAY\x20PERIOD\x20STARTED\x20AT\x20%s',GRAY_PERIOD_REASON[_0x2cca('0x1a')](),moment()['format'](_0x2cca('0x1b')));return _0x5a7b50[_0x2cca('0x16')]({'data2':encryptor['encryptString'](moment()[_0x2cca('0xa')](_0x2cca('0x1b')))});}else{if(moment()['diff'](encryptor[_0x2cca('0x1c')](_0x222b14[_0x2cca('0x11')]),_0x2cca('0x1d'))>DAYS){logger[_0x2cca('0x18')](_0x2cca('0x1e'),moment()[_0x2cca('0xa')](_0x2cca('0x1b')));isOldTokenSent=![];return _0x5a7b50['update']({'data1':_0x1d99bb,'data2':null,'license':null});}}}else{if(_0x222b14[_0x2cca('0x12')]!=_0x1d99bb){logger[_0x2cca('0x18')]('NEW\x20UUID\x20DETECTED:\x20FROM\x20%s\x20TO\x20%s',_0x222b14[_0x2cca('0x12')],_0x1d99bb);return _0x5a7b50[_0x2cca('0x16')]({'data1':_0x1d99bb,'data2':null,'license':null});}}}return _0x5a7b50;})[_0x2cca('0x13')](function(_0x48e23e){_0x5a7b50=_0x48e23e;})[_0x2cca('0xf')](function(_0x350eed){logger[_0x2cca('0x1f')](_0x350eed[_0x2cca('0x20')]);})[_0x2cca('0x21')](function(){setTimeout(function(){manageLicense(hardware[_0x2cca('0x22')](),_0x5a7b50);},TIME);});}function defaultLicense(){var _0xf5cbfc=hardware['getUuid']();if(_0xf5cbfc){return db['License'][_0x2cca('0x23')]({'where':{'id':0x1},'defaults':{'data1':_0xf5cbfc}})['spread'](function(_0x1f131e,_0x31fa94){logger['info'](_0x2cca('0x24'),_0xf5cbfc);manageLicense(_0xf5cbfc,_0x1f131e);})['catch'](function(_0x50fbf5){logger['error'](_0x50fbf5[_0x2cca('0x20')]);});}}exports[_0x2cca('0x25')]=defaultLicense;
\ No newline at end of file
+var _0x43ae=['moment','request-promise','pkginfo','version','../../mysqldb','../../components/encryptor','./hardware','../logger','license','https://www.xcallymotion.com','format','%s/api/servers/%s/check?version=%s','exports','%s/api/servers/%s/check?version=%s&oldtoken=%s','GET','then','catch','data1','data2','info','Disabled','Changed','NEW\x20UUID\x20DETECTED:\x20FROM\x20%s\x20TO\x20%s','%s\x20-\x20GRAY\x20PERIOD\x20STARTED\x20AT\x20%s','encryptString','YYYY-MM-DD\x20HH:mm','diff','decryptString','days','DEMO\x20START\x20AT\x20%s','update','error','finally','getUuid','License','SERVICE\x20LICENSE\x20STARTED\x20%s','message','util'];(function(_0x4081a5,_0x27e9e2){var _0x59f5d9=function(_0x5b7420){while(--_0x5b7420){_0x4081a5['push'](_0x4081a5['shift']());}};_0x59f5d9(++_0x27e9e2);}(_0x43ae,0x155));var _0xe43a=function(_0x56a43c,_0x40f904){_0x56a43c=_0x56a43c-0x0;var _0x18d991=_0x43ae[_0x56a43c];return _0x18d991;};'use strict';var util=require(_0xe43a('0x0'));var moment=require(_0xe43a('0x1'));var rp=require(_0xe43a('0x2'));var BPromise=require('bluebird');var pkginfo=require(_0xe43a('0x3'))(module,_0xe43a('0x4'));var db=require(_0xe43a('0x5'))['db'];var encryptor=require(_0xe43a('0x6'));var hardware=require(_0xe43a('0x7'));var logger=require(_0xe43a('0x8'))(_0xe43a('0x9'));var HOST=_0xe43a('0xa');var TIME=0x3c*0x1388;var DAYS=0x7;var GRAY_PERIOD_REASON;var oldToken;var isOldTokenSent=![];function httpRequest(_0x2c2358){return new BPromise(function(_0x586c27,_0x1c24af){var _0x18dd8a=util[_0xe43a('0xb')](_0xe43a('0xc'),HOST,_0x2c2358,module[_0xe43a('0xd')]['version']);if(oldToken){_0x18dd8a=util[_0xe43a('0xb')](_0xe43a('0xe'),HOST,_0x2c2358,module[_0xe43a('0xd')][_0xe43a('0x4')],oldToken);}var _0x4b0846={'uri':_0x18dd8a,'method':_0xe43a('0xf'),'timeout':0xea60,'json':!![]};return rp(_0x4b0846)[_0xe43a('0x10')](function(_0xf64337){_0x586c27(_0xf64337);})[_0xe43a('0x11')](function(_0x117023){_0x1c24af(_0x117023);});});}function manageLicense(_0x1cf7ff,_0x1af9a3){var _0x4b7cd6=_0x1af9a3['get']({'plain':!![]});if(!isOldTokenSent&&_0x4b7cd6[_0xe43a('0x12')]!==_0x1cf7ff&&!_0x4b7cd6[_0xe43a('0x13')]){oldToken=_0x4b7cd6[_0xe43a('0x12')];}httpRequest(_0x1cf7ff)[_0xe43a('0x10')](function(_0x508454){if(oldToken){oldToken=undefined;isOldTokenSent=!![];}if(_0x508454['active']){isOldTokenSent=![];if(!_0x4b7cd6[_0xe43a('0x9')]&&_0x4b7cd6[_0xe43a('0x9')]!=_0x508454[_0xe43a('0x9')]||_0x4b7cd6[_0xe43a('0x9')]&&_0x4b7cd6['data2']){logger[_0xe43a('0x14')]('THE\x20LICENSE\x20HAS\x20BEEN\x20ENABLED');}if(_0x4b7cd6[_0xe43a('0x9')]&&!_0x4b7cd6[_0xe43a('0x13')]&&_0x4b7cd6[_0xe43a('0x9')]!=_0x508454[_0xe43a('0x9')]){logger[_0xe43a('0x14')]('THE\x20LICENSE\x20HAS\x20BEEN\x20UPDATED');}if(_0x4b7cd6[_0xe43a('0x9')]&&!_0x4b7cd6['data2']&&_0x4b7cd6['license']==_0x508454[_0xe43a('0x9')]){return _0x1af9a3;}return _0x1af9a3['update']({'data1':_0x1cf7ff,'data2':null,'license':_0x508454[_0xe43a('0x9')]});}else{if(_0x508454[_0xe43a('0x9')]||_0x4b7cd6['license']){if(!_0x4b7cd6['data2']){if(_0x4b7cd6[_0xe43a('0x12')]==_0x1cf7ff){GRAY_PERIOD_REASON=_0xe43a('0x15');logger[_0xe43a('0x14')]('THE\x20LICENSE\x20HAS\x20BEEN\x20DISABLED');}else{GRAY_PERIOD_REASON=_0xe43a('0x16');logger[_0xe43a('0x14')](_0xe43a('0x17'),_0x4b7cd6['data1'],_0x1cf7ff);}logger['info'](_0xe43a('0x18'),GRAY_PERIOD_REASON['toUpperCase'](),moment()[_0xe43a('0xb')]('YYYY-MM-DD\x20HH:mm'));return _0x1af9a3['update']({'data2':encryptor[_0xe43a('0x19')](moment()[_0xe43a('0xb')](_0xe43a('0x1a')))});}else{if(moment()[_0xe43a('0x1b')](encryptor[_0xe43a('0x1c')](_0x4b7cd6['data2']),_0xe43a('0x1d'))>DAYS){logger['info'](_0xe43a('0x1e'),moment()[_0xe43a('0xb')](_0xe43a('0x1a')));isOldTokenSent=![];return _0x1af9a3[_0xe43a('0x1f')]({'data1':_0x1cf7ff,'data2':null,'license':null});}}}else{if(_0x4b7cd6['data1']!=_0x1cf7ff){logger['info'](_0xe43a('0x17'),_0x4b7cd6['data1'],_0x1cf7ff);return _0x1af9a3[_0xe43a('0x1f')]({'data1':_0x1cf7ff,'data2':null,'license':null});}}}return _0x1af9a3;})['then'](function(_0x612214){_0x1af9a3=_0x612214;})[_0xe43a('0x11')](function(_0x20409d){logger[_0xe43a('0x20')](_0x20409d['message']);})[_0xe43a('0x21')](function(){setTimeout(function(){manageLicense(hardware[_0xe43a('0x22')](),_0x1af9a3);},TIME);});}function defaultLicense(){var _0x5d9861=hardware[_0xe43a('0x22')]();if(_0x5d9861){return db[_0xe43a('0x23')]['findOrCreate']({'where':{'id':0x1},'defaults':{'data1':_0x5d9861}})['spread'](function(_0x27b4f1,_0x17bac4){logger['info'](_0xe43a('0x24'),_0x5d9861);manageLicense(_0x5d9861,_0x27b4f1);})[_0xe43a('0x11')](function(_0x3b0c5b){logger[_0xe43a('0x20')](_0x3b0c5b[_0xe43a('0x25')]);});}}exports['default']=defaultLicense;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x727b=['parse','machineUuid','decryptString','gray','add','days','format','grayReason','changed','disabled','message','findAll','role','sequelize','COUNT','col','count','admin','user','users','telephones','pick','countBy','telephone','License\x20limit\x20reached\x20for\x20users','License\x20limit\x20reached\x20for\x20telephones','exports','util','lodash','moment','./hardware','../../components/encryptor','../../mysqldb','2027-01-01T00:00:00.000Z','getUuid','Breaking\x20license','find','then','catch','uuid','split','%s:%s:%s'];(function(_0x132b29,_0x5d6a72){var _0x2ad4f3=function(_0x376e01){while(--_0x376e01){_0x132b29['push'](_0x132b29['shift']());}};_0x2ad4f3(++_0x5d6a72);}(_0x727b,0x117));var _0xb727=function(_0x1bf49c,_0x50841d){_0x1bf49c=_0x1bf49c-0x0;var _0x147879=_0x727b[_0x1bf49c];return _0x147879;};'use strict';var util=require(_0xb727('0x0'));var _=require(_0xb727('0x1'));var moment=require(_0xb727('0x2'));var BPromise=require('bluebird');var hardware=require(_0xb727('0x3'));var encryptor=require(_0xb727('0x4'));var db=require(_0xb727('0x5'))['db'];const demoLicense={'demo':!![],'agents':0x2,'telephones':0x0,'users':0x1,'expiration':_0xb727('0x6'),'chat':![],'mail':![],'fax':![],'messaging':![],'whatsapp':![],'cm':![],'dialer':![],'jscripty':![],'openchannel':![],'callysquare':0x2,'webrtc':![],'jaws':![],'custom':![],'description':'Demo\x20license','machineUuid':hardware[_0xb727('0x7')](),'virtual':0x0,'voice':!![],'screenrecording':![],'preferred':![],'ai':![]};const breakingLicense={'breaking':!![],'demo':!![],'agents':0x2,'telephones':0x0,'users':0x1,'expiration':_0xb727('0x6'),'chat':![],'mail':![],'fax':![],'messaging':![],'whatsapp':![],'cm':![],'dialer':![],'jscripty':![],'openchannel':![],'callysquare':0x2,'webrtc':![],'jaws':![],'custom':![],'update':![],'description':_0xb727('0x8'),'machineUuid':hardware['getUuid'](),'virtual':0x0,'voice':!![],'screenrecording':![],'preferred':![],'ai':![]};function getLicense(_0x249f7f){return new BPromise(function(_0x3ff4b2,_0x26e49f){return db['License'][_0xb727('0x9')](_['defaults'](_0x249f7f,{'raw':!![],'where':{'id':0x1}}))[_0xb727('0xa')](function(_0x28a226){return checkLicense(_0x28a226,null);})[_0xb727('0xa')](function(_0x49b859){_0x3ff4b2(_0x49b859);return;})[_0xb727('0xb')](function(_0x378e4a){_0x26e49f(_0x378e4a);});});}function checkLicense(_0x53e44e,_0x2a0337){if(!_0x53e44e){demoLicense[_0xb727('0xc')]=_0x53e44e['data1'];return demoLicense;}try{var _0x4b2814=_0x2a0337||_0x53e44e['license'];if(_['isEmpty'](_0x4b2814)){throw new Error('License\x20key\x20value\x20not\x20found');}var _0x34a477=_0x53e44e['data1'];var _0x523f9a=_0x53e44e['data2'];var _0x4465da=_0x34a477[_0xb727('0xd')]('-')[0x4];var _0x4d9234=_0x34a477[_0xb727('0xd')]('-')[0x0];var _0x2b8b55=encryptor['decryptString'](_0x4b2814,util['format'](_0xb727('0xe'),_0x4465da,_0x34a477,_0x4d9234));var _0x7fd6cf=JSON[_0xb727('0xf')](_0x2b8b55);_0x7fd6cf['demo']=![];_0x7fd6cf['uuid']=_0x34a477;_0x7fd6cf[_0xb727('0x10')]=hardware['getUuid']();if(_0x523f9a){var _0x24fca0=encryptor[_0xb727('0x11')](_0x523f9a);_0x7fd6cf[_0xb727('0x12')]=_0x24fca0;_0x7fd6cf['deadline']=moment(_0x24fca0)[_0xb727('0x13')](0x7,_0xb727('0x14'))[_0xb727('0x15')]();_0x7fd6cf[_0xb727('0x16')]=_0x7fd6cf[_0xb727('0xc')]!=_0x7fd6cf['machineUuid']?_0xb727('0x17'):_0xb727('0x18');}return _0x7fd6cf;}catch(_0x5836f7){breakingLicense['uuid']=_0x53e44e['data1'];breakingLicense[_0xb727('0x19')]=_0x5836f7[_0xb727('0x19')];return breakingLicense;}}function getLimits(){return new BPromise(function(_0x7b615f,_0x4a4020){getLicense()['then'](function(_0xda5d02){return db['User'][_0xb727('0x1a')]({'attributes':[_0xb727('0x1b'),[db[_0xb727('0x1c')]['fn'](_0xb727('0x1d'),db[_0xb727('0x1c')][_0xb727('0x1e')](_0xb727('0x1b'))),_0xb727('0x1f')]],'group':'role','where':{'role':{'$or':[_0xb727('0x20'),_0xb727('0x21'),'telephone']}},'raw':!![]})[_0xb727('0xa')](function(_0x190d1c){var _0x32a138={'user':_0xda5d02[_0xb727('0x22')]||0x0,'telephone':_0xda5d02[_0xb727('0x23')]||0x0};_0x190d1c['forEach'](function(_0xf3383c){var _0x3bd7b7=_0xf3383c[_0xb727('0x1b')]===_0xb727('0x20')?_0xb727('0x21'):_0xf3383c[_0xb727('0x1b')];_0x32a138[_0x3bd7b7]-=_0xf3383c['count'];if(_0x32a138[_0x3bd7b7]<0x0)_0x32a138[_0x3bd7b7]=0x0;});_0x7b615f(_0x32a138);return;});})[_0xb727('0xb')](function(_0x226c06){_0x4a4020(_0x226c06);});});}function checkUserLimits(_0x291302){return new BPromise(function(_0x54d504,_0x34e0fd){getLimits()[_0xb727('0xa')](function(_0x303b2e){var _0x1fd796=_[_0xb727('0x24')](_[_0xb727('0x25')](_0x291302,_0xb727('0x1b')),[_0xb727('0x20'),'user',_0xb727('0x26')]);var _0x3e57cb=(_0x1fd796[_0xb727('0x20')]||0x0)+(_0x1fd796[_0xb727('0x21')]||0x0);var _0x1ce406=_0x1fd796[_0xb727('0x26')]||0x0;if(_0x3e57cb>_0x303b2e[_0xb727('0x21')])return _0x34e0fd(_0xb727('0x27'));if(_0x1ce406>_0x303b2e[_0xb727('0x26')])return _0x34e0fd(_0xb727('0x28'));return _0x54d504();})[_0xb727('0xb')](function(_0x318bf8){_0x34e0fd(_0x318bf8);});});}module[_0xb727('0x29')]={'checkLicense':checkLicense,'checkUserLimits':checkUserLimits,'getLicense':getLicense};
\ No newline at end of file
+var _0x6c8a=['defaults','then','catch','uuid','data1','license','isEmpty','License\x20key\x20value\x20not\x20found','split','format','parse','demo','decryptString','gray','deadline','grayReason','machineUuid','changed','disabled','message','User','findAll','role','sequelize','COUNT','col','user','telephone','users','telephones','forEach','admin','count','countBy','License\x20limit\x20reached\x20for\x20users','License\x20limit\x20reached\x20for\x20telephones','exports','moment','bluebird','./hardware','../../components/encryptor','../../mysqldb','2027-01-01T00:00:00.000Z','Demo\x20license','getUuid','Breaking\x20license','License','find'];(function(_0x4fd204,_0x41ce9c){var _0x57f25a=function(_0x42e349){while(--_0x42e349){_0x4fd204['push'](_0x4fd204['shift']());}};_0x57f25a(++_0x41ce9c);}(_0x6c8a,0x1a5));var _0xa6c8=function(_0x959646,_0x383fed){_0x959646=_0x959646-0x0;var _0x2831dc=_0x6c8a[_0x959646];return _0x2831dc;};'use strict';var util=require('util');var _=require('lodash');var moment=require(_0xa6c8('0x0'));var BPromise=require(_0xa6c8('0x1'));var hardware=require(_0xa6c8('0x2'));var encryptor=require(_0xa6c8('0x3'));var db=require(_0xa6c8('0x4'))['db'];const demoLicense={'demo':!![],'agents':0x2,'telephones':0x0,'users':0x1,'expiration':_0xa6c8('0x5'),'chat':![],'mail':![],'fax':![],'messaging':![],'whatsapp':![],'cm':![],'dialer':![],'jscripty':![],'openchannel':![],'callysquare':0x2,'webrtc':![],'jaws':![],'custom':![],'description':_0xa6c8('0x6'),'machineUuid':hardware[_0xa6c8('0x7')](),'virtual':0x0,'voice':!![],'screenrecording':![],'preferred':![],'ai':![]};const breakingLicense={'breaking':!![],'demo':!![],'agents':0x2,'telephones':0x0,'users':0x1,'expiration':'2027-01-01T00:00:00.000Z','chat':![],'mail':![],'fax':![],'messaging':![],'whatsapp':![],'cm':![],'dialer':![],'jscripty':![],'openchannel':![],'callysquare':0x2,'webrtc':![],'jaws':![],'custom':![],'update':![],'description':_0xa6c8('0x8'),'machineUuid':hardware[_0xa6c8('0x7')](),'virtual':0x0,'voice':!![],'screenrecording':![],'preferred':![],'ai':![]};function getLicense(_0xb9a7e8){return new BPromise(function(_0x30b606,_0x4582d9){return db[_0xa6c8('0x9')][_0xa6c8('0xa')](_[_0xa6c8('0xb')](_0xb9a7e8,{'raw':!![],'where':{'id':0x1}}))['then'](function(_0x20d079){return checkLicense(_0x20d079,null);})[_0xa6c8('0xc')](function(_0x617ef3){_0x30b606(_0x617ef3);return;})[_0xa6c8('0xd')](function(_0x45a494){_0x4582d9(_0x45a494);});});}function checkLicense(_0x10a736,_0x26040f){if(!_0x10a736){demoLicense[_0xa6c8('0xe')]=_0x10a736[_0xa6c8('0xf')];return demoLicense;}try{var _0x404f52=_0x26040f||_0x10a736[_0xa6c8('0x10')];if(_[_0xa6c8('0x11')](_0x404f52)){throw new Error(_0xa6c8('0x12'));}var _0x35a919=_0x10a736[_0xa6c8('0xf')];var _0x4357b0=_0x10a736['data2'];var _0x5f04e0=_0x35a919[_0xa6c8('0x13')]('-')[0x4];var _0x446045=_0x35a919[_0xa6c8('0x13')]('-')[0x0];var _0x49e4e6=encryptor['decryptString'](_0x404f52,util[_0xa6c8('0x14')]('%s:%s:%s',_0x5f04e0,_0x35a919,_0x446045));var _0x89d327=JSON[_0xa6c8('0x15')](_0x49e4e6);_0x89d327[_0xa6c8('0x16')]=![];_0x89d327[_0xa6c8('0xe')]=_0x35a919;_0x89d327['machineUuid']=hardware['getUuid']();if(_0x4357b0){var _0x1caa47=encryptor[_0xa6c8('0x17')](_0x4357b0);_0x89d327[_0xa6c8('0x18')]=_0x1caa47;_0x89d327[_0xa6c8('0x19')]=moment(_0x1caa47)['add'](0x7,'days')['format']();_0x89d327[_0xa6c8('0x1a')]=_0x89d327[_0xa6c8('0xe')]!=_0x89d327[_0xa6c8('0x1b')]?_0xa6c8('0x1c'):_0xa6c8('0x1d');}return _0x89d327;}catch(_0x42d2eb){breakingLicense['uuid']=_0x10a736[_0xa6c8('0xf')];breakingLicense[_0xa6c8('0x1e')]=_0x42d2eb[_0xa6c8('0x1e')];return breakingLicense;}}function getLimits(){return new BPromise(function(_0x45f5df,_0x5e16e9){getLicense()[_0xa6c8('0xc')](function(_0x30df00){return db[_0xa6c8('0x1f')][_0xa6c8('0x20')]({'attributes':[_0xa6c8('0x21'),[db[_0xa6c8('0x22')]['fn'](_0xa6c8('0x23'),db[_0xa6c8('0x22')][_0xa6c8('0x24')](_0xa6c8('0x21'))),'count']],'group':_0xa6c8('0x21'),'where':{'role':{'$or':['admin',_0xa6c8('0x25'),_0xa6c8('0x26')]}},'raw':!![]})[_0xa6c8('0xc')](function(_0x1f65a3){var _0x3ca351={'user':_0x30df00[_0xa6c8('0x27')]||0x0,'telephone':_0x30df00[_0xa6c8('0x28')]||0x0};_0x1f65a3[_0xa6c8('0x29')](function(_0x25a9f9){var _0x45bf52=_0x25a9f9[_0xa6c8('0x21')]===_0xa6c8('0x2a')?_0xa6c8('0x25'):_0x25a9f9['role'];_0x3ca351[_0x45bf52]-=_0x25a9f9[_0xa6c8('0x2b')];if(_0x3ca351[_0x45bf52]<0x0)_0x3ca351[_0x45bf52]=0x0;});_0x45f5df(_0x3ca351);return;});})[_0xa6c8('0xd')](function(_0x260384){_0x5e16e9(_0x260384);});});}function checkUserLimits(_0x289eed){return new BPromise(function(_0x298594,_0x475ecd){getLimits()[_0xa6c8('0xc')](function(_0x4d32b0){var _0x11bb6b=_['pick'](_[_0xa6c8('0x2c')](_0x289eed,_0xa6c8('0x21')),[_0xa6c8('0x2a'),'user',_0xa6c8('0x26')]);var _0x3d7079=(_0x11bb6b[_0xa6c8('0x2a')]||0x0)+(_0x11bb6b['user']||0x0);var _0xfb217b=_0x11bb6b[_0xa6c8('0x26')]||0x0;if(_0x3d7079>_0x4d32b0[_0xa6c8('0x25')])return _0x475ecd(_0xa6c8('0x2d'));if(_0xfb217b>_0x4d32b0[_0xa6c8('0x26')])return _0x475ecd(_0xa6c8('0x2e'));return _0x298594();})[_0xa6c8('0xd')](function(_0x235b38){_0x475ecd(_0x235b38);});});}module[_0xa6c8('0x2f')]={'checkLicense':checkLicense,'checkUserLimits':checkUserLimits,'getLicense':getLicense};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3423=['app-id','secret','myappanuglar-secret'];(function(_0x171b28,_0x378d25){var _0x4c26b0=function(_0x1a453a){while(--_0x1a453a){_0x171b28['push'](_0x171b28['shift']());}};_0x4c26b0(++_0x378d25);}(_0x3423,0x188));var _0x3342=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x3423[_0x3dd15e];return _0x231fd0;};'use strict';module['exports']={'DOMAIN':'http://localhost:9000','SESSION_SECRET':_0x3342('0x0'),'GOOGLE_ID':_0x3342('0x1'),'GOOGLE_SECRET':_0x3342('0x2'),'DEBUG':''};
\ No newline at end of file
+var _0x47c5=['app-id','secret','exports','http://localhost:9000','myappanuglar-secret'];(function(_0x481434,_0x34bc88){var _0x108237=function(_0x42ac1c){while(--_0x42ac1c){_0x481434['push'](_0x481434['shift']());}};_0x108237(++_0x34bc88);}(_0x47c5,0x165));var _0x547c=function(_0x501c32,_0x2f24c9){_0x501c32=_0x501c32-0x0;var _0x9bd372=_0x47c5[_0x501c32];return _0x9bd372;};'use strict';module[_0x547c('0x0')]={'DOMAIN':_0x547c('0x1'),'SESSION_SECRET':_0x547c('0x2'),'GOOGLE_ID':_0x547c('0x3'),'GOOGLE_SECRET':_0x547c('0x4'),'DEBUG':''};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0b08=['File','info','env','debugLevel','winston','util','INFO','join','xcally','format','message','replace','{{{','}}}','[%s]\x20[%s]\x20%s\x20-\x20%s','YYYY-MM-DD\x20HH:mm:ss','level','exports','Logger','transports','%s-%s','error'];(function(_0x5ef942,_0x4ec1d9){var _0x135f58=function(_0x1f6e8a){while(--_0x1f6e8a){_0x5ef942['push'](_0x5ef942['shift']());}};_0x135f58(++_0x4ec1d9);}(_0x0b08,0xb4));var _0x80b0=function(_0x1f535b,_0xc42523){_0x1f535b=_0x1f535b-0x0;var _0x5bb329=_0x0b08[_0x1f535b];return _0x5bb329;};'use strict';var moment=require('moment');var winston=require(_0x80b0('0x0'));var util=require(_0x80b0('0x1'));var path=require('path');var debugLevel=_0x80b0('0x2');function filename(_0x1bc165,_0x4fbee5){return path[_0x80b0('0x3')]('/var','log',_0x80b0('0x4'),util[_0x80b0('0x5')]('%s-%s.log',_0x1bc165,_0x4fbee5));}function formatter(_0xd2de6c,_0xc4de3e){_0xc4de3e[_0x80b0('0x6')]=_0xc4de3e[_0x80b0('0x6')][_0x80b0('0x7')](/@@{/g,_0x80b0('0x8'))[_0x80b0('0x7')](/}@@/g,_0x80b0('0x9'))[_0x80b0('0x7')](/@{/g,'{{')[_0x80b0('0x7')](/}@/g,'}}');return util[_0x80b0('0x5')](_0x80b0('0xa'),moment()['format'](_0x80b0('0xb')),_0xc4de3e[_0x80b0('0xc')]['toUpperCase'](),_0xd2de6c,_0xc4de3e['message']);}module[_0x80b0('0xd')]=function(_0x3ed2e2){return new winston[(_0x80b0('0xe'))]({'transports':[new winston[(_0x80b0('0xf'))]['File']({'name':util[_0x80b0('0x5')](_0x80b0('0x10'),_0x3ed2e2,_0x80b0('0x11')),'filename':filename(_0x3ed2e2,_0x80b0('0x11')),'level':'error','json':![],'maxsize':0xa00000,'maxFiles':0xa,'tailable':!![],'formatter':function(_0x5afb1c){return formatter(_0x3ed2e2,_0x5afb1c);}}),new winston[(_0x80b0('0xf'))][(_0x80b0('0x12'))]({'name':util['format'](_0x80b0('0x10'),_0x3ed2e2,_0x80b0('0x13')),'filename':filename(_0x3ed2e2,_0x80b0('0x13')),'level':_0x80b0('0x13'),'json':![],'maxsize':0xa00000,'maxFiles':0xa,'tailable':!![],'formatter':function(_0x499477){return formatter(_0x3ed2e2,_0x499477);}}),new winston['transports']['Console']({'level':process[_0x80b0('0x14')][_0x80b0('0x15')]||debugLevel,'json':![],'formatter':function(_0x78fe52){return formatter(_0x3ed2e2,_0x78fe52);}})]});};
\ No newline at end of file
+var _0xcc9f=['exports','Logger','transports','File','%s-%s','error','info','Console','env','debugLevel','moment','winston','util','path','INFO','join','/var','log','format','message','replace','[%s]\x20[%s]\x20%s\x20-\x20%s','YYYY-MM-DD\x20HH:mm:ss'];(function(_0x5b4d06,_0x3edc8d){var _0xad4053=function(_0x1e2748){while(--_0x1e2748){_0x5b4d06['push'](_0x5b4d06['shift']());}};_0xad4053(++_0x3edc8d);}(_0xcc9f,0x1ed));var _0xfcc9=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0xcc9f[_0x14add3];return _0x4a174f;};'use strict';var moment=require(_0xfcc9('0x0'));var winston=require(_0xfcc9('0x1'));var util=require(_0xfcc9('0x2'));var path=require(_0xfcc9('0x3'));var debugLevel=_0xfcc9('0x4');function filename(_0x425885,_0x236f0c){return path[_0xfcc9('0x5')](_0xfcc9('0x6'),_0xfcc9('0x7'),'xcally',util[_0xfcc9('0x8')]('%s-%s.log',_0x425885,_0x236f0c));}function formatter(_0x3621a7,_0x592295){_0x592295[_0xfcc9('0x9')]=_0x592295['message'][_0xfcc9('0xa')](/@@{/g,'{{{')[_0xfcc9('0xa')](/}@@/g,'}}}')[_0xfcc9('0xa')](/@{/g,'{{')[_0xfcc9('0xa')](/}@/g,'}}');return util[_0xfcc9('0x8')](_0xfcc9('0xb'),moment()[_0xfcc9('0x8')](_0xfcc9('0xc')),_0x592295['level']['toUpperCase'](),_0x3621a7,_0x592295[_0xfcc9('0x9')]);}module[_0xfcc9('0xd')]=function(_0x20a55b){return new winston[(_0xfcc9('0xe'))]({'transports':[new winston[(_0xfcc9('0xf'))][(_0xfcc9('0x10'))]({'name':util[_0xfcc9('0x8')](_0xfcc9('0x11'),_0x20a55b,_0xfcc9('0x12')),'filename':filename(_0x20a55b,_0xfcc9('0x12')),'level':_0xfcc9('0x12'),'json':![],'maxsize':0xa00000,'maxFiles':0xa,'tailable':!![],'formatter':function(_0x1b9215){return formatter(_0x20a55b,_0x1b9215);}}),new winston[(_0xfcc9('0xf'))][(_0xfcc9('0x10'))]({'name':util['format']('%s-%s',_0x20a55b,_0xfcc9('0x13')),'filename':filename(_0x20a55b,'info'),'level':'info','json':![],'maxsize':0xa00000,'maxFiles':0xa,'tailable':!![],'formatter':function(_0x1a0b9d){return formatter(_0x20a55b,_0x1a0b9d);}}),new winston['transports'][(_0xfcc9('0x14'))]({'level':process[_0xfcc9('0x15')][_0xfcc9('0x16')]||debugLevel,'json':![],'formatter':function(_0x396d72){return formatter(_0x20a55b,_0x396d72);}})]});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb549=['../../services/xdr/index.js','exports','express','join','ami','../../services/ami/index.js','agi','../../services/agi/index.js','email','../../services/email/index.js','../../services/routing/index.js','xdr'];(function(_0x7457fe,_0x564a5e){var _0x57a6e4=function(_0x566577){while(--_0x566577){_0x7457fe['push'](_0x7457fe['shift']());}};_0x57a6e4(++_0x564a5e);}(_0xb549,0x176));var _0x9b54=function(_0x4bbae2,_0x353582){_0x4bbae2=_0x4bbae2-0x0;var _0x211183=_0xb549[_0x4bbae2];return _0x211183;};'use strict';var path=require('path');var os=require('os');var config={'apps':[{'name':_0x9b54('0x0'),'script':path[_0x9b54('0x1')](__dirname,'../../services/express/index.js')},{'name':_0x9b54('0x2'),'script':path[_0x9b54('0x1')](__dirname,_0x9b54('0x3'))},{'name':_0x9b54('0x4'),'script':path[_0x9b54('0x1')](__dirname,_0x9b54('0x5'))},{'name':_0x9b54('0x6'),'script':path[_0x9b54('0x1')](__dirname,_0x9b54('0x7'))},{'name':'routing','script':path[_0x9b54('0x1')](__dirname,_0x9b54('0x8'))},{'name':_0x9b54('0x9'),'script':path['join'](__dirname,_0x9b54('0xa'))}]};module[_0x9b54('0xb')]=config;
\ No newline at end of file
+var _0xf55b=['email','../../services/routing/index.js','../../services/xdr/index.js','exports','join','../../services/express/index.js','ami','agi','../../services/agi/index.js'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0xf55b,0xee));var _0xbf55=function(_0x1079b5,_0x94c172){_0x1079b5=_0x1079b5-0x0;var _0x1276fb=_0xf55b[_0x1079b5];return _0x1276fb;};'use strict';var path=require('path');var os=require('os');var config={'apps':[{'name':'express','script':path[_0xbf55('0x0')](__dirname,_0xbf55('0x1'))},{'name':_0xbf55('0x2'),'script':path[_0xbf55('0x0')](__dirname,'../../services/ami/index.js')},{'name':_0xbf55('0x3'),'script':path['join'](__dirname,_0xbf55('0x4'))},{'name':_0xbf55('0x5'),'script':path[_0xbf55('0x0')](__dirname,'../../services/email/index.js')},{'name':'routing','script':path['join'](__dirname,_0xbf55('0x6'))},{'name':'xdr','script':path['join'](__dirname,_0xbf55('0x7'))}]};module[_0xbf55('0x8')]=config;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6b31=['bluebird','./config','connect','connected','start','then','disconnect','stop','restart','list','describe','delete','dump','saved','pm2'];(function(_0x3cdec8,_0x5a1015){var _0x96035e=function(_0xca8416){while(--_0xca8416){_0x3cdec8['push'](_0x3cdec8['shift']());}};_0x96035e(++_0x5a1015);}(_0x6b31,0xc2));var _0x16b3=function(_0x31e731,_0xbb0110){_0x31e731=_0x31e731-0x0;var _0xef28b1=_0x6b31[_0x31e731];return _0xef28b1;};'use strict';var pm2=require(_0x16b3('0x0'));var BPromise=require(_0x16b3('0x1'));var config=require(_0x16b3('0x2'));function connect(){return new BPromise(function(_0x4b6a06,_0x323dcb){return pm2[_0x16b3('0x3')](function(_0x2c3420){if(_0x2c3420){return _0x323dcb(_0x2c3420);}return _0x4b6a06(_0x16b3('0x4'));});});};exports[_0x16b3('0x5')]=function(_0x5dc34e){return connect()[_0x16b3('0x6')](function(){return new BPromise(function(_0x2ab31d,_0x4c94bc){return pm2[_0x16b3('0x5')](_0x5dc34e,function(_0x20006a,_0x43154d){if(_0x20006a){return _0x4c94bc(_0x20006a);}pm2[_0x16b3('0x7')]();return _0x2ab31d(_0x43154d);});});});};exports['stop']=function(_0x28032b){return connect()[_0x16b3('0x6')](function(){return new BPromise(function(_0x3ab2d6,_0x40718a){return pm2[_0x16b3('0x8')](_0x28032b,function(_0x38c347,_0x289ae4){if(_0x38c347){return _0x40718a(_0x38c347);}pm2[_0x16b3('0x7')]();return _0x3ab2d6(_0x289ae4);});});});};exports[_0x16b3('0x9')]=function(_0x2020bc){return connect()[_0x16b3('0x6')](function(){return new BPromise(function(_0x2c7d64,_0x316df7){return pm2[_0x16b3('0x9')](_0x2020bc,function(_0x4e8357,_0x436d2f){if(_0x4e8357){return _0x316df7(_0x4e8357);}pm2[_0x16b3('0x7')]();return _0x2c7d64(_0x436d2f);});});});};exports[_0x16b3('0xa')]=function(){return connect()[_0x16b3('0x6')](function(){return new BPromise(function(_0x3f1f15,_0x5ca6cc){return pm2[_0x16b3('0xa')](function(_0x1be474,_0x534382){if(_0x1be474){return _0x5ca6cc(_0x1be474);}pm2[_0x16b3('0x7')]();return _0x3f1f15(_0x534382);});});});};exports['describe']=function(_0x3a1af4){return connect()[_0x16b3('0x6')](function(){return new BPromise(function(_0x3ec583,_0xc6b10d){return pm2[_0x16b3('0xb')](_0x3a1af4,function(_0x183997,_0x182ea1){if(_0x183997){return _0xc6b10d(_0x183997);}pm2[_0x16b3('0x7')]();return _0x3ec583(_0x182ea1);});});});};exports['delete']=function(_0x1672c5){return connect()[_0x16b3('0x6')](function(){return new BPromise(function(_0x1d1f0d,_0x3f8057){return pm2[_0x16b3('0xc')](_0x1672c5,function(_0x28c6dd,_0x17a75c){if(_0x28c6dd){return _0x3f8057(_0x28c6dd);}pm2[_0x16b3('0x7')]();return _0x1d1f0d(_0x17a75c);});});});};exports[_0x16b3('0xd')]=function(){return connect()[_0x16b3('0x6')](function(){return new BPromise(function(_0x309822,_0x5bb393){return pm2[_0x16b3('0xd')](function(_0x27436b){if(_0x27436b){return _0x5bb393(_0x27436b);}return _0x309822(_0x16b3('0xe'));});});});};
\ No newline at end of file
+var _0xef10=['connect','connected','then','disconnect','stop','restart','list','describe','delete','dump','saved','pm2','bluebird','./config'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0xef10,0x1bd));var _0x0ef1=function(_0x222329,_0x1da66b){_0x222329=_0x222329-0x0;var _0x5c7f51=_0xef10[_0x222329];return _0x5c7f51;};'use strict';var pm2=require(_0x0ef1('0x0'));var BPromise=require(_0x0ef1('0x1'));var config=require(_0x0ef1('0x2'));function connect(){return new BPromise(function(_0x5b508c,_0x66afd1){return pm2[_0x0ef1('0x3')](function(_0x564676){if(_0x564676){return _0x66afd1(_0x564676);}return _0x5b508c(_0x0ef1('0x4'));});});};exports['start']=function(_0x4b82bc){return connect()[_0x0ef1('0x5')](function(){return new BPromise(function(_0x189e6f,_0x3d15ef){return pm2['start'](_0x4b82bc,function(_0x21a40c,_0x1c6332){if(_0x21a40c){return _0x3d15ef(_0x21a40c);}pm2[_0x0ef1('0x6')]();return _0x189e6f(_0x1c6332);});});});};exports[_0x0ef1('0x7')]=function(_0x3f967a){return connect()['then'](function(){return new BPromise(function(_0x46a1e7,_0x1d5e55){return pm2[_0x0ef1('0x7')](_0x3f967a,function(_0x5c4297,_0x3729c9){if(_0x5c4297){return _0x1d5e55(_0x5c4297);}pm2[_0x0ef1('0x6')]();return _0x46a1e7(_0x3729c9);});});});};exports[_0x0ef1('0x8')]=function(_0x239e96){return connect()[_0x0ef1('0x5')](function(){return new BPromise(function(_0x4a64c8,_0x34a82c){return pm2['restart'](_0x239e96,function(_0x109406,_0x1db297){if(_0x109406){return _0x34a82c(_0x109406);}pm2['disconnect']();return _0x4a64c8(_0x1db297);});});});};exports[_0x0ef1('0x9')]=function(){return connect()[_0x0ef1('0x5')](function(){return new BPromise(function(_0x2ba4ca,_0x18c397){return pm2[_0x0ef1('0x9')](function(_0x5d17d8,_0x16d7df){if(_0x5d17d8){return _0x18c397(_0x5d17d8);}pm2['disconnect']();return _0x2ba4ca(_0x16d7df);});});});};exports['describe']=function(_0x599d28){return connect()['then'](function(){return new BPromise(function(_0x10b9b7,_0x23e15b){return pm2[_0x0ef1('0xa')](_0x599d28,function(_0x3b3d26,_0xeefbf5){if(_0x3b3d26){return _0x23e15b(_0x3b3d26);}pm2['disconnect']();return _0x10b9b7(_0xeefbf5);});});});};exports[_0x0ef1('0xb')]=function(_0x135d25){return connect()[_0x0ef1('0x5')](function(){return new BPromise(function(_0x580d5e,_0x35ead4){return pm2[_0x0ef1('0xb')](_0x135d25,function(_0x46ffc0,_0x1647f8){if(_0x46ffc0){return _0x35ead4(_0x46ffc0);}pm2[_0x0ef1('0x6')]();return _0x580d5e(_0x1647f8);});});});};exports['dump']=function(){return connect()[_0x0ef1('0x5')](function(){return new BPromise(function(_0x55b5c4,_0xf618cc){return pm2[_0x0ef1('0xc')](function(_0x1cd6d3){if(_0x1cd6d3){return _0xf618cc(_0x1cd6d3);}return _0x55b5c4(_0x0ef1('0xd'));});});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x306a=['start','moment','ioredis','../../mysqldb','../logger','redis','localhost','socket.io-emitter','Setting','find','chatTimeout','ChatInteraction','findAll','lastMsgAt','subtract','minutes','then','length','map','join','timeout','info','[CHAT]\x20Sending\x20updates\x20for\x20interactions:','emit','catch','error','inspect'];(function(_0xabeb36,_0x2d53ee){var _0x326d49=function(_0x5d4f3a){while(--_0x5d4f3a){_0xabeb36['push'](_0xabeb36['shift']());}};_0x326d49(++_0x2d53ee);}(_0x306a,0x17b));var _0xa306=function(_0x4e4d44,_0x3836ed){_0x4e4d44=_0x4e4d44-0x0;var _0x429cf0=_0x306a[_0x4e4d44];return _0x429cf0;};'use strict';var _=require('lodash');var moment=require(_0xa306('0x0'));var Redis=require(_0xa306('0x1'));var util=require('util');var config=require('../../config/environment');var db=require(_0xa306('0x2'))['db'];var logger=require(_0xa306('0x3'))('schedule');config[_0xa306('0x4')]=_['defaults'](config[_0xa306('0x4')],{'host':_0xa306('0x5'),'port':0x18eb});var io=require(_0xa306('0x6'))(new Redis(config['redis']));function closeInteractions(){var _0x2fc778=0x0;var _0xe61bb6=[];return db[_0xa306('0x7')][_0xa306('0x8')]({'raw':!![],'attributes':['id',_0xa306('0x9')],'where':{'id':0x1}})['then'](function(_0x573c12){_0x2fc778=_0x573c12[_0xa306('0x9')];if(_0x2fc778){return db[_0xa306('0xa')][_0xa306('0xb')]({'raw':!![],'attributes':['id',_0xa306('0xc')],'where':{'closed':![],'lastMsgAt':{'$lt':moment()[_0xa306('0xd')](_0x573c12[_0xa306('0x9')],_0xa306('0xe'))}}});}else{return[];}})[_0xa306('0xf')](function(_0x35f72c){if(_0x35f72c&&_0x35f72c[_0xa306('0x10')]){_0xe61bb6=_[_0xa306('0x11')](_0x35f72c||[],'id');logger['info']('[CHAT]\x20Interactions\x20to\x20close:',_0xe61bb6[_0xa306('0x12')]());return db[_0xa306('0xa')]['update']({'closeReason':'system','disposition':_0xa306('0x13'),'closed':!![],'closedAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss')},{'where':{'id':_0xe61bb6}});}})[_0xa306('0xf')](function(){if(_0xe61bb6&&_0xe61bb6[_0xa306('0x10')]){logger[_0xa306('0x14')](_0xa306('0x15'),_0xe61bb6[_0xa306('0x12')]());for(var _0x22fc54=0x0;_0x22fc54<_0xe61bb6[_0xa306('0x10')];_0x22fc54++){io[_0xa306('0x16')]('chatInteraction:update',{'id':_0xe61bb6[_0x22fc54],'closed':!![]});}}})[_0xa306('0x17')](function(_0x33e8ba){logger[_0xa306('0x18')]('[CHAT]\x20Error\x20closing\x20interactions',_0x33e8ba?util[_0xa306('0x19')](_0x33e8ba,{'showHidden':![],'depth':null}):'');});}exports[_0xa306('0x1a')]=function(){setInterval(function(){return closeInteractions();},0x3c*0x3e8);return closeInteractions();};
\ No newline at end of file
+var _0x2f09=['socket.io-emitter','find','chatTimeout','ChatInteraction','findAll','lastMsgAt','subtract','minutes','then','length','map','info','join','system','timeout','format','YYYY-MM-DD\x20HH:mm:ss','[CHAT]\x20Sending\x20updates\x20for\x20interactions:','emit','chatInteraction:update','catch','error','[CHAT]\x20Error\x20closing\x20interactions','start','lodash','util','../../config/environment','../../mysqldb','../logger','redis','localhost'];(function(_0x1c546c,_0x5c57cb){var _0x2cc384=function(_0x4dee11){while(--_0x4dee11){_0x1c546c['push'](_0x1c546c['shift']());}};_0x2cc384(++_0x5c57cb);}(_0x2f09,0x1ca));var _0x92f0=function(_0x3a1aaf,_0x406490){_0x3a1aaf=_0x3a1aaf-0x0;var _0x673e5a=_0x2f09[_0x3a1aaf];return _0x673e5a;};'use strict';var _=require(_0x92f0('0x0'));var moment=require('moment');var Redis=require('ioredis');var util=require(_0x92f0('0x1'));var config=require(_0x92f0('0x2'));var db=require(_0x92f0('0x3'))['db'];var logger=require(_0x92f0('0x4'))('schedule');config[_0x92f0('0x5')]=_['defaults'](config[_0x92f0('0x5')],{'host':_0x92f0('0x6'),'port':0x18eb});var io=require(_0x92f0('0x7'))(new Redis(config['redis']));function closeInteractions(){var _0x464ddf=0x0;var _0x1ea370=[];return db['Setting'][_0x92f0('0x8')]({'raw':!![],'attributes':['id',_0x92f0('0x9')],'where':{'id':0x1}})['then'](function(_0x7bd4d8){_0x464ddf=_0x7bd4d8['chatTimeout'];if(_0x464ddf){return db[_0x92f0('0xa')][_0x92f0('0xb')]({'raw':!![],'attributes':['id',_0x92f0('0xc')],'where':{'closed':![],'lastMsgAt':{'$lt':moment()[_0x92f0('0xd')](_0x7bd4d8[_0x92f0('0x9')],_0x92f0('0xe'))}}});}else{return[];}})[_0x92f0('0xf')](function(_0x15bf55){if(_0x15bf55&&_0x15bf55[_0x92f0('0x10')]){_0x1ea370=_[_0x92f0('0x11')](_0x15bf55||[],'id');logger[_0x92f0('0x12')]('[CHAT]\x20Interactions\x20to\x20close:',_0x1ea370[_0x92f0('0x13')]());return db['ChatInteraction']['update']({'closeReason':_0x92f0('0x14'),'disposition':_0x92f0('0x15'),'closed':!![],'closedAt':moment()[_0x92f0('0x16')](_0x92f0('0x17'))},{'where':{'id':_0x1ea370}});}})[_0x92f0('0xf')](function(){if(_0x1ea370&&_0x1ea370[_0x92f0('0x10')]){logger[_0x92f0('0x12')](_0x92f0('0x18'),_0x1ea370[_0x92f0('0x13')]());for(var _0x54bb52=0x0;_0x54bb52<_0x1ea370[_0x92f0('0x10')];_0x54bb52++){io[_0x92f0('0x19')](_0x92f0('0x1a'),{'id':_0x1ea370[_0x54bb52],'closed':!![]});}}})[_0x92f0('0x1b')](function(_0x3411a0){logger[_0x92f0('0x1c')](_0x92f0('0x1d'),_0x3411a0?util['inspect'](_0x3411a0,{'showHidden':![],'depth':null}):'');});}exports[_0x92f0('0x1e')]=function(){setInterval(function(){return closeInteractions();},0x3c*0x3e8);return closeInteractions();};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x882e=['savename','%s.%s','extname','zip','existsSync','status','Sent','message','attachments','Info\x20report:\x0a%s\x0aPlease\x20see\x20the\x20attachments\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20it.\x0a\x0a','stringify','Report\x20empty\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20this\x20email.\x0a\x0a','sendIfEmpty','empty\x20file,\x20email\x20not\x20sent','SendMail','error','error\x20mail','email\x20sent','catch','data','subtract','YYYY-MM-DD\x20HH:mm:ss','scheduled','output','name','isNil','DefaultReportId','exec\x20defaul\x20report\x20id:%s','runReport','CustomReportId','no\x20report\x20id','Schedule','MailServerOut','then','keys','jobs','map','toString','keyBy','intersection','exists','stop','deleteJob','delete\x20cron','length','index','my\x20id','resolve','run\x20job','cron','active','startAt','endAt','add','start','add\x20cron','stop\x20cron','isBetween','update','update\x20cron','run','util','moment','cron-job-manager','../logger','../../mysqldb','../../api/analyticCustomReport/analyticCustomReport.controller','../../api/analyticDefaultReport/analyticDefaultReport.controller','http','info','email','service','MailAccount','host','port','Smtp','secure','authentication','auth','user','pass','format','subtractNumber','subtractUnit','join'];(function(_0x101e7b,_0x4ef05b){var _0x4995c0=function(_0x1a6488){while(--_0x1a6488){_0x101e7b['push'](_0x101e7b['shift']());}};_0x4995c0(++_0x4ef05b);}(_0x882e,0x1e6));var _0xe882=function(_0x300237,_0x1c26d1){_0x300237=_0x300237-0x0;var _0x595315=_0x882e[_0x300237];return _0x595315;};'use strict';var fs=require('fs');var util=require(_0xe882('0x0'));var path=require('path');var _=require('lodash');var moment=require(_0xe882('0x1'));var CronJobManager=require(_0xe882('0x2'));var jayson=require('jayson/promise');var BPromise=require('bluebird');var logger=require(_0xe882('0x3'))('schedule');var db=require(_0xe882('0x4'))['db'];var analyticCustomReportController=require(_0xe882('0x5'));var analyticDefaultReportController=require(_0xe882('0x6'));var client=jayson['client'][_0xe882('0x7')]({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0x34fc3e,_0x5da49b){return function(){logger[_0xe882('0x8')]('Try\x20to\x20send\x20a\x20mail\x20to',_0x34fc3e[_0xe882('0x9')]);var _0x1e781e=!![];var _0x5dd0a2={'tls':{'rejectUnauthorized':![]}};if(_0x34fc3e['MailAccount']['Smtp'][_0xe882('0xa')]){_0x5dd0a2['service']=_0x34fc3e[_0xe882('0xb')]['Smtp'][_0xe882('0xa')];}else{_0x5dd0a2[_0xe882('0xc')]=_0x34fc3e['MailAccount']['Smtp'][_0xe882('0xc')];_0x5dd0a2[_0xe882('0xd')]=_0x34fc3e[_0xe882('0xb')][_0xe882('0xe')][_0xe882('0xd')];_0x5dd0a2[_0xe882('0xf')]=_0x34fc3e[_0xe882('0xb')][_0xe882('0xe')][_0xe882('0xf')];}if(_0x34fc3e[_0xe882('0xb')][_0xe882('0xe')][_0xe882('0x10')]){_0x5dd0a2[_0xe882('0x11')]={'user':_0x34fc3e[_0xe882('0xb')][_0xe882('0xe')][_0xe882('0x12')],'pass':_0x34fc3e[_0xe882('0xb')]['Smtp'][_0xe882('0x13')]};}var _0x3cd285={'account':_0x5dd0a2,'message':{'from':util['format']('\x22%s\x22\x20<%s>',_0x34fc3e[_0xe882('0xb')]['name'],_0x34fc3e[_0xe882('0xb')][_0xe882('0x9')]||_0x34fc3e[_0xe882('0xb')][_0xe882('0xe')][_0xe882('0x12')]),'to':_0x34fc3e[_0xe882('0x9')],'cc':_0x34fc3e['cc'],'bcc':_0x34fc3e['bcc'],'subject':util[_0xe882('0x14')]('Report\x20%s\x20last\x20%s\x20%s',_0x5da49b['name'],_0x34fc3e[_0xe882('0x15')],_0x34fc3e[_0xe882('0x16')])}};var _0x46d8b2=path[_0xe882('0x17')](__dirname,'../../files/reports');var _0x182be1=_0x5da49b[_0xe882('0x18')];var _0x4b2cb6=util[_0xe882('0x14')](_0xe882('0x19'),path['basename'](_0x5da49b['savename'],path[_0xe882('0x1a')](_0x5da49b[_0xe882('0x18')])),_0xe882('0x1b'));var _0xc8aecf=path[_0xe882('0x17')](_0x46d8b2,_0x182be1);var _0x3b0e2e=path['join'](_0x46d8b2,_0x4b2cb6);if(fs[_0xe882('0x1c')](_0xc8aecf)){_0x5da49b[_0xe882('0x1d')]=_0xe882('0x1e');_0x3cd285[_0xe882('0x1f')][_0xe882('0x20')]=[{'filename':_0x182be1,'path':_0xc8aecf}];_0x3cd285[_0xe882('0x1f')]['text']=util[_0xe882('0x14')](_0xe882('0x21'),JSON[_0xe882('0x22')](_0x5da49b,null,0x2));}else if(fs[_0xe882('0x1c')](_0x3b0e2e)){_0x5da49b[_0xe882('0x1d')]=_0xe882('0x1e');_0x3cd285['message'][_0xe882('0x20')]=[{'filename':_0x4b2cb6,'path':_0x3b0e2e}];}else{_0x3cd285[_0xe882('0x1f')]['text']=_0xe882('0x23');if(!_0x34fc3e[_0xe882('0x24')]){_0x1e781e=![];logger['info'](_0xe882('0x25'));}}if(_0x1e781e){return client['request'](_0xe882('0x26'),_0x3cd285)['then'](function(_0x30339d){if(_0x30339d[_0xe882('0x27')]){return logger[_0xe882('0x27')](_0xe882('0x28'),JSON[_0xe882('0x22')](_0x30339d));}return logger['info'](_0xe882('0x29'));})[_0xe882('0x2a')](function(_0x5d5f63){return logger[_0xe882('0x27')](_0xe882('0x28'),JSON[_0xe882('0x22')](_0x5d5f63));});}};}function handleError(){return function(_0x5210d3){return logger[_0xe882('0x27')](JSON[_0xe882('0x22')](_0x5210d3));};}function handleResult(_0x320647){return function(_0x2be79){logger['info'](_0xe882('0x2b'),JSON['stringify'](_0x2be79));if(_0x320647[_0xe882('0xb')]&&_0x320647[_0xe882('0xb')]['Smtp']&&!_['isNil'](_0x320647[_0xe882('0x9')])){setTimeout(handleSendEmail(_0x320647,_0x2be79),0x3c*0x3e8);}};}function handleJob(_0x374095){return function(){try{if(_['isNil'](_0x374095[_0xe882('0x15')])){return logger[_0xe882('0x8')]('subtractNumber\x20null\x20or\x20undefined');}if(_['isNil'](_0x374095[_0xe882('0x16')])){return logger[_0xe882('0x8')]('subtractUnit\x20null\x20or\x20undefined');}var _0x2680d3={'startDate':moment()[_0xe882('0x2c')](_0x374095[_0xe882('0x15')],_0x374095[_0xe882('0x16')])[_0xe882('0x14')](_0xe882('0x2d')),'endDate':moment()[_0xe882('0x14')](_0xe882('0x2d')),'type':_0xe882('0x2e'),'output':_0x374095[_0xe882('0x2f')],'name':_0x374095[_0xe882('0x30')]};if(!_[_0xe882('0x31')](_0x374095[_0xe882('0x32')])){logger['info'](_0xe882('0x33'),_0x374095[_0xe882('0x32')]);return analyticDefaultReportController[_0xe882('0x34')]({'id':_0x374095['DefaultReportId']},_0x2680d3)['then'](handleResult(_0x374095))[_0xe882('0x2a')](handleError());}if(!_[_0xe882('0x31')](_0x374095[_0xe882('0x35')])){logger[_0xe882('0x8')]('exec\x20custom\x20report\x20id:%s',_0x374095[_0xe882('0x35')]);return analyticCustomReportController['runReport']({'id':_0x374095[_0xe882('0x35')]},_0x2680d3)['then'](handleResult(_0x374095))['catch'](handleError());}}catch(_0x5f14eb){logger[_0xe882('0x27')](JSON['stringify'](_0x5f14eb));}return logger[_0xe882('0x8')](_0xe882('0x36'));};}function getJobs(_0x39785c){var _0x4cc736={};if(_0x39785c){_0x4cc736['id']=_0x39785c;}return db[_0xe882('0x37')]['findAll']({'where':_0x4cc736,'include':[{'model':db[_0xe882('0xb')],'attributes':['id',_0xe882('0x30'),_0xe882('0x9')],'include':[{'model':db[_0xe882('0x38')],'as':_0xe882('0xe')}]}]})[_0xe882('0x39')](function(_0x5f30f5){var _0x46ab4a=_[_0xe882('0x3a')](manager[_0xe882('0x3b')]);var _0x224ff4=_[_0xe882('0x3c')](_0x5f30f5,function(_0x14cf42){return _0x14cf42['id'][_0xe882('0x3d')]();});var _0x43fa32=_[_0xe882('0x3e')](_0x5f30f5,function(_0x5d1782){return _0x5d1782['id'][_0xe882('0x3d')]();});var _0x4b68a9=_0x39785c?_0x224ff4:_['difference'](_0x224ff4,_0x46ab4a);var _0xd63f2b=_[_0xe882('0x3f')](_0x224ff4,_0x46ab4a);var _0x3687d2=_['difference'](_0x46ab4a,_0x224ff4);var _0x1820b5;var _0x27f01b;for(_0x1820b5=0x0;_0x1820b5<_0x3687d2['length']&&!_0x39785c;_0x1820b5+=0x1){_0x27f01b=_0x3687d2[_0x1820b5][_0xe882('0x3d')]();if(manager[_0xe882('0x40')](_0x27f01b)){manager[_0xe882('0x41')](_0x27f01b);manager[_0xe882('0x42')](_0x27f01b);logger['info'](_0xe882('0x43'),_0x27f01b);}}logger[_0xe882('0x8')]('toRun',JSON['stringify'](_0x4b68a9));for(_0x1820b5=0x0;_0x1820b5<_0x4b68a9[_0xe882('0x44')];_0x1820b5+=0x1){_0x27f01b=_0x4b68a9[_0x1820b5][_0xe882('0x3d')]();logger[_0xe882('0x8')](_0xe882('0x45'),_0x27f01b);if(_0x39785c){logger[_0xe882('0x8')](_0xe882('0x46'),_0x39785c);logger[_0xe882('0x8')](JSON['stringify'](_0x43fa32[_0x27f01b]));BPromise[_0xe882('0x47')]()[_0xe882('0x39')](handleJob(_0x43fa32[_0x27f01b]));logger[_0xe882('0x8')](_0xe882('0x48'),_0x43fa32[_0x27f01b]['name'],_0x43fa32[_0x27f01b][_0xe882('0x49')]);}else if(_0x43fa32[_0x27f01b][_0xe882('0x49')]&&_0x43fa32[_0x27f01b][_0xe882('0x4a')]&&moment()['isBetween'](_0x43fa32[_0x27f01b][_0xe882('0x4b')],_0x43fa32[_0x27f01b][_0xe882('0x4c')])){manager[_0xe882('0x4d')](_0x27f01b,_0x43fa32[_0x27f01b][_0xe882('0x49')],handleJob(_0x43fa32[_0x27f01b]));manager[_0xe882('0x4e')](_0x27f01b);logger[_0xe882('0x8')](_0xe882('0x4f'),_0x43fa32[_0x27f01b][_0xe882('0x30')],_0x43fa32[_0x27f01b]['cron']);}else if(manager[_0xe882('0x40')](_0x27f01b)){manager['stop'](_0x27f01b);manager[_0xe882('0x42')](_0x27f01b);logger[_0xe882('0x8')](_0xe882('0x50'),_0x43fa32[_0x27f01b][_0xe882('0x30')],_0x43fa32[_0x27f01b][_0xe882('0x49')]);}}for(_0x1820b5=0x0,_0x27f01b;_0x1820b5<_0xd63f2b[_0xe882('0x44')]&&!_0x39785c;_0x1820b5+=0x1){_0x27f01b=_0xd63f2b[_0x1820b5]['toString']();if(manager[_0xe882('0x40')](_0x27f01b)){if(_0x43fa32[_0x27f01b][_0xe882('0x49')]&&_0x43fa32[_0x27f01b]['active']&&moment()[_0xe882('0x51')](_0x43fa32[_0x27f01b][_0xe882('0x4b')],_0x43fa32[_0x27f01b]['endAt'])){manager[_0xe882('0x52')](_0x27f01b,_0x43fa32[_0x27f01b][_0xe882('0x49')],handleJob(_0x43fa32[_0x27f01b]));logger['info'](_0xe882('0x53'),_0x43fa32[_0x27f01b]['name'],_0x43fa32[_0x27f01b]['cron']);}else{manager[_0xe882('0x41')](_0x27f01b);manager['deleteJob'](_0x27f01b);logger['info'](_0xe882('0x50'),_0x43fa32[_0x27f01b][_0xe882('0x30')],_0x43fa32[_0x27f01b]['cron']);}}}})['catch'](function(_0x2f3a22){logger[_0xe882('0x27')](JSON[_0xe882('0x22')](_0x2f3a22));});}exports[_0xe882('0x54')]=function(_0x3d7e45){return getJobs(_0x3d7e45);};exports[_0xe882('0x4e')]=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};
\ No newline at end of file
+var _0x57df=['basename','extname','savename','zip','existsSync','status','message','attachments','text','Info\x20report:\x0a%s\x0aPlease\x20see\x20the\x20attachments\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20it.\x0a\x0a','stringify','Report\x20empty\x0aThis\x20is\x20an\x20automatically\x20generated\x20email\x20–\x20please\x20do\x20not\x20reply\x20to\x20this\x20email.\x0a\x0a','sendIfEmpty','request','SendMail','then','error','error\x20mail','email\x20sent','catch','data','isNil','subtractNumber\x20null\x20or\x20undefined','YYYY-MM-DD\x20HH:mm:ss','scheduled','output','DefaultReportId','exec\x20defaul\x20report\x20id:%s','runReport','CustomReportId','exec\x20custom\x20report\x20id:%s','no\x20report\x20id','findAll','MailServerOut','keys','map','toString','difference','intersection','exists','stop','deleteJob','delete\x20cron','length','my\x20id','run\x20job','cron','active','isBetween','startAt','endAt','add','start','add\x20cron','stop\x20cron','update','util','path','lodash','jayson/promise','bluebird','schedule','../../mysqldb','../../api/analyticDefaultReport/analyticDefaultReport.controller','http','info','Try\x20to\x20send\x20a\x20mail\x20to','email','Smtp','service','MailAccount','host','port','secure','authentication','auth','user','pass','format','\x22%s\x22\x20<%s>','name','bcc','subtractNumber','subtractUnit','join','../../files/reports','%s.%s'];(function(_0x4b3631,_0x12c9c2){var _0x1a97b5=function(_0x42cf66){while(--_0x42cf66){_0x4b3631['push'](_0x4b3631['shift']());}};_0x1a97b5(++_0x12c9c2);}(_0x57df,0x1eb));var _0xf57d=function(_0x45f146,_0x40719a){_0x45f146=_0x45f146-0x0;var _0x21811c=_0x57df[_0x45f146];return _0x21811c;};'use strict';var fs=require('fs');var util=require(_0xf57d('0x0'));var path=require(_0xf57d('0x1'));var _=require(_0xf57d('0x2'));var moment=require('moment');var CronJobManager=require('cron-job-manager');var jayson=require(_0xf57d('0x3'));var BPromise=require(_0xf57d('0x4'));var logger=require('../logger')(_0xf57d('0x5'));var db=require(_0xf57d('0x6'))['db'];var analyticCustomReportController=require('../../api/analyticCustomReport/analyticCustomReport.controller');var analyticDefaultReportController=require(_0xf57d('0x7'));var client=jayson['client'][_0xf57d('0x8')]({'port':0x232b});var manager=new CronJobManager();function handleSendEmail(_0x46a320,_0x16ab49){return function(){logger[_0xf57d('0x9')](_0xf57d('0xa'),_0x46a320[_0xf57d('0xb')]);var _0x7bf6ec=!![];var _0x125929={'tls':{'rejectUnauthorized':![]}};if(_0x46a320['MailAccount'][_0xf57d('0xc')][_0xf57d('0xd')]){_0x125929[_0xf57d('0xd')]=_0x46a320[_0xf57d('0xe')][_0xf57d('0xc')]['service'];}else{_0x125929['host']=_0x46a320['MailAccount'][_0xf57d('0xc')][_0xf57d('0xf')];_0x125929['port']=_0x46a320[_0xf57d('0xe')][_0xf57d('0xc')][_0xf57d('0x10')];_0x125929[_0xf57d('0x11')]=_0x46a320[_0xf57d('0xe')][_0xf57d('0xc')][_0xf57d('0x11')];}if(_0x46a320[_0xf57d('0xe')][_0xf57d('0xc')][_0xf57d('0x12')]){_0x125929[_0xf57d('0x13')]={'user':_0x46a320[_0xf57d('0xe')]['Smtp'][_0xf57d('0x14')],'pass':_0x46a320[_0xf57d('0xe')][_0xf57d('0xc')][_0xf57d('0x15')]};}var _0x4b384f={'account':_0x125929,'message':{'from':util[_0xf57d('0x16')](_0xf57d('0x17'),_0x46a320[_0xf57d('0xe')][_0xf57d('0x18')],_0x46a320[_0xf57d('0xe')][_0xf57d('0xb')]||_0x46a320[_0xf57d('0xe')][_0xf57d('0xc')]['user']),'to':_0x46a320[_0xf57d('0xb')],'cc':_0x46a320['cc'],'bcc':_0x46a320[_0xf57d('0x19')],'subject':util[_0xf57d('0x16')]('Report\x20%s\x20last\x20%s\x20%s',_0x16ab49[_0xf57d('0x18')],_0x46a320[_0xf57d('0x1a')],_0x46a320[_0xf57d('0x1b')])}};var _0x21b406=path[_0xf57d('0x1c')](__dirname,_0xf57d('0x1d'));var _0x3b42ba=_0x16ab49['savename'];var _0x2215b9=util[_0xf57d('0x16')](_0xf57d('0x1e'),path[_0xf57d('0x1f')](_0x16ab49['savename'],path[_0xf57d('0x20')](_0x16ab49[_0xf57d('0x21')])),_0xf57d('0x22'));var _0x171f6a=path[_0xf57d('0x1c')](_0x21b406,_0x3b42ba);var _0x247ed0=path[_0xf57d('0x1c')](_0x21b406,_0x2215b9);if(fs[_0xf57d('0x23')](_0x171f6a)){_0x16ab49[_0xf57d('0x24')]='Sent';_0x4b384f[_0xf57d('0x25')][_0xf57d('0x26')]=[{'filename':_0x3b42ba,'path':_0x171f6a}];_0x4b384f[_0xf57d('0x25')][_0xf57d('0x27')]=util[_0xf57d('0x16')](_0xf57d('0x28'),JSON[_0xf57d('0x29')](_0x16ab49,null,0x2));}else if(fs[_0xf57d('0x23')](_0x247ed0)){_0x16ab49[_0xf57d('0x24')]='Sent';_0x4b384f[_0xf57d('0x25')][_0xf57d('0x26')]=[{'filename':_0x2215b9,'path':_0x247ed0}];}else{_0x4b384f[_0xf57d('0x25')]['text']=_0xf57d('0x2a');if(!_0x46a320[_0xf57d('0x2b')]){_0x7bf6ec=![];logger[_0xf57d('0x9')]('empty\x20file,\x20email\x20not\x20sent');}}if(_0x7bf6ec){return client[_0xf57d('0x2c')](_0xf57d('0x2d'),_0x4b384f)[_0xf57d('0x2e')](function(_0x315d4c){if(_0x315d4c[_0xf57d('0x2f')]){return logger[_0xf57d('0x2f')](_0xf57d('0x30'),JSON[_0xf57d('0x29')](_0x315d4c));}return logger[_0xf57d('0x9')](_0xf57d('0x31'));})[_0xf57d('0x32')](function(_0x817bb){return logger[_0xf57d('0x2f')](_0xf57d('0x30'),JSON[_0xf57d('0x29')](_0x817bb));});}};}function handleError(){return function(_0xbf76a0){return logger['error'](JSON[_0xf57d('0x29')](_0xbf76a0));};}function handleResult(_0x150a68){return function(_0x1fb3ad){logger[_0xf57d('0x9')](_0xf57d('0x33'),JSON['stringify'](_0x1fb3ad));if(_0x150a68['MailAccount']&&_0x150a68[_0xf57d('0xe')][_0xf57d('0xc')]&&!_['isNil'](_0x150a68['email'])){setTimeout(handleSendEmail(_0x150a68,_0x1fb3ad),0x3c*0x3e8);}};}function handleJob(_0x22affa){return function(){try{if(_[_0xf57d('0x34')](_0x22affa[_0xf57d('0x1a')])){return logger[_0xf57d('0x9')](_0xf57d('0x35'));}if(_['isNil'](_0x22affa[_0xf57d('0x1b')])){return logger['info']('subtractUnit\x20null\x20or\x20undefined');}var _0x23bf4b={'startDate':moment()['subtract'](_0x22affa[_0xf57d('0x1a')],_0x22affa[_0xf57d('0x1b')])[_0xf57d('0x16')](_0xf57d('0x36')),'endDate':moment()[_0xf57d('0x16')](_0xf57d('0x36')),'type':_0xf57d('0x37'),'output':_0x22affa[_0xf57d('0x38')],'name':_0x22affa['name']};if(!_[_0xf57d('0x34')](_0x22affa[_0xf57d('0x39')])){logger[_0xf57d('0x9')](_0xf57d('0x3a'),_0x22affa[_0xf57d('0x39')]);return analyticDefaultReportController[_0xf57d('0x3b')]({'id':_0x22affa[_0xf57d('0x39')]},_0x23bf4b)[_0xf57d('0x2e')](handleResult(_0x22affa))['catch'](handleError());}if(!_[_0xf57d('0x34')](_0x22affa[_0xf57d('0x3c')])){logger[_0xf57d('0x9')](_0xf57d('0x3d'),_0x22affa['CustomReportId']);return analyticCustomReportController[_0xf57d('0x3b')]({'id':_0x22affa['CustomReportId']},_0x23bf4b)[_0xf57d('0x2e')](handleResult(_0x22affa))[_0xf57d('0x32')](handleError());}}catch(_0x28711b){logger[_0xf57d('0x2f')](JSON['stringify'](_0x28711b));}return logger['info'](_0xf57d('0x3e'));};}function getJobs(_0x4c3f42){var _0x5f2054={};if(_0x4c3f42){_0x5f2054['id']=_0x4c3f42;}return db['Schedule'][_0xf57d('0x3f')]({'where':_0x5f2054,'include':[{'model':db['MailAccount'],'attributes':['id',_0xf57d('0x18'),_0xf57d('0xb')],'include':[{'model':db[_0xf57d('0x40')],'as':_0xf57d('0xc')}]}]})[_0xf57d('0x2e')](function(_0x2741d1){var _0x47d351=_[_0xf57d('0x41')](manager['jobs']);var _0xdbe1a7=_[_0xf57d('0x42')](_0x2741d1,function(_0x12456f){return _0x12456f['id'][_0xf57d('0x43')]();});var _0x57fa87=_['keyBy'](_0x2741d1,function(_0x148cf9){return _0x148cf9['id'][_0xf57d('0x43')]();});var _0x457c93=_0x4c3f42?_0xdbe1a7:_[_0xf57d('0x44')](_0xdbe1a7,_0x47d351);var _0x376d04=_[_0xf57d('0x45')](_0xdbe1a7,_0x47d351);var _0x24fbe0=_[_0xf57d('0x44')](_0x47d351,_0xdbe1a7);var _0x225f28;var _0x38c64d;for(_0x225f28=0x0;_0x225f28<_0x24fbe0['length']&&!_0x4c3f42;_0x225f28+=0x1){_0x38c64d=_0x24fbe0[_0x225f28][_0xf57d('0x43')]();if(manager[_0xf57d('0x46')](_0x38c64d)){manager[_0xf57d('0x47')](_0x38c64d);manager[_0xf57d('0x48')](_0x38c64d);logger['info'](_0xf57d('0x49'),_0x38c64d);}}logger[_0xf57d('0x9')]('toRun',JSON[_0xf57d('0x29')](_0x457c93));for(_0x225f28=0x0;_0x225f28<_0x457c93[_0xf57d('0x4a')];_0x225f28+=0x1){_0x38c64d=_0x457c93[_0x225f28][_0xf57d('0x43')]();logger[_0xf57d('0x9')]('index',_0x38c64d);if(_0x4c3f42){logger[_0xf57d('0x9')](_0xf57d('0x4b'),_0x4c3f42);logger['info'](JSON[_0xf57d('0x29')](_0x57fa87[_0x38c64d]));BPromise['resolve']()[_0xf57d('0x2e')](handleJob(_0x57fa87[_0x38c64d]));logger[_0xf57d('0x9')](_0xf57d('0x4c'),_0x57fa87[_0x38c64d][_0xf57d('0x18')],_0x57fa87[_0x38c64d][_0xf57d('0x4d')]);}else if(_0x57fa87[_0x38c64d]['cron']&&_0x57fa87[_0x38c64d][_0xf57d('0x4e')]&&moment()[_0xf57d('0x4f')](_0x57fa87[_0x38c64d][_0xf57d('0x50')],_0x57fa87[_0x38c64d][_0xf57d('0x51')])){manager[_0xf57d('0x52')](_0x38c64d,_0x57fa87[_0x38c64d]['cron'],handleJob(_0x57fa87[_0x38c64d]));manager[_0xf57d('0x53')](_0x38c64d);logger[_0xf57d('0x9')](_0xf57d('0x54'),_0x57fa87[_0x38c64d][_0xf57d('0x18')],_0x57fa87[_0x38c64d]['cron']);}else if(manager[_0xf57d('0x46')](_0x38c64d)){manager['stop'](_0x38c64d);manager[_0xf57d('0x48')](_0x38c64d);logger[_0xf57d('0x9')](_0xf57d('0x55'),_0x57fa87[_0x38c64d]['name'],_0x57fa87[_0x38c64d][_0xf57d('0x4d')]);}}for(_0x225f28=0x0,_0x38c64d;_0x225f28<_0x376d04[_0xf57d('0x4a')]&&!_0x4c3f42;_0x225f28+=0x1){_0x38c64d=_0x376d04[_0x225f28][_0xf57d('0x43')]();if(manager[_0xf57d('0x46')](_0x38c64d)){if(_0x57fa87[_0x38c64d][_0xf57d('0x4d')]&&_0x57fa87[_0x38c64d][_0xf57d('0x4e')]&&moment()[_0xf57d('0x4f')](_0x57fa87[_0x38c64d][_0xf57d('0x50')],_0x57fa87[_0x38c64d][_0xf57d('0x51')])){manager[_0xf57d('0x56')](_0x38c64d,_0x57fa87[_0x38c64d][_0xf57d('0x4d')],handleJob(_0x57fa87[_0x38c64d]));logger['info']('update\x20cron',_0x57fa87[_0x38c64d][_0xf57d('0x18')],_0x57fa87[_0x38c64d]['cron']);}else{manager[_0xf57d('0x47')](_0x38c64d);manager[_0xf57d('0x48')](_0x38c64d);logger[_0xf57d('0x9')](_0xf57d('0x55'),_0x57fa87[_0x38c64d]['name'],_0x57fa87[_0x38c64d][_0xf57d('0x4d')]);}}}})[_0xf57d('0x32')](function(_0x2f2af3){logger[_0xf57d('0x2f')](JSON[_0xf57d('0x29')](_0x2f2af3));});}exports['run']=function(_0x21f9f2){return getJobs(_0x21f9f2);};exports[_0xf57d('0x53')]=function(){setInterval(function(){return getJobs();},0x3c*0x3e8);return getJobs();};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7497=['detectSentiment','substring','info','format','[RECORDING:%d]\x20Get\x20status\x20for\x20transcript\x20job\x20(%s)','transcribeName','data1','then','[RECORDING:%d]\x20Status\x20of\x20transcript\x20job\x20(%s):\x20%s','TranscriptionJob','TranscriptionJobStatus','fileText','COMPLETED','Transcript','[RECORDING:%d]\x20Get\x20transcript','TranscriptFileUri','results','transcripts','[RECORDING:%d]\x20Voice\x20Recording\x20entry\x20updated','Sequelize','ValidationError','Sentiment\x20Analysis\x20not\x20requested','sentiment','sentimentAccountId','sentimentRegion','bucket','Transcript\x20not\x20available','CloudProvider','findOne','Cloud\x20Provider\x20not\x20available','data2','Cloud\x20Provider\x20not\x20configured','[RECORDING:%d]\x20Requesting\x20sentiment\x20analysis','[RECORDING:%d]\x20Sentiment\x20Analysis\x20available','Sentiment','SentimentScore','Positive','Negative','FAILED','update','[RECORDING:%d]\x20Transcript\x20Job\x20status\x20not\x20managed','resolve','tempSentiment','language','Sentiment\x20Analysis\x20not\x20configured','Mixed','Neutral','catch','name','SequelizeValidationError','error','[RECORDING:%d]\x20Error\x20running\x20Transcribe\x20&\x20Sentiment\x20Analysis','inspect','VoiceRecording','findAll','IN_PROGRESS','length','No\x20transcribe\x20job\x20to\x20check','Setting','transcribeAccountId','transcribeRegion','Transcribe\x20not\x20configured','forEach','start','lodash','aws-sdk','request-promise','../../config/logger','transcribe','TranscribeService','getTranscriptionJob','Comprehend'];(function(_0x137c0,_0x2dfeca){var _0x5ac7ef=function(_0x115796){while(--_0x115796){_0x137c0['push'](_0x137c0['shift']());}};_0x5ac7ef(++_0x2dfeca);}(_0x7497,0xd0));var _0x7749=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x7497[_0x3dd15e];return _0x231fd0;};var _=require(_0x7749('0x0'));var AWS=require(_0x7749('0x1'));var rp=require(_0x7749('0x2'));var util=require('util');var BPromise=require('bluebird');var db=require('../../mysqldb')['db'];var logger=require(_0x7749('0x3'))(_0x7749('0x4'));function getTranscriptionJob(_0x5d360f,_0x1f0553,_0x385d4f,_0xd1e163){return new Promise(function(_0x455d05,_0x289268){var _0x29f84f=new AWS[(_0x7749('0x5'))]({'accessKeyId':_0x1f0553,'secretAccessKey':_0x5d360f,'region':_0x385d4f});_0x29f84f[_0x7749('0x6')]({'TranscriptionJobName':_0xd1e163},function(_0x38dd37,_0x3efd35){if(_0x38dd37){return _0x289268(_0x38dd37);}else{return _0x455d05(_0x3efd35);}});});}function sentiment(_0x2400ea,_0x5aac6f,_0xb58b29,_0x581994,_0x781f3e){return new Promise(function(_0x837b9,_0x32e711){var _0x1e5c30=new AWS[(_0x7749('0x7'))]({'accessKeyId':_0x5aac6f,'secretAccessKey':_0x2400ea,'region':_0xb58b29});_0x1e5c30[_0x7749('0x8')]({'Text':_0x581994,'LanguageCode':_0x781f3e[_0x7749('0x9')](0x0,0x2)},function(_0x926f93,_0x3587f7){if(_0x926f93){return _0x32e711(_0x926f93);}else{return _0x837b9(_0x3587f7);}});});}function checkTranscribeJob(_0x51b2d7,_0x4d3608,_0xd24e42){var _0x5b5ac5;return new BPromise(function(_0x5e8cfd,_0x3e54bc){logger[_0x7749('0xa')](util[_0x7749('0xb')](_0x7749('0xc'),_0x51b2d7['id'],_0x51b2d7[_0x7749('0xd')]));return getTranscriptionJob(_0xd24e42[_0x7749('0xe')],_0xd24e42['data2'],_0x4d3608['transcribeRegion'],_0x51b2d7[_0x7749('0xd')])[_0x7749('0xf')](function(_0x5f4a55){logger[_0x7749('0xa')](util[_0x7749('0xb')](_0x7749('0x10'),_0x51b2d7['id'],_0x51b2d7[_0x7749('0xd')],_0x5f4a55[_0x7749('0x11')][_0x7749('0x12')]));if(!_0x51b2d7[_0x7749('0x13')]){switch(_0x5f4a55[_0x7749('0x11')][_0x7749('0x12')]){case _0x7749('0x14'):var _0x5c89d0={'transcribeStatus':_0x5f4a55[_0x7749('0x11')][_0x7749('0x12')],'fileUri':_0x5f4a55['TranscriptionJob'][_0x7749('0x15')]['TranscriptFileUri']};logger[_0x7749('0xa')](util[_0x7749('0xb')](_0x7749('0x16'),_0x51b2d7['id']));return rp({'uri':_0x5f4a55[_0x7749('0x11')][_0x7749('0x15')][_0x7749('0x17')],'json':!![]})[_0x7749('0xf')](function(_0x397a24){logger[_0x7749('0xa')](util[_0x7749('0xb')]('[RECORDING:%d]\x20Transcript\x20downloaded',_0x51b2d7['id']));if(_0x397a24&&_0x397a24[_0x7749('0x18')]&&_0x397a24[_0x7749('0x18')]['transcripts']&&_0x397a24['results'][_0x7749('0x19')]['length']){_0x5c89d0[_0x7749('0x13')]='';for(var _0x2c9879=0x0;_0x2c9879<_0x397a24[_0x7749('0x18')][_0x7749('0x19')]['length'];_0x2c9879++){_0x5c89d0[_0x7749('0x13')]+=_0x397a24['results']['transcripts'][_0x2c9879]['transcript']+'';}}return _0x51b2d7['update'](_0x5c89d0);})['then'](function(){logger['info'](util[_0x7749('0xb')](_0x7749('0x1a'),_0x51b2d7['id']));if(!_0x51b2d7['tempSentiment']){throw new db[(_0x7749('0x1b'))][(_0x7749('0x1c'))](_0x7749('0x1d'));}if(!_0x4d3608[_0x7749('0x1e')]||!_0x4d3608[_0x7749('0x1f')]||!_0x4d3608[_0x7749('0x20')]||!_0x4d3608['language']||!_0x4d3608[_0x7749('0x21')]){throw new db[(_0x7749('0x1b'))][(_0x7749('0x1c'))]('Sentiment\x20Analysis\x20not\x20configured');}if(!_0x5c89d0[_0x7749('0x13')]){throw new Error(_0x7749('0x22'));}if(_0x4d3608[_0x7749('0x1f')]===_0xd24e42['id']){return _0xd24e42;}else{return db[_0x7749('0x23')][_0x7749('0x24')]({'where':{'id':_settings[_0x7749('0x1f')]}});}})[_0x7749('0xf')](function(_0x2e93b4){if(!_0x2e93b4){throw new db[(_0x7749('0x1b'))][(_0x7749('0x1c'))](_0x7749('0x25'));}if(!_0x2e93b4[_0x7749('0xe')]||!_0x2e93b4[_0x7749('0x26')]){throw new db[(_0x7749('0x1b'))][(_0x7749('0x1c'))](_0x7749('0x27'));}_0x5b5ac5=_0x2e93b4;logger[_0x7749('0xa')](util['format'](_0x7749('0x28'),_0x51b2d7['id']));return sentiment(_0x5b5ac5[_0x7749('0xe')],_0x5b5ac5[_0x7749('0x26')],_0x4d3608[_0x7749('0x20')],_0x5c89d0['fileText'],_0x4d3608['language']);})['then'](function(_0x1d087d){logger[_0x7749('0xa')](util[_0x7749('0xb')](_0x7749('0x29'),_0x51b2d7['id']));return _0x51b2d7['update']({'sentiment':_0x1d087d[_0x7749('0x2a')],'sPositive':_0x1d087d[_0x7749('0x2b')][_0x7749('0x2c')],'sNegative':_0x1d087d['SentimentScore'][_0x7749('0x2d')],'sMixed':_0x1d087d[_0x7749('0x2b')]['Mixed'],'sNeutral':_0x1d087d[_0x7749('0x2b')]['Neutral']});})[_0x7749('0xf')](function(){logger[_0x7749('0xa')](util[_0x7749('0xb')]('[RECORDING:%d]\x20Voice\x20Recording\x20entry\x20updated',_0x51b2d7['id']));_0x5e8cfd();});case _0x7749('0x2e'):return _0x51b2d7[_0x7749('0x2f')]({'transcribeStatus':_0x7749('0x2e'),'failureReason':_0x5f4a55[_0x7749('0x11')]['FailureReason']})['then'](function(){logger['info'](util[_0x7749('0xb')](_0x7749('0x1a'),_0x51b2d7['id']));_0x5e8cfd();});default:logger[_0x7749('0xa')](util[_0x7749('0xb')](_0x7749('0x30'),_0x51b2d7['id']));break;}}else{return BPromise[_0x7749('0x31')]()[_0x7749('0xf')](function(){if(!_0x51b2d7[_0x7749('0x32')]){throw new db['Sequelize'][(_0x7749('0x1c'))](_0x7749('0x1d'));}if(!_0x4d3608[_0x7749('0x1e')]||!_0x4d3608[_0x7749('0x1f')]||!_0x4d3608[_0x7749('0x20')]||!_0x4d3608[_0x7749('0x33')]||!_0x4d3608[_0x7749('0x21')]){throw new db[(_0x7749('0x1b'))][(_0x7749('0x1c'))](_0x7749('0x34'));}if(!_0x51b2d7[_0x7749('0x13')]){throw new Error(_0x7749('0x22'));}if(_0x4d3608[_0x7749('0x1f')]===_0xd24e42['id']){return _0xd24e42;}else{return db[_0x7749('0x23')][_0x7749('0x24')]({'where':{'id':_settings['sentimentAccountId']}});}})[_0x7749('0xf')](function(_0x2cfd7a){if(!_0x2cfd7a){throw new db['Sequelize']['ValidationError'](_0x7749('0x25'));}if(!_0x2cfd7a[_0x7749('0xe')]||!_0x2cfd7a[_0x7749('0x26')]){throw new db[(_0x7749('0x1b'))]['ValidationError'](_0x7749('0x27'));}_0x5b5ac5=_0x2cfd7a;logger[_0x7749('0xa')](util[_0x7749('0xb')]('[RECORDING:%d]\x20Requesting\x20sentiment\x20analysis',_0x51b2d7['id']));return sentiment(_0x5b5ac5[_0x7749('0xe')],_0x5b5ac5[_0x7749('0x26')],_0x4d3608['sentimentRegion'],_0x51b2d7[_0x7749('0x13')],_0x4d3608[_0x7749('0x33')]);})[_0x7749('0xf')](function(_0x45b935){logger['info'](util[_0x7749('0xb')](_0x7749('0x29'),_0x51b2d7['id']));return _0x51b2d7[_0x7749('0x2f')]({'sentiment':_0x45b935[_0x7749('0x2a')],'sPositive':_0x45b935[_0x7749('0x2b')]['Positive'],'sNegative':_0x45b935[_0x7749('0x2b')]['Negative'],'sMixed':_0x45b935['SentimentScore'][_0x7749('0x35')],'sNeutral':_0x45b935[_0x7749('0x2b')][_0x7749('0x36')],'transcribeStatus':'COMPLETED'});})[_0x7749('0xf')](function(){logger[_0x7749('0xa')](util[_0x7749('0xb')](_0x7749('0x1a'),_0x51b2d7['id']));_0x5e8cfd();});}})[_0x7749('0x37')](function(_0x148df5){if(_0x148df5){if(!_0x148df5[_0x7749('0x38')]||_0x148df5[_0x7749('0x38')]!==_0x7749('0x39')){logger[_0x7749('0x3a')](util['format'](_0x7749('0x3b'),_0x51b2d7['id']),util[_0x7749('0x3c')](_0x148df5,{'showHidden':![],'depth':null}));}}_0x5e8cfd();});});}function checkTranscribe(){var _0x1cf36d;var _0x24d290;var _0x2fde3d;return db[_0x7749('0x3d')][_0x7749('0x3e')]({'where':{'transcribeStatus':_0x7749('0x3f')}})[_0x7749('0xf')](function(_0x115104){if(!_0x115104||!_0x115104[_0x7749('0x40')]){throw new db[(_0x7749('0x1b'))][(_0x7749('0x1c'))](_0x7749('0x41'));}_0x1cf36d=_0x115104;return db[_0x7749('0x42')][_0x7749('0x24')]({'where':{'id':0x1}});})['then'](function(_0xca060b){if(!_0xca060b){throw new db[(_0x7749('0x1b'))][(_0x7749('0x1c'))]('Settings\x20not\x20available');}_0x24d290=_0xca060b;if(!_0x24d290[_0x7749('0x4')]||!_0x24d290[_0x7749('0x43')]||!_0x24d290[_0x7749('0x44')]||!_0x24d290[_0x7749('0x33')]||!_0x24d290[_0x7749('0x21')]){throw new db[(_0x7749('0x1b'))][(_0x7749('0x1c'))](_0x7749('0x45'));}return db[_0x7749('0x23')][_0x7749('0x24')]({'where':{'id':_0x24d290[_0x7749('0x43')]}});})['then'](function(_0x15c2b4){if(!_0x15c2b4){throw new db[(_0x7749('0x1b'))][(_0x7749('0x1c'))](_0x7749('0x25'));}if(!_0x15c2b4['data1']||!_0x15c2b4['data2']){throw new db['Sequelize']['ValidationError'](_0x7749('0x27'));}_0x2fde3d=_0x15c2b4;var _0x5c0a54=[];_0x1cf36d[_0x7749('0x46')](function(_0x8677ea){_0x5c0a54['push'](checkTranscribeJob(_0x8677ea,_0x24d290,_0x2fde3d));});return BPromise['all'](_0x5c0a54);})[_0x7749('0x37')](function(_0x58b943){if(_0x58b943){if(!_0x58b943[_0x7749('0x38')]||_0x58b943[_0x7749('0x38')]!==_0x7749('0x39')){logger[_0x7749('0x3a')](util[_0x7749('0x3c')](_0x58b943,{'showHidden':![],'depth':null}));}}});}exports[_0x7749('0x47')]=function(){setInterval(function(){return checkTranscribe();},0x3c*0x3e8);return checkTranscribe();};
\ No newline at end of file
+var _0xd139=['results','transcripts','length','transcript','update','tempSentiment','Sequelize','ValidationError','Sentiment\x20Analysis\x20not\x20requested','sentiment','sentimentAccountId','sentimentRegion','language','bucket','Sentiment\x20Analysis\x20not\x20configured','Transcript\x20not\x20available','CloudProvider','findOne','Cloud\x20Provider\x20not\x20configured','[RECORDING:%d]\x20Requesting\x20sentiment\x20analysis','[RECORDING:%d]\x20Sentiment\x20Analysis\x20available','Sentiment','SentimentScore','Positive','Negative','Neutral','[RECORDING:%d]\x20Voice\x20Recording\x20entry\x20updated','FAILED','FailureReason','Cloud\x20Provider\x20not\x20available','Mixed','name','SequelizeValidationError','[RECORDING:%d]\x20Error\x20running\x20Transcribe\x20&\x20Sentiment\x20Analysis','inspect','VoiceRecording','findAll','IN_PROGRESS','No\x20transcribe\x20job\x20to\x20check','Settings\x20not\x20available','transcribeAccountId','Transcribe\x20not\x20configured','forEach','push','error','start','lodash','aws-sdk','bluebird','../../mysqldb','../../config/logger','transcribe','TranscribeService','Comprehend','detectSentiment','substring','format','[RECORDING:%d]\x20Get\x20status\x20for\x20transcript\x20job\x20(%s)','transcribeName','data1','data2','transcribeRegion','info','[RECORDING:%d]\x20Status\x20of\x20transcript\x20job\x20(%s):\x20%s','TranscriptionJob','TranscriptionJobStatus','fileText','COMPLETED','Transcript','TranscriptFileUri','then','[RECORDING:%d]\x20Transcript\x20downloaded'];(function(_0x2a9a8c,_0x2ce298){var _0x130864=function(_0x492e09){while(--_0x492e09){_0x2a9a8c['push'](_0x2a9a8c['shift']());}};_0x130864(++_0x2ce298);}(_0xd139,0x14e));var _0x9d13=function(_0x522420,_0x2a53de){_0x522420=_0x522420-0x0;var _0xff02e1=_0xd139[_0x522420];return _0xff02e1;};var _=require(_0x9d13('0x0'));var AWS=require(_0x9d13('0x1'));var rp=require('request-promise');var util=require('util');var BPromise=require(_0x9d13('0x2'));var db=require(_0x9d13('0x3'))['db'];var logger=require(_0x9d13('0x4'))(_0x9d13('0x5'));function getTranscriptionJob(_0x1d39f0,_0xdeacf6,_0x16b9f2,_0x58c6f5){return new Promise(function(_0x4c8e60,_0x2918eb){var _0x50294b=new AWS[(_0x9d13('0x6'))]({'accessKeyId':_0xdeacf6,'secretAccessKey':_0x1d39f0,'region':_0x16b9f2});_0x50294b['getTranscriptionJob']({'TranscriptionJobName':_0x58c6f5},function(_0x434ef6,_0x524947){if(_0x434ef6){return _0x2918eb(_0x434ef6);}else{return _0x4c8e60(_0x524947);}});});}function sentiment(_0x5a1220,_0x5b4773,_0x3ccdf9,_0xba5caa,_0x41eef2){return new Promise(function(_0x51ac36,_0x135232){var _0x5aa0c8=new AWS[(_0x9d13('0x7'))]({'accessKeyId':_0x5b4773,'secretAccessKey':_0x5a1220,'region':_0x3ccdf9});_0x5aa0c8[_0x9d13('0x8')]({'Text':_0xba5caa,'LanguageCode':_0x41eef2[_0x9d13('0x9')](0x0,0x2)},function(_0x4ae31b,_0x55f6d7){if(_0x4ae31b){return _0x135232(_0x4ae31b);}else{return _0x51ac36(_0x55f6d7);}});});}function checkTranscribeJob(_0x22b2f7,_0x3933d1,_0x39020){var _0x331fea;return new BPromise(function(_0x22acf6,_0x4f0c06){logger['info'](util[_0x9d13('0xa')](_0x9d13('0xb'),_0x22b2f7['id'],_0x22b2f7[_0x9d13('0xc')]));return getTranscriptionJob(_0x39020[_0x9d13('0xd')],_0x39020[_0x9d13('0xe')],_0x3933d1[_0x9d13('0xf')],_0x22b2f7[_0x9d13('0xc')])['then'](function(_0x3acfc1){logger[_0x9d13('0x10')](util[_0x9d13('0xa')](_0x9d13('0x11'),_0x22b2f7['id'],_0x22b2f7[_0x9d13('0xc')],_0x3acfc1[_0x9d13('0x12')][_0x9d13('0x13')]));if(!_0x22b2f7[_0x9d13('0x14')]){switch(_0x3acfc1[_0x9d13('0x12')][_0x9d13('0x13')]){case _0x9d13('0x15'):var _0x38acaf={'transcribeStatus':_0x3acfc1[_0x9d13('0x12')]['TranscriptionJobStatus'],'fileUri':_0x3acfc1[_0x9d13('0x12')][_0x9d13('0x16')][_0x9d13('0x17')]};logger[_0x9d13('0x10')](util['format']('[RECORDING:%d]\x20Get\x20transcript',_0x22b2f7['id']));return rp({'uri':_0x3acfc1['TranscriptionJob'][_0x9d13('0x16')][_0x9d13('0x17')],'json':!![]})[_0x9d13('0x18')](function(_0x1fefe4){logger[_0x9d13('0x10')](util[_0x9d13('0xa')](_0x9d13('0x19'),_0x22b2f7['id']));if(_0x1fefe4&&_0x1fefe4[_0x9d13('0x1a')]&&_0x1fefe4['results'][_0x9d13('0x1b')]&&_0x1fefe4[_0x9d13('0x1a')][_0x9d13('0x1b')][_0x9d13('0x1c')]){_0x38acaf['fileText']='';for(var _0xe02b36=0x0;_0xe02b36<_0x1fefe4['results'][_0x9d13('0x1b')][_0x9d13('0x1c')];_0xe02b36++){_0x38acaf[_0x9d13('0x14')]+=_0x1fefe4[_0x9d13('0x1a')][_0x9d13('0x1b')][_0xe02b36][_0x9d13('0x1d')]+'';}}return _0x22b2f7[_0x9d13('0x1e')](_0x38acaf);})[_0x9d13('0x18')](function(){logger['info'](util[_0x9d13('0xa')]('[RECORDING:%d]\x20Voice\x20Recording\x20entry\x20updated',_0x22b2f7['id']));if(!_0x22b2f7[_0x9d13('0x1f')]){throw new db[(_0x9d13('0x20'))][(_0x9d13('0x21'))](_0x9d13('0x22'));}if(!_0x3933d1[_0x9d13('0x23')]||!_0x3933d1[_0x9d13('0x24')]||!_0x3933d1[_0x9d13('0x25')]||!_0x3933d1[_0x9d13('0x26')]||!_0x3933d1[_0x9d13('0x27')]){throw new db[(_0x9d13('0x20'))][(_0x9d13('0x21'))](_0x9d13('0x28'));}if(!_0x38acaf['fileText']){throw new Error(_0x9d13('0x29'));}if(_0x3933d1['sentimentAccountId']===_0x39020['id']){return _0x39020;}else{return db[_0x9d13('0x2a')][_0x9d13('0x2b')]({'where':{'id':_settings['sentimentAccountId']}});}})[_0x9d13('0x18')](function(_0x106aae){if(!_0x106aae){throw new db['Sequelize']['ValidationError']('Cloud\x20Provider\x20not\x20available');}if(!_0x106aae[_0x9d13('0xd')]||!_0x106aae['data2']){throw new db[(_0x9d13('0x20'))][(_0x9d13('0x21'))](_0x9d13('0x2c'));}_0x331fea=_0x106aae;logger['info'](util[_0x9d13('0xa')](_0x9d13('0x2d'),_0x22b2f7['id']));return sentiment(_0x331fea[_0x9d13('0xd')],_0x331fea[_0x9d13('0xe')],_0x3933d1['sentimentRegion'],_0x38acaf['fileText'],_0x3933d1[_0x9d13('0x26')]);})[_0x9d13('0x18')](function(_0x552e53){logger[_0x9d13('0x10')](util[_0x9d13('0xa')](_0x9d13('0x2e'),_0x22b2f7['id']));return _0x22b2f7[_0x9d13('0x1e')]({'sentiment':_0x552e53[_0x9d13('0x2f')],'sPositive':_0x552e53[_0x9d13('0x30')][_0x9d13('0x31')],'sNegative':_0x552e53['SentimentScore'][_0x9d13('0x32')],'sMixed':_0x552e53['SentimentScore']['Mixed'],'sNeutral':_0x552e53['SentimentScore'][_0x9d13('0x33')]});})[_0x9d13('0x18')](function(){logger[_0x9d13('0x10')](util[_0x9d13('0xa')](_0x9d13('0x34'),_0x22b2f7['id']));_0x22acf6();});case'FAILED':return _0x22b2f7[_0x9d13('0x1e')]({'transcribeStatus':_0x9d13('0x35'),'failureReason':_0x3acfc1[_0x9d13('0x12')][_0x9d13('0x36')]})[_0x9d13('0x18')](function(){logger[_0x9d13('0x10')](util['format'](_0x9d13('0x34'),_0x22b2f7['id']));_0x22acf6();});default:logger[_0x9d13('0x10')](util[_0x9d13('0xa')]('[RECORDING:%d]\x20Transcript\x20Job\x20status\x20not\x20managed',_0x22b2f7['id']));break;}}else{return BPromise['resolve']()[_0x9d13('0x18')](function(){if(!_0x22b2f7[_0x9d13('0x1f')]){throw new db[(_0x9d13('0x20'))]['ValidationError'](_0x9d13('0x22'));}if(!_0x3933d1[_0x9d13('0x23')]||!_0x3933d1['sentimentAccountId']||!_0x3933d1[_0x9d13('0x25')]||!_0x3933d1[_0x9d13('0x26')]||!_0x3933d1[_0x9d13('0x27')]){throw new db[(_0x9d13('0x20'))][(_0x9d13('0x21'))](_0x9d13('0x28'));}if(!_0x22b2f7[_0x9d13('0x14')]){throw new Error(_0x9d13('0x29'));}if(_0x3933d1[_0x9d13('0x24')]===_0x39020['id']){return _0x39020;}else{return db['CloudProvider'][_0x9d13('0x2b')]({'where':{'id':_settings[_0x9d13('0x24')]}});}})[_0x9d13('0x18')](function(_0x1dd5dc){if(!_0x1dd5dc){throw new db[(_0x9d13('0x20'))][(_0x9d13('0x21'))](_0x9d13('0x37'));}if(!_0x1dd5dc['data1']||!_0x1dd5dc[_0x9d13('0xe')]){throw new db[(_0x9d13('0x20'))][(_0x9d13('0x21'))](_0x9d13('0x2c'));}_0x331fea=_0x1dd5dc;logger[_0x9d13('0x10')](util[_0x9d13('0xa')]('[RECORDING:%d]\x20Requesting\x20sentiment\x20analysis',_0x22b2f7['id']));return sentiment(_0x331fea['data1'],_0x331fea[_0x9d13('0xe')],_0x3933d1['sentimentRegion'],_0x22b2f7[_0x9d13('0x14')],_0x3933d1['language']);})[_0x9d13('0x18')](function(_0x26d6a8){logger[_0x9d13('0x10')](util[_0x9d13('0xa')](_0x9d13('0x2e'),_0x22b2f7['id']));return _0x22b2f7['update']({'sentiment':_0x26d6a8[_0x9d13('0x2f')],'sPositive':_0x26d6a8[_0x9d13('0x30')][_0x9d13('0x31')],'sNegative':_0x26d6a8[_0x9d13('0x30')][_0x9d13('0x32')],'sMixed':_0x26d6a8[_0x9d13('0x30')][_0x9d13('0x38')],'sNeutral':_0x26d6a8[_0x9d13('0x30')][_0x9d13('0x33')],'transcribeStatus':_0x9d13('0x15')});})['then'](function(){logger['info'](util[_0x9d13('0xa')](_0x9d13('0x34'),_0x22b2f7['id']));_0x22acf6();});}})['catch'](function(_0x54c4d8){if(_0x54c4d8){if(!_0x54c4d8['name']||_0x54c4d8[_0x9d13('0x39')]!==_0x9d13('0x3a')){logger['error'](util['format'](_0x9d13('0x3b'),_0x22b2f7['id']),util[_0x9d13('0x3c')](_0x54c4d8,{'showHidden':![],'depth':null}));}}_0x22acf6();});});}function checkTranscribe(){var _0x4a70d5;var _0x158982;var _0x35865e;return db[_0x9d13('0x3d')][_0x9d13('0x3e')]({'where':{'transcribeStatus':_0x9d13('0x3f')}})[_0x9d13('0x18')](function(_0x519c6f){if(!_0x519c6f||!_0x519c6f[_0x9d13('0x1c')]){throw new db['Sequelize']['ValidationError'](_0x9d13('0x40'));}_0x4a70d5=_0x519c6f;return db['Setting'][_0x9d13('0x2b')]({'where':{'id':0x1}});})[_0x9d13('0x18')](function(_0x3457e5){if(!_0x3457e5){throw new db[(_0x9d13('0x20'))][(_0x9d13('0x21'))](_0x9d13('0x41'));}_0x158982=_0x3457e5;if(!_0x158982['transcribe']||!_0x158982[_0x9d13('0x42')]||!_0x158982[_0x9d13('0xf')]||!_0x158982[_0x9d13('0x26')]||!_0x158982[_0x9d13('0x27')]){throw new db[(_0x9d13('0x20'))][(_0x9d13('0x21'))](_0x9d13('0x43'));}return db['CloudProvider'][_0x9d13('0x2b')]({'where':{'id':_0x158982[_0x9d13('0x42')]}});})[_0x9d13('0x18')](function(_0x259628){if(!_0x259628){throw new db[(_0x9d13('0x20'))][(_0x9d13('0x21'))](_0x9d13('0x37'));}if(!_0x259628[_0x9d13('0xd')]||!_0x259628[_0x9d13('0xe')]){throw new db[(_0x9d13('0x20'))]['ValidationError'](_0x9d13('0x2c'));}_0x35865e=_0x259628;var _0x16401b=[];_0x4a70d5[_0x9d13('0x44')](function(_0x5e3081){_0x16401b[_0x9d13('0x45')](checkTranscribeJob(_0x5e3081,_0x158982,_0x35865e));});return BPromise['all'](_0x16401b);})['catch'](function(_0x1e5817){if(_0x1e5817){if(!_0x1e5817['name']||_0x1e5817[_0x9d13('0x39')]!==_0x9d13('0x3a')){logger[_0x9d13('0x46')](util[_0x9d13('0x3c')](_0x1e5817,{'showHidden':![],'depth':null}));}}});}exports[_0x9d13('0x47')]=function(){setInterval(function(){return checkTranscribe();},0x3c*0x3e8);return checkTranscribe();};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc935=['length','info','update','system','timeout','format','YYYY-MM-DD\x20HH:mm:ss','then','[WHATSAPP]\x20Sending\x20updates\x20for\x20interactions:','emit','catch','[WHATSAPP]\x20Error\x20closing\x20interactions','inspect','start','lodash','moment','ioredis','util','../../config/environment','schedule','redis','localhost','socket.io-emitter','WhatsappInteraction','findAll','lastMsgAt','subtract','hours'];(function(_0x209166,_0x8695e0){var _0x511673=function(_0x3ed812){while(--_0x3ed812){_0x209166['push'](_0x209166['shift']());}};_0x511673(++_0x8695e0);}(_0xc935,0x10a));var _0x5c93=function(_0x362a6a,_0x1f4a23){_0x362a6a=_0x362a6a-0x0;var _0x16e177=_0xc935[_0x362a6a];return _0x16e177;};'use strict';var _=require(_0x5c93('0x0'));var moment=require(_0x5c93('0x1'));var Redis=require(_0x5c93('0x2'));var util=require(_0x5c93('0x3'));var config=require(_0x5c93('0x4'));var db=require('../../mysqldb')['db'];var logger=require('../logger')(_0x5c93('0x5'));config[_0x5c93('0x6')]=_['defaults'](config[_0x5c93('0x6')],{'host':_0x5c93('0x7'),'port':0x18eb});var io=require(_0x5c93('0x8'))(new Redis(config[_0x5c93('0x6')]));function closeInteractions(){var _0x2f1826=[];return db[_0x5c93('0x9')][_0x5c93('0xa')]({'raw':!![],'attributes':['id',_0x5c93('0xb')],'where':{'closed':![],'lastMsgDirection':'in','lastMsgAt':{'$lt':moment()[_0x5c93('0xc')](0x18,_0x5c93('0xd'))}}})['then'](function(_0x4aea63){if(_0x4aea63&&_0x4aea63[_0x5c93('0xe')]){_0x2f1826=_['map'](_0x4aea63||[],'id');logger[_0x5c93('0xf')]('[WHATSAPP]\x20Interactions\x20to\x20close:',_0x2f1826['join']());return db[_0x5c93('0x9')][_0x5c93('0x10')]({'closeReason':_0x5c93('0x11'),'disposition':_0x5c93('0x12'),'closed':!![],'closedAt':moment()[_0x5c93('0x13')](_0x5c93('0x14'))},{'where':{'id':_0x2f1826}});}})[_0x5c93('0x15')](function(){if(_0x2f1826&&_0x2f1826[_0x5c93('0xe')]){logger[_0x5c93('0xf')](_0x5c93('0x16'),_0x2f1826['join']());for(var _0x54382e=0x0;_0x54382e<_0x2f1826[_0x5c93('0xe')];_0x54382e++){io[_0x5c93('0x17')]('whatsappInteraction:update',{'id':_0x2f1826[_0x54382e],'closed':!![]});}}})[_0x5c93('0x18')](function(_0x21ac10){logger['error'](_0x5c93('0x19'),_0x21ac10?util[_0x5c93('0x1a')](_0x21ac10,{'showHidden':![],'depth':null}):'');});}exports[_0x5c93('0x1b')]=function(){setInterval(function(){return closeInteractions();},0x3c*0x3e8);return closeInteractions();};
\ No newline at end of file
+var _0x446f=['util','../../config/environment','../../mysqldb','schedule','redis','defaults','localhost','socket.io-emitter','WhatsappInteraction','findAll','lastMsgAt','subtract','hours','length','map','join','update','system','format','YYYY-MM-DD\x20HH:mm:ss','info','[WHATSAPP]\x20Sending\x20updates\x20for\x20interactions:','emit','whatsappInteraction:update','catch','error','[WHATSAPP]\x20Error\x20closing\x20interactions','inspect','start','lodash'];(function(_0x287d8c,_0x3b7c24){var _0x538817=function(_0x3f5a11){while(--_0x3f5a11){_0x287d8c['push'](_0x287d8c['shift']());}};_0x538817(++_0x3b7c24);}(_0x446f,0x1a3));var _0xf446=function(_0x5838c2,_0x2def59){_0x5838c2=_0x5838c2-0x0;var _0x4e3695=_0x446f[_0x5838c2];return _0x4e3695;};'use strict';var _=require(_0xf446('0x0'));var moment=require('moment');var Redis=require('ioredis');var util=require(_0xf446('0x1'));var config=require(_0xf446('0x2'));var db=require(_0xf446('0x3'))['db'];var logger=require('../logger')(_0xf446('0x4'));config[_0xf446('0x5')]=_[_0xf446('0x6')](config[_0xf446('0x5')],{'host':_0xf446('0x7'),'port':0x18eb});var io=require(_0xf446('0x8'))(new Redis(config[_0xf446('0x5')]));function closeInteractions(){var _0x37610d=[];return db[_0xf446('0x9')][_0xf446('0xa')]({'raw':!![],'attributes':['id',_0xf446('0xb')],'where':{'closed':![],'lastMsgDirection':'in','lastMsgAt':{'$lt':moment()[_0xf446('0xc')](0x18,_0xf446('0xd'))}}})['then'](function(_0x578a9b){if(_0x578a9b&&_0x578a9b[_0xf446('0xe')]){_0x37610d=_[_0xf446('0xf')](_0x578a9b||[],'id');logger['info']('[WHATSAPP]\x20Interactions\x20to\x20close:',_0x37610d[_0xf446('0x10')]());return db[_0xf446('0x9')][_0xf446('0x11')]({'closeReason':_0xf446('0x12'),'disposition':'timeout','closed':!![],'closedAt':moment()[_0xf446('0x13')](_0xf446('0x14'))},{'where':{'id':_0x37610d}});}})['then'](function(){if(_0x37610d&&_0x37610d[_0xf446('0xe')]){logger[_0xf446('0x15')](_0xf446('0x16'),_0x37610d[_0xf446('0x10')]());for(var _0x5b9c1=0x0;_0x5b9c1<_0x37610d[_0xf446('0xe')];_0x5b9c1++){io[_0xf446('0x17')](_0xf446('0x18'),{'id':_0x37610d[_0x5b9c1],'closed':!![]});}}})[_0xf446('0x19')](function(_0x388fdc){logger[_0xf446('0x1a')](_0xf446('0x1b'),_0x388fdc?util[_0xf446('0x1c')](_0x388fdc,{'showHidden':![],'depth':null}):'');});}exports[_0xf446('0x1d')]=function(){setInterval(function(){return closeInteractions();},0x3c*0x3e8);return closeInteractions();};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb1ad=['Innocenzo','Biondo','@xcally.com','CmContact','destroy','then','bulkCreate','log','finished\x20populating','contacts1','CmHopper','hopper1','contacts2','hopper2','../mysqldb','push','now'];(function(_0x155482,_0x203238){var _0x3d7cbe=function(_0x39c245){while(--_0x39c245){_0x155482['push'](_0x155482['shift']());}};_0x3d7cbe(++_0x203238);}(_0xb1ad,0x162));var _0xdb1a=function(_0x55abd9,_0x1148af){_0x55abd9=_0x55abd9-0x0;var _0x3e5669=_0xb1ad[_0x55abd9];return _0x3e5669;};'use strict';var util=require('util');var db=require(_0xdb1a('0x0'))['db'];var contacts=[];var hopper=[];var contacts2=[];var hopper2=[];for(var i=0x1;i<=0x4b0;i+=0x1){contacts['push']({'id':i,'firstName':'Innocenzo'+i,'lastName':'Biondo'+i,'phone':0xf879fb460+i,'email':'innocenzo.biondo'+i+'@xcally.com'});}for(var i=0x1;i<=0x4b0;i+=0x1){hopper[_0xdb1a('0x1')]({'id':i,'active':![],'scheduledat':Date[_0xdb1a('0x2')](),'countbusyretry':0x0,'countcongestionretry':0x0,'countnoanswerretry':0x0,'ContactId':i,'ListId':0x1,'UserId':0x1,'VoiceQueueId':0x3fd,'createdAt':Date['now'](),'updatedAt':Date[_0xdb1a('0x2')]()});}for(var i=0x4b1;i<=0x960;i+=0x1){contacts2[_0xdb1a('0x1')]({'id':i,'firstName':_0xdb1a('0x3')+i,'lastName':_0xdb1a('0x4')+i,'phone':0xf879fb460+i,'email':'innocenzo.biondo'+i+_0xdb1a('0x5')});}for(var i=0x4b1;i<=0x960;i+=0x1){hopper2[_0xdb1a('0x1')]({'id':i,'active':![],'scheduledat':Date[_0xdb1a('0x2')](),'countbusyretry':0x0,'countcongestionretry':0x0,'countnoanswerretry':0x0,'ContactId':i,'ListId':0x1,'UserId':0x1,'VoiceQueueId':0x3fd,'createdAt':Date['now'](),'updatedAt':Date[_0xdb1a('0x2')]()});}db[_0xdb1a('0x6')][_0xdb1a('0x7')]({'where':{}})[_0xdb1a('0x8')](function(){return db['CmContact'][_0xdb1a('0x9')](contacts);})[_0xdb1a('0x8')](function(){console[_0xdb1a('0xa')](_0xdb1a('0xb'),_0xdb1a('0xc'));return db['CmHopper'][_0xdb1a('0x7')]({'where':{}});})[_0xdb1a('0x8')](function(){return db[_0xdb1a('0xd')][_0xdb1a('0x9')](hopper);})['then'](function(){console[_0xdb1a('0xa')](_0xdb1a('0xb'),_0xdb1a('0xe'));return db[_0xdb1a('0x6')][_0xdb1a('0x9')](contacts2);})[_0xdb1a('0x8')](function(){console[_0xdb1a('0xa')]('finished\x20populating',_0xdb1a('0xf'));return db[_0xdb1a('0xd')]['bulkCreate'](hopper2);})[_0xdb1a('0x8')](function(){console[_0xdb1a('0xa')]('finished\x20populating',_0xdb1a('0x10'));})['catch'](function(_0x4798f9){console[_0xdb1a('0xa')](_0x4798f9);});
\ No newline at end of file
+var _0xc5ef=['CmContact','bulkCreate','finished\x20populating','contacts1','CmHopper','then','log','contacts2','hopper2','util','../mysqldb','push','Innocenzo','Biondo','innocenzo.biondo','now','@xcally.com'];(function(_0x2a3a1e,_0x391126){var _0x417a1c=function(_0x466fc6){while(--_0x466fc6){_0x2a3a1e['push'](_0x2a3a1e['shift']());}};_0x417a1c(++_0x391126);}(_0xc5ef,0x80));var _0xfc5e=function(_0x5f0089,_0x227e2c){_0x5f0089=_0x5f0089-0x0;var _0x193892=_0xc5ef[_0x5f0089];return _0x193892;};'use strict';var util=require(_0xfc5e('0x0'));var db=require(_0xfc5e('0x1'))['db'];var contacts=[];var hopper=[];var contacts2=[];var hopper2=[];for(var i=0x1;i<=0x4b0;i+=0x1){contacts[_0xfc5e('0x2')]({'id':i,'firstName':_0xfc5e('0x3')+i,'lastName':_0xfc5e('0x4')+i,'phone':0xf879fb460+i,'email':_0xfc5e('0x5')+i+'@xcally.com'});}for(var i=0x1;i<=0x4b0;i+=0x1){hopper[_0xfc5e('0x2')]({'id':i,'active':![],'scheduledat':Date[_0xfc5e('0x6')](),'countbusyretry':0x0,'countcongestionretry':0x0,'countnoanswerretry':0x0,'ContactId':i,'ListId':0x1,'UserId':0x1,'VoiceQueueId':0x3fd,'createdAt':Date[_0xfc5e('0x6')](),'updatedAt':Date[_0xfc5e('0x6')]()});}for(var i=0x4b1;i<=0x960;i+=0x1){contacts2[_0xfc5e('0x2')]({'id':i,'firstName':_0xfc5e('0x3')+i,'lastName':'Biondo'+i,'phone':0xf879fb460+i,'email':_0xfc5e('0x5')+i+_0xfc5e('0x7')});}for(var i=0x4b1;i<=0x960;i+=0x1){hopper2['push']({'id':i,'active':![],'scheduledat':Date[_0xfc5e('0x6')](),'countbusyretry':0x0,'countcongestionretry':0x0,'countnoanswerretry':0x0,'ContactId':i,'ListId':0x1,'UserId':0x1,'VoiceQueueId':0x3fd,'createdAt':Date[_0xfc5e('0x6')](),'updatedAt':Date[_0xfc5e('0x6')]()});}db[_0xfc5e('0x8')]['destroy']({'where':{}})['then'](function(){return db[_0xfc5e('0x8')][_0xfc5e('0x9')](contacts);})['then'](function(){console['log'](_0xfc5e('0xa'),_0xfc5e('0xb'));return db[_0xfc5e('0xc')]['destroy']({'where':{}});})[_0xfc5e('0xd')](function(){return db[_0xfc5e('0xc')]['bulkCreate'](hopper);})[_0xfc5e('0xd')](function(){console[_0xfc5e('0xe')](_0xfc5e('0xa'),'hopper1');return db[_0xfc5e('0x8')][_0xfc5e('0x9')](contacts2);})[_0xfc5e('0xd')](function(){console[_0xfc5e('0xe')](_0xfc5e('0xa'),_0xfc5e('0xf'));return db[_0xfc5e('0xc')][_0xfc5e('0x9')](hopper2);})['then'](function(){console[_0xfc5e('0xe')](_0xfc5e('0xa'),_0xfc5e('0x10'));})['catch'](function(_0x3c2510){console[_0xfc5e('0xe')](_0x3c2510);});
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x527b=['log','add\x20user','util','../mysqldb','push','format','%s%s','agent','%s%s@xcally.com','password','friend','wss','all','ulaw','yes','/etc/pki/tls/certs/motion.crt','User','bulkCreate'];(function(_0x58afd5,_0x534a48){var _0x3e503b=function(_0x27ba44){while(--_0x27ba44){_0x58afd5['push'](_0x58afd5['shift']());}};_0x3e503b(++_0x534a48);}(_0x527b,0x146));var _0xb527=function(_0x1443eb,_0x203408){_0x1443eb=_0x1443eb-0x0;var _0x2b8810=_0x527b[_0x1443eb];return _0x2b8810;};'use strict';var util=require(_0xb527('0x0'));var db=require(_0xb527('0x1'))['db'];var users=[];for(var i=0x1;i<=0xc8;i+=0x1){users[_0xb527('0x2')]({'name':util[_0xb527('0x3')](_0xb527('0x4'),_0xb527('0x5'),i),'fullname':util[_0xb527('0x3')](_0xb527('0x4'),_0xb527('0x5'),i),'email':util[_0xb527('0x3')](_0xb527('0x6'),_0xb527('0x5'),i),'role':_0xb527('0x5'),'password':_0xb527('0x7'),'internal':0xfa0+i,'type':_0xb527('0x8'),'transport':['udp','ws',_0xb527('0x9')],'disallow':[_0xb527('0xa')],'allow':[_0xb527('0xb')],'defaultuser':util[_0xb527('0x3')](_0xb527('0x4'),_0xb527('0x5'),i),'encryption':_0xb527('0xc'),'avpf':_0xb527('0xc'),'force_avp':'yes','icesupport':_0xb527('0xc'),'dtlsenable':'yes','dtlsverify':'no','dtlscertfile':_0xb527('0xd'),'dtlsprivatekey':'/etc/pki/tls/private/motion.key','dtlssetup':'actpass','callerid':util[_0xb527('0x3')]('\x22%s\x22\x20<%s>',util['format'](_0xb527('0x4'),_0xb527('0x5'),i),0xfa0+i)});}db[_0xb527('0xe')][_0xb527('0xf')](users)['then'](function(){console[_0xb527('0x10')](_0xb527('0x11'));})['catch'](function(_0x26a77d){console[_0xb527('0x10')](_0x26a77d);});
\ No newline at end of file
+var _0x4f28=['%s%s','%s%s@xcally.com','password','friend','udp','wss','ulaw','yes','/etc/pki/tls/certs/motion.crt','/etc/pki/tls/private/motion.key','actpass','\x22%s\x22\x20<%s>','bulkCreate','then','log','add\x20user','../mysqldb','push','format','agent'];(function(_0x370852,_0x2c7e62){var _0x40cc7e=function(_0x34a439){while(--_0x34a439){_0x370852['push'](_0x370852['shift']());}};_0x40cc7e(++_0x2c7e62);}(_0x4f28,0x1f0));var _0x84f2=function(_0x57645b,_0x25f73a){_0x57645b=_0x57645b-0x0;var _0xe82f00=_0x4f28[_0x57645b];return _0xe82f00;};'use strict';var util=require('util');var db=require(_0x84f2('0x0'))['db'];var users=[];for(var i=0x1;i<=0xc8;i+=0x1){users[_0x84f2('0x1')]({'name':util[_0x84f2('0x2')]('%s%s',_0x84f2('0x3'),i),'fullname':util[_0x84f2('0x2')](_0x84f2('0x4'),'agent',i),'email':util[_0x84f2('0x2')](_0x84f2('0x5'),'agent',i),'role':_0x84f2('0x3'),'password':_0x84f2('0x6'),'internal':0xfa0+i,'type':_0x84f2('0x7'),'transport':[_0x84f2('0x8'),'ws',_0x84f2('0x9')],'disallow':['all'],'allow':[_0x84f2('0xa')],'defaultuser':util['format']('%s%s','agent',i),'encryption':'yes','avpf':_0x84f2('0xb'),'force_avp':_0x84f2('0xb'),'icesupport':_0x84f2('0xb'),'dtlsenable':'yes','dtlsverify':'no','dtlscertfile':_0x84f2('0xc'),'dtlsprivatekey':_0x84f2('0xd'),'dtlssetup':_0x84f2('0xe'),'callerid':util[_0x84f2('0x2')](_0x84f2('0xf'),util[_0x84f2('0x2')]('%s%s','agent',i),0xfa0+i)});}db['User'][_0x84f2('0x10')](users)[_0x84f2('0x11')](function(){console[_0x84f2('0x12')](_0x84f2('0x13'));})['catch'](function(_0x14df9c){console[_0x84f2('0x12')](_0x14df9c);});
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa413=['trunk:%s','campaign:%s:%s','leave','removeChatInteractions','emit','user_has_chat_interactions:remove','user_has_mail_interactions:remove','removeFaxInteractions','user_has_fax_interactions:remove','removeSmsInteractions','user_has_sms_interactions:remove','user_has_openchannel_interactions:remove','removeWhatsappInteractions','catch','log','join','default','connection','setMaxListeners','address','request','SocketIO\x20','disconnect','DISCONNECTED','CONNECTED','lodash','bluebird','./environment','name','role','agent','telephone','type','ivr','then','autoAssociation','ChatQueues','FaxQueues','MailQueues','OpenchannelQueues','WhatsappQueues','findAll','Telephones','Trunks','IvrCampaigns','UserProfileResource','resourceId','map','User','where','Campaign','format','Agents','length','handshake','find','userProfileId','query','ChatInteraction','MailInteraction','MailInteractions','FaxInteractions','SmsInteractions','OpenchannelInteractions','WhatsappInteractions','user:%s','admin','voice:inbound','voice:outbound','hasOwnProperty','include','ChatQueue','push','FaxQueue','MailQueue','OpenchannelQueue','WhatsappQueue','Trunk','user','VoiceQueue','getChatQueues','getFaxQueues','getSmsQueues','getMailQueues','getOpenchannelQueues','getWhatsappQueues','all','voice','chat','openchannel','whatsapp','telephone:%s'];(function(_0x153759,_0xf840bd){var _0x459c58=function(_0x82399b){while(--_0x82399b){_0x153759['push'](_0x153759['shift']());}};_0x459c58(++_0xf840bd);}(_0xa413,0x1e5));var _0x3a41=function(_0x39cf9a,_0x5e2c7a){_0x39cf9a=_0x39cf9a-0x0;var _0x2b0c95=_0xa413[_0x39cf9a];return _0x2b0c95;};'use strict';var _=require(_0x3a41('0x0'));var util=require('util');var BPromise=require(_0x3a41('0x1'));var db=require('../mysqldb')['db'];var config=require(_0x3a41('0x2'));var queryQueues={'attributes':['id',_0x3a41('0x3')],'include':[{'as':'Agents','model':db['User'],'attributes':['id',_0x3a41('0x3'),_0x3a41('0x4')],'raw':!![],'where':{'role':_0x3a41('0x5')},'required':![]}]};var queryTelephones={'raw':!![],'attributes':['id',_0x3a41('0x3')],'where':{'role':_0x3a41('0x6')}};var queryTrunks={'raw':!![],'attributes':['id',_0x3a41('0x3')]};var queryAgents={'raw':!![],'attributes':['id',_0x3a41('0x3')],'where':{'role':_0x3a41('0x5')}};var queryCampaigns={'raw':!![],'attributes':['id',_0x3a41('0x3'),_0x3a41('0x7')],'where':{'type':_0x3a41('0x8')}};function getAssociatedResources(_0x5a3e2e,_0x162aaa,_0x570304){return db['UserProfileSection']['findOne']({'where':{'name':_0x5a3e2e,'userProfileId':_0x162aaa},'raw':!![]})[_0x3a41('0x9')](function(_0x57ef75){if(_0x57ef75){if(_0x57ef75[_0x3a41('0xa')]){switch(_0x5a3e2e){case'VoiceQueues':case _0x3a41('0xb'):case _0x3a41('0xc'):case'SmsQueues':case _0x3a41('0xd'):case _0x3a41('0xe'):case _0x3a41('0xf'):return db[_0x570304][_0x3a41('0x10')](queryQueues);case _0x3a41('0x11'):return db[_0x570304]['findAll'](queryTelephones);case _0x3a41('0x12'):return db[_0x570304][_0x3a41('0x10')](queryTrunks);case _0x3a41('0x13'):return db[_0x570304][_0x3a41('0x10')](queryCampaigns);}}else{return db[_0x3a41('0x14')][_0x3a41('0x10')]({'attributes':[_0x3a41('0x15')],'where':{'sectionId':_0x57ef75['id']},'raw':!![]})[_0x3a41('0x9')](function(_0x463d5b){if(_0x463d5b){var _0x37697c={'where':{'id':_[_0x3a41('0x16')](_0x463d5b,'resourceId')},'raw':!![]};switch(_0x570304){case _0x3a41('0x17'):_0x37697c[_0x3a41('0x18')]['role']='telephone';break;case _0x3a41('0x19'):_0x37697c[_0x3a41('0x18')][_0x3a41('0x7')]=_0x3a41('0x8');break;}return db[_0x570304][_0x3a41('0x10')](_0x37697c);}else{return[];}});}}else{return[];}})[_0x3a41('0x9')](function(_0x19d41d){return _0x19d41d;});}function joinOrLeaveQueues(_0x232b8d,_0x5d816d,_0x5c2652,_0x2fa25b){_0x232b8d[_0x5d816d](util[_0x3a41('0x1a')]('%s:queue:%s',_0x5c2652,_0x2fa25b['name']));if(_0x2fa25b['Agents']){for(var _0x8629b5=0x0;_0x8629b5<_0x2fa25b[_0x3a41('0x1b')][_0x3a41('0x1c')];_0x8629b5+=0x1){_0x232b8d[_0x5d816d](util[_0x3a41('0x1a')]('user:%s',_0x2fa25b['Agents'][_0x8629b5][_0x3a41('0x3')]));}}}function joinOrLeave(_0x1ea3fe,_0x4905de,_0x383788){var _0x115b82;if(_0x1ea3fe[_0x3a41('0x1d')]['query']['id']){db[_0x3a41('0x17')][_0x3a41('0x1e')]({'attributes':['id','name',_0x3a41('0x4'),_0x3a41('0x1f')],'where':{'id':_0x1ea3fe[_0x3a41('0x1d')][_0x3a41('0x20')]['id']},'include':[{'model':db[_0x3a41('0x21')],'as':'ChatInteractions','attributes':['id'],'raw':!![]},{'model':db[_0x3a41('0x22')],'as':_0x3a41('0x23'),'attributes':['id'],'raw':!![]},{'model':db['FaxInteraction'],'as':_0x3a41('0x24'),'attributes':['id'],'raw':!![]},{'model':db['SmsInteraction'],'as':_0x3a41('0x25'),'attributes':['id'],'raw':!![]},{'model':db['OpenchannelInteraction'],'as':_0x3a41('0x26'),'attributes':['id'],'raw':!![]},{'model':db['WhatsappInteraction'],'as':_0x3a41('0x27'),'attributes':['id'],'raw':!![]}]})[_0x3a41('0x9')](function(_0x185b95){if(_0x185b95){_0x115b82=_0x185b95;_0x1ea3fe[_0x4905de](util[_0x3a41('0x1a')](_0x3a41('0x28'),_0x185b95[_0x3a41('0x3')]));var _0x9d7a22=[];switch(_0x185b95[_0x3a41('0x4')]){case _0x3a41('0x29'):_0x1ea3fe[_0x4905de](_0x3a41('0x2a'));_0x1ea3fe[_0x4905de](_0x3a41('0x2b'));if(queryQueues[_0x3a41('0x2c')](_0x3a41('0x2d'))){delete queryQueues[_0x3a41('0x2d')];}_0x9d7a22['push'](db['VoiceQueue']['findAll'](queryQueues));_0x9d7a22['push'](db[_0x3a41('0x2e')][_0x3a41('0x10')](queryQueues));_0x9d7a22[_0x3a41('0x2f')](db[_0x3a41('0x30')][_0x3a41('0x10')](queryQueues));_0x9d7a22['push'](db['SmsQueue']['findAll'](queryQueues));_0x9d7a22[_0x3a41('0x2f')](db[_0x3a41('0x31')]['findAll'](queryQueues));_0x9d7a22[_0x3a41('0x2f')](db[_0x3a41('0x32')][_0x3a41('0x10')](queryQueues));_0x9d7a22[_0x3a41('0x2f')](db[_0x3a41('0x33')][_0x3a41('0x10')](queryQueues));_0x9d7a22[_0x3a41('0x2f')](db[_0x3a41('0x17')][_0x3a41('0x10')](queryTelephones));_0x9d7a22[_0x3a41('0x2f')](db[_0x3a41('0x34')][_0x3a41('0x10')](queryTrunks));_0x9d7a22[_0x3a41('0x2f')](db[_0x3a41('0x19')][_0x3a41('0x10')](queryCampaigns));_0x9d7a22['push'](db['User'][_0x3a41('0x10')](queryAgents));break;case _0x3a41('0x35'):_0x1ea3fe[_0x4905de]('voice:inbound');_0x1ea3fe[_0x4905de](_0x3a41('0x2b'));_0x9d7a22['push'](getAssociatedResources('VoiceQueues',_0x185b95['userProfileId'],_0x3a41('0x36')));_0x9d7a22[_0x3a41('0x2f')](getAssociatedResources('ChatQueues',_0x185b95[_0x3a41('0x1f')],_0x3a41('0x2e')));_0x9d7a22['push'](getAssociatedResources(_0x3a41('0xc'),_0x185b95[_0x3a41('0x1f')],'FaxQueue'));_0x9d7a22[_0x3a41('0x2f')](getAssociatedResources('SmsQueues',_0x185b95['userProfileId'],'SmsQueue'));_0x9d7a22[_0x3a41('0x2f')](getAssociatedResources(_0x3a41('0xd'),_0x185b95['userProfileId'],_0x3a41('0x31')));_0x9d7a22[_0x3a41('0x2f')](getAssociatedResources(_0x3a41('0xe'),_0x185b95[_0x3a41('0x1f')],_0x3a41('0x32')));_0x9d7a22[_0x3a41('0x2f')](getAssociatedResources(_0x3a41('0xf'),_0x185b95[_0x3a41('0x1f')],_0x3a41('0x33')));_0x9d7a22[_0x3a41('0x2f')](getAssociatedResources(_0x3a41('0x11'),_0x185b95[_0x3a41('0x1f')],_0x3a41('0x17')));_0x9d7a22['push'](getAssociatedResources('Trunks',_0x185b95['userProfileId'],_0x3a41('0x34')));_0x9d7a22[_0x3a41('0x2f')](getAssociatedResources('IvrCampaigns',_0x185b95[_0x3a41('0x1f')],'Campaign'));_0x9d7a22[_0x3a41('0x2f')](db[_0x3a41('0x17')][_0x3a41('0x10')](queryAgents));break;case'agent':_0x1ea3fe[_0x4905de](_0x3a41('0x2a'));_0x1ea3fe[_0x4905de](_0x3a41('0x2b'));_0x9d7a22[_0x3a41('0x2f')](_0x185b95['getVoiceQueues']({'attributes':['id',_0x3a41('0x3')]}));_0x9d7a22[_0x3a41('0x2f')](_0x185b95[_0x3a41('0x37')]({'attributes':['id',_0x3a41('0x3')]}));_0x9d7a22[_0x3a41('0x2f')](_0x185b95[_0x3a41('0x38')]({'attributes':['id',_0x3a41('0x3')]}));_0x9d7a22['push'](_0x185b95[_0x3a41('0x39')]({'attributes':['id',_0x3a41('0x3')]}));_0x9d7a22[_0x3a41('0x2f')](_0x185b95[_0x3a41('0x3a')]({'attributes':['id','name']}));_0x9d7a22[_0x3a41('0x2f')](_0x185b95[_0x3a41('0x3b')]({'attributes':['id','name']}));_0x9d7a22[_0x3a41('0x2f')](_0x185b95[_0x3a41('0x3c')]({'attributes':['id',_0x3a41('0x3')]}));break;}return BPromise[_0x3a41('0x3d')](_0x9d7a22);}})[_0x3a41('0x9')](function(_0x5cbdb5){if(_0x5cbdb5&&_0x5cbdb5[_0x3a41('0x1c')]){for(var _0x4d30f6=0x0;_0x4d30f6<_0x5cbdb5['length'];_0x4d30f6+=0x1){for(var _0x2af115=0x0;_0x2af115<_0x5cbdb5[_0x4d30f6][_0x3a41('0x1c')];_0x2af115+=0x1){switch(_0x4d30f6){case 0x0:joinOrLeaveQueues(_0x1ea3fe,_0x4905de,_0x3a41('0x3e'),_0x5cbdb5[_0x4d30f6][_0x2af115]);break;case 0x1:joinOrLeaveQueues(_0x1ea3fe,_0x4905de,_0x3a41('0x3f'),_0x5cbdb5[_0x4d30f6][_0x2af115]);break;case 0x2:joinOrLeaveQueues(_0x1ea3fe,_0x4905de,'fax',_0x5cbdb5[_0x4d30f6][_0x2af115]);break;case 0x3:joinOrLeaveQueues(_0x1ea3fe,_0x4905de,'sms',_0x5cbdb5[_0x4d30f6][_0x2af115]);break;case 0x4:joinOrLeaveQueues(_0x1ea3fe,_0x4905de,'mail',_0x5cbdb5[_0x4d30f6][_0x2af115]);break;case 0x5:joinOrLeaveQueues(_0x1ea3fe,_0x4905de,_0x3a41('0x40'),_0x5cbdb5[_0x4d30f6][_0x2af115]);break;case 0x6:joinOrLeaveQueues(_0x1ea3fe,_0x4905de,_0x3a41('0x41'),_0x5cbdb5[_0x4d30f6][_0x2af115]);break;case 0x7:if(_0x115b82[_0x3a41('0x4')]!==_0x3a41('0x5'))_0x1ea3fe[_0x4905de](util[_0x3a41('0x1a')](_0x3a41('0x42'),_0x5cbdb5[_0x4d30f6][_0x2af115][_0x3a41('0x3')]));break;case 0x8:if(_0x115b82[_0x3a41('0x4')]!==_0x3a41('0x5'))_0x1ea3fe[_0x4905de](util[_0x3a41('0x1a')](_0x3a41('0x43'),_0x5cbdb5[_0x4d30f6][_0x2af115][_0x3a41('0x3')]));break;case 0x9:if(_0x115b82[_0x3a41('0x4')]!==_0x3a41('0x5'))_0x1ea3fe[_0x4905de](util['format'](_0x3a41('0x44'),_0x5cbdb5[_0x4d30f6][_0x2af115]['type'],_0x5cbdb5[_0x4d30f6][_0x2af115][_0x3a41('0x3')]));break;case 0xa:_0x1ea3fe[_0x4905de](util['format'](_0x3a41('0x28'),_0x5cbdb5[_0x4d30f6][_0x2af115]['name']));break;}}}}})[_0x3a41('0x9')](function(){if(_0x4905de===_0x3a41('0x45')){var _0x37dd8f=_[_0x3a41('0x16')](_0x115b82['ChatInteractions'],'id');return _0x115b82[_0x3a41('0x46')](_0x37dd8f)['then'](function(){for(var _0x139614=0x0;_0x139614<_0x37dd8f[_0x3a41('0x1c')];_0x139614+=0x1){_0x383788[_0x3a41('0x47')](_0x3a41('0x48'),{'ChatInteractionId':Number(_0x37dd8f[_0x139614]),'UserId':Number(_0x115b82['id'])});}});}})[_0x3a41('0x9')](function(){if(_0x4905de===_0x3a41('0x45')){var _0x31863a=_[_0x3a41('0x16')](_0x115b82[_0x3a41('0x23')],'id');return _0x115b82['removeMailInteractions'](_0x31863a)[_0x3a41('0x9')](function(){for(var _0x59ae4f=0x0;_0x59ae4f<_0x31863a[_0x3a41('0x1c')];_0x59ae4f+=0x1){_0x383788[_0x3a41('0x47')](_0x3a41('0x49'),{'MailInteractionId':Number(_0x31863a[_0x59ae4f]),'UserId':Number(_0x115b82['id'])});}});}})['then'](function(){if(_0x4905de===_0x3a41('0x45')){var _0xfdc1a7=_[_0x3a41('0x16')](_0x115b82['FaxInteractions'],'id');return _0x115b82[_0x3a41('0x4a')](_0xfdc1a7)[_0x3a41('0x9')](function(){for(var _0x1d2520=0x0;_0x1d2520<_0xfdc1a7[_0x3a41('0x1c')];_0x1d2520+=0x1){_0x383788[_0x3a41('0x47')](_0x3a41('0x4b'),{'FaxInteractionId':Number(_0xfdc1a7[_0x1d2520]),'UserId':Number(_0x115b82['id'])});}});}})[_0x3a41('0x9')](function(){if(_0x4905de===_0x3a41('0x45')){var _0x3e8f9f=_[_0x3a41('0x16')](_0x115b82['SmsInteractions'],'id');return _0x115b82[_0x3a41('0x4c')](_0x3e8f9f)[_0x3a41('0x9')](function(){for(var _0x462294=0x0;_0x462294<_0x3e8f9f[_0x3a41('0x1c')];_0x462294+=0x1){_0x383788[_0x3a41('0x47')](_0x3a41('0x4d'),{'SmsInteractionId':Number(_0x3e8f9f[_0x462294]),'UserId':Number(_0x115b82['id'])});}});}})[_0x3a41('0x9')](function(){if(_0x4905de===_0x3a41('0x45')){var _0x46cf43=_['map'](_0x115b82[_0x3a41('0x26')],'id');return _0x115b82['removeOpenchannelInteractions'](_0x46cf43)[_0x3a41('0x9')](function(){for(var _0x489038=0x0;_0x489038<_0x46cf43[_0x3a41('0x1c')];_0x489038+=0x1){_0x383788[_0x3a41('0x47')](_0x3a41('0x4e'),{'OpenchannelInteractionId':Number(_0x46cf43[_0x489038]),'UserId':Number(_0x115b82['id'])});}});}})[_0x3a41('0x9')](function(){if(_0x4905de===_0x3a41('0x45')){var _0x13e116=_[_0x3a41('0x16')](_0x115b82[_0x3a41('0x27')],'id');return _0x115b82[_0x3a41('0x4f')](_0x13e116)[_0x3a41('0x9')](function(){for(var _0x500f23=0x0;_0x500f23<_0x13e116[_0x3a41('0x1c')];_0x500f23+=0x1){_0x383788[_0x3a41('0x47')]('user_has_whatsapp_interactions:remove',{'WhatsappInteractionId':Number(_0x13e116[_0x500f23]),'UserId':Number(_0x115b82['id'])});}});}})[_0x3a41('0x50')](function(_0x1b9ecc){_0x1ea3fe[_0x3a41('0x51')](_0x1b9ecc);});}}function onDisconnect(_0x2576a8,_0x1b68bf){joinOrLeave(_0x2576a8,_0x3a41('0x45'),_0x1b68bf);}function onConnect(_0x4c05fd){joinOrLeave(_0x4c05fd,_0x3a41('0x52'));}exports[_0x3a41('0x53')]=function(_0x178c27){_0x178c27['on'](_0x3a41('0x54'),function(_0x473ac3){_0x473ac3[_0x3a41('0x55')](0x0);_0x473ac3[_0x3a41('0x56')]=_0x473ac3[_0x3a41('0x57')]['connection']['remoteAddress']+':'+_0x473ac3[_0x3a41('0x57')][_0x3a41('0x54')]['remotePort'];_0x473ac3['connectedAt']=new Date();_0x473ac3[_0x3a41('0x51')]=function(_0x24f471){console[_0x3a41('0x51')](_0x3a41('0x58')+_0x473ac3['nsp']['name']+'['+_0x473ac3[_0x3a41('0x56')]+']',_0x24f471);};_0x473ac3['on'](_0x3a41('0x59'),function(){onDisconnect(_0x473ac3,_0x178c27);_0x473ac3[_0x3a41('0x51')](_0x3a41('0x5a'));});onConnect(_0x473ac3);_0x473ac3[_0x3a41('0x51')](_0x3a41('0x5b'));});};
\ No newline at end of file
+var _0xa99b=['telephone:%s','campaign:%s:%s','map','removeChatInteractions','emit','leave','removeMailInteractions','user_has_mail_interactions:remove','FaxInteractions','SmsInteractions','removeSmsInteractions','user_has_sms_interactions:remove','OpenchannelInteractions','user_has_openchannel_interactions:remove','removeWhatsappInteractions','user_has_whatsapp_interactions:remove','catch','log','join','default','setMaxListeners','address','request','connection','remotePort','SocketIO\x20','nsp','disconnect','CONNECTED','lodash','bluebird','name','User','role','agent','type','ivr','UserProfileSection','findOne','then','autoAssociation','FaxQueues','SmsQueues','MailQueues','WhatsappQueues','findAll','UserProfileResource','resourceId','where','telephone','Campaign','format','%s:queue:%s','Agents','length','query','find','handshake','ChatInteractions','MailInteraction','MailInteractions','FaxInteraction','OpenchannelInteraction','WhatsappInteraction','WhatsappInteractions','user:%s','voice:outbound','hasOwnProperty','include','push','VoiceQueue','FaxQueue','SmsQueue','MailQueue','OpenchannelQueue','WhatsappQueue','Trunk','VoiceQueues','userProfileId','ChatQueue','OpenchannelQueues','Telephones','Trunks','IvrCampaigns','voice:inbound','getChatQueues','getFaxQueues','getSmsQueues','getMailQueues','voice','chat','sms','openchannel','whatsapp'];(function(_0x2e9ded,_0x235e2b){var _0xc88a61=function(_0x1baa4b){while(--_0x1baa4b){_0x2e9ded['push'](_0x2e9ded['shift']());}};_0xc88a61(++_0x235e2b);}(_0xa99b,0x1f3));var _0xba99=function(_0x174ef5,_0x256e8e){_0x174ef5=_0x174ef5-0x0;var _0x1cc379=_0xa99b[_0x174ef5];return _0x1cc379;};'use strict';var _=require(_0xba99('0x0'));var util=require('util');var BPromise=require(_0xba99('0x1'));var db=require('../mysqldb')['db'];var config=require('./environment');var queryQueues={'attributes':['id',_0xba99('0x2')],'include':[{'as':'Agents','model':db[_0xba99('0x3')],'attributes':['id',_0xba99('0x2'),_0xba99('0x4')],'raw':!![],'where':{'role':_0xba99('0x5')},'required':![]}]};var queryTelephones={'raw':!![],'attributes':['id',_0xba99('0x2')],'where':{'role':'telephone'}};var queryTrunks={'raw':!![],'attributes':['id',_0xba99('0x2')]};var queryAgents={'raw':!![],'attributes':['id',_0xba99('0x2')],'where':{'role':'agent'}};var queryCampaigns={'raw':!![],'attributes':['id','name',_0xba99('0x6')],'where':{'type':_0xba99('0x7')}};function getAssociatedResources(_0x47d511,_0x356f0d,_0x210574){return db[_0xba99('0x8')][_0xba99('0x9')]({'where':{'name':_0x47d511,'userProfileId':_0x356f0d},'raw':!![]})[_0xba99('0xa')](function(_0x3b878d){if(_0x3b878d){if(_0x3b878d[_0xba99('0xb')]){switch(_0x47d511){case'VoiceQueues':case'ChatQueues':case _0xba99('0xc'):case _0xba99('0xd'):case _0xba99('0xe'):case'OpenchannelQueues':case _0xba99('0xf'):return db[_0x210574][_0xba99('0x10')](queryQueues);case'Telephones':return db[_0x210574][_0xba99('0x10')](queryTelephones);case'Trunks':return db[_0x210574][_0xba99('0x10')](queryTrunks);case'IvrCampaigns':return db[_0x210574][_0xba99('0x10')](queryCampaigns);}}else{return db[_0xba99('0x11')][_0xba99('0x10')]({'attributes':['resourceId'],'where':{'sectionId':_0x3b878d['id']},'raw':!![]})[_0xba99('0xa')](function(_0x397ece){if(_0x397ece){var _0x3b418e={'where':{'id':_['map'](_0x397ece,_0xba99('0x12'))},'raw':!![]};switch(_0x210574){case _0xba99('0x3'):_0x3b418e[_0xba99('0x13')][_0xba99('0x4')]=_0xba99('0x14');break;case _0xba99('0x15'):_0x3b418e[_0xba99('0x13')][_0xba99('0x6')]=_0xba99('0x7');break;}return db[_0x210574][_0xba99('0x10')](_0x3b418e);}else{return[];}});}}else{return[];}})[_0xba99('0xa')](function(_0x2ff905){return _0x2ff905;});}function joinOrLeaveQueues(_0x1781cf,_0x3667b7,_0x2150c9,_0x44980a){_0x1781cf[_0x3667b7](util[_0xba99('0x16')](_0xba99('0x17'),_0x2150c9,_0x44980a[_0xba99('0x2')]));if(_0x44980a[_0xba99('0x18')]){for(var _0x4a5cb8=0x0;_0x4a5cb8<_0x44980a[_0xba99('0x18')][_0xba99('0x19')];_0x4a5cb8+=0x1){_0x1781cf[_0x3667b7](util[_0xba99('0x16')]('user:%s',_0x44980a[_0xba99('0x18')][_0x4a5cb8][_0xba99('0x2')]));}}}function joinOrLeave(_0x342215,_0x2c7aa3,_0x1f6761){var _0xfe1915;if(_0x342215['handshake'][_0xba99('0x1a')]['id']){db[_0xba99('0x3')][_0xba99('0x1b')]({'attributes':['id',_0xba99('0x2'),_0xba99('0x4'),'userProfileId'],'where':{'id':_0x342215[_0xba99('0x1c')][_0xba99('0x1a')]['id']},'include':[{'model':db['ChatInteraction'],'as':_0xba99('0x1d'),'attributes':['id'],'raw':!![]},{'model':db[_0xba99('0x1e')],'as':_0xba99('0x1f'),'attributes':['id'],'raw':!![]},{'model':db[_0xba99('0x20')],'as':'FaxInteractions','attributes':['id'],'raw':!![]},{'model':db['SmsInteraction'],'as':'SmsInteractions','attributes':['id'],'raw':!![]},{'model':db[_0xba99('0x21')],'as':'OpenchannelInteractions','attributes':['id'],'raw':!![]},{'model':db[_0xba99('0x22')],'as':_0xba99('0x23'),'attributes':['id'],'raw':!![]}]})[_0xba99('0xa')](function(_0x5f1007){if(_0x5f1007){_0xfe1915=_0x5f1007;_0x342215[_0x2c7aa3](util['format'](_0xba99('0x24'),_0x5f1007[_0xba99('0x2')]));var _0x2689ec=[];switch(_0x5f1007['role']){case'admin':_0x342215[_0x2c7aa3]('voice:inbound');_0x342215[_0x2c7aa3](_0xba99('0x25'));if(queryQueues[_0xba99('0x26')]('include')){delete queryQueues[_0xba99('0x27')];}_0x2689ec[_0xba99('0x28')](db[_0xba99('0x29')][_0xba99('0x10')](queryQueues));_0x2689ec[_0xba99('0x28')](db['ChatQueue'][_0xba99('0x10')](queryQueues));_0x2689ec[_0xba99('0x28')](db[_0xba99('0x2a')][_0xba99('0x10')](queryQueues));_0x2689ec[_0xba99('0x28')](db[_0xba99('0x2b')]['findAll'](queryQueues));_0x2689ec['push'](db[_0xba99('0x2c')][_0xba99('0x10')](queryQueues));_0x2689ec[_0xba99('0x28')](db[_0xba99('0x2d')][_0xba99('0x10')](queryQueues));_0x2689ec['push'](db[_0xba99('0x2e')][_0xba99('0x10')](queryQueues));_0x2689ec['push'](db[_0xba99('0x3')][_0xba99('0x10')](queryTelephones));_0x2689ec[_0xba99('0x28')](db[_0xba99('0x2f')][_0xba99('0x10')](queryTrunks));_0x2689ec[_0xba99('0x28')](db[_0xba99('0x15')][_0xba99('0x10')](queryCampaigns));_0x2689ec[_0xba99('0x28')](db['User']['findAll'](queryAgents));break;case'user':_0x342215[_0x2c7aa3]('voice:inbound');_0x342215[_0x2c7aa3](_0xba99('0x25'));_0x2689ec[_0xba99('0x28')](getAssociatedResources(_0xba99('0x30'),_0x5f1007[_0xba99('0x31')],'VoiceQueue'));_0x2689ec[_0xba99('0x28')](getAssociatedResources('ChatQueues',_0x5f1007[_0xba99('0x31')],_0xba99('0x32')));_0x2689ec['push'](getAssociatedResources(_0xba99('0xc'),_0x5f1007['userProfileId'],_0xba99('0x2a')));_0x2689ec[_0xba99('0x28')](getAssociatedResources(_0xba99('0xd'),_0x5f1007['userProfileId'],_0xba99('0x2b')));_0x2689ec['push'](getAssociatedResources(_0xba99('0xe'),_0x5f1007[_0xba99('0x31')],'MailQueue'));_0x2689ec[_0xba99('0x28')](getAssociatedResources(_0xba99('0x33'),_0x5f1007[_0xba99('0x31')],_0xba99('0x2d')));_0x2689ec[_0xba99('0x28')](getAssociatedResources(_0xba99('0xf'),_0x5f1007[_0xba99('0x31')],'WhatsappQueue'));_0x2689ec['push'](getAssociatedResources(_0xba99('0x34'),_0x5f1007[_0xba99('0x31')],_0xba99('0x3')));_0x2689ec[_0xba99('0x28')](getAssociatedResources(_0xba99('0x35'),_0x5f1007[_0xba99('0x31')],'Trunk'));_0x2689ec[_0xba99('0x28')](getAssociatedResources(_0xba99('0x36'),_0x5f1007['userProfileId'],_0xba99('0x15')));_0x2689ec[_0xba99('0x28')](db[_0xba99('0x3')][_0xba99('0x10')](queryAgents));break;case'agent':_0x342215[_0x2c7aa3](_0xba99('0x37'));_0x342215[_0x2c7aa3](_0xba99('0x25'));_0x2689ec[_0xba99('0x28')](_0x5f1007['getVoiceQueues']({'attributes':['id','name']}));_0x2689ec[_0xba99('0x28')](_0x5f1007[_0xba99('0x38')]({'attributes':['id',_0xba99('0x2')]}));_0x2689ec[_0xba99('0x28')](_0x5f1007[_0xba99('0x39')]({'attributes':['id',_0xba99('0x2')]}));_0x2689ec[_0xba99('0x28')](_0x5f1007[_0xba99('0x3a')]({'attributes':['id',_0xba99('0x2')]}));_0x2689ec['push'](_0x5f1007[_0xba99('0x3b')]({'attributes':['id',_0xba99('0x2')]}));_0x2689ec[_0xba99('0x28')](_0x5f1007['getOpenchannelQueues']({'attributes':['id',_0xba99('0x2')]}));_0x2689ec[_0xba99('0x28')](_0x5f1007['getWhatsappQueues']({'attributes':['id','name']}));break;}return BPromise['all'](_0x2689ec);}})[_0xba99('0xa')](function(_0x5ae40e){if(_0x5ae40e&&_0x5ae40e[_0xba99('0x19')]){for(var _0xaba742=0x0;_0xaba742<_0x5ae40e['length'];_0xaba742+=0x1){for(var _0x194d8b=0x0;_0x194d8b<_0x5ae40e[_0xaba742][_0xba99('0x19')];_0x194d8b+=0x1){switch(_0xaba742){case 0x0:joinOrLeaveQueues(_0x342215,_0x2c7aa3,_0xba99('0x3c'),_0x5ae40e[_0xaba742][_0x194d8b]);break;case 0x1:joinOrLeaveQueues(_0x342215,_0x2c7aa3,_0xba99('0x3d'),_0x5ae40e[_0xaba742][_0x194d8b]);break;case 0x2:joinOrLeaveQueues(_0x342215,_0x2c7aa3,'fax',_0x5ae40e[_0xaba742][_0x194d8b]);break;case 0x3:joinOrLeaveQueues(_0x342215,_0x2c7aa3,_0xba99('0x3e'),_0x5ae40e[_0xaba742][_0x194d8b]);break;case 0x4:joinOrLeaveQueues(_0x342215,_0x2c7aa3,'mail',_0x5ae40e[_0xaba742][_0x194d8b]);break;case 0x5:joinOrLeaveQueues(_0x342215,_0x2c7aa3,_0xba99('0x3f'),_0x5ae40e[_0xaba742][_0x194d8b]);break;case 0x6:joinOrLeaveQueues(_0x342215,_0x2c7aa3,_0xba99('0x40'),_0x5ae40e[_0xaba742][_0x194d8b]);break;case 0x7:if(_0xfe1915[_0xba99('0x4')]!=='agent')_0x342215[_0x2c7aa3](util[_0xba99('0x16')](_0xba99('0x41'),_0x5ae40e[_0xaba742][_0x194d8b][_0xba99('0x2')]));break;case 0x8:if(_0xfe1915['role']!==_0xba99('0x5'))_0x342215[_0x2c7aa3](util[_0xba99('0x16')]('trunk:%s',_0x5ae40e[_0xaba742][_0x194d8b][_0xba99('0x2')]));break;case 0x9:if(_0xfe1915[_0xba99('0x4')]!==_0xba99('0x5'))_0x342215[_0x2c7aa3](util[_0xba99('0x16')](_0xba99('0x42'),_0x5ae40e[_0xaba742][_0x194d8b][_0xba99('0x6')],_0x5ae40e[_0xaba742][_0x194d8b][_0xba99('0x2')]));break;case 0xa:_0x342215[_0x2c7aa3](util['format'](_0xba99('0x24'),_0x5ae40e[_0xaba742][_0x194d8b]['name']));break;}}}}})[_0xba99('0xa')](function(){if(_0x2c7aa3==='leave'){var _0x21b268=_[_0xba99('0x43')](_0xfe1915[_0xba99('0x1d')],'id');return _0xfe1915[_0xba99('0x44')](_0x21b268)['then'](function(){for(var _0x14026a=0x0;_0x14026a<_0x21b268[_0xba99('0x19')];_0x14026a+=0x1){_0x1f6761[_0xba99('0x45')]('user_has_chat_interactions:remove',{'ChatInteractionId':Number(_0x21b268[_0x14026a]),'UserId':Number(_0xfe1915['id'])});}});}})['then'](function(){if(_0x2c7aa3===_0xba99('0x46')){var _0x3e5cef=_[_0xba99('0x43')](_0xfe1915[_0xba99('0x1f')],'id');return _0xfe1915[_0xba99('0x47')](_0x3e5cef)[_0xba99('0xa')](function(){for(var _0x220228=0x0;_0x220228<_0x3e5cef[_0xba99('0x19')];_0x220228+=0x1){_0x1f6761[_0xba99('0x45')](_0xba99('0x48'),{'MailInteractionId':Number(_0x3e5cef[_0x220228]),'UserId':Number(_0xfe1915['id'])});}});}})['then'](function(){if(_0x2c7aa3==='leave'){var _0x541e2d=_[_0xba99('0x43')](_0xfe1915[_0xba99('0x49')],'id');return _0xfe1915['removeFaxInteractions'](_0x541e2d)[_0xba99('0xa')](function(){for(var _0x713249=0x0;_0x713249<_0x541e2d[_0xba99('0x19')];_0x713249+=0x1){_0x1f6761[_0xba99('0x45')]('user_has_fax_interactions:remove',{'FaxInteractionId':Number(_0x541e2d[_0x713249]),'UserId':Number(_0xfe1915['id'])});}});}})[_0xba99('0xa')](function(){if(_0x2c7aa3===_0xba99('0x46')){var _0x723029=_[_0xba99('0x43')](_0xfe1915[_0xba99('0x4a')],'id');return _0xfe1915[_0xba99('0x4b')](_0x723029)[_0xba99('0xa')](function(){for(var _0x5afc0c=0x0;_0x5afc0c<_0x723029[_0xba99('0x19')];_0x5afc0c+=0x1){_0x1f6761[_0xba99('0x45')](_0xba99('0x4c'),{'SmsInteractionId':Number(_0x723029[_0x5afc0c]),'UserId':Number(_0xfe1915['id'])});}});}})['then'](function(){if(_0x2c7aa3===_0xba99('0x46')){var _0x4bcc98=_[_0xba99('0x43')](_0xfe1915[_0xba99('0x4d')],'id');return _0xfe1915['removeOpenchannelInteractions'](_0x4bcc98)[_0xba99('0xa')](function(){for(var _0x1885bd=0x0;_0x1885bd<_0x4bcc98[_0xba99('0x19')];_0x1885bd+=0x1){_0x1f6761[_0xba99('0x45')](_0xba99('0x4e'),{'OpenchannelInteractionId':Number(_0x4bcc98[_0x1885bd]),'UserId':Number(_0xfe1915['id'])});}});}})[_0xba99('0xa')](function(){if(_0x2c7aa3===_0xba99('0x46')){var _0x2792af=_[_0xba99('0x43')](_0xfe1915['WhatsappInteractions'],'id');return _0xfe1915[_0xba99('0x4f')](_0x2792af)[_0xba99('0xa')](function(){for(var _0xfd76a=0x0;_0xfd76a<_0x2792af[_0xba99('0x19')];_0xfd76a+=0x1){_0x1f6761[_0xba99('0x45')](_0xba99('0x50'),{'WhatsappInteractionId':Number(_0x2792af[_0xfd76a]),'UserId':Number(_0xfe1915['id'])});}});}})[_0xba99('0x51')](function(_0x16b8fb){_0x342215[_0xba99('0x52')](_0x16b8fb);});}}function onDisconnect(_0x112fa4,_0x233f16){joinOrLeave(_0x112fa4,_0xba99('0x46'),_0x233f16);}function onConnect(_0x58e453){joinOrLeave(_0x58e453,_0xba99('0x53'));}exports[_0xba99('0x54')]=function(_0x29f722){_0x29f722['on']('connection',function(_0x187223){_0x187223[_0xba99('0x55')](0x0);_0x187223[_0xba99('0x56')]=_0x187223[_0xba99('0x57')][_0xba99('0x58')]['remoteAddress']+':'+_0x187223[_0xba99('0x57')][_0xba99('0x58')][_0xba99('0x59')];_0x187223['connectedAt']=new Date();_0x187223[_0xba99('0x52')]=function(_0x54353a){console[_0xba99('0x52')](_0xba99('0x5a')+_0x187223[_0xba99('0x5b')][_0xba99('0x2')]+'['+_0x187223[_0xba99('0x56')]+']',_0x54353a);};_0x187223['on'](_0xba99('0x5c'),function(){onDisconnect(_0x187223,_0x29f722);_0x187223[_0xba99('0x52')]('DISCONNECTED');});onConnect(_0x187223);_0x187223[_0xba99('0x52')](_0xba99('0x5d'));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x988d=['SELECT','name','AfterCreate','changed','closed','substatus','motionChannel','Sequelize','QueryTypes','AfterUpdate','find','fullname','internal','length','hasOwnProperty','model','callback','toLowerCase','condition','util','jayson/promise','../logger','triggers','Chat','ChatInteraction','afterCreate','newinteraction','closedinteraction','ChatMessage','Sms','SmsInteraction','afterUpdate','SmsMessage','Whatsapp','WhatsappInteraction','WhatsappMessage','Fax','FaxInteraction','FaxMessage','newmessage','Mail','MailInteraction','Openchannel','OpenchannelInteraction','OpenchannelMessage','request','then','info','Trigger,\x20%s','EventManager','error','code','catch','event','resolve','ContactId','undefined','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','query','contact','UserId','interface','format','agent','channel','incomingmessage','outgoingmessage','AfterCreateMessage'];(function(_0x2efb77,_0x34443d){var _0x38fcb3=function(_0x1f1571){while(--_0x1f1571){_0x2efb77['push'](_0x2efb77['shift']());}};_0x38fcb3(++_0x34443d);}(_0x988d,0x16c));var _0xd988=function(_0x572674,_0x2891a7){_0x572674=_0x572674-0x0;var _0x1228a7=_0x988d[_0x572674];return _0x1228a7;};'use strict';var util=require(_0xd988('0x0'));var db=require('../../mysqldb')['db'];var jayson=require(_0xd988('0x1'));var logger=require(_0xd988('0x2'))(_0xd988('0x3'));var client=jayson['client']['http']({'port':0x232a});var triggers=[{'channel':_0xd988('0x4'),'model':_0xd988('0x5'),'event':_0xd988('0x6'),'condition':_0xd988('0x7'),'callback':afterCreate},{'channel':'Chat','model':_0xd988('0x5'),'event':'afterUpdate','condition':_0xd988('0x8'),'callback':afterUpdate},{'channel':_0xd988('0x4'),'model':_0xd988('0x9'),'event':_0xd988('0x6'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0xd988('0xa'),'model':'SmsInteraction','event':_0xd988('0x6'),'condition':'newinteraction','callback':afterCreate},{'channel':'Sms','model':_0xd988('0xb'),'event':_0xd988('0xc'),'condition':_0xd988('0x8'),'callback':afterUpdate},{'channel':'Sms','model':_0xd988('0xd'),'event':_0xd988('0x6'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0xd988('0xe'),'model':'WhatsappInteraction','event':_0xd988('0x6'),'condition':_0xd988('0x7'),'callback':afterCreate},{'channel':'Whatsapp','model':_0xd988('0xf'),'event':'afterUpdate','condition':_0xd988('0x8'),'callback':afterUpdate},{'channel':_0xd988('0xe'),'model':_0xd988('0x10'),'event':_0xd988('0x6'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0xd988('0x11'),'model':'FaxInteraction','event':_0xd988('0x6'),'condition':_0xd988('0x7'),'callback':afterCreate},{'channel':'Fax','model':_0xd988('0x12'),'event':_0xd988('0xc'),'condition':'closedinteraction','callback':afterUpdate},{'channel':'Fax','model':_0xd988('0x13'),'event':'afterCreate','condition':_0xd988('0x14'),'callback':afterCreateMessage},{'channel':_0xd988('0x15'),'model':_0xd988('0x16'),'event':'afterCreate','condition':_0xd988('0x7'),'callback':afterCreate},{'channel':_0xd988('0x15'),'model':_0xd988('0x16'),'event':'afterUpdate','condition':_0xd988('0x8'),'callback':afterUpdate},{'channel':_0xd988('0x15'),'model':'MailMessage','event':'afterCreate','condition':_0xd988('0x14'),'callback':afterCreateMessage},{'channel':_0xd988('0x17'),'model':'OpenchannelInteraction','event':_0xd988('0x6'),'condition':'newinteraction','callback':afterCreate},{'channel':_0xd988('0x17'),'model':_0xd988('0x18'),'event':_0xd988('0xc'),'condition':_0xd988('0x8'),'callback':afterUpdate},{'channel':_0xd988('0x17'),'model':_0xd988('0x19'),'event':'afterCreate','condition':'newmessage','callback':afterCreateMessage}];function request(_0xffdc2e){return client[_0xd988('0x1a')]('EventManager',_0xffdc2e)[_0xd988('0x1b')](function(_0x3bd71a){logger[_0xd988('0x1c')](_0xd988('0x1d'),_0xd988('0x1e'),_0x3bd71a);if(_0x3bd71a[_0xd988('0x1f')]){if(_0x3bd71a['error'][_0xd988('0x20')]===0x1f4){logger['error']('Trigger,\x20%s',_0xd988('0x1e'),_0x3bd71a[_0xd988('0x1f')]);}}})[_0xd988('0x21')](function(_0x5d8000){logger[_0xd988('0x1f')](_0xd988('0x1d'),'EventManager',_0x5d8000);});}function afterCreateMessage(_0x4875fd){return function(_0x3cd9f1){_0x3cd9f1=_0x3cd9f1['get']({'plain':!![]});_0x3cd9f1['channel']=_0x4875fd;_0x3cd9f1['motionChannel']=_0x4875fd;_0x3cd9f1[_0xd988('0x22')]=_0x3cd9f1['direction'];Promise[_0xd988('0x23')]()[_0xd988('0x1b')](function(){if(typeof _0x3cd9f1[_0xd988('0x24')]===_0xd988('0x25'))return null;var _0x4c0ea0=_0xd988('0x26')+_0x3cd9f1[_0xd988('0x24')];return db[_0xd988('0x27')][_0xd988('0x28')](_0x4c0ea0,{'type':db['Sequelize']['QueryTypes']['SELECT'],'raw':!![]});})['then'](function(_0x3b9ed0){if(_0x3b9ed0){_0x3cd9f1[_0xd988('0x29')]=_0x3b9ed0[0x0];}if(typeof _0x3cd9f1[_0xd988('0x2a')]===_0xd988('0x25'))return;return getAgent(_0x3cd9f1[_0xd988('0x2a')]);})['then'](function(_0x17707c){if(_0x17707c){_0x3cd9f1[_0xd988('0x2b')]=util[_0xd988('0x2c')]('SIP/%s',_0x17707c['name']);_0x3cd9f1[_0xd988('0x2d')]=_0x17707c;_0x3cd9f1[_0xd988('0x2e')]=_0x4875fd;return request({'event':_0xd988('0x2f'),'message':_0x3cd9f1});}else{return request({'event':_0xd988('0x30'),'message':_0x3cd9f1});}})[_0xd988('0x21')](function(_0x435569){logger[_0xd988('0x1f')](_0xd988('0x1d'),_0xd988('0x31'),_0x435569);});};}function afterCreate(_0x5d9f37,_0x325f7c){return function(_0x3fdbc7){_0x3fdbc7=_0x3fdbc7['get']({'plain':!![]});_0x3fdbc7[_0xd988('0x2e')]=_0x5d9f37;_0x3fdbc7['motionChannel']=_0x5d9f37;_0x3fdbc7[_0xd988('0x22')]='opened';Promise[_0xd988('0x23')]()[_0xd988('0x1b')](function(){var _0x59d07c=_0xd988('0x26')+_0x3fdbc7[_0xd988('0x24')];return db[_0xd988('0x27')][_0xd988('0x28')](_0x59d07c,{'type':db['Sequelize']['QueryTypes'][_0xd988('0x32')],'raw':!![]});})[_0xd988('0x1b')](function(_0x2b99ac){if(_0x2b99ac){_0x3fdbc7[_0xd988('0x29')]=_0x2b99ac[0x0];}if(typeof _0x3fdbc7[_0xd988('0x2a')]===_0xd988('0x25'))return;return getAgent(_0x3fdbc7['UserId']);})[_0xd988('0x1b')](function(_0x154fbc){if(_0x154fbc){_0x3fdbc7[_0xd988('0x2b')]=util[_0xd988('0x2c')]('SIP/%s',_0x154fbc[_0xd988('0x33')]);_0x3fdbc7[_0xd988('0x2d')]=_0x154fbc;}return request({'event':_0x325f7c,'message':_0x3fdbc7});})[_0xd988('0x21')](function(_0x568e1b){logger[_0xd988('0x1f')](_0xd988('0x1d'),_0xd988('0x34'),_0x568e1b);});};}function afterUpdate(_0x4dfc4b){return function(_0x16ab5d){var _0x427a22=_0x16ab5d[_0xd988('0x35')](_0xd988('0x36'))&&_0x16ab5d['closed'];var _0x2f9032=_0x16ab5d[_0xd988('0x35')](_0xd988('0x37'));if(_0x427a22||_0x2f9032){var _0x12b021=_0x427a22?_0xd988('0x8'):_0xd988('0x37');var _0x57b824=_0x16ab5d['get']({'plain':!![]});_0x57b824[_0xd988('0x2e')]=_0x4dfc4b;_0x57b824[_0xd988('0x38')]=_0x4dfc4b;_0x57b824['event']=_0x427a22?_0xd988('0x36'):'substatus';var _0x44d805=_0xd988('0x26')+_0x57b824[_0xd988('0x24')];return db[_0xd988('0x27')][_0xd988('0x28')](_0x44d805,{'type':db[_0xd988('0x39')][_0xd988('0x3a')]['SELECT'],'raw':!![]})[_0xd988('0x1b')](function(_0x185f9d){if(_0x185f9d){_0x57b824[_0xd988('0x29')]=_0x185f9d[0x0];}if(typeof _0x57b824[_0xd988('0x2a')]===_0xd988('0x25'))return;return getAgent(_0x57b824[_0xd988('0x2a')]);})[_0xd988('0x1b')](function(_0x1bb991){if(_0x1bb991){_0x57b824[_0xd988('0x2b')]=util[_0xd988('0x2c')]('SIP/%s',_0x1bb991[_0xd988('0x33')]);_0x57b824[_0xd988('0x2d')]=_0x1bb991;}return request({'event':_0x12b021,'message':_0x57b824});})[_0xd988('0x21')](function(_0x49533a){logger[_0xd988('0x1f')](_0xd988('0x1d'),_0xd988('0x3b'),_0x49533a);});}};}function getAgent(_0x108679){return db['User'][_0xd988('0x3c')]({'where':{'id':_0x108679},'attributes':['id',_0xd988('0x33'),_0xd988('0x3d'),'email',_0xd988('0x3e')],'raw':!![]})['then'](function(_0x4abd90){return _0x4abd90;});}exports['default']=function(){for(var _0x22824f=0x0;_0x22824f<triggers[_0xd988('0x3f')];_0x22824f+=0x1){if(db[_0xd988('0x40')](triggers[_0x22824f][_0xd988('0x41')])){db[triggers[_0x22824f][_0xd988('0x41')]]['hook'](triggers[_0x22824f][_0xd988('0x22')],triggers[_0x22824f][_0xd988('0x42')](triggers[_0x22824f][_0xd988('0x2e')][_0xd988('0x43')](),triggers[_0x22824f][_0xd988('0x44')]));}}};
\ No newline at end of file
+var _0x8fae=['Openchannel','OpenchannelInteraction','OpenchannelMessage','request','EventManager','then','info','error','code','Trigger,\x20%s','catch','get','channel','motionChannel','event','direction','resolve','ContactId','undefined','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','query','QueryTypes','SELECT','contact','UserId','format','SIP/%s','name','agent','incomingmessage','AfterCreateMessage','interface','changed','closed','substatus','Sequelize','AfterUpdate','User','find','fullname','email','internal','length','hasOwnProperty','model','hook','callback','jayson/promise','../logger','triggers','client','http','ChatInteraction','afterCreate','afterUpdate','Chat','ChatMessage','Sms','SmsInteraction','newinteraction','closedinteraction','Whatsapp','WhatsappInteraction','newmessage','Fax','FaxInteraction','FaxMessage','Mail','MailInteraction','MailMessage'];(function(_0x56f2c9,_0x277124){var _0x352e1b=function(_0xea7ac8){while(--_0xea7ac8){_0x56f2c9['push'](_0x56f2c9['shift']());}};_0x352e1b(++_0x277124);}(_0x8fae,0xbe));var _0xe8fa=function(_0x11720a,_0x54d15f){_0x11720a=_0x11720a-0x0;var _0x2b970c=_0x8fae[_0x11720a];return _0x2b970c;};'use strict';var util=require('util');var db=require('../../mysqldb')['db'];var jayson=require(_0xe8fa('0x0'));var logger=require(_0xe8fa('0x1'))(_0xe8fa('0x2'));var client=jayson[_0xe8fa('0x3')][_0xe8fa('0x4')]({'port':0x232a});var triggers=[{'channel':'Chat','model':_0xe8fa('0x5'),'event':_0xe8fa('0x6'),'condition':'newinteraction','callback':afterCreate},{'channel':'Chat','model':_0xe8fa('0x5'),'event':_0xe8fa('0x7'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0xe8fa('0x8'),'model':_0xe8fa('0x9'),'event':_0xe8fa('0x6'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0xe8fa('0xa'),'model':_0xe8fa('0xb'),'event':'afterCreate','condition':_0xe8fa('0xc'),'callback':afterCreate},{'channel':_0xe8fa('0xa'),'model':_0xe8fa('0xb'),'event':_0xe8fa('0x7'),'condition':_0xe8fa('0xd'),'callback':afterUpdate},{'channel':_0xe8fa('0xa'),'model':'SmsMessage','event':_0xe8fa('0x6'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0xe8fa('0xe'),'model':_0xe8fa('0xf'),'event':_0xe8fa('0x6'),'condition':_0xe8fa('0xc'),'callback':afterCreate},{'channel':_0xe8fa('0xe'),'model':_0xe8fa('0xf'),'event':_0xe8fa('0x7'),'condition':_0xe8fa('0xd'),'callback':afterUpdate},{'channel':_0xe8fa('0xe'),'model':'WhatsappMessage','event':_0xe8fa('0x6'),'condition':_0xe8fa('0x10'),'callback':afterCreateMessage},{'channel':_0xe8fa('0x11'),'model':_0xe8fa('0x12'),'event':_0xe8fa('0x6'),'condition':_0xe8fa('0xc'),'callback':afterCreate},{'channel':_0xe8fa('0x11'),'model':'FaxInteraction','event':_0xe8fa('0x7'),'condition':_0xe8fa('0xd'),'callback':afterUpdate},{'channel':_0xe8fa('0x11'),'model':_0xe8fa('0x13'),'event':_0xe8fa('0x6'),'condition':'newmessage','callback':afterCreateMessage},{'channel':_0xe8fa('0x14'),'model':'MailInteraction','event':_0xe8fa('0x6'),'condition':_0xe8fa('0xc'),'callback':afterCreate},{'channel':_0xe8fa('0x14'),'model':_0xe8fa('0x15'),'event':_0xe8fa('0x7'),'condition':_0xe8fa('0xd'),'callback':afterUpdate},{'channel':_0xe8fa('0x14'),'model':_0xe8fa('0x16'),'event':_0xe8fa('0x6'),'condition':_0xe8fa('0x10'),'callback':afterCreateMessage},{'channel':_0xe8fa('0x17'),'model':'OpenchannelInteraction','event':_0xe8fa('0x6'),'condition':_0xe8fa('0xc'),'callback':afterCreate},{'channel':_0xe8fa('0x17'),'model':_0xe8fa('0x18'),'event':'afterUpdate','condition':'closedinteraction','callback':afterUpdate},{'channel':_0xe8fa('0x17'),'model':_0xe8fa('0x19'),'event':_0xe8fa('0x6'),'condition':_0xe8fa('0x10'),'callback':afterCreateMessage}];function request(_0x5425f0){return client[_0xe8fa('0x1a')](_0xe8fa('0x1b'),_0x5425f0)[_0xe8fa('0x1c')](function(_0x5417b2){logger[_0xe8fa('0x1d')]('Trigger,\x20%s',_0xe8fa('0x1b'),_0x5417b2);if(_0x5417b2[_0xe8fa('0x1e')]){if(_0x5417b2[_0xe8fa('0x1e')][_0xe8fa('0x1f')]===0x1f4){logger['error'](_0xe8fa('0x20'),_0xe8fa('0x1b'),_0x5417b2[_0xe8fa('0x1e')]);}}})[_0xe8fa('0x21')](function(_0x1e2356){logger[_0xe8fa('0x1e')]('Trigger,\x20%s',_0xe8fa('0x1b'),_0x1e2356);});}function afterCreateMessage(_0x1a40c9){return function(_0x1c3953){_0x1c3953=_0x1c3953[_0xe8fa('0x22')]({'plain':!![]});_0x1c3953[_0xe8fa('0x23')]=_0x1a40c9;_0x1c3953[_0xe8fa('0x24')]=_0x1a40c9;_0x1c3953[_0xe8fa('0x25')]=_0x1c3953[_0xe8fa('0x26')];Promise[_0xe8fa('0x27')]()[_0xe8fa('0x1c')](function(){if(typeof _0x1c3953[_0xe8fa('0x28')]===_0xe8fa('0x29'))return null;var _0x239984=_0xe8fa('0x2a')+_0x1c3953[_0xe8fa('0x28')];return db[_0xe8fa('0x2b')][_0xe8fa('0x2c')](_0x239984,{'type':db['Sequelize'][_0xe8fa('0x2d')][_0xe8fa('0x2e')],'raw':!![]});})[_0xe8fa('0x1c')](function(_0xdf3578){if(_0xdf3578){_0x1c3953[_0xe8fa('0x2f')]=_0xdf3578[0x0];}if(typeof _0x1c3953[_0xe8fa('0x30')]==='undefined')return;return getAgent(_0x1c3953[_0xe8fa('0x30')]);})['then'](function(_0x3a1b2b){if(_0x3a1b2b){_0x1c3953['interface']=util[_0xe8fa('0x31')](_0xe8fa('0x32'),_0x3a1b2b[_0xe8fa('0x33')]);_0x1c3953[_0xe8fa('0x34')]=_0x3a1b2b;_0x1c3953[_0xe8fa('0x23')]=_0x1a40c9;return request({'event':_0xe8fa('0x35'),'message':_0x1c3953});}else{return request({'event':'outgoingmessage','message':_0x1c3953});}})[_0xe8fa('0x21')](function(_0x5a8bba){logger[_0xe8fa('0x1e')](_0xe8fa('0x20'),_0xe8fa('0x36'),_0x5a8bba);});};}function afterCreate(_0x5150a7,_0x4cdd26){return function(_0x50b89f){_0x50b89f=_0x50b89f[_0xe8fa('0x22')]({'plain':!![]});_0x50b89f[_0xe8fa('0x23')]=_0x5150a7;_0x50b89f[_0xe8fa('0x24')]=_0x5150a7;_0x50b89f[_0xe8fa('0x25')]='opened';Promise[_0xe8fa('0x27')]()[_0xe8fa('0x1c')](function(){var _0x58bd45='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x50b89f[_0xe8fa('0x28')];return db[_0xe8fa('0x2b')][_0xe8fa('0x2c')](_0x58bd45,{'type':db['Sequelize']['QueryTypes'][_0xe8fa('0x2e')],'raw':!![]});})['then'](function(_0x5e5474){if(_0x5e5474){_0x50b89f['contact']=_0x5e5474[0x0];}if(typeof _0x50b89f[_0xe8fa('0x30')]===_0xe8fa('0x29'))return;return getAgent(_0x50b89f[_0xe8fa('0x30')]);})[_0xe8fa('0x1c')](function(_0x306e3d){if(_0x306e3d){_0x50b89f[_0xe8fa('0x37')]=util[_0xe8fa('0x31')](_0xe8fa('0x32'),_0x306e3d['name']);_0x50b89f['agent']=_0x306e3d;}return request({'event':_0x4cdd26,'message':_0x50b89f});})[_0xe8fa('0x21')](function(_0x41ecba){logger[_0xe8fa('0x1e')](_0xe8fa('0x20'),'AfterCreate',_0x41ecba);});};}function afterUpdate(_0x26c69a){return function(_0x5c926b){var _0x45b3c3=_0x5c926b[_0xe8fa('0x38')](_0xe8fa('0x39'))&&_0x5c926b[_0xe8fa('0x39')];var _0x2b163b=_0x5c926b['changed'](_0xe8fa('0x3a'));if(_0x45b3c3||_0x2b163b){var _0x9e7391=_0x45b3c3?_0xe8fa('0xd'):_0xe8fa('0x3a');var _0x282e4d=_0x5c926b[_0xe8fa('0x22')]({'plain':!![]});_0x282e4d[_0xe8fa('0x23')]=_0x26c69a;_0x282e4d['motionChannel']=_0x26c69a;_0x282e4d['event']=_0x45b3c3?_0xe8fa('0x39'):_0xe8fa('0x3a');var _0xcd5737=_0xe8fa('0x2a')+_0x282e4d[_0xe8fa('0x28')];return db[_0xe8fa('0x2b')][_0xe8fa('0x2c')](_0xcd5737,{'type':db[_0xe8fa('0x3b')][_0xe8fa('0x2d')]['SELECT'],'raw':!![]})[_0xe8fa('0x1c')](function(_0xfa6213){if(_0xfa6213){_0x282e4d[_0xe8fa('0x2f')]=_0xfa6213[0x0];}if(typeof _0x282e4d[_0xe8fa('0x30')]===_0xe8fa('0x29'))return;return getAgent(_0x282e4d[_0xe8fa('0x30')]);})[_0xe8fa('0x1c')](function(_0x33805a){if(_0x33805a){_0x282e4d['interface']=util['format'](_0xe8fa('0x32'),_0x33805a[_0xe8fa('0x33')]);_0x282e4d[_0xe8fa('0x34')]=_0x33805a;}return request({'event':_0x9e7391,'message':_0x282e4d});})[_0xe8fa('0x21')](function(_0xd40dc){logger[_0xe8fa('0x1e')](_0xe8fa('0x20'),_0xe8fa('0x3c'),_0xd40dc);});}};}function getAgent(_0x39e73c){return db[_0xe8fa('0x3d')][_0xe8fa('0x3e')]({'where':{'id':_0x39e73c},'attributes':['id',_0xe8fa('0x33'),_0xe8fa('0x3f'),_0xe8fa('0x40'),_0xe8fa('0x41')],'raw':!![]})[_0xe8fa('0x1c')](function(_0x313de1){return _0x313de1;});}exports['default']=function(){for(var _0x2a25cc=0x0;_0x2a25cc<triggers[_0xe8fa('0x42')];_0x2a25cc+=0x1){if(db[_0xe8fa('0x43')](triggers[_0x2a25cc]['model'])){db[triggers[_0x2a25cc][_0xe8fa('0x44')]][_0xe8fa('0x45')](triggers[_0x2a25cc][_0xe8fa('0x25')],triggers[_0x2a25cc][_0xe8fa('0x46')](triggers[_0x2a25cc][_0xe8fa('0x23')]['toLowerCase'](),triggers[_0x2a25cc]['condition']));}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x43c2=['mail','whatsapp','openchannel','getChannels','isValidChannel','toLowerCase','includes','clearBlockUser','blockedAt','updateAttributes','getLicense','agent','User','then','agents','Maximum\x20login\x20has\x20been\x20reached','catch','bluebird','../mysqldb','./license/util','voice'];(function(_0x6f1031,_0x3c0a6f){var _0x4e1b8d=function(_0x159882){while(--_0x159882){_0x6f1031['push'](_0x6f1031['shift']());}};_0x4e1b8d(++_0x3c0a6f);}(_0x43c2,0x161));var _0x243c=function(_0x14f398,_0x16b990){_0x14f398=_0x14f398-0x0;var _0x3ea17a=_0x43c2[_0x14f398];return _0x3ea17a;};'use strict';var _=require('lodash');var BPromise=require(_0x243c('0x0'));var db=require(_0x243c('0x1'))['db'];var util=require(_0x243c('0x2'));var channels=[_0x243c('0x3'),_0x243c('0x4'),'chat','fax','sms',_0x243c('0x5'),_0x243c('0x6')];exports[_0x243c('0x7')]=function(){return channels;};exports[_0x243c('0x8')]=function(_0x1a8cb0){_0x1a8cb0=_0x1a8cb0[_0x243c('0x9')]();return _[_0x243c('0xa')](channels,_0x1a8cb0);};exports[_0x243c('0xb')]=function(_0x4f5c96,_0x33c9ed,_0x462830,_0xbbb5de){var _0x30b2d0={'loginAttempts':_0x33c9ed,'blocked':_0x462830};if(!_['isUndefined'](_0xbbb5de)){_0x30b2d0[_0x243c('0xc')]=_0xbbb5de;}return _0x4f5c96[_0x243c('0xd')](_0x30b2d0);};exports[_0x243c('0xe')]=function(_0x27bb55){return new BPromise(function(_0x5d8865,_0x88fe24){var _0x2b3a37=0x0;if(_0x27bb55['role']!==_0x243c('0xf')){_0x5d8865(_0x27bb55);}db[_0x243c('0x10')]['count']({'where':{'role':_0x243c('0xf'),'online':!![],'id':{'$ne':_0x27bb55['id']}}})[_0x243c('0x11')](function(_0x11be34){_0x2b3a37=_0x11be34;return util['getLicense']();})[_0x243c('0x11')](function(_0x279f1f){if(_0x279f1f&&_0x279f1f['agents']&&_0x2b3a37>=_0x279f1f[_0x243c('0x12')]){throw Error(_0x243c('0x13'));}_0x5d8865(_0x27bb55);})[_0x243c('0x14')](function(_0x4cd059){_0x88fe24(_0x4cd059);});});};
\ No newline at end of file
+var _0xf246=['User','count','then','lodash','bluebird','../mysqldb','voice','mail','chat','fax','sms','whatsapp','getChannels','toLowerCase','includes','clearBlockUser','updateAttributes','role','agent'];(function(_0x2dcbb5,_0x3ec913){var _0x5a90a3=function(_0x4374c8){while(--_0x4374c8){_0x2dcbb5['push'](_0x2dcbb5['shift']());}};_0x5a90a3(++_0x3ec913);}(_0xf246,0x9b));var _0x6f24=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xf246[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x6f24('0x0'));var BPromise=require(_0x6f24('0x1'));var db=require(_0x6f24('0x2'))['db'];var util=require('./license/util');var channels=[_0x6f24('0x3'),_0x6f24('0x4'),_0x6f24('0x5'),_0x6f24('0x6'),_0x6f24('0x7'),_0x6f24('0x8'),'openchannel'];exports[_0x6f24('0x9')]=function(){return channels;};exports['isValidChannel']=function(_0x458c59){_0x458c59=_0x458c59[_0x6f24('0xa')]();return _[_0x6f24('0xb')](channels,_0x458c59);};exports[_0x6f24('0xc')]=function(_0x22f27b,_0x49d84b,_0xd23495,_0x43e67c){var _0x43e204={'loginAttempts':_0x49d84b,'blocked':_0xd23495};if(!_['isUndefined'](_0x43e67c)){_0x43e204['blockedAt']=_0x43e67c;}return _0x22f27b[_0x6f24('0xd')](_0x43e204);};exports['getLicense']=function(_0x1ad5f4){return new BPromise(function(_0x4dc2ea,_0x48a2e7){var _0x3ac968=0x0;if(_0x1ad5f4[_0x6f24('0xe')]!==_0x6f24('0xf')){_0x4dc2ea(_0x1ad5f4);}db[_0x6f24('0x10')][_0x6f24('0x11')]({'where':{'role':'agent','online':!![],'id':{'$ne':_0x1ad5f4['id']}}})[_0x6f24('0x12')](function(_0x8851a5){_0x3ac968=_0x8851a5;return util['getLicense']();})[_0x6f24('0x12')](function(_0x5bc5e3){if(_0x5bc5e3&&_0x5bc5e3['agents']&&_0x3ac968>=_0x5bc5e3['agents']){throw Error('Maximum\x20login\x20has\x20been\x20reached');}_0x4dc2ea(_0x1ad5f4);})['catch'](function(_0x5e12b2){_0x48a2e7(_0x5e12b2);});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbd84=['send','404','status'];(function(_0xa545a4,_0x2b2d25){var _0x338fe6=function(_0x3afad3){while(--_0x3afad3){_0xa545a4['push'](_0xa545a4['shift']());}};_0x338fe6(++_0x2b2d25);}(_0xbd84,0xb5));var _0x4bd8=function(_0x1b7368,_0x3286ed){_0x1b7368=_0x1b7368-0x0;var _0x25d54c=_0xbd84[_0x1b7368];return _0x25d54c;};'use strict';module['exports'][0x194]=function pageNotFound(_0x43cd08,_0x225554){var _0x2abe70=_0x4bd8('0x0');var _0x19a279=0x194;var _0x32defa={'status':_0x19a279};_0x225554[_0x4bd8('0x1')](_0x32defa[_0x4bd8('0x1')]);_0x225554['render'](_0x2abe70,{},function(_0x5678ce,_0xcd197b){if(_0x5678ce){return _0x225554['status'](_0x32defa[_0x4bd8('0x1')])['json'](_0x32defa);}_0x225554[_0x4bd8('0x2')](_0xcd197b);});};
\ No newline at end of file
+var _0xf074=['404','status','render','json','send'];(function(_0x214c16,_0x335dc4){var _0x1b0468=function(_0x4a1f6d){while(--_0x4a1f6d){_0x214c16['push'](_0x214c16['shift']());}};_0x1b0468(++_0x335dc4);}(_0xf074,0xb9));var _0x4f07=function(_0x22047a,_0x17fb4e){_0x22047a=_0x22047a-0x0;var _0x18858c=_0xf074[_0x22047a];return _0x18858c;};'use strict';module['exports'][0x194]=function pageNotFound(_0x4b9d92,_0x476776){var _0xf4af29=_0x4f07('0x0');var _0x167eed=0x194;var _0x5f73a7={'status':_0x167eed};_0x476776['status'](_0x5f73a7[_0x4f07('0x1')]);_0x476776[_0x4f07('0x2')](_0xf4af29,{},function(_0x32a77b,_0x444362){if(_0x32a77b){return _0x476776[_0x4f07('0x1')](_0x5f73a7[_0x4f07('0x1')])[_0x4f07('0x3')](_0x5f73a7);}_0x476776[_0x4f07('0x4')](_0x444362);});};
\ No newline at end of file
+++ /dev/null
-'use strict';
-
-var BPromise = require('bluebird');
-var util = require('util');
-
-var logger = require('../config/logger')('migration');
-
-var Sequence = function() {};
-
-Sequence.prototype.enqueue = function(fn) {
- this.tail = this.tail ? this.tail.finally(fn) : fn();
-};
-
-var Migration = function(queryInterface) {
- this.queryInterface = queryInterface;
- this.sequence = new Sequence();
-};
-
-Migration.prototype.changeColumn = function(table, column, type) {
- var _this = this;
- this.sequence.enqueue(function() {
- return _this.queryInterface
- .changeColumn(table, column, type)
- .then(function() {
- logger.info('Changed column %s in table %s', column, table);
- })
- .catch(function(err) {
- logger.info(JSON.stringify(err));
- });
- });
-};
-
-Migration.prototype.addColumn = function(table, column, type) {
- var _this = this;
- this.sequence.enqueue(function() {
- return _this.queryInterface
- .addColumn(table, column, type)
- .then(function() {
- logger.info('Added column %s to %s', column, table);
- })
- .catch(function(err) {
- logger.info(JSON.stringify(err));
- });
- });
-};
-
-Migration.prototype.dropTable = function(table) {
- var _this = this;
- this.sequence.enqueue(function() {
- return _this.queryInterface
- .dropTable(table, {
- force: true
- })
- .then(function() {
- logger.info('table dropped %s', table);
- })
- .catch(function(err) {
- logger.info(JSON.stringify(err));
- });
- });
-};
-
-Migration.prototype.addIndex = function(table, column, indexName) {
- var _this = this;
- this.sequence.enqueue(function() {
- return _this.queryInterface
- .addIndex(table, column, {
- indexName: indexName
- })
- .then(function() {
- logger.info('addIndex %s %s %s', table, column.join(','), indexName);
- })
- .catch(function(err) {
- logger.info(JSON.stringify(err));
- });
- });
-};
-
-Migration.prototype.removeIndex = function(table, indexName) {
- var _this = this;
- this.sequence.enqueue(function() {
- return _this.queryInterface
- .removeIndex(table, indexName)
- .then(function() {
- logger.info('removeIndex %s %s', table, indexName);
- })
- .catch(function(err) {
- logger.info(JSON.stringify(err));
- });
- });
-};
-
-Migration.prototype.query = function(sql) {
- var _this = this;
- this.sequence.enqueue(function() {
- return _this.queryInterface.sequelize
- .query(sql)
- .then(function() {
- logger.info('query %s', sql);
- })
- .catch(function(err) {
- logger.info(JSON.stringify(err));
- });
- });
-};
-
-Migration.prototype.removeColumn = function(table, column) {
- var _this = this;
- this.sequence.enqueue(function() {
- return _this.queryInterface
- .removeColumn(table, column)
- .then(function() {
- logger.info('Removed column %s from %s', column, table);
- })
- .catch(function(err) {
- logger.info(
- util.inspect(err, {
- showHidden: false,
- depth: null
- })
- );
- });
- });
-};
-
-Migration.prototype.renameColumn = function(table, oldColumn, newColumn) {
- var _this = this;
- this.sequence.enqueue(function() {
- return _this.queryInterface
- .renameColumn(table, oldColumn, newColumn)
- .then(function() {
- logger.info('Renamed column from %s to %s on %s', oldColumn, newColumn, table);
- })
- .catch(function(err) {
- logger.info(
- util.inspect(err, {
- showHidden: false,
- depth: null
- })
- );
- });
- });
-};
-
-Migration.prototype.final = function(resolve) {
- this.sequence.enqueue(function() {
- return resolve();
- });
-};
-
-module.exports = {
- up: function(queryInterface, Sequelize) {
- return new BPromise(function(resolve) {
- var migration = new Migration(queryInterface);
-
- // START int_dynamics365_configurations
- migration.addColumn('int_dynamics365_configurations', 'moduleCreate', {
- type: Sequelize.ENUM('contact', 'nothing'),
- defaultValue: 'contact'
- });
- // END int_dynamics365_configurations
-
- // START FINAL
- migration.final(resolve);
- // END FINAL
- });
- },
-
- down: function(queryInterface, Sequelize) {
- // var migration = new Migration(queryInterface);
- }
-};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x34b7=['../api/faxAccount/faxAccount.model','FaxApplication','FaxInteraction','FaxMessage','../api/faxMessage/faxMessage.model','../api/faxQueue/faxQueue.model','SmsAccount','../api/smsAccount/smsAccount.model','../api/smsApplication/smsApplication.model','SmsInteraction','../api/smsInteraction/smsInteraction.model','SmsQueue','../api/smsQueue/smsQueue.model','OpenchannelAccount','OpenchannelApplication','../api/openchannelApplication/openchannelApplication.model','OpenchannelInteraction','../api/openchannelMessage/openchannelMessage.model','ChatWebsite','OpenchannelQueueReport','../api/openchannelQueueReport/openchannelQueueReport.model','../api/chatApplication/chatApplication.model','ChatInteraction','ChatMessage','../api/chatMessage/chatMessage.model','../api/chatQueue/chatQueue.model','ChatGroup','../api/chatGroup/chatGroup.model','../api/chatProactiveAction/chatProactiveAction.model','CmCompany','CmContact','CmHopper','../api/cmHopper/cmHopper.model','CmHopperBlack','../api/cmHopperBlack/cmHopperBlack.model','../api/cmHopperFinal/cmHopperFinal.model','../api/cmHopperHistory/cmHopperHistory.model','ReportAgentPreview','../api/reportAgentPreview/reportAgentPreview.model','../api/cmCustomField/cmCustomField.model','../api/action/action.model','Automation','../api/cannedAnswer/cannedAnswer.model','Disposition','../api/disposition/disposition.model','Condition','../api/condition/condition.model','Interval','../api/interval/interval.model','Pause','../api/pause/pause.model','Cdr','../api/cdr/cdr.model','VoiceQueuesLog','../api/voiceQueuesLog/voiceQueuesLog.model','../api/schedule/schedule.model','Sound','Template','../api/template/template.model','../api/trigger/trigger.model','Variable','../api/variable/variable.model','Integration','IntegrationReport','../api/integrationReport/integrationReport.model','AnalyticCustomReport','AnalyticDefaultReport','../api/analyticDefaultReport/analyticDefaultReport.model','AnalyticExtractedReport','../api/analyticExtractedReport/analyticExtractedReport.model','AnalyticMetric','../api/analyticMetric/analyticMetric.model','AnalyticFieldReport','../api/analyticFieldReport/analyticFieldReport.model','../api/analyticTreeReport/analyticTreeReport.model','SalesforceAccount','../api/intSalesforceAccount/intSalesforceAccount.model','SalesforceConfiguration','SalesforceField','../api/intSalesforceField/intSalesforceField.model','../api/intSugarcrmAccount/intSugarcrmAccount.model','SugarcrmConfiguration','../api/intSugarcrmConfiguration/intSugarcrmConfiguration.model','SugarcrmField','DeskAccount','DeskConfiguration','../api/intDeskConfiguration/intDeskConfiguration.model','DeskField','../api/intDeskField/intDeskField.model','../api/intZohoAccount/intZohoAccount.model','ZohoConfiguration','../api/intZohoConfiguration/intZohoConfiguration.model','ZohoField','../api/intZohoField/intZohoField.model','ZendeskAccount','../api/intZendeskAccount/intZendeskAccount.model','ZendeskConfiguration','../api/intZendeskConfiguration/intZendeskConfiguration.model','ZendeskField','../api/intFreshdeskAccount/intFreshdeskAccount.model','FreshdeskConfiguration','../api/intFreshdeskField/intFreshdeskField.model','VtigerAccount','../api/intVtigerConfiguration/intVtigerConfiguration.model','VtigerField','../api/intVtigerField/intVtigerField.model','ServicenowAccount','../api/intServicenowAccount/intServicenowAccount.model','../api/intServicenowConfiguration/intServicenowConfiguration.model','ServicenowField','../api/intServicenowField/intServicenowField.model','Dynamics365Account','Dynamics365Field','FreshsalesAccount','FreshsalesConfiguration','ChatQueueReport','ChatInternalMessage','../api/chatInternalMessage/chatInternalMessage.model','JscriptyAnswerReport','JscriptyQuestionReport','../api/jscriptyQuestionReport/jscriptyQuestionReport.model','../api/jscriptySessionReport/jscriptySessionReport.model','SmsQueueReport','../api/smsQueueReport/smsQueueReport.model','SquareReport','../api/squareReport/squareReport.model','SquareDetailsReport','../api/squareReportDetail/squareReportDetail.model','../api/jscriptyProject/jscriptyProject.model','Setting','../api/setting/setting.model','SquareOdbc','../api/squareOdbc/squareOdbc.model','SquareProject','../api/squareProject/squareProject.model','SquareRecording','../api/squareRecording/squareRecording.model','../api/squareMessage/squareMessage.model','Team','../api/team/team.model','License','../api/license/license.model','Campaign','Migration','../api/migration/migration.model','Attachment','../api/attachment/attachment.model','../api/plugin/plugin.model','MailTransferReport','../api/mailTransferReport/mailTransferReport.model','ChatTransferReport','../api/chatTransferReport/chatTransferReport.model','FaxTransferReport','../api/faxTransferReport/faxTransferReport.model','../api/openchannelTransferReport/openchannelTransferReport.model','SmsTransferReport','../api/smsTransferReport/smsTransferReport.model','CmList','../api/cmList/cmList.model','VoicePrefix','../api/voicePrefix/voicePrefix.model','../api/userProfile/userProfile.model','UserProfileSection','../api/userProfileSection/userProfileSection.model','UserProfileResource','../api/userProfileResource/userProfileResource.model','UserNotification','../api/userNotification/userNotification.model','WhatsappAccount','../api/whatsappAccount/whatsappAccount.model','WhatsappApplication','../api/whatsappApplication/whatsappApplication.model','../api/whatsappInteraction/whatsappInteraction.model','../api/whatsappMessage/whatsappMessage.model','WhatsappQueueReport','../api/whatsappQueueReport/whatsappQueueReport.model','WhatsappTransferReport','WhatsappQueue','CloudProvider','TeamVoiceQueue','../api/teamVoiceQueue/teamVoiceQueue.model','../api/teamVoicePrefix/teamVoicePrefix.model','UserVoicePrefix','hasOne','cascade','hasMany','UserId','VoiceQueuesRt','HopperFinals','CmHopperHistory','OpenchannelInteractions','MailInteractions','WhatsappInteraction','SenderId','belongsTo','UserProfile','userProfileId','belongsToMany','chat_group_has_users','Contacts','Lists','cm_user_has_lists','user_has_teams','user_has_chat_interactions','user_has_fax_interactions','SmsInteractions','user_has_sms_interactions','user_has_openchannel_interactions','WhatsappInteractions','user_has_whatsapp_interactions','VoicePrefixes','MailQueues','FaxQueue','OpenchannelQueue','OpenchannelQueues','ChatWebsites','user_has_chat_websites','FaxAccounts','user_has_fax_accounts','user_has_mail_accounts','SmsAccounts','WhatsappAccounts','user_has_whatsapp_accounts','ChanSpyId','Applications','Sounds','moh_has_sounds','Members','VoiceQueueId','Hoppers','CmHopperFinal','HopperHistories','JscriptySessionReport','JscriptySessions','TrunkId','TrunkBackup','TrunkBackupId','mandatoryDispositionPauseId','voice_queues_has_cm_lists','Agents','BlackLists','mailboxuser','mailbox','uniqueid','AgentReports','Contact','ContactId','MailAccountId','Smtp','CannedAnswer','Messages','List','ListId','TemplateId','team_has_mail_queues','Teams','MailInteractionId','Owner','Tag','mail_interaction_has_tags','Tags','ThroughTags','Users','user_has_mail_interactions','Attachments','Interaction','Account','ChatWebsiteId','ChatOfflineMessage','ChatOfflineMessageId','restrict','IntervalId','Dispositions','FaxAccountId','Interactions','Exntensions','mandatoryDispositionPause','TagId','fax_interaction_has_tags','FaxInteractionId','AttachmentId','team_has_fax_queues','FaxQueueReport','SmsAccountId','Answers','SmsMessage','SmsApplication','sms_interaction_has_tags','SmsInteractionId','SmsQueueId','OpenchannelAccountId','user_has_openchannel_accounts','OpenchannelQueueId','OpenchannelMessage','OpenchannelInteractionId','team_has_openchannel_queues','ChatProactiveAction','ProactiveActions','ChatApplication','Agent','Queue','ChatInteractionId','chat_interaction_has_tags','ChatQueue','team_has_chat_queues','ChatGroupId','Website','CompanyId','ChatInteractions','FaxInteractions','Company','cm_user_has_contacts','cm_contact_has_tags','CampaignId','OwnerId','All','OneAll','AutomationAllId','Any','OneAny','AutomationAnyId','Actions','ParentId','Intervals','MailApplications','SmsApplications','Schedule','CustomReportId','Mohs','openchannel_interaction_has_tags','whatsapp_interaction_has_tags','Trigger','AllConditions','AllCondition','TriggerAllId','AnyCondition','Action','TriggerId','Fields','DefaultReportId','MetricId','Configurations','SubjectId','Descriptions','DescriptionId','FieldId','AccountId','Subject','Description','SugarcrmAccount','Subjects','Field','VariableId','int_desk_configuration_has_tags','ZohoAccount','int_zendesk_configuration_has_tags','FreshdeskField','FreshdeskAccount','int_freshdesk_configuration_has_tags','VtigerConfiguration','ServicenowConfiguration','Dynamics365Configuration','FreshsalesField','ToId','SessionId','JscriptyProject','ProjectId','VoiceQueues','FaxQueues','team_has_sms_queues','SmsQueues','HopperBlacks','campaigns_has_cm_lists','campaigns_has_cm_blacklists','FromAccount','FromUserId','FromAgent','ToUserId','ToAgent','ToMailQueueId','ToQueue','ToMailAccountId','ToAccount','FromChatWebsiteId','ToChatQueueId','FromFaxAccountId','ToFaxQueueId','OpenchannelTransferReport','FromOpenchannelAccountId','ToOpenchannelQueueId','ToOpenchannelAccountId','FromSmsAccountId','ToSmsQueueId','ToSmsAccountId','CmCustomField','CustomFields','HopperHistory','Queues','Extensions','WhatsappAccountId','WhatsappMessage','WhatsappInteractionId','FromWhatsappAccountId','ToQueueId','team_has_whatsapp_queues','exports','lodash','jstz','determine','sequelize','defaultsDeep','xC@LL1234','127.0.0.1','mysql','utf8mb4','name','utf8','sequelizeHistory','utf8_general_ci','database','username','password','options','User','import','../api/user/user.model','VoiceChanSpy','../api/voiceChanSpy/voiceChanSpy.model','VoiceContext','VoiceExtension','../api/voiceExtension/voiceExtension.model','VoiceMusicOnHold','../api/voiceMusicOnHold/voiceMusicOnHold.model','VoiceQueue','../api/voiceQueue/voiceQueue.model','VoiceRecording','../api/voiceRecording/voiceRecording.model','ScreenRecording','../api/screenRecording/screenRecording.model','VoiceMail','../api/voiceMail/voiceMail.model','VoiceMailMessage','../api/voiceMailMessage/voiceMailMessage.model','VoiceCallReport','VoiceAgentReport','../api/voiceAgentReport/voiceAgentReport.model','VoiceQueueReport','MemberReport','../api/memberReport/memberReport.model','Trunk','../api/trunk/trunk.model','VoiceTransferReport','../api/voiceTransferReport/voiceTransferReport.model','UserVoiceQueueRt','../api/userVoiceQueueRt/userVoiceQueueRt.model','UserVoiceQueue','../api/userVoiceQueue/userVoiceQueue.model','UserChatQueue','../api/userChatQueue/userChatQueue.model','UserMailQueue','../api/userMailQueue/userMailQueue.model','UserFaxQueue','UserSmsQueue','../api/userSmsQueue/userSmsQueue.model','UserOpenchannelQueue','UserWhatsappQueue','MailServerIn','MailServerOut','../api/mailServerOut/mailServerOut.model','MailAccount','MailQueue','../api/mailQueue/mailQueue.model','MailSubstatus','MailInteraction','../api/mailInteraction/mailInteraction.model','MailMessage','../api/mailMessage/mailMessage.model','MailApplication','MailQueueReport','../api/mailQueueReport/mailQueueReport.model','../api/dashboard/dashboard.model','DashboardItem','FaxAccount'];(function(_0x2e78e9,_0x42957c){var _0x35aad4=function(_0x360fa1){while(--_0x360fa1){_0x2e78e9['push'](_0x2e78e9['shift']());}};_0x35aad4(++_0x42957c);}(_0x34b7,0x196));var _0x734b=function(_0x45ee80,_0x556689){_0x45ee80=_0x45ee80-0x0;var _0x350e98=_0x34b7[_0x45ee80];return _0x350e98;};'use strict';var config=require('../config/environment');var Sequelize=require('sequelize');var _=require(_0x734b('0x0'));var jstz=require(_0x734b('0x1'));var timezone=jstz[_0x734b('0x2')]();config[_0x734b('0x3')]=_[_0x734b('0x4')](config[_0x734b('0x3')],{'database':'motion2','username':'xcall','password':_0x734b('0x5'),'options':{'host':_0x734b('0x6'),'port':0xcea,'dialect':_0x734b('0x7'),'dialectOptions':{'charset':_0x734b('0x8')},'logging':![],'timezone':timezone[_0x734b('0x9')](),'define':{'charset':_0x734b('0xa'),'collate':'utf8_general_ci'}}});config[_0x734b('0xb')]=_[_0x734b('0x4')](config['sequelizeHistory'],{'database':'motion2','username':'xcall','password':_0x734b('0x5'),'options':{'host':'127.0.0.1','port':0xcea,'dialect':_0x734b('0x7'),'dialectOptions':{'charset':_0x734b('0x8')},'logging':![],'timezone':timezone[_0x734b('0x9')](),'define':{'charset':_0x734b('0xa'),'collate':_0x734b('0xc')}}});var db={'Sequelize':Sequelize,'sequelize':new Sequelize(config[_0x734b('0x3')][_0x734b('0xd')],config[_0x734b('0x3')][_0x734b('0xe')],config[_0x734b('0x3')][_0x734b('0xf')],config[_0x734b('0x3')][_0x734b('0x10')])};var dbH={'Sequelize':Sequelize,'sequelize':new Sequelize(config[_0x734b('0xb')]['database'],config[_0x734b('0xb')][_0x734b('0xe')],config[_0x734b('0xb')][_0x734b('0xf')],config[_0x734b('0xb')][_0x734b('0x10')])};db[_0x734b('0x11')]=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0x13'));db[_0x734b('0x14')]=db['sequelize'][_0x734b('0x12')](_0x734b('0x15'));db[_0x734b('0x16')]=db[_0x734b('0x3')]['import']('../api/voiceContext/voiceContext.model');db[_0x734b('0x17')]=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0x18'));db[_0x734b('0x19')]=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0x1a'));db[_0x734b('0x1b')]=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0x1c'));db[_0x734b('0x1d')]=db[_0x734b('0x3')]['import'](_0x734b('0x1e'));db[_0x734b('0x1f')]=db['sequelize'][_0x734b('0x12')](_0x734b('0x20'));db[_0x734b('0x21')]=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0x22'));db[_0x734b('0x23')]=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0x24'));db[_0x734b('0x25')]=db[_0x734b('0x3')][_0x734b('0x12')]('../api/voiceCallReport/voiceCallReport.model');db['VoiceDialReport']=db[_0x734b('0x3')][_0x734b('0x12')]('../api/voiceDialReport/voiceDialReport.model');db[_0x734b('0x26')]=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0x27'));db[_0x734b('0x28')]=db[_0x734b('0x3')][_0x734b('0x12')]('../api/voiceQueueReport/voiceQueueReport.model');db[_0x734b('0x29')]=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0x2a'));db[_0x734b('0x2b')]=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0x2c'));db[_0x734b('0x2d')]=db[_0x734b('0x3')]['import'](_0x734b('0x2e'));db[_0x734b('0x2f')]=db['sequelize'][_0x734b('0x12')](_0x734b('0x30'));db[_0x734b('0x31')]=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0x32'));db[_0x734b('0x33')]=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0x34'));db[_0x734b('0x35')]=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0x36'));db[_0x734b('0x37')]=db['sequelize'][_0x734b('0x12')]('../api/userFaxQueue/userFaxQueue.model');db[_0x734b('0x38')]=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0x39'));db[_0x734b('0x3a')]=db[_0x734b('0x3')]['import']('../api/userOpenchannelQueue/userOpenchannelQueue.model');db[_0x734b('0x3b')]=db['sequelize'][_0x734b('0x12')]('../api/userWhatsappQueue/userWhatsappQueue.model');db[_0x734b('0x3c')]=db['sequelize'][_0x734b('0x12')]('../api/mailServerIn/mailServerIn.model');db[_0x734b('0x3d')]=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0x3e'));db[_0x734b('0x3f')]=db[_0x734b('0x3')][_0x734b('0x12')]('../api/mailAccount/mailAccount.model');db[_0x734b('0x40')]=db[_0x734b('0x3')]['import'](_0x734b('0x41'));db[_0x734b('0x42')]=db[_0x734b('0x3')][_0x734b('0x12')]('../api/mailSubstatus/mailSubstatus.model');db[_0x734b('0x43')]=db[_0x734b('0x3')]['import'](_0x734b('0x44'));db[_0x734b('0x45')]=db['sequelize'][_0x734b('0x12')](_0x734b('0x46'));db[_0x734b('0x47')]=db[_0x734b('0x3')]['import']('../api/mailApplication/mailApplication.model');db[_0x734b('0x48')]=db['sequelize']['import'](_0x734b('0x49'));db['Dashboard']=db[_0x734b('0x3')]['import'](_0x734b('0x4a'));db[_0x734b('0x4b')]=db[_0x734b('0x3')]['import']('../api/dashboardItem/dashboardItem.model');db[_0x734b('0x4c')]=db['sequelize']['import'](_0x734b('0x4d'));db[_0x734b('0x4e')]=db['sequelize'][_0x734b('0x12')]('../api/faxApplication/faxApplication.model');db[_0x734b('0x4f')]=db[_0x734b('0x3')][_0x734b('0x12')]('../api/faxInteraction/faxInteraction.model');db[_0x734b('0x50')]=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0x51'));db['FaxQueue']=db['sequelize']['import'](_0x734b('0x52'));db['FaxQueueReport']=db['sequelize'][_0x734b('0x12')]('../api/faxQueueReport/faxQueueReport.model');db[_0x734b('0x53')]=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0x54'));db['SmsApplication']=db[_0x734b('0x3')]['import'](_0x734b('0x55'));db[_0x734b('0x56')]=db[_0x734b('0x3')]['import'](_0x734b('0x57'));db['SmsMessage']=db[_0x734b('0x3')][_0x734b('0x12')]('../api/smsMessage/smsMessage.model');db[_0x734b('0x58')]=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0x59'));db[_0x734b('0x5a')]=db['sequelize'][_0x734b('0x12')]('../api/openchannelAccount/openchannelAccount.model');db[_0x734b('0x5b')]=db['sequelize'][_0x734b('0x12')](_0x734b('0x5c'));db[_0x734b('0x5d')]=db[_0x734b('0x3')][_0x734b('0x12')]('../api/openchannelInteraction/openchannelInteraction.model');db['OpenchannelMessage']=db['sequelize'][_0x734b('0x12')](_0x734b('0x5e'));db['OpenchannelQueue']=db[_0x734b('0x3')][_0x734b('0x12')]('../api/openchannelQueue/openchannelQueue.model');db[_0x734b('0x5f')]=db[_0x734b('0x3')][_0x734b('0x12')]('../api/chatWebsite/chatWebsite.model');db[_0x734b('0x60')]=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0x61'));db['ChatApplication']=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0x62'));db[_0x734b('0x63')]=db['sequelize'][_0x734b('0x12')]('../api/chatInteraction/chatInteraction.model');db[_0x734b('0x64')]=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0x65'));db['ChatOfflineMessage']=db[_0x734b('0x3')][_0x734b('0x12')]('../api/chatOfflineMessage/chatOfflineMessage.model');db['ChatQueue']=db[_0x734b('0x3')]['import'](_0x734b('0x66'));db[_0x734b('0x67')]=db[_0x734b('0x3')]['import'](_0x734b('0x68'));db['ChatProactiveAction']=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0x69'));db[_0x734b('0x6a')]=db['sequelize'][_0x734b('0x12')]('../api/cmCompany/cmCompany.model');db[_0x734b('0x6b')]=db[_0x734b('0x3')][_0x734b('0x12')]('../api/cmContact/cmContact.model');db[_0x734b('0x6c')]=db['sequelize'][_0x734b('0x12')](_0x734b('0x6d'));db[_0x734b('0x6e')]=db[_0x734b('0x3')]['import'](_0x734b('0x6f'));db['CmHopperFinal']=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0x70'));db['CmHopperHistory']=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0x71'));db[_0x734b('0x72')]=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0x73'));db['CmCustomField']=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0x74'));db['Action']=db['sequelize'][_0x734b('0x12')](_0x734b('0x75'));db[_0x734b('0x76')]=db[_0x734b('0x3')]['import']('../api/automation/automation.model');db['CannedAnswer']=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0x77'));db[_0x734b('0x78')]=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0x79'));db[_0x734b('0x7a')]=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0x7b'));db[_0x734b('0x7c')]=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0x7d'));db[_0x734b('0x7e')]=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0x7f'));db[_0x734b('0x80')]=db[_0x734b('0x3')]['import'](_0x734b('0x81'));db[_0x734b('0x82')]=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0x83'));db['Schedule']=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0x84'));db[_0x734b('0x85')]=db[_0x734b('0x3')][_0x734b('0x12')]('../api/sound/sound.model');db['Tag']=db['sequelize']['import']('../api/tag/tag.model');db[_0x734b('0x86')]=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0x87'));db['Trigger']=db['sequelize'][_0x734b('0x12')](_0x734b('0x88'));db[_0x734b('0x89')]=db[_0x734b('0x3')]['import'](_0x734b('0x8a'));db[_0x734b('0x8b')]=db[_0x734b('0x3')][_0x734b('0x12')]('../api/integration/integration.model');db[_0x734b('0x8c')]=db['sequelize'][_0x734b('0x12')](_0x734b('0x8d'));db[_0x734b('0x8e')]=db[_0x734b('0x3')][_0x734b('0x12')]('../api/analyticCustomReport/analyticCustomReport.model');db[_0x734b('0x8f')]=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0x90'));db[_0x734b('0x91')]=db['sequelize'][_0x734b('0x12')](_0x734b('0x92'));db[_0x734b('0x93')]=db[_0x734b('0x3')]['import'](_0x734b('0x94'));db[_0x734b('0x95')]=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0x96'));db['AnalyticTreeReport']=db[_0x734b('0x3')]['import'](_0x734b('0x97'));db[_0x734b('0x98')]=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0x99'));db[_0x734b('0x9a')]=db['sequelize']['import']('../api/intSalesforceConfiguration/intSalesforceConfiguration.model');db[_0x734b('0x9b')]=db['sequelize'][_0x734b('0x12')](_0x734b('0x9c'));db['SugarcrmAccount']=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0x9d'));db[_0x734b('0x9e')]=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0x9f'));db[_0x734b('0xa0')]=db[_0x734b('0x3')][_0x734b('0x12')]('../api/intSugarcrmField/intSugarcrmField.model');db[_0x734b('0xa1')]=db[_0x734b('0x3')][_0x734b('0x12')]('../api/intDeskAccount/intDeskAccount.model');db[_0x734b('0xa2')]=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0xa3'));db[_0x734b('0xa4')]=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0xa5'));db['ZohoAccount']=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0xa6'));db[_0x734b('0xa7')]=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0xa8'));db[_0x734b('0xa9')]=db[_0x734b('0x3')]['import'](_0x734b('0xaa'));db[_0x734b('0xab')]=db[_0x734b('0x3')]['import'](_0x734b('0xac'));db[_0x734b('0xad')]=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0xae'));db[_0x734b('0xaf')]=db['sequelize'][_0x734b('0x12')]('../api/intZendeskField/intZendeskField.model');db['FreshdeskAccount']=db['sequelize']['import'](_0x734b('0xb0'));db[_0x734b('0xb1')]=db[_0x734b('0x3')][_0x734b('0x12')]('../api/intFreshdeskConfiguration/intFreshdeskConfiguration.model');db['FreshdeskField']=db[_0x734b('0x3')]['import'](_0x734b('0xb2'));db[_0x734b('0xb3')]=db['sequelize'][_0x734b('0x12')]('../api/intVtigerAccount/intVtigerAccount.model');db['VtigerConfiguration']=db['sequelize'][_0x734b('0x12')](_0x734b('0xb4'));db[_0x734b('0xb5')]=db[_0x734b('0x3')]['import'](_0x734b('0xb6'));db[_0x734b('0xb7')]=db['sequelize'][_0x734b('0x12')](_0x734b('0xb8'));db['ServicenowConfiguration']=db[_0x734b('0x3')]['import'](_0x734b('0xb9'));db[_0x734b('0xba')]=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0xbb'));db[_0x734b('0xbc')]=db[_0x734b('0x3')]['import']('../api/intDynamics365Account/intDynamics365Account.model');db['Dynamics365Configuration']=db[_0x734b('0x3')][_0x734b('0x12')]('../api/intDynamics365Configuration/intDynamics365Configuration.model');db[_0x734b('0xbd')]=db[_0x734b('0x3')][_0x734b('0x12')]('../api/intDynamics365Field/intDynamics365Field.model');db[_0x734b('0xbe')]=db[_0x734b('0x3')][_0x734b('0x12')]('../api/intFreshsalesAccount/intFreshsalesAccount.model');db[_0x734b('0xbf')]=db[_0x734b('0x3')][_0x734b('0x12')]('../api/intFreshsalesConfiguration/intFreshsalesConfiguration.model');db['FreshsalesField']=db['sequelize'][_0x734b('0x12')]('../api/intFreshsalesField/intFreshsalesField.model');db[_0x734b('0x8b')]=db[_0x734b('0x3')][_0x734b('0x12')]('../api/integration/integration.model');db['Network']=db[_0x734b('0x3')][_0x734b('0x12')]('../api/network/network.model');db[_0x734b('0xc0')]=db['sequelize']['import']('../api/chatQueueReport/chatQueueReport.model');db[_0x734b('0xc1')]=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0xc2'));db[_0x734b('0xc3')]=db[_0x734b('0x3')][_0x734b('0x12')]('../api/jscriptyAnswerReport/jscriptyAnswerReport.model');db[_0x734b('0xc4')]=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0xc5'));db['JscriptySessionReport']=db['sequelize']['import'](_0x734b('0xc6'));db[_0x734b('0xc7')]=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0xc8'));db[_0x734b('0xc9')]=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0xca'));db[_0x734b('0xcb')]=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0xcc'));db['JscriptyProject']=db['sequelize'][_0x734b('0x12')](_0x734b('0xcd'));db[_0x734b('0xce')]=db['sequelize'][_0x734b('0x12')](_0x734b('0xcf'));db[_0x734b('0xd0')]=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0xd1'));db[_0x734b('0xd2')]=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0xd3'));db[_0x734b('0xd4')]=db[_0x734b('0x3')]['import'](_0x734b('0xd5'));db['SquareMessage']=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0xd6'));db[_0x734b('0xd7')]=db[_0x734b('0x3')]['import'](_0x734b('0xd8'));db[_0x734b('0xd9')]=db['sequelize'][_0x734b('0x12')](_0x734b('0xda'));db[_0x734b('0xdb')]=db[_0x734b('0x3')]['import']('../api/campaign/campaign.model');db[_0x734b('0xdc')]=db[_0x734b('0x3')]['import'](_0x734b('0xdd'));db[_0x734b('0xde')]=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0xdf'));db['Plugin']=db['sequelize'][_0x734b('0x12')](_0x734b('0xe0'));db[_0x734b('0xe1')]=db['sequelize'][_0x734b('0x12')](_0x734b('0xe2'));db[_0x734b('0xe3')]=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0xe4'));db[_0x734b('0xe5')]=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0xe6'));db['OpenchannelTransferReport']=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0xe7'));db[_0x734b('0xe8')]=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0xe9'));db[_0x734b('0xea')]=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0xeb'));db[_0x734b('0xec')]=db['sequelize'][_0x734b('0x12')](_0x734b('0xed'));db['UserProfile']=db['sequelize'][_0x734b('0x12')](_0x734b('0xee'));db[_0x734b('0xef')]=db[_0x734b('0x3')]['import'](_0x734b('0xf0'));db[_0x734b('0xf1')]=db['sequelize'][_0x734b('0x12')](_0x734b('0xf2'));db[_0x734b('0xf3')]=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0xf4'));db[_0x734b('0xf5')]=db[_0x734b('0x3')]['import'](_0x734b('0xf6'));db[_0x734b('0xf7')]=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0xf8'));db['WhatsappInteraction']=db['sequelize'][_0x734b('0x12')](_0x734b('0xf9'));db['WhatsappMessage']=db[_0x734b('0x3')]['import'](_0x734b('0xfa'));db[_0x734b('0xfb')]=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0xfc'));db[_0x734b('0xfd')]=db[_0x734b('0x3')]['import']('../api/whatsappTransferReport/whatsappTransferReport.model');db[_0x734b('0xfe')]=db[_0x734b('0x3')][_0x734b('0x12')]('../api/whatsappQueue/whatsappQueue.model');db[_0x734b('0xff')]=db[_0x734b('0x3')][_0x734b('0x12')]('../api/cloudProvider/cloudProvider.model');db[_0x734b('0x100')]=db[_0x734b('0x3')][_0x734b('0x12')](_0x734b('0x101'));db['TeamVoicePrefix']=db['sequelize'][_0x734b('0x12')](_0x734b('0x102'));db[_0x734b('0x103')]=db['sequelize'][_0x734b('0x12')]('../api/userVoicePrefix/userVoicePrefix.model');db[_0x734b('0x11')][_0x734b('0x104')](db[_0x734b('0x21')],{'as':_0x734b('0x21'),'onDelete':_0x734b('0x105'),'foreignKey':'UserId'});db[_0x734b('0x11')][_0x734b('0x106')](db['VoiceRecording'],{'as':'Recordings','foreignKey':_0x734b('0x107')});db[_0x734b('0x11')]['hasMany'](db[_0x734b('0x2f')],{'as':_0x734b('0x108'),'foreignKey':'UserId'});db[_0x734b('0x11')]['hasMany'](db['VoiceExtension'],{'as':'Extensions','onDelete':_0x734b('0x105'),'hooks':!![]});db['User'][_0x734b('0x106')](db['CmHopperFinal'],{'as':_0x734b('0x109'),'foreignKey':'UserId'});db[_0x734b('0x11')][_0x734b('0x106')](db[_0x734b('0x10a')],{'as':'HopperHistory','foreignKey':_0x734b('0x107')});db[_0x734b('0x11')]['hasMany'](db[_0x734b('0x72')],{'as':'ReportAgentPreview','foreignKey':_0x734b('0x107')});db[_0x734b('0x11')]['hasMany'](db[_0x734b('0x5d')],{'as':_0x734b('0x10b'),'foreignKey':_0x734b('0x107')});db[_0x734b('0x11')]['hasMany'](db[_0x734b('0x63')],{'as':'ChatInteractions','foreignKey':'UserId'});db[_0x734b('0x11')]['hasMany'](db[_0x734b('0x56')],{'as':'SmsInteractions','foreignKey':_0x734b('0x107')});db[_0x734b('0x11')][_0x734b('0x106')](db[_0x734b('0x4f')],{'as':'FaxInteractions','foreignKey':'UserId'});db[_0x734b('0x11')][_0x734b('0x106')](db[_0x734b('0x43')],{'as':_0x734b('0x10c'),'foreignKey':_0x734b('0x107')});db[_0x734b('0x11')]['hasMany'](db[_0x734b('0x10d')],{'as':'WhatsappInteractions','foreignKey':_0x734b('0x107')});db[_0x734b('0x11')][_0x734b('0x106')](db['UserNotification'],{'as':'UserNotifications','foreignKey':_0x734b('0x10e')});db[_0x734b('0x11')][_0x734b('0x10f')](db[_0x734b('0x110')],{'as':_0x734b('0x110'),'foreignKey':_0x734b('0x111')});db[_0x734b('0x11')][_0x734b('0x112')](db[_0x734b('0x67')],{'as':'Groups','through':_0x734b('0x113')});db['User'][_0x734b('0x112')](db['CmContact'],{'as':_0x734b('0x114'),'through':'cm_user_has_contacts'});db[_0x734b('0x11')][_0x734b('0x112')](db['CmList'],{'as':_0x734b('0x115'),'through':_0x734b('0x116')});db[_0x734b('0x11')][_0x734b('0x112')](db[_0x734b('0xd7')],{'through':_0x734b('0x117')});db[_0x734b('0x11')][_0x734b('0x112')](db[_0x734b('0x43')],{'as':_0x734b('0x10c'),'through':'user_has_mail_interactions'});db[_0x734b('0x11')][_0x734b('0x112')](db[_0x734b('0x63')],{'as':'ChatInteractions','through':_0x734b('0x118')});db['User'][_0x734b('0x112')](db['FaxInteraction'],{'as':'FaxInteractions','through':_0x734b('0x119')});db['User'][_0x734b('0x112')](db[_0x734b('0x56')],{'as':_0x734b('0x11a'),'through':_0x734b('0x11b')});db[_0x734b('0x11')][_0x734b('0x112')](db['OpenchannelInteraction'],{'as':_0x734b('0x10b'),'through':_0x734b('0x11c')});db[_0x734b('0x11')][_0x734b('0x112')](db[_0x734b('0x10d')],{'as':_0x734b('0x11d'),'through':_0x734b('0x11e')});db[_0x734b('0x11')][_0x734b('0x112')](db['VoiceQueue'],{'as':'VoiceQueues','through':'UserVoiceQueue','required':![]});db[_0x734b('0x11')][_0x734b('0x112')](db[_0x734b('0xec')],{'as':_0x734b('0x11f'),'through':'UserVoicePrefix','required':![]});db[_0x734b('0x11')][_0x734b('0x112')](db[_0x734b('0x40')],{'as':_0x734b('0x120'),'through':'UserMailQueue','required':![]});db['User']['belongsToMany'](db['ChatQueue'],{'as':'ChatQueues','through':_0x734b('0x33'),'required':![],'hooks':!![]});db[_0x734b('0x11')][_0x734b('0x112')](db[_0x734b('0x121')],{'as':'FaxQueues','through':_0x734b('0x37'),'required':![]});db[_0x734b('0x11')][_0x734b('0x112')](db[_0x734b('0x58')],{'as':'SmsQueues','through':'UserSmsQueue','required':![]});db[_0x734b('0x11')][_0x734b('0x112')](db[_0x734b('0x122')],{'as':_0x734b('0x123'),'through':_0x734b('0x3a'),'required':![]});db[_0x734b('0x11')]['belongsToMany'](db[_0x734b('0xfe')],{'as':'WhatsappQueues','through':_0x734b('0x3b'),'required':![]});db[_0x734b('0x11')][_0x734b('0x112')](db[_0x734b('0xea')],{'through':_0x734b('0x116')});db[_0x734b('0x11')][_0x734b('0x112')](db[_0x734b('0x5f')],{'as':_0x734b('0x124'),'through':_0x734b('0x125')});db[_0x734b('0x11')][_0x734b('0x112')](db['FaxAccount'],{'as':_0x734b('0x126'),'through':_0x734b('0x127')});db[_0x734b('0x11')][_0x734b('0x112')](db['MailAccount'],{'as':'MailAccounts','through':_0x734b('0x128')});db[_0x734b('0x11')]['belongsToMany'](db[_0x734b('0x5a')],{'as':'OpenchannelAccounts','through':'user_has_openchannel_accounts'});db[_0x734b('0x11')][_0x734b('0x112')](db[_0x734b('0x53')],{'as':_0x734b('0x129'),'through':'user_has_sms_accounts'});db[_0x734b('0x11')]['belongsToMany'](db[_0x734b('0xf5')],{'as':_0x734b('0x12a'),'through':_0x734b('0x12b')});db[_0x734b('0x11')][_0x734b('0x112')](db[_0x734b('0xd2')],{'as':'SquareProjects','through':'user_has_square_projects'});db[_0x734b('0x14')][_0x734b('0x106')](db[_0x734b('0x17')],{'as':'SpiedAgents','onDelete':'cascade','foreignKey':_0x734b('0x12c')});db['VoiceContext'][_0x734b('0x106')](db[_0x734b('0x17')],{'onDelete':_0x734b('0x105')});db[_0x734b('0x17')][_0x734b('0x106')](db['VoiceExtension'],{'as':_0x734b('0x12d'),'onDelete':'cascade'});db[_0x734b('0x19')][_0x734b('0x112')](db['Sound'],{'as':_0x734b('0x12e'),'through':_0x734b('0x12f')});db['VoiceQueue'][_0x734b('0x106')](db[_0x734b('0x2f')],{'as':_0x734b('0x130'),'foreignKey':_0x734b('0x131')});db['VoiceQueue']['hasMany'](db[_0x734b('0x6c')],{'as':_0x734b('0x132'),'foreignKey':_0x734b('0x131')});db[_0x734b('0x1b')][_0x734b('0x106')](db[_0x734b('0x133')],{'as':'HopperFinals','foreignKey':_0x734b('0x131')});db['VoiceQueue']['hasMany'](db[_0x734b('0x10a')],{'as':_0x734b('0x134'),'foreignKey':_0x734b('0x131')});db[_0x734b('0x1b')][_0x734b('0x106')](db['ReportAgentPreview'],{'as':_0x734b('0x72'),'foreignKey':_0x734b('0x131')});db[_0x734b('0x1b')][_0x734b('0x106')](db[_0x734b('0x6e')],{'as':'HopperBlacks','foreignKey':'VoiceQueueId'});db['VoiceQueue'][_0x734b('0x106')](db[_0x734b('0x135')],{'as':_0x734b('0x136'),'foreignKey':_0x734b('0x131')});db[_0x734b('0x1b')][_0x734b('0x10f')](db[_0x734b('0x2b')],{'as':'Trunk','foreignKey':_0x734b('0x137')});db['VoiceQueue']['belongsTo'](db[_0x734b('0x2b')],{'as':_0x734b('0x138'),'foreignKey':_0x734b('0x139')});db['VoiceQueue']['belongsTo'](db[_0x734b('0x7c')],{'as':_0x734b('0x7c'),'foreignKey':'IntervalId'});db[_0x734b('0x1b')]['belongsTo'](db[_0x734b('0x7e')],{'as':'mandatoryDispositionPause','foreignKey':_0x734b('0x13a')});db[_0x734b('0x1b')][_0x734b('0x112')](db['CmList'],{'as':_0x734b('0x115'),'through':_0x734b('0x13b')});db[_0x734b('0x1b')][_0x734b('0x112')](db['User'],{'as':_0x734b('0x13c'),'through':_0x734b('0x31')});db[_0x734b('0x1b')][_0x734b('0x112')](db[_0x734b('0xd7')],{'as':'Teams','through':'TeamVoiceQueue'});db['VoiceQueue']['belongsToMany'](db[_0x734b('0xea')],{'as':_0x734b('0x13d'),'through':'voice_queues_has_cm_blacklists'});db[_0x734b('0x1d')]['belongsTo'](db[_0x734b('0x11')],{'as':'User','foreignKey':_0x734b('0x107')});db[_0x734b('0x1f')][_0x734b('0x10f')](db[_0x734b('0x11')],{'as':_0x734b('0x11'),'foreignKey':_0x734b('0x107')});db['VoiceMail']['hasMany'](db[_0x734b('0x23')],{'as':'Messages','onDelete':_0x734b('0x105'),'foreignKey':_0x734b('0x13e'),'sourceKey':_0x734b('0x13f')});db[_0x734b('0x23')][_0x734b('0x10f')](db['VoiceMail'],{'foreignKey':_0x734b('0x13e'),'targetKey':_0x734b('0x13f')});db[_0x734b('0x25')]['hasMany'](db[_0x734b('0x28')],{'as':'QueueCalls','foreignKey':_0x734b('0x140'),'constraints':![]});db[_0x734b('0x25')][_0x734b('0x106')](db[_0x734b('0x26')],{'as':_0x734b('0x141'),'foreignKey':_0x734b('0x140'),'constraints':![]});db[_0x734b('0x25')][_0x734b('0x10f')](db[_0x734b('0x11')],{'as':_0x734b('0x11'),'foreignKey':_0x734b('0x107')});db[_0x734b('0x25')][_0x734b('0x10f')](db[_0x734b('0x6b')],{'as':_0x734b('0x142'),'foreignKey':_0x734b('0x143')});db[_0x734b('0x3c')][_0x734b('0x10f')](db[_0x734b('0x3f')],{'as':_0x734b('0x3f'),'foreignKey':'MailAccountId'});db[_0x734b('0x3d')][_0x734b('0x10f')](db[_0x734b('0x3f')],{'as':_0x734b('0x3f'),'foreignKey':_0x734b('0x144')});db['MailAccount'][_0x734b('0x104')](db[_0x734b('0x3c')],{'as':'Imap','onDelete':_0x734b('0x105')});db['MailAccount'][_0x734b('0x104')](db[_0x734b('0x3d')],{'as':_0x734b('0x145'),'onDelete':'cascade'});db[_0x734b('0x3f')][_0x734b('0x106')](db[_0x734b('0x78')],{'as':'Dispositions','foreignKey':_0x734b('0x144'),'onDelete':'cascade'});db[_0x734b('0x3f')]['hasMany'](db[_0x734b('0x146')],{'as':'Answers','foreignKey':_0x734b('0x144')});db[_0x734b('0x3f')]['hasMany'](db[_0x734b('0x45')],{'as':_0x734b('0x147'),'foreignKey':'MailAccountId'});db['MailAccount']['hasMany'](db[_0x734b('0x43')],{'as':'Interactions'});db[_0x734b('0x3f')]['hasMany'](db[_0x734b('0x47')],{'as':_0x734b('0x12d')});db[_0x734b('0x3f')][_0x734b('0x10f')](db[_0x734b('0xea')],{'as':_0x734b('0x148'),'foreignKey':_0x734b('0x149')});db[_0x734b('0x3f')][_0x734b('0x10f')](db['Template'],{'as':_0x734b('0x86'),'foreignKey':_0x734b('0x14a')});db['MailAccount'][_0x734b('0x10f')](db['Pause'],{'as':'mandatoryDispositionPause','foreignKey':_0x734b('0x13a')});db['MailAccount']['belongsToMany'](db[_0x734b('0x11')],{'as':'Agents','through':_0x734b('0x128')});db[_0x734b('0x40')]['belongsToMany'](db['User'],{'as':_0x734b('0x13c'),'through':_0x734b('0x35')});db[_0x734b('0x40')][_0x734b('0x112')](db['Team'],{'through':_0x734b('0x14b'),'as':_0x734b('0x14c')});db[_0x734b('0x43')][_0x734b('0x106')](db['MailMessage'],{'as':'Messages','onDelete':_0x734b('0x105'),'foreignKey':_0x734b('0x14d')});db['MailInteraction']['belongsTo'](db[_0x734b('0x3f')],{'as':'Account','foreignKey':_0x734b('0x144')});db[_0x734b('0x43')][_0x734b('0x10f')](db[_0x734b('0x6b')],{'as':_0x734b('0x142'),'foreignKey':_0x734b('0x143')});db[_0x734b('0x43')][_0x734b('0x10f')](db[_0x734b('0x11')],{'as':_0x734b('0x14e'),'foreignKey':'UserId'});db[_0x734b('0x43')]['belongsToMany'](db[_0x734b('0x14f')],{'through':_0x734b('0x150'),'as':_0x734b('0x151')});db[_0x734b('0x43')][_0x734b('0x112')](db[_0x734b('0x14f')],{'through':_0x734b('0x150'),'as':_0x734b('0x152')});db[_0x734b('0x43')]['belongsToMany'](db[_0x734b('0x11')],{'as':_0x734b('0x153'),'through':_0x734b('0x154'),'foreignKey':'MailInteractionId'});db[_0x734b('0x45')][_0x734b('0x106')](db[_0x734b('0xde')],{'as':_0x734b('0x155'),'onDelete':_0x734b('0x105')});db[_0x734b('0x45')][_0x734b('0x10f')](db[_0x734b('0x11')],{'as':'User'});db['MailMessage']['belongsTo'](db[_0x734b('0x6b')],{'onDelete':_0x734b('0x105'),'as':'Contact'});db[_0x734b('0x45')]['belongsTo'](db['MailInteraction'],{'as':_0x734b('0x156'),'foreignKey':'MailInteractionId'});db[_0x734b('0x45')]['belongsTo'](db[_0x734b('0x3f')],{'as':_0x734b('0x157'),'foreignKey':_0x734b('0x144')});db['MailMessage'][_0x734b('0x10f')](db['ChatWebsite'],{'as':'ChatWebsite','foreignKey':_0x734b('0x158')});db['MailMessage']['belongsTo'](db[_0x734b('0x159')],{'as':_0x734b('0x159'),'foreignKey':_0x734b('0x15a')});db[_0x734b('0x47')]['belongsTo'](db['User'],{'onDelete':_0x734b('0x15b')});db[_0x734b('0x47')][_0x734b('0x10f')](db[_0x734b('0x40')],{'onDelete':_0x734b('0x15b')});db[_0x734b('0x47')][_0x734b('0x10f')](db[_0x734b('0x3f')],{'onDelete':_0x734b('0x15b')});db[_0x734b('0x47')][_0x734b('0x10f')](db['Interval'],{'onDelete':_0x734b('0x15b'),'foreignKey':_0x734b('0x15c')});db[_0x734b('0x47')][_0x734b('0x10f')](db[_0x734b('0x14f')],{'onDelete':'restrict','foreignKey':'TagId'});db['MailQueueReport'][_0x734b('0x10f')](db[_0x734b('0x3f')],{});db[_0x734b('0x48')]['belongsTo'](db[_0x734b('0xea')],{'as':'List','foreignKey':'ListId'});db[_0x734b('0x48')][_0x734b('0x10f')](db[_0x734b('0x6b')],{'as':_0x734b('0x142'),'foreignKey':_0x734b('0x143')});db['MailQueueReport'][_0x734b('0x10f')](db[_0x734b('0x43')],{});db[_0x734b('0x48')][_0x734b('0x10f')](db[_0x734b('0x45')],{});db[_0x734b('0x48')]['belongsTo'](db[_0x734b('0x11')],{});db[_0x734b('0x48')][_0x734b('0x10f')](db[_0x734b('0x40')],{});db['Dashboard'][_0x734b('0x106')](db[_0x734b('0x4b')],{'as':'Items','onDelete':_0x734b('0x105')});db[_0x734b('0x4c')][_0x734b('0x106')](db[_0x734b('0x78')],{'as':_0x734b('0x15d'),'foreignKey':'FaxAccountId','onDelete':'cascade'});db[_0x734b('0x4c')][_0x734b('0x106')](db[_0x734b('0x146')],{'as':'Answers','foreignKey':_0x734b('0x15e')});db[_0x734b('0x4c')][_0x734b('0x106')](db[_0x734b('0x4f')],{'as':_0x734b('0x15f')});db[_0x734b('0x4c')][_0x734b('0x106')](db[_0x734b('0x4e')],{'as':_0x734b('0x12d')});db[_0x734b('0x4c')]['hasMany'](db[_0x734b('0x17')],{'as':_0x734b('0x160'),'onDelete':_0x734b('0x105')});db['FaxAccount'][_0x734b('0x106')](db[_0x734b('0x50')],{'as':_0x734b('0x147')});db[_0x734b('0x4c')][_0x734b('0x10f')](db[_0x734b('0x2b')],{'as':_0x734b('0x2b')});db[_0x734b('0x4c')][_0x734b('0x10f')](db[_0x734b('0xea')],{'as':'List','foreignKey':_0x734b('0x149')});db[_0x734b('0x4c')][_0x734b('0x10f')](db[_0x734b('0x7e')],{'as':_0x734b('0x161'),'foreignKey':'mandatoryDispositionPauseId'});db['FaxAccount'][_0x734b('0x112')](db[_0x734b('0x11')],{'as':_0x734b('0x13c'),'through':_0x734b('0x127')});db['FaxApplication'][_0x734b('0x10f')](db[_0x734b('0x11')],{'onDelete':'restrict'});db[_0x734b('0x4e')][_0x734b('0x10f')](db[_0x734b('0x121')],{'onDelete':_0x734b('0x15b')});db[_0x734b('0x4e')][_0x734b('0x10f')](db[_0x734b('0x4c')],{'onDelete':_0x734b('0x15b')});db['FaxApplication']['belongsTo'](db[_0x734b('0x14f')],{'onDelete':'restrict','foreignKey':_0x734b('0x162')});db[_0x734b('0x4f')]['hasMany'](db[_0x734b('0x50')],{'as':_0x734b('0x147'),'onDelete':_0x734b('0x105'),'foreignKey':'FaxInteractionId'});db['FaxInteraction'][_0x734b('0x10f')](db[_0x734b('0x4c')],{'as':'Account','foreignKey':_0x734b('0x15e')});db['FaxInteraction'][_0x734b('0x10f')](db[_0x734b('0x6b')],{'as':_0x734b('0x142'),'foreignKey':_0x734b('0x143')});db[_0x734b('0x4f')][_0x734b('0x10f')](db[_0x734b('0x11')],{'as':_0x734b('0x14e'),'foreignKey':_0x734b('0x107')});db[_0x734b('0x4f')][_0x734b('0x112')](db[_0x734b('0x14f')],{'through':_0x734b('0x163'),'as':'Tags'});db[_0x734b('0x4f')][_0x734b('0x112')](db[_0x734b('0x14f')],{'through':'fax_interaction_has_tags','as':_0x734b('0x152')});db['FaxInteraction'][_0x734b('0x112')](db['User'],{'as':_0x734b('0x153'),'through':'user_has_fax_interactions','foreignKey':_0x734b('0x164')});db[_0x734b('0x50')][_0x734b('0x10f')](db[_0x734b('0x11')],{'onDelete':_0x734b('0x105'),'as':_0x734b('0x11')});db[_0x734b('0x50')][_0x734b('0x10f')](db[_0x734b('0x4f')],{'as':_0x734b('0x156'),'foreignKey':_0x734b('0x164')});db['FaxMessage'][_0x734b('0x10f')](db[_0x734b('0x6b')],{'onDelete':_0x734b('0x105'),'as':_0x734b('0x142')});db[_0x734b('0x50')]['belongsTo'](db['Attachment'],{'as':_0x734b('0xde'),'foreignKey':_0x734b('0x165')});db[_0x734b('0x50')]['belongsTo'](db[_0x734b('0x4c')],{'as':_0x734b('0x157'),'foreignKey':_0x734b('0x15e')});db[_0x734b('0x121')][_0x734b('0x112')](db[_0x734b('0x11')],{'as':_0x734b('0x13c'),'through':_0x734b('0x37')});db['FaxQueue'][_0x734b('0x112')](db['Team'],{'through':_0x734b('0x166'),'as':_0x734b('0x14c')});db[_0x734b('0x167')][_0x734b('0x10f')](db[_0x734b('0x4c')],{});db[_0x734b('0x167')][_0x734b('0x10f')](db['CmList'],{'as':_0x734b('0x148'),'foreignKey':_0x734b('0x149')});db['FaxQueueReport']['belongsTo'](db[_0x734b('0x6b')],{'as':'Contact','foreignKey':'ContactId'});db[_0x734b('0x167')]['belongsTo'](db['FaxInteraction'],{});db[_0x734b('0x167')][_0x734b('0x10f')](db[_0x734b('0x50')],{});db[_0x734b('0x167')][_0x734b('0x10f')](db[_0x734b('0x11')],{});db[_0x734b('0x167')][_0x734b('0x10f')](db['FaxQueue'],{});db['SmsAccount'][_0x734b('0x106')](db[_0x734b('0x78')],{'as':_0x734b('0x15d'),'foreignKey':_0x734b('0x168'),'onDelete':'cascade'});db[_0x734b('0x53')][_0x734b('0x106')](db[_0x734b('0x146')],{'as':_0x734b('0x169'),'foreignKey':_0x734b('0x168')});db[_0x734b('0x53')]['hasMany'](db[_0x734b('0x16a')],{'as':_0x734b('0x147'),'foreignKey':_0x734b('0x168')});db[_0x734b('0x53')][_0x734b('0x106')](db['SmsInteraction'],{'as':_0x734b('0x15f')});db[_0x734b('0x53')][_0x734b('0x106')](db[_0x734b('0x16b')],{'as':'Applications'});db[_0x734b('0x53')][_0x734b('0x10f')](db[_0x734b('0xea')],{'as':_0x734b('0x148'),'foreignKey':_0x734b('0x149')});db[_0x734b('0x53')][_0x734b('0x10f')](db[_0x734b('0x7e')],{'as':'mandatoryDispositionPause','foreignKey':_0x734b('0x13a')});db[_0x734b('0x53')][_0x734b('0x112')](db[_0x734b('0x11')],{'as':_0x734b('0x13c'),'through':'user_has_sms_accounts'});db[_0x734b('0x16b')]['belongsTo'](db[_0x734b('0x11')],{'onDelete':_0x734b('0x15b')});db['SmsApplication'][_0x734b('0x10f')](db[_0x734b('0x58')],{'onDelete':_0x734b('0x15b')});db['SmsApplication']['belongsTo'](db['SmsAccount'],{'onDelete':_0x734b('0x15b')});db[_0x734b('0x16b')][_0x734b('0x10f')](db[_0x734b('0x7c')],{'onDelete':_0x734b('0x15b'),'foreignKey':'IntervalId'});db[_0x734b('0x16b')][_0x734b('0x10f')](db[_0x734b('0x14f')],{'onDelete':_0x734b('0x15b'),'foreignKey':_0x734b('0x162')});db[_0x734b('0x56')][_0x734b('0x106')](db['SmsMessage'],{'as':_0x734b('0x147'),'onDelete':_0x734b('0x105'),'foreignKey':'SmsInteractionId'});db['SmsInteraction'][_0x734b('0x10f')](db[_0x734b('0x53')],{'as':_0x734b('0x157'),'foreignKey':'SmsAccountId'});db[_0x734b('0x56')][_0x734b('0x10f')](db[_0x734b('0x6b')],{'as':_0x734b('0x142'),'foreignKey':'ContactId'});db[_0x734b('0x56')][_0x734b('0x10f')](db['User'],{'as':_0x734b('0x14e'),'foreignKey':_0x734b('0x107')});db[_0x734b('0x56')]['belongsToMany'](db['Tag'],{'through':_0x734b('0x16c'),'as':_0x734b('0x151')});db[_0x734b('0x56')]['belongsToMany'](db[_0x734b('0x14f')],{'through':_0x734b('0x16c'),'as':_0x734b('0x152')});db['SmsInteraction']['belongsToMany'](db[_0x734b('0x11')],{'as':'Users','through':'user_has_sms_interactions','foreignKey':_0x734b('0x16d')});db[_0x734b('0x16a')][_0x734b('0x10f')](db[_0x734b('0x11')],{'as':'User'});db[_0x734b('0x16a')]['belongsTo'](db['CmContact'],{'onDelete':'cascade','as':'Contact'});db[_0x734b('0x16a')][_0x734b('0x10f')](db[_0x734b('0x56')],{'onDelete':_0x734b('0x105'),'as':_0x734b('0x156'),'foreignKey':_0x734b('0x16d')});db[_0x734b('0x16a')]['belongsTo'](db[_0x734b('0x53')],{'as':_0x734b('0x157'),'foreignKey':_0x734b('0x168')});db[_0x734b('0x58')][_0x734b('0x112')](db[_0x734b('0x11')],{'as':_0x734b('0x13c'),'through':_0x734b('0x38'),'foreignKey':_0x734b('0x16e')});db['SmsQueue']['belongsToMany'](db['Team'],{'through':'team_has_sms_queues','as':_0x734b('0x14c')});db[_0x734b('0x5a')]['hasMany'](db[_0x734b('0x78')],{'as':_0x734b('0x15d'),'foreignKey':'OpenchannelAccountId','onDelete':_0x734b('0x105')});db[_0x734b('0x5a')]['hasMany'](db[_0x734b('0x146')],{'as':_0x734b('0x169'),'foreignKey':_0x734b('0x16f')});db[_0x734b('0x5a')][_0x734b('0x106')](db[_0x734b('0x5d')],{'as':'Interactions','foreignKey':_0x734b('0x16f')});db[_0x734b('0x5a')][_0x734b('0x106')](db['OpenchannelMessage'],{'as':'Messages','foreignKey':_0x734b('0x16f')});db['OpenchannelAccount'][_0x734b('0x106')](db[_0x734b('0x5b')],{'as':_0x734b('0x12d'),'foreignKey':_0x734b('0x16f')});db['OpenchannelAccount'][_0x734b('0x10f')](db[_0x734b('0xea')],{'as':_0x734b('0x148'),'foreignKey':'ListId'});db[_0x734b('0x5a')][_0x734b('0x10f')](db[_0x734b('0x7e')],{'as':_0x734b('0x161'),'foreignKey':_0x734b('0x13a')});db['OpenchannelAccount'][_0x734b('0x112')](db[_0x734b('0x11')],{'as':_0x734b('0x13c'),'through':_0x734b('0x170')});db['OpenchannelApplication'][_0x734b('0x10f')](db[_0x734b('0x11')],{'onDelete':'restrict'});db[_0x734b('0x5b')][_0x734b('0x10f')](db['OpenchannelQueue'],{'onDelete':_0x734b('0x15b'),'foreignKey':_0x734b('0x171')});db[_0x734b('0x5b')][_0x734b('0x10f')](db[_0x734b('0x5a')],{'onDelete':_0x734b('0x15b'),'foreignKey':'OpenchannelAccountId'});db['OpenchannelApplication'][_0x734b('0x10f')](db['Interval'],{'onDelete':_0x734b('0x15b'),'foreignKey':'IntervalId'});db[_0x734b('0x5b')]['belongsTo'](db[_0x734b('0x14f')],{'onDelete':_0x734b('0x15b'),'foreignKey':'TagId'});db[_0x734b('0x5d')][_0x734b('0x106')](db[_0x734b('0x172')],{'as':_0x734b('0x147'),'onDelete':_0x734b('0x105'),'foreignKey':_0x734b('0x173')});db[_0x734b('0x5d')][_0x734b('0x10f')](db['OpenchannelAccount'],{'as':_0x734b('0x157'),'foreignKey':_0x734b('0x16f')});db['OpenchannelInteraction'][_0x734b('0x10f')](db[_0x734b('0x6b')],{'as':_0x734b('0x142'),'foreignKey':'ContactId'});db[_0x734b('0x5d')][_0x734b('0x10f')](db[_0x734b('0x11')],{'as':_0x734b('0x14e'),'foreignKey':_0x734b('0x107')});db[_0x734b('0x5d')][_0x734b('0x112')](db[_0x734b('0x14f')],{'through':'openchannel_interaction_has_tags','as':_0x734b('0x151')});db[_0x734b('0x5d')][_0x734b('0x112')](db[_0x734b('0x14f')],{'through':'openchannel_interaction_has_tags','as':_0x734b('0x152')});db[_0x734b('0x5d')]['belongsToMany'](db['User'],{'as':_0x734b('0x153'),'through':_0x734b('0x11c'),'foreignKey':'OpenchannelInteractionId'});db['OpenchannelMessage'][_0x734b('0x10f')](db[_0x734b('0x11')],{'onDelete':_0x734b('0x105'),'as':'User'});db['OpenchannelMessage'][_0x734b('0x10f')](db[_0x734b('0x6b')],{'onDelete':_0x734b('0x105'),'as':_0x734b('0x142')});db[_0x734b('0x172')][_0x734b('0x10f')](db['OpenchannelInteraction'],{'onDelete':'cascade','as':'Interaction','foreignKey':_0x734b('0x173')});db[_0x734b('0x172')][_0x734b('0x10f')](db[_0x734b('0xde')],{'as':'Attachment','foreignKey':_0x734b('0x165')});db['OpenchannelMessage'][_0x734b('0x10f')](db[_0x734b('0x5a')],{'as':_0x734b('0x157'),'foreignKey':_0x734b('0x16f')});db['OpenchannelQueue'][_0x734b('0x112')](db[_0x734b('0x11')],{'as':'Agents','through':_0x734b('0x3a'),'foreignKey':_0x734b('0x171')});db['OpenchannelQueue'][_0x734b('0x112')](db[_0x734b('0xd7')],{'through':_0x734b('0x174'),'as':'Teams'});db[_0x734b('0x5f')][_0x734b('0x106')](db[_0x734b('0x78')],{'as':_0x734b('0x15d'),'foreignKey':_0x734b('0x158'),'onDelete':_0x734b('0x105')});db[_0x734b('0x5f')][_0x734b('0x106')](db[_0x734b('0x146')],{'as':'Answers','foreignKey':_0x734b('0x158')});db[_0x734b('0x5f')][_0x734b('0x106')](db[_0x734b('0x175')],{'as':_0x734b('0x176')});db[_0x734b('0x5f')]['hasMany'](db['ChatInteraction'],{'as':_0x734b('0x15f')});db[_0x734b('0x5f')][_0x734b('0x106')](db[_0x734b('0x177')],{'as':_0x734b('0x12d')});db[_0x734b('0x5f')][_0x734b('0x106')](db['ChatMessage'],{'as':_0x734b('0x147')});db['ChatWebsite']['belongsTo'](db[_0x734b('0xea')],{'as':_0x734b('0x148'),'foreignKey':'ListId'});db[_0x734b('0x5f')][_0x734b('0x10f')](db[_0x734b('0x7c')],{'as':_0x734b('0x7c'),'foreignKey':_0x734b('0x15c')});db[_0x734b('0x5f')][_0x734b('0x10f')](db['MailAccount'],{'as':_0x734b('0x3f'),'foreignKey':_0x734b('0x144')});db[_0x734b('0x5f')][_0x734b('0x10f')](db[_0x734b('0x7e')],{'as':'mandatoryDispositionPause','foreignKey':'mandatoryDispositionPauseId'});db[_0x734b('0x5f')][_0x734b('0x112')](db[_0x734b('0x11')],{'as':_0x734b('0x13c'),'through':'user_has_chat_websites'});db[_0x734b('0x60')]['belongsTo'](db[_0x734b('0x5a')],{});db['OpenchannelQueueReport']['belongsTo'](db[_0x734b('0xea')],{'as':'List','foreignKey':_0x734b('0x149')});db[_0x734b('0x60')][_0x734b('0x10f')](db['CmContact'],{'as':_0x734b('0x142'),'foreignKey':_0x734b('0x143')});db['OpenchannelQueueReport']['belongsTo'](db['OpenchannelInteraction'],{});db[_0x734b('0x60')]['belongsTo'](db['OpenchannelMessage'],{});db[_0x734b('0x60')][_0x734b('0x10f')](db[_0x734b('0x11')],{});db[_0x734b('0x60')][_0x734b('0x10f')](db[_0x734b('0x122')],{});db['ChatApplication']['belongsTo'](db['User'],{'as':_0x734b('0x178'),'foreignKey':'UserId','onDelete':'restrict'});db[_0x734b('0x177')][_0x734b('0x10f')](db['ChatQueue'],{'as':_0x734b('0x179'),'foreignKey':'ChatQueueId','onDelete':_0x734b('0x15b')});db[_0x734b('0x177')][_0x734b('0x10f')](db[_0x734b('0x5f')],{'as':'Website','foreignKey':_0x734b('0x158'),'onDelete':_0x734b('0x15b')});db[_0x734b('0x177')][_0x734b('0x10f')](db[_0x734b('0x14f')],{'onDelete':_0x734b('0x15b'),'foreignKey':_0x734b('0x162')});db[_0x734b('0x63')]['hasMany'](db[_0x734b('0x64')],{'as':_0x734b('0x147'),'onDelete':'cascade','foreignKey':_0x734b('0x17a')});db[_0x734b('0x63')][_0x734b('0x10f')](db[_0x734b('0x5f')],{'as':_0x734b('0x157'),'foreignKey':'ChatWebsiteId'});db[_0x734b('0x63')]['belongsTo'](db[_0x734b('0x6b')],{'as':_0x734b('0x142'),'foreignKey':_0x734b('0x143')});db[_0x734b('0x63')][_0x734b('0x10f')](db[_0x734b('0x11')],{'as':_0x734b('0x14e'),'foreignKey':_0x734b('0x107')});db[_0x734b('0x63')]['belongsToMany'](db[_0x734b('0x14f')],{'through':_0x734b('0x17b'),'as':_0x734b('0x151')});db['ChatInteraction']['belongsToMany'](db[_0x734b('0x14f')],{'through':'chat_interaction_has_tags','as':_0x734b('0x152')});db['ChatInteraction'][_0x734b('0x112')](db[_0x734b('0x11')],{'as':_0x734b('0x153'),'through':_0x734b('0x118'),'foreignKey':_0x734b('0x17a')});db['ChatMessage']['belongsTo'](db[_0x734b('0x11')],{'onDelete':_0x734b('0x105'),'as':_0x734b('0x11')});db[_0x734b('0x64')][_0x734b('0x10f')](db['CmContact'],{'onDelete':'cascade','as':'Contact','foreignKey':'ContactId'});db[_0x734b('0x64')]['belongsTo'](db[_0x734b('0x63')],{'onDelete':_0x734b('0x105'),'as':'Interaction','foreignKey':_0x734b('0x17a')});db[_0x734b('0x64')][_0x734b('0x10f')](db[_0x734b('0xde')],{'as':_0x734b('0xde'),'foreignKey':_0x734b('0x165')});db[_0x734b('0x64')][_0x734b('0x10f')](db[_0x734b('0x5f')],{'as':_0x734b('0x157'),'foreignKey':_0x734b('0x158')});db[_0x734b('0x159')][_0x734b('0x106')](db['Attachment'],{'as':_0x734b('0x155'),'foreignKey':_0x734b('0x15a'),'onDelete':'cascade','hooks':!![]});db[_0x734b('0x159')][_0x734b('0x10f')](db[_0x734b('0x6b')],{'onDelete':_0x734b('0x105'),'as':_0x734b('0x142'),'foreignKey':_0x734b('0x143')});db[_0x734b('0x159')][_0x734b('0x10f')](db[_0x734b('0x5f')],{'as':_0x734b('0x157'),'foreignKey':_0x734b('0x158')});db[_0x734b('0x17c')]['belongsToMany'](db[_0x734b('0x11')],{'as':_0x734b('0x13c'),'through':_0x734b('0x33'),'hooks':!![]});db['ChatQueue'][_0x734b('0x112')](db[_0x734b('0xd7')],{'through':_0x734b('0x17d'),'as':_0x734b('0x14c')});db[_0x734b('0x67')][_0x734b('0x106')](db[_0x734b('0xc1')],{'as':'Messages','foreignKey':_0x734b('0x17e'),'onDelete':_0x734b('0x105')});db[_0x734b('0x67')][_0x734b('0x112')](db['User'],{'as':_0x734b('0x130'),'through':'chat_group_has_users'});db[_0x734b('0x175')][_0x734b('0x10f')](db[_0x734b('0x5f')],{'as':_0x734b('0x17f'),'foreignKey':_0x734b('0x158')});db[_0x734b('0x6a')][_0x734b('0x106')](db[_0x734b('0x6b')],{'as':_0x734b('0x114'),'foreignKey':_0x734b('0x180')});db[_0x734b('0x6b')]['hasMany'](db[_0x734b('0x6c')],{'as':_0x734b('0x132'),'foreignKey':_0x734b('0x143')});db['CmContact'][_0x734b('0x106')](db[_0x734b('0x133')],{'as':'HopperFinals','foreignKey':_0x734b('0x143')});db[_0x734b('0x6b')][_0x734b('0x106')](db[_0x734b('0x10a')],{'as':'HopperHistories','foreignKey':_0x734b('0x143')});db['CmContact'][_0x734b('0x106')](db[_0x734b('0x72')],{'as':_0x734b('0x72'),'foreignKey':_0x734b('0x143')});db[_0x734b('0x6b')][_0x734b('0x106')](db['JscriptySessionReport'],{'as':_0x734b('0x136'),'foreignKey':_0x734b('0x143')});db[_0x734b('0x6b')][_0x734b('0x106')](db[_0x734b('0x5d')],{'as':_0x734b('0x10b'),'foreignKey':'ContactId','onDelete':_0x734b('0x15b')});db[_0x734b('0x6b')][_0x734b('0x106')](db[_0x734b('0x63')],{'as':_0x734b('0x181'),'foreignKey':_0x734b('0x143'),'onDelete':_0x734b('0x15b')});db[_0x734b('0x6b')][_0x734b('0x106')](db[_0x734b('0x56')],{'as':'SmsInteractions','foreignKey':_0x734b('0x143'),'onDelete':_0x734b('0x15b')});db['CmContact'][_0x734b('0x106')](db[_0x734b('0x4f')],{'as':_0x734b('0x182'),'foreignKey':_0x734b('0x143'),'onDelete':_0x734b('0x15b')});db[_0x734b('0x6b')][_0x734b('0x106')](db[_0x734b('0x43')],{'as':_0x734b('0x10c'),'foreignKey':'ContactId','onDelete':_0x734b('0x15b')});db[_0x734b('0x6b')][_0x734b('0x10f')](db[_0x734b('0x6a')],{'as':_0x734b('0x183'),'foreignKey':_0x734b('0x180')});db['CmContact'][_0x734b('0x10f')](db['CmList'],{'as':_0x734b('0x148'),'foreignKey':_0x734b('0x149'),'onDelete':'cascade'});db[_0x734b('0x6b')]['belongsToMany'](db['User'],{'as':_0x734b('0x153'),'through':_0x734b('0x184')});db[_0x734b('0x6b')][_0x734b('0x112')](db['Tag'],{'as':'Tags','through':_0x734b('0x185')});db[_0x734b('0x6b')][_0x734b('0x112')](db['Tag'],{'through':_0x734b('0x185'),'as':_0x734b('0x152')});db[_0x734b('0x6c')][_0x734b('0x10f')](db[_0x734b('0x6b')],{'as':'Contact','foreignKey':_0x734b('0x143'),'onDelete':_0x734b('0x105')});db['CmHopper'][_0x734b('0x10f')](db['CmList'],{'as':_0x734b('0x148'),'foreignKey':_0x734b('0x149'),'onDelete':_0x734b('0x105')});db[_0x734b('0x6c')][_0x734b('0x10f')](db['User'],{'as':_0x734b('0x178'),'foreignKey':_0x734b('0x107')});db[_0x734b('0x6c')][_0x734b('0x10f')](db[_0x734b('0x1b')],{'as':_0x734b('0x179'),'foreignKey':'VoiceQueueId','onDelete':_0x734b('0x105')});db[_0x734b('0x6c')]['belongsTo'](db[_0x734b('0xdb')],{'as':'Campaign','foreignKey':_0x734b('0x186'),'onDelete':_0x734b('0x105')});db[_0x734b('0x6c')][_0x734b('0x10f')](db[_0x734b('0x11')],{'as':_0x734b('0x14e'),'foreignKey':_0x734b('0x187')});db[_0x734b('0x6e')][_0x734b('0x10f')](db[_0x734b('0x6b')],{'as':_0x734b('0x142'),'foreignKey':_0x734b('0x143'),'onDelete':'cascade'});db[_0x734b('0x6e')][_0x734b('0x10f')](db[_0x734b('0xea')],{'as':_0x734b('0x148'),'foreignKey':_0x734b('0x149'),'onDelete':'cascade'});db[_0x734b('0x6e')][_0x734b('0x10f')](db[_0x734b('0x1b')],{'as':_0x734b('0x179'),'foreignKey':'VoiceQueueId','onDelete':_0x734b('0x105')});db[_0x734b('0x6e')][_0x734b('0x10f')](db[_0x734b('0xdb')],{'as':_0x734b('0xdb'),'foreignKey':_0x734b('0x186'),'onDelete':_0x734b('0x105')});db[_0x734b('0x76')][_0x734b('0x106')](db['Condition'],{'as':{'plural':_0x734b('0x188'),'singular':_0x734b('0x189')},'foreignKey':_0x734b('0x18a'),'onDelete':_0x734b('0x105'),'hooks':!![]});db['Automation'][_0x734b('0x106')](db[_0x734b('0x7a')],{'as':{'plural':_0x734b('0x18b'),'singular':_0x734b('0x18c')},'foreignKey':_0x734b('0x18d'),'onDelete':'cascade','hooks':!![]});db['Automation']['hasMany'](db['Action'],{'as':_0x734b('0x18e'),'foreignKey':'AutomationId','onDelete':_0x734b('0x105'),'hooks':!![]});db['Disposition'][_0x734b('0x106')](db[_0x734b('0x78')],{'as':_0x734b('0x15d'),'foreignKey':_0x734b('0x18f'),'onDelete':_0x734b('0x105')});db[_0x734b('0x7c')][_0x734b('0x106')](db[_0x734b('0x7c')],{'as':_0x734b('0x190'),'foreignKey':_0x734b('0x15c'),'onDelete':'cascade','hooks':!![],'required':![]});db[_0x734b('0x7c')]['hasMany'](db['VoiceExtension'],{'as':'Extensions','foreignKey':_0x734b('0x15c'),'onDelete':_0x734b('0x15b')});db[_0x734b('0x7c')]['hasMany'](db[_0x734b('0x47')],{'as':_0x734b('0x191'),'foreignKey':'IntervalId'});db[_0x734b('0x7c')][_0x734b('0x106')](db[_0x734b('0x177')],{'as':'ChatApplications','foreignKey':_0x734b('0x15c')});db['Interval'][_0x734b('0x106')](db[_0x734b('0x4e')],{'as':'FaxApplications','foreignKey':_0x734b('0x15c')});db['Interval'][_0x734b('0x106')](db[_0x734b('0x16b')],{'as':_0x734b('0x192'),'foreignKey':_0x734b('0x15c')});db['Schedule'][_0x734b('0x10f')](db[_0x734b('0x3f')],{});db[_0x734b('0x193')]['belongsTo'](db[_0x734b('0x8f')],{'foreignKey':'DefaultReportId'});db[_0x734b('0x193')][_0x734b('0x10f')](db[_0x734b('0x8e')],{'foreignKey':_0x734b('0x194')});db[_0x734b('0x85')]['belongsToMany'](db[_0x734b('0x19')],{'as':_0x734b('0x195'),'through':_0x734b('0x12f'),'onDelete':_0x734b('0x15b')});db[_0x734b('0x14f')][_0x734b('0x112')](db[_0x734b('0x6b')],{'through':_0x734b('0x185')});db['Tag']['belongsToMany'](db[_0x734b('0x63')],{'through':_0x734b('0x17b')});db['Tag'][_0x734b('0x112')](db['MailInteraction'],{'through':_0x734b('0x150')});db[_0x734b('0x14f')][_0x734b('0x112')](db[_0x734b('0x56')],{'through':_0x734b('0x16c')});db[_0x734b('0x14f')][_0x734b('0x112')](db[_0x734b('0x4f')],{'through':'fax_interaction_has_tags'});db[_0x734b('0x14f')][_0x734b('0x112')](db['OpenchannelInteraction'],{'through':_0x734b('0x196')});db[_0x734b('0x14f')][_0x734b('0x112')](db[_0x734b('0x10d')],{'through':_0x734b('0x197')});db[_0x734b('0x198')][_0x734b('0x106')](db['Condition'],{'as':{'plural':_0x734b('0x199'),'singular':_0x734b('0x19a')},'foreignKey':_0x734b('0x19b'),'onDelete':_0x734b('0x105'),'hooks':!![]});db['Trigger'][_0x734b('0x106')](db[_0x734b('0x7a')],{'as':{'plural':'AnyConditions','singular':_0x734b('0x19c')},'foreignKey':'TriggerAnyId','onDelete':_0x734b('0x105'),'hooks':!![]});db['Trigger'][_0x734b('0x106')](db[_0x734b('0x19d')],{'as':_0x734b('0x18e'),'foreignKey':_0x734b('0x19e'),'onDelete':_0x734b('0x105'),'hooks':!![]});db[_0x734b('0x8e')][_0x734b('0x106')](db[_0x734b('0x95')],{'as':_0x734b('0x19f'),'onDelete':_0x734b('0x105'),'foreignKey':'CustomReportId','hooks':!![]});db[_0x734b('0x8f')][_0x734b('0x106')](db['AnalyticFieldReport'],{'as':_0x734b('0x19f'),'onDelete':_0x734b('0x105'),'foreignKey':_0x734b('0x1a0')});db[_0x734b('0x93')][_0x734b('0x106')](db[_0x734b('0x95')],{'as':_0x734b('0x19f'),'onDelete':_0x734b('0x105'),'foreignKey':'MetricId'});db[_0x734b('0x95')][_0x734b('0x10f')](db[_0x734b('0x93')],{'foreignKey':_0x734b('0x1a1')});db[_0x734b('0x98')][_0x734b('0x106')](db['SalesforceConfiguration'],{'as':_0x734b('0x1a2'),'onDelete':_0x734b('0x105'),'foreignKey':'AccountId'});db[_0x734b('0x9a')][_0x734b('0x106')](db[_0x734b('0x9b')],{'as':'Subjects','onDelete':_0x734b('0x105'),'foreignKey':_0x734b('0x1a3')});db[_0x734b('0x9a')][_0x734b('0x106')](db['SalesforceField'],{'as':_0x734b('0x1a4'),'onDelete':_0x734b('0x105'),'foreignKey':_0x734b('0x1a5')});db[_0x734b('0x9a')][_0x734b('0x106')](db[_0x734b('0x9b')],{'as':_0x734b('0x19f'),'onDelete':'cascade','foreignKey':_0x734b('0x1a6')});db[_0x734b('0x9a')][_0x734b('0x10f')](db[_0x734b('0x98')],{'as':_0x734b('0x157'),'foreignKey':_0x734b('0x1a7')});db[_0x734b('0x9b')][_0x734b('0x106')](db[_0x734b('0x9b')],{'as':_0x734b('0x1a8'),'foreignKey':_0x734b('0x1a3')});db['SalesforceField'][_0x734b('0x106')](db[_0x734b('0x9b')],{'as':_0x734b('0x1a9'),'foreignKey':_0x734b('0x1a5')});db[_0x734b('0x9b')]['hasMany'](db[_0x734b('0x9b')],{'as':'Field','foreignKey':'FieldId'});db['SalesforceField'][_0x734b('0x10f')](db['Variable'],{'as':_0x734b('0x89'),'foreignKey':'VariableId'});db[_0x734b('0x1aa')]['hasMany'](db[_0x734b('0x9e')],{'as':_0x734b('0x1a2'),'onDelete':_0x734b('0x105'),'foreignKey':'AccountId'});db[_0x734b('0x9e')]['hasMany'](db['SugarcrmField'],{'as':_0x734b('0x1ab'),'onDelete':'cascade','foreignKey':_0x734b('0x1a3')});db[_0x734b('0x9e')][_0x734b('0x106')](db[_0x734b('0xa0')],{'as':_0x734b('0x1a4'),'onDelete':_0x734b('0x105'),'foreignKey':_0x734b('0x1a5')});db[_0x734b('0x9e')][_0x734b('0x106')](db[_0x734b('0xa0')],{'as':_0x734b('0x19f'),'onDelete':_0x734b('0x105'),'foreignKey':'FieldId'});db['SugarcrmConfiguration'][_0x734b('0x10f')](db[_0x734b('0x1aa')],{'as':'Account','foreignKey':_0x734b('0x1a7')});db[_0x734b('0xa0')][_0x734b('0x106')](db['SugarcrmField'],{'as':_0x734b('0x1a8'),'foreignKey':_0x734b('0x1a3')});db['SugarcrmField']['hasMany'](db[_0x734b('0xa0')],{'as':_0x734b('0x1a9'),'foreignKey':_0x734b('0x1a5')});db[_0x734b('0xa0')][_0x734b('0x106')](db['SugarcrmField'],{'as':_0x734b('0x1ac'),'foreignKey':_0x734b('0x1a6')});db[_0x734b('0xa0')][_0x734b('0x10f')](db[_0x734b('0x89')],{'as':_0x734b('0x89'),'foreignKey':_0x734b('0x1ad')});db[_0x734b('0xa1')]['hasMany'](db['DeskConfiguration'],{'as':_0x734b('0x1a2'),'onDelete':'cascade','foreignKey':_0x734b('0x1a7')});db[_0x734b('0xa2')][_0x734b('0x106')](db[_0x734b('0xa4')],{'as':_0x734b('0x1ab'),'onDelete':_0x734b('0x105'),'foreignKey':'SubjectId'});db[_0x734b('0xa2')]['hasMany'](db[_0x734b('0xa4')],{'as':_0x734b('0x1a4'),'onDelete':_0x734b('0x105'),'foreignKey':_0x734b('0x1a5')});db['DeskConfiguration'][_0x734b('0x106')](db[_0x734b('0xa4')],{'as':_0x734b('0x19f'),'onDelete':_0x734b('0x105'),'foreignKey':'FieldId'});db[_0x734b('0xa2')][_0x734b('0x10f')](db[_0x734b('0xa1')],{'as':_0x734b('0x157'),'foreignKey':_0x734b('0x1a7')});db['DeskConfiguration'][_0x734b('0x112')](db[_0x734b('0x14f')],{'through':_0x734b('0x1ae')});db['DeskField'][_0x734b('0x106')](db[_0x734b('0xa4')],{'as':_0x734b('0x1a8'),'foreignKey':_0x734b('0x1a3')});db[_0x734b('0xa4')][_0x734b('0x106')](db['DeskField'],{'as':_0x734b('0x1a9'),'foreignKey':_0x734b('0x1a5')});db[_0x734b('0xa4')][_0x734b('0x106')](db[_0x734b('0xa4')],{'as':'Field','foreignKey':_0x734b('0x1a6')});db[_0x734b('0xa4')][_0x734b('0x10f')](db[_0x734b('0x89')],{'as':_0x734b('0x89'),'foreignKey':_0x734b('0x1ad')});db[_0x734b('0x1af')][_0x734b('0x106')](db[_0x734b('0xa7')],{'as':_0x734b('0x1a2'),'onDelete':_0x734b('0x105'),'foreignKey':_0x734b('0x1a7')});db['ZohoConfiguration'][_0x734b('0x106')](db[_0x734b('0xa9')],{'as':_0x734b('0x1ab'),'onDelete':_0x734b('0x105'),'foreignKey':_0x734b('0x1a3')});db[_0x734b('0xa7')][_0x734b('0x106')](db[_0x734b('0xa9')],{'as':_0x734b('0x1a4'),'onDelete':'cascade','foreignKey':'DescriptionId'});db[_0x734b('0xa7')]['hasMany'](db[_0x734b('0xa9')],{'as':_0x734b('0x19f'),'onDelete':_0x734b('0x105'),'foreignKey':_0x734b('0x1a6')});db[_0x734b('0xa7')][_0x734b('0x10f')](db[_0x734b('0x1af')],{'as':_0x734b('0x157'),'foreignKey':_0x734b('0x1a7')});db[_0x734b('0xa9')][_0x734b('0x106')](db[_0x734b('0xa9')],{'as':_0x734b('0x1a8'),'foreignKey':'SubjectId'});db[_0x734b('0xa9')][_0x734b('0x106')](db[_0x734b('0xa9')],{'as':_0x734b('0x1a9'),'foreignKey':_0x734b('0x1a5')});db[_0x734b('0xa9')][_0x734b('0x106')](db[_0x734b('0xa9')],{'as':_0x734b('0x1ac'),'foreignKey':_0x734b('0x1a6')});db[_0x734b('0xa9')][_0x734b('0x10f')](db[_0x734b('0x89')],{'as':'Variable','foreignKey':_0x734b('0x1ad')});db[_0x734b('0xab')]['hasMany'](db['ZendeskConfiguration'],{'as':_0x734b('0x1a2'),'onDelete':_0x734b('0x105'),'foreignKey':_0x734b('0x1a7')});db[_0x734b('0xad')][_0x734b('0x106')](db[_0x734b('0xaf')],{'as':_0x734b('0x1ab'),'foreignKey':_0x734b('0x1a3')});db[_0x734b('0xad')][_0x734b('0x106')](db[_0x734b('0xaf')],{'as':_0x734b('0x1a4'),'foreignKey':_0x734b('0x1a5')});db[_0x734b('0xad')][_0x734b('0x106')](db[_0x734b('0xaf')],{'as':_0x734b('0x19f'),'foreignKey':_0x734b('0x1a6')});db['ZendeskConfiguration'][_0x734b('0x10f')](db[_0x734b('0xab')],{'as':_0x734b('0x157'),'foreignKey':'AccountId'});db[_0x734b('0xad')][_0x734b('0x112')](db[_0x734b('0x14f')],{'through':_0x734b('0x1b0')});db[_0x734b('0xaf')][_0x734b('0x106')](db[_0x734b('0xaf')],{'as':'Subject','foreignKey':'SubjectId'});db[_0x734b('0xaf')][_0x734b('0x106')](db['ZendeskField'],{'as':_0x734b('0x1a9'),'foreignKey':_0x734b('0x1a5')});db[_0x734b('0xaf')][_0x734b('0x106')](db['ZendeskField'],{'as':_0x734b('0x1ac'),'foreignKey':_0x734b('0x1a6')});db[_0x734b('0xaf')][_0x734b('0x10f')](db[_0x734b('0x89')],{'as':_0x734b('0x89'),'foreignKey':'VariableId'});db['FreshdeskAccount'][_0x734b('0x106')](db[_0x734b('0xb1')],{'as':_0x734b('0x1a2'),'onDelete':_0x734b('0x105'),'foreignKey':_0x734b('0x1a7')});db[_0x734b('0xb1')][_0x734b('0x106')](db['FreshdeskField'],{'as':_0x734b('0x1ab'),'onDelete':_0x734b('0x105'),'foreignKey':_0x734b('0x1a3')});db[_0x734b('0xb1')][_0x734b('0x106')](db[_0x734b('0x1b1')],{'as':_0x734b('0x1a4'),'onDelete':_0x734b('0x105'),'foreignKey':_0x734b('0x1a5')});db[_0x734b('0xb1')][_0x734b('0x106')](db[_0x734b('0x1b1')],{'as':_0x734b('0x19f'),'onDelete':_0x734b('0x105'),'foreignKey':_0x734b('0x1a6')});db[_0x734b('0xb1')]['belongsTo'](db[_0x734b('0x1b2')],{'as':'Account','foreignKey':_0x734b('0x1a7')});db['FreshdeskConfiguration'][_0x734b('0x112')](db[_0x734b('0x14f')],{'through':_0x734b('0x1b3')});db[_0x734b('0x1b1')]['hasMany'](db[_0x734b('0x1b1')],{'as':_0x734b('0x1a8'),'foreignKey':_0x734b('0x1a3')});db[_0x734b('0x1b1')][_0x734b('0x106')](db[_0x734b('0x1b1')],{'as':_0x734b('0x1a9'),'foreignKey':_0x734b('0x1a5')});db[_0x734b('0x1b1')][_0x734b('0x106')](db[_0x734b('0x1b1')],{'as':_0x734b('0x1ac'),'foreignKey':_0x734b('0x1a6')});db['FreshdeskField'][_0x734b('0x10f')](db[_0x734b('0x89')],{'as':_0x734b('0x89'),'foreignKey':'VariableId'});db[_0x734b('0xb3')][_0x734b('0x106')](db['VtigerConfiguration'],{'as':'Configurations','onDelete':_0x734b('0x105'),'foreignKey':'AccountId'});db['VtigerConfiguration']['hasMany'](db[_0x734b('0xb5')],{'as':'Subjects','foreignKey':'SubjectId'});db['VtigerConfiguration'][_0x734b('0x106')](db[_0x734b('0xb5')],{'as':_0x734b('0x1a4'),'foreignKey':_0x734b('0x1a5')});db[_0x734b('0x1b4')][_0x734b('0x106')](db['VtigerField'],{'as':'Fields','foreignKey':_0x734b('0x1a6')});db['VtigerConfiguration'][_0x734b('0x10f')](db[_0x734b('0xb3')],{'as':_0x734b('0x157'),'foreignKey':_0x734b('0x1a7')});db['VtigerField'][_0x734b('0x106')](db[_0x734b('0xb5')],{'as':_0x734b('0x1a8'),'foreignKey':_0x734b('0x1a3')});db[_0x734b('0xb5')][_0x734b('0x106')](db[_0x734b('0xb5')],{'as':_0x734b('0x1a9'),'foreignKey':'DescriptionId'});db['VtigerField']['hasMany'](db['VtigerField'],{'as':'Field','foreignKey':_0x734b('0x1a6')});db['VtigerField'][_0x734b('0x10f')](db['Variable'],{'as':_0x734b('0x89'),'foreignKey':_0x734b('0x1ad')});db[_0x734b('0xb7')]['hasMany'](db['ServicenowConfiguration'],{'as':'Configurations','onDelete':_0x734b('0x105'),'foreignKey':_0x734b('0x1a7')});db[_0x734b('0x1b5')][_0x734b('0x106')](db['ServicenowField'],{'as':_0x734b('0x1ab'),'foreignKey':'SubjectId'});db[_0x734b('0x1b5')][_0x734b('0x106')](db['ServicenowField'],{'as':'Descriptions','foreignKey':_0x734b('0x1a5')});db[_0x734b('0x1b5')][_0x734b('0x106')](db['ServicenowField'],{'as':'Fields','foreignKey':_0x734b('0x1a6')});db['ServicenowConfiguration'][_0x734b('0x10f')](db[_0x734b('0xb7')],{'as':'Account','foreignKey':_0x734b('0x1a7')});db[_0x734b('0xba')][_0x734b('0x106')](db[_0x734b('0xba')],{'as':_0x734b('0x1a8'),'foreignKey':_0x734b('0x1a3')});db['ServicenowField'][_0x734b('0x106')](db[_0x734b('0xba')],{'as':_0x734b('0x1a9'),'foreignKey':'DescriptionId'});db['ServicenowField'][_0x734b('0x106')](db['ServicenowField'],{'as':_0x734b('0x1ac'),'foreignKey':'FieldId'});db[_0x734b('0xba')]['belongsTo'](db[_0x734b('0x89')],{'as':'Variable','foreignKey':'VariableId'});db['Dynamics365Account']['hasMany'](db['Dynamics365Configuration'],{'as':'Configurations','onDelete':_0x734b('0x105'),'foreignKey':_0x734b('0x1a7')});db[_0x734b('0x1b6')]['hasMany'](db[_0x734b('0xbd')],{'as':'Subjects','onDelete':'cascade','foreignKey':'SubjectId'});db[_0x734b('0x1b6')]['hasMany'](db['Dynamics365Field'],{'as':_0x734b('0x1a4'),'onDelete':_0x734b('0x105'),'foreignKey':'DescriptionId'});db[_0x734b('0x1b6')]['hasMany'](db[_0x734b('0xbd')],{'as':'Fields','onDelete':_0x734b('0x105'),'foreignKey':_0x734b('0x1a6')});db[_0x734b('0x1b6')][_0x734b('0x10f')](db[_0x734b('0xbc')],{'as':'Account','foreignKey':_0x734b('0x1a7')});db['Dynamics365Field'][_0x734b('0x106')](db['Dynamics365Field'],{'as':_0x734b('0x1a8'),'foreignKey':_0x734b('0x1a3')});db[_0x734b('0xbd')][_0x734b('0x106')](db[_0x734b('0xbd')],{'as':'Description','foreignKey':_0x734b('0x1a5')});db[_0x734b('0xbd')]['hasMany'](db[_0x734b('0xbd')],{'as':'Field','foreignKey':'FieldId'});db[_0x734b('0xbd')]['belongsTo'](db[_0x734b('0x89')],{'as':_0x734b('0x89'),'foreignKey':'VariableId'});db[_0x734b('0xbe')][_0x734b('0x106')](db[_0x734b('0xbf')],{'as':_0x734b('0x1a2'),'onDelete':'cascade','foreignKey':_0x734b('0x1a7')});db[_0x734b('0xbf')]['hasMany'](db[_0x734b('0x1b7')],{'as':_0x734b('0x1ab'),'foreignKey':_0x734b('0x1a3')});db[_0x734b('0xbf')][_0x734b('0x106')](db[_0x734b('0x1b7')],{'as':_0x734b('0x1a4'),'foreignKey':'DescriptionId'});db[_0x734b('0xbf')]['hasMany'](db[_0x734b('0x1b7')],{'as':_0x734b('0x19f'),'foreignKey':_0x734b('0x1a6')});db[_0x734b('0xbf')][_0x734b('0x10f')](db['FreshsalesAccount'],{'as':_0x734b('0x157'),'foreignKey':_0x734b('0x1a7')});db['FreshsalesField'][_0x734b('0x106')](db['FreshsalesField'],{'as':_0x734b('0x1a8'),'foreignKey':_0x734b('0x1a3')});db[_0x734b('0x1b7')][_0x734b('0x106')](db[_0x734b('0x1b7')],{'as':_0x734b('0x1a9'),'foreignKey':'DescriptionId'});db['FreshsalesField'][_0x734b('0x106')](db[_0x734b('0x1b7')],{'as':_0x734b('0x1ac'),'foreignKey':_0x734b('0x1a6')});db[_0x734b('0x1b7')][_0x734b('0x10f')](db[_0x734b('0x89')],{'as':_0x734b('0x89'),'foreignKey':_0x734b('0x1ad')});db[_0x734b('0xc0')][_0x734b('0x10f')](db[_0x734b('0x5f')],{});db[_0x734b('0xc0')]['belongsTo'](db['CmList'],{'as':'List','foreignKey':_0x734b('0x149')});db[_0x734b('0xc0')][_0x734b('0x10f')](db['CmContact'],{'as':_0x734b('0x142'),'foreignKey':_0x734b('0x143')});db[_0x734b('0xc0')][_0x734b('0x10f')](db[_0x734b('0x63')],{});db[_0x734b('0xc0')][_0x734b('0x10f')](db[_0x734b('0x64')],{});db[_0x734b('0xc0')][_0x734b('0x10f')](db['User'],{});db[_0x734b('0xc0')][_0x734b('0x10f')](db[_0x734b('0x17c')],{});db[_0x734b('0xc1')][_0x734b('0x10f')](db[_0x734b('0x11')],{'onDelete':_0x734b('0x105'),'foreignKey':'FromId'});db[_0x734b('0xc1')]['belongsTo'](db[_0x734b('0x11')],{'onDelete':_0x734b('0x105'),'foreignKey':_0x734b('0x1b8')});db['JscriptySessionReport'][_0x734b('0x106')](db[_0x734b('0xc4')],{'foreignKey':_0x734b('0x1b9'),'onDelete':_0x734b('0x105')});db[_0x734b('0x135')][_0x734b('0x106')](db['JscriptyAnswerReport'],{'foreignKey':_0x734b('0x1b9'),'onDelete':'cascade'});db[_0x734b('0xc7')]['belongsTo'](db[_0x734b('0x53')],{});db['SmsQueueReport'][_0x734b('0x10f')](db[_0x734b('0xea')],{'as':_0x734b('0x148'),'foreignKey':_0x734b('0x149')});db[_0x734b('0xc7')][_0x734b('0x10f')](db[_0x734b('0x6b')],{'as':_0x734b('0x142'),'foreignKey':_0x734b('0x143')});db[_0x734b('0xc7')]['belongsTo'](db['SmsInteraction'],{});db[_0x734b('0xc7')]['belongsTo'](db['SmsMessage'],{});db[_0x734b('0xc7')][_0x734b('0x10f')](db[_0x734b('0x11')],{});db['SmsQueueReport'][_0x734b('0x10f')](db[_0x734b('0x58')],{});db[_0x734b('0x1ba')][_0x734b('0x106')](db[_0x734b('0x135')],{'foreignKey':_0x734b('0x1bb')});db[_0x734b('0x1ba')][_0x734b('0x106')](db[_0x734b('0xc4')],{'foreignKey':_0x734b('0x1bb')});db['JscriptyProject']['hasMany'](db[_0x734b('0xc3')],{'foreignKey':_0x734b('0x1bb')});db[_0x734b('0xd2')][_0x734b('0x112')](db[_0x734b('0x11')],{'as':'Users','through':'user_has_square_projects'});db[_0x734b('0xd7')][_0x734b('0x112')](db[_0x734b('0x11')],{'as':_0x734b('0x13c'),'through':'user_has_teams'});db[_0x734b('0xd7')]['belongsToMany'](db[_0x734b('0x1b')],{'through':_0x734b('0x100'),'as':_0x734b('0x1bc')});db[_0x734b('0xd7')][_0x734b('0x112')](db[_0x734b('0x40')],{'through':_0x734b('0x14b'),'as':_0x734b('0x120')});db[_0x734b('0xd7')][_0x734b('0x112')](db[_0x734b('0x17c')],{'through':_0x734b('0x17d'),'as':'ChatQueues'});db[_0x734b('0xd7')][_0x734b('0x112')](db[_0x734b('0x121')],{'through':_0x734b('0x166'),'as':_0x734b('0x1bd')});db['Team']['belongsToMany'](db[_0x734b('0x58')],{'through':_0x734b('0x1be'),'as':_0x734b('0x1bf')});db[_0x734b('0xd7')][_0x734b('0x112')](db['OpenchannelQueue'],{'through':_0x734b('0x174'),'as':'OpenchannelQueues'});db[_0x734b('0xd7')][_0x734b('0x112')](db[_0x734b('0xfe')],{'through':'team_has_whatsapp_queues','as':'WhatsappQueues'});db[_0x734b('0xd7')][_0x734b('0x112')](db[_0x734b('0xec')],{'through':'TeamVoicePrefix','as':_0x734b('0x11f')});db['Campaign'][_0x734b('0x106')](db[_0x734b('0x6c')],{'as':_0x734b('0x132'),'foreignKey':_0x734b('0x186')});db['Campaign'][_0x734b('0x106')](db['CmHopperFinal'],{'as':'HopperFinals','foreignKey':_0x734b('0x186')});db[_0x734b('0xdb')][_0x734b('0x106')](db['CmHopperHistory'],{'as':_0x734b('0x134'),'foreignKey':_0x734b('0x186')});db[_0x734b('0xdb')][_0x734b('0x106')](db[_0x734b('0x6e')],{'as':_0x734b('0x1c0'),'foreignKey':_0x734b('0x186')});db[_0x734b('0xdb')][_0x734b('0x10f')](db[_0x734b('0x2b')],{'as':_0x734b('0x2b'),'foreignKey':_0x734b('0x137')});db[_0x734b('0xdb')][_0x734b('0x10f')](db['Trunk'],{'as':'TrunkBackup','foreignKey':_0x734b('0x139')});db['Campaign']['belongsTo'](db[_0x734b('0x7c')],{'as':_0x734b('0x7c'),'foreignKey':_0x734b('0x15c')});db[_0x734b('0xdb')]['belongsTo'](db[_0x734b('0xd2')],{'as':'SquareProject','foreignKey':'SquareProjectId'});db[_0x734b('0xdb')]['belongsToMany'](db[_0x734b('0xea')],{'as':_0x734b('0x115'),'through':_0x734b('0x1c1')});db[_0x734b('0xdb')]['belongsToMany'](db[_0x734b('0xea')],{'as':'BlackLists','through':_0x734b('0x1c2')});db[_0x734b('0xde')]['belongsTo'](db['ChatOfflineMessage'],{'as':_0x734b('0x159'),'foreignKey':_0x734b('0x15a')});db[_0x734b('0xe1')][_0x734b('0x10f')](db[_0x734b('0x45')],{});db[_0x734b('0xe1')]['belongsTo'](db[_0x734b('0x43')],{});db['MailTransferReport'][_0x734b('0x10f')](db['MailAccount'],{'foreignKey':'FromMailAccountId','as':_0x734b('0x1c3')});db[_0x734b('0xe1')]['belongsTo'](db[_0x734b('0x11')],{'foreignKey':_0x734b('0x1c4'),'as':_0x734b('0x1c5')});db['MailTransferReport'][_0x734b('0x10f')](db[_0x734b('0x11')],{'foreignKey':_0x734b('0x1c6'),'as':_0x734b('0x1c7')});db[_0x734b('0xe1')][_0x734b('0x10f')](db[_0x734b('0x40')],{'foreignKey':_0x734b('0x1c8'),'as':_0x734b('0x1c9')});db[_0x734b('0xe1')][_0x734b('0x10f')](db['MailAccount'],{'foreignKey':_0x734b('0x1ca'),'as':_0x734b('0x1cb')});db[_0x734b('0xe3')][_0x734b('0x10f')](db[_0x734b('0x64')],{});db[_0x734b('0xe3')][_0x734b('0x10f')](db[_0x734b('0x63')],{});db[_0x734b('0xe3')][_0x734b('0x10f')](db[_0x734b('0x5f')],{'foreignKey':_0x734b('0x1cc'),'as':_0x734b('0x1c3')});db[_0x734b('0xe3')][_0x734b('0x10f')](db[_0x734b('0x11')],{'foreignKey':'FromUserId','as':_0x734b('0x1c5')});db[_0x734b('0xe3')][_0x734b('0x10f')](db['User'],{'foreignKey':_0x734b('0x1c6'),'as':_0x734b('0x1c7')});db[_0x734b('0xe3')]['belongsTo'](db[_0x734b('0x17c')],{'foreignKey':_0x734b('0x1cd'),'as':'ToQueue'});db[_0x734b('0xe3')][_0x734b('0x10f')](db[_0x734b('0x5f')],{'foreignKey':'ToChatWebsiteId','as':_0x734b('0x1cb')});db[_0x734b('0xe5')]['belongsTo'](db[_0x734b('0x50')],{});db[_0x734b('0xe5')][_0x734b('0x10f')](db['FaxInteraction'],{});db[_0x734b('0xe5')]['belongsTo'](db['FaxAccount'],{'foreignKey':_0x734b('0x1ce'),'as':'FromAccount'});db['FaxTransferReport'][_0x734b('0x10f')](db[_0x734b('0x11')],{'foreignKey':'FromUserId','as':_0x734b('0x1c5')});db[_0x734b('0xe5')]['belongsTo'](db[_0x734b('0x11')],{'foreignKey':'ToUserId','as':_0x734b('0x1c7')});db[_0x734b('0xe5')]['belongsTo'](db['FaxQueue'],{'foreignKey':_0x734b('0x1cf'),'as':'ToQueue'});db['FaxTransferReport'][_0x734b('0x10f')](db[_0x734b('0x4c')],{'foreignKey':'ToFaxAccountId','as':'ToAccount'});db[_0x734b('0x1d0')][_0x734b('0x10f')](db[_0x734b('0x172')],{});db[_0x734b('0x1d0')][_0x734b('0x10f')](db[_0x734b('0x5d')],{});db[_0x734b('0x1d0')][_0x734b('0x10f')](db[_0x734b('0x5a')],{'foreignKey':_0x734b('0x1d1'),'as':_0x734b('0x1c3')});db['OpenchannelTransferReport'][_0x734b('0x10f')](db[_0x734b('0x11')],{'foreignKey':_0x734b('0x1c4'),'as':_0x734b('0x1c5')});db[_0x734b('0x1d0')][_0x734b('0x10f')](db[_0x734b('0x11')],{'foreignKey':_0x734b('0x1c6'),'as':_0x734b('0x1c7')});db['OpenchannelTransferReport']['belongsTo'](db[_0x734b('0x122')],{'foreignKey':_0x734b('0x1d2'),'as':_0x734b('0x1c9')});db[_0x734b('0x1d0')]['belongsTo'](db[_0x734b('0x5a')],{'foreignKey':_0x734b('0x1d3'),'as':_0x734b('0x1cb')});db[_0x734b('0xe8')][_0x734b('0x10f')](db[_0x734b('0x16a')],{});db[_0x734b('0xe8')][_0x734b('0x10f')](db[_0x734b('0x56')],{});db['SmsTransferReport'][_0x734b('0x10f')](db[_0x734b('0x53')],{'foreignKey':_0x734b('0x1d4'),'as':_0x734b('0x1c3')});db['SmsTransferReport'][_0x734b('0x10f')](db[_0x734b('0x11')],{'foreignKey':_0x734b('0x1c4'),'as':_0x734b('0x1c5')});db[_0x734b('0xe8')][_0x734b('0x10f')](db[_0x734b('0x11')],{'foreignKey':'ToUserId','as':_0x734b('0x1c7')});db[_0x734b('0xe8')][_0x734b('0x10f')](db[_0x734b('0x58')],{'foreignKey':_0x734b('0x1d5'),'as':_0x734b('0x1c9')});db[_0x734b('0xe8')][_0x734b('0x10f')](db[_0x734b('0x53')],{'foreignKey':_0x734b('0x1d6'),'as':_0x734b('0x1cb')});db[_0x734b('0xea')]['hasMany'](db[_0x734b('0x78')],{'as':_0x734b('0x15d'),'foreignKey':_0x734b('0x149'),'onDelete':_0x734b('0x105')});db[_0x734b('0xea')][_0x734b('0x106')](db[_0x734b('0x1d7')],{'as':_0x734b('0x1d8'),'foreignKey':'ListId'});db[_0x734b('0xea')][_0x734b('0x106')](db[_0x734b('0x6b')],{'as':_0x734b('0x114'),'onDelete':_0x734b('0x105'),'foreignKey':_0x734b('0x149')});db['CmList'][_0x734b('0x106')](db['CmHopperFinal'],{'as':_0x734b('0x109'),'foreignKey':'ListId'});db['CmList'][_0x734b('0x106')](db['CmHopperHistory'],{'as':_0x734b('0x1d9'),'foreignKey':_0x734b('0x149')});db[_0x734b('0xea')][_0x734b('0x106')](db['ReportAgentPreview'],{'as':_0x734b('0x72'),'foreignKey':_0x734b('0x149')});db[_0x734b('0xea')][_0x734b('0x112')](db[_0x734b('0x1b')],{'as':_0x734b('0x1da'),'through':_0x734b('0x13b')});db[_0x734b('0xea')][_0x734b('0x112')](db['User'],{'as':_0x734b('0x13c'),'through':_0x734b('0x116')});db[_0x734b('0xec')]['hasMany'](db[_0x734b('0x17')],{'as':_0x734b('0x1db'),'onDelete':_0x734b('0x105')});db[_0x734b('0xec')][_0x734b('0x112')](db[_0x734b('0x11')],{'as':_0x734b('0x13c'),'through':_0x734b('0x103')});db[_0x734b('0xec')]['belongsToMany'](db[_0x734b('0xd7')],{'through':'TeamVoicePrefix','as':_0x734b('0x14c')});db[_0x734b('0x110')]['hasMany'](db[_0x734b('0x11')],{'as':_0x734b('0x153'),'foreignKey':_0x734b('0x111')});db[_0x734b('0x110')][_0x734b('0x106')](db[_0x734b('0xef')],{'as':'UserProfileSections','foreignKey':_0x734b('0x111'),'onDelete':_0x734b('0x105')});db[_0x734b('0xef')][_0x734b('0x106')](db[_0x734b('0xf1')],{'as':'Resources','foreignKey':'sectionId','onDelete':'cascade'});db[_0x734b('0xf5')][_0x734b('0x106')](db[_0x734b('0x78')],{'as':_0x734b('0x15d'),'foreignKey':_0x734b('0x1dc'),'onDelete':_0x734b('0x105')});db[_0x734b('0xf5')][_0x734b('0x106')](db[_0x734b('0x146')],{'as':'Answers','foreignKey':_0x734b('0x1dc')});db['WhatsappAccount'][_0x734b('0x106')](db[_0x734b('0x1dd')],{'as':_0x734b('0x147'),'foreignKey':_0x734b('0x1dc')});db['WhatsappAccount'][_0x734b('0x106')](db[_0x734b('0x10d')],{'as':_0x734b('0x15f')});db[_0x734b('0xf5')][_0x734b('0x106')](db[_0x734b('0xf7')],{'as':'Applications'});db[_0x734b('0xf5')][_0x734b('0x10f')](db[_0x734b('0xea')],{'as':_0x734b('0x148'),'foreignKey':_0x734b('0x149')});db[_0x734b('0xf5')][_0x734b('0x10f')](db['Pause'],{'as':_0x734b('0x161'),'foreignKey':_0x734b('0x13a')});db[_0x734b('0xf5')][_0x734b('0x112')](db[_0x734b('0x11')],{'as':_0x734b('0x13c'),'through':_0x734b('0x12b')});db[_0x734b('0xf7')]['belongsTo'](db[_0x734b('0x11')],{'onDelete':_0x734b('0x15b')});db[_0x734b('0xf7')][_0x734b('0x10f')](db[_0x734b('0xfe')],{'onDelete':'restrict'});db[_0x734b('0xf7')]['belongsTo'](db[_0x734b('0xf5')],{'onDelete':_0x734b('0x15b')});db[_0x734b('0xf7')][_0x734b('0x10f')](db['Interval'],{'onDelete':_0x734b('0x15b'),'foreignKey':_0x734b('0x15c')});db[_0x734b('0xf7')][_0x734b('0x10f')](db[_0x734b('0x14f')],{'onDelete':_0x734b('0x15b'),'foreignKey':_0x734b('0x162')});db[_0x734b('0x10d')]['hasMany'](db['WhatsappMessage'],{'as':_0x734b('0x147'),'onDelete':_0x734b('0x105'),'foreignKey':_0x734b('0x1de')});db[_0x734b('0x10d')][_0x734b('0x10f')](db[_0x734b('0xf5')],{'as':'Account','foreignKey':_0x734b('0x1dc')});db['WhatsappInteraction'][_0x734b('0x10f')](db[_0x734b('0x6b')],{'as':_0x734b('0x142'),'foreignKey':_0x734b('0x143')});db[_0x734b('0x10d')][_0x734b('0x10f')](db['User'],{'as':_0x734b('0x14e'),'foreignKey':_0x734b('0x107')});db[_0x734b('0x10d')][_0x734b('0x112')](db[_0x734b('0x14f')],{'through':'whatsapp_interaction_has_tags','as':'Tags'});db[_0x734b('0x10d')][_0x734b('0x112')](db[_0x734b('0x14f')],{'through':_0x734b('0x197'),'as':_0x734b('0x152')});db[_0x734b('0x10d')][_0x734b('0x112')](db[_0x734b('0x11')],{'as':'Users','through':_0x734b('0x11e'),'foreignKey':_0x734b('0x1de')});db[_0x734b('0x1dd')][_0x734b('0x10f')](db[_0x734b('0x11')],{'as':_0x734b('0x11')});db[_0x734b('0x1dd')]['belongsTo'](db[_0x734b('0x6b')],{'onDelete':_0x734b('0x105'),'as':'Contact'});db[_0x734b('0x1dd')][_0x734b('0x10f')](db[_0x734b('0x10d')],{'onDelete':_0x734b('0x105'),'as':_0x734b('0x156'),'foreignKey':_0x734b('0x1de')});db[_0x734b('0x1dd')]['belongsTo'](db[_0x734b('0xf5')],{'as':'Account','foreignKey':'WhatsappAccountId'});db[_0x734b('0xfb')][_0x734b('0x10f')](db[_0x734b('0xf5')],{});db[_0x734b('0xfb')][_0x734b('0x10f')](db[_0x734b('0xea')],{'as':'List','foreignKey':_0x734b('0x149')});db['WhatsappQueueReport']['belongsTo'](db[_0x734b('0x6b')],{'as':_0x734b('0x142'),'foreignKey':_0x734b('0x143')});db[_0x734b('0xfb')]['belongsTo'](db['WhatsappInteraction'],{});db['WhatsappQueueReport'][_0x734b('0x10f')](db['WhatsappQueue'],{});db[_0x734b('0xfb')][_0x734b('0x10f')](db[_0x734b('0x1dd')],{});db['WhatsappQueueReport']['belongsTo'](db['User'],{});db[_0x734b('0xfd')][_0x734b('0x10f')](db[_0x734b('0x1dd')],{});db[_0x734b('0xfd')][_0x734b('0x10f')](db['WhatsappInteraction'],{});db[_0x734b('0xfd')]['belongsTo'](db[_0x734b('0xf5')],{'foreignKey':_0x734b('0x1df'),'as':_0x734b('0x1c3')});db[_0x734b('0xfd')][_0x734b('0x10f')](db['WhatsappAccount'],{'foreignKey':'ToWhatsappAccountId','as':_0x734b('0x1cb')});db[_0x734b('0xfd')]['belongsTo'](db[_0x734b('0xfe')],{'foreignKey':_0x734b('0x1e0'),'as':_0x734b('0x1c9')});db[_0x734b('0xfd')][_0x734b('0x10f')](db[_0x734b('0x11')],{'foreignKey':_0x734b('0x1c4'),'as':_0x734b('0x1c5')});db[_0x734b('0xfd')][_0x734b('0x10f')](db[_0x734b('0x11')],{'foreignKey':'ToUserId','as':'ToAgent'});db[_0x734b('0xfe')]['belongsToMany'](db[_0x734b('0x11')],{'as':_0x734b('0x13c'),'through':_0x734b('0x3b'),'foreignKey':'WhatsappQueueId'});db[_0x734b('0xfe')][_0x734b('0x112')](db['Team'],{'through':_0x734b('0x1e1'),'as':_0x734b('0x14c')});module[_0x734b('0x1e2')]={'db':db,'dbH':dbH};
\ No newline at end of file
+var _0x0713=['../api/userChatQueue/userChatQueue.model','UserMailQueue','../api/userMailQueue/userMailQueue.model','UserFaxQueue','UserSmsQueue','../api/userSmsQueue/userSmsQueue.model','UserOpenchannelQueue','../api/userOpenchannelQueue/userOpenchannelQueue.model','UserWhatsappQueue','../api/userWhatsappQueue/userWhatsappQueue.model','MailServerOut','../api/mailServerOut/mailServerOut.model','../api/mailAccount/mailAccount.model','MailQueue','MailSubstatus','../api/mailSubstatus/mailSubstatus.model','MailInteraction','../api/mailMessage/mailMessage.model','MailApplication','../api/mailApplication/mailApplication.model','MailQueueReport','../api/mailQueueReport/mailQueueReport.model','../api/dashboardItem/dashboardItem.model','FaxAccount','../api/faxAccount/faxAccount.model','FaxApplication','../api/faxApplication/faxApplication.model','FaxInteraction','../api/faxInteraction/faxInteraction.model','../api/faxMessage/faxMessage.model','FaxQueue','FaxQueueReport','../api/smsAccount/smsAccount.model','../api/smsApplication/smsApplication.model','SmsInteraction','SmsMessage','../api/smsMessage/smsMessage.model','../api/smsQueue/smsQueue.model','OpenchannelAccount','../api/openchannelAccount/openchannelAccount.model','../api/openchannelApplication/openchannelApplication.model','OpenchannelInteraction','../api/openchannelInteraction/openchannelInteraction.model','OpenchannelMessage','../api/openchannelMessage/openchannelMessage.model','OpenchannelQueue','../api/openchannelQueue/openchannelQueue.model','ChatWebsite','../api/chatWebsite/chatWebsite.model','OpenchannelQueueReport','ChatApplication','../api/chatApplication/chatApplication.model','ChatInteraction','../api/chatInteraction/chatInteraction.model','../api/chatMessage/chatMessage.model','ChatOfflineMessage','../api/chatOfflineMessage/chatOfflineMessage.model','ChatQueue','../api/chatQueue/chatQueue.model','../api/chatGroup/chatGroup.model','ChatProactiveAction','../api/chatProactiveAction/chatProactiveAction.model','CmContact','../api/cmContact/cmContact.model','CmHopper','../api/cmHopper/cmHopper.model','CmHopperBlack','CmHopperFinal','CmHopperHistory','../api/cmHopperHistory/cmHopperHistory.model','ReportAgentPreview','../api/reportAgentPreview/reportAgentPreview.model','CmCustomField','../api/cmCustomField/cmCustomField.model','Action','../api/action/action.model','Automation','../api/automation/automation.model','CannedAnswer','../api/cannedAnswer/cannedAnswer.model','Disposition','../api/disposition/disposition.model','Condition','../api/condition/condition.model','Interval','../api/interval/interval.model','Pause','../api/voiceQueuesLog/voiceQueuesLog.model','Schedule','../api/schedule/schedule.model','Sound','../api/sound/sound.model','Tag','../api/tag/tag.model','Template','../api/template/template.model','Trigger','../api/trigger/trigger.model','Variable','Integration','../api/integration/integration.model','IntegrationReport','../api/integrationReport/integrationReport.model','../api/analyticCustomReport/analyticCustomReport.model','AnalyticDefaultReport','../api/analyticDefaultReport/analyticDefaultReport.model','AnalyticExtractedReport','AnalyticMetric','AnalyticFieldReport','../api/analyticTreeReport/analyticTreeReport.model','SalesforceAccount','../api/intSalesforceAccount/intSalesforceAccount.model','SalesforceConfiguration','../api/intSalesforceConfiguration/intSalesforceConfiguration.model','SalesforceField','../api/intSalesforceField/intSalesforceField.model','SugarcrmAccount','SugarcrmConfiguration','../api/intSugarcrmConfiguration/intSugarcrmConfiguration.model','SugarcrmField','../api/intSugarcrmField/intSugarcrmField.model','DeskAccount','../api/intDeskAccount/intDeskAccount.model','DeskField','../api/intDeskField/intDeskField.model','ZohoAccount','../api/intZohoAccount/intZohoAccount.model','../api/intZohoConfiguration/intZohoConfiguration.model','ZohoField','ZendeskAccount','../api/intZendeskAccount/intZendeskAccount.model','ZendeskField','../api/intZendeskField/intZendeskField.model','FreshdeskAccount','FreshdeskConfiguration','../api/intFreshdeskConfiguration/intFreshdeskConfiguration.model','FreshdeskField','../api/intFreshdeskField/intFreshdeskField.model','../api/intVtigerAccount/intVtigerAccount.model','../api/intVtigerConfiguration/intVtigerConfiguration.model','VtigerField','../api/intVtigerField/intVtigerField.model','ServicenowAccount','../api/intServicenowAccount/intServicenowAccount.model','ServicenowConfiguration','../api/intServicenowConfiguration/intServicenowConfiguration.model','../api/intServicenowField/intServicenowField.model','Dynamics365Field','../api/intFreshsalesAccount/intFreshsalesAccount.model','FreshsalesConfiguration','../api/intFreshsalesConfiguration/intFreshsalesConfiguration.model','../api/intFreshsalesField/intFreshsalesField.model','Network','../api/network/network.model','ChatQueueReport','ChatInternalMessage','../api/chatInternalMessage/chatInternalMessage.model','JscriptyAnswerReport','../api/jscriptyQuestionReport/jscriptyQuestionReport.model','../api/jscriptySessionReport/jscriptySessionReport.model','SmsQueueReport','SquareReport','../api/squareReport/squareReport.model','SquareDetailsReport','../api/squareReportDetail/squareReportDetail.model','../api/jscriptyProject/jscriptyProject.model','Setting','SquareOdbc','../api/squareOdbc/squareOdbc.model','../api/squareProject/squareProject.model','SquareMessage','../api/squareMessage/squareMessage.model','Team','../api/team/team.model','License','../api/license/license.model','Campaign','../api/campaign/campaign.model','Migration','../api/migration/migration.model','Attachment','../api/attachment/attachment.model','../api/plugin/plugin.model','ChatTransferReport','../api/chatTransferReport/chatTransferReport.model','FaxTransferReport','../api/faxTransferReport/faxTransferReport.model','OpenchannelTransferReport','../api/openchannelTransferReport/openchannelTransferReport.model','../api/smsTransferReport/smsTransferReport.model','CmList','VoicePrefix','../api/voicePrefix/voicePrefix.model','../api/userProfile/userProfile.model','UserProfileResource','../api/userProfileResource/userProfileResource.model','UserNotification','../api/userNotification/userNotification.model','../api/whatsappAccount/whatsappAccount.model','WhatsappApplication','WhatsappInteraction','WhatsappMessage','../api/whatsappMessage/whatsappMessage.model','../api/whatsappQueueReport/whatsappQueueReport.model','WhatsappTransferReport','WhatsappQueue','../api/whatsappQueue/whatsappQueue.model','../api/cloudProvider/cloudProvider.model','../api/teamVoiceQueue/teamVoiceQueue.model','../api/teamVoicePrefix/teamVoicePrefix.model','UserVoicePrefix','hasOne','VoiceMail','cascade','Recordings','UserId','hasMany','VoiceQueuesRt','Extensions','HopperFinals','HopperHistory','OpenchannelInteractions','ChatInteractions','SmsInteractions','FaxInteractions','MailInteractions','UserNotifications','SenderId','UserProfile','belongsToMany','Groups','chat_group_has_users','Lists','cm_user_has_lists','user_has_teams','user_has_mail_interactions','user_has_chat_interactions','user_has_fax_interactions','user_has_sms_interactions','user_has_whatsapp_interactions','VoiceQueue','VoiceQueues','MailQueues','ChatQueues','FaxQueues','SmsQueue','OpenchannelQueues','WhatsappQueues','ChatWebsites','FaxAccounts','user_has_fax_accounts','MailAccounts','user_has_mail_accounts','user_has_openchannel_accounts','SmsAccount','SmsAccounts','user_has_sms_accounts','WhatsappAccounts','SquareProject','SpiedAgents','ChanSpyId','Sounds','Members','VoiceQueueId','JscriptySessionReport','JscriptySessions','belongsTo','TrunkBackup','TrunkBackupId','IntervalId','mandatoryDispositionPause','voice_queues_has_cm_lists','Agents','Teams','TeamVoiceQueue','BlackLists','Messages','mailboxuser','mailbox','QueueCalls','uniqueid','Contact','ContactId','MailServerIn','MailAccount','MailAccountId','Dispositions','Answers','MailMessage','Interactions','List','team_has_mail_queues','MailInteractionId','Account','mail_interaction_has_tags','ThroughTags','Users','Attachments','Interaction','ChatWebsiteId','ChatOfflineMessageId','restrict','TagId','ListId','DashboardItem','FaxAccountId','Applications','Exntensions','mandatoryDispositionPauseId','FaxMessage','FaxInteractionId','Owner','fax_interaction_has_tags','team_has_fax_queues','SmsAccountId','SmsApplication','SmsInteractionId','sms_interaction_has_tags','Tags','SmsQueueId','team_has_sms_queues','OpenchannelAccountId','OpenchannelApplication','OpenchannelQueueId','OpenchannelInteractionId','openchannel_interaction_has_tags','team_has_openchannel_queues','ProactiveActions','user_has_chat_websites','Queue','ChatQueueId','Website','ChatMessage','ChatInteractionId','chat_interaction_has_tags','AttachmentId','team_has_chat_queues','ChatGroupId','ChatGroup','Contacts','CompanyId','HopperHistories','CmCompany','cm_user_has_contacts','cm_contact_has_tags','Agent','OwnerId','CampaignId','All','OneAll','AutomationAllId','Any','Actions','ParentId','Intervals','MailApplications','SmsApplications','DefaultReportId','AnalyticCustomReport','VoiceMusicOnHold','Mohs','moh_has_sounds','whatsapp_interaction_has_tags','AllConditions','AllCondition','AnyConditions','TriggerAnyId','Fields','MetricId','Configurations','AccountId','Subjects','SubjectId','Descriptions','DescriptionId','FieldId','Description','Field','VariableId','Subject','DeskConfiguration','int_desk_configuration_has_tags','ZohoConfiguration','ZendeskConfiguration','int_zendesk_configuration_has_tags','VtigerAccount','VtigerConfiguration','ServicenowField','Dynamics365Account','Dynamics365Configuration','FreshsalesAccount','FreshsalesField','FromId','ToId','SessionId','JscriptyProject','ProjectId','JscriptyQuestionReport','user_has_square_projects','team_has_whatsapp_queues','TeamVoicePrefix','VoicePrefixes','Hoppers','TrunkId','SquareProjectId','campaigns_has_cm_lists','MailTransferReport','FromMailAccountId','ToUserId','ToAgent','ToQueue','ToMailAccountId','ToAccount','FromAccount','FromAgent','ToChatQueueId','ToChatWebsiteId','FromFaxAccountId','ToFaxQueueId','ToFaxAccountId','FromOpenchannelAccountId','FromUserId','ToOpenchannelAccountId','SmsTransferReport','ToSmsAccountId','CustomFields','Queues','userProfileId','UserProfileSection','UserProfileSections','Resources','sectionId','WhatsappAccount','WhatsappAccountId','user_has_whatsapp_accounts','WhatsappInteractionId','WhatsappQueueReport','FromWhatsappAccountId','ToWhatsappAccountId','ToQueueId','WhatsappQueueId','exports','lodash','jstz','determine','sequelize','defaultsDeep','motion2','xcall','xC@LL1234','127.0.0.1','mysql','utf8mb4','name','utf8','utf8_general_ci','sequelizeHistory','database','username','password','options','User','import','../api/user/user.model','VoiceChanSpy','VoiceContext','../api/voiceContext/voiceContext.model','VoiceExtension','../api/voiceExtension/voiceExtension.model','../api/voiceMusicOnHold/voiceMusicOnHold.model','../api/voiceQueue/voiceQueue.model','VoiceRecording','../api/voiceRecording/voiceRecording.model','ScreenRecording','../api/voiceMail/voiceMail.model','VoiceMailMessage','../api/voiceMailMessage/voiceMailMessage.model','VoiceCallReport','../api/voiceCallReport/voiceCallReport.model','VoiceDialReport','../api/voiceDialReport/voiceDialReport.model','VoiceAgentReport','../api/voiceAgentReport/voiceAgentReport.model','VoiceQueueReport','../api/voiceQueueReport/voiceQueueReport.model','MemberReport','Trunk','../api/trunk/trunk.model','VoiceTransferReport','../api/voiceTransferReport/voiceTransferReport.model','../api/userVoiceQueueRt/userVoiceQueueRt.model','UserVoiceQueue','../api/userVoiceQueue/userVoiceQueue.model','UserChatQueue'];(function(_0x10b9b3,_0x171a81){var _0x3548bf=function(_0x58fd48){while(--_0x58fd48){_0x10b9b3['push'](_0x10b9b3['shift']());}};_0x3548bf(++_0x171a81);}(_0x0713,0x1ba));var _0x3071=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x0713[_0x3dd15e];return _0x231fd0;};'use strict';var config=require('../config/environment');var Sequelize=require('sequelize');var _=require(_0x3071('0x0'));var jstz=require(_0x3071('0x1'));var timezone=jstz[_0x3071('0x2')]();config[_0x3071('0x3')]=_[_0x3071('0x4')](config['sequelize'],{'database':_0x3071('0x5'),'username':_0x3071('0x6'),'password':_0x3071('0x7'),'options':{'host':_0x3071('0x8'),'port':0xcea,'dialect':_0x3071('0x9'),'dialectOptions':{'charset':_0x3071('0xa')},'logging':![],'timezone':timezone[_0x3071('0xb')](),'define':{'charset':_0x3071('0xc'),'collate':_0x3071('0xd')}}});config[_0x3071('0xe')]=_[_0x3071('0x4')](config[_0x3071('0xe')],{'database':_0x3071('0x5'),'username':'xcall','password':_0x3071('0x7'),'options':{'host':_0x3071('0x8'),'port':0xcea,'dialect':_0x3071('0x9'),'dialectOptions':{'charset':_0x3071('0xa')},'logging':![],'timezone':timezone[_0x3071('0xb')](),'define':{'charset':'utf8','collate':_0x3071('0xd')}}});var db={'Sequelize':Sequelize,'sequelize':new Sequelize(config[_0x3071('0x3')][_0x3071('0xf')],config[_0x3071('0x3')][_0x3071('0x10')],config['sequelize']['password'],config[_0x3071('0x3')]['options'])};var dbH={'Sequelize':Sequelize,'sequelize':new Sequelize(config[_0x3071('0xe')][_0x3071('0xf')],config['sequelizeHistory'][_0x3071('0x10')],config['sequelizeHistory'][_0x3071('0x11')],config[_0x3071('0xe')][_0x3071('0x12')])};db[_0x3071('0x13')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x15'));db[_0x3071('0x16')]=db[_0x3071('0x3')][_0x3071('0x14')]('../api/voiceChanSpy/voiceChanSpy.model');db[_0x3071('0x17')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x18'));db[_0x3071('0x19')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x1a'));db['VoiceMusicOnHold']=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x1b'));db['VoiceQueue']=db[_0x3071('0x3')]['import'](_0x3071('0x1c'));db[_0x3071('0x1d')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x1e'));db[_0x3071('0x1f')]=db[_0x3071('0x3')][_0x3071('0x14')]('../api/screenRecording/screenRecording.model');db['VoiceMail']=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x20'));db[_0x3071('0x21')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x22'));db[_0x3071('0x23')]=db[_0x3071('0x3')]['import'](_0x3071('0x24'));db[_0x3071('0x25')]=db[_0x3071('0x3')]['import'](_0x3071('0x26'));db[_0x3071('0x27')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x28'));db[_0x3071('0x29')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x2a'));db[_0x3071('0x2b')]=db[_0x3071('0x3')]['import']('../api/memberReport/memberReport.model');db[_0x3071('0x2c')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x2d'));db[_0x3071('0x2e')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x2f'));db['UserVoiceQueueRt']=db['sequelize']['import'](_0x3071('0x30'));db[_0x3071('0x31')]=db['sequelize'][_0x3071('0x14')](_0x3071('0x32'));db[_0x3071('0x33')]=db[_0x3071('0x3')]['import'](_0x3071('0x34'));db[_0x3071('0x35')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x36'));db[_0x3071('0x37')]=db[_0x3071('0x3')][_0x3071('0x14')]('../api/userFaxQueue/userFaxQueue.model');db[_0x3071('0x38')]=db['sequelize']['import'](_0x3071('0x39'));db[_0x3071('0x3a')]=db['sequelize'][_0x3071('0x14')](_0x3071('0x3b'));db[_0x3071('0x3c')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x3d'));db['MailServerIn']=db[_0x3071('0x3')][_0x3071('0x14')]('../api/mailServerIn/mailServerIn.model');db[_0x3071('0x3e')]=db['sequelize'][_0x3071('0x14')](_0x3071('0x3f'));db['MailAccount']=db['sequelize'][_0x3071('0x14')](_0x3071('0x40'));db[_0x3071('0x41')]=db['sequelize'][_0x3071('0x14')]('../api/mailQueue/mailQueue.model');db[_0x3071('0x42')]=db['sequelize'][_0x3071('0x14')](_0x3071('0x43'));db[_0x3071('0x44')]=db[_0x3071('0x3')][_0x3071('0x14')]('../api/mailInteraction/mailInteraction.model');db['MailMessage']=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x45'));db[_0x3071('0x46')]=db['sequelize'][_0x3071('0x14')](_0x3071('0x47'));db[_0x3071('0x48')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x49'));db['Dashboard']=db[_0x3071('0x3')]['import']('../api/dashboard/dashboard.model');db['DashboardItem']=db['sequelize'][_0x3071('0x14')](_0x3071('0x4a'));db[_0x3071('0x4b')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x4c'));db[_0x3071('0x4d')]=db[_0x3071('0x3')]['import'](_0x3071('0x4e'));db[_0x3071('0x4f')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x50'));db['FaxMessage']=db['sequelize'][_0x3071('0x14')](_0x3071('0x51'));db[_0x3071('0x52')]=db[_0x3071('0x3')][_0x3071('0x14')]('../api/faxQueue/faxQueue.model');db[_0x3071('0x53')]=db['sequelize'][_0x3071('0x14')]('../api/faxQueueReport/faxQueueReport.model');db['SmsAccount']=db[_0x3071('0x3')]['import'](_0x3071('0x54'));db['SmsApplication']=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x55'));db[_0x3071('0x56')]=db['sequelize'][_0x3071('0x14')]('../api/smsInteraction/smsInteraction.model');db[_0x3071('0x57')]=db['sequelize'][_0x3071('0x14')](_0x3071('0x58'));db['SmsQueue']=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x59'));db[_0x3071('0x5a')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x5b'));db['OpenchannelApplication']=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x5c'));db[_0x3071('0x5d')]=db['sequelize'][_0x3071('0x14')](_0x3071('0x5e'));db[_0x3071('0x5f')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x60'));db[_0x3071('0x61')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x62'));db[_0x3071('0x63')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x64'));db[_0x3071('0x65')]=db[_0x3071('0x3')]['import']('../api/openchannelQueueReport/openchannelQueueReport.model');db[_0x3071('0x66')]=db['sequelize'][_0x3071('0x14')](_0x3071('0x67'));db[_0x3071('0x68')]=db['sequelize'][_0x3071('0x14')](_0x3071('0x69'));db['ChatMessage']=db['sequelize'][_0x3071('0x14')](_0x3071('0x6a'));db[_0x3071('0x6b')]=db[_0x3071('0x3')]['import'](_0x3071('0x6c'));db[_0x3071('0x6d')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x6e'));db['ChatGroup']=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x6f'));db[_0x3071('0x70')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x71'));db['CmCompany']=db['sequelize'][_0x3071('0x14')]('../api/cmCompany/cmCompany.model');db[_0x3071('0x72')]=db[_0x3071('0x3')]['import'](_0x3071('0x73'));db[_0x3071('0x74')]=db['sequelize'][_0x3071('0x14')](_0x3071('0x75'));db[_0x3071('0x76')]=db[_0x3071('0x3')][_0x3071('0x14')]('../api/cmHopperBlack/cmHopperBlack.model');db[_0x3071('0x77')]=db[_0x3071('0x3')][_0x3071('0x14')]('../api/cmHopperFinal/cmHopperFinal.model');db[_0x3071('0x78')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x79'));db[_0x3071('0x7a')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x7b'));db[_0x3071('0x7c')]=db['sequelize'][_0x3071('0x14')](_0x3071('0x7d'));db[_0x3071('0x7e')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x7f'));db[_0x3071('0x80')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x81'));db[_0x3071('0x82')]=db['sequelize'][_0x3071('0x14')](_0x3071('0x83'));db[_0x3071('0x84')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x85'));db[_0x3071('0x86')]=db[_0x3071('0x3')]['import'](_0x3071('0x87'));db[_0x3071('0x88')]=db['sequelize']['import'](_0x3071('0x89'));db[_0x3071('0x8a')]=db[_0x3071('0x3')][_0x3071('0x14')]('../api/pause/pause.model');db['Cdr']=db[_0x3071('0x3')]['import']('../api/cdr/cdr.model');db['VoiceQueuesLog']=db['sequelize'][_0x3071('0x14')](_0x3071('0x8b'));db[_0x3071('0x8c')]=db['sequelize'][_0x3071('0x14')](_0x3071('0x8d'));db[_0x3071('0x8e')]=db[_0x3071('0x3')]['import'](_0x3071('0x8f'));db[_0x3071('0x90')]=db['sequelize'][_0x3071('0x14')](_0x3071('0x91'));db[_0x3071('0x92')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x93'));db[_0x3071('0x94')]=db['sequelize']['import'](_0x3071('0x95'));db[_0x3071('0x96')]=db[_0x3071('0x3')]['import']('../api/variable/variable.model');db[_0x3071('0x97')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x98'));db[_0x3071('0x99')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x9a'));db['AnalyticCustomReport']=db[_0x3071('0x3')]['import'](_0x3071('0x9b'));db[_0x3071('0x9c')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x9d'));db[_0x3071('0x9e')]=db[_0x3071('0x3')][_0x3071('0x14')]('../api/analyticExtractedReport/analyticExtractedReport.model');db[_0x3071('0x9f')]=db[_0x3071('0x3')][_0x3071('0x14')]('../api/analyticMetric/analyticMetric.model');db[_0x3071('0xa0')]=db[_0x3071('0x3')][_0x3071('0x14')]('../api/analyticFieldReport/analyticFieldReport.model');db['AnalyticTreeReport']=db[_0x3071('0x3')]['import'](_0x3071('0xa1'));db[_0x3071('0xa2')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xa3'));db[_0x3071('0xa4')]=db[_0x3071('0x3')]['import'](_0x3071('0xa5'));db[_0x3071('0xa6')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xa7'));db[_0x3071('0xa8')]=db[_0x3071('0x3')][_0x3071('0x14')]('../api/intSugarcrmAccount/intSugarcrmAccount.model');db[_0x3071('0xa9')]=db['sequelize'][_0x3071('0x14')](_0x3071('0xaa'));db[_0x3071('0xab')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xac'));db[_0x3071('0xad')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xae'));db['DeskConfiguration']=db[_0x3071('0x3')][_0x3071('0x14')]('../api/intDeskConfiguration/intDeskConfiguration.model');db[_0x3071('0xaf')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xb0'));db[_0x3071('0xb1')]=db['sequelize']['import'](_0x3071('0xb2'));db['ZohoConfiguration']=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xb3'));db[_0x3071('0xb4')]=db[_0x3071('0x3')][_0x3071('0x14')]('../api/intZohoField/intZohoField.model');db[_0x3071('0xb5')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xb6'));db['ZendeskConfiguration']=db[_0x3071('0x3')][_0x3071('0x14')]('../api/intZendeskConfiguration/intZendeskConfiguration.model');db[_0x3071('0xb7')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xb8'));db[_0x3071('0xb9')]=db['sequelize'][_0x3071('0x14')]('../api/intFreshdeskAccount/intFreshdeskAccount.model');db[_0x3071('0xba')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xbb'));db[_0x3071('0xbc')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xbd'));db['VtigerAccount']=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xbe'));db['VtigerConfiguration']=db[_0x3071('0x3')]['import'](_0x3071('0xbf'));db[_0x3071('0xc0')]=db[_0x3071('0x3')]['import'](_0x3071('0xc1'));db[_0x3071('0xc2')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xc3'));db[_0x3071('0xc4')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xc5'));db['ServicenowField']=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xc6'));db['Dynamics365Account']=db['sequelize']['import']('../api/intDynamics365Account/intDynamics365Account.model');db['Dynamics365Configuration']=db[_0x3071('0x3')][_0x3071('0x14')]('../api/intDynamics365Configuration/intDynamics365Configuration.model');db[_0x3071('0xc7')]=db[_0x3071('0x3')][_0x3071('0x14')]('../api/intDynamics365Field/intDynamics365Field.model');db['FreshsalesAccount']=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xc8'));db[_0x3071('0xc9')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xca'));db['FreshsalesField']=db['sequelize'][_0x3071('0x14')](_0x3071('0xcb'));db[_0x3071('0x97')]=db[_0x3071('0x3')]['import'](_0x3071('0x98'));db[_0x3071('0xcc')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xcd'));db[_0x3071('0xce')]=db[_0x3071('0x3')][_0x3071('0x14')]('../api/chatQueueReport/chatQueueReport.model');db[_0x3071('0xcf')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xd0'));db[_0x3071('0xd1')]=db['sequelize'][_0x3071('0x14')]('../api/jscriptyAnswerReport/jscriptyAnswerReport.model');db['JscriptyQuestionReport']=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xd2'));db['JscriptySessionReport']=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xd3'));db[_0x3071('0xd4')]=db[_0x3071('0x3')]['import']('../api/smsQueueReport/smsQueueReport.model');db[_0x3071('0xd5')]=db[_0x3071('0x3')]['import'](_0x3071('0xd6'));db[_0x3071('0xd7')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xd8'));db['JscriptyProject']=db[_0x3071('0x3')]['import'](_0x3071('0xd9'));db[_0x3071('0xda')]=db['sequelize'][_0x3071('0x14')]('../api/setting/setting.model');db[_0x3071('0xdb')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xdc'));db['SquareProject']=db[_0x3071('0x3')]['import'](_0x3071('0xdd'));db['SquareRecording']=db[_0x3071('0x3')][_0x3071('0x14')]('../api/squareRecording/squareRecording.model');db[_0x3071('0xde')]=db[_0x3071('0x3')]['import'](_0x3071('0xdf'));db[_0x3071('0xe0')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xe1'));db[_0x3071('0xe2')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xe3'));db[_0x3071('0xe4')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xe5'));db[_0x3071('0xe6')]=db[_0x3071('0x3')]['import'](_0x3071('0xe7'));db[_0x3071('0xe8')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xe9'));db['Plugin']=db['sequelize'][_0x3071('0x14')](_0x3071('0xea'));db['MailTransferReport']=db[_0x3071('0x3')][_0x3071('0x14')]('../api/mailTransferReport/mailTransferReport.model');db[_0x3071('0xeb')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xec'));db[_0x3071('0xed')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xee'));db[_0x3071('0xef')]=db[_0x3071('0x3')]['import'](_0x3071('0xf0'));db['SmsTransferReport']=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xf1'));db[_0x3071('0xf2')]=db['sequelize']['import']('../api/cmList/cmList.model');db[_0x3071('0xf3')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xf4'));db['UserProfile']=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xf5'));db['UserProfileSection']=db['sequelize']['import']('../api/userProfileSection/userProfileSection.model');db[_0x3071('0xf6')]=db[_0x3071('0x3')]['import'](_0x3071('0xf7'));db[_0x3071('0xf8')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xf9'));db['WhatsappAccount']=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xfa'));db[_0x3071('0xfb')]=db['sequelize'][_0x3071('0x14')]('../api/whatsappApplication/whatsappApplication.model');db[_0x3071('0xfc')]=db[_0x3071('0x3')][_0x3071('0x14')]('../api/whatsappInteraction/whatsappInteraction.model');db[_0x3071('0xfd')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xfe'));db['WhatsappQueueReport']=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0xff'));db[_0x3071('0x100')]=db[_0x3071('0x3')]['import']('../api/whatsappTransferReport/whatsappTransferReport.model');db[_0x3071('0x101')]=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x102'));db['CloudProvider']=db['sequelize'][_0x3071('0x14')](_0x3071('0x103'));db['TeamVoiceQueue']=db[_0x3071('0x3')][_0x3071('0x14')](_0x3071('0x104'));db['TeamVoicePrefix']=db['sequelize']['import'](_0x3071('0x105'));db[_0x3071('0x106')]=db[_0x3071('0x3')]['import']('../api/userVoicePrefix/userVoicePrefix.model');db[_0x3071('0x13')][_0x3071('0x107')](db[_0x3071('0x108')],{'as':_0x3071('0x108'),'onDelete':_0x3071('0x109'),'foreignKey':'UserId'});db[_0x3071('0x13')]['hasMany'](db[_0x3071('0x1d')],{'as':_0x3071('0x10a'),'foreignKey':_0x3071('0x10b')});db[_0x3071('0x13')][_0x3071('0x10c')](db['UserVoiceQueueRt'],{'as':_0x3071('0x10d'),'foreignKey':_0x3071('0x10b')});db[_0x3071('0x13')][_0x3071('0x10c')](db[_0x3071('0x19')],{'as':_0x3071('0x10e'),'onDelete':_0x3071('0x109'),'hooks':!![]});db[_0x3071('0x13')][_0x3071('0x10c')](db[_0x3071('0x77')],{'as':_0x3071('0x10f'),'foreignKey':'UserId'});db[_0x3071('0x13')][_0x3071('0x10c')](db[_0x3071('0x78')],{'as':_0x3071('0x110'),'foreignKey':'UserId'});db[_0x3071('0x13')]['hasMany'](db[_0x3071('0x7a')],{'as':_0x3071('0x7a'),'foreignKey':_0x3071('0x10b')});db[_0x3071('0x13')][_0x3071('0x10c')](db[_0x3071('0x5d')],{'as':_0x3071('0x111'),'foreignKey':'UserId'});db[_0x3071('0x13')]['hasMany'](db['ChatInteraction'],{'as':_0x3071('0x112'),'foreignKey':_0x3071('0x10b')});db['User'][_0x3071('0x10c')](db['SmsInteraction'],{'as':_0x3071('0x113'),'foreignKey':_0x3071('0x10b')});db[_0x3071('0x13')][_0x3071('0x10c')](db[_0x3071('0x4f')],{'as':_0x3071('0x114'),'foreignKey':_0x3071('0x10b')});db[_0x3071('0x13')][_0x3071('0x10c')](db[_0x3071('0x44')],{'as':_0x3071('0x115'),'foreignKey':'UserId'});db[_0x3071('0x13')][_0x3071('0x10c')](db[_0x3071('0xfc')],{'as':'WhatsappInteractions','foreignKey':_0x3071('0x10b')});db['User'][_0x3071('0x10c')](db[_0x3071('0xf8')],{'as':_0x3071('0x116'),'foreignKey':_0x3071('0x117')});db['User']['belongsTo'](db['UserProfile'],{'as':_0x3071('0x118'),'foreignKey':'userProfileId'});db['User'][_0x3071('0x119')](db['ChatGroup'],{'as':_0x3071('0x11a'),'through':_0x3071('0x11b')});db[_0x3071('0x13')]['belongsToMany'](db[_0x3071('0x72')],{'as':'Contacts','through':'cm_user_has_contacts'});db[_0x3071('0x13')][_0x3071('0x119')](db[_0x3071('0xf2')],{'as':_0x3071('0x11c'),'through':_0x3071('0x11d')});db[_0x3071('0x13')][_0x3071('0x119')](db['Team'],{'through':_0x3071('0x11e')});db[_0x3071('0x13')][_0x3071('0x119')](db[_0x3071('0x44')],{'as':_0x3071('0x115'),'through':_0x3071('0x11f')});db[_0x3071('0x13')][_0x3071('0x119')](db[_0x3071('0x68')],{'as':'ChatInteractions','through':_0x3071('0x120')});db[_0x3071('0x13')][_0x3071('0x119')](db[_0x3071('0x4f')],{'as':_0x3071('0x114'),'through':_0x3071('0x121')});db[_0x3071('0x13')]['belongsToMany'](db[_0x3071('0x56')],{'as':'SmsInteractions','through':_0x3071('0x122')});db[_0x3071('0x13')][_0x3071('0x119')](db['OpenchannelInteraction'],{'as':'OpenchannelInteractions','through':'user_has_openchannel_interactions'});db[_0x3071('0x13')][_0x3071('0x119')](db[_0x3071('0xfc')],{'as':'WhatsappInteractions','through':_0x3071('0x123')});db[_0x3071('0x13')][_0x3071('0x119')](db[_0x3071('0x124')],{'as':_0x3071('0x125'),'through':_0x3071('0x31'),'required':![]});db[_0x3071('0x13')][_0x3071('0x119')](db[_0x3071('0xf3')],{'as':'VoicePrefixes','through':_0x3071('0x106'),'required':![]});db[_0x3071('0x13')][_0x3071('0x119')](db['MailQueue'],{'as':_0x3071('0x126'),'through':_0x3071('0x35'),'required':![]});db[_0x3071('0x13')][_0x3071('0x119')](db[_0x3071('0x6d')],{'as':_0x3071('0x127'),'through':_0x3071('0x33'),'required':![],'hooks':!![]});db[_0x3071('0x13')][_0x3071('0x119')](db[_0x3071('0x52')],{'as':_0x3071('0x128'),'through':_0x3071('0x37'),'required':![]});db['User'][_0x3071('0x119')](db[_0x3071('0x129')],{'as':'SmsQueues','through':'UserSmsQueue','required':![]});db['User']['belongsToMany'](db[_0x3071('0x61')],{'as':_0x3071('0x12a'),'through':'UserOpenchannelQueue','required':![]});db[_0x3071('0x13')][_0x3071('0x119')](db[_0x3071('0x101')],{'as':_0x3071('0x12b'),'through':_0x3071('0x3c'),'required':![]});db[_0x3071('0x13')][_0x3071('0x119')](db[_0x3071('0xf2')],{'through':_0x3071('0x11d')});db[_0x3071('0x13')][_0x3071('0x119')](db[_0x3071('0x63')],{'as':_0x3071('0x12c'),'through':'user_has_chat_websites'});db[_0x3071('0x13')][_0x3071('0x119')](db['FaxAccount'],{'as':_0x3071('0x12d'),'through':_0x3071('0x12e')});db[_0x3071('0x13')][_0x3071('0x119')](db['MailAccount'],{'as':_0x3071('0x12f'),'through':_0x3071('0x130')});db[_0x3071('0x13')][_0x3071('0x119')](db['OpenchannelAccount'],{'as':'OpenchannelAccounts','through':_0x3071('0x131')});db[_0x3071('0x13')][_0x3071('0x119')](db[_0x3071('0x132')],{'as':_0x3071('0x133'),'through':_0x3071('0x134')});db[_0x3071('0x13')][_0x3071('0x119')](db['WhatsappAccount'],{'as':_0x3071('0x135'),'through':'user_has_whatsapp_accounts'});db['User'][_0x3071('0x119')](db[_0x3071('0x136')],{'as':'SquareProjects','through':'user_has_square_projects'});db[_0x3071('0x16')][_0x3071('0x10c')](db[_0x3071('0x19')],{'as':_0x3071('0x137'),'onDelete':'cascade','foreignKey':_0x3071('0x138')});db[_0x3071('0x17')][_0x3071('0x10c')](db[_0x3071('0x19')],{'onDelete':_0x3071('0x109')});db['VoiceExtension'][_0x3071('0x10c')](db[_0x3071('0x19')],{'as':'Applications','onDelete':'cascade'});db['VoiceMusicOnHold'][_0x3071('0x119')](db[_0x3071('0x8e')],{'as':_0x3071('0x139'),'through':'moh_has_sounds'});db[_0x3071('0x124')][_0x3071('0x10c')](db['UserVoiceQueueRt'],{'as':_0x3071('0x13a'),'foreignKey':_0x3071('0x13b')});db[_0x3071('0x124')][_0x3071('0x10c')](db[_0x3071('0x74')],{'as':'Hoppers','foreignKey':'VoiceQueueId'});db[_0x3071('0x124')][_0x3071('0x10c')](db[_0x3071('0x77')],{'as':_0x3071('0x10f'),'foreignKey':'VoiceQueueId'});db['VoiceQueue'][_0x3071('0x10c')](db[_0x3071('0x78')],{'as':'HopperHistories','foreignKey':_0x3071('0x13b')});db[_0x3071('0x124')][_0x3071('0x10c')](db[_0x3071('0x7a')],{'as':'ReportAgentPreview','foreignKey':_0x3071('0x13b')});db[_0x3071('0x124')][_0x3071('0x10c')](db[_0x3071('0x76')],{'as':'HopperBlacks','foreignKey':_0x3071('0x13b')});db[_0x3071('0x124')]['hasMany'](db[_0x3071('0x13c')],{'as':_0x3071('0x13d'),'foreignKey':_0x3071('0x13b')});db[_0x3071('0x124')][_0x3071('0x13e')](db['Trunk'],{'as':_0x3071('0x2c'),'foreignKey':'TrunkId'});db[_0x3071('0x124')]['belongsTo'](db[_0x3071('0x2c')],{'as':_0x3071('0x13f'),'foreignKey':_0x3071('0x140')});db[_0x3071('0x124')]['belongsTo'](db[_0x3071('0x88')],{'as':_0x3071('0x88'),'foreignKey':_0x3071('0x141')});db['VoiceQueue'][_0x3071('0x13e')](db[_0x3071('0x8a')],{'as':_0x3071('0x142'),'foreignKey':'mandatoryDispositionPauseId'});db[_0x3071('0x124')][_0x3071('0x119')](db[_0x3071('0xf2')],{'as':_0x3071('0x11c'),'through':_0x3071('0x143')});db['VoiceQueue'][_0x3071('0x119')](db[_0x3071('0x13')],{'as':_0x3071('0x144'),'through':_0x3071('0x31')});db['VoiceQueue'][_0x3071('0x119')](db[_0x3071('0xe0')],{'as':_0x3071('0x145'),'through':_0x3071('0x146')});db[_0x3071('0x124')][_0x3071('0x119')](db[_0x3071('0xf2')],{'as':_0x3071('0x147'),'through':'voice_queues_has_cm_blacklists'});db['VoiceRecording'][_0x3071('0x13e')](db[_0x3071('0x13')],{'as':'User','foreignKey':_0x3071('0x10b')});db[_0x3071('0x1f')][_0x3071('0x13e')](db[_0x3071('0x13')],{'as':_0x3071('0x13'),'foreignKey':_0x3071('0x10b')});db[_0x3071('0x108')]['hasMany'](db[_0x3071('0x21')],{'as':_0x3071('0x148'),'onDelete':'cascade','foreignKey':_0x3071('0x149'),'sourceKey':_0x3071('0x14a')});db[_0x3071('0x21')]['belongsTo'](db[_0x3071('0x108')],{'foreignKey':_0x3071('0x149'),'targetKey':_0x3071('0x14a')});db[_0x3071('0x23')][_0x3071('0x10c')](db[_0x3071('0x29')],{'as':_0x3071('0x14b'),'foreignKey':_0x3071('0x14c'),'constraints':![]});db['VoiceCallReport'][_0x3071('0x10c')](db[_0x3071('0x27')],{'as':'AgentReports','foreignKey':'uniqueid','constraints':![]});db[_0x3071('0x23')]['belongsTo'](db[_0x3071('0x13')],{'as':'User','foreignKey':'UserId'});db[_0x3071('0x23')][_0x3071('0x13e')](db[_0x3071('0x72')],{'as':_0x3071('0x14d'),'foreignKey':_0x3071('0x14e')});db[_0x3071('0x14f')]['belongsTo'](db[_0x3071('0x150')],{'as':_0x3071('0x150'),'foreignKey':'MailAccountId'});db[_0x3071('0x3e')][_0x3071('0x13e')](db['MailAccount'],{'as':_0x3071('0x150'),'foreignKey':_0x3071('0x151')});db[_0x3071('0x150')][_0x3071('0x107')](db[_0x3071('0x14f')],{'as':'Imap','onDelete':_0x3071('0x109')});db[_0x3071('0x150')][_0x3071('0x107')](db[_0x3071('0x3e')],{'as':'Smtp','onDelete':'cascade'});db[_0x3071('0x150')][_0x3071('0x10c')](db[_0x3071('0x84')],{'as':_0x3071('0x152'),'foreignKey':_0x3071('0x151'),'onDelete':_0x3071('0x109')});db[_0x3071('0x150')][_0x3071('0x10c')](db[_0x3071('0x82')],{'as':_0x3071('0x153'),'foreignKey':_0x3071('0x151')});db[_0x3071('0x150')]['hasMany'](db[_0x3071('0x154')],{'as':'Messages','foreignKey':_0x3071('0x151')});db[_0x3071('0x150')][_0x3071('0x10c')](db[_0x3071('0x44')],{'as':_0x3071('0x155')});db[_0x3071('0x150')][_0x3071('0x10c')](db['MailApplication'],{'as':'Applications'});db[_0x3071('0x150')]['belongsTo'](db['CmList'],{'as':_0x3071('0x156'),'foreignKey':'ListId'});db['MailAccount'][_0x3071('0x13e')](db['Template'],{'as':_0x3071('0x92'),'foreignKey':'TemplateId'});db[_0x3071('0x150')][_0x3071('0x13e')](db[_0x3071('0x8a')],{'as':_0x3071('0x142'),'foreignKey':'mandatoryDispositionPauseId'});db['MailAccount']['belongsToMany'](db[_0x3071('0x13')],{'as':_0x3071('0x144'),'through':_0x3071('0x130')});db['MailQueue'][_0x3071('0x119')](db[_0x3071('0x13')],{'as':_0x3071('0x144'),'through':_0x3071('0x35')});db['MailQueue'][_0x3071('0x119')](db[_0x3071('0xe0')],{'through':_0x3071('0x157'),'as':_0x3071('0x145')});db[_0x3071('0x44')][_0x3071('0x10c')](db[_0x3071('0x154')],{'as':'Messages','onDelete':_0x3071('0x109'),'foreignKey':_0x3071('0x158')});db[_0x3071('0x44')][_0x3071('0x13e')](db[_0x3071('0x150')],{'as':_0x3071('0x159'),'foreignKey':_0x3071('0x151')});db[_0x3071('0x44')]['belongsTo'](db['CmContact'],{'as':_0x3071('0x14d'),'foreignKey':_0x3071('0x14e')});db[_0x3071('0x44')][_0x3071('0x13e')](db[_0x3071('0x13')],{'as':'Owner','foreignKey':_0x3071('0x10b')});db[_0x3071('0x44')]['belongsToMany'](db[_0x3071('0x90')],{'through':'mail_interaction_has_tags','as':'Tags'});db[_0x3071('0x44')][_0x3071('0x119')](db[_0x3071('0x90')],{'through':_0x3071('0x15a'),'as':_0x3071('0x15b')});db[_0x3071('0x44')][_0x3071('0x119')](db['User'],{'as':_0x3071('0x15c'),'through':_0x3071('0x11f'),'foreignKey':'MailInteractionId'});db[_0x3071('0x154')][_0x3071('0x10c')](db[_0x3071('0xe8')],{'as':_0x3071('0x15d'),'onDelete':_0x3071('0x109')});db[_0x3071('0x154')]['belongsTo'](db[_0x3071('0x13')],{'as':_0x3071('0x13')});db[_0x3071('0x154')][_0x3071('0x13e')](db[_0x3071('0x72')],{'onDelete':_0x3071('0x109'),'as':'Contact'});db[_0x3071('0x154')]['belongsTo'](db[_0x3071('0x44')],{'as':_0x3071('0x15e'),'foreignKey':_0x3071('0x158')});db[_0x3071('0x154')][_0x3071('0x13e')](db['MailAccount'],{'as':_0x3071('0x159'),'foreignKey':_0x3071('0x151')});db['MailMessage']['belongsTo'](db[_0x3071('0x63')],{'as':'ChatWebsite','foreignKey':_0x3071('0x15f')});db['MailMessage'][_0x3071('0x13e')](db['ChatOfflineMessage'],{'as':_0x3071('0x6b'),'foreignKey':_0x3071('0x160')});db[_0x3071('0x46')][_0x3071('0x13e')](db[_0x3071('0x13')],{'onDelete':_0x3071('0x161')});db['MailApplication'][_0x3071('0x13e')](db[_0x3071('0x41')],{'onDelete':'restrict'});db[_0x3071('0x46')]['belongsTo'](db['MailAccount'],{'onDelete':_0x3071('0x161')});db[_0x3071('0x46')][_0x3071('0x13e')](db[_0x3071('0x88')],{'onDelete':_0x3071('0x161'),'foreignKey':'IntervalId'});db[_0x3071('0x46')][_0x3071('0x13e')](db[_0x3071('0x90')],{'onDelete':_0x3071('0x161'),'foreignKey':_0x3071('0x162')});db[_0x3071('0x48')][_0x3071('0x13e')](db[_0x3071('0x150')],{});db['MailQueueReport']['belongsTo'](db[_0x3071('0xf2')],{'as':'List','foreignKey':_0x3071('0x163')});db[_0x3071('0x48')][_0x3071('0x13e')](db['CmContact'],{'as':'Contact','foreignKey':_0x3071('0x14e')});db[_0x3071('0x48')][_0x3071('0x13e')](db[_0x3071('0x44')],{});db['MailQueueReport'][_0x3071('0x13e')](db[_0x3071('0x154')],{});db[_0x3071('0x48')][_0x3071('0x13e')](db[_0x3071('0x13')],{});db[_0x3071('0x48')][_0x3071('0x13e')](db[_0x3071('0x41')],{});db['Dashboard'][_0x3071('0x10c')](db[_0x3071('0x164')],{'as':'Items','onDelete':'cascade'});db[_0x3071('0x4b')][_0x3071('0x10c')](db[_0x3071('0x84')],{'as':_0x3071('0x152'),'foreignKey':_0x3071('0x165'),'onDelete':_0x3071('0x109')});db[_0x3071('0x4b')]['hasMany'](db[_0x3071('0x82')],{'as':_0x3071('0x153'),'foreignKey':'FaxAccountId'});db[_0x3071('0x4b')]['hasMany'](db[_0x3071('0x4f')],{'as':'Interactions'});db[_0x3071('0x4b')][_0x3071('0x10c')](db[_0x3071('0x4d')],{'as':_0x3071('0x166')});db[_0x3071('0x4b')][_0x3071('0x10c')](db[_0x3071('0x19')],{'as':_0x3071('0x167'),'onDelete':_0x3071('0x109')});db[_0x3071('0x4b')][_0x3071('0x10c')](db['FaxMessage'],{'as':_0x3071('0x148')});db[_0x3071('0x4b')][_0x3071('0x13e')](db[_0x3071('0x2c')],{'as':'Trunk'});db['FaxAccount'][_0x3071('0x13e')](db['CmList'],{'as':'List','foreignKey':_0x3071('0x163')});db[_0x3071('0x4b')]['belongsTo'](db[_0x3071('0x8a')],{'as':'mandatoryDispositionPause','foreignKey':_0x3071('0x168')});db[_0x3071('0x4b')][_0x3071('0x119')](db[_0x3071('0x13')],{'as':_0x3071('0x144'),'through':'user_has_fax_accounts'});db[_0x3071('0x4d')][_0x3071('0x13e')](db[_0x3071('0x13')],{'onDelete':_0x3071('0x161')});db[_0x3071('0x4d')][_0x3071('0x13e')](db[_0x3071('0x52')],{'onDelete':'restrict'});db[_0x3071('0x4d')][_0x3071('0x13e')](db[_0x3071('0x4b')],{'onDelete':_0x3071('0x161')});db['FaxApplication'][_0x3071('0x13e')](db[_0x3071('0x90')],{'onDelete':'restrict','foreignKey':_0x3071('0x162')});db[_0x3071('0x4f')][_0x3071('0x10c')](db[_0x3071('0x169')],{'as':_0x3071('0x148'),'onDelete':_0x3071('0x109'),'foreignKey':_0x3071('0x16a')});db['FaxInteraction'][_0x3071('0x13e')](db[_0x3071('0x4b')],{'as':'Account','foreignKey':_0x3071('0x165')});db['FaxInteraction'][_0x3071('0x13e')](db[_0x3071('0x72')],{'as':'Contact','foreignKey':_0x3071('0x14e')});db['FaxInteraction'][_0x3071('0x13e')](db[_0x3071('0x13')],{'as':_0x3071('0x16b'),'foreignKey':_0x3071('0x10b')});db[_0x3071('0x4f')][_0x3071('0x119')](db[_0x3071('0x90')],{'through':'fax_interaction_has_tags','as':'Tags'});db['FaxInteraction']['belongsToMany'](db[_0x3071('0x90')],{'through':_0x3071('0x16c'),'as':_0x3071('0x15b')});db[_0x3071('0x4f')][_0x3071('0x119')](db[_0x3071('0x13')],{'as':_0x3071('0x15c'),'through':_0x3071('0x121'),'foreignKey':_0x3071('0x16a')});db[_0x3071('0x169')][_0x3071('0x13e')](db[_0x3071('0x13')],{'onDelete':_0x3071('0x109'),'as':'User'});db['FaxMessage'][_0x3071('0x13e')](db[_0x3071('0x4f')],{'as':_0x3071('0x15e'),'foreignKey':_0x3071('0x16a')});db[_0x3071('0x169')][_0x3071('0x13e')](db['CmContact'],{'onDelete':_0x3071('0x109'),'as':_0x3071('0x14d')});db[_0x3071('0x169')][_0x3071('0x13e')](db[_0x3071('0xe8')],{'as':_0x3071('0xe8'),'foreignKey':'AttachmentId'});db[_0x3071('0x169')][_0x3071('0x13e')](db[_0x3071('0x4b')],{'as':_0x3071('0x159'),'foreignKey':_0x3071('0x165')});db[_0x3071('0x52')]['belongsToMany'](db['User'],{'as':_0x3071('0x144'),'through':_0x3071('0x37')});db['FaxQueue'][_0x3071('0x119')](db[_0x3071('0xe0')],{'through':_0x3071('0x16d'),'as':_0x3071('0x145')});db[_0x3071('0x53')][_0x3071('0x13e')](db[_0x3071('0x4b')],{});db[_0x3071('0x53')][_0x3071('0x13e')](db[_0x3071('0xf2')],{'as':_0x3071('0x156'),'foreignKey':_0x3071('0x163')});db[_0x3071('0x53')]['belongsTo'](db['CmContact'],{'as':_0x3071('0x14d'),'foreignKey':_0x3071('0x14e')});db[_0x3071('0x53')][_0x3071('0x13e')](db['FaxInteraction'],{});db['FaxQueueReport'][_0x3071('0x13e')](db[_0x3071('0x169')],{});db[_0x3071('0x53')][_0x3071('0x13e')](db['User'],{});db['FaxQueueReport'][_0x3071('0x13e')](db['FaxQueue'],{});db[_0x3071('0x132')][_0x3071('0x10c')](db[_0x3071('0x84')],{'as':_0x3071('0x152'),'foreignKey':_0x3071('0x16e'),'onDelete':_0x3071('0x109')});db[_0x3071('0x132')][_0x3071('0x10c')](db[_0x3071('0x82')],{'as':_0x3071('0x153'),'foreignKey':_0x3071('0x16e')});db[_0x3071('0x132')][_0x3071('0x10c')](db[_0x3071('0x57')],{'as':'Messages','foreignKey':_0x3071('0x16e')});db[_0x3071('0x132')][_0x3071('0x10c')](db[_0x3071('0x56')],{'as':_0x3071('0x155')});db[_0x3071('0x132')]['hasMany'](db[_0x3071('0x16f')],{'as':'Applications'});db[_0x3071('0x132')][_0x3071('0x13e')](db[_0x3071('0xf2')],{'as':_0x3071('0x156'),'foreignKey':'ListId'});db[_0x3071('0x132')][_0x3071('0x13e')](db[_0x3071('0x8a')],{'as':_0x3071('0x142'),'foreignKey':_0x3071('0x168')});db[_0x3071('0x132')][_0x3071('0x119')](db[_0x3071('0x13')],{'as':'Agents','through':_0x3071('0x134')});db[_0x3071('0x16f')][_0x3071('0x13e')](db['User'],{'onDelete':_0x3071('0x161')});db['SmsApplication'][_0x3071('0x13e')](db[_0x3071('0x129')],{'onDelete':_0x3071('0x161')});db['SmsApplication']['belongsTo'](db[_0x3071('0x132')],{'onDelete':_0x3071('0x161')});db[_0x3071('0x16f')][_0x3071('0x13e')](db[_0x3071('0x88')],{'onDelete':_0x3071('0x161'),'foreignKey':_0x3071('0x141')});db[_0x3071('0x16f')][_0x3071('0x13e')](db[_0x3071('0x90')],{'onDelete':_0x3071('0x161'),'foreignKey':'TagId'});db['SmsInteraction']['hasMany'](db[_0x3071('0x57')],{'as':_0x3071('0x148'),'onDelete':'cascade','foreignKey':_0x3071('0x170')});db[_0x3071('0x56')][_0x3071('0x13e')](db[_0x3071('0x132')],{'as':_0x3071('0x159'),'foreignKey':_0x3071('0x16e')});db[_0x3071('0x56')][_0x3071('0x13e')](db['CmContact'],{'as':_0x3071('0x14d'),'foreignKey':_0x3071('0x14e')});db[_0x3071('0x56')]['belongsTo'](db[_0x3071('0x13')],{'as':_0x3071('0x16b'),'foreignKey':_0x3071('0x10b')});db[_0x3071('0x56')][_0x3071('0x119')](db['Tag'],{'through':_0x3071('0x171'),'as':_0x3071('0x172')});db[_0x3071('0x56')][_0x3071('0x119')](db['Tag'],{'through':_0x3071('0x171'),'as':_0x3071('0x15b')});db[_0x3071('0x56')][_0x3071('0x119')](db[_0x3071('0x13')],{'as':'Users','through':_0x3071('0x122'),'foreignKey':'SmsInteractionId'});db['SmsMessage'][_0x3071('0x13e')](db[_0x3071('0x13')],{'as':_0x3071('0x13')});db['SmsMessage'][_0x3071('0x13e')](db['CmContact'],{'onDelete':_0x3071('0x109'),'as':_0x3071('0x14d')});db['SmsMessage'][_0x3071('0x13e')](db[_0x3071('0x56')],{'onDelete':_0x3071('0x109'),'as':'Interaction','foreignKey':_0x3071('0x170')});db[_0x3071('0x57')][_0x3071('0x13e')](db[_0x3071('0x132')],{'as':_0x3071('0x159'),'foreignKey':_0x3071('0x16e')});db[_0x3071('0x129')][_0x3071('0x119')](db[_0x3071('0x13')],{'as':_0x3071('0x144'),'through':'UserSmsQueue','foreignKey':_0x3071('0x173')});db[_0x3071('0x129')][_0x3071('0x119')](db[_0x3071('0xe0')],{'through':_0x3071('0x174'),'as':_0x3071('0x145')});db[_0x3071('0x5a')][_0x3071('0x10c')](db[_0x3071('0x84')],{'as':_0x3071('0x152'),'foreignKey':'OpenchannelAccountId','onDelete':_0x3071('0x109')});db[_0x3071('0x5a')]['hasMany'](db['CannedAnswer'],{'as':_0x3071('0x153'),'foreignKey':_0x3071('0x175')});db[_0x3071('0x5a')][_0x3071('0x10c')](db[_0x3071('0x5d')],{'as':_0x3071('0x155'),'foreignKey':_0x3071('0x175')});db[_0x3071('0x5a')]['hasMany'](db[_0x3071('0x5f')],{'as':_0x3071('0x148'),'foreignKey':_0x3071('0x175')});db['OpenchannelAccount'][_0x3071('0x10c')](db[_0x3071('0x176')],{'as':'Applications','foreignKey':_0x3071('0x175')});db[_0x3071('0x5a')][_0x3071('0x13e')](db[_0x3071('0xf2')],{'as':_0x3071('0x156'),'foreignKey':_0x3071('0x163')});db[_0x3071('0x5a')][_0x3071('0x13e')](db[_0x3071('0x8a')],{'as':'mandatoryDispositionPause','foreignKey':'mandatoryDispositionPauseId'});db[_0x3071('0x5a')]['belongsToMany'](db['User'],{'as':_0x3071('0x144'),'through':_0x3071('0x131')});db[_0x3071('0x176')][_0x3071('0x13e')](db['User'],{'onDelete':'restrict'});db['OpenchannelApplication'][_0x3071('0x13e')](db[_0x3071('0x61')],{'onDelete':_0x3071('0x161'),'foreignKey':_0x3071('0x177')});db['OpenchannelApplication'][_0x3071('0x13e')](db[_0x3071('0x5a')],{'onDelete':'restrict','foreignKey':_0x3071('0x175')});db['OpenchannelApplication']['belongsTo'](db[_0x3071('0x88')],{'onDelete':_0x3071('0x161'),'foreignKey':_0x3071('0x141')});db[_0x3071('0x176')][_0x3071('0x13e')](db[_0x3071('0x90')],{'onDelete':'restrict','foreignKey':_0x3071('0x162')});db[_0x3071('0x5d')][_0x3071('0x10c')](db[_0x3071('0x5f')],{'as':_0x3071('0x148'),'onDelete':_0x3071('0x109'),'foreignKey':_0x3071('0x178')});db[_0x3071('0x5d')]['belongsTo'](db[_0x3071('0x5a')],{'as':'Account','foreignKey':_0x3071('0x175')});db[_0x3071('0x5d')][_0x3071('0x13e')](db[_0x3071('0x72')],{'as':'Contact','foreignKey':_0x3071('0x14e')});db[_0x3071('0x5d')]['belongsTo'](db[_0x3071('0x13')],{'as':_0x3071('0x16b'),'foreignKey':_0x3071('0x10b')});db[_0x3071('0x5d')][_0x3071('0x119')](db[_0x3071('0x90')],{'through':_0x3071('0x179'),'as':_0x3071('0x172')});db[_0x3071('0x5d')][_0x3071('0x119')](db[_0x3071('0x90')],{'through':_0x3071('0x179'),'as':_0x3071('0x15b')});db[_0x3071('0x5d')]['belongsToMany'](db[_0x3071('0x13')],{'as':_0x3071('0x15c'),'through':'user_has_openchannel_interactions','foreignKey':_0x3071('0x178')});db[_0x3071('0x5f')]['belongsTo'](db[_0x3071('0x13')],{'onDelete':_0x3071('0x109'),'as':_0x3071('0x13')});db[_0x3071('0x5f')][_0x3071('0x13e')](db[_0x3071('0x72')],{'onDelete':_0x3071('0x109'),'as':_0x3071('0x14d')});db[_0x3071('0x5f')][_0x3071('0x13e')](db['OpenchannelInteraction'],{'onDelete':'cascade','as':_0x3071('0x15e'),'foreignKey':_0x3071('0x178')});db['OpenchannelMessage'][_0x3071('0x13e')](db[_0x3071('0xe8')],{'as':_0x3071('0xe8'),'foreignKey':'AttachmentId'});db['OpenchannelMessage'][_0x3071('0x13e')](db[_0x3071('0x5a')],{'as':_0x3071('0x159'),'foreignKey':_0x3071('0x175')});db['OpenchannelQueue'][_0x3071('0x119')](db['User'],{'as':_0x3071('0x144'),'through':_0x3071('0x3a'),'foreignKey':_0x3071('0x177')});db[_0x3071('0x61')]['belongsToMany'](db['Team'],{'through':_0x3071('0x17a'),'as':_0x3071('0x145')});db[_0x3071('0x63')][_0x3071('0x10c')](db['Disposition'],{'as':'Dispositions','foreignKey':'ChatWebsiteId','onDelete':'cascade'});db[_0x3071('0x63')][_0x3071('0x10c')](db[_0x3071('0x82')],{'as':_0x3071('0x153'),'foreignKey':_0x3071('0x15f')});db[_0x3071('0x63')]['hasMany'](db[_0x3071('0x70')],{'as':_0x3071('0x17b')});db['ChatWebsite']['hasMany'](db[_0x3071('0x68')],{'as':_0x3071('0x155')});db[_0x3071('0x63')][_0x3071('0x10c')](db[_0x3071('0x66')],{'as':'Applications'});db[_0x3071('0x63')][_0x3071('0x10c')](db['ChatMessage'],{'as':_0x3071('0x148')});db[_0x3071('0x63')][_0x3071('0x13e')](db[_0x3071('0xf2')],{'as':'List','foreignKey':_0x3071('0x163')});db[_0x3071('0x63')][_0x3071('0x13e')](db['Interval'],{'as':_0x3071('0x88'),'foreignKey':_0x3071('0x141')});db[_0x3071('0x63')][_0x3071('0x13e')](db[_0x3071('0x150')],{'as':_0x3071('0x150'),'foreignKey':'MailAccountId'});db[_0x3071('0x63')]['belongsTo'](db[_0x3071('0x8a')],{'as':_0x3071('0x142'),'foreignKey':_0x3071('0x168')});db[_0x3071('0x63')]['belongsToMany'](db[_0x3071('0x13')],{'as':_0x3071('0x144'),'through':_0x3071('0x17c')});db[_0x3071('0x65')]['belongsTo'](db[_0x3071('0x5a')],{});db[_0x3071('0x65')][_0x3071('0x13e')](db[_0x3071('0xf2')],{'as':_0x3071('0x156'),'foreignKey':_0x3071('0x163')});db[_0x3071('0x65')][_0x3071('0x13e')](db[_0x3071('0x72')],{'as':_0x3071('0x14d'),'foreignKey':_0x3071('0x14e')});db[_0x3071('0x65')][_0x3071('0x13e')](db[_0x3071('0x5d')],{});db[_0x3071('0x65')][_0x3071('0x13e')](db[_0x3071('0x5f')],{});db[_0x3071('0x65')][_0x3071('0x13e')](db[_0x3071('0x13')],{});db[_0x3071('0x65')][_0x3071('0x13e')](db[_0x3071('0x61')],{});db[_0x3071('0x66')][_0x3071('0x13e')](db[_0x3071('0x13')],{'as':'Agent','foreignKey':'UserId','onDelete':_0x3071('0x161')});db[_0x3071('0x66')]['belongsTo'](db[_0x3071('0x6d')],{'as':_0x3071('0x17d'),'foreignKey':_0x3071('0x17e'),'onDelete':_0x3071('0x161')});db[_0x3071('0x66')][_0x3071('0x13e')](db[_0x3071('0x63')],{'as':_0x3071('0x17f'),'foreignKey':_0x3071('0x15f'),'onDelete':'restrict'});db['ChatApplication'][_0x3071('0x13e')](db[_0x3071('0x90')],{'onDelete':_0x3071('0x161'),'foreignKey':_0x3071('0x162')});db[_0x3071('0x68')][_0x3071('0x10c')](db[_0x3071('0x180')],{'as':_0x3071('0x148'),'onDelete':_0x3071('0x109'),'foreignKey':_0x3071('0x181')});db[_0x3071('0x68')][_0x3071('0x13e')](db[_0x3071('0x63')],{'as':_0x3071('0x159'),'foreignKey':_0x3071('0x15f')});db[_0x3071('0x68')][_0x3071('0x13e')](db[_0x3071('0x72')],{'as':_0x3071('0x14d'),'foreignKey':'ContactId'});db[_0x3071('0x68')]['belongsTo'](db[_0x3071('0x13')],{'as':_0x3071('0x16b'),'foreignKey':'UserId'});db['ChatInteraction']['belongsToMany'](db[_0x3071('0x90')],{'through':_0x3071('0x182'),'as':'Tags'});db[_0x3071('0x68')][_0x3071('0x119')](db[_0x3071('0x90')],{'through':_0x3071('0x182'),'as':_0x3071('0x15b')});db[_0x3071('0x68')][_0x3071('0x119')](db[_0x3071('0x13')],{'as':_0x3071('0x15c'),'through':'user_has_chat_interactions','foreignKey':_0x3071('0x181')});db['ChatMessage'][_0x3071('0x13e')](db[_0x3071('0x13')],{'onDelete':'cascade','as':_0x3071('0x13')});db['ChatMessage'][_0x3071('0x13e')](db[_0x3071('0x72')],{'onDelete':_0x3071('0x109'),'as':'Contact','foreignKey':_0x3071('0x14e')});db[_0x3071('0x180')][_0x3071('0x13e')](db[_0x3071('0x68')],{'onDelete':'cascade','as':_0x3071('0x15e'),'foreignKey':_0x3071('0x181')});db['ChatMessage']['belongsTo'](db[_0x3071('0xe8')],{'as':_0x3071('0xe8'),'foreignKey':_0x3071('0x183')});db[_0x3071('0x180')][_0x3071('0x13e')](db['ChatWebsite'],{'as':_0x3071('0x159'),'foreignKey':'ChatWebsiteId'});db[_0x3071('0x6b')][_0x3071('0x10c')](db[_0x3071('0xe8')],{'as':'Attachments','foreignKey':_0x3071('0x160'),'onDelete':_0x3071('0x109'),'hooks':!![]});db[_0x3071('0x6b')]['belongsTo'](db['CmContact'],{'onDelete':_0x3071('0x109'),'as':_0x3071('0x14d'),'foreignKey':_0x3071('0x14e')});db[_0x3071('0x6b')][_0x3071('0x13e')](db[_0x3071('0x63')],{'as':_0x3071('0x159'),'foreignKey':_0x3071('0x15f')});db[_0x3071('0x6d')]['belongsToMany'](db[_0x3071('0x13')],{'as':'Agents','through':_0x3071('0x33'),'hooks':!![]});db[_0x3071('0x6d')][_0x3071('0x119')](db[_0x3071('0xe0')],{'through':_0x3071('0x184'),'as':_0x3071('0x145')});db['ChatGroup']['hasMany'](db[_0x3071('0xcf')],{'as':_0x3071('0x148'),'foreignKey':_0x3071('0x185'),'onDelete':'cascade'});db[_0x3071('0x186')]['belongsToMany'](db[_0x3071('0x13')],{'as':_0x3071('0x13a'),'through':_0x3071('0x11b')});db[_0x3071('0x70')][_0x3071('0x13e')](db[_0x3071('0x63')],{'as':_0x3071('0x17f'),'foreignKey':_0x3071('0x15f')});db['CmCompany'][_0x3071('0x10c')](db[_0x3071('0x72')],{'as':_0x3071('0x187'),'foreignKey':_0x3071('0x188')});db[_0x3071('0x72')][_0x3071('0x10c')](db[_0x3071('0x74')],{'as':'Hoppers','foreignKey':_0x3071('0x14e')});db[_0x3071('0x72')]['hasMany'](db[_0x3071('0x77')],{'as':_0x3071('0x10f'),'foreignKey':_0x3071('0x14e')});db['CmContact'][_0x3071('0x10c')](db['CmHopperHistory'],{'as':_0x3071('0x189'),'foreignKey':_0x3071('0x14e')});db[_0x3071('0x72')][_0x3071('0x10c')](db[_0x3071('0x7a')],{'as':_0x3071('0x7a'),'foreignKey':'ContactId'});db[_0x3071('0x72')][_0x3071('0x10c')](db['JscriptySessionReport'],{'as':'JscriptySessions','foreignKey':_0x3071('0x14e')});db[_0x3071('0x72')][_0x3071('0x10c')](db[_0x3071('0x5d')],{'as':_0x3071('0x111'),'foreignKey':_0x3071('0x14e'),'onDelete':_0x3071('0x161')});db[_0x3071('0x72')][_0x3071('0x10c')](db[_0x3071('0x68')],{'as':'ChatInteractions','foreignKey':_0x3071('0x14e'),'onDelete':_0x3071('0x161')});db[_0x3071('0x72')][_0x3071('0x10c')](db[_0x3071('0x56')],{'as':_0x3071('0x113'),'foreignKey':_0x3071('0x14e'),'onDelete':_0x3071('0x161')});db[_0x3071('0x72')][_0x3071('0x10c')](db[_0x3071('0x4f')],{'as':_0x3071('0x114'),'foreignKey':_0x3071('0x14e'),'onDelete':_0x3071('0x161')});db[_0x3071('0x72')][_0x3071('0x10c')](db[_0x3071('0x44')],{'as':'MailInteractions','foreignKey':_0x3071('0x14e'),'onDelete':_0x3071('0x161')});db[_0x3071('0x72')]['belongsTo'](db[_0x3071('0x18a')],{'as':'Company','foreignKey':'CompanyId'});db[_0x3071('0x72')][_0x3071('0x13e')](db[_0x3071('0xf2')],{'as':_0x3071('0x156'),'foreignKey':_0x3071('0x163'),'onDelete':_0x3071('0x109')});db[_0x3071('0x72')][_0x3071('0x119')](db[_0x3071('0x13')],{'as':_0x3071('0x15c'),'through':_0x3071('0x18b')});db[_0x3071('0x72')][_0x3071('0x119')](db[_0x3071('0x90')],{'as':_0x3071('0x172'),'through':_0x3071('0x18c')});db[_0x3071('0x72')][_0x3071('0x119')](db['Tag'],{'through':_0x3071('0x18c'),'as':_0x3071('0x15b')});db[_0x3071('0x74')][_0x3071('0x13e')](db['CmContact'],{'as':_0x3071('0x14d'),'foreignKey':_0x3071('0x14e'),'onDelete':'cascade'});db[_0x3071('0x74')][_0x3071('0x13e')](db[_0x3071('0xf2')],{'as':'List','foreignKey':_0x3071('0x163'),'onDelete':_0x3071('0x109')});db[_0x3071('0x74')][_0x3071('0x13e')](db['User'],{'as':_0x3071('0x18d'),'foreignKey':'UserId'});db[_0x3071('0x74')][_0x3071('0x13e')](db['VoiceQueue'],{'as':_0x3071('0x17d'),'foreignKey':'VoiceQueueId','onDelete':_0x3071('0x109')});db[_0x3071('0x74')][_0x3071('0x13e')](db[_0x3071('0xe4')],{'as':'Campaign','foreignKey':'CampaignId','onDelete':'cascade'});db[_0x3071('0x74')][_0x3071('0x13e')](db['User'],{'as':_0x3071('0x16b'),'foreignKey':_0x3071('0x18e')});db[_0x3071('0x76')][_0x3071('0x13e')](db[_0x3071('0x72')],{'as':_0x3071('0x14d'),'foreignKey':_0x3071('0x14e'),'onDelete':_0x3071('0x109')});db[_0x3071('0x76')][_0x3071('0x13e')](db[_0x3071('0xf2')],{'as':_0x3071('0x156'),'foreignKey':_0x3071('0x163'),'onDelete':_0x3071('0x109')});db['CmHopperBlack'][_0x3071('0x13e')](db[_0x3071('0x124')],{'as':_0x3071('0x17d'),'foreignKey':_0x3071('0x13b'),'onDelete':_0x3071('0x109')});db['CmHopperBlack'][_0x3071('0x13e')](db['Campaign'],{'as':_0x3071('0xe4'),'foreignKey':_0x3071('0x18f'),'onDelete':'cascade'});db[_0x3071('0x80')][_0x3071('0x10c')](db[_0x3071('0x86')],{'as':{'plural':_0x3071('0x190'),'singular':_0x3071('0x191')},'foreignKey':_0x3071('0x192'),'onDelete':_0x3071('0x109'),'hooks':!![]});db[_0x3071('0x80')][_0x3071('0x10c')](db['Condition'],{'as':{'plural':_0x3071('0x193'),'singular':'OneAny'},'foreignKey':'AutomationAnyId','onDelete':'cascade','hooks':!![]});db['Automation'][_0x3071('0x10c')](db[_0x3071('0x7e')],{'as':_0x3071('0x194'),'foreignKey':'AutomationId','onDelete':'cascade','hooks':!![]});db[_0x3071('0x84')][_0x3071('0x10c')](db[_0x3071('0x84')],{'as':_0x3071('0x152'),'foreignKey':_0x3071('0x195'),'onDelete':_0x3071('0x109')});db[_0x3071('0x88')]['hasMany'](db[_0x3071('0x88')],{'as':_0x3071('0x196'),'foreignKey':_0x3071('0x141'),'onDelete':_0x3071('0x109'),'hooks':!![],'required':![]});db[_0x3071('0x88')][_0x3071('0x10c')](db[_0x3071('0x19')],{'as':_0x3071('0x10e'),'foreignKey':'IntervalId','onDelete':'restrict'});db[_0x3071('0x88')][_0x3071('0x10c')](db['MailApplication'],{'as':_0x3071('0x197'),'foreignKey':'IntervalId'});db[_0x3071('0x88')][_0x3071('0x10c')](db[_0x3071('0x66')],{'as':'ChatApplications','foreignKey':_0x3071('0x141')});db['Interval'][_0x3071('0x10c')](db[_0x3071('0x4d')],{'as':'FaxApplications','foreignKey':_0x3071('0x141')});db[_0x3071('0x88')][_0x3071('0x10c')](db['SmsApplication'],{'as':_0x3071('0x198'),'foreignKey':'IntervalId'});db[_0x3071('0x8c')]['belongsTo'](db[_0x3071('0x150')],{});db['Schedule']['belongsTo'](db['AnalyticDefaultReport'],{'foreignKey':_0x3071('0x199')});db[_0x3071('0x8c')][_0x3071('0x13e')](db[_0x3071('0x19a')],{'foreignKey':'CustomReportId'});db['Sound']['belongsToMany'](db[_0x3071('0x19b')],{'as':_0x3071('0x19c'),'through':_0x3071('0x19d'),'onDelete':_0x3071('0x161')});db[_0x3071('0x90')][_0x3071('0x119')](db[_0x3071('0x72')],{'through':_0x3071('0x18c')});db[_0x3071('0x90')][_0x3071('0x119')](db[_0x3071('0x68')],{'through':'chat_interaction_has_tags'});db[_0x3071('0x90')][_0x3071('0x119')](db[_0x3071('0x44')],{'through':_0x3071('0x15a')});db[_0x3071('0x90')][_0x3071('0x119')](db[_0x3071('0x56')],{'through':'sms_interaction_has_tags'});db[_0x3071('0x90')][_0x3071('0x119')](db[_0x3071('0x4f')],{'through':'fax_interaction_has_tags'});db[_0x3071('0x90')][_0x3071('0x119')](db[_0x3071('0x5d')],{'through':_0x3071('0x179')});db[_0x3071('0x90')][_0x3071('0x119')](db['WhatsappInteraction'],{'through':_0x3071('0x19e')});db[_0x3071('0x94')][_0x3071('0x10c')](db['Condition'],{'as':{'plural':_0x3071('0x19f'),'singular':_0x3071('0x1a0')},'foreignKey':'TriggerAllId','onDelete':'cascade','hooks':!![]});db[_0x3071('0x94')]['hasMany'](db[_0x3071('0x86')],{'as':{'plural':_0x3071('0x1a1'),'singular':'AnyCondition'},'foreignKey':_0x3071('0x1a2'),'onDelete':_0x3071('0x109'),'hooks':!![]});db[_0x3071('0x94')][_0x3071('0x10c')](db['Action'],{'as':_0x3071('0x194'),'foreignKey':'TriggerId','onDelete':_0x3071('0x109'),'hooks':!![]});db[_0x3071('0x19a')][_0x3071('0x10c')](db[_0x3071('0xa0')],{'as':_0x3071('0x1a3'),'onDelete':'cascade','foreignKey':'CustomReportId','hooks':!![]});db[_0x3071('0x9c')][_0x3071('0x10c')](db[_0x3071('0xa0')],{'as':'Fields','onDelete':'cascade','foreignKey':'DefaultReportId'});db[_0x3071('0x9f')][_0x3071('0x10c')](db[_0x3071('0xa0')],{'as':'Fields','onDelete':_0x3071('0x109'),'foreignKey':'MetricId'});db['AnalyticFieldReport'][_0x3071('0x13e')](db['AnalyticMetric'],{'foreignKey':_0x3071('0x1a4')});db['SalesforceAccount'][_0x3071('0x10c')](db[_0x3071('0xa4')],{'as':_0x3071('0x1a5'),'onDelete':_0x3071('0x109'),'foreignKey':_0x3071('0x1a6')});db[_0x3071('0xa4')][_0x3071('0x10c')](db[_0x3071('0xa6')],{'as':_0x3071('0x1a7'),'onDelete':_0x3071('0x109'),'foreignKey':_0x3071('0x1a8')});db[_0x3071('0xa4')][_0x3071('0x10c')](db[_0x3071('0xa6')],{'as':_0x3071('0x1a9'),'onDelete':_0x3071('0x109'),'foreignKey':_0x3071('0x1aa')});db['SalesforceConfiguration'][_0x3071('0x10c')](db[_0x3071('0xa6')],{'as':_0x3071('0x1a3'),'onDelete':_0x3071('0x109'),'foreignKey':_0x3071('0x1ab')});db[_0x3071('0xa4')][_0x3071('0x13e')](db[_0x3071('0xa2')],{'as':_0x3071('0x159'),'foreignKey':_0x3071('0x1a6')});db[_0x3071('0xa6')]['hasMany'](db[_0x3071('0xa6')],{'as':'Subject','foreignKey':_0x3071('0x1a8')});db[_0x3071('0xa6')][_0x3071('0x10c')](db[_0x3071('0xa6')],{'as':_0x3071('0x1ac'),'foreignKey':'DescriptionId'});db['SalesforceField']['hasMany'](db[_0x3071('0xa6')],{'as':_0x3071('0x1ad'),'foreignKey':_0x3071('0x1ab')});db[_0x3071('0xa6')][_0x3071('0x13e')](db[_0x3071('0x96')],{'as':_0x3071('0x96'),'foreignKey':_0x3071('0x1ae')});db[_0x3071('0xa8')][_0x3071('0x10c')](db[_0x3071('0xa9')],{'as':_0x3071('0x1a5'),'onDelete':_0x3071('0x109'),'foreignKey':_0x3071('0x1a6')});db['SugarcrmConfiguration']['hasMany'](db[_0x3071('0xab')],{'as':'Subjects','onDelete':_0x3071('0x109'),'foreignKey':_0x3071('0x1a8')});db['SugarcrmConfiguration'][_0x3071('0x10c')](db[_0x3071('0xab')],{'as':_0x3071('0x1a9'),'onDelete':_0x3071('0x109'),'foreignKey':_0x3071('0x1aa')});db[_0x3071('0xa9')][_0x3071('0x10c')](db[_0x3071('0xab')],{'as':'Fields','onDelete':_0x3071('0x109'),'foreignKey':'FieldId'});db[_0x3071('0xa9')][_0x3071('0x13e')](db[_0x3071('0xa8')],{'as':_0x3071('0x159'),'foreignKey':_0x3071('0x1a6')});db[_0x3071('0xab')]['hasMany'](db[_0x3071('0xab')],{'as':_0x3071('0x1af'),'foreignKey':'SubjectId'});db['SugarcrmField'][_0x3071('0x10c')](db[_0x3071('0xab')],{'as':_0x3071('0x1ac'),'foreignKey':_0x3071('0x1aa')});db[_0x3071('0xab')][_0x3071('0x10c')](db[_0x3071('0xab')],{'as':'Field','foreignKey':_0x3071('0x1ab')});db[_0x3071('0xab')][_0x3071('0x13e')](db[_0x3071('0x96')],{'as':_0x3071('0x96'),'foreignKey':'VariableId'});db[_0x3071('0xad')][_0x3071('0x10c')](db[_0x3071('0x1b0')],{'as':'Configurations','onDelete':_0x3071('0x109'),'foreignKey':'AccountId'});db[_0x3071('0x1b0')][_0x3071('0x10c')](db[_0x3071('0xaf')],{'as':_0x3071('0x1a7'),'onDelete':'cascade','foreignKey':_0x3071('0x1a8')});db[_0x3071('0x1b0')][_0x3071('0x10c')](db[_0x3071('0xaf')],{'as':'Descriptions','onDelete':'cascade','foreignKey':_0x3071('0x1aa')});db[_0x3071('0x1b0')][_0x3071('0x10c')](db['DeskField'],{'as':_0x3071('0x1a3'),'onDelete':'cascade','foreignKey':_0x3071('0x1ab')});db[_0x3071('0x1b0')][_0x3071('0x13e')](db[_0x3071('0xad')],{'as':_0x3071('0x159'),'foreignKey':_0x3071('0x1a6')});db[_0x3071('0x1b0')][_0x3071('0x119')](db[_0x3071('0x90')],{'through':_0x3071('0x1b1')});db[_0x3071('0xaf')]['hasMany'](db['DeskField'],{'as':_0x3071('0x1af'),'foreignKey':'SubjectId'});db[_0x3071('0xaf')][_0x3071('0x10c')](db[_0x3071('0xaf')],{'as':'Description','foreignKey':_0x3071('0x1aa')});db[_0x3071('0xaf')][_0x3071('0x10c')](db[_0x3071('0xaf')],{'as':_0x3071('0x1ad'),'foreignKey':_0x3071('0x1ab')});db[_0x3071('0xaf')]['belongsTo'](db[_0x3071('0x96')],{'as':_0x3071('0x96'),'foreignKey':_0x3071('0x1ae')});db[_0x3071('0xb1')][_0x3071('0x10c')](db[_0x3071('0x1b2')],{'as':_0x3071('0x1a5'),'onDelete':'cascade','foreignKey':_0x3071('0x1a6')});db[_0x3071('0x1b2')][_0x3071('0x10c')](db[_0x3071('0xb4')],{'as':'Subjects','onDelete':_0x3071('0x109'),'foreignKey':_0x3071('0x1a8')});db['ZohoConfiguration'][_0x3071('0x10c')](db[_0x3071('0xb4')],{'as':_0x3071('0x1a9'),'onDelete':_0x3071('0x109'),'foreignKey':_0x3071('0x1aa')});db['ZohoConfiguration']['hasMany'](db[_0x3071('0xb4')],{'as':'Fields','onDelete':_0x3071('0x109'),'foreignKey':_0x3071('0x1ab')});db[_0x3071('0x1b2')]['belongsTo'](db[_0x3071('0xb1')],{'as':_0x3071('0x159'),'foreignKey':_0x3071('0x1a6')});db[_0x3071('0xb4')][_0x3071('0x10c')](db['ZohoField'],{'as':_0x3071('0x1af'),'foreignKey':_0x3071('0x1a8')});db[_0x3071('0xb4')][_0x3071('0x10c')](db[_0x3071('0xb4')],{'as':'Description','foreignKey':_0x3071('0x1aa')});db[_0x3071('0xb4')][_0x3071('0x10c')](db[_0x3071('0xb4')],{'as':_0x3071('0x1ad'),'foreignKey':_0x3071('0x1ab')});db[_0x3071('0xb4')][_0x3071('0x13e')](db[_0x3071('0x96')],{'as':_0x3071('0x96'),'foreignKey':_0x3071('0x1ae')});db[_0x3071('0xb5')][_0x3071('0x10c')](db['ZendeskConfiguration'],{'as':_0x3071('0x1a5'),'onDelete':_0x3071('0x109'),'foreignKey':_0x3071('0x1a6')});db[_0x3071('0x1b3')][_0x3071('0x10c')](db['ZendeskField'],{'as':_0x3071('0x1a7'),'foreignKey':'SubjectId'});db[_0x3071('0x1b3')]['hasMany'](db[_0x3071('0xb7')],{'as':_0x3071('0x1a9'),'foreignKey':_0x3071('0x1aa')});db[_0x3071('0x1b3')][_0x3071('0x10c')](db[_0x3071('0xb7')],{'as':_0x3071('0x1a3'),'foreignKey':_0x3071('0x1ab')});db[_0x3071('0x1b3')][_0x3071('0x13e')](db[_0x3071('0xb5')],{'as':'Account','foreignKey':_0x3071('0x1a6')});db[_0x3071('0x1b3')]['belongsToMany'](db['Tag'],{'through':_0x3071('0x1b4')});db[_0x3071('0xb7')][_0x3071('0x10c')](db[_0x3071('0xb7')],{'as':'Subject','foreignKey':_0x3071('0x1a8')});db[_0x3071('0xb7')][_0x3071('0x10c')](db[_0x3071('0xb7')],{'as':_0x3071('0x1ac'),'foreignKey':_0x3071('0x1aa')});db[_0x3071('0xb7')][_0x3071('0x10c')](db['ZendeskField'],{'as':_0x3071('0x1ad'),'foreignKey':'FieldId'});db[_0x3071('0xb7')][_0x3071('0x13e')](db[_0x3071('0x96')],{'as':'Variable','foreignKey':_0x3071('0x1ae')});db[_0x3071('0xb9')][_0x3071('0x10c')](db[_0x3071('0xba')],{'as':'Configurations','onDelete':'cascade','foreignKey':_0x3071('0x1a6')});db[_0x3071('0xba')][_0x3071('0x10c')](db['FreshdeskField'],{'as':_0x3071('0x1a7'),'onDelete':_0x3071('0x109'),'foreignKey':_0x3071('0x1a8')});db[_0x3071('0xba')][_0x3071('0x10c')](db['FreshdeskField'],{'as':_0x3071('0x1a9'),'onDelete':_0x3071('0x109'),'foreignKey':'DescriptionId'});db[_0x3071('0xba')][_0x3071('0x10c')](db[_0x3071('0xbc')],{'as':_0x3071('0x1a3'),'onDelete':_0x3071('0x109'),'foreignKey':'FieldId'});db[_0x3071('0xba')][_0x3071('0x13e')](db['FreshdeskAccount'],{'as':_0x3071('0x159'),'foreignKey':_0x3071('0x1a6')});db[_0x3071('0xba')][_0x3071('0x119')](db[_0x3071('0x90')],{'through':'int_freshdesk_configuration_has_tags'});db['FreshdeskField'][_0x3071('0x10c')](db['FreshdeskField'],{'as':'Subject','foreignKey':_0x3071('0x1a8')});db[_0x3071('0xbc')][_0x3071('0x10c')](db['FreshdeskField'],{'as':_0x3071('0x1ac'),'foreignKey':_0x3071('0x1aa')});db[_0x3071('0xbc')][_0x3071('0x10c')](db[_0x3071('0xbc')],{'as':_0x3071('0x1ad'),'foreignKey':_0x3071('0x1ab')});db[_0x3071('0xbc')]['belongsTo'](db[_0x3071('0x96')],{'as':'Variable','foreignKey':'VariableId'});db[_0x3071('0x1b5')][_0x3071('0x10c')](db[_0x3071('0x1b6')],{'as':_0x3071('0x1a5'),'onDelete':'cascade','foreignKey':_0x3071('0x1a6')});db[_0x3071('0x1b6')][_0x3071('0x10c')](db[_0x3071('0xc0')],{'as':_0x3071('0x1a7'),'foreignKey':_0x3071('0x1a8')});db[_0x3071('0x1b6')][_0x3071('0x10c')](db[_0x3071('0xc0')],{'as':_0x3071('0x1a9'),'foreignKey':'DescriptionId'});db[_0x3071('0x1b6')][_0x3071('0x10c')](db[_0x3071('0xc0')],{'as':'Fields','foreignKey':_0x3071('0x1ab')});db['VtigerConfiguration'][_0x3071('0x13e')](db[_0x3071('0x1b5')],{'as':_0x3071('0x159'),'foreignKey':'AccountId'});db[_0x3071('0xc0')][_0x3071('0x10c')](db['VtigerField'],{'as':_0x3071('0x1af'),'foreignKey':_0x3071('0x1a8')});db[_0x3071('0xc0')]['hasMany'](db[_0x3071('0xc0')],{'as':'Description','foreignKey':_0x3071('0x1aa')});db[_0x3071('0xc0')][_0x3071('0x10c')](db['VtigerField'],{'as':_0x3071('0x1ad'),'foreignKey':_0x3071('0x1ab')});db['VtigerField'][_0x3071('0x13e')](db['Variable'],{'as':'Variable','foreignKey':'VariableId'});db[_0x3071('0xc2')][_0x3071('0x10c')](db[_0x3071('0xc4')],{'as':'Configurations','onDelete':_0x3071('0x109'),'foreignKey':_0x3071('0x1a6')});db[_0x3071('0xc4')][_0x3071('0x10c')](db[_0x3071('0x1b7')],{'as':_0x3071('0x1a7'),'foreignKey':_0x3071('0x1a8')});db[_0x3071('0xc4')][_0x3071('0x10c')](db['ServicenowField'],{'as':_0x3071('0x1a9'),'foreignKey':_0x3071('0x1aa')});db[_0x3071('0xc4')][_0x3071('0x10c')](db['ServicenowField'],{'as':_0x3071('0x1a3'),'foreignKey':_0x3071('0x1ab')});db[_0x3071('0xc4')]['belongsTo'](db[_0x3071('0xc2')],{'as':_0x3071('0x159'),'foreignKey':'AccountId'});db[_0x3071('0x1b7')][_0x3071('0x10c')](db[_0x3071('0x1b7')],{'as':'Subject','foreignKey':_0x3071('0x1a8')});db[_0x3071('0x1b7')][_0x3071('0x10c')](db['ServicenowField'],{'as':_0x3071('0x1ac'),'foreignKey':_0x3071('0x1aa')});db[_0x3071('0x1b7')][_0x3071('0x10c')](db[_0x3071('0x1b7')],{'as':'Field','foreignKey':'FieldId'});db[_0x3071('0x1b7')]['belongsTo'](db[_0x3071('0x96')],{'as':'Variable','foreignKey':_0x3071('0x1ae')});db[_0x3071('0x1b8')]['hasMany'](db[_0x3071('0x1b9')],{'as':_0x3071('0x1a5'),'onDelete':_0x3071('0x109'),'foreignKey':_0x3071('0x1a6')});db[_0x3071('0x1b9')][_0x3071('0x10c')](db['Dynamics365Field'],{'as':'Subjects','onDelete':'cascade','foreignKey':_0x3071('0x1a8')});db[_0x3071('0x1b9')]['hasMany'](db[_0x3071('0xc7')],{'as':_0x3071('0x1a9'),'onDelete':_0x3071('0x109'),'foreignKey':_0x3071('0x1aa')});db[_0x3071('0x1b9')]['hasMany'](db[_0x3071('0xc7')],{'as':_0x3071('0x1a3'),'onDelete':'cascade','foreignKey':_0x3071('0x1ab')});db[_0x3071('0x1b9')][_0x3071('0x13e')](db[_0x3071('0x1b8')],{'as':_0x3071('0x159'),'foreignKey':'AccountId'});db['Dynamics365Field'][_0x3071('0x10c')](db[_0x3071('0xc7')],{'as':_0x3071('0x1af'),'foreignKey':'SubjectId'});db[_0x3071('0xc7')][_0x3071('0x10c')](db[_0x3071('0xc7')],{'as':_0x3071('0x1ac'),'foreignKey':'DescriptionId'});db[_0x3071('0xc7')][_0x3071('0x10c')](db[_0x3071('0xc7')],{'as':_0x3071('0x1ad'),'foreignKey':_0x3071('0x1ab')});db[_0x3071('0xc7')][_0x3071('0x13e')](db[_0x3071('0x96')],{'as':'Variable','foreignKey':_0x3071('0x1ae')});db[_0x3071('0x1ba')]['hasMany'](db[_0x3071('0xc9')],{'as':_0x3071('0x1a5'),'onDelete':_0x3071('0x109'),'foreignKey':'AccountId'});db['FreshsalesConfiguration'][_0x3071('0x10c')](db['FreshsalesField'],{'as':'Subjects','foreignKey':_0x3071('0x1a8')});db[_0x3071('0xc9')][_0x3071('0x10c')](db[_0x3071('0x1bb')],{'as':_0x3071('0x1a9'),'foreignKey':_0x3071('0x1aa')});db[_0x3071('0xc9')][_0x3071('0x10c')](db[_0x3071('0x1bb')],{'as':'Fields','foreignKey':'FieldId'});db['FreshsalesConfiguration'][_0x3071('0x13e')](db[_0x3071('0x1ba')],{'as':_0x3071('0x159'),'foreignKey':'AccountId'});db[_0x3071('0x1bb')][_0x3071('0x10c')](db[_0x3071('0x1bb')],{'as':_0x3071('0x1af'),'foreignKey':'SubjectId'});db[_0x3071('0x1bb')][_0x3071('0x10c')](db[_0x3071('0x1bb')],{'as':_0x3071('0x1ac'),'foreignKey':'DescriptionId'});db[_0x3071('0x1bb')][_0x3071('0x10c')](db[_0x3071('0x1bb')],{'as':_0x3071('0x1ad'),'foreignKey':_0x3071('0x1ab')});db[_0x3071('0x1bb')][_0x3071('0x13e')](db['Variable'],{'as':_0x3071('0x96'),'foreignKey':_0x3071('0x1ae')});db['ChatQueueReport']['belongsTo'](db[_0x3071('0x63')],{});db[_0x3071('0xce')]['belongsTo'](db['CmList'],{'as':_0x3071('0x156'),'foreignKey':_0x3071('0x163')});db[_0x3071('0xce')]['belongsTo'](db[_0x3071('0x72')],{'as':_0x3071('0x14d'),'foreignKey':_0x3071('0x14e')});db[_0x3071('0xce')][_0x3071('0x13e')](db['ChatInteraction'],{});db[_0x3071('0xce')][_0x3071('0x13e')](db[_0x3071('0x180')],{});db[_0x3071('0xce')][_0x3071('0x13e')](db[_0x3071('0x13')],{});db[_0x3071('0xce')]['belongsTo'](db[_0x3071('0x6d')],{});db[_0x3071('0xcf')][_0x3071('0x13e')](db[_0x3071('0x13')],{'onDelete':_0x3071('0x109'),'foreignKey':_0x3071('0x1bc')});db['ChatInternalMessage'][_0x3071('0x13e')](db[_0x3071('0x13')],{'onDelete':_0x3071('0x109'),'foreignKey':_0x3071('0x1bd')});db[_0x3071('0x13c')]['hasMany'](db['JscriptyQuestionReport'],{'foreignKey':_0x3071('0x1be'),'onDelete':'cascade'});db[_0x3071('0x13c')][_0x3071('0x10c')](db[_0x3071('0xd1')],{'foreignKey':_0x3071('0x1be'),'onDelete':'cascade'});db[_0x3071('0xd4')]['belongsTo'](db['SmsAccount'],{});db[_0x3071('0xd4')][_0x3071('0x13e')](db[_0x3071('0xf2')],{'as':_0x3071('0x156'),'foreignKey':_0x3071('0x163')});db[_0x3071('0xd4')][_0x3071('0x13e')](db[_0x3071('0x72')],{'as':_0x3071('0x14d'),'foreignKey':_0x3071('0x14e')});db['SmsQueueReport'][_0x3071('0x13e')](db[_0x3071('0x56')],{});db['SmsQueueReport'][_0x3071('0x13e')](db['SmsMessage'],{});db[_0x3071('0xd4')][_0x3071('0x13e')](db['User'],{});db[_0x3071('0xd4')][_0x3071('0x13e')](db[_0x3071('0x129')],{});db[_0x3071('0x1bf')][_0x3071('0x10c')](db[_0x3071('0x13c')],{'foreignKey':_0x3071('0x1c0')});db[_0x3071('0x1bf')]['hasMany'](db[_0x3071('0x1c1')],{'foreignKey':'ProjectId'});db[_0x3071('0x1bf')][_0x3071('0x10c')](db[_0x3071('0xd1')],{'foreignKey':_0x3071('0x1c0')});db[_0x3071('0x136')][_0x3071('0x119')](db[_0x3071('0x13')],{'as':_0x3071('0x15c'),'through':_0x3071('0x1c2')});db['Team'][_0x3071('0x119')](db[_0x3071('0x13')],{'as':_0x3071('0x144'),'through':_0x3071('0x11e')});db[_0x3071('0xe0')][_0x3071('0x119')](db[_0x3071('0x124')],{'through':_0x3071('0x146'),'as':_0x3071('0x125')});db[_0x3071('0xe0')][_0x3071('0x119')](db[_0x3071('0x41')],{'through':_0x3071('0x157'),'as':_0x3071('0x126')});db[_0x3071('0xe0')][_0x3071('0x119')](db[_0x3071('0x6d')],{'through':'team_has_chat_queues','as':_0x3071('0x127')});db[_0x3071('0xe0')][_0x3071('0x119')](db[_0x3071('0x52')],{'through':'team_has_fax_queues','as':_0x3071('0x128')});db[_0x3071('0xe0')][_0x3071('0x119')](db[_0x3071('0x129')],{'through':_0x3071('0x174'),'as':'SmsQueues'});db[_0x3071('0xe0')][_0x3071('0x119')](db[_0x3071('0x61')],{'through':_0x3071('0x17a'),'as':_0x3071('0x12a')});db['Team'][_0x3071('0x119')](db[_0x3071('0x101')],{'through':_0x3071('0x1c3'),'as':_0x3071('0x12b')});db[_0x3071('0xe0')][_0x3071('0x119')](db['VoicePrefix'],{'through':_0x3071('0x1c4'),'as':_0x3071('0x1c5')});db['Campaign'][_0x3071('0x10c')](db['CmHopper'],{'as':_0x3071('0x1c6'),'foreignKey':_0x3071('0x18f')});db[_0x3071('0xe4')][_0x3071('0x10c')](db[_0x3071('0x77')],{'as':'HopperFinals','foreignKey':_0x3071('0x18f')});db[_0x3071('0xe4')][_0x3071('0x10c')](db[_0x3071('0x78')],{'as':'HopperHistories','foreignKey':_0x3071('0x18f')});db[_0x3071('0xe4')][_0x3071('0x10c')](db[_0x3071('0x76')],{'as':'HopperBlacks','foreignKey':_0x3071('0x18f')});db[_0x3071('0xe4')]['belongsTo'](db[_0x3071('0x2c')],{'as':_0x3071('0x2c'),'foreignKey':_0x3071('0x1c7')});db['Campaign'][_0x3071('0x13e')](db[_0x3071('0x2c')],{'as':_0x3071('0x13f'),'foreignKey':_0x3071('0x140')});db[_0x3071('0xe4')][_0x3071('0x13e')](db[_0x3071('0x88')],{'as':_0x3071('0x88'),'foreignKey':_0x3071('0x141')});db['Campaign']['belongsTo'](db[_0x3071('0x136')],{'as':'SquareProject','foreignKey':_0x3071('0x1c8')});db[_0x3071('0xe4')]['belongsToMany'](db[_0x3071('0xf2')],{'as':_0x3071('0x11c'),'through':_0x3071('0x1c9')});db[_0x3071('0xe4')]['belongsToMany'](db[_0x3071('0xf2')],{'as':_0x3071('0x147'),'through':'campaigns_has_cm_blacklists'});db[_0x3071('0xe8')][_0x3071('0x13e')](db[_0x3071('0x6b')],{'as':_0x3071('0x6b'),'foreignKey':_0x3071('0x160')});db[_0x3071('0x1ca')]['belongsTo'](db['MailMessage'],{});db[_0x3071('0x1ca')][_0x3071('0x13e')](db[_0x3071('0x44')],{});db['MailTransferReport']['belongsTo'](db['MailAccount'],{'foreignKey':_0x3071('0x1cb'),'as':'FromAccount'});db['MailTransferReport']['belongsTo'](db[_0x3071('0x13')],{'foreignKey':'FromUserId','as':'FromAgent'});db[_0x3071('0x1ca')][_0x3071('0x13e')](db[_0x3071('0x13')],{'foreignKey':_0x3071('0x1cc'),'as':_0x3071('0x1cd')});db[_0x3071('0x1ca')][_0x3071('0x13e')](db[_0x3071('0x41')],{'foreignKey':'ToMailQueueId','as':_0x3071('0x1ce')});db[_0x3071('0x1ca')][_0x3071('0x13e')](db[_0x3071('0x150')],{'foreignKey':_0x3071('0x1cf'),'as':_0x3071('0x1d0')});db[_0x3071('0xeb')][_0x3071('0x13e')](db['ChatMessage'],{});db['ChatTransferReport'][_0x3071('0x13e')](db['ChatInteraction'],{});db[_0x3071('0xeb')][_0x3071('0x13e')](db[_0x3071('0x63')],{'foreignKey':'FromChatWebsiteId','as':_0x3071('0x1d1')});db[_0x3071('0xeb')][_0x3071('0x13e')](db[_0x3071('0x13')],{'foreignKey':'FromUserId','as':_0x3071('0x1d2')});db[_0x3071('0xeb')]['belongsTo'](db[_0x3071('0x13')],{'foreignKey':'ToUserId','as':'ToAgent'});db[_0x3071('0xeb')][_0x3071('0x13e')](db[_0x3071('0x6d')],{'foreignKey':_0x3071('0x1d3'),'as':_0x3071('0x1ce')});db['ChatTransferReport'][_0x3071('0x13e')](db[_0x3071('0x63')],{'foreignKey':_0x3071('0x1d4'),'as':'ToAccount'});db[_0x3071('0xed')][_0x3071('0x13e')](db[_0x3071('0x169')],{});db[_0x3071('0xed')][_0x3071('0x13e')](db[_0x3071('0x4f')],{});db['FaxTransferReport']['belongsTo'](db[_0x3071('0x4b')],{'foreignKey':_0x3071('0x1d5'),'as':'FromAccount'});db['FaxTransferReport'][_0x3071('0x13e')](db[_0x3071('0x13')],{'foreignKey':'FromUserId','as':_0x3071('0x1d2')});db['FaxTransferReport'][_0x3071('0x13e')](db[_0x3071('0x13')],{'foreignKey':_0x3071('0x1cc'),'as':_0x3071('0x1cd')});db[_0x3071('0xed')][_0x3071('0x13e')](db[_0x3071('0x52')],{'foreignKey':_0x3071('0x1d6'),'as':_0x3071('0x1ce')});db[_0x3071('0xed')][_0x3071('0x13e')](db[_0x3071('0x4b')],{'foreignKey':_0x3071('0x1d7'),'as':'ToAccount'});db['OpenchannelTransferReport']['belongsTo'](db[_0x3071('0x5f')],{});db[_0x3071('0xef')][_0x3071('0x13e')](db['OpenchannelInteraction'],{});db[_0x3071('0xef')][_0x3071('0x13e')](db[_0x3071('0x5a')],{'foreignKey':_0x3071('0x1d8'),'as':'FromAccount'});db['OpenchannelTransferReport'][_0x3071('0x13e')](db[_0x3071('0x13')],{'foreignKey':_0x3071('0x1d9'),'as':'FromAgent'});db['OpenchannelTransferReport'][_0x3071('0x13e')](db[_0x3071('0x13')],{'foreignKey':'ToUserId','as':_0x3071('0x1cd')});db['OpenchannelTransferReport'][_0x3071('0x13e')](db[_0x3071('0x61')],{'foreignKey':'ToOpenchannelQueueId','as':_0x3071('0x1ce')});db[_0x3071('0xef')][_0x3071('0x13e')](db['OpenchannelAccount'],{'foreignKey':_0x3071('0x1da'),'as':_0x3071('0x1d0')});db['SmsTransferReport'][_0x3071('0x13e')](db[_0x3071('0x57')],{});db[_0x3071('0x1db')][_0x3071('0x13e')](db['SmsInteraction'],{});db[_0x3071('0x1db')][_0x3071('0x13e')](db[_0x3071('0x132')],{'foreignKey':'FromSmsAccountId','as':_0x3071('0x1d1')});db['SmsTransferReport'][_0x3071('0x13e')](db[_0x3071('0x13')],{'foreignKey':_0x3071('0x1d9'),'as':_0x3071('0x1d2')});db[_0x3071('0x1db')][_0x3071('0x13e')](db['User'],{'foreignKey':_0x3071('0x1cc'),'as':_0x3071('0x1cd')});db['SmsTransferReport'][_0x3071('0x13e')](db[_0x3071('0x129')],{'foreignKey':'ToSmsQueueId','as':_0x3071('0x1ce')});db[_0x3071('0x1db')]['belongsTo'](db[_0x3071('0x132')],{'foreignKey':_0x3071('0x1dc'),'as':_0x3071('0x1d0')});db['CmList'][_0x3071('0x10c')](db[_0x3071('0x84')],{'as':_0x3071('0x152'),'foreignKey':_0x3071('0x163'),'onDelete':_0x3071('0x109')});db[_0x3071('0xf2')][_0x3071('0x10c')](db['CmCustomField'],{'as':_0x3071('0x1dd'),'foreignKey':_0x3071('0x163')});db[_0x3071('0xf2')]['hasMany'](db['CmContact'],{'as':_0x3071('0x187'),'onDelete':_0x3071('0x109'),'foreignKey':_0x3071('0x163')});db[_0x3071('0xf2')][_0x3071('0x10c')](db[_0x3071('0x77')],{'as':_0x3071('0x10f'),'foreignKey':'ListId'});db[_0x3071('0xf2')][_0x3071('0x10c')](db[_0x3071('0x78')],{'as':_0x3071('0x110'),'foreignKey':_0x3071('0x163')});db[_0x3071('0xf2')][_0x3071('0x10c')](db[_0x3071('0x7a')],{'as':_0x3071('0x7a'),'foreignKey':_0x3071('0x163')});db[_0x3071('0xf2')]['belongsToMany'](db[_0x3071('0x124')],{'as':_0x3071('0x1de'),'through':'voice_queues_has_cm_lists'});db['CmList'][_0x3071('0x119')](db['User'],{'as':_0x3071('0x144'),'through':_0x3071('0x11d')});db[_0x3071('0xf3')][_0x3071('0x10c')](db[_0x3071('0x19')],{'as':_0x3071('0x10e'),'onDelete':_0x3071('0x109')});db['VoicePrefix'][_0x3071('0x119')](db['User'],{'as':_0x3071('0x144'),'through':_0x3071('0x106')});db[_0x3071('0xf3')][_0x3071('0x119')](db[_0x3071('0xe0')],{'through':_0x3071('0x1c4'),'as':_0x3071('0x145')});db[_0x3071('0x118')][_0x3071('0x10c')](db[_0x3071('0x13')],{'as':_0x3071('0x15c'),'foreignKey':_0x3071('0x1df')});db[_0x3071('0x118')][_0x3071('0x10c')](db[_0x3071('0x1e0')],{'as':_0x3071('0x1e1'),'foreignKey':_0x3071('0x1df'),'onDelete':'cascade'});db[_0x3071('0x1e0')][_0x3071('0x10c')](db[_0x3071('0xf6')],{'as':_0x3071('0x1e2'),'foreignKey':_0x3071('0x1e3'),'onDelete':_0x3071('0x109')});db[_0x3071('0x1e4')]['hasMany'](db['Disposition'],{'as':_0x3071('0x152'),'foreignKey':_0x3071('0x1e5'),'onDelete':'cascade'});db[_0x3071('0x1e4')][_0x3071('0x10c')](db['CannedAnswer'],{'as':'Answers','foreignKey':'WhatsappAccountId'});db['WhatsappAccount']['hasMany'](db[_0x3071('0xfd')],{'as':_0x3071('0x148'),'foreignKey':'WhatsappAccountId'});db[_0x3071('0x1e4')][_0x3071('0x10c')](db[_0x3071('0xfc')],{'as':_0x3071('0x155')});db[_0x3071('0x1e4')][_0x3071('0x10c')](db[_0x3071('0xfb')],{'as':_0x3071('0x166')});db[_0x3071('0x1e4')][_0x3071('0x13e')](db[_0x3071('0xf2')],{'as':_0x3071('0x156'),'foreignKey':'ListId'});db[_0x3071('0x1e4')][_0x3071('0x13e')](db[_0x3071('0x8a')],{'as':_0x3071('0x142'),'foreignKey':_0x3071('0x168')});db['WhatsappAccount'][_0x3071('0x119')](db[_0x3071('0x13')],{'as':_0x3071('0x144'),'through':_0x3071('0x1e6')});db[_0x3071('0xfb')]['belongsTo'](db['User'],{'onDelete':_0x3071('0x161')});db['WhatsappApplication']['belongsTo'](db[_0x3071('0x101')],{'onDelete':'restrict'});db[_0x3071('0xfb')][_0x3071('0x13e')](db[_0x3071('0x1e4')],{'onDelete':_0x3071('0x161')});db[_0x3071('0xfb')][_0x3071('0x13e')](db[_0x3071('0x88')],{'onDelete':'restrict','foreignKey':_0x3071('0x141')});db[_0x3071('0xfb')][_0x3071('0x13e')](db['Tag'],{'onDelete':_0x3071('0x161'),'foreignKey':_0x3071('0x162')});db[_0x3071('0xfc')][_0x3071('0x10c')](db[_0x3071('0xfd')],{'as':'Messages','onDelete':_0x3071('0x109'),'foreignKey':'WhatsappInteractionId'});db[_0x3071('0xfc')][_0x3071('0x13e')](db[_0x3071('0x1e4')],{'as':_0x3071('0x159'),'foreignKey':_0x3071('0x1e5')});db[_0x3071('0xfc')][_0x3071('0x13e')](db[_0x3071('0x72')],{'as':_0x3071('0x14d'),'foreignKey':_0x3071('0x14e')});db[_0x3071('0xfc')][_0x3071('0x13e')](db[_0x3071('0x13')],{'as':_0x3071('0x16b'),'foreignKey':_0x3071('0x10b')});db[_0x3071('0xfc')][_0x3071('0x119')](db[_0x3071('0x90')],{'through':_0x3071('0x19e'),'as':'Tags'});db[_0x3071('0xfc')][_0x3071('0x119')](db[_0x3071('0x90')],{'through':_0x3071('0x19e'),'as':'ThroughTags'});db[_0x3071('0xfc')]['belongsToMany'](db[_0x3071('0x13')],{'as':'Users','through':_0x3071('0x123'),'foreignKey':_0x3071('0x1e7')});db[_0x3071('0xfd')]['belongsTo'](db[_0x3071('0x13')],{'as':_0x3071('0x13')});db[_0x3071('0xfd')]['belongsTo'](db[_0x3071('0x72')],{'onDelete':_0x3071('0x109'),'as':'Contact'});db[_0x3071('0xfd')][_0x3071('0x13e')](db[_0x3071('0xfc')],{'onDelete':_0x3071('0x109'),'as':'Interaction','foreignKey':_0x3071('0x1e7')});db[_0x3071('0xfd')][_0x3071('0x13e')](db[_0x3071('0x1e4')],{'as':_0x3071('0x159'),'foreignKey':_0x3071('0x1e5')});db['WhatsappQueueReport'][_0x3071('0x13e')](db['WhatsappAccount'],{});db['WhatsappQueueReport'][_0x3071('0x13e')](db[_0x3071('0xf2')],{'as':_0x3071('0x156'),'foreignKey':'ListId'});db[_0x3071('0x1e8')][_0x3071('0x13e')](db['CmContact'],{'as':_0x3071('0x14d'),'foreignKey':_0x3071('0x14e')});db[_0x3071('0x1e8')][_0x3071('0x13e')](db[_0x3071('0xfc')],{});db[_0x3071('0x1e8')][_0x3071('0x13e')](db['WhatsappQueue'],{});db[_0x3071('0x1e8')][_0x3071('0x13e')](db[_0x3071('0xfd')],{});db[_0x3071('0x1e8')][_0x3071('0x13e')](db[_0x3071('0x13')],{});db[_0x3071('0x100')]['belongsTo'](db['WhatsappMessage'],{});db[_0x3071('0x100')][_0x3071('0x13e')](db[_0x3071('0xfc')],{});db[_0x3071('0x100')][_0x3071('0x13e')](db[_0x3071('0x1e4')],{'foreignKey':_0x3071('0x1e9'),'as':_0x3071('0x1d1')});db['WhatsappTransferReport'][_0x3071('0x13e')](db[_0x3071('0x1e4')],{'foreignKey':_0x3071('0x1ea'),'as':'ToAccount'});db[_0x3071('0x100')][_0x3071('0x13e')](db[_0x3071('0x101')],{'foreignKey':_0x3071('0x1eb'),'as':_0x3071('0x1ce')});db[_0x3071('0x100')][_0x3071('0x13e')](db['User'],{'foreignKey':_0x3071('0x1d9'),'as':_0x3071('0x1d2')});db[_0x3071('0x100')][_0x3071('0x13e')](db['User'],{'foreignKey':_0x3071('0x1cc'),'as':_0x3071('0x1cd')});db['WhatsappQueue'][_0x3071('0x119')](db[_0x3071('0x13')],{'as':_0x3071('0x144'),'through':_0x3071('0x3c'),'foreignKey':_0x3071('0x1ec')});db[_0x3071('0x101')][_0x3071('0x119')](db['Team'],{'through':_0x3071('0x1c3'),'as':_0x3071('0x145')});module[_0x3071('0x1ed')]={'db':db,'dbH':dbH};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7edb=['fax','clientId','code','accessKey','tenantId','accessToken','accessTokenSecret','authToken','consumerSecret','membername','calleridnum','exten','privateKey','accesskeyid','secretaccesskey','pass','accountSid','localstationid','dsn','secret','registry','isArray','isPlainObject','isString','replace','@@{','path','express','express-winston','util','./errors','./config/logger','auth','./safe-template','safeTemplate','default','use','logger','isEmpty','body','\x20body=%s','format','method','x-forwarded-for','headers','connection','remoteAddress','responseTime','user','name','role','inspect','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s','device','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s\x20(id=%s\x20name=%s)','url','statusCode','agent_id','agent_name','test','/api/users','/api/voice/chanspy','/api/voice/contexts','./api/voiceContext','/api/voice/extensions','./api/voiceExtension','/api/voice/mohs','./api/voiceQueue','/api/voice/recordings','./api/voiceRecording','/api/screen/recordings','./api/screenRecording','/api/voice/mails','./api/voiceMailMessage','/api/voice/calls/reports','./api/voiceCallReport','/api/voice/dials/reports','./api/voiceDialReport','/api/voice/agents/reports','./api/voiceAgentReport','/api/voice/queues/reports','./api/voiceQueueReport','/api/members/reports','./api/memberReport','/api/trunks','./api/trunk','./api/voiceTransferReport','/api/mail/out_servers','./api/mailServerOut','./api/mailAccount','/api/mail/queues','./api/mailQueue','/api/mail/substatuses','/api/mail/interactions','/api/mail/messages','/api/mail/applications','./api/mailApplication','/api/mail/reports/queue','/api/dashboards','./api/dashboard','./api/dashboardItem','./api/faxAccount','/api/fax/applications','./api/faxApplication','/api/fax/interactions','./api/faxInteraction','/api/fax/messages','./api/faxMessage','/api/fax/queues','/api/fax/reports/queue','/api/sms/applications','./api/smsApplication','/api/sms/interactions','/api/sms/messages','./api/smsMessage','./api/smsQueue','/api/openchannel/accounts','./api/openchannelAccount','./api/openchannelApplication','/api/openchannel/interactions','./api/openchannelInteraction','/api/openchannel/messages','./api/openchannelMessage','/api/openchannel/queues','/api/openchannel/reports/queue','./api/openchannelQueueReport','./api/chatApplication','./api/chatInteraction','/api/chat/messages','./api/chatMessage','/api/chat/offline_messages','./api/chatOfflineMessage','./api/chatQueue','./api/chatGroup','/api/chat/proactive_actions','./api/cmCompany','/api/cm/contacts','./api/cmHopper','/api/cm/hopper_black','./api/cmHopperBlack','/api/cm/hopper_final','./api/cmHopperFinal','/api/cm/hopper_history','./api/cmHopperHistory','/api/cm/custom_fields','./api/cmCustomField','/api/actions','/api/automations','./api/automation','/api/canned_answers','./api/cannedAnswer','/api/dispositions','./api/disposition','./api/condition','/api/intervals','./api/interval','./api/pause','/api/cdr','/api/voiceQueuesLog','/api/schedules','./api/schedule','/api/sounds','./api/sound','./api/tag','./api/template','/api/triggers','/api/variables','./api/variable','./api/integration','/api/integrations/reports','./api/integrationReport','/api/analytics/custom_reports','./api/analyticCustomReport','/api/analytics/default_reports','./api/analyticDefaultReport','/api/analytics/metrics','./api/analyticMetric','./api/analyticFieldReport','/api/analytics/tree_reports','./api/analyticTreeReport','./api/intSalesforceAccount','/api/integrations/salesforce/configurations','./api/intSalesforceField','./api/intSugarcrmAccount','/api/integrations/sugarcrm/configurations','./api/intSugarcrmConfiguration','/api/integrations/desk/accounts','/api/integrations/desk/configurations','./api/intDeskConfiguration','./api/intDeskField','./api/intZohoAccount','/api/integrations/zoho/configurations','./api/intZohoConfiguration','/api/integrations/zoho/fields','./api/intZendeskAccount','/api/integrations/zendesk/configurations','/api/integrations/zendesk/fields','/api/integrations/freshdesk/accounts','./api/intFreshdeskAccount','/api/integrations/freshdesk/configurations','./api/intFreshdeskConfiguration','/api/integrations/freshdesk/fields','./api/intFreshdeskField','/api/integrations/vtiger/accounts','./api/intVtigerAccount','/api/integrations/vtiger/configurations','./api/intVtigerConfiguration','/api/integrations/vtiger/fields','./api/intVtigerField','/api/integrations/servicenow/accounts','./api/intServicenowAccount','./api/intServicenowConfiguration','./api/intServicenowField','/api/integrations/dynamics365/accounts','./api/intDynamics365Account','./api/intDynamics365Configuration','/api/integrations/dynamics365/fields','./api/intDynamics365Field','/api/integrations/freshsales/accounts','./api/intFreshsalesAccount','/api/integrations/freshsales/configurations','./api/intFreshsalesConfiguration','/api/integrations/freshsales/fields','/api/networks','./api/network','/api/chat/reports/queue','./api/chatQueueReport','/api/jscripty/answers/reports','./api/jscriptyAnswerReport','/api/jscripty/questions/reports','./api/jscriptyQuestionReport','/api/sms/reports/queue','/api/square/reports','./api/squareReport','/api/square/details/reports','./api/squareReportDetail','./api/jscriptyProject','/api/settings','/api/square/odbc','./api/squareOdbc','./api/squareProject','/api/square/recordings','/api/teams','./api/team','./api/license','/api/campaigns','./api/campaign','/api/migrations','./api/migration','./api/attachment','/api/plugins','./api/plugin','/api/mail/reports/transfer','./api/mailTransferReport','/api/chat/reports/transfer','./api/chatTransferReport','/api/fax/reports/transfer','./api/faxTransferReport','/api/openchannel/reports/transfer','./api/openchannelTransferReport','./api/smsTransferReport','/api/cm/lists','./api/cmList','./api/voicePrefix','./api/userProfile','/api/userProfile/sections','./api/userProfileSection','/api/userProfile/resources','./api/userProfileResource','/api/userNotifications','./api/userNotification','/api/whatsapp/accounts','./api/whatsappAccount','/api/whatsapp/applications','./api/whatsappApplication','/api/whatsapp/interactions','./api/whatsappInteraction','./api/whatsappMessage','/api/whatsapp/reports/queue','./api/whatsappQueueReport','/api/whatsapp/reports/transfer','./api/whatsappQueue','/api/cloudProviders','./api/cloudProvider','/api/realtime','./api/realtime','/api/auth/local','/api/auth/google','/api/jira','./api/jira','/api/rpc','/api/system','./api/system','/api/pm2','./api/pm2','/api/webbar','/apidoc','static','join','root','/www','/demo','/snippet','snippet','/plugins','/server/files/plugins','route','get','sendFile','resolve','appPath','/index.html','username','password','newPassword','apiKey','phone','mobile'];(function(_0x590a38,_0x2bc65c){var _0xf36626=function(_0x551cd1){while(--_0x551cd1){_0x590a38['push'](_0x590a38['shift']());}};_0xf36626(++_0x2bc65c);}(_0x7edb,0x158));var _0xb7ed=function(_0xd8526c,_0x35bde1){_0xd8526c=_0xd8526c-0x0;var _0x122580=_0x7edb[_0xd8526c];return _0x122580;};'use strict';var _=require('lodash');var path=require(_0xb7ed('0x0'));var express=require(_0xb7ed('0x1'));var ewinston=require(_0xb7ed('0x2'));var util=require(_0xb7ed('0x3'));var errors=require(_0xb7ed('0x4'));var config=require('./config/environment');var logger=require(_0xb7ed('0x5'))('api');var authLogger=require('./config/logger')(_0xb7ed('0x6'));var safeTemplate=require(_0xb7ed('0x7'))[_0xb7ed('0x8')];exports[_0xb7ed('0x9')]=function(_0x85fdf0){_0x85fdf0[_0xb7ed('0xa')](ewinston[_0xb7ed('0xb')]({'winstonInstance':logger,'meta':![],'statusLevels':!![],'msg':function(_0x3c991d,_0x3aee5b){var _0x25e52c='%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s';if(!_[_0xb7ed('0xc')](_0x3c991d[_0xb7ed('0xd')])){_0x25e52c+=_0xb7ed('0xe');var _0x6c792e=_0x3c991d[_0xb7ed('0xd')];maskSensitiveData(_0x6c792e);}return safeTemplate(util[_0xb7ed('0xf')](_0x25e52c,_0x3c991d[_0xb7ed('0x10')],_0x3c991d['headers'][_0xb7ed('0x11')]?_0x3c991d[_0xb7ed('0x12')][_0xb7ed('0x11')]:_0x3c991d[_0xb7ed('0x13')][_0xb7ed('0x14')]||_0x3c991d['ip'],_0x3c991d['url'],_0x3aee5b['statusCode'],_0x3aee5b[_0xb7ed('0x15')],_0x3c991d['user']?_0x3c991d[_0xb7ed('0x16')]['id']:null,_0x3c991d[_0xb7ed('0x16')]?_0x3c991d[_0xb7ed('0x16')][_0xb7ed('0x17')]:null,_0x3c991d[_0xb7ed('0x16')]?_0x3c991d[_0xb7ed('0x16')][_0xb7ed('0x18')]:null,_0x6c792e?util[_0xb7ed('0x19')](_0x6c792e,![],null):''));}}));_0x85fdf0[_0xb7ed('0xa')](ewinston[_0xb7ed('0xb')]({'winstonInstance':authLogger,'meta':![],'statusLevels':!![],'msg':function(_0x40ca8a,_0x3e61b8){var _0x569fb1=_0xb7ed('0x1a');if(_0x40ca8a['body']&&_0x40ca8a[_0xb7ed('0xd')][_0xb7ed('0x1b')]&&_0x40ca8a['body']['agent_id']){_0x569fb1=_0xb7ed('0x1c');}return util[_0xb7ed('0xf')](_0x569fb1,_0x40ca8a[_0xb7ed('0x10')],_0x40ca8a['headers'][_0xb7ed('0x11')]?_0x40ca8a[_0xb7ed('0x12')][_0xb7ed('0x11')]:_0x40ca8a[_0xb7ed('0x13')]['remoteAddress']||_0x40ca8a['ip'],_0x40ca8a[_0xb7ed('0x1d')],_0x3e61b8[_0xb7ed('0x1e')],_0x3e61b8[_0xb7ed('0x15')],_0x40ca8a[_0xb7ed('0x16')]?_0x40ca8a[_0xb7ed('0x16')]['id']:null,_0x40ca8a[_0xb7ed('0x16')]?_0x40ca8a[_0xb7ed('0x16')][_0xb7ed('0x17')]:null,_0x40ca8a['user']?_0x40ca8a[_0xb7ed('0x16')][_0xb7ed('0x18')]:null,_0x40ca8a['body']&&_0x40ca8a['body']['device']?_0x40ca8a[_0xb7ed('0xd')]['device']:'other',_0x40ca8a[_0xb7ed('0xd')]&&_0x40ca8a['body'][_0xb7ed('0x1f')]?_0x40ca8a['body'][_0xb7ed('0x1f')]:'',_0x40ca8a[_0xb7ed('0xd')]&&_0x40ca8a[_0xb7ed('0xd')][_0xb7ed('0x20')]?_0x40ca8a[_0xb7ed('0xd')]['agent_name']:'');},'ignoreRoute':function(_0x578ac0){var _0x74eb3c=/\/api\/users\/[0-9]+\/(login|logout)/gi;return!_0x74eb3c[_0xb7ed('0x21')](_0x578ac0[_0xb7ed('0x1d')]);}}));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x22'),require('./api/user'));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x23'),require('./api/voiceChanSpy'));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x24'),require(_0xb7ed('0x25')));_0x85fdf0['use'](_0xb7ed('0x26'),require(_0xb7ed('0x27')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x28'),require('./api/voiceMusicOnHold'));_0x85fdf0[_0xb7ed('0xa')]('/api/voice/queues',require(_0xb7ed('0x29')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x2a'),require(_0xb7ed('0x2b')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x2c'),require(_0xb7ed('0x2d')));_0x85fdf0['use'](_0xb7ed('0x2e'),require('./api/voiceMail'));_0x85fdf0[_0xb7ed('0xa')]('/api/voice/mails/messages',require(_0xb7ed('0x2f')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x30'),require(_0xb7ed('0x31')));_0x85fdf0['use'](_0xb7ed('0x32'),require(_0xb7ed('0x33')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x34'),require(_0xb7ed('0x35')));_0x85fdf0['use'](_0xb7ed('0x36'),require(_0xb7ed('0x37')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x38'),require(_0xb7ed('0x39')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x3a'),require(_0xb7ed('0x3b')));_0x85fdf0[_0xb7ed('0xa')]('/api/voice/transfers/reports',require(_0xb7ed('0x3c')));_0x85fdf0['use'](_0xb7ed('0x3d'),require(_0xb7ed('0x3e')));_0x85fdf0[_0xb7ed('0xa')]('/api/mail/accounts',require(_0xb7ed('0x3f')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x40'),require(_0xb7ed('0x41')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x42'),require('./api/mailSubstatus'));_0x85fdf0['use'](_0xb7ed('0x43'),require('./api/mailInteraction'));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x44'),require('./api/mailMessage'));_0x85fdf0['use'](_0xb7ed('0x45'),require(_0xb7ed('0x46')));_0x85fdf0['use'](_0xb7ed('0x47'),require('./api/mailQueueReport'));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x48'),require(_0xb7ed('0x49')));_0x85fdf0[_0xb7ed('0xa')]('/api/dashboards/items',require(_0xb7ed('0x4a')));_0x85fdf0[_0xb7ed('0xa')]('/api/fax/accounts',require(_0xb7ed('0x4b')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x4c'),require(_0xb7ed('0x4d')));_0x85fdf0['use'](_0xb7ed('0x4e'),require(_0xb7ed('0x4f')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x50'),require(_0xb7ed('0x51')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x52'),require('./api/faxQueue'));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x53'),require('./api/faxQueueReport'));_0x85fdf0[_0xb7ed('0xa')]('/api/sms/accounts',require('./api/smsAccount'));_0x85fdf0['use'](_0xb7ed('0x54'),require(_0xb7ed('0x55')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x56'),require('./api/smsInteraction'));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x57'),require(_0xb7ed('0x58')));_0x85fdf0[_0xb7ed('0xa')]('/api/sms/queues',require(_0xb7ed('0x59')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x5a'),require(_0xb7ed('0x5b')));_0x85fdf0[_0xb7ed('0xa')]('/api/openchannel/applications',require(_0xb7ed('0x5c')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x5d'),require(_0xb7ed('0x5e')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x5f'),require(_0xb7ed('0x60')));_0x85fdf0['use'](_0xb7ed('0x61'),require('./api/openchannelQueue'));_0x85fdf0[_0xb7ed('0xa')]('/api/chat/websites',require('./api/chatWebsite'));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x62'),require(_0xb7ed('0x63')));_0x85fdf0[_0xb7ed('0xa')]('/api/chat/applications',require(_0xb7ed('0x64')));_0x85fdf0['use']('/api/chat/interactions',require(_0xb7ed('0x65')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x66'),require(_0xb7ed('0x67')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x68'),require(_0xb7ed('0x69')));_0x85fdf0[_0xb7ed('0xa')]('/api/chat/queues',require(_0xb7ed('0x6a')));_0x85fdf0[_0xb7ed('0xa')]('/api/chat/groups',require(_0xb7ed('0x6b')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x6c'),require('./api/chatProactiveAction'));_0x85fdf0[_0xb7ed('0xa')]('/api/cm/companies',require(_0xb7ed('0x6d')));_0x85fdf0['use'](_0xb7ed('0x6e'),require('./api/cmContact'));_0x85fdf0[_0xb7ed('0xa')]('/api/cm/hopper',require(_0xb7ed('0x6f')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x70'),require(_0xb7ed('0x71')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x72'),require(_0xb7ed('0x73')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x74'),require(_0xb7ed('0x75')));_0x85fdf0['use'](_0xb7ed('0x76'),require(_0xb7ed('0x77')));_0x85fdf0['use'](_0xb7ed('0x78'),require('./api/action'));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x79'),require(_0xb7ed('0x7a')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x7b'),require(_0xb7ed('0x7c')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x7d'),require(_0xb7ed('0x7e')));_0x85fdf0['use']('/api/conditions',require(_0xb7ed('0x7f')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x80'),require(_0xb7ed('0x81')));_0x85fdf0['use']('/api/pauses',require(_0xb7ed('0x82')));_0x85fdf0['use'](_0xb7ed('0x83'),require('./api/cdr'));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x84'),require('./api/voiceQueuesLog'));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x85'),require(_0xb7ed('0x86')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x87'),require(_0xb7ed('0x88')));_0x85fdf0[_0xb7ed('0xa')]('/api/tags',require(_0xb7ed('0x89')));_0x85fdf0[_0xb7ed('0xa')]('/api/templates',require(_0xb7ed('0x8a')));_0x85fdf0['use'](_0xb7ed('0x8b'),require('./api/trigger'));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x8c'),require(_0xb7ed('0x8d')));_0x85fdf0[_0xb7ed('0xa')]('/api/integrations',require(_0xb7ed('0x8e')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x8f'),require(_0xb7ed('0x90')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x91'),require(_0xb7ed('0x92')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x93'),require(_0xb7ed('0x94')));_0x85fdf0['use']('/api/analytics/extracted_reports',require('./api/analyticExtractedReport'));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x95'),require(_0xb7ed('0x96')));_0x85fdf0[_0xb7ed('0xa')]('/api/analytics/field_reports',require(_0xb7ed('0x97')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x98'),require(_0xb7ed('0x99')));_0x85fdf0[_0xb7ed('0xa')]('/api/integrations/salesforce/accounts',require(_0xb7ed('0x9a')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x9b'),require('./api/intSalesforceConfiguration'));_0x85fdf0['use']('/api/integrations/salesforce/fields',require(_0xb7ed('0x9c')));_0x85fdf0['use']('/api/integrations/sugarcrm/accounts',require(_0xb7ed('0x9d')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x9e'),require(_0xb7ed('0x9f')));_0x85fdf0[_0xb7ed('0xa')]('/api/integrations/sugarcrm/fields',require('./api/intSugarcrmField'));_0x85fdf0['use'](_0xb7ed('0xa0'),require('./api/intDeskAccount'));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0xa1'),require(_0xb7ed('0xa2')));_0x85fdf0[_0xb7ed('0xa')]('/api/integrations/desk/fields',require(_0xb7ed('0xa3')));_0x85fdf0[_0xb7ed('0xa')]('/api/integrations/zoho/accounts',require(_0xb7ed('0xa4')));_0x85fdf0['use'](_0xb7ed('0xa5'),require(_0xb7ed('0xa6')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0xa7'),require('./api/intZohoField'));_0x85fdf0[_0xb7ed('0xa')]('/api/integrations/zendesk/accounts',require(_0xb7ed('0xa8')));_0x85fdf0['use'](_0xb7ed('0xa9'),require('./api/intZendeskConfiguration'));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0xaa'),require('./api/intZendeskField'));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0xab'),require(_0xb7ed('0xac')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0xad'),require(_0xb7ed('0xae')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0xaf'),require(_0xb7ed('0xb0')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0xb1'),require(_0xb7ed('0xb2')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0xb3'),require(_0xb7ed('0xb4')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0xb5'),require(_0xb7ed('0xb6')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0xb7'),require(_0xb7ed('0xb8')));_0x85fdf0[_0xb7ed('0xa')]('/api/integrations/servicenow/configurations',require(_0xb7ed('0xb9')));_0x85fdf0[_0xb7ed('0xa')]('/api/integrations/servicenow/fields',require(_0xb7ed('0xba')));_0x85fdf0['use'](_0xb7ed('0xbb'),require(_0xb7ed('0xbc')));_0x85fdf0[_0xb7ed('0xa')]('/api/integrations/dynamics365/configurations',require(_0xb7ed('0xbd')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0xbe'),require(_0xb7ed('0xbf')));_0x85fdf0['use'](_0xb7ed('0xc0'),require(_0xb7ed('0xc1')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0xc2'),require(_0xb7ed('0xc3')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0xc4'),require('./api/intFreshsalesField'));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0xc5'),require(_0xb7ed('0xc6')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0xc7'),require(_0xb7ed('0xc8')));_0x85fdf0[_0xb7ed('0xa')]('/api/chat/internal/messages',require('./api/chatInternalMessage'));_0x85fdf0['use'](_0xb7ed('0xc9'),require(_0xb7ed('0xca')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0xcb'),require(_0xb7ed('0xcc')));_0x85fdf0[_0xb7ed('0xa')]('/api/jscripty/sessions/reports',require('./api/jscriptySessionReport'));_0x85fdf0['use'](_0xb7ed('0xcd'),require('./api/smsQueueReport'));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0xce'),require(_0xb7ed('0xcf')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0xd0'),require(_0xb7ed('0xd1')));_0x85fdf0[_0xb7ed('0xa')]('/api/jscripty/projects',require(_0xb7ed('0xd2')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0xd3'),require('./api/setting'));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0xd4'),require(_0xb7ed('0xd5')));_0x85fdf0[_0xb7ed('0xa')]('/api/square/projects',require(_0xb7ed('0xd6')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0xd7'),require('./api/squareRecording'));_0x85fdf0['use']('/api/square/messages',require('./api/squareMessage'));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0xd8'),require(_0xb7ed('0xd9')));_0x85fdf0[_0xb7ed('0xa')]('/api/license',require(_0xb7ed('0xda')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0xdb'),require(_0xb7ed('0xdc')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0xdd'),require(_0xb7ed('0xde')));_0x85fdf0[_0xb7ed('0xa')]('/api/attachments',require(_0xb7ed('0xdf')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0xe0'),require(_0xb7ed('0xe1')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0xe2'),require(_0xb7ed('0xe3')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0xe4'),require(_0xb7ed('0xe5')));_0x85fdf0['use'](_0xb7ed('0xe6'),require(_0xb7ed('0xe7')));_0x85fdf0['use'](_0xb7ed('0xe8'),require(_0xb7ed('0xe9')));_0x85fdf0[_0xb7ed('0xa')]('/api/sms/reports/transfer',require(_0xb7ed('0xea')));_0x85fdf0['use'](_0xb7ed('0xeb'),require(_0xb7ed('0xec')));_0x85fdf0[_0xb7ed('0xa')]('/api/voice/prefixes',require(_0xb7ed('0xed')));_0x85fdf0[_0xb7ed('0xa')]('/api/userProfiles',require(_0xb7ed('0xee')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0xef'),require(_0xb7ed('0xf0')));_0x85fdf0['use'](_0xb7ed('0xf1'),require(_0xb7ed('0xf2')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0xf3'),require(_0xb7ed('0xf4')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0xf5'),require(_0xb7ed('0xf6')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0xf7'),require(_0xb7ed('0xf8')));_0x85fdf0['use'](_0xb7ed('0xf9'),require(_0xb7ed('0xfa')));_0x85fdf0[_0xb7ed('0xa')]('/api/whatsapp/messages',require(_0xb7ed('0xfb')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0xfc'),require(_0xb7ed('0xfd')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0xfe'),require('./api/whatsappTransferReport'));_0x85fdf0[_0xb7ed('0xa')]('/api/whatsapp/queues',require(_0xb7ed('0xff')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x100'),require(_0xb7ed('0x101')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x102'),require(_0xb7ed('0x103')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x104'),require('./api/authLocal'));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x105'),require('./api/authGoogle'));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x106'),require(_0xb7ed('0x107')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x108'),require('./api/rpc'));_0x85fdf0[_0xb7ed('0xa')]('/api/version',require('./api/version'));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x109'),require(_0xb7ed('0x10a')));_0x85fdf0['use'](_0xb7ed('0x10b'),require(_0xb7ed('0x10c')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x10d'),require('./api/webbar'));_0x85fdf0['use'](_0xb7ed('0x10e'),express[_0xb7ed('0x10f')](path[_0xb7ed('0x110')](config[_0xb7ed('0x111')],_0xb7ed('0x10e'))));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x112'),express[_0xb7ed('0x10f')](path['join'](config[_0xb7ed('0x111')],_0xb7ed('0x112'))));_0x85fdf0['use'](_0xb7ed('0x113'),express[_0xb7ed('0x10f')](path['join'](config[_0xb7ed('0x111')],_0xb7ed('0x113'))));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x114'),express[_0xb7ed('0x10f')](path[_0xb7ed('0x110')](config[_0xb7ed('0x111')],_0xb7ed('0x115'),'3.0.0')));_0x85fdf0[_0xb7ed('0xa')](_0xb7ed('0x116'),express['static'](path[_0xb7ed('0x110')](config[_0xb7ed('0x111')],_0xb7ed('0x117'))));_0x85fdf0[_0xb7ed('0x118')]('/:url(api|auth|components|app|bower_components|assets)/*')[_0xb7ed('0x119')](errors[0x194]);_0x85fdf0[_0xb7ed('0x118')]('/*')[_0xb7ed('0x119')](function(_0x5b9346,_0x42611f){_0x42611f[_0xb7ed('0x11a')](path[_0xb7ed('0x11b')](_0x85fdf0[_0xb7ed('0x119')](_0xb7ed('0x11c'))+_0xb7ed('0x11d')));});};var sensitiveFields=[_0xb7ed('0x11e'),_0xb7ed('0x11f'),_0xb7ed('0x120'),_0xb7ed('0x121'),'firstName','lastName','street',_0xb7ed('0x122'),_0xb7ed('0x123'),_0xb7ed('0x124'),'email',_0xb7ed('0x125'),'clientSecret','securityToken',_0xb7ed('0x126'),_0xb7ed('0x127'),_0xb7ed('0x128'),'token','channelSecret',_0xb7ed('0x129'),_0xb7ed('0x12a'),_0xb7ed('0x12b'),'consumerKey',_0xb7ed('0x12c'),_0xb7ed('0x12d'),'calleridname',_0xb7ed('0x12e'),_0xb7ed('0x12f'),'vidaooApiKey','clientEmail',_0xb7ed('0x130'),_0xb7ed('0x131'),_0xb7ed('0x132'),'key',_0xb7ed('0x16'),_0xb7ed('0x133'),_0xb7ed('0x134'),_0xb7ed('0x135'),_0xb7ed('0x136'),_0xb7ed('0x137'),_0xb7ed('0x138'),'oldPassword'];function maskSensitiveData(_0x5a0f0d){var _0x1628ca=/(?!^)[\s\S](?!$)/g;if(!_['isPlainObject'](_0x5a0f0d))return;for(var _0x2f1780 in _0x5a0f0d){if(_[_0xb7ed('0x139')](_0x5a0f0d[_0x2f1780])){for(var _0x702603=0x0;_0x702603<_0x5a0f0d[_0x2f1780]['length'];_0x702603++){maskSensitiveData(_0x5a0f0d[_0x2f1780][_0x702603]);}}else if(_[_0xb7ed('0x13a')](_0x5a0f0d[_0x2f1780])){maskSensitiveData(_0x5a0f0d[_0x2f1780]);}else if(_[_0xb7ed('0x13b')](_0x5a0f0d[_0x2f1780])){_0x5a0f0d[_0x2f1780]=_0x5a0f0d[_0x2f1780][_0xb7ed('0x13c')](/{{{/g,_0xb7ed('0x13d'))[_0xb7ed('0x13c')](/}}}/g,'}@@')['replace'](/{{/g,'@{')[_0xb7ed('0x13c')](/}}/g,'}@');if(_['includes'](sensitiveFields,_0x2f1780)){_0x5a0f0d[_0x2f1780]=_0x5a0f0d[_0x2f1780][_0xb7ed('0x13c')](_0x1628ca,'*');}}}}
\ No newline at end of file
+var _0x06f5=['./api/plugin','./api/mailTransferReport','/api/chat/reports/transfer','./api/chatTransferReport','/api/fax/reports/transfer','./api/faxTransferReport','/api/openchannel/reports/transfer','./api/openchannelTransferReport','/api/sms/reports/transfer','./api/smsTransferReport','/api/cm/lists','./api/cmList','/api/voice/prefixes','/api/userProfiles','/api/userProfile/resources','./api/userProfileResource','/api/userNotifications','./api/userNotification','./api/whatsappAccount','./api/whatsappApplication','/api/whatsapp/interactions','./api/whatsappInteraction','./api/whatsappMessage','/api/whatsapp/reports/queue','./api/whatsappQueueReport','/api/whatsapp/reports/transfer','./api/whatsappTransferReport','/api/whatsapp/queues','./api/whatsappQueue','./api/cloudProvider','/api/realtime','/api/auth/local','./api/authLocal','/api/auth/google','./api/authGoogle','/api/jira','./api/jira','/api/rpc','./api/rpc','/api/version','./api/version','/api/system','./api/system','/api/pm2','./api/pm2','/api/webbar','./api/webbar','/apidoc','static','join','root','/www','/demo','/snippet','/plugins','/server/files/plugins','route','/:url(api|auth|components|app|bower_components|assets)/*','get','sendFile','resolve','appPath','/index.html','newPassword','apiKey','firstName','lastName','street','phone','fax','clientId','code','accessKey','accessToken','consumerKey','consumerSecret','membername','calleridname','calleridnum','vidaooApiKey','clientEmail','secretaccesskey','key','pass','accountSid','localstationid','dsn','registry','oldPassword','isPlainObject','isArray','isString','replace','includes','lodash','path','express','express-winston','./errors','./config/environment','./config/logger','api','auth','safeTemplate','default','use','logger','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s','isEmpty','body','\x20body=%s','format','method','headers','x-forwarded-for','connection','url','statusCode','responseTime','user','name','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s','device','agent_id','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s\x20(id=%s\x20name=%s)','role','other','agent_name','test','/api/users','./api/user','./api/voiceChanSpy','/api/voice/contexts','./api/voiceContext','/api/voice/extensions','./api/voiceExtension','./api/voiceMusicOnHold','/api/voice/queues','./api/voiceQueue','/api/voice/recordings','./api/voiceRecording','/api/screen/recordings','./api/screenRecording','/api/voice/mails','./api/voiceMail','/api/voice/mails/messages','./api/voiceMailMessage','/api/voice/calls/reports','./api/voiceCallReport','/api/voice/dials/reports','./api/voiceDialReport','/api/voice/agents/reports','/api/voice/queues/reports','./api/voiceQueueReport','/api/members/reports','./api/memberReport','/api/trunks','./api/trunk','./api/voiceTransferReport','/api/mail/out_servers','./api/mailAccount','./api/mailQueue','/api/mail/substatuses','/api/mail/interactions','/api/mail/messages','./api/mailApplication','./api/mailQueueReport','/api/dashboards','./api/dashboard','/api/dashboards/items','/api/fax/accounts','./api/faxAccount','/api/fax/applications','./api/faxApplication','/api/fax/interactions','./api/faxInteraction','/api/fax/messages','./api/faxMessage','/api/fax/queues','./api/faxQueue','/api/fax/reports/queue','./api/faxQueueReport','/api/sms/accounts','/api/sms/applications','./api/smsApplication','/api/sms/interactions','./api/smsInteraction','/api/sms/messages','./api/smsMessage','./api/smsQueue','/api/openchannel/accounts','./api/openchannelAccount','/api/openchannel/applications','/api/openchannel/interactions','/api/openchannel/messages','./api/openchannelMessage','/api/openchannel/queues','./api/chatWebsite','/api/openchannel/reports/queue','./api/openchannelQueueReport','./api/chatApplication','/api/chat/interactions','./api/chatInteraction','/api/chat/messages','./api/chatMessage','/api/chat/offline_messages','./api/chatQueue','/api/chat/groups','./api/chatGroup','/api/chat/proactive_actions','/api/cm/companies','./api/cmCompany','/api/cm/contacts','./api/cmContact','/api/cm/hopper','./api/cmHopper','./api/cmHopperFinal','./api/cmHopperHistory','/api/cm/custom_fields','./api/cmCustomField','/api/actions','./api/action','/api/automations','./api/automation','/api/canned_answers','./api/cannedAnswer','/api/dispositions','/api/conditions','./api/condition','/api/intervals','./api/interval','/api/cdr','/api/schedules','./api/schedule','./api/sound','/api/tags','./api/tag','/api/templates','./api/template','/api/triggers','./api/trigger','/api/variables','./api/variable','/api/integrations','./api/integration','/api/integrations/reports','./api/integrationReport','/api/analytics/custom_reports','./api/analyticCustomReport','./api/analyticDefaultReport','./api/analyticExtractedReport','./api/analyticMetric','/api/analytics/field_reports','./api/analyticFieldReport','/api/analytics/tree_reports','./api/intSalesforceAccount','/api/integrations/salesforce/fields','./api/intSalesforceField','/api/integrations/sugarcrm/accounts','./api/intSugarcrmAccount','/api/integrations/sugarcrm/configurations','/api/integrations/sugarcrm/fields','./api/intSugarcrmField','/api/integrations/desk/fields','./api/intDeskField','/api/integrations/zoho/accounts','/api/integrations/zoho/fields','./api/intZohoField','./api/intZendeskAccount','/api/integrations/zendesk/configurations','./api/intZendeskConfiguration','/api/integrations/zendesk/fields','./api/intZendeskField','./api/intFreshdeskAccount','./api/intFreshdeskConfiguration','/api/integrations/freshdesk/fields','./api/intFreshdeskField','/api/integrations/vtiger/accounts','./api/intVtigerAccount','/api/integrations/vtiger/configurations','./api/intVtigerConfiguration','./api/intVtigerField','/api/integrations/servicenow/accounts','./api/intServicenowAccount','/api/integrations/servicenow/configurations','./api/intServicenowConfiguration','./api/intServicenowField','/api/integrations/dynamics365/accounts','./api/intDynamics365Account','/api/integrations/dynamics365/configurations','./api/intDynamics365Configuration','/api/integrations/freshsales/accounts','./api/intFreshsalesAccount','./api/intFreshsalesConfiguration','/api/integrations/freshsales/fields','./api/intFreshsalesField','/api/chat/reports/queue','./api/chatQueueReport','/api/chat/internal/messages','/api/jscripty/answers/reports','./api/jscriptyAnswerReport','./api/jscriptyQuestionReport','./api/jscriptySessionReport','/api/sms/reports/queue','./api/smsQueueReport','/api/square/reports','/api/square/details/reports','/api/jscripty/projects','./api/jscriptyProject','/api/square/odbc','./api/squareOdbc','/api/square/projects','./api/squareProject','/api/square/recordings','/api/square/messages','./api/squareMessage','/api/teams','/api/license','./api/license','/api/campaigns','./api/campaign','/api/attachments','./api/attachment'];(function(_0x30099e,_0x1ee4b2){var _0x474f63=function(_0x26f35a){while(--_0x26f35a){_0x30099e['push'](_0x30099e['shift']());}};_0x474f63(++_0x1ee4b2);}(_0x06f5,0x1a1));var _0x506f=function(_0x31cd0c,_0x40d38c){_0x31cd0c=_0x31cd0c-0x0;var _0x20ce43=_0x06f5[_0x31cd0c];return _0x20ce43;};'use strict';var _=require(_0x506f('0x0'));var path=require(_0x506f('0x1'));var express=require(_0x506f('0x2'));var ewinston=require(_0x506f('0x3'));var util=require('util');var errors=require(_0x506f('0x4'));var config=require(_0x506f('0x5'));var logger=require(_0x506f('0x6'))(_0x506f('0x7'));var authLogger=require(_0x506f('0x6'))(_0x506f('0x8'));var safeTemplate=require('./safe-template')[_0x506f('0x9')];exports[_0x506f('0xa')]=function(_0xd42952){_0xd42952[_0x506f('0xb')](ewinston[_0x506f('0xc')]({'winstonInstance':logger,'meta':![],'statusLevels':!![],'msg':function(_0x15494b,_0x49d7d8){var _0x2b2a40=_0x506f('0xd');if(!_[_0x506f('0xe')](_0x15494b[_0x506f('0xf')])){_0x2b2a40+=_0x506f('0x10');var _0x4d59b9=_0x15494b[_0x506f('0xf')];maskSensitiveData(_0x4d59b9);}return safeTemplate(util[_0x506f('0x11')](_0x2b2a40,_0x15494b[_0x506f('0x12')],_0x15494b[_0x506f('0x13')][_0x506f('0x14')]?_0x15494b[_0x506f('0x13')][_0x506f('0x14')]:_0x15494b[_0x506f('0x15')]['remoteAddress']||_0x15494b['ip'],_0x15494b[_0x506f('0x16')],_0x49d7d8[_0x506f('0x17')],_0x49d7d8[_0x506f('0x18')],_0x15494b[_0x506f('0x19')]?_0x15494b[_0x506f('0x19')]['id']:null,_0x15494b[_0x506f('0x19')]?_0x15494b['user'][_0x506f('0x1a')]:null,_0x15494b[_0x506f('0x19')]?_0x15494b[_0x506f('0x19')]['role']:null,_0x4d59b9?util['inspect'](_0x4d59b9,![],null):''));}}));_0xd42952[_0x506f('0xb')](ewinston[_0x506f('0xc')]({'winstonInstance':authLogger,'meta':![],'statusLevels':!![],'msg':function(_0x151af8,_0xd030da){var _0x410459=_0x506f('0x1b');if(_0x151af8[_0x506f('0xf')]&&_0x151af8[_0x506f('0xf')][_0x506f('0x1c')]&&_0x151af8[_0x506f('0xf')][_0x506f('0x1d')]){_0x410459=_0x506f('0x1e');}return util[_0x506f('0x11')](_0x410459,_0x151af8[_0x506f('0x12')],_0x151af8[_0x506f('0x13')][_0x506f('0x14')]?_0x151af8[_0x506f('0x13')][_0x506f('0x14')]:_0x151af8[_0x506f('0x15')]['remoteAddress']||_0x151af8['ip'],_0x151af8[_0x506f('0x16')],_0xd030da[_0x506f('0x17')],_0xd030da[_0x506f('0x18')],_0x151af8[_0x506f('0x19')]?_0x151af8['user']['id']:null,_0x151af8[_0x506f('0x19')]?_0x151af8[_0x506f('0x19')]['name']:null,_0x151af8[_0x506f('0x19')]?_0x151af8[_0x506f('0x19')][_0x506f('0x1f')]:null,_0x151af8[_0x506f('0xf')]&&_0x151af8['body'][_0x506f('0x1c')]?_0x151af8[_0x506f('0xf')][_0x506f('0x1c')]:_0x506f('0x20'),_0x151af8[_0x506f('0xf')]&&_0x151af8['body'][_0x506f('0x1d')]?_0x151af8[_0x506f('0xf')][_0x506f('0x1d')]:'',_0x151af8[_0x506f('0xf')]&&_0x151af8[_0x506f('0xf')][_0x506f('0x21')]?_0x151af8['body'][_0x506f('0x21')]:'');},'ignoreRoute':function(_0x5cf718){var _0x4a0ab3=/\/api\/users\/[0-9]+\/(login|logout)/gi;return!_0x4a0ab3[_0x506f('0x22')](_0x5cf718['url']);}}));_0xd42952[_0x506f('0xb')](_0x506f('0x23'),require(_0x506f('0x24')));_0xd42952[_0x506f('0xb')]('/api/voice/chanspy',require(_0x506f('0x25')));_0xd42952[_0x506f('0xb')](_0x506f('0x26'),require(_0x506f('0x27')));_0xd42952[_0x506f('0xb')](_0x506f('0x28'),require(_0x506f('0x29')));_0xd42952[_0x506f('0xb')]('/api/voice/mohs',require(_0x506f('0x2a')));_0xd42952['use'](_0x506f('0x2b'),require(_0x506f('0x2c')));_0xd42952['use'](_0x506f('0x2d'),require(_0x506f('0x2e')));_0xd42952[_0x506f('0xb')](_0x506f('0x2f'),require(_0x506f('0x30')));_0xd42952['use'](_0x506f('0x31'),require(_0x506f('0x32')));_0xd42952[_0x506f('0xb')](_0x506f('0x33'),require(_0x506f('0x34')));_0xd42952['use'](_0x506f('0x35'),require(_0x506f('0x36')));_0xd42952[_0x506f('0xb')](_0x506f('0x37'),require(_0x506f('0x38')));_0xd42952[_0x506f('0xb')](_0x506f('0x39'),require('./api/voiceAgentReport'));_0xd42952[_0x506f('0xb')](_0x506f('0x3a'),require(_0x506f('0x3b')));_0xd42952['use'](_0x506f('0x3c'),require(_0x506f('0x3d')));_0xd42952[_0x506f('0xb')](_0x506f('0x3e'),require(_0x506f('0x3f')));_0xd42952[_0x506f('0xb')]('/api/voice/transfers/reports',require(_0x506f('0x40')));_0xd42952[_0x506f('0xb')](_0x506f('0x41'),require('./api/mailServerOut'));_0xd42952[_0x506f('0xb')]('/api/mail/accounts',require(_0x506f('0x42')));_0xd42952['use']('/api/mail/queues',require(_0x506f('0x43')));_0xd42952['use'](_0x506f('0x44'),require('./api/mailSubstatus'));_0xd42952[_0x506f('0xb')](_0x506f('0x45'),require('./api/mailInteraction'));_0xd42952['use'](_0x506f('0x46'),require('./api/mailMessage'));_0xd42952[_0x506f('0xb')]('/api/mail/applications',require(_0x506f('0x47')));_0xd42952[_0x506f('0xb')]('/api/mail/reports/queue',require(_0x506f('0x48')));_0xd42952[_0x506f('0xb')](_0x506f('0x49'),require(_0x506f('0x4a')));_0xd42952[_0x506f('0xb')](_0x506f('0x4b'),require('./api/dashboardItem'));_0xd42952[_0x506f('0xb')](_0x506f('0x4c'),require(_0x506f('0x4d')));_0xd42952[_0x506f('0xb')](_0x506f('0x4e'),require(_0x506f('0x4f')));_0xd42952['use'](_0x506f('0x50'),require(_0x506f('0x51')));_0xd42952[_0x506f('0xb')](_0x506f('0x52'),require(_0x506f('0x53')));_0xd42952[_0x506f('0xb')](_0x506f('0x54'),require(_0x506f('0x55')));_0xd42952[_0x506f('0xb')](_0x506f('0x56'),require(_0x506f('0x57')));_0xd42952['use'](_0x506f('0x58'),require('./api/smsAccount'));_0xd42952[_0x506f('0xb')](_0x506f('0x59'),require(_0x506f('0x5a')));_0xd42952['use'](_0x506f('0x5b'),require(_0x506f('0x5c')));_0xd42952[_0x506f('0xb')](_0x506f('0x5d'),require(_0x506f('0x5e')));_0xd42952['use']('/api/sms/queues',require(_0x506f('0x5f')));_0xd42952[_0x506f('0xb')](_0x506f('0x60'),require(_0x506f('0x61')));_0xd42952[_0x506f('0xb')](_0x506f('0x62'),require('./api/openchannelApplication'));_0xd42952[_0x506f('0xb')](_0x506f('0x63'),require('./api/openchannelInteraction'));_0xd42952[_0x506f('0xb')](_0x506f('0x64'),require(_0x506f('0x65')));_0xd42952[_0x506f('0xb')](_0x506f('0x66'),require('./api/openchannelQueue'));_0xd42952[_0x506f('0xb')]('/api/chat/websites',require(_0x506f('0x67')));_0xd42952[_0x506f('0xb')](_0x506f('0x68'),require(_0x506f('0x69')));_0xd42952[_0x506f('0xb')]('/api/chat/applications',require(_0x506f('0x6a')));_0xd42952[_0x506f('0xb')](_0x506f('0x6b'),require(_0x506f('0x6c')));_0xd42952[_0x506f('0xb')](_0x506f('0x6d'),require(_0x506f('0x6e')));_0xd42952[_0x506f('0xb')](_0x506f('0x6f'),require('./api/chatOfflineMessage'));_0xd42952['use']('/api/chat/queues',require(_0x506f('0x70')));_0xd42952[_0x506f('0xb')](_0x506f('0x71'),require(_0x506f('0x72')));_0xd42952[_0x506f('0xb')](_0x506f('0x73'),require('./api/chatProactiveAction'));_0xd42952[_0x506f('0xb')](_0x506f('0x74'),require(_0x506f('0x75')));_0xd42952['use'](_0x506f('0x76'),require(_0x506f('0x77')));_0xd42952[_0x506f('0xb')](_0x506f('0x78'),require(_0x506f('0x79')));_0xd42952[_0x506f('0xb')]('/api/cm/hopper_black',require('./api/cmHopperBlack'));_0xd42952[_0x506f('0xb')]('/api/cm/hopper_final',require(_0x506f('0x7a')));_0xd42952[_0x506f('0xb')]('/api/cm/hopper_history',require(_0x506f('0x7b')));_0xd42952[_0x506f('0xb')](_0x506f('0x7c'),require(_0x506f('0x7d')));_0xd42952['use'](_0x506f('0x7e'),require(_0x506f('0x7f')));_0xd42952['use'](_0x506f('0x80'),require(_0x506f('0x81')));_0xd42952[_0x506f('0xb')](_0x506f('0x82'),require(_0x506f('0x83')));_0xd42952[_0x506f('0xb')](_0x506f('0x84'),require('./api/disposition'));_0xd42952[_0x506f('0xb')](_0x506f('0x85'),require(_0x506f('0x86')));_0xd42952[_0x506f('0xb')](_0x506f('0x87'),require(_0x506f('0x88')));_0xd42952['use']('/api/pauses',require('./api/pause'));_0xd42952[_0x506f('0xb')](_0x506f('0x89'),require('./api/cdr'));_0xd42952[_0x506f('0xb')]('/api/voiceQueuesLog',require('./api/voiceQueuesLog'));_0xd42952[_0x506f('0xb')](_0x506f('0x8a'),require(_0x506f('0x8b')));_0xd42952['use']('/api/sounds',require(_0x506f('0x8c')));_0xd42952[_0x506f('0xb')](_0x506f('0x8d'),require(_0x506f('0x8e')));_0xd42952[_0x506f('0xb')](_0x506f('0x8f'),require(_0x506f('0x90')));_0xd42952[_0x506f('0xb')](_0x506f('0x91'),require(_0x506f('0x92')));_0xd42952[_0x506f('0xb')](_0x506f('0x93'),require(_0x506f('0x94')));_0xd42952[_0x506f('0xb')](_0x506f('0x95'),require(_0x506f('0x96')));_0xd42952[_0x506f('0xb')](_0x506f('0x97'),require(_0x506f('0x98')));_0xd42952[_0x506f('0xb')](_0x506f('0x99'),require(_0x506f('0x9a')));_0xd42952[_0x506f('0xb')]('/api/analytics/default_reports',require(_0x506f('0x9b')));_0xd42952[_0x506f('0xb')]('/api/analytics/extracted_reports',require(_0x506f('0x9c')));_0xd42952[_0x506f('0xb')]('/api/analytics/metrics',require(_0x506f('0x9d')));_0xd42952[_0x506f('0xb')](_0x506f('0x9e'),require(_0x506f('0x9f')));_0xd42952[_0x506f('0xb')](_0x506f('0xa0'),require('./api/analyticTreeReport'));_0xd42952[_0x506f('0xb')]('/api/integrations/salesforce/accounts',require(_0x506f('0xa1')));_0xd42952[_0x506f('0xb')]('/api/integrations/salesforce/configurations',require('./api/intSalesforceConfiguration'));_0xd42952['use'](_0x506f('0xa2'),require(_0x506f('0xa3')));_0xd42952['use'](_0x506f('0xa4'),require(_0x506f('0xa5')));_0xd42952[_0x506f('0xb')](_0x506f('0xa6'),require('./api/intSugarcrmConfiguration'));_0xd42952[_0x506f('0xb')](_0x506f('0xa7'),require(_0x506f('0xa8')));_0xd42952[_0x506f('0xb')]('/api/integrations/desk/accounts',require('./api/intDeskAccount'));_0xd42952[_0x506f('0xb')]('/api/integrations/desk/configurations',require('./api/intDeskConfiguration'));_0xd42952[_0x506f('0xb')](_0x506f('0xa9'),require(_0x506f('0xaa')));_0xd42952['use'](_0x506f('0xab'),require('./api/intZohoAccount'));_0xd42952[_0x506f('0xb')]('/api/integrations/zoho/configurations',require('./api/intZohoConfiguration'));_0xd42952[_0x506f('0xb')](_0x506f('0xac'),require(_0x506f('0xad')));_0xd42952['use']('/api/integrations/zendesk/accounts',require(_0x506f('0xae')));_0xd42952[_0x506f('0xb')](_0x506f('0xaf'),require(_0x506f('0xb0')));_0xd42952['use'](_0x506f('0xb1'),require(_0x506f('0xb2')));_0xd42952[_0x506f('0xb')]('/api/integrations/freshdesk/accounts',require(_0x506f('0xb3')));_0xd42952[_0x506f('0xb')]('/api/integrations/freshdesk/configurations',require(_0x506f('0xb4')));_0xd42952[_0x506f('0xb')](_0x506f('0xb5'),require(_0x506f('0xb6')));_0xd42952[_0x506f('0xb')](_0x506f('0xb7'),require(_0x506f('0xb8')));_0xd42952[_0x506f('0xb')](_0x506f('0xb9'),require(_0x506f('0xba')));_0xd42952[_0x506f('0xb')]('/api/integrations/vtiger/fields',require(_0x506f('0xbb')));_0xd42952[_0x506f('0xb')](_0x506f('0xbc'),require(_0x506f('0xbd')));_0xd42952[_0x506f('0xb')](_0x506f('0xbe'),require(_0x506f('0xbf')));_0xd42952[_0x506f('0xb')]('/api/integrations/servicenow/fields',require(_0x506f('0xc0')));_0xd42952['use'](_0x506f('0xc1'),require(_0x506f('0xc2')));_0xd42952['use'](_0x506f('0xc3'),require(_0x506f('0xc4')));_0xd42952[_0x506f('0xb')]('/api/integrations/dynamics365/fields',require('./api/intDynamics365Field'));_0xd42952[_0x506f('0xb')](_0x506f('0xc5'),require(_0x506f('0xc6')));_0xd42952[_0x506f('0xb')]('/api/integrations/freshsales/configurations',require(_0x506f('0xc7')));_0xd42952[_0x506f('0xb')](_0x506f('0xc8'),require(_0x506f('0xc9')));_0xd42952[_0x506f('0xb')]('/api/networks',require('./api/network'));_0xd42952[_0x506f('0xb')](_0x506f('0xca'),require(_0x506f('0xcb')));_0xd42952[_0x506f('0xb')](_0x506f('0xcc'),require('./api/chatInternalMessage'));_0xd42952['use'](_0x506f('0xcd'),require(_0x506f('0xce')));_0xd42952[_0x506f('0xb')]('/api/jscripty/questions/reports',require(_0x506f('0xcf')));_0xd42952[_0x506f('0xb')]('/api/jscripty/sessions/reports',require(_0x506f('0xd0')));_0xd42952[_0x506f('0xb')](_0x506f('0xd1'),require(_0x506f('0xd2')));_0xd42952[_0x506f('0xb')](_0x506f('0xd3'),require('./api/squareReport'));_0xd42952['use'](_0x506f('0xd4'),require('./api/squareReportDetail'));_0xd42952[_0x506f('0xb')](_0x506f('0xd5'),require(_0x506f('0xd6')));_0xd42952[_0x506f('0xb')]('/api/settings',require('./api/setting'));_0xd42952[_0x506f('0xb')](_0x506f('0xd7'),require(_0x506f('0xd8')));_0xd42952['use'](_0x506f('0xd9'),require(_0x506f('0xda')));_0xd42952[_0x506f('0xb')](_0x506f('0xdb'),require('./api/squareRecording'));_0xd42952['use'](_0x506f('0xdc'),require(_0x506f('0xdd')));_0xd42952[_0x506f('0xb')](_0x506f('0xde'),require('./api/team'));_0xd42952[_0x506f('0xb')](_0x506f('0xdf'),require(_0x506f('0xe0')));_0xd42952['use'](_0x506f('0xe1'),require(_0x506f('0xe2')));_0xd42952['use']('/api/migrations',require('./api/migration'));_0xd42952[_0x506f('0xb')](_0x506f('0xe3'),require(_0x506f('0xe4')));_0xd42952['use']('/api/plugins',require(_0x506f('0xe5')));_0xd42952[_0x506f('0xb')]('/api/mail/reports/transfer',require(_0x506f('0xe6')));_0xd42952[_0x506f('0xb')](_0x506f('0xe7'),require(_0x506f('0xe8')));_0xd42952['use'](_0x506f('0xe9'),require(_0x506f('0xea')));_0xd42952['use'](_0x506f('0xeb'),require(_0x506f('0xec')));_0xd42952[_0x506f('0xb')](_0x506f('0xed'),require(_0x506f('0xee')));_0xd42952['use'](_0x506f('0xef'),require(_0x506f('0xf0')));_0xd42952[_0x506f('0xb')](_0x506f('0xf1'),require('./api/voicePrefix'));_0xd42952[_0x506f('0xb')](_0x506f('0xf2'),require('./api/userProfile'));_0xd42952[_0x506f('0xb')]('/api/userProfile/sections',require('./api/userProfileSection'));_0xd42952[_0x506f('0xb')](_0x506f('0xf3'),require(_0x506f('0xf4')));_0xd42952['use'](_0x506f('0xf5'),require(_0x506f('0xf6')));_0xd42952['use']('/api/whatsapp/accounts',require(_0x506f('0xf7')));_0xd42952[_0x506f('0xb')]('/api/whatsapp/applications',require(_0x506f('0xf8')));_0xd42952[_0x506f('0xb')](_0x506f('0xf9'),require(_0x506f('0xfa')));_0xd42952[_0x506f('0xb')]('/api/whatsapp/messages',require(_0x506f('0xfb')));_0xd42952[_0x506f('0xb')](_0x506f('0xfc'),require(_0x506f('0xfd')));_0xd42952[_0x506f('0xb')](_0x506f('0xfe'),require(_0x506f('0xff')));_0xd42952[_0x506f('0xb')](_0x506f('0x100'),require(_0x506f('0x101')));_0xd42952[_0x506f('0xb')]('/api/cloudProviders',require(_0x506f('0x102')));_0xd42952['use'](_0x506f('0x103'),require('./api/realtime'));_0xd42952[_0x506f('0xb')](_0x506f('0x104'),require(_0x506f('0x105')));_0xd42952['use'](_0x506f('0x106'),require(_0x506f('0x107')));_0xd42952[_0x506f('0xb')](_0x506f('0x108'),require(_0x506f('0x109')));_0xd42952[_0x506f('0xb')](_0x506f('0x10a'),require(_0x506f('0x10b')));_0xd42952[_0x506f('0xb')](_0x506f('0x10c'),require(_0x506f('0x10d')));_0xd42952[_0x506f('0xb')](_0x506f('0x10e'),require(_0x506f('0x10f')));_0xd42952[_0x506f('0xb')](_0x506f('0x110'),require(_0x506f('0x111')));_0xd42952[_0x506f('0xb')](_0x506f('0x112'),require(_0x506f('0x113')));_0xd42952[_0x506f('0xb')](_0x506f('0x114'),express[_0x506f('0x115')](path[_0x506f('0x116')](config[_0x506f('0x117')],_0x506f('0x114'))));_0xd42952[_0x506f('0xb')](_0x506f('0x118'),express[_0x506f('0x115')](path['join'](config[_0x506f('0x117')],_0x506f('0x118'))));_0xd42952['use'](_0x506f('0x119'),express[_0x506f('0x115')](path['join'](config[_0x506f('0x117')],_0x506f('0x119'))));_0xd42952['use'](_0x506f('0x11a'),express[_0x506f('0x115')](path[_0x506f('0x116')](config[_0x506f('0x117')],'snippet','3.0.0')));_0xd42952['use'](_0x506f('0x11b'),express[_0x506f('0x115')](path[_0x506f('0x116')](config[_0x506f('0x117')],_0x506f('0x11c'))));_0xd42952[_0x506f('0x11d')](_0x506f('0x11e'))[_0x506f('0x11f')](errors[0x194]);_0xd42952[_0x506f('0x11d')]('/*')[_0x506f('0x11f')](function(_0x2298a7,_0x343d71){_0x343d71[_0x506f('0x120')](path[_0x506f('0x121')](_0xd42952[_0x506f('0x11f')](_0x506f('0x122'))+_0x506f('0x123')));});};var sensitiveFields=['username','password',_0x506f('0x124'),_0x506f('0x125'),_0x506f('0x126'),_0x506f('0x127'),_0x506f('0x128'),_0x506f('0x129'),'mobile',_0x506f('0x12a'),'email',_0x506f('0x12b'),'clientSecret','securityToken',_0x506f('0x12c'),_0x506f('0x12d'),'tenantId','token','channelSecret',_0x506f('0x12e'),'accessTokenSecret','authToken',_0x506f('0x12f'),_0x506f('0x130'),_0x506f('0x131'),_0x506f('0x132'),_0x506f('0x133'),'exten',_0x506f('0x134'),_0x506f('0x135'),'privateKey','accesskeyid',_0x506f('0x136'),_0x506f('0x137'),_0x506f('0x19'),_0x506f('0x138'),_0x506f('0x139'),_0x506f('0x13a'),_0x506f('0x13b'),'secret',_0x506f('0x13c'),_0x506f('0x13d')];function maskSensitiveData(_0x57cccd){var _0xde8a67=/(?!^)[\s\S](?!$)/g;if(!_[_0x506f('0x13e')](_0x57cccd))return;for(var _0x4ad452 in _0x57cccd){if(_[_0x506f('0x13f')](_0x57cccd[_0x4ad452])){for(var _0xc95067=0x0;_0xc95067<_0x57cccd[_0x4ad452]['length'];_0xc95067++){maskSensitiveData(_0x57cccd[_0x4ad452][_0xc95067]);}}else if(_['isPlainObject'](_0x57cccd[_0x4ad452])){maskSensitiveData(_0x57cccd[_0x4ad452]);}else if(_[_0x506f('0x140')](_0x57cccd[_0x4ad452])){_0x57cccd[_0x4ad452]=_0x57cccd[_0x4ad452][_0x506f('0x141')](/{{{/g,'@@{')[_0x506f('0x141')](/}}}/g,'}@@')[_0x506f('0x141')](/{{/g,'@{')[_0x506f('0x141')](/}}/g,'}@');if(_[_0x506f('0x142')](sensitiveFields,_0x4ad452)){_0x57cccd[_0x4ad452]=_0x57cccd[_0x4ad452]['replace'](_0xde8a67,'*');}}}}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4e03=['port','localhost','log','Express\x20RPC\x20server\x20listening\x20on\x20%s:%d!','../config/triggers','default','RPC\x20listening\x20on\x20','jayson/promise','bluebird','lodash','../config/environment','listen','merge','../api/voiceQueue/voiceQueue.rpc','../api/voiceRecording/voiceRecording.rpc','../api/voiceCallReport/voiceCallReport.rpc','../api/voiceDialReport/voiceDialReport.rpc','../api/voiceAgentReport/voiceAgentReport.rpc','../api/voiceQueueReport/voiceQueueReport.rpc','../api/memberReport/memberReport.rpc','../api/trunk/trunk.rpc','../api/voiceTransferReport/voiceTransferReport.rpc','../api/mailServerIn/mailServerIn.rpc','../api/mailAccount/mailAccount.rpc','../api/mailQueue/mailQueue.rpc','../api/mailMessage/mailMessage.rpc','../api/mailApplication/mailApplication.rpc','../api/faxAccount/faxAccount.rpc','../api/faxApplication/faxApplication.rpc','../api/faxMessage/faxMessage.rpc','../api/faxQueue/faxQueue.rpc','../api/faxQueueReport/faxQueueReport.rpc','../api/smsAccount/smsAccount.rpc','../api/smsMessage/smsMessage.rpc','../api/smsQueue/smsQueue.rpc','../api/openchannelApplication/openchannelApplication.rpc','../api/openchannelInteraction/openchannelInteraction.rpc','../api/openchannelMessage/openchannelMessage.rpc','../api/openchannelQueue/openchannelQueue.rpc','../api/openchannelQueueReport/openchannelQueueReport.rpc','../api/chatInteraction/chatInteraction.rpc','../api/chatMessage/chatMessage.rpc','../api/chatQueue/chatQueue.rpc','../api/cmHopper/cmHopper.rpc','../api/cmHopperBlack/cmHopperBlack.rpc','../api/cmHopperFinal/cmHopperFinal.rpc','../api/cmHopperHistory/cmHopperHistory.rpc','../api/reportAgentPreview/reportAgentPreview.rpc','../api/interval/interval.rpc','../api/pause/pause.rpc','../api/sound/sound.rpc','../api/template/template.rpc','../api/variable/variable.rpc','../api/intSalesforceAccount/intSalesforceAccount.rpc','../api/intSugarcrmAccount/intSugarcrmAccount.rpc','../api/intZendeskAccount/intZendeskAccount.rpc','../api/intFreshdeskAccount/intFreshdeskAccount.rpc','../api/intVtigerAccount/intVtigerAccount.rpc','../api/intServicenowAccount/intServicenowAccount.rpc','../api/intDynamics365Account/intDynamics365Account.rpc','../api/intFreshsalesAccount/intFreshsalesAccount.rpc','../api/smsQueueReport/smsQueueReport.rpc','../api/squareOdbc/squareOdbc.rpc','../api/squareRecording/squareRecording.rpc','../api/squareMessage/squareMessage.rpc','../api/campaign/campaign.rpc','../api/attachment/attachment.rpc','../api/whatsappAccount/whatsappAccount.rpc','../api/whatsappInteraction/whatsappInteraction.rpc','../api/whatsappMessage/whatsappMessage.rpc','../api/whatsappQueueReport/whatsappQueueReport.rpc','server','http','rpc'];(function(_0x19e35c,_0x29cd1e){var _0x3e1fe8=function(_0x17258b){while(--_0x17258b){_0x19e35c['push'](_0x19e35c['shift']());}};_0x3e1fe8(++_0x29cd1e);}(_0x4e03,0x12f));var _0x34e0=function(_0x26f95c,_0x192bcd){_0x26f95c=_0x26f95c-0x0;var _0x1f5fbc=_0x4e03[_0x26f95c];return _0x1f5fbc;};'use strict';var jayson=require(_0x34e0('0x0'));var BPromise=require(_0x34e0('0x1'));var _=require(_0x34e0('0x2'));var config=require(_0x34e0('0x3'));exports[_0x34e0('0x4')]=function(){return new BPromise(function(_0x2c8749,_0x429235){var _0x178596={};_0x178596=_[_0x34e0('0x5')](_0x178596,require('../api/user/user.rpc'));_0x178596=_['merge'](_0x178596,require('../api/voiceExtension/voiceExtension.rpc'));_0x178596=_['merge'](_0x178596,require(_0x34e0('0x6')));_0x178596=_[_0x34e0('0x5')](_0x178596,require(_0x34e0('0x7')));_0x178596=_[_0x34e0('0x5')](_0x178596,require(_0x34e0('0x8')));_0x178596=_[_0x34e0('0x5')](_0x178596,require(_0x34e0('0x9')));_0x178596=_['merge'](_0x178596,require(_0x34e0('0xa')));_0x178596=_[_0x34e0('0x5')](_0x178596,require(_0x34e0('0xb')));_0x178596=_['merge'](_0x178596,require(_0x34e0('0xc')));_0x178596=_[_0x34e0('0x5')](_0x178596,require(_0x34e0('0xd')));_0x178596=_['merge'](_0x178596,require(_0x34e0('0xe')));_0x178596=_[_0x34e0('0x5')](_0x178596,require('../api/userVoiceQueueRt/userVoiceQueueRt.rpc'));_0x178596=_[_0x34e0('0x5')](_0x178596,require(_0x34e0('0xf')));_0x178596=_[_0x34e0('0x5')](_0x178596,require(_0x34e0('0x10')));_0x178596=_[_0x34e0('0x5')](_0x178596,require(_0x34e0('0x11')));_0x178596=_[_0x34e0('0x5')](_0x178596,require('../api/mailInteraction/mailInteraction.rpc'));_0x178596=_['merge'](_0x178596,require(_0x34e0('0x12')));_0x178596=_['merge'](_0x178596,require(_0x34e0('0x13')));_0x178596=_[_0x34e0('0x5')](_0x178596,require('../api/mailQueueReport/mailQueueReport.rpc'));_0x178596=_[_0x34e0('0x5')](_0x178596,require(_0x34e0('0x14')));_0x178596=_[_0x34e0('0x5')](_0x178596,require(_0x34e0('0x15')));_0x178596=_[_0x34e0('0x5')](_0x178596,require('../api/faxInteraction/faxInteraction.rpc'));_0x178596=_[_0x34e0('0x5')](_0x178596,require(_0x34e0('0x16')));_0x178596=_[_0x34e0('0x5')](_0x178596,require(_0x34e0('0x17')));_0x178596=_['merge'](_0x178596,require(_0x34e0('0x18')));_0x178596=_[_0x34e0('0x5')](_0x178596,require(_0x34e0('0x19')));_0x178596=_['merge'](_0x178596,require('../api/smsInteraction/smsInteraction.rpc'));_0x178596=_[_0x34e0('0x5')](_0x178596,require(_0x34e0('0x1a')));_0x178596=_[_0x34e0('0x5')](_0x178596,require(_0x34e0('0x1b')));_0x178596=_['merge'](_0x178596,require(_0x34e0('0x1c')));_0x178596=_[_0x34e0('0x5')](_0x178596,require(_0x34e0('0x1d')));_0x178596=_[_0x34e0('0x5')](_0x178596,require(_0x34e0('0x1e')));_0x178596=_['merge'](_0x178596,require(_0x34e0('0x1f')));_0x178596=_[_0x34e0('0x5')](_0x178596,require(_0x34e0('0x20')));_0x178596=_[_0x34e0('0x5')](_0x178596,require(_0x34e0('0x21')));_0x178596=_[_0x34e0('0x5')](_0x178596,require(_0x34e0('0x22')));_0x178596=_[_0x34e0('0x5')](_0x178596,require(_0x34e0('0x23')));_0x178596=_[_0x34e0('0x5')](_0x178596,require('../api/cmContact/cmContact.rpc'));_0x178596=_['merge'](_0x178596,require(_0x34e0('0x24')));_0x178596=_[_0x34e0('0x5')](_0x178596,require(_0x34e0('0x25')));_0x178596=_['merge'](_0x178596,require(_0x34e0('0x26')));_0x178596=_[_0x34e0('0x5')](_0x178596,require(_0x34e0('0x27')));_0x178596=_[_0x34e0('0x5')](_0x178596,require(_0x34e0('0x28')));_0x178596=_['merge'](_0x178596,require(_0x34e0('0x29')));_0x178596=_[_0x34e0('0x5')](_0x178596,require(_0x34e0('0x2a')));_0x178596=_[_0x34e0('0x5')](_0x178596,require(_0x34e0('0x2b')));_0x178596=_[_0x34e0('0x5')](_0x178596,require(_0x34e0('0x2c')));_0x178596=_[_0x34e0('0x5')](_0x178596,require('../api/trigger/trigger.rpc'));_0x178596=_['merge'](_0x178596,require(_0x34e0('0x2d')));_0x178596=_[_0x34e0('0x5')](_0x178596,require(_0x34e0('0x2e')));_0x178596=_['merge'](_0x178596,require(_0x34e0('0x2f')));_0x178596=_[_0x34e0('0x5')](_0x178596,require('../api/intDeskAccount/intDeskAccount.rpc'));_0x178596=_[_0x34e0('0x5')](_0x178596,require('../api/intZohoAccount/intZohoAccount.rpc'));_0x178596=_[_0x34e0('0x5')](_0x178596,require(_0x34e0('0x30')));_0x178596=_['merge'](_0x178596,require(_0x34e0('0x31')));_0x178596=_[_0x34e0('0x5')](_0x178596,require(_0x34e0('0x32')));_0x178596=_[_0x34e0('0x5')](_0x178596,require(_0x34e0('0x33')));_0x178596=_[_0x34e0('0x5')](_0x178596,require(_0x34e0('0x34')));_0x178596=_['merge'](_0x178596,require(_0x34e0('0x35')));_0x178596=_[_0x34e0('0x5')](_0x178596,require('../api/chatQueueReport/chatQueueReport.rpc'));_0x178596=_[_0x34e0('0x5')](_0x178596,require(_0x34e0('0x36')));_0x178596=_[_0x34e0('0x5')](_0x178596,require('../api/squareReport/squareReport.rpc'));_0x178596=_[_0x34e0('0x5')](_0x178596,require('../api/squareReportDetail/squareReportDetail.rpc'));_0x178596=_[_0x34e0('0x5')](_0x178596,require('../api/setting/setting.rpc'));_0x178596=_[_0x34e0('0x5')](_0x178596,require(_0x34e0('0x37')));_0x178596=_[_0x34e0('0x5')](_0x178596,require('../api/squareProject/squareProject.rpc'));_0x178596=_[_0x34e0('0x5')](_0x178596,require(_0x34e0('0x38')));_0x178596=_[_0x34e0('0x5')](_0x178596,require(_0x34e0('0x39')));_0x178596=_[_0x34e0('0x5')](_0x178596,require(_0x34e0('0x3a')));_0x178596=_['merge'](_0x178596,require(_0x34e0('0x3b')));_0x178596=_[_0x34e0('0x5')](_0x178596,require('../api/plugin/plugin.rpc'));_0x178596=_[_0x34e0('0x5')](_0x178596,require(_0x34e0('0x3c')));_0x178596=_[_0x34e0('0x5')](_0x178596,require(_0x34e0('0x3d')));_0x178596=_[_0x34e0('0x5')](_0x178596,require(_0x34e0('0x3e')));_0x178596=_['merge'](_0x178596,require(_0x34e0('0x3f')));_0x178596=_[_0x34e0('0x5')](_0x178596,require('../api/whatsappQueue/whatsappQueue.rpc'));var _0x3f204d=jayson[_0x34e0('0x40')](_0x178596)[_0x34e0('0x41')]();var _0x824c06=config[_0x34e0('0x42')][_0x34e0('0x43')]||config[_0x34e0('0x43')]+0x1;var _0x28b948=config[_0x34e0('0x42')]['ip']||_0x34e0('0x44');_0x3f204d['on']('error',function(_0x4c581){return _0x429235(_0x4c581);});_0x3f204d[_0x34e0('0x4')](_0x824c06,_0x28b948,function(){console[_0x34e0('0x45')](_0x34e0('0x46'),_0x28b948,_0x824c06);require(_0x34e0('0x47'))[_0x34e0('0x48')]();return _0x2c8749(_0x34e0('0x49')+_0x28b948+':'+_0x824c06);});});};
\ No newline at end of file
+var _0xc9ad=['../api/intFreshsalesAccount/intFreshsalesAccount.rpc','../api/chatQueueReport/chatQueueReport.rpc','../api/smsQueueReport/smsQueueReport.rpc','../api/squareReportDetail/squareReportDetail.rpc','../api/setting/setting.rpc','../api/squareOdbc/squareOdbc.rpc','../api/squareProject/squareProject.rpc','../api/squareRecording/squareRecording.rpc','../api/squareMessage/squareMessage.rpc','../api/campaign/campaign.rpc','../api/attachment/attachment.rpc','../api/plugin/plugin.rpc','../api/whatsappAccount/whatsappAccount.rpc','../api/whatsappInteraction/whatsappInteraction.rpc','../api/whatsappQueueReport/whatsappQueueReport.rpc','../api/whatsappQueue/whatsappQueue.rpc','server','http','rpc','port','localhost','error','log','Express\x20RPC\x20server\x20listening\x20on\x20%s:%d!','../config/triggers','RPC\x20listening\x20on\x20','jayson/promise','../config/environment','listen','merge','../api/user/user.rpc','../api/voiceQueue/voiceQueue.rpc','../api/voiceRecording/voiceRecording.rpc','../api/voiceDialReport/voiceDialReport.rpc','../api/voiceQueueReport/voiceQueueReport.rpc','../api/voiceTransferReport/voiceTransferReport.rpc','../api/mailServerIn/mailServerIn.rpc','../api/mailAccount/mailAccount.rpc','../api/mailQueue/mailQueue.rpc','../api/mailInteraction/mailInteraction.rpc','../api/mailQueueReport/mailQueueReport.rpc','../api/faxAccount/faxAccount.rpc','../api/faxMessage/faxMessage.rpc','../api/faxQueueReport/faxQueueReport.rpc','../api/smsAccount/smsAccount.rpc','../api/smsInteraction/smsInteraction.rpc','../api/smsMessage/smsMessage.rpc','../api/smsQueue/smsQueue.rpc','../api/openchannelApplication/openchannelApplication.rpc','../api/openchannelQueue/openchannelQueue.rpc','../api/openchannelQueueReport/openchannelQueueReport.rpc','../api/chatInteraction/chatInteraction.rpc','../api/chatMessage/chatMessage.rpc','../api/chatQueue/chatQueue.rpc','../api/cmContact/cmContact.rpc','../api/cmHopper/cmHopper.rpc','../api/reportAgentPreview/reportAgentPreview.rpc','../api/interval/interval.rpc','../api/sound/sound.rpc','../api/template/template.rpc','../api/trigger/trigger.rpc','../api/variable/variable.rpc','../api/intSalesforceAccount/intSalesforceAccount.rpc','../api/intFreshdeskAccount/intFreshdeskAccount.rpc','../api/intVtigerAccount/intVtigerAccount.rpc','../api/intServicenowAccount/intServicenowAccount.rpc'];(function(_0x2a5541,_0x1324c3){var _0x54fd9e=function(_0x5f0142){while(--_0x5f0142){_0x2a5541['push'](_0x2a5541['shift']());}};_0x54fd9e(++_0x1324c3);}(_0xc9ad,0x1a6));var _0xdc9a=function(_0x4cefd1,_0x8b388a){_0x4cefd1=_0x4cefd1-0x0;var _0xb03211=_0xc9ad[_0x4cefd1];return _0xb03211;};'use strict';var jayson=require(_0xdc9a('0x0'));var BPromise=require('bluebird');var _=require('lodash');var config=require(_0xdc9a('0x1'));exports[_0xdc9a('0x2')]=function(){return new BPromise(function(_0x258b44,_0x2aa3af){var _0x313654={};_0x313654=_[_0xdc9a('0x3')](_0x313654,require(_0xdc9a('0x4')));_0x313654=_[_0xdc9a('0x3')](_0x313654,require('../api/voiceExtension/voiceExtension.rpc'));_0x313654=_[_0xdc9a('0x3')](_0x313654,require(_0xdc9a('0x5')));_0x313654=_[_0xdc9a('0x3')](_0x313654,require(_0xdc9a('0x6')));_0x313654=_[_0xdc9a('0x3')](_0x313654,require('../api/voiceCallReport/voiceCallReport.rpc'));_0x313654=_['merge'](_0x313654,require(_0xdc9a('0x7')));_0x313654=_[_0xdc9a('0x3')](_0x313654,require('../api/voiceAgentReport/voiceAgentReport.rpc'));_0x313654=_[_0xdc9a('0x3')](_0x313654,require(_0xdc9a('0x8')));_0x313654=_[_0xdc9a('0x3')](_0x313654,require('../api/memberReport/memberReport.rpc'));_0x313654=_[_0xdc9a('0x3')](_0x313654,require('../api/trunk/trunk.rpc'));_0x313654=_[_0xdc9a('0x3')](_0x313654,require(_0xdc9a('0x9')));_0x313654=_[_0xdc9a('0x3')](_0x313654,require('../api/userVoiceQueueRt/userVoiceQueueRt.rpc'));_0x313654=_[_0xdc9a('0x3')](_0x313654,require(_0xdc9a('0xa')));_0x313654=_[_0xdc9a('0x3')](_0x313654,require(_0xdc9a('0xb')));_0x313654=_[_0xdc9a('0x3')](_0x313654,require(_0xdc9a('0xc')));_0x313654=_[_0xdc9a('0x3')](_0x313654,require(_0xdc9a('0xd')));_0x313654=_[_0xdc9a('0x3')](_0x313654,require('../api/mailMessage/mailMessage.rpc'));_0x313654=_['merge'](_0x313654,require('../api/mailApplication/mailApplication.rpc'));_0x313654=_['merge'](_0x313654,require(_0xdc9a('0xe')));_0x313654=_['merge'](_0x313654,require(_0xdc9a('0xf')));_0x313654=_['merge'](_0x313654,require('../api/faxApplication/faxApplication.rpc'));_0x313654=_['merge'](_0x313654,require('../api/faxInteraction/faxInteraction.rpc'));_0x313654=_[_0xdc9a('0x3')](_0x313654,require(_0xdc9a('0x10')));_0x313654=_[_0xdc9a('0x3')](_0x313654,require('../api/faxQueue/faxQueue.rpc'));_0x313654=_['merge'](_0x313654,require(_0xdc9a('0x11')));_0x313654=_[_0xdc9a('0x3')](_0x313654,require(_0xdc9a('0x12')));_0x313654=_[_0xdc9a('0x3')](_0x313654,require(_0xdc9a('0x13')));_0x313654=_[_0xdc9a('0x3')](_0x313654,require(_0xdc9a('0x14')));_0x313654=_[_0xdc9a('0x3')](_0x313654,require(_0xdc9a('0x15')));_0x313654=_[_0xdc9a('0x3')](_0x313654,require(_0xdc9a('0x16')));_0x313654=_[_0xdc9a('0x3')](_0x313654,require('../api/openchannelInteraction/openchannelInteraction.rpc'));_0x313654=_['merge'](_0x313654,require('../api/openchannelMessage/openchannelMessage.rpc'));_0x313654=_[_0xdc9a('0x3')](_0x313654,require(_0xdc9a('0x17')));_0x313654=_['merge'](_0x313654,require(_0xdc9a('0x18')));_0x313654=_[_0xdc9a('0x3')](_0x313654,require(_0xdc9a('0x19')));_0x313654=_[_0xdc9a('0x3')](_0x313654,require(_0xdc9a('0x1a')));_0x313654=_[_0xdc9a('0x3')](_0x313654,require(_0xdc9a('0x1b')));_0x313654=_['merge'](_0x313654,require(_0xdc9a('0x1c')));_0x313654=_['merge'](_0x313654,require(_0xdc9a('0x1d')));_0x313654=_[_0xdc9a('0x3')](_0x313654,require('../api/cmHopperBlack/cmHopperBlack.rpc'));_0x313654=_[_0xdc9a('0x3')](_0x313654,require('../api/cmHopperFinal/cmHopperFinal.rpc'));_0x313654=_[_0xdc9a('0x3')](_0x313654,require('../api/cmHopperHistory/cmHopperHistory.rpc'));_0x313654=_[_0xdc9a('0x3')](_0x313654,require(_0xdc9a('0x1e')));_0x313654=_[_0xdc9a('0x3')](_0x313654,require(_0xdc9a('0x1f')));_0x313654=_[_0xdc9a('0x3')](_0x313654,require('../api/pause/pause.rpc'));_0x313654=_[_0xdc9a('0x3')](_0x313654,require(_0xdc9a('0x20')));_0x313654=_[_0xdc9a('0x3')](_0x313654,require(_0xdc9a('0x21')));_0x313654=_[_0xdc9a('0x3')](_0x313654,require(_0xdc9a('0x22')));_0x313654=_[_0xdc9a('0x3')](_0x313654,require(_0xdc9a('0x23')));_0x313654=_['merge'](_0x313654,require(_0xdc9a('0x24')));_0x313654=_[_0xdc9a('0x3')](_0x313654,require('../api/intSugarcrmAccount/intSugarcrmAccount.rpc'));_0x313654=_[_0xdc9a('0x3')](_0x313654,require('../api/intDeskAccount/intDeskAccount.rpc'));_0x313654=_[_0xdc9a('0x3')](_0x313654,require('../api/intZohoAccount/intZohoAccount.rpc'));_0x313654=_['merge'](_0x313654,require('../api/intZendeskAccount/intZendeskAccount.rpc'));_0x313654=_[_0xdc9a('0x3')](_0x313654,require(_0xdc9a('0x25')));_0x313654=_['merge'](_0x313654,require(_0xdc9a('0x26')));_0x313654=_[_0xdc9a('0x3')](_0x313654,require(_0xdc9a('0x27')));_0x313654=_[_0xdc9a('0x3')](_0x313654,require('../api/intDynamics365Account/intDynamics365Account.rpc'));_0x313654=_[_0xdc9a('0x3')](_0x313654,require(_0xdc9a('0x28')));_0x313654=_[_0xdc9a('0x3')](_0x313654,require(_0xdc9a('0x29')));_0x313654=_[_0xdc9a('0x3')](_0x313654,require(_0xdc9a('0x2a')));_0x313654=_['merge'](_0x313654,require('../api/squareReport/squareReport.rpc'));_0x313654=_[_0xdc9a('0x3')](_0x313654,require(_0xdc9a('0x2b')));_0x313654=_[_0xdc9a('0x3')](_0x313654,require(_0xdc9a('0x2c')));_0x313654=_[_0xdc9a('0x3')](_0x313654,require(_0xdc9a('0x2d')));_0x313654=_[_0xdc9a('0x3')](_0x313654,require(_0xdc9a('0x2e')));_0x313654=_[_0xdc9a('0x3')](_0x313654,require(_0xdc9a('0x2f')));_0x313654=_[_0xdc9a('0x3')](_0x313654,require(_0xdc9a('0x30')));_0x313654=_[_0xdc9a('0x3')](_0x313654,require(_0xdc9a('0x31')));_0x313654=_['merge'](_0x313654,require(_0xdc9a('0x32')));_0x313654=_[_0xdc9a('0x3')](_0x313654,require(_0xdc9a('0x33')));_0x313654=_[_0xdc9a('0x3')](_0x313654,require(_0xdc9a('0x34')));_0x313654=_[_0xdc9a('0x3')](_0x313654,require(_0xdc9a('0x35')));_0x313654=_[_0xdc9a('0x3')](_0x313654,require('../api/whatsappMessage/whatsappMessage.rpc'));_0x313654=_[_0xdc9a('0x3')](_0x313654,require(_0xdc9a('0x36')));_0x313654=_[_0xdc9a('0x3')](_0x313654,require(_0xdc9a('0x37')));var _0x120483=jayson[_0xdc9a('0x38')](_0x313654)[_0xdc9a('0x39')]();var _0x4ba9a2=config[_0xdc9a('0x3a')][_0xdc9a('0x3b')]||config['port']+0x1;var _0x1a2e3f=config[_0xdc9a('0x3a')]['ip']||_0xdc9a('0x3c');_0x120483['on'](_0xdc9a('0x3d'),function(_0x18b804){return _0x2aa3af(_0x18b804);});_0x120483['listen'](_0x4ba9a2,_0x1a2e3f,function(){console[_0xdc9a('0x3e')](_0xdc9a('0x3f'),_0x1a2e3f,_0x4ba9a2);require(_0xdc9a('0x40'))['default']();return _0x258b44(_0xdc9a('0x41')+_0x1a2e3f+':'+_0x4ba9a2);});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4fc2=['reduce','exports','safeTemplate','lodash','{\x20{\x20','\x20}\x20}','string','replace','map','keys'];(function(_0x35b2b0,_0x486454){var _0x49005e=function(_0xca01a){while(--_0xca01a){_0x35b2b0['push'](_0x35b2b0['shift']());}};_0x49005e(++_0x486454);}(_0x4fc2,0x111));var _0x24fc=function(_0x80544e,_0x37a3f3){_0x80544e=_0x80544e-0x0;var _0x4f9b90=_0x4fc2[_0x80544e];return _0x4f9b90;};var _=require(_0x24fc('0x0'));var mustacheLikeBracketsRx=/(\{|\}){2}/gm;function bracketsReplacer(_0x2b05a5){return _0x2b05a5==='{{'?_0x24fc('0x1'):_0x24fc('0x2');}function safeTemplate(_0x5aaa74){var _0x365c56=_0x5aaa74;if(typeof _0x5aaa74===_0x24fc('0x3')){_0x365c56=_0x5aaa74[_0x24fc('0x4')](mustacheLikeBracketsRx,bracketsReplacer);}else if(Array['isArray'](_0x5aaa74)){_0x365c56=_0x5aaa74[_0x24fc('0x5')](function(_0x3772eb){return safeTemplate(_0x3772eb);});}else if(_['isPlainObject'](_0x5aaa74)){_0x365c56=Object[_0x24fc('0x6')](_0x5aaa74)[_0x24fc('0x7')](function(_0x4889f4,_0x115851){_0x4889f4[_0x115851]=safeTemplate(_0x5aaa74[_0x115851]);return _0x4889f4;},{});}return _0x365c56;}module[_0x24fc('0x8')][_0x24fc('0x9')]=safeTemplate;
\ No newline at end of file
+var _0xdd4f=['isArray','map','isPlainObject','keys','reduce','safeTemplate','lodash','replace'];(function(_0x501510,_0x61caa9){var _0x1e6ee5=function(_0x32845b){while(--_0x32845b){_0x501510['push'](_0x501510['shift']());}};_0x1e6ee5(++_0x61caa9);}(_0xdd4f,0x1ce));var _0xfdd4=function(_0x300b0d,_0x35a69e){_0x300b0d=_0x300b0d-0x0;var _0x40d43c=_0xdd4f[_0x300b0d];return _0x40d43c;};var _=require(_0xfdd4('0x0'));var mustacheLikeBracketsRx=/(\{|\}){2}/gm;function bracketsReplacer(_0x51d240){return _0x51d240==='{{'?'{\x20{\x20':'\x20}\x20}';}function safeTemplate(_0x291ae7){var _0x19cda7=_0x291ae7;if(typeof _0x291ae7==='string'){_0x19cda7=_0x291ae7[_0xfdd4('0x1')](mustacheLikeBracketsRx,bracketsReplacer);}else if(Array[_0xfdd4('0x2')](_0x291ae7)){_0x19cda7=_0x291ae7[_0xfdd4('0x3')](function(_0x554e44){return safeTemplate(_0x554e44);});}else if(_[_0xfdd4('0x4')](_0x291ae7)){_0x19cda7=Object[_0xfdd4('0x5')](_0x291ae7)[_0xfdd4('0x6')](function(_0x307ac6,_0x3c72d4){_0x307ac6[_0x3c72d4]=safeTemplate(_0x291ae7[_0x3c72d4]);return _0x307ac6;},{});}return _0x19cda7;}module['exports'][_0xfdd4('0x7')]=safeTemplate;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xda4d=['emit','hangup','substring','search','520\x20End\x20of\x20proper','function','no\x20code','result=','indexOf','substr','startsWith','split','length','error','E_AGI_SOCKET_ERROR','code','close','E_AGI_SOCKET_CLOSE','timeout','E_AGI_SOCKET_TIMEOUT','destroy','pipe','write','sendRequest','command','prototype','answer','ANSWER','getData','format','GET\x20DATA\x20\x22%s\x22\x20%s\x20%s','noop','NO\x20MESSAGE','VERBOSE\x20\x22%s\x22','EXEC\x20%s\x20%s','join','SET\x20CONTEXT\x20%s','setExtension','SET\x20EXTENSION\x20%s','SET\x20PRIORITY\x20%s','setVariable','isBoolean','isNumber','SET\x20VARIABLE\x20%s\x20\x22%s\x22','toString','replace','sayNumber','SAY\x20NUMBER\x20%s\x20%s','sayDigits','SAY\x20DIGITS\x20%s\x20%s','sayPhonetic','SAY\x20PHONETIC\x20\x22%s\x22\x20%s','extension','setContext','setPriority','GOTO\x20%s\x20%s\x20%s','GET\x20VARIABLE\x20\x22%s\x22','recordFile','wav','BEEP','RECORD\x20FILE\x20\x22%s\x22\x20\x22%s\x22\x20\x22%s\x22\x20%s\x20%s\x20%s','streamFile','STREAM\x20FILE\x20\x22%s\x22\x20\x22%s\x22','exec','AGI','WAIT','ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s','label','exports','util','./error','call','setEncoding','utf8','setTimeout','headers','line'];(function(_0x17947f,_0x2b0bbc){var _0x5c2669=function(_0xcaf822){while(--_0xcaf822){_0x17947f['push'](_0x17947f['shift']());}};_0x5c2669(++_0x2b0bbc);}(_0xda4d,0x179));var _0xdda4=function(_0x618414,_0x1a7a60){_0x618414=_0x618414-0x0;var _0x21c19a=_0xda4d[_0x618414];return _0x21c19a;};'use strict';var util=require(_0xdda4('0x0'));var _=require('lodash');var EventEmitter=require('events')['EventEmitter'];var AGIReply=require('./reply');var AGIError=require(_0xdda4('0x1'));function AGIChannel(_0x3c91e){var _0x167c92=this,_0x3f1189=new AGIReply(),_0x2d20a8=![],_0x10ae8b={};EventEmitter[_0xdda4('0x2')](_0x167c92);_0x3c91e[_0xdda4('0x3')](_0xdda4('0x4'));_0x3c91e[_0xdda4('0x5')](0x8*0x3c*0x3c*0x3e8);_0x3f1189[_0xdda4('0x3')](_0xdda4('0x4'));_0x3f1189['on'](_0xdda4('0x6'),function(_0x23912b){for(var _0x29103c in _0x23912b){_0x167c92[_0x29103c]=_0x23912b[_0x29103c];}_0x167c92['emit']('ready');});_0x3f1189['on'](_0xdda4('0x7'),function(_0x9c0532){if(_0x9c0532['toLowerCase']()=='hangup'){_0x167c92[_0xdda4('0x8')](_0xdda4('0x9'));return;}if(_0x9c0532[_0xdda4('0xa')](0x0,0xb)=='520-Invalid'){_0x2d20a8=!![];}if(_0x2d20a8){_0x10ae8b['rx']+=_0x9c0532+'\x0a';if(_0x9c0532[_0xdda4('0xb')](_0xdda4('0xc'))!=-0x1){_0x2d20a8=![];}}else{_0x10ae8b['rx']=_0x9c0532;}if(_0x2d20a8){return;}if(typeof _0x10ae8b['cb']==_0xdda4('0xd')){var _0x53e8ff=_0x10ae8b['rx'][_0xdda4('0xa')](0x0,0x3),_0x31bc17=null,_0x10079e=null;_0x53e8ff=parseInt(_0x53e8ff);if(isNaN(_0x53e8ff)){_0x10ae8b['cb'](null,{'code':0x1f4,'result':-0x1,'extra':_0xdda4('0xe')});return;}if(_0x53e8ff!=0xc8){_0x10ae8b['cb'](null,{'code':_0x53e8ff,'result':-0x1,'extra':'KO'});return;}_0x31bc17=_0x10ae8b['rx']['substring'](0x4)['replace'](_0xdda4('0xf'),'');if(_0x31bc17[_0xdda4('0x10')]('\x20')!=-0x1){_0x31bc17=_0x31bc17[_0xdda4('0x11')](0x0,_0x31bc17['indexOf']('\x20'));}if(_[_0xdda4('0x12')](_0x31bc17,'-1')){_0x31bc17=parseInt(_0x31bc17);}_0x10079e=_0x10ae8b['rx'][_0xdda4('0x13')]('\x20');if(_0x10079e[_0xdda4('0x14')]==0x3){_0x10079e=_0x10079e[0x2]['substring'](0x1,_0x10079e[0x2][_0xdda4('0x14')]-0x1);}else if(_0x10079e[_0xdda4('0x14')]>0x3){var _0x29b115=/\((.+)\)/;var _0x10da64=_0x10ae8b['rx']['match'](_0x29b115);if(_0x10da64){_0x10079e=_0x10da64[0x1];}else{_0x10079e=null;}}else{_0x10079e=null;}_0x10ae8b['cb'](null,{'code':_0x53e8ff,'result':_0x31bc17,'extra':_0x10079e});}});_0x3c91e['on']('error',function(_0x2e49ea){_0x167c92[_0xdda4('0x8')](_0xdda4('0x15'),new AGIError(_0xdda4('0x16'),_0x2e49ea[_0xdda4('0x17')]));});_0x3c91e['on'](_0xdda4('0x18'),function(){_0x167c92[_0xdda4('0x8')](_0xdda4('0x18'),new AGIError(_0xdda4('0x19')));});_0x3c91e['on']('timeout',function(){_0x167c92[_0xdda4('0x8')](_0xdda4('0x1a'),new AGIError(_0xdda4('0x1b')));_0x3c91e[_0xdda4('0x1c')]();});_0x3c91e[_0xdda4('0x1d')](_0x3f1189);this['command']=function(_0x53c789,_0x5d1d12){var _0x53c789=_0x53c789||'',_0x5d1d12=typeof _0x5d1d12==_0xdda4('0xd')?_0x5d1d12:new Function();_0x10ae8b={'tx':_0x53c789,'rx':'','cb':_0x5d1d12};_0x3c91e[_0xdda4('0x1e')](_0x53c789+'\x0a');},this['close']=function(){_0x3c91e[_0xdda4('0x1c')]();};}util['inherits'](AGIChannel,EventEmitter);AGIChannel['prototype'][_0xdda4('0x1f')]=function(_0x3d8e56){return this[_0xdda4('0x20')]['sync'](this,_0x3d8e56);};AGIChannel[_0xdda4('0x21')][_0xdda4('0x22')]=function(){return this['sendRequest'](_0xdda4('0x23'));};AGIChannel[_0xdda4('0x21')][_0xdda4('0x24')]=function(_0x3755c1,_0x1101a0,_0x3eab5d){_0x3755c1=_0x3755c1===undefined?'beep':_0x3755c1;_0x1101a0=_0x1101a0===undefined?'5':_0x1101a0;_0x3eab5d=_0x3eab5d===undefined?'1':_0x3eab5d;return this['sendRequest'](util[_0xdda4('0x25')](_0xdda4('0x26'),_0x3755c1,_0x1101a0*0x3e8,_0x3eab5d));};AGIChannel[_0xdda4('0x21')][_0xdda4('0x27')]=function(_0x5699af){_0x5699af=_0x5699af||_0xdda4('0x28');return this[_0xdda4('0x1f')](util['format'](_0xdda4('0x29'),_0x5699af));};AGIChannel[_0xdda4('0x21')]['exec']=function(_0x52e5cd,_0x3a653f){if(_['isArray'](_0x3a653f)){return this[_0xdda4('0x1f')](util[_0xdda4('0x25')](_0xdda4('0x2a'),_0x52e5cd,_0x3a653f[_0xdda4('0x2b')](',')));}return this[_0xdda4('0x1f')](util[_0xdda4('0x25')](_0xdda4('0x2a'),_0x52e5cd,_0x3a653f));};AGIChannel['prototype']['setContext']=function(_0x53d89b){return this[_0xdda4('0x1f')](util[_0xdda4('0x25')](_0xdda4('0x2c'),_0x53d89b));};AGIChannel[_0xdda4('0x21')][_0xdda4('0x2d')]=function(_0x210c11){return this['sendRequest'](util[_0xdda4('0x25')](_0xdda4('0x2e'),_0x210c11));};AGIChannel[_0xdda4('0x21')]['setPriority']=function(_0xbe18a7){return this['sendRequest'](util[_0xdda4('0x25')](_0xdda4('0x2f'),_0xbe18a7));};AGIChannel['prototype'][_0xdda4('0x9')]=function(){return this[_0xdda4('0x1f')]('HANGUP');};AGIChannel[_0xdda4('0x21')][_0xdda4('0x30')]=function(_0x4a9fe2,_0x3d45d0){var _0x5ec769=_[_0xdda4('0x31')](_0x3d45d0)||_[_0xdda4('0x32')](_0x3d45d0)?_0x3d45d0['toString']():_0x3d45d0;return this[_0xdda4('0x1f')](util['format'](_0xdda4('0x33'),_0x4a9fe2,_0x5ec769?_0x5ec769[_0xdda4('0x34')]()[_0xdda4('0x35')](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel[_0xdda4('0x21')][_0xdda4('0x36')]=function(_0x480f2c,_0x3d1e71){return this[_0xdda4('0x1f')](util[_0xdda4('0x25')](_0xdda4('0x37'),_0x480f2c,_0x3d1e71));};AGIChannel['prototype'][_0xdda4('0x38')]=function(_0x54f102,_0x1fbd23){return this[_0xdda4('0x1f')](util['format'](_0xdda4('0x39'),_0x54f102,_0x1fbd23));};AGIChannel['prototype'][_0xdda4('0x3a')]=function(_0x348c8a,_0x5ad271){return this[_0xdda4('0x1f')](util[_0xdda4('0x25')](_0xdda4('0x3b'),_0x348c8a,_0x5ad271));};AGIChannel[_0xdda4('0x21')]['continueAt']=function(_0x219b06,_0x246f75,_0x324db5){_0x246f75=_0x246f75||this[_0xdda4('0x3c')];_0x324db5=_0x324db5||0x1;this[_0xdda4('0x3d')](_0x219b06);this[_0xdda4('0x2d')](_0x246f75);this[_0xdda4('0x3e')](_0x324db5);return this[_0xdda4('0x27')](util['format'](_0xdda4('0x3f'),_0x219b06,_0x246f75,_0x324db5));};AGIChannel[_0xdda4('0x21')]['getVariable']=function(_0x4736fb){return this[_0xdda4('0x1f')](util[_0xdda4('0x25')](_0xdda4('0x40'),_0x4736fb));};AGIChannel[_0xdda4('0x21')][_0xdda4('0x41')]=function(_0x2d78bc,_0x442232,_0x4925eb,_0x29c577,_0x5ba580,_0x3a754b){_0x442232=_0x442232||_0xdda4('0x42');_0x4925eb=_0x4925eb||'';_0x29c577=_0x29c577===undefined?-0x1:_0x29c577==='-1'?-0x1:_0x29c577*0x3e8;_0x5ba580=_0x5ba580===undefined?'':'s='+_0x5ba580;_0x3a754b=_0x3a754b?_0xdda4('0x43'):'';return this[_0xdda4('0x1f')](util['format'](_0xdda4('0x44'),_0x2d78bc,_0x442232,_0x4925eb,_0x29c577,_0x3a754b,_0x5ba580));};AGIChannel['prototype'][_0xdda4('0x45')]=function(_0x1a5b68,_0x54273a){_0x54273a=_0x54273a||'';return this[_0xdda4('0x1f')](util['format'](_0xdda4('0x46'),_0x1a5b68,_0x54273a));};AGIChannel[_0xdda4('0x21')]['agi']=function(_0x526b1c){return this[_0xdda4('0x47')](_0xdda4('0x48'),_0x526b1c);};AGIChannel['prototype']['wait']=function(_0x5a0123){return this[_0xdda4('0x47')](_0xdda4('0x49'),_0x5a0123);};AGIChannel[_0xdda4('0x21')]['error']=function(_0x4cba77,_0x12e3c3){this[_0xdda4('0x27')](util[_0xdda4('0x25')](_0xdda4('0x4a'),_0x4cba77['id'],_0x4cba77[_0xdda4('0x4b')],_0x12e3c3));return{'code':0x1f4,'result':'-1','extra':''};};module[_0xdda4('0x4c')]=AGIChannel;
\ No newline at end of file
+var _0xf1d4=['SAY\x20DIGITS\x20%s\x20%s','continueAt','extension','getVariable','GET\x20VARIABLE\x20\x22%s\x22','wav','RECORD\x20FILE\x20\x22%s\x22\x20\x22%s\x22\x20\x22%s\x22\x20%s\x20%s\x20%s','streamFile','STREAM\x20FILE\x20\x22%s\x22\x20\x22%s\x22','agi','noop','ID:%s\x20-\x20LABEL:\x20%s\x20-\x20MSG:\x20%s','label','exports','util','events','./reply','./error','call','setEncoding','setTimeout','utf8','headers','emit','hangup','substring','520-Invalid','function','no\x20code','indexOf','split','length','match','error','E_AGI_SOCKET_ERROR','close','timeout','E_AGI_SOCKET_TIMEOUT','destroy','pipe','command','write','inherits','sendRequest','sync','prototype','answer','ANSWER','beep','GET\x20DATA\x20\x22%s\x22\x20%s\x20%s','NO\x20MESSAGE','format','exec','isArray','EXEC\x20%s\x20%s','join','setExtension','SET\x20EXTENSION\x20%s','setPriority','HANGUP','setVariable','isBoolean','isNumber','toString','SET\x20VARIABLE\x20%s\x20\x22%s\x22','sayDigits'];(function(_0x3b320c,_0xfee5df){var _0xaeb727=function(_0x583b98){while(--_0x583b98){_0x3b320c['push'](_0x3b320c['shift']());}};_0xaeb727(++_0xfee5df);}(_0xf1d4,0x158));var _0x4f1d=function(_0x1a9201,_0x29d57f){_0x1a9201=_0x1a9201-0x0;var _0x24bfb4=_0xf1d4[_0x1a9201];return _0x24bfb4;};'use strict';var util=require(_0x4f1d('0x0'));var _=require('lodash');var EventEmitter=require(_0x4f1d('0x1'))['EventEmitter'];var AGIReply=require(_0x4f1d('0x2'));var AGIError=require(_0x4f1d('0x3'));function AGIChannel(_0x54e473){var _0x2592b7=this,_0x42adf0=new AGIReply(),_0x5604b3=![],_0x5d00a5={};EventEmitter[_0x4f1d('0x4')](_0x2592b7);_0x54e473[_0x4f1d('0x5')]('utf8');_0x54e473[_0x4f1d('0x6')](0x8*0x3c*0x3c*0x3e8);_0x42adf0[_0x4f1d('0x5')](_0x4f1d('0x7'));_0x42adf0['on'](_0x4f1d('0x8'),function(_0x13766a){for(var _0x24c3a3 in _0x13766a){_0x2592b7[_0x24c3a3]=_0x13766a[_0x24c3a3];}_0x2592b7[_0x4f1d('0x9')]('ready');});_0x42adf0['on']('line',function(_0x462b65){if(_0x462b65['toLowerCase']()==_0x4f1d('0xa')){_0x2592b7[_0x4f1d('0x9')]('hangup');return;}if(_0x462b65[_0x4f1d('0xb')](0x0,0xb)==_0x4f1d('0xc')){_0x5604b3=!![];}if(_0x5604b3){_0x5d00a5['rx']+=_0x462b65+'\x0a';if(_0x462b65['search']('520\x20End\x20of\x20proper')!=-0x1){_0x5604b3=![];}}else{_0x5d00a5['rx']=_0x462b65;}if(_0x5604b3){return;}if(typeof _0x5d00a5['cb']==_0x4f1d('0xd')){var _0x52b921=_0x5d00a5['rx'][_0x4f1d('0xb')](0x0,0x3),_0x25c236=null,_0x377523=null;_0x52b921=parseInt(_0x52b921);if(isNaN(_0x52b921)){_0x5d00a5['cb'](null,{'code':0x1f4,'result':-0x1,'extra':_0x4f1d('0xe')});return;}if(_0x52b921!=0xc8){_0x5d00a5['cb'](null,{'code':_0x52b921,'result':-0x1,'extra':'KO'});return;}_0x25c236=_0x5d00a5['rx'][_0x4f1d('0xb')](0x4)['replace']('result=','');if(_0x25c236[_0x4f1d('0xf')]('\x20')!=-0x1){_0x25c236=_0x25c236['substr'](0x0,_0x25c236['indexOf']('\x20'));}if(_['startsWith'](_0x25c236,'-1')){_0x25c236=parseInt(_0x25c236);}_0x377523=_0x5d00a5['rx'][_0x4f1d('0x10')]('\x20');if(_0x377523['length']==0x3){_0x377523=_0x377523[0x2][_0x4f1d('0xb')](0x1,_0x377523[0x2]['length']-0x1);}else if(_0x377523[_0x4f1d('0x11')]>0x3){var _0x53a39f=/\((.+)\)/;var _0x2e8bc7=_0x5d00a5['rx'][_0x4f1d('0x12')](_0x53a39f);if(_0x2e8bc7){_0x377523=_0x2e8bc7[0x1];}else{_0x377523=null;}}else{_0x377523=null;}_0x5d00a5['cb'](null,{'code':_0x52b921,'result':_0x25c236,'extra':_0x377523});}});_0x54e473['on'](_0x4f1d('0x13'),function(_0x58ebbf){_0x2592b7[_0x4f1d('0x9')](_0x4f1d('0x13'),new AGIError(_0x4f1d('0x14'),_0x58ebbf['code']));});_0x54e473['on'](_0x4f1d('0x15'),function(){_0x2592b7['emit'](_0x4f1d('0x15'),new AGIError('E_AGI_SOCKET_CLOSE'));});_0x54e473['on'](_0x4f1d('0x16'),function(){_0x2592b7['emit'](_0x4f1d('0x16'),new AGIError(_0x4f1d('0x17')));_0x54e473[_0x4f1d('0x18')]();});_0x54e473[_0x4f1d('0x19')](_0x42adf0);this[_0x4f1d('0x1a')]=function(_0x1bdf82,_0x5d35ff){var _0x1bdf82=_0x1bdf82||'',_0x5d35ff=typeof _0x5d35ff==_0x4f1d('0xd')?_0x5d35ff:new Function();_0x5d00a5={'tx':_0x1bdf82,'rx':'','cb':_0x5d35ff};_0x54e473[_0x4f1d('0x1b')](_0x1bdf82+'\x0a');},this['close']=function(){_0x54e473[_0x4f1d('0x18')]();};}util[_0x4f1d('0x1c')](AGIChannel,EventEmitter);AGIChannel['prototype'][_0x4f1d('0x1d')]=function(_0x2e421f){return this[_0x4f1d('0x1a')][_0x4f1d('0x1e')](this,_0x2e421f);};AGIChannel[_0x4f1d('0x1f')][_0x4f1d('0x20')]=function(){return this['sendRequest'](_0x4f1d('0x21'));};AGIChannel[_0x4f1d('0x1f')]['getData']=function(_0x5451a6,_0x1f0207,_0x308de8){_0x5451a6=_0x5451a6===undefined?_0x4f1d('0x22'):_0x5451a6;_0x1f0207=_0x1f0207===undefined?'5':_0x1f0207;_0x308de8=_0x308de8===undefined?'1':_0x308de8;return this[_0x4f1d('0x1d')](util['format'](_0x4f1d('0x23'),_0x5451a6,_0x1f0207*0x3e8,_0x308de8));};AGIChannel['prototype']['noop']=function(_0x4525eb){_0x4525eb=_0x4525eb||_0x4f1d('0x24');return this['sendRequest'](util[_0x4f1d('0x25')]('VERBOSE\x20\x22%s\x22',_0x4525eb));};AGIChannel['prototype'][_0x4f1d('0x26')]=function(_0x7894a6,_0x182e4c){if(_[_0x4f1d('0x27')](_0x182e4c)){return this[_0x4f1d('0x1d')](util[_0x4f1d('0x25')](_0x4f1d('0x28'),_0x7894a6,_0x182e4c[_0x4f1d('0x29')](',')));}return this['sendRequest'](util[_0x4f1d('0x25')](_0x4f1d('0x28'),_0x7894a6,_0x182e4c));};AGIChannel[_0x4f1d('0x1f')]['setContext']=function(_0x443852){return this[_0x4f1d('0x1d')](util['format']('SET\x20CONTEXT\x20%s',_0x443852));};AGIChannel[_0x4f1d('0x1f')][_0x4f1d('0x2a')]=function(_0x1a1eba){return this['sendRequest'](util[_0x4f1d('0x25')](_0x4f1d('0x2b'),_0x1a1eba));};AGIChannel[_0x4f1d('0x1f')][_0x4f1d('0x2c')]=function(_0x468186){return this['sendRequest'](util[_0x4f1d('0x25')]('SET\x20PRIORITY\x20%s',_0x468186));};AGIChannel['prototype'][_0x4f1d('0xa')]=function(){return this[_0x4f1d('0x1d')](_0x4f1d('0x2d'));};AGIChannel[_0x4f1d('0x1f')][_0x4f1d('0x2e')]=function(_0x510adb,_0x12b19d){var _0x56d88a=_[_0x4f1d('0x2f')](_0x12b19d)||_[_0x4f1d('0x30')](_0x12b19d)?_0x12b19d[_0x4f1d('0x31')]():_0x12b19d;return this[_0x4f1d('0x1d')](util[_0x4f1d('0x25')](_0x4f1d('0x32'),_0x510adb,_0x56d88a?_0x56d88a[_0x4f1d('0x31')]()['replace'](/(\r\n|\n|\r)/gm,'\x20'):''));};AGIChannel['prototype']['sayNumber']=function(_0x214869,_0xb78f8d){return this[_0x4f1d('0x1d')](util[_0x4f1d('0x25')]('SAY\x20NUMBER\x20%s\x20%s',_0x214869,_0xb78f8d));};AGIChannel[_0x4f1d('0x1f')][_0x4f1d('0x33')]=function(_0x151b66,_0x57622b){return this[_0x4f1d('0x1d')](util[_0x4f1d('0x25')](_0x4f1d('0x34'),_0x151b66,_0x57622b));};AGIChannel[_0x4f1d('0x1f')]['sayPhonetic']=function(_0x4fa255,_0x4f1e88){return this[_0x4f1d('0x1d')](util[_0x4f1d('0x25')]('SAY\x20PHONETIC\x20\x22%s\x22\x20%s',_0x4fa255,_0x4f1e88));};AGIChannel['prototype'][_0x4f1d('0x35')]=function(_0x421fc2,_0x449d0c,_0x5ae5f7){_0x449d0c=_0x449d0c||this[_0x4f1d('0x36')];_0x5ae5f7=_0x5ae5f7||0x1;this['setContext'](_0x421fc2);this[_0x4f1d('0x2a')](_0x449d0c);this['setPriority'](_0x5ae5f7);return this['noop'](util[_0x4f1d('0x25')]('GOTO\x20%s\x20%s\x20%s',_0x421fc2,_0x449d0c,_0x5ae5f7));};AGIChannel[_0x4f1d('0x1f')][_0x4f1d('0x37')]=function(_0x3e9815){return this[_0x4f1d('0x1d')](util[_0x4f1d('0x25')](_0x4f1d('0x38'),_0x3e9815));};AGIChannel['prototype']['recordFile']=function(_0x3ead34,_0x26545f,_0x29000a,_0x3404a5,_0x1e75e7,_0x96c0e){_0x26545f=_0x26545f||_0x4f1d('0x39');_0x29000a=_0x29000a||'';_0x3404a5=_0x3404a5===undefined?-0x1:_0x3404a5==='-1'?-0x1:_0x3404a5*0x3e8;_0x1e75e7=_0x1e75e7===undefined?'':'s='+_0x1e75e7;_0x96c0e=_0x96c0e?'BEEP':'';return this[_0x4f1d('0x1d')](util[_0x4f1d('0x25')](_0x4f1d('0x3a'),_0x3ead34,_0x26545f,_0x29000a,_0x3404a5,_0x96c0e,_0x1e75e7));};AGIChannel[_0x4f1d('0x1f')][_0x4f1d('0x3b')]=function(_0x12bd77,_0x39b970){_0x39b970=_0x39b970||'';return this['sendRequest'](util[_0x4f1d('0x25')](_0x4f1d('0x3c'),_0x12bd77,_0x39b970));};AGIChannel[_0x4f1d('0x1f')][_0x4f1d('0x3d')]=function(_0xb9c0e2){return this[_0x4f1d('0x26')]('AGI',_0xb9c0e2);};AGIChannel[_0x4f1d('0x1f')]['wait']=function(_0x22f1b1){return this['exec']('WAIT',_0x22f1b1);};AGIChannel[_0x4f1d('0x1f')][_0x4f1d('0x13')]=function(_0x810fc6,_0x449993){this[_0x4f1d('0x3e')](util[_0x4f1d('0x25')](_0x4f1d('0x3f'),_0x810fc6['id'],_0x810fc6[_0x4f1d('0x40')],_0x449993));return{'code':0x1f4,'result':'-1','extra':''};};module[_0x4f1d('0x41')]=AGIChannel;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x90d0=['Missing\x20\x27ivr.entry\x27\x20menu.','E_AGI_UNDEFINED','push','format','message','name','util','Undefined\x20error.','Argument\x20\x27port\x27\x20missing\x20in\x20function\x20call.','Server\x20error.\x20Code:\x20%s.','[LICENSE]\x20Server\x20max\x20connection.\x20Count:\x20%s.','[LICENSE\x20VOICE]\x20Server\x20license\x20voice\x20disabled.','Socket\x20closed.','Empty\x20command.','Missing\x20\x27ivr.agi_network_script\x27.'];(function(_0x930b99,_0x107da0){var _0x4d2af0=function(_0x17fceb){while(--_0x17fceb){_0x930b99['push'](_0x930b99['shift']());}};_0x4d2af0(++_0x107da0);}(_0x90d0,0x105));var _0x090d=function(_0x2e3416,_0x5073f4){_0x2e3416=_0x2e3416-0x0;var _0x1749ff=_0x90d0[_0x2e3416];return _0x1749ff;};'use strict';var util=require(_0x090d('0x0'));var error={'E_AGI_UNDEFINED':_0x090d('0x1'),'E_AGI_ARGUMENT_PORT':_0x090d('0x2'),'E_AGI_SERVER_ERROR':_0x090d('0x3'),'E_AGI_SERVER_CLOSE':'Server\x20closed.','E_AGI_SERVER_MAXCONNECTION':_0x090d('0x4'),'E_AGI_SERVER_VOICE_DISABLED':_0x090d('0x5'),'E_AGI_SOCKET_ERROR':'Socket\x20error.\x20Code:\x20%s.','E_AGI_SOCKET_CLOSE':_0x090d('0x6'),'E_AGI_SOCKET_TIMEOUT':'Socket\x20timeout.','E_AGI_COMMAND_EMPTY':_0x090d('0x7'),'E_AGI_IVR_AGI_NETWORK_SCRIPT':_0x090d('0x8'),'E_AGI_IVR_ENTRY':_0x090d('0x9')};function AGIError(_0x341373){var _0x341373=_0x341373||null,_0x3db2cc=_0x3db2cc||[],_0x268209=0x1,_0x466a44='';if(!error[_0x341373]){_0x341373=_0x090d('0xa');}_0x3db2cc[_0x090d('0xb')](error[_0x341373]);while(arguments[_0x268209]){_0x3db2cc[_0x090d('0xb')](arguments[_0x268209]);_0x268209++;}_0x466a44=util[_0x090d('0xc')]['apply'](util,_0x3db2cc);this[_0x090d('0xd')]=_0x466a44;this[_0x090d('0xe')]=_0x341373;}module['exports']=AGIError;
\ No newline at end of file
+var _0x83f5=['[LICENSE\x20VOICE]\x20Server\x20license\x20voice\x20disabled.','Socket\x20error.\x20Code:\x20%s.','Socket\x20closed.','Empty\x20command.','Missing\x20\x27ivr.agi_network_script\x27.','E_AGI_UNDEFINED','push','format','apply','name','exports','Argument\x20\x27port\x27\x20missing\x20in\x20function\x20call.','Server\x20closed.','[LICENSE]\x20Server\x20max\x20connection.\x20Count:\x20%s.'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x83f5,0x15b));var _0x583f=function(_0x102c64,_0x3d041e){_0x102c64=_0x102c64-0x0;var _0x4a3b73=_0x83f5[_0x102c64];return _0x4a3b73;};'use strict';var util=require('util');var error={'E_AGI_UNDEFINED':'Undefined\x20error.','E_AGI_ARGUMENT_PORT':_0x583f('0x0'),'E_AGI_SERVER_ERROR':'Server\x20error.\x20Code:\x20%s.','E_AGI_SERVER_CLOSE':_0x583f('0x1'),'E_AGI_SERVER_MAXCONNECTION':_0x583f('0x2'),'E_AGI_SERVER_VOICE_DISABLED':_0x583f('0x3'),'E_AGI_SOCKET_ERROR':_0x583f('0x4'),'E_AGI_SOCKET_CLOSE':_0x583f('0x5'),'E_AGI_SOCKET_TIMEOUT':'Socket\x20timeout.','E_AGI_COMMAND_EMPTY':_0x583f('0x6'),'E_AGI_IVR_AGI_NETWORK_SCRIPT':_0x583f('0x7'),'E_AGI_IVR_ENTRY':'Missing\x20\x27ivr.entry\x27\x20menu.'};function AGIError(_0x5e5fe7){var _0x5e5fe7=_0x5e5fe7||null,_0x5eb61f=_0x5eb61f||[],_0x50b427=0x1,_0x1e9f65='';if(!error[_0x5e5fe7]){_0x5e5fe7=_0x583f('0x8');}_0x5eb61f[_0x583f('0x9')](error[_0x5e5fe7]);while(arguments[_0x50b427]){_0x5eb61f[_0x583f('0x9')](arguments[_0x50b427]);_0x50b427++;}_0x1e9f65=util[_0x583f('0xa')][_0x583f('0xb')](util,_0x5eb61f);this['message']=_0x1e9f65;this[_0x583f('0xc')]=_0x5e5fe7;}module[_0x583f('0xd')]=AGIError;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x73ab=['split','vswitch','default','target','invalid','default\x20on\x20switch\x20not\x20found','includes','condition\x20not\x20found','exports','lodash','../../../config/logger','agi','menu','getdigits','getsecretdigits','numberOfEdges','prototype','vertices','size','relations','getVertex','traverseBFS','info','no\x20vertex\x20found','stop\x20traverse','edges','no\x20edge/s\x20available','length','condition'];(function(_0x4f810c,_0x2a2cae){var _0x176143=function(_0x33cb0e){while(--_0x33cb0e){_0x4f810c['push'](_0x4f810c['shift']());}};_0x176143(++_0x2a2cae);}(_0x73ab,0x182));var _0xb73a=function(_0x284807,_0x4be925){_0x284807=_0x284807-0x0;var _0x50c774=_0x73ab[_0x284807];return _0x50c774;};'use strict';var _=require(_0xb73a('0x0'));var logger=require(_0xb73a('0x1'))(_0xb73a('0x2'));var verticesWithRetry=[_0xb73a('0x3'),_0xb73a('0x4'),_0xb73a('0x5')];var Graph=function(){this['vertices']={};this['edges']={};this[_0xb73a('0x6')]=0x0;};Graph[_0xb73a('0x7')]['addVertex']=function(_0x9d6837){this[_0xb73a('0x8')][_0x9d6837['id']]=_0x9d6837;this['edges'][_0x9d6837['id']]=[];};Graph[_0xb73a('0x7')]['addEdge']=function(_0x13e533,_0x21a5b6,_0x1f5c91){this['edges'][_0x13e533]['push']({'target':_0x21a5b6,'condition':_0x1f5c91});this[_0xb73a('0x6')]+=0x1;};Graph[_0xb73a('0x7')][_0xb73a('0x9')]=function(){return _[_0xb73a('0x9')](this[_0xb73a('0x8')]);};Graph['prototype'][_0xb73a('0xa')]=function(){return this[_0xb73a('0x6')];};Graph[_0xb73a('0x7')][_0xb73a('0xb')]=function(_0x1b86c0){return this[_0xb73a('0x8')][_0x1b86c0];};Graph[_0xb73a('0x7')][_0xb73a('0xc')]=function(_0x1f6124,_0x1415d8){if(!this[_0xb73a('0x8')][_0x1f6124]){return logger[_0xb73a('0xd')](_0xb73a('0xe'));}var _0x29130b=_0x1415d8(this[_0xb73a('0x8')][_0x1f6124]);if(!_0x29130b){return logger[_0xb73a('0xd')](_0xb73a('0xf'));}if(this[_0xb73a('0x10')][_0x1f6124]['length']===0x0){return logger[_0xb73a('0xd')](_0xb73a('0x11'));}for(var _0x14a0a4=0x0,_0x523e81=[],_0x1197e6=![];_0x14a0a4<this[_0xb73a('0x10')][_0x1f6124][_0xb73a('0x12')];_0x14a0a4+=0x1){if(this[_0xb73a('0x10')][_0x1f6124][_0x14a0a4]['condition']){_0x523e81=this[_0xb73a('0x10')][_0x1f6124][_0x14a0a4][_0xb73a('0x13')][_0xb73a('0x14')](',');for(var _0x33185c=0x0;_0x33185c<_0x523e81['length'];_0x33185c+=0x1){if(this[_0xb73a('0x8')][_0x1f6124]['agicommand']===_0xb73a('0x15')&&_0x523e81[_0x33185c]==='-'){_0x1197e6=this[_0xb73a('0x10')][_0x1f6124][_0x14a0a4]['target'];logger['info'](_0xb73a('0x16'),_0x523e81[_0x33185c],this[_0xb73a('0x10')][_0x1f6124][_0x14a0a4][_0xb73a('0x17')]);}else if(this[_0xb73a('0x8')][_0x1f6124]['agicommand']===_0xb73a('0x3')&&_0x523e81[_0x33185c]==='i'){_0x1197e6=this[_0xb73a('0x10')][_0x1f6124][_0x14a0a4][_0xb73a('0x17')];logger['info'](_0xb73a('0x18'),_0x523e81[_0x33185c],this['edges'][_0x1f6124][_0x14a0a4][_0xb73a('0x17')]);}if(_0x523e81[_0x33185c]===_0x29130b){return this[_0xb73a('0xc')](this[_0xb73a('0x10')][_0x1f6124][_0x14a0a4][_0xb73a('0x17')],_0x1415d8);}}}else{return this[_0xb73a('0xc')](this[_0xb73a('0x10')][_0x1f6124][_0x14a0a4]['target'],_0x1415d8);}}if(_0x523e81['length']){if(this[_0xb73a('0x8')][_0x1f6124]['agicommand']===_0xb73a('0x15')){if(_0x1197e6){return this['traverseBFS'](_0x1197e6,_0x1415d8);}return logger['info'](_0xb73a('0x19'));}else if(_[_0xb73a('0x1a')](verticesWithRetry,this[_0xb73a('0x8')][_0x1f6124]['agicommand'])){if(_0x29130b==='-'){return logger[_0xb73a('0xd')]('max\x20retry\x20reach');}if(_0x1197e6&&_0x29130b!=='t'){return this[_0xb73a('0xc')](_0x1197e6,_0x1415d8);}return this[_0xb73a('0xc')](_0x1f6124,_0x1415d8);}return logger['info'](_0xb73a('0x1b'));}};module[_0xb73a('0x1c')]=Graph;
\ No newline at end of file
+var _0x4f48=['exports','lodash','../../../config/logger','agi','menu','getdigits','getsecretdigits','numberOfEdges','prototype','addEdge','edges','size','vertices','getVertex','traverseBFS','info','stop\x20traverse','no\x20edge/s\x20available','length','condition','split','agicommand','target','default','invalid','vswitch','default\x20on\x20switch\x20not\x20found','includes','max\x20retry\x20reach','condition\x20not\x20found'];(function(_0x8c43de,_0x90ff31){var _0xa6591b=function(_0x469716){while(--_0x469716){_0x8c43de['push'](_0x8c43de['shift']());}};_0xa6591b(++_0x90ff31);}(_0x4f48,0xf1));var _0x84f4=function(_0x528e3e,_0x1e7e68){_0x528e3e=_0x528e3e-0x0;var _0x454741=_0x4f48[_0x528e3e];return _0x454741;};'use strict';var _=require(_0x84f4('0x0'));var logger=require(_0x84f4('0x1'))(_0x84f4('0x2'));var verticesWithRetry=[_0x84f4('0x3'),_0x84f4('0x4'),_0x84f4('0x5')];var Graph=function(){this['vertices']={};this['edges']={};this[_0x84f4('0x6')]=0x0;};Graph[_0x84f4('0x7')]['addVertex']=function(_0x596e7e){this['vertices'][_0x596e7e['id']]=_0x596e7e;this['edges'][_0x596e7e['id']]=[];};Graph[_0x84f4('0x7')][_0x84f4('0x8')]=function(_0x55bd7e,_0x439e4f,_0x3b92a1){this[_0x84f4('0x9')][_0x55bd7e]['push']({'target':_0x439e4f,'condition':_0x3b92a1});this[_0x84f4('0x6')]+=0x1;};Graph[_0x84f4('0x7')][_0x84f4('0xa')]=function(){return _[_0x84f4('0xa')](this[_0x84f4('0xb')]);};Graph[_0x84f4('0x7')]['relations']=function(){return this[_0x84f4('0x6')];};Graph['prototype'][_0x84f4('0xc')]=function(_0x288b64){return this[_0x84f4('0xb')][_0x288b64];};Graph[_0x84f4('0x7')][_0x84f4('0xd')]=function(_0x2721b1,_0x3aa0f6){if(!this[_0x84f4('0xb')][_0x2721b1]){return logger['info']('no\x20vertex\x20found');}var _0xaaa60=_0x3aa0f6(this['vertices'][_0x2721b1]);if(!_0xaaa60){return logger[_0x84f4('0xe')](_0x84f4('0xf'));}if(this[_0x84f4('0x9')][_0x2721b1]['length']===0x0){return logger[_0x84f4('0xe')](_0x84f4('0x10'));}for(var _0x288d1c=0x0,_0xa5b331=[],_0x2fec0e=![];_0x288d1c<this[_0x84f4('0x9')][_0x2721b1][_0x84f4('0x11')];_0x288d1c+=0x1){if(this[_0x84f4('0x9')][_0x2721b1][_0x288d1c][_0x84f4('0x12')]){_0xa5b331=this['edges'][_0x2721b1][_0x288d1c][_0x84f4('0x12')][_0x84f4('0x13')](',');for(var _0x547e8f=0x0;_0x547e8f<_0xa5b331[_0x84f4('0x11')];_0x547e8f+=0x1){if(this[_0x84f4('0xb')][_0x2721b1][_0x84f4('0x14')]==='vswitch'&&_0xa5b331[_0x547e8f]==='-'){_0x2fec0e=this[_0x84f4('0x9')][_0x2721b1][_0x288d1c][_0x84f4('0x15')];logger[_0x84f4('0xe')](_0x84f4('0x16'),_0xa5b331[_0x547e8f],this[_0x84f4('0x9')][_0x2721b1][_0x288d1c][_0x84f4('0x15')]);}else if(this[_0x84f4('0xb')][_0x2721b1]['agicommand']===_0x84f4('0x3')&&_0xa5b331[_0x547e8f]==='i'){_0x2fec0e=this[_0x84f4('0x9')][_0x2721b1][_0x288d1c][_0x84f4('0x15')];logger['info'](_0x84f4('0x17'),_0xa5b331[_0x547e8f],this[_0x84f4('0x9')][_0x2721b1][_0x288d1c][_0x84f4('0x15')]);}if(_0xa5b331[_0x547e8f]===_0xaaa60){return this['traverseBFS'](this[_0x84f4('0x9')][_0x2721b1][_0x288d1c]['target'],_0x3aa0f6);}}}else{return this['traverseBFS'](this['edges'][_0x2721b1][_0x288d1c][_0x84f4('0x15')],_0x3aa0f6);}}if(_0xa5b331[_0x84f4('0x11')]){if(this[_0x84f4('0xb')][_0x2721b1][_0x84f4('0x14')]===_0x84f4('0x18')){if(_0x2fec0e){return this[_0x84f4('0xd')](_0x2fec0e,_0x3aa0f6);}return logger[_0x84f4('0xe')](_0x84f4('0x19'));}else if(_[_0x84f4('0x1a')](verticesWithRetry,this[_0x84f4('0xb')][_0x2721b1][_0x84f4('0x14')])){if(_0xaaa60==='-'){return logger['info'](_0x84f4('0x1b'));}if(_0x2fec0e&&_0xaaa60!=='t'){return this[_0x84f4('0xd')](_0x2fec0e,_0x3aa0f6);}return this[_0x84f4('0xd')](_0x2721b1,_0x3aa0f6);}return logger[_0x84f4('0xe')](_0x84f4('0x1c'));}};module[_0x84f4('0x1d')]=Graph;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['catch','indexOf','agi_','inspect','debug','stringify','[START]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','close','timeout','hangup','sync','production','start','joinAt','YYYY-MM-DD\x20HH:mm:ss','clear','vertex','gotoc\x20block\x20stop\x20traverse\x20BFS','context','extension','priority','code','isUndefined','result','response','agicommand\x20not\x20found','finally','traverseBFS','toString','[GOTO]\x20context:\x20%s\x20extension:\x20%s\x20priority:\x20%s','continueAt','getLicense','callysquare','[LICENSE]\x20CHANNELS:\x20%s','[LICENSE]\x20CHANNELS:\x20UNLIMITED','[LICENSE]\x20VOICE\x20IS\x20DISABLED','[LICENSE]','./server','listening','connection','lodash','syncho','util','../../config/environment','../../config/logger','agi','../../config/license/util','./rpc','./mailRpc','./graph','./vertices','defaults','127.0.0.1','stack','log','port','info','format','[LISTENING]\x20Cally\x20Square\x20listening\x20%s:%d','name','message','[%s]\x20%s','[ERROR]\x20%s','[CLOSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','calleridname','dnid','uniqueid','error','[TIMEOUT]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','arg_1','callerid','[HANGUP]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','evtHangup','toJson','root','agicommand','hasOwnProperty','retry','maxRetry','addVertex','omit','mxCell','isArray','length','target','addEdge','source','value','then','createSquareReport'];(function(_0x242044,_0x3bdb87){var _0x9ab9be=function(_0xb03cec){while(--_0xb03cec){_0x242044['push'](_0x242044['shift']());}};_0x9ab9be(++_0x3bdb87);}(_0x7a54,0x1ea));var _0x47a5=function(_0x43fffa,_0x4f5df7){_0x43fffa=_0x43fffa-0x0;var _0x18792a=_0x7a54[_0x43fffa];return _0x18792a;};'use strict';var parser=require('xml2json');var _=require(_0x47a5('0x0'));var syncho=require(_0x47a5('0x1'));var util=require(_0x47a5('0x2'));var moment=require('moment');var config=require(_0x47a5('0x3'));var logger=require(_0x47a5('0x4'))(_0x47a5('0x5'));var utilLicense=require(_0x47a5('0x6'));var rpc=require(_0x47a5('0x7'));var mailRpc=require(_0x47a5('0x8'));var Graph=require(_0x47a5('0x9'));var Vertices=require(_0x47a5('0xa'));var AGI_CODE_SUCCESS=0xc8;var AGI_RESULT_ERROR=-0x1;config['agi']=_[_0x47a5('0xb')](config['agi'],{'ip':_0x47a5('0xc'),'port':0x11dd});function connectionHandler(_0x530ca2){process['nextTick'](function(){syncho(function(){try{setChannelVariables(_0x530ca2);agiHandler(_0x530ca2);}catch(_0x16cad6){logger['error'](_0x16cad6[_0x47a5('0xd')]);}});});}function listeningHandler(){console[_0x47a5('0xe')]('Cally\x20Square\x20server\x20listening\x20on\x20port\x20%d!',config['agi'][_0x47a5('0xf')]);logger[_0x47a5('0x10')](util[_0x47a5('0x11')](_0x47a5('0x12'),config[_0x47a5('0x5')]['ip'],config['agi']['port']));}function errorHandler(_0x3107c9){if(_0x3107c9&&_0x3107c9[_0x47a5('0x13')]&&_0x3107c9[_0x47a5('0x14')]){logger['error'](util[_0x47a5('0x11')](_0x47a5('0x15'),_0x3107c9[_0x47a5('0x13')],_0x3107c9[_0x47a5('0x14')]));}else{logger['error'](util[_0x47a5('0x11')](_0x47a5('0x16'),_0x3107c9['stack']));}}function closeHandler(){logger[_0x47a5('0x10')](util[_0x47a5('0x11')](_0x47a5('0x17'),this['arg_1'],this[_0x47a5('0x18')],this['callerid'],this[_0x47a5('0x19')],this[_0x47a5('0x1a')]));try{createSquareReport(this);}catch(_0xe1063c){logger[_0x47a5('0x1b')](_0xe1063c[_0x47a5('0xd')]);}}function timeoutHandler(){logger[_0x47a5('0x10')](util[_0x47a5('0x11')](_0x47a5('0x1c'),this[_0x47a5('0x1d')],this[_0x47a5('0x18')],this[_0x47a5('0x1e')],this[_0x47a5('0x19')],this['uniqueid']));}function hangupHandler(){logger[_0x47a5('0x10')](util['format'](_0x47a5('0x1f'),this['arg_1'],this[_0x47a5('0x18')],this['callerid'],this[_0x47a5('0x19')],this[_0x47a5('0x1a')]));this[_0x47a5('0x20')]=!![];}function getRoot(_0x176123){return parser[_0x47a5('0x21')](_0x176123,{'object':!![]})['mxGraphModel'][_0x47a5('0x22')];}function addVertex(_0x252437,_0x49e2b7,_0x1a2c4b){_0x49e2b7[_0x47a5('0x23')]=_0x1a2c4b;if(_0x49e2b7[_0x47a5('0x24')](_0x47a5('0x25'))){_0x49e2b7[_0x47a5('0x26')]=parseInt(_0x49e2b7['retry'],0xa);}_0x252437[_0x47a5('0x27')](_[_0x47a5('0x28')](_0x49e2b7,_0x47a5('0x29')));}function initGraph(_0x1be3d4,_0x54253d){var _0x29b78a=new Graph();for(var _0x525bd0 in _0x1be3d4){if(_0x1be3d4[_0x47a5('0x24')](_0x525bd0)){if(_[_0x47a5('0x2a')](_0x1be3d4[_0x525bd0])){for(var _0x31520f=0x0;_0x31520f<_0x1be3d4[_0x525bd0][_0x47a5('0x2b')];_0x31520f+=0x1){addVertex(_0x29b78a,_0x1be3d4[_0x525bd0][_0x31520f],_0x525bd0);}}else{addVertex(_0x29b78a,_0x1be3d4[_0x525bd0],_0x525bd0);}}}for(var _0x15f775=0x0;_0x15f775<_0x54253d[_0x47a5('0x2b')];_0x15f775+=0x1){if(_0x54253d[_0x15f775]['source']&&_0x54253d[_0x15f775][_0x47a5('0x2c')]){_0x29b78a[_0x47a5('0x2d')](_0x54253d[_0x15f775][_0x47a5('0x2e')],_0x54253d[_0x15f775][_0x47a5('0x2c')],_0x54253d[_0x15f775][_0x47a5('0x2f')]);}}return _0x29b78a;}function getSquareProject(_0x47a5f3,_0x1e291e){rpc['getSquareProject'](_0x47a5f3)[_0x47a5('0x30')](function(_0xd7ab0c){_0x1e291e(null,_0xd7ab0c);})['catch'](function(_0x5dbe9a){_0x1e291e(null,_0x5dbe9a);});}function createSquareReport(_0x59f58c,_0x655289){rpc[_0x47a5('0x31')](_0x59f58c)[_0x47a5('0x30')](function(_0x2d3e37){if(_0x655289){_0x655289(null,_0x2d3e37);}})[_0x47a5('0x32')](function(_0x191c81){if(_0x655289){_0x655289(null,_0x191c81);}});}function setChannelVariables(_0x5019f9){for(var _0x3135d8 in _0x5019f9){if(_0x5019f9[_0x47a5('0x24')](_0x3135d8)){if(_0x3135d8[_0x47a5('0x33')](_0x47a5('0x34'))===0x0){_0x5019f9[_0x3135d8['substring'](0x4)]=_0x5019f9[_0x3135d8];delete _0x5019f9[_0x3135d8];}}}}function getLogFromObject(_0x4e030e){return util[_0x47a5('0x35')](_0x4e030e,{'showHidden':![],'depth':null});}function agiHandler(_0x3425ed){var _0x137c52,_0xa5c3ef,_0x218517,_0x53643f,_0x2cc722;logger[_0x47a5('0x36')]('variables',JSON[_0x47a5('0x37')](_0x3425ed,null,0x2));logger[_0x47a5('0x10')](util[_0x47a5('0x11')](_0x47a5('0x38'),_0x3425ed[_0x47a5('0x1d')],_0x3425ed[_0x47a5('0x18')],_0x3425ed[_0x47a5('0x1e')],_0x3425ed[_0x47a5('0x19')],_0x3425ed[_0x47a5('0x1a')]));_0x3425ed['on'](_0x47a5('0x1b'),errorHandler);_0x3425ed['on'](_0x47a5('0x39'),closeHandler);_0x3425ed['on'](_0x47a5('0x3a'),timeoutHandler);_0x3425ed[_0x47a5('0x20')]=![];_0x3425ed['on'](_0x47a5('0x3b'),hangupHandler);var _0x2ec363=getSquareProject[_0x47a5('0x3c')](null,_0x3425ed[_0x47a5('0x1d')]);if(_0x2ec363){if(_0x2ec363[_0x47a5('0x3d')]){_0x137c52=getRoot(_0x2ec363[_0x47a5('0x3d')]);if(_0x137c52&&_0x137c52[_0x47a5('0x3e')]){logger['debug'](_0x47a5('0x22'),JSON[_0x47a5('0x37')](_0x137c52,null,0x2));_0x3425ed[_0x47a5('0x3f')]=moment()[_0x47a5('0x11')](_0x47a5('0x40'));_0xa5c3ef=initGraph(_[_0x47a5('0x28')](_0x137c52,_0x47a5('0x29')),_0x137c52[_0x47a5('0x29')]);_0x218517=new Vertices(_0x3425ed,rpc,mailRpc);logger[_0x47a5('0x10')](util[_0x47a5('0x11')]('[START\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',_0x3425ed[_0x47a5('0x1d')],_0x3425ed['calleridname'],_0x3425ed[_0x47a5('0x1e')],_0x3425ed[_0x47a5('0x19')],_0x3425ed[_0x47a5('0x1a')]));_0xa5c3ef['traverseBFS'](_0x137c52[_0x47a5('0x3e')]['id'],function(_0x5ccff3){try{_0x5ccff3=_0x218517[_0x47a5('0x41')](_0x5ccff3);logger['debug'](_0x47a5('0x42'),JSON[_0x47a5('0x37')](_0x5ccff3,null,0x2));if(_0x5ccff3['agicommand']==='gotoc'){logger['info'](_0x47a5('0x43'));_0x3425ed[_0x47a5('0x44')]=_0x5ccff3[_0x47a5('0x44')]||_0x3425ed[_0x47a5('0x44')];_0x3425ed[_0x47a5('0x45')]=_0x5ccff3[_0x47a5('0x45')];_0x3425ed[_0x47a5('0x46')]=_0x5ccff3[_0x47a5('0x46')]?_0x5ccff3[_0x47a5('0x46')]-0x1:0x1;return null;}else if(_0x5ccff3&&_0x218517[_0x5ccff3[_0x47a5('0x23')]]){_0x2cc722=_0x218517[_0x5ccff3[_0x47a5('0x23')]](_0x5ccff3);logger['info']('response',JSON[_0x47a5('0x37')](_0x2cc722,null,0x2));if(_0x2cc722&&_0x2cc722[_0x47a5('0x47')]===AGI_CODE_SUCCESS&&_0x2cc722['result']!==AGI_RESULT_ERROR&&!_0x3425ed[_0x47a5('0x20')]){logger[_0x47a5('0x36')]('response',getLogFromObject(_0x2cc722));return _[_0x47a5('0x48')](_0x2cc722['result'])?null:_0x2cc722[_0x47a5('0x49')]['toString']();}else{logger['error'](_0x47a5('0x4a'),getLogFromObject(_0x2cc722));return null;}}else{logger['error'](_0x47a5('0x4b'));return null;}}catch(_0x57ac30){logger[_0x47a5('0x1b')](_0x57ac30['stack']);return null;}});if(_0x137c52[_0x47a5('0x4c')]){logger[_0x47a5('0x10')](util[_0x47a5('0x11')]('[FINALLY\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',_0x3425ed[_0x47a5('0x1d')],_0x3425ed[_0x47a5('0x18')],_0x3425ed[_0x47a5('0x1e')],_0x3425ed[_0x47a5('0x19')],_0x3425ed[_0x47a5('0x1a')]));_0xa5c3ef[_0x47a5('0x4d')](_0x137c52[_0x47a5('0x4c')]['id'],function(_0xf09221){try{_0xf09221=_0x218517[_0x47a5('0x41')](_0xf09221);logger[_0x47a5('0x36')]('vertex',JSON[_0x47a5('0x37')](_0xf09221,null,0x2));if(_0xf09221&&_0x218517[_0xf09221[_0x47a5('0x23')]]){_0x2cc722=_0x218517[_0xf09221[_0x47a5('0x23')]](_0xf09221);if(_0x2cc722){logger[_0x47a5('0x36')]('response',getLogFromObject(_0x2cc722));return _[_0x47a5('0x48')](_0x2cc722[_0x47a5('0x49')])?null:_0x2cc722['result'][_0x47a5('0x4e')]();}else{logger[_0x47a5('0x1b')](_0x47a5('0x4a'),getLogFromObject(_0x2cc722));return null;}}else{logger['error'](_0x47a5('0x4b'));return null;}}catch(_0x3558bb){logger[_0x47a5('0x1b')](_0x3558bb[_0x47a5('0xd')]);return null;}});}logger[_0x47a5('0x10')](util[_0x47a5('0x11')]('[END]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',_0x3425ed[_0x47a5('0x1d')],_0x3425ed[_0x47a5('0x18')],_0x3425ed['callerid'],_0x3425ed[_0x47a5('0x19')],_0x3425ed[_0x47a5('0x1a')]));logger[_0x47a5('0x10')](util['format'](_0x47a5('0x4f'),_0x3425ed['context'],_0x3425ed[_0x47a5('0x45')],parseInt(_0x3425ed['priority'],0xa)+0x1));_0x3425ed[_0x47a5('0x50')](_0x3425ed[_0x47a5('0x44')],_0x3425ed['extension'],parseInt(_0x3425ed[_0x47a5('0x46')],0xa)+0x1);_0x3425ed[_0x47a5('0x39')]();}}else{logger[_0x47a5('0x1b')](util[_0x47a5('0x11')]('Project\x20%s\x20not\x20published',_0x3425ed[_0x47a5('0x1d')]));_0x3425ed['continueAt'](_0x3425ed[_0x47a5('0x44')],_0x3425ed['extension'],parseInt(_0x3425ed['priority'],0xa)+0x1);_0x3425ed[_0x47a5('0x39')]();}}else{logger[_0x47a5('0x1b')](util[_0x47a5('0x11')]('Project\x20%s\x20not\x20found',_0x3425ed[_0x47a5('0x1d')]));_0x3425ed[_0x47a5('0x50')](_0x3425ed[_0x47a5('0x44')],_0x3425ed['extension'],parseInt(_0x3425ed[_0x47a5('0x46')],0xa)+0x1);_0x3425ed[_0x47a5('0x39')]();}}function main(){var _0x106b0a;return utilLicense[_0x47a5('0x51')]()['then'](function(_0x16bd64){if(_0x16bd64){if(_0x16bd64['voice']){if(_0x16bd64['callysquare']&&_0x16bd64[_0x47a5('0x52')]>0x0){logger[_0x47a5('0x10')](util['format'](_0x47a5('0x53'),_0x16bd64['callysquare']));_0x106b0a=_0x16bd64[_0x47a5('0x52')];}else{logger['info'](_0x47a5('0x54'));}}else{logger[_0x47a5('0x10')](_0x47a5('0x55'));_0x106b0a=-0x1;}}})[_0x47a5('0x32')](function(_0x4f3162){logger[_0x47a5('0x1b')](_0x47a5('0x56'),_0x4f3162['stack']);})[_0x47a5('0x4c')](function(){var _0x24a4c2=require(_0x47a5('0x57'))(config[_0x47a5('0x5')][_0x47a5('0xf')],config[_0x47a5('0x5')]['ip'],_0x106b0a);_0x24a4c2['on'](_0x47a5('0x1b'),errorHandler);_0x24a4c2['on'](_0x47a5('0x58'),listeningHandler);_0x24a4c2['on'](_0x47a5('0x59'),connectionHandler);_0x24a4c2['on'](_0x47a5('0x39'),closeHandler);});}main();
\ No newline at end of file
+var _0x583f=['message','format','[%s]\x20%s','[ERROR]\x20%s','[CLOSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','arg_1','calleridname','callerid','dnid','uniqueid','[TIMEOUT]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','[HANGUP]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','evtHangup','toJson','mxGraphModel','agicommand','retry','maxRetry','omit','hasOwnProperty','length','source','target','then','catch','createSquareReport','indexOf','agi_','substring','inspect','variables','stringify','[START]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','close','timeout','hangup','production','start','debug','root','joinAt','YYYY-MM-DD\x20HH:mm:ss','traverseBFS','clear','vertex','gotoc','gotoc\x20block\x20stop\x20traverse\x20BFS','context','extension','priority','response','code','result','isUndefined','toString','agicommand\x20not\x20found','finally','[FINALLY\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s','continueAt','getLicense','callysquare','[LICENSE]\x20CHANNELS:\x20%s','[LICENSE]\x20CHANNELS:\x20UNLIMITED','[LICENSE]','./server','listening','connection','xml2json','lodash','syncho','util','../../config/environment','../../config/logger','agi','../../config/license/util','./rpc','./mailRpc','./graph','./vertices','defaults','127.0.0.1','nextTick','error','stack','log','Cally\x20Square\x20server\x20listening\x20on\x20port\x20%d!','port','info','[LISTENING]\x20Cally\x20Square\x20listening\x20%s:%d'];(function(_0x426084,_0x1a6557){var _0x32438f=function(_0x3abfe5){while(--_0x3abfe5){_0x426084['push'](_0x426084['shift']());}};_0x32438f(++_0x1a6557);}(_0x583f,0x1a7));var _0xf583=function(_0x131205,_0x57575c){_0x131205=_0x131205-0x0;var _0x305300=_0x583f[_0x131205];return _0x305300;};'use strict';var parser=require(_0xf583('0x0'));var _=require(_0xf583('0x1'));var syncho=require(_0xf583('0x2'));var util=require(_0xf583('0x3'));var moment=require('moment');var config=require(_0xf583('0x4'));var logger=require(_0xf583('0x5'))(_0xf583('0x6'));var utilLicense=require(_0xf583('0x7'));var rpc=require(_0xf583('0x8'));var mailRpc=require(_0xf583('0x9'));var Graph=require(_0xf583('0xa'));var Vertices=require(_0xf583('0xb'));var AGI_CODE_SUCCESS=0xc8;var AGI_RESULT_ERROR=-0x1;config[_0xf583('0x6')]=_[_0xf583('0xc')](config[_0xf583('0x6')],{'ip':_0xf583('0xd'),'port':0x11dd});function connectionHandler(_0x1bcaf7){process[_0xf583('0xe')](function(){syncho(function(){try{setChannelVariables(_0x1bcaf7);agiHandler(_0x1bcaf7);}catch(_0x5d7630){logger[_0xf583('0xf')](_0x5d7630[_0xf583('0x10')]);}});});}function listeningHandler(){console[_0xf583('0x11')](_0xf583('0x12'),config[_0xf583('0x6')][_0xf583('0x13')]);logger[_0xf583('0x14')](util['format'](_0xf583('0x15'),config[_0xf583('0x6')]['ip'],config['agi'][_0xf583('0x13')]));}function errorHandler(_0x268f78){if(_0x268f78&&_0x268f78['name']&&_0x268f78[_0xf583('0x16')]){logger[_0xf583('0xf')](util[_0xf583('0x17')](_0xf583('0x18'),_0x268f78['name'],_0x268f78[_0xf583('0x16')]));}else{logger[_0xf583('0xf')](util[_0xf583('0x17')](_0xf583('0x19'),_0x268f78[_0xf583('0x10')]));}}function closeHandler(){logger['info'](util[_0xf583('0x17')](_0xf583('0x1a'),this[_0xf583('0x1b')],this[_0xf583('0x1c')],this[_0xf583('0x1d')],this[_0xf583('0x1e')],this[_0xf583('0x1f')]));try{createSquareReport(this);}catch(_0x1357f7){logger['error'](_0x1357f7[_0xf583('0x10')]);}}function timeoutHandler(){logger[_0xf583('0x14')](util[_0xf583('0x17')](_0xf583('0x20'),this[_0xf583('0x1b')],this['calleridname'],this['callerid'],this['dnid'],this['uniqueid']));}function hangupHandler(){logger['info'](util[_0xf583('0x17')](_0xf583('0x21'),this[_0xf583('0x1b')],this[_0xf583('0x1c')],this[_0xf583('0x1d')],this['dnid'],this['uniqueid']));this[_0xf583('0x22')]=!![];}function getRoot(_0x1419b7){return parser[_0xf583('0x23')](_0x1419b7,{'object':!![]})[_0xf583('0x24')]['root'];}function addVertex(_0x59006b,_0x364e7c,_0x1ce35b){_0x364e7c[_0xf583('0x25')]=_0x1ce35b;if(_0x364e7c['hasOwnProperty'](_0xf583('0x26'))){_0x364e7c[_0xf583('0x27')]=parseInt(_0x364e7c['retry'],0xa);}_0x59006b['addVertex'](_[_0xf583('0x28')](_0x364e7c,'mxCell'));}function initGraph(_0x3af9b9,_0x5092bb){var _0x542354=new Graph();for(var _0x425b6c in _0x3af9b9){if(_0x3af9b9[_0xf583('0x29')](_0x425b6c)){if(_['isArray'](_0x3af9b9[_0x425b6c])){for(var _0x8542a=0x0;_0x8542a<_0x3af9b9[_0x425b6c][_0xf583('0x2a')];_0x8542a+=0x1){addVertex(_0x542354,_0x3af9b9[_0x425b6c][_0x8542a],_0x425b6c);}}else{addVertex(_0x542354,_0x3af9b9[_0x425b6c],_0x425b6c);}}}for(var _0x31b896=0x0;_0x31b896<_0x5092bb[_0xf583('0x2a')];_0x31b896+=0x1){if(_0x5092bb[_0x31b896][_0xf583('0x2b')]&&_0x5092bb[_0x31b896]['target']){_0x542354['addEdge'](_0x5092bb[_0x31b896][_0xf583('0x2b')],_0x5092bb[_0x31b896][_0xf583('0x2c')],_0x5092bb[_0x31b896]['value']);}}return _0x542354;}function getSquareProject(_0x3440b5,_0x248a66){rpc['getSquareProject'](_0x3440b5)[_0xf583('0x2d')](function(_0x3ce398){_0x248a66(null,_0x3ce398);})[_0xf583('0x2e')](function(_0x3ee926){_0x248a66(null,_0x3ee926);});}function createSquareReport(_0x397c9e,_0xc621ef){rpc[_0xf583('0x2f')](_0x397c9e)[_0xf583('0x2d')](function(_0x146da3){if(_0xc621ef){_0xc621ef(null,_0x146da3);}})['catch'](function(_0x13733e){if(_0xc621ef){_0xc621ef(null,_0x13733e);}});}function setChannelVariables(_0x9de672){for(var _0x43914f in _0x9de672){if(_0x9de672[_0xf583('0x29')](_0x43914f)){if(_0x43914f[_0xf583('0x30')](_0xf583('0x31'))===0x0){_0x9de672[_0x43914f[_0xf583('0x32')](0x4)]=_0x9de672[_0x43914f];delete _0x9de672[_0x43914f];}}}}function getLogFromObject(_0x20c451){return util[_0xf583('0x33')](_0x20c451,{'showHidden':![],'depth':null});}function agiHandler(_0x3c0fbb){var _0x32f5be,_0x37b5be,_0x28e62e,_0x211448,_0xbabac;logger['debug'](_0xf583('0x34'),JSON[_0xf583('0x35')](_0x3c0fbb,null,0x2));logger[_0xf583('0x14')](util[_0xf583('0x17')](_0xf583('0x36'),_0x3c0fbb[_0xf583('0x1b')],_0x3c0fbb[_0xf583('0x1c')],_0x3c0fbb[_0xf583('0x1d')],_0x3c0fbb[_0xf583('0x1e')],_0x3c0fbb[_0xf583('0x1f')]));_0x3c0fbb['on'](_0xf583('0xf'),errorHandler);_0x3c0fbb['on'](_0xf583('0x37'),closeHandler);_0x3c0fbb['on'](_0xf583('0x38'),timeoutHandler);_0x3c0fbb[_0xf583('0x22')]=![];_0x3c0fbb['on'](_0xf583('0x39'),hangupHandler);var _0x127d17=getSquareProject['sync'](null,_0x3c0fbb[_0xf583('0x1b')]);if(_0x127d17){if(_0x127d17[_0xf583('0x3a')]){_0x32f5be=getRoot(_0x127d17[_0xf583('0x3a')]);if(_0x32f5be&&_0x32f5be[_0xf583('0x3b')]){logger[_0xf583('0x3c')](_0xf583('0x3d'),JSON['stringify'](_0x32f5be,null,0x2));_0x3c0fbb[_0xf583('0x3e')]=moment()[_0xf583('0x17')](_0xf583('0x3f'));_0x37b5be=initGraph(_[_0xf583('0x28')](_0x32f5be,'mxCell'),_0x32f5be['mxCell']);_0x28e62e=new Vertices(_0x3c0fbb,rpc,mailRpc);logger[_0xf583('0x14')](util['format']('[START\x20TRAVERSE]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',_0x3c0fbb[_0xf583('0x1b')],_0x3c0fbb['calleridname'],_0x3c0fbb[_0xf583('0x1d')],_0x3c0fbb[_0xf583('0x1e')],_0x3c0fbb[_0xf583('0x1f')]));_0x37b5be[_0xf583('0x40')](_0x32f5be[_0xf583('0x3b')]['id'],function(_0x14ce9b){try{_0x14ce9b=_0x28e62e[_0xf583('0x41')](_0x14ce9b);logger['debug'](_0xf583('0x42'),JSON['stringify'](_0x14ce9b,null,0x2));if(_0x14ce9b[_0xf583('0x25')]===_0xf583('0x43')){logger[_0xf583('0x14')](_0xf583('0x44'));_0x3c0fbb['context']=_0x14ce9b[_0xf583('0x45')]||_0x3c0fbb[_0xf583('0x45')];_0x3c0fbb[_0xf583('0x46')]=_0x14ce9b['extension'];_0x3c0fbb[_0xf583('0x47')]=_0x14ce9b[_0xf583('0x47')]?_0x14ce9b['priority']-0x1:0x1;return null;}else if(_0x14ce9b&&_0x28e62e[_0x14ce9b[_0xf583('0x25')]]){_0xbabac=_0x28e62e[_0x14ce9b[_0xf583('0x25')]](_0x14ce9b);logger[_0xf583('0x14')](_0xf583('0x48'),JSON[_0xf583('0x35')](_0xbabac,null,0x2));if(_0xbabac&&_0xbabac[_0xf583('0x49')]===AGI_CODE_SUCCESS&&_0xbabac[_0xf583('0x4a')]!==AGI_RESULT_ERROR&&!_0x3c0fbb[_0xf583('0x22')]){logger[_0xf583('0x3c')]('response',getLogFromObject(_0xbabac));return _[_0xf583('0x4b')](_0xbabac[_0xf583('0x4a')])?null:_0xbabac['result'][_0xf583('0x4c')]();}else{logger[_0xf583('0xf')](_0xf583('0x48'),getLogFromObject(_0xbabac));return null;}}else{logger[_0xf583('0xf')](_0xf583('0x4d'));return null;}}catch(_0x4a1c09){logger[_0xf583('0xf')](_0x4a1c09[_0xf583('0x10')]);return null;}});if(_0x32f5be[_0xf583('0x4e')]){logger['info'](util[_0xf583('0x17')](_0xf583('0x4f'),_0x3c0fbb[_0xf583('0x1b')],_0x3c0fbb[_0xf583('0x1c')],_0x3c0fbb[_0xf583('0x1d')],_0x3c0fbb[_0xf583('0x1e')],_0x3c0fbb[_0xf583('0x1f')]));_0x37b5be[_0xf583('0x40')](_0x32f5be[_0xf583('0x4e')]['id'],function(_0x1f2071){try{_0x1f2071=_0x28e62e[_0xf583('0x41')](_0x1f2071);logger['debug']('vertex',JSON[_0xf583('0x35')](_0x1f2071,null,0x2));if(_0x1f2071&&_0x28e62e[_0x1f2071[_0xf583('0x25')]]){_0xbabac=_0x28e62e[_0x1f2071[_0xf583('0x25')]](_0x1f2071);if(_0xbabac){logger[_0xf583('0x3c')](_0xf583('0x48'),getLogFromObject(_0xbabac));return _[_0xf583('0x4b')](_0xbabac[_0xf583('0x4a')])?null:_0xbabac[_0xf583('0x4a')][_0xf583('0x4c')]();}else{logger['error'](_0xf583('0x48'),getLogFromObject(_0xbabac));return null;}}else{logger[_0xf583('0xf')](_0xf583('0x4d'));return null;}}catch(_0x11c862){logger[_0xf583('0xf')](_0x11c862[_0xf583('0x10')]);return null;}});}logger[_0xf583('0x14')](util[_0xf583('0x17')]('[END]\x20%s\x20project:\x20from\x20\x22%s\x22\x20<%s>\x20to\x20extension\x20%s\x20with\x20uniqueid\x20%s',_0x3c0fbb[_0xf583('0x1b')],_0x3c0fbb['calleridname'],_0x3c0fbb['callerid'],_0x3c0fbb[_0xf583('0x1e')],_0x3c0fbb['uniqueid']));logger['info'](util[_0xf583('0x17')]('[GOTO]\x20context:\x20%s\x20extension:\x20%s\x20priority:\x20%s',_0x3c0fbb['context'],_0x3c0fbb['extension'],parseInt(_0x3c0fbb['priority'],0xa)+0x1));_0x3c0fbb[_0xf583('0x50')](_0x3c0fbb[_0xf583('0x45')],_0x3c0fbb[_0xf583('0x46')],parseInt(_0x3c0fbb[_0xf583('0x47')],0xa)+0x1);_0x3c0fbb[_0xf583('0x37')]();}}else{logger[_0xf583('0xf')](util[_0xf583('0x17')]('Project\x20%s\x20not\x20published',_0x3c0fbb[_0xf583('0x1b')]));_0x3c0fbb[_0xf583('0x50')](_0x3c0fbb[_0xf583('0x45')],_0x3c0fbb[_0xf583('0x46')],parseInt(_0x3c0fbb[_0xf583('0x47')],0xa)+0x1);_0x3c0fbb[_0xf583('0x37')]();}}else{logger[_0xf583('0xf')](util['format']('Project\x20%s\x20not\x20found',_0x3c0fbb[_0xf583('0x1b')]));_0x3c0fbb[_0xf583('0x50')](_0x3c0fbb[_0xf583('0x45')],_0x3c0fbb[_0xf583('0x46')],parseInt(_0x3c0fbb[_0xf583('0x47')],0xa)+0x1);_0x3c0fbb['close']();}}function main(){var _0x4bdfc9;return utilLicense[_0xf583('0x51')]()[_0xf583('0x2d')](function(_0x3aab8c){if(_0x3aab8c){if(_0x3aab8c['voice']){if(_0x3aab8c[_0xf583('0x52')]&&_0x3aab8c[_0xf583('0x52')]>0x0){logger[_0xf583('0x14')](util[_0xf583('0x17')](_0xf583('0x53'),_0x3aab8c[_0xf583('0x52')]));_0x4bdfc9=_0x3aab8c[_0xf583('0x52')];}else{logger[_0xf583('0x14')](_0xf583('0x54'));}}else{logger[_0xf583('0x14')]('[LICENSE]\x20VOICE\x20IS\x20DISABLED');_0x4bdfc9=-0x1;}}})[_0xf583('0x2e')](function(_0x3a5fc8){logger[_0xf583('0xf')](_0xf583('0x55'),_0x3a5fc8[_0xf583('0x10')]);})['finally'](function(){var _0x3365c9=require(_0xf583('0x56'))(config[_0xf583('0x6')]['port'],config[_0xf583('0x6')]['ip'],_0x4bdfc9);_0x3365c9['on']('error',errorHandler);_0x3365c9['on'](_0xf583('0x57'),listeningHandler);_0x3365c9['on'](_0xf583('0x58'),connectionHandler);_0x3365c9['on'](_0xf583('0x37'),closeHandler);});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x10ba=['client','http','request','error','message','result','catch','sendMailMessage','SendMail','jayson/promise'];(function(_0x2dd0e5,_0x195926){var _0x3e5a73=function(_0x2eb1d7){while(--_0x2eb1d7){_0x2dd0e5['push'](_0x2dd0e5['shift']());}};_0x3e5a73(++_0x195926);}(_0x10ba,0x17b));var _0xa10b=function(_0x35fabd,_0x825452){_0x35fabd=_0x35fabd-0x0;var _0x61a8ee=_0x10ba[_0x35fabd];return _0x61a8ee;};'use strict';var BPromise=require('bluebird');var jayson=require(_0xa10b('0x0'));var client=jayson[_0xa10b('0x1')][_0xa10b('0x2')]({'port':0x232b});function request(_0x3ded6c,_0x2cc492){return new BPromise(function(_0x510d5f,_0xdcb2c0){return client[_0xa10b('0x3')](_0x3ded6c,_0x2cc492)['then'](function(_0x280ecd){if(_0x280ecd['error']){return _0xdcb2c0(_0x280ecd[_0xa10b('0x4')][_0xa10b('0x5')]);}else{return _0x510d5f(_0x280ecd[_0xa10b('0x6')]);}})[_0xa10b('0x7')](function(_0x245c06){return _0xdcb2c0(_0x245c06);});});}exports[_0xa10b('0x8')]=function(_0xac0f0,_0x259827){return request(_0xa10b('0x9'),{'account':_0xac0f0,'message':_0x259827});};
\ No newline at end of file
+var _0xa4a4=['error','result','sendMailMessage','bluebird','jayson/promise','http','request','then'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xa4a4,0xf3));var _0x4a4a=function(_0x569caa,_0x5174ce){_0x569caa=_0x569caa-0x0;var _0x44cb5a=_0xa4a4[_0x569caa];return _0x44cb5a;};'use strict';var BPromise=require(_0x4a4a('0x0'));var jayson=require(_0x4a4a('0x1'));var client=jayson['client'][_0x4a4a('0x2')]({'port':0x232b});function request(_0x187fbd,_0xef9ff2){return new BPromise(function(_0x5b3116,_0xb15cd9){return client[_0x4a4a('0x3')](_0x187fbd,_0xef9ff2)[_0x4a4a('0x4')](function(_0x575ad4){if(_0x575ad4[_0x4a4a('0x5')]){return _0xb15cd9(_0x575ad4[_0x4a4a('0x5')]['message']);}else{return _0x5b3116(_0x575ad4[_0x4a4a('0x6')]);}})['catch'](function(_0x4594f5){return _0xb15cd9(_0x4594f5);});});}exports[_0x4a4a('0x7')]=function(_0x10656d,_0x25b5f1){return request('SendMail',{'account':_0x10656d,'message':_0x25b5f1});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5eca=['split','trim','slice','_localBuffer','emit','line','exports','util','_inBody','prototype','_transform','\x0d\x0a\x0d\x0a','toString','indexOf','substring','length'];(function(_0x29f124,_0x2d23b5){var _0x45f5f1=function(_0x3de098){while(--_0x3de098){_0x29f124['push'](_0x29f124['shift']());}};_0x45f5f1(++_0x2d23b5);}(_0x5eca,0x157));var _0xa5ec=function(_0x19950b,_0x53d0d7){_0x19950b=_0x19950b-0x0;var _0x3c6b41=_0x5eca[_0x19950b];return _0x3c6b41;};'use strict';var util=require(_0xa5ec('0x0'));var Transform=require('stream')['Transform'];function AGIReply(_0x110909){Transform['call'](this,_0x110909);this['_localBuffer']='';this[_0xa5ec('0x1')]=![];}util['inherits'](AGIReply,Transform);AGIReply[_0xa5ec('0x2')][_0xa5ec('0x3')]=function(_0x4689a5,_0x4f2bff,_0x21bfee){var _0xc6a63b='\x0a',_0x242ba9=['\x0a\x0a',_0xa5ec('0x4')],_0x21d42a=-0x1,_0x81a0d4=-0x1,_0x337d8b='',_0x911638=0x0,_0x6f27c5='',_0x111aa3='';this['_localBuffer']+=_0x4689a5[_0xa5ec('0x5')]();_0x6f27c5=this['_localBuffer'];if(!this[_0xa5ec('0x1')]){_0x911638=0x0;while(_0x242ba9[_0x911638]){while((_0x81a0d4=_0x6f27c5[_0xa5ec('0x6')](_0x242ba9[_0x911638]))!=-0x1){_0x337d8b=_0x242ba9[_0x911638];_0x111aa3=_0x6f27c5[_0xa5ec('0x7')](0x0,_0x81a0d4);_0x6f27c5=_0x6f27c5[_0xa5ec('0x7')](_0x81a0d4+_0x337d8b[_0xa5ec('0x8')]);var _0xfc25ab=_0x111aa3[_0xa5ec('0x9')](_0xc6a63b),_0x4a2e27=0x0,_0x2c5400={},_0x4c7de5='',_0x327b49='',_0xb8c6ec=-0x1;while(_0xfc25ab[_0x4a2e27]){_0xb8c6ec=_0xfc25ab[_0x4a2e27][_0xa5ec('0x6')](':');if(_0xb8c6ec!=-0x1){_0x4c7de5=_0xfc25ab[_0x4a2e27]['slice'](0x0,_0xb8c6ec)[_0xa5ec('0xa')]();_0x327b49=_0xfc25ab[_0x4a2e27][_0xa5ec('0xb')](_0xb8c6ec+0x1)[_0xa5ec('0xa')]();if(_0x4c7de5[_0xa5ec('0x8')]>0x0){_0x2c5400[_0x4c7de5]=_0x327b49;}}else{}_0x4a2e27++;}this['emit']('headers',_0x2c5400);this[_0xa5ec('0x1')]=!![];}_0x911638++;}this[_0xa5ec('0xc')]=_0x6f27c5;}else{while((_0x21d42a=_0x6f27c5[_0xa5ec('0x6')](_0xc6a63b))!=-0x1){_0x111aa3=_0x6f27c5[_0xa5ec('0x7')](0x0,_0x21d42a);this[_0xa5ec('0xd')](_0xa5ec('0xe'),_0x111aa3);_0x6f27c5=_0x6f27c5['substring'](_0x21d42a+_0xc6a63b['length']);}this['_localBuffer']=_0x6f27c5;}_0x21bfee();};module[_0xa5ec('0xf')]=AGIReply;
\ No newline at end of file
+var _0x9011=['_inBody','inherits','prototype','toString','indexOf','substring','length','split','slice','trim','emit','headers','line','exports','stream','Transform','call','_localBuffer'];(function(_0x3ab51d,_0x2fa01d){var _0x29a04e=function(_0x7807b0){while(--_0x7807b0){_0x3ab51d['push'](_0x3ab51d['shift']());}};_0x29a04e(++_0x2fa01d);}(_0x9011,0x1f4));var _0x1901=function(_0x1c52d6,_0x31284b){_0x1c52d6=_0x1c52d6-0x0;var _0x389a74=_0x9011[_0x1c52d6];return _0x389a74;};'use strict';var util=require('util');var Transform=require(_0x1901('0x0'))[_0x1901('0x1')];function AGIReply(_0x7db334){Transform[_0x1901('0x2')](this,_0x7db334);this[_0x1901('0x3')]='';this[_0x1901('0x4')]=![];}util[_0x1901('0x5')](AGIReply,Transform);AGIReply[_0x1901('0x6')]['_transform']=function(_0x14bb3a,_0x41bf05,_0x1f62b0){var _0x2113e0='\x0a',_0x55260b=['\x0a\x0a','\x0d\x0a\x0d\x0a'],_0x30246e=-0x1,_0x1baab6=-0x1,_0xa94186='',_0x3f2260=0x0,_0x5bab51='',_0x394fb9='';this[_0x1901('0x3')]+=_0x14bb3a[_0x1901('0x7')]();_0x5bab51=this[_0x1901('0x3')];if(!this[_0x1901('0x4')]){_0x3f2260=0x0;while(_0x55260b[_0x3f2260]){while((_0x1baab6=_0x5bab51[_0x1901('0x8')](_0x55260b[_0x3f2260]))!=-0x1){_0xa94186=_0x55260b[_0x3f2260];_0x394fb9=_0x5bab51[_0x1901('0x9')](0x0,_0x1baab6);_0x5bab51=_0x5bab51[_0x1901('0x9')](_0x1baab6+_0xa94186[_0x1901('0xa')]);var _0x1f5102=_0x394fb9[_0x1901('0xb')](_0x2113e0),_0x3a70d4=0x0,_0x34cb96={},_0x3a6248='',_0x102c5e='',_0x436175=-0x1;while(_0x1f5102[_0x3a70d4]){_0x436175=_0x1f5102[_0x3a70d4]['indexOf'](':');if(_0x436175!=-0x1){_0x3a6248=_0x1f5102[_0x3a70d4]['slice'](0x0,_0x436175)['trim']();_0x102c5e=_0x1f5102[_0x3a70d4][_0x1901('0xc')](_0x436175+0x1)[_0x1901('0xd')]();if(_0x3a6248[_0x1901('0xa')]>0x0){_0x34cb96[_0x3a6248]=_0x102c5e;}}else{}_0x3a70d4++;}this[_0x1901('0xe')](_0x1901('0xf'),_0x34cb96);this[_0x1901('0x4')]=!![];}_0x3f2260++;}this['_localBuffer']=_0x5bab51;}else{while((_0x30246e=_0x5bab51[_0x1901('0x8')](_0x2113e0))!=-0x1){_0x394fb9=_0x5bab51['substring'](0x0,_0x30246e);this[_0x1901('0xe')](_0x1901('0x10'),_0x394fb9);_0x5bab51=_0x5bab51[_0x1901('0x9')](_0x30246e+_0x2113e0['length']);}this[_0x1901('0x3')]=_0x5bab51;}_0x1f62b0();};module[_0x1901('0x11')]=AGIReply;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7ac1=['getVariableById','ShowVariable','getSquareOdbcById','ShowSquareOdbc','dsn','getUserById','ShowUser','ShowTrunk','ShowSound','getIntervalById','getSmsAccountById','CreateSmsMessage','createSquareDetailsReport','CreateSquareDetailsReport','createSquareReport','CreateSquareReport','arg_2','format','YYYY-MM-DD\x20HH:mm:ss','CreateSquareRecording','createSquareMessage','createCmContact','ShowCmHopper','ListId','CreateCmContact','getPauseById','ShowPause','agentLogin','agentPause','PauseUser','agentUnpause','agentLogout','LogoutUser','moment','lodash','util','jayson/promise','client','then','error','message','getSquareProject','ShowSquareProject','MailServerOut','Smtp','name','email','getSquareProjectById','getVoiceQueueById','ShowVoiceQueue'];(function(_0x8c43de,_0x90ff31){var _0xa6591b=function(_0x469716){while(--_0x469716){_0x8c43de['push'](_0x8c43de['shift']());}};_0xa6591b(++_0x90ff31);}(_0x7ac1,0x17f));var _0x17ac=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0x7ac1[_0xa464c9];return _0x3d73c4;};'use strict';var BPromise=require('bluebird');var moment=require(_0x17ac('0x0'));var _=require(_0x17ac('0x1'));var util=require(_0x17ac('0x2'));var jayson=require(_0x17ac('0x3'));var client=jayson[_0x17ac('0x4')]['http']({'port':0x2329});function request(_0x1b953a,_0x1642bb){return new BPromise(function(_0x511bf5,_0x3704a0){return client['request'](_0x1b953a,_0x1642bb)[_0x17ac('0x5')](function(_0x137e12){if(_0x137e12['error']){return _0x3704a0(_0x137e12[_0x17ac('0x6')][_0x17ac('0x7')]);}else{return _0x511bf5(_0x137e12['result']);}})['catch'](function(_0x2fed1b){return _0x3704a0(_0x2fed1b);});});}exports[_0x17ac('0x8')]=function(_0x14af62){return request(_0x17ac('0x9'),{'options':{'raw':![],'where':{'name':_0x14af62},'attributes':['production']}});};exports['getMailAccountById']=function(_0x28fe55){return request('ShowMailAccount',{'options':{'raw':![],'where':{'id':_0x28fe55},'include':[{'model':_0x17ac('0xa'),'as':_0x17ac('0xb')}],'attributes':['id',_0x17ac('0xc'),_0x17ac('0xd')]}});};exports[_0x17ac('0xe')]=function(_0x379c51){return request(_0x17ac('0x9'),{'options':{'where':{'id':_0x379c51},'attributes':[_0x17ac('0xc')]}});};exports[_0x17ac('0xf')]=function(_0x39e362){return request(_0x17ac('0x10'),{'options':{'where':{'id':_0x39e362},'attributes':['name']}});};exports[_0x17ac('0x11')]=function(_0x2c7f17){return request(_0x17ac('0x12'),{'options':{'where':{'id':_0x2c7f17},'attributes':[_0x17ac('0xc')]}});};exports[_0x17ac('0x13')]=function(_0x742fbd){return request(_0x17ac('0x14'),{'options':{'where':{'id':_0x742fbd},'attributes':[_0x17ac('0x15')]}});};exports[_0x17ac('0x16')]=function(_0x30e9bf){return request(_0x17ac('0x17'),{'options':{'where':{'id':_0x30e9bf},'attributes':['name']}});};exports['getTrunkById']=function(_0x3ecd14){return request(_0x17ac('0x18'),{'options':{'where':{'id':_0x3ecd14},'attributes':[_0x17ac('0xc')]}});};exports['getSoundById']=function(_0x18edd5){return request(_0x17ac('0x19'),{'options':{'where':{'id':_0x18edd5},'attributes':['save_name']}});};exports[_0x17ac('0x1a')]=function(_0x432a1b){return request('ShowInterval',{'options':{'raw':![],'where':{'id':_0x432a1b},'include':[{'model':'Interval','as':'Intervals'}]}});};exports[_0x17ac('0x1b')]=function(_0x3fefcd){return request('ShowSmsAccount',{'options':{'where':{'id':_0x3fefcd},'attributes':['id',_0x17ac('0xc')]}});};exports['createSmsMessage']=function(_0x1711bd){return request(_0x17ac('0x1c'),{'body':_0x1711bd});};exports[_0x17ac('0x1d')]=function(_0x328393){return request(_0x17ac('0x1e'),{'body':_0x328393});};exports[_0x17ac('0x1f')]=function(_0x4a6e41){return request(_0x17ac('0x20'),{'body':_['merge'](_0x4a6e41,{'project_name':_0x4a6e41['arg_1'],'prev_project_name':_0x4a6e41[_0x17ac('0x21')]||'','is_subproject':_0x4a6e41['arg_2']?!![]:![],'leaveAt':moment()[_0x17ac('0x22')](_0x17ac('0x23'))})});};exports['createSquareRecording']=function(_0x2fe647){return request(_0x17ac('0x24'),{'body':_0x2fe647});};exports[_0x17ac('0x25')]=function(_0x159983){return request('CreateSquareMessage',{'body':_0x159983});};exports[_0x17ac('0x26')]=function(_0x4b8541){return request(_0x17ac('0x27'),{'options':{'raw':![],'where':{'phone':_0x4b8541['phone'],'ListId':_0x4b8541[_0x17ac('0x28')]}}})[_0x17ac('0x5')](function(_0x51a493){if(_0x51a493){return _0x51a493;}return request(_0x17ac('0x29'),{'body':_0x4b8541});});};exports[_0x17ac('0x2a')]=function(_0x451c51){return request(_0x17ac('0x2b'),{'options':{'where':{'id':_0x451c51},'attributes':['name']}});};exports[_0x17ac('0x2c')]=function(_0x3a2d59,_0x53f5e9){return request('LoginUser',{'body':{'interface':_0x53f5e9},'options':{'where':_0x3a2d59}});};exports[_0x17ac('0x2d')]=function(_0x245a9b,_0x393dbb,_0xc07e3f){return request(_0x17ac('0x2e'),{'body':{'type':_0x393dbb,'uniqueid':_0xc07e3f},'options':{'where':_0x245a9b}});};exports[_0x17ac('0x2f')]=function(_0x4cf5e0){return request('UnpauseUser',{'body':{},'options':{'where':_0x4cf5e0}});};exports[_0x17ac('0x30')]=function(_0x55b7fd){return request(_0x17ac('0x31'),{'body':{},'options':{'where':_0x55b7fd}});};
\ No newline at end of file
+var _0x570a=['dsn','getUserById','getTrunkById','getSoundById','ShowSound','save_name','getIntervalById','Interval','Intervals','getSmsAccountById','CreateSmsMessage','CreateSquareDetailsReport','createSquareReport','merge','arg_1','arg_2','format','YYYY-MM-DD\x20HH:mm:ss','createSquareRecording','createSquareMessage','CreateSquareMessage','createCmContact','ShowCmHopper','phone','CreateCmContact','getPauseById','agentLogin','LoginUser','PauseUser','agentUnpause','UnpauseUser','agentLogout','LogoutUser','bluebird','moment','util','jayson/promise','client','http','request','error','message','result','catch','getSquareProject','ShowSquareProject','getMailAccountById','ShowMailAccount','MailServerOut','Smtp','email','getSquareProjectById','name','getVariableById','ShowVariable','getSquareOdbcById','ShowSquareOdbc'];(function(_0x539709,_0x2c9edd){var _0x73cc7e=function(_0x5d20ea){while(--_0x5d20ea){_0x539709['push'](_0x539709['shift']());}};_0x73cc7e(++_0x2c9edd);}(_0x570a,0x105));var _0xa570=function(_0x459a2f,_0x5dc949){_0x459a2f=_0x459a2f-0x0;var _0x36dbcb=_0x570a[_0x459a2f];return _0x36dbcb;};'use strict';var BPromise=require(_0xa570('0x0'));var moment=require(_0xa570('0x1'));var _=require('lodash');var util=require(_0xa570('0x2'));var jayson=require(_0xa570('0x3'));var client=jayson[_0xa570('0x4')][_0xa570('0x5')]({'port':0x2329});function request(_0x406b95,_0x1401a4){return new BPromise(function(_0x5c5076,_0x5235a2){return client[_0xa570('0x6')](_0x406b95,_0x1401a4)['then'](function(_0x1991b7){if(_0x1991b7[_0xa570('0x7')]){return _0x5235a2(_0x1991b7[_0xa570('0x7')][_0xa570('0x8')]);}else{return _0x5c5076(_0x1991b7[_0xa570('0x9')]);}})[_0xa570('0xa')](function(_0x1ace8f){return _0x5235a2(_0x1ace8f);});});}exports[_0xa570('0xb')]=function(_0x3f249d){return request(_0xa570('0xc'),{'options':{'raw':![],'where':{'name':_0x3f249d},'attributes':['production']}});};exports[_0xa570('0xd')]=function(_0x1af2b8){return request(_0xa570('0xe'),{'options':{'raw':![],'where':{'id':_0x1af2b8},'include':[{'model':_0xa570('0xf'),'as':_0xa570('0x10')}],'attributes':['id','name',_0xa570('0x11')]}});};exports[_0xa570('0x12')]=function(_0x1cf17b){return request(_0xa570('0xc'),{'options':{'where':{'id':_0x1cf17b},'attributes':['name']}});};exports['getVoiceQueueById']=function(_0x51bd08){return request('ShowVoiceQueue',{'options':{'where':{'id':_0x51bd08},'attributes':[_0xa570('0x13')]}});};exports[_0xa570('0x14')]=function(_0x5f0858){return request(_0xa570('0x15'),{'options':{'where':{'id':_0x5f0858},'attributes':[_0xa570('0x13')]}});};exports[_0xa570('0x16')]=function(_0x45c4dc){return request(_0xa570('0x17'),{'options':{'where':{'id':_0x45c4dc},'attributes':[_0xa570('0x18')]}});};exports[_0xa570('0x19')]=function(_0x43b7f1){return request('ShowUser',{'options':{'where':{'id':_0x43b7f1},'attributes':['name']}});};exports[_0xa570('0x1a')]=function(_0x932dc){return request('ShowTrunk',{'options':{'where':{'id':_0x932dc},'attributes':[_0xa570('0x13')]}});};exports[_0xa570('0x1b')]=function(_0x5ec293){return request(_0xa570('0x1c'),{'options':{'where':{'id':_0x5ec293},'attributes':[_0xa570('0x1d')]}});};exports[_0xa570('0x1e')]=function(_0x3dedd0){return request('ShowInterval',{'options':{'raw':![],'where':{'id':_0x3dedd0},'include':[{'model':_0xa570('0x1f'),'as':_0xa570('0x20')}]}});};exports[_0xa570('0x21')]=function(_0x43a719){return request('ShowSmsAccount',{'options':{'where':{'id':_0x43a719},'attributes':['id',_0xa570('0x13')]}});};exports['createSmsMessage']=function(_0x2536c8){return request(_0xa570('0x22'),{'body':_0x2536c8});};exports['createSquareDetailsReport']=function(_0x5385d1){return request(_0xa570('0x23'),{'body':_0x5385d1});};exports[_0xa570('0x24')]=function(_0x30f6a6){return request('CreateSquareReport',{'body':_[_0xa570('0x25')](_0x30f6a6,{'project_name':_0x30f6a6[_0xa570('0x26')],'prev_project_name':_0x30f6a6['arg_2']||'','is_subproject':_0x30f6a6[_0xa570('0x27')]?!![]:![],'leaveAt':moment()[_0xa570('0x28')](_0xa570('0x29'))})});};exports[_0xa570('0x2a')]=function(_0x54abcb){return request('CreateSquareRecording',{'body':_0x54abcb});};exports[_0xa570('0x2b')]=function(_0x57901a){return request(_0xa570('0x2c'),{'body':_0x57901a});};exports[_0xa570('0x2d')]=function(_0x460386){return request(_0xa570('0x2e'),{'options':{'raw':![],'where':{'phone':_0x460386[_0xa570('0x2f')],'ListId':_0x460386['ListId']}}})['then'](function(_0x5f22aa){if(_0x5f22aa){return _0x5f22aa;}return request(_0xa570('0x30'),{'body':_0x460386});});};exports[_0xa570('0x31')]=function(_0x4b9ab4){return request('ShowPause',{'options':{'where':{'id':_0x4b9ab4},'attributes':[_0xa570('0x13')]}});};exports[_0xa570('0x32')]=function(_0x3f01,_0xafe42e){return request(_0xa570('0x33'),{'body':{'interface':_0xafe42e},'options':{'where':_0x3f01}});};exports['agentPause']=function(_0x4d17dc,_0x5cb277,_0x2b81eb){return request(_0xa570('0x34'),{'body':{'type':_0x5cb277,'uniqueid':_0x2b81eb},'options':{'where':_0x4d17dc}});};exports[_0xa570('0x35')]=function(_0x30ed08){return request(_0xa570('0x36'),{'body':{},'options':{'where':_0x30ed08}});};exports[_0xa570('0x37')]=function(_0x48af27){return request(_0xa570('0x38'),{'body':{},'options':{'where':_0x48af27}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x56da=['exports','./polly'];(function(_0xfadccd,_0x290136){var _0x482ac4=function(_0x315460){while(--_0x315460){_0xfadccd['push'](_0xfadccd['shift']());}};_0x482ac4(++_0x290136);}(_0x56da,0x119));var _0xa56d=function(_0x494a42,_0x1f2103){_0x494a42=_0x494a42-0x0;var _0x254792=_0x56da[_0x494a42];return _0x254792;};var polly=require(_0xa56d('0x0'));var lex=require('./lex');module[_0xa56d('0x1')]={'polly':polly,'lex':lex};
\ No newline at end of file
+var _0xadf0=['exports','./lex'];(function(_0x1a942d,_0x48ec62){var _0x1797e9=function(_0x3c447c){while(--_0x3c447c){_0x1a942d['push'](_0x1a942d['shift']());}};_0x1797e9(++_0x48ec62);}(_0xadf0,0x12d));var _0x0adf=function(_0x480433,_0x2bc8ba){_0x480433=_0x480433-0x0;var _0x23c077=_0xadf0[_0x480433];return _0x23c077;};var polly=require('./polly');var lex=require(_0x0adf('0x0'));module[_0x0adf('0x1')]={'polly':polly,'lex':lex};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa571=['exports','./lib/api'];(function(_0x1460f6,_0x59051a){var _0x46ce94=function(_0x1c3ddf){while(--_0x1c3ddf){_0x1460f6['push'](_0x1460f6['shift']());}};_0x46ce94(++_0x59051a);}(_0xa571,0x107));var _0x1a57=function(_0x22093a,_0xa7acf1){_0x22093a=_0x22093a-0x0;var _0x2f4989=_0xa571[_0x22093a];return _0x2f4989;};'use strict';var lex=require(_0x1a57('0x0'));module[_0x1a57('0x1')]=function(_0x206f1b,_0x1067d9,_0x48485e,_0x1a071f,_0x2eebaa,_0x4d5f7a){return lex(_0x206f1b,_0x1067d9,_0x48485e,_0x1a071f,_0x2eebaa,_0x4d5f7a);};
\ No newline at end of file
+var _0x668b=['./lib/api','exports'];(function(_0x57b54c,_0x54ce0d){var _0x59cc19=function(_0xa33bc6){while(--_0xa33bc6){_0x57b54c['push'](_0x57b54c['shift']());}};_0x59cc19(++_0x54ce0d);}(_0x668b,0x140));var _0xb668=function(_0x4f8d61,_0x29eff0){_0x4f8d61=_0x4f8d61-0x0;var _0x3bc078=_0x668b[_0x4f8d61];return _0x3bc078;};'use strict';var lex=require(_0xb668('0x0'));module[_0xb668('0x1')]=function(_0x51555f,_0x15fbea,_0x2c30c1,_0x49a53b,_0x336ba4,_0x5e2e83){return lex(_0x51555f,_0x15fbea,_0x2c30c1,_0x49a53b,_0x336ba4,_0x5e2e83);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['LexRuntime','bluebird','aws-sdk','slots','hasOwnProperty'];(function(_0x5127d9,_0x7c67a5){var _0x45b17a=function(_0x140a75){while(--_0x140a75){_0x5127d9['push'](_0x5127d9['shift']());}};_0x45b17a(++_0x7c67a5);}(_0xa9e0,0x123));var _0x0a9e=function(_0xbb091,_0x3fe7ee){_0xbb091=_0xbb091-0x0;var _0x467a04=_0xa9e0[_0xbb091];return _0x467a04;};'use strict';var BPromise=require(_0x0a9e('0x0'));var AWS=require(_0x0a9e('0x1'));function lexResult(_0x29929c,_0x5dd881){return new BPromise(function(_0x550fbc,_0x18d5c9){_0x29929c['postText'](_0x5dd881,function(_0x333808,_0x432180){if(_0x333808){_0x18d5c9(_0x333808);}if(_0x432180[_0x0a9e('0x2')]){for(const _0x991246 in _0x432180[_0x0a9e('0x2')]){if(_0x432180['slots'][_0x0a9e('0x3')](_0x991246)){var _0x441e3a=_0x432180[_0x0a9e('0x2')][_0x991246];_0x432180['slot_'+_0x991246]=_0x441e3a;}}}_0x550fbc(_0x432180);});});}module['exports']=function(_0xe42b77,_0x56465b,_0x52cace,_0x39753a,_0xf81284,_0x307b3e){var _0x3ab53f=new AWS[(_0x0a9e('0x4'))]({'accessKeyId':_0x56465b,'secretAccessKey':_0x52cace,'region':_0x39753a});var _0xbd1168={'botAlias':'$LATEST','botName':_0x307b3e,'inputText':_0xf81284,'userId':_0xe42b77};return lexResult(_0x3ab53f,_0xbd1168);};
\ No newline at end of file
+var _0xa9e0=['LexRuntime','bluebird','aws-sdk','slots','hasOwnProperty'];(function(_0x273b6b,_0x54cac7){var _0x40d160=function(_0x454bf2){while(--_0x454bf2){_0x273b6b['push'](_0x273b6b['shift']());}};_0x40d160(++_0x54cac7);}(_0xa9e0,0x123));var _0x0a9e=function(_0x56482c,_0x16118d){_0x56482c=_0x56482c-0x0;var _0x5aae7a=_0xa9e0[_0x56482c];return _0x5aae7a;};'use strict';var BPromise=require(_0x0a9e('0x0'));var AWS=require(_0x0a9e('0x1'));function lexResult(_0x29929c,_0x5dd881){return new BPromise(function(_0x550fbc,_0x18d5c9){_0x29929c['postText'](_0x5dd881,function(_0x333808,_0x432180){if(_0x333808){_0x18d5c9(_0x333808);}if(_0x432180[_0x0a9e('0x2')]){for(const _0x991246 in _0x432180[_0x0a9e('0x2')]){if(_0x432180['slots'][_0x0a9e('0x3')](_0x991246)){var _0x441e3a=_0x432180[_0x0a9e('0x2')][_0x991246];_0x432180['slot_'+_0x991246]=_0x441e3a;}}}_0x550fbc(_0x432180);});});}module['exports']=function(_0xe42b77,_0x56465b,_0x52cace,_0x39753a,_0xf81284,_0x307b3e){var _0x3ab53f=new AWS[(_0x0a9e('0x4'))]({'accessKeyId':_0x56465b,'secretAccessKey':_0x52cace,'region':_0x39753a});var _0xbd1168={'botAlias':'$LATEST','botName':_0x307b3e,'inputText':_0xf81284,'userId':_0xe42b77};return lexResult(_0x3ab53f,_0xbd1168);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x574f=['./lib/api','exports'];(function(_0x34e3e1,_0x34ced0){var _0x5a1c0b=function(_0x59a3f9){while(--_0x59a3f9){_0x34e3e1['push'](_0x34e3e1['shift']());}};_0x5a1c0b(++_0x34ced0);}(_0x574f,0xfc));var _0xf574=function(_0x16f8e3,_0x5b4d86){_0x16f8e3=_0x16f8e3-0x0;var _0x35f224=_0x574f[_0x16f8e3];return _0x35f224;};'use strict';var polly=require(_0xf574('0x0'));module[_0xf574('0x1')]=function(_0x435bae,_0x28731f,_0x4fc387,_0x4e7d68,_0x160442,_0x289e0a,_0x1501ff){return polly(_0x435bae,_0x28731f,_0x4fc387,_0x4e7d68,_0x160442,_0x289e0a,_0x1501ff);};
\ No newline at end of file
+'use strict';var polly=require('./lib/api');module['exports']=function(_0x5bd894,_0x39a7b0,_0x433d80,_0x48c9c9,_0x2e8655,_0x1c63ed,_0x47e2fa){return polly(_0x5bd894,_0x39a7b0,_0x433d80,_0x48c9c9,_0x2e8655,_0x1c63ed,_0x47e2fa);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6c89=['Invalid\x20data\x20response\x20from\x20aws\x20Polly!','exports','Polly','text','mp3','bluebird','aws-sdk','synthesizeSpeech','AudioStream','writeFile'];(function(_0x33621e,_0x2817de){var _0x238eed=function(_0x3907d2){while(--_0x3907d2){_0x33621e['push'](_0x33621e['shift']());}};_0x238eed(++_0x2817de);}(_0x6c89,0x87));var _0x96c8=function(_0x12c773,_0x50b461){_0x12c773=_0x12c773-0x0;var _0x213f9b=_0x6c89[_0x12c773];return _0x213f9b;};'use strict';var fs=require('fs');var path=require('path');var BPromise=require(_0x96c8('0x0'));var rs=require('randomstring');var AWS=require(_0x96c8('0x1'));function pollyResult(_0x39dbf7,_0x4ca5b0,_0x2c0772){return new BPromise(function(_0x1761eb,_0x401cac){_0x39dbf7[_0x96c8('0x2')](_0x4ca5b0,function(_0x54cc2f,_0x42a9ed){if(_0x54cc2f){_0x401cac(_0x54cc2f);}else if(_0x42a9ed){if(_0x42a9ed[_0x96c8('0x3')]instanceof Buffer){fs[_0x96c8('0x4')](_0x2c0772,_0x42a9ed['AudioStream'],function(_0xff68b5){if(_0xff68b5){_0x401cac(_0xff68b5);}else{_0x1761eb();}});}else{_0x401cac(new Error(_0x96c8('0x5')));}}else{_0x401cac(new Error('No\x20data\x20response\x20from\x20aws\x20Polly!'));}});});}module[_0x96c8('0x6')]=function(_0x15b641,_0x5d1517,_0x310d92,_0x4b8573,_0x4e14fd,_0x4648ec,_0x396877){var _0xcfc0b=new AWS[(_0x96c8('0x7'))]({'accessKeyId':_0x15b641,'secretAccessKey':_0x5d1517,'region':_0x310d92});var _0x4ceb86={'Text':_0x4e14fd,'TextType':_0x4648ec||_0x96c8('0x8'),'OutputFormat':_0x96c8('0x9'),'VoiceId':_0x4b8573};return pollyResult(_0xcfc0b,_0x4ceb86,_0x396877);};
\ No newline at end of file
+var _0xc6ad=['text','mp3','path','bluebird','randomstring','aws-sdk','synthesizeSpeech','AudioStream','writeFile','Invalid\x20data\x20response\x20from\x20aws\x20Polly!','exports','Polly'];(function(_0x5ecadc,_0x1cf9f1){var _0x565037=function(_0x22908b){while(--_0x22908b){_0x5ecadc['push'](_0x5ecadc['shift']());}};_0x565037(++_0x1cf9f1);}(_0xc6ad,0x1b2));var _0xdc6a=function(_0x235a47,_0x50d45e){_0x235a47=_0x235a47-0x0;var _0x5227eb=_0xc6ad[_0x235a47];return _0x5227eb;};'use strict';var fs=require('fs');var path=require(_0xdc6a('0x0'));var BPromise=require(_0xdc6a('0x1'));var rs=require(_0xdc6a('0x2'));var AWS=require(_0xdc6a('0x3'));function pollyResult(_0x519e72,_0x95e66a,_0x5e3d7c){return new BPromise(function(_0x36e42b,_0x52e4d8){_0x519e72[_0xdc6a('0x4')](_0x95e66a,function(_0x586e9a,_0x15be41){if(_0x586e9a){_0x52e4d8(_0x586e9a);}else if(_0x15be41){if(_0x15be41[_0xdc6a('0x5')]instanceof Buffer){fs[_0xdc6a('0x6')](_0x5e3d7c,_0x15be41['AudioStream'],function(_0x2e77e6){if(_0x2e77e6){_0x52e4d8(_0x2e77e6);}else{_0x36e42b();}});}else{_0x52e4d8(new Error(_0xdc6a('0x7')));}}else{_0x52e4d8(new Error('No\x20data\x20response\x20from\x20aws\x20Polly!'));}});});}module[_0xdc6a('0x8')]=function(_0x2ce4c7,_0x25a8d3,_0x58af89,_0x48d5de,_0x3a4ead,_0x39c91a,_0x56863){var _0x331cd4=new AWS[(_0xdc6a('0x9'))]({'accessKeyId':_0x2ce4c7,'secretAccessKey':_0x25a8d3,'region':_0x58af89});var _0x53ea0={'Text':_0x3a4ead,'TextType':_0x39c91a||_0xdc6a('0xa'),'OutputFormat':_0xdc6a('0xb'),'VoiceId':_0x48d5de};return pollyResult(_0x331cd4,_0x53ea0,_0x56863);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8efb=['./lib/api'];(function(_0x120b7a,_0x12aaf2){var _0xc0961a=function(_0x201928){while(--_0x201928){_0x120b7a['push'](_0x120b7a['shift']());}};_0xc0961a(++_0x12aaf2);}(_0x8efb,0x121));var _0xb8ef=function(_0x71743d,_0x43f1bf){_0x71743d=_0x71743d-0x0;var _0x5f380b=_0x8efb[_0x71743d];return _0x5f380b;};'use strict';var asr=require(_0xb8ef('0x0'));module['exports']=function(_0x5aaf9f,_0x53ee35,_0x236aa8,_0xab2ac3){return asr(_0x5aaf9f,_0x53ee35,_0x236aa8);};
\ No newline at end of file
+var _0x855b=['./lib/api','exports'];(function(_0x57d06d,_0x2f1115){var _0x50312b=function(_0x597cd2){while(--_0x597cd2){_0x57d06d['push'](_0x57d06d['shift']());}};_0x50312b(++_0x2f1115);}(_0x855b,0x1bc));var _0xb855=function(_0x10afad,_0x17244e){_0x10afad=_0x10afad-0x0;var _0x3aa3ef=_0x855b[_0x10afad];return _0x3aa3ef;};'use strict';var asr=require(_0xb855('0x0'));module[_0xb855('0x1')]=function(_0x271da3,_0x1936bd,_0x425a24,_0x48946d){return asr(_0x271da3,_0x1936bd,_0x425a24);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4157=['toString','base64','POST','/v1/speech:recognize?key=','LINEAR16','url','bluebird','https://speech.googleapis.com','exports','string','length','filepath\x20should\x20be\x20a\x20string','undefined','readFileSync'];(function(_0xa0be12,_0x33d075){var _0x21857f=function(_0x1898b7){while(--_0x1898b7){_0xa0be12['push'](_0xa0be12['shift']());}};_0x21857f(++_0x33d075);}(_0x4157,0xf3));var _0x7415=function(_0x2bd679,_0x2057f5){_0x2bd679=_0x2bd679-0x0;var _0x3af993=_0x4157[_0x2bd679];return _0x3af993;};'use strict';var url=require(_0x7415('0x0'));var BPromise=require(_0x7415('0x1'));var fs=require('fs');var host=_0x7415('0x2');module[_0x7415('0x3')]=function(_0x4509ca,_0x4c49e7,_0x3efb60){return new BPromise(function(_0x3bef76,_0x311038){var _0x341b12;if(typeof _0x4509ca!==_0x7415('0x4')||_0x4509ca[_0x7415('0x5')]===0x0){return _0x311038(_0x7415('0x6'));}if(typeof _0x4c49e7!==_0x7415('0x4')||_0x4c49e7[_0x7415('0x5')]===0x0){return _0x311038('key\x20should\x20be\x20a\x20string');}if(typeof _0x3efb60!==_0x7415('0x7')&&(typeof _0x3efb60!=='string'||_0x3efb60[_0x7415('0x5')]===0x0)){return _0x311038('lang\x20should\x20be\x20a\x20string');}try{_0x341b12=fs[_0x7415('0x8')](_0x4509ca)[_0x7415('0x9')](_0x7415('0xa'));}catch(_0xb023fa){return _0x311038(_0xb023fa);}return _0x3bef76({'method':_0x7415('0xb'),'uri':host+_0x7415('0xc')+_0x4c49e7,'body':{'config':{'encoding':_0x7415('0xd'),'sampleRateHertz':'8000','languageCode':_0x3efb60},'audio':{'content':_0x341b12}},'json':!![]});});};
\ No newline at end of file
+var _0x04b8=['base64','POST','LINEAR16','8000','bluebird','exports','string','length','key\x20should\x20be\x20a\x20string','readFileSync','toString'];(function(_0x4cf677,_0x27c711){var _0x5a634c=function(_0x1a23de){while(--_0x1a23de){_0x4cf677['push'](_0x4cf677['shift']());}};_0x5a634c(++_0x27c711);}(_0x04b8,0x159));var _0x804b=function(_0xe6a680,_0x371148){_0xe6a680=_0xe6a680-0x0;var _0x4a2864=_0x04b8[_0xe6a680];return _0x4a2864;};'use strict';var url=require('url');var BPromise=require(_0x804b('0x0'));var fs=require('fs');var host='https://speech.googleapis.com';module[_0x804b('0x1')]=function(_0xa6a605,_0x5ed0fc,_0x1a52ec){return new BPromise(function(_0x1cd188,_0x5857dc){var _0x3530f6;if(typeof _0xa6a605!==_0x804b('0x2')||_0xa6a605[_0x804b('0x3')]===0x0){return _0x5857dc('filepath\x20should\x20be\x20a\x20string');}if(typeof _0x5ed0fc!==_0x804b('0x2')||_0x5ed0fc[_0x804b('0x3')]===0x0){return _0x5857dc(_0x804b('0x4'));}if(typeof _0x1a52ec!=='undefined'&&(typeof _0x1a52ec!==_0x804b('0x2')||_0x1a52ec[_0x804b('0x3')]===0x0)){return _0x5857dc('lang\x20should\x20be\x20a\x20string');}try{_0x3530f6=fs[_0x804b('0x5')](_0xa6a605)[_0x804b('0x6')](_0x804b('0x7'));}catch(_0x22c59a){return _0x5857dc(_0x22c59a);}return _0x1cd188({'method':_0x804b('0x8'),'uri':host+'/v1/speech:recognize?key='+_0x5ed0fc,'body':{'config':{'encoding':_0x804b('0x9'),'sampleRateHertz':_0x804b('0xa'),'languageCode':_0x1a52ec},'audio':{'content':_0x3530f6}},'json':!![]});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x056a=['./asr','exports'];(function(_0x284bc3,_0x22dffe){var _0x41ac81=function(_0x47031f){while(--_0x47031f){_0x284bc3['push'](_0x284bc3['shift']());}};_0x41ac81(++_0x22dffe);}(_0x056a,0x158));var _0xa056=function(_0x5a9a08,_0x5edb77){_0x5a9a08=_0x5a9a08-0x0;var _0x4983e4=_0x056a[_0x5a9a08];return _0x4983e4;};var asr=require(_0xa056('0x0'));module[_0xa056('0x1')]={'asr':asr};
\ No newline at end of file
+var _0xc3a7=['./asr','exports'];(function(_0x4f3126,_0x11d03e){var _0x2a89b5=function(_0x424121){while(--_0x424121){_0x4f3126['push'](_0x4f3126['shift']());}};_0x2a89b5(++_0x11d03e);}(_0xc3a7,0x1aa));var _0x7c3a=function(_0x903228,_0x42c429){_0x903228=_0x903228-0x0;var _0xcec81d=_0xc3a7[_0x903228];return _0xcec81d;};var asr=require(_0x7c3a('0x0'));module[_0x7c3a('0x1')]={'asr':asr};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe498=['parse\x20response\x20failed:\x0a','data','.mp3','goggleTTS\x20path','googleASR','asr','uri','results','map','alternatives','transcript','join','confidence','googleASR\x20transcription','googleASR\x20confidence','catch','[%s]\x20%s:%s','message','googleDialogflow','textRequest','result','resolvedQuery','actionIncomplete','fulfillment','score','status','code','metadata','isFallbackIntent','googleDialogflowV2','replace','SessionsClient','detectIntent','length','Dialogflow\x20V2\x20response:','queryResult','action','allRequiredParamsPresent','diagnosticInfo','fields','boolValue','intent','name','displayName','isFallback','queryText','responseId','intentDetectionConfidence','tildeASR','Tilde\x20ASR\x20transcription','Tilde\x20ASR\x20confidence','awsPolly','lex','ispeechTTS','format','%s?apikey=%s&action=convert&text=%s&voice=%s&speed=%s&format=mp3','ispeechASR','%s?apikey=%s&action=recognize&locale=%s&content-type=audio/x-wav&audio=%s&%s','sestekNDA','channelData','CustomAction','CustomActionData','AudioFromTts','Data','audiofile','dirName','apiai-promise','dialogflow','http','https','md5','request-promise','sox','url','parse','util','./aws','./google','../../../config/logger','agi','https://api.ispeech.org/api/rest','protocol','host','WHAT_EVER','get','statusCode','error','request\x20to\x20','\x20failed,\x20status\x20code\x20=\x20','statusMessage','createWriteStream','info','finish\x20download\x20file','close','unlink','download\x20error','pipe','end','https:','path','transcode','wav','error\x20convert','finish\x20to\x20convert','start','resolve','tmp','generate','.wav','writeFileSync','base64','chmodSync','777','split','readFileSync','toString','googleCloudTTS','?key=','ssml','input','voice','audioConfig','text:synthesize','POST','then','from','audioContent','writeFile','googleCloudTTS\x20path','googleTTS','https://translate.google.com/_/TranslateWebserverUi/data/batchexecute','utf8','application/x-www-form-urlencoded','f.req=','stringify','jQ1olc','null','slice','lang\x20\x22','\x22\x20might\x20not\x20exist'];(function(_0xc5796f,_0x26e2a5){var _0x53bf1f=function(_0x1ff1fe){while(--_0x1ff1fe){_0xc5796f['push'](_0xc5796f['shift']());}};_0x53bf1f(++_0x26e2a5);}(_0xe498,0xce));var _0x8e49=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0xe498[_0x321bb2];return _0x9c12ed;};'use strict';var apiai=require(_0x8e49('0x0'));var BPromise=require('bluebird');var dialogflow=require(_0x8e49('0x1'));var fs=require('fs');var http=require(_0x8e49('0x2'));var https=require(_0x8e49('0x3'));var md5=require(_0x8e49('0x4'));var path=require('path');var querystring=require('querystring');var rp=require(_0x8e49('0x5'));var rs=require('randomstring');var sox=require(_0x8e49('0x6'));var tts=require('google-tts-api');var urlParse=require(_0x8e49('0x7'))[_0x8e49('0x8')];var util=require(_0x8e49('0x9'));var aws=require(_0x8e49('0xa'));var google=require(_0x8e49('0xb'));var sestek=require('./sestek');var tilde=require('./tilde');var logger=require(_0x8e49('0xc'))(_0x8e49('0xd'));var ISPEECH_API=_0x8e49('0xe');function downloadFile(_0x3ed0ff,_0x44ee26){return new BPromise(function(_0x2bc68e,_0x13b884){var _0x32e22c=urlParse(_0x3ed0ff);var _0x59f385=_0x32e22c[_0x8e49('0xf')]==='https:'?https:http;var _0x4c9349={'host':_0x32e22c[_0x8e49('0x10')],'path':_0x32e22c['path'],'headers':{'user-agent':_0x8e49('0x11')}};_0x59f385[_0x8e49('0x12')](_0x4c9349,function(_0x51b22e){if(_0x51b22e[_0x8e49('0x13')]!==0xc8){logger[_0x8e49('0x14')](_0x8e49('0x15')+_0x3ed0ff+_0x8e49('0x16')+_0x51b22e[_0x8e49('0x13')]+'\x20('+_0x51b22e[_0x8e49('0x17')]+')');_0x13b884(new Error(_0x8e49('0x15')+_0x3ed0ff+_0x8e49('0x16')+_0x51b22e[_0x8e49('0x13')]+'\x20('+_0x51b22e[_0x8e49('0x17')]+')'));return;}var _0xf6427f=fs[_0x8e49('0x18')](_0x44ee26);_0xf6427f['on']('finish',function(){logger[_0x8e49('0x19')](_0x8e49('0x1a'));_0xf6427f[_0x8e49('0x1b')](_0x2bc68e);});_0xf6427f['on'](_0x8e49('0x14'),function(_0x4fc6a9){fs[_0x8e49('0x1c')](_0x44ee26);logger[_0x8e49('0x14')](_0x8e49('0x1d'),_0x4fc6a9);_0x13b884(_0x4fc6a9);});_0x51b22e[_0x8e49('0x1e')](_0xf6427f);})['on'](_0x8e49('0x14'),function(_0x49ebf3){logger[_0x8e49('0x14')](_0x49ebf3);_0x13b884(_0x49ebf3);})[_0x8e49('0x1f')]();});}function uploadFile(_0x14ae54){return new BPromise(function(_0x189c2a,_0x1a2fd7){var _0x3f129c=urlParse(_0x14ae54);var _0x3097e4=_0x3f129c['protocol']===_0x8e49('0x20')?https:http;var _0x12fa85={'host':_0x3f129c[_0x8e49('0x10')],'path':_0x3f129c[_0x8e49('0x21')],'headers':{'user-agent':_0x8e49('0x11')}};_0x3097e4[_0x8e49('0x12')](_0x12fa85,function(_0x3643e8){if(_0x3643e8['statusCode']!==0xc8){_0x1a2fd7(new Error('request\x20to\x20'+_0x14ae54+_0x8e49('0x16')+_0x3643e8[_0x8e49('0x13')]+'\x20('+_0x3643e8[_0x8e49('0x17')]+')'));return;}var _0x4a3aa8='';_0x3643e8['on']('data',function(_0x10bb9f){_0x4a3aa8+=_0x10bb9f;});_0x3643e8['on'](_0x8e49('0x1f'),function(){_0x189c2a(_0x4a3aa8);});})['on']('error',function(_0x272e18){_0x1a2fd7(_0x272e18);})[_0x8e49('0x1f')]();});}function convertFile(_0x5084ae,_0x275100){return new BPromise(function(_0x4ddfb7,_0x3d6798){var _0xc880ba=sox[_0x8e49('0x22')](_0x5084ae,_0x275100,{'sampleRate':0x1f40,'format':_0x8e49('0x23'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0xc880ba['on'](_0x8e49('0x14'),function(_0x31a906){logger[_0x8e49('0x14')](_0x8e49('0x24'),_0x31a906);_0x3d6798(_0x31a906);});_0xc880ba['on'](_0x8e49('0x1f'),function(){logger[_0x8e49('0x19')](_0x8e49('0x25'));_0x4ddfb7();});_0xc880ba[_0x8e49('0x26')]();});}function base64Decode(_0x34653c,_0x443df8){var _0x3c1df8=path[_0x8e49('0x27')](__dirname,_0x8e49('0x28'),rs[_0x8e49('0x29')](0x4)+_0x8e49('0x2a'));fs[_0x8e49('0x2b')](_0x3c1df8,_0x34653c,_0x8e49('0x2c'));return convertFile(_0x3c1df8,_0x443df8)['then'](function(){try{fs[_0x8e49('0x1c')](_0x3c1df8);fs[_0x8e49('0x2d')](_0x443df8,_0x8e49('0x2e'));}catch(_0x7dd11b){logger[_0x8e49('0x14')](_0x7dd11b);}return _0x443df8[_0x8e49('0x2f')]('.')[0x0];});}function base64Encode(_0xb315dc){var _0x55bc4e=fs[_0x8e49('0x30')](_0xb315dc);return new Buffer(_0x55bc4e)[_0x8e49('0x31')](_0x8e49('0x2c'));}exports[_0x8e49('0x32')]=function(_0x5a6988,_0x42a8bb,_0x577bc9,_0x4e52d1,_0xfc1c47,_0x3c9d5f){var _0x3aee21,_0x54bd81;var _0xd96ddc='https://texttospeech.googleapis.com/v1/';var _0x1e1474=_0x8e49('0x33')+_0x5a6988;var _0x58a06a={};if(_0x42a8bb===_0x8e49('0x34')){_0x58a06a['input']={'ssml':_0x577bc9};}else{_0x58a06a[_0x8e49('0x35')]={'text':_0x577bc9};};_0x58a06a[_0x8e49('0x36')]={'languageCode':_0x4e52d1,'ssmlGender':_0xfc1c47};_0x58a06a[_0x8e49('0x37')]={'audioEncoding':'MP3','sampleRateHertz':0x1f40};var _0x428465={'url':_0xd96ddc+_0x8e49('0x38')+_0x1e1474,'method':_0x8e49('0x39'),'json':!![],'body':_0x58a06a};return rp(_0x428465)[_0x8e49('0x3a')](function(_0x1c3a55){return new BPromise(function(_0x281cc4,_0x3fb0e2){_0x3aee21=path[_0x8e49('0x27')](__dirname,_0x8e49('0x28'),rs[_0x8e49('0x29')](0x4)+'.mp3');var _0x21a608=Buffer[_0x8e49('0x3b')](_0x1c3a55[_0x8e49('0x3c')],_0x8e49('0x2c'));return fs[_0x8e49('0x3d')](_0x3aee21,_0x21a608,function(_0x564334){_0x3fb0e2(_0x564334);},function(_0x4491a0){fs['chmodSync'](_0x3aee21,_0x8e49('0x2e'));_0x281cc4(_0x4491a0);});});})[_0x8e49('0x3a')](function(_0x36bdf1){_0x54bd81=path[_0x8e49('0x27')](__dirname,_0x8e49('0x28'),rs['generate'](0x4)+_0x8e49('0x2a'));return convertFile(_0x3aee21,_0x54bd81);})['then'](function(){try{fs[_0x8e49('0x1c')](_0x3aee21);fs[_0x8e49('0x2d')](_0x54bd81,_0x8e49('0x2e'));}catch(_0x416415){logger[_0x8e49('0x14')](_0x416415);}logger[_0x8e49('0x19')](_0x8e49('0x3e'),_0x54bd81[_0x8e49('0x2f')]('.')[0x0]);return _0x54bd81[_0x8e49('0x2f')]('.')[0x0];});};exports[_0x8e49('0x3f')]=function(_0xad9300,_0x3f584a){var _0x4f8dfd=_0x8e49('0x40');var _0x67e958,_0x58ac58;var _0xb6ed99;var _0x4f32b={'encoding':_0x8e49('0x41'),'method':_0x8e49('0x39'),'timeout':0x2710,'url':_0x4f8dfd,'headers':{'Content-Type':_0x8e49('0x42')},'body':_0x8e49('0x43')+encodeURIComponent(JSON[_0x8e49('0x44')]([[[_0x8e49('0x45'),JSON[_0x8e49('0x44')]([_0xad9300,_0x3f584a||'en',![],_0x8e49('0x46')]),null,'generic']]]))};return rp(_0x4f32b)[_0x8e49('0x3a')](function(_0x39d573){try{_0xb6ed99=eval(_0x39d573[_0x8e49('0x47')](0x5))[0x0][0x2];}catch(_0x5647cf){throw new Error('parse\x20response\x20failed:\x0a'+_0x39d573['data']);}if(!_0xb6ed99){if(_0xad9300['length']>0xc8){throw new Error('text\x20length\x20limit\x20reached');}else{throw new Error(_0x8e49('0x48')+_0x3f584a+_0x8e49('0x49'));}}try{_0xb6ed99=eval(_0xb6ed99)[0x0];}catch(_0x44e0ca){throw new Error(_0x8e49('0x4a')+res[_0x8e49('0x4b')]);}const _0x28d9e4=_0xb6ed99;_0x67e958=path['resolve'](__dirname,'tmp',rs[_0x8e49('0x29')](0x4)+_0x8e49('0x4c'));fs[_0x8e49('0x2b')](_0x67e958,_0xb6ed99,{'encoding':_0x8e49('0x2c')});_0x58ac58=path[_0x8e49('0x27')](__dirname,_0x8e49('0x28'),rs['generate'](0x4)+_0x8e49('0x2a'));return convertFile(_0x67e958,_0x58ac58);})[_0x8e49('0x3a')](function(){try{fs[_0x8e49('0x1c')](_0x67e958);fs[_0x8e49('0x2d')](_0x58ac58,_0x8e49('0x2e'));}catch(_0x4293ec){logger[_0x8e49('0x14')](_0x4293ec);}logger[_0x8e49('0x19')](_0x8e49('0x4d'),_0x58ac58['split']('.')[0x0]);return _0x58ac58[_0x8e49('0x2f')]('.')[0x0];});};exports[_0x8e49('0x4e')]=function(_0x56b520,_0x487b28,_0x3e70fd){return google[_0x8e49('0x4f')](_0x56b520,_0x487b28,_0x3e70fd)[_0x8e49('0x3a')](function(_0x39a431){logger[_0x8e49('0x19')](_0x39a431[_0x8e49('0x50')]);return rp(_0x39a431);})[_0x8e49('0x3a')](function(_0x4afeee){var _0x24a299='';var _0x218bdc=0x0;try{fs['unlink'](_0x56b520);}catch(_0x5c26f6){logger[_0x8e49('0x14')](_0x5c26f6);}if(_0x4afeee&&_0x4afeee[_0x8e49('0x51')]){_0x24a299=_0x4afeee[_0x8e49('0x51')][_0x8e49('0x52')](function(_0x3dcf30){return _0x3dcf30&&_0x3dcf30[_0x8e49('0x53')][0x0]&&_0x3dcf30['alternatives'][0x0][_0x8e49('0x54')]?_0x3dcf30[_0x8e49('0x53')][0x0][_0x8e49('0x54')]:'';})[_0x8e49('0x55')]('\x0a');_0x218bdc=_0x4afeee['results']['map'](function(_0x1ae0d5){return _0x1ae0d5&&_0x1ae0d5['alternatives'][0x0]&&_0x1ae0d5[_0x8e49('0x53')][0x0][_0x8e49('0x56')]?_0x1ae0d5[_0x8e49('0x53')][0x0][_0x8e49('0x56')]:0x0;})[_0x8e49('0x55')]('\x0a');}logger[_0x8e49('0x19')](_0x8e49('0x57'),_0x24a299);logger[_0x8e49('0x19')](_0x8e49('0x58'),_0x218bdc);return{'transcript':_0x24a299,'confidence':_0x218bdc};})[_0x8e49('0x59')](function(_0x5a6d18){logger[_0x8e49('0x14')](_0x8e49('0x5a'),_0x5a6d18[_0x8e49('0x13')],_0x5a6d18['name'],_0x5a6d18[_0x8e49('0x5b')]);});};exports[_0x8e49('0x5c')]=function(_0x44b6d8,_0x107866,_0x5c167a,_0x39d4bc){var _0x2dd62e=apiai(_0x107866,{'language':_0x39d4bc||'en'});return _0x2dd62e[_0x8e49('0x5d')](_0x5c167a,{'sessionId':md5(_0x44b6d8)})[_0x8e49('0x3a')](function(_0x4d7a8b){logger[_0x8e49('0x19')](JSON[_0x8e49('0x44')](_0x4d7a8b));return{'source':_0x4d7a8b[_0x8e49('0x5e')]['source'],'resolvedQuery':_0x4d7a8b[_0x8e49('0x5e')][_0x8e49('0x5f')],'action':_0x4d7a8b[_0x8e49('0x5e')]['action'],'actionIncomplete':_0x4d7a8b[_0x8e49('0x5e')][_0x8e49('0x60')],'speech':_0x4d7a8b[_0x8e49('0x5e')][_0x8e49('0x61')]['speech'],'score':_0x4d7a8b[_0x8e49('0x5e')][_0x8e49('0x62')],'statusCode':_0x4d7a8b[_0x8e49('0x63')][_0x8e49('0x64')],'endConversation':_0x4d7a8b[_0x8e49('0x5e')]['metadata']['endConversation']||![],'isFallbackIntent':_0x4d7a8b[_0x8e49('0x5e')][_0x8e49('0x65')][_0x8e49('0x66')]};});};exports[_0x8e49('0x67')]=function(_0x2ed846,_0x2068b4,_0x50ebd1,_0x14c301,_0x546780,_0x115560){var _0x3f80a5=_0x14c301[_0x8e49('0x68')](/\\n/g,'\x0a');var _0x51c33b={'credentials':{'private_key':_0x3f80a5,'client_email':_0x50ebd1}};var _0xb45826=new dialogflow[(_0x8e49('0x69'))](_0x51c33b);var _0x472528=_0xb45826['sessionPath'](_0x2068b4,md5(_0x2ed846));var _0x384cbb={'session':_0x472528,'queryInput':{'text':{'text':_0x546780,'languageCode':_0x115560}}};return _0xb45826[_0x8e49('0x6a')](_0x384cbb)[_0x8e49('0x3a')](function(_0x547ab3){if(_0x547ab3&&_0x547ab3[_0x8e49('0x6b')]){logger['info'](_0x8e49('0x6c'),JSON['stringify'](_0x547ab3));var _0x314bc7=_0x547ab3[0x0];if(_0x314bc7){var _0x544ddf={'action':_0x314bc7[_0x8e49('0x6d')][_0x8e49('0x6e')],'allRequiredParamsPresent':_0x314bc7[_0x8e49('0x6d')][_0x8e49('0x6f')],'endConversation':_0x314bc7[_0x8e49('0x6d')][_0x8e49('0x70')]&&_0x314bc7[_0x8e49('0x6d')][_0x8e49('0x70')]['fields']?_0x314bc7[_0x8e49('0x6d')][_0x8e49('0x70')][_0x8e49('0x71')]['end_conversation'][_0x8e49('0x72')]:![],'fulfillmentText':_0x314bc7['queryResult']['fulfillmentText'],'intentName':_0x314bc7[_0x8e49('0x6d')][_0x8e49('0x73')][_0x8e49('0x74')],'intentDisplayName':_0x314bc7['queryResult'][_0x8e49('0x73')][_0x8e49('0x75')],'isFallbackIntent':_0x314bc7[_0x8e49('0x6d')]['intent'][_0x8e49('0x76')],'languageCode':_0x314bc7[_0x8e49('0x6d')]['languageCode'],'queryText':_0x314bc7['queryResult'][_0x8e49('0x77')],'responseId':_0x314bc7[_0x8e49('0x78')],'score':_0x314bc7[_0x8e49('0x6d')][_0x8e49('0x79')],'speech':_0x314bc7['queryResult']['fulfillmentText'],'providerResponse':JSON[_0x8e49('0x44')](_0x547ab3)};return _0x544ddf;}}});};exports[_0x8e49('0x7a')]=function(_0x1ef051,_0x2f1df3,_0x9dd7d0,_0x2d8fa5){return tilde[_0x8e49('0x4f')](_0x1ef051,_0x2f1df3,_0x9dd7d0,_0x2d8fa5)[_0x8e49('0x3a')](function(_0xf23a6){try{fs['unlink'](_0x1ef051);}catch(_0x4d7e8f){logger[_0x8e49('0x14')](_0x4d7e8f);}logger[_0x8e49('0x19')](_0x8e49('0x7b'),_0xf23a6['transcript']);logger[_0x8e49('0x19')](_0x8e49('0x7c'),_0xf23a6['confidence']);return _0xf23a6;});};exports[_0x8e49('0x7d')]=function(_0x32085c,_0x20544d,_0x29e5ea,_0x4580dd,_0x551280,_0x564e0e){var _0x2791ab=path['resolve'](__dirname,'tmp',rs[_0x8e49('0x29')](0x4)+_0x8e49('0x4c'));var _0x8db049;return aws['polly'](_0x32085c,_0x20544d,_0x29e5ea,_0x4580dd,_0x551280,_0x564e0e,_0x2791ab)[_0x8e49('0x3a')](function(){_0x8db049=path['resolve'](__dirname,_0x8e49('0x28'),rs[_0x8e49('0x29')](0x4)+'.wav');return convertFile(_0x2791ab,_0x8db049);})[_0x8e49('0x3a')](function(){try{fs[_0x8e49('0x1c')](_0x2791ab);fs[_0x8e49('0x2d')](_0x8db049,_0x8e49('0x2e'));}catch(_0x18c894){logger['error'](_0x18c894);}return _0x8db049['split']('.')[0x0];});};exports['awsLex']=function(_0x3d4c46,_0xc29840,_0x446a66,_0x43ba4,_0x57776d,_0x3f0865){return aws[_0x8e49('0x7e')](_0x3d4c46,_0xc29840,_0x446a66,_0x43ba4,_0x57776d,_0x3f0865)[_0x8e49('0x3a')](function(_0x367a83){logger['info'](JSON['stringify'](_0x367a83));return _0x367a83;});};exports[_0x8e49('0x7f')]=function(_0x3e6e3e,_0x66e332,_0x56376d,_0x564d71){var _0x160b78=util[_0x8e49('0x80')](_0x8e49('0x81'),ISPEECH_API,_0x3e6e3e,encodeURIComponent(_0x66e332),_0x56376d,_0x564d71);var _0x53db8d=path[_0x8e49('0x27')](__dirname,_0x8e49('0x28'),rs['generate'](0x4)+'.mp3');var _0x2262c2;return downloadFile(_0x160b78,_0x53db8d)[_0x8e49('0x3a')](function(){_0x2262c2=path[_0x8e49('0x27')](__dirname,'tmp',rs[_0x8e49('0x29')](0x4)+_0x8e49('0x2a'));return convertFile(_0x53db8d,_0x2262c2);})[_0x8e49('0x3a')](function(){try{fs[_0x8e49('0x1c')](_0x53db8d);fs[_0x8e49('0x2d')](_0x2262c2,'777');}catch(_0x1b5fad){logger[_0x8e49('0x14')](_0x1b5fad);}return _0x2262c2[_0x8e49('0x2f')]('.')[0x0];});};exports[_0x8e49('0x82')]=function(_0xa81470,_0x52151e,_0x3db5c7,_0x37e39b){var _0x41d718=util[_0x8e49('0x80')](_0x8e49('0x83'),ISPEECH_API,_0x52151e,_0x3db5c7,base64Encode(_0xa81470),_0x37e39b?util[_0x8e49('0x80')]('model=%s',encodeURIComponent(_0x37e39b)):'freeform=3');return uploadFile(_0x41d718)[_0x8e49('0x3a')](function(_0x3347e7){return querystring[_0x8e49('0x8')](_0x3347e7);});};exports[_0x8e49('0x84')]=function(_0x342c3d,_0x102177){return sestek['nda'](_0x342c3d,_0x102177)['then'](function(_0x4a0dcd){logger[_0x8e49('0x19')](JSON[_0x8e49('0x44')](_0x4a0dcd));var _0x32727b={'speech':_0x4a0dcd['text'],'action':_0x4a0dcd['channelData']?_0x4a0dcd[_0x8e49('0x85')][_0x8e49('0x86')]:undefined,'actiondata':_0x4a0dcd[_0x8e49('0x85')]?_0x4a0dcd[_0x8e49('0x85')][_0x8e49('0x87')]:undefined};if(_0x4a0dcd['channelData']&&_0x4a0dcd[_0x8e49('0x85')][_0x8e49('0x88')]){return base64Decode(_0x4a0dcd['channelData'][_0x8e49('0x88')][_0x8e49('0x89')],path[_0x8e49('0x27')](__dirname,'tmp',rs[_0x8e49('0x29')](0x4)+_0x8e49('0x2a')))[_0x8e49('0x3a')](function(_0x2502cc){_0x32727b[_0x8e49('0x8a')]=_0x2502cc;return _0x32727b;});}return _0x32727b;});};exports[_0x8e49('0x8b')]=function(){return __dirname;};
\ No newline at end of file
+var _0xc7b2=['intentDetectionConfidence','tildeASR','Tilde\x20ASR\x20transcription','Tilde\x20ASR\x20confidence','awsPolly','polly','awsLex','lex','ispeechTTS','format','%s?apikey=%s&action=convert&text=%s&voice=%s&speed=%s&format=mp3','ispeechASR','model=%s','freeform=3','sestekNDA','nda','text','channelData','CustomActionData','AudioFromTts','dirName','apiai-promise','bluebird','http','https','md5','path','querystring','request-promise','randomstring','sox','url','parse','./aws','./google','./sestek','./tilde','agi','https://api.ispeech.org/api/rest','protocol','https:','host','WHAT_EVER','get','statusCode','request\x20to\x20','\x20failed,\x20status\x20code\x20=\x20','statusMessage','createWriteStream','finish','finish\x20download\x20file','close','error','unlink','download\x20error','pipe','end','data','transcode','wav','error\x20convert','finish\x20to\x20convert','start','resolve','generate','writeFileSync','base64','chmodSync','readFileSync','googleCloudTTS','https://texttospeech.googleapis.com/v1/','?key=','input','voice','MP3','text:synthesize','POST','tmp','from','audioContent','then','.wav','777','info','googleCloudTTS\x20path','split','googleTTS','https://translate.google.com/_/TranslateWebserverUi/data/batchexecute','utf8','application/x-www-form-urlencoded','f.req=','stringify','jQ1olc','null','generic','length','lang\x20\x22','\x22\x20might\x20not\x20exist','parse\x20response\x20failed:\x0a','.mp3','goggleTTS\x20path','asr','results','map','alternatives','transcript','join','confidence','googleASR\x20transcription','googleASR\x20confidence','catch','[%s]\x20%s:%s','name','message','googleDialogflow','source','resolvedQuery','result','action','actionIncomplete','fulfillment','speech','score','status','code','metadata','endConversation','googleDialogflowV2','replace','SessionsClient','sessionPath','detectIntent','Dialogflow\x20V2\x20response:','queryResult','allRequiredParamsPresent','diagnosticInfo','fields','end_conversation','intent','displayName','isFallback','languageCode','queryText','responseId'];(function(_0xa464c9,_0x7c86d8){var _0x3d73c4=function(_0x5c2056){while(--_0x5c2056){_0xa464c9['push'](_0xa464c9['shift']());}};_0x3d73c4(++_0x7c86d8);}(_0xc7b2,0x135));var _0x2c7b=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xc7b2[_0x3dd15e];return _0x231fd0;};'use strict';var apiai=require(_0x2c7b('0x0'));var BPromise=require(_0x2c7b('0x1'));var dialogflow=require('dialogflow');var fs=require('fs');var http=require(_0x2c7b('0x2'));var https=require(_0x2c7b('0x3'));var md5=require(_0x2c7b('0x4'));var path=require(_0x2c7b('0x5'));var querystring=require(_0x2c7b('0x6'));var rp=require(_0x2c7b('0x7'));var rs=require(_0x2c7b('0x8'));var sox=require(_0x2c7b('0x9'));var tts=require('google-tts-api');var urlParse=require(_0x2c7b('0xa'))[_0x2c7b('0xb')];var util=require('util');var aws=require(_0x2c7b('0xc'));var google=require(_0x2c7b('0xd'));var sestek=require(_0x2c7b('0xe'));var tilde=require(_0x2c7b('0xf'));var logger=require('../../../config/logger')(_0x2c7b('0x10'));var ISPEECH_API=_0x2c7b('0x11');function downloadFile(_0xce55f6,_0x33d7c0){return new BPromise(function(_0x5c4f67,_0x320a9e){var _0x3be33c=urlParse(_0xce55f6);var _0x3b9dd0=_0x3be33c[_0x2c7b('0x12')]===_0x2c7b('0x13')?https:http;var _0x20dfe5={'host':_0x3be33c[_0x2c7b('0x14')],'path':_0x3be33c[_0x2c7b('0x5')],'headers':{'user-agent':_0x2c7b('0x15')}};_0x3b9dd0[_0x2c7b('0x16')](_0x20dfe5,function(_0x55b3b0){if(_0x55b3b0[_0x2c7b('0x17')]!==0xc8){logger['error'](_0x2c7b('0x18')+_0xce55f6+_0x2c7b('0x19')+_0x55b3b0['statusCode']+'\x20('+_0x55b3b0[_0x2c7b('0x1a')]+')');_0x320a9e(new Error(_0x2c7b('0x18')+_0xce55f6+_0x2c7b('0x19')+_0x55b3b0['statusCode']+'\x20('+_0x55b3b0[_0x2c7b('0x1a')]+')'));return;}var _0x37d30e=fs[_0x2c7b('0x1b')](_0x33d7c0);_0x37d30e['on'](_0x2c7b('0x1c'),function(){logger['info'](_0x2c7b('0x1d'));_0x37d30e[_0x2c7b('0x1e')](_0x5c4f67);});_0x37d30e['on'](_0x2c7b('0x1f'),function(_0xf1e1df){fs[_0x2c7b('0x20')](_0x33d7c0);logger[_0x2c7b('0x1f')](_0x2c7b('0x21'),_0xf1e1df);_0x320a9e(_0xf1e1df);});_0x55b3b0[_0x2c7b('0x22')](_0x37d30e);})['on'](_0x2c7b('0x1f'),function(_0x3d23e3){logger['error'](_0x3d23e3);_0x320a9e(_0x3d23e3);})[_0x2c7b('0x23')]();});}function uploadFile(_0x49819e){return new BPromise(function(_0x3a701e,_0xb4b4bd){var _0x451503=urlParse(_0x49819e);var _0x43dfc8=_0x451503[_0x2c7b('0x12')]===_0x2c7b('0x13')?https:http;var _0x6444ac={'host':_0x451503['host'],'path':_0x451503[_0x2c7b('0x5')],'headers':{'user-agent':_0x2c7b('0x15')}};_0x43dfc8[_0x2c7b('0x16')](_0x6444ac,function(_0x3a8a7b){if(_0x3a8a7b[_0x2c7b('0x17')]!==0xc8){_0xb4b4bd(new Error(_0x2c7b('0x18')+_0x49819e+_0x2c7b('0x19')+_0x3a8a7b[_0x2c7b('0x17')]+'\x20('+_0x3a8a7b[_0x2c7b('0x1a')]+')'));return;}var _0x2317d5='';_0x3a8a7b['on'](_0x2c7b('0x24'),function(_0x1fc606){_0x2317d5+=_0x1fc606;});_0x3a8a7b['on'](_0x2c7b('0x23'),function(){_0x3a701e(_0x2317d5);});})['on'](_0x2c7b('0x1f'),function(_0x1067dd){_0xb4b4bd(_0x1067dd);})[_0x2c7b('0x23')]();});}function convertFile(_0xde9614,_0x559d89){return new BPromise(function(_0x29596b,_0x2592f1){var _0x1cb2a4=sox[_0x2c7b('0x25')](_0xde9614,_0x559d89,{'sampleRate':0x1f40,'format':_0x2c7b('0x26'),'channelCount':0x1,'bitRate':0xc0*0x400,'compressionQuality':0x5});_0x1cb2a4['on']('error',function(_0x3025fb){logger[_0x2c7b('0x1f')](_0x2c7b('0x27'),_0x3025fb);_0x2592f1(_0x3025fb);});_0x1cb2a4['on'](_0x2c7b('0x23'),function(){logger['info'](_0x2c7b('0x28'));_0x29596b();});_0x1cb2a4[_0x2c7b('0x29')]();});}function base64Decode(_0x136c20,_0x430b50){var _0x4e6658=path[_0x2c7b('0x2a')](__dirname,'tmp',rs[_0x2c7b('0x2b')](0x4)+'.wav');fs[_0x2c7b('0x2c')](_0x4e6658,_0x136c20,_0x2c7b('0x2d'));return convertFile(_0x4e6658,_0x430b50)['then'](function(){try{fs[_0x2c7b('0x20')](_0x4e6658);fs[_0x2c7b('0x2e')](_0x430b50,'777');}catch(_0x43b503){logger[_0x2c7b('0x1f')](_0x43b503);}return _0x430b50['split']('.')[0x0];});}function base64Encode(_0x241795){var _0x93c2c3=fs[_0x2c7b('0x2f')](_0x241795);return new Buffer(_0x93c2c3)['toString'](_0x2c7b('0x2d'));}exports[_0x2c7b('0x30')]=function(_0x20c846,_0x49d9ee,_0x527c06,_0xb6c86,_0x34e864,_0x834f2a){var _0x2965dc,_0x257960;var _0x51fa13=_0x2c7b('0x31');var _0x31bb2e=_0x2c7b('0x32')+_0x20c846;var _0x42b2d0={};if(_0x49d9ee==='ssml'){_0x42b2d0[_0x2c7b('0x33')]={'ssml':_0x527c06};}else{_0x42b2d0[_0x2c7b('0x33')]={'text':_0x527c06};};_0x42b2d0[_0x2c7b('0x34')]={'languageCode':_0xb6c86,'ssmlGender':_0x34e864};_0x42b2d0['audioConfig']={'audioEncoding':_0x2c7b('0x35'),'sampleRateHertz':0x1f40};var _0x876285={'url':_0x51fa13+_0x2c7b('0x36')+_0x31bb2e,'method':_0x2c7b('0x37'),'json':!![],'body':_0x42b2d0};return rp(_0x876285)['then'](function(_0x29ab6){return new BPromise(function(_0x47388a,_0x159a16){_0x2965dc=path['resolve'](__dirname,_0x2c7b('0x38'),rs['generate'](0x4)+'.mp3');var _0x2a1abc=Buffer[_0x2c7b('0x39')](_0x29ab6[_0x2c7b('0x3a')],_0x2c7b('0x2d'));return fs['writeFile'](_0x2965dc,_0x2a1abc,function(_0x4d25c0){_0x159a16(_0x4d25c0);},function(_0x50d954){fs['chmodSync'](_0x2965dc,'777');_0x47388a(_0x50d954);});});})[_0x2c7b('0x3b')](function(_0x404da4){_0x257960=path[_0x2c7b('0x2a')](__dirname,_0x2c7b('0x38'),rs[_0x2c7b('0x2b')](0x4)+_0x2c7b('0x3c'));return convertFile(_0x2965dc,_0x257960);})[_0x2c7b('0x3b')](function(){try{fs[_0x2c7b('0x20')](_0x2965dc);fs[_0x2c7b('0x2e')](_0x257960,_0x2c7b('0x3d'));}catch(_0x57c19d){logger[_0x2c7b('0x1f')](_0x57c19d);}logger[_0x2c7b('0x3e')](_0x2c7b('0x3f'),_0x257960[_0x2c7b('0x40')]('.')[0x0]);return _0x257960[_0x2c7b('0x40')]('.')[0x0];});};exports[_0x2c7b('0x41')]=function(_0x1ffe68,_0x504266){var _0x4ac800=_0x2c7b('0x42');var _0x3eea3f,_0x524a15;var _0x492da4;var _0xf6f099={'encoding':_0x2c7b('0x43'),'method':_0x2c7b('0x37'),'timeout':0x2710,'url':_0x4ac800,'headers':{'Content-Type':_0x2c7b('0x44')},'body':_0x2c7b('0x45')+encodeURIComponent(JSON[_0x2c7b('0x46')]([[[_0x2c7b('0x47'),JSON[_0x2c7b('0x46')]([_0x1ffe68,_0x504266||'en',![],_0x2c7b('0x48')]),null,_0x2c7b('0x49')]]]))};return rp(_0xf6f099)[_0x2c7b('0x3b')](function(_0x3b8f9c){try{_0x492da4=eval(_0x3b8f9c['slice'](0x5))[0x0][0x2];}catch(_0x3ebac1){throw new Error('parse\x20response\x20failed:\x0a'+_0x3b8f9c[_0x2c7b('0x24')]);}if(!_0x492da4){if(_0x1ffe68[_0x2c7b('0x4a')]>0xc8){throw new Error('text\x20length\x20limit\x20reached');}else{throw new Error(_0x2c7b('0x4b')+_0x504266+_0x2c7b('0x4c'));}}try{_0x492da4=eval(_0x492da4)[0x0];}catch(_0x378f65){throw new Error(_0x2c7b('0x4d')+res[_0x2c7b('0x24')]);}const _0x5abd28=_0x492da4;_0x3eea3f=path[_0x2c7b('0x2a')](__dirname,'tmp',rs[_0x2c7b('0x2b')](0x4)+_0x2c7b('0x4e'));fs[_0x2c7b('0x2c')](_0x3eea3f,_0x492da4,{'encoding':'base64'});_0x524a15=path[_0x2c7b('0x2a')](__dirname,_0x2c7b('0x38'),rs['generate'](0x4)+'.wav');return convertFile(_0x3eea3f,_0x524a15);})['then'](function(){try{fs[_0x2c7b('0x20')](_0x3eea3f);fs[_0x2c7b('0x2e')](_0x524a15,_0x2c7b('0x3d'));}catch(_0x242b57){logger[_0x2c7b('0x1f')](_0x242b57);}logger[_0x2c7b('0x3e')](_0x2c7b('0x4f'),_0x524a15[_0x2c7b('0x40')]('.')[0x0]);return _0x524a15['split']('.')[0x0];});};exports['googleASR']=function(_0x281bf7,_0x237ee4,_0x16f407){return google[_0x2c7b('0x50')](_0x281bf7,_0x237ee4,_0x16f407)[_0x2c7b('0x3b')](function(_0x2f8d64){logger['info'](_0x2f8d64['uri']);return rp(_0x2f8d64);})[_0x2c7b('0x3b')](function(_0x496385){var _0x1cd64f='';var _0x332bf1=0x0;try{fs[_0x2c7b('0x20')](_0x281bf7);}catch(_0xf2daf8){logger[_0x2c7b('0x1f')](_0xf2daf8);}if(_0x496385&&_0x496385[_0x2c7b('0x51')]){_0x1cd64f=_0x496385[_0x2c7b('0x51')][_0x2c7b('0x52')](function(_0x1e1219){return _0x1e1219&&_0x1e1219[_0x2c7b('0x53')][0x0]&&_0x1e1219[_0x2c7b('0x53')][0x0][_0x2c7b('0x54')]?_0x1e1219[_0x2c7b('0x53')][0x0]['transcript']:'';})[_0x2c7b('0x55')]('\x0a');_0x332bf1=_0x496385[_0x2c7b('0x51')][_0x2c7b('0x52')](function(_0x577391){return _0x577391&&_0x577391['alternatives'][0x0]&&_0x577391[_0x2c7b('0x53')][0x0]['confidence']?_0x577391[_0x2c7b('0x53')][0x0][_0x2c7b('0x56')]:0x0;})[_0x2c7b('0x55')]('\x0a');}logger['info'](_0x2c7b('0x57'),_0x1cd64f);logger[_0x2c7b('0x3e')](_0x2c7b('0x58'),_0x332bf1);return{'transcript':_0x1cd64f,'confidence':_0x332bf1};})[_0x2c7b('0x59')](function(_0x37ca72){logger[_0x2c7b('0x1f')](_0x2c7b('0x5a'),_0x37ca72[_0x2c7b('0x17')],_0x37ca72[_0x2c7b('0x5b')],_0x37ca72[_0x2c7b('0x5c')]);});};exports[_0x2c7b('0x5d')]=function(_0x579088,_0x42cdff,_0x255f94,_0x31415a){var _0xd5e26b=apiai(_0x42cdff,{'language':_0x31415a||'en'});return _0xd5e26b['textRequest'](_0x255f94,{'sessionId':md5(_0x579088)})['then'](function(_0x1da1ad){logger[_0x2c7b('0x3e')](JSON[_0x2c7b('0x46')](_0x1da1ad));return{'source':_0x1da1ad['result'][_0x2c7b('0x5e')],'resolvedQuery':_0x1da1ad['result'][_0x2c7b('0x5f')],'action':_0x1da1ad[_0x2c7b('0x60')][_0x2c7b('0x61')],'actionIncomplete':_0x1da1ad[_0x2c7b('0x60')][_0x2c7b('0x62')],'speech':_0x1da1ad[_0x2c7b('0x60')][_0x2c7b('0x63')][_0x2c7b('0x64')],'score':_0x1da1ad[_0x2c7b('0x60')][_0x2c7b('0x65')],'statusCode':_0x1da1ad[_0x2c7b('0x66')][_0x2c7b('0x67')],'endConversation':_0x1da1ad['result'][_0x2c7b('0x68')][_0x2c7b('0x69')]||![],'isFallbackIntent':_0x1da1ad['result'][_0x2c7b('0x68')]['isFallbackIntent']};});};exports[_0x2c7b('0x6a')]=function(_0x289d9a,_0x29e2ca,_0x27a042,_0x1c58df,_0x39f411,_0xe42b52){var _0x4011c2=_0x1c58df[_0x2c7b('0x6b')](/\\n/g,'\x0a');var _0x18b835={'credentials':{'private_key':_0x4011c2,'client_email':_0x27a042}};var _0x409f32=new dialogflow[(_0x2c7b('0x6c'))](_0x18b835);var _0x98e344=_0x409f32[_0x2c7b('0x6d')](_0x29e2ca,md5(_0x289d9a));var _0x3971a7={'session':_0x98e344,'queryInput':{'text':{'text':_0x39f411,'languageCode':_0xe42b52}}};return _0x409f32[_0x2c7b('0x6e')](_0x3971a7)[_0x2c7b('0x3b')](function(_0x2dfa89){if(_0x2dfa89&&_0x2dfa89[_0x2c7b('0x4a')]){logger[_0x2c7b('0x3e')](_0x2c7b('0x6f'),JSON[_0x2c7b('0x46')](_0x2dfa89));var _0x1846d1=_0x2dfa89[0x0];if(_0x1846d1){var _0x2ae54e={'action':_0x1846d1[_0x2c7b('0x70')][_0x2c7b('0x61')],'allRequiredParamsPresent':_0x1846d1[_0x2c7b('0x70')][_0x2c7b('0x71')],'endConversation':_0x1846d1[_0x2c7b('0x70')][_0x2c7b('0x72')]&&_0x1846d1[_0x2c7b('0x70')][_0x2c7b('0x72')][_0x2c7b('0x73')]?_0x1846d1[_0x2c7b('0x70')]['diagnosticInfo'][_0x2c7b('0x73')][_0x2c7b('0x74')]['boolValue']:![],'fulfillmentText':_0x1846d1[_0x2c7b('0x70')]['fulfillmentText'],'intentName':_0x1846d1[_0x2c7b('0x70')][_0x2c7b('0x75')][_0x2c7b('0x5b')],'intentDisplayName':_0x1846d1[_0x2c7b('0x70')][_0x2c7b('0x75')][_0x2c7b('0x76')],'isFallbackIntent':_0x1846d1[_0x2c7b('0x70')][_0x2c7b('0x75')][_0x2c7b('0x77')],'languageCode':_0x1846d1[_0x2c7b('0x70')][_0x2c7b('0x78')],'queryText':_0x1846d1['queryResult'][_0x2c7b('0x79')],'responseId':_0x1846d1[_0x2c7b('0x7a')],'score':_0x1846d1['queryResult'][_0x2c7b('0x7b')],'speech':_0x1846d1[_0x2c7b('0x70')]['fulfillmentText'],'providerResponse':JSON['stringify'](_0x2dfa89)};return _0x2ae54e;}}});};exports[_0x2c7b('0x7c')]=function(_0x21b9ea,_0x148153,_0x21675d,_0x392271){return tilde['asr'](_0x21b9ea,_0x148153,_0x21675d,_0x392271)[_0x2c7b('0x3b')](function(_0xe7d140){try{fs[_0x2c7b('0x20')](_0x21b9ea);}catch(_0x358063){logger['error'](_0x358063);}logger[_0x2c7b('0x3e')](_0x2c7b('0x7d'),_0xe7d140['transcript']);logger[_0x2c7b('0x3e')](_0x2c7b('0x7e'),_0xe7d140[_0x2c7b('0x56')]);return _0xe7d140;});};exports[_0x2c7b('0x7f')]=function(_0x2950cf,_0x77e8ff,_0x5e3417,_0x224897,_0x1c408e,_0x46ce37){var _0x1f9b3e=path[_0x2c7b('0x2a')](__dirname,'tmp',rs[_0x2c7b('0x2b')](0x4)+_0x2c7b('0x4e'));var _0x33df1c;return aws[_0x2c7b('0x80')](_0x2950cf,_0x77e8ff,_0x5e3417,_0x224897,_0x1c408e,_0x46ce37,_0x1f9b3e)[_0x2c7b('0x3b')](function(){_0x33df1c=path[_0x2c7b('0x2a')](__dirname,'tmp',rs[_0x2c7b('0x2b')](0x4)+_0x2c7b('0x3c'));return convertFile(_0x1f9b3e,_0x33df1c);})[_0x2c7b('0x3b')](function(){try{fs[_0x2c7b('0x20')](_0x1f9b3e);fs[_0x2c7b('0x2e')](_0x33df1c,_0x2c7b('0x3d'));}catch(_0x2ca5e0){logger[_0x2c7b('0x1f')](_0x2ca5e0);}return _0x33df1c['split']('.')[0x0];});};exports[_0x2c7b('0x81')]=function(_0x140a2c,_0x520fbb,_0x4f82de,_0x2b9624,_0x5d16b7,_0x32ecac){return aws[_0x2c7b('0x82')](_0x140a2c,_0x520fbb,_0x4f82de,_0x2b9624,_0x5d16b7,_0x32ecac)[_0x2c7b('0x3b')](function(_0x22ca83){logger[_0x2c7b('0x3e')](JSON[_0x2c7b('0x46')](_0x22ca83));return _0x22ca83;});};exports[_0x2c7b('0x83')]=function(_0x269dcc,_0x34c042,_0x5cc7e2,_0xd7d94c){var _0x38739c=util[_0x2c7b('0x84')](_0x2c7b('0x85'),ISPEECH_API,_0x269dcc,encodeURIComponent(_0x34c042),_0x5cc7e2,_0xd7d94c);var _0x230128=path[_0x2c7b('0x2a')](__dirname,_0x2c7b('0x38'),rs['generate'](0x4)+_0x2c7b('0x4e'));var _0x19f664;return downloadFile(_0x38739c,_0x230128)[_0x2c7b('0x3b')](function(){_0x19f664=path['resolve'](__dirname,_0x2c7b('0x38'),rs[_0x2c7b('0x2b')](0x4)+_0x2c7b('0x3c'));return convertFile(_0x230128,_0x19f664);})[_0x2c7b('0x3b')](function(){try{fs[_0x2c7b('0x20')](_0x230128);fs[_0x2c7b('0x2e')](_0x19f664,_0x2c7b('0x3d'));}catch(_0xf5cc15){logger[_0x2c7b('0x1f')](_0xf5cc15);}return _0x19f664[_0x2c7b('0x40')]('.')[0x0];});};exports[_0x2c7b('0x86')]=function(_0x37f6e7,_0x3c34a6,_0x3e8c46,_0x306122){var _0x26a2b2=util[_0x2c7b('0x84')]('%s?apikey=%s&action=recognize&locale=%s&content-type=audio/x-wav&audio=%s&%s',ISPEECH_API,_0x3c34a6,_0x3e8c46,base64Encode(_0x37f6e7),_0x306122?util[_0x2c7b('0x84')](_0x2c7b('0x87'),encodeURIComponent(_0x306122)):_0x2c7b('0x88'));return uploadFile(_0x26a2b2)['then'](function(_0x5f31a4){return querystring['parse'](_0x5f31a4);});};exports[_0x2c7b('0x89')]=function(_0x33e489,_0x2d80d9){return sestek[_0x2c7b('0x8a')](_0x33e489,_0x2d80d9)[_0x2c7b('0x3b')](function(_0x24b117){logger[_0x2c7b('0x3e')](JSON[_0x2c7b('0x46')](_0x24b117));var _0x26ac60={'speech':_0x24b117[_0x2c7b('0x8b')],'action':_0x24b117[_0x2c7b('0x8c')]?_0x24b117[_0x2c7b('0x8c')]['CustomAction']:undefined,'actiondata':_0x24b117[_0x2c7b('0x8c')]?_0x24b117[_0x2c7b('0x8c')][_0x2c7b('0x8d')]:undefined};if(_0x24b117[_0x2c7b('0x8c')]&&_0x24b117[_0x2c7b('0x8c')][_0x2c7b('0x8e')]){return base64Decode(_0x24b117[_0x2c7b('0x8c')][_0x2c7b('0x8e')]['Data'],path['resolve'](__dirname,_0x2c7b('0x38'),rs[_0x2c7b('0x2b')](0x4)+'.wav'))[_0x2c7b('0x3b')](function(_0x514800){_0x26ac60['audiofile']=_0x514800;return _0x26ac60;});}return _0x26ac60;});};exports[_0x2c7b('0x8f')]=function(){return __dirname;};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x89bc=['exports'];(function(_0x1ab0ea,_0x4a5094){var _0x514380=function(_0x5eeb41){while(--_0x5eeb41){_0x1ab0ea['push'](_0x1ab0ea['shift']());}};_0x514380(++_0x4a5094);}(_0x89bc,0x1db));var _0xc89b=function(_0x4d21ff,_0x19d202){_0x4d21ff=_0x4d21ff-0x0;var _0x22b554=_0x89bc[_0x4d21ff];return _0x22b554;};var nda=require('./nda');module[_0xc89b('0x0')]={'nda':nda};
\ No newline at end of file
+var _0xf874=['exports','./nda'];(function(_0x222c9f,_0x515cd0){var _0x3e74b5=function(_0x1597c4){while(--_0x1597c4){_0x222c9f['push'](_0x222c9f['shift']());}};_0x3e74b5(++_0x515cd0);}(_0xf874,0x11b));var _0x4f87=function(_0x21d3d0,_0x434f23){_0x21d3d0=_0x21d3d0-0x0;var _0x3b2b92=_0xf874[_0x21d3d0];return _0x3b2b92;};var nda=require(_0x4f87('0x0'));module[_0x4f87('0x1')]={'nda':nda};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd4bd=['message','Nda','callerid','calleridname','dnid','extension','text','Bearer\x20','access_token','project','channelData','ndagenerate_audio','body','AudioOutputSettings','audio/wav','CustomAction','custom_action','custom_action_data','CustomActionData','info','stringify','request-promise','url','../../../../../config/logger','agi','exports','POST','resolve','ndauth_url','username','then','ndassistant_url','ndaactivity_type'];(function(_0x5e9e66,_0x1b69c6){var _0xa3c31c=function(_0x52e960){while(--_0x52e960){_0x5e9e66['push'](_0x5e9e66['shift']());}};_0xa3c31c(++_0x1b69c6);}(_0xd4bd,0x15f));var _0xdd4b=function(_0xf48da1,_0x4bb9bd){_0xf48da1=_0xf48da1-0x0;var _0xc77595=_0xd4bd[_0xf48da1];return _0xc77595;};'use strict';var rp=require(_0xdd4b('0x0'));var url=require(_0xdd4b('0x1'));var logger=require(_0xdd4b('0x2'))(_0xdd4b('0x3'));module[_0xdd4b('0x4')]=function(_0x5f2139,_0x37f821){var _0xa49dde={'method':_0xdd4b('0x5'),'uri':url[_0xdd4b('0x6')](_0x37f821[_0xdd4b('0x7')],'/token'),'form':{'grant_type':'password','username':_0x37f821[_0xdd4b('0x8')],'password':_0x37f821['password']},'json':!![]};return rp(_0xa49dde)[_0xdd4b('0x9')](function(_0x173584){var _0x4ac6a5={'method':'POST','uri':url[_0xdd4b('0x6')](_0x37f821[_0xdd4b('0xa')],'/api/NaturalDialogAssistant/v1/Run'),'body':{'type':_0x37f821[_0xdd4b('0xb')]||_0xdd4b('0xc'),'channelId':_0xdd4b('0xd'),'conversation':{'id':_0x5f2139['uniqueid']},'from':{'id':_0x5f2139[_0xdd4b('0xe')],'name':_0x5f2139[_0xdd4b('0xf')]},'recipient':{'id':_0x5f2139[_0xdd4b('0x10')],'name':_0x5f2139[_0xdd4b('0x11')]},'text':_0x37f821[_0xdd4b('0x12')],'channelData':{}},'headers':{'Authorization':_0xdd4b('0x13')+_0x173584[_0xdd4b('0x14')]},'json':!![]};if(_0x37f821[_0xdd4b('0x15')]){_0x4ac6a5['body'][_0xdd4b('0x16')]['ProjectName']=_0x37f821[_0xdd4b('0x15')];}if(_0x37f821[_0xdd4b('0x17')]=='1'){_0x4ac6a5[_0xdd4b('0x18')][_0xdd4b('0x16')][_0xdd4b('0x19')]={'Generate':!![],'PutInStructuredPart':![],'ExpectedFormat':_0xdd4b('0x1a')};}if(_0x37f821['custom_action']){_0x4ac6a5['body'][_0xdd4b('0x16')][_0xdd4b('0x1b')]=_0x37f821[_0xdd4b('0x1c')];if(_0x37f821[_0xdd4b('0x1d')]){_0x4ac6a5[_0xdd4b('0x18')][_0xdd4b('0x16')][_0xdd4b('0x1e')]=_0x37f821['custom_action_data'];}}logger[_0xdd4b('0x1f')](JSON[_0xdd4b('0x20')](_0x4ac6a5));return rp(_0x4ac6a5);});};
\ No newline at end of file
+var _0x8482=['calleridname','dnid','extension','access_token','project','body','ProjectName','ndagenerate_audio','channelData','audio/wav','CustomAction','CustomActionData','custom_action_data','info','stringify','url','../../../../../config/logger','agi','exports','POST','resolve','ndauth_url','password','username','then','ndassistant_url','Nda','uniqueid','callerid'];(function(_0xa4cfd9,_0x232fd4){var _0x4f13d4=function(_0x113c4e){while(--_0x113c4e){_0xa4cfd9['push'](_0xa4cfd9['shift']());}};_0x4f13d4(++_0x232fd4);}(_0x8482,0x14e));var _0x2848=function(_0x3a576c,_0x4d4e9c){_0x3a576c=_0x3a576c-0x0;var _0x24a98c=_0x8482[_0x3a576c];return _0x24a98c;};'use strict';var rp=require('request-promise');var url=require(_0x2848('0x0'));var logger=require(_0x2848('0x1'))(_0x2848('0x2'));module[_0x2848('0x3')]=function(_0x3ac5ad,_0x212891){var _0x7b4edd={'method':_0x2848('0x4'),'uri':url[_0x2848('0x5')](_0x212891[_0x2848('0x6')],'/token'),'form':{'grant_type':_0x2848('0x7'),'username':_0x212891[_0x2848('0x8')],'password':_0x212891['password']},'json':!![]};return rp(_0x7b4edd)[_0x2848('0x9')](function(_0x48c0f3){var _0x53c865={'method':_0x2848('0x4'),'uri':url['resolve'](_0x212891[_0x2848('0xa')],'/api/NaturalDialogAssistant/v1/Run'),'body':{'type':_0x212891['ndaactivity_type']||'message','channelId':_0x2848('0xb'),'conversation':{'id':_0x3ac5ad[_0x2848('0xc')]},'from':{'id':_0x3ac5ad[_0x2848('0xd')],'name':_0x3ac5ad[_0x2848('0xe')]},'recipient':{'id':_0x3ac5ad[_0x2848('0xf')],'name':_0x3ac5ad[_0x2848('0x10')]},'text':_0x212891['text'],'channelData':{}},'headers':{'Authorization':'Bearer\x20'+_0x48c0f3[_0x2848('0x11')]},'json':!![]};if(_0x212891[_0x2848('0x12')]){_0x53c865[_0x2848('0x13')]['channelData'][_0x2848('0x14')]=_0x212891[_0x2848('0x12')];}if(_0x212891[_0x2848('0x15')]=='1'){_0x53c865['body'][_0x2848('0x16')]['AudioOutputSettings']={'Generate':!![],'PutInStructuredPart':![],'ExpectedFormat':_0x2848('0x17')};}if(_0x212891['custom_action']){_0x53c865[_0x2848('0x13')][_0x2848('0x16')][_0x2848('0x18')]=_0x212891['custom_action'];if(_0x212891['custom_action_data']){_0x53c865['body']['channelData'][_0x2848('0x19')]=_0x212891[_0x2848('0x1a')];}}logger[_0x2848('0x1b')](JSON[_0x2848('0x1c')](_0x53c865));return rp(_0x53c865);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x88ce=['exports','./lib/api'];(function(_0x54f73e,_0x4946c1){var _0x5ed7cd=function(_0x4a93bb){while(--_0x4a93bb){_0x54f73e['push'](_0x54f73e['shift']());}};_0x5ed7cd(++_0x4946c1);}(_0x88ce,0x159));var _0xe88c=function(_0x462da8,_0x2ff3b3){_0x462da8=_0x462da8-0x0;var _0xd710c4=_0x88ce[_0x462da8];return _0xd710c4;};'use strict';var asr=require(_0xe88c('0x0'));module[_0xe88c('0x1')]=function(_0x5bd855,_0x13030b,_0x4f6c83,_0x30a80e){return asr(_0x5bd855,_0x13030b,_0x4f6c83,_0x30a80e);};
\ No newline at end of file
+var _0xdc3a=['exports','./lib/api'];(function(_0x54b6fa,_0x3d5fb2){var _0x2216d3=function(_0x5dda8b){while(--_0x5dda8b){_0x54b6fa['push'](_0x54b6fa['shift']());}};_0x2216d3(++_0x3d5fb2);}(_0xdc3a,0x14b));var _0xadc3=function(_0x3d58e7,_0x4350fd){_0x3d58e7=_0x3d58e7-0x0;var _0xb855cd=_0xdc3a[_0x3d58e7];return _0xb855cd;};'use strict';var asr=require(_0xadc3('0x0'));module[_0xadc3('0x1')]=function(_0x5ece79,_0x108001,_0x5755c4,_0x24f277){return asr(_0x5ece79,_0x108001,_0x5755c4,_0x24f277);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5138=['bluebird','../../../../../../config/logger','agi','exports','info','wss://runa.tilde.lv/client/ws/speech/LVASR-ONLINE','createHash','update','digest','hex','Open\x20Tilde\x20ASR\x20socket','unix','send','stringify','createReadStream','data','close','EOS','error','Tilde\x20ASR\x20send\x20error','parse','result','final','Tilde\x20ASR\x20hypoteses','hypotheses','transcript','likelihood','Success.','terminate','No\x20speech.\x20Sent\x20when\x20the\x20incoming\x20audio\x20contains\x20a\x20large\x20portion\x20of\x20silence\x20or\x20non-speech','Aborted.\x20Recognition\x20was\x20aborted\x20for\x20some\x20reason.','Not\x20available.\x20Max\x20load\x20limit\x20reached.','Authentication\x20failed.','All\x20recognition\x20workers\x20are\x20currently\x20in\x20use\x20and\x20real-time\x20recognition\x20is\x20not\x20possible.','Tilde\x20ASR\x20parse\x20error','Close\x20Tilde\x20ASR\x20socket','Error\x20Tilde\x20ASR\x20socket','isNil','isObject','open','message'];(function(_0x4b369d,_0x265eb8){var _0x571a98=function(_0x56341a){while(--_0x56341a){_0x4b369d['push'](_0x4b369d['shift']());}};_0x571a98(++_0x265eb8);}(_0x5138,0x1c3));var _0x8513=function(_0x406696,_0x39f9b1){_0x406696=_0x406696-0x0;var _0x10e35c=_0x5138[_0x406696];return _0x10e35c;};'use strict';var BPromise=require(_0x8513('0x0'));var _=require('lodash');var fs=require('fs');var WebSocket=require('ws');var moment=require('moment');var crypto=require('crypto');var logger=require(_0x8513('0x1'))(_0x8513('0x2'));module[_0x8513('0x3')]=function(_0x46aba0,_0x1f8e74,_0x12e1cf,_0x34f0b1){return new BPromise(function(_0x47e7b0,_0x46a8fc){logger[_0x8513('0x4')]('Tilde\x20URI',_0x34f0b1||_0x8513('0x5'));var _0x3243b9=new WebSocket(_0x34f0b1||_0x8513('0x5'),{'perMessageDeflate':![]});var _0x576999='';var _0x3bfb0c='0';var _0x2e8952='1';var _0x171387='No\x20speech.\x20Sent\x20when\x20the\x20incoming\x20audio\x20contains\x20a\x20large\x20portion\x20of\x20silence\x20or\x20non-speech';function _0xe024dc(_0x1e9ea8){var _0x572294=crypto[_0x8513('0x6')]('sha1');_0x572294[_0x8513('0x7')](_0x1e9ea8);return _0x572294[_0x8513('0x8')](_0x8513('0x9'));}function _0x19e358(){try{logger[_0x8513('0x4')](_0x8513('0xa'));var _0x55fe86=moment()[_0x8513('0xb')]();var _0x4e61c3=_0xe024dc(_0x55fe86+_0x1f8e74+_0x12e1cf);_0x3243b9[_0x8513('0xc')](JSON[_0x8513('0xd')]({'appID':_0x1f8e74,'timestamp':_0x55fe86,'appKey':_0x4e61c3}));var _0x4f5af2=fs[_0x8513('0xe')](_0x46aba0);_0x4f5af2['on'](_0x8513('0xf'),function(_0x3772c9){_0x3243b9[_0x8513('0xc')](_0x3772c9);});_0x4f5af2['on'](_0x8513('0x10'),function(){_0x3243b9[_0x8513('0xc')](_0x8513('0x11'));});}catch(_0x4e3aad){logger[_0x8513('0x12')](_0x8513('0x13'),JSON[_0x8513('0xd')](_0x4e3aad));_0x3243b9['terminate']();}}function _0x392685(_0x3d21ed){try{if(_0x3d21ed){var _0x543dc1=JSON[_0x8513('0x14')](_0x3d21ed);switch(_0x543dc1['status']){case 0x0:if(_0x543dc1[_0x8513('0x15')]){if(_0x543dc1['result'][_0x8513('0x16')]){logger['info'](_0x8513('0x17'),JSON['stringify'](_0x543dc1['result'][_0x8513('0x18')]));_0x576999=_0x543dc1['result'][_0x8513('0x18')][0x0][_0x8513('0x19')];_0x3bfb0c=_0x543dc1[_0x8513('0x15')]['hypotheses'][0x0][_0x8513('0x1a')];_0x2e8952='0';_0x171387=_0x8513('0x1b');_0x3243b9[_0x8513('0x1c')]();}}break;case 0x1:logger['info']('No\x20speech.\x20Sent\x20when\x20the\x20incoming\x20audio\x20contains\x20a\x20large\x20portion\x20of\x20silence\x20or\x20non-speech');_0x2e8952='1';_0x171387=_0x8513('0x1d');break;case 0x2:logger[_0x8513('0x4')](_0x8513('0x1e'));_0x2e8952='2';_0x171387='Aborted.\x20Recognition\x20was\x20aborted\x20for\x20some\x20reason.';break;case 0x9:logger['info'](_0x8513('0x1f'));_0x2e8952='9';_0x171387=_0x8513('0x1f');break;case 0xa:logger[_0x8513('0x4')](_0x8513('0x20'));_0x2e8952='10';_0x171387=_0x8513('0x20');break;case 0xb:logger[_0x8513('0x4')](_0x8513('0x21'));_0x2e8952='11';_0x171387='All\x20recognition\x20workers\x20are\x20currently\x20in\x20use\x20and\x20real-time\x20recognition\x20is\x20not\x20possible.';}}}catch(_0x49c1f0){logger[_0x8513('0x12')](_0x8513('0x22'),JSON[_0x8513('0xd')](_0x49c1f0));_0x3243b9['terminate']();}}function _0x184769(){logger[_0x8513('0x4')](_0x8513('0x23'));_0x47e7b0({'transcript':_0x576999,'confidence':_0x3bfb0c,'status':_0x2e8952,'status_message':_0x171387});}function _0x261701(_0x6aa03d){logger[_0x8513('0x12')](_0x8513('0x24'));if(!_[_0x8513('0x25')](_0x6aa03d)){logger[_0x8513('0x12')](_[_0x8513('0x26')](_0x6aa03d)?JSON[_0x8513('0xd')](_0x6aa03d):_0x6aa03d);}}_0x3243b9['on'](_0x8513('0x27'),_0x19e358);_0x3243b9['on'](_0x8513('0x28'),_0x392685);_0x3243b9['on'](_0x8513('0x10'),_0x184769);_0x3243b9['on'](_0x8513('0x12'),_0x261701);});};
\ No newline at end of file
+var _0x5035=['data','send','close','EOS','error','Tilde\x20ASR\x20send\x20error','terminate','parse','status','result','final','Tilde\x20ASR\x20hypoteses','transcript','hypotheses','likelihood','No\x20speech.\x20Sent\x20when\x20the\x20incoming\x20audio\x20contains\x20a\x20large\x20portion\x20of\x20silence\x20or\x20non-speech','Aborted.\x20Recognition\x20was\x20aborted\x20for\x20some\x20reason.','Not\x20available.\x20Max\x20load\x20limit\x20reached.','Authentication\x20failed.','All\x20recognition\x20workers\x20are\x20currently\x20in\x20use\x20and\x20real-time\x20recognition\x20is\x20not\x20possible.','Close\x20Tilde\x20ASR\x20socket','Error\x20Tilde\x20ASR\x20socket','isNil','open','message','lodash','moment','crypto','../../../../../../config/logger','agi','exports','Tilde\x20URI','wss://runa.tilde.lv/client/ws/speech/LVASR-ONLINE','createHash','sha1','info','Open\x20Tilde\x20ASR\x20socket','unix','stringify','createReadStream'];(function(_0x49c320,_0x502620){var _0x5c3f14=function(_0xf5061e){while(--_0xf5061e){_0x49c320['push'](_0x49c320['shift']());}};_0x5c3f14(++_0x502620);}(_0x5035,0x1d1));var _0x5503=function(_0x203a4b,_0x1c1c2b){_0x203a4b=_0x203a4b-0x0;var _0x2c8ba0=_0x5035[_0x203a4b];return _0x2c8ba0;};'use strict';var BPromise=require('bluebird');var _=require(_0x5503('0x0'));var fs=require('fs');var WebSocket=require('ws');var moment=require(_0x5503('0x1'));var crypto=require(_0x5503('0x2'));var logger=require(_0x5503('0x3'))(_0x5503('0x4'));module[_0x5503('0x5')]=function(_0x3b882b,_0x4d81a0,_0x4c8dae,_0x3d0003){return new BPromise(function(_0x21df1b,_0x422fde){logger['info'](_0x5503('0x6'),_0x3d0003||_0x5503('0x7'));var _0x8a6f9b=new WebSocket(_0x3d0003||_0x5503('0x7'),{'perMessageDeflate':![]});var _0x1555be='';var _0x28a014='0';var _0xe92db9='1';var _0x152cea='No\x20speech.\x20Sent\x20when\x20the\x20incoming\x20audio\x20contains\x20a\x20large\x20portion\x20of\x20silence\x20or\x20non-speech';function _0x13d179(_0x21e971){var _0x43e172=crypto[_0x5503('0x8')](_0x5503('0x9'));_0x43e172['update'](_0x21e971);return _0x43e172['digest']('hex');}function _0x3e19a8(){try{logger[_0x5503('0xa')](_0x5503('0xb'));var _0x3f50f3=moment()[_0x5503('0xc')]();var _0x1cb21b=_0x13d179(_0x3f50f3+_0x4d81a0+_0x4c8dae);_0x8a6f9b['send'](JSON[_0x5503('0xd')]({'appID':_0x4d81a0,'timestamp':_0x3f50f3,'appKey':_0x1cb21b}));var _0x528233=fs[_0x5503('0xe')](_0x3b882b);_0x528233['on'](_0x5503('0xf'),function(_0x597e09){_0x8a6f9b[_0x5503('0x10')](_0x597e09);});_0x528233['on'](_0x5503('0x11'),function(){_0x8a6f9b[_0x5503('0x10')](_0x5503('0x12'));});}catch(_0x12b302){logger[_0x5503('0x13')](_0x5503('0x14'),JSON['stringify'](_0x12b302));_0x8a6f9b[_0x5503('0x15')]();}}function _0x55f06e(_0x404ff9){try{if(_0x404ff9){var _0xf4d6c5=JSON[_0x5503('0x16')](_0x404ff9);switch(_0xf4d6c5[_0x5503('0x17')]){case 0x0:if(_0xf4d6c5[_0x5503('0x18')]){if(_0xf4d6c5[_0x5503('0x18')][_0x5503('0x19')]){logger[_0x5503('0xa')](_0x5503('0x1a'),JSON[_0x5503('0xd')](_0xf4d6c5['result']['hypotheses']));_0x1555be=_0xf4d6c5[_0x5503('0x18')]['hypotheses'][0x0][_0x5503('0x1b')];_0x28a014=_0xf4d6c5['result'][_0x5503('0x1c')][0x0][_0x5503('0x1d')];_0xe92db9='0';_0x152cea='Success.';_0x8a6f9b['terminate']();}}break;case 0x1:logger[_0x5503('0xa')](_0x5503('0x1e'));_0xe92db9='1';_0x152cea=_0x5503('0x1e');break;case 0x2:logger['info'](_0x5503('0x1f'));_0xe92db9='2';_0x152cea=_0x5503('0x1f');break;case 0x9:logger[_0x5503('0xa')](_0x5503('0x20'));_0xe92db9='9';_0x152cea='Not\x20available.\x20Max\x20load\x20limit\x20reached.';break;case 0xa:logger[_0x5503('0xa')](_0x5503('0x21'));_0xe92db9='10';_0x152cea=_0x5503('0x21');break;case 0xb:logger[_0x5503('0xa')](_0x5503('0x22'));_0xe92db9='11';_0x152cea=_0x5503('0x22');}}}catch(_0x17883b){logger[_0x5503('0x13')]('Tilde\x20ASR\x20parse\x20error',JSON[_0x5503('0xd')](_0x17883b));_0x8a6f9b[_0x5503('0x15')]();}}function _0x5e5505(){logger[_0x5503('0xa')](_0x5503('0x23'));_0x21df1b({'transcript':_0x1555be,'confidence':_0x28a014,'status':_0xe92db9,'status_message':_0x152cea});}function _0x4a943d(_0x32738a){logger['error'](_0x5503('0x24'));if(!_[_0x5503('0x25')](_0x32738a)){logger['error'](_['isObject'](_0x32738a)?JSON[_0x5503('0xd')](_0x32738a):_0x32738a);}}_0x8a6f9b['on'](_0x5503('0x26'),_0x3e19a8);_0x8a6f9b['on'](_0x5503('0x27'),_0x55f06e);_0x8a6f9b['on'](_0x5503('0x11'),_0x5e5505);_0x8a6f9b['on'](_0x5503('0x13'),_0x4a943d);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe2d3=['exports','./asr'];(function(_0xf58f18,_0x38d3dc){var _0xb0e726=function(_0x451c5e){while(--_0x451c5e){_0xf58f18['push'](_0xf58f18['shift']());}};_0xb0e726(++_0x38d3dc);}(_0xe2d3,0x1d1));var _0x3e2d=function(_0x581960,_0x1232ff){_0x581960=_0x581960-0x0;var _0x4ee892=_0xe2d3[_0x581960];return _0x4ee892;};var asr=require(_0x3e2d('0x0'));module[_0x3e2d('0x1')]={'asr':asr};
\ No newline at end of file
+var asr=require('./asr');module['exports']={'asr':asr};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5683=['listening','emit','connection','getConnections','E_AGI_SERVER_ERROR','E_AGI_SERVER_VOICE_DISABLED','destroy','E_AGI_SERVER_MAXCONNECTION','code','close','E_AGI_SERVER_CLOSE','nextTick','inherits','util','net','EventEmitter','./error','./channel','127.0.0.1','call','error','E_AGI_ARGUMENT_PORT','createServer','listen'];(function(_0xca11dd,_0x4d8b1d){var _0x38aef6=function(_0x2cd873){while(--_0x2cd873){_0xca11dd['push'](_0xca11dd['shift']());}};_0x38aef6(++_0x4d8b1d);}(_0x5683,0x1bd));var _0x3568=function(_0x1ccdf7,_0x215d5a){_0x1ccdf7=_0x1ccdf7-0x0;var _0x52a0ae=_0x5683[_0x1ccdf7];return _0x52a0ae;};'use strict';var util=require(_0x3568('0x0'));var net=require(_0x3568('0x1'));var EventEmitter=require('events')[_0x3568('0x2')];var AGIError=require(_0x3568('0x3'));var AGIChannel=require(_0x3568('0x4'));var AGIServer=function(_0x487dac,_0x4763df,_0x77c3b7){var _0x2c259a=this,_0x487dac=_0x487dac||0x11dd,_0x4763df=_0x4763df||_0x3568('0x5'),_0xbee6e4=null,_0x438629=0x0;EventEmitter[_0x3568('0x6')](_0x2c259a);function _0x530446(){if(!_0x487dac){_0x2c259a['emit'](_0x3568('0x7'),new AGIError(_0x3568('0x8')));return![];}_0xbee6e4=net[_0x3568('0x9')]();_0xbee6e4[_0x3568('0xa')](_0x487dac,_0x4763df);_0xbee6e4['on'](_0x3568('0xb'),function(){_0x2c259a[_0x3568('0xc')](_0x3568('0xb'));});_0xbee6e4['on'](_0x3568('0xd'),function(_0x1dad86){_0xbee6e4[_0x3568('0xe')](function(_0x2aed15,_0x1e5fc0){if(_0x2aed15){_0x2c259a['emit'](_0x3568('0x7'),new AGIError(_0x3568('0xf'),_0x2aed15));}else if(_0x77c3b7&&_0x77c3b7<0x0){_0x2c259a[_0x3568('0xc')](_0x3568('0x7'),new AGIError(_0x3568('0x10')));_0x1dad86[_0x3568('0x11')]();}else if(_0x77c3b7&&_0x77c3b7>0x0&&_0x77c3b7<_0x1e5fc0){_0x438629+=0x1;_0x2c259a[_0x3568('0xc')]('error',new AGIError(_0x3568('0x12'),_0x438629));_0x1dad86['destroy']();}else{var _0xb87b73=new AGIChannel(_0x1dad86);_0xb87b73['on']('ready',function(){_0x2c259a[_0x3568('0xc')](_0x3568('0xd'),_0xb87b73);});}});});_0xbee6e4['on']('error',function(_0x5e0e0e){_0x2c259a[_0x3568('0xc')](_0x3568('0x7'),new AGIError(_0x3568('0xf'),_0x5e0e0e[_0x3568('0x13')]));});_0xbee6e4['on'](_0x3568('0x14'),function(){_0x2c259a[_0x3568('0xc')](_0x3568('0x14'),new AGIError(_0x3568('0x15')));});}process[_0x3568('0x16')](function(){_0x530446();});};util[_0x3568('0x17')](AGIServer,EventEmitter);module['exports']=function(_0x307624,_0x180f9a,_0x340990){return new AGIServer(_0x307624,_0x180f9a,_0x340990);};
\ No newline at end of file
+var _0xd851=['error','destroy','E_AGI_SERVER_MAXCONNECTION','E_AGI_SERVER_ERROR','code','close','nextTick','inherits','exports','util','net','EventEmitter','./error','call','emit','E_AGI_ARGUMENT_PORT','createServer','listen','listening','connection','getConnections'];(function(_0x1f9f37,_0x18776e){var _0x21c080=function(_0x4acb93){while(--_0x4acb93){_0x1f9f37['push'](_0x1f9f37['shift']());}};_0x21c080(++_0x18776e);}(_0xd851,0x1d7));var _0x1d85=function(_0x575057,_0x14baf3){_0x575057=_0x575057-0x0;var _0x49dbc8=_0xd851[_0x575057];return _0x49dbc8;};'use strict';var util=require(_0x1d85('0x0'));var net=require(_0x1d85('0x1'));var EventEmitter=require('events')[_0x1d85('0x2')];var AGIError=require(_0x1d85('0x3'));var AGIChannel=require('./channel');var AGIServer=function(_0x109777,_0x5dc143,_0x2c9476){var _0x1e4365=this,_0x109777=_0x109777||0x11dd,_0x5dc143=_0x5dc143||'127.0.0.1',_0x1c7a65=null,_0x3e0e6c=0x0;EventEmitter[_0x1d85('0x4')](_0x1e4365);function _0x1899f5(){if(!_0x109777){_0x1e4365[_0x1d85('0x5')]('error',new AGIError(_0x1d85('0x6')));return![];}_0x1c7a65=net[_0x1d85('0x7')]();_0x1c7a65[_0x1d85('0x8')](_0x109777,_0x5dc143);_0x1c7a65['on']('listening',function(){_0x1e4365['emit'](_0x1d85('0x9'));});_0x1c7a65['on'](_0x1d85('0xa'),function(_0x5babdd){_0x1c7a65[_0x1d85('0xb')](function(_0x469e8d,_0x21717d){if(_0x469e8d){_0x1e4365[_0x1d85('0x5')](_0x1d85('0xc'),new AGIError('E_AGI_SERVER_ERROR',_0x469e8d));}else if(_0x2c9476&&_0x2c9476<0x0){_0x1e4365['emit'](_0x1d85('0xc'),new AGIError('E_AGI_SERVER_VOICE_DISABLED'));_0x5babdd[_0x1d85('0xd')]();}else if(_0x2c9476&&_0x2c9476>0x0&&_0x2c9476<_0x21717d){_0x3e0e6c+=0x1;_0x1e4365[_0x1d85('0x5')](_0x1d85('0xc'),new AGIError(_0x1d85('0xe'),_0x3e0e6c));_0x5babdd[_0x1d85('0xd')]();}else{var _0xd81047=new AGIChannel(_0x5babdd);_0xd81047['on']('ready',function(){_0x1e4365[_0x1d85('0x5')](_0x1d85('0xa'),_0xd81047);});}});});_0x1c7a65['on'](_0x1d85('0xc'),function(_0x5b6f71){_0x1e4365[_0x1d85('0x5')]('error',new AGIError(_0x1d85('0xf'),_0x5b6f71[_0x1d85('0x10')]));});_0x1c7a65['on'](_0x1d85('0x11'),function(){_0x1e4365[_0x1d85('0x5')]('close',new AGIError('E_AGI_SERVER_CLOSE'));});}process[_0x1d85('0x12')](function(){_0x1899f5();});};util[_0x1d85('0x13')](AGIServer,EventEmitter);module[_0x1d85('0x14')]=function(_0x10ff87,_0x595d94,_0x3f3bce){return new AGIServer(_0x10ff87,_0x595d94,_0x3f3bce);};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0294=['number','timeout','includes','PUT','toUpperCase','body','parse','rawBody','headers','An\x20incorrect\x20formatted\x20json\x20headers\x20has\x20been\x20passed\x20to\x20the\x20function','sync','uri','render','stringify','An\x20incorrect\x20formatted\x20json\x20has\x20been\x20passed\x20to\x20the\x20function','statusCode','statusMessage','500\x20-\x20Internal\x20Server\x20Error','options','googleDialogflow','key','dialogflow_language','googleDialogflowV2','dialogflowV2_project_id','client_email','dialogflowV2_language','sestekNDA','ispeechTTS','speed','ispeechASR','ispeech_asr_language','isConfigured','model','awsPolly','aws_access_key_id','aws_secret_access_key','aws_polly_voice','Amy','aws_text_type','awsLex','aws_lex_region','aws_bot_name','googleASR','google_asr_language','tildeASR','appsecret','clear','clone','hasOwnProperty','isString','replaceObjectAllVariables','recursiveNodeIndex','isArray','length','replaceAllVariables','saveRestApiResult','%s.%s','setVariable','split','replaceAll','extra','getAndSetVariable','result','The\x20\x22%s\x22\x20variable\x20value\x20is:\x20%s','maxRetry','retry','mrcpsynth','noop','Executed\x20command\x20MRCPSynth\x20%s','no\x20grammar\x20configured','grammar','MRCPRecog','MRCP_RECOG_CONFIDENCE','MRCP_RECOG_TRANSCRIPT','RECOG_INSTANCE()','MRCP_RECOG_INSTANCE','Executed\x20command\x20MRCPRecog\x20%s','Enter\x20in\x20AGI\x20(%s)\x20block','command','args','answer','Enter\x20in\x20ANSWER\x20(%s)\x20block','Wait\x20%s\x20seconds\x20before\x20answer','wait','callback','Enter\x20in\x20CALLBACK\x20(%s)\x20block','no\x20list\x20selected','delay','minutes','CALLBACK\x20added\x20phone:\x20%s\x20on\x20list:\x20%s\x20at\x20%s','custom_app','Enter\x20in\x20CUSTOM\x20APP\x20(%s)\x20block','Executed\x20command\x20%s\x20%s','application','lumenvoxtts','no\x20text\x20configured','sestektts','Enter\x20in\x20SESTEKTTS\x20(%s)\x20block','MRCPSynth','RECOG_CONFIDENCE()','LUMENVOX_ASR_CONFIDENCE','LUMENVOX_ASR_TRANSCRIPT','sestekasr','Enter\x20in\x20SESTEKASR\x20(%s)\x20block','SESTEK_ASR_CONFIDENCE','RECOG_INPUT()','SESTEK_ASR_TRANSCRIPT','database','Enter\x20in\x20DATABASE\x20(%s)\x20block','odbc_id','no\x20odbc\x20database\x20found','no\x20query\x20configured','getQueryOdbc','variable_id','no\x20variable\x20selected\x20for\x20the\x20result','no\x20variable\x20found','forEach','keys','%s[%s][%s]','%s_ROWS_COUNT','variable\x20%s\x20set','dial','debug','Enter\x20in\x20DIAL\x20(%s)\x20block','sip_id','no\x20user\x20selected','no\x20user\x20found','DIAL','opts','Executed\x20command\x20%s','Enter\x20in\x20DIALOGFLOW\x20(%s)\x20block','no\x20key\x20configured','Trying\x20Dialogflow:\x20%s','speech','dialogflow','Dialogflow\x20Result\x20%s','Enter\x20in\x20DIALOGFLOW\x20V2\x20(%s)\x20block','no\x20project_id\x20configured','no\x20client_email\x20configured','private_key','no\x20anguage\x20configured','bot','Trying\x20DialogflowV2:\x20%s','providerResponse','DIALOGFLOW_%s','dialogflowV2','DialogflowV2\x20Result\x20%s','DialogflowV2\x20is\x20unreachable','ndauth_url','no\x20ndauth\x20url\x20configured','username','no\x20username\x20configured','password','no\x20password\x20configured','ndassistant_url','Trying\x20SestekNDA:\x20%s','SESTEK_NDA_%s','sesteknda','audiofile','streamFile','unlink','.wav','SestekNDA\x20is\x20unreachable','Enter\x20in\x20EXTERNAL\x20DIAL\x20(%s)\x20block','no\x20trunk\x20selected','trunk_id','no\x20trunk\x20found','trunk_name','SIP/%s/%s','finally','Enter\x20in\x20FINALLY\x20(%s)\x20block','file_id','no\x20file\x20audio\x20selected','getSound','no\x20file\x20audio\x20found','getData','response','maxdigit','test','mindigit','hiddendigitsnum','generate','hiddendigitspos','first','substr','getsecretdigits','Enter\x20in\x20GETSECRETDIGITS\x20(%s)\x20block','Enter\x20in\x20GOAL\x20(%s)\x20block','GOAL\x20%s','awspolly','[AGI]\x20Enter\x20in\x20AWSPOLLY\x20(%s)\x20block','no\x20valid\x20credentials\x20configured','Trying\x20aws\x20Polly\x20%s','aws\x20Polly\x20is\x20unreachable','Enter\x20in\x20Amazon\x20Lex\x20(%s)\x20block','Trying\x20Amazon\x20Lex:\x20%s','message','Amazon\x20Lex\x20ready\x20for\x20fulfillment','out','amazonlex','Amazon\x20Lex\x20Result\x20%s','wav','%s/recordings/%s','beep','NOBEEP','intKey','google\x20%s\x20file\x20created','GOOGLE_ASR_%s','Enter\x20in\x20TILDEASR\x20(%s)\x20block','no\x20appid\x20configured','no\x20appsecret\x20configured','recordFile','TILDE_ASR_%s','TildeASR\x20Result\x20%s','Enter\x20in\x20GOTO\x20(%s)\x20block','continueAt','gotoif','Enter\x20in\x20GOTOIF\x20(%s)\x20block','condition','no\x20condition\x20configured','true','false','EVAL\x20CONDITION\x20%s\x20%s','gotoiftime','Enter\x20in\x20GOTOIFTIME\x20(%s)\x20block','interval_id','no\x20interval\x20configured','IFTIME(%s?true:false)','IFTIME\x20%s\x20%s','hangup','Enter\x20in\x20HANGUP\x20(%s)\x20block','ispeechasr','ispeech\x20%s\x20file\x20created','ISPEECH_ASR_%s','ispeechtts','Enter\x20in\x20ISPEECHTTS\x20(%s)\x20block','Enter\x20in\x20LOGIN\x20(%s)\x20block','findBy','no\x20find\x20by\x20configured','FIND\x20AGENT\x20%s\x20BY\x20%s','AGENT\x20%s\x20FOUND\x20BY','AGENT\x20%s\x20NOT\x20FOUND\x20BY','failure','logout','Enter\x20in\x20LOGOUT\x20(%s)\x20block','success','math','Enter\x20in\x20MATH\x20(%s)\x20block','math\x20%s','operation','%s[%s]','variable\x20%s[key]\x20set','Enter\x20in\x20NOOP\x20(%s)\x20block','output','pause','Enter\x20in\x20PAUSE\x20(%s)\x20block','playback','PLAYBACK','queue','queue_id','no\x20queue\x20selected','no\x20queue\x20found','indexOf','XMCS-QUEUE','toLowerCase','macro','gosub','position','QUEUE','record','recordingFormat','%s_%s','%s/recordings/%s.%s','RECORDING_SAVENAME','Recording\x20%s\x20%s\x20%s\x20%s','escape_digits','Enter\x20in\x20RESTAPI\x20(%s)\x20block','no\x20url\x20configured','Response:','inspect','no\x20variable\x20selected\x20for\x20the\x20response','%s_STATUS_CODE','%s_STATUS_MESSAGE','Unable\x20to\x20set\x20result\x20in\x20variable\x20%s','saydigits','sayDigits','saynumber','Enter\x20in\x20SAYNUMBER\x20(%s)\x20block','sayNumber','sayphonetic','Enter\x20in\x20SAYPHONETIC\x20(%s)\x20block','sayPhonetic','sendMail','Enter\x20in\x20SENDMAIL\x20(%s)\x20block','no\x20mail\x20account\x20configured','Smtp','no\x20mail\x20account\x20found','\x22%s\x22\x20<%s>','email','user','bcc','service','host','port','secure','authentication','auth','pass','sendMail\x20message','account_id','Trying\x20SendMail\x20with\x20account\x20%s','sendFax','SENDFAX\x20block\x20not\x20implemented','Enter\x20in\x20SENDSMS\x20(%s)\x20block','sms_account_id','no\x20sms\x20account\x20configured','no\x20sms\x20account\x20found','Trying\x20SendSMS\x20with\x20account\x20%s','set','no\x20variable\x20selected','variable_value','start','yes','Answer','subproject','Enter\x20in\x20SUBPROJECT\x20(%s)\x20block','project_id','no\x20subproject\x20found\x20with\x20id\x20%d','project\x20in\x20subproject\x20must\x20be\x20different\x20from\x20the\x20called\x20project','AGI','agi://%s/square,\x22%s\x22,\x22%s\x22','127.0.0.1','arg_1','system','Enter\x20in\x20SYSTEM\x20(%s)\x20block','sh\x20command:\x20%s\x20result\x20on\x20variable:\x20%s','sh\x20command:\x20%s\x20result\x20no\x20stored','no\x20apiKey\x20configured','Trying\x20Google\x20Cloud\x20TTS\x20%s','Google\x20Cloud\x20TTS\x20%s\x20file\x20created','tts','Enter\x20in\x20GOOGLETTS\x20(%s)\x20block','Google\x20TTS\x20%s\x20file\x20created','unpause','Enter\x20in\x20UNPAUSE\x20(%s)\x20block','VOICEMAIL','mailbox','vswitch','Enter\x20in\x20SWITCH\x20(%s)\x20block','exports','path','lodash','odbc','moment','mustache','../../config/logger','agi','../../config/environment','./scripts','/var/opt/motion2/server/files','rawHeaders','menu','getdigits','channel','rpc','prototype','getVariable','getVariableById','then','name','catch','getVoiceQueue','getVoiceQueueById','getSquareProject','getSquareProjectById','getSquareOdbc','getSquareOdbcById','dsn','getUser','getUserById','getTrunk','getTrunkById','getSoundById','getSoundPath','save_name','getMailAccount','getMailAccountById','sendMailMessage','getIntervals','IntervalId','interval','map','Intervals','format','%s/sounds/converted/%s','open','error','Error\x20getting\x20ODBC\x20connection\x20%s','ODBC\x20connection\x20successfully','query','info','Error\x20executing\x20query\x20%s','Query\x20executed\x20correctly\x20%s','close','Error\x20closing\x20connection\x20to\x20odbc\x20%s','getSmsAccount','getSmsAccountById','createSmsMessage','createSquareDetailsReport','uniqueid','label','agicommand','callerid','createSquareRecording','calleridname','context','extension','priority','accountcode','dnid','file','createSquareMessage','createCmContact','isEmpty','random','lastName','phone','list_id','scheduledAt','Callback\x20scheduled\x20at\x20','toString','callback_priority','getPause','getPauseById','agentPause','agentUnpause','agent','isNil','agentLogout','%s/%s@from-sip/n','agentLogin','shellCommand','exec','trim','replace','googleCloudTTS','apiKey','google_cloud_tts_text_type','text','languageCode','en-US','ssmlGender','MALE','MP3','googleTTS','google_tts_language','restAPI','url','method'];(function(_0x8ba19a,_0x1d2b2b){var _0x2bd8b4=function(_0xee823f){while(--_0xee823f){_0x8ba19a['push'](_0x8ba19a['shift']());}};_0x2bd8b4(++_0x1d2b2b);}(_0x0294,0x15e));var _0x4029=function(_0x4fb540,_0x29418f){_0x4fb540=_0x4fb540-0x0;var _0x58f641=_0x0294[_0x4fb540];return _0x58f641;};'use strict';var fs=require('fs');var path=require(_0x4029('0x0'));var util=require('util');var _=require(_0x4029('0x1'));var sh=require('shelljs');var odbc=require(_0x4029('0x2'))();var rs=require('randomstring');var moment=require(_0x4029('0x3'));var Mustache=require(_0x4029('0x4'));var rp=require('request-promise');var logger=require(_0x4029('0x5'))(_0x4029('0x6'));var config=require(_0x4029('0x7'));var scripts=require(_0x4029('0x8'));var FILES_PATH=_0x4029('0x9');var recursiveMapAttributes=[_0x4029('0xa'),'rawBody'];var verticesWithRetry=[_0x4029('0xb'),_0x4029('0xc'),'getsecretdigits'];var AGIVertices=function(_0x16896d,_0x34ba1c,_0x4ca7a7){this[_0x4029('0xd')]=_0x16896d;this[_0x4029('0xe')]=_0x34ba1c;this['mailRpc']=_0x4ca7a7;};AGIVertices[_0x4029('0xf')][_0x4029('0x10')]=function(_0x56bf8a,_0xe2fd0d){this['rpc'][_0x4029('0x11')](_0x56bf8a)[_0x4029('0x12')](function(_0x5639cb){_0xe2fd0d(null,_0x5639cb?_0x5639cb[_0x4029('0x13')]:![]);})[_0x4029('0x14')](function(_0x298e3d){_0xe2fd0d(_0x298e3d);});};AGIVertices[_0x4029('0xf')][_0x4029('0x15')]=function(_0x3f510a,_0x310672){this[_0x4029('0xe')][_0x4029('0x16')](_0x3f510a)[_0x4029('0x12')](function(_0x304930){_0x310672(null,_0x304930?_0x304930['name']:![]);})[_0x4029('0x14')](function(_0x3c19e9){_0x310672(_0x3c19e9);});};AGIVertices['prototype'][_0x4029('0x17')]=function(_0x1efcad,_0x1836fb){this[_0x4029('0xe')][_0x4029('0x18')](_0x1efcad)['then'](function(_0x7c151a){_0x1836fb(null,_0x7c151a?_0x7c151a['name']:![]);})[_0x4029('0x14')](function(_0x5f1beb){_0x1836fb(_0x5f1beb);});};AGIVertices[_0x4029('0xf')][_0x4029('0x19')]=function(_0x48d6b5,_0x26e649){this[_0x4029('0xe')][_0x4029('0x1a')](_0x48d6b5)['then'](function(_0x184848){_0x26e649(null,_0x184848?_0x184848[_0x4029('0x1b')]:![]);})['catch'](function(_0x48fa58){_0x26e649(_0x48fa58);});};AGIVertices[_0x4029('0xf')][_0x4029('0x1c')]=function(_0x423c1e,_0x316bca){this[_0x4029('0xe')][_0x4029('0x1d')](_0x423c1e)['then'](function(_0x45ce71){_0x316bca(null,_0x45ce71?_0x45ce71[_0x4029('0x13')]:![]);})['catch'](function(_0x553c81){_0x316bca(_0x553c81);});};AGIVertices[_0x4029('0xf')][_0x4029('0x1e')]=function(_0x436208,_0xc14312){this[_0x4029('0xe')][_0x4029('0x1f')](_0x436208)['then'](function(_0x52d126){_0xc14312(null,_0x52d126?_0x52d126[_0x4029('0x13')]:![]);})[_0x4029('0x14')](function(_0x5f042d){_0xc14312(_0x5f042d);});};AGIVertices['prototype']['getSound']=function(_0x4a2b25,_0x99504e){var _0x4206dc=this;this[_0x4029('0xe')][_0x4029('0x20')](_0x4a2b25)[_0x4029('0x12')](function(_0x2b8060){_0x99504e(null,_0x2b8060?_0x4206dc[_0x4029('0x21')](_0x2b8060[_0x4029('0x22')]):![]);})[_0x4029('0x14')](function(_0xed6de){_0x99504e(_0xed6de);});};AGIVertices[_0x4029('0xf')][_0x4029('0x23')]=function(_0x4dacef,_0x50b490){this['rpc'][_0x4029('0x24')](_0x4dacef)[_0x4029('0x12')](function(_0x104e29){_0x50b490(null,_0x104e29?_0x104e29:![]);})['catch'](function(_0x44bf74){_0x50b490(_0x44bf74);});};AGIVertices[_0x4029('0xf')]['sendMailMessage']=function(_0x49d49a,_0x67b8a8,_0x407f0c){this['mailRpc'][_0x4029('0x25')](_0x49d49a,_0x67b8a8)[_0x4029('0x12')](function(){_0x407f0c(null);})['catch'](function(_0x157260){_0x407f0c(_0x157260);});};AGIVertices[_0x4029('0xf')][_0x4029('0x26')]=function(_0x3050bf,_0x484f19){this['rpc']['getIntervalById'](_0x3050bf)[_0x4029('0x12')](function(_0x274a91){if(_0x274a91){if(_0x274a91[_0x4029('0x27')]){_0x484f19(null,[_0x274a91[_0x4029('0x28')]]);}else{_0x484f19(null,_[_0x4029('0x29')](_0x274a91[_0x4029('0x2a')],_0x4029('0x28')));}}else{_0x484f19(null,![]);}})['catch'](function(_0x43238c){_0x484f19(_0x43238c);});};AGIVertices[_0x4029('0xf')][_0x4029('0x21')]=function(_0x24fb92){return util[_0x4029('0x2b')](_0x4029('0x2c'),FILES_PATH,_0x24fb92);};AGIVertices[_0x4029('0xf')]['getQueryOdbc']=function(_0x27f308,_0x1b29e2,_0x4f034c){odbc[_0x4029('0x2d')](_0x27f308,function(_0x34964b){if(_0x34964b){logger[_0x4029('0x2e')](_0x4029('0x2f'),_0x34964b);_0x4f034c(_0x34964b);}else{logger['info'](_0x4029('0x30'));odbc[_0x4029('0x31')](_0x1b29e2,function(_0x57e8cf,_0x24f4f9){if(_0x57e8cf){logger[_0x4029('0x32')](_0x4029('0x33'),_0x1b29e2);_0x4f034c(_0x57e8cf);}else{logger[_0x4029('0x32')](_0x4029('0x34'),_0x1b29e2);odbc[_0x4029('0x35')](function(_0xb7a14b){if(_0xb7a14b){logger[_0x4029('0x2e')](_0x4029('0x36'),_0xb7a14b);}_0x4f034c(null,_0x24f4f9);});}});}});};AGIVertices['prototype'][_0x4029('0x37')]=function(_0x1badbf,_0x1ebd46){this[_0x4029('0xe')][_0x4029('0x38')](_0x1badbf)[_0x4029('0x12')](function(_0x35f111){_0x1ebd46(null,_0x35f111?_0x35f111:![]);})[_0x4029('0x14')](function(_0x5ac61a){_0x1ebd46(_0x5ac61a);});};AGIVertices[_0x4029('0xf')][_0x4029('0x39')]=function(_0x185549,_0x3333bf){this[_0x4029('0xe')]['createSmsMessage'](_0x185549)[_0x4029('0x12')](function(_0x1815a3){_0x3333bf(null,_0x1815a3);})[_0x4029('0x14')](function(_0x44fcbd){_0x3333bf(_0x44fcbd);});};AGIVertices[_0x4029('0xf')][_0x4029('0x3a')]=function(_0x299f2f,_0x162436,_0x247d95){this[_0x4029('0xe')][_0x4029('0x3a')]({'uniqueid':this[_0x4029('0xd')][_0x4029('0x3b')],'node':_0x299f2f[_0x4029('0x3c')],'application':_0x299f2f[_0x4029('0x3d')],'data':_0x162436||null,'project_name':this['channel']['arg_1'],'callerid':this[_0x4029('0xd')][_0x4029('0x3e')]})[_0x4029('0x12')](function(_0x586faf){if(_0x247d95){_0x247d95(null,_0x586faf);}})[_0x4029('0x14')](function(_0x24971a){if(_0x247d95){_0x247d95(_0x24971a);}});};AGIVertices[_0x4029('0xf')]['createSquareRecording']=function(_0x3c2ab0,_0x2536de,_0x429925,_0x3c3e54){this[_0x4029('0xe')][_0x4029('0x3f')]({'uniqueid':this[_0x4029('0xd')][_0x4029('0x3b')],'callerid':this['channel'][_0x4029('0x3e')],'calleridname':this[_0x4029('0xd')][_0x4029('0x40')],'context':this['channel'][_0x4029('0x41')],'extension':this[_0x4029('0xd')][_0x4029('0x42')],'priority':this['channel'][_0x4029('0x43')],'accountcode':this['channel'][_0x4029('0x44')],'dnid':this[_0x4029('0xd')][_0x4029('0x45')],'projectName':this[_0x4029('0xd')]['arg_1'],'saveName':_0x2536de,'filename':_0x3c2ab0[_0x4029('0x46')]||_0x2536de,'savePath':_0x429925})[_0x4029('0x12')](function(_0x247a3f){_0x3c3e54(null,_0x247a3f);})[_0x4029('0x14')](function(_0x40f6f2){_0x3c3e54(_0x40f6f2);});};AGIVertices[_0x4029('0xf')][_0x4029('0x47')]=function(_0x2627b5,_0x1103a5,_0x18151d,_0x3ec3c8,_0x272d12){this[_0x4029('0xe')][_0x4029('0x47')]({'uniqueid':this[_0x4029('0xd')][_0x4029('0x3b')],'body':_0x2627b5,'direction':_0x1103a5,'providerName':_0x18151d,'providerResponse':_0x3ec3c8})[_0x4029('0x12')](function(_0x380193){if(_0x272d12){_0x272d12(null,_0x380193);}})[_0x4029('0x14')](function(_0xe38665){if(_0x272d12){_0x272d12(_0xe38665);}});};AGIVertices[_0x4029('0xf')][_0x4029('0x48')]=function(_0x2f8463,_0x42f393){this[_0x4029('0xe')][_0x4029('0x48')]({'firstName':_[_0x4029('0x49')](_0x2f8463[_0x4029('0x13')])||_['isNil'](_0x2f8463[_0x4029('0x13')])?'callback_'+Math[_0x4029('0x4a')]():_0x2f8463['name'],'lastName':_['isEmpty'](_0x2f8463[_0x4029('0x4b')])||_['isNil'](_0x2f8463[_0x4029('0x4b')])?null:_0x2f8463[_0x4029('0x4b')],'phone':_0x2f8463[_0x4029('0x4c')],'ListId':_0x2f8463[_0x4029('0x4d')],'scheduledat':_0x2f8463[_0x4029('0x4e')],'callbackUniqueid':this[_0x4029('0xd')][_0x4029('0x3b')],'tags':'callback','description':_0x4029('0x4f')+_0x2f8463[_0x4029('0x4e')][_0x4029('0x50')](),'priority':_0x2f8463[_0x4029('0x51')]})[_0x4029('0x12')](function(_0x4c283a){_0x42f393(null,_0x4c283a);})[_0x4029('0x14')](function(_0x5ee83c){_0x42f393(_0x5ee83c);});};AGIVertices[_0x4029('0xf')][_0x4029('0x52')]=function(_0x227eba,_0x21c9d5){this[_0x4029('0xe')][_0x4029('0x53')](_0x227eba)[_0x4029('0x12')](function(_0x47b45b){_0x21c9d5(null,_0x47b45b?_0x47b45b['name']:![]);})[_0x4029('0x14')](function(_0x1a87b8){_0x21c9d5(_0x1a87b8);});};AGIVertices['prototype']['agentPause']=function(_0x45f0fc,_0x2ae10e,_0x1624dc){var _0x13d13a={'role':'agent'};_0x13d13a[_0x45f0fc]=this['channel'][_0x4029('0x3e')];this[_0x4029('0xe')][_0x4029('0x54')](_0x13d13a,_0x2ae10e,this[_0x4029('0xd')][_0x4029('0x3b')])[_0x4029('0x12')](function(_0x138a92){_0x1624dc(null,_['isNil'](_0x138a92)?![]:!![]);})[_0x4029('0x14')](function(_0x24b5e8){logger['error'](_0x24b5e8);_0x1624dc(null,![]);});};AGIVertices['prototype'][_0x4029('0x55')]=function(_0x21585d,_0x161438){var _0x1ca123={'role':_0x4029('0x56')};_0x1ca123[_0x21585d]=this[_0x4029('0xd')][_0x4029('0x3e')];this[_0x4029('0xe')][_0x4029('0x55')](_0x1ca123)[_0x4029('0x12')](function(_0x4268e3){_0x161438(null,_[_0x4029('0x57')](_0x4268e3)?![]:!![]);})[_0x4029('0x14')](function(_0x1ce1dc){logger[_0x4029('0x2e')](_0x1ce1dc);_0x161438(null,![]);});};AGIVertices[_0x4029('0xf')][_0x4029('0x58')]=function(_0x22eda7,_0x339b8d){var _0x5aa16b={'role':_0x4029('0x56')};_0x5aa16b[_0x22eda7]=this[_0x4029('0xd')]['callerid'];this['rpc'][_0x4029('0x58')](_0x5aa16b)[_0x4029('0x12')](function(_0x2b06a7){_0x339b8d(null,_[_0x4029('0x57')](_0x2b06a7)?![]:!![]);})[_0x4029('0x14')](function(_0x18832c){logger[_0x4029('0x2e')](_0x18832c);_0x339b8d(null,![]);});};AGIVertices[_0x4029('0xf')]['agentLogin']=function(_0x54d5c0,_0x4f2317){var _0x13875e={'role':_0x4029('0x56')};_0x13875e[_0x54d5c0]=this[_0x4029('0xd')][_0x4029('0x3e')];var _0x189221=_0x54d5c0!='internal'?util[_0x4029('0x2b')](_0x4029('0x59'),'LOCAL',this['channel']['callerid']):undefined;this[_0x4029('0xe')][_0x4029('0x5a')](_0x13875e,_0x189221)['then'](function(_0x4b5d09){_0x4f2317(null,_[_0x4029('0x57')](_0x4b5d09)?![]:!![]);})[_0x4029('0x14')](function(_0x41e4f5){logger[_0x4029('0x2e')](_0x41e4f5);_0x4f2317(null,![]);});};AGIVertices[_0x4029('0xf')][_0x4029('0x5b')]=function(_0x4ce995,_0x50d435){sh[_0x4029('0x5c')](_[_0x4029('0x5d')](_0x4ce995),function(_0x16300e,_0x1c3eb5){var _0x3f8d52=_0x1c3eb5[_0x4029('0x5e')](/(\r\n|\n|\r)/gm,'');_0x50d435(null,_0x3f8d52);});};AGIVertices[_0x4029('0xf')][_0x4029('0x5f')]=function(_0x33c256,_0x3a3211){scripts[_0x4029('0x5f')](_0x33c256[_0x4029('0x60')],_0x33c256[_0x4029('0x61')]||_0x4029('0x62'),_0x33c256[_0x4029('0x62')],_0x33c256[_0x4029('0x63')]||_0x4029('0x64'),_0x33c256[_0x4029('0x65')]||_0x4029('0x66'),_0x33c256['audioEncoding']||_0x4029('0x67'))['then'](function(_0x4ff837){_0x3a3211(null,_0x4ff837);})[_0x4029('0x14')](function(_0x138927){_0x3a3211(_0x138927);});};AGIVertices['prototype'][_0x4029('0x68')]=function(_0x216ee1,_0x226dd6){scripts[_0x4029('0x68')](_0x216ee1[_0x4029('0x62')],_0x216ee1[_0x4029('0x69')]||'en',0x1)[_0x4029('0x12')](function(_0x4391f3){_0x226dd6(null,_0x4391f3);})[_0x4029('0x14')](function(_0x4feefa){_0x226dd6(_0x4feefa);});};AGIVertices[_0x4029('0xf')][_0x4029('0x6a')]=function(_0x3e7be1,_0x38e406){var _0x45c274={'uri':_0x3e7be1[_0x4029('0x6b')],'method':_0x3e7be1[_0x4029('0x6c')],'json':!![],'resolveWithFullResponse':!![],'strictSSL':![],'timeout':typeof parseInt(_0x3e7be1['timeout'])===_0x4029('0x6d')&&parseInt(_0x3e7be1[_0x4029('0x6e')])>=0x1?parseInt(_0x3e7be1[_0x4029('0x6e')])*0x3e8:0x5*0x3e8};if(_[_0x4029('0x6f')](['POST',_0x4029('0x70')],_0x45c274[_0x4029('0x6c')][_0x4029('0x71')]())){try{_0x45c274[_0x4029('0x72')]=_0x3e7be1['rawBody']?JSON[_0x4029('0x73')](_0x3e7be1[_0x4029('0x74')]):{};}catch(_0x51f2a2){logger[_0x4029('0x2e')]('An\x20incorrect\x20formatted\x20json\x20body\x20has\x20been\x20passed\x20to\x20the\x20function',_0x51f2a2);}}try{_0x45c274[_0x4029('0x75')]=_0x3e7be1[_0x4029('0xa')]?JSON['parse'](_0x3e7be1[_0x4029('0xa')]):{};}catch(_0x30df1f){logger[_0x4029('0x2e')](_0x4029('0x76'),_0x30df1f);}if(_0x3e7be1['computedVariables']){try{var _0x24b4c2=require(_0x3e7be1['computedVariables'])[_0x4029('0x77')](this,_0x45c274);_0x45c274[_0x4029('0x78')]=Mustache['render'](_0x3e7be1['url'],_0x24b4c2,{},['$$','$$']);if(_0x45c274[_0x4029('0x75')]){_0x45c274[_0x4029('0x75')]=JSON[_0x4029('0x73')](Mustache[_0x4029('0x79')](JSON[_0x4029('0x7a')](_0x45c274[_0x4029('0x75')]),_0x24b4c2,{},['$$','$$']));}if(_0x45c274[_0x4029('0x72')]){_0x45c274[_0x4029('0x72')]=JSON[_0x4029('0x73')](Mustache['render'](JSON[_0x4029('0x7a')](_0x45c274[_0x4029('0x72')]),_0x24b4c2,{},['$$','$$']));}}catch(_0x5aba86){logger[_0x4029('0x2e')](_0x4029('0x7b'),_0x5aba86);}}rp(_0x45c274)[_0x4029('0x12')](function(_0xeff4da){var _0x5e132d={'statusCode':_0xeff4da[_0x4029('0x7c')]||0xc8,'statusMessage':_0xeff4da[_0x4029('0x7d')]||'OK','headers':_0xeff4da['headers']||{},'body':_0xeff4da[_0x4029('0x72')]||{}};_0x38e406(null,_0x5e132d);})['catch'](function(_0xc94425){var _0x543755={'statusCode':_0xc94425[_0x4029('0x7c')]||0x1f4,'statusMessage':_0xc94425['message']||_0x4029('0x7e'),'headers':_0xc94425[_0x4029('0x7f')]['headers']||{},'body':_0xc94425[_0x4029('0x7f')][_0x4029('0x72')]||{}};_0x38e406(null,_0x543755);});};AGIVertices['prototype'][_0x4029('0x80')]=function(_0x4346c6,_0x15f5f1){scripts[_0x4029('0x80')](this[_0x4029('0xd')][_0x4029('0x3b')],_0x4346c6[_0x4029('0x81')],_0x4346c6['text'],_0x4346c6[_0x4029('0x82')]||'en')[_0x4029('0x12')](function(_0x359bce){_0x15f5f1(null,_0x359bce);})['catch'](function(_0x5ed913){_0x15f5f1(_0x5ed913);});};AGIVertices[_0x4029('0xf')]['googleDialogflowV2']=function(_0x3d0e73,_0x43e02d){scripts[_0x4029('0x83')](this[_0x4029('0xd')]['uniqueid'],_0x3d0e73[_0x4029('0x84')],_0x3d0e73[_0x4029('0x85')],_0x3d0e73['private_key'],_0x3d0e73[_0x4029('0x62')],_0x3d0e73[_0x4029('0x86')]||'en')[_0x4029('0x12')](function(_0x312861){_0x43e02d(null,_0x312861);})['catch'](function(_0x1608de){_0x43e02d(_0x1608de);});};AGIVertices[_0x4029('0xf')]['sestekNDA']=function(_0x22c94f,_0x383307){scripts[_0x4029('0x87')](this[_0x4029('0xd')],_0x22c94f)[_0x4029('0x12')](function(_0x31ca70){_0x383307(null,_0x31ca70);})[_0x4029('0x14')](function(_0x4a1c5a){_0x383307(_0x4a1c5a);});};AGIVertices[_0x4029('0xf')][_0x4029('0x88')]=function(_0x284e07,_0x52e34f){scripts[_0x4029('0x88')](_0x284e07[_0x4029('0x81')],_0x284e07[_0x4029('0x62')],_0x284e07['ispeech_tts_language']||'en-US',_0x284e07[_0x4029('0x89')])[_0x4029('0x12')](function(_0x7b837a){_0x52e34f(null,_0x7b837a);})[_0x4029('0x14')](function(_0x5e6dd1){_0x52e34f(_0x5e6dd1);});};AGIVertices[_0x4029('0xf')][_0x4029('0x8a')]=function(_0x114020,_0x1a6a11,_0x4f9f10){scripts[_0x4029('0x8a')](_0x1a6a11,_0x114020['key'],_0x114020[_0x4029('0x8b')]||_0x4029('0x64'),this[_0x4029('0x8c')](_0x114020[_0x4029('0x8d')])?_0x114020[_0x4029('0x8d')]:undefined)[_0x4029('0x12')](function(_0x59fa1d){_0x4f9f10(null,_0x59fa1d);})[_0x4029('0x14')](function(_0x4ad9b3){_0x4f9f10(_0x4ad9b3);});};AGIVertices['prototype'][_0x4029('0x8e')]=function(_0x17f329,_0x3e99b){scripts[_0x4029('0x8e')](_0x17f329[_0x4029('0x8f')],_0x17f329[_0x4029('0x90')],_0x17f329['aws_polly_region'],_0x17f329[_0x4029('0x91')]||_0x4029('0x92'),_0x17f329['text'],_0x17f329[_0x4029('0x93')]||_0x4029('0x62'))['then'](function(_0x6a3a4f){_0x3e99b(null,_0x6a3a4f);})[_0x4029('0x14')](function(_0xf176d9){_0x3e99b(_0xf176d9);});};AGIVertices[_0x4029('0xf')][_0x4029('0x94')]=function(_0x101d62,_0x1243e3){scripts[_0x4029('0x94')](this[_0x4029('0xd')]['uniqueid'],_0x101d62['aws_access_key_id'],_0x101d62['aws_secret_access_key'],_0x101d62[_0x4029('0x95')],_0x101d62[_0x4029('0x62')],_0x101d62[_0x4029('0x96')])['then'](function(_0xc8fd8e){_0x1243e3(null,_0xc8fd8e);})[_0x4029('0x14')](function(_0x1d85bf){_0x1243e3(_0x1d85bf);});};AGIVertices['prototype'][_0x4029('0x97')]=function(_0x406e13,_0x50b295,_0x137048){scripts['googleASR'](_0x50b295,_0x406e13[_0x4029('0x81')],_0x406e13[_0x4029('0x98')]||_0x4029('0x64'))['then'](function(_0x5ee902){_0x137048(null,_0x5ee902);})[_0x4029('0x14')](function(_0x3d781c){_0x137048(_0x3d781c);});};AGIVertices[_0x4029('0xf')][_0x4029('0x99')]=function(_0x1e08c4,_0x5ba9ed,_0x245339){scripts['tildeASR'](_0x5ba9ed,_0x1e08c4['appid'],_0x1e08c4[_0x4029('0x9a')],_0x1e08c4[_0x4029('0x78')])['then'](function(_0x28dcbe){_0x245339(null,_0x28dcbe);})[_0x4029('0x14')](function(_0x2b4dcb){_0x245339(_0x2b4dcb);});};AGIVertices['prototype'][_0x4029('0x9b')]=function(_0x476084){var _0x5daf8c=_[_0x4029('0x6f')](verticesWithRetry,_0x476084['agicommand'])?_0x476084:_[_0x4029('0x9c')](_0x476084);for(var _0x15c9fe in _0x5daf8c){if(_0x5daf8c[_0x4029('0x9d')](_0x15c9fe)){if(_0x5daf8c[_0x15c9fe]&&_[_0x4029('0x9e')](_0x5daf8c[_0x15c9fe])){if(_[_0x4029('0x6f')](recursiveMapAttributes,_0x15c9fe)){_0x5daf8c[_0x15c9fe]=this[_0x4029('0x9f')](_0x5daf8c[_0x15c9fe]);}else{_0x5daf8c[_0x15c9fe]=this['replaceAllVariables'](_0x5daf8c[_0x15c9fe]);}}}}return _0x5daf8c;};AGIVertices[_0x4029('0xf')][_0x4029('0xa0')]=function(_0x3db796){for(var _0x593c79 in _0x3db796){if(_0x3db796[_0x4029('0x9d')](_0x593c79)){if(_['isPlainObject'](_0x3db796[_0x593c79])){this[_0x4029('0xa0')](_0x3db796[_0x593c79]);}else if(_[_0x4029('0xa1')](_0x3db796[_0x593c79])){for(var _0x238083=0x0;_0x238083<_0x3db796[_0x593c79][_0x4029('0xa2')];_0x238083++){this[_0x4029('0xa0')](_0x3db796[_0x593c79][_0x238083]);}}else if(_['isString'](_0x3db796[_0x593c79])){_0x3db796[_0x593c79]=this[_0x4029('0xa3')](_0x3db796[_0x593c79]);}}}};AGIVertices[_0x4029('0xf')][_0x4029('0xa4')]=function(_0x3eaeeb,_0x731ccb){for(var _0x1d2083 in _0x3eaeeb){if(_0x3eaeeb[_0x4029('0x9d')](_0x1d2083)){if(_['isPlainObject'](_0x3eaeeb[_0x1d2083])){if(!_[_0x4029('0x49')](_0x3eaeeb[_0x1d2083])){this['saveRestApiResult'](_0x3eaeeb[_0x1d2083],util[_0x4029('0x2b')](_0x4029('0xa5'),_0x731ccb,_0x1d2083));}}else if(_[_0x4029('0xa1')](_0x3eaeeb[_0x1d2083])){for(var _0x49eef1=0x0;_0x49eef1<_0x3eaeeb[_0x1d2083][_0x4029('0xa2')];_0x49eef1++){this[_0x4029('0xa4')](_0x3eaeeb[_0x1d2083][_0x49eef1],util['format'](_0x4029('0xa5'),_0x731ccb,_0x1d2083+'['+_0x49eef1+']'));}}else{if(!_['isNil'](_0x3eaeeb[_0x1d2083])){this[_0x4029('0xd')][_0x4029('0xa6')](util[_0x4029('0x2b')]('%s.%s',_0x731ccb,_0x1d2083),_0x3eaeeb[_0x1d2083]);}}}}};AGIVertices[_0x4029('0xf')][_0x4029('0x9f')]=function(_0x2623df){try{var _0xcb1a41=JSON[_0x4029('0x73')](_0x2623df);this[_0x4029('0xa0')](_0xcb1a41);return JSON[_0x4029('0x7a')](_0xcb1a41);}catch(_0x745c08){return this['replaceAllVariables'](_0x2623df);}};AGIVertices[_0x4029('0xf')][_0x4029('0xa3')]=function(_0x5a3620){var _0x41babe=_0x5a3620[_0x4029('0xa7')]('{');for(var _0x22daa1=0x1;_0x22daa1<_0x41babe[_0x4029('0xa2')];_0x22daa1+=0x1){var _0x40ea96=_0x41babe[_0x22daa1][_0x4029('0xa7')]('}');if(_0x40ea96[_0x4029('0xa2')]>0x1){_0x5a3620=_0x5a3620[_0x4029('0xa8')]('{'+_0x40ea96[0x0]+'}',this[_0x4029('0xd')]['getVariable'](_0x40ea96[0x0])[_0x4029('0xa9')]||_0x40ea96[0x0]);}}if(_0x41babe['length']===0x1){return _0x5a3620['toString']();}return this['replaceAllVariables'](_0x5a3620);};AGIVertices[_0x4029('0xf')][_0x4029('0xaa')]=function(_0x2be20d,_0x4a5649){var _0x4bf2a4=this[_0x4029('0xd')][_0x4029('0x10')](_0x2be20d);if(_0x4bf2a4[_0x4029('0xab')]===-0x1){return _0x4bf2a4;}logger[_0x4029('0x32')](util[_0x4029('0x2b')](_0x4029('0xac'),_0x4a5649,_0x4bf2a4[_0x4029('0xa9')]));return this[_0x4029('0xd')]['setVariable'](_0x4a5649,_0x4bf2a4[_0x4029('0xa9')]);};AGIVertices['prototype'][_0x4029('0x8c')]=function(_0x4d64b3){return _0x4d64b3&&_0x4d64b3!=='0'&&_0x4d64b3!=='-1'&&_0x4d64b3!=='';};AGIVertices[_0x4029('0xf')][_0x4029('0xad')]=function(_0x196b44){this[_0x4029('0x3a')][_0x4029('0x77')](this,_0x196b44,'-');_0x196b44[_0x4029('0xae')]=_0x196b44[_0x4029('0xad')];return{'code':0xc8,'result':'-'};};AGIVertices[_0x4029('0xf')][_0x4029('0xaf')]=function(_0x4ac439){logger[_0x4029('0x32')](util[_0x4029('0x2b')]('Enter\x20in\x20MRCPSynth\x20(%s)\x20block',_0x4ac439[_0x4029('0x3c')]));if(!this[_0x4029('0x8c')](_0x4ac439[_0x4029('0x62')])){return this['channel'][_0x4029('0xb0')]('no\x20text\x20configured');}var _0x17980b='\x22'+_0x4ac439[_0x4029('0x62')]+'\x22';if(this[_0x4029('0x8c')](_0x4ac439[_0x4029('0x7f')])){_0x17980b+=','+_0x4ac439[_0x4029('0x7f')];}var _0x46b14a=this[_0x4029('0xd')][_0x4029('0x5c')]('MRCPSynth',_0x17980b);if(_0x46b14a[_0x4029('0xab')]===-0x1){return _0x46b14a;}return this[_0x4029('0xd')]['noop'](util[_0x4029('0x2b')](_0x4029('0xb1'),_0x17980b));};AGIVertices[_0x4029('0xf')]['mrcprecog']=function(_0x3915b9){logger['info'](util[_0x4029('0x2b')]('Enter\x20in\x20MRCPRecog\x20(%s)\x20block',_0x3915b9[_0x4029('0x3c')]));if(!this[_0x4029('0x8c')](_0x3915b9['grammar'])){return this[_0x4029('0xd')]['noop'](_0x4029('0xb2'));}var _0x46f578=_0x3915b9[_0x4029('0xb3')];if(this[_0x4029('0x8c')](_0x3915b9['options'])){_0x46f578+=','+_0x3915b9[_0x4029('0x7f')];}var _0x4d7fe4=this[_0x4029('0xd')][_0x4029('0x5c')](_0x4029('0xb4'),_0x46f578);if(_0x4d7fe4[_0x4029('0xab')]===-0x1){return _0x4d7fe4;}var _0x4c000c=this[_0x4029('0xaa')]('RECOG_CONFIDENCE()',_0x4029('0xb5'));if(_0x4c000c[_0x4029('0xab')]===-0x1){return _0x4c000c;}var _0x460cd8=this['getAndSetVariable']('RECOG_INPUT()',_0x4029('0xb6'));if(_0x460cd8['result']===-0x1){return _0x460cd8;}var _0x5aefa3=this['getAndSetVariable'](_0x4029('0xb7'),_0x4029('0xb8'));if(_0x5aefa3['result']===-0x1){return _0x5aefa3;}return this[_0x4029('0xd')][_0x4029('0xb0')](util['format'](_0x4029('0xb9'),_0x46f578));};AGIVertices[_0x4029('0xf')]['agi']=function(_0x5d4ec4){logger[_0x4029('0x32')](util[_0x4029('0x2b')](_0x4029('0xba'),_0x5d4ec4['label']));return this[_0x4029('0xd')][_0x4029('0x6')]([_0x5d4ec4[_0x4029('0xbb')],_0x5d4ec4[_0x4029('0xbc')]]);};AGIVertices[_0x4029('0xf')][_0x4029('0xbd')]=function(_0x332da5){logger[_0x4029('0x32')](util[_0x4029('0x2b')](_0x4029('0xbe'),_0x332da5['label']));if(this[_0x4029('0x8c')](_0x332da5['timeout'])){logger['info'](util[_0x4029('0x2b')](_0x4029('0xbf'),_0x332da5['timeout']));var _0x345dbe=this['channel'][_0x4029('0xc0')](_0x332da5[_0x4029('0x6e')]);if(_0x345dbe[_0x4029('0xab')]===-0x1){return _0x345dbe;}}return this[_0x4029('0xd')]['answer']();};AGIVertices[_0x4029('0xf')][_0x4029('0xc1')]=function(_0xf6deae){logger['info'](util[_0x4029('0x2b')](_0x4029('0xc2'),_0xf6deae[_0x4029('0x3c')]));if(!this['isConfigured'](_0xf6deae[_0x4029('0x4d')])){return this['channel'][_0x4029('0x2e')](_0xf6deae,_0x4029('0xc3'));}_0xf6deae[_0x4029('0x4e')]=moment();if(this[_0x4029('0x8c')](_0xf6deae['delay'])){_0xf6deae[_0x4029('0x4e')]=moment()['add'](_0xf6deae[_0x4029('0xc4')],_0x4029('0xc5'));}if(!this[_0x4029('0x8c')](_0xf6deae[_0x4029('0x51')])){_0xf6deae['callback_priority']=0x2;}this[_0x4029('0x48')][_0x4029('0x77')](this,_0xf6deae);return this[_0x4029('0xd')][_0x4029('0xb0')](util[_0x4029('0x2b')](_0x4029('0xc6'),_0xf6deae[_0x4029('0x4c')],_0xf6deae[_0x4029('0x4d')],_0xf6deae[_0x4029('0x4e')]));};AGIVertices[_0x4029('0xf')][_0x4029('0xc7')]=function(_0x43dd88){logger[_0x4029('0x32')](util[_0x4029('0x2b')](_0x4029('0xc8'),_0x43dd88[_0x4029('0x3c')]));var _0x22485b=this['channel'][_0x4029('0x5c')](_0x43dd88['application'],_0x43dd88[_0x4029('0x7f')]);if(_0x22485b[_0x4029('0xab')]===-0x1){return _0x22485b;}return this['channel'][_0x4029('0xb0')](util[_0x4029('0x2b')](_0x4029('0xc9'),_0x43dd88[_0x4029('0xca')],_0x43dd88['options']));};AGIVertices[_0x4029('0xf')][_0x4029('0xcb')]=function(_0x36c991){logger[_0x4029('0x32')](util['format']('Enter\x20in\x20LUMENVOXTTS\x20(%s)\x20block',_0x36c991[_0x4029('0x3c')]));if(!this[_0x4029('0x8c')](_0x36c991[_0x4029('0x62')])){return this['channel']['noop'](_0x4029('0xcc'));}var _0x2aaac2='\x22'+_0x36c991[_0x4029('0x62')]+'\x22';if(this[_0x4029('0x8c')](_0x36c991[_0x4029('0x7f')])){_0x2aaac2+=','+_0x36c991[_0x4029('0x7f')];}var _0x5c6ca5=this[_0x4029('0xd')][_0x4029('0x5c')]('MRCPSynth',_0x2aaac2);if(_0x5c6ca5[_0x4029('0xab')]===-0x1){return _0x5c6ca5;}return this[_0x4029('0xd')][_0x4029('0xb0')](util['format'](_0x4029('0xb1'),_0x2aaac2));};AGIVertices[_0x4029('0xf')][_0x4029('0xcd')]=function(_0x5a47e3){logger[_0x4029('0x32')](util['format'](_0x4029('0xce'),_0x5a47e3['label']));if(!this['isConfigured'](_0x5a47e3[_0x4029('0x62')])){return this['channel'][_0x4029('0xb0')]('no\x20text\x20configured');}var _0x25a98c='\x22'+_0x5a47e3[_0x4029('0x62')]+'\x22';if(this[_0x4029('0x8c')](_0x5a47e3[_0x4029('0x7f')])){_0x25a98c+=','+_0x5a47e3[_0x4029('0x7f')];}var _0x4a40ba=this[_0x4029('0xd')][_0x4029('0x5c')](_0x4029('0xcf'),_0x25a98c);if(_0x4a40ba[_0x4029('0xab')]===-0x1){return _0x4a40ba;}return this[_0x4029('0xd')][_0x4029('0xb0')](util[_0x4029('0x2b')](_0x4029('0xb1'),_0x25a98c));};AGIVertices[_0x4029('0xf')]['lumenvoxasr']=function(_0x449c35){logger[_0x4029('0x32')](util[_0x4029('0x2b')]('Enter\x20in\x20LUMENVOXASR\x20(%s)\x20block',_0x449c35[_0x4029('0x3c')]));if(!this[_0x4029('0x8c')](_0x449c35[_0x4029('0xb3')])){return this[_0x4029('0xd')][_0x4029('0xb0')]('no\x20grammar\x20configured');}var _0x5b599e=_0x449c35[_0x4029('0xb3')];if(this[_0x4029('0x8c')](_0x449c35[_0x4029('0x7f')])){_0x5b599e+=','+_0x449c35[_0x4029('0x7f')];}var _0x50eabd=this[_0x4029('0xd')][_0x4029('0x5c')](_0x4029('0xb4'),_0x5b599e);if(_0x50eabd[_0x4029('0xab')]===-0x1){return _0x50eabd;}var _0x3b3856=this['getAndSetVariable'](_0x4029('0xd0'),_0x4029('0xd1'));if(_0x3b3856[_0x4029('0xab')]===-0x1){return _0x3b3856;}var _0x352773=this['getAndSetVariable']('RECOG_INPUT()',_0x4029('0xd2'));if(_0x352773[_0x4029('0xab')]===-0x1){return _0x352773;}var _0x530a76=this['getAndSetVariable']('RECOG_INSTANCE()','LUMENVOX_ASR_INSTANCE');if(_0x530a76['result']===-0x1){return _0x530a76;}return this[_0x4029('0xd')][_0x4029('0xb0')](util[_0x4029('0x2b')](_0x4029('0xb9'),_0x5b599e));};AGIVertices[_0x4029('0xf')][_0x4029('0xd3')]=function(_0x2245a9){logger[_0x4029('0x32')](util['format'](_0x4029('0xd4'),_0x2245a9[_0x4029('0x3c')]));if(!this['isConfigured'](_0x2245a9[_0x4029('0xb3')])){return this['channel']['noop']('no\x20grammar\x20configured');}var _0x1990da=_0x2245a9[_0x4029('0xb3')];if(this[_0x4029('0x8c')](_0x2245a9[_0x4029('0x7f')])){_0x1990da+=','+_0x2245a9[_0x4029('0x7f')];}var _0x69993a=this[_0x4029('0xd')]['exec'](_0x4029('0xb4'),_0x1990da);if(_0x69993a[_0x4029('0xab')]===-0x1){return _0x69993a;}var _0x8dd987=this[_0x4029('0xaa')](_0x4029('0xd0'),_0x4029('0xd5'));if(_0x8dd987[_0x4029('0xab')]===-0x1){return _0x8dd987;}var _0x4f7a75=this['getAndSetVariable'](_0x4029('0xd6'),_0x4029('0xd7'));if(_0x4f7a75[_0x4029('0xab')]===-0x1){return _0x4f7a75;}var _0x3cd63d=this[_0x4029('0xaa')](_0x4029('0xb7'),'SESTEK_ASR_INSTANCE');if(_0x3cd63d[_0x4029('0xab')]===-0x1){return _0x3cd63d;}return this['channel']['noop'](util[_0x4029('0x2b')]('Executed\x20command\x20MRCPRecog\x20%s',_0x1990da));};AGIVertices['prototype'][_0x4029('0xd8')]=function(_0x442cc0){logger[_0x4029('0x32')](util[_0x4029('0x2b')](_0x4029('0xd9'),_0x442cc0[_0x4029('0x3c')]));if(!this[_0x4029('0x8c')](_0x442cc0[_0x4029('0xda')])){return this['channel'][_0x4029('0x2e')](_0x442cc0,'no\x20database\x20selected');}var _0x302173=this[_0x4029('0x19')][_0x4029('0x77')](this,_0x442cc0[_0x4029('0xda')]);if(!_0x302173){return this[_0x4029('0xd')][_0x4029('0x2e')](_0x442cc0,_0x4029('0xdb'));}if(!this['isConfigured'](_0x442cc0[_0x4029('0x31')])){return this[_0x4029('0xd')][_0x4029('0x2e')](_0x442cc0,_0x4029('0xdc'));}var _0x157653=_0x442cc0['query']['replace'](/(\r\n|\n|\r)/gm,'\x20');this['channel'][_0x4029('0xb0')](util[_0x4029('0x2b')]('query:\x20%s',_0x157653));var _0x335f12=this[_0x4029('0xdd')][_0x4029('0x77')](this,_0x302173,_0x157653);this['createSquareDetailsReport'][_0x4029('0x77')](this,_0x442cc0,_0x157653);if(!this[_0x4029('0x8c')](_0x442cc0[_0x4029('0xde')])){return this[_0x4029('0xd')]['noop'](_0x4029('0xdf'));}var _0x1964c7=this[_0x4029('0x10')][_0x4029('0x77')](this,_0x442cc0[_0x4029('0xde')]);if(!_0x1964c7){return this[_0x4029('0xd')][_0x4029('0x2e')](_0x442cc0,_0x4029('0xe0'));}var _0x1a72dd=this;_0x335f12[_0x4029('0xe1')](function(_0x562a36,_0x3ae145){Object[_0x4029('0xe2')](_0x562a36)[_0x4029('0xe1')](function(_0x528fa2){_0x1a72dd['channel']['setVariable'](util[_0x4029('0x2b')](_0x4029('0xe3'),_0x1964c7,_0x3ae145,_0x528fa2),_0x562a36[_0x528fa2]);});});this['channel'][_0x4029('0xa6')](util['format'](_0x4029('0xe4'),_0x1964c7),_0x335f12['length']);return this[_0x4029('0xd')][_0x4029('0xb0')](util[_0x4029('0x2b')](_0x4029('0xe5'),_0x1964c7));};AGIVertices['prototype'][_0x4029('0xe6')]=function(_0xeabb96){logger[_0x4029('0xe7')](util[_0x4029('0x2b')](_0x4029('0xe8'),_0xeabb96[_0x4029('0x3c')]));if(!this[_0x4029('0x8c')](_0xeabb96[_0x4029('0xe9')])){return this[_0x4029('0xd')]['error'](_0xeabb96,_0x4029('0xea'));}var _0x3996c9=this[_0x4029('0x1c')][_0x4029('0x77')](this,_0xeabb96[_0x4029('0xe9')]);if(!_0x3996c9){return this[_0x4029('0xd')]['error'](_0xeabb96,_0x4029('0xeb'));}var _0x5da6c1=this[_0x4029('0xd')][_0x4029('0x5c')](_0x4029('0xec'),[util[_0x4029('0x2b')]('SIP/%s',_0x3996c9),_0xeabb96[_0x4029('0x6e')],_0xeabb96[_0x4029('0xed')],_0xeabb96['url']]);if(_0x5da6c1[_0x4029('0xab')]===-0x1){return _0x5da6c1;}return this['channel']['noop'](util[_0x4029('0x2b')](_0x4029('0xee'),_0x4029('0xec')));};AGIVertices[_0x4029('0xf')]['dialogflow']=function(_0x551207){logger[_0x4029('0x32')](util['format'](_0x4029('0xef'),_0x551207[_0x4029('0x3c')]));if(!this[_0x4029('0x8c')](_0x551207[_0x4029('0x81')])){return this[_0x4029('0xd')]['noop'](_0x4029('0xf0'));}if(!this[_0x4029('0x8c')](_0x551207[_0x4029('0x62')])){return this['channel'][_0x4029('0xb0')](_0x4029('0xcc'));}this[_0x4029('0xd')]['bot']=!![];this[_0x4029('0x3a')](_0x551207);this['createSquareMessage'](_0x551207[_0x4029('0x62')],'in','','');this[_0x4029('0xd')][_0x4029('0xb0')](util[_0x4029('0x2b')](_0x4029('0xf1'),_0x551207[_0x4029('0x62')]));var _0x41386b=this[_0x4029('0x80')][_0x4029('0x77')](this,_0x551207);if(_0x41386b){for(var _0x499073 in _0x41386b){if(_0x41386b[_0x4029('0x9d')](_0x499073)){this[_0x4029('0xd')][_0x4029('0xa6')](util[_0x4029('0x2b')]('DIALOGFLOW_%s',_0x499073[_0x4029('0x71')]()),_0x41386b[_0x499073]);}}this[_0x4029('0x47')](_0x41386b[_0x4029('0xf2')],'out',_0x4029('0xf3'),'');return this['channel'][_0x4029('0xb0')](util['format'](_0x4029('0xf4'),_0x41386b[_0x4029('0xf2')]));}return this['channel'][_0x4029('0x2e')](_0x551207,'Dialogflow\x20is\x20unreachable');};AGIVertices[_0x4029('0xf')]['dialogflowV2']=function(_0x373348){logger[_0x4029('0x32')](util[_0x4029('0x2b')](_0x4029('0xf5'),_0x373348[_0x4029('0x3c')]));if(!this[_0x4029('0x8c')](_0x373348['dialogflowV2_project_id'])){return this['channel'][_0x4029('0xb0')](_0x4029('0xf6'));}if(!this[_0x4029('0x8c')](_0x373348['client_email'])){return this[_0x4029('0xd')][_0x4029('0xb0')](_0x4029('0xf7'));}if(!this[_0x4029('0x8c')](_0x373348[_0x4029('0xf8')])){return this['channel']['noop']('no\x20private_key\x20configured');}if(!this['isConfigured'](_0x373348[_0x4029('0x86')])){return this[_0x4029('0xd')][_0x4029('0xb0')](_0x4029('0xf9'));}if(!this[_0x4029('0x8c')](_0x373348[_0x4029('0x62')])){return this[_0x4029('0xd')][_0x4029('0xb0')](_0x4029('0xcc'));}this[_0x4029('0xd')][_0x4029('0xfa')]=!![];this[_0x4029('0x3a')](_0x373348);this[_0x4029('0x47')](_0x373348['text'],'in','','');this[_0x4029('0xd')][_0x4029('0xb0')](util['format'](_0x4029('0xfb'),_0x373348[_0x4029('0x62')]));var _0x4adde8=this['googleDialogflowV2'][_0x4029('0x77')](this,_0x373348);if(_0x4adde8){for(var _0x5dedd2 in _0x4adde8){if(_0x4adde8['hasOwnProperty'](_0x5dedd2)){if(_0x5dedd2!==_0x4029('0xfc')){this[_0x4029('0xd')][_0x4029('0xa6')](util[_0x4029('0x2b')](_0x4029('0xfd'),_0x5dedd2['toUpperCase']()),_0x4adde8[_0x5dedd2]);}}}this[_0x4029('0x47')](_0x4adde8['speech'],'out',_0x4029('0xfe'),_0x4adde8[_0x4029('0xfc')]);return this['channel'][_0x4029('0xb0')](util[_0x4029('0x2b')](_0x4029('0xff'),_0x4adde8['speech']));}return this[_0x4029('0xd')][_0x4029('0x2e')](_0x373348,_0x4029('0x100'));};AGIVertices[_0x4029('0xf')]['sesteknda']=function(_0x55f478){logger[_0x4029('0x32')](util['format']('Enter\x20in\x20SESTEKNDA\x20(%s)\x20block',_0x55f478[_0x4029('0x3c')]));if(!this[_0x4029('0x8c')](_0x55f478[_0x4029('0x101')])){return this['channel'][_0x4029('0xb0')](_0x4029('0x102'));}if(!this[_0x4029('0x8c')](_0x55f478[_0x4029('0x103')])){return this[_0x4029('0xd')][_0x4029('0xb0')](_0x4029('0x104'));}if(!this[_0x4029('0x8c')](_0x55f478[_0x4029('0x105')])){return this[_0x4029('0xd')][_0x4029('0xb0')](_0x4029('0x106'));}if(!this[_0x4029('0x8c')](_0x55f478[_0x4029('0x107')])){return this[_0x4029('0xd')][_0x4029('0xb0')]('no\x20text\x20configured');}this['channel'][_0x4029('0xfa')]=!![];this[_0x4029('0x3a')](_0x55f478);this[_0x4029('0x47')](_0x55f478[_0x4029('0x62')],'in','','');this[_0x4029('0xd')]['noop'](util[_0x4029('0x2b')](_0x4029('0x108'),_0x55f478[_0x4029('0x62')]));var _0x31c101=this['sestekNDA']['sync'](this,_0x55f478);if(_0x31c101){for(var _0x4752b3 in _0x31c101){if(_0x31c101[_0x4029('0x9d')](_0x4752b3)){this['channel'][_0x4029('0xa6')](util[_0x4029('0x2b')](_0x4029('0x109'),_0x4752b3[_0x4029('0x71')]()),_0x31c101[_0x4752b3]);}}this[_0x4029('0x47')](_0x31c101[_0x4029('0xf2')],'out',_0x4029('0x10a'),'');if(_0x31c101[_0x4029('0x10b')]){this[_0x4029('0xd')]['noop'](util['format']('Sestek\x20NDA\x20%s\x20file\x20created',_0x31c101[_0x4029('0x10b')]));var _0x39d0cf=this['channel'][_0x4029('0x10c')](_0x31c101[_0x4029('0x10b')]);try{fs[_0x4029('0x10d')](_0x31c101['audiofile']+_0x4029('0x10e'));}catch(_0x51cfe2){logger[_0x4029('0x2e')](_0x51cfe2);}return _0x39d0cf;}else{return this[_0x4029('0xd')][_0x4029('0xb0')](util[_0x4029('0x2b')]('SestekNDA\x20Result\x20%s',_0x31c101['speech']));}}return this['channel'][_0x4029('0x2e')](_0x55f478,_0x4029('0x10f'));};AGIVertices[_0x4029('0xf')]['end']=function(_0x133743){logger[_0x4029('0x32')](util[_0x4029('0x2b')]('Enter\x20in\x20END\x20(%s)\x20block',_0x133743[_0x4029('0x3c')]));return this[_0x4029('0xd')][_0x4029('0xb0')]('end');};AGIVertices[_0x4029('0xf')]['ext_dial']=function(_0x41d966){logger[_0x4029('0x32')](util['format'](_0x4029('0x110'),_0x41d966['label']));var _0x1ad09f='';if(_0x41d966['trunk_id']){if(!this[_0x4029('0x8c')](_0x41d966['trunk_id'])){return this[_0x4029('0xd')]['error'](_0x41d966,_0x4029('0x111'));}else{var _0x292315=parseInt(_0x41d966['trunk_id'],0xa);if(isNaN(_0x292315)){_0x1ad09f=_0x41d966[_0x4029('0x112')];}else{_0x1ad09f=this['getTrunk'][_0x4029('0x77')](this,_0x41d966['trunk_id']);if(!_0x1ad09f){return this['channel'][_0x4029('0x2e')](_0x41d966,_0x4029('0x113'));}}}}else if(_0x41d966['trunk_name']){_0x1ad09f=_0x41d966[_0x4029('0x114')];}else{return this[_0x4029('0xd')][_0x4029('0x2e')](_0x41d966,_0x4029('0x111'));}var _0x2ece88=this[_0x4029('0xd')][_0x4029('0x5c')](_0x4029('0xec'),[util[_0x4029('0x2b')](_0x4029('0x115'),_0x1ad09f,_0x41d966[_0x4029('0x4c')]),_0x41d966[_0x4029('0x6e')],_0x41d966[_0x4029('0xed')],_0x41d966[_0x4029('0x6b')]]);if(_0x2ece88['result']===-0x1){return _0x2ece88;}return this[_0x4029('0xd')][_0x4029('0xb0')](util[_0x4029('0x2b')](_0x4029('0xee'),_0x4029('0xec')));};AGIVertices[_0x4029('0xf')][_0x4029('0x116')]=function(_0x2b81a6){logger[_0x4029('0x32')](util[_0x4029('0x2b')](_0x4029('0x117'),_0x2b81a6['label']));return this['channel'][_0x4029('0xb0')](_0x4029('0x116'));};AGIVertices[_0x4029('0xf')][_0x4029('0xc')]=function(_0x35b9cc){logger[_0x4029('0x32')](util[_0x4029('0x2b')]('Enter\x20in\x20GETDIGITS\x20(%s)\x20block',_0x35b9cc['label']));if(_0x35b9cc['retry']===0x0){return this[_0x4029('0xad')](_0x35b9cc);}_0x35b9cc[_0x4029('0xae')]-=0x1;if(!this['isConfigured'](_0x35b9cc[_0x4029('0x118')])){return this[_0x4029('0xd')][_0x4029('0x2e')](_0x35b9cc,_0x4029('0x119'));}var _0x69c922=this[_0x4029('0x11a')][_0x4029('0x77')](this,_0x35b9cc['file_id']);if(!_0x69c922){return this[_0x4029('0xd')][_0x4029('0x2e')](_0x35b9cc,_0x4029('0x11b'));}if(!this[_0x4029('0x8c')](_0x35b9cc['variable_id'])){return this[_0x4029('0xd')][_0x4029('0x2e')](_0x4029('0xdf'));}var _0x4872c5=this[_0x4029('0xd')][_0x4029('0x11c')](_0x69c922,_0x35b9cc[_0x4029('0x11d')],_0x35b9cc[_0x4029('0x11e')]);var _0xbc4ba1=_0x4872c5[_0x4029('0xab')]?_0x4872c5[_0x4029('0xab')][_0x4029('0x50')]():'';logger[_0x4029('0x32')](_0x4029('0x11f'),JSON[_0x4029('0x7a')](_0x4872c5));if(_0x4872c5[_0x4029('0xab')]===-0x1){this[_0x4029('0x3a')]['sync'](this,_0x35b9cc,_0xbc4ba1);return _0x4872c5;}else if(_0x4872c5[_0x4029('0xa9')]===_0x4029('0x6e')){_0x4872c5[_0x4029('0xab')]=_0xbc4ba1[_0x4029('0xa2')]>=parseInt(_0x35b9cc['mindigit'])?'x':'i';}else{_0x4872c5['result']=_0xbc4ba1[_0x4029('0xa2')]>=parseInt(_0x35b9cc[_0x4029('0x120')])&&_0xbc4ba1[_0x4029('0xa2')]<=parseInt(_0x35b9cc['maxdigit'])?'x':'i';}var _0xb2df64=this[_0x4029('0x10')][_0x4029('0x77')](this,_0x35b9cc['variable_id']);if(!_0xb2df64){return this[_0x4029('0xd')]['error'](_0x35b9cc,'no\x20variable\x20found');}this[_0x4029('0xd')][_0x4029('0xa6')](_0xb2df64,_0xbc4ba1);if(this[_0x4029('0x8c')](_0x35b9cc[_0x4029('0x121')])){var _0x149108=parseInt(_0x35b9cc[_0x4029('0x121')],0xa);var _0xa5842=rs[_0x4029('0x122')]({'charset':'*','length':_0x149108});var _0x4fa504=_0xbc4ba1[_0x4029('0xa2')];if(_0x4fa504>0x0){if(_0x4fa504>_0x149108){this[_0x4029('0x3a')][_0x4029('0x77')](this,_0x35b9cc,_0x35b9cc[_0x4029('0x123')]===_0x4029('0x124')?_0xa5842+_0xbc4ba1[_0x4029('0x125')](_0x149108):_0xbc4ba1[_0x4029('0x125')](0x0,_0x4fa504-_0x149108)+_0xa5842);}else{this[_0x4029('0x3a')][_0x4029('0x77')](this,_0x35b9cc,rs[_0x4029('0x122')]({'charset':'*','length':_0x4fa504}));}}else{this[_0x4029('0x3a')][_0x4029('0x77')](this,_0x35b9cc,'');}}else{this[_0x4029('0x3a')][_0x4029('0x77')](this,_0x35b9cc,_0xbc4ba1);}return _0x4872c5;};AGIVertices['prototype'][_0x4029('0x126')]=function(_0x17c531){logger[_0x4029('0x32')](util[_0x4029('0x2b')](_0x4029('0x127'),_0x17c531[_0x4029('0x3c')]));return this[_0x4029('0xc')](_0x17c531);};AGIVertices['prototype']['goal']=function(_0x30e069){logger[_0x4029('0x32')](util['format'](_0x4029('0x128'),_0x30e069[_0x4029('0x3c')]));this[_0x4029('0x3a')]['sync'](this,_0x30e069,_0x30e069['goalname']);return this[_0x4029('0xd')][_0x4029('0xb0')](util[_0x4029('0x2b')](_0x4029('0x129'),_0x30e069['goalname']));};AGIVertices[_0x4029('0xf')][_0x4029('0x12a')]=function(_0x40cb90){logger['info'](util['format'](_0x4029('0x12b'),_0x40cb90[_0x4029('0x3c')]));if(!this[_0x4029('0x8c')](_0x40cb90[_0x4029('0x8f')])||!this[_0x4029('0x8c')](_0x40cb90['aws_secret_access_key'])){return this[_0x4029('0xd')]['noop'](_0x4029('0x12c'));}if(!this[_0x4029('0x8c')](_0x40cb90[_0x4029('0x62')])){return this[_0x4029('0xd')]['noop'](_0x4029('0xcc'));}this[_0x4029('0xd')][_0x4029('0xb0')](util[_0x4029('0x2b')](_0x4029('0x12d'),_0x40cb90['text']));var _0x19b566=this[_0x4029('0x8e')]['sync'](this,_0x40cb90);if(_0x19b566){this[_0x4029('0xd')][_0x4029('0xb0')](util[_0x4029('0x2b')]('aws\x20Polly\x20%s\x20file\x20created',_0x19b566));var _0x4e7f2f=this[_0x4029('0xd')]['streamFile'](_0x19b566);try{fs[_0x4029('0x10d')](_0x19b566+_0x4029('0x10e'));}catch(_0x574549){logger[_0x4029('0x2e')](_0x574549);}return _0x4e7f2f;}return this[_0x4029('0xd')][_0x4029('0x2e')](_0x40cb90,_0x4029('0x12e'));};AGIVertices['prototype']['awslex']=function(_0x55b24a){logger['info'](util['format'](_0x4029('0x12f'),_0x55b24a[_0x4029('0x3c')]));if(!this[_0x4029('0x8c')](_0x55b24a['aws_access_key_id'])||!this[_0x4029('0x8c')](_0x55b24a[_0x4029('0x90')])){return this['channel']['noop'](_0x4029('0x12c'));}if(!this[_0x4029('0x8c')](_0x55b24a['aws_bot_name'])){return this['channel']['noop']('no\x20bot\x20name\x20configured');}if(!this[_0x4029('0x8c')](_0x55b24a[_0x4029('0x62')])){return this[_0x4029('0xd')][_0x4029('0xb0')](_0x4029('0xcc'));}this[_0x4029('0xd')][_0x4029('0xfa')]=!![];this[_0x4029('0x3a')](_0x55b24a);this[_0x4029('0x47')](_0x55b24a[_0x4029('0x62')],'in','','');this[_0x4029('0xd')]['noop'](util[_0x4029('0x2b')](_0x4029('0x130'),_0x55b24a['text']));var _0x58032a=this[_0x4029('0x94')][_0x4029('0x77')](this,_0x55b24a);if(_0x58032a){for(var _0xefd812 in _0x58032a){if(_0x58032a[_0x4029('0x9d')](_0xefd812)&&_[_0x4029('0x9e')](_0x58032a[_0xefd812])){this[_0x4029('0xd')][_0x4029('0xa6')](util[_0x4029('0x2b')]('AWS_LEX_%s',_0xefd812[_0x4029('0x71')]()),_0x58032a[_0xefd812]);}}if(_[_0x4029('0x57')](_0x58032a[_0x4029('0x131')])){return this['channel'][_0x4029('0xb0')](_0x4029('0x132'));}else{this['createSquareMessage'](_0x58032a[_0x4029('0x131')],_0x4029('0x133'),_0x4029('0x134'),'');return this[_0x4029('0xd')][_0x4029('0xb0')](util[_0x4029('0x2b')](_0x4029('0x135'),_0x58032a['message']));}}return this[_0x4029('0xd')][_0x4029('0x2e')](_0x55b24a,'Amazon\x20Lex\x20is\x20unreachable');};AGIVertices[_0x4029('0xf')]['googleasr']=function(_0xce44c9){logger[_0x4029('0x32')](util[_0x4029('0x2b')]('Enter\x20in\x20GOOGLEASR\x20(%s)\x20block\x20%s',_0xce44c9[_0x4029('0x3c')],_0xce44c9[_0x4029('0x6e')]));if(!this[_0x4029('0x8c')](_0xce44c9['key'])){return this[_0x4029('0xd')][_0x4029('0xb0')](_0x4029('0xf0'));}var _0x39cd48=_0x4029('0x136');var _0x12d4a4=util[_0x4029('0x2b')](_0x4029('0x137'),FILES_PATH,rs['generate'](0x4));var _0x391936=util['format']('%s.%s',_0x12d4a4,_0x39cd48);var _0x1fd9e0=!![];if(_0xce44c9[_0x4029('0x138')]===_0x4029('0x139')){_0x1fd9e0=![];}var _0x43eabf=this[_0x4029('0xd')]['recordFile'](_0x12d4a4,_0x39cd48,_0xce44c9[_0x4029('0x13a')],_0xce44c9[_0x4029('0x6e')],undefined,_0x1fd9e0);if(_0x43eabf[_0x4029('0xab')]!==-0x1){this['channel']['noop'](util[_0x4029('0x2b')](_0x4029('0x13b'),_0x391936));var _0x2ee10b=this[_0x4029('0x97')][_0x4029('0x77')](this,_0xce44c9,_0x391936);if(_0x2ee10b){for(var _0xb5b34a in _0x2ee10b){if(_0x2ee10b[_0x4029('0x9d')](_0xb5b34a)){this[_0x4029('0xd')][_0x4029('0xa6')](util[_0x4029('0x2b')](_0x4029('0x13c'),_0xb5b34a[_0x4029('0x71')]()),_0x2ee10b[_0xb5b34a]);}}return this[_0x4029('0xd')][_0x4029('0xb0')](util[_0x4029('0x2b')]('GoogleASR\x20Result\x20%s',JSON['stringify'](_0x2ee10b)));}}return _0x43eabf;};AGIVertices[_0x4029('0xf')]['tildeasr']=function(_0x5353ee){logger['info'](util[_0x4029('0x2b')](_0x4029('0x13d'),_0x5353ee[_0x4029('0x3c')]));if(!this['isConfigured'](_0x5353ee['appid'])){return this[_0x4029('0xd')][_0x4029('0xb0')](_0x4029('0x13e'));}if(!this[_0x4029('0x8c')](_0x5353ee[_0x4029('0x9a')])){return this[_0x4029('0xd')]['noop'](_0x4029('0x13f'));}var _0x542bc5=_0x4029('0x136');var _0x168acd=util['format'](_0x4029('0x137'),FILES_PATH,rs[_0x4029('0x122')](0x4));var _0x4ad42e=util[_0x4029('0x2b')](_0x4029('0xa5'),_0x168acd,_0x542bc5);var _0x281594=!![];if(_0x5353ee[_0x4029('0x138')]===_0x4029('0x139')){_0x281594=![];}var _0x52dcf1=this[_0x4029('0xd')][_0x4029('0x140')](_0x168acd,_0x542bc5,_0x5353ee[_0x4029('0x13a')],_0x5353ee['timeout'],undefined,_0x281594);if(_0x52dcf1[_0x4029('0xab')]!==-0x1){this[_0x4029('0xd')][_0x4029('0xb0')](util[_0x4029('0x2b')]('tilde\x20%s\x20file\x20created',_0x4ad42e));var _0x255f11=this['tildeASR'][_0x4029('0x77')](this,_0x5353ee,_0x4ad42e);if(_0x255f11){for(var _0x23e91 in _0x255f11){if(_0x255f11[_0x4029('0x9d')](_0x23e91)){this[_0x4029('0xd')][_0x4029('0xa6')](util[_0x4029('0x2b')](_0x4029('0x141'),_0x23e91['toUpperCase']()),_0x255f11[_0x23e91]);}}return this['channel'][_0x4029('0xb0')](util[_0x4029('0x2b')](_0x4029('0x142'),JSON[_0x4029('0x7a')](_0x255f11)));}}return _0x52dcf1;};AGIVertices['prototype']['gotoc']=function(_0x4f68f9){logger[_0x4029('0x32')](util[_0x4029('0x2b')](_0x4029('0x143'),_0x4f68f9[_0x4029('0x3c')]));return this[_0x4029('0xd')][_0x4029('0x144')](_0x4f68f9[_0x4029('0x41')],_0x4f68f9[_0x4029('0x42')],_0x4f68f9[_0x4029('0x43')]);};AGIVertices[_0x4029('0xf')][_0x4029('0x145')]=function(_0x493c86){logger[_0x4029('0x32')](util['format'](_0x4029('0x146'),_0x493c86['label']));if(!this[_0x4029('0x8c')](_0x493c86[_0x4029('0x147')])){return this[_0x4029('0xd')]['error'](_0x493c86,_0x4029('0x148'));}try{var _0x167833=eval(_0x493c86[_0x4029('0x147')])?_0x4029('0x149'):_0x4029('0x14a');this[_0x4029('0xd')][_0x4029('0xb0')](util[_0x4029('0x2b')](_0x4029('0x14b'),_0x493c86[_0x4029('0x147')],_0x167833));return{'code':0xc8,'result':_0x167833};}catch(_0x1c488e){return{'code':0xc8,'result':_0x4029('0x14a')};}};AGIVertices[_0x4029('0xf')][_0x4029('0x14c')]=function(_0x489bce){logger[_0x4029('0x32')](util['format'](_0x4029('0x14d'),_0x489bce['label']));if(!this[_0x4029('0x8c')](_0x489bce[_0x4029('0x14e')])){return this[_0x4029('0xd')]['error'](_0x489bce,_0x4029('0x14f'));}var _0x4f33dc=this[_0x4029('0x26')][_0x4029('0x77')](this,_0x489bce[_0x4029('0x14e')]);if(!_0x4f33dc){return this[_0x4029('0xd')][_0x4029('0x2e')](_0x489bce,'no\x20intervals\x20found');}for(var _0x1b13c4=0x0;_0x1b13c4<_0x4f33dc[_0x4029('0xa2')];_0x1b13c4+=0x1){var _0x76fbbd=this[_0x4029('0xd')][_0x4029('0x10')](util[_0x4029('0x2b')](_0x4029('0x150'),_0x4f33dc[_0x1b13c4]));if(_0x76fbbd[_0x4029('0xab')]===-0x1){return _0x76fbbd;}logger['info'](util[_0x4029('0x2b')](_0x4029('0x151'),_0x4f33dc[_0x1b13c4],_0x76fbbd['extra']));if(_0x76fbbd[_0x4029('0xa9')]===_0x4029('0x149')){logger[_0x4029('0x32')](util['format'](_0x4029('0x151'),_0x4f33dc[_0x1b13c4],_0x4029('0x149')));this['channel'][_0x4029('0xb0')](util['format'](_0x4029('0x151'),_0x4f33dc[_0x1b13c4],_0x4029('0x149')));return{'code':0xc8,'result':_0x4029('0x149')};}else{logger[_0x4029('0x32')](util[_0x4029('0x2b')]('IFTIME\x20%s\x20%s',_0x4f33dc[_0x1b13c4],_0x4029('0x14a')));this[_0x4029('0xd')]['noop'](util['format'](_0x4029('0x151'),_0x4f33dc[_0x1b13c4],_0x4029('0x14a')));}}return{'code':0xc8,'result':_0x4029('0x14a')};};AGIVertices[_0x4029('0xf')][_0x4029('0x152')]=function(_0xb6e183){logger['info'](util[_0x4029('0x2b')](_0x4029('0x153'),_0xb6e183[_0x4029('0x3c')]));return this['channel'][_0x4029('0x152')]();};AGIVertices['prototype'][_0x4029('0x154')]=function(_0x121a0e){logger[_0x4029('0x32')](util['format']('Enter\x20in\x20ISPEECHASR\x20(%s)\x20block',_0x121a0e[_0x4029('0x3c')]));if(!this[_0x4029('0x8c')](_0x121a0e[_0x4029('0x81')])){return this['channel'][_0x4029('0xb0')](_0x4029('0xf0'));}var _0x19dba3=_0x4029('0x136');var _0x4bf0d1=util[_0x4029('0x2b')](_0x4029('0x137'),FILES_PATH,rs[_0x4029('0x122')](0x4));var _0x185fe6=util[_0x4029('0x2b')]('%s.%s',_0x4bf0d1,_0x19dba3);var _0x55622f=!![];if(_0x121a0e[_0x4029('0x138')]==='NOBEEP'){_0x55622f=![];}var _0x2e2fee=this[_0x4029('0xd')][_0x4029('0x140')](_0x4bf0d1,_0x19dba3,_0x121a0e['intKey'],_0x121a0e[_0x4029('0x6e')],undefined,_0x55622f);if(_0x2e2fee[_0x4029('0xab')]!==-0x1){this[_0x4029('0xd')][_0x4029('0xb0')](util['format'](_0x4029('0x155'),_0x185fe6));var _0x189bd7=this[_0x4029('0x8a')]['sync'](this,_0x121a0e,_0x185fe6);if(_0x189bd7){for(var _0x4e3c4c in _0x189bd7){if(_0x189bd7['hasOwnProperty'](_0x4e3c4c)){this[_0x4029('0xd')][_0x4029('0xa6')](util['format'](_0x4029('0x156'),_0x4e3c4c[_0x4029('0x71')]()),_0x189bd7[_0x4e3c4c]);}}return this['channel']['noop'](util[_0x4029('0x2b')]('IspeechASR\x20Result\x20%s',JSON['stringify'](_0x189bd7)));}}return _0x2e2fee;};AGIVertices['prototype'][_0x4029('0x157')]=function(_0x23e099){logger[_0x4029('0x32')](util['format'](_0x4029('0x158'),_0x23e099['label']));if(!this['isConfigured'](_0x23e099[_0x4029('0x81')])){return this[_0x4029('0xd')][_0x4029('0xb0')](_0x4029('0xf0'));}if(!this[_0x4029('0x8c')](_0x23e099[_0x4029('0x62')])){return this[_0x4029('0xd')][_0x4029('0xb0')]('no\x20text\x20configured');}this[_0x4029('0xd')][_0x4029('0xb0')](util[_0x4029('0x2b')]('Trying\x20ispeech\x20TTS\x20%s',_0x23e099[_0x4029('0x62')]));var _0x3aee8a=this[_0x4029('0x88')][_0x4029('0x77')](this,_0x23e099);if(_0x3aee8a){this[_0x4029('0xd')]['noop'](util['format'](_0x4029('0x155'),_0x3aee8a));var _0x5a03ee=this['channel'][_0x4029('0x10c')](_0x3aee8a,_0x23e099['intKey']);try{fs[_0x4029('0x10d')](_0x3aee8a+'.wav');}catch(_0x34deea){logger[_0x4029('0x2e')](_0x34deea);}return _0x5a03ee;}return this[_0x4029('0xd')]['error'](_0x23e099,'ispeech\x20TTS\x20is\x20unreachable');};AGIVertices[_0x4029('0xf')]['login']=function(_0x455964){logger[_0x4029('0x32')](util['format'](_0x4029('0x159'),_0x455964['label']));if(!this[_0x4029('0x8c')](_0x455964[_0x4029('0x15a')])){return this[_0x4029('0xd')]['error'](_0x455964,_0x4029('0x15b'));}logger[_0x4029('0x32')](util['format'](_0x4029('0x15c'),this[_0x4029('0xd')][_0x4029('0x3e')],_0x455964[_0x4029('0x15a')]));var _0x424cc4=this[_0x4029('0x5a')][_0x4029('0x77')](this,_0x455964['findBy']);if(_0x424cc4){logger[_0x4029('0x32')](util['format'](_0x4029('0x15d'),this[_0x4029('0xd')][_0x4029('0x3e')],_0x455964[_0x4029('0x15a')]));this[_0x4029('0xd')]['noop'](util[_0x4029('0x2b')]('AGENT\x20%s\x20FOUND\x20BY',this[_0x4029('0xd')][_0x4029('0x3e')],_0x455964[_0x4029('0x15a')]));return{'code':0xc8,'result':'success'};}else{logger[_0x4029('0x32')](util['format'](_0x4029('0x15e'),this[_0x4029('0xd')][_0x4029('0x3e')],_0x455964[_0x4029('0x15a')]));this[_0x4029('0xd')][_0x4029('0xb0')](util['format'](_0x4029('0x15e'),this['channel']['callerid'],_0x455964['findBy']));return{'code':0xc8,'result':_0x4029('0x15f')};}};AGIVertices[_0x4029('0xf')][_0x4029('0x160')]=function(_0x1833ec){logger[_0x4029('0x32')](util[_0x4029('0x2b')](_0x4029('0x161'),_0x1833ec[_0x4029('0x3c')]));if(!this[_0x4029('0x8c')](_0x1833ec['findBy'])){return this[_0x4029('0xd')][_0x4029('0x2e')](_0x1833ec,_0x4029('0x15b'));}logger[_0x4029('0x32')](util[_0x4029('0x2b')](_0x4029('0x15c'),this[_0x4029('0xd')][_0x4029('0x3e')],_0x1833ec['findBy']));var _0x4d74b3=this[_0x4029('0x58')][_0x4029('0x77')](this,_0x1833ec['findBy']);if(_0x4d74b3){logger[_0x4029('0x32')](util[_0x4029('0x2b')](_0x4029('0x15d'),this['channel'][_0x4029('0x3e')],_0x1833ec[_0x4029('0x15a')]));this[_0x4029('0xd')][_0x4029('0xb0')](util['format'](_0x4029('0x15d'),this[_0x4029('0xd')][_0x4029('0x3e')],_0x1833ec[_0x4029('0x15a')]));return{'code':0xc8,'result':_0x4029('0x162')};}else{logger[_0x4029('0x32')](util['format'](_0x4029('0x15e'),this['channel']['callerid'],_0x1833ec[_0x4029('0x15a')]));this[_0x4029('0xd')]['noop'](util[_0x4029('0x2b')]('AGENT\x20%s\x20NOT\x20FOUND\x20BY',this[_0x4029('0xd')][_0x4029('0x3e')],_0x1833ec[_0x4029('0x15a')]));return{'code':0xc8,'result':_0x4029('0x15f')};}};AGIVertices[_0x4029('0xf')][_0x4029('0x163')]=function(_0x2d2c7b){logger['info'](util[_0x4029('0x2b')](_0x4029('0x164'),_0x2d2c7b[_0x4029('0x3c')]));if(!this[_0x4029('0x8c')](_0x2d2c7b['operation'])){return this[_0x4029('0xd')]['error'](_0x2d2c7b,'no\x20operation\x20configured');}this[_0x4029('0xd')][_0x4029('0xb0')](util[_0x4029('0x2b')](_0x4029('0x165'),_0x2d2c7b['operation']));var _0x228eec=eval(_0x2d2c7b[_0x4029('0x166')]);if(!this['isConfigured'](_0x2d2c7b[_0x4029('0xde')])){return this[_0x4029('0xd')][_0x4029('0xb0')](_0x4029('0xdf'));}var _0x5b3407=this[_0x4029('0x10')][_0x4029('0x77')](this,_0x2d2c7b['variable_id']);if(!_0x5b3407){return this[_0x4029('0xd')][_0x4029('0x2e')](_0x2d2c7b,'no\x20variable\x20found');}if(_[_0x4029('0xa1')](_0x228eec)){var _0x488cf8=this;_0x228eec[_0x4029('0xe1')](function(_0x157eb2,_0xc75b9){_0x488cf8[_0x4029('0xd')][_0x4029('0xa6')](util[_0x4029('0x2b')](_0x4029('0x167'),_0x5b3407,_0xc75b9),_0x157eb2);});return this[_0x4029('0xd')][_0x4029('0xb0')](util[_0x4029('0x2b')](_0x4029('0x168'),_0x5b3407));}else{return this[_0x4029('0xd')][_0x4029('0xa6')](_0x5b3407,_0x228eec);}};AGIVertices[_0x4029('0xf')][_0x4029('0xb')]=function(_0x40d896){logger['info'](util[_0x4029('0x2b')]('Enter\x20in\x20MENU\x20(%s)\x20block',_0x40d896['label']));if(_0x40d896['retry']===0x0){return this[_0x4029('0xad')](_0x40d896);}_0x40d896[_0x4029('0xae')]-=0x1;if(!this[_0x4029('0x8c')](_0x40d896[_0x4029('0x118')])){return this[_0x4029('0xd')][_0x4029('0x2e')](_0x40d896,'no\x20file\x20audio\x20selected');}var _0x53e7f5=this[_0x4029('0x11a')][_0x4029('0x77')](this,_0x40d896['file_id']);if(!_0x53e7f5){return this[_0x4029('0xd')][_0x4029('0x2e')](_0x40d896,_0x4029('0x11b'));}var _0x261899=this[_0x4029('0xd')]['getData'](_0x53e7f5,_0x40d896[_0x4029('0x11d')],_0x40d896['digit']);var _0x81c5ae=_0x261899[_0x4029('0xab')];if(_0x261899[_0x4029('0xab')]===-0x1){this[_0x4029('0x3a')][_0x4029('0x77')](this,_0x40d896,'-1');return _0x261899;}else if(_0x261899[_0x4029('0xa9')]===_0x4029('0x6e')){_0x261899['result']=_0x261899[_0x4029('0xab')][_0x4029('0xa2')]>0x0?_0x261899[_0x4029('0xab')]:'t';}else if(_['isEmpty'](_0x261899['result'])){_0x261899['result']='#';_0x81c5ae='#';}if(!this[_0x4029('0x8c')](_0x40d896[_0x4029('0xde')])){this[_0x4029('0xd')][_0x4029('0xb0')](_0x4029('0xdf'));}else{var _0x16d197=this[_0x4029('0x10')][_0x4029('0x77')](this,_0x40d896['variable_id']);if(!_0x16d197){return this[_0x4029('0xd')][_0x4029('0x2e')](_0x40d896,'no\x20variable\x20found');}this['channel'][_0x4029('0xa6')](_0x16d197,_0x81c5ae);}this[_0x4029('0x3a')][_0x4029('0x77')](this,_0x40d896,_0x81c5ae);return _0x261899;};AGIVertices['prototype'][_0x4029('0xb0')]=function(_0x3ef7cb){logger[_0x4029('0x32')](util['format'](_0x4029('0x169'),_0x3ef7cb['label']));return this['channel']['noop'](_0x3ef7cb[_0x4029('0x16a')]||_0x3ef7cb[_0x4029('0x3c')]);};AGIVertices[_0x4029('0xf')][_0x4029('0x16b')]=function(_0x17bb5b){logger[_0x4029('0x32')](util[_0x4029('0x2b')](_0x4029('0x16c'),_0x17bb5b[_0x4029('0x3c')]));if(!this[_0x4029('0x8c')](_0x17bb5b[_0x4029('0x15a')])){return this['channel'][_0x4029('0x2e')](_0x17bb5b,'no\x20find\x20by\x20configured');}logger[_0x4029('0x32')](util['format']('FIND\x20AGENT\x20%s\x20BY\x20%s',this[_0x4029('0xd')][_0x4029('0x3e')],_0x17bb5b[_0x4029('0x15a')]));var _0x49213a=this[_0x4029('0x52')][_0x4029('0x77')](this,_0x17bb5b['pause_id']);var _0x5ea745=this['agentPause']['sync'](this,_0x17bb5b[_0x4029('0x15a')],_0x49213a);if(_0x5ea745){logger[_0x4029('0x32')](util['format'](_0x4029('0x15d'),this['channel'][_0x4029('0x3e')],_0x17bb5b[_0x4029('0x15a')]));this[_0x4029('0xd')][_0x4029('0xb0')](util[_0x4029('0x2b')](_0x4029('0x15d'),this[_0x4029('0xd')][_0x4029('0x3e')],_0x17bb5b['findBy']));return{'code':0xc8,'result':_0x4029('0x162')};}else{logger[_0x4029('0x32')](util[_0x4029('0x2b')](_0x4029('0x15e'),this['channel'][_0x4029('0x3e')],_0x17bb5b[_0x4029('0x15a')]));this[_0x4029('0xd')][_0x4029('0xb0')](util[_0x4029('0x2b')]('AGENT\x20%s\x20FOUND\x20BY',this[_0x4029('0xd')][_0x4029('0x3e')],_0x17bb5b[_0x4029('0x15a')]));return{'code':0xc8,'result':_0x4029('0x15f')};}};AGIVertices[_0x4029('0xf')][_0x4029('0x16d')]=function(_0x3c662b){logger[_0x4029('0x32')](util[_0x4029('0x2b')]('Enter\x20in\x20PLAYBACK\x20(%s)\x20block',_0x3c662b[_0x4029('0x3c')]));if(!this[_0x4029('0x8c')](_0x3c662b[_0x4029('0x118')])){return this[_0x4029('0xd')][_0x4029('0x2e')](_0x3c662b,'no\x20file\x20audio\x20selected');}var _0x888e37=this['getSound'][_0x4029('0x77')](this,_0x3c662b[_0x4029('0x118')]);if(!_0x888e37){return this[_0x4029('0xd')][_0x4029('0x2e')](_0x3c662b,_0x4029('0x11b'));}var _0x2b994d=this[_0x4029('0xd')][_0x4029('0x5c')]('PLAYBACK',[_0x888e37,_0x3c662b[_0x4029('0xed')]]);if(_0x2b994d[_0x4029('0xab')]===-0x1){return _0x2b994d;}return this[_0x4029('0xd')]['noop'](util[_0x4029('0x2b')](_0x4029('0xc9'),_0x4029('0x16e'),_0x888e37));};AGIVertices[_0x4029('0xf')][_0x4029('0x16f')]=function(_0xc8440b){logger[_0x4029('0x32')](util[_0x4029('0x2b')]('Enter\x20in\x20QUEUE\x20(%s)\x20block',_0xc8440b[_0x4029('0x3c')]));if(!this[_0x4029('0x8c')](_0xc8440b[_0x4029('0x170')])){return this[_0x4029('0xd')]['error'](_0xc8440b,_0x4029('0x171'));}var _0x3fabfa='';var _0x1712ab=parseInt(_0xc8440b[_0x4029('0x170')],0xa);if(isNaN(_0x1712ab)){_0x3fabfa=_0xc8440b[_0x4029('0x170')];}else{_0x3fabfa=this['getVoiceQueue'][_0x4029('0x77')](this,_0xc8440b[_0x4029('0x170')]);if(!_0x3fabfa){return this['channel'][_0x4029('0x2e')](_0xc8440b,_0x4029('0x172'));}}var _0x58183a='';if(this[_0x4029('0x8c')](_0xc8440b[_0x4029('0x118')])){var _0x31ec0d=this['getSound']['sync'](this,_0xc8440b[_0x4029('0x118')]);if(_0x31ec0d){_0x58183a=_0x31ec0d;}}this['createSquareDetailsReport']['sync'](this,_0xc8440b,_0x3fabfa);if(_0xc8440b['opts'][_0x4029('0x173')]('x')<0x0){_0xc8440b['opts']+='x';}if(_0xc8440b[_0x4029('0xed')][_0x4029('0x173')]('X')<0x0){_0xc8440b[_0x4029('0xed')]+='X';}this[_0x4029('0xd')][_0x4029('0xa6')](_0x4029('0x174'),_0x3fabfa?_0x3fabfa[_0x4029('0x175')]():'');var _0x4df160=this[_0x4029('0xd')]['exec']('QUEUE',[_0x3fabfa,_0xc8440b[_0x4029('0xed')],_0xc8440b[_0x4029('0x6b')],_0x58183a,_0xc8440b[_0x4029('0x6e')],_0xc8440b[_0x4029('0x6')],_0xc8440b[_0x4029('0x176')],_0xc8440b[_0x4029('0x177')],'',_0xc8440b[_0x4029('0x178')]]);if(_0x4df160['result']===-0x1){return _0x4df160;}return this[_0x4029('0xd')][_0x4029('0xb0')](util[_0x4029('0x2b')]('Executed\x20command\x20%s\x20%s',_0x4029('0x179'),_0x3fabfa));};AGIVertices[_0x4029('0xf')][_0x4029('0x17a')]=function(_0x308250){logger['info'](util[_0x4029('0x2b')]('Enter\x20in\x20RECORD\x20(%s)\x20block',_0x308250[_0x4029('0x3c')]));var _0x501b68=_0x308250[_0x4029('0x17b')]||_0x4029('0x136');var _0x3e892a=util[_0x4029('0x2b')](_0x4029('0x17c'),this[_0x4029('0xd')]['uniqueid'],rs['generate'](0x5));var _0x5f5a6b=util[_0x4029('0x2b')](_0x4029('0x17d'),FILES_PATH,_0x3e892a,_0x501b68);var _0x194134=util['format']('%s/recordings/%s',FILES_PATH,_0x3e892a);this[_0x4029('0x3f')][_0x4029('0x77')](this,_0x308250,_0x3e892a,_0x5f5a6b);this[_0x4029('0xd')][_0x4029('0xa6')](_0x4029('0x17e'),_0x3e892a);logger[_0x4029('0x32')](_0x4029('0x17f'),_0x194134,_0x501b68,_0x308250[_0x4029('0x180')],_0x308250[_0x4029('0x6e')]);return this[_0x4029('0xd')]['recordFile'](_0x194134,_0x501b68,_0x308250['escape_digits'],_0x308250[_0x4029('0x6e')],undefined,!![]);};AGIVertices['prototype']['restapi']=function(_0x4dbeae){logger[_0x4029('0x32')](util[_0x4029('0x2b')](_0x4029('0x181'),_0x4dbeae[_0x4029('0x3c')]));if(!this[_0x4029('0x8c')](_0x4dbeae[_0x4029('0x6b')])){return this[_0x4029('0xd')][_0x4029('0xb0')](_0x4029('0x182'));}var _0x22c3b2=this[_0x4029('0x6a')][_0x4029('0x77')](this,_0x4dbeae);logger['info'](util[_0x4029('0x2b')](_0x4029('0x183'),util[_0x4029('0x184')](_0x22c3b2,{'showHidden':![],'depth':null})));if(!this['isConfigured'](_0x4dbeae[_0x4029('0xde')])){return this[_0x4029('0xd')][_0x4029('0xb0')](_0x4029('0x185'));}var _0x32eeac=this[_0x4029('0x10')][_0x4029('0x77')](this,_0x4dbeae[_0x4029('0xde')]);if(!_0x32eeac){return this[_0x4029('0xd')][_0x4029('0x2e')](_0x4dbeae,_0x4029('0xe0'));}this[_0x4029('0xd')]['setVariable'](util[_0x4029('0x2b')](_0x4029('0x186'),_0x32eeac),_0x22c3b2[_0x4029('0x7c')]?_0x22c3b2[_0x4029('0x7c')]:'200');this[_0x4029('0xd')][_0x4029('0xa6')](util[_0x4029('0x2b')](_0x4029('0x187'),_0x32eeac),_0x22c3b2[_0x4029('0x7d')]?_0x22c3b2[_0x4029('0x7d')]:'OK');if(_0x22c3b2[_0x4029('0x72')]){try{this[_0x4029('0xa4')](_0x22c3b2['body'],_0x32eeac);}catch(_0xb2f4a2){logger[_0x4029('0x2e')](util['format'](_0x4029('0x188'),_0x32eeac));}}return this[_0x4029('0xd')]['noop'](util[_0x4029('0x2b')](_0x4029('0xe5'),_0x32eeac));};AGIVertices[_0x4029('0xf')][_0x4029('0x189')]=function(_0x183178){logger['info'](util['format']('Enter\x20in\x20SAYDIGITS\x20(%s)\x20block',_0x183178[_0x4029('0x3c')]));return this[_0x4029('0xd')][_0x4029('0x18a')](_0x183178['digits'][_0x4029('0x5e')](/\s+/g,''),_0x183178['escape_digits']);};AGIVertices[_0x4029('0xf')][_0x4029('0x18b')]=function(_0x23b087){logger[_0x4029('0x32')](util[_0x4029('0x2b')](_0x4029('0x18c'),_0x23b087['label']));return this[_0x4029('0xd')][_0x4029('0x18d')](_0x23b087[_0x4029('0x6d')][_0x4029('0x5e')](/\s+/g,''),_0x23b087[_0x4029('0x180')]);};AGIVertices[_0x4029('0xf')][_0x4029('0x18e')]=function(_0x5037f6){logger[_0x4029('0x32')](util[_0x4029('0x2b')](_0x4029('0x18f'),_0x5037f6['label']));return this[_0x4029('0xd')][_0x4029('0x190')](_0x5037f6[_0x4029('0x62')],_0x5037f6[_0x4029('0x180')]);};AGIVertices['prototype'][_0x4029('0x191')]=function(_0x336c32){logger[_0x4029('0x32')](util[_0x4029('0x2b')](_0x4029('0x192'),_0x336c32['label']));if(!this[_0x4029('0x8c')](_0x336c32['account_id'])){return this['channel'][_0x4029('0xb0')](_0x4029('0x193'));}var _0x2211a9=this[_0x4029('0x23')]['sync'](this,_0x336c32['account_id']);if(!_0x2211a9||!_0x2211a9[_0x4029('0x194')]){return this[_0x4029('0xd')][_0x4029('0x2e')](_0x336c32,_0x4029('0x195'));}var _0x436855={'from':util[_0x4029('0x2b')](_0x4029('0x196'),_0x2211a9[_0x4029('0x13')],_0x2211a9[_0x4029('0x197')]||_0x2211a9[_0x4029('0x194')][_0x4029('0x198')]),'to':_0x336c32['to']||'','cc':_0x336c32['cc']||'','bcc':_0x336c32[_0x4029('0x199')]||'','subject':_0x336c32['subject'],'html':_0x336c32[_0x4029('0x62')],'text':_0x336c32['text']};var _0x5e73f0={'tls':{'rejectUnauthorized':![]}};if(_0x2211a9[_0x4029('0x194')]['service']){_0x5e73f0[_0x4029('0x19a')]=_0x2211a9['Smtp'][_0x4029('0x19a')];}else{_0x5e73f0[_0x4029('0x19b')]=_0x2211a9[_0x4029('0x194')][_0x4029('0x19b')];_0x5e73f0[_0x4029('0x19c')]=_0x2211a9['Smtp'][_0x4029('0x19c')];_0x5e73f0[_0x4029('0x19d')]=_0x2211a9[_0x4029('0x194')][_0x4029('0x19d')];}if(_0x2211a9[_0x4029('0x194')][_0x4029('0x19e')]){_0x5e73f0[_0x4029('0x19f')]={'user':_0x2211a9[_0x4029('0x194')][_0x4029('0x198')],'pass':_0x2211a9[_0x4029('0x194')][_0x4029('0x1a0')]};}if(this[_0x4029('0x8c')](_0x336c32['template_id'])){}logger['debug'](_0x4029('0x1a1'),JSON[_0x4029('0x7a')](_0x436855));this['createSquareDetailsReport'][_0x4029('0x77')](this,_0x336c32,_0x336c32[_0x4029('0x1a2')]);this[_0x4029('0xd')][_0x4029('0xb0')](util[_0x4029('0x2b')](_0x4029('0x1a3'),_0x2211a9['name']));this[_0x4029('0x25')]['sync'](this,_0x5e73f0,_0x436855);return this['channel']['noop']('Mail\x20message\x20added\x20to\x20outgoing\x20process');};AGIVertices['prototype'][_0x4029('0x1a4')]=function(_0x1ee026){logger[_0x4029('0x32')](util[_0x4029('0x2b')]('Enter\x20in\x20SENDFAX\x20(%s)\x20block',_0x1ee026[_0x4029('0x3c')]));return this[_0x4029('0xd')][_0x4029('0xb0')](_0x4029('0x1a5'));};AGIVertices[_0x4029('0xf')]['sendSMS']=function(_0x44e9be){logger[_0x4029('0x32')](util['format'](_0x4029('0x1a6'),_0x44e9be[_0x4029('0x3c')]));if(!this['isConfigured'](_0x44e9be[_0x4029('0x1a7')])){return this[_0x4029('0xd')][_0x4029('0xb0')](_0x4029('0x1a8'));}var _0x1b1459=this['getSmsAccount'][_0x4029('0x77')](this,_0x44e9be[_0x4029('0x1a7')]);if(!_0x1b1459){return this['channel']['error'](_0x44e9be,_0x4029('0x1a9'));}var _0x11a504={'body':_0x44e9be['sms_text'],'phone':_0x44e9be['to']||'','SmsAccountId':_0x1b1459['id']};logger['debug']('sendSMS\x20message',JSON[_0x4029('0x7a')](_0x11a504));this['createSquareDetailsReport'][_0x4029('0x77')](this,_0x44e9be,_0x44e9be[_0x4029('0x1a7')]);this[_0x4029('0xd')][_0x4029('0xb0')](util[_0x4029('0x2b')](_0x4029('0x1aa'),_0x1b1459[_0x4029('0x13')]));this[_0x4029('0x39')]['sync'](this,_0x11a504);return this[_0x4029('0xd')][_0x4029('0xb0')]('Sms\x20message\x20added\x20to\x20outgoing\x20process');};AGIVertices[_0x4029('0xf')][_0x4029('0x1ab')]=function(_0x1762b5){logger['info'](util[_0x4029('0x2b')]('Enter\x20in\x20SET\x20(%s)\x20block',_0x1762b5['label']));if(!this[_0x4029('0x8c')](_0x1762b5[_0x4029('0xde')])){return this[_0x4029('0xd')][_0x4029('0x2e')](_0x1762b5,_0x4029('0x1ac'));}var _0x1b072c=this[_0x4029('0x10')][_0x4029('0x77')](this,_0x1762b5[_0x4029('0xde')]);if(!_0x1b072c){return this[_0x4029('0xd')][_0x4029('0x2e')](_0x1762b5,'no\x20variable\x20found');}return this[_0x4029('0xd')]['setVariable'](_0x1b072c,_0x1762b5[_0x4029('0x1ad')]);};AGIVertices['prototype'][_0x4029('0x1ae')]=function(_0x3f919a){logger[_0x4029('0x32')](util[_0x4029('0x2b')]('Enter\x20in\x20START\x20(%s)\x20block',_0x3f919a['label']));this[_0x4029('0xd')][_0x4029('0xb0')]('START\x20CALLY\x20SQUARE');if(_0x3f919a[_0x4029('0xbd')]===_0x4029('0x1af')){this[_0x4029('0xd')]['noop'](_0x4029('0x1b0'));return this[_0x4029('0xd')][_0x4029('0xbd')]();}return this[_0x4029('0xd')][_0x4029('0xb0')]('Skipped\x20Answer');};AGIVertices[_0x4029('0xf')][_0x4029('0x1b1')]=function(_0x179d12){logger[_0x4029('0x32')](util['format'](_0x4029('0x1b2'),_0x179d12[_0x4029('0x3c')]));if(!this[_0x4029('0x8c')](_0x179d12[_0x4029('0x1b3')])){return this['channel'][_0x4029('0x2e')](_0x179d12,'no\x20subproject\x20selected');}var _0x2acacf=this[_0x4029('0x17')][_0x4029('0x77')](this,_0x179d12[_0x4029('0x1b3')]);if(!this[_0x4029('0x8c')](_0x2acacf)){return this[_0x4029('0xd')][_0x4029('0x2e')](_0x179d12,util['format'](_0x4029('0x1b4'),_0x179d12[_0x4029('0x1b3')]));}if(_0x2acacf===this['channel']['arg_1']){return this[_0x4029('0xd')]['error'](_0x179d12,_0x4029('0x1b5'));}this[_0x4029('0x3a')]['sync'](this,_0x179d12,_0x2acacf);var _0x5aaa09=this['channel']['exec'](_0x4029('0x1b6'),util['format'](_0x4029('0x1b7'),config[_0x4029('0x6')]['host']||_0x4029('0x1b8'),_0x2acacf,this['channel'][_0x4029('0x1b9')]));if(_0x5aaa09[_0x4029('0xab')]===-0x1){return _0x5aaa09;}return this[_0x4029('0xd')][_0x4029('0xb0')](util[_0x4029('0x2b')]('Executed\x20command\x20%s\x20%s',_0x4029('0x1b6'),_0x2acacf));};AGIVertices[_0x4029('0xf')][_0x4029('0x1ba')]=function(_0xb9a294){logger[_0x4029('0x32')](util['format'](_0x4029('0x1bb'),_0xb9a294['label']));var _0x5d7e1d=this[_0x4029('0x5b')][_0x4029('0x77')](this,_0xb9a294['command']);this[_0x4029('0x3a')][_0x4029('0x77')](this,_0xb9a294,_0xb9a294['command']);if(this['isConfigured'](_0xb9a294[_0x4029('0xde')])){var _0x3043f=this['getVariable'][_0x4029('0x77')](this,_0xb9a294['variable_id']);if(_0x3043f){this[_0x4029('0xd')][_0x4029('0xa6')](_0x3043f,_0x5d7e1d);return this[_0x4029('0xd')][_0x4029('0xb0')](util[_0x4029('0x2b')](_0x4029('0x1bc'),_0xb9a294[_0x4029('0xbb')],_0x3043f));}}return this['channel'][_0x4029('0xb0')](util[_0x4029('0x2b')](_0x4029('0x1bd'),_0xb9a294[_0x4029('0xbb')]));};AGIVertices[_0x4029('0xf')]['google_cloud_tts']=function(_0x3ae14d){logger[_0x4029('0x32')](util[_0x4029('0x2b')]('Enter\x20in\x20Google\x20Cloud\x20TTS\x20(%s)\x20block',_0x3ae14d[_0x4029('0x3c')]));_0x3ae14d[_0x4029('0x62')]=_0x3ae14d[_0x4029('0x62')][_0x4029('0x5e')](/(\r\n|\n|\r)/gm,'\x20');if(!this[_0x4029('0x8c')](_0x3ae14d[_0x4029('0x60')])){return this['channel'][_0x4029('0xb0')](_0x4029('0x1be'));}if(!this[_0x4029('0x8c')](_0x3ae14d[_0x4029('0x62')])){return this[_0x4029('0xd')][_0x4029('0xb0')](_0x4029('0xcc'));}this[_0x4029('0xd')]['noop'](util[_0x4029('0x2b')](_0x4029('0x1bf'),_0x3ae14d['text']));var _0x4480ee=this[_0x4029('0x5f')][_0x4029('0x77')](this,_0x3ae14d);if(_0x4480ee){this['channel'][_0x4029('0xb0')](util['format'](_0x4029('0x1c0'),_0x4480ee));var _0x13c812=this[_0x4029('0xd')][_0x4029('0x10c')](_0x4480ee);try{fs[_0x4029('0x10d')](_0x4480ee+_0x4029('0x10e'));}catch(_0x5ab0e8){logger[_0x4029('0x2e')](_0x5ab0e8);}return _0x13c812;}return this[_0x4029('0xd')][_0x4029('0x2e')](_0x3ae14d,'Google\x20Cloud\x20TTS\x20is\x20unreachable');};AGIVertices[_0x4029('0xf')][_0x4029('0x1c1')]=function(_0x2466a8){logger[_0x4029('0x32')](util[_0x4029('0x2b')](_0x4029('0x1c2'),_0x2466a8[_0x4029('0x3c')]));_0x2466a8[_0x4029('0x62')]=_0x2466a8[_0x4029('0x62')][_0x4029('0x5e')](/(\r\n|\n|\r)/gm,'\x20');if(!this[_0x4029('0x8c')](_0x2466a8['text'])){return this[_0x4029('0xd')][_0x4029('0xb0')](_0x4029('0xcc'));}this[_0x4029('0xd')][_0x4029('0xb0')](util[_0x4029('0x2b')]('Trying\x20Google\x20TTS\x20%s',_0x2466a8[_0x4029('0x62')]));var _0x339ded=this[_0x4029('0x68')][_0x4029('0x77')](this,_0x2466a8);if(_0x339ded){this[_0x4029('0xd')][_0x4029('0xb0')](util[_0x4029('0x2b')](_0x4029('0x1c3'),_0x339ded));var _0xca57a9=this['channel'][_0x4029('0x10c')](_0x339ded);try{fs[_0x4029('0x10d')](_0x339ded+_0x4029('0x10e'));}catch(_0x43bd0a){logger['error'](_0x43bd0a);}return _0xca57a9;}return this[_0x4029('0xd')]['error'](_0x2466a8,'Google\x20TTS\x20is\x20unreachable');};AGIVertices['prototype'][_0x4029('0x1c4')]=function(_0x541b71){logger[_0x4029('0x32')](util[_0x4029('0x2b')](_0x4029('0x1c5'),_0x541b71[_0x4029('0x3c')]));if(!this[_0x4029('0x8c')](_0x541b71[_0x4029('0x15a')])){return this['channel'][_0x4029('0x2e')](_0x541b71,'no\x20find\x20by\x20configured');}logger[_0x4029('0x32')](util[_0x4029('0x2b')](_0x4029('0x15c'),this[_0x4029('0xd')]['callerid'],_0x541b71[_0x4029('0x15a')]));var _0x144ae3=this[_0x4029('0x55')]['sync'](this,_0x541b71['findBy']);if(_0x144ae3){logger[_0x4029('0x32')](util[_0x4029('0x2b')]('AGENT\x20%s\x20FOUND\x20BY',this[_0x4029('0xd')][_0x4029('0x3e')],_0x541b71[_0x4029('0x15a')]));this[_0x4029('0xd')][_0x4029('0xb0')](util[_0x4029('0x2b')](_0x4029('0x15d'),this['channel'][_0x4029('0x3e')],_0x541b71[_0x4029('0x15a')]));return{'code':0xc8,'result':_0x4029('0x162')};}else{logger[_0x4029('0x32')](util[_0x4029('0x2b')](_0x4029('0x15e'),this[_0x4029('0xd')][_0x4029('0x3e')],_0x541b71[_0x4029('0x15a')]));this[_0x4029('0xd')]['noop'](util[_0x4029('0x2b')](_0x4029('0x15e'),this[_0x4029('0xd')][_0x4029('0x3e')],_0x541b71[_0x4029('0x15a')]));return{'code':0xc8,'result':_0x4029('0x15f')};}};AGIVertices[_0x4029('0xf')]['voicemail']=function(_0x1372f8){logger[_0x4029('0x32')](util[_0x4029('0x2b')]('Enter\x20in\x20VOICEMAIL\x20(%s)\x20block',_0x1372f8['label']));var _0x476298=this[_0x4029('0xd')][_0x4029('0x5c')]('VOICEMAIL',[_0x1372f8['mailbox'],_0x1372f8['options']]);if(_0x476298[_0x4029('0xab')]===-0x1){return _0x476298;}return this[_0x4029('0xd')][_0x4029('0xb0')](util['format'](_0x4029('0xc9'),_0x4029('0x1c6'),_0x1372f8[_0x4029('0x1c7')]));};AGIVertices[_0x4029('0xf')][_0x4029('0x1c8')]=function(_0x592f89){logger['info'](util['format'](_0x4029('0x1c9'),_0x592f89[_0x4029('0x3c')]));if(!this[_0x4029('0x8c')](_0x592f89['variable_id'])){return this[_0x4029('0xd')][_0x4029('0x2e')](_0x592f89,_0x4029('0x1ac'));}var _0x916728=this[_0x4029('0x10')][_0x4029('0x77')](this,_0x592f89['variable_id']);if(!_0x916728){return this[_0x4029('0xd')][_0x4029('0x2e')](_0x592f89,_0x4029('0xe0'));}var _0x5c2ce4=this[_0x4029('0xd')][_0x4029('0x10')](_0x916728);return{'code':0xc8,'result':_0x5c2ce4['extra']?_0x5c2ce4[_0x4029('0xa9')]:'-'};};String[_0x4029('0xf')][_0x4029('0xa8')]=function(_0x5a64ac,_0xe1ccca){return this['split'](_0x5a64ac)['join'](_0xe1ccca);};module[_0x4029('0x1ca')]=AGIVertices;
\ No newline at end of file
+var _0x36d3=['GOAL\x20%s','awspolly','[AGI]\x20Enter\x20in\x20AWSPOLLY\x20(%s)\x20block','aws_access_key_id','no\x20valid\x20credentials\x20configured','aws\x20Polly\x20%s\x20file\x20created','aws\x20Polly\x20is\x20unreachable','Enter\x20in\x20Amazon\x20Lex\x20(%s)\x20block','no\x20bot\x20name\x20configured','Trying\x20Amazon\x20Lex:\x20%s','AWS_LEX_%s','message','Amazon\x20Lex\x20ready\x20for\x20fulfillment','amazonlex','Amazon\x20Lex\x20Result\x20%s','Amazon\x20Lex\x20is\x20unreachable','googleasr','Enter\x20in\x20GOOGLEASR\x20(%s)\x20block\x20%s','%s/recordings/%s','beep','NOBEEP','intKey','google\x20%s\x20file\x20created','GoogleASR\x20Result\x20%s','tildeasr','no\x20appid\x20configured','wav','recordFile','tilde\x20%s\x20file\x20created','gotoc','continueAt','gotoif','Enter\x20in\x20GOTOIF\x20(%s)\x20block','condition','no\x20condition\x20configured','true','false','EVAL\x20CONDITION\x20%s\x20%s','gotoiftime','Enter\x20in\x20GOTOIFTIME\x20(%s)\x20block','interval_id','no\x20interval\x20configured','no\x20intervals\x20found','IFTIME(%s?true:false)','IFTIME\x20%s\x20%s','hangup','ispeechasr','Enter\x20in\x20ISPEECHASR\x20(%s)\x20block','ispeech\x20%s\x20file\x20created','ISPEECH_ASR_%s','IspeechASR\x20Result\x20%s','ispeechtts','Enter\x20in\x20ISPEECHTTS\x20(%s)\x20block','Trying\x20ispeech\x20TTS\x20%s','ispeech\x20TTS\x20is\x20unreachable','login','Enter\x20in\x20LOGIN\x20(%s)\x20block','no\x20find\x20by\x20configured','findBy','AGENT\x20%s\x20FOUND\x20BY','AGENT\x20%s\x20NOT\x20FOUND\x20BY','logout','Enter\x20in\x20LOGOUT\x20(%s)\x20block','agentLogout','success','failure','math','Enter\x20in\x20MATH\x20(%s)\x20block','operation','no\x20operation\x20configured','math\x20%s','%s[%s]','variable\x20%s[key]\x20set','no\x20file\x20audio\x20selected','response','digit','Enter\x20in\x20NOOP\x20(%s)\x20block','output','pause','Enter\x20in\x20PAUSE\x20(%s)\x20block','FIND\x20AGENT\x20%s\x20BY\x20%s','pause_id','playback','Enter\x20in\x20PLAYBACK\x20(%s)\x20block','opts','Executed\x20command\x20%s\x20%s','no\x20queue\x20selected','queue_id','no\x20queue\x20found','indexOf','XMCS-QUEUE','QUEUE','gosub','position','record','Enter\x20in\x20RECORD\x20(%s)\x20block','recordingFormat','%s_%s','%s/recordings/%s.%s','RECORDING_SAVENAME','escape_digits','restapi','no\x20url\x20configured','restAPI','Response:','inspect','no\x20variable\x20selected\x20for\x20the\x20response','%s_STATUS_CODE','200','%s_STATUS_MESSAGE','statusMessage','Unable\x20to\x20set\x20result\x20in\x20variable\x20%s','saydigits','Enter\x20in\x20SAYDIGITS\x20(%s)\x20block','sayDigits','digits','saynumber','Enter\x20in\x20SAYNUMBER\x20(%s)\x20block','sayNumber','sayphonetic','Enter\x20in\x20SAYPHONETIC\x20(%s)\x20block','sayPhonetic','Enter\x20in\x20SENDMAIL\x20(%s)\x20block','account_id','no\x20mail\x20account\x20configured','Smtp','no\x20mail\x20account\x20found','\x22%s\x22\x20<%s>','email','bcc','subject','service','host','port','authentication','auth','user','pass','template_id','Trying\x20SendMail\x20with\x20account\x20%s','Mail\x20message\x20added\x20to\x20outgoing\x20process','sendFax','Enter\x20in\x20SENDFAX\x20(%s)\x20block','SENDFAX\x20block\x20not\x20implemented','sendSMS','sms_account_id','no\x20sms\x20account\x20configured','sms_text','Trying\x20SendSMS\x20with\x20account\x20%s','Sms\x20message\x20added\x20to\x20outgoing\x20process','set','Enter\x20in\x20SET\x20(%s)\x20block','no\x20variable\x20selected','variable_value','start','yes','Answer','Skipped\x20Answer','subproject','project_id','no\x20subproject\x20selected','no\x20subproject\x20found\x20with\x20id\x20%d','project\x20in\x20subproject\x20must\x20be\x20different\x20from\x20the\x20called\x20project','AGI','agi://%s/square,\x22%s\x22,\x22%s\x22','127.0.0.1','system','sh\x20command:\x20%s\x20result\x20no\x20stored','google_cloud_tts','Enter\x20in\x20Google\x20Cloud\x20TTS\x20(%s)\x20block','no\x20apiKey\x20configured','Google\x20Cloud\x20TTS\x20is\x20unreachable','Trying\x20Google\x20TTS\x20%s','Google\x20TTS\x20%s\x20file\x20created','Enter\x20in\x20UNPAUSE\x20(%s)\x20block','voicemail','VOICEMAIL','mailbox','Enter\x20in\x20SWITCH\x20(%s)\x20block','join','exports','path','util','lodash','randomstring','moment','mustache','request-promise','../../config/logger','agi','../../config/environment','./scripts','/var/opt/motion2/server/files','rawHeaders','rawBody','menu','getdigits','getsecretdigits','channel','rpc','mailRpc','prototype','getVariableById','then','name','catch','getVoiceQueue','getVoiceQueueById','getSquareProject','getSquareProjectById','getSquareOdbc','dsn','getUserById','getTrunk','getTrunkById','getSound','getSoundById','save_name','getMailAccount','getMailAccountById','sendMailMessage','IntervalId','interval','map','Intervals','getSoundPath','format','%s/sounds/converted/%s','error','Error\x20getting\x20ODBC\x20connection\x20%s','info','ODBC\x20connection\x20successfully','query','Error\x20executing\x20query\x20%s','Query\x20executed\x20correctly\x20%s','close','Error\x20closing\x20connection\x20to\x20odbc\x20%s','getSmsAccount','getSmsAccountById','createSmsMessage','createSquareDetailsReport','uniqueid','label','arg_1','callerid','createSquareRecording','calleridname','context','priority','createSquareMessage','createCmContact','callback_','random','isEmpty','lastName','isNil','list_id','scheduledAt','Callback\x20scheduled\x20at\x20','toString','callback_priority','getPause','getPauseById','agent','agentPause','agentUnpause','agentLogin','%s/%s@from-sip/n','shellCommand','exec','trim','replace','googleCloudTTS','apiKey','google_cloud_tts_text_type','text','languageCode','ssmlGender','MALE','audioEncoding','MP3','googleTTS','google_tts_language','url','method','timeout','number','includes','POST','PUT','toUpperCase','body','parse','headers','An\x20incorrect\x20formatted\x20json\x20headers\x20has\x20been\x20passed\x20to\x20the\x20function','sync','uri','render','stringify','An\x20incorrect\x20formatted\x20json\x20has\x20been\x20passed\x20to\x20the\x20function','statusCode','500\x20-\x20Internal\x20Server\x20Error','options','googleDialogflow','key','dialogflow_language','googleDialogflowV2','dialogflowV2_project_id','private_key','dialogflowV2_language','sestekNDA','ispeechTTS','ispeechASR','ispeech_asr_language','en-US','isConfigured','model','awsPolly','aws_secret_access_key','aws_polly_region','aws_polly_voice','Amy','aws_text_type','awsLex','aws_lex_region','aws_bot_name','googleASR','google_asr_language','tildeASR','appid','appsecret','clear','agicommand','clone','hasOwnProperty','replaceObjectAllVariables','recursiveNodeIndex','isPlainObject','isString','saveRestApiResult','%s.%s','isArray','replaceAllVariables','split','length','replaceAll','getVariable','extra','getAndSetVariable','result','setVariable','maxRetry','retry','mrcpsynth','noop','no\x20text\x20configured','MRCPSynth','Executed\x20command\x20MRCPSynth\x20%s','mrcprecog','Enter\x20in\x20MRCPRecog\x20(%s)\x20block','grammar','no\x20grammar\x20configured','MRCPRecog','RECOG_CONFIDENCE()','MRCP_RECOG_CONFIDENCE','RECOG_INPUT()','MRCP_RECOG_TRANSCRIPT','RECOG_INSTANCE()','MRCP_RECOG_INSTANCE','Executed\x20command\x20MRCPRecog\x20%s','Enter\x20in\x20AGI\x20(%s)\x20block','command','args','answer','Enter\x20in\x20ANSWER\x20(%s)\x20block','Wait\x20%s\x20seconds\x20before\x20answer','callback','Enter\x20in\x20CALLBACK\x20(%s)\x20block','no\x20list\x20selected','delay','CALLBACK\x20added\x20phone:\x20%s\x20on\x20list:\x20%s\x20at\x20%s','phone','custom_app','Enter\x20in\x20CUSTOM\x20APP\x20(%s)\x20block','application','lumenvoxtts','Enter\x20in\x20LUMENVOXTTS\x20(%s)\x20block','Enter\x20in\x20SESTEKTTS\x20(%s)\x20block','lumenvoxasr','LUMENVOX_ASR_CONFIDENCE','LUMENVOX_ASR_TRANSCRIPT','LUMENVOX_ASR_INSTANCE','sestekasr','SESTEK_ASR_CONFIDENCE','SESTEK_ASR_TRANSCRIPT','Enter\x20in\x20DATABASE\x20(%s)\x20block','odbc_id','no\x20database\x20selected','no\x20odbc\x20database\x20found','no\x20query\x20configured','getQueryOdbc','variable_id','no\x20variable\x20selected\x20for\x20the\x20result','keys','forEach','dial','debug','Enter\x20in\x20DIAL\x20(%s)\x20block','sip_id','no\x20user\x20selected','getUser','no\x20user\x20found','DIAL','SIP/%s','dialogflow','Enter\x20in\x20DIALOGFLOW\x20(%s)\x20block','no\x20key\x20configured','bot','Trying\x20Dialogflow:\x20%s','DIALOGFLOW_%s','speech','out','Dialogflow\x20Result\x20%s','Enter\x20in\x20DIALOGFLOW\x20V2\x20(%s)\x20block','no\x20project_id\x20configured','no\x20private_key\x20configured','no\x20anguage\x20configured','Trying\x20DialogflowV2:\x20%s','providerResponse','dialogflowV2','DialogflowV2\x20Result\x20%s','Enter\x20in\x20SESTEKNDA\x20(%s)\x20block','ndauth_url','no\x20ndauth\x20url\x20configured','username','no\x20username\x20configured','password','no\x20password\x20configured','ndassistant_url','SESTEK_NDA_%s','sesteknda','audiofile','Sestek\x20NDA\x20%s\x20file\x20created','streamFile','unlink','.wav','SestekNDA\x20is\x20unreachable','end','ext_dial','Enter\x20in\x20EXTERNAL\x20DIAL\x20(%s)\x20block','trunk_id','no\x20trunk\x20selected','no\x20trunk\x20found','trunk_name','SIP/%s/%s','finally','Enter\x20in\x20GETDIGITS\x20(%s)\x20block','file_id','no\x20file\x20audio\x20found','getData','maxdigit','mindigit','no\x20variable\x20found','hiddendigitsnum','hiddendigitspos','first','substr','generate','Enter\x20in\x20GETSECRETDIGITS\x20(%s)\x20block','Enter\x20in\x20GOAL\x20(%s)\x20block','goalname'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x36d3,0xb5));var _0x336d=function(_0x121490,_0x59bd89){_0x121490=_0x121490-0x0;var _0x305cf4=_0x36d3[_0x121490];return _0x305cf4;};'use strict';var fs=require('fs');var path=require(_0x336d('0x0'));var util=require(_0x336d('0x1'));var _=require(_0x336d('0x2'));var sh=require('shelljs');var odbc=require('odbc')();var rs=require(_0x336d('0x3'));var moment=require(_0x336d('0x4'));var Mustache=require(_0x336d('0x5'));var rp=require(_0x336d('0x6'));var logger=require(_0x336d('0x7'))(_0x336d('0x8'));var config=require(_0x336d('0x9'));var scripts=require(_0x336d('0xa'));var FILES_PATH=_0x336d('0xb');var recursiveMapAttributes=[_0x336d('0xc'),_0x336d('0xd')];var verticesWithRetry=[_0x336d('0xe'),_0x336d('0xf'),_0x336d('0x10')];var AGIVertices=function(_0x59c8ef,_0x432285,_0x5e5fa5){this[_0x336d('0x11')]=_0x59c8ef;this[_0x336d('0x12')]=_0x432285;this[_0x336d('0x13')]=_0x5e5fa5;};AGIVertices[_0x336d('0x14')]['getVariable']=function(_0xb2e33b,_0x1d711d){this[_0x336d('0x12')][_0x336d('0x15')](_0xb2e33b)[_0x336d('0x16')](function(_0x2c4bb3){_0x1d711d(null,_0x2c4bb3?_0x2c4bb3[_0x336d('0x17')]:![]);})[_0x336d('0x18')](function(_0x2ea18f){_0x1d711d(_0x2ea18f);});};AGIVertices[_0x336d('0x14')][_0x336d('0x19')]=function(_0x2ab8b1,_0x167720){this[_0x336d('0x12')][_0x336d('0x1a')](_0x2ab8b1)[_0x336d('0x16')](function(_0x5bd2b5){_0x167720(null,_0x5bd2b5?_0x5bd2b5[_0x336d('0x17')]:![]);})[_0x336d('0x18')](function(_0x470254){_0x167720(_0x470254);});};AGIVertices[_0x336d('0x14')][_0x336d('0x1b')]=function(_0x587ecc,_0x3be59f){this['rpc'][_0x336d('0x1c')](_0x587ecc)[_0x336d('0x16')](function(_0x13a143){_0x3be59f(null,_0x13a143?_0x13a143[_0x336d('0x17')]:![]);})[_0x336d('0x18')](function(_0x3a355e){_0x3be59f(_0x3a355e);});};AGIVertices['prototype'][_0x336d('0x1d')]=function(_0x40e188,_0x5439c7){this[_0x336d('0x12')]['getSquareOdbcById'](_0x40e188)[_0x336d('0x16')](function(_0x24f781){_0x5439c7(null,_0x24f781?_0x24f781[_0x336d('0x1e')]:![]);})['catch'](function(_0x3fadfa){_0x5439c7(_0x3fadfa);});};AGIVertices['prototype']['getUser']=function(_0xe71ed6,_0xec828d){this[_0x336d('0x12')][_0x336d('0x1f')](_0xe71ed6)[_0x336d('0x16')](function(_0x19d8a9){_0xec828d(null,_0x19d8a9?_0x19d8a9[_0x336d('0x17')]:![]);})[_0x336d('0x18')](function(_0x23ba74){_0xec828d(_0x23ba74);});};AGIVertices['prototype'][_0x336d('0x20')]=function(_0x111074,_0xb241f2){this['rpc'][_0x336d('0x21')](_0x111074)[_0x336d('0x16')](function(_0x4cfc4f){_0xb241f2(null,_0x4cfc4f?_0x4cfc4f[_0x336d('0x17')]:![]);})[_0x336d('0x18')](function(_0x57bdff){_0xb241f2(_0x57bdff);});};AGIVertices[_0x336d('0x14')][_0x336d('0x22')]=function(_0x4e33ed,_0x1e6428){var _0x178b4f=this;this[_0x336d('0x12')][_0x336d('0x23')](_0x4e33ed)[_0x336d('0x16')](function(_0x620cab){_0x1e6428(null,_0x620cab?_0x178b4f['getSoundPath'](_0x620cab[_0x336d('0x24')]):![]);})[_0x336d('0x18')](function(_0x21eb9a){_0x1e6428(_0x21eb9a);});};AGIVertices[_0x336d('0x14')][_0x336d('0x25')]=function(_0x2eb0ac,_0x38f3a1){this['rpc'][_0x336d('0x26')](_0x2eb0ac)[_0x336d('0x16')](function(_0x246b9f){_0x38f3a1(null,_0x246b9f?_0x246b9f:![]);})[_0x336d('0x18')](function(_0x5d9e49){_0x38f3a1(_0x5d9e49);});};AGIVertices[_0x336d('0x14')][_0x336d('0x27')]=function(_0x598dbb,_0x514d78,_0x4a26cf){this[_0x336d('0x13')][_0x336d('0x27')](_0x598dbb,_0x514d78)[_0x336d('0x16')](function(){_0x4a26cf(null);})[_0x336d('0x18')](function(_0x49ee67){_0x4a26cf(_0x49ee67);});};AGIVertices['prototype']['getIntervals']=function(_0x258b81,_0x2998ec){this[_0x336d('0x12')]['getIntervalById'](_0x258b81)['then'](function(_0x1b5bd4){if(_0x1b5bd4){if(_0x1b5bd4[_0x336d('0x28')]){_0x2998ec(null,[_0x1b5bd4[_0x336d('0x29')]]);}else{_0x2998ec(null,_[_0x336d('0x2a')](_0x1b5bd4[_0x336d('0x2b')],'interval'));}}else{_0x2998ec(null,![]);}})[_0x336d('0x18')](function(_0xf542eb){_0x2998ec(_0xf542eb);});};AGIVertices[_0x336d('0x14')][_0x336d('0x2c')]=function(_0x51c741){return util[_0x336d('0x2d')](_0x336d('0x2e'),FILES_PATH,_0x51c741);};AGIVertices['prototype']['getQueryOdbc']=function(_0x270e36,_0x38f97b,_0xb3164e){odbc['open'](_0x270e36,function(_0x57ef77){if(_0x57ef77){logger[_0x336d('0x2f')](_0x336d('0x30'),_0x57ef77);_0xb3164e(_0x57ef77);}else{logger[_0x336d('0x31')](_0x336d('0x32'));odbc[_0x336d('0x33')](_0x38f97b,function(_0x377eac,_0x302dc9){if(_0x377eac){logger['info'](_0x336d('0x34'),_0x38f97b);_0xb3164e(_0x377eac);}else{logger[_0x336d('0x31')](_0x336d('0x35'),_0x38f97b);odbc[_0x336d('0x36')](function(_0xc48831){if(_0xc48831){logger['error'](_0x336d('0x37'),_0xc48831);}_0xb3164e(null,_0x302dc9);});}});}});};AGIVertices['prototype'][_0x336d('0x38')]=function(_0x1d4bb2,_0x575c70){this[_0x336d('0x12')][_0x336d('0x39')](_0x1d4bb2)[_0x336d('0x16')](function(_0xd18406){_0x575c70(null,_0xd18406?_0xd18406:![]);})['catch'](function(_0x4cea34){_0x575c70(_0x4cea34);});};AGIVertices[_0x336d('0x14')][_0x336d('0x3a')]=function(_0x596f56,_0x4de7ef){this['rpc'][_0x336d('0x3a')](_0x596f56)[_0x336d('0x16')](function(_0x1736ba){_0x4de7ef(null,_0x1736ba);})[_0x336d('0x18')](function(_0x287242){_0x4de7ef(_0x287242);});};AGIVertices[_0x336d('0x14')][_0x336d('0x3b')]=function(_0x3eb8df,_0x48b29f,_0x4ea515){this['rpc']['createSquareDetailsReport']({'uniqueid':this[_0x336d('0x11')][_0x336d('0x3c')],'node':_0x3eb8df[_0x336d('0x3d')],'application':_0x3eb8df['agicommand'],'data':_0x48b29f||null,'project_name':this[_0x336d('0x11')][_0x336d('0x3e')],'callerid':this[_0x336d('0x11')][_0x336d('0x3f')]})[_0x336d('0x16')](function(_0x4ca37b){if(_0x4ea515){_0x4ea515(null,_0x4ca37b);}})[_0x336d('0x18')](function(_0x5da68d){if(_0x4ea515){_0x4ea515(_0x5da68d);}});};AGIVertices[_0x336d('0x14')][_0x336d('0x40')]=function(_0x3f0cfb,_0x177411,_0x107a05,_0x5aa0a3){this['rpc'][_0x336d('0x40')]({'uniqueid':this[_0x336d('0x11')][_0x336d('0x3c')],'callerid':this[_0x336d('0x11')][_0x336d('0x3f')],'calleridname':this[_0x336d('0x11')][_0x336d('0x41')],'context':this['channel'][_0x336d('0x42')],'extension':this[_0x336d('0x11')]['extension'],'priority':this[_0x336d('0x11')][_0x336d('0x43')],'accountcode':this[_0x336d('0x11')]['accountcode'],'dnid':this['channel']['dnid'],'projectName':this['channel'][_0x336d('0x3e')],'saveName':_0x177411,'filename':_0x3f0cfb['file']||_0x177411,'savePath':_0x107a05})[_0x336d('0x16')](function(_0xc1e7be){_0x5aa0a3(null,_0xc1e7be);})['catch'](function(_0x2b9df2){_0x5aa0a3(_0x2b9df2);});};AGIVertices[_0x336d('0x14')][_0x336d('0x44')]=function(_0x51c1ca,_0x330aa2,_0x29630d,_0x4174c1,_0x92a526){this[_0x336d('0x12')][_0x336d('0x44')]({'uniqueid':this[_0x336d('0x11')][_0x336d('0x3c')],'body':_0x51c1ca,'direction':_0x330aa2,'providerName':_0x29630d,'providerResponse':_0x4174c1})['then'](function(_0x25e433){if(_0x92a526){_0x92a526(null,_0x25e433);}})[_0x336d('0x18')](function(_0x32bd24){if(_0x92a526){_0x92a526(_0x32bd24);}});};AGIVertices[_0x336d('0x14')][_0x336d('0x45')]=function(_0x54be34,_0x34895e){this[_0x336d('0x12')][_0x336d('0x45')]({'firstName':_['isEmpty'](_0x54be34[_0x336d('0x17')])||_['isNil'](_0x54be34['name'])?_0x336d('0x46')+Math[_0x336d('0x47')]():_0x54be34['name'],'lastName':_[_0x336d('0x48')](_0x54be34[_0x336d('0x49')])||_[_0x336d('0x4a')](_0x54be34[_0x336d('0x49')])?null:_0x54be34['lastName'],'phone':_0x54be34['phone'],'ListId':_0x54be34[_0x336d('0x4b')],'scheduledat':_0x54be34[_0x336d('0x4c')],'callbackUniqueid':this[_0x336d('0x11')][_0x336d('0x3c')],'tags':'callback','description':_0x336d('0x4d')+_0x54be34['scheduledAt'][_0x336d('0x4e')](),'priority':_0x54be34[_0x336d('0x4f')]})['then'](function(_0x1fe1a3){_0x34895e(null,_0x1fe1a3);})['catch'](function(_0x26362b){_0x34895e(_0x26362b);});};AGIVertices[_0x336d('0x14')][_0x336d('0x50')]=function(_0x1dafe0,_0x1c74c3){this[_0x336d('0x12')][_0x336d('0x51')](_0x1dafe0)[_0x336d('0x16')](function(_0x33d250){_0x1c74c3(null,_0x33d250?_0x33d250[_0x336d('0x17')]:![]);})[_0x336d('0x18')](function(_0x1e2bdd){_0x1c74c3(_0x1e2bdd);});};AGIVertices[_0x336d('0x14')]['agentPause']=function(_0xe4ea32,_0x2100ce,_0x53f8bd){var _0x1cab35={'role':_0x336d('0x52')};_0x1cab35[_0xe4ea32]=this[_0x336d('0x11')][_0x336d('0x3f')];this['rpc'][_0x336d('0x53')](_0x1cab35,_0x2100ce,this[_0x336d('0x11')][_0x336d('0x3c')])['then'](function(_0xb37b94){_0x53f8bd(null,_[_0x336d('0x4a')](_0xb37b94)?![]:!![]);})['catch'](function(_0x21b3f3){logger[_0x336d('0x2f')](_0x21b3f3);_0x53f8bd(null,![]);});};AGIVertices['prototype'][_0x336d('0x54')]=function(_0x51716,_0x571c2d){var _0x3a1dfd={'role':_0x336d('0x52')};_0x3a1dfd[_0x51716]=this[_0x336d('0x11')][_0x336d('0x3f')];this['rpc'][_0x336d('0x54')](_0x3a1dfd)['then'](function(_0x818f82){_0x571c2d(null,_[_0x336d('0x4a')](_0x818f82)?![]:!![]);})[_0x336d('0x18')](function(_0x22fd72){logger[_0x336d('0x2f')](_0x22fd72);_0x571c2d(null,![]);});};AGIVertices[_0x336d('0x14')]['agentLogout']=function(_0x543122,_0xcc9503){var _0x1f9314={'role':_0x336d('0x52')};_0x1f9314[_0x543122]=this[_0x336d('0x11')][_0x336d('0x3f')];this[_0x336d('0x12')]['agentLogout'](_0x1f9314)[_0x336d('0x16')](function(_0x4d7c49){_0xcc9503(null,_[_0x336d('0x4a')](_0x4d7c49)?![]:!![]);})['catch'](function(_0x19f589){logger[_0x336d('0x2f')](_0x19f589);_0xcc9503(null,![]);});};AGIVertices['prototype'][_0x336d('0x55')]=function(_0xe7501a,_0x489986){var _0x497ea8={'role':_0x336d('0x52')};_0x497ea8[_0xe7501a]=this[_0x336d('0x11')][_0x336d('0x3f')];var _0x320ea3=_0xe7501a!='internal'?util[_0x336d('0x2d')](_0x336d('0x56'),'LOCAL',this['channel']['callerid']):undefined;this[_0x336d('0x12')][_0x336d('0x55')](_0x497ea8,_0x320ea3)[_0x336d('0x16')](function(_0x41c0cb){_0x489986(null,_[_0x336d('0x4a')](_0x41c0cb)?![]:!![]);})[_0x336d('0x18')](function(_0x401868){logger[_0x336d('0x2f')](_0x401868);_0x489986(null,![]);});};AGIVertices[_0x336d('0x14')][_0x336d('0x57')]=function(_0xad294f,_0x388539){sh[_0x336d('0x58')](_[_0x336d('0x59')](_0xad294f),function(_0x4e655c,_0x541586){var _0xcc02d6=_0x541586[_0x336d('0x5a')](/(\r\n|\n|\r)/gm,'');_0x388539(null,_0xcc02d6);});};AGIVertices[_0x336d('0x14')][_0x336d('0x5b')]=function(_0xead180,_0x505180){scripts['googleCloudTTS'](_0xead180[_0x336d('0x5c')],_0xead180[_0x336d('0x5d')]||'text',_0xead180[_0x336d('0x5e')],_0xead180[_0x336d('0x5f')]||'en-US',_0xead180[_0x336d('0x60')]||_0x336d('0x61'),_0xead180[_0x336d('0x62')]||_0x336d('0x63'))[_0x336d('0x16')](function(_0x5d1684){_0x505180(null,_0x5d1684);})[_0x336d('0x18')](function(_0x5a2eb5){_0x505180(_0x5a2eb5);});};AGIVertices['prototype'][_0x336d('0x64')]=function(_0x3ce911,_0x10ed95){scripts['googleTTS'](_0x3ce911['text'],_0x3ce911[_0x336d('0x65')]||'en',0x1)[_0x336d('0x16')](function(_0x250722){_0x10ed95(null,_0x250722);})['catch'](function(_0x448065){_0x10ed95(_0x448065);});};AGIVertices[_0x336d('0x14')]['restAPI']=function(_0x39c881,_0x56fa2c){var _0x16f9b0={'uri':_0x39c881[_0x336d('0x66')],'method':_0x39c881[_0x336d('0x67')],'json':!![],'resolveWithFullResponse':!![],'strictSSL':![],'timeout':typeof parseInt(_0x39c881[_0x336d('0x68')])===_0x336d('0x69')&&parseInt(_0x39c881[_0x336d('0x68')])>=0x1?parseInt(_0x39c881['timeout'])*0x3e8:0x5*0x3e8};if(_[_0x336d('0x6a')]([_0x336d('0x6b'),_0x336d('0x6c')],_0x16f9b0['method'][_0x336d('0x6d')]())){try{_0x16f9b0[_0x336d('0x6e')]=_0x39c881[_0x336d('0xd')]?JSON[_0x336d('0x6f')](_0x39c881[_0x336d('0xd')]):{};}catch(_0x26cf38){logger[_0x336d('0x2f')]('An\x20incorrect\x20formatted\x20json\x20body\x20has\x20been\x20passed\x20to\x20the\x20function',_0x26cf38);}}try{_0x16f9b0[_0x336d('0x70')]=_0x39c881[_0x336d('0xc')]?JSON[_0x336d('0x6f')](_0x39c881[_0x336d('0xc')]):{};}catch(_0x31e6f6){logger[_0x336d('0x2f')](_0x336d('0x71'),_0x31e6f6);}if(_0x39c881['computedVariables']){try{var _0xde754e=require(_0x39c881['computedVariables'])[_0x336d('0x72')](this,_0x16f9b0);_0x16f9b0[_0x336d('0x73')]=Mustache[_0x336d('0x74')](_0x39c881[_0x336d('0x66')],_0xde754e,{},['$$','$$']);if(_0x16f9b0['headers']){_0x16f9b0['headers']=JSON['parse'](Mustache['render'](JSON[_0x336d('0x75')](_0x16f9b0['headers']),_0xde754e,{},['$$','$$']));}if(_0x16f9b0[_0x336d('0x6e')]){_0x16f9b0[_0x336d('0x6e')]=JSON[_0x336d('0x6f')](Mustache[_0x336d('0x74')](JSON[_0x336d('0x75')](_0x16f9b0[_0x336d('0x6e')]),_0xde754e,{},['$$','$$']));}}catch(_0x4501fa){logger[_0x336d('0x2f')](_0x336d('0x76'),_0x4501fa);}}rp(_0x16f9b0)[_0x336d('0x16')](function(_0x39f8a7){var _0xe9712d={'statusCode':_0x39f8a7[_0x336d('0x77')]||0xc8,'statusMessage':_0x39f8a7['statusMessage']||'OK','headers':_0x39f8a7[_0x336d('0x70')]||{},'body':_0x39f8a7['body']||{}};_0x56fa2c(null,_0xe9712d);})[_0x336d('0x18')](function(_0x4858c2){var _0x595cff={'statusCode':_0x4858c2[_0x336d('0x77')]||0x1f4,'statusMessage':_0x4858c2['message']||_0x336d('0x78'),'headers':_0x4858c2[_0x336d('0x79')][_0x336d('0x70')]||{},'body':_0x4858c2['options'][_0x336d('0x6e')]||{}};_0x56fa2c(null,_0x595cff);});};AGIVertices[_0x336d('0x14')][_0x336d('0x7a')]=function(_0x145aef,_0x1e573c){scripts[_0x336d('0x7a')](this[_0x336d('0x11')][_0x336d('0x3c')],_0x145aef[_0x336d('0x7b')],_0x145aef[_0x336d('0x5e')],_0x145aef[_0x336d('0x7c')]||'en')[_0x336d('0x16')](function(_0x10929b){_0x1e573c(null,_0x10929b);})[_0x336d('0x18')](function(_0x878af){_0x1e573c(_0x878af);});};AGIVertices[_0x336d('0x14')]['googleDialogflowV2']=function(_0x9c03ea,_0x120472){scripts[_0x336d('0x7d')](this[_0x336d('0x11')][_0x336d('0x3c')],_0x9c03ea[_0x336d('0x7e')],_0x9c03ea['client_email'],_0x9c03ea[_0x336d('0x7f')],_0x9c03ea[_0x336d('0x5e')],_0x9c03ea[_0x336d('0x80')]||'en')[_0x336d('0x16')](function(_0x2a966f){_0x120472(null,_0x2a966f);})['catch'](function(_0x3bbfd7){_0x120472(_0x3bbfd7);});};AGIVertices[_0x336d('0x14')][_0x336d('0x81')]=function(_0x185080,_0x11504a){scripts['sestekNDA'](this[_0x336d('0x11')],_0x185080)['then'](function(_0x2615e8){_0x11504a(null,_0x2615e8);})[_0x336d('0x18')](function(_0x303bd5){_0x11504a(_0x303bd5);});};AGIVertices['prototype']['ispeechTTS']=function(_0x11fd71,_0x139375){scripts[_0x336d('0x82')](_0x11fd71[_0x336d('0x7b')],_0x11fd71[_0x336d('0x5e')],_0x11fd71['ispeech_tts_language']||'en-US',_0x11fd71['speed'])[_0x336d('0x16')](function(_0x1f766b){_0x139375(null,_0x1f766b);})[_0x336d('0x18')](function(_0x9293c9){_0x139375(_0x9293c9);});};AGIVertices['prototype'][_0x336d('0x83')]=function(_0x48e5cd,_0x4ff26a,_0x2ed986){scripts[_0x336d('0x83')](_0x4ff26a,_0x48e5cd[_0x336d('0x7b')],_0x48e5cd[_0x336d('0x84')]||_0x336d('0x85'),this[_0x336d('0x86')](_0x48e5cd['model'])?_0x48e5cd[_0x336d('0x87')]:undefined)[_0x336d('0x16')](function(_0x2c3fb1){_0x2ed986(null,_0x2c3fb1);})['catch'](function(_0x164552){_0x2ed986(_0x164552);});};AGIVertices['prototype'][_0x336d('0x88')]=function(_0x4a2e44,_0x50e305){scripts[_0x336d('0x88')](_0x4a2e44['aws_access_key_id'],_0x4a2e44[_0x336d('0x89')],_0x4a2e44[_0x336d('0x8a')],_0x4a2e44[_0x336d('0x8b')]||_0x336d('0x8c'),_0x4a2e44[_0x336d('0x5e')],_0x4a2e44[_0x336d('0x8d')]||'text')[_0x336d('0x16')](function(_0x38d511){_0x50e305(null,_0x38d511);})[_0x336d('0x18')](function(_0x48a4ef){_0x50e305(_0x48a4ef);});};AGIVertices[_0x336d('0x14')][_0x336d('0x8e')]=function(_0x3806f4,_0x1a954c){scripts[_0x336d('0x8e')](this[_0x336d('0x11')]['uniqueid'],_0x3806f4['aws_access_key_id'],_0x3806f4[_0x336d('0x89')],_0x3806f4[_0x336d('0x8f')],_0x3806f4[_0x336d('0x5e')],_0x3806f4[_0x336d('0x90')])[_0x336d('0x16')](function(_0x3858bb){_0x1a954c(null,_0x3858bb);})[_0x336d('0x18')](function(_0x2a7f6b){_0x1a954c(_0x2a7f6b);});};AGIVertices[_0x336d('0x14')]['googleASR']=function(_0x1a2c5c,_0x33b90f,_0x51351f){scripts[_0x336d('0x91')](_0x33b90f,_0x1a2c5c[_0x336d('0x7b')],_0x1a2c5c[_0x336d('0x92')]||'en-US')[_0x336d('0x16')](function(_0xf9834c){_0x51351f(null,_0xf9834c);})[_0x336d('0x18')](function(_0x262959){_0x51351f(_0x262959);});};AGIVertices[_0x336d('0x14')]['tildeASR']=function(_0x70bd8d,_0x395739,_0x3ea18d){scripts[_0x336d('0x93')](_0x395739,_0x70bd8d[_0x336d('0x94')],_0x70bd8d[_0x336d('0x95')],_0x70bd8d[_0x336d('0x73')])[_0x336d('0x16')](function(_0x5e2b0a){_0x3ea18d(null,_0x5e2b0a);})['catch'](function(_0x2fb0f1){_0x3ea18d(_0x2fb0f1);});};AGIVertices[_0x336d('0x14')][_0x336d('0x96')]=function(_0x306df7){var _0x33d036=_[_0x336d('0x6a')](verticesWithRetry,_0x306df7[_0x336d('0x97')])?_0x306df7:_[_0x336d('0x98')](_0x306df7);for(var _0x3c6983 in _0x33d036){if(_0x33d036[_0x336d('0x99')](_0x3c6983)){if(_0x33d036[_0x3c6983]&&_['isString'](_0x33d036[_0x3c6983])){if(_[_0x336d('0x6a')](recursiveMapAttributes,_0x3c6983)){_0x33d036[_0x3c6983]=this[_0x336d('0x9a')](_0x33d036[_0x3c6983]);}else{_0x33d036[_0x3c6983]=this['replaceAllVariables'](_0x33d036[_0x3c6983]);}}}}return _0x33d036;};AGIVertices[_0x336d('0x14')][_0x336d('0x9b')]=function(_0xf72829){for(var _0x41c5fb in _0xf72829){if(_0xf72829['hasOwnProperty'](_0x41c5fb)){if(_[_0x336d('0x9c')](_0xf72829[_0x41c5fb])){this[_0x336d('0x9b')](_0xf72829[_0x41c5fb]);}else if(_['isArray'](_0xf72829[_0x41c5fb])){for(var _0x191887=0x0;_0x191887<_0xf72829[_0x41c5fb]['length'];_0x191887++){this[_0x336d('0x9b')](_0xf72829[_0x41c5fb][_0x191887]);}}else if(_[_0x336d('0x9d')](_0xf72829[_0x41c5fb])){_0xf72829[_0x41c5fb]=this['replaceAllVariables'](_0xf72829[_0x41c5fb]);}}}};AGIVertices[_0x336d('0x14')][_0x336d('0x9e')]=function(_0x3d8ce6,_0x3c295c){for(var _0x3998bd in _0x3d8ce6){if(_0x3d8ce6[_0x336d('0x99')](_0x3998bd)){if(_[_0x336d('0x9c')](_0x3d8ce6[_0x3998bd])){if(!_['isEmpty'](_0x3d8ce6[_0x3998bd])){this[_0x336d('0x9e')](_0x3d8ce6[_0x3998bd],util[_0x336d('0x2d')](_0x336d('0x9f'),_0x3c295c,_0x3998bd));}}else if(_[_0x336d('0xa0')](_0x3d8ce6[_0x3998bd])){for(var _0x311fc7=0x0;_0x311fc7<_0x3d8ce6[_0x3998bd]['length'];_0x311fc7++){this['saveRestApiResult'](_0x3d8ce6[_0x3998bd][_0x311fc7],util['format'](_0x336d('0x9f'),_0x3c295c,_0x3998bd+'['+_0x311fc7+']'));}}else{if(!_['isNil'](_0x3d8ce6[_0x3998bd])){this[_0x336d('0x11')]['setVariable'](util[_0x336d('0x2d')](_0x336d('0x9f'),_0x3c295c,_0x3998bd),_0x3d8ce6[_0x3998bd]);}}}}};AGIVertices[_0x336d('0x14')][_0x336d('0x9a')]=function(_0x37ce5b){try{var _0x275fd1=JSON['parse'](_0x37ce5b);this[_0x336d('0x9b')](_0x275fd1);return JSON[_0x336d('0x75')](_0x275fd1);}catch(_0x57c8f0){return this[_0x336d('0xa1')](_0x37ce5b);}};AGIVertices['prototype'][_0x336d('0xa1')]=function(_0x3f9851){var _0x18029f=_0x3f9851[_0x336d('0xa2')]('{');for(var _0x43da9f=0x1;_0x43da9f<_0x18029f[_0x336d('0xa3')];_0x43da9f+=0x1){var _0x3490fa=_0x18029f[_0x43da9f][_0x336d('0xa2')]('}');if(_0x3490fa[_0x336d('0xa3')]>0x1){_0x3f9851=_0x3f9851[_0x336d('0xa4')]('{'+_0x3490fa[0x0]+'}',this[_0x336d('0x11')][_0x336d('0xa5')](_0x3490fa[0x0])[_0x336d('0xa6')]||_0x3490fa[0x0]);}}if(_0x18029f[_0x336d('0xa3')]===0x1){return _0x3f9851['toString']();}return this['replaceAllVariables'](_0x3f9851);};AGIVertices[_0x336d('0x14')][_0x336d('0xa7')]=function(_0x51cd89,_0x36d9e5){var _0x7d9cd7=this[_0x336d('0x11')]['getVariable'](_0x51cd89);if(_0x7d9cd7[_0x336d('0xa8')]===-0x1){return _0x7d9cd7;}logger[_0x336d('0x31')](util[_0x336d('0x2d')]('The\x20\x22%s\x22\x20variable\x20value\x20is:\x20%s',_0x36d9e5,_0x7d9cd7[_0x336d('0xa6')]));return this['channel'][_0x336d('0xa9')](_0x36d9e5,_0x7d9cd7['extra']);};AGIVertices[_0x336d('0x14')][_0x336d('0x86')]=function(_0x1a3231){return _0x1a3231&&_0x1a3231!=='0'&&_0x1a3231!=='-1'&&_0x1a3231!=='';};AGIVertices['prototype'][_0x336d('0xaa')]=function(_0x488132){this[_0x336d('0x3b')][_0x336d('0x72')](this,_0x488132,'-');_0x488132[_0x336d('0xab')]=_0x488132['maxRetry'];return{'code':0xc8,'result':'-'};};AGIVertices[_0x336d('0x14')][_0x336d('0xac')]=function(_0x20d474){logger[_0x336d('0x31')](util['format']('Enter\x20in\x20MRCPSynth\x20(%s)\x20block',_0x20d474[_0x336d('0x3d')]));if(!this[_0x336d('0x86')](_0x20d474[_0x336d('0x5e')])){return this[_0x336d('0x11')][_0x336d('0xad')](_0x336d('0xae'));}var _0x528fc4='\x22'+_0x20d474['text']+'\x22';if(this[_0x336d('0x86')](_0x20d474[_0x336d('0x79')])){_0x528fc4+=','+_0x20d474['options'];}var _0xae8478=this['channel'][_0x336d('0x58')](_0x336d('0xaf'),_0x528fc4);if(_0xae8478['result']===-0x1){return _0xae8478;}return this[_0x336d('0x11')][_0x336d('0xad')](util['format'](_0x336d('0xb0'),_0x528fc4));};AGIVertices['prototype'][_0x336d('0xb1')]=function(_0x3ace62){logger[_0x336d('0x31')](util[_0x336d('0x2d')](_0x336d('0xb2'),_0x3ace62['label']));if(!this['isConfigured'](_0x3ace62[_0x336d('0xb3')])){return this[_0x336d('0x11')][_0x336d('0xad')](_0x336d('0xb4'));}var _0x5465f7=_0x3ace62[_0x336d('0xb3')];if(this['isConfigured'](_0x3ace62['options'])){_0x5465f7+=','+_0x3ace62[_0x336d('0x79')];}var _0x47b608=this[_0x336d('0x11')][_0x336d('0x58')](_0x336d('0xb5'),_0x5465f7);if(_0x47b608[_0x336d('0xa8')]===-0x1){return _0x47b608;}var _0x479d8a=this[_0x336d('0xa7')](_0x336d('0xb6'),_0x336d('0xb7'));if(_0x479d8a[_0x336d('0xa8')]===-0x1){return _0x479d8a;}var _0xf22c53=this[_0x336d('0xa7')](_0x336d('0xb8'),_0x336d('0xb9'));if(_0xf22c53['result']===-0x1){return _0xf22c53;}var _0xd61d6b=this[_0x336d('0xa7')](_0x336d('0xba'),_0x336d('0xbb'));if(_0xd61d6b[_0x336d('0xa8')]===-0x1){return _0xd61d6b;}return this[_0x336d('0x11')][_0x336d('0xad')](util[_0x336d('0x2d')](_0x336d('0xbc'),_0x5465f7));};AGIVertices[_0x336d('0x14')][_0x336d('0x8')]=function(_0x16b9b2){logger[_0x336d('0x31')](util[_0x336d('0x2d')](_0x336d('0xbd'),_0x16b9b2[_0x336d('0x3d')]));return this[_0x336d('0x11')][_0x336d('0x8')]([_0x16b9b2[_0x336d('0xbe')],_0x16b9b2[_0x336d('0xbf')]]);};AGIVertices[_0x336d('0x14')][_0x336d('0xc0')]=function(_0x2acac0){logger['info'](util[_0x336d('0x2d')](_0x336d('0xc1'),_0x2acac0[_0x336d('0x3d')]));if(this['isConfigured'](_0x2acac0[_0x336d('0x68')])){logger['info'](util['format'](_0x336d('0xc2'),_0x2acac0[_0x336d('0x68')]));var _0x1279a6=this[_0x336d('0x11')]['wait'](_0x2acac0[_0x336d('0x68')]);if(_0x1279a6['result']===-0x1){return _0x1279a6;}}return this[_0x336d('0x11')][_0x336d('0xc0')]();};AGIVertices['prototype'][_0x336d('0xc3')]=function(_0x3903fc){logger[_0x336d('0x31')](util[_0x336d('0x2d')](_0x336d('0xc4'),_0x3903fc[_0x336d('0x3d')]));if(!this[_0x336d('0x86')](_0x3903fc['list_id'])){return this['channel'][_0x336d('0x2f')](_0x3903fc,_0x336d('0xc5'));}_0x3903fc[_0x336d('0x4c')]=moment();if(this[_0x336d('0x86')](_0x3903fc[_0x336d('0xc6')])){_0x3903fc[_0x336d('0x4c')]=moment()['add'](_0x3903fc['delay'],'minutes');}if(!this[_0x336d('0x86')](_0x3903fc[_0x336d('0x4f')])){_0x3903fc['callback_priority']=0x2;}this[_0x336d('0x45')][_0x336d('0x72')](this,_0x3903fc);return this[_0x336d('0x11')]['noop'](util[_0x336d('0x2d')](_0x336d('0xc7'),_0x3903fc[_0x336d('0xc8')],_0x3903fc[_0x336d('0x4b')],_0x3903fc[_0x336d('0x4c')]));};AGIVertices[_0x336d('0x14')][_0x336d('0xc9')]=function(_0x4237fc){logger[_0x336d('0x31')](util[_0x336d('0x2d')](_0x336d('0xca'),_0x4237fc[_0x336d('0x3d')]));var _0x2e7f3e=this[_0x336d('0x11')][_0x336d('0x58')](_0x4237fc[_0x336d('0xcb')],_0x4237fc[_0x336d('0x79')]);if(_0x2e7f3e['result']===-0x1){return _0x2e7f3e;}return this[_0x336d('0x11')][_0x336d('0xad')](util[_0x336d('0x2d')]('Executed\x20command\x20%s\x20%s',_0x4237fc['application'],_0x4237fc['options']));};AGIVertices['prototype'][_0x336d('0xcc')]=function(_0x1b21f0){logger[_0x336d('0x31')](util[_0x336d('0x2d')](_0x336d('0xcd'),_0x1b21f0[_0x336d('0x3d')]));if(!this['isConfigured'](_0x1b21f0[_0x336d('0x5e')])){return this[_0x336d('0x11')]['noop'](_0x336d('0xae'));}var _0x2bc810='\x22'+_0x1b21f0[_0x336d('0x5e')]+'\x22';if(this['isConfigured'](_0x1b21f0['options'])){_0x2bc810+=','+_0x1b21f0[_0x336d('0x79')];}var _0x46571e=this[_0x336d('0x11')][_0x336d('0x58')](_0x336d('0xaf'),_0x2bc810);if(_0x46571e[_0x336d('0xa8')]===-0x1){return _0x46571e;}return this[_0x336d('0x11')][_0x336d('0xad')](util[_0x336d('0x2d')](_0x336d('0xb0'),_0x2bc810));};AGIVertices[_0x336d('0x14')]['sestektts']=function(_0xe22336){logger[_0x336d('0x31')](util['format'](_0x336d('0xce'),_0xe22336[_0x336d('0x3d')]));if(!this[_0x336d('0x86')](_0xe22336['text'])){return this[_0x336d('0x11')]['noop'](_0x336d('0xae'));}var _0x1bd843='\x22'+_0xe22336[_0x336d('0x5e')]+'\x22';if(this[_0x336d('0x86')](_0xe22336[_0x336d('0x79')])){_0x1bd843+=','+_0xe22336[_0x336d('0x79')];}var _0x31158f=this[_0x336d('0x11')][_0x336d('0x58')](_0x336d('0xaf'),_0x1bd843);if(_0x31158f[_0x336d('0xa8')]===-0x1){return _0x31158f;}return this[_0x336d('0x11')][_0x336d('0xad')](util[_0x336d('0x2d')](_0x336d('0xb0'),_0x1bd843));};AGIVertices['prototype'][_0x336d('0xcf')]=function(_0x7ac234){logger[_0x336d('0x31')](util[_0x336d('0x2d')]('Enter\x20in\x20LUMENVOXASR\x20(%s)\x20block',_0x7ac234[_0x336d('0x3d')]));if(!this[_0x336d('0x86')](_0x7ac234['grammar'])){return this[_0x336d('0x11')][_0x336d('0xad')](_0x336d('0xb4'));}var _0x55cf4c=_0x7ac234[_0x336d('0xb3')];if(this['isConfigured'](_0x7ac234[_0x336d('0x79')])){_0x55cf4c+=','+_0x7ac234[_0x336d('0x79')];}var _0x5b838d=this[_0x336d('0x11')][_0x336d('0x58')](_0x336d('0xb5'),_0x55cf4c);if(_0x5b838d[_0x336d('0xa8')]===-0x1){return _0x5b838d;}var _0x6273c5=this['getAndSetVariable'](_0x336d('0xb6'),_0x336d('0xd0'));if(_0x6273c5[_0x336d('0xa8')]===-0x1){return _0x6273c5;}var _0x78f76c=this[_0x336d('0xa7')]('RECOG_INPUT()',_0x336d('0xd1'));if(_0x78f76c['result']===-0x1){return _0x78f76c;}var _0x1e10f5=this['getAndSetVariable'](_0x336d('0xba'),_0x336d('0xd2'));if(_0x1e10f5[_0x336d('0xa8')]===-0x1){return _0x1e10f5;}return this[_0x336d('0x11')][_0x336d('0xad')](util[_0x336d('0x2d')](_0x336d('0xbc'),_0x55cf4c));};AGIVertices[_0x336d('0x14')][_0x336d('0xd3')]=function(_0x2b89fa){logger['info'](util[_0x336d('0x2d')]('Enter\x20in\x20SESTEKASR\x20(%s)\x20block',_0x2b89fa[_0x336d('0x3d')]));if(!this[_0x336d('0x86')](_0x2b89fa[_0x336d('0xb3')])){return this[_0x336d('0x11')][_0x336d('0xad')]('no\x20grammar\x20configured');}var _0x4e48ca=_0x2b89fa[_0x336d('0xb3')];if(this[_0x336d('0x86')](_0x2b89fa[_0x336d('0x79')])){_0x4e48ca+=','+_0x2b89fa['options'];}var _0x9a4bea=this[_0x336d('0x11')][_0x336d('0x58')](_0x336d('0xb5'),_0x4e48ca);if(_0x9a4bea[_0x336d('0xa8')]===-0x1){return _0x9a4bea;}var _0x9578a2=this[_0x336d('0xa7')]('RECOG_CONFIDENCE()',_0x336d('0xd4'));if(_0x9578a2[_0x336d('0xa8')]===-0x1){return _0x9578a2;}var _0x370c33=this['getAndSetVariable']('RECOG_INPUT()',_0x336d('0xd5'));if(_0x370c33[_0x336d('0xa8')]===-0x1){return _0x370c33;}var _0x30f7b7=this[_0x336d('0xa7')]('RECOG_INSTANCE()','SESTEK_ASR_INSTANCE');if(_0x30f7b7['result']===-0x1){return _0x30f7b7;}return this[_0x336d('0x11')][_0x336d('0xad')](util['format'](_0x336d('0xbc'),_0x4e48ca));};AGIVertices[_0x336d('0x14')]['database']=function(_0x46cd0e){logger[_0x336d('0x31')](util[_0x336d('0x2d')](_0x336d('0xd6'),_0x46cd0e[_0x336d('0x3d')]));if(!this[_0x336d('0x86')](_0x46cd0e[_0x336d('0xd7')])){return this[_0x336d('0x11')]['error'](_0x46cd0e,_0x336d('0xd8'));}var _0x30f9f1=this[_0x336d('0x1d')][_0x336d('0x72')](this,_0x46cd0e['odbc_id']);if(!_0x30f9f1){return this[_0x336d('0x11')][_0x336d('0x2f')](_0x46cd0e,_0x336d('0xd9'));}if(!this[_0x336d('0x86')](_0x46cd0e[_0x336d('0x33')])){return this[_0x336d('0x11')][_0x336d('0x2f')](_0x46cd0e,_0x336d('0xda'));}var _0x214639=_0x46cd0e[_0x336d('0x33')][_0x336d('0x5a')](/(\r\n|\n|\r)/gm,'\x20');this[_0x336d('0x11')][_0x336d('0xad')](util[_0x336d('0x2d')]('query:\x20%s',_0x214639));var _0x3f9286=this[_0x336d('0xdb')][_0x336d('0x72')](this,_0x30f9f1,_0x214639);this[_0x336d('0x3b')][_0x336d('0x72')](this,_0x46cd0e,_0x214639);if(!this[_0x336d('0x86')](_0x46cd0e[_0x336d('0xdc')])){return this[_0x336d('0x11')][_0x336d('0xad')](_0x336d('0xdd'));}var _0x110f5b=this[_0x336d('0xa5')][_0x336d('0x72')](this,_0x46cd0e['variable_id']);if(!_0x110f5b){return this[_0x336d('0x11')][_0x336d('0x2f')](_0x46cd0e,'no\x20variable\x20found');}var _0xc397e9=this;_0x3f9286['forEach'](function(_0x50c471,_0x28fba5){Object[_0x336d('0xde')](_0x50c471)[_0x336d('0xdf')](function(_0x5bf20a){_0xc397e9[_0x336d('0x11')][_0x336d('0xa9')](util[_0x336d('0x2d')]('%s[%s][%s]',_0x110f5b,_0x28fba5,_0x5bf20a),_0x50c471[_0x5bf20a]);});});this[_0x336d('0x11')][_0x336d('0xa9')](util[_0x336d('0x2d')]('%s_ROWS_COUNT',_0x110f5b),_0x3f9286['length']);return this[_0x336d('0x11')][_0x336d('0xad')](util[_0x336d('0x2d')]('variable\x20%s\x20set',_0x110f5b));};AGIVertices[_0x336d('0x14')][_0x336d('0xe0')]=function(_0x5f2504){logger[_0x336d('0xe1')](util[_0x336d('0x2d')](_0x336d('0xe2'),_0x5f2504['label']));if(!this[_0x336d('0x86')](_0x5f2504[_0x336d('0xe3')])){return this[_0x336d('0x11')]['error'](_0x5f2504,_0x336d('0xe4'));}var _0x1628a0=this[_0x336d('0xe5')][_0x336d('0x72')](this,_0x5f2504[_0x336d('0xe3')]);if(!_0x1628a0){return this['channel'][_0x336d('0x2f')](_0x5f2504,_0x336d('0xe6'));}var _0x2d7d07=this['channel']['exec'](_0x336d('0xe7'),[util['format'](_0x336d('0xe8'),_0x1628a0),_0x5f2504[_0x336d('0x68')],_0x5f2504['opts'],_0x5f2504['url']]);if(_0x2d7d07[_0x336d('0xa8')]===-0x1){return _0x2d7d07;}return this[_0x336d('0x11')][_0x336d('0xad')](util[_0x336d('0x2d')]('Executed\x20command\x20%s',_0x336d('0xe7')));};AGIVertices[_0x336d('0x14')][_0x336d('0xe9')]=function(_0xc05fa4){logger[_0x336d('0x31')](util[_0x336d('0x2d')](_0x336d('0xea'),_0xc05fa4[_0x336d('0x3d')]));if(!this['isConfigured'](_0xc05fa4[_0x336d('0x7b')])){return this['channel'][_0x336d('0xad')](_0x336d('0xeb'));}if(!this[_0x336d('0x86')](_0xc05fa4['text'])){return this[_0x336d('0x11')]['noop'](_0x336d('0xae'));}this['channel'][_0x336d('0xec')]=!![];this['createSquareDetailsReport'](_0xc05fa4);this[_0x336d('0x44')](_0xc05fa4[_0x336d('0x5e')],'in','','');this[_0x336d('0x11')][_0x336d('0xad')](util[_0x336d('0x2d')](_0x336d('0xed'),_0xc05fa4['text']));var _0x142b26=this['googleDialogflow'][_0x336d('0x72')](this,_0xc05fa4);if(_0x142b26){for(var _0x117232 in _0x142b26){if(_0x142b26[_0x336d('0x99')](_0x117232)){this[_0x336d('0x11')][_0x336d('0xa9')](util['format'](_0x336d('0xee'),_0x117232[_0x336d('0x6d')]()),_0x142b26[_0x117232]);}}this[_0x336d('0x44')](_0x142b26[_0x336d('0xef')],_0x336d('0xf0'),'dialogflow','');return this[_0x336d('0x11')][_0x336d('0xad')](util['format'](_0x336d('0xf1'),_0x142b26[_0x336d('0xef')]));}return this['channel'][_0x336d('0x2f')](_0xc05fa4,'Dialogflow\x20is\x20unreachable');};AGIVertices['prototype']['dialogflowV2']=function(_0x2e33e2){logger[_0x336d('0x31')](util[_0x336d('0x2d')](_0x336d('0xf2'),_0x2e33e2[_0x336d('0x3d')]));if(!this[_0x336d('0x86')](_0x2e33e2[_0x336d('0x7e')])){return this[_0x336d('0x11')][_0x336d('0xad')](_0x336d('0xf3'));}if(!this[_0x336d('0x86')](_0x2e33e2['client_email'])){return this[_0x336d('0x11')][_0x336d('0xad')]('no\x20client_email\x20configured');}if(!this[_0x336d('0x86')](_0x2e33e2['private_key'])){return this[_0x336d('0x11')][_0x336d('0xad')](_0x336d('0xf4'));}if(!this[_0x336d('0x86')](_0x2e33e2[_0x336d('0x80')])){return this[_0x336d('0x11')][_0x336d('0xad')](_0x336d('0xf5'));}if(!this[_0x336d('0x86')](_0x2e33e2['text'])){return this[_0x336d('0x11')][_0x336d('0xad')]('no\x20text\x20configured');}this[_0x336d('0x11')][_0x336d('0xec')]=!![];this['createSquareDetailsReport'](_0x2e33e2);this[_0x336d('0x44')](_0x2e33e2[_0x336d('0x5e')],'in','','');this[_0x336d('0x11')]['noop'](util['format'](_0x336d('0xf6'),_0x2e33e2['text']));var _0x2449c1=this[_0x336d('0x7d')][_0x336d('0x72')](this,_0x2e33e2);if(_0x2449c1){for(var _0x37e2b6 in _0x2449c1){if(_0x2449c1['hasOwnProperty'](_0x37e2b6)){if(_0x37e2b6!==_0x336d('0xf7')){this['channel'][_0x336d('0xa9')](util['format'](_0x336d('0xee'),_0x37e2b6[_0x336d('0x6d')]()),_0x2449c1[_0x37e2b6]);}}}this['createSquareMessage'](_0x2449c1['speech'],'out',_0x336d('0xf8'),_0x2449c1[_0x336d('0xf7')]);return this[_0x336d('0x11')][_0x336d('0xad')](util['format'](_0x336d('0xf9'),_0x2449c1['speech']));}return this[_0x336d('0x11')][_0x336d('0x2f')](_0x2e33e2,'DialogflowV2\x20is\x20unreachable');};AGIVertices[_0x336d('0x14')]['sesteknda']=function(_0x5a0ff1){logger[_0x336d('0x31')](util[_0x336d('0x2d')](_0x336d('0xfa'),_0x5a0ff1['label']));if(!this[_0x336d('0x86')](_0x5a0ff1[_0x336d('0xfb')])){return this[_0x336d('0x11')][_0x336d('0xad')](_0x336d('0xfc'));}if(!this['isConfigured'](_0x5a0ff1[_0x336d('0xfd')])){return this[_0x336d('0x11')][_0x336d('0xad')](_0x336d('0xfe'));}if(!this[_0x336d('0x86')](_0x5a0ff1[_0x336d('0xff')])){return this[_0x336d('0x11')][_0x336d('0xad')](_0x336d('0x100'));}if(!this[_0x336d('0x86')](_0x5a0ff1[_0x336d('0x101')])){return this[_0x336d('0x11')][_0x336d('0xad')](_0x336d('0xae'));}this['channel'][_0x336d('0xec')]=!![];this[_0x336d('0x3b')](_0x5a0ff1);this['createSquareMessage'](_0x5a0ff1[_0x336d('0x5e')],'in','','');this[_0x336d('0x11')]['noop'](util['format']('Trying\x20SestekNDA:\x20%s',_0x5a0ff1['text']));var _0x2a979b=this[_0x336d('0x81')]['sync'](this,_0x5a0ff1);if(_0x2a979b){for(var _0xd3a1c2 in _0x2a979b){if(_0x2a979b['hasOwnProperty'](_0xd3a1c2)){this['channel'][_0x336d('0xa9')](util['format'](_0x336d('0x102'),_0xd3a1c2[_0x336d('0x6d')]()),_0x2a979b[_0xd3a1c2]);}}this[_0x336d('0x44')](_0x2a979b[_0x336d('0xef')],_0x336d('0xf0'),_0x336d('0x103'),'');if(_0x2a979b[_0x336d('0x104')]){this[_0x336d('0x11')]['noop'](util[_0x336d('0x2d')](_0x336d('0x105'),_0x2a979b[_0x336d('0x104')]));var _0x43fd96=this['channel'][_0x336d('0x106')](_0x2a979b[_0x336d('0x104')]);try{fs[_0x336d('0x107')](_0x2a979b[_0x336d('0x104')]+_0x336d('0x108'));}catch(_0x13a7b1){logger[_0x336d('0x2f')](_0x13a7b1);}return _0x43fd96;}else{return this[_0x336d('0x11')]['noop'](util[_0x336d('0x2d')]('SestekNDA\x20Result\x20%s',_0x2a979b[_0x336d('0xef')]));}}return this[_0x336d('0x11')][_0x336d('0x2f')](_0x5a0ff1,_0x336d('0x109'));};AGIVertices[_0x336d('0x14')][_0x336d('0x10a')]=function(_0x5ccb80){logger[_0x336d('0x31')](util['format']('Enter\x20in\x20END\x20(%s)\x20block',_0x5ccb80[_0x336d('0x3d')]));return this['channel'][_0x336d('0xad')](_0x336d('0x10a'));};AGIVertices[_0x336d('0x14')][_0x336d('0x10b')]=function(_0x270eff){logger[_0x336d('0x31')](util['format'](_0x336d('0x10c'),_0x270eff['label']));var _0x1e9d21='';if(_0x270eff[_0x336d('0x10d')]){if(!this[_0x336d('0x86')](_0x270eff[_0x336d('0x10d')])){return this[_0x336d('0x11')][_0x336d('0x2f')](_0x270eff,_0x336d('0x10e'));}else{var _0x3d9c51=parseInt(_0x270eff[_0x336d('0x10d')],0xa);if(isNaN(_0x3d9c51)){_0x1e9d21=_0x270eff[_0x336d('0x10d')];}else{_0x1e9d21=this[_0x336d('0x20')][_0x336d('0x72')](this,_0x270eff[_0x336d('0x10d')]);if(!_0x1e9d21){return this['channel'][_0x336d('0x2f')](_0x270eff,_0x336d('0x10f'));}}}}else if(_0x270eff[_0x336d('0x110')]){_0x1e9d21=_0x270eff[_0x336d('0x110')];}else{return this[_0x336d('0x11')][_0x336d('0x2f')](_0x270eff,_0x336d('0x10e'));}var _0x4eee92=this[_0x336d('0x11')][_0x336d('0x58')]('DIAL',[util[_0x336d('0x2d')](_0x336d('0x111'),_0x1e9d21,_0x270eff[_0x336d('0xc8')]),_0x270eff[_0x336d('0x68')],_0x270eff['opts'],_0x270eff[_0x336d('0x66')]]);if(_0x4eee92[_0x336d('0xa8')]===-0x1){return _0x4eee92;}return this['channel']['noop'](util[_0x336d('0x2d')]('Executed\x20command\x20%s',_0x336d('0xe7')));};AGIVertices['prototype'][_0x336d('0x112')]=function(_0x27782c){logger[_0x336d('0x31')](util[_0x336d('0x2d')]('Enter\x20in\x20FINALLY\x20(%s)\x20block',_0x27782c['label']));return this[_0x336d('0x11')]['noop'](_0x336d('0x112'));};AGIVertices[_0x336d('0x14')][_0x336d('0xf')]=function(_0x2d8846){logger['info'](util[_0x336d('0x2d')](_0x336d('0x113'),_0x2d8846[_0x336d('0x3d')]));if(_0x2d8846[_0x336d('0xab')]===0x0){return this[_0x336d('0xaa')](_0x2d8846);}_0x2d8846[_0x336d('0xab')]-=0x1;if(!this[_0x336d('0x86')](_0x2d8846['file_id'])){return this[_0x336d('0x11')][_0x336d('0x2f')](_0x2d8846,'no\x20file\x20audio\x20selected');}var _0x33a5b3=this['getSound'][_0x336d('0x72')](this,_0x2d8846[_0x336d('0x114')]);if(!_0x33a5b3){return this[_0x336d('0x11')][_0x336d('0x2f')](_0x2d8846,_0x336d('0x115'));}if(!this[_0x336d('0x86')](_0x2d8846[_0x336d('0xdc')])){return this['channel'][_0x336d('0x2f')](_0x336d('0xdd'));}var _0x152ae2=this['channel'][_0x336d('0x116')](_0x33a5b3,_0x2d8846['response'],_0x2d8846[_0x336d('0x117')]);var _0x30be5e=_0x152ae2[_0x336d('0xa8')]?_0x152ae2[_0x336d('0xa8')][_0x336d('0x4e')]():'';logger[_0x336d('0x31')]('test',JSON['stringify'](_0x152ae2));if(_0x152ae2[_0x336d('0xa8')]===-0x1){this[_0x336d('0x3b')]['sync'](this,_0x2d8846,_0x30be5e);return _0x152ae2;}else if(_0x152ae2[_0x336d('0xa6')]==='timeout'){_0x152ae2[_0x336d('0xa8')]=_0x30be5e[_0x336d('0xa3')]>=parseInt(_0x2d8846[_0x336d('0x118')])?'x':'i';}else{_0x152ae2['result']=_0x30be5e['length']>=parseInt(_0x2d8846[_0x336d('0x118')])&&_0x30be5e['length']<=parseInt(_0x2d8846[_0x336d('0x117')])?'x':'i';}var _0x2a591a=this[_0x336d('0xa5')]['sync'](this,_0x2d8846['variable_id']);if(!_0x2a591a){return this[_0x336d('0x11')][_0x336d('0x2f')](_0x2d8846,_0x336d('0x119'));}this[_0x336d('0x11')][_0x336d('0xa9')](_0x2a591a,_0x30be5e);if(this[_0x336d('0x86')](_0x2d8846[_0x336d('0x11a')])){var _0x585421=parseInt(_0x2d8846[_0x336d('0x11a')],0xa);var _0x2d98de=rs['generate']({'charset':'*','length':_0x585421});var _0x3d9f7e=_0x30be5e[_0x336d('0xa3')];if(_0x3d9f7e>0x0){if(_0x3d9f7e>_0x585421){this[_0x336d('0x3b')][_0x336d('0x72')](this,_0x2d8846,_0x2d8846[_0x336d('0x11b')]===_0x336d('0x11c')?_0x2d98de+_0x30be5e[_0x336d('0x11d')](_0x585421):_0x30be5e[_0x336d('0x11d')](0x0,_0x3d9f7e-_0x585421)+_0x2d98de);}else{this[_0x336d('0x3b')]['sync'](this,_0x2d8846,rs[_0x336d('0x11e')]({'charset':'*','length':_0x3d9f7e}));}}else{this['createSquareDetailsReport'][_0x336d('0x72')](this,_0x2d8846,'');}}else{this[_0x336d('0x3b')]['sync'](this,_0x2d8846,_0x30be5e);}return _0x152ae2;};AGIVertices['prototype'][_0x336d('0x10')]=function(_0x885c99){logger['info'](util[_0x336d('0x2d')](_0x336d('0x11f'),_0x885c99[_0x336d('0x3d')]));return this[_0x336d('0xf')](_0x885c99);};AGIVertices['prototype']['goal']=function(_0x42d325){logger[_0x336d('0x31')](util[_0x336d('0x2d')](_0x336d('0x120'),_0x42d325[_0x336d('0x3d')]));this['createSquareDetailsReport']['sync'](this,_0x42d325,_0x42d325[_0x336d('0x121')]);return this[_0x336d('0x11')][_0x336d('0xad')](util['format'](_0x336d('0x122'),_0x42d325['goalname']));};AGIVertices['prototype'][_0x336d('0x123')]=function(_0x2e9301){logger[_0x336d('0x31')](util[_0x336d('0x2d')](_0x336d('0x124'),_0x2e9301[_0x336d('0x3d')]));if(!this[_0x336d('0x86')](_0x2e9301[_0x336d('0x125')])||!this['isConfigured'](_0x2e9301[_0x336d('0x89')])){return this[_0x336d('0x11')]['noop'](_0x336d('0x126'));}if(!this[_0x336d('0x86')](_0x2e9301[_0x336d('0x5e')])){return this[_0x336d('0x11')]['noop'](_0x336d('0xae'));}this['channel']['noop'](util[_0x336d('0x2d')]('Trying\x20aws\x20Polly\x20%s',_0x2e9301[_0x336d('0x5e')]));var _0xf04d0b=this[_0x336d('0x88')]['sync'](this,_0x2e9301);if(_0xf04d0b){this[_0x336d('0x11')][_0x336d('0xad')](util[_0x336d('0x2d')](_0x336d('0x127'),_0xf04d0b));var _0x36f430=this['channel'][_0x336d('0x106')](_0xf04d0b);try{fs[_0x336d('0x107')](_0xf04d0b+'.wav');}catch(_0x2cef7d){logger[_0x336d('0x2f')](_0x2cef7d);}return _0x36f430;}return this[_0x336d('0x11')][_0x336d('0x2f')](_0x2e9301,_0x336d('0x128'));};AGIVertices['prototype']['awslex']=function(_0x3af1cb){logger['info'](util['format'](_0x336d('0x129'),_0x3af1cb[_0x336d('0x3d')]));if(!this[_0x336d('0x86')](_0x3af1cb[_0x336d('0x125')])||!this[_0x336d('0x86')](_0x3af1cb[_0x336d('0x89')])){return this[_0x336d('0x11')][_0x336d('0xad')]('no\x20valid\x20credentials\x20configured');}if(!this[_0x336d('0x86')](_0x3af1cb['aws_bot_name'])){return this[_0x336d('0x11')][_0x336d('0xad')](_0x336d('0x12a'));}if(!this['isConfigured'](_0x3af1cb[_0x336d('0x5e')])){return this[_0x336d('0x11')][_0x336d('0xad')](_0x336d('0xae'));}this[_0x336d('0x11')][_0x336d('0xec')]=!![];this[_0x336d('0x3b')](_0x3af1cb);this[_0x336d('0x44')](_0x3af1cb[_0x336d('0x5e')],'in','','');this[_0x336d('0x11')][_0x336d('0xad')](util['format'](_0x336d('0x12b'),_0x3af1cb['text']));var _0x11df6e=this['awsLex'][_0x336d('0x72')](this,_0x3af1cb);if(_0x11df6e){for(var _0x5bce15 in _0x11df6e){if(_0x11df6e[_0x336d('0x99')](_0x5bce15)&&_[_0x336d('0x9d')](_0x11df6e[_0x5bce15])){this['channel'][_0x336d('0xa9')](util[_0x336d('0x2d')](_0x336d('0x12c'),_0x5bce15[_0x336d('0x6d')]()),_0x11df6e[_0x5bce15]);}}if(_['isNil'](_0x11df6e[_0x336d('0x12d')])){return this[_0x336d('0x11')][_0x336d('0xad')](_0x336d('0x12e'));}else{this[_0x336d('0x44')](_0x11df6e[_0x336d('0x12d')],_0x336d('0xf0'),_0x336d('0x12f'),'');return this[_0x336d('0x11')][_0x336d('0xad')](util['format'](_0x336d('0x130'),_0x11df6e[_0x336d('0x12d')]));}}return this[_0x336d('0x11')]['error'](_0x3af1cb,_0x336d('0x131'));};AGIVertices[_0x336d('0x14')][_0x336d('0x132')]=function(_0x2bb20e){logger[_0x336d('0x31')](util['format'](_0x336d('0x133'),_0x2bb20e['label'],_0x2bb20e[_0x336d('0x68')]));if(!this[_0x336d('0x86')](_0x2bb20e[_0x336d('0x7b')])){return this['channel'][_0x336d('0xad')](_0x336d('0xeb'));}var _0x2e0fd3='wav';var _0x5ea6b4=util[_0x336d('0x2d')](_0x336d('0x134'),FILES_PATH,rs[_0x336d('0x11e')](0x4));var _0x2df766=util[_0x336d('0x2d')](_0x336d('0x9f'),_0x5ea6b4,_0x2e0fd3);var _0x47d412=!![];if(_0x2bb20e[_0x336d('0x135')]===_0x336d('0x136')){_0x47d412=![];}var _0x589233=this['channel']['recordFile'](_0x5ea6b4,_0x2e0fd3,_0x2bb20e[_0x336d('0x137')],_0x2bb20e[_0x336d('0x68')],undefined,_0x47d412);if(_0x589233[_0x336d('0xa8')]!==-0x1){this[_0x336d('0x11')]['noop'](util[_0x336d('0x2d')](_0x336d('0x138'),_0x2df766));var _0x40b8a7=this[_0x336d('0x91')][_0x336d('0x72')](this,_0x2bb20e,_0x2df766);if(_0x40b8a7){for(var _0x1b9979 in _0x40b8a7){if(_0x40b8a7[_0x336d('0x99')](_0x1b9979)){this['channel'][_0x336d('0xa9')](util[_0x336d('0x2d')]('GOOGLE_ASR_%s',_0x1b9979['toUpperCase']()),_0x40b8a7[_0x1b9979]);}}return this[_0x336d('0x11')][_0x336d('0xad')](util['format'](_0x336d('0x139'),JSON['stringify'](_0x40b8a7)));}}return _0x589233;};AGIVertices[_0x336d('0x14')][_0x336d('0x13a')]=function(_0x13e495){logger['info'](util['format']('Enter\x20in\x20TILDEASR\x20(%s)\x20block',_0x13e495['label']));if(!this[_0x336d('0x86')](_0x13e495['appid'])){return this['channel'][_0x336d('0xad')](_0x336d('0x13b'));}if(!this[_0x336d('0x86')](_0x13e495['appsecret'])){return this['channel'][_0x336d('0xad')]('no\x20appsecret\x20configured');}var _0x548bb8=_0x336d('0x13c');var _0x55af63=util[_0x336d('0x2d')](_0x336d('0x134'),FILES_PATH,rs['generate'](0x4));var _0x1e460c=util['format'](_0x336d('0x9f'),_0x55af63,_0x548bb8);var _0x97eaa3=!![];if(_0x13e495[_0x336d('0x135')]===_0x336d('0x136')){_0x97eaa3=![];}var _0x12d4aa=this[_0x336d('0x11')][_0x336d('0x13d')](_0x55af63,_0x548bb8,_0x13e495['intKey'],_0x13e495[_0x336d('0x68')],undefined,_0x97eaa3);if(_0x12d4aa[_0x336d('0xa8')]!==-0x1){this[_0x336d('0x11')][_0x336d('0xad')](util['format'](_0x336d('0x13e'),_0x1e460c));var _0x2ab59d=this[_0x336d('0x93')][_0x336d('0x72')](this,_0x13e495,_0x1e460c);if(_0x2ab59d){for(var _0x100d9d in _0x2ab59d){if(_0x2ab59d['hasOwnProperty'](_0x100d9d)){this['channel'][_0x336d('0xa9')](util['format']('TILDE_ASR_%s',_0x100d9d['toUpperCase']()),_0x2ab59d[_0x100d9d]);}}return this[_0x336d('0x11')][_0x336d('0xad')](util[_0x336d('0x2d')]('TildeASR\x20Result\x20%s',JSON[_0x336d('0x75')](_0x2ab59d)));}}return _0x12d4aa;};AGIVertices['prototype'][_0x336d('0x13f')]=function(_0x123192){logger[_0x336d('0x31')](util['format']('Enter\x20in\x20GOTO\x20(%s)\x20block',_0x123192[_0x336d('0x3d')]));return this[_0x336d('0x11')][_0x336d('0x140')](_0x123192[_0x336d('0x42')],_0x123192['extension'],_0x123192[_0x336d('0x43')]);};AGIVertices['prototype'][_0x336d('0x141')]=function(_0x3dac1b){logger[_0x336d('0x31')](util[_0x336d('0x2d')](_0x336d('0x142'),_0x3dac1b[_0x336d('0x3d')]));if(!this[_0x336d('0x86')](_0x3dac1b[_0x336d('0x143')])){return this[_0x336d('0x11')]['error'](_0x3dac1b,_0x336d('0x144'));}try{var _0x5bad36=eval(_0x3dac1b['condition'])?_0x336d('0x145'):_0x336d('0x146');this[_0x336d('0x11')][_0x336d('0xad')](util[_0x336d('0x2d')](_0x336d('0x147'),_0x3dac1b[_0x336d('0x143')],_0x5bad36));return{'code':0xc8,'result':_0x5bad36};}catch(_0x270852){return{'code':0xc8,'result':_0x336d('0x146')};}};AGIVertices[_0x336d('0x14')][_0x336d('0x148')]=function(_0x4b1c51){logger[_0x336d('0x31')](util[_0x336d('0x2d')](_0x336d('0x149'),_0x4b1c51[_0x336d('0x3d')]));if(!this[_0x336d('0x86')](_0x4b1c51[_0x336d('0x14a')])){return this[_0x336d('0x11')][_0x336d('0x2f')](_0x4b1c51,_0x336d('0x14b'));}var _0x3d7e1b=this['getIntervals'][_0x336d('0x72')](this,_0x4b1c51['interval_id']);if(!_0x3d7e1b){return this[_0x336d('0x11')][_0x336d('0x2f')](_0x4b1c51,_0x336d('0x14c'));}for(var _0x462b6d=0x0;_0x462b6d<_0x3d7e1b[_0x336d('0xa3')];_0x462b6d+=0x1){var _0x20f2e2=this[_0x336d('0x11')][_0x336d('0xa5')](util['format'](_0x336d('0x14d'),_0x3d7e1b[_0x462b6d]));if(_0x20f2e2[_0x336d('0xa8')]===-0x1){return _0x20f2e2;}logger['info'](util[_0x336d('0x2d')](_0x336d('0x14e'),_0x3d7e1b[_0x462b6d],_0x20f2e2[_0x336d('0xa6')]));if(_0x20f2e2[_0x336d('0xa6')]==='true'){logger['info'](util[_0x336d('0x2d')](_0x336d('0x14e'),_0x3d7e1b[_0x462b6d],'true'));this['channel']['noop'](util[_0x336d('0x2d')](_0x336d('0x14e'),_0x3d7e1b[_0x462b6d],'true'));return{'code':0xc8,'result':_0x336d('0x145')};}else{logger[_0x336d('0x31')](util[_0x336d('0x2d')]('IFTIME\x20%s\x20%s',_0x3d7e1b[_0x462b6d],_0x336d('0x146')));this[_0x336d('0x11')]['noop'](util['format'](_0x336d('0x14e'),_0x3d7e1b[_0x462b6d],_0x336d('0x146')));}}return{'code':0xc8,'result':_0x336d('0x146')};};AGIVertices['prototype'][_0x336d('0x14f')]=function(_0x1fca5a){logger[_0x336d('0x31')](util[_0x336d('0x2d')]('Enter\x20in\x20HANGUP\x20(%s)\x20block',_0x1fca5a['label']));return this[_0x336d('0x11')][_0x336d('0x14f')]();};AGIVertices['prototype'][_0x336d('0x150')]=function(_0x7d000a){logger[_0x336d('0x31')](util[_0x336d('0x2d')](_0x336d('0x151'),_0x7d000a[_0x336d('0x3d')]));if(!this[_0x336d('0x86')](_0x7d000a[_0x336d('0x7b')])){return this[_0x336d('0x11')][_0x336d('0xad')](_0x336d('0xeb'));}var _0x316b62='wav';var _0x1ad53=util[_0x336d('0x2d')](_0x336d('0x134'),FILES_PATH,rs[_0x336d('0x11e')](0x4));var _0x350ea6=util[_0x336d('0x2d')](_0x336d('0x9f'),_0x1ad53,_0x316b62);var _0x5525e9=!![];if(_0x7d000a['beep']===_0x336d('0x136')){_0x5525e9=![];}var _0x4f7c83=this[_0x336d('0x11')]['recordFile'](_0x1ad53,_0x316b62,_0x7d000a[_0x336d('0x137')],_0x7d000a[_0x336d('0x68')],undefined,_0x5525e9);if(_0x4f7c83['result']!==-0x1){this['channel']['noop'](util[_0x336d('0x2d')](_0x336d('0x152'),_0x350ea6));var _0x2e6158=this[_0x336d('0x83')][_0x336d('0x72')](this,_0x7d000a,_0x350ea6);if(_0x2e6158){for(var _0x4f9768 in _0x2e6158){if(_0x2e6158[_0x336d('0x99')](_0x4f9768)){this['channel']['setVariable'](util[_0x336d('0x2d')](_0x336d('0x153'),_0x4f9768[_0x336d('0x6d')]()),_0x2e6158[_0x4f9768]);}}return this['channel'][_0x336d('0xad')](util[_0x336d('0x2d')](_0x336d('0x154'),JSON['stringify'](_0x2e6158)));}}return _0x4f7c83;};AGIVertices[_0x336d('0x14')][_0x336d('0x155')]=function(_0x310f06){logger[_0x336d('0x31')](util['format'](_0x336d('0x156'),_0x310f06[_0x336d('0x3d')]));if(!this[_0x336d('0x86')](_0x310f06['key'])){return this['channel'][_0x336d('0xad')](_0x336d('0xeb'));}if(!this[_0x336d('0x86')](_0x310f06['text'])){return this['channel'][_0x336d('0xad')](_0x336d('0xae'));}this['channel'][_0x336d('0xad')](util[_0x336d('0x2d')](_0x336d('0x157'),_0x310f06[_0x336d('0x5e')]));var _0x42fe1d=this[_0x336d('0x82')][_0x336d('0x72')](this,_0x310f06);if(_0x42fe1d){this[_0x336d('0x11')]['noop'](util[_0x336d('0x2d')]('ispeech\x20%s\x20file\x20created',_0x42fe1d));var _0x17b282=this['channel']['streamFile'](_0x42fe1d,_0x310f06[_0x336d('0x137')]);try{fs['unlink'](_0x42fe1d+_0x336d('0x108'));}catch(_0x1efad7){logger['error'](_0x1efad7);}return _0x17b282;}return this[_0x336d('0x11')][_0x336d('0x2f')](_0x310f06,_0x336d('0x158'));};AGIVertices[_0x336d('0x14')][_0x336d('0x159')]=function(_0x1db707){logger[_0x336d('0x31')](util[_0x336d('0x2d')](_0x336d('0x15a'),_0x1db707[_0x336d('0x3d')]));if(!this['isConfigured'](_0x1db707['findBy'])){return this[_0x336d('0x11')][_0x336d('0x2f')](_0x1db707,_0x336d('0x15b'));}logger[_0x336d('0x31')](util[_0x336d('0x2d')]('FIND\x20AGENT\x20%s\x20BY\x20%s',this[_0x336d('0x11')][_0x336d('0x3f')],_0x1db707['findBy']));var _0x5d736d=this[_0x336d('0x55')]['sync'](this,_0x1db707[_0x336d('0x15c')]);if(_0x5d736d){logger[_0x336d('0x31')](util[_0x336d('0x2d')](_0x336d('0x15d'),this[_0x336d('0x11')]['callerid'],_0x1db707[_0x336d('0x15c')]));this['channel'][_0x336d('0xad')](util['format'](_0x336d('0x15d'),this['channel'][_0x336d('0x3f')],_0x1db707['findBy']));return{'code':0xc8,'result':'success'};}else{logger[_0x336d('0x31')](util[_0x336d('0x2d')](_0x336d('0x15e'),this[_0x336d('0x11')][_0x336d('0x3f')],_0x1db707[_0x336d('0x15c')]));this[_0x336d('0x11')]['noop'](util[_0x336d('0x2d')](_0x336d('0x15e'),this[_0x336d('0x11')]['callerid'],_0x1db707[_0x336d('0x15c')]));return{'code':0xc8,'result':'failure'};}};AGIVertices['prototype'][_0x336d('0x15f')]=function(_0x5a459f){logger[_0x336d('0x31')](util[_0x336d('0x2d')](_0x336d('0x160'),_0x5a459f[_0x336d('0x3d')]));if(!this[_0x336d('0x86')](_0x5a459f[_0x336d('0x15c')])){return this[_0x336d('0x11')]['error'](_0x5a459f,_0x336d('0x15b'));}logger[_0x336d('0x31')](util[_0x336d('0x2d')]('FIND\x20AGENT\x20%s\x20BY\x20%s',this[_0x336d('0x11')][_0x336d('0x3f')],_0x5a459f[_0x336d('0x15c')]));var _0x14e431=this[_0x336d('0x161')][_0x336d('0x72')](this,_0x5a459f[_0x336d('0x15c')]);if(_0x14e431){logger[_0x336d('0x31')](util[_0x336d('0x2d')](_0x336d('0x15d'),this[_0x336d('0x11')][_0x336d('0x3f')],_0x5a459f[_0x336d('0x15c')]));this['channel'][_0x336d('0xad')](util[_0x336d('0x2d')](_0x336d('0x15d'),this[_0x336d('0x11')][_0x336d('0x3f')],_0x5a459f[_0x336d('0x15c')]));return{'code':0xc8,'result':_0x336d('0x162')};}else{logger[_0x336d('0x31')](util[_0x336d('0x2d')]('AGENT\x20%s\x20NOT\x20FOUND\x20BY',this[_0x336d('0x11')][_0x336d('0x3f')],_0x5a459f[_0x336d('0x15c')]));this[_0x336d('0x11')][_0x336d('0xad')](util['format'](_0x336d('0x15e'),this[_0x336d('0x11')][_0x336d('0x3f')],_0x5a459f['findBy']));return{'code':0xc8,'result':_0x336d('0x163')};}};AGIVertices[_0x336d('0x14')][_0x336d('0x164')]=function(_0x595250){logger[_0x336d('0x31')](util[_0x336d('0x2d')](_0x336d('0x165'),_0x595250[_0x336d('0x3d')]));if(!this[_0x336d('0x86')](_0x595250[_0x336d('0x166')])){return this[_0x336d('0x11')][_0x336d('0x2f')](_0x595250,_0x336d('0x167'));}this['channel'][_0x336d('0xad')](util[_0x336d('0x2d')](_0x336d('0x168'),_0x595250[_0x336d('0x166')]));var _0x99f7d=eval(_0x595250['operation']);if(!this[_0x336d('0x86')](_0x595250[_0x336d('0xdc')])){return this['channel'][_0x336d('0xad')](_0x336d('0xdd'));}var _0x1f9db1=this[_0x336d('0xa5')][_0x336d('0x72')](this,_0x595250[_0x336d('0xdc')]);if(!_0x1f9db1){return this[_0x336d('0x11')][_0x336d('0x2f')](_0x595250,_0x336d('0x119'));}if(_[_0x336d('0xa0')](_0x99f7d)){var _0x382527=this;_0x99f7d[_0x336d('0xdf')](function(_0x1e835f,_0x1b039e){_0x382527[_0x336d('0x11')][_0x336d('0xa9')](util[_0x336d('0x2d')](_0x336d('0x169'),_0x1f9db1,_0x1b039e),_0x1e835f);});return this[_0x336d('0x11')][_0x336d('0xad')](util[_0x336d('0x2d')](_0x336d('0x16a'),_0x1f9db1));}else{return this[_0x336d('0x11')][_0x336d('0xa9')](_0x1f9db1,_0x99f7d);}};AGIVertices[_0x336d('0x14')]['menu']=function(_0x528a7a){logger[_0x336d('0x31')](util[_0x336d('0x2d')]('Enter\x20in\x20MENU\x20(%s)\x20block',_0x528a7a[_0x336d('0x3d')]));if(_0x528a7a['retry']===0x0){return this['maxRetry'](_0x528a7a);}_0x528a7a[_0x336d('0xab')]-=0x1;if(!this[_0x336d('0x86')](_0x528a7a['file_id'])){return this[_0x336d('0x11')][_0x336d('0x2f')](_0x528a7a,_0x336d('0x16b'));}var _0x5a4633=this[_0x336d('0x22')]['sync'](this,_0x528a7a[_0x336d('0x114')]);if(!_0x5a4633){return this[_0x336d('0x11')][_0x336d('0x2f')](_0x528a7a,'no\x20file\x20audio\x20found');}var _0x32c86a=this[_0x336d('0x11')]['getData'](_0x5a4633,_0x528a7a[_0x336d('0x16c')],_0x528a7a[_0x336d('0x16d')]);var _0x1ea849=_0x32c86a[_0x336d('0xa8')];if(_0x32c86a[_0x336d('0xa8')]===-0x1){this[_0x336d('0x3b')][_0x336d('0x72')](this,_0x528a7a,'-1');return _0x32c86a;}else if(_0x32c86a[_0x336d('0xa6')]==='timeout'){_0x32c86a[_0x336d('0xa8')]=_0x32c86a[_0x336d('0xa8')][_0x336d('0xa3')]>0x0?_0x32c86a[_0x336d('0xa8')]:'t';}else if(_[_0x336d('0x48')](_0x32c86a[_0x336d('0xa8')])){_0x32c86a['result']='#';_0x1ea849='#';}if(!this[_0x336d('0x86')](_0x528a7a[_0x336d('0xdc')])){this['channel'][_0x336d('0xad')](_0x336d('0xdd'));}else{var _0x6b38bc=this[_0x336d('0xa5')][_0x336d('0x72')](this,_0x528a7a[_0x336d('0xdc')]);if(!_0x6b38bc){return this[_0x336d('0x11')][_0x336d('0x2f')](_0x528a7a,_0x336d('0x119'));}this[_0x336d('0x11')][_0x336d('0xa9')](_0x6b38bc,_0x1ea849);}this['createSquareDetailsReport']['sync'](this,_0x528a7a,_0x1ea849);return _0x32c86a;};AGIVertices[_0x336d('0x14')][_0x336d('0xad')]=function(_0x1ad3a6){logger['info'](util[_0x336d('0x2d')](_0x336d('0x16e'),_0x1ad3a6[_0x336d('0x3d')]));return this[_0x336d('0x11')][_0x336d('0xad')](_0x1ad3a6[_0x336d('0x16f')]||_0x1ad3a6['label']);};AGIVertices[_0x336d('0x14')][_0x336d('0x170')]=function(_0x3664ff){logger[_0x336d('0x31')](util[_0x336d('0x2d')](_0x336d('0x171'),_0x3664ff[_0x336d('0x3d')]));if(!this[_0x336d('0x86')](_0x3664ff[_0x336d('0x15c')])){return this[_0x336d('0x11')]['error'](_0x3664ff,_0x336d('0x15b'));}logger['info'](util[_0x336d('0x2d')](_0x336d('0x172'),this['channel'][_0x336d('0x3f')],_0x3664ff[_0x336d('0x15c')]));var _0x343166=this[_0x336d('0x50')][_0x336d('0x72')](this,_0x3664ff[_0x336d('0x173')]);var _0x414c89=this['agentPause'][_0x336d('0x72')](this,_0x3664ff['findBy'],_0x343166);if(_0x414c89){logger[_0x336d('0x31')](util[_0x336d('0x2d')](_0x336d('0x15d'),this['channel'][_0x336d('0x3f')],_0x3664ff[_0x336d('0x15c')]));this[_0x336d('0x11')][_0x336d('0xad')](util[_0x336d('0x2d')](_0x336d('0x15d'),this[_0x336d('0x11')][_0x336d('0x3f')],_0x3664ff[_0x336d('0x15c')]));return{'code':0xc8,'result':_0x336d('0x162')};}else{logger['info'](util[_0x336d('0x2d')](_0x336d('0x15e'),this[_0x336d('0x11')][_0x336d('0x3f')],_0x3664ff['findBy']));this[_0x336d('0x11')]['noop'](util['format']('AGENT\x20%s\x20FOUND\x20BY',this[_0x336d('0x11')][_0x336d('0x3f')],_0x3664ff['findBy']));return{'code':0xc8,'result':_0x336d('0x163')};}};AGIVertices[_0x336d('0x14')][_0x336d('0x174')]=function(_0x3cba2c){logger['info'](util[_0x336d('0x2d')](_0x336d('0x175'),_0x3cba2c['label']));if(!this[_0x336d('0x86')](_0x3cba2c[_0x336d('0x114')])){return this['channel'][_0x336d('0x2f')](_0x3cba2c,_0x336d('0x16b'));}var _0x5a76d9=this[_0x336d('0x22')]['sync'](this,_0x3cba2c[_0x336d('0x114')]);if(!_0x5a76d9){return this[_0x336d('0x11')][_0x336d('0x2f')](_0x3cba2c,'no\x20file\x20audio\x20found');}var _0xd19f7f=this[_0x336d('0x11')][_0x336d('0x58')]('PLAYBACK',[_0x5a76d9,_0x3cba2c[_0x336d('0x176')]]);if(_0xd19f7f['result']===-0x1){return _0xd19f7f;}return this[_0x336d('0x11')][_0x336d('0xad')](util['format'](_0x336d('0x177'),'PLAYBACK',_0x5a76d9));};AGIVertices[_0x336d('0x14')]['queue']=function(_0x343a35){logger[_0x336d('0x31')](util[_0x336d('0x2d')]('Enter\x20in\x20QUEUE\x20(%s)\x20block',_0x343a35[_0x336d('0x3d')]));if(!this[_0x336d('0x86')](_0x343a35['queue_id'])){return this[_0x336d('0x11')][_0x336d('0x2f')](_0x343a35,_0x336d('0x178'));}var _0x474711='';var _0x577c5a=parseInt(_0x343a35['queue_id'],0xa);if(isNaN(_0x577c5a)){_0x474711=_0x343a35['queue_id'];}else{_0x474711=this[_0x336d('0x19')][_0x336d('0x72')](this,_0x343a35[_0x336d('0x179')]);if(!_0x474711){return this['channel']['error'](_0x343a35,_0x336d('0x17a'));}}var _0x1e318a='';if(this[_0x336d('0x86')](_0x343a35['file_id'])){var _0x18f998=this[_0x336d('0x22')]['sync'](this,_0x343a35[_0x336d('0x114')]);if(_0x18f998){_0x1e318a=_0x18f998;}}this[_0x336d('0x3b')][_0x336d('0x72')](this,_0x343a35,_0x474711);if(_0x343a35['opts'][_0x336d('0x17b')]('x')<0x0){_0x343a35[_0x336d('0x176')]+='x';}if(_0x343a35[_0x336d('0x176')]['indexOf']('X')<0x0){_0x343a35[_0x336d('0x176')]+='X';}this[_0x336d('0x11')][_0x336d('0xa9')](_0x336d('0x17c'),_0x474711?_0x474711['toLowerCase']():'');var _0x23b96f=this[_0x336d('0x11')]['exec'](_0x336d('0x17d'),[_0x474711,_0x343a35['opts'],_0x343a35[_0x336d('0x66')],_0x1e318a,_0x343a35[_0x336d('0x68')],_0x343a35['agi'],_0x343a35['macro'],_0x343a35[_0x336d('0x17e')],'',_0x343a35[_0x336d('0x17f')]]);if(_0x23b96f['result']===-0x1){return _0x23b96f;}return this[_0x336d('0x11')][_0x336d('0xad')](util[_0x336d('0x2d')]('Executed\x20command\x20%s\x20%s',_0x336d('0x17d'),_0x474711));};AGIVertices[_0x336d('0x14')][_0x336d('0x180')]=function(_0x2ef906){logger[_0x336d('0x31')](util[_0x336d('0x2d')](_0x336d('0x181'),_0x2ef906[_0x336d('0x3d')]));var _0x33ae81=_0x2ef906[_0x336d('0x182')]||_0x336d('0x13c');var _0x363666=util[_0x336d('0x2d')](_0x336d('0x183'),this[_0x336d('0x11')]['uniqueid'],rs[_0x336d('0x11e')](0x5));var _0x1147b2=util[_0x336d('0x2d')](_0x336d('0x184'),FILES_PATH,_0x363666,_0x33ae81);var _0x15e5b2=util[_0x336d('0x2d')]('%s/recordings/%s',FILES_PATH,_0x363666);this[_0x336d('0x40')][_0x336d('0x72')](this,_0x2ef906,_0x363666,_0x1147b2);this[_0x336d('0x11')]['setVariable'](_0x336d('0x185'),_0x363666);logger[_0x336d('0x31')]('Recording\x20%s\x20%s\x20%s\x20%s',_0x15e5b2,_0x33ae81,_0x2ef906[_0x336d('0x186')],_0x2ef906['timeout']);return this[_0x336d('0x11')][_0x336d('0x13d')](_0x15e5b2,_0x33ae81,_0x2ef906[_0x336d('0x186')],_0x2ef906[_0x336d('0x68')],undefined,!![]);};AGIVertices[_0x336d('0x14')][_0x336d('0x187')]=function(_0x8c5472){logger[_0x336d('0x31')](util['format']('Enter\x20in\x20RESTAPI\x20(%s)\x20block',_0x8c5472[_0x336d('0x3d')]));if(!this['isConfigured'](_0x8c5472[_0x336d('0x66')])){return this[_0x336d('0x11')][_0x336d('0xad')](_0x336d('0x188'));}var _0x52f80c=this[_0x336d('0x189')][_0x336d('0x72')](this,_0x8c5472);logger[_0x336d('0x31')](util[_0x336d('0x2d')](_0x336d('0x18a'),util[_0x336d('0x18b')](_0x52f80c,{'showHidden':![],'depth':null})));if(!this[_0x336d('0x86')](_0x8c5472[_0x336d('0xdc')])){return this[_0x336d('0x11')][_0x336d('0xad')](_0x336d('0x18c'));}var _0x5e0a8c=this['getVariable'][_0x336d('0x72')](this,_0x8c5472['variable_id']);if(!_0x5e0a8c){return this[_0x336d('0x11')][_0x336d('0x2f')](_0x8c5472,_0x336d('0x119'));}this[_0x336d('0x11')]['setVariable'](util[_0x336d('0x2d')](_0x336d('0x18d'),_0x5e0a8c),_0x52f80c[_0x336d('0x77')]?_0x52f80c[_0x336d('0x77')]:_0x336d('0x18e'));this[_0x336d('0x11')][_0x336d('0xa9')](util[_0x336d('0x2d')](_0x336d('0x18f'),_0x5e0a8c),_0x52f80c[_0x336d('0x190')]?_0x52f80c[_0x336d('0x190')]:'OK');if(_0x52f80c[_0x336d('0x6e')]){try{this[_0x336d('0x9e')](_0x52f80c[_0x336d('0x6e')],_0x5e0a8c);}catch(_0x58236d){logger[_0x336d('0x2f')](util[_0x336d('0x2d')](_0x336d('0x191'),_0x5e0a8c));}}return this[_0x336d('0x11')][_0x336d('0xad')](util[_0x336d('0x2d')]('variable\x20%s\x20set',_0x5e0a8c));};AGIVertices[_0x336d('0x14')][_0x336d('0x192')]=function(_0x29f445){logger[_0x336d('0x31')](util[_0x336d('0x2d')](_0x336d('0x193'),_0x29f445['label']));return this[_0x336d('0x11')][_0x336d('0x194')](_0x29f445[_0x336d('0x195')][_0x336d('0x5a')](/\s+/g,''),_0x29f445[_0x336d('0x186')]);};AGIVertices[_0x336d('0x14')][_0x336d('0x196')]=function(_0x406a79){logger[_0x336d('0x31')](util[_0x336d('0x2d')](_0x336d('0x197'),_0x406a79[_0x336d('0x3d')]));return this[_0x336d('0x11')][_0x336d('0x198')](_0x406a79[_0x336d('0x69')][_0x336d('0x5a')](/\s+/g,''),_0x406a79[_0x336d('0x186')]);};AGIVertices[_0x336d('0x14')][_0x336d('0x199')]=function(_0x1078ca){logger[_0x336d('0x31')](util[_0x336d('0x2d')](_0x336d('0x19a'),_0x1078ca['label']));return this[_0x336d('0x11')][_0x336d('0x19b')](_0x1078ca[_0x336d('0x5e')],_0x1078ca[_0x336d('0x186')]);};AGIVertices[_0x336d('0x14')]['sendMail']=function(_0x56e90b){logger[_0x336d('0x31')](util[_0x336d('0x2d')](_0x336d('0x19c'),_0x56e90b[_0x336d('0x3d')]));if(!this[_0x336d('0x86')](_0x56e90b[_0x336d('0x19d')])){return this[_0x336d('0x11')]['noop'](_0x336d('0x19e'));}var _0x274e6b=this[_0x336d('0x25')][_0x336d('0x72')](this,_0x56e90b[_0x336d('0x19d')]);if(!_0x274e6b||!_0x274e6b[_0x336d('0x19f')]){return this['channel'][_0x336d('0x2f')](_0x56e90b,_0x336d('0x1a0'));}var _0x2054ef={'from':util[_0x336d('0x2d')](_0x336d('0x1a1'),_0x274e6b['name'],_0x274e6b[_0x336d('0x1a2')]||_0x274e6b['Smtp']['user']),'to':_0x56e90b['to']||'','cc':_0x56e90b['cc']||'','bcc':_0x56e90b[_0x336d('0x1a3')]||'','subject':_0x56e90b[_0x336d('0x1a4')],'html':_0x56e90b[_0x336d('0x5e')],'text':_0x56e90b[_0x336d('0x5e')]};var _0x2437be={'tls':{'rejectUnauthorized':![]}};if(_0x274e6b['Smtp'][_0x336d('0x1a5')]){_0x2437be[_0x336d('0x1a5')]=_0x274e6b[_0x336d('0x19f')]['service'];}else{_0x2437be['host']=_0x274e6b['Smtp'][_0x336d('0x1a6')];_0x2437be[_0x336d('0x1a7')]=_0x274e6b['Smtp'][_0x336d('0x1a7')];_0x2437be['secure']=_0x274e6b[_0x336d('0x19f')]['secure'];}if(_0x274e6b['Smtp'][_0x336d('0x1a8')]){_0x2437be[_0x336d('0x1a9')]={'user':_0x274e6b['Smtp'][_0x336d('0x1aa')],'pass':_0x274e6b[_0x336d('0x19f')][_0x336d('0x1ab')]};}if(this[_0x336d('0x86')](_0x56e90b[_0x336d('0x1ac')])){}logger[_0x336d('0xe1')]('sendMail\x20message',JSON[_0x336d('0x75')](_0x2054ef));this[_0x336d('0x3b')][_0x336d('0x72')](this,_0x56e90b,_0x56e90b[_0x336d('0x19d')]);this[_0x336d('0x11')][_0x336d('0xad')](util[_0x336d('0x2d')](_0x336d('0x1ad'),_0x274e6b['name']));this['sendMailMessage'][_0x336d('0x72')](this,_0x2437be,_0x2054ef);return this[_0x336d('0x11')][_0x336d('0xad')](_0x336d('0x1ae'));};AGIVertices['prototype'][_0x336d('0x1af')]=function(_0x21afe9){logger[_0x336d('0x31')](util['format'](_0x336d('0x1b0'),_0x21afe9[_0x336d('0x3d')]));return this['channel'][_0x336d('0xad')](_0x336d('0x1b1'));};AGIVertices['prototype'][_0x336d('0x1b2')]=function(_0x42a496){logger['info'](util['format']('Enter\x20in\x20SENDSMS\x20(%s)\x20block',_0x42a496[_0x336d('0x3d')]));if(!this[_0x336d('0x86')](_0x42a496[_0x336d('0x1b3')])){return this[_0x336d('0x11')][_0x336d('0xad')](_0x336d('0x1b4'));}var _0x23b34c=this['getSmsAccount']['sync'](this,_0x42a496[_0x336d('0x1b3')]);if(!_0x23b34c){return this['channel'][_0x336d('0x2f')](_0x42a496,'no\x20sms\x20account\x20found');}var _0x461246={'body':_0x42a496[_0x336d('0x1b5')],'phone':_0x42a496['to']||'','SmsAccountId':_0x23b34c['id']};logger[_0x336d('0xe1')]('sendSMS\x20message',JSON['stringify'](_0x461246));this[_0x336d('0x3b')][_0x336d('0x72')](this,_0x42a496,_0x42a496[_0x336d('0x1b3')]);this[_0x336d('0x11')]['noop'](util['format'](_0x336d('0x1b6'),_0x23b34c['name']));this[_0x336d('0x3a')][_0x336d('0x72')](this,_0x461246);return this[_0x336d('0x11')][_0x336d('0xad')](_0x336d('0x1b7'));};AGIVertices[_0x336d('0x14')][_0x336d('0x1b8')]=function(_0x4f6c3e){logger['info'](util[_0x336d('0x2d')](_0x336d('0x1b9'),_0x4f6c3e[_0x336d('0x3d')]));if(!this[_0x336d('0x86')](_0x4f6c3e['variable_id'])){return this[_0x336d('0x11')]['error'](_0x4f6c3e,_0x336d('0x1ba'));}var _0x4324d8=this[_0x336d('0xa5')][_0x336d('0x72')](this,_0x4f6c3e[_0x336d('0xdc')]);if(!_0x4324d8){return this[_0x336d('0x11')][_0x336d('0x2f')](_0x4f6c3e,_0x336d('0x119'));}return this['channel'][_0x336d('0xa9')](_0x4324d8,_0x4f6c3e[_0x336d('0x1bb')]);};AGIVertices[_0x336d('0x14')][_0x336d('0x1bc')]=function(_0x47fb60){logger[_0x336d('0x31')](util[_0x336d('0x2d')]('Enter\x20in\x20START\x20(%s)\x20block',_0x47fb60['label']));this[_0x336d('0x11')]['noop']('START\x20CALLY\x20SQUARE');if(_0x47fb60['answer']===_0x336d('0x1bd')){this[_0x336d('0x11')][_0x336d('0xad')](_0x336d('0x1be'));return this['channel'][_0x336d('0xc0')]();}return this['channel'][_0x336d('0xad')](_0x336d('0x1bf'));};AGIVertices['prototype'][_0x336d('0x1c0')]=function(_0x4126b5){logger[_0x336d('0x31')](util[_0x336d('0x2d')]('Enter\x20in\x20SUBPROJECT\x20(%s)\x20block',_0x4126b5[_0x336d('0x3d')]));if(!this['isConfigured'](_0x4126b5[_0x336d('0x1c1')])){return this[_0x336d('0x11')][_0x336d('0x2f')](_0x4126b5,_0x336d('0x1c2'));}var _0x100c6b=this[_0x336d('0x1b')][_0x336d('0x72')](this,_0x4126b5[_0x336d('0x1c1')]);if(!this[_0x336d('0x86')](_0x100c6b)){return this[_0x336d('0x11')]['error'](_0x4126b5,util[_0x336d('0x2d')](_0x336d('0x1c3'),_0x4126b5['project_id']));}if(_0x100c6b===this[_0x336d('0x11')][_0x336d('0x3e')]){return this[_0x336d('0x11')]['error'](_0x4126b5,_0x336d('0x1c4'));}this[_0x336d('0x3b')][_0x336d('0x72')](this,_0x4126b5,_0x100c6b);var _0x14cb39=this[_0x336d('0x11')]['exec'](_0x336d('0x1c5'),util['format'](_0x336d('0x1c6'),config[_0x336d('0x8')][_0x336d('0x1a6')]||_0x336d('0x1c7'),_0x100c6b,this[_0x336d('0x11')]['arg_1']));if(_0x14cb39['result']===-0x1){return _0x14cb39;}return this['channel'][_0x336d('0xad')](util[_0x336d('0x2d')](_0x336d('0x177'),_0x336d('0x1c5'),_0x100c6b));};AGIVertices[_0x336d('0x14')][_0x336d('0x1c8')]=function(_0xbe567){logger[_0x336d('0x31')](util[_0x336d('0x2d')]('Enter\x20in\x20SYSTEM\x20(%s)\x20block',_0xbe567['label']));var _0x549de2=this[_0x336d('0x57')][_0x336d('0x72')](this,_0xbe567[_0x336d('0xbe')]);this[_0x336d('0x3b')][_0x336d('0x72')](this,_0xbe567,_0xbe567['command']);if(this[_0x336d('0x86')](_0xbe567[_0x336d('0xdc')])){var _0x2ef804=this[_0x336d('0xa5')][_0x336d('0x72')](this,_0xbe567['variable_id']);if(_0x2ef804){this[_0x336d('0x11')]['setVariable'](_0x2ef804,_0x549de2);return this[_0x336d('0x11')]['noop'](util['format']('sh\x20command:\x20%s\x20result\x20on\x20variable:\x20%s',_0xbe567['command'],_0x2ef804));}}return this[_0x336d('0x11')][_0x336d('0xad')](util['format'](_0x336d('0x1c9'),_0xbe567[_0x336d('0xbe')]));};AGIVertices[_0x336d('0x14')][_0x336d('0x1ca')]=function(_0x7d28b2){logger[_0x336d('0x31')](util[_0x336d('0x2d')](_0x336d('0x1cb'),_0x7d28b2[_0x336d('0x3d')]));_0x7d28b2['text']=_0x7d28b2[_0x336d('0x5e')][_0x336d('0x5a')](/(\r\n|\n|\r)/gm,'\x20');if(!this[_0x336d('0x86')](_0x7d28b2['apiKey'])){return this[_0x336d('0x11')][_0x336d('0xad')](_0x336d('0x1cc'));}if(!this[_0x336d('0x86')](_0x7d28b2['text'])){return this[_0x336d('0x11')][_0x336d('0xad')](_0x336d('0xae'));}this[_0x336d('0x11')][_0x336d('0xad')](util[_0x336d('0x2d')]('Trying\x20Google\x20Cloud\x20TTS\x20%s',_0x7d28b2[_0x336d('0x5e')]));var _0x47a8ac=this['googleCloudTTS'][_0x336d('0x72')](this,_0x7d28b2);if(_0x47a8ac){this['channel'][_0x336d('0xad')](util[_0x336d('0x2d')]('Google\x20Cloud\x20TTS\x20%s\x20file\x20created',_0x47a8ac));var _0x2fc588=this[_0x336d('0x11')][_0x336d('0x106')](_0x47a8ac);try{fs[_0x336d('0x107')](_0x47a8ac+'.wav');}catch(_0x7aeada){logger['error'](_0x7aeada);}return _0x2fc588;}return this[_0x336d('0x11')][_0x336d('0x2f')](_0x7d28b2,_0x336d('0x1cd'));};AGIVertices['prototype']['tts']=function(_0x119c76){logger[_0x336d('0x31')](util[_0x336d('0x2d')]('Enter\x20in\x20GOOGLETTS\x20(%s)\x20block',_0x119c76[_0x336d('0x3d')]));_0x119c76[_0x336d('0x5e')]=_0x119c76['text'][_0x336d('0x5a')](/(\r\n|\n|\r)/gm,'\x20');if(!this['isConfigured'](_0x119c76[_0x336d('0x5e')])){return this[_0x336d('0x11')]['noop'](_0x336d('0xae'));}this[_0x336d('0x11')][_0x336d('0xad')](util[_0x336d('0x2d')](_0x336d('0x1ce'),_0x119c76['text']));var _0x5ae476=this['googleTTS'][_0x336d('0x72')](this,_0x119c76);if(_0x5ae476){this[_0x336d('0x11')]['noop'](util[_0x336d('0x2d')](_0x336d('0x1cf'),_0x5ae476));var _0x1eb72a=this[_0x336d('0x11')][_0x336d('0x106')](_0x5ae476);try{fs[_0x336d('0x107')](_0x5ae476+_0x336d('0x108'));}catch(_0x22d2b0){logger[_0x336d('0x2f')](_0x22d2b0);}return _0x1eb72a;}return this[_0x336d('0x11')][_0x336d('0x2f')](_0x119c76,'Google\x20TTS\x20is\x20unreachable');};AGIVertices[_0x336d('0x14')]['unpause']=function(_0x41d78a){logger['info'](util[_0x336d('0x2d')](_0x336d('0x1d0'),_0x41d78a[_0x336d('0x3d')]));if(!this[_0x336d('0x86')](_0x41d78a[_0x336d('0x15c')])){return this['channel'][_0x336d('0x2f')](_0x41d78a,'no\x20find\x20by\x20configured');}logger[_0x336d('0x31')](util[_0x336d('0x2d')]('FIND\x20AGENT\x20%s\x20BY\x20%s',this['channel'][_0x336d('0x3f')],_0x41d78a[_0x336d('0x15c')]));var _0x3baf09=this[_0x336d('0x54')][_0x336d('0x72')](this,_0x41d78a[_0x336d('0x15c')]);if(_0x3baf09){logger[_0x336d('0x31')](util[_0x336d('0x2d')](_0x336d('0x15d'),this[_0x336d('0x11')][_0x336d('0x3f')],_0x41d78a['findBy']));this['channel'][_0x336d('0xad')](util[_0x336d('0x2d')](_0x336d('0x15d'),this[_0x336d('0x11')][_0x336d('0x3f')],_0x41d78a[_0x336d('0x15c')]));return{'code':0xc8,'result':_0x336d('0x162')};}else{logger[_0x336d('0x31')](util[_0x336d('0x2d')](_0x336d('0x15e'),this[_0x336d('0x11')][_0x336d('0x3f')],_0x41d78a[_0x336d('0x15c')]));this[_0x336d('0x11')][_0x336d('0xad')](util[_0x336d('0x2d')](_0x336d('0x15e'),this[_0x336d('0x11')][_0x336d('0x3f')],_0x41d78a[_0x336d('0x15c')]));return{'code':0xc8,'result':_0x336d('0x163')};}};AGIVertices[_0x336d('0x14')][_0x336d('0x1d1')]=function(_0x50284f){logger[_0x336d('0x31')](util[_0x336d('0x2d')]('Enter\x20in\x20VOICEMAIL\x20(%s)\x20block',_0x50284f['label']));var _0x104421=this[_0x336d('0x11')][_0x336d('0x58')](_0x336d('0x1d2'),[_0x50284f[_0x336d('0x1d3')],_0x50284f[_0x336d('0x79')]]);if(_0x104421['result']===-0x1){return _0x104421;}return this[_0x336d('0x11')][_0x336d('0xad')](util[_0x336d('0x2d')](_0x336d('0x177'),_0x336d('0x1d2'),_0x50284f[_0x336d('0x1d3')]));};AGIVertices[_0x336d('0x14')]['vswitch']=function(_0x2a6703){logger[_0x336d('0x31')](util[_0x336d('0x2d')](_0x336d('0x1d4'),_0x2a6703[_0x336d('0x3d')]));if(!this['isConfigured'](_0x2a6703[_0x336d('0xdc')])){return this[_0x336d('0x11')][_0x336d('0x2f')](_0x2a6703,_0x336d('0x1ba'));}var _0x533443=this[_0x336d('0xa5')][_0x336d('0x72')](this,_0x2a6703['variable_id']);if(!_0x533443){return this[_0x336d('0x11')]['error'](_0x2a6703,_0x336d('0x119'));}var _0x50ec9f=this[_0x336d('0x11')][_0x336d('0xa5')](_0x533443);return{'code':0xc8,'result':_0x50ec9f[_0x336d('0xa6')]?_0x50ec9f[_0x336d('0xa6')]:'-'};};String['prototype'][_0x336d('0xa4')]=function(_0x2f434c,_0x5d2aa4){return this[_0x336d('0xa2')](_0x2f434c)[_0x336d('0x1d5')](_0x5d2aa4);};module[_0x336d('0x1d6')]=AGIVertices;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x55d3=['[%s][UPDATE][ACWTIME:%s]','catch','error','[%s][UPDATE][ERRORS:%s]','[%s][INPAUSE][AGENT:%s][QUEUE:%s]','finally','[ACW][START]\x20%s','message','[%s][TIMER][STOP][AGENT:%s]','saveUnpause','[ACW][STOP]\x20Interface\x20%s\x20doesn\x27t\x20have\x20timer','[ACW][TIMERS]','stringify','prototype','[ACW][syncAgentConnect]\x20%s','[ACW][syncAgentConnectPreview]\x20%s','isUndefined','[%s][HANGUP:UNIQUEID]','[%s][HANGUP:LINKEDID]','linkedid','[%s][HANGUPATTENDEDTRANSFER:LINKEDID]','[ACW][syncHangup]\x20%s','isNil','transfereeuniqueid','secondtransfereruniqueid','transfertargetuniqueid','origtransfereruniqueid','[%s][BLINDTRANSFER:UNIQUEID]','transfereruniqueid','[%s][BLINDTRANSFER:LINKEDID]','transfererlinkedid','[ACW][syncBlindTransfer]\x20%s','all','[%s][AUTOPAUSE][AGENT:%s][QUEUE:%]','savePause','Auto-Pause','[ACW][syncAgentRingNoAnswer]\x20%s','exports','util','lodash','moment','../ami','../../../config/logger','acw','../rpc/user','../rpc/voiceAgentReport','voiceQueues','agents','timers','channels','syncAgentConnect','bind','hanguprequest','syncHangupRequest','syncHangup','agentringnoanswer','syncAgentRingNoAnswer','syncAttendedTransfer','blindtransfer','syncBlindTransfer','custom:agentConnectPreview','syncAgentConnectPreview','milliseconds','diff','startAcw','interface','ACW','mandatoryDisposition','mandatoryDispositionPause','name','Action','QueuePause','info','[%s][START][AGENT:%s][QUEUE:%s]','attended','destlinkedid','then','[%s][TIMER:%s][AGENT:%s][QUEUE:%s]','acwTimeout','timer','stopAcw','lastPauseAt','format','uniqueid','queue','update'];(function(_0x163ad7,_0x182657){var _0x246ee0=function(_0x802542){while(--_0x802542){_0x163ad7['push'](_0x163ad7['shift']());}};_0x246ee0(++_0x182657);}(_0x55d3,0x17e));var _0x355d=function(_0x4ef4a2,_0x1c8cbe){_0x4ef4a2=_0x4ef4a2-0x0;var _0x383f20=_0x55d3[_0x4ef4a2];return _0x383f20;};'use strict';var util=require(_0x355d('0x0'));var _=require(_0x355d('0x1'));var moment=require(_0x355d('0x2'));var ami=require(_0x355d('0x3'));var logger=require(_0x355d('0x4'))(_0x355d('0x5'));var RpcUser=require(_0x355d('0x6'));var RpcVoiceAgentReport=require(_0x355d('0x7'));function Acw(_0x29e91f){this['voiceQueues']=_0x29e91f[_0x355d('0x8')];this[_0x355d('0x9')]=_0x29e91f['agents'];this[_0x355d('0xa')]=_0x29e91f[_0x355d('0xa')];this[_0x355d('0xb')]={};ami['on']('agentconnect',this[_0x355d('0xc')][_0x355d('0xd')](this));ami['on'](_0x355d('0xe'),this[_0x355d('0xf')]['bind'](this));ami['on']('hangup',this[_0x355d('0x10')][_0x355d('0xd')](this));ami['on'](_0x355d('0x11'),this[_0x355d('0x12')][_0x355d('0xd')](this));ami['on']('attendedtransfer',this[_0x355d('0x13')]['bind'](this));ami['on'](_0x355d('0x14'),this[_0x355d('0x15')]['bind'](this));ami['on'](_0x355d('0x16'),this[_0x355d('0x17')][_0x355d('0xd')](this));}function getDiff(_0x171f60){var _0x158fc8=moment()['milliseconds'](0x0);var _0x57a0c9=moment(_0x171f60)[_0x355d('0x18')](0x0);return _0x158fc8[_0x355d('0x19')](_0x57a0c9,'seconds');}Acw['prototype'][_0x355d('0x1a')]=function(_0x39ec6f){try{var _0x4aaba2=this;var _0x2dcfd4=this[_0x355d('0xb')][_0x39ec6f][_0x355d('0x1b')];var _0x315afa=this[_0x355d('0xb')][_0x39ec6f]['queue'];var _0x4d2851=this[_0x355d('0x8')][_0x315afa];var _0x2af6e5=![];var _0x39b731=_0x355d('0x1c');if(_0x4d2851[_0x355d('0x1d')]){if(_0x4d2851[_0x355d('0x1e')]['name']){_0x2af6e5=!![];_0x39b731=_0x4d2851['mandatoryDispositionPause'][_0x355d('0x1f')];}}ami[_0x355d('0x20')]({'action':_0x355d('0x21'),'interface':_0x2dcfd4,'paused':!![],'reason':_0x39b731})['then'](function(_0x3131c1){if(_0x4aaba2[_0x355d('0x9')][_0x2dcfd4]){return RpcUser['getAgent'](_0x4aaba2['agents'][_0x2dcfd4]['id'])['then'](function(_0x406d87){if(_0x406d87&&!_0x406d87['voicePause']){logger[_0x355d('0x22')](_0x355d('0x23'),_0x39ec6f,_0x2dcfd4,_0x315afa);var _0x3a38ae=_0x4aaba2[_0x355d('0xb')][_0x39ec6f][_0x355d('0x24')]&&_0x4aaba2[_0x355d('0xb')][_0x39ec6f][_0x355d('0x25')]?_0x4aaba2[_0x355d('0xb')][_0x39ec6f]['destlinkedid']:_0x39ec6f;return RpcUser['savePause'](_0x4aaba2[_0x355d('0x9')][_0x2dcfd4],_0x39b731,_0x3a38ae)[_0x355d('0x26')](function(_0x4d83f9){if(!_0x2af6e5){_0x4aaba2[_0x355d('0xa')][_0x2dcfd4]={};logger['info'](_0x355d('0x27'),_0x39ec6f,_0x4aaba2[_0x355d('0x8')][_0x315afa][_0x355d('0x28')],_0x2dcfd4,_0x315afa);_0x4aaba2[_0x355d('0xa')][_0x2dcfd4][_0x355d('0x29')]=setTimeout(_0x4aaba2[_0x355d('0x2a')][_0x355d('0xd')](_0x4aaba2,_0x2dcfd4),_0x4aaba2[_0x355d('0x8')][_0x315afa][_0x355d('0x28')]*0x3e8);_0x4aaba2[_0x355d('0xa')][_0x2dcfd4][_0x355d('0x2b')]=moment()[_0x355d('0x2c')]('YYYY-MM-DD\x20HH:mm:ss');_0x4aaba2[_0x355d('0xa')][_0x2dcfd4][_0x355d('0x2d')]=_0x39ec6f;_0x4aaba2[_0x355d('0xa')][_0x2dcfd4][_0x355d('0x2e')]=_0x315afa;_0x4aaba2[_0x355d('0xa')][_0x2dcfd4]['updateAcw']=function(){var _0x749658=getDiff(_0x4aaba2[_0x355d('0xa')][_0x2dcfd4][_0x355d('0x2b')]);clearTimeout(_0x4aaba2[_0x355d('0xa')][_0x2dcfd4][_0x355d('0x29')]);_0x4aaba2['timers'][_0x2dcfd4][_0x355d('0x29')]=![];RpcVoiceAgentReport[_0x355d('0x2f')]({'acwtime':_0x749658},_0x4aaba2[_0x355d('0xa')][_0x2dcfd4]['uniqueid'],_0x2dcfd4)[_0x355d('0x26')](function(_0x594de5){logger['info'](_0x355d('0x30'),_0x39ec6f,_0x749658,_0x594de5);})[_0x355d('0x31')](function(_0x5d8452){logger[_0x355d('0x32')](_0x355d('0x33'),_0x39ec6f,_0x5d8452);});delete _0x4aaba2['timers'][_0x2dcfd4];};}});}else{logger[_0x355d('0x22')](_0x355d('0x34'),_0x39ec6f,_0x2dcfd4,_0x315afa);}});}})['catch'](function(_0x2606ce){logger[_0x355d('0x32')](_0x355d('0x27'),_0x39ec6f,_0x4aaba2['voiceQueues'][_0x315afa]['acwTimeout'],_0x2dcfd4,_0x315afa);})[_0x355d('0x35')](function(){delete _0x4aaba2[_0x355d('0xb')][_0x39ec6f];});}catch(_0x6473a5){logger[_0x355d('0x32')](_0x355d('0x36'),_0x6473a5[_0x355d('0x37')]);}};Acw['prototype'][_0x355d('0x2a')]=function(_0x5a2ef5){try{var _0x566224=this;if(_0x566224[_0x355d('0xa')][_0x5a2ef5]){_0x566224[_0x355d('0xa')][_0x5a2ef5][_0x355d('0x29')]=![];var _0x5485dd=_0x566224['timers'][_0x5a2ef5]['uniqueid'];var _0x316755=_0x566224[_0x355d('0xa')][_0x5a2ef5][_0x355d('0x2e')];var _0x496341=_0x566224['voiceQueues'][_0x316755][_0x355d('0x28')];logger[_0x355d('0x22')](_0x355d('0x38'),_0x5485dd,_0x5a2ef5);RpcUser[_0x355d('0x39')](this[_0x355d('0x9')][_0x5a2ef5]);RpcVoiceAgentReport[_0x355d('0x2f')]({'acwtime':_0x496341,'agentacw':!![]},_0x5485dd,_0x5a2ef5)[_0x355d('0x26')](function(_0x103f51){logger[_0x355d('0x22')](_0x355d('0x30'),_0x5485dd,_0x496341,_0x103f51);})[_0x355d('0x31')](function(_0x4ff930){logger['error'](_0x355d('0x33'),_0x5485dd,_0x4ff930);});}else{logger[_0x355d('0x32')](_0x355d('0x3a'),_0x5a2ef5);if(_0x566224[_0x355d('0xa')]){logger[_0x355d('0x22')](_0x355d('0x3b'),JSON[_0x355d('0x3c')](_0x566224['timers']));}}}catch(_0x300b7b){logger[_0x355d('0x32')]('[ACW][STOP]\x20%s',_0x300b7b[_0x355d('0x37')]);}};Acw[_0x355d('0x3d')][_0x355d('0xc')]=function(_0x4230ac){try{if(this['voiceQueues'][_0x4230ac[_0x355d('0x2e')]]&&(this[_0x355d('0x8')][_0x4230ac[_0x355d('0x2e')]][_0x355d('0x5')]||this[_0x355d('0x8')][_0x4230ac[_0x355d('0x2e')]][_0x355d('0x1d')])){if(this[_0x355d('0x9')][_0x4230ac['interface']]){this[_0x355d('0xb')][_0x4230ac[_0x355d('0x2d')]]={'queue':_0x4230ac[_0x355d('0x2e')],'interface':_0x4230ac[_0x355d('0x1b')],'destlinkedid':_0x4230ac['destlinkedid']};}}}catch(_0x5a4247){logger[_0x355d('0x32')](_0x355d('0x3e'),_0x5a4247['message']);}};Acw[_0x355d('0x3d')]['syncAgentConnectPreview']=function(_0x332ba0){try{if(this[_0x355d('0x8')][_0x332ba0[_0x355d('0x2e')]]&&(this[_0x355d('0x8')][_0x332ba0[_0x355d('0x2e')]][_0x355d('0x5')]||this[_0x355d('0x8')][_0x332ba0[_0x355d('0x2e')]][_0x355d('0x1d')])){if(this[_0x355d('0x9')][_0x332ba0['interface']]){this[_0x355d('0xb')][_0x332ba0[_0x355d('0x2d')]]={'queue':_0x332ba0['queue'],'interface':_0x332ba0[_0x355d('0x1b')]};}}}catch(_0x472795){logger[_0x355d('0x32')](_0x355d('0x3f'),_0x472795[_0x355d('0x37')]);}};Acw['prototype'][_0x355d('0xf')]=function(_0x20ee21){try{if(this['channels'][_0x20ee21[_0x355d('0x2d')]]&&_[_0x355d('0x40')](this['channels'][_0x20ee21[_0x355d('0x2d')]]['attended'])){logger[_0x355d('0x22')](_0x355d('0x41'),_0x20ee21[_0x355d('0x2d')]);this[_0x355d('0x1a')](_0x20ee21[_0x355d('0x2d')]);}else if(this[_0x355d('0xb')][_0x20ee21['linkedid']]&&_[_0x355d('0x40')](this[_0x355d('0xb')][_0x20ee21['linkedid']][_0x355d('0x24')])){logger[_0x355d('0x22')](_0x355d('0x42'),_0x20ee21[_0x355d('0x43')]);this['startAcw'](_0x20ee21[_0x355d('0x43')]);}}catch(_0x3fe478){logger[_0x355d('0x32')]('[ACW][syncHangupRequest]\x20%s',_0x3fe478[_0x355d('0x37')]);}};Acw[_0x355d('0x3d')][_0x355d('0x10')]=function(_0x1cee2e){try{if(this[_0x355d('0xb')][_0x1cee2e[_0x355d('0x2d')]]&&this[_0x355d('0xb')][_0x1cee2e[_0x355d('0x2d')]][_0x355d('0x24')]){logger[_0x355d('0x22')]('[%s][HANGUPATTENDEDTRANSFER:UNIQUEID]',_0x1cee2e[_0x355d('0x2d')]);this[_0x355d('0x1a')](_0x1cee2e[_0x355d('0x2d')]);}else if(this[_0x355d('0xb')][_0x1cee2e[_0x355d('0x43')]]&&this[_0x355d('0xb')][_0x1cee2e[_0x355d('0x43')]][_0x355d('0x24')]){logger['info'](_0x355d('0x44'),_0x1cee2e['linkedid']);this['startAcw'](_0x1cee2e[_0x355d('0x43')]);}}catch(_0x2fb269){logger['error'](_0x355d('0x45'),_0x2fb269[_0x355d('0x37')]);}};Acw[_0x355d('0x3d')][_0x355d('0x13')]=function(_0x313f13){try{if(!_[_0x355d('0x46')](this['channels'][_0x313f13[_0x355d('0x47')]])){this[_0x355d('0x1a')](_0x313f13[_0x355d('0x47')]);if(this['channels'][_0x313f13['secondtransfereruniqueid']]){this[_0x355d('0xb')][_0x313f13[_0x355d('0x48')]][_0x355d('0x24')]=!![];this[_0x355d('0xb')][_0x313f13[_0x355d('0x49')]]=this[_0x355d('0xb')][_0x313f13['secondtransfereruniqueid']];delete this[_0x355d('0xb')][_0x313f13[_0x355d('0x48')]];}}else if(!_['isNil'](this[_0x355d('0xb')][_0x313f13[_0x355d('0x49')]])){this[_0x355d('0x1a')](_0x313f13[_0x355d('0x49')]);if(this[_0x355d('0xb')][_0x313f13['origtransfereruniqueid']]){this['channels'][_0x313f13['origtransfereruniqueid']][_0x355d('0x24')]=!![];this[_0x355d('0xb')][_0x313f13['transfereeuniqueid']]=this[_0x355d('0xb')][_0x313f13[_0x355d('0x4a')]];delete this['channels'][_0x313f13[_0x355d('0x4a')]];}}}catch(_0x55e482){logger[_0x355d('0x32')]('[ACW][syncAttendedTransfer]\x20%s',_0x55e482[_0x355d('0x37')]);}};Acw[_0x355d('0x3d')][_0x355d('0x15')]=function(_0x335c80){try{if(this[_0x355d('0xb')][_0x335c80['transfereruniqueid']]){logger[_0x355d('0x22')](_0x355d('0x4b'),JSON['stringify'](_0x335c80[_0x355d('0x4c')]));this['startAcw'](_0x335c80[_0x355d('0x4c')]);}else if(this[_0x355d('0xb')][_0x335c80['transfererlinkedid']]){logger[_0x355d('0x22')](_0x355d('0x4d'),JSON[_0x355d('0x3c')](_0x335c80[_0x355d('0x4e')]));this[_0x355d('0x1a')](_0x335c80[_0x355d('0x4e')]);}}catch(_0x1b8daf){logger[_0x355d('0x32')](_0x355d('0x4f'),_0x1b8daf[_0x355d('0x37')]);}};Acw[_0x355d('0x3d')][_0x355d('0x12')]=function(_0x3083a4){try{if(this[_0x355d('0x8')][_0x3083a4['queue']]&&this[_0x355d('0x8')][_0x3083a4[_0x355d('0x2e')]]['autopause']===_0x355d('0x50')){if(this[_0x355d('0x9')][_0x3083a4[_0x355d('0x1b')]]){logger[_0x355d('0x22')](_0x355d('0x51'),_0x3083a4['uniqueid'],_0x3083a4[_0x355d('0x1b')],_0x3083a4[_0x355d('0x2e')]);return RpcUser[_0x355d('0x52')](this['agents'][_0x3083a4[_0x355d('0x1b')]],_0x355d('0x53'),_0x3083a4[_0x355d('0x2d')]);}}}catch(_0x449e37){logger[_0x355d('0x32')](_0x355d('0x54'),_0x449e37[_0x355d('0x37')]);}};module[_0x355d('0x55')]=Acw;
\ No newline at end of file
+var _0x4977=['startAcw','linkedid','[%s][HANGUP:LINKEDID]','[ACW][syncHangupRequest]\x20%s','isNil','transfereeuniqueid','secondtransfereruniqueid','transfertargetuniqueid','origtransfereruniqueid','[ACW][syncAttendedTransfer]\x20%s','transfereruniqueid','[%s][BLINDTRANSFER:UNIQUEID]','transfererlinkedid','[%s][BLINDTRANSFER:LINKEDID]','autopause','all','Auto-Pause','[ACW][syncAgentRingNoAnswer]\x20%s','util','lodash','moment','../../../config/logger','acw','../rpc/user','../rpc/voiceAgentReport','voiceQueues','agents','timers','channels','syncAgentConnect','bind','hanguprequest','syncHangupRequest','hangup','syncHangup','agentringnoanswer','syncAgentRingNoAnswer','attendedtransfer','syncAttendedTransfer','blindtransfer','syncBlindTransfer','custom:agentConnectPreview','syncAgentConnectPreview','milliseconds','prototype','interface','queue','ACW','mandatoryDisposition','mandatoryDispositionPause','name','Action','QueuePause','then','voicePause','info','[%s][START][AGENT:%s][QUEUE:%s]','attended','destlinkedid','savePause','[%s][TIMER:%s][AGENT:%s][QUEUE:%s]','acwTimeout','timer','stopAcw','format','YYYY-MM-DD\x20HH:mm:ss','uniqueid','lastPauseAt','[%s][UPDATE][ACWTIME:%s]','catch','[%s][UPDATE][ERRORS:%s]','[%s][INPAUSE][AGENT:%s][QUEUE:%s]','finally','error','message','saveUnpause','[ACW][STOP]\x20Interface\x20%s\x20doesn\x27t\x20have\x20timer','[ACW][TIMERS]','stringify','[ACW][syncAgentConnect]\x20%s','[ACW][syncAgentConnectPreview]\x20%s','isUndefined','[%s][HANGUP:UNIQUEID]'];(function(_0x37b78a,_0x5f36f3){var _0x311e7f=function(_0x42f946){while(--_0x42f946){_0x37b78a['push'](_0x37b78a['shift']());}};_0x311e7f(++_0x5f36f3);}(_0x4977,0x10b));var _0x7497=function(_0xf9cad4,_0x1f8cef){_0xf9cad4=_0xf9cad4-0x0;var _0x24cb2d=_0x4977[_0xf9cad4];return _0x24cb2d;};'use strict';var util=require(_0x7497('0x0'));var _=require(_0x7497('0x1'));var moment=require(_0x7497('0x2'));var ami=require('../ami');var logger=require(_0x7497('0x3'))(_0x7497('0x4'));var RpcUser=require(_0x7497('0x5'));var RpcVoiceAgentReport=require(_0x7497('0x6'));function Acw(_0x4171a8){this[_0x7497('0x7')]=_0x4171a8[_0x7497('0x7')];this[_0x7497('0x8')]=_0x4171a8[_0x7497('0x8')];this[_0x7497('0x9')]=_0x4171a8[_0x7497('0x9')];this[_0x7497('0xa')]={};ami['on']('agentconnect',this[_0x7497('0xb')][_0x7497('0xc')](this));ami['on'](_0x7497('0xd'),this[_0x7497('0xe')]['bind'](this));ami['on'](_0x7497('0xf'),this[_0x7497('0x10')]['bind'](this));ami['on'](_0x7497('0x11'),this[_0x7497('0x12')][_0x7497('0xc')](this));ami['on'](_0x7497('0x13'),this[_0x7497('0x14')][_0x7497('0xc')](this));ami['on'](_0x7497('0x15'),this[_0x7497('0x16')]['bind'](this));ami['on'](_0x7497('0x17'),this[_0x7497('0x18')][_0x7497('0xc')](this));}function getDiff(_0x53b9c1){var _0x3a9783=moment()[_0x7497('0x19')](0x0);var _0x2c9b93=moment(_0x53b9c1)[_0x7497('0x19')](0x0);return _0x3a9783['diff'](_0x2c9b93,'seconds');}Acw[_0x7497('0x1a')]['startAcw']=function(_0x23650a){try{var _0xf01e38=this;var _0x320745=this[_0x7497('0xa')][_0x23650a][_0x7497('0x1b')];var _0x454681=this['channels'][_0x23650a][_0x7497('0x1c')];var _0x682c56=this[_0x7497('0x7')][_0x454681];var _0x36eb79=![];var _0x1c02bf=_0x7497('0x1d');if(_0x682c56[_0x7497('0x1e')]){if(_0x682c56[_0x7497('0x1f')][_0x7497('0x20')]){_0x36eb79=!![];_0x1c02bf=_0x682c56[_0x7497('0x1f')][_0x7497('0x20')];}}ami[_0x7497('0x21')]({'action':_0x7497('0x22'),'interface':_0x320745,'paused':!![],'reason':_0x1c02bf})[_0x7497('0x23')](function(_0x1465fe){if(_0xf01e38[_0x7497('0x8')][_0x320745]){return RpcUser['getAgent'](_0xf01e38[_0x7497('0x8')][_0x320745]['id'])[_0x7497('0x23')](function(_0x5cb8a5){if(_0x5cb8a5&&!_0x5cb8a5[_0x7497('0x24')]){logger[_0x7497('0x25')](_0x7497('0x26'),_0x23650a,_0x320745,_0x454681);var _0x4fe3a7=_0xf01e38[_0x7497('0xa')][_0x23650a][_0x7497('0x27')]&&_0xf01e38['channels'][_0x23650a][_0x7497('0x28')]?_0xf01e38['channels'][_0x23650a][_0x7497('0x28')]:_0x23650a;return RpcUser[_0x7497('0x29')](_0xf01e38[_0x7497('0x8')][_0x320745],_0x1c02bf,_0x4fe3a7)[_0x7497('0x23')](function(_0x3d5052){if(!_0x36eb79){_0xf01e38[_0x7497('0x9')][_0x320745]={};logger[_0x7497('0x25')](_0x7497('0x2a'),_0x23650a,_0xf01e38[_0x7497('0x7')][_0x454681][_0x7497('0x2b')],_0x320745,_0x454681);_0xf01e38['timers'][_0x320745][_0x7497('0x2c')]=setTimeout(_0xf01e38[_0x7497('0x2d')][_0x7497('0xc')](_0xf01e38,_0x320745),_0xf01e38[_0x7497('0x7')][_0x454681][_0x7497('0x2b')]*0x3e8);_0xf01e38['timers'][_0x320745]['lastPauseAt']=moment()[_0x7497('0x2e')](_0x7497('0x2f'));_0xf01e38['timers'][_0x320745][_0x7497('0x30')]=_0x23650a;_0xf01e38[_0x7497('0x9')][_0x320745][_0x7497('0x1c')]=_0x454681;_0xf01e38['timers'][_0x320745]['updateAcw']=function(){var _0x565437=getDiff(_0xf01e38[_0x7497('0x9')][_0x320745][_0x7497('0x31')]);clearTimeout(_0xf01e38[_0x7497('0x9')][_0x320745][_0x7497('0x2c')]);_0xf01e38[_0x7497('0x9')][_0x320745][_0x7497('0x2c')]=![];RpcVoiceAgentReport['update']({'acwtime':_0x565437},_0xf01e38[_0x7497('0x9')][_0x320745][_0x7497('0x30')],_0x320745)[_0x7497('0x23')](function(_0x17d60d){logger[_0x7497('0x25')](_0x7497('0x32'),_0x23650a,_0x565437,_0x17d60d);})[_0x7497('0x33')](function(_0x47e998){logger['error'](_0x7497('0x34'),_0x23650a,_0x47e998);});delete _0xf01e38[_0x7497('0x9')][_0x320745];};}});}else{logger[_0x7497('0x25')](_0x7497('0x35'),_0x23650a,_0x320745,_0x454681);}});}})['catch'](function(_0xa6cd7d){logger['error'](_0x7497('0x2a'),_0x23650a,_0xf01e38['voiceQueues'][_0x454681]['acwTimeout'],_0x320745,_0x454681);})[_0x7497('0x36')](function(){delete _0xf01e38[_0x7497('0xa')][_0x23650a];});}catch(_0x14624b){logger[_0x7497('0x37')]('[ACW][START]\x20%s',_0x14624b[_0x7497('0x38')]);}};Acw[_0x7497('0x1a')][_0x7497('0x2d')]=function(_0x2bf545){try{var _0x25f525=this;if(_0x25f525[_0x7497('0x9')][_0x2bf545]){_0x25f525['timers'][_0x2bf545][_0x7497('0x2c')]=![];var _0x38f7ab=_0x25f525[_0x7497('0x9')][_0x2bf545][_0x7497('0x30')];var _0x2f7cdf=_0x25f525[_0x7497('0x9')][_0x2bf545][_0x7497('0x1c')];var _0x1051c2=_0x25f525[_0x7497('0x7')][_0x2f7cdf][_0x7497('0x2b')];logger[_0x7497('0x25')]('[%s][TIMER][STOP][AGENT:%s]',_0x38f7ab,_0x2bf545);RpcUser[_0x7497('0x39')](this[_0x7497('0x8')][_0x2bf545]);RpcVoiceAgentReport['update']({'acwtime':_0x1051c2,'agentacw':!![]},_0x38f7ab,_0x2bf545)[_0x7497('0x23')](function(_0x2a37f1){logger[_0x7497('0x25')](_0x7497('0x32'),_0x38f7ab,_0x1051c2,_0x2a37f1);})['catch'](function(_0x228500){logger[_0x7497('0x37')](_0x7497('0x34'),_0x38f7ab,_0x228500);});}else{logger[_0x7497('0x37')](_0x7497('0x3a'),_0x2bf545);if(_0x25f525[_0x7497('0x9')]){logger[_0x7497('0x25')](_0x7497('0x3b'),JSON[_0x7497('0x3c')](_0x25f525[_0x7497('0x9')]));}}}catch(_0xf6e5be){logger[_0x7497('0x37')]('[ACW][STOP]\x20%s',_0xf6e5be['message']);}};Acw[_0x7497('0x1a')]['syncAgentConnect']=function(_0x516ad0){try{if(this[_0x7497('0x7')][_0x516ad0[_0x7497('0x1c')]]&&(this[_0x7497('0x7')][_0x516ad0[_0x7497('0x1c')]][_0x7497('0x4')]||this[_0x7497('0x7')][_0x516ad0[_0x7497('0x1c')]]['mandatoryDisposition'])){if(this[_0x7497('0x8')][_0x516ad0[_0x7497('0x1b')]]){this[_0x7497('0xa')][_0x516ad0[_0x7497('0x30')]]={'queue':_0x516ad0[_0x7497('0x1c')],'interface':_0x516ad0['interface'],'destlinkedid':_0x516ad0[_0x7497('0x28')]};}}}catch(_0x567ea8){logger[_0x7497('0x37')](_0x7497('0x3d'),_0x567ea8['message']);}};Acw['prototype'][_0x7497('0x18')]=function(_0x3e762e){try{if(this[_0x7497('0x7')][_0x3e762e[_0x7497('0x1c')]]&&(this[_0x7497('0x7')][_0x3e762e[_0x7497('0x1c')]][_0x7497('0x4')]||this[_0x7497('0x7')][_0x3e762e[_0x7497('0x1c')]]['mandatoryDisposition'])){if(this[_0x7497('0x8')][_0x3e762e[_0x7497('0x1b')]]){this[_0x7497('0xa')][_0x3e762e[_0x7497('0x30')]]={'queue':_0x3e762e[_0x7497('0x1c')],'interface':_0x3e762e['interface']};}}}catch(_0x60e0e5){logger['error'](_0x7497('0x3e'),_0x60e0e5[_0x7497('0x38')]);}};Acw[_0x7497('0x1a')][_0x7497('0xe')]=function(_0x33b429){try{if(this[_0x7497('0xa')][_0x33b429['uniqueid']]&&_[_0x7497('0x3f')](this[_0x7497('0xa')][_0x33b429[_0x7497('0x30')]][_0x7497('0x27')])){logger[_0x7497('0x25')](_0x7497('0x40'),_0x33b429[_0x7497('0x30')]);this[_0x7497('0x41')](_0x33b429[_0x7497('0x30')]);}else if(this[_0x7497('0xa')][_0x33b429[_0x7497('0x42')]]&&_['isUndefined'](this['channels'][_0x33b429[_0x7497('0x42')]][_0x7497('0x27')])){logger[_0x7497('0x25')](_0x7497('0x43'),_0x33b429[_0x7497('0x42')]);this[_0x7497('0x41')](_0x33b429[_0x7497('0x42')]);}}catch(_0x227ee0){logger[_0x7497('0x37')](_0x7497('0x44'),_0x227ee0[_0x7497('0x38')]);}};Acw[_0x7497('0x1a')][_0x7497('0x10')]=function(_0x15aec1){try{if(this['channels'][_0x15aec1[_0x7497('0x30')]]&&this['channels'][_0x15aec1[_0x7497('0x30')]][_0x7497('0x27')]){logger[_0x7497('0x25')]('[%s][HANGUPATTENDEDTRANSFER:UNIQUEID]',_0x15aec1[_0x7497('0x30')]);this[_0x7497('0x41')](_0x15aec1[_0x7497('0x30')]);}else if(this[_0x7497('0xa')][_0x15aec1['linkedid']]&&this[_0x7497('0xa')][_0x15aec1[_0x7497('0x42')]][_0x7497('0x27')]){logger[_0x7497('0x25')]('[%s][HANGUPATTENDEDTRANSFER:LINKEDID]',_0x15aec1[_0x7497('0x42')]);this[_0x7497('0x41')](_0x15aec1[_0x7497('0x42')]);}}catch(_0x3d08c1){logger['error']('[ACW][syncHangup]\x20%s',_0x3d08c1['message']);}};Acw[_0x7497('0x1a')]['syncAttendedTransfer']=function(_0x2db885){try{if(!_[_0x7497('0x45')](this[_0x7497('0xa')][_0x2db885[_0x7497('0x46')]])){this[_0x7497('0x41')](_0x2db885[_0x7497('0x46')]);if(this['channels'][_0x2db885[_0x7497('0x47')]]){this[_0x7497('0xa')][_0x2db885[_0x7497('0x47')]][_0x7497('0x27')]=!![];this[_0x7497('0xa')][_0x2db885[_0x7497('0x48')]]=this['channels'][_0x2db885[_0x7497('0x47')]];delete this['channels'][_0x2db885[_0x7497('0x47')]];}}else if(!_[_0x7497('0x45')](this[_0x7497('0xa')][_0x2db885[_0x7497('0x48')]])){this[_0x7497('0x41')](_0x2db885['transfertargetuniqueid']);if(this[_0x7497('0xa')][_0x2db885[_0x7497('0x49')]]){this[_0x7497('0xa')][_0x2db885[_0x7497('0x49')]][_0x7497('0x27')]=!![];this[_0x7497('0xa')][_0x2db885[_0x7497('0x46')]]=this[_0x7497('0xa')][_0x2db885['origtransfereruniqueid']];delete this['channels'][_0x2db885[_0x7497('0x49')]];}}}catch(_0x430d72){logger[_0x7497('0x37')](_0x7497('0x4a'),_0x430d72[_0x7497('0x38')]);}};Acw['prototype'][_0x7497('0x16')]=function(_0x5c7035){try{if(this[_0x7497('0xa')][_0x5c7035[_0x7497('0x4b')]]){logger[_0x7497('0x25')](_0x7497('0x4c'),JSON[_0x7497('0x3c')](_0x5c7035[_0x7497('0x4b')]));this['startAcw'](_0x5c7035[_0x7497('0x4b')]);}else if(this['channels'][_0x5c7035[_0x7497('0x4d')]]){logger[_0x7497('0x25')](_0x7497('0x4e'),JSON[_0x7497('0x3c')](_0x5c7035['transfererlinkedid']));this['startAcw'](_0x5c7035[_0x7497('0x4d')]);}}catch(_0x428162){logger['error']('[ACW][syncBlindTransfer]\x20%s',_0x428162[_0x7497('0x38')]);}};Acw[_0x7497('0x1a')][_0x7497('0x12')]=function(_0x461660){try{if(this[_0x7497('0x7')][_0x461660[_0x7497('0x1c')]]&&this[_0x7497('0x7')][_0x461660[_0x7497('0x1c')]][_0x7497('0x4f')]===_0x7497('0x50')){if(this['agents'][_0x461660['interface']]){logger[_0x7497('0x25')]('[%s][AUTOPAUSE][AGENT:%s][QUEUE:%]',_0x461660[_0x7497('0x30')],_0x461660[_0x7497('0x1b')],_0x461660['queue']);return RpcUser['savePause'](this[_0x7497('0x8')][_0x461660[_0x7497('0x1b')]],_0x7497('0x51'),_0x461660[_0x7497('0x30')]);}}}catch(_0x22db8c){logger[_0x7497('0x37')](_0x7497('0x52'),_0x22db8c[_0x7497('0x38')]);}};module['exports']=Acw;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0713=['Manager\x20\x22%s\x22\x20error\x20to\x20%s:%s\x20with:\x0a%s','inspect','format','Manager\x20\x22%s\x22\x20closed\x20to\x20%s:%s','actionSipShowRegistry','actionDeviceStateList','devicestatelist','actionSipPeerStatus','sippeerstatus','actionQueueSummary','queuesummary','actionCoreShowChannels','coreshowchannels','info','Manager\x20\x22%s\x22\x20logged\x20on\x20to\x20%s:%s','once','close','shutdown','Shutdown\x20\x22%s\x22\x20to\x20%s:%s\x20with:\x0a%s','Fullybooted\x20\x22%s\x22\x20to\x20%s:%s','then','catch','[ami.js][fullybooted]','exports','moment','util','lodash','../../config/logger','ami','asterisk','port','username','password','keepConnected','Action','promisify','action','error'];(function(_0x423f6a,_0x2b2377){var _0x174dba=function(_0x414760){while(--_0x414760){_0x423f6a['push'](_0x423f6a['shift']());}};_0x174dba(++_0x2b2377);}(_0x0713,0x1ba));var _0x3071=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x0713[_0x3dd15e];return _0x231fd0;};'use strict';var Manager=require('asterisk-manager');var BPromise=require('bluebird');var moment=require(_0x3071('0x0'));var util=require(_0x3071('0x1'));var _=require(_0x3071('0x2'));var logger=require(_0x3071('0x3'))(_0x3071('0x4'));var config=require('../../config/environment');var ami=new Manager(config[_0x3071('0x5')][_0x3071('0x6')],config[_0x3071('0x5')]['ip'],config[_0x3071('0x5')][_0x3071('0x7')],config[_0x3071('0x5')][_0x3071('0x8')],!![]);ami[_0x3071('0x9')]();ami[_0x3071('0xa')]=BPromise[_0x3071('0xb')](ami[_0x3071('0xc')]);function error(_0x2fce7a){logger[_0x3071('0xd')](util['format'](_0x3071('0xe'),config[_0x3071('0x5')][_0x3071('0x7')],config[_0x3071('0x5')]['ip'],config[_0x3071('0x5')]['port'],util[_0x3071('0xf')](_0x2fce7a,![],null)));}function close(){logger[_0x3071('0xd')](util[_0x3071('0x10')](_0x3071('0x11'),config[_0x3071('0x5')]['username'],config['asterisk']['ip'],config[_0x3071('0x5')]['port']));}ami[_0x3071('0x12')]=function(){return function(){return ami[_0x3071('0xa')]({'action':'sipshowregistry'});};};ami[_0x3071('0x13')]=function(){return function(){return ami['Action']({'action':_0x3071('0x14')});};};ami[_0x3071('0x15')]=function(){return function(){return ami[_0x3071('0xa')]({'action':_0x3071('0x16')});};};ami[_0x3071('0x17')]=function(){return function(){return ami[_0x3071('0xa')]({'action':_0x3071('0x18')});};};ami[_0x3071('0x19')]=function(){return function(){return ami[_0x3071('0xa')]({'action':_0x3071('0x1a')});};};function connect(_0x5f3c22){logger[_0x3071('0x1b')](util[_0x3071('0x10')](_0x3071('0x1c'),config[_0x3071('0x5')][_0x3071('0x7')],config[_0x3071('0x5')]['ip'],config[_0x3071('0x5')][_0x3071('0x6')]));ami['once'](_0x3071('0xd'),error);ami[_0x3071('0x1d')](_0x3071('0x1e'),close);}ami['on']('connect',connect);ami['on'](_0x3071('0x1f'),function(_0x5cd80d){logger[_0x3071('0x1b')](util[_0x3071('0x10')](_0x3071('0x20'),config[_0x3071('0x5')][_0x3071('0x7')],config[_0x3071('0x5')]['ip'],config[_0x3071('0x5')][_0x3071('0x6')],util['inspect'](_0x5cd80d,![],null)));});ami['on']('fullybooted',function(_0x2ce48a){logger[_0x3071('0x1b')](util[_0x3071('0x10')](_0x3071('0x21'),config[_0x3071('0x5')][_0x3071('0x7')],config[_0x3071('0x5')]['ip'],config[_0x3071('0x5')][_0x3071('0x6')]));return BPromise['resolve']()[_0x3071('0x22')](ami[_0x3071('0x12')]())[_0x3071('0x22')](ami['actionDeviceStateList']())[_0x3071('0x22')](ami[_0x3071('0x15')]())[_0x3071('0x22')](ami[_0x3071('0x17')]())[_0x3071('0x22')](ami[_0x3071('0x19')]())[_0x3071('0x23')](function(_0x3921a1){logger[_0x3071('0xd')](_0x3071('0x24'),util[_0x3071('0xf')](_0x3921a1,{'showHidden':![],'depth':null}));});});ami['once']('error',error);ami[_0x3071('0x1d')](_0x3071('0x1e'),close);module[_0x3071('0x25')]=ami;
\ No newline at end of file
+var _0x0b0e=['../../config/environment','asterisk','port','username','password','promisify','action','error','Manager\x20\x22%s\x22\x20error\x20to\x20%s:%s\x20with:\x0a%s','inspect','format','Action','sipshowregistry','actionDeviceStateList','devicestatelist','actionQueueSummary','actionCoreShowChannels','coreshowchannels','Manager\x20\x22%s\x22\x20logged\x20on\x20to\x20%s:%s','close','shutdown','info','Shutdown\x20\x22%s\x22\x20to\x20%s:%s\x20with:\x0a%s','then','actionSipPeerStatus','catch','[ami.js][fullybooted]','once','asterisk-manager','moment','lodash','../../config/logger','ami'];(function(_0x323fdc,_0x185d3e){var _0x185557=function(_0x546839){while(--_0x546839){_0x323fdc['push'](_0x323fdc['shift']());}};_0x185557(++_0x185d3e);}(_0x0b0e,0x187));var _0xe0b0=function(_0x3f994d,_0x249d72){_0x3f994d=_0x3f994d-0x0;var _0x5309b4=_0x0b0e[_0x3f994d];return _0x5309b4;};'use strict';var Manager=require(_0xe0b0('0x0'));var BPromise=require('bluebird');var moment=require(_0xe0b0('0x1'));var util=require('util');var _=require(_0xe0b0('0x2'));var logger=require(_0xe0b0('0x3'))(_0xe0b0('0x4'));var config=require(_0xe0b0('0x5'));var ami=new Manager(config[_0xe0b0('0x6')][_0xe0b0('0x7')],config[_0xe0b0('0x6')]['ip'],config[_0xe0b0('0x6')][_0xe0b0('0x8')],config[_0xe0b0('0x6')][_0xe0b0('0x9')],!![]);ami['keepConnected']();ami['Action']=BPromise[_0xe0b0('0xa')](ami[_0xe0b0('0xb')]);function error(_0xc4a085){logger[_0xe0b0('0xc')](util['format'](_0xe0b0('0xd'),config[_0xe0b0('0x6')]['username'],config[_0xe0b0('0x6')]['ip'],config[_0xe0b0('0x6')]['port'],util[_0xe0b0('0xe')](_0xc4a085,![],null)));}function close(){logger[_0xe0b0('0xc')](util[_0xe0b0('0xf')]('Manager\x20\x22%s\x22\x20closed\x20to\x20%s:%s',config[_0xe0b0('0x6')][_0xe0b0('0x8')],config[_0xe0b0('0x6')]['ip'],config[_0xe0b0('0x6')][_0xe0b0('0x7')]));}ami['actionSipShowRegistry']=function(){return function(){return ami[_0xe0b0('0x10')]({'action':_0xe0b0('0x11')});};};ami[_0xe0b0('0x12')]=function(){return function(){return ami[_0xe0b0('0x10')]({'action':_0xe0b0('0x13')});};};ami['actionSipPeerStatus']=function(){return function(){return ami[_0xe0b0('0x10')]({'action':'sippeerstatus'});};};ami[_0xe0b0('0x14')]=function(){return function(){return ami[_0xe0b0('0x10')]({'action':'queuesummary'});};};ami[_0xe0b0('0x15')]=function(){return function(){return ami['Action']({'action':_0xe0b0('0x16')});};};function connect(_0x100204){logger['info'](util['format'](_0xe0b0('0x17'),config['asterisk']['username'],config['asterisk']['ip'],config[_0xe0b0('0x6')]['port']));ami['once'](_0xe0b0('0xc'),error);ami['once'](_0xe0b0('0x18'),close);}ami['on']('connect',connect);ami['on'](_0xe0b0('0x19'),function(_0x1cd7c4){logger[_0xe0b0('0x1a')](util[_0xe0b0('0xf')](_0xe0b0('0x1b'),config['asterisk']['username'],config[_0xe0b0('0x6')]['ip'],config['asterisk'][_0xe0b0('0x7')],util[_0xe0b0('0xe')](_0x1cd7c4,![],null)));});ami['on']('fullybooted',function(_0x170ad8){logger['info'](util[_0xe0b0('0xf')]('Fullybooted\x20\x22%s\x22\x20to\x20%s:%s',config[_0xe0b0('0x6')]['username'],config[_0xe0b0('0x6')]['ip'],config['asterisk'][_0xe0b0('0x7')]));return BPromise['resolve']()[_0xe0b0('0x1c')](ami['actionSipShowRegistry']())[_0xe0b0('0x1c')](ami[_0xe0b0('0x12')]())[_0xe0b0('0x1c')](ami[_0xe0b0('0x1d')]())[_0xe0b0('0x1c')](ami[_0xe0b0('0x14')]())['then'](ami[_0xe0b0('0x15')]())[_0xe0b0('0x1e')](function(_0x5b7a64){logger[_0xe0b0('0xc')](_0xe0b0('0x1f'),util[_0xe0b0('0xe')](_0x5b7a64,{'showHidden':![],'depth':null}));});});ami[_0xe0b0('0x20')](_0xe0b0('0xc'),error);ami[_0xe0b0('0x20')](_0xe0b0('0x18'),close);module['exports']=ami;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xda3f=['then','rpc','memberReport','error','message','result','catch','exports','bluebird','../../config/logger','Request','request'];(function(_0x42cae2,_0x284ef8){var _0x5f256f=function(_0x41abc8){while(--_0x41abc8){_0x42cae2['push'](_0x42cae2['shift']());}};_0x5f256f(++_0x284ef8);}(_0xda3f,0xec));var _0xfda3=function(_0x2af790,_0x581ccd){_0x2af790=_0x2af790-0x0;var _0x5aaf5e=_0xda3f[_0x2af790];return _0x5aaf5e;};'use strict';var jayson=require('jayson/promise');var BPromise=require(_0xfda3('0x0'));var logger=require(_0xfda3('0x1'))('ami');var client=jayson['client']['http']({'port':0x2329});client[_0xfda3('0x2')]=function(_0x581693,_0x36dc71){return new BPromise(function(_0x22187d,_0x516500){return client[_0xfda3('0x3')](_0x581693,_0x36dc71)[_0xfda3('0x4')](function(_0x47e7e2){logger['debug'](_0xfda3('0x5'),_0xfda3('0x6'),_0x581693,_0x36dc71,_0x47e7e2);if(_0x47e7e2[_0xfda3('0x7')]){logger[_0xfda3('0x7')](_0xfda3('0x5'),_0xfda3('0x6'),_0x581693,_0x47e7e2[_0xfda3('0x7')][_0xfda3('0x8')],_0x36dc71);return _0x516500(_0x47e7e2[_0xfda3('0x7')][_0xfda3('0x8')]);}else{return _0x22187d(_0x47e7e2[_0xfda3('0x9')]);}})[_0xfda3('0xa')](function(_0x4d7841){logger[_0xfda3('0x7')](_0xfda3('0x5'),_0xfda3('0x6'),_0x581693,_0x4d7841,_0x36dc71);return _0x516500(_0x4d7841);});});};module[_0xfda3('0xb')]=client;
\ No newline at end of file
+var _0xda3f=['then','rpc','memberReport','error','message','result','catch','exports','bluebird','../../config/logger','Request','request'];(function(_0x40a045,_0x516f0e){var _0x1a687c=function(_0x48c9fe){while(--_0x48c9fe){_0x40a045['push'](_0x40a045['shift']());}};_0x1a687c(++_0x516f0e);}(_0xda3f,0xec));var _0xfda3=function(_0x262882,_0x43b3aa){_0x262882=_0x262882-0x0;var _0x1d88d2=_0xda3f[_0x262882];return _0x1d88d2;};'use strict';var jayson=require('jayson/promise');var BPromise=require(_0xfda3('0x0'));var logger=require(_0xfda3('0x1'))('ami');var client=jayson['client']['http']({'port':0x2329});client[_0xfda3('0x2')]=function(_0x581693,_0x36dc71){return new BPromise(function(_0x22187d,_0x516500){return client[_0xfda3('0x3')](_0x581693,_0x36dc71)[_0xfda3('0x4')](function(_0x47e7e2){logger['debug'](_0xfda3('0x5'),_0xfda3('0x6'),_0x581693,_0x36dc71,_0x47e7e2);if(_0x47e7e2[_0xfda3('0x7')]){logger[_0xfda3('0x7')](_0xfda3('0x5'),_0xfda3('0x6'),_0x581693,_0x47e7e2[_0xfda3('0x7')][_0xfda3('0x8')],_0x36dc71);return _0x516500(_0x47e7e2[_0xfda3('0x7')][_0xfda3('0x8')]);}else{return _0x22187d(_0x47e7e2[_0xfda3('0x9')]);}})[_0xfda3('0xa')](function(_0x4d7841){logger[_0xfda3('0x7')](_0xfda3('0x5'),_0xfda3('0x6'),_0x581693,_0x4d7841,_0x36dc71);return _0x516500(_0x4d7841);});});};module[_0xfda3('0xb')]=client;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0742=['starttime','YYYY-MM-DD\x20HH:mm:ss','callback','callbackuniqueid','callbackat','recallme','originatecalleridnum','originatecalleridname','prototype','getCaller','\x22%s\x22\x20<%s>','number','getQueue','exports','util','lodash','moment','isNil','string','voiceQueue','uniqueid','name','Contact','phone','firstName','queue','active','type','dialQueueTimeout','scheduledat','countbusyretry','countcongestionretry','countnoanswerretry','countnosuchnumberretry','countdropretry','countabandonedretry','countmachineretry','countagentrejectretry','ContactId','UserId','VoiceQueueId','CampaignId','idHopper','ContactFirstName'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0x0742,0x116));var _0x2074=function(_0x868b7c,_0xfa438b){_0x868b7c=_0x868b7c-0x0;var _0x21683c=_0x0742[_0x868b7c];return _0x21683c;};'use strict';var util=require(_0x2074('0x0'));var _=require(_0x2074('0x1'));var moment=require(_0x2074('0x2'));function checkNameSurname(_0x5f33c5,_0x8068c7,_0x23668c){var _0x1a1bb0='';if(!_[_0x2074('0x3')](_0x8068c7)&&_0x2074('0x4')===typeof _0x8068c7){_0x1a1bb0+=_0x8068c7;}if(!_[_0x2074('0x3')](_0x23668c)&&'string'===typeof _0x23668c){_0x1a1bb0+='\x20'+_0x23668c;}if(_0x1a1bb0!==''){return _0x1a1bb0;}return _0x5f33c5;}function Action(_0x5f22e4,_0x1b67b8,_0x4e7b8a){this[_0x2074('0x5')]=_0x5f22e4;this[_0x2074('0x6')]=_0x4e7b8a||undefined;this[_0x2074('0x7')]=checkNameSurname(_0x1b67b8[_0x2074('0x8')][_0x2074('0x9')],_0x1b67b8[_0x2074('0x8')][_0x2074('0xa')],_0x1b67b8['Contact']['lastName']);this['number']=_0x1b67b8['Contact']['phone'];this[_0x2074('0xb')]=_0x5f22e4['name'];this[_0x2074('0xc')]=_0x1b67b8[_0x2074('0xc')]||![];this[_0x2074('0xd')]=_0x5f22e4['type'];this[_0x2074('0xe')]=_0x5f22e4['dialQueueTimeout']||0x3;this['scheduledat']=_0x1b67b8[_0x2074('0xf')];this[_0x2074('0x10')]=_0x1b67b8[_0x2074('0x10')];this[_0x2074('0x11')]=_0x1b67b8[_0x2074('0x11')];this['countnoanswerretry']=_0x1b67b8[_0x2074('0x12')];this['countnosuchnumberretry']=_0x1b67b8[_0x2074('0x13')];this[_0x2074('0x14')]=_0x1b67b8[_0x2074('0x14')];this[_0x2074('0x15')]=_0x1b67b8[_0x2074('0x15')];this[_0x2074('0x16')]=_0x1b67b8[_0x2074('0x16')];this[_0x2074('0x17')]=_0x1b67b8['countagentrejectretry'];this[_0x2074('0x18')]=_0x1b67b8[_0x2074('0x18')];this['ListId']=_0x1b67b8['ListId'];this['UserId']=_0x1b67b8[_0x2074('0x19')];this[_0x2074('0x1a')]=_0x1b67b8[_0x2074('0x1a')];this[_0x2074('0x1b')]=_0x1b67b8[_0x2074('0x1b')];this[_0x2074('0x1c')]=_0x1b67b8['id'];this[_0x2074('0x1d')]=_0x1b67b8[_0x2074('0x8')][_0x2074('0xa')]||'';this[_0x2074('0x1e')]=moment()['format'](_0x2074('0x1f'));this[_0x2074('0x20')]=_0x1b67b8[_0x2074('0x20')];this[_0x2074('0x21')]=_0x1b67b8[_0x2074('0x21')];this[_0x2074('0x22')]=_0x1b67b8[_0x2074('0x22')];this[_0x2074('0x23')]=_0x1b67b8['recallme'];this[_0x2074('0x24')]='';this[_0x2074('0x25')]='';}Action[_0x2074('0x26')][_0x2074('0x27')]=function(){return util['format'](_0x2074('0x28'),this['name'],this['voiceQueue']['dialCutDigit']>0x0?this[_0x2074('0x29')]['substring'](this['voiceQueue']['dialCutDigit']):this['number']);};Action[_0x2074('0x26')][_0x2074('0x2a')]=function(){return this[_0x2074('0xb')];};module[_0x2074('0x2b')]=Action;
\ No newline at end of file
+var _0xa387=['CampaignId','idHopper','firstName','starttime','format','YYYY-MM-DD\x20HH:mm:ss','callback','callbackuniqueid','callbackat','recallme','originatecalleridnum','originatecalleridname','prototype','\x22%s\x22\x20<%s>','substring','dialCutDigit','getQueue','exports','util','lodash','moment','isNil','string','voiceQueue','name','Contact','phone','number','queue','active','type','dialQueueTimeout','scheduledat','countbusyretry','countcongestionretry','countnoanswerretry','countnosuchnumberretry','countdropretry','countabandonedretry','countmachineretry','ContactId'];(function(_0x538230,_0x522250){var _0x30f32b=function(_0x37a340){while(--_0x37a340){_0x538230['push'](_0x538230['shift']());}};_0x30f32b(++_0x522250);}(_0xa387,0x1d5));var _0x7a38=function(_0x552a8b,_0x39cd54){_0x552a8b=_0x552a8b-0x0;var _0x3004b9=_0xa387[_0x552a8b];return _0x3004b9;};'use strict';var util=require(_0x7a38('0x0'));var _=require(_0x7a38('0x1'));var moment=require(_0x7a38('0x2'));function checkNameSurname(_0x2788f7,_0x2d071e,_0xb8f246){var _0x5dccf6='';if(!_[_0x7a38('0x3')](_0x2d071e)&&_0x7a38('0x4')===typeof _0x2d071e){_0x5dccf6+=_0x2d071e;}if(!_['isNil'](_0xb8f246)&&_0x7a38('0x4')===typeof _0xb8f246){_0x5dccf6+='\x20'+_0xb8f246;}if(_0x5dccf6!==''){return _0x5dccf6;}return _0x2788f7;}function Action(_0x5bb486,_0x22efb1,_0xf4fd63){this[_0x7a38('0x5')]=_0x5bb486;this['uniqueid']=_0xf4fd63||undefined;this[_0x7a38('0x6')]=checkNameSurname(_0x22efb1[_0x7a38('0x7')][_0x7a38('0x8')],_0x22efb1[_0x7a38('0x7')]['firstName'],_0x22efb1['Contact']['lastName']);this[_0x7a38('0x9')]=_0x22efb1['Contact']['phone'];this[_0x7a38('0xa')]=_0x5bb486[_0x7a38('0x6')];this[_0x7a38('0xb')]=_0x22efb1['active']||![];this[_0x7a38('0xc')]=_0x5bb486[_0x7a38('0xc')];this[_0x7a38('0xd')]=_0x5bb486[_0x7a38('0xd')]||0x3;this['scheduledat']=_0x22efb1[_0x7a38('0xe')];this[_0x7a38('0xf')]=_0x22efb1[_0x7a38('0xf')];this[_0x7a38('0x10')]=_0x22efb1['countcongestionretry'];this[_0x7a38('0x11')]=_0x22efb1[_0x7a38('0x11')];this[_0x7a38('0x12')]=_0x22efb1['countnosuchnumberretry'];this[_0x7a38('0x13')]=_0x22efb1[_0x7a38('0x13')];this[_0x7a38('0x14')]=_0x22efb1[_0x7a38('0x14')];this['countmachineretry']=_0x22efb1[_0x7a38('0x15')];this['countagentrejectretry']=_0x22efb1['countagentrejectretry'];this[_0x7a38('0x16')]=_0x22efb1[_0x7a38('0x16')];this['ListId']=_0x22efb1['ListId'];this['UserId']=_0x22efb1['UserId'];this['VoiceQueueId']=_0x22efb1['VoiceQueueId'];this[_0x7a38('0x17')]=_0x22efb1['CampaignId'];this[_0x7a38('0x18')]=_0x22efb1['id'];this['ContactFirstName']=_0x22efb1[_0x7a38('0x7')][_0x7a38('0x19')]||'';this[_0x7a38('0x1a')]=moment()[_0x7a38('0x1b')](_0x7a38('0x1c'));this[_0x7a38('0x1d')]=_0x22efb1['callback'];this[_0x7a38('0x1e')]=_0x22efb1[_0x7a38('0x1e')];this[_0x7a38('0x1f')]=_0x22efb1[_0x7a38('0x1f')];this[_0x7a38('0x20')]=_0x22efb1[_0x7a38('0x20')];this[_0x7a38('0x21')]='';this[_0x7a38('0x22')]='';}Action[_0x7a38('0x23')]['getCaller']=function(){return util['format'](_0x7a38('0x24'),this[_0x7a38('0x6')],this[_0x7a38('0x5')]['dialCutDigit']>0x0?this[_0x7a38('0x9')][_0x7a38('0x25')](this['voiceQueue'][_0x7a38('0x26')]):this[_0x7a38('0x9')]);};Action[_0x7a38('0x23')][_0x7a38('0x27')]=function(){return this[_0x7a38('0xa')];};module[_0x7a38('0x28')]=Action;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2399=['CampaignId','originatecalleridnum','originatecalleridname','exports','util','moment','milliseconds','diff','state','Answer','scheduledat','type','campaigntype','outbound','queue','countbusyretry','countcongestionretry','countnoanswerretry','countglobal','countnosuchnumberretry','countdropretry','countabandonedretry','countmachineretry','countagentrejectretry','uniqueid','calleridname','name','calleridnum','number','starttime','responsetime','answertime','endtime','YYYY-MM-DD\x20HH:mm:ss','ringtime','membername','reason','callback','callbackuniqueid','callbackat','recallme','ContactId','ListId','UserId','VoiceQueueId'];(function(_0x1ce037,_0x18c6aa){var _0x4266b7=function(_0x4f552d){while(--_0x4f552d){_0x1ce037['push'](_0x1ce037['shift']());}};_0x4266b7(++_0x18c6aa);}(_0x2399,0x1f3));var _0x9239=function(_0x5bddc9,_0x301f9f){_0x5bddc9=_0x5bddc9-0x0;var _0x48f149=_0x2399[_0x5bddc9];return _0x48f149;};'use strict';var util=require(_0x9239('0x0'));var _=require('lodash');var moment=require(_0x9239('0x1'));function getSeconds(_0x2e3faf,_0x6aa37f){var _0x4cf380=moment(_0x2e3faf)[_0x9239('0x2')](0x0);var _0x465489=moment(_0x6aa37f)['milliseconds'](0x0);return _0x4cf380[_0x9239('0x3')](_0x465489,'seconds');}function AgentComplete(_0x2b96f3,_0x36b1c8){this[_0x9239('0x4')]=0x4;this['statedesc']=_0x9239('0x5');this[_0x9239('0x6')]=_0x2b96f3['scheduledat'];this[_0x9239('0x7')]=_0x2b96f3['type'];this[_0x9239('0x8')]=_0x2b96f3[_0x9239('0x7')]===_0x9239('0x9')?_0x9239('0xa'):_0x2b96f3[_0x9239('0x7')];this[_0x9239('0xb')]=_0x2b96f3[_0x9239('0xb')];this['countcongestionretry']=_0x2b96f3[_0x9239('0xc')];this[_0x9239('0xd')]=_0x2b96f3[_0x9239('0xd')];this[_0x9239('0xe')]=_0x2b96f3['countbusyretry']+_0x2b96f3[_0x9239('0xc')]+_0x2b96f3[_0x9239('0xd')]+_0x2b96f3[_0x9239('0xf')]+_0x2b96f3[_0x9239('0x10')]+_0x2b96f3[_0x9239('0x11')]+_0x2b96f3[_0x9239('0x12')]+_0x2b96f3['countagentrejectretry'];this[_0x9239('0xf')]=_0x2b96f3[_0x9239('0xf')];this[_0x9239('0x10')]=_0x2b96f3[_0x9239('0x10')];this[_0x9239('0x11')]=_0x2b96f3['countabandonedretry'];this[_0x9239('0x12')]=_0x2b96f3[_0x9239('0x12')];this[_0x9239('0x13')]=_0x2b96f3['countagentrejectretry'];this[_0x9239('0x14')]=_0x36b1c8[_0x9239('0x14')];this[_0x9239('0x15')]=_0x2b96f3[_0x9239('0x16')];this[_0x9239('0x17')]=_0x2b96f3[_0x9239('0x18')];this[_0x9239('0x19')]=_0x2b96f3[_0x9239('0x19')];this[_0x9239('0x1a')]=_0x2b96f3['responsetime'];this[_0x9239('0x1b')]=_0x2b96f3['answertime'];this[_0x9239('0x1c')]=moment()['format'](_0x9239('0x1d'));this[_0x9239('0x1e')]=getSeconds(_0x2b96f3[_0x9239('0x1a')],_0x2b96f3[_0x9239('0x19')]);this['holdtime']=getSeconds(_0x2b96f3[_0x9239('0x1b')],_0x2b96f3[_0x9239('0x1a')]);this['talktime']=getSeconds(this[_0x9239('0x1c')],_0x2b96f3['answertime']);this[_0x9239('0xa')]=_0x36b1c8[_0x9239('0xa')];this[_0x9239('0x1f')]=_0x36b1c8[_0x9239('0x1f')];this[_0x9239('0x20')]=_0x36b1c8[_0x9239('0x20')];this[_0x9239('0x21')]=_0x2b96f3[_0x9239('0x21')];this['callbackuniqueid']=_0x2b96f3[_0x9239('0x22')];this['callbackat']=_0x2b96f3[_0x9239('0x23')];this[_0x9239('0x24')]=_0x2b96f3[_0x9239('0x24')];this['ContactId']=_0x2b96f3[_0x9239('0x25')];this[_0x9239('0x26')]=_0x2b96f3[_0x9239('0x26')];this[_0x9239('0x27')]=_0x2b96f3[_0x9239('0x27')];this['VoiceQueueId']=_0x2b96f3[_0x9239('0x28')];this[_0x9239('0x29')]=_0x2b96f3[_0x9239('0x29')];this[_0x9239('0x2a')]=_0x2b96f3[_0x9239('0x2a')]||'';this['originatecalleridname']=_0x2b96f3[_0x9239('0x2b')]||'';}module[_0x9239('0x2c')]=AgentComplete;
\ No newline at end of file
+var _0x7ca2=['uniqueid','calleridname','calleridnum','number','starttime','responsetime','answertime','endtime','format','ringtime','queue','reason','callback','callbackuniqueid','callbackat','recallme','ContactId','UserId','VoiceQueueId','CampaignId','originatecalleridnum','originatecalleridname','exports','util','milliseconds','diff','state','Answer','scheduledat','type','campaigntype','countbusyretry','countcongestionretry','countnoanswerretry','countdropretry','countabandonedretry','countagentrejectretry','countnosuchnumberretry','countmachineretry'];(function(_0x137bdf,_0x4614ae){var _0xe574bb=function(_0x9f7649){while(--_0x9f7649){_0x137bdf['push'](_0x137bdf['shift']());}};_0xe574bb(++_0x4614ae);}(_0x7ca2,0x128));var _0x27ca=function(_0x2cea06,_0x2eb449){_0x2cea06=_0x2cea06-0x0;var _0x42d47c=_0x7ca2[_0x2cea06];return _0x42d47c;};'use strict';var util=require(_0x27ca('0x0'));var _=require('lodash');var moment=require('moment');function getSeconds(_0x304cfd,_0x1eb0cc){var _0x1e8ed2=moment(_0x304cfd)[_0x27ca('0x1')](0x0);var _0x1456dc=moment(_0x1eb0cc)[_0x27ca('0x1')](0x0);return _0x1e8ed2[_0x27ca('0x2')](_0x1456dc,'seconds');}function AgentComplete(_0x8b75b2,_0x163866){this[_0x27ca('0x3')]=0x4;this['statedesc']=_0x27ca('0x4');this[_0x27ca('0x5')]=_0x8b75b2['scheduledat'];this['type']=_0x8b75b2[_0x27ca('0x6')];this[_0x27ca('0x7')]=_0x8b75b2['type']==='outbound'?'queue':_0x8b75b2[_0x27ca('0x6')];this[_0x27ca('0x8')]=_0x8b75b2[_0x27ca('0x8')];this[_0x27ca('0x9')]=_0x8b75b2[_0x27ca('0x9')];this[_0x27ca('0xa')]=_0x8b75b2['countnoanswerretry'];this['countglobal']=_0x8b75b2['countbusyretry']+_0x8b75b2['countcongestionretry']+_0x8b75b2[_0x27ca('0xa')]+_0x8b75b2['countnosuchnumberretry']+_0x8b75b2[_0x27ca('0xb')]+_0x8b75b2[_0x27ca('0xc')]+_0x8b75b2['countmachineretry']+_0x8b75b2[_0x27ca('0xd')];this[_0x27ca('0xe')]=_0x8b75b2[_0x27ca('0xe')];this[_0x27ca('0xb')]=_0x8b75b2[_0x27ca('0xb')];this[_0x27ca('0xc')]=_0x8b75b2[_0x27ca('0xc')];this[_0x27ca('0xf')]=_0x8b75b2['countmachineretry'];this['countagentrejectretry']=_0x8b75b2[_0x27ca('0xd')];this['uniqueid']=_0x163866[_0x27ca('0x10')];this[_0x27ca('0x11')]=_0x8b75b2['name'];this[_0x27ca('0x12')]=_0x8b75b2[_0x27ca('0x13')];this[_0x27ca('0x14')]=_0x8b75b2[_0x27ca('0x14')];this[_0x27ca('0x15')]=_0x8b75b2[_0x27ca('0x15')];this[_0x27ca('0x16')]=_0x8b75b2[_0x27ca('0x16')];this[_0x27ca('0x17')]=moment()[_0x27ca('0x18')]('YYYY-MM-DD\x20HH:mm:ss');this[_0x27ca('0x19')]=getSeconds(_0x8b75b2[_0x27ca('0x15')],_0x8b75b2['starttime']);this['holdtime']=getSeconds(_0x8b75b2[_0x27ca('0x16')],_0x8b75b2['responsetime']);this['talktime']=getSeconds(this[_0x27ca('0x17')],_0x8b75b2[_0x27ca('0x16')]);this['queue']=_0x163866[_0x27ca('0x1a')];this['membername']=_0x163866['membername'];this['reason']=_0x163866[_0x27ca('0x1b')];this[_0x27ca('0x1c')]=_0x8b75b2[_0x27ca('0x1c')];this[_0x27ca('0x1d')]=_0x8b75b2['callbackuniqueid'];this['callbackat']=_0x8b75b2[_0x27ca('0x1e')];this[_0x27ca('0x1f')]=_0x8b75b2[_0x27ca('0x1f')];this[_0x27ca('0x20')]=_0x8b75b2[_0x27ca('0x20')];this['ListId']=_0x8b75b2['ListId'];this['UserId']=_0x8b75b2[_0x27ca('0x21')];this[_0x27ca('0x22')]=_0x8b75b2[_0x27ca('0x22')];this[_0x27ca('0x23')]=_0x8b75b2[_0x27ca('0x23')];this[_0x27ca('0x24')]=_0x8b75b2[_0x27ca('0x24')]||'';this[_0x27ca('0x25')]=_0x8b75b2[_0x27ca('0x25')]||'';}module[_0x27ca('0x26')]=AgentComplete;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x99c9=['countbusyretry','countcongestionretry','countnoanswerretry','countglobal','countnosuchnumberretry','countdropretry','countabandonedretry','countmachineretry','countagentrejectretry','calleridname','calleridnum','starttime','responsetime','endtime','ringtime','holdtime','talktime','callback','callbackuniqueid','callbackat','recallme','ContactId','ListId','UserId','VoiceQueueId','CampaignId','originatecalleridnum','originatecalleridname','exports','util','lodash','moment','milliseconds','diff','seconds','uniqueid','scheduledat','type','campaigntype','outbound','queue'];(function(_0x353af4,_0x114c45){var _0x1375b0=function(_0x4db7a6){while(--_0x4db7a6){_0x353af4['push'](_0x353af4['shift']());}};_0x1375b0(++_0x114c45);}(_0x99c9,0x13c));var _0x999c=function(_0x4a53d,_0x58a95e){_0x4a53d=_0x4a53d-0x0;var _0x27410e=_0x99c9[_0x4a53d];return _0x27410e;};'use strict';var util=require(_0x999c('0x0'));var _=require(_0x999c('0x1'));var moment=require(_0x999c('0x2'));function getSeconds(_0x23d5a4,_0x2bb83d){var _0x16a7a3=moment(_0x23d5a4)[_0x999c('0x3')](0x0);var _0x52dc75=moment(_0x2bb83d)[_0x999c('0x3')](0x0);return _0x16a7a3[_0x999c('0x4')](_0x52dc75,_0x999c('0x5'));}function Final(_0x347ee0){this[_0x999c('0x6')]=_0x347ee0[_0x999c('0x6')];this[_0x999c('0x7')]=_0x347ee0[_0x999c('0x7')];this[_0x999c('0x8')]=_0x347ee0[_0x999c('0x8')];this[_0x999c('0x9')]=_0x347ee0[_0x999c('0x8')]===_0x999c('0xa')?_0x999c('0xb'):_0x347ee0['type'];this[_0x999c('0xc')]=_0x347ee0[_0x999c('0xc')];this['countcongestionretry']=_0x347ee0[_0x999c('0xd')];this[_0x999c('0xe')]=_0x347ee0[_0x999c('0xe')];this[_0x999c('0xf')]=_0x347ee0[_0x999c('0xc')]+_0x347ee0[_0x999c('0xd')]+_0x347ee0[_0x999c('0xe')]+_0x347ee0[_0x999c('0x10')]+_0x347ee0[_0x999c('0x11')]+_0x347ee0[_0x999c('0x12')]+_0x347ee0[_0x999c('0x13')]+_0x347ee0[_0x999c('0x14')];this['countnosuchnumberretry']=_0x347ee0[_0x999c('0x10')];this[_0x999c('0x11')]=_0x347ee0['countdropretry'];this['countabandonedretry']=_0x347ee0['countabandonedretry'];this[_0x999c('0x13')]=_0x347ee0[_0x999c('0x13')];this[_0x999c('0x14')]=_0x347ee0[_0x999c('0x14')];this[_0x999c('0xb')]=_0x347ee0['queue'];this[_0x999c('0x15')]=_0x347ee0[_0x999c('0x15')];this[_0x999c('0x16')]=_0x347ee0[_0x999c('0x16')];this[_0x999c('0x17')]=_0x347ee0['starttime'];this[_0x999c('0x18')]=_0x347ee0[_0x999c('0x18')];this[_0x999c('0x19')]=_0x347ee0[_0x999c('0x18')];this[_0x999c('0x1a')]=_0x347ee0['ringtime']||0x0;this[_0x999c('0x1b')]=_0x347ee0[_0x999c('0x1b')]||0x0;this[_0x999c('0x1c')]=_0x347ee0[_0x999c('0x1c')]||0x0;this[_0x999c('0x1d')]=_0x347ee0[_0x999c('0x1d')];this['callbackuniqueid']=_0x347ee0[_0x999c('0x1e')];this[_0x999c('0x1f')]=_0x347ee0[_0x999c('0x1f')];this[_0x999c('0x20')]=_0x347ee0[_0x999c('0x20')];this[_0x999c('0x21')]=_0x347ee0[_0x999c('0x21')];this[_0x999c('0x22')]=_0x347ee0[_0x999c('0x22')];this[_0x999c('0x23')]=_0x347ee0[_0x999c('0x23')];this['VoiceQueueId']=_0x347ee0[_0x999c('0x24')];this[_0x999c('0x25')]=_0x347ee0[_0x999c('0x25')];this[_0x999c('0x26')]=_0x347ee0[_0x999c('0x26')]||'';this[_0x999c('0x27')]=_0x347ee0['originatecalleridname']||'';}module[_0x999c('0x28')]=Final;
\ No newline at end of file
+var _0xa41a=['ListId','UserId','VoiceQueueId','originatecalleridnum','originatecalleridname','util','lodash','milliseconds','diff','seconds','uniqueid','type','outbound','queue','countbusyretry','countcongestionretry','countnoanswerretry','countglobal','countnosuchnumberretry','countabandonedretry','countmachineretry','countagentrejectretry','countdropretry','calleridname','calleridnum','starttime','responsetime','ringtime','holdtime','talktime','callbackuniqueid','callbackat','recallme','ContactId'];(function(_0xb195ff,_0x1adb02){var _0xb5ae1f=function(_0x372bb5){while(--_0x372bb5){_0xb195ff['push'](_0xb195ff['shift']());}};_0xb5ae1f(++_0x1adb02);}(_0xa41a,0x6b));var _0xaa41=function(_0x2f01c5,_0x30984b){_0x2f01c5=_0x2f01c5-0x0;var _0x4d884f=_0xa41a[_0x2f01c5];return _0x4d884f;};'use strict';var util=require(_0xaa41('0x0'));var _=require(_0xaa41('0x1'));var moment=require('moment');function getSeconds(_0x1612c4,_0x2a96ba){var _0x43654a=moment(_0x1612c4)[_0xaa41('0x2')](0x0);var _0x37c7a1=moment(_0x2a96ba)[_0xaa41('0x2')](0x0);return _0x43654a[_0xaa41('0x3')](_0x37c7a1,_0xaa41('0x4'));}function Final(_0x5dad7c){this[_0xaa41('0x5')]=_0x5dad7c[_0xaa41('0x5')];this['scheduledat']=_0x5dad7c['scheduledat'];this[_0xaa41('0x6')]=_0x5dad7c[_0xaa41('0x6')];this['campaigntype']=_0x5dad7c[_0xaa41('0x6')]===_0xaa41('0x7')?_0xaa41('0x8'):_0x5dad7c[_0xaa41('0x6')];this[_0xaa41('0x9')]=_0x5dad7c[_0xaa41('0x9')];this[_0xaa41('0xa')]=_0x5dad7c[_0xaa41('0xa')];this[_0xaa41('0xb')]=_0x5dad7c['countnoanswerretry'];this[_0xaa41('0xc')]=_0x5dad7c[_0xaa41('0x9')]+_0x5dad7c['countcongestionretry']+_0x5dad7c['countnoanswerretry']+_0x5dad7c[_0xaa41('0xd')]+_0x5dad7c['countdropretry']+_0x5dad7c[_0xaa41('0xe')]+_0x5dad7c[_0xaa41('0xf')]+_0x5dad7c[_0xaa41('0x10')];this[_0xaa41('0xd')]=_0x5dad7c[_0xaa41('0xd')];this['countdropretry']=_0x5dad7c[_0xaa41('0x11')];this[_0xaa41('0xe')]=_0x5dad7c[_0xaa41('0xe')];this[_0xaa41('0xf')]=_0x5dad7c[_0xaa41('0xf')];this[_0xaa41('0x10')]=_0x5dad7c[_0xaa41('0x10')];this['queue']=_0x5dad7c[_0xaa41('0x8')];this[_0xaa41('0x12')]=_0x5dad7c[_0xaa41('0x12')];this[_0xaa41('0x13')]=_0x5dad7c[_0xaa41('0x13')];this[_0xaa41('0x14')]=_0x5dad7c[_0xaa41('0x14')];this[_0xaa41('0x15')]=_0x5dad7c[_0xaa41('0x15')];this['endtime']=_0x5dad7c['responsetime'];this[_0xaa41('0x16')]=_0x5dad7c[_0xaa41('0x16')]||0x0;this[_0xaa41('0x17')]=_0x5dad7c['holdtime']||0x0;this[_0xaa41('0x18')]=_0x5dad7c[_0xaa41('0x18')]||0x0;this['callback']=_0x5dad7c['callback'];this[_0xaa41('0x19')]=_0x5dad7c['callbackuniqueid'];this[_0xaa41('0x1a')]=_0x5dad7c[_0xaa41('0x1a')];this[_0xaa41('0x1b')]=_0x5dad7c[_0xaa41('0x1b')];this[_0xaa41('0x1c')]=_0x5dad7c['ContactId'];this[_0xaa41('0x1d')]=_0x5dad7c[_0xaa41('0x1d')];this[_0xaa41('0x1e')]=_0x5dad7c[_0xaa41('0x1e')];this[_0xaa41('0x1f')]=_0x5dad7c[_0xaa41('0x1f')];this['CampaignId']=_0x5dad7c['CampaignId'];this[_0xaa41('0x20')]=_0x5dad7c['originatecalleridnum']||'';this['originatecalleridname']=_0x5dad7c[_0xaa41('0x21')]||'';}module['exports']=Final;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9061=['exports','util','lodash','milliseconds','diff','seconds','state','statedesc','Answer','scheduledat','type','campaigntype','outbound','countbusyretry','countcongestionretry','countnoanswerretry','countabandonedretry','countmachineretry','countagentrejectretry','countnosuchnumberretry','countdropretry','uniqueid','calleridname','name','calleridnum','number','starttime','responsetime','YYYY-MM-DD\x20HH:mm:ss','ringtime','talktime','endtime','queue','IVR','reason','callback','callbackuniqueid','callbackat','recallme','ContactId','ListId','UserId','VoiceQueueId','CampaignId'];(function(_0xd6640b,_0x475e47){var _0x4c843e=function(_0x11040f){while(--_0x11040f){_0xd6640b['push'](_0xd6640b['shift']());}};_0x4c843e(++_0x475e47);}(_0x9061,0x135));var _0x1906=function(_0x182706,_0x57ee15){_0x182706=_0x182706-0x0;var _0x3a5d06=_0x9061[_0x182706];return _0x3a5d06;};'use strict';var util=require(_0x1906('0x0'));var _=require(_0x1906('0x1'));var moment=require('moment');function getSeconds(_0x2e9aba,_0x519bd0){var _0x2ceb32=moment(_0x2e9aba)[_0x1906('0x2')](0x0);var _0x25e8d1=moment(_0x519bd0)[_0x1906('0x2')](0x0);return _0x2ceb32[_0x1906('0x3')](_0x25e8d1,_0x1906('0x4'));}function Hangup(_0x516c3d,_0x12a634){this[_0x1906('0x5')]=0x4;this[_0x1906('0x6')]=_0x1906('0x7');this[_0x1906('0x8')]=_0x516c3d[_0x1906('0x8')];this[_0x1906('0x9')]=_0x516c3d['type'];this[_0x1906('0xa')]=_0x516c3d['type']===_0x1906('0xb')?'queue':_0x516c3d[_0x1906('0x9')];this[_0x1906('0xc')]=_0x516c3d[_0x1906('0xc')];this['countcongestionretry']=_0x516c3d[_0x1906('0xd')];this[_0x1906('0xe')]=_0x516c3d[_0x1906('0xe')];this['countglobal']=_0x516c3d[_0x1906('0xc')]+_0x516c3d['countcongestionretry']+_0x516c3d['countnoanswerretry']+_0x516c3d['countnosuchnumberretry']+_0x516c3d['countdropretry']+_0x516c3d[_0x1906('0xf')]+_0x516c3d[_0x1906('0x10')]+_0x516c3d[_0x1906('0x11')];this[_0x1906('0x12')]=_0x516c3d[_0x1906('0x12')];this[_0x1906('0x13')]=_0x516c3d[_0x1906('0x13')];this['countabandonedretry']=_0x516c3d[_0x1906('0xf')];this[_0x1906('0x10')]=_0x516c3d[_0x1906('0x10')];this['countagentrejectretry']=_0x516c3d[_0x1906('0x11')];this[_0x1906('0x14')]=_0x12a634[_0x1906('0x14')];this[_0x1906('0x15')]=_0x516c3d[_0x1906('0x16')];this[_0x1906('0x17')]=_0x516c3d[_0x1906('0x18')];this[_0x1906('0x19')]=_0x516c3d['starttime'];this['responsetime']=_0x516c3d[_0x1906('0x1a')];this['endtime']=moment()['format'](_0x1906('0x1b'));this[_0x1906('0x1c')]=getSeconds(_0x516c3d[_0x1906('0x1a')],_0x516c3d[_0x1906('0x19')]);this['holdtime']=0x0;this[_0x1906('0x1d')]=getSeconds(this[_0x1906('0x1e')],_0x516c3d[_0x1906('0x1a')]);this[_0x1906('0x1f')]=_0x516c3d['queue'];this['membername']=_0x1906('0x20');this[_0x1906('0x21')]=_0x12a634['cause-txt'];this['callback']=_0x516c3d[_0x1906('0x22')];this[_0x1906('0x23')]=_0x516c3d['callbackuniqueid'];this[_0x1906('0x24')]=_0x516c3d[_0x1906('0x24')];this['recallme']=_0x516c3d[_0x1906('0x25')];this[_0x1906('0x26')]=_0x516c3d[_0x1906('0x26')];this[_0x1906('0x27')]=_0x516c3d[_0x1906('0x27')];this[_0x1906('0x28')]=_0x516c3d[_0x1906('0x28')];this['VoiceQueueId']=_0x516c3d[_0x1906('0x29')];this[_0x1906('0x2a')]=_0x516c3d[_0x1906('0x2a')];}module[_0x1906('0x2b')]=Hangup;
\ No newline at end of file
+var _0x295e=['scheduledat','type','campaigntype','outbound','queue','countbusyretry','countcongestionretry','countnoanswerretry','countabandonedretry','countnosuchnumberretry','countdropretry','countmachineretry','countagentrejectretry','uniqueid','calleridname','calleridnum','starttime','responsetime','talktime','endtime','IVR','reason','callback','callbackuniqueid','callbackat','recallme','ContactId','ListId','VoiceQueueId','CampaignId','util','lodash','moment','milliseconds','diff','seconds','state','statedesc','Answer'];(function(_0x43941d,_0x45fd0d){var _0x27b82a=function(_0x21851e){while(--_0x21851e){_0x43941d['push'](_0x43941d['shift']());}};_0x27b82a(++_0x45fd0d);}(_0x295e,0x1f2));var _0xe295=function(_0x338075,_0xd6f15b){_0x338075=_0x338075-0x0;var _0x2280d1=_0x295e[_0x338075];return _0x2280d1;};'use strict';var util=require(_0xe295('0x0'));var _=require(_0xe295('0x1'));var moment=require(_0xe295('0x2'));function getSeconds(_0x3e2e03,_0x5b23ae){var _0x5564f1=moment(_0x3e2e03)[_0xe295('0x3')](0x0);var _0x65f939=moment(_0x5b23ae)[_0xe295('0x3')](0x0);return _0x5564f1[_0xe295('0x4')](_0x65f939,_0xe295('0x5'));}function Hangup(_0x3618a0,_0x25ca2a){this[_0xe295('0x6')]=0x4;this[_0xe295('0x7')]=_0xe295('0x8');this['scheduledat']=_0x3618a0[_0xe295('0x9')];this[_0xe295('0xa')]=_0x3618a0[_0xe295('0xa')];this[_0xe295('0xb')]=_0x3618a0[_0xe295('0xa')]===_0xe295('0xc')?_0xe295('0xd'):_0x3618a0[_0xe295('0xa')];this['countbusyretry']=_0x3618a0[_0xe295('0xe')];this[_0xe295('0xf')]=_0x3618a0[_0xe295('0xf')];this['countnoanswerretry']=_0x3618a0[_0xe295('0x10')];this['countglobal']=_0x3618a0[_0xe295('0xe')]+_0x3618a0[_0xe295('0xf')]+_0x3618a0['countnoanswerretry']+_0x3618a0['countnosuchnumberretry']+_0x3618a0['countdropretry']+_0x3618a0[_0xe295('0x11')]+_0x3618a0['countmachineretry']+_0x3618a0['countagentrejectretry'];this[_0xe295('0x12')]=_0x3618a0[_0xe295('0x12')];this[_0xe295('0x13')]=_0x3618a0[_0xe295('0x13')];this['countabandonedretry']=_0x3618a0['countabandonedretry'];this[_0xe295('0x14')]=_0x3618a0['countmachineretry'];this[_0xe295('0x15')]=_0x3618a0['countagentrejectretry'];this['uniqueid']=_0x25ca2a[_0xe295('0x16')];this[_0xe295('0x17')]=_0x3618a0['name'];this[_0xe295('0x18')]=_0x3618a0['number'];this[_0xe295('0x19')]=_0x3618a0[_0xe295('0x19')];this[_0xe295('0x1a')]=_0x3618a0[_0xe295('0x1a')];this['endtime']=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');this['ringtime']=getSeconds(_0x3618a0[_0xe295('0x1a')],_0x3618a0['starttime']);this['holdtime']=0x0;this[_0xe295('0x1b')]=getSeconds(this[_0xe295('0x1c')],_0x3618a0[_0xe295('0x1a')]);this[_0xe295('0xd')]=_0x3618a0[_0xe295('0xd')];this['membername']=_0xe295('0x1d');this[_0xe295('0x1e')]=_0x25ca2a['cause-txt'];this['callback']=_0x3618a0[_0xe295('0x1f')];this[_0xe295('0x20')]=_0x3618a0[_0xe295('0x20')];this[_0xe295('0x21')]=_0x3618a0[_0xe295('0x21')];this[_0xe295('0x22')]=_0x3618a0[_0xe295('0x22')];this['ContactId']=_0x3618a0[_0xe295('0x23')];this[_0xe295('0x24')]=_0x3618a0['ListId'];this['UserId']=_0x3618a0['UserId'];this[_0xe295('0x25')]=_0x3618a0[_0xe295('0x25')];this['CampaignId']=_0x3618a0[_0xe295('0x26')];}module['exports']=Hangup;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x896f=['countcongestionretry','countnosuchnumberretry','countdropretry','countabandonedretry','countmachineretry','countagentrejectretry','calleridname','name','calleridnum','number','starttime','responsetime','endtime','ringtime','holdtime','talktime','callback','callbackuniqueid','callbackat','ContactId','ListId','UserId','VoiceQueueId','CampaignId','originatecalleridnum','originatecalleridname','util','moment','milliseconds','diff','seconds','uniqueid','scheduledat','type','campaigntype','outbound','queue','countbusyretry','countnoanswerretry','countglobal'];(function(_0x465a0c,_0x19d4d5){var _0x1e202e=function(_0x27bd8a){while(--_0x27bd8a){_0x465a0c['push'](_0x465a0c['shift']());}};_0x1e202e(++_0x19d4d5);}(_0x896f,0x92));var _0xf896=function(_0x586fa2,_0x1a45bc){_0x586fa2=_0x586fa2-0x0;var _0x515be9=_0x896f[_0x586fa2];return _0x515be9;};'use strict';var util=require(_0xf896('0x0'));var _=require('lodash');var moment=require(_0xf896('0x1'));function getSeconds(_0x1f2195,_0x583267){var _0x54641c=moment(_0x1f2195)[_0xf896('0x2')](0x0);var _0x178b12=moment(_0x583267)[_0xf896('0x2')](0x0);return _0x54641c[_0xf896('0x3')](_0x178b12,_0xf896('0x4'));}function History(_0x3dabb2){this[_0xf896('0x5')]=_0x3dabb2[_0xf896('0x5')];this[_0xf896('0x6')]=_0x3dabb2['scheduledat']||undefined;this['type']=_0x3dabb2[_0xf896('0x7')];this[_0xf896('0x8')]=_0x3dabb2[_0xf896('0x7')]===_0xf896('0x9')?_0xf896('0xa'):_0x3dabb2[_0xf896('0x7')];this[_0xf896('0xb')]=_0x3dabb2[_0xf896('0xb')];this['countcongestionretry']=_0x3dabb2['countcongestionretry'];this[_0xf896('0xc')]=_0x3dabb2[_0xf896('0xc')];this[_0xf896('0xd')]=_0x3dabb2[_0xf896('0xb')]+_0x3dabb2[_0xf896('0xe')]+_0x3dabb2[_0xf896('0xc')]+_0x3dabb2[_0xf896('0xf')]+_0x3dabb2[_0xf896('0x10')]+_0x3dabb2[_0xf896('0x11')]+_0x3dabb2['countmachineretry']+_0x3dabb2['countagentrejectretry'];this[_0xf896('0xf')]=_0x3dabb2[_0xf896('0xf')];this[_0xf896('0x10')]=_0x3dabb2[_0xf896('0x10')];this['countabandonedretry']=_0x3dabb2[_0xf896('0x11')];this[_0xf896('0x12')]=_0x3dabb2[_0xf896('0x12')];this['countagentrejectretry']=_0x3dabb2[_0xf896('0x13')];this['queue']=_0x3dabb2[_0xf896('0xa')];this[_0xf896('0x14')]=_0x3dabb2[_0xf896('0x15')];this[_0xf896('0x16')]=_0x3dabb2[_0xf896('0x17')];this[_0xf896('0x18')]=_0x3dabb2[_0xf896('0x18')];this[_0xf896('0x19')]=_0x3dabb2[_0xf896('0x19')];this[_0xf896('0x1a')]=_0x3dabb2['responsetime'];this[_0xf896('0x1b')]=getSeconds(_0x3dabb2[_0xf896('0x19')],_0x3dabb2[_0xf896('0x18')]);this[_0xf896('0x1c')]=0x0;this[_0xf896('0x1d')]=0x0;this['callback']=_0x3dabb2[_0xf896('0x1e')];this['callbackuniqueid']=_0x3dabb2[_0xf896('0x1f')];this[_0xf896('0x20')]=_0x3dabb2['callbackat'];this['recallme']=_0x3dabb2['recallme'];this['ContactId']=_0x3dabb2[_0xf896('0x21')];this[_0xf896('0x22')]=_0x3dabb2[_0xf896('0x22')];this[_0xf896('0x23')]=_0x3dabb2[_0xf896('0x23')];this[_0xf896('0x24')]=_0x3dabb2[_0xf896('0x24')];this[_0xf896('0x25')]=_0x3dabb2['CampaignId'];this['originatecalleridnum']=_0x3dabb2[_0xf896('0x26')]||'';this[_0xf896('0x27')]=_0x3dabb2['originatecalleridname']||'';}module['exports']=History;
\ No newline at end of file
+var _0x9d8c=['originatecalleridname','exports','util','moment','diff','seconds','uniqueid','scheduledat','type','campaigntype','queue','countnoanswerretry','countglobal','countbusyretry','countcongestionretry','countnosuchnumberretry','countdropretry','countabandonedretry','countmachineretry','countagentrejectretry','calleridname','name','calleridnum','number','starttime','responsetime','endtime','holdtime','talktime','callback','callbackuniqueid','callbackat','recallme','ListId','UserId','VoiceQueueId','CampaignId','originatecalleridnum'];(function(_0x561bb4,_0x5d4ce2){var _0x41fc7b=function(_0x5e3cc9){while(--_0x5e3cc9){_0x561bb4['push'](_0x561bb4['shift']());}};_0x41fc7b(++_0x5d4ce2);}(_0x9d8c,0x158));var _0xc9d8=function(_0x56fbda,_0x534837){_0x56fbda=_0x56fbda-0x0;var _0xd89ac5=_0x9d8c[_0x56fbda];return _0xd89ac5;};'use strict';var util=require(_0xc9d8('0x0'));var _=require('lodash');var moment=require(_0xc9d8('0x1'));function getSeconds(_0x2777f1,_0xee3082){var _0x3b1369=moment(_0x2777f1)['milliseconds'](0x0);var _0x1285a3=moment(_0xee3082)['milliseconds'](0x0);return _0x3b1369[_0xc9d8('0x2')](_0x1285a3,_0xc9d8('0x3'));}function History(_0x68482d){this[_0xc9d8('0x4')]=_0x68482d[_0xc9d8('0x4')];this[_0xc9d8('0x5')]=_0x68482d['scheduledat']||undefined;this[_0xc9d8('0x6')]=_0x68482d['type'];this[_0xc9d8('0x7')]=_0x68482d[_0xc9d8('0x6')]==='outbound'?_0xc9d8('0x8'):_0x68482d[_0xc9d8('0x6')];this['countbusyretry']=_0x68482d['countbusyretry'];this['countcongestionretry']=_0x68482d['countcongestionretry'];this[_0xc9d8('0x9')]=_0x68482d[_0xc9d8('0x9')];this[_0xc9d8('0xa')]=_0x68482d[_0xc9d8('0xb')]+_0x68482d[_0xc9d8('0xc')]+_0x68482d[_0xc9d8('0x9')]+_0x68482d[_0xc9d8('0xd')]+_0x68482d[_0xc9d8('0xe')]+_0x68482d[_0xc9d8('0xf')]+_0x68482d[_0xc9d8('0x10')]+_0x68482d[_0xc9d8('0x11')];this['countnosuchnumberretry']=_0x68482d[_0xc9d8('0xd')];this[_0xc9d8('0xe')]=_0x68482d['countdropretry'];this[_0xc9d8('0xf')]=_0x68482d[_0xc9d8('0xf')];this['countmachineretry']=_0x68482d[_0xc9d8('0x10')];this[_0xc9d8('0x11')]=_0x68482d[_0xc9d8('0x11')];this[_0xc9d8('0x8')]=_0x68482d[_0xc9d8('0x8')];this[_0xc9d8('0x12')]=_0x68482d[_0xc9d8('0x13')];this[_0xc9d8('0x14')]=_0x68482d[_0xc9d8('0x15')];this[_0xc9d8('0x16')]=_0x68482d[_0xc9d8('0x16')];this[_0xc9d8('0x17')]=_0x68482d['responsetime'];this[_0xc9d8('0x18')]=_0x68482d['responsetime'];this['ringtime']=getSeconds(_0x68482d[_0xc9d8('0x17')],_0x68482d['starttime']);this[_0xc9d8('0x19')]=0x0;this[_0xc9d8('0x1a')]=0x0;this[_0xc9d8('0x1b')]=_0x68482d['callback'];this[_0xc9d8('0x1c')]=_0x68482d[_0xc9d8('0x1c')];this[_0xc9d8('0x1d')]=_0x68482d[_0xc9d8('0x1d')];this[_0xc9d8('0x1e')]=_0x68482d[_0xc9d8('0x1e')];this['ContactId']=_0x68482d['ContactId'];this[_0xc9d8('0x1f')]=_0x68482d[_0xc9d8('0x1f')];this[_0xc9d8('0x20')]=_0x68482d['UserId'];this['VoiceQueueId']=_0x68482d[_0xc9d8('0x21')];this[_0xc9d8('0x22')]=_0x68482d['CampaignId'];this[_0xc9d8('0x23')]=_0x68482d['originatecalleridnum']||'';this[_0xc9d8('0x24')]=_0x68482d['originatecalleridname']||'';}module[_0xc9d8('0x25')]=History;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x929f=['ListId','UserId','CampaignId','[emptyContact]','isSuccess','Success','isTrunkReachable','active','trunks','SIP/%s','unmonitored','uniqueid','variable','exten','dialAMDActive','value','HANGUP','outboundAnswerCallsDay','outboundAnswerAgiCallsDay','state','HangupInAMD','membername','AMD','buildObj','saveInDb','[syncHangupInAMD][createHistory]','MACHINE','countmachineretry','countglobal','custom:amd','amd','[syncAgentComplete][createHistory][0]','countbusyretry','countcongestionretry','countdropretry','countagentrejectretry','stateGlobal','reason19\x20machine....','createStateFinal','reason\x2019\x20machine....','dialMachineRetryFrequency','minutes','YYYY-MM-DD\x20HH:mm:ss','VoiceQueueId','[syncHangupInAMDIvr][createHistory]','[syncHangupInAMDIvr]','Machine','countnoanswerretry','countnosuchnumberretry','countabandonedretry','dialMachineMaxRetry','add','[rescheduleContact][Machine]','ivrAnswerCallsDay','[syncHangupIvr]','dialQueueProject','AnswerAGI','[syncHangupIvr][createHistory]','Unknow','syncAgentComplete','reason','agiafterat','dialAgiAfterHangupAgent','[syncAgentComplete][createHistory]','[syncAgentComplete]','queueCallerAbandonCreateState','[syncQueueCallerAbandon]\x20[Drop]','droptime','responsetime','Drop','dropreason','dialDropMaxRetry','dialDropRetryFrequency','[rescheduleContact][Drop]','starttime','calleridname','calleridnum','[syncAgentComplete][createHistory][10]','Abandoned','CALLEREXIT','dialAbandonedMaxRetry','dialAbandonedRetryFrequency','[rescheduleContact][Abandoned]','[syncAgentComplete][createHistory][11]','actionid','strategy','roundrobin','locked','paused','stateinterface','push','[unlockQueueStatus][undefined]','[booked][unlockQueueStatus]','run','idHopper','[Catch][Preview][syncQueueStatusComplete]','[unlock][syncQueueStatusComplete]','_rr','unlockRR','[booked][RR]','Agent:\x20','[booked][unlock2]','[unlock2][syncQueueStatusComplete]','[booked][unlock3]','[unlock3][syncQueueStatusComplete]','syncCampaigns','checkIsTrunkReachable','TrunkBackup','TRUNK_IS_NOT_REACHABLE','\x20trunk\x20is\x20not\x20reachable','checkIfTime','ifTime','checkIfTimeIntervals','Intervals','Failure','\x20Intervals\x20is\x20null\x20','INTERVAL_IS_EMPTY','TIMEZONE_UNKNOW','isArray','iftime\x20%s,%s','interval','timezones','indexOf','true','content','all','some','GLOBAL_INTERVAL_IS_OVERTIME','INTERVAL_IS_OVERTIME','[ifTime][promiseAll]','Global:\x20','\x20Interval\x20is\x20overtime:\x20','Timezone:\x20','dialMethod','power','handlePower','Queue','method\x20not\x20recognized','launchHandleIvr','handleIvr','dialGlobalInterval','dialTimezone','checkDialMethod','[syncQueueSummary]','[syncCampaigns]','pow','replace','random','match','actionOriginate','object','originate','voiceQueue\x20is\x20undefine','phone','Contact','contact\x20is\x20undefine','getCaller','\x22agi://%s/square,%s\x22','NONE','dialQueueProject2','\x22%s,%s%s,,,%s\x22','dialQueueTimeout','ACTIVE','XMD-AMDINITIALSILENCE','dialAMDInitialSilence','XMD-AMDAFTERGREETINGSILENCE','dialAMDAfterGreetingSilence','dialAMDTotalAnalysisTime','dialAMDMinWordLength','XMD-AMDBETWEENWORDSSILENCE','dialAMDBetweenWordsSilence','XMD-AMDMAXIMUMNUMBEROFWORDS','dialAMDMaximumNumberOfWords','XMD-AMDSILENCETHRESHOLD','dialAMDSilenceThreshold','XMD-AMDMAXIMUMWORDLENGTH','dialAMDMaximumWordLength','XMD-VOICEQUEUEID','XMD-CAMPAIGNID','tags','createdAt','updatedAt','XMD-','dialRandomLastDigitCallerIdNumber','XMD-ORIGINATECALLERIDNAME','originatecalleridname','originatecalleridnum','SIP/%s/%s%s','trim','dialCutDigit','substring','xcally-motion-dialer','from-sip','OriginateError','[originate][error]','Error','originate\x20action\x20Error','callProgressDetecting','dialNoAnswerMaxRetry','dialNoAnswerRetryFrequency','dialBusyMaxRetry','dialBusyRetryFrequency','[rescheduleContact]\x20[Busy]','dialCongestionMaxRetry','dialCongestionRetryFrequency','dialNoSuchNumberMaxRetry','dialNoSuchNumberRetryFrequency','[rescheduleContact][NoSuchNumber]','dialAgentRejectMaxRetry','dialAgentRejectRetryFrequency','[rescheduleContact][AgentReject]','[callProgressDetecting]','entity\x20is\x20undefine','evt\x20is\x20undefine','NoSuchNumber','custom:agentnosuchnumber','nosuchnumber','checkRetriveMax','reason\x200\x20no\x20such\x20number....','NoAnswer','custom:agentnoanswer','noanswer','[syncAgentComplete][createHistory][3]','reason\x203\x20ringing\x20no\x20answer','Busy','custom:agentbusy','busy','[syncAgentComplete][createHistory][5]','reason\x205\x20busy','custom:agentcongestion','congestion','[syncAgentComplete][createHistory][8]','reason\x208\x20congestion','outboundAbandonedCallsDay','reason\x2011\x20abandoned','custom:agentreject','[syncAgentComplete][createHistory][20]','reason\x2020\x20agentreject','[syncAgentComplete][createHistory][?]','[moveContactManagedDialer][0]','contact\x20not\x20moved','dialPredictiveOptimizationPercentage','round','predictiveIntervalMinThreshold','available','floor','[startMethodPredictive][StartProgressive]','collection\x20data\x20in\x20progressive\x20at','dialPredictiveInterval','[startMethodPredictive][StartProgressive][Loop]','dialPredictiveOptimization','dropRate','[stopMethodPredictive][ReStartProgressive][ExceededDropDay]','[stopMethodPredictive][ReStartProgressive][ExceededDropInterval]','Drop\x20in\x20this\x20interval','started\x20in\x20predictive\x20at','getDataPredictive','Predictive\x20after\x20first\x20interval','recalculate\x20predictive\x20at','startMethodPredictive',')\x20are\x20less\x20than\x20threshold\x20(','switch\x20in\x20progressive\x20because\x20available\x20agents\x20(',')\x20are\x20more\x20than\x20threshold\x20(','abandonmentRate','agentBusyFactor','[getDataPredictive]','Unknown\x20Predictive','getDataPredictiveOld','outboundQueuePauses','[CatchErlangB]','busyFactor','check\x20failure','[handlePredictive]','fail\x20to\x20scheduled\x20calls','booked','queueStatusComplete','queueStatusComplete:\x20','[unlockOriginate][syncQueueStatusComplete]','Queue:\x20','scheduledat','Agent','voicePause','[rescheduleContact][dialRecallInQueue]','RECALLINQUEUE','RecallInQueue','RECALLFAILEDTIMEOUT','RecallFailedTimeout','[Originate][HistoryRecallClose][historyCatch]','[Originate][HistoryRecallClose]','BLACKLIST','Blacklist','[Originate][MoveBlacklist]','inBlackList','dialOrderByScheduledAt','[getContactCampaign2][Empty]','RUNNING','emptyContact','[actionOriginate]\x20','Contact.phone','checkContactBlack','[actionOriginateIvr]\x20','[getContactCampaign2]','dialLimitQueue','not_inuse','[getContactDialer2]','[handlePredictive][limitChannel]','tryOriginatePredictive','[actionOriginatePredictive]\x20','M:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','Ts:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','Amax:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','[abandonmentRate]','m\x20=\x20','Ts\x20=\x20','p\x20=\x20','Amax\x20=\x20','----\x20Agent\x20Busy\x20Factor\x20----','P:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','[busyFactor]','interval\x20=\x20','Umin\x20=\x20','exports','util','lodash','bluebird','moment','md5','../preview/util/util','dialer','../../../config/logger','predictive','predictiveCalls','syncQueueSummary','redis','defaults','localhost','socket.io-emitter','../rpc/cmHopperHistory','./action','./history','./final','./agentComplete','./queueCallerAbandon','127.0.0.1','rrmemory','prototype','enqueue','tail','finally','preview','voiceQueues','campaigns','agents','maxNumberOriginate','channels','actions','uniqueId','optionPredictive','startPredictive','ivrOriginated','queueBooked','queueBookedRR','agentconnect','syncAgentConnect','queuecallerabandon','syncQueueCallerAbandon','originateresponse','syncOriginateResponse','bind','custom:queuesummary','hangup','syncHangup','syncNewExten','varset','syncVarSet','queuemember','syncQueueMember','syncQueueStatusComplete','loopClearZombieChannels','isUndefined','message','AGENTS_NOT_LOGGED','name','\x20AGENTS\x20NOT\x20LOGGED','NOT_ACTIVE','Interval','INTERVAL_IS_NULL','isEmpty','stringify','milliseconds','diff','seconds','emit','type','outbound','loggedIn','pTalking','sumDuration','sumHoldTime','talking','total','unmanaged','abandoned','loggedInDb','dialActive','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialOriginateTimeout','dialPrefix','outboundBlacklistCallsDay','outboundBusyCallsDay','outboundCongestionCallsDay','outboundDropCallsDayACS','outboundDropCallsDayCallersExit','outboundDropCallsDayTimeout','outboundNoAnswerCallsDay','outboundNoSuchCallsDay','outboundOriginateFailureCallsDay','outboundReCallsDay','outboundRejectCallsDay','outboundUnknownCallsDay','predictiveIntervalAnsweredCalls','predictiveIntervalAvgHoldtime','predictiveIntervalAvgTalktime','predictiveIntervalDroppedCallsCallersExit','predictiveIntervalDroppedCallsTimeout','predictiveIntervalErlangCallsDroppedCalls','predictiveIntervalHitRate','predictiveIntervalMultiplicativeFactor','predictiveIntervalPauses','predictiveIntervalAvailable','predictiveIntervalTotalCalls','erlangCalls','erlangCallToSecond','erlangAbandonmentRate','erlangBusyFactor','Trunk','callerid','format','voice:queue:%s','voice_queue:save','ivr','info','-----\x20Stats\x20Predictive\x20---','Total\x20Calls:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','Answered\x20Calls:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','Dropped\x20Exit:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','AVG\x20Hold\x20Time:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','---------------------------','Avg\x20Talk\x20Time\x20is\x20not\x20enough\x20for\x20predictive','Total\x20Calls\x20are\x20not\x20enough\x20for\x20predictive','History\x20information\x20are\x20empty','---------\x20ErlangB\x20---------','Scheduled\x20Calls:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','Drop\x20Rate:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','Agent\x20Busy\x20Factor:\x20\x20\x20\x20\x20\x20\x20\x20\x20','merge','startProgressive','clearing\x20variable\x20start\x20progressive','clearing\x20variable\x20start\x20predictive','handlePredictive','clearing\x20variable\x20handle\x20predictive','string','\x22%s\x22\x20<%s>','\x22\x22\x20<>','error','inspect','stack','length','originated','[decremetOriginate]\x20object\x20originated\x20is\x20negative','[decremetOriginate]\x20is\x20null\x20or\x20undefined','contactsRescheduled','RESCHEDULED_CONTACTS','[getContactDialer2][ReScheduled]','AVAILABLE_CONTACTS_FINISHED','[getContactDialer2][Empty]','sendMessageOneNotActive','waiting','[syncQueueSummary]\x20Campaign\x20Queue:\x20','IS_DISACTIVED','is\x20not\x20active','[syncQueueSummary]\x20Campaign\x20Ivr:\x20','is\x20disactive','statedesc','endtime','[uniqueid]','clearZombieChannels','[actions]','undefined','sequence','isNil','Action','status','channel','catch','No\x20such\x20channel','updateOriginated','queue','[Dialer][checkChannel]','[Dialer][checkChannel][ivr]','countReScheduled','resolve','[countReScheduled]\x20','checkIsBlackList','[checkIsBlackList]\x20','checkIsBlackListIvr','then','averageHandleTime','rescheduleContact','unlockContact','[unlockContact]\x20','getContactDialer','temp','[getContactDialer]\x20','getContactDialerIvr','[getContactDialerIvr]\x20','getVoiceQueueRtPauses','[getVoiceQueueRtPauses]\x20','moveContactManagedDialer','createHistory','[createHistory]\x20','[updateOriginated]\x20object\x20originated\x20is\x20negative','[updateOriginated]\x20is\x20null\x20or\x20undefined','loggerHandler','notFound','pick','ContactId'];(function(_0x31cc7f,_0x3f7e82){var _0x75322c=function(_0x2be02f){while(--_0x2be02f){_0x31cc7f['push'](_0x31cc7f['shift']());}};_0x75322c(++_0x3f7e82);}(_0x929f,0x142));var _0xf929=function(_0x541259,_0x167bc5){_0x541259=_0x541259-0x0;var _0x33b9fc=_0x929f[_0x541259];return _0x33b9fc;};'use strict';var util=require(_0xf929('0x0'));var _=require(_0xf929('0x1'));var BPromise=require(_0xf929('0x2'));var uuid=require('uuid');var moment=require(_0xf929('0x3'));var rr=require('rr');var md5=require(_0xf929('0x4'));var Redis=require('ioredis');var ut=require(_0xf929('0x5'));var config=require('../../../config/environment/');var logger=require('../../../config/logger')(_0xf929('0x6'));var loggerBooked=require(_0xf929('0x7'))('booked');var loggerPredictive=require(_0xf929('0x7'))(_0xf929('0x8'));var loggerPredictiveCalls=require('../../../config/logger')(_0xf929('0x9'));var loggerSyncQueueSummary=require('../../../config/logger')(_0xf929('0xa'));var ami=require('../ami');config[_0xf929('0xb')]=_[_0xf929('0xc')](config['redis'],{'host':_0xf929('0xd'),'port':0x18eb});var io=require(_0xf929('0xe'))(new Redis(config[_0xf929('0xb')]));var cmHopper=require('../rpc/cmHopper');var cmHopperHistory=require(_0xf929('0xf'));var cmHopperBlack=require('../rpc/cmHopperBlack');var voiceQueueRt=require('../rpc/voiceQueueRt');var Action=require(_0xf929('0x10'));var History=require(_0xf929('0x11'));var Final=require(_0xf929('0x12'));var AgentComplete=require(_0xf929('0x13'));var QueueCallerAbandon=require(_0xf929('0x14'));var Hangup=require('./hangup');var ipAgi=process['env']['XCALLY_IP_AGI']||_0xf929('0x15');var strategy={'rrmemory':_0xf929('0x16'),'roundrobin':'roundrobin'};var Sequence=function(){};Sequence[_0xf929('0x17')][_0xf929('0x18')]=function(_0x462ed4){this[_0xf929('0x19')]=this[_0xf929('0x19')]?this[_0xf929('0x19')][_0xf929('0x1a')](_0x462ed4):_0x462ed4();};function Dialer(_0x1ce33a,_0x46392a){this['sequence']=new Sequence();this[_0xf929('0x1b')]=_0x46392a;this[_0xf929('0x1c')]=_0x1ce33a[_0xf929('0x1c')];this[_0xf929('0x1d')]=_0x1ce33a[_0xf929('0x1d')];this['agents']=_0x1ce33a[_0xf929('0x1e')];this['trunks']=_0x1ce33a['trunks'];this['maxNumberOriginate']=config[_0xf929('0x1f')]||0x2;this[_0xf929('0x20')]={};this[_0xf929('0x21')]={};this['contactsId']={};this[_0xf929('0x22')]={};this[_0xf929('0x23')]={};this[_0xf929('0x24')]={};this['startProgressive']={};this[_0xf929('0x25')]={};this[_0xf929('0x26')]={};this[_0xf929('0x27')]={};ami['on'](_0xf929('0x28'),this[_0xf929('0x29')]['bind'](this));ami['on'](_0xf929('0x2a'),this[_0xf929('0x2b')]['bind'](this));ami['on'](_0xf929('0x2c'),this[_0xf929('0x2d')]['bind'](this));ami['on']('agentcomplete',this['syncAgentComplete'][_0xf929('0x2e')](this));ami['on'](_0xf929('0x2f'),this['syncQueueSummary'][_0xf929('0x2e')](this));ami['on'](_0xf929('0x30'),this[_0xf929('0x31')][_0xf929('0x2e')](this));ami['on']('newexten',this[_0xf929('0x32')][_0xf929('0x2e')](this));ami['on'](_0xf929('0x33'),this[_0xf929('0x34')][_0xf929('0x2e')](this));ami['on'](_0xf929('0x35'),this[_0xf929('0x36')][_0xf929('0x2e')](this));ami['on']('queuestatuscomplete',this[_0xf929('0x37')]['bind'](this));this['loopCampaigns']();this[_0xf929('0x38')]();}function isNotNull(_0x210037){return _0x210037!==null&&!_[_0xf929('0x39')](_0x210037);}function checkIsLoggedIn(_0x3e81b6,_0x3fc9e6){return function(){if(_0x3fc9e6<=0x0){_0x3e81b6[_0xf929('0x3a')]=_0xf929('0x3b');throw _0x3e81b6[_0xf929('0x3c')]+_0xf929('0x3d');}};}function isActive(_0x5a13e0){return _0x5a13e0;}function checkIsActive(_0x5e818d,_0x1da7e4){return function(){if(!isActive(_0x1da7e4)){_0x5e818d[_0xf929('0x3a')]=_0xf929('0x3e');throw _0x5e818d['name']+'\x20NOT\x20Active';}};}function checkInterval(_0x90f1b8){return function(){if(!isNotNull(_0x90f1b8[_0xf929('0x3f')])){_0x90f1b8[_0xf929('0x3a')]=_0xf929('0x40');throw _0x90f1b8['name']+'\x20INTERVAL_IS_NULL';}if(!isNotNull(_0x90f1b8[_0xf929('0x3f')]['Intervals'])){_0x90f1b8[_0xf929('0x3a')]='INTERVAL_IS_NULL';throw _0x90f1b8[_0xf929('0x3c')]+'\x20INTERVAL_IS_NULL';}if(!isNotNull(_[_0xf929('0x41')](_0x90f1b8['Interval']['Intervals']))){_0x90f1b8[_0xf929('0x3a')]=_0xf929('0x40');throw _0x90f1b8[_0xf929('0x3c')]+'\x20INTERVAL_IS_NULL';}};}function msgResponse(_0x187dfd,_0x27391a,_0x5c439f){return{'action':_0x187dfd,'response':_0x27391a,'message':_0x5c439f,'stack':_0x5c439f};}function myreject(_0x295273){return function(_0x52590d){return _0x295273(msgResponse('[ifTime][Action]','Error',JSON[_0xf929('0x42')](_0x52590d)));};}function getSeconds(_0x5988c0,_0x2f937b){var _0x5ce206=moment(_0x5988c0)[_0xf929('0x43')](0x0);var _0x77db3=moment(_0x2f937b)[_0xf929('0x43')](0x0);return _0x5ce206[_0xf929('0x44')](_0x77db3,_0xf929('0x45'));}function emit(_0x148ba7,_0x7feb6e,_0x27dc60){io['to'](_0x148ba7)[_0xf929('0x46')](_0x7feb6e,_0x27dc60);}function emitVoiceQueueSummary(_0x25b5d3){if(_0x25b5d3[_0xf929('0x47')]===_0xf929('0x48')){var _0x5c47f0={'id':_0x25b5d3['id'],'name':_0x25b5d3[_0xf929('0x3c')],'strategy':_0x25b5d3['strategy'],'answered':_0x25b5d3['answered'],'available':_0x25b5d3['available'],'loggedIn':_0x25b5d3[_0xf929('0x49')],'pTalking':_0x25b5d3[_0xf929('0x4a')],'sumBillable':_0x25b5d3['sumBillable'],'sumDuration':_0x25b5d3[_0xf929('0x4b')],'sumHoldTime':_0x25b5d3[_0xf929('0x4c')]||0x0,'talking':_0x25b5d3[_0xf929('0x4d')],'total':_0x25b5d3[_0xf929('0x4e')],'type':_0x25b5d3[_0xf929('0x47')],'unmanaged':_0x25b5d3[_0xf929('0x4f')],'abandoned':_0x25b5d3[_0xf929('0x50')],'waiting':_0x25b5d3['waiting'],'loggedInDb':_0x25b5d3[_0xf929('0x51')],'dialActive':_0x25b5d3[_0xf929('0x52')],'dialMethod':_0x25b5d3['dialMethod'],'dialOriginateCallerIdName':_0x25b5d3[_0xf929('0x53')],'dialOriginateCallerIdNumber':_0x25b5d3[_0xf929('0x54')],'dialOriginateTimeout':_0x25b5d3[_0xf929('0x55')],'dialPrefix':_0x25b5d3[_0xf929('0x56')],'outboundAnswerAgiCallsDay':_0x25b5d3['outboundAnswerAgiCallsDay'],'outboundAnswerCallsDay':_0x25b5d3['outboundAnswerCallsDay'],'outboundBlacklistCallsDay':_0x25b5d3[_0xf929('0x57')],'outboundBusyCallsDay':_0x25b5d3[_0xf929('0x58')],'outboundCongestionCallsDay':_0x25b5d3[_0xf929('0x59')],'outboundDropCallsDayACS':_0x25b5d3[_0xf929('0x5a')],'outboundDropCallsDayCallersExit':_0x25b5d3[_0xf929('0x5b')],'outboundDropCallsDayTimeout':_0x25b5d3[_0xf929('0x5c')],'outboundNoAnswerCallsDay':_0x25b5d3[_0xf929('0x5d')],'outboundNoSuchCallsDay':_0x25b5d3[_0xf929('0x5e')],'outboundOriginateFailureCallsDay':_0x25b5d3[_0xf929('0x5f')],'outboundReCallsDay':_0x25b5d3[_0xf929('0x60')],'outboundRejectCallsDay':_0x25b5d3[_0xf929('0x61')],'outboundUnknownCallsDay':_0x25b5d3[_0xf929('0x62')],'predictiveIntervalAnsweredCalls':_0x25b5d3[_0xf929('0x63')],'predictiveIntervalAvgHoldtime':_0x25b5d3[_0xf929('0x64')],'predictiveIntervalAvgTalktime':_0x25b5d3[_0xf929('0x65')],'predictiveIntervalDroppedCallsCallersExit':_0x25b5d3[_0xf929('0x66')],'predictiveIntervalDroppedCallsTimeout':_0x25b5d3[_0xf929('0x67')],'predictiveIntervalErlangCalls':_0x25b5d3['predictiveIntervalErlangCalls'],'predictiveIntervalErlangCallsDroppedCalls':_0x25b5d3[_0xf929('0x68')],'predictiveIntervalHitRate':_0x25b5d3[_0xf929('0x69')],'predictiveIntervalMultiplicativeFactor':_0x25b5d3[_0xf929('0x6a')],'predictiveIntervalPauses':_0x25b5d3[_0xf929('0x6b')],'predictiveIntervalAvailable':_0x25b5d3[_0xf929('0x6c')],'predictiveIntervalTotalCalls':_0x25b5d3[_0xf929('0x6d')],'message':_0x25b5d3['message'],'originated':_0x25b5d3['originated'],'erlangCalls':_0x25b5d3[_0xf929('0x6e')],'erlangCallToSecond':_0x25b5d3[_0xf929('0x6f')],'erlangAbandonmentRate':_0x25b5d3[_0xf929('0x70')],'erlangBusyFactor':_0x25b5d3[_0xf929('0x71')],'startPredictive':_0x25b5d3[_0xf929('0x24')],'startProgressive':_0x25b5d3['startProgressive']};if(_0x25b5d3[_0xf929('0x72')]){_0x5c47f0[_0xf929('0x72')]={'id':_0x25b5d3[_0xf929('0x72')]['id'],'name':_0x25b5d3[_0xf929('0x72')]['name'],'active':_0x25b5d3[_0xf929('0x72')]['active'],'callerid':_0x25b5d3[_0xf929('0x72')][_0xf929('0x73')]};}if(_0x25b5d3[_0xf929('0x3f')]){_0x5c47f0[_0xf929('0x3f')]={'id':_0x25b5d3[_0xf929('0x3f')]['id'],'name':_0x25b5d3['Interval'][_0xf929('0x3c')]};}var _0x5cbfc0=md5(JSON[_0xf929('0x42')](_0x5c47f0));if(_0x25b5d3[_0xf929('0x4')]!==_0x5cbfc0){_0x25b5d3[_0xf929('0x4')]=_0x5cbfc0;emit(util[_0xf929('0x74')](_0xf929('0x75'),_0x5c47f0[_0xf929('0x3c')]),_0xf929('0x76'),_0x5c47f0);}}}function emitCampaignSummary(_0x2eb64c){if(_0x2eb64c['type']===_0xf929('0x77')){emit(util['format']('campaign:ivr:%s',_0x2eb64c[_0xf929('0x3c')]),'campaign:save',_0x2eb64c);}}function checkGetDataPredictive(_0x25cd2f){if(isNotNull(_0x25cd2f)&&!_[_0xf929('0x41')](_0x25cd2f)){loggerPredictive[_0xf929('0x78')](_0xf929('0x79'));loggerPredictive[_0xf929('0x78')](_0xf929('0x7a'),_0x25cd2f[_0xf929('0x6d')]);loggerPredictive['info'](_0xf929('0x7b'),_0x25cd2f[_0xf929('0x63')]);loggerPredictive[_0xf929('0x78')]('Dropped\x20Timeout:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x25cd2f[_0xf929('0x67')]);loggerPredictive['info'](_0xf929('0x7c'),_0x25cd2f[_0xf929('0x66')]);loggerPredictive['info'](_0xf929('0x7d'),_0x25cd2f['predictiveIntervalAvgHoldtime']);loggerPredictive[_0xf929('0x78')]('AVG\x20Talk\x20Time:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x25cd2f[_0xf929('0x65')]);loggerPredictive[_0xf929('0x78')](_0xf929('0x7e'));if(_0x25cd2f['predictiveIntervalTotalCalls']>0x0){if(!_[_0xf929('0x39')](_0x25cd2f[_0xf929('0x65')])&&_0x25cd2f['predictiveIntervalAvgTalktime']>0x0){return!![];}loggerPredictive[_0xf929('0x78')](_0xf929('0x7f'));if(!_[_0xf929('0x39')](_0x25cd2f[_0xf929('0x64')])&&_0x25cd2f[_0xf929('0x64')]>0x0){return!![];}loggerPredictive[_0xf929('0x78')]('Avg\x20Hold\x20Time\x20is\x20not\x20enough\x20for\x20predictive');}else{loggerPredictive[_0xf929('0x78')](_0xf929('0x80'));}}else{loggerPredictive[_0xf929('0x78')](_0xf929('0x81'));}return![];}function mergeDataErlangB(_0x8d43e7){return function(_0x3f0b){loggerPredictive['info'](_0xf929('0x82'));loggerPredictive[_0xf929('0x78')](_0xf929('0x83'),_0x3f0b[_0xf929('0x6e')]);loggerPredictive[_0xf929('0x78')]('One\x20call\x20every:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x3f0b[_0xf929('0x6f')]);loggerPredictive[_0xf929('0x78')](_0xf929('0x84'),_0x3f0b[_0xf929('0x70')]);loggerPredictive['info'](_0xf929('0x85'),_0x3f0b['erlangBusyFactor']);loggerPredictive[_0xf929('0x78')](_0xf929('0x84'),_0x3f0b[_0xf929('0x70')]);loggerPredictive[_0xf929('0x78')](_0xf929('0x7e'));_[_0xf929('0x86')](_0x8d43e7,_0x3f0b);};}function getDiff(_0x3f57c3){var _0x1cdd4a=moment()[_0xf929('0x43')](0x0);var _0x4162fe=moment(_0x3f57c3)[_0xf929('0x43')](0x0);return _0x1cdd4a['diff'](_0x4162fe,_0xf929('0x45'));}function ifInterval(_0x49dec5,_0x302edc){if(_[_0xf929('0x39')](_0x302edc)){return![];}return getDiff(_0x302edc)<_0x49dec5*0x3c;}function freeVariablesPredictive(_0x131e01){if(isNotNull(_0x131e01)){if(!_[_0xf929('0x39')](_0x131e01['startProgressive'])){_0x131e01[_0xf929('0x87')]=undefined;loggerPredictive['info'](_0x131e01['name'],_0xf929('0x88'));}if(!_[_0xf929('0x39')](_0x131e01['startPredictive'])){_0x131e01[_0xf929('0x24')]=undefined;loggerPredictive[_0xf929('0x78')](_0x131e01[_0xf929('0x3c')],_0xf929('0x89'));}if(!_[_0xf929('0x39')](_0x131e01[_0xf929('0x8a')])){clearInterval(_0x131e01[_0xf929('0x8a')]);_0x131e01['handlePredictive']=undefined;loggerPredictive[_0xf929('0x78')](_0x131e01['name'],_0xf929('0x8b'));}}}function erlangb(_0x3b6d31,_0x1fab82){if(_0x1fab82===0x0){return 0x0;}var _0x2149c2=0x1;for(var _0x24c102=0x1;_0x24c102<=_0x1fab82;_0x24c102+=0x1){_0x2149c2=0x1+_0x2149c2*_0x24c102/_0x3b6d31;}return 0x1/_0x2149c2;}function isVoiceQueueOutbound(_0x40b20c){return _0x40b20c===_0xf929('0x48');}function isNotPreview(_0x310e4a){return _0x310e4a!==_0xf929('0x1b');}function isCampaignIvr(_0x48bdb8){return _0x48bdb8==='ivr';}function getCallerId(_0x4c8744,_0x54ac72,_0x5a3ca8){if(!_[_0xf929('0x39')](_0x5a3ca8)&&typeof _0x5a3ca8===_0xf929('0x8c')&&!_[_0xf929('0x41')](_0x5a3ca8)){if(!_[_0xf929('0x39')](_0x54ac72)&&typeof _0x54ac72===_0xf929('0x8c')&&!_[_0xf929('0x41')](_0x54ac72)){return util[_0xf929('0x74')](_0xf929('0x8d'),_0x54ac72,_0x5a3ca8);}return util[_0xf929('0x74')](_0xf929('0x8d'),_0x5a3ca8,_0x5a3ca8);}if(!_[_0xf929('0x39')](_0x4c8744)&&typeof _0x4c8744===_0xf929('0x8c')&&!_[_0xf929('0x41')](_0x4c8744)){return _0x4c8744;}return _0xf929('0x8e');}function loggerCatchQueueSummary(_0x64d647,_0x8c00c5){return function(_0x202012){freeVariablesPredictive(_0x8c00c5);emitVoiceQueueSummary(_0x8c00c5);emitCampaignSummary(_0x8c00c5);loggerSyncQueueSummary[_0xf929('0x8f')](_0x64d647,util[_0xf929('0x90')](_0x202012,{'showHidden':![],'depth':null}));};}function loggerCatchPredictive(_0x1a3ce0,_0x38bec4){return function(_0x2c9969){loggerPredictive[_0xf929('0x8f')](_0x38bec4[_0xf929('0x3c')],_0x1a3ce0);loggerPredictive[_0xf929('0x8f')](_0x2c9969[_0xf929('0x91')]);freeVariablesPredictive(_0x38bec4);};}function loggerCatch(_0x4f2f78){return function(_0xf0acca){logger[_0xf929('0x8f')](_0x4f2f78,util['inspect'](_0xf0acca,{'showHidden':![],'depth':null}));};}function checkContactEmpty(_0x3400e9){return _0x3400e9&&!_['isUndefined'](_0x3400e9)&&_0x3400e9[_0xf929('0x92')]>0x0;}function decremetOriginate(_0x321e61){if(!_[_0xf929('0x39')](_0x321e61)&&_0x321e61!==null){if(typeof _0x321e61[_0xf929('0x93')]!=='undefined'){if(_0x321e61[_0xf929('0x93')]>0x0){_0x321e61[_0xf929('0x93')]-=0x1;}else{logger[_0xf929('0x8f')](_0xf929('0x94'));}}}else{logger[_0xf929('0x8f')](_0xf929('0x95'));}}function checkContactLowerLimitOriginate(_0x42b175,_0x3379a1,_0x2e2ae8){if(_0x3379a1>_0x2e2ae8){for(var _0x1fb7d4=0x0;_0x1fb7d4<_0x3379a1-_0x2e2ae8;_0x1fb7d4+=0x1){decremetOriginate(_0x42b175);}}}function loggerGetContactDialer(_0x5328fb,_0x3df5c8,_0x1995fc){return function(_0x223d6c){checkContactLowerLimitOriginate(_0x3df5c8,_0x1995fc,0x0);logger[_0xf929('0x8f')](_0x5328fb,util['inspect'](_0x223d6c,{'showHidden':![],'depth':null}));};}function sendMessageReschedule(_0x24d984){return function(_0x59ccc9){if(isNotNull(_0x59ccc9)&&isNotNull(_0x59ccc9[0x0])){if(_0x59ccc9[0x0][_0xf929('0x96')]>0x0){_0x24d984[_0xf929('0x3a')]=_0xf929('0x97');logger[_0xf929('0x78')](_0xf929('0x98')+_0x24d984[_0xf929('0x3c')],_0x59ccc9[0x0]['contactsRescheduled'],'contacts');}else{_0x24d984[_0xf929('0x3a')]=_0xf929('0x99');logger[_0xf929('0x78')](_0xf929('0x9a')+_0x24d984['name']);}}};}function notSendMessagesQueue(_0x2fb38d){if(_0x2fb38d[_0xf929('0x9b')]){freeVariablesPredictive(_0x2fb38d);if(_0x2fb38d[_0xf929('0x93')]===0x0&&_0x2fb38d[_0xf929('0x4d')]===0x0&&_0x2fb38d[_0xf929('0x9c')]===0x0&&(_0x2fb38d[_0xf929('0x4a')]||0x0)===0x0){_0x2fb38d['sendMessageOneNotActive']=![];_0x2fb38d['available']=0x0;_0x2fb38d[_0xf929('0x3a')]=_0xf929('0x3e');loggerSyncQueueSummary[_0xf929('0x8f')](_0xf929('0x9d'),_0x2fb38d['name'],'is\x20not\x20active');}else{_0x2fb38d[_0xf929('0x3a')]=_0xf929('0x9e');loggerSyncQueueSummary[_0xf929('0x8f')](_0xf929('0x9d'),_0x2fb38d['name'],'is\x20disactive');}emitVoiceQueueSummary(_0x2fb38d);}}function notSendMessagesCampaign(_0x3a9518){if(_0x3a9518[_0xf929('0x9b')]){if(_0x3a9518['originated']===0x0){_0x3a9518['sendMessageOneNotActive']=![];_0x3a9518[_0xf929('0x3a')]=_0xf929('0x3e');loggerSyncQueueSummary['error']('[syncQueueSummary]\x20Campaign\x20Ivr:\x20',_0x3a9518[_0xf929('0x3c')],_0xf929('0x9f'));}else{_0x3a9518['message']='IS_DISACTIVED';loggerSyncQueueSummary[_0xf929('0x8f')](_0xf929('0xa0'),_0x3a9518[_0xf929('0x3c')],_0xf929('0xa1'));}emitCampaignSummary(_0x3a9518);}}function createObjHistory(_0x864a3f,_0x5cc575,_0x794f7b,_0x5c0b97,_0x4fdb4a){_0x864a3f[_0xf929('0x3a')]=_0x794f7b;var _0x203027=new Action(_0x864a3f,_0x5cc575);var _0x44aa46=new History(_0x203027);_0x44aa46['state']=_0x5c0b97;_0x44aa46[_0xf929('0xa2')]=_0x4fdb4a;_0x44aa46[_0xf929('0xa3')]=_0x203027['starttime'];return _0x44aa46;}Dialer[_0xf929('0x17')]['loopClearZombieChannels']=function(){var _0x3cba2b=this;setInterval(function(){_0x3cba2b['clearZombieChannels'](_0x3cba2b['uniqueId'],_0xf929('0xa4'));_0x3cba2b[_0xf929('0xa5')](_0x3cba2b['actions'],_0xf929('0xa6'));},0x32c8);};Dialer['prototype']['clearZombieChannels']=function(_0x1048c4,_0x1e1d92){var _0x2df0f5=this;for(var _0x51f0f8 in _0x1048c4){if(typeof _0x1048c4[_0x51f0f8]!==_0xf929('0xa7')){this[_0xf929('0xa8')][_0xf929('0x18')](function(){if(!_[_0xf929('0xa9')](_0x1048c4[_0x51f0f8])){return ami[_0xf929('0xaa')]({'action':_0xf929('0xab'),'channel':_0x1048c4[_0x51f0f8][_0xf929('0xac')]})[_0xf929('0xad')](function(_0x3746de){if(_0x3746de[_0xf929('0x3a')]===_0xf929('0xae')){setTimeout(function(){if(_0x1048c4[_0x51f0f8]&&_0x1048c4[_0x51f0f8]['type']!=='ivr'){_0x2df0f5[_0xf929('0xaf')](_0x2df0f5[_0xf929('0x1c')][_0x1048c4[_0x51f0f8][_0xf929('0xb0')]]);logger[_0xf929('0x8f')](_0xf929('0xb1'),_0x1e1d92,_0x51f0f8,_0x1048c4[_0x51f0f8][_0xf929('0xb0')]);delete _0x1048c4[_0x51f0f8];}if(_0x1048c4[_0x51f0f8]&&_0x1048c4[_0x51f0f8][_0xf929('0x47')]==='ivr'){_0x2df0f5[_0xf929('0xaf')](_0x2df0f5[_0xf929('0x1d')][_0x1048c4[_0x51f0f8][_0xf929('0xb0')]]);logger[_0xf929('0x8f')](_0xf929('0xb2'),_0x1e1d92,_0x51f0f8,_0x1048c4[_0x51f0f8]['queue']);delete _0x1048c4[_0x51f0f8];}},0x2328);}});}});}}};Dialer[_0xf929('0x17')][_0xf929('0xb3')]=function(_0x41fd60){return BPromise[_0xf929('0xb4')]()['then'](cmHopper['countReScheduled'](_0x41fd60))['catch'](loggerCatch(_0xf929('0xb5')));};Dialer[_0xf929('0x17')][_0xf929('0xb6')]=function(_0x43aa55){return BPromise[_0xf929('0xb4')]()['then'](cmHopperBlack['checkIsBlackList'](_0x43aa55))[_0xf929('0xad')](loggerCatch(_0xf929('0xb7')));};Dialer[_0xf929('0x17')][_0xf929('0xb8')]=function(_0x2b7b3f){return BPromise[_0xf929('0xb4')]()[_0xf929('0xb9')](cmHopperBlack[_0xf929('0xb8')](_0x2b7b3f))[_0xf929('0xad')](loggerCatch('[checkIsBlackListIvr]\x20'));};Dialer[_0xf929('0x17')][_0xf929('0xba')]=function(_0x1f60b2){return BPromise['resolve']()[_0xf929('0xb9')](cmHopperHistory['avgHandleTime'](_0x1f60b2))['catch'](loggerCatch('[averageHandleTime]\x20'));};Dialer[_0xf929('0x17')][_0xf929('0xbb')]=function(_0x4d79c5){return BPromise[_0xf929('0xb4')]()[_0xf929('0xb9')](cmHopper[_0xf929('0xbb')](_0x4d79c5))[_0xf929('0xad')](loggerCatch('[rescheduleContact]\x20'));};Dialer['prototype'][_0xf929('0xbc')]=function(_0x539cd1,_0x1f6464,_0x5667e7){return BPromise['resolve']()[_0xf929('0xb9')](cmHopper['unlockContact'](_0x539cd1,_0x1f6464,_0x5667e7))[_0xf929('0xad')](loggerCatch(_0xf929('0xbd')));};Dialer[_0xf929('0x17')][_0xf929('0xbe')]=function(_0x3c79ae,_0x44d13e,_0x1f9c88,_0x164f91,_0x5bc038){return BPromise[_0xf929('0xb4')]()[_0xf929('0xb9')](cmHopper[_0xf929('0xbe')](_0x3c79ae,_0x44d13e,_0x1f9c88,_0x164f91))[_0xf929('0xad')](function(_0x2c014f){_0x5bc038[_0xf929('0xbf')]-=_0x1f9c88;_0x5bc038[_0xf929('0xbf')]=_0x5bc038['temp']>0x0?_0x5bc038[_0xf929('0xbf')]:0x0;loggerCatch(_0xf929('0xc0'))(_0x2c014f);});};Dialer['prototype'][_0xf929('0xc1')]=function(_0x4af6ce,_0x45d3a2,_0x2e14e5,_0x2726f4){return BPromise['resolve']()[_0xf929('0xb9')](cmHopper[_0xf929('0xc1')](_0x4af6ce,_0x45d3a2,_0x2e14e5))[_0xf929('0xad')](function(_0x1bc461){_0x2726f4['temp']-=_0x45d3a2;_0x2726f4[_0xf929('0xbf')]=_0x2726f4['temp']>0x0?_0x2726f4[_0xf929('0xbf')]:0x0;loggerCatch(_0xf929('0xc2'))(_0x1bc461);});};Dialer[_0xf929('0x17')][_0xf929('0xc3')]=function(_0x22fbd8){return BPromise[_0xf929('0xb4')]()[_0xf929('0xb9')](voiceQueueRt[_0xf929('0xc3')](_0x22fbd8))[_0xf929('0xad')](loggerCatch(_0xf929('0xc4')));};Dialer[_0xf929('0x17')][_0xf929('0xc5')]=function(_0x3dde80){return BPromise[_0xf929('0xb4')]()[_0xf929('0xb9')](cmHopper[_0xf929('0xc5')](_0x3dde80))[_0xf929('0xad')](loggerCatch('[moveContactManagedDialer]\x20'));};Dialer[_0xf929('0x17')][_0xf929('0xc6')]=function(_0x21e166){return BPromise[_0xf929('0xb4')]()[_0xf929('0xb9')](cmHopperHistory[_0xf929('0xc6')](_0x21e166))[_0xf929('0xad')](loggerCatch(_0xf929('0xc7')));};Dialer['prototype'][_0xf929('0xaf')]=function(_0x5d34c9){if(!_[_0xf929('0x39')](_0x5d34c9)&&_0x5d34c9!==null){if(typeof _0x5d34c9[_0xf929('0x93')]!==_0xf929('0xa7')){if(_0x5d34c9[_0xf929('0x93')]>0x0){_0x5d34c9[_0xf929('0x93')]-=0x1;}else{logger[_0xf929('0x8f')](_0xf929('0xc8'));}}}else{logger['error'](_0xf929('0xc9'));}};Dialer[_0xf929('0x17')][_0xf929('0xca')]=function(_0x1858a5,_0x141430){var _0x4c8d20=this;return function(_0x20ca10){_0x4c8d20[_0xf929('0xaf')](_0x141430);logger[_0xf929('0x8f')](_0x1858a5,util[_0xf929('0x90')](_0x20ca10,{'showHidden':![],'depth':null}));};};Dialer['prototype']['emptyContact']=function(_0x360be8,_0x235da0,_0x232600){var _0x57b46f={'state':0x19,'statedesc':_0xf929('0xcb')};this[_0xf929('0xaf')](_0x235da0);this['saveInDb'](_['merge'](_0x57b46f,_[_0xf929('0xcc')](_0x232600,[_0xf929('0xcd'),_0xf929('0xce'),_0xf929('0xcf'),'VoiceQueueId',_0xf929('0xd0')])),'[emptyContact][createHistory]',_0xf929('0xd1'));logger[_0xf929('0x8f')](_0x360be8);};Dialer['prototype'][_0xf929('0xd2')]=function(_0x419823){return _0x419823===_0xf929('0xd3');};Dialer[_0xf929('0x17')][_0xf929('0xd4')]=function(_0x5ebee6){return!_['isUndefined'](_0x5ebee6)&&_0x5ebee6&&!_[_0xf929('0x39')](_0x5ebee6[_0xf929('0x3c')])&&!_[_0xf929('0x39')](_0x5ebee6[_0xf929('0xd5')])&&_0x5ebee6['active']&&(this[_0xf929('0xd6')][util[_0xf929('0x74')]('SIP/%s',_0x5ebee6[_0xf929('0x3c')])]['status']==='reachable'||this[_0xf929('0xd6')][util[_0xf929('0x74')](_0xf929('0xd7'),_0x5ebee6[_0xf929('0x3c')])][_0xf929('0xab')]===_0xf929('0xd8'));};Dialer[_0xf929('0x17')]['saveInDb']=function(_0x2c87d5,_0x59a4ea,_0x5bd9a4){this[_0xf929('0xc6')](_0x2c87d5)[_0xf929('0xad')](loggerCatch(_0x59a4ea));this[_0xf929('0xc5')](_0x2c87d5)['catch'](loggerCatch(_0x5bd9a4));};Dialer[_0xf929('0x17')][_0xf929('0x34')]=function(_0xb17997){var _0x1c0baa=this[_0xf929('0x22')][_0xb17997[_0xf929('0xd9')]];var _0x436809;if(!_[_0xf929('0xa9')](_0xb17997)&&!_[_0xf929('0xa9')](_0xb17997[_0xf929('0xda')])&&!_[_0xf929('0xa9')](_0xb17997['variable']['amdstatus'])&&_0xb17997[_0xf929('0xdb')]==='xcally-motion-dialer'&&_0x1c0baa){if(_0x1c0baa['type']!==_0xf929('0x77')&&this[_0xf929('0x1c')][_0x1c0baa[_0xf929('0xb0')]][_0xf929('0xdc')]&&_0xb17997[_0xf929('0xdd')]===_0xf929('0xde')){delete this[_0xf929('0x22')][_0xb17997[_0xf929('0xd9')]];this[_0xf929('0xaf')](this[_0xf929('0x1c')][_0x1c0baa[_0xf929('0xb0')]]);this['voiceQueues'][_0x1c0baa[_0xf929('0xb0')]][_0xf929('0xdf')]+=0x1;this[_0xf929('0x1c')][_0x1c0baa[_0xf929('0xb0')]][_0xf929('0xe0')]+=0x1;_0x436809=new Hangup(_0x1c0baa,_0xb17997);_0x436809[_0xf929('0xe1')]=0x12;_0x436809[_0xf929('0xa2')]=_0xf929('0xe2');_0x436809[_0xf929('0xe3')]=_0xf929('0xe4');ami[_0xf929('0x46')]('custom:amd',ut[_0xf929('0xe5')](_0x436809,'amd'));this[_0xf929('0xe6')](_0x436809,_0xf929('0xe7'),'[syncHangupInAMD]');}if(_0x1c0baa['type']!==_0xf929('0x77')&&this['voiceQueues'][_0x1c0baa[_0xf929('0xb0')]][_0xf929('0xdc')]&&_0xb17997[_0xf929('0xdd')]===_0xf929('0xe8')){var _0x46c914=this;return new BPromise(function(_0x3aa049,_0x37bb9e){delete _0x46c914[_0xf929('0x22')][_0xb17997[_0xf929('0xd9')]];_0x46c914['updateOriginated'](_0x46c914['voiceQueues'][_0x1c0baa[_0xf929('0xb0')]]);_0x46c914[_0xf929('0x1c')][_0x1c0baa[_0xf929('0xb0')]][_0xf929('0xdf')]+=0x1;_0x46c914[_0xf929('0x1c')][_0x1c0baa[_0xf929('0xb0')]][_0xf929('0xe0')]+=0x1;var _0x1ccdca=_0x46c914['voiceQueues'][_0x1c0baa[_0xf929('0xb0')]];var _0x288593=new Hangup(_0x1c0baa,_0xb17997);_0x288593[_0xf929('0xe1')]=0x13;_0x288593[_0xf929('0xa2')]='Machine';_0x288593[_0xf929('0xe3')]=_0xf929('0xe4');_0x288593[_0xf929('0xe9')]+=0x1;_0x288593[_0xf929('0xea')]+=0x1;_0x288593['amd']=!![];ami[_0xf929('0x46')](_0xf929('0xeb'),ut[_0xf929('0xe5')](_0x288593,_0xf929('0xec')));_0x46c914['createHistory'](_0x288593)[_0xf929('0xad')](loggerCatch(_0xf929('0xed')));if(_0x288593[_0xf929('0xee')]+_0x288593[_0xf929('0xef')]+_0x288593['countnoanswerretry']+_0x288593['countnosuchnumberretry']+_0x288593[_0xf929('0xf0')]+_0x288593['countabandonedretry']+_0x288593[_0xf929('0xe9')]+_0x288593[_0xf929('0xf1')]>=_0x1ccdca['dialGlobalMaxRetry']){_0x46c914[_0xf929('0xf2')](_0x288593,_0x3aa049,_0x37bb9e,_0xf929('0xf3'));}else{if(_0x288593['countmachineretry']>=_0x1ccdca['dialMachineMaxRetry']){_0x46c914[_0xf929('0xf4')](_0x288593,_0x3aa049,_0x37bb9e,_0xf929('0xf5'));}else{_0x46c914['rescheduleContact']({'active':![],'countmachineretry':_0x288593[_0xf929('0xe9')],'scheduledat':moment()['add'](_0x1ccdca[_0xf929('0xf6')],_0xf929('0xf7'))['format'](_0xf929('0xf8')),'ContactId':_0x288593['ContactId'],'ListId':_0x288593[_0xf929('0xce')],'VoiceQueueId':_0x288593[_0xf929('0xf9')]||undefined,'CampaignId':_0x288593[_0xf929('0xd0')]||undefined})[_0xf929('0xad')](loggerCatch('[rescheduleContact][Machine]'));_0x3aa049({'reschedule':0x1});}}});}if(_0x1c0baa[_0xf929('0x47')]===_0xf929('0x77')&&this['campaigns'][_0x1c0baa[_0xf929('0xb0')]][_0xf929('0xdc')]&&_0xb17997[_0xf929('0xdd')]===_0xf929('0xde')){delete this[_0xf929('0x22')][_0xb17997[_0xf929('0xd9')]];this[_0xf929('0xaf')](this[_0xf929('0x1d')][_0x1c0baa[_0xf929('0xb0')]]);_0x436809=new Hangup(_0x1c0baa,_0xb17997);_0x436809[_0xf929('0xe1')]=0x12;_0x436809[_0xf929('0xa2')]=_0xf929('0xe2');_0x436809[_0xf929('0xe3')]=_0xf929('0xe4');ami[_0xf929('0x46')]('custom:amd',ut['buildObj'](_0x436809,_0xf929('0xec')));this[_0xf929('0xe6')](_0x436809,_0xf929('0xfa'),_0xf929('0xfb'));}if(_0x1c0baa[_0xf929('0x47')]===_0xf929('0x77')&&this[_0xf929('0x1d')][_0x1c0baa[_0xf929('0xb0')]]['dialAMDActive']&&_0xb17997[_0xf929('0xdd')]===_0xf929('0xe8')){var _0x46c914=this;return new BPromise(function(_0x38409e,_0x4136c2){delete _0x46c914[_0xf929('0x22')][_0xb17997[_0xf929('0xd9')]];_0x46c914[_0xf929('0xaf')](_0x46c914[_0xf929('0x1d')][_0x1c0baa[_0xf929('0xb0')]]);_0x46c914['campaigns'][_0x1c0baa[_0xf929('0xb0')]]['outboundAnswerCallsDay']+=0x1;_0x46c914['campaigns'][_0x1c0baa[_0xf929('0xb0')]][_0xf929('0xe0')]+=0x1;var _0x596b0c=_0x46c914[_0xf929('0x1d')][_0x1c0baa['queue']];var _0x2d06f4=new Hangup(_0x1c0baa,_0xb17997);_0x2d06f4[_0xf929('0xe1')]=0x13;_0x2d06f4['statedesc']=_0xf929('0xfc');_0x2d06f4[_0xf929('0xe3')]='AMD';_0x2d06f4[_0xf929('0xe9')]+=0x1;_0x2d06f4[_0xf929('0xea')]+=0x1;_0x2d06f4['amd']=!![];ami[_0xf929('0x46')]('custom:amd',ut[_0xf929('0xe5')](_0x2d06f4,'amd'));_0x46c914[_0xf929('0xc6')](_0x2d06f4)['catch'](loggerCatch(_0xf929('0xed')));if(_0x2d06f4[_0xf929('0xee')]+_0x2d06f4[_0xf929('0xef')]+_0x2d06f4[_0xf929('0xfd')]+_0x2d06f4[_0xf929('0xfe')]+_0x2d06f4['countdropretry']+_0x2d06f4[_0xf929('0xff')]+_0x2d06f4[_0xf929('0xe9')]+_0x2d06f4[_0xf929('0xf1')]>=_0x596b0c['dialGlobalMaxRetry']){_0x46c914[_0xf929('0xf2')](_0x2d06f4,_0x38409e,_0x4136c2,'reason19\x20machine....');}else{if(_0x2d06f4['countmachineretry']>=_0x596b0c[_0xf929('0x100')]){_0x46c914[_0xf929('0xf4')](_0x2d06f4,_0x38409e,_0x4136c2,_0xf929('0xf5'));}else{_0x46c914[_0xf929('0xbb')]({'active':![],'countmachineretry':_0x2d06f4[_0xf929('0xe9')],'scheduledat':moment()[_0xf929('0x101')](_0x596b0c[_0xf929('0xf6')],'minutes')[_0xf929('0x74')](_0xf929('0xf8')),'ContactId':_0x2d06f4[_0xf929('0xcd')],'ListId':_0x2d06f4['ListId'],'VoiceQueueId':_0x2d06f4[_0xf929('0xf9')]||undefined,'CampaignId':_0x2d06f4[_0xf929('0xd0')]||undefined})[_0xf929('0xad')](loggerCatch(_0xf929('0x102')));_0x38409e({'reschedule':0x1});}}});}}};Dialer[_0xf929('0x17')][_0xf929('0x31')]=function(_0xe91d44){var _0x323905=this[_0xf929('0x22')][_0xe91d44[_0xf929('0xd9')]];var _0x3cc731=this;var _0x47d1d3;if(_0x323905&&_0x323905[_0xf929('0x47')]===_0xf929('0x77')){delete this[_0xf929('0x22')][_0xe91d44[_0xf929('0xd9')]];this[_0xf929('0xaf')](this[_0xf929('0x1d')][_0x323905[_0xf929('0xb0')]]);this[_0xf929('0x1d')][_0x323905[_0xf929('0xb0')]][_0xf929('0x103')]+=0x1;_0x47d1d3=new Hangup(_0x323905,_0xe91d44);this[_0xf929('0xc6')](_0x47d1d3)['catch'](loggerCatch('[syncHangupIvr][createHistory]'));this[_0xf929('0xc5')](_0x47d1d3)['catch'](loggerCatch(_0xf929('0x104')));}if(_0x323905&&_0x323905[_0xf929('0x47')]!==_0xf929('0x77')&&isNotNull(this['voiceQueues'][_0x323905[_0xf929('0xb0')]][_0xf929('0x105')])){delete this[_0xf929('0x22')][_0xe91d44[_0xf929('0xd9')]];this['updateOriginated'](this['voiceQueues'][_0x323905['queue']]);this[_0xf929('0x1c')][_0x323905['queue']][_0xf929('0xdf')]+=0x1;this[_0xf929('0x1c')][_0x323905[_0xf929('0xb0')]][_0xf929('0xe0')]+=0x1;_0x47d1d3=new Hangup(_0x323905,_0xe91d44);_0x47d1d3[_0xf929('0xe1')]=0x10;_0x47d1d3[_0xf929('0xa2')]=_0xf929('0x106');_0x47d1d3['membername']='AGI';this['createHistory'](_0x47d1d3)[_0xf929('0xad')](loggerCatch(_0xf929('0x107')));this[_0xf929('0xc5')](_0x47d1d3)[_0xf929('0xad')](loggerCatch(_0xf929('0x104')));}if(_0x323905&&_0x323905[_0xf929('0x47')]!==_0xf929('0x77')&&!isNotNull(this[_0xf929('0x1c')][_0x323905[_0xf929('0xb0')]][_0xf929('0x105')])){delete this['uniqueId'][_0xe91d44['uniqueid']];this['updateOriginated'](this['voiceQueues'][_0x323905['queue']]);this[_0xf929('0x1c')][_0x323905[_0xf929('0xb0')]][_0xf929('0x62')]+=0x1;_0x47d1d3=new Hangup(_0x323905,_0xe91d44);_0x47d1d3['state']=0xc;_0x47d1d3[_0xf929('0xa2')]=_0xe91d44['cause-txt'];_0x47d1d3['membername']=_0xf929('0x108');this[_0xf929('0xc6')](_0x47d1d3)['catch'](loggerCatch(_0xf929('0x107')));this[_0xf929('0xc5')](_0x47d1d3)[_0xf929('0xad')](loggerCatch(_0xf929('0x104')));}};Dialer[_0xf929('0x17')][_0xf929('0x109')]=function(_0x29943b){var _0x27f082=this[_0xf929('0x22')][_0x29943b[_0xf929('0xd9')]];var _0x2d8f6b=this;if(this[_0xf929('0x1c')][_0x29943b[_0xf929('0xb0')]]){if(_0x27f082&&_0x27f082['type']!==_0xf929('0x77')){delete this[_0xf929('0x22')][_0x29943b[_0xf929('0xd9')]];this[_0xf929('0x1c')][_0x29943b[_0xf929('0xb0')]][_0xf929('0xdf')]+=0x1;var _0x5c80ea=new AgentComplete(_0x27f082,_0x29943b);if(_0x29943b[_0xf929('0x10a')]==='agent'){_0x5c80ea[_0xf929('0x10b')]=this[_0xf929('0x1c')][_0x29943b['queue']]['dialQueueProject2']&&this[_0xf929('0x1c')][_0x29943b[_0xf929('0xb0')]][_0xf929('0x10c')]?moment()[_0xf929('0x74')](_0xf929('0xf8')):undefined;}this['createHistory'](_0x5c80ea)[_0xf929('0xad')](loggerCatch(_0xf929('0x10d')));this[_0xf929('0xc5')](_0x5c80ea)[_0xf929('0xad')](loggerCatch(_0xf929('0x10e')));}}};Dialer[_0xf929('0x17')]['syncAgentConnect']=function(_0x79be3f){if(this[_0xf929('0x1c')][_0x79be3f['queue']]){if(this['uniqueId'][_0x79be3f['uniqueid']]&&this['uniqueId'][_0x79be3f[_0xf929('0xd9')]][_0xf929('0x47')]!==_0xf929('0x77')){this[_0xf929('0xaf')](this[_0xf929('0x1c')][_0x79be3f[_0xf929('0xb0')]]);this[_0xf929('0x22')][_0x79be3f['uniqueid']]['answertime']=moment()[_0xf929('0x74')](_0xf929('0xf8'));}}};Dialer[_0xf929('0x17')][_0xf929('0x10f')]=function(_0x1ebd88){this[_0xf929('0xc6')](_0x1ebd88)[_0xf929('0xad')](loggerCatch(_0xf929('0x10d')));this[_0xf929('0xc5')](_0x1ebd88)[_0xf929('0xad')](loggerCatch(_0xf929('0x110')));};Dialer['prototype'][_0xf929('0x2b')]=function(_0x4a6b79){var _0x212ece=this['uniqueId'][_0x4a6b79['uniqueid']];var _0x21121d=this;if(this[_0xf929('0x1c')][_0x4a6b79['queue']]){if(_0x212ece&&_0x212ece[_0xf929('0x47')]!=='ivr'){delete this[_0xf929('0x22')][_0x4a6b79[_0xf929('0xd9')]];this[_0xf929('0xaf')](this[_0xf929('0x1c')][_0x4a6b79[_0xf929('0xb0')]]);_0x212ece[_0xf929('0x111')]=moment()['format'](_0xf929('0xf8'));var _0x4400de=new QueueCallerAbandon(_0x212ece,_0x4a6b79);if(getSeconds(_0x212ece[_0xf929('0x111')],_0x212ece[_0xf929('0x112')])>=_0x212ece['dialQueueTimeout']){this[_0xf929('0x1c')][_0x4a6b79['queue']][_0xf929('0x67')]+=0x1;this[_0xf929('0x1c')][_0x4a6b79[_0xf929('0xb0')]][_0xf929('0x5c')]+=0x1;this['voiceQueues'][_0x4a6b79[_0xf929('0xb0')]][_0xf929('0x68')]+=0x1;_0x4400de[_0xf929('0xe1')]=0xa;_0x4400de[_0xf929('0xa2')]=_0xf929('0x113');_0x4400de[_0xf929('0x114')]='TIMEOUT';_0x4400de[_0xf929('0x10b')]=this[_0xf929('0x1c')][_0x4a6b79[_0xf929('0xb0')]]['dialQueueProject2']?moment()[_0xf929('0x74')](_0xf929('0xf8')):undefined;_0x4400de[_0xf929('0xf0')]+=0x1;_0x4400de[_0xf929('0xea')]+=0x1;if(_0x4400de['countdropretry']>=this['voiceQueues'][_0x4a6b79[_0xf929('0xb0')]][_0xf929('0x115')]){this[_0xf929('0x10f')](_0x4400de);}else{this[_0xf929('0xbb')]({'active':![],'countdropretry':_0x4400de['countdropretry'],'scheduledat':moment()[_0xf929('0x101')](this[_0xf929('0x1c')][_0x4a6b79['queue']][_0xf929('0x116')],_0xf929('0xf7'))[_0xf929('0x74')](_0xf929('0xf8')),'ContactId':_0x212ece[_0xf929('0xcd')],'ListId':_0x212ece[_0xf929('0xce')],'VoiceQueueId':_0x212ece[_0xf929('0xf9')]||undefined,'CampaignId':_0x212ece[_0xf929('0xd0')]||undefined})['catch'](loggerCatch(_0xf929('0x117')));var _0x108405=new History(_0x4400de);_0x108405['state']=0xa;_0x108405[_0xf929('0xa2')]=_0xf929('0x113');_0x108405[_0xf929('0x118')]=moment()[_0xf929('0x74')](_0xf929('0xf8'));_0x108405[_0xf929('0xa3')]=_0x108405[_0xf929('0x118')];_0x108405[_0xf929('0x119')]=_0x4400de[_0xf929('0x119')];_0x108405[_0xf929('0x11a')]=_0x4400de[_0xf929('0x11a')];this[_0xf929('0xc6')](_0x108405)[_0xf929('0xad')](loggerCatch(_0xf929('0x11b')));}}else{this[_0xf929('0x1c')][_0x4a6b79[_0xf929('0xb0')]][_0xf929('0x66')]+=0x1;this['voiceQueues'][_0x4a6b79[_0xf929('0xb0')]][_0xf929('0x5b')]+=0x1;_0x4400de[_0xf929('0xe1')]=0xb;_0x4400de['statedesc']=_0xf929('0x11c');_0x4400de['dropreason']=_0xf929('0x11d');_0x4400de[_0xf929('0xff')]+=0x1;_0x4400de[_0xf929('0xea')]+=0x1;if(_0x4400de[_0xf929('0xff')]>=this[_0xf929('0x1c')][_0x4a6b79[_0xf929('0xb0')]][_0xf929('0x11e')]){this[_0xf929('0x10f')](_0x4400de);}else{this[_0xf929('0xbb')]({'active':![],'countabandonedretry':_0x4400de[_0xf929('0xff')],'scheduledat':moment()['add'](this[_0xf929('0x1c')][_0x4a6b79['queue']][_0xf929('0x11f')],'minutes')[_0xf929('0x74')](_0xf929('0xf8')),'ContactId':_0x212ece[_0xf929('0xcd')],'ListId':_0x212ece[_0xf929('0xce')],'VoiceQueueId':_0x212ece['VoiceQueueId']||undefined,'CampaignId':_0x212ece['CampaignId']||undefined})[_0xf929('0xad')](loggerCatch(_0xf929('0x120')));var _0x108405=new History(_0x4400de);_0x108405[_0xf929('0xe1')]=0xb;_0x108405[_0xf929('0xa2')]='Abandoned';_0x108405['starttime']=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');_0x108405[_0xf929('0xa3')]=_0x108405[_0xf929('0x118')];_0x108405[_0xf929('0x119')]=_0x4400de[_0xf929('0x119')];_0x108405[_0xf929('0x11a')]=_0x4400de[_0xf929('0x11a')];this[_0xf929('0xc6')](_0x108405)[_0xf929('0xad')](loggerCatch(_0xf929('0x121')));}}}}};Dialer[_0xf929('0x17')][_0xf929('0x32')]=function(_0x854298){if(this[_0xf929('0x21')][_0x854298[_0xf929('0xd9')]]){this[_0xf929('0x21')][_0x854298[_0xf929('0xd9')]][_0xf929('0xac')]=_0x854298['channel'];}if(this['uniqueId'][_0x854298['uniqueid']]){this[_0xf929('0x22')][_0x854298[_0xf929('0xd9')]][_0xf929('0xac')]=_0x854298[_0xf929('0xac')];}};Dialer[_0xf929('0x17')][_0xf929('0x36')]=function(_0x3339fe){if(strategy[this[_0xf929('0x1c')][this['actions'][_0x3339fe[_0xf929('0x122')]][_0xf929('0xb0')]][_0xf929('0x123')]]===_0xf929('0x124')){if(this[_0xf929('0x21')][_0x3339fe[_0xf929('0x122')]]&&_['isNil'](this[_0xf929('0x21')][_0x3339fe[_0xf929('0x122')]][_0xf929('0x125')])&&_0x3339fe[_0xf929('0xab')]==='1'&&_0x3339fe[_0xf929('0x126')]==='0'){if(this[_0xf929('0x1e')][_0x3339fe['stateinterface']]){if(!this['agents'][_0x3339fe[_0xf929('0x127')]][_0xf929('0x125')]){this[_0xf929('0x1e')][_0x3339fe[_0xf929('0x127')]][_0xf929('0x125')]=!![];this[_0xf929('0x21')][_0x3339fe[_0xf929('0x122')]][_0xf929('0x125')]=!![];this[_0xf929('0x21')][_0x3339fe[_0xf929('0x122')]][_0xf929('0x127')]=_0x3339fe[_0xf929('0x127')];}}}}else if((strategy[this[_0xf929('0x1c')][this[_0xf929('0x21')][_0x3339fe['actionid']][_0xf929('0xb0')]][_0xf929('0x123')]]||_0xf929('0x16'))==='rrmemory'){if(this['actions'][_0x3339fe['actionid']]){if(this[_0xf929('0x1e')][_0x3339fe['stateinterface']]){this[_0xf929('0x21')][_0x3339fe[_0xf929('0x122')]]['stateinterface']=_0x3339fe[_0xf929('0x127')];if(_[_0xf929('0xa9')](this[_0xf929('0x26')][this[_0xf929('0x21')][_0x3339fe['actionid']][_0xf929('0xb0')]])){this[_0xf929('0x26')][this[_0xf929('0x21')][_0x3339fe[_0xf929('0x122')]][_0xf929('0xb0')]]=[];}this[_0xf929('0x26')][this[_0xf929('0x21')][_0x3339fe['actionid']][_0xf929('0xb0')]][_0xf929('0x128')](_[_0xf929('0x86')](_[_0xf929('0xcc')](this[_0xf929('0x21')][_0x3339fe[_0xf929('0x122')]],['idHopper',_0xf929('0x127')]),{'status':_0x3339fe[_0xf929('0xab')],'paused':_0x3339fe[_0xf929('0x126')]}));}}}};function unlockQueueStatus(_0x12940c,_0x1a2e09){setTimeout(function(){if(_[_0xf929('0x39')](_0x12940c['queueStatusComplete'])){loggerBooked['error'](_0xf929('0x129'),_0x1a2e09);}_0x12940c['queueStatusComplete']=!![];loggerBooked[_0xf929('0x78')](_0xf929('0x12a'),_0x1a2e09,JSON[_0xf929('0x42')](_[_0xf929('0xcc')](_0x12940c,[_0xf929('0x3c'),'queueStatusComplete'])));},0x1f3);}Dialer[_0xf929('0x17')][_0xf929('0x37')]=function(_0x5ecd1c){var _0x5cb753=this;var _0x441e5f=_0x5cb753[_0xf929('0x1c')][_0x5cb753['actions'][_0x5ecd1c[_0xf929('0x122')]][_0xf929('0xb0')]];if(strategy[this[_0xf929('0x1c')][this[_0xf929('0x21')][_0x5ecd1c[_0xf929('0x122')]][_0xf929('0xb0')]][_0xf929('0x123')]]==='roundrobin'){if(this[_0xf929('0x21')][_0x5ecd1c[_0xf929('0x122')]]&&this['actions'][_0x5ecd1c[_0xf929('0x122')]][_0xf929('0x127')]){this[_0xf929('0x1b')][_0xf929('0x12b')](this[_0xf929('0x21')][_0x5ecd1c[_0xf929('0x122')]][_0xf929('0x12c')],this[_0xf929('0x21')][_0x5ecd1c['actionid']][_0xf929('0x127')])[_0xf929('0xad')](function(_0x48dc1d){logger[_0xf929('0x8f')](_0xf929('0x12d'),util[_0xf929('0x90')](_0x48dc1d,{'showHidden':![],'depth':null}));})[_0xf929('0x1a')](function(){_0x5cb753[_0xf929('0xaf')](_0x5cb753['voiceQueues'][_0x5cb753[_0xf929('0x21')][_0x5ecd1c[_0xf929('0x122')]][_0xf929('0xb0')]]);_0x5cb753[_0xf929('0x1e')][_0x5cb753[_0xf929('0x21')][_0x5ecd1c[_0xf929('0x122')]][_0xf929('0x127')]][_0xf929('0x125')]=![];delete _0x5cb753[_0xf929('0x21')][_0x5ecd1c[_0xf929('0x122')]];unlockQueueStatus(_0x441e5f);});}else{this[_0xf929('0xaf')](this[_0xf929('0x1c')][this[_0xf929('0x21')][_0x5ecd1c['actionid']][_0xf929('0xb0')]]);this['rescheduleContact']({'active':![],'ContactId':this['actions'][_0x5ecd1c['actionid']][_0xf929('0xcd')],'ListId':this['actions'][_0x5ecd1c['actionid']][_0xf929('0xce')],'VoiceQueueId':this[_0xf929('0x21')][_0x5ecd1c[_0xf929('0x122')]][_0xf929('0xf9')]||undefined,'CampaignId':this[_0xf929('0x21')][_0x5ecd1c[_0xf929('0x122')]]['CampaignId']||undefined})[_0xf929('0xad')](loggerCatch(_0xf929('0x12e')));delete this['actions'][_0x5ecd1c[_0xf929('0x122')]];unlockQueueStatus(_0x441e5f);}}else if((strategy[this['voiceQueues'][this[_0xf929('0x21')][_0x5ecd1c[_0xf929('0x122')]]['queue']][_0xf929('0x123')]]||_0xf929('0x16'))===_0xf929('0x16')){var _0x4d4e40;if(this[_0xf929('0x21')][_0x5ecd1c[_0xf929('0x122')]]&&!_[_0xf929('0x41')](this['queueBooked'][this['actions'][_0x5ecd1c[_0xf929('0x122')]][_0xf929('0xb0')]])){if(this[_0xf929('0x27')][_0x5cb753[_0xf929('0x21')][_0x5ecd1c[_0xf929('0x122')]]['queue']]){this['queueBookedRR'][_0x5cb753[_0xf929('0x21')][_0x5ecd1c[_0xf929('0x122')]][_0xf929('0xb0')]]=this[_0xf929('0x27')][this[_0xf929('0x21')][_0x5ecd1c[_0xf929('0x122')]][_0xf929('0xb0')]]?this[_0xf929('0x27')][this[_0xf929('0x21')][_0x5ecd1c[_0xf929('0x122')]][_0xf929('0xb0')]]:this[_0xf929('0x26')][this[_0xf929('0x21')][_0x5ecd1c[_0xf929('0x122')]][_0xf929('0xb0')]]?this[_0xf929('0x26')][this[_0xf929('0x21')][_0x5ecd1c[_0xf929('0x122')]][_0xf929('0xb0')]][_0xf929('0x12f')]||0x0:0x0;}this[_0xf929('0x26')][this[_0xf929('0x21')][_0x5ecd1c[_0xf929('0x122')]][_0xf929('0xb0')]]['_rr']=this[_0xf929('0x27')][this[_0xf929('0x21')][_0x5ecd1c[_0xf929('0x122')]]['queue']];for(var _0x218680=0x0;_0x218680<this['queueBooked'][this[_0xf929('0x21')][_0x5ecd1c[_0xf929('0x122')]]['queue']][_0xf929('0x92')];_0x218680+=0x1){_0x4d4e40=rr(this['queueBooked'][this[_0xf929('0x21')][_0x5ecd1c[_0xf929('0x122')]][_0xf929('0xb0')]]);this[_0xf929('0x27')][_0x5cb753[_0xf929('0x21')][_0x5ecd1c[_0xf929('0x122')]][_0xf929('0xb0')]]=this[_0xf929('0x26')][this[_0xf929('0x21')][_0x5ecd1c[_0xf929('0x122')]][_0xf929('0xb0')]][_0xf929('0x12f')];if(_0x4d4e40[_0xf929('0xab')]==='1'&&_0x4d4e40[_0xf929('0x126')]==='0'){break;}}if(!_[_0xf929('0xa9')](_0x4d4e40)){this[_0xf929('0x1e')][_0x4d4e40[_0xf929('0x127')]][_0xf929('0x130')]=_[_0xf929('0x39')](this[_0xf929('0x1e')][_0x4d4e40[_0xf929('0x127')]][_0xf929('0x130')])?!![]:this[_0xf929('0x1e')][_0x4d4e40[_0xf929('0x127')]][_0xf929('0x130')];}loggerBooked['info'](_0xf929('0x131'),_0x5ecd1c[_0xf929('0x122')],_0xf929('0x132'),JSON[_0xf929('0x42')](_[_0xf929('0xcc')](this[_0xf929('0x1e')][_0x4d4e40[_0xf929('0x127')]],[_0xf929('0x3c'),'unlockRR'])),'contactAgent-idHopper:\x20',JSON[_0xf929('0x42')](_0x4d4e40[_0xf929('0x12c')]));if(!_[_0xf929('0xa9')](_0x4d4e40)&&_0x4d4e40[_0xf929('0xab')]==='1'&&_0x4d4e40[_0xf929('0x126')]==='0'&&this[_0xf929('0x1e')][_0x4d4e40[_0xf929('0x127')]][_0xf929('0x130')]){this[_0xf929('0x1e')][_0x4d4e40[_0xf929('0x127')]]['unlockRR']=![];this[_0xf929('0x26')][_0x5cb753[_0xf929('0x21')][_0x5ecd1c[_0xf929('0x122')]][_0xf929('0xb0')]]=[];this[_0xf929('0x1b')][_0xf929('0x12b')](_0x4d4e40[_0xf929('0x12c')],_0x4d4e40[_0xf929('0x127')])[_0xf929('0xad')](function(_0x541938){logger[_0xf929('0x8f')](_0xf929('0x12d'),util[_0xf929('0x90')](_0x541938,{'showHidden':![],'depth':null}));})[_0xf929('0x1a')](function(){_0x5cb753['updateOriginated'](_0x5cb753[_0xf929('0x1c')][_0x5cb753[_0xf929('0x21')][_0x5ecd1c[_0xf929('0x122')]][_0xf929('0xb0')]]);setTimeout(function(){_0x5cb753[_0xf929('0x1e')][_0x4d4e40['stateinterface']][_0xf929('0x130')]=!![];loggerBooked[_0xf929('0x78')]('[booked][RR][finaly]',_0x5ecd1c['actionid'],'Agent:\x20',JSON[_0xf929('0x42')](_[_0xf929('0xcc')](_0x5cb753[_0xf929('0x1e')][_0x4d4e40[_0xf929('0x127')]],[_0xf929('0x3c'),_0xf929('0x130')])),'contactAgent-idHopper:\x20',JSON[_0xf929('0x42')](_0x4d4e40[_0xf929('0x12c')]));},0xc7);delete _0x5cb753[_0xf929('0x21')][_0x5ecd1c[_0xf929('0x122')]];unlockQueueStatus(_0x441e5f,_0x5ecd1c[_0xf929('0x122')]);});}else{loggerBooked[_0xf929('0x78')]('[booked][unlock]');this['updateOriginated'](this[_0xf929('0x1c')][this[_0xf929('0x21')][_0x5ecd1c[_0xf929('0x122')]][_0xf929('0xb0')]]);this[_0xf929('0xbb')]({'active':![],'ContactId':this[_0xf929('0x21')][_0x5ecd1c['actionid']][_0xf929('0xcd')],'ListId':this['actions'][_0x5ecd1c['actionid']][_0xf929('0xce')],'VoiceQueueId':this['actions'][_0x5ecd1c[_0xf929('0x122')]][_0xf929('0xf9')]||undefined,'CampaignId':this[_0xf929('0x21')][_0x5ecd1c['actionid']][_0xf929('0xd0')]||undefined})[_0xf929('0xad')](loggerCatch(_0xf929('0x12e')));delete this[_0xf929('0x21')][_0x5ecd1c['actionid']];unlockQueueStatus(_0x441e5f);}}else{loggerBooked['info'](_0xf929('0x133'));this[_0xf929('0xaf')](this[_0xf929('0x1c')][this[_0xf929('0x21')][_0x5ecd1c['actionid']][_0xf929('0xb0')]]);this['rescheduleContact']({'active':![],'ContactId':this[_0xf929('0x21')][_0x5ecd1c['actionid']][_0xf929('0xcd')],'ListId':this[_0xf929('0x21')][_0x5ecd1c[_0xf929('0x122')]][_0xf929('0xce')],'VoiceQueueId':this[_0xf929('0x21')][_0x5ecd1c['actionid']][_0xf929('0xf9')]||undefined,'CampaignId':this[_0xf929('0x21')][_0x5ecd1c[_0xf929('0x122')]][_0xf929('0xd0')]||undefined})['catch'](loggerCatch(_0xf929('0x134')));delete this[_0xf929('0x21')][_0x5ecd1c[_0xf929('0x122')]];unlockQueueStatus(_0x441e5f);}}else{loggerBooked[_0xf929('0x78')](_0xf929('0x135'));this['updateOriginated'](this[_0xf929('0x1c')][this[_0xf929('0x21')][_0x5ecd1c[_0xf929('0x122')]][_0xf929('0xb0')]]);this['rescheduleContact']({'active':![],'ContactId':this[_0xf929('0x21')][_0x5ecd1c[_0xf929('0x122')]][_0xf929('0xcd')],'ListId':this[_0xf929('0x21')][_0x5ecd1c[_0xf929('0x122')]]['ListId'],'VoiceQueueId':this[_0xf929('0x21')][_0x5ecd1c[_0xf929('0x122')]][_0xf929('0xf9')]||undefined,'CampaignId':this['actions'][_0x5ecd1c['actionid']][_0xf929('0xd0')]||undefined})['catch'](loggerCatch(_0xf929('0x136')));delete this[_0xf929('0x21')][_0x5ecd1c[_0xf929('0x122')]];unlockQueueStatus(_0x441e5f);}};Dialer[_0xf929('0x17')]['loopCampaigns']=function(){var _0x54be75=this;return BPromise['resolve']()[_0xf929('0xb9')](cmHopper['resetActiveCalls']({}))[_0xf929('0xb9')](function(){setInterval(function(){_0x54be75[_0xf929('0x137')]();},0x3e8);});};Dialer[_0xf929('0x17')][_0xf929('0x138')]=function(_0x3dac5c){var _0x551130=this;return function(){if(!_0x551130[_0xf929('0xd4')](_0x3dac5c[_0xf929('0x72')])){if(!_0x551130[_0xf929('0xd4')](_0x3dac5c[_0xf929('0x139')])){_0x3dac5c[_0xf929('0x3a')]=_0xf929('0x13a');throw _0x3dac5c[_0xf929('0x3c')]+_0xf929('0x13b');}}};};Dialer[_0xf929('0x17')][_0xf929('0x13c')]=function(_0x5cf7d9,_0x2e734d,_0x6a177e,_0x1f0fda){var _0x55a1c2=this;return function(){var _0x47511f=!![];return _0x55a1c2[_0xf929('0x13d')](_0x5cf7d9,_0x2e734d,_0x6a177e,_0x1f0fda,_0x47511f);};};Dialer[_0xf929('0x17')][_0xf929('0x13e')]=function(_0xdd4a70,_0xbc0840,_0x70e14e,_0x34d5c6){var _0x2e977e=this;return function(){var _0x279369=![];return _0x2e977e[_0xf929('0x13d')](_0xdd4a70[_0xf929('0x13f')],_0xbc0840,_0x70e14e,_0x34d5c6,_0x279369);};};Dialer['prototype'][_0xf929('0x13d')]=function(_0x388dd7,_0xe83d2c,_0x1349d4,_0x52a452,_0x4e1d32){var _0x2b14d8=[];return new BPromise(function(_0x398bce,_0x48b012){if(!isNotNull(_0x388dd7)){_0x52a452[_0xf929('0x3a')]='INTERVAL_IS_NULL';return _0x48b012(msgResponse(_0xf929('0x13d'),_0xf929('0x140'),_0x1349d4+_0xf929('0x141')));}if(_['isEmpty'](_0x388dd7)){_0x52a452[_0xf929('0x3a')]=_0xf929('0x142');return _0x48b012(msgResponse(_0xf929('0x13d'),_0xf929('0x140'),_0x1349d4+'\x20Intervals\x20is\x20empty\x20'));}if(_0xe83d2c&&_[_0xf929('0x39')](config['timezones'][_0xe83d2c])){_0x52a452['message']=_0xf929('0x143');return _0x48b012(msgResponse(_0xf929('0x13d'),_0xf929('0x140'),_0x1349d4+'\x20Timezone\x20unknow\x20'+_0xe83d2c));}if(_[_0xf929('0x144')](_0x388dd7)){for(var _0x38c417=0x0;_0x38c417<_0x388dd7[_0xf929('0x92')];_0x38c417+=0x1){_0x2b14d8[_0xf929('0x128')](ami['Action']({'action':'command','command':util[_0xf929('0x74')](_0xf929('0x145'),_0x388dd7[_0x38c417][_0xf929('0x146')],!_[_0xf929('0x39')](config[_0xf929('0x147')][_0xe83d2c])?_0xe83d2c:'')})['then'](function(_0x4696d9){return _0x4696d9['content'][_0xf929('0x148')](_0xf929('0x149'))>=0x0;})['catch'](myreject(_0x48b012)));}}else{_0x2b14d8[_0xf929('0x128')](ami[_0xf929('0xaa')]({'action':'command','command':util[_0xf929('0x74')]('iftime\x20%s,%s',_0x388dd7,!_[_0xf929('0x39')](config[_0xf929('0x147')][_0xe83d2c])?_0xe83d2c:'')})['then'](function(_0x1820a8){return _0x1820a8[_0xf929('0x14a')][_0xf929('0x148')](_0xf929('0x149'))>=0x0;})[_0xf929('0xad')](myreject(_0x48b012)));}BPromise[_0xf929('0x14b')](_0x2b14d8)[_0xf929('0xb9')](function(_0xa603cc){var _0x233ea0=_[_0xf929('0x14c')](_0xa603cc);if(_0x233ea0){return _0x398bce(_0x233ea0);}else{_0x52a452[_0xf929('0x3a')]=_0x4e1d32?_0xf929('0x14d'):_0xf929('0x14e');return _0x48b012(msgResponse(_0xf929('0x14f'),'Failure',_0xf929('0x150')+_0x4e1d32+'\x20'+_0x1349d4+_0xf929('0x151')+util[_0xf929('0x90')](_0x388dd7,{'showHidden':![],'depth':null})+_0xf929('0x152')+_0xe83d2c));}})[_0xf929('0xad')](function(_0xe8a29f){return _0x48b012(msgResponse(_0xf929('0x13d'),'Failure',JSON[_0xf929('0x42')](_0xe8a29f)));});});};Dialer['prototype']['checkDialMethod']=function(_0x340e63){var _0xc034fc=this;return function(){switch(_0x340e63[_0xf929('0x153')]){case'progressive':freeVariablesPredictive(_0x340e63);_0xc034fc['handlePower'](_0x340e63,0x1);break;case _0xf929('0x154'):freeVariablesPredictive(_0x340e63);_0xc034fc[_0xf929('0x155')](_0x340e63,_0x340e63['dialPowerLevel']);break;case'predictive':_0xc034fc[_0xf929('0x8')](_0x340e63);break;case'booked':freeVariablesPredictive(_0x340e63);_0xc034fc[_0xf929('0x155')](_0x340e63,0x1);break;default:freeVariablesPredictive(_0x340e63);logger[_0xf929('0x8f')](_0xf929('0x156'),_0x340e63['name'],_0xf929('0x157'));}};};Dialer[_0xf929('0x17')][_0xf929('0x158')]=function(_0x19b18e){var _0x6610be=this;return function(){_0x6610be[_0xf929('0x159')](_0x19b18e);};};Dialer[_0xf929('0x17')][_0xf929('0xa')]=function(_0x2f5bce){var _0xbd96c0=this;if(isNotPreview(_0x2f5bce[_0xf929('0x153')])){if(isVoiceQueueOutbound(_0x2f5bce['type'])&&isActive(_0x2f5bce[_0xf929('0x52')])){_0x2f5bce[_0xf929('0x9b')]=!![];BPromise['resolve']()[_0xf929('0xb9')](checkIsLoggedIn(_0x2f5bce,_0x2f5bce[_0xf929('0x49')]))[_0xf929('0xb9')](checkIsActive(_0x2f5bce,_0x2f5bce[_0xf929('0x52')]))[_0xf929('0xb9')](checkInterval(_0x2f5bce))['then'](_0xbd96c0['checkIsTrunkReachable'](_0x2f5bce))[_0xf929('0xb9')](_0xbd96c0[_0xf929('0x13c')](_0x2f5bce[_0xf929('0x15a')],_0x2f5bce[_0xf929('0x15b')],_0x2f5bce[_0xf929('0x3c')],_0x2f5bce))[_0xf929('0xb9')](_0xbd96c0['checkIfTimeIntervals'](_0x2f5bce[_0xf929('0x3f')],_0x2f5bce[_0xf929('0x15b')],_0x2f5bce[_0xf929('0x3c')],_0x2f5bce))[_0xf929('0xb9')](_0xbd96c0[_0xf929('0x15c')](_0x2f5bce))[_0xf929('0xad')](loggerCatchQueueSummary(_0xf929('0x15d'),_0x2f5bce));}else{notSendMessagesQueue(_0x2f5bce);}}else{freeVariablesPredictive(_0x2f5bce);}};Dialer[_0xf929('0x17')]['syncCampaigns']=function(){var _0x5b5309=this;var _0xeda828;for(var _0x39fb2c in this['campaigns']){if(typeof this['campaigns'][_0x39fb2c]!==_0xf929('0xa7')){_0xeda828=this[_0xf929('0x1d')][_0x39fb2c];if(isCampaignIvr(_0xeda828[_0xf929('0x47')])&&isActive(_0xeda828[_0xf929('0xd5')])){_0xeda828[_0xf929('0x9b')]=!![];BPromise['resolve']()['then'](checkIsActive(_0xeda828,_0xeda828['active']))['then'](checkInterval(_0xeda828))[_0xf929('0xb9')](_0x5b5309[_0xf929('0x138')](_0xeda828))[_0xf929('0xb9')](_0x5b5309[_0xf929('0x13c')](_0xeda828[_0xf929('0x15a')],_0xeda828['dialTimezone'],_0xeda828[_0xf929('0x3c')],_0xeda828))[_0xf929('0xb9')](_0x5b5309[_0xf929('0x13e')](_0xeda828['Interval'],_0xeda828['dialTimezone'],_0xeda828[_0xf929('0x3c')],_0xeda828))[_0xf929('0xb9')](_0x5b5309['launchHandleIvr'](_0xeda828))[_0xf929('0xad')](loggerCatchQueueSummary(_0xf929('0x15e'),_0xeda828));}else{notSendMessagesCampaign(_0xeda828);}}}};function getCallerIdRandom(_0x5c0f82,_0x541405){var _0x1e9d21;var _0x3dd394;var _0x4156b2;if(_0x541405<=0x0){_0x541405=0x1;}_0x1e9d21=new RegExp('\x5cw{0,'+_0x541405+'}$');_0x3dd394=Math[_0xf929('0x15f')](0xa,_0x541405-0x1);_0x4156b2=Math[_0xf929('0x15f')](0xa,_0x541405)-0x1;return util['format']('%s',_[_0xf929('0x160')](_0x5c0f82,_0x1e9d21,_[_0xf929('0x161')](_0x3dd394,_0x4156b2)));}function extractCalleridName(_0x75a99){var _0x2836c0=_0x75a99['match'](/"(.*?)"/);return _0x2836c0?_0x2836c0[0x1]:_0x75a99;}function extractCalleridNumber(_0x14d9a4){var _0x358c06=_0x14d9a4[_0xf929('0x162')](/<(.*?)>/);return _0x358c06?_0x358c06[0x1]:_0x14d9a4;}Dialer[_0xf929('0x17')][_0xf929('0x163')]=function(_0x2858d4,_0x532d0c){var _0x51cb77=this;var _0x228dfc=uuid['v4']();this[_0xf929('0x21')][_0x228dfc]=new Action(_0x2858d4,_0x532d0c,_0x228dfc);return new BPromise(function(_0x29accd,_0x4e480b){if(_[_0xf929('0x39')](_0x2858d4)&&typeof _0x2858d4!==_0xf929('0x164')){return _0x4e480b(msgResponse(_0xf929('0x165'),_0xf929('0x140'),_0xf929('0x166')));}if(_[_0xf929('0x39')](_0x532d0c['Contact'][_0xf929('0x167')])||_0x532d0c[_0xf929('0x168')][_0xf929('0x167')]===null){return _0x4e480b(msgResponse(_0xf929('0x165'),'Failure',_0xf929('0x169')));}var _0x4d4a6a={'XMD-CALLERID':_0x51cb77[_0xf929('0x21')][_0x228dfc][_0xf929('0x16a')](),'XMD-AGI':_0x2858d4[_0xf929('0x105')]?util[_0xf929('0x74')](_0xf929('0x16b'),ipAgi,_0x2858d4[_0xf929('0x105')]):_0xf929('0x16c'),'XMD-AGIAFTER':_0x2858d4[_0xf929('0x16d')]?util[_0xf929('0x74')](_0xf929('0x16b'),ipAgi,_0x2858d4[_0xf929('0x16d')]):_0xf929('0x16c'),'XMD-QUEUE':_0x2858d4['type']===_0xf929('0x48')?util[_0xf929('0x74')](_0xf929('0x16e'),_0x2858d4[_0xf929('0x3c')],_0x2858d4['dialQueueOptions']||'',_0x2858d4[_0xf929('0x10c')]?'c':'',_0x2858d4[_0xf929('0x16f')]||0x3):_0xf929('0x16c'),'XMD-CONTACTID':_0x532d0c[_0xf929('0xcd')],'XMD-CDRTYPE':'dialer','CALLERID(all)':_0x51cb77['actions'][_0x228dfc]['getCaller'](),'XMD-AMD':_0x2858d4[_0xf929('0xdc')]?_0xf929('0x170'):_0xf929('0x16c'),'XMD-DESTINATION':'xcally-motion-dialer'};if(_0x2858d4[_0xf929('0xdc')]){_0x4d4a6a[_0xf929('0x171')]=_0x2858d4[_0xf929('0x172')]||0x9c4;_0x4d4a6a['XMD-AMDGREETING']=_0x2858d4['dialAMDGreeting']||0x5dc;_0x4d4a6a[_0xf929('0x173')]=_0x2858d4[_0xf929('0x174')]||0x320;_0x4d4a6a['XMD-AMDTOTALANALYSISTIME']=_0x2858d4[_0xf929('0x175')]||0x1388;_0x4d4a6a['XMD-AMDMINWORDLENGTH']=_0x2858d4[_0xf929('0x176')]||0x64;_0x4d4a6a[_0xf929('0x177')]=_0x2858d4[_0xf929('0x178')]||0x32;_0x4d4a6a[_0xf929('0x179')]=_0x2858d4[_0xf929('0x17a')]||0x3;_0x4d4a6a[_0xf929('0x17b')]=_0x2858d4[_0xf929('0x17c')]||0x100;_0x4d4a6a[_0xf929('0x17d')]=_0x2858d4[_0xf929('0x17e')]||0x1388;}if(_0x2858d4[_0xf929('0x47')]===_0xf929('0x48')){_0x4d4a6a[_0xf929('0x17f')]=_0x532d0c[_0xf929('0xf9')];}else{_0x4d4a6a[_0xf929('0x180')]=_0x532d0c[_0xf929('0xd0')];}for(var _0x580589 in _0x532d0c['Contact']){if(typeof _0x532d0c['Contact'][_0x580589]!==_0xf929('0xa7')){if(isNotNull(_0x532d0c[_0xf929('0x168')][_0x580589])&&_0x580589!=='id'&&_0x580589!==_0xf929('0x181')&&_0x580589!==_0xf929('0x182')&&_0x580589!==_0xf929('0x183')){_0x4d4a6a[util[_0xf929('0x74')]('%s%s',_0xf929('0x184'),_['toUpper'](_0x580589))]=_0x532d0c[_0xf929('0x168')][_0x580589];}}}var _0x70f752=_0x51cb77[_0xf929('0xd4')](_0x2858d4[_0xf929('0x72')])?getCallerId(_0x2858d4[_0xf929('0x72')][_0xf929('0x73')],_0x2858d4['dialOriginateCallerIdName'],_0x2858d4[_0xf929('0x185')]>0x0?getCallerIdRandom(_0x2858d4[_0xf929('0x54')],_0x2858d4['dialRandomLastDigitCallerIdNumber']):_0x2858d4['dialOriginateCallerIdNumber']):getCallerId(_[_0xf929('0xa9')](_0x2858d4[_0xf929('0x139')])?_0x2858d4['Trunk']['callerid']:_0x2858d4[_0xf929('0x139')][_0xf929('0x73')],_0x2858d4[_0xf929('0x53')],_0x2858d4['dialRandomLastDigitCallerIdNumber']>0x0?getCallerIdRandom(_0x2858d4[_0xf929('0x54')],_0x2858d4[_0xf929('0x185')]):_0x2858d4[_0xf929('0x54')]);if(_0x70f752){_0x4d4a6a[_0xf929('0x186')]=_0x51cb77[_0xf929('0x21')][_0x228dfc][_0xf929('0x187')]=extractCalleridName(_0x70f752);_0x4d4a6a['XMD-ORIGINATECALLERIDNUM']=_0x51cb77[_0xf929('0x21')][_0x228dfc][_0xf929('0x188')]=extractCalleridNumber(_0x70f752);}return ami[_0xf929('0xaa')]({'actionid':_0x228dfc,'action':_0xf929('0x165'),'channel':_0x51cb77[_0xf929('0xd4')](_0x2858d4[_0xf929('0x72')])?util[_0xf929('0x74')](_0xf929('0x189'),_0x2858d4[_0xf929('0x72')][_0xf929('0x3c')],isNotNull(_0x2858d4[_0xf929('0x56')])?_0x2858d4[_0xf929('0x56')][_0xf929('0x18a')]()||'':'',_0x2858d4[_0xf929('0x18b')]>0x0?_0x532d0c[_0xf929('0x168')][_0xf929('0x167')][_0xf929('0x18c')](_0x2858d4[_0xf929('0x18b')]):_0x532d0c['Contact'][_0xf929('0x167')]):util['format'](_0xf929('0x189'),_[_0xf929('0xa9')](_0x2858d4[_0xf929('0x139')])?_0x2858d4[_0xf929('0x72')][_0xf929('0x3c')]:_0x2858d4[_0xf929('0x139')][_0xf929('0x3c')],isNotNull(_0x2858d4[_0xf929('0x56')])?_0x2858d4[_0xf929('0x56')][_0xf929('0x18a')]()||'':'',_0x2858d4[_0xf929('0x18b')]>0x0?_0x532d0c[_0xf929('0x168')]['phone'][_0xf929('0x18c')](_0x2858d4['dialCutDigit']):_0x532d0c['Contact'][_0xf929('0x167')]),'callerid':_0x70f752,'Exten':_0xf929('0x18d'),'Context':_0xf929('0x18e'),'Priority':'1','variable':_0x4d4a6a,'timeout':(_0x2858d4[_0xf929('0x55')]||0x1e)*0x3e8,'async':!![],'channelid':_0x228dfc})[_0xf929('0xb9')](function(_0x54ba99){return _0x29accd(_0x54ba99);})[_0xf929('0xad')](function(_0x9f259d){_0x2858d4[_0xf929('0x5f')]+=0x1;var _0x4527b2=new History(_0x51cb77[_0xf929('0x21')][_0x228dfc]);logger['error'](util[_0xf929('0x74')]('[originateError]:\x20%s',JSON[_0xf929('0x42')](_0x9f259d)));_0x4527b2[_0xf929('0xe1')]=0xe;_0x4527b2[_0xf929('0xa2')]=_0xf929('0x18f');_0x4527b2['starttime']=moment()[_0xf929('0x74')]('YYYY-MM-DD\x20HH:mm:ss');_0x4527b2[_0xf929('0xa3')]=_0x4527b2[_0xf929('0x118')];_0x51cb77[_0xf929('0xc6')](_0x4527b2)[_0xf929('0xad')](loggerCatch(_0xf929('0x190')));_0x51cb77[_0xf929('0xc5')](_0x4527b2)[_0xf929('0xad')](loggerCatch(_0xf929('0x190')))[_0xf929('0x1a')](function(){delete _0x51cb77[_0xf929('0x21')][_0x228dfc];return _0x4e480b(msgResponse('originate',_0xf929('0x191'),_0xf929('0x192')));});});});};Dialer[_0xf929('0x17')][_0xf929('0x2d')]=function(_0x3a462d){var _0x45a2b2=this[_0xf929('0x21')][_0x3a462d[_0xf929('0x122')]];if(_0x45a2b2){delete this[_0xf929('0x21')][_0x3a462d[_0xf929('0x122')]];_0x45a2b2[_0xf929('0x112')]=moment()[_0xf929('0x74')](_0xf929('0xf8'));var _0x7537f2=_0x45a2b2[_0xf929('0x47')]===_0xf929('0x77')?this[_0xf929('0x1d')][_0x45a2b2[_0xf929('0xb0')]]:this[_0xf929('0x1c')][_0x45a2b2['getQueue']()];if(!this[_0xf929('0xd2')](_0x3a462d['response'])){this[_0xf929('0xaf')](_0x7537f2);return this[_0xf929('0x193')](_0x45a2b2,_0x7537f2,_0x3a462d)[_0xf929('0xad')](loggerCatch('[callProgressDetecting]\x20'));}this[_0xf929('0x22')][_0x3a462d[_0xf929('0xd9')]]=_0x45a2b2;}};Dialer['prototype']['checkRetriveMax']=function(_0x3e2bfb,_0xd7267a,_0x2bfaf7){var _0x548b3f=new History(_0xd7267a);if(_0x548b3f[_0xf929('0xee')]+_0x548b3f[_0xf929('0xef')]+_0x548b3f[_0xf929('0xfd')]+_0x548b3f[_0xf929('0xfe')]+_0x548b3f[_0xf929('0xf0')]+_0x548b3f['countabandonedretry']+_0x548b3f[_0xf929('0xe9')]+_0x548b3f[_0xf929('0xf1')]>=_0x2bfaf7['dialGlobalMaxRetry']-0x1){return!![];}switch(_0x3e2bfb){case 0x3:if(_0x548b3f[_0xf929('0xfd')]>=_0x2bfaf7[_0xf929('0x194')]-0x1){return!![];}this[_0xf929('0xbb')]({'active':![],'countnoanswerretry':_0x548b3f[_0xf929('0xfd')]+=0x1,'scheduledat':moment()[_0xf929('0x101')](_0x2bfaf7[_0xf929('0x195')],_0xf929('0xf7'))[_0xf929('0x74')](_0xf929('0xf8')),'ContactId':_0x548b3f['ContactId'],'ListId':_0x548b3f[_0xf929('0xce')],'VoiceQueueId':_0x548b3f[_0xf929('0xf9')]||undefined,'CampaignId':_0x548b3f[_0xf929('0xd0')]||undefined})[_0xf929('0xad')](loggerCatch('[rescheduleContact][NoAnswer]'));break;case 0x5:if(_0x548b3f[_0xf929('0xee')]>=_0x2bfaf7[_0xf929('0x196')]-0x1){return!![];}this[_0xf929('0xbb')]({'active':![],'countbusyretry':_0x548b3f[_0xf929('0xee')]+=0x1,'scheduledat':moment()[_0xf929('0x101')](_0x2bfaf7[_0xf929('0x197')],_0xf929('0xf7'))[_0xf929('0x74')](_0xf929('0xf8')),'ContactId':_0x548b3f['ContactId'],'ListId':_0x548b3f[_0xf929('0xce')],'VoiceQueueId':_0x548b3f[_0xf929('0xf9')]||undefined,'CampaignId':_0x548b3f[_0xf929('0xd0')]||undefined})[_0xf929('0xad')](loggerCatch(_0xf929('0x198')));break;case 0x8:if(_0x548b3f[_0xf929('0xef')]>=_0x2bfaf7[_0xf929('0x199')]-0x1){return!![];}this[_0xf929('0xbb')]({'active':![],'countcongestionretry':_0x548b3f[_0xf929('0xef')]+=0x1,'scheduledat':moment()[_0xf929('0x101')](_0x2bfaf7[_0xf929('0x19a')],_0xf929('0xf7'))[_0xf929('0x74')](_0xf929('0xf8')),'ContactId':_0x548b3f[_0xf929('0xcd')],'ListId':_0x548b3f[_0xf929('0xce')],'VoiceQueueId':_0x548b3f[_0xf929('0xf9')]||undefined,'CampaignId':_0x548b3f[_0xf929('0xd0')]||undefined})[_0xf929('0xad')](loggerCatch('[rescheduleContact]\x20[Congestion]'));break;case 0x0:if(_0x548b3f['countnosuchnumberretry']>=_0x2bfaf7[_0xf929('0x19b')]-0x1){return!![];}else{this[_0xf929('0xbb')]({'active':![],'countnosuchnumberretry':_0x548b3f['countnosuchnumberretry']+=0x1,'scheduledat':moment()[_0xf929('0x101')](_0x2bfaf7[_0xf929('0x19c')],'minutes')[_0xf929('0x74')]('YYYY-MM-DD\x20HH:mm:ss'),'ContactId':_0x548b3f[_0xf929('0xcd')],'ListId':_0x548b3f['ListId'],'VoiceQueueId':_0x548b3f[_0xf929('0xf9')]||undefined,'CampaignId':_0x548b3f[_0xf929('0xd0')]||undefined})[_0xf929('0xad')](loggerCatch(_0xf929('0x19d')));}break;case 0xa:if(_0x548b3f[_0xf929('0xf0')]>=_0x2bfaf7[_0xf929('0x115')]-0x1){return!![];}this[_0xf929('0xbb')]({'active':![],'countdropretry':_0x548b3f[_0xf929('0xf0')]+=0x1,'scheduledat':moment()['add'](_0x2bfaf7[_0xf929('0x116')],'minutes')['format'](_0xf929('0xf8')),'ContactId':_0x548b3f[_0xf929('0xcd')],'ListId':_0x548b3f['ListId'],'VoiceQueueId':_0x548b3f['VoiceQueueId']||undefined,'CampaignId':_0x548b3f['CampaignId']||undefined})['catch'](loggerCatch(_0xf929('0x117')));break;case 0xb:if(_0x548b3f[_0xf929('0xff')]>=_0x2bfaf7[_0xf929('0x11e')]-0x1){return!![];}this[_0xf929('0xbb')]({'active':![],'countabandonedretry':_0x548b3f['countabandonedretry']+=0x1,'scheduledat':moment()[_0xf929('0x101')](_0x2bfaf7[_0xf929('0x11f')],_0xf929('0xf7'))[_0xf929('0x74')](_0xf929('0xf8')),'ContactId':_0x548b3f[_0xf929('0xcd')],'ListId':_0x548b3f[_0xf929('0xce')],'VoiceQueueId':_0x548b3f[_0xf929('0xf9')]||undefined,'CampaignId':_0x548b3f[_0xf929('0xd0')]||undefined})['catch'](loggerCatch(_0xf929('0x120')));break;case 0x13:if(_0x548b3f['countmachineretry']>=_0x2bfaf7['dialMachineMaxRetry']-0x1){return!![];}this[_0xf929('0xbb')]({'active':![],'countmachineretry':_0x548b3f[_0xf929('0xe9')]+=0x1,'scheduledat':moment()[_0xf929('0x101')](_0x2bfaf7[_0xf929('0xf6')],'minutes')[_0xf929('0x74')]('YYYY-MM-DD\x20HH:mm:ss'),'ContactId':_0x548b3f['ContactId'],'ListId':_0x548b3f[_0xf929('0xce')],'VoiceQueueId':_0x548b3f['VoiceQueueId']||undefined,'CampaignId':_0x548b3f['CampaignId']||undefined})['catch'](loggerCatch(_0xf929('0x102')));break;case 0x14:if(_0x548b3f[_0xf929('0xf1')]>=_0x2bfaf7[_0xf929('0x19e')]-0x1){return!![];}this[_0xf929('0xbb')]({'active':![],'countagentrejectretry':_0x548b3f['countagentrejectretry']+=0x1,'scheduledat':moment()[_0xf929('0x101')](_0x2bfaf7[_0xf929('0x19f')],_0xf929('0xf7'))[_0xf929('0x74')](_0xf929('0xf8')),'ContactId':_0x548b3f[_0xf929('0xcd')],'ListId':_0x548b3f['ListId'],'VoiceQueueId':_0x548b3f[_0xf929('0xf9')]||undefined,'CampaignId':_0x548b3f[_0xf929('0xd0')]||undefined})[_0xf929('0xad')](loggerCatch(_0xf929('0x1a0')));break;default:return!![];}};Dialer[_0xf929('0x17')][_0xf929('0x193')]=function(_0x3305db,_0x579946,_0x5a2771){var _0x1d06d1=this;var _0x1cabba=new History(_0x3305db);return new BPromise(function(_0x5e7a09,_0x3de73f){if(_[_0xf929('0x39')](_0x579946)&&typeof _0x579946!==_0xf929('0x164')){return _0x3de73f(msgResponse(_0xf929('0x1a1'),'Failure',_0xf929('0x1a2')));}if(_[_0xf929('0x39')](_0x5a2771)&&typeof _0x5a2771!=='object'){return _0x3de73f(msgResponse(_0xf929('0x1a1'),'Failure',_0xf929('0x1a3')));}switch(_0x5a2771['reason']){case'0':_0x579946[_0xf929('0x5e')]+=0x1;_0x1cabba[_0xf929('0xe1')]=0x0;_0x1cabba[_0xf929('0xa2')]=_0xf929('0x1a4');_0x1cabba['countnosuchnumberretry']+=0x1;_0x1cabba[_0xf929('0xea')]+=0x1;ami[_0xf929('0x46')](_0xf929('0x1a5'),ut[_0xf929('0xe5')](_0x3305db,_0xf929('0x1a6')));_0x1d06d1[_0xf929('0xc6')](_0x1cabba)[_0xf929('0xad')](loggerCatch(_0xf929('0xed')));if(_0x1d06d1[_0xf929('0x1a7')](0x0,_0x3305db,_0x579946)){if(_0x1cabba[_0xf929('0xfe')]>=_0x579946[_0xf929('0x19b')]){_0x1d06d1['createStateFinal'](_0x1cabba,_0x5e7a09,_0x3de73f,_0xf929('0x1a8'));}else{_0x1d06d1['stateGlobal'](_0x1cabba,_0x5e7a09,_0x3de73f,'reason\x200\x20no\x20such\x20number....');}}break;case'3':_0x579946[_0xf929('0x5d')]+=0x1;_0x1cabba[_0xf929('0xe1')]=0x3;_0x1cabba[_0xf929('0xa2')]=_0xf929('0x1a9');_0x1cabba['countnoanswerretry']+=0x1;_0x1cabba[_0xf929('0xea')]+=0x1;ami[_0xf929('0x46')](_0xf929('0x1aa'),ut['buildObj'](_0x3305db,_0xf929('0x1ab')));_0x1d06d1[_0xf929('0xc6')](_0x1cabba)[_0xf929('0xad')](loggerCatch(_0xf929('0x1ac')));if(_0x1d06d1[_0xf929('0x1a7')](0x3,_0x3305db,_0x579946)){if(_0x1cabba['countnoanswerretry']>=_0x579946[_0xf929('0x194')]){_0x1d06d1[_0xf929('0xf4')](_0x1cabba,_0x5e7a09,_0x3de73f,_0xf929('0x1ad'));}else{_0x1d06d1[_0xf929('0xf2')](_0x1cabba,_0x5e7a09,_0x3de73f,'reason\x203\x20ringing\x20no\x20answer');}}break;case'5':_0x579946['outboundBusyCallsDay']+=0x1;_0x1cabba[_0xf929('0xe1')]=0x5;_0x1cabba['statedesc']=_0xf929('0x1ae');_0x1cabba[_0xf929('0xee')]+=0x1;_0x1cabba['countglobal']+=0x1;ami[_0xf929('0x46')](_0xf929('0x1af'),ut['buildObj'](_0x3305db,_0xf929('0x1b0')));_0x1d06d1[_0xf929('0xc6')](_0x1cabba)['catch'](loggerCatch(_0xf929('0x1b1')));if(_0x1d06d1[_0xf929('0x1a7')](0x5,_0x3305db,_0x579946)){if(_0x1cabba[_0xf929('0xee')]>=_0x579946['dialBusyMaxRetry']){_0x1d06d1['createStateFinal'](_0x1cabba,_0x5e7a09,_0x3de73f,_0xf929('0x1b2'));}else{_0x1d06d1[_0xf929('0xf2')](_0x1cabba,_0x5e7a09,_0x3de73f,_0xf929('0x1b2'));}}break;case'8':_0x579946[_0xf929('0x59')]+=0x1;_0x1cabba[_0xf929('0xe1')]=0x8;_0x1cabba['statedesc']='Congestion';_0x1cabba[_0xf929('0xef')]+=0x1;_0x1cabba[_0xf929('0xea')]+=0x1;ami[_0xf929('0x46')](_0xf929('0x1b3'),ut[_0xf929('0xe5')](_0x3305db,_0xf929('0x1b4')));_0x1d06d1[_0xf929('0xc6')](_0x1cabba)[_0xf929('0xad')](loggerCatch(_0xf929('0x1b5')));if(_0x1d06d1[_0xf929('0x1a7')](0x8,_0x3305db,_0x579946)){if(_0x1cabba['countcongestionretry']>=_0x579946[_0xf929('0x199')]){_0x1d06d1[_0xf929('0xf4')](_0x1cabba,_0x5e7a09,_0x3de73f,_0xf929('0x1b6'));}else{_0x1d06d1[_0xf929('0xf2')](_0x1cabba,_0x5e7a09,_0x3de73f,_0xf929('0x1b6'));}}break;case'11':_0x579946[_0xf929('0x1b7')]+=0x1;_0x1cabba[_0xf929('0xe1')]=0xb;_0x1cabba[_0xf929('0xa2')]=_0xf929('0x11c');_0x1cabba['countabandonedretry']+=0x1;_0x1cabba['countglobal']+=0x1;_0x1d06d1['createHistory'](_0x1cabba)[_0xf929('0xad')](loggerCatch(_0xf929('0x121')));if(_0x1d06d1[_0xf929('0x1a7')](0xb,_0x3305db,_0x579946)){if(_0x1cabba[_0xf929('0xff')]>=_0x579946['dialAbandonedMaxRetry']){_0x1d06d1[_0xf929('0xf4')](_0x1cabba,_0x5e7a09,_0x3de73f,_0xf929('0x1b8'));}else{_0x1d06d1[_0xf929('0xf2')](_0x1cabba,_0x5e7a09,_0x3de73f,_0xf929('0x1b8'));}}break;case'20':_0x579946['outboundRejectCallsDay']+=0x1;_0x1cabba['state']=0x14;_0x1cabba['statedesc']='AgentReject';_0x1cabba[_0xf929('0xf1')]+=0x1;_0x1cabba[_0xf929('0xea')]+=0x1;ami['emit'](_0xf929('0x1b9'),ut[_0xf929('0xe5')](_0x3305db,'agentreject'));_0x1d06d1[_0xf929('0xc6')](_0x1cabba)[_0xf929('0xad')](loggerCatch(_0xf929('0x1ba')));if(_0x1d06d1[_0xf929('0x1a7')](0x14,_0x3305db,_0x579946)){if(_0x1cabba[_0xf929('0xf1')]>=_0x579946[_0xf929('0x19e')]){_0x1d06d1[_0xf929('0xf4')](_0x1cabba,_0x5e7a09,_0x3de73f,_0xf929('0x1bb'));}else{_0x1d06d1[_0xf929('0xf2')](_0x1cabba,_0x5e7a09,_0x3de73f,'reason\x2020\x20agentreject');}}break;default:_0x579946[_0xf929('0x62')]+=0x1;_0x1cabba['state']=0xc;_0x1cabba[_0xf929('0xa2')]=_0x5a2771[_0xf929('0x10a')];_0x1d06d1[_0xf929('0xc6')](_0x1cabba)[_0xf929('0xad')](loggerCatch(_0xf929('0x1bc')));if(_0x1d06d1[_0xf929('0x1a7')](_0x5a2771[_0xf929('0x10a')],_0x3305db,_0x579946)){if(_0x1cabba['countbusyretry']+_0x1cabba[_0xf929('0xef')]+_0x1cabba[_0xf929('0xfd')]+_0x1cabba[_0xf929('0xfe')]+_0x1cabba['countdropretry']+_0x1cabba[_0xf929('0xff')]+_0x1cabba['countmachineretry']+_0x1cabba[_0xf929('0xf1')]>=_0x579946['dialGlobalMaxRetry']){_0x1d06d1[_0xf929('0xf2')](_0x1cabba,_0x5e7a09,_0x3de73f,_0x5a2771[_0xf929('0x10a')]);}else{_0x1d06d1[_0xf929('0xf4')](_0x1cabba,_0x5e7a09,_0x3de73f,_0x5a2771[_0xf929('0x10a')]);}}}});};Dialer[_0xf929('0x17')][_0xf929('0xf2')]=function(_0x33ec5b,_0x156f09,_0x4f841c,_0x52a5bd){var _0x4f0821=new Final(_0x33ec5b);_0x4f0821['state']=0xf;_0x4f0821[_0xf929('0xa2')]='Global';this['createStateFinal'](_0x4f0821,_0x156f09,_0x4f841c,_0x52a5bd);};Dialer[_0xf929('0x17')][_0xf929('0xf4')]=function(_0x5932eb,_0x3a7ca4,_0x26540d,_0x226cd9){this['moveContactManagedDialer'](_0x5932eb)[_0xf929('0xb9')](function(){return _0x3a7ca4(msgResponse('[callProgressDetecting]',_0xf929('0xd3'),_0x226cd9));})[_0xf929('0xad')](function(){return _0x26540d(msgResponse(_0xf929('0x1bd'),'Failure',_0xf929('0x1be')));});};Dialer[_0xf929('0x17')][_0xf929('0x8')]=function(_0x2c6231){var _0x482154=_0x2c6231[_0xf929('0x1bf')]/0x64;var _0x840dbb=_0x2c6231[_0xf929('0x5c')]/(_0x2c6231[_0xf929('0x5c')]+_0x2c6231[_0xf929('0xdf')]);var _0x427246=Math['round'](_0x2c6231['predictiveIntervalAvailable']*(_0x2c6231['predictiveIntervalMaxThreshold']/0x64));var _0x2bd795=Math[_0xf929('0x1c0')](_0x2c6231[_0xf929('0x6c')]*(_0x2c6231[_0xf929('0x1c1')]/0x64));var _0x2960a1=_0x2c6231[_0xf929('0x1c2')]+_0x2c6231[_0xf929('0x4d')];var _0x345c7b=Math[_0xf929('0x1c3')](_0x2c6231[_0xf929('0x6e')]*_0x2c6231['erlangAbandonmentRate']*_0x2c6231[_0xf929('0x69')]*_0x2c6231[_0xf929('0x6a')]);if(_[_0xf929('0x39')](_0x2c6231[_0xf929('0x87')])){if(!_[_0xf929('0x39')](_0x2c6231['startPredictive'])){_0x2c6231[_0xf929('0x24')]=undefined;loggerPredictive[_0xf929('0x8f')](_0xf929('0x1c4'),'check\x20predictive\x20is\x20not\x20undefine');}if(!_[_0xf929('0x39')](_0x2c6231['handlePredictive'])){loggerPredictive[_0xf929('0x8f')](_0xf929('0x1c4'),'check\x20handlePredictive\x20is\x20not\x20undefine');clearInterval(_0x2c6231[_0xf929('0x8a')]);_0x2c6231['handlePredictive']=undefined;}_0x2c6231[_0xf929('0x87')]=moment()['format'](_0xf929('0xf8'));loggerPredictive[_0xf929('0x78')](_0x2c6231[_0xf929('0x3c')],_0xf929('0x1c5'),_0x2c6231[_0xf929('0x87')]);this['handlePower'](_0x2c6231,0x1);}else if(ifInterval(_0x2c6231[_0xf929('0x1c6')],_0x2c6231[_0xf929('0x87')])){this[_0xf929('0x155')](_0x2c6231,0x1);loggerPredictiveCalls['info'](_0xf929('0x1c7'),_0x2c6231[_0xf929('0x87')],_0x2c6231['name']);_0x2c6231[_0xf929('0x6e')]=0x0;_0x2c6231[_0xf929('0x68')]=0x0;}else if(_0x482154<_0x840dbb&&_0x2c6231[_0xf929('0x1c8')]===_0xf929('0x1c9')){freeVariablesPredictive(_0x2c6231);loggerPredictive[_0xf929('0x78')](_0xf929('0x1ca'),'Dropped\x20calls\x20day',_0x840dbb,_0xf929('0x87'),_0x2c6231['name']);}else if(_0x345c7b<_0x2c6231['predictiveIntervalErlangCallsDroppedCalls']&&_0x2c6231[_0xf929('0x1c8')]===_0xf929('0x1c9')){freeVariablesPredictive(_0x2c6231);loggerPredictive[_0xf929('0x78')](_0xf929('0x1cb'),'Max\x20Drop\x20',_0x345c7b,_0xf929('0x1cc'),_0x2c6231[_0xf929('0x68')],_0xf929('0x87'),_0x2c6231['name']);}else if(!ifInterval(_0x2c6231[_0xf929('0x1c6')],_0x2c6231[_0xf929('0x87')])&&_[_0xf929('0x39')](_0x2c6231[_0xf929('0x24')])&&!_[_0xf929('0x39')](_0x2c6231[_0xf929('0x87')])){_0x2c6231[_0xf929('0x24')]=moment()[_0xf929('0x74')](_0xf929('0xf8'));loggerPredictive[_0xf929('0x78')](_0x2c6231[_0xf929('0x3c')],_0xf929('0x1cd'),_0x2c6231['startPredictive']);this['averageHandleTime'](_0x2c6231['dialPredictiveInterval'])[_0xf929('0xb9')](this[_0xf929('0x1ce')](_0x2c6231))[_0xf929('0xb9')](mergeDataErlangB(_0x2c6231))[_0xf929('0xb9')](this['startMethodPredictive'](_0x2c6231))[_0xf929('0xad')](loggerCatchPredictive(_0xf929('0x1cf'),_0x2c6231));}else if(!ifInterval(_0x2c6231[_0xf929('0x1c6')],_0x2c6231[_0xf929('0x24')])){_0x2c6231[_0xf929('0x68')]=0x0;_0x2c6231['startPredictive']=moment()[_0xf929('0x74')](_0xf929('0xf8'));loggerPredictive[_0xf929('0x78')](_0x2c6231['name'],_0xf929('0x1d0'),_0x2c6231[_0xf929('0x24')]);clearInterval(_0x2c6231[_0xf929('0x8a')]);_0x2c6231['handlePredictive']=undefined;this[_0xf929('0xba')](_0x2c6231[_0xf929('0x1c6')])[_0xf929('0xb9')](this['getDataPredictive'](_0x2c6231))['then'](mergeDataErlangB(_0x2c6231))[_0xf929('0xb9')](this[_0xf929('0x1d1')](_0x2c6231))[_0xf929('0xad')](loggerCatchPredictive('Predictive\x20for\x20every\x20interval',_0x2c6231));}else if(_0x2c6231['predictiveIntervalAvailable']&&_0x2960a1<_0x2c6231[_0xf929('0x6c')]-_0x2bd795){freeVariablesPredictive(_0x2c6231);loggerPredictive[_0xf929('0x78')](_0x2c6231['name'],'switch\x20in\x20progressive\x20because\x20available\x20agents\x20(',_0x2960a1,_0xf929('0x1d2'),_0x2c6231[_0xf929('0x6c')],'-',_0x2bd795,'=',_0x2c6231[_0xf929('0x6c')]-_0x2bd795,')');}else if(_0x2c6231[_0xf929('0x6c')]&&_0x2960a1>_0x2c6231['predictiveIntervalAvailable']+_0x427246){freeVariablesPredictive(_0x2c6231);loggerPredictive[_0xf929('0x78')](_0x2c6231[_0xf929('0x3c')],_0xf929('0x1d3'),_0x2960a1,_0xf929('0x1d4'),_0x2c6231[_0xf929('0x6c')],'+',_0x427246,'=',_0x2c6231[_0xf929('0x6c')]+_0x427246,')');}};Dialer[_0xf929('0x17')][_0xf929('0x1ce')]=function(_0x46312f){var _0x54920c=this;return function(_0x4ffb79){return new BPromise(function(_0xfc0993,_0x562b01){_[_0xf929('0x86')](_0x46312f,_0x4ffb79[0x0]);if(checkGetDataPredictive(_0x4ffb79[0x0])){var _0x139d1a=_0x46312f[_0xf929('0x6c')]=_0x46312f[_0xf929('0x4d')]+_0x46312f[_0xf929('0x1c2')];var _0x2ed989=_0x46312f[_0xf929('0x1c6')]*0x3c;var _0x9a1438=_0x4ffb79[0x0]['predictiveIntervalAvgTalktime']+_0x4ffb79[0x0][_0xf929('0x64')];var _0x3bee2b=(_0x4ffb79[0x0][_0xf929('0x63')]+_0x4ffb79[0x0][_0xf929('0x67')]+_0x4ffb79[0x0][_0xf929('0x66')])/_0x4ffb79[0x0][_0xf929('0x6d')];_0x46312f[_0xf929('0x69')]=_0x3bee2b>0x0?_0x3bee2b:0x1;switch(_0x46312f[_0xf929('0x1c8')]){case _0xf929('0x1c9'):var _0x4a87b4=_0x46312f[_0xf929('0x1bf')]/0x64;return _0x54920c[_0xf929('0x1d5')](_0x139d1a,_0x2ed989,_0x9a1438,_0x3bee2b,_0x4a87b4)['then'](function(_0x2eb1cc){return _0xfc0993(_0x2eb1cc);});case _0xf929('0x1d6'):var _0x3d4002=_0x46312f[_0xf929('0x1bf')]/0x64;return _0x54920c['busyFactor'](_0x139d1a,_0x2ed989,_0x9a1438,_0x3bee2b,_0x3d4002)[_0xf929('0xb9')](function(_0x44b0ad){return _0xfc0993(_0x44b0ad);});default:return _0x562b01(msgResponse(_0xf929('0x1d7'),_0xf929('0x140'),_0xf929('0x1d8')));}}else{return _0x562b01(msgResponse(_0xf929('0x1d7'),_0xf929('0x140'),'check\x20failure'));}});};};Dialer[_0xf929('0x17')][_0xf929('0x1d9')]=function(_0x43bb4e){var _0x2d3f7e=this;return function(_0x327256){return new BPromise(function(_0x19ea4e,_0xfd4c57){_['merge'](_0x43bb4e,_0x327256[0x0]);if(checkGetDataPredictive(_0x327256[0x0])){loggerPredictive[_0xf929('0x78')](JSON[_0xf929('0x42')](_0x327256[0x0]));if(_0x43bb4e['dialPredictiveOptimization']===_0xf929('0x1c9')){return _0x2d3f7e[_0xf929('0xc3')](_0x43bb4e['id'])[_0xf929('0xb9')](function(_0x1d2635){var _0x2d40bd=_0x43bb4e[_0xf929('0x49')]-_0x1d2635[0x0][_0xf929('0x1da')];var _0x5aa81b=_0x43bb4e[_0xf929('0x1c6')]*0x3c;var _0x3cd078=_0x327256[0x0][_0xf929('0x65')]+_0x327256[0x0]['predictiveIntervalAvgHoldtime'];var _0x3fd031=(_0x327256[0x0][_0xf929('0x63')]+_0x327256[0x0][_0xf929('0x67')]+_0x327256[0x0]['predictiveIntervalDroppedCallsCallersExit'])/_0x327256[0x0][_0xf929('0x6d')];var _0x5d3b13=_0x43bb4e['dialPredictiveOptimizationPercentage']/0x64;_0x43bb4e['predictiveIntervalPauses']=_0x1d2635[0x0][_0xf929('0x1da')]||0x0;_0x43bb4e[_0xf929('0x69')]=_0x3fd031>0x0?_0x3fd031:0x1;return _0x2d3f7e[_0xf929('0x1d5')](_0x2d40bd,_0x5aa81b,_0x3cd078,_0x3fd031,_0x5d3b13);})[_0xf929('0xb9')](function(_0x2223e8){return _0x19ea4e(_0x2223e8);})[_0xf929('0xad')](function(_0xc502a5){return _0xfd4c57(msgResponse(_0xf929('0x1db'),_0xf929('0x140'),JSON[_0xf929('0x42')](_0xc502a5)));});}if(_0x43bb4e[_0xf929('0x1c8')]===_0xf929('0x1d6')){return _0x2d3f7e[_0xf929('0xc3')](_0x43bb4e['id'])[_0xf929('0xb9')](function(_0x12bb38){var _0x359f2c=_0x43bb4e[_0xf929('0x49')]-_0x12bb38[0x0]['outboundQueuePauses'];var _0x3ddc3a=_0x43bb4e[_0xf929('0x1c6')]*0x3c;var _0x9fb6a5=_0x327256[0x0][_0xf929('0x65')]+_0x327256[0x0][_0xf929('0x64')];var _0x17e975=(_0x327256[0x0][_0xf929('0x63')]+_0x327256[0x0][_0xf929('0x67')]+_0x327256[0x0]['predictiveIntervalDroppedCallsCallersExit'])/_0x327256[0x0][_0xf929('0x6d')];var _0x2ab22e=_0x43bb4e[_0xf929('0x1bf')]/0x64;_0x43bb4e[_0xf929('0x6b')]=_0x12bb38[0x0][_0xf929('0x1da')]||0x0;_0x43bb4e[_0xf929('0x69')]=_0x17e975>0x0?_0x17e975:0x1;return _0x2d3f7e[_0xf929('0x1dc')](_0x359f2c,_0x3ddc3a,_0x9fb6a5,_0x17e975,_0x2ab22e);})[_0xf929('0xb9')](function(_0x26afe9){return _0x19ea4e(_0x26afe9);})['catch'](function(_0x212251){return _0xfd4c57(msgResponse(_0xf929('0x1db'),_0xf929('0x140'),JSON[_0xf929('0x42')](_0x212251)));});}}else{return _0xfd4c57(msgResponse(_0xf929('0x1d7'),_0xf929('0x140'),_0xf929('0x1dd')));}});};};Dialer[_0xf929('0x17')][_0xf929('0x1d1')]=function(_0x2d8df0){var _0x2a6250=this;return function(){var _0x4700c3=0x0;var _0x45f94b=Math['floor'](_0x2d8df0['erlangCallToSecond']*0x3e8);if(_0x45f94b>0x0){_0x45f94b=_0x45f94b<0x64?0x64:_0x45f94b;loggerPredictive[_0xf929('0x78')](_0x2d8df0['name'],'one\x20call\x20every:',_0x45f94b,_0xf929('0x43'));_0x2d8df0['handlePredictive']=setInterval(function(){_0x2a6250[_0xf929('0x8a')](_0x2d8df0);loggerPredictiveCalls['info'](_0xf929('0x1de'),_0x4700c3+=0x1);},_0x45f94b);}else{loggerPredictive[_0xf929('0x78')](_0x2d8df0['name'],_0xf929('0x1df'));}};};Dialer[_0xf929('0x17')]['checkContactBlack']=function(_0x514e33,_0x488f40){var _0x32e20f=this;return function(_0x20f09f){if(_[_0xf929('0x41')](_0x20f09f)){if(_[_0xf929('0xa9')](_0x488f40[_0xf929('0xcf')])||!_0x488f40['recallme']){if(_0x514e33[_0xf929('0x153')]===_0xf929('0x1e0')){_0x514e33[_0xf929('0x1e1')]=_[_0xf929('0x39')](_0x514e33[_0xf929('0x1e1')])?!![]:_0x514e33['queueStatusComplete'];var _0x4be64a=uuid['v4']();_0x32e20f['actions'][_0x4be64a]=new Action(_0x514e33,_0x488f40,_0x4be64a);loggerBooked[_0xf929('0x78')]('[booked][checkContactBlack]',_0x4be64a,_0xf929('0x1e2'),JSON[_0xf929('0x42')](_0x514e33[_0xf929('0x1e1')]),'Queue:\x20',_0x514e33['name']);if(_0x514e33[_0xf929('0x1e1')]){_0x514e33[_0xf929('0x1e1')]=![];_0x32e20f[_0xf929('0x26')][_0x32e20f[_0xf929('0x21')][_0x4be64a][_0xf929('0xb0')]]=[];ami['Action']({'actionid':_0x4be64a,'action':'queuestatus','queue':_0x514e33[_0xf929('0x3c')]})[_0xf929('0xad')](function(){_0x32e20f[_0xf929('0xaf')](_0x514e33);_0x32e20f[_0xf929('0xbb')]({'active':![],'ContactId':_0x32e20f[_0xf929('0x21')][_0x4be64a][_0xf929('0xcd')],'ListId':_0x32e20f['actions'][_0x4be64a]['ListId'],'VoiceQueueId':_0x32e20f[_0xf929('0x21')][_0x4be64a][_0xf929('0xf9')]||undefined,'CampaignId':_0x32e20f[_0xf929('0x21')][_0x4be64a][_0xf929('0xd0')]||undefined})[_0xf929('0xad')](loggerCatch(_0xf929('0x1e3')));delete _0x32e20f[_0xf929('0x21')][_0x4be64a];});}else{loggerBooked[_0xf929('0x78')]('[booked][checkContactBlack][else]',JSON['stringify'](_0x514e33[_0xf929('0x1e1')]),_0xf929('0x1e4'),_0x514e33[_0xf929('0x3c')]);_0x32e20f[_0xf929('0xaf')](_0x514e33);_0x32e20f[_0xf929('0xbb')]({'active':![],'ContactId':_0x32e20f['actions'][_0x4be64a][_0xf929('0xcd')],'ListId':_0x32e20f[_0xf929('0x21')][_0x4be64a][_0xf929('0xce')],'VoiceQueueId':_0x32e20f['actions'][_0x4be64a]['VoiceQueueId']||undefined,'CampaignId':_0x32e20f[_0xf929('0x21')][_0x4be64a]['CampaignId']||undefined})[_0xf929('0xad')](loggerCatch(_0xf929('0x1e3')));delete _0x32e20f[_0xf929('0x21')][_0x4be64a];}}else{return _0x32e20f[_0xf929('0x163')](_0x514e33,_0x488f40);}}else{if(getDiff(_0x488f40[_0xf929('0x1e5')])<_0x514e33['dialRecallMeTimeout']*0x3c){if(_0x488f40[_0xf929('0x1e6')]&&!_0x488f40[_0xf929('0x1e6')][_0xf929('0x1e7')]){_0x32e20f[_0xf929('0x1b')][_0xf929('0x12b')](_0x488f40['id'])[_0xf929('0x1a')](function(){_0x32e20f[_0xf929('0xaf')](_0x514e33);});}else{_0x32e20f['unlockContact']({'active':![]},_0x488f40['id'],0x1)[_0xf929('0x1a')](function(){_0x32e20f[_0xf929('0xaf')](_0x514e33);});}}else{_0x514e33[_0xf929('0x60')]+=0x1;_0x32e20f[_0xf929('0xaf')](_0x514e33);if(_0x514e33['dialRecallInQueue']){_0x32e20f[_0xf929('0xbb')]({'active':![],'recallme':![],'UserId':null,'ContactId':_0x488f40['ContactId'],'ListId':_0x488f40[_0xf929('0xce')],'VoiceQueueId':_0x488f40[_0xf929('0xf9')]||undefined,'CampaignId':_0x488f40[_0xf929('0xd0')]||undefined})['catch'](loggerCatch(_0xf929('0x1e8')));_0x32e20f[_0xf929('0xc6')](createObjHistory(_0x514e33,_0x488f40,_0xf929('0x1e9'),0x17,_0xf929('0x1ea')))['catch'](loggerCatch('[Originate][HistoryDialRecallInQueue][historyCatch]'));}else{_0x32e20f[_0xf929('0xe6')](createObjHistory(_0x514e33,_0x488f40,_0xf929('0x1eb'),0x16,_0xf929('0x1ec')),_0xf929('0x1ed'),_0xf929('0x1ee'));}}}}else{_0x514e33['outboundBlacklistCallsDay']+=0x1;_0x32e20f['saveInDb'](createObjHistory(_0x514e33,_0x488f40,_0xf929('0x1ef'),0xd,_0xf929('0x1f0')),'[Originate][historyBlacklist]',_0xf929('0x1f1'));throw _0xf929('0x1f2');}};};Dialer[_0xf929('0x17')][_0xf929('0x159')]=function(_0x296fa6){var _0x42f95f=this;var _0x527924=_0x296fa6['limitCalls']-_0x296fa6[_0xf929('0x93')]-_0x296fa6[_0xf929('0xbf')];emitCampaignSummary(_0x296fa6);if(_0x527924>0x0){if(_0x527924>this['maxNumberOriginate']){_0x527924=this[_0xf929('0x1f')];}_0x296fa6[_0xf929('0xbf')]+=_0x527924;this[_0xf929('0xc1')](_0x296fa6['id'],_0x527924,_0x296fa6[_0xf929('0x1f3')],_0x296fa6)[_0xf929('0xb9')](function(_0x6f7051){_0x296fa6['temp']-=_0x527924;_0x296fa6['temp']=_0x296fa6[_0xf929('0xbf')]>0x0?_0x296fa6['temp']:0x0;if(!checkContactEmpty(_0x6f7051)){_0x296fa6[_0xf929('0x3a')]=_0xf929('0x99');logger[_0xf929('0x78')](_0xf929('0x1f4')+_0x296fa6['name']);}else{_0x296fa6['originated']+=_0x6f7051[_0xf929('0x92')];_0x296fa6['message']=_0xf929('0x1f5');for(var _0x1c963a=0x0;_0x1c963a<_0x6f7051[_0xf929('0x92')];_0x1c963a+=0x1){_0x296fa6['ivrTotalCallsDays']+=0x1;if(_[_0xf929('0xa9')](_0x6f7051[_0x1c963a])||_[_0xf929('0xa9')](_0x6f7051[_0x1c963a][_0xf929('0x168')])||_['isNil'](_0x6f7051[_0x1c963a][_0xf929('0x168')][_0xf929('0x167')])){_0x42f95f[_0xf929('0x1f6')](_0xf929('0x1f7'),_0x296fa6,_0x6f7051[_0x1c963a]);}else{_0x42f95f[_0xf929('0xb8')](_[_0xf929('0xcc')](_0x6f7051[_0x1c963a],['CampaignId',_0xf929('0x1f8')]))[_0xf929('0xb9')](_0x42f95f[_0xf929('0x1f9')](_0x296fa6,_0x6f7051[_0x1c963a]))[_0xf929('0xad')](_0x42f95f[_0xf929('0xca')](_0xf929('0x1fa'),_0x296fa6));}}}})[_0xf929('0xad')](loggerGetContactDialer(_0xf929('0x1fb'),_0x296fa6,_0x527924));}};Dialer[_0xf929('0x17')]['handlePower']=function(_0x235d66,_0xaa86bc){var _0x1feab2=this;var _0x3d11e3=[];var _0x2a6cfc=_0xaa86bc>=0x1?_0xaa86bc:0x1;if(_0x235d66['dialMethod']==='booked'){_0x2a6cfc=0x1;}var _0x4a41b1=Math['floor'](_0x235d66[_0xf929('0x1c2')]*_0x2a6cfc)-_0x235d66[_0xf929('0x93')]-_0x235d66[_0xf929('0xbf')];emitVoiceQueueSummary(_0x235d66);if(_0x235d66[_0xf929('0x1fc')]>0x0){var _0xa28f1d=_0x235d66[_0xf929('0x1fc')]-_0x235d66[_0xf929('0x93')]-_0x235d66[_0xf929('0x4d')]-_0x235d66[_0xf929('0xbf')]-_0x235d66[_0xf929('0x4a')];if(_0x4a41b1>_0xa28f1d){_0x4a41b1=_0xa28f1d;}}if(_0x4a41b1>0x0){if(_0x235d66[_0xf929('0x153')]===_0xf929('0x1e0')){_0x4a41b1=0x1;}if(_0x4a41b1>this['maxNumberOriginate']){_0x4a41b1=this[_0xf929('0x1f')];}_0x235d66[_0xf929('0xbf')]+=_0x4a41b1;for(var _0x51ed4b in this[_0xf929('0x1e')]){if(typeof this[_0xf929('0x1e')][_0x51ed4b]!==_0xf929('0xa7')){if(this['agents'][_0x51ed4b]['state']===_0xf929('0x1fd')&&this[_0xf929('0x1e')][_0x51ed4b]['status']==='reachable'){_0x3d11e3[_0xf929('0x128')](this[_0xf929('0x1e')][_0x51ed4b]['id']);}}}this[_0xf929('0xbe')](_0x235d66['id'],_0x3d11e3,_0x4a41b1,_0x235d66[_0xf929('0x1f3')],_0x235d66)[_0xf929('0xb9')](function(_0x20a336){_0x235d66[_0xf929('0xbf')]-=_0x4a41b1;_0x235d66[_0xf929('0xbf')]=_0x235d66[_0xf929('0xbf')]>0x0?_0x235d66[_0xf929('0xbf')]:0x0;if(!checkContactEmpty(_0x20a336)){_0x1feab2['countReScheduled'](_0x235d66)[_0xf929('0xb9')](sendMessageReschedule(_0x235d66))[_0xf929('0xad')](loggerCatch('[countReScheduled]\x20'));}else{_0x235d66[_0xf929('0x93')]+=_0x20a336[_0xf929('0x92')];_0x235d66[_0xf929('0x3a')]=_0x235d66[_0xf929('0x153')]===_0xf929('0x1e0')?'ACTIVE':_0xf929('0x1f5');for(var _0x34e751=0x0;_0x34e751<_0x20a336[_0xf929('0x92')];_0x34e751+=0x1){if(_[_0xf929('0xa9')](_0x20a336[_0x34e751])||_[_0xf929('0xa9')](_0x20a336[_0x34e751][_0xf929('0x168')])||_[_0xf929('0xa9')](_0x20a336[_0x34e751][_0xf929('0x168')][_0xf929('0x167')])){_0x1feab2[_0xf929('0x1f6')](_0xf929('0x1f7'),_0x235d66,_0x20a336[_0x34e751]);}else{_0x1feab2[_0xf929('0xb6')](_[_0xf929('0xcc')](_0x20a336[_0x34e751],[_0xf929('0xf9'),'Contact.phone']))[_0xf929('0xb9')](_0x1feab2[_0xf929('0x1f9')](_0x235d66,_0x20a336[_0x34e751]))['catch'](_0x1feab2[_0xf929('0xca')]('[actionOriginate]\x20',_0x235d66));}}}})['catch'](loggerGetContactDialer(_0xf929('0x1fe'),_0x235d66,_0x4a41b1));}};Dialer[_0xf929('0x17')][_0xf929('0x8a')]=function(_0x1caec8){if(_0x1caec8['dialLimitQueue']>0x0){var _0x206f7d=_0x1caec8['dialLimitQueue']-_0x1caec8['originated']-_0x1caec8[_0xf929('0x4d')];if(_0x206f7d>0x0){this['tryOriginatePredictive'](_0x1caec8);}else{loggerPredictiveCalls[_0xf929('0x78')](_0xf929('0x1ff'));}}else{this[_0xf929('0x200')](_0x1caec8);}};Dialer['prototype'][_0xf929('0x200')]=function(_0x3bf65b){var _0x594200=this;var _0x2d5717=[];_0x3bf65b['originated']+=0x1;for(var _0x5ca4e9 in this['agents']){if(typeof this[_0xf929('0x1e')][_0x5ca4e9]!=='undefined'){if(this[_0xf929('0x1e')][_0x5ca4e9]['state']===_0xf929('0x1fd')&&this[_0xf929('0x1e')][_0x5ca4e9][_0xf929('0xab')]==='reachable'){_0x2d5717[_0xf929('0x128')](this[_0xf929('0x1e')][_0x5ca4e9]['id']);}}}this[_0xf929('0xbe')](_0x3bf65b['id'],_0x2d5717,0x1,_0x3bf65b[_0xf929('0x1f3')],_0x3bf65b)['then'](function(_0x305568){if(!checkContactEmpty(_0x305568)){checkContactLowerLimitOriginate(_0x3bf65b,0x1,0x0);_0x594200['countReScheduled'](_0x3bf65b)[_0xf929('0xb9')](sendMessageReschedule(_0x3bf65b))[_0xf929('0xad')](loggerCatch('[countReScheduled]\x20'));}else{_0x3bf65b[_0xf929('0x3a')]=_0xf929('0x1f5');if(_[_0xf929('0xa9')](_0x305568[0x0])||_[_0xf929('0xa9')](_0x305568[0x0][_0xf929('0x168')])||_[_0xf929('0xa9')](_0x305568[0x0][_0xf929('0x168')][_0xf929('0x167')])){_0x594200[_0xf929('0x1f6')](_0xf929('0x1f7'),_0x3bf65b,_0x305568[0x0]);}else{_0x594200[_0xf929('0xb6')](_[_0xf929('0xcc')](_0x305568[0x0],[_0xf929('0xf9'),_0xf929('0x1f8')]))['then'](_0x594200[_0xf929('0x1f9')](_0x3bf65b,_0x305568[0x0]))[_0xf929('0xad')](_0x594200['loggerHandler'](_0xf929('0x201'),_0x3bf65b));}}})[_0xf929('0xad')](loggerGetContactDialer('[getContactDialerPredictive]',_0x3bf65b,0x1));emitVoiceQueueSummary(_0x3bf65b);};Dialer[_0xf929('0x17')][_0xf929('0x1d5')]=function(_0x3174da,_0x121201,_0x3ff669,_0x2556e7,_0x3c7f9b,_0x243bbb){loggerPredictive[_0xf929('0x78')]('--------\x20Drop\x20Rate\x20--------');loggerPredictive[_0xf929('0x78')](_0xf929('0x202'),_0x3174da);loggerPredictive['info']('Interval:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x121201);loggerPredictive[_0xf929('0x78')](_0xf929('0x203'),_0x3ff669);loggerPredictive[_0xf929('0x78')]('P:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x2556e7);loggerPredictive[_0xf929('0x78')](_0xf929('0x204'),_0x3c7f9b);loggerPredictive['info']('---------------------------');return new BPromise(function(_0x3886fb,_0x5e1ac5){if(_0x3174da<=0x0||isNaN(_0x3174da)){return _0x5e1ac5(msgResponse(_0xf929('0x205'),_0xf929('0x191'),_0xf929('0x206')+_0x3174da));}if(_0x3ff669<=0x0||isNaN(_0x3ff669)){return _0x5e1ac5(msgResponse('[abandonmentRate]',_0xf929('0x191'),_0xf929('0x207')+_0x3ff669));}if(_0x2556e7<=0x0||isNaN(_0x2556e7)){return _0x5e1ac5(msgResponse(_0xf929('0x205'),_0xf929('0x191'),_0xf929('0x208')+_0x2556e7));}if(_0x121201<=0x0||isNaN(_0x121201)){return _0x5e1ac5(msgResponse(_0xf929('0x205'),_0xf929('0x191'),'interval\x20=\x20'+_0x121201));}if(_0x3c7f9b<=0x0||isNaN(_0x3c7f9b)){return _0x5e1ac5(msgResponse(_0xf929('0x205'),'Error',_0xf929('0x209')+_0x3c7f9b));}_0x243bbb=_0x243bbb||0x0;var _0x1e5766=0x1/_0x3ff669;var _0x4917c9=0x0;var _0x5ad877=0x0;var _0x29c84a=0x0;var _0x3352f3=0x0;for(var _0x3a005c=0x0;_0x29c84a<_0x3c7f9b;_0x3a005c+=0x1){_0x5ad877=_0x3a005c/_0x121201;_0x4917c9=(_0x2556e7*_0x5ad877+_0x243bbb)/_0x1e5766;_0x29c84a=erlangb(_0x4917c9,_0x3174da);_0x3352f3=_0x4917c9/_0x3174da*(0x1-erlangb(_0x4917c9,_0x3174da));}return _0x3886fb({'erlangCalls':_0x3a005c,'erlangCallToSecond':_0x121201/_0x3a005c,'erlangAbandonmentRate':_0x29c84a,'erlangBusyFactor':_0x3352f3});});};Dialer[_0xf929('0x17')][_0xf929('0x1dc')]=function(_0x4f7ba2,_0xaa2746,_0x1d6bf7,_0x402abb,_0x5f30d7,_0x2520b4){loggerPredictive[_0xf929('0x78')](_0xf929('0x20a'));loggerPredictive['info']('M:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x4f7ba2);loggerPredictive[_0xf929('0x78')]('Interval:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0xaa2746);loggerPredictive[_0xf929('0x78')](_0xf929('0x203'),_0x1d6bf7);loggerPredictive['info'](_0xf929('0x20b'),_0x402abb);loggerPredictive[_0xf929('0x78')]('Umin:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x5f30d7);loggerPredictive[_0xf929('0x78')](_0xf929('0x7e'));return new BPromise(function(_0x1e8fa5,_0x30e729){if(_0x4f7ba2<=0x0||isNaN(_0x4f7ba2)){return _0x30e729(msgResponse(_0xf929('0x20c'),_0xf929('0x191'),_0xf929('0x206')+_0x4f7ba2));}if(_0x1d6bf7<=0x0||isNaN(_0x1d6bf7)){return _0x30e729(msgResponse('[busyFactor]',_0xf929('0x191'),_0xf929('0x207')+_0x1d6bf7));}if(_0x402abb<=0x0||isNaN(_0x402abb)){return _0x30e729(msgResponse('[busyFactor]',_0xf929('0x191'),_0xf929('0x208')+_0x402abb));}if(_0xaa2746<=0x0||isNaN(_0xaa2746)){return _0x30e729(msgResponse(_0xf929('0x20c'),_0xf929('0x191'),_0xf929('0x20d')+_0xaa2746));}if(_0x5f30d7<=0x0||isNaN(_0x5f30d7)){return _0x30e729(msgResponse('[busyFactor]',_0xf929('0x191'),_0xf929('0x20e')+_0x5f30d7));}_0x2520b4=_0x2520b4||0x0;var _0x57549d=0x1/_0x1d6bf7;var _0xfb872e=0x0;var _0x537830=0x0;var _0x12854d=0x0;var _0x2b0d4d=0x0;for(var _0x310950=0x0;_0x2b0d4d<_0x5f30d7;_0x310950+=0x1){_0x537830=_0x310950/_0xaa2746;_0xfb872e=(_0x402abb*_0x537830+_0x2520b4)/_0x57549d;_0x12854d=erlangb(_0xfb872e,_0x4f7ba2);_0x2b0d4d=_0xfb872e/_0x4f7ba2*(0x1-erlangb(_0xfb872e,_0x4f7ba2));}return _0x1e8fa5({'erlangCalls':_0x310950,'erlangCallToSecond':_0xaa2746/_0x310950,'erlangAbandonmentRate':_0x12854d,'erlangBusyFactor':_0x2b0d4d});});};module[_0xf929('0x20f')]=Dialer;
\ No newline at end of file
+var _0x000a=['format','voice:queue:%s','ivr','campaign:ivr:%s','campaign:save','info','Total\x20Calls:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','Answered\x20Calls:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','Dropped\x20Timeout:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','Dropped\x20Exit:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','Avg\x20Talk\x20Time\x20is\x20not\x20enough\x20for\x20predictive','Total\x20Calls\x20are\x20not\x20enough\x20for\x20predictive','History\x20information\x20are\x20empty','---------\x20ErlangB\x20---------','One\x20call\x20every:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','Drop\x20Rate:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','Agent\x20Busy\x20Factor:\x20\x20\x20\x20\x20\x20\x20\x20\x20','---------------------------','diff','clearing\x20variable\x20start\x20progressive','clearing\x20variable\x20start\x20predictive','handlePredictive','clearing\x20variable\x20handle\x20predictive','string','\x22%s\x22\x20<%s>','\x22\x22\x20<>','error','inspect','stack','length','undefined','[decremetOriginate]\x20object\x20originated\x20is\x20negative','contactsRescheduled','RESCHEDULED_CONTACTS','contacts','AVAILABLE_CONTACTS_FINISHED','[getContactDialer2][Empty]','sendMessageOneNotActive','is\x20not\x20active','IS_DISACTIVED','is\x20disactive','[syncQueueSummary]\x20Campaign\x20Ivr:\x20','state','statedesc','endtime','starttime','clearZombieChannels','[uniqueid]','[actions]','isNil','status','channel','catch','No\x20such\x20channel','updateOriginated','queue','[Dialer][checkChannel]','[Dialer][checkChannel][ivr]','countReScheduled','then','checkIsBlackList','checkIsBlackListIvr','[checkIsBlackListIvr]\x20','averageHandleTime','resolve','avgHandleTime','[averageHandleTime]\x20','rescheduleContact','[rescheduleContact]\x20','[unlockContact]\x20','temp','[getContactDialer]\x20','getContactDialerIvr','[getContactDialerIvr]\x20','getVoiceQueueRtPauses','[getVoiceQueueRtPauses]\x20','moveContactManagedDialer','[moveContactManagedDialer]\x20','createHistory','[updateOriginated]\x20object\x20originated\x20is\x20negative','[updateOriginated]\x20is\x20null\x20or\x20undefined','loggerHandler','emptyContact','saveInDb','ContactId','ListId','CampaignId','[emptyContact][createHistory]','[emptyContact]','Success','isTrunkReachable','reachable','variable','amdstatus','dialAMDActive','value','HANGUP','uniqueid','AMD','custom:amd','buildObj','[syncHangupInAMD][createHistory]','[syncHangupInAMD]','MACHINE','Machine','membername','countmachineretry','amd','[syncAgentComplete][createHistory][0]','countcongestionretry','countnoanswerretry','countdropretry','countagentrejectretry','stateGlobal','reason19\x20machine....','dialMachineMaxRetry','reason\x2019\x20machine....','add','dialMachineRetryFrequency','YYYY-MM-DD\x20HH:mm:ss','VoiceQueueId','HangupInAMD','[syncHangupInAMDIvr][createHistory]','[syncHangupInAMDIvr]','countglobal','countnosuchnumberretry','createStateFinal','minutes','[rescheduleContact][Machine]','ivrAnswerCallsDay','[syncHangupIvr][createHistory]','[syncHangupIvr]','dialQueueProject','AGI','Unknow','reason','agent','agiafterat','dialQueueProject2','dialAgiAfterHangupAgent','[syncAgentComplete]','syncAgentConnect','answertime','queueCallerAbandonCreateState','[syncAgentComplete][createHistory]','droptime','dialQueueTimeout','Drop','dialDropMaxRetry','dialDropRetryFrequency','[rescheduleContact][Drop]','calleridname','calleridnum','outboundDropCallsDayCallersExit','dropreason','CALLEREXIT','countabandonedretry','dialAbandonedMaxRetry','dialAbandonedRetryFrequency','[rescheduleContact][Abandoned]','Abandoned','[syncAgentComplete][createHistory][11]','actionid','locked','paused','agents','stateinterface','push','merge','pick','idHopper','[unlockQueueStatus][undefined]','queueStatusComplete','[booked][unlockQueueStatus]','run','finally','[unlock][syncQueueStatusComplete]','queueBookedRR','_rr','unlockRR','[booked][RR]','Agent:\x20','contactAgent-idHopper:\x20','[Catch][Preview][syncQueueStatusComplete]','[booked][unlock]','[booked][unlock2]','loopCampaigns','resetActiveCalls','syncCampaigns','checkIsTrunkReachable','TRUNK_IS_NOT_REACHABLE','\x20trunk\x20is\x20not\x20reachable','checkIfTime','checkIfTimeIntervals','ifTime','INTERVAL_IS_NULL','Failure','\x20Intervals\x20is\x20null\x20','INTERVAL_IS_EMPTY','\x20Intervals\x20is\x20empty\x20','timezones','TIMEZONE_UNKNOW','\x20Timezone\x20unknow\x20','Action','command','iftime\x20%s,%s','interval','true','content','indexOf','GLOBAL_INTERVAL_IS_OVERTIME','INTERVAL_IS_OVERTIME','[ifTime][promiseAll]','Global:\x20','\x20Interval\x20is\x20overtime:\x20','checkDialMethod','progressive','handlePower','dialPowerLevel','Queue','method\x20not\x20recognized','dialGlobalInterval','[syncQueueSummary]','dialTimezone','launchHandleIvr','[syncCampaigns]','\x5cw{0,','pow','replace','random','match','actionOriginate','originate','Contact','phone','getCaller','\x22agi://%s/square,%s\x22','NONE','\x22%s,%s%s,,,%s\x22','ACTIVE','xcally-motion-dialer','XMD-AMDGREETING','dialAMDGreeting','XMD-AMDAFTERGREETINGSILENCE','dialAMDAfterGreetingSilence','dialAMDTotalAnalysisTime','XMD-AMDMINWORDLENGTH','dialAMDMinWordLength','XMD-AMDBETWEENWORDSSILENCE','dialAMDBetweenWordsSilence','XMD-AMDMAXIMUMNUMBEROFWORDS','dialAMDMaximumNumberOfWords','XMD-AMDSILENCETHRESHOLD','dialAMDSilenceThreshold','XMD-AMDMAXIMUMWORDLENGTH','dialAMDMaximumWordLength','XMD-CAMPAIGNID','tags','createdAt','updatedAt','XMD-','toUpper','dialRandomLastDigitCallerIdNumber','TrunkBackup','XMD-ORIGINATECALLERIDNAME','originatecalleridname','XMD-ORIGINATECALLERIDNUM','SIP/%s/%s%s','dialPrefix','substring','dialCutDigit','OriginateError','[originate][error]','Error','responsetime','getQueue','isSuccess','response','checkRetriveMax','countbusyretry','dialNoAnswerRetryFrequency','[rescheduleContact][NoAnswer]','dialBusyMaxRetry','dialBusyRetryFrequency','[rescheduleContact]\x20[Busy]','dialCongestionMaxRetry','dialCongestionRetryFrequency','[rescheduleContact]\x20[Congestion]','dialNoSuchNumberMaxRetry','dialNoSuchNumberRetryFrequency','dialAgentRejectRetryFrequency','callProgressDetecting','object','[callProgressDetecting]','evt\x20is\x20undefine','NoSuchNumber','custom:agentnosuchnumber','reason\x200\x20no\x20such\x20number....','NoAnswer','custom:agentnoanswer','noanswer','reason\x203\x20ringing\x20no\x20answer','Busy','custom:agentbusy','busy','[syncAgentComplete][createHistory][5]','reason\x205\x20busy','Congestion','congestion','[syncAgentComplete][createHistory][8]','reason\x208\x20congestion','reason\x2011\x20abandoned','AgentReject','custom:agentreject','agentreject','dialAgentRejectMaxRetry','reason\x2020\x20agentreject','[syncAgentComplete][createHistory][?]','dialGlobalMaxRetry','Global','[moveContactManagedDialer][0]','dialPredictiveOptimizationPercentage','predictiveIntervalAvailable','predictiveIntervalMaxThreshold','round','predictiveIntervalMinThreshold','floor','[startMethodPredictive][StartProgressive]','check\x20predictive\x20is\x20not\x20undefine','check\x20handlePredictive\x20is\x20not\x20undefine','collection\x20data\x20in\x20progressive\x20at','dialPredictiveInterval','[startMethodPredictive][StartProgressive][Loop]','dialPredictiveOptimization','[stopMethodPredictive][ReStartProgressive][ExceededDropDay]','dropRate','[stopMethodPredictive][ReStartProgressive][ExceededDropInterval]','Drop\x20in\x20this\x20interval','startMethodPredictive','Predictive\x20after\x20first\x20interval','recalculate\x20predictive\x20at','getDataPredictive','Predictive\x20for\x20every\x20interval','switch\x20in\x20progressive\x20because\x20available\x20agents\x20(',')\x20are\x20less\x20than\x20threshold\x20(',')\x20are\x20more\x20than\x20threshold\x20(','agentBusyFactor','busyFactor','[getDataPredictive]','Unknown\x20Predictive','check\x20failure','getDataPredictiveOld','outboundQueuePauses','[CatchErlangB]','one\x20call\x20every:','[handlePredictive]','fail\x20to\x20scheduled\x20calls','checkContactBlack','UserId','recallme','booked','queueStatusComplete:\x20','Queue:\x20','queuestatus','[unlockOriginate][syncQueueStatusComplete]','[booked][checkContactBlack][else]','Agent','unlockContact','dialRecallInQueue','RECALLINQUEUE','RecallInQueue','[Originate][HistoryDialRecallInQueue][historyCatch]','RECALLFAILEDTIMEOUT','[Originate][HistoryRecallClose][historyCatch]','[Originate][HistoryRecallClose]','BLACKLIST','Blacklist','[Originate][historyBlacklist]','limitCalls','dialOrderByScheduledAt','[getContactCampaign2][Empty]','RUNNING','ivrTotalCallsDays','Contact.phone','[actionOriginateIvr]\x20','[getContactCampaign2]','dialLimitQueue','pTalking','not_inuse','[countReScheduled]\x20','[actionOriginate]\x20','tryOriginatePredictive','[handlePredictive][limitChannel]','getContactDialer','[actionOriginatePredictive]\x20','[getContactDialerPredictive]','abandonmentRate','--------\x20Drop\x20Rate\x20--------','M:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','Interval:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','Ts:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','P:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','[abandonmentRate]','Ts\x20=\x20','interval\x20=\x20','Amax\x20=\x20','----\x20Agent\x20Busy\x20Factor\x20----','Umin:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','[busyFactor]','Umin\x20=\x20','exports','lodash','uuid','moment','md5','../preview/util/util','../../../config/logger','predictive','syncQueueSummary','../ami','redis','defaults','socket.io-emitter','../rpc/cmHopper','../rpc/cmHopperHistory','../rpc/cmHopperBlack','./final','./queueCallerAbandon','./hangup','env','XCALLY_IP_AGI','rrmemory','roundrobin','prototype','enqueue','tail','preview','voiceQueues','campaigns','trunks','maxNumberOriginate','actions','contactsId','uniqueId','optionPredictive','startPredictive','startProgressive','ivrOriginated','queueBooked','agentconnect','bind','queuecallerabandon','syncQueueCallerAbandon','originateresponse','syncOriginateResponse','agentcomplete','syncAgentComplete','custom:queuesummary','hangup','syncHangup','newexten','syncNewExten','varset','syncVarSet','queuemember','syncQueueMember','queuestatuscomplete','syncQueueStatusComplete','isUndefined','message','AGENTS_NOT_LOGGED','\x20AGENTS\x20NOT\x20LOGGED','NOT_ACTIVE','name','Intervals','isEmpty','Interval','\x20INTERVAL_IS_NULL','[ifTime][Action]','stringify','milliseconds','seconds','emit','type','outbound','strategy','answered','available','loggedIn','sumBillable','sumDuration','sumHoldTime','talking','total','unmanaged','abandoned','waiting','loggedInDb','dialActive','dialMethod','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialOriginateTimeout','outboundAnswerAgiCallsDay','outboundAnswerCallsDay','outboundBlacklistCallsDay','outboundBusyCallsDay','outboundCongestionCallsDay','outboundDropCallsDayACS','outboundDropCallsDayTimeout','outboundNoAnswerCallsDay','outboundOriginateFailureCallsDay','outboundReCallsDay','outboundRejectCallsDay','outboundUnknownCallsDay','predictiveIntervalAnsweredCalls','predictiveIntervalAvgHoldtime','predictiveIntervalAvgTalktime','predictiveIntervalDroppedCallsCallersExit','predictiveIntervalDroppedCallsTimeout','predictiveIntervalErlangCallsDroppedCalls','predictiveIntervalHitRate','predictiveIntervalMultiplicativeFactor','predictiveIntervalPauses','predictiveIntervalTotalCalls','originated','erlangCalls','erlangCallToSecond','erlangAbandonmentRate','erlangBusyFactor','Trunk','active','callerid'];(function(_0x1a47ad,_0x368f44){var _0x546b0d=function(_0x56d9b2){while(--_0x56d9b2){_0x1a47ad['push'](_0x1a47ad['shift']());}};_0x546b0d(++_0x368f44);}(_0x000a,0x19b));var _0xa000=function(_0x5ea998,_0x444793){_0x5ea998=_0x5ea998-0x0;var _0x42b893=_0x000a[_0x5ea998];return _0x42b893;};'use strict';var util=require('util');var _=require(_0xa000('0x0'));var BPromise=require('bluebird');var uuid=require(_0xa000('0x1'));var moment=require(_0xa000('0x2'));var rr=require('rr');var md5=require(_0xa000('0x3'));var Redis=require('ioredis');var ut=require(_0xa000('0x4'));var config=require('../../../config/environment/');var logger=require(_0xa000('0x5'))('dialer');var loggerBooked=require('../../../config/logger')('booked');var loggerPredictive=require(_0xa000('0x5'))(_0xa000('0x6'));var loggerPredictiveCalls=require('../../../config/logger')('predictiveCalls');var loggerSyncQueueSummary=require('../../../config/logger')(_0xa000('0x7'));var ami=require(_0xa000('0x8'));config[_0xa000('0x9')]=_[_0xa000('0xa')](config['redis'],{'host':'localhost','port':0x18eb});var io=require(_0xa000('0xb'))(new Redis(config[_0xa000('0x9')]));var cmHopper=require(_0xa000('0xc'));var cmHopperHistory=require(_0xa000('0xd'));var cmHopperBlack=require(_0xa000('0xe'));var voiceQueueRt=require('../rpc/voiceQueueRt');var Action=require('./action');var History=require('./history');var Final=require(_0xa000('0xf'));var AgentComplete=require('./agentComplete');var QueueCallerAbandon=require(_0xa000('0x10'));var Hangup=require(_0xa000('0x11'));var ipAgi=process[_0xa000('0x12')][_0xa000('0x13')]||'127.0.0.1';var strategy={'rrmemory':_0xa000('0x14'),'roundrobin':_0xa000('0x15')};var Sequence=function(){};Sequence[_0xa000('0x16')][_0xa000('0x17')]=function(_0x41073f){this['tail']=this[_0xa000('0x18')]?this['tail']['finally'](_0x41073f):_0x41073f();};function Dialer(_0x549d4b,_0x2283df){this['sequence']=new Sequence();this[_0xa000('0x19')]=_0x2283df;this[_0xa000('0x1a')]=_0x549d4b[_0xa000('0x1a')];this[_0xa000('0x1b')]=_0x549d4b['campaigns'];this['agents']=_0x549d4b['agents'];this[_0xa000('0x1c')]=_0x549d4b[_0xa000('0x1c')];this['maxNumberOriginate']=config[_0xa000('0x1d')]||0x2;this['channels']={};this[_0xa000('0x1e')]={};this[_0xa000('0x1f')]={};this[_0xa000('0x20')]={};this[_0xa000('0x21')]={};this[_0xa000('0x22')]={};this[_0xa000('0x23')]={};this[_0xa000('0x24')]={};this[_0xa000('0x25')]={};this['queueBookedRR']={};ami['on'](_0xa000('0x26'),this['syncAgentConnect'][_0xa000('0x27')](this));ami['on'](_0xa000('0x28'),this[_0xa000('0x29')][_0xa000('0x27')](this));ami['on'](_0xa000('0x2a'),this[_0xa000('0x2b')][_0xa000('0x27')](this));ami['on'](_0xa000('0x2c'),this[_0xa000('0x2d')][_0xa000('0x27')](this));ami['on'](_0xa000('0x2e'),this[_0xa000('0x7')]['bind'](this));ami['on'](_0xa000('0x2f'),this[_0xa000('0x30')][_0xa000('0x27')](this));ami['on'](_0xa000('0x31'),this[_0xa000('0x32')][_0xa000('0x27')](this));ami['on'](_0xa000('0x33'),this[_0xa000('0x34')][_0xa000('0x27')](this));ami['on'](_0xa000('0x35'),this[_0xa000('0x36')][_0xa000('0x27')](this));ami['on'](_0xa000('0x37'),this[_0xa000('0x38')][_0xa000('0x27')](this));this['loopCampaigns']();this['loopClearZombieChannels']();}function isNotNull(_0x3b08d6){return _0x3b08d6!==null&&!_[_0xa000('0x39')](_0x3b08d6);}function checkIsLoggedIn(_0x2c5fba,_0x3ffa0b){return function(){if(_0x3ffa0b<=0x0){_0x2c5fba[_0xa000('0x3a')]=_0xa000('0x3b');throw _0x2c5fba['name']+_0xa000('0x3c');}};}function isActive(_0x22264f){return _0x22264f;}function checkIsActive(_0x187f5c,_0x50351f){return function(){if(!isActive(_0x50351f)){_0x187f5c['message']=_0xa000('0x3d');throw _0x187f5c[_0xa000('0x3e')]+'\x20NOT\x20Active';}};}function checkInterval(_0x343e73){return function(){if(!isNotNull(_0x343e73['Interval'])){_0x343e73[_0xa000('0x3a')]='INTERVAL_IS_NULL';throw _0x343e73[_0xa000('0x3e')]+'\x20INTERVAL_IS_NULL';}if(!isNotNull(_0x343e73['Interval'][_0xa000('0x3f')])){_0x343e73['message']='INTERVAL_IS_NULL';throw _0x343e73[_0xa000('0x3e')]+'\x20INTERVAL_IS_NULL';}if(!isNotNull(_[_0xa000('0x40')](_0x343e73[_0xa000('0x41')][_0xa000('0x3f')]))){_0x343e73[_0xa000('0x3a')]='INTERVAL_IS_NULL';throw _0x343e73['name']+_0xa000('0x42');}};}function msgResponse(_0xd7b65b,_0x2091d8,_0x4517e9){return{'action':_0xd7b65b,'response':_0x2091d8,'message':_0x4517e9,'stack':_0x4517e9};}function myreject(_0x552f05){return function(_0x33c760){return _0x552f05(msgResponse(_0xa000('0x43'),'Error',JSON[_0xa000('0x44')](_0x33c760)));};}function getSeconds(_0x11b635,_0x5b5538){var _0x1c2208=moment(_0x11b635)[_0xa000('0x45')](0x0);var _0x508fb0=moment(_0x5b5538)[_0xa000('0x45')](0x0);return _0x1c2208['diff'](_0x508fb0,_0xa000('0x46'));}function emit(_0x3281e8,_0x3b4f19,_0x2e9b0b){io['to'](_0x3281e8)[_0xa000('0x47')](_0x3b4f19,_0x2e9b0b);}function emitVoiceQueueSummary(_0x134360){if(_0x134360[_0xa000('0x48')]===_0xa000('0x49')){var _0x30b810={'id':_0x134360['id'],'name':_0x134360[_0xa000('0x3e')],'strategy':_0x134360[_0xa000('0x4a')],'answered':_0x134360[_0xa000('0x4b')],'available':_0x134360[_0xa000('0x4c')],'loggedIn':_0x134360[_0xa000('0x4d')],'pTalking':_0x134360['pTalking'],'sumBillable':_0x134360[_0xa000('0x4e')],'sumDuration':_0x134360[_0xa000('0x4f')],'sumHoldTime':_0x134360[_0xa000('0x50')]||0x0,'talking':_0x134360[_0xa000('0x51')],'total':_0x134360[_0xa000('0x52')],'type':_0x134360['type'],'unmanaged':_0x134360[_0xa000('0x53')],'abandoned':_0x134360[_0xa000('0x54')],'waiting':_0x134360[_0xa000('0x55')],'loggedInDb':_0x134360[_0xa000('0x56')],'dialActive':_0x134360[_0xa000('0x57')],'dialMethod':_0x134360[_0xa000('0x58')],'dialOriginateCallerIdName':_0x134360[_0xa000('0x59')],'dialOriginateCallerIdNumber':_0x134360[_0xa000('0x5a')],'dialOriginateTimeout':_0x134360[_0xa000('0x5b')],'dialPrefix':_0x134360['dialPrefix'],'outboundAnswerAgiCallsDay':_0x134360[_0xa000('0x5c')],'outboundAnswerCallsDay':_0x134360[_0xa000('0x5d')],'outboundBlacklistCallsDay':_0x134360[_0xa000('0x5e')],'outboundBusyCallsDay':_0x134360[_0xa000('0x5f')],'outboundCongestionCallsDay':_0x134360[_0xa000('0x60')],'outboundDropCallsDayACS':_0x134360[_0xa000('0x61')],'outboundDropCallsDayCallersExit':_0x134360['outboundDropCallsDayCallersExit'],'outboundDropCallsDayTimeout':_0x134360[_0xa000('0x62')],'outboundNoAnswerCallsDay':_0x134360[_0xa000('0x63')],'outboundNoSuchCallsDay':_0x134360['outboundNoSuchCallsDay'],'outboundOriginateFailureCallsDay':_0x134360[_0xa000('0x64')],'outboundReCallsDay':_0x134360[_0xa000('0x65')],'outboundRejectCallsDay':_0x134360[_0xa000('0x66')],'outboundUnknownCallsDay':_0x134360[_0xa000('0x67')],'predictiveIntervalAnsweredCalls':_0x134360[_0xa000('0x68')],'predictiveIntervalAvgHoldtime':_0x134360[_0xa000('0x69')],'predictiveIntervalAvgTalktime':_0x134360[_0xa000('0x6a')],'predictiveIntervalDroppedCallsCallersExit':_0x134360[_0xa000('0x6b')],'predictiveIntervalDroppedCallsTimeout':_0x134360[_0xa000('0x6c')],'predictiveIntervalErlangCalls':_0x134360['predictiveIntervalErlangCalls'],'predictiveIntervalErlangCallsDroppedCalls':_0x134360[_0xa000('0x6d')],'predictiveIntervalHitRate':_0x134360[_0xa000('0x6e')],'predictiveIntervalMultiplicativeFactor':_0x134360[_0xa000('0x6f')],'predictiveIntervalPauses':_0x134360[_0xa000('0x70')],'predictiveIntervalAvailable':_0x134360['predictiveIntervalAvailable'],'predictiveIntervalTotalCalls':_0x134360[_0xa000('0x71')],'message':_0x134360['message'],'originated':_0x134360[_0xa000('0x72')],'erlangCalls':_0x134360[_0xa000('0x73')],'erlangCallToSecond':_0x134360[_0xa000('0x74')],'erlangAbandonmentRate':_0x134360[_0xa000('0x75')],'erlangBusyFactor':_0x134360[_0xa000('0x76')],'startPredictive':_0x134360['startPredictive'],'startProgressive':_0x134360[_0xa000('0x23')]};if(_0x134360['Trunk']){_0x30b810['Trunk']={'id':_0x134360[_0xa000('0x77')]['id'],'name':_0x134360[_0xa000('0x77')][_0xa000('0x3e')],'active':_0x134360['Trunk'][_0xa000('0x78')],'callerid':_0x134360[_0xa000('0x77')][_0xa000('0x79')]};}if(_0x134360[_0xa000('0x41')]){_0x30b810[_0xa000('0x41')]={'id':_0x134360[_0xa000('0x41')]['id'],'name':_0x134360[_0xa000('0x41')]['name']};}var _0x5c6bf0=md5(JSON[_0xa000('0x44')](_0x30b810));if(_0x134360[_0xa000('0x3')]!==_0x5c6bf0){_0x134360['md5']=_0x5c6bf0;emit(util[_0xa000('0x7a')](_0xa000('0x7b'),_0x30b810[_0xa000('0x3e')]),'voice_queue:save',_0x30b810);}}}function emitCampaignSummary(_0x3db407){if(_0x3db407[_0xa000('0x48')]===_0xa000('0x7c')){emit(util[_0xa000('0x7a')](_0xa000('0x7d'),_0x3db407[_0xa000('0x3e')]),_0xa000('0x7e'),_0x3db407);}}function checkGetDataPredictive(_0x246822){if(isNotNull(_0x246822)&&!_['isEmpty'](_0x246822)){loggerPredictive[_0xa000('0x7f')]('-----\x20Stats\x20Predictive\x20---');loggerPredictive['info'](_0xa000('0x80'),_0x246822[_0xa000('0x71')]);loggerPredictive[_0xa000('0x7f')](_0xa000('0x81'),_0x246822[_0xa000('0x68')]);loggerPredictive['info'](_0xa000('0x82'),_0x246822[_0xa000('0x6c')]);loggerPredictive['info'](_0xa000('0x83'),_0x246822['predictiveIntervalDroppedCallsCallersExit']);loggerPredictive[_0xa000('0x7f')]('AVG\x20Hold\x20Time:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x246822['predictiveIntervalAvgHoldtime']);loggerPredictive[_0xa000('0x7f')]('AVG\x20Talk\x20Time:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x246822['predictiveIntervalAvgTalktime']);loggerPredictive['info']('---------------------------');if(_0x246822[_0xa000('0x71')]>0x0){if(!_[_0xa000('0x39')](_0x246822[_0xa000('0x6a')])&&_0x246822['predictiveIntervalAvgTalktime']>0x0){return!![];}loggerPredictive[_0xa000('0x7f')](_0xa000('0x84'));if(!_[_0xa000('0x39')](_0x246822[_0xa000('0x69')])&&_0x246822['predictiveIntervalAvgHoldtime']>0x0){return!![];}loggerPredictive[_0xa000('0x7f')]('Avg\x20Hold\x20Time\x20is\x20not\x20enough\x20for\x20predictive');}else{loggerPredictive[_0xa000('0x7f')](_0xa000('0x85'));}}else{loggerPredictive[_0xa000('0x7f')](_0xa000('0x86'));}return![];}function mergeDataErlangB(_0x2f9c4b){return function(_0x1ebff9){loggerPredictive['info'](_0xa000('0x87'));loggerPredictive[_0xa000('0x7f')]('Scheduled\x20Calls:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x1ebff9[_0xa000('0x73')]);loggerPredictive[_0xa000('0x7f')](_0xa000('0x88'),_0x1ebff9[_0xa000('0x74')]);loggerPredictive[_0xa000('0x7f')](_0xa000('0x89'),_0x1ebff9['erlangAbandonmentRate']);loggerPredictive[_0xa000('0x7f')](_0xa000('0x8a'),_0x1ebff9[_0xa000('0x76')]);loggerPredictive[_0xa000('0x7f')](_0xa000('0x89'),_0x1ebff9[_0xa000('0x75')]);loggerPredictive['info'](_0xa000('0x8b'));_['merge'](_0x2f9c4b,_0x1ebff9);};}function getDiff(_0x156f50){var _0x20cb91=moment()[_0xa000('0x45')](0x0);var _0x490c46=moment(_0x156f50)[_0xa000('0x45')](0x0);return _0x20cb91[_0xa000('0x8c')](_0x490c46,_0xa000('0x46'));}function ifInterval(_0x4217b8,_0x870341){if(_[_0xa000('0x39')](_0x870341)){return![];}return getDiff(_0x870341)<_0x4217b8*0x3c;}function freeVariablesPredictive(_0x498f44){if(isNotNull(_0x498f44)){if(!_[_0xa000('0x39')](_0x498f44[_0xa000('0x23')])){_0x498f44[_0xa000('0x23')]=undefined;loggerPredictive['info'](_0x498f44[_0xa000('0x3e')],_0xa000('0x8d'));}if(!_[_0xa000('0x39')](_0x498f44[_0xa000('0x22')])){_0x498f44['startPredictive']=undefined;loggerPredictive[_0xa000('0x7f')](_0x498f44[_0xa000('0x3e')],_0xa000('0x8e'));}if(!_['isUndefined'](_0x498f44['handlePredictive'])){clearInterval(_0x498f44[_0xa000('0x8f')]);_0x498f44[_0xa000('0x8f')]=undefined;loggerPredictive['info'](_0x498f44['name'],_0xa000('0x90'));}}}function erlangb(_0x37b67d,_0x1b378){if(_0x1b378===0x0){return 0x0;}var _0x2a91e3=0x1;for(var _0x1ebbd9=0x1;_0x1ebbd9<=_0x1b378;_0x1ebbd9+=0x1){_0x2a91e3=0x1+_0x2a91e3*_0x1ebbd9/_0x37b67d;}return 0x1/_0x2a91e3;}function isVoiceQueueOutbound(_0x3c6e03){return _0x3c6e03===_0xa000('0x49');}function isNotPreview(_0x3d6454){return _0x3d6454!=='preview';}function isCampaignIvr(_0xc22012){return _0xc22012===_0xa000('0x7c');}function getCallerId(_0x4d1dd3,_0x5d028b,_0x34e173){if(!_['isUndefined'](_0x34e173)&&typeof _0x34e173===_0xa000('0x91')&&!_['isEmpty'](_0x34e173)){if(!_['isUndefined'](_0x5d028b)&&typeof _0x5d028b===_0xa000('0x91')&&!_['isEmpty'](_0x5d028b)){return util[_0xa000('0x7a')](_0xa000('0x92'),_0x5d028b,_0x34e173);}return util[_0xa000('0x7a')](_0xa000('0x92'),_0x34e173,_0x34e173);}if(!_['isUndefined'](_0x4d1dd3)&&typeof _0x4d1dd3===_0xa000('0x91')&&!_[_0xa000('0x40')](_0x4d1dd3)){return _0x4d1dd3;}return _0xa000('0x93');}function loggerCatchQueueSummary(_0x2009d9,_0x1a14c7){return function(_0x522c73){freeVariablesPredictive(_0x1a14c7);emitVoiceQueueSummary(_0x1a14c7);emitCampaignSummary(_0x1a14c7);loggerSyncQueueSummary[_0xa000('0x94')](_0x2009d9,util[_0xa000('0x95')](_0x522c73,{'showHidden':![],'depth':null}));};}function loggerCatchPredictive(_0x3425a0,_0x34aa10){return function(_0x4980de){loggerPredictive['error'](_0x34aa10['name'],_0x3425a0);loggerPredictive[_0xa000('0x94')](_0x4980de[_0xa000('0x96')]);freeVariablesPredictive(_0x34aa10);};}function loggerCatch(_0x392c75){return function(_0x48af05){logger[_0xa000('0x94')](_0x392c75,util[_0xa000('0x95')](_0x48af05,{'showHidden':![],'depth':null}));};}function checkContactEmpty(_0x4cc1a7){return _0x4cc1a7&&!_[_0xa000('0x39')](_0x4cc1a7)&&_0x4cc1a7[_0xa000('0x97')]>0x0;}function decremetOriginate(_0x16f5c4){if(!_[_0xa000('0x39')](_0x16f5c4)&&_0x16f5c4!==null){if(typeof _0x16f5c4[_0xa000('0x72')]!==_0xa000('0x98')){if(_0x16f5c4[_0xa000('0x72')]>0x0){_0x16f5c4[_0xa000('0x72')]-=0x1;}else{logger[_0xa000('0x94')](_0xa000('0x99'));}}}else{logger[_0xa000('0x94')]('[decremetOriginate]\x20is\x20null\x20or\x20undefined');}}function checkContactLowerLimitOriginate(_0x22da30,_0x29406f,_0x4baea7){if(_0x29406f>_0x4baea7){for(var _0x1a7fac=0x0;_0x1a7fac<_0x29406f-_0x4baea7;_0x1a7fac+=0x1){decremetOriginate(_0x22da30);}}}function loggerGetContactDialer(_0x1c1357,_0x4024bd,_0x2ec033){return function(_0x44f707){checkContactLowerLimitOriginate(_0x4024bd,_0x2ec033,0x0);logger['error'](_0x1c1357,util[_0xa000('0x95')](_0x44f707,{'showHidden':![],'depth':null}));};}function sendMessageReschedule(_0x2ff40b){return function(_0x96684a){if(isNotNull(_0x96684a)&&isNotNull(_0x96684a[0x0])){if(_0x96684a[0x0][_0xa000('0x9a')]>0x0){_0x2ff40b[_0xa000('0x3a')]=_0xa000('0x9b');logger[_0xa000('0x7f')]('[getContactDialer2][ReScheduled]'+_0x2ff40b[_0xa000('0x3e')],_0x96684a[0x0][_0xa000('0x9a')],_0xa000('0x9c'));}else{_0x2ff40b['message']=_0xa000('0x9d');logger[_0xa000('0x7f')](_0xa000('0x9e')+_0x2ff40b[_0xa000('0x3e')]);}}};}function notSendMessagesQueue(_0x3fad62){if(_0x3fad62['sendMessageOneNotActive']){freeVariablesPredictive(_0x3fad62);if(_0x3fad62[_0xa000('0x72')]===0x0&&_0x3fad62[_0xa000('0x51')]===0x0&&_0x3fad62['waiting']===0x0&&(_0x3fad62['pTalking']||0x0)===0x0){_0x3fad62[_0xa000('0x9f')]=![];_0x3fad62[_0xa000('0x4c')]=0x0;_0x3fad62[_0xa000('0x3a')]=_0xa000('0x3d');loggerSyncQueueSummary[_0xa000('0x94')]('[syncQueueSummary]\x20Campaign\x20Queue:\x20',_0x3fad62['name'],_0xa000('0xa0'));}else{_0x3fad62['message']=_0xa000('0xa1');loggerSyncQueueSummary['error']('[syncQueueSummary]\x20Campaign\x20Queue:\x20',_0x3fad62[_0xa000('0x3e')],_0xa000('0xa2'));}emitVoiceQueueSummary(_0x3fad62);}}function notSendMessagesCampaign(_0x2b37fd){if(_0x2b37fd['sendMessageOneNotActive']){if(_0x2b37fd['originated']===0x0){_0x2b37fd['sendMessageOneNotActive']=![];_0x2b37fd[_0xa000('0x3a')]=_0xa000('0x3d');loggerSyncQueueSummary[_0xa000('0x94')](_0xa000('0xa3'),_0x2b37fd[_0xa000('0x3e')],_0xa000('0xa0'));}else{_0x2b37fd['message']='IS_DISACTIVED';loggerSyncQueueSummary[_0xa000('0x94')]('[syncQueueSummary]\x20Campaign\x20Ivr:\x20',_0x2b37fd['name'],'is\x20disactive');}emitCampaignSummary(_0x2b37fd);}}function createObjHistory(_0xc2d3cb,_0x153b74,_0x25fdd6,_0x4c182a,_0x2d3933){_0xc2d3cb[_0xa000('0x3a')]=_0x25fdd6;var _0x444f50=new Action(_0xc2d3cb,_0x153b74);var _0x5a05b2=new History(_0x444f50);_0x5a05b2[_0xa000('0xa4')]=_0x4c182a;_0x5a05b2[_0xa000('0xa5')]=_0x2d3933;_0x5a05b2[_0xa000('0xa6')]=_0x444f50[_0xa000('0xa7')];return _0x5a05b2;}Dialer[_0xa000('0x16')]['loopClearZombieChannels']=function(){var _0x1c7946=this;setInterval(function(){_0x1c7946[_0xa000('0xa8')](_0x1c7946[_0xa000('0x20')],_0xa000('0xa9'));_0x1c7946['clearZombieChannels'](_0x1c7946['actions'],_0xa000('0xaa'));},0x32c8);};Dialer['prototype'][_0xa000('0xa8')]=function(_0x1b14f8,_0x2ecf18){var _0x2c37ff=this;for(var _0x136cd1 in _0x1b14f8){if(typeof _0x1b14f8[_0x136cd1]!==_0xa000('0x98')){this['sequence'][_0xa000('0x17')](function(){if(!_[_0xa000('0xab')](_0x1b14f8[_0x136cd1])){return ami['Action']({'action':_0xa000('0xac'),'channel':_0x1b14f8[_0x136cd1][_0xa000('0xad')]})[_0xa000('0xae')](function(_0x2a5a87){if(_0x2a5a87[_0xa000('0x3a')]===_0xa000('0xaf')){setTimeout(function(){if(_0x1b14f8[_0x136cd1]&&_0x1b14f8[_0x136cd1][_0xa000('0x48')]!==_0xa000('0x7c')){_0x2c37ff[_0xa000('0xb0')](_0x2c37ff['voiceQueues'][_0x1b14f8[_0x136cd1][_0xa000('0xb1')]]);logger[_0xa000('0x94')](_0xa000('0xb2'),_0x2ecf18,_0x136cd1,_0x1b14f8[_0x136cd1][_0xa000('0xb1')]);delete _0x1b14f8[_0x136cd1];}if(_0x1b14f8[_0x136cd1]&&_0x1b14f8[_0x136cd1][_0xa000('0x48')]===_0xa000('0x7c')){_0x2c37ff[_0xa000('0xb0')](_0x2c37ff[_0xa000('0x1b')][_0x1b14f8[_0x136cd1][_0xa000('0xb1')]]);logger[_0xa000('0x94')](_0xa000('0xb3'),_0x2ecf18,_0x136cd1,_0x1b14f8[_0x136cd1][_0xa000('0xb1')]);delete _0x1b14f8[_0x136cd1];}},0x2328);}});}});}}};Dialer[_0xa000('0x16')][_0xa000('0xb4')]=function(_0x29a218){return BPromise['resolve']()[_0xa000('0xb5')](cmHopper[_0xa000('0xb4')](_0x29a218))['catch'](loggerCatch('[countReScheduled]\x20'));};Dialer['prototype']['checkIsBlackList']=function(_0x412332){return BPromise['resolve']()[_0xa000('0xb5')](cmHopperBlack[_0xa000('0xb6')](_0x412332))[_0xa000('0xae')](loggerCatch('[checkIsBlackList]\x20'));};Dialer[_0xa000('0x16')][_0xa000('0xb7')]=function(_0x351d5a){return BPromise['resolve']()['then'](cmHopperBlack[_0xa000('0xb7')](_0x351d5a))[_0xa000('0xae')](loggerCatch(_0xa000('0xb8')));};Dialer[_0xa000('0x16')][_0xa000('0xb9')]=function(_0x18c41f){return BPromise[_0xa000('0xba')]()[_0xa000('0xb5')](cmHopperHistory[_0xa000('0xbb')](_0x18c41f))['catch'](loggerCatch(_0xa000('0xbc')));};Dialer['prototype']['rescheduleContact']=function(_0x4952ce){return BPromise[_0xa000('0xba')]()['then'](cmHopper[_0xa000('0xbd')](_0x4952ce))['catch'](loggerCatch(_0xa000('0xbe')));};Dialer[_0xa000('0x16')]['unlockContact']=function(_0x1fe841,_0x4d6e3e,_0x159777){return BPromise[_0xa000('0xba')]()[_0xa000('0xb5')](cmHopper['unlockContact'](_0x1fe841,_0x4d6e3e,_0x159777))[_0xa000('0xae')](loggerCatch(_0xa000('0xbf')));};Dialer[_0xa000('0x16')]['getContactDialer']=function(_0x47ae1c,_0x13520e,_0x2a963c,_0x3b6743,_0x5e18e7){return BPromise['resolve']()['then'](cmHopper['getContactDialer'](_0x47ae1c,_0x13520e,_0x2a963c,_0x3b6743))[_0xa000('0xae')](function(_0x33da03){_0x5e18e7[_0xa000('0xc0')]-=_0x2a963c;_0x5e18e7[_0xa000('0xc0')]=_0x5e18e7['temp']>0x0?_0x5e18e7['temp']:0x0;loggerCatch(_0xa000('0xc1'))(_0x33da03);});};Dialer['prototype'][_0xa000('0xc2')]=function(_0x2ff9c8,_0xae170f,_0x1b94c8,_0x4da08d){return BPromise['resolve']()['then'](cmHopper[_0xa000('0xc2')](_0x2ff9c8,_0xae170f,_0x1b94c8))['catch'](function(_0x245c9a){_0x4da08d[_0xa000('0xc0')]-=_0xae170f;_0x4da08d['temp']=_0x4da08d[_0xa000('0xc0')]>0x0?_0x4da08d[_0xa000('0xc0')]:0x0;loggerCatch(_0xa000('0xc3'))(_0x245c9a);});};Dialer[_0xa000('0x16')][_0xa000('0xc4')]=function(_0xcc1626){return BPromise[_0xa000('0xba')]()[_0xa000('0xb5')](voiceQueueRt[_0xa000('0xc4')](_0xcc1626))[_0xa000('0xae')](loggerCatch(_0xa000('0xc5')));};Dialer[_0xa000('0x16')][_0xa000('0xc6')]=function(_0x563698){return BPromise[_0xa000('0xba')]()['then'](cmHopper[_0xa000('0xc6')](_0x563698))[_0xa000('0xae')](loggerCatch(_0xa000('0xc7')));};Dialer[_0xa000('0x16')][_0xa000('0xc8')]=function(_0x4f9c5a){return BPromise['resolve']()[_0xa000('0xb5')](cmHopperHistory[_0xa000('0xc8')](_0x4f9c5a))[_0xa000('0xae')](loggerCatch('[createHistory]\x20'));};Dialer[_0xa000('0x16')][_0xa000('0xb0')]=function(_0x3fa5b2){if(!_[_0xa000('0x39')](_0x3fa5b2)&&_0x3fa5b2!==null){if(typeof _0x3fa5b2[_0xa000('0x72')]!==_0xa000('0x98')){if(_0x3fa5b2[_0xa000('0x72')]>0x0){_0x3fa5b2['originated']-=0x1;}else{logger['error'](_0xa000('0xc9'));}}}else{logger[_0xa000('0x94')](_0xa000('0xca'));}};Dialer[_0xa000('0x16')][_0xa000('0xcb')]=function(_0x4bee07,_0x2db3e8){var _0xb92111=this;return function(_0xdeaa86){_0xb92111['updateOriginated'](_0x2db3e8);logger[_0xa000('0x94')](_0x4bee07,util['inspect'](_0xdeaa86,{'showHidden':![],'depth':null}));};};Dialer[_0xa000('0x16')][_0xa000('0xcc')]=function(_0x57c033,_0x223416,_0x4a1304){var _0x1fdb8d={'state':0x19,'statedesc':'notFound'};this[_0xa000('0xb0')](_0x223416);this[_0xa000('0xcd')](_['merge'](_0x1fdb8d,_['pick'](_0x4a1304,[_0xa000('0xce'),_0xa000('0xcf'),'UserId','VoiceQueueId',_0xa000('0xd0')])),_0xa000('0xd1'),_0xa000('0xd2'));logger[_0xa000('0x94')](_0x57c033);};Dialer[_0xa000('0x16')]['isSuccess']=function(_0x5a8b59){return _0x5a8b59===_0xa000('0xd3');};Dialer[_0xa000('0x16')][_0xa000('0xd4')]=function(_0x535b58){return!_[_0xa000('0x39')](_0x535b58)&&_0x535b58&&!_[_0xa000('0x39')](_0x535b58[_0xa000('0x3e')])&&!_[_0xa000('0x39')](_0x535b58[_0xa000('0x78')])&&_0x535b58[_0xa000('0x78')]&&(this[_0xa000('0x1c')][util[_0xa000('0x7a')]('SIP/%s',_0x535b58[_0xa000('0x3e')])][_0xa000('0xac')]===_0xa000('0xd5')||this['trunks'][util[_0xa000('0x7a')]('SIP/%s',_0x535b58[_0xa000('0x3e')])][_0xa000('0xac')]==='unmonitored');};Dialer['prototype'][_0xa000('0xcd')]=function(_0x1983a7,_0x157ef2,_0x4cb14f){this['createHistory'](_0x1983a7)[_0xa000('0xae')](loggerCatch(_0x157ef2));this[_0xa000('0xc6')](_0x1983a7)[_0xa000('0xae')](loggerCatch(_0x4cb14f));};Dialer[_0xa000('0x16')][_0xa000('0x34')]=function(_0x1402fa){var _0x3c6b54=this[_0xa000('0x20')][_0x1402fa['uniqueid']];var _0x32d601;if(!_[_0xa000('0xab')](_0x1402fa)&&!_['isNil'](_0x1402fa[_0xa000('0xd6')])&&!_[_0xa000('0xab')](_0x1402fa[_0xa000('0xd6')][_0xa000('0xd7')])&&_0x1402fa['exten']==='xcally-motion-dialer'&&_0x3c6b54){if(_0x3c6b54[_0xa000('0x48')]!==_0xa000('0x7c')&&this['voiceQueues'][_0x3c6b54[_0xa000('0xb1')]][_0xa000('0xd8')]&&_0x1402fa[_0xa000('0xd9')]===_0xa000('0xda')){delete this['uniqueId'][_0x1402fa[_0xa000('0xdb')]];this['updateOriginated'](this[_0xa000('0x1a')][_0x3c6b54[_0xa000('0xb1')]]);this[_0xa000('0x1a')][_0x3c6b54[_0xa000('0xb1')]][_0xa000('0x5d')]+=0x1;this[_0xa000('0x1a')][_0x3c6b54[_0xa000('0xb1')]]['outboundAnswerAgiCallsDay']+=0x1;_0x32d601=new Hangup(_0x3c6b54,_0x1402fa);_0x32d601[_0xa000('0xa4')]=0x12;_0x32d601[_0xa000('0xa5')]='HangupInAMD';_0x32d601['membername']=_0xa000('0xdc');ami[_0xa000('0x47')](_0xa000('0xdd'),ut[_0xa000('0xde')](_0x32d601,'amd'));this[_0xa000('0xcd')](_0x32d601,_0xa000('0xdf'),_0xa000('0xe0'));}if(_0x3c6b54['type']!=='ivr'&&this[_0xa000('0x1a')][_0x3c6b54[_0xa000('0xb1')]][_0xa000('0xd8')]&&_0x1402fa[_0xa000('0xd9')]===_0xa000('0xe1')){var _0x1931ee=this;return new BPromise(function(_0xed278,_0x218116){delete _0x1931ee[_0xa000('0x20')][_0x1402fa[_0xa000('0xdb')]];_0x1931ee[_0xa000('0xb0')](_0x1931ee[_0xa000('0x1a')][_0x3c6b54[_0xa000('0xb1')]]);_0x1931ee[_0xa000('0x1a')][_0x3c6b54[_0xa000('0xb1')]]['outboundAnswerCallsDay']+=0x1;_0x1931ee[_0xa000('0x1a')][_0x3c6b54[_0xa000('0xb1')]][_0xa000('0x5c')]+=0x1;var _0x59d95d=_0x1931ee[_0xa000('0x1a')][_0x3c6b54['queue']];var _0x17175f=new Hangup(_0x3c6b54,_0x1402fa);_0x17175f[_0xa000('0xa4')]=0x13;_0x17175f[_0xa000('0xa5')]=_0xa000('0xe2');_0x17175f[_0xa000('0xe3')]='AMD';_0x17175f[_0xa000('0xe4')]+=0x1;_0x17175f['countglobal']+=0x1;_0x17175f[_0xa000('0xe5')]=!![];ami[_0xa000('0x47')]('custom:amd',ut[_0xa000('0xde')](_0x17175f,_0xa000('0xe5')));_0x1931ee[_0xa000('0xc8')](_0x17175f)[_0xa000('0xae')](loggerCatch(_0xa000('0xe6')));if(_0x17175f['countbusyretry']+_0x17175f[_0xa000('0xe7')]+_0x17175f[_0xa000('0xe8')]+_0x17175f['countnosuchnumberretry']+_0x17175f[_0xa000('0xe9')]+_0x17175f['countabandonedretry']+_0x17175f[_0xa000('0xe4')]+_0x17175f[_0xa000('0xea')]>=_0x59d95d['dialGlobalMaxRetry']){_0x1931ee[_0xa000('0xeb')](_0x17175f,_0xed278,_0x218116,_0xa000('0xec'));}else{if(_0x17175f[_0xa000('0xe4')]>=_0x59d95d[_0xa000('0xed')]){_0x1931ee['createStateFinal'](_0x17175f,_0xed278,_0x218116,_0xa000('0xee'));}else{_0x1931ee[_0xa000('0xbd')]({'active':![],'countmachineretry':_0x17175f['countmachineretry'],'scheduledat':moment()[_0xa000('0xef')](_0x59d95d[_0xa000('0xf0')],'minutes')[_0xa000('0x7a')](_0xa000('0xf1')),'ContactId':_0x17175f[_0xa000('0xce')],'ListId':_0x17175f[_0xa000('0xcf')],'VoiceQueueId':_0x17175f[_0xa000('0xf2')]||undefined,'CampaignId':_0x17175f[_0xa000('0xd0')]||undefined})[_0xa000('0xae')](loggerCatch('[rescheduleContact][Machine]'));_0xed278({'reschedule':0x1});}}});}if(_0x3c6b54[_0xa000('0x48')]===_0xa000('0x7c')&&this['campaigns'][_0x3c6b54[_0xa000('0xb1')]][_0xa000('0xd8')]&&_0x1402fa['value']===_0xa000('0xda')){delete this['uniqueId'][_0x1402fa[_0xa000('0xdb')]];this['updateOriginated'](this[_0xa000('0x1b')][_0x3c6b54[_0xa000('0xb1')]]);_0x32d601=new Hangup(_0x3c6b54,_0x1402fa);_0x32d601[_0xa000('0xa4')]=0x12;_0x32d601[_0xa000('0xa5')]=_0xa000('0xf3');_0x32d601['membername']=_0xa000('0xdc');ami[_0xa000('0x47')](_0xa000('0xdd'),ut[_0xa000('0xde')](_0x32d601,_0xa000('0xe5')));this[_0xa000('0xcd')](_0x32d601,_0xa000('0xf4'),_0xa000('0xf5'));}if(_0x3c6b54[_0xa000('0x48')]==='ivr'&&this[_0xa000('0x1b')][_0x3c6b54['queue']]['dialAMDActive']&&_0x1402fa[_0xa000('0xd9')]===_0xa000('0xe1')){var _0x1931ee=this;return new BPromise(function(_0x1a8039,_0x4b00d7){delete _0x1931ee[_0xa000('0x20')][_0x1402fa['uniqueid']];_0x1931ee[_0xa000('0xb0')](_0x1931ee[_0xa000('0x1b')][_0x3c6b54['queue']]);_0x1931ee[_0xa000('0x1b')][_0x3c6b54[_0xa000('0xb1')]][_0xa000('0x5d')]+=0x1;_0x1931ee[_0xa000('0x1b')][_0x3c6b54[_0xa000('0xb1')]]['outboundAnswerAgiCallsDay']+=0x1;var _0x1a8ab2=_0x1931ee[_0xa000('0x1b')][_0x3c6b54[_0xa000('0xb1')]];var _0x4f7200=new Hangup(_0x3c6b54,_0x1402fa);_0x4f7200[_0xa000('0xa4')]=0x13;_0x4f7200[_0xa000('0xa5')]='Machine';_0x4f7200[_0xa000('0xe3')]=_0xa000('0xdc');_0x4f7200[_0xa000('0xe4')]+=0x1;_0x4f7200[_0xa000('0xf6')]+=0x1;_0x4f7200['amd']=!![];ami[_0xa000('0x47')](_0xa000('0xdd'),ut[_0xa000('0xde')](_0x4f7200,'amd'));_0x1931ee['createHistory'](_0x4f7200)[_0xa000('0xae')](loggerCatch(_0xa000('0xe6')));if(_0x4f7200['countbusyretry']+_0x4f7200[_0xa000('0xe7')]+_0x4f7200[_0xa000('0xe8')]+_0x4f7200[_0xa000('0xf7')]+_0x4f7200[_0xa000('0xe9')]+_0x4f7200['countabandonedretry']+_0x4f7200[_0xa000('0xe4')]+_0x4f7200['countagentrejectretry']>=_0x1a8ab2['dialGlobalMaxRetry']){_0x1931ee[_0xa000('0xeb')](_0x4f7200,_0x1a8039,_0x4b00d7,_0xa000('0xec'));}else{if(_0x4f7200[_0xa000('0xe4')]>=_0x1a8ab2[_0xa000('0xed')]){_0x1931ee[_0xa000('0xf8')](_0x4f7200,_0x1a8039,_0x4b00d7,_0xa000('0xee'));}else{_0x1931ee['rescheduleContact']({'active':![],'countmachineretry':_0x4f7200[_0xa000('0xe4')],'scheduledat':moment()['add'](_0x1a8ab2[_0xa000('0xf0')],_0xa000('0xf9'))[_0xa000('0x7a')](_0xa000('0xf1')),'ContactId':_0x4f7200[_0xa000('0xce')],'ListId':_0x4f7200[_0xa000('0xcf')],'VoiceQueueId':_0x4f7200[_0xa000('0xf2')]||undefined,'CampaignId':_0x4f7200[_0xa000('0xd0')]||undefined})['catch'](loggerCatch(_0xa000('0xfa')));_0x1a8039({'reschedule':0x1});}}});}}};Dialer[_0xa000('0x16')][_0xa000('0x30')]=function(_0x37ab7c){var _0x217db0=this[_0xa000('0x20')][_0x37ab7c['uniqueid']];var _0x5d0ddb=this;var _0x5998b9;if(_0x217db0&&_0x217db0[_0xa000('0x48')]===_0xa000('0x7c')){delete this['uniqueId'][_0x37ab7c[_0xa000('0xdb')]];this[_0xa000('0xb0')](this[_0xa000('0x1b')][_0x217db0[_0xa000('0xb1')]]);this['campaigns'][_0x217db0[_0xa000('0xb1')]][_0xa000('0xfb')]+=0x1;_0x5998b9=new Hangup(_0x217db0,_0x37ab7c);this[_0xa000('0xc8')](_0x5998b9)[_0xa000('0xae')](loggerCatch(_0xa000('0xfc')));this[_0xa000('0xc6')](_0x5998b9)['catch'](loggerCatch(_0xa000('0xfd')));}if(_0x217db0&&_0x217db0['type']!=='ivr'&&isNotNull(this['voiceQueues'][_0x217db0[_0xa000('0xb1')]][_0xa000('0xfe')])){delete this[_0xa000('0x20')][_0x37ab7c[_0xa000('0xdb')]];this[_0xa000('0xb0')](this[_0xa000('0x1a')][_0x217db0['queue']]);this[_0xa000('0x1a')][_0x217db0[_0xa000('0xb1')]][_0xa000('0x5d')]+=0x1;this[_0xa000('0x1a')][_0x217db0['queue']][_0xa000('0x5c')]+=0x1;_0x5998b9=new Hangup(_0x217db0,_0x37ab7c);_0x5998b9[_0xa000('0xa4')]=0x10;_0x5998b9[_0xa000('0xa5')]='AnswerAGI';_0x5998b9[_0xa000('0xe3')]=_0xa000('0xff');this[_0xa000('0xc8')](_0x5998b9)['catch'](loggerCatch(_0xa000('0xfc')));this[_0xa000('0xc6')](_0x5998b9)[_0xa000('0xae')](loggerCatch('[syncHangupIvr]'));}if(_0x217db0&&_0x217db0[_0xa000('0x48')]!==_0xa000('0x7c')&&!isNotNull(this['voiceQueues'][_0x217db0[_0xa000('0xb1')]][_0xa000('0xfe')])){delete this[_0xa000('0x20')][_0x37ab7c[_0xa000('0xdb')]];this[_0xa000('0xb0')](this[_0xa000('0x1a')][_0x217db0[_0xa000('0xb1')]]);this['voiceQueues'][_0x217db0[_0xa000('0xb1')]][_0xa000('0x67')]+=0x1;_0x5998b9=new Hangup(_0x217db0,_0x37ab7c);_0x5998b9['state']=0xc;_0x5998b9[_0xa000('0xa5')]=_0x37ab7c['cause-txt'];_0x5998b9[_0xa000('0xe3')]=_0xa000('0x100');this[_0xa000('0xc8')](_0x5998b9)['catch'](loggerCatch('[syncHangupIvr][createHistory]'));this['moveContactManagedDialer'](_0x5998b9)[_0xa000('0xae')](loggerCatch(_0xa000('0xfd')));}};Dialer[_0xa000('0x16')][_0xa000('0x2d')]=function(_0x46e34d){var _0x592486=this[_0xa000('0x20')][_0x46e34d[_0xa000('0xdb')]];var _0x224253=this;if(this[_0xa000('0x1a')][_0x46e34d[_0xa000('0xb1')]]){if(_0x592486&&_0x592486[_0xa000('0x48')]!=='ivr'){delete this[_0xa000('0x20')][_0x46e34d['uniqueid']];this[_0xa000('0x1a')][_0x46e34d[_0xa000('0xb1')]][_0xa000('0x5d')]+=0x1;var _0x30268d=new AgentComplete(_0x592486,_0x46e34d);if(_0x46e34d[_0xa000('0x101')]===_0xa000('0x102')){_0x30268d[_0xa000('0x103')]=this['voiceQueues'][_0x46e34d[_0xa000('0xb1')]][_0xa000('0x104')]&&this[_0xa000('0x1a')][_0x46e34d[_0xa000('0xb1')]][_0xa000('0x105')]?moment()[_0xa000('0x7a')](_0xa000('0xf1')):undefined;}this[_0xa000('0xc8')](_0x30268d)[_0xa000('0xae')](loggerCatch('[syncAgentComplete][createHistory]'));this[_0xa000('0xc6')](_0x30268d)[_0xa000('0xae')](loggerCatch(_0xa000('0x106')));}}};Dialer[_0xa000('0x16')][_0xa000('0x107')]=function(_0x3369e0){if(this[_0xa000('0x1a')][_0x3369e0['queue']]){if(this['uniqueId'][_0x3369e0[_0xa000('0xdb')]]&&this['uniqueId'][_0x3369e0['uniqueid']]['type']!==_0xa000('0x7c')){this[_0xa000('0xb0')](this[_0xa000('0x1a')][_0x3369e0['queue']]);this[_0xa000('0x20')][_0x3369e0['uniqueid']][_0xa000('0x108')]=moment()[_0xa000('0x7a')](_0xa000('0xf1'));}}};Dialer[_0xa000('0x16')][_0xa000('0x109')]=function(_0xd54db7){this[_0xa000('0xc8')](_0xd54db7)[_0xa000('0xae')](loggerCatch(_0xa000('0x10a')));this[_0xa000('0xc6')](_0xd54db7)[_0xa000('0xae')](loggerCatch('[syncQueueCallerAbandon]\x20[Drop]'));};Dialer[_0xa000('0x16')]['syncQueueCallerAbandon']=function(_0x4c834c){var _0x313bb3=this[_0xa000('0x20')][_0x4c834c['uniqueid']];var _0x1775f9=this;if(this[_0xa000('0x1a')][_0x4c834c[_0xa000('0xb1')]]){if(_0x313bb3&&_0x313bb3[_0xa000('0x48')]!==_0xa000('0x7c')){delete this[_0xa000('0x20')][_0x4c834c[_0xa000('0xdb')]];this['updateOriginated'](this[_0xa000('0x1a')][_0x4c834c[_0xa000('0xb1')]]);_0x313bb3[_0xa000('0x10b')]=moment()[_0xa000('0x7a')]('YYYY-MM-DD\x20HH:mm:ss');var _0x2b0b3e=new QueueCallerAbandon(_0x313bb3,_0x4c834c);if(getSeconds(_0x313bb3[_0xa000('0x10b')],_0x313bb3['responsetime'])>=_0x313bb3[_0xa000('0x10c')]){this[_0xa000('0x1a')][_0x4c834c[_0xa000('0xb1')]]['predictiveIntervalDroppedCallsTimeout']+=0x1;this['voiceQueues'][_0x4c834c[_0xa000('0xb1')]][_0xa000('0x62')]+=0x1;this[_0xa000('0x1a')][_0x4c834c[_0xa000('0xb1')]][_0xa000('0x6d')]+=0x1;_0x2b0b3e['state']=0xa;_0x2b0b3e['statedesc']=_0xa000('0x10d');_0x2b0b3e['dropreason']='TIMEOUT';_0x2b0b3e[_0xa000('0x103')]=this[_0xa000('0x1a')][_0x4c834c[_0xa000('0xb1')]][_0xa000('0x104')]?moment()[_0xa000('0x7a')](_0xa000('0xf1')):undefined;_0x2b0b3e[_0xa000('0xe9')]+=0x1;_0x2b0b3e[_0xa000('0xf6')]+=0x1;if(_0x2b0b3e[_0xa000('0xe9')]>=this['voiceQueues'][_0x4c834c[_0xa000('0xb1')]][_0xa000('0x10e')]){this[_0xa000('0x109')](_0x2b0b3e);}else{this[_0xa000('0xbd')]({'active':![],'countdropretry':_0x2b0b3e['countdropretry'],'scheduledat':moment()['add'](this['voiceQueues'][_0x4c834c['queue']][_0xa000('0x10f')],'minutes')[_0xa000('0x7a')](_0xa000('0xf1')),'ContactId':_0x313bb3[_0xa000('0xce')],'ListId':_0x313bb3[_0xa000('0xcf')],'VoiceQueueId':_0x313bb3[_0xa000('0xf2')]||undefined,'CampaignId':_0x313bb3[_0xa000('0xd0')]||undefined})[_0xa000('0xae')](loggerCatch(_0xa000('0x110')));var _0x494da2=new History(_0x2b0b3e);_0x494da2[_0xa000('0xa4')]=0xa;_0x494da2[_0xa000('0xa5')]='Drop';_0x494da2[_0xa000('0xa7')]=moment()[_0xa000('0x7a')]('YYYY-MM-DD\x20HH:mm:ss');_0x494da2[_0xa000('0xa6')]=_0x494da2[_0xa000('0xa7')];_0x494da2[_0xa000('0x111')]=_0x2b0b3e['calleridname'];_0x494da2[_0xa000('0x112')]=_0x2b0b3e['calleridnum'];this[_0xa000('0xc8')](_0x494da2)[_0xa000('0xae')](loggerCatch('[syncAgentComplete][createHistory][10]'));}}else{this[_0xa000('0x1a')][_0x4c834c[_0xa000('0xb1')]][_0xa000('0x6b')]+=0x1;this[_0xa000('0x1a')][_0x4c834c[_0xa000('0xb1')]][_0xa000('0x113')]+=0x1;_0x2b0b3e[_0xa000('0xa4')]=0xb;_0x2b0b3e[_0xa000('0xa5')]='Abandoned';_0x2b0b3e[_0xa000('0x114')]=_0xa000('0x115');_0x2b0b3e[_0xa000('0x116')]+=0x1;_0x2b0b3e['countglobal']+=0x1;if(_0x2b0b3e[_0xa000('0x116')]>=this[_0xa000('0x1a')][_0x4c834c[_0xa000('0xb1')]][_0xa000('0x117')]){this[_0xa000('0x109')](_0x2b0b3e);}else{this[_0xa000('0xbd')]({'active':![],'countabandonedretry':_0x2b0b3e[_0xa000('0x116')],'scheduledat':moment()[_0xa000('0xef')](this[_0xa000('0x1a')][_0x4c834c[_0xa000('0xb1')]][_0xa000('0x118')],_0xa000('0xf9'))[_0xa000('0x7a')]('YYYY-MM-DD\x20HH:mm:ss'),'ContactId':_0x313bb3['ContactId'],'ListId':_0x313bb3[_0xa000('0xcf')],'VoiceQueueId':_0x313bb3[_0xa000('0xf2')]||undefined,'CampaignId':_0x313bb3[_0xa000('0xd0')]||undefined})['catch'](loggerCatch(_0xa000('0x119')));var _0x494da2=new History(_0x2b0b3e);_0x494da2['state']=0xb;_0x494da2[_0xa000('0xa5')]=_0xa000('0x11a');_0x494da2[_0xa000('0xa7')]=moment()[_0xa000('0x7a')]('YYYY-MM-DD\x20HH:mm:ss');_0x494da2[_0xa000('0xa6')]=_0x494da2[_0xa000('0xa7')];_0x494da2[_0xa000('0x111')]=_0x2b0b3e[_0xa000('0x111')];_0x494da2['calleridnum']=_0x2b0b3e[_0xa000('0x112')];this[_0xa000('0xc8')](_0x494da2)[_0xa000('0xae')](loggerCatch(_0xa000('0x11b')));}}}}};Dialer[_0xa000('0x16')][_0xa000('0x32')]=function(_0xea96dd){if(this[_0xa000('0x1e')][_0xea96dd[_0xa000('0xdb')]]){this[_0xa000('0x1e')][_0xea96dd[_0xa000('0xdb')]]['channel']=_0xea96dd[_0xa000('0xad')];}if(this[_0xa000('0x20')][_0xea96dd[_0xa000('0xdb')]]){this[_0xa000('0x20')][_0xea96dd[_0xa000('0xdb')]][_0xa000('0xad')]=_0xea96dd[_0xa000('0xad')];}};Dialer[_0xa000('0x16')][_0xa000('0x36')]=function(_0x87c0fa){if(strategy[this[_0xa000('0x1a')][this['actions'][_0x87c0fa[_0xa000('0x11c')]][_0xa000('0xb1')]][_0xa000('0x4a')]]===_0xa000('0x15')){if(this[_0xa000('0x1e')][_0x87c0fa['actionid']]&&_[_0xa000('0xab')](this[_0xa000('0x1e')][_0x87c0fa[_0xa000('0x11c')]][_0xa000('0x11d')])&&_0x87c0fa[_0xa000('0xac')]==='1'&&_0x87c0fa[_0xa000('0x11e')]==='0'){if(this[_0xa000('0x11f')][_0x87c0fa[_0xa000('0x120')]]){if(!this[_0xa000('0x11f')][_0x87c0fa['stateinterface']][_0xa000('0x11d')]){this[_0xa000('0x11f')][_0x87c0fa[_0xa000('0x120')]]['locked']=!![];this['actions'][_0x87c0fa[_0xa000('0x11c')]][_0xa000('0x11d')]=!![];this[_0xa000('0x1e')][_0x87c0fa[_0xa000('0x11c')]]['stateinterface']=_0x87c0fa[_0xa000('0x120')];}}}}else if((strategy[this[_0xa000('0x1a')][this[_0xa000('0x1e')][_0x87c0fa[_0xa000('0x11c')]][_0xa000('0xb1')]][_0xa000('0x4a')]]||'rrmemory')===_0xa000('0x14')){if(this[_0xa000('0x1e')][_0x87c0fa[_0xa000('0x11c')]]){if(this[_0xa000('0x11f')][_0x87c0fa['stateinterface']]){this['actions'][_0x87c0fa['actionid']][_0xa000('0x120')]=_0x87c0fa['stateinterface'];if(_[_0xa000('0xab')](this[_0xa000('0x25')][this['actions'][_0x87c0fa[_0xa000('0x11c')]][_0xa000('0xb1')]])){this[_0xa000('0x25')][this['actions'][_0x87c0fa[_0xa000('0x11c')]][_0xa000('0xb1')]]=[];}this[_0xa000('0x25')][this[_0xa000('0x1e')][_0x87c0fa[_0xa000('0x11c')]][_0xa000('0xb1')]][_0xa000('0x121')](_[_0xa000('0x122')](_[_0xa000('0x123')](this['actions'][_0x87c0fa[_0xa000('0x11c')]],[_0xa000('0x124'),_0xa000('0x120')]),{'status':_0x87c0fa['status'],'paused':_0x87c0fa[_0xa000('0x11e')]}));}}}};function unlockQueueStatus(_0x388657,_0x1a60eb){setTimeout(function(){if(_[_0xa000('0x39')](_0x388657['queueStatusComplete'])){loggerBooked['error'](_0xa000('0x125'),_0x1a60eb);}_0x388657[_0xa000('0x126')]=!![];loggerBooked[_0xa000('0x7f')](_0xa000('0x127'),_0x1a60eb,JSON[_0xa000('0x44')](_[_0xa000('0x123')](_0x388657,[_0xa000('0x3e'),_0xa000('0x126')])));},0x1f3);}Dialer['prototype'][_0xa000('0x38')]=function(_0x12bcd3){var _0x2be77c=this;var _0x321973=_0x2be77c[_0xa000('0x1a')][_0x2be77c['actions'][_0x12bcd3[_0xa000('0x11c')]]['queue']];if(strategy[this[_0xa000('0x1a')][this[_0xa000('0x1e')][_0x12bcd3['actionid']][_0xa000('0xb1')]]['strategy']]==='roundrobin'){if(this[_0xa000('0x1e')][_0x12bcd3[_0xa000('0x11c')]]&&this['actions'][_0x12bcd3['actionid']][_0xa000('0x120')]){this[_0xa000('0x19')][_0xa000('0x128')](this[_0xa000('0x1e')][_0x12bcd3[_0xa000('0x11c')]][_0xa000('0x124')],this[_0xa000('0x1e')][_0x12bcd3[_0xa000('0x11c')]][_0xa000('0x120')])[_0xa000('0xae')](function(_0x28098b){logger['error']('[Catch][Preview][syncQueueStatusComplete]',util[_0xa000('0x95')](_0x28098b,{'showHidden':![],'depth':null}));})[_0xa000('0x129')](function(){_0x2be77c['updateOriginated'](_0x2be77c[_0xa000('0x1a')][_0x2be77c[_0xa000('0x1e')][_0x12bcd3[_0xa000('0x11c')]]['queue']]);_0x2be77c[_0xa000('0x11f')][_0x2be77c[_0xa000('0x1e')][_0x12bcd3[_0xa000('0x11c')]][_0xa000('0x120')]]['locked']=![];delete _0x2be77c['actions'][_0x12bcd3[_0xa000('0x11c')]];unlockQueueStatus(_0x321973);});}else{this[_0xa000('0xb0')](this[_0xa000('0x1a')][this[_0xa000('0x1e')][_0x12bcd3[_0xa000('0x11c')]][_0xa000('0xb1')]]);this[_0xa000('0xbd')]({'active':![],'ContactId':this[_0xa000('0x1e')][_0x12bcd3[_0xa000('0x11c')]]['ContactId'],'ListId':this[_0xa000('0x1e')][_0x12bcd3[_0xa000('0x11c')]][_0xa000('0xcf')],'VoiceQueueId':this['actions'][_0x12bcd3[_0xa000('0x11c')]]['VoiceQueueId']||undefined,'CampaignId':this[_0xa000('0x1e')][_0x12bcd3[_0xa000('0x11c')]][_0xa000('0xd0')]||undefined})[_0xa000('0xae')](loggerCatch(_0xa000('0x12a')));delete this[_0xa000('0x1e')][_0x12bcd3[_0xa000('0x11c')]];unlockQueueStatus(_0x321973);}}else if((strategy[this['voiceQueues'][this['actions'][_0x12bcd3['actionid']][_0xa000('0xb1')]][_0xa000('0x4a')]]||_0xa000('0x14'))===_0xa000('0x14')){var _0x117d42;if(this[_0xa000('0x1e')][_0x12bcd3[_0xa000('0x11c')]]&&!_[_0xa000('0x40')](this['queueBooked'][this[_0xa000('0x1e')][_0x12bcd3[_0xa000('0x11c')]][_0xa000('0xb1')]])){if(this[_0xa000('0x12b')][_0x2be77c[_0xa000('0x1e')][_0x12bcd3[_0xa000('0x11c')]][_0xa000('0xb1')]]){this[_0xa000('0x12b')][_0x2be77c[_0xa000('0x1e')][_0x12bcd3[_0xa000('0x11c')]][_0xa000('0xb1')]]=this['queueBookedRR'][this[_0xa000('0x1e')][_0x12bcd3[_0xa000('0x11c')]][_0xa000('0xb1')]]?this[_0xa000('0x12b')][this['actions'][_0x12bcd3[_0xa000('0x11c')]][_0xa000('0xb1')]]:this[_0xa000('0x25')][this['actions'][_0x12bcd3[_0xa000('0x11c')]][_0xa000('0xb1')]]?this[_0xa000('0x25')][this[_0xa000('0x1e')][_0x12bcd3[_0xa000('0x11c')]][_0xa000('0xb1')]][_0xa000('0x12c')]||0x0:0x0;}this[_0xa000('0x25')][this[_0xa000('0x1e')][_0x12bcd3[_0xa000('0x11c')]][_0xa000('0xb1')]]['_rr']=this[_0xa000('0x12b')][this[_0xa000('0x1e')][_0x12bcd3[_0xa000('0x11c')]]['queue']];for(var _0x339464=0x0;_0x339464<this[_0xa000('0x25')][this['actions'][_0x12bcd3[_0xa000('0x11c')]][_0xa000('0xb1')]][_0xa000('0x97')];_0x339464+=0x1){_0x117d42=rr(this[_0xa000('0x25')][this[_0xa000('0x1e')][_0x12bcd3[_0xa000('0x11c')]][_0xa000('0xb1')]]);this[_0xa000('0x12b')][_0x2be77c['actions'][_0x12bcd3[_0xa000('0x11c')]]['queue']]=this[_0xa000('0x25')][this[_0xa000('0x1e')][_0x12bcd3[_0xa000('0x11c')]]['queue']][_0xa000('0x12c')];if(_0x117d42[_0xa000('0xac')]==='1'&&_0x117d42[_0xa000('0x11e')]==='0'){break;}}if(!_[_0xa000('0xab')](_0x117d42)){this[_0xa000('0x11f')][_0x117d42[_0xa000('0x120')]]['unlockRR']=_['isUndefined'](this[_0xa000('0x11f')][_0x117d42[_0xa000('0x120')]][_0xa000('0x12d')])?!![]:this[_0xa000('0x11f')][_0x117d42[_0xa000('0x120')]][_0xa000('0x12d')];}loggerBooked[_0xa000('0x7f')](_0xa000('0x12e'),_0x12bcd3[_0xa000('0x11c')],_0xa000('0x12f'),JSON[_0xa000('0x44')](_['pick'](this[_0xa000('0x11f')][_0x117d42[_0xa000('0x120')]],['name',_0xa000('0x12d')])),_0xa000('0x130'),JSON['stringify'](_0x117d42[_0xa000('0x124')]));if(!_[_0xa000('0xab')](_0x117d42)&&_0x117d42[_0xa000('0xac')]==='1'&&_0x117d42['paused']==='0'&&this[_0xa000('0x11f')][_0x117d42[_0xa000('0x120')]][_0xa000('0x12d')]){this[_0xa000('0x11f')][_0x117d42[_0xa000('0x120')]][_0xa000('0x12d')]=![];this['queueBooked'][_0x2be77c['actions'][_0x12bcd3[_0xa000('0x11c')]][_0xa000('0xb1')]]=[];this['preview'][_0xa000('0x128')](_0x117d42[_0xa000('0x124')],_0x117d42['stateinterface'])['catch'](function(_0x4c3ac1){logger[_0xa000('0x94')](_0xa000('0x131'),util[_0xa000('0x95')](_0x4c3ac1,{'showHidden':![],'depth':null}));})[_0xa000('0x129')](function(){_0x2be77c[_0xa000('0xb0')](_0x2be77c[_0xa000('0x1a')][_0x2be77c['actions'][_0x12bcd3[_0xa000('0x11c')]][_0xa000('0xb1')]]);setTimeout(function(){_0x2be77c[_0xa000('0x11f')][_0x117d42['stateinterface']][_0xa000('0x12d')]=!![];loggerBooked[_0xa000('0x7f')]('[booked][RR][finaly]',_0x12bcd3[_0xa000('0x11c')],_0xa000('0x12f'),JSON['stringify'](_[_0xa000('0x123')](_0x2be77c[_0xa000('0x11f')][_0x117d42['stateinterface']],[_0xa000('0x3e'),_0xa000('0x12d')])),_0xa000('0x130'),JSON['stringify'](_0x117d42[_0xa000('0x124')]));},0xc7);delete _0x2be77c[_0xa000('0x1e')][_0x12bcd3[_0xa000('0x11c')]];unlockQueueStatus(_0x321973,_0x12bcd3[_0xa000('0x11c')]);});}else{loggerBooked[_0xa000('0x7f')](_0xa000('0x132'));this[_0xa000('0xb0')](this[_0xa000('0x1a')][this[_0xa000('0x1e')][_0x12bcd3[_0xa000('0x11c')]]['queue']]);this[_0xa000('0xbd')]({'active':![],'ContactId':this[_0xa000('0x1e')][_0x12bcd3[_0xa000('0x11c')]][_0xa000('0xce')],'ListId':this[_0xa000('0x1e')][_0x12bcd3[_0xa000('0x11c')]][_0xa000('0xcf')],'VoiceQueueId':this[_0xa000('0x1e')][_0x12bcd3['actionid']][_0xa000('0xf2')]||undefined,'CampaignId':this['actions'][_0x12bcd3['actionid']][_0xa000('0xd0')]||undefined})['catch'](loggerCatch(_0xa000('0x12a')));delete this[_0xa000('0x1e')][_0x12bcd3[_0xa000('0x11c')]];unlockQueueStatus(_0x321973);}}else{loggerBooked[_0xa000('0x7f')](_0xa000('0x133'));this[_0xa000('0xb0')](this[_0xa000('0x1a')][this[_0xa000('0x1e')][_0x12bcd3['actionid']][_0xa000('0xb1')]]);this['rescheduleContact']({'active':![],'ContactId':this['actions'][_0x12bcd3[_0xa000('0x11c')]]['ContactId'],'ListId':this[_0xa000('0x1e')][_0x12bcd3[_0xa000('0x11c')]][_0xa000('0xcf')],'VoiceQueueId':this[_0xa000('0x1e')][_0x12bcd3[_0xa000('0x11c')]]['VoiceQueueId']||undefined,'CampaignId':this[_0xa000('0x1e')][_0x12bcd3[_0xa000('0x11c')]][_0xa000('0xd0')]||undefined})[_0xa000('0xae')](loggerCatch('[unlock2][syncQueueStatusComplete]'));delete this['actions'][_0x12bcd3[_0xa000('0x11c')]];unlockQueueStatus(_0x321973);}}else{loggerBooked[_0xa000('0x7f')]('[booked][unlock3]');this[_0xa000('0xb0')](this[_0xa000('0x1a')][this[_0xa000('0x1e')][_0x12bcd3[_0xa000('0x11c')]][_0xa000('0xb1')]]);this['rescheduleContact']({'active':![],'ContactId':this[_0xa000('0x1e')][_0x12bcd3['actionid']][_0xa000('0xce')],'ListId':this['actions'][_0x12bcd3[_0xa000('0x11c')]]['ListId'],'VoiceQueueId':this[_0xa000('0x1e')][_0x12bcd3[_0xa000('0x11c')]]['VoiceQueueId']||undefined,'CampaignId':this[_0xa000('0x1e')][_0x12bcd3[_0xa000('0x11c')]]['CampaignId']||undefined})['catch'](loggerCatch('[unlock3][syncQueueStatusComplete]'));delete this[_0xa000('0x1e')][_0x12bcd3['actionid']];unlockQueueStatus(_0x321973);}};Dialer[_0xa000('0x16')][_0xa000('0x134')]=function(){var _0x5586f9=this;return BPromise['resolve']()[_0xa000('0xb5')](cmHopper[_0xa000('0x135')]({}))[_0xa000('0xb5')](function(){setInterval(function(){_0x5586f9[_0xa000('0x136')]();},0x3e8);});};Dialer[_0xa000('0x16')][_0xa000('0x137')]=function(_0x1cc670){var _0x1e5f95=this;return function(){if(!_0x1e5f95['isTrunkReachable'](_0x1cc670[_0xa000('0x77')])){if(!_0x1e5f95['isTrunkReachable'](_0x1cc670['TrunkBackup'])){_0x1cc670[_0xa000('0x3a')]=_0xa000('0x138');throw _0x1cc670[_0xa000('0x3e')]+_0xa000('0x139');}}};};Dialer[_0xa000('0x16')][_0xa000('0x13a')]=function(_0x4fe9e4,_0x1ed7c4,_0x11cffb,_0x3c4f5e){var _0x24321c=this;return function(){var _0x5b20de=!![];return _0x24321c['ifTime'](_0x4fe9e4,_0x1ed7c4,_0x11cffb,_0x3c4f5e,_0x5b20de);};};Dialer[_0xa000('0x16')][_0xa000('0x13b')]=function(_0x3b002a,_0x22614e,_0x5eecdc,_0x49d3dc){var _0x3213d7=this;return function(){var _0x449052=![];return _0x3213d7[_0xa000('0x13c')](_0x3b002a['Intervals'],_0x22614e,_0x5eecdc,_0x49d3dc,_0x449052);};};Dialer[_0xa000('0x16')][_0xa000('0x13c')]=function(_0x2bed6c,_0x42db87,_0x54a34a,_0x3ea023,_0x4cb416){var _0x17d8a2=[];return new BPromise(function(_0xb39dff,_0x5b8200){if(!isNotNull(_0x2bed6c)){_0x3ea023[_0xa000('0x3a')]=_0xa000('0x13d');return _0x5b8200(msgResponse(_0xa000('0x13c'),_0xa000('0x13e'),_0x54a34a+_0xa000('0x13f')));}if(_[_0xa000('0x40')](_0x2bed6c)){_0x3ea023[_0xa000('0x3a')]=_0xa000('0x140');return _0x5b8200(msgResponse('ifTime','Failure',_0x54a34a+_0xa000('0x141')));}if(_0x42db87&&_['isUndefined'](config[_0xa000('0x142')][_0x42db87])){_0x3ea023[_0xa000('0x3a')]=_0xa000('0x143');return _0x5b8200(msgResponse(_0xa000('0x13c'),'Failure',_0x54a34a+_0xa000('0x144')+_0x42db87));}if(_['isArray'](_0x2bed6c)){for(var _0x191184=0x0;_0x191184<_0x2bed6c['length'];_0x191184+=0x1){_0x17d8a2[_0xa000('0x121')](ami[_0xa000('0x145')]({'action':_0xa000('0x146'),'command':util[_0xa000('0x7a')](_0xa000('0x147'),_0x2bed6c[_0x191184][_0xa000('0x148')],!_[_0xa000('0x39')](config['timezones'][_0x42db87])?_0x42db87:'')})[_0xa000('0xb5')](function(_0x41401a){return _0x41401a['content']['indexOf'](_0xa000('0x149'))>=0x0;})['catch'](myreject(_0x5b8200)));}}else{_0x17d8a2[_0xa000('0x121')](ami[_0xa000('0x145')]({'action':_0xa000('0x146'),'command':util[_0xa000('0x7a')](_0xa000('0x147'),_0x2bed6c,!_['isUndefined'](config[_0xa000('0x142')][_0x42db87])?_0x42db87:'')})['then'](function(_0xf0c86e){return _0xf0c86e[_0xa000('0x14a')][_0xa000('0x14b')](_0xa000('0x149'))>=0x0;})['catch'](myreject(_0x5b8200)));}BPromise['all'](_0x17d8a2)[_0xa000('0xb5')](function(_0x2d7c5a){var _0x125b09=_['some'](_0x2d7c5a);if(_0x125b09){return _0xb39dff(_0x125b09);}else{_0x3ea023[_0xa000('0x3a')]=_0x4cb416?_0xa000('0x14c'):_0xa000('0x14d');return _0x5b8200(msgResponse(_0xa000('0x14e'),_0xa000('0x13e'),_0xa000('0x14f')+_0x4cb416+'\x20'+_0x54a34a+_0xa000('0x150')+util[_0xa000('0x95')](_0x2bed6c,{'showHidden':![],'depth':null})+'Timezone:\x20'+_0x42db87));}})[_0xa000('0xae')](function(_0x3df72d){return _0x5b8200(msgResponse(_0xa000('0x13c'),_0xa000('0x13e'),JSON[_0xa000('0x44')](_0x3df72d)));});});};Dialer['prototype'][_0xa000('0x151')]=function(_0xc92dd4){var _0x2e5f36=this;return function(){switch(_0xc92dd4[_0xa000('0x58')]){case _0xa000('0x152'):freeVariablesPredictive(_0xc92dd4);_0x2e5f36['handlePower'](_0xc92dd4,0x1);break;case'power':freeVariablesPredictive(_0xc92dd4);_0x2e5f36[_0xa000('0x153')](_0xc92dd4,_0xc92dd4[_0xa000('0x154')]);break;case _0xa000('0x6'):_0x2e5f36['predictive'](_0xc92dd4);break;case'booked':freeVariablesPredictive(_0xc92dd4);_0x2e5f36['handlePower'](_0xc92dd4,0x1);break;default:freeVariablesPredictive(_0xc92dd4);logger[_0xa000('0x94')](_0xa000('0x155'),_0xc92dd4['name'],_0xa000('0x156'));}};};Dialer[_0xa000('0x16')]['launchHandleIvr']=function(_0x531ea7){var _0x5ba159=this;return function(){_0x5ba159['handleIvr'](_0x531ea7);};};Dialer[_0xa000('0x16')]['syncQueueSummary']=function(_0x3deec6){var _0x4f7483=this;if(isNotPreview(_0x3deec6['dialMethod'])){if(isVoiceQueueOutbound(_0x3deec6[_0xa000('0x48')])&&isActive(_0x3deec6[_0xa000('0x57')])){_0x3deec6[_0xa000('0x9f')]=!![];BPromise[_0xa000('0xba')]()['then'](checkIsLoggedIn(_0x3deec6,_0x3deec6[_0xa000('0x4d')]))[_0xa000('0xb5')](checkIsActive(_0x3deec6,_0x3deec6[_0xa000('0x57')]))[_0xa000('0xb5')](checkInterval(_0x3deec6))[_0xa000('0xb5')](_0x4f7483['checkIsTrunkReachable'](_0x3deec6))[_0xa000('0xb5')](_0x4f7483[_0xa000('0x13a')](_0x3deec6[_0xa000('0x157')],_0x3deec6['dialTimezone'],_0x3deec6[_0xa000('0x3e')],_0x3deec6))[_0xa000('0xb5')](_0x4f7483[_0xa000('0x13b')](_0x3deec6['Interval'],_0x3deec6['dialTimezone'],_0x3deec6[_0xa000('0x3e')],_0x3deec6))[_0xa000('0xb5')](_0x4f7483[_0xa000('0x151')](_0x3deec6))[_0xa000('0xae')](loggerCatchQueueSummary(_0xa000('0x158'),_0x3deec6));}else{notSendMessagesQueue(_0x3deec6);}}else{freeVariablesPredictive(_0x3deec6);}};Dialer[_0xa000('0x16')][_0xa000('0x136')]=function(){var _0x5db4b9=this;var _0x5b1777;for(var _0x10ecd3 in this[_0xa000('0x1b')]){if(typeof this['campaigns'][_0x10ecd3]!==_0xa000('0x98')){_0x5b1777=this['campaigns'][_0x10ecd3];if(isCampaignIvr(_0x5b1777[_0xa000('0x48')])&&isActive(_0x5b1777[_0xa000('0x78')])){_0x5b1777[_0xa000('0x9f')]=!![];BPromise[_0xa000('0xba')]()[_0xa000('0xb5')](checkIsActive(_0x5b1777,_0x5b1777[_0xa000('0x78')]))[_0xa000('0xb5')](checkInterval(_0x5b1777))[_0xa000('0xb5')](_0x5db4b9[_0xa000('0x137')](_0x5b1777))[_0xa000('0xb5')](_0x5db4b9[_0xa000('0x13a')](_0x5b1777[_0xa000('0x157')],_0x5b1777[_0xa000('0x159')],_0x5b1777[_0xa000('0x3e')],_0x5b1777))['then'](_0x5db4b9[_0xa000('0x13b')](_0x5b1777['Interval'],_0x5b1777['dialTimezone'],_0x5b1777[_0xa000('0x3e')],_0x5b1777))[_0xa000('0xb5')](_0x5db4b9[_0xa000('0x15a')](_0x5b1777))[_0xa000('0xae')](loggerCatchQueueSummary(_0xa000('0x15b'),_0x5b1777));}else{notSendMessagesCampaign(_0x5b1777);}}}};function getCallerIdRandom(_0x100b55,_0x14f123){var _0x4f93f8;var _0x5a0bf4;var _0x67bafb;if(_0x14f123<=0x0){_0x14f123=0x1;}_0x4f93f8=new RegExp(_0xa000('0x15c')+_0x14f123+'}$');_0x5a0bf4=Math[_0xa000('0x15d')](0xa,_0x14f123-0x1);_0x67bafb=Math[_0xa000('0x15d')](0xa,_0x14f123)-0x1;return util[_0xa000('0x7a')]('%s',_[_0xa000('0x15e')](_0x100b55,_0x4f93f8,_[_0xa000('0x15f')](_0x5a0bf4,_0x67bafb)));}function extractCalleridName(_0x5c2109){var _0x149ee7=_0x5c2109[_0xa000('0x160')](/"(.*?)"/);return _0x149ee7?_0x149ee7[0x1]:_0x5c2109;}function extractCalleridNumber(_0x7ec969){var _0x433fb4=_0x7ec969[_0xa000('0x160')](/<(.*?)>/);return _0x433fb4?_0x433fb4[0x1]:_0x7ec969;}Dialer[_0xa000('0x16')][_0xa000('0x161')]=function(_0x3010ed,_0xf4118e){var _0x246573=this;var _0x266d99=uuid['v4']();this[_0xa000('0x1e')][_0x266d99]=new Action(_0x3010ed,_0xf4118e,_0x266d99);return new BPromise(function(_0x4798f8,_0xc425e5){if(_[_0xa000('0x39')](_0x3010ed)&&typeof _0x3010ed!=='object'){return _0xc425e5(msgResponse(_0xa000('0x162'),_0xa000('0x13e'),'voiceQueue\x20is\x20undefine'));}if(_[_0xa000('0x39')](_0xf4118e[_0xa000('0x163')][_0xa000('0x164')])||_0xf4118e[_0xa000('0x163')]['phone']===null){return _0xc425e5(msgResponse(_0xa000('0x162'),_0xa000('0x13e'),'contact\x20is\x20undefine'));}var _0xa9c879={'XMD-CALLERID':_0x246573[_0xa000('0x1e')][_0x266d99][_0xa000('0x165')](),'XMD-AGI':_0x3010ed[_0xa000('0xfe')]?util[_0xa000('0x7a')](_0xa000('0x166'),ipAgi,_0x3010ed[_0xa000('0xfe')]):_0xa000('0x167'),'XMD-AGIAFTER':_0x3010ed[_0xa000('0x104')]?util['format'](_0xa000('0x166'),ipAgi,_0x3010ed['dialQueueProject2']):'NONE','XMD-QUEUE':_0x3010ed['type']===_0xa000('0x49')?util[_0xa000('0x7a')](_0xa000('0x168'),_0x3010ed['name'],_0x3010ed['dialQueueOptions']||'',_0x3010ed[_0xa000('0x105')]?'c':'',_0x3010ed['dialQueueTimeout']||0x3):'NONE','XMD-CONTACTID':_0xf4118e[_0xa000('0xce')],'XMD-CDRTYPE':'dialer','CALLERID(all)':_0x246573['actions'][_0x266d99]['getCaller'](),'XMD-AMD':_0x3010ed[_0xa000('0xd8')]?_0xa000('0x169'):'NONE','XMD-DESTINATION':_0xa000('0x16a')};if(_0x3010ed[_0xa000('0xd8')]){_0xa9c879['XMD-AMDINITIALSILENCE']=_0x3010ed['dialAMDInitialSilence']||0x9c4;_0xa9c879[_0xa000('0x16b')]=_0x3010ed[_0xa000('0x16c')]||0x5dc;_0xa9c879[_0xa000('0x16d')]=_0x3010ed[_0xa000('0x16e')]||0x320;_0xa9c879['XMD-AMDTOTALANALYSISTIME']=_0x3010ed[_0xa000('0x16f')]||0x1388;_0xa9c879[_0xa000('0x170')]=_0x3010ed[_0xa000('0x171')]||0x64;_0xa9c879[_0xa000('0x172')]=_0x3010ed[_0xa000('0x173')]||0x32;_0xa9c879[_0xa000('0x174')]=_0x3010ed[_0xa000('0x175')]||0x3;_0xa9c879[_0xa000('0x176')]=_0x3010ed[_0xa000('0x177')]||0x100;_0xa9c879[_0xa000('0x178')]=_0x3010ed[_0xa000('0x179')]||0x1388;}if(_0x3010ed[_0xa000('0x48')]===_0xa000('0x49')){_0xa9c879['XMD-VOICEQUEUEID']=_0xf4118e[_0xa000('0xf2')];}else{_0xa9c879[_0xa000('0x17a')]=_0xf4118e['CampaignId'];}for(var _0x1b62d4 in _0xf4118e[_0xa000('0x163')]){if(typeof _0xf4118e['Contact'][_0x1b62d4]!=='undefined'){if(isNotNull(_0xf4118e[_0xa000('0x163')][_0x1b62d4])&&_0x1b62d4!=='id'&&_0x1b62d4!==_0xa000('0x17b')&&_0x1b62d4!==_0xa000('0x17c')&&_0x1b62d4!==_0xa000('0x17d')){_0xa9c879[util[_0xa000('0x7a')]('%s%s',_0xa000('0x17e'),_[_0xa000('0x17f')](_0x1b62d4))]=_0xf4118e[_0xa000('0x163')][_0x1b62d4];}}}var _0x52b67f=_0x246573['isTrunkReachable'](_0x3010ed[_0xa000('0x77')])?getCallerId(_0x3010ed[_0xa000('0x77')][_0xa000('0x79')],_0x3010ed[_0xa000('0x59')],_0x3010ed[_0xa000('0x180')]>0x0?getCallerIdRandom(_0x3010ed[_0xa000('0x5a')],_0x3010ed[_0xa000('0x180')]):_0x3010ed['dialOriginateCallerIdNumber']):getCallerId(_[_0xa000('0xab')](_0x3010ed[_0xa000('0x181')])?_0x3010ed['Trunk'][_0xa000('0x79')]:_0x3010ed['TrunkBackup']['callerid'],_0x3010ed[_0xa000('0x59')],_0x3010ed[_0xa000('0x180')]>0x0?getCallerIdRandom(_0x3010ed[_0xa000('0x5a')],_0x3010ed['dialRandomLastDigitCallerIdNumber']):_0x3010ed[_0xa000('0x5a')]);if(_0x52b67f){_0xa9c879[_0xa000('0x182')]=_0x246573[_0xa000('0x1e')][_0x266d99][_0xa000('0x183')]=extractCalleridName(_0x52b67f);_0xa9c879[_0xa000('0x184')]=_0x246573[_0xa000('0x1e')][_0x266d99]['originatecalleridnum']=extractCalleridNumber(_0x52b67f);}return ami[_0xa000('0x145')]({'actionid':_0x266d99,'action':'originate','channel':_0x246573[_0xa000('0xd4')](_0x3010ed[_0xa000('0x77')])?util[_0xa000('0x7a')](_0xa000('0x185'),_0x3010ed[_0xa000('0x77')][_0xa000('0x3e')],isNotNull(_0x3010ed['dialPrefix'])?_0x3010ed[_0xa000('0x186')]['trim']()||'':'',_0x3010ed['dialCutDigit']>0x0?_0xf4118e[_0xa000('0x163')][_0xa000('0x164')][_0xa000('0x187')](_0x3010ed[_0xa000('0x188')]):_0xf4118e[_0xa000('0x163')][_0xa000('0x164')]):util['format']('SIP/%s/%s%s',_[_0xa000('0xab')](_0x3010ed[_0xa000('0x181')])?_0x3010ed[_0xa000('0x77')][_0xa000('0x3e')]:_0x3010ed[_0xa000('0x181')][_0xa000('0x3e')],isNotNull(_0x3010ed['dialPrefix'])?_0x3010ed['dialPrefix']['trim']()||'':'',_0x3010ed[_0xa000('0x188')]>0x0?_0xf4118e[_0xa000('0x163')][_0xa000('0x164')][_0xa000('0x187')](_0x3010ed[_0xa000('0x188')]):_0xf4118e[_0xa000('0x163')][_0xa000('0x164')]),'callerid':_0x52b67f,'Exten':_0xa000('0x16a'),'Context':'from-sip','Priority':'1','variable':_0xa9c879,'timeout':(_0x3010ed[_0xa000('0x5b')]||0x1e)*0x3e8,'async':!![],'channelid':_0x266d99})[_0xa000('0xb5')](function(_0x4153b5){return _0x4798f8(_0x4153b5);})[_0xa000('0xae')](function(_0x5bd72e){_0x3010ed['outboundOriginateFailureCallsDay']+=0x1;var _0x39231d=new History(_0x246573[_0xa000('0x1e')][_0x266d99]);logger[_0xa000('0x94')](util[_0xa000('0x7a')]('[originateError]:\x20%s',JSON[_0xa000('0x44')](_0x5bd72e)));_0x39231d[_0xa000('0xa4')]=0xe;_0x39231d[_0xa000('0xa5')]=_0xa000('0x189');_0x39231d[_0xa000('0xa7')]=moment()[_0xa000('0x7a')](_0xa000('0xf1'));_0x39231d[_0xa000('0xa6')]=_0x39231d[_0xa000('0xa7')];_0x246573[_0xa000('0xc8')](_0x39231d)[_0xa000('0xae')](loggerCatch(_0xa000('0x18a')));_0x246573[_0xa000('0xc6')](_0x39231d)['catch'](loggerCatch(_0xa000('0x18a')))[_0xa000('0x129')](function(){delete _0x246573[_0xa000('0x1e')][_0x266d99];return _0xc425e5(msgResponse(_0xa000('0x162'),_0xa000('0x18b'),'originate\x20action\x20Error'));});});});};Dialer[_0xa000('0x16')]['syncOriginateResponse']=function(_0x4dc3b5){var _0x480e07=this['actions'][_0x4dc3b5[_0xa000('0x11c')]];if(_0x480e07){delete this[_0xa000('0x1e')][_0x4dc3b5[_0xa000('0x11c')]];_0x480e07[_0xa000('0x18c')]=moment()[_0xa000('0x7a')]('YYYY-MM-DD\x20HH:mm:ss');var _0x16b846=_0x480e07[_0xa000('0x48')]==='ivr'?this[_0xa000('0x1b')][_0x480e07[_0xa000('0xb1')]]:this['voiceQueues'][_0x480e07[_0xa000('0x18d')]()];if(!this[_0xa000('0x18e')](_0x4dc3b5[_0xa000('0x18f')])){this[_0xa000('0xb0')](_0x16b846);return this['callProgressDetecting'](_0x480e07,_0x16b846,_0x4dc3b5)[_0xa000('0xae')](loggerCatch('[callProgressDetecting]\x20'));}this[_0xa000('0x20')][_0x4dc3b5[_0xa000('0xdb')]]=_0x480e07;}};Dialer[_0xa000('0x16')][_0xa000('0x190')]=function(_0x13fa43,_0x2e82bf,_0x5c8cef){var _0x14cced=new History(_0x2e82bf);if(_0x14cced[_0xa000('0x191')]+_0x14cced[_0xa000('0xe7')]+_0x14cced['countnoanswerretry']+_0x14cced[_0xa000('0xf7')]+_0x14cced[_0xa000('0xe9')]+_0x14cced[_0xa000('0x116')]+_0x14cced[_0xa000('0xe4')]+_0x14cced['countagentrejectretry']>=_0x5c8cef['dialGlobalMaxRetry']-0x1){return!![];}switch(_0x13fa43){case 0x3:if(_0x14cced['countnoanswerretry']>=_0x5c8cef['dialNoAnswerMaxRetry']-0x1){return!![];}this[_0xa000('0xbd')]({'active':![],'countnoanswerretry':_0x14cced[_0xa000('0xe8')]+=0x1,'scheduledat':moment()[_0xa000('0xef')](_0x5c8cef[_0xa000('0x192')],_0xa000('0xf9'))[_0xa000('0x7a')](_0xa000('0xf1')),'ContactId':_0x14cced['ContactId'],'ListId':_0x14cced[_0xa000('0xcf')],'VoiceQueueId':_0x14cced[_0xa000('0xf2')]||undefined,'CampaignId':_0x14cced['CampaignId']||undefined})['catch'](loggerCatch(_0xa000('0x193')));break;case 0x5:if(_0x14cced[_0xa000('0x191')]>=_0x5c8cef[_0xa000('0x194')]-0x1){return!![];}this[_0xa000('0xbd')]({'active':![],'countbusyretry':_0x14cced[_0xa000('0x191')]+=0x1,'scheduledat':moment()[_0xa000('0xef')](_0x5c8cef[_0xa000('0x195')],_0xa000('0xf9'))['format'](_0xa000('0xf1')),'ContactId':_0x14cced[_0xa000('0xce')],'ListId':_0x14cced['ListId'],'VoiceQueueId':_0x14cced[_0xa000('0xf2')]||undefined,'CampaignId':_0x14cced['CampaignId']||undefined})['catch'](loggerCatch(_0xa000('0x196')));break;case 0x8:if(_0x14cced['countcongestionretry']>=_0x5c8cef[_0xa000('0x197')]-0x1){return!![];}this[_0xa000('0xbd')]({'active':![],'countcongestionretry':_0x14cced[_0xa000('0xe7')]+=0x1,'scheduledat':moment()[_0xa000('0xef')](_0x5c8cef[_0xa000('0x198')],_0xa000('0xf9'))[_0xa000('0x7a')](_0xa000('0xf1')),'ContactId':_0x14cced[_0xa000('0xce')],'ListId':_0x14cced[_0xa000('0xcf')],'VoiceQueueId':_0x14cced[_0xa000('0xf2')]||undefined,'CampaignId':_0x14cced[_0xa000('0xd0')]||undefined})[_0xa000('0xae')](loggerCatch(_0xa000('0x199')));break;case 0x0:if(_0x14cced[_0xa000('0xf7')]>=_0x5c8cef[_0xa000('0x19a')]-0x1){return!![];}else{this[_0xa000('0xbd')]({'active':![],'countnosuchnumberretry':_0x14cced['countnosuchnumberretry']+=0x1,'scheduledat':moment()[_0xa000('0xef')](_0x5c8cef[_0xa000('0x19b')],_0xa000('0xf9'))['format'](_0xa000('0xf1')),'ContactId':_0x14cced['ContactId'],'ListId':_0x14cced[_0xa000('0xcf')],'VoiceQueueId':_0x14cced['VoiceQueueId']||undefined,'CampaignId':_0x14cced[_0xa000('0xd0')]||undefined})['catch'](loggerCatch('[rescheduleContact][NoSuchNumber]'));}break;case 0xa:if(_0x14cced['countdropretry']>=_0x5c8cef[_0xa000('0x10e')]-0x1){return!![];}this[_0xa000('0xbd')]({'active':![],'countdropretry':_0x14cced[_0xa000('0xe9')]+=0x1,'scheduledat':moment()['add'](_0x5c8cef[_0xa000('0x10f')],_0xa000('0xf9'))[_0xa000('0x7a')](_0xa000('0xf1')),'ContactId':_0x14cced[_0xa000('0xce')],'ListId':_0x14cced[_0xa000('0xcf')],'VoiceQueueId':_0x14cced[_0xa000('0xf2')]||undefined,'CampaignId':_0x14cced[_0xa000('0xd0')]||undefined})[_0xa000('0xae')](loggerCatch(_0xa000('0x110')));break;case 0xb:if(_0x14cced['countabandonedretry']>=_0x5c8cef[_0xa000('0x117')]-0x1){return!![];}this[_0xa000('0xbd')]({'active':![],'countabandonedretry':_0x14cced[_0xa000('0x116')]+=0x1,'scheduledat':moment()['add'](_0x5c8cef['dialAbandonedRetryFrequency'],_0xa000('0xf9'))[_0xa000('0x7a')](_0xa000('0xf1')),'ContactId':_0x14cced[_0xa000('0xce')],'ListId':_0x14cced[_0xa000('0xcf')],'VoiceQueueId':_0x14cced['VoiceQueueId']||undefined,'CampaignId':_0x14cced['CampaignId']||undefined})[_0xa000('0xae')](loggerCatch(_0xa000('0x119')));break;case 0x13:if(_0x14cced['countmachineretry']>=_0x5c8cef['dialMachineMaxRetry']-0x1){return!![];}this[_0xa000('0xbd')]({'active':![],'countmachineretry':_0x14cced['countmachineretry']+=0x1,'scheduledat':moment()['add'](_0x5c8cef[_0xa000('0xf0')],_0xa000('0xf9'))['format'](_0xa000('0xf1')),'ContactId':_0x14cced[_0xa000('0xce')],'ListId':_0x14cced['ListId'],'VoiceQueueId':_0x14cced['VoiceQueueId']||undefined,'CampaignId':_0x14cced[_0xa000('0xd0')]||undefined})['catch'](loggerCatch('[rescheduleContact][Machine]'));break;case 0x14:if(_0x14cced['countagentrejectretry']>=_0x5c8cef['dialAgentRejectMaxRetry']-0x1){return!![];}this['rescheduleContact']({'active':![],'countagentrejectretry':_0x14cced[_0xa000('0xea')]+=0x1,'scheduledat':moment()[_0xa000('0xef')](_0x5c8cef[_0xa000('0x19c')],_0xa000('0xf9'))[_0xa000('0x7a')](_0xa000('0xf1')),'ContactId':_0x14cced[_0xa000('0xce')],'ListId':_0x14cced[_0xa000('0xcf')],'VoiceQueueId':_0x14cced['VoiceQueueId']||undefined,'CampaignId':_0x14cced[_0xa000('0xd0')]||undefined})['catch'](loggerCatch('[rescheduleContact][AgentReject]'));break;default:return!![];}};Dialer['prototype'][_0xa000('0x19d')]=function(_0x5c1cd0,_0x50ab2,_0x2c35c3){var _0x58f4fe=this;var _0xc45fde=new History(_0x5c1cd0);return new BPromise(function(_0x2a0355,_0x5c1c1b){if(_[_0xa000('0x39')](_0x50ab2)&&typeof _0x50ab2!==_0xa000('0x19e')){return _0x5c1c1b(msgResponse(_0xa000('0x19f'),'Failure','entity\x20is\x20undefine'));}if(_['isUndefined'](_0x2c35c3)&&typeof _0x2c35c3!==_0xa000('0x19e')){return _0x5c1c1b(msgResponse(_0xa000('0x19f'),_0xa000('0x13e'),_0xa000('0x1a0')));}switch(_0x2c35c3[_0xa000('0x101')]){case'0':_0x50ab2['outboundNoSuchCallsDay']+=0x1;_0xc45fde[_0xa000('0xa4')]=0x0;_0xc45fde[_0xa000('0xa5')]=_0xa000('0x1a1');_0xc45fde[_0xa000('0xf7')]+=0x1;_0xc45fde[_0xa000('0xf6')]+=0x1;ami[_0xa000('0x47')](_0xa000('0x1a2'),ut[_0xa000('0xde')](_0x5c1cd0,'nosuchnumber'));_0x58f4fe[_0xa000('0xc8')](_0xc45fde)[_0xa000('0xae')](loggerCatch('[syncAgentComplete][createHistory][0]'));if(_0x58f4fe[_0xa000('0x190')](0x0,_0x5c1cd0,_0x50ab2)){if(_0xc45fde[_0xa000('0xf7')]>=_0x50ab2[_0xa000('0x19a')]){_0x58f4fe[_0xa000('0xf8')](_0xc45fde,_0x2a0355,_0x5c1c1b,_0xa000('0x1a3'));}else{_0x58f4fe[_0xa000('0xeb')](_0xc45fde,_0x2a0355,_0x5c1c1b,'reason\x200\x20no\x20such\x20number....');}}break;case'3':_0x50ab2[_0xa000('0x63')]+=0x1;_0xc45fde[_0xa000('0xa4')]=0x3;_0xc45fde[_0xa000('0xa5')]=_0xa000('0x1a4');_0xc45fde[_0xa000('0xe8')]+=0x1;_0xc45fde['countglobal']+=0x1;ami['emit'](_0xa000('0x1a5'),ut[_0xa000('0xde')](_0x5c1cd0,_0xa000('0x1a6')));_0x58f4fe[_0xa000('0xc8')](_0xc45fde)['catch'](loggerCatch('[syncAgentComplete][createHistory][3]'));if(_0x58f4fe['checkRetriveMax'](0x3,_0x5c1cd0,_0x50ab2)){if(_0xc45fde[_0xa000('0xe8')]>=_0x50ab2['dialNoAnswerMaxRetry']){_0x58f4fe[_0xa000('0xf8')](_0xc45fde,_0x2a0355,_0x5c1c1b,_0xa000('0x1a7'));}else{_0x58f4fe[_0xa000('0xeb')](_0xc45fde,_0x2a0355,_0x5c1c1b,_0xa000('0x1a7'));}}break;case'5':_0x50ab2[_0xa000('0x5f')]+=0x1;_0xc45fde[_0xa000('0xa4')]=0x5;_0xc45fde[_0xa000('0xa5')]=_0xa000('0x1a8');_0xc45fde[_0xa000('0x191')]+=0x1;_0xc45fde[_0xa000('0xf6')]+=0x1;ami[_0xa000('0x47')](_0xa000('0x1a9'),ut[_0xa000('0xde')](_0x5c1cd0,_0xa000('0x1aa')));_0x58f4fe[_0xa000('0xc8')](_0xc45fde)[_0xa000('0xae')](loggerCatch(_0xa000('0x1ab')));if(_0x58f4fe[_0xa000('0x190')](0x5,_0x5c1cd0,_0x50ab2)){if(_0xc45fde['countbusyretry']>=_0x50ab2[_0xa000('0x194')]){_0x58f4fe[_0xa000('0xf8')](_0xc45fde,_0x2a0355,_0x5c1c1b,'reason\x205\x20busy');}else{_0x58f4fe[_0xa000('0xeb')](_0xc45fde,_0x2a0355,_0x5c1c1b,_0xa000('0x1ac'));}}break;case'8':_0x50ab2['outboundCongestionCallsDay']+=0x1;_0xc45fde[_0xa000('0xa4')]=0x8;_0xc45fde[_0xa000('0xa5')]=_0xa000('0x1ad');_0xc45fde[_0xa000('0xe7')]+=0x1;_0xc45fde[_0xa000('0xf6')]+=0x1;ami[_0xa000('0x47')]('custom:agentcongestion',ut[_0xa000('0xde')](_0x5c1cd0,_0xa000('0x1ae')));_0x58f4fe[_0xa000('0xc8')](_0xc45fde)['catch'](loggerCatch(_0xa000('0x1af')));if(_0x58f4fe[_0xa000('0x190')](0x8,_0x5c1cd0,_0x50ab2)){if(_0xc45fde[_0xa000('0xe7')]>=_0x50ab2[_0xa000('0x197')]){_0x58f4fe[_0xa000('0xf8')](_0xc45fde,_0x2a0355,_0x5c1c1b,_0xa000('0x1b0'));}else{_0x58f4fe[_0xa000('0xeb')](_0xc45fde,_0x2a0355,_0x5c1c1b,_0xa000('0x1b0'));}}break;case'11':_0x50ab2['outboundAbandonedCallsDay']+=0x1;_0xc45fde[_0xa000('0xa4')]=0xb;_0xc45fde[_0xa000('0xa5')]=_0xa000('0x11a');_0xc45fde[_0xa000('0x116')]+=0x1;_0xc45fde[_0xa000('0xf6')]+=0x1;_0x58f4fe[_0xa000('0xc8')](_0xc45fde)[_0xa000('0xae')](loggerCatch(_0xa000('0x11b')));if(_0x58f4fe[_0xa000('0x190')](0xb,_0x5c1cd0,_0x50ab2)){if(_0xc45fde[_0xa000('0x116')]>=_0x50ab2[_0xa000('0x117')]){_0x58f4fe[_0xa000('0xf8')](_0xc45fde,_0x2a0355,_0x5c1c1b,_0xa000('0x1b1'));}else{_0x58f4fe['stateGlobal'](_0xc45fde,_0x2a0355,_0x5c1c1b,_0xa000('0x1b1'));}}break;case'20':_0x50ab2['outboundRejectCallsDay']+=0x1;_0xc45fde['state']=0x14;_0xc45fde['statedesc']=_0xa000('0x1b2');_0xc45fde[_0xa000('0xea')]+=0x1;_0xc45fde[_0xa000('0xf6')]+=0x1;ami[_0xa000('0x47')](_0xa000('0x1b3'),ut[_0xa000('0xde')](_0x5c1cd0,_0xa000('0x1b4')));_0x58f4fe[_0xa000('0xc8')](_0xc45fde)['catch'](loggerCatch('[syncAgentComplete][createHistory][20]'));if(_0x58f4fe[_0xa000('0x190')](0x14,_0x5c1cd0,_0x50ab2)){if(_0xc45fde[_0xa000('0xea')]>=_0x50ab2[_0xa000('0x1b5')]){_0x58f4fe[_0xa000('0xf8')](_0xc45fde,_0x2a0355,_0x5c1c1b,_0xa000('0x1b6'));}else{_0x58f4fe['stateGlobal'](_0xc45fde,_0x2a0355,_0x5c1c1b,'reason\x2020\x20agentreject');}}break;default:_0x50ab2[_0xa000('0x67')]+=0x1;_0xc45fde[_0xa000('0xa4')]=0xc;_0xc45fde[_0xa000('0xa5')]=_0x2c35c3[_0xa000('0x101')];_0x58f4fe[_0xa000('0xc8')](_0xc45fde)['catch'](loggerCatch(_0xa000('0x1b7')));if(_0x58f4fe[_0xa000('0x190')](_0x2c35c3[_0xa000('0x101')],_0x5c1cd0,_0x50ab2)){if(_0xc45fde[_0xa000('0x191')]+_0xc45fde[_0xa000('0xe7')]+_0xc45fde['countnoanswerretry']+_0xc45fde[_0xa000('0xf7')]+_0xc45fde[_0xa000('0xe9')]+_0xc45fde['countabandonedretry']+_0xc45fde[_0xa000('0xe4')]+_0xc45fde[_0xa000('0xea')]>=_0x50ab2[_0xa000('0x1b8')]){_0x58f4fe[_0xa000('0xeb')](_0xc45fde,_0x2a0355,_0x5c1c1b,_0x2c35c3[_0xa000('0x101')]);}else{_0x58f4fe[_0xa000('0xf8')](_0xc45fde,_0x2a0355,_0x5c1c1b,_0x2c35c3[_0xa000('0x101')]);}}}});};Dialer['prototype']['stateGlobal']=function(_0x274640,_0x3b620e,_0x2ab1de,_0x47cc57){var _0x4e8f0b=new Final(_0x274640);_0x4e8f0b[_0xa000('0xa4')]=0xf;_0x4e8f0b[_0xa000('0xa5')]=_0xa000('0x1b9');this[_0xa000('0xf8')](_0x4e8f0b,_0x3b620e,_0x2ab1de,_0x47cc57);};Dialer[_0xa000('0x16')][_0xa000('0xf8')]=function(_0x2dbffe,_0x52a2a9,_0x7618a2,_0x194a3a){this[_0xa000('0xc6')](_0x2dbffe)[_0xa000('0xb5')](function(){return _0x52a2a9(msgResponse('[callProgressDetecting]','Success',_0x194a3a));})[_0xa000('0xae')](function(){return _0x7618a2(msgResponse(_0xa000('0x1ba'),'Failure','contact\x20not\x20moved'));});};Dialer[_0xa000('0x16')]['predictive']=function(_0x2e2230){var _0x2218b2=_0x2e2230[_0xa000('0x1bb')]/0x64;var _0x829f86=_0x2e2230[_0xa000('0x62')]/(_0x2e2230['outboundDropCallsDayTimeout']+_0x2e2230['outboundAnswerCallsDay']);var _0x2a7795=Math['round'](_0x2e2230[_0xa000('0x1bc')]*(_0x2e2230[_0xa000('0x1bd')]/0x64));var _0x2165b3=Math[_0xa000('0x1be')](_0x2e2230[_0xa000('0x1bc')]*(_0x2e2230[_0xa000('0x1bf')]/0x64));var _0x26780a=_0x2e2230[_0xa000('0x4c')]+_0x2e2230[_0xa000('0x51')];var _0x2cfaab=Math[_0xa000('0x1c0')](_0x2e2230[_0xa000('0x73')]*_0x2e2230['erlangAbandonmentRate']*_0x2e2230[_0xa000('0x6e')]*_0x2e2230[_0xa000('0x6f')]);if(_[_0xa000('0x39')](_0x2e2230[_0xa000('0x23')])){if(!_[_0xa000('0x39')](_0x2e2230['startPredictive'])){_0x2e2230[_0xa000('0x22')]=undefined;loggerPredictive[_0xa000('0x94')](_0xa000('0x1c1'),_0xa000('0x1c2'));}if(!_['isUndefined'](_0x2e2230[_0xa000('0x8f')])){loggerPredictive[_0xa000('0x94')](_0xa000('0x1c1'),_0xa000('0x1c3'));clearInterval(_0x2e2230[_0xa000('0x8f')]);_0x2e2230[_0xa000('0x8f')]=undefined;}_0x2e2230[_0xa000('0x23')]=moment()[_0xa000('0x7a')](_0xa000('0xf1'));loggerPredictive[_0xa000('0x7f')](_0x2e2230[_0xa000('0x3e')],_0xa000('0x1c4'),_0x2e2230['startProgressive']);this[_0xa000('0x153')](_0x2e2230,0x1);}else if(ifInterval(_0x2e2230[_0xa000('0x1c5')],_0x2e2230[_0xa000('0x23')])){this[_0xa000('0x153')](_0x2e2230,0x1);loggerPredictiveCalls[_0xa000('0x7f')](_0xa000('0x1c6'),_0x2e2230['startProgressive'],_0x2e2230[_0xa000('0x3e')]);_0x2e2230[_0xa000('0x73')]=0x0;_0x2e2230[_0xa000('0x6d')]=0x0;}else if(_0x2218b2<_0x829f86&&_0x2e2230[_0xa000('0x1c7')]==='dropRate'){freeVariablesPredictive(_0x2e2230);loggerPredictive[_0xa000('0x7f')](_0xa000('0x1c8'),'Dropped\x20calls\x20day',_0x829f86,_0xa000('0x23'),_0x2e2230['name']);}else if(_0x2cfaab<_0x2e2230[_0xa000('0x6d')]&&_0x2e2230['dialPredictiveOptimization']===_0xa000('0x1c9')){freeVariablesPredictive(_0x2e2230);loggerPredictive['info'](_0xa000('0x1ca'),'Max\x20Drop\x20',_0x2cfaab,_0xa000('0x1cb'),_0x2e2230[_0xa000('0x6d')],_0xa000('0x23'),_0x2e2230[_0xa000('0x3e')]);}else if(!ifInterval(_0x2e2230[_0xa000('0x1c5')],_0x2e2230['startProgressive'])&&_[_0xa000('0x39')](_0x2e2230['startPredictive'])&&!_[_0xa000('0x39')](_0x2e2230[_0xa000('0x23')])){_0x2e2230[_0xa000('0x22')]=moment()['format'](_0xa000('0xf1'));loggerPredictive['info'](_0x2e2230[_0xa000('0x3e')],'started\x20in\x20predictive\x20at',_0x2e2230[_0xa000('0x22')]);this[_0xa000('0xb9')](_0x2e2230[_0xa000('0x1c5')])[_0xa000('0xb5')](this['getDataPredictive'](_0x2e2230))[_0xa000('0xb5')](mergeDataErlangB(_0x2e2230))[_0xa000('0xb5')](this[_0xa000('0x1cc')](_0x2e2230))[_0xa000('0xae')](loggerCatchPredictive(_0xa000('0x1cd'),_0x2e2230));}else if(!ifInterval(_0x2e2230[_0xa000('0x1c5')],_0x2e2230[_0xa000('0x22')])){_0x2e2230[_0xa000('0x6d')]=0x0;_0x2e2230[_0xa000('0x22')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');loggerPredictive[_0xa000('0x7f')](_0x2e2230[_0xa000('0x3e')],_0xa000('0x1ce'),_0x2e2230['startPredictive']);clearInterval(_0x2e2230[_0xa000('0x8f')]);_0x2e2230[_0xa000('0x8f')]=undefined;this['averageHandleTime'](_0x2e2230[_0xa000('0x1c5')])[_0xa000('0xb5')](this[_0xa000('0x1cf')](_0x2e2230))[_0xa000('0xb5')](mergeDataErlangB(_0x2e2230))[_0xa000('0xb5')](this['startMethodPredictive'](_0x2e2230))[_0xa000('0xae')](loggerCatchPredictive(_0xa000('0x1d0'),_0x2e2230));}else if(_0x2e2230[_0xa000('0x1bc')]&&_0x26780a<_0x2e2230['predictiveIntervalAvailable']-_0x2165b3){freeVariablesPredictive(_0x2e2230);loggerPredictive[_0xa000('0x7f')](_0x2e2230['name'],_0xa000('0x1d1'),_0x26780a,_0xa000('0x1d2'),_0x2e2230[_0xa000('0x1bc')],'-',_0x2165b3,'=',_0x2e2230['predictiveIntervalAvailable']-_0x2165b3,')');}else if(_0x2e2230[_0xa000('0x1bc')]&&_0x26780a>_0x2e2230[_0xa000('0x1bc')]+_0x2a7795){freeVariablesPredictive(_0x2e2230);loggerPredictive[_0xa000('0x7f')](_0x2e2230[_0xa000('0x3e')],_0xa000('0x1d1'),_0x26780a,_0xa000('0x1d3'),_0x2e2230['predictiveIntervalAvailable'],'+',_0x2a7795,'=',_0x2e2230[_0xa000('0x1bc')]+_0x2a7795,')');}};Dialer[_0xa000('0x16')][_0xa000('0x1cf')]=function(_0xd6bf55){var _0x2f65df=this;return function(_0x3e19dd){return new BPromise(function(_0xedbd4e,_0x1aa354){_[_0xa000('0x122')](_0xd6bf55,_0x3e19dd[0x0]);if(checkGetDataPredictive(_0x3e19dd[0x0])){var _0x55da68=_0xd6bf55[_0xa000('0x1bc')]=_0xd6bf55[_0xa000('0x51')]+_0xd6bf55[_0xa000('0x4c')];var _0x4d189e=_0xd6bf55[_0xa000('0x1c5')]*0x3c;var _0x7bf362=_0x3e19dd[0x0][_0xa000('0x6a')]+_0x3e19dd[0x0]['predictiveIntervalAvgHoldtime'];var _0x55c9a5=(_0x3e19dd[0x0]['predictiveIntervalAnsweredCalls']+_0x3e19dd[0x0][_0xa000('0x6c')]+_0x3e19dd[0x0][_0xa000('0x6b')])/_0x3e19dd[0x0][_0xa000('0x71')];_0xd6bf55[_0xa000('0x6e')]=_0x55c9a5>0x0?_0x55c9a5:0x1;switch(_0xd6bf55['dialPredictiveOptimization']){case _0xa000('0x1c9'):var _0x4d4446=_0xd6bf55[_0xa000('0x1bb')]/0x64;return _0x2f65df['abandonmentRate'](_0x55da68,_0x4d189e,_0x7bf362,_0x55c9a5,_0x4d4446)['then'](function(_0x59e423){return _0xedbd4e(_0x59e423);});case _0xa000('0x1d4'):var _0x3ca65a=_0xd6bf55[_0xa000('0x1bb')]/0x64;return _0x2f65df[_0xa000('0x1d5')](_0x55da68,_0x4d189e,_0x7bf362,_0x55c9a5,_0x3ca65a)[_0xa000('0xb5')](function(_0x13151c){return _0xedbd4e(_0x13151c);});default:return _0x1aa354(msgResponse(_0xa000('0x1d6'),_0xa000('0x13e'),_0xa000('0x1d7')));}}else{return _0x1aa354(msgResponse(_0xa000('0x1d6'),_0xa000('0x13e'),_0xa000('0x1d8')));}});};};Dialer['prototype'][_0xa000('0x1d9')]=function(_0x2826ea){var _0x250a3c=this;return function(_0xd37e69){return new BPromise(function(_0xf64e4d,_0x1da849){_['merge'](_0x2826ea,_0xd37e69[0x0]);if(checkGetDataPredictive(_0xd37e69[0x0])){loggerPredictive[_0xa000('0x7f')](JSON[_0xa000('0x44')](_0xd37e69[0x0]));if(_0x2826ea[_0xa000('0x1c7')]===_0xa000('0x1c9')){return _0x250a3c['getVoiceQueueRtPauses'](_0x2826ea['id'])['then'](function(_0x380418){var _0x574ae8=_0x2826ea[_0xa000('0x4d')]-_0x380418[0x0][_0xa000('0x1da')];var _0x3ea6e0=_0x2826ea[_0xa000('0x1c5')]*0x3c;var _0x576d35=_0xd37e69[0x0][_0xa000('0x6a')]+_0xd37e69[0x0][_0xa000('0x69')];var _0x55028b=(_0xd37e69[0x0][_0xa000('0x68')]+_0xd37e69[0x0][_0xa000('0x6c')]+_0xd37e69[0x0][_0xa000('0x6b')])/_0xd37e69[0x0][_0xa000('0x71')];var _0x4afc22=_0x2826ea['dialPredictiveOptimizationPercentage']/0x64;_0x2826ea['predictiveIntervalPauses']=_0x380418[0x0][_0xa000('0x1da')]||0x0;_0x2826ea[_0xa000('0x6e')]=_0x55028b>0x0?_0x55028b:0x1;return _0x250a3c['abandonmentRate'](_0x574ae8,_0x3ea6e0,_0x576d35,_0x55028b,_0x4afc22);})[_0xa000('0xb5')](function(_0x5d96de){return _0xf64e4d(_0x5d96de);})[_0xa000('0xae')](function(_0x31c8b8){return _0x1da849(msgResponse(_0xa000('0x1db'),_0xa000('0x13e'),JSON[_0xa000('0x44')](_0x31c8b8)));});}if(_0x2826ea[_0xa000('0x1c7')]===_0xa000('0x1d4')){return _0x250a3c[_0xa000('0xc4')](_0x2826ea['id'])[_0xa000('0xb5')](function(_0x50a59e){var _0xdff6fe=_0x2826ea[_0xa000('0x4d')]-_0x50a59e[0x0][_0xa000('0x1da')];var _0x3451db=_0x2826ea['dialPredictiveInterval']*0x3c;var _0x34ad62=_0xd37e69[0x0][_0xa000('0x6a')]+_0xd37e69[0x0][_0xa000('0x69')];var _0x593122=(_0xd37e69[0x0][_0xa000('0x68')]+_0xd37e69[0x0][_0xa000('0x6c')]+_0xd37e69[0x0][_0xa000('0x6b')])/_0xd37e69[0x0][_0xa000('0x71')];var _0x2467f1=_0x2826ea[_0xa000('0x1bb')]/0x64;_0x2826ea['predictiveIntervalPauses']=_0x50a59e[0x0][_0xa000('0x1da')]||0x0;_0x2826ea[_0xa000('0x6e')]=_0x593122>0x0?_0x593122:0x1;return _0x250a3c['busyFactor'](_0xdff6fe,_0x3451db,_0x34ad62,_0x593122,_0x2467f1);})['then'](function(_0x15699b){return _0xf64e4d(_0x15699b);})[_0xa000('0xae')](function(_0x1e9a1e){return _0x1da849(msgResponse(_0xa000('0x1db'),_0xa000('0x13e'),JSON[_0xa000('0x44')](_0x1e9a1e)));});}}else{return _0x1da849(msgResponse('[getDataPredictive]',_0xa000('0x13e'),'check\x20failure'));}});};};Dialer['prototype'][_0xa000('0x1cc')]=function(_0x1622e3){var _0x57310e=this;return function(){var _0x4b3c63=0x0;var _0x423bce=Math[_0xa000('0x1c0')](_0x1622e3[_0xa000('0x74')]*0x3e8);if(_0x423bce>0x0){_0x423bce=_0x423bce<0x64?0x64:_0x423bce;loggerPredictive[_0xa000('0x7f')](_0x1622e3['name'],_0xa000('0x1dc'),_0x423bce,'milliseconds');_0x1622e3[_0xa000('0x8f')]=setInterval(function(){_0x57310e[_0xa000('0x8f')](_0x1622e3);loggerPredictiveCalls[_0xa000('0x7f')](_0xa000('0x1dd'),_0x4b3c63+=0x1);},_0x423bce);}else{loggerPredictive['info'](_0x1622e3['name'],_0xa000('0x1de'));}};};Dialer[_0xa000('0x16')][_0xa000('0x1df')]=function(_0x1a55ef,_0xcca682){var _0x528401=this;return function(_0x245e3b){if(_['isEmpty'](_0x245e3b)){if(_[_0xa000('0xab')](_0xcca682[_0xa000('0x1e0')])||!_0xcca682[_0xa000('0x1e1')]){if(_0x1a55ef[_0xa000('0x58')]===_0xa000('0x1e2')){_0x1a55ef['queueStatusComplete']=_[_0xa000('0x39')](_0x1a55ef[_0xa000('0x126')])?!![]:_0x1a55ef[_0xa000('0x126')];var _0x1e633d=uuid['v4']();_0x528401[_0xa000('0x1e')][_0x1e633d]=new Action(_0x1a55ef,_0xcca682,_0x1e633d);loggerBooked[_0xa000('0x7f')]('[booked][checkContactBlack]',_0x1e633d,_0xa000('0x1e3'),JSON[_0xa000('0x44')](_0x1a55ef[_0xa000('0x126')]),_0xa000('0x1e4'),_0x1a55ef[_0xa000('0x3e')]);if(_0x1a55ef[_0xa000('0x126')]){_0x1a55ef[_0xa000('0x126')]=![];_0x528401[_0xa000('0x25')][_0x528401[_0xa000('0x1e')][_0x1e633d][_0xa000('0xb1')]]=[];ami[_0xa000('0x145')]({'actionid':_0x1e633d,'action':_0xa000('0x1e5'),'queue':_0x1a55ef[_0xa000('0x3e')]})[_0xa000('0xae')](function(){_0x528401[_0xa000('0xb0')](_0x1a55ef);_0x528401[_0xa000('0xbd')]({'active':![],'ContactId':_0x528401[_0xa000('0x1e')][_0x1e633d][_0xa000('0xce')],'ListId':_0x528401[_0xa000('0x1e')][_0x1e633d][_0xa000('0xcf')],'VoiceQueueId':_0x528401[_0xa000('0x1e')][_0x1e633d][_0xa000('0xf2')]||undefined,'CampaignId':_0x528401[_0xa000('0x1e')][_0x1e633d][_0xa000('0xd0')]||undefined})[_0xa000('0xae')](loggerCatch(_0xa000('0x1e6')));delete _0x528401['actions'][_0x1e633d];});}else{loggerBooked[_0xa000('0x7f')](_0xa000('0x1e7'),JSON['stringify'](_0x1a55ef['queueStatusComplete']),_0xa000('0x1e4'),_0x1a55ef['name']);_0x528401[_0xa000('0xb0')](_0x1a55ef);_0x528401[_0xa000('0xbd')]({'active':![],'ContactId':_0x528401[_0xa000('0x1e')][_0x1e633d][_0xa000('0xce')],'ListId':_0x528401['actions'][_0x1e633d][_0xa000('0xcf')],'VoiceQueueId':_0x528401[_0xa000('0x1e')][_0x1e633d][_0xa000('0xf2')]||undefined,'CampaignId':_0x528401[_0xa000('0x1e')][_0x1e633d][_0xa000('0xd0')]||undefined})['catch'](loggerCatch('[unlockOriginate][syncQueueStatusComplete]'));delete _0x528401[_0xa000('0x1e')][_0x1e633d];}}else{return _0x528401['actionOriginate'](_0x1a55ef,_0xcca682);}}else{if(getDiff(_0xcca682['scheduledat'])<_0x1a55ef['dialRecallMeTimeout']*0x3c){if(_0xcca682[_0xa000('0x1e8')]&&!_0xcca682[_0xa000('0x1e8')]['voicePause']){_0x528401[_0xa000('0x19')][_0xa000('0x128')](_0xcca682['id'])[_0xa000('0x129')](function(){_0x528401[_0xa000('0xb0')](_0x1a55ef);});}else{_0x528401[_0xa000('0x1e9')]({'active':![]},_0xcca682['id'],0x1)['finally'](function(){_0x528401[_0xa000('0xb0')](_0x1a55ef);});}}else{_0x1a55ef[_0xa000('0x65')]+=0x1;_0x528401[_0xa000('0xb0')](_0x1a55ef);if(_0x1a55ef[_0xa000('0x1ea')]){_0x528401['rescheduleContact']({'active':![],'recallme':![],'UserId':null,'ContactId':_0xcca682[_0xa000('0xce')],'ListId':_0xcca682[_0xa000('0xcf')],'VoiceQueueId':_0xcca682[_0xa000('0xf2')]||undefined,'CampaignId':_0xcca682['CampaignId']||undefined})[_0xa000('0xae')](loggerCatch('[rescheduleContact][dialRecallInQueue]'));_0x528401[_0xa000('0xc8')](createObjHistory(_0x1a55ef,_0xcca682,_0xa000('0x1eb'),0x17,_0xa000('0x1ec')))[_0xa000('0xae')](loggerCatch(_0xa000('0x1ed')));}else{_0x528401[_0xa000('0xcd')](createObjHistory(_0x1a55ef,_0xcca682,_0xa000('0x1ee'),0x16,'RecallFailedTimeout'),_0xa000('0x1ef'),_0xa000('0x1f0'));}}}}else{_0x1a55ef[_0xa000('0x5e')]+=0x1;_0x528401[_0xa000('0xcd')](createObjHistory(_0x1a55ef,_0xcca682,_0xa000('0x1f1'),0xd,_0xa000('0x1f2')),_0xa000('0x1f3'),'[Originate][MoveBlacklist]');throw'inBlackList';}};};Dialer['prototype']['handleIvr']=function(_0x5391f6){var _0x5434d6=this;var _0x2c559c=_0x5391f6[_0xa000('0x1f4')]-_0x5391f6[_0xa000('0x72')]-_0x5391f6[_0xa000('0xc0')];emitCampaignSummary(_0x5391f6);if(_0x2c559c>0x0){if(_0x2c559c>this[_0xa000('0x1d')]){_0x2c559c=this['maxNumberOriginate'];}_0x5391f6[_0xa000('0xc0')]+=_0x2c559c;this[_0xa000('0xc2')](_0x5391f6['id'],_0x2c559c,_0x5391f6[_0xa000('0x1f5')],_0x5391f6)['then'](function(_0x58e64c){_0x5391f6[_0xa000('0xc0')]-=_0x2c559c;_0x5391f6[_0xa000('0xc0')]=_0x5391f6[_0xa000('0xc0')]>0x0?_0x5391f6[_0xa000('0xc0')]:0x0;if(!checkContactEmpty(_0x58e64c)){_0x5391f6[_0xa000('0x3a')]='AVAILABLE_CONTACTS_FINISHED';logger[_0xa000('0x7f')](_0xa000('0x1f6')+_0x5391f6['name']);}else{_0x5391f6['originated']+=_0x58e64c[_0xa000('0x97')];_0x5391f6[_0xa000('0x3a')]=_0xa000('0x1f7');for(var _0x5c5489=0x0;_0x5c5489<_0x58e64c[_0xa000('0x97')];_0x5c5489+=0x1){_0x5391f6[_0xa000('0x1f8')]+=0x1;if(_[_0xa000('0xab')](_0x58e64c[_0x5c5489])||_[_0xa000('0xab')](_0x58e64c[_0x5c5489][_0xa000('0x163')])||_[_0xa000('0xab')](_0x58e64c[_0x5c5489][_0xa000('0x163')][_0xa000('0x164')])){_0x5434d6[_0xa000('0xcc')]('[actionOriginate]\x20',_0x5391f6,_0x58e64c[_0x5c5489]);}else{_0x5434d6[_0xa000('0xb7')](_[_0xa000('0x123')](_0x58e64c[_0x5c5489],[_0xa000('0xd0'),_0xa000('0x1f9')]))['then'](_0x5434d6[_0xa000('0x1df')](_0x5391f6,_0x58e64c[_0x5c5489]))[_0xa000('0xae')](_0x5434d6[_0xa000('0xcb')](_0xa000('0x1fa'),_0x5391f6));}}}})['catch'](loggerGetContactDialer(_0xa000('0x1fb'),_0x5391f6,_0x2c559c));}};Dialer[_0xa000('0x16')][_0xa000('0x153')]=function(_0x5ed9a3,_0x55fef7){var _0x37bed5=this;var _0x2324c1=[];var _0x22ac37=_0x55fef7>=0x1?_0x55fef7:0x1;if(_0x5ed9a3[_0xa000('0x58')]===_0xa000('0x1e2')){_0x22ac37=0x1;}var _0x250f03=Math[_0xa000('0x1c0')](_0x5ed9a3[_0xa000('0x4c')]*_0x22ac37)-_0x5ed9a3[_0xa000('0x72')]-_0x5ed9a3['temp'];emitVoiceQueueSummary(_0x5ed9a3);if(_0x5ed9a3[_0xa000('0x1fc')]>0x0){var _0xf1a7c7=_0x5ed9a3['dialLimitQueue']-_0x5ed9a3[_0xa000('0x72')]-_0x5ed9a3[_0xa000('0x51')]-_0x5ed9a3[_0xa000('0xc0')]-_0x5ed9a3[_0xa000('0x1fd')];if(_0x250f03>_0xf1a7c7){_0x250f03=_0xf1a7c7;}}if(_0x250f03>0x0){if(_0x5ed9a3['dialMethod']===_0xa000('0x1e2')){_0x250f03=0x1;}if(_0x250f03>this[_0xa000('0x1d')]){_0x250f03=this[_0xa000('0x1d')];}_0x5ed9a3[_0xa000('0xc0')]+=_0x250f03;for(var _0x195728 in this[_0xa000('0x11f')]){if(typeof this[_0xa000('0x11f')][_0x195728]!==_0xa000('0x98')){if(this[_0xa000('0x11f')][_0x195728]['state']===_0xa000('0x1fe')&&this['agents'][_0x195728][_0xa000('0xac')]===_0xa000('0xd5')){_0x2324c1[_0xa000('0x121')](this[_0xa000('0x11f')][_0x195728]['id']);}}}this['getContactDialer'](_0x5ed9a3['id'],_0x2324c1,_0x250f03,_0x5ed9a3[_0xa000('0x1f5')],_0x5ed9a3)[_0xa000('0xb5')](function(_0xeb1d4c){_0x5ed9a3[_0xa000('0xc0')]-=_0x250f03;_0x5ed9a3[_0xa000('0xc0')]=_0x5ed9a3[_0xa000('0xc0')]>0x0?_0x5ed9a3['temp']:0x0;if(!checkContactEmpty(_0xeb1d4c)){_0x37bed5[_0xa000('0xb4')](_0x5ed9a3)['then'](sendMessageReschedule(_0x5ed9a3))[_0xa000('0xae')](loggerCatch(_0xa000('0x1ff')));}else{_0x5ed9a3['originated']+=_0xeb1d4c[_0xa000('0x97')];_0x5ed9a3['message']=_0x5ed9a3[_0xa000('0x58')]===_0xa000('0x1e2')?'ACTIVE':_0xa000('0x1f7');for(var _0x6f8a2e=0x0;_0x6f8a2e<_0xeb1d4c[_0xa000('0x97')];_0x6f8a2e+=0x1){if(_[_0xa000('0xab')](_0xeb1d4c[_0x6f8a2e])||_['isNil'](_0xeb1d4c[_0x6f8a2e][_0xa000('0x163')])||_['isNil'](_0xeb1d4c[_0x6f8a2e][_0xa000('0x163')][_0xa000('0x164')])){_0x37bed5['emptyContact'](_0xa000('0x200'),_0x5ed9a3,_0xeb1d4c[_0x6f8a2e]);}else{_0x37bed5['checkIsBlackList'](_['pick'](_0xeb1d4c[_0x6f8a2e],[_0xa000('0xf2'),_0xa000('0x1f9')]))[_0xa000('0xb5')](_0x37bed5[_0xa000('0x1df')](_0x5ed9a3,_0xeb1d4c[_0x6f8a2e]))[_0xa000('0xae')](_0x37bed5[_0xa000('0xcb')](_0xa000('0x200'),_0x5ed9a3));}}}})['catch'](loggerGetContactDialer('[getContactDialer2]',_0x5ed9a3,_0x250f03));}};Dialer[_0xa000('0x16')]['handlePredictive']=function(_0x3b6897){if(_0x3b6897[_0xa000('0x1fc')]>0x0){var _0x81acef=_0x3b6897[_0xa000('0x1fc')]-_0x3b6897['originated']-_0x3b6897[_0xa000('0x51')];if(_0x81acef>0x0){this[_0xa000('0x201')](_0x3b6897);}else{loggerPredictiveCalls[_0xa000('0x7f')](_0xa000('0x202'));}}else{this[_0xa000('0x201')](_0x3b6897);}};Dialer['prototype'][_0xa000('0x201')]=function(_0x480ea5){var _0x53dd4d=this;var _0x1a718d=[];_0x480ea5[_0xa000('0x72')]+=0x1;for(var _0x3d445f in this[_0xa000('0x11f')]){if(typeof this[_0xa000('0x11f')][_0x3d445f]!=='undefined'){if(this[_0xa000('0x11f')][_0x3d445f][_0xa000('0xa4')]===_0xa000('0x1fe')&&this[_0xa000('0x11f')][_0x3d445f]['status']==='reachable'){_0x1a718d[_0xa000('0x121')](this['agents'][_0x3d445f]['id']);}}}this[_0xa000('0x203')](_0x480ea5['id'],_0x1a718d,0x1,_0x480ea5['dialOrderByScheduledAt'],_0x480ea5)[_0xa000('0xb5')](function(_0x591ef7){if(!checkContactEmpty(_0x591ef7)){checkContactLowerLimitOriginate(_0x480ea5,0x1,0x0);_0x53dd4d[_0xa000('0xb4')](_0x480ea5)[_0xa000('0xb5')](sendMessageReschedule(_0x480ea5))[_0xa000('0xae')](loggerCatch(_0xa000('0x1ff')));}else{_0x480ea5[_0xa000('0x3a')]=_0xa000('0x1f7');if(_[_0xa000('0xab')](_0x591ef7[0x0])||_[_0xa000('0xab')](_0x591ef7[0x0][_0xa000('0x163')])||_[_0xa000('0xab')](_0x591ef7[0x0][_0xa000('0x163')][_0xa000('0x164')])){_0x53dd4d[_0xa000('0xcc')]('[actionOriginate]\x20',_0x480ea5,_0x591ef7[0x0]);}else{_0x53dd4d['checkIsBlackList'](_[_0xa000('0x123')](_0x591ef7[0x0],[_0xa000('0xf2'),_0xa000('0x1f9')]))[_0xa000('0xb5')](_0x53dd4d[_0xa000('0x1df')](_0x480ea5,_0x591ef7[0x0]))[_0xa000('0xae')](_0x53dd4d[_0xa000('0xcb')](_0xa000('0x204'),_0x480ea5));}}})[_0xa000('0xae')](loggerGetContactDialer(_0xa000('0x205'),_0x480ea5,0x1));emitVoiceQueueSummary(_0x480ea5);};Dialer[_0xa000('0x16')][_0xa000('0x206')]=function(_0x2eb472,_0x281f45,_0x4ac6af,_0xfbd800,_0x55480c,_0x402fdd){loggerPredictive[_0xa000('0x7f')](_0xa000('0x207'));loggerPredictive[_0xa000('0x7f')](_0xa000('0x208'),_0x2eb472);loggerPredictive['info'](_0xa000('0x209'),_0x281f45);loggerPredictive[_0xa000('0x7f')](_0xa000('0x20a'),_0x4ac6af);loggerPredictive[_0xa000('0x7f')](_0xa000('0x20b'),_0xfbd800);loggerPredictive[_0xa000('0x7f')]('Amax:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x55480c);loggerPredictive[_0xa000('0x7f')](_0xa000('0x8b'));return new BPromise(function(_0x4b6174,_0x306cde){if(_0x2eb472<=0x0||isNaN(_0x2eb472)){return _0x306cde(msgResponse(_0xa000('0x20c'),_0xa000('0x18b'),'m\x20=\x20'+_0x2eb472));}if(_0x4ac6af<=0x0||isNaN(_0x4ac6af)){return _0x306cde(msgResponse(_0xa000('0x20c'),_0xa000('0x18b'),_0xa000('0x20d')+_0x4ac6af));}if(_0xfbd800<=0x0||isNaN(_0xfbd800)){return _0x306cde(msgResponse(_0xa000('0x20c'),'Error','p\x20=\x20'+_0xfbd800));}if(_0x281f45<=0x0||isNaN(_0x281f45)){return _0x306cde(msgResponse(_0xa000('0x20c'),_0xa000('0x18b'),_0xa000('0x20e')+_0x281f45));}if(_0x55480c<=0x0||isNaN(_0x55480c)){return _0x306cde(msgResponse('[abandonmentRate]',_0xa000('0x18b'),_0xa000('0x20f')+_0x55480c));}_0x402fdd=_0x402fdd||0x0;var _0x49ae40=0x1/_0x4ac6af;var _0x4cd262=0x0;var _0x423332=0x0;var _0x53132a=0x0;var _0x4062dd=0x0;for(var _0x579df5=0x0;_0x53132a<_0x55480c;_0x579df5+=0x1){_0x423332=_0x579df5/_0x281f45;_0x4cd262=(_0xfbd800*_0x423332+_0x402fdd)/_0x49ae40;_0x53132a=erlangb(_0x4cd262,_0x2eb472);_0x4062dd=_0x4cd262/_0x2eb472*(0x1-erlangb(_0x4cd262,_0x2eb472));}return _0x4b6174({'erlangCalls':_0x579df5,'erlangCallToSecond':_0x281f45/_0x579df5,'erlangAbandonmentRate':_0x53132a,'erlangBusyFactor':_0x4062dd});});};Dialer[_0xa000('0x16')][_0xa000('0x1d5')]=function(_0x392c59,_0x55cdcb,_0x2dbb01,_0x470c53,_0x5b0499,_0x1aa26b){loggerPredictive[_0xa000('0x7f')](_0xa000('0x210'));loggerPredictive[_0xa000('0x7f')]('M:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x392c59);loggerPredictive[_0xa000('0x7f')](_0xa000('0x209'),_0x55cdcb);loggerPredictive['info']('Ts:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20',_0x2dbb01);loggerPredictive[_0xa000('0x7f')](_0xa000('0x20b'),_0x470c53);loggerPredictive[_0xa000('0x7f')](_0xa000('0x211'),_0x5b0499);loggerPredictive[_0xa000('0x7f')](_0xa000('0x8b'));return new BPromise(function(_0x478f7a,_0xd44bac){if(_0x392c59<=0x0||isNaN(_0x392c59)){return _0xd44bac(msgResponse(_0xa000('0x212'),_0xa000('0x18b'),'m\x20=\x20'+_0x392c59));}if(_0x2dbb01<=0x0||isNaN(_0x2dbb01)){return _0xd44bac(msgResponse(_0xa000('0x212'),'Error',_0xa000('0x20d')+_0x2dbb01));}if(_0x470c53<=0x0||isNaN(_0x470c53)){return _0xd44bac(msgResponse(_0xa000('0x212'),'Error','p\x20=\x20'+_0x470c53));}if(_0x55cdcb<=0x0||isNaN(_0x55cdcb)){return _0xd44bac(msgResponse(_0xa000('0x212'),_0xa000('0x18b'),_0xa000('0x20e')+_0x55cdcb));}if(_0x5b0499<=0x0||isNaN(_0x5b0499)){return _0xd44bac(msgResponse(_0xa000('0x212'),_0xa000('0x18b'),_0xa000('0x213')+_0x5b0499));}_0x1aa26b=_0x1aa26b||0x0;var _0x500c86=0x1/_0x2dbb01;var _0x466097=0x0;var _0x53c87e=0x0;var _0x2abb6d=0x0;var _0x156f63=0x0;for(var _0x4ab416=0x0;_0x156f63<_0x5b0499;_0x4ab416+=0x1){_0x53c87e=_0x4ab416/_0x55cdcb;_0x466097=(_0x470c53*_0x53c87e+_0x1aa26b)/_0x500c86;_0x2abb6d=erlangb(_0x466097,_0x392c59);_0x156f63=_0x466097/_0x392c59*(0x1-erlangb(_0x466097,_0x392c59));}return _0x478f7a({'erlangCalls':_0x4ab416,'erlangCallToSecond':_0x55cdcb/_0x4ab416,'erlangAbandonmentRate':_0x2abb6d,'erlangBusyFactor':_0x156f63});});};module[_0xa000('0x214')]=Dialer;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb6ec=['queue','countbusyretry','countcongestionretry','countnoanswerretry','countglobal','countdropretry','countabandonedretry','countmachineretry','countagentrejectretry','countnosuchnumberretry','uniqueid','calleridname','name','number','starttime','responsetime','droptime','endtime','ringtime','holdtime','membername','connectedlinename','reason','callback','callbackuniqueid','callbackat','ContactId','ListId','UserId','VoiceQueueId','CampaignId','originatecalleridnum','originatecalleridname','exports','util','lodash','moment','diff','scheduledat','type','campaigntype','outbound'];(function(_0xd3e0b9,_0xd80d4d){var _0x470133=function(_0x1aede8){while(--_0x1aede8){_0xd3e0b9['push'](_0xd3e0b9['shift']());}};_0x470133(++_0xd80d4d);}(_0xb6ec,0xca));var _0xcb6e=function(_0x57f884,_0x4138d8){_0x57f884=_0x57f884-0x0;var _0xe2d2fe=_0xb6ec[_0x57f884];return _0xe2d2fe;};'use strict';var util=require(_0xcb6e('0x0'));var _=require(_0xcb6e('0x1'));var moment=require(_0xcb6e('0x2'));function getSeconds(_0xc76a9f,_0x4bd37e){var _0x11f5ad=moment(_0xc76a9f)['milliseconds'](0x0);var _0x1985b5=moment(_0x4bd37e)['milliseconds'](0x0);return _0x11f5ad[_0xcb6e('0x3')](_0x1985b5,'seconds');}function QueueCallerAbandon(_0x57b385,_0x507a50){this[_0xcb6e('0x4')]=_0x57b385[_0xcb6e('0x4')];this[_0xcb6e('0x5')]=_0x57b385[_0xcb6e('0x5')];this[_0xcb6e('0x6')]=_0x57b385['type']===_0xcb6e('0x7')?_0xcb6e('0x8'):_0x57b385[_0xcb6e('0x5')];this[_0xcb6e('0x9')]=_0x57b385[_0xcb6e('0x9')];this[_0xcb6e('0xa')]=_0x57b385[_0xcb6e('0xa')];this[_0xcb6e('0xb')]=_0x57b385[_0xcb6e('0xb')];this[_0xcb6e('0xc')]=_0x57b385[_0xcb6e('0x9')]+_0x57b385[_0xcb6e('0xa')]+_0x57b385[_0xcb6e('0xb')]+_0x57b385['countnosuchnumberretry']+_0x57b385[_0xcb6e('0xd')]+_0x57b385[_0xcb6e('0xe')]+_0x57b385[_0xcb6e('0xf')]+_0x57b385[_0xcb6e('0x10')];this['countnosuchnumberretry']=_0x57b385[_0xcb6e('0x11')];this[_0xcb6e('0xd')]=_0x57b385[_0xcb6e('0xd')];this[_0xcb6e('0xe')]=_0x57b385['countabandonedretry'];this[_0xcb6e('0xf')]=_0x57b385[_0xcb6e('0xf')];this[_0xcb6e('0x10')]=_0x57b385[_0xcb6e('0x10')];this[_0xcb6e('0x12')]=_0x507a50[_0xcb6e('0x12')];this[_0xcb6e('0x13')]=_0x57b385[_0xcb6e('0x14')];this['calleridnum']=_0x57b385[_0xcb6e('0x15')];this[_0xcb6e('0x16')]=_0x57b385[_0xcb6e('0x16')];this[_0xcb6e('0x17')]=_0x57b385[_0xcb6e('0x17')];this[_0xcb6e('0x18')]=_0x57b385[_0xcb6e('0x18')];this[_0xcb6e('0x19')]=this[_0xcb6e('0x18')];this[_0xcb6e('0x1a')]=getSeconds(_0x57b385[_0xcb6e('0x17')],_0x57b385[_0xcb6e('0x16')]);this[_0xcb6e('0x1b')]=getSeconds(this['droptime'],_0x57b385[_0xcb6e('0x17')]);this['talktime']=0x0;this[_0xcb6e('0x8')]=_0x507a50[_0xcb6e('0x8')];this[_0xcb6e('0x1c')]=_0x507a50[_0xcb6e('0x1d')];this[_0xcb6e('0x1e')]=_0x507a50[_0xcb6e('0x1e')];this[_0xcb6e('0x1f')]=_0x57b385[_0xcb6e('0x1f')];this[_0xcb6e('0x20')]=_0x57b385[_0xcb6e('0x20')];this[_0xcb6e('0x21')]=_0x57b385[_0xcb6e('0x21')];this['recallme']=_0x57b385['recallme'];this[_0xcb6e('0x22')]=_0x57b385[_0xcb6e('0x22')];this[_0xcb6e('0x23')]=_0x57b385[_0xcb6e('0x23')];this[_0xcb6e('0x24')]=_0x57b385[_0xcb6e('0x24')];this['VoiceQueueId']=_0x57b385[_0xcb6e('0x25')];this[_0xcb6e('0x26')]=_0x57b385[_0xcb6e('0x26')];this['originatecalleridnum']=_0x57b385[_0xcb6e('0x27')]||'';this[_0xcb6e('0x28')]=_0x57b385[_0xcb6e('0x28')]||'';}module[_0xcb6e('0x29')]=QueueCallerAbandon;
\ No newline at end of file
+var _0x02a6=['countglobal','countnosuchnumberretry','countabandonedretry','countagentrejectretry','countdropretry','uniqueid','name','calleridnum','starttime','responsetime','droptime','endtime','ringtime','holdtime','talktime','queue','connectedlinename','reason','callback','callbackuniqueid','callbackat','recallme','ContactId','ListId','UserId','VoiceQueueId','CampaignId','originatecalleridnum','originatecalleridname','exports','util','lodash','milliseconds','diff','seconds','scheduledat','type','campaigntype','outbound','countbusyretry','countcongestionretry','countnoanswerretry'];(function(_0x243b59,_0x3f9495){var _0x3e1676=function(_0x354052){while(--_0x354052){_0x243b59['push'](_0x243b59['shift']());}};_0x3e1676(++_0x3f9495);}(_0x02a6,0x72));var _0x602a=function(_0x593588,_0xe61a55){_0x593588=_0x593588-0x0;var _0x2b9bc5=_0x02a6[_0x593588];return _0x2b9bc5;};'use strict';var util=require(_0x602a('0x0'));var _=require(_0x602a('0x1'));var moment=require('moment');function getSeconds(_0x578374,_0x1eae8e){var _0x222cb4=moment(_0x578374)[_0x602a('0x2')](0x0);var _0x5289e0=moment(_0x1eae8e)[_0x602a('0x2')](0x0);return _0x222cb4[_0x602a('0x3')](_0x5289e0,_0x602a('0x4'));}function QueueCallerAbandon(_0x58af6e,_0x409275){this[_0x602a('0x5')]=_0x58af6e[_0x602a('0x5')];this[_0x602a('0x6')]=_0x58af6e[_0x602a('0x6')];this[_0x602a('0x7')]=_0x58af6e['type']===_0x602a('0x8')?'queue':_0x58af6e[_0x602a('0x6')];this[_0x602a('0x9')]=_0x58af6e[_0x602a('0x9')];this[_0x602a('0xa')]=_0x58af6e['countcongestionretry'];this[_0x602a('0xb')]=_0x58af6e['countnoanswerretry'];this[_0x602a('0xc')]=_0x58af6e[_0x602a('0x9')]+_0x58af6e[_0x602a('0xa')]+_0x58af6e[_0x602a('0xb')]+_0x58af6e[_0x602a('0xd')]+_0x58af6e['countdropretry']+_0x58af6e[_0x602a('0xe')]+_0x58af6e['countmachineretry']+_0x58af6e[_0x602a('0xf')];this[_0x602a('0xd')]=_0x58af6e['countnosuchnumberretry'];this[_0x602a('0x10')]=_0x58af6e[_0x602a('0x10')];this[_0x602a('0xe')]=_0x58af6e[_0x602a('0xe')];this['countmachineretry']=_0x58af6e['countmachineretry'];this[_0x602a('0xf')]=_0x58af6e['countagentrejectretry'];this[_0x602a('0x11')]=_0x409275['uniqueid'];this['calleridname']=_0x58af6e[_0x602a('0x12')];this[_0x602a('0x13')]=_0x58af6e['number'];this[_0x602a('0x14')]=_0x58af6e['starttime'];this[_0x602a('0x15')]=_0x58af6e['responsetime'];this[_0x602a('0x16')]=_0x58af6e['droptime'];this[_0x602a('0x17')]=this['droptime'];this[_0x602a('0x18')]=getSeconds(_0x58af6e[_0x602a('0x15')],_0x58af6e[_0x602a('0x14')]);this[_0x602a('0x19')]=getSeconds(this[_0x602a('0x16')],_0x58af6e['responsetime']);this[_0x602a('0x1a')]=0x0;this[_0x602a('0x1b')]=_0x409275[_0x602a('0x1b')];this['membername']=_0x409275[_0x602a('0x1c')];this['reason']=_0x409275[_0x602a('0x1d')];this[_0x602a('0x1e')]=_0x58af6e['callback'];this[_0x602a('0x1f')]=_0x58af6e[_0x602a('0x1f')];this[_0x602a('0x20')]=_0x58af6e[_0x602a('0x20')];this[_0x602a('0x21')]=_0x58af6e[_0x602a('0x21')];this['ContactId']=_0x58af6e[_0x602a('0x22')];this[_0x602a('0x23')]=_0x58af6e[_0x602a('0x23')];this[_0x602a('0x24')]=_0x58af6e[_0x602a('0x24')];this['VoiceQueueId']=_0x58af6e[_0x602a('0x25')];this[_0x602a('0x26')]=_0x58af6e[_0x602a('0x26')];this[_0x602a('0x27')]=_0x58af6e['originatecalleridnum']||'';this[_0x602a('0x28')]=_0x58af6e[_0x602a('0x28')]||'';}module[_0x602a('0x29')]=QueueCallerAbandon;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['fax','localstationid','path','AttachmentId','exports','util','lodash','moment','channel','format','%s/%s/%s','tech','Trunk'];(function(_0x12d870,_0x3a9605){var _0x35cbdd=function(_0x2b8fa1){while(--_0x2b8fa1){_0x12d870['push'](_0x12d870['shift']());}};_0x35cbdd(++_0x3a9605);}(_0xa9e0,0x123));var _0x0a9e=function(_0x6c993a,_0x5ea3ab){_0x6c993a=_0x6c993a-0x0;var _0x27f547=_0xa9e0[_0x6c993a];return _0x27f547;};'use strict';var util=require(_0x0a9e('0x0'));var _=require(_0x0a9e('0x1'));var moment=require(_0x0a9e('0x2'));function Action(_0x5dd881,_0x550fbc,_0x18d5c9){this['uniqueid']=_0x5dd881||undefined;this[_0x0a9e('0x3')]=util[_0x0a9e('0x4')](_0x0a9e('0x5'),_0x550fbc[_0x0a9e('0x6')],_0x550fbc[_0x0a9e('0x7')]['name'],_0x18d5c9[_0x0a9e('0x8')]);this[_0x0a9e('0x9')]=_0x550fbc[_0x0a9e('0x9')];this['headerinfo']=_0x550fbc['headerinfo'];this[_0x0a9e('0xa')]=_0x18d5c9['path'];this['AttachmentId']=_0x18d5c9[_0x0a9e('0xb')];}module[_0x0a9e('0xc')]=Action;
\ No newline at end of file
+var _0xa9e0=['fax','localstationid','path','AttachmentId','exports','util','lodash','moment','channel','format','%s/%s/%s','tech','Trunk'];(function(_0xc8bf9f,_0xfefab6){var _0xea81c8=function(_0x1b5570){while(--_0x1b5570){_0xc8bf9f['push'](_0xc8bf9f['shift']());}};_0xea81c8(++_0xfefab6);}(_0xa9e0,0x123));var _0x0a9e=function(_0x187ee1,_0x3fd1e6){_0x187ee1=_0x187ee1-0x0;var _0x388160=_0xa9e0[_0x187ee1];return _0x388160;};'use strict';var util=require(_0x0a9e('0x0'));var _=require(_0x0a9e('0x1'));var moment=require(_0x0a9e('0x2'));function Action(_0x5dd881,_0x550fbc,_0x18d5c9){this['uniqueid']=_0x5dd881||undefined;this[_0x0a9e('0x3')]=util[_0x0a9e('0x4')](_0x0a9e('0x5'),_0x550fbc[_0x0a9e('0x6')],_0x550fbc[_0x0a9e('0x7')]['name'],_0x18d5c9[_0x0a9e('0x8')]);this[_0x0a9e('0x9')]=_0x550fbc[_0x0a9e('0x9')];this['headerinfo']=_0x550fbc['headerinfo'];this[_0x0a9e('0xa')]=_0x18d5c9['path'];this['AttachmentId']=_0x18d5c9[_0x0a9e('0xb')];}module[_0x0a9e('0xc')]=Action;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb688=['../rpc/faxAccount','../rpc/attachment','../rpc/faxMessage','channels','faxAccounts','trunks','actions','newchannel','syncNewchannel','bind','syncVarSet','newstate','syncNewState','newexten','syncNewExten','faxstatus','hangup','syncHangup','syncOriginateResponse','prototype','context','hasOwnProperty','exten','localstationid','uniqueid','channel','name','info','\x20syncNewchannel\x20','variable','channelstate','channelstatedesc','value','syncFaxStatus','operation','status','filename','\x20syncFaxStatus\x20','syncReceiveFax','remotestationid','pagestransferred','resolution','calleridnum','/var/opt/motion2/server/files/attachments/','message','parse','.pdf','then','notify','catch','error','\x20notify\x20','stringify','pick','reason','update','AttachmentId','[Fax][Message][Error][Updated]','logger','[Fax][Message][Error][NoUpdate2]','updateStatus','[Fax][Message][Updated]','[Fax][Message][NoUpdate1]','finally','[Fax][Message][NoUpdate2]','\x20hangup\x20sendFile\x20','\x20hangup\x20faxRiceive\x20','faxpages','SUCCESS','faxstatusstring','SENDING\x20FAILED','send','execOriginate','FaxAccountId','[Fax][execOriginate][success]','checkAfterSend','checkTrunk','Trunk\x20Reachable','format','%s/%s.tif','dir','Convert\x20pdf\x20to\x20tif','Action','variablesAction','addVariables','ext','isTrunkReachable','isNil','active','SIP/%s','reachable','[Fax][checkTrunk][Trunk\x20not\x20work]','\x20Trunk\x20is\x20not\x20active','Trunk\x20not\x20working','[Fax][checkTrunk][Empty\x20Fax]','[Fax][checkTrunk][Empty\x20path]','Is\x20Valid','exports','lodash','bluebird','uuid','moment','path','tiff2pdf','../../../config/logger','fax','../ami','./rpcDb','./util/util'];(function(_0x25d386,_0x108d0d){var _0x857f4a=function(_0x3eb98d){while(--_0x3eb98d){_0x25d386['push'](_0x25d386['shift']());}};_0x857f4a(++_0x108d0d);}(_0xb688,0xcf));var _0x8b68=function(_0x34fb3d,_0x553d58){_0x34fb3d=_0x34fb3d-0x0;var _0x89649b=_0xb688[_0x34fb3d];return _0x89649b;};'use strict';var util=require('util');var _=require(_0x8b68('0x0'));var BPromise=require(_0x8b68('0x1'));var uuid=require(_0x8b68('0x2'));var moment=require(_0x8b68('0x3'));var path=require(_0x8b68('0x4'));var tiff2pdf=require(_0x8b68('0x5'));var gs=require('./util/gs');var logger=require(_0x8b68('0x6'))(_0x8b68('0x7'));var ami=require(_0x8b68('0x8'));var rpcDb=require(_0x8b68('0x9'));var Channel=require('./channel');var ut=require(_0x8b68('0xa'));var Action=require('./action');var faxAccount=require(_0x8b68('0xb'));var attachment=require(_0x8b68('0xc'));var faxMessage=require(_0x8b68('0xd'));function Fax(_0xa5571b){this[_0x8b68('0xe')]={};this[_0x8b68('0xf')]=_0xa5571b[_0x8b68('0xf')];this[_0x8b68('0x10')]=_0xa5571b[_0x8b68('0x10')];this[_0x8b68('0x11')]={};ami['on'](_0x8b68('0x12'),this[_0x8b68('0x13')][_0x8b68('0x14')](this));ami['on']('varset',this[_0x8b68('0x15')][_0x8b68('0x14')](this));ami['on'](_0x8b68('0x16'),this[_0x8b68('0x17')][_0x8b68('0x14')](this));ami['on'](_0x8b68('0x18'),this[_0x8b68('0x19')][_0x8b68('0x14')](this));ami['on'](_0x8b68('0x1a'),this['syncFaxStatus'][_0x8b68('0x14')](this));ami['on']('receivefax',this['syncReceiveFax'][_0x8b68('0x14')](this));ami['on'](_0x8b68('0x1b'),this[_0x8b68('0x1c')]['bind'](this));ami['on']('originateresponse',this[_0x8b68('0x1d')]['bind'](this));}Fax[_0x8b68('0x1e')][_0x8b68('0x13')]=function(_0x1df44f){if(_0x1df44f[_0x8b68('0x1f')]==='from-voip-provider'){for(var _0xd17693 in this[_0x8b68('0xf')]){if(this['faxAccounts'][_0x8b68('0x20')](_0xd17693)){if(_0x1df44f[_0x8b68('0x21')]===this[_0x8b68('0xf')][_0xd17693][_0x8b68('0x22')]){this[_0x8b68('0xe')][_0x1df44f['uniqueid']]={};this[_0x8b68('0xe')][_0x1df44f[_0x8b68('0x23')]][_0x8b68('0x24')]=_0x1df44f[_0x8b68('0x24')];this[_0x8b68('0xe')][_0x1df44f[_0x8b68('0x23')]]['id']=this['faxAccounts'][_0xd17693]['id'];this['channels'][_0x1df44f[_0x8b68('0x23')]]['name']=this[_0x8b68('0xf')][_0xd17693][_0x8b68('0x25')];logger[_0x8b68('0x26')](_0x1df44f[_0x8b68('0x23')],_0x8b68('0x27'));}}}}if(this[_0x8b68('0x11')][_0x1df44f['uniqueid']]){this[_0x8b68('0xe')][_0x1df44f[_0x8b68('0x23')]]={};this['channels'][_0x1df44f[_0x8b68('0x23')]][_0x8b68('0x24')]=_0x1df44f[_0x8b68('0x24')];logger['info'](_0x1df44f['uniqueid'],'\x20syncNewchannel\x20');}};Fax[_0x8b68('0x1e')][_0x8b68('0x15')]=function(_0x2ba2a3){if(this['channels'][_0x2ba2a3[_0x8b68('0x23')]]){for(var _0x53aaa2 in _0x2ba2a3['variable']){if(_0x2ba2a3[_0x8b68('0x28')]['hasOwnProperty'](_0x53aaa2)){this[_0x8b68('0xe')][_0x2ba2a3[_0x8b68('0x23')]][_0x53aaa2]=_0x2ba2a3['value'];}}}};Fax['prototype'][_0x8b68('0x17')]=function(_0x1cd230){if(this[_0x8b68('0xe')][_0x1cd230[_0x8b68('0x23')]]){this[_0x8b68('0xe')][_0x1cd230[_0x8b68('0x23')]][_0x8b68('0x29')]=_0x1cd230['channelstate'];this[_0x8b68('0xe')][_0x1cd230['uniqueid']][_0x8b68('0x2a')]=_0x1cd230[_0x8b68('0x2a')];}};Fax['prototype'][_0x8b68('0x19')]=function(_0x93daf7){if(this[_0x8b68('0xe')][_0x93daf7['uniqueid']]){for(var _0x51f169 in _0x93daf7[_0x8b68('0x28')]){if(_0x93daf7[_0x8b68('0x28')][_0x8b68('0x20')](_0x51f169)){this[_0x8b68('0xe')][_0x93daf7[_0x8b68('0x23')]][_0x51f169]=_0x93daf7[_0x8b68('0x2b')];}}}};Fax[_0x8b68('0x1e')][_0x8b68('0x2c')]=function(_0x12abb8){if(this[_0x8b68('0xe')][_0x12abb8[_0x8b68('0x23')]]){this[_0x8b68('0xe')][_0x12abb8[_0x8b68('0x23')]][_0x8b68('0x2d')]=_0x12abb8[_0x8b68('0x2d')];this[_0x8b68('0xe')][_0x12abb8[_0x8b68('0x23')]][_0x8b68('0x2e')]=_0x12abb8[_0x8b68('0x2e')];this[_0x8b68('0xe')][_0x12abb8[_0x8b68('0x23')]][_0x8b68('0x22')]=_0x12abb8['localstationid'];this['channels'][_0x12abb8[_0x8b68('0x23')]][_0x8b68('0x2f')]=_0x12abb8[_0x8b68('0x2f')];logger[_0x8b68('0x26')](_0x12abb8[_0x8b68('0x23')],_0x8b68('0x30'));}};Fax[_0x8b68('0x1e')][_0x8b68('0x31')]=function(_0x5b628e){var _0x14cda1=this;if(this[_0x8b68('0xe')][_0x5b628e[_0x8b68('0x23')]]){var _0x13cf49=this[_0x8b68('0xe')][_0x5b628e[_0x8b68('0x23')]]['id'];this[_0x8b68('0xe')][_0x5b628e[_0x8b68('0x23')]]['remotestationid']=_0x5b628e[_0x8b68('0x32')];this[_0x8b68('0xe')][_0x5b628e[_0x8b68('0x23')]][_0x8b68('0x33')]=_0x5b628e[_0x8b68('0x33')];this[_0x8b68('0xe')][_0x5b628e[_0x8b68('0x23')]]['localstationid']=_0x5b628e[_0x8b68('0x22')];this[_0x8b68('0xe')][_0x5b628e['uniqueid']][_0x8b68('0x34')]=_0x5b628e[_0x8b68('0x34')];this['channels'][_0x5b628e['uniqueid']]['transferrate']=_0x5b628e['transferrate'];this[_0x8b68('0xe')][_0x5b628e[_0x8b68('0x23')]]['filename']=_0x5b628e[_0x8b68('0x2f')];this['channels'][_0x5b628e[_0x8b68('0x23')]][_0x8b68('0x35')]=_0x5b628e['calleridnum'];if(this[_0x8b68('0xe')][_0x5b628e['uniqueid']]['pagestransferred']>0x0){tiff2pdf(_0x5b628e['filename'],_0x8b68('0x36'),function(_0x441654){logger[_0x8b68('0x26')](_0x5b628e[_0x8b68('0x23')],'\x20result\x20conversion\x20file\x20',_0x441654[_0x8b68('0x37')]);attachment['create']({'name':path[_0x8b68('0x38')](_0x5b628e[_0x8b68('0x2f')])['name'],'basename':path[_0x8b68('0x38')](_0x5b628e[_0x8b68('0x2f')])[_0x8b68('0x25')]+_0x8b68('0x39'),'type':'application/pdf'})[_0x8b68('0x3a')](function(_0x478527){faxAccount[_0x8b68('0x3b')](_0x13cf49,{'from':_0x5b628e[_0x8b68('0x35')],'mapKey':_0x8b68('0x7'),'body':path[_0x8b68('0x38')](_0x5b628e[_0x8b68('0x2f')])[_0x8b68('0x25')]+_0x8b68('0x39'),'AttachmentId':_0x478527['id']})[_0x8b68('0x3c')](function(_0x1ec2c4){logger[_0x8b68('0x3d')](_0x5b628e[_0x8b68('0x23')],_0x8b68('0x3e'),JSON[_0x8b68('0x3f')](_0x1ec2c4));});})[_0x8b68('0x3c')](function(_0x50099e){logger[_0x8b68('0x3d')](_0x5b628e[_0x8b68('0x23')],'\x20receiveFax\x20',JSON[_0x8b68('0x3f')](_0x50099e));});});}logger['info'](_0x5b628e['uniqueid'],'\x20receiveFax\x20');}};Fax[_0x8b68('0x1e')][_0x8b68('0x1d')]=function(_0x34047c){if(this[_0x8b68('0x11')][_0x34047c['uniqueid']]){_['merge'](this[_0x8b68('0xe')][_0x34047c[_0x8b68('0x23')]],_[_0x8b68('0x40')](_0x34047c,['response',_0x8b68('0x41')]));}};function updateStatus(_0x431a75){if(_0x431a75['AttachmentId']){faxMessage[_0x8b68('0x42')](_0x431a75[_0x8b68('0x43')],{'failMessage':'SENDING\x20FAILED\x20'})[_0x8b68('0x3a')](function(_0x754bf7){ut['logger'](_0x8b68('0x44'),_0x754bf7);})[_0x8b68('0x3c')](function(_0x48f886){ut['logger']('[Fax][Message][Error][NoUpdate1]',_0x48f886);});}else{ut[_0x8b68('0x45')](_0x8b68('0x46'));}}Fax[_0x8b68('0x1e')][_0x8b68('0x47')]=function(_0x55aad3,_0x5a1711,_0x4492fd){var _0xf9cebb=this;var _0x13661e={};if(_0x5a1711){_0x13661e={'read':_0x5a1711};}else{_0x13661e={'failMessage':_0x4492fd};}if(this['actions'][_0x55aad3][_0x8b68('0x43')]){faxMessage[_0x8b68('0x42')](this[_0x8b68('0x11')][_0x55aad3]['AttachmentId'],_0x13661e)[_0x8b68('0x3a')](function(_0x4825df){ut[_0x8b68('0x45')](_0x8b68('0x48'),_0x4825df);})['catch'](function(_0xba7139){ut[_0x8b68('0x45')](_0x8b68('0x49'),_0xba7139);})[_0x8b68('0x4a')](function(){delete _0xf9cebb[_0x8b68('0xe')][_0x55aad3];delete _0xf9cebb['actions'][_0x55aad3];});}else{ut[_0x8b68('0x45')](_0x8b68('0x4b'));delete this[_0x8b68('0xe')][_0x55aad3];delete this[_0x8b68('0x11')][_0x55aad3];}};Fax[_0x8b68('0x1e')][_0x8b68('0x1c')]=function(_0x246077){var _0x3096b3=this;if(this['channels'][_0x246077[_0x8b68('0x23')]]){if(this[_0x8b68('0x11')][_0x246077[_0x8b68('0x23')]]){this[_0x8b68('0xe')][_0x246077[_0x8b68('0x23')]]['id']=this[_0x8b68('0x11')][_0x246077[_0x8b68('0x23')]]['id'];this[_0x8b68('0xe')][_0x246077[_0x8b68('0x23')]][_0x8b68('0x25')]=this[_0x8b68('0x11')][_0x246077[_0x8b68('0x23')]][_0x8b68('0x25')];}logger[_0x8b68('0x26')](_0x246077[_0x8b68('0x23')],this[_0x8b68('0x11')][_0x246077[_0x8b68('0x23')]]?_0x8b68('0x4c'):_0x8b68('0x4d'),JSON[_0x8b68('0x3f')](this['channels'][_0x246077[_0x8b68('0x23')]]));if(this['actions'][_0x246077['uniqueid']]){if(this[_0x8b68('0xe')][_0x246077['uniqueid']][_0x8b68('0x4e')]>0x0&&this[_0x8b68('0xe')][_0x246077[_0x8b68('0x23')]]['faxstatus']===_0x8b68('0x4f')){this[_0x8b68('0x47')](_0x246077[_0x8b68('0x23')],!![]);}else{this[_0x8b68('0x47')](_0x246077[_0x8b68('0x23')],![],this[_0x8b68('0xe')][_0x246077[_0x8b68('0x23')]]['faxstatusstring']?'SENDING\x20FAILED:\x20'+this[_0x8b68('0xe')][_0x246077[_0x8b68('0x23')]][_0x8b68('0x50')]:_0x8b68('0x51'));}}}};Fax[_0x8b68('0x1e')][_0x8b68('0x52')]=function(_0x2d1519){var _0x314f1e=this;return new BPromise(function(_0x3bf22b,_0x36d47a){_0x314f1e[_0x8b68('0x53')](_0x2d1519,_0x314f1e[_0x8b68('0xf')][_0x2d1519[_0x8b68('0x54')]])[_0x8b68('0x3a')](function(_0x38fedf){ut[_0x8b68('0x45')](_0x8b68('0x55'),_0x38fedf);_0x3bf22b(ut[_0x8b68('0x37')]('Fax\x20received'));})['catch'](function(_0xdc096c){ut[_0x8b68('0x45')]('[Fax][execOriginate][failure]',_0xdc096c);updateStatus(_0x2d1519);_0x36d47a(ut['message']('Fax\x20failed'));});});};Fax[_0x8b68('0x1e')][_0x8b68('0x56')]=function(_0xd5f52e){var _0x3c8e0d=this;return new BPromise(function(_0xc52321,_0x58d93c){var _0x1c358b=_0x3c8e0d[_0x8b68('0x57')](_0x3c8e0d['faxAccounts'][_0xd5f52e[_0x8b68('0x54')]]['Trunk'],_0xd5f52e);if(_0x1c358b['isValid']){_0xc52321(ut['message'](_0x8b68('0x58')));}else{_0x58d93c(ut[_0x8b68('0x37')](_0x1c358b[_0x8b68('0x37')]));}});};function originate(_0x7269fd,_0x864b6b,_0x1fc24c){return new BPromise(function(_0x35b22b,_0x34456d){if(_0x1fc24c){var _0x427752=util[_0x8b68('0x59')]('gs\x20-q\x20-dNOPAUSE\x20-dBATCH\x20-sDEVICE=tiffg4\x20-sPAPERSIZE=letter\x20-sOutputFile=/var/opt/motion2/server/files/attachments/%s.tif\x20\x20%s\x20-c\x20quit',path[_0x8b68('0x38')](_0x7269fd[_0x8b68('0x4')])[_0x8b68('0x25')],_0x7269fd['path']);gs['execute'](_0x427752)[_0x8b68('0x3a')](function(){_0x7269fd[_0x8b68('0x4')]=util['format'](_0x8b68('0x5a'),path[_0x8b68('0x38')](_0x7269fd[_0x8b68('0x4')])[_0x8b68('0x5b')],path['parse'](_0x7269fd[_0x8b68('0x4')])['name']);_0x864b6b['XMF-PATH']=_0x7269fd[_0x8b68('0x4')];ut['logger'](_0x8b68('0x5c'),'');ami[_0x8b68('0x5d')](ut['variablesAction'](_0x7269fd,_0x864b6b))[_0x8b68('0x3a')](function(_0x11abf9){_0x35b22b(_0x11abf9);})[_0x8b68('0x3c')](function(_0x236fa2){_0x34456d(_0x236fa2);});})[_0x8b68('0x3c')](function(_0x4afa60){_0x34456d(_0x4afa60);});}else{ami[_0x8b68('0x5d')](ut[_0x8b68('0x5e')](_0x7269fd,_0x864b6b))[_0x8b68('0x3a')](function(_0x2f87e8){_0x35b22b(_0x2f87e8);})[_0x8b68('0x3c')](function(_0x49efb7){_0x34456d(_0x49efb7);});}});}Fax['prototype'][_0x8b68('0x53')]=function(_0x47c10f,_0x2d442a){var _0x3013fe=this;return new BPromise(function(_0x16e769,_0x40c84a){var _0x3f3b31=uuid['v4']();var _0x334788=ut[_0x8b68('0x5f')](_0x47c10f,_0x2d442a);_0x3013fe['actions'][_0x3f3b31]=new Action(_0x3f3b31,_0x2d442a,_0x47c10f);var _0x3033b4=_0x3013fe['actions'][_0x3f3b31];if(path[_0x8b68('0x38')](_0x47c10f[_0x8b68('0x4')])[_0x8b68('0x60')]==='.pdf'){originate(_0x3033b4,_0x334788,!![])[_0x8b68('0x3a')](function(_0x50d0b9){_0x16e769(_0x50d0b9);})[_0x8b68('0x3c')](function(_0x4bb4a5){_0x40c84a(_0x4bb4a5);});}else{originate(_0x3033b4,_0x334788,![])[_0x8b68('0x3a')](function(_0x149045){_0x16e769(_0x149045);})[_0x8b68('0x3c')](function(_0x5ce3f8){_0x40c84a(_0x5ce3f8);});}});};Fax[_0x8b68('0x1e')][_0x8b68('0x61')]=function(_0x3d8a44){return!_[_0x8b68('0x62')](_0x3d8a44)&&!_[_0x8b68('0x62')](_0x3d8a44[_0x8b68('0x25')])&&!_[_0x8b68('0x62')](_0x3d8a44[_0x8b68('0x63')])&&_0x3d8a44[_0x8b68('0x63')]&&!_['isNil'](this[_0x8b68('0x10')][util[_0x8b68('0x59')](_0x8b68('0x64'),_0x3d8a44[_0x8b68('0x25')])])&&!_[_0x8b68('0x62')](this['trunks'][util[_0x8b68('0x59')]('SIP/%s',_0x3d8a44[_0x8b68('0x25')])][_0x8b68('0x2e')])&&(this['trunks'][util[_0x8b68('0x59')](_0x8b68('0x64'),_0x3d8a44[_0x8b68('0x25')])]['status']===_0x8b68('0x65')||this[_0x8b68('0x10')][util[_0x8b68('0x59')](_0x8b68('0x64'),_0x3d8a44[_0x8b68('0x25')])][_0x8b68('0x2e')]==='unmonitored');};Fax[_0x8b68('0x1e')][_0x8b68('0x57')]=function(_0x3d38eb,_0x4e5d13){if(!this[_0x8b68('0x61')](_0x3d38eb)){ut[_0x8b68('0x45')](_0x8b68('0x66'),_[_0x8b68('0x62')](_0x3d38eb)?'':_0x3d38eb[_0x8b68('0x25')]+_0x8b68('0x67'));return{'isValid':![],'message':_0x8b68('0x68')};}if(_[_0x8b68('0x62')](_0x4e5d13[_0x8b68('0x7')])){ut[_0x8b68('0x45')](_0x8b68('0x69'),JSON['stringify'](_0x4e5d13));return{'isValid':![],'message':'Empty\x20Fax'};}if(_[_0x8b68('0x62')](_0x4e5d13[_0x8b68('0x4')])){ut[_0x8b68('0x45')](_0x8b68('0x6a'),JSON[_0x8b68('0x3f')](_0x4e5d13));return{'isValid':![],'message':'Empty\x20path'};}return{'isValid':!![],'message':_0x8b68('0x6b')};};module[_0x8b68('0x6c')]=Fax;
\ No newline at end of file
+var _0xb574=['\x20hangup\x20sendFile\x20','\x20hangup\x20faxRiceive\x20','faxpages','SUCCESS','SENDING\x20FAILED','FaxAccountId','Fax\x20received','[Fax][execOriginate][failure]','checkAfterSend','Trunk','isValid','format','gs\x20-q\x20-dNOPAUSE\x20-dBATCH\x20-sDEVICE=tiffg4\x20-sPAPERSIZE=letter\x20-sOutputFile=/var/opt/motion2/server/files/attachments/%s.tif\x20\x20%s\x20-c\x20quit','path','execute','%s/%s.tif','dir','XMF-PATH','Convert\x20pdf\x20to\x20tif','variablesAction','Action','addVariables','isTrunkReachable','isNil','active','SIP/%s','reachable','unmonitored','checkTrunk','[Fax][checkTrunk][Trunk\x20not\x20work]','\x20Trunk\x20is\x20not\x20active','Trunk\x20not\x20working','Empty\x20Fax','Empty\x20path','util','lodash','uuid','moment','tiff2pdf','./util/gs','../../../config/logger','fax','../ami','./util/util','channels','faxAccounts','trunks','actions','newchannel','bind','varset','syncVarSet','syncNewState','newexten','syncNewExten','faxstatus','syncFaxStatus','receivefax','hangup','syncHangup','syncOriginateResponse','prototype','syncNewchannel','context','from-voip-provider','hasOwnProperty','exten','uniqueid','channel','name','info','\x20syncNewchannel\x20','value','channelstate','channelstatedesc','variable','operation','status','localstationid','filename','\x20syncFaxStatus\x20','syncReceiveFax','remotestationid','pagestransferred','resolution','transferrate','calleridnum','/var/opt/motion2/server/files/attachments/','\x20result\x20conversion\x20file\x20','message','create','parse','then','notify','.pdf','\x20notify\x20','stringify','error','\x20receiveFax\x20','pick','response','reason','AttachmentId','update','SENDING\x20FAILED\x20','logger','[Fax][Message][Error][Updated]','[Fax][Message][Error][NoUpdate1]','[Fax][Message][Error][NoUpdate2]','updateStatus','[Fax][Message][Updated]','catch','[Fax][Message][NoUpdate1]','finally'];(function(_0x996f63,_0x34fd81){var _0x1ac9ee=function(_0x1cfcef){while(--_0x1cfcef){_0x996f63['push'](_0x996f63['shift']());}};_0x1ac9ee(++_0x34fd81);}(_0xb574,0x106));var _0x4b57=function(_0x3f543f,_0x4463f1){_0x3f543f=_0x3f543f-0x0;var _0x958b14=_0xb574[_0x3f543f];return _0x958b14;};'use strict';var util=require(_0x4b57('0x0'));var _=require(_0x4b57('0x1'));var BPromise=require('bluebird');var uuid=require(_0x4b57('0x2'));var moment=require(_0x4b57('0x3'));var path=require('path');var tiff2pdf=require(_0x4b57('0x4'));var gs=require(_0x4b57('0x5'));var logger=require(_0x4b57('0x6'))(_0x4b57('0x7'));var ami=require(_0x4b57('0x8'));var rpcDb=require('./rpcDb');var Channel=require('./channel');var ut=require(_0x4b57('0x9'));var Action=require('./action');var faxAccount=require('../rpc/faxAccount');var attachment=require('../rpc/attachment');var faxMessage=require('../rpc/faxMessage');function Fax(_0x291e54){this[_0x4b57('0xa')]={};this[_0x4b57('0xb')]=_0x291e54[_0x4b57('0xb')];this[_0x4b57('0xc')]=_0x291e54[_0x4b57('0xc')];this[_0x4b57('0xd')]={};ami['on'](_0x4b57('0xe'),this['syncNewchannel'][_0x4b57('0xf')](this));ami['on'](_0x4b57('0x10'),this[_0x4b57('0x11')]['bind'](this));ami['on']('newstate',this[_0x4b57('0x12')][_0x4b57('0xf')](this));ami['on'](_0x4b57('0x13'),this[_0x4b57('0x14')][_0x4b57('0xf')](this));ami['on'](_0x4b57('0x15'),this[_0x4b57('0x16')][_0x4b57('0xf')](this));ami['on'](_0x4b57('0x17'),this['syncReceiveFax']['bind'](this));ami['on'](_0x4b57('0x18'),this[_0x4b57('0x19')][_0x4b57('0xf')](this));ami['on']('originateresponse',this[_0x4b57('0x1a')]['bind'](this));}Fax[_0x4b57('0x1b')][_0x4b57('0x1c')]=function(_0x1b018c){if(_0x1b018c[_0x4b57('0x1d')]===_0x4b57('0x1e')){for(var _0xfb71cc in this['faxAccounts']){if(this[_0x4b57('0xb')][_0x4b57('0x1f')](_0xfb71cc)){if(_0x1b018c[_0x4b57('0x20')]===this[_0x4b57('0xb')][_0xfb71cc]['localstationid']){this[_0x4b57('0xa')][_0x1b018c[_0x4b57('0x21')]]={};this[_0x4b57('0xa')][_0x1b018c[_0x4b57('0x21')]][_0x4b57('0x22')]=_0x1b018c[_0x4b57('0x22')];this['channels'][_0x1b018c[_0x4b57('0x21')]]['id']=this[_0x4b57('0xb')][_0xfb71cc]['id'];this[_0x4b57('0xa')][_0x1b018c['uniqueid']][_0x4b57('0x23')]=this[_0x4b57('0xb')][_0xfb71cc][_0x4b57('0x23')];logger[_0x4b57('0x24')](_0x1b018c['uniqueid'],_0x4b57('0x25'));}}}}if(this[_0x4b57('0xd')][_0x1b018c['uniqueid']]){this[_0x4b57('0xa')][_0x1b018c[_0x4b57('0x21')]]={};this[_0x4b57('0xa')][_0x1b018c[_0x4b57('0x21')]]['channel']=_0x1b018c[_0x4b57('0x22')];logger['info'](_0x1b018c[_0x4b57('0x21')],'\x20syncNewchannel\x20');}};Fax[_0x4b57('0x1b')][_0x4b57('0x11')]=function(_0x4af2c8){if(this[_0x4b57('0xa')][_0x4af2c8[_0x4b57('0x21')]]){for(var _0x392e37 in _0x4af2c8['variable']){if(_0x4af2c8['variable'][_0x4b57('0x1f')](_0x392e37)){this['channels'][_0x4af2c8[_0x4b57('0x21')]][_0x392e37]=_0x4af2c8[_0x4b57('0x26')];}}}};Fax[_0x4b57('0x1b')][_0x4b57('0x12')]=function(_0x249461){if(this[_0x4b57('0xa')][_0x249461['uniqueid']]){this[_0x4b57('0xa')][_0x249461[_0x4b57('0x21')]][_0x4b57('0x27')]=_0x249461[_0x4b57('0x27')];this['channels'][_0x249461[_0x4b57('0x21')]][_0x4b57('0x28')]=_0x249461['channelstatedesc'];}};Fax[_0x4b57('0x1b')][_0x4b57('0x14')]=function(_0x4726a6){if(this[_0x4b57('0xa')][_0x4726a6['uniqueid']]){for(var _0x5742a0 in _0x4726a6['variable']){if(_0x4726a6[_0x4b57('0x29')][_0x4b57('0x1f')](_0x5742a0)){this[_0x4b57('0xa')][_0x4726a6[_0x4b57('0x21')]][_0x5742a0]=_0x4726a6[_0x4b57('0x26')];}}}};Fax['prototype'][_0x4b57('0x16')]=function(_0x3e77e0){if(this[_0x4b57('0xa')][_0x3e77e0['uniqueid']]){this[_0x4b57('0xa')][_0x3e77e0[_0x4b57('0x21')]][_0x4b57('0x2a')]=_0x3e77e0['operation'];this[_0x4b57('0xa')][_0x3e77e0[_0x4b57('0x21')]]['status']=_0x3e77e0[_0x4b57('0x2b')];this[_0x4b57('0xa')][_0x3e77e0[_0x4b57('0x21')]][_0x4b57('0x2c')]=_0x3e77e0[_0x4b57('0x2c')];this[_0x4b57('0xa')][_0x3e77e0['uniqueid']][_0x4b57('0x2d')]=_0x3e77e0[_0x4b57('0x2d')];logger[_0x4b57('0x24')](_0x3e77e0[_0x4b57('0x21')],_0x4b57('0x2e'));}};Fax[_0x4b57('0x1b')][_0x4b57('0x2f')]=function(_0x4c5b82){var _0x5845d7=this;if(this[_0x4b57('0xa')][_0x4c5b82[_0x4b57('0x21')]]){var _0x518f15=this['channels'][_0x4c5b82[_0x4b57('0x21')]]['id'];this[_0x4b57('0xa')][_0x4c5b82[_0x4b57('0x21')]][_0x4b57('0x30')]=_0x4c5b82['remotestationid'];this[_0x4b57('0xa')][_0x4c5b82[_0x4b57('0x21')]][_0x4b57('0x31')]=_0x4c5b82[_0x4b57('0x31')];this['channels'][_0x4c5b82['uniqueid']]['localstationid']=_0x4c5b82[_0x4b57('0x2c')];this[_0x4b57('0xa')][_0x4c5b82[_0x4b57('0x21')]][_0x4b57('0x32')]=_0x4c5b82['resolution'];this[_0x4b57('0xa')][_0x4c5b82[_0x4b57('0x21')]][_0x4b57('0x33')]=_0x4c5b82[_0x4b57('0x33')];this[_0x4b57('0xa')][_0x4c5b82[_0x4b57('0x21')]][_0x4b57('0x2d')]=_0x4c5b82[_0x4b57('0x2d')];this[_0x4b57('0xa')][_0x4c5b82['uniqueid']][_0x4b57('0x34')]=_0x4c5b82[_0x4b57('0x34')];if(this[_0x4b57('0xa')][_0x4c5b82['uniqueid']][_0x4b57('0x31')]>0x0){tiff2pdf(_0x4c5b82['filename'],_0x4b57('0x35'),function(_0x1cd4bf){logger[_0x4b57('0x24')](_0x4c5b82[_0x4b57('0x21')],_0x4b57('0x36'),_0x1cd4bf[_0x4b57('0x37')]);attachment[_0x4b57('0x38')]({'name':path[_0x4b57('0x39')](_0x4c5b82[_0x4b57('0x2d')])[_0x4b57('0x23')],'basename':path[_0x4b57('0x39')](_0x4c5b82[_0x4b57('0x2d')])[_0x4b57('0x23')]+'.pdf','type':'application/pdf'})[_0x4b57('0x3a')](function(_0x241857){faxAccount[_0x4b57('0x3b')](_0x518f15,{'from':_0x4c5b82[_0x4b57('0x34')],'mapKey':'fax','body':path[_0x4b57('0x39')](_0x4c5b82[_0x4b57('0x2d')])['name']+_0x4b57('0x3c'),'AttachmentId':_0x241857['id']})['catch'](function(_0x2ee56b){logger['error'](_0x4c5b82['uniqueid'],_0x4b57('0x3d'),JSON[_0x4b57('0x3e')](_0x2ee56b));});})['catch'](function(_0x456e18){logger[_0x4b57('0x3f')](_0x4c5b82[_0x4b57('0x21')],_0x4b57('0x40'),JSON[_0x4b57('0x3e')](_0x456e18));});});}logger[_0x4b57('0x24')](_0x4c5b82['uniqueid'],_0x4b57('0x40'));}};Fax[_0x4b57('0x1b')]['syncOriginateResponse']=function(_0xd529fb){if(this[_0x4b57('0xd')][_0xd529fb[_0x4b57('0x21')]]){_['merge'](this[_0x4b57('0xa')][_0xd529fb['uniqueid']],_[_0x4b57('0x41')](_0xd529fb,[_0x4b57('0x42'),_0x4b57('0x43')]));}};function updateStatus(_0xf71da2){if(_0xf71da2[_0x4b57('0x44')]){faxMessage[_0x4b57('0x45')](_0xf71da2[_0x4b57('0x44')],{'failMessage':_0x4b57('0x46')})['then'](function(_0x2faa56){ut[_0x4b57('0x47')](_0x4b57('0x48'),_0x2faa56);})['catch'](function(_0xbecda8){ut[_0x4b57('0x47')](_0x4b57('0x49'),_0xbecda8);});}else{ut['logger'](_0x4b57('0x4a'));}}Fax[_0x4b57('0x1b')][_0x4b57('0x4b')]=function(_0xb56bf0,_0x44494f,_0xb7c37c){var _0x20ee9b=this;var _0x4ab9e1={};if(_0x44494f){_0x4ab9e1={'read':_0x44494f};}else{_0x4ab9e1={'failMessage':_0xb7c37c};}if(this['actions'][_0xb56bf0][_0x4b57('0x44')]){faxMessage[_0x4b57('0x45')](this[_0x4b57('0xd')][_0xb56bf0][_0x4b57('0x44')],_0x4ab9e1)['then'](function(_0x49ef4c){ut[_0x4b57('0x47')](_0x4b57('0x4c'),_0x49ef4c);})[_0x4b57('0x4d')](function(_0x4857c3){ut['logger'](_0x4b57('0x4e'),_0x4857c3);})[_0x4b57('0x4f')](function(){delete _0x20ee9b['channels'][_0xb56bf0];delete _0x20ee9b['actions'][_0xb56bf0];});}else{ut[_0x4b57('0x47')]('[Fax][Message][NoUpdate2]');delete this[_0x4b57('0xa')][_0xb56bf0];delete this[_0x4b57('0xd')][_0xb56bf0];}};Fax[_0x4b57('0x1b')][_0x4b57('0x19')]=function(_0x37d420){var _0x4ca146=this;if(this['channels'][_0x37d420['uniqueid']]){if(this['actions'][_0x37d420[_0x4b57('0x21')]]){this[_0x4b57('0xa')][_0x37d420['uniqueid']]['id']=this[_0x4b57('0xd')][_0x37d420[_0x4b57('0x21')]]['id'];this[_0x4b57('0xa')][_0x37d420[_0x4b57('0x21')]][_0x4b57('0x23')]=this[_0x4b57('0xd')][_0x37d420[_0x4b57('0x21')]][_0x4b57('0x23')];}logger[_0x4b57('0x24')](_0x37d420['uniqueid'],this[_0x4b57('0xd')][_0x37d420['uniqueid']]?_0x4b57('0x50'):_0x4b57('0x51'),JSON['stringify'](this[_0x4b57('0xa')][_0x37d420[_0x4b57('0x21')]]));if(this[_0x4b57('0xd')][_0x37d420[_0x4b57('0x21')]]){if(this[_0x4b57('0xa')][_0x37d420[_0x4b57('0x21')]][_0x4b57('0x52')]>0x0&&this[_0x4b57('0xa')][_0x37d420[_0x4b57('0x21')]][_0x4b57('0x15')]===_0x4b57('0x53')){this[_0x4b57('0x4b')](_0x37d420['uniqueid'],!![]);}else{this[_0x4b57('0x4b')](_0x37d420[_0x4b57('0x21')],![],this['channels'][_0x37d420[_0x4b57('0x21')]]['faxstatusstring']?'SENDING\x20FAILED:\x20'+this['channels'][_0x37d420[_0x4b57('0x21')]]['faxstatusstring']:_0x4b57('0x54'));}}}};Fax[_0x4b57('0x1b')]['send']=function(_0x4cc278){var _0x264c9f=this;return new BPromise(function(_0xcc93c7,_0x431f24){_0x264c9f['execOriginate'](_0x4cc278,_0x264c9f[_0x4b57('0xb')][_0x4cc278[_0x4b57('0x55')]])['then'](function(_0x20172a){ut[_0x4b57('0x47')]('[Fax][execOriginate][success]',_0x20172a);_0xcc93c7(ut[_0x4b57('0x37')](_0x4b57('0x56')));})[_0x4b57('0x4d')](function(_0x210050){ut[_0x4b57('0x47')](_0x4b57('0x57'),_0x210050);updateStatus(_0x4cc278);_0x431f24(ut[_0x4b57('0x37')]('Fax\x20failed'));});});};Fax['prototype'][_0x4b57('0x58')]=function(_0x350ba1){var _0x517f98=this;return new BPromise(function(_0x487e7b,_0x332b7c){var _0x38e9d6=_0x517f98['checkTrunk'](_0x517f98['faxAccounts'][_0x350ba1['FaxAccountId']][_0x4b57('0x59')],_0x350ba1);if(_0x38e9d6[_0x4b57('0x5a')]){_0x487e7b(ut[_0x4b57('0x37')]('Trunk\x20Reachable'));}else{_0x332b7c(ut['message'](_0x38e9d6['message']));}});};function originate(_0x38711e,_0x59cd7c,_0x40cabe){return new BPromise(function(_0x502313,_0x13c680){if(_0x40cabe){var _0x425fe0=util[_0x4b57('0x5b')](_0x4b57('0x5c'),path['parse'](_0x38711e[_0x4b57('0x5d')])['name'],_0x38711e['path']);gs[_0x4b57('0x5e')](_0x425fe0)[_0x4b57('0x3a')](function(){_0x38711e['path']=util[_0x4b57('0x5b')](_0x4b57('0x5f'),path[_0x4b57('0x39')](_0x38711e[_0x4b57('0x5d')])[_0x4b57('0x60')],path[_0x4b57('0x39')](_0x38711e['path'])[_0x4b57('0x23')]);_0x59cd7c[_0x4b57('0x61')]=_0x38711e[_0x4b57('0x5d')];ut[_0x4b57('0x47')](_0x4b57('0x62'),'');ami['Action'](ut[_0x4b57('0x63')](_0x38711e,_0x59cd7c))[_0x4b57('0x3a')](function(_0x2a2bc9){_0x502313(_0x2a2bc9);})[_0x4b57('0x4d')](function(_0x5565f4){_0x13c680(_0x5565f4);});})['catch'](function(_0x3c8894){_0x13c680(_0x3c8894);});}else{ami[_0x4b57('0x64')](ut[_0x4b57('0x63')](_0x38711e,_0x59cd7c))['then'](function(_0x2807d3){_0x502313(_0x2807d3);})['catch'](function(_0x123d19){_0x13c680(_0x123d19);});}});}Fax[_0x4b57('0x1b')]['execOriginate']=function(_0x4f71ba,_0x3eb6d6){var _0x5ebd8e=this;return new BPromise(function(_0x323189,_0x428450){var _0x374d6f=uuid['v4']();var _0x44b1f9=ut[_0x4b57('0x65')](_0x4f71ba,_0x3eb6d6);_0x5ebd8e['actions'][_0x374d6f]=new Action(_0x374d6f,_0x3eb6d6,_0x4f71ba);var _0x137532=_0x5ebd8e[_0x4b57('0xd')][_0x374d6f];if(path[_0x4b57('0x39')](_0x4f71ba['path'])['ext']===_0x4b57('0x3c')){originate(_0x137532,_0x44b1f9,!![])[_0x4b57('0x3a')](function(_0x540a0a){_0x323189(_0x540a0a);})[_0x4b57('0x4d')](function(_0x1148ff){_0x428450(_0x1148ff);});}else{originate(_0x137532,_0x44b1f9,![])['then'](function(_0x358dac){_0x323189(_0x358dac);})[_0x4b57('0x4d')](function(_0x508d10){_0x428450(_0x508d10);});}});};Fax[_0x4b57('0x1b')][_0x4b57('0x66')]=function(_0x36ab03){return!_['isNil'](_0x36ab03)&&!_[_0x4b57('0x67')](_0x36ab03[_0x4b57('0x23')])&&!_[_0x4b57('0x67')](_0x36ab03[_0x4b57('0x68')])&&_0x36ab03[_0x4b57('0x68')]&&!_[_0x4b57('0x67')](this[_0x4b57('0xc')][util['format'](_0x4b57('0x69'),_0x36ab03[_0x4b57('0x23')])])&&!_['isNil'](this[_0x4b57('0xc')][util[_0x4b57('0x5b')]('SIP/%s',_0x36ab03[_0x4b57('0x23')])][_0x4b57('0x2b')])&&(this[_0x4b57('0xc')][util[_0x4b57('0x5b')](_0x4b57('0x69'),_0x36ab03[_0x4b57('0x23')])][_0x4b57('0x2b')]===_0x4b57('0x6a')||this[_0x4b57('0xc')][util[_0x4b57('0x5b')](_0x4b57('0x69'),_0x36ab03[_0x4b57('0x23')])][_0x4b57('0x2b')]===_0x4b57('0x6b'));};Fax[_0x4b57('0x1b')][_0x4b57('0x6c')]=function(_0x3dd8ec,_0x6e740a){if(!this[_0x4b57('0x66')](_0x3dd8ec)){ut[_0x4b57('0x47')](_0x4b57('0x6d'),_[_0x4b57('0x67')](_0x3dd8ec)?'':_0x3dd8ec[_0x4b57('0x23')]+_0x4b57('0x6e'));return{'isValid':![],'message':_0x4b57('0x6f')};}if(_['isNil'](_0x6e740a['fax'])){ut['logger']('[Fax][checkTrunk][Empty\x20Fax]',JSON[_0x4b57('0x3e')](_0x6e740a));return{'isValid':![],'message':_0x4b57('0x70')};}if(_['isNil'](_0x6e740a[_0x4b57('0x5d')])){ut[_0x4b57('0x47')]('[Fax][checkTrunk][Empty\x20path]',JSON[_0x4b57('0x3e')](_0x6e740a));return{'isValid':![],'message':_0x4b57('0x71')};}return{'isValid':!![],'message':'Is\x20Valid'};};module['exports']=Fax;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8266=['lodash','../rpc/faxAccount','error','inspect','notify','then','catch','[Notify]\x20','util','bluebird','../../../config/logger','preview'];(function(_0x36d88c,_0x547cae){var _0x629a97=function(_0x3e3a84){while(--_0x3e3a84){_0x36d88c['push'](_0x36d88c['shift']());}};_0x629a97(++_0x547cae);}(_0x8266,0xd4));var _0x6826=function(_0x43c624,_0x3aeaad){_0x43c624=_0x43c624-0x0;var _0x4193a4=_0x8266[_0x43c624];return _0x4193a4;};'use strict';var util=require(_0x6826('0x0'));var BPromise=require(_0x6826('0x1'));var logger=require(_0x6826('0x2'))(_0x6826('0x3'));var _=require(_0x6826('0x4'));var faxAccount=require(_0x6826('0x5'));function loggerCatch(_0x4bcdef){return function(_0x422237){logger[_0x6826('0x6')](_0x4bcdef,util[_0x6826('0x7')](_0x422237,{'showHidden':![],'depth':null}));};}exports[_0x6826('0x8')]=function(_0x33e125,_0x304a97){return BPromise['resolve']()[_0x6826('0x9')](faxAccount[_0x6826('0x8')](_0x33e125,_0x304a97))[_0x6826('0xa')](loggerCatch(_0x6826('0xb')));};
\ No newline at end of file
+var _0xe1db=['notify','resolve','catch','util','bluebird','../../../config/logger','preview','../rpc/faxAccount','error','inspect'];(function(_0x1cc8fe,_0x105328){var _0x230054=function(_0x1a1b56){while(--_0x1a1b56){_0x1cc8fe['push'](_0x1cc8fe['shift']());}};_0x230054(++_0x105328);}(_0xe1db,0xad));var _0xbe1d=function(_0x3afbc2,_0x1befd){_0x3afbc2=_0x3afbc2-0x0;var _0x2593bb=_0xe1db[_0x3afbc2];return _0x2593bb;};'use strict';var util=require(_0xbe1d('0x0'));var BPromise=require(_0xbe1d('0x1'));var logger=require(_0xbe1d('0x2'))(_0xbe1d('0x3'));var _=require('lodash');var faxAccount=require(_0xbe1d('0x4'));function loggerCatch(_0x9bf17f){return function(_0x568019){logger[_0xbe1d('0x5')](_0x9bf17f,util[_0xbe1d('0x6')](_0x568019,{'showHidden':![],'depth':null}));};}exports[_0xbe1d('0x7')]=function(_0x53f885,_0x31f488){return BPromise[_0xbe1d('0x8')]()['then'](faxAccount[_0xbe1d('0x7')](_0x53f885,_0x31f488))[_0xbe1d('0x9')](loggerCatch('[Notify]\x20'));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd020=['info','Exec\x20gs','util','../../../../config/logger','child_process','execute'];(function(_0x3cc5de,_0x4a45bf){var _0x5242be=function(_0x1665e5){while(--_0x1665e5){_0x3cc5de['push'](_0x3cc5de['shift']());}};_0x5242be(++_0x4a45bf);}(_0xd020,0x1a6));var _0x0d02=function(_0x1c74db,_0x474b8a){_0x1c74db=_0x1c74db-0x0;var _0x47b019=_0xd020[_0x1c74db];return _0x47b019;};'use strict';var util=require(_0x0d02('0x0'));var logger=require(_0x0d02('0x1'))('fax');var BPromise=require('bluebird');var exec=require(_0x0d02('0x2'))['exec'];exports[_0x0d02('0x3')]=function(_0x13fd92){return new BPromise(function(_0x1bbf23,_0x4619f8){exec(_0x13fd92,function(_0x4b54a5,_0x5a8d7c,_0x5e8226){logger[_0x0d02('0x4')](_0x0d02('0x5'),_0x5a8d7c);if(_0x4b54a5){logger[_0x0d02('0x4')]('Exec\x20gs','\x20Error\x20:',util['inspect'](_0x4b54a5,{'showHidden':![],'depth':null}),_0x5a8d7c,_0x5e8226);_0x4619f8(_0x4b54a5);}_0x1bbf23(_0x5a8d7c);});});};
\ No newline at end of file
+var _0x57e2=['info','\x20Error\x20:','util','../../../../config/logger','fax','bluebird','child_process','execute'];(function(_0x429a61,_0x3e87cc){var _0x25ec9d=function(_0x35eb89){while(--_0x35eb89){_0x429a61['push'](_0x429a61['shift']());}};_0x25ec9d(++_0x3e87cc);}(_0x57e2,0x18a));var _0x257e=function(_0x5e8b20,_0x54f7b0){_0x5e8b20=_0x5e8b20-0x0;var _0x6e7950=_0x57e2[_0x5e8b20];return _0x6e7950;};'use strict';var util=require(_0x257e('0x0'));var logger=require(_0x257e('0x1'))(_0x257e('0x2'));var BPromise=require(_0x257e('0x3'));var exec=require(_0x257e('0x4'))['exec'];exports[_0x257e('0x5')]=function(_0x1133f9){return new BPromise(function(_0x549923,_0x2aeb98){exec(_0x1133f9,function(_0x47efbd,_0x5027f8,_0x1f1149){logger[_0x257e('0x6')]('Exec\x20gs',_0x5027f8);if(_0x47efbd){logger['info']('Exec\x20gs',_0x257e('0x7'),util['inspect'](_0x47efbd,{'showHidden':![],'depth':null}),_0x5027f8,_0x1f1149);_0x2aeb98(_0x47efbd);}_0x549923(_0x5027f8);});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc07f=['t38timeout','localstationid','path','uniqueid','channel','xcally-motion-fax','from-sip','\x22%s\x22\x20<%s>','headerinfo','util','fax','message','info','inspect','addVariables','ecm','minrate','maxrate','format','\x22%s\x22','modem','gateway','faxdetect'];(function(_0x50f26c,_0x22e478){var _0x3389d9=function(_0x465439){while(--_0x465439){_0x50f26c['push'](_0x50f26c['shift']());}};_0x3389d9(++_0x22e478);}(_0xc07f,0xd8));var _0xfc07=function(_0x3430b6,_0x3d947a){_0x3430b6=_0x3430b6-0x0;var _0x5c7218=_0xc07f[_0x3430b6];return _0x5c7218;};'use strict';var util=require(_0xfc07('0x0'));var _=require('lodash');var moment=require('moment');var logger=require('../../../../config/logger')(_0xfc07('0x1'));exports[_0xfc07('0x2')]=function(_0x1a1ce0){return{'message':_0x1a1ce0};};exports['logger']=function(_0x211b5d,_0x357996){logger[_0xfc07('0x3')](_0x211b5d,util[_0xfc07('0x4')](_0x357996,{'showHidden':![],'depth':null}));};exports[_0xfc07('0x5')]=function(_0x38fc72,_0x59ba9a){var _0x5ed1ae={'XMF-ECM':_0x59ba9a[_0xfc07('0x6')],'XMF-HEADERINFO':_0x59ba9a['headerinfo'],'XMF-MINRATE':_0x59ba9a[_0xfc07('0x7')],'XMF-MAXRATE':_0x59ba9a[_0xfc07('0x8')],'XMF-MODEM':util[_0xfc07('0x9')](_0xfc07('0xa'),_0x59ba9a[_0xfc07('0xb')]),'XMF-GATEWAY':_0x59ba9a[_0xfc07('0xc')],'XMF-FAXDETECT':_0x59ba9a[_0xfc07('0xd')],'XMF-T38TIMEOUT':_0x59ba9a[_0xfc07('0xe')],'XMF-LOCALSTATIONID':_0x59ba9a[_0xfc07('0xf')],'XMF-PATH':_0x38fc72[_0xfc07('0x10')]};return _0x5ed1ae;};exports['variablesAction']=function(_0x3e65a9,_0x3ef09d){return{'actionid':_0x3e65a9[_0xfc07('0x11')],'action':'originate','channel':_0x3e65a9[_0xfc07('0x12')],'Exten':_0xfc07('0x13'),'Context':_0xfc07('0x14'),'Priority':'1','callerid':util['format'](_0xfc07('0x15'),_0x3e65a9['headerinfo']?_0x3e65a9[_0xfc07('0x16')]:'',_0x3e65a9[_0xfc07('0xf')]),'variable':_0x3ef09d,'timeout':0x1e*0x3e8,'async':!![],'channelid':_0x3e65a9['uniqueid']};};
\ No newline at end of file
+var _0x5532=['fax','message','logger','info','addVariables','ecm','headerinfo','minrate','maxrate','format','\x22%s\x22','modem','faxdetect','t38timeout','localstationid','variablesAction','uniqueid','originate','channel','xcally-motion-fax','util','moment'];(function(_0x2d18f0,_0x4079af){var _0x1a6a31=function(_0x1450df){while(--_0x1450df){_0x2d18f0['push'](_0x2d18f0['shift']());}};_0x1a6a31(++_0x4079af);}(_0x5532,0x148));var _0x2553=function(_0x43e0df,_0x1c8c58){_0x43e0df=_0x43e0df-0x0;var _0x4937bd=_0x5532[_0x43e0df];return _0x4937bd;};'use strict';var util=require(_0x2553('0x0'));var _=require('lodash');var moment=require(_0x2553('0x1'));var logger=require('../../../../config/logger')(_0x2553('0x2'));exports[_0x2553('0x3')]=function(_0x25d5b2){return{'message':_0x25d5b2};};exports[_0x2553('0x4')]=function(_0x570795,_0x109ba3){logger[_0x2553('0x5')](_0x570795,util['inspect'](_0x109ba3,{'showHidden':![],'depth':null}));};exports[_0x2553('0x6')]=function(_0x3932d9,_0x221d96){var _0x5c1ea6={'XMF-ECM':_0x221d96[_0x2553('0x7')],'XMF-HEADERINFO':_0x221d96[_0x2553('0x8')],'XMF-MINRATE':_0x221d96[_0x2553('0x9')],'XMF-MAXRATE':_0x221d96[_0x2553('0xa')],'XMF-MODEM':util[_0x2553('0xb')](_0x2553('0xc'),_0x221d96[_0x2553('0xd')]),'XMF-GATEWAY':_0x221d96['gateway'],'XMF-FAXDETECT':_0x221d96[_0x2553('0xe')],'XMF-T38TIMEOUT':_0x221d96[_0x2553('0xf')],'XMF-LOCALSTATIONID':_0x221d96[_0x2553('0x10')],'XMF-PATH':_0x3932d9['path']};return _0x5c1ea6;};exports[_0x2553('0x11')]=function(_0x4366f5,_0x262334){return{'actionid':_0x4366f5[_0x2553('0x12')],'action':_0x2553('0x13'),'channel':_0x4366f5[_0x2553('0x14')],'Exten':_0x2553('0x15'),'Context':'from-sip','Priority':'1','callerid':util[_0x2553('0xb')]('\x22%s\x22\x20<%s>',_0x4366f5[_0x2553('0x8')]?_0x4366f5[_0x2553('0x8')]:'',_0x4366f5[_0x2553('0x10')]),'variable':_0x262334,'timeout':0x1e*0x3e8,'async':!![],'channelid':_0x4366f5[_0x2553('0x12')]};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x89b1=['hour','resolve','then','getAgents','initAgents','initTelephones','initTrunks','getTriggers','initTriggers','getTemplates','initTemplates','getSalesforceAccounts','initSalesforceAccounts','getFreshdeskAccounts','initDeskAccounts','getZohoAccounts','initZohoAccounts','initVtigerAccounts','getFreshsalesAccounts','initFreshsalesAccounts','getServicenowAccounts','initServicenowAccounts','getDynamics365Accounts','getCampaigns','initCampaigns','initVoiceExtensions','getFaxAccounts','initFaxAccounts','getVoiceQueueHopperHistory','initVoiceQueueHopperHistory','initCampaignHopperHistory','getVoiceCallReports','initVoiceCallReports','catch','error','[index.js][initParams]','listen','sync','[index.js][main]','inspect','bluebird','util','moment','./realtime','./report','./trigger','./dialer','./preview','./rpc/user','./rpc/voiceQueue','./rpc/voiceQueueReport','./rpc/voiceCallReport','./rpc/trunk','./rpc/trigger','./rpc/cmHopperHistory','./rpc/campaign','./rpc/voiceExtension','./rpc/integrations/zendesk','./rpc/integrations/sugarcrm','./rpc/integrations/freshdesk','./rpc/integrations/desk','./rpc/integrations/zoho','./rpc/integrations/vtiger','./rpc/integrations/freshsales','./rpc/integrations/servicenow','./rpc/integrations/dynamics365','../../config/logger'];(function(_0x46ef1d,_0x24926){var _0x49ce69=function(_0x5db4fc){while(--_0x5db4fc){_0x46ef1d['push'](_0x46ef1d['shift']());}};_0x49ce69(++_0x24926);}(_0x89b1,0xae));var _0x189b=function(_0x123853,_0x4f0ea3){_0x123853=_0x123853-0x0;var _0x3aa967=_0x89b1[_0x123853];return _0x3aa967;};'use strict';var BPromise=require(_0x189b('0x0'));var util=require(_0x189b('0x1'));var moment=require(_0x189b('0x2'));var server=require('./server');var Realtime=require(_0x189b('0x3'));var Report=require(_0x189b('0x4'));var Acw=require('./acw');var Trigger=require(_0x189b('0x5'));var Dialer=require(_0x189b('0x6'));var Preview=require(_0x189b('0x7'));var Fax=require('./fax');var user=require(_0x189b('0x8'));var voiceQueue=require(_0x189b('0x9'));var voiceQueueReport=require(_0x189b('0xa'));var voiceCallReport=require(_0x189b('0xb'));var trunk=require(_0x189b('0xc'));var trigger=require(_0x189b('0xd'));var template=require('./rpc/template');var cmHopperHistory=require(_0x189b('0xe'));var campaign=require(_0x189b('0xf'));var voiceExtension=require(_0x189b('0x10'));var faxAccount=require('./rpc/faxAccount');var zendesk=require(_0x189b('0x11'));var salesforce=require('./rpc/integrations/salesforce');var sugarcrm=require(_0x189b('0x12'));var freshdesk=require(_0x189b('0x13'));var desk=require(_0x189b('0x14'));var zoho=require(_0x189b('0x15'));var vtiger=require(_0x189b('0x16'));var freshsales=require(_0x189b('0x17'));var servicenow=require(_0x189b('0x18'));var dynamics365=require(_0x189b('0x19'));var realtime=new Realtime();var report=new Report(realtime);var acw=new Acw(realtime);var channelTrigger=new Trigger(realtime);var preview=new Preview(realtime);var dialer=new Dialer(realtime,preview);var fax=new Fax(realtime);var logger=require(_0x189b('0x1a'))('ami');var isTrue=!![];var initP=!![];function ifMidnight(){if(moment()['get'](_0x189b('0x1b'))===0x0&&initP){initP=![];isTrue=!![];initParams();}if(moment()['get'](_0x189b('0x1b'))===0x1&&isTrue){isTrue=![];initP=!![];}}function initRealtime(){ifMidnight();return BPromise[_0x189b('0x1c')]()[_0x189b('0x1d')](user[_0x189b('0x1e')]())[_0x189b('0x1d')](realtime[_0x189b('0x1f')]())['then'](user['getTelephones']())['then'](realtime[_0x189b('0x20')]())[_0x189b('0x1d')](trunk['getTrunks']())['then'](realtime[_0x189b('0x21')]())[_0x189b('0x1d')](voiceQueue['getVoiceQueues']())[_0x189b('0x1d')](realtime['initVoiceQueues']())[_0x189b('0x1d')](trigger[_0x189b('0x22')]())[_0x189b('0x1d')](realtime[_0x189b('0x23')]())[_0x189b('0x1d')](template[_0x189b('0x24')]())[_0x189b('0x1d')](realtime[_0x189b('0x25')]())[_0x189b('0x1d')](zendesk['getZendeskAccounts']())[_0x189b('0x1d')](realtime['initZendeskAccounts']())[_0x189b('0x1d')](salesforce[_0x189b('0x26')]())[_0x189b('0x1d')](realtime[_0x189b('0x27')]())['then'](sugarcrm['getSugarcrmAccounts']())[_0x189b('0x1d')](realtime['initSugarcrmAccounts']())[_0x189b('0x1d')](freshdesk[_0x189b('0x28')]())['then'](realtime['initFreshdeskAccounts']())[_0x189b('0x1d')](desk['getDeskAccounts']())[_0x189b('0x1d')](realtime[_0x189b('0x29')]())[_0x189b('0x1d')](zoho[_0x189b('0x2a')]())[_0x189b('0x1d')](realtime[_0x189b('0x2b')]())['then'](vtiger['getVtigerAccounts']())['then'](realtime[_0x189b('0x2c')]())[_0x189b('0x1d')](freshsales[_0x189b('0x2d')]())['then'](realtime[_0x189b('0x2e')]())['then'](servicenow[_0x189b('0x2f')]())[_0x189b('0x1d')](realtime[_0x189b('0x30')]())[_0x189b('0x1d')](dynamics365[_0x189b('0x31')]())[_0x189b('0x1d')](realtime['initDynamics365Accounts']())[_0x189b('0x1d')](campaign[_0x189b('0x32')]())['then'](realtime[_0x189b('0x33')]())[_0x189b('0x1d')](voiceExtension['getVoiceExtensions']())['then'](realtime[_0x189b('0x34')]())[_0x189b('0x1d')](faxAccount[_0x189b('0x35')]())['then'](realtime[_0x189b('0x36')]())[_0x189b('0x1d')](function(){return realtime;});}function initParams(){return BPromise['resolve']()[_0x189b('0x1d')](voiceQueueReport['getVoiceQueueReports']())[_0x189b('0x1d')](realtime['initVoiceQueueReports']())[_0x189b('0x1d')](cmHopperHistory[_0x189b('0x37')]())['then'](realtime[_0x189b('0x38')]())[_0x189b('0x1d')](cmHopperHistory['getCampaignHopperHistory']())[_0x189b('0x1d')](realtime[_0x189b('0x39')]())[_0x189b('0x1d')](voiceCallReport[_0x189b('0x3a')]())[_0x189b('0x1d')](realtime[_0x189b('0x3b')]())[_0x189b('0x3c')](function(_0x26ea85){logger[_0x189b('0x3d')](_0x189b('0x3e'),util['inspect'](_0x26ea85,{'showHidden':![],'depth':null}));});}function main(){return server[_0x189b('0x3f')](realtime,preview,fax)['then'](function(_0x4d4175){return initRealtime();})[_0x189b('0x1d')](function(){return initParams();})[_0x189b('0x1d')](function(){report[_0x189b('0x40')]();setInterval(initRealtime,0x1388);})[_0x189b('0x3c')](function(_0x48aeec){logger[_0x189b('0x3d')](_0x189b('0x41'),util[_0x189b('0x42')](_0x48aeec,{'showHidden':![],'depth':null}));});}main();
\ No newline at end of file
+var _0x7ac9=['initCampaigns','getVoiceExtensions','getFaxAccounts','initFaxAccounts','getVoiceQueueReports','initVoiceQueueReports','initVoiceQueueHopperHistory','getCampaignHopperHistory','initCampaignHopperHistory','getVoiceCallReports','catch','inspect','listen','error','bluebird','util','moment','./server','./report','./acw','./trigger','./dialer','./preview','./rpc/user','./rpc/trunk','./rpc/trigger','./rpc/template','./rpc/cmHopperHistory','./rpc/campaign','./rpc/voiceExtension','./rpc/faxAccount','./rpc/integrations/zendesk','./rpc/integrations/salesforce','./rpc/integrations/sugarcrm','./rpc/integrations/freshdesk','./rpc/integrations/desk','./rpc/integrations/zoho','./rpc/integrations/vtiger','./rpc/integrations/freshsales','./rpc/integrations/servicenow','get','hour','resolve','getAgents','then','initAgents','getTelephones','getTrunks','initTrunks','getVoiceQueues','initVoiceQueues','getTriggers','initTriggers','getTemplates','initTemplates','initZendeskAccounts','getSalesforceAccounts','initSugarcrmAccounts','getFreshdeskAccounts','getZohoAccounts','initZohoAccounts','getVtigerAccounts','initVtigerAccounts','getFreshsalesAccounts','initFreshsalesAccounts','getDynamics365Accounts','initDynamics365Accounts','getCampaigns'];(function(_0x5aa17c,_0x5892b1){var _0x1d886b=function(_0x2f5bf7){while(--_0x2f5bf7){_0x5aa17c['push'](_0x5aa17c['shift']());}};_0x1d886b(++_0x5892b1);}(_0x7ac9,0x11e));var _0x97ac=function(_0x421f33,_0x52aad6){_0x421f33=_0x421f33-0x0;var _0x1e38fa=_0x7ac9[_0x421f33];return _0x1e38fa;};'use strict';var BPromise=require(_0x97ac('0x0'));var util=require(_0x97ac('0x1'));var moment=require(_0x97ac('0x2'));var server=require(_0x97ac('0x3'));var Realtime=require('./realtime');var Report=require(_0x97ac('0x4'));var Acw=require(_0x97ac('0x5'));var Trigger=require(_0x97ac('0x6'));var Dialer=require(_0x97ac('0x7'));var Preview=require(_0x97ac('0x8'));var Fax=require('./fax');var user=require(_0x97ac('0x9'));var voiceQueue=require('./rpc/voiceQueue');var voiceQueueReport=require('./rpc/voiceQueueReport');var voiceCallReport=require('./rpc/voiceCallReport');var trunk=require(_0x97ac('0xa'));var trigger=require(_0x97ac('0xb'));var template=require(_0x97ac('0xc'));var cmHopperHistory=require(_0x97ac('0xd'));var campaign=require(_0x97ac('0xe'));var voiceExtension=require(_0x97ac('0xf'));var faxAccount=require(_0x97ac('0x10'));var zendesk=require(_0x97ac('0x11'));var salesforce=require(_0x97ac('0x12'));var sugarcrm=require(_0x97ac('0x13'));var freshdesk=require(_0x97ac('0x14'));var desk=require(_0x97ac('0x15'));var zoho=require(_0x97ac('0x16'));var vtiger=require(_0x97ac('0x17'));var freshsales=require(_0x97ac('0x18'));var servicenow=require(_0x97ac('0x19'));var dynamics365=require('./rpc/integrations/dynamics365');var realtime=new Realtime();var report=new Report(realtime);var acw=new Acw(realtime);var channelTrigger=new Trigger(realtime);var preview=new Preview(realtime);var dialer=new Dialer(realtime,preview);var fax=new Fax(realtime);var logger=require('../../config/logger')('ami');var isTrue=!![];var initP=!![];function ifMidnight(){if(moment()[_0x97ac('0x1a')](_0x97ac('0x1b'))===0x0&&initP){initP=![];isTrue=!![];initParams();}if(moment()[_0x97ac('0x1a')](_0x97ac('0x1b'))===0x1&&isTrue){isTrue=![];initP=!![];}}function initRealtime(){ifMidnight();return BPromise[_0x97ac('0x1c')]()['then'](user[_0x97ac('0x1d')]())[_0x97ac('0x1e')](realtime[_0x97ac('0x1f')]())[_0x97ac('0x1e')](user[_0x97ac('0x20')]())[_0x97ac('0x1e')](realtime['initTelephones']())[_0x97ac('0x1e')](trunk[_0x97ac('0x21')]())[_0x97ac('0x1e')](realtime[_0x97ac('0x22')]())['then'](voiceQueue[_0x97ac('0x23')]())['then'](realtime[_0x97ac('0x24')]())['then'](trigger[_0x97ac('0x25')]())['then'](realtime[_0x97ac('0x26')]())[_0x97ac('0x1e')](template[_0x97ac('0x27')]())['then'](realtime[_0x97ac('0x28')]())['then'](zendesk['getZendeskAccounts']())[_0x97ac('0x1e')](realtime[_0x97ac('0x29')]())[_0x97ac('0x1e')](salesforce[_0x97ac('0x2a')]())['then'](realtime['initSalesforceAccounts']())[_0x97ac('0x1e')](sugarcrm['getSugarcrmAccounts']())[_0x97ac('0x1e')](realtime[_0x97ac('0x2b')]())[_0x97ac('0x1e')](freshdesk[_0x97ac('0x2c')]())[_0x97ac('0x1e')](realtime['initFreshdeskAccounts']())[_0x97ac('0x1e')](desk['getDeskAccounts']())[_0x97ac('0x1e')](realtime['initDeskAccounts']())[_0x97ac('0x1e')](zoho[_0x97ac('0x2d')]())[_0x97ac('0x1e')](realtime[_0x97ac('0x2e')]())[_0x97ac('0x1e')](vtiger[_0x97ac('0x2f')]())[_0x97ac('0x1e')](realtime[_0x97ac('0x30')]())[_0x97ac('0x1e')](freshsales[_0x97ac('0x31')]())[_0x97ac('0x1e')](realtime[_0x97ac('0x32')]())['then'](servicenow['getServicenowAccounts']())[_0x97ac('0x1e')](realtime['initServicenowAccounts']())[_0x97ac('0x1e')](dynamics365[_0x97ac('0x33')]())[_0x97ac('0x1e')](realtime[_0x97ac('0x34')]())[_0x97ac('0x1e')](campaign[_0x97ac('0x35')]())[_0x97ac('0x1e')](realtime[_0x97ac('0x36')]())[_0x97ac('0x1e')](voiceExtension[_0x97ac('0x37')]())[_0x97ac('0x1e')](realtime['initVoiceExtensions']())[_0x97ac('0x1e')](faxAccount[_0x97ac('0x38')]())['then'](realtime[_0x97ac('0x39')]())[_0x97ac('0x1e')](function(){return realtime;});}function initParams(){return BPromise[_0x97ac('0x1c')]()[_0x97ac('0x1e')](voiceQueueReport[_0x97ac('0x3a')]())[_0x97ac('0x1e')](realtime[_0x97ac('0x3b')]())[_0x97ac('0x1e')](cmHopperHistory['getVoiceQueueHopperHistory']())['then'](realtime[_0x97ac('0x3c')]())['then'](cmHopperHistory[_0x97ac('0x3d')]())['then'](realtime[_0x97ac('0x3e')]())[_0x97ac('0x1e')](voiceCallReport[_0x97ac('0x3f')]())[_0x97ac('0x1e')](realtime['initVoiceCallReports']())[_0x97ac('0x40')](function(_0x3a92be){logger['error']('[index.js][initParams]',util[_0x97ac('0x41')](_0x3a92be,{'showHidden':![],'depth':null}));});}function main(){return server[_0x97ac('0x42')](realtime,preview,fax)[_0x97ac('0x1e')](function(_0x2bc8a1){return initRealtime();})[_0x97ac('0x1e')](function(){return initParams();})[_0x97ac('0x1e')](function(){report['sync']();setInterval(initRealtime,0x1388);})[_0x97ac('0x40')](function(_0x1b39e9){logger[_0x97ac('0x43')]('[index.js][main]',util[_0x97ac('0x41')](_0x1b39e9,{'showHidden':![],'depth':null}));});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['stateTime','status','address','online','voiceStatus','voiceStatusTime','voiceStatusCallerIdNumber','voiceStatusQueue','local','md5','prototype','updateStatusRealtime','not_inuse','inuse','talking','statePause','toNumber','format','fullname','stringify','user:%s','emit','user:save','user:presence','exports','lodash','util','moment','../../../config/environment','defaults','redis','localhost','socket.io-emitter','name','email','accountcode','state','unknown'];(function(_0xed6261,_0x1f0ee2){var _0x4de7a5=function(_0x2783d6){while(--_0x2783d6){_0xed6261['push'](_0xed6261['shift']());}};_0x4de7a5(++_0x1f0ee2);}(_0xa9e0,0x123));var _0x0a9e=function(_0x173d7e,_0x3242fd){_0x173d7e=_0x173d7e-0x0;var _0x2220d6=_0xa9e0[_0x173d7e];return _0x2220d6;};'use strict';var _=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var moment=require(_0x0a9e('0x2'));var md5=require('md5');var Redis=require('ioredis');var config=require(_0x0a9e('0x3'));config['redis']=_[_0x0a9e('0x4')](config[_0x0a9e('0x5')],{'host':_0x0a9e('0x6'),'port':0x18eb});var io=require(_0x0a9e('0x7'))(new Redis(config[_0x0a9e('0x5')]));function Agent(_0x57b080){this['id']=_0x57b080['id']||0x0;this[_0x0a9e('0x8')]=_0x57b080[_0x0a9e('0x8')]||'';this[_0x0a9e('0x9')]=_0x57b080['email']||'';this['accountcode']=_0x57b080[_0x0a9e('0xa')]||'';this['fullname']=_0x57b080['fullname']||'';this[_0x0a9e('0xb')]=_0x0a9e('0xc');this[_0x0a9e('0xd')]=0x0;this[_0x0a9e('0xe')]=_0x0a9e('0xc');this[_0x0a9e('0xf')]='';this['phone']='';this['mobile']='';this['interface']='';this['online']=_0x57b080[_0x0a9e('0x10')]||![];this[_0x0a9e('0x11')]=_0x0a9e('0xc');this[_0x0a9e('0x12')]=0x0;this[_0x0a9e('0x13')]='';this[_0x0a9e('0x14')]='';this['onhold']=![];this[_0x0a9e('0x15')]=![];this[_0x0a9e('0x16')]='';}Agent[_0x0a9e('0x17')][_0x0a9e('0x18')]=function(_0x44dcfd){var _0x4d5611;if(_0x44dcfd&&_0x44dcfd['state']){_0x4d5611=_0x44dcfd[_0x0a9e('0xb')]['toLowerCase']();switch(_0x4d5611){case _0x0a9e('0x19'):_0x4d5611='idle';break;case _0x0a9e('0x1a'):_0x4d5611=_0x0a9e('0x1b');break;}}if(_0x4d5611&&this['voiceStatus']!==_0x4d5611||_0x44dcfd[_0x0a9e('0x1c')]){this['voiceStatusTime']=_[_0x0a9e('0x1d')](moment()[_0x0a9e('0x1e')]('x'));}if(_0x4d5611){this[_0x0a9e('0x11')]=_0x4d5611;}var _0x205fd6={'id':this['id'],'name':this[_0x0a9e('0x8')],'email':this[_0x0a9e('0x9')],'accountcode':this[_0x0a9e('0xa')],'fullname':this[_0x0a9e('0x1f')],'state':this[_0x0a9e('0xb')],'stateTime':this[_0x0a9e('0xd')],'status':this[_0x0a9e('0xe')],'address':this[_0x0a9e('0xf')],'online':this['online'],'voiceStatus':this[_0x0a9e('0x11')],'voiceStatusTime':this[_0x0a9e('0x12')],'voiceStatusCallerIdNumber':this['voiceStatusCallerIdNumber'],'voiceStatusQueue':this[_0x0a9e('0x14')],'interface':this['interface'],'onhold':this['onhold']};var _0x3a02e1=md5(JSON[_0x0a9e('0x20')](_0x205fd6));if(this[_0x0a9e('0x16')]!==_0x3a02e1){this[_0x0a9e('0x16')]=_0x3a02e1;io['to'](util['format'](_0x0a9e('0x21'),_0x205fd6[_0x0a9e('0x8')]))[_0x0a9e('0x22')](_0x0a9e('0x23'),_0x205fd6);io[_0x0a9e('0x22')](_0x0a9e('0x24'),_0x205fd6);}};module[_0x0a9e('0x25')]=Agent;
\ No newline at end of file
+var _0xe706=['address','phone','online','voiceStatus','voiceStatusTime','voiceStatusCallerIdNumber','voiceStatusQueue','onhold','updateStatusRealtime','not_inuse','inuse','talking','format','interface','stringify','md5','user:%s','emit','user:presence','lodash','util','moment','ioredis','../../../config/environment','redis','defaults','localhost','socket.io-emitter','name','email','accountcode','fullname','state','unknown','stateTime','status'];(function(_0x550ae2,_0x395896){var _0x236657=function(_0x560fb2){while(--_0x560fb2){_0x550ae2['push'](_0x550ae2['shift']());}};_0x236657(++_0x395896);}(_0xe706,0xa3));var _0x6e70=function(_0x310da1,_0x390f65){_0x310da1=_0x310da1-0x0;var _0x333d17=_0xe706[_0x310da1];return _0x333d17;};'use strict';var _=require(_0x6e70('0x0'));var util=require(_0x6e70('0x1'));var moment=require(_0x6e70('0x2'));var md5=require('md5');var Redis=require(_0x6e70('0x3'));var config=require(_0x6e70('0x4'));config[_0x6e70('0x5')]=_[_0x6e70('0x6')](config[_0x6e70('0x5')],{'host':_0x6e70('0x7'),'port':0x18eb});var io=require(_0x6e70('0x8'))(new Redis(config[_0x6e70('0x5')]));function Agent(_0x1b0389){this['id']=_0x1b0389['id']||0x0;this[_0x6e70('0x9')]=_0x1b0389[_0x6e70('0x9')]||'';this[_0x6e70('0xa')]=_0x1b0389[_0x6e70('0xa')]||'';this[_0x6e70('0xb')]=_0x1b0389[_0x6e70('0xb')]||'';this[_0x6e70('0xc')]=_0x1b0389[_0x6e70('0xc')]||'';this[_0x6e70('0xd')]=_0x6e70('0xe');this[_0x6e70('0xf')]=0x0;this[_0x6e70('0x10')]=_0x6e70('0xe');this[_0x6e70('0x11')]='';this[_0x6e70('0x12')]='';this['mobile']='';this['interface']='';this[_0x6e70('0x13')]=_0x1b0389[_0x6e70('0x13')]||![];this[_0x6e70('0x14')]=_0x6e70('0xe');this[_0x6e70('0x15')]=0x0;this[_0x6e70('0x16')]='';this[_0x6e70('0x17')]='';this[_0x6e70('0x18')]=![];this['local']=![];this['md5']='';}Agent['prototype'][_0x6e70('0x19')]=function(_0x5a37a6){var _0x53aed0;if(_0x5a37a6&&_0x5a37a6[_0x6e70('0xd')]){_0x53aed0=_0x5a37a6[_0x6e70('0xd')]['toLowerCase']();switch(_0x53aed0){case _0x6e70('0x1a'):_0x53aed0='idle';break;case _0x6e70('0x1b'):_0x53aed0=_0x6e70('0x1c');break;}}if(_0x53aed0&&this['voiceStatus']!==_0x53aed0||_0x5a37a6['statePause']){this[_0x6e70('0x15')]=_['toNumber'](moment()[_0x6e70('0x1d')]('x'));}if(_0x53aed0){this[_0x6e70('0x14')]=_0x53aed0;}var _0x53acdc={'id':this['id'],'name':this['name'],'email':this[_0x6e70('0xa')],'accountcode':this[_0x6e70('0xb')],'fullname':this[_0x6e70('0xc')],'state':this[_0x6e70('0xd')],'stateTime':this[_0x6e70('0xf')],'status':this[_0x6e70('0x10')],'address':this[_0x6e70('0x11')],'online':this[_0x6e70('0x13')],'voiceStatus':this[_0x6e70('0x14')],'voiceStatusTime':this[_0x6e70('0x15')],'voiceStatusCallerIdNumber':this['voiceStatusCallerIdNumber'],'voiceStatusQueue':this[_0x6e70('0x17')],'interface':this[_0x6e70('0x1e')],'onhold':this[_0x6e70('0x18')]};var _0x502b2d=md5(JSON[_0x6e70('0x1f')](_0x53acdc));if(this[_0x6e70('0x20')]!==_0x502b2d){this[_0x6e70('0x20')]=_0x502b2d;io['to'](util['format'](_0x6e70('0x21'),_0x53acdc['name']))['emit']('user:save',_0x53acdc);io[_0x6e70('0x22')](_0x6e70('0x23'),_0x53acdc);}};module['exports']=Agent;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x21a2=['dialTimezone','dialGlobalInterval','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialOriginateTimeout','dialCongestionMaxRetry','dialCongestionRetryFrequency','dialBusyMaxRetry','dialNoAnswerMaxRetry','dialNoAnswerRetryFrequency','dialGlobalMaxRetry','dialNoSuchNumberMaxRetry','dialNoSuchNumberRetryFrequency','dialDropMaxRetry','dialDropRetryFrequency','dialAbandonedMaxRetry','dialAbandonedRetryFrequency','dialMachineMaxRetry','dialMachineRetryFrequency','dialAgentRejectRetryFrequency','dialOrderByScheduledAt','dialPrefix','dialRandomLastDigitCallerIdNumber','dialCutDigit','TrunkBackup','Trunk','Interval','SquareProject','dialAMDActive','dialAMDInitialSilence','dialAMDAfterGreetingSilence','dialAMDTotalAnalysisTime','dialAMDMinWordLength','dialAMDBetweenWordsSilence','dialAMDMaximumNumberOfWords','dialAMDSilenceThreshold','dialAMDMaximumWordLength','exports','name','type','campaign','originated','temp','ivrAnswerCallsDay','ivrTotalCallsDays','message','sendMessageOneNotActive','active','limitCalls'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x21a2,0xb9));var _0x221a=function(_0x4d8ed9,_0x2ae284){_0x4d8ed9=_0x4d8ed9-0x0;var _0x1e2140=_0x21a2[_0x4d8ed9];return _0x1e2140;};'use strict';function Campaign(_0x1e2fb7){this['id']=_0x1e2fb7['id']||0x0;this[_0x221a('0x0')]=_0x1e2fb7[_0x221a('0x0')]||'';this['type']=_0x1e2fb7[_0x221a('0x1')]||_0x221a('0x2');this[_0x221a('0x3')]=0x0;this[_0x221a('0x4')]=0x0;this[_0x221a('0x5')]=0x0;this[_0x221a('0x6')]=0x0;this[_0x221a('0x7')]='';this[_0x221a('0x8')]=!![];this['active']=_0x1e2fb7[_0x221a('0x9')];this[_0x221a('0xa')]=_0x1e2fb7[_0x221a('0xa')];this['dialTimezone']=_0x1e2fb7[_0x221a('0xb')]||null;this[_0x221a('0xc')]=_0x1e2fb7[_0x221a('0xc')]?_0x1e2fb7[_0x221a('0xc')]:null;this['dialOriginateCallerIdName']=_0x1e2fb7[_0x221a('0xd')];this['dialOriginateCallerIdNumber']=_0x1e2fb7[_0x221a('0xe')];this[_0x221a('0xf')]=_0x1e2fb7[_0x221a('0xf')]||0x1e;this['dialCongestionMaxRetry']=_0x1e2fb7[_0x221a('0x10')];this[_0x221a('0x11')]=_0x1e2fb7['dialCongestionRetryFrequency'];this[_0x221a('0x12')]=_0x1e2fb7[_0x221a('0x12')];this['dialBusyRetryFrequency']=_0x1e2fb7['dialBusyRetryFrequency'];this[_0x221a('0x13')]=_0x1e2fb7[_0x221a('0x13')];this['dialNoAnswerRetryFrequency']=_0x1e2fb7[_0x221a('0x14')];this[_0x221a('0x15')]=_0x1e2fb7[_0x221a('0x15')];this[_0x221a('0x16')]=_0x1e2fb7['dialNoSuchNumberMaxRetry']||0x3;this[_0x221a('0x17')]=_0x1e2fb7[_0x221a('0x17')]||0x96;this[_0x221a('0x18')]=_0x1e2fb7[_0x221a('0x18')]||0x3;this['dialDropRetryFrequency']=_0x1e2fb7[_0x221a('0x19')]||0x96;this[_0x221a('0x1a')]=_0x1e2fb7[_0x221a('0x1a')]||0x3;this[_0x221a('0x1b')]=_0x1e2fb7[_0x221a('0x1b')]||0x96;this[_0x221a('0x1c')]=_0x1e2fb7[_0x221a('0x1c')]||0x3;this[_0x221a('0x1d')]=_0x1e2fb7[_0x221a('0x1d')]||0x96;this['dialAgentRejectMaxRetry']=_0x1e2fb7['dialAgentRejectMaxRetry']||0x3;this['dialAgentRejectRetryFrequency']=_0x1e2fb7[_0x221a('0x1e')]||0x96;this[_0x221a('0x1f')]=_0x1e2fb7['dialOrderByScheduledAt']||'DESC';this[_0x221a('0x20')]=_0x1e2fb7[_0x221a('0x20')]||undefined;this[_0x221a('0x21')]=_0x1e2fb7[_0x221a('0x21')]||undefined;this['dialCutDigit']=_0x1e2fb7[_0x221a('0x22')]||undefined;this[_0x221a('0x23')]=_0x1e2fb7[_0x221a('0x23')]?_0x1e2fb7['TrunkBackup']:undefined;this[_0x221a('0x24')]=_0x1e2fb7[_0x221a('0x24')]?_0x1e2fb7[_0x221a('0x24')]:undefined;this[_0x221a('0x25')]=_0x1e2fb7[_0x221a('0x25')]?_0x1e2fb7[_0x221a('0x25')]:undefined;this[_0x221a('0x26')]=_0x1e2fb7[_0x221a('0x26')]?_0x1e2fb7['SquareProject']:undefined;this['dialQueueProject']=_0x1e2fb7[_0x221a('0x26')]?_0x1e2fb7[_0x221a('0x26')][_0x221a('0x0')]:undefined;this[_0x221a('0x27')]=_0x1e2fb7[_0x221a('0x27')]||![];this[_0x221a('0x28')]=_0x1e2fb7['dialAMDInitialSilence'];this['dialAMDGreeting']=_0x1e2fb7['dialAMDGreeting'];this[_0x221a('0x29')]=_0x1e2fb7[_0x221a('0x29')];this[_0x221a('0x2a')]=_0x1e2fb7[_0x221a('0x2a')];this[_0x221a('0x2b')]=_0x1e2fb7[_0x221a('0x2b')];this[_0x221a('0x2c')]=_0x1e2fb7[_0x221a('0x2c')];this[_0x221a('0x2d')]=_0x1e2fb7[_0x221a('0x2d')];this[_0x221a('0x2e')]=_0x1e2fb7['dialAMDSilenceThreshold'];this[_0x221a('0x2f')]=_0x1e2fb7[_0x221a('0x2f')];}module[_0x221a('0x30')]=Campaign;
\ No newline at end of file
+var _0x6b7f=['dialRandomLastDigitCallerIdNumber','dialCutDigit','TrunkBackup','Trunk','Interval','SquareProject','dialAMDActive','dialAMDInitialSilence','dialAMDGreeting','dialAMDAfterGreetingSilence','dialAMDTotalAnalysisTime','dialAMDMinWordLength','dialAMDBetweenWordsSilence','dialAMDMaximumNumberOfWords','dialAMDSilenceThreshold','dialAMDMaximumWordLength','exports','name','type','campaign','originated','temp','ivrAnswerCallsDay','message','active','limitCalls','dialTimezone','dialGlobalInterval','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialOriginateTimeout','dialCongestionMaxRetry','dialCongestionRetryFrequency','dialBusyRetryFrequency','dialNoAnswerMaxRetry','dialNoAnswerRetryFrequency','dialGlobalMaxRetry','dialNoSuchNumberMaxRetry','dialNoSuchNumberRetryFrequency','dialDropMaxRetry','dialDropRetryFrequency','dialAbandonedMaxRetry','dialAbandonedRetryFrequency','dialMachineMaxRetry','dialMachineRetryFrequency','dialAgentRejectMaxRetry','dialAgentRejectRetryFrequency','dialOrderByScheduledAt','DESC','dialPrefix'];(function(_0x2aea9e,_0x1f587f){var _0x430b92=function(_0x416c37){while(--_0x416c37){_0x2aea9e['push'](_0x2aea9e['shift']());}};_0x430b92(++_0x1f587f);}(_0x6b7f,0x16f));var _0xf6b7=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x6b7f[_0x3dd15e];return _0x231fd0;};'use strict';function Campaign(_0x2f2f39){this['id']=_0x2f2f39['id']||0x0;this['name']=_0x2f2f39[_0xf6b7('0x0')]||'';this[_0xf6b7('0x1')]=_0x2f2f39[_0xf6b7('0x1')]||_0xf6b7('0x2');this[_0xf6b7('0x3')]=0x0;this[_0xf6b7('0x4')]=0x0;this[_0xf6b7('0x5')]=0x0;this['ivrTotalCallsDays']=0x0;this[_0xf6b7('0x6')]='';this['sendMessageOneNotActive']=!![];this[_0xf6b7('0x7')]=_0x2f2f39[_0xf6b7('0x7')];this[_0xf6b7('0x8')]=_0x2f2f39[_0xf6b7('0x8')];this[_0xf6b7('0x9')]=_0x2f2f39[_0xf6b7('0x9')]||null;this['dialGlobalInterval']=_0x2f2f39['dialGlobalInterval']?_0x2f2f39[_0xf6b7('0xa')]:null;this['dialOriginateCallerIdName']=_0x2f2f39[_0xf6b7('0xb')];this[_0xf6b7('0xc')]=_0x2f2f39['dialOriginateCallerIdNumber'];this[_0xf6b7('0xd')]=_0x2f2f39[_0xf6b7('0xd')]||0x1e;this[_0xf6b7('0xe')]=_0x2f2f39['dialCongestionMaxRetry'];this[_0xf6b7('0xf')]=_0x2f2f39[_0xf6b7('0xf')];this['dialBusyMaxRetry']=_0x2f2f39['dialBusyMaxRetry'];this[_0xf6b7('0x10')]=_0x2f2f39[_0xf6b7('0x10')];this[_0xf6b7('0x11')]=_0x2f2f39[_0xf6b7('0x11')];this['dialNoAnswerRetryFrequency']=_0x2f2f39[_0xf6b7('0x12')];this[_0xf6b7('0x13')]=_0x2f2f39[_0xf6b7('0x13')];this[_0xf6b7('0x14')]=_0x2f2f39[_0xf6b7('0x14')]||0x3;this[_0xf6b7('0x15')]=_0x2f2f39[_0xf6b7('0x15')]||0x96;this[_0xf6b7('0x16')]=_0x2f2f39[_0xf6b7('0x16')]||0x3;this[_0xf6b7('0x17')]=_0x2f2f39[_0xf6b7('0x17')]||0x96;this[_0xf6b7('0x18')]=_0x2f2f39[_0xf6b7('0x18')]||0x3;this[_0xf6b7('0x19')]=_0x2f2f39['dialAbandonedRetryFrequency']||0x96;this[_0xf6b7('0x1a')]=_0x2f2f39[_0xf6b7('0x1a')]||0x3;this[_0xf6b7('0x1b')]=_0x2f2f39[_0xf6b7('0x1b')]||0x96;this[_0xf6b7('0x1c')]=_0x2f2f39[_0xf6b7('0x1c')]||0x3;this[_0xf6b7('0x1d')]=_0x2f2f39[_0xf6b7('0x1d')]||0x96;this[_0xf6b7('0x1e')]=_0x2f2f39[_0xf6b7('0x1e')]||_0xf6b7('0x1f');this[_0xf6b7('0x20')]=_0x2f2f39[_0xf6b7('0x20')]||undefined;this[_0xf6b7('0x21')]=_0x2f2f39[_0xf6b7('0x21')]||undefined;this[_0xf6b7('0x22')]=_0x2f2f39['dialCutDigit']||undefined;this[_0xf6b7('0x23')]=_0x2f2f39[_0xf6b7('0x23')]?_0x2f2f39[_0xf6b7('0x23')]:undefined;this[_0xf6b7('0x24')]=_0x2f2f39['Trunk']?_0x2f2f39[_0xf6b7('0x24')]:undefined;this[_0xf6b7('0x25')]=_0x2f2f39[_0xf6b7('0x25')]?_0x2f2f39['Interval']:undefined;this[_0xf6b7('0x26')]=_0x2f2f39['SquareProject']?_0x2f2f39[_0xf6b7('0x26')]:undefined;this['dialQueueProject']=_0x2f2f39[_0xf6b7('0x26')]?_0x2f2f39[_0xf6b7('0x26')][_0xf6b7('0x0')]:undefined;this[_0xf6b7('0x27')]=_0x2f2f39['dialAMDActive']||![];this[_0xf6b7('0x28')]=_0x2f2f39['dialAMDInitialSilence'];this['dialAMDGreeting']=_0x2f2f39[_0xf6b7('0x29')];this['dialAMDAfterGreetingSilence']=_0x2f2f39[_0xf6b7('0x2a')];this[_0xf6b7('0x2b')]=_0x2f2f39[_0xf6b7('0x2b')];this[_0xf6b7('0x2c')]=_0x2f2f39[_0xf6b7('0x2c')];this[_0xf6b7('0x2d')]=_0x2f2f39[_0xf6b7('0x2d')];this[_0xf6b7('0x2e')]=_0x2f2f39[_0xf6b7('0x2e')];this[_0xf6b7('0x2f')]=_0x2f2f39['dialAMDSilenceThreshold'];this[_0xf6b7('0x30')]=_0x2f2f39['dialAMDMaximumWordLength'];}module[_0xf6b7('0x31')]=Campaign;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9f89=['disposition','monitor','queue','monitors','transfercalleridnum','transferconnectedlinenum','transferType','mohtime','exports','channel','calleridnum','calleridname','connectedlinenum','connectedlinename','accountcode','uniqueid','linkedid','exten','answered','answertime','endtime','unmanaged','lastapplication','lastdata','duration','billableseconds','type','tag'];(function(_0x5e4b85,_0x6cf965){var _0x5cd3cb=function(_0x589c9e){while(--_0x589c9e){_0x5e4b85['push'](_0x5e4b85['shift']());}};_0x5cd3cb(++_0x6cf965);}(_0x9f89,0x13d));var _0x99f8=function(_0x2e2a99,_0x38d7dd){_0x2e2a99=_0x2e2a99-0x0;var _0x38a24f=_0x9f89[_0x2e2a99];return _0x38a24f;};'use strict';function Channel(){this['starttime']=null;this[_0x99f8('0x0')]='';this['destinationchannel']='';this[_0x99f8('0x1')]=0x0;this[_0x99f8('0x2')]='';this[_0x99f8('0x3')]=undefined;this[_0x99f8('0x4')]=undefined;this[_0x99f8('0x5')]=0x0;this['context']='';this[_0x99f8('0x6')]=0x0;this[_0x99f8('0x7')]=0x0;this[_0x99f8('0x8')]=0x0;this[_0x99f8('0x9')]=![];this[_0x99f8('0xa')]=null;this[_0x99f8('0xb')]=null;this[_0x99f8('0xc')]=![];this['abandoned']=![];this[_0x99f8('0xd')]='';this[_0x99f8('0xe')]='';this[_0x99f8('0xf')]=0x0;this[_0x99f8('0x10')]=0x0;this['holdtime']=0x0;this[_0x99f8('0x11')]=null;this[_0x99f8('0x12')]=null;this[_0x99f8('0x13')]=null;this[_0x99f8('0x14')]=![];this['monitorFilename']=null;this[_0x99f8('0x15')]=null;this[_0x99f8('0x16')]=[];this[_0x99f8('0x17')]=undefined;this[_0x99f8('0x18')]=undefined;this[_0x99f8('0x19')]=undefined;this[_0x99f8('0x1a')]=0x0;}module[_0x99f8('0x1b')]=Channel;
\ No newline at end of file
+var _0x1564=['context','uniqueid','linkedid','exten','answered','abandoned','lastdata','duration','holdtime','type','tag','monitor','queue','monitors','transferconnectedlinenum','transferType','mohtime','exports','starttime','channel','destinationchannel','calleridnum','connectedlinenum','connectedlinename','accountcode'];(function(_0x476b00,_0x250877){var _0x44ec8e=function(_0xec6b23){while(--_0xec6b23){_0x476b00['push'](_0x476b00['shift']());}};_0x44ec8e(++_0x250877);}(_0x1564,0x125));var _0x4156=function(_0x5ab729,_0x337eec){_0x5ab729=_0x5ab729-0x0;var _0x15ac26=_0x1564[_0x5ab729];return _0x15ac26;};'use strict';function Channel(){this[_0x4156('0x0')]=null;this[_0x4156('0x1')]='';this[_0x4156('0x2')]='';this[_0x4156('0x3')]=0x0;this['calleridname']='';this[_0x4156('0x4')]=undefined;this[_0x4156('0x5')]=undefined;this[_0x4156('0x6')]=0x0;this[_0x4156('0x7')]='';this[_0x4156('0x8')]=0x0;this[_0x4156('0x9')]=0x0;this[_0x4156('0xa')]=0x0;this[_0x4156('0xb')]=![];this['answertime']=null;this['endtime']=null;this['unmanaged']=![];this[_0x4156('0xc')]=![];this['lastapplication']='';this[_0x4156('0xd')]='';this[_0x4156('0xe')]=0x0;this['billableseconds']=0x0;this[_0x4156('0xf')]=0x0;this[_0x4156('0x10')]=null;this[_0x4156('0x11')]=null;this['disposition']=null;this[_0x4156('0x12')]=![];this['monitorFilename']=null;this[_0x4156('0x13')]=null;this[_0x4156('0x14')]=[];this['transfercalleridnum']=undefined;this[_0x4156('0x15')]=undefined;this[_0x4156('0x16')]=undefined;this[_0x4156('0x17')]=0x0;}module[_0x4156('0x18')]=Channel;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x66bb=['remoteUri','authType','consumerKey','consumerSecret','token','tokenSecret','type','Configurations','exports','name','username'];(function(_0x5d063a,_0x13510e){var _0x3bc356=function(_0x33c766){while(--_0x33c766){_0x5d063a['push'](_0x5d063a['shift']());}};_0x3bc356(++_0x13510e);}(_0x66bb,0x6c));var _0xb66b=function(_0x22dcba,_0x315637){_0x22dcba=_0x22dcba-0x0;var _0x330c1c=_0x66bb[_0x22dcba];return _0x330c1c;};'use strict';function DeskAccount(_0x48bd8c){this['id']=_0x48bd8c['id']||0x0;this['name']=_0x48bd8c[_0xb66b('0x0')]||'';this[_0xb66b('0x1')]=_0x48bd8c[_0xb66b('0x1')]||'';this[_0xb66b('0x2')]=_0x48bd8c[_0xb66b('0x2')]||'';this[_0xb66b('0x3')]=_0x48bd8c[_0xb66b('0x3')]||'';this['password']=_0x48bd8c['password']||'';this[_0xb66b('0x4')]=_0x48bd8c[_0xb66b('0x4')]||'';this[_0xb66b('0x5')]=_0x48bd8c[_0xb66b('0x5')]||'';this[_0xb66b('0x6')]=_0x48bd8c[_0xb66b('0x6')]||'';this[_0xb66b('0x7')]=_0x48bd8c[_0xb66b('0x7')]||'';this[_0xb66b('0x8')]=_0x48bd8c[_0xb66b('0x8')]||'';this['serverUrl']=_0x48bd8c['serverUrl']||'';this[_0xb66b('0x9')]=_0x48bd8c[_0xb66b('0x9')]||{};}module[_0xb66b('0xa')]=DeskAccount;
\ No newline at end of file
+var _0x68a2=['token','tokenSecret','type','serverUrl','Configurations','name','username','remoteUri','authType','password','consumerKey','consumerSecret'];(function(_0x1a36a5,_0x746928){var _0x746243=function(_0x481966){while(--_0x481966){_0x1a36a5['push'](_0x1a36a5['shift']());}};_0x746243(++_0x746928);}(_0x68a2,0x125));var _0x268a=function(_0x26a9b3,_0x565e64){_0x26a9b3=_0x26a9b3-0x0;var _0x18f3a0=_0x68a2[_0x26a9b3];return _0x18f3a0;};'use strict';function DeskAccount(_0x104322){this['id']=_0x104322['id']||0x0;this['name']=_0x104322[_0x268a('0x0')]||'';this[_0x268a('0x1')]=_0x104322[_0x268a('0x1')]||'';this['remoteUri']=_0x104322[_0x268a('0x2')]||'';this[_0x268a('0x3')]=_0x104322['authType']||'';this[_0x268a('0x4')]=_0x104322[_0x268a('0x4')]||'';this[_0x268a('0x5')]=_0x104322[_0x268a('0x5')]||'';this[_0x268a('0x6')]=_0x104322[_0x268a('0x6')]||'';this[_0x268a('0x7')]=_0x104322['token']||'';this[_0x268a('0x8')]=_0x104322[_0x268a('0x8')]||'';this[_0x268a('0x9')]=_0x104322[_0x268a('0x9')]||'';this['serverUrl']=_0x104322[_0x268a('0xa')]||'';this[_0x268a('0xb')]=_0x104322[_0x268a('0xb')]||{};}module['exports']=DeskAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4024=['serverUrl','exports','name','username','password','remoteUri','tenantId','clientId','clientSecret'];(function(_0x52692c,_0x4fab07){var _0x11f282=function(_0x16ab49){while(--_0x16ab49){_0x52692c['push'](_0x52692c['shift']());}};_0x11f282(++_0x4fab07);}(_0x4024,0x89));var _0x4402=function(_0xec75dc,_0x9bf2ab){_0xec75dc=_0xec75dc-0x0;var _0x115dce=_0x4024[_0xec75dc];return _0x115dce;};'use strict';function Dynamics365Account(_0x122890){this['id']=_0x122890['id']||0x0;this[_0x4402('0x0')]=_0x122890['name']||'';this[_0x4402('0x1')]=_0x122890[_0x4402('0x1')]||'';this['password']=_0x122890[_0x4402('0x2')]||'';this['remoteUri']=_0x122890[_0x4402('0x3')]||'';this[_0x4402('0x4')]=_0x122890['tenantId']||'';this['clientId']=_0x122890[_0x4402('0x5')]||'';this[_0x4402('0x6')]=_0x122890[_0x4402('0x6')]||{};this['serverUrl']=_0x122890[_0x4402('0x7')]||'';this['Configurations']=_0x122890['Configurations']||{};}module[_0x4402('0x8')]=Dynamics365Account;
\ No newline at end of file
+var _0xa9e0=['clientSecret','serverUrl','Configurations','name','password','remoteUri','tenantId','clientId'];(function(_0x26d325,_0x3172b7){var _0xc23379=function(_0x264f2f){while(--_0x264f2f){_0x26d325['push'](_0x26d325['shift']());}};_0xc23379(++_0x3172b7);}(_0xa9e0,0x123));var _0x0a9e=function(_0x5783f4,_0x4a9e0a){_0x5783f4=_0x5783f4-0x0;var _0x28e380=_0xa9e0[_0x5783f4];return _0x28e380;};'use strict';function Dynamics365Account(_0x1f0015){this['id']=_0x1f0015['id']||0x0;this[_0x0a9e('0x0')]=_0x1f0015[_0x0a9e('0x0')]||'';this['username']=_0x1f0015['username']||'';this[_0x0a9e('0x1')]=_0x1f0015['password']||'';this[_0x0a9e('0x2')]=_0x1f0015[_0x0a9e('0x2')]||'';this[_0x0a9e('0x3')]=_0x1f0015[_0x0a9e('0x3')]||'';this[_0x0a9e('0x4')]=_0x1f0015['clientId']||'';this[_0x0a9e('0x5')]=_0x1f0015[_0x0a9e('0x5')]||{};this[_0x0a9e('0x6')]=_0x1f0015['serverUrl']||'';this['Configurations']=_0x1f0015[_0x0a9e('0x7')]||{};}module['exports']=Dynamics365Account;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8334=['SIP','Trunk','ListId','key','exports','name','description','ecm','headerinfo','minrate','maxrate','modem','v17,v27,v29','gateway','faxdetect','t38timeout','tech'];(function(_0x26e89e,_0xacad9){var _0x5bf1d3=function(_0x53cbf8){while(--_0x53cbf8){_0x26e89e['push'](_0x26e89e['shift']());}};_0x5bf1d3(++_0xacad9);}(_0x8334,0x16a));var _0x4833=function(_0x51a3e9,_0x55e806){_0x51a3e9=_0x51a3e9-0x0;var _0x44ba66=_0x8334[_0x51a3e9];return _0x44ba66;};'use strict';function FaxAccount(_0x53cc0a){this['id']=_0x53cc0a['id']||0x0;this[_0x4833('0x0')]=_0x53cc0a[_0x4833('0x0')]||'';this[_0x4833('0x1')]=_0x53cc0a[_0x4833('0x1')];this['ecm']=_0x53cc0a[_0x4833('0x2')];this['headerinfo']=_0x53cc0a[_0x4833('0x3')];this['localstationid']=_0x53cc0a['localstationid'];this[_0x4833('0x4')]=_0x53cc0a[_0x4833('0x4')]||0x960;this[_0x4833('0x5')]=_0x53cc0a[_0x4833('0x5')]||0x3840;this['modem']=_0x53cc0a[_0x4833('0x6')]||_0x4833('0x7');this['gateway']=_0x53cc0a[_0x4833('0x8')]||'no';this[_0x4833('0x9')]=_0x53cc0a[_0x4833('0x9')]||'no';this[_0x4833('0xa')]=_0x53cc0a[_0x4833('0xa')]||0x1388;this[_0x4833('0xb')]=_0x53cc0a['tech']||_0x4833('0xc');this['Trunk']=_0x53cc0a['Trunk']?_0x53cc0a[_0x4833('0xd')]:undefined;this[_0x4833('0xe')]=_0x53cc0a[_0x4833('0xe')];this['key']=_0x53cc0a[_0x4833('0xf')];}module[_0x4833('0x10')]=FaxAccount;
\ No newline at end of file
+var _0xd91e=['faxdetect','t38timeout','Trunk','ListId','exports','name','ecm','headerinfo','localstationid','maxrate','modem','v17,v27,v29','gateway'];(function(_0xd55444,_0x18220b){var _0x29dc54=function(_0xc5d932){while(--_0xc5d932){_0xd55444['push'](_0xd55444['shift']());}};_0x29dc54(++_0x18220b);}(_0xd91e,0x17e));var _0xed91=function(_0x20b4e5,_0x493ecb){_0x20b4e5=_0x20b4e5-0x0;var _0x406644=_0xd91e[_0x20b4e5];return _0x406644;};'use strict';function FaxAccount(_0x5ad5fb){this['id']=_0x5ad5fb['id']||0x0;this['name']=_0x5ad5fb[_0xed91('0x0')]||'';this['description']=_0x5ad5fb['description'];this[_0xed91('0x1')]=_0x5ad5fb[_0xed91('0x1')];this[_0xed91('0x2')]=_0x5ad5fb['headerinfo'];this[_0xed91('0x3')]=_0x5ad5fb[_0xed91('0x3')];this['minrate']=_0x5ad5fb['minrate']||0x960;this[_0xed91('0x4')]=_0x5ad5fb[_0xed91('0x4')]||0x3840;this[_0xed91('0x5')]=_0x5ad5fb[_0xed91('0x5')]||_0xed91('0x6');this[_0xed91('0x7')]=_0x5ad5fb[_0xed91('0x7')]||'no';this[_0xed91('0x8')]=_0x5ad5fb['faxdetect']||'no';this[_0xed91('0x9')]=_0x5ad5fb[_0xed91('0x9')]||0x1388;this['tech']=_0x5ad5fb['tech']||'SIP';this['Trunk']=_0x5ad5fb[_0xed91('0xa')]?_0x5ad5fb[_0xed91('0xa')]:undefined;this[_0xed91('0xb')]=_0x5ad5fb['ListId'];this['key']=_0x5ad5fb['key'];}module[_0xed91('0xc')]=FaxAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xffc2=['name','username','apiKey','token','remoteUri','serverUrl','Configurations','exports'];(function(_0xa08f90,_0x4e4c04){var _0x5e95e9=function(_0x346e02){while(--_0x346e02){_0xa08f90['push'](_0xa08f90['shift']());}};_0x5e95e9(++_0x4e4c04);}(_0xffc2,0x148));var _0x2ffc=function(_0x65a0db,_0x55c5a0){_0x65a0db=_0x65a0db-0x0;var _0x987620=_0xffc2[_0x65a0db];return _0x987620;};'use strict';function FreshdeskAccount(_0x58bcd3){this['id']=_0x58bcd3['id']||0x0;this[_0x2ffc('0x0')]=_0x58bcd3[_0x2ffc('0x0')]||'';this['username']=_0x58bcd3[_0x2ffc('0x1')]||'';this[_0x2ffc('0x2')]=_0x58bcd3[_0x2ffc('0x3')]||'';this[_0x2ffc('0x4')]=_0x58bcd3[_0x2ffc('0x4')]||'';this[_0x2ffc('0x5')]=_0x58bcd3['serverUrl']||'';this['Configurations']=_0x58bcd3[_0x2ffc('0x6')]||{};}module[_0x2ffc('0x7')]=FreshdeskAccount;
\ No newline at end of file
+var _0x4134=['apiKey','remoteUri','Configurations','username'];(function(_0x5aff12,_0x14b51a){var _0x23c6b8=function(_0x59a1c8){while(--_0x59a1c8){_0x5aff12['push'](_0x5aff12['shift']());}};_0x23c6b8(++_0x14b51a);}(_0x4134,0x1c3));var _0x4413=function(_0x1a93f4,_0x5e60f7){_0x1a93f4=_0x1a93f4-0x0;var _0x4f61bd=_0x4134[_0x1a93f4];return _0x4f61bd;};'use strict';function FreshdeskAccount(_0x12e29c){this['id']=_0x12e29c['id']||0x0;this['name']=_0x12e29c['name']||'';this[_0x4413('0x0')]=_0x12e29c['username']||'';this[_0x4413('0x1')]=_0x12e29c['token']||'';this['remoteUri']=_0x12e29c[_0x4413('0x2')]||'';this['serverUrl']=_0x12e29c['serverUrl']||'';this[_0x4413('0x3')]=_0x12e29c['Configurations']||{};}module['exports']=FreshdeskAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf105=['apiKey','remoteUri','serverUrl','Configurations','exports','name','username'];(function(_0x5cca5d,_0x5f0320){var _0x304f6c=function(_0x53ecf9){while(--_0x53ecf9){_0x5cca5d['push'](_0x5cca5d['shift']());}};_0x304f6c(++_0x5f0320);}(_0xf105,0x1b0));var _0x5f10=function(_0x2a0dd3,_0x103cfb){_0x2a0dd3=_0x2a0dd3-0x0;var _0x5792e3=_0xf105[_0x2a0dd3];return _0x5792e3;};'use strict';function FreshsalesAccount(_0x148a5d){this['id']=_0x148a5d['id']||0x0;this[_0x5f10('0x0')]=_0x148a5d[_0x5f10('0x0')]||'';this[_0x5f10('0x1')]=_0x148a5d[_0x5f10('0x1')]||'';this[_0x5f10('0x2')]=_0x148a5d['token']||'';this[_0x5f10('0x3')]=_0x148a5d['remoteUri']||'';this[_0x5f10('0x4')]=_0x148a5d[_0x5f10('0x4')]||'';this[_0x5f10('0x5')]=_0x148a5d[_0x5f10('0x5')]||{};}module[_0x5f10('0x6')]=FreshsalesAccount;
\ No newline at end of file
+var _0x7d55=['serverUrl','Configurations','exports','name','username','token','remoteUri'];(function(_0x596f6e,_0x3f8857){var _0x1e0803=function(_0x31f91f){while(--_0x31f91f){_0x596f6e['push'](_0x596f6e['shift']());}};_0x1e0803(++_0x3f8857);}(_0x7d55,0x1bc));var _0x57d5=function(_0x1a082f,_0x3b5033){_0x1a082f=_0x1a082f-0x0;var _0x385cb8=_0x7d55[_0x1a082f];return _0x385cb8;};'use strict';function FreshsalesAccount(_0x3f2e19){this['id']=_0x3f2e19['id']||0x0;this[_0x57d5('0x0')]=_0x3f2e19[_0x57d5('0x0')]||'';this[_0x57d5('0x1')]=_0x3f2e19['username']||'';this['apiKey']=_0x3f2e19[_0x57d5('0x2')]||'';this[_0x57d5('0x3')]=_0x3f2e19[_0x57d5('0x3')]||'';this['serverUrl']=_0x3f2e19[_0x57d5('0x4')]||'';this[_0x57d5('0x5')]=_0x3f2e19[_0x57d5('0x5')]||{};}module[_0x57d5('0x6')]=FreshsalesAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4871=['queuecallerabandon','queuecallerabandonAt','queuecallercomplete','queuecallercompleteAt','queuecallerexit','originalposition','connectedlinenum','connectedlinename','exten','holdtime','lastAssignedTo','voice','variables','exports','inbound','calleridnum','calleridname','queue','queuecallerjoinAt','queuecallerleaveAt','position','count'];(function(_0x46697b,_0x3604e0){var _0x55927b=function(_0x2cbe48){while(--_0x2cbe48){_0x46697b['push'](_0x46697b['shift']());}};_0x55927b(++_0x3604e0);}(_0x4871,0xea));var _0x1487=function(_0x1c6a37,_0x42dcee){_0x1c6a37=_0x1c6a37-0x0;var _0x449b38=_0x4871[_0x1c6a37];return _0x449b38;};'use strict';function QueueReport(){this['type']=_0x1487('0x0');this['uniqueid']='';this[_0x1487('0x1')]='';this[_0x1487('0x2')]='';this[_0x1487('0x3')]='';this[_0x1487('0x4')]=null;this[_0x1487('0x5')]=null;this[_0x1487('0x6')]=0x1;this[_0x1487('0x7')]=0x1;this[_0x1487('0x8')]=![];this[_0x1487('0x9')]=null;this[_0x1487('0xa')]=![];this[_0x1487('0xb')]=null;this[_0x1487('0xc')]=![];this['queuecallerexitAt']=null;this[_0x1487('0xd')]=0x1;this['channel']='';this[_0x1487('0xe')]='';this[_0x1487('0xf')]='';this['accountcode']='';this['context']='';this[_0x1487('0x10')]='';this['priority']='';this[_0x1487('0x11')]=0x0;this['assigned']=![];this[_0x1487('0x12')]='';this['motionChannel']=_0x1487('0x13');this['mohtime']=0x0;this[_0x1487('0x14')]={};}module[_0x1487('0x15')]=QueueReport;
\ No newline at end of file
+var _0xa456=['queue','queuecallerjoinAt','queuecallerleaveAt','position','count','queuecallerabandonAt','queuecallercomplete','queuecallercompleteAt','queuecallerexit','originalposition','channel','accountcode','context','exten','priority','holdtime','lastAssignedTo','mohtime','variables','exports','type','inbound','uniqueid','calleridnum','calleridname'];(function(_0x4f128b,_0x2ca15f){var _0x14c9c7=function(_0x414e69){while(--_0x414e69){_0x4f128b['push'](_0x4f128b['shift']());}};_0x14c9c7(++_0x2ca15f);}(_0xa456,0x1a4));var _0x6a45=function(_0x2aea9e,_0x1f587f){_0x2aea9e=_0x2aea9e-0x0;var _0x430b92=_0xa456[_0x2aea9e];return _0x430b92;};'use strict';function QueueReport(){this[_0x6a45('0x0')]=_0x6a45('0x1');this[_0x6a45('0x2')]='';this[_0x6a45('0x3')]='';this[_0x6a45('0x4')]='';this[_0x6a45('0x5')]='';this[_0x6a45('0x6')]=null;this[_0x6a45('0x7')]=null;this[_0x6a45('0x8')]=0x1;this[_0x6a45('0x9')]=0x1;this['queuecallerabandon']=![];this[_0x6a45('0xa')]=null;this[_0x6a45('0xb')]=![];this[_0x6a45('0xc')]=null;this[_0x6a45('0xd')]=![];this['queuecallerexitAt']=null;this[_0x6a45('0xe')]=0x1;this[_0x6a45('0xf')]='';this['connectedlinenum']='';this['connectedlinename']='';this[_0x6a45('0x10')]='';this[_0x6a45('0x11')]='';this[_0x6a45('0x12')]='';this[_0x6a45('0x13')]='';this[_0x6a45('0x14')]=0x0;this['assigned']=![];this[_0x6a45('0x15')]='';this['motionChannel']='voice';this[_0x6a45('0x16')]=0x0;this[_0x6a45('0x17')]={};}module[_0x6a45('0x18')]=QueueReport;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3ffd=['securityToken','type','serverUrl','Configurations','name','password','clientId','clientSecret'];(function(_0x17c7dc,_0x59b84e){var _0x38a206=function(_0xb0ef5d){while(--_0xb0ef5d){_0x17c7dc['push'](_0x17c7dc['shift']());}};_0x38a206(++_0x59b84e);}(_0x3ffd,0x84));var _0xd3ff=function(_0x2b45b5,_0x474458){_0x2b45b5=_0x2b45b5-0x0;var _0x1d9c06=_0x3ffd[_0x2b45b5];return _0x1d9c06;};'use strict';function SalesforceAccount(_0x1f8f4b){this['id']=_0x1f8f4b['id']||0x0;this['name']=_0x1f8f4b[_0xd3ff('0x0')]||'';this['username']=_0x1f8f4b['username']||'';this['remoteUri']=_0x1f8f4b['remoteUri']||'';this['password']=_0x1f8f4b[_0xd3ff('0x1')]||'';this[_0xd3ff('0x2')]=_0x1f8f4b['clientId']||'';this['clientSecret']=_0x1f8f4b[_0xd3ff('0x3')]||'';this['securityToken']=_0x1f8f4b[_0xd3ff('0x4')]||'';this[_0xd3ff('0x5')]=_0x1f8f4b[_0xd3ff('0x5')]||'integrationTab';this[_0xd3ff('0x6')]=_0x1f8f4b[_0xd3ff('0x6')]||'';this[_0xd3ff('0x7')]=_0x1f8f4b[_0xd3ff('0x7')]||{};}module['exports']=SalesforceAccount;
\ No newline at end of file
+var _0x7ebf=['serverUrl','Configurations','exports','name','username','remoteUri','password','clientId','clientSecret','securityToken','type','integrationTab'];(function(_0x2e49cc,_0x1f72a7){var _0xa0c6c1=function(_0x38b018){while(--_0x38b018){_0x2e49cc['push'](_0x2e49cc['shift']());}};_0xa0c6c1(++_0x1f72a7);}(_0x7ebf,0x153));var _0xf7eb=function(_0x399db2,_0x5bc04b){_0x399db2=_0x399db2-0x0;var _0x1a38c6=_0x7ebf[_0x399db2];return _0x1a38c6;};'use strict';function SalesforceAccount(_0x3524cc){this['id']=_0x3524cc['id']||0x0;this[_0xf7eb('0x0')]=_0x3524cc['name']||'';this[_0xf7eb('0x1')]=_0x3524cc[_0xf7eb('0x1')]||'';this[_0xf7eb('0x2')]=_0x3524cc[_0xf7eb('0x2')]||'';this[_0xf7eb('0x3')]=_0x3524cc[_0xf7eb('0x3')]||'';this[_0xf7eb('0x4')]=_0x3524cc[_0xf7eb('0x4')]||'';this[_0xf7eb('0x5')]=_0x3524cc['clientSecret']||'';this[_0xf7eb('0x6')]=_0x3524cc[_0xf7eb('0x6')]||'';this[_0xf7eb('0x7')]=_0x3524cc[_0xf7eb('0x7')]||_0xf7eb('0x8');this[_0xf7eb('0x9')]=_0x3524cc[_0xf7eb('0x9')]||'';this[_0xf7eb('0xa')]=_0x3524cc['Configurations']||{};}module[_0xf7eb('0xb')]=SalesforceAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x367a=['username','password','remoteUri','serverUrl','Configurations','exports','name'];(function(_0x46cbd2,_0x4e8a0e){var _0x198d86=function(_0x144936){while(--_0x144936){_0x46cbd2['push'](_0x46cbd2['shift']());}};_0x198d86(++_0x4e8a0e);}(_0x367a,0x16b));var _0xa367=function(_0x19492d,_0x32f35c){_0x19492d=_0x19492d-0x0;var _0x2f2ee5=_0x367a[_0x19492d];return _0x2f2ee5;};'use strict';function ServicenowAccount(_0x3b09f5){this['id']=_0x3b09f5['id']||0x0;this[_0xa367('0x0')]=_0x3b09f5[_0xa367('0x0')]||'';this['username']=_0x3b09f5[_0xa367('0x1')]||'';this[_0xa367('0x2')]=_0x3b09f5[_0xa367('0x2')]||'';this[_0xa367('0x3')]=_0x3b09f5[_0xa367('0x3')]||'';this['serverUrl']=_0x3b09f5[_0xa367('0x4')]||'';this['Configurations']=_0x3b09f5[_0xa367('0x5')]||{};}module[_0xa367('0x6')]=ServicenowAccount;
\ No newline at end of file
+var _0xedcc=['serverUrl','Configurations','exports','name','username','password','remoteUri'];(function(_0x1b8928,_0x48fc97){var _0xd64926=function(_0xc2fdb1){while(--_0xc2fdb1){_0x1b8928['push'](_0x1b8928['shift']());}};_0xd64926(++_0x48fc97);}(_0xedcc,0x129));var _0xcedc=function(_0x4dfaf6,_0x19b323){_0x4dfaf6=_0x4dfaf6-0x0;var _0x272c6e=_0xedcc[_0x4dfaf6];return _0x272c6e;};'use strict';function ServicenowAccount(_0x29710f){this['id']=_0x29710f['id']||0x0;this[_0xcedc('0x0')]=_0x29710f[_0xcedc('0x0')]||'';this[_0xcedc('0x1')]=_0x29710f['username']||'';this[_0xcedc('0x2')]=_0x29710f['password']||'';this[_0xcedc('0x3')]=_0x29710f[_0xcedc('0x3')]||'';this[_0xcedc('0x4')]=_0x29710f[_0xcedc('0x4')]||'';this[_0xcedc('0x5')]=_0x29710f[_0xcedc('0x5')]||{};}module[_0xcedc('0x6')]=ServicenowAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0e3d=['remoteUri','serverUrl','Configurations','name','username','password'];(function(_0x32a2be,_0x3127b1){var _0x3e5ada=function(_0x59e3f7){while(--_0x59e3f7){_0x32a2be['push'](_0x32a2be['shift']());}};_0x3e5ada(++_0x3127b1);}(_0x0e3d,0x16b));var _0xd0e3=function(_0x23e788,_0x2fd209){_0x23e788=_0x23e788-0x0;var _0x1d996d=_0x0e3d[_0x23e788];return _0x1d996d;};'use strict';function SugarcrmAccount(_0x1de07e){this['id']=_0x1de07e['id']||0x0;this['name']=_0x1de07e[_0xd0e3('0x0')]||'';this['username']=_0x1de07e[_0xd0e3('0x1')]||'';this['password']=_0x1de07e[_0xd0e3('0x2')]||'';this[_0xd0e3('0x3')]=_0x1de07e[_0xd0e3('0x3')]||'';this['serverUrl']=_0x1de07e[_0xd0e3('0x4')]||'';this[_0xd0e3('0x5')]=_0x1de07e[_0xd0e3('0x5')]||{};}module['exports']=SugarcrmAccount;
\ No newline at end of file
+var _0x5b26=['remoteUri','serverUrl','Configurations','exports','username','password'];(function(_0x8ffb90,_0x567d46){var _0xd254ad=function(_0xde5d7f){while(--_0xde5d7f){_0x8ffb90['push'](_0x8ffb90['shift']());}};_0xd254ad(++_0x567d46);}(_0x5b26,0x172));var _0x65b2=function(_0xfae23b,_0x2be4ba){_0xfae23b=_0xfae23b-0x0;var _0x200640=_0x5b26[_0xfae23b];return _0x200640;};'use strict';function SugarcrmAccount(_0x20a8dc){this['id']=_0x20a8dc['id']||0x0;this['name']=_0x20a8dc['name']||'';this[_0x65b2('0x0')]=_0x20a8dc[_0x65b2('0x0')]||'';this[_0x65b2('0x1')]=_0x20a8dc[_0x65b2('0x1')]||'';this[_0x65b2('0x2')]=_0x20a8dc['remoteUri']||'';this['serverUrl']=_0x20a8dc[_0x65b2('0x3')]||'';this['Configurations']=_0x20a8dc[_0x65b2('0x4')]||{};}module[_0x65b2('0x5')]=SugarcrmAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd763=['status','unknown','address','exports','accountcode','state','stateTime'];(function(_0x43539c,_0x3dd955){var _0xa3f19d=function(_0x1d78d8){while(--_0x1d78d8){_0x43539c['push'](_0x43539c['shift']());}};_0xa3f19d(++_0x3dd955);}(_0xd763,0x17e));var _0x3d76=function(_0x12fc8d,_0x19ee33){_0x12fc8d=_0x12fc8d-0x0;var _0x3f9d04=_0xd763[_0x12fc8d];return _0x3f9d04;};'use strict';function Telephone(_0x5cc5c3){this['id']=_0x5cc5c3['id']||0x0;this['name']=_0x5cc5c3['name']||'';this[_0x3d76('0x0')]=_0x5cc5c3[_0x3d76('0x0')]||'';this[_0x3d76('0x1')]='unknown';this[_0x3d76('0x2')]=0x0;this[_0x3d76('0x3')]=_0x3d76('0x4');this[_0x3d76('0x5')]='';}module[_0x3d76('0x6')]=Telephone;
\ No newline at end of file
+var _0xefdd=['unknown','stateTime','exports','name','accountcode','state'];(function(_0x21549c,_0x6d64d1){var _0x426cbd=function(_0x323f5b){while(--_0x323f5b){_0x21549c['push'](_0x21549c['shift']());}};_0x426cbd(++_0x6d64d1);}(_0xefdd,0x75));var _0xdefd=function(_0x248a89,_0x1a1bcb){_0x248a89=_0x248a89-0x0;var _0x3c03c3=_0xefdd[_0x248a89];return _0x3c03c3;};'use strict';function Telephone(_0x2aeca1){this['id']=_0x2aeca1['id']||0x0;this[_0xdefd('0x0')]=_0x2aeca1['name']||'';this[_0xdefd('0x1')]=_0x2aeca1[_0xdefd('0x1')]||'';this[_0xdefd('0x2')]=_0xdefd('0x3');this[_0xdefd('0x4')]=0x0;this['status']='unknown';this['address']='';}module[_0xdefd('0x5')]=Telephone;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['exports','name'];(function(_0x2eff38,_0x14826b){var _0x84f3ef=function(_0x28edb6){while(--_0x28edb6){_0x2eff38['push'](_0x2eff38['shift']());}};_0x84f3ef(++_0x14826b);}(_0xa9e0,0x123));var _0x0a9e=function(_0x37c22c,_0x28a70d){_0x37c22c=_0x37c22c-0x0;var _0x119d79=_0xa9e0[_0x37c22c];return _0x119d79;};'use strict';function template(_0x1f0015){this['id']=_0x1f0015['id']||0x0;this[_0x0a9e('0x0')]=_0x1f0015[_0x0a9e('0x0')]||'';this['html']=_0x1f0015['html']||'';}module[_0x0a9e('0x1')]=template;
\ No newline at end of file
+var _0xb10b=['name','html'];(function(_0x3077a3,_0x74b067){var _0x20c39b=function(_0x33c1af){while(--_0x33c1af){_0x3077a3['push'](_0x3077a3['shift']());}};_0x20c39b(++_0x74b067);}(_0xb10b,0x12a));var _0xbb10=function(_0x512eb0,_0x27edfe){_0x512eb0=_0x512eb0-0x0;var _0x1378fe=_0xb10b[_0x512eb0];return _0x1378fe;};'use strict';function template(_0x13ce8d){this['id']=_0x13ce8d['id']||0x0;this['name']=_0x13ce8d[_0xbb10('0x0')]||'';this[_0xbb10('0x1')]=_0x13ce8d[_0xbb10('0x1')]||'';}module['exports']=template;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x14a0=['voice','status','AnyConditions','Actions','name','channel'];(function(_0x143fc8,_0x4fdc90){var _0x2f8d21=function(_0x10bcde){while(--_0x10bcde){_0x143fc8['push'](_0x143fc8['shift']());}};_0x2f8d21(++_0x4fdc90);}(_0x14a0,0x8e));var _0x014a=function(_0x2485b7,_0x4dc1e9){_0x2485b7=_0x2485b7-0x0;var _0x26dd93=_0x14a0[_0x2485b7];return _0x26dd93;};'use strict';function Trigger(_0x1ee939){this['id']=_0x1ee939['id']||0x0;this[_0x014a('0x0')]=_0x1ee939[_0x014a('0x0')]||'';this[_0x014a('0x1')]=_0x1ee939[_0x014a('0x1')]||_0x014a('0x2');this[_0x014a('0x3')]=_0x1ee939[_0x014a('0x3')]||![];this['AllConditions']=_0x1ee939['AllConditions']||[];this[_0x014a('0x4')]=_0x1ee939[_0x014a('0x4')]||[];this[_0x014a('0x5')]=_0x1ee939['Actions']||[];}module['exports']=Trigger;
\ No newline at end of file
+var _0xda2d=['channel','voice','AllConditions','AnyConditions','Actions','exports','name'];(function(_0x22d8c3,_0x5eb230){var _0x1bc9d0=function(_0x2950af){while(--_0x2950af){_0x22d8c3['push'](_0x22d8c3['shift']());}};_0x1bc9d0(++_0x5eb230);}(_0xda2d,0x102));var _0xdda2=function(_0x172d82,_0x2c9a00){_0x172d82=_0x172d82-0x0;var _0x35fdba=_0xda2d[_0x172d82];return _0x35fdba;};'use strict';function Trigger(_0x2625ed){this['id']=_0x2625ed['id']||0x0;this[_0xdda2('0x0')]=_0x2625ed[_0xdda2('0x0')]||'';this[_0xdda2('0x1')]=_0x2625ed[_0xdda2('0x1')]||_0xdda2('0x2');this['status']=_0x2625ed['status']||![];this['AllConditions']=_0x2625ed[_0xdda2('0x3')]||[];this[_0xdda2('0x4')]=_0x2625ed[_0xdda2('0x4')]||[];this[_0xdda2('0x5')]=_0x2625ed[_0xdda2('0x5')]||[];}module[_0xdda2('0x6')]=Trigger;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x631a=['indexOf','host','port','domain','domainport','refresh','stateRegistry','registrationtime','defaultuser','exports','active','name','unknown','registry'];(function(_0x4af7bb,_0x3598e3){var _0x53bb04=function(_0x5738f6){while(--_0x5738f6){_0x4af7bb['push'](_0x4af7bb['shift']());}};_0x53bb04(++_0x3598e3);}(_0x631a,0xdc));var _0xa631=function(_0x402df8,_0x27ad20){_0x402df8=_0x402df8-0x0;var _0x30c816=_0x631a[_0x402df8];return _0x30c816;};'use strict';function Trunk(_0x2f9c28){this['id']=_0x2f9c28['id']||0x0;this[_0xa631('0x0')]=_0x2f9c28[_0xa631('0x0')]||![];this[_0xa631('0x1')]=_0x2f9c28[_0xa631('0x1')]||'';this['state']=_0xa631('0x2');this['stateTime']=0x0;this['status']=_0xa631('0x2');this['registry']=_0x2f9c28[_0xa631('0x3')]&&_0x2f9c28['registry'][_0xa631('0x4')](':')?_0x2f9c28[_0xa631('0x3')]['split'](':')[0x0]:'';this[_0xa631('0x5')]='';this[_0xa631('0x6')]='';this[_0xa631('0x7')]='';this[_0xa631('0x8')]='';this[_0xa631('0x9')]='';this[_0xa631('0xa')]='unknown';this[_0xa631('0xb')]='';this['address']='';this[_0xa631('0xc')]=_0x2f9c28[_0xa631('0xc')]||'';}module[_0xa631('0xd')]=Trunk;
\ No newline at end of file
+var _0x78be=['split','host','port','domain','refresh','stateRegistry','defaultuser','active','name','unknown','stateTime','status','registry','indexOf'];(function(_0xa1375d,_0x46c95b){var _0x571fba=function(_0x27f618){while(--_0x27f618){_0xa1375d['push'](_0xa1375d['shift']());}};_0x571fba(++_0x46c95b);}(_0x78be,0x93));var _0xe78b=function(_0xac0937,_0x9b52e9){_0xac0937=_0xac0937-0x0;var _0x445f74=_0x78be[_0xac0937];return _0x445f74;};'use strict';function Trunk(_0x5bc6a1){this['id']=_0x5bc6a1['id']||0x0;this[_0xe78b('0x0')]=_0x5bc6a1[_0xe78b('0x0')]||![];this[_0xe78b('0x1')]=_0x5bc6a1[_0xe78b('0x1')]||'';this['state']=_0xe78b('0x2');this[_0xe78b('0x3')]=0x0;this[_0xe78b('0x4')]=_0xe78b('0x2');this[_0xe78b('0x5')]=_0x5bc6a1['registry']&&_0x5bc6a1[_0xe78b('0x5')][_0xe78b('0x6')](':')?_0x5bc6a1['registry'][_0xe78b('0x7')](':')[0x0]:'';this[_0xe78b('0x8')]='';this[_0xe78b('0x9')]='';this[_0xe78b('0xa')]='';this['domainport']='';this[_0xe78b('0xb')]='';this[_0xe78b('0xc')]=_0xe78b('0x2');this['registrationtime']='';this['address']='';this['defaultuser']=_0x5bc6a1[_0xe78b('0xd')]||'';}module['exports']=Trunk;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1ab4=['none','mandatoryDisposition','exports','exten','recordingFormat'];(function(_0x559434,_0x2f9870){var _0x252834=function(_0x548490){while(--_0x548490){_0x559434['push'](_0x559434['shift']());}};_0x252834(++_0x2f9870);}(_0x1ab4,0x14d));var _0x41ab=function(_0x252eb5,_0x585fc5){_0x252eb5=_0x252eb5-0x0;var _0xc3e372=_0x1ab4[_0x252eb5];return _0xc3e372;};'use strict';function voiceExtension(_0x1e514e){this['id']=_0x1e514e['id']||0x0;this[_0x41ab('0x0')]=_0x1e514e['exten']||'';this['recordingFormat']=_0x1e514e[_0x41ab('0x1')]||_0x41ab('0x2');this['mandatoryDisposition']=_0x1e514e[_0x41ab('0x3')]||![];}module[_0x41ab('0x4')]=voiceExtension;
\ No newline at end of file
+var _0x2833=['exports','exten','recordingFormat','mandatoryDisposition'];(function(_0x52af56,_0x46b43b){var _0x18952c=function(_0x5aa529){while(--_0x5aa529){_0x52af56['push'](_0x52af56['shift']());}};_0x18952c(++_0x46b43b);}(_0x2833,0x195));var _0x3283=function(_0x4d3392,_0x3e8f28){_0x4d3392=_0x4d3392-0x0;var _0x14055d=_0x2833[_0x4d3392];return _0x14055d;};'use strict';function voiceExtension(_0x58e77b){this['id']=_0x58e77b['id']||0x0;this[_0x3283('0x0')]=_0x58e77b['exten']||'';this[_0x3283('0x1')]=_0x58e77b[_0x3283('0x1')]||'none';this[_0x3283('0x2')]=_0x58e77b[_0x3283('0x2')]||![];}module[_0x3283('0x3')]=voiceExtension;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xef0f=['predictiveIntervalDroppedCallsTimeout','predictiveIntervalAvgHoldtime','predictiveIntervalAvgTalktime','predictiveIntervalPauses','predictiveIntervalAvailable','dialPredictiveIntervalMaxThreshold','predictiveIntervalMinThreshold','predictiveIntervalErlangCalls','predictiveIntervalErlangCallsDroppedCalls','erlangCalls','erlangCallToSecond','erlangAbandonmentRate','erlangBusyFactor','dialRecallMeTimeout','dialPreviewAutoRecallMe','dialQueueProject2','dialAgiAfterHangupClient','dialAgiAfterHangupAgent','mandatoryDisposition','mandatoryDispositionPause','exports','unknown','inuse','busy','invalid','unavailable','ringing','ringinuse','wav','wav49','rrmemory','name','monitor_format','type','inbound','waiting','talking','total','sumDuration','sumHoldTime','sumBillable','unmanaged','abandoned','loggedIn','available','acw','acwTimeout','autopause','sendMessageOneNotActive','message','originated','dialTimezone','dialGlobalInterval','dialActive','dialMethod','progressive','dialLimitChannel','dialLimitQueue','dialPowerLevel','dialPredictiveOptimization','dropRate','dialPredictiveInterval','dialOriginateCallerIdName','anonymous','dialOriginateCallerIdNumber','dialOriginateTimeout','dialQueueOptions','tTxX','dialQueueTimeout','dialQueueProject','dialCongestionMaxRetry','dialCongestionRetryFrequency','dialBusyMaxRetry','dialBusyRetryFrequency','dialNoAnswerMaxRetry','dialNoAnswerRetryFrequency','dialNoSuchNumberMaxRetry','dialNoSuchNumberRetryFrequency','dialDropMaxRetry','dialDropRetryFrequency','dialAbandonedMaxRetry','dialAbandonedRetryFrequency','dialMachineMaxRetry','dialMachineRetryFrequency','dialAgentRejectMaxRetry','dialAgentRejectRetryFrequency','dialGlobalMaxRetry','TrunkBackup','dialPrefix','Interval','dialOrderByScheduledAt','DESC','strategy','queueStatusComplete','dialAMDActive','dialAMDInitialSilence','dialAMDGreeting','dialAMDAfterGreetingSilence','dialAMDTotalAnalysisTime','dialAMDMinWordLength','dialAMDBetweenWordsSilence','dialAMDMaximumNumberOfWords','dialAMDSilenceThreshold','dialAMDMaximumWordLength','outboundRejectCallsDay','pTalking','timeout','outboundNoAnswerCallsDay','outboundBusyCallsDay','outboundCongestionCallsDay','outboundNoSuchCallsDay','outboundBlacklistCallsDay','outboundDropCallsDayTimeout','outboundReCallsDay','outboundAbandonedDay','startProgressive','startPredictive','predictiveIntervalMultiplicativeFactor','predictiveIntervalTotalCalls','predictiveIntervalAnsweredCalls','predictiveIntervalDroppedCallsCallersExit'];(function(_0xd1d19a,_0x1933f0){var _0x52a79d=function(_0x5199e2){while(--_0x5199e2){_0xd1d19a['push'](_0xd1d19a['shift']());}};_0x52a79d(++_0x1933f0);}(_0xef0f,0x8e));var _0xfef0=function(_0xc1e43b,_0x4a3d8b){_0xc1e43b=_0xc1e43b-0x0;var _0x7fb11b=_0xef0f[_0xc1e43b];return _0x7fb11b;};'use strict';var statusDesc=[_0xfef0('0x0'),'not_inuse',_0xfef0('0x1'),_0xfef0('0x2'),_0xfef0('0x3'),_0xfef0('0x4'),_0xfef0('0x5'),_0xfef0('0x6'),'onhold'];var monitorFormat={'wav':_0xfef0('0x7'),'wav49':_0xfef0('0x8'),'gsm':'gsm'};var strategy={'rrmemory':_0xfef0('0x9'),'roundrobin':'roundrobin'};function VoiceQueue(_0x49ff93){this['id']=_0x49ff93['id']||0x0;this['name']=_0x49ff93[_0xfef0('0xa')]||'';this[_0xfef0('0xb')]=_0x49ff93[_0xfef0('0xb')]||'';this[_0xfef0('0xc')]=_0x49ff93['type']||_0xfef0('0xd');this[_0xfef0('0xe')]=0x0;this[_0xfef0('0xf')]=0x0;this[_0xfef0('0x10')]=0x0;this['answered']=0x0;this[_0xfef0('0x11')]=0x0;this[_0xfef0('0x12')]=0x0;this[_0xfef0('0x13')]=0x0;this[_0xfef0('0x14')]=0x0;this[_0xfef0('0x15')]=0x0;this[_0xfef0('0x16')]=0x0;this[_0xfef0('0x17')]=0x0;this['acw']=_0x49ff93[_0xfef0('0x18')]||![];this[_0xfef0('0x19')]=_0x49ff93[_0xfef0('0x19')]||0xa;this[_0xfef0('0x1a')]=_0x49ff93[_0xfef0('0x1a')]||'no';this[_0xfef0('0x1b')]=!![];this[_0xfef0('0x1c')]='';this[_0xfef0('0x1d')]=0x0;this['temp']=0x0;this[_0xfef0('0x1e')]=_0x49ff93[_0xfef0('0x1e')]||null;this[_0xfef0('0x1f')]=_0x49ff93[_0xfef0('0x1f')]?_0x49ff93[_0xfef0('0x1f')]:null;this[_0xfef0('0x20')]=_0x49ff93['dialActive'];this[_0xfef0('0x21')]=_0x49ff93['dialMethod']||_0xfef0('0x22');this[_0xfef0('0x23')]=_0x49ff93[_0xfef0('0x23')]||0x0;this[_0xfef0('0x24')]=_0x49ff93[_0xfef0('0x24')]||0x0;this[_0xfef0('0x25')]=_0x49ff93['dialPowerLevel']||0x1;this[_0xfef0('0x26')]=_0x49ff93['dialPredictiveOptimization']||_0xfef0('0x27');this['dialPredictiveOptimizationPercentage']=_0x49ff93['dialPredictiveOptimizationPercentage']||0.03;this[_0xfef0('0x28')]=_0x49ff93[_0xfef0('0x28')]||0x258;this[_0xfef0('0x29')]=_0x49ff93[_0xfef0('0x29')]||_0xfef0('0x2a');this[_0xfef0('0x2b')]=_0x49ff93[_0xfef0('0x2b')]||'anonymous';this[_0xfef0('0x2c')]=_0x49ff93[_0xfef0('0x2c')]||0x1e;this[_0xfef0('0x2d')]=_0x49ff93[_0xfef0('0x2d')]||_0xfef0('0x2e');this['dialQueueTimeout']=_0x49ff93[_0xfef0('0x2f')]||0x3;this[_0xfef0('0x30')]=_0x49ff93[_0xfef0('0x30')]||undefined;this[_0xfef0('0x31')]=_0x49ff93[_0xfef0('0x31')]||0x3;this[_0xfef0('0x32')]=_0x49ff93['dialCongestionRetryFrequency']||0x96;this[_0xfef0('0x33')]=_0x49ff93[_0xfef0('0x33')]||0x3;this[_0xfef0('0x34')]=_0x49ff93[_0xfef0('0x34')]||0x96;this[_0xfef0('0x35')]=_0x49ff93[_0xfef0('0x35')]||0x3;this[_0xfef0('0x36')]=_0x49ff93[_0xfef0('0x36')]||0x96;this['dialNoSuchNumberMaxRetry']=_0x49ff93[_0xfef0('0x37')]||0x3;this[_0xfef0('0x38')]=_0x49ff93[_0xfef0('0x38')]||0x96;this['dialDropMaxRetry']=_0x49ff93[_0xfef0('0x39')]||0x3;this[_0xfef0('0x3a')]=_0x49ff93[_0xfef0('0x3a')]||0x96;this['dialAbandonedMaxRetry']=_0x49ff93[_0xfef0('0x3b')]||0x3;this[_0xfef0('0x3c')]=_0x49ff93[_0xfef0('0x3c')]||0x96;this[_0xfef0('0x3d')]=_0x49ff93[_0xfef0('0x3d')]||0x3;this[_0xfef0('0x3e')]=_0x49ff93[_0xfef0('0x3e')]||0x96;this['dialAgentRejectMaxRetry']=_0x49ff93[_0xfef0('0x3f')]||0x3;this[_0xfef0('0x40')]=_0x49ff93[_0xfef0('0x40')]||0x96;this[_0xfef0('0x41')]=_0x49ff93[_0xfef0('0x41')]||0x4;this['Trunk']=_0x49ff93['Trunk']?_0x49ff93['Trunk']:undefined;this[_0xfef0('0x42')]=_0x49ff93[_0xfef0('0x42')]?_0x49ff93[_0xfef0('0x42')]:undefined;this[_0xfef0('0x43')]=_0x49ff93[_0xfef0('0x43')]||undefined;this[_0xfef0('0x44')]=_0x49ff93['Interval']?_0x49ff93[_0xfef0('0x44')]:undefined;this[_0xfef0('0x45')]=_0x49ff93[_0xfef0('0x45')]||_0xfef0('0x46');this['dialRandomLastDigitCallerIdNumber']=_0x49ff93['dialRandomLastDigitCallerIdNumber']||undefined;this['dialCutDigit']=_0x49ff93['dialCutDigit']||undefined;this[_0xfef0('0x47')]=strategy[_0x49ff93['strategy']]||_0xfef0('0x9');this[_0xfef0('0x48')]=!![];this[_0xfef0('0x49')]=_0x49ff93[_0xfef0('0x49')]||![];this[_0xfef0('0x4a')]=_0x49ff93[_0xfef0('0x4a')];this['dialAMDGreeting']=_0x49ff93[_0xfef0('0x4b')];this[_0xfef0('0x4c')]=_0x49ff93[_0xfef0('0x4c')];this[_0xfef0('0x4d')]=_0x49ff93[_0xfef0('0x4d')];this['dialAMDMinWordLength']=_0x49ff93[_0xfef0('0x4e')];this[_0xfef0('0x4f')]=_0x49ff93['dialAMDBetweenWordsSilence'];this[_0xfef0('0x50')]=_0x49ff93[_0xfef0('0x50')];this[_0xfef0('0x51')]=_0x49ff93[_0xfef0('0x51')];this[_0xfef0('0x52')]=_0x49ff93[_0xfef0('0x52')];this[_0xfef0('0x53')]=0x0;this[_0xfef0('0x54')]=0x0;this[_0xfef0('0x55')]=_0x49ff93[_0xfef0('0x55')];this['outboundAnswerCallsDay']=0x0;this['outboundAnswerAgiCallsDay']=0x0;this[_0xfef0('0x56')]=0x0;this[_0xfef0('0x57')]=0x0;this[_0xfef0('0x58')]=0x0;this[_0xfef0('0x59')]=0x0;this['outboundUnknownCallsDay']=0x0;this[_0xfef0('0x5a')]=0x0;this['outboundOriginateFailureCallsDay']=0x0;this['outboundDropCallsDayCallersExit']=0x0;this[_0xfef0('0x5b')]=0x0;this['outboundDropCallsDayACS']=0x0;this[_0xfef0('0x5c')]=0x0;this[_0xfef0('0x5d')]=0x0;this[_0xfef0('0x5e')]=undefined;this[_0xfef0('0x5f')]=undefined;this['handlePredictive']=undefined;this[_0xfef0('0x60')]=1.05;this[_0xfef0('0x61')]=0x0;this[_0xfef0('0x62')]=0x0;this[_0xfef0('0x63')]=0x0;this[_0xfef0('0x64')]=0x0;this[_0xfef0('0x65')]=0x0;this[_0xfef0('0x66')]=0x0;this[_0xfef0('0x67')]=0x0;this[_0xfef0('0x68')]=0x0;this['predictiveIntervalMaxThreshold']=_0x49ff93[_0xfef0('0x69')]||0x14;this[_0xfef0('0x6a')]=_0x49ff93[_0xfef0('0x69')]||0xa;this[_0xfef0('0x6b')]=0x0;this[_0xfef0('0x6c')]=0x0;this['predictiveIntervalHitRate']=0x1;this[_0xfef0('0x6d')]=0x0;this[_0xfef0('0x6e')]=0x0;this[_0xfef0('0x6f')]=0x0;this[_0xfef0('0x70')]=0x0;this[_0xfef0('0x71')]=_0x49ff93[_0xfef0('0x71')]||0x1e;this['dialRecallInQueue']=_0x49ff93['dialRecallInQueue']||![];this[_0xfef0('0x72')]=!!_0x49ff93[_0xfef0('0x72')]||![];this['dialQueueProject2']=_0x49ff93[_0xfef0('0x73')]||undefined;this[_0xfef0('0x74')]=_0x49ff93[_0xfef0('0x74')]||![];this[_0xfef0('0x75')]=_0x49ff93['dialAgiAfterHangupAgent']||![];this[_0xfef0('0xb')]=monitorFormat[_0x49ff93[_0xfef0('0xb')]]?monitorFormat[_0x49ff93[_0xfef0('0xb')]]:undefined;this[_0xfef0('0x76')]=_0x49ff93[_0xfef0('0x76')]||![];this[_0xfef0('0x77')]=_0x49ff93[_0xfef0('0x77')]?_0x49ff93[_0xfef0('0x77')]:undefined;}module[_0xfef0('0x78')]=VoiceQueue;
\ No newline at end of file
+var _0x248d=['wav49','roundrobin','name','monitor_format','type','inbound','waiting','sumHoldTime','sumBillable','unmanaged','abandoned','acw','acwTimeout','autopause','message','originated','temp','dialTimezone','dialGlobalInterval','dialMethod','progressive','dialLimitChannel','dialPowerLevel','dialPredictiveOptimization','dropRate','dialPredictiveOptimizationPercentage','dialPredictiveInterval','dialOriginateCallerIdName','anonymous','dialOriginateCallerIdNumber','dialOriginateTimeout','dialQueueOptions','tTxX','dialQueueProject','dialCongestionMaxRetry','dialCongestionRetryFrequency','dialBusyMaxRetry','dialBusyRetryFrequency','dialNoAnswerMaxRetry','dialNoAnswerRetryFrequency','dialNoSuchNumberMaxRetry','dialNoSuchNumberRetryFrequency','dialDropMaxRetry','dialDropRetryFrequency','dialAbandonedMaxRetry','dialAbandonedRetryFrequency','dialMachineMaxRetry','dialMachineRetryFrequency','dialAgentRejectMaxRetry','dialAgentRejectRetryFrequency','dialGlobalMaxRetry','Trunk','TrunkBackup','dialPrefix','Interval','dialOrderByScheduledAt','DESC','dialRandomLastDigitCallerIdNumber','dialCutDigit','strategy','rrmemory','queueStatusComplete','dialAMDActive','dialAMDInitialSilence','dialAMDGreeting','dialAMDAfterGreetingSilence','dialAMDTotalAnalysisTime','dialAMDMinWordLength','dialAMDBetweenWordsSilence','dialAMDMaximumNumberOfWords','dialAMDSilenceThreshold','dialAMDMaximumWordLength','pTalking','timeout','outboundAnswerAgiCallsDay','outboundNoAnswerCallsDay','outboundBusyCallsDay','outboundCongestionCallsDay','outboundUnknownCallsDay','outboundBlacklistCallsDay','outboundOriginateFailureCallsDay','outboundDropCallsDayCallersExit','outboundDropCallsDayACS','outboundReCallsDay','outboundAbandonedDay','startProgressive','startPredictive','predictiveIntervalMultiplicativeFactor','predictiveIntervalTotalCalls','predictiveIntervalAnsweredCalls','predictiveIntervalDroppedCallsCallersExit','predictiveIntervalDroppedCallsTimeout','predictiveIntervalAvgHoldtime','predictiveIntervalAvgTalktime','predictiveIntervalPauses','predictiveIntervalAvailable','predictiveIntervalMaxThreshold','dialPredictiveIntervalMaxThreshold','predictiveIntervalMinThreshold','predictiveIntervalErlangCallsDroppedCalls','erlangCalls','erlangCallToSecond','dialRecallMeTimeout','dialRecallInQueue','dialPreviewAutoRecallMe','dialQueueProject2','dialAgiAfterHangupClient','dialAgiAfterHangupAgent','mandatoryDisposition','mandatoryDispositionPause','exports','unknown','not_inuse','inuse','busy','unavailable','onhold','wav'];(function(_0x4c36a8,_0x1fb420){var _0x3c0859=function(_0xa60ca7){while(--_0xa60ca7){_0x4c36a8['push'](_0x4c36a8['shift']());}};_0x3c0859(++_0x1fb420);}(_0x248d,0x6f));var _0xd248=function(_0x232f4f,_0x8a73f){_0x232f4f=_0x232f4f-0x0;var _0x5b1316=_0x248d[_0x232f4f];return _0x5b1316;};'use strict';var statusDesc=[_0xd248('0x0'),_0xd248('0x1'),_0xd248('0x2'),_0xd248('0x3'),'invalid',_0xd248('0x4'),'ringing','ringinuse',_0xd248('0x5')];var monitorFormat={'wav':_0xd248('0x6'),'wav49':_0xd248('0x7'),'gsm':'gsm'};var strategy={'rrmemory':'rrmemory','roundrobin':_0xd248('0x8')};function VoiceQueue(_0x5db174){this['id']=_0x5db174['id']||0x0;this[_0xd248('0x9')]=_0x5db174[_0xd248('0x9')]||'';this[_0xd248('0xa')]=_0x5db174[_0xd248('0xa')]||'';this[_0xd248('0xb')]=_0x5db174[_0xd248('0xb')]||_0xd248('0xc');this[_0xd248('0xd')]=0x0;this['talking']=0x0;this['total']=0x0;this['answered']=0x0;this['sumDuration']=0x0;this[_0xd248('0xe')]=0x0;this[_0xd248('0xf')]=0x0;this[_0xd248('0x10')]=0x0;this[_0xd248('0x11')]=0x0;this['loggedIn']=0x0;this['available']=0x0;this['acw']=_0x5db174[_0xd248('0x12')]||![];this['acwTimeout']=_0x5db174[_0xd248('0x13')]||0xa;this[_0xd248('0x14')]=_0x5db174[_0xd248('0x14')]||'no';this['sendMessageOneNotActive']=!![];this[_0xd248('0x15')]='';this[_0xd248('0x16')]=0x0;this[_0xd248('0x17')]=0x0;this[_0xd248('0x18')]=_0x5db174[_0xd248('0x18')]||null;this[_0xd248('0x19')]=_0x5db174[_0xd248('0x19')]?_0x5db174[_0xd248('0x19')]:null;this['dialActive']=_0x5db174['dialActive'];this[_0xd248('0x1a')]=_0x5db174[_0xd248('0x1a')]||_0xd248('0x1b');this['dialLimitChannel']=_0x5db174[_0xd248('0x1c')]||0x0;this['dialLimitQueue']=_0x5db174['dialLimitQueue']||0x0;this['dialPowerLevel']=_0x5db174[_0xd248('0x1d')]||0x1;this[_0xd248('0x1e')]=_0x5db174[_0xd248('0x1e')]||_0xd248('0x1f');this[_0xd248('0x20')]=_0x5db174[_0xd248('0x20')]||0.03;this[_0xd248('0x21')]=_0x5db174[_0xd248('0x21')]||0x258;this[_0xd248('0x22')]=_0x5db174[_0xd248('0x22')]||_0xd248('0x23');this['dialOriginateCallerIdNumber']=_0x5db174[_0xd248('0x24')]||_0xd248('0x23');this[_0xd248('0x25')]=_0x5db174[_0xd248('0x25')]||0x1e;this[_0xd248('0x26')]=_0x5db174[_0xd248('0x26')]||_0xd248('0x27');this['dialQueueTimeout']=_0x5db174['dialQueueTimeout']||0x3;this[_0xd248('0x28')]=_0x5db174['dialQueueProject']||undefined;this['dialCongestionMaxRetry']=_0x5db174[_0xd248('0x29')]||0x3;this[_0xd248('0x2a')]=_0x5db174[_0xd248('0x2a')]||0x96;this['dialBusyMaxRetry']=_0x5db174[_0xd248('0x2b')]||0x3;this[_0xd248('0x2c')]=_0x5db174[_0xd248('0x2c')]||0x96;this[_0xd248('0x2d')]=_0x5db174['dialNoAnswerMaxRetry']||0x3;this['dialNoAnswerRetryFrequency']=_0x5db174[_0xd248('0x2e')]||0x96;this[_0xd248('0x2f')]=_0x5db174['dialNoSuchNumberMaxRetry']||0x3;this[_0xd248('0x30')]=_0x5db174[_0xd248('0x30')]||0x96;this['dialDropMaxRetry']=_0x5db174[_0xd248('0x31')]||0x3;this[_0xd248('0x32')]=_0x5db174[_0xd248('0x32')]||0x96;this[_0xd248('0x33')]=_0x5db174[_0xd248('0x33')]||0x3;this[_0xd248('0x34')]=_0x5db174[_0xd248('0x34')]||0x96;this[_0xd248('0x35')]=_0x5db174[_0xd248('0x35')]||0x3;this[_0xd248('0x36')]=_0x5db174['dialMachineRetryFrequency']||0x96;this[_0xd248('0x37')]=_0x5db174[_0xd248('0x37')]||0x3;this['dialAgentRejectRetryFrequency']=_0x5db174[_0xd248('0x38')]||0x96;this[_0xd248('0x39')]=_0x5db174[_0xd248('0x39')]||0x4;this[_0xd248('0x3a')]=_0x5db174[_0xd248('0x3a')]?_0x5db174[_0xd248('0x3a')]:undefined;this['TrunkBackup']=_0x5db174['TrunkBackup']?_0x5db174[_0xd248('0x3b')]:undefined;this['dialPrefix']=_0x5db174[_0xd248('0x3c')]||undefined;this[_0xd248('0x3d')]=_0x5db174['Interval']?_0x5db174[_0xd248('0x3d')]:undefined;this[_0xd248('0x3e')]=_0x5db174[_0xd248('0x3e')]||_0xd248('0x3f');this[_0xd248('0x40')]=_0x5db174[_0xd248('0x40')]||undefined;this[_0xd248('0x41')]=_0x5db174[_0xd248('0x41')]||undefined;this['strategy']=strategy[_0x5db174[_0xd248('0x42')]]||_0xd248('0x43');this[_0xd248('0x44')]=!![];this[_0xd248('0x45')]=_0x5db174[_0xd248('0x45')]||![];this[_0xd248('0x46')]=_0x5db174['dialAMDInitialSilence'];this['dialAMDGreeting']=_0x5db174[_0xd248('0x47')];this[_0xd248('0x48')]=_0x5db174[_0xd248('0x48')];this[_0xd248('0x49')]=_0x5db174[_0xd248('0x49')];this[_0xd248('0x4a')]=_0x5db174[_0xd248('0x4a')];this[_0xd248('0x4b')]=_0x5db174[_0xd248('0x4b')];this[_0xd248('0x4c')]=_0x5db174['dialAMDMaximumNumberOfWords'];this[_0xd248('0x4d')]=_0x5db174[_0xd248('0x4d')];this['dialAMDMaximumWordLength']=_0x5db174[_0xd248('0x4e')];this['outboundRejectCallsDay']=0x0;this[_0xd248('0x4f')]=0x0;this[_0xd248('0x50')]=_0x5db174[_0xd248('0x50')];this['outboundAnswerCallsDay']=0x0;this[_0xd248('0x51')]=0x0;this[_0xd248('0x52')]=0x0;this[_0xd248('0x53')]=0x0;this[_0xd248('0x54')]=0x0;this['outboundNoSuchCallsDay']=0x0;this[_0xd248('0x55')]=0x0;this[_0xd248('0x56')]=0x0;this[_0xd248('0x57')]=0x0;this[_0xd248('0x58')]=0x0;this['outboundDropCallsDayTimeout']=0x0;this[_0xd248('0x59')]=0x0;this[_0xd248('0x5a')]=0x0;this[_0xd248('0x5b')]=0x0;this[_0xd248('0x5c')]=undefined;this[_0xd248('0x5d')]=undefined;this['handlePredictive']=undefined;this[_0xd248('0x5e')]=1.05;this[_0xd248('0x5f')]=0x0;this[_0xd248('0x60')]=0x0;this[_0xd248('0x61')]=0x0;this[_0xd248('0x62')]=0x0;this[_0xd248('0x63')]=0x0;this[_0xd248('0x64')]=0x0;this[_0xd248('0x65')]=0x0;this[_0xd248('0x66')]=0x0;this[_0xd248('0x67')]=_0x5db174[_0xd248('0x68')]||0x14;this[_0xd248('0x69')]=_0x5db174['dialPredictiveIntervalMaxThreshold']||0xa;this['predictiveIntervalErlangCalls']=0x0;this[_0xd248('0x6a')]=0x0;this['predictiveIntervalHitRate']=0x1;this[_0xd248('0x6b')]=0x0;this[_0xd248('0x6c')]=0x0;this['erlangAbandonmentRate']=0x0;this['erlangBusyFactor']=0x0;this[_0xd248('0x6d')]=_0x5db174['dialRecallMeTimeout']||0x1e;this[_0xd248('0x6e')]=_0x5db174['dialRecallInQueue']||![];this[_0xd248('0x6f')]=!!_0x5db174[_0xd248('0x6f')]||![];this[_0xd248('0x70')]=_0x5db174['dialQueueProject2']||undefined;this[_0xd248('0x71')]=_0x5db174[_0xd248('0x71')]||![];this[_0xd248('0x72')]=_0x5db174['dialAgiAfterHangupAgent']||![];this['monitor_format']=monitorFormat[_0x5db174['monitor_format']]?monitorFormat[_0x5db174[_0xd248('0xa')]]:undefined;this[_0xd248('0x73')]=_0x5db174[_0xd248('0x73')]||![];this[_0xd248('0x74')]=_0x5db174[_0xd248('0x74')]?_0x5db174['mandatoryDispositionPause']:undefined;}module[_0xd248('0x75')]=VoiceQueue;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa4d2=['remoteUri','serverUrl','Configurations','exports','name','username','accessKey'];(function(_0x3b380d,_0x4bf247){var _0x54502b=function(_0x35d207){while(--_0x35d207){_0x3b380d['push'](_0x3b380d['shift']());}};_0x54502b(++_0x4bf247);}(_0xa4d2,0x123));var _0x2a4d=function(_0x2e0ba6,_0x2c2f90){_0x2e0ba6=_0x2e0ba6-0x0;var _0x49bca6=_0xa4d2[_0x2e0ba6];return _0x49bca6;};'use strict';function VtigerAccount(_0x2146e0){this['id']=_0x2146e0['id']||0x0;this[_0x2a4d('0x0')]=_0x2146e0[_0x2a4d('0x0')]||'';this[_0x2a4d('0x1')]=_0x2146e0[_0x2a4d('0x1')]||'';this[_0x2a4d('0x2')]=_0x2146e0[_0x2a4d('0x2')]||'';this['remoteUri']=_0x2146e0[_0x2a4d('0x3')]||'';this[_0x2a4d('0x4')]=_0x2146e0[_0x2a4d('0x4')]||'';this[_0x2a4d('0x5')]=_0x2146e0[_0x2a4d('0x5')]||{};}module[_0x2a4d('0x6')]=VtigerAccount;
\ No newline at end of file
+var _0xbeab=['Configurations','exports','name','username','accessKey','remoteUri','serverUrl'];(function(_0x5b27c6,_0x3cc792){var _0x182c8e=function(_0x41c914){while(--_0x41c914){_0x5b27c6['push'](_0x5b27c6['shift']());}};_0x182c8e(++_0x3cc792);}(_0xbeab,0x198));var _0xbbea=function(_0x217676,_0x3dcbfd){_0x217676=_0x217676-0x0;var _0x592351=_0xbeab[_0x217676];return _0x592351;};'use strict';function VtigerAccount(_0x315a2a){this['id']=_0x315a2a['id']||0x0;this[_0xbbea('0x0')]=_0x315a2a[_0xbbea('0x0')]||'';this[_0xbbea('0x1')]=_0x315a2a['username']||'';this[_0xbbea('0x2')]=_0x315a2a['accessKey']||'';this[_0xbbea('0x3')]=_0x315a2a['remoteUri']||'';this[_0xbbea('0x4')]=_0x315a2a['serverUrl']||'';this[_0xbbea('0x5')]=_0x315a2a[_0xbbea('0x5')]||{};}module[_0xbbea('0x6')]=VtigerAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xaef9=['name','username','password','token','remoteUri','authType','Configurations','exports'];(function(_0x3b7b8a,_0x52c3b0){var _0x441206=function(_0x5d34d3){while(--_0x5d34d3){_0x3b7b8a['push'](_0x3b7b8a['shift']());}};_0x441206(++_0x52c3b0);}(_0xaef9,0xe0));var _0x9aef=function(_0x53774b,_0x22ef5f){_0x53774b=_0x53774b-0x0;var _0x129c32=_0xaef9[_0x53774b];return _0x129c32;};'use strict';function ZendeskAccount(_0x1c1ef1){this['id']=_0x1c1ef1['id']||0x0;this[_0x9aef('0x0')]=_0x1c1ef1[_0x9aef('0x0')]||'';this[_0x9aef('0x1')]=_0x1c1ef1[_0x9aef('0x1')]||'';this[_0x9aef('0x2')]=_0x1c1ef1['password']||'';this[_0x9aef('0x3')]=_0x1c1ef1[_0x9aef('0x3')]||'';this[_0x9aef('0x4')]=_0x1c1ef1['remoteUri']||'';this[_0x9aef('0x5')]=_0x1c1ef1['authType']||'';this['type']=_0x1c1ef1['type']||'integrationTab';this['serverUrl']=_0x1c1ef1['serverUrl']||'';this[_0x9aef('0x6')]=_0x1c1ef1[_0x9aef('0x6')]||{};}module[_0x9aef('0x7')]=ZendeskAccount;
\ No newline at end of file
+var _0x0f77=['authType','type','serverUrl','Configurations','exports','name','username','password','token','remoteUri'];(function(_0xca1e8,_0x53082c){var _0x5e2d4e=function(_0x4064ef){while(--_0x4064ef){_0xca1e8['push'](_0xca1e8['shift']());}};_0x5e2d4e(++_0x53082c);}(_0x0f77,0x1db));var _0x70f7=function(_0xc8023,_0xd1912){_0xc8023=_0xc8023-0x0;var _0x448b50=_0x0f77[_0xc8023];return _0x448b50;};'use strict';function ZendeskAccount(_0x433bbc){this['id']=_0x433bbc['id']||0x0;this[_0x70f7('0x0')]=_0x433bbc[_0x70f7('0x0')]||'';this[_0x70f7('0x1')]=_0x433bbc[_0x70f7('0x1')]||'';this[_0x70f7('0x2')]=_0x433bbc['password']||'';this[_0x70f7('0x3')]=_0x433bbc[_0x70f7('0x3')]||'';this[_0x70f7('0x4')]=_0x433bbc['remoteUri']||'';this[_0x70f7('0x5')]=_0x433bbc[_0x70f7('0x5')]||'';this[_0x70f7('0x6')]=_0x433bbc[_0x70f7('0x6')]||'integrationTab';this[_0x70f7('0x7')]=_0x433bbc[_0x70f7('0x7')]||'';this[_0x70f7('0x8')]=_0x433bbc[_0x70f7('0x8')]||{};}module[_0x70f7('0x9')]=ZendeskAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5d32=['code','refreshToken','Configurations','exports','name','description','host','zone','clientId','clientSecret','serverUrl'];(function(_0x580311,_0x51e232){var _0x1034b6=function(_0x4eaace){while(--_0x4eaace){_0x580311['push'](_0x580311['shift']());}};_0x1034b6(++_0x51e232);}(_0x5d32,0x1e8));var _0x25d3=function(_0x5f382f,_0x3f1432){_0x5f382f=_0x5f382f-0x0;var _0x3bb11b=_0x5d32[_0x5f382f];return _0x3bb11b;};'use strict';function ZohoAccount(_0x1da340){this['id']=_0x1da340['id']||0x0;this[_0x25d3('0x0')]=_0x1da340[_0x25d3('0x0')]||'';this['description']=_0x1da340[_0x25d3('0x1')]||'';this[_0x25d3('0x2')]=_0x1da340[_0x25d3('0x2')]||'';this['zone']=_0x1da340[_0x25d3('0x3')]||'';this[_0x25d3('0x4')]=_0x1da340[_0x25d3('0x4')]||'';this[_0x25d3('0x5')]=_0x1da340[_0x25d3('0x5')]||'';this[_0x25d3('0x6')]=_0x1da340[_0x25d3('0x6')]||'';this['code']=_0x1da340[_0x25d3('0x7')]||'';this['refreshToken']=_0x1da340[_0x25d3('0x8')]||'';this[_0x25d3('0x9')]=_0x1da340[_0x25d3('0x9')]||{};}module[_0x25d3('0xa')]=ZohoAccount;
\ No newline at end of file
+var _0xa3c6=['Configurations','exports','name','description','host','zone','clientId','clientSecret','serverUrl','code','refreshToken'];(function(_0x5355b3,_0x2f1e18){var _0x1dbf46=function(_0x2139fe){while(--_0x2139fe){_0x5355b3['push'](_0x5355b3['shift']());}};_0x1dbf46(++_0x2f1e18);}(_0xa3c6,0x120));var _0x6a3c=function(_0x20d3b9,_0x5bd737){_0x20d3b9=_0x20d3b9-0x0;var _0x5dc9c4=_0xa3c6[_0x20d3b9];return _0x5dc9c4;};'use strict';function ZohoAccount(_0x3e30d2){this['id']=_0x3e30d2['id']||0x0;this['name']=_0x3e30d2[_0x6a3c('0x0')]||'';this[_0x6a3c('0x1')]=_0x3e30d2[_0x6a3c('0x1')]||'';this[_0x6a3c('0x2')]=_0x3e30d2['host']||'';this[_0x6a3c('0x3')]=_0x3e30d2[_0x6a3c('0x3')]||'';this['clientId']=_0x3e30d2[_0x6a3c('0x4')]||'';this[_0x6a3c('0x5')]=_0x3e30d2[_0x6a3c('0x5')]||'';this[_0x6a3c('0x6')]=_0x3e30d2['serverUrl']||'';this[_0x6a3c('0x7')]=_0x3e30d2['code']||'';this[_0x6a3c('0x8')]=_0x3e30d2['refreshToken']||'';this[_0x6a3c('0x9')]=_0x3e30d2[_0x6a3c('0x9')]||{};}module[_0x6a3c('0xa')]=ZohoAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1dea=['countcongestionretry','countnoanswerretry','countdropretry','countabandonedretry','countmachineretry','countagentrejectretry','countnosuchnumberretry','callbackuniqueid','callbackat','recallme','ContactId','ListId','UserId','VoiceQueueId','originatecalleridnum','getCaller','\x22%s\x22\x20<%s>','number','exports','util','lodash','isNil','string','uniqueid','name','type','queue','dialAnswer','membername','Agent','channelAgent','format','SIP/%s','Contact','phone','firstName','active','scheduledat','countbusyretry'];(function(_0x2641f9,_0x26715f){var _0x585741=function(_0x2d1462){while(--_0x2d1462){_0x2641f9['push'](_0x2641f9['shift']());}};_0x585741(++_0x26715f);}(_0x1dea,0xfd));var _0xa1de=function(_0x290a42,_0x112cc1){_0x290a42=_0x290a42-0x0;var _0x163635=_0x1dea[_0x290a42];return _0x163635;};'use strict';var util=require(_0xa1de('0x0'));var _=require(_0xa1de('0x1'));var moment=require('moment');function checkNameSurname(_0x2c2144,_0x497b09,_0x302c41){var _0x265cb1='';if(!_[_0xa1de('0x2')](_0x497b09)&&_0xa1de('0x3')===typeof _0x497b09){_0x265cb1+=_0x497b09;}if(!_[_0xa1de('0x2')](_0x302c41)&&_0xa1de('0x3')===typeof _0x302c41){_0x265cb1+='\x20'+_0x302c41;}if(_0x265cb1!==''){return _0x265cb1;}return _0x2c2144;}function Action(_0x6ba8f7,_0x196982,_0x715f7f,_0x20ba86,_0x143b46){this[_0xa1de('0x4')]=_0x715f7f||undefined;this['idContact']=_0x6ba8f7['id'];this['queue']=_0x196982[_0xa1de('0x5')];this[_0xa1de('0x6')]=_0x196982[_0xa1de('0x6')];this['campaigntype']=_0xa1de('0x7');this[_0xa1de('0x8')]=![];this[_0xa1de('0x9')]=_[_0xa1de('0x2')](_0x6ba8f7[_0xa1de('0xa')])?undefined:_0x6ba8f7[_0xa1de('0xa')][_0xa1de('0x5')];this[_0xa1de('0xb')]=this[_0xa1de('0x9')]?util[_0xa1de('0xc')](_0xa1de('0xd'),this[_0xa1de('0x9')]):_0x20ba86||undefined;this['calleridname']=checkNameSurname(_0x6ba8f7[_0xa1de('0xe')][_0xa1de('0xf')],_0x6ba8f7[_0xa1de('0xe')][_0xa1de('0x10')],_0x6ba8f7['Contact']['lastName']);this['active']=_0x6ba8f7[_0xa1de('0x11')]||![];this['calleridnum']=_0x6ba8f7[_0xa1de('0xe')][_0xa1de('0xf')];this['scheduledat']=_0x6ba8f7[_0xa1de('0x12')];this[_0xa1de('0x13')]=_0x6ba8f7['countbusyretry']||0x0;this[_0xa1de('0x14')]=_0x6ba8f7[_0xa1de('0x14')]||0x0;this[_0xa1de('0x15')]=_0x6ba8f7['countnoanswerretry']||0x0;this['countglobal']=(_0x6ba8f7['countbusyretry']||0x0)+(_0x6ba8f7[_0xa1de('0x14')]||0x0)+(_0x6ba8f7[_0xa1de('0x15')]||0x0)+(_0x6ba8f7['countnosuchnumberretry']||0x0)+(_0x6ba8f7[_0xa1de('0x16')]||0x0)+(_0x6ba8f7[_0xa1de('0x17')]||0x0)+(_0x6ba8f7[_0xa1de('0x18')]||0x0)+(_0x6ba8f7[_0xa1de('0x19')]||0x0);this[_0xa1de('0x1a')]=_0x6ba8f7[_0xa1de('0x1a')]||0x0;this[_0xa1de('0x16')]=_0x6ba8f7[_0xa1de('0x16')]||0x0;this['countabandonedretry']=_0x6ba8f7['countabandonedretry']||0x0;this[_0xa1de('0x18')]=_0x6ba8f7[_0xa1de('0x18')]||0x0;this[_0xa1de('0x19')]=_0x6ba8f7[_0xa1de('0x19')]||0x0;this['callback']=_0x6ba8f7['callback'];this[_0xa1de('0x1b')]=_0x6ba8f7[_0xa1de('0x1b')];this[_0xa1de('0x1c')]=_0x6ba8f7[_0xa1de('0x1c')];this[_0xa1de('0x1d')]=_0x6ba8f7['recallme'];this[_0xa1de('0x1e')]=_0x6ba8f7[_0xa1de('0x1e')];this[_0xa1de('0x1f')]=_0x6ba8f7[_0xa1de('0x1f')];this[_0xa1de('0x20')]=_[_0xa1de('0x2')](_0x6ba8f7[_0xa1de('0xa')])?_0x6ba8f7['UserId']:_0x6ba8f7['Agent']['id'];this[_0xa1de('0x21')]=_0x6ba8f7[_0xa1de('0x21')];this[_0xa1de('0x22')]='';this['originatecalleridname']='';}Action['prototype'][_0xa1de('0x23')]=function(){return util[_0xa1de('0xc')](_0xa1de('0x24'),this['calleridname'],this[_0xa1de('0x25')]);};module[_0xa1de('0x26')]=Action;
\ No newline at end of file
+var _0x995b=['Contact','firstName','active','phone','scheduledat','countbusyretry','countcongestionretry','countglobal','countnoanswerretry','countnosuchnumberretry','countabandonedretry','countmachineretry','countagentrejectretry','countdropretry','callback','callbackuniqueid','callbackat','recallme','ListId','UserId','VoiceQueueId','originatecalleridname','prototype','getCaller','\x22%s\x22\x20<%s>','number','util','lodash','moment','string','isNil','uniqueid','idContact','queue','name','type','dialAnswer','Agent','channelAgent','membername','format','calleridname'];(function(_0x4d674b,_0x176474){var _0x535a1f=function(_0xac7726){while(--_0xac7726){_0x4d674b['push'](_0x4d674b['shift']());}};_0x535a1f(++_0x176474);}(_0x995b,0x6e));var _0xb995=function(_0x438c85,_0x21dd20){_0x438c85=_0x438c85-0x0;var _0x3dc637=_0x995b[_0x438c85];return _0x3dc637;};'use strict';var util=require(_0xb995('0x0'));var _=require(_0xb995('0x1'));var moment=require(_0xb995('0x2'));function checkNameSurname(_0x279d7d,_0x404b00,_0x106797){var _0x25a300='';if(!_['isNil'](_0x404b00)&&_0xb995('0x3')===typeof _0x404b00){_0x25a300+=_0x404b00;}if(!_[_0xb995('0x4')](_0x106797)&&'string'===typeof _0x106797){_0x25a300+='\x20'+_0x106797;}if(_0x25a300!==''){return _0x25a300;}return _0x279d7d;}function Action(_0x3d8a75,_0x284f57,_0x374354,_0x364733,_0x1d02a0){this[_0xb995('0x5')]=_0x374354||undefined;this[_0xb995('0x6')]=_0x3d8a75['id'];this[_0xb995('0x7')]=_0x284f57[_0xb995('0x8')];this[_0xb995('0x9')]=_0x284f57[_0xb995('0x9')];this['campaigntype']=_0xb995('0x7');this[_0xb995('0xa')]=![];this['membername']=_[_0xb995('0x4')](_0x3d8a75['Agent'])?undefined:_0x3d8a75[_0xb995('0xb')]['name'];this[_0xb995('0xc')]=this[_0xb995('0xd')]?util[_0xb995('0xe')]('SIP/%s',this['membername']):_0x364733||undefined;this[_0xb995('0xf')]=checkNameSurname(_0x3d8a75[_0xb995('0x10')]['phone'],_0x3d8a75['Contact'][_0xb995('0x11')],_0x3d8a75[_0xb995('0x10')]['lastName']);this['active']=_0x3d8a75[_0xb995('0x12')]||![];this['calleridnum']=_0x3d8a75['Contact'][_0xb995('0x13')];this[_0xb995('0x14')]=_0x3d8a75[_0xb995('0x14')];this[_0xb995('0x15')]=_0x3d8a75['countbusyretry']||0x0;this[_0xb995('0x16')]=_0x3d8a75[_0xb995('0x16')]||0x0;this['countnoanswerretry']=_0x3d8a75['countnoanswerretry']||0x0;this[_0xb995('0x17')]=(_0x3d8a75[_0xb995('0x15')]||0x0)+(_0x3d8a75[_0xb995('0x16')]||0x0)+(_0x3d8a75[_0xb995('0x18')]||0x0)+(_0x3d8a75[_0xb995('0x19')]||0x0)+(_0x3d8a75['countdropretry']||0x0)+(_0x3d8a75[_0xb995('0x1a')]||0x0)+(_0x3d8a75[_0xb995('0x1b')]||0x0)+(_0x3d8a75[_0xb995('0x1c')]||0x0);this[_0xb995('0x19')]=_0x3d8a75[_0xb995('0x19')]||0x0;this[_0xb995('0x1d')]=_0x3d8a75['countdropretry']||0x0;this[_0xb995('0x1a')]=_0x3d8a75['countabandonedretry']||0x0;this[_0xb995('0x1b')]=_0x3d8a75[_0xb995('0x1b')]||0x0;this[_0xb995('0x1c')]=_0x3d8a75['countagentrejectretry']||0x0;this['callback']=_0x3d8a75[_0xb995('0x1e')];this[_0xb995('0x1f')]=_0x3d8a75[_0xb995('0x1f')];this[_0xb995('0x20')]=_0x3d8a75[_0xb995('0x20')];this[_0xb995('0x21')]=_0x3d8a75['recallme'];this['ContactId']=_0x3d8a75['ContactId'];this[_0xb995('0x22')]=_0x3d8a75['ListId'];this[_0xb995('0x23')]=_['isNil'](_0x3d8a75['Agent'])?_0x3d8a75[_0xb995('0x23')]:_0x3d8a75['Agent']['id'];this[_0xb995('0x24')]=_0x3d8a75[_0xb995('0x24')];this['originatecalleridnum']='';this[_0xb995('0x25')]='';}Action[_0xb995('0x26')][_0xb995('0x27')]=function(){return util[_0xb995('0xe')](_0xb995('0x28'),this[_0xb995('0xf')],this[_0xb995('0x29')]);};module['exports']=Action;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5089=['noanswer','[callProgressDetectingCustomer][logNoAnswer]','[callProgressDetectingCustomer][logNoAnswerGlobal]','dialNoAnswerMaxRetry','countcongestionretry','Congestion','custom:agentcongestion','congestion','[callProgressDetectingCustomer][logCongestionGlobal]','dialCongestionMaxRetry','[callProgressDetectingCustomer][logCongestion]','CANCEL','outboundRejectCallsDay','countagentrejectretry','AgentReject','[syncHangupRequest][logAgentReject]','[callProgressDetectingCustomer][logAgentReject]','ABANDONED','Abandoned','[callProgressDetectingCustomer][logAbandoned]','countabandonedetry','dialAbandonedMaxRety','countabandonedretry','dialAbandonedRetryFrequency','cause-txt','dialstatus','custom:amd','amd','[callProgressDetectingCustomer][hangupInAMD]','[callProgressDetectingCustomer][machine]','[default]','[callProgressDetectingCustomer][logUnknown]','[callProgressDetectingCustomer][logUnknownGlobal]','[originated][decrement][callProgressDetectingCustomer]','\x20Queue','callProgressDetectingAgent','isUndefined','object','reason','logAgent','createAgentHistory','[callProgressDetectingAgent][logNoAnswer]','Busy','[callProgressDetectingAgent][logBusy]','[callProgressDetectingAgent][logCongestion]','AnswerAGI','checkInBlack','Contact','phone','Contact\x20is\x20undefined','lookAgent','isEmpty','execCall','Queue:\x20','\x20IdHopper:\x20','custom:agentcalled','called','Calling','[Preview][execCall][failure]','logBlacklist','createHistory','[Blacklist][error]','Contact\x20in\x20black\x20List','SIP/%s','unmonitored','execRun','pick','unlock','unlockContact','getContactPreview','recallme','Contact.phone','[Preview][checkIsBlackList]','[Preview][getContactPreview]','Call\x20unsuccessful','Empty\x20Contact','\x20Trunk\x20is\x20not\x20active','TrunkBackup','[Preview][validateContact][Trunk\x20not\x20work]','\x20Trunk\x20Backup\x20is\x20not\x20active','Trunk\x20not\x20work','[Preview][validateContact][Campaign\x20Active]','\x20Not\x20Active','campaign\x20Name:\x20','Is\x20Valid','SIP/%s/%s%s','trim','dialCutDigit','substring','getCallerId','callerid','dialOriginateCallerIdName','dialRandomLastDigitCallerIdNumber','getCallerIdRandom','addVariables','toLowerVariables','variablesAction','[originated][increment]','actionid','logLookAgent','isFailure','idContact','[callProgressDetectingAgent][logAnswer]','cause','[syncHangup][talking][cause]','statedesc','dialQueueProject','channelstate','transfer','destlinkedid','destuniqueid','variables','filterKey','keys','variable','addVariable','value','inspect','transfertargetlinkedid','syncBlindTransfer','transfererlinkedid','exports','util','lodash','uuid','moment','md5','ioredis','../../../config/environment','preview','actionPreview','../ami','./rpcDb','./util/util','redis','localhost','enqueue','tail','finally','sequence','voiceQueues','trunks','actions','agents','clockClearZombieChannels','syncOriginateResponse','bind','syncHangup','hanguprequest','syncHangupRequest','dialend','syncDialEnd','newexten','syncNewExten','varset','syncVarSet','attendedtransfer','syncAttendedTransfer','campaignsPreview','emit','type','outbound','answered','available','loggedIn','pTalking','sumBillable','sumDuration','total','abandoned','dialActive','dialMethod','dialOriginateCallerIdNumber','dialOriginateTimeout','dialPrefix','outboundAnswerAgiCallsDay','outboundAnswerCallsDay','outboundBlacklistCallsDay','outboundBusyCallsDay','outboundCongestionCallsDay','outboundDropCallsDayACS','outboundDropCallsDayCallersExit','outboundDropCallsDayTimeout','outboundNoSuchCallsDay','outboundOriginateFailureCallsDay','outboundReCallsDay','outboundUnknownCallsDay','outboundAbandonedCallsDay','predictiveIntervalAvgHoldtime','predictiveIntervalAvgTalktime','predictiveIntervalDroppedCallsTimeout','predictiveIntervalErlangCalls','predictiveIntervalErlangCallsDroppedCalls','predictiveIntervalHitRate','predictiveIntervalAvailable','predictiveIntervalTotalCalls','message','erlangCallToSecond','erlangAbandonmentRate','erlangBusyFactor','startPredictive','startProgressive','Trunk','name','active','Interval','stringify','format','voice:queue:%s','voice_queue:save','info','[DEBUG]\x20Emit\x20voice_queue_channel:remove\x20event','voice_queue_channel:remove','voice_queue_presence:remove','sendMessageOneNotActive','paused','logger','[CampaignPreview]\x20Campaign\x20Queue:\x20','\x20is\x20not\x20active','\x20is\x20disactive','prototype','loopCampaigns','syncCampaigns','hasOwnProperty','booked','clearZombieChannels','setMessage','dialPreviewAutoRecallMe','recallMe','clearZombieChannel','isNil','[clearZombieChannels][talking]','Queue','originated:\x20','originated','pTalking:\x20','VoiceQueueId','ListId','Action','status','channel','catch','updateOriginated','queue','dialAnswer','[clearZombieChannel]','[Dialer][checkChannel][Preview]','[action]','size','agentReadyId','length','getDiff','scheduledat','Agent','voicePause','run','then','logger2','[RecallMe]','disableContact','starttime','YYYY-MM-DD\x20HH:mm:ss','RecallInQueue','dialRecallInQueue','createBody','createCustomerHistory','[HistoryDialRecallInQueue][historyCatch]','logCustomer','[HistoryRecallClose]','createCustomerFinal','[getContactRecallMe]','IsNotLoggedIn','isActive','isTrunkReachable','TRUNK_IS_NOT_REACHABLE','ACTIVE','callProgressDetectingCustomer','totalGlobal','NoSuchNumber','buildObj','[callProgressDetectingCustomer][logNoSuch]','dialGlobalMaxRetry','cloneAction','Global','[callProgressDetectingCustomer][logNoSuchGlobal]','countnosuchnumberretry','dialNoSuchNumberMaxRetry','rescheduleContact','scheduledAt','dialNoSuchNumberRetryFrequency','activeContact','linkedid','ANSWER','responsetime','answertime','[syncHangup][talking][increment]','uniqueid','connect','acw','custom:agentConnectPreview','complete','[16]','countglobal','Answer','[callProgressDetectingCustomer][logAnswer]','[callProgressDetectingCustomer][logAnswerGlobal]','crateCustomerReportQueue','talktime','[syncHangup][talking][decrement]','custom:agentbusy','busy','[callProgressDetectingCustomer][logBusy]','[callProgressDetectingCustomer][logBusyGlobal]','countbusyretry','dialBusyMaxRetry','dialBusyRetryFrequency','unlockAgent','outboundNoAnswerCallsDay','countnoanswerretry','NoAnswer','custom:agentnoanswer'];(function(_0xcaf223,_0xd39f07){var _0x17e00d=function(_0xe2852e){while(--_0xe2852e){_0xcaf223['push'](_0xcaf223['shift']());}};_0x17e00d(++_0xd39f07);}(_0x5089,0x1bb));var _0x9508=function(_0x2a53ad,_0x234135){_0x2a53ad=_0x2a53ad-0x0;var _0x31b3b6=_0x5089[_0x2a53ad];return _0x31b3b6;};'use strict';var util=require(_0x9508('0x0'));var _=require(_0x9508('0x1'));var BPromise=require('bluebird');var uuid=require(_0x9508('0x2'));var moment=require(_0x9508('0x3'));var md5=require(_0x9508('0x4'));var Redis=require(_0x9508('0x5'));var config=require(_0x9508('0x6'));var logger=require('../../../config/logger')(_0x9508('0x7'));var loggerAction=require('../../../config/logger')(_0x9508('0x8'));var ami=require(_0x9508('0x9'));var rpcDb=require(_0x9508('0xa'));var Action=require('./action');var ut=require(_0x9508('0xb'));config[_0x9508('0xc')]=_['defaults'](config[_0x9508('0xc')],{'host':_0x9508('0xd'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x9508('0xc')]));var Sequence=function(){};Sequence['prototype'][_0x9508('0xe')]=function(_0x26cc8a){this[_0x9508('0xf')]=this[_0x9508('0xf')]?this[_0x9508('0xf')][_0x9508('0x10')](_0x26cc8a):_0x26cc8a();};function Preview(_0x4bb70e){this[_0x9508('0x11')]=new Sequence();this['campaignsPreview']=_0x4bb70e[_0x9508('0x12')];this[_0x9508('0x13')]=_0x4bb70e['trunks'];this[_0x9508('0x14')]={};this[_0x9508('0x15')]=_0x4bb70e[_0x9508('0x15')];this[_0x9508('0x16')]=0x0;ami['on']('originateresponse',this[_0x9508('0x17')][_0x9508('0x18')](this));ami['on']('hangup',this[_0x9508('0x19')]['bind'](this));ami['on'](_0x9508('0x1a'),this[_0x9508('0x1b')][_0x9508('0x18')](this));ami['on'](_0x9508('0x1c'),this[_0x9508('0x1d')][_0x9508('0x18')](this));ami['on'](_0x9508('0x1e'),this[_0x9508('0x1f')]['bind'](this));ami['on'](_0x9508('0x20'),this[_0x9508('0x21')][_0x9508('0x18')](this));ami['on'](_0x9508('0x22'),this[_0x9508('0x23')][_0x9508('0x18')](this));ami['on']('blindtransfer',this['syncBlindTransfer'][_0x9508('0x18')](this));this['loopCampaigns'](this[_0x9508('0x24')]);}function emit(_0x4e9e9f,_0x3ba927,_0x22ff69){io['to'](_0x4e9e9f)[_0x9508('0x25')](_0x3ba927,_0x22ff69);}function emitCampaignPreview(_0x1dfc6c){if(_0x1dfc6c[_0x9508('0x26')]===_0x9508('0x27')){var _0x20eb53={'id':_0x1dfc6c['id'],'name':_0x1dfc6c['name'],'strategy':_0x1dfc6c['strategy'],'answered':_0x1dfc6c[_0x9508('0x28')],'available':_0x1dfc6c[_0x9508('0x29')],'loggedIn':_0x1dfc6c[_0x9508('0x2a')],'pTalking':_0x1dfc6c[_0x9508('0x2b')],'sumBillable':_0x1dfc6c[_0x9508('0x2c')],'sumDuration':_0x1dfc6c[_0x9508('0x2d')],'sumHoldTime':_0x1dfc6c['sumHoldTime']||0x0,'talking':_0x1dfc6c['talking'],'total':_0x1dfc6c[_0x9508('0x2e')],'type':_0x1dfc6c['type'],'unmanaged':_0x1dfc6c['unmanaged'],'abandoned':_0x1dfc6c[_0x9508('0x2f')],'waiting':_0x1dfc6c['waiting'],'loggedInDb':_0x1dfc6c['loggedInDb'],'dialActive':_0x1dfc6c[_0x9508('0x30')],'dialMethod':_0x1dfc6c[_0x9508('0x31')],'dialOriginateCallerIdName':_0x1dfc6c['dialOriginateCallerIdName'],'dialOriginateCallerIdNumber':_0x1dfc6c[_0x9508('0x32')],'dialOriginateTimeout':_0x1dfc6c[_0x9508('0x33')],'dialPrefix':_0x1dfc6c[_0x9508('0x34')],'outboundAnswerAgiCallsDay':_0x1dfc6c[_0x9508('0x35')],'outboundAnswerCallsDay':_0x1dfc6c[_0x9508('0x36')],'outboundBlacklistCallsDay':_0x1dfc6c[_0x9508('0x37')],'outboundBusyCallsDay':_0x1dfc6c[_0x9508('0x38')],'outboundCongestionCallsDay':_0x1dfc6c[_0x9508('0x39')],'outboundDropCallsDayACS':_0x1dfc6c[_0x9508('0x3a')],'outboundDropCallsDayCallersExit':_0x1dfc6c[_0x9508('0x3b')],'outboundDropCallsDayTimeout':_0x1dfc6c[_0x9508('0x3c')],'outboundNoAnswerCallsDay':_0x1dfc6c['outboundNoAnswerCallsDay'],'outboundNoSuchCallsDay':_0x1dfc6c[_0x9508('0x3d')],'outboundOriginateFailureCallsDay':_0x1dfc6c[_0x9508('0x3e')],'outboundReCallsDay':_0x1dfc6c[_0x9508('0x3f')],'outboundRejectCallsDay':_0x1dfc6c['outboundRejectCallsDay'],'outboundUnknownCallsDay':_0x1dfc6c[_0x9508('0x40')],'outboundAbandonedCallsDay':_0x1dfc6c[_0x9508('0x41')],'predictiveIntervalAnsweredCalls':_0x1dfc6c['predictiveIntervalAnsweredCalls'],'predictiveIntervalAvgHoldtime':_0x1dfc6c[_0x9508('0x42')],'predictiveIntervalAvgTalktime':_0x1dfc6c[_0x9508('0x43')],'predictiveIntervalDroppedCallsCallersExit':_0x1dfc6c['predictiveIntervalDroppedCallsCallersExit'],'predictiveIntervalDroppedCallsTimeout':_0x1dfc6c[_0x9508('0x44')],'predictiveIntervalErlangCalls':_0x1dfc6c[_0x9508('0x45')],'predictiveIntervalErlangCallsDroppedCalls':_0x1dfc6c[_0x9508('0x46')],'predictiveIntervalHitRate':_0x1dfc6c[_0x9508('0x47')],'predictiveIntervalMultiplicativeFactor':_0x1dfc6c['predictiveIntervalMultiplicativeFactor'],'predictiveIntervalPauses':_0x1dfc6c['predictiveIntervalPauses'],'predictiveIntervalAvailable':_0x1dfc6c[_0x9508('0x48')],'predictiveIntervalTotalCalls':_0x1dfc6c[_0x9508('0x49')],'message':_0x1dfc6c[_0x9508('0x4a')],'originated':_0x1dfc6c['originated'],'erlangCalls':_0x1dfc6c['erlangCalls'],'erlangCallToSecond':_0x1dfc6c[_0x9508('0x4b')],'erlangAbandonmentRate':_0x1dfc6c[_0x9508('0x4c')],'erlangBusyFactor':_0x1dfc6c[_0x9508('0x4d')],'startPredictive':_0x1dfc6c[_0x9508('0x4e')],'startProgressive':_0x1dfc6c[_0x9508('0x4f')]};if(_0x1dfc6c[_0x9508('0x50')]){_0x20eb53[_0x9508('0x50')]={'id':_0x1dfc6c[_0x9508('0x50')]['id'],'name':_0x1dfc6c[_0x9508('0x50')][_0x9508('0x51')],'active':_0x1dfc6c['Trunk'][_0x9508('0x52')],'callerid':_0x1dfc6c[_0x9508('0x50')]['callerid']};}if(_0x1dfc6c[_0x9508('0x53')]){_0x20eb53[_0x9508('0x53')]={'id':_0x1dfc6c[_0x9508('0x53')]['id'],'name':_0x1dfc6c[_0x9508('0x53')][_0x9508('0x51')]};}var _0x31ab9c=md5(JSON[_0x9508('0x54')](_0x20eb53));if(_0x1dfc6c[_0x9508('0x4')]!==_0x31ab9c){_0x1dfc6c[_0x9508('0x4')]=_0x31ab9c;emit(util[_0x9508('0x55')](_0x9508('0x56'),_0x20eb53['name']),_0x9508('0x57'),_0x20eb53);}}}function emitVoiceQueueChannelRemove(_0x5b690e){logger[_0x9508('0x58')](_0x9508('0x59'),JSON[_0x9508('0x54')](_0x5b690e));emit(util['format']('voice:queue:%s',_0x5b690e[_0x9508('0x51')]),_0x9508('0x5a'),_0x5b690e);io[_0x9508('0x25')](_0x9508('0x5b'),_0x5b690e);}function notSendMessagesQueue(_0x4eb600){if(_0x4eb600[_0x9508('0x5c')]){if(_0x4eb600['originated']===0x0&&_0x4eb600[_0x9508('0x2b')]===0x0){_0x4eb600[_0x9508('0x5c')]=![];_0x4eb600['available']=0x0;_0x4eb600[_0x9508('0x5d')]=0x0;_0x4eb600[_0x9508('0x4a')]='NOT_ACTIVE';ut[_0x9508('0x5e')](_0x9508('0x5f'),_0x4eb600[_0x9508('0x51')]+_0x9508('0x60'));}else{_0x4eb600['message']='IS_DISACTIVED';ut[_0x9508('0x5e')]('[CampaignPreview]\x20Campaign\x20Queue:\x20',_0x4eb600[_0x9508('0x51')]+_0x9508('0x61'));}emitCampaignPreview(_0x4eb600);}}Preview[_0x9508('0x62')][_0x9508('0x63')]=function(){var _0x4a4556=this;setInterval(function(){_0x4a4556['syncCampaigns']();},0x7cf);};Preview['prototype'][_0x9508('0x64')]=function(){var _0x5e7fe3=this[_0x9508('0x24')];this['clockClearZombieChannels']+=0x1;for(var _0x1429a1 in _0x5e7fe3){if(_0x5e7fe3[_0x9508('0x65')](_0x1429a1)&&(_0x5e7fe3[_0x1429a1][_0x9508('0x31')]===_0x9508('0x7')||_0x5e7fe3[_0x1429a1]['dialMethod']===_0x9508('0x66'))&&_0x5e7fe3[_0x1429a1][_0x9508('0x26')]===_0x9508('0x27')){if(this['clockClearZombieChannels']>0x7){this[_0x9508('0x16')]=0x0;this[_0x9508('0x67')]();}}if(_0x5e7fe3['hasOwnProperty'](_0x1429a1)&&_0x5e7fe3[_0x1429a1][_0x9508('0x31')]==='preview'&&_0x5e7fe3[_0x1429a1][_0x9508('0x26')]==='outbound'){if(_0x5e7fe3[_0x1429a1]['dialActive']){this[_0x9508('0x68')](_0x5e7fe3[_0x1429a1]);if(_0x5e7fe3[_0x1429a1][_0x9508('0x69')])this[_0x9508('0x6a')](_0x5e7fe3[_0x1429a1]);}else{notSendMessagesQueue(_0x5e7fe3[_0x1429a1]);}}}};Preview[_0x9508('0x62')][_0x9508('0x6b')]=function(_0x169daf){var _0x5bdd1f=this;this[_0x9508('0x11')][_0x9508('0xe')](function(){if(!_[_0x9508('0x6c')](_0x5bdd1f['actions'][_0x169daf])){loggerAction[_0x9508('0x58')](_0x9508('0x6d'),_0x169daf,_0x9508('0x6e'),_0x5bdd1f[_0x9508('0x14')][_0x169daf]['queue'],_0x9508('0x6f'),JSON['stringify'](_0x5bdd1f[_0x9508('0x24')][_0x5bdd1f[_0x9508('0x14')][_0x169daf]['queue']][_0x9508('0x70')]),_0x9508('0x71'),JSON['stringify'](_0x5bdd1f[_0x9508('0x24')][_0x5bdd1f[_0x9508('0x14')][_0x169daf]['queue']][_0x9508('0x2b')]),JSON['stringify'](_0x5bdd1f[_0x9508('0x14')][_0x169daf]['dialAnswer']),JSON[_0x9508('0x54')](_['pick'](_0x5bdd1f['actions'][_0x169daf],['contactId','UserId',_0x9508('0x72'),_0x9508('0x73')])));return ami[_0x9508('0x74')]({'action':_0x9508('0x75'),'channel':_0x5bdd1f[_0x9508('0x14')][_0x169daf][_0x9508('0x76')]})[_0x9508('0x77')](function(_0x1e58c2){if(_0x1e58c2[_0x9508('0x4a')]==='No\x20such\x20channel'){setTimeout(function(){if(_0x5bdd1f[_0x9508('0x14')][_0x169daf]){ut[_0x9508('0x78')](_0x5bdd1f[_0x9508('0x24')][_0x5bdd1f[_0x9508('0x14')][_0x169daf][_0x9508('0x79')]],'[clearZombieChannel]');if(_0x5bdd1f['actions'][_0x169daf][_0x9508('0x7a')]===!![]){ut['decrementTalkink'](_0x5bdd1f[_0x9508('0x24')][_0x5bdd1f[_0x9508('0x14')][_0x169daf]['queue']],_0x9508('0x7b'));ut['loggerError']('[Dialer][checkChannel][pTalking][Preview]'+_0x169daf,_0x5bdd1f[_0x9508('0x14')][_0x169daf][_0x9508('0x79')]);}ut['loggerError'](_0x9508('0x7c')+_0x169daf,_0x5bdd1f[_0x9508('0x14')][_0x169daf][_0x9508('0x79')]);delete _0x5bdd1f[_0x9508('0x14')][_0x169daf];}},0x2328);}});}});};Preview[_0x9508('0x62')][_0x9508('0x67')]=function(){var _0xf438ab=this;loggerAction[_0x9508('0x58')](_0x9508('0x7d'),_[_0x9508('0x7e')](this[_0x9508('0x14')]));for(var _0x2dc921 in this[_0x9508('0x14')]){if(_0xf438ab[_0x9508('0x14')]['hasOwnProperty'](_0x2dc921)){_0xf438ab[_0x9508('0x6b')](_0x2dc921);}}};Preview[_0x9508('0x62')]['recallMe']=function(_0x2573d1){var _0x5e7384=this;rpcDb['getContactRecallMe'](_0x2573d1['id'],ut[_0x9508('0x7f')](this[_0x9508('0x15')]))['then'](function(_0x199c2e){if(!_[_0x9508('0x6c')](_0x199c2e)){for(var _0x553e6b=0x0;_0x553e6b<_0x199c2e[_0x9508('0x80')];_0x553e6b+=0x1){if(ut[_0x9508('0x81')](_0x199c2e[_0x553e6b][_0x9508('0x82')])<_0x2573d1['dialRecallMeTimeout']*0x3c){if(_0x199c2e[_0x553e6b][_0x9508('0x83')]&&!_0x199c2e[_0x553e6b][_0x9508('0x83')][_0x9508('0x84')]){_0x5e7384[_0x9508('0x85')](_0x199c2e[_0x553e6b]['id'])[_0x9508('0x86')](ut[_0x9508('0x87')]('[RecallMe]'))[_0x9508('0x77')](ut[_0x9508('0x87')](_0x9508('0x88')));}else{rpcDb[_0x9508('0x89')](_0x199c2e[_0x553e6b]['id']);}}else{var _0x5bab99=new Action(_0x199c2e[_0x553e6b],_0x2573d1);_0x5bab99[_0x9508('0x8a')]=moment()['format'](_0x9508('0x8b'));_0x2573d1[_0x9508('0x3f')]+=0x1;ut['logCustomer'](_0x5bab99,0x17,_0x9508('0x8c'));if(_0x2573d1[_0x9508('0x8d')]){rpcDb['rescheduleContactInQueue'](ut[_0x9508('0x8e')](_0x199c2e[_0x553e6b]));rpcDb[_0x9508('0x8f')](_0x5bab99,_0x9508('0x90'));}else{ut[_0x9508('0x91')](_0x5bab99,0x16,'RecallFailedTimeout');rpcDb[_0x9508('0x8f')](_0x5bab99,_0x9508('0x92'));rpcDb[_0x9508('0x93')](_0x5bab99,_0x9508('0x92'));}}}}})[_0x9508('0x77')](ut[_0x9508('0x87')](_0x9508('0x94')));};Preview[_0x9508('0x62')]['setMessage']=function(_0x1476e1){_0x1476e1[_0x9508('0x5c')]=!![];if(ut[_0x9508('0x95')](_0x1476e1['loggedIn'])){_0x1476e1[_0x9508('0x4a')]='AGENTS_NOT_LOGGED';}else if(!ut[_0x9508('0x96')](_0x1476e1['dialActive'])){_0x1476e1['message']='NOT_ACTIVE';}else if(!this[_0x9508('0x97')](_0x1476e1[_0x9508('0x50')])){if(!this[_0x9508('0x97')](_0x1476e1['TrunkBackup'])){_0x1476e1[_0x9508('0x4a')]=_0x9508('0x98');}else{_0x1476e1[_0x9508('0x4a')]=_0x9508('0x99');}}else{_0x1476e1[_0x9508('0x4a')]='ACTIVE';}emitCampaignPreview(_0x1476e1);};Preview['prototype'][_0x9508('0x9a')]=function(_0x374fe0,_0x1d3e4d,_0x202467){var _0x306709=this;var _0x3ec6b7=this[_0x9508('0x14')][_0x1d3e4d];var _0x2d87e8=this[_0x9508('0x24')][_0x3ec6b7[_0x9508('0x79')]];var _0x299b4f;if(_0x2d87e8){switch(_0x202467){case'1':_0x2d87e8[_0x9508('0x3d')]+=0x1;_0x3ec6b7['countnosuchnumberretry']+=0x1;_0x3ec6b7['countglobal']=ut[_0x9508('0x9b')](_0x3ec6b7);ut['logCustomer'](_0x3ec6b7,0x0,_0x9508('0x9c'));ami['emit']('custom:agentnosuchnumber',ut[_0x9508('0x9d')](_0x3ec6b7,'nosuchnumber'));rpcDb['createCustomerHistory'](_0x3ec6b7,_0x9508('0x9e'));if(ut[_0x9508('0x9b')](_0x3ec6b7)>=_0x2d87e8[_0x9508('0x9f')]){_0x299b4f=ut[_0x9508('0xa0')](_0x3ec6b7,0xf,_0x9508('0xa1'));rpcDb[_0x9508('0x93')](_0x299b4f,_0x9508('0xa2'));}else{if(_0x3ec6b7[_0x9508('0xa3')]>=_0x2d87e8[_0x9508('0xa4')]){rpcDb[_0x9508('0x93')](_0x3ec6b7,_0x9508('0xa2'));}else{rpcDb[_0x9508('0xa5')](ut[_0x9508('0xa6')](_0x3ec6b7,_0x9508('0xa3'),_0x2d87e8[_0x9508('0xa7')]),_0x3ec6b7['unlockAgent'],_0x3ec6b7[_0x9508('0xa8')]);}}delete this['actions'][_0x374fe0[_0x9508('0xa9')]];break;case _0x9508('0xaa'):var _0x42ab8e=moment()[_0x9508('0x55')](_0x9508('0x8b'));_0x3ec6b7[_0x9508('0xab')]=_0x42ab8e;_0x3ec6b7[_0x9508('0xac')]=_0x42ab8e;_0x3ec6b7[_0x9508('0x7a')]=!![];_0x2d87e8[_0x9508('0x2b')]+=0x1;logger[_0x9508('0x58')](_0x9508('0xad'),_0x3ec6b7[_0x9508('0xae')],'\x20Queue',_0x2d87e8[_0x9508('0x51')],_0x9508('0x71'),_0x2d87e8[_0x9508('0x2b')]);ami['emit']('custom:agentconnect',ut[_0x9508('0x9d')](_0x3ec6b7,_0x9508('0xaf'),this[_0x9508('0x24')][_0x3ec6b7[_0x9508('0x79')]]));if(_0x2d87e8[_0x9508('0xb0')]){ami[_0x9508('0x25')](_0x9508('0xb1'),ut['buildAcw'](_0x3ec6b7));}break;case'16':ami[_0x9508('0x25')]('custom:agentcomplete',ut['buildObj'](_0x3ec6b7,_0x9508('0xb2'),this['campaignsPreview'][_0x3ec6b7[_0x9508('0x79')]]));emitVoiceQueueChannelRemove(ut[_0x9508('0x9d')](_0x3ec6b7,'complete'));_0x2d87e8[_0x9508('0x36')]+=0x1;_0x2d87e8['total']+=0x1;_0x2d87e8[_0x9508('0x28')]+=0x1;ut['decrementTalkink'](_0x2d87e8,_0x9508('0xb3'));_0x3ec6b7[_0x9508('0xb4')]=ut[_0x9508('0x9b')](_0x3ec6b7);ut[_0x9508('0x91')](_0x3ec6b7,0x4,_0x9508('0xb5'));rpcDb[_0x9508('0x8f')](_0x3ec6b7,_0x9508('0xb6'));rpcDb[_0x9508('0x93')](_0x3ec6b7,_0x9508('0xb7'));rpcDb[_0x9508('0xb8')](_0x3ec6b7);_0x2d87e8['sumDuration']+=_0x3ec6b7[_0x9508('0xb9')];_0x2d87e8[_0x9508('0x2c')]+=_0x3ec6b7[_0x9508('0xb9')];logger[_0x9508('0x58')](_0x9508('0xba'),_0x3ec6b7[_0x9508('0xae')],'\x20Queue',_0x2d87e8['name'],_0x9508('0x71'),_0x2d87e8[_0x9508('0x2b')]);delete this[_0x9508('0x14')][_0x374fe0['linkedid']];break;case'BUSY':_0x2d87e8[_0x9508('0x38')]+=0x1;_0x3ec6b7['countbusyretry']+=0x1;_0x3ec6b7[_0x9508('0xb4')]=ut[_0x9508('0x9b')](_0x3ec6b7);ut[_0x9508('0x91')](_0x3ec6b7,0x5,'Busy');ami[_0x9508('0x25')](_0x9508('0xbb'),ut[_0x9508('0x9d')](_0x3ec6b7,_0x9508('0xbc')));rpcDb[_0x9508('0x8f')](_0x3ec6b7,_0x9508('0xbd'));if(ut['totalGlobal'](_0x3ec6b7)>=_0x2d87e8['dialGlobalMaxRetry']){_0x299b4f=ut[_0x9508('0xa0')](_0x3ec6b7,0xf,_0x9508('0xa1'));rpcDb['createCustomerFinal'](_0x299b4f,_0x9508('0xbe'));}else{if(_0x3ec6b7[_0x9508('0xbf')]>=_0x2d87e8[_0x9508('0xc0')]){rpcDb['createCustomerFinal'](_0x3ec6b7,'[callProgressDetectingCustomer][logBusy]');}else{rpcDb[_0x9508('0xa5')](ut['scheduledAt'](_0x3ec6b7,_0x9508('0xbf'),_0x2d87e8[_0x9508('0xc1')]),_0x3ec6b7[_0x9508('0xc2')],_0x3ec6b7[_0x9508('0xa8')]);}}break;case'NOANSWER':_0x2d87e8[_0x9508('0xc3')]+=0x1;_0x3ec6b7[_0x9508('0xc4')]+=0x1;_0x3ec6b7['countglobal']=ut[_0x9508('0x9b')](_0x3ec6b7);ut[_0x9508('0x91')](_0x3ec6b7,0x3,_0x9508('0xc5'));ami['emit'](_0x9508('0xc6'),ut['buildObj'](_0x3ec6b7,_0x9508('0xc7')));rpcDb[_0x9508('0x8f')](_0x3ec6b7,_0x9508('0xc8'));if(ut[_0x9508('0x9b')](_0x3ec6b7)>=_0x2d87e8[_0x9508('0x9f')]){_0x299b4f=ut[_0x9508('0xa0')](_0x3ec6b7,0xf,_0x9508('0xa1'));rpcDb[_0x9508('0x93')](_0x299b4f,_0x9508('0xc9'));}else{if(_0x3ec6b7[_0x9508('0xc4')]>=_0x2d87e8[_0x9508('0xca')]){rpcDb[_0x9508('0x93')](_0x3ec6b7,_0x9508('0xc8'));}else{rpcDb[_0x9508('0xa5')](ut[_0x9508('0xa6')](_0x3ec6b7,_0x9508('0xc4'),_0x2d87e8['dialNoAnswerRetryFrequency']),_0x3ec6b7[_0x9508('0xc2')],_0x3ec6b7['activeContact']);}}break;case'CONGESTION':_0x2d87e8[_0x9508('0x39')]+=0x1;_0x3ec6b7[_0x9508('0xcb')]+=0x1;_0x3ec6b7[_0x9508('0xb4')]=ut['totalGlobal'](_0x3ec6b7);ut[_0x9508('0x91')](_0x3ec6b7,0x8,_0x9508('0xcc'));ami[_0x9508('0x25')](_0x9508('0xcd'),ut[_0x9508('0x9d')](_0x3ec6b7,_0x9508('0xce')));rpcDb[_0x9508('0x8f')](_0x3ec6b7,'[callProgressDetectingCustomer][logCongestion]');if(ut[_0x9508('0x9b')](_0x3ec6b7)>=_0x2d87e8['dialGlobalMaxRetry']){_0x299b4f=ut[_0x9508('0xa0')](_0x3ec6b7,0xf,_0x9508('0xa1'));rpcDb[_0x9508('0x93')](_0x299b4f,_0x9508('0xcf'));}else{if(_0x3ec6b7[_0x9508('0xcb')]>=_0x2d87e8[_0x9508('0xd0')]){rpcDb[_0x9508('0x93')](_0x3ec6b7,_0x9508('0xd1'));}else{rpcDb[_0x9508('0xa5')](ut['scheduledAt'](_0x3ec6b7,_0x9508('0xcb'),_0x2d87e8['dialBusyRetryFrequency']),_0x3ec6b7['unlockAgent'],_0x3ec6b7[_0x9508('0xa8')]);}}break;case _0x9508('0xd2'):_0x2d87e8[_0x9508('0xd3')]+=0x1;_0x3ec6b7[_0x9508('0xd4')]+=0x1;_0x3ec6b7['countglobal']=ut['totalGlobal'](_0x3ec6b7);ut[_0x9508('0x91')](_0x3ec6b7,0x14,_0x9508('0xd5'));ami[_0x9508('0x25')]('custom:agentreject',ut[_0x9508('0x9d')](_0x3ec6b7,'agentreject'));rpcDb['createCustomerHistory'](_0x3ec6b7,_0x9508('0xd6'));if(ut['totalGlobal'](_0x3ec6b7)>=_0x2d87e8[_0x9508('0x9f')]){_0x299b4f=ut[_0x9508('0xa0')](_0x3ec6b7,0x14,_0x9508('0xd5'));rpcDb[_0x9508('0x93')](_0x299b4f,_0x9508('0xd7'));}else{if(_0x3ec6b7[_0x9508('0xd4')]>=_0x2d87e8['dialAgentRejectMaxRetry']){rpcDb[_0x9508('0x93')](_0x3ec6b7,_0x9508('0xd7'));}else{rpcDb['rescheduleContact'](ut[_0x9508('0xa6')](_0x3ec6b7,'countagentrejectretry',_0x2d87e8['dialAgentRejectRetryFrequency']),_0x3ec6b7[_0x9508('0xc2')],_0x3ec6b7[_0x9508('0xa8')]);}}break;case _0x9508('0xd8'):_0x2d87e8[_0x9508('0x41')]+=0x1;_0x3ec6b7['countabandonedretry']+=0x1;_0x3ec6b7[_0x9508('0xb4')]=ut[_0x9508('0x9b')](_0x3ec6b7);ut[_0x9508('0x91')](_0x3ec6b7,0xb,_0x9508('0xd9'));rpcDb['createCustomerHistory'](_0x3ec6b7,'[callProgressDetectingCustomer][logAbandoned]');if(ut['totalGlobal'](_0x3ec6b7)>=_0x2d87e8[_0x9508('0x9f')]){_0x299b4f=ut[_0x9508('0xa0')](_0x3ec6b7,0xf,_0x9508('0xa1'));rpcDb[_0x9508('0x93')](_0x299b4f,_0x9508('0xda'));}else{if(_0x3ec6b7[_0x9508('0xdb')]>=_0x2d87e8[_0x9508('0xdc')]){rpcDb[_0x9508('0x93')](_0x3ec6b7,_0x9508('0xda'));}else{rpcDb[_0x9508('0xa5')](ut[_0x9508('0xa6')](_0x3ec6b7,_0x9508('0xdd'),_0x2d87e8[_0x9508('0xde')]),_0x3ec6b7[_0x9508('0xc2')],_0x3ec6b7['activeContact']);}}break;case'18':_0x2d87e8[_0x9508('0x40')]+=0x1;_0x3ec6b7['countmachineretry']+=0x1;_0x3ec6b7[_0x9508('0xb4')]=ut['totalGlobal'](_0x3ec6b7);ut[_0x9508('0x91')](_0x3ec6b7,0x12,_0x374fe0[_0x9508('0xdf')]||_0x374fe0[_0x9508('0xe0')]);ami[_0x9508('0x25')](_0x9508('0xe1'),ut[_0x9508('0x9d')](_0x3ec6b7,_0x9508('0xe2')));rpcDb[_0x9508('0x8f')](_0x3ec6b7,_0x9508('0xe3'));if(ut[_0x9508('0x9b')](_0x3ec6b7)>=_0x2d87e8[_0x9508('0x9f')]){_0x299b4f=ut['cloneAction'](_0x3ec6b7,0xf,_0x9508('0xa1'));rpcDb[_0x9508('0x93')](_0x299b4f,'[callProgressDetectingCustomer][hangupInAMD]');}else{rpcDb[_0x9508('0x93')](_0x3ec6b7,'[callProgressDetectingCustomer][hangupInAMD]');}delete this[_0x9508('0x14')][_0x374fe0[_0x9508('0xa9')]];break;case'19':_0x2d87e8[_0x9508('0x40')]+=0x1;_0x3ec6b7[_0x9508('0xb4')]=ut[_0x9508('0x9b')](_0x3ec6b7);ut[_0x9508('0x91')](_0x3ec6b7,0x13,_0x374fe0['cause-txt']||_0x374fe0[_0x9508('0xe0')]);ami['emit'](_0x9508('0xe1'),ut['buildObj'](_0x3ec6b7,_0x9508('0xe2')));rpcDb[_0x9508('0x8f')](_0x3ec6b7,_0x9508('0xe4'));if(ut[_0x9508('0x9b')](_0x3ec6b7)>=_0x2d87e8[_0x9508('0x9f')]){_0x299b4f=ut[_0x9508('0xa0')](_0x3ec6b7,0xf,_0x9508('0xa1'));rpcDb[_0x9508('0x93')](_0x299b4f,_0x9508('0xe4'));}else{rpcDb[_0x9508('0x93')](_0x3ec6b7,_0x9508('0xe4'));}delete this[_0x9508('0x14')][_0x374fe0[_0x9508('0xa9')]];break;default:if(_0x3ec6b7['dialAnswer']){ut['decrementTalkink'](_0x2d87e8,_0x9508('0xe5'));ut['loggerError']('[Dialer][decrementTalkink][no\x20Hangup][Preview]'+_0x2d87e8['name'],_0x374fe0);}_0x2d87e8[_0x9508('0x40')]+=0x1;_0x3ec6b7[_0x9508('0xb4')]=ut['totalGlobal'](_0x3ec6b7);ut['logCustomer'](_0x3ec6b7,0xc,_0x374fe0[_0x9508('0xdf')]||_0x374fe0[_0x9508('0xe0')]);rpcDb['createCustomerHistory'](_0x3ec6b7,_0x9508('0xe6'));if(ut['totalGlobal'](_0x3ec6b7)>=_0x2d87e8[_0x9508('0x9f')]){_0x299b4f=ut[_0x9508('0xa0')](_0x3ec6b7,0xf,'Global');rpcDb[_0x9508('0x93')](_0x299b4f,'[callProgressDetectingCustomer][logUnknownGlobal]');}else{rpcDb[_0x9508('0x93')](_0x3ec6b7,_0x9508('0xe7'));}delete this[_0x9508('0x14')][_0x374fe0[_0x9508('0xa9')]];}if(!(_0x3ec6b7['dialAnswer']&&_0x202467==='16')){ut[_0x9508('0x78')](_0x2d87e8,'[callProgressDetectingCustomer]');logger[_0x9508('0x58')](_0x9508('0xe8'),_0x3ec6b7[_0x9508('0xae')],_0x9508('0xe9'),_0x2d87e8[_0x9508('0x51')],_0x9508('0x6f'),_0x2d87e8[_0x9508('0x70')]);}if(_0x202467!==_0x9508('0xaa')){delete this[_0x9508('0x14')][_0x374fe0[_0x9508('0xa9')]];delete this['actions'][_0x374fe0['destlinkedid']];}}};Preview[_0x9508('0x62')][_0x9508('0xea')]=function(_0x2310b0,_0x4ce085,_0x3cb70d){if(_[_0x9508('0xeb')](_0x4ce085)&&'object'!==typeof _0x4ce085){return;}if(_[_0x9508('0xeb')](_0x3cb70d)&&_0x9508('0xec')!==typeof _0x3cb70d){return;}switch(_0x3cb70d[_0x9508('0xed')]){case'0':ut[_0x9508('0xee')](_0x2310b0,0x0,'NoSuchNumber');rpcDb[_0x9508('0xef')](_0x2310b0,'[callProgressDetectingAgent][logNoSuch]');break;case'3':ut['logAgent'](_0x2310b0,0x3,'NoAnswer');rpcDb[_0x9508('0xef')](_0x2310b0,_0x9508('0xf0'));break;case'5':ut[_0x9508('0xee')](_0x2310b0,0x5,_0x9508('0xf1'));rpcDb[_0x9508('0xef')](_0x2310b0,_0x9508('0xf2'));break;case'8':ut['logAgent'](_0x2310b0,0x8,_0x9508('0xcc'));rpcDb[_0x9508('0xef')](_0x2310b0,_0x9508('0xf3'));break;case'22':ut[_0x9508('0xee')](_0x2310b0,0x16,_0x9508('0xf4'));rpcDb[_0x9508('0xef')](_0x2310b0,'[callProgressDetectingAgent][logAnswerAGI]');break;default:ut[_0x9508('0xee')](_0x2310b0,0xc,_0x3cb70d['reason']);rpcDb[_0x9508('0xef')](_0x2310b0,_0x9508('0xf3'));}ut[_0x9508('0x78')](_0x4ce085,'[callProgressDetectingAgent]');logger[_0x9508('0x58')]('[originated][decrement][callProgressDetectingAgent]',_0x2310b0['uniqueid'],_0x9508('0xe9'),_0x4ce085[_0x9508('0x51')],'originated:\x20',_0x4ce085[_0x9508('0x70')]);delete this[_0x9508('0x14')][_0x2310b0[_0x9508('0xae')]];};Preview[_0x9508('0x62')][_0x9508('0xf5')]=function(_0xb0a585,_0x45fe21,_0x119c3a,_0x11bb6c,_0x9376a5){var _0x29c0f1=this;return new BPromise(function(_0x454d43,_0x202f5f){if(_[_0x9508('0x6c')](_0x45fe21)||_['isNil'](_0x45fe21[_0x9508('0xf6')])||_[_0x9508('0x6c')](_0x45fe21[_0x9508('0xf6')][_0x9508('0xf7')])||_['isNil'](_0x45fe21[_0x9508('0x72')])){_0x202f5f(ut[_0x9508('0x4a')](_0x9508('0xf8'),_0x11bb6c,_0x9376a5));return;}var _0x3a8ae7=uuid['v4']();var _0x171225=_0x29c0f1[_0x9508('0x24')][_0x45fe21['Queue'][_0x9508('0x51')]];var _0x131bea=_0x119c3a?_0x29c0f1[_0x9508('0x15')][_0x119c3a]['id']:undefined;_0x29c0f1[_0x9508('0x14')][_0x3a8ae7]=new Action(_0x45fe21,_0x171225,_0x3a8ae7,_0x119c3a,_0x131bea);var _0x1e7a63=_0x29c0f1['actions'][_0x3a8ae7];_0x1e7a63['unlockAgent']=_0x11bb6c;_0x1e7a63[_0x9508('0xa8')]=_0x9376a5;_0x1e7a63[_0x9508('0xf9')]=_0x119c3a;if(_[_0x9508('0xfa')](_0xb0a585)){_0x29c0f1[_0x9508('0xfb')](_0x1e7a63,_0x171225,_0x45fe21,_0x119c3a)[_0x9508('0x86')](function(_0x4e74cd){logger[_0x9508('0x58')]('[Preview][execCall][success]',_0x9508('0xfc')+_0x1e7a63['queue']+_0x9508('0xfd')+_0x1e7a63['idContact'],JSON[_0x9508('0x54')](_0x4e74cd));ami[_0x9508('0x25')](_0x9508('0xfe'),ut[_0x9508('0x9d')](_0x1e7a63,_0x9508('0xff'),_0x29c0f1[_0x9508('0x24')][_0x1e7a63[_0x9508('0x79')]]));_0x454d43(ut['message'](_0x9508('0x100')));})[_0x9508('0x77')](function(_0x575aaf){ut[_0x9508('0x5e')](_0x9508('0x101'),_0x575aaf);_0x202f5f(ut[_0x9508('0x4a')]('Call\x20failed',_0x11bb6c,_0x9376a5));});}else{_0x171225['outboundBlacklistCallsDay']+=0x1;ut[_0x9508('0x102')](_0x1e7a63);rpcDb[_0x9508('0x103')](_0x1e7a63,_0x9508('0x104'));delete _0x29c0f1['actions'][_0x3a8ae7];_0x202f5f(ut['message'](_0x9508('0x105'),_0x11bb6c,_0x9376a5));}});};Preview[_0x9508('0x62')][_0x9508('0x97')]=function(_0x3ef7e3){return!_[_0x9508('0x6c')](_0x3ef7e3)&&!_[_0x9508('0x6c')](_0x3ef7e3[_0x9508('0x51')])&&!_[_0x9508('0x6c')](_0x3ef7e3[_0x9508('0x52')])&&_0x3ef7e3[_0x9508('0x52')]&&!_[_0x9508('0x6c')](this[_0x9508('0x13')][util[_0x9508('0x55')]('SIP/%s',_0x3ef7e3[_0x9508('0x51')])])&&!_[_0x9508('0x6c')](this['trunks'][util[_0x9508('0x55')](_0x9508('0x106'),_0x3ef7e3[_0x9508('0x51')])][_0x9508('0x75')])&&(this['trunks'][util[_0x9508('0x55')](_0x9508('0x106'),_0x3ef7e3['name'])][_0x9508('0x75')]==='reachable'||this[_0x9508('0x13')][util['format'](_0x9508('0x106'),_0x3ef7e3[_0x9508('0x51')])][_0x9508('0x75')]===_0x9508('0x107'));};Preview[_0x9508('0x62')][_0x9508('0x85')]=function(_0x1c17a7,_0x43ea8c){var _0x31b11e=this;return new BPromise(function(_0x2cb8a8,_0x3dc94a){_0x31b11e[_0x9508('0x108')](_0x1c17a7,_0x43ea8c)['then'](function(_0x2eb679){_0x2cb8a8(_[_0x9508('0x109')](_0x2eb679,[_0x9508('0x4a')]));})['catch'](function(_0x4941b4){if(_0x4941b4[_0x9508('0x10a')]){rpcDb[_0x9508('0x10b')](_0x1c17a7);}if(_0x4941b4[_0x9508('0x52')]){rpcDb[_0x9508('0x89')](_0x1c17a7);}_0x3dc94a(_['pick'](_0x4941b4,[_0x9508('0x4a')]));});});};Preview[_0x9508('0x62')][_0x9508('0x108')]=function(_0x5bd667,_0x5a976c){var _0x1941c3=this;return new BPromise(function(_0x120d28,_0x583370){var _0x35959d,_0x443113;rpcDb[_0x9508('0x10c')](_0x5bd667)['then'](function(_0xb39882){if(!_[_0x9508('0x6c')](_0xb39882[0x0])){_0x443113=_0xb39882[0x0][_0x9508('0x10d')]?![]:!![];_0x35959d=_0xb39882[0x0][_0x9508('0x10d')]?!![]:![];_0x35959d=_0x5a976c?!![]:_0x35959d;}var _0x4f4658=_0x1941c3['validateContact'](_0xb39882);if(_0x4f4658['isValid']){rpcDb['checkIsBlackList'](_[_0x9508('0x109')](_0xb39882[0x0],['VoiceQueueId',_0x9508('0x10e')]))[_0x9508('0x86')](function(_0x117566){_0x1941c3[_0x9508('0xf5')](_0x117566,_0xb39882[0x0],_0x5a976c,_0x443113,_0x35959d)[_0x9508('0x86')](function(_0x2b9482){_0x120d28(_0x2b9482);})['catch'](function(_0x1dc938){_0x583370(_0x1dc938);});})['catch'](function(_0x361fd9){ut[_0x9508('0x5e')](_0x9508('0x10f'),_0x361fd9);_0x583370(ut['message']('Call\x20unsuccessful',_0x443113,_0x35959d));});}else{_0x583370(ut[_0x9508('0x4a')](_0x4f4658[_0x9508('0x4a')],_0x443113,_0x35959d));}})['catch'](function(_0x4c6bc2){ut[_0x9508('0x5e')](_0x9508('0x110'),_0x4c6bc2);_0x583370(ut[_0x9508('0x4a')](_0x9508('0x111'),![],!![]));});});};Preview[_0x9508('0x62')]['validateContact']=function(_0x1fb57c){if(_[_0x9508('0x6c')](_0x1fb57c)||_[_0x9508('0xfa')](_0x1fb57c)||!_[_0x9508('0x6c')](_0x1fb57c[0x0]['Agent'])&&_[_0x9508('0x6c')](_0x1fb57c[0x0]['Agent'][_0x9508('0x51')])){ut[_0x9508('0x5e')]('[Preview][validateContact][Empty\x20Contact]',_0x1fb57c);return{'isValid':![],'message':_0x9508('0x112')};}var _0x1e0ff1=this[_0x9508('0x24')][_0x1fb57c[0x0][_0x9508('0x6e')][_0x9508('0x51')]];_0x1e0ff1[_0x9508('0x4a')]=_0x9508('0x99');if(_[_0x9508('0x6c')](_0x1e0ff1)){ut[_0x9508('0x5e')]('[Preview][validateContact][Empty\x20Campaign]',_0x1e0ff1);return{'isValid':![],'message':'Empty\x20Campaign'};}if(!this[_0x9508('0x97')](_0x1e0ff1[_0x9508('0x50')])){ut['logger']('[Preview][validateContact][Trunk\x20not\x20work]','campaign\x20Name:\x20'+_0x1e0ff1[_0x9508('0x51')]+_0x9508('0x113'));if(!this[_0x9508('0x97')](_0x1e0ff1[_0x9508('0x114')])){ut[_0x9508('0x5e')](_0x9508('0x115'),_0x1e0ff1['name']+_0x9508('0x116'));return{'isValid':![],'message':_0x9508('0x117')};}}if(!ut['isActive'](_0x1e0ff1[_0x9508('0x30')])){ut['logger'](_0x9508('0x118'),_0x1e0ff1['name']+_0x9508('0x119'));return{'isValid':![],'message':_0x9508('0x11a')+_0x1e0ff1[_0x9508('0x51')]+_0x9508('0x119')};}return{'isValid':!![],'message':_0x9508('0x11b')};};Preview[_0x9508('0x62')][_0x9508('0xfb')]=function(_0x4b4abd,_0x8bbf47,_0x23bfe7,_0x46e577){var _0x1aa037=this;return new BPromise(function(_0xd6ca5d,_0x8873a0){var _0x3d4d7b=_0x4b4abd[_0x9508('0xae')];var _0x48def6=_0x1aa037[_0x9508('0x97')](_0x8bbf47['Trunk'])?util['format'](_0x9508('0x11c'),_0x8bbf47[_0x9508('0x50')][_0x9508('0x51')],_[_0x9508('0x6c')](_0x8bbf47['dialPrefix'])?'':_0x8bbf47[_0x9508('0x34')][_0x9508('0x11d')]()||'',_0x8bbf47[_0x9508('0x11e')]>0x0?_0x23bfe7[_0x9508('0xf6')][_0x9508('0xf7')][_0x9508('0x11f')](_0x8bbf47[_0x9508('0x11e')]):_0x23bfe7['Contact']['phone']):util[_0x9508('0x55')]('SIP/%s/%s%s',_[_0x9508('0x6c')](_0x8bbf47[_0x9508('0x114')])?_0x8bbf47[_0x9508('0x50')][_0x9508('0x51')]:_0x8bbf47[_0x9508('0x114')][_0x9508('0x51')],_['isNil'](_0x8bbf47[_0x9508('0x34')])?'':_0x8bbf47[_0x9508('0x34')][_0x9508('0x11d')]()||'',_0x8bbf47[_0x9508('0x11e')]>0x0?_0x23bfe7[_0x9508('0xf6')][_0x9508('0xf7')][_0x9508('0x11f')](_0x8bbf47['dialCutDigit']):_0x23bfe7[_0x9508('0xf6')][_0x9508('0xf7')]);var _0x4cc31b=_0x1aa037[_0x9508('0x97')](_0x8bbf47['Trunk'])?ut[_0x9508('0x120')](_0x8bbf47['Trunk'][_0x9508('0x121')],_0x8bbf47[_0x9508('0x122')],_0x8bbf47[_0x9508('0x123')]>0x0?ut[_0x9508('0x124')](_0x8bbf47[_0x9508('0x32')],_0x8bbf47[_0x9508('0x123')]):_0x8bbf47[_0x9508('0x32')]):ut[_0x9508('0x120')](_[_0x9508('0x6c')](_0x8bbf47[_0x9508('0x114')])?_0x8bbf47[_0x9508('0x50')][_0x9508('0x121')]:_0x8bbf47[_0x9508('0x114')]['callerid'],_0x8bbf47['dialOriginateCallerIdName'],_0x8bbf47['dialRandomLastDigitCallerIdNumber']>0x0?ut[_0x9508('0x124')](_0x8bbf47[_0x9508('0x32')],_0x8bbf47['dialRandomLastDigitCallerIdNumber']):_0x8bbf47[_0x9508('0x32')]);if(_0x4cc31b){_0x4b4abd['originatecalleridname']=ut['extractCalleridName'](_0x4cc31b);_0x4b4abd['originatecalleridnum']=ut['extractCalleridNumber'](_0x4cc31b);}var _0x4ae5c2=ut[_0x9508('0x125')](_0x8bbf47,_0x23bfe7,_0x48def6,_0x4cc31b,_0x3d4d7b,_0x4b4abd);_['merge'](_0x4b4abd,ut[_0x9508('0x126')](_0x4ae5c2));_0x4b4abd[_0x9508('0x8a')]=moment()[_0x9508('0x55')]('YYYY-MM-DD\x20HH:mm:ss');ami['Action'](ut[_0x9508('0x127')](_0x4b4abd,_0x8bbf47,_0x4ae5c2,_0x4b4abd['activeContact'],_0x46e577))[_0x9508('0x86')](function(_0x4d4b49){_0x8bbf47[_0x9508('0x70')]+=0x1;logger[_0x9508('0x58')](_0x9508('0x128'),_0x3d4d7b,_0x9508('0xe9'),_0x8bbf47[_0x9508('0x51')],_0x9508('0x6f'),_0x8bbf47[_0x9508('0x70')]);_0xd6ca5d(_0x4d4b49);})[_0x9508('0x77')](function(_0x51052e){ut['logAgent'](_0x4b4abd,0xe,'OriginateError');rpcDb[_0x9508('0xef')](_0x4b4abd,'[originateFailure][logOriginateFailure]');_0x8873a0(_0x51052e);});});};Preview[_0x9508('0x62')][_0x9508('0x1f')]=function(_0x41b44){if(this[_0x9508('0x14')][_0x41b44[_0x9508('0xa9')]]){this[_0x9508('0x14')][_0x41b44[_0x9508('0xa9')]][_0x9508('0x76')]=_0x41b44[_0x9508('0x76')];}};Preview[_0x9508('0x62')][_0x9508('0x17')]=function(_0xbe8dda){var _0x357d58=this;var _0x8729b6=this[_0x9508('0x14')][_0xbe8dda[_0x9508('0x129')]];if(_0x8729b6){if(_0x8729b6[_0x9508('0xf9')]&&this[_0x9508('0x15')][_0x8729b6[_0x9508('0xf9')]]){ut[_0x9508('0x12a')](_0x8729b6,this['agents'][_0x8729b6[_0x9508('0xf9')]]['name'],this['agents'][_0x8729b6[_0x9508('0xf9')]]['id']);}var _0x15ba1c=_['clone'](_0x8729b6);_0x15ba1c[_0x9508('0xab')]=moment()[_0x9508('0x55')](_0x9508('0x8b'));var _0x50c019=_0x357d58[_0x9508('0x24')][_0x8729b6['queue']];if(ut[_0x9508('0x12b')](_0xbe8dda['response'])){if(_0x8729b6[_0x9508('0xc2')]){rpcDb['unlockContact'](_0x8729b6[_0x9508('0x12c')]);}if(_0x8729b6[_0x9508('0xa8')]){rpcDb['disableContact'](_0x8729b6[_0x9508('0x12c')]);}ami[_0x9508('0x25')]('custom:agentringnoanswer',ut[_0x9508('0x9d')](_0x8729b6,'rejected',this['campaignsPreview'][_0x8729b6['queue']]));this[_0x9508('0xea')](_0x15ba1c,_0x50c019,_0xbe8dda);}else{_0x8729b6[_0x9508('0x8a')]=moment()['format'](_0x9508('0x8b'));ut['logAgent'](_0x15ba1c,0x4,_0x9508('0xb5'));rpcDb[_0x9508('0xef')](_0x15ba1c,_0x9508('0x12d'));}}};Preview[_0x9508('0x62')][_0x9508('0x19')]=function(_0x2dc2c7){var _0xcb2e=this;var _0x482718=this[_0x9508('0x14')][_0x2dc2c7[_0x9508('0xa9')]];var _0x5a2437;if(_0x482718){_0x5a2437=this[_0x9508('0x24')][_0x482718['queue']];logger[_0x9508('0x58')]('[syncHangup][talking]',_0x2dc2c7['linkedid'],_0x9508('0xe9'),_0x5a2437['name'],_0x9508('0x71'),_0x5a2437[_0x9508('0x2b')]);}if(this[_0x9508('0x14')][_0x2dc2c7['linkedid']]&&_0x2dc2c7['linkedid']!==_0x2dc2c7[_0x9508('0xae')]){if(_0x2dc2c7['cause']==='16'&&this[_0x9508('0x14')][_0x2dc2c7[_0x9508('0xa9')]][_0x9508('0x7a')]){this[_0x9508('0x9a')](_0x2dc2c7,_0x2dc2c7['linkedid'],_0x2dc2c7[_0x9508('0x12e')]);}else if(this['actions'][_0x2dc2c7['linkedid']]['dialAnswer']){logger[_0x9508('0x58')](_0x9508('0x12f'),_0x2dc2c7['linkedid'],_0x2dc2c7[_0x9508('0x12e')],'\x20Queue',_0x5a2437[_0x9508('0x51')],'pTalking:\x20',_0x5a2437['pTalking']);this[_0x9508('0x9a')](_0x2dc2c7,_0x2dc2c7[_0x9508('0xa9')],_0x2dc2c7[_0x9508('0x12e')]);}}else if(_0x482718&&_[_0x9508('0x6c')](_0x482718[_0x9508('0x130')])&&_0x5a2437[_0x9508('0x131')]&&_0x2dc2c7[_0x9508('0xa9')]===_0x2dc2c7[_0x9508('0xae')]&&_['isNil'](_0x2dc2c7['reason'])&&_0x2dc2c7[_0x9508('0x12e')]==='16'&&_0x2dc2c7[_0x9508('0x132')]==='6'&&_[_0x9508('0xeb')](_0x482718[_0x9508('0x133')])){if(_0x482718[_0x9508('0xc2')]){rpcDb[_0x9508('0x10b')](_0x482718['idContact']);}if(_0x482718[_0x9508('0xa8')]){rpcDb[_0x9508('0x89')](_0x482718[_0x9508('0x12c')]);}_0x2dc2c7['reason']='22';this[_0x9508('0xea')](_0x482718,_0x5a2437,_0x2dc2c7);}else if(_0x482718&&_0x482718[_0x9508('0x133')]){if(_0x2dc2c7[_0x9508('0x12e')]==='16'&&this[_0x9508('0x14')][_0x2dc2c7[_0x9508('0xa9')]]['dialAnswer']){logger[_0x9508('0x58')]('[syncHangup][talking][transfer]',_0x2dc2c7[_0x9508('0xa9')],_0x2dc2c7[_0x9508('0x12e')],_0x9508('0xe9'),_0x5a2437[_0x9508('0x51')],_0x9508('0x71'),_0x5a2437[_0x9508('0x2b')]);this[_0x9508('0x9a')](_0x2dc2c7,_0x2dc2c7[_0x9508('0xa9')],_0x2dc2c7[_0x9508('0x12e')]);}else if(this[_0x9508('0x14')][_0x2dc2c7[_0x9508('0xa9')]][_0x9508('0x7a')]){logger[_0x9508('0x58')](_0x9508('0x12f'),_0x2dc2c7[_0x9508('0xa9')],_0x2dc2c7['cause'],_0x9508('0xe9'),_0x5a2437['name'],'pTalking:\x20',_0x5a2437['pTalking']);this[_0x9508('0x9a')](_0x2dc2c7,_0x2dc2c7[_0x9508('0xa9')],_0x2dc2c7[_0x9508('0x12e')]);}}};Preview[_0x9508('0x62')]['syncDialEnd']=function(_0x1e40c3){if(this[_0x9508('0x14')][_0x1e40c3[_0x9508('0x134')]]&&_0x1e40c3['destlinkedid']!==_0x1e40c3[_0x9508('0x135')]){this['callProgressDetectingCustomer'](_0x1e40c3,_0x1e40c3[_0x9508('0x134')],_0x1e40c3[_0x9508('0xe0')]);}};Preview['prototype'][_0x9508('0x1b')]=function(_0x447d88){if(this[_0x9508('0x14')][_0x447d88[_0x9508('0xa9')]]&&_0x447d88[_0x9508('0xa9')]!==_0x447d88['uniqueid']&&!this[_0x9508('0x14')][_0x447d88['linkedid']][_0x9508('0x7a')]){if(_0x447d88['cause']==='1'){this[_0x9508('0x9a')](_0x447d88,_0x447d88[_0x9508('0xa9')],_0x447d88[_0x9508('0x12e')]);}}};Preview[_0x9508('0x62')]['addVariable']=function(_0x281e45,_0xd67ea2,_0xef2667){if(this[_0x9508('0x14')][_0x281e45]){if(_[_0x9508('0x6c')](this[_0x9508('0x14')][_0x281e45]['variables'])){this[_0x9508('0x14')][_0x281e45][_0x9508('0x136')]={};}this[_0x9508('0x14')][_0x281e45][_0x9508('0x136')][_0xd67ea2]=_0xef2667;}};Preview[_0x9508('0x62')][_0x9508('0x21')]=function(_0x38b021){try{if(!_[_0x9508('0x6c')](_0x38b021)){if(ut[_0x9508('0x137')](_[_0x9508('0x138')](_0x38b021[_0x9508('0x139')])[0x0])){this[_0x9508('0x13a')](_0x38b021[_0x9508('0xae')],_[_0x9508('0x138')](_0x38b021[_0x9508('0x139')])[0x0],_0x38b021[_0x9508('0x13b')]);}}}catch(_0x27428d){logger['error']('[syncVarSet][Preview]',util[_0x9508('0x13c')](_0x27428d,{'showHidden':![],'depth':null}));}};Preview[_0x9508('0x62')][_0x9508('0x23')]=function(_0x45c545){if(_0x45c545){if(this[_0x9508('0x14')][_0x45c545[_0x9508('0x13d')]]){this[_0x9508('0x14')][_0x45c545[_0x9508('0x13d')]][_0x9508('0x133')]=!![];}}};Preview[_0x9508('0x62')][_0x9508('0x13e')]=function(_0x105b5a){if(_0x105b5a){if(this[_0x9508('0x14')][_0x105b5a['transfererlinkedid']]){this[_0x9508('0x14')][_0x105b5a[_0x9508('0x13f')]][_0x9508('0x133')]=!![];}}};module[_0x9508('0x140')]=Preview;
\ No newline at end of file
+var _0x56e7=['congestion','[callProgressDetectingCustomer][logCongestion]','[callProgressDetectingCustomer][logCongestionGlobal]','dialCongestionMaxRetry','countagentrejectretry','custom:agentreject','AgentReject','dialAgentRejectMaxRetry','dialAgentRejectRetryFrequency','ABANDONED','countabandonedretry','Abandoned','[callProgressDetectingCustomer][logAbandoned]','countabandonedetry','dialAbandonedMaxRety','dialAbandonedRetryFrequency','dialstatus','custom:amd','amd','[callProgressDetectingCustomer][hangupInAMD]','cause-txt','[callProgressDetectingCustomer][machine]','[Dialer][decrementTalkink][no\x20Hangup][Preview]','[callProgressDetectingCustomer][logUnknown]','[callProgressDetectingCustomer][logUnknownGlobal]','[callProgressDetectingCustomer]','[originated][decrement][callProgressDetectingCustomer]','destlinkedid','callProgressDetectingAgent','isUndefined','object','reason','logAgent','[callProgressDetectingAgent][logNoSuch]','createAgentHistory','[callProgressDetectingAgent][logBusy]','[callProgressDetectingAgent][logCongestion]','AnswerAGI','[callProgressDetectingAgent]','[originated][decrement][callProgressDetectingAgent]','checkInBlack','Contact','Contact\x20is\x20undefined','lookAgent','isEmpty','execCall','[Preview][execCall][success]','idContact','custom:agentcalled','called','Calling','[Preview][execCall][failure]','logBlacklist','[Blacklist][error]','Contact\x20in\x20black\x20List','SIP/%s','status','reachable','unmonitored','execRun','unlock','unlockContact','getContactPreview','recallme','validateContact','isValid','checkIsBlackList','Contact.phone','[Preview][checkIsBlackList]','[Preview][getContactPreview]','Call\x20unsuccessful','Empty\x20Contact','[Preview][validateContact][Empty\x20Campaign]','Empty\x20Campaign','[Preview][validateContact][Trunk\x20not\x20work]','Trunk\x20not\x20work','isActive','[Preview][validateContact][Campaign\x20Active]','\x20Not\x20Active','campaign\x20Name:\x20','SIP/%s/%s%s','dialPrefix','trim','substring','dialCutDigit','phone','getCallerId','callerid','dialRandomLastDigitCallerIdNumber','dialOriginateCallerIdName','originatecalleridname','originatecalleridnum','extractCalleridNumber','addVariables','merge','variablesAction','[originateFailure][logOriginateFailure]','syncOriginateResponse','actionid','logLookAgent','clone','responsetime','isFailure','response','custom:agentringnoanswer','rejected','[callProgressDetectingAgent][logAnswer]','[syncHangup][talking]','cause','[syncHangup][talking][cause]','statedesc','channelstate','transfer','destuniqueid','addVariable','variables','filterKey','keys','variable','error','transfertargetlinkedid','transfererlinkedid','exports','lodash','bluebird','moment','md5','ioredis','../../../config/environment','../../../config/logger','preview','../ami','./rpcDb','./action','./util/util','defaults','localhost','socket.io-emitter','redis','prototype','tail','sequence','trunks','actions','agents','clockClearZombieChannels','originateresponse','hangup','syncHangup','bind','dialend','syncDialEnd','newexten','syncNewExten','varset','syncVarSet','attendedtransfer','blindtransfer','syncBlindTransfer','loopCampaigns','campaignsPreview','emit','type','outbound','name','strategy','answered','loggedIn','sumBillable','sumDuration','sumHoldTime','talking','unmanaged','abandoned','loggedInDb','dialActive','dialMethod','dialOriginateCallerIdNumber','dialOriginateTimeout','outboundAnswerAgiCallsDay','outboundAnswerCallsDay','outboundBlacklistCallsDay','outboundCongestionCallsDay','outboundDropCallsDayACS','outboundDropCallsDayTimeout','outboundNoAnswerCallsDay','outboundOriginateFailureCallsDay','outboundReCallsDay','outboundRejectCallsDay','outboundUnknownCallsDay','outboundAbandonedCallsDay','predictiveIntervalAvgHoldtime','predictiveIntervalDroppedCallsTimeout','predictiveIntervalErlangCallsDroppedCalls','predictiveIntervalHitRate','predictiveIntervalMultiplicativeFactor','predictiveIntervalPauses','predictiveIntervalAvailable','predictiveIntervalTotalCalls','message','originated','erlangCalls','erlangCallToSecond','erlangAbandonmentRate','erlangBusyFactor','Trunk','active','Interval','stringify','format','voice:queue:%s','voice_queue:save','info','[DEBUG]\x20Emit\x20voice_queue_channel:remove\x20event','voice_queue_channel:remove','voice_queue_presence:remove','sendMessageOneNotActive','pTalking','available','paused','NOT_ACTIVE','logger','[CampaignPreview]\x20Campaign\x20Queue:\x20','\x20is\x20not\x20active','IS_DISACTIVED','\x20is\x20disactive','syncCampaigns','hasOwnProperty','booked','clearZombieChannels','recallMe','enqueue','[clearZombieChannels][talking]','Queue','originated:\x20','pTalking:\x20','queue','dialAnswer','pick','contactId','VoiceQueueId','ListId','Action','channel','No\x20such\x20channel','updateOriginated','[clearZombieChannel]','decrementTalkink','loggerError','[Dialer][checkChannel][pTalking][Preview]','[Dialer][checkChannel][Preview]','[action]','size','clearZombieChannel','getContactRecallMe','agentReadyId','then','isNil','length','getDiff','scheduledat','dialRecallMeTimeout','Agent','voicePause','run','logger2','catch','[RecallMe]','disableContact','starttime','YYYY-MM-DD\x20HH:mm:ss','logCustomer','RecallInQueue','createBody','createCustomerHistory','[HistoryDialRecallInQueue][historyCatch]','[HistoryRecallClose]','createCustomerFinal','[getContactRecallMe]','setMessage','IsNotLoggedIn','isTrunkReachable','TrunkBackup','TRUNK_IS_NOT_REACHABLE','ACTIVE','callProgressDetectingCustomer','outboundNoSuchCallsDay','countnosuchnumberretry','countglobal','totalGlobal','NoSuchNumber','custom:agentnosuchnumber','buildObj','nosuchnumber','[callProgressDetectingCustomer][logNoSuch]','dialGlobalMaxRetry','cloneAction','[callProgressDetectingCustomer][logNoSuchGlobal]','dialNoSuchNumberMaxRetry','scheduledAt','dialNoSuchNumberRetryFrequency','activeContact','linkedid','ANSWER','answertime','[syncHangup][talking][increment]','uniqueid','\x20Queue','custom:agentconnect','acw','custom:agentConnectPreview','custom:agentcomplete','complete','total','[16]','Answer','[callProgressDetectingCustomer][logAnswer]','[callProgressDetectingCustomer][logAnswerGlobal]','crateCustomerReportQueue','talktime','[syncHangup][talking][decrement]','BUSY','countbusyretry','Busy','custom:agentbusy','busy','[callProgressDetectingCustomer][logBusy]','Global','[callProgressDetectingCustomer][logBusyGlobal]','dialBusyMaxRetry','dialBusyRetryFrequency','unlockAgent','NOANSWER','countnoanswerretry','custom:agentnoanswer','noanswer','[callProgressDetectingCustomer][logNoAnswer]','[callProgressDetectingCustomer][logNoAnswerGlobal]','dialNoAnswerMaxRetry','rescheduleContact','dialNoAnswerRetryFrequency','CONGESTION','countcongestionretry','Congestion','custom:agentcongestion'];(function(_0x40a045,_0x516f0e){var _0x1a687c=function(_0x48c9fe){while(--_0x48c9fe){_0x40a045['push'](_0x40a045['shift']());}};_0x1a687c(++_0x516f0e);}(_0x56e7,0x7b));var _0x756e=function(_0x65f9a9,_0x476219){_0x65f9a9=_0x65f9a9-0x0;var _0x3afb57=_0x56e7[_0x65f9a9];return _0x3afb57;};'use strict';var util=require('util');var _=require(_0x756e('0x0'));var BPromise=require(_0x756e('0x1'));var uuid=require('uuid');var moment=require(_0x756e('0x2'));var md5=require(_0x756e('0x3'));var Redis=require(_0x756e('0x4'));var config=require(_0x756e('0x5'));var logger=require(_0x756e('0x6'))(_0x756e('0x7'));var loggerAction=require(_0x756e('0x6'))('actionPreview');var ami=require(_0x756e('0x8'));var rpcDb=require(_0x756e('0x9'));var Action=require(_0x756e('0xa'));var ut=require(_0x756e('0xb'));config['redis']=_[_0x756e('0xc')](config['redis'],{'host':_0x756e('0xd'),'port':0x18eb});var io=require(_0x756e('0xe'))(new Redis(config[_0x756e('0xf')]));var Sequence=function(){};Sequence[_0x756e('0x10')]['enqueue']=function(_0x5d5b90){this[_0x756e('0x11')]=this[_0x756e('0x11')]?this[_0x756e('0x11')]['finally'](_0x5d5b90):_0x5d5b90();};function Preview(_0x330076){this[_0x756e('0x12')]=new Sequence();this['campaignsPreview']=_0x330076['voiceQueues'];this[_0x756e('0x13')]=_0x330076['trunks'];this[_0x756e('0x14')]={};this[_0x756e('0x15')]=_0x330076[_0x756e('0x15')];this[_0x756e('0x16')]=0x0;ami['on'](_0x756e('0x17'),this['syncOriginateResponse']['bind'](this));ami['on'](_0x756e('0x18'),this[_0x756e('0x19')][_0x756e('0x1a')](this));ami['on']('hanguprequest',this['syncHangupRequest'][_0x756e('0x1a')](this));ami['on'](_0x756e('0x1b'),this[_0x756e('0x1c')][_0x756e('0x1a')](this));ami['on'](_0x756e('0x1d'),this[_0x756e('0x1e')][_0x756e('0x1a')](this));ami['on'](_0x756e('0x1f'),this[_0x756e('0x20')]['bind'](this));ami['on'](_0x756e('0x21'),this['syncAttendedTransfer']['bind'](this));ami['on'](_0x756e('0x22'),this[_0x756e('0x23')][_0x756e('0x1a')](this));this[_0x756e('0x24')](this[_0x756e('0x25')]);}function emit(_0x4e99a2,_0xb00195,_0x27e1eb){io['to'](_0x4e99a2)[_0x756e('0x26')](_0xb00195,_0x27e1eb);}function emitCampaignPreview(_0x2c03dc){if(_0x2c03dc[_0x756e('0x27')]===_0x756e('0x28')){var _0x42173f={'id':_0x2c03dc['id'],'name':_0x2c03dc[_0x756e('0x29')],'strategy':_0x2c03dc[_0x756e('0x2a')],'answered':_0x2c03dc[_0x756e('0x2b')],'available':_0x2c03dc['available'],'loggedIn':_0x2c03dc[_0x756e('0x2c')],'pTalking':_0x2c03dc['pTalking'],'sumBillable':_0x2c03dc[_0x756e('0x2d')],'sumDuration':_0x2c03dc[_0x756e('0x2e')],'sumHoldTime':_0x2c03dc[_0x756e('0x2f')]||0x0,'talking':_0x2c03dc[_0x756e('0x30')],'total':_0x2c03dc['total'],'type':_0x2c03dc[_0x756e('0x27')],'unmanaged':_0x2c03dc[_0x756e('0x31')],'abandoned':_0x2c03dc[_0x756e('0x32')],'waiting':_0x2c03dc['waiting'],'loggedInDb':_0x2c03dc[_0x756e('0x33')],'dialActive':_0x2c03dc[_0x756e('0x34')],'dialMethod':_0x2c03dc[_0x756e('0x35')],'dialOriginateCallerIdName':_0x2c03dc['dialOriginateCallerIdName'],'dialOriginateCallerIdNumber':_0x2c03dc[_0x756e('0x36')],'dialOriginateTimeout':_0x2c03dc[_0x756e('0x37')],'dialPrefix':_0x2c03dc['dialPrefix'],'outboundAnswerAgiCallsDay':_0x2c03dc[_0x756e('0x38')],'outboundAnswerCallsDay':_0x2c03dc[_0x756e('0x39')],'outboundBlacklistCallsDay':_0x2c03dc[_0x756e('0x3a')],'outboundBusyCallsDay':_0x2c03dc['outboundBusyCallsDay'],'outboundCongestionCallsDay':_0x2c03dc[_0x756e('0x3b')],'outboundDropCallsDayACS':_0x2c03dc[_0x756e('0x3c')],'outboundDropCallsDayCallersExit':_0x2c03dc['outboundDropCallsDayCallersExit'],'outboundDropCallsDayTimeout':_0x2c03dc[_0x756e('0x3d')],'outboundNoAnswerCallsDay':_0x2c03dc[_0x756e('0x3e')],'outboundNoSuchCallsDay':_0x2c03dc['outboundNoSuchCallsDay'],'outboundOriginateFailureCallsDay':_0x2c03dc[_0x756e('0x3f')],'outboundReCallsDay':_0x2c03dc[_0x756e('0x40')],'outboundRejectCallsDay':_0x2c03dc[_0x756e('0x41')],'outboundUnknownCallsDay':_0x2c03dc[_0x756e('0x42')],'outboundAbandonedCallsDay':_0x2c03dc[_0x756e('0x43')],'predictiveIntervalAnsweredCalls':_0x2c03dc['predictiveIntervalAnsweredCalls'],'predictiveIntervalAvgHoldtime':_0x2c03dc[_0x756e('0x44')],'predictiveIntervalAvgTalktime':_0x2c03dc['predictiveIntervalAvgTalktime'],'predictiveIntervalDroppedCallsCallersExit':_0x2c03dc['predictiveIntervalDroppedCallsCallersExit'],'predictiveIntervalDroppedCallsTimeout':_0x2c03dc[_0x756e('0x45')],'predictiveIntervalErlangCalls':_0x2c03dc['predictiveIntervalErlangCalls'],'predictiveIntervalErlangCallsDroppedCalls':_0x2c03dc[_0x756e('0x46')],'predictiveIntervalHitRate':_0x2c03dc[_0x756e('0x47')],'predictiveIntervalMultiplicativeFactor':_0x2c03dc[_0x756e('0x48')],'predictiveIntervalPauses':_0x2c03dc[_0x756e('0x49')],'predictiveIntervalAvailable':_0x2c03dc[_0x756e('0x4a')],'predictiveIntervalTotalCalls':_0x2c03dc[_0x756e('0x4b')],'message':_0x2c03dc[_0x756e('0x4c')],'originated':_0x2c03dc[_0x756e('0x4d')],'erlangCalls':_0x2c03dc[_0x756e('0x4e')],'erlangCallToSecond':_0x2c03dc[_0x756e('0x4f')],'erlangAbandonmentRate':_0x2c03dc[_0x756e('0x50')],'erlangBusyFactor':_0x2c03dc[_0x756e('0x51')],'startPredictive':_0x2c03dc['startPredictive'],'startProgressive':_0x2c03dc['startProgressive']};if(_0x2c03dc[_0x756e('0x52')]){_0x42173f[_0x756e('0x52')]={'id':_0x2c03dc[_0x756e('0x52')]['id'],'name':_0x2c03dc[_0x756e('0x52')][_0x756e('0x29')],'active':_0x2c03dc[_0x756e('0x52')][_0x756e('0x53')],'callerid':_0x2c03dc['Trunk']['callerid']};}if(_0x2c03dc['Interval']){_0x42173f[_0x756e('0x54')]={'id':_0x2c03dc[_0x756e('0x54')]['id'],'name':_0x2c03dc[_0x756e('0x54')]['name']};}var _0x32958b=md5(JSON[_0x756e('0x55')](_0x42173f));if(_0x2c03dc['md5']!==_0x32958b){_0x2c03dc[_0x756e('0x3')]=_0x32958b;emit(util[_0x756e('0x56')](_0x756e('0x57'),_0x42173f[_0x756e('0x29')]),_0x756e('0x58'),_0x42173f);}}}function emitVoiceQueueChannelRemove(_0x26965c){logger[_0x756e('0x59')](_0x756e('0x5a'),JSON['stringify'](_0x26965c));emit(util[_0x756e('0x56')](_0x756e('0x57'),_0x26965c[_0x756e('0x29')]),_0x756e('0x5b'),_0x26965c);io[_0x756e('0x26')](_0x756e('0x5c'),_0x26965c);}function notSendMessagesQueue(_0x20d16c){if(_0x20d16c[_0x756e('0x5d')]){if(_0x20d16c[_0x756e('0x4d')]===0x0&&_0x20d16c[_0x756e('0x5e')]===0x0){_0x20d16c['sendMessageOneNotActive']=![];_0x20d16c[_0x756e('0x5f')]=0x0;_0x20d16c[_0x756e('0x60')]=0x0;_0x20d16c['message']=_0x756e('0x61');ut[_0x756e('0x62')](_0x756e('0x63'),_0x20d16c['name']+_0x756e('0x64'));}else{_0x20d16c[_0x756e('0x4c')]=_0x756e('0x65');ut['logger'](_0x756e('0x63'),_0x20d16c[_0x756e('0x29')]+_0x756e('0x66'));}emitCampaignPreview(_0x20d16c);}}Preview[_0x756e('0x10')][_0x756e('0x24')]=function(){var _0x252757=this;setInterval(function(){_0x252757['syncCampaigns']();},0x7cf);};Preview[_0x756e('0x10')][_0x756e('0x67')]=function(){var _0x5c471e=this[_0x756e('0x25')];this[_0x756e('0x16')]+=0x1;for(var _0x29f6c2 in _0x5c471e){if(_0x5c471e[_0x756e('0x68')](_0x29f6c2)&&(_0x5c471e[_0x29f6c2][_0x756e('0x35')]===_0x756e('0x7')||_0x5c471e[_0x29f6c2][_0x756e('0x35')]===_0x756e('0x69'))&&_0x5c471e[_0x29f6c2][_0x756e('0x27')]==='outbound'){if(this[_0x756e('0x16')]>0x7){this['clockClearZombieChannels']=0x0;this[_0x756e('0x6a')]();}}if(_0x5c471e[_0x756e('0x68')](_0x29f6c2)&&_0x5c471e[_0x29f6c2][_0x756e('0x35')]==='preview'&&_0x5c471e[_0x29f6c2][_0x756e('0x27')]===_0x756e('0x28')){if(_0x5c471e[_0x29f6c2][_0x756e('0x34')]){this['setMessage'](_0x5c471e[_0x29f6c2]);if(_0x5c471e[_0x29f6c2]['dialPreviewAutoRecallMe'])this[_0x756e('0x6b')](_0x5c471e[_0x29f6c2]);}else{notSendMessagesQueue(_0x5c471e[_0x29f6c2]);}}}};Preview[_0x756e('0x10')]['clearZombieChannel']=function(_0x499da2){var _0x36e76a=this;this[_0x756e('0x12')][_0x756e('0x6c')](function(){if(!_['isNil'](_0x36e76a[_0x756e('0x14')][_0x499da2])){loggerAction['info'](_0x756e('0x6d'),_0x499da2,_0x756e('0x6e'),_0x36e76a[_0x756e('0x14')][_0x499da2]['queue'],_0x756e('0x6f'),JSON['stringify'](_0x36e76a['campaignsPreview'][_0x36e76a[_0x756e('0x14')][_0x499da2]['queue']][_0x756e('0x4d')]),_0x756e('0x70'),JSON[_0x756e('0x55')](_0x36e76a[_0x756e('0x25')][_0x36e76a[_0x756e('0x14')][_0x499da2][_0x756e('0x71')]]['pTalking']),JSON[_0x756e('0x55')](_0x36e76a['actions'][_0x499da2][_0x756e('0x72')]),JSON['stringify'](_[_0x756e('0x73')](_0x36e76a['actions'][_0x499da2],[_0x756e('0x74'),'UserId',_0x756e('0x75'),_0x756e('0x76')])));return ami[_0x756e('0x77')]({'action':'status','channel':_0x36e76a[_0x756e('0x14')][_0x499da2][_0x756e('0x78')]})['catch'](function(_0x5768f9){if(_0x5768f9[_0x756e('0x4c')]===_0x756e('0x79')){setTimeout(function(){if(_0x36e76a[_0x756e('0x14')][_0x499da2]){ut[_0x756e('0x7a')](_0x36e76a[_0x756e('0x25')][_0x36e76a[_0x756e('0x14')][_0x499da2][_0x756e('0x71')]],_0x756e('0x7b'));if(_0x36e76a[_0x756e('0x14')][_0x499da2]['dialAnswer']===!![]){ut[_0x756e('0x7c')](_0x36e76a[_0x756e('0x25')][_0x36e76a[_0x756e('0x14')][_0x499da2][_0x756e('0x71')]],_0x756e('0x7b'));ut[_0x756e('0x7d')](_0x756e('0x7e')+_0x499da2,_0x36e76a[_0x756e('0x14')][_0x499da2]['queue']);}ut[_0x756e('0x7d')](_0x756e('0x7f')+_0x499da2,_0x36e76a['actions'][_0x499da2][_0x756e('0x71')]);delete _0x36e76a['actions'][_0x499da2];}},0x2328);}});}});};Preview[_0x756e('0x10')][_0x756e('0x6a')]=function(){var _0x1d0b60=this;loggerAction['info'](_0x756e('0x80'),_[_0x756e('0x81')](this[_0x756e('0x14')]));for(var _0x571794 in this[_0x756e('0x14')]){if(_0x1d0b60['actions'][_0x756e('0x68')](_0x571794)){_0x1d0b60[_0x756e('0x82')](_0x571794);}}};Preview[_0x756e('0x10')][_0x756e('0x6b')]=function(_0x3c9248){var _0x413061=this;rpcDb[_0x756e('0x83')](_0x3c9248['id'],ut[_0x756e('0x84')](this['agents']))[_0x756e('0x85')](function(_0x3db2a7){if(!_[_0x756e('0x86')](_0x3db2a7)){for(var _0x3e6156=0x0;_0x3e6156<_0x3db2a7[_0x756e('0x87')];_0x3e6156+=0x1){if(ut[_0x756e('0x88')](_0x3db2a7[_0x3e6156][_0x756e('0x89')])<_0x3c9248[_0x756e('0x8a')]*0x3c){if(_0x3db2a7[_0x3e6156][_0x756e('0x8b')]&&!_0x3db2a7[_0x3e6156][_0x756e('0x8b')][_0x756e('0x8c')]){_0x413061[_0x756e('0x8d')](_0x3db2a7[_0x3e6156]['id'])[_0x756e('0x85')](ut[_0x756e('0x8e')]('[RecallMe]'))[_0x756e('0x8f')](ut[_0x756e('0x8e')](_0x756e('0x90')));}else{rpcDb[_0x756e('0x91')](_0x3db2a7[_0x3e6156]['id']);}}else{var _0x674b74=new Action(_0x3db2a7[_0x3e6156],_0x3c9248);_0x674b74[_0x756e('0x92')]=moment()['format'](_0x756e('0x93'));_0x3c9248[_0x756e('0x40')]+=0x1;ut[_0x756e('0x94')](_0x674b74,0x17,_0x756e('0x95'));if(_0x3c9248['dialRecallInQueue']){rpcDb['rescheduleContactInQueue'](ut[_0x756e('0x96')](_0x3db2a7[_0x3e6156]));rpcDb[_0x756e('0x97')](_0x674b74,_0x756e('0x98'));}else{ut[_0x756e('0x94')](_0x674b74,0x16,'RecallFailedTimeout');rpcDb[_0x756e('0x97')](_0x674b74,_0x756e('0x99'));rpcDb[_0x756e('0x9a')](_0x674b74,_0x756e('0x99'));}}}}})['catch'](ut['logger2'](_0x756e('0x9b')));};Preview[_0x756e('0x10')][_0x756e('0x9c')]=function(_0xdbd179){_0xdbd179[_0x756e('0x5d')]=!![];if(ut[_0x756e('0x9d')](_0xdbd179[_0x756e('0x2c')])){_0xdbd179[_0x756e('0x4c')]='AGENTS_NOT_LOGGED';}else if(!ut['isActive'](_0xdbd179[_0x756e('0x34')])){_0xdbd179[_0x756e('0x4c')]=_0x756e('0x61');}else if(!this[_0x756e('0x9e')](_0xdbd179[_0x756e('0x52')])){if(!this[_0x756e('0x9e')](_0xdbd179[_0x756e('0x9f')])){_0xdbd179['message']=_0x756e('0xa0');}else{_0xdbd179['message']=_0x756e('0xa1');}}else{_0xdbd179['message']=_0x756e('0xa1');}emitCampaignPreview(_0xdbd179);};Preview[_0x756e('0x10')][_0x756e('0xa2')]=function(_0x58f56d,_0x228718,_0x2ea1bf){var _0x93cfb=this;var _0x1d1820=this[_0x756e('0x14')][_0x228718];var _0x3f7b80=this[_0x756e('0x25')][_0x1d1820['queue']];var _0x57257a;if(_0x3f7b80){switch(_0x2ea1bf){case'1':_0x3f7b80[_0x756e('0xa3')]+=0x1;_0x1d1820[_0x756e('0xa4')]+=0x1;_0x1d1820[_0x756e('0xa5')]=ut[_0x756e('0xa6')](_0x1d1820);ut[_0x756e('0x94')](_0x1d1820,0x0,_0x756e('0xa7'));ami['emit'](_0x756e('0xa8'),ut[_0x756e('0xa9')](_0x1d1820,_0x756e('0xaa')));rpcDb[_0x756e('0x97')](_0x1d1820,_0x756e('0xab'));if(ut[_0x756e('0xa6')](_0x1d1820)>=_0x3f7b80[_0x756e('0xac')]){_0x57257a=ut[_0x756e('0xad')](_0x1d1820,0xf,'Global');rpcDb[_0x756e('0x9a')](_0x57257a,_0x756e('0xae'));}else{if(_0x1d1820[_0x756e('0xa4')]>=_0x3f7b80[_0x756e('0xaf')]){rpcDb[_0x756e('0x9a')](_0x1d1820,'[callProgressDetectingCustomer][logNoSuchGlobal]');}else{rpcDb['rescheduleContact'](ut[_0x756e('0xb0')](_0x1d1820,'countnosuchnumberretry',_0x3f7b80[_0x756e('0xb1')]),_0x1d1820['unlockAgent'],_0x1d1820[_0x756e('0xb2')]);}}delete this['actions'][_0x58f56d[_0x756e('0xb3')]];break;case _0x756e('0xb4'):var _0x108e14=moment()['format'](_0x756e('0x93'));_0x1d1820['responsetime']=_0x108e14;_0x1d1820[_0x756e('0xb5')]=_0x108e14;_0x1d1820[_0x756e('0x72')]=!![];_0x3f7b80[_0x756e('0x5e')]+=0x1;logger[_0x756e('0x59')](_0x756e('0xb6'),_0x1d1820[_0x756e('0xb7')],_0x756e('0xb8'),_0x3f7b80['name'],_0x756e('0x70'),_0x3f7b80[_0x756e('0x5e')]);ami['emit'](_0x756e('0xb9'),ut['buildObj'](_0x1d1820,'connect',this[_0x756e('0x25')][_0x1d1820['queue']]));if(_0x3f7b80[_0x756e('0xba')]){ami['emit'](_0x756e('0xbb'),ut['buildAcw'](_0x1d1820));}break;case'16':ami[_0x756e('0x26')](_0x756e('0xbc'),ut[_0x756e('0xa9')](_0x1d1820,_0x756e('0xbd'),this[_0x756e('0x25')][_0x1d1820[_0x756e('0x71')]]));emitVoiceQueueChannelRemove(ut[_0x756e('0xa9')](_0x1d1820,_0x756e('0xbd')));_0x3f7b80[_0x756e('0x39')]+=0x1;_0x3f7b80[_0x756e('0xbe')]+=0x1;_0x3f7b80[_0x756e('0x2b')]+=0x1;ut[_0x756e('0x7c')](_0x3f7b80,_0x756e('0xbf'));_0x1d1820['countglobal']=ut['totalGlobal'](_0x1d1820);ut[_0x756e('0x94')](_0x1d1820,0x4,_0x756e('0xc0'));rpcDb[_0x756e('0x97')](_0x1d1820,_0x756e('0xc1'));rpcDb[_0x756e('0x9a')](_0x1d1820,_0x756e('0xc2'));rpcDb[_0x756e('0xc3')](_0x1d1820);_0x3f7b80['sumDuration']+=_0x1d1820[_0x756e('0xc4')];_0x3f7b80[_0x756e('0x2d')]+=_0x1d1820[_0x756e('0xc4')];logger[_0x756e('0x59')](_0x756e('0xc5'),_0x1d1820['uniqueid'],_0x756e('0xb8'),_0x3f7b80['name'],'pTalking:\x20',_0x3f7b80[_0x756e('0x5e')]);delete this['actions'][_0x58f56d[_0x756e('0xb3')]];break;case _0x756e('0xc6'):_0x3f7b80['outboundBusyCallsDay']+=0x1;_0x1d1820[_0x756e('0xc7')]+=0x1;_0x1d1820[_0x756e('0xa5')]=ut[_0x756e('0xa6')](_0x1d1820);ut[_0x756e('0x94')](_0x1d1820,0x5,_0x756e('0xc8'));ami['emit'](_0x756e('0xc9'),ut[_0x756e('0xa9')](_0x1d1820,_0x756e('0xca')));rpcDb[_0x756e('0x97')](_0x1d1820,_0x756e('0xcb'));if(ut['totalGlobal'](_0x1d1820)>=_0x3f7b80['dialGlobalMaxRetry']){_0x57257a=ut['cloneAction'](_0x1d1820,0xf,_0x756e('0xcc'));rpcDb['createCustomerFinal'](_0x57257a,_0x756e('0xcd'));}else{if(_0x1d1820[_0x756e('0xc7')]>=_0x3f7b80[_0x756e('0xce')]){rpcDb['createCustomerFinal'](_0x1d1820,_0x756e('0xcb'));}else{rpcDb['rescheduleContact'](ut[_0x756e('0xb0')](_0x1d1820,'countbusyretry',_0x3f7b80[_0x756e('0xcf')]),_0x1d1820[_0x756e('0xd0')],_0x1d1820[_0x756e('0xb2')]);}}break;case _0x756e('0xd1'):_0x3f7b80[_0x756e('0x3e')]+=0x1;_0x1d1820[_0x756e('0xd2')]+=0x1;_0x1d1820[_0x756e('0xa5')]=ut[_0x756e('0xa6')](_0x1d1820);ut[_0x756e('0x94')](_0x1d1820,0x3,'NoAnswer');ami[_0x756e('0x26')](_0x756e('0xd3'),ut[_0x756e('0xa9')](_0x1d1820,_0x756e('0xd4')));rpcDb[_0x756e('0x97')](_0x1d1820,_0x756e('0xd5'));if(ut[_0x756e('0xa6')](_0x1d1820)>=_0x3f7b80[_0x756e('0xac')]){_0x57257a=ut[_0x756e('0xad')](_0x1d1820,0xf,_0x756e('0xcc'));rpcDb[_0x756e('0x9a')](_0x57257a,_0x756e('0xd6'));}else{if(_0x1d1820['countnoanswerretry']>=_0x3f7b80[_0x756e('0xd7')]){rpcDb[_0x756e('0x9a')](_0x1d1820,_0x756e('0xd5'));}else{rpcDb[_0x756e('0xd8')](ut[_0x756e('0xb0')](_0x1d1820,_0x756e('0xd2'),_0x3f7b80[_0x756e('0xd9')]),_0x1d1820[_0x756e('0xd0')],_0x1d1820[_0x756e('0xb2')]);}}break;case _0x756e('0xda'):_0x3f7b80[_0x756e('0x3b')]+=0x1;_0x1d1820[_0x756e('0xdb')]+=0x1;_0x1d1820[_0x756e('0xa5')]=ut[_0x756e('0xa6')](_0x1d1820);ut['logCustomer'](_0x1d1820,0x8,_0x756e('0xdc'));ami[_0x756e('0x26')](_0x756e('0xdd'),ut[_0x756e('0xa9')](_0x1d1820,_0x756e('0xde')));rpcDb[_0x756e('0x97')](_0x1d1820,_0x756e('0xdf'));if(ut[_0x756e('0xa6')](_0x1d1820)>=_0x3f7b80[_0x756e('0xac')]){_0x57257a=ut['cloneAction'](_0x1d1820,0xf,_0x756e('0xcc'));rpcDb['createCustomerFinal'](_0x57257a,_0x756e('0xe0'));}else{if(_0x1d1820['countcongestionretry']>=_0x3f7b80[_0x756e('0xe1')]){rpcDb['createCustomerFinal'](_0x1d1820,_0x756e('0xdf'));}else{rpcDb['rescheduleContact'](ut[_0x756e('0xb0')](_0x1d1820,_0x756e('0xdb'),_0x3f7b80[_0x756e('0xcf')]),_0x1d1820[_0x756e('0xd0')],_0x1d1820[_0x756e('0xb2')]);}}break;case'CANCEL':_0x3f7b80[_0x756e('0x41')]+=0x1;_0x1d1820[_0x756e('0xe2')]+=0x1;_0x1d1820[_0x756e('0xa5')]=ut[_0x756e('0xa6')](_0x1d1820);ut[_0x756e('0x94')](_0x1d1820,0x14,'AgentReject');ami[_0x756e('0x26')](_0x756e('0xe3'),ut['buildObj'](_0x1d1820,'agentreject'));rpcDb['createCustomerHistory'](_0x1d1820,'[syncHangupRequest][logAgentReject]');if(ut[_0x756e('0xa6')](_0x1d1820)>=_0x3f7b80[_0x756e('0xac')]){_0x57257a=ut[_0x756e('0xad')](_0x1d1820,0x14,_0x756e('0xe4'));rpcDb['createCustomerFinal'](_0x57257a,'[callProgressDetectingCustomer][logAgentReject]');}else{if(_0x1d1820[_0x756e('0xe2')]>=_0x3f7b80[_0x756e('0xe5')]){rpcDb[_0x756e('0x9a')](_0x1d1820,'[callProgressDetectingCustomer][logAgentReject]');}else{rpcDb[_0x756e('0xd8')](ut[_0x756e('0xb0')](_0x1d1820,_0x756e('0xe2'),_0x3f7b80[_0x756e('0xe6')]),_0x1d1820[_0x756e('0xd0')],_0x1d1820[_0x756e('0xb2')]);}}break;case _0x756e('0xe7'):_0x3f7b80[_0x756e('0x43')]+=0x1;_0x1d1820[_0x756e('0xe8')]+=0x1;_0x1d1820['countglobal']=ut['totalGlobal'](_0x1d1820);ut[_0x756e('0x94')](_0x1d1820,0xb,_0x756e('0xe9'));rpcDb[_0x756e('0x97')](_0x1d1820,_0x756e('0xea'));if(ut[_0x756e('0xa6')](_0x1d1820)>=_0x3f7b80[_0x756e('0xac')]){_0x57257a=ut[_0x756e('0xad')](_0x1d1820,0xf,_0x756e('0xcc'));rpcDb[_0x756e('0x9a')](_0x57257a,_0x756e('0xea'));}else{if(_0x1d1820[_0x756e('0xeb')]>=_0x3f7b80[_0x756e('0xec')]){rpcDb[_0x756e('0x9a')](_0x1d1820,_0x756e('0xea'));}else{rpcDb[_0x756e('0xd8')](ut[_0x756e('0xb0')](_0x1d1820,_0x756e('0xe8'),_0x3f7b80[_0x756e('0xed')]),_0x1d1820['unlockAgent'],_0x1d1820['activeContact']);}}break;case'18':_0x3f7b80[_0x756e('0x42')]+=0x1;_0x1d1820['countmachineretry']+=0x1;_0x1d1820[_0x756e('0xa5')]=ut['totalGlobal'](_0x1d1820);ut['logCustomer'](_0x1d1820,0x12,_0x58f56d['cause-txt']||_0x58f56d[_0x756e('0xee')]);ami[_0x756e('0x26')](_0x756e('0xef'),ut[_0x756e('0xa9')](_0x1d1820,_0x756e('0xf0')));rpcDb[_0x756e('0x97')](_0x1d1820,'[callProgressDetectingCustomer][hangupInAMD]');if(ut['totalGlobal'](_0x1d1820)>=_0x3f7b80[_0x756e('0xac')]){_0x57257a=ut[_0x756e('0xad')](_0x1d1820,0xf,_0x756e('0xcc'));rpcDb['createCustomerFinal'](_0x57257a,_0x756e('0xf1'));}else{rpcDb[_0x756e('0x9a')](_0x1d1820,_0x756e('0xf1'));}delete this[_0x756e('0x14')][_0x58f56d[_0x756e('0xb3')]];break;case'19':_0x3f7b80[_0x756e('0x42')]+=0x1;_0x1d1820[_0x756e('0xa5')]=ut[_0x756e('0xa6')](_0x1d1820);ut['logCustomer'](_0x1d1820,0x13,_0x58f56d[_0x756e('0xf2')]||_0x58f56d[_0x756e('0xee')]);ami['emit'](_0x756e('0xef'),ut[_0x756e('0xa9')](_0x1d1820,_0x756e('0xf0')));rpcDb['createCustomerHistory'](_0x1d1820,_0x756e('0xf3'));if(ut[_0x756e('0xa6')](_0x1d1820)>=_0x3f7b80[_0x756e('0xac')]){_0x57257a=ut[_0x756e('0xad')](_0x1d1820,0xf,_0x756e('0xcc'));rpcDb[_0x756e('0x9a')](_0x57257a,_0x756e('0xf3'));}else{rpcDb[_0x756e('0x9a')](_0x1d1820,_0x756e('0xf3'));}delete this['actions'][_0x58f56d[_0x756e('0xb3')]];break;default:if(_0x1d1820[_0x756e('0x72')]){ut[_0x756e('0x7c')](_0x3f7b80,'[default]');ut[_0x756e('0x7d')](_0x756e('0xf4')+_0x3f7b80[_0x756e('0x29')],_0x58f56d);}_0x3f7b80['outboundUnknownCallsDay']+=0x1;_0x1d1820[_0x756e('0xa5')]=ut[_0x756e('0xa6')](_0x1d1820);ut[_0x756e('0x94')](_0x1d1820,0xc,_0x58f56d[_0x756e('0xf2')]||_0x58f56d[_0x756e('0xee')]);rpcDb[_0x756e('0x97')](_0x1d1820,_0x756e('0xf5'));if(ut[_0x756e('0xa6')](_0x1d1820)>=_0x3f7b80[_0x756e('0xac')]){_0x57257a=ut[_0x756e('0xad')](_0x1d1820,0xf,_0x756e('0xcc'));rpcDb[_0x756e('0x9a')](_0x57257a,_0x756e('0xf6'));}else{rpcDb['createCustomerFinal'](_0x1d1820,'[callProgressDetectingCustomer][logUnknownGlobal]');}delete this['actions'][_0x58f56d[_0x756e('0xb3')]];}if(!(_0x1d1820['dialAnswer']&&_0x2ea1bf==='16')){ut[_0x756e('0x7a')](_0x3f7b80,_0x756e('0xf7'));logger[_0x756e('0x59')](_0x756e('0xf8'),_0x1d1820[_0x756e('0xb7')],'\x20Queue',_0x3f7b80[_0x756e('0x29')],_0x756e('0x6f'),_0x3f7b80['originated']);}if(_0x2ea1bf!==_0x756e('0xb4')){delete this['actions'][_0x58f56d[_0x756e('0xb3')]];delete this['actions'][_0x58f56d[_0x756e('0xf9')]];}}};Preview['prototype'][_0x756e('0xfa')]=function(_0x53283b,_0x737b8f,_0x2706f8){if(_[_0x756e('0xfb')](_0x737b8f)&&_0x756e('0xfc')!==typeof _0x737b8f){return;}if(_[_0x756e('0xfb')](_0x2706f8)&&_0x756e('0xfc')!==typeof _0x2706f8){return;}switch(_0x2706f8[_0x756e('0xfd')]){case'0':ut[_0x756e('0xfe')](_0x53283b,0x0,_0x756e('0xa7'));rpcDb['createAgentHistory'](_0x53283b,_0x756e('0xff'));break;case'3':ut[_0x756e('0xfe')](_0x53283b,0x3,'NoAnswer');rpcDb[_0x756e('0x100')](_0x53283b,'[callProgressDetectingAgent][logNoAnswer]');break;case'5':ut[_0x756e('0xfe')](_0x53283b,0x5,_0x756e('0xc8'));rpcDb[_0x756e('0x100')](_0x53283b,_0x756e('0x101'));break;case'8':ut[_0x756e('0xfe')](_0x53283b,0x8,'Congestion');rpcDb[_0x756e('0x100')](_0x53283b,_0x756e('0x102'));break;case'22':ut[_0x756e('0xfe')](_0x53283b,0x16,_0x756e('0x103'));rpcDb[_0x756e('0x100')](_0x53283b,'[callProgressDetectingAgent][logAnswerAGI]');break;default:ut[_0x756e('0xfe')](_0x53283b,0xc,_0x2706f8[_0x756e('0xfd')]);rpcDb['createAgentHistory'](_0x53283b,_0x756e('0x102'));}ut[_0x756e('0x7a')](_0x737b8f,_0x756e('0x104'));logger[_0x756e('0x59')](_0x756e('0x105'),_0x53283b[_0x756e('0xb7')],_0x756e('0xb8'),_0x737b8f[_0x756e('0x29')],_0x756e('0x6f'),_0x737b8f[_0x756e('0x4d')]);delete this['actions'][_0x53283b[_0x756e('0xb7')]];};Preview[_0x756e('0x10')][_0x756e('0x106')]=function(_0x397a2b,_0x2cac5d,_0x5d37f2,_0x25e23c,_0x207f2e){var _0x106f83=this;return new BPromise(function(_0x13df68,_0x192b2f){if(_[_0x756e('0x86')](_0x2cac5d)||_[_0x756e('0x86')](_0x2cac5d['Contact'])||_['isNil'](_0x2cac5d[_0x756e('0x107')]['phone'])||_[_0x756e('0x86')](_0x2cac5d[_0x756e('0x75')])){_0x192b2f(ut[_0x756e('0x4c')](_0x756e('0x108'),_0x25e23c,_0x207f2e));return;}var _0x48d13c=uuid['v4']();var _0x5f3989=_0x106f83[_0x756e('0x25')][_0x2cac5d[_0x756e('0x6e')][_0x756e('0x29')]];var _0x2786ec=_0x5d37f2?_0x106f83[_0x756e('0x15')][_0x5d37f2]['id']:undefined;_0x106f83['actions'][_0x48d13c]=new Action(_0x2cac5d,_0x5f3989,_0x48d13c,_0x5d37f2,_0x2786ec);var _0x302325=_0x106f83[_0x756e('0x14')][_0x48d13c];_0x302325[_0x756e('0xd0')]=_0x25e23c;_0x302325[_0x756e('0xb2')]=_0x207f2e;_0x302325[_0x756e('0x109')]=_0x5d37f2;if(_[_0x756e('0x10a')](_0x397a2b)){_0x106f83[_0x756e('0x10b')](_0x302325,_0x5f3989,_0x2cac5d,_0x5d37f2)[_0x756e('0x85')](function(_0x3dc2d7){logger[_0x756e('0x59')](_0x756e('0x10c'),'Queue:\x20'+_0x302325['queue']+'\x20IdHopper:\x20'+_0x302325[_0x756e('0x10d')],JSON[_0x756e('0x55')](_0x3dc2d7));ami['emit'](_0x756e('0x10e'),ut[_0x756e('0xa9')](_0x302325,_0x756e('0x10f'),_0x106f83['campaignsPreview'][_0x302325[_0x756e('0x71')]]));_0x13df68(ut[_0x756e('0x4c')](_0x756e('0x110')));})[_0x756e('0x8f')](function(_0x531402){ut['logger'](_0x756e('0x111'),_0x531402);_0x192b2f(ut[_0x756e('0x4c')]('Call\x20failed',_0x25e23c,_0x207f2e));});}else{_0x5f3989[_0x756e('0x3a')]+=0x1;ut[_0x756e('0x112')](_0x302325);rpcDb['createHistory'](_0x302325,_0x756e('0x113'));delete _0x106f83['actions'][_0x48d13c];_0x192b2f(ut[_0x756e('0x4c')](_0x756e('0x114'),_0x25e23c,_0x207f2e));}});};Preview['prototype'][_0x756e('0x9e')]=function(_0x30ab9c){return!_[_0x756e('0x86')](_0x30ab9c)&&!_['isNil'](_0x30ab9c[_0x756e('0x29')])&&!_[_0x756e('0x86')](_0x30ab9c[_0x756e('0x53')])&&_0x30ab9c[_0x756e('0x53')]&&!_[_0x756e('0x86')](this[_0x756e('0x13')][util['format'](_0x756e('0x115'),_0x30ab9c[_0x756e('0x29')])])&&!_['isNil'](this[_0x756e('0x13')][util[_0x756e('0x56')](_0x756e('0x115'),_0x30ab9c['name'])][_0x756e('0x116')])&&(this[_0x756e('0x13')][util['format']('SIP/%s',_0x30ab9c[_0x756e('0x29')])][_0x756e('0x116')]===_0x756e('0x117')||this[_0x756e('0x13')][util['format']('SIP/%s',_0x30ab9c[_0x756e('0x29')])][_0x756e('0x116')]===_0x756e('0x118'));};Preview[_0x756e('0x10')][_0x756e('0x8d')]=function(_0x3de331,_0x595cb1){var _0x48060c=this;return new BPromise(function(_0x5c03cf,_0x497e86){_0x48060c[_0x756e('0x119')](_0x3de331,_0x595cb1)[_0x756e('0x85')](function(_0x34b83e){_0x5c03cf(_[_0x756e('0x73')](_0x34b83e,[_0x756e('0x4c')]));})['catch'](function(_0x1cff4f){if(_0x1cff4f[_0x756e('0x11a')]){rpcDb[_0x756e('0x11b')](_0x3de331);}if(_0x1cff4f['active']){rpcDb[_0x756e('0x91')](_0x3de331);}_0x497e86(_[_0x756e('0x73')](_0x1cff4f,[_0x756e('0x4c')]));});});};Preview[_0x756e('0x10')]['execRun']=function(_0x148931,_0x840c22){var _0x4862f8=this;return new BPromise(function(_0x4e2f5f,_0x42433a){var _0x22d3a8,_0x390fed;rpcDb[_0x756e('0x11c')](_0x148931)[_0x756e('0x85')](function(_0x4842c2){if(!_[_0x756e('0x86')](_0x4842c2[0x0])){_0x390fed=_0x4842c2[0x0]['recallme']?![]:!![];_0x22d3a8=_0x4842c2[0x0][_0x756e('0x11d')]?!![]:![];_0x22d3a8=_0x840c22?!![]:_0x22d3a8;}var _0x131e1b=_0x4862f8[_0x756e('0x11e')](_0x4842c2);if(_0x131e1b[_0x756e('0x11f')]){rpcDb[_0x756e('0x120')](_[_0x756e('0x73')](_0x4842c2[0x0],[_0x756e('0x75'),_0x756e('0x121')]))[_0x756e('0x85')](function(_0x177c65){_0x4862f8[_0x756e('0x106')](_0x177c65,_0x4842c2[0x0],_0x840c22,_0x390fed,_0x22d3a8)[_0x756e('0x85')](function(_0x3d21af){_0x4e2f5f(_0x3d21af);})[_0x756e('0x8f')](function(_0xec045e){_0x42433a(_0xec045e);});})[_0x756e('0x8f')](function(_0x1fe9cf){ut[_0x756e('0x62')](_0x756e('0x122'),_0x1fe9cf);_0x42433a(ut['message']('Call\x20unsuccessful',_0x390fed,_0x22d3a8));});}else{_0x42433a(ut[_0x756e('0x4c')](_0x131e1b[_0x756e('0x4c')],_0x390fed,_0x22d3a8));}})[_0x756e('0x8f')](function(_0x45ca6c){ut[_0x756e('0x62')](_0x756e('0x123'),_0x45ca6c);_0x42433a(ut['message'](_0x756e('0x124'),![],!![]));});});};Preview[_0x756e('0x10')][_0x756e('0x11e')]=function(_0x42b36c){if(_[_0x756e('0x86')](_0x42b36c)||_[_0x756e('0x10a')](_0x42b36c)||!_[_0x756e('0x86')](_0x42b36c[0x0]['Agent'])&&_[_0x756e('0x86')](_0x42b36c[0x0][_0x756e('0x8b')]['name'])){ut[_0x756e('0x62')]('[Preview][validateContact][Empty\x20Contact]',_0x42b36c);return{'isValid':![],'message':_0x756e('0x125')};}var _0x10157f=this[_0x756e('0x25')][_0x42b36c[0x0][_0x756e('0x6e')]['name']];_0x10157f[_0x756e('0x4c')]=_0x756e('0xa1');if(_[_0x756e('0x86')](_0x10157f)){ut[_0x756e('0x62')](_0x756e('0x126'),_0x10157f);return{'isValid':![],'message':_0x756e('0x127')};}if(!this['isTrunkReachable'](_0x10157f[_0x756e('0x52')])){ut['logger'](_0x756e('0x128'),'campaign\x20Name:\x20'+_0x10157f['name']+'\x20Trunk\x20is\x20not\x20active');if(!this[_0x756e('0x9e')](_0x10157f[_0x756e('0x9f')])){ut[_0x756e('0x62')](_0x756e('0x128'),_0x10157f[_0x756e('0x29')]+'\x20Trunk\x20Backup\x20is\x20not\x20active');return{'isValid':![],'message':_0x756e('0x129')};}}if(!ut[_0x756e('0x12a')](_0x10157f['dialActive'])){ut['logger'](_0x756e('0x12b'),_0x10157f['name']+_0x756e('0x12c'));return{'isValid':![],'message':_0x756e('0x12d')+_0x10157f[_0x756e('0x29')]+_0x756e('0x12c')};}return{'isValid':!![],'message':'Is\x20Valid'};};Preview[_0x756e('0x10')][_0x756e('0x10b')]=function(_0x49296a,_0x771ae8,_0x5448b7,_0x3db762){var _0x175250=this;return new BPromise(function(_0x4c656d,_0x140fb9){var _0x9527f=_0x49296a[_0x756e('0xb7')];var _0x3f5f43=_0x175250['isTrunkReachable'](_0x771ae8[_0x756e('0x52')])?util[_0x756e('0x56')](_0x756e('0x12e'),_0x771ae8['Trunk'][_0x756e('0x29')],_['isNil'](_0x771ae8[_0x756e('0x12f')])?'':_0x771ae8[_0x756e('0x12f')][_0x756e('0x130')]()||'',_0x771ae8['dialCutDigit']>0x0?_0x5448b7[_0x756e('0x107')]['phone'][_0x756e('0x131')](_0x771ae8[_0x756e('0x132')]):_0x5448b7[_0x756e('0x107')][_0x756e('0x133')]):util[_0x756e('0x56')](_0x756e('0x12e'),_['isNil'](_0x771ae8[_0x756e('0x9f')])?_0x771ae8[_0x756e('0x52')][_0x756e('0x29')]:_0x771ae8[_0x756e('0x9f')][_0x756e('0x29')],_['isNil'](_0x771ae8[_0x756e('0x12f')])?'':_0x771ae8[_0x756e('0x12f')][_0x756e('0x130')]()||'',_0x771ae8[_0x756e('0x132')]>0x0?_0x5448b7[_0x756e('0x107')][_0x756e('0x133')][_0x756e('0x131')](_0x771ae8[_0x756e('0x132')]):_0x5448b7[_0x756e('0x107')][_0x756e('0x133')]);var _0x10b6eb=_0x175250[_0x756e('0x9e')](_0x771ae8[_0x756e('0x52')])?ut[_0x756e('0x134')](_0x771ae8['Trunk'][_0x756e('0x135')],_0x771ae8['dialOriginateCallerIdName'],_0x771ae8[_0x756e('0x136')]>0x0?ut['getCallerIdRandom'](_0x771ae8[_0x756e('0x36')],_0x771ae8[_0x756e('0x136')]):_0x771ae8['dialOriginateCallerIdNumber']):ut[_0x756e('0x134')](_[_0x756e('0x86')](_0x771ae8[_0x756e('0x9f')])?_0x771ae8['Trunk']['callerid']:_0x771ae8[_0x756e('0x9f')][_0x756e('0x135')],_0x771ae8[_0x756e('0x137')],_0x771ae8[_0x756e('0x136')]>0x0?ut['getCallerIdRandom'](_0x771ae8[_0x756e('0x36')],_0x771ae8[_0x756e('0x136')]):_0x771ae8[_0x756e('0x36')]);if(_0x10b6eb){_0x49296a[_0x756e('0x138')]=ut['extractCalleridName'](_0x10b6eb);_0x49296a[_0x756e('0x139')]=ut[_0x756e('0x13a')](_0x10b6eb);}var _0x371c7b=ut[_0x756e('0x13b')](_0x771ae8,_0x5448b7,_0x3f5f43,_0x10b6eb,_0x9527f,_0x49296a);_[_0x756e('0x13c')](_0x49296a,ut['toLowerVariables'](_0x371c7b));_0x49296a['starttime']=moment()[_0x756e('0x56')](_0x756e('0x93'));ami[_0x756e('0x77')](ut[_0x756e('0x13d')](_0x49296a,_0x771ae8,_0x371c7b,_0x49296a['activeContact'],_0x3db762))[_0x756e('0x85')](function(_0x941226){_0x771ae8[_0x756e('0x4d')]+=0x1;logger[_0x756e('0x59')]('[originated][increment]',_0x9527f,'\x20Queue',_0x771ae8[_0x756e('0x29')],_0x756e('0x6f'),_0x771ae8[_0x756e('0x4d')]);_0x4c656d(_0x941226);})[_0x756e('0x8f')](function(_0x174908){ut[_0x756e('0xfe')](_0x49296a,0xe,'OriginateError');rpcDb[_0x756e('0x100')](_0x49296a,_0x756e('0x13e'));_0x140fb9(_0x174908);});});};Preview[_0x756e('0x10')][_0x756e('0x1e')]=function(_0x1d05c0){if(this['actions'][_0x1d05c0[_0x756e('0xb3')]]){this[_0x756e('0x14')][_0x1d05c0[_0x756e('0xb3')]]['channel']=_0x1d05c0[_0x756e('0x78')];}};Preview['prototype'][_0x756e('0x13f')]=function(_0x799131){var _0x331917=this;var _0x10d4c7=this[_0x756e('0x14')][_0x799131[_0x756e('0x140')]];if(_0x10d4c7){if(_0x10d4c7[_0x756e('0x109')]&&this[_0x756e('0x15')][_0x10d4c7['lookAgent']]){ut[_0x756e('0x141')](_0x10d4c7,this[_0x756e('0x15')][_0x10d4c7[_0x756e('0x109')]][_0x756e('0x29')],this[_0x756e('0x15')][_0x10d4c7[_0x756e('0x109')]]['id']);}var _0x469f4f=_[_0x756e('0x142')](_0x10d4c7);_0x469f4f[_0x756e('0x143')]=moment()[_0x756e('0x56')](_0x756e('0x93'));var _0x23bbb3=_0x331917['campaignsPreview'][_0x10d4c7[_0x756e('0x71')]];if(ut[_0x756e('0x144')](_0x799131[_0x756e('0x145')])){if(_0x10d4c7[_0x756e('0xd0')]){rpcDb['unlockContact'](_0x10d4c7['idContact']);}if(_0x10d4c7[_0x756e('0xb2')]){rpcDb[_0x756e('0x91')](_0x10d4c7[_0x756e('0x10d')]);}ami[_0x756e('0x26')](_0x756e('0x146'),ut['buildObj'](_0x10d4c7,_0x756e('0x147'),this[_0x756e('0x25')][_0x10d4c7[_0x756e('0x71')]]));this['callProgressDetectingAgent'](_0x469f4f,_0x23bbb3,_0x799131);}else{_0x10d4c7[_0x756e('0x92')]=moment()[_0x756e('0x56')](_0x756e('0x93'));ut[_0x756e('0xfe')](_0x469f4f,0x4,_0x756e('0xc0'));rpcDb[_0x756e('0x100')](_0x469f4f,_0x756e('0x148'));}}};Preview['prototype']['syncHangup']=function(_0x3985be){var _0xeea0ef=this;var _0xd24352=this[_0x756e('0x14')][_0x3985be[_0x756e('0xb3')]];var _0x1612ea;if(_0xd24352){_0x1612ea=this[_0x756e('0x25')][_0xd24352[_0x756e('0x71')]];logger[_0x756e('0x59')](_0x756e('0x149'),_0x3985be[_0x756e('0xb3')],_0x756e('0xb8'),_0x1612ea[_0x756e('0x29')],_0x756e('0x70'),_0x1612ea['pTalking']);}if(this[_0x756e('0x14')][_0x3985be[_0x756e('0xb3')]]&&_0x3985be[_0x756e('0xb3')]!==_0x3985be['uniqueid']){if(_0x3985be['cause']==='16'&&this['actions'][_0x3985be[_0x756e('0xb3')]]['dialAnswer']){this[_0x756e('0xa2')](_0x3985be,_0x3985be['linkedid'],_0x3985be[_0x756e('0x14a')]);}else if(this['actions'][_0x3985be[_0x756e('0xb3')]]['dialAnswer']){logger['info'](_0x756e('0x14b'),_0x3985be['linkedid'],_0x3985be['cause'],_0x756e('0xb8'),_0x1612ea[_0x756e('0x29')],'pTalking:\x20',_0x1612ea[_0x756e('0x5e')]);this[_0x756e('0xa2')](_0x3985be,_0x3985be[_0x756e('0xb3')],_0x3985be['cause']);}}else if(_0xd24352&&_[_0x756e('0x86')](_0xd24352[_0x756e('0x14c')])&&_0x1612ea['dialQueueProject']&&_0x3985be['linkedid']===_0x3985be[_0x756e('0xb7')]&&_[_0x756e('0x86')](_0x3985be['reason'])&&_0x3985be[_0x756e('0x14a')]==='16'&&_0x3985be[_0x756e('0x14d')]==='6'&&_[_0x756e('0xfb')](_0xd24352['transfer'])){if(_0xd24352['unlockAgent']){rpcDb[_0x756e('0x11b')](_0xd24352[_0x756e('0x10d')]);}if(_0xd24352[_0x756e('0xb2')]){rpcDb['disableContact'](_0xd24352['idContact']);}_0x3985be[_0x756e('0xfd')]='22';this['callProgressDetectingAgent'](_0xd24352,_0x1612ea,_0x3985be);}else if(_0xd24352&&_0xd24352[_0x756e('0x14e')]){if(_0x3985be[_0x756e('0x14a')]==='16'&&this['actions'][_0x3985be['linkedid']][_0x756e('0x72')]){logger['info']('[syncHangup][talking][transfer]',_0x3985be[_0x756e('0xb3')],_0x3985be['cause'],_0x756e('0xb8'),_0x1612ea['name'],_0x756e('0x70'),_0x1612ea[_0x756e('0x5e')]);this['callProgressDetectingCustomer'](_0x3985be,_0x3985be['linkedid'],_0x3985be[_0x756e('0x14a')]);}else if(this[_0x756e('0x14')][_0x3985be[_0x756e('0xb3')]][_0x756e('0x72')]){logger['info'](_0x756e('0x14b'),_0x3985be[_0x756e('0xb3')],_0x3985be['cause'],'\x20Queue',_0x1612ea[_0x756e('0x29')],_0x756e('0x70'),_0x1612ea[_0x756e('0x5e')]);this[_0x756e('0xa2')](_0x3985be,_0x3985be[_0x756e('0xb3')],_0x3985be[_0x756e('0x14a')]);}}};Preview[_0x756e('0x10')][_0x756e('0x1c')]=function(_0x6dde4){if(this[_0x756e('0x14')][_0x6dde4[_0x756e('0xf9')]]&&_0x6dde4[_0x756e('0xf9')]!==_0x6dde4[_0x756e('0x14f')]){this[_0x756e('0xa2')](_0x6dde4,_0x6dde4[_0x756e('0xf9')],_0x6dde4[_0x756e('0xee')]);}};Preview[_0x756e('0x10')]['syncHangupRequest']=function(_0x1815c2){if(this[_0x756e('0x14')][_0x1815c2[_0x756e('0xb3')]]&&_0x1815c2[_0x756e('0xb3')]!==_0x1815c2[_0x756e('0xb7')]&&!this['actions'][_0x1815c2[_0x756e('0xb3')]][_0x756e('0x72')]){if(_0x1815c2['cause']==='1'){this['callProgressDetectingCustomer'](_0x1815c2,_0x1815c2[_0x756e('0xb3')],_0x1815c2['cause']);}}};Preview[_0x756e('0x10')][_0x756e('0x150')]=function(_0x5c57ad,_0x3d03ca,_0x3c4e63){if(this[_0x756e('0x14')][_0x5c57ad]){if(_[_0x756e('0x86')](this[_0x756e('0x14')][_0x5c57ad]['variables'])){this[_0x756e('0x14')][_0x5c57ad]['variables']={};}this[_0x756e('0x14')][_0x5c57ad][_0x756e('0x151')][_0x3d03ca]=_0x3c4e63;}};Preview[_0x756e('0x10')][_0x756e('0x20')]=function(_0x5e1f99){try{if(!_[_0x756e('0x86')](_0x5e1f99)){if(ut[_0x756e('0x152')](_[_0x756e('0x153')](_0x5e1f99[_0x756e('0x154')])[0x0])){this['addVariable'](_0x5e1f99[_0x756e('0xb7')],_['keys'](_0x5e1f99[_0x756e('0x154')])[0x0],_0x5e1f99['value']);}}}catch(_0x20599e){logger[_0x756e('0x155')]('[syncVarSet][Preview]',util['inspect'](_0x20599e,{'showHidden':![],'depth':null}));}};Preview[_0x756e('0x10')]['syncAttendedTransfer']=function(_0x138620){if(_0x138620){if(this[_0x756e('0x14')][_0x138620[_0x756e('0x156')]]){this[_0x756e('0x14')][_0x138620[_0x756e('0x156')]]['transfer']=!![];}}};Preview['prototype'][_0x756e('0x23')]=function(_0xe283b8){if(_0xe283b8){if(this[_0x756e('0x14')][_0xe283b8['transfererlinkedid']]){this[_0x756e('0x14')][_0xe283b8[_0x756e('0x157')]][_0x756e('0x14e')]=!![];}}};module[_0x756e('0x158')]=Preview;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe70e=['createAgentHistory','createCustomerHistory','createCustomerFinal','UserId','active','rescheduleContact','[rescheduleContact]\x20','countReScheduled','[countReScheduled]\x20','unlockContact','disableContact','[activeContact]\x20','crateCustomerReportQueue','type','uniqueid','calleridnum','calleridname','queue','queuecallerjoinAt','answertime','queuecallercomplete','endtime','connectedlinename','membername','context','from-sip','exten','holdtime','assigned','lastAssignedTo','queuecallerexitreason','COMPLETED','create','[voiceQueueReport]\x20','getContactRecallMe','[GetContactRecallMe]\x20','rescheduleContactInQueue','[rescheduleContactInQueue]\x20','util','../../../config/logger','preview','lodash','../rpc/cmHopper','../rpc/cmHopperFinal','../rpc/cmHopperHistory','../rpc/voiceQueueRt','../rpc/agentReportPreview','inspect','resolve','createHistory','catch','[createHistory]\x20','then','moveContactManagedDialer','[moveContactManagedDialer]\x20','checkIsBlackList','[checkIsBlackList]\x20','getContactPreview','[getContactPreview]\x20'];(function(_0x50a0c2,_0x4befab){var _0x5ebadd=function(_0x3a3342){while(--_0x3a3342){_0x50a0c2['push'](_0x50a0c2['shift']());}};_0x5ebadd(++_0x4befab);}(_0xe70e,0xd7));var _0xee70=function(_0x2a08ec,_0x4f9fa9){_0x2a08ec=_0x2a08ec-0x0;var _0x175776=_0xe70e[_0x2a08ec];return _0x175776;};'use strict';var util=require(_0xee70('0x0'));var BPromise=require('bluebird');var logger=require(_0xee70('0x1'))(_0xee70('0x2'));var _=require(_0xee70('0x3'));var cmHopper=require(_0xee70('0x4'));var cmHopperFinal=require(_0xee70('0x5'));var cmHopperHistory=require(_0xee70('0x6'));var cmHopperBlack=require('../rpc/cmHopperBlack');var voiceQueueRt=require(_0xee70('0x7'));var agentReportPreview=require(_0xee70('0x8'));var voiceQueueReport=require('../rpc/voiceQueueReport');function loggerCatch(_0x252cc3){return function(_0x209b01){logger['error'](_0x252cc3,util[_0xee70('0x9')](_0x209b01,{'showHidden':![],'depth':null}));};}function create(_0x1b5b5a){return BPromise[_0xee70('0xa')]()['then'](cmHopperHistory[_0xee70('0xb')](_0x1b5b5a))[_0xee70('0xc')](loggerCatch(_0xee70('0xd')));}function createAgent(_0x2cb7d5){return BPromise[_0xee70('0xa')]()[_0xee70('0xe')](agentReportPreview[_0xee70('0xb')](_0x2cb7d5))[_0xee70('0xc')](loggerCatch(_0xee70('0xd')));}function moveContact(_0x58f44d){return BPromise[_0xee70('0xa')]()['then'](cmHopper[_0xee70('0xf')](_0x58f44d,!![]))[_0xee70('0xc')](loggerCatch(_0xee70('0x10')));}exports[_0xee70('0x11')]=function(_0x16739c){return BPromise[_0xee70('0xa')]()[_0xee70('0xe')](cmHopperBlack[_0xee70('0x11')](_0x16739c))[_0xee70('0xc')](loggerCatch(_0xee70('0x12')));};exports[_0xee70('0x13')]=function(_0x18b14e){return BPromise[_0xee70('0xa')]()[_0xee70('0xe')](cmHopper[_0xee70('0x13')](_0x18b14e))[_0xee70('0xc')](loggerCatch(_0xee70('0x14')));};exports[_0xee70('0xb')]=function(_0x2ba8bc,_0xf2af36){create(_0x2ba8bc)['catch'](loggerCatch(_0xf2af36));moveContact(_0x2ba8bc)[_0xee70('0xc')](loggerCatch(_0xf2af36));};exports[_0xee70('0x15')]=function(_0x48b1d0,_0x49241e){createAgent(_0x48b1d0)['catch'](loggerCatch(_0x49241e));};exports[_0xee70('0x16')]=function(_0x13e8f5,_0x227416){create(_0x13e8f5)[_0xee70('0xc')](loggerCatch(_0x227416));};exports[_0xee70('0x17')]=function(_0x1ec318,_0x5b072e){moveContact(_0x1ec318)[_0xee70('0xc')](loggerCatch(_0x5b072e));};exports['rescheduleContact']=function(_0x3f0ca6,_0x694a65,_0x1cedd3){if(_0x694a65){_0x3f0ca6[_0xee70('0x18')]=null;}if(_0x1cedd3){_0x3f0ca6[_0xee70('0x19')]=![];}return BPromise['resolve']()[_0xee70('0xe')](cmHopper[_0xee70('0x1a')](_0x3f0ca6))['catch'](loggerCatch(_0xee70('0x1b')));};exports[_0xee70('0x1c')]=function(_0x58e973){return BPromise[_0xee70('0xa')]()[_0xee70('0xe')](cmHopper[_0xee70('0x1c')](_0x58e973))[_0xee70('0xc')](loggerCatch(_0xee70('0x1d')));};exports[_0xee70('0x1e')]=function(_0x3161b4){return BPromise['resolve']()[_0xee70('0xe')](cmHopper[_0xee70('0x1e')]({'UserId':null},_0x3161b4,0x1))[_0xee70('0xc')](loggerCatch('[unlockContact]\x20'));};exports[_0xee70('0x1f')]=function(_0x2f5943){return BPromise[_0xee70('0xa')]()[_0xee70('0xe')](cmHopper[_0xee70('0x1e')]({'active':![]},_0x2f5943,0x1))[_0xee70('0xc')](loggerCatch(_0xee70('0x20')));};exports[_0xee70('0x21')]=function(_0x1c77f1){var _0x2ed550={};_0x2ed550[_0xee70('0x22')]=_0x1c77f1['type'];_0x2ed550[_0xee70('0x23')]=_0x1c77f1[_0xee70('0x23')];_0x2ed550['calleridnum']=_0x1c77f1[_0xee70('0x24')];_0x2ed550[_0xee70('0x25')]=_0x1c77f1[_0xee70('0x25')];_0x2ed550[_0xee70('0x26')]=_0x1c77f1[_0xee70('0x26')];_0x2ed550[_0xee70('0x27')]=_0x1c77f1[_0xee70('0x28')];_0x2ed550['queuecallerleaveAt']=_0x1c77f1['answertime'];_0x2ed550[_0xee70('0x29')]=0x1;_0x2ed550['queuecallercompleteAt']=_0x1c77f1[_0xee70('0x2a')];_0x2ed550[_0xee70('0x2b')]=_0x1c77f1[_0xee70('0x2c')];_0x2ed550[_0xee70('0x2d')]=_0xee70('0x2e');_0x2ed550[_0xee70('0x2f')]='xcally-motion-preview';_0x2ed550[_0xee70('0x30')]=0x0;_0x2ed550[_0xee70('0x31')]=0x1;_0x2ed550[_0xee70('0x32')]=_0x1c77f1[_0xee70('0x2c')];_0x2ed550[_0xee70('0x33')]=_0xee70('0x34');return BPromise[_0xee70('0xa')]()['then'](voiceQueueReport[_0xee70('0x35')](_0x2ed550))['catch'](loggerCatch(_0xee70('0x36')));};exports[_0xee70('0x37')]=function(_0x5bca16,_0x4455c4){return BPromise[_0xee70('0xa')]()[_0xee70('0xe')](cmHopper[_0xee70('0x37')](_0x5bca16,_0x4455c4))['catch'](loggerCatch(_0xee70('0x38')));};exports[_0xee70('0x39')]=function(_0x58fcb3){return BPromise[_0xee70('0xa')]()[_0xee70('0xe')](cmHopper['rescheduleContact'](_0x58fcb3,!![],!![]))['catch'](loggerCatch(_0xee70('0x3a')));};
\ No newline at end of file
+var _0xbb2d=['[voiceQueueReport]\x20','getContactRecallMe','[GetContactRecallMe]\x20','rescheduleContactInQueue','[rescheduleContactInQueue]\x20','bluebird','../../../config/logger','preview','lodash','../rpc/cmHopper','../rpc/cmHopperFinal','../rpc/cmHopperHistory','../rpc/cmHopperBlack','../rpc/voiceQueueRt','../rpc/agentReportPreview','../rpc/voiceQueueReport','resolve','then','catch','[moveContactManagedDialer]\x20','checkIsBlackList','[checkIsBlackList]\x20','getContactPreview','[getContactPreview]\x20','createCustomerHistory','createCustomerFinal','rescheduleContact','active','[rescheduleContact]\x20','countReScheduled','[countReScheduled]\x20','unlockContact','[unlockContact]\x20','disableContact','crateCustomerReportQueue','type','uniqueid','calleridnum','calleridname','queue','queuecallerjoinAt','answertime','queuecallercompleteAt','connectedlinename','membername','context','from-sip','exten','xcally-motion-preview','holdtime','assigned','lastAssignedTo','queuecallerexitreason','COMPLETED'];(function(_0x7ba1c3,_0x3dd545){var _0x82b393=function(_0x1550ce){while(--_0x1550ce){_0x7ba1c3['push'](_0x7ba1c3['shift']());}};_0x82b393(++_0x3dd545);}(_0xbb2d,0xdd));var _0xdbb2=function(_0x86c6cb,_0x30bb53){_0x86c6cb=_0x86c6cb-0x0;var _0x1b1592=_0xbb2d[_0x86c6cb];return _0x1b1592;};'use strict';var util=require('util');var BPromise=require(_0xdbb2('0x0'));var logger=require(_0xdbb2('0x1'))(_0xdbb2('0x2'));var _=require(_0xdbb2('0x3'));var cmHopper=require(_0xdbb2('0x4'));var cmHopperFinal=require(_0xdbb2('0x5'));var cmHopperHistory=require(_0xdbb2('0x6'));var cmHopperBlack=require(_0xdbb2('0x7'));var voiceQueueRt=require(_0xdbb2('0x8'));var agentReportPreview=require(_0xdbb2('0x9'));var voiceQueueReport=require(_0xdbb2('0xa'));function loggerCatch(_0x4f9363){return function(_0x416638){logger['error'](_0x4f9363,util['inspect'](_0x416638,{'showHidden':![],'depth':null}));};}function create(_0x2de78b){return BPromise[_0xdbb2('0xb')]()[_0xdbb2('0xc')](cmHopperHistory['createHistory'](_0x2de78b))['catch'](loggerCatch('[createHistory]\x20'));}function createAgent(_0x5e83b9){return BPromise[_0xdbb2('0xb')]()[_0xdbb2('0xc')](agentReportPreview['createHistory'](_0x5e83b9))['catch'](loggerCatch('[createHistory]\x20'));}function moveContact(_0x2ccc98){return BPromise['resolve']()['then'](cmHopper['moveContactManagedDialer'](_0x2ccc98,!![]))[_0xdbb2('0xd')](loggerCatch(_0xdbb2('0xe')));}exports[_0xdbb2('0xf')]=function(_0x190bec){return BPromise[_0xdbb2('0xb')]()[_0xdbb2('0xc')](cmHopperBlack['checkIsBlackList'](_0x190bec))[_0xdbb2('0xd')](loggerCatch(_0xdbb2('0x10')));};exports[_0xdbb2('0x11')]=function(_0x4cfac8){return BPromise[_0xdbb2('0xb')]()[_0xdbb2('0xc')](cmHopper[_0xdbb2('0x11')](_0x4cfac8))[_0xdbb2('0xd')](loggerCatch(_0xdbb2('0x12')));};exports['createHistory']=function(_0x18ebe1,_0x4a49d8){create(_0x18ebe1)['catch'](loggerCatch(_0x4a49d8));moveContact(_0x18ebe1)['catch'](loggerCatch(_0x4a49d8));};exports['createAgentHistory']=function(_0x49c6e3,_0x47587a){createAgent(_0x49c6e3)['catch'](loggerCatch(_0x47587a));};exports[_0xdbb2('0x13')]=function(_0x27c55f,_0x277b2c){create(_0x27c55f)[_0xdbb2('0xd')](loggerCatch(_0x277b2c));};exports[_0xdbb2('0x14')]=function(_0x36ea13,_0x14663a){moveContact(_0x36ea13)[_0xdbb2('0xd')](loggerCatch(_0x14663a));};exports[_0xdbb2('0x15')]=function(_0x1fb9fb,_0x269080,_0xcacca2){if(_0x269080){_0x1fb9fb['UserId']=null;}if(_0xcacca2){_0x1fb9fb[_0xdbb2('0x16')]=![];}return BPromise[_0xdbb2('0xb')]()[_0xdbb2('0xc')](cmHopper['rescheduleContact'](_0x1fb9fb))['catch'](loggerCatch(_0xdbb2('0x17')));};exports[_0xdbb2('0x18')]=function(_0x1ffb9a){return BPromise[_0xdbb2('0xb')]()[_0xdbb2('0xc')](cmHopper[_0xdbb2('0x18')](_0x1ffb9a))['catch'](loggerCatch(_0xdbb2('0x19')));};exports[_0xdbb2('0x1a')]=function(_0x47417a){return BPromise[_0xdbb2('0xb')]()[_0xdbb2('0xc')](cmHopper[_0xdbb2('0x1a')]({'UserId':null},_0x47417a,0x1))['catch'](loggerCatch(_0xdbb2('0x1b')));};exports[_0xdbb2('0x1c')]=function(_0x4b68d6){return BPromise[_0xdbb2('0xb')]()[_0xdbb2('0xc')](cmHopper[_0xdbb2('0x1a')]({'active':![]},_0x4b68d6,0x1))[_0xdbb2('0xd')](loggerCatch('[activeContact]\x20'));};exports[_0xdbb2('0x1d')]=function(_0x6ae82b){var _0x4691d2={};_0x4691d2['type']=_0x6ae82b[_0xdbb2('0x1e')];_0x4691d2[_0xdbb2('0x1f')]=_0x6ae82b['uniqueid'];_0x4691d2[_0xdbb2('0x20')]=_0x6ae82b['calleridnum'];_0x4691d2[_0xdbb2('0x21')]=_0x6ae82b[_0xdbb2('0x21')];_0x4691d2[_0xdbb2('0x22')]=_0x6ae82b[_0xdbb2('0x22')];_0x4691d2[_0xdbb2('0x23')]=_0x6ae82b[_0xdbb2('0x24')];_0x4691d2['queuecallerleaveAt']=_0x6ae82b[_0xdbb2('0x24')];_0x4691d2['queuecallercomplete']=0x1;_0x4691d2[_0xdbb2('0x25')]=_0x6ae82b['endtime'];_0x4691d2[_0xdbb2('0x26')]=_0x6ae82b[_0xdbb2('0x27')];_0x4691d2[_0xdbb2('0x28')]=_0xdbb2('0x29');_0x4691d2[_0xdbb2('0x2a')]=_0xdbb2('0x2b');_0x4691d2[_0xdbb2('0x2c')]=0x0;_0x4691d2[_0xdbb2('0x2d')]=0x1;_0x4691d2[_0xdbb2('0x2e')]=_0x6ae82b[_0xdbb2('0x27')];_0x4691d2[_0xdbb2('0x2f')]=_0xdbb2('0x30');return BPromise[_0xdbb2('0xb')]()['then'](voiceQueueReport['create'](_0x4691d2))[_0xdbb2('0xd')](loggerCatch(_0xdbb2('0x31')));};exports[_0xdbb2('0x32')]=function(_0x3cafea,_0x2af1c0){return BPromise[_0xdbb2('0xb')]()[_0xdbb2('0xc')](cmHopper['getContactRecallMe'](_0x3cafea,_0x2af1c0))['catch'](loggerCatch(_0xdbb2('0x33')));};exports[_0xdbb2('0x34')]=function(_0x182107){return BPromise[_0xdbb2('0xb')]()[_0xdbb2('0xc')](cmHopper[_0xdbb2('0x15')](_0x182107,!![],!![]))[_0xdbb2('0xd')](loggerCatch(_0xdbb2('0x35')));};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0167=['lodash','moment','../../../../config/logger','preview','XCALLY_IP_AGI','127.0.0.1','milliseconds','diff','seconds','loggerCatch','error','logger','info','inspect','loggerError','logger2','message','getCallerId','isUndefined','string','isEmpty','format','\x22%s\x22\x20<%s>','\x22\x22\x20<>','isNil','Queue','name','calleridname','calleridnum','ContactId','dialer','VoiceQueueId','dialOriginateTimeout','\x22rtTxX%s%s\x22','dialQueueProject2','monitor_format','U(xcally-mixmonitor-context)','dialPreviewUrl','dialQueueProject','NONE','originatecalleridname','xcally-motion-preview','Call-Type:\x20PREVIEW','_XCALLY_MIXMONITOR_FORMAT','_XCALLY_MIXMONITOR_UNIQUEID','Contact','tags','updatedAt','%s%s','XMD-','toUpper','hasOwnProperty','toLower','updateOriginated','originated','[updateOriginated]\x20object\x20originated\x20is\x20negative','[updateOriginated]\x20is\x20null\x20or\x20undefined','logBlacklist','state','Blacklist','starttime','responsetime','endtime','YYYY-MM-DD\x20HH:mm:ss','ringtime','membername','UserId','logCustomer','statedesc','talktime','answertime','Failure','variablesAction','RECALL','channelAgent','from-sip','uniqueid','totalGlobal','countbusyretry','countcongestionretry','countnoanswerretry','countagentrejectretry','countnosuchnumberretry','cloneAction','clone','Global','scheduledAt','active','add','minutes','ListId','pTalking','[decrementTalkink]\x20object\x20talking\x20is\x20negative','[decrementTalkink]\x20is\x20null\x20or\x20undefined','IsNotLoggedIn','buildObj','lastevent','interface','voice','buildAcw','queue','agentReadyId','push','getDiff','createBody','CampaignId','filterKey','type','campaigntype','scheduledat','countglobal','callback','callbackuniqueid','recallme','xmd-voicequeueid','xmd-queue','xmd-phone','xmd-listid','xmd-dialurl','xmd-dialtimeout','xmd-dialoptions','xmd-dialid','xmd-dialchannel','xmd-contactid','xmd-agiafter','xmd-agi','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqoslossbridged','rtpaudioqosrtt','rtpaudioqosrttbridged','rtpaudioqosjitterbridged','rtpaudioqosloss','bridgepvtcallid','pow','replace','extractCalleridName','match','util'];(function(_0x4a0ff0,_0x39bcd5){var _0x28c7e0=function(_0x294c6b){while(--_0x294c6b){_0x4a0ff0['push'](_0x4a0ff0['shift']());}};_0x28c7e0(++_0x39bcd5);}(_0x0167,0x1a3));var _0x7016=function(_0x346f5a,_0x15b1a6){_0x346f5a=_0x346f5a-0x0;var _0x10a63d=_0x0167[_0x346f5a];return _0x10a63d;};'use strict';var util=require(_0x7016('0x0'));var _=require(_0x7016('0x1'));var moment=require(_0x7016('0x2'));var logger=require(_0x7016('0x3'))(_0x7016('0x4'));var ipAgi=process['env'][_0x7016('0x5')]||_0x7016('0x6');function getSeconds(_0x265cd5,_0x4debe1){var _0xa1cc4d=moment(_0x265cd5)[_0x7016('0x7')](0x0);var _0x39bc77=moment(_0x4debe1)[_0x7016('0x7')](0x0);return _0xa1cc4d[_0x7016('0x8')](_0x39bc77,_0x7016('0x9'));}exports[_0x7016('0xa')]=function(_0x15393f){return function(_0x26d643){logger[_0x7016('0xb')](_0x15393f,util['inspect'](_0x26d643,{'showHidden':![],'depth':null}));};};exports[_0x7016('0xc')]=function(_0x3688c2,_0x5e7836){logger[_0x7016('0xd')](_0x3688c2,util[_0x7016('0xe')](_0x5e7836,{'showHidden':![],'depth':null}));};exports[_0x7016('0xf')]=function(_0x598a21,_0x77d297){logger[_0x7016('0xb')](_0x598a21,util[_0x7016('0xe')](_0x77d297,{'showHidden':![],'depth':null}));};exports[_0x7016('0x10')]=function(_0x5055eb){return function(_0x22ad03){logger[_0x7016('0xd')](_0x5055eb,util[_0x7016('0xe')](_0x22ad03,{'showHidden':![],'depth':null}));};};exports[_0x7016('0x11')]=function(_0x4882aa,_0x77d6c9,_0x45c80e){return{'message':_0x4882aa,'unlock':_0x77d6c9,'active':_0x45c80e};};exports[_0x7016('0x12')]=function(_0x1f2825,_0x40894a,_0x3b366b){if(!_[_0x7016('0x13')](_0x3b366b)&&_0x7016('0x14')===typeof _0x3b366b&&!_[_0x7016('0x15')](_0x3b366b)){if(!_['isUndefined'](_0x40894a)&&'string'===typeof _0x40894a&&!_[_0x7016('0x15')](_0x40894a)){return util[_0x7016('0x16')](_0x7016('0x17'),_0x40894a,_0x3b366b);}return util['format'](_0x7016('0x17'),_0x3b366b,_0x3b366b);}if(!_[_0x7016('0x13')](_0x1f2825)&&'string'===typeof _0x1f2825&&!_[_0x7016('0x15')](_0x1f2825)){return _0x1f2825;}return _0x7016('0x18');};exports['isActive']=function(_0x14c88){if(_[_0x7016('0x19')](_0x14c88)){return![];}return _0x14c88;};exports['addVariables']=function(_0x4fa999,_0x4ce0a2,_0xfc4b62,_0x19e3ed,_0x57935a,_0x30ffc9){var _0x32a1dc={'XMD-QUEUE':_0x4ce0a2[_0x7016('0x1a')]?_0x4ce0a2[_0x7016('0x1a')][_0x7016('0x1b')]:'','XMD-CALLERID':_0x19e3ed,'XMD-CALLERID-PREVIEW':_0x30ffc9?util[_0x7016('0x16')](_0x7016('0x17'),_0x30ffc9[_0x7016('0x1c')],_0x30ffc9[_0x7016('0x1d')]):_0x19e3ed,'XMD-DIALID':_0x57935a,'XMD-CONTACTID':_0x4ce0a2[_0x7016('0x1e')],'XMD-CDRTYPE':_0x7016('0x1f'),'CALLERID(all)':_0x19e3ed,'XMD-VOICEQUEUEID':_0x4ce0a2[_0x7016('0x20')],'XMD-DIALCHANNEL':_0xfc4b62,'XMD-DIALTIMEOUT':_0x4fa999[_0x7016('0x21')]||0x1e,'XMD-DIALOPTIONS':util[_0x7016('0x16')](_0x7016('0x22'),_0x4fa999[_0x7016('0x23')]?'g':'',_[_0x7016('0x15')](_0x4fa999[_0x7016('0x24')])?'':_0x7016('0x25')),'XMD-DIALURL':_0x4fa999[_0x7016('0x26')]||'','XMD-AGI':_0x4fa999['dialQueueProject']?util[_0x7016('0x16')]('\x22agi://%s/square,%s\x22',ipAgi,_0x4fa999[_0x7016('0x27')]):'NONE','XMD-AGIAFTER':_0x4fa999['dialQueueProject2']?util[_0x7016('0x16')]('\x22agi://%s/square,%s\x22',ipAgi,_0x4fa999[_0x7016('0x23')]):_0x7016('0x28'),'XMD-ORIGINATECALLERIDNUM':_0x30ffc9?_0x30ffc9['originatecalleridnum']:'','XMD-ORIGINATECALLERIDNAME':_0x30ffc9?_0x30ffc9[_0x7016('0x29')]:'','XMD-DESTINATION':_0x7016('0x2a'),'SIPADDHEADER':_0x7016('0x2b')};if(!_[_0x7016('0x15')](_0x4fa999['monitor_format'])){_0x32a1dc[util[_0x7016('0x16')]('%s',_0x7016('0x2c'))]=_0x4fa999[_0x7016('0x24')];_0x32a1dc[util[_0x7016('0x16')]('%s',_0x7016('0x2d'))]=_0x57935a;}if(_0x4ce0a2&&_0x4ce0a2[_0x7016('0x2e')]){for(var _0x557083 in _0x4ce0a2['Contact']){if(_0x4ce0a2[_0x7016('0x2e')]['hasOwnProperty'](_0x557083)){if(!_['isNil'](_0x4ce0a2[_0x7016('0x2e')][_0x557083])&&_0x557083!=='id'&&_0x557083!==_0x7016('0x2f')&&_0x557083!=='createdAt'&&_0x557083!==_0x7016('0x30')){_0x32a1dc[util[_0x7016('0x16')](_0x7016('0x31'),_0x7016('0x32'),_[_0x7016('0x33')](_0x557083))]=_0x4ce0a2[_0x7016('0x2e')][_0x557083];}}}}return _0x32a1dc;};exports['toLowerVariables']=function(_0x2fe9a2){var _0x27b501={};for(var _0x1eca94 in _0x2fe9a2){if(_0x2fe9a2[_0x7016('0x34')](_0x1eca94)){_0x27b501[util[_0x7016('0x16')]('%s',_[_0x7016('0x35')](_0x1eca94))]=_0x2fe9a2[_0x1eca94];}}return{'variables':_0x27b501};};exports[_0x7016('0x36')]=function(_0x3c2624,_0x34ddfa){if(!_[_0x7016('0x19')](_0x3c2624)){if(_0x3c2624[_0x7016('0x34')](_0x7016('0x37'))){if(_0x3c2624[_0x7016('0x37')]>0x0){_0x3c2624['originated']-=0x1;}else{logger[_0x7016('0xb')](_0x7016('0x38'),_0x34ddfa);}}}else{logger[_0x7016('0xb')](_0x7016('0x39'),_0x34ddfa);}};exports[_0x7016('0x3a')]=function(_0x194039){var _0x49a74d=moment()[_0x7016('0x16')]('YYYY-MM-DD\x20HH:mm:ss');_0x194039[_0x7016('0x3b')]=0xd;_0x194039['statedesc']=_0x7016('0x3c');_0x194039[_0x7016('0x3d')]=_0x49a74d;_0x194039[_0x7016('0x3e')]=_0x49a74d;_0x194039[_0x7016('0x3f')]=_0x49a74d;};exports['logAgent']=function(_0x17833e,_0x370114,_0x1b4fb9){var _0x1dfa43=moment()[_0x7016('0x16')](_0x7016('0x40'));_0x17833e['state']=_0x370114;_0x17833e['statedesc']=_0x1b4fb9;_0x17833e[_0x7016('0x3e')]=_0x1dfa43;_0x17833e[_0x7016('0x41')]=getSeconds(_0x17833e[_0x7016('0x3e')],_0x17833e[_0x7016('0x3d')]);};exports['logLookAgent']=function(_0x1a217a,_0x243831,_0x53621a){_0x1a217a[_0x7016('0x42')]=_0x243831;_0x1a217a[_0x7016('0x43')]=_0x53621a;};exports[_0x7016('0x44')]=function(_0x4c93cb,_0x7dd3e6,_0x2a5eb2){var _0x528887=moment()[_0x7016('0x16')]('YYYY-MM-DD\x20HH:mm:ss');_0x4c93cb['state']=_0x7dd3e6;_0x4c93cb[_0x7016('0x45')]=_0x2a5eb2;_0x4c93cb['responsetime']=_0x4c93cb['responsetime']?_0x4c93cb[_0x7016('0x3e')]:_0x528887;_0x4c93cb[_0x7016('0x3f')]=_0x4c93cb[_0x7016('0x3f')]?_0x4c93cb['endtime']:_0x528887;_0x4c93cb['ringtime']=getSeconds(_0x4c93cb[_0x7016('0x3e')]||0x0,_0x4c93cb['starttime']||0x0);_0x4c93cb[_0x7016('0x46')]=_0x4c93cb['answertime']?getSeconds(_0x4c93cb[_0x7016('0x3f')],_0x4c93cb[_0x7016('0x47')]):0x0;};exports['isFailure']=function(_0x320e56){return _0x320e56===_0x7016('0x48');};exports[_0x7016('0x49')]=function(_0x1ee09b,_0x5b35d3,_0x62b467,_0x3aabf5,_0x3047b2){var _0x8f731e=_0x3aabf5?_0x7016('0x4a'):_0x1ee09b['calleridname'];_0x8f731e=_0x3047b2?'BOOKED':_0x8f731e;return{'actionid':_0x1ee09b['uniqueid'],'action':'originate','channel':_0x1ee09b[_0x7016('0x4b')],'callerid':util[_0x7016('0x16')]('\x22%s\x22\x20<%s>',_0x8f731e,_0x1ee09b['calleridnum']),'Exten':_0x7016('0x2a'),'Context':_0x7016('0x4c'),'Priority':'1','variable':_0x62b467,'timeout':(_0x5b35d3['timeout']||0x1e)*0x3e8,'async':!![],'channelid':_0x1ee09b[_0x7016('0x4d')]};};exports[_0x7016('0x4e')]=function(_0x16e602){return _0x16e602[_0x7016('0x4f')]+_0x16e602[_0x7016('0x50')]+_0x16e602[_0x7016('0x51')]+_0x16e602[_0x7016('0x52')]+_0x16e602[_0x7016('0x53')];};exports[_0x7016('0x54')]=function(_0x1d7daa){var _0x46fc44=_[_0x7016('0x55')](_0x1d7daa);_0x46fc44['state']=0xf;_0x46fc44[_0x7016('0x45')]=_0x7016('0x56');return _0x46fc44;};exports[_0x7016('0x57')]=function(_0x7fc50b,_0x152c30,_0x6a1886){var _0x345eaf={};_0x345eaf[_0x152c30]=_0x7fc50b[_0x152c30];_0x345eaf[_0x7016('0x58')]=![];_0x345eaf['scheduledat']=moment()[_0x7016('0x59')](_0x6a1886,_0x7016('0x5a'))[_0x7016('0x16')](_0x7016('0x40'));_0x345eaf[_0x7016('0x1e')]=_0x7fc50b[_0x7016('0x1e')];_0x345eaf['ListId']=_0x7fc50b[_0x7016('0x5b')];_0x345eaf[_0x7016('0x20')]=_0x7fc50b[_0x7016('0x20')]||undefined;return _0x345eaf;};exports['decrementTalkink']=function(_0x33a705,_0x53e8ac){if(!_[_0x7016('0x19')](_0x33a705)){if(_0x33a705[_0x7016('0x5c')]>0x0){_0x33a705[_0x7016('0x5c')]-=0x1;}else{logger[_0x7016('0xb')](_0x53e8ac,_0x7016('0x5d'));}}else{logger[_0x7016('0xb')](_0x53e8ac,_0x7016('0x5e'));}};exports[_0x7016('0x5f')]=function(_0x1d057e){if(_0x1d057e<=0x0){return!![];}return![];};exports[_0x7016('0x60')]=function(_0x341170,_0x1e43ce,_0x4ad1c8){_0x341170[_0x7016('0x61')]=_0x1e43ce;_0x341170[_0x7016('0x1b')]=_0x341170['queue'];_0x341170[_0x7016('0x62')]=_0x341170[_0x7016('0x4b')];_0x341170['motionChannel']=_0x7016('0x63');if(_0x4ad1c8){_0x341170['mandatoryDisposition']=_0x4ad1c8['mandatoryDisposition'];}return _0x341170;};exports[_0x7016('0x64')]=function(_0x51fe7f){var _0x42c3ba={};_0x42c3ba[_0x7016('0x65')]=_0x51fe7f[_0x7016('0x65')];_0x42c3ba[_0x7016('0x62')]=_0x51fe7f[_0x7016('0x4b')];_0x42c3ba[_0x7016('0x4d')]=_0x51fe7f[_0x7016('0x4d')];return _0x42c3ba;};exports[_0x7016('0x66')]=function(_0x34c4db){var _0x1059bf=[];for(var _0x358e1b in _0x34c4db){if(_0x34c4db[_0x7016('0x34')](_0x358e1b)){if(!_[_0x7016('0x19')](_0x34c4db[_0x358e1b])&&_0x34c4db[_0x358e1b]['state']==='not_inuse'&&_0x34c4db[_0x358e1b]['status']==='reachable'){_0x1059bf[_0x7016('0x67')](_0x34c4db[_0x358e1b]['id']);}}}return _0x1059bf;};exports[_0x7016('0x68')]=function(_0x2d3454){var _0x193b0f=moment()['milliseconds'](0x0);var _0x25649b=moment(_0x2d3454)[_0x7016('0x7')](0x0);return _0x193b0f['diff'](_0x25649b,_0x7016('0x9'));};exports[_0x7016('0x69')]=function(_0x138c67){return{'active':![],'recallme':![],'UserId':null,'ContactId':_0x138c67['ContactId'],'ListId':_0x138c67[_0x7016('0x5b')],'VoiceQueueId':_0x138c67[_0x7016('0x20')]||undefined,'CampaignId':_0x138c67[_0x7016('0x6a')]||undefined};};exports[_0x7016('0x6b')]=function(_0x4c86ce){if(_0x4c86ce==='uniqueid'||_0x4c86ce==='idContact'||_0x4c86ce===_0x7016('0x65')||_0x4c86ce===_0x7016('0x6c')||_0x4c86ce===_0x7016('0x6d')||_0x4c86ce==='dialAnswer'||_0x4c86ce===_0x7016('0x42')||_0x4c86ce==='channelAgent'||_0x4c86ce==='calleridname'||_0x4c86ce==='active'||_0x4c86ce===_0x7016('0x1d')||_0x4c86ce===_0x7016('0x6e')||_0x4c86ce===_0x7016('0x4f')||_0x4c86ce===_0x7016('0x50')||_0x4c86ce===_0x7016('0x51')||_0x4c86ce===_0x7016('0x6f')||_0x4c86ce===_0x7016('0x70')||_0x4c86ce===_0x7016('0x71')||_0x4c86ce==='callbackat'||_0x4c86ce===_0x7016('0x72')||_0x4c86ce==='ContactId'||_0x4c86ce==='ListId'||_0x4c86ce===_0x7016('0x43')||_0x4c86ce===_0x7016('0x20')||_0x4c86ce==='sipcallid'||_0x4c86ce===_0x7016('0x73')||_0x4c86ce===_0x7016('0x74')||_0x4c86ce===_0x7016('0x75')||_0x4c86ce===_0x7016('0x76')||_0x4c86ce===_0x7016('0x77')||_0x4c86ce===_0x7016('0x78')||_0x4c86ce===_0x7016('0x79')||_0x4c86ce===_0x7016('0x7a')||_0x4c86ce===_0x7016('0x7b')||_0x4c86ce===_0x7016('0x7c')||_0x4c86ce==='xmd-cdrtype'||_0x4c86ce==='xmd-callerid'||_0x4c86ce===_0x7016('0x7d')||_0x4c86ce===_0x7016('0x7e')||_0x4c86ce===_0x7016('0x7f')||_0x4c86ce===_0x7016('0x80')||_0x4c86ce===_0x7016('0x81')||_0x4c86ce==='rtpaudioqosjitterbridged'||_0x4c86ce==='rtpaudioqosloss'||_0x4c86ce===_0x7016('0x82')||_0x4c86ce===_0x7016('0x83')||_0x4c86ce===_0x7016('0x84')||_0x4c86ce===_0x7016('0x7f')||_0x4c86ce===_0x7016('0x80')||_0x4c86ce===_0x7016('0x81')||_0x4c86ce===_0x7016('0x85')||_0x4c86ce===_0x7016('0x86')||_0x4c86ce===_0x7016('0x82')||_0x4c86ce===_0x7016('0x83')||_0x4c86ce===_0x7016('0x84')||_0x4c86ce==='bridgepeer'||_0x4c86ce===_0x7016('0x87')||_0x4c86ce===_0x7016('0x3b')||_0x4c86ce===_0x7016('0x45')){return![];}return!![];};exports['getCallerIdRandom']=function(_0x2d2f38,_0x3d21ad){var _0x1736cb,_0x3cd7da,_0x54bbc6;if(_0x3d21ad<=0x0){_0x3d21ad=0x1;}_0x1736cb=new RegExp('\x5cw{0,'+_0x3d21ad+'}$');_0x3cd7da=Math[_0x7016('0x88')](0xa,_0x3d21ad-0x1);_0x54bbc6=Math[_0x7016('0x88')](0xa,_0x3d21ad)-0x1;return util[_0x7016('0x16')]('%s',_[_0x7016('0x89')](_0x2d2f38,_0x1736cb,_['random'](_0x3cd7da,_0x54bbc6)));};exports[_0x7016('0x8a')]=function(_0x21cb87){var _0x59ebec=_0x21cb87[_0x7016('0x8b')](/"(.*?)"/);return _0x59ebec?_0x59ebec[0x1]:_0x21cb87;};exports['extractCalleridNumber']=function(_0x3517a2){var _0x4e8052=_0x3517a2[_0x7016('0x8b')](/<(.*?)>/);return _0x4e8052?_0x4e8052[0x1]:_0x3517a2;};
\ No newline at end of file
+var _0x851c=['ListId','pTalking','IsNotLoggedIn','buildObj','lastevent','queue','voice','mandatoryDisposition','buildAcw','interface','agentReadyId','not_inuse','status','reachable','push','getDiff','filterKey','type','campaigntype','dialAnswer','membername','countbusyretry','countglobal','callback','recallme','sipcallid','xmd-voicequeueid','xmd-queue','xmd-dialurl','xmd-dialoptions','xmd-dialchannel','xmd-contactid','xmd-cdrtype','xmd-callerid','xmd-agiafter','xmd-agi','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqosjitterbridged','rtpaudioqosloss','rtpaudioqosrtt','rtpaudioqosrttbridged','rtpaudioqoslossbridged','bridgepvtcallid','getCallerIdRandom','\x5cw{0,','pow','replace','extractCalleridName','match','extractCalleridNumber','util','lodash','moment','../../../../config/logger','preview','env','milliseconds','diff','seconds','loggerCatch','error','inspect','logger','loggerError','logger2','message','getCallerId','isUndefined','string','isEmpty','format','\x22%s\x22\x20<%s>','\x22\x22\x20<>','isActive','isNil','addVariables','Queue','calleridnum','dialer','VoiceQueueId','dialOriginateTimeout','dialQueueProject2','monitor_format','U(xcally-mixmonitor-context)','dialPreviewUrl','dialQueueProject','NONE','\x22agi://%s/square,%s\x22','originatecalleridname','xcally-motion-preview','Call-Type:\x20PREVIEW','_XCALLY_MIXMONITOR_FORMAT','_XCALLY_MIXMONITOR_UNIQUEID','Contact','hasOwnProperty','tags','createdAt','updatedAt','XMD-','toLowerVariables','toLower','updateOriginated','originated','[updateOriginated]\x20is\x20null\x20or\x20undefined','logBlacklist','YYYY-MM-DD\x20HH:mm:ss','state','statedesc','Blacklist','starttime','responsetime','endtime','logAgent','ringtime','logLookAgent','UserId','logCustomer','talktime','answertime','isFailure','Failure','variablesAction','calleridname','uniqueid','originate','channelAgent','from-sip','timeout','totalGlobal','countnoanswerretry','countagentrejectretry','cloneAction','clone','active','scheduledat','add','ContactId'];(function(_0x2a7714,_0x27eed2){var _0x5c38e5=function(_0x538023){while(--_0x538023){_0x2a7714['push'](_0x2a7714['shift']());}};_0x5c38e5(++_0x27eed2);}(_0x851c,0x14a));var _0xc851=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x851c[_0x3dd15e];return _0x231fd0;};'use strict';var util=require(_0xc851('0x0'));var _=require(_0xc851('0x1'));var moment=require(_0xc851('0x2'));var logger=require(_0xc851('0x3'))(_0xc851('0x4'));var ipAgi=process[_0xc851('0x5')]['XCALLY_IP_AGI']||'127.0.0.1';function getSeconds(_0xe46e88,_0x2fe966){var _0x597d47=moment(_0xe46e88)[_0xc851('0x6')](0x0);var _0x5c3b3d=moment(_0x2fe966)['milliseconds'](0x0);return _0x597d47[_0xc851('0x7')](_0x5c3b3d,_0xc851('0x8'));}exports[_0xc851('0x9')]=function(_0x39d21d){return function(_0x1f4a8a){logger[_0xc851('0xa')](_0x39d21d,util[_0xc851('0xb')](_0x1f4a8a,{'showHidden':![],'depth':null}));};};exports[_0xc851('0xc')]=function(_0xf9d0d9,_0x3b8d09){logger['info'](_0xf9d0d9,util[_0xc851('0xb')](_0x3b8d09,{'showHidden':![],'depth':null}));};exports[_0xc851('0xd')]=function(_0x683361,_0x2f168c){logger[_0xc851('0xa')](_0x683361,util['inspect'](_0x2f168c,{'showHidden':![],'depth':null}));};exports[_0xc851('0xe')]=function(_0x4b3c06){return function(_0x351322){logger['info'](_0x4b3c06,util[_0xc851('0xb')](_0x351322,{'showHidden':![],'depth':null}));};};exports[_0xc851('0xf')]=function(_0x261722,_0x533956,_0x43dd3d){return{'message':_0x261722,'unlock':_0x533956,'active':_0x43dd3d};};exports[_0xc851('0x10')]=function(_0x83ee45,_0x1848e2,_0x36908e){if(!_[_0xc851('0x11')](_0x36908e)&&_0xc851('0x12')===typeof _0x36908e&&!_[_0xc851('0x13')](_0x36908e)){if(!_[_0xc851('0x11')](_0x1848e2)&&_0xc851('0x12')===typeof _0x1848e2&&!_[_0xc851('0x13')](_0x1848e2)){return util[_0xc851('0x14')](_0xc851('0x15'),_0x1848e2,_0x36908e);}return util['format'](_0xc851('0x15'),_0x36908e,_0x36908e);}if(!_[_0xc851('0x11')](_0x83ee45)&&'string'===typeof _0x83ee45&&!_[_0xc851('0x13')](_0x83ee45)){return _0x83ee45;}return _0xc851('0x16');};exports[_0xc851('0x17')]=function(_0x472529){if(_[_0xc851('0x18')](_0x472529)){return![];}return _0x472529;};exports[_0xc851('0x19')]=function(_0x181796,_0x158ba9,_0x3850b2,_0x4e8147,_0x35b397,_0x199299){var _0x3bb74f={'XMD-QUEUE':_0x158ba9['Queue']?_0x158ba9[_0xc851('0x1a')]['name']:'','XMD-CALLERID':_0x4e8147,'XMD-CALLERID-PREVIEW':_0x199299?util[_0xc851('0x14')](_0xc851('0x15'),_0x199299['calleridname'],_0x199299[_0xc851('0x1b')]):_0x4e8147,'XMD-DIALID':_0x35b397,'XMD-CONTACTID':_0x158ba9['ContactId'],'XMD-CDRTYPE':_0xc851('0x1c'),'CALLERID(all)':_0x4e8147,'XMD-VOICEQUEUEID':_0x158ba9[_0xc851('0x1d')],'XMD-DIALCHANNEL':_0x3850b2,'XMD-DIALTIMEOUT':_0x181796[_0xc851('0x1e')]||0x1e,'XMD-DIALOPTIONS':util[_0xc851('0x14')]('\x22rtTxX%s%s\x22',_0x181796[_0xc851('0x1f')]?'g':'',_['isEmpty'](_0x181796[_0xc851('0x20')])?'':_0xc851('0x21')),'XMD-DIALURL':_0x181796[_0xc851('0x22')]||'','XMD-AGI':_0x181796[_0xc851('0x23')]?util[_0xc851('0x14')]('\x22agi://%s/square,%s\x22',ipAgi,_0x181796[_0xc851('0x23')]):_0xc851('0x24'),'XMD-AGIAFTER':_0x181796[_0xc851('0x1f')]?util[_0xc851('0x14')](_0xc851('0x25'),ipAgi,_0x181796['dialQueueProject2']):_0xc851('0x24'),'XMD-ORIGINATECALLERIDNUM':_0x199299?_0x199299['originatecalleridnum']:'','XMD-ORIGINATECALLERIDNAME':_0x199299?_0x199299[_0xc851('0x26')]:'','XMD-DESTINATION':_0xc851('0x27'),'SIPADDHEADER':_0xc851('0x28')};if(!_[_0xc851('0x13')](_0x181796['monitor_format'])){_0x3bb74f[util[_0xc851('0x14')]('%s',_0xc851('0x29'))]=_0x181796[_0xc851('0x20')];_0x3bb74f[util['format']('%s',_0xc851('0x2a'))]=_0x35b397;}if(_0x158ba9&&_0x158ba9[_0xc851('0x2b')]){for(var _0x261d10 in _0x158ba9[_0xc851('0x2b')]){if(_0x158ba9[_0xc851('0x2b')][_0xc851('0x2c')](_0x261d10)){if(!_['isNil'](_0x158ba9[_0xc851('0x2b')][_0x261d10])&&_0x261d10!=='id'&&_0x261d10!==_0xc851('0x2d')&&_0x261d10!==_0xc851('0x2e')&&_0x261d10!==_0xc851('0x2f')){_0x3bb74f[util[_0xc851('0x14')]('%s%s',_0xc851('0x30'),_['toUpper'](_0x261d10))]=_0x158ba9['Contact'][_0x261d10];}}}}return _0x3bb74f;};exports[_0xc851('0x31')]=function(_0x4e32ba){var _0x206f97={};for(var _0x4f8431 in _0x4e32ba){if(_0x4e32ba[_0xc851('0x2c')](_0x4f8431)){_0x206f97[util[_0xc851('0x14')]('%s',_[_0xc851('0x32')](_0x4f8431))]=_0x4e32ba[_0x4f8431];}}return{'variables':_0x206f97};};exports[_0xc851('0x33')]=function(_0xc3b0cb,_0x3c4c37){if(!_[_0xc851('0x18')](_0xc3b0cb)){if(_0xc3b0cb[_0xc851('0x2c')](_0xc851('0x34'))){if(_0xc3b0cb[_0xc851('0x34')]>0x0){_0xc3b0cb[_0xc851('0x34')]-=0x1;}else{logger[_0xc851('0xa')]('[updateOriginated]\x20object\x20originated\x20is\x20negative',_0x3c4c37);}}}else{logger[_0xc851('0xa')](_0xc851('0x35'),_0x3c4c37);}};exports[_0xc851('0x36')]=function(_0x2b83cc){var _0x1cf979=moment()[_0xc851('0x14')](_0xc851('0x37'));_0x2b83cc[_0xc851('0x38')]=0xd;_0x2b83cc[_0xc851('0x39')]=_0xc851('0x3a');_0x2b83cc[_0xc851('0x3b')]=_0x1cf979;_0x2b83cc[_0xc851('0x3c')]=_0x1cf979;_0x2b83cc[_0xc851('0x3d')]=_0x1cf979;};exports[_0xc851('0x3e')]=function(_0x3154ce,_0x255903,_0x1e4e65){var _0x40d92b=moment()[_0xc851('0x14')](_0xc851('0x37'));_0x3154ce['state']=_0x255903;_0x3154ce['statedesc']=_0x1e4e65;_0x3154ce['responsetime']=_0x40d92b;_0x3154ce[_0xc851('0x3f')]=getSeconds(_0x3154ce['responsetime'],_0x3154ce[_0xc851('0x3b')]);};exports[_0xc851('0x40')]=function(_0x400d95,_0x87cb69,_0x4650ae){_0x400d95['membername']=_0x87cb69;_0x400d95[_0xc851('0x41')]=_0x4650ae;};exports[_0xc851('0x42')]=function(_0x31d894,_0x355cd0,_0x1a48d6){var _0x54decf=moment()[_0xc851('0x14')](_0xc851('0x37'));_0x31d894['state']=_0x355cd0;_0x31d894[_0xc851('0x39')]=_0x1a48d6;_0x31d894[_0xc851('0x3c')]=_0x31d894[_0xc851('0x3c')]?_0x31d894['responsetime']:_0x54decf;_0x31d894[_0xc851('0x3d')]=_0x31d894[_0xc851('0x3d')]?_0x31d894['endtime']:_0x54decf;_0x31d894['ringtime']=getSeconds(_0x31d894['responsetime']||0x0,_0x31d894[_0xc851('0x3b')]||0x0);_0x31d894[_0xc851('0x43')]=_0x31d894[_0xc851('0x44')]?getSeconds(_0x31d894['endtime'],_0x31d894[_0xc851('0x44')]):0x0;};exports[_0xc851('0x45')]=function(_0x11a655){return _0x11a655===_0xc851('0x46');};exports[_0xc851('0x47')]=function(_0x3b7813,_0x293f2e,_0x4158ea,_0x1df79f,_0x4263d9){var _0x15443c=_0x1df79f?'RECALL':_0x3b7813[_0xc851('0x48')];_0x15443c=_0x4263d9?'BOOKED':_0x15443c;return{'actionid':_0x3b7813[_0xc851('0x49')],'action':_0xc851('0x4a'),'channel':_0x3b7813[_0xc851('0x4b')],'callerid':util['format'](_0xc851('0x15'),_0x15443c,_0x3b7813[_0xc851('0x1b')]),'Exten':_0xc851('0x27'),'Context':_0xc851('0x4c'),'Priority':'1','variable':_0x4158ea,'timeout':(_0x293f2e[_0xc851('0x4d')]||0x1e)*0x3e8,'async':!![],'channelid':_0x3b7813[_0xc851('0x49')]};};exports[_0xc851('0x4e')]=function(_0x8bdfae){return _0x8bdfae['countbusyretry']+_0x8bdfae['countcongestionretry']+_0x8bdfae[_0xc851('0x4f')]+_0x8bdfae[_0xc851('0x50')]+_0x8bdfae['countnosuchnumberretry'];};exports[_0xc851('0x51')]=function(_0x49b825){var _0x2115d1=_[_0xc851('0x52')](_0x49b825);_0x2115d1[_0xc851('0x38')]=0xf;_0x2115d1[_0xc851('0x39')]='Global';return _0x2115d1;};exports['scheduledAt']=function(_0x161fe3,_0xeb75eb,_0x336067){var _0x4ef6e7={};_0x4ef6e7[_0xeb75eb]=_0x161fe3[_0xeb75eb];_0x4ef6e7[_0xc851('0x53')]=![];_0x4ef6e7[_0xc851('0x54')]=moment()[_0xc851('0x55')](_0x336067,'minutes')[_0xc851('0x14')](_0xc851('0x37'));_0x4ef6e7[_0xc851('0x56')]=_0x161fe3[_0xc851('0x56')];_0x4ef6e7[_0xc851('0x57')]=_0x161fe3[_0xc851('0x57')];_0x4ef6e7[_0xc851('0x1d')]=_0x161fe3[_0xc851('0x1d')]||undefined;return _0x4ef6e7;};exports['decrementTalkink']=function(_0xfcaabc,_0x5da12c){if(!_['isNil'](_0xfcaabc)){if(_0xfcaabc[_0xc851('0x58')]>0x0){_0xfcaabc[_0xc851('0x58')]-=0x1;}else{logger[_0xc851('0xa')](_0x5da12c,'[decrementTalkink]\x20object\x20talking\x20is\x20negative');}}else{logger[_0xc851('0xa')](_0x5da12c,'[decrementTalkink]\x20is\x20null\x20or\x20undefined');}};exports[_0xc851('0x59')]=function(_0x1b1184){if(_0x1b1184<=0x0){return!![];}return![];};exports[_0xc851('0x5a')]=function(_0x42da52,_0x1f264a,_0x298022){_0x42da52[_0xc851('0x5b')]=_0x1f264a;_0x42da52['name']=_0x42da52[_0xc851('0x5c')];_0x42da52['interface']=_0x42da52['channelAgent'];_0x42da52['motionChannel']=_0xc851('0x5d');if(_0x298022){_0x42da52[_0xc851('0x5e')]=_0x298022['mandatoryDisposition'];}return _0x42da52;};exports[_0xc851('0x5f')]=function(_0x4b4d87){var _0x2cb1bd={};_0x2cb1bd['queue']=_0x4b4d87[_0xc851('0x5c')];_0x2cb1bd[_0xc851('0x60')]=_0x4b4d87[_0xc851('0x4b')];_0x2cb1bd[_0xc851('0x49')]=_0x4b4d87[_0xc851('0x49')];return _0x2cb1bd;};exports[_0xc851('0x61')]=function(_0x51b2f5){var _0x18bc9f=[];for(var _0xa69b2a in _0x51b2f5){if(_0x51b2f5[_0xc851('0x2c')](_0xa69b2a)){if(!_['isNil'](_0x51b2f5[_0xa69b2a])&&_0x51b2f5[_0xa69b2a][_0xc851('0x38')]===_0xc851('0x62')&&_0x51b2f5[_0xa69b2a][_0xc851('0x63')]===_0xc851('0x64')){_0x18bc9f[_0xc851('0x65')](_0x51b2f5[_0xa69b2a]['id']);}}}return _0x18bc9f;};exports[_0xc851('0x66')]=function(_0x3abb61){var _0x5d7497=moment()['milliseconds'](0x0);var _0x327acd=moment(_0x3abb61)[_0xc851('0x6')](0x0);return _0x5d7497['diff'](_0x327acd,_0xc851('0x8'));};exports['createBody']=function(_0x174385){return{'active':![],'recallme':![],'UserId':null,'ContactId':_0x174385['ContactId'],'ListId':_0x174385['ListId'],'VoiceQueueId':_0x174385[_0xc851('0x1d')]||undefined,'CampaignId':_0x174385['CampaignId']||undefined};};exports[_0xc851('0x67')]=function(_0xa595fe){if(_0xa595fe===_0xc851('0x49')||_0xa595fe==='idContact'||_0xa595fe==='queue'||_0xa595fe===_0xc851('0x68')||_0xa595fe===_0xc851('0x69')||_0xa595fe===_0xc851('0x6a')||_0xa595fe===_0xc851('0x6b')||_0xa595fe==='channelAgent'||_0xa595fe===_0xc851('0x48')||_0xa595fe===_0xc851('0x53')||_0xa595fe===_0xc851('0x1b')||_0xa595fe===_0xc851('0x54')||_0xa595fe===_0xc851('0x6c')||_0xa595fe==='countcongestionretry'||_0xa595fe==='countnoanswerretry'||_0xa595fe===_0xc851('0x6d')||_0xa595fe===_0xc851('0x6e')||_0xa595fe==='callbackuniqueid'||_0xa595fe==='callbackat'||_0xa595fe===_0xc851('0x6f')||_0xa595fe==='ContactId'||_0xa595fe==='ListId'||_0xa595fe===_0xc851('0x41')||_0xa595fe===_0xc851('0x1d')||_0xa595fe===_0xc851('0x70')||_0xa595fe===_0xc851('0x71')||_0xa595fe===_0xc851('0x72')||_0xa595fe==='xmd-phone'||_0xa595fe==='xmd-listid'||_0xa595fe===_0xc851('0x73')||_0xa595fe==='xmd-dialtimeout'||_0xa595fe===_0xc851('0x74')||_0xa595fe==='xmd-dialid'||_0xa595fe===_0xc851('0x75')||_0xa595fe===_0xc851('0x76')||_0xa595fe===_0xc851('0x77')||_0xa595fe===_0xc851('0x78')||_0xa595fe===_0xc851('0x79')||_0xa595fe===_0xc851('0x7a')||_0xa595fe===_0xc851('0x7b')||_0xa595fe===_0xc851('0x7c')||_0xa595fe===_0xc851('0x7d')||_0xa595fe===_0xc851('0x7e')||_0xa595fe===_0xc851('0x7f')||_0xa595fe==='rtpaudioqoslossbridged'||_0xa595fe===_0xc851('0x80')||_0xa595fe===_0xc851('0x81')||_0xa595fe==='rtpaudioqos'||_0xa595fe===_0xc851('0x7c')||_0xa595fe===_0xc851('0x7d')||_0xa595fe===_0xc851('0x7e')||_0xa595fe===_0xc851('0x7f')||_0xa595fe===_0xc851('0x82')||_0xa595fe===_0xc851('0x80')||_0xa595fe===_0xc851('0x81')||_0xa595fe==='bridgepeer'||_0xa595fe===_0xc851('0x83')||_0xa595fe===_0xc851('0x38')||_0xa595fe===_0xc851('0x39')){return![];}return!![];};exports[_0xc851('0x84')]=function(_0x1cc345,_0x505e2e){var _0x26bb55,_0xb5fd42,_0x282159;if(_0x505e2e<=0x0){_0x505e2e=0x1;}_0x26bb55=new RegExp(_0xc851('0x85')+_0x505e2e+'}$');_0xb5fd42=Math[_0xc851('0x86')](0xa,_0x505e2e-0x1);_0x282159=Math[_0xc851('0x86')](0xa,_0x505e2e)-0x1;return util['format']('%s',_[_0xc851('0x87')](_0x1cc345,_0x26bb55,_['random'](_0xb5fd42,_0x282159)));};exports[_0xc851('0x88')]=function(_0x272430){var _0x37b111=_0x272430[_0xc851('0x89')](/"(.*?)"/);return _0x37b111?_0x37b111[0x1]:_0x272430;};exports[_0xc851('0x8a')]=function(_0x397fd9){var _0x1a9c7d=_0x397fd9[_0xc851('0x89')](/<(.*?)>/);return _0x1a9c7d?_0x1a9c7d[0x1]:_0x397fd9;};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x34f9=['reload','voicequeuechannel','voicequeuechannelhangup','voicequeuechannelredirect','queueremove','string','boolean'];(function(_0x24479e,_0x9656eb){var _0x34358a=function(_0x306289){while(--_0x306289){_0x24479e['push'](_0x24479e['shift']());}};_0x34358a(++_0x9656eb);}(_0x34f9,0x97));var _0x934f=function(_0x459f75,_0x2a4505){_0x459f75=_0x459f75-0x0;var _0x206edf=_0x34f9[_0x459f75];return _0x206edf;};'use strict';exports['queueadd']={'queue':{'type':'string','required':!![]},'interface':{'type':'string','required':!![]},'membername':{'type':'string','required':!![]},'penalty':{'type':'number','required':![]},'paused':{'type':'boolean','required':![]}};exports[_0x934f('0x0')]={'queue':{'type':_0x934f('0x1'),'required':!![]},'interface':{'type':'string','required':!![]}};exports['queuepause']={'interface':{'type':_0x934f('0x1'),'required':!![]},'paused':{'type':_0x934f('0x2')},'reason':{'type':'string','required':![]}};exports[_0x934f('0x3')]={'module':{'type':_0x934f('0x1'),'required':![]}};exports[_0x934f('0x4')]={'uniqueid':{'type':_0x934f('0x1'),'required':!![]}};exports['voicechannel']={'uniqueid':{'type':_0x934f('0x1'),'required':!![]},'filename':{'type':_0x934f('0x1')},'format':{'type':_0x934f('0x1')},'mixmonitorid':{'type':'string'}};exports[_0x934f('0x5')]={'uniqueid':{'type':'string','required':!![]}};exports[_0x934f('0x6')]={'uniqueid':{'type':_0x934f('0x1'),'required':!![]},'exten':{'type':_0x934f('0x1'),'required':!![]},'context':{'type':_0x934f('0x1')}};
\ No newline at end of file
+var _0x061a=['boolean','queueremove','reload','voicequeuechannel','voicechannel','voicequeuechannelredirect','queueadd','string','number'];(function(_0x28d02e,_0x3270fc){var _0x55b62d=function(_0x3575fc){while(--_0x3575fc){_0x28d02e['push'](_0x28d02e['shift']());}};_0x55b62d(++_0x3270fc);}(_0x061a,0x153));var _0xa061=function(_0x104976,_0x1085e5){_0x104976=_0x104976-0x0;var _0x4bc211=_0x061a[_0x104976];return _0x4bc211;};'use strict';exports[_0xa061('0x0')]={'queue':{'type':_0xa061('0x1'),'required':!![]},'interface':{'type':'string','required':!![]},'membername':{'type':_0xa061('0x1'),'required':!![]},'penalty':{'type':_0xa061('0x2'),'required':![]},'paused':{'type':_0xa061('0x3'),'required':![]}};exports[_0xa061('0x4')]={'queue':{'type':_0xa061('0x1'),'required':!![]},'interface':{'type':_0xa061('0x1'),'required':!![]}};exports['queuepause']={'interface':{'type':_0xa061('0x1'),'required':!![]},'paused':{'type':_0xa061('0x3')},'reason':{'type':'string','required':![]}};exports[_0xa061('0x5')]={'module':{'type':_0xa061('0x1'),'required':![]}};exports[_0xa061('0x6')]={'uniqueid':{'type':'string','required':!![]}};exports[_0xa061('0x7')]={'uniqueid':{'type':'string','required':!![]},'filename':{'type':_0xa061('0x1')},'format':{'type':_0xa061('0x1')},'mixmonitorid':{'type':_0xa061('0x1')}};exports['voicequeuechannelhangup']={'uniqueid':{'type':_0xa061('0x1'),'required':!![]}};exports[_0xa061('0x8')]={'uniqueid':{'type':_0xa061('0x1'),'required':!![]},'exten':{'type':_0xa061('0x1'),'required':!![]},'context':{'type':_0xa061('0x1')}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5ef4=['queuecallerabandonAt','queuecallerexitAt','seconds','queuecallercomplete','duration','disposition','ANSWERED','billableseconds','initCampaigns','dialQueueProject','SquareProject','initVoiceExtensions','voiceExtensions','initCampaignHopperHistory','initFaxAccounts','faxAccounts','exports','bluebird','util','moment','../model/agent','../model/telephone','../model/trunk','../model/trigger','../model/campaign','../model/voiceExtension','../model/zendeskAccount','../model/salesforceAccount','../model/freshdeskAccount','../model/zohoAccount','../model/deskAccount','../model/vtigerAccount','../model/servicenowAccount','../model/dynamics365Account','../model/freshsalesAccount','../model/faxAccount','agents','telephones','trunks','voiceQueues','triggers','campaigns','templates','outbound','channels','queueChannels','outboundChannels','timers','settings','zendeskAccounts','salesforceAccounts','sugarcrmAccounts','freshdeskAccounts','zohoAccounts','vtigerAccounts','servicenowAccounts','freshsalesAccounts','mapKeys','hasOwnProperty','format','SIP/%s','name','isNil','interface','total','answered','sumHoldTime','sumDuration','sumBillable','isEmpty','ivrAnswerCallsDay','unmanaged','abandoned','outboundAnswerAgiCallsDay','outboundBusyCallsDay','outboundCongestionCallsDay','outboundNoSuchCallsDay','outboundUnknownCallsDay','outboundDropCallsDayTimeout','outboundBlacklistCallsDay','outboundOriginateFailureCallsDay','outboundReCallsDay','outboundAnswerCallsDay','queueStatusComplete','prototype','initAgents','mergeFromDatabase','initTelephones','length','isUndefined','initVoiceQueues','initTriggers','initTemplates','initZendeskAccounts','initSalesforceAccounts','initFreshdeskAccounts','initZohoAccounts','initDeskAccounts','deskAccounts','initSugarcrmAccounts','initVtigerAccounts','initServicenowAccounts','initDynamics365Accounts','dynamics365Accounts','initFreshsalesAccounts','initVoiceQueueHopperHistory','merge','uniqueid','queue','queuecallerexit','queuecallerabandon','queuecallerleaveAt','diff','queuecallerjoinAt','queuecallercompleteAt'];(function(_0x585736,_0x484639){var _0x2547ae=function(_0x33f5d4){while(--_0x33f5d4){_0x585736['push'](_0x585736['shift']());}};_0x2547ae(++_0x484639);}(_0x5ef4,0x16a));var _0x45ef=function(_0x52512c,_0x592ced){_0x52512c=_0x52512c-0x0;var _0x25ea52=_0x5ef4[_0x52512c];return _0x25ea52;};'use strict';var BPromise=require(_0x45ef('0x0'));var util=require(_0x45ef('0x1'));var _=require('lodash');var moment=require(_0x45ef('0x2'));var Agent=require(_0x45ef('0x3'));var Telephone=require(_0x45ef('0x4'));var Trunk=require(_0x45ef('0x5'));var VoiceQueue=require('../model/voiceQueue');var Trigger=require(_0x45ef('0x6'));var Template=require('../model/template');var Campaign=require(_0x45ef('0x7'));var VoiceExtension=require(_0x45ef('0x8'));var ZendeskAccount=require(_0x45ef('0x9'));var SalesforceAccount=require(_0x45ef('0xa'));var FreshdeskAccount=require(_0x45ef('0xb'));var SugarcrmAccount=require('../model/sugarcrmAccount');var ZohoAccount=require(_0x45ef('0xc'));var DeskAccount=require(_0x45ef('0xd'));var VtigerAccount=require(_0x45ef('0xe'));var ServicenowAccount=require(_0x45ef('0xf'));var Dynamics365Account=require(_0x45ef('0x10'));var FreshsalesAccount=require(_0x45ef('0x11'));var FaxAccount=require(_0x45ef('0x12'));var Realtime=function(){this[_0x45ef('0x13')]={};this[_0x45ef('0x14')]={};this[_0x45ef('0x15')]={};this[_0x45ef('0x16')]={};this[_0x45ef('0x17')]={};this[_0x45ef('0x18')]={};this[_0x45ef('0x19')]={};this[_0x45ef('0x1a')]={'total':0x0,'answered':0x0,'sumHoldTime':0x0,'sumDuration':0x0,'sumBillable':0x0};this['voiceExtensions']={};this[_0x45ef('0x1b')]={};this[_0x45ef('0x1c')]={};this[_0x45ef('0x1d')]={};this[_0x45ef('0x1e')]={};this[_0x45ef('0x1f')]={};this[_0x45ef('0x20')]={};this[_0x45ef('0x21')]={};this[_0x45ef('0x22')]={};this[_0x45ef('0x23')]={};this[_0x45ef('0x24')]={};this['deskAccounts']={};this[_0x45ef('0x25')]={};this[_0x45ef('0x26')]={};this['dynamics365Accounts']={};this[_0x45ef('0x27')]={};this['faxAccounts']={};};function freeIsNotKey(_0x5d8094,_0x4a66cb,_0x344bf6){var _0x58308d=_[_0x45ef('0x28')](_0x5d8094,function(_0x31a247,_0x43025e){return _0x31a247[_0x344bf6];});for(var _0x257a42 in _0x4a66cb){if(_0x4a66cb[_0x45ef('0x29')](_0x257a42)){if(!_0x58308d[_0x257a42]){delete _0x4a66cb[_0x257a42];}}}}function freeIsNotKeySip(_0x1556b5,_0x13c0e3){var _0x35e9c0=_[_0x45ef('0x28')](_0x1556b5,function(_0x37eda1,_0x2da03c){return util[_0x45ef('0x2a')](_0x45ef('0x2b'),_0x37eda1[_0x45ef('0x2c')]);});for(var _0x5205b0 in _0x13c0e3){if(_0x13c0e3[_0x45ef('0x29')](_0x5205b0)){if(!_0x35e9c0[_0x5205b0]){delete _0x13c0e3[_0x5205b0];}}}}function freeIsNotKeyAgent(_0x33a3cd,_0x24747e){var _0x4deb7f=_[_0x45ef('0x28')](_0x33a3cd,function(_0x17d0ab,_0x24ffc6){var _0x483f86=_[_0x45ef('0x2d')](_0x17d0ab['interface'])?util['format']('SIP/%s',_0x17d0ab[_0x45ef('0x2c')]):_0x17d0ab[_0x45ef('0x2e')];return _0x483f86;});for(var _0x27dcf8 in _0x24747e){if(_0x24747e['hasOwnProperty'](_0x27dcf8)){if(!_0x4deb7f[_0x27dcf8]){delete _0x24747e[_0x27dcf8];}}}}function clearVoiceCallReports(_0x3bfb60){_0x3bfb60[_0x45ef('0x2f')]=0x0;_0x3bfb60[_0x45ef('0x30')]=0x0;_0x3bfb60[_0x45ef('0x31')]=0x0;_0x3bfb60[_0x45ef('0x32')]=0x0;_0x3bfb60[_0x45ef('0x33')]=0x0;}function clearCampaigns(_0x5081b2){if(!_[_0x45ef('0x34')](_0x5081b2)){for(var _0x637d4c in _0x5081b2){if(_0x5081b2['hasOwnProperty'](_0x637d4c)){_0x5081b2[_0x637d4c]['ivrTotalCallsDays']=0x0;_0x5081b2[_0x637d4c][_0x45ef('0x35')]=0x0;}}}}function clearVoiceQueues(_0x22210f){if(!_[_0x45ef('0x34')](_0x22210f)){for(var _0x402f16 in _0x22210f){if(_0x22210f[_0x45ef('0x29')](_0x402f16)){_0x22210f[_0x402f16][_0x45ef('0x2f')]=0x0;_0x22210f[_0x402f16][_0x45ef('0x30')]=0x0;_0x22210f[_0x402f16][_0x45ef('0x36')]=0x0;_0x22210f[_0x402f16][_0x45ef('0x37')]=0x0;_0x22210f[_0x402f16][_0x45ef('0x31')]=0x0;_0x22210f[_0x402f16]['sumDuration']=0x0;_0x22210f[_0x402f16][_0x45ef('0x33')]=0x0;_0x22210f[_0x402f16][_0x45ef('0x38')]=0x0;_0x22210f[_0x402f16]['outboundNoAnswerCallsDay']=0x0;_0x22210f[_0x402f16][_0x45ef('0x39')]=0x0;_0x22210f[_0x402f16][_0x45ef('0x3a')]=0x0;_0x22210f[_0x402f16][_0x45ef('0x3b')]=0x0;_0x22210f[_0x402f16][_0x45ef('0x3c')]=0x0;_0x22210f[_0x402f16][_0x45ef('0x3d')]=0x0;_0x22210f[_0x402f16]['outboundDropCallsDayCallersExit']=0x0;_0x22210f[_0x402f16][_0x45ef('0x3e')]=0x0;_0x22210f[_0x402f16][_0x45ef('0x3f')]=0x0;_0x22210f[_0x402f16]['outboundRejectCallsDay']=0x0;_0x22210f[_0x402f16][_0x45ef('0x40')]=0x0;_0x22210f[_0x402f16][_0x45ef('0x38')]=0x0;_0x22210f[_0x402f16][_0x45ef('0x41')]=0x0;_0x22210f[_0x402f16][_0x45ef('0x42')]=!![];}}}}Realtime[_0x45ef('0x43')]['mergeFromDatabase']=function(_0x5e999a,_0x2afd77){for(var _0x4a7d6f in _0x2afd77){if(_0x5e999a['hasOwnProperty'](_0x4a7d6f)){_0x5e999a[_0x4a7d6f]=_0x2afd77[_0x4a7d6f];}}};Realtime[_0x45ef('0x43')][_0x45ef('0x44')]=function(){var _0x19d7a4=this;return function(_0x205642){if(_0x205642){freeIsNotKeyAgent(_0x205642,_0x19d7a4['agents']);for(var _0x345ed8=0x0,_0x59377c={},_0x439ad5={};_0x345ed8<_0x205642['length'];_0x345ed8+=0x1){_0x59377c=_0x205642[_0x345ed8];var _0x2d1809=_[_0x45ef('0x2d')](_0x59377c[_0x45ef('0x2e')])?util[_0x45ef('0x2a')](_0x45ef('0x2b'),_0x59377c[_0x45ef('0x2c')]):_0x59377c[_0x45ef('0x2e')];if(_['isUndefined'](_0x19d7a4[_0x45ef('0x13')][_0x2d1809])){_0x19d7a4['agents'][_0x2d1809]=new Agent(_0x59377c);}else{_0x19d7a4[_0x45ef('0x45')](_0x19d7a4['agents'][_0x2d1809],_0x59377c);}}}return _0x19d7a4['agents'];};};Realtime[_0x45ef('0x43')][_0x45ef('0x46')]=function(){var _0x313423=this;return function(_0x539903){if(_0x539903){freeIsNotKeySip(_0x539903,_0x313423[_0x45ef('0x14')]);for(var _0x274ea5=0x0,_0x22edaa={},_0x3879ae={};_0x274ea5<_0x539903[_0x45ef('0x47')];_0x274ea5+=0x1){_0x22edaa=_0x539903[_0x274ea5];if(_['isUndefined'](_0x313423[_0x45ef('0x14')][util[_0x45ef('0x2a')](_0x45ef('0x2b'),_0x22edaa[_0x45ef('0x2c')])])){_0x313423[_0x45ef('0x14')][util[_0x45ef('0x2a')](_0x45ef('0x2b'),_0x22edaa[_0x45ef('0x2c')])]=new Telephone(_0x22edaa);}else{_0x313423[_0x45ef('0x45')](_0x313423['telephones'][util['format'](_0x45ef('0x2b'),_0x22edaa[_0x45ef('0x2c')])],_0x22edaa);}}}return _0x313423['telephones'];};};Realtime[_0x45ef('0x43')]['initTrunks']=function(){var _0x2b3c81=this;return function(_0x4b74d9){if(_0x4b74d9){freeIsNotKeySip(_0x4b74d9,_0x2b3c81['trunks']);for(var _0x3b4e2d=0x0,_0x3b842b={},_0x146dde={};_0x3b4e2d<_0x4b74d9['length'];_0x3b4e2d+=0x1){_0x3b842b=_0x4b74d9[_0x3b4e2d];if(_[_0x45ef('0x48')](_0x2b3c81[_0x45ef('0x15')][util['format'](_0x45ef('0x2b'),_0x3b842b[_0x45ef('0x2c')])])){_0x2b3c81[_0x45ef('0x15')][util[_0x45ef('0x2a')]('SIP/%s',_0x3b842b[_0x45ef('0x2c')])]=new Trunk(_0x3b842b);}else{_0x2b3c81[_0x45ef('0x45')](_0x2b3c81[_0x45ef('0x15')][util[_0x45ef('0x2a')](_0x45ef('0x2b'),_0x3b842b['name'])],_0x3b842b);}}}return _0x2b3c81['trunks'];};};Realtime[_0x45ef('0x43')][_0x45ef('0x49')]=function(){var _0x4fee66=this;return function(_0x47b75b){if(_0x47b75b){freeIsNotKey(_0x47b75b,_0x4fee66[_0x45ef('0x16')],_0x45ef('0x2c'));for(var _0x2a2dc9=0x0,_0x15482d={},_0x441cbc={};_0x2a2dc9<_0x47b75b[_0x45ef('0x47')];_0x2a2dc9+=0x1){_0x15482d=_0x47b75b[_0x2a2dc9];if(_[_0x45ef('0x48')](_0x4fee66[_0x45ef('0x16')][_0x15482d['name']])){_0x4fee66[_0x45ef('0x16')][_0x15482d[_0x45ef('0x2c')]]=new VoiceQueue(_0x15482d);}else{_0x4fee66[_0x45ef('0x45')](_0x4fee66[_0x45ef('0x16')][_0x15482d['name']],_0x15482d);}}}return _0x4fee66[_0x45ef('0x16')];};};Realtime[_0x45ef('0x43')][_0x45ef('0x4a')]=function(){var _0x33d90e=this;return function(_0xefb652){if(_0xefb652){freeIsNotKey(_0xefb652,_0x33d90e['triggers'],'id');for(var _0x59876b=0x0,_0x15e6e2={},_0x5f5003={};_0x59876b<_0xefb652[_0x45ef('0x47')];_0x59876b+=0x1){_0x15e6e2=_0xefb652[_0x59876b];if(_[_0x45ef('0x48')](_0x33d90e[_0x45ef('0x17')][_0x15e6e2['id']])){_0x33d90e[_0x45ef('0x17')][_0x15e6e2['id']]=new Trigger(_0x15e6e2);}else{_0x33d90e['mergeFromDatabase'](_0x33d90e[_0x45ef('0x17')][_0x15e6e2['id']],_0x15e6e2);}}}return _0x33d90e[_0x45ef('0x17')];};};Realtime[_0x45ef('0x43')][_0x45ef('0x4b')]=function(){var _0x4e2b10=this;return function(_0x1eb7d3){if(_0x1eb7d3){freeIsNotKey(_0x1eb7d3,_0x4e2b10[_0x45ef('0x19')],'id');for(var _0x300632=0x0,_0x3fb878={},_0x36e79a={};_0x300632<_0x1eb7d3[_0x45ef('0x47')];_0x300632+=0x1){_0x3fb878=_0x1eb7d3[_0x300632];if(_['isUndefined'](_0x4e2b10['templates'][_0x3fb878['id']])){_0x4e2b10[_0x45ef('0x19')][_0x3fb878['id']]=new Template(_0x3fb878);}else{_0x4e2b10['mergeFromDatabase'](_0x4e2b10[_0x45ef('0x19')][_0x3fb878['id']],_0x3fb878);}}}return _0x4e2b10[_0x45ef('0x19')];};};Realtime[_0x45ef('0x43')][_0x45ef('0x4c')]=function(){var _0x383478=this;return function(_0x38cfc5){if(_0x38cfc5){freeIsNotKey(_0x38cfc5,_0x383478[_0x45ef('0x20')],'id');for(var _0xa792d7=0x0,_0x4bfd1e={},_0x318123={};_0xa792d7<_0x38cfc5[_0x45ef('0x47')];_0xa792d7+=0x1){_0x4bfd1e=_0x38cfc5[_0xa792d7];if(_[_0x45ef('0x48')](_0x383478[_0x45ef('0x20')][_0x4bfd1e['id']])){_0x383478[_0x45ef('0x20')][_0x4bfd1e['id']]=new ZendeskAccount(_0x4bfd1e);}else{_0x383478[_0x45ef('0x45')](_0x383478[_0x45ef('0x20')][_0x4bfd1e['id']],_0x4bfd1e);}}}return _0x383478[_0x45ef('0x20')];};};Realtime[_0x45ef('0x43')][_0x45ef('0x4d')]=function(){var _0xff8634=this;return function(_0x5ab02d){if(_0x5ab02d){freeIsNotKey(_0x5ab02d,_0xff8634[_0x45ef('0x21')],'id');for(var _0x17bc21=0x0,_0x148356={},_0x341587={};_0x17bc21<_0x5ab02d['length'];_0x17bc21+=0x1){_0x148356=_0x5ab02d[_0x17bc21];if(_[_0x45ef('0x48')](_0xff8634[_0x45ef('0x21')][_0x148356['id']])){_0xff8634[_0x45ef('0x21')][_0x148356['id']]=new SalesforceAccount(_0x148356);}else{_0xff8634[_0x45ef('0x45')](_0xff8634[_0x45ef('0x21')][_0x148356['id']],_0x148356);}}}return _0xff8634['salesforceAccounts'];};};Realtime[_0x45ef('0x43')][_0x45ef('0x4e')]=function(){var _0x17d845=this;return function(_0x564fbe){if(_0x564fbe){freeIsNotKey(_0x564fbe,_0x17d845['freshdeskAccounts'],'id');for(var _0x339e64=0x0,_0x126d26={},_0x48886e={};_0x339e64<_0x564fbe[_0x45ef('0x47')];_0x339e64+=0x1){_0x126d26=_0x564fbe[_0x339e64];if(_[_0x45ef('0x48')](_0x17d845['freshdeskAccounts'][_0x126d26['id']])){_0x17d845[_0x45ef('0x23')][_0x126d26['id']]=new FreshdeskAccount(_0x126d26);}else{_0x17d845[_0x45ef('0x45')](_0x17d845[_0x45ef('0x23')][_0x126d26['id']],_0x126d26);}}}return _0x17d845[_0x45ef('0x23')];};};Realtime['prototype'][_0x45ef('0x4f')]=function(){var _0x472a54=this;return function(_0x1e7045){if(_0x1e7045){freeIsNotKey(_0x1e7045,_0x472a54[_0x45ef('0x24')],'id');for(var _0x392508=0x0,_0x693f44={},_0x172e57={};_0x392508<_0x1e7045[_0x45ef('0x47')];_0x392508+=0x1){_0x693f44=_0x1e7045[_0x392508];if(_[_0x45ef('0x48')](_0x472a54['zohoAccounts'][_0x693f44['id']])){_0x472a54[_0x45ef('0x24')][_0x693f44['id']]=new ZohoAccount(_0x693f44);}else{_0x472a54[_0x45ef('0x45')](_0x472a54[_0x45ef('0x24')][_0x693f44['id']],_0x693f44);}}}return _0x472a54[_0x45ef('0x24')];};};Realtime[_0x45ef('0x43')][_0x45ef('0x50')]=function(){var _0x2f3ff9=this;return function(_0x4f98a7){if(_0x4f98a7){freeIsNotKey(_0x4f98a7,_0x2f3ff9[_0x45ef('0x51')],'id');for(var _0x58e236=0x0,_0x45b9d4={},_0x42e9a8={};_0x58e236<_0x4f98a7[_0x45ef('0x47')];_0x58e236+=0x1){_0x45b9d4=_0x4f98a7[_0x58e236];if(_[_0x45ef('0x48')](_0x2f3ff9['deskAccounts'][_0x45b9d4['id']])){_0x2f3ff9['deskAccounts'][_0x45b9d4['id']]=new DeskAccount(_0x45b9d4);}else{_0x2f3ff9[_0x45ef('0x45')](_0x2f3ff9[_0x45ef('0x51')][_0x45b9d4['id']],_0x45b9d4);}}}return _0x2f3ff9['deskAccounts'];};};Realtime[_0x45ef('0x43')][_0x45ef('0x52')]=function(){var _0x4cad6b=this;return function(_0x30eb0f){if(_0x30eb0f){freeIsNotKey(_0x30eb0f,_0x4cad6b[_0x45ef('0x22')],'id');for(var _0x51affd=0x0,_0x472dbf={},_0x2c7636={};_0x51affd<_0x30eb0f[_0x45ef('0x47')];_0x51affd+=0x1){_0x472dbf=_0x30eb0f[_0x51affd];if(_[_0x45ef('0x48')](_0x4cad6b[_0x45ef('0x22')][_0x472dbf['id']])){_0x4cad6b[_0x45ef('0x22')][_0x472dbf['id']]=new SugarcrmAccount(_0x472dbf);}else{_0x4cad6b['mergeFromDatabase'](_0x4cad6b[_0x45ef('0x22')][_0x472dbf['id']],_0x472dbf);}}}return _0x4cad6b[_0x45ef('0x22')];};};Realtime[_0x45ef('0x43')][_0x45ef('0x53')]=function(){var _0x513174=this;return function(_0x36b9a4){if(_0x36b9a4){freeIsNotKey(_0x36b9a4,_0x513174[_0x45ef('0x25')],'id');for(var _0x2f2190=0x0,_0x330cde={},_0x308924={};_0x2f2190<_0x36b9a4[_0x45ef('0x47')];_0x2f2190+=0x1){_0x330cde=_0x36b9a4[_0x2f2190];if(_[_0x45ef('0x48')](_0x513174[_0x45ef('0x25')][_0x330cde['id']])){_0x513174[_0x45ef('0x25')][_0x330cde['id']]=new VtigerAccount(_0x330cde);}else{_0x513174[_0x45ef('0x45')](_0x513174['vtigerAccounts'][_0x330cde['id']],_0x330cde);}}}return _0x513174[_0x45ef('0x25')];};};Realtime[_0x45ef('0x43')][_0x45ef('0x54')]=function(){var _0x10ac1b=this;return function(_0x16beba){if(_0x16beba){freeIsNotKey(_0x16beba,_0x10ac1b[_0x45ef('0x26')],'id');for(var _0x594e01=0x0,_0x3e55e={},_0x2e7d4d={};_0x594e01<_0x16beba[_0x45ef('0x47')];_0x594e01+=0x1){_0x3e55e=_0x16beba[_0x594e01];if(_[_0x45ef('0x48')](_0x10ac1b[_0x45ef('0x26')][_0x3e55e['id']])){_0x10ac1b['servicenowAccounts'][_0x3e55e['id']]=new ServicenowAccount(_0x3e55e);}else{_0x10ac1b['mergeFromDatabase'](_0x10ac1b[_0x45ef('0x26')][_0x3e55e['id']],_0x3e55e);}}}return _0x10ac1b[_0x45ef('0x26')];};};Realtime[_0x45ef('0x43')][_0x45ef('0x55')]=function(){var _0x8317dd=this;return function(_0x388029){if(_0x388029){freeIsNotKey(_0x388029,_0x8317dd[_0x45ef('0x56')],'id');for(var _0x4a087e=0x0,_0x1eba0e={},_0x1efafa={};_0x4a087e<_0x388029[_0x45ef('0x47')];_0x4a087e+=0x1){_0x1eba0e=_0x388029[_0x4a087e];if(_['isUndefined'](_0x8317dd[_0x45ef('0x56')][_0x1eba0e['id']])){_0x8317dd[_0x45ef('0x56')][_0x1eba0e['id']]=new Dynamics365Account(_0x1eba0e);}else{_0x8317dd[_0x45ef('0x45')](_0x8317dd[_0x45ef('0x56')][_0x1eba0e['id']],_0x1eba0e);}}}return _0x8317dd[_0x45ef('0x56')];};};Realtime[_0x45ef('0x43')][_0x45ef('0x57')]=function(){var _0x280409=this;return function(_0x42b968){if(_0x42b968){freeIsNotKey(_0x42b968,_0x280409[_0x45ef('0x27')],'id');for(var _0x39bf31=0x0,_0xa0521b={},_0x1a287f={};_0x39bf31<_0x42b968[_0x45ef('0x47')];_0x39bf31+=0x1){_0xa0521b=_0x42b968[_0x39bf31];if(_[_0x45ef('0x48')](_0x280409[_0x45ef('0x27')][_0xa0521b['id']])){_0x280409[_0x45ef('0x27')][_0xa0521b['id']]=new FreshsalesAccount(_0xa0521b);}else{_0x280409['mergeFromDatabase'](_0x280409[_0x45ef('0x27')][_0xa0521b['id']],_0xa0521b);}}}return _0x280409[_0x45ef('0x27')];};};Realtime['prototype'][_0x45ef('0x58')]=function(){var _0x2ac2ba=this;return function(_0x1bef04){for(var _0x29b7e3=0x0;_0x29b7e3<_0x1bef04[_0x45ef('0x47')];_0x29b7e3+=0x1){_[_0x45ef('0x59')](_0x2ac2ba[_0x45ef('0x16')][_0x1bef04[_0x29b7e3][_0x45ef('0x2c')]],_0x1bef04[_0x29b7e3]);}return _0x2ac2ba[_0x45ef('0x16')];};};Realtime[_0x45ef('0x43')]['initVoiceQueueReports']=function(){var _0x37849e=this;return function(_0x499483){clearVoiceQueues(_0x37849e[_0x45ef('0x16')]);if(_0x499483){_0x499483=_['groupBy'](_0x499483,_0x45ef('0x5a'));for(var _0x226a31 in _0x499483){if(_0x499483['hasOwnProperty'](_0x226a31)){var _0x3013b9={};for(var _0x5d19b9=0x0;_0x5d19b9<_0x499483[_0x226a31][_0x45ef('0x47')];_0x5d19b9+=0x1){var _0x141ff4=_0x499483[_0x226a31][_0x5d19b9][_0x45ef('0x5b')];if(_0x37849e[_0x45ef('0x16')][_0x141ff4]){if(_0x499483[_0x226a31][_0x5d19b9][_0x45ef('0x5c')]){_0x37849e[_0x45ef('0x16')][_0x141ff4][_0x45ef('0x36')]+=0x1;}if(_0x499483[_0x226a31][_0x5d19b9][_0x45ef('0x5d')]){_0x37849e['voiceQueues'][_0x141ff4][_0x45ef('0x37')]+=0x1;}_0x37849e[_0x45ef('0x16')][_0x141ff4][_0x45ef('0x31')]+=moment(_0x499483[_0x226a31][_0x5d19b9][_0x45ef('0x5e')])[_0x45ef('0x5f')](moment(_0x499483[_0x226a31][_0x5d19b9][_0x45ef('0x60')]),'seconds')||0x0;if(_0x5d19b9===_0x499483[_0x226a31][_0x45ef('0x47')]-0x1){_0x37849e['voiceQueues'][_0x141ff4][_0x45ef('0x32')]+=moment(_0x499483[_0x226a31][_0x5d19b9][_0x45ef('0x61')]||_0x499483[_0x226a31][_0x5d19b9][_0x45ef('0x62')]||_0x499483[_0x226a31][_0x5d19b9][_0x45ef('0x63')])[_0x45ef('0x5f')](moment(_0x499483[_0x226a31][_0x5d19b9][_0x45ef('0x60')]),_0x45ef('0x64'))||0x0;_0x37849e[_0x45ef('0x16')][_0x141ff4][_0x45ef('0x2f')]+=0x1;if(_0x499483[_0x226a31][_0x5d19b9][_0x45ef('0x65')]){_0x37849e[_0x45ef('0x16')][_0x141ff4][_0x45ef('0x30')]+=0x1;_0x37849e[_0x45ef('0x16')][_0x141ff4][_0x45ef('0x33')]+=moment(_0x499483[_0x226a31][_0x5d19b9][_0x45ef('0x61')])[_0x45ef('0x5f')](moment(_0x499483[_0x226a31][_0x5d19b9][_0x45ef('0x5e')]),_0x45ef('0x64'))||0x0;}}else{_0x37849e[_0x45ef('0x16')][_0x141ff4]['sumDuration']+=_0x37849e[_0x45ef('0x16')][_0x141ff4][_0x45ef('0x31')]||0x0;}}}}}}return _0x37849e['voiceQueues'];};};Realtime[_0x45ef('0x43')]['initVoiceCallReports']=function(){var _0x2c5576=this;return function(_0x4b09a6){clearVoiceCallReports(_0x2c5576[_0x45ef('0x1a')]);if(_0x4b09a6){for(var _0x76c8c5=0x0;_0x76c8c5<_0x4b09a6[_0x45ef('0x47')];_0x76c8c5+=0x1){_0x2c5576['outbound'][_0x45ef('0x2f')]+=0x1;_0x2c5576['outbound'][_0x45ef('0x32')]+=_0x4b09a6[_0x76c8c5][_0x45ef('0x66')];if(_0x4b09a6[_0x76c8c5][_0x45ef('0x67')]===_0x45ef('0x68')){_0x2c5576[_0x45ef('0x1a')]['answered']+=0x1;_0x2c5576['outbound'][_0x45ef('0x31')]+=_0x4b09a6[_0x76c8c5]['duration']-_0x4b09a6[_0x76c8c5][_0x45ef('0x69')]||0x0;_0x2c5576[_0x45ef('0x1a')][_0x45ef('0x33')]+=_0x4b09a6[_0x76c8c5]['billableseconds'];}}}return _0x2c5576[_0x45ef('0x1a')];};};Realtime[_0x45ef('0x43')][_0x45ef('0x6a')]=function(){var _0x2cafc7=this;return function(_0x47d2e0){if(_0x47d2e0){freeIsNotKey(_0x47d2e0,_0x2cafc7[_0x45ef('0x18')],'name');for(var _0x39e278=0x0,_0x34ca8c={};_0x39e278<_0x47d2e0[_0x45ef('0x47')];_0x39e278+=0x1){_0x34ca8c=_0x47d2e0[_0x39e278];if(_[_0x45ef('0x48')](_0x2cafc7[_0x45ef('0x18')][_0x34ca8c['name']])){_0x2cafc7[_0x45ef('0x18')][_0x34ca8c['name']]=new Campaign(_0x34ca8c);}else{_0x2cafc7[_0x45ef('0x45')](_0x2cafc7['campaigns'][_0x34ca8c[_0x45ef('0x2c')]],_0x34ca8c);_0x2cafc7['campaigns'][_0x34ca8c[_0x45ef('0x2c')]][_0x45ef('0x6b')]=_0x34ca8c[_0x45ef('0x6c')]?_0x34ca8c[_0x45ef('0x6c')][_0x45ef('0x2c')]:undefined;}}}return _0x2cafc7[_0x45ef('0x18')];};};Realtime[_0x45ef('0x43')][_0x45ef('0x6d')]=function(){var _0xbbc6f=this;return function(_0x5af43a){if(_0x5af43a){freeIsNotKey(_0x5af43a,_0xbbc6f[_0x45ef('0x6e')],'id');for(var _0x479d3e=0x0,_0x30c0b4={};_0x479d3e<_0x5af43a[_0x45ef('0x47')];_0x479d3e+=0x1){_0x30c0b4=_0x5af43a[_0x479d3e];if(_[_0x45ef('0x48')](_0xbbc6f[_0x45ef('0x6e')][_0x30c0b4['id']])){_0xbbc6f['voiceExtensions'][_0x30c0b4['id']]=new VoiceExtension(_0x30c0b4);}else{_0xbbc6f[_0x45ef('0x45')](_0xbbc6f[_0x45ef('0x6e')][_0x30c0b4['id']],_0x30c0b4);}}}return _0xbbc6f['voiceExtensions'];};};Realtime[_0x45ef('0x43')][_0x45ef('0x6f')]=function(){var _0x4b8761=this;return function(_0x24ff43){clearCampaigns(_0x4b8761[_0x45ef('0x18')]);for(var _0x151b85=0x0;_0x151b85<_0x24ff43['length'];_0x151b85+=0x1){_[_0x45ef('0x59')](_0x4b8761[_0x45ef('0x18')][_0x24ff43[_0x151b85]['name']],_0x24ff43[_0x151b85]);}return _0x4b8761[_0x45ef('0x18')];};};Realtime[_0x45ef('0x43')][_0x45ef('0x70')]=function(){var _0xcfc70b=this;return function(_0x920a15){if(_0x920a15){freeIsNotKey(_0x920a15,_0xcfc70b[_0x45ef('0x71')],'id');for(var _0x5dddbb=0x0,_0x380368={},_0x3dc5ee={};_0x5dddbb<_0x920a15['length'];_0x5dddbb+=0x1){_0x380368=_0x920a15[_0x5dddbb];if(_['isUndefined'](_0xcfc70b['faxAccounts'][_0x380368['id']])){_0xcfc70b[_0x45ef('0x71')][_0x380368['id']]=new FaxAccount(_0x380368);}else{_0xcfc70b[_0x45ef('0x45')](_0xcfc70b[_0x45ef('0x71')][_0x380368['id']],_0x380368);}}}return _0xcfc70b[_0x45ef('0x71')];};};module[_0x45ef('0x72')]=Realtime;
\ No newline at end of file
+var _0x18b0=['queueChannels','timers','settings','salesforceAccounts','sugarcrmAccounts','zohoAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','freshsalesAccounts','faxAccounts','mapKeys','hasOwnProperty','format','SIP/%s','name','isNil','interface','total','answered','sumHoldTime','sumDuration','sumBillable','isEmpty','ivrTotalCallsDays','ivrAnswerCallsDay','unmanaged','abandoned','outboundAnswerAgiCallsDay','outboundNoAnswerCallsDay','outboundCongestionCallsDay','outboundNoSuchCallsDay','outboundDropCallsDayCallersExit','outboundOriginateFailureCallsDay','outboundAnswerCallsDay','prototype','mergeFromDatabase','initAgents','length','initTelephones','isUndefined','initTrunks','initTemplates','initZendeskAccounts','zendeskAccounts','initFreshdeskAccounts','freshdeskAccounts','initZohoAccounts','initDeskAccounts','deskAccounts','initSugarcrmAccounts','initVtigerAccounts','initServicenowAccounts','initDynamics365Accounts','initFreshsalesAccounts','merge','initVoiceQueueReports','queuecallerexit','queuecallerabandon','queuecallerjoinAt','seconds','queuecallerexitAt','queuecallercomplete','queuecallercompleteAt','queuecallerleaveAt','initVoiceCallReports','duration','ANSWERED','billableseconds','initCampaigns','SquareProject','exports','bluebird','util','lodash','moment','../model/agent','../model/telephone','../model/trunk','../model/voiceQueue','../model/template','../model/campaign','../model/salesforceAccount','../model/sugarcrmAccount','../model/zohoAccount','../model/deskAccount','../model/vtigerAccount','../model/servicenowAccount','../model/freshsalesAccount','../model/faxAccount','agents','telephones','trunks','voiceQueues','triggers','campaigns','templates','outbound','voiceExtensions'];(function(_0x364a2f,_0x5280d4){var _0x12ef3d=function(_0x179d7c){while(--_0x179d7c){_0x364a2f['push'](_0x364a2f['shift']());}};_0x12ef3d(++_0x5280d4);}(_0x18b0,0x1d4));var _0x018b=function(_0x2a48ed,_0x421e9f){_0x2a48ed=_0x2a48ed-0x0;var _0x1def40=_0x18b0[_0x2a48ed];return _0x1def40;};'use strict';var BPromise=require(_0x018b('0x0'));var util=require(_0x018b('0x1'));var _=require(_0x018b('0x2'));var moment=require(_0x018b('0x3'));var Agent=require(_0x018b('0x4'));var Telephone=require(_0x018b('0x5'));var Trunk=require(_0x018b('0x6'));var VoiceQueue=require(_0x018b('0x7'));var Trigger=require('../model/trigger');var Template=require(_0x018b('0x8'));var Campaign=require(_0x018b('0x9'));var VoiceExtension=require('../model/voiceExtension');var ZendeskAccount=require('../model/zendeskAccount');var SalesforceAccount=require(_0x018b('0xa'));var FreshdeskAccount=require('../model/freshdeskAccount');var SugarcrmAccount=require(_0x018b('0xb'));var ZohoAccount=require(_0x018b('0xc'));var DeskAccount=require(_0x018b('0xd'));var VtigerAccount=require(_0x018b('0xe'));var ServicenowAccount=require(_0x018b('0xf'));var Dynamics365Account=require('../model/dynamics365Account');var FreshsalesAccount=require(_0x018b('0x10'));var FaxAccount=require(_0x018b('0x11'));var Realtime=function(){this[_0x018b('0x12')]={};this[_0x018b('0x13')]={};this[_0x018b('0x14')]={};this[_0x018b('0x15')]={};this[_0x018b('0x16')]={};this[_0x018b('0x17')]={};this[_0x018b('0x18')]={};this[_0x018b('0x19')]={'total':0x0,'answered':0x0,'sumHoldTime':0x0,'sumDuration':0x0,'sumBillable':0x0};this[_0x018b('0x1a')]={};this['channels']={};this[_0x018b('0x1b')]={};this['outboundChannels']={};this[_0x018b('0x1c')]={};this[_0x018b('0x1d')]={};this['zendeskAccounts']={};this[_0x018b('0x1e')]={};this[_0x018b('0x1f')]={};this['freshdeskAccounts']={};this[_0x018b('0x20')]={};this['deskAccounts']={};this[_0x018b('0x21')]={};this[_0x018b('0x22')]={};this[_0x018b('0x23')]={};this[_0x018b('0x24')]={};this[_0x018b('0x25')]={};};function freeIsNotKey(_0x26f7e5,_0x5ca64c,_0x222c6a){var _0x2c871e=_[_0x018b('0x26')](_0x26f7e5,function(_0x15f062,_0x470a40){return _0x15f062[_0x222c6a];});for(var _0x2f4774 in _0x5ca64c){if(_0x5ca64c[_0x018b('0x27')](_0x2f4774)){if(!_0x2c871e[_0x2f4774]){delete _0x5ca64c[_0x2f4774];}}}}function freeIsNotKeySip(_0x4e5560,_0x265176){var _0x2776b1=_[_0x018b('0x26')](_0x4e5560,function(_0x89968d,_0x1b646a){return util[_0x018b('0x28')](_0x018b('0x29'),_0x89968d[_0x018b('0x2a')]);});for(var _0x2ef5c2 in _0x265176){if(_0x265176[_0x018b('0x27')](_0x2ef5c2)){if(!_0x2776b1[_0x2ef5c2]){delete _0x265176[_0x2ef5c2];}}}}function freeIsNotKeyAgent(_0x512d68,_0x2343d4){var _0x316757=_['mapKeys'](_0x512d68,function(_0x1c74b1,_0x2fc359){var _0x3f143f=_[_0x018b('0x2b')](_0x1c74b1[_0x018b('0x2c')])?util[_0x018b('0x28')](_0x018b('0x29'),_0x1c74b1[_0x018b('0x2a')]):_0x1c74b1[_0x018b('0x2c')];return _0x3f143f;});for(var _0x3e9d6e in _0x2343d4){if(_0x2343d4[_0x018b('0x27')](_0x3e9d6e)){if(!_0x316757[_0x3e9d6e]){delete _0x2343d4[_0x3e9d6e];}}}}function clearVoiceCallReports(_0x1bb151){_0x1bb151[_0x018b('0x2d')]=0x0;_0x1bb151[_0x018b('0x2e')]=0x0;_0x1bb151[_0x018b('0x2f')]=0x0;_0x1bb151[_0x018b('0x30')]=0x0;_0x1bb151[_0x018b('0x31')]=0x0;}function clearCampaigns(_0x703630){if(!_[_0x018b('0x32')](_0x703630)){for(var _0x5dc8e2 in _0x703630){if(_0x703630[_0x018b('0x27')](_0x5dc8e2)){_0x703630[_0x5dc8e2][_0x018b('0x33')]=0x0;_0x703630[_0x5dc8e2][_0x018b('0x34')]=0x0;}}}}function clearVoiceQueues(_0x2782bb){if(!_[_0x018b('0x32')](_0x2782bb)){for(var _0x1791f3 in _0x2782bb){if(_0x2782bb[_0x018b('0x27')](_0x1791f3)){_0x2782bb[_0x1791f3][_0x018b('0x2d')]=0x0;_0x2782bb[_0x1791f3][_0x018b('0x2e')]=0x0;_0x2782bb[_0x1791f3][_0x018b('0x35')]=0x0;_0x2782bb[_0x1791f3][_0x018b('0x36')]=0x0;_0x2782bb[_0x1791f3][_0x018b('0x2f')]=0x0;_0x2782bb[_0x1791f3][_0x018b('0x30')]=0x0;_0x2782bb[_0x1791f3][_0x018b('0x31')]=0x0;_0x2782bb[_0x1791f3][_0x018b('0x37')]=0x0;_0x2782bb[_0x1791f3][_0x018b('0x38')]=0x0;_0x2782bb[_0x1791f3]['outboundBusyCallsDay']=0x0;_0x2782bb[_0x1791f3][_0x018b('0x39')]=0x0;_0x2782bb[_0x1791f3][_0x018b('0x3a')]=0x0;_0x2782bb[_0x1791f3]['outboundUnknownCallsDay']=0x0;_0x2782bb[_0x1791f3]['outboundDropCallsDayTimeout']=0x0;_0x2782bb[_0x1791f3][_0x018b('0x3b')]=0x0;_0x2782bb[_0x1791f3]['outboundBlacklistCallsDay']=0x0;_0x2782bb[_0x1791f3][_0x018b('0x3c')]=0x0;_0x2782bb[_0x1791f3]['outboundRejectCallsDay']=0x0;_0x2782bb[_0x1791f3]['outboundReCallsDay']=0x0;_0x2782bb[_0x1791f3][_0x018b('0x37')]=0x0;_0x2782bb[_0x1791f3][_0x018b('0x3d')]=0x0;_0x2782bb[_0x1791f3]['queueStatusComplete']=!![];}}}}Realtime[_0x018b('0x3e')][_0x018b('0x3f')]=function(_0x546291,_0x5b0051){for(var _0xf718d1 in _0x5b0051){if(_0x546291[_0x018b('0x27')](_0xf718d1)){_0x546291[_0xf718d1]=_0x5b0051[_0xf718d1];}}};Realtime[_0x018b('0x3e')][_0x018b('0x40')]=function(){var _0x353459=this;return function(_0x4d6c13){if(_0x4d6c13){freeIsNotKeyAgent(_0x4d6c13,_0x353459[_0x018b('0x12')]);for(var _0x57772c=0x0,_0x31b990={},_0x373229={};_0x57772c<_0x4d6c13[_0x018b('0x41')];_0x57772c+=0x1){_0x31b990=_0x4d6c13[_0x57772c];var _0x2c48c0=_['isNil'](_0x31b990[_0x018b('0x2c')])?util[_0x018b('0x28')](_0x018b('0x29'),_0x31b990['name']):_0x31b990[_0x018b('0x2c')];if(_['isUndefined'](_0x353459[_0x018b('0x12')][_0x2c48c0])){_0x353459[_0x018b('0x12')][_0x2c48c0]=new Agent(_0x31b990);}else{_0x353459['mergeFromDatabase'](_0x353459[_0x018b('0x12')][_0x2c48c0],_0x31b990);}}}return _0x353459[_0x018b('0x12')];};};Realtime[_0x018b('0x3e')][_0x018b('0x42')]=function(){var _0x1a589e=this;return function(_0x616005){if(_0x616005){freeIsNotKeySip(_0x616005,_0x1a589e[_0x018b('0x13')]);for(var _0x43f049=0x0,_0x14fc7f={},_0x21a8b7={};_0x43f049<_0x616005[_0x018b('0x41')];_0x43f049+=0x1){_0x14fc7f=_0x616005[_0x43f049];if(_[_0x018b('0x43')](_0x1a589e[_0x018b('0x13')][util[_0x018b('0x28')](_0x018b('0x29'),_0x14fc7f[_0x018b('0x2a')])])){_0x1a589e['telephones'][util['format'](_0x018b('0x29'),_0x14fc7f[_0x018b('0x2a')])]=new Telephone(_0x14fc7f);}else{_0x1a589e[_0x018b('0x3f')](_0x1a589e[_0x018b('0x13')][util['format'](_0x018b('0x29'),_0x14fc7f[_0x018b('0x2a')])],_0x14fc7f);}}}return _0x1a589e['telephones'];};};Realtime[_0x018b('0x3e')][_0x018b('0x44')]=function(){var _0x31082e=this;return function(_0x209b4f){if(_0x209b4f){freeIsNotKeySip(_0x209b4f,_0x31082e[_0x018b('0x14')]);for(var _0x3025b7=0x0,_0x31c93={},_0x307c22={};_0x3025b7<_0x209b4f[_0x018b('0x41')];_0x3025b7+=0x1){_0x31c93=_0x209b4f[_0x3025b7];if(_[_0x018b('0x43')](_0x31082e[_0x018b('0x14')][util[_0x018b('0x28')](_0x018b('0x29'),_0x31c93['name'])])){_0x31082e['trunks'][util[_0x018b('0x28')](_0x018b('0x29'),_0x31c93['name'])]=new Trunk(_0x31c93);}else{_0x31082e[_0x018b('0x3f')](_0x31082e[_0x018b('0x14')][util['format'](_0x018b('0x29'),_0x31c93['name'])],_0x31c93);}}}return _0x31082e[_0x018b('0x14')];};};Realtime['prototype']['initVoiceQueues']=function(){var _0x428d1f=this;return function(_0x2d408c){if(_0x2d408c){freeIsNotKey(_0x2d408c,_0x428d1f['voiceQueues'],_0x018b('0x2a'));for(var _0x4bafb0=0x0,_0x471416={},_0x15cdc3={};_0x4bafb0<_0x2d408c['length'];_0x4bafb0+=0x1){_0x471416=_0x2d408c[_0x4bafb0];if(_[_0x018b('0x43')](_0x428d1f['voiceQueues'][_0x471416[_0x018b('0x2a')]])){_0x428d1f['voiceQueues'][_0x471416['name']]=new VoiceQueue(_0x471416);}else{_0x428d1f[_0x018b('0x3f')](_0x428d1f['voiceQueues'][_0x471416[_0x018b('0x2a')]],_0x471416);}}}return _0x428d1f[_0x018b('0x15')];};};Realtime['prototype']['initTriggers']=function(){var _0x34219b=this;return function(_0x416996){if(_0x416996){freeIsNotKey(_0x416996,_0x34219b[_0x018b('0x16')],'id');for(var _0x307313=0x0,_0x3d3d3f={},_0x4b28a4={};_0x307313<_0x416996[_0x018b('0x41')];_0x307313+=0x1){_0x3d3d3f=_0x416996[_0x307313];if(_['isUndefined'](_0x34219b[_0x018b('0x16')][_0x3d3d3f['id']])){_0x34219b[_0x018b('0x16')][_0x3d3d3f['id']]=new Trigger(_0x3d3d3f);}else{_0x34219b[_0x018b('0x3f')](_0x34219b[_0x018b('0x16')][_0x3d3d3f['id']],_0x3d3d3f);}}}return _0x34219b[_0x018b('0x16')];};};Realtime['prototype'][_0x018b('0x45')]=function(){var _0x17283d=this;return function(_0x39fd2c){if(_0x39fd2c){freeIsNotKey(_0x39fd2c,_0x17283d[_0x018b('0x18')],'id');for(var _0x1c28b8=0x0,_0x2fca1b={},_0x58dded={};_0x1c28b8<_0x39fd2c[_0x018b('0x41')];_0x1c28b8+=0x1){_0x2fca1b=_0x39fd2c[_0x1c28b8];if(_[_0x018b('0x43')](_0x17283d[_0x018b('0x18')][_0x2fca1b['id']])){_0x17283d[_0x018b('0x18')][_0x2fca1b['id']]=new Template(_0x2fca1b);}else{_0x17283d[_0x018b('0x3f')](_0x17283d[_0x018b('0x18')][_0x2fca1b['id']],_0x2fca1b);}}}return _0x17283d[_0x018b('0x18')];};};Realtime[_0x018b('0x3e')][_0x018b('0x46')]=function(){var _0x1e5eea=this;return function(_0x240a8d){if(_0x240a8d){freeIsNotKey(_0x240a8d,_0x1e5eea[_0x018b('0x47')],'id');for(var _0x50f2a2=0x0,_0x424d21={},_0x331fcf={};_0x50f2a2<_0x240a8d[_0x018b('0x41')];_0x50f2a2+=0x1){_0x424d21=_0x240a8d[_0x50f2a2];if(_[_0x018b('0x43')](_0x1e5eea[_0x018b('0x47')][_0x424d21['id']])){_0x1e5eea[_0x018b('0x47')][_0x424d21['id']]=new ZendeskAccount(_0x424d21);}else{_0x1e5eea[_0x018b('0x3f')](_0x1e5eea[_0x018b('0x47')][_0x424d21['id']],_0x424d21);}}}return _0x1e5eea[_0x018b('0x47')];};};Realtime[_0x018b('0x3e')]['initSalesforceAccounts']=function(){var _0x3489e2=this;return function(_0x1b74cd){if(_0x1b74cd){freeIsNotKey(_0x1b74cd,_0x3489e2['salesforceAccounts'],'id');for(var _0xa60e28=0x0,_0x445727={},_0x252927={};_0xa60e28<_0x1b74cd[_0x018b('0x41')];_0xa60e28+=0x1){_0x445727=_0x1b74cd[_0xa60e28];if(_['isUndefined'](_0x3489e2[_0x018b('0x1e')][_0x445727['id']])){_0x3489e2[_0x018b('0x1e')][_0x445727['id']]=new SalesforceAccount(_0x445727);}else{_0x3489e2[_0x018b('0x3f')](_0x3489e2[_0x018b('0x1e')][_0x445727['id']],_0x445727);}}}return _0x3489e2[_0x018b('0x1e')];};};Realtime['prototype'][_0x018b('0x48')]=function(){var _0x537015=this;return function(_0x2990b2){if(_0x2990b2){freeIsNotKey(_0x2990b2,_0x537015[_0x018b('0x49')],'id');for(var _0x586437=0x0,_0x38e474={},_0x4ddccc={};_0x586437<_0x2990b2[_0x018b('0x41')];_0x586437+=0x1){_0x38e474=_0x2990b2[_0x586437];if(_[_0x018b('0x43')](_0x537015[_0x018b('0x49')][_0x38e474['id']])){_0x537015['freshdeskAccounts'][_0x38e474['id']]=new FreshdeskAccount(_0x38e474);}else{_0x537015[_0x018b('0x3f')](_0x537015[_0x018b('0x49')][_0x38e474['id']],_0x38e474);}}}return _0x537015[_0x018b('0x49')];};};Realtime[_0x018b('0x3e')][_0x018b('0x4a')]=function(){var _0x2f8f68=this;return function(_0x5440f1){if(_0x5440f1){freeIsNotKey(_0x5440f1,_0x2f8f68[_0x018b('0x20')],'id');for(var _0x2917e4=0x0,_0x3a70ae={},_0x1865be={};_0x2917e4<_0x5440f1[_0x018b('0x41')];_0x2917e4+=0x1){_0x3a70ae=_0x5440f1[_0x2917e4];if(_['isUndefined'](_0x2f8f68[_0x018b('0x20')][_0x3a70ae['id']])){_0x2f8f68[_0x018b('0x20')][_0x3a70ae['id']]=new ZohoAccount(_0x3a70ae);}else{_0x2f8f68[_0x018b('0x3f')](_0x2f8f68['zohoAccounts'][_0x3a70ae['id']],_0x3a70ae);}}}return _0x2f8f68[_0x018b('0x20')];};};Realtime[_0x018b('0x3e')][_0x018b('0x4b')]=function(){var _0x3931b8=this;return function(_0x1b9ad7){if(_0x1b9ad7){freeIsNotKey(_0x1b9ad7,_0x3931b8[_0x018b('0x4c')],'id');for(var _0x7e6ebc=0x0,_0x50b28f={},_0x2a0adc={};_0x7e6ebc<_0x1b9ad7['length'];_0x7e6ebc+=0x1){_0x50b28f=_0x1b9ad7[_0x7e6ebc];if(_[_0x018b('0x43')](_0x3931b8['deskAccounts'][_0x50b28f['id']])){_0x3931b8[_0x018b('0x4c')][_0x50b28f['id']]=new DeskAccount(_0x50b28f);}else{_0x3931b8[_0x018b('0x3f')](_0x3931b8['deskAccounts'][_0x50b28f['id']],_0x50b28f);}}}return _0x3931b8['deskAccounts'];};};Realtime[_0x018b('0x3e')][_0x018b('0x4d')]=function(){var _0x556aa8=this;return function(_0x549d7b){if(_0x549d7b){freeIsNotKey(_0x549d7b,_0x556aa8[_0x018b('0x1f')],'id');for(var _0x185673=0x0,_0x4c8186={},_0x2a0c06={};_0x185673<_0x549d7b['length'];_0x185673+=0x1){_0x4c8186=_0x549d7b[_0x185673];if(_[_0x018b('0x43')](_0x556aa8[_0x018b('0x1f')][_0x4c8186['id']])){_0x556aa8[_0x018b('0x1f')][_0x4c8186['id']]=new SugarcrmAccount(_0x4c8186);}else{_0x556aa8['mergeFromDatabase'](_0x556aa8[_0x018b('0x1f')][_0x4c8186['id']],_0x4c8186);}}}return _0x556aa8[_0x018b('0x1f')];};};Realtime[_0x018b('0x3e')][_0x018b('0x4e')]=function(){var _0x1e2c1f=this;return function(_0xb3d5f5){if(_0xb3d5f5){freeIsNotKey(_0xb3d5f5,_0x1e2c1f[_0x018b('0x21')],'id');for(var _0x366c0f=0x0,_0xb8eb1a={},_0x64c2c1={};_0x366c0f<_0xb3d5f5[_0x018b('0x41')];_0x366c0f+=0x1){_0xb8eb1a=_0xb3d5f5[_0x366c0f];if(_[_0x018b('0x43')](_0x1e2c1f[_0x018b('0x21')][_0xb8eb1a['id']])){_0x1e2c1f[_0x018b('0x21')][_0xb8eb1a['id']]=new VtigerAccount(_0xb8eb1a);}else{_0x1e2c1f[_0x018b('0x3f')](_0x1e2c1f['vtigerAccounts'][_0xb8eb1a['id']],_0xb8eb1a);}}}return _0x1e2c1f['vtigerAccounts'];};};Realtime['prototype'][_0x018b('0x4f')]=function(){var _0x537023=this;return function(_0x3b2107){if(_0x3b2107){freeIsNotKey(_0x3b2107,_0x537023[_0x018b('0x22')],'id');for(var _0x3bf41b=0x0,_0x70043b={},_0x5e8b48={};_0x3bf41b<_0x3b2107['length'];_0x3bf41b+=0x1){_0x70043b=_0x3b2107[_0x3bf41b];if(_[_0x018b('0x43')](_0x537023[_0x018b('0x22')][_0x70043b['id']])){_0x537023[_0x018b('0x22')][_0x70043b['id']]=new ServicenowAccount(_0x70043b);}else{_0x537023[_0x018b('0x3f')](_0x537023[_0x018b('0x22')][_0x70043b['id']],_0x70043b);}}}return _0x537023[_0x018b('0x22')];};};Realtime[_0x018b('0x3e')][_0x018b('0x50')]=function(){var _0x1e046e=this;return function(_0x1f8aa1){if(_0x1f8aa1){freeIsNotKey(_0x1f8aa1,_0x1e046e[_0x018b('0x23')],'id');for(var _0x143012=0x0,_0x23cc21={},_0x4b59ba={};_0x143012<_0x1f8aa1[_0x018b('0x41')];_0x143012+=0x1){_0x23cc21=_0x1f8aa1[_0x143012];if(_[_0x018b('0x43')](_0x1e046e[_0x018b('0x23')][_0x23cc21['id']])){_0x1e046e[_0x018b('0x23')][_0x23cc21['id']]=new Dynamics365Account(_0x23cc21);}else{_0x1e046e[_0x018b('0x3f')](_0x1e046e[_0x018b('0x23')][_0x23cc21['id']],_0x23cc21);}}}return _0x1e046e[_0x018b('0x23')];};};Realtime['prototype'][_0x018b('0x51')]=function(){var _0x87bacb=this;return function(_0x5b7291){if(_0x5b7291){freeIsNotKey(_0x5b7291,_0x87bacb['freshsalesAccounts'],'id');for(var _0x29390f=0x0,_0x24e46b={},_0x43d15d={};_0x29390f<_0x5b7291[_0x018b('0x41')];_0x29390f+=0x1){_0x24e46b=_0x5b7291[_0x29390f];if(_[_0x018b('0x43')](_0x87bacb['freshsalesAccounts'][_0x24e46b['id']])){_0x87bacb[_0x018b('0x24')][_0x24e46b['id']]=new FreshsalesAccount(_0x24e46b);}else{_0x87bacb[_0x018b('0x3f')](_0x87bacb[_0x018b('0x24')][_0x24e46b['id']],_0x24e46b);}}}return _0x87bacb[_0x018b('0x24')];};};Realtime[_0x018b('0x3e')]['initVoiceQueueHopperHistory']=function(){var _0x3f9fcd=this;return function(_0x262130){for(var _0xbd2dca=0x0;_0xbd2dca<_0x262130[_0x018b('0x41')];_0xbd2dca+=0x1){_[_0x018b('0x52')](_0x3f9fcd[_0x018b('0x15')][_0x262130[_0xbd2dca][_0x018b('0x2a')]],_0x262130[_0xbd2dca]);}return _0x3f9fcd['voiceQueues'];};};Realtime['prototype'][_0x018b('0x53')]=function(){var _0x287610=this;return function(_0x34f628){clearVoiceQueues(_0x287610[_0x018b('0x15')]);if(_0x34f628){_0x34f628=_['groupBy'](_0x34f628,'uniqueid');for(var _0x37fdeb in _0x34f628){if(_0x34f628[_0x018b('0x27')](_0x37fdeb)){var _0x220885={};for(var _0x2e057c=0x0;_0x2e057c<_0x34f628[_0x37fdeb][_0x018b('0x41')];_0x2e057c+=0x1){var _0x22f836=_0x34f628[_0x37fdeb][_0x2e057c]['queue'];if(_0x287610['voiceQueues'][_0x22f836]){if(_0x34f628[_0x37fdeb][_0x2e057c][_0x018b('0x54')]){_0x287610[_0x018b('0x15')][_0x22f836][_0x018b('0x35')]+=0x1;}if(_0x34f628[_0x37fdeb][_0x2e057c][_0x018b('0x55')]){_0x287610[_0x018b('0x15')][_0x22f836][_0x018b('0x36')]+=0x1;}_0x287610[_0x018b('0x15')][_0x22f836][_0x018b('0x2f')]+=moment(_0x34f628[_0x37fdeb][_0x2e057c]['queuecallerleaveAt'])['diff'](moment(_0x34f628[_0x37fdeb][_0x2e057c][_0x018b('0x56')]),_0x018b('0x57'))||0x0;if(_0x2e057c===_0x34f628[_0x37fdeb][_0x018b('0x41')]-0x1){_0x287610[_0x018b('0x15')][_0x22f836][_0x018b('0x30')]+=moment(_0x34f628[_0x37fdeb][_0x2e057c]['queuecallercompleteAt']||_0x34f628[_0x37fdeb][_0x2e057c]['queuecallerabandonAt']||_0x34f628[_0x37fdeb][_0x2e057c][_0x018b('0x58')])['diff'](moment(_0x34f628[_0x37fdeb][_0x2e057c]['queuecallerjoinAt']),'seconds')||0x0;_0x287610[_0x018b('0x15')][_0x22f836][_0x018b('0x2d')]+=0x1;if(_0x34f628[_0x37fdeb][_0x2e057c][_0x018b('0x59')]){_0x287610['voiceQueues'][_0x22f836][_0x018b('0x2e')]+=0x1;_0x287610['voiceQueues'][_0x22f836][_0x018b('0x31')]+=moment(_0x34f628[_0x37fdeb][_0x2e057c][_0x018b('0x5a')])['diff'](moment(_0x34f628[_0x37fdeb][_0x2e057c][_0x018b('0x5b')]),'seconds')||0x0;}}else{_0x287610[_0x018b('0x15')][_0x22f836][_0x018b('0x30')]+=_0x287610['voiceQueues'][_0x22f836]['sumHoldTime']||0x0;}}}}}}return _0x287610[_0x018b('0x15')];};};Realtime[_0x018b('0x3e')][_0x018b('0x5c')]=function(){var _0x49cf56=this;return function(_0x1d0c95){clearVoiceCallReports(_0x49cf56[_0x018b('0x19')]);if(_0x1d0c95){for(var _0x528f4d=0x0;_0x528f4d<_0x1d0c95[_0x018b('0x41')];_0x528f4d+=0x1){_0x49cf56[_0x018b('0x19')][_0x018b('0x2d')]+=0x1;_0x49cf56[_0x018b('0x19')]['sumDuration']+=_0x1d0c95[_0x528f4d][_0x018b('0x5d')];if(_0x1d0c95[_0x528f4d]['disposition']===_0x018b('0x5e')){_0x49cf56[_0x018b('0x19')][_0x018b('0x2e')]+=0x1;_0x49cf56[_0x018b('0x19')]['sumHoldTime']+=_0x1d0c95[_0x528f4d][_0x018b('0x5d')]-_0x1d0c95[_0x528f4d][_0x018b('0x5f')]||0x0;_0x49cf56[_0x018b('0x19')]['sumBillable']+=_0x1d0c95[_0x528f4d][_0x018b('0x5f')];}}}return _0x49cf56[_0x018b('0x19')];};};Realtime[_0x018b('0x3e')][_0x018b('0x60')]=function(){var _0x2d7d73=this;return function(_0xfe52ab){if(_0xfe52ab){freeIsNotKey(_0xfe52ab,_0x2d7d73[_0x018b('0x17')],'name');for(var _0x1e16f7=0x0,_0xfe2137={};_0x1e16f7<_0xfe52ab[_0x018b('0x41')];_0x1e16f7+=0x1){_0xfe2137=_0xfe52ab[_0x1e16f7];if(_[_0x018b('0x43')](_0x2d7d73[_0x018b('0x17')][_0xfe2137[_0x018b('0x2a')]])){_0x2d7d73['campaigns'][_0xfe2137['name']]=new Campaign(_0xfe2137);}else{_0x2d7d73[_0x018b('0x3f')](_0x2d7d73[_0x018b('0x17')][_0xfe2137[_0x018b('0x2a')]],_0xfe2137);_0x2d7d73[_0x018b('0x17')][_0xfe2137[_0x018b('0x2a')]]['dialQueueProject']=_0xfe2137[_0x018b('0x61')]?_0xfe2137[_0x018b('0x61')][_0x018b('0x2a')]:undefined;}}}return _0x2d7d73[_0x018b('0x17')];};};Realtime[_0x018b('0x3e')]['initVoiceExtensions']=function(){var _0x8680b7=this;return function(_0x4f1551){if(_0x4f1551){freeIsNotKey(_0x4f1551,_0x8680b7['voiceExtensions'],'id');for(var _0x2ae26a=0x0,_0x1c06d2={};_0x2ae26a<_0x4f1551['length'];_0x2ae26a+=0x1){_0x1c06d2=_0x4f1551[_0x2ae26a];if(_[_0x018b('0x43')](_0x8680b7[_0x018b('0x1a')][_0x1c06d2['id']])){_0x8680b7['voiceExtensions'][_0x1c06d2['id']]=new VoiceExtension(_0x1c06d2);}else{_0x8680b7[_0x018b('0x3f')](_0x8680b7['voiceExtensions'][_0x1c06d2['id']],_0x1c06d2);}}}return _0x8680b7[_0x018b('0x1a')];};};Realtime[_0x018b('0x3e')]['initCampaignHopperHistory']=function(){var _0x1bc4ad=this;return function(_0x59a3c7){clearCampaigns(_0x1bc4ad[_0x018b('0x17')]);for(var _0x4db098=0x0;_0x4db098<_0x59a3c7['length'];_0x4db098+=0x1){_[_0x018b('0x52')](_0x1bc4ad[_0x018b('0x17')][_0x59a3c7[_0x4db098]['name']],_0x59a3c7[_0x4db098]);}return _0x1bc4ad['campaigns'];};};Realtime['prototype']['initFaxAccounts']=function(){var _0x357be0=this;return function(_0x355f23){if(_0x355f23){freeIsNotKey(_0x355f23,_0x357be0[_0x018b('0x25')],'id');for(var _0x48d313=0x0,_0x5f1e42={},_0x5f2dde={};_0x48d313<_0x355f23[_0x018b('0x41')];_0x48d313+=0x1){_0x5f1e42=_0x355f23[_0x48d313];if(_['isUndefined'](_0x357be0['faxAccounts'][_0x5f1e42['id']])){_0x357be0[_0x018b('0x25')][_0x5f1e42['id']]=new FaxAccount(_0x5f1e42);}else{_0x357be0['mergeFromDatabase'](_0x357be0[_0x018b('0x25')][_0x5f1e42['id']],_0x5f1e42);}}}return _0x357be0['faxAccounts'];};};module[_0x018b('0x62')]=Realtime;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3866=['type','dialer','queue','lastdata','context','from-voip-provider','callerid','from-sip','xcally-motion-preview','calleridpreview','destinationchannel','channel','originatecalleridnum','disposition','\x22%s\x22\x20<%s>','calleridname','transfers','linkedid','transfereelinkedid','UserId','split','monitor','monitors','createdAt','exten','connectedlinename','membername','isArray','forEach','startsWith','Local','substring','indexOf','mobile','phone','lastIndexOf','transfererlinkedid','attendedTransfer','exports','lodash','moment','util','../../../config/environment','../ami','../rpc/voiceCallReport','../rpc/memberReport','../rpc/voiceTransferReport','./voiceCallReport','./voiceAgentReport','./voiceDialReport','./userReport','realtime','agents','telephones','sync','xdr','disabled','custom:voiceQueueReport','voiceQueueReport','bind','custom:voiceCallReport','voiceCallReport','custom:voiceAgentReport','custom:voiceDialReport','voiceDialReport','blindTransfer','attendedtransfer','prototype','findAgent','accountcode','name','find','interface','SIP/%s','length','connectedlinenum','assigned','lastAssignedTo','isNil','format','queuecallercomplete','queuecallercompleteAt','YYYY-MM-DD\x20HH:mm:ss','queuecallerexit','create','getAgentByInternal','keys','calleridnum','outbound','destination'];(function(_0x477e24,_0x4070eb){var _0x18aca9=function(_0x3215d0){while(--_0x3215d0){_0x477e24['push'](_0x477e24['shift']());}};_0x18aca9(++_0x4070eb);}(_0x3866,0xdb));var _0x6386=function(_0x4c3953,_0x571b3a){_0x4c3953=_0x4c3953-0x0;var _0x28362e=_0x3866[_0x4c3953];return _0x28362e;};'use strict';var _=require(_0x6386('0x0'));var moment=require(_0x6386('0x1'));var util=require(_0x6386('0x2'));var config=require(_0x6386('0x3'));var ami=require(_0x6386('0x4'));var RpcVoiceAgentReport=require('../rpc/voiceAgentReport');var RpcVoiceCallReport=require(_0x6386('0x5'));var RpcVoiceDialReport=require('../rpc/voiceDialReport');var RpcMemberReport=require(_0x6386('0x6'));var RpcVoiceQueueReport=require('../rpc/voiceQueueReport');var RpcVoiceRecording=require('../rpc/voiceRecording');var RpcVoiceTransferReport=require(_0x6386('0x7'));var VoiceQueueReport=require('./voiceQueueReport');var VoiceCallReport=require(_0x6386('0x8'));var VoiceAgentReport=require(_0x6386('0x9'));var VoiceDialReport=require(_0x6386('0xa'));var UserReport=require(_0x6386('0xb'));function Report(_0x5da58b){this[_0x6386('0xc')]=_0x5da58b;this[_0x6386('0xd')]=_0x5da58b[_0x6386('0xd')];this[_0x6386('0xe')]=_0x5da58b[_0x6386('0xe')];}Report['prototype'][_0x6386('0xf')]=function(_0x28a8df){var _0x3a0f93=new VoiceQueueReport(this[_0x6386('0xc')]);var _0x2176cc=new VoiceAgentReport(this[_0x6386('0xc')]);var _0x392436=new VoiceDialReport(this[_0x6386('0xc')]);var _0x33c286=new VoiceCallReport(this[_0x6386('0xc')]);var _0x50da44=new UserReport(this[_0x6386('0xc')]);if(config[_0x6386('0x10')]&&config['xdr'][_0x6386('0x11')]){ami['on'](_0x6386('0x12'),this[_0x6386('0x13')][_0x6386('0x14')](this));ami['on'](_0x6386('0x15'),this[_0x6386('0x16')][_0x6386('0x14')](this));ami['on'](_0x6386('0x17'),this['voiceAgentReport'][_0x6386('0x14')](this));ami['on'](_0x6386('0x18'),this[_0x6386('0x19')][_0x6386('0x14')](this));ami['on']('blindtransfer',this[_0x6386('0x1a')][_0x6386('0x14')](this));ami['on'](_0x6386('0x1b'),this['attendedTransfer'][_0x6386('0x14')](this));}};Report[_0x6386('0x1c')][_0x6386('0x1d')]=function(_0x3010d4){var _0x956d4a;_0x956d4a=_['find'](this[_0x6386('0xd')],function(_0x44a4b5){return _0x44a4b5[_0x6386('0x1e')]==_0x3010d4||_0x44a4b5[_0x6386('0x1f')]==_0x3010d4;});if(_['isNil'](_0x956d4a)){var _0x5f40fe=_[_0x6386('0x20')](this[_0x6386('0xe')],function(_0x39014f){return _0x39014f[_0x6386('0x1e')]==_0x3010d4||_0x39014f[_0x6386('0x1f')]==_0x3010d4;});if(_0x5f40fe){_0x956d4a=_[_0x6386('0x20')](this[_0x6386('0xd')],function(_0x37c45b){return _0x37c45b[_0x6386('0x21')]==util['format'](_0x6386('0x22'),_0x5f40fe['name']);});}}return _0x956d4a;};Report[_0x6386('0x1c')][_0x6386('0x13')]=function(_0x4f0a65){for(var _0x394488=0x0;_0x394488<_0x4f0a65[_0x6386('0x23')];_0x394488+=0x1){var _0x4eff51=this['findAgent'](_0x4f0a65[_0x394488][_0x6386('0x24')]);if(_0x4eff51){_0x4f0a65[_0x394488][_0x6386('0x1e')]=_0x4eff51['accountcode'];_0x4f0a65[_0x394488][_0x6386('0x25')]=!![];_0x4f0a65[_0x394488][_0x6386('0x26')]=_0x4eff51[_0x6386('0x1f')];_0x4f0a65[_0x394488][_0x6386('0x21')]=_[_0x6386('0x27')](_0x4eff51['interface'])?util[_0x6386('0x28')]('SIP/%s',_0x4eff51['name']):_0x4eff51['interface'];if(_0x4f0a65[_0x394488][_0x6386('0x29')]){_0x4f0a65[_0x394488][_0x6386('0x2a')]=moment()[_0x6386('0x28')](_0x6386('0x2b'));}if(_0x4f0a65[_0x394488][_0x6386('0x2c')]){_0x4f0a65[_0x394488]['queuecallerexitAt']=moment()[_0x6386('0x28')](_0x6386('0x2b'));}RpcMemberReport[_0x6386('0x13')](_0x4f0a65[_0x394488]);}RpcVoiceQueueReport[_0x6386('0x2d')](_0x4f0a65[_0x394488]);}};function extractCalleridNumber(_0xd287d5){var _0x1b9bdf=_0xd287d5['match'](/<(.*?)>/);return _0x1b9bdf?_0x1b9bdf[0x1]:_0xd287d5;}Report[_0x6386('0x1c')][_0x6386('0x2e')]=function(_0x50a6ff){for(var _0x3d9e8b=0x0;_0x3d9e8b<Object['keys'](this['agents'])[_0x6386('0x23')];_0x3d9e8b++){var _0x30edd5=Object[_0x6386('0x2f')](this['agents'])[_0x3d9e8b];var _0x1ec772=this['agents'][_0x30edd5];if(_0x1ec772[_0x6386('0x1e')]===Number(_0x50a6ff))return _0x1ec772;}return null;};Report[_0x6386('0x1c')]['getCallType']=function(_0x5dee85){var _0xc1b98f=_0x5dee85['channel']['split']('-')[0x0];var _0x44edf1=this[_0x6386('0xd')][_0xc1b98f];if(!_0x44edf1)_0x44edf1=this[_0x6386('0x2e')](_0x5dee85[_0x6386('0x30')]);return!_0x44edf1?_0x6386('0x31'):'internal';};Report[_0x6386('0x1c')][_0x6386('0x16')]=function(_0x136f1d){_0x136f1d[_0x6386('0x32')]=_0x136f1d[_0x6386('0x32')]||_0x136f1d['exten'];if(_0x136f1d[_0x6386('0x33')]==_0x6386('0x34')){_0x136f1d['lastapplication']=_0x6386('0x35');_0x136f1d[_0x6386('0x36')]=_0x136f1d['queue'];if(_0x136f1d[_0x6386('0x37')]==_0x6386('0x38')){_0x136f1d[_0x6386('0x1e')]='';_0x136f1d['destination']=extractCalleridNumber(_0x136f1d[_0x6386('0x39')]);}else if(_0x136f1d[_0x6386('0x37')]==_0x6386('0x3a')){if(_0x136f1d['destination']==_0x6386('0x3b')){_0x136f1d['destination']=extractCalleridNumber(_0x136f1d[_0x6386('0x3c')]);_0x136f1d[_0x6386('0x30')]=_0x136f1d['originatecalleridnum'];_0x136f1d[_0x6386('0x3d')]=[_0x136f1d[_0x6386('0x3e')],_0x136f1d['channel']=_0x136f1d[_0x6386('0x3d')]][0x0];_0x136f1d[_0x6386('0x39')]=_0x136f1d[_0x6386('0x3c')];}else{_0x136f1d[_0x6386('0x32')]=_0x136f1d[_0x6386('0x30')];_0x136f1d[_0x6386('0x30')]=_0x136f1d[_0x6386('0x3f')];if(_0x136f1d[_0x6386('0x40')]=='ANSWERED'){_0x136f1d[_0x6386('0x1e')]=_0x136f1d['connectedlinenum'];}else{_0x136f1d['accountcode']='';}}}}else{_0x136f1d[_0x6386('0x39')]=util[_0x6386('0x28')](_0x6386('0x41'),_0x136f1d[_0x6386('0x42')],_0x136f1d[_0x6386('0x30')]);}if(RpcVoiceTransferReport[_0x6386('0x43')][_0x136f1d['linkedid']]){var _0x36f159=RpcVoiceTransferReport[_0x6386('0x43')][_0x136f1d[_0x6386('0x44')]];_0x36f159[_0x6386('0x45')]=_0x136f1d['uniqueid'];RpcVoiceTransferReport[_0x6386('0x1a')](_0x36f159);delete RpcVoiceTransferReport['transfers'][_0x136f1d['linkedid']];}if(_[_0x6386('0x27')](_0x136f1d['type'])){_0x136f1d[_0x6386('0x33')]=this['getCallType'](_0x136f1d);}if(_[_0x6386('0x27')](_0x136f1d[_0x6386('0x46')])){var _0xfcd1a5=_0x136f1d['channel'][_0x6386('0x47')]('-')[0x0];var _0x3fa232=this['agents'][_0xfcd1a5];if(!_0x3fa232)_0x3fa232=this[_0x6386('0x2e')](_0x136f1d[_0x6386('0x1e')]);if(_0x3fa232){_0x136f1d[_0x6386('0x46')]=_0x3fa232['id'];_0x136f1d['membername']=_0x3fa232[_0x6386('0x1f')];}}RpcVoiceCallReport[_0x6386('0x2d')](_0x136f1d);if(_0x136f1d[_0x6386('0x48')]){for(var _0x14ceef=0x0;_0x14ceef<_0x136f1d[_0x6386('0x49')]['length'];_0x14ceef+=0x1){_0x136f1d['monitorFilename']=_0x136f1d[_0x6386('0x49')][_0x14ceef]['filename'];_0x136f1d[_0x6386('0x4a')]=_0x136f1d['monitors'][_0x14ceef][_0x6386('0x4a')];if(_0x136f1d[_0x6386('0x4b')]==_0x6386('0x3b')){_0x136f1d[_0x6386('0x30')]=_0x136f1d[_0x6386('0x24')];_0x136f1d['calleridname']=_0x136f1d[_0x6386('0x4c')];_0x136f1d[_0x6386('0x24')]=_0x136f1d[_0x6386('0x1e')];_0x136f1d[_0x6386('0x4c')]=_0x136f1d[_0x6386('0x4d')];_0x136f1d['exten']=_0x136f1d['originatecalleridnum'];}else if(_0x136f1d[_0x6386('0x4b')]=='xcally-motion-dialer'){_0x136f1d[_0x6386('0x30')]=_0x136f1d['destination'];_0x136f1d['exten']=_0x136f1d[_0x6386('0x3f')];}RpcVoiceRecording[_0x6386('0x2d')](_0x136f1d);}}};Report[_0x6386('0x1c')]['voiceAgentReport']=function(_0x5ec896){if(_[_0x6386('0x4e')](_0x5ec896)){_0x5ec896[_0x6386('0x4f')](function(_0x42e52c){RpcVoiceAgentReport[_0x6386('0x2d')](_0x42e52c);});}else{RpcVoiceAgentReport[_0x6386('0x2d')](_0x5ec896);}};Report[_0x6386('0x1c')][_0x6386('0x19')]=function(_0x392076){RpcVoiceDialReport[_0x6386('0x2d')](_0x392076);var _0x385924;var _0x480e59;var _0x2b94c4=_0x392076[_0x6386('0x3e')];if(_[_0x6386('0x50')](_0x2b94c4,_0x6386('0x51'))){_0x480e59=_0x2b94c4[_0x6386('0x52')](_0x2b94c4['indexOf']('/')+0x1,_0x2b94c4[_0x6386('0x53')]('@'));_0x385924=_[_0x6386('0x20')](this[_0x6386('0xd')],function(_0x465b57){return _0x465b57[_0x6386('0x54')]==_0x480e59||_0x465b57[_0x6386('0x55')]==_0x480e59||_0x465b57[_0x6386('0x1e')]==_0x480e59;});}else{_0x480e59=_0x2b94c4[_0x6386('0x52')](_0x2b94c4['indexOf']('/')+0x1,_0x2b94c4[_0x6386('0x56')]('-'));_0x385924=this[_0x6386('0x1d')](_0x480e59);}if(_0x385924){_0x392076[_0x6386('0x21')]=_['isNil'](_0x385924['interface'])?util[_0x6386('0x28')]('SIP/%s',_0x385924[_0x6386('0x1f')]):_0x385924[_0x6386('0x21')];_0x392076[_0x6386('0x4d')]=_0x385924['name'];_0x392076[_0x6386('0x1e')]=_0x385924[_0x6386('0x1e')];RpcMemberReport['voiceDialReport'](_0x392076);}};Report[_0x6386('0x1c')]['blindTransfer']=function(_0x1cdede){RpcVoiceTransferReport[_0x6386('0x43')][_0x1cdede[_0x6386('0x57')]]=_0x1cdede;};Report['prototype'][_0x6386('0x58')]=function(_0x17ab81){RpcVoiceTransferReport[_0x6386('0x58')](_0x17ab81);};module[_0x6386('0x59')]=Report;
\ No newline at end of file
+var _0x0b96=['indexOf','mobile','phone','lastIndexOf','interface','transfererlinkedid','lodash','moment','util','../../../config/environment','../rpc/voiceCallReport','../rpc/voiceDialReport','../rpc/memberReport','../rpc/voiceRecording','../rpc/voiceTransferReport','./voiceCallReport','./voiceAgentReport','./userReport','realtime','agents','telephones','prototype','xdr','disabled','voiceQueueReport','bind','voiceCallReport','voiceAgentReport','custom:voiceDialReport','voiceDialReport','blindtransfer','attendedTransfer','findAgent','accountcode','isNil','find','name','format','SIP/%s','connectedlinenum','lastAssignedTo','queuecallercompleteAt','queuecallerexit','queuecallerexitAt','YYYY-MM-DD\x20HH:mm:ss','create','getAgentByInternal','keys','length','getCallType','split','internal','lastapplication','lastdata','destination','context','from-sip','xcally-motion-preview','calleridpreview','calleridnum','destinationchannel','channel','callerid','ANSWERED','\x22%s\x22\x20<%s>','calleridname','transfers','linkedid','blindTransfer','type','UserId','membername','monitor','monitors','monitorFilename','filename','createdAt','exten','connectedlinename','originatecalleridnum','xcally-motion-dialer','startsWith','substring'];(function(_0xdfc341,_0x4d0429){var _0x306bcd=function(_0x519343){while(--_0x519343){_0xdfc341['push'](_0xdfc341['shift']());}};_0x306bcd(++_0x4d0429);}(_0x0b96,0xac));var _0x60b9=function(_0x1a4979,_0x524bcf){_0x1a4979=_0x1a4979-0x0;var _0x2f6fec=_0x0b96[_0x1a4979];return _0x2f6fec;};'use strict';var _=require(_0x60b9('0x0'));var moment=require(_0x60b9('0x1'));var util=require(_0x60b9('0x2'));var config=require(_0x60b9('0x3'));var ami=require('../ami');var RpcVoiceAgentReport=require('../rpc/voiceAgentReport');var RpcVoiceCallReport=require(_0x60b9('0x4'));var RpcVoiceDialReport=require(_0x60b9('0x5'));var RpcMemberReport=require(_0x60b9('0x6'));var RpcVoiceQueueReport=require('../rpc/voiceQueueReport');var RpcVoiceRecording=require(_0x60b9('0x7'));var RpcVoiceTransferReport=require(_0x60b9('0x8'));var VoiceQueueReport=require('./voiceQueueReport');var VoiceCallReport=require(_0x60b9('0x9'));var VoiceAgentReport=require(_0x60b9('0xa'));var VoiceDialReport=require('./voiceDialReport');var UserReport=require(_0x60b9('0xb'));function Report(_0x580ed2){this[_0x60b9('0xc')]=_0x580ed2;this[_0x60b9('0xd')]=_0x580ed2[_0x60b9('0xd')];this['telephones']=_0x580ed2[_0x60b9('0xe')];}Report[_0x60b9('0xf')]['sync']=function(_0x11f068){var _0x9d2ed6=new VoiceQueueReport(this[_0x60b9('0xc')]);var _0x31809f=new VoiceAgentReport(this[_0x60b9('0xc')]);var _0x5c77f9=new VoiceDialReport(this['realtime']);var _0x134838=new VoiceCallReport(this[_0x60b9('0xc')]);var _0x41e6a4=new UserReport(this[_0x60b9('0xc')]);if(config[_0x60b9('0x10')]&&config['xdr'][_0x60b9('0x11')]){ami['on']('custom:voiceQueueReport',this[_0x60b9('0x12')][_0x60b9('0x13')](this));ami['on']('custom:voiceCallReport',this[_0x60b9('0x14')]['bind'](this));ami['on']('custom:voiceAgentReport',this[_0x60b9('0x15')][_0x60b9('0x13')](this));ami['on'](_0x60b9('0x16'),this[_0x60b9('0x17')][_0x60b9('0x13')](this));ami['on'](_0x60b9('0x18'),this['blindTransfer'][_0x60b9('0x13')](this));ami['on']('attendedtransfer',this[_0x60b9('0x19')][_0x60b9('0x13')](this));}};Report[_0x60b9('0xf')][_0x60b9('0x1a')]=function(_0x1b2c53){var _0x41f6c8;_0x41f6c8=_['find'](this[_0x60b9('0xd')],function(_0x47b09d){return _0x47b09d[_0x60b9('0x1b')]==_0x1b2c53||_0x47b09d['name']==_0x1b2c53;});if(_[_0x60b9('0x1c')](_0x41f6c8)){var _0x5b0b93=_[_0x60b9('0x1d')](this[_0x60b9('0xe')],function(_0x11f62c){return _0x11f62c[_0x60b9('0x1b')]==_0x1b2c53||_0x11f62c[_0x60b9('0x1e')]==_0x1b2c53;});if(_0x5b0b93){_0x41f6c8=_['find'](this['agents'],function(_0x2b50dc){return _0x2b50dc['interface']==util[_0x60b9('0x1f')](_0x60b9('0x20'),_0x5b0b93[_0x60b9('0x1e')]);});}}return _0x41f6c8;};Report[_0x60b9('0xf')]['voiceQueueReport']=function(_0x43788d){for(var _0xcd7830=0x0;_0xcd7830<_0x43788d['length'];_0xcd7830+=0x1){var _0x5654a5=this['findAgent'](_0x43788d[_0xcd7830][_0x60b9('0x21')]);if(_0x5654a5){_0x43788d[_0xcd7830][_0x60b9('0x1b')]=_0x5654a5[_0x60b9('0x1b')];_0x43788d[_0xcd7830]['assigned']=!![];_0x43788d[_0xcd7830][_0x60b9('0x22')]=_0x5654a5['name'];_0x43788d[_0xcd7830]['interface']=_[_0x60b9('0x1c')](_0x5654a5['interface'])?util[_0x60b9('0x1f')](_0x60b9('0x20'),_0x5654a5['name']):_0x5654a5['interface'];if(_0x43788d[_0xcd7830]['queuecallercomplete']){_0x43788d[_0xcd7830][_0x60b9('0x23')]=moment()[_0x60b9('0x1f')]('YYYY-MM-DD\x20HH:mm:ss');}if(_0x43788d[_0xcd7830][_0x60b9('0x24')]){_0x43788d[_0xcd7830][_0x60b9('0x25')]=moment()['format'](_0x60b9('0x26'));}RpcMemberReport['voiceQueueReport'](_0x43788d[_0xcd7830]);}RpcVoiceQueueReport[_0x60b9('0x27')](_0x43788d[_0xcd7830]);}};function extractCalleridNumber(_0x3d3691){var _0x161bb6=_0x3d3691['match'](/<(.*?)>/);return _0x161bb6?_0x161bb6[0x1]:_0x3d3691;}Report[_0x60b9('0xf')][_0x60b9('0x28')]=function(_0x4f0405){for(var _0x5d4a4e=0x0;_0x5d4a4e<Object[_0x60b9('0x29')](this['agents'])[_0x60b9('0x2a')];_0x5d4a4e++){var _0xca5a2c=Object[_0x60b9('0x29')](this[_0x60b9('0xd')])[_0x5d4a4e];var _0x1245e9=this[_0x60b9('0xd')][_0xca5a2c];if(_0x1245e9[_0x60b9('0x1b')]===Number(_0x4f0405))return _0x1245e9;}return null;};Report['prototype'][_0x60b9('0x2b')]=function(_0x345baf){var _0x3e6988=_0x345baf['channel'][_0x60b9('0x2c')]('-')[0x0];var _0x26469d=this[_0x60b9('0xd')][_0x3e6988];if(!_0x26469d)_0x26469d=this['getAgentByInternal'](_0x345baf['calleridnum']);return!_0x26469d?'outbound':_0x60b9('0x2d');};Report[_0x60b9('0xf')]['voiceCallReport']=function(_0xcfead4){_0xcfead4['destination']=_0xcfead4['destination']||_0xcfead4['exten'];if(_0xcfead4['type']=='dialer'){_0xcfead4[_0x60b9('0x2e')]='queue';_0xcfead4[_0x60b9('0x2f')]=_0xcfead4['queue'];if(_0xcfead4['context']=='from-voip-provider'){_0xcfead4[_0x60b9('0x1b')]='';_0xcfead4[_0x60b9('0x30')]=extractCalleridNumber(_0xcfead4['callerid']);}else if(_0xcfead4[_0x60b9('0x31')]==_0x60b9('0x32')){if(_0xcfead4[_0x60b9('0x30')]==_0x60b9('0x33')){_0xcfead4[_0x60b9('0x30')]=extractCalleridNumber(_0xcfead4[_0x60b9('0x34')]);_0xcfead4[_0x60b9('0x35')]=_0xcfead4['originatecalleridnum'];_0xcfead4[_0x60b9('0x36')]=[_0xcfead4[_0x60b9('0x37')],_0xcfead4[_0x60b9('0x37')]=_0xcfead4[_0x60b9('0x36')]][0x0];_0xcfead4[_0x60b9('0x38')]=_0xcfead4[_0x60b9('0x34')];}else{_0xcfead4[_0x60b9('0x30')]=_0xcfead4[_0x60b9('0x35')];_0xcfead4[_0x60b9('0x35')]=_0xcfead4['originatecalleridnum'];if(_0xcfead4['disposition']==_0x60b9('0x39')){_0xcfead4[_0x60b9('0x1b')]=_0xcfead4[_0x60b9('0x21')];}else{_0xcfead4[_0x60b9('0x1b')]='';}}}}else{_0xcfead4[_0x60b9('0x38')]=util[_0x60b9('0x1f')](_0x60b9('0x3a'),_0xcfead4[_0x60b9('0x3b')],_0xcfead4['calleridnum']);}if(RpcVoiceTransferReport[_0x60b9('0x3c')][_0xcfead4[_0x60b9('0x3d')]]){var _0x204872=RpcVoiceTransferReport[_0x60b9('0x3c')][_0xcfead4[_0x60b9('0x3d')]];_0x204872['transfereelinkedid']=_0xcfead4['uniqueid'];RpcVoiceTransferReport[_0x60b9('0x3e')](_0x204872);delete RpcVoiceTransferReport['transfers'][_0xcfead4[_0x60b9('0x3d')]];}if(_['isNil'](_0xcfead4[_0x60b9('0x3f')])){_0xcfead4[_0x60b9('0x3f')]=this[_0x60b9('0x2b')](_0xcfead4);}if(_['isNil'](_0xcfead4[_0x60b9('0x40')])){var _0x460a7d=_0xcfead4[_0x60b9('0x37')][_0x60b9('0x2c')]('-')[0x0];var _0x4efc9b=this['agents'][_0x460a7d];if(!_0x4efc9b)_0x4efc9b=this[_0x60b9('0x28')](_0xcfead4[_0x60b9('0x1b')]);if(_0x4efc9b){_0xcfead4[_0x60b9('0x40')]=_0x4efc9b['id'];_0xcfead4[_0x60b9('0x41')]=_0x4efc9b['name'];}}RpcVoiceCallReport[_0x60b9('0x27')](_0xcfead4);if(_0xcfead4[_0x60b9('0x42')]){for(var _0xdeb97a=0x0;_0xdeb97a<_0xcfead4[_0x60b9('0x43')][_0x60b9('0x2a')];_0xdeb97a+=0x1){_0xcfead4[_0x60b9('0x44')]=_0xcfead4[_0x60b9('0x43')][_0xdeb97a][_0x60b9('0x45')];_0xcfead4[_0x60b9('0x46')]=_0xcfead4[_0x60b9('0x43')][_0xdeb97a][_0x60b9('0x46')];if(_0xcfead4[_0x60b9('0x47')]==_0x60b9('0x33')){_0xcfead4[_0x60b9('0x35')]=_0xcfead4[_0x60b9('0x21')];_0xcfead4[_0x60b9('0x3b')]=_0xcfead4['connectedlinename'];_0xcfead4[_0x60b9('0x21')]=_0xcfead4['accountcode'];_0xcfead4[_0x60b9('0x48')]=_0xcfead4[_0x60b9('0x41')];_0xcfead4[_0x60b9('0x47')]=_0xcfead4[_0x60b9('0x49')];}else if(_0xcfead4['exten']==_0x60b9('0x4a')){_0xcfead4[_0x60b9('0x35')]=_0xcfead4[_0x60b9('0x30')];_0xcfead4[_0x60b9('0x47')]=_0xcfead4['originatecalleridnum'];}RpcVoiceRecording[_0x60b9('0x27')](_0xcfead4);}}};Report[_0x60b9('0xf')]['voiceAgentReport']=function(_0x51d78b){if(_['isArray'](_0x51d78b)){_0x51d78b['forEach'](function(_0xba3534){RpcVoiceAgentReport[_0x60b9('0x27')](_0xba3534);});}else{RpcVoiceAgentReport[_0x60b9('0x27')](_0x51d78b);}};Report[_0x60b9('0xf')]['voiceDialReport']=function(_0x4ff745){RpcVoiceDialReport[_0x60b9('0x27')](_0x4ff745);var _0x424fdf;var _0x32faa6;var _0x266237=_0x4ff745[_0x60b9('0x37')];if(_[_0x60b9('0x4b')](_0x266237,'Local')){_0x32faa6=_0x266237[_0x60b9('0x4c')](_0x266237[_0x60b9('0x4d')]('/')+0x1,_0x266237[_0x60b9('0x4d')]('@'));_0x424fdf=_['find'](this[_0x60b9('0xd')],function(_0x31abde){return _0x31abde[_0x60b9('0x4e')]==_0x32faa6||_0x31abde[_0x60b9('0x4f')]==_0x32faa6||_0x31abde[_0x60b9('0x1b')]==_0x32faa6;});}else{_0x32faa6=_0x266237[_0x60b9('0x4c')](_0x266237[_0x60b9('0x4d')]('/')+0x1,_0x266237[_0x60b9('0x50')]('-'));_0x424fdf=this[_0x60b9('0x1a')](_0x32faa6);}if(_0x424fdf){_0x4ff745[_0x60b9('0x51')]=_['isNil'](_0x424fdf['interface'])?util[_0x60b9('0x1f')](_0x60b9('0x20'),_0x424fdf['name']):_0x424fdf[_0x60b9('0x51')];_0x4ff745[_0x60b9('0x41')]=_0x424fdf[_0x60b9('0x1e')];_0x4ff745['accountcode']=_0x424fdf[_0x60b9('0x1b')];RpcMemberReport[_0x60b9('0x17')](_0x4ff745);}};Report['prototype'][_0x60b9('0x3e')]=function(_0x37904a){RpcVoiceTransferReport[_0x60b9('0x3c')][_0x37904a[_0x60b9('0x52')]]=_0x37904a;};Report[_0x60b9('0xf')][_0x60b9('0x19')]=function(_0x187036){RpcVoiceTransferReport[_0x60b9('0x19')](_0x187036);};module['exports']=Report;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x28a1=['[userReport][devicestatechange]','[userReport][peerstatus]\x20peer:%s\x20address:%s\x20status:%s','peer','address','status','[userReport][peerstatus]\x20sending\x20telephone:save\x20event:','[userReport][peerstatus]\x20sending\x20trunk:save\x20event:','[userReport][peerstatus]','exports','lodash','moment','ioredis','bluebird','../../../config/environment','../../../config/logger','ami','../ami','redis','defaults','socket.io-emitter','trunks','agents','telephones','registryentry','syncRegistry','bind','devicestatechange','syncDeviceState','peerstatus','syncPeerStatus','then','actionSipShowRegistry','catch','error','[userReport][sipshowregistry]','inspect','resolve','actionDeviceStateList','[userReport][devicestatelist]','actionSipPeerStatus','prototype','syncRealtimeShow','isUndefined','emit','isNotNull','info','[userReport][registry]\x20registry:%s\x20state:%s','state','debug','[userReport][registry]','find','username','stateRegistry','merge','omit','event','[userReport][registry]\x20sending\x20trunk:save\x20event:','format','trunk:%s','trunk:save','[userReport][devicestatechange]\x20device:%s\x20state:%s','device','local','inuse','toLowerCase','stateTime','updateStatusRealtime','[userReport][devicestatechange]\x20sending\x20telephone:save\x20event:','telephone:%s','name','telephone:save','toNumber','[userReport][devicestatechange]\x20sending\x20trunk:save\x20event:','startsWith','Local','indexOf','mobile','phone','accountcode'];(function(_0x3c2778,_0x112997){var _0x18c58a=function(_0x282d7d){while(--_0x282d7d){_0x3c2778['push'](_0x3c2778['shift']());}};_0x18c58a(++_0x112997);}(_0x28a1,0x145));var _0x128a=function(_0x29c261,_0x3af39a){_0x29c261=_0x29c261-0x0;var _0x1a9335=_0x28a1[_0x29c261];return _0x1a9335;};'use strict';var _=require(_0x128a('0x0'));var moment=require(_0x128a('0x1'));var util=require('util');var Redis=require(_0x128a('0x2'));var BPromise=require(_0x128a('0x3'));var config=require(_0x128a('0x4'));var logger=require(_0x128a('0x5'))(_0x128a('0x6'));var ami=require(_0x128a('0x7'));config[_0x128a('0x8')]=_[_0x128a('0x9')](config[_0x128a('0x8')],{'host':'localhost','port':0x18eb});var io=require(_0x128a('0xa'))(new Redis(config[_0x128a('0x8')]));function UserReport(_0xf81516){this[_0x128a('0xb')]=_0xf81516[_0x128a('0xb')];this[_0x128a('0xc')]=_0xf81516[_0x128a('0xc')];this['telephones']=_0xf81516[_0x128a('0xd')];ami['on'](_0x128a('0xe'),this[_0x128a('0xf')]['bind'](this));ami['on']('registry',this[_0x128a('0xf')][_0x128a('0x10')](this));ami['on'](_0x128a('0x11'),this[_0x128a('0x12')][_0x128a('0x10')](this));ami['on'](_0x128a('0x13'),this[_0x128a('0x14')][_0x128a('0x10')](this));return this['syncRealtimeShow']();}function showSipRegistrations(){Promise['resolve']()[_0x128a('0x15')](ami[_0x128a('0x16')]())[_0x128a('0x17')](function(_0x311ba6){logger[_0x128a('0x18')](_0x128a('0x19'),util[_0x128a('0x1a')](_0x311ba6,{'showHidden':![],'depth':null}));});}function listDeviceStates(){Promise[_0x128a('0x1b')]()[_0x128a('0x15')](ami[_0x128a('0x1c')]())[_0x128a('0x17')](function(_0x8326fe){logger[_0x128a('0x18')](_0x128a('0x1d'),util[_0x128a('0x1a')](_0x8326fe,{'showHidden':![],'depth':null}));});}function showPeersStatus(){Promise['resolve']()[_0x128a('0x15')](ami[_0x128a('0x1e')]())['catch'](function(_0x52714d){logger[_0x128a('0x18')]('[userReport][sippeerstatus]',util[_0x128a('0x1a')](_0x52714d,{'showHidden':![],'depth':null}));});}UserReport[_0x128a('0x1f')][_0x128a('0x20')]=function(){setInterval(function(){BPromise['resolve']()[_0x128a('0x15')](showSipRegistrations())['then'](listDeviceStates())[_0x128a('0x15')](showPeersStatus());},0x32c8);};UserReport[_0x128a('0x1f')]['isNotNull']=function(_0x2128ca){return _0x2128ca!==null&&!_[_0x128a('0x21')](_0x2128ca);};UserReport[_0x128a('0x1f')][_0x128a('0x22')]=function(_0x35b62d,_0x3bc83d,_0x2c2cbb){io['to'](_0x35b62d)['emit'](_0x3bc83d,_0x2c2cbb);};UserReport[_0x128a('0x1f')][_0x128a('0xf')]=function(_0x53fc24){try{if(this[_0x128a('0x23')](_0x53fc24)){logger[_0x128a('0x24')](_0x128a('0x25'),_0x53fc24['username'],_0x53fc24[_0x128a('0x26')]);logger[_0x128a('0x27')](_0x128a('0x28'),util[_0x128a('0x1a')](_0x53fc24,{'showHidden':![],'depth':null}));var _0xe82436=_[_0x128a('0x29')](this['trunks'],{'defaultuser':_0x53fc24[_0x128a('0x2a')]});if(_0xe82436){_0x53fc24[_0x128a('0x2b')]=_0x53fc24[_0x128a('0x26')];_[_0x128a('0x2c')](_0xe82436,_[_0x128a('0x2d')](_0x53fc24,[_0x128a('0x2e'),'actionid','username','state']));logger[_0x128a('0x27')](_0x128a('0x2f'),util['inspect'](_0xe82436,{'showHidden':![],'depth':null}));this[_0x128a('0x22')](util[_0x128a('0x30')](_0x128a('0x31'),_0xe82436['name']),_0x128a('0x32'),_0xe82436);}}}catch(_0x4fb6f5){logger[_0x128a('0x18')](_0x128a('0x28'),util[_0x128a('0x1a')](_0x4fb6f5,{'showHidden':![],'depth':null}));}};UserReport[_0x128a('0x1f')][_0x128a('0x12')]=function(_0x2706ee){try{if(this[_0x128a('0x23')](_0x2706ee)){logger['info'](_0x128a('0x33'),_0x2706ee[_0x128a('0x34')],_0x2706ee[_0x128a('0x26')]);logger[_0x128a('0x27')]('[userReport][devicestatechange]',util['inspect'](_0x2706ee,{'showHidden':![],'depth':null}));if(this['agents'][_0x2706ee[_0x128a('0x34')]]){if(!this['agents'][_0x2706ee[_0x128a('0x34')]][_0x128a('0x35')]||_0x2706ee[_0x128a('0x26')]['toLowerCase']()==_0x128a('0x36')){this['agents'][_0x2706ee[_0x128a('0x34')]][_0x128a('0x35')]=![];if(this[_0x128a('0xc')][_0x2706ee[_0x128a('0x34')]][_0x128a('0x26')]!==_0x2706ee[_0x128a('0x26')][_0x128a('0x37')]()){this[_0x128a('0xc')][_0x2706ee['device']][_0x128a('0x38')]=_['toNumber'](moment()[_0x128a('0x30')]('x'));}this[_0x128a('0xc')][_0x2706ee['device']][_0x128a('0x26')]=_0x2706ee[_0x128a('0x26')]['toLowerCase']();this[_0x128a('0xc')][_0x2706ee['device']][_0x128a('0x39')](_0x2706ee);}}else if(this[_0x128a('0xd')][_0x2706ee[_0x128a('0x34')]]){if(this[_0x128a('0xd')][_0x2706ee[_0x128a('0x34')]][_0x128a('0x26')]!==_0x2706ee['state'][_0x128a('0x37')]()){this['telephones'][_0x2706ee[_0x128a('0x34')]][_0x128a('0x38')]=_['toNumber'](moment()[_0x128a('0x30')]('x'));}this[_0x128a('0xd')][_0x2706ee['device']][_0x128a('0x26')]=_0x2706ee['state']['toLowerCase']();logger[_0x128a('0x27')](_0x128a('0x3a'),util[_0x128a('0x1a')](this[_0x128a('0xd')][_0x2706ee['device']],{'showHidden':![],'depth':null}));this[_0x128a('0x22')](util['format'](_0x128a('0x3b'),this['telephones'][_0x2706ee['device']][_0x128a('0x3c')]),_0x128a('0x3d'),this[_0x128a('0xd')][_0x2706ee[_0x128a('0x34')]]);}else if(this[_0x128a('0xb')][_0x2706ee[_0x128a('0x34')]]){if(this[_0x128a('0xb')][_0x2706ee[_0x128a('0x34')]][_0x128a('0x26')]!==_0x2706ee['state'][_0x128a('0x37')]()){this[_0x128a('0xb')][_0x2706ee['device']][_0x128a('0x38')]=_[_0x128a('0x3e')](moment()['format']('x'));}this[_0x128a('0xb')][_0x2706ee[_0x128a('0x34')]][_0x128a('0x26')]=_0x2706ee[_0x128a('0x26')]['toLowerCase']();logger[_0x128a('0x27')](_0x128a('0x3f'),util[_0x128a('0x1a')](this['trunks'][_0x2706ee[_0x128a('0x34')]],{'showHidden':![],'depth':null}));this[_0x128a('0x22')](util[_0x128a('0x30')]('trunk:%s',this[_0x128a('0xb')][_0x2706ee[_0x128a('0x34')]]['name']),'trunk:save',this['trunks'][_0x2706ee['device']]);}else if(_[_0x128a('0x40')](_0x2706ee[_0x128a('0x34')],_0x128a('0x41'))){var _0x50c65e=_0x2706ee[_0x128a('0x34')];var _0x417d08=_0x50c65e['substring'](_0x50c65e[_0x128a('0x42')]('/')+0x1,_0x50c65e[_0x128a('0x42')]('@'));var _0x40e020=_[_0x128a('0x29')](this[_0x128a('0xc')],function(_0x18a72){return _0x18a72[_0x128a('0x43')]==_0x417d08||_0x18a72[_0x128a('0x44')]==_0x417d08||_0x18a72[_0x128a('0x45')]==_0x417d08;});if(_0x40e020){if(_0x40e020[_0x128a('0x26')]!==_0x2706ee[_0x128a('0x26')][_0x128a('0x37')]()){_0x40e020[_0x128a('0x38')]=_[_0x128a('0x3e')](moment()[_0x128a('0x30')]('x'));}_0x40e020['state']=_0x2706ee[_0x128a('0x26')]['toLowerCase']();_0x40e020['local']=!![];_0x40e020[_0x128a('0x39')](_0x2706ee);}}}}catch(_0x2bd46d){logger[_0x128a('0x18')](_0x128a('0x46'),util['inspect'](_0x2bd46d,{'showHidden':![],'depth':null}));}};UserReport[_0x128a('0x1f')][_0x128a('0x14')]=function(_0x1634d3){try{if(this[_0x128a('0x23')](_0x1634d3)&&this[_0x128a('0x23')](_0x1634d3['peerstatus'])){logger[_0x128a('0x24')](_0x128a('0x47'),_0x1634d3[_0x128a('0x48')],_0x1634d3[_0x128a('0x49')],_0x1634d3[_0x128a('0x13')]);logger[_0x128a('0x27')]('[userReport][peerstatus]',util[_0x128a('0x1a')](_0x1634d3,{'showHidden':![],'depth':null}));if(this[_0x128a('0xc')][_0x1634d3[_0x128a('0x48')]]){if(!this[_0x128a('0xc')][_0x1634d3[_0x128a('0x48')]][_0x128a('0x35')]||_0x1634d3[_0x128a('0x13')][_0x128a('0x37')]()=='registered'){this[_0x128a('0xc')][_0x1634d3[_0x128a('0x48')]][_0x128a('0x35')]=![];this[_0x128a('0xc')][_0x1634d3[_0x128a('0x48')]][_0x128a('0x4a')]=_0x1634d3[_0x128a('0x13')]['toLowerCase']();this[_0x128a('0xc')][_0x1634d3[_0x128a('0x48')]][_0x128a('0x49')]=_0x1634d3[_0x128a('0x49')];this[_0x128a('0xc')][_0x1634d3['peer']]['updateStatusRealtime'](_0x1634d3);}}else if(this[_0x128a('0xd')][_0x1634d3[_0x128a('0x48')]]){this[_0x128a('0xd')][_0x1634d3[_0x128a('0x48')]][_0x128a('0x4a')]=_0x1634d3[_0x128a('0x13')]['toLowerCase']();this[_0x128a('0xd')][_0x1634d3['peer']]['address']=_0x1634d3[_0x128a('0x49')];logger[_0x128a('0x27')](_0x128a('0x4b'),util[_0x128a('0x1a')](this[_0x128a('0xd')][_0x1634d3[_0x128a('0x48')]],{'showHidden':![],'depth':null}));this[_0x128a('0x22')](util[_0x128a('0x30')](_0x128a('0x3b'),this['telephones'][_0x1634d3['peer']][_0x128a('0x3c')]),_0x128a('0x3d'),this[_0x128a('0xd')][_0x1634d3[_0x128a('0x48')]]);}else if(this[_0x128a('0xb')][_0x1634d3[_0x128a('0x48')]]){this['trunks'][_0x1634d3[_0x128a('0x48')]][_0x128a('0x4a')]=_0x1634d3[_0x128a('0x13')][_0x128a('0x37')]();this[_0x128a('0xb')][_0x1634d3['peer']][_0x128a('0x49')]=_0x1634d3[_0x128a('0x49')];logger[_0x128a('0x27')](_0x128a('0x4c'),util[_0x128a('0x1a')](this[_0x128a('0xb')][_0x1634d3[_0x128a('0x48')]],{'showHidden':![],'depth':null}));this[_0x128a('0x22')](util[_0x128a('0x30')](_0x128a('0x31'),this[_0x128a('0xb')][_0x1634d3['peer']]['name']),'trunk:save',this[_0x128a('0xb')][_0x1634d3[_0x128a('0x48')]]);}}}catch(_0x57867a){logger['error'](_0x128a('0x4d'),util[_0x128a('0x1a')](_0x57867a,{'showHidden':![],'depth':null}));}};module[_0x128a('0x4e')]=UserReport;
\ No newline at end of file
+var _0x99a4=['name','trunk:save','[userReport][devicestatechange]','agents','device','local','toLowerCase','stateTime','toNumber','[userReport][devicestatechange]\x20sending\x20telephone:save\x20event:','telephone:%s','[userReport][devicestatechange]\x20sending\x20trunk:save\x20event:','trunk:%s','startsWith','Local','substring','indexOf','mobile','accountcode','peer','[userReport][peerstatus]','registered','status','address','updateStatusRealtime','[userReport][peerstatus]\x20sending\x20telephone:save\x20event:','telephone:save','[userReport][peerstatus]\x20sending\x20trunk:save\x20event:','lodash','moment','util','ioredis','bluebird','../../../config/environment','../../../config/logger','ami','defaults','redis','localhost','socket.io-emitter','trunks','telephones','syncRegistry','bind','registry','devicestatechange','syncDeviceState','peerstatus','syncRealtimeShow','resolve','then','catch','error','[userReport][sipshowregistry]','inspect','actionDeviceStateList','actionSipPeerStatus','[userReport][sippeerstatus]','prototype','isNotNull','emit','info','[userReport][registry]\x20registry:%s\x20state:%s','username','state','debug','[userReport][registry]','find','stateRegistry','merge','omit','event','actionid','format'];(function(_0x4c4f9e,_0x358be3){var _0xbd0a45=function(_0x1461ef){while(--_0x1461ef){_0x4c4f9e['push'](_0x4c4f9e['shift']());}};_0xbd0a45(++_0x358be3);}(_0x99a4,0xfa));var _0x499a=function(_0x21aec3,_0x5c97e9){_0x21aec3=_0x21aec3-0x0;var _0x288bbc=_0x99a4[_0x21aec3];return _0x288bbc;};'use strict';var _=require(_0x499a('0x0'));var moment=require(_0x499a('0x1'));var util=require(_0x499a('0x2'));var Redis=require(_0x499a('0x3'));var BPromise=require(_0x499a('0x4'));var config=require(_0x499a('0x5'));var logger=require(_0x499a('0x6'))(_0x499a('0x7'));var ami=require('../ami');config['redis']=_[_0x499a('0x8')](config[_0x499a('0x9')],{'host':_0x499a('0xa'),'port':0x18eb});var io=require(_0x499a('0xb'))(new Redis(config['redis']));function UserReport(_0x45d2c1){this['trunks']=_0x45d2c1[_0x499a('0xc')];this['agents']=_0x45d2c1['agents'];this['telephones']=_0x45d2c1[_0x499a('0xd')];ami['on']('registryentry',this[_0x499a('0xe')][_0x499a('0xf')](this));ami['on'](_0x499a('0x10'),this[_0x499a('0xe')][_0x499a('0xf')](this));ami['on'](_0x499a('0x11'),this[_0x499a('0x12')][_0x499a('0xf')](this));ami['on'](_0x499a('0x13'),this['syncPeerStatus']['bind'](this));return this[_0x499a('0x14')]();}function showSipRegistrations(){Promise[_0x499a('0x15')]()[_0x499a('0x16')](ami['actionSipShowRegistry']())[_0x499a('0x17')](function(_0x49a0e2){logger[_0x499a('0x18')](_0x499a('0x19'),util[_0x499a('0x1a')](_0x49a0e2,{'showHidden':![],'depth':null}));});}function listDeviceStates(){Promise['resolve']()[_0x499a('0x16')](ami[_0x499a('0x1b')]())['catch'](function(_0x3f140b){logger[_0x499a('0x18')]('[userReport][devicestatelist]',util[_0x499a('0x1a')](_0x3f140b,{'showHidden':![],'depth':null}));});}function showPeersStatus(){Promise[_0x499a('0x15')]()[_0x499a('0x16')](ami[_0x499a('0x1c')]())[_0x499a('0x17')](function(_0x5d39f2){logger[_0x499a('0x18')](_0x499a('0x1d'),util[_0x499a('0x1a')](_0x5d39f2,{'showHidden':![],'depth':null}));});}UserReport[_0x499a('0x1e')]['syncRealtimeShow']=function(){setInterval(function(){BPromise[_0x499a('0x15')]()[_0x499a('0x16')](showSipRegistrations())[_0x499a('0x16')](listDeviceStates())[_0x499a('0x16')](showPeersStatus());},0x32c8);};UserReport['prototype'][_0x499a('0x1f')]=function(_0x58c13b){return _0x58c13b!==null&&!_['isUndefined'](_0x58c13b);};UserReport['prototype']['emit']=function(_0x41dd4c,_0x43df71,_0x1c41ea){io['to'](_0x41dd4c)[_0x499a('0x20')](_0x43df71,_0x1c41ea);};UserReport[_0x499a('0x1e')][_0x499a('0xe')]=function(_0x2388d2){try{if(this[_0x499a('0x1f')](_0x2388d2)){logger[_0x499a('0x21')](_0x499a('0x22'),_0x2388d2[_0x499a('0x23')],_0x2388d2[_0x499a('0x24')]);logger[_0x499a('0x25')](_0x499a('0x26'),util[_0x499a('0x1a')](_0x2388d2,{'showHidden':![],'depth':null}));var _0x39e3f9=_[_0x499a('0x27')](this[_0x499a('0xc')],{'defaultuser':_0x2388d2['username']});if(_0x39e3f9){_0x2388d2[_0x499a('0x28')]=_0x2388d2['state'];_[_0x499a('0x29')](_0x39e3f9,_[_0x499a('0x2a')](_0x2388d2,[_0x499a('0x2b'),_0x499a('0x2c'),_0x499a('0x23'),_0x499a('0x24')]));logger['debug']('[userReport][registry]\x20sending\x20trunk:save\x20event:',util[_0x499a('0x1a')](_0x39e3f9,{'showHidden':![],'depth':null}));this[_0x499a('0x20')](util[_0x499a('0x2d')]('trunk:%s',_0x39e3f9[_0x499a('0x2e')]),_0x499a('0x2f'),_0x39e3f9);}}}catch(_0x53daa1){logger[_0x499a('0x18')](_0x499a('0x26'),util[_0x499a('0x1a')](_0x53daa1,{'showHidden':![],'depth':null}));}};UserReport['prototype'][_0x499a('0x12')]=function(_0x508ffa){try{if(this[_0x499a('0x1f')](_0x508ffa)){logger[_0x499a('0x21')]('[userReport][devicestatechange]\x20device:%s\x20state:%s',_0x508ffa['device'],_0x508ffa[_0x499a('0x24')]);logger[_0x499a('0x25')](_0x499a('0x30'),util['inspect'](_0x508ffa,{'showHidden':![],'depth':null}));if(this[_0x499a('0x31')][_0x508ffa[_0x499a('0x32')]]){if(!this['agents'][_0x508ffa[_0x499a('0x32')]][_0x499a('0x33')]||_0x508ffa[_0x499a('0x24')][_0x499a('0x34')]()=='inuse'){this['agents'][_0x508ffa[_0x499a('0x32')]][_0x499a('0x33')]=![];if(this[_0x499a('0x31')][_0x508ffa[_0x499a('0x32')]][_0x499a('0x24')]!==_0x508ffa[_0x499a('0x24')][_0x499a('0x34')]()){this[_0x499a('0x31')][_0x508ffa[_0x499a('0x32')]][_0x499a('0x35')]=_[_0x499a('0x36')](moment()[_0x499a('0x2d')]('x'));}this[_0x499a('0x31')][_0x508ffa[_0x499a('0x32')]][_0x499a('0x24')]=_0x508ffa[_0x499a('0x24')][_0x499a('0x34')]();this[_0x499a('0x31')][_0x508ffa[_0x499a('0x32')]]['updateStatusRealtime'](_0x508ffa);}}else if(this[_0x499a('0xd')][_0x508ffa[_0x499a('0x32')]]){if(this['telephones'][_0x508ffa[_0x499a('0x32')]][_0x499a('0x24')]!==_0x508ffa[_0x499a('0x24')]['toLowerCase']()){this[_0x499a('0xd')][_0x508ffa['device']][_0x499a('0x35')]=_[_0x499a('0x36')](moment()[_0x499a('0x2d')]('x'));}this['telephones'][_0x508ffa['device']]['state']=_0x508ffa['state']['toLowerCase']();logger['debug'](_0x499a('0x37'),util[_0x499a('0x1a')](this[_0x499a('0xd')][_0x508ffa['device']],{'showHidden':![],'depth':null}));this[_0x499a('0x20')](util[_0x499a('0x2d')](_0x499a('0x38'),this[_0x499a('0xd')][_0x508ffa[_0x499a('0x32')]]['name']),'telephone:save',this[_0x499a('0xd')][_0x508ffa[_0x499a('0x32')]]);}else if(this[_0x499a('0xc')][_0x508ffa[_0x499a('0x32')]]){if(this[_0x499a('0xc')][_0x508ffa['device']][_0x499a('0x24')]!==_0x508ffa[_0x499a('0x24')][_0x499a('0x34')]()){this[_0x499a('0xc')][_0x508ffa[_0x499a('0x32')]]['stateTime']=_[_0x499a('0x36')](moment()[_0x499a('0x2d')]('x'));}this[_0x499a('0xc')][_0x508ffa[_0x499a('0x32')]][_0x499a('0x24')]=_0x508ffa[_0x499a('0x24')][_0x499a('0x34')]();logger[_0x499a('0x25')](_0x499a('0x39'),util[_0x499a('0x1a')](this[_0x499a('0xc')][_0x508ffa[_0x499a('0x32')]],{'showHidden':![],'depth':null}));this[_0x499a('0x20')](util[_0x499a('0x2d')](_0x499a('0x3a'),this['trunks'][_0x508ffa[_0x499a('0x32')]][_0x499a('0x2e')]),_0x499a('0x2f'),this[_0x499a('0xc')][_0x508ffa[_0x499a('0x32')]]);}else if(_[_0x499a('0x3b')](_0x508ffa[_0x499a('0x32')],_0x499a('0x3c'))){var _0x4d7607=_0x508ffa[_0x499a('0x32')];var _0x58d5bf=_0x4d7607[_0x499a('0x3d')](_0x4d7607[_0x499a('0x3e')]('/')+0x1,_0x4d7607['indexOf']('@'));var _0x2f6b8a=_[_0x499a('0x27')](this[_0x499a('0x31')],function(_0x391478){return _0x391478[_0x499a('0x3f')]==_0x58d5bf||_0x391478['phone']==_0x58d5bf||_0x391478[_0x499a('0x40')]==_0x58d5bf;});if(_0x2f6b8a){if(_0x2f6b8a[_0x499a('0x24')]!==_0x508ffa[_0x499a('0x24')][_0x499a('0x34')]()){_0x2f6b8a[_0x499a('0x35')]=_[_0x499a('0x36')](moment()[_0x499a('0x2d')]('x'));}_0x2f6b8a[_0x499a('0x24')]=_0x508ffa[_0x499a('0x24')]['toLowerCase']();_0x2f6b8a['local']=!![];_0x2f6b8a['updateStatusRealtime'](_0x508ffa);}}}}catch(_0x4791a4){logger[_0x499a('0x18')]('[userReport][devicestatechange]',util[_0x499a('0x1a')](_0x4791a4,{'showHidden':![],'depth':null}));}};UserReport['prototype']['syncPeerStatus']=function(_0xa58c76){try{if(this[_0x499a('0x1f')](_0xa58c76)&&this[_0x499a('0x1f')](_0xa58c76['peerstatus'])){logger[_0x499a('0x21')]('[userReport][peerstatus]\x20peer:%s\x20address:%s\x20status:%s',_0xa58c76[_0x499a('0x41')],_0xa58c76['address'],_0xa58c76[_0x499a('0x13')]);logger[_0x499a('0x25')](_0x499a('0x42'),util[_0x499a('0x1a')](_0xa58c76,{'showHidden':![],'depth':null}));if(this[_0x499a('0x31')][_0xa58c76[_0x499a('0x41')]]){if(!this['agents'][_0xa58c76['peer']][_0x499a('0x33')]||_0xa58c76[_0x499a('0x13')][_0x499a('0x34')]()==_0x499a('0x43')){this[_0x499a('0x31')][_0xa58c76[_0x499a('0x41')]]['local']=![];this['agents'][_0xa58c76['peer']][_0x499a('0x44')]=_0xa58c76[_0x499a('0x13')][_0x499a('0x34')]();this[_0x499a('0x31')][_0xa58c76['peer']]['address']=_0xa58c76[_0x499a('0x45')];this[_0x499a('0x31')][_0xa58c76[_0x499a('0x41')]][_0x499a('0x46')](_0xa58c76);}}else if(this[_0x499a('0xd')][_0xa58c76[_0x499a('0x41')]]){this[_0x499a('0xd')][_0xa58c76[_0x499a('0x41')]][_0x499a('0x44')]=_0xa58c76[_0x499a('0x13')]['toLowerCase']();this['telephones'][_0xa58c76[_0x499a('0x41')]][_0x499a('0x45')]=_0xa58c76[_0x499a('0x45')];logger[_0x499a('0x25')](_0x499a('0x47'),util[_0x499a('0x1a')](this[_0x499a('0xd')][_0xa58c76[_0x499a('0x41')]],{'showHidden':![],'depth':null}));this[_0x499a('0x20')](util['format'](_0x499a('0x38'),this['telephones'][_0xa58c76['peer']][_0x499a('0x2e')]),_0x499a('0x48'),this[_0x499a('0xd')][_0xa58c76[_0x499a('0x41')]]);}else if(this[_0x499a('0xc')][_0xa58c76[_0x499a('0x41')]]){this['trunks'][_0xa58c76['peer']][_0x499a('0x44')]=_0xa58c76[_0x499a('0x13')][_0x499a('0x34')]();this[_0x499a('0xc')][_0xa58c76[_0x499a('0x41')]][_0x499a('0x45')]=_0xa58c76[_0x499a('0x45')];logger[_0x499a('0x25')](_0x499a('0x49'),util[_0x499a('0x1a')](this[_0x499a('0xc')][_0xa58c76[_0x499a('0x41')]],{'showHidden':![],'depth':null}));this[_0x499a('0x20')](util['format']('trunk:%s',this[_0x499a('0xc')][_0xa58c76[_0x499a('0x41')]][_0x499a('0x2e')]),_0x499a('0x2f'),this[_0x499a('0xc')][_0xa58c76[_0x499a('0x41')]]);}}}catch(_0x32b161){logger['error'](_0x499a('0x42'),util['inspect'](_0x32b161,{'showHidden':![],'depth':null}));}};module['exports']=UserReport;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['musiconholdstop','attendedtransfer','syncBlindTransfer','prototype','emit','isNotNull','isUndefined','info','membername','destuniqueid','debug','[%s][voiceAgentReport][agentcalled]\x20event:','inspect','uniqueid','YYYY-MM-DD\x20HH:mm:ss','queue','mandatoryDisposition','type','inbound','voice','omit','event','privilege','[%s][voiceAgentReport][agentcalled]\x20sending\x20agentcalled\x20event:','custom:agentcalled','interface','calleridnum','extravar','format','user:%s','error','[%s][voiceAgentReport][agentcalled]','syncAgentConnect','[%s][voiceAgentReport][agentconnect]\x20event:','[%s][voiceAgentReport][agentconnect]\x20agent:%s\x20destuniqueid:%s\x20lastevent:connect','agentconnectAt','connectedlinename','connectedlinenum','destchannelstate','destchannelstatedesc','holdtime','connect','voiceChannels','routealias','merge','pick','destconnectedlinenum','[%s][voiceAgentReport][agentconnect]\x20sending\x20agentconnect\x20event:','custom:agentconnect','user:agentconnect','agentringnoanswer','agentringnoanswerAt','answered_elsewhere','reason','[%s][voiceAgentReport][agentconnect]\x20sending\x20agentansweredelsewhere\x20event:','custom:agentansweredelsewhere','syncAgentRingNoAnswer','[%s][voiceAgentReport][agentringnoanswer]\x20agent:%s\x20destuniqueid:%s\x20lastevent:rejected','lastevent','rejected','custom:agentringnoanswer','[%s][voiceAgentReport][agentringnoanswer]','[%s][voiceAgentReport][queuecallerabandon]\x20event:','hasOwnProperty','[%s][voiceAgentReport][queuecallerabandon]\x20agent:%s\x20destuniqueid:%s\x20lastevent:abandoned','abandoned','[%s][voiceAgentReport][queuecallerabandon]\x20sending\x20agentqueuecallerabandon\x20event:','custom:agentqueuecallerabandon','[%s][voiceAgentReport][queuecallerabandon]','[%s][voiceAgentReport][agentcomplete]\x20event:','agentcompleteAt','complete','agent','talktime','acw','acwtime','acwTimeout','custom:agentcomplete','[%s][voiceAgentReport][agentcomplete]\x20sending\x20user:agentcomplete\x20event:','destaccountcode','user:agentcomplete','[%s][voiceAgentReport][agentcomplete]','[%s][voiceAgentReport][varset]\x20event:','addVariable','keys','variable','value','[%s][voiceAgentReport][varset]\x20destuniqueid:%s\x20variable:%s\x20value:%s','[%s][voiceAgentReport][varset]','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqosjitterbridged','rtpaudioqosloss','rtpaudioqoslossbridged','rtpaudioqosrtt','sipcallid','bridgepeer','bridgepvtcallid','membercalls','memberdynamic','memberinterface','memberpenalty','memberrealtime','isNil','includes','[%s][voiceAgentReport][hangup]\x20event:','transfer','[%s][voiceAgentReport][hangup]\x20sending\x20voiceAgentReport\x20event:','values','custom:voiceAgentReport','syncAttendedTransfer','[%s][voiceAgentReport][attendedtransfer]\x20event:','transfereeuniqueid','origtransfereruniqueid','[%s][voiceAgentReport][attendedtransfer]\x20agent:%s\x20destuniqueid:%s\x20lastevent:complete','diff','seconds','secondtransfereruniqueid','[%s][voiceAgentReport][attendedtransfer]','[%s][voiceAgentReport][blindtransfer]\x20event:','[%s][voiceAgentReport][blindtransfer]\x20agent:%s\x20destuniqueid:%s\x20lastevent:complete','[%s][voiceAgentReport][blindtransfer]','[%s][voiceAgentReport][musiconholdstart]\x20event:','channel','substring','[%s][voiceAgentReport][musiconholdstart]\x20interface:%s','onhold','[%s][voiceAgentReport][musiconholdstart]','syncMusicOnHoldStop','lastIndexOf','[%s][voiceAgentReport][musiconholdstop]\x20interface:%s','exports','lodash','moment','util','../../../config/logger','../ami','redis','defaults','localhost','channels','voiceQueues','agents','variables','agentcalled','syncAgentCalled','bind','agentconnect','queuecallerabandon','syncQueueCallerAbandon','agentcomplete','syncAgentComplete','varset','syncVarSet','hangup','syncHangup','syncMusicOnHoldStart'];(function(_0x57f062,_0x36a25a){var _0xf9f0d5=function(_0x4053f8){while(--_0x4053f8){_0x57f062['push'](_0x57f062['shift']());}};_0xf9f0d5(++_0x36a25a);}(_0xa9e0,0x123));var _0x0a9e=function(_0x37bd26,_0x5ad346){_0x37bd26=_0x37bd26-0x0;var _0xe83dc4=_0xa9e0[_0x37bd26];return _0xe83dc4;};'use strict';var _=require(_0x0a9e('0x0'));var moment=require(_0x0a9e('0x1'));var util=require(_0x0a9e('0x2'));var Redis=require('ioredis');var config=require('../../../config/environment');var logger=require(_0x0a9e('0x3'))('ami');var ami=require(_0x0a9e('0x4'));config[_0x0a9e('0x5')]=_[_0x0a9e('0x6')](config[_0x0a9e('0x5')],{'host':_0x0a9e('0x7'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x0a9e('0x5')]));function VoiceAgentReport(_0x441e3a){this[_0x0a9e('0x8')]={};this['voiceChannels']=_0x441e3a['channels'];this[_0x0a9e('0x9')]=_0x441e3a['voiceQueues'];this['agents']=_0x441e3a[_0x0a9e('0xa')];this[_0x0a9e('0xb')]={};ami['on'](_0x0a9e('0xc'),this[_0x0a9e('0xd')][_0x0a9e('0xe')](this));ami['on'](_0x0a9e('0xf'),this['syncAgentConnect']['bind'](this));ami['on']('agentringnoanswer',this['syncAgentRingNoAnswer'][_0x0a9e('0xe')](this));ami['on'](_0x0a9e('0x10'),this[_0x0a9e('0x11')][_0x0a9e('0xe')](this));ami['on'](_0x0a9e('0x12'),this[_0x0a9e('0x13')]['bind'](this));ami['on'](_0x0a9e('0x14'),this[_0x0a9e('0x15')][_0x0a9e('0xe')](this));ami['on'](_0x0a9e('0x16'),this[_0x0a9e('0x17')][_0x0a9e('0xe')](this));ami['on']('musiconholdstart',this[_0x0a9e('0x18')]['bind'](this));ami['on'](_0x0a9e('0x19'),this['syncMusicOnHoldStop'][_0x0a9e('0xe')](this));ami['on'](_0x0a9e('0x1a'),this['syncAttendedTransfer'][_0x0a9e('0xe')](this));ami['on']('blindtransfer',this[_0x0a9e('0x1b')][_0x0a9e('0xe')](this));}VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x1d')]=function(_0x31b1ca,_0x2eb11f,_0x530eb7){io['to'](_0x31b1ca)[_0x0a9e('0x1d')](_0x2eb11f,_0x530eb7);};VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x1e')]=function(_0x1c696a){return _0x1c696a!==null&&!_[_0x0a9e('0x1f')](_0x1c696a);};VoiceAgentReport['prototype'][_0x0a9e('0xd')]=function(_0x155cce){try{if(this['isNotNull'](_0x155cce)){logger[_0x0a9e('0x20')]('[%s][voiceAgentReport][agentcalled]\x20agent:%s\x20destuniqueid:%s\x20lastevent:called',_0x155cce['uniqueid'],_0x155cce[_0x0a9e('0x21')],_0x155cce[_0x0a9e('0x22')]);logger[_0x0a9e('0x23')](_0x0a9e('0x24'),_0x155cce['uniqueid'],util[_0x0a9e('0x25')](_0x155cce,{'showHidden':![],'depth':null}));if(_[_0x0a9e('0x1f')](this[_0x0a9e('0x8')][_0x155cce[_0x0a9e('0x26')]])){this[_0x0a9e('0x8')][_0x155cce[_0x0a9e('0x26')]]={};}if(_[_0x0a9e('0x1f')](this['channels'][_0x155cce['uniqueid']][_0x155cce[_0x0a9e('0x22')]])){this[_0x0a9e('0x8')][_0x155cce[_0x0a9e('0x26')]][_0x155cce[_0x0a9e('0x22')]]={'agentcalledAt':moment()['format'](_0x0a9e('0x27')),'lastevent':'called','mandatoryDisposition':this[_0x0a9e('0x9')][_0x155cce['queue']]?this[_0x0a9e('0x9')][_0x155cce[_0x0a9e('0x28')]][_0x0a9e('0x29')]||![]:![],'type':this[_0x0a9e('0x9')][_0x155cce[_0x0a9e('0x28')]]?this[_0x0a9e('0x9')][_0x155cce[_0x0a9e('0x28')]][_0x0a9e('0x2a')]||'inbound':_0x0a9e('0x2b'),'variables':this[_0x0a9e('0xb')][_0x155cce[_0x0a9e('0x26')]],'motionChannel':_0x0a9e('0x2c')};}_['merge'](this[_0x0a9e('0x8')][_0x155cce[_0x0a9e('0x26')]][_0x155cce[_0x0a9e('0x22')]],_[_0x0a9e('0x2d')](_0x155cce,[_0x0a9e('0x2e'),_0x0a9e('0x2f')]));logger[_0x0a9e('0x23')](_0x0a9e('0x30'),_0x155cce[_0x0a9e('0x26')],util['inspect'](this[_0x0a9e('0x8')][_0x155cce['uniqueid']][_0x155cce[_0x0a9e('0x22')]],{'showHidden':![],'depth':null}));ami[_0x0a9e('0x1d')](_0x0a9e('0x31'),this[_0x0a9e('0x8')][_0x155cce[_0x0a9e('0x26')]][_0x155cce['destuniqueid']]);var _0x66c1d2={'id':this[_0x0a9e('0xa')][_0x155cce[_0x0a9e('0x32')]]['id'],'calleridnum':this[_0x0a9e('0x8')][_0x155cce[_0x0a9e('0x26')]][_0x155cce[_0x0a9e('0x22')]][_0x0a9e('0x33')],'queue':this[_0x0a9e('0x8')][_0x155cce['uniqueid']][_0x155cce[_0x0a9e('0x22')]]['queue'],'extravar':this[_0x0a9e('0x8')][_0x155cce[_0x0a9e('0x26')]][_0x155cce[_0x0a9e('0x22')]][_0x0a9e('0xb')]?this['channels'][_0x155cce[_0x0a9e('0x26')]][_0x155cce[_0x0a9e('0x22')]][_0x0a9e('0xb')][_0x0a9e('0x34')]:undefined};logger['debug']('[%s][voiceAgentReport][agentcalled]\x20sending\x20user:called\x20event:',_0x155cce[_0x0a9e('0x26')],util['inspect'](_0x66c1d2,{'showHidden':![],'depth':null}));this[_0x0a9e('0x1d')](util[_0x0a9e('0x35')](_0x0a9e('0x36'),_0x155cce[_0x0a9e('0x21')]),'user:called',_0x66c1d2);}}catch(_0x31916f){logger[_0x0a9e('0x37')](_0x0a9e('0x38'),_0x155cce['uniqueid'],util[_0x0a9e('0x25')](_0x31916f,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x39')]=function(_0x4c1c0e){try{if(this['isNotNull'](_0x4c1c0e)){if(this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]]){logger['debug'](_0x0a9e('0x3a'),_0x4c1c0e[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x4c1c0e,{'showHidden':![],'depth':null}));for(var _0x148f55 in this['channels'][_0x4c1c0e['uniqueid']]){if(this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]]['hasOwnProperty'](_0x148f55)){if(_0x4c1c0e[_0x0a9e('0x22')]===_0x148f55){logger[_0x0a9e('0x20')](_0x0a9e('0x3b'),_0x4c1c0e['uniqueid'],_0x4c1c0e[_0x0a9e('0x21')],_0x4c1c0e[_0x0a9e('0x22')]);this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55][_0x0a9e('0x3c')]=moment()[_0x0a9e('0x35')](_0x0a9e('0x27'));this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55][_0x0a9e('0x3d')]=_0x4c1c0e[_0x0a9e('0x3d')];this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55][_0x0a9e('0x3e')]=_0x4c1c0e[_0x0a9e('0x3e')];this['channels'][_0x4c1c0e['uniqueid']][_0x148f55][_0x0a9e('0x3f')]=_0x4c1c0e[_0x0a9e('0x3f')];this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55][_0x0a9e('0x40')]=_0x4c1c0e[_0x0a9e('0x40')];this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55][_0x0a9e('0x41')]=_0x4c1c0e[_0x0a9e('0x41')];this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55]['lastevent']=_0x0a9e('0x42');if(this[_0x0a9e('0x43')][this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55][_0x0a9e('0x26')]]){var _0xbe9d19=this[_0x0a9e('0x43')][this[_0x0a9e('0x8')][_0x4c1c0e['uniqueid']][_0x148f55][_0x0a9e('0x26')]]['routealias'];this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55][_0x0a9e('0x44')]=_0xbe9d19;_0x4c1c0e['routealias']=_0xbe9d19;}_[_0x0a9e('0x45')](this[_0x0a9e('0xa')][_0x4c1c0e[_0x0a9e('0x32')]],_[_0x0a9e('0x46')](_0x4c1c0e,[_0x0a9e('0x28'),_0x0a9e('0x47'),_0x0a9e('0x44')]));logger['debug'](_0x0a9e('0x48'),_0x4c1c0e[_0x0a9e('0x26')],util[_0x0a9e('0x25')](this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x4c1c0e[_0x0a9e('0x22')]],{'showHidden':![],'depth':null}));ami[_0x0a9e('0x1d')](_0x0a9e('0x49'),this[_0x0a9e('0x8')][_0x4c1c0e['uniqueid']][_0x4c1c0e[_0x0a9e('0x22')]]);logger[_0x0a9e('0x23')]('[%s][voiceAgentReport][agentcalled]\x20sending\x20user:agentconnect\x20event:',_0x4c1c0e['uniqueid'],util['inspect'](this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x4c1c0e[_0x0a9e('0x22')]],{'showHidden':![],'depth':null}));this[_0x0a9e('0x1d')](util[_0x0a9e('0x35')](_0x0a9e('0x36'),_0x4c1c0e[_0x0a9e('0x21')]),_0x0a9e('0x4a'),this['channels'][_0x4c1c0e['uniqueid']][_0x4c1c0e['destuniqueid']]);}else if(!this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55][_0x0a9e('0x4b')]&&!this['channels'][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55][_0x0a9e('0x12')]){logger['info']('[%s][voiceAgentReport][agentconnect]\x20agent:%s\x20destuniqueid:%s\x20lastevent:answered_elsewhere',_0x4c1c0e[_0x0a9e('0x26')],this['channels'][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55]['membername'],_0x148f55);this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55][_0x0a9e('0x4b')]=!![];this['channels'][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55][_0x0a9e('0x4c')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55]['answeredelsewheredestinationuniqueid']=_0x4c1c0e[_0x0a9e('0x22')];this['channels'][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55]['answeredelsewheremembername']=_0x4c1c0e[_0x0a9e('0x21')];this['channels'][_0x4c1c0e['uniqueid']][_0x148f55]['lastevent']=_0x0a9e('0x4d');this['channels'][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55][_0x0a9e('0x4e')]=_0x0a9e('0x4d');logger[_0x0a9e('0x23')](_0x0a9e('0x4f'),_0x4c1c0e[_0x0a9e('0x26')],util[_0x0a9e('0x25')](this[_0x0a9e('0x8')][_0x4c1c0e['uniqueid']][_0x148f55],{'showHidden':![],'depth':null}));ami[_0x0a9e('0x1d')](_0x0a9e('0x50'),this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55]);}}}}}}catch(_0xb83dfd){logger[_0x0a9e('0x37')]('[%s][voiceAgentReport][agentconnect]',_0x4c1c0e[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0xb83dfd,{'showHidden':![],'depth':null}));}};VoiceAgentReport['prototype'][_0x0a9e('0x51')]=function(_0x5cc8fb){try{if(this[_0x0a9e('0x1e')](_0x5cc8fb)){logger['debug']('[%s][voiceAgentReport][agentringnoanswer]\x20event:',_0x5cc8fb['uniqueid'],util[_0x0a9e('0x25')](_0x5cc8fb,{'showHidden':![],'depth':null}));if(this['channels'][_0x5cc8fb[_0x0a9e('0x26')]]&&this[_0x0a9e('0x8')][_0x5cc8fb[_0x0a9e('0x26')]][_0x5cc8fb[_0x0a9e('0x22')]]){logger[_0x0a9e('0x20')](_0x0a9e('0x52'),_0x5cc8fb['uniqueid'],_0x5cc8fb[_0x0a9e('0x21')],_0x5cc8fb['destuniqueid']);this[_0x0a9e('0x8')][_0x5cc8fb[_0x0a9e('0x26')]][_0x5cc8fb[_0x0a9e('0x22')]]['agentringnoanswer']=!![];this[_0x0a9e('0x8')][_0x5cc8fb[_0x0a9e('0x26')]][_0x5cc8fb[_0x0a9e('0x22')]][_0x0a9e('0x4c')]=moment()['format'](_0x0a9e('0x27'));this[_0x0a9e('0x8')][_0x5cc8fb['uniqueid']][_0x5cc8fb[_0x0a9e('0x22')]][_0x0a9e('0x53')]=_0x0a9e('0x54');this[_0x0a9e('0x8')][_0x5cc8fb[_0x0a9e('0x26')]][_0x5cc8fb['destuniqueid']][_0x0a9e('0x4e')]=_0x0a9e('0x54');logger[_0x0a9e('0x23')]('[%s][voiceAgentReport][agentringnoanswer]\x20sending\x20agentringnoanswer\x20event:',_0x5cc8fb[_0x0a9e('0x26')],util['inspect'](this['channels'][_0x5cc8fb[_0x0a9e('0x26')]][_0x5cc8fb[_0x0a9e('0x22')]],{'showHidden':![],'depth':null}));ami[_0x0a9e('0x1d')](_0x0a9e('0x55'),this[_0x0a9e('0x8')][_0x5cc8fb[_0x0a9e('0x26')]][_0x5cc8fb[_0x0a9e('0x22')]]);}}}catch(_0x54a37d){logger[_0x0a9e('0x37')](_0x0a9e('0x56'),_0x5cc8fb[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x54a37d,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x11')]=function(_0x320898){try{if(this[_0x0a9e('0x1e')](_0x320898)){logger[_0x0a9e('0x23')](_0x0a9e('0x57'),_0x320898['uniqueid'],util[_0x0a9e('0x25')](_0x320898,{'showHidden':![],'depth':null}));if(this[_0x0a9e('0x8')][_0x320898[_0x0a9e('0x26')]]){for(var _0x4edbb0 in this[_0x0a9e('0x8')][_0x320898[_0x0a9e('0x26')]]){if(this['channels'][_0x320898[_0x0a9e('0x26')]][_0x0a9e('0x58')](_0x4edbb0)&&!this[_0x0a9e('0x8')][_0x320898[_0x0a9e('0x26')]][_0x4edbb0][_0x0a9e('0x4b')]&&!this['channels'][_0x320898['uniqueid']][_0x4edbb0]['agentcomplete']){logger[_0x0a9e('0x20')](_0x0a9e('0x59'),_0x320898[_0x0a9e('0x26')],this[_0x0a9e('0x8')][_0x320898[_0x0a9e('0x26')]][_0x4edbb0][_0x0a9e('0x21')],_0x4edbb0);this[_0x0a9e('0x8')][_0x320898[_0x0a9e('0x26')]][_0x4edbb0]['agentringnoanswer']=!![];this[_0x0a9e('0x8')][_0x320898[_0x0a9e('0x26')]][_0x4edbb0][_0x0a9e('0x4c')]=moment()['format'](_0x0a9e('0x27'));this['channels'][_0x320898[_0x0a9e('0x26')]][_0x4edbb0][_0x0a9e('0x53')]='abandoned';this[_0x0a9e('0x8')][_0x320898[_0x0a9e('0x26')]][_0x4edbb0][_0x0a9e('0x4e')]=_0x0a9e('0x5a');logger['debug'](_0x0a9e('0x5b'),_0x320898[_0x0a9e('0x26')],util[_0x0a9e('0x25')](this[_0x0a9e('0x8')][_0x320898['uniqueid']][_0x4edbb0],{'showHidden':![],'depth':null}));ami[_0x0a9e('0x1d')](_0x0a9e('0x5c'),this[_0x0a9e('0x8')][_0x320898[_0x0a9e('0x26')]][_0x4edbb0]);}}}}}catch(_0x4abc8f){logger[_0x0a9e('0x37')](_0x0a9e('0x5d'),_0x320898[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x4abc8f,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x13')]=function(_0x40fc56){try{if(this[_0x0a9e('0x1e')](_0x40fc56)){logger[_0x0a9e('0x23')](_0x0a9e('0x5e'),_0x40fc56[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x40fc56,{'showHidden':![],'depth':null}));if(this[_0x0a9e('0x8')][_0x40fc56[_0x0a9e('0x26')]]){for(var _0x5b35db in this[_0x0a9e('0x8')][_0x40fc56[_0x0a9e('0x26')]]){if(this[_0x0a9e('0x8')][_0x40fc56['uniqueid']][_0x0a9e('0x58')](_0x5b35db)){if(this[_0x0a9e('0x8')][_0x40fc56[_0x0a9e('0x26')]][_0x5b35db][_0x0a9e('0x3c')]&&!this['channels'][_0x40fc56['uniqueid']][_0x5b35db][_0x0a9e('0x12')]){logger[_0x0a9e('0x20')]('[%s][voiceAgentReport][agentcomplete]\x20agent:%s\x20destuniqueid:%s\x20lastevent:complete',_0x40fc56[_0x0a9e('0x26')],this['channels'][_0x40fc56[_0x0a9e('0x26')]][_0x5b35db][_0x0a9e('0x21')],_0x5b35db);this['channels'][_0x40fc56[_0x0a9e('0x26')]][_0x5b35db][_0x0a9e('0x12')]=!![];this[_0x0a9e('0x8')][_0x40fc56[_0x0a9e('0x26')]][_0x5b35db][_0x0a9e('0x5f')]=moment()[_0x0a9e('0x35')](_0x0a9e('0x27'));this['channels'][_0x40fc56[_0x0a9e('0x26')]][_0x5b35db][_0x0a9e('0x53')]=_0x0a9e('0x60');this[_0x0a9e('0x8')][_0x40fc56['uniqueid']][_0x5b35db][_0x0a9e('0x4e')]=_0x40fc56[_0x0a9e('0x4e')]=='transfer'?_0x0a9e('0x61'):_0x40fc56['reason'];this[_0x0a9e('0x8')][_0x40fc56[_0x0a9e('0x26')]][_0x5b35db][_0x0a9e('0x62')]=_0x40fc56[_0x0a9e('0x62')];if(this['voiceQueues'][_0x40fc56['queue']]&&this[_0x0a9e('0x9')][_0x40fc56[_0x0a9e('0x28')]][_0x0a9e('0x63')]){this['channels'][_0x40fc56[_0x0a9e('0x26')]][_0x5b35db][_0x0a9e('0x64')]=this['voiceQueues'][_0x40fc56['queue']][_0x0a9e('0x65')];this['channels'][_0x40fc56['uniqueid']][_0x5b35db]['agentacw']=!![];}this[_0x0a9e('0xa')][_0x40fc56[_0x0a9e('0x32')]]=_[_0x0a9e('0x2d')](this[_0x0a9e('0xa')][_0x40fc56[_0x0a9e('0x32')]],[_0x0a9e('0x28'),'destconnectedlinenum']);logger[_0x0a9e('0x23')]('[%s][voiceAgentReport][agentcomplete]\x20sending\x20agentcomplete\x20event:',_0x40fc56[_0x0a9e('0x26')],util[_0x0a9e('0x25')](this[_0x0a9e('0x8')][_0x40fc56[_0x0a9e('0x26')]][_0x5b35db],{'showHidden':![],'depth':null}));ami['emit'](_0x0a9e('0x66'),this[_0x0a9e('0x8')][_0x40fc56[_0x0a9e('0x26')]][_0x5b35db]);logger['debug'](_0x0a9e('0x67'),_0x40fc56[_0x0a9e('0x26')],util[_0x0a9e('0x25')]({'id':this[_0x0a9e('0xa')][_0x40fc56[_0x0a9e('0x32')]]['id'],'destaccountcode':_0x40fc56[_0x0a9e('0x68')]},{'showHidden':![],'depth':null}));this[_0x0a9e('0x1d')](util[_0x0a9e('0x35')]('user:%s',_0x40fc56[_0x0a9e('0x21')]),_0x0a9e('0x69'),{'id':this['agents'][_0x40fc56[_0x0a9e('0x32')]]['id'],'destaccountcode':_0x40fc56[_0x0a9e('0x68')]});}}}}}}catch(_0x3a1974){logger['error'](_0x0a9e('0x6a'),_0x40fc56['uniqueid'],util[_0x0a9e('0x25')](_0x3a1974,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x15')]=function(_0x1f29bd){try{if(this[_0x0a9e('0x1e')](_0x1f29bd)){logger[_0x0a9e('0x23')](_0x0a9e('0x6b'),_0x1f29bd[_0x0a9e('0x26')],util['inspect'](_0x1f29bd,{'showHidden':![],'depth':null}));this[_0x0a9e('0x6c')](_0x1f29bd[_0x0a9e('0x26')],_[_0x0a9e('0x6d')](_0x1f29bd[_0x0a9e('0x6e')])[0x0],_0x1f29bd[_0x0a9e('0x6f')]);if(this[_0x0a9e('0x8')][_0x1f29bd[_0x0a9e('0x26')]]){for(var _0x33f0c9 in this[_0x0a9e('0x8')][_0x1f29bd[_0x0a9e('0x26')]]){if(this[_0x0a9e('0x8')][_0x1f29bd[_0x0a9e('0x26')]][_0x0a9e('0x58')](_0x33f0c9)){logger['info'](_0x0a9e('0x70'),_0x1f29bd[_0x0a9e('0x26')],_0x33f0c9,_[_0x0a9e('0x6d')](_0x1f29bd[_0x0a9e('0x6e')])[0x0],_0x1f29bd[_0x0a9e('0x6f')]);if(_['isUndefined'](this[_0x0a9e('0x8')][_0x1f29bd[_0x0a9e('0x26')]][_0x33f0c9]['variables'])){this[_0x0a9e('0x8')][_0x1f29bd['uniqueid']][_0x33f0c9][_0x0a9e('0xb')]={};}this[_0x0a9e('0x8')][_0x1f29bd[_0x0a9e('0x26')]][_0x33f0c9][_0x0a9e('0xb')]=this['variables'][_0x1f29bd[_0x0a9e('0x26')]];}}}}}catch(_0x4cf72d){logger[_0x0a9e('0x37')](_0x0a9e('0x71'),_0x1f29bd['uniqueid'],util[_0x0a9e('0x25')](_0x4cf72d,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x6c')]=function(_0x4ab276,_0x4c788f,_0x1b82b7){var _0x6ba2be=[_0x0a9e('0x72'),_0x0a9e('0x73'),_0x0a9e('0x74'),_0x0a9e('0x75'),_0x0a9e('0x76'),_0x0a9e('0x77'),_0x0a9e('0x78'),'rtpaudioqosrttbridged',_0x0a9e('0x79'),'sipuri',_0x0a9e('0x7a'),_0x0a9e('0x7b'),_0x0a9e('0x7c'),_0x0a9e('0x7d'),_0x0a9e('0x7e'),'memberlastcall',_0x0a9e('0x21'),_0x0a9e('0x7f'),_0x0a9e('0x80')];if(!_[_0x0a9e('0x81')](_0x4c788f)&&!_[_0x0a9e('0x82')](_0x6ba2be,_0x4c788f)){if(_['isUndefined'](this['variables'][_0x4ab276])){this[_0x0a9e('0xb')][_0x4ab276]={};}this['variables'][_0x4ab276][_0x4c788f]=_0x1b82b7;}};VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x17')]=function(_0x4672e1){try{if(this[_0x0a9e('0x1e')](_0x4672e1)){logger[_0x0a9e('0x23')](_0x0a9e('0x83'),_0x4672e1['uniqueid'],util['inspect'](_0x4672e1,{'showHidden':![],'depth':null}));if(this[_0x0a9e('0x8')][_0x4672e1['uniqueid']]){for(var _0x2469d1 in this['channels'][_0x4672e1[_0x0a9e('0x26')]]){if(this['channels'][_0x4672e1['uniqueid']][_0x0a9e('0x58')](_0x2469d1)){if(this[_0x0a9e('0x8')][_0x4672e1['uniqueid']][_0x2469d1][_0x0a9e('0x4e')]==_0x0a9e('0x84')&&this[_0x0a9e('0x8')][_0x4672e1[_0x0a9e('0x26')]][_0x2469d1][_0x0a9e('0x12')]){logger['info']('[%s][voiceAgentReport][hangup]\x20destuniqueid:%s',_0x4672e1[_0x0a9e('0x26')],_0x2469d1);this[_0x0a9e('0x8')][_0x4672e1[_0x0a9e('0x26')]][_0x2469d1][_0x0a9e('0x5f')]=moment()[_0x0a9e('0x35')]('YYYY-MM-DD\x20HH:mm:ss');}}}logger[_0x0a9e('0x23')](_0x0a9e('0x85'),_0x4672e1['uniqueid'],util[_0x0a9e('0x25')](_[_0x0a9e('0x86')](this[_0x0a9e('0x8')][_0x4672e1[_0x0a9e('0x26')]]),{'showHidden':![],'depth':null}));ami[_0x0a9e('0x1d')](_0x0a9e('0x87'),_[_0x0a9e('0x86')](this[_0x0a9e('0x8')][_0x4672e1[_0x0a9e('0x26')]]));delete this[_0x0a9e('0x8')][_0x4672e1['uniqueid']];}if(this[_0x0a9e('0xb')][_0x4672e1[_0x0a9e('0x26')]]){delete this[_0x0a9e('0xb')][_0x4672e1[_0x0a9e('0x26')]];}}}catch(_0x1d0b02){logger['error']('[%s][voiceAgentReport][hangup]',_0x4672e1[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x1d0b02,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x88')]=function(_0x34f7b5){try{if(this['isNotNull'](_0x34f7b5)){logger[_0x0a9e('0x23')](_0x0a9e('0x89'),_0x34f7b5[_0x0a9e('0x26')],util['inspect'](_0x34f7b5,{'showHidden':![],'depth':null}));if(this[_0x0a9e('0x8')][_0x34f7b5['transfereeuniqueid']]){for(var _0x2144ca in this['channels'][_0x34f7b5[_0x0a9e('0x8a')]]){if(this[_0x0a9e('0x8')][_0x34f7b5[_0x0a9e('0x8a')]]['hasOwnProperty'](_0x2144ca)){if(_0x34f7b5[_0x0a9e('0x8b')]===_0x2144ca){logger['info'](_0x0a9e('0x8c'),_0x34f7b5[_0x0a9e('0x26')],this[_0x0a9e('0x8')][_0x34f7b5[_0x0a9e('0x8a')]][_0x2144ca][_0x0a9e('0x21')],_0x2144ca);var _0x1bee04=moment();this[_0x0a9e('0x8')][_0x34f7b5[_0x0a9e('0x8a')]][_0x2144ca][_0x0a9e('0x12')]=!![];this[_0x0a9e('0x8')][_0x34f7b5[_0x0a9e('0x8a')]][_0x2144ca][_0x0a9e('0x5f')]=moment()[_0x0a9e('0x35')](_0x0a9e('0x27'));this[_0x0a9e('0x8')][_0x34f7b5[_0x0a9e('0x8a')]][_0x2144ca]['lastevent']='complete';this[_0x0a9e('0x8')][_0x34f7b5['transfereeuniqueid']][_0x2144ca][_0x0a9e('0x4e')]=_0x0a9e('0x84');this['channels'][_0x34f7b5[_0x0a9e('0x8a')]][_0x2144ca][_0x0a9e('0x62')]=_0x1bee04[_0x0a9e('0x8d')](this[_0x0a9e('0x8')][_0x34f7b5['transfereeuniqueid']][_0x2144ca][_0x0a9e('0x3c')],_0x0a9e('0x8e'));}}}}if(this[_0x0a9e('0x8')][_0x34f7b5[_0x0a9e('0x8f')]]){var _0x5d0e1f=this[_0x0a9e('0x8')][_0x34f7b5[_0x0a9e('0x8f')]];this[_0x0a9e('0x8')][_0x34f7b5['secondtransfereruniqueid']]=this[_0x0a9e('0x8')][_0x34f7b5[_0x0a9e('0x8a')]];this[_0x0a9e('0x8')][_0x34f7b5['transfereeuniqueid']]=_0x5d0e1f;}}}catch(_0x303f75){logger[_0x0a9e('0x37')](_0x0a9e('0x90'),_0x34f7b5[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x303f75,{'showHidden':![],'depth':null}));}};VoiceAgentReport['prototype'][_0x0a9e('0x1b')]=function(_0x289e65){try{if(this['isNotNull'](_0x289e65)){logger[_0x0a9e('0x23')](_0x0a9e('0x91'),_0x289e65[_0x0a9e('0x26')],util['inspect'](_0x289e65,{'showHidden':![],'depth':null}));if(this['channels'][_0x289e65['transfereeuniqueid']]){for(var _0x1015aa in this[_0x0a9e('0x8')][_0x289e65['transfereeuniqueid']]){if(this[_0x0a9e('0x8')][_0x289e65[_0x0a9e('0x8a')]][_0x0a9e('0x58')](_0x1015aa)){if(_0x289e65['transfereruniqueid']===_0x1015aa){logger[_0x0a9e('0x20')](_0x0a9e('0x92'),_0x289e65[_0x0a9e('0x26')],this[_0x0a9e('0x8')][_0x289e65[_0x0a9e('0x8a')]][_0x1015aa][_0x0a9e('0x21')],_0x1015aa);var _0x40e6e7=moment();this[_0x0a9e('0x8')][_0x289e65[_0x0a9e('0x8a')]][_0x1015aa]['agentcomplete']=!![];this[_0x0a9e('0x8')][_0x289e65['transfereeuniqueid']][_0x1015aa][_0x0a9e('0x5f')]=_0x40e6e7;this[_0x0a9e('0x8')][_0x289e65[_0x0a9e('0x8a')]][_0x1015aa][_0x0a9e('0x53')]=_0x0a9e('0x60');this[_0x0a9e('0x8')][_0x289e65['transfereeuniqueid']][_0x1015aa][_0x0a9e('0x4e')]=_0x0a9e('0x84');this[_0x0a9e('0x8')][_0x289e65[_0x0a9e('0x8a')]][_0x1015aa]['talktime']=_0x40e6e7[_0x0a9e('0x8d')](this[_0x0a9e('0x8')][_0x289e65[_0x0a9e('0x8a')]][_0x1015aa][_0x0a9e('0x3c')],_0x0a9e('0x8e'));}}}}}}catch(_0x2be526){logger[_0x0a9e('0x37')](_0x0a9e('0x93'),_0x289e65[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x2be526,{'showHidden':![],'depth':null}));}};VoiceAgentReport['prototype'][_0x0a9e('0x18')]=function(_0x88b25f){var _0x2ff265='';try{if(this[_0x0a9e('0x1e')](_0x88b25f)){logger[_0x0a9e('0x23')](_0x0a9e('0x94'),_0x88b25f[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x88b25f,{'showHidden':![],'depth':null}));if(_0x88b25f['channel']){_0x2ff265=_0x88b25f[_0x0a9e('0x95')][_0x0a9e('0x96')](0x0,_0x88b25f[_0x0a9e('0x95')]['lastIndexOf']('-'));if(this[_0x0a9e('0xa')][_0x2ff265]){logger[_0x0a9e('0x20')](_0x0a9e('0x97'),_0x88b25f[_0x0a9e('0x26')],_0x2ff265);this[_0x0a9e('0xa')][_0x2ff265][_0x0a9e('0x98')]=!![];}}}}catch(_0x424f1b){logger[_0x0a9e('0x37')](_0x0a9e('0x99'),_0x88b25f[_0x0a9e('0x26')],util['inspect'](_0x424f1b,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x9a')]=function(_0x15a9ed){var _0x3db98f='';try{if(this[_0x0a9e('0x1e')](_0x15a9ed)){logger[_0x0a9e('0x23')]('[%s][voiceAgentReport][musiconholdstop]\x20event:',_0x15a9ed[_0x0a9e('0x26')],util['inspect'](_0x15a9ed,{'showHidden':![],'depth':null}));if(_0x15a9ed['channel']){_0x3db98f=_0x15a9ed['channel'][_0x0a9e('0x96')](0x0,_0x15a9ed[_0x0a9e('0x95')][_0x0a9e('0x9b')]('-'));if(this[_0x0a9e('0xa')][_0x3db98f]){logger['info'](_0x0a9e('0x9c'),_0x15a9ed[_0x0a9e('0x26')],_0x3db98f);this[_0x0a9e('0xa')][_0x3db98f][_0x0a9e('0x98')]=![];}}}}catch(_0x2c8d1d){logger['error']('[%s][voiceAgentReport][musiconholdstop]',_0x15a9ed[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x2c8d1d,{'showHidden':![],'depth':null}));}};module[_0x0a9e('0x9d')]=VoiceAgentReport;
\ No newline at end of file
+var _0xa9e0=['musiconholdstop','attendedtransfer','syncBlindTransfer','prototype','emit','isNotNull','isUndefined','info','membername','destuniqueid','debug','[%s][voiceAgentReport][agentcalled]\x20event:','inspect','uniqueid','YYYY-MM-DD\x20HH:mm:ss','queue','mandatoryDisposition','type','inbound','voice','omit','event','privilege','[%s][voiceAgentReport][agentcalled]\x20sending\x20agentcalled\x20event:','custom:agentcalled','interface','calleridnum','extravar','format','user:%s','error','[%s][voiceAgentReport][agentcalled]','syncAgentConnect','[%s][voiceAgentReport][agentconnect]\x20event:','[%s][voiceAgentReport][agentconnect]\x20agent:%s\x20destuniqueid:%s\x20lastevent:connect','agentconnectAt','connectedlinename','connectedlinenum','destchannelstate','destchannelstatedesc','holdtime','connect','voiceChannels','routealias','merge','pick','destconnectedlinenum','[%s][voiceAgentReport][agentconnect]\x20sending\x20agentconnect\x20event:','custom:agentconnect','user:agentconnect','agentringnoanswer','agentringnoanswerAt','answered_elsewhere','reason','[%s][voiceAgentReport][agentconnect]\x20sending\x20agentansweredelsewhere\x20event:','custom:agentansweredelsewhere','syncAgentRingNoAnswer','[%s][voiceAgentReport][agentringnoanswer]\x20agent:%s\x20destuniqueid:%s\x20lastevent:rejected','lastevent','rejected','custom:agentringnoanswer','[%s][voiceAgentReport][agentringnoanswer]','[%s][voiceAgentReport][queuecallerabandon]\x20event:','hasOwnProperty','[%s][voiceAgentReport][queuecallerabandon]\x20agent:%s\x20destuniqueid:%s\x20lastevent:abandoned','abandoned','[%s][voiceAgentReport][queuecallerabandon]\x20sending\x20agentqueuecallerabandon\x20event:','custom:agentqueuecallerabandon','[%s][voiceAgentReport][queuecallerabandon]','[%s][voiceAgentReport][agentcomplete]\x20event:','agentcompleteAt','complete','agent','talktime','acw','acwtime','acwTimeout','custom:agentcomplete','[%s][voiceAgentReport][agentcomplete]\x20sending\x20user:agentcomplete\x20event:','destaccountcode','user:agentcomplete','[%s][voiceAgentReport][agentcomplete]','[%s][voiceAgentReport][varset]\x20event:','addVariable','keys','variable','value','[%s][voiceAgentReport][varset]\x20destuniqueid:%s\x20variable:%s\x20value:%s','[%s][voiceAgentReport][varset]','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqosjitterbridged','rtpaudioqosloss','rtpaudioqoslossbridged','rtpaudioqosrtt','sipcallid','bridgepeer','bridgepvtcallid','membercalls','memberdynamic','memberinterface','memberpenalty','memberrealtime','isNil','includes','[%s][voiceAgentReport][hangup]\x20event:','transfer','[%s][voiceAgentReport][hangup]\x20sending\x20voiceAgentReport\x20event:','values','custom:voiceAgentReport','syncAttendedTransfer','[%s][voiceAgentReport][attendedtransfer]\x20event:','transfereeuniqueid','origtransfereruniqueid','[%s][voiceAgentReport][attendedtransfer]\x20agent:%s\x20destuniqueid:%s\x20lastevent:complete','diff','seconds','secondtransfereruniqueid','[%s][voiceAgentReport][attendedtransfer]','[%s][voiceAgentReport][blindtransfer]\x20event:','[%s][voiceAgentReport][blindtransfer]\x20agent:%s\x20destuniqueid:%s\x20lastevent:complete','[%s][voiceAgentReport][blindtransfer]','[%s][voiceAgentReport][musiconholdstart]\x20event:','channel','substring','[%s][voiceAgentReport][musiconholdstart]\x20interface:%s','onhold','[%s][voiceAgentReport][musiconholdstart]','syncMusicOnHoldStop','lastIndexOf','[%s][voiceAgentReport][musiconholdstop]\x20interface:%s','exports','lodash','moment','util','../../../config/logger','../ami','redis','defaults','localhost','channels','voiceQueues','agents','variables','agentcalled','syncAgentCalled','bind','agentconnect','queuecallerabandon','syncQueueCallerAbandon','agentcomplete','syncAgentComplete','varset','syncVarSet','hangup','syncHangup','syncMusicOnHoldStart'];(function(_0x18f778,_0x346822){var _0x489d94=function(_0x3a0c12){while(--_0x3a0c12){_0x18f778['push'](_0x18f778['shift']());}};_0x489d94(++_0x346822);}(_0xa9e0,0x123));var _0x0a9e=function(_0x297fd3,_0x115406){_0x297fd3=_0x297fd3-0x0;var _0x2af381=_0xa9e0[_0x297fd3];return _0x2af381;};'use strict';var _=require(_0x0a9e('0x0'));var moment=require(_0x0a9e('0x1'));var util=require(_0x0a9e('0x2'));var Redis=require('ioredis');var config=require('../../../config/environment');var logger=require(_0x0a9e('0x3'))('ami');var ami=require(_0x0a9e('0x4'));config[_0x0a9e('0x5')]=_[_0x0a9e('0x6')](config[_0x0a9e('0x5')],{'host':_0x0a9e('0x7'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x0a9e('0x5')]));function VoiceAgentReport(_0x441e3a){this[_0x0a9e('0x8')]={};this['voiceChannels']=_0x441e3a['channels'];this[_0x0a9e('0x9')]=_0x441e3a['voiceQueues'];this['agents']=_0x441e3a[_0x0a9e('0xa')];this[_0x0a9e('0xb')]={};ami['on'](_0x0a9e('0xc'),this[_0x0a9e('0xd')][_0x0a9e('0xe')](this));ami['on'](_0x0a9e('0xf'),this['syncAgentConnect']['bind'](this));ami['on']('agentringnoanswer',this['syncAgentRingNoAnswer'][_0x0a9e('0xe')](this));ami['on'](_0x0a9e('0x10'),this[_0x0a9e('0x11')][_0x0a9e('0xe')](this));ami['on'](_0x0a9e('0x12'),this[_0x0a9e('0x13')]['bind'](this));ami['on'](_0x0a9e('0x14'),this[_0x0a9e('0x15')][_0x0a9e('0xe')](this));ami['on'](_0x0a9e('0x16'),this[_0x0a9e('0x17')][_0x0a9e('0xe')](this));ami['on']('musiconholdstart',this[_0x0a9e('0x18')]['bind'](this));ami['on'](_0x0a9e('0x19'),this['syncMusicOnHoldStop'][_0x0a9e('0xe')](this));ami['on'](_0x0a9e('0x1a'),this['syncAttendedTransfer'][_0x0a9e('0xe')](this));ami['on']('blindtransfer',this[_0x0a9e('0x1b')][_0x0a9e('0xe')](this));}VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x1d')]=function(_0x31b1ca,_0x2eb11f,_0x530eb7){io['to'](_0x31b1ca)[_0x0a9e('0x1d')](_0x2eb11f,_0x530eb7);};VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x1e')]=function(_0x1c696a){return _0x1c696a!==null&&!_[_0x0a9e('0x1f')](_0x1c696a);};VoiceAgentReport['prototype'][_0x0a9e('0xd')]=function(_0x155cce){try{if(this['isNotNull'](_0x155cce)){logger[_0x0a9e('0x20')]('[%s][voiceAgentReport][agentcalled]\x20agent:%s\x20destuniqueid:%s\x20lastevent:called',_0x155cce['uniqueid'],_0x155cce[_0x0a9e('0x21')],_0x155cce[_0x0a9e('0x22')]);logger[_0x0a9e('0x23')](_0x0a9e('0x24'),_0x155cce['uniqueid'],util[_0x0a9e('0x25')](_0x155cce,{'showHidden':![],'depth':null}));if(_[_0x0a9e('0x1f')](this[_0x0a9e('0x8')][_0x155cce[_0x0a9e('0x26')]])){this[_0x0a9e('0x8')][_0x155cce[_0x0a9e('0x26')]]={};}if(_[_0x0a9e('0x1f')](this['channels'][_0x155cce['uniqueid']][_0x155cce[_0x0a9e('0x22')]])){this[_0x0a9e('0x8')][_0x155cce[_0x0a9e('0x26')]][_0x155cce[_0x0a9e('0x22')]]={'agentcalledAt':moment()['format'](_0x0a9e('0x27')),'lastevent':'called','mandatoryDisposition':this[_0x0a9e('0x9')][_0x155cce['queue']]?this[_0x0a9e('0x9')][_0x155cce[_0x0a9e('0x28')]][_0x0a9e('0x29')]||![]:![],'type':this[_0x0a9e('0x9')][_0x155cce[_0x0a9e('0x28')]]?this[_0x0a9e('0x9')][_0x155cce[_0x0a9e('0x28')]][_0x0a9e('0x2a')]||'inbound':_0x0a9e('0x2b'),'variables':this[_0x0a9e('0xb')][_0x155cce[_0x0a9e('0x26')]],'motionChannel':_0x0a9e('0x2c')};}_['merge'](this[_0x0a9e('0x8')][_0x155cce[_0x0a9e('0x26')]][_0x155cce[_0x0a9e('0x22')]],_[_0x0a9e('0x2d')](_0x155cce,[_0x0a9e('0x2e'),_0x0a9e('0x2f')]));logger[_0x0a9e('0x23')](_0x0a9e('0x30'),_0x155cce[_0x0a9e('0x26')],util['inspect'](this[_0x0a9e('0x8')][_0x155cce['uniqueid']][_0x155cce[_0x0a9e('0x22')]],{'showHidden':![],'depth':null}));ami[_0x0a9e('0x1d')](_0x0a9e('0x31'),this[_0x0a9e('0x8')][_0x155cce[_0x0a9e('0x26')]][_0x155cce['destuniqueid']]);var _0x66c1d2={'id':this[_0x0a9e('0xa')][_0x155cce[_0x0a9e('0x32')]]['id'],'calleridnum':this[_0x0a9e('0x8')][_0x155cce[_0x0a9e('0x26')]][_0x155cce[_0x0a9e('0x22')]][_0x0a9e('0x33')],'queue':this[_0x0a9e('0x8')][_0x155cce['uniqueid']][_0x155cce[_0x0a9e('0x22')]]['queue'],'extravar':this[_0x0a9e('0x8')][_0x155cce[_0x0a9e('0x26')]][_0x155cce[_0x0a9e('0x22')]][_0x0a9e('0xb')]?this['channels'][_0x155cce[_0x0a9e('0x26')]][_0x155cce[_0x0a9e('0x22')]][_0x0a9e('0xb')][_0x0a9e('0x34')]:undefined};logger['debug']('[%s][voiceAgentReport][agentcalled]\x20sending\x20user:called\x20event:',_0x155cce[_0x0a9e('0x26')],util['inspect'](_0x66c1d2,{'showHidden':![],'depth':null}));this[_0x0a9e('0x1d')](util[_0x0a9e('0x35')](_0x0a9e('0x36'),_0x155cce[_0x0a9e('0x21')]),'user:called',_0x66c1d2);}}catch(_0x31916f){logger[_0x0a9e('0x37')](_0x0a9e('0x38'),_0x155cce['uniqueid'],util[_0x0a9e('0x25')](_0x31916f,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x39')]=function(_0x4c1c0e){try{if(this['isNotNull'](_0x4c1c0e)){if(this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]]){logger['debug'](_0x0a9e('0x3a'),_0x4c1c0e[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x4c1c0e,{'showHidden':![],'depth':null}));for(var _0x148f55 in this['channels'][_0x4c1c0e['uniqueid']]){if(this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]]['hasOwnProperty'](_0x148f55)){if(_0x4c1c0e[_0x0a9e('0x22')]===_0x148f55){logger[_0x0a9e('0x20')](_0x0a9e('0x3b'),_0x4c1c0e['uniqueid'],_0x4c1c0e[_0x0a9e('0x21')],_0x4c1c0e[_0x0a9e('0x22')]);this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55][_0x0a9e('0x3c')]=moment()[_0x0a9e('0x35')](_0x0a9e('0x27'));this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55][_0x0a9e('0x3d')]=_0x4c1c0e[_0x0a9e('0x3d')];this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55][_0x0a9e('0x3e')]=_0x4c1c0e[_0x0a9e('0x3e')];this['channels'][_0x4c1c0e['uniqueid']][_0x148f55][_0x0a9e('0x3f')]=_0x4c1c0e[_0x0a9e('0x3f')];this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55][_0x0a9e('0x40')]=_0x4c1c0e[_0x0a9e('0x40')];this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55][_0x0a9e('0x41')]=_0x4c1c0e[_0x0a9e('0x41')];this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55]['lastevent']=_0x0a9e('0x42');if(this[_0x0a9e('0x43')][this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55][_0x0a9e('0x26')]]){var _0xbe9d19=this[_0x0a9e('0x43')][this[_0x0a9e('0x8')][_0x4c1c0e['uniqueid']][_0x148f55][_0x0a9e('0x26')]]['routealias'];this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55][_0x0a9e('0x44')]=_0xbe9d19;_0x4c1c0e['routealias']=_0xbe9d19;}_[_0x0a9e('0x45')](this[_0x0a9e('0xa')][_0x4c1c0e[_0x0a9e('0x32')]],_[_0x0a9e('0x46')](_0x4c1c0e,[_0x0a9e('0x28'),_0x0a9e('0x47'),_0x0a9e('0x44')]));logger['debug'](_0x0a9e('0x48'),_0x4c1c0e[_0x0a9e('0x26')],util[_0x0a9e('0x25')](this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x4c1c0e[_0x0a9e('0x22')]],{'showHidden':![],'depth':null}));ami[_0x0a9e('0x1d')](_0x0a9e('0x49'),this[_0x0a9e('0x8')][_0x4c1c0e['uniqueid']][_0x4c1c0e[_0x0a9e('0x22')]]);logger[_0x0a9e('0x23')]('[%s][voiceAgentReport][agentcalled]\x20sending\x20user:agentconnect\x20event:',_0x4c1c0e['uniqueid'],util['inspect'](this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x4c1c0e[_0x0a9e('0x22')]],{'showHidden':![],'depth':null}));this[_0x0a9e('0x1d')](util[_0x0a9e('0x35')](_0x0a9e('0x36'),_0x4c1c0e[_0x0a9e('0x21')]),_0x0a9e('0x4a'),this['channels'][_0x4c1c0e['uniqueid']][_0x4c1c0e['destuniqueid']]);}else if(!this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55][_0x0a9e('0x4b')]&&!this['channels'][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55][_0x0a9e('0x12')]){logger['info']('[%s][voiceAgentReport][agentconnect]\x20agent:%s\x20destuniqueid:%s\x20lastevent:answered_elsewhere',_0x4c1c0e[_0x0a9e('0x26')],this['channels'][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55]['membername'],_0x148f55);this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55][_0x0a9e('0x4b')]=!![];this['channels'][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55][_0x0a9e('0x4c')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55]['answeredelsewheredestinationuniqueid']=_0x4c1c0e[_0x0a9e('0x22')];this['channels'][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55]['answeredelsewheremembername']=_0x4c1c0e[_0x0a9e('0x21')];this['channels'][_0x4c1c0e['uniqueid']][_0x148f55]['lastevent']=_0x0a9e('0x4d');this['channels'][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55][_0x0a9e('0x4e')]=_0x0a9e('0x4d');logger[_0x0a9e('0x23')](_0x0a9e('0x4f'),_0x4c1c0e[_0x0a9e('0x26')],util[_0x0a9e('0x25')](this[_0x0a9e('0x8')][_0x4c1c0e['uniqueid']][_0x148f55],{'showHidden':![],'depth':null}));ami[_0x0a9e('0x1d')](_0x0a9e('0x50'),this[_0x0a9e('0x8')][_0x4c1c0e[_0x0a9e('0x26')]][_0x148f55]);}}}}}}catch(_0xb83dfd){logger[_0x0a9e('0x37')]('[%s][voiceAgentReport][agentconnect]',_0x4c1c0e[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0xb83dfd,{'showHidden':![],'depth':null}));}};VoiceAgentReport['prototype'][_0x0a9e('0x51')]=function(_0x5cc8fb){try{if(this[_0x0a9e('0x1e')](_0x5cc8fb)){logger['debug']('[%s][voiceAgentReport][agentringnoanswer]\x20event:',_0x5cc8fb['uniqueid'],util[_0x0a9e('0x25')](_0x5cc8fb,{'showHidden':![],'depth':null}));if(this['channels'][_0x5cc8fb[_0x0a9e('0x26')]]&&this[_0x0a9e('0x8')][_0x5cc8fb[_0x0a9e('0x26')]][_0x5cc8fb[_0x0a9e('0x22')]]){logger[_0x0a9e('0x20')](_0x0a9e('0x52'),_0x5cc8fb['uniqueid'],_0x5cc8fb[_0x0a9e('0x21')],_0x5cc8fb['destuniqueid']);this[_0x0a9e('0x8')][_0x5cc8fb[_0x0a9e('0x26')]][_0x5cc8fb[_0x0a9e('0x22')]]['agentringnoanswer']=!![];this[_0x0a9e('0x8')][_0x5cc8fb[_0x0a9e('0x26')]][_0x5cc8fb[_0x0a9e('0x22')]][_0x0a9e('0x4c')]=moment()['format'](_0x0a9e('0x27'));this[_0x0a9e('0x8')][_0x5cc8fb['uniqueid']][_0x5cc8fb[_0x0a9e('0x22')]][_0x0a9e('0x53')]=_0x0a9e('0x54');this[_0x0a9e('0x8')][_0x5cc8fb[_0x0a9e('0x26')]][_0x5cc8fb['destuniqueid']][_0x0a9e('0x4e')]=_0x0a9e('0x54');logger[_0x0a9e('0x23')]('[%s][voiceAgentReport][agentringnoanswer]\x20sending\x20agentringnoanswer\x20event:',_0x5cc8fb[_0x0a9e('0x26')],util['inspect'](this['channels'][_0x5cc8fb[_0x0a9e('0x26')]][_0x5cc8fb[_0x0a9e('0x22')]],{'showHidden':![],'depth':null}));ami[_0x0a9e('0x1d')](_0x0a9e('0x55'),this[_0x0a9e('0x8')][_0x5cc8fb[_0x0a9e('0x26')]][_0x5cc8fb[_0x0a9e('0x22')]]);}}}catch(_0x54a37d){logger[_0x0a9e('0x37')](_0x0a9e('0x56'),_0x5cc8fb[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x54a37d,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x11')]=function(_0x320898){try{if(this[_0x0a9e('0x1e')](_0x320898)){logger[_0x0a9e('0x23')](_0x0a9e('0x57'),_0x320898['uniqueid'],util[_0x0a9e('0x25')](_0x320898,{'showHidden':![],'depth':null}));if(this[_0x0a9e('0x8')][_0x320898[_0x0a9e('0x26')]]){for(var _0x4edbb0 in this[_0x0a9e('0x8')][_0x320898[_0x0a9e('0x26')]]){if(this['channels'][_0x320898[_0x0a9e('0x26')]][_0x0a9e('0x58')](_0x4edbb0)&&!this[_0x0a9e('0x8')][_0x320898[_0x0a9e('0x26')]][_0x4edbb0][_0x0a9e('0x4b')]&&!this['channels'][_0x320898['uniqueid']][_0x4edbb0]['agentcomplete']){logger[_0x0a9e('0x20')](_0x0a9e('0x59'),_0x320898[_0x0a9e('0x26')],this[_0x0a9e('0x8')][_0x320898[_0x0a9e('0x26')]][_0x4edbb0][_0x0a9e('0x21')],_0x4edbb0);this[_0x0a9e('0x8')][_0x320898[_0x0a9e('0x26')]][_0x4edbb0]['agentringnoanswer']=!![];this[_0x0a9e('0x8')][_0x320898[_0x0a9e('0x26')]][_0x4edbb0][_0x0a9e('0x4c')]=moment()['format'](_0x0a9e('0x27'));this['channels'][_0x320898[_0x0a9e('0x26')]][_0x4edbb0][_0x0a9e('0x53')]='abandoned';this[_0x0a9e('0x8')][_0x320898[_0x0a9e('0x26')]][_0x4edbb0][_0x0a9e('0x4e')]=_0x0a9e('0x5a');logger['debug'](_0x0a9e('0x5b'),_0x320898[_0x0a9e('0x26')],util[_0x0a9e('0x25')](this[_0x0a9e('0x8')][_0x320898['uniqueid']][_0x4edbb0],{'showHidden':![],'depth':null}));ami[_0x0a9e('0x1d')](_0x0a9e('0x5c'),this[_0x0a9e('0x8')][_0x320898[_0x0a9e('0x26')]][_0x4edbb0]);}}}}}catch(_0x4abc8f){logger[_0x0a9e('0x37')](_0x0a9e('0x5d'),_0x320898[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x4abc8f,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x13')]=function(_0x40fc56){try{if(this[_0x0a9e('0x1e')](_0x40fc56)){logger[_0x0a9e('0x23')](_0x0a9e('0x5e'),_0x40fc56[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x40fc56,{'showHidden':![],'depth':null}));if(this[_0x0a9e('0x8')][_0x40fc56[_0x0a9e('0x26')]]){for(var _0x5b35db in this[_0x0a9e('0x8')][_0x40fc56[_0x0a9e('0x26')]]){if(this[_0x0a9e('0x8')][_0x40fc56['uniqueid']][_0x0a9e('0x58')](_0x5b35db)){if(this[_0x0a9e('0x8')][_0x40fc56[_0x0a9e('0x26')]][_0x5b35db][_0x0a9e('0x3c')]&&!this['channels'][_0x40fc56['uniqueid']][_0x5b35db][_0x0a9e('0x12')]){logger[_0x0a9e('0x20')]('[%s][voiceAgentReport][agentcomplete]\x20agent:%s\x20destuniqueid:%s\x20lastevent:complete',_0x40fc56[_0x0a9e('0x26')],this['channels'][_0x40fc56[_0x0a9e('0x26')]][_0x5b35db][_0x0a9e('0x21')],_0x5b35db);this['channels'][_0x40fc56[_0x0a9e('0x26')]][_0x5b35db][_0x0a9e('0x12')]=!![];this[_0x0a9e('0x8')][_0x40fc56[_0x0a9e('0x26')]][_0x5b35db][_0x0a9e('0x5f')]=moment()[_0x0a9e('0x35')](_0x0a9e('0x27'));this['channels'][_0x40fc56[_0x0a9e('0x26')]][_0x5b35db][_0x0a9e('0x53')]=_0x0a9e('0x60');this[_0x0a9e('0x8')][_0x40fc56['uniqueid']][_0x5b35db][_0x0a9e('0x4e')]=_0x40fc56[_0x0a9e('0x4e')]=='transfer'?_0x0a9e('0x61'):_0x40fc56['reason'];this[_0x0a9e('0x8')][_0x40fc56[_0x0a9e('0x26')]][_0x5b35db][_0x0a9e('0x62')]=_0x40fc56[_0x0a9e('0x62')];if(this['voiceQueues'][_0x40fc56['queue']]&&this[_0x0a9e('0x9')][_0x40fc56[_0x0a9e('0x28')]][_0x0a9e('0x63')]){this['channels'][_0x40fc56[_0x0a9e('0x26')]][_0x5b35db][_0x0a9e('0x64')]=this['voiceQueues'][_0x40fc56['queue']][_0x0a9e('0x65')];this['channels'][_0x40fc56['uniqueid']][_0x5b35db]['agentacw']=!![];}this[_0x0a9e('0xa')][_0x40fc56[_0x0a9e('0x32')]]=_[_0x0a9e('0x2d')](this[_0x0a9e('0xa')][_0x40fc56[_0x0a9e('0x32')]],[_0x0a9e('0x28'),'destconnectedlinenum']);logger[_0x0a9e('0x23')]('[%s][voiceAgentReport][agentcomplete]\x20sending\x20agentcomplete\x20event:',_0x40fc56[_0x0a9e('0x26')],util[_0x0a9e('0x25')](this[_0x0a9e('0x8')][_0x40fc56[_0x0a9e('0x26')]][_0x5b35db],{'showHidden':![],'depth':null}));ami['emit'](_0x0a9e('0x66'),this[_0x0a9e('0x8')][_0x40fc56[_0x0a9e('0x26')]][_0x5b35db]);logger['debug'](_0x0a9e('0x67'),_0x40fc56[_0x0a9e('0x26')],util[_0x0a9e('0x25')]({'id':this[_0x0a9e('0xa')][_0x40fc56[_0x0a9e('0x32')]]['id'],'destaccountcode':_0x40fc56[_0x0a9e('0x68')]},{'showHidden':![],'depth':null}));this[_0x0a9e('0x1d')](util[_0x0a9e('0x35')]('user:%s',_0x40fc56[_0x0a9e('0x21')]),_0x0a9e('0x69'),{'id':this['agents'][_0x40fc56[_0x0a9e('0x32')]]['id'],'destaccountcode':_0x40fc56[_0x0a9e('0x68')]});}}}}}}catch(_0x3a1974){logger['error'](_0x0a9e('0x6a'),_0x40fc56['uniqueid'],util[_0x0a9e('0x25')](_0x3a1974,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x15')]=function(_0x1f29bd){try{if(this[_0x0a9e('0x1e')](_0x1f29bd)){logger[_0x0a9e('0x23')](_0x0a9e('0x6b'),_0x1f29bd[_0x0a9e('0x26')],util['inspect'](_0x1f29bd,{'showHidden':![],'depth':null}));this[_0x0a9e('0x6c')](_0x1f29bd[_0x0a9e('0x26')],_[_0x0a9e('0x6d')](_0x1f29bd[_0x0a9e('0x6e')])[0x0],_0x1f29bd[_0x0a9e('0x6f')]);if(this[_0x0a9e('0x8')][_0x1f29bd[_0x0a9e('0x26')]]){for(var _0x33f0c9 in this[_0x0a9e('0x8')][_0x1f29bd[_0x0a9e('0x26')]]){if(this[_0x0a9e('0x8')][_0x1f29bd[_0x0a9e('0x26')]][_0x0a9e('0x58')](_0x33f0c9)){logger['info'](_0x0a9e('0x70'),_0x1f29bd[_0x0a9e('0x26')],_0x33f0c9,_[_0x0a9e('0x6d')](_0x1f29bd[_0x0a9e('0x6e')])[0x0],_0x1f29bd[_0x0a9e('0x6f')]);if(_['isUndefined'](this[_0x0a9e('0x8')][_0x1f29bd[_0x0a9e('0x26')]][_0x33f0c9]['variables'])){this[_0x0a9e('0x8')][_0x1f29bd['uniqueid']][_0x33f0c9][_0x0a9e('0xb')]={};}this[_0x0a9e('0x8')][_0x1f29bd[_0x0a9e('0x26')]][_0x33f0c9][_0x0a9e('0xb')]=this['variables'][_0x1f29bd[_0x0a9e('0x26')]];}}}}}catch(_0x4cf72d){logger[_0x0a9e('0x37')](_0x0a9e('0x71'),_0x1f29bd['uniqueid'],util[_0x0a9e('0x25')](_0x4cf72d,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x6c')]=function(_0x4ab276,_0x4c788f,_0x1b82b7){var _0x6ba2be=[_0x0a9e('0x72'),_0x0a9e('0x73'),_0x0a9e('0x74'),_0x0a9e('0x75'),_0x0a9e('0x76'),_0x0a9e('0x77'),_0x0a9e('0x78'),'rtpaudioqosrttbridged',_0x0a9e('0x79'),'sipuri',_0x0a9e('0x7a'),_0x0a9e('0x7b'),_0x0a9e('0x7c'),_0x0a9e('0x7d'),_0x0a9e('0x7e'),'memberlastcall',_0x0a9e('0x21'),_0x0a9e('0x7f'),_0x0a9e('0x80')];if(!_[_0x0a9e('0x81')](_0x4c788f)&&!_[_0x0a9e('0x82')](_0x6ba2be,_0x4c788f)){if(_['isUndefined'](this['variables'][_0x4ab276])){this[_0x0a9e('0xb')][_0x4ab276]={};}this['variables'][_0x4ab276][_0x4c788f]=_0x1b82b7;}};VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x17')]=function(_0x4672e1){try{if(this[_0x0a9e('0x1e')](_0x4672e1)){logger[_0x0a9e('0x23')](_0x0a9e('0x83'),_0x4672e1['uniqueid'],util['inspect'](_0x4672e1,{'showHidden':![],'depth':null}));if(this[_0x0a9e('0x8')][_0x4672e1['uniqueid']]){for(var _0x2469d1 in this['channels'][_0x4672e1[_0x0a9e('0x26')]]){if(this['channels'][_0x4672e1['uniqueid']][_0x0a9e('0x58')](_0x2469d1)){if(this[_0x0a9e('0x8')][_0x4672e1['uniqueid']][_0x2469d1][_0x0a9e('0x4e')]==_0x0a9e('0x84')&&this[_0x0a9e('0x8')][_0x4672e1[_0x0a9e('0x26')]][_0x2469d1][_0x0a9e('0x12')]){logger['info']('[%s][voiceAgentReport][hangup]\x20destuniqueid:%s',_0x4672e1[_0x0a9e('0x26')],_0x2469d1);this[_0x0a9e('0x8')][_0x4672e1[_0x0a9e('0x26')]][_0x2469d1][_0x0a9e('0x5f')]=moment()[_0x0a9e('0x35')]('YYYY-MM-DD\x20HH:mm:ss');}}}logger[_0x0a9e('0x23')](_0x0a9e('0x85'),_0x4672e1['uniqueid'],util[_0x0a9e('0x25')](_[_0x0a9e('0x86')](this[_0x0a9e('0x8')][_0x4672e1[_0x0a9e('0x26')]]),{'showHidden':![],'depth':null}));ami[_0x0a9e('0x1d')](_0x0a9e('0x87'),_[_0x0a9e('0x86')](this[_0x0a9e('0x8')][_0x4672e1[_0x0a9e('0x26')]]));delete this[_0x0a9e('0x8')][_0x4672e1['uniqueid']];}if(this[_0x0a9e('0xb')][_0x4672e1[_0x0a9e('0x26')]]){delete this[_0x0a9e('0xb')][_0x4672e1[_0x0a9e('0x26')]];}}}catch(_0x1d0b02){logger['error']('[%s][voiceAgentReport][hangup]',_0x4672e1[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x1d0b02,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x88')]=function(_0x34f7b5){try{if(this['isNotNull'](_0x34f7b5)){logger[_0x0a9e('0x23')](_0x0a9e('0x89'),_0x34f7b5[_0x0a9e('0x26')],util['inspect'](_0x34f7b5,{'showHidden':![],'depth':null}));if(this[_0x0a9e('0x8')][_0x34f7b5['transfereeuniqueid']]){for(var _0x2144ca in this['channels'][_0x34f7b5[_0x0a9e('0x8a')]]){if(this[_0x0a9e('0x8')][_0x34f7b5[_0x0a9e('0x8a')]]['hasOwnProperty'](_0x2144ca)){if(_0x34f7b5[_0x0a9e('0x8b')]===_0x2144ca){logger['info'](_0x0a9e('0x8c'),_0x34f7b5[_0x0a9e('0x26')],this[_0x0a9e('0x8')][_0x34f7b5[_0x0a9e('0x8a')]][_0x2144ca][_0x0a9e('0x21')],_0x2144ca);var _0x1bee04=moment();this[_0x0a9e('0x8')][_0x34f7b5[_0x0a9e('0x8a')]][_0x2144ca][_0x0a9e('0x12')]=!![];this[_0x0a9e('0x8')][_0x34f7b5[_0x0a9e('0x8a')]][_0x2144ca][_0x0a9e('0x5f')]=moment()[_0x0a9e('0x35')](_0x0a9e('0x27'));this[_0x0a9e('0x8')][_0x34f7b5[_0x0a9e('0x8a')]][_0x2144ca]['lastevent']='complete';this[_0x0a9e('0x8')][_0x34f7b5['transfereeuniqueid']][_0x2144ca][_0x0a9e('0x4e')]=_0x0a9e('0x84');this['channels'][_0x34f7b5[_0x0a9e('0x8a')]][_0x2144ca][_0x0a9e('0x62')]=_0x1bee04[_0x0a9e('0x8d')](this[_0x0a9e('0x8')][_0x34f7b5['transfereeuniqueid']][_0x2144ca][_0x0a9e('0x3c')],_0x0a9e('0x8e'));}}}}if(this[_0x0a9e('0x8')][_0x34f7b5[_0x0a9e('0x8f')]]){var _0x5d0e1f=this[_0x0a9e('0x8')][_0x34f7b5[_0x0a9e('0x8f')]];this[_0x0a9e('0x8')][_0x34f7b5['secondtransfereruniqueid']]=this[_0x0a9e('0x8')][_0x34f7b5[_0x0a9e('0x8a')]];this[_0x0a9e('0x8')][_0x34f7b5['transfereeuniqueid']]=_0x5d0e1f;}}}catch(_0x303f75){logger[_0x0a9e('0x37')](_0x0a9e('0x90'),_0x34f7b5[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x303f75,{'showHidden':![],'depth':null}));}};VoiceAgentReport['prototype'][_0x0a9e('0x1b')]=function(_0x289e65){try{if(this['isNotNull'](_0x289e65)){logger[_0x0a9e('0x23')](_0x0a9e('0x91'),_0x289e65[_0x0a9e('0x26')],util['inspect'](_0x289e65,{'showHidden':![],'depth':null}));if(this['channels'][_0x289e65['transfereeuniqueid']]){for(var _0x1015aa in this[_0x0a9e('0x8')][_0x289e65['transfereeuniqueid']]){if(this[_0x0a9e('0x8')][_0x289e65[_0x0a9e('0x8a')]][_0x0a9e('0x58')](_0x1015aa)){if(_0x289e65['transfereruniqueid']===_0x1015aa){logger[_0x0a9e('0x20')](_0x0a9e('0x92'),_0x289e65[_0x0a9e('0x26')],this[_0x0a9e('0x8')][_0x289e65[_0x0a9e('0x8a')]][_0x1015aa][_0x0a9e('0x21')],_0x1015aa);var _0x40e6e7=moment();this[_0x0a9e('0x8')][_0x289e65[_0x0a9e('0x8a')]][_0x1015aa]['agentcomplete']=!![];this[_0x0a9e('0x8')][_0x289e65['transfereeuniqueid']][_0x1015aa][_0x0a9e('0x5f')]=_0x40e6e7;this[_0x0a9e('0x8')][_0x289e65[_0x0a9e('0x8a')]][_0x1015aa][_0x0a9e('0x53')]=_0x0a9e('0x60');this[_0x0a9e('0x8')][_0x289e65['transfereeuniqueid']][_0x1015aa][_0x0a9e('0x4e')]=_0x0a9e('0x84');this[_0x0a9e('0x8')][_0x289e65[_0x0a9e('0x8a')]][_0x1015aa]['talktime']=_0x40e6e7[_0x0a9e('0x8d')](this[_0x0a9e('0x8')][_0x289e65[_0x0a9e('0x8a')]][_0x1015aa][_0x0a9e('0x3c')],_0x0a9e('0x8e'));}}}}}}catch(_0x2be526){logger[_0x0a9e('0x37')](_0x0a9e('0x93'),_0x289e65[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x2be526,{'showHidden':![],'depth':null}));}};VoiceAgentReport['prototype'][_0x0a9e('0x18')]=function(_0x88b25f){var _0x2ff265='';try{if(this[_0x0a9e('0x1e')](_0x88b25f)){logger[_0x0a9e('0x23')](_0x0a9e('0x94'),_0x88b25f[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x88b25f,{'showHidden':![],'depth':null}));if(_0x88b25f['channel']){_0x2ff265=_0x88b25f[_0x0a9e('0x95')][_0x0a9e('0x96')](0x0,_0x88b25f[_0x0a9e('0x95')]['lastIndexOf']('-'));if(this[_0x0a9e('0xa')][_0x2ff265]){logger[_0x0a9e('0x20')](_0x0a9e('0x97'),_0x88b25f[_0x0a9e('0x26')],_0x2ff265);this[_0x0a9e('0xa')][_0x2ff265][_0x0a9e('0x98')]=!![];}}}}catch(_0x424f1b){logger[_0x0a9e('0x37')](_0x0a9e('0x99'),_0x88b25f[_0x0a9e('0x26')],util['inspect'](_0x424f1b,{'showHidden':![],'depth':null}));}};VoiceAgentReport[_0x0a9e('0x1c')][_0x0a9e('0x9a')]=function(_0x15a9ed){var _0x3db98f='';try{if(this[_0x0a9e('0x1e')](_0x15a9ed)){logger[_0x0a9e('0x23')]('[%s][voiceAgentReport][musiconholdstop]\x20event:',_0x15a9ed[_0x0a9e('0x26')],util['inspect'](_0x15a9ed,{'showHidden':![],'depth':null}));if(_0x15a9ed['channel']){_0x3db98f=_0x15a9ed['channel'][_0x0a9e('0x96')](0x0,_0x15a9ed[_0x0a9e('0x95')][_0x0a9e('0x9b')]('-'));if(this[_0x0a9e('0xa')][_0x3db98f]){logger['info'](_0x0a9e('0x9c'),_0x15a9ed[_0x0a9e('0x26')],_0x3db98f);this[_0x0a9e('0xa')][_0x3db98f][_0x0a9e('0x98')]=![];}}}}catch(_0x2c8d1d){logger['error']('[%s][voiceAgentReport][musiconholdstop]',_0x15a9ed[_0x0a9e('0x26')],util[_0x0a9e('0x25')](_0x2c8d1d,{'showHidden':![],'depth':null}));}};module[_0x0a9e('0x9d')]=VoiceAgentReport;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x707e=['[%s][voiceCallReport][hangup]\x20sending\x20user:agentcomplete\x20event:','user:agentcomplete','length','transferType','resolve','isEmpty','getSettings','Action','catch','then','StopMixMonitor','finally','webbar:stopmonitors','event','BlindTransfer','outbound','[%s][voiceCallReport][hangup]\x20sending\x20hangup\x20event:','[%s][voiceCallReport][hangup]','syncAttendedTransfer','[%s][voiceCallReport][attendedtransfer]\x20transfercalleridnum:%s\x20transferconnectedlinenum:%s','origtransferercalleridnum','transfertargetcalleridnum','[%s][voiceCallReport][attendedtransfer]\x20event:','transfereeuniqueid','transfercalleridnum','transferconnectedlinenum','secondtransfereruniqueid','ATTENDED','transfertargetuniqueid','origtransfereruniqueid','some','origtransfererlinkedid','routeid','[%s][voiceCallReport][attendedtransfer]','extension','[%s][voiceCallReport][blindtransfer]\x20event:','transfereecalleridnum','BLIND','transfereruniqueid','transfererchannel','[%s][voiceCallReport][blindtransfer]','[%s][voiceCallReport][musiconholdstart]\x20event:','mohstarttime','[%s][voiceCallReport][musiconholdstart]\x20mohstarttime:%s','[%s][voiceCallReport][musiconholdstart]','[%s][voiceCallReport][musiconholdstop]\x20event:','mohtime','milliseconds','[%s][voiceCallReport][musiconholdstop]','exports','moment','util','path','ioredis','../../../config/logger','ami','../ami','../model/channel','../rpc/setting','set','queue','dial','playback','voicemail','NO\x20ANSWER','FAILED','ANSWERED','redis','channels','agents','blindTransfers','coreshowchannel','syncNewExten','bind','newexten','newchannel','syncNewChannel','newstate','syncNewState','varset','syncVarSet','hangup','syncHangup','newcallerid','attendedtransfer','blindtransfer','syncBlindTransfer','musiconholdstart','syncMusicOnHoldStart','actionCoreShowChannels','error','[voiceCallReport][coreshowchannels]','inspect','prototype','isNotNull','isUndefined','emit','syncNewCallerId','[%s][voiceCallReport][newcallerid]\x20calleridname:%s\x20calleridnum:%s','uniqueid','debug','[%s][voiceCallReport][newcallerid]\x20event:','linkedid','merge','pick','keys','from-sip','channel','exten','xcally-motion-preview','split','destconnectedlinenum','connectedlinenum','format','user:%s','user:agentconnect','accountcode','[%s][voiceCallReport][newcallerid]','[%s][voiceCallReport][newchannel]\x20event:','OutgoingSpoolFailed','[%s][voiceCallReport][newchannel]\x20context:%s\x20exten:%s','starttime','disposition','context','[%s][voiceCallReport][newchannel]\x20sending\x20user:agentconnect\x20event:','name','[%s][voiceCallReport][newexten]\x20event:','application','toLowerCase','applicationdata','appdata','startsWith','info','[%s][voiceCallReport][newexten]\x20application:%s\x20appdata:%s','duration','subtract','seconds','YYYY-MM-DD\x20HH:mm:ss','includes','lastapplication','lastdata','match','type','isNil','[%s][voiceCallReport][newexten]','[%s][voiceCallReport][newstate]\x20linkedid:%s\x20calleridname:%s\x20calleridnum:%s','calleridnum','[%s][voiceCallReport][newstate]\x20event:','channelstate','answered','holdtime','diff','connectedlinename','calleridname','toNumber','membername','answertime','UserId','routealias','[%s][voiceCallReport][newstate]\x20sending\x20user:agentconnect\x20event:','[%s][voiceCallReport][newstate]','[%s][voiceCallReport][mixMonitorFilename]\x20monitorFilename:%s','.wav49','replace','.WAV','monitorFilename','find','rec','[%s][voiceCallReport][mixMonitorFilename]','[%s][voiceCallReport][varset]\x20event:','variable','mixmonitor_filename','value','xmd-phone','[%s][voiceCallReport][varset]\x20variable:xmd-phone\x20value:%s','xmd-callerid','[%s][voiceCallReport][varset]\x20variable:xmd-callerid\x20value:%s','callerid','xmd-cdrtype','[%s][voiceCallReport][varset]\x20variable:xmd-cdrtype\x20value:%s','xmd-queue','[%s][voiceCallReport][varset]\x20variable:xmd-queue\x20value:%s','xmd-originatecalleridnum','originatecalleridnum','[%s][voiceCallReport][varset]\x20variable:xmd-destination\x20value:%s','destination','calleridpreview','xmcs-queue','[%s][voiceCallReport][varset]\x20variable:xmcs-queue\x20value:%s','[%s][voiceCallReport][varset]\x20variable:sipcallid\x20value:%s','sipcalluniqueid','parse','[%s][voiceCallReport][varset]\x20variable:mixmonitor_filename\x20value:%s','syncMixMonitorFilename','sipcallid','sipcalllinkedid','[%s][voiceCallReport][hangup]\x20event:','destinationchannel','[%s][voiceCallReport][hangup]\x20reason:%s','cause-txt','endtime','billableseconds','omit'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x707e,0xfd));var _0xe707=function(_0x45bf86,_0x75586e){_0x45bf86=_0x45bf86-0x0;var _0x1f02b7=_0x707e[_0x45bf86];return _0x1f02b7;};'use strict';var _=require('lodash');var moment=require(_0xe707('0x0'));var util=require(_0xe707('0x1'));var path=require(_0xe707('0x2'));var Redis=require(_0xe707('0x3'));var config=require('../../../config/environment');var logger=require(_0xe707('0x4'))(_0xe707('0x5'));var ami=require(_0xe707('0x6'));var Channel=require(_0xe707('0x7'));var RpcSetting=require(_0xe707('0x8'));var applications=[_0xe707('0x9'),_0xe707('0xa'),'agi',_0xe707('0xb'),_0xe707('0xc'),_0xe707('0xd')];var dispositions=[_0xe707('0xe'),_0xe707('0xf'),_0xe707('0xf'),_0xe707('0xe'),_0xe707('0xe'),'NO\x20ANSWER',_0xe707('0x10'),'BUSY',_0xe707('0xf'),_0xe707('0xf'),'FAILED'];config[_0xe707('0x11')]=_['defaults'](config['redis'],{'host':'localhost','port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0xe707('0x11')]));function VoiceCallReport(_0xde1f80){this[_0xe707('0x12')]=_0xde1f80[_0xe707('0x12')];this[_0xe707('0x13')]=_0xde1f80['agents'];this[_0xe707('0x14')]={};ami['on'](_0xe707('0x15'),this[_0xe707('0x16')][_0xe707('0x17')](this));ami['on'](_0xe707('0x18'),this['syncNewExten']['bind'](this));ami['on'](_0xe707('0x19'),this[_0xe707('0x1a')][_0xe707('0x17')](this));ami['on'](_0xe707('0x1b'),this[_0xe707('0x1c')]['bind'](this));ami['on'](_0xe707('0x1d'),this[_0xe707('0x1e')][_0xe707('0x17')](this));ami['on'](_0xe707('0x1f'),this[_0xe707('0x20')][_0xe707('0x17')](this));ami['on'](_0xe707('0x21'),this['syncNewCallerId'][_0xe707('0x17')](this));ami['on'](_0xe707('0x22'),this['syncAttendedTransfer'][_0xe707('0x17')](this));ami['on'](_0xe707('0x23'),this[_0xe707('0x24')][_0xe707('0x17')](this));ami['on'](_0xe707('0x25'),this[_0xe707('0x26')][_0xe707('0x17')](this));ami['on']('musiconholdstop',this['syncMusicOnHoldStop'][_0xe707('0x17')](this));try{logger['info']('[voiceCallReport][coreshowchannels]\x20started');ami[_0xe707('0x27')]();}catch(_0x240ce){logger[_0xe707('0x28')](_0xe707('0x29'),util[_0xe707('0x2a')](_0x240ce,{'showHidden':![],'depth':null}));}}VoiceCallReport[_0xe707('0x2b')][_0xe707('0x2c')]=function(_0x74c02f){return _0x74c02f!==null&&!_[_0xe707('0x2d')](_0x74c02f);};VoiceCallReport['prototype'][_0xe707('0x2e')]=function(_0x10f6c4,_0x243580,_0x5e3686){io['to'](_0x10f6c4)[_0xe707('0x2e')](_0x243580,_0x5e3686);};VoiceCallReport[_0xe707('0x2b')][_0xe707('0x2f')]=function(_0x3e923b){try{if(this[_0xe707('0x2c')](_0x3e923b)){logger['info'](_0xe707('0x30'),_0x3e923b[_0xe707('0x31')],_0x3e923b['calleridname'],_0x3e923b['calleridnum']);logger[_0xe707('0x32')](_0xe707('0x33'),_0x3e923b[_0xe707('0x31')],util[_0xe707('0x2a')](_0x3e923b,{'showHidden':![],'depth':null}));if(_0x3e923b[_0xe707('0x31')]===_0x3e923b[_0xe707('0x34')]){if(!_['isUndefined'](this[_0xe707('0x12')][_0x3e923b['uniqueid']])){_[_0xe707('0x35')](this[_0xe707('0x12')][_0x3e923b['uniqueid']],_[_0xe707('0x36')](_0x3e923b,_[_0xe707('0x37')](this[_0xe707('0x12')][_0x3e923b[_0xe707('0x31')]])));}}if(_0x3e923b['context']===_0xe707('0x38')){if(this[_0xe707('0x13')][_0x3e923b[_0xe707('0x39')]['split']('-')[0x0]]){if(_0x3e923b[_0xe707('0x3a')]==_0xe707('0x3b')){this[_0xe707('0x13')][_0x3e923b['channel'][_0xe707('0x3c')]('-')[0x0]][_0xe707('0x3d')]=_0x3e923b[_0xe707('0x3e')];this[_0xe707('0x2e')](util[_0xe707('0x3f')](_0xe707('0x40'),this[_0xe707('0x13')][_0x3e923b[_0xe707('0x39')][_0xe707('0x3c')]('-')[0x0]]['name']),_0xe707('0x41'),{'destaccountcode':this[_0xe707('0x13')][_0x3e923b[_0xe707('0x39')][_0xe707('0x3c')]('-')[0x0]][_0xe707('0x42')],'destconnectedlinenum':_0x3e923b[_0xe707('0x3e')]});}}}}}catch(_0x39fe06){logger[_0xe707('0x28')](_0xe707('0x43'),_0x3e923b[_0xe707('0x31')],util[_0xe707('0x2a')](_0x39fe06,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0xe707('0x2b')][_0xe707('0x1a')]=function(_0x3fdd88){try{if(this[_0xe707('0x2c')](_0x3fdd88)){logger[_0xe707('0x32')](_0xe707('0x44'),_0x3fdd88[_0xe707('0x31')],util[_0xe707('0x2a')](_0x3fdd88,{'showHidden':![],'depth':null}));if(this[_0xe707('0x12')][_0x3fdd88[_0xe707('0x31')]])return;if(_0x3fdd88['channel']===_0xe707('0x45'))return;if(_0x3fdd88[_0xe707('0x31')]!==_0x3fdd88[_0xe707('0x34')]&&!this[_0xe707('0x14')][_0x3fdd88[_0xe707('0x34')]])return;logger['info'](_0xe707('0x46'),_0x3fdd88[_0xe707('0x31')],_0x3fdd88['context'],_0x3fdd88[_0xe707('0x3a')]);this['channels'][_0x3fdd88['uniqueid']]=new Channel();this['channels'][_0x3fdd88[_0xe707('0x31')]][_0xe707('0x47')]=moment()[_0xe707('0x3f')]('YYYY-MM-DD\x20HH:mm:ss');this[_0xe707('0x12')][_0x3fdd88[_0xe707('0x31')]][_0xe707('0x48')]=dispositions[_['toNumber'](_0x3fdd88['channelstate'])];_[_0xe707('0x35')](this[_0xe707('0x12')][_0x3fdd88['uniqueid']],_[_0xe707('0x36')](_0x3fdd88,_[_0xe707('0x37')](this[_0xe707('0x12')][_0x3fdd88['uniqueid']])));if(_0x3fdd88[_0xe707('0x49')]===_0xe707('0x38')){if(this['agents'][_0x3fdd88['channel'][_0xe707('0x3c')]('-')[0x0]]){if(_[_0xe707('0x2d')](this[_0xe707('0x13')][_0x3fdd88[_0xe707('0x39')]['split']('-')[0x0]][_0xe707('0x3d')])){this[_0xe707('0x13')][_0x3fdd88[_0xe707('0x39')][_0xe707('0x3c')]('-')[0x0]][_0xe707('0x3d')]=_0x3fdd88[_0xe707('0x3a')];logger[_0xe707('0x32')](_0xe707('0x4a'),_0x3fdd88[_0xe707('0x31')],util['inspect']({'id':this[_0xe707('0x13')][_0x3fdd88[_0xe707('0x39')]['split']('-')[0x0]]['id'],'destaccountcode':this['agents'][_0x3fdd88[_0xe707('0x39')]['split']('-')[0x0]]['accountcode'],'destconnectedlinenum':_0x3fdd88['exten']},{'showHidden':![],'depth':null}));this[_0xe707('0x2e')](util[_0xe707('0x3f')](_0xe707('0x40'),this[_0xe707('0x13')][_0x3fdd88[_0xe707('0x39')]['split']('-')[0x0]][_0xe707('0x4b')]),'user:agentconnect',{'id':this[_0xe707('0x13')][_0x3fdd88[_0xe707('0x39')][_0xe707('0x3c')]('-')[0x0]]['id'],'destaccountcode':this[_0xe707('0x13')][_0x3fdd88[_0xe707('0x39')][_0xe707('0x3c')]('-')[0x0]]['accountcode'],'destconnectedlinenum':_0x3fdd88[_0xe707('0x3a')]});}}}}}catch(_0x1aa72a){logger[_0xe707('0x28')]('[%s][voiceCallReport][newchannel]',_0x3fdd88['uniqueid'],util[_0xe707('0x2a')](_0x1aa72a,{'showHidden':![],'depth':null}));}};VoiceCallReport['prototype']['syncNewExten']=function(_0x460572){try{if(this[_0xe707('0x2c')](_0x460572)){logger[_0xe707('0x32')](_0xe707('0x4c'),_0x460572['uniqueid'],util['inspect'](_0x460572,{'showHidden':![],'depth':null}));if(_0x460572['channel']===_0xe707('0x45')||_0x460572[_0xe707('0x3a')]==='h')return;if(_0x460572[_0xe707('0x31')]===_0x460572[_0xe707('0x34')]||this[_0xe707('0x14')][_0x460572[_0xe707('0x34')]]){_0x460572[_0xe707('0x4d')]=_0x460572['application'][_0xe707('0x4e')]();_0x460572[_0xe707('0x4f')]=_0x460572[_0xe707('0x50')]&&_0x460572[_0xe707('0x50')][_0xe707('0x51')]('CDR(routeAlias)')?_0x460572['appdata']:(_0x460572[_0xe707('0x50')]||_0x460572[_0xe707('0x4f')])[_0xe707('0x4e')]();logger[_0xe707('0x52')](_0xe707('0x53'),_0x460572[_0xe707('0x31')],_0x460572[_0xe707('0x4d')],_0x460572['applicationdata']);if(_[_0xe707('0x2d')](this[_0xe707('0x12')][_0x460572['uniqueid']])){this[_0xe707('0x12')][_0x460572[_0xe707('0x31')]]=new Channel();this[_0xe707('0x12')][_0x460572['uniqueid']]['starttime']=_0x460572[_0xe707('0x54')]?moment()[_0xe707('0x55')](moment['duration'](_0x460572[_0xe707('0x54')])[_0xe707('0x56')](),_0xe707('0x56'))[_0xe707('0x3f')](_0xe707('0x57')):moment()[_0xe707('0x3f')](_0xe707('0x57'));this['channels'][_0x460572[_0xe707('0x31')]][_0xe707('0x48')]='NO\x20ANSWER';}_[_0xe707('0x35')](this[_0xe707('0x12')][_0x460572[_0xe707('0x31')]],_[_0xe707('0x36')](_0x460572,_[_0xe707('0x37')](this['channels'][_0x460572[_0xe707('0x31')]])));if(_[_0xe707('0x58')](applications,_0x460572['application'])){this['channels'][_0x460572[_0xe707('0x31')]][_0xe707('0x59')]=_0x460572[_0xe707('0x4d')];this[_0xe707('0x12')][_0x460572['uniqueid']][_0xe707('0x5a')]=_0x460572[_0xe707('0x4f')];if(_0x460572[_0xe707('0x4d')]===_0xe707('0x9')&&_['startsWith'](_0x460572['applicationdata']['toLowerCase'](),'cdr(')){var _0x489154=_0x460572[_0xe707('0x4f')][_0xe707('0x3c')]('=');var _0x5a32f9=_0x489154[0x0]['toLowerCase']()[_0xe707('0x5b')](/cdr\((.*)\)/);if(_0x5a32f9){if(_0x5a32f9[0x1]===_0xe707('0x5c')&&!_[_0xe707('0x5d')](this[_0xe707('0x12')][_0x460572[_0xe707('0x31')]][_0x5a32f9[0x1]]))return;this['channels'][_0x460572[_0xe707('0x31')]][_0x5a32f9[0x1]]=_0x489154[0x1];}}else if(_0x460572[_0xe707('0x4d')]==='queue'){this[_0xe707('0x12')][_0x460572['uniqueid']]['queue']=_0x460572['applicationdata'][_0xe707('0x3c')](',')[0x0];}}}}}catch(_0x9184be){logger[_0xe707('0x28')](_0xe707('0x5e'),_0x460572['uniqueid'],util[_0xe707('0x2a')](_0x9184be,{'showHidden':![],'depth':null}));}};VoiceCallReport['prototype'][_0xe707('0x1c')]=function(_0x1b551e){try{if(this[_0xe707('0x2c')](_0x1b551e)){logger[_0xe707('0x52')](_0xe707('0x5f'),_0x1b551e[_0xe707('0x31')],_0x1b551e[_0xe707('0x34')],_0x1b551e['calleridname'],_0x1b551e[_0xe707('0x60')]);logger['debug'](_0xe707('0x61'),_0x1b551e[_0xe707('0x31')],util['inspect'](_0x1b551e,{'showHidden':![],'depth':null}));if(_0x1b551e[_0xe707('0x62')]!=='6')return;if(_0x1b551e[_0xe707('0x31')]!==_0x1b551e[_0xe707('0x34')]){var _0x5963e6=moment();if(this['channels'][_0x1b551e[_0xe707('0x34')]]){if(!this[_0xe707('0x12')][_0x1b551e[_0xe707('0x34')]]['answered']){this['channels'][_0x1b551e['linkedid']][_0xe707('0x63')]=!![];this['channels'][_0x1b551e[_0xe707('0x34')]]['answertime']=_0x5963e6[_0xe707('0x3f')](_0xe707('0x57'));if(this['channels'][_0x1b551e['linkedid']]['starttime']){this['channels'][_0x1b551e[_0xe707('0x34')]][_0xe707('0x64')]=_0x5963e6[_0xe707('0x65')](this[_0xe707('0x12')][_0x1b551e[_0xe707('0x34')]][_0xe707('0x47')],_0xe707('0x56'));}}this[_0xe707('0x12')][_0x1b551e['linkedid']][_0xe707('0x34')]=_0x1b551e[_0xe707('0x31')];if(_0x1b551e[_0xe707('0x60')]!==_0xe707('0x3b')){this[_0xe707('0x12')][_0x1b551e['linkedid']]['connectedlinenum']=_0x1b551e[_0xe707('0x60')];}this['channels'][_0x1b551e[_0xe707('0x34')]][_0xe707('0x66')]=_0x1b551e[_0xe707('0x67')];this['channels'][_0x1b551e[_0xe707('0x34')]]['destinationchannel']=_0x1b551e[_0xe707('0x39')];this[_0xe707('0x12')][_0x1b551e[_0xe707('0x34')]][_0xe707('0x48')]=dispositions[_[_0xe707('0x68')](_0x1b551e[_0xe707('0x62')])];if(this[_0xe707('0x13')][_0x1b551e['channel'][_0xe707('0x3c')]('-')[0x0]]){this[_0xe707('0x12')][_0x1b551e['linkedid']]['UserId']=this[_0xe707('0x13')][_0x1b551e[_0xe707('0x39')][_0xe707('0x3c')]('-')[0x0]]['id'];this[_0xe707('0x12')][_0x1b551e[_0xe707('0x34')]][_0xe707('0x69')]=this[_0xe707('0x13')][_0x1b551e[_0xe707('0x39')][_0xe707('0x3c')]('-')[0x0]][_0xe707('0x4b')];}}if(this[_0xe707('0x12')][_0x1b551e[_0xe707('0x31')]]){if(!this[_0xe707('0x12')][_0x1b551e[_0xe707('0x31')]][_0xe707('0x63')]){this['channels'][_0x1b551e[_0xe707('0x31')]]['answered']=!![];this[_0xe707('0x12')][_0x1b551e[_0xe707('0x31')]][_0xe707('0x6a')]=_0x5963e6[_0xe707('0x3f')](_0xe707('0x57'));if(this[_0xe707('0x12')][_0x1b551e['uniqueid']][_0xe707('0x47')]){this[_0xe707('0x12')][_0x1b551e[_0xe707('0x31')]][_0xe707('0x64')]=_0x5963e6[_0xe707('0x65')](this[_0xe707('0x12')][_0x1b551e[_0xe707('0x31')]][_0xe707('0x47')],_0xe707('0x56'));}}if(_0x1b551e[_0xe707('0x60')]!==_0xe707('0x3b')){this[_0xe707('0x12')][_0x1b551e[_0xe707('0x31')]][_0xe707('0x3e')]=_0x1b551e[_0xe707('0x60')];}this['channels'][_0x1b551e['uniqueid']][_0xe707('0x66')]=_0x1b551e[_0xe707('0x67')];this['channels'][_0x1b551e['uniqueid']]['destinationchannel']=_0x1b551e[_0xe707('0x39')];this['channels'][_0x1b551e[_0xe707('0x31')]][_0xe707('0x48')]=dispositions[_[_0xe707('0x68')](_0x1b551e[_0xe707('0x62')])];}}else{if(this[_0xe707('0x12')][_0x1b551e[_0xe707('0x31')]]){if(this[_0xe707('0x13')][_0x1b551e[_0xe707('0x39')]['split']('-')[0x0]]){this[_0xe707('0x12')][_0x1b551e[_0xe707('0x31')]][_0xe707('0x6b')]=this[_0xe707('0x13')][_0x1b551e['channel'][_0xe707('0x3c')]('-')[0x0]]['id'];this[_0xe707('0x12')][_0x1b551e['uniqueid']]['membername']=this[_0xe707('0x13')][_0x1b551e[_0xe707('0x39')]['split']('-')[0x0]][_0xe707('0x4b')];}}}if(_0x1b551e['context']===_0xe707('0x38')){if(this[_0xe707('0x13')][_0x1b551e['channel'][_0xe707('0x3c')]('-')[0x0]]){this['agents'][_0x1b551e[_0xe707('0x39')]['split']('-')[0x0]][_0xe707('0x3d')]=_0x1b551e[_0xe707('0x3a')];var _0x55bbda,_0x328d41;if(this[_0xe707('0x12')][_0x1b551e[_0xe707('0x31')]]){_0x55bbda=this['channels'][_0x1b551e[_0xe707('0x31')]][_0xe707('0x6c')];_0x328d41=this[_0xe707('0x12')][_0x1b551e['uniqueid']][_0xe707('0xa')];}else if(this[_0xe707('0x12')][_0x1b551e[_0xe707('0x34')]]){_0x55bbda=this[_0xe707('0x12')][_0x1b551e[_0xe707('0x34')]][_0xe707('0x6c')];_0x328d41=this[_0xe707('0x12')][_0x1b551e[_0xe707('0x34')]]['queue'];}logger[_0xe707('0x32')](_0xe707('0x6d'),_0x1b551e[_0xe707('0x31')],util[_0xe707('0x2a')]({'id':this['agents'][_0x1b551e[_0xe707('0x39')][_0xe707('0x3c')]('-')[0x0]]['id'],'destaccountcode':this[_0xe707('0x13')][_0x1b551e[_0xe707('0x39')]['split']('-')[0x0]]['accountcode'],'destconnectedlinenum':_0x1b551e[_0xe707('0x3a')],'routealias':_0x55bbda,'queue':_0x328d41||undefined},{'showHidden':![],'depth':null}));this[_0xe707('0x2e')](util[_0xe707('0x3f')](_0xe707('0x40'),this[_0xe707('0x13')][_0x1b551e['channel'][_0xe707('0x3c')]('-')[0x0]][_0xe707('0x4b')]),_0xe707('0x41'),{'id':this[_0xe707('0x13')][_0x1b551e[_0xe707('0x39')][_0xe707('0x3c')]('-')[0x0]]['id'],'agentconnected':!![],'destaccountcode':this[_0xe707('0x13')][_0x1b551e[_0xe707('0x39')][_0xe707('0x3c')]('-')[0x0]]['accountcode'],'destconnectedlinenum':_0x1b551e[_0xe707('0x3a')],'routealias':_0x55bbda,'queue':_0x328d41||undefined});}}}}catch(_0x1cc762){logger[_0xe707('0x28')](_0xe707('0x6e'),_0x1b551e[_0xe707('0x31')],util['inspect'](_0x1cc762,{'showHidden':![],'depth':null}));}};VoiceCallReport['prototype']['syncMixMonitorFilename']=function(_0x144d88,_0x324264){try{if(this[_0xe707('0x12')][_0x144d88]){logger[_0xe707('0x52')](_0xe707('0x6f'),_0x144d88,_0x324264);this[_0xe707('0x12')][_0x144d88]['monitor']=!![];if(_['endsWith'](_0x324264,_0xe707('0x70'))){_0x324264=_0x324264[_0xe707('0x71')](_0xe707('0x70'),_0xe707('0x72'));}this[_0xe707('0x12')][_0x144d88][_0xe707('0x73')]=_0x324264;var _0x4b30c9=_[_0xe707('0x74')](this['channels'][_0x144d88]['monitors'],{'filename':_0x324264});if(_[_0xe707('0x5d')](_0x4b30c9)){this['channels'][_0x144d88]['monitors']['push']({'filename':_0x324264,'createdAt':moment()[_0xe707('0x3f')](_0xe707('0x57')),'mixmonitorid':'','status':_0xe707('0x75')});}}}catch(_0xccce){logger[_0xe707('0x28')](_0xe707('0x76'),_0x144d88,util[_0xe707('0x2a')](_0xccce,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0xe707('0x2b')][_0xe707('0x1e')]=function(_0x27167a){try{if(this[_0xe707('0x2c')](_0x27167a)){logger[_0xe707('0x32')](_0xe707('0x77'),_0x27167a[_0xe707('0x31')],util[_0xe707('0x2a')](_0x27167a,{'showHidden':![],'depth':null}));if(this[_0xe707('0x12')][_0x27167a[_0xe707('0x31')]]&&_0x27167a[_0xe707('0x39')]!=_0xe707('0x45')){if(this[_0xe707('0x2c')](_0x27167a[_0xe707('0x78')])){if(this[_0xe707('0x2c')](_0x27167a[_0xe707('0x78')][_0xe707('0x79')])){logger[_0xe707('0x52')]('[%s][voiceCallReport][varset]\x20variable:mixmonitor_filename\x20value:%s',_0x27167a['uniqueid'],_0x27167a['value']);this['syncMixMonitorFilename'](_0x27167a[_0xe707('0x31')],_0x27167a[_0xe707('0x7a')]);}else if(this['isNotNull'](_0x27167a['variable'][_0xe707('0x7b')])){logger[_0xe707('0x52')](_0xe707('0x7c'),_0x27167a['uniqueid'],_0x27167a['value']);this[_0xe707('0x12')][_0x27167a['uniqueid']][_0xe707('0x60')]=_0x27167a[_0xe707('0x7a')];}else if(this['isNotNull'](_0x27167a[_0xe707('0x78')][_0xe707('0x7d')])){logger['info'](_0xe707('0x7e'),_0x27167a[_0xe707('0x31')],_0x27167a[_0xe707('0x7a')]);this['channels'][_0x27167a[_0xe707('0x31')]][_0xe707('0x7f')]=_0x27167a[_0xe707('0x7a')];}else if(this[_0xe707('0x2c')](_0x27167a[_0xe707('0x78')][_0xe707('0x80')])){logger[_0xe707('0x52')](_0xe707('0x81'),_0x27167a[_0xe707('0x31')],_0x27167a[_0xe707('0x7a')]);this[_0xe707('0x12')][_0x27167a[_0xe707('0x31')]][_0xe707('0x5c')]=_0x27167a[_0xe707('0x7a')];}else if(this[_0xe707('0x2c')](_0x27167a[_0xe707('0x78')][_0xe707('0x82')])){logger[_0xe707('0x52')](_0xe707('0x83'),_0x27167a['uniqueid'],_0x27167a[_0xe707('0x7a')][_0xe707('0x3c')](',')[0x0]);this[_0xe707('0x12')][_0x27167a[_0xe707('0x31')]][_0xe707('0xa')]=_0x27167a[_0xe707('0x7a')]['split'](',')[0x0];}else if(this[_0xe707('0x2c')](_0x27167a[_0xe707('0x78')][_0xe707('0x84')])){logger['info']('[%s][voiceCallReport][varset]\x20variable:xmd-originatecalleridnum\x20value:%s',_0x27167a[_0xe707('0x31')],_0x27167a[_0xe707('0x7a')]);this['channels'][_0x27167a[_0xe707('0x31')]][_0xe707('0x85')]=_0x27167a[_0xe707('0x7a')];}else if(this[_0xe707('0x2c')](_0x27167a[_0xe707('0x78')]['xmd-destination'])){logger[_0xe707('0x52')](_0xe707('0x86'),_0x27167a['uniqueid'],_0x27167a['value']);this[_0xe707('0x12')][_0x27167a['uniqueid']][_0xe707('0x87')]=_0x27167a[_0xe707('0x7a')];}else if(this[_0xe707('0x2c')](_0x27167a['variable']['xmd-callerid-preview'])){logger[_0xe707('0x52')]('[%s][voiceCallReport][varset]\x20variable:xmd-callerid-preview\x20value:%s',_0x27167a['uniqueid'],_0x27167a[_0xe707('0x7a')]);this[_0xe707('0x12')][_0x27167a[_0xe707('0x31')]][_0xe707('0x88')]=_0x27167a[_0xe707('0x7a')];}else if(this[_0xe707('0x2c')](_0x27167a[_0xe707('0x78')][_0xe707('0x89')])){logger[_0xe707('0x52')](_0xe707('0x8a'),_0x27167a[_0xe707('0x31')],_0x27167a[_0xe707('0x7a')]);this['channels'][_0x27167a['uniqueid']][_0xe707('0xa')]=_0x27167a[_0xe707('0x7a')];}else if(this['isNotNull'](_0x27167a[_0xe707('0x78')]['sipcallid'])){logger[_0xe707('0x52')](_0xe707('0x8b'),_0x27167a['uniqueid'],_0x27167a[_0xe707('0x7a')]);this[_0xe707('0x12')][_0x27167a[_0xe707('0x31')]][_0xe707('0x8c')]=_0x27167a[_0xe707('0x7a')];}}}else if(this[_0xe707('0x2c')](_0x27167a[_0xe707('0x78')][_0xe707('0x79')])){if(_0x27167a[_0xe707('0x7a')]){var _0x1698fa=path[_0xe707('0x8d')](_0x27167a[_0xe707('0x7a')])[_0xe707('0x4b')];logger['info'](_0xe707('0x8e'),_0x1698fa,_0x27167a[_0xe707('0x7a')]);this[_0xe707('0x8f')](_0x1698fa,_0x27167a[_0xe707('0x7a')]);}}else if(this[_0xe707('0x12')][_0x27167a[_0xe707('0x34')]]){if(this[_0xe707('0x2c')](_0x27167a['variable'])){if(this['isNotNull'](_0x27167a[_0xe707('0x78')][_0xe707('0x90')])){logger[_0xe707('0x52')]('[%s][voiceCallReport][varset]\x20variable:sipcallid\x20value:%s',_0x27167a[_0xe707('0x34')],_0x27167a[_0xe707('0x7a')]);this[_0xe707('0x12')][_0x27167a['linkedid']][_0xe707('0x91')]=_0x27167a[_0xe707('0x7a')];}}}}}catch(_0x49ca93){logger[_0xe707('0x28')]('[%s][voiceCallReport][varset]',_0x27167a['uniqueid'],util[_0xe707('0x2a')](_0x49ca93,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0xe707('0x2b')][_0xe707('0x20')]=function(_0x4b6edb){try{if(this[_0xe707('0x2c')](_0x4b6edb)){logger[_0xe707('0x32')](_0xe707('0x92'),_0x4b6edb[_0xe707('0x31')],util['inspect'](_0x4b6edb,{'showHidden':![],'depth':null}));if(this[_0xe707('0x14')][_0x4b6edb[_0xe707('0x34')]]){if(this[_0xe707('0x12')][this[_0xe707('0x14')][_0x4b6edb[_0xe707('0x34')]][_0xe707('0x34')]]){this[_0xe707('0x12')][this[_0xe707('0x14')][_0x4b6edb[_0xe707('0x34')]][_0xe707('0x34')]][_0xe707('0x31')]=_0x4b6edb[_0xe707('0x31')];this[_0xe707('0x12')][this['blindTransfers'][_0x4b6edb[_0xe707('0x34')]][_0xe707('0x34')]][_0xe707('0x63')]=this[_0xe707('0x12')][_0x4b6edb['uniqueid']][_0xe707('0x63')];this[_0xe707('0x12')][this[_0xe707('0x14')][_0x4b6edb[_0xe707('0x34')]][_0xe707('0x34')]][_0xe707('0x6a')]=this[_0xe707('0x12')][_0x4b6edb[_0xe707('0x31')]][_0xe707('0x6a')];this['channels'][this[_0xe707('0x14')][_0x4b6edb[_0xe707('0x34')]][_0xe707('0x34')]]['destinationchannel']=this['channels'][this['blindTransfers'][_0x4b6edb[_0xe707('0x34')]][_0xe707('0x34')]][_0xe707('0x39')];this['channels'][this['blindTransfers'][_0x4b6edb[_0xe707('0x34')]][_0xe707('0x34')]][_0xe707('0x48')]=this[_0xe707('0x12')][_0x4b6edb[_0xe707('0x31')]]['disposition'];this[_0xe707('0x12')][_0x4b6edb[_0xe707('0x31')]]=this['channels'][this[_0xe707('0x14')][_0x4b6edb[_0xe707('0x34')]][_0xe707('0x34')]];delete this[_0xe707('0x12')][this[_0xe707('0x14')][_0x4b6edb['linkedid']][_0xe707('0x34')]];}else if(this[_0xe707('0x12')][this[_0xe707('0x14')][_0x4b6edb[_0xe707('0x34')]][_0xe707('0x31')]]){this['channels'][this[_0xe707('0x14')][_0x4b6edb[_0xe707('0x34')]][_0xe707('0x31')]][_0xe707('0x31')]=[this[_0xe707('0x12')][this[_0xe707('0x14')][_0x4b6edb[_0xe707('0x34')]][_0xe707('0x31')]]['linkedid'],this[_0xe707('0x12')][this[_0xe707('0x14')][_0x4b6edb[_0xe707('0x34')]][_0xe707('0x31')]][_0xe707('0x34')]=this[_0xe707('0x12')][this[_0xe707('0x14')][_0x4b6edb[_0xe707('0x34')]]['uniqueid']][_0xe707('0x31')]][0x0];this[_0xe707('0x12')][this[_0xe707('0x14')][_0x4b6edb['linkedid']][_0xe707('0x31')]][_0xe707('0x63')]=this['channels'][_0x4b6edb[_0xe707('0x31')]][_0xe707('0x63')];this['channels'][this[_0xe707('0x14')][_0x4b6edb[_0xe707('0x34')]][_0xe707('0x31')]][_0xe707('0x6a')]=this[_0xe707('0x12')][_0x4b6edb[_0xe707('0x31')]]['answertime'];this[_0xe707('0x12')][this[_0xe707('0x14')][_0x4b6edb['linkedid']][_0xe707('0x31')]][_0xe707('0x93')]=this[_0xe707('0x12')][this[_0xe707('0x14')][_0x4b6edb[_0xe707('0x34')]][_0xe707('0x31')]][_0xe707('0x39')];this[_0xe707('0x12')][this['blindTransfers'][_0x4b6edb[_0xe707('0x34')]][_0xe707('0x31')]][_0xe707('0x48')]=this[_0xe707('0x12')][_0x4b6edb[_0xe707('0x31')]]['disposition'];this[_0xe707('0x12')][_0x4b6edb['uniqueid']]=this[_0xe707('0x12')][this[_0xe707('0x14')][_0x4b6edb['linkedid']][_0xe707('0x31')]];delete this[_0xe707('0x12')][this[_0xe707('0x14')][_0x4b6edb[_0xe707('0x34')]]['uniqueid']];}}if(this['channels'][_0x4b6edb['uniqueid']]){logger[_0xe707('0x52')](_0xe707('0x94'),_0x4b6edb[_0xe707('0x31')],_0x4b6edb[_0xe707('0x95')]);var _0x24dd28=moment();this[_0xe707('0x12')][_0x4b6edb[_0xe707('0x31')]][_0xe707('0x96')]=_0x24dd28[_0xe707('0x3f')]('YYYY-MM-DD\x20HH:mm:ss');this[_0xe707('0x12')][_0x4b6edb[_0xe707('0x31')]]['duration']=_0x24dd28['diff'](this[_0xe707('0x12')][_0x4b6edb['uniqueid']][_0xe707('0x47')],_0xe707('0x56'));if(this['channels'][_0x4b6edb['uniqueid']][_0xe707('0x63')]){this[_0xe707('0x12')][_0x4b6edb[_0xe707('0x31')]][_0xe707('0x97')]=_0x24dd28[_0xe707('0x65')](this[_0xe707('0x12')][_0x4b6edb[_0xe707('0x31')]][_0xe707('0x6a')],_0xe707('0x56'));this[_0xe707('0x12')][_0x4b6edb[_0xe707('0x31')]][_0xe707('0x64')]=this[_0xe707('0x12')][_0x4b6edb[_0xe707('0x31')]][_0xe707('0x54')]-this[_0xe707('0x12')][_0x4b6edb[_0xe707('0x31')]][_0xe707('0x97')];}if(_0x4b6edb[_0xe707('0x49')]===_0xe707('0x38')){if(this[_0xe707('0x13')][_0x4b6edb['channel'][_0xe707('0x3c')]('-')[0x0]]){this['agents'][_0x4b6edb['channel'][_0xe707('0x3c')]('-')[0x0]]=_[_0xe707('0x98')](this[_0xe707('0x13')][_0x4b6edb[_0xe707('0x39')][_0xe707('0x3c')]('-')[0x0]],['destconnectedlinenum']);logger[_0xe707('0x32')](_0xe707('0x99'),_0x4b6edb[_0xe707('0x31')],util[_0xe707('0x2a')]({'id':this[_0xe707('0x13')][_0x4b6edb['channel'][_0xe707('0x3c')]('-')[0x0]]['id'],'destaccountcode':this['agents'][_0x4b6edb[_0xe707('0x39')][_0xe707('0x3c')]('-')[0x0]]['accountcode']},{'showHidden':![],'depth':null}));this[_0xe707('0x2e')](util[_0xe707('0x3f')](_0xe707('0x40'),this[_0xe707('0x13')][_0x4b6edb[_0xe707('0x39')][_0xe707('0x3c')]('-')[0x0]][_0xe707('0x4b')]),_0xe707('0x9a'),{'id':this[_0xe707('0x13')][_0x4b6edb['channel'][_0xe707('0x3c')]('-')[0x0]]['id'],'destaccountcode':this[_0xe707('0x13')][_0x4b6edb[_0xe707('0x39')][_0xe707('0x3c')]('-')[0x0]][_0xe707('0x42')]});for(var _0x7e3a38=0x0;_0x7e3a38<Object[_0xe707('0x37')](this['agents'])[_0xe707('0x9b')];_0x7e3a38++){var _0x51151f=Object['keys'](this[_0xe707('0x13')])[_0x7e3a38];var _0x214987=this['agents'][_0x51151f];if(_0x214987[_0xe707('0x42')]===Number(_0x4b6edb['connectedlinenum'])){this['emit'](util[_0xe707('0x3f')](_0xe707('0x40'),_0x214987['name']),_0xe707('0x9a'),{'id':_0x214987['id'],'destaccountcode':_0x214987[_0xe707('0x42')],'transfer':this[_0xe707('0x12')][_0x4b6edb[_0xe707('0x31')]][_0xe707('0x9c')]});break;}}}}var _0x40bf13=this;Promise[_0xe707('0x9d')]()['then'](function(){var _0x222419=_0x40bf13['channels'][_0x4b6edb['uniqueid']];if(typeof _0x222419[_0xe707('0x9c')]==='undefined')return;if(_[_0xe707('0x9e')](_0x222419['monitors']))return;return RpcSetting[_0xe707('0x9f')]()['then'](function(_0x5b4a8e){if(!_0x5b4a8e['stopRecordingOnTransfer'])return;return Promise[_0xe707('0x9d')]()['then'](function(){return ami[_0xe707('0xa0')]({'action':'StopMixMonitor','channel':_0x222419[_0xe707('0x39')]})[_0xe707('0xa1')](function(){});})[_0xe707('0xa2')](function(){return ami[_0xe707('0xa0')]({'action':_0xe707('0xa3'),'channel':_0x222419[_0xe707('0x93')]})[_0xe707('0xa1')](function(){})[_0xe707('0xa4')](function(){var _0x3e21ef=_0x40bf13['agents'][_0x222419['destinationchannel'][_0xe707('0x3c')]('-')[0x0]];if(!_0x3e21ef)return;io[_0xe707('0x2e')](_0xe707('0xa5'),{'agentId':_0x3e21ef['id'],'uniqueid':_0x222419['uniqueid']});});});});})[_0xe707('0xa2')](function(){if(_0x4b6edb[_0xe707('0xa6')]===_0xe707('0xa7')){_0x40bf13[_0xe707('0x14')][_0x4b6edb[_0xe707('0x31')]]=_0x4b6edb;}else{if(_0x40bf13[_0xe707('0x12')][_0x4b6edb[_0xe707('0x31')]][_0xe707('0x5c')]===_0xe707('0xa8')&&_0x40bf13[_0xe707('0x14')][_0x4b6edb[_0xe707('0x31')]]){_0x40bf13[_0xe707('0x12')][_0x4b6edb['uniqueid']][_0xe707('0x31')]=[_0x40bf13['channels'][_0x4b6edb[_0xe707('0x31')]]['linkedid'],_0x40bf13[_0xe707('0x12')][_0x4b6edb['uniqueid']][_0xe707('0x34')]=_0x40bf13[_0xe707('0x12')][_0x4b6edb[_0xe707('0x31')]][_0xe707('0x31')]][0x0];delete _0x40bf13[_0xe707('0x14')][_0x4b6edb['uniqueid']];}}logger[_0xe707('0x32')](_0xe707('0xa9'),_0x4b6edb[_0xe707('0x31')],util[_0xe707('0x2a')](_0x40bf13[_0xe707('0x12')][_0x4b6edb[_0xe707('0x31')]],{'showHidden':![],'depth':null}));ami[_0xe707('0x2e')]('custom:voiceCallReport',_0x40bf13[_0xe707('0x12')][_0x4b6edb[_0xe707('0x31')]]);delete _0x40bf13[_0xe707('0x12')][_0x4b6edb[_0xe707('0x31')]];});}}}catch(_0x190be8){logger[_0xe707('0x28')](_0xe707('0xaa'),_0x4b6edb['uniqueid'],util['inspect'](_0x190be8,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0xe707('0x2b')][_0xe707('0xab')]=function(_0x21d1bd){try{if(this[_0xe707('0x2c')](_0x21d1bd)){logger['info'](_0xe707('0xac'),_0x21d1bd['uniqueid'],_0x21d1bd[_0xe707('0xad')],_0x21d1bd[_0xe707('0xae')]);logger[_0xe707('0x32')](_0xe707('0xaf'),_0x21d1bd[_0xe707('0x31')],util['inspect'](_0x21d1bd,{'showHidden':![],'depth':null}));var _0x594b43;if(this[_0xe707('0x12')][_0x21d1bd[_0xe707('0xb0')]]){this['channels'][_0x21d1bd[_0xe707('0xb0')]][_0xe707('0xb1')]=_0x21d1bd[_0xe707('0xad')];this[_0xe707('0x12')][_0x21d1bd[_0xe707('0xb0')]][_0xe707('0xb2')]=_0x21d1bd[_0xe707('0xae')];if(this['channels'][_0x21d1bd[_0xe707('0xb3')]]){_0x594b43=this[_0xe707('0x12')][_0x21d1bd['secondtransfereruniqueid']];this[_0xe707('0x12')][_0x21d1bd['secondtransfereruniqueid']]=this[_0xe707('0x12')][_0x21d1bd['transfereeuniqueid']];this['channels'][_0x21d1bd[_0xe707('0xb0')]]=_0x594b43;}this[_0xe707('0x12')][_0x21d1bd[_0xe707('0xb3')]]['transferType']=_0xe707('0xb4');}else if(this[_0xe707('0x12')][_0x21d1bd[_0xe707('0xb5')]]){this['channels'][_0x21d1bd[_0xe707('0xb5')]][_0xe707('0xb1')]=_0x21d1bd[_0xe707('0xad')];this[_0xe707('0x12')][_0x21d1bd[_0xe707('0xb5')]][_0xe707('0xb2')]=_0x21d1bd['transfertargetcalleridnum'];if(this[_0xe707('0x12')][_0x21d1bd[_0xe707('0xb6')]]){_0x594b43=this[_0xe707('0x12')][_0x21d1bd['origtransfereruniqueid']];this[_0xe707('0x12')][_0x21d1bd['origtransfereruniqueid']]=this['channels'][_0x21d1bd[_0xe707('0xb5')]];this[_0xe707('0x12')][_0x21d1bd[_0xe707('0xb5')]]=_0x594b43;}this['channels'][_0x21d1bd[_0xe707('0xb5')]][_0xe707('0x9c')]=_0xe707('0xb4');}if((this[_0xe707('0x12')][_0x21d1bd['origtransfereruniqueid']]||this[_0xe707('0x12')][_0x21d1bd['origtransfererlinkedid']])&&this[_0xe707('0x12')][_0x21d1bd[_0xe707('0xb3')]]){var _0xa4060c=_[_0xe707('0xb7')]([this[_0xe707('0x12')][_0x21d1bd['origtransfereruniqueid']],this[_0xe707('0x12')][_0x21d1bd[_0xe707('0xb8')]],this[_0xe707('0x12')][_0x21d1bd[_0xe707('0xb3')]]],function(_0x1b68d2){return _0x1b68d2&&_0x1b68d2[_0xe707('0x5c')]===_0xe707('0xa8')&&_0x1b68d2[_0xe707('0xb9')];});if(_0xa4060c){if(this[_0xe707('0x12')][_0x21d1bd[_0xe707('0xb6')]])this[_0xe707('0x12')][_0x21d1bd[_0xe707('0xb6')]]['transferType']=_0xe707('0xb4');if(this[_0xe707('0x12')][_0x21d1bd['origtransfererlinkedid']])this[_0xe707('0x12')][_0x21d1bd[_0xe707('0xb8')]][_0xe707('0x9c')]=_0xe707('0xb4');this[_0xe707('0x12')][_0x21d1bd[_0xe707('0xb3')]][_0xe707('0x9c')]=_0xe707('0xb4');}}}}catch(_0xfc1c4a){logger[_0xe707('0x28')](_0xe707('0xba'),_0x21d1bd[_0xe707('0x31')],util[_0xe707('0x2a')](_0xfc1c4a,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0xe707('0x2b')][_0xe707('0x24')]=function(_0x55ed83){try{if(this[_0xe707('0x2c')](_0x55ed83)){logger[_0xe707('0x52')]('[%s][voiceCallReport][blindtransfer]\x20transfercalleridnum:%s\x20transferconnectedlinenum:%s',_0x55ed83[_0xe707('0x31')],_0x55ed83['transfereecalleridnum'],_0x55ed83[_0xe707('0xbb')]);logger[_0xe707('0x32')](_0xe707('0xbc'),_0x55ed83[_0xe707('0x31')],util['inspect'](_0x55ed83,{'showHidden':![],'depth':null}));if(this[_0xe707('0x12')][_0x55ed83[_0xe707('0xb0')]]){this['channels'][_0x55ed83[_0xe707('0xb0')]][_0xe707('0xb1')]=_0x55ed83[_0xe707('0xbd')];this[_0xe707('0x12')][_0x55ed83[_0xe707('0xb0')]]['transferconnectedlinenum']=_0x55ed83[_0xe707('0xbb')];this[_0xe707('0x12')][_0x55ed83[_0xe707('0xb0')]]['transferType']=_0xe707('0xbe');this[_0xe707('0x20')]({'event':_0xe707('0xa7'),'uniqueid':_0x55ed83['transfereeuniqueid'],'linkedid':_0x55ed83[_0xe707('0xbf')],'context':_0x55ed83[_0xe707('0x49')],'channel':_0x55ed83[_0xe707('0xc0')]});}else{this[_0xe707('0x12')][_0x55ed83['transfereruniqueid']]['transferType']=_0xe707('0xbe');this[_0xe707('0x20')]({'event':_0xe707('0xa7'),'uniqueid':_0x55ed83[_0xe707('0xbf')],'linkedid':_0x55ed83['transfereeuniqueid'],'context':_0x55ed83[_0xe707('0x49')],'channel':_0x55ed83[_0xe707('0xc0')]});}}}catch(_0x11c690){logger[_0xe707('0x28')](_0xe707('0xc1'),_0x55ed83['uniqueid'],util[_0xe707('0x2a')](_0x11c690,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0xe707('0x2b')][_0xe707('0x26')]=function(_0x16f172){try{if(this['isNotNull'](_0x16f172)){logger['debug'](_0xe707('0xc2'),_0x16f172['uniqueid'],util['inspect'](_0x16f172,{'showHidden':![],'depth':null}));if(this[_0xe707('0x12')][_0x16f172[_0xe707('0x31')]]){if(!_['isNil'](this[_0xe707('0x12')][_0x16f172[_0xe707('0x31')]]['answertime'])){this[_0xe707('0x12')][_0x16f172[_0xe707('0x31')]][_0xe707('0xc3')]=moment()[_0xe707('0x3f')]('YYYY-MM-DD\x20HH:mm:ss');logger[_0xe707('0x52')](_0xe707('0xc4'),_0x16f172[_0xe707('0x31')],this[_0xe707('0x12')][_0x16f172[_0xe707('0x31')]][_0xe707('0xc3')]);}}}}catch(_0xe1dae9){logger[_0xe707('0x28')](_0xe707('0xc5'),_0x16f172['uniqueid'],util[_0xe707('0x2a')](_0xe1dae9,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0xe707('0x2b')]['syncMusicOnHoldStop']=function(_0x4185cc){try{if(this[_0xe707('0x2c')](_0x4185cc)){logger[_0xe707('0x32')](_0xe707('0xc6'),_0x4185cc['uniqueid'],util[_0xe707('0x2a')](_0x4185cc,{'showHidden':![],'depth':null}));if(this[_0xe707('0x12')][_0x4185cc[_0xe707('0x31')]]){if(!_['isNil'](this[_0xe707('0x12')][_0x4185cc['uniqueid']][_0xe707('0xc3')])){this['channels'][_0x4185cc[_0xe707('0x31')]][_0xe707('0xc7')]+=moment()[_0xe707('0xc8')](0x0)[_0xe707('0x65')](this[_0xe707('0x12')][_0x4185cc[_0xe707('0x31')]][_0xe707('0xc3')],_0xe707('0x56'));logger[_0xe707('0x52')]('[%s][voiceCallReport][musiconholdstop]\x20mohtime:%s',_0x4185cc[_0xe707('0x31')],this['channels'][_0x4185cc[_0xe707('0x31')]]['mohtime']);delete this['channels'][_0x4185cc['uniqueid']][_0xe707('0xc3')];}}}}catch(_0x35cbbb){logger[_0xe707('0x28')](_0xe707('0xc9'),_0x4185cc['uniqueid'],util[_0xe707('0x2a')](_0x35cbbb,{'showHidden':![],'depth':null}));}};module[_0xe707('0xca')]=VoiceCallReport;
\ No newline at end of file
+var _0xb847=['inspect','linkedid','channels','merge','pick','keys','context','from-sip','channel','exten','xcally-motion-preview','split','destconnectedlinenum','format','user:%s','name','user:agentconnect','[%s][voiceCallReport][newcallerid]','[%s][voiceCallReport][newchannel]\x20event:','OutgoingSpoolFailed','[%s][voiceCallReport][newchannel]\x20context:%s\x20exten:%s','starttime','YYYY-MM-DD\x20HH:mm:ss','disposition','toNumber','channelstate','[%s][voiceCallReport][newchannel]\x20sending\x20user:agentconnect\x20event:','accountcode','[%s][voiceCallReport][newchannel]','[%s][voiceCallReport][newexten]\x20event:','application','toLowerCase','applicationdata','startsWith','appdata','[%s][voiceCallReport][newexten]\x20application:%s\x20appdata:%s','duration','subtract','includes','lastapplication','lastdata','cdr(','match','isNil','[%s][voiceCallReport][newexten]','syncNewState','[%s][voiceCallReport][newstate]\x20linkedid:%s\x20calleridname:%s\x20calleridnum:%s','calleridname','[%s][voiceCallReport][newstate]\x20event:','answered','answertime','holdtime','connectedlinenum','connectedlinename','UserId','membername','diff','seconds','destinationchannel','routealias','[%s][voiceCallReport][newstate]\x20sending\x20user:agentconnect\x20event:','[%s][voiceCallReport][newstate]','[%s][voiceCallReport][mixMonitorFilename]\x20monitorFilename:%s','monitor','endsWith','.wav49','replace','.WAV','find','monitors','push','rec','[%s][voiceCallReport][mixMonitorFilename]','[%s][voiceCallReport][varset]\x20event:','mixmonitor_filename','value','syncMixMonitorFilename','variable','xmd-phone','[%s][voiceCallReport][varset]\x20variable:xmd-phone\x20value:%s','xmd-callerid','callerid','xmd-cdrtype','[%s][voiceCallReport][varset]\x20variable:xmd-cdrtype\x20value:%s','type','xmd-queue','[%s][voiceCallReport][varset]\x20variable:xmd-queue\x20value:%s','xmd-originatecalleridnum','[%s][voiceCallReport][varset]\x20variable:xmd-destination\x20value:%s','destination','xmd-callerid-preview','[%s][voiceCallReport][varset]\x20variable:xmd-callerid-preview\x20value:%s','calleridpreview','xmcs-queue','[%s][voiceCallReport][varset]\x20variable:xmcs-queue\x20value:%s','sipcallid','[%s][voiceCallReport][varset]\x20variable:sipcallid\x20value:%s','[%s][voiceCallReport][varset]\x20variable:mixmonitor_filename\x20value:%s','sipcalllinkedid','[%s][voiceCallReport][hangup]\x20event:','[%s][voiceCallReport][hangup]\x20reason:%s','cause-txt','endtime','billableseconds','[%s][voiceCallReport][hangup]\x20sending\x20user:agentcomplete\x20event:','user:agentcomplete','transferType','resolve','then','isEmpty','getSettings','stopRecordingOnTransfer','Action','catch','StopMixMonitor','finally','webbar:stopmonitors','event','BlindTransfer','outbound','[%s][voiceCallReport][hangup]\x20sending\x20hangup\x20event:','custom:voiceCallReport','[%s][voiceCallReport][hangup]','[%s][voiceCallReport][attendedtransfer]\x20transfercalleridnum:%s\x20transferconnectedlinenum:%s','origtransferercalleridnum','transfertargetcalleridnum','[%s][voiceCallReport][attendedtransfer]\x20event:','transfereeuniqueid','transfercalleridnum','transferconnectedlinenum','secondtransfereruniqueid','ATTENDED','transfertargetuniqueid','origtransfereruniqueid','some','routeid','[%s][voiceCallReport][attendedtransfer]','[%s][voiceCallReport][blindtransfer]\x20transfercalleridnum:%s\x20transferconnectedlinenum:%s','transfereecalleridnum','extension','transfereruniqueid','transfererchannel','BLIND','[%s][voiceCallReport][musiconholdstart]\x20event:','mohstarttime','[%s][voiceCallReport][musiconholdstart]\x20mohstarttime:%s','[%s][voiceCallReport][musiconholdstart]','[%s][voiceCallReport][musiconholdstop]\x20event:','mohtime','[%s][voiceCallReport][musiconholdstop]','exports','lodash','moment','util','path','ioredis','../../../config/environment','../../../config/logger','../ami','../model/channel','../rpc/setting','set','queue','dial','playback','voicemail','FAILED','NO\x20ANSWER','ANSWERED','BUSY','redis','defaults','localhost','socket.io-emitter','agents','blindTransfers','coreshowchannel','syncNewExten','bind','newexten','newchannel','syncNewChannel','varset','syncVarSet','hangup','syncHangup','newcallerid','syncNewCallerId','attendedtransfer','syncAttendedTransfer','blindtransfer','syncBlindTransfer','musiconholdstart','syncMusicOnHoldStart','musiconholdstop','syncMusicOnHoldStop','[voiceCallReport][coreshowchannels]\x20started','error','[voiceCallReport][coreshowchannels]','prototype','isUndefined','emit','isNotNull','info','[%s][voiceCallReport][newcallerid]\x20calleridname:%s\x20calleridnum:%s','uniqueid','calleridnum','debug','[%s][voiceCallReport][newcallerid]\x20event:'];(function(_0x2d5476,_0x1eee74){var _0xc37a45=function(_0x381fc2){while(--_0x381fc2){_0x2d5476['push'](_0x2d5476['shift']());}};_0xc37a45(++_0x1eee74);}(_0xb847,0x168));var _0x7b84=function(_0x45ae0d,_0x1ea3b9){_0x45ae0d=_0x45ae0d-0x0;var _0x371826=_0xb847[_0x45ae0d];return _0x371826;};'use strict';var _=require(_0x7b84('0x0'));var moment=require(_0x7b84('0x1'));var util=require(_0x7b84('0x2'));var path=require(_0x7b84('0x3'));var Redis=require(_0x7b84('0x4'));var config=require(_0x7b84('0x5'));var logger=require(_0x7b84('0x6'))('ami');var ami=require(_0x7b84('0x7'));var Channel=require(_0x7b84('0x8'));var RpcSetting=require(_0x7b84('0x9'));var applications=[_0x7b84('0xa'),_0x7b84('0xb'),'agi',_0x7b84('0xc'),_0x7b84('0xd'),_0x7b84('0xe')];var dispositions=['NO\x20ANSWER',_0x7b84('0xf'),_0x7b84('0xf'),_0x7b84('0x10'),'NO\x20ANSWER',_0x7b84('0x10'),_0x7b84('0x11'),_0x7b84('0x12'),_0x7b84('0xf'),_0x7b84('0xf'),_0x7b84('0xf')];config[_0x7b84('0x13')]=_[_0x7b84('0x14')](config['redis'],{'host':_0x7b84('0x15'),'port':0x18eb});var io=require(_0x7b84('0x16'))(new Redis(config['redis']));function VoiceCallReport(_0x28787d){this['channels']=_0x28787d['channels'];this[_0x7b84('0x17')]=_0x28787d[_0x7b84('0x17')];this[_0x7b84('0x18')]={};ami['on'](_0x7b84('0x19'),this[_0x7b84('0x1a')][_0x7b84('0x1b')](this));ami['on'](_0x7b84('0x1c'),this[_0x7b84('0x1a')]['bind'](this));ami['on'](_0x7b84('0x1d'),this[_0x7b84('0x1e')]['bind'](this));ami['on']('newstate',this['syncNewState'][_0x7b84('0x1b')](this));ami['on'](_0x7b84('0x1f'),this[_0x7b84('0x20')]['bind'](this));ami['on'](_0x7b84('0x21'),this[_0x7b84('0x22')][_0x7b84('0x1b')](this));ami['on'](_0x7b84('0x23'),this[_0x7b84('0x24')][_0x7b84('0x1b')](this));ami['on'](_0x7b84('0x25'),this[_0x7b84('0x26')]['bind'](this));ami['on'](_0x7b84('0x27'),this[_0x7b84('0x28')][_0x7b84('0x1b')](this));ami['on'](_0x7b84('0x29'),this[_0x7b84('0x2a')][_0x7b84('0x1b')](this));ami['on'](_0x7b84('0x2b'),this[_0x7b84('0x2c')][_0x7b84('0x1b')](this));try{logger['info'](_0x7b84('0x2d'));ami['actionCoreShowChannels']();}catch(_0x568486){logger[_0x7b84('0x2e')](_0x7b84('0x2f'),util['inspect'](_0x568486,{'showHidden':![],'depth':null}));}}VoiceCallReport[_0x7b84('0x30')]['isNotNull']=function(_0x298f57){return _0x298f57!==null&&!_[_0x7b84('0x31')](_0x298f57);};VoiceCallReport[_0x7b84('0x30')]['emit']=function(_0x5aac4d,_0xa22fd1,_0x53c732){io['to'](_0x5aac4d)[_0x7b84('0x32')](_0xa22fd1,_0x53c732);};VoiceCallReport['prototype'][_0x7b84('0x24')]=function(_0x16a42c){try{if(this[_0x7b84('0x33')](_0x16a42c)){logger[_0x7b84('0x34')](_0x7b84('0x35'),_0x16a42c[_0x7b84('0x36')],_0x16a42c['calleridname'],_0x16a42c[_0x7b84('0x37')]);logger[_0x7b84('0x38')](_0x7b84('0x39'),_0x16a42c[_0x7b84('0x36')],util[_0x7b84('0x3a')](_0x16a42c,{'showHidden':![],'depth':null}));if(_0x16a42c['uniqueid']===_0x16a42c[_0x7b84('0x3b')]){if(!_['isUndefined'](this[_0x7b84('0x3c')][_0x16a42c[_0x7b84('0x36')]])){_[_0x7b84('0x3d')](this[_0x7b84('0x3c')][_0x16a42c[_0x7b84('0x36')]],_[_0x7b84('0x3e')](_0x16a42c,_[_0x7b84('0x3f')](this[_0x7b84('0x3c')][_0x16a42c[_0x7b84('0x36')]])));}}if(_0x16a42c[_0x7b84('0x40')]===_0x7b84('0x41')){if(this[_0x7b84('0x17')][_0x16a42c[_0x7b84('0x42')]['split']('-')[0x0]]){if(_0x16a42c[_0x7b84('0x43')]==_0x7b84('0x44')){this['agents'][_0x16a42c['channel'][_0x7b84('0x45')]('-')[0x0]][_0x7b84('0x46')]=_0x16a42c['connectedlinenum'];this[_0x7b84('0x32')](util[_0x7b84('0x47')](_0x7b84('0x48'),this[_0x7b84('0x17')][_0x16a42c[_0x7b84('0x42')][_0x7b84('0x45')]('-')[0x0]][_0x7b84('0x49')]),_0x7b84('0x4a'),{'destaccountcode':this[_0x7b84('0x17')][_0x16a42c[_0x7b84('0x42')][_0x7b84('0x45')]('-')[0x0]]['accountcode'],'destconnectedlinenum':_0x16a42c['connectedlinenum']});}}}}}catch(_0xf90297){logger[_0x7b84('0x2e')](_0x7b84('0x4b'),_0x16a42c[_0x7b84('0x36')],util[_0x7b84('0x3a')](_0xf90297,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x7b84('0x30')][_0x7b84('0x1e')]=function(_0x4213af){try{if(this[_0x7b84('0x33')](_0x4213af)){logger[_0x7b84('0x38')](_0x7b84('0x4c'),_0x4213af[_0x7b84('0x36')],util['inspect'](_0x4213af,{'showHidden':![],'depth':null}));if(this[_0x7b84('0x3c')][_0x4213af[_0x7b84('0x36')]])return;if(_0x4213af['channel']===_0x7b84('0x4d'))return;if(_0x4213af['uniqueid']!==_0x4213af[_0x7b84('0x3b')]&&!this[_0x7b84('0x18')][_0x4213af[_0x7b84('0x3b')]])return;logger[_0x7b84('0x34')](_0x7b84('0x4e'),_0x4213af[_0x7b84('0x36')],_0x4213af[_0x7b84('0x40')],_0x4213af[_0x7b84('0x43')]);this[_0x7b84('0x3c')][_0x4213af[_0x7b84('0x36')]]=new Channel();this[_0x7b84('0x3c')][_0x4213af['uniqueid']][_0x7b84('0x4f')]=moment()[_0x7b84('0x47')](_0x7b84('0x50'));this[_0x7b84('0x3c')][_0x4213af[_0x7b84('0x36')]][_0x7b84('0x51')]=dispositions[_[_0x7b84('0x52')](_0x4213af[_0x7b84('0x53')])];_['merge'](this[_0x7b84('0x3c')][_0x4213af[_0x7b84('0x36')]],_[_0x7b84('0x3e')](_0x4213af,_[_0x7b84('0x3f')](this[_0x7b84('0x3c')][_0x4213af[_0x7b84('0x36')]])));if(_0x4213af[_0x7b84('0x40')]==='from-sip'){if(this[_0x7b84('0x17')][_0x4213af[_0x7b84('0x42')][_0x7b84('0x45')]('-')[0x0]]){if(_[_0x7b84('0x31')](this[_0x7b84('0x17')][_0x4213af[_0x7b84('0x42')][_0x7b84('0x45')]('-')[0x0]][_0x7b84('0x46')])){this[_0x7b84('0x17')][_0x4213af[_0x7b84('0x42')]['split']('-')[0x0]]['destconnectedlinenum']=_0x4213af['exten'];logger[_0x7b84('0x38')](_0x7b84('0x54'),_0x4213af['uniqueid'],util['inspect']({'id':this['agents'][_0x4213af[_0x7b84('0x42')]['split']('-')[0x0]]['id'],'destaccountcode':this[_0x7b84('0x17')][_0x4213af['channel']['split']('-')[0x0]]['accountcode'],'destconnectedlinenum':_0x4213af['exten']},{'showHidden':![],'depth':null}));this[_0x7b84('0x32')](util[_0x7b84('0x47')](_0x7b84('0x48'),this[_0x7b84('0x17')][_0x4213af[_0x7b84('0x42')][_0x7b84('0x45')]('-')[0x0]]['name']),_0x7b84('0x4a'),{'id':this[_0x7b84('0x17')][_0x4213af[_0x7b84('0x42')][_0x7b84('0x45')]('-')[0x0]]['id'],'destaccountcode':this[_0x7b84('0x17')][_0x4213af[_0x7b84('0x42')][_0x7b84('0x45')]('-')[0x0]][_0x7b84('0x55')],'destconnectedlinenum':_0x4213af[_0x7b84('0x43')]});}}}}}catch(_0x48321b){logger[_0x7b84('0x2e')](_0x7b84('0x56'),_0x4213af[_0x7b84('0x36')],util['inspect'](_0x48321b,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x7b84('0x30')]['syncNewExten']=function(_0x275087){try{if(this[_0x7b84('0x33')](_0x275087)){logger[_0x7b84('0x38')](_0x7b84('0x57'),_0x275087[_0x7b84('0x36')],util[_0x7b84('0x3a')](_0x275087,{'showHidden':![],'depth':null}));if(_0x275087[_0x7b84('0x42')]===_0x7b84('0x4d')||_0x275087[_0x7b84('0x43')]==='h')return;if(_0x275087[_0x7b84('0x36')]===_0x275087[_0x7b84('0x3b')]||this[_0x7b84('0x18')][_0x275087[_0x7b84('0x3b')]]){_0x275087[_0x7b84('0x58')]=_0x275087[_0x7b84('0x58')][_0x7b84('0x59')]();_0x275087[_0x7b84('0x5a')]=_0x275087['appdata']&&_0x275087['appdata'][_0x7b84('0x5b')]('CDR(routeAlias)')?_0x275087[_0x7b84('0x5c')]:(_0x275087['appdata']||_0x275087[_0x7b84('0x5a')])[_0x7b84('0x59')]();logger[_0x7b84('0x34')](_0x7b84('0x5d'),_0x275087['uniqueid'],_0x275087[_0x7b84('0x58')],_0x275087['applicationdata']);if(_['isUndefined'](this[_0x7b84('0x3c')][_0x275087[_0x7b84('0x36')]])){this[_0x7b84('0x3c')][_0x275087[_0x7b84('0x36')]]=new Channel();this[_0x7b84('0x3c')][_0x275087['uniqueid']]['starttime']=_0x275087[_0x7b84('0x5e')]?moment()[_0x7b84('0x5f')](moment[_0x7b84('0x5e')](_0x275087['duration'])['seconds'](),'seconds')[_0x7b84('0x47')](_0x7b84('0x50')):moment()[_0x7b84('0x47')](_0x7b84('0x50'));this[_0x7b84('0x3c')][_0x275087[_0x7b84('0x36')]][_0x7b84('0x51')]=_0x7b84('0x10');}_[_0x7b84('0x3d')](this[_0x7b84('0x3c')][_0x275087[_0x7b84('0x36')]],_[_0x7b84('0x3e')](_0x275087,_[_0x7b84('0x3f')](this[_0x7b84('0x3c')][_0x275087[_0x7b84('0x36')]])));if(_[_0x7b84('0x60')](applications,_0x275087['application'])){this[_0x7b84('0x3c')][_0x275087[_0x7b84('0x36')]][_0x7b84('0x61')]=_0x275087[_0x7b84('0x58')];this[_0x7b84('0x3c')][_0x275087['uniqueid']][_0x7b84('0x62')]=_0x275087['applicationdata'];if(_0x275087[_0x7b84('0x58')]===_0x7b84('0xa')&&_['startsWith'](_0x275087[_0x7b84('0x5a')][_0x7b84('0x59')](),_0x7b84('0x63'))){var _0x115dbb=_0x275087[_0x7b84('0x5a')][_0x7b84('0x45')]('=');var _0x19b5f6=_0x115dbb[0x0][_0x7b84('0x59')]()[_0x7b84('0x64')](/cdr\((.*)\)/);if(_0x19b5f6){if(_0x19b5f6[0x1]==='type'&&!_[_0x7b84('0x65')](this['channels'][_0x275087['uniqueid']][_0x19b5f6[0x1]]))return;this[_0x7b84('0x3c')][_0x275087['uniqueid']][_0x19b5f6[0x1]]=_0x115dbb[0x1];}}else if(_0x275087[_0x7b84('0x58')]===_0x7b84('0xb')){this[_0x7b84('0x3c')][_0x275087[_0x7b84('0x36')]]['queue']=_0x275087[_0x7b84('0x5a')]['split'](',')[0x0];}}}}}catch(_0x120631){logger[_0x7b84('0x2e')](_0x7b84('0x66'),_0x275087[_0x7b84('0x36')],util[_0x7b84('0x3a')](_0x120631,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x7b84('0x30')][_0x7b84('0x67')]=function(_0x3ca557){try{if(this['isNotNull'](_0x3ca557)){logger[_0x7b84('0x34')](_0x7b84('0x68'),_0x3ca557['uniqueid'],_0x3ca557['linkedid'],_0x3ca557[_0x7b84('0x69')],_0x3ca557[_0x7b84('0x37')]);logger[_0x7b84('0x38')](_0x7b84('0x6a'),_0x3ca557[_0x7b84('0x36')],util['inspect'](_0x3ca557,{'showHidden':![],'depth':null}));if(_0x3ca557[_0x7b84('0x53')]!=='6')return;if(_0x3ca557['uniqueid']!==_0x3ca557[_0x7b84('0x3b')]){var _0x52ba26=moment();if(this[_0x7b84('0x3c')][_0x3ca557['linkedid']]){if(!this[_0x7b84('0x3c')][_0x3ca557['linkedid']][_0x7b84('0x6b')]){this[_0x7b84('0x3c')][_0x3ca557[_0x7b84('0x3b')]][_0x7b84('0x6b')]=!![];this['channels'][_0x3ca557[_0x7b84('0x3b')]][_0x7b84('0x6c')]=_0x52ba26[_0x7b84('0x47')](_0x7b84('0x50'));if(this[_0x7b84('0x3c')][_0x3ca557[_0x7b84('0x3b')]]['starttime']){this[_0x7b84('0x3c')][_0x3ca557[_0x7b84('0x3b')]][_0x7b84('0x6d')]=_0x52ba26['diff'](this['channels'][_0x3ca557[_0x7b84('0x3b')]]['starttime'],'seconds');}}this[_0x7b84('0x3c')][_0x3ca557[_0x7b84('0x3b')]]['linkedid']=_0x3ca557[_0x7b84('0x36')];if(_0x3ca557[_0x7b84('0x37')]!==_0x7b84('0x44')){this['channels'][_0x3ca557[_0x7b84('0x3b')]][_0x7b84('0x6e')]=_0x3ca557['calleridnum'];}this[_0x7b84('0x3c')][_0x3ca557[_0x7b84('0x3b')]][_0x7b84('0x6f')]=_0x3ca557[_0x7b84('0x69')];this['channels'][_0x3ca557[_0x7b84('0x3b')]]['destinationchannel']=_0x3ca557['channel'];this[_0x7b84('0x3c')][_0x3ca557[_0x7b84('0x3b')]][_0x7b84('0x51')]=dispositions[_['toNumber'](_0x3ca557[_0x7b84('0x53')])];if(this['agents'][_0x3ca557[_0x7b84('0x42')][_0x7b84('0x45')]('-')[0x0]]){this[_0x7b84('0x3c')][_0x3ca557[_0x7b84('0x3b')]][_0x7b84('0x70')]=this['agents'][_0x3ca557[_0x7b84('0x42')][_0x7b84('0x45')]('-')[0x0]]['id'];this[_0x7b84('0x3c')][_0x3ca557[_0x7b84('0x3b')]][_0x7b84('0x71')]=this[_0x7b84('0x17')][_0x3ca557[_0x7b84('0x42')][_0x7b84('0x45')]('-')[0x0]]['name'];}}if(this[_0x7b84('0x3c')][_0x3ca557[_0x7b84('0x36')]]){if(!this['channels'][_0x3ca557[_0x7b84('0x36')]][_0x7b84('0x6b')]){this[_0x7b84('0x3c')][_0x3ca557['uniqueid']][_0x7b84('0x6b')]=!![];this[_0x7b84('0x3c')][_0x3ca557[_0x7b84('0x36')]][_0x7b84('0x6c')]=_0x52ba26[_0x7b84('0x47')](_0x7b84('0x50'));if(this[_0x7b84('0x3c')][_0x3ca557[_0x7b84('0x36')]][_0x7b84('0x4f')]){this[_0x7b84('0x3c')][_0x3ca557['uniqueid']]['holdtime']=_0x52ba26[_0x7b84('0x72')](this['channels'][_0x3ca557['uniqueid']][_0x7b84('0x4f')],_0x7b84('0x73'));}}if(_0x3ca557['calleridnum']!==_0x7b84('0x44')){this[_0x7b84('0x3c')][_0x3ca557['uniqueid']][_0x7b84('0x6e')]=_0x3ca557[_0x7b84('0x37')];}this[_0x7b84('0x3c')][_0x3ca557['uniqueid']][_0x7b84('0x6f')]=_0x3ca557['calleridname'];this['channels'][_0x3ca557[_0x7b84('0x36')]][_0x7b84('0x74')]=_0x3ca557[_0x7b84('0x42')];this[_0x7b84('0x3c')][_0x3ca557[_0x7b84('0x36')]][_0x7b84('0x51')]=dispositions[_[_0x7b84('0x52')](_0x3ca557[_0x7b84('0x53')])];}}else{if(this['channels'][_0x3ca557[_0x7b84('0x36')]]){if(this['agents'][_0x3ca557[_0x7b84('0x42')][_0x7b84('0x45')]('-')[0x0]]){this['channels'][_0x3ca557[_0x7b84('0x36')]]['UserId']=this[_0x7b84('0x17')][_0x3ca557[_0x7b84('0x42')]['split']('-')[0x0]]['id'];this['channels'][_0x3ca557['uniqueid']][_0x7b84('0x71')]=this[_0x7b84('0x17')][_0x3ca557[_0x7b84('0x42')][_0x7b84('0x45')]('-')[0x0]]['name'];}}}if(_0x3ca557[_0x7b84('0x40')]==='from-sip'){if(this[_0x7b84('0x17')][_0x3ca557['channel'][_0x7b84('0x45')]('-')[0x0]]){this[_0x7b84('0x17')][_0x3ca557['channel'][_0x7b84('0x45')]('-')[0x0]][_0x7b84('0x46')]=_0x3ca557[_0x7b84('0x43')];var _0x2865b7,_0x3f0b31;if(this[_0x7b84('0x3c')][_0x3ca557[_0x7b84('0x36')]]){_0x2865b7=this['channels'][_0x3ca557[_0x7b84('0x36')]]['routealias'];_0x3f0b31=this[_0x7b84('0x3c')][_0x3ca557[_0x7b84('0x36')]][_0x7b84('0xb')];}else if(this[_0x7b84('0x3c')][_0x3ca557[_0x7b84('0x3b')]]){_0x2865b7=this[_0x7b84('0x3c')][_0x3ca557['linkedid']][_0x7b84('0x75')];_0x3f0b31=this[_0x7b84('0x3c')][_0x3ca557[_0x7b84('0x3b')]][_0x7b84('0xb')];}logger[_0x7b84('0x38')](_0x7b84('0x76'),_0x3ca557[_0x7b84('0x36')],util[_0x7b84('0x3a')]({'id':this[_0x7b84('0x17')][_0x3ca557[_0x7b84('0x42')][_0x7b84('0x45')]('-')[0x0]]['id'],'destaccountcode':this[_0x7b84('0x17')][_0x3ca557[_0x7b84('0x42')][_0x7b84('0x45')]('-')[0x0]][_0x7b84('0x55')],'destconnectedlinenum':_0x3ca557[_0x7b84('0x43')],'routealias':_0x2865b7,'queue':_0x3f0b31||undefined},{'showHidden':![],'depth':null}));this[_0x7b84('0x32')](util['format']('user:%s',this[_0x7b84('0x17')][_0x3ca557[_0x7b84('0x42')][_0x7b84('0x45')]('-')[0x0]][_0x7b84('0x49')]),_0x7b84('0x4a'),{'id':this[_0x7b84('0x17')][_0x3ca557[_0x7b84('0x42')][_0x7b84('0x45')]('-')[0x0]]['id'],'agentconnected':!![],'destaccountcode':this[_0x7b84('0x17')][_0x3ca557[_0x7b84('0x42')]['split']('-')[0x0]][_0x7b84('0x55')],'destconnectedlinenum':_0x3ca557[_0x7b84('0x43')],'routealias':_0x2865b7,'queue':_0x3f0b31||undefined});}}}}catch(_0x1b952e){logger[_0x7b84('0x2e')](_0x7b84('0x77'),_0x3ca557['uniqueid'],util['inspect'](_0x1b952e,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x7b84('0x30')]['syncMixMonitorFilename']=function(_0x2c7edc,_0x17ffc6){try{if(this[_0x7b84('0x3c')][_0x2c7edc]){logger['info'](_0x7b84('0x78'),_0x2c7edc,_0x17ffc6);this['channels'][_0x2c7edc][_0x7b84('0x79')]=!![];if(_[_0x7b84('0x7a')](_0x17ffc6,_0x7b84('0x7b'))){_0x17ffc6=_0x17ffc6[_0x7b84('0x7c')](_0x7b84('0x7b'),_0x7b84('0x7d'));}this[_0x7b84('0x3c')][_0x2c7edc]['monitorFilename']=_0x17ffc6;var _0x57e248=_[_0x7b84('0x7e')](this[_0x7b84('0x3c')][_0x2c7edc][_0x7b84('0x7f')],{'filename':_0x17ffc6});if(_[_0x7b84('0x65')](_0x57e248)){this['channels'][_0x2c7edc]['monitors'][_0x7b84('0x80')]({'filename':_0x17ffc6,'createdAt':moment()[_0x7b84('0x47')](_0x7b84('0x50')),'mixmonitorid':'','status':_0x7b84('0x81')});}}}catch(_0x3c8019){logger[_0x7b84('0x2e')](_0x7b84('0x82'),_0x2c7edc,util[_0x7b84('0x3a')](_0x3c8019,{'showHidden':![],'depth':null}));}};VoiceCallReport['prototype'][_0x7b84('0x20')]=function(_0x10b745){try{if(this['isNotNull'](_0x10b745)){logger[_0x7b84('0x38')](_0x7b84('0x83'),_0x10b745['uniqueid'],util[_0x7b84('0x3a')](_0x10b745,{'showHidden':![],'depth':null}));if(this[_0x7b84('0x3c')][_0x10b745[_0x7b84('0x36')]]&&_0x10b745['channel']!=_0x7b84('0x4d')){if(this[_0x7b84('0x33')](_0x10b745['variable'])){if(this['isNotNull'](_0x10b745['variable'][_0x7b84('0x84')])){logger[_0x7b84('0x34')]('[%s][voiceCallReport][varset]\x20variable:mixmonitor_filename\x20value:%s',_0x10b745[_0x7b84('0x36')],_0x10b745[_0x7b84('0x85')]);this[_0x7b84('0x86')](_0x10b745['uniqueid'],_0x10b745['value']);}else if(this[_0x7b84('0x33')](_0x10b745[_0x7b84('0x87')][_0x7b84('0x88')])){logger[_0x7b84('0x34')](_0x7b84('0x89'),_0x10b745[_0x7b84('0x36')],_0x10b745[_0x7b84('0x85')]);this[_0x7b84('0x3c')][_0x10b745[_0x7b84('0x36')]][_0x7b84('0x37')]=_0x10b745[_0x7b84('0x85')];}else if(this[_0x7b84('0x33')](_0x10b745['variable'][_0x7b84('0x8a')])){logger[_0x7b84('0x34')]('[%s][voiceCallReport][varset]\x20variable:xmd-callerid\x20value:%s',_0x10b745[_0x7b84('0x36')],_0x10b745[_0x7b84('0x85')]);this['channels'][_0x10b745[_0x7b84('0x36')]][_0x7b84('0x8b')]=_0x10b745[_0x7b84('0x85')];}else if(this[_0x7b84('0x33')](_0x10b745[_0x7b84('0x87')][_0x7b84('0x8c')])){logger['info'](_0x7b84('0x8d'),_0x10b745[_0x7b84('0x36')],_0x10b745[_0x7b84('0x85')]);this[_0x7b84('0x3c')][_0x10b745['uniqueid']][_0x7b84('0x8e')]=_0x10b745[_0x7b84('0x85')];}else if(this[_0x7b84('0x33')](_0x10b745[_0x7b84('0x87')][_0x7b84('0x8f')])){logger[_0x7b84('0x34')](_0x7b84('0x90'),_0x10b745[_0x7b84('0x36')],_0x10b745['value'][_0x7b84('0x45')](',')[0x0]);this[_0x7b84('0x3c')][_0x10b745[_0x7b84('0x36')]]['queue']=_0x10b745[_0x7b84('0x85')][_0x7b84('0x45')](',')[0x0];}else if(this[_0x7b84('0x33')](_0x10b745[_0x7b84('0x87')][_0x7b84('0x91')])){logger[_0x7b84('0x34')]('[%s][voiceCallReport][varset]\x20variable:xmd-originatecalleridnum\x20value:%s',_0x10b745['uniqueid'],_0x10b745['value']);this['channels'][_0x10b745['uniqueid']]['originatecalleridnum']=_0x10b745[_0x7b84('0x85')];}else if(this[_0x7b84('0x33')](_0x10b745[_0x7b84('0x87')]['xmd-destination'])){logger['info'](_0x7b84('0x92'),_0x10b745[_0x7b84('0x36')],_0x10b745['value']);this[_0x7b84('0x3c')][_0x10b745[_0x7b84('0x36')]][_0x7b84('0x93')]=_0x10b745[_0x7b84('0x85')];}else if(this[_0x7b84('0x33')](_0x10b745['variable'][_0x7b84('0x94')])){logger[_0x7b84('0x34')](_0x7b84('0x95'),_0x10b745[_0x7b84('0x36')],_0x10b745[_0x7b84('0x85')]);this['channels'][_0x10b745['uniqueid']][_0x7b84('0x96')]=_0x10b745[_0x7b84('0x85')];}else if(this[_0x7b84('0x33')](_0x10b745['variable'][_0x7b84('0x97')])){logger[_0x7b84('0x34')](_0x7b84('0x98'),_0x10b745[_0x7b84('0x36')],_0x10b745[_0x7b84('0x85')]);this['channels'][_0x10b745[_0x7b84('0x36')]][_0x7b84('0xb')]=_0x10b745[_0x7b84('0x85')];}else if(this[_0x7b84('0x33')](_0x10b745['variable'][_0x7b84('0x99')])){logger[_0x7b84('0x34')](_0x7b84('0x9a'),_0x10b745['uniqueid'],_0x10b745[_0x7b84('0x85')]);this[_0x7b84('0x3c')][_0x10b745[_0x7b84('0x36')]]['sipcalluniqueid']=_0x10b745[_0x7b84('0x85')];}}}else if(this[_0x7b84('0x33')](_0x10b745[_0x7b84('0x87')]['mixmonitor_filename'])){if(_0x10b745[_0x7b84('0x85')]){var _0x369d1b=path['parse'](_0x10b745[_0x7b84('0x85')])['name'];logger[_0x7b84('0x34')](_0x7b84('0x9b'),_0x369d1b,_0x10b745['value']);this['syncMixMonitorFilename'](_0x369d1b,_0x10b745['value']);}}else if(this[_0x7b84('0x3c')][_0x10b745['linkedid']]){if(this[_0x7b84('0x33')](_0x10b745[_0x7b84('0x87')])){if(this[_0x7b84('0x33')](_0x10b745[_0x7b84('0x87')][_0x7b84('0x99')])){logger['info'](_0x7b84('0x9a'),_0x10b745[_0x7b84('0x3b')],_0x10b745['value']);this['channels'][_0x10b745['linkedid']][_0x7b84('0x9c')]=_0x10b745['value'];}}}}}catch(_0x2180fe){logger[_0x7b84('0x2e')]('[%s][voiceCallReport][varset]',_0x10b745['uniqueid'],util['inspect'](_0x2180fe,{'showHidden':![],'depth':null}));}};VoiceCallReport['prototype']['syncHangup']=function(_0x4294a2){try{if(this[_0x7b84('0x33')](_0x4294a2)){logger['debug'](_0x7b84('0x9d'),_0x4294a2['uniqueid'],util['inspect'](_0x4294a2,{'showHidden':![],'depth':null}));if(this[_0x7b84('0x18')][_0x4294a2['linkedid']]){if(this[_0x7b84('0x3c')][this[_0x7b84('0x18')][_0x4294a2[_0x7b84('0x3b')]]['linkedid']]){this['channels'][this['blindTransfers'][_0x4294a2[_0x7b84('0x3b')]][_0x7b84('0x3b')]][_0x7b84('0x36')]=_0x4294a2[_0x7b84('0x36')];this['channels'][this['blindTransfers'][_0x4294a2[_0x7b84('0x3b')]][_0x7b84('0x3b')]][_0x7b84('0x6b')]=this[_0x7b84('0x3c')][_0x4294a2['uniqueid']]['answered'];this[_0x7b84('0x3c')][this['blindTransfers'][_0x4294a2['linkedid']][_0x7b84('0x3b')]][_0x7b84('0x6c')]=this[_0x7b84('0x3c')][_0x4294a2['uniqueid']]['answertime'];this['channels'][this['blindTransfers'][_0x4294a2['linkedid']][_0x7b84('0x3b')]][_0x7b84('0x74')]=this['channels'][this[_0x7b84('0x18')][_0x4294a2[_0x7b84('0x3b')]][_0x7b84('0x3b')]][_0x7b84('0x42')];this[_0x7b84('0x3c')][this[_0x7b84('0x18')][_0x4294a2['linkedid']]['linkedid']][_0x7b84('0x51')]=this[_0x7b84('0x3c')][_0x4294a2[_0x7b84('0x36')]][_0x7b84('0x51')];this[_0x7b84('0x3c')][_0x4294a2[_0x7b84('0x36')]]=this[_0x7b84('0x3c')][this['blindTransfers'][_0x4294a2[_0x7b84('0x3b')]][_0x7b84('0x3b')]];delete this[_0x7b84('0x3c')][this[_0x7b84('0x18')][_0x4294a2['linkedid']][_0x7b84('0x3b')]];}else if(this['channels'][this[_0x7b84('0x18')][_0x4294a2[_0x7b84('0x3b')]][_0x7b84('0x36')]]){this[_0x7b84('0x3c')][this[_0x7b84('0x18')][_0x4294a2[_0x7b84('0x3b')]][_0x7b84('0x36')]][_0x7b84('0x36')]=[this[_0x7b84('0x3c')][this[_0x7b84('0x18')][_0x4294a2[_0x7b84('0x3b')]][_0x7b84('0x36')]][_0x7b84('0x3b')],this[_0x7b84('0x3c')][this[_0x7b84('0x18')][_0x4294a2[_0x7b84('0x3b')]][_0x7b84('0x36')]][_0x7b84('0x3b')]=this[_0x7b84('0x3c')][this[_0x7b84('0x18')][_0x4294a2[_0x7b84('0x3b')]]['uniqueid']][_0x7b84('0x36')]][0x0];this['channels'][this['blindTransfers'][_0x4294a2[_0x7b84('0x3b')]]['uniqueid']][_0x7b84('0x6b')]=this[_0x7b84('0x3c')][_0x4294a2[_0x7b84('0x36')]]['answered'];this[_0x7b84('0x3c')][this[_0x7b84('0x18')][_0x4294a2['linkedid']]['uniqueid']][_0x7b84('0x6c')]=this[_0x7b84('0x3c')][_0x4294a2['uniqueid']][_0x7b84('0x6c')];this[_0x7b84('0x3c')][this['blindTransfers'][_0x4294a2[_0x7b84('0x3b')]]['uniqueid']][_0x7b84('0x74')]=this[_0x7b84('0x3c')][this['blindTransfers'][_0x4294a2['linkedid']][_0x7b84('0x36')]][_0x7b84('0x42')];this['channels'][this['blindTransfers'][_0x4294a2['linkedid']]['uniqueid']][_0x7b84('0x51')]=this[_0x7b84('0x3c')][_0x4294a2[_0x7b84('0x36')]][_0x7b84('0x51')];this['channels'][_0x4294a2[_0x7b84('0x36')]]=this[_0x7b84('0x3c')][this[_0x7b84('0x18')][_0x4294a2[_0x7b84('0x3b')]]['uniqueid']];delete this[_0x7b84('0x3c')][this[_0x7b84('0x18')][_0x4294a2[_0x7b84('0x3b')]][_0x7b84('0x36')]];}}if(this['channels'][_0x4294a2['uniqueid']]){logger[_0x7b84('0x34')](_0x7b84('0x9e'),_0x4294a2[_0x7b84('0x36')],_0x4294a2[_0x7b84('0x9f')]);var _0x3135a9=moment();this[_0x7b84('0x3c')][_0x4294a2[_0x7b84('0x36')]][_0x7b84('0xa0')]=_0x3135a9[_0x7b84('0x47')](_0x7b84('0x50'));this['channels'][_0x4294a2['uniqueid']][_0x7b84('0x5e')]=_0x3135a9[_0x7b84('0x72')](this['channels'][_0x4294a2[_0x7b84('0x36')]][_0x7b84('0x4f')],_0x7b84('0x73'));if(this[_0x7b84('0x3c')][_0x4294a2[_0x7b84('0x36')]]['answered']){this[_0x7b84('0x3c')][_0x4294a2['uniqueid']][_0x7b84('0xa1')]=_0x3135a9[_0x7b84('0x72')](this[_0x7b84('0x3c')][_0x4294a2[_0x7b84('0x36')]][_0x7b84('0x6c')],'seconds');this[_0x7b84('0x3c')][_0x4294a2[_0x7b84('0x36')]][_0x7b84('0x6d')]=this[_0x7b84('0x3c')][_0x4294a2[_0x7b84('0x36')]][_0x7b84('0x5e')]-this['channels'][_0x4294a2[_0x7b84('0x36')]][_0x7b84('0xa1')];}if(_0x4294a2[_0x7b84('0x40')]===_0x7b84('0x41')){if(this['agents'][_0x4294a2['channel'][_0x7b84('0x45')]('-')[0x0]]){this[_0x7b84('0x17')][_0x4294a2[_0x7b84('0x42')][_0x7b84('0x45')]('-')[0x0]]=_['omit'](this[_0x7b84('0x17')][_0x4294a2[_0x7b84('0x42')][_0x7b84('0x45')]('-')[0x0]],[_0x7b84('0x46')]);logger[_0x7b84('0x38')](_0x7b84('0xa2'),_0x4294a2[_0x7b84('0x36')],util[_0x7b84('0x3a')]({'id':this[_0x7b84('0x17')][_0x4294a2['channel'][_0x7b84('0x45')]('-')[0x0]]['id'],'destaccountcode':this['agents'][_0x4294a2[_0x7b84('0x42')][_0x7b84('0x45')]('-')[0x0]][_0x7b84('0x55')]},{'showHidden':![],'depth':null}));this[_0x7b84('0x32')](util[_0x7b84('0x47')](_0x7b84('0x48'),this[_0x7b84('0x17')][_0x4294a2[_0x7b84('0x42')][_0x7b84('0x45')]('-')[0x0]][_0x7b84('0x49')]),_0x7b84('0xa3'),{'id':this['agents'][_0x4294a2['channel'][_0x7b84('0x45')]('-')[0x0]]['id'],'destaccountcode':this[_0x7b84('0x17')][_0x4294a2['channel'][_0x7b84('0x45')]('-')[0x0]][_0x7b84('0x55')]});for(var _0x45b293=0x0;_0x45b293<Object[_0x7b84('0x3f')](this[_0x7b84('0x17')])['length'];_0x45b293++){var _0x113cb3=Object[_0x7b84('0x3f')](this[_0x7b84('0x17')])[_0x45b293];var _0x26a39d=this[_0x7b84('0x17')][_0x113cb3];if(_0x26a39d['accountcode']===Number(_0x4294a2[_0x7b84('0x6e')])){this[_0x7b84('0x32')](util[_0x7b84('0x47')](_0x7b84('0x48'),_0x26a39d[_0x7b84('0x49')]),_0x7b84('0xa3'),{'id':_0x26a39d['id'],'destaccountcode':_0x26a39d['accountcode'],'transfer':this['channels'][_0x4294a2['uniqueid']][_0x7b84('0xa4')]});break;}}}}var _0x21e199=this;Promise[_0x7b84('0xa5')]()[_0x7b84('0xa6')](function(){var _0x55fbb5=_0x21e199[_0x7b84('0x3c')][_0x4294a2[_0x7b84('0x36')]];if(typeof _0x55fbb5[_0x7b84('0xa4')]==='undefined')return;if(_[_0x7b84('0xa7')](_0x55fbb5[_0x7b84('0x7f')]))return;return RpcSetting[_0x7b84('0xa8')]()[_0x7b84('0xa6')](function(_0x3bf4e2){if(!_0x3bf4e2[_0x7b84('0xa9')])return;return Promise[_0x7b84('0xa5')]()[_0x7b84('0xa6')](function(){return ami[_0x7b84('0xaa')]({'action':'StopMixMonitor','channel':_0x55fbb5[_0x7b84('0x42')]})[_0x7b84('0xab')](function(){});})[_0x7b84('0xa6')](function(){return ami[_0x7b84('0xaa')]({'action':_0x7b84('0xac'),'channel':_0x55fbb5[_0x7b84('0x74')]})['catch'](function(){})[_0x7b84('0xad')](function(){var _0xc8865d=_0x21e199[_0x7b84('0x17')][_0x55fbb5[_0x7b84('0x74')][_0x7b84('0x45')]('-')[0x0]];if(!_0xc8865d)return;io['emit'](_0x7b84('0xae'),{'agentId':_0xc8865d['id'],'uniqueid':_0x55fbb5[_0x7b84('0x36')]});});});});})[_0x7b84('0xa6')](function(){if(_0x4294a2[_0x7b84('0xaf')]===_0x7b84('0xb0')){_0x21e199['blindTransfers'][_0x4294a2[_0x7b84('0x36')]]=_0x4294a2;}else{if(_0x21e199[_0x7b84('0x3c')][_0x4294a2[_0x7b84('0x36')]][_0x7b84('0x8e')]===_0x7b84('0xb1')&&_0x21e199[_0x7b84('0x18')][_0x4294a2['uniqueid']]){_0x21e199[_0x7b84('0x3c')][_0x4294a2[_0x7b84('0x36')]][_0x7b84('0x36')]=[_0x21e199['channels'][_0x4294a2['uniqueid']]['linkedid'],_0x21e199[_0x7b84('0x3c')][_0x4294a2[_0x7b84('0x36')]][_0x7b84('0x3b')]=_0x21e199[_0x7b84('0x3c')][_0x4294a2[_0x7b84('0x36')]][_0x7b84('0x36')]][0x0];delete _0x21e199[_0x7b84('0x18')][_0x4294a2[_0x7b84('0x36')]];}}logger[_0x7b84('0x38')](_0x7b84('0xb2'),_0x4294a2[_0x7b84('0x36')],util[_0x7b84('0x3a')](_0x21e199[_0x7b84('0x3c')][_0x4294a2[_0x7b84('0x36')]],{'showHidden':![],'depth':null}));ami[_0x7b84('0x32')](_0x7b84('0xb3'),_0x21e199[_0x7b84('0x3c')][_0x4294a2[_0x7b84('0x36')]]);delete _0x21e199['channels'][_0x4294a2[_0x7b84('0x36')]];});}}}catch(_0x506ff1){logger[_0x7b84('0x2e')](_0x7b84('0xb4'),_0x4294a2[_0x7b84('0x36')],util['inspect'](_0x506ff1,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x7b84('0x30')][_0x7b84('0x26')]=function(_0x2e3057){try{if(this[_0x7b84('0x33')](_0x2e3057)){logger[_0x7b84('0x34')](_0x7b84('0xb5'),_0x2e3057[_0x7b84('0x36')],_0x2e3057[_0x7b84('0xb6')],_0x2e3057[_0x7b84('0xb7')]);logger[_0x7b84('0x38')](_0x7b84('0xb8'),_0x2e3057[_0x7b84('0x36')],util['inspect'](_0x2e3057,{'showHidden':![],'depth':null}));var _0xe5b2d3;if(this['channels'][_0x2e3057[_0x7b84('0xb9')]]){this[_0x7b84('0x3c')][_0x2e3057[_0x7b84('0xb9')]][_0x7b84('0xba')]=_0x2e3057[_0x7b84('0xb6')];this[_0x7b84('0x3c')][_0x2e3057[_0x7b84('0xb9')]][_0x7b84('0xbb')]=_0x2e3057[_0x7b84('0xb7')];if(this[_0x7b84('0x3c')][_0x2e3057[_0x7b84('0xbc')]]){_0xe5b2d3=this[_0x7b84('0x3c')][_0x2e3057[_0x7b84('0xbc')]];this[_0x7b84('0x3c')][_0x2e3057[_0x7b84('0xbc')]]=this[_0x7b84('0x3c')][_0x2e3057[_0x7b84('0xb9')]];this[_0x7b84('0x3c')][_0x2e3057[_0x7b84('0xb9')]]=_0xe5b2d3;}this['channels'][_0x2e3057[_0x7b84('0xbc')]][_0x7b84('0xa4')]=_0x7b84('0xbd');}else if(this[_0x7b84('0x3c')][_0x2e3057['transfertargetuniqueid']]){this['channels'][_0x2e3057[_0x7b84('0xbe')]][_0x7b84('0xba')]=_0x2e3057['origtransferercalleridnum'];this[_0x7b84('0x3c')][_0x2e3057[_0x7b84('0xbe')]][_0x7b84('0xbb')]=_0x2e3057['transfertargetcalleridnum'];if(this[_0x7b84('0x3c')][_0x2e3057[_0x7b84('0xbf')]]){_0xe5b2d3=this['channels'][_0x2e3057['origtransfereruniqueid']];this[_0x7b84('0x3c')][_0x2e3057[_0x7b84('0xbf')]]=this['channels'][_0x2e3057[_0x7b84('0xbe')]];this['channels'][_0x2e3057[_0x7b84('0xbe')]]=_0xe5b2d3;}this[_0x7b84('0x3c')][_0x2e3057['transfertargetuniqueid']][_0x7b84('0xa4')]='ATTENDED';}if((this[_0x7b84('0x3c')][_0x2e3057[_0x7b84('0xbf')]]||this[_0x7b84('0x3c')][_0x2e3057['origtransfererlinkedid']])&&this[_0x7b84('0x3c')][_0x2e3057[_0x7b84('0xbc')]]){var _0x5733b4=_[_0x7b84('0xc0')]([this[_0x7b84('0x3c')][_0x2e3057['origtransfereruniqueid']],this[_0x7b84('0x3c')][_0x2e3057['origtransfererlinkedid']],this[_0x7b84('0x3c')][_0x2e3057['secondtransfereruniqueid']]],function(_0x1466c5){return _0x1466c5&&_0x1466c5[_0x7b84('0x8e')]===_0x7b84('0xb1')&&_0x1466c5[_0x7b84('0xc1')];});if(_0x5733b4){if(this[_0x7b84('0x3c')][_0x2e3057['origtransfereruniqueid']])this[_0x7b84('0x3c')][_0x2e3057[_0x7b84('0xbf')]]['transferType']='ATTENDED';if(this[_0x7b84('0x3c')][_0x2e3057['origtransfererlinkedid']])this[_0x7b84('0x3c')][_0x2e3057['origtransfererlinkedid']][_0x7b84('0xa4')]='ATTENDED';this['channels'][_0x2e3057[_0x7b84('0xbc')]][_0x7b84('0xa4')]='ATTENDED';}}}}catch(_0x17b6fa){logger[_0x7b84('0x2e')](_0x7b84('0xc2'),_0x2e3057[_0x7b84('0x36')],util[_0x7b84('0x3a')](_0x17b6fa,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x7b84('0x30')][_0x7b84('0x28')]=function(_0x1dd867){try{if(this[_0x7b84('0x33')](_0x1dd867)){logger['info'](_0x7b84('0xc3'),_0x1dd867[_0x7b84('0x36')],_0x1dd867[_0x7b84('0xc4')],_0x1dd867['extension']);logger['debug']('[%s][voiceCallReport][blindtransfer]\x20event:',_0x1dd867[_0x7b84('0x36')],util[_0x7b84('0x3a')](_0x1dd867,{'showHidden':![],'depth':null}));if(this[_0x7b84('0x3c')][_0x1dd867[_0x7b84('0xb9')]]){this['channels'][_0x1dd867['transfereeuniqueid']][_0x7b84('0xba')]=_0x1dd867[_0x7b84('0xc4')];this[_0x7b84('0x3c')][_0x1dd867[_0x7b84('0xb9')]][_0x7b84('0xbb')]=_0x1dd867[_0x7b84('0xc5')];this[_0x7b84('0x3c')][_0x1dd867[_0x7b84('0xb9')]][_0x7b84('0xa4')]='BLIND';this['syncHangup']({'event':_0x7b84('0xb0'),'uniqueid':_0x1dd867['transfereeuniqueid'],'linkedid':_0x1dd867[_0x7b84('0xc6')],'context':_0x1dd867['context'],'channel':_0x1dd867[_0x7b84('0xc7')]});}else{this['channels'][_0x1dd867[_0x7b84('0xc6')]][_0x7b84('0xa4')]=_0x7b84('0xc8');this[_0x7b84('0x22')]({'event':_0x7b84('0xb0'),'uniqueid':_0x1dd867[_0x7b84('0xc6')],'linkedid':_0x1dd867[_0x7b84('0xb9')],'context':_0x1dd867['context'],'channel':_0x1dd867[_0x7b84('0xc7')]});}}}catch(_0x5b264e){logger[_0x7b84('0x2e')]('[%s][voiceCallReport][blindtransfer]',_0x1dd867[_0x7b84('0x36')],util[_0x7b84('0x3a')](_0x5b264e,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x7b84('0x30')][_0x7b84('0x2a')]=function(_0x2e47d7){try{if(this[_0x7b84('0x33')](_0x2e47d7)){logger['debug'](_0x7b84('0xc9'),_0x2e47d7[_0x7b84('0x36')],util[_0x7b84('0x3a')](_0x2e47d7,{'showHidden':![],'depth':null}));if(this[_0x7b84('0x3c')][_0x2e47d7[_0x7b84('0x36')]]){if(!_[_0x7b84('0x65')](this[_0x7b84('0x3c')][_0x2e47d7[_0x7b84('0x36')]]['answertime'])){this[_0x7b84('0x3c')][_0x2e47d7[_0x7b84('0x36')]][_0x7b84('0xca')]=moment()[_0x7b84('0x47')](_0x7b84('0x50'));logger[_0x7b84('0x34')](_0x7b84('0xcb'),_0x2e47d7['uniqueid'],this[_0x7b84('0x3c')][_0x2e47d7[_0x7b84('0x36')]]['mohstarttime']);}}}}catch(_0x2f817f){logger[_0x7b84('0x2e')](_0x7b84('0xcc'),_0x2e47d7[_0x7b84('0x36')],util['inspect'](_0x2f817f,{'showHidden':![],'depth':null}));}};VoiceCallReport[_0x7b84('0x30')][_0x7b84('0x2c')]=function(_0x3ef023){try{if(this[_0x7b84('0x33')](_0x3ef023)){logger[_0x7b84('0x38')](_0x7b84('0xcd'),_0x3ef023[_0x7b84('0x36')],util[_0x7b84('0x3a')](_0x3ef023,{'showHidden':![],'depth':null}));if(this[_0x7b84('0x3c')][_0x3ef023[_0x7b84('0x36')]]){if(!_[_0x7b84('0x65')](this[_0x7b84('0x3c')][_0x3ef023[_0x7b84('0x36')]][_0x7b84('0xca')])){this['channels'][_0x3ef023[_0x7b84('0x36')]][_0x7b84('0xce')]+=moment()['milliseconds'](0x0)['diff'](this['channels'][_0x3ef023['uniqueid']][_0x7b84('0xca')],_0x7b84('0x73'));logger[_0x7b84('0x34')]('[%s][voiceCallReport][musiconholdstop]\x20mohtime:%s',_0x3ef023[_0x7b84('0x36')],this[_0x7b84('0x3c')][_0x3ef023[_0x7b84('0x36')]][_0x7b84('0xce')]);delete this[_0x7b84('0x3c')][_0x3ef023[_0x7b84('0x36')]][_0x7b84('0xca')];}}}}catch(_0x51b153){logger['error'](_0x7b84('0xcf'),_0x3ef023[_0x7b84('0x36')],util[_0x7b84('0x3a')](_0x51b153,{'showHidden':![],'depth':null}));}};module[_0x7b84('0xd0')]=VoiceCallReport;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc126=['privilege','info','[%s][voiceDialReport][dialbegin]\x20agent:%s\x20interface:%s\x20lastevent:called','membername','interface','inspect','applications','voice_outbound_channel:save','error','[%s][voiceDialReport][dialbegin]','dialstatus','ANSWER','connectedlinenum','connectedlinename','format','lastevent','[%s][voiceDialReport][dialend]\x20agent:%s\x20lastevent:connect','[%s][voiceDialReport][dialend]\x20sending\x20dialconnect\x20event:','custom:dialconnect','voice:outbound','[%s][voiceDialReport][dialend]','[%s][voiceDialReport][varset]\x20event:','variable','outboundrouteid','value','voice','[%s][voiceDialReport][varset]\x20outboundrouteid:%s\x20variable:%s\x20value:%s','keys','addVariable','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosjitterbridged','rtpaudioqosloss','rtpaudioqoslossbridged','sipcallid','sipuri','bridgepeer','bridgepvtcallid','membercalls','memberinterface','memberpenalty','memberrealtime','isNil','[%s][voiceDialReport][hangup]\x20event:','[%s][voiceDialReport][hangup]\x20reason:%s\x20lasteevent:complete','cause-txt','endtime','diff','starttime','seconds','complete','total','answertime','answered','holdtime','billableseconds','sumHoldTime','sumBillable','sumDuration','duration','[%s][voiceDialReport][hangup]\x20sending\x20voiceDialReport\x20event:','custom:voiceDialReport','[%s][voiceDialReport][hangup]\x20sending\x20dialend\x20event:','voice_outbound:save','[DEBUG]\x20Emit\x20voice_outbound_channel:remove\x20event','voice_outbound_channel:remove','linkedid','destuniqueid','[%s][voiceDialReport][hangup]','[%s][voiceDialReport][newexten]\x20event:','toLowerCase','set','applicationdata','appdata','startsWith','cdr(','[%s][voiceDialReport][newexten]\x20application:%s\x20appdata:%s','application','split','match','[%s][voiceDialReport][newexten]','exports','lodash','moment','util','ioredis','../ami','redis','defaults','localhost','socket.io-emitter','channels','outbound','variables','dialbegin','syncDialBegin','bind','syncDialEnd','varset','syncVarSet','newexten','syncNewExten','hangup','syncHangup','prototype','isNotNull','isUndefined','emit','debug','[%s][voiceDialReport][dialbegin]\x20event:','uniqueid','merge','YYYY-MM-DD\x20HH:mm:ss','called','channel','substring','lastIndexOf','omit'];(function(_0x48bbea,_0x3e96bb){var _0x2d5c14=function(_0x3bc44d){while(--_0x3bc44d){_0x48bbea['push'](_0x48bbea['shift']());}};_0x2d5c14(++_0x3e96bb);}(_0xc126,0x1b4));var _0x6c12=function(_0x1e79b9,_0x4e678e){_0x1e79b9=_0x1e79b9-0x0;var _0x4354ec=_0xc126[_0x1e79b9];return _0x4354ec;};'use strict';var _=require(_0x6c12('0x0'));var moment=require(_0x6c12('0x1'));var util=require(_0x6c12('0x2'));var Redis=require(_0x6c12('0x3'));var config=require('../../../config/environment');var logger=require('../../../config/logger')('ami');var ami=require(_0x6c12('0x4'));config[_0x6c12('0x5')]=_[_0x6c12('0x6')](config[_0x6c12('0x5')],{'host':_0x6c12('0x7'),'port':0x18eb});var io=require(_0x6c12('0x8'))(new Redis(config[_0x6c12('0x5')]));function VoiceDialReport(_0x5b3e4a){this[_0x6c12('0x9')]=_0x5b3e4a['outboundChannels'];this[_0x6c12('0xa')]=_0x5b3e4a[_0x6c12('0xa')];this['applications']={};this[_0x6c12('0xb')]={};ami['on'](_0x6c12('0xc'),this[_0x6c12('0xd')][_0x6c12('0xe')](this));ami['on']('dialend',this[_0x6c12('0xf')][_0x6c12('0xe')](this));ami['on'](_0x6c12('0x10'),this[_0x6c12('0x11')][_0x6c12('0xe')](this));ami['on'](_0x6c12('0x12'),this[_0x6c12('0x13')][_0x6c12('0xe')](this));ami['on'](_0x6c12('0x14'),this[_0x6c12('0x15')]['bind'](this));}VoiceDialReport[_0x6c12('0x16')][_0x6c12('0x17')]=function(_0xbbef86){return _0xbbef86!==null&&!_[_0x6c12('0x18')](_0xbbef86);};VoiceDialReport[_0x6c12('0x16')][_0x6c12('0x19')]=function(_0x368528,_0x423582,_0x449796){io['to'](_0x368528)[_0x6c12('0x19')](_0x423582,_0x449796);};VoiceDialReport[_0x6c12('0x16')]['syncDialBegin']=function(_0x4a3d9f){try{if(this['isNotNull'](_0x4a3d9f)){logger[_0x6c12('0x1a')](_0x6c12('0x1b'),_0x4a3d9f[_0x6c12('0x1c')],util['inspect'](_0x4a3d9f,{'showHidden':![],'depth':null}));if(this[_0x6c12('0x9')][_0x4a3d9f[_0x6c12('0x1c')]]){_[_0x6c12('0x1d')](this[_0x6c12('0x9')][_0x4a3d9f['uniqueid']],{'starttime':moment()['format'](_0x6c12('0x1e')),'lastevent':_0x6c12('0x1f'),'interface':_0x4a3d9f[_0x6c12('0x20')][_0x6c12('0x21')](0x0,_0x4a3d9f[_0x6c12('0x20')][_0x6c12('0x22')]('-')),'membername':_0x4a3d9f[_0x6c12('0x20')][_0x6c12('0x21')](_0x4a3d9f[_0x6c12('0x20')][_0x6c12('0x22')]('/')+0x1,_0x4a3d9f['channel'][_0x6c12('0x22')]('-'))},_[_0x6c12('0x23')](_0x4a3d9f,['event',_0x6c12('0x24')]));logger[_0x6c12('0x25')](_0x6c12('0x26'),_0x4a3d9f[_0x6c12('0x1c')],this['channels'][_0x4a3d9f[_0x6c12('0x1c')]][_0x6c12('0x27')],this[_0x6c12('0x9')][_0x4a3d9f[_0x6c12('0x1c')]][_0x6c12('0x28')]);logger[_0x6c12('0x1a')]('[%s][voiceDialReport][dialbegin]\x20sending\x20voice_outbound_channel:save\x20event:',_0x4a3d9f['uniqueid'],util[_0x6c12('0x29')](this[_0x6c12('0x9')][_0x4a3d9f[_0x6c12('0x1c')]],{'showHidden':![],'depth':null}));if(this[_0x6c12('0x2a')][_0x4a3d9f[_0x6c12('0x1c')]])_[_0x6c12('0x1d')](this[_0x6c12('0x9')][_0x4a3d9f['uniqueid']],this['applications'][_0x4a3d9f['uniqueid']]);this[_0x6c12('0x19')]('voice:outbound',_0x6c12('0x2b'),this[_0x6c12('0x9')][_0x4a3d9f[_0x6c12('0x1c')]]);logger[_0x6c12('0x1a')]('[%s][voiceDialReport][dialbegin]\x20sending\x20dialbegin\x20event:',_0x4a3d9f[_0x6c12('0x1c')],util[_0x6c12('0x29')](this['channels'][_0x4a3d9f[_0x6c12('0x1c')]],{'showHidden':![],'depth':null}));ami[_0x6c12('0x19')]('custom:dialbegin',this[_0x6c12('0x9')][_0x4a3d9f['uniqueid']]);}}}catch(_0x1cec80){logger[_0x6c12('0x2c')](_0x6c12('0x2d'),_0x4a3d9f[_0x6c12('0x1c')],util[_0x6c12('0x29')](_0x1cec80,{'showHidden':![],'depth':null}));}};VoiceDialReport[_0x6c12('0x16')]['syncDialEnd']=function(_0x115f09){try{if(this['isNotNull'](_0x115f09)){logger[_0x6c12('0x1a')]('[%s][voiceDialReport][dialend]\x20event:',_0x115f09[_0x6c12('0x1c')],util['inspect'](_0x115f09,{'showHidden':![],'depth':null}));if(this['channels'][_0x115f09[_0x6c12('0x1c')]]){this[_0x6c12('0x9')][_0x115f09[_0x6c12('0x1c')]][_0x6c12('0x2e')]=_0x115f09[_0x6c12('0x2e')];if(_0x115f09[_0x6c12('0x2e')]===_0x6c12('0x2f')){this['channels'][_0x115f09[_0x6c12('0x1c')]]['connectedlinenum']=_0x115f09[_0x6c12('0x30')];this['channels'][_0x115f09[_0x6c12('0x1c')]][_0x6c12('0x31')]=_0x115f09[_0x6c12('0x31')];this['channels'][_0x115f09['uniqueid']]['answertime']=moment()[_0x6c12('0x32')](_0x6c12('0x1e'));this[_0x6c12('0x9')][_0x115f09[_0x6c12('0x1c')]][_0x6c12('0x33')]='connect';logger[_0x6c12('0x25')](_0x6c12('0x34'),_0x115f09[_0x6c12('0x1c')],_0x115f09[_0x6c12('0x20')][_0x6c12('0x21')](_0x115f09['channel'][_0x6c12('0x22')]('/')+0x1,_0x115f09[_0x6c12('0x20')][_0x6c12('0x22')]('-')));logger[_0x6c12('0x1a')](_0x6c12('0x35'),_0x115f09[_0x6c12('0x1c')],util[_0x6c12('0x29')](this[_0x6c12('0x9')][_0x115f09[_0x6c12('0x1c')]],{'showHidden':![],'depth':null}));ami[_0x6c12('0x19')](_0x6c12('0x36'),this[_0x6c12('0x9')][_0x115f09[_0x6c12('0x1c')]]);}logger[_0x6c12('0x1a')]('[%s][voiceDialReport][dialend]\x20sending\x20voice_outbound_channel:save\x20event:',_0x115f09[_0x6c12('0x1c')],util[_0x6c12('0x29')](this['channels'][_0x115f09['uniqueid']],{'showHidden':![],'depth':null}));this[_0x6c12('0x19')](_0x6c12('0x37'),'voice_outbound_channel:save',this[_0x6c12('0x9')][_0x115f09[_0x6c12('0x1c')]]);}}}catch(_0x293bb9){logger[_0x6c12('0x2c')](_0x6c12('0x38'),_0x115f09[_0x6c12('0x1c')],util[_0x6c12('0x29')](_0x293bb9,{'showHidden':![],'depth':null}));}};VoiceDialReport[_0x6c12('0x16')][_0x6c12('0x11')]=function(_0x5a6734){try{if(this[_0x6c12('0x17')](_0x5a6734)){logger[_0x6c12('0x1a')](_0x6c12('0x39'),_0x5a6734[_0x6c12('0x1c')],util[_0x6c12('0x29')](_0x5a6734,{'showHidden':![],'depth':null}));this['addVariable'](_0x5a6734['uniqueid'],_['keys'](_0x5a6734['variable'])[0x0],_0x5a6734['value']);if(this['isNotNull'](_0x5a6734[_0x6c12('0x3a')])&&this[_0x6c12('0x17')](_0x5a6734[_0x6c12('0x3a')][_0x6c12('0x3b')])){if(_[_0x6c12('0x18')](this[_0x6c12('0x9')][_0x5a6734['uniqueid']])){this[_0x6c12('0x9')][_0x5a6734[_0x6c12('0x1c')]]={'routeId':_0x5a6734[_0x6c12('0x3c')],'variables':this[_0x6c12('0xb')][_0x5a6734[_0x6c12('0x1c')]],'motionChannel':_0x6c12('0x3d')};logger[_0x6c12('0x25')](_0x6c12('0x3e'),_0x5a6734[_0x6c12('0x1c')],_0x5a6734[_0x6c12('0x3a')][_0x6c12('0x3b')],_[_0x6c12('0x3f')](_0x5a6734[_0x6c12('0x3a')])[0x0],_0x5a6734[_0x6c12('0x3c')]);logger[_0x6c12('0x1a')]('[%s][voiceDialReport][varset]\x20sending\x20voice_outbound_channel:save\x20event:',_0x5a6734[_0x6c12('0x1c')],util['inspect'](this['channels'][_0x5a6734[_0x6c12('0x1c')]],{'showHidden':![],'depth':null}));this[_0x6c12('0x19')](_0x6c12('0x37'),_0x6c12('0x2b'),this[_0x6c12('0x9')][_0x5a6734[_0x6c12('0x1c')]]);}}}}catch(_0x2eb38b){logger[_0x6c12('0x2c')]('[%s][voiceDialReport][varset]',_0x5a6734[_0x6c12('0x1c')],util['inspect'](_0x2eb38b,{'showHidden':![],'depth':null}));}};VoiceDialReport['prototype'][_0x6c12('0x40')]=function(_0x6e7e46,_0xc6f974,_0x4a5bed){var _0x2abc35=[_0x6c12('0x41'),_0x6c12('0x42'),'rtpaudioqosjitter',_0x6c12('0x43'),_0x6c12('0x44'),_0x6c12('0x45'),'rtpaudioqosrtt','rtpaudioqosrttbridged',_0x6c12('0x46'),_0x6c12('0x47'),_0x6c12('0x48'),_0x6c12('0x49'),_0x6c12('0x4a'),'memberdynamic',_0x6c12('0x4b'),'memberlastcall',_0x6c12('0x27'),_0x6c12('0x4c'),_0x6c12('0x4d')];if(!_[_0x6c12('0x4e')](_0xc6f974)&&!_['includes'](_0x2abc35,_0xc6f974)){if(_['isUndefined'](this[_0x6c12('0xb')][_0x6e7e46])){this[_0x6c12('0xb')][_0x6e7e46]={};}this[_0x6c12('0xb')][_0x6e7e46][_0xc6f974]=_0x4a5bed;}};VoiceDialReport['prototype']['syncHangup']=function(_0x1c0205){try{if(this[_0x6c12('0x17')](_0x1c0205)){logger[_0x6c12('0x1a')](_0x6c12('0x4f'),_0x1c0205[_0x6c12('0x1c')],util[_0x6c12('0x29')](_0x1c0205,{'showHidden':![],'depth':null}));if(this[_0x6c12('0x9')][_0x1c0205['uniqueid']]){logger[_0x6c12('0x25')](_0x6c12('0x50'),_0x1c0205[_0x6c12('0x1c')],_0x1c0205[_0x6c12('0x51')]);this[_0x6c12('0x9')][_0x1c0205[_0x6c12('0x1c')]][_0x6c12('0x52')]=moment()[_0x6c12('0x32')](_0x6c12('0x1e'));this[_0x6c12('0x9')][_0x1c0205[_0x6c12('0x1c')]]['duration']=moment(this['channels'][_0x1c0205[_0x6c12('0x1c')]][_0x6c12('0x52')])[_0x6c12('0x53')](this[_0x6c12('0x9')][_0x1c0205[_0x6c12('0x1c')]][_0x6c12('0x54')],_0x6c12('0x55'));this[_0x6c12('0x9')][_0x1c0205[_0x6c12('0x1c')]][_0x6c12('0x33')]=_0x6c12('0x56');this['outbound'][_0x6c12('0x57')]+=0x1;if(this[_0x6c12('0x9')][_0x1c0205[_0x6c12('0x1c')]][_0x6c12('0x58')]){this['outbound'][_0x6c12('0x59')]+=0x1;this[_0x6c12('0x9')][_0x1c0205['uniqueid']][_0x6c12('0x5a')]=moment(this[_0x6c12('0x9')][_0x1c0205[_0x6c12('0x1c')]][_0x6c12('0x58')])[_0x6c12('0x53')](this['channels'][_0x1c0205[_0x6c12('0x1c')]][_0x6c12('0x54')],_0x6c12('0x55'));this[_0x6c12('0x9')][_0x1c0205['uniqueid']][_0x6c12('0x5b')]=moment(this[_0x6c12('0x9')][_0x1c0205[_0x6c12('0x1c')]]['endtime'])[_0x6c12('0x53')](this[_0x6c12('0x9')][_0x1c0205[_0x6c12('0x1c')]][_0x6c12('0x58')],_0x6c12('0x55'));this['outbound'][_0x6c12('0x5c')]+=this['channels'][_0x1c0205[_0x6c12('0x1c')]][_0x6c12('0x5a')]||0x0;this[_0x6c12('0xa')][_0x6c12('0x5d')]+=this[_0x6c12('0x9')][_0x1c0205['uniqueid']]['billableseconds'];}this['outbound'][_0x6c12('0x5e')]+=this[_0x6c12('0x9')][_0x1c0205[_0x6c12('0x1c')]][_0x6c12('0x5f')];logger['debug'](_0x6c12('0x60'),_0x1c0205[_0x6c12('0x1c')],util[_0x6c12('0x29')](this[_0x6c12('0x9')][_0x1c0205[_0x6c12('0x1c')]],{'showHidden':![],'depth':null}));ami[_0x6c12('0x19')](_0x6c12('0x61'),this[_0x6c12('0x9')][_0x1c0205['uniqueid']]);logger[_0x6c12('0x1a')](_0x6c12('0x62'),_0x1c0205[_0x6c12('0x1c')],util[_0x6c12('0x29')](this[_0x6c12('0x9')][_0x1c0205['uniqueid']],{'showHidden':![],'depth':null}));ami[_0x6c12('0x19')]('custom:dialend',this[_0x6c12('0x9')][_0x1c0205['uniqueid']]);logger[_0x6c12('0x1a')]('[%s][voiceDialReport][hangup]\x20sending\x20voice_outbound:save\x20event:',_0x1c0205[_0x6c12('0x1c')],util[_0x6c12('0x29')](this[_0x6c12('0x9')][_0x1c0205[_0x6c12('0x1c')]],{'showHidden':![],'depth':null}));this['emit'](_0x6c12('0x37'),_0x6c12('0x63'),this[_0x6c12('0xa')]);logger[_0x6c12('0x25')](_0x6c12('0x64'),JSON['stringify'](this[_0x6c12('0x9')][_0x1c0205['uniqueid']]));logger[_0x6c12('0x1a')]('[%s][voiceDialReport][hangup]\x20sending\x20voice_outbound_channel:remove\x20event:',_0x1c0205[_0x6c12('0x1c')],util[_0x6c12('0x29')](this['channels'][_0x1c0205[_0x6c12('0x1c')]],{'showHidden':![],'depth':null}));this[_0x6c12('0x19')]('voice:outbound',_0x6c12('0x65'),this[_0x6c12('0x9')][_0x1c0205['uniqueid']]);delete this[_0x6c12('0x9')][_0x1c0205['uniqueid']];}else if(this['channels'][_0x1c0205[_0x6c12('0x66')]]){this[_0x6c12('0x9')][_0x1c0205['linkedid']][_0x6c12('0x1c')]=this[_0x6c12('0x9')][_0x1c0205[_0x6c12('0x66')]][_0x6c12('0x67')];}if(this[_0x6c12('0xb')][_0x1c0205[_0x6c12('0x1c')]]){delete this['variables'][_0x1c0205[_0x6c12('0x1c')]];}}}catch(_0x3068bb){logger[_0x6c12('0x2c')](_0x6c12('0x68'),_0x1c0205['uniqueid'],util[_0x6c12('0x29')](_0x3068bb,{'showHidden':![],'depth':null}));}};VoiceDialReport[_0x6c12('0x16')][_0x6c12('0x13')]=function(_0x528a79){try{if(this[_0x6c12('0x17')](_0x528a79)){logger[_0x6c12('0x1a')](_0x6c12('0x69'),_0x528a79[_0x6c12('0x1c')],util['inspect'](_0x528a79,{'showHidden':![],'depth':null}));if(_0x528a79['application'][_0x6c12('0x6a')]()===_0x6c12('0x6b')){_0x528a79[_0x6c12('0x6c')]=(_0x528a79[_0x6c12('0x6d')]||_0x528a79[_0x6c12('0x6c')])['toLowerCase']();if(_[_0x6c12('0x6e')](_0x528a79[_0x6c12('0x6c')],_0x6c12('0x6f'))){if(_['isUndefined'](this[_0x6c12('0x2a')][_0x528a79['uniqueid']]))this[_0x6c12('0x2a')][_0x528a79[_0x6c12('0x1c')]]={};logger[_0x6c12('0x25')](_0x6c12('0x70'),_0x528a79['uniqueid'],_0x528a79[_0x6c12('0x71')],_0x528a79[_0x6c12('0x6c')]);var _0x385d72=_0x528a79[_0x6c12('0x6c')][_0x6c12('0x72')]('=');var _0x17e786=_0x385d72[0x0][_0x6c12('0x73')](/cdr\((.*)\)/);if(_0x17e786)this['applications'][_0x528a79[_0x6c12('0x1c')]][_0x17e786[0x1]]=_0x385d72[0x1];}}}}catch(_0x3168d3){logger[_0x6c12('0x2c')](_0x6c12('0x74'),_0x528a79[_0x6c12('0x1c')],util[_0x6c12('0x29')](_0x3168d3,{'showHidden':![],'depth':null}));}};module[_0x6c12('0x75')]=VoiceDialReport;
\ No newline at end of file
+var _0x262d=['variables','[%s][voiceDialReport][varset]\x20outboundrouteid:%s\x20variable:%s\x20value:%s','outboundrouteid','keys','[%s][voiceDialReport][varset]\x20sending\x20voice_outbound_channel:save\x20event:','[%s][voiceDialReport][varset]','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosjitterbridged','rtpaudioqosloss','rtpaudioqoslossbridged','rtpaudioqosrtt','rtpaudioqosrttbridged','sipuri','bridgepeer','membercalls','memberdynamic','memberinterface','memberlastcall','memberrealtime','includes','[%s][voiceDialReport][hangup]\x20event:','[%s][voiceDialReport][hangup]\x20reason:%s\x20lasteevent:complete','cause-txt','endtime','duration','diff','starttime','complete','total','holdtime','seconds','billableseconds','sumHoldTime','sumDuration','[%s][voiceDialReport][hangup]\x20sending\x20voiceDialReport\x20event:','custom:voiceDialReport','[%s][voiceDialReport][hangup]\x20sending\x20dialend\x20event:','[%s][voiceDialReport][hangup]\x20sending\x20voice_outbound:save\x20event:','voice_outbound:save','[DEBUG]\x20Emit\x20voice_outbound_channel:remove\x20event','stringify','[%s][voiceDialReport][hangup]\x20sending\x20voice_outbound_channel:remove\x20event:','voice_outbound_channel:remove','linkedid','destuniqueid','syncNewExten','application','toLowerCase','set','appdata','applicationdata','cdr(','applications','[%s][voiceDialReport][newexten]\x20application:%s\x20appdata:%s','match','[%s][voiceDialReport][newexten]','lodash','moment','util','../../../config/environment','ami','../ami','redis','localhost','socket.io-emitter','channels','outboundChannels','outbound','dialbegin','syncDialBegin','bind','dialend','syncDialEnd','varset','syncVarSet','newexten','hangup','syncHangup','prototype','emit','isNotNull','debug','[%s][voiceDialReport][dialbegin]\x20event:','uniqueid','inspect','merge','format','YYYY-MM-DD\x20HH:mm:ss','called','channel','substring','lastIndexOf','omit','event','privilege','info','[%s][voiceDialReport][dialbegin]\x20agent:%s\x20interface:%s\x20lastevent:called','membername','interface','[%s][voiceDialReport][dialbegin]\x20sending\x20voice_outbound_channel:save\x20event:','voice_outbound_channel:save','[%s][voiceDialReport][dialbegin]\x20sending\x20dialbegin\x20event:','custom:dialbegin','error','[%s][voiceDialReport][dialbegin]','[%s][voiceDialReport][dialend]\x20event:','dialstatus','connectedlinenum','connectedlinename','answertime','lastevent','connect','[%s][voiceDialReport][dialend]\x20agent:%s\x20lastevent:connect','custom:dialconnect','[%s][voiceDialReport][dialend]\x20sending\x20voice_outbound_channel:save\x20event:','voice:outbound','[%s][voiceDialReport][varset]\x20event:','addVariable','variable','value','isUndefined'];(function(_0x176329,_0x568c84){var _0x31997c=function(_0x3d64df){while(--_0x3d64df){_0x176329['push'](_0x176329['shift']());}};_0x31997c(++_0x568c84);}(_0x262d,0x1a7));var _0xd262=function(_0x37bd26,_0x5ad346){_0x37bd26=_0x37bd26-0x0;var _0xe83dc4=_0x262d[_0x37bd26];return _0xe83dc4;};'use strict';var _=require(_0xd262('0x0'));var moment=require(_0xd262('0x1'));var util=require(_0xd262('0x2'));var Redis=require('ioredis');var config=require(_0xd262('0x3'));var logger=require('../../../config/logger')(_0xd262('0x4'));var ami=require(_0xd262('0x5'));config[_0xd262('0x6')]=_['defaults'](config[_0xd262('0x6')],{'host':_0xd262('0x7'),'port':0x18eb});var io=require(_0xd262('0x8'))(new Redis(config['redis']));function VoiceDialReport(_0x2dc496){this[_0xd262('0x9')]=_0x2dc496[_0xd262('0xa')];this[_0xd262('0xb')]=_0x2dc496[_0xd262('0xb')];this['applications']={};this['variables']={};ami['on'](_0xd262('0xc'),this[_0xd262('0xd')][_0xd262('0xe')](this));ami['on'](_0xd262('0xf'),this[_0xd262('0x10')][_0xd262('0xe')](this));ami['on'](_0xd262('0x11'),this[_0xd262('0x12')][_0xd262('0xe')](this));ami['on'](_0xd262('0x13'),this['syncNewExten'][_0xd262('0xe')](this));ami['on'](_0xd262('0x14'),this[_0xd262('0x15')][_0xd262('0xe')](this));}VoiceDialReport['prototype']['isNotNull']=function(_0x1723db){return _0x1723db!==null&&!_['isUndefined'](_0x1723db);};VoiceDialReport[_0xd262('0x16')][_0xd262('0x17')]=function(_0x4ee83d,_0x362302,_0x1238a7){io['to'](_0x4ee83d)[_0xd262('0x17')](_0x362302,_0x1238a7);};VoiceDialReport['prototype'][_0xd262('0xd')]=function(_0x216a88){try{if(this[_0xd262('0x18')](_0x216a88)){logger[_0xd262('0x19')](_0xd262('0x1a'),_0x216a88[_0xd262('0x1b')],util[_0xd262('0x1c')](_0x216a88,{'showHidden':![],'depth':null}));if(this[_0xd262('0x9')][_0x216a88['uniqueid']]){_[_0xd262('0x1d')](this[_0xd262('0x9')][_0x216a88[_0xd262('0x1b')]],{'starttime':moment()[_0xd262('0x1e')](_0xd262('0x1f')),'lastevent':_0xd262('0x20'),'interface':_0x216a88[_0xd262('0x21')][_0xd262('0x22')](0x0,_0x216a88['channel'][_0xd262('0x23')]('-')),'membername':_0x216a88[_0xd262('0x21')]['substring'](_0x216a88['channel']['lastIndexOf']('/')+0x1,_0x216a88[_0xd262('0x21')][_0xd262('0x23')]('-'))},_[_0xd262('0x24')](_0x216a88,[_0xd262('0x25'),_0xd262('0x26')]));logger[_0xd262('0x27')](_0xd262('0x28'),_0x216a88[_0xd262('0x1b')],this[_0xd262('0x9')][_0x216a88['uniqueid']][_0xd262('0x29')],this[_0xd262('0x9')][_0x216a88[_0xd262('0x1b')]][_0xd262('0x2a')]);logger['debug'](_0xd262('0x2b'),_0x216a88[_0xd262('0x1b')],util[_0xd262('0x1c')](this['channels'][_0x216a88[_0xd262('0x1b')]],{'showHidden':![],'depth':null}));if(this['applications'][_0x216a88[_0xd262('0x1b')]])_[_0xd262('0x1d')](this[_0xd262('0x9')][_0x216a88['uniqueid']],this['applications'][_0x216a88[_0xd262('0x1b')]]);this[_0xd262('0x17')]('voice:outbound',_0xd262('0x2c'),this['channels'][_0x216a88['uniqueid']]);logger['debug'](_0xd262('0x2d'),_0x216a88[_0xd262('0x1b')],util[_0xd262('0x1c')](this[_0xd262('0x9')][_0x216a88[_0xd262('0x1b')]],{'showHidden':![],'depth':null}));ami[_0xd262('0x17')](_0xd262('0x2e'),this['channels'][_0x216a88[_0xd262('0x1b')]]);}}}catch(_0x14c211){logger[_0xd262('0x2f')](_0xd262('0x30'),_0x216a88[_0xd262('0x1b')],util[_0xd262('0x1c')](_0x14c211,{'showHidden':![],'depth':null}));}};VoiceDialReport[_0xd262('0x16')][_0xd262('0x10')]=function(_0x3e17ff){try{if(this[_0xd262('0x18')](_0x3e17ff)){logger['debug'](_0xd262('0x31'),_0x3e17ff['uniqueid'],util['inspect'](_0x3e17ff,{'showHidden':![],'depth':null}));if(this['channels'][_0x3e17ff[_0xd262('0x1b')]]){this[_0xd262('0x9')][_0x3e17ff['uniqueid']][_0xd262('0x32')]=_0x3e17ff[_0xd262('0x32')];if(_0x3e17ff[_0xd262('0x32')]==='ANSWER'){this[_0xd262('0x9')][_0x3e17ff[_0xd262('0x1b')]][_0xd262('0x33')]=_0x3e17ff[_0xd262('0x33')];this['channels'][_0x3e17ff[_0xd262('0x1b')]]['connectedlinename']=_0x3e17ff[_0xd262('0x34')];this[_0xd262('0x9')][_0x3e17ff[_0xd262('0x1b')]][_0xd262('0x35')]=moment()['format'](_0xd262('0x1f'));this[_0xd262('0x9')][_0x3e17ff['uniqueid']][_0xd262('0x36')]=_0xd262('0x37');logger[_0xd262('0x27')](_0xd262('0x38'),_0x3e17ff['uniqueid'],_0x3e17ff['channel'][_0xd262('0x22')](_0x3e17ff[_0xd262('0x21')][_0xd262('0x23')]('/')+0x1,_0x3e17ff[_0xd262('0x21')]['lastIndexOf']('-')));logger[_0xd262('0x19')]('[%s][voiceDialReport][dialend]\x20sending\x20dialconnect\x20event:',_0x3e17ff[_0xd262('0x1b')],util[_0xd262('0x1c')](this['channels'][_0x3e17ff['uniqueid']],{'showHidden':![],'depth':null}));ami['emit'](_0xd262('0x39'),this[_0xd262('0x9')][_0x3e17ff[_0xd262('0x1b')]]);}logger[_0xd262('0x19')](_0xd262('0x3a'),_0x3e17ff[_0xd262('0x1b')],util[_0xd262('0x1c')](this['channels'][_0x3e17ff[_0xd262('0x1b')]],{'showHidden':![],'depth':null}));this[_0xd262('0x17')](_0xd262('0x3b'),_0xd262('0x2c'),this[_0xd262('0x9')][_0x3e17ff['uniqueid']]);}}}catch(_0x2e69b8){logger[_0xd262('0x2f')]('[%s][voiceDialReport][dialend]',_0x3e17ff[_0xd262('0x1b')],util[_0xd262('0x1c')](_0x2e69b8,{'showHidden':![],'depth':null}));}};VoiceDialReport[_0xd262('0x16')][_0xd262('0x12')]=function(_0x401663){try{if(this[_0xd262('0x18')](_0x401663)){logger[_0xd262('0x19')](_0xd262('0x3c'),_0x401663[_0xd262('0x1b')],util['inspect'](_0x401663,{'showHidden':![],'depth':null}));this[_0xd262('0x3d')](_0x401663[_0xd262('0x1b')],_['keys'](_0x401663[_0xd262('0x3e')])[0x0],_0x401663[_0xd262('0x3f')]);if(this['isNotNull'](_0x401663[_0xd262('0x3e')])&&this[_0xd262('0x18')](_0x401663[_0xd262('0x3e')]['outboundrouteid'])){if(_[_0xd262('0x40')](this[_0xd262('0x9')][_0x401663[_0xd262('0x1b')]])){this[_0xd262('0x9')][_0x401663['uniqueid']]={'routeId':_0x401663[_0xd262('0x3f')],'variables':this[_0xd262('0x41')][_0x401663[_0xd262('0x1b')]],'motionChannel':'voice'};logger[_0xd262('0x27')](_0xd262('0x42'),_0x401663[_0xd262('0x1b')],_0x401663[_0xd262('0x3e')][_0xd262('0x43')],_[_0xd262('0x44')](_0x401663[_0xd262('0x3e')])[0x0],_0x401663[_0xd262('0x3f')]);logger['debug'](_0xd262('0x45'),_0x401663['uniqueid'],util['inspect'](this[_0xd262('0x9')][_0x401663[_0xd262('0x1b')]],{'showHidden':![],'depth':null}));this[_0xd262('0x17')](_0xd262('0x3b'),_0xd262('0x2c'),this[_0xd262('0x9')][_0x401663['uniqueid']]);}}}}catch(_0x5b6579){logger[_0xd262('0x2f')](_0xd262('0x46'),_0x401663[_0xd262('0x1b')],util[_0xd262('0x1c')](_0x5b6579,{'showHidden':![],'depth':null}));}};VoiceDialReport[_0xd262('0x16')][_0xd262('0x3d')]=function(_0x4db61e,_0x30727d,_0x2cc4a6){var _0x58d6d3=[_0xd262('0x47'),_0xd262('0x48'),'rtpaudioqosjitter',_0xd262('0x49'),_0xd262('0x4a'),_0xd262('0x4b'),_0xd262('0x4c'),_0xd262('0x4d'),'sipcallid',_0xd262('0x4e'),_0xd262('0x4f'),'bridgepvtcallid',_0xd262('0x50'),_0xd262('0x51'),_0xd262('0x52'),_0xd262('0x53'),'membername','memberpenalty',_0xd262('0x54')];if(!_['isNil'](_0x30727d)&&!_[_0xd262('0x55')](_0x58d6d3,_0x30727d)){if(_[_0xd262('0x40')](this[_0xd262('0x41')][_0x4db61e])){this[_0xd262('0x41')][_0x4db61e]={};}this[_0xd262('0x41')][_0x4db61e][_0x30727d]=_0x2cc4a6;}};VoiceDialReport[_0xd262('0x16')][_0xd262('0x15')]=function(_0x5252ce){try{if(this[_0xd262('0x18')](_0x5252ce)){logger[_0xd262('0x19')](_0xd262('0x56'),_0x5252ce[_0xd262('0x1b')],util[_0xd262('0x1c')](_0x5252ce,{'showHidden':![],'depth':null}));if(this[_0xd262('0x9')][_0x5252ce[_0xd262('0x1b')]]){logger['info'](_0xd262('0x57'),_0x5252ce['uniqueid'],_0x5252ce[_0xd262('0x58')]);this[_0xd262('0x9')][_0x5252ce[_0xd262('0x1b')]][_0xd262('0x59')]=moment()[_0xd262('0x1e')](_0xd262('0x1f'));this[_0xd262('0x9')][_0x5252ce[_0xd262('0x1b')]][_0xd262('0x5a')]=moment(this['channels'][_0x5252ce[_0xd262('0x1b')]]['endtime'])[_0xd262('0x5b')](this[_0xd262('0x9')][_0x5252ce[_0xd262('0x1b')]][_0xd262('0x5c')],'seconds');this[_0xd262('0x9')][_0x5252ce[_0xd262('0x1b')]][_0xd262('0x36')]=_0xd262('0x5d');this[_0xd262('0xb')][_0xd262('0x5e')]+=0x1;if(this[_0xd262('0x9')][_0x5252ce[_0xd262('0x1b')]][_0xd262('0x35')]){this[_0xd262('0xb')]['answered']+=0x1;this[_0xd262('0x9')][_0x5252ce[_0xd262('0x1b')]][_0xd262('0x5f')]=moment(this[_0xd262('0x9')][_0x5252ce[_0xd262('0x1b')]][_0xd262('0x35')])[_0xd262('0x5b')](this[_0xd262('0x9')][_0x5252ce['uniqueid']][_0xd262('0x5c')],_0xd262('0x60'));this['channels'][_0x5252ce[_0xd262('0x1b')]][_0xd262('0x61')]=moment(this[_0xd262('0x9')][_0x5252ce['uniqueid']][_0xd262('0x59')])[_0xd262('0x5b')](this['channels'][_0x5252ce[_0xd262('0x1b')]][_0xd262('0x35')],_0xd262('0x60'));this[_0xd262('0xb')][_0xd262('0x62')]+=this[_0xd262('0x9')][_0x5252ce[_0xd262('0x1b')]][_0xd262('0x5f')]||0x0;this[_0xd262('0xb')]['sumBillable']+=this['channels'][_0x5252ce[_0xd262('0x1b')]]['billableseconds'];}this['outbound'][_0xd262('0x63')]+=this['channels'][_0x5252ce[_0xd262('0x1b')]][_0xd262('0x5a')];logger['debug'](_0xd262('0x64'),_0x5252ce[_0xd262('0x1b')],util['inspect'](this[_0xd262('0x9')][_0x5252ce[_0xd262('0x1b')]],{'showHidden':![],'depth':null}));ami[_0xd262('0x17')](_0xd262('0x65'),this[_0xd262('0x9')][_0x5252ce['uniqueid']]);logger[_0xd262('0x19')](_0xd262('0x66'),_0x5252ce[_0xd262('0x1b')],util[_0xd262('0x1c')](this[_0xd262('0x9')][_0x5252ce[_0xd262('0x1b')]],{'showHidden':![],'depth':null}));ami[_0xd262('0x17')]('custom:dialend',this[_0xd262('0x9')][_0x5252ce[_0xd262('0x1b')]]);logger[_0xd262('0x19')](_0xd262('0x67'),_0x5252ce[_0xd262('0x1b')],util[_0xd262('0x1c')](this['channels'][_0x5252ce[_0xd262('0x1b')]],{'showHidden':![],'depth':null}));this['emit'](_0xd262('0x3b'),_0xd262('0x68'),this[_0xd262('0xb')]);logger['info'](_0xd262('0x69'),JSON[_0xd262('0x6a')](this['channels'][_0x5252ce[_0xd262('0x1b')]]));logger[_0xd262('0x19')](_0xd262('0x6b'),_0x5252ce[_0xd262('0x1b')],util[_0xd262('0x1c')](this[_0xd262('0x9')][_0x5252ce['uniqueid']],{'showHidden':![],'depth':null}));this[_0xd262('0x17')]('voice:outbound',_0xd262('0x6c'),this[_0xd262('0x9')][_0x5252ce[_0xd262('0x1b')]]);delete this[_0xd262('0x9')][_0x5252ce[_0xd262('0x1b')]];}else if(this[_0xd262('0x9')][_0x5252ce[_0xd262('0x6d')]]){this[_0xd262('0x9')][_0x5252ce[_0xd262('0x6d')]]['uniqueid']=this[_0xd262('0x9')][_0x5252ce[_0xd262('0x6d')]][_0xd262('0x6e')];}if(this[_0xd262('0x41')][_0x5252ce[_0xd262('0x1b')]]){delete this[_0xd262('0x41')][_0x5252ce[_0xd262('0x1b')]];}}}catch(_0x1ced5d){logger['error']('[%s][voiceDialReport][hangup]',_0x5252ce[_0xd262('0x1b')],util[_0xd262('0x1c')](_0x1ced5d,{'showHidden':![],'depth':null}));}};VoiceDialReport[_0xd262('0x16')][_0xd262('0x6f')]=function(_0x289622){try{if(this['isNotNull'](_0x289622)){logger[_0xd262('0x19')]('[%s][voiceDialReport][newexten]\x20event:',_0x289622[_0xd262('0x1b')],util[_0xd262('0x1c')](_0x289622,{'showHidden':![],'depth':null}));if(_0x289622[_0xd262('0x70')][_0xd262('0x71')]()===_0xd262('0x72')){_0x289622['applicationdata']=(_0x289622[_0xd262('0x73')]||_0x289622['applicationdata'])['toLowerCase']();if(_['startsWith'](_0x289622[_0xd262('0x74')],_0xd262('0x75'))){if(_[_0xd262('0x40')](this[_0xd262('0x76')][_0x289622['uniqueid']]))this['applications'][_0x289622['uniqueid']]={};logger[_0xd262('0x27')](_0xd262('0x77'),_0x289622[_0xd262('0x1b')],_0x289622['application'],_0x289622[_0xd262('0x74')]);var _0x48e799=_0x289622[_0xd262('0x74')]['split']('=');var _0x4e4b3c=_0x48e799[0x0][_0xd262('0x78')](/cdr\((.*)\)/);if(_0x4e4b3c)this[_0xd262('0x76')][_0x289622[_0xd262('0x1b')]][_0x4e4b3c[0x1]]=_0x48e799[0x1];}}}}catch(_0x1000de){logger[_0xd262('0x2f')](_0xd262('0x79'),_0x289622[_0xd262('0x1b')],util[_0xd262('0x1c')](_0x1000de,{'showHidden':![],'depth':null}));}};module['exports']=VoiceDialReport;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xeb68=['[%s][voiceQueueReport][checkChannel]','inspect','queueReports','[%s][voiceQueueReport][checkQueueReport]','variables','[FullyBooted]\x20clear\x20realtime','clearQueueReport','emitVoiceQueueChannelRemove','clearqueuereport','emit','emitVoiceQueueChannelSave','debug','uniqueid','format','[%s][voiceQueueReport][',']\x20sending\x20voice_queue_channel:remove\x20event:','voice:queue:%s','name','voice_queue_channel:remove','voice_queue_presence:remove','type','strategy','available','loggedIn','sumDuration','sumHoldTime','total','abandoned','Trunk','active','Interval','stringify','[voiceQueueReport][',']\x20sending\x20voice_queue:save\x20event:','isUndefined','clearZombieChannels','queues','queuesummary','then','[voiceQueueReport][queuesummary]','isNotNull','queue','info','countBy','callers','toNumber','loggedin','emitVoiceQueueSummary','[voiceQueueReport][queuesummary]\x20sending\x20queuesummary\x20event:','custom:queuesummary','[%s][voiceQueueReport][queuecallerjoin]','inbound','position','count','routealias','[voiceQueueReport][queuecallerjoin]\x20name:%s\x20type:%s','pick','keys','push','queuecallerjoin','[%s][voiceQueueReport][queuecallerabandon]','last','queuecallercompleteAt','holdtime','originalposition','YYYY-MM-DD\x20HH:mm:ss','queuecallerexitreason','ABANDONED','[voiceQueueReport][queuecallerabandon]\x20name:%s\x20type:%s','[%s][voiceQueueReport][queuecallerleave]','connectedlinenum','connectedlinename','[voiceQueueReport][queuecallerleave]\x20name:%s\x20type:%s\x20connectedlinenum:%s\x20connectedlinename:%s','syncAgentConnect','queuecallercomplete','COMPLETEDBYAGENT','[voiceQueueReport][agentconnect]\x20name:%s\x20type:%s\x20queuecallerexitreason:COMPLETEDBYAGENT','[%s][voiceQueueReport][agentcomplete]','lastAssignedTo','membername','queuecallerexitAt','transfer','reason','[voiceQueueReport][agentcomplete]\x20name:%s\x20type:%s\x20queuecallerexitreason:COMPLETED','startsWith','channel','toLowerCase','local/','linkedid','queuecallerexit','queuecallerjoinAt','seconds','FORWARDTRANSFER','transfertype','FORWARD','transferexten','transferuniqueid','[voiceQueueReport][agentcomplete]\x20name:%s\x20type:%s\x20queuecallerexitreason:FORWARDTRANSFER','toUpperCase','[voiceQueueReport][agentcomplete]\x20name:%s\x20type:%s\x20queuecallerexitreason:%s','agentcomplete','syncVarSet','[%s][voiceQueueReport][varset]','addVariable','variable','queuestatus','CONTINUE','TIMEOUT','lastevent','timeout','queuecallerleaveAt','[%s][voiceQueueReport][varset]\x20sending\x20timeout\x20event:','queuecallerabandonAt','value','queueposition','EXITWITHKEY','[%s][voiceQueueReport][varset]\x20name:%s\x20type:%s\x20variable:%s\x20value:%s','rtpaudioqosbridged','rtpaudioqosjitter','rtpaudioqosjitterbridged','rtpaudioqosloss','rtpaudioqosrttbridged','sipcallid','sipuri','bridgepeer','membercalls','memberinterface','memberlastcall','memberpenalty','memberrealtime','isNil','includes','unmanaged','diff','length','milliseconds','sumBillable','[%s][voiceQueueReport][hangup]\x20sending\x20queuecallerunmanaged\x20event:','custom:queuecallerunmanaged','[%s][voiceQueueReport][hangup]\x20sending\x20queuecallerabandon\x20event:','[%s][voiceQueueReport][hangup]\x20name:%s\x20type:%s\x20reason:%s','cause-txt','hangup','[%s][voiceQueueReport][hangup]\x20sending\x20voiceQueueReport\x20event:','[%s][voiceQueueReport][hangup]','syncAttendedTransfer','[%s][voiceQueueReport][attendedtransfer]','transfereeuniqueid','secondtransfererexten','secondtransfereruniqueid','ATTENDEDTRANSFER','ATTENDED','[%s][voiceQueueReport][attendedTransfer]\x20name:%s\x20type:%s\x20transferexten:%s\x20transferuniqueid:%s','origtransfererexten','origtransfereruniqueid','transfertargetuniqueid','[%s][voiceQueueReport][blindtransfer]','BLINDTRANSFER','BLIND','extension','[%s][voiceQueueReport][blindTransfer]\x20name:%s\x20type:%s\x20transferexten:%s\x20transferuniqueid:%s','BlindTransfer','context','[%s][voiceQueueReport][musiconholdstart]','mohstarttime','[%s][voiceQueueReport][musiconholdstart]\x20mohstarttime:%s','[%s][voiceQueueReport][musiconholdstop]','[%s][voiceQueueReport][musiconholdstop]\x20mohtime:%s','[%s][voiceQueueReport][newexten]\x20event:','set','appdata','applicationdata','cdr(','[%s][voiceQueueReport][newexten]\x20application:%s\x20appdata:%s','application','split','match','exports','util','md5','ioredis','../../../config/logger','ami','../model/queueReport','redis','socket.io-emitter','prototype','enqueue','tail','finally','sequence','agents','channels','voiceQueues','flagQueueSummary','campaigns','syncQueueSummary','bind','queuesummarycomplete','syncQueueSummaryComplete','syncQueueCallerJoin','queuecallerabandon','syncQueueCallerAbandon','queuecallerleave','syncAgentComplete','agentconnect','varset','syncHangup','fullybooted','syncFullyBooted','newexten','syncNewExten','syncMusicOnHoldStop','attendedtransfer','blindtransfer','syncBlindTransfer','loopQueueSummary','loopQueueShow','isEmpty','hasOwnProperty','originated','talking','pTalking','waiting','queueStatusComplete','unlockRR','switch','Action','status','catch','No\x20such\x20channel','error'];(function(_0x46361e,_0x243aaf){var _0x14e302=function(_0x9ebecf){while(--_0x9ebecf){_0x46361e['push'](_0x46361e['shift']());}};_0x14e302(++_0x243aaf);}(_0xeb68,0xb2));var _0x8eb6=function(_0x41e8c4,_0x30d9ff){_0x41e8c4=_0x41e8c4-0x0;var _0x54ffbe=_0xeb68[_0x41e8c4];return _0x54ffbe;};'use strict';var _=require('lodash');var moment=require('moment');var util=require(_0x8eb6('0x0'));var md5=require(_0x8eb6('0x1'));var Redis=require(_0x8eb6('0x2'));var config=require('../../../config/environment');var logger=require(_0x8eb6('0x3'))(_0x8eb6('0x4'));var ami=require('../ami');var QueueReport=require(_0x8eb6('0x5'));config['redis']=_['defaults'](config[_0x8eb6('0x6')],{'host':'localhost','port':0x18eb});var io=require(_0x8eb6('0x7'))(new Redis(config[_0x8eb6('0x6')]));var Sequence=function(){};Sequence[_0x8eb6('0x8')][_0x8eb6('0x9')]=function(_0x2a773b){this[_0x8eb6('0xa')]=this['tail']?this[_0x8eb6('0xa')][_0x8eb6('0xb')](_0x2a773b):_0x2a773b();};function VoiceQueueReport(_0x3a1ba9){this[_0x8eb6('0xc')]=new Sequence();this['queueReports']={};this[_0x8eb6('0xd')]=_0x3a1ba9[_0x8eb6('0xd')];this[_0x8eb6('0xe')]=_0x3a1ba9['queueChannels'];this[_0x8eb6('0xf')]=_0x3a1ba9['voiceQueues'];this[_0x8eb6('0x10')]=!![];this[_0x8eb6('0x11')]=_0x3a1ba9[_0x8eb6('0x11')];this['variables']={};ami['on']('queuesummary',this[_0x8eb6('0x12')][_0x8eb6('0x13')](this));ami['on'](_0x8eb6('0x14'),this[_0x8eb6('0x15')]['bind'](this));ami['on']('queuecallerjoin',this[_0x8eb6('0x16')][_0x8eb6('0x13')](this));ami['on'](_0x8eb6('0x17'),this[_0x8eb6('0x18')]['bind'](this));ami['on'](_0x8eb6('0x19'),this['syncQueueCallerLeave'][_0x8eb6('0x13')](this));ami['on']('agentcomplete',this[_0x8eb6('0x1a')][_0x8eb6('0x13')](this));ami['on'](_0x8eb6('0x1b'),this['syncAgentConnect'][_0x8eb6('0x13')](this));ami['on'](_0x8eb6('0x1c'),this['syncVarSet'][_0x8eb6('0x13')](this));ami['on']('hangup',this[_0x8eb6('0x1d')][_0x8eb6('0x13')](this));ami['on'](_0x8eb6('0x1e'),this[_0x8eb6('0x1f')][_0x8eb6('0x13')](this));ami['on'](_0x8eb6('0x20'),this[_0x8eb6('0x21')]['bind'](this));ami['on']('musiconholdstart',this['syncMusicOnHoldStart'][_0x8eb6('0x13')](this));ami['on']('musiconholdstop',this[_0x8eb6('0x22')][_0x8eb6('0x13')](this));ami['on'](_0x8eb6('0x23'),this['syncAttendedTransfer'][_0x8eb6('0x13')](this));ami['on'](_0x8eb6('0x24'),this[_0x8eb6('0x25')]['bind'](this));this[_0x8eb6('0x26')]();this[_0x8eb6('0x27')]();}function clearChannels(_0x5c6b36){if(!_[_0x8eb6('0x28')](_0x5c6b36)){for(var _0x5ea785 in _0x5c6b36){if(_0x5c6b36[_0x8eb6('0x29')](_0x5ea785)){delete _0x5c6b36[_0x5ea785];}}}}function clearCampaigns(_0x2626b1){if(!_[_0x8eb6('0x28')](_0x2626b1)){for(var _0x1111e4 in _0x2626b1){if(_0x2626b1[_0x8eb6('0x29')](_0x1111e4)){_0x2626b1[_0x1111e4]['originated']=0x0;}}}}function clearVoiceQueues(_0x22c959){if(!_[_0x8eb6('0x28')](_0x22c959)){for(var _0x1df7e2 in _0x22c959){if(_0x22c959[_0x8eb6('0x29')](_0x1df7e2)){_0x22c959[_0x1df7e2][_0x8eb6('0x2a')]=0x0;_0x22c959[_0x1df7e2][_0x8eb6('0x2b')]=0x0;_0x22c959[_0x1df7e2][_0x8eb6('0x2c')]=0x0;_0x22c959[_0x1df7e2][_0x8eb6('0x2d')]=0x0;_0x22c959[_0x1df7e2][_0x8eb6('0x2e')]=!![];}}}}function clearAgentBooked(_0x2c1b98){if(!_['isEmpty'](_0x2c1b98)){for(var _0x28faec in _0x2c1b98){if(_0x2c1b98[_0x8eb6('0x29')](_0x28faec)){_0x2c1b98[_0x28faec][_0x8eb6('0x2f')]=!![];}}}}VoiceQueueReport[_0x8eb6('0x8')]['clearZombieChannels']=function(){var _0x530546=this;for(var _0x4c0db0 in this[_0x8eb6('0xe')]){if(this[_0x8eb6('0xe')][_0x8eb6('0x29')](_0x4c0db0)&&!this[_0x8eb6('0xe')][_0x4c0db0][_0x8eb6('0x30')]){this['sequence'][_0x8eb6('0x9')](function(){if(!_['isNil'](_0x530546['channels'][_0x4c0db0])){return ami[_0x8eb6('0x31')]({'action':_0x8eb6('0x32'),'channel':_0x530546['channels'][_0x4c0db0]['channel']})[_0x8eb6('0x33')](function(_0x5e61d0){if(_0x5e61d0['message']===_0x8eb6('0x34')){setTimeout(function(){if(_0x530546[_0x8eb6('0xe')][_0x4c0db0]){delete _0x530546[_0x8eb6('0xe')][_0x4c0db0];logger[_0x8eb6('0x35')](_0x8eb6('0x36'),_0x4c0db0,util[_0x8eb6('0x37')](_0x5e61d0,{'showHidden':![],'depth':null}));}if(_0x530546['queueReports'][_0x4c0db0]){delete _0x530546[_0x8eb6('0x38')][_0x4c0db0];logger['error'](_0x8eb6('0x39'),_0x4c0db0,util[_0x8eb6('0x37')](_0x5e61d0,{'showHidden':![],'depth':null}));}if(_0x530546['variables'][_0x4c0db0]){delete _0x530546[_0x8eb6('0x3a')][_0x4c0db0];logger['error']('[%s][voiceQueueReport][checkVariables]',_0x4c0db0,util[_0x8eb6('0x37')](_0x5e61d0,{'showHidden':![],'depth':null}));}},0x1f40);}});}});}}};VoiceQueueReport[_0x8eb6('0x8')][_0x8eb6('0x1f')]=function(){logger[_0x8eb6('0x35')](_0x8eb6('0x3b'));clearChannels(this[_0x8eb6('0xe')]);this[_0x8eb6('0x3c')](this[_0x8eb6('0x38')]);clearAgentBooked(this['agents']);clearVoiceQueues(this['voiceQueues']);clearCampaigns(this[_0x8eb6('0x11')]);};VoiceQueueReport['prototype'][_0x8eb6('0x3c')]=function(_0x52c5cf){var _0x3bfd27=this;if(!_['isEmpty'](_0x52c5cf)){for(var _0x731938 in _0x52c5cf){if(_0x52c5cf[_0x8eb6('0x29')](_0x731938)){_0x3bfd27[_0x8eb6('0x3d')](_0x52c5cf[_0x731938],_0x8eb6('0x3e'));delete _0x52c5cf[_0x731938];}}}};VoiceQueueReport[_0x8eb6('0x8')][_0x8eb6('0x3f')]=function(_0x43c2ac,_0x2f5ba2,_0x1626fe){io['to'](_0x43c2ac)[_0x8eb6('0x3f')](_0x2f5ba2,_0x1626fe);};VoiceQueueReport['prototype'][_0x8eb6('0x40')]=function(_0x4c176f,_0x4951b9){logger[_0x8eb6('0x41')]('[%s][voiceQueueReport]['+_0x4951b9+']\x20sending\x20voice_queue_channel:save\x20event:',_0x4c176f[_0x8eb6('0x42')],util['inspect'](_0x4c176f,{'showHidden':![],'depth':null}));this['emit'](util[_0x8eb6('0x43')]('voice:queue:%s',_0x4c176f['name']),'voice_queue_channel:save',_0x4c176f);io[_0x8eb6('0x3f')]('voice_queue_presence:save',_0x4c176f);};VoiceQueueReport[_0x8eb6('0x8')][_0x8eb6('0x3d')]=function(_0x230f8c,_0x2b1d66){logger[_0x8eb6('0x41')](_0x8eb6('0x44')+_0x2b1d66+_0x8eb6('0x45'),_0x230f8c[_0x8eb6('0x42')],util['inspect'](_0x230f8c,{'showHidden':![],'depth':null}));this[_0x8eb6('0x3f')](util[_0x8eb6('0x43')](_0x8eb6('0x46'),_0x230f8c[_0x8eb6('0x47')]),_0x8eb6('0x48'),_0x230f8c);io['emit'](_0x8eb6('0x49'),_0x230f8c);};VoiceQueueReport[_0x8eb6('0x8')]['emitVoiceQueueSummary']=function(_0x108edc,_0x34fb1d){if(_0x108edc[_0x8eb6('0x4a')]==='inbound'){var _0x52cad1={'id':_0x108edc['id'],'name':_0x108edc[_0x8eb6('0x47')],'strategy':_0x108edc[_0x8eb6('0x4b')],'answered':_0x108edc['answered'],'available':_0x108edc[_0x8eb6('0x4c')],'loggedIn':_0x108edc[_0x8eb6('0x4d')],'pTalking':_0x108edc[_0x8eb6('0x2c')],'sumBillable':_0x108edc['sumBillable'],'sumDuration':_0x108edc[_0x8eb6('0x4e')],'sumHoldTime':_0x108edc[_0x8eb6('0x4f')]||0x0,'talking':_0x108edc[_0x8eb6('0x2b')],'total':_0x108edc[_0x8eb6('0x50')],'type':_0x108edc[_0x8eb6('0x4a')],'unmanaged':_0x108edc['unmanaged'],'abandoned':_0x108edc[_0x8eb6('0x51')],'waiting':_0x108edc[_0x8eb6('0x2d')]};if(_0x108edc['Trunk']){_0x52cad1[_0x8eb6('0x52')]={'id':_0x108edc[_0x8eb6('0x52')]['id'],'name':_0x108edc[_0x8eb6('0x52')][_0x8eb6('0x47')],'active':_0x108edc[_0x8eb6('0x52')][_0x8eb6('0x53')],'callerid':_0x108edc[_0x8eb6('0x52')]['callerid']};}if(_0x108edc[_0x8eb6('0x54')]){_0x52cad1[_0x8eb6('0x54')]={'id':_0x108edc[_0x8eb6('0x54')]['id'],'name':_0x108edc[_0x8eb6('0x54')][_0x8eb6('0x47')]};}var _0x38d715=md5(JSON[_0x8eb6('0x55')](_0x52cad1));if(_0x108edc[_0x8eb6('0x1')]!==_0x38d715){_0x108edc['md5']=_0x38d715;logger[_0x8eb6('0x41')](_0x8eb6('0x56')+_0x34fb1d+_0x8eb6('0x57'),util[_0x8eb6('0x37')](_0x52cad1,{'showHidden':![],'depth':null}));this[_0x8eb6('0x3f')](util['format']('voice:queue:%s',_0x52cad1[_0x8eb6('0x47')]),'voice_queue:save',_0x52cad1);}}};VoiceQueueReport[_0x8eb6('0x8')]['isNotNull']=function(_0x5bb0fe){return _0x5bb0fe!==null&&!_[_0x8eb6('0x58')](_0x5bb0fe);};VoiceQueueReport[_0x8eb6('0x8')][_0x8eb6('0x27')]=function(){var _0x3440e3=this;setInterval(function(){_0x3440e3[_0x8eb6('0x59')]();ami[_0x8eb6('0x31')]({'action':_0x8eb6('0x5a')})['catch'](function(_0x3c9670){logger[_0x8eb6('0x35')]('[voiceQueueReport][queues]',util[_0x8eb6('0x37')](_0x3c9670,{'showHidden':![],'depth':null}));});},0x2710);};VoiceQueueReport[_0x8eb6('0x8')][_0x8eb6('0x26')]=function(){var _0x2f7aa3=this;setInterval(function(){if(_0x2f7aa3[_0x8eb6('0x10')]){return ami[_0x8eb6('0x31')]({'action':_0x8eb6('0x5b')})[_0x8eb6('0x5c')](function(_0x464d10){_0x2f7aa3[_0x8eb6('0x10')]=![];})[_0x8eb6('0x33')](function(_0x10ec02){logger[_0x8eb6('0x35')](_0x8eb6('0x5d'),util[_0x8eb6('0x37')](_0x10ec02,{'showHidden':![],'depth':null}));});}},0x3e8);};VoiceQueueReport[_0x8eb6('0x8')][_0x8eb6('0x12')]=function(_0x27a682){try{if(this['isNotNull'](_0x27a682)&&this[_0x8eb6('0x5e')](_0x27a682[_0x8eb6('0x5f')])){logger[_0x8eb6('0x41')]('[voiceQueueReport][queuesummary]\x20event:',util[_0x8eb6('0x37')](_0x27a682,{'showHidden':![],'depth':null}));if(this[_0x8eb6('0xf')][_0x27a682[_0x8eb6('0x5f')]]){logger[_0x8eb6('0x60')]('[voiceQueueReport][queuesummary]\x20name:%s',_0x27a682[_0x8eb6('0x5f')]);var _0x91b778=_[_0x8eb6('0x61')](this['channels'],_0x8eb6('0x5f'))[_0x27a682[_0x8eb6('0x5f')]]||0x0;var _0x5eddc1=_0x91b778-_0x27a682[_0x8eb6('0x62')];if(this[_0x8eb6('0xf')][_0x27a682[_0x8eb6('0x5f')]][_0x8eb6('0x2d')]!==_['toNumber'](_0x27a682[_0x8eb6('0x62')])||this[_0x8eb6('0xf')][_0x27a682['queue']]['loggedIn']!==_[_0x8eb6('0x63')](_0x27a682[_0x8eb6('0x64')])||this[_0x8eb6('0xf')][_0x27a682[_0x8eb6('0x5f')]][_0x8eb6('0x4c')]!==_[_0x8eb6('0x63')](_0x27a682[_0x8eb6('0x4c')])||this[_0x8eb6('0xf')][_0x27a682[_0x8eb6('0x5f')]]['talking']!==_0x5eddc1){this['voiceQueues'][_0x27a682['queue']][_0x8eb6('0x2d')]=_[_0x8eb6('0x63')](_0x27a682[_0x8eb6('0x62')]);this['voiceQueues'][_0x27a682[_0x8eb6('0x5f')]]['loggedIn']=_[_0x8eb6('0x63')](_0x27a682['loggedin']);this[_0x8eb6('0xf')][_0x27a682[_0x8eb6('0x5f')]]['available']=_['toNumber'](_0x27a682[_0x8eb6('0x4c')]);this[_0x8eb6('0xf')][_0x27a682['queue']]['talking']=_0x5eddc1>0x0?_0x5eddc1:0x0;this[_0x8eb6('0xf')][_0x27a682[_0x8eb6('0x5f')]][_0x8eb6('0x2b')]=this['voiceQueues'][_0x27a682[_0x8eb6('0x5f')]]['talking']>_[_0x8eb6('0x63')](_0x27a682['loggedin'])?_[_0x8eb6('0x63')](_0x27a682[_0x8eb6('0x64')]):this[_0x8eb6('0xf')][_0x27a682[_0x8eb6('0x5f')]][_0x8eb6('0x2b')];this[_0x8eb6('0x65')](this[_0x8eb6('0xf')][_0x27a682['queue']],'queuesummary');}logger[_0x8eb6('0x41')](_0x8eb6('0x66'),util[_0x8eb6('0x37')](this[_0x8eb6('0xf')][_0x27a682[_0x8eb6('0x5f')]],{'showHidden':![],'depth':null}));ami['emit'](_0x8eb6('0x67'),this[_0x8eb6('0xf')][_0x27a682['queue']]);}}}catch(_0x30d0ef){logger['error'](_0x8eb6('0x5d'),util['inspect'](_0x30d0ef,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x8eb6('0x8')][_0x8eb6('0x15')]=function(_0x564d6b){logger[_0x8eb6('0x41')]('[voiceQueueReport][queuesummarycomplete]\x20event:',util[_0x8eb6('0x37')](_0x564d6b,{'showHidden':![],'depth':null}));this[_0x8eb6('0x10')]=!![];};VoiceQueueReport[_0x8eb6('0x8')][_0x8eb6('0x16')]=function(_0x21ed91){try{if(this['isNotNull'](_0x21ed91)){logger[_0x8eb6('0x41')](_0x8eb6('0x68'),_0x21ed91[_0x8eb6('0x42')],util['inspect'](_0x21ed91,{'showHidden':![],'depth':null}));if(_[_0x8eb6('0x58')](this['queueReports'][_0x21ed91['uniqueid']]))this[_0x8eb6('0x38')][_0x21ed91[_0x8eb6('0x42')]]=[];if(_[_0x8eb6('0x58')](this[_0x8eb6('0xe')][_0x21ed91[_0x8eb6('0x42')]]))this[_0x8eb6('0xe')][_0x21ed91[_0x8eb6('0x42')]]={};var _0x499516=new QueueReport();_0x499516[_0x8eb6('0x47')]=_0x21ed91[_0x8eb6('0x5f')];_0x499516['type']=this[_0x8eb6('0xf')][_0x499516['name']]&&this['voiceQueues'][_0x499516[_0x8eb6('0x47')]]['type']?this[_0x8eb6('0xf')][_0x499516[_0x8eb6('0x47')]][_0x8eb6('0x4a')]||_0x8eb6('0x69'):_0x8eb6('0x69');_0x499516[_0x8eb6('0x5f')]=_0x21ed91['queue'];_0x499516['queuecallerjoinAt']=moment()[_0x8eb6('0x43')]('YYYY-MM-DD\x20HH:mm:ss');_0x499516['position']=_0x21ed91[_0x8eb6('0x6a')];_0x499516[_0x8eb6('0x6b')]=_0x21ed91[_0x8eb6('0x6b')];_0x499516[_0x8eb6('0x42')]=_0x21ed91[_0x8eb6('0x42')];_0x499516[_0x8eb6('0x6c')]=this['channels'][_0x21ed91['uniqueid']][_0x8eb6('0x6c')];logger[_0x8eb6('0x60')](_0x8eb6('0x6d'),_0x499516[_0x8eb6('0x47')],_0x499516[_0x8eb6('0x4a')]);_['merge'](_0x499516,_[_0x8eb6('0x6e')](_0x21ed91,_[_0x8eb6('0x6f')](_0x499516)));this['queueReports'][_0x21ed91['uniqueid']][_0x8eb6('0x70')](_0x499516);this[_0x8eb6('0xe')][_0x21ed91['uniqueid']]=_0x499516;this[_0x8eb6('0x40')](_0x499516,_0x8eb6('0x71'));}}catch(_0x5cba2b){logger['error'](_0x8eb6('0x68'),_0x21ed91[_0x8eb6('0x42')],util[_0x8eb6('0x37')](_0x5cba2b,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x8eb6('0x8')][_0x8eb6('0x18')]=function(_0x5d020a){try{if(this['isNotNull'](_0x5d020a)){logger[_0x8eb6('0x41')](_0x8eb6('0x72'),_0x5d020a[_0x8eb6('0x42')],util[_0x8eb6('0x37')](_0x5d020a,{'showHidden':![],'depth':null}));if(this[_0x8eb6('0x38')][_0x5d020a[_0x8eb6('0x42')]]){var _0x3271c5=_[_0x8eb6('0x73')](this['queueReports'][_0x5d020a[_0x8eb6('0x42')]]);_0x3271c5['queuecallercomplete']=![];_0x3271c5[_0x8eb6('0x74')]=null;_0x3271c5[_0x8eb6('0x75')]=_0x5d020a[_0x8eb6('0x75')];_0x3271c5[_0x8eb6('0x76')]=_0x5d020a[_0x8eb6('0x76')];_0x3271c5[_0x8eb6('0x17')]=!![];_0x3271c5['queuecallerabandonAt']=moment()[_0x8eb6('0x43')](_0x8eb6('0x77'));_0x3271c5[_0x8eb6('0x78')]=_0x8eb6('0x79');_0x3271c5['lastAssignedTo']=null;logger[_0x8eb6('0x60')](_0x8eb6('0x7a'),_0x3271c5[_0x8eb6('0x47')],_0x3271c5['type']);this[_0x8eb6('0xe')][_0x5d020a['uniqueid']]=_0x3271c5;this[_0x8eb6('0x3d')](_0x3271c5,_0x8eb6('0x17'));}}}catch(_0x3aaa74){logger[_0x8eb6('0x35')](_0x8eb6('0x72'),_0x5d020a['uniqueid'],util[_0x8eb6('0x37')](_0x3aaa74,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x8eb6('0x8')]['syncQueueCallerLeave']=function(_0x4dbc03){try{if(this['isNotNull'](_0x4dbc03)){logger[_0x8eb6('0x41')](_0x8eb6('0x7b'),_0x4dbc03[_0x8eb6('0x42')],util[_0x8eb6('0x37')](_0x4dbc03,{'showHidden':![],'depth':null}));if(this[_0x8eb6('0x38')][_0x4dbc03['uniqueid']]){var _0x34e8b4=_[_0x8eb6('0x73')](this[_0x8eb6('0x38')][_0x4dbc03['uniqueid']]);_0x34e8b4['queuecallerleaveAt']=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');_0x34e8b4['connectedlinenum']=_0x4dbc03[_0x8eb6('0x7c')];_0x34e8b4[_0x8eb6('0x7d')]=_0x4dbc03[_0x8eb6('0x7d')];logger[_0x8eb6('0x60')](_0x8eb6('0x7e'),_0x34e8b4[_0x8eb6('0x47')],_0x34e8b4[_0x8eb6('0x4a')],_0x4dbc03[_0x8eb6('0x7c')],_0x4dbc03[_0x8eb6('0x7d')]);this['channels'][_0x4dbc03[_0x8eb6('0x42')]]=_0x34e8b4;this[_0x8eb6('0x40')](_0x34e8b4,_0x8eb6('0x19'));}}}catch(_0x4ab548){logger[_0x8eb6('0x35')](_0x8eb6('0x7b'),_0x4dbc03[_0x8eb6('0x42')],util[_0x8eb6('0x37')](_0x4ab548,{'showHidden':![],'depth':null}));}};VoiceQueueReport['prototype'][_0x8eb6('0x7f')]=function(_0x2ead30){try{if(this[_0x8eb6('0x5e')](_0x2ead30)){logger[_0x8eb6('0x41')]('[%s][voiceQueueReport][agentconnect]',_0x2ead30['uniqueid'],util[_0x8eb6('0x37')](_0x2ead30,{'showHidden':![],'depth':null}));if(this[_0x8eb6('0x38')][_0x2ead30[_0x8eb6('0x42')]]){var _0x13b82c=_['last'](this[_0x8eb6('0x38')][_0x2ead30[_0x8eb6('0x42')]]);_0x13b82c[_0x8eb6('0x80')]=!![];_0x13b82c[_0x8eb6('0x78')]=_0x8eb6('0x81');logger[_0x8eb6('0x60')](_0x8eb6('0x82'),_0x13b82c[_0x8eb6('0x47')],_0x13b82c[_0x8eb6('0x4a')]);}}}catch(_0x14921d){logger['error']('[%s][voiceQueueReport][agentconnect]',_0x2ead30[_0x8eb6('0x42')],util[_0x8eb6('0x37')](_0x14921d,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x8eb6('0x8')][_0x8eb6('0x1a')]=function(_0x42268e){try{if(this[_0x8eb6('0x5e')](_0x42268e)){logger[_0x8eb6('0x41')](_0x8eb6('0x83'),_0x42268e[_0x8eb6('0x42')],util[_0x8eb6('0x37')](_0x42268e,{'showHidden':![],'depth':null}));if(this['queueReports'][_0x42268e[_0x8eb6('0x42')]]){var _0x52f6d3=_[_0x8eb6('0x73')](this[_0x8eb6('0x38')][_0x42268e[_0x8eb6('0x42')]]);_0x52f6d3[_0x8eb6('0x17')]=![];_0x52f6d3['queuecallerabandonAt']=null;_0x52f6d3['assigned']=!![];_0x52f6d3[_0x8eb6('0x84')]=_0x42268e[_0x8eb6('0x85')];_0x52f6d3['holdtime']=_0x42268e[_0x8eb6('0x75')];_0x52f6d3[_0x8eb6('0x80')]=!![];_0x52f6d3['queuecallerexit']=![];_0x52f6d3[_0x8eb6('0x86')]=null;if(!_0x52f6d3[_0x8eb6('0x87')]){if(_0x42268e[_0x8eb6('0x88')]==_0x8eb6('0x87')){_0x52f6d3[_0x8eb6('0x78')]='COMPLETED';logger[_0x8eb6('0x60')](_0x8eb6('0x89'),_0x52f6d3[_0x8eb6('0x47')],_0x52f6d3[_0x8eb6('0x4a')]);}else{if(_[_0x8eb6('0x8a')](_0x42268e[_0x8eb6('0x8b')][_0x8eb6('0x8c')](),_0x8eb6('0x8d'))){if(this['queueReports'][_0x42268e[_0x8eb6('0x8e')]]){var _0x6f9087=_['last'](this[_0x8eb6('0x38')][_0x42268e[_0x8eb6('0x8e')]]);_0x6f9087['queuecallercomplete']=![];_0x6f9087[_0x8eb6('0x8f')]=!![];_0x6f9087[_0x8eb6('0x86')]=moment(_0x52f6d3[_0x8eb6('0x90')])['add'](_0x42268e[_0x8eb6('0x75')],_0x8eb6('0x91'))[_0x8eb6('0x43')](_0x8eb6('0x77'));_0x6f9087[_0x8eb6('0x78')]=_0x8eb6('0x92');_0x6f9087[_0x8eb6('0x87')]=!![];_0x6f9087[_0x8eb6('0x93')]=_0x8eb6('0x94');_0x6f9087[_0x8eb6('0x95')]=_0x42268e['destexten'];_0x6f9087[_0x8eb6('0x96')]=_0x42268e[_0x8eb6('0x42')];logger['info'](_0x8eb6('0x97'),_0x6f9087['name'],_0x6f9087['type']);var _0x30aced=this[_0x8eb6('0x38')][_0x42268e[_0x8eb6('0x8e')]];this[_0x8eb6('0x38')][_0x42268e[_0x8eb6('0x8e')]]=this[_0x8eb6('0x38')][_0x42268e[_0x8eb6('0x42')]];this[_0x8eb6('0x38')][_0x42268e[_0x8eb6('0x42')]]=_0x30aced;}}else{_0x52f6d3[_0x8eb6('0x78')]='COMPLETEDBY'+_0x42268e[_0x8eb6('0x88')][_0x8eb6('0x98')]();logger[_0x8eb6('0x60')](_0x8eb6('0x99'),_0x52f6d3['name'],_0x52f6d3[_0x8eb6('0x4a')],_0x52f6d3[_0x8eb6('0x78')]);}}}this[_0x8eb6('0xe')][_0x42268e[_0x8eb6('0x42')]]=_0x52f6d3;this[_0x8eb6('0x3d')](_0x52f6d3,_0x8eb6('0x9a'));}}}catch(_0x33038f){logger[_0x8eb6('0x35')]('[%s][voiceQueueReport][agentcomplete]',_0x42268e['uniqueid'],util[_0x8eb6('0x37')](_0x33038f,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x8eb6('0x8')][_0x8eb6('0x9b')]=function(_0x425e23){try{if(this[_0x8eb6('0x5e')](_0x425e23)){logger['debug'](_0x8eb6('0x9c'),_0x425e23[_0x8eb6('0x42')],util['inspect'](_0x425e23,{'showHidden':![],'depth':null}));this[_0x8eb6('0x9d')](_0x425e23[_0x8eb6('0x42')],_[_0x8eb6('0x6f')](_0x425e23[_0x8eb6('0x9e')])[0x0],_0x425e23['value']);if(this[_0x8eb6('0x38')][_0x425e23[_0x8eb6('0x42')]]){var _0x96aa9=_['last'](this[_0x8eb6('0x38')][_0x425e23['uniqueid']]);if(_0x96aa9){if(this[_0x8eb6('0x5e')](_0x425e23[_0x8eb6('0x9e')])&&this[_0x8eb6('0x5e')](_0x425e23[_0x8eb6('0x9e')][_0x8eb6('0x9f')])){switch(_0x425e23['value']){case _0x8eb6('0xa0'):_0x96aa9[_0x8eb6('0x8f')]=![];_0x96aa9['queuecallerexitAt']=null;break;case _0x8eb6('0xa1'):_0x96aa9[_0x8eb6('0xa2')]=_0x8eb6('0xa3');_0x96aa9[_0x8eb6('0x8f')]=!![];_0x96aa9[_0x8eb6('0x86')]=moment()['format'](_0x8eb6('0x77'));_0x96aa9[_0x8eb6('0xa4')]=moment()['format'](_0x8eb6('0x77'));logger[_0x8eb6('0x41')](_0x8eb6('0xa5'),_0x425e23[_0x8eb6('0x42')],util[_0x8eb6('0x37')](_0x96aa9,{'showHidden':![],'depth':null}));ami[_0x8eb6('0x3f')]('custom:timeout',_0x96aa9);break;default:_0x96aa9[_0x8eb6('0x8f')]=!![];_0x96aa9['queuecallerexitAt']=moment()[_0x8eb6('0x43')]('YYYY-MM-DD\x20HH:mm:ss');_0x96aa9[_0x8eb6('0xa4')]=moment()[_0x8eb6('0x43')](_0x8eb6('0x77'));}_0x96aa9['queuecallerabandon']=![];_0x96aa9[_0x8eb6('0xa6')]=null;_0x96aa9[_0x8eb6('0x78')]=_0x425e23[_0x8eb6('0xa7')];this[_0x8eb6('0xe')][_0x425e23[_0x8eb6('0x42')]]=_0x96aa9;this[_0x8eb6('0x3d')](_0x96aa9,_0x8eb6('0x1c'));}else if(this[_0x8eb6('0x5e')](_0x425e23[_0x8eb6('0x9e')])&&this[_0x8eb6('0x5e')](_0x425e23['variable'][_0x8eb6('0xa8')])){if(!_0x96aa9[_0x8eb6('0x17')]){_0x96aa9['queuecallerexit']=!![];_0x96aa9[_0x8eb6('0x86')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');_0x96aa9['queuecallerexitreason']=_0x8eb6('0xa9');_0x96aa9[_0x8eb6('0xa4')]=moment()[_0x8eb6('0x43')](_0x8eb6('0x77'));this['channels'][_0x425e23['uniqueid']]=_0x96aa9;}}logger[_0x8eb6('0x60')](_0x8eb6('0xaa'),_0x425e23[_0x8eb6('0x42')],_0x96aa9['name'],_0x96aa9[_0x8eb6('0x4a')],_[_0x8eb6('0x6f')](_0x425e23['variable'])[0x0],_0x425e23[_0x8eb6('0xa7')]);_0x96aa9['variables']=this[_0x8eb6('0x3a')][_0x425e23[_0x8eb6('0x42')]];}}}}catch(_0x2c8bcb){logger[_0x8eb6('0x35')](_0x8eb6('0x9c'),_0x425e23[_0x8eb6('0x42')],util['inspect'](_0x2c8bcb,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x8eb6('0x8')][_0x8eb6('0x9d')]=function(_0x176314,_0x5912e3,_0x5d0bd7){var _0x5f3a70=['rtpaudioqos',_0x8eb6('0xab'),_0x8eb6('0xac'),_0x8eb6('0xad'),_0x8eb6('0xae'),'rtpaudioqoslossbridged','rtpaudioqosrtt',_0x8eb6('0xaf'),_0x8eb6('0xb0'),_0x8eb6('0xb1'),_0x8eb6('0xb2'),'bridgepvtcallid',_0x8eb6('0xb3'),'memberdynamic',_0x8eb6('0xb4'),_0x8eb6('0xb5'),_0x8eb6('0x85'),_0x8eb6('0xb6'),_0x8eb6('0xb7')];if(!_[_0x8eb6('0xb8')](_0x5912e3)&&!_[_0x8eb6('0xb9')](_0x5f3a70,_0x5912e3)){if(_[_0x8eb6('0x58')](this[_0x8eb6('0x3a')][_0x176314])){this[_0x8eb6('0x3a')][_0x176314]={};}this[_0x8eb6('0x3a')][_0x176314][_0x5912e3]=_0x5d0bd7;}};VoiceQueueReport['prototype'][_0x8eb6('0x1d')]=function(_0x5ed441){try{if(this[_0x8eb6('0x5e')](_0x5ed441)){logger[_0x8eb6('0x41')]('[%s][voiceQueueReport][hangup]',_0x5ed441[_0x8eb6('0x42')],util[_0x8eb6('0x37')](_0x5ed441,{'showHidden':![],'depth':null}));if(this['queueReports'][_0x5ed441['uniqueid']]){for(var _0x3fb1b2=0x0,_0x7d9ad4={};_0x3fb1b2<this[_0x8eb6('0x38')][_0x5ed441[_0x8eb6('0x42')]]['length'];_0x3fb1b2+=0x1){_0x7d9ad4=this[_0x8eb6('0x38')][_0x5ed441[_0x8eb6('0x42')]][_0x3fb1b2];if(this[_0x8eb6('0xf')][_0x7d9ad4[_0x8eb6('0x5f')]]){if(_0x7d9ad4[_0x8eb6('0x8f')]&&_0x7d9ad4[_0x8eb6('0x87')]!=!![]){this[_0x8eb6('0xf')][_0x7d9ad4['queue']][_0x8eb6('0xba')]+=0x1;}if(_0x7d9ad4[_0x8eb6('0x17')]){this['voiceQueues'][_0x7d9ad4[_0x8eb6('0x5f')]][_0x8eb6('0x51')]+=0x1;}this[_0x8eb6('0xf')][_0x7d9ad4[_0x8eb6('0x5f')]][_0x8eb6('0x4f')]+=moment(_0x7d9ad4[_0x8eb6('0xa4')])[_0x8eb6('0xbb')](_0x7d9ad4[_0x8eb6('0x90')],'seconds')||0x0;if(_0x3fb1b2===this[_0x8eb6('0x38')][_0x5ed441[_0x8eb6('0x42')]][_0x8eb6('0xbc')]-0x1){this[_0x8eb6('0xf')][_0x7d9ad4[_0x8eb6('0x5f')]][_0x8eb6('0x4e')]+=moment()[_0x8eb6('0xbd')](0x0)[_0x8eb6('0xbb')](_0x7d9ad4['queuecallerjoinAt'],_0x8eb6('0x91'));this['voiceQueues'][_0x7d9ad4['queue']]['total']+=0x1;if(_0x7d9ad4['queuecallercomplete']){this[_0x8eb6('0xf')][_0x7d9ad4[_0x8eb6('0x5f')]]['answered']+=0x1;this[_0x8eb6('0xf')][_0x7d9ad4[_0x8eb6('0x5f')]][_0x8eb6('0xbe')]+=moment()[_0x8eb6('0xbd')](0x0)[_0x8eb6('0xbb')](_0x7d9ad4['queuecallerleaveAt'],'seconds');_0x7d9ad4[_0x8eb6('0x74')]=moment()['format'](_0x8eb6('0x77'));_0x7d9ad4['queuecallerexit']=![];_0x7d9ad4['queuecallerexitAt']=null;}if(_0x7d9ad4[_0x8eb6('0x8f')]&&_0x7d9ad4[_0x8eb6('0x87')]!=!![]){_0x7d9ad4[_0x8eb6('0xa2')]='unmanaged';logger[_0x8eb6('0x41')](_0x8eb6('0xbf'),_0x5ed441[_0x8eb6('0x42')],util[_0x8eb6('0x37')](_0x7d9ad4,{'showHidden':![],'depth':null}));ami[_0x8eb6('0x3f')](_0x8eb6('0xc0'),_0x7d9ad4);}if(_0x7d9ad4[_0x8eb6('0x17')]){_0x7d9ad4[_0x8eb6('0xa2')]=_0x8eb6('0x51');logger[_0x8eb6('0x41')](_0x8eb6('0xc1'),_0x5ed441[_0x8eb6('0x42')],util[_0x8eb6('0x37')](_0x7d9ad4,{'showHidden':![],'depth':null}));ami[_0x8eb6('0x3f')]('custom:queuecallerabandon',_0x7d9ad4);}}else{this[_0x8eb6('0xf')][_0x7d9ad4[_0x8eb6('0x5f')]][_0x8eb6('0x4e')]+=this[_0x8eb6('0xf')][_0x7d9ad4[_0x8eb6('0x5f')]]['sumHoldTime'];}logger[_0x8eb6('0x60')](_0x8eb6('0xc2'),_0x5ed441[_0x8eb6('0x42')],_0x7d9ad4['name'],_0x7d9ad4[_0x8eb6('0x4a')],_0x5ed441[_0x8eb6('0xc3')]);this[_0x8eb6('0xe')][_0x5ed441[_0x8eb6('0x42')]]=_0x7d9ad4;this[_0x8eb6('0x3d')](_0x7d9ad4,_0x8eb6('0xc4'));this[_0x8eb6('0x65')](this[_0x8eb6('0xf')][_0x7d9ad4['queue']],'hangup');}}logger[_0x8eb6('0x41')](_0x8eb6('0xc5'),_0x5ed441['uniqueid'],util[_0x8eb6('0x37')](this[_0x8eb6('0x38')][_0x5ed441['uniqueid']],{'showHidden':![],'depth':null}));ami[_0x8eb6('0x3f')]('custom:voiceQueueReport',this[_0x8eb6('0x38')][_0x5ed441[_0x8eb6('0x42')]]);delete this[_0x8eb6('0x38')][_0x5ed441['uniqueid']];delete this['channels'][_0x5ed441['uniqueid']];}if(this[_0x8eb6('0x3a')][_0x5ed441[_0x8eb6('0x42')]]){delete this['variables'][_0x5ed441[_0x8eb6('0x42')]];}}}catch(_0x3da905){logger[_0x8eb6('0x35')](_0x8eb6('0xc6'),_0x5ed441['uniqueid'],util['inspect'](_0x3da905,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x8eb6('0x8')][_0x8eb6('0xc7')]=function(_0x9ea233){try{if(this['isNotNull'](_0x9ea233)){logger[_0x8eb6('0x41')](_0x8eb6('0xc8'),_0x9ea233[_0x8eb6('0x42')],util['inspect'](_0x9ea233,{'showHidden':![],'depth':null}));var _0x311dc9;if(this[_0x8eb6('0x38')][_0x9ea233[_0x8eb6('0xc9')]]){_0x311dc9=_[_0x8eb6('0x73')](this[_0x8eb6('0x38')][_0x9ea233[_0x8eb6('0xc9')]]);_0x311dc9['transferexten']=_0x9ea233[_0x8eb6('0xca')];_0x311dc9[_0x8eb6('0x96')]=_0x9ea233[_0x8eb6('0xcb')];_0x311dc9[_0x8eb6('0x78')]=_0x8eb6('0xcc');_0x311dc9[_0x8eb6('0x87')]=!![];_0x311dc9[_0x8eb6('0x93')]=_0x8eb6('0xcd');if(this['queueReports'][_0x9ea233[_0x8eb6('0xcb')]]){var _0x73071b=this[_0x8eb6('0x38')][_0x9ea233[_0x8eb6('0xcb')]];this[_0x8eb6('0x38')][_0x9ea233[_0x8eb6('0xcb')]]=this[_0x8eb6('0x38')][_0x9ea233[_0x8eb6('0xc9')]];this[_0x8eb6('0x38')][_0x9ea233[_0x8eb6('0xc9')]]=_0x73071b;var _0x1c43d0=_[_0x8eb6('0x73')](this[_0x8eb6('0x38')][_0x9ea233[_0x8eb6('0xc9')]]);_0x1c43d0['switch']=!![];}logger[_0x8eb6('0x60')](_0x8eb6('0xce'),_0x9ea233[_0x8eb6('0x42')],_0x311dc9[_0x8eb6('0x47')],_0x311dc9[_0x8eb6('0x4a')],_0x311dc9['transferexten'],_0x311dc9['transferuniqueid']);}else if(this['queueReports'][_0x9ea233['transfertargetuniqueid']]){_0x311dc9=_[_0x8eb6('0x73')](this[_0x8eb6('0x38')][_0x9ea233['transfertargetuniqueid']]);_0x311dc9[_0x8eb6('0x95')]=_0x9ea233[_0x8eb6('0xcf')];_0x311dc9[_0x8eb6('0x96')]=_0x9ea233['origtransfereruniqueid'];_0x311dc9[_0x8eb6('0x78')]=_0x8eb6('0xcc');_0x311dc9[_0x8eb6('0x87')]=!![];_0x311dc9[_0x8eb6('0x93')]='ATTENDED';if(this['queueReports'][_0x9ea233[_0x8eb6('0xd0')]]){var _0x73071b=this[_0x8eb6('0x38')][_0x9ea233[_0x8eb6('0xd0')]];this[_0x8eb6('0x38')][_0x9ea233[_0x8eb6('0xd0')]]=this[_0x8eb6('0x38')][_0x9ea233[_0x8eb6('0xd1')]];this[_0x8eb6('0x38')][_0x9ea233[_0x8eb6('0xd1')]]=_0x73071b;var _0x1c43d0=_[_0x8eb6('0x73')](this[_0x8eb6('0x38')][_0x9ea233[_0x8eb6('0xd1')]]);_0x1c43d0[_0x8eb6('0x30')]=!![];}logger[_0x8eb6('0x60')](_0x8eb6('0xce'),_0x9ea233['uniqueid'],_0x311dc9[_0x8eb6('0x47')],_0x311dc9[_0x8eb6('0x4a')],_0x311dc9['transferexten'],_0x311dc9[_0x8eb6('0x96')]);}}}catch(_0x5164f5){logger[_0x8eb6('0x35')]('[%s][voiceQueueReport][attendedtransfer]',_0x9ea233[_0x8eb6('0x42')],util[_0x8eb6('0x37')](_0x5164f5,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x8eb6('0x8')]['syncBlindTransfer']=function(_0x3430da){try{if(this[_0x8eb6('0x5e')](_0x3430da)){logger['debug'](_0x8eb6('0xd2'),_0x3430da[_0x8eb6('0x42')],util[_0x8eb6('0x37')](_0x3430da,{'showHidden':![],'depth':null}));if(this[_0x8eb6('0x38')][_0x3430da[_0x8eb6('0xc9')]]){var _0xebf3f9=_[_0x8eb6('0x73')](this[_0x8eb6('0x38')][_0x3430da[_0x8eb6('0xc9')]]);_0xebf3f9[_0x8eb6('0x78')]=_0x8eb6('0xd3');_0xebf3f9[_0x8eb6('0x87')]=!![];_0xebf3f9[_0x8eb6('0x93')]=_0x8eb6('0xd4');_0xebf3f9[_0x8eb6('0x95')]=_0x3430da[_0x8eb6('0xd5')];_0xebf3f9[_0x8eb6('0x96')]=_0x3430da[_0x8eb6('0xc9')];logger['info'](_0x8eb6('0xd6'),_0x3430da[_0x8eb6('0x42')],_0xebf3f9[_0x8eb6('0x47')],_0xebf3f9['type'],_0xebf3f9[_0x8eb6('0x95')],_0xebf3f9[_0x8eb6('0x96')]);this[_0x8eb6('0x1d')]({'event':_0x8eb6('0xd7'),'uniqueid':_0x3430da[_0x8eb6('0xc9')],'context':_0x3430da[_0x8eb6('0xd8')],'channel':_0x3430da['transfererchannel']});}}}catch(_0x4e7ea6){logger['error'](_0x8eb6('0xd2'),_0x3430da[_0x8eb6('0x42')],util[_0x8eb6('0x37')](_0x4e7ea6,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x8eb6('0x8')]['syncMusicOnHoldStart']=function(_0x282e38){try{if(this['isNotNull'](_0x282e38)){logger[_0x8eb6('0x41')](_0x8eb6('0xd9'),_0x282e38[_0x8eb6('0x42')],util[_0x8eb6('0x37')](_0x282e38,{'showHidden':![],'depth':null}));if(this['queueReports'][_0x282e38[_0x8eb6('0x42')]]){var _0x12cf1d=_[_0x8eb6('0x73')](this['queueReports'][_0x282e38[_0x8eb6('0x42')]]);if(!_[_0x8eb6('0xb8')](_0x12cf1d[_0x8eb6('0xa4')])){_0x12cf1d[_0x8eb6('0xda')]=moment()['format'](_0x8eb6('0x77'));logger[_0x8eb6('0x60')](_0x8eb6('0xdb'),_0x282e38[_0x8eb6('0x42')],_0x12cf1d[_0x8eb6('0xda')]);}}}}catch(_0x18f535){logger[_0x8eb6('0x35')]('[%s][voiceQueueReport][musiconholdstart]',_0x282e38[_0x8eb6('0x42')],util['inspect'](_0x18f535,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x8eb6('0x8')][_0x8eb6('0x22')]=function(_0x5a9c8f){try{if(this[_0x8eb6('0x5e')](_0x5a9c8f)){logger['debug'](_0x8eb6('0xdc'),_0x5a9c8f['uniqueid'],util[_0x8eb6('0x37')](_0x5a9c8f,{'showHidden':![],'depth':null}));if(this['queueReports'][_0x5a9c8f[_0x8eb6('0x42')]]){var _0x3f214f=_[_0x8eb6('0x73')](this[_0x8eb6('0x38')][_0x5a9c8f['uniqueid']]);if(!_['isNil'](_0x3f214f['mohstarttime'])){_0x3f214f['mohtime']+=moment()[_0x8eb6('0xbd')](0x0)[_0x8eb6('0xbb')](_0x3f214f[_0x8eb6('0xda')],_0x8eb6('0x91'));logger['info'](_0x8eb6('0xdd'),_0x5a9c8f['uniqueid'],_0x3f214f['mohtime']);delete _0x3f214f['mohstarttime'];}}}}catch(_0x569644){logger[_0x8eb6('0x35')](_0x8eb6('0xdc'),_0x5a9c8f[_0x8eb6('0x42')],util['inspect'](_0x569644,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0x8eb6('0x8')]['syncNewExten']=function(_0x274208){try{if(this[_0x8eb6('0x5e')](_0x274208)){logger[_0x8eb6('0x41')](_0x8eb6('0xde'),_0x274208['uniqueid'],util[_0x8eb6('0x37')](_0x274208,{'showHidden':![],'depth':null}));if(_0x274208['application'][_0x8eb6('0x8c')]()===_0x8eb6('0xdf')){_0x274208['applicationdata']=_0x274208[_0x8eb6('0xe0')]&&_0x274208[_0x8eb6('0xe0')][_0x8eb6('0x8a')]('CDR(routeAlias)')?_0x274208['appdata']:(_0x274208[_0x8eb6('0xe0')]||_0x274208[_0x8eb6('0xe1')])[_0x8eb6('0x8c')]();if(_[_0x8eb6('0x8a')](_0x274208['applicationdata'][_0x8eb6('0x8c')](),_0x8eb6('0xe2'))){logger[_0x8eb6('0x60')](_0x8eb6('0xe3'),_0x274208[_0x8eb6('0x42')],_0x274208[_0x8eb6('0xe4')],_0x274208[_0x8eb6('0xe1')]);if(_[_0x8eb6('0x58')](this[_0x8eb6('0xe')][_0x274208[_0x8eb6('0x42')]]))this[_0x8eb6('0xe')][_0x274208['uniqueid']]={};var _0x1f4ad2=_0x274208['applicationdata'][_0x8eb6('0xe5')]('=');var _0x24ea71=_0x1f4ad2[0x0][_0x8eb6('0x8c')]()[_0x8eb6('0xe6')](/cdr\((.*)\)/);if(_0x24ea71)this['channels'][_0x274208[_0x8eb6('0x42')]][_0x24ea71[0x1]]=_0x1f4ad2[0x1];}}}}catch(_0xe47e03){logger['error']('[%s][voiceQueueReport][newexten]',_0x274208['uniqueid'],util[_0x8eb6('0x37')](_0xe47e03,{'showHidden':![],'depth':null}));}};module[_0x8eb6('0xe7')]=VoiceQueueReport;
\ No newline at end of file
+var _0xf7ec=['uniqueid','format','voice:queue:%s','name',']\x20sending\x20voice_queue_channel:remove\x20event:','voice_queue_channel:remove','voice_queue_presence:remove','emitVoiceQueueSummary','type','inbound','strategy','answered','loggedIn','sumBillable','sumDuration','sumHoldTime','total','abandoned','waiting','Trunk','active','Interval','stringify','md5','[voiceQueueReport][',']\x20sending\x20voice_queue:save\x20event:','isNotNull','isUndefined','loopQueueShow','clearZombieChannels','queues','queuesummary','then','[voiceQueueReport][queuesummary]','queue','[voiceQueueReport][queuesummary]\x20event:','[voiceQueueReport][queuesummary]\x20name:%s','countBy','callers','toNumber','loggedin','available','custom:queuesummary','[voiceQueueReport][queuesummarycomplete]\x20event:','queuecallerjoinAt','YYYY-MM-DD\x20HH:mm:ss','position','count','routealias','info','[voiceQueueReport][queuecallerjoin]\x20name:%s\x20type:%s','merge','keys','push','[%s][voiceQueueReport][queuecallerjoin]','[%s][voiceQueueReport][queuecallerabandon]','last','queuecallercomplete','queuecallercompleteAt','holdtime','originalposition','queuecallerabandon','queuecallerexitreason','lastAssignedTo','[%s][voiceQueueReport][queuecallerleave]','queuecallerleaveAt','connectedlinenum','connectedlinename','[voiceQueueReport][queuecallerleave]\x20name:%s\x20type:%s\x20connectedlinenum:%s\x20connectedlinename:%s','[%s][voiceQueueReport][agentconnect]','[voiceQueueReport][agentconnect]\x20name:%s\x20type:%s\x20queuecallerexitreason:COMPLETEDBYAGENT','[%s][voiceQueueReport][agentcomplete]','queuecallerabandonAt','assigned','membername','queuecallerexit','queuecallerexitAt','transfer','reason','COMPLETED','startsWith','local/','linkedid','add','seconds','transfertype','FORWARD','destexten','transferuniqueid','[voiceQueueReport][agentcomplete]\x20name:%s\x20type:%s\x20queuecallerexitreason:FORWARDTRANSFER','COMPLETEDBY','toUpperCase','[voiceQueueReport][agentcomplete]\x20name:%s\x20type:%s\x20queuecallerexitreason:%s','syncVarSet','[%s][voiceQueueReport][varset]','addVariable','value','queuestatus','CONTINUE','TIMEOUT','timeout','custom:timeout','varset','variable','queueposition','EXITWITHKEY','rtpaudioqos','rtpaudioqosbridged','rtpaudioqosloss','rtpaudioqoslossbridged','sipcallid','bridgepvtcallid','membercalls','memberdynamic','memberinterface','memberlastcall','memberrealtime','includes','[%s][voiceQueueReport][hangup]','length','diff','lastevent','unmanaged','[%s][voiceQueueReport][hangup]\x20sending\x20queuecallerunmanaged\x20event:','[%s][voiceQueueReport][hangup]\x20sending\x20queuecallerabandon\x20event:','custom:queuecallerabandon','cause-txt','hangup','[%s][voiceQueueReport][hangup]\x20sending\x20voiceQueueReport\x20event:','custom:voiceQueueReport','syncAttendedTransfer','transfereeuniqueid','transferexten','secondtransfererexten','ATTENDED','secondtransfereruniqueid','[%s][voiceQueueReport][attendedTransfer]\x20name:%s\x20type:%s\x20transferexten:%s\x20transferuniqueid:%s','transfertargetuniqueid','ATTENDEDTRANSFER','origtransfereruniqueid','[%s][voiceQueueReport][attendedtransfer]','[%s][voiceQueueReport][blindtransfer]','extension','BlindTransfer','context','transfererchannel','[%s][voiceQueueReport][musiconholdstart]','mohstarttime','[%s][voiceQueueReport][musiconholdstart]\x20mohstarttime:%s','[%s][voiceQueueReport][musiconholdstop]','mohtime','milliseconds','[%s][voiceQueueReport][newexten]\x20event:','toLowerCase','set','CDR(routeAlias)','appdata','applicationdata','cdr(','[%s][voiceQueueReport][newexten]\x20application:%s\x20appdata:%s','[%s][voiceQueueReport][newexten]','exports','lodash','moment','util','ioredis','../../../config/environment','../../../config/logger','ami','../ami','../model/queueReport','redis','defaults','localhost','prototype','enqueue','tail','finally','sequence','queueReports','agents','queueChannels','voiceQueues','flagQueueSummary','campaigns','variables','syncQueueSummary','bind','queuesummarycomplete','syncQueueSummaryComplete','queuecallerjoin','syncQueueCallerJoin','syncQueueCallerAbandon','queuecallerleave','syncQueueCallerLeave','agentcomplete','syncAgentComplete','agentconnect','syncAgentConnect','syncHangup','newexten','syncNewExten','musiconholdstart','syncMusicOnHoldStart','musiconholdstop','syncMusicOnHoldStop','syncBlindTransfer','loopQueueSummary','hasOwnProperty','isEmpty','originated','talking','pTalking','queueStatusComplete','unlockRR','channels','switch','isNil','Action','channel','catch','message','No\x20such\x20channel','error','[%s][voiceQueueReport][checkChannel]','inspect','[%s][voiceQueueReport][checkVariables]','[FullyBooted]\x20clear\x20realtime','clearQueueReport','emitVoiceQueueChannelRemove','clearqueuereport','emit','emitVoiceQueueChannelSave','debug','[%s][voiceQueueReport]['];(function(_0x5a7112,_0x1f9492){var _0x3147f7=function(_0x4d2329){while(--_0x4d2329){_0x5a7112['push'](_0x5a7112['shift']());}};_0x3147f7(++_0x1f9492);}(_0xf7ec,0x18d));var _0xcf7e=function(_0xc355,_0xba7c6f){_0xc355=_0xc355-0x0;var _0x395931=_0xf7ec[_0xc355];return _0x395931;};'use strict';var _=require(_0xcf7e('0x0'));var moment=require(_0xcf7e('0x1'));var util=require(_0xcf7e('0x2'));var md5=require('md5');var Redis=require(_0xcf7e('0x3'));var config=require(_0xcf7e('0x4'));var logger=require(_0xcf7e('0x5'))(_0xcf7e('0x6'));var ami=require(_0xcf7e('0x7'));var QueueReport=require(_0xcf7e('0x8'));config[_0xcf7e('0x9')]=_[_0xcf7e('0xa')](config[_0xcf7e('0x9')],{'host':_0xcf7e('0xb'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0xcf7e('0x9')]));var Sequence=function(){};Sequence[_0xcf7e('0xc')][_0xcf7e('0xd')]=function(_0x44105c){this[_0xcf7e('0xe')]=this[_0xcf7e('0xe')]?this[_0xcf7e('0xe')][_0xcf7e('0xf')](_0x44105c):_0x44105c();};function VoiceQueueReport(_0x493733){this[_0xcf7e('0x10')]=new Sequence();this[_0xcf7e('0x11')]={};this[_0xcf7e('0x12')]=_0x493733['agents'];this['channels']=_0x493733[_0xcf7e('0x13')];this['voiceQueues']=_0x493733[_0xcf7e('0x14')];this[_0xcf7e('0x15')]=!![];this[_0xcf7e('0x16')]=_0x493733[_0xcf7e('0x16')];this[_0xcf7e('0x17')]={};ami['on']('queuesummary',this[_0xcf7e('0x18')][_0xcf7e('0x19')](this));ami['on'](_0xcf7e('0x1a'),this[_0xcf7e('0x1b')][_0xcf7e('0x19')](this));ami['on'](_0xcf7e('0x1c'),this[_0xcf7e('0x1d')][_0xcf7e('0x19')](this));ami['on']('queuecallerabandon',this[_0xcf7e('0x1e')]['bind'](this));ami['on'](_0xcf7e('0x1f'),this[_0xcf7e('0x20')][_0xcf7e('0x19')](this));ami['on'](_0xcf7e('0x21'),this[_0xcf7e('0x22')][_0xcf7e('0x19')](this));ami['on'](_0xcf7e('0x23'),this[_0xcf7e('0x24')][_0xcf7e('0x19')](this));ami['on']('varset',this['syncVarSet'][_0xcf7e('0x19')](this));ami['on']('hangup',this[_0xcf7e('0x25')]['bind'](this));ami['on']('fullybooted',this['syncFullyBooted']['bind'](this));ami['on'](_0xcf7e('0x26'),this[_0xcf7e('0x27')][_0xcf7e('0x19')](this));ami['on'](_0xcf7e('0x28'),this[_0xcf7e('0x29')][_0xcf7e('0x19')](this));ami['on'](_0xcf7e('0x2a'),this[_0xcf7e('0x2b')][_0xcf7e('0x19')](this));ami['on']('attendedtransfer',this['syncAttendedTransfer'][_0xcf7e('0x19')](this));ami['on']('blindtransfer',this[_0xcf7e('0x2c')]['bind'](this));this[_0xcf7e('0x2d')]();this['loopQueueShow']();}function clearChannels(_0x2523e5){if(!_['isEmpty'](_0x2523e5)){for(var _0x46fe66 in _0x2523e5){if(_0x2523e5[_0xcf7e('0x2e')](_0x46fe66)){delete _0x2523e5[_0x46fe66];}}}}function clearCampaigns(_0x107dd7){if(!_[_0xcf7e('0x2f')](_0x107dd7)){for(var _0x48e878 in _0x107dd7){if(_0x107dd7['hasOwnProperty'](_0x48e878)){_0x107dd7[_0x48e878][_0xcf7e('0x30')]=0x0;}}}}function clearVoiceQueues(_0xd55ae0){if(!_[_0xcf7e('0x2f')](_0xd55ae0)){for(var _0x5a0598 in _0xd55ae0){if(_0xd55ae0[_0xcf7e('0x2e')](_0x5a0598)){_0xd55ae0[_0x5a0598]['originated']=0x0;_0xd55ae0[_0x5a0598][_0xcf7e('0x31')]=0x0;_0xd55ae0[_0x5a0598][_0xcf7e('0x32')]=0x0;_0xd55ae0[_0x5a0598]['waiting']=0x0;_0xd55ae0[_0x5a0598][_0xcf7e('0x33')]=!![];}}}}function clearAgentBooked(_0x271f19){if(!_[_0xcf7e('0x2f')](_0x271f19)){for(var _0x2d3d53 in _0x271f19){if(_0x271f19[_0xcf7e('0x2e')](_0x2d3d53)){_0x271f19[_0x2d3d53][_0xcf7e('0x34')]=!![];}}}}VoiceQueueReport[_0xcf7e('0xc')]['clearZombieChannels']=function(){var _0x41fa8b=this;for(var _0x3f847a in this[_0xcf7e('0x35')]){if(this[_0xcf7e('0x35')][_0xcf7e('0x2e')](_0x3f847a)&&!this[_0xcf7e('0x35')][_0x3f847a][_0xcf7e('0x36')]){this['sequence'][_0xcf7e('0xd')](function(){if(!_[_0xcf7e('0x37')](_0x41fa8b[_0xcf7e('0x35')][_0x3f847a])){return ami[_0xcf7e('0x38')]({'action':'status','channel':_0x41fa8b[_0xcf7e('0x35')][_0x3f847a][_0xcf7e('0x39')]})[_0xcf7e('0x3a')](function(_0x4c274a){if(_0x4c274a[_0xcf7e('0x3b')]===_0xcf7e('0x3c')){setTimeout(function(){if(_0x41fa8b[_0xcf7e('0x35')][_0x3f847a]){delete _0x41fa8b[_0xcf7e('0x35')][_0x3f847a];logger[_0xcf7e('0x3d')](_0xcf7e('0x3e'),_0x3f847a,util[_0xcf7e('0x3f')](_0x4c274a,{'showHidden':![],'depth':null}));}if(_0x41fa8b[_0xcf7e('0x11')][_0x3f847a]){delete _0x41fa8b[_0xcf7e('0x11')][_0x3f847a];logger[_0xcf7e('0x3d')]('[%s][voiceQueueReport][checkQueueReport]',_0x3f847a,util[_0xcf7e('0x3f')](_0x4c274a,{'showHidden':![],'depth':null}));}if(_0x41fa8b[_0xcf7e('0x17')][_0x3f847a]){delete _0x41fa8b[_0xcf7e('0x17')][_0x3f847a];logger[_0xcf7e('0x3d')](_0xcf7e('0x40'),_0x3f847a,util[_0xcf7e('0x3f')](_0x4c274a,{'showHidden':![],'depth':null}));}},0x1f40);}});}});}}};VoiceQueueReport[_0xcf7e('0xc')]['syncFullyBooted']=function(){logger[_0xcf7e('0x3d')](_0xcf7e('0x41'));clearChannels(this[_0xcf7e('0x35')]);this[_0xcf7e('0x42')](this[_0xcf7e('0x11')]);clearAgentBooked(this['agents']);clearVoiceQueues(this[_0xcf7e('0x14')]);clearCampaigns(this[_0xcf7e('0x16')]);};VoiceQueueReport['prototype'][_0xcf7e('0x42')]=function(_0x484237){var _0x168ba4=this;if(!_[_0xcf7e('0x2f')](_0x484237)){for(var _0x31c135 in _0x484237){if(_0x484237[_0xcf7e('0x2e')](_0x31c135)){_0x168ba4[_0xcf7e('0x43')](_0x484237[_0x31c135],_0xcf7e('0x44'));delete _0x484237[_0x31c135];}}}};VoiceQueueReport['prototype'][_0xcf7e('0x45')]=function(_0x41ac55,_0x2c7325,_0x14437b){io['to'](_0x41ac55)[_0xcf7e('0x45')](_0x2c7325,_0x14437b);};VoiceQueueReport[_0xcf7e('0xc')][_0xcf7e('0x46')]=function(_0xb3dca2,_0x41c938){logger[_0xcf7e('0x47')](_0xcf7e('0x48')+_0x41c938+']\x20sending\x20voice_queue_channel:save\x20event:',_0xb3dca2[_0xcf7e('0x49')],util[_0xcf7e('0x3f')](_0xb3dca2,{'showHidden':![],'depth':null}));this[_0xcf7e('0x45')](util[_0xcf7e('0x4a')](_0xcf7e('0x4b'),_0xb3dca2[_0xcf7e('0x4c')]),'voice_queue_channel:save',_0xb3dca2);io[_0xcf7e('0x45')]('voice_queue_presence:save',_0xb3dca2);};VoiceQueueReport['prototype'][_0xcf7e('0x43')]=function(_0x1d5ce5,_0xbe8da5){logger[_0xcf7e('0x47')](_0xcf7e('0x48')+_0xbe8da5+_0xcf7e('0x4d'),_0x1d5ce5[_0xcf7e('0x49')],util[_0xcf7e('0x3f')](_0x1d5ce5,{'showHidden':![],'depth':null}));this[_0xcf7e('0x45')](util[_0xcf7e('0x4a')](_0xcf7e('0x4b'),_0x1d5ce5[_0xcf7e('0x4c')]),_0xcf7e('0x4e'),_0x1d5ce5);io[_0xcf7e('0x45')](_0xcf7e('0x4f'),_0x1d5ce5);};VoiceQueueReport[_0xcf7e('0xc')][_0xcf7e('0x50')]=function(_0x3ca140,_0x11f5fd){if(_0x3ca140[_0xcf7e('0x51')]===_0xcf7e('0x52')){var _0x4efae8={'id':_0x3ca140['id'],'name':_0x3ca140[_0xcf7e('0x4c')],'strategy':_0x3ca140[_0xcf7e('0x53')],'answered':_0x3ca140[_0xcf7e('0x54')],'available':_0x3ca140['available'],'loggedIn':_0x3ca140[_0xcf7e('0x55')],'pTalking':_0x3ca140[_0xcf7e('0x32')],'sumBillable':_0x3ca140[_0xcf7e('0x56')],'sumDuration':_0x3ca140[_0xcf7e('0x57')],'sumHoldTime':_0x3ca140[_0xcf7e('0x58')]||0x0,'talking':_0x3ca140['talking'],'total':_0x3ca140[_0xcf7e('0x59')],'type':_0x3ca140[_0xcf7e('0x51')],'unmanaged':_0x3ca140['unmanaged'],'abandoned':_0x3ca140[_0xcf7e('0x5a')],'waiting':_0x3ca140[_0xcf7e('0x5b')]};if(_0x3ca140[_0xcf7e('0x5c')]){_0x4efae8[_0xcf7e('0x5c')]={'id':_0x3ca140[_0xcf7e('0x5c')]['id'],'name':_0x3ca140[_0xcf7e('0x5c')]['name'],'active':_0x3ca140[_0xcf7e('0x5c')][_0xcf7e('0x5d')],'callerid':_0x3ca140[_0xcf7e('0x5c')]['callerid']};}if(_0x3ca140['Interval']){_0x4efae8[_0xcf7e('0x5e')]={'id':_0x3ca140[_0xcf7e('0x5e')]['id'],'name':_0x3ca140['Interval'][_0xcf7e('0x4c')]};}var _0x5ea99e=md5(JSON[_0xcf7e('0x5f')](_0x4efae8));if(_0x3ca140[_0xcf7e('0x60')]!==_0x5ea99e){_0x3ca140['md5']=_0x5ea99e;logger['debug'](_0xcf7e('0x61')+_0x11f5fd+_0xcf7e('0x62'),util['inspect'](_0x4efae8,{'showHidden':![],'depth':null}));this[_0xcf7e('0x45')](util[_0xcf7e('0x4a')](_0xcf7e('0x4b'),_0x4efae8[_0xcf7e('0x4c')]),'voice_queue:save',_0x4efae8);}}};VoiceQueueReport[_0xcf7e('0xc')][_0xcf7e('0x63')]=function(_0x482d46){return _0x482d46!==null&&!_[_0xcf7e('0x64')](_0x482d46);};VoiceQueueReport[_0xcf7e('0xc')][_0xcf7e('0x65')]=function(){var _0x3142d5=this;setInterval(function(){_0x3142d5[_0xcf7e('0x66')]();ami['Action']({'action':_0xcf7e('0x67')})[_0xcf7e('0x3a')](function(_0x1c50dd){logger['error']('[voiceQueueReport][queues]',util['inspect'](_0x1c50dd,{'showHidden':![],'depth':null}));});},0x2710);};VoiceQueueReport[_0xcf7e('0xc')]['loopQueueSummary']=function(){var _0x494a0e=this;setInterval(function(){if(_0x494a0e[_0xcf7e('0x15')]){return ami['Action']({'action':_0xcf7e('0x68')})[_0xcf7e('0x69')](function(_0x531ef8){_0x494a0e[_0xcf7e('0x15')]=![];})[_0xcf7e('0x3a')](function(_0x3b2a0f){logger[_0xcf7e('0x3d')](_0xcf7e('0x6a'),util[_0xcf7e('0x3f')](_0x3b2a0f,{'showHidden':![],'depth':null}));});}},0x3e8);};VoiceQueueReport[_0xcf7e('0xc')][_0xcf7e('0x18')]=function(_0x5321da){try{if(this[_0xcf7e('0x63')](_0x5321da)&&this[_0xcf7e('0x63')](_0x5321da[_0xcf7e('0x6b')])){logger[_0xcf7e('0x47')](_0xcf7e('0x6c'),util[_0xcf7e('0x3f')](_0x5321da,{'showHidden':![],'depth':null}));if(this[_0xcf7e('0x14')][_0x5321da[_0xcf7e('0x6b')]]){logger['info'](_0xcf7e('0x6d'),_0x5321da[_0xcf7e('0x6b')]);var _0x5214bf=_[_0xcf7e('0x6e')](this[_0xcf7e('0x35')],'queue')[_0x5321da[_0xcf7e('0x6b')]]||0x0;var _0x308186=_0x5214bf-_0x5321da[_0xcf7e('0x6f')];if(this[_0xcf7e('0x14')][_0x5321da['queue']][_0xcf7e('0x5b')]!==_[_0xcf7e('0x70')](_0x5321da['callers'])||this[_0xcf7e('0x14')][_0x5321da[_0xcf7e('0x6b')]]['loggedIn']!==_[_0xcf7e('0x70')](_0x5321da[_0xcf7e('0x71')])||this[_0xcf7e('0x14')][_0x5321da[_0xcf7e('0x6b')]][_0xcf7e('0x72')]!==_[_0xcf7e('0x70')](_0x5321da[_0xcf7e('0x72')])||this[_0xcf7e('0x14')][_0x5321da[_0xcf7e('0x6b')]][_0xcf7e('0x31')]!==_0x308186){this['voiceQueues'][_0x5321da[_0xcf7e('0x6b')]][_0xcf7e('0x5b')]=_[_0xcf7e('0x70')](_0x5321da[_0xcf7e('0x6f')]);this[_0xcf7e('0x14')][_0x5321da['queue']][_0xcf7e('0x55')]=_[_0xcf7e('0x70')](_0x5321da['loggedin']);this['voiceQueues'][_0x5321da['queue']][_0xcf7e('0x72')]=_[_0xcf7e('0x70')](_0x5321da[_0xcf7e('0x72')]);this['voiceQueues'][_0x5321da[_0xcf7e('0x6b')]]['talking']=_0x308186>0x0?_0x308186:0x0;this[_0xcf7e('0x14')][_0x5321da['queue']][_0xcf7e('0x31')]=this['voiceQueues'][_0x5321da[_0xcf7e('0x6b')]]['talking']>_[_0xcf7e('0x70')](_0x5321da['loggedin'])?_[_0xcf7e('0x70')](_0x5321da['loggedin']):this[_0xcf7e('0x14')][_0x5321da[_0xcf7e('0x6b')]]['talking'];this[_0xcf7e('0x50')](this['voiceQueues'][_0x5321da['queue']],_0xcf7e('0x68'));}logger['debug']('[voiceQueueReport][queuesummary]\x20sending\x20queuesummary\x20event:',util[_0xcf7e('0x3f')](this[_0xcf7e('0x14')][_0x5321da[_0xcf7e('0x6b')]],{'showHidden':![],'depth':null}));ami[_0xcf7e('0x45')](_0xcf7e('0x73'),this[_0xcf7e('0x14')][_0x5321da[_0xcf7e('0x6b')]]);}}}catch(_0x3cd6c6){logger['error'](_0xcf7e('0x6a'),util[_0xcf7e('0x3f')](_0x3cd6c6,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0xcf7e('0xc')][_0xcf7e('0x1b')]=function(_0xde8ac7){logger[_0xcf7e('0x47')](_0xcf7e('0x74'),util[_0xcf7e('0x3f')](_0xde8ac7,{'showHidden':![],'depth':null}));this[_0xcf7e('0x15')]=!![];};VoiceQueueReport[_0xcf7e('0xc')]['syncQueueCallerJoin']=function(_0x63d5e7){try{if(this['isNotNull'](_0x63d5e7)){logger[_0xcf7e('0x47')]('[%s][voiceQueueReport][queuecallerjoin]',_0x63d5e7[_0xcf7e('0x49')],util['inspect'](_0x63d5e7,{'showHidden':![],'depth':null}));if(_['isUndefined'](this[_0xcf7e('0x11')][_0x63d5e7[_0xcf7e('0x49')]]))this[_0xcf7e('0x11')][_0x63d5e7[_0xcf7e('0x49')]]=[];if(_[_0xcf7e('0x64')](this[_0xcf7e('0x35')][_0x63d5e7[_0xcf7e('0x49')]]))this[_0xcf7e('0x35')][_0x63d5e7[_0xcf7e('0x49')]]={};var _0x13aae0=new QueueReport();_0x13aae0[_0xcf7e('0x4c')]=_0x63d5e7[_0xcf7e('0x6b')];_0x13aae0[_0xcf7e('0x51')]=this[_0xcf7e('0x14')][_0x13aae0[_0xcf7e('0x4c')]]&&this[_0xcf7e('0x14')][_0x13aae0[_0xcf7e('0x4c')]]['type']?this[_0xcf7e('0x14')][_0x13aae0['name']][_0xcf7e('0x51')]||_0xcf7e('0x52'):_0xcf7e('0x52');_0x13aae0[_0xcf7e('0x6b')]=_0x63d5e7['queue'];_0x13aae0[_0xcf7e('0x75')]=moment()[_0xcf7e('0x4a')](_0xcf7e('0x76'));_0x13aae0['position']=_0x63d5e7[_0xcf7e('0x77')];_0x13aae0['count']=_0x63d5e7[_0xcf7e('0x78')];_0x13aae0[_0xcf7e('0x49')]=_0x63d5e7[_0xcf7e('0x49')];_0x13aae0[_0xcf7e('0x79')]=this[_0xcf7e('0x35')][_0x63d5e7[_0xcf7e('0x49')]][_0xcf7e('0x79')];logger[_0xcf7e('0x7a')](_0xcf7e('0x7b'),_0x13aae0['name'],_0x13aae0[_0xcf7e('0x51')]);_[_0xcf7e('0x7c')](_0x13aae0,_['pick'](_0x63d5e7,_[_0xcf7e('0x7d')](_0x13aae0)));this[_0xcf7e('0x11')][_0x63d5e7[_0xcf7e('0x49')]][_0xcf7e('0x7e')](_0x13aae0);this['channels'][_0x63d5e7[_0xcf7e('0x49')]]=_0x13aae0;this[_0xcf7e('0x46')](_0x13aae0,_0xcf7e('0x1c'));}}catch(_0x41536e){logger[_0xcf7e('0x3d')](_0xcf7e('0x7f'),_0x63d5e7[_0xcf7e('0x49')],util[_0xcf7e('0x3f')](_0x41536e,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0xcf7e('0xc')][_0xcf7e('0x1e')]=function(_0x28cfa5){try{if(this[_0xcf7e('0x63')](_0x28cfa5)){logger[_0xcf7e('0x47')](_0xcf7e('0x80'),_0x28cfa5[_0xcf7e('0x49')],util[_0xcf7e('0x3f')](_0x28cfa5,{'showHidden':![],'depth':null}));if(this[_0xcf7e('0x11')][_0x28cfa5[_0xcf7e('0x49')]]){var _0xfc3923=_[_0xcf7e('0x81')](this[_0xcf7e('0x11')][_0x28cfa5['uniqueid']]);_0xfc3923[_0xcf7e('0x82')]=![];_0xfc3923[_0xcf7e('0x83')]=null;_0xfc3923[_0xcf7e('0x84')]=_0x28cfa5[_0xcf7e('0x84')];_0xfc3923[_0xcf7e('0x85')]=_0x28cfa5[_0xcf7e('0x85')];_0xfc3923[_0xcf7e('0x86')]=!![];_0xfc3923['queuecallerabandonAt']=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');_0xfc3923[_0xcf7e('0x87')]='ABANDONED';_0xfc3923[_0xcf7e('0x88')]=null;logger[_0xcf7e('0x7a')]('[voiceQueueReport][queuecallerabandon]\x20name:%s\x20type:%s',_0xfc3923['name'],_0xfc3923[_0xcf7e('0x51')]);this[_0xcf7e('0x35')][_0x28cfa5[_0xcf7e('0x49')]]=_0xfc3923;this[_0xcf7e('0x43')](_0xfc3923,_0xcf7e('0x86'));}}}catch(_0x2dae71){logger[_0xcf7e('0x3d')](_0xcf7e('0x80'),_0x28cfa5[_0xcf7e('0x49')],util[_0xcf7e('0x3f')](_0x2dae71,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0xcf7e('0xc')][_0xcf7e('0x20')]=function(_0xbb9aff){try{if(this[_0xcf7e('0x63')](_0xbb9aff)){logger[_0xcf7e('0x47')](_0xcf7e('0x89'),_0xbb9aff['uniqueid'],util['inspect'](_0xbb9aff,{'showHidden':![],'depth':null}));if(this[_0xcf7e('0x11')][_0xbb9aff[_0xcf7e('0x49')]]){var _0x52dcdc=_[_0xcf7e('0x81')](this[_0xcf7e('0x11')][_0xbb9aff[_0xcf7e('0x49')]]);_0x52dcdc[_0xcf7e('0x8a')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');_0x52dcdc[_0xcf7e('0x8b')]=_0xbb9aff[_0xcf7e('0x8b')];_0x52dcdc[_0xcf7e('0x8c')]=_0xbb9aff['connectedlinename'];logger['info'](_0xcf7e('0x8d'),_0x52dcdc['name'],_0x52dcdc[_0xcf7e('0x51')],_0xbb9aff[_0xcf7e('0x8b')],_0xbb9aff['connectedlinename']);this['channels'][_0xbb9aff[_0xcf7e('0x49')]]=_0x52dcdc;this[_0xcf7e('0x46')](_0x52dcdc,'queuecallerleave');}}}catch(_0x28d8fb){logger[_0xcf7e('0x3d')]('[%s][voiceQueueReport][queuecallerleave]',_0xbb9aff[_0xcf7e('0x49')],util[_0xcf7e('0x3f')](_0x28d8fb,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0xcf7e('0xc')][_0xcf7e('0x24')]=function(_0x2b9683){try{if(this['isNotNull'](_0x2b9683)){logger['debug'](_0xcf7e('0x8e'),_0x2b9683[_0xcf7e('0x49')],util[_0xcf7e('0x3f')](_0x2b9683,{'showHidden':![],'depth':null}));if(this[_0xcf7e('0x11')][_0x2b9683['uniqueid']]){var _0x54f380=_[_0xcf7e('0x81')](this['queueReports'][_0x2b9683['uniqueid']]);_0x54f380[_0xcf7e('0x82')]=!![];_0x54f380[_0xcf7e('0x87')]='COMPLETEDBYAGENT';logger[_0xcf7e('0x7a')](_0xcf7e('0x8f'),_0x54f380[_0xcf7e('0x4c')],_0x54f380[_0xcf7e('0x51')]);}}}catch(_0x3c4139){logger[_0xcf7e('0x3d')]('[%s][voiceQueueReport][agentconnect]',_0x2b9683[_0xcf7e('0x49')],util[_0xcf7e('0x3f')](_0x3c4139,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0xcf7e('0xc')]['syncAgentComplete']=function(_0x5e5dec){try{if(this['isNotNull'](_0x5e5dec)){logger[_0xcf7e('0x47')](_0xcf7e('0x90'),_0x5e5dec['uniqueid'],util['inspect'](_0x5e5dec,{'showHidden':![],'depth':null}));if(this[_0xcf7e('0x11')][_0x5e5dec[_0xcf7e('0x49')]]){var _0x32d422=_['last'](this['queueReports'][_0x5e5dec['uniqueid']]);_0x32d422[_0xcf7e('0x86')]=![];_0x32d422[_0xcf7e('0x91')]=null;_0x32d422[_0xcf7e('0x92')]=!![];_0x32d422[_0xcf7e('0x88')]=_0x5e5dec[_0xcf7e('0x93')];_0x32d422[_0xcf7e('0x84')]=_0x5e5dec[_0xcf7e('0x84')];_0x32d422[_0xcf7e('0x82')]=!![];_0x32d422[_0xcf7e('0x94')]=![];_0x32d422[_0xcf7e('0x95')]=null;if(!_0x32d422[_0xcf7e('0x96')]){if(_0x5e5dec[_0xcf7e('0x97')]==_0xcf7e('0x96')){_0x32d422['queuecallerexitreason']=_0xcf7e('0x98');logger['info']('[voiceQueueReport][agentcomplete]\x20name:%s\x20type:%s\x20queuecallerexitreason:COMPLETED',_0x32d422[_0xcf7e('0x4c')],_0x32d422[_0xcf7e('0x51')]);}else{if(_[_0xcf7e('0x99')](_0x5e5dec[_0xcf7e('0x39')]['toLowerCase'](),_0xcf7e('0x9a'))){if(this[_0xcf7e('0x11')][_0x5e5dec['linkedid']]){var _0x3d65ec=_[_0xcf7e('0x81')](this[_0xcf7e('0x11')][_0x5e5dec[_0xcf7e('0x9b')]]);_0x3d65ec[_0xcf7e('0x82')]=![];_0x3d65ec['queuecallerexit']=!![];_0x3d65ec[_0xcf7e('0x95')]=moment(_0x32d422['queuecallerjoinAt'])[_0xcf7e('0x9c')](_0x5e5dec[_0xcf7e('0x84')],_0xcf7e('0x9d'))[_0xcf7e('0x4a')](_0xcf7e('0x76'));_0x3d65ec[_0xcf7e('0x87')]='FORWARDTRANSFER';_0x3d65ec[_0xcf7e('0x96')]=!![];_0x3d65ec[_0xcf7e('0x9e')]=_0xcf7e('0x9f');_0x3d65ec['transferexten']=_0x5e5dec[_0xcf7e('0xa0')];_0x3d65ec[_0xcf7e('0xa1')]=_0x5e5dec[_0xcf7e('0x49')];logger[_0xcf7e('0x7a')](_0xcf7e('0xa2'),_0x3d65ec[_0xcf7e('0x4c')],_0x3d65ec['type']);var _0x1c1b94=this[_0xcf7e('0x11')][_0x5e5dec[_0xcf7e('0x9b')]];this['queueReports'][_0x5e5dec[_0xcf7e('0x9b')]]=this[_0xcf7e('0x11')][_0x5e5dec['uniqueid']];this[_0xcf7e('0x11')][_0x5e5dec[_0xcf7e('0x49')]]=_0x1c1b94;}}else{_0x32d422[_0xcf7e('0x87')]=_0xcf7e('0xa3')+_0x5e5dec[_0xcf7e('0x97')][_0xcf7e('0xa4')]();logger[_0xcf7e('0x7a')](_0xcf7e('0xa5'),_0x32d422[_0xcf7e('0x4c')],_0x32d422[_0xcf7e('0x51')],_0x32d422[_0xcf7e('0x87')]);}}}this[_0xcf7e('0x35')][_0x5e5dec[_0xcf7e('0x49')]]=_0x32d422;this[_0xcf7e('0x43')](_0x32d422,'agentcomplete');}}}catch(_0x105302){logger['error'](_0xcf7e('0x90'),_0x5e5dec[_0xcf7e('0x49')],util['inspect'](_0x105302,{'showHidden':![],'depth':null}));}};VoiceQueueReport['prototype'][_0xcf7e('0xa6')]=function(_0x581443){try{if(this[_0xcf7e('0x63')](_0x581443)){logger[_0xcf7e('0x47')](_0xcf7e('0xa7'),_0x581443[_0xcf7e('0x49')],util['inspect'](_0x581443,{'showHidden':![],'depth':null}));this[_0xcf7e('0xa8')](_0x581443[_0xcf7e('0x49')],_[_0xcf7e('0x7d')](_0x581443['variable'])[0x0],_0x581443[_0xcf7e('0xa9')]);if(this['queueReports'][_0x581443[_0xcf7e('0x49')]]){var _0x4f996c=_[_0xcf7e('0x81')](this[_0xcf7e('0x11')][_0x581443[_0xcf7e('0x49')]]);if(_0x4f996c){if(this[_0xcf7e('0x63')](_0x581443['variable'])&&this[_0xcf7e('0x63')](_0x581443['variable'][_0xcf7e('0xaa')])){switch(_0x581443[_0xcf7e('0xa9')]){case _0xcf7e('0xab'):_0x4f996c[_0xcf7e('0x94')]=![];_0x4f996c[_0xcf7e('0x95')]=null;break;case _0xcf7e('0xac'):_0x4f996c['lastevent']=_0xcf7e('0xad');_0x4f996c[_0xcf7e('0x94')]=!![];_0x4f996c[_0xcf7e('0x95')]=moment()[_0xcf7e('0x4a')]('YYYY-MM-DD\x20HH:mm:ss');_0x4f996c[_0xcf7e('0x8a')]=moment()[_0xcf7e('0x4a')](_0xcf7e('0x76'));logger[_0xcf7e('0x47')]('[%s][voiceQueueReport][varset]\x20sending\x20timeout\x20event:',_0x581443[_0xcf7e('0x49')],util[_0xcf7e('0x3f')](_0x4f996c,{'showHidden':![],'depth':null}));ami['emit'](_0xcf7e('0xae'),_0x4f996c);break;default:_0x4f996c['queuecallerexit']=!![];_0x4f996c[_0xcf7e('0x95')]=moment()[_0xcf7e('0x4a')](_0xcf7e('0x76'));_0x4f996c[_0xcf7e('0x8a')]=moment()[_0xcf7e('0x4a')](_0xcf7e('0x76'));}_0x4f996c['queuecallerabandon']=![];_0x4f996c[_0xcf7e('0x91')]=null;_0x4f996c[_0xcf7e('0x87')]=_0x581443['value'];this['channels'][_0x581443[_0xcf7e('0x49')]]=_0x4f996c;this[_0xcf7e('0x43')](_0x4f996c,_0xcf7e('0xaf'));}else if(this[_0xcf7e('0x63')](_0x581443[_0xcf7e('0xb0')])&&this[_0xcf7e('0x63')](_0x581443[_0xcf7e('0xb0')][_0xcf7e('0xb1')])){if(!_0x4f996c[_0xcf7e('0x86')]){_0x4f996c[_0xcf7e('0x94')]=!![];_0x4f996c[_0xcf7e('0x95')]=moment()[_0xcf7e('0x4a')]('YYYY-MM-DD\x20HH:mm:ss');_0x4f996c[_0xcf7e('0x87')]=_0xcf7e('0xb2');_0x4f996c[_0xcf7e('0x8a')]=moment()[_0xcf7e('0x4a')](_0xcf7e('0x76'));this[_0xcf7e('0x35')][_0x581443[_0xcf7e('0x49')]]=_0x4f996c;}}logger[_0xcf7e('0x7a')]('[%s][voiceQueueReport][varset]\x20name:%s\x20type:%s\x20variable:%s\x20value:%s',_0x581443[_0xcf7e('0x49')],_0x4f996c[_0xcf7e('0x4c')],_0x4f996c[_0xcf7e('0x51')],_['keys'](_0x581443[_0xcf7e('0xb0')])[0x0],_0x581443[_0xcf7e('0xa9')]);_0x4f996c['variables']=this['variables'][_0x581443['uniqueid']];}}}}catch(_0x54f14b){logger['error'](_0xcf7e('0xa7'),_0x581443[_0xcf7e('0x49')],util[_0xcf7e('0x3f')](_0x54f14b,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0xcf7e('0xc')][_0xcf7e('0xa8')]=function(_0x48f4f4,_0x5b513e,_0x16379c){var _0xa161e5=[_0xcf7e('0xb3'),_0xcf7e('0xb4'),'rtpaudioqosjitter','rtpaudioqosjitterbridged',_0xcf7e('0xb5'),_0xcf7e('0xb6'),'rtpaudioqosrtt','rtpaudioqosrttbridged',_0xcf7e('0xb7'),'sipuri','bridgepeer',_0xcf7e('0xb8'),_0xcf7e('0xb9'),_0xcf7e('0xba'),_0xcf7e('0xbb'),_0xcf7e('0xbc'),_0xcf7e('0x93'),'memberpenalty',_0xcf7e('0xbd')];if(!_[_0xcf7e('0x37')](_0x5b513e)&&!_[_0xcf7e('0xbe')](_0xa161e5,_0x5b513e)){if(_[_0xcf7e('0x64')](this['variables'][_0x48f4f4])){this[_0xcf7e('0x17')][_0x48f4f4]={};}this[_0xcf7e('0x17')][_0x48f4f4][_0x5b513e]=_0x16379c;}};VoiceQueueReport[_0xcf7e('0xc')][_0xcf7e('0x25')]=function(_0x2ac1c7){try{if(this[_0xcf7e('0x63')](_0x2ac1c7)){logger[_0xcf7e('0x47')](_0xcf7e('0xbf'),_0x2ac1c7[_0xcf7e('0x49')],util[_0xcf7e('0x3f')](_0x2ac1c7,{'showHidden':![],'depth':null}));if(this[_0xcf7e('0x11')][_0x2ac1c7['uniqueid']]){for(var _0x3238e5=0x0,_0x5589cd={};_0x3238e5<this[_0xcf7e('0x11')][_0x2ac1c7[_0xcf7e('0x49')]][_0xcf7e('0xc0')];_0x3238e5+=0x1){_0x5589cd=this['queueReports'][_0x2ac1c7[_0xcf7e('0x49')]][_0x3238e5];if(this[_0xcf7e('0x14')][_0x5589cd[_0xcf7e('0x6b')]]){if(_0x5589cd[_0xcf7e('0x94')]&&_0x5589cd[_0xcf7e('0x96')]!=!![]){this[_0xcf7e('0x14')][_0x5589cd[_0xcf7e('0x6b')]]['unmanaged']+=0x1;}if(_0x5589cd['queuecallerabandon']){this[_0xcf7e('0x14')][_0x5589cd[_0xcf7e('0x6b')]][_0xcf7e('0x5a')]+=0x1;}this[_0xcf7e('0x14')][_0x5589cd[_0xcf7e('0x6b')]][_0xcf7e('0x58')]+=moment(_0x5589cd[_0xcf7e('0x8a')])[_0xcf7e('0xc1')](_0x5589cd[_0xcf7e('0x75')],_0xcf7e('0x9d'))||0x0;if(_0x3238e5===this[_0xcf7e('0x11')][_0x2ac1c7[_0xcf7e('0x49')]]['length']-0x1){this['voiceQueues'][_0x5589cd[_0xcf7e('0x6b')]][_0xcf7e('0x57')]+=moment()['milliseconds'](0x0)[_0xcf7e('0xc1')](_0x5589cd[_0xcf7e('0x75')],_0xcf7e('0x9d'));this[_0xcf7e('0x14')][_0x5589cd[_0xcf7e('0x6b')]][_0xcf7e('0x59')]+=0x1;if(_0x5589cd[_0xcf7e('0x82')]){this[_0xcf7e('0x14')][_0x5589cd[_0xcf7e('0x6b')]]['answered']+=0x1;this[_0xcf7e('0x14')][_0x5589cd[_0xcf7e('0x6b')]][_0xcf7e('0x56')]+=moment()['milliseconds'](0x0)[_0xcf7e('0xc1')](_0x5589cd[_0xcf7e('0x8a')],_0xcf7e('0x9d'));_0x5589cd[_0xcf7e('0x83')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');_0x5589cd['queuecallerexit']=![];_0x5589cd[_0xcf7e('0x95')]=null;}if(_0x5589cd['queuecallerexit']&&_0x5589cd[_0xcf7e('0x96')]!=!![]){_0x5589cd[_0xcf7e('0xc2')]=_0xcf7e('0xc3');logger['debug'](_0xcf7e('0xc4'),_0x2ac1c7[_0xcf7e('0x49')],util[_0xcf7e('0x3f')](_0x5589cd,{'showHidden':![],'depth':null}));ami['emit']('custom:queuecallerunmanaged',_0x5589cd);}if(_0x5589cd[_0xcf7e('0x86')]){_0x5589cd['lastevent']='abandoned';logger[_0xcf7e('0x47')](_0xcf7e('0xc5'),_0x2ac1c7[_0xcf7e('0x49')],util['inspect'](_0x5589cd,{'showHidden':![],'depth':null}));ami[_0xcf7e('0x45')](_0xcf7e('0xc6'),_0x5589cd);}}else{this['voiceQueues'][_0x5589cd[_0xcf7e('0x6b')]][_0xcf7e('0x57')]+=this[_0xcf7e('0x14')][_0x5589cd[_0xcf7e('0x6b')]][_0xcf7e('0x58')];}logger[_0xcf7e('0x7a')]('[%s][voiceQueueReport][hangup]\x20name:%s\x20type:%s\x20reason:%s',_0x2ac1c7[_0xcf7e('0x49')],_0x5589cd[_0xcf7e('0x4c')],_0x5589cd[_0xcf7e('0x51')],_0x2ac1c7[_0xcf7e('0xc7')]);this[_0xcf7e('0x35')][_0x2ac1c7[_0xcf7e('0x49')]]=_0x5589cd;this[_0xcf7e('0x43')](_0x5589cd,'hangup');this[_0xcf7e('0x50')](this[_0xcf7e('0x14')][_0x5589cd[_0xcf7e('0x6b')]],_0xcf7e('0xc8'));}}logger['debug'](_0xcf7e('0xc9'),_0x2ac1c7[_0xcf7e('0x49')],util['inspect'](this[_0xcf7e('0x11')][_0x2ac1c7[_0xcf7e('0x49')]],{'showHidden':![],'depth':null}));ami[_0xcf7e('0x45')](_0xcf7e('0xca'),this[_0xcf7e('0x11')][_0x2ac1c7[_0xcf7e('0x49')]]);delete this[_0xcf7e('0x11')][_0x2ac1c7[_0xcf7e('0x49')]];delete this[_0xcf7e('0x35')][_0x2ac1c7[_0xcf7e('0x49')]];}if(this[_0xcf7e('0x17')][_0x2ac1c7[_0xcf7e('0x49')]]){delete this[_0xcf7e('0x17')][_0x2ac1c7['uniqueid']];}}}catch(_0x13f5f0){logger[_0xcf7e('0x3d')](_0xcf7e('0xbf'),_0x2ac1c7['uniqueid'],util[_0xcf7e('0x3f')](_0x13f5f0,{'showHidden':![],'depth':null}));}};VoiceQueueReport['prototype'][_0xcf7e('0xcb')]=function(_0x196b20){try{if(this[_0xcf7e('0x63')](_0x196b20)){logger['debug']('[%s][voiceQueueReport][attendedtransfer]',_0x196b20['uniqueid'],util[_0xcf7e('0x3f')](_0x196b20,{'showHidden':![],'depth':null}));var _0x10ecb8;if(this[_0xcf7e('0x11')][_0x196b20[_0xcf7e('0xcc')]]){_0x10ecb8=_['last'](this[_0xcf7e('0x11')][_0x196b20['transfereeuniqueid']]);_0x10ecb8[_0xcf7e('0xcd')]=_0x196b20[_0xcf7e('0xce')];_0x10ecb8[_0xcf7e('0xa1')]=_0x196b20['secondtransfereruniqueid'];_0x10ecb8[_0xcf7e('0x87')]='ATTENDEDTRANSFER';_0x10ecb8[_0xcf7e('0x96')]=!![];_0x10ecb8['transfertype']=_0xcf7e('0xcf');if(this[_0xcf7e('0x11')][_0x196b20[_0xcf7e('0xd0')]]){var _0xfa1c9c=this['queueReports'][_0x196b20[_0xcf7e('0xd0')]];this['queueReports'][_0x196b20[_0xcf7e('0xd0')]]=this[_0xcf7e('0x11')][_0x196b20[_0xcf7e('0xcc')]];this[_0xcf7e('0x11')][_0x196b20['transfereeuniqueid']]=_0xfa1c9c;var _0x46d171=_[_0xcf7e('0x81')](this[_0xcf7e('0x11')][_0x196b20[_0xcf7e('0xcc')]]);_0x46d171['switch']=!![];}logger[_0xcf7e('0x7a')](_0xcf7e('0xd1'),_0x196b20[_0xcf7e('0x49')],_0x10ecb8[_0xcf7e('0x4c')],_0x10ecb8[_0xcf7e('0x51')],_0x10ecb8[_0xcf7e('0xcd')],_0x10ecb8['transferuniqueid']);}else if(this['queueReports'][_0x196b20[_0xcf7e('0xd2')]]){_0x10ecb8=_[_0xcf7e('0x81')](this[_0xcf7e('0x11')][_0x196b20[_0xcf7e('0xd2')]]);_0x10ecb8[_0xcf7e('0xcd')]=_0x196b20['origtransfererexten'];_0x10ecb8[_0xcf7e('0xa1')]=_0x196b20['origtransfereruniqueid'];_0x10ecb8[_0xcf7e('0x87')]=_0xcf7e('0xd3');_0x10ecb8[_0xcf7e('0x96')]=!![];_0x10ecb8[_0xcf7e('0x9e')]=_0xcf7e('0xcf');if(this[_0xcf7e('0x11')][_0x196b20[_0xcf7e('0xd4')]]){var _0xfa1c9c=this[_0xcf7e('0x11')][_0x196b20['origtransfereruniqueid']];this[_0xcf7e('0x11')][_0x196b20[_0xcf7e('0xd4')]]=this[_0xcf7e('0x11')][_0x196b20['transfertargetuniqueid']];this['queueReports'][_0x196b20[_0xcf7e('0xd2')]]=_0xfa1c9c;var _0x46d171=_[_0xcf7e('0x81')](this[_0xcf7e('0x11')][_0x196b20[_0xcf7e('0xd2')]]);_0x46d171[_0xcf7e('0x36')]=!![];}logger['info']('[%s][voiceQueueReport][attendedTransfer]\x20name:%s\x20type:%s\x20transferexten:%s\x20transferuniqueid:%s',_0x196b20[_0xcf7e('0x49')],_0x10ecb8[_0xcf7e('0x4c')],_0x10ecb8[_0xcf7e('0x51')],_0x10ecb8[_0xcf7e('0xcd')],_0x10ecb8[_0xcf7e('0xa1')]);}}}catch(_0x289f25){logger['error'](_0xcf7e('0xd5'),_0x196b20[_0xcf7e('0x49')],util['inspect'](_0x289f25,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0xcf7e('0xc')]['syncBlindTransfer']=function(_0x4a26ef){try{if(this[_0xcf7e('0x63')](_0x4a26ef)){logger[_0xcf7e('0x47')](_0xcf7e('0xd6'),_0x4a26ef[_0xcf7e('0x49')],util[_0xcf7e('0x3f')](_0x4a26ef,{'showHidden':![],'depth':null}));if(this[_0xcf7e('0x11')][_0x4a26ef[_0xcf7e('0xcc')]]){var _0x29097b=_[_0xcf7e('0x81')](this[_0xcf7e('0x11')][_0x4a26ef['transfereeuniqueid']]);_0x29097b['queuecallerexitreason']='BLINDTRANSFER';_0x29097b[_0xcf7e('0x96')]=!![];_0x29097b['transfertype']='BLIND';_0x29097b[_0xcf7e('0xcd')]=_0x4a26ef[_0xcf7e('0xd7')];_0x29097b[_0xcf7e('0xa1')]=_0x4a26ef[_0xcf7e('0xcc')];logger[_0xcf7e('0x7a')]('[%s][voiceQueueReport][blindTransfer]\x20name:%s\x20type:%s\x20transferexten:%s\x20transferuniqueid:%s',_0x4a26ef['uniqueid'],_0x29097b[_0xcf7e('0x4c')],_0x29097b['type'],_0x29097b[_0xcf7e('0xcd')],_0x29097b[_0xcf7e('0xa1')]);this[_0xcf7e('0x25')]({'event':_0xcf7e('0xd8'),'uniqueid':_0x4a26ef[_0xcf7e('0xcc')],'context':_0x4a26ef[_0xcf7e('0xd9')],'channel':_0x4a26ef[_0xcf7e('0xda')]});}}}catch(_0x2b5336){logger[_0xcf7e('0x3d')](_0xcf7e('0xd6'),_0x4a26ef[_0xcf7e('0x49')],util['inspect'](_0x2b5336,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0xcf7e('0xc')][_0xcf7e('0x29')]=function(_0x206b28){try{if(this[_0xcf7e('0x63')](_0x206b28)){logger[_0xcf7e('0x47')](_0xcf7e('0xdb'),_0x206b28[_0xcf7e('0x49')],util[_0xcf7e('0x3f')](_0x206b28,{'showHidden':![],'depth':null}));if(this[_0xcf7e('0x11')][_0x206b28[_0xcf7e('0x49')]]){var _0x36b02b=_['last'](this[_0xcf7e('0x11')][_0x206b28[_0xcf7e('0x49')]]);if(!_[_0xcf7e('0x37')](_0x36b02b[_0xcf7e('0x8a')])){_0x36b02b[_0xcf7e('0xdc')]=moment()['format'](_0xcf7e('0x76'));logger[_0xcf7e('0x7a')](_0xcf7e('0xdd'),_0x206b28[_0xcf7e('0x49')],_0x36b02b[_0xcf7e('0xdc')]);}}}}catch(_0x216884){logger[_0xcf7e('0x3d')](_0xcf7e('0xdb'),_0x206b28['uniqueid'],util[_0xcf7e('0x3f')](_0x216884,{'showHidden':![],'depth':null}));}};VoiceQueueReport[_0xcf7e('0xc')][_0xcf7e('0x2b')]=function(_0x445530){try{if(this[_0xcf7e('0x63')](_0x445530)){logger[_0xcf7e('0x47')](_0xcf7e('0xde'),_0x445530[_0xcf7e('0x49')],util[_0xcf7e('0x3f')](_0x445530,{'showHidden':![],'depth':null}));if(this[_0xcf7e('0x11')][_0x445530[_0xcf7e('0x49')]]){var _0x80d84c=_['last'](this[_0xcf7e('0x11')][_0x445530[_0xcf7e('0x49')]]);if(!_[_0xcf7e('0x37')](_0x80d84c[_0xcf7e('0xdc')])){_0x80d84c[_0xcf7e('0xdf')]+=moment()[_0xcf7e('0xe0')](0x0)['diff'](_0x80d84c['mohstarttime'],_0xcf7e('0x9d'));logger[_0xcf7e('0x7a')]('[%s][voiceQueueReport][musiconholdstop]\x20mohtime:%s',_0x445530[_0xcf7e('0x49')],_0x80d84c[_0xcf7e('0xdf')]);delete _0x80d84c[_0xcf7e('0xdc')];}}}}catch(_0x1eee80){logger['error'](_0xcf7e('0xde'),_0x445530[_0xcf7e('0x49')],util[_0xcf7e('0x3f')](_0x1eee80,{'showHidden':![],'depth':null}));}};VoiceQueueReport['prototype'][_0xcf7e('0x27')]=function(_0x13bdd1){try{if(this[_0xcf7e('0x63')](_0x13bdd1)){logger['debug'](_0xcf7e('0xe1'),_0x13bdd1[_0xcf7e('0x49')],util[_0xcf7e('0x3f')](_0x13bdd1,{'showHidden':![],'depth':null}));if(_0x13bdd1['application'][_0xcf7e('0xe2')]()===_0xcf7e('0xe3')){_0x13bdd1['applicationdata']=_0x13bdd1['appdata']&&_0x13bdd1['appdata'][_0xcf7e('0x99')](_0xcf7e('0xe4'))?_0x13bdd1[_0xcf7e('0xe5')]:(_0x13bdd1['appdata']||_0x13bdd1[_0xcf7e('0xe6')])[_0xcf7e('0xe2')]();if(_[_0xcf7e('0x99')](_0x13bdd1[_0xcf7e('0xe6')][_0xcf7e('0xe2')](),_0xcf7e('0xe7'))){logger[_0xcf7e('0x7a')](_0xcf7e('0xe8'),_0x13bdd1['uniqueid'],_0x13bdd1['application'],_0x13bdd1[_0xcf7e('0xe6')]);if(_['isUndefined'](this[_0xcf7e('0x35')][_0x13bdd1[_0xcf7e('0x49')]]))this['channels'][_0x13bdd1['uniqueid']]={};var _0x16254b=_0x13bdd1[_0xcf7e('0xe6')]['split']('=');var _0xb7869=_0x16254b[0x0][_0xcf7e('0xe2')]()['match'](/cdr\((.*)\)/);if(_0xb7869)this['channels'][_0x13bdd1[_0xcf7e('0x49')]][_0xb7869[0x1]]=_0x16254b[0x1];}}}}catch(_0x3c42eb){logger[_0xcf7e('0x3d')](_0xcf7e('0xe9'),_0x13bdd1[_0xcf7e('0x49')],util[_0xcf7e('0x3f')](_0x3c42eb,{'showHidden':![],'depth':null}));}};module[_0xcf7e('0xea')]=VoiceQueueReport;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x472b=['createHistory','campaign','queue','Request','CreateReportAgentPreview','../client'];(function(_0x1d329a,_0xd88bd){var _0x6ea12e=function(_0x4a8773){while(--_0x4a8773){_0x1d329a['push'](_0x1d329a['shift']());}};_0x6ea12e(++_0xd88bd);}(_0x472b,0x65));var _0xb472=function(_0x873ccf,_0x327e8e){_0x873ccf=_0x873ccf-0x0;var _0x50f5e8=_0x472b[_0x873ccf];return _0x50f5e8;};'use strict';var client=require(_0xb472('0x0'));exports[_0xb472('0x1')]=function(_0x3071d0){return function(){_0x3071d0[_0xb472('0x2')]=_0x3071d0[_0xb472('0x3')];return client[_0xb472('0x4')]('CreateReportAgentPreview',{'body':_0x3071d0,'log':_0xb472('0x5')});};};
\ No newline at end of file
+var _0x1832=['createHistory','queue','Request','CreateReportAgentPreview'];(function(_0x40f865,_0x271815){var _0x5c94a7=function(_0x3ffa3b){while(--_0x3ffa3b){_0x40f865['push'](_0x40f865['shift']());}};_0x5c94a7(++_0x271815);}(_0x1832,0xbc));var _0x2183=function(_0x475730,_0x3e8fde){_0x475730=_0x475730-0x0;var _0x5c90be=_0x1832[_0x475730];return _0x5c90be;};'use strict';var client=require('../client');exports[_0x2183('0x0')]=function(_0x7bc22a){return function(){_0x7bc22a['campaign']=_0x7bc22a[_0x2183('0x1')];return client[_0x2183('0x2')](_0x2183('0x3'),{'body':_0x7bc22a,'log':_0x2183('0x3')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8ccd=['CreateAttachment','create','Request'];(function(_0x17dc50,_0x351b90){var _0x15d854=function(_0x1a0e5c){while(--_0x1a0e5c){_0x17dc50['push'](_0x17dc50['shift']());}};_0x15d854(++_0x351b90);}(_0x8ccd,0x118));var _0xd8cc=function(_0x13d07a,_0x41efc3){_0x13d07a=_0x13d07a-0x0;var _0x5ee0ee=_0x8ccd[_0x13d07a];return _0x5ee0ee;};'use strict';var client=require('../client');exports[_0xd8cc('0x0')]=function(_0x265955){return client[_0xd8cc('0x1')](_0xd8cc('0x2'),{'body':_0x265955,'log':_0xd8cc('0x2')});};
\ No newline at end of file
+var _0x0289=['../client','create','Request','CreateAttachment'];(function(_0xe8ccb9,_0x507176){var _0x2d3b0a=function(_0x4a128a){while(--_0x4a128a){_0xe8ccb9['push'](_0xe8ccb9['shift']());}};_0x2d3b0a(++_0x507176);}(_0x0289,0x14c));var _0x9028=function(_0x3c3770,_0x17a17b){_0x3c3770=_0x3c3770-0x0;var _0x57121a=_0x0289[_0x3c3770];return _0x57121a;};'use strict';var client=require(_0x9028('0x0'));exports[_0x9028('0x1')]=function(_0x516441){return client[_0x9028('0x2')](_0x9028('0x3'),{'body':_0x516441,'log':_0x9028('0x3')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['dialNoAnswerMaxRetry','dialNoAnswerRetryFrequency','dialNoSuchNumberMaxRetry','dialAbandonedMaxRetry','dialAbandonedRetryFrequency','dialMachineRetryFrequency','dialTimezone','dialGlobalInterval','dialAMDActive','dialAMDInitialSilence','dialAMDGreeting','dialAMDAfterGreetingSilence','dialAMDTotalAnalysisTime','dialAMDBetweenWordsSilence','dialAMDMaximumNumberOfWords','dialAMDSilenceThreshold','dialAMDMaximumWordLength','dialOrderByScheduledAt','dialPrefix','dialRandomLastDigitCallerIdNumber','dialCutDigit','Trunk','callerid','active','Interval','Intervals','interval','SquareProject','../client','getCampaigns','Request','name','type','limitCalls','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialOriginateTimeout','dialCongestionMaxRetry','dialBusyMaxRetry'];(function(_0x4d5c1b,_0x2ee8f9){var _0x5424ec=function(_0x5ccac9){while(--_0x5ccac9){_0x4d5c1b['push'](_0x4d5c1b['shift']());}};_0x5424ec(++_0x2ee8f9);}(_0x7a54,0x106));var _0x47a5=function(_0x1c6c49,_0x5f577e){_0x1c6c49=_0x1c6c49-0x0;var _0x31a716=_0x7a54[_0x1c6c49];return _0x31a716;};'use strict';var client=require(_0x47a5('0x0'));exports[_0x47a5('0x1')]=function(){return function(){return client[_0x47a5('0x2')]('GetCampaign',{'options':{'raw':![],'attributes':['id',_0x47a5('0x3'),_0x47a5('0x4'),'active',_0x47a5('0x5'),_0x47a5('0x6'),_0x47a5('0x7'),_0x47a5('0x8'),_0x47a5('0x9'),'dialCongestionRetryFrequency',_0x47a5('0xa'),'dialBusyRetryFrequency',_0x47a5('0xb'),_0x47a5('0xc'),'dialGlobalMaxRetry',_0x47a5('0xd'),'dialNoSuchNumberRetryFrequency','dialDropMaxRetry','dialDropRetryFrequency',_0x47a5('0xe'),_0x47a5('0xf'),'dialMachineMaxRetry',_0x47a5('0x10'),'dialAgentRejectMaxRetry','dialAgentRejectRetryFrequency',_0x47a5('0x11'),_0x47a5('0x12'),_0x47a5('0x13'),_0x47a5('0x14'),_0x47a5('0x15'),_0x47a5('0x16'),_0x47a5('0x17'),'dialAMDMinWordLength',_0x47a5('0x18'),_0x47a5('0x19'),_0x47a5('0x1a'),_0x47a5('0x1b'),_0x47a5('0x1c'),_0x47a5('0x1d'),_0x47a5('0x1e'),_0x47a5('0x1f')],'include':[{'model':'Trunk','as':_0x47a5('0x20'),'attributes':['id',_0x47a5('0x3'),_0x47a5('0x21'),_0x47a5('0x22')]},{'model':_0x47a5('0x20'),'as':'TrunkBackup','attributes':['id','name',_0x47a5('0x21'),'active']},{'model':'Interval','as':_0x47a5('0x23'),'attributes':['id',_0x47a5('0x3')],'include':[{'model':_0x47a5('0x23'),'as':_0x47a5('0x24'),'attributes':['id',_0x47a5('0x3'),_0x47a5('0x25')]}]},{'model':_0x47a5('0x26'),'as':_0x47a5('0x26'),'attributes':['id',_0x47a5('0x3')]}]},'log':'getCampaign'});};};
\ No newline at end of file
+var _0x7a54=['dialNoAnswerMaxRetry','dialNoAnswerRetryFrequency','dialNoSuchNumberMaxRetry','dialAbandonedMaxRetry','dialAbandonedRetryFrequency','dialMachineRetryFrequency','dialTimezone','dialGlobalInterval','dialAMDActive','dialAMDInitialSilence','dialAMDGreeting','dialAMDAfterGreetingSilence','dialAMDTotalAnalysisTime','dialAMDBetweenWordsSilence','dialAMDMaximumNumberOfWords','dialAMDSilenceThreshold','dialAMDMaximumWordLength','dialOrderByScheduledAt','dialPrefix','dialRandomLastDigitCallerIdNumber','dialCutDigit','Trunk','callerid','active','Interval','Intervals','interval','SquareProject','../client','getCampaigns','Request','name','type','limitCalls','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialOriginateTimeout','dialCongestionMaxRetry','dialBusyMaxRetry'];(function(_0x42326b,_0x2257e1){var _0x10ef89=function(_0x2e5532){while(--_0x2e5532){_0x42326b['push'](_0x42326b['shift']());}};_0x10ef89(++_0x2257e1);}(_0x7a54,0x106));var _0x47a5=function(_0x5a29ed,_0x209fd2){_0x5a29ed=_0x5a29ed-0x0;var _0x27aab4=_0x7a54[_0x5a29ed];return _0x27aab4;};'use strict';var client=require(_0x47a5('0x0'));exports[_0x47a5('0x1')]=function(){return function(){return client[_0x47a5('0x2')]('GetCampaign',{'options':{'raw':![],'attributes':['id',_0x47a5('0x3'),_0x47a5('0x4'),'active',_0x47a5('0x5'),_0x47a5('0x6'),_0x47a5('0x7'),_0x47a5('0x8'),_0x47a5('0x9'),'dialCongestionRetryFrequency',_0x47a5('0xa'),'dialBusyRetryFrequency',_0x47a5('0xb'),_0x47a5('0xc'),'dialGlobalMaxRetry',_0x47a5('0xd'),'dialNoSuchNumberRetryFrequency','dialDropMaxRetry','dialDropRetryFrequency',_0x47a5('0xe'),_0x47a5('0xf'),'dialMachineMaxRetry',_0x47a5('0x10'),'dialAgentRejectMaxRetry','dialAgentRejectRetryFrequency',_0x47a5('0x11'),_0x47a5('0x12'),_0x47a5('0x13'),_0x47a5('0x14'),_0x47a5('0x15'),_0x47a5('0x16'),_0x47a5('0x17'),'dialAMDMinWordLength',_0x47a5('0x18'),_0x47a5('0x19'),_0x47a5('0x1a'),_0x47a5('0x1b'),_0x47a5('0x1c'),_0x47a5('0x1d'),_0x47a5('0x1e'),_0x47a5('0x1f')],'include':[{'model':'Trunk','as':_0x47a5('0x20'),'attributes':['id',_0x47a5('0x3'),_0x47a5('0x21'),_0x47a5('0x22')]},{'model':_0x47a5('0x20'),'as':'TrunkBackup','attributes':['id','name',_0x47a5('0x21'),'active']},{'model':'Interval','as':_0x47a5('0x23'),'attributes':['id',_0x47a5('0x3')],'include':[{'model':_0x47a5('0x23'),'as':_0x47a5('0x24'),'attributes':['id',_0x47a5('0x3'),_0x47a5('0x25')]}]},{'model':_0x47a5('0x26'),'as':_0x47a5('0x26'),'attributes':['id',_0x47a5('0x3')]}]},'log':'getCampaign'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb662=['GetCmContact','../client','CreateCmContact','getContacts'];(function(_0x2b2107,_0x5b1dd3){var _0x48e892=function(_0xb78c24){while(--_0xb78c24){_0x2b2107['push'](_0x2b2107['shift']());}};_0x48e892(++_0x5b1dd3);}(_0xb662,0x99));var _0x2b66=function(_0xbd08b4,_0x4790ed){_0xbd08b4=_0xbd08b4-0x0;var _0x314f1e=_0xb662[_0xbd08b4];return _0x314f1e;};'use strict';var client=require(_0x2b66('0x0'));exports['createContact']=function(_0x93bb74){return function(){return client['Request'](_0x2b66('0x1'),{'body':_0x93bb74,'log':_0x2b66('0x1')});};};exports[_0x2b66('0x2')]=function(_0x1f78df){return function(){return client['Request'](_0x2b66('0x3'),{'options':_0x1f78df,'log':_0x2b66('0x3')});};};
\ No newline at end of file
+var _0xa89a=['createContact','Request','CreateCmContact','GetCmContact','../client'];(function(_0x469889,_0x1e640a){var _0x3e72c1=function(_0x478db2){while(--_0x478db2){_0x469889['push'](_0x469889['shift']());}};_0x3e72c1(++_0x1e640a);}(_0xa89a,0xea));var _0xaa89=function(_0x13e741,_0x5d3c24){_0x13e741=_0x13e741-0x0;var _0x3f8bb3=_0xa89a[_0x13e741];return _0x3f8bb3;};'use strict';var client=require(_0xaa89('0x0'));exports[_0xaa89('0x1')]=function(_0x619bc3){return function(){return client[_0xaa89('0x2')](_0xaa89('0x3'),{'body':_0x619bc3,'log':'CreateCmContact'});};};exports['getContacts']=function(_0x21c059){return function(){return client['Request'](_0xaa89('0x4'),{'options':_0x21c059,'log':_0xaa89('0x4')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8bcc=['Queue','unlockContact','GetContactRecallMe','voicePause','db.CmHopper.UserId','resetActiveCalls','ResetActiveCalls','moment','lodash','Request','GetCmHopper','CmContact','Contact','getCmHopper','updateContacts','YYYY-MM-DD\x20HH:mm:ss','UpdateCmHopper','rescheduleContact','ContactId','ListId','VoiceQueueId','destroyContact','DestroyCmHopper','getContactDialer','GetContactDialer','format','DESC','scheduledat','ASC','getContactDialerIvr','priority','GetContactDialerIvr','campaign','MoveContactManagedDialer','countReScheduled','CountReScheduled','GetCmHopperPreview','User','Agent','name','VoiceQueue'];(function(_0x1081a3,_0x2ac784){var _0x5696a2=function(_0x23d2f6){while(--_0x23d2f6){_0x1081a3['push'](_0x1081a3['shift']());}};_0x5696a2(++_0x2ac784);}(_0x8bcc,0x82));var _0xc8bc=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x8bcc[_0x3dd15e];return _0x231fd0;};'use strict';var client=require('../client');var moment=require(_0xc8bc('0x0'));var _=require(_0xc8bc('0x1'));exports['getContacts']=function(_0x24861d,_0x10b57f){return function(){return client[_0xc8bc('0x2')](_0xc8bc('0x3'),{'options':{'where':{'VoiceQueueId':_0x24861d},'include':[{'model':_0xc8bc('0x4'),'as':_0xc8bc('0x5')}],'limit':_0x10b57f,'raw':![]},'log':_0xc8bc('0x6')});};};exports[_0xc8bc('0x7')]=function(_0x494955,_0x3f1f78,_0x27c792){return function(){return client['Request']('UpdateCmHopper',{'body':_0x494955,'options':{'where':{'VoiceQueueId':_0x3f1f78,'scheduledat':{'$lte':moment()['format'](_0xc8bc('0x8'))}},'limit':_0x27c792},'log':_0xc8bc('0x9')});};};exports[_0xc8bc('0xa')]=function(_0x4061e0){return function(){return client[_0xc8bc('0x2')](_0xc8bc('0x9'),{'body':_0x4061e0,'options':{'where':{'ContactId':_0x4061e0[_0xc8bc('0xb')],'ListId':_0x4061e0[_0xc8bc('0xc')],'VoiceQueueId':_0x4061e0[_0xc8bc('0xd')],'CampaignId':_0x4061e0['CampaignId']}},'log':_0xc8bc('0xa')});};};exports[_0xc8bc('0xe')]=function(_0x1076df,_0x20393f,_0x3e6d5c){return function(){return client['Request'](_0xc8bc('0xf'),{'options':{'where':{'VoiceQueueId':_0x1076df,'ListId':_0x20393f,'ContactId':_0x3e6d5c}},'log':_0xc8bc('0xf')});};};exports[_0xc8bc('0x10')]=function(_0x594563,_0x51ee90,_0x2d6b30,_0x28f27c){return function(){return client['Request'](_0xc8bc('0x11'),{'body':{'active':!![]},'options':{'where':{'VoiceQueueId':_0x594563,'active':![],'scheduledat':{'$lte':moment()[_0xc8bc('0x12')]('YYYY-MM-DD\x20HH:mm:ss')},'$or':[{'UserId':null},{'UserId':{'$in':_0x51ee90}}]},'order':[['priority',_0xc8bc('0x13')],[_0xc8bc('0x14'),_0x28f27c],['id',_0xc8bc('0x15')]],'raw':!![],'limit':_0x2d6b30},'log':'GetContactDialer'});};};exports[_0xc8bc('0x16')]=function(_0x448f13,_0x26d74d,_0x27e9b6){return function(){return client[_0xc8bc('0x2')]('GetContactDialer',{'body':{'active':!![]},'options':{'where':{'CampaignId':_0x448f13,'active':![],'scheduledat':{'$lte':moment()[_0xc8bc('0x12')](_0xc8bc('0x8'))}},'include':[{'model':_0xc8bc('0x4'),'as':_0xc8bc('0x5')}],'order':[[_0xc8bc('0x17'),_0xc8bc('0x13')],[_0xc8bc('0x14'),_0x27e9b6],['id',_0xc8bc('0x15')]],'raw':!![],'limit':_0x26d74d},'log':_0xc8bc('0x18')});};};exports['moveContactManagedDialer']=function(_0x457e43,_0x1a0741){return function(){_0x457e43[_0xc8bc('0x19')]=_0x457e43['queue'];return client[_0xc8bc('0x2')](_0xc8bc('0x1a'),{'body':_0x457e43,'options':{'where':{'ContactId':_0x457e43[_0xc8bc('0xb')],'ListId':_0x457e43[_0xc8bc('0xc')],'VoiceQueueId':_0x457e43[_0xc8bc('0xd')],'CampaignId':_0x457e43['CampaignId'],'active':_0x1a0741?undefined:!![]}},'log':_0xc8bc('0x1a')});};};exports[_0xc8bc('0x1b')]=function(_0x59359e){return function(){return client[_0xc8bc('0x2')](_0xc8bc('0x1c'),{'options':{'where':{'VoiceQueueId':_0x59359e['id']?_0x59359e['id']||null:null}},'log':'countReScheduled'});};};exports['getContactPreview']=function(_0x207923){return function(){return client['Request'](_0xc8bc('0x1d'),{'options':{'where':{'id':_0x207923},'include':[{'model':_0xc8bc('0x4'),'as':_0xc8bc('0x5')},{'model':_0xc8bc('0x1e'),'as':_0xc8bc('0x1f'),'attributes':['id',_0xc8bc('0x20')]},{'model':_0xc8bc('0x21'),'as':_0xc8bc('0x22'),'attributes':['id','name']}],'raw':!![]},'log':_0xc8bc('0x6')});};};exports[_0xc8bc('0x23')]=function(_0x335fbf,_0x3ddb26,_0x4de53f){return function(){return client[_0xc8bc('0x2')](_0xc8bc('0x9'),{'body':_0x335fbf,'options':{'where':{'id':_0x3ddb26},'limit':_0x4de53f},'log':_0xc8bc('0x9')});};};exports['getContactRecallMe']=function(_0x83fac4,_0x1f475a){return function(){return client['Request'](_0xc8bc('0x24'),{'body':{'active':!![]},'options':{'where':{'VoiceQueueId':_0x83fac4,'active':![],'recallme':!![],'scheduledat':{'$lte':moment()[_0xc8bc('0x12')](_0xc8bc('0x8'))},'UserId':{'$in':_0x1f475a}},'order':[[_0xc8bc('0x17'),'DESC'],[_0xc8bc('0x14'),_0xc8bc('0x13')],['id','ASC']],'include':[{'model':'CmContact','as':'Contact'},{'model':'User','as':_0xc8bc('0x1f'),'attributes':['id','name',_0xc8bc('0x25')]}],'group':_0xc8bc('0x26'),'raw':!![]},'log':_0xc8bc('0x11')});};};exports[_0xc8bc('0x27')]=function(_0x237097){return function(){return client[_0xc8bc('0x2')](_0xc8bc('0x28'),{'body':_0x237097,'options':{},'log':_0xc8bc('0x28')});};};
\ No newline at end of file
+var _0xce63=['resetActiveCalls','ResetActiveCalls','../client','getContacts','Request','GetCmHopper','Contact','YYYY-MM-DD\x20HH:mm:ss','UpdateCmHopper','ContactId','ListId','VoiceQueueId','CampaignId','rescheduleContact','destroyContact','DestroyCmHopper','getContactDialer','GetContactDialer','format','priority','DESC','scheduledat','getContactDialerIvr','CmContact','ASC','moveContactManagedDialer','queue','MoveContactManagedDialer','CountReScheduled','countReScheduled','getContactPreview','GetCmHopperPreview','User','Agent','name','Queue','unlockContact','getContactRecallMe','GetContactRecallMe','voicePause','db.CmHopper.UserId'];(function(_0x2fe293,_0x2e1544){var _0x487d25=function(_0x572fae){while(--_0x572fae){_0x2fe293['push'](_0x2fe293['shift']());}};_0x487d25(++_0x2e1544);}(_0xce63,0x121));var _0x3ce6=function(_0x349a9e,_0x473cb8){_0x349a9e=_0x349a9e-0x0;var _0x24c207=_0xce63[_0x349a9e];return _0x24c207;};'use strict';var client=require(_0x3ce6('0x0'));var moment=require('moment');var _=require('lodash');exports[_0x3ce6('0x1')]=function(_0x1eb2a2,_0x3af7fb){return function(){return client[_0x3ce6('0x2')](_0x3ce6('0x3'),{'options':{'where':{'VoiceQueueId':_0x1eb2a2},'include':[{'model':'CmContact','as':_0x3ce6('0x4')}],'limit':_0x3af7fb,'raw':![]},'log':'getCmHopper'});};};exports['updateContacts']=function(_0x4a6031,_0x586a6b,_0x9a2401){return function(){return client[_0x3ce6('0x2')]('UpdateCmHopper',{'body':_0x4a6031,'options':{'where':{'VoiceQueueId':_0x586a6b,'scheduledat':{'$lte':moment()['format'](_0x3ce6('0x5'))}},'limit':_0x9a2401},'log':_0x3ce6('0x6')});};};exports['rescheduleContact']=function(_0x3fa343){return function(){return client[_0x3ce6('0x2')]('UpdateCmHopper',{'body':_0x3fa343,'options':{'where':{'ContactId':_0x3fa343[_0x3ce6('0x7')],'ListId':_0x3fa343[_0x3ce6('0x8')],'VoiceQueueId':_0x3fa343[_0x3ce6('0x9')],'CampaignId':_0x3fa343[_0x3ce6('0xa')]}},'log':_0x3ce6('0xb')});};};exports[_0x3ce6('0xc')]=function(_0x1d29ee,_0x56d6cb,_0x4ef830){return function(){return client[_0x3ce6('0x2')]('DestroyCmHopper',{'options':{'where':{'VoiceQueueId':_0x1d29ee,'ListId':_0x56d6cb,'ContactId':_0x4ef830}},'log':_0x3ce6('0xd')});};};exports[_0x3ce6('0xe')]=function(_0x5ab830,_0x5b6e92,_0x56ca14,_0x1c0af1){return function(){return client[_0x3ce6('0x2')](_0x3ce6('0xf'),{'body':{'active':!![]},'options':{'where':{'VoiceQueueId':_0x5ab830,'active':![],'scheduledat':{'$lte':moment()[_0x3ce6('0x10')](_0x3ce6('0x5'))},'$or':[{'UserId':null},{'UserId':{'$in':_0x5b6e92}}]},'order':[[_0x3ce6('0x11'),_0x3ce6('0x12')],[_0x3ce6('0x13'),_0x1c0af1],['id','ASC']],'raw':!![],'limit':_0x56ca14},'log':_0x3ce6('0xf')});};};exports[_0x3ce6('0x14')]=function(_0x1c8d31,_0x1e4ae4,_0x4b3e81){return function(){return client['Request'](_0x3ce6('0xf'),{'body':{'active':!![]},'options':{'where':{'CampaignId':_0x1c8d31,'active':![],'scheduledat':{'$lte':moment()[_0x3ce6('0x10')]('YYYY-MM-DD\x20HH:mm:ss')}},'include':[{'model':_0x3ce6('0x15'),'as':_0x3ce6('0x4')}],'order':[[_0x3ce6('0x11'),_0x3ce6('0x12')],['scheduledat',_0x4b3e81],['id',_0x3ce6('0x16')]],'raw':!![],'limit':_0x1e4ae4},'log':'GetContactDialerIvr'});};};exports[_0x3ce6('0x17')]=function(_0x3a2acb,_0x547889){return function(){_0x3a2acb['campaign']=_0x3a2acb[_0x3ce6('0x18')];return client[_0x3ce6('0x2')](_0x3ce6('0x19'),{'body':_0x3a2acb,'options':{'where':{'ContactId':_0x3a2acb[_0x3ce6('0x7')],'ListId':_0x3a2acb['ListId'],'VoiceQueueId':_0x3a2acb[_0x3ce6('0x9')],'CampaignId':_0x3a2acb[_0x3ce6('0xa')],'active':_0x547889?undefined:!![]}},'log':'MoveContactManagedDialer'});};};exports['countReScheduled']=function(_0x2de9c3){return function(){return client[_0x3ce6('0x2')](_0x3ce6('0x1a'),{'options':{'where':{'VoiceQueueId':_0x2de9c3['id']?_0x2de9c3['id']||null:null}},'log':_0x3ce6('0x1b')});};};exports[_0x3ce6('0x1c')]=function(_0x253c71){return function(){return client[_0x3ce6('0x2')](_0x3ce6('0x1d'),{'options':{'where':{'id':_0x253c71},'include':[{'model':_0x3ce6('0x15'),'as':'Contact'},{'model':_0x3ce6('0x1e'),'as':_0x3ce6('0x1f'),'attributes':['id',_0x3ce6('0x20')]},{'model':'VoiceQueue','as':_0x3ce6('0x21'),'attributes':['id','name']}],'raw':!![]},'log':'getCmHopper'});};};exports[_0x3ce6('0x22')]=function(_0x509f06,_0x5575a5,_0x20af41){return function(){return client['Request']('UpdateCmHopper',{'body':_0x509f06,'options':{'where':{'id':_0x5575a5},'limit':_0x20af41},'log':'UpdateCmHopper'});};};exports[_0x3ce6('0x23')]=function(_0x5a0f82,_0xec6270){return function(){return client[_0x3ce6('0x2')](_0x3ce6('0x24'),{'body':{'active':!![]},'options':{'where':{'VoiceQueueId':_0x5a0f82,'active':![],'recallme':!![],'scheduledat':{'$lte':moment()[_0x3ce6('0x10')](_0x3ce6('0x5'))},'UserId':{'$in':_0xec6270}},'order':[['priority',_0x3ce6('0x12')],[_0x3ce6('0x13'),_0x3ce6('0x12')],['id','ASC']],'include':[{'model':'CmContact','as':_0x3ce6('0x4')},{'model':_0x3ce6('0x1e'),'as':_0x3ce6('0x1f'),'attributes':['id','name',_0x3ce6('0x25')]}],'group':_0x3ce6('0x26'),'raw':!![]},'log':_0x3ce6('0xf')});};};exports[_0x3ce6('0x27')]=function(_0x56b396){return function(){return client[_0x3ce6('0x2')](_0x3ce6('0x28'),{'body':_0x56b396,'options':{},'log':'ResetActiveCalls'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbfcc=['VoiceQueueId','Contact','GetCmHopperBlackIvr','../client','Request','GetCmHopperBlack'];(function(_0x37ded3,_0x371ebb){var _0x51e49e=function(_0x30cc78){while(--_0x30cc78){_0x37ded3['push'](_0x37ded3['shift']());}};_0x51e49e(++_0x371ebb);}(_0xbfcc,0x1dd));var _0xcbfc=function(_0x22868f,_0x450f48){_0x22868f=_0x22868f-0x0;var _0x97bc75=_0xbfcc[_0x22868f];return _0x97bc75;};'use strict';var client=require(_0xcbfc('0x0'));exports['checkIsBlackList']=function(_0x5c0fe4){return function(){return client[_0xcbfc('0x1')](_0xcbfc('0x2'),{'options':{'where':{'VoiceQueueId':_0x5c0fe4[_0xcbfc('0x3')],'phone':_0x5c0fe4[_0xcbfc('0x4')]['phone']},'raw':![]},'log':'GetCmHopperBlack'});};};exports['checkIsBlackListIvr']=function(_0x4b8361){return function(){return client[_0xcbfc('0x1')](_0xcbfc('0x2'),{'options':{'where':{'CampaignId':_0x4b8361['CampaignId'],'phone':_0x4b8361[_0xcbfc('0x4')]['phone']},'raw':![]},'log':_0xcbfc('0x5')});};};
\ No newline at end of file
+var _0x3266=['Request','GetCmHopperBlack','VoiceQueueId','Contact','phone','CampaignId','GetCmHopperBlackIvr','../client','checkIsBlackList'];(function(_0x45c0bf,_0x56c214){var _0x70f26e=function(_0x5bca03){while(--_0x5bca03){_0x45c0bf['push'](_0x45c0bf['shift']());}};_0x70f26e(++_0x56c214);}(_0x3266,0x6a));var _0x6326=function(_0x5c2e3e,_0x26ecd3){_0x5c2e3e=_0x5c2e3e-0x0;var _0x53f64a=_0x3266[_0x5c2e3e];return _0x53f64a;};'use strict';var client=require(_0x6326('0x0'));exports[_0x6326('0x1')]=function(_0x3a3ebd){return function(){return client[_0x6326('0x2')](_0x6326('0x3'),{'options':{'where':{'VoiceQueueId':_0x3a3ebd[_0x6326('0x4')],'phone':_0x3a3ebd[_0x6326('0x5')][_0x6326('0x6')]},'raw':![]},'log':_0x6326('0x3')});};};exports['checkIsBlackListIvr']=function(_0x30b22e){return function(){return client['Request'](_0x6326('0x3'),{'options':{'where':{'CampaignId':_0x30b22e[_0x6326('0x7')],'phone':_0x30b22e[_0x6326('0x5')]['phone']},'raw':![]},'log':_0x6326('0x8')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x12bd=['campaign','queue','Request','../client','createContact'];(function(_0x5a4993,_0x50275c){var _0x9c49ad=function(_0x46acbd){while(--_0x46acbd){_0x5a4993['push'](_0x5a4993['shift']());}};_0x9c49ad(++_0x50275c);}(_0x12bd,0x1e8));var _0xd12b=function(_0x18350a,_0x105fe4){_0x18350a=_0x18350a-0x0;var _0x33050e=_0x12bd[_0x18350a];return _0x33050e;};'use strict';var client=require(_0xd12b('0x0'));exports[_0xd12b('0x1')]=function(_0x8d9379){return function(){_0x8d9379[_0xd12b('0x2')]=_0x8d9379[_0xd12b('0x3')];return client[_0xd12b('0x4')]('CreateCmHopperFinal',{'body':_0x8d9379,'log':'CreateCmHopperFinal'});};};
\ No newline at end of file
+var _0x289b=['createContact','campaign','queue','Request','CreateCmHopperFinal'];(function(_0x1dea69,_0x37c410){var _0x2e12c3=function(_0x50e4ae){while(--_0x50e4ae){_0x1dea69['push'](_0x1dea69['shift']());}};_0x2e12c3(++_0x37c410);}(_0x289b,0x96));var _0xb289=function(_0x5c7dfa,_0x47cad7){_0x5c7dfa=_0x5c7dfa-0x0;var _0x102bb8=_0x289b[_0x5c7dfa];return _0x102bb8;};'use strict';var client=require('../client');exports[_0xb289('0x0')]=function(_0x3dd13c){return function(){_0x3dd13c[_0xb289('0x1')]=_0x3dd13c[_0xb289('0x2')];return client[_0xb289('0x3')](_0xb289('0x4'),{'body':_0x3dd13c,'log':_0xb289('0x4')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6d18=['CreateCmHopperHistory','avgHandleTime','AvgHandleTime','subtract','minutes','format','YYYY-MM-DD\x20HH:mm:ss','GetCmHopperHistory','getVoiceQueueHopperHistory','GetVoiceQueueHopperHistory','startOf','day','GetCampaignHopperHistory','ivr','../client','moment','createHistory','campaign','queue','Request'];(function(_0x3fa372,_0x37c3e7){var _0x2a523e=function(_0x436d82){while(--_0x436d82){_0x3fa372['push'](_0x3fa372['shift']());}};_0x2a523e(++_0x37c3e7);}(_0x6d18,0x1c6));var _0x86d1=function(_0x33f6fd,_0x41df0c){_0x33f6fd=_0x33f6fd-0x0;var _0x2a7e47=_0x6d18[_0x33f6fd];return _0x2a7e47;};'use strict';var client=require(_0x86d1('0x0'));var moment=require(_0x86d1('0x1'));exports[_0x86d1('0x2')]=function(_0xf9ac31){return function(){_0xf9ac31[_0x86d1('0x3')]=_0xf9ac31[_0x86d1('0x4')];return client[_0x86d1('0x5')](_0x86d1('0x6'),{'body':_0xf9ac31,'log':_0x86d1('0x6')});};};exports[_0x86d1('0x7')]=function(_0x470974){return function(){return client[_0x86d1('0x5')](_0x86d1('0x8'),{'options':{'where':{'endtime':{'$between':[moment()[_0x86d1('0x9')](_0x470974,_0x86d1('0xa'))[_0x86d1('0xb')](_0x86d1('0xc')),moment()[_0x86d1('0xb')]('YYYY-MM-DD\x20HH:mm:ss')]}},'raw':![]},'log':_0x86d1('0xd')});};};exports[_0x86d1('0xe')]=function(_0x4a20f1){return function(){return client[_0x86d1('0x5')](_0x86d1('0xf'),{'options':{'where':{'createdAt':{'$between':[moment()[_0x86d1('0x10')](_0x86d1('0x11'))[_0x86d1('0xb')](_0x86d1('0xc')),moment()['endOf'](_0x86d1('0x11'))[_0x86d1('0xb')](_0x86d1('0xc'))]},'campaigntype':_0x86d1('0x4')},'raw':![]},'log':_0x86d1('0xf')});};};exports['getCampaignHopperHistory']=function(_0x295034){return function(){return client['Request'](_0x86d1('0x12'),{'options':{'where':{'createdAt':{'$between':[moment()[_0x86d1('0x10')](_0x86d1('0x11'))[_0x86d1('0xb')]('YYYY-MM-DD\x20HH:mm:ss'),moment()['endOf'](_0x86d1('0x11'))['format']('YYYY-MM-DD\x20HH:mm:ss')]},'campaigntype':_0x86d1('0x13')},'raw':![]},'log':_0x86d1('0x12')});};};
\ No newline at end of file
+var _0x4e55=['subtract','format','YYYY-MM-DD\x20HH:mm:ss','getVoiceQueueHopperHistory','GetVoiceQueueHopperHistory','day','endOf','getCampaignHopperHistory','GetCampaignHopperHistory','startOf','ivr','../client','moment','createHistory','campaign','queue','Request','CreateCmHopperHistory','avgHandleTime','AvgHandleTime'];(function(_0x19c9db,_0xd280f4){var _0x41ad33=function(_0x169ae4){while(--_0x169ae4){_0x19c9db['push'](_0x19c9db['shift']());}};_0x41ad33(++_0xd280f4);}(_0x4e55,0x83));var _0x54e5=function(_0x53f113,_0x2b7a8a){_0x53f113=_0x53f113-0x0;var _0x5b39b2=_0x4e55[_0x53f113];return _0x5b39b2;};'use strict';var client=require(_0x54e5('0x0'));var moment=require(_0x54e5('0x1'));exports[_0x54e5('0x2')]=function(_0x4a942d){return function(){_0x4a942d[_0x54e5('0x3')]=_0x4a942d[_0x54e5('0x4')];return client[_0x54e5('0x5')](_0x54e5('0x6'),{'body':_0x4a942d,'log':_0x54e5('0x6')});};};exports[_0x54e5('0x7')]=function(_0x2520f0){return function(){return client[_0x54e5('0x5')](_0x54e5('0x8'),{'options':{'where':{'endtime':{'$between':[moment()[_0x54e5('0x9')](_0x2520f0,'minutes')[_0x54e5('0xa')](_0x54e5('0xb')),moment()[_0x54e5('0xa')](_0x54e5('0xb'))]}},'raw':![]},'log':'GetCmHopperHistory'});};};exports[_0x54e5('0xc')]=function(_0x4c9e50){return function(){return client[_0x54e5('0x5')](_0x54e5('0xd'),{'options':{'where':{'createdAt':{'$between':[moment()['startOf'](_0x54e5('0xe'))['format'](_0x54e5('0xb')),moment()[_0x54e5('0xf')](_0x54e5('0xe'))[_0x54e5('0xa')](_0x54e5('0xb'))]},'campaigntype':_0x54e5('0x4')},'raw':![]},'log':'GetVoiceQueueHopperHistory'});};};exports[_0x54e5('0x10')]=function(_0x3d28cf){return function(){return client[_0x54e5('0x5')](_0x54e5('0x11'),{'options':{'where':{'createdAt':{'$between':[moment()[_0x54e5('0x12')](_0x54e5('0xe'))[_0x54e5('0xa')](_0x54e5('0xb')),moment()[_0x54e5('0xf')](_0x54e5('0xe'))[_0x54e5('0xa')](_0x54e5('0xb'))]},'campaigntype':_0x54e5('0x13')},'raw':![]},'log':_0x54e5('0x11')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc373=['Request','GetFaxAccount','ecm','headerinfo','localstationid','minrate','maxrate','modem','t38timeout','tech','TrunkId','ListId','key','Trunk','name','callerid','notify','NotifyFaxAccount','getFaxAccounts'];(function(_0x5e7cd5,_0x2afb60){var _0x364117=function(_0x2fac96){while(--_0x2fac96){_0x5e7cd5['push'](_0x5e7cd5['shift']());}};_0x364117(++_0x2afb60);}(_0xc373,0x1c7));var _0x3c37=function(_0x4c05da,_0x414720){_0x4c05da=_0x4c05da-0x0;var _0x1614db=_0xc373[_0x4c05da];return _0x1614db;};'use strict';var client=require('../client');exports[_0x3c37('0x0')]=function(){return function(){return client[_0x3c37('0x1')](_0x3c37('0x2'),{'options':{'raw':![],'attributes':['id','name','description',_0x3c37('0x3'),_0x3c37('0x4'),_0x3c37('0x5'),_0x3c37('0x6'),_0x3c37('0x7'),_0x3c37('0x8'),'gateway','faxdetect',_0x3c37('0x9'),_0x3c37('0xa'),_0x3c37('0xb'),_0x3c37('0xc'),_0x3c37('0xd')],'include':[{'model':_0x3c37('0xe'),'as':_0x3c37('0xe'),'attributes':['id',_0x3c37('0xf'),_0x3c37('0x10'),'active']}]},'log':'getFaxAccount'});};};exports[_0x3c37('0x11')]=function(_0x3d493c,_0x2beb44){return client[_0x3c37('0x1')](_0x3c37('0x12'),{'account':{'id':_0x3d493c},'body':_0x2beb44,'log':_0x3c37('0x12')});};
\ No newline at end of file
+var _0x5bc1=['faxdetect','tech','TrunkId','ListId','key','Trunk','callerid','active','getFaxAccount','NotifyFaxAccount','getFaxAccounts','Request','GetFaxAccount','name','description','ecm','minrate','maxrate','modem'];(function(_0x274a34,_0x2f38fe){var _0x47ef4e=function(_0x18e0b7){while(--_0x18e0b7){_0x274a34['push'](_0x274a34['shift']());}};_0x47ef4e(++_0x2f38fe);}(_0x5bc1,0xb5));var _0x15bc=function(_0x5cd376,_0x163789){_0x5cd376=_0x5cd376-0x0;var _0x57de74=_0x5bc1[_0x5cd376];return _0x57de74;};'use strict';var client=require('../client');exports[_0x15bc('0x0')]=function(){return function(){return client[_0x15bc('0x1')](_0x15bc('0x2'),{'options':{'raw':![],'attributes':['id',_0x15bc('0x3'),_0x15bc('0x4'),_0x15bc('0x5'),'headerinfo','localstationid',_0x15bc('0x6'),_0x15bc('0x7'),_0x15bc('0x8'),'gateway',_0x15bc('0x9'),'t38timeout',_0x15bc('0xa'),_0x15bc('0xb'),_0x15bc('0xc'),_0x15bc('0xd')],'include':[{'model':_0x15bc('0xe'),'as':_0x15bc('0xe'),'attributes':['id',_0x15bc('0x3'),_0x15bc('0xf'),_0x15bc('0x10')]}]},'log':_0x15bc('0x11')});};};exports['notify']=function(_0x18b502,_0xa70bc9){return client[_0x15bc('0x1')]('NotifyFaxAccount',{'account':{'id':_0x18b502},'body':_0xa70bc9,'log':_0x15bc('0x12')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe482=['Request','UpdateFaxMessage','../client','update'];(function(_0x22f53f,_0x14ef66){var _0x57bc67=function(_0x375f18){while(--_0x375f18){_0x22f53f['push'](_0x22f53f['shift']());}};_0x57bc67(++_0x14ef66);}(_0xe482,0x14e));var _0x2e48=function(_0x2641f9,_0x26715f){_0x2641f9=_0x2641f9-0x0;var _0x585741=_0xe482[_0x2641f9];return _0x585741;};'use strict';var client=require(_0x2e48('0x0'));exports[_0x2e48('0x1')]=function(_0x76b1ae,_0x580fac){return client[_0x2e48('0x2')]('UpdateFaxMessage',{'body':_0x580fac,'options':{'where':{'AttachmentId':_0x76b1ae}},'log':_0x2e48('0x3')});};
\ No newline at end of file
+var _0x5a41=['update','UpdateFaxMessage','../client'];(function(_0x554db0,_0x4eda6b){var _0x2ac209=function(_0x528c51){while(--_0x528c51){_0x554db0['push'](_0x554db0['shift']());}};_0x2ac209(++_0x4eda6b);}(_0x5a41,0x18b));var _0x15a4=function(_0x4ea69d,_0x290f53){_0x4ea69d=_0x4ea69d-0x0;var _0x5318e0=_0x5a41[_0x4ea69d];return _0x5318e0;};'use strict';var client=require(_0x15a4('0x0'));exports[_0x15a4('0x1')]=function(_0x2790f9,_0x286495){return client['Request'](_0x15a4('0x2'),{'body':_0x286495,'options':{'where':{'AttachmentId':_0x2790f9}},'log':'UpdateFaxMessage'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xcac2=['keyContent','idField','nameField','Tag','../../client','getDeskAccounts','GetDeskAccount','name','password','remoteUri','authType','type','serverUrl','DeskConfiguration','Configurations','DeskField','Subjects','content','variableName','Variable','key','keyType'];(function(_0x47899b,_0x3a9171){var _0x3cf890=function(_0x1a4574){while(--_0x1a4574){_0x47899b['push'](_0x47899b['shift']());}};_0x3cf890(++_0x3a9171);}(_0xcac2,0x17a));var _0x2cac=function(_0xf6171e,_0x5961f1){_0xf6171e=_0xf6171e-0x0;var _0x46e0b1=_0xcac2[_0xf6171e];return _0x46e0b1;};'use strict';var client=require(_0x2cac('0x0'));exports[_0x2cac('0x1')]=function(){return function(_0x31cdea){return client['Request'](_0x2cac('0x2'),{'options':{'raw':![],'attributes':['id',_0x2cac('0x3'),'description','username',_0x2cac('0x4'),_0x2cac('0x5'),_0x2cac('0x6'),_0x2cac('0x7'),_0x2cac('0x8')],'include':[{'model':_0x2cac('0x9'),'as':_0x2cac('0xa'),'attributes':['id',_0x2cac('0x3')],'include':[{'model':_0x2cac('0xb'),'as':_0x2cac('0xc'),'attributes':['id',_0x2cac('0x7'),_0x2cac('0xd'),_0x2cac('0xe')],'include':[{'model':_0x2cac('0xf'),'as':_0x2cac('0xf'),'attributes':['id',_0x2cac('0x3')]}]},{'model':_0x2cac('0xb'),'as':'Descriptions','attributes':['id',_0x2cac('0x7'),'content',_0x2cac('0x10'),_0x2cac('0x11'),_0x2cac('0x12'),_0x2cac('0xe')],'include':[{'model':'Variable','as':'Variable','attributes':['id','name']}]},{'model':_0x2cac('0xb'),'as':'Fields','attributes':['id',_0x2cac('0x7'),_0x2cac('0xd'),_0x2cac('0x13'),_0x2cac('0x14'),'customField',_0x2cac('0xe')],'include':[{'model':_0x2cac('0xf'),'as':_0x2cac('0xf'),'attributes':['id','name']}]},{'model':_0x2cac('0x15'),'as':'Tags','attributes':['id',_0x2cac('0x3')]}]}]},'log':_0x2cac('0x2')});};};
\ No newline at end of file
+var _0x9a1f=['key','variableName','Fields','idField','customField','Tags','getDeskAccounts','Request','GetDeskAccount','name','description','username','password','remoteUri','authType','type','serverUrl','DeskConfiguration','Configurations','DeskField','Subjects','content','Variable','Descriptions'];(function(_0xd6df3c,_0x84ca93){var _0xd8eeee=function(_0x5278a9){while(--_0x5278a9){_0xd6df3c['push'](_0xd6df3c['shift']());}};_0xd8eeee(++_0x84ca93);}(_0x9a1f,0x1b6));var _0xf9a1=function(_0x4ea69d,_0x290f53){_0x4ea69d=_0x4ea69d-0x0;var _0x5318e0=_0x9a1f[_0x4ea69d];return _0x5318e0;};'use strict';var client=require('../../client');exports[_0xf9a1('0x0')]=function(){return function(_0x340615){return client[_0xf9a1('0x1')](_0xf9a1('0x2'),{'options':{'raw':![],'attributes':['id',_0xf9a1('0x3'),_0xf9a1('0x4'),_0xf9a1('0x5'),_0xf9a1('0x6'),_0xf9a1('0x7'),_0xf9a1('0x8'),_0xf9a1('0x9'),_0xf9a1('0xa')],'include':[{'model':_0xf9a1('0xb'),'as':_0xf9a1('0xc'),'attributes':['id',_0xf9a1('0x3')],'include':[{'model':_0xf9a1('0xd'),'as':_0xf9a1('0xe'),'attributes':['id',_0xf9a1('0x9'),_0xf9a1('0xf'),'variableName'],'include':[{'model':_0xf9a1('0x10'),'as':'Variable','attributes':['id',_0xf9a1('0x3')]}]},{'model':_0xf9a1('0xd'),'as':_0xf9a1('0x11'),'attributes':['id',_0xf9a1('0x9'),_0xf9a1('0xf'),_0xf9a1('0x12'),'keyType','keyContent',_0xf9a1('0x13')],'include':[{'model':_0xf9a1('0x10'),'as':'Variable','attributes':['id','name']}]},{'model':_0xf9a1('0xd'),'as':_0xf9a1('0x14'),'attributes':['id',_0xf9a1('0x9'),'content',_0xf9a1('0x15'),'nameField',_0xf9a1('0x16'),_0xf9a1('0x13')],'include':[{'model':_0xf9a1('0x10'),'as':_0xf9a1('0x10'),'attributes':['id',_0xf9a1('0x3')]}]},{'model':'Tag','as':_0xf9a1('0x17'),'attributes':['id',_0xf9a1('0x3')]}]}]},'log':'GetDeskAccount'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6bee=['Dynamics365Configuration','Configurations','ticketType','Dynamics365Field','Subjects','content','Variable','Descriptions','type','keyType','keyContent','name','Fields','idField','customField','variableName','GetDynamics365Account','getDynamics365Accounts','Request','username','remoteUri','tenantId','clientId','description'];(function(_0xae7c2f,_0xf31e04){var _0x5d7001=function(_0x4eeadb){while(--_0x4eeadb){_0xae7c2f['push'](_0xae7c2f['shift']());}};_0x5d7001(++_0xf31e04);}(_0x6bee,0x71));var _0xe6be=function(_0x4de423,_0x403ffc){_0x4de423=_0x4de423-0x0;var _0x4cfcda=_0x6bee[_0x4de423];return _0x4cfcda;};'use strict';var client=require('../../client');exports[_0xe6be('0x0')]=function(){return function(_0x17060b){return client[_0xe6be('0x1')]('GetDynamics365Account',{'options':{'raw':![],'attributes':['id','name',_0xe6be('0x2'),'password',_0xe6be('0x3'),_0xe6be('0x4'),_0xe6be('0x5'),'clientSecret','serverUrl',_0xe6be('0x6')],'include':[{'model':_0xe6be('0x7'),'as':_0xe6be('0x8'),'attributes':['id','name',_0xe6be('0x9')],'include':[{'model':_0xe6be('0xa'),'as':_0xe6be('0xb'),'attributes':['id','type',_0xe6be('0xc'),'variableName'],'include':[{'model':_0xe6be('0xd'),'as':_0xe6be('0xd'),'attributes':['id','name']}]},{'model':_0xe6be('0xa'),'as':_0xe6be('0xe'),'attributes':['id',_0xe6be('0xf'),_0xe6be('0xc'),'key',_0xe6be('0x10'),_0xe6be('0x11'),'variableName'],'include':[{'model':_0xe6be('0xd'),'as':_0xe6be('0xd'),'attributes':['id',_0xe6be('0x12')]}]},{'model':'Dynamics365Field','as':_0xe6be('0x13'),'attributes':['id',_0xe6be('0xf'),_0xe6be('0xc'),_0xe6be('0x14'),'nameField',_0xe6be('0x15'),_0xe6be('0x16')],'include':[{'model':'Variable','as':_0xe6be('0xd'),'attributes':['id',_0xe6be('0x12')]}]}]}]},'log':_0xe6be('0x17')});};};
\ No newline at end of file
+var _0x3aaf=['tenantId','clientId','serverUrl','description','Dynamics365Configuration','Configurations','Dynamics365Field','Subjects','type','content','variableName','Variable','Descriptions','key','keyType','keyContent','idField','nameField','../../client','Request','GetDynamics365Account','name','username','password'];(function(_0x348834,_0x4f9a8){var _0x56a203=function(_0x17b9f1){while(--_0x17b9f1){_0x348834['push'](_0x348834['shift']());}};_0x56a203(++_0x4f9a8);}(_0x3aaf,0xea));var _0xf3aa=function(_0xa1e3e3,_0x29fe0e){_0xa1e3e3=_0xa1e3e3-0x0;var _0xc980e9=_0x3aaf[_0xa1e3e3];return _0xc980e9;};'use strict';var client=require(_0xf3aa('0x0'));exports['getDynamics365Accounts']=function(){return function(_0x554ee1){return client[_0xf3aa('0x1')](_0xf3aa('0x2'),{'options':{'raw':![],'attributes':['id',_0xf3aa('0x3'),_0xf3aa('0x4'),_0xf3aa('0x5'),'remoteUri',_0xf3aa('0x6'),_0xf3aa('0x7'),'clientSecret',_0xf3aa('0x8'),_0xf3aa('0x9')],'include':[{'model':_0xf3aa('0xa'),'as':_0xf3aa('0xb'),'attributes':['id',_0xf3aa('0x3'),'ticketType'],'include':[{'model':_0xf3aa('0xc'),'as':_0xf3aa('0xd'),'attributes':['id',_0xf3aa('0xe'),_0xf3aa('0xf'),_0xf3aa('0x10')],'include':[{'model':'Variable','as':_0xf3aa('0x11'),'attributes':['id',_0xf3aa('0x3')]}]},{'model':'Dynamics365Field','as':_0xf3aa('0x12'),'attributes':['id',_0xf3aa('0xe'),_0xf3aa('0xf'),_0xf3aa('0x13'),_0xf3aa('0x14'),_0xf3aa('0x15'),_0xf3aa('0x10')],'include':[{'model':_0xf3aa('0x11'),'as':'Variable','attributes':['id',_0xf3aa('0x3')]}]},{'model':_0xf3aa('0xc'),'as':'Fields','attributes':['id',_0xf3aa('0xe'),_0xf3aa('0xf'),_0xf3aa('0x16'),_0xf3aa('0x17'),'customField',_0xf3aa('0x10')],'include':[{'model':_0xf3aa('0x11'),'as':_0xf3aa('0x11'),'attributes':['id',_0xf3aa('0x3')]}]}]}]},'log':_0xf3aa('0x2')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa1e8=['FreshdeskField','Subjects','content','variableName','Variable','Descriptions','type','keyType','keyContent','idField','customField','../../client','Request','GetFreshdeskAccount','username','remoteUri','serverUrl','FreshdeskConfiguration','Configurations','Tag','name'];(function(_0x5a49d2,_0x5e202d){var _0x5eb98d=function(_0x4908eb){while(--_0x4908eb){_0x5a49d2['push'](_0x5a49d2['shift']());}};_0x5eb98d(++_0x5e202d);}(_0xa1e8,0x1af));var _0x8a1e=function(_0x33ba46,_0x2f46ff){_0x33ba46=_0x33ba46-0x0;var _0x1daf93=_0xa1e8[_0x33ba46];return _0x1daf93;};'use strict';var client=require(_0x8a1e('0x0'));exports['getFreshdeskAccounts']=function(){return function(_0x1e392b){return client[_0x8a1e('0x1')](_0x8a1e('0x2'),{'options':{'raw':![],'attributes':['id','name',_0x8a1e('0x3'),'apiKey',_0x8a1e('0x4'),_0x8a1e('0x5')],'include':[{'model':_0x8a1e('0x6'),'as':_0x8a1e('0x7'),'attributes':['id','name'],'include':[{'model':_0x8a1e('0x8'),'attributes':['id',_0x8a1e('0x9')]},{'model':_0x8a1e('0xa'),'as':_0x8a1e('0xb'),'attributes':['id','type',_0x8a1e('0xc'),_0x8a1e('0xd')],'include':[{'model':_0x8a1e('0xe'),'as':'Variable','attributes':['id',_0x8a1e('0x9')]}]},{'model':'FreshdeskField','as':_0x8a1e('0xf'),'attributes':['id',_0x8a1e('0x10'),'content','key',_0x8a1e('0x11'),_0x8a1e('0x12'),_0x8a1e('0xd')],'include':[{'model':_0x8a1e('0xe'),'as':_0x8a1e('0xe'),'attributes':['id',_0x8a1e('0x9')]}]},{'model':_0x8a1e('0xa'),'as':'Fields','attributes':['id',_0x8a1e('0x10'),_0x8a1e('0xc'),_0x8a1e('0x13'),'nameField',_0x8a1e('0x14'),_0x8a1e('0xd')],'include':[{'model':_0x8a1e('0xe'),'as':'Variable','attributes':['id',_0x8a1e('0x9')]}]}]}]},'log':_0x8a1e('0x2')});};};
\ No newline at end of file
+var _0xfc61=['variableName','Variable','Descriptions','key','keyType','keyContent','Fields','idField','customField','GetFreshdeskAccount','../../client','getFreshdeskAccounts','Request','apiKey','remoteUri','serverUrl','FreshdeskConfiguration','Tag','name','FreshdeskField','Subjects','type'];(function(_0x4e676e,_0x2a7c6d){var _0x336a3c=function(_0x4767c4){while(--_0x4767c4){_0x4e676e['push'](_0x4e676e['shift']());}};_0x336a3c(++_0x2a7c6d);}(_0xfc61,0x78));var _0x1fc6=function(_0x119e13,_0x44bc26){_0x119e13=_0x119e13-0x0;var _0x597729=_0xfc61[_0x119e13];return _0x597729;};'use strict';var client=require(_0x1fc6('0x0'));exports[_0x1fc6('0x1')]=function(){return function(_0x4394b8){return client[_0x1fc6('0x2')]('GetFreshdeskAccount',{'options':{'raw':![],'attributes':['id','name','username',_0x1fc6('0x3'),_0x1fc6('0x4'),_0x1fc6('0x5')],'include':[{'model':_0x1fc6('0x6'),'as':'Configurations','attributes':['id','name'],'include':[{'model':_0x1fc6('0x7'),'attributes':['id',_0x1fc6('0x8')]},{'model':_0x1fc6('0x9'),'as':_0x1fc6('0xa'),'attributes':['id',_0x1fc6('0xb'),'content',_0x1fc6('0xc')],'include':[{'model':_0x1fc6('0xd'),'as':_0x1fc6('0xd'),'attributes':['id',_0x1fc6('0x8')]}]},{'model':'FreshdeskField','as':_0x1fc6('0xe'),'attributes':['id',_0x1fc6('0xb'),'content',_0x1fc6('0xf'),_0x1fc6('0x10'),_0x1fc6('0x11'),_0x1fc6('0xc')],'include':[{'model':'Variable','as':'Variable','attributes':['id',_0x1fc6('0x8')]}]},{'model':_0x1fc6('0x9'),'as':_0x1fc6('0x12'),'attributes':['id','type','content',_0x1fc6('0x13'),'nameField',_0x1fc6('0x14'),_0x1fc6('0xc')],'include':[{'model':_0x1fc6('0xd'),'as':_0x1fc6('0xd'),'attributes':['id',_0x1fc6('0x8')]}]}]}]},'log':_0x1fc6('0x15')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1db9=['getFreshsalesAccounts','Request','GetFreshsalesAccount','name','apiKey','remoteUri','Configurations','Subjects','type','content','variableName','Variable','Descriptions','keyType','../../client'];(function(_0x45c61e,_0x59694d){var _0x19033c=function(_0x19fc2b){while(--_0x19fc2b){_0x45c61e['push'](_0x45c61e['shift']());}};_0x19033c(++_0x59694d);}(_0x1db9,0x176));var _0x91db=function(_0x52c81c,_0x70375a){_0x52c81c=_0x52c81c-0x0;var _0xa30d70=_0x1db9[_0x52c81c];return _0xa30d70;};'use strict';var client=require(_0x91db('0x0'));exports[_0x91db('0x1')]=function(){return function(_0x8039b2){return client[_0x91db('0x2')](_0x91db('0x3'),{'options':{'raw':![],'attributes':['id',_0x91db('0x4'),'username',_0x91db('0x5'),_0x91db('0x6'),'serverUrl'],'include':[{'model':'FreshsalesConfiguration','as':_0x91db('0x7'),'attributes':['id','name'],'include':[{'model':'FreshsalesField','as':_0x91db('0x8'),'attributes':['id',_0x91db('0x9'),_0x91db('0xa'),_0x91db('0xb')],'include':[{'model':_0x91db('0xc'),'as':'Variable','attributes':['id',_0x91db('0x4')]}]},{'model':'FreshsalesField','as':_0x91db('0xd'),'attributes':['id',_0x91db('0x9'),_0x91db('0xa'),'key',_0x91db('0xe'),'keyContent','variableName'],'include':[{'model':'Variable','as':_0x91db('0xc'),'attributes':['id',_0x91db('0x4')]}]}]}]},'log':'GetFreshsalesccount'});};};
\ No newline at end of file
+var _0x31c2=['Descriptions','content','key','keyType','keyContent','GetFreshsalesccount','../../client','getFreshsalesAccounts','Request','GetFreshsalesAccount','name','username','apiKey','FreshsalesConfiguration','Configurations','FreshsalesField','type','variableName','Variable'];(function(_0x6aa43c,_0xb9b4ed){var _0x585b97=function(_0xc2a00e){while(--_0xc2a00e){_0x6aa43c['push'](_0x6aa43c['shift']());}};_0x585b97(++_0xb9b4ed);}(_0x31c2,0x1e1));var _0x231c=function(_0x2518ed,_0x3496c4){_0x2518ed=_0x2518ed-0x0;var _0x364285=_0x31c2[_0x2518ed];return _0x364285;};'use strict';var client=require(_0x231c('0x0'));exports[_0x231c('0x1')]=function(){return function(_0x3bb038){return client[_0x231c('0x2')](_0x231c('0x3'),{'options':{'raw':![],'attributes':['id',_0x231c('0x4'),_0x231c('0x5'),_0x231c('0x6'),'remoteUri','serverUrl'],'include':[{'model':_0x231c('0x7'),'as':_0x231c('0x8'),'attributes':['id',_0x231c('0x4')],'include':[{'model':_0x231c('0x9'),'as':'Subjects','attributes':['id',_0x231c('0xa'),'content',_0x231c('0xb')],'include':[{'model':_0x231c('0xc'),'as':_0x231c('0xc'),'attributes':['id','name']}]},{'model':_0x231c('0x9'),'as':_0x231c('0xd'),'attributes':['id',_0x231c('0xa'),_0x231c('0xe'),_0x231c('0xf'),_0x231c('0x10'),_0x231c('0x11'),'variableName'],'include':[{'model':_0x231c('0xc'),'as':_0x231c('0xc'),'attributes':['id','name']}]}]}]},'log':_0x231c('0x12')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdfaa=['SalesforceField','Subjects','Variable','Descriptions','GetSalesforceAccount','../../client','getSalesforceAccounts','Request','name','clientId','securityToken','serverUrl','type','Configurations','moduleCreate','ticketType','leadId','additionalSearchAccount','additionalSearchContact','additionalSearchLead'];(function(_0x40b35f,_0x4d95ba){var _0x4c3555=function(_0x35d5ab){while(--_0x35d5ab){_0x40b35f['push'](_0x40b35f['shift']());}};_0x4c3555(++_0x4d95ba);}(_0xdfaa,0xa5));var _0xadfa=function(_0x19ef4b,_0x4a0180){_0x19ef4b=_0x19ef4b-0x0;var _0x5c3490=_0xdfaa[_0x19ef4b];return _0x5c3490;};'use strict';var client=require(_0xadfa('0x0'));exports[_0xadfa('0x1')]=function(){return function(_0x228d94){return client[_0xadfa('0x2')]('GetSalesforceAccount',{'options':{'raw':![],'attributes':['id',_0xadfa('0x3'),'username','password','remoteUri',_0xadfa('0x4'),'clientSecret',_0xadfa('0x5'),_0xadfa('0x6'),_0xadfa('0x7')],'include':[{'model':'SalesforceConfiguration','as':_0xadfa('0x8'),'attributes':['id',_0xadfa('0x3'),'moduleSearch',_0xadfa('0x9'),_0xadfa('0xa'),_0xadfa('0xb'),_0xadfa('0xc'),_0xadfa('0xd'),_0xadfa('0xe')],'include':[{'model':_0xadfa('0xf'),'as':_0xadfa('0x10'),'include':[{'model':_0xadfa('0x11'),'as':_0xadfa('0x11'),'attributes':['id',_0xadfa('0x3')]}]},{'model':'SalesforceField','as':_0xadfa('0x12'),'include':[{'model':_0xadfa('0x11'),'as':_0xadfa('0x11'),'attributes':['id',_0xadfa('0x3')]}]},{'model':'SalesforceField','as':'Fields','include':[{'model':_0xadfa('0x11'),'as':_0xadfa('0x11'),'attributes':['id',_0xadfa('0x3')]}]}]}]},'log':_0xadfa('0x13')});};};
\ No newline at end of file
+var _0x2c64=['additionalSearchLead','Subjects','Variable','SalesforceField','Descriptions','../../client','getSalesforceAccounts','Request','GetSalesforceAccount','name','username','clientId','clientSecret','securityToken','Configurations','moduleSearch','moduleCreate','ticketType','additionalSearchAccount','additionalSearchContact'];(function(_0x357c73,_0x39cff5){var _0x424e62=function(_0x159863){while(--_0x159863){_0x357c73['push'](_0x357c73['shift']());}};_0x424e62(++_0x39cff5);}(_0x2c64,0x181));var _0x42c6=function(_0xd0a847,_0x72562b){_0xd0a847=_0xd0a847-0x0;var _0x2536ec=_0x2c64[_0xd0a847];return _0x2536ec;};'use strict';var client=require(_0x42c6('0x0'));exports[_0x42c6('0x1')]=function(){return function(_0x4e4913){return client[_0x42c6('0x2')](_0x42c6('0x3'),{'options':{'raw':![],'attributes':['id',_0x42c6('0x4'),_0x42c6('0x5'),'password','remoteUri',_0x42c6('0x6'),_0x42c6('0x7'),_0x42c6('0x8'),'serverUrl','type'],'include':[{'model':'SalesforceConfiguration','as':_0x42c6('0x9'),'attributes':['id',_0x42c6('0x4'),_0x42c6('0xa'),_0x42c6('0xb'),_0x42c6('0xc'),'leadId',_0x42c6('0xd'),_0x42c6('0xe'),_0x42c6('0xf')],'include':[{'model':'SalesforceField','as':_0x42c6('0x10'),'include':[{'model':_0x42c6('0x11'),'as':'Variable','attributes':['id',_0x42c6('0x4')]}]},{'model':_0x42c6('0x12'),'as':_0x42c6('0x13'),'include':[{'model':_0x42c6('0x11'),'as':_0x42c6('0x11'),'attributes':['id',_0x42c6('0x4')]}]},{'model':_0x42c6('0x12'),'as':'Fields','include':[{'model':_0x42c6('0x11'),'as':_0x42c6('0x11'),'attributes':['id',_0x42c6('0x4')]}]}]}]},'log':_0x42c6('0x3')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1261=['content','variableName','Variable','ServicenowField','Descriptions','keyContent','Fields','idField','nameField','getServicenowAccounts','Request','GetServicenowAccount','name','description','username','password','email','remoteUri','Configurations','Subjects','type'];(function(_0xa464c9,_0x7c86d8){var _0x3d73c4=function(_0x5c2056){while(--_0x5c2056){_0xa464c9['push'](_0xa464c9['shift']());}};_0x3d73c4(++_0x7c86d8);}(_0x1261,0x144));var _0x1126=function(_0x56ab7e,_0x3d47af){_0x56ab7e=_0x56ab7e-0x0;var _0x4205b9=_0x1261[_0x56ab7e];return _0x4205b9;};'use strict';var client=require('../../client');exports[_0x1126('0x0')]=function(){return function(_0x26c6a0){return client[_0x1126('0x1')](_0x1126('0x2'),{'options':{'raw':![],'attributes':['id',_0x1126('0x3'),_0x1126('0x4'),_0x1126('0x5'),_0x1126('0x6'),_0x1126('0x7'),_0x1126('0x8'),'serverUrl'],'include':[{'model':'ServicenowConfiguration','as':_0x1126('0x9'),'attributes':['id',_0x1126('0x3')],'include':[{'model':'ServicenowField','as':_0x1126('0xa'),'attributes':['id',_0x1126('0xb'),_0x1126('0xc'),_0x1126('0xd')],'include':[{'model':_0x1126('0xe'),'as':'Variable','attributes':['id',_0x1126('0x3')]}]},{'model':_0x1126('0xf'),'as':_0x1126('0x10'),'attributes':['id','type',_0x1126('0xc'),'key','keyType',_0x1126('0x11'),'variableName'],'include':[{'model':_0x1126('0xe'),'as':_0x1126('0xe'),'attributes':['id',_0x1126('0x3')]}]},{'model':_0x1126('0xf'),'as':_0x1126('0x12'),'attributes':['id',_0x1126('0xb'),_0x1126('0xc'),_0x1126('0x13'),_0x1126('0x14'),'customField','variableName'],'include':[{'model':_0x1126('0xe'),'as':_0x1126('0xe'),'attributes':['id',_0x1126('0x3')]}]}]}]},'log':'GetServicenowkAccount'});};};
\ No newline at end of file
+var _0xc4aa=['keyContent','Fields','content','idField','nameField','customField','GetServicenowkAccount','../../client','getServicenowAccounts','Request','GetServicenowAccount','name','email','remoteUri','serverUrl','ServicenowConfiguration','Configurations','ServicenowField','Subjects','variableName','Variable','Descriptions','type','key'];(function(_0xd4a590,_0x37f788){var _0x65b55b=function(_0x29d296){while(--_0x29d296){_0xd4a590['push'](_0xd4a590['shift']());}};_0x65b55b(++_0x37f788);}(_0xc4aa,0x1b7));var _0xac4a=function(_0x1b2ff7,_0x12a034){_0x1b2ff7=_0x1b2ff7-0x0;var _0x31656a=_0xc4aa[_0x1b2ff7];return _0x31656a;};'use strict';var client=require(_0xac4a('0x0'));exports[_0xac4a('0x1')]=function(){return function(_0x40a0d0){return client[_0xac4a('0x2')](_0xac4a('0x3'),{'options':{'raw':![],'attributes':['id',_0xac4a('0x4'),'description','username','password',_0xac4a('0x5'),_0xac4a('0x6'),_0xac4a('0x7')],'include':[{'model':_0xac4a('0x8'),'as':_0xac4a('0x9'),'attributes':['id',_0xac4a('0x4')],'include':[{'model':_0xac4a('0xa'),'as':_0xac4a('0xb'),'attributes':['id','type','content',_0xac4a('0xc')],'include':[{'model':_0xac4a('0xd'),'as':_0xac4a('0xd'),'attributes':['id','name']}]},{'model':_0xac4a('0xa'),'as':_0xac4a('0xe'),'attributes':['id',_0xac4a('0xf'),'content',_0xac4a('0x10'),'keyType',_0xac4a('0x11'),'variableName'],'include':[{'model':_0xac4a('0xd'),'as':_0xac4a('0xd'),'attributes':['id',_0xac4a('0x4')]}]},{'model':'ServicenowField','as':_0xac4a('0x12'),'attributes':['id',_0xac4a('0xf'),_0xac4a('0x13'),_0xac4a('0x14'),_0xac4a('0x15'),_0xac4a('0x16'),_0xac4a('0xc')],'include':[{'model':_0xac4a('0xd'),'as':_0xac4a('0xd'),'attributes':['id',_0xac4a('0x4')]}]}]}]},'log':_0xac4a('0x17')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0295=['remoteUri','serverUrl','SugarcrmConfiguration','Configurations','name','SugarcrmField','Subjects','Variable','Descriptions','content','key','keyType','variableName','Fields','customField','GetSugarcrmAccount','../../client','Request','username','password'];(function(_0x433eea,_0x5a05f9){var _0x35d6f9=function(_0x261d59){while(--_0x261d59){_0x433eea['push'](_0x433eea['shift']());}};_0x35d6f9(++_0x5a05f9);}(_0x0295,0x1f0));var _0x5029=function(_0x119a07,_0x2289f6){_0x119a07=_0x119a07-0x0;var _0x36025c=_0x0295[_0x119a07];return _0x36025c;};'use strict';var client=require(_0x5029('0x0'));exports['getSugarcrmAccounts']=function(){return function(_0x5e71d0){return client[_0x5029('0x1')]('GetSugarcrmAccount',{'options':{'raw':![],'attributes':['id','name',_0x5029('0x2'),_0x5029('0x3'),_0x5029('0x4'),_0x5029('0x5')],'include':[{'model':_0x5029('0x6'),'as':_0x5029('0x7'),'attributes':['id',_0x5029('0x8')],'include':[{'model':_0x5029('0x9'),'as':_0x5029('0xa'),'attributes':['id','type','content','variableName'],'include':[{'model':_0x5029('0xb'),'as':'Variable','attributes':['id',_0x5029('0x8')]}]},{'model':'SugarcrmField','as':_0x5029('0xc'),'attributes':['id','type',_0x5029('0xd'),_0x5029('0xe'),_0x5029('0xf'),'keyContent',_0x5029('0x10')],'include':[{'model':_0x5029('0xb'),'as':_0x5029('0xb'),'attributes':['id','name']}]},{'model':_0x5029('0x9'),'as':_0x5029('0x11'),'attributes':['id','type','content','idField','nameField',_0x5029('0x12'),_0x5029('0x10')],'include':[{'model':_0x5029('0xb'),'as':_0x5029('0xb'),'attributes':['id',_0x5029('0x8')]}]}]}]},'log':_0x5029('0x13')});};};
\ No newline at end of file
+var _0x0b0e=['Configurations','SugarcrmField','Subjects','variableName','Variable','Descriptions','type','key','keyType','Fields','content','idField','customField','../../client','GetSugarcrmAccount','name','username','password','remoteUri','serverUrl','SugarcrmConfiguration'];(function(_0x2d328f,_0x16ddd3){var _0x16af1d=function(_0x16b42a){while(--_0x16b42a){_0x2d328f['push'](_0x2d328f['shift']());}};_0x16af1d(++_0x16ddd3);}(_0x0b0e,0x187));var _0xe0b0=function(_0x4aa662,_0x1cc90c){_0x4aa662=_0x4aa662-0x0;var _0x336478=_0x0b0e[_0x4aa662];return _0x336478;};'use strict';var client=require(_0xe0b0('0x0'));exports['getSugarcrmAccounts']=function(){return function(_0xc416e3){return client['Request'](_0xe0b0('0x1'),{'options':{'raw':![],'attributes':['id',_0xe0b0('0x2'),_0xe0b0('0x3'),_0xe0b0('0x4'),_0xe0b0('0x5'),_0xe0b0('0x6')],'include':[{'model':_0xe0b0('0x7'),'as':_0xe0b0('0x8'),'attributes':['id',_0xe0b0('0x2')],'include':[{'model':_0xe0b0('0x9'),'as':_0xe0b0('0xa'),'attributes':['id','type','content',_0xe0b0('0xb')],'include':[{'model':_0xe0b0('0xc'),'as':_0xe0b0('0xc'),'attributes':['id',_0xe0b0('0x2')]}]},{'model':'SugarcrmField','as':_0xe0b0('0xd'),'attributes':['id',_0xe0b0('0xe'),'content',_0xe0b0('0xf'),_0xe0b0('0x10'),'keyContent',_0xe0b0('0xb')],'include':[{'model':_0xe0b0('0xc'),'as':_0xe0b0('0xc'),'attributes':['id','name']}]},{'model':_0xe0b0('0x9'),'as':_0xe0b0('0x11'),'attributes':['id',_0xe0b0('0xe'),_0xe0b0('0x12'),_0xe0b0('0x13'),'nameField',_0xe0b0('0x14'),_0xe0b0('0xb')],'include':[{'model':_0xe0b0('0xc'),'as':_0xe0b0('0xc'),'attributes':['id',_0xe0b0('0x2')]}]}]}]},'log':'GetSugarcrmAccount'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x38e0=['accessKey','remoteUri','serverUrl','VtigerConfiguration','Configurations','VtigerField','Subjects','type','content','variableName','Variable','Descriptions','key','keyType','keyContent','idField','nameField','customField','GetVtigerAccount','../../client','getVtigerAccounts','name','description'];(function(_0xd2d54,_0x5329f7){var _0x78b113=function(_0x7d2b29){while(--_0x7d2b29){_0xd2d54['push'](_0xd2d54['shift']());}};_0x78b113(++_0x5329f7);}(_0x38e0,0xb4));var _0x038e=function(_0x32685b,_0x24f0fd){_0x32685b=_0x32685b-0x0;var _0x43862f=_0x38e0[_0x32685b];return _0x43862f;};'use strict';var client=require(_0x038e('0x0'));exports[_0x038e('0x1')]=function(){return function(_0x5d7b27){return client['Request']('GetVtigerAccount',{'options':{'raw':![],'attributes':['id',_0x038e('0x2'),_0x038e('0x3'),'username',_0x038e('0x4'),_0x038e('0x5'),_0x038e('0x6')],'include':[{'model':_0x038e('0x7'),'as':_0x038e('0x8'),'attributes':['id',_0x038e('0x2')],'include':[{'model':_0x038e('0x9'),'as':_0x038e('0xa'),'attributes':['id',_0x038e('0xb'),_0x038e('0xc'),_0x038e('0xd')],'include':[{'model':_0x038e('0xe'),'as':_0x038e('0xe'),'attributes':['id',_0x038e('0x2')]}]},{'model':_0x038e('0x9'),'as':_0x038e('0xf'),'attributes':['id',_0x038e('0xb'),_0x038e('0xc'),_0x038e('0x10'),_0x038e('0x11'),_0x038e('0x12'),_0x038e('0xd')],'include':[{'model':'Variable','as':'Variable','attributes':['id','name']}]},{'model':'VtigerField','as':'Fields','attributes':['id','type',_0x038e('0xc'),_0x038e('0x13'),_0x038e('0x14'),_0x038e('0x15'),'variableName'],'include':[{'model':'Variable','as':_0x038e('0xe'),'attributes':['id',_0x038e('0x2')]}]}]}]},'log':_0x038e('0x16')});};};
\ No newline at end of file
+var _0xcf84=['../../client','getVtigerAccounts','GetVtigerAccount','name','description','username','accessKey','remoteUri','Configurations','VtigerField','variableName','Variable','Descriptions','content','key','keyType','keyContent','Fields','type','idField','nameField'];(function(_0x4c2dfc,_0x4814c0){var _0xfd728d=function(_0x5b8d81){while(--_0x5b8d81){_0x4c2dfc['push'](_0x4c2dfc['shift']());}};_0xfd728d(++_0x4814c0);}(_0xcf84,0x111));var _0x4cf8=function(_0x16ce18,_0x4c67b9){_0x16ce18=_0x16ce18-0x0;var _0x4f3b2e=_0xcf84[_0x16ce18];return _0x4f3b2e;};'use strict';var client=require(_0x4cf8('0x0'));exports[_0x4cf8('0x1')]=function(){return function(_0x51b6a8){return client['Request'](_0x4cf8('0x2'),{'options':{'raw':![],'attributes':['id',_0x4cf8('0x3'),_0x4cf8('0x4'),_0x4cf8('0x5'),_0x4cf8('0x6'),_0x4cf8('0x7'),'serverUrl'],'include':[{'model':'VtigerConfiguration','as':_0x4cf8('0x8'),'attributes':['id',_0x4cf8('0x3')],'include':[{'model':_0x4cf8('0x9'),'as':'Subjects','attributes':['id','type','content',_0x4cf8('0xa')],'include':[{'model':'Variable','as':_0x4cf8('0xb'),'attributes':['id','name']}]},{'model':_0x4cf8('0x9'),'as':_0x4cf8('0xc'),'attributes':['id','type',_0x4cf8('0xd'),_0x4cf8('0xe'),_0x4cf8('0xf'),_0x4cf8('0x10'),_0x4cf8('0xa')],'include':[{'model':_0x4cf8('0xb'),'as':_0x4cf8('0xb'),'attributes':['id',_0x4cf8('0x3')]}]},{'model':'VtigerField','as':_0x4cf8('0x11'),'attributes':['id',_0x4cf8('0x12'),'content',_0x4cf8('0x13'),_0x4cf8('0x14'),'customField',_0x4cf8('0xa')],'include':[{'model':'Variable','as':_0x4cf8('0xb'),'attributes':['id',_0x4cf8('0x3')]}]}]}]},'log':'GetVtigerAccount'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1479=['GetZendeskAccount','../../client','getZendeskAccounts','Request','name','username','password','token','remoteUri','authType','serverUrl','type','Configurations','Tag','ZendeskField','Subjects','content','variableName','Variable','Descriptions','key','keyType','keyContent','Fields','nameField'];(function(_0x17406e,_0x1049fd){var _0x2bfc5a=function(_0x2aae05){while(--_0x2aae05){_0x17406e['push'](_0x17406e['shift']());}};_0x2bfc5a(++_0x1049fd);}(_0x1479,0x114));var _0x9147=function(_0x3912f8,_0x391866){_0x3912f8=_0x3912f8-0x0;var _0x366755=_0x1479[_0x3912f8];return _0x366755;};'use strict';var client=require(_0x9147('0x0'));exports[_0x9147('0x1')]=function(){return function(_0x21e8b5){return client[_0x9147('0x2')]('GetZendeskAccount',{'options':{'raw':![],'attributes':['id',_0x9147('0x3'),_0x9147('0x4'),_0x9147('0x5'),_0x9147('0x6'),_0x9147('0x7'),_0x9147('0x8'),_0x9147('0x9'),_0x9147('0xa')],'include':[{'model':'ZendeskConfiguration','as':_0x9147('0xb'),'attributes':['id',_0x9147('0x3')],'include':[{'model':_0x9147('0xc'),'attributes':['id','name']},{'model':_0x9147('0xd'),'as':_0x9147('0xe'),'attributes':['id','type',_0x9147('0xf'),_0x9147('0x10')],'include':[{'model':_0x9147('0x11'),'as':_0x9147('0x11'),'attributes':['id',_0x9147('0x3')]}]},{'model':_0x9147('0xd'),'as':_0x9147('0x12'),'attributes':['id','type',_0x9147('0xf'),_0x9147('0x13'),_0x9147('0x14'),_0x9147('0x15'),_0x9147('0x10')],'include':[{'model':_0x9147('0x11'),'as':_0x9147('0x11'),'attributes':['id',_0x9147('0x3')]}]},{'model':_0x9147('0xd'),'as':_0x9147('0x16'),'attributes':['id','type','content','idField',_0x9147('0x17'),'customField',_0x9147('0x10')],'include':[{'model':_0x9147('0x11'),'as':'Variable','attributes':['id',_0x9147('0x3')]}]}]}]},'log':_0x9147('0x18')});};};
\ No newline at end of file
+var _0x80ff=['Fields','idField','customField','variableName','../../client','getZendeskAccounts','Request','GetZendeskAccount','name','password','remoteUri','type','ZendeskConfiguration','ZendeskField','Subjects','content','Variable','Descriptions','key','keyType'];(function(_0x38c5bb,_0x153bdb){var _0x5cbd09=function(_0xe17565){while(--_0xe17565){_0x38c5bb['push'](_0x38c5bb['shift']());}};_0x5cbd09(++_0x153bdb);}(_0x80ff,0xb8));var _0xf80f=function(_0x5447fd,_0x52a6b5){_0x5447fd=_0x5447fd-0x0;var _0x15b28a=_0x80ff[_0x5447fd];return _0x15b28a;};'use strict';var client=require(_0xf80f('0x0'));exports[_0xf80f('0x1')]=function(){return function(_0xd868c8){return client[_0xf80f('0x2')](_0xf80f('0x3'),{'options':{'raw':![],'attributes':['id',_0xf80f('0x4'),'username',_0xf80f('0x5'),'token',_0xf80f('0x6'),'authType','serverUrl',_0xf80f('0x7')],'include':[{'model':_0xf80f('0x8'),'as':'Configurations','attributes':['id',_0xf80f('0x4')],'include':[{'model':'Tag','attributes':['id','name']},{'model':_0xf80f('0x9'),'as':_0xf80f('0xa'),'attributes':['id','type',_0xf80f('0xb'),'variableName'],'include':[{'model':_0xf80f('0xc'),'as':_0xf80f('0xc'),'attributes':['id','name']}]},{'model':_0xf80f('0x9'),'as':_0xf80f('0xd'),'attributes':['id',_0xf80f('0x7'),_0xf80f('0xb'),_0xf80f('0xe'),_0xf80f('0xf'),'keyContent','variableName'],'include':[{'model':_0xf80f('0xc'),'as':_0xf80f('0xc'),'attributes':['id',_0xf80f('0x4')]}]},{'model':'ZendeskField','as':_0xf80f('0x10'),'attributes':['id',_0xf80f('0x7'),_0xf80f('0xb'),_0xf80f('0x11'),'nameField',_0xf80f('0x12'),_0xf80f('0x13')],'include':[{'model':_0xf80f('0xc'),'as':_0xf80f('0xc'),'attributes':['id','name']}]}]}]},'log':_0xf80f('0x3')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc15b=['host','clientSecret','serverUrl','code','refreshToken','ZohoConfiguration','Configurations','name','moduleCreate','Subjects','type','content','variableName','Variable','ZohoField','Descriptions','key','keyContent','idField','nameField','GetZohoAccount','../../client','getZohoAccounts','description'];(function(_0x36401e,_0x29674a){var _0x1fa9c1=function(_0x4fdef1){while(--_0x4fdef1){_0x36401e['push'](_0x36401e['shift']());}};_0x1fa9c1(++_0x29674a);}(_0xc15b,0x75));var _0xbc15=function(_0x32f7d7,_0x54231b){_0x32f7d7=_0x32f7d7-0x0;var _0x133d09=_0xc15b[_0x32f7d7];return _0x133d09;};'use strict';var client=require(_0xbc15('0x0'));exports[_0xbc15('0x1')]=function(){return function(_0xf9ab57){return client['Request']('GetZohoAccount',{'options':{'raw':![],'attributes':['id','name',_0xbc15('0x2'),_0xbc15('0x3'),'zone','clientId',_0xbc15('0x4'),_0xbc15('0x5'),_0xbc15('0x6'),_0xbc15('0x7')],'include':[{'model':_0xbc15('0x8'),'as':_0xbc15('0x9'),'attributes':['id',_0xbc15('0xa'),_0xbc15('0xb'),'moduleSearch',_0xbc15('0x2')],'include':[{'model':'ZohoField','as':_0xbc15('0xc'),'attributes':['id',_0xbc15('0xd'),_0xbc15('0xe'),_0xbc15('0xf')],'include':[{'model':_0xbc15('0x10'),'as':'Variable','attributes':['id','name']}]},{'model':_0xbc15('0x11'),'as':_0xbc15('0x12'),'attributes':['id',_0xbc15('0xd'),'content',_0xbc15('0x13'),'keyType',_0xbc15('0x14'),_0xbc15('0xf')],'include':[{'model':_0xbc15('0x10'),'as':_0xbc15('0x10'),'attributes':['id',_0xbc15('0xa')]}]},{'model':_0xbc15('0x11'),'as':'Fields','attributes':['id',_0xbc15('0xd'),_0xbc15('0xe'),_0xbc15('0x15'),_0xbc15('0x16'),'customField',_0xbc15('0xf')],'include':[{'model':_0xbc15('0x10'),'as':_0xbc15('0x10'),'attributes':['id',_0xbc15('0xa')]}]}]}]},'log':_0xbc15('0x17')});};};
\ No newline at end of file
+var _0x1565=['Variable','Descriptions','content','key','keyType','keyContent','Fields','idField','getZohoAccounts','Request','GetZohoAccount','name','description','host','zone','clientId','clientSecret','serverUrl','code','refreshToken','ZohoConfiguration','Configurations','moduleCreate','moduleSearch','ZohoField','Subjects','type','variableName'];(function(_0x3947c9,_0x4d6c97){var _0x2e7871=function(_0x1236cc){while(--_0x1236cc){_0x3947c9['push'](_0x3947c9['shift']());}};_0x2e7871(++_0x4d6c97);}(_0x1565,0x174));var _0x5156=function(_0x4e5e7b,_0x5c3d23){_0x4e5e7b=_0x4e5e7b-0x0;var _0x333893=_0x1565[_0x4e5e7b];return _0x333893;};'use strict';var client=require('../../client');exports[_0x5156('0x0')]=function(){return function(_0x110056){return client[_0x5156('0x1')](_0x5156('0x2'),{'options':{'raw':![],'attributes':['id',_0x5156('0x3'),_0x5156('0x4'),_0x5156('0x5'),_0x5156('0x6'),_0x5156('0x7'),_0x5156('0x8'),_0x5156('0x9'),_0x5156('0xa'),_0x5156('0xb')],'include':[{'model':_0x5156('0xc'),'as':_0x5156('0xd'),'attributes':['id',_0x5156('0x3'),_0x5156('0xe'),_0x5156('0xf'),_0x5156('0x4')],'include':[{'model':_0x5156('0x10'),'as':_0x5156('0x11'),'attributes':['id',_0x5156('0x12'),'content',_0x5156('0x13')],'include':[{'model':_0x5156('0x14'),'as':_0x5156('0x14'),'attributes':['id','name']}]},{'model':_0x5156('0x10'),'as':_0x5156('0x15'),'attributes':['id',_0x5156('0x12'),_0x5156('0x16'),_0x5156('0x17'),_0x5156('0x18'),_0x5156('0x19'),_0x5156('0x13')],'include':[{'model':_0x5156('0x14'),'as':_0x5156('0x14'),'attributes':['id',_0x5156('0x3')]}]},{'model':_0x5156('0x10'),'as':_0x5156('0x1a'),'attributes':['id',_0x5156('0x12'),_0x5156('0x16'),_0x5156('0x1b'),'nameField','customField',_0x5156('0x13')],'include':[{'model':_0x5156('0x14'),'as':_0x5156('0x14'),'attributes':['id',_0x5156('0x3')]}]}]}]},'log':_0x5156('0x2')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x912e=['membername','starttime','endtime','outbound','toNumber','util','../client','voiceQueueReport','queuecallercompleteAt','queuecallerexitAt','Request','voice','lastAssignedTo','isNil','interface','format','SIP/%s','TALKING','queuecallerleaveAt','diff','seconds','inbound','calleridnum','exten','queue','agent','accountcode','CreateMemberReport'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x912e,0xe5));var _0xe912=function(_0x2e5d9c,_0x18bbf9){_0x2e5d9c=_0x2e5d9c-0x0;var _0x2a23ff=_0x912e[_0x2e5d9c];return _0x2a23ff;};'use strict';var moment=require('moment');var _=require('lodash');var util=require(_0xe912('0x0'));var client=require(_0xe912('0x1'));exports[_0xe912('0x2')]=function(_0x26007b){var _0x2e8f01=_0x26007b[_0xe912('0x3')]||_0x26007b[_0xe912('0x4')];return client[_0xe912('0x5')]('CreateMemberReport',{'body':{'channel':_0xe912('0x6'),'membername':_0x26007b[_0xe912('0x7')],'interface':_[_0xe912('0x8')](_0x26007b[_0xe912('0x9')])?util[_0xe912('0xa')](_0xe912('0xb'),_0x26007b['lastAssignedTo']):_0x26007b[_0xe912('0x9')],'type':_0xe912('0xc'),'enterAt':_0x26007b[_0xe912('0xd')],'exitAt':_0x2e8f01,'duration':moment(_0x2e8f01)[_0xe912('0xe')](_0x26007b['queuecallerleaveAt'],_0xe912('0xf')),'data1':_0xe912('0x10'),'data2':_0x26007b[_0xe912('0x11')],'data3':_0x26007b[_0xe912('0x12')],'data4':null,'data5':_0x26007b[_0xe912('0x13')],'role':_0xe912('0x14'),'internal':_0x26007b[_0xe912('0x15')]?_['toNumber'](_0x26007b[_0xe912('0x15')]):undefined,'uniqueid':_0x26007b['uniqueid']},'log':'CreateMemberReport'});};exports['voiceDialReport']=function(_0x4d5438){return client[_0xe912('0x5')](_0xe912('0x16'),{'body':{'channel':_0xe912('0x6'),'membername':_0x4d5438[_0xe912('0x17')],'interface':_0x4d5438['interface'],'type':_0xe912('0xc'),'enterAt':_0x4d5438[_0xe912('0x18')],'exitAt':_0x4d5438['endtime'],'duration':moment(_0x4d5438[_0xe912('0x19')])[_0xe912('0xe')](_0x4d5438[_0xe912('0x18')],'seconds')>=0x0?moment(_0x4d5438[_0xe912('0x19')])[_0xe912('0xe')](_0x4d5438[_0xe912('0x18')],_0xe912('0xf')):null,'data1':_0xe912('0x1a'),'data2':_0x4d5438['accountcode'],'data3':_0x4d5438[_0xe912('0x12')],'data4':_0x4d5438['dialstring']||null,'role':'agent','internal':_0x4d5438['accountcode']?_[_0xe912('0x1b')](_0x4d5438[_0xe912('0x15')]):undefined,'uniqueid':_0x4d5438['uniqueid']},'log':'CreateMemberReport'});};
\ No newline at end of file
+var _0x1d06=['queue','agent','accountcode','toNumber','uniqueid','CreateMemberReport','voiceDialReport','membername','TALKING','starttime','endtime','outbound','dialstring','lodash','../client','voiceQueueReport','queuecallercompleteAt','Request','voice','lastAssignedTo','isNil','interface','format','SIP/%s','queuecallerleaveAt','diff','seconds','inbound','exten'];(function(_0x1d06d1,_0x74a64f){var _0x260a6f=function(_0x3802b2){while(--_0x3802b2){_0x1d06d1['push'](_0x1d06d1['shift']());}};_0x260a6f(++_0x74a64f);}(_0x1d06,0x14c));var _0x61d0=function(_0x465a0c,_0x19d4d5){_0x465a0c=_0x465a0c-0x0;var _0x1e202e=_0x1d06[_0x465a0c];return _0x1e202e;};'use strict';var moment=require('moment');var _=require(_0x61d0('0x0'));var util=require('util');var client=require(_0x61d0('0x1'));exports[_0x61d0('0x2')]=function(_0x472e27){var _0x56ac71=_0x472e27[_0x61d0('0x3')]||_0x472e27['queuecallerexitAt'];return client[_0x61d0('0x4')]('CreateMemberReport',{'body':{'channel':_0x61d0('0x5'),'membername':_0x472e27[_0x61d0('0x6')],'interface':_[_0x61d0('0x7')](_0x472e27[_0x61d0('0x8')])?util[_0x61d0('0x9')](_0x61d0('0xa'),_0x472e27[_0x61d0('0x6')]):_0x472e27['interface'],'type':'TALKING','enterAt':_0x472e27[_0x61d0('0xb')],'exitAt':_0x56ac71,'duration':moment(_0x56ac71)[_0x61d0('0xc')](_0x472e27[_0x61d0('0xb')],_0x61d0('0xd')),'data1':_0x61d0('0xe'),'data2':_0x472e27['calleridnum'],'data3':_0x472e27[_0x61d0('0xf')],'data4':null,'data5':_0x472e27[_0x61d0('0x10')],'role':_0x61d0('0x11'),'internal':_0x472e27[_0x61d0('0x12')]?_[_0x61d0('0x13')](_0x472e27['accountcode']):undefined,'uniqueid':_0x472e27[_0x61d0('0x14')]},'log':_0x61d0('0x15')});};exports[_0x61d0('0x16')]=function(_0x2d0bc4){return client['Request']('CreateMemberReport',{'body':{'channel':'voice','membername':_0x2d0bc4[_0x61d0('0x17')],'interface':_0x2d0bc4[_0x61d0('0x8')],'type':_0x61d0('0x18'),'enterAt':_0x2d0bc4[_0x61d0('0x19')],'exitAt':_0x2d0bc4[_0x61d0('0x1a')],'duration':moment(_0x2d0bc4[_0x61d0('0x1a')])[_0x61d0('0xc')](_0x2d0bc4[_0x61d0('0x19')],_0x61d0('0xd'))>=0x0?moment(_0x2d0bc4[_0x61d0('0x1a')])[_0x61d0('0xc')](_0x2d0bc4[_0x61d0('0x19')],'seconds'):null,'data1':_0x61d0('0x1b'),'data2':_0x2d0bc4[_0x61d0('0x12')],'data3':_0x2d0bc4[_0x61d0('0xf')],'data4':_0x2d0bc4[_0x61d0('0x1c')]||null,'role':_0x61d0('0x11'),'internal':_0x2d0bc4['accountcode']?_[_0x61d0('0x13')](_0x2d0bc4['accountcode']):undefined,'uniqueid':_0x2d0bc4[_0x61d0('0x14')]},'log':_0x61d0('0x15')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x55da=['stopRecordingOnTransfer','GetSettings','getSettings','Request','ShowSetting'];(function(_0x1c82ff,_0x341e6a){var _0x90f50e=function(_0x12a8d9){while(--_0x12a8d9){_0x1c82ff['push'](_0x1c82ff['shift']());}};_0x90f50e(++_0x341e6a);}(_0x55da,0x16f));var _0xa55d=function(_0x2844a4,_0x393104){_0x2844a4=_0x2844a4-0x0;var _0x2dfb1f=_0x55da[_0x2844a4];return _0x2dfb1f;};'use strict';var client=require('../client');exports[_0xa55d('0x0')]=function(){return client[_0xa55d('0x1')](_0xa55d('0x2'),{'options':{'raw':!![],'where':{'id':0x1},'attributes':[_0xa55d('0x3')]},'log':_0xa55d('0x4')});};
\ No newline at end of file
+var _0x1cf6=['getSettings','Request','ShowSetting','stopRecordingOnTransfer','GetSettings'];(function(_0x3b3196,_0x17a414){var _0x2bfa05=function(_0xb48105){while(--_0xb48105){_0x3b3196['push'](_0x3b3196['shift']());}};_0x2bfa05(++_0x17a414);}(_0x1cf6,0x1a4));var _0x61cf=function(_0x1b1772,_0x2a5f79){_0x1b1772=_0x1b1772-0x0;var _0x540e32=_0x1cf6[_0x1b1772];return _0x540e32;};'use strict';var client=require('../client');exports[_0x61cf('0x0')]=function(){return client[_0x61cf('0x1')](_0x61cf('0x2'),{'options':{'raw':!![],'where':{'id':0x1},'attributes':[_0x61cf('0x3')]},'log':_0x61cf('0x4')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9b85=['Request','GetTemplate','name','getTemplates'];(function(_0x248636,_0x39c453){var _0x4a7853=function(_0x4af53f){while(--_0x4af53f){_0x248636['push'](_0x248636['shift']());}};_0x4a7853(++_0x39c453);}(_0x9b85,0xd7));var _0x59b8=function(_0x30ae5e,_0x391fc4){_0x30ae5e=_0x30ae5e-0x0;var _0x1f2e93=_0x9b85[_0x30ae5e];return _0x1f2e93;};'use strict';var client=require('../client');exports[_0x59b8('0x0')]=function(_0x559639){return function(_0x459fb0){return client[_0x59b8('0x1')](_0x59b8('0x2'),{'options':{'raw':!![],'attributes':['id',_0x59b8('0x3'),'html']},'log':'GetTemplate'});};};
\ No newline at end of file
+var _0x9354=['getTemplates','Request','GetTemplate','name','html'];(function(_0x1deba7,_0x30f270){var _0x2dcc31=function(_0x57a708){while(--_0x57a708){_0x1deba7['push'](_0x1deba7['shift']());}};_0x2dcc31(++_0x30f270);}(_0x9354,0x96));var _0x4935=function(_0x190417,_0x54dc0d){_0x190417=_0x190417-0x0;var _0x110e9c=_0x9354[_0x190417];return _0x110e9c;};'use strict';var client=require('../client');exports[_0x4935('0x0')]=function(_0xc3c1f3){return function(_0x4896da){return client[_0x4935('0x1')](_0x4935('0x2'),{'options':{'raw':!![],'attributes':['id',_0x4935('0x3'),_0x4935('0x4')]},'log':'GetTemplate'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbc11=['data3','data4','data5','data6','data7','../client','getTriggers','Request','GetTrigger','name','channel','Condition','AllConditions','field','operator','value','action','data2'];(function(_0x1d19cf,_0x136d94){var _0x1dcf38=function(_0x24c229){while(--_0x24c229){_0x1d19cf['push'](_0x1d19cf['shift']());}};_0x1dcf38(++_0x136d94);}(_0xbc11,0x16d));var _0x1bc1=function(_0x3ca880,_0x4e26fb){_0x3ca880=_0x3ca880-0x0;var _0x2a25cb=_0xbc11[_0x3ca880];return _0x2a25cb;};'use strict';var client=require(_0x1bc1('0x0'));exports[_0x1bc1('0x1')]=function(_0x9f5d37){return function(_0x1d5fc1){return client[_0x1bc1('0x2')](_0x1bc1('0x3'),{'options':{'raw':![],'attributes':['id',_0x1bc1('0x4'),_0x1bc1('0x5'),'status'],'include':[{'model':_0x1bc1('0x6'),'as':_0x1bc1('0x7'),'attributes':['id',_0x1bc1('0x8'),'operator','value']},{'model':_0x1bc1('0x6'),'as':'AnyConditions','attributes':['id',_0x1bc1('0x8'),_0x1bc1('0x9'),_0x1bc1('0xa')]},{'model':'Action','as':'Actions','attributes':['id',_0x1bc1('0xb'),'data1',_0x1bc1('0xc'),_0x1bc1('0xd'),_0x1bc1('0xe'),_0x1bc1('0xf'),_0x1bc1('0x10'),_0x1bc1('0x11')]}]},'log':'GetTrigger'});};};
\ No newline at end of file
+var _0xfb66=['value','AnyConditions','field','Action','Actions','action','data2','data3','data4','data5','data7','GetTrigger','../client','getTriggers','Request','name','channel','status','Condition','operator'];(function(_0x5554ee,_0x560190){var _0x36f3b6=function(_0x42b3c9){while(--_0x42b3c9){_0x5554ee['push'](_0x5554ee['shift']());}};_0x36f3b6(++_0x560190);}(_0xfb66,0x174));var _0x6fb6=function(_0x580576,_0x2f107d){_0x580576=_0x580576-0x0;var _0x3f55a0=_0xfb66[_0x580576];return _0x3f55a0;};'use strict';var client=require(_0x6fb6('0x0'));exports[_0x6fb6('0x1')]=function(_0x51d372){return function(_0x53d01c){return client[_0x6fb6('0x2')]('GetTrigger',{'options':{'raw':![],'attributes':['id',_0x6fb6('0x3'),_0x6fb6('0x4'),_0x6fb6('0x5')],'include':[{'model':_0x6fb6('0x6'),'as':'AllConditions','attributes':['id','field',_0x6fb6('0x7'),_0x6fb6('0x8')]},{'model':_0x6fb6('0x6'),'as':_0x6fb6('0x9'),'attributes':['id',_0x6fb6('0xa'),_0x6fb6('0x7'),_0x6fb6('0x8')]},{'model':_0x6fb6('0xb'),'as':_0x6fb6('0xc'),'attributes':['id',_0x6fb6('0xd'),'data1',_0x6fb6('0xe'),_0x6fb6('0xf'),_0x6fb6('0x10'),_0x6fb6('0x11'),'data6',_0x6fb6('0x12')]}]},'log':_0x6fb6('0x13')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe953=['name','defaultuser','GetTrunk'];(function(_0x36aa05,_0x3117cc){var _0x293263=function(_0x1bdc70){while(--_0x1bdc70){_0x36aa05['push'](_0x36aa05['shift']());}};_0x293263(++_0x3117cc);}(_0xe953,0x1d0));var _0x3e95=function(_0x20ef64,_0x4a8fe9){_0x20ef64=_0x20ef64-0x0;var _0x3707d8=_0xe953[_0x20ef64];return _0x3707d8;};'use strict';var client=require('../client');exports['getTrunks']=function(_0x523e85){return function(_0x5678ed){return client['Request'](_0x3e95('0x0'),{'options':{'raw':!![],'where':{'active':0x1},'attributes':['id',_0x3e95('0x1'),'registry',_0x3e95('0x2')]},'log':'GetTrunk'});};};
\ No newline at end of file
+var _0x7aaf=['name','defaultuser','../client'];(function(_0x3e44fa,_0x75ed2a){var _0x2a0aba=function(_0x1db6a7){while(--_0x1db6a7){_0x3e44fa['push'](_0x3e44fa['shift']());}};_0x2a0aba(++_0x75ed2a);}(_0x7aaf,0x1eb));var _0xf7aa=function(_0x3d514c,_0x467ffc){_0x3d514c=_0x3d514c-0x0;var _0x2bba93=_0x7aaf[_0x3d514c];return _0x2bba93;};'use strict';var client=require(_0xf7aa('0x0'));exports['getTrunks']=function(_0x3e729f){return function(_0x32ab7c){return client['Request']('GetTrunk',{'options':{'raw':!![],'where':{'active':0x1},'attributes':['id',_0xf7aa('0x1'),'registry',_0xf7aa('0x2')]},'log':'GetTrunk'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['agent','lastPauseAt','interface','../client','getAgents','Request','name','accountcode','fullname','online','lastLoginAt','pauseType','voicePause','phone','mobile','getTelephones','telephone','internal','savePause','PauseUser','saveUnpause','UnpauseUser','getAgent','ShowUser'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0xa9e0,0x123));var _0x0a9e=function(_0x6131cd,_0x4c26a1){_0x6131cd=_0x6131cd-0x0;var _0x47e916=_0xa9e0[_0x6131cd];return _0x47e916;};'use strict';var client=require(_0x0a9e('0x0'));exports[_0x0a9e('0x1')]=function(){return function(){return client[_0x0a9e('0x2')]('GetUser',{'options':{'raw':![],'where':{'role':'agent'},'attributes':['id',_0x0a9e('0x3'),'email',_0x0a9e('0x4'),_0x0a9e('0x5'),_0x0a9e('0x6'),_0x0a9e('0x7'),_0x0a9e('0x8'),'lastPauseAt',_0x0a9e('0x9'),_0x0a9e('0xa'),_0x0a9e('0xb'),'interface']},'log':'getAgents'});};};exports[_0x0a9e('0xc')]=function(){return function(){return client['Request']('GetUser',{'options':{'raw':!![],'where':{'role':_0x0a9e('0xd')},'attributes':['id',_0x0a9e('0x3'),_0x0a9e('0x4'),_0x0a9e('0xe')]},'log':_0x0a9e('0xc')});};};exports[_0x0a9e('0xf')]=function(_0x4a4c56,_0x50dfb2,_0x527cdd){return client['Request'](_0x0a9e('0x10'),{'body':{'type':_0x50dfb2,'uniqueid':_0x527cdd},'options':{'where':{'id':_0x4a4c56['id']}},'log':_0x0a9e('0xf')});};exports[_0x0a9e('0x11')]=function(_0x26d672){return client[_0x0a9e('0x2')](_0x0a9e('0x12'),{'body':{},'options':{'where':{'id':_0x26d672['id']}},'log':'savePause'});};exports[_0x0a9e('0x13')]=function(_0x239b12){return client[_0x0a9e('0x2')](_0x0a9e('0x14'),{'options':{'raw':![],'where':{'role':_0x0a9e('0x15'),'id':_0x239b12},'attributes':['id',_0x0a9e('0x3'),'email',_0x0a9e('0x4'),'fullname',_0x0a9e('0x6'),'lastLoginAt',_0x0a9e('0x8'),_0x0a9e('0x16'),'voicePause',_0x0a9e('0x17')]},'log':'getAgent'});};
\ No newline at end of file
+var _0xe706=['internal','savePause','PauseUser','saveUnpause','UnpauseUser','ShowUser','getAgent','../client','getAgents','Request','agent','name','email','accountcode','fullname','online','lastLoginAt','pauseType','lastPauseAt','voicePause','phone','mobile','interface','getTelephones','GetUser','telephone'];(function(_0x465028,_0x4570ac){var _0xb783d4=function(_0x5458c5){while(--_0x5458c5){_0x465028['push'](_0x465028['shift']());}};_0xb783d4(++_0x4570ac);}(_0xe706,0xa3));var _0x6e70=function(_0x5ba8fc,_0x3120dd){_0x5ba8fc=_0x5ba8fc-0x0;var _0x974890=_0xe706[_0x5ba8fc];return _0x974890;};'use strict';var client=require(_0x6e70('0x0'));exports[_0x6e70('0x1')]=function(){return function(){return client[_0x6e70('0x2')]('GetUser',{'options':{'raw':![],'where':{'role':_0x6e70('0x3')},'attributes':['id',_0x6e70('0x4'),_0x6e70('0x5'),_0x6e70('0x6'),_0x6e70('0x7'),_0x6e70('0x8'),_0x6e70('0x9'),_0x6e70('0xa'),_0x6e70('0xb'),_0x6e70('0xc'),_0x6e70('0xd'),_0x6e70('0xe'),_0x6e70('0xf')]},'log':_0x6e70('0x1')});};};exports[_0x6e70('0x10')]=function(){return function(){return client[_0x6e70('0x2')](_0x6e70('0x11'),{'options':{'raw':!![],'where':{'role':_0x6e70('0x12')},'attributes':['id',_0x6e70('0x4'),_0x6e70('0x6'),_0x6e70('0x13')]},'log':_0x6e70('0x10')});};};exports[_0x6e70('0x14')]=function(_0x4600f9,_0x5b3d07,_0x47f6b2){return client[_0x6e70('0x2')](_0x6e70('0x15'),{'body':{'type':_0x5b3d07,'uniqueid':_0x47f6b2},'options':{'where':{'id':_0x4600f9['id']}},'log':_0x6e70('0x14')});};exports[_0x6e70('0x16')]=function(_0x3b38f3){return client[_0x6e70('0x2')](_0x6e70('0x17'),{'body':{},'options':{'where':{'id':_0x3b38f3['id']}},'log':_0x6e70('0x14')});};exports['getAgent']=function(_0x52737e){return client['Request'](_0x6e70('0x18'),{'options':{'raw':![],'where':{'role':'agent','id':_0x52737e},'attributes':['id','name',_0x6e70('0x5'),_0x6e70('0x6'),'fullname',_0x6e70('0x8'),'lastLoginAt',_0x6e70('0xa'),_0x6e70('0xb'),'voicePause','interface']},'log':_0x6e70('0x19')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3767=['UpdateVoiceAgentReport','../client','create','Request','CreateVoiceAgentReport'];(function(_0x2ba621,_0x5802e2){var _0x15a1a7=function(_0x58dd35){while(--_0x58dd35){_0x2ba621['push'](_0x2ba621['shift']());}};_0x15a1a7(++_0x5802e2);}(_0x3767,0x196));var _0x7376=function(_0x49b4aa,_0x410e04){_0x49b4aa=_0x49b4aa-0x0;var _0x2da57c=_0x3767[_0x49b4aa];return _0x2da57c;};'use strict';var client=require(_0x7376('0x0'));exports[_0x7376('0x1')]=function(_0xfff1f9){return client[_0x7376('0x2')](_0x7376('0x3'),{'body':_0xfff1f9,'log':_0x7376('0x3')});};exports['update']=function(_0x310d7e,_0x3bf138,_0x536555){return client[_0x7376('0x2')](_0x7376('0x4'),{'body':_0x310d7e,'options':{'where':{'uniqueid':_0x3bf138,'interface':_0x536555,'agentcomplete':!![]}},'log':'UpdateVoiceAgentReport'});};
\ No newline at end of file
+var _0x4ea1=['UpdateVoiceAgentReport','../client','create','CreateVoiceAgentReport','update','Request'];(function(_0x432682,_0x253044){var _0x463d05=function(_0xa73403){while(--_0xa73403){_0x432682['push'](_0x432682['shift']());}};_0x463d05(++_0x253044);}(_0x4ea1,0x7f));var _0x14ea=function(_0x379618,_0xc96b07){_0x379618=_0x379618-0x0;var _0x1dad0b=_0x4ea1[_0x379618];return _0x1dad0b;};'use strict';var client=require(_0x14ea('0x0'));exports[_0x14ea('0x1')]=function(_0x511a7a){return client['Request'](_0x14ea('0x2'),{'body':_0x511a7a,'log':_0x14ea('0x2')});};exports[_0x14ea('0x3')]=function(_0x17d4d0,_0x28ce98,_0x122bf0){return client[_0x14ea('0x4')]('UpdateVoiceAgentReport',{'body':_0x17d4d0,'options':{'where':{'uniqueid':_0x28ce98,'interface':_0x122bf0,'agentcomplete':!![]}},'log':_0x14ea('0x5')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf2ec=['YYYY-MM-DD\x20HH:mm:ss','type','disposition','duration','billableseconds','GetVoiceCallReports','moment','../client','create','Request','calleridnum','context','callerid','CreateVoiceCallReport','getVoiceCallReports','GetVoiceCallReport','outbound','day','format','endOf'];(function(_0xac151d,_0x4ea1d2){var _0x111dba=function(_0x13d7f4){while(--_0x13d7f4){_0xac151d['push'](_0xac151d['shift']());}};_0x111dba(++_0x4ea1d2);}(_0xf2ec,0xe2));var _0xcf2e=function(_0x2efd3a,_0x539dec){_0x2efd3a=_0x2efd3a-0x0;var _0xf5e581=_0xf2ec[_0x2efd3a];return _0xf5e581;};'use strict';var moment=require(_0xcf2e('0x0'));var util=require('util');var _=require('lodash');var client=require(_0xcf2e('0x1'));exports[_0xcf2e('0x2')]=function(_0x4f9a6c){return client[_0xcf2e('0x3')]('CreateVoiceCallReport',{'body':_['merge'](_0x4f9a6c,{'source':_0x4f9a6c[_0xcf2e('0x4')],'destinationcontext':_0x4f9a6c[_0xcf2e('0x5')],'callerid':_0x4f9a6c[_0xcf2e('0x6')],'amaflags':'DOCUMENTATION'}),'log':_0xcf2e('0x7')});};exports[_0xcf2e('0x8')]=function(){return function(){return client[_0xcf2e('0x3')](_0xcf2e('0x9'),{'options':{'where':{'type':[_0xcf2e('0xa')],'createdAt':{'$between':[moment()['startOf'](_0xcf2e('0xb'))[_0xcf2e('0xc')]('YYYY-MM-DD\x20HH:mm:ss'),moment()[_0xcf2e('0xd')]('day')[_0xcf2e('0xc')](_0xcf2e('0xe'))]}},'attributes':[_0xcf2e('0xf'),_0xcf2e('0x10'),_0xcf2e('0x11'),_0xcf2e('0x12')]},'log':_0xcf2e('0x13')});};};
\ No newline at end of file
+var _0x8aaa=['outbound','startOf','day','YYYY-MM-DD\x20HH:mm:ss','endOf','disposition','duration','GetVoiceCallReports','moment','util','lodash','../client','merge','context','callerid','DOCUMENTATION','CreateVoiceCallReport','Request','GetVoiceCallReport'];(function(_0xd7efd9,_0x140d68){var _0x5cb4af=function(_0x2bd937){while(--_0x2bd937){_0xd7efd9['push'](_0xd7efd9['shift']());}};_0x5cb4af(++_0x140d68);}(_0x8aaa,0x14b));var _0xa8aa=function(_0x3de7e0,_0x28cbff){_0x3de7e0=_0x3de7e0-0x0;var _0x11d0b3=_0x8aaa[_0x3de7e0];return _0x11d0b3;};'use strict';var moment=require(_0xa8aa('0x0'));var util=require(_0xa8aa('0x1'));var _=require(_0xa8aa('0x2'));var client=require(_0xa8aa('0x3'));exports['create']=function(_0x536e03){return client['Request']('CreateVoiceCallReport',{'body':_[_0xa8aa('0x4')](_0x536e03,{'source':_0x536e03['calleridnum'],'destinationcontext':_0x536e03[_0xa8aa('0x5')],'callerid':_0x536e03[_0xa8aa('0x6')],'amaflags':_0xa8aa('0x7')}),'log':_0xa8aa('0x8')});};exports['getVoiceCallReports']=function(){return function(){return client[_0xa8aa('0x9')](_0xa8aa('0xa'),{'options':{'where':{'type':[_0xa8aa('0xb')],'createdAt':{'$between':[moment()[_0xa8aa('0xc')](_0xa8aa('0xd'))['format'](_0xa8aa('0xe')),moment()[_0xa8aa('0xf')](_0xa8aa('0xd'))['format'](_0xa8aa('0xe'))]}},'attributes':['type',_0xa8aa('0x10'),_0xa8aa('0x11'),'billableseconds']},'log':_0xa8aa('0x12')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2a7e=['Request','CreateVoiceDialReport','create'];(function(_0xbc2974,_0xec3342){var _0x3a5b4f=function(_0x5ec5b5){while(--_0x5ec5b5){_0xbc2974['push'](_0xbc2974['shift']());}};_0x3a5b4f(++_0xec3342);}(_0x2a7e,0xbf));var _0xe2a7=function(_0x4b913d,_0x110dc1){_0x4b913d=_0x4b913d-0x0;var _0x3926d4=_0x2a7e[_0x4b913d];return _0x3926d4;};'use strict';var client=require('../client');exports[_0xe2a7('0x0')]=function(_0xaf4fec){return client[_0xe2a7('0x1')](_0xe2a7('0x2'),{'body':_0xaf4fec,'log':_0xe2a7('0x2')});};
\ No newline at end of file
+var _0x0375=['../client','CreateVoiceDialReport'];(function(_0x40a045,_0x516f0e){var _0x1a687c=function(_0x48c9fe){while(--_0x48c9fe){_0x40a045['push'](_0x40a045['shift']());}};_0x1a687c(++_0x516f0e);}(_0x0375,0x14c));var _0x5037=function(_0x4a0675,_0x33d253){_0x4a0675=_0x4a0675-0x0;var _0x26bb4f=_0x0375[_0x4a0675];return _0x26bb4f;};'use strict';var client=require(_0x5037('0x0'));exports['create']=function(_0x385054){return client['Request'](_0x5037('0x1'),{'body':_0x385054,'log':_0x5037('0x1')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x915a=['exten','../client','getVoiceExtensions','Request','GetVoiceExtension'];(function(_0x3839ab,_0x1a20a0){var _0x11daff=function(_0x38dff4){while(--_0x38dff4){_0x3839ab['push'](_0x3839ab['shift']());}};_0x11daff(++_0x1a20a0);}(_0x915a,0x1d2));var _0xa915=function(_0x80eb99,_0xf5b711){_0x80eb99=_0x80eb99-0x0;var _0x398203=_0x915a[_0x80eb99];return _0x398203;};'use strict';var client=require(_0xa915('0x0'));exports[_0xa915('0x1')]=function(){return function(){return client[_0xa915('0x2')](_0xa915('0x3'),{'options':{'raw':!![],'attributes':['id',_0xa915('0x4'),'recordingFormat'],'where':{'VoiceExtensionId':null}},'log':_0xa915('0x1')});};};
\ No newline at end of file
+var _0x9c5e=['exten','../client','getVoiceExtensions','Request','GetVoiceExtension'];(function(_0x39fb3e,_0x3cdb63){var _0x4f5f15=function(_0xb2bec0){while(--_0xb2bec0){_0x39fb3e['push'](_0x39fb3e['shift']());}};_0x4f5f15(++_0x3cdb63);}(_0x9c5e,0x9c));var _0xe9c5=function(_0x2cdf3d,_0x5193ba){_0x2cdf3d=_0x2cdf3d-0x0;var _0x4943b4=_0x9c5e[_0x2cdf3d];return _0x4943b4;};'use strict';var client=require(_0xe9c5('0x0'));exports[_0xe9c5('0x1')]=function(){return function(){return client[_0xe9c5('0x2')](_0xe9c5('0x3'),{'options':{'raw':!![],'attributes':['id',_0xe9c5('0x4'),'recordingFormat'],'where':{'VoiceExtensionId':null}},'log':'getVoiceExtensions'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6c65=['callerid','active','Interval','Intervals','../client','getVoiceQueues','Request','GetVoiceQueue','name','acw','autopause','monitor_format','type','dialActive','dialMethod','dialLimitQueue','dialPowerLevel','dialPredictiveOptimization','dialPredictiveOptimizationPercentage','dialPredictiveInterval','dialOriginateCallerIdNumber','dialOriginateTimeout','dialQueueOptions','dialQueueProject','dialCongestionMaxRetry','dialCongestionRetryFrequency','dialBusyMaxRetry','dialBusyRetryFrequency','dialNoAnswerMaxRetry','dialGlobalMaxRetry','dialPrefix','dialCheckDuplicateType','dialAMDActive','dialAMDInitialSilence','dialAMDAfterGreetingSilence','dialAMDMinWordLength','dialAMDMaximumNumberOfWords','timeout','dialRecallInQueue','dialAgiAfterHangupAgent','dialQueueProject2','strategy','dialCutDigit','dialNoSuchNumberMaxRetry','dialDropMaxRetry','dialDropRetryFrequency','dialAbandonedMaxRetry','dialAbandonedRetryFrequency','dialMachineRetryFrequency','dialAgentRejectMaxRetry','dialAgentRejectRetryFrequency','mandatoryDisposition','dialPredictiveIntervalMaxThreshold','dialPreviewAutoRecallMe','Trunk','Pause','mandatoryDispositionPause','TrunkBackup'];(function(_0x45662d,_0x6c55bf){var _0x22083d=function(_0x47906f){while(--_0x47906f){_0x45662d['push'](_0x45662d['shift']());}};_0x22083d(++_0x6c55bf);}(_0x6c65,0x78));var _0x56c6=function(_0x4286b7,_0x2fdb8e){_0x4286b7=_0x4286b7-0x0;var _0x597fd1=_0x6c65[_0x4286b7];return _0x597fd1;};'use strict';var client=require(_0x56c6('0x0'));exports[_0x56c6('0x1')]=function(){return function(){return client[_0x56c6('0x2')](_0x56c6('0x3'),{'options':{'raw':![],'attributes':['id',_0x56c6('0x4'),_0x56c6('0x5'),'acwTimeout',_0x56c6('0x6'),_0x56c6('0x7'),_0x56c6('0x8'),_0x56c6('0x9'),_0x56c6('0xa'),'dialLimitChannel',_0x56c6('0xb'),_0x56c6('0xc'),_0x56c6('0xd'),_0x56c6('0xe'),_0x56c6('0xf'),'dialOriginateCallerIdName',_0x56c6('0x10'),_0x56c6('0x11'),_0x56c6('0x12'),'dialQueueTimeout',_0x56c6('0x13'),_0x56c6('0x14'),_0x56c6('0x15'),_0x56c6('0x16'),_0x56c6('0x17'),_0x56c6('0x18'),'dialNoAnswerRetryFrequency',_0x56c6('0x19'),'dialTimezone','dialGlobalInterval',_0x56c6('0x1a'),_0x56c6('0x1b'),_0x56c6('0x1c'),_0x56c6('0x1d'),'dialAMDGreeting',_0x56c6('0x1e'),'dialAMDTotalAnalysisTime',_0x56c6('0x1f'),'dialAMDBetweenWordsSilence',_0x56c6('0x20'),'dialAMDSilenceThreshold','dialAMDMaximumWordLength',_0x56c6('0x21'),'dialRecallMeTimeout',_0x56c6('0x22'),'dialOrderByScheduledAt',_0x56c6('0x23'),'dialAgiAfterHangupClient',_0x56c6('0x24'),'monitor_format',_0x56c6('0x25'),'dialRandomLastDigitCallerIdNumber',_0x56c6('0x26'),_0x56c6('0x27'),'dialNoSuchNumberRetryFrequency',_0x56c6('0x28'),_0x56c6('0x29'),_0x56c6('0x2a'),_0x56c6('0x2b'),'dialMachineMaxRetry',_0x56c6('0x2c'),_0x56c6('0x2d'),_0x56c6('0x2e'),_0x56c6('0x2f'),_0x56c6('0x30'),'dialPredictiveIntervalMinThreshold',_0x56c6('0x31')],'include':[{'model':_0x56c6('0x32'),'as':'Trunk','attributes':['id',_0x56c6('0x4'),'callerid','active']},{'model':_0x56c6('0x33'),'as':_0x56c6('0x34'),'attributes':['id',_0x56c6('0x4')]},{'model':'Trunk','as':_0x56c6('0x35'),'attributes':['id',_0x56c6('0x4'),_0x56c6('0x36'),_0x56c6('0x37')]},{'model':_0x56c6('0x38'),'as':_0x56c6('0x38'),'attributes':['id','name'],'include':[{'model':'Interval','as':_0x56c6('0x39'),'attributes':['id',_0x56c6('0x4'),'interval']}]}]},'log':_0x56c6('0x1')});};};
\ No newline at end of file
+var _0x1561=['dialNoAnswerRetryFrequency','dialTimezone','dialGlobalInterval','dialAMDActive','dialAMDGreeting','dialAMDAfterGreetingSilence','dialAMDBetweenWordsSilence','dialAMDMaximumNumberOfWords','dialAMDSilenceThreshold','dialRecallMeTimeout','dialRecallInQueue','dialOrderByScheduledAt','dialAgiAfterHangupAgent','dialAgiAfterHangupClient','dialQueueProject2','strategy','dialRandomLastDigitCallerIdNumber','dialCutDigit','dialNoSuchNumberMaxRetry','dialDropMaxRetry','dialDropRetryFrequency','dialAbandonedMaxRetry','dialMachineMaxRetry','dialMachineRetryFrequency','dialAgentRejectMaxRetry','dialAgentRejectRetryFrequency','mandatoryDisposition','dialPredictiveIntervalMaxThreshold','dialPredictiveIntervalMinThreshold','dialPreviewAutoRecallMe','Trunk','callerid','active','Pause','TrunkBackup','Interval','Intervals','interval','getVoiceQueues','Request','GetVoiceQueue','name','acw','acwTimeout','monitor_format','type','dialActive','dialMethod','dialLimitQueue','dialPredictiveOptimization','dialPredictiveOptimizationPercentage','dialPredictiveInterval','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialQueueOptions','dialCongestionMaxRetry','dialCongestionRetryFrequency','dialBusyRetryFrequency'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x1561,0x1bd));var _0x1156=function(_0x5ebe9a,_0x3924da){_0x5ebe9a=_0x5ebe9a-0x0;var _0x392645=_0x1561[_0x5ebe9a];return _0x392645;};'use strict';var client=require('../client');exports['getVoiceQueues']=function(){return function(){return client[_0x1156('0x0')](_0x1156('0x1'),{'options':{'raw':![],'attributes':['id',_0x1156('0x2'),_0x1156('0x3'),_0x1156('0x4'),'autopause',_0x1156('0x5'),_0x1156('0x6'),_0x1156('0x7'),_0x1156('0x8'),'dialLimitChannel',_0x1156('0x9'),'dialPowerLevel',_0x1156('0xa'),_0x1156('0xb'),_0x1156('0xc'),_0x1156('0xd'),_0x1156('0xe'),'dialOriginateTimeout',_0x1156('0xf'),'dialQueueTimeout','dialQueueProject',_0x1156('0x10'),_0x1156('0x11'),'dialBusyMaxRetry',_0x1156('0x12'),'dialNoAnswerMaxRetry',_0x1156('0x13'),'dialGlobalMaxRetry',_0x1156('0x14'),_0x1156('0x15'),'dialPrefix','dialCheckDuplicateType',_0x1156('0x16'),'dialAMDInitialSilence',_0x1156('0x17'),_0x1156('0x18'),'dialAMDTotalAnalysisTime','dialAMDMinWordLength',_0x1156('0x19'),_0x1156('0x1a'),_0x1156('0x1b'),'dialAMDMaximumWordLength','timeout',_0x1156('0x1c'),_0x1156('0x1d'),_0x1156('0x1e'),_0x1156('0x1f'),_0x1156('0x20'),_0x1156('0x21'),_0x1156('0x5'),_0x1156('0x22'),_0x1156('0x23'),_0x1156('0x24'),_0x1156('0x25'),'dialNoSuchNumberRetryFrequency',_0x1156('0x26'),_0x1156('0x27'),_0x1156('0x28'),'dialAbandonedRetryFrequency',_0x1156('0x29'),_0x1156('0x2a'),_0x1156('0x2b'),_0x1156('0x2c'),_0x1156('0x2d'),_0x1156('0x2e'),_0x1156('0x2f'),_0x1156('0x30')],'include':[{'model':'Trunk','as':_0x1156('0x31'),'attributes':['id','name',_0x1156('0x32'),_0x1156('0x33')]},{'model':_0x1156('0x34'),'as':'mandatoryDispositionPause','attributes':['id',_0x1156('0x2')]},{'model':_0x1156('0x31'),'as':_0x1156('0x35'),'attributes':['id',_0x1156('0x2'),_0x1156('0x32'),_0x1156('0x33')]},{'model':'Interval','as':_0x1156('0x36'),'attributes':['id',_0x1156('0x2')],'include':[{'model':_0x1156('0x36'),'as':_0x1156('0x37'),'attributes':['id',_0x1156('0x2'),_0x1156('0x38')]}]}]},'log':_0x1156('0x39')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['queuecallerexit','queuecallerexitAt','moment','lodash','../client','Request','CreateVoiceQueueReport','getVoiceQueueReports','GetVoiceQueueReport','startOf','format','YYYY-MM-DD\x20HH:mm:ss','endOf','queuecallerjoinAt','queuecallerleaveAt','queuecallercomplete','queuecallercompleteAt'];(function(_0x4c8c10,_0x5dbec3){var _0x307aa4=function(_0x5e9425){while(--_0x5e9425){_0x4c8c10['push'](_0x4c8c10['shift']());}};_0x307aa4(++_0x5dbec3);}(_0xa9e0,0x123));var _0x0a9e=function(_0x4709c0,_0x3396c7){_0x4709c0=_0x4709c0-0x0;var _0x13348b=_0xa9e0[_0x4709c0];return _0x13348b;};'use strict';var moment=require(_0x0a9e('0x0'));var _=require(_0x0a9e('0x1'));var client=require(_0x0a9e('0x2'));exports['create']=function(_0x550fbc){return client[_0x0a9e('0x3')]('CreateVoiceQueueReport',{'body':_0x550fbc,'log':_0x0a9e('0x4')});};exports[_0x0a9e('0x5')]=function(){return function(){return client[_0x0a9e('0x3')](_0x0a9e('0x6'),{'options':{'where':{'createdAt':{'$between':[moment()[_0x0a9e('0x7')]('day')[_0x0a9e('0x8')](_0x0a9e('0x9')),moment()[_0x0a9e('0xa')]('day')['format'](_0x0a9e('0x9'))]}},'attributes':['uniqueid','queue',_0x0a9e('0xb'),_0x0a9e('0xc'),_0x0a9e('0xd'),_0x0a9e('0xe'),_0x0a9e('0xf'),_0x0a9e('0x10'),'queuecallerabandon','queuecallerabandonAt']},'log':'GetVoiceQueueReports'});};};
\ No newline at end of file
+var _0xa9e0=['queuecallerexit','queuecallerexitAt','moment','lodash','../client','Request','CreateVoiceQueueReport','getVoiceQueueReports','GetVoiceQueueReport','startOf','format','YYYY-MM-DD\x20HH:mm:ss','endOf','queuecallerjoinAt','queuecallerleaveAt','queuecallercomplete','queuecallercompleteAt'];(function(_0x227657,_0x380a6c){var _0x3a32d4=function(_0x2ff4c9){while(--_0x2ff4c9){_0x227657['push'](_0x227657['shift']());}};_0x3a32d4(++_0x380a6c);}(_0xa9e0,0x123));var _0x0a9e=function(_0xf71120,_0x25b7f9){_0xf71120=_0xf71120-0x0;var _0xbe2fd3=_0xa9e0[_0xf71120];return _0xbe2fd3;};'use strict';var moment=require(_0x0a9e('0x0'));var _=require(_0x0a9e('0x1'));var client=require(_0x0a9e('0x2'));exports['create']=function(_0x550fbc){return client[_0x0a9e('0x3')]('CreateVoiceQueueReport',{'body':_0x550fbc,'log':_0x0a9e('0x4')});};exports[_0x0a9e('0x5')]=function(){return function(){return client[_0x0a9e('0x3')](_0x0a9e('0x6'),{'options':{'where':{'createdAt':{'$between':[moment()[_0x0a9e('0x7')]('day')[_0x0a9e('0x8')](_0x0a9e('0x9')),moment()[_0x0a9e('0xa')]('day')['format'](_0x0a9e('0x9'))]}},'attributes':['uniqueid','queue',_0x0a9e('0xb'),_0x0a9e('0xc'),_0x0a9e('0xd'),_0x0a9e('0xe'),_0x0a9e('0xf'),_0x0a9e('0x10'),'queuecallerabandon','queuecallerabandonAt']},'log':'GetVoiceQueueReports'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0051=['Request','GetVoiceQueueRtPauses','getVoiceQueueRtPauses'];(function(_0x5c68d4,_0x1e857d){var _0x504e7c=function(_0x7a63a6){while(--_0x7a63a6){_0x5c68d4['push'](_0x5c68d4['shift']());}};_0x504e7c(++_0x1e857d);}(_0x0051,0xbf));var _0x1005=function(_0x438e18,_0x52e2c5){_0x438e18=_0x438e18-0x0;var _0x50c6ea=_0x0051[_0x438e18];return _0x50c6ea;};'use strict';var client=require('../client');exports[_0x1005('0x0')]=function(_0x1e9a91){return function(){return client[_0x1005('0x1')](_0x1005('0x2'),{'options':{'where':{'VoiceQueueId':_0x1e9a91,'paused':!![]},'raw':!![]},'log':_0x1005('0x0')});};};
\ No newline at end of file
+var _0x5d8e=['getVoiceQueueRtPauses','Request','GetVoiceQueueRtPauses'];(function(_0x1d24eb,_0x12295b){var _0x1dc576=function(_0x4d5770){while(--_0x4d5770){_0x1d24eb['push'](_0x1d24eb['shift']());}};_0x1dc576(++_0x12295b);}(_0x5d8e,0xbd));var _0xe5d8=function(_0x24d15a,_0x56f48d){_0x24d15a=_0x24d15a-0x0;var _0x3debf5=_0x5d8e[_0x24d15a];return _0x3debf5;};'use strict';var client=require('../client');exports[_0xe5d8('0x0')]=function(_0x6224e2){return function(){return client[_0xe5d8('0x1')](_0xe5d8('0x2'),{'options':{'where':{'VoiceQueueId':_0x6224e2,'paused':!![]},'raw':!![]},'log':_0xe5d8('0x0')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9957=['CreateVoiceRecording','merge','monitorFilename','lodash','../client','create'];(function(_0x236dfe,_0x4491a9){var _0x36cf7e=function(_0x5e1857){while(--_0x5e1857){_0x236dfe['push'](_0x236dfe['shift']());}};_0x36cf7e(++_0x4491a9);}(_0x9957,0x93));var _0x7995=function(_0x2dafbe,_0x5d04de){_0x2dafbe=_0x2dafbe-0x0;var _0x58a45a=_0x9957[_0x2dafbe];return _0x58a45a;};'use strict';var _=require(_0x7995('0x0'));var client=require(_0x7995('0x1'));exports[_0x7995('0x2')]=function(_0x10a05d){return client['Request'](_0x7995('0x3'),{'body':_[_0x7995('0x4')](_0x10a05d,{'value':_0x10a05d[_0x7995('0x5')]}),'log':_0x7995('0x3')});};
\ No newline at end of file
+var _0x7a54=['create','Request','CreateVoiceRecording','monitorFilename','lodash','../client'];(function(_0x4ea032,_0x44db51){var _0xa7421a=function(_0x34d9ab){while(--_0x34d9ab){_0x4ea032['push'](_0x4ea032['shift']());}};_0xa7421a(++_0x44db51);}(_0x7a54,0x106));var _0x47a5=function(_0x2efd23,_0x21958d){_0x2efd23=_0x2efd23-0x0;var _0x42fbcc=_0x7a54[_0x2efd23];return _0x42fbcc;};'use strict';var _=require(_0x47a5('0x0'));var client=require(_0x47a5('0x1'));exports[_0x47a5('0x2')]=function(_0x58157c){return client[_0x47a5('0x3')](_0x47a5('0x4'),{'body':_['merge'](_0x58157c,{'value':_0x58157c[_0x47a5('0x5')]}),'log':_0x47a5('0x4')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x84fe=['isexternal','context','CreateVoiceTransferReport','attendedTransfer','origtransfererchannel','origtransferercalleridname','secondtransfererconnectedlinenum','secondtransfererconnectedlinename','origtransfereraccountcode','secondtransferercontext','secondtransfererexten','origtransfererlinkedid','transfertargetchannel','transfertargetcalleridnum','transfertargetcalleridname','transfertargetaccountcode','transfertargetcontext','transfertargetexten','attended','../client','transfers','Request','transfererchannel','transferercalleridnum','transferercalleridname','transfererconnectedlinenum','transfererconnectedlinename','transferercontext','transfererexten','transfererlinkedid','transfereechannel','transfereecalleridnum','transfereeconnectedlinenum','transfereeconnectedlinename','transfereeaccountcode','transfereecontext','transfereeexten','transfereelinkedid'];(function(_0xaf77a1,_0x3a2b08){var _0xce1b6d=function(_0x15935f){while(--_0x15935f){_0xaf77a1['push'](_0xaf77a1['shift']());}};_0xce1b6d(++_0x3a2b08);}(_0x84fe,0x143));var _0xe84f=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0x84fe[_0x122ef9];return _0x42fba0;};'use strict';var client=require(_0xe84f('0x0'));exports[_0xe84f('0x1')]={};exports['blindTransfer']=function(_0x4283c2){return client[_0xe84f('0x2')]('CreateVoiceTransferReport',{'body':{'result':_0x4283c2['result'],'transfererchannel':_0x4283c2[_0xe84f('0x3')],'transferercalleridnum':_0x4283c2[_0xe84f('0x4')],'transferercalleridname':_0x4283c2[_0xe84f('0x5')],'transfererconnectedlinenum':_0x4283c2[_0xe84f('0x6')],'transfererconnectedlinename':_0x4283c2[_0xe84f('0x7')],'transfereraccountcode':_0x4283c2['transfereraccountcode'],'transferercontext':_0x4283c2[_0xe84f('0x8')],'transfererexten':_0x4283c2[_0xe84f('0x9')],'transfererlinkedid':_0x4283c2[_0xe84f('0xa')],'transfereechannel':_0x4283c2[_0xe84f('0xb')],'transfereecalleridnum':_0x4283c2[_0xe84f('0xc')],'transfereecalleridname':_0x4283c2['transfereecalleridname'],'transfereeconnectedlinenum':_0x4283c2[_0xe84f('0xd')],'transfereeconnectedlinename':_0x4283c2[_0xe84f('0xe')],'transfereeaccountcode':_0x4283c2[_0xe84f('0xf')],'transfereecontext':_0x4283c2[_0xe84f('0x10')],'transfereeexten':_0x4283c2[_0xe84f('0x11')],'transfereelinkedid':_0x4283c2[_0xe84f('0x12')],'isexternal':_0x4283c2[_0xe84f('0x13')],'context':_0x4283c2[_0xe84f('0x14')],'extension':_0x4283c2['extension'],'type':'blind'},'log':_0xe84f('0x15')});};exports[_0xe84f('0x16')]=function(_0x227af0){return client[_0xe84f('0x2')](_0xe84f('0x15'),{'body':{'result':_0x227af0['result'],'transfererchannel':_0x227af0[_0xe84f('0x17')],'transferercalleridnum':_0x227af0['origtransferercalleridnum'],'transferercalleridname':_0x227af0[_0xe84f('0x18')],'transfererconnectedlinenum':_0x227af0[_0xe84f('0x19')],'transfererconnectedlinename':_0x227af0[_0xe84f('0x1a')],'transfereraccountcode':_0x227af0[_0xe84f('0x1b')],'transferercontext':_0x227af0[_0xe84f('0x1c')],'transfererexten':_0x227af0[_0xe84f('0x1d')],'transfererlinkedid':_0x227af0[_0xe84f('0x1e')],'transfereechannel':_0x227af0[_0xe84f('0x1f')],'transfereecalleridnum':_0x227af0[_0xe84f('0x20')],'transfereecalleridname':_0x227af0[_0xe84f('0x21')],'transfereeconnectedlinenum':_0x227af0['transfertargetconnectedlinenum'],'transfereeconnectedlinename':_0x227af0['transfertargetconnectedlinename'],'transfereeaccountcode':_0x227af0[_0xe84f('0x22')],'transfereecontext':_0x227af0[_0xe84f('0x23')],'transfereeexten':_0x227af0[_0xe84f('0x24')],'transfereelinkedid':_0x227af0['transfertargetlinkedid'],'isexternal':_0x227af0[_0xe84f('0x13')],'context':_0x227af0['origtransferercontext'],'extension':_0x227af0['origtransfererexten'],'type':_0xe84f('0x25')},'log':_0xe84f('0x15')});};
\ No newline at end of file
+var _0x57a4=['transfereechannel','transfereecalleridnum','transfereecalleridname','transfereeconnectedlinenum','transfereeconnectedlinename','transfereeaccountcode','transfereeexten','transfereelinkedid','isexternal','context','blind','CreateVoiceTransferReport','attendedTransfer','origtransferercalleridname','secondtransfererconnectedlinenum','secondtransfererconnectedlinename','origtransfereraccountcode','secondtransferercontext','secondtransfererexten','transfertargetchannel','transfertargetcalleridnum','transfertargetconnectedlinenum','transfertargetconnectedlinename','transfertargetaccountcode','transfertargetexten','transfertargetlinkedid','origtransfererexten','../client','Request','result','transferercalleridnum','transferercalleridname','transfererconnectedlinenum','transfererconnectedlinename','transfereraccountcode','transferercontext','transfererexten','transfererlinkedid'];(function(_0x59075d,_0x10fb70){var _0x13b1f3=function(_0x14eba2){while(--_0x14eba2){_0x59075d['push'](_0x59075d['shift']());}};_0x13b1f3(++_0x10fb70);}(_0x57a4,0x67));var _0x457a=function(_0x398b58,_0x5c603f){_0x398b58=_0x398b58-0x0;var _0x3c1e3a=_0x57a4[_0x398b58];return _0x3c1e3a;};'use strict';var client=require(_0x457a('0x0'));exports['transfers']={};exports['blindTransfer']=function(_0xf6388c){return client[_0x457a('0x1')]('CreateVoiceTransferReport',{'body':{'result':_0xf6388c[_0x457a('0x2')],'transfererchannel':_0xf6388c['transfererchannel'],'transferercalleridnum':_0xf6388c[_0x457a('0x3')],'transferercalleridname':_0xf6388c[_0x457a('0x4')],'transfererconnectedlinenum':_0xf6388c[_0x457a('0x5')],'transfererconnectedlinename':_0xf6388c[_0x457a('0x6')],'transfereraccountcode':_0xf6388c[_0x457a('0x7')],'transferercontext':_0xf6388c[_0x457a('0x8')],'transfererexten':_0xf6388c[_0x457a('0x9')],'transfererlinkedid':_0xf6388c[_0x457a('0xa')],'transfereechannel':_0xf6388c[_0x457a('0xb')],'transfereecalleridnum':_0xf6388c[_0x457a('0xc')],'transfereecalleridname':_0xf6388c[_0x457a('0xd')],'transfereeconnectedlinenum':_0xf6388c[_0x457a('0xe')],'transfereeconnectedlinename':_0xf6388c[_0x457a('0xf')],'transfereeaccountcode':_0xf6388c[_0x457a('0x10')],'transfereecontext':_0xf6388c['transfereecontext'],'transfereeexten':_0xf6388c[_0x457a('0x11')],'transfereelinkedid':_0xf6388c[_0x457a('0x12')],'isexternal':_0xf6388c[_0x457a('0x13')],'context':_0xf6388c[_0x457a('0x14')],'extension':_0xf6388c['extension'],'type':_0x457a('0x15')},'log':_0x457a('0x16')});};exports[_0x457a('0x17')]=function(_0x46423b){return client['Request'](_0x457a('0x16'),{'body':{'result':_0x46423b[_0x457a('0x2')],'transfererchannel':_0x46423b['origtransfererchannel'],'transferercalleridnum':_0x46423b['origtransferercalleridnum'],'transferercalleridname':_0x46423b[_0x457a('0x18')],'transfererconnectedlinenum':_0x46423b[_0x457a('0x19')],'transfererconnectedlinename':_0x46423b[_0x457a('0x1a')],'transfereraccountcode':_0x46423b[_0x457a('0x1b')],'transferercontext':_0x46423b[_0x457a('0x1c')],'transfererexten':_0x46423b[_0x457a('0x1d')],'transfererlinkedid':_0x46423b['origtransfererlinkedid'],'transfereechannel':_0x46423b[_0x457a('0x1e')],'transfereecalleridnum':_0x46423b[_0x457a('0x1f')],'transfereecalleridname':_0x46423b['transfertargetcalleridname'],'transfereeconnectedlinenum':_0x46423b[_0x457a('0x20')],'transfereeconnectedlinename':_0x46423b[_0x457a('0x21')],'transfereeaccountcode':_0x46423b[_0x457a('0x22')],'transfereecontext':_0x46423b['transfertargetcontext'],'transfereeexten':_0x46423b[_0x457a('0x23')],'transfereelinkedid':_0x46423b[_0x457a('0x24')],'isexternal':_0x46423b[_0x457a('0x13')],'context':_0x46423b['origtransferercontext'],'extension':_0x46423b[_0x457a('0x25')],'type':'attended'},'log':'CreateVoiceTransferReport'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x627e=['dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialOriginateTimeout','dialPrefix','outboundAnswerAgiCallsDay','outboundAnswerCallsDay','outboundBlacklistCallsDay','outboundCongestionCallsDay','outboundDropCallsDayACS','outboundDropCallsDayTimeout','outboundNoAnswerCallsDay','outboundNoSuchCallsDay','outboundOriginateFailureCallsDay','outboundReCallsDay','outboundRejectCallsDay','outboundUnknownCallsDay','predictiveIntervalAnsweredCalls','predictiveIntervalAvgHoldtime','predictiveIntervalAvgTalktime','predictiveIntervalDroppedCallsCallersExit','predictiveIntervalDroppedCallsTimeout','predictiveIntervalErlangCalls','predictiveIntervalErlangCallsDroppedCalls','predictiveIntervalHitRate','predictiveIntervalMultiplicativeFactor','originated','erlangCalls','erlangCallToSecond','erlangAbandonmentRate','startPredictive','startProgressive','Trunk','active','Interval','push','find','omit','undefined','values','channels','isConnected','voicechannel','length','map','uniqueid','channel','format','%s.%s','monitors','/var/spool/asterisk/monitor/','toLowerCase','isNil','mixmonitorid','rec','status','MixMonitor\x20Success','Channel\x20doesn\x27t\x20exist','StopMixMonitor','destinationchannel','stop','filename','wav','StopMixMonitor\x20Success','queueChannels','voicequeuechannelhangup','voicequeuechannelredirect','Redirect','context','telephones','trunks','outboundChannels','campaigns','Event\x20name\x20mandatory','custom:','event','faxAccounts','send','127.0.0.1','AMI\x20RPC\x20server\x20listening\x20on\x20127.0.0.1:%d!','RPC\x20listening\x20on\x20port:','lodash','util','jayson/promise','validate','bluebird','../../../config/environment','../properties','../ami','SIP','name','timers','timer','updateAcw','agents','updateStatusRealtime','pause','QueuePause','error','asterisk','username','ami\x20disconnected','join','pick','module','action','Reload','Action','then','message','catch','Command','voiceQueues','hasOwnProperty','strategy','answered','loggedIn','sumDuration','sumHoldTime','total','unmanaged','waiting','loggedInDb','outbound','dialActive','dialMethod'];(function(_0xd91d47,_0x16722f){var _0x4740b2=function(_0x547653){while(--_0x547653){_0xd91d47['push'](_0xd91d47['shift']());}};_0x4740b2(++_0x16722f);}(_0x627e,0x14a));var _0xe627=function(_0x466439,_0x1780a8){_0x466439=_0x466439-0x0;var _0x282a73=_0x627e[_0x466439];return _0x282a73;};'use strict';var _=require(_0xe627('0x0'));var util=require(_0xe627('0x1'));var jayson=require(_0xe627('0x2'));var schema=require(_0xe627('0x3'));var BPromise=require(_0xe627('0x4'));var moment=require('moment');var config=require(_0xe627('0x5'));var properties=require(_0xe627('0x6'));var ami=require(_0xe627('0x7'));exports['listen']=function(_0x52923f,_0x4efcad,_0x1a1a3d){return new BPromise(function(_0x3f2791,_0x45e49a){var _0x2d4f63={'QueuePause':function(_0xd5016e){return new Promise(function(_0xe065b,_0x4bae52){var _0x3f2948=util['format']('%s/%s',_0xe627('0x8'),_0xd5016e[_0xe627('0x9')]);if(_0x52923f['timers']&&_0x52923f['timers'][_0x3f2948]&&_0x52923f[_0xe627('0xa')][_0x3f2948][_0xe627('0xb')]){_0x52923f[_0xe627('0xa')][_0x3f2948][_0xe627('0xc')]();}if(_0x52923f[_0xe627('0xd')][_0x3f2948]){_0x52923f[_0xe627('0xd')][_0x3f2948][_0xe627('0xe')]({'statePause':_0xd5016e[_0xe627('0xf')]?!![]:![]});}_0xe065b({'code':0xc8,'message':_0xe627('0x10')});});},'Reload':function(_0x582190){var _0x419fdf=this;return new Promise(function(_0x1983f8,_0x9f7eef){if(ami['isConnected']()==![]){return _0x9f7eef(_0x419fdf[_0xe627('0x11')](0x1f4,[config[_0xe627('0x12')]['ip'],config[_0xe627('0x12')][_0xe627('0x13')],_0xe627('0x14')][_0xe627('0x15')]('\x20')));}_0x582190=_[_0xe627('0x16')](_0x582190,_['keys'](properties[_0xe627('0x17')]));_0x582190[_0xe627('0x18')]=_0xe627('0x19');return ami[_0xe627('0x1a')](_0x582190)[_0xe627('0x1b')](function(_0x30da02){_0x1983f8({'code':0xc8,'message':_0x30da02[_0xe627('0x1c')]});})[_0xe627('0x1d')](function(_0x538b22){_0x9f7eef(_0x419fdf[_0xe627('0x11')](0x1f5,_0x538b22['message']));});});},'Command':function(_0x2a4c68){var _0x565213=this;return new Promise(function(_0x4d8881,_0x3dde00){if(ami['isConnected']()==![]){return _0x3dde00(_0x565213[_0xe627('0x11')](0x1f4,[config[_0xe627('0x12')]['ip'],config['asterisk']['username'],'ami\x20disconnected'][_0xe627('0x15')]('\x20')));}_0x2a4c68=_[_0xe627('0x16')](_0x2a4c68,'command');_0x2a4c68[_0xe627('0x18')]=_0xe627('0x1e');return ami['Action'](_0x2a4c68)[_0xe627('0x1b')](function(_0x29221b){_0x4d8881({'code':0xc8,'message':_0x29221b['content']});})[_0xe627('0x1d')](function(_0x19adbc){_0x3dde00(_0x565213[_0xe627('0x11')](0x1f5,_0x19adbc['message']));});});},'VoiceQueues':function(_0x2093c5){return new Promise(function(_0x313b03,_0x1a5081){var _0x3ddd8d=[];for(var _0x4b9ff9 in _0x52923f[_0xe627('0x1f')]){if(_0x52923f[_0xe627('0x1f')][_0xe627('0x20')](_0x4b9ff9)){var _0x29eb8e=_0x52923f[_0xe627('0x1f')][_0x4b9ff9];var _0x40ab91={'id':_0x29eb8e['id'],'name':_0x29eb8e[_0xe627('0x9')],'strategy':_0x29eb8e[_0xe627('0x21')],'answered':_0x29eb8e[_0xe627('0x22')],'available':_0x29eb8e['available'],'loggedIn':_0x29eb8e[_0xe627('0x23')],'pTalking':_0x29eb8e['pTalking'],'sumBillable':_0x29eb8e['sumBillable'],'sumDuration':_0x29eb8e[_0xe627('0x24')],'sumHoldTime':_0x29eb8e[_0xe627('0x25')]||0x0,'talking':_0x29eb8e['talking'],'total':_0x29eb8e[_0xe627('0x26')],'type':_0x29eb8e['type'],'unmanaged':_0x29eb8e[_0xe627('0x27')],'abandoned':_0x29eb8e['abandoned'],'waiting':_0x29eb8e[_0xe627('0x28')],'loggedInDb':_0x29eb8e[_0xe627('0x29')]};if(_0x29eb8e['type']===_0xe627('0x2a')){_0x40ab91['dialActive']=_0x29eb8e[_0xe627('0x2b')];_0x40ab91[_0xe627('0x2c')]=_0x29eb8e[_0xe627('0x2c')];_0x40ab91[_0xe627('0x2d')]=_0x29eb8e[_0xe627('0x2d')];_0x40ab91[_0xe627('0x2e')]=_0x29eb8e[_0xe627('0x2e')];_0x40ab91[_0xe627('0x2f')]=_0x29eb8e[_0xe627('0x2f')];_0x40ab91[_0xe627('0x30')]=_0x29eb8e[_0xe627('0x30')];_0x40ab91['temp']=_0x29eb8e['temp'];_0x40ab91[_0xe627('0x31')]=_0x29eb8e['outboundAnswerAgiCallsDay'];_0x40ab91[_0xe627('0x32')]=_0x29eb8e['outboundAnswerCallsDay'];_0x40ab91['outboundBlacklistCallsDay']=_0x29eb8e[_0xe627('0x33')];_0x40ab91['outboundBusyCallsDay']=_0x29eb8e['outboundBusyCallsDay'];_0x40ab91[_0xe627('0x34')]=_0x29eb8e[_0xe627('0x34')];_0x40ab91[_0xe627('0x35')]=_0x29eb8e['outboundDropCallsDayACS'];_0x40ab91['outboundDropCallsDayCallersExit']=_0x29eb8e['outboundDropCallsDayCallersExit'];_0x40ab91[_0xe627('0x36')]=_0x29eb8e['outboundDropCallsDayTimeout'];_0x40ab91[_0xe627('0x37')]=_0x29eb8e[_0xe627('0x37')];_0x40ab91['outboundNoSuchCallsDay']=_0x29eb8e[_0xe627('0x38')];_0x40ab91[_0xe627('0x39')]=_0x29eb8e['outboundOriginateFailureCallsDay'];_0x40ab91[_0xe627('0x3a')]=_0x29eb8e[_0xe627('0x3a')];_0x40ab91[_0xe627('0x3b')]=_0x29eb8e[_0xe627('0x3b')];_0x40ab91[_0xe627('0x3c')]=_0x29eb8e[_0xe627('0x3c')];_0x40ab91['predictiveIntervalAnsweredCalls']=_0x29eb8e[_0xe627('0x3d')];_0x40ab91['predictiveIntervalAvgHoldtime']=_0x29eb8e[_0xe627('0x3e')];_0x40ab91['predictiveIntervalAvgTalktime']=_0x29eb8e[_0xe627('0x3f')];_0x40ab91[_0xe627('0x40')]=_0x29eb8e[_0xe627('0x40')];_0x40ab91[_0xe627('0x41')]=_0x29eb8e[_0xe627('0x41')];_0x40ab91[_0xe627('0x42')]=_0x29eb8e[_0xe627('0x42')];_0x40ab91[_0xe627('0x43')]=_0x29eb8e[_0xe627('0x43')];_0x40ab91[_0xe627('0x44')]=_0x29eb8e[_0xe627('0x44')];_0x40ab91[_0xe627('0x45')]=_0x29eb8e[_0xe627('0x45')];_0x40ab91['predictiveIntervalPauses']=_0x29eb8e['predictiveIntervalPauses'];_0x40ab91['predictiveIntervalAvailable']=_0x29eb8e['predictiveIntervalAvailable'];_0x40ab91['predictiveIntervalTotalCalls']=_0x29eb8e['predictiveIntervalTotalCalls'];_0x40ab91[_0xe627('0x1c')]=_0x29eb8e['message'];_0x40ab91[_0xe627('0x46')]=_0x29eb8e['originated'];_0x40ab91[_0xe627('0x47')]=_0x29eb8e[_0xe627('0x47')];_0x40ab91[_0xe627('0x48')]=_0x29eb8e['erlangCallToSecond'];_0x40ab91['erlangAbandonmentRate']=_0x29eb8e[_0xe627('0x49')];_0x40ab91['erlangBusyFactor']=_0x29eb8e['erlangBusyFactor'];_0x40ab91[_0xe627('0x4a')]=_0x29eb8e['startPredictive'];_0x40ab91[_0xe627('0x4b')]=_0x29eb8e['startProgressive'];}if(_0x29eb8e['Trunk']){_0x40ab91[_0xe627('0x4c')]={'id':_0x29eb8e[_0xe627('0x4c')]['id'],'name':_0x29eb8e[_0xe627('0x4c')]['name'],'active':_0x29eb8e['Trunk'][_0xe627('0x4d')],'callerid':_0x29eb8e['Trunk']['callerid']};}if(_0x29eb8e[_0xe627('0x4e')]){_0x40ab91[_0xe627('0x4e')]={'id':_0x29eb8e[_0xe627('0x4e')]['id'],'name':_0x29eb8e[_0xe627('0x4e')][_0xe627('0x9')]};}_0x3ddd8d[_0xe627('0x4f')](_0x40ab91);}}_0x313b03({'count':_0x3ddd8d['length'],'rows':_0x3ddd8d});});},'UpdateVoiceQueue':function(_0x7e0476){return new Promise(function(_0xbf5fa3,_0x4c74a1){var _0x5d08e9=_[_0xe627('0x50')](_0x52923f[_0xe627('0x1f')],{'id':parseInt(_0x7e0476['id'])});var _0x1f6ee5=_[_0xe627('0x51')](_0x7e0476,['id']);if(_0x5d08e9){for(var _0x152076 in _0x1f6ee5){if(typeof _0x1f6ee5[_0x152076]!==_0xe627('0x52')&&typeof _0x5d08e9[_0x152076]!==_0xe627('0x52')){_0x5d08e9[_0x152076]=_0x1f6ee5[_0x152076];}}_0xbf5fa3(_0x5d08e9);}else{_0x4c74a1();}});},'VoiceChannels':function(_0x4e0b50){return new Promise(function(_0x97c5bf,_0x5dbdae){var _0x648456=_[_0xe627('0x53')](_0x52923f[_0xe627('0x54')]);_0x97c5bf({'count':_0x648456['length'],'rows':_0x648456});});},'VoiceChannelMixMonitor':function(_0x3ba3ed){var _0x5da478=this;return new Promise(function(_0x28d954,_0xbacc81){if(ami[_0xe627('0x55')]()==![]){return _0xbacc81(_0x5da478[_0xe627('0x11')](0x1f4,[config[_0xe627('0x12')]['ip'],config['asterisk'][_0xe627('0x13')],_0xe627('0x14')][_0xe627('0x15')]('\x20')));}var _0x386c1d=schema(properties[_0xe627('0x56')])[_0xe627('0x3')](_0x3ba3ed);if(_0x386c1d[_0xe627('0x57')]>0x0){return _0xbacc81(_0x5da478[_0xe627('0x11')](0x1f4,_[_0xe627('0x58')](_0x386c1d,_0xe627('0x1c'))['join'](',\x20')));}var _0x33f40b=_[_0xe627('0x50')](_0x52923f['channels'],{'uniqueid':_0x3ba3ed[_0xe627('0x59')]});if(_0x33f40b&&_0x33f40b[_0xe627('0x5a')]){var _0x4fc52c=util[_0xe627('0x5b')](_0xe627('0x5c'),_0x3ba3ed['filename']||_0x3ba3ed[_0xe627('0x59')],_0x3ba3ed[_0xe627('0x5b')]||'wav');return ami[_0xe627('0x1a')]({'action':'MixMonitor','channel':_0x33f40b['channel'],'file':_0x4fc52c,'options':'ai(mixmonitorid)'})['then'](function(_0x5ce19d){var _0x256b65=_[_0xe627('0x50')](_0x33f40b[_0xe627('0x5d')],{'filename':_0xe627('0x5e')+_0x4fc52c[_0xe627('0x5f')]()});if(_[_0xe627('0x60')](_0x256b65)){_0x33f40b['monitors'][_0xe627('0x4f')]({'filename':_0xe627('0x5e')+_0x4fc52c['toLowerCase'](),'createdAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'mixmonitorid':_0x5ce19d[_0xe627('0x61')],'status':_0xe627('0x62')});}else{_0x256b65[_0xe627('0x61')]=_0x5ce19d[_0xe627('0x61')];_0x256b65[_0xe627('0x63')]=_0xe627('0x62');}_0x28d954({'code':0xc8,'message':[_0x3ba3ed[_0xe627('0x59')],_0xe627('0x64'),_0x5ce19d['mixmonitorid']][_0xe627('0x15')]('\x20'),'mixmonitorid':_0x5ce19d['mixmonitorid']});})[_0xe627('0x1d')](function(_0x552bea){_0xbacc81(_0x5da478[_0xe627('0x11')](0x1f5,[_0x3ba3ed[_0xe627('0x59')],_0x552bea[_0xe627('0x1c')][_0xe627('0x5f')]()][_0xe627('0x15')]('\x20')));});}else{return _0xbacc81(_0x5da478[_0xe627('0x11')](0x1f5,_0xe627('0x65')));}});},'VoiceChannelStopMixMonitor':function(_0x36c13e){var _0x1f0d6c=this;return new Promise(function(_0x480ac3,_0xe4c06d){if(ami[_0xe627('0x55')]()==![]){return _0xe4c06d(_0x1f0d6c[_0xe627('0x11')](0x1f4,[config[_0xe627('0x12')]['ip'],config[_0xe627('0x12')]['username'],'ami\x20disconnected'][_0xe627('0x15')]('\x20')));}var _0x2e787e=schema(properties['voicechannel'])[_0xe627('0x3')](_0x36c13e);if(_0x2e787e[_0xe627('0x57')]>0x0){return _0xe4c06d(_0x1f0d6c[_0xe627('0x11')](0x1f4,_[_0xe627('0x58')](_0x2e787e,_0xe627('0x1c'))[_0xe627('0x15')](',\x20')));}var _0x351763=_[_0xe627('0x50')](_0x52923f['channels'],{'uniqueid':_0x36c13e[_0xe627('0x59')]});if(_0x351763){return BPromise['resolve']()[_0xe627('0x1b')](function(){if(_0x351763[_0xe627('0x5a')]){return ami[_0xe627('0x1a')]({'action':_0xe627('0x66'),'channel':_0x351763['channel'],'mixmonitorid':_0x36c13e['mixmonitorid']})[_0xe627('0x1d')](function(_0x266b11){});}})['then'](function(){if(_0x351763[_0xe627('0x67')]){return ami[_0xe627('0x1a')]({'action':'StopMixMonitor','channel':_0x351763[_0xe627('0x67')],'mixmonitorid':_0x36c13e[_0xe627('0x61')]})['catch'](function(_0x4ba652){});}})[_0xe627('0x1b')](function(_0x5eb04f){var _0x43e247=_[_0xe627('0x50')](_0x351763[_0xe627('0x5d')],{'mixmonitorid':_0x36c13e['mixmonitorid']});if(_0x43e247){_0x43e247[_0xe627('0x63')]=_0xe627('0x68');}})[_0xe627('0x1b')](function(){var _0x4521ab=util['format']('%s.%s',_0x36c13e[_0xe627('0x69')]||_0x36c13e[_0xe627('0x59')],_0x36c13e['format']||_0xe627('0x6a'));var _0x48236e=_['find'](_0x351763[_0xe627('0x5d')],{'filename':_0xe627('0x5e')+_0x4521ab['toLowerCase']()});if(_0x48236e){_0x48236e['status']=_0xe627('0x68');}})[_0xe627('0x1b')](function(){_0x480ac3({'code':0xc8,'message':[_0x36c13e[_0xe627('0x59')],_0xe627('0x6b')][_0xe627('0x15')]('\x20')});})[_0xe627('0x1d')](function(_0x4b4b6c){_0xe4c06d(_0x1f0d6c['error'](0x1f5,[_0x36c13e['uniqueid'],_0x4b4b6c[_0xe627('0x1c')][_0xe627('0x5f')]()]['join']('\x20')));});}else{return _0xe4c06d(_0x1f0d6c[_0xe627('0x11')](0x1f5,_0xe627('0x65')));}});},'VoiceQueuesChannels':function(_0x33b7b6){return new Promise(function(_0x281ddd,_0x51258f){var _0xf62c81=_[_0xe627('0x53')](_0x52923f[_0xe627('0x6c')]);_0x281ddd({'count':_0xf62c81[_0xe627('0x57')],'rows':_0xf62c81});});},'VoiceQueuesChannel':function(_0x574837){var _0x36b75a=this;return new Promise(function(_0x18b504,_0x1bef89){var _0x4c6099=schema(properties['voicequeuechannel'])['validate'](_0x574837);if(_0x4c6099['length']>0x0){return _0x1bef89(_0x36b75a['error'](0x1f4,_[_0xe627('0x58')](_0x4c6099,_0xe627('0x1c'))[_0xe627('0x15')](',\x20')));}var _0xb2a065=_[_0xe627('0x50')](_0x52923f[_0xe627('0x6c')],{'uniqueid':_0x574837['uniqueid']});if(_0xb2a065){_0x18b504(_0xb2a065);}else{return _0x1bef89(_0x36b75a[_0xe627('0x11')](0x1f5,_0xe627('0x65')));}});},'VoiceQueuesChannelHangup':function(_0x438bea){var _0x1a7d79=this;return new Promise(function(_0x3394ee,_0x53670d){if(ami['isConnected']()==![]){return _0x53670d(_0x1a7d79['error'](0x1f4,[config[_0xe627('0x12')]['ip'],config[_0xe627('0x12')]['username'],_0xe627('0x14')][_0xe627('0x15')]('\x20')));}var _0x139e31=schema(properties[_0xe627('0x6d')])['validate'](_0x438bea);if(_0x139e31['length']>0x0){return _0x53670d(_0x1a7d79[_0xe627('0x11')](0x1f4,_['map'](_0x139e31,_0xe627('0x1c'))[_0xe627('0x15')](',\x20')));}var _0xc79cab=_['find'](_0x52923f['queueChannels'],{'uniqueid':_0x438bea[_0xe627('0x59')]});if(_0xc79cab&&_0xc79cab['channel']){return ami['Action']({'action':'Hangup','channel':_0xc79cab[_0xe627('0x5a')]})[_0xe627('0x1b')](function(_0x4eebb7){_0x3394ee({'code':0xc8,'message':[_0x438bea[_0xe627('0x59')],_0x4eebb7[_0xe627('0x1c')]['toLowerCase']()][_0xe627('0x15')]('\x20')});})[_0xe627('0x1d')](function(_0x1ec81a){_0x53670d(_0x1a7d79[_0xe627('0x11')](0x1f5,[_0x438bea[_0xe627('0x59')],_0x1ec81a[_0xe627('0x1c')]['toLowerCase']()][_0xe627('0x15')]('\x20')));});}else{return _0x53670d(_0x1a7d79[_0xe627('0x11')](0x1f5,'Channel\x20doesn\x27t\x20exist'));}});},'VoiceQueuesChannelRedirect':function(_0x14459f){var _0x9d4335=this;return new Promise(function(_0x4e477e,_0x2a5757){if(ami[_0xe627('0x55')]()==![]){return _0x2a5757(_0x9d4335[_0xe627('0x11')](0x1f4,[config['asterisk']['ip'],config['asterisk'][_0xe627('0x13')],_0xe627('0x14')][_0xe627('0x15')]('\x20')));}var _0x17cdc5=schema(properties[_0xe627('0x6e')])[_0xe627('0x3')](_0x14459f);if(_0x17cdc5[_0xe627('0x57')]>0x0){return _0x2a5757(_0x9d4335[_0xe627('0x11')](0x1f4,_[_0xe627('0x58')](_0x17cdc5,_0xe627('0x1c'))[_0xe627('0x15')](',\x20')));}var _0x554ac2=_[_0xe627('0x50')](_0x52923f[_0xe627('0x6c')],{'uniqueid':_0x14459f[_0xe627('0x59')]});if(_0x554ac2&&_0x554ac2[_0xe627('0x5a')]){return ami[_0xe627('0x1a')]({'action':_0xe627('0x6f'),'channel':_0x554ac2[_0xe627('0x5a')],'exten':_0x14459f['exten'],'context':_0x14459f[_0xe627('0x70')]||_0x554ac2[_0xe627('0x70')],'priority':0x1})[_0xe627('0x1b')](function(_0x54d9ed){_0x4e477e({'code':0xc8,'message':[_0x14459f[_0xe627('0x59')],_0x54d9ed['message']['toLowerCase']()][_0xe627('0x15')]('\x20')});})[_0xe627('0x1d')](function(_0x203e4e){_0x2a5757(_0x9d4335['error'](0x1f5,[_0x14459f[_0xe627('0x59')],_0x203e4e[_0xe627('0x1c')]['toLowerCase']()][_0xe627('0x15')]('\x20')));});}else{return _0x2a5757(_0x9d4335['error'](0x1f5,'Channel\x20doesn\x27t\x20exist'));}});},'Agents':function(_0x2b2624){return new Promise(function(_0x1df7d7,_0x3ae47b){var _0x57e9de=_[_0xe627('0x53')](_0x52923f[_0xe627('0xd')]);_0x1df7d7({'count':_0x57e9de[_0xe627('0x57')],'rows':_0x57e9de});});},'Telephones':function(_0x297c54){return new Promise(function(_0x401385,_0x55b30f){var _0x339996=_[_0xe627('0x53')](_0x52923f[_0xe627('0x71')]);_0x401385({'count':_0x339996[_0xe627('0x57')],'rows':_0x339996});});},'Trunks':function(_0x4658b4){return new Promise(function(_0x46b38b,_0xc0dfdc){var _0x155f3d=_[_0xe627('0x53')](_0x52923f[_0xe627('0x72')]);_0x46b38b({'count':_0x155f3d['length'],'rows':_0x155f3d});});},'OutboundChannels':function(_0x5ce0f8){return new Promise(function(_0x38643f,_0x29ffbf){var _0x5f33e1=_[_0xe627('0x53')](_0x52923f[_0xe627('0x73')]);_0x38643f({'count':_0x5f33e1[_0xe627('0x57')],'rows':_0x5f33e1});});},'Outbound':function(_0xecf0fa){return new Promise(function(_0x2dbd02,_0x16c60d){_0x2dbd02(_0x52923f[_0xe627('0x2a')]);});},'Campaigns':function(_0xbe1695){return new Promise(function(_0x2b1e02,_0x257d29){var _0x500513=_[_0xe627('0x53')](_0x52923f[_0xe627('0x74')]);_0x2b1e02({'count':_0x500513['length'],'rows':_0x500513});});},'VoiceQueuesPreview':function(_0x1f0710){var _0x897afc=this;return new Promise(function(_0x305b91,_0x5a269e){_0x4efcad['run'](_0x1f0710['id'])[_0xe627('0x1b')](function(_0x5aa187){_0x305b91({'code':0xc8,'message':_0x5aa187[_0xe627('0x1c')]});})[_0xe627('0x1d')](function(_0x437d33){_0x5a269e(_0x897afc['error'](0x1f4,_0x437d33[_0xe627('0x1c')]));});});},'EventManager':function(_0x510d94){var _0x476887=this;return new Promise(function(_0x476bdb,_0xdcffdd){if(!_0x510d94['event']){return _0xdcffdd(_0x476887[_0xe627('0x11')](0x1f4,_0xe627('0x75')));}ami['emit'](_0xe627('0x76')+_0x510d94[_0xe627('0x77')],_0x510d94[_0xe627('0x1c')]);_0x476bdb({'code':0xc8,'message':_0x510d94});});},'FaxAccounts':function(_0x5acb13){return new Promise(function(_0x35f767,_0x4e4ff0){var _0x5d5aaa=_[_0xe627('0x53')](_0x52923f[_0xe627('0x78')]);_0x35f767({'count':_0x5d5aaa[_0xe627('0x57')],'rows':_0x5d5aaa});});},'SendFax':function(_0x46e8d7){var _0x221bfc=this;return new Promise(function(_0x17ca45,_0x5c424a){_0x1a1a3d[_0xe627('0x79')](_0x46e8d7)[_0xe627('0x1b')](function(_0x35d676){_0x17ca45({'code':0xc8,'message':_0x35d676[_0xe627('0x1c')]});})['catch'](function(_0x33a6f){_0x5c424a(_0x221bfc[_0xe627('0x11')](0x1f4,_0x33a6f[_0xe627('0x1c')]));});});},'CheckAfterSend':function(_0x1b690f){var _0x2d23de=this;return new Promise(function(_0x171bbb,_0x142754){_0x1a1a3d['checkAfterSend'](_0x1b690f)['then'](function(_0x5f5353){_0x171bbb({'code':0xc8,'message':_0x5f5353[_0xe627('0x1c')]});})[_0xe627('0x1d')](function(_0x5ce153){_0x142754(_0x2d23de[_0xe627('0x11')](0x1f4,_0x5ce153[_0xe627('0x1c')]));});});}};var _0x5ca695=jayson['server'](_0x2d4f63)['http']();_0x5ca695['on'](_0xe627('0x11'),function(_0x182ac3){return _0x45e49a(_0x182ac3);});_0x5ca695['listen'](0x232a,_0xe627('0x7a'),function(){console['log'](_0xe627('0x7b'),0x232a);return _0x3f2791(_0xe627('0x7c')+0x232a);});});};
\ No newline at end of file
+var _0x4137=['error','asterisk','username','join','module','Reload','then','message','catch','ami\x20disconnected','pick','command','Action','content','voiceQueues','hasOwnProperty','name','strategy','answered','available','loggedIn','pTalking','sumDuration','talking','total','type','unmanaged','abandoned','waiting','outbound','dialActive','dialMethod','dialOriginateCallerIdName','dialOriginateCallerIdNumber','dialOriginateTimeout','dialPrefix','temp','outboundAnswerAgiCallsDay','outboundAnswerCallsDay','outboundBlacklistCallsDay','outboundBusyCallsDay','outboundDropCallsDayACS','outboundDropCallsDayCallersExit','outboundDropCallsDayTimeout','outboundNoSuchCallsDay','outboundOriginateFailureCallsDay','outboundReCallsDay','outboundRejectCallsDay','outboundUnknownCallsDay','predictiveIntervalAnsweredCalls','predictiveIntervalAvgHoldtime','predictiveIntervalAvgTalktime','predictiveIntervalDroppedCallsCallersExit','predictiveIntervalDroppedCallsTimeout','predictiveIntervalErlangCalls','predictiveIntervalMultiplicativeFactor','predictiveIntervalAvailable','predictiveIntervalTotalCalls','originated','erlangCalls','erlangCallToSecond','erlangAbandonmentRate','erlangBusyFactor','startPredictive','startProgressive','Trunk','active','callerid','Interval','push','length','find','omit','undefined','values','voicechannel','map','channel','format','%s.%s','monitors','/var/spool/asterisk/monitor/','toLowerCase','rec','mixmonitorid','status','uniqueid','Channel\x20doesn\x27t\x20exist','channels','destinationchannel','StopMixMonitor','stop','filename','StopMixMonitor\x20Success','queueChannels','voicequeuechannelhangup','voicequeuechannelredirect','Redirect','exten','context','telephones','trunks','campaigns','event','Event\x20name\x20mandatory','emit','custom:','faxAccounts','checkAfterSend','server','http','127.0.0.1','log','AMI\x20RPC\x20server\x20listening\x20on\x20127.0.0.1:%d!','RPC\x20listening\x20on\x20port:','lodash','util','jayson/promise','validate','bluebird','moment','../../../config/environment','../properties','../ami','listen','%s/%s','SIP','timers','timer','agents','pause','QueuePause','isConnected'];(function(_0x374640,_0x8a5170){var _0x1b6c4c=function(_0x15071d){while(--_0x15071d){_0x374640['push'](_0x374640['shift']());}};_0x1b6c4c(++_0x8a5170);}(_0x4137,0xf8));var _0x7413=function(_0x1cc8fe,_0x105328){_0x1cc8fe=_0x1cc8fe-0x0;var _0x230054=_0x4137[_0x1cc8fe];return _0x230054;};'use strict';var _=require(_0x7413('0x0'));var util=require(_0x7413('0x1'));var jayson=require(_0x7413('0x2'));var schema=require(_0x7413('0x3'));var BPromise=require(_0x7413('0x4'));var moment=require(_0x7413('0x5'));var config=require(_0x7413('0x6'));var properties=require(_0x7413('0x7'));var ami=require(_0x7413('0x8'));exports[_0x7413('0x9')]=function(_0x451a96,_0x3bb181,_0x4fbade){return new BPromise(function(_0xc808cd,_0x188d89){var _0x5b39ac={'QueuePause':function(_0x15af0d){return new Promise(function(_0x5f4cd0,_0x3236ec){var _0x120dc2=util['format'](_0x7413('0xa'),_0x7413('0xb'),_0x15af0d['name']);if(_0x451a96[_0x7413('0xc')]&&_0x451a96[_0x7413('0xc')][_0x120dc2]&&_0x451a96[_0x7413('0xc')][_0x120dc2][_0x7413('0xd')]){_0x451a96[_0x7413('0xc')][_0x120dc2]['updateAcw']();}if(_0x451a96[_0x7413('0xe')][_0x120dc2]){_0x451a96[_0x7413('0xe')][_0x120dc2]['updateStatusRealtime']({'statePause':_0x15af0d[_0x7413('0xf')]?!![]:![]});}_0x5f4cd0({'code':0xc8,'message':_0x7413('0x10')});});},'Reload':function(_0x13e6bd){var _0x52c354=this;return new Promise(function(_0x5956b0,_0x55ef69){if(ami[_0x7413('0x11')]()==![]){return _0x55ef69(_0x52c354[_0x7413('0x12')](0x1f4,[config['asterisk']['ip'],config[_0x7413('0x13')][_0x7413('0x14')],'ami\x20disconnected'][_0x7413('0x15')]('\x20')));}_0x13e6bd=_['pick'](_0x13e6bd,_['keys'](properties[_0x7413('0x16')]));_0x13e6bd['action']=_0x7413('0x17');return ami['Action'](_0x13e6bd)[_0x7413('0x18')](function(_0x3230d8){_0x5956b0({'code':0xc8,'message':_0x3230d8[_0x7413('0x19')]});})[_0x7413('0x1a')](function(_0x2a3417){_0x55ef69(_0x52c354[_0x7413('0x12')](0x1f5,_0x2a3417['message']));});});},'Command':function(_0xecc3e){var _0x17c062=this;return new Promise(function(_0x11f8a1,_0xfe5b8c){if(ami['isConnected']()==![]){return _0xfe5b8c(_0x17c062[_0x7413('0x12')](0x1f4,[config[_0x7413('0x13')]['ip'],config[_0x7413('0x13')][_0x7413('0x14')],_0x7413('0x1b')][_0x7413('0x15')]('\x20')));}_0xecc3e=_[_0x7413('0x1c')](_0xecc3e,_0x7413('0x1d'));_0xecc3e['action']='Command';return ami[_0x7413('0x1e')](_0xecc3e)['then'](function(_0x1585ba){_0x11f8a1({'code':0xc8,'message':_0x1585ba[_0x7413('0x1f')]});})[_0x7413('0x1a')](function(_0x2fc0f4){_0xfe5b8c(_0x17c062[_0x7413('0x12')](0x1f5,_0x2fc0f4[_0x7413('0x19')]));});});},'VoiceQueues':function(_0x1d97fd){return new Promise(function(_0x41cb5d,_0x1d455b){var _0x5a8329=[];for(var _0x5cb15f in _0x451a96[_0x7413('0x20')]){if(_0x451a96['voiceQueues'][_0x7413('0x21')](_0x5cb15f)){var _0x71cbb4=_0x451a96[_0x7413('0x20')][_0x5cb15f];var _0x4c2e90={'id':_0x71cbb4['id'],'name':_0x71cbb4[_0x7413('0x22')],'strategy':_0x71cbb4[_0x7413('0x23')],'answered':_0x71cbb4[_0x7413('0x24')],'available':_0x71cbb4[_0x7413('0x25')],'loggedIn':_0x71cbb4[_0x7413('0x26')],'pTalking':_0x71cbb4[_0x7413('0x27')],'sumBillable':_0x71cbb4['sumBillable'],'sumDuration':_0x71cbb4[_0x7413('0x28')],'sumHoldTime':_0x71cbb4['sumHoldTime']||0x0,'talking':_0x71cbb4[_0x7413('0x29')],'total':_0x71cbb4[_0x7413('0x2a')],'type':_0x71cbb4[_0x7413('0x2b')],'unmanaged':_0x71cbb4[_0x7413('0x2c')],'abandoned':_0x71cbb4[_0x7413('0x2d')],'waiting':_0x71cbb4[_0x7413('0x2e')],'loggedInDb':_0x71cbb4['loggedInDb']};if(_0x71cbb4[_0x7413('0x2b')]===_0x7413('0x2f')){_0x4c2e90[_0x7413('0x30')]=_0x71cbb4[_0x7413('0x30')];_0x4c2e90[_0x7413('0x31')]=_0x71cbb4[_0x7413('0x31')];_0x4c2e90[_0x7413('0x32')]=_0x71cbb4['dialOriginateCallerIdName'];_0x4c2e90[_0x7413('0x33')]=_0x71cbb4[_0x7413('0x33')];_0x4c2e90[_0x7413('0x34')]=_0x71cbb4[_0x7413('0x34')];_0x4c2e90[_0x7413('0x35')]=_0x71cbb4['dialPrefix'];_0x4c2e90[_0x7413('0x36')]=_0x71cbb4['temp'];_0x4c2e90[_0x7413('0x37')]=_0x71cbb4[_0x7413('0x37')];_0x4c2e90[_0x7413('0x38')]=_0x71cbb4['outboundAnswerCallsDay'];_0x4c2e90[_0x7413('0x39')]=_0x71cbb4['outboundBlacklistCallsDay'];_0x4c2e90[_0x7413('0x3a')]=_0x71cbb4[_0x7413('0x3a')];_0x4c2e90['outboundCongestionCallsDay']=_0x71cbb4['outboundCongestionCallsDay'];_0x4c2e90[_0x7413('0x3b')]=_0x71cbb4[_0x7413('0x3b')];_0x4c2e90[_0x7413('0x3c')]=_0x71cbb4['outboundDropCallsDayCallersExit'];_0x4c2e90['outboundDropCallsDayTimeout']=_0x71cbb4[_0x7413('0x3d')];_0x4c2e90['outboundNoAnswerCallsDay']=_0x71cbb4['outboundNoAnswerCallsDay'];_0x4c2e90[_0x7413('0x3e')]=_0x71cbb4['outboundNoSuchCallsDay'];_0x4c2e90[_0x7413('0x3f')]=_0x71cbb4[_0x7413('0x3f')];_0x4c2e90[_0x7413('0x40')]=_0x71cbb4[_0x7413('0x40')];_0x4c2e90[_0x7413('0x41')]=_0x71cbb4['outboundRejectCallsDay'];_0x4c2e90[_0x7413('0x42')]=_0x71cbb4[_0x7413('0x42')];_0x4c2e90[_0x7413('0x43')]=_0x71cbb4[_0x7413('0x43')];_0x4c2e90[_0x7413('0x44')]=_0x71cbb4[_0x7413('0x44')];_0x4c2e90[_0x7413('0x45')]=_0x71cbb4[_0x7413('0x45')];_0x4c2e90[_0x7413('0x46')]=_0x71cbb4[_0x7413('0x46')];_0x4c2e90[_0x7413('0x47')]=_0x71cbb4[_0x7413('0x47')];_0x4c2e90['predictiveIntervalErlangCalls']=_0x71cbb4[_0x7413('0x48')];_0x4c2e90['predictiveIntervalErlangCallsDroppedCalls']=_0x71cbb4['predictiveIntervalErlangCallsDroppedCalls'];_0x4c2e90['predictiveIntervalHitRate']=_0x71cbb4['predictiveIntervalHitRate'];_0x4c2e90['predictiveIntervalMultiplicativeFactor']=_0x71cbb4[_0x7413('0x49')];_0x4c2e90['predictiveIntervalPauses']=_0x71cbb4['predictiveIntervalPauses'];_0x4c2e90[_0x7413('0x4a')]=_0x71cbb4['predictiveIntervalAvailable'];_0x4c2e90['predictiveIntervalTotalCalls']=_0x71cbb4[_0x7413('0x4b')];_0x4c2e90[_0x7413('0x19')]=_0x71cbb4[_0x7413('0x19')];_0x4c2e90[_0x7413('0x4c')]=_0x71cbb4[_0x7413('0x4c')];_0x4c2e90['erlangCalls']=_0x71cbb4[_0x7413('0x4d')];_0x4c2e90['erlangCallToSecond']=_0x71cbb4[_0x7413('0x4e')];_0x4c2e90[_0x7413('0x4f')]=_0x71cbb4[_0x7413('0x4f')];_0x4c2e90[_0x7413('0x50')]=_0x71cbb4[_0x7413('0x50')];_0x4c2e90[_0x7413('0x51')]=_0x71cbb4[_0x7413('0x51')];_0x4c2e90[_0x7413('0x52')]=_0x71cbb4[_0x7413('0x52')];}if(_0x71cbb4[_0x7413('0x53')]){_0x4c2e90[_0x7413('0x53')]={'id':_0x71cbb4[_0x7413('0x53')]['id'],'name':_0x71cbb4[_0x7413('0x53')]['name'],'active':_0x71cbb4[_0x7413('0x53')][_0x7413('0x54')],'callerid':_0x71cbb4[_0x7413('0x53')][_0x7413('0x55')]};}if(_0x71cbb4[_0x7413('0x56')]){_0x4c2e90[_0x7413('0x56')]={'id':_0x71cbb4[_0x7413('0x56')]['id'],'name':_0x71cbb4[_0x7413('0x56')][_0x7413('0x22')]};}_0x5a8329[_0x7413('0x57')](_0x4c2e90);}}_0x41cb5d({'count':_0x5a8329[_0x7413('0x58')],'rows':_0x5a8329});});},'UpdateVoiceQueue':function(_0x51b1d3){return new Promise(function(_0x2c5d1b,_0x52a088){var _0x3f7fa3=_[_0x7413('0x59')](_0x451a96[_0x7413('0x20')],{'id':parseInt(_0x51b1d3['id'])});var _0xb2d135=_[_0x7413('0x5a')](_0x51b1d3,['id']);if(_0x3f7fa3){for(var _0x148b69 in _0xb2d135){if(typeof _0xb2d135[_0x148b69]!==_0x7413('0x5b')&&typeof _0x3f7fa3[_0x148b69]!==_0x7413('0x5b')){_0x3f7fa3[_0x148b69]=_0xb2d135[_0x148b69];}}_0x2c5d1b(_0x3f7fa3);}else{_0x52a088();}});},'VoiceChannels':function(_0xcb1f11){return new Promise(function(_0x3b4742,_0x521f5e){var _0x513657=_[_0x7413('0x5c')](_0x451a96['channels']);_0x3b4742({'count':_0x513657['length'],'rows':_0x513657});});},'VoiceChannelMixMonitor':function(_0x27d2b6){var _0x208338=this;return new Promise(function(_0x5cb3bb,_0x2aa12c){if(ami['isConnected']()==![]){return _0x2aa12c(_0x208338['error'](0x1f4,[config[_0x7413('0x13')]['ip'],config['asterisk'][_0x7413('0x14')],_0x7413('0x1b')][_0x7413('0x15')]('\x20')));}var _0x5fe361=schema(properties[_0x7413('0x5d')])[_0x7413('0x3')](_0x27d2b6);if(_0x5fe361[_0x7413('0x58')]>0x0){return _0x2aa12c(_0x208338[_0x7413('0x12')](0x1f4,_[_0x7413('0x5e')](_0x5fe361,_0x7413('0x19'))['join'](',\x20')));}var _0x369891=_['find'](_0x451a96['channels'],{'uniqueid':_0x27d2b6['uniqueid']});if(_0x369891&&_0x369891[_0x7413('0x5f')]){var _0x4299a3=util[_0x7413('0x60')](_0x7413('0x61'),_0x27d2b6['filename']||_0x27d2b6['uniqueid'],_0x27d2b6[_0x7413('0x60')]||'wav');return ami[_0x7413('0x1e')]({'action':'MixMonitor','channel':_0x369891['channel'],'file':_0x4299a3,'options':'ai(mixmonitorid)'})['then'](function(_0x53c9d0){var _0x6734e4=_[_0x7413('0x59')](_0x369891[_0x7413('0x62')],{'filename':_0x7413('0x63')+_0x4299a3[_0x7413('0x64')]()});if(_['isNil'](_0x6734e4)){_0x369891[_0x7413('0x62')][_0x7413('0x57')]({'filename':_0x7413('0x63')+_0x4299a3['toLowerCase'](),'createdAt':moment()[_0x7413('0x60')]('YYYY-MM-DD\x20HH:mm:ss'),'mixmonitorid':_0x53c9d0['mixmonitorid'],'status':_0x7413('0x65')});}else{_0x6734e4[_0x7413('0x66')]=_0x53c9d0[_0x7413('0x66')];_0x6734e4[_0x7413('0x67')]=_0x7413('0x65');}_0x5cb3bb({'code':0xc8,'message':[_0x27d2b6[_0x7413('0x68')],'MixMonitor\x20Success',_0x53c9d0[_0x7413('0x66')]]['join']('\x20'),'mixmonitorid':_0x53c9d0[_0x7413('0x66')]});})['catch'](function(_0x1ea50f){_0x2aa12c(_0x208338['error'](0x1f5,[_0x27d2b6[_0x7413('0x68')],_0x1ea50f[_0x7413('0x19')]['toLowerCase']()][_0x7413('0x15')]('\x20')));});}else{return _0x2aa12c(_0x208338['error'](0x1f5,_0x7413('0x69')));}});},'VoiceChannelStopMixMonitor':function(_0x2a5db6){var _0x5163ca=this;return new Promise(function(_0x3ea2d9,_0x12048c){if(ami['isConnected']()==![]){return _0x12048c(_0x5163ca[_0x7413('0x12')](0x1f4,[config[_0x7413('0x13')]['ip'],config['asterisk'][_0x7413('0x14')],_0x7413('0x1b')][_0x7413('0x15')]('\x20')));}var _0x395e3b=schema(properties[_0x7413('0x5d')])[_0x7413('0x3')](_0x2a5db6);if(_0x395e3b[_0x7413('0x58')]>0x0){return _0x12048c(_0x5163ca[_0x7413('0x12')](0x1f4,_['map'](_0x395e3b,_0x7413('0x19'))['join'](',\x20')));}var _0x3808d3=_[_0x7413('0x59')](_0x451a96[_0x7413('0x6a')],{'uniqueid':_0x2a5db6[_0x7413('0x68')]});if(_0x3808d3){return BPromise['resolve']()['then'](function(){if(_0x3808d3['channel']){return ami['Action']({'action':'StopMixMonitor','channel':_0x3808d3[_0x7413('0x5f')],'mixmonitorid':_0x2a5db6[_0x7413('0x66')]})[_0x7413('0x1a')](function(_0x5de03e){});}})[_0x7413('0x18')](function(){if(_0x3808d3[_0x7413('0x6b')]){return ami[_0x7413('0x1e')]({'action':_0x7413('0x6c'),'channel':_0x3808d3[_0x7413('0x6b')],'mixmonitorid':_0x2a5db6[_0x7413('0x66')]})[_0x7413('0x1a')](function(_0x295a0a){});}})[_0x7413('0x18')](function(_0x47512d){var _0x3f9cfd=_[_0x7413('0x59')](_0x3808d3[_0x7413('0x62')],{'mixmonitorid':_0x2a5db6['mixmonitorid']});if(_0x3f9cfd){_0x3f9cfd[_0x7413('0x67')]=_0x7413('0x6d');}})['then'](function(){var _0x3d4d23=util[_0x7413('0x60')](_0x7413('0x61'),_0x2a5db6[_0x7413('0x6e')]||_0x2a5db6[_0x7413('0x68')],_0x2a5db6[_0x7413('0x60')]||'wav');var _0x61e533=_[_0x7413('0x59')](_0x3808d3['monitors'],{'filename':_0x7413('0x63')+_0x3d4d23['toLowerCase']()});if(_0x61e533){_0x61e533['status']=_0x7413('0x6d');}})[_0x7413('0x18')](function(){_0x3ea2d9({'code':0xc8,'message':[_0x2a5db6[_0x7413('0x68')],_0x7413('0x6f')][_0x7413('0x15')]('\x20')});})[_0x7413('0x1a')](function(_0x6171a9){_0x12048c(_0x5163ca[_0x7413('0x12')](0x1f5,[_0x2a5db6['uniqueid'],_0x6171a9[_0x7413('0x19')]['toLowerCase']()][_0x7413('0x15')]('\x20')));});}else{return _0x12048c(_0x5163ca[_0x7413('0x12')](0x1f5,_0x7413('0x69')));}});},'VoiceQueuesChannels':function(_0x3054f5){return new Promise(function(_0x2c4664,_0x29d919){var _0x1d4ef5=_[_0x7413('0x5c')](_0x451a96[_0x7413('0x70')]);_0x2c4664({'count':_0x1d4ef5['length'],'rows':_0x1d4ef5});});},'VoiceQueuesChannel':function(_0x5988bd){var _0x41875d=this;return new Promise(function(_0x53354b,_0x3ba8a8){var _0x639d33=schema(properties['voicequeuechannel'])[_0x7413('0x3')](_0x5988bd);if(_0x639d33['length']>0x0){return _0x3ba8a8(_0x41875d[_0x7413('0x12')](0x1f4,_[_0x7413('0x5e')](_0x639d33,'message')['join'](',\x20')));}var _0x227a66=_[_0x7413('0x59')](_0x451a96[_0x7413('0x70')],{'uniqueid':_0x5988bd['uniqueid']});if(_0x227a66){_0x53354b(_0x227a66);}else{return _0x3ba8a8(_0x41875d[_0x7413('0x12')](0x1f5,_0x7413('0x69')));}});},'VoiceQueuesChannelHangup':function(_0x25c93a){var _0x1d1d2=this;return new Promise(function(_0x2e6178,_0x3e91ad){if(ami['isConnected']()==![]){return _0x3e91ad(_0x1d1d2[_0x7413('0x12')](0x1f4,[config[_0x7413('0x13')]['ip'],config[_0x7413('0x13')]['username'],_0x7413('0x1b')][_0x7413('0x15')]('\x20')));}var _0x82869a=schema(properties[_0x7413('0x71')])[_0x7413('0x3')](_0x25c93a);if(_0x82869a[_0x7413('0x58')]>0x0){return _0x3e91ad(_0x1d1d2[_0x7413('0x12')](0x1f4,_[_0x7413('0x5e')](_0x82869a,_0x7413('0x19'))['join'](',\x20')));}var _0x1edcba=_[_0x7413('0x59')](_0x451a96[_0x7413('0x70')],{'uniqueid':_0x25c93a[_0x7413('0x68')]});if(_0x1edcba&&_0x1edcba[_0x7413('0x5f')]){return ami[_0x7413('0x1e')]({'action':'Hangup','channel':_0x1edcba[_0x7413('0x5f')]})['then'](function(_0x4af607){_0x2e6178({'code':0xc8,'message':[_0x25c93a[_0x7413('0x68')],_0x4af607[_0x7413('0x19')]['toLowerCase']()][_0x7413('0x15')]('\x20')});})[_0x7413('0x1a')](function(_0x127bdc){_0x3e91ad(_0x1d1d2[_0x7413('0x12')](0x1f5,[_0x25c93a[_0x7413('0x68')],_0x127bdc[_0x7413('0x19')][_0x7413('0x64')]()][_0x7413('0x15')]('\x20')));});}else{return _0x3e91ad(_0x1d1d2['error'](0x1f5,_0x7413('0x69')));}});},'VoiceQueuesChannelRedirect':function(_0x528d19){var _0xeaf166=this;return new Promise(function(_0x3ad956,_0x516030){if(ami[_0x7413('0x11')]()==![]){return _0x516030(_0xeaf166[_0x7413('0x12')](0x1f4,[config[_0x7413('0x13')]['ip'],config[_0x7413('0x13')][_0x7413('0x14')],_0x7413('0x1b')][_0x7413('0x15')]('\x20')));}var _0x12fbb2=schema(properties[_0x7413('0x72')])[_0x7413('0x3')](_0x528d19);if(_0x12fbb2['length']>0x0){return _0x516030(_0xeaf166[_0x7413('0x12')](0x1f4,_[_0x7413('0x5e')](_0x12fbb2,'message')['join'](',\x20')));}var _0x544fa2=_[_0x7413('0x59')](_0x451a96['queueChannels'],{'uniqueid':_0x528d19[_0x7413('0x68')]});if(_0x544fa2&&_0x544fa2[_0x7413('0x5f')]){return ami[_0x7413('0x1e')]({'action':_0x7413('0x73'),'channel':_0x544fa2[_0x7413('0x5f')],'exten':_0x528d19[_0x7413('0x74')],'context':_0x528d19[_0x7413('0x75')]||_0x544fa2[_0x7413('0x75')],'priority':0x1})[_0x7413('0x18')](function(_0x5b0e45){_0x3ad956({'code':0xc8,'message':[_0x528d19[_0x7413('0x68')],_0x5b0e45[_0x7413('0x19')][_0x7413('0x64')]()]['join']('\x20')});})[_0x7413('0x1a')](function(_0x3c3676){_0x516030(_0xeaf166[_0x7413('0x12')](0x1f5,[_0x528d19[_0x7413('0x68')],_0x3c3676[_0x7413('0x19')][_0x7413('0x64')]()][_0x7413('0x15')]('\x20')));});}else{return _0x516030(_0xeaf166[_0x7413('0x12')](0x1f5,_0x7413('0x69')));}});},'Agents':function(_0xa31bf1){return new Promise(function(_0x4f998b,_0x30997b){var _0x122748=_['values'](_0x451a96[_0x7413('0xe')]);_0x4f998b({'count':_0x122748[_0x7413('0x58')],'rows':_0x122748});});},'Telephones':function(_0x4d4fec){return new Promise(function(_0x33232d,_0x193d54){var _0x230191=_['values'](_0x451a96[_0x7413('0x76')]);_0x33232d({'count':_0x230191['length'],'rows':_0x230191});});},'Trunks':function(_0x466ec8){return new Promise(function(_0x35f721,_0x4537b5){var _0x20ba75=_[_0x7413('0x5c')](_0x451a96[_0x7413('0x77')]);_0x35f721({'count':_0x20ba75['length'],'rows':_0x20ba75});});},'OutboundChannels':function(_0x4ece1){return new Promise(function(_0x40e10d,_0x17ccd4){var _0x43991d=_[_0x7413('0x5c')](_0x451a96['outboundChannels']);_0x40e10d({'count':_0x43991d[_0x7413('0x58')],'rows':_0x43991d});});},'Outbound':function(_0x566ee0){return new Promise(function(_0x191fa2,_0x3c4661){_0x191fa2(_0x451a96[_0x7413('0x2f')]);});},'Campaigns':function(_0x49e310){return new Promise(function(_0x517b6e,_0x36500b){var _0x2e672d=_[_0x7413('0x5c')](_0x451a96[_0x7413('0x78')]);_0x517b6e({'count':_0x2e672d['length'],'rows':_0x2e672d});});},'VoiceQueuesPreview':function(_0x4c7787){var _0x41bb34=this;return new Promise(function(_0x35611b,_0x32c96f){_0x3bb181['run'](_0x4c7787['id'])['then'](function(_0x2d71c8){_0x35611b({'code':0xc8,'message':_0x2d71c8[_0x7413('0x19')]});})[_0x7413('0x1a')](function(_0x41615c){_0x32c96f(_0x41bb34[_0x7413('0x12')](0x1f4,_0x41615c[_0x7413('0x19')]));});});},'EventManager':function(_0x5fd045){var _0x4b2b7c=this;return new Promise(function(_0x4e0a26,_0x396a6a){if(!_0x5fd045[_0x7413('0x79')]){return _0x396a6a(_0x4b2b7c['error'](0x1f4,_0x7413('0x7a')));}ami[_0x7413('0x7b')](_0x7413('0x7c')+_0x5fd045[_0x7413('0x79')],_0x5fd045[_0x7413('0x19')]);_0x4e0a26({'code':0xc8,'message':_0x5fd045});});},'FaxAccounts':function(_0x1b22e7){return new Promise(function(_0x1826d6,_0x2939b6){var _0x3cffbb=_['values'](_0x451a96[_0x7413('0x7d')]);_0x1826d6({'count':_0x3cffbb[_0x7413('0x58')],'rows':_0x3cffbb});});},'SendFax':function(_0x59d665){var _0x1f3e26=this;return new Promise(function(_0xccd480,_0x20ffaf){_0x4fbade['send'](_0x59d665)['then'](function(_0x58e0d8){_0xccd480({'code':0xc8,'message':_0x58e0d8[_0x7413('0x19')]});})[_0x7413('0x1a')](function(_0x999109){_0x20ffaf(_0x1f3e26[_0x7413('0x12')](0x1f4,_0x999109[_0x7413('0x19')]));});});},'CheckAfterSend':function(_0xbac7e8){var _0x207293=this;return new Promise(function(_0x12ec35,_0x4e872e){_0x4fbade[_0x7413('0x7e')](_0xbac7e8)['then'](function(_0x459c24){_0x12ec35({'code':0xc8,'message':_0x459c24[_0x7413('0x19')]});})[_0x7413('0x1a')](function(_0x266f8b){_0x4e872e(_0x207293[_0x7413('0x12')](0x1f4,_0x266f8b['message']));});});}};var _0x21b700=jayson[_0x7413('0x7f')](_0x5b39ac)[_0x7413('0x80')]();_0x21b700['on'](_0x7413('0x12'),function(_0xf11f9b){return _0x188d89(_0xf11f9b);});_0x21b700[_0x7413('0x9')](0x232a,_0x7413('0x81'),function(){console[_0x7413('0x82')](_0x7413('0x83'),0x232a);return _0xc808cd(_0x7413('0x84')+0x232a);});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb821=['routeId','destcalleridnum','calleridname','Unknown','destcalleridname','<unknown>','push','format','name','trigger:%s','action','toLowerCase','merge','length','bluebird','ioredis','../../../../config/logger','redis','defaults','localhost','info','[CM][%s][%s]','stringify','exec','data1','data2','data5','xmd-contactid','ListId','data3','phone','map','calleridnum','firstName','lastName','fax','createdAt','scheduledAt','updatedAt','union','resolve','then','getContacts','isEmpty','[CM][%s][%s]\x20Contact\x20found:%s','[CM][%s][%s]\x20Multiple\x20contacts\x20found:[%s]','uniqueid','join','data4','[CM][%s][%s]\x20Autocreate\x20enabled','isNil'];(function(_0x2adbeb,_0x5581be){var _0x5e18a6=function(_0x84e42b){while(--_0x84e42b){_0x2adbeb['push'](_0x2adbeb['shift']());}};_0x5e18a6(++_0x5581be);}(_0xb821,0xa7));var _0x1b82=function(_0x4721ce,_0x52d2df){_0x4721ce=_0x4721ce-0x0;var _0x62ba3b=_0xb821[_0x4721ce];return _0x62ba3b;};'use strict';var _=require('lodash');var BPromise=require(_0x1b82('0x0'));var Redis=require(_0x1b82('0x1'));var util=require('util');var config=require('../../../../config/environment');var logger=require(_0x1b82('0x2'))('trigger');var cmContactRpc=require('../../rpc/cmContact');config[_0x1b82('0x3')]=_[_0x1b82('0x4')](config[_0x1b82('0x3')],{'host':_0x1b82('0x5'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x1b82('0x3')]));function emit(_0x192434,_0x202a5f,_0x3632dd,_0x18f45f,_0x7b87e8){logger[_0x1b82('0x6')](_0x1b82('0x7'),_0x192434,_0x202a5f['id'],_0x3632dd,_0x18f45f,JSON[_0x1b82('0x8')](_0x7b87e8));io['to'](_0x3632dd)['emit'](_0x18f45f,_0x7b87e8);}exports[_0x1b82('0x9')]=function(_0x30c6ee,_0x44dfd4,_0x14c57a,_0xcffb87){var _0x17a96b,_0x739f99;var _0x1ce719={};var _0x5f521f=Number(_0x14c57a[_0x1b82('0xa')]);var _0x241d11=_0x14c57a[_0x1b82('0xb')]?Boolean(Number(_0x14c57a[_0x1b82('0xb')])):![];var _0x50aed7;var _0x1a6285=![];if(!_['isNil'](_0x14c57a['data5'])){if(_0x14c57a[_0x1b82('0xc')]=='1')_0x1a6285=!![];}if(!_0x1a6285){if(_0xcffb87['xmd-contactid']){_0x1ce719['id']=_0xcffb87[_0x1b82('0xd')];}}if(!_0x1ce719['id']){_0x1ce719[_0x1b82('0xe')]=_0x5f521f;_0x50aed7=_0x14c57a['data3']&&_0x14c57a[_0x1b82('0xf')]!=='0'?_0x14c57a['data3']['split'](','):[_0x1b82('0x10')];_0x1ce719['$or']=_[_0x1b82('0x11')](_0x50aed7,function(_0x25228b){var _0xf42818={};_0xf42818[_0x25228b]=_0xcffb87['routeId']?_0xcffb87['destcalleridnum']:_0xcffb87[_0x1b82('0x12')];return _0xf42818;});}var _0x5d66c3=['id',_0x1b82('0x13'),_0x1b82('0x14'),_0x1b82('0x10'),'mobile',_0x1b82('0x15'),_0x1b82('0xe'),_0x1b82('0x16'),_0x1b82('0x17'),_0x1b82('0x18')];var _0x47e99b=_[_0x1b82('0x19')](_0x5d66c3,_0x50aed7);BPromise[_0x1b82('0x1a')]()[_0x1b82('0x1b')](cmContactRpc[_0x1b82('0x1c')]({'attributes':_0x47e99b,'where':_0x1ce719}))[_0x1b82('0x1b')](function(_0x31fd64){_0x739f99=_0x31fd64;if(!_[_0x1b82('0x1d')](_0x739f99)){if(_0x739f99['length']===0x1){_0x17a96b=_0x739f99[0x0];logger[_0x1b82('0x6')](_0x1b82('0x1e'),_0xcffb87['uniqueid'],_0x44dfd4['id'],_0x17a96b['id']);}else{logger[_0x1b82('0x6')](_0x1b82('0x1f'),_0xcffb87[_0x1b82('0x20')],_0x44dfd4['id'],_['map'](_0x739f99,'id')[_0x1b82('0x21')](','));}return;}else{logger['info']('[CM][%s][%s]\x20Contact\x20not\x20found',_0xcffb87['uniqueid'],_0x44dfd4['id']);var _0xf2e556={'ListId':_0x5f521f};var _0x149d0f=_0x14c57a[_0x1b82('0x22')]&&_0x14c57a[_0x1b82('0x22')]!=='0'?_0x14c57a['data4']:_0x1b82('0x10');if(_0x241d11){logger[_0x1b82('0x6')](_0x1b82('0x23'),_0xcffb87[_0x1b82('0x20')],_0x44dfd4['id']);_0xf2e556[_0x149d0f]=_[_0x1b82('0x24')](_0xcffb87[_0x1b82('0x25')])?_0xcffb87[_0x1b82('0x12')]:_0xcffb87[_0x1b82('0x26')];if(_[_0x1b82('0x24')](_0xcffb87[_0x1b82('0x25')])){_0xf2e556[_0x1b82('0x13')]=_0xcffb87[_0x1b82('0x27')]&&_0xcffb87[_0x1b82('0x27')]!=='<unknown>'?_0xcffb87[_0x1b82('0x27')]:_0x1b82('0x28');}else{_0xf2e556[_0x1b82('0x13')]=_0xcffb87[_0x1b82('0x29')]&&_0xcffb87[_0x1b82('0x29')]!==_0x1b82('0x2a')?_0xcffb87[_0x1b82('0x29')]:_0x1b82('0x28');}return BPromise[_0x1b82('0x1a')]()[_0x1b82('0x1b')](cmContactRpc['createContact'](_0xf2e556))[_0x1b82('0x1b')](function(_0x29a31e){_0x17a96b=_0x29a31e;_0x739f99[_0x1b82('0x2b')](_0x29a31e);if(_0x17a96b){logger[_0x1b82('0x6')]('[CM][%s][%s]\x20Contact\x20created:%s',_0xcffb87[_0x1b82('0x20')],_0x44dfd4['id'],_0x17a96b['id']);}return;});}else{logger[_0x1b82('0x6')]('[CM][%s][%s]\x20Autocreate\x20disabled',_0xcffb87[_0x1b82('0x20')],_0x44dfd4['id']);_0xf2e556[_0x149d0f]=_[_0x1b82('0x24')](_0xcffb87[_0x1b82('0x25')])?_0xcffb87['calleridnum']:_0xcffb87['destcalleridnum'];if(_[_0x1b82('0x24')](_0xcffb87['routeId'])){_0xf2e556['firstName']=_0xcffb87[_0x1b82('0x27')]&&_0xcffb87[_0x1b82('0x27')]!==_0x1b82('0x2a')?_0xcffb87['calleridname']:_0x1b82('0x28');}else{_0xf2e556[_0x1b82('0x13')]=_0xcffb87[_0x1b82('0x29')]&&_0xcffb87[_0x1b82('0x29')]!=='<unknown>'?_0xcffb87[_0x1b82('0x29')]:_0x1b82('0x28');}_0x17a96b=_0xf2e556;_0x739f99[_0x1b82('0x2b')](_0xf2e556);return;}}})['then'](function(){if(_0x30c6ee){emit(_0xcffb87['uniqueid'],_0x44dfd4,util[_0x1b82('0x2c')]('user:%s',_0x30c6ee[_0x1b82('0x2d')]),util[_0x1b82('0x2c')](_0x1b82('0x2e'),_0x14c57a[_0x1b82('0x2f')][_0x1b82('0x30')]()),{'evt':_[_0x1b82('0x31')](_0xcffb87,{'autoCreate':_0x241d11}),'contact':_0x17a96b===undefined?{}:_0x17a96b,'contacts':_0x739f99[_0x1b82('0x32')]===0x0?undefined:_0x739f99});}});};
\ No newline at end of file
+var _0x8d0e=['destcalleridnum','calleridname','<unknown>','destcalleridname','createContact','push','[CM][%s][%s]\x20Autocreate\x20disabled','Unknown','format','user:%s','name','trigger:%s','action','toLowerCase','merge','lodash','bluebird','ioredis','util','../../../../config/environment','../../../../config/logger','trigger','../../rpc/cmContact','redis','info','[CM][%s][%s]','emit','exec','data1','data2','data5','xmd-contactid','ListId','data3','split','$or','map','calleridnum','firstName','lastName','phone','fax','union','resolve','then','getContacts','isEmpty','length','[CM][%s][%s]\x20Contact\x20found:%s','uniqueid','[CM][%s][%s]\x20Multiple\x20contacts\x20found:[%s]','join','[CM][%s][%s]\x20Contact\x20not\x20found','data4','[CM][%s][%s]\x20Autocreate\x20enabled','isNil','routeId'];(function(_0x2646cf,_0x55006d){var _0x2e1ee5=function(_0x44d203){while(--_0x44d203){_0x2646cf['push'](_0x2646cf['shift']());}};_0x2e1ee5(++_0x55006d);}(_0x8d0e,0x1d7));var _0xe8d0=function(_0x47e37a,_0x28bce2){_0x47e37a=_0x47e37a-0x0;var _0x201775=_0x8d0e[_0x47e37a];return _0x201775;};'use strict';var _=require(_0xe8d0('0x0'));var BPromise=require(_0xe8d0('0x1'));var Redis=require(_0xe8d0('0x2'));var util=require(_0xe8d0('0x3'));var config=require(_0xe8d0('0x4'));var logger=require(_0xe8d0('0x5'))(_0xe8d0('0x6'));var cmContactRpc=require(_0xe8d0('0x7'));config[_0xe8d0('0x8')]=_['defaults'](config[_0xe8d0('0x8')],{'host':'localhost','port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0xe8d0('0x8')]));function emit(_0x92483d,_0x469d37,_0xcc03d0,_0x2b6dce,_0x13aa63){logger[_0xe8d0('0x9')](_0xe8d0('0xa'),_0x92483d,_0x469d37['id'],_0xcc03d0,_0x2b6dce,JSON['stringify'](_0x13aa63));io['to'](_0xcc03d0)[_0xe8d0('0xb')](_0x2b6dce,_0x13aa63);}exports[_0xe8d0('0xc')]=function(_0x463159,_0x599bc3,_0x580aab,_0x42e0c2){var _0x25e6b8,_0x3da047;var _0x10b345={};var _0x314657=Number(_0x580aab[_0xe8d0('0xd')]);var _0x5934b2=_0x580aab[_0xe8d0('0xe')]?Boolean(Number(_0x580aab[_0xe8d0('0xe')])):![];var _0x533b42;var _0x2b640d=![];if(!_['isNil'](_0x580aab['data5'])){if(_0x580aab[_0xe8d0('0xf')]=='1')_0x2b640d=!![];}if(!_0x2b640d){if(_0x42e0c2[_0xe8d0('0x10')]){_0x10b345['id']=_0x42e0c2[_0xe8d0('0x10')];}}if(!_0x10b345['id']){_0x10b345[_0xe8d0('0x11')]=_0x314657;_0x533b42=_0x580aab[_0xe8d0('0x12')]&&_0x580aab[_0xe8d0('0x12')]!=='0'?_0x580aab['data3'][_0xe8d0('0x13')](','):['phone'];_0x10b345[_0xe8d0('0x14')]=_[_0xe8d0('0x15')](_0x533b42,function(_0xfe8a4){var _0x4d1db4={};_0x4d1db4[_0xfe8a4]=_0x42e0c2['routeId']?_0x42e0c2['destcalleridnum']:_0x42e0c2[_0xe8d0('0x16')];return _0x4d1db4;});}var _0x384854=['id',_0xe8d0('0x17'),_0xe8d0('0x18'),_0xe8d0('0x19'),'mobile',_0xe8d0('0x1a'),_0xe8d0('0x11'),'createdAt','scheduledAt','updatedAt'];var _0x384a60=_[_0xe8d0('0x1b')](_0x384854,_0x533b42);BPromise[_0xe8d0('0x1c')]()[_0xe8d0('0x1d')](cmContactRpc[_0xe8d0('0x1e')]({'attributes':_0x384a60,'where':_0x10b345}))[_0xe8d0('0x1d')](function(_0x1bd25c){_0x3da047=_0x1bd25c;if(!_[_0xe8d0('0x1f')](_0x3da047)){if(_0x3da047[_0xe8d0('0x20')]===0x1){_0x25e6b8=_0x3da047[0x0];logger['info'](_0xe8d0('0x21'),_0x42e0c2[_0xe8d0('0x22')],_0x599bc3['id'],_0x25e6b8['id']);}else{logger['info'](_0xe8d0('0x23'),_0x42e0c2[_0xe8d0('0x22')],_0x599bc3['id'],_[_0xe8d0('0x15')](_0x3da047,'id')[_0xe8d0('0x24')](','));}return;}else{logger[_0xe8d0('0x9')](_0xe8d0('0x25'),_0x42e0c2[_0xe8d0('0x22')],_0x599bc3['id']);var _0x32f0c1={'ListId':_0x314657};var _0xfa3527=_0x580aab[_0xe8d0('0x26')]&&_0x580aab[_0xe8d0('0x26')]!=='0'?_0x580aab['data4']:_0xe8d0('0x19');if(_0x5934b2){logger[_0xe8d0('0x9')](_0xe8d0('0x27'),_0x42e0c2['uniqueid'],_0x599bc3['id']);_0x32f0c1[_0xfa3527]=_[_0xe8d0('0x28')](_0x42e0c2[_0xe8d0('0x29')])?_0x42e0c2['calleridnum']:_0x42e0c2[_0xe8d0('0x2a')];if(_[_0xe8d0('0x28')](_0x42e0c2[_0xe8d0('0x29')])){_0x32f0c1[_0xe8d0('0x17')]=_0x42e0c2[_0xe8d0('0x2b')]&&_0x42e0c2['calleridname']!==_0xe8d0('0x2c')?_0x42e0c2['calleridname']:'Unknown';}else{_0x32f0c1['firstName']=_0x42e0c2[_0xe8d0('0x2d')]&&_0x42e0c2[_0xe8d0('0x2d')]!==_0xe8d0('0x2c')?_0x42e0c2['destcalleridname']:'Unknown';}return BPromise[_0xe8d0('0x1c')]()['then'](cmContactRpc[_0xe8d0('0x2e')](_0x32f0c1))[_0xe8d0('0x1d')](function(_0x327004){_0x25e6b8=_0x327004;_0x3da047[_0xe8d0('0x2f')](_0x327004);if(_0x25e6b8){logger[_0xe8d0('0x9')]('[CM][%s][%s]\x20Contact\x20created:%s',_0x42e0c2[_0xe8d0('0x22')],_0x599bc3['id'],_0x25e6b8['id']);}return;});}else{logger[_0xe8d0('0x9')](_0xe8d0('0x30'),_0x42e0c2[_0xe8d0('0x22')],_0x599bc3['id']);_0x32f0c1[_0xfa3527]=_['isNil'](_0x42e0c2[_0xe8d0('0x29')])?_0x42e0c2[_0xe8d0('0x16')]:_0x42e0c2['destcalleridnum'];if(_[_0xe8d0('0x28')](_0x42e0c2['routeId'])){_0x32f0c1[_0xe8d0('0x17')]=_0x42e0c2['calleridname']&&_0x42e0c2[_0xe8d0('0x2b')]!=='<unknown>'?_0x42e0c2[_0xe8d0('0x2b')]:_0xe8d0('0x31');}else{_0x32f0c1[_0xe8d0('0x17')]=_0x42e0c2[_0xe8d0('0x2d')]&&_0x42e0c2['destcalleridname']!==_0xe8d0('0x2c')?_0x42e0c2[_0xe8d0('0x2d')]:_0xe8d0('0x31');}_0x25e6b8=_0x32f0c1;_0x3da047['push'](_0x32f0c1);return;}}})[_0xe8d0('0x1d')](function(){if(_0x463159){emit(_0x42e0c2[_0xe8d0('0x22')],_0x599bc3,util[_0xe8d0('0x32')](_0xe8d0('0x33'),_0x463159[_0xe8d0('0x34')]),util['format'](_0xe8d0('0x35'),_0x580aab[_0xe8d0('0x36')][_0xe8d0('0x37')]()),{'evt':_[_0xe8d0('0x38')](_0x42e0c2,{'autoCreate':_0x5934b2}),'contact':_0x25e6b8===undefined?{}:_0x25e6b8,'contacts':_0x3da047[_0xe8d0('0x20')]===0x0?undefined:_0x3da047});}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x15fc=['TemplateId','data2','render','html','template\x20not\x20found','uri','buildUri','isNil','data4','uriLocation','windowWidth','data5','800','windowHeight','data6','600','winArguments','data3','format','user:%s','trigger:%s:%s','action','trigger:%s','name','integration','urlforward','exec','parse','query','search','replace','checkTrigger','channel','AllConditions','checkConditions','AnyConditions','some','field','account','chat','ChatWebsiteId','operator','value','upperFirst','AccountId','interaction','message','event','queue','membername','lastevent','routeId','mailSubstatus','null','substatus','exports','util','url','mustache','ioredis','./urlforward','./integration','./cmContact','./script','../../../config/logger','trigger','redis','localhost','popup','winapp','triggers','agents','voiceQueues','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','servicenowAccounts','dynamics365Accounts','accounts','freshsalesAccounts','syncCustomEvent','bind','custom:agentconnect','custom:agentringnoanswer','custom:agentnoanswer','custom:agentbusy','custom:agentreject','custom:amd','custom:queuecallerabandon','custom:timeout','custom:dialbegin','custom:dialconnect','custom:dialend','syncAgentDial','custom:newinteraction','custom:closedinteraction','custom:substatus','custom:incomingmessage','custom:outgoingmessage','custom:rejectmessage','prototype','emit','info','stringify','clone','undefined','motionChannel','voice','checkTriggers','interface','hasOwnProperty','merge','Actions','length','toLowerCase','contactmanager','motionbar','browser','data1'];(function(_0x178e48,_0x3c9509){var _0x440d7e=function(_0xc2f8a0){while(--_0xc2f8a0){_0x178e48['push'](_0x178e48['shift']());}};_0x440d7e(++_0x3c9509);}(_0x15fc,0x132));var _0xc15f=function(_0x4743ce,_0x55dafa){_0x4743ce=_0x4743ce-0x0;var _0xa05bc1=_0x15fc[_0x4743ce];return _0xa05bc1;};'use strict';var util=require(_0xc15f('0x0'));var _=require('lodash');var url=require(_0xc15f('0x1'));var Mustache=require(_0xc15f('0x2'));var Redis=require(_0xc15f('0x3'));var urlforward=require(_0xc15f('0x4'));var integration=require(_0xc15f('0x5'));var cmContact=require(_0xc15f('0x6'));var script=require(_0xc15f('0x7'));var config=require('../../../config/environment');var logger=require(_0xc15f('0x8'))(_0xc15f('0x9'));var ami=require('../ami');config[_0xc15f('0xa')]=_['defaults'](config[_0xc15f('0xa')],{'host':_0xc15f('0xb'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config['redis']));var operators={'equals':function(_0x524617,_0x1a3ad5){return _0x524617==_0x1a3ad5;},'not_equals':function(_0xe8eaf9,_0x28b405){return _0xe8eaf9!=_0x28b405;}};var barAndWebActions=[_0xc15f('0xc'),_0xc15f('0x1'),_0xc15f('0xd')];function Trigger(_0x2c9149){this[_0xc15f('0xe')]=_0x2c9149[_0xc15f('0xe')];this[_0xc15f('0xf')]=_0x2c9149['agents'];this[_0xc15f('0x10')]=_0x2c9149[_0xc15f('0x10')];this[_0xc15f('0x11')]=_0x2c9149[_0xc15f('0x11')];this['voiceExtensions']=_0x2c9149[_0xc15f('0x12')];this['zendeskAccounts']=_0x2c9149[_0xc15f('0x13')];this[_0xc15f('0x14')]=_0x2c9149[_0xc15f('0x14')];this['salesforceAccounts']=_0x2c9149[_0xc15f('0x15')];this[_0xc15f('0x16')]=_0x2c9149[_0xc15f('0x16')];this[_0xc15f('0x17')]=_0x2c9149[_0xc15f('0x17')];this[_0xc15f('0x18')]=_0x2c9149[_0xc15f('0x18')];this[_0xc15f('0x19')]=_0x2c9149[_0xc15f('0x19')];this[_0xc15f('0x1a')]=_0x2c9149['servicenowAccounts'];this[_0xc15f('0x1b')]=_0x2c9149[_0xc15f('0x1b')];this['freshsalesAccounts']=_0x2c9149['freshsalesAccounts'];this[_0xc15f('0x1c')]={'zendesk':this[_0xc15f('0x13')],'salesforce':this[_0xc15f('0x15')],'freshdesk':this[_0xc15f('0x14')],'sugarcrm':this[_0xc15f('0x16')],'zoho':this[_0xc15f('0x17')],'desk':this['deskAccounts'],'vtiger':this[_0xc15f('0x19')],'dynamics365':this[_0xc15f('0x1b')],'freshsales':this[_0xc15f('0x1d')],'servicenow':this[_0xc15f('0x1a')]};ami['on']('custom:agentcalled',this[_0xc15f('0x1e')][_0xc15f('0x1f')](this));ami['on'](_0xc15f('0x20'),this['syncCustomEvent'][_0xc15f('0x1f')](this));ami['on'](_0xc15f('0x21'),this[_0xc15f('0x1e')]['bind'](this));ami['on']('custom:agentcomplete',this[_0xc15f('0x1e')]['bind'](this));ami['on']('custom:agentnosuchnumber',this[_0xc15f('0x1e')][_0xc15f('0x1f')](this));ami['on'](_0xc15f('0x22'),this[_0xc15f('0x1e')][_0xc15f('0x1f')](this));ami['on'](_0xc15f('0x23'),this[_0xc15f('0x1e')]['bind'](this));ami['on']('custom:agentcongestion',this[_0xc15f('0x1e')]['bind'](this));ami['on'](_0xc15f('0x24'),this[_0xc15f('0x1e')][_0xc15f('0x1f')](this));ami['on'](_0xc15f('0x25'),this[_0xc15f('0x1e')][_0xc15f('0x1f')](this));ami['on'](_0xc15f('0x26'),this[_0xc15f('0x1e')][_0xc15f('0x1f')](this));ami['on'](_0xc15f('0x27'),this['syncCustomEvent'][_0xc15f('0x1f')](this));ami['on'](_0xc15f('0x28'),this['syncAgentDial'][_0xc15f('0x1f')](this));ami['on'](_0xc15f('0x29'),this['syncAgentDial'][_0xc15f('0x1f')](this));ami['on'](_0xc15f('0x2a'),this[_0xc15f('0x2b')][_0xc15f('0x1f')](this));ami['on'](_0xc15f('0x2c'),this[_0xc15f('0x1e')][_0xc15f('0x1f')](this));ami['on'](_0xc15f('0x2d'),this['syncCustomEvent'][_0xc15f('0x1f')](this));ami['on'](_0xc15f('0x2e'),this[_0xc15f('0x1e')][_0xc15f('0x1f')](this));ami['on'](_0xc15f('0x2f'),this[_0xc15f('0x1e')][_0xc15f('0x1f')](this));ami['on'](_0xc15f('0x30'),this['syncCustomEvent']['bind'](this));ami['on']('custom:acceptmessage',this['syncCustomEvent']['bind'](this));ami['on'](_0xc15f('0x31'),this[_0xc15f('0x1e')][_0xc15f('0x1f')](this));}Trigger[_0xc15f('0x32')][_0xc15f('0x33')]=function(_0x349c18,_0x3b2f6d,_0x25e06d){logger[_0xc15f('0x34')](_0x349c18,_0x3b2f6d,JSON[_0xc15f('0x35')](_0x25e06d));io['to'](_0x349c18)[_0xc15f('0x33')](_0x3b2f6d,_0x25e06d);};Trigger[_0xc15f('0x32')][_0xc15f('0x1e')]=function(_0x289e73){var _0xaf3a29=_[_0xc15f('0x36')](_0x289e73);if(typeof _0xaf3a29['motionChannel']===_0xc15f('0x37')){_0xaf3a29[_0xc15f('0x38')]=_0xc15f('0x39');}this[_0xc15f('0x3a')](_0xaf3a29);};Trigger[_0xc15f('0x32')][_0xc15f('0x2b')]=function(_0x24e5d3){if(this['agents'][_0x24e5d3[_0xc15f('0x3b')]]){this[_0xc15f('0x1e')](_0x24e5d3);}};Trigger[_0xc15f('0x32')][_0xc15f('0x3a')]=function(_0x30ff45){var _0x12d4a6;for(var _0x3bea3e in this[_0xc15f('0xe')]){if(this['triggers'][_0xc15f('0x3c')](_0x3bea3e)){if(this['triggers'][_0x3bea3e]['status']){_0x12d4a6=this['checkTrigger'](this[_0xc15f('0xe')][_0x3bea3e],_0x30ff45);if(_0x12d4a6){_[_0xc15f('0x3d')](_0x30ff45,_0x30ff45['variables']);for(var _0x2968af=0x0,_0x22b0e0,_0x396cfe,_0x23d78a;_0x2968af<this['triggers'][_0x3bea3e][_0xc15f('0x3e')][_0xc15f('0x3f')];_0x2968af+=0x1){_0x22b0e0=this[_0xc15f('0xe')][_0x3bea3e][_0xc15f('0x3e')][_0x2968af];if(this[_0xc15f('0xf')][_0x30ff45[_0xc15f('0x3b')]]){switch(_0x22b0e0['action'][_0xc15f('0x40')]()){case _0xc15f('0x41'):break;case _0xc15f('0x42'):case _0xc15f('0x43'):var _0x5ef95a={};switch(barAndWebActions[_0x22b0e0[_0xc15f('0x44')]]){case _0xc15f('0xc'):_0x5ef95a[_0xc15f('0x45')]=_0x22b0e0[_0xc15f('0x46')];_0x5ef95a['html']=this[_0xc15f('0x11')][_0x22b0e0[_0xc15f('0x46')]]?Mustache[_0xc15f('0x47')](this[_0xc15f('0x11')][_0x22b0e0['data2']][_0xc15f('0x48')],_0x30ff45):_0xc15f('0x49');break;case'url':_0x5ef95a[_0xc15f('0x4a')]=this[_0xc15f('0x4b')](_0x22b0e0[_0xc15f('0x46')],_0x30ff45,_['isNil'](_0x22b0e0['data3'])?!![]:parseInt(_0x22b0e0['data3'],0xa));if(_[_0xc15f('0x4c')](_0x22b0e0[_0xc15f('0x4d')])){_0x5ef95a['location']='0';}else{_0x5ef95a[_0xc15f('0x4e')]=_0x22b0e0[_0xc15f('0x4d')];_0x5ef95a[_0xc15f('0x4f')]=_[_0xc15f('0x4c')](_0x22b0e0[_0xc15f('0x50')])?_0xc15f('0x51'):_0x22b0e0[_0xc15f('0x50')];_0x5ef95a[_0xc15f('0x52')]=_[_0xc15f('0x4c')](_0x22b0e0[_0xc15f('0x53')])?_0xc15f('0x54'):_0x22b0e0['data6'];}break;case _0xc15f('0xd'):_0x5ef95a['winApplication']=_0x22b0e0[_0xc15f('0x46')]?Mustache[_0xc15f('0x47')](_0x22b0e0[_0xc15f('0x46')],_0x30ff45):'';_0x5ef95a[_0xc15f('0x55')]=_0x22b0e0['data3']?Mustache['render'](_0x22b0e0[_0xc15f('0x56')],_0x30ff45):'';break;}this[_0xc15f('0x33')](util[_0xc15f('0x57')](_0xc15f('0x58'),this[_0xc15f('0xf')][_0x30ff45[_0xc15f('0x3b')]]['name']),util[_0xc15f('0x57')](_0xc15f('0x59'),_0x22b0e0[_0xc15f('0x5a')][_0xc15f('0x40')](),barAndWebActions[_0x22b0e0[_0xc15f('0x44')]]),_['merge'](_0x5ef95a,_0x30ff45));break;case'jscripty':this[_0xc15f('0x33')](util[_0xc15f('0x57')](_0xc15f('0x58'),this['agents'][_0x30ff45[_0xc15f('0x3b')]]['name']),util[_0xc15f('0x57')](_0xc15f('0x5b'),_0x22b0e0[_0xc15f('0x5a')][_0xc15f('0x40')]()),_[_0xc15f('0x3d')]({'ProjectId':parseInt(_0x22b0e0[_0xc15f('0x44')],0xa)},_0x30ff45));break;default:this['emit'](util[_0xc15f('0x57')](_0xc15f('0x58'),this[_0xc15f('0xf')][_0x30ff45[_0xc15f('0x3b')]][_0xc15f('0x5c')]),util['format'](_0xc15f('0x5b'),_0x22b0e0[_0xc15f('0x5a')][_0xc15f('0x40')]()),_['merge']({},_0x22b0e0,_0x30ff45));}}switch(_0x22b0e0[_0xc15f('0x5a')][_0xc15f('0x40')]()){case _0xc15f('0x41'):cmContact['exec'](this[_0xc15f('0xf')][_0x30ff45['interface']],this[_0xc15f('0xe')][_0x3bea3e],_0x22b0e0,_0x30ff45);break;case _0xc15f('0x5d'):integration['exec'](_0x22b0e0,_0x30ff45,this[_0xc15f('0x1c')],this['agents'][_0x30ff45['interface']],this[_0xc15f('0x10')][_0x30ff45['queue']],this[_0xc15f('0x12')][_0x30ff45['routeId']]);break;case _0xc15f('0x5e'):urlforward[_0xc15f('0x5f')](_0x22b0e0,_0x30ff45);break;case'script':script['exec'](_0x22b0e0,_0x30ff45);break;}}}}}}};Trigger['prototype'][_0xc15f('0x4b')]=function(_0x2c0765,_0x52ed2e,_0x298c87){var _0x41e63b=url[_0xc15f('0x60')](Mustache[_0xc15f('0x47')](_0x2c0765,_0x52ed2e),!![]);if(_0x298c87){_['merge'](_0x41e63b[_0xc15f('0x61')],_0x52ed2e);}delete _0x41e63b[_0xc15f('0x62')];var _0x1a81ee=url['format'](_0x41e63b);_0x1a81ee=_0x1a81ee[_0xc15f('0x63')](/\/\?/g,'?');return _0x1a81ee;};Trigger[_0xc15f('0x32')][_0xc15f('0x64')]=function(_0x843f03,_0x401320){var _0x10aa79=!![];var _0x3be76d=!![];var _0x349d50=![];if(_0x843f03[_0xc15f('0x65')]===_0x401320[_0xc15f('0x38')]){_0x349d50=!![];}if(_0x843f03[_0xc15f('0x66')][_0xc15f('0x3f')]){_0x10aa79=_['every'](_0x843f03[_0xc15f('0x66')],this[_0xc15f('0x67')](_0x401320,_0x843f03[_0xc15f('0x65')]));}if(_0x843f03[_0xc15f('0x68')][_0xc15f('0x3f')]){_0x3be76d=_[_0xc15f('0x69')](_0x843f03[_0xc15f('0x68')],this[_0xc15f('0x67')](_0x401320,_0x843f03[_0xc15f('0x65')]));}return _0x349d50&&_0x10aa79&&_0x3be76d;};Trigger[_0xc15f('0x32')][_0xc15f('0x67')]=function(_0xffbeb2,_0x598b36){return function(_0x3734ed){switch(_0x3734ed[_0xc15f('0x6a')]){case _0xc15f('0x6b'):if(_0xffbeb2[_0xc15f('0x65')]===_0x598b36){if(_0x598b36===_0xc15f('0x6c')){return _0xffbeb2[_0xc15f('0x6d')]?operators[_0x3734ed[_0xc15f('0x6e')]](Number(_0x3734ed[_0xc15f('0x6f')]),_0xffbeb2[_0xc15f('0x6d')]):![];}else{return _0xffbeb2[_[_0xc15f('0x70')](_0x598b36)+_0xc15f('0x71')]?operators[_0x3734ed[_0xc15f('0x6e')]](Number(_0x3734ed['value']),_0xffbeb2[_[_0xc15f('0x70')](_0x598b36)+_0xc15f('0x71')]):![];}}break;case _0xc15f('0x72'):case _0xc15f('0x73'):if(_0xffbeb2['channel']===_0x598b36){return _0xffbeb2[_0xc15f('0x74')]?operators[_0x3734ed[_0xc15f('0x6e')]](_0x3734ed['value'],_0xffbeb2['event']):![];}break;case _0xc15f('0x75'):return _0xffbeb2['queue']?operators[_0x3734ed['operator']](_0x3734ed['value'],_0xffbeb2[_0xc15f('0x75')]):![];case'agent':return _0xffbeb2[_0xc15f('0x76')]?operators[_0x3734ed[_0xc15f('0x6e')]](_0x3734ed[_0xc15f('0x6f')],_0xffbeb2['membername']):![];case'lastevent':return _0xffbeb2['lastevent']?operators[_0x3734ed['operator']](_0x3734ed[_0xc15f('0x6f')],_0xffbeb2[_0xc15f('0x77')]):![];case'routeId':return _0xffbeb2['routeId']?operators[_0x3734ed[_0xc15f('0x6e')]](_0x3734ed[_0xc15f('0x6f')],_0xffbeb2[_0xc15f('0x78')]):![];case _0xc15f('0x79'):if(_0x3734ed[_0xc15f('0x6f')]===_0xc15f('0x7a'))_0x3734ed['value']=null;return typeof _0xffbeb2[_0xc15f('0x7b')]!==_0xc15f('0x37')?operators[_0x3734ed[_0xc15f('0x6e')]](_0x3734ed[_0xc15f('0x6f')],_0xffbeb2['substatus']):![];}return![];};};module[_0xc15f('0x7c')]=Trigger;
\ No newline at end of file
+var _0xad8b=['account','chat','operator','ChatWebsiteId','upperFirst','AccountId','value','interaction','event','membername','lastevent','routeId','mailSubstatus','null','substatus','exports','url','mustache','ioredis','./urlforward','./integration','./script','../../../config/environment','../../../config/logger','../ami','redis','defaults','popup','winapp','triggers','agents','templates','voiceExtensions','zendeskAccounts','freshdeskAccounts','salesforceAccounts','sugarcrmAccounts','zohoAccounts','deskAccounts','vtigerAccounts','dynamics365Accounts','freshsalesAccounts','accounts','custom:agentcalled','syncCustomEvent','bind','custom:agentringnoanswer','custom:agentcomplete','custom:agentnosuchnumber','custom:agentnoanswer','custom:agentbusy','custom:agentcongestion','custom:agentreject','custom:dialconnect','syncAgentDial','custom:dialend','custom:newinteraction','custom:closedinteraction','custom:substatus','custom:incomingmessage','custom:outgoingmessage','custom:rejectmessage','prototype','emit','info','stringify','clone','motionChannel','undefined','interface','checkTriggers','hasOwnProperty','status','checkTrigger','variables','Actions','length','action','toLowerCase','contactmanager','motionbar','browser','data1','TemplateId','data2','html','render','template\x20not\x20found','uri','buildUri','isNil','data3','uriLocation','data4','data5','data6','600','winApplication','winArguments','user:%s','trigger:%s:%s','merge','name','format','trigger:%s','integration','exec','voiceQueues','queue','script','parse','query','search','replace','channel','AllConditions','every','checkConditions','some','AnyConditions','field'];(function(_0x363787,_0x586566){var _0x16ceb7=function(_0x2692b1){while(--_0x2692b1){_0x363787['push'](_0x363787['shift']());}};_0x16ceb7(++_0x586566);}(_0xad8b,0x17b));var _0xbad8=function(_0x9890b1,_0x36db4a){_0x9890b1=_0x9890b1-0x0;var _0x3574bb=_0xad8b[_0x9890b1];return _0x3574bb;};'use strict';var util=require('util');var _=require('lodash');var url=require(_0xbad8('0x0'));var Mustache=require(_0xbad8('0x1'));var Redis=require(_0xbad8('0x2'));var urlforward=require(_0xbad8('0x3'));var integration=require(_0xbad8('0x4'));var cmContact=require('./cmContact');var script=require(_0xbad8('0x5'));var config=require(_0xbad8('0x6'));var logger=require(_0xbad8('0x7'))('trigger');var ami=require(_0xbad8('0x8'));config[_0xbad8('0x9')]=_[_0xbad8('0xa')](config[_0xbad8('0x9')],{'host':'localhost','port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0xbad8('0x9')]));var operators={'equals':function(_0x22617f,_0x43801a){return _0x22617f==_0x43801a;},'not_equals':function(_0x388682,_0x2374d3){return _0x388682!=_0x2374d3;}};var barAndWebActions=[_0xbad8('0xb'),_0xbad8('0x0'),_0xbad8('0xc')];function Trigger(_0x20758b){this['triggers']=_0x20758b[_0xbad8('0xd')];this[_0xbad8('0xe')]=_0x20758b['agents'];this['voiceQueues']=_0x20758b['voiceQueues'];this[_0xbad8('0xf')]=_0x20758b[_0xbad8('0xf')];this[_0xbad8('0x10')]=_0x20758b[_0xbad8('0x10')];this[_0xbad8('0x11')]=_0x20758b['zendeskAccounts'];this[_0xbad8('0x12')]=_0x20758b[_0xbad8('0x12')];this['salesforceAccounts']=_0x20758b[_0xbad8('0x13')];this[_0xbad8('0x14')]=_0x20758b[_0xbad8('0x14')];this[_0xbad8('0x15')]=_0x20758b[_0xbad8('0x15')];this['deskAccounts']=_0x20758b[_0xbad8('0x16')];this[_0xbad8('0x17')]=_0x20758b[_0xbad8('0x17')];this['servicenowAccounts']=_0x20758b['servicenowAccounts'];this['dynamics365Accounts']=_0x20758b[_0xbad8('0x18')];this[_0xbad8('0x19')]=_0x20758b['freshsalesAccounts'];this[_0xbad8('0x1a')]={'zendesk':this[_0xbad8('0x11')],'salesforce':this[_0xbad8('0x13')],'freshdesk':this[_0xbad8('0x12')],'sugarcrm':this[_0xbad8('0x14')],'zoho':this[_0xbad8('0x15')],'desk':this[_0xbad8('0x16')],'vtiger':this[_0xbad8('0x17')],'dynamics365':this[_0xbad8('0x18')],'freshsales':this[_0xbad8('0x19')],'servicenow':this['servicenowAccounts']};ami['on'](_0xbad8('0x1b'),this[_0xbad8('0x1c')][_0xbad8('0x1d')](this));ami['on']('custom:agentconnect',this['syncCustomEvent'][_0xbad8('0x1d')](this));ami['on'](_0xbad8('0x1e'),this[_0xbad8('0x1c')][_0xbad8('0x1d')](this));ami['on'](_0xbad8('0x1f'),this[_0xbad8('0x1c')][_0xbad8('0x1d')](this));ami['on'](_0xbad8('0x20'),this['syncCustomEvent'][_0xbad8('0x1d')](this));ami['on'](_0xbad8('0x21'),this[_0xbad8('0x1c')][_0xbad8('0x1d')](this));ami['on'](_0xbad8('0x22'),this[_0xbad8('0x1c')][_0xbad8('0x1d')](this));ami['on'](_0xbad8('0x23'),this['syncCustomEvent'][_0xbad8('0x1d')](this));ami['on'](_0xbad8('0x24'),this['syncCustomEvent']['bind'](this));ami['on']('custom:amd',this[_0xbad8('0x1c')][_0xbad8('0x1d')](this));ami['on']('custom:queuecallerabandon',this[_0xbad8('0x1c')][_0xbad8('0x1d')](this));ami['on']('custom:timeout',this[_0xbad8('0x1c')][_0xbad8('0x1d')](this));ami['on']('custom:dialbegin',this['syncAgentDial']['bind'](this));ami['on'](_0xbad8('0x25'),this[_0xbad8('0x26')][_0xbad8('0x1d')](this));ami['on'](_0xbad8('0x27'),this[_0xbad8('0x26')][_0xbad8('0x1d')](this));ami['on'](_0xbad8('0x28'),this[_0xbad8('0x1c')]['bind'](this));ami['on'](_0xbad8('0x29'),this[_0xbad8('0x1c')]['bind'](this));ami['on'](_0xbad8('0x2a'),this[_0xbad8('0x1c')][_0xbad8('0x1d')](this));ami['on'](_0xbad8('0x2b'),this['syncCustomEvent'][_0xbad8('0x1d')](this));ami['on'](_0xbad8('0x2c'),this[_0xbad8('0x1c')]['bind'](this));ami['on']('custom:acceptmessage',this[_0xbad8('0x1c')][_0xbad8('0x1d')](this));ami['on'](_0xbad8('0x2d'),this[_0xbad8('0x1c')]['bind'](this));}Trigger[_0xbad8('0x2e')][_0xbad8('0x2f')]=function(_0x6d58e9,_0xe36095,_0x5c9a60){logger[_0xbad8('0x30')](_0x6d58e9,_0xe36095,JSON[_0xbad8('0x31')](_0x5c9a60));io['to'](_0x6d58e9)[_0xbad8('0x2f')](_0xe36095,_0x5c9a60);};Trigger[_0xbad8('0x2e')][_0xbad8('0x1c')]=function(_0x29bdaa){var _0x6be900=_[_0xbad8('0x32')](_0x29bdaa);if(typeof _0x6be900[_0xbad8('0x33')]===_0xbad8('0x34')){_0x6be900[_0xbad8('0x33')]='voice';}this['checkTriggers'](_0x6be900);};Trigger['prototype']['syncAgentDial']=function(_0x436f63){if(this[_0xbad8('0xe')][_0x436f63[_0xbad8('0x35')]]){this[_0xbad8('0x1c')](_0x436f63);}};Trigger[_0xbad8('0x2e')][_0xbad8('0x36')]=function(_0x49a727){var _0x435d81;for(var _0x50d2ec in this['triggers']){if(this[_0xbad8('0xd')][_0xbad8('0x37')](_0x50d2ec)){if(this[_0xbad8('0xd')][_0x50d2ec][_0xbad8('0x38')]){_0x435d81=this[_0xbad8('0x39')](this[_0xbad8('0xd')][_0x50d2ec],_0x49a727);if(_0x435d81){_['merge'](_0x49a727,_0x49a727[_0xbad8('0x3a')]);for(var _0x32838f=0x0,_0x1f43af,_0x594662,_0xd3f50;_0x32838f<this[_0xbad8('0xd')][_0x50d2ec][_0xbad8('0x3b')][_0xbad8('0x3c')];_0x32838f+=0x1){_0x1f43af=this['triggers'][_0x50d2ec][_0xbad8('0x3b')][_0x32838f];if(this['agents'][_0x49a727[_0xbad8('0x35')]]){switch(_0x1f43af[_0xbad8('0x3d')][_0xbad8('0x3e')]()){case _0xbad8('0x3f'):break;case _0xbad8('0x40'):case _0xbad8('0x41'):var _0x41b36a={};switch(barAndWebActions[_0x1f43af[_0xbad8('0x42')]]){case _0xbad8('0xb'):_0x41b36a[_0xbad8('0x43')]=_0x1f43af[_0xbad8('0x44')];_0x41b36a[_0xbad8('0x45')]=this[_0xbad8('0xf')][_0x1f43af[_0xbad8('0x44')]]?Mustache[_0xbad8('0x46')](this[_0xbad8('0xf')][_0x1f43af[_0xbad8('0x44')]][_0xbad8('0x45')],_0x49a727):_0xbad8('0x47');break;case _0xbad8('0x0'):_0x41b36a[_0xbad8('0x48')]=this[_0xbad8('0x49')](_0x1f43af[_0xbad8('0x44')],_0x49a727,_[_0xbad8('0x4a')](_0x1f43af[_0xbad8('0x4b')])?!![]:parseInt(_0x1f43af[_0xbad8('0x4b')],0xa));if(_[_0xbad8('0x4a')](_0x1f43af['data4'])){_0x41b36a['location']='0';}else{_0x41b36a[_0xbad8('0x4c')]=_0x1f43af[_0xbad8('0x4d')];_0x41b36a['windowWidth']=_[_0xbad8('0x4a')](_0x1f43af[_0xbad8('0x4e')])?'800':_0x1f43af[_0xbad8('0x4e')];_0x41b36a['windowHeight']=_[_0xbad8('0x4a')](_0x1f43af[_0xbad8('0x4f')])?_0xbad8('0x50'):_0x1f43af[_0xbad8('0x4f')];}break;case'winapp':_0x41b36a[_0xbad8('0x51')]=_0x1f43af['data2']?Mustache['render'](_0x1f43af[_0xbad8('0x44')],_0x49a727):'';_0x41b36a[_0xbad8('0x52')]=_0x1f43af[_0xbad8('0x4b')]?Mustache[_0xbad8('0x46')](_0x1f43af['data3'],_0x49a727):'';break;}this[_0xbad8('0x2f')](util['format'](_0xbad8('0x53'),this[_0xbad8('0xe')][_0x49a727['interface']]['name']),util['format'](_0xbad8('0x54'),_0x1f43af[_0xbad8('0x3d')][_0xbad8('0x3e')](),barAndWebActions[_0x1f43af[_0xbad8('0x42')]]),_[_0xbad8('0x55')](_0x41b36a,_0x49a727));break;case'jscripty':this[_0xbad8('0x2f')](util['format'](_0xbad8('0x53'),this[_0xbad8('0xe')][_0x49a727['interface']][_0xbad8('0x56')]),util[_0xbad8('0x57')](_0xbad8('0x58'),_0x1f43af[_0xbad8('0x3d')][_0xbad8('0x3e')]()),_[_0xbad8('0x55')]({'ProjectId':parseInt(_0x1f43af['data1'],0xa)},_0x49a727));break;default:this['emit'](util[_0xbad8('0x57')](_0xbad8('0x53'),this[_0xbad8('0xe')][_0x49a727['interface']][_0xbad8('0x56')]),util[_0xbad8('0x57')](_0xbad8('0x58'),_0x1f43af['action'][_0xbad8('0x3e')]()),_['merge']({},_0x1f43af,_0x49a727));}}switch(_0x1f43af[_0xbad8('0x3d')][_0xbad8('0x3e')]()){case'contactmanager':cmContact['exec'](this[_0xbad8('0xe')][_0x49a727[_0xbad8('0x35')]],this[_0xbad8('0xd')][_0x50d2ec],_0x1f43af,_0x49a727);break;case _0xbad8('0x59'):integration[_0xbad8('0x5a')](_0x1f43af,_0x49a727,this[_0xbad8('0x1a')],this[_0xbad8('0xe')][_0x49a727[_0xbad8('0x35')]],this[_0xbad8('0x5b')][_0x49a727[_0xbad8('0x5c')]],this[_0xbad8('0x10')][_0x49a727['routeId']]);break;case'urlforward':urlforward[_0xbad8('0x5a')](_0x1f43af,_0x49a727);break;case _0xbad8('0x5d'):script['exec'](_0x1f43af,_0x49a727);break;}}}}}}};Trigger[_0xbad8('0x2e')][_0xbad8('0x49')]=function(_0x245bae,_0x31d24b,_0x29fa3c){var _0x1f8c44=url[_0xbad8('0x5e')](Mustache[_0xbad8('0x46')](_0x245bae,_0x31d24b),!![]);if(_0x29fa3c){_[_0xbad8('0x55')](_0x1f8c44[_0xbad8('0x5f')],_0x31d24b);}delete _0x1f8c44[_0xbad8('0x60')];var _0x2f432a=url[_0xbad8('0x57')](_0x1f8c44);_0x2f432a=_0x2f432a[_0xbad8('0x61')](/\/\?/g,'?');return _0x2f432a;};Trigger[_0xbad8('0x2e')][_0xbad8('0x39')]=function(_0x5190cd,_0x171b75){var _0xe72bb=!![];var _0x41ec98=!![];var _0xce04d5=![];if(_0x5190cd[_0xbad8('0x62')]===_0x171b75[_0xbad8('0x33')]){_0xce04d5=!![];}if(_0x5190cd[_0xbad8('0x63')][_0xbad8('0x3c')]){_0xe72bb=_[_0xbad8('0x64')](_0x5190cd[_0xbad8('0x63')],this[_0xbad8('0x65')](_0x171b75,_0x5190cd['channel']));}if(_0x5190cd['AnyConditions'][_0xbad8('0x3c')]){_0x41ec98=_[_0xbad8('0x66')](_0x5190cd[_0xbad8('0x67')],this[_0xbad8('0x65')](_0x171b75,_0x5190cd[_0xbad8('0x62')]));}return _0xce04d5&&_0xe72bb&&_0x41ec98;};Trigger[_0xbad8('0x2e')]['checkConditions']=function(_0x1a2adc,_0x5d1398){return function(_0x4b4c63){switch(_0x4b4c63[_0xbad8('0x68')]){case _0xbad8('0x69'):if(_0x1a2adc['channel']===_0x5d1398){if(_0x5d1398===_0xbad8('0x6a')){return _0x1a2adc['ChatWebsiteId']?operators[_0x4b4c63[_0xbad8('0x6b')]](Number(_0x4b4c63['value']),_0x1a2adc[_0xbad8('0x6c')]):![];}else{return _0x1a2adc[_[_0xbad8('0x6d')](_0x5d1398)+_0xbad8('0x6e')]?operators[_0x4b4c63['operator']](Number(_0x4b4c63[_0xbad8('0x6f')]),_0x1a2adc[_[_0xbad8('0x6d')](_0x5d1398)+_0xbad8('0x6e')]):![];}}break;case _0xbad8('0x70'):case'message':if(_0x1a2adc[_0xbad8('0x62')]===_0x5d1398){return _0x1a2adc[_0xbad8('0x71')]?operators[_0x4b4c63[_0xbad8('0x6b')]](_0x4b4c63[_0xbad8('0x6f')],_0x1a2adc[_0xbad8('0x71')]):![];}break;case _0xbad8('0x5c'):return _0x1a2adc[_0xbad8('0x5c')]?operators[_0x4b4c63[_0xbad8('0x6b')]](_0x4b4c63[_0xbad8('0x6f')],_0x1a2adc['queue']):![];case'agent':return _0x1a2adc[_0xbad8('0x72')]?operators[_0x4b4c63['operator']](_0x4b4c63[_0xbad8('0x6f')],_0x1a2adc[_0xbad8('0x72')]):![];case _0xbad8('0x73'):return _0x1a2adc['lastevent']?operators[_0x4b4c63[_0xbad8('0x6b')]](_0x4b4c63[_0xbad8('0x6f')],_0x1a2adc[_0xbad8('0x73')]):![];case _0xbad8('0x74'):return _0x1a2adc[_0xbad8('0x74')]?operators[_0x4b4c63[_0xbad8('0x6b')]](_0x4b4c63[_0xbad8('0x6f')],_0x1a2adc['routeId']):![];case _0xbad8('0x75'):if(_0x4b4c63[_0xbad8('0x6f')]===_0xbad8('0x76'))_0x4b4c63[_0xbad8('0x6f')]=null;return typeof _0x1a2adc[_0xbad8('0x77')]!=='undefined'?operators[_0x4b4c63[_0xbad8('0x6b')]](_0x4b4c63[_0xbad8('0x6f')],_0x1a2adc[_0xbad8('0x77')]):![];}return![];};};module[_0xbad8('0x78')]=Trigger;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9957=['Motion','CTI','concat','Tags','/api/v2/users/%d','Descriptions','%s/customers/%d/cases','serverUrl','stripTrailingSlash','[QUEUE]','recordingURL','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','Authorization','email','The\x20User\x20ID\x20is:','calleridname','calleridnum','The\x20Enduser\x20ID\x20is:','Ticket\x20created!','Displaying\x20ticket\x20to\x20agent...','user:%s','trigger:desk:display','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','trigger:browser:url','Desk\x20account\x20type\x20not\x20recognized','error','recordingFormat','none','[OUTBOUND]','Recording\x20is\x20enabled!','integrationTab','newTab','%s/agent/tickets/%s','catch','unmanaged','monitor_format','lastevent','The\x20Ticket\x20ID\x20is:','toUpperCase','lodash','request-promise','md5','util','./util','../../../../config/environment','../../../../config/logger','desk','defaults','redis','localhost','socket.io-emitter','emit','application/json','validateEmail','info','Getting\x20agent\x20with\x20email','format','remoteUri','then','total_entries','find','_embedded','entries','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','%s/users/me','Invalid\x20email\x20format,\x20using\x20the\x20admin\x20account!','[HTTP]','stringify','GET','password','authType','token','Basic\x20%s','toString','base64','Searching\x20enduser\x20with\x20phone','%s/customers/search','Enduser\x20found!','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','%s/customers','POST','work','map','includes','string','picklist','type','nameField','customField','content','idField','custom_fields','variable','variableName','customVariable','name','Variable','toLowerCase','priority','Creating\x20new\x20ticket...','merge','getString','Subjects','phone','new','xCALLY'];(function(_0x32e3ff,_0x367df7){var _0x46b946=function(_0x40693a){while(--_0x40693a){_0x32e3ff['push'](_0x32e3ff['shift']());}};_0x46b946(++_0x367df7);}(_0x9957,0x93));var _0x7995=function(_0x3947c9,_0x4d6c97){_0x3947c9=_0x3947c9-0x0;var _0x2e7871=_0x9957[_0x3947c9];return _0x2e7871;};'use strict';var _=require(_0x7995('0x0'));var rp=require(_0x7995('0x1'));var md5=require(_0x7995('0x2'));var util=require(_0x7995('0x3'));var Redis=require('ioredis');var intUtil=require(_0x7995('0x4'));var config=require(_0x7995('0x5'));var logger=require(_0x7995('0x6'))(_0x7995('0x7'));config['redis']=_[_0x7995('0x8')](config[_0x7995('0x9')],{'host':_0x7995('0xa'),'port':0x18eb});var io=require(_0x7995('0xb'))(new Redis(config[_0x7995('0x9')]));function emit(_0x326741,_0x4996ca,_0x465276){io['to'](_0x326741)[_0x7995('0xc')](_0x4996ca,_0x465276);}var headers={'Content-Type':'application/json','Accept':_0x7995('0xd')};function getUser(_0x3116fb,_0x18c8a3){if(intUtil[_0x7995('0xe')](_0x18c8a3)===!![]){logger[_0x7995('0xf')](_0x7995('0x10'),_0x18c8a3);return request({'uri':util[_0x7995('0x11')]('%s/users',_0x3116fb[_0x7995('0x12')])})[_0x7995('0x13')](function(_0x581f22){if(_0x581f22[_0x7995('0x14')]){return _[_0x7995('0x15')](_0x581f22[_0x7995('0x16')][_0x7995('0x17')],{'email':_0x18c8a3});}})[_0x7995('0x13')](function(_0x23999f){if(_0x23999f){logger[_0x7995('0xf')]('Agent\x20found!');return _0x23999f;}else{logger['info'](_0x7995('0x18'));return request({'uri':util[_0x7995('0x11')](_0x7995('0x19'),_0x3116fb[_0x7995('0x12')])});}});}else{logger[_0x7995('0xf')](_0x7995('0x1a'));return request({'uri':util[_0x7995('0x11')](_0x7995('0x19'),_0x3116fb['remoteUri'])});}}function request(_0x2eeacc){logger['debug'](_0x7995('0x1b'),JSON[_0x7995('0x1c')](_0x2eeacc));return rp(_[_0x7995('0x8')](_0x2eeacc,{'method':_0x7995('0x1d'),'headers':headers,'json':!![]}));}function getAuth(_0x1e1415){var _0x37a7d4;if(_0x1e1415['authType']==='basic'){_0x37a7d4=util[_0x7995('0x11')]('%s:%s',_0x1e1415['username'],_0x1e1415[_0x7995('0x1e')]);}else if(_0x1e1415[_0x7995('0x1f')]==='token'){_0x37a7d4=util[_0x7995('0x11')]('%s/token:%s',_0x1e1415['username'],_0x1e1415[_0x7995('0x20')]);}return util[_0x7995('0x11')](_0x7995('0x21'),new Buffer(_0x37a7d4)[_0x7995('0x22')](_0x7995('0x23')));}function getEndUser(_0x1c278a,_0x5d40ae,_0x32a09a){logger[_0x7995('0xf')](_0x7995('0x24'),_0x32a09a);return request({'uri':util[_0x7995('0x11')](_0x7995('0x25'),_0x1c278a[_0x7995('0x12')]),'qs':{'phone':_0x32a09a}})[_0x7995('0x13')](function(_0x472195){if(_0x472195['total_entries']){logger[_0x7995('0xf')](_0x7995('0x26'));return _0x472195[_0x7995('0x16')][_0x7995('0x17')][0x0];}else{logger[_0x7995('0xf')](_0x7995('0x27'));return request({'uri':util['format'](_0x7995('0x28'),_0x1c278a['remoteUri']),'method':_0x7995('0x29'),'body':{'first_name':_0x5d40ae,'title':_0x5d40ae,'phone_numbers':[{'type':_0x7995('0x2a'),'value':_0x32a09a}]}});}});}function getTags(_0xf16cc2,_0x132a42){var _0x11c1eb=[];if(_0xf16cc2&&_0xf16cc2['length']>0x0){_0x11c1eb=_[_0x7995('0x2b')](_0xf16cc2,_0x132a42);}return _0x11c1eb;}function getCustomFields(_0x514445,_0x456a28){var _0x3250e0=[];var _0x4253e5={'custom_fields':{}};if(_0x514445['length']>0x0){_['forEach'](_0x514445,function(_0x48e573){if(_[_0x7995('0x2c')]([_0x7995('0x2d'),_0x7995('0x2e')],_0x48e573[_0x7995('0x2f')])&&_0x48e573[_0x7995('0x30')]&&!_0x48e573[_0x7995('0x31')]){_0x4253e5[_0x48e573['nameField']['toLowerCase']()]=_0x48e573[_0x7995('0x32')]['toString']();}else if(_[_0x7995('0x2c')]([_0x7995('0x2d'),_0x7995('0x2e')],_0x48e573[_0x7995('0x2f')])&&_0x48e573[_0x7995('0x33')]&&_0x48e573['customField']){_0x4253e5[_0x7995('0x34')][_0x48e573[_0x7995('0x33')]]=_0x48e573['content']['toString']();}else if(_0x48e573['type']===_0x7995('0x35')&&_0x48e573[_0x7995('0x36')]&&_0x48e573['idField']&&_0x48e573[_0x7995('0x31')]){_0x456a28[_0x48e573['variableName']]&&(_0x4253e5[_0x7995('0x34')][_0x48e573[_0x7995('0x33')]]=_0x456a28[_0x48e573[_0x7995('0x36')]]['toString']());}else if(_0x48e573['type']===_0x7995('0x37')&&_0x48e573['Variable']&&_0x48e573['Variable'][_0x7995('0x38')]&&_0x48e573[_0x7995('0x33')]&&_0x48e573['customField']){_0x456a28[_0x48e573[_0x7995('0x39')][_0x7995('0x38')][_0x7995('0x3a')]()]&&(_0x4253e5[_0x7995('0x34')][_0x48e573[_0x7995('0x33')]]=_0x456a28[_0x48e573['Variable'][_0x7995('0x38')][_0x7995('0x3a')]()][_0x7995('0x22')]());}});}if(_0x4253e5[_0x7995('0x3b')]){_0x4253e5['priority']=Number(_0x4253e5[_0x7995('0x3b')]);}return _0x4253e5;}function getTicket(_0x235df7,_0x3eb04f,_0xe5ea43,_0x1f5bee,_0x1035dc){logger['info'](_0x7995('0x3c'));var _0x3be298=_[_0x7995('0x3d')]({'subject':intUtil[_0x7995('0x3e')](_0x1f5bee[_0x7995('0x3f')],_0x1035dc,'\x20'),'type':_0x7995('0x40'),'status':_0x7995('0x41'),'labels':[_0x7995('0x42'),_0x7995('0x43'),_0x7995('0x44')][_0x7995('0x45')](getTags(_0x1f5bee[_0x7995('0x46')],_0x7995('0x38'))),'description':intUtil['getString'](_0x1f5bee['Descriptions'],_0x1035dc,'\x0a'),'_links':{'assigned_user':{'href':util[_0x7995('0x11')](_0x7995('0x47'),_0x3eb04f['id']),'class':'user'}},'message':{'direction':'in','body':intUtil['getString'](_0x1f5bee[_0x7995('0x48')],_0x1035dc,'\x0a')}},getCustomFields(_0x1f5bee['Fields'],_0x1035dc));return request({'uri':util['format'](_0x7995('0x49'),_0x235df7[_0x7995('0x12')],_0xe5ea43['id']),'method':_0x7995('0x29'),'body':_0x3be298});}exports['queue']=function(_0x46ac4f,_0x5e85b9,_0x3993b5,_0x5a8881,_0x493066,_0x39c5b8){var _0x403f54,_0xc04e5;_0x39c5b8[_0x7995('0x12')]=intUtil['stripTrailingSlash'](_0x39c5b8[_0x7995('0x12')]);_0x39c5b8[_0x7995('0x4a')]=intUtil[_0x7995('0x4b')](_0x39c5b8[_0x7995('0x4a')]);if(_0x493066&&_0x493066['monitor_format']){logger['info'](_0x7995('0x4c'),'Recording\x20is\x20enabled!');_0x5e85b9[_0x7995('0x4d')]=util['format'](_0x7995('0x4e'),_0x39c5b8['serverUrl'],_0x5e85b9[_0x7995('0x4f')],md5(_0x5e85b9[_0x7995('0x4f')]));}else{_0x5e85b9['recordingURL']='';}headers[_0x7995('0x50')]=getAuth(_0x39c5b8);return getUser(_0x39c5b8,_0x5a8881[_0x7995('0x51')])[_0x7995('0x13')](function(_0xb70a51){_0x403f54=_0xb70a51;logger['info'](_0x7995('0x52'),_0x403f54['id']);return getEndUser(_0x39c5b8,_0x5e85b9[_0x7995('0x53')],_0x5e85b9[_0x7995('0x54')]);})['then'](function(_0xe228a5){_0xc04e5=_0xe228a5;logger[_0x7995('0xf')](_0x7995('0x55'),_0xc04e5['id']);return getTicket(_0x39c5b8,_0x403f54,_0xc04e5,_0x3993b5,_0x5e85b9);})[_0x7995('0x13')](function(_0x255313){if(_0x255313){logger['info'](_0x7995('0x56'));logger[_0x7995('0xf')]('The\x20Ticket\x20ID\x20is:',_0x255313['id']);switch(_0x39c5b8[_0x7995('0x2f')]){case'integrationTab':logger[_0x7995('0xf')](_0x7995('0x4c'),_0x7995('0x57'));emit(util[_0x7995('0x11')](_0x7995('0x58'),_0x5a8881[_0x7995('0x38')]),_0x7995('0x59'),{'recordId':_0x255313['id']});break;case'newTab':logger[_0x7995('0xf')](_0x7995('0x4c'),_0x7995('0x5a'));emit(util['format'](_0x7995('0x58'),_0x5a8881[_0x7995('0x38')]),_0x7995('0x5b'),{'uri':util['format']('https://xcally.desk.com/web/agent/case/%d',_0x255313['id'])});break;default:logger['error'](_0x7995('0x4c'),_0x7995('0x5c'));}}})['catch'](function(_0x1cd85){console[_0x7995('0x5d')](_0x1cd85);logger[_0x7995('0x5d')](_0x7995('0x4c'),JSON[_0x7995('0x1c')](_0x1cd85));});};exports['outbound']=function(_0x29ee32,_0x4ab09f,_0x14fe7f,_0x33c801,_0x206d2a,_0x50c7b5,_0x5e1f34){var _0x54e2b1,_0x563f8e;_0x50c7b5[_0x7995('0x12')]=intUtil[_0x7995('0x4b')](_0x50c7b5[_0x7995('0x12')]);_0x50c7b5[_0x7995('0x4a')]=intUtil[_0x7995('0x4b')](_0x50c7b5[_0x7995('0x4a')]);if(_0x5e1f34&&_0x5e1f34[_0x7995('0x5e')]&&_0x5e1f34[_0x7995('0x5e')]!==_0x7995('0x5f')){logger[_0x7995('0xf')](_0x7995('0x60'),_0x7995('0x61'));_0x4ab09f[_0x7995('0x4d')]=util[_0x7995('0x11')](_0x7995('0x4e'),_0x50c7b5[_0x7995('0x4a')],_0x4ab09f[_0x7995('0x4f')],md5(_0x4ab09f[_0x7995('0x4f')]));}headers[_0x7995('0x50')]=getAuth(_0x50c7b5);return getUser(_0x50c7b5,_0x33c801['email'])[_0x7995('0x13')](function(_0x630737){_0x54e2b1=_0x630737;logger[_0x7995('0xf')](_0x7995('0x52'),_0x54e2b1['id']);return getEndUser(_0x50c7b5,_0x4ab09f['destcalleridname'],_0x4ab09f['destcalleridnum']);})[_0x7995('0x13')](function(_0x197b52){_0x563f8e=_0x197b52;logger[_0x7995('0xf')](_0x7995('0x55'),_0x563f8e['id']);return getTicket(_0x50c7b5,_0x54e2b1,_0x563f8e,_0x14fe7f,_0x4ab09f);})['then'](function(_0x13cd7b){if(_0x13cd7b){logger[_0x7995('0xf')](_0x7995('0x56'));logger[_0x7995('0xf')]('The\x20Ticket\x20ID\x20is:',_0x13cd7b['id']);switch(_0x50c7b5['type']){case _0x7995('0x62'):logger[_0x7995('0xf')](_0x7995('0x4c'),_0x7995('0x57'));emit(util[_0x7995('0x11')](_0x7995('0x58'),_0x33c801[_0x7995('0x38')]),_0x7995('0x59'),{'recordId':_0x13cd7b['id']});break;case _0x7995('0x63'):logger['info'](_0x7995('0x4c'),_0x7995('0x5a'));emit(util[_0x7995('0x11')](_0x7995('0x58'),_0x33c801['name']),'trigger:browser:url',{'uri':util[_0x7995('0x11')](_0x7995('0x64'),_0x50c7b5['remoteUri'],_0x13cd7b['id'])});break;default:logger[_0x7995('0x5d')](_0x7995('0x60'),_0x7995('0x5c'));}}})[_0x7995('0x65')](function(_0x32cb04){logger['error'](_0x7995('0x60'),JSON['stringify'](_0x32cb04));});};exports[_0x7995('0x66')]=function(_0xe31dcb,_0x1722e2,_0x25b534,_0x4388c1,_0xeb8920,_0x2b3c1d){var _0x44372a,_0x10f012;_0x2b3c1d[_0x7995('0x12')]=intUtil[_0x7995('0x4b')](_0x2b3c1d[_0x7995('0x12')]);_0x2b3c1d['serverUrl']=intUtil[_0x7995('0x4b')](_0x2b3c1d[_0x7995('0x4a')]);if(_0xeb8920&&_0xeb8920[_0x7995('0x67')]){logger[_0x7995('0xf')]('['+_0x1722e2[_0x7995('0x68')]['toUpperCase']()+']','Recording\x20is\x20enabled!');_0x1722e2[_0x7995('0x4d')]=util[_0x7995('0x11')](_0x7995('0x4e'),_0x2b3c1d[_0x7995('0x4a')],_0x1722e2['uniqueid'],md5(_0x1722e2[_0x7995('0x4f')]));}else{_0x1722e2['recordingURL']='';}headers['Authorization']=getAuth(_0x2b3c1d);return getUser(_0x2b3c1d)[_0x7995('0x13')](function(_0x36d27d){_0x44372a=_0x36d27d;logger[_0x7995('0xf')](_0x7995('0x52'),_0x44372a['id']);return getEndUser(_0x2b3c1d,_0x1722e2[_0x7995('0x53')],_0x1722e2[_0x7995('0x54')]);})[_0x7995('0x13')](function(_0x13dc73){_0x10f012=_0x13dc73;logger[_0x7995('0xf')](_0x7995('0x55'),_0x10f012['id']);return getTicket(_0x2b3c1d,_0x44372a,_0x10f012,_0x25b534,_0x1722e2);})['then'](function(_0x2dc1f7){if(_0x2dc1f7){logger[_0x7995('0xf')](_0x7995('0x56'));logger['info'](_0x7995('0x69'),_0x2dc1f7['id']);}})[_0x7995('0x65')](function(_0x705f0){logger[_0x7995('0x5d')]('['+_0x1722e2[_0x7995('0x68')][_0x7995('0x6a')]()+']',JSON[_0x7995('0x1c')](_0x705f0));});};
\ No newline at end of file
+var _0x7217=['format','%s/users','remoteUri','then','total_entries','find','entries','info','Agent\x20found!','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','%s/users/me','debug','stringify','GET','authType','basic','%s:%s','username','password','token','Basic\x20%s','base64','Searching\x20enduser\x20with\x20phone','%s/customers/search','Enduser\x20found!','_embedded','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','length','map','forEach','string','picklist','nameField','customField','content','toString','includes','idField','custom_fields','variable','variableName','type','customVariable','Variable','name','toLowerCase','priority','Creating\x20new\x20ticket...','merge','getString','new','xCALLY','Motion','CTI','Tags','Descriptions','user','%s/customers/%d/cases','queue','stripTrailingSlash','serverUrl','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','Authorization','email','The\x20User\x20ID\x20is:','calleridnum','The\x20Enduser\x20ID\x20is:','Ticket\x20created!','integrationTab','Displaying\x20ticket\x20to\x20agent...','user:%s','trigger:desk:display','newTab','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','trigger:browser:url','https://xcally.desk.com/web/agent/case/%d','error','catch','outbound','recordingFormat','none','[OUTBOUND]','uniqueid','The\x20Ticket\x20ID\x20is:','%s/agent/tickets/%s','unmanaged','lastevent','toUpperCase','calleridname','lodash','md5','util','ioredis','./util','../../../../config/environment','redis','defaults','localhost','socket.io-emitter','emit','application/json','validateEmail','Getting\x20agent\x20with\x20email'];(function(_0x1ae26d,_0x3074bc){var _0x258f9c=function(_0x187356){while(--_0x187356){_0x1ae26d['push'](_0x1ae26d['shift']());}};_0x258f9c(++_0x3074bc);}(_0x7217,0x19e));var _0x7721=function(_0x3b5250,_0x7a0b2c){_0x3b5250=_0x3b5250-0x0;var _0xc844a1=_0x7217[_0x3b5250];return _0xc844a1;};'use strict';var _=require(_0x7721('0x0'));var rp=require('request-promise');var md5=require(_0x7721('0x1'));var util=require(_0x7721('0x2'));var Redis=require(_0x7721('0x3'));var intUtil=require(_0x7721('0x4'));var config=require(_0x7721('0x5'));var logger=require('../../../../config/logger')('desk');config[_0x7721('0x6')]=_[_0x7721('0x7')](config[_0x7721('0x6')],{'host':_0x7721('0x8'),'port':0x18eb});var io=require(_0x7721('0x9'))(new Redis(config[_0x7721('0x6')]));function emit(_0x18ab6b,_0x21f680,_0x225610){io['to'](_0x18ab6b)[_0x7721('0xa')](_0x21f680,_0x225610);}var headers={'Content-Type':_0x7721('0xb'),'Accept':_0x7721('0xb')};function getUser(_0xfa8835,_0x138740){if(intUtil[_0x7721('0xc')](_0x138740)===!![]){logger['info'](_0x7721('0xd'),_0x138740);return request({'uri':util[_0x7721('0xe')](_0x7721('0xf'),_0xfa8835[_0x7721('0x10')])})[_0x7721('0x11')](function(_0x409b37){if(_0x409b37[_0x7721('0x12')]){return _[_0x7721('0x13')](_0x409b37['_embedded'][_0x7721('0x14')],{'email':_0x138740});}})[_0x7721('0x11')](function(_0x57ff6d){if(_0x57ff6d){logger[_0x7721('0x15')](_0x7721('0x16'));return _0x57ff6d;}else{logger[_0x7721('0x15')](_0x7721('0x17'));return request({'uri':util['format'](_0x7721('0x18'),_0xfa8835[_0x7721('0x10')])});}});}else{logger['info']('Invalid\x20email\x20format,\x20using\x20the\x20admin\x20account!');return request({'uri':util['format'](_0x7721('0x18'),_0xfa8835[_0x7721('0x10')])});}}function request(_0x3cc909){logger[_0x7721('0x19')]('[HTTP]',JSON[_0x7721('0x1a')](_0x3cc909));return rp(_['defaults'](_0x3cc909,{'method':_0x7721('0x1b'),'headers':headers,'json':!![]}));}function getAuth(_0x5cb0e6){var _0xfec626;if(_0x5cb0e6[_0x7721('0x1c')]===_0x7721('0x1d')){_0xfec626=util[_0x7721('0xe')](_0x7721('0x1e'),_0x5cb0e6[_0x7721('0x1f')],_0x5cb0e6[_0x7721('0x20')]);}else if(_0x5cb0e6[_0x7721('0x1c')]===_0x7721('0x21')){_0xfec626=util[_0x7721('0xe')]('%s/token:%s',_0x5cb0e6[_0x7721('0x1f')],_0x5cb0e6[_0x7721('0x21')]);}return util[_0x7721('0xe')](_0x7721('0x22'),new Buffer(_0xfec626)['toString'](_0x7721('0x23')));}function getEndUser(_0x512f31,_0xb9e9dd,_0x288e3a){logger[_0x7721('0x15')](_0x7721('0x24'),_0x288e3a);return request({'uri':util[_0x7721('0xe')](_0x7721('0x25'),_0x512f31[_0x7721('0x10')]),'qs':{'phone':_0x288e3a}})['then'](function(_0x216f20){if(_0x216f20[_0x7721('0x12')]){logger[_0x7721('0x15')](_0x7721('0x26'));return _0x216f20[_0x7721('0x27')][_0x7721('0x14')][0x0];}else{logger[_0x7721('0x15')](_0x7721('0x28'));return request({'uri':util[_0x7721('0xe')]('%s/customers',_0x512f31[_0x7721('0x10')]),'method':'POST','body':{'first_name':_0xb9e9dd,'title':_0xb9e9dd,'phone_numbers':[{'type':'work','value':_0x288e3a}]}});}});}function getTags(_0x315202,_0x343c19){var _0x53c904=[];if(_0x315202&&_0x315202[_0x7721('0x29')]>0x0){_0x53c904=_[_0x7721('0x2a')](_0x315202,_0x343c19);}return _0x53c904;}function getCustomFields(_0x37b9f0,_0xd7d703){var _0x1da2d8=[];var _0x5c54f0={'custom_fields':{}};if(_0x37b9f0[_0x7721('0x29')]>0x0){_[_0x7721('0x2b')](_0x37b9f0,function(_0x497f9f){if(_['includes']([_0x7721('0x2c'),_0x7721('0x2d')],_0x497f9f['type'])&&_0x497f9f[_0x7721('0x2e')]&&!_0x497f9f[_0x7721('0x2f')]){_0x5c54f0[_0x497f9f[_0x7721('0x2e')]['toLowerCase']()]=_0x497f9f[_0x7721('0x30')][_0x7721('0x31')]();}else if(_[_0x7721('0x32')]([_0x7721('0x2c'),_0x7721('0x2d')],_0x497f9f['type'])&&_0x497f9f[_0x7721('0x33')]&&_0x497f9f[_0x7721('0x2f')]){_0x5c54f0[_0x7721('0x34')][_0x497f9f['idField']]=_0x497f9f[_0x7721('0x30')][_0x7721('0x31')]();}else if(_0x497f9f['type']===_0x7721('0x35')&&_0x497f9f['variableName']&&_0x497f9f[_0x7721('0x33')]&&_0x497f9f[_0x7721('0x2f')]){_0xd7d703[_0x497f9f[_0x7721('0x36')]]&&(_0x5c54f0[_0x7721('0x34')][_0x497f9f[_0x7721('0x33')]]=_0xd7d703[_0x497f9f[_0x7721('0x36')]][_0x7721('0x31')]());}else if(_0x497f9f[_0x7721('0x37')]===_0x7721('0x38')&&_0x497f9f[_0x7721('0x39')]&&_0x497f9f[_0x7721('0x39')]['name']&&_0x497f9f[_0x7721('0x33')]&&_0x497f9f['customField']){_0xd7d703[_0x497f9f[_0x7721('0x39')][_0x7721('0x3a')][_0x7721('0x3b')]()]&&(_0x5c54f0[_0x7721('0x34')][_0x497f9f[_0x7721('0x33')]]=_0xd7d703[_0x497f9f[_0x7721('0x39')]['name']['toLowerCase']()]['toString']());}});}if(_0x5c54f0['priority']){_0x5c54f0[_0x7721('0x3c')]=Number(_0x5c54f0[_0x7721('0x3c')]);}return _0x5c54f0;}function getTicket(_0x1acc72,_0x22ef35,_0x4a90ce,_0xa389fa,_0x4cf659){logger[_0x7721('0x15')](_0x7721('0x3d'));var _0x5a278e=_[_0x7721('0x3e')]({'subject':intUtil[_0x7721('0x3f')](_0xa389fa['Subjects'],_0x4cf659,'\x20'),'type':'phone','status':_0x7721('0x40'),'labels':[_0x7721('0x41'),_0x7721('0x42'),_0x7721('0x43')]['concat'](getTags(_0xa389fa[_0x7721('0x44')],_0x7721('0x3a'))),'description':intUtil[_0x7721('0x3f')](_0xa389fa[_0x7721('0x45')],_0x4cf659,'\x0a'),'_links':{'assigned_user':{'href':util[_0x7721('0xe')]('/api/v2/users/%d',_0x22ef35['id']),'class':_0x7721('0x46')}},'message':{'direction':'in','body':intUtil['getString'](_0xa389fa[_0x7721('0x45')],_0x4cf659,'\x0a')}},getCustomFields(_0xa389fa['Fields'],_0x4cf659));return request({'uri':util[_0x7721('0xe')](_0x7721('0x47'),_0x1acc72[_0x7721('0x10')],_0x4a90ce['id']),'method':'POST','body':_0x5a278e});}exports[_0x7721('0x48')]=function(_0x11d853,_0x1ad315,_0x481fa8,_0x9f7b1d,_0x754071,_0xdb3033){var _0x2d5f35,_0x135dbc;_0xdb3033[_0x7721('0x10')]=intUtil[_0x7721('0x49')](_0xdb3033['remoteUri']);_0xdb3033['serverUrl']=intUtil[_0x7721('0x49')](_0xdb3033[_0x7721('0x4a')]);if(_0x754071&&_0x754071[_0x7721('0x4b')]){logger[_0x7721('0x15')](_0x7721('0x4c'),_0x7721('0x4d'));_0x1ad315[_0x7721('0x4e')]=util[_0x7721('0xe')](_0x7721('0x4f'),_0xdb3033[_0x7721('0x4a')],_0x1ad315['uniqueid'],md5(_0x1ad315['uniqueid']));}else{_0x1ad315[_0x7721('0x4e')]='';}headers[_0x7721('0x50')]=getAuth(_0xdb3033);return getUser(_0xdb3033,_0x9f7b1d[_0x7721('0x51')])[_0x7721('0x11')](function(_0x589e95){_0x2d5f35=_0x589e95;logger[_0x7721('0x15')](_0x7721('0x52'),_0x2d5f35['id']);return getEndUser(_0xdb3033,_0x1ad315['calleridname'],_0x1ad315[_0x7721('0x53')]);})['then'](function(_0x2682b1){_0x135dbc=_0x2682b1;logger['info'](_0x7721('0x54'),_0x135dbc['id']);return getTicket(_0xdb3033,_0x2d5f35,_0x135dbc,_0x481fa8,_0x1ad315);})[_0x7721('0x11')](function(_0xf17c40){if(_0xf17c40){logger['info'](_0x7721('0x55'));logger[_0x7721('0x15')]('The\x20Ticket\x20ID\x20is:',_0xf17c40['id']);switch(_0xdb3033[_0x7721('0x37')]){case _0x7721('0x56'):logger[_0x7721('0x15')]('[QUEUE]',_0x7721('0x57'));emit(util['format'](_0x7721('0x58'),_0x9f7b1d[_0x7721('0x3a')]),_0x7721('0x59'),{'recordId':_0xf17c40['id']});break;case _0x7721('0x5a'):logger[_0x7721('0x15')](_0x7721('0x4c'),_0x7721('0x5b'));emit(util[_0x7721('0xe')](_0x7721('0x58'),_0x9f7b1d[_0x7721('0x3a')]),_0x7721('0x5c'),{'uri':util[_0x7721('0xe')](_0x7721('0x5d'),_0xf17c40['id'])});break;default:logger[_0x7721('0x5e')](_0x7721('0x4c'),'Desk\x20account\x20type\x20not\x20recognized');}}})[_0x7721('0x5f')](function(_0x2f6f30){console[_0x7721('0x5e')](_0x2f6f30);logger[_0x7721('0x5e')](_0x7721('0x4c'),JSON[_0x7721('0x1a')](_0x2f6f30));});};exports[_0x7721('0x60')]=function(_0x57484c,_0x234bee,_0x17036e,_0x134908,_0x3b7382,_0x1f1e84,_0x9c0d4){var _0x7fbd6c,_0x33287d;_0x1f1e84[_0x7721('0x10')]=intUtil[_0x7721('0x49')](_0x1f1e84[_0x7721('0x10')]);_0x1f1e84['serverUrl']=intUtil[_0x7721('0x49')](_0x1f1e84[_0x7721('0x4a')]);if(_0x9c0d4&&_0x9c0d4[_0x7721('0x61')]&&_0x9c0d4[_0x7721('0x61')]!==_0x7721('0x62')){logger[_0x7721('0x15')](_0x7721('0x63'),_0x7721('0x4d'));_0x234bee[_0x7721('0x4e')]=util[_0x7721('0xe')](_0x7721('0x4f'),_0x1f1e84[_0x7721('0x4a')],_0x234bee[_0x7721('0x64')],md5(_0x234bee[_0x7721('0x64')]));}headers[_0x7721('0x50')]=getAuth(_0x1f1e84);return getUser(_0x1f1e84,_0x134908['email'])['then'](function(_0x4e112e){_0x7fbd6c=_0x4e112e;logger[_0x7721('0x15')]('The\x20User\x20ID\x20is:',_0x7fbd6c['id']);return getEndUser(_0x1f1e84,_0x234bee['destcalleridname'],_0x234bee['destcalleridnum']);})['then'](function(_0x47925a){_0x33287d=_0x47925a;logger[_0x7721('0x15')](_0x7721('0x54'),_0x33287d['id']);return getTicket(_0x1f1e84,_0x7fbd6c,_0x33287d,_0x17036e,_0x234bee);})['then'](function(_0x5181d7){if(_0x5181d7){logger['info']('Ticket\x20created!');logger['info'](_0x7721('0x65'),_0x5181d7['id']);switch(_0x1f1e84['type']){case'integrationTab':logger['info'](_0x7721('0x4c'),_0x7721('0x57'));emit(util[_0x7721('0xe')]('user:%s',_0x134908[_0x7721('0x3a')]),_0x7721('0x59'),{'recordId':_0x5181d7['id']});break;case _0x7721('0x5a'):logger[_0x7721('0x15')](_0x7721('0x4c'),_0x7721('0x5b'));emit(util[_0x7721('0xe')](_0x7721('0x58'),_0x134908[_0x7721('0x3a')]),_0x7721('0x5c'),{'uri':util[_0x7721('0xe')](_0x7721('0x66'),_0x1f1e84[_0x7721('0x10')],_0x5181d7['id'])});break;default:logger[_0x7721('0x5e')](_0x7721('0x63'),'Desk\x20account\x20type\x20not\x20recognized');}}})[_0x7721('0x5f')](function(_0x2c93b0){logger[_0x7721('0x5e')](_0x7721('0x63'),JSON['stringify'](_0x2c93b0));});};exports[_0x7721('0x67')]=function(_0x104f05,_0x4c8284,_0x3e7df3,_0x5d37ad,_0x1f508d,_0x4bfb48){var _0x36a3a6,_0x3f9eaa;_0x4bfb48[_0x7721('0x10')]=intUtil[_0x7721('0x49')](_0x4bfb48[_0x7721('0x10')]);_0x4bfb48[_0x7721('0x4a')]=intUtil[_0x7721('0x49')](_0x4bfb48['serverUrl']);if(_0x1f508d&&_0x1f508d[_0x7721('0x4b')]){logger[_0x7721('0x15')]('['+_0x4c8284[_0x7721('0x68')][_0x7721('0x69')]()+']',_0x7721('0x4d'));_0x4c8284[_0x7721('0x4e')]=util[_0x7721('0xe')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x4bfb48[_0x7721('0x4a')],_0x4c8284[_0x7721('0x64')],md5(_0x4c8284['uniqueid']));}else{_0x4c8284[_0x7721('0x4e')]='';}headers['Authorization']=getAuth(_0x4bfb48);return getUser(_0x4bfb48)[_0x7721('0x11')](function(_0x382800){_0x36a3a6=_0x382800;logger[_0x7721('0x15')](_0x7721('0x52'),_0x36a3a6['id']);return getEndUser(_0x4bfb48,_0x4c8284[_0x7721('0x6a')],_0x4c8284[_0x7721('0x53')]);})[_0x7721('0x11')](function(_0x5dca04){_0x3f9eaa=_0x5dca04;logger[_0x7721('0x15')](_0x7721('0x54'),_0x3f9eaa['id']);return getTicket(_0x4bfb48,_0x36a3a6,_0x3f9eaa,_0x3e7df3,_0x4c8284);})[_0x7721('0x11')](function(_0x5f08cc){if(_0x5f08cc){logger['info']('Ticket\x20created!');logger['info']('The\x20Ticket\x20ID\x20is:',_0x5f08cc['id']);}})[_0x7721('0x5f')](function(_0x2645dd){logger['error']('['+_0x4c8284[_0x7721('0x68')][_0x7721('0x69')]()+']',JSON[_0x7721('0x1a')](_0x2645dd));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x73c7=['isdisabled','info',']\x20Agent\x20found\x20','systemuserid','userId','destcalleridnum','calleridnum','contacts','/systemusers(','Bearer\x20','lastIndexOf','enduserId','toLowerCase','outbound','contacts?$select=telephone1&$filter=telephone1\x20eq\x20\x27','replace','%2b','contact','telephone1','toUpperCase',']\x20Enduser\x20NOT\x20Created\x20-\x20ModuleCreate\x20=\x20Nothing','forEach','includes','string','picklist','type','nameField','customField','substring','indexOf','ticketType','incident','incidents','assign','getString','Subjects','Descriptions','/contacts(','Fields','phonecall','callDirection','queue','headers','odata-entityid','ticketId','format','user:%s','emit','stripTrailingSlash','serverUrl','unmanaged','%s/api/data/v9.0/','https://login.microsoftonline.com/%s/oauth2/token','tenantId','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','recordingFormat','[OUTBOUND]','recordingURL',']\x20The\x20User\x20ID\x20is:','moduleCreate',']\x20The\x20Enduser\x20ID\x20is:',']\x20The\x20%s\x20ID\x20is:\x20%s',']\x20Call\x20direction:\x20%s','Displaying\x20call\x20in\x20a\x20new\x20tab...','lodash','request-promise','util','md5','ioredis','../../../../config/logger','../../../../config/environment','redis','defaults','socket.io-emitter','POST','clientId','remoteUri','username','password','clientSecret','then','access_token','catch','error',']\x20Wrong\x20credentials!','message','GET','systemusers?$select=internalemailaddress,isdisabled,systemuserid','4.0','value','isNil','userEmail','email','length','internalemailaddress'];(function(_0x1c3297,_0xfc395e){var _0x29e4ae=function(_0x1bfcd9){while(--_0x1bfcd9){_0x1c3297['push'](_0x1c3297['shift']());}};_0x29e4ae(++_0xfc395e);}(_0x73c7,0x16d));var _0x773c=function(_0x44b136,_0x7594ec){_0x44b136=_0x44b136-0x0;var _0x1adcc7=_0x73c7[_0x44b136];return _0x1adcc7;};'use strict';var _=require(_0x773c('0x0'));var BPromise=require('bluebird');var rp=require(_0x773c('0x1'));var util=require(_0x773c('0x2'));var intUtil=require('./util');var md5=require(_0x773c('0x3'));var Redis=require(_0x773c('0x4'));var logger=require(_0x773c('0x5'))('dynamics365');var config=require(_0x773c('0x6'));config[_0x773c('0x7')]=_[_0x773c('0x8')](config['redis'],{'host':'localhost','port':0x18eb});var io=require(_0x773c('0x9'))(new Redis(config[_0x773c('0x7')]));function getAuthToken(_0x1ea7e2,_0x45463a,_0x9b72ef){var _0x33c426={'method':_0x773c('0xa'),'uri':_0x45463a,'form':{'client_id':_0x1ea7e2[_0x773c('0xb')],'resource':_0x1ea7e2[_0x773c('0xc')],'username':_0x1ea7e2[_0x773c('0xd')],'password':_0x1ea7e2[_0x773c('0xe')],'grant_type':'password','client_secret':_0x1ea7e2[_0x773c('0xf')]},'json':!![]};return rp(_0x33c426)[_0x773c('0x10')](function(_0x153f0e){return _0x153f0e[_0x773c('0x11')];})[_0x773c('0x12')](function(_0x38e490){logger[_0x773c('0x13')]('['+[_0x9b72ef['toUpperCase']()]+_0x773c('0x14'));return _0x38e490[_0x773c('0x15')];});}function getUser(_0x5da65d,_0x547f66,_0x507751,_0x1fa9dd,_0x2f90a5,_0x469a34){return new BPromise(function(_0x1dcad7,_0x279839){return getAuthToken(_0x547f66,_0x1fa9dd,_0x469a34)[_0x773c('0x10')](function(_0x11b0b5){var _0x4aa0c8={'method':_0x773c('0x16'),'uri':_0x2f90a5+_0x773c('0x17'),'headers':{'Authorization':'Bearer\x20'+_0x11b0b5,'OData-Version':_0x773c('0x18')},'json':!![]};return rp(_0x4aa0c8);})['then'](function(_0x378a1d){var _0x11e050=_0x378a1d[_0x773c('0x19')];var _0x1a7df5=![];var _0x49cede=null;if(!_[_0x773c('0x1a')](_0x507751)){if(intUtil['validateEmail'](_0x507751['email'])){_0x5da65d[_0x773c('0x1b')]=_0x507751[_0x773c('0x1c')];for(_0x49cede=0x0;_0x49cede<_0x11e050[_0x773c('0x1d')];_0x49cede++){if(_0x11e050[_0x49cede][_0x773c('0x1e')]===_0x507751['email']&&!_0x11e050[_0x49cede][_0x773c('0x1f')]){_0x1a7df5=!![];logger[_0x773c('0x20')]('['+[_0x469a34['toUpperCase']()]+_0x773c('0x21')+_0x11e050[_0x49cede][_0x773c('0x22')]+'!');_0x5da65d['userId']=_0x11e050[_0x49cede][_0x773c('0x22')];}}}}if(!_0x1a7df5){logger[_0x773c('0x20')]('['+[_0x469a34['toUpperCase']()]+']\x20Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!');_0x5da65d[_0x773c('0x1b')]=_0x547f66[_0x773c('0xd')];for(_0x49cede=0x0;_0x49cede<_0x11e050[_0x773c('0x1d')];_0x49cede++){if(_0x11e050[_0x49cede][_0x773c('0x1e')]===_0x547f66[_0x773c('0xd')]){_0x5da65d[_0x773c('0x23')]=_0x11e050[_0x49cede][_0x773c('0x22')];}}}_0x1dcad7(_0x5da65d);})['catch'](function(_0x5baa7a){_0x279839(_0x5baa7a[_0x773c('0x15')]);});});}function createEndUser(_0x314cc5,_0x4ef3bc,_0x6e8a62,_0x1a55d5,_0x2f9e7e,_0x2dd580){return new BPromise(function(_0x47dc3a,_0x55a502){return getAuthToken(_0x4ef3bc,_0x6e8a62,_0x2dd580)[_0x773c('0x10')](function(_0x3e67b7){var _0x3f32da=_0x2dd580['toLowerCase']()==='outbound'?_0x2f9e7e[_0x773c('0x24')]:_0x2f9e7e[_0x773c('0x25')];var _0x29f3cb={'method':_0x773c('0xa'),'uri':_0x1a55d5+_0x773c('0x26'),'body':{'telephone1':_0x3f32da,'fullname':_0x3f32da,'firstname':_0x3f32da,'lastname':'_','mobilephone':null,'address1_telephone1':null,'ownerid@odata.bind':_0x773c('0x27')+_0x314cc5[_0x773c('0x23')]+')'},'headers':{'Authorization':_0x773c('0x28')+_0x3e67b7,'OData-Version':'4.0'},'json':!![],'resolveWithFullResponse':!![]};return rp(_0x29f3cb);})[_0x773c('0x10')](function(_0x1eb831){var _0xbf6a84=_0x1eb831['headers']['odata-entityid'];var _0x3b3cff=_0xbf6a84['substring'](_0xbf6a84[_0x773c('0x29')]('(')+0x1,_0xbf6a84[_0x773c('0x29')](')'));_0x314cc5[_0x773c('0x2a')]=_0x3b3cff;_0x47dc3a(_0x314cc5);})[_0x773c('0x12')](function(_0x20ec40){_0x55a502(_0x20ec40[_0x773c('0x15')]);});});}function getEndUser(_0x38053b,_0x57a4a8,_0x33b91b,_0x382d7b,_0x53b6ec,_0x50101a,_0x22a94e){return new BPromise(function(_0x4b1d9a,_0x3cb326){var _0x30a0c6=_0x50101a[_0x773c('0x2b')]()===_0x773c('0x2c')?_0x53b6ec[_0x773c('0x24')]:_0x53b6ec['calleridnum'];return getAuthToken(_0x57a4a8,_0x33b91b,_0x50101a)[_0x773c('0x10')](function(_0x6a797f){var _0x116652={'method':_0x773c('0x16'),'uri':_0x382d7b+_0x773c('0x2d')+_0x30a0c6[_0x773c('0x2e')]('+',_0x773c('0x2f'))+'\x27','headers':{'Authorization':_0x773c('0x28')+_0x6a797f,'If-None-Match':null,'OData-Version':_0x773c('0x18')},'json':!![]};return rp(_0x116652);})['then'](function(_0x56a10b){var _0x41d2e4=null;if(_0x56a10b){var _0x589914=_0x56a10b[_0x773c('0x19')];var _0x1a03b4=![];if(_0x22a94e===_0x773c('0x30')){for(_0x41d2e4=0x0;_0x41d2e4<_0x589914[_0x773c('0x1d')];_0x41d2e4++){if(_0x589914[_0x41d2e4][_0x773c('0x31')]===_0x30a0c6){_0x1a03b4=!![];_0x38053b['enduserId']=_0x589914[_0x41d2e4]['contactid'];}}}if(_0x1a03b4){_0x4b1d9a(_0x38053b);}else{return createEndUser(_0x38053b,_0x57a4a8,_0x33b91b,_0x382d7b,_0x53b6ec,_0x50101a)[_0x773c('0x10')](function(_0x4af2e9){logger[_0x773c('0x20')]('['+[_0x50101a['toUpperCase']()]+']\x20Enduser\x20created!',_0x4af2e9['enduserId']);_0x4b1d9a(_0x4af2e9);});}}else{if(_0x22a94e==='nothing'){logger[_0x773c('0x20')]('['+[_0x50101a[_0x773c('0x32')]()]+_0x773c('0x33'));return _0x4b1d9a(_0x38053b);}return createEndUser(_0x38053b,_0x57a4a8,_0x33b91b,_0x382d7b,_0x53b6ec,_0x50101a)[_0x773c('0x10')](function(_0x4d6144){logger[_0x773c('0x20')]('['+[_0x50101a[_0x773c('0x32')]()]+']\x20Enduser\x20Created!',_0x4d6144[_0x773c('0x2a')]);_0x4b1d9a(_0x4d6144);});}});});}function getCustomFields(_0xdd0a12,_0x1eec8b,_0x2d271f){var _0x59a969={};if(_0xdd0a12['length']>0x0){_[_0x773c('0x34')](_0xdd0a12,function(_0x439453){if(_[_0x773c('0x35')]([_0x773c('0x36'),_0x773c('0x37')],_0x439453[_0x773c('0x38')])&&_0x439453[_0x773c('0x39')]&&!_0x439453[_0x773c('0x3a')]){var _0x1c9a00=_0x439453['idField']['toLowerCase']();var _0x5a52a5=_0x1c9a00['substring'](0x0,_0x1c9a00['indexOf']('_'));var _0x2de9b2=_0x1c9a00[_0x773c('0x3b')](_0x1c9a00[_0x773c('0x3c')]('_')+0x1);if(_0x5a52a5===_0x2d271f){_0x59a969[_0x2de9b2]=_0x439453['content'];}}});}return _0x59a969;}function getTicket(_0x4022e8,_0x419902,_0x51ac34,_0x510dae,_0x52b0d9,_0x20f06e,_0x2c9237){return new BPromise(function(_0x583536,_0x52b9c2){var _0x3dc650;return getAuthToken(_0x419902,_0x51ac34,_0x2c9237)['then'](function(_0x8d564b){if(_0x20f06e[_0x773c('0x3d')]===_0x773c('0x3e')){_0x3dc650={'method':'POST','uri':_0x510dae+_0x773c('0x3f'),'body':Object[_0x773c('0x40')]({},{'title':intUtil[_0x773c('0x41')](_0x20f06e[_0x773c('0x42')],_0x52b0d9,'\x20'),'description':intUtil[_0x773c('0x41')](_0x20f06e[_0x773c('0x43')],_0x52b0d9,'\x0a'),'customerid_contact@odata.bind':_0x773c('0x44')+_0x4022e8[_0x773c('0x2a')]+')','ownerid@odata.bind':_0x773c('0x27')+_0x4022e8[_0x773c('0x23')]+')','caseorigincode':'1'},getCustomFields(_0x20f06e[_0x773c('0x45')],_0x52b0d9,_0x20f06e[_0x773c('0x3d')])),'headers':{'Authorization':'Bearer\x20'+_0x8d564b,'OData-Version':'4.0'},'json':!![],'resolveWithFullResponse':!![]};}if(_0x20f06e['ticketType']===_0x773c('0x46')){_0x3dc650={'method':_0x773c('0xa'),'uri':_0x510dae+'phonecalls','body':Object['assign']({},{'subject':intUtil[_0x773c('0x41')](_0x20f06e[_0x773c('0x42')],_0x52b0d9,'\x20'),'phonenumber':String(_0x52b0d9[_0x773c('0x25')]),'description':intUtil['getString'](_0x20f06e[_0x773c('0x43')],_0x52b0d9,'\x0a'),'regardingobjectid_contact@odata.bind':_0x773c('0x44')+_0x4022e8['enduserId']+')','ownerid@odata.bind':_0x773c('0x27')+_0x4022e8[_0x773c('0x23')]+')','directioncode':_0x4022e8[_0x773c('0x47')]===_0x773c('0x48')?![]:!![],'phonecall_activity_parties':[{'partyid_systemuser@odata.bind':'/systemusers('+_0x4022e8[_0x773c('0x23')]+')','participationtypemask':_0x4022e8[_0x773c('0x47')]===_0x773c('0x48')?0x2:0x1},{'partyid_contact@odata.bind':_0x773c('0x44')+_0x4022e8['enduserId']+')','participationtypemask':_0x4022e8[_0x773c('0x47')]===_0x773c('0x48')?0x1:0x2}]},getCustomFields(_0x20f06e[_0x773c('0x45')],_0x52b0d9,_0x20f06e['ticketType'])),'headers':{'Authorization':'Bearer\x20'+_0x8d564b,'OData-Version':'4.0'},'json':!![],'resolveWithFullResponse':!![]};}return rp(_0x3dc650);})['then'](function(_0x5d961a){var _0x558af7=_0x5d961a[_0x773c('0x49')][_0x773c('0x4a')];var _0xc96926=_0x558af7['substring'](_0x558af7['lastIndexOf']('(')+0x1,_0x558af7[_0x773c('0x29')](')'));_0x4022e8[_0x773c('0x4b')]=_0xc96926;_0x583536(_0x4022e8);})['catch'](function(_0x29290a){_0x52b9c2(_0x29290a[_0x773c('0x15')]);});});}function emit(_0x21878e,_0x578bf9,_0x4ab725,_0x44719a){var _0x3b41eb={'uri':util[_0x773c('0x4c')]('%s/main.aspx?pagetype=entityrecord&etn=%s&id=%s',_0x21878e,_0x4ab725,_0x44719a)};io['to'](util[_0x773c('0x4c')](_0x773c('0x4d'),_0x578bf9))[_0x773c('0x4e')]('trigger:browser:url',_0x3b41eb);}exports['cs']=function(_0x227e8b,_0x78362f,_0x55d406,_0x25bf1d,_0x20b9af,_0x3bc0c8,_0x38fdad,_0x33aa0b){var _0x44c8bd={};_0x3bc0c8[_0x773c('0xc')]=intUtil[_0x773c('0x4f')](_0x3bc0c8[_0x773c('0xc')]);_0x3bc0c8[_0x773c('0x50')]=intUtil[_0x773c('0x4f')](_0x3bc0c8['serverUrl']);_0x44c8bd[_0x773c('0x47')]=_0x33aa0b===_0x773c('0x48')||_0x33aa0b===_0x773c('0x51')?'queue':_0x773c('0x2c');var _0x45f7d3=util[_0x773c('0x4c')](_0x773c('0x52'),_0x3bc0c8[_0x773c('0xc')]);var _0x51393e=util['format'](_0x773c('0x53'),_0x3bc0c8[_0x773c('0x54')]);var _0x5b47fa=util['format'](_0x773c('0x55'),_0x3bc0c8['serverUrl'],_0x78362f[_0x773c('0x56')],md5(_0x78362f[_0x773c('0x56')]));if(_0x20b9af&&_0x20b9af[_0x773c('0x57')]){logger['info'](_0x773c('0x58'),_0x773c('0x59'));_0x78362f['recordingURL']=_0x5b47fa;}else if(_0x38fdad&&_0x38fdad[_0x773c('0x5a')]&&_0x38fdad[_0x773c('0x5a')]!=='none'){logger['info'](_0x773c('0x5b'),'Recording\x20is\x20enabled!');_0x78362f[_0x773c('0x5c')]=_0x5b47fa;}else{_0x78362f[_0x773c('0x5c')]='';}return getUser(_0x44c8bd,_0x3bc0c8,_0x25bf1d,_0x51393e,_0x45f7d3,_0x33aa0b)[_0x773c('0x10')](function(_0x425266){logger[_0x773c('0x20')]('['+_0x33aa0b['toUpperCase']()+_0x773c('0x5d'),_0x425266[_0x773c('0x23')]);logger[_0x773c('0x20')]('['+_0x33aa0b[_0x773c('0x32')]()+']\x20The\x20User\x20email\x20is:',_0x425266['userEmail']);return getEndUser(_0x425266,_0x3bc0c8,_0x51393e,_0x45f7d3,_0x78362f,_0x33aa0b,_0x55d406[_0x773c('0x5e')]);})[_0x773c('0x10')](function(_0x33b125){logger[_0x773c('0x20')]('['+_0x33aa0b[_0x773c('0x32')]()+_0x773c('0x5f'),_0x33b125[_0x773c('0x2a')]);logger[_0x773c('0x20')]('['+_0x33aa0b[_0x773c('0x32')]()+']\x20The\x20Enduser\x20phone\x20is:',_0x78362f[_0x773c('0x25')]);return getTicket(_0x33b125,_0x3bc0c8,_0x51393e,_0x45f7d3,_0x78362f,_0x55d406,_0x33aa0b);})['then'](function(_0x408fcf){logger[_0x773c('0x20')](util[_0x773c('0x4c')]('['+_0x33aa0b['toUpperCase']()+_0x773c('0x60'),_0x55d406[_0x773c('0x3d')],_0x408fcf[_0x773c('0x4b')]));logger[_0x773c('0x20')](util[_0x773c('0x4c')]('['+_0x33aa0b[_0x773c('0x32')]()+_0x773c('0x61'),_0x33aa0b));if(_0x33aa0b!==_0x773c('0x51')){logger[_0x773c('0x20')]('['+_0x33aa0b[_0x773c('0x32')]()+']',_0x773c('0x62'));emit(_0x3bc0c8[_0x773c('0xc')],_0x25bf1d['name'],_0x55d406['ticketType'],_0x408fcf[_0x773c('0x4b')]);}})[_0x773c('0x12')](function(_0x2fe4fb){logger[_0x773c('0x13')]('['+_0x33aa0b[_0x773c('0x32')]()+']\x20Error\x20running\x20Dynamics365\x20integration',util['inspect'](_0x2fe4fb,{'showHidden':!![],'depth':null}));});};
\ No newline at end of file
+var _0x1375=['systemuserid','userEmail','catch','message','toLowerCase','/systemusers(','userId','headers','odata-entityid','substring','lastIndexOf','outbound','destcalleridnum','calleridnum','GET','contacts?$select=telephone1&$filter=telephone1\x20eq\x20\x27','replace','%2b','telephone1','enduserId','contactid',']\x20Enduser\x20Created!','forEach','includes','string','picklist','type','nameField','customField','idField','indexOf','incident','incidents','assign','getString','Subjects','/contacts(','Fields','ticketType','phonecall','phonecalls','callDirection','ticketId','format','%s/main.aspx?pagetype=entityrecord&etn=%s&id=%s','user:%s','emit','serverUrl','stripTrailingSlash','queue','tenantId','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','monitor_format','[QUEUE]','recordingURL','recordingFormat','none','[OUTBOUND]','Recording\x20is\x20enabled!',']\x20The\x20User\x20email\x20is:',']\x20The\x20Enduser\x20phone\x20is:',']\x20The\x20%s\x20ID\x20is:\x20%s',']\x20Call\x20direction:\x20%s','unmanaged','Displaying\x20call\x20in\x20a\x20new\x20tab...','error',']\x20Error\x20running\x20Dynamics365\x20integration','lodash','bluebird','request-promise','./util','md5','../../../../config/logger','dynamics365','../../../../config/environment','redis','defaults','localhost','socket.io-emitter','POST','clientId','remoteUri','username','password','then','access_token','toUpperCase',']\x20Wrong\x20credentials!','systemusers?$select=internalemailaddress,isdisabled,systemuserid','Bearer\x20','4.0','value','validateEmail','email','length','internalemailaddress','isdisabled','info',']\x20Agent\x20found\x20'];(function(_0x135c09,_0x17be93){var _0x195acf=function(_0x31a2d9){while(--_0x31a2d9){_0x135c09['push'](_0x135c09['shift']());}};_0x195acf(++_0x17be93);}(_0x1375,0x170));var _0x5137=function(_0x14869b,_0x57bcad){_0x14869b=_0x14869b-0x0;var _0x18a142=_0x1375[_0x14869b];return _0x18a142;};'use strict';var _=require(_0x5137('0x0'));var BPromise=require(_0x5137('0x1'));var rp=require(_0x5137('0x2'));var util=require('util');var intUtil=require(_0x5137('0x3'));var md5=require(_0x5137('0x4'));var Redis=require('ioredis');var logger=require(_0x5137('0x5'))(_0x5137('0x6'));var config=require(_0x5137('0x7'));config[_0x5137('0x8')]=_[_0x5137('0x9')](config[_0x5137('0x8')],{'host':_0x5137('0xa'),'port':0x18eb});var io=require(_0x5137('0xb'))(new Redis(config[_0x5137('0x8')]));function getAuthToken(_0x3f3143,_0x435957,_0xfa622e){var _0x1826f3={'method':_0x5137('0xc'),'uri':_0x435957,'form':{'client_id':_0x3f3143[_0x5137('0xd')],'resource':_0x3f3143[_0x5137('0xe')],'username':_0x3f3143[_0x5137('0xf')],'password':_0x3f3143[_0x5137('0x10')],'grant_type':'password','client_secret':_0x3f3143['clientSecret']},'json':!![]};return rp(_0x1826f3)[_0x5137('0x11')](function(_0x248ca0){return _0x248ca0[_0x5137('0x12')];})['catch'](function(_0x16d4e5){logger['error']('['+[_0xfa622e[_0x5137('0x13')]()]+_0x5137('0x14'));return _0x16d4e5['message'];});}function getUser(_0x56a95e,_0xd96e41,_0x2c2992,_0x15a0ff,_0x226d51,_0x2890cb){return new BPromise(function(_0xb7e412,_0x3a08cf){return getAuthToken(_0xd96e41,_0x15a0ff,_0x2890cb)['then'](function(_0x57d020){var _0xbff1ea={'method':'GET','uri':_0x226d51+_0x5137('0x15'),'headers':{'Authorization':_0x5137('0x16')+_0x57d020,'OData-Version':_0x5137('0x17')},'json':!![]};return rp(_0xbff1ea);})['then'](function(_0x18b9cf){var _0x37b199=_0x18b9cf[_0x5137('0x18')];var _0xad7083=![];var _0x34a32f=null;if(!_['isNil'](_0x2c2992)){if(intUtil[_0x5137('0x19')](_0x2c2992[_0x5137('0x1a')])){_0x56a95e['userEmail']=_0x2c2992[_0x5137('0x1a')];for(_0x34a32f=0x0;_0x34a32f<_0x37b199[_0x5137('0x1b')];_0x34a32f++){if(_0x37b199[_0x34a32f][_0x5137('0x1c')]===_0x2c2992[_0x5137('0x1a')]&&!_0x37b199[_0x34a32f][_0x5137('0x1d')]){_0xad7083=!![];logger[_0x5137('0x1e')]('['+[_0x2890cb[_0x5137('0x13')]()]+_0x5137('0x1f')+_0x37b199[_0x34a32f][_0x5137('0x20')]+'!');_0x56a95e['userId']=_0x37b199[_0x34a32f][_0x5137('0x20')];}}}}if(!_0xad7083){logger[_0x5137('0x1e')]('['+[_0x2890cb[_0x5137('0x13')]()]+']\x20Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!');_0x56a95e[_0x5137('0x21')]=_0xd96e41['username'];for(_0x34a32f=0x0;_0x34a32f<_0x37b199[_0x5137('0x1b')];_0x34a32f++){if(_0x37b199[_0x34a32f][_0x5137('0x1c')]===_0xd96e41['username']){_0x56a95e['userId']=_0x37b199[_0x34a32f][_0x5137('0x20')];}}}_0xb7e412(_0x56a95e);})[_0x5137('0x22')](function(_0xc4c6a5){_0x3a08cf(_0xc4c6a5[_0x5137('0x23')]);});});}function createEndUser(_0x26b329,_0x25f882,_0x46e426,_0x34a7e5,_0x4707eb,_0x4399ad){return new BPromise(function(_0x3aa0f8,_0x3d8f42){return getAuthToken(_0x25f882,_0x46e426,_0x4399ad)[_0x5137('0x11')](function(_0x13f38f){var _0x5a4c6a=_0x4399ad[_0x5137('0x24')]()==='outbound'?_0x4707eb['destcalleridnum']:_0x4707eb['calleridnum'];var _0x1d4812={'method':_0x5137('0xc'),'uri':_0x34a7e5+'contacts','body':{'telephone1':_0x5a4c6a,'fullname':_0x5a4c6a,'firstname':_0x5a4c6a,'lastname':'_','mobilephone':null,'address1_telephone1':null,'ownerid@odata.bind':_0x5137('0x25')+_0x26b329[_0x5137('0x26')]+')'},'headers':{'Authorization':_0x5137('0x16')+_0x13f38f,'OData-Version':_0x5137('0x17')},'json':!![],'resolveWithFullResponse':!![]};return rp(_0x1d4812);})[_0x5137('0x11')](function(_0x4add85){var _0x187046=_0x4add85[_0x5137('0x27')][_0x5137('0x28')];var _0x2edfab=_0x187046[_0x5137('0x29')](_0x187046[_0x5137('0x2a')]('(')+0x1,_0x187046['lastIndexOf'](')'));_0x26b329['enduserId']=_0x2edfab;_0x3aa0f8(_0x26b329);})['catch'](function(_0x4c39b4){_0x3d8f42(_0x4c39b4[_0x5137('0x23')]);});});}function getEndUser(_0x4e5570,_0x4bada8,_0x5988d9,_0x2ba315,_0x4a0c4d,_0x5bdd1d){return new BPromise(function(_0x4d2166,_0x10d995){var _0x14ae99=_0x5bdd1d['toLowerCase']()===_0x5137('0x2b')?_0x4a0c4d[_0x5137('0x2c')]:_0x4a0c4d[_0x5137('0x2d')];return getAuthToken(_0x4bada8,_0x5988d9,_0x5bdd1d)[_0x5137('0x11')](function(_0x2b35c2){var _0x36faa9={'method':_0x5137('0x2e'),'uri':_0x2ba315+_0x5137('0x2f')+_0x14ae99[_0x5137('0x30')]('+',_0x5137('0x31'))+'\x27','headers':{'Authorization':_0x5137('0x16')+_0x2b35c2,'If-None-Match':null,'OData-Version':_0x5137('0x17')},'json':!![]};return rp(_0x36faa9);})['then'](function(_0x23f433){var _0x5798a0=null;if(_0x23f433){var _0x3a113c=_0x23f433[_0x5137('0x18')];var _0x5de038=![];for(_0x5798a0=0x0;_0x5798a0<_0x3a113c['length'];_0x5798a0++){if(_0x3a113c[_0x5798a0][_0x5137('0x32')]===_0x14ae99){_0x5de038=!![];_0x4e5570[_0x5137('0x33')]=_0x3a113c[_0x5798a0][_0x5137('0x34')];}}if(_0x5de038){_0x4d2166(_0x4e5570);}else{return createEndUser(_0x4e5570,_0x4bada8,_0x5988d9,_0x2ba315,_0x4a0c4d,_0x5bdd1d)[_0x5137('0x11')](function(_0x1e49f0){logger[_0x5137('0x1e')]('['+[_0x5bdd1d['toUpperCase']()]+']\x20Enduser\x20created!',_0x1e49f0[_0x5137('0x33')]);_0x4d2166(_0x1e49f0);});}}else{return createEndUser(_0x4e5570,_0x4bada8,_0x5988d9,_0x2ba315,_0x4a0c4d,_0x5bdd1d)[_0x5137('0x11')](function(_0xf09980){logger['info']('['+[_0x5bdd1d[_0x5137('0x13')]()]+_0x5137('0x35'),_0xf09980[_0x5137('0x33')]);_0x4d2166(_0xf09980);});}});});}function getCustomFields(_0xacc2ce,_0x1cb996,_0x44e568){var _0x2397e8={};if(_0xacc2ce[_0x5137('0x1b')]>0x0){_[_0x5137('0x36')](_0xacc2ce,function(_0x4cde37){if(_[_0x5137('0x37')]([_0x5137('0x38'),_0x5137('0x39')],_0x4cde37[_0x5137('0x3a')])&&_0x4cde37[_0x5137('0x3b')]&&!_0x4cde37[_0x5137('0x3c')]){var _0x39dd32=_0x4cde37[_0x5137('0x3d')][_0x5137('0x24')]();var _0x2a60df=_0x39dd32['substring'](0x0,_0x39dd32[_0x5137('0x3e')]('_'));var _0x5db3fb=_0x39dd32[_0x5137('0x29')](_0x39dd32[_0x5137('0x3e')]('_')+0x1);if(_0x2a60df===_0x44e568){_0x2397e8[_0x5db3fb]=_0x4cde37['content'];}}});}return _0x2397e8;}function getTicket(_0x49b128,_0x357619,_0x5e0db6,_0x2b2c34,_0x44e279,_0x16f4da,_0x3556e7){return new BPromise(function(_0x2bf4b8,_0x2b65c0){var _0x50eda3;return getAuthToken(_0x357619,_0x5e0db6,_0x3556e7)[_0x5137('0x11')](function(_0x15a72f){if(_0x16f4da['ticketType']===_0x5137('0x3f')){_0x50eda3={'method':_0x5137('0xc'),'uri':_0x2b2c34+_0x5137('0x40'),'body':Object[_0x5137('0x41')]({},{'title':intUtil[_0x5137('0x42')](_0x16f4da[_0x5137('0x43')],_0x44e279,'\x20'),'description':intUtil['getString'](_0x16f4da['Descriptions'],_0x44e279,'\x0a'),'customerid_contact@odata.bind':_0x5137('0x44')+_0x49b128[_0x5137('0x33')]+')','ownerid@odata.bind':_0x5137('0x25')+_0x49b128[_0x5137('0x26')]+')','caseorigincode':'1'},getCustomFields(_0x16f4da[_0x5137('0x45')],_0x44e279,_0x16f4da[_0x5137('0x46')])),'headers':{'Authorization':'Bearer\x20'+_0x15a72f,'OData-Version':_0x5137('0x17')},'json':!![],'resolveWithFullResponse':!![]};}if(_0x16f4da['ticketType']===_0x5137('0x47')){_0x50eda3={'method':_0x5137('0xc'),'uri':_0x2b2c34+_0x5137('0x48'),'body':Object[_0x5137('0x41')]({},{'subject':intUtil['getString'](_0x16f4da[_0x5137('0x43')],_0x44e279,'\x20'),'phonenumber':String(_0x44e279['calleridnum']),'description':intUtil[_0x5137('0x42')](_0x16f4da['Descriptions'],_0x44e279,'\x0a'),'regardingobjectid_contact@odata.bind':_0x5137('0x44')+_0x49b128['enduserId']+')','ownerid@odata.bind':'/systemusers('+_0x49b128[_0x5137('0x26')]+')','directioncode':_0x49b128[_0x5137('0x49')]==='queue'?![]:!![],'phonecall_activity_parties':[{'partyid_systemuser@odata.bind':_0x5137('0x25')+_0x49b128[_0x5137('0x26')]+')','participationtypemask':_0x49b128[_0x5137('0x49')]==='queue'?0x2:0x1},{'partyid_contact@odata.bind':_0x5137('0x44')+_0x49b128[_0x5137('0x33')]+')','participationtypemask':_0x49b128[_0x5137('0x49')]==='queue'?0x1:0x2}]},getCustomFields(_0x16f4da[_0x5137('0x45')],_0x44e279,_0x16f4da['ticketType'])),'headers':{'Authorization':_0x5137('0x16')+_0x15a72f,'OData-Version':'4.0'},'json':!![],'resolveWithFullResponse':!![]};}return rp(_0x50eda3);})[_0x5137('0x11')](function(_0x1ccc36){var _0x39cb08=_0x1ccc36[_0x5137('0x27')][_0x5137('0x28')];var _0x22d4ff=_0x39cb08['substring'](_0x39cb08['lastIndexOf']('(')+0x1,_0x39cb08[_0x5137('0x2a')](')'));_0x49b128[_0x5137('0x4a')]=_0x22d4ff;_0x2bf4b8(_0x49b128);})[_0x5137('0x22')](function(_0x598c9f){_0x2b65c0(_0x598c9f[_0x5137('0x23')]);});});}function emit(_0x33a8f5,_0x2a6885,_0x19f785,_0x5ceda8){var _0x52baa7={'uri':util[_0x5137('0x4b')](_0x5137('0x4c'),_0x33a8f5,_0x19f785,_0x5ceda8)};io['to'](util[_0x5137('0x4b')](_0x5137('0x4d'),_0x2a6885))[_0x5137('0x4e')]('trigger:browser:url',_0x52baa7);}exports['cs']=function(_0x45d059,_0x18b452,_0x2cdbea,_0x1a9d12,_0x385102,_0x1c2213,_0x312cdc,_0x2845b){var _0x9b83cd={};_0x1c2213[_0x5137('0xe')]=intUtil['stripTrailingSlash'](_0x1c2213[_0x5137('0xe')]);_0x1c2213[_0x5137('0x4f')]=intUtil[_0x5137('0x50')](_0x1c2213[_0x5137('0x4f')]);_0x9b83cd['callDirection']=_0x2845b===_0x5137('0x51')||_0x2845b==='unmanaged'?'queue':'outbound';var _0x36b67d=util[_0x5137('0x4b')]('%s/api/data/v9.0/',_0x1c2213[_0x5137('0xe')]);var _0x29972b=util['format']('https://login.microsoftonline.com/%s/oauth2/token',_0x1c2213[_0x5137('0x52')]);var _0x274289=util[_0x5137('0x4b')](_0x5137('0x53'),_0x1c2213[_0x5137('0x4f')],_0x18b452[_0x5137('0x54')],md5(_0x18b452[_0x5137('0x54')]));if(_0x385102&&_0x385102[_0x5137('0x55')]){logger[_0x5137('0x1e')](_0x5137('0x56'),'Recording\x20is\x20enabled!');_0x18b452[_0x5137('0x57')]=_0x274289;}else if(_0x312cdc&&_0x312cdc['recordingFormat']&&_0x312cdc[_0x5137('0x58')]!==_0x5137('0x59')){logger[_0x5137('0x1e')](_0x5137('0x5a'),_0x5137('0x5b'));_0x18b452['recordingURL']=_0x274289;}else{_0x18b452[_0x5137('0x57')]='';}return getUser(_0x9b83cd,_0x1c2213,_0x1a9d12,_0x29972b,_0x36b67d,_0x2845b)[_0x5137('0x11')](function(_0x91366e){logger['info']('['+_0x2845b[_0x5137('0x13')]()+']\x20The\x20User\x20ID\x20is:',_0x91366e[_0x5137('0x26')]);logger['info']('['+_0x2845b[_0x5137('0x13')]()+_0x5137('0x5c'),_0x91366e[_0x5137('0x21')]);return getEndUser(_0x91366e,_0x1c2213,_0x29972b,_0x36b67d,_0x18b452,_0x2845b);})[_0x5137('0x11')](function(_0x389b77){logger[_0x5137('0x1e')]('['+_0x2845b[_0x5137('0x13')]()+']\x20The\x20Enduser\x20ID\x20is:',_0x389b77[_0x5137('0x33')]);logger[_0x5137('0x1e')]('['+_0x2845b['toUpperCase']()+_0x5137('0x5d'),_0x18b452[_0x5137('0x2d')]);return getTicket(_0x389b77,_0x1c2213,_0x29972b,_0x36b67d,_0x18b452,_0x2cdbea,_0x2845b);})[_0x5137('0x11')](function(_0x33d1db){logger['info'](util[_0x5137('0x4b')]('['+_0x2845b['toUpperCase']()+_0x5137('0x5e'),_0x2cdbea[_0x5137('0x46')],_0x33d1db[_0x5137('0x4a')]));logger[_0x5137('0x1e')](util[_0x5137('0x4b')]('['+_0x2845b['toUpperCase']()+_0x5137('0x5f'),_0x2845b));if(_0x2845b!==_0x5137('0x60')){logger['info']('['+_0x2845b[_0x5137('0x13')]()+']',_0x5137('0x61'));emit(_0x1c2213[_0x5137('0xe')],_0x1a9d12['name'],_0x2cdbea[_0x5137('0x46')],_0x33d1db[_0x5137('0x4a')]);}})[_0x5137('0x22')](function(_0x54f2de){logger[_0x5137('0x62')]('['+_0x2845b[_0x5137('0x13')]()+_0x5137('0x63'),util['inspect'](_0x54f2de,{'showHidden':!![],'depth':null}));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x877d=['[QUEUE]','Recording\x20is\x20enabled!','recordingURL','uniqueid','The\x20User\x20ID\x20is:','The\x20Enduser\x20ID\x20is:','Ticket\x20created!','The\x20Ticket\x20ID\x20is:','user:%s','trigger:browser:url','%s/helpdesk/tickets/%d','catch','error','stringify','outbound','recordingFormat','none','[OUTBOUND]','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','destcalleridname','destcalleridnum','unmanaged','lastevent','toUpperCase','Authorization','lodash','md5','util','ioredis','./util','../../../../config/environment','../../../../config/logger','freshdesk','redis','localhost','application/json','emit','info','merge','format','Caller\x20-\x20%s','calleridname','calleridnum','getString','Descriptions','<br>','Tags','name','Fields','custom_fields','keyBy','value','%s/api/v2/tickets','remoteUri','POST','validateEmail','%s/api/v2/agents','then','Agent\x20found!','find','contact','email','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','%s/api/v2/agents/me','Admin\x20account\x20selected.','Invalid\x20email\x20format,\x20using\x20the\x20admin\x20account!','%s/api/v2/contacts','length','Enduser\x20found!','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','Basic\x20%s','apiKey','toString','base64','debug','[HTTP]','map','includes','picklist','type','toLowerCase','content','idField','customField','push','variableName','customVariable','Variable','stripTrailingSlash','serverUrl','monitor_format'];(function(_0x2f3baf,_0x501577){var _0x4b2f1a=function(_0x1a6ccc){while(--_0x1a6ccc){_0x2f3baf['push'](_0x2f3baf['shift']());}};_0x4b2f1a(++_0x501577);}(_0x877d,0x74));var _0xd877=function(_0x289c3e,_0x3614b5){_0x289c3e=_0x289c3e-0x0;var _0x25a4b3=_0x877d[_0x289c3e];return _0x25a4b3;};'use strict';var _=require(_0xd877('0x0'));var rp=require('request-promise');var md5=require(_0xd877('0x1'));var util=require(_0xd877('0x2'));var Redis=require(_0xd877('0x3'));var intUtil=require(_0xd877('0x4'));var config=require(_0xd877('0x5'));var logger=require(_0xd877('0x6'))(_0xd877('0x7'));config[_0xd877('0x8')]=_['defaults'](config[_0xd877('0x8')],{'host':_0xd877('0x9'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0xd877('0x8')]));var headers={'Content-Type':_0xd877('0xa'),'Accept':_0xd877('0xa')};function emit(_0x23478d,_0xed02f3,_0x5e936e){io['to'](_0x23478d)[_0xd877('0xb')](_0xed02f3,_0x5e936e);}function getTicket(_0x2ac135,_0x2a4a1e,_0x55b094,_0x36b245,_0x43e872){logger[_0xd877('0xc')]('Creating\x20new\x20ticket...');var _0x4c909a=_[_0xd877('0xd')]({'responder_id':_0x2a4a1e['id'],'requester_id':_0x55b094['id'],'name':util[_0xd877('0xe')](_0xd877('0xf'),_0x43e872[_0xd877('0x10')]),'phone':_0x43e872[_0xd877('0x11')],'source':0x3,'priority':0x1,'status':0x2,'subject':intUtil[_0xd877('0x12')](_0x36b245['Subjects'],_0x43e872,'\x20'),'description':intUtil[_0xd877('0x12')](_0x36b245[_0xd877('0x13')],_0x43e872,_0xd877('0x14')),'tags':getTags(_0x36b245[_0xd877('0x15')],_0xd877('0x16'))},getCustomFields(_0x36b245[_0xd877('0x17')],_0x43e872));_0x4c909a[_0xd877('0x18')]=_['mapValues'](_[_0xd877('0x19')](_0x4c909a[_0xd877('0x18')],'id'),_0xd877('0x1a'));return request({'uri':util[_0xd877('0xe')](_0xd877('0x1b'),_0x2ac135[_0xd877('0x1c')]),'method':_0xd877('0x1d'),'body':_0x4c909a})['then'](function(_0x3718d0){logger[_0xd877('0xc')]('Ticket\x20created!');return _0x3718d0;});}function getUser(_0x4bf473,_0x4c0d0e){if(intUtil[_0xd877('0x1e')](_0x4c0d0e)){return request({'uri':util[_0xd877('0xe')](_0xd877('0x1f'),_0x4bf473[_0xd877('0x1c')]),'qs':{'email':_0x4c0d0e}})[_0xd877('0x20')](function(_0xacc64e){if(_0xacc64e['length']){logger[_0xd877('0xc')](_0xd877('0x21'));return _[_0xd877('0x22')](_0xacc64e,function(_0xf554c4){return _0xf554c4[_0xd877('0x23')][_0xd877('0x24')]===_0x4c0d0e;});}else{logger[_0xd877('0xc')](_0xd877('0x25'));return request({'uri':util[_0xd877('0xe')](_0xd877('0x26'),_0x4bf473[_0xd877('0x1c')])})[_0xd877('0x20')](function(_0x40bcad){logger[_0xd877('0xc')](_0xd877('0x27'));return _0x40bcad;});}});}else{logger[_0xd877('0xc')](_0xd877('0x28'));return request({'uri':util['format'](_0xd877('0x26'),_0x4bf473['remoteUri'])})[_0xd877('0x20')](function(_0x21178e){logger['info']('Admin\x20account\x20selected.');return _0x21178e;});}}function getEndUser(_0x333a95,_0x28885f,_0x464214){logger[_0xd877('0xc')]('Searching\x20enduser\x20with\x20phone',_0x464214);return request({'uri':util[_0xd877('0xe')](_0xd877('0x29'),_0x333a95[_0xd877('0x1c')]),'qs':{'phone':_0x464214}})[_0xd877('0x20')](function(_0x3a6046){if(_0x3a6046[_0xd877('0x2a')]){logger[_0xd877('0xc')](_0xd877('0x2b'));return _[_0xd877('0x22')](_0x3a6046,{'phone':_0x464214});}else{logger['info'](_0xd877('0x2c'));return request({'uri':util[_0xd877('0xe')](_0xd877('0x29'),_0x333a95['remoteUri']),'method':_0xd877('0x1d'),'body':{'name':_0x28885f,'phone':_0x464214}})['then'](function(_0x5613b3){logger[_0xd877('0xc')]('Enduser\x20created.');return _0x5613b3;});}});}function getAuth(_0x46f2ef){return util[_0xd877('0xe')](_0xd877('0x2d'),new Buffer(_0x46f2ef[_0xd877('0x2e')]+':X')[_0xd877('0x2f')](_0xd877('0x30')));}function request(_0x40e2c9){logger[_0xd877('0x31')](_0xd877('0x32'),JSON['stringify'](_0x40e2c9));return rp(_['defaults'](_0x40e2c9,{'method':'GET','headers':headers,'json':!![]}));}function getTags(_0x53c185,_0x3d1817){var _0x829233=[];if(_0x53c185&&_0x53c185[_0xd877('0x2a')]>0x0){_0x829233=_[_0xd877('0x33')](_0x53c185,_0x3d1817);}return _0x829233;}function getCustomFields(_0x44ca1b,_0x56ed5e){var _0x20b771=[];var _0x3b1783={'custom_fields':[]};if(_0x44ca1b[_0xd877('0x2a')]>0x0){_['forEach'](_0x44ca1b,function(_0x5c7ac6){if(_[_0xd877('0x34')](['string',_0xd877('0x35')],_0x5c7ac6[_0xd877('0x36')])&&_0x5c7ac6['nameField']&&!_0x5c7ac6['customField']){_0x3b1783[_0x5c7ac6['nameField'][_0xd877('0x37')]()]=_0x5c7ac6[_0xd877('0x38')]['toString']();}else if(_[_0xd877('0x34')](['string',_0xd877('0x35')],_0x5c7ac6[_0xd877('0x36')])&&_0x5c7ac6[_0xd877('0x39')]&&_0x5c7ac6[_0xd877('0x3a')]){_0x3b1783[_0xd877('0x18')][_0xd877('0x3b')]({'id':_0x5c7ac6[_0xd877('0x39')],'value':_0x5c7ac6['content'][_0xd877('0x2f')]()});}else if(_0x5c7ac6[_0xd877('0x36')]==='variable'&&_0x5c7ac6[_0xd877('0x3c')]&&_0x5c7ac6[_0xd877('0x39')]&&_0x5c7ac6[_0xd877('0x3a')]){_0x56ed5e[_0x5c7ac6[_0xd877('0x3c')]]&&_0x3b1783[_0xd877('0x18')][_0xd877('0x3b')]({'id':_0x5c7ac6[_0xd877('0x39')],'value':_0x56ed5e[_0x5c7ac6[_0xd877('0x3c')]]['toString']()});}else if(_0x5c7ac6['type']===_0xd877('0x3d')&&_0x5c7ac6[_0xd877('0x3e')]&&_0x5c7ac6['Variable']['name']&&_0x5c7ac6[_0xd877('0x39')]&&_0x5c7ac6[_0xd877('0x3a')]){_0x56ed5e[_0x5c7ac6['Variable']['name']['toLowerCase']()]&&_0x3b1783[_0xd877('0x18')][_0xd877('0x3b')]({'id':_0x5c7ac6[_0xd877('0x39')],'value':_0x56ed5e[_0x5c7ac6[_0xd877('0x3e')][_0xd877('0x16')][_0xd877('0x37')]()][_0xd877('0x2f')]()});}});}return _0x3b1783;}exports['queue']=function(_0x1d0a31,_0x2aed69,_0x36eccf,_0x5e0b3a,_0x3c69d2,_0x39431b){var _0xd507e4,_0x1ac5e4;_0x39431b[_0xd877('0x1c')]=intUtil[_0xd877('0x3f')](_0x39431b[_0xd877('0x1c')]);_0x39431b['serverUrl']=intUtil['stripTrailingSlash'](_0x39431b[_0xd877('0x40')]);if(_0x3c69d2&&_0x3c69d2[_0xd877('0x41')]){logger[_0xd877('0xc')](_0xd877('0x42'),_0xd877('0x43'));_0x2aed69[_0xd877('0x44')]=util[_0xd877('0xe')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x39431b[_0xd877('0x40')],_0x2aed69[_0xd877('0x45')],md5(_0x2aed69[_0xd877('0x45')]));}else{_0x2aed69['recordingURL']='';}headers['Authorization']=getAuth(_0x39431b);return getUser(_0x39431b,_0x5e0b3a[_0xd877('0x24')])[_0xd877('0x20')](function(_0x56e68f){_0xd507e4=_0x56e68f;logger[_0xd877('0xc')](_0xd877('0x46'),_0xd507e4['id']);return getEndUser(_0x39431b,_0x2aed69[_0xd877('0x10')],_0x2aed69['calleridnum']);})[_0xd877('0x20')](function(_0x2a80b5){_0x1ac5e4=_0x2a80b5;logger['info'](_0xd877('0x47'),_0x1ac5e4['id']);return getTicket(_0x39431b,_0xd507e4,_0x1ac5e4,_0x36eccf,_0x2aed69);})[_0xd877('0x20')](function(_0x42ef46){if(_0x42ef46&&_0x42ef46['id']){logger['info'](_0xd877('0x48'));logger[_0xd877('0xc')](_0xd877('0x49'),_0x42ef46['id']);logger['info'](_0xd877('0x42'),'Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...');emit(util['format'](_0xd877('0x4a'),_0x5e0b3a['name']),_0xd877('0x4b'),{'uri':util[_0xd877('0xe')](_0xd877('0x4c'),_0x39431b[_0xd877('0x1c')],_0x42ef46['id'])});}})[_0xd877('0x4d')](function(_0x161092){logger[_0xd877('0x4e')](_0xd877('0x42'),JSON[_0xd877('0x4f')](_0x161092));});};exports[_0xd877('0x50')]=function(_0x10515d,_0x4dd860,_0x38bf0f,_0x507e3e,_0x438a69,_0x21d605,_0x52b574){var _0x140ba3,_0x41b479;_0x21d605[_0xd877('0x1c')]=intUtil[_0xd877('0x3f')](_0x21d605[_0xd877('0x1c')]);_0x21d605[_0xd877('0x40')]=intUtil[_0xd877('0x3f')](_0x21d605[_0xd877('0x40')]);if(_0x52b574&&_0x52b574[_0xd877('0x51')]&&_0x52b574[_0xd877('0x51')]!==_0xd877('0x52')){logger[_0xd877('0xc')](_0xd877('0x53'),_0xd877('0x43'));_0x4dd860[_0xd877('0x44')]=util[_0xd877('0xe')](_0xd877('0x54'),_0x21d605['serverUrl'],_0x4dd860[_0xd877('0x45')],md5(_0x4dd860[_0xd877('0x45')]));}headers['Authorization']=getAuth(_0x21d605);return getUser(_0x21d605,_0x507e3e['email'])[_0xd877('0x20')](function(_0x30dcbf){_0x140ba3=_0x30dcbf;logger[_0xd877('0xc')](_0xd877('0x46'),_0x140ba3['id']);return getEndUser(_0x21d605,_0x4dd860[_0xd877('0x55')],_0x4dd860[_0xd877('0x56')]);})[_0xd877('0x20')](function(_0x5a48f8){_0x41b479=_0x5a48f8;logger[_0xd877('0xc')](_0xd877('0x47'),_0x41b479['id']);return getTicket(_0x21d605,_0x140ba3,_0x41b479,_0x38bf0f,_0x4dd860);})[_0xd877('0x20')](function(_0x2b6316){if(_0x2b6316&&_0x2b6316['id']){logger['info'](_0xd877('0x48'));logger[_0xd877('0xc')](_0xd877('0x49'),_0x2b6316['id']);logger[_0xd877('0xc')](_0xd877('0x53'),'Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...');emit(util[_0xd877('0xe')](_0xd877('0x4a'),_0x507e3e[_0xd877('0x16')]),'trigger:browser:url',{'uri':util[_0xd877('0xe')](_0xd877('0x4c'),_0x21d605[_0xd877('0x1c')],_0x2b6316['id'])});}})['catch'](function(_0x26b22b){logger[_0xd877('0x4e')](_0xd877('0x53'),JSON[_0xd877('0x4f')](_0x26b22b));});};exports[_0xd877('0x57')]=function(_0x263c43,_0x12187b,_0x28145b,_0x2f5fbd,_0x218c91,_0x374756){var _0x24562c,_0x3a26dc;_0x374756[_0xd877('0x1c')]=intUtil[_0xd877('0x3f')](_0x374756[_0xd877('0x1c')]);_0x374756['serverUrl']=intUtil['stripTrailingSlash'](_0x374756[_0xd877('0x40')]);if(_0x218c91&&_0x218c91['monitor_format']){logger[_0xd877('0xc')]('['+_0x12187b[_0xd877('0x58')][_0xd877('0x59')]()+']',_0xd877('0x43'));_0x12187b['recordingURL']=util[_0xd877('0xe')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x374756['serverUrl'],_0x12187b[_0xd877('0x45')],md5(_0x12187b[_0xd877('0x45')]));}else{_0x12187b[_0xd877('0x44')]='';}headers[_0xd877('0x5a')]=getAuth(_0x374756);return getUser(_0x374756,'')[_0xd877('0x20')](function(_0xd4a74d){_0x24562c=_0xd4a74d;logger[_0xd877('0xc')](_0xd877('0x46'),_0x24562c['id']);return getEndUser(_0x374756,_0x12187b[_0xd877('0x10')],_0x12187b[_0xd877('0x11')]);})[_0xd877('0x20')](function(_0x11e363){_0x3a26dc=_0x11e363;logger['info'](_0xd877('0x47'),_0x3a26dc['id']);return getTicket(_0x374756,_0x24562c,_0x3a26dc,_0x28145b,_0x12187b);})[_0xd877('0x20')](function(_0x24be53){if(_0x24be53){logger[_0xd877('0xc')](_0xd877('0x48'));logger[_0xd877('0xc')](_0xd877('0x49'),_0x24be53['id']);}})[_0xd877('0x4d')](function(_0x59e5cb){logger[_0xd877('0x4e')]('['+_0x12187b[_0xd877('0x58')][_0xd877('0x59')]()+']',JSON[_0xd877('0x4f')](_0x59e5cb));});};
\ No newline at end of file
+var _0x7baa=['push','idField','content','variable','variableName','Variable','serverUrl','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','Authorization','The\x20User\x20ID\x20is:','The\x20Enduser\x20ID\x20is:','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s','trigger:browser:url','%s/helpdesk/tickets/%d','error','stripTrailingSlash','recordingFormat','none','[OUTBOUND]','destcalleridnum','The\x20Ticket\x20ID\x20is:','catch','unmanaged','lastevent','toUpperCase','md5','util','ioredis','./util','../../../../config/environment','../../../../config/logger','freshdesk','redis','defaults','localhost','application/json','Creating\x20new\x20ticket...','Caller\x20-\x20%s','calleridname','calleridnum','getString','<br>','Tags','name','custom_fields','mapValues','keyBy','format','%s/api/v2/tickets','POST','info','Ticket\x20created!','validateEmail','%s/api/v2/agents','remoteUri','Agent\x20found!','email','%s/api/v2/agents/me','then','Admin\x20account\x20selected.','Invalid\x20email\x20format,\x20using\x20the\x20admin\x20account!','Searching\x20enduser\x20with\x20phone','%s/api/v2/contacts','Enduser\x20found!','find','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','Enduser\x20created.','Basic\x20%s','apiKey','toString','base64','[HTTP]','stringify','map','length','includes','string','picklist','type','nameField','customField'];(function(_0x571a17,_0x63fb3d){var _0x3ef337=function(_0x12096b){while(--_0x12096b){_0x571a17['push'](_0x571a17['shift']());}};_0x3ef337(++_0x63fb3d);}(_0x7baa,0x76));var _0xa7ba=function(_0x61b3ab,_0x1fc298){_0x61b3ab=_0x61b3ab-0x0;var _0x57097f=_0x7baa[_0x61b3ab];return _0x57097f;};'use strict';var _=require('lodash');var rp=require('request-promise');var md5=require(_0xa7ba('0x0'));var util=require(_0xa7ba('0x1'));var Redis=require(_0xa7ba('0x2'));var intUtil=require(_0xa7ba('0x3'));var config=require(_0xa7ba('0x4'));var logger=require(_0xa7ba('0x5'))(_0xa7ba('0x6'));config[_0xa7ba('0x7')]=_[_0xa7ba('0x8')](config[_0xa7ba('0x7')],{'host':_0xa7ba('0x9'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0xa7ba('0x7')]));var headers={'Content-Type':_0xa7ba('0xa'),'Accept':_0xa7ba('0xa')};function emit(_0xad17b8,_0x2f1d51,_0x4ca5ef){io['to'](_0xad17b8)['emit'](_0x2f1d51,_0x4ca5ef);}function getTicket(_0x40a39a,_0x105d5a,_0x4da537,_0x2b0995,_0x131757){logger['info'](_0xa7ba('0xb'));var _0x2beb9b=_['merge']({'responder_id':_0x105d5a['id'],'requester_id':_0x4da537['id'],'name':util['format'](_0xa7ba('0xc'),_0x131757[_0xa7ba('0xd')]),'phone':_0x131757[_0xa7ba('0xe')],'source':0x3,'priority':0x1,'status':0x2,'subject':intUtil[_0xa7ba('0xf')](_0x2b0995['Subjects'],_0x131757,'\x20'),'description':intUtil[_0xa7ba('0xf')](_0x2b0995['Descriptions'],_0x131757,_0xa7ba('0x10')),'tags':getTags(_0x2b0995[_0xa7ba('0x11')],_0xa7ba('0x12'))},getCustomFields(_0x2b0995['Fields'],_0x131757));_0x2beb9b[_0xa7ba('0x13')]=_[_0xa7ba('0x14')](_[_0xa7ba('0x15')](_0x2beb9b[_0xa7ba('0x13')],'id'),'value');return request({'uri':util[_0xa7ba('0x16')](_0xa7ba('0x17'),_0x40a39a['remoteUri']),'method':_0xa7ba('0x18'),'body':_0x2beb9b})['then'](function(_0xf0c09e){logger[_0xa7ba('0x19')](_0xa7ba('0x1a'));return _0xf0c09e;});}function getUser(_0x41f0ac,_0x14d487){if(intUtil[_0xa7ba('0x1b')](_0x14d487)){return request({'uri':util[_0xa7ba('0x16')](_0xa7ba('0x1c'),_0x41f0ac[_0xa7ba('0x1d')]),'qs':{'email':_0x14d487}})['then'](function(_0x523dac){if(_0x523dac['length']){logger[_0xa7ba('0x19')](_0xa7ba('0x1e'));return _['find'](_0x523dac,function(_0x186ea3){return _0x186ea3['contact'][_0xa7ba('0x1f')]===_0x14d487;});}else{logger['info']('Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!');return request({'uri':util[_0xa7ba('0x16')](_0xa7ba('0x20'),_0x41f0ac['remoteUri'])})[_0xa7ba('0x21')](function(_0x466614){logger[_0xa7ba('0x19')](_0xa7ba('0x22'));return _0x466614;});}});}else{logger['info'](_0xa7ba('0x23'));return request({'uri':util[_0xa7ba('0x16')]('%s/api/v2/agents/me',_0x41f0ac[_0xa7ba('0x1d')])})['then'](function(_0x3f978a){logger[_0xa7ba('0x19')](_0xa7ba('0x22'));return _0x3f978a;});}}function getEndUser(_0x492f53,_0x124069,_0x2b684a){logger[_0xa7ba('0x19')](_0xa7ba('0x24'),_0x2b684a);return request({'uri':util[_0xa7ba('0x16')](_0xa7ba('0x25'),_0x492f53[_0xa7ba('0x1d')]),'qs':{'phone':_0x2b684a}})['then'](function(_0x42d9ba){if(_0x42d9ba['length']){logger[_0xa7ba('0x19')](_0xa7ba('0x26'));return _[_0xa7ba('0x27')](_0x42d9ba,{'phone':_0x2b684a});}else{logger[_0xa7ba('0x19')](_0xa7ba('0x28'));return request({'uri':util['format'](_0xa7ba('0x25'),_0x492f53[_0xa7ba('0x1d')]),'method':_0xa7ba('0x18'),'body':{'name':_0x124069,'phone':_0x2b684a}})[_0xa7ba('0x21')](function(_0x127b6d){logger[_0xa7ba('0x19')](_0xa7ba('0x29'));return _0x127b6d;});}});}function getAuth(_0x367f0b){return util[_0xa7ba('0x16')](_0xa7ba('0x2a'),new Buffer(_0x367f0b[_0xa7ba('0x2b')]+':X')[_0xa7ba('0x2c')](_0xa7ba('0x2d')));}function request(_0x3464e6){logger['debug'](_0xa7ba('0x2e'),JSON[_0xa7ba('0x2f')](_0x3464e6));return rp(_[_0xa7ba('0x8')](_0x3464e6,{'method':'GET','headers':headers,'json':!![]}));}function getTags(_0x4db457,_0x46a099){var _0x244bbb=[];if(_0x4db457&&_0x4db457['length']>0x0){_0x244bbb=_[_0xa7ba('0x30')](_0x4db457,_0x46a099);}return _0x244bbb;}function getCustomFields(_0x27fd04,_0x16965e){var _0x412b20=[];var _0x40ee67={'custom_fields':[]};if(_0x27fd04[_0xa7ba('0x31')]>0x0){_['forEach'](_0x27fd04,function(_0x168285){if(_[_0xa7ba('0x32')]([_0xa7ba('0x33'),_0xa7ba('0x34')],_0x168285[_0xa7ba('0x35')])&&_0x168285[_0xa7ba('0x36')]&&!_0x168285[_0xa7ba('0x37')]){_0x40ee67[_0x168285['nameField']['toLowerCase']()]=_0x168285['content'][_0xa7ba('0x2c')]();}else if(_[_0xa7ba('0x32')]([_0xa7ba('0x33'),_0xa7ba('0x34')],_0x168285[_0xa7ba('0x35')])&&_0x168285['idField']&&_0x168285[_0xa7ba('0x37')]){_0x40ee67['custom_fields'][_0xa7ba('0x38')]({'id':_0x168285[_0xa7ba('0x39')],'value':_0x168285[_0xa7ba('0x3a')][_0xa7ba('0x2c')]()});}else if(_0x168285[_0xa7ba('0x35')]===_0xa7ba('0x3b')&&_0x168285[_0xa7ba('0x3c')]&&_0x168285[_0xa7ba('0x39')]&&_0x168285[_0xa7ba('0x37')]){_0x16965e[_0x168285[_0xa7ba('0x3c')]]&&_0x40ee67[_0xa7ba('0x13')][_0xa7ba('0x38')]({'id':_0x168285[_0xa7ba('0x39')],'value':_0x16965e[_0x168285[_0xa7ba('0x3c')]]['toString']()});}else if(_0x168285['type']==='customVariable'&&_0x168285['Variable']&&_0x168285[_0xa7ba('0x3d')][_0xa7ba('0x12')]&&_0x168285[_0xa7ba('0x39')]&&_0x168285[_0xa7ba('0x37')]){_0x16965e[_0x168285[_0xa7ba('0x3d')]['name']['toLowerCase']()]&&_0x40ee67[_0xa7ba('0x13')][_0xa7ba('0x38')]({'id':_0x168285[_0xa7ba('0x39')],'value':_0x16965e[_0x168285['Variable']['name']['toLowerCase']()]['toString']()});}});}return _0x40ee67;}exports['queue']=function(_0x251df6,_0x4c457e,_0x9feff3,_0x4adabd,_0x3260cc,_0x215395){var _0x543a95,_0x280bd2;_0x215395[_0xa7ba('0x1d')]=intUtil['stripTrailingSlash'](_0x215395['remoteUri']);_0x215395[_0xa7ba('0x3e')]=intUtil['stripTrailingSlash'](_0x215395[_0xa7ba('0x3e')]);if(_0x3260cc&&_0x3260cc[_0xa7ba('0x3f')]){logger[_0xa7ba('0x19')](_0xa7ba('0x40'),_0xa7ba('0x41'));_0x4c457e[_0xa7ba('0x42')]=util['format'](_0xa7ba('0x43'),_0x215395[_0xa7ba('0x3e')],_0x4c457e[_0xa7ba('0x44')],md5(_0x4c457e['uniqueid']));}else{_0x4c457e[_0xa7ba('0x42')]='';}headers[_0xa7ba('0x45')]=getAuth(_0x215395);return getUser(_0x215395,_0x4adabd[_0xa7ba('0x1f')])['then'](function(_0x19b1b7){_0x543a95=_0x19b1b7;logger[_0xa7ba('0x19')](_0xa7ba('0x46'),_0x543a95['id']);return getEndUser(_0x215395,_0x4c457e[_0xa7ba('0xd')],_0x4c457e[_0xa7ba('0xe')]);})[_0xa7ba('0x21')](function(_0x573877){_0x280bd2=_0x573877;logger['info'](_0xa7ba('0x47'),_0x280bd2['id']);return getTicket(_0x215395,_0x543a95,_0x280bd2,_0x9feff3,_0x4c457e);})[_0xa7ba('0x21')](function(_0x23a90d){if(_0x23a90d&&_0x23a90d['id']){logger[_0xa7ba('0x19')](_0xa7ba('0x1a'));logger[_0xa7ba('0x19')]('The\x20Ticket\x20ID\x20is:',_0x23a90d['id']);logger['info'](_0xa7ba('0x40'),_0xa7ba('0x48'));emit(util[_0xa7ba('0x16')](_0xa7ba('0x49'),_0x4adabd['name']),_0xa7ba('0x4a'),{'uri':util[_0xa7ba('0x16')](_0xa7ba('0x4b'),_0x215395[_0xa7ba('0x1d')],_0x23a90d['id'])});}})['catch'](function(_0x12f405){logger[_0xa7ba('0x4c')]('[QUEUE]',JSON[_0xa7ba('0x2f')](_0x12f405));});};exports['outbound']=function(_0x42c40a,_0x451269,_0x466d3a,_0x3418a9,_0x172467,_0x5c53c2,_0x4c6aa9){var _0x258636,_0xae5d11;_0x5c53c2[_0xa7ba('0x1d')]=intUtil[_0xa7ba('0x4d')](_0x5c53c2[_0xa7ba('0x1d')]);_0x5c53c2[_0xa7ba('0x3e')]=intUtil[_0xa7ba('0x4d')](_0x5c53c2[_0xa7ba('0x3e')]);if(_0x4c6aa9&&_0x4c6aa9['recordingFormat']&&_0x4c6aa9[_0xa7ba('0x4e')]!==_0xa7ba('0x4f')){logger[_0xa7ba('0x19')](_0xa7ba('0x50'),'Recording\x20is\x20enabled!');_0x451269['recordingURL']=util[_0xa7ba('0x16')](_0xa7ba('0x43'),_0x5c53c2[_0xa7ba('0x3e')],_0x451269['uniqueid'],md5(_0x451269[_0xa7ba('0x44')]));}headers[_0xa7ba('0x45')]=getAuth(_0x5c53c2);return getUser(_0x5c53c2,_0x3418a9[_0xa7ba('0x1f')])['then'](function(_0x317763){_0x258636=_0x317763;logger[_0xa7ba('0x19')](_0xa7ba('0x46'),_0x258636['id']);return getEndUser(_0x5c53c2,_0x451269['destcalleridname'],_0x451269[_0xa7ba('0x51')]);})[_0xa7ba('0x21')](function(_0x4dfa31){_0xae5d11=_0x4dfa31;logger['info'](_0xa7ba('0x47'),_0xae5d11['id']);return getTicket(_0x5c53c2,_0x258636,_0xae5d11,_0x466d3a,_0x451269);})['then'](function(_0x2a0d9b){if(_0x2a0d9b&&_0x2a0d9b['id']){logger[_0xa7ba('0x19')]('Ticket\x20created!');logger[_0xa7ba('0x19')](_0xa7ba('0x52'),_0x2a0d9b['id']);logger[_0xa7ba('0x19')](_0xa7ba('0x50'),_0xa7ba('0x48'));emit(util[_0xa7ba('0x16')](_0xa7ba('0x49'),_0x3418a9[_0xa7ba('0x12')]),'trigger:browser:url',{'uri':util[_0xa7ba('0x16')]('%s/helpdesk/tickets/%d',_0x5c53c2[_0xa7ba('0x1d')],_0x2a0d9b['id'])});}})[_0xa7ba('0x53')](function(_0x263fe2){logger['error'](_0xa7ba('0x50'),JSON[_0xa7ba('0x2f')](_0x263fe2));});};exports[_0xa7ba('0x54')]=function(_0xf1c1f7,_0x1d66db,_0x36bf11,_0x3d5462,_0xa20227,_0x2d1233){var _0x11dfc7,_0x1a69b0;_0x2d1233[_0xa7ba('0x1d')]=intUtil[_0xa7ba('0x4d')](_0x2d1233[_0xa7ba('0x1d')]);_0x2d1233['serverUrl']=intUtil[_0xa7ba('0x4d')](_0x2d1233[_0xa7ba('0x3e')]);if(_0xa20227&&_0xa20227[_0xa7ba('0x3f')]){logger[_0xa7ba('0x19')]('['+_0x1d66db[_0xa7ba('0x55')][_0xa7ba('0x56')]()+']',_0xa7ba('0x41'));_0x1d66db[_0xa7ba('0x42')]=util['format']('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x2d1233[_0xa7ba('0x3e')],_0x1d66db[_0xa7ba('0x44')],md5(_0x1d66db[_0xa7ba('0x44')]));}else{_0x1d66db[_0xa7ba('0x42')]='';}headers[_0xa7ba('0x45')]=getAuth(_0x2d1233);return getUser(_0x2d1233,'')[_0xa7ba('0x21')](function(_0x30f746){_0x11dfc7=_0x30f746;logger[_0xa7ba('0x19')](_0xa7ba('0x46'),_0x11dfc7['id']);return getEndUser(_0x2d1233,_0x1d66db['calleridname'],_0x1d66db[_0xa7ba('0xe')]);})[_0xa7ba('0x21')](function(_0x2b1112){_0x1a69b0=_0x2b1112;logger[_0xa7ba('0x19')](_0xa7ba('0x47'),_0x1a69b0['id']);return getTicket(_0x2d1233,_0x11dfc7,_0x1a69b0,_0x36bf11,_0x1d66db);})[_0xa7ba('0x21')](function(_0x1930ba){if(_0x1930ba){logger['info'](_0xa7ba('0x1a'));logger['info'](_0xa7ba('0x52'),_0x1930ba['id']);}})[_0xa7ba('0x53')](function(_0x4ecf21){logger[_0xa7ba('0x4c')]('['+_0x1d66db['lastevent'][_0xa7ba('0x56')]()+']',JSON[_0xa7ba('0x2f')](_0x4ecf21));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4dc9=['Subjects','Descriptions','add','YYYY-MM-DDTHH:mm:ss','task','/contacts/','user:%s','emit','trigger:browser:url','Token\x20token=','apiKey','remoteUri','stripTrailingSlash','serverUrl','username','toLowerCase','outbound','destcalleridnum','callDirection','queue','unmanaged','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','recordingFormat','none','[OUTBOUND]','The\x20ticket\x20ID\x20is:\x20%s','ticketId','Displaying\x20task\x20in\x20a\x20new\x20tab...','name',']\x20Error\x20running\x20Freshsales\x20integration','inspect','request-promise','md5','bluebird','ioredis','../../../../config/environment','../../../../config/logger','freshsales','redis','defaults','localhost','socket.io-emitter','GET','/api/selector/owners','headers','info','Getting\x20admin\x20information','then','users','email','adminEmail','adminId','Requested\x20Resource\x20not\x20Found','catch','error','toUpperCase','message','Getting\x20user\x20list','agentEmail','Getting\x20user\x20with\x20email','userEmail','userId','User\x20found:','Admin\x20selected','/api/lookup?q=','&entities=contact','find','contacts','format','Searching\x20contact\x20with\x20phone\x20%s','contactNumber','endUserId','Contact\x20found\x20mobile_number:','work_number','POST','/api/contacts','Contact\x20not\x20found,\x20creating\x20a\x20new\x20contact','contact','/api/tasks','getString'];(function(_0x49bf9c,_0x455c4a){var _0x477765=function(_0x127af2){while(--_0x127af2){_0x49bf9c['push'](_0x49bf9c['shift']());}};_0x477765(++_0x455c4a);}(_0x4dc9,0x79));var _0x94dc=function(_0x562eff,_0x225aa5){_0x562eff=_0x562eff-0x0;var _0x516d16=_0x4dc9[_0x562eff];return _0x516d16;};'use strict';var _=require('lodash');var rp=require(_0x94dc('0x0'));var md5=require(_0x94dc('0x1'));var util=require('util');var moment=require('moment');var Promise=require(_0x94dc('0x2'));var Redis=require(_0x94dc('0x3'));var intUtil=require('./util');var config=require(_0x94dc('0x4'));var logger=require(_0x94dc('0x5'))(_0x94dc('0x6'));config[_0x94dc('0x7')]=_[_0x94dc('0x8')](config[_0x94dc('0x7')],{'host':_0x94dc('0x9'),'port':0x18eb});var io=require(_0x94dc('0xa'))(new Redis(config[_0x94dc('0x7')]));function getAdminId(_0x5661f7,_0x349f30,_0x59350d,_0x261b88){return new Promise(function(_0x540b42,_0x12faae){var _0x23710f=![];var _0x14392a={'method':_0x94dc('0xb'),'uri':_0x261b88+_0x94dc('0xc'),'json':!![]};_0x14392a[_0x94dc('0xd')]=_0x59350d;logger[_0x94dc('0xe')](_0x94dc('0xf'));return rp(_0x14392a)[_0x94dc('0x10')](function(_0x2aa3dd){if(_0x2aa3dd){var _0x4509d6=_0x2aa3dd[_0x94dc('0x11')];var _0x3bb78d=null;for(_0x3bb78d=0x0;_0x3bb78d<_0x4509d6['length'];_0x3bb78d++){if(_0x4509d6[_0x3bb78d][_0x94dc('0x12')]===_0x5661f7[_0x94dc('0x13')]){_0x5661f7['adminId']=_0x4509d6[_0x3bb78d]['id'];_0x23710f=!![];}}if(_0x23710f){logger[_0x94dc('0xe')]('Admin\x20found:',_0x5661f7[_0x94dc('0x14')]);_0x540b42(_0x5661f7);}else{_0x12faae({'statusCode':0x194,'message':_0x94dc('0x15')});}}else{_0x12faae({'statusCode':0x194,'message':_0x94dc('0x15')});}})[_0x94dc('0x16')](function(_0x282af5){logger[_0x94dc('0x17')]('['+[_0x349f30[_0x94dc('0x18')]()]+']',_0x282af5[_0x94dc('0x19')]);_0x12faae(_0x282af5);});});}function getUser(_0x95a599,_0x3e3ae7,_0x5e7a49){return function(_0x4ced5c){return new Promise(function(_0x59ea9e,_0x79b092){var _0x2fb92a={'method':'GET','uri':_0x5e7a49+_0x94dc('0xc'),'json':!![]};_0x2fb92a[_0x94dc('0xd')]=_0x3e3ae7;logger[_0x94dc('0xe')](_0x94dc('0x1a'));return rp(_0x2fb92a)[_0x94dc('0x10')](function(_0x541e29){if(_0x541e29){var _0x5afe06=_0x541e29[_0x94dc('0x11')];var _0x3fbe0a=![];var _0x1a5baa=null;if(_0x4ced5c[_0x94dc('0x1b')]!==null){logger[_0x94dc('0xe')](_0x94dc('0x1c'),_0x4ced5c[_0x94dc('0x1b')]);_0x4ced5c[_0x94dc('0x1d')]=_0x4ced5c[_0x94dc('0x1b')];for(_0x1a5baa=0x0;_0x1a5baa<_0x5afe06['length'];_0x1a5baa++){if(_0x5afe06[_0x1a5baa]['email']===_0x4ced5c[_0x94dc('0x1b')]){_0x3fbe0a=!![];_0x4ced5c[_0x94dc('0x1e')]=_0x5afe06[_0x1a5baa]['id'];logger[_0x94dc('0xe')](_0x94dc('0x1f'),_0x4ced5c[_0x94dc('0x1e')]);}}}if(!_0x3fbe0a){logger['info'](_0x94dc('0x20'));_0x4ced5c[_0x94dc('0x1d')]=_0x4ced5c[_0x94dc('0x13')];_0x4ced5c[_0x94dc('0x1e')]=_0x4ced5c[_0x94dc('0x14')];_0x3fbe0a=!![];}if(_0x3fbe0a){_0x59ea9e(_0x4ced5c);}else{_0x79b092({'statusCode':0x194,'message':_0x94dc('0x15')});}}else{_0x79b092({'statusCode':0x194,'message':'Requested\x20Resource\x20not\x20Found'});}})[_0x94dc('0x16')](function(_0x37a2f0){logger[_0x94dc('0x17')]('['+[_0x95a599[_0x94dc('0x18')]()]+']',_0x37a2f0[_0x94dc('0x19')]);_0x79b092(_0x37a2f0);});});};}function searchContact(_0x15438f,_0x48d407,_0x586207,_0x2b977c){return new Promise(function(_0x4db00c,_0x38ea2c){var _0x333eed={'method':_0x94dc('0xb'),'headers':_0x48d407,'uri':_0x15438f+_0x94dc('0x21')+_0x2b977c+'&f='+_0x586207+_0x94dc('0x22'),'json':!![]};rp(_0x333eed)['then'](function(_0x9c2bb9){var _0x8d8c39=_[_0x94dc('0x23')](_0x9c2bb9['contacts'][_0x94dc('0x24')],[_0x586207,_0x2b977c]);_0x4db00c(_0x8d8c39);})[_0x94dc('0x16')](function(_0x5f330b){_0x38ea2c(_0x5f330b);});});}function getEndUser(_0x1c20d6,_0x2164a1,_0x35c8da){return function(_0x25288c){return new Promise(function(_0x5d3827,_0x39f50a){logger[_0x94dc('0xe')](util[_0x94dc('0x25')](_0x94dc('0x26'),_0x25288c[_0x94dc('0x27')]));searchContact(_0x35c8da,_0x2164a1,'mobile_number',_0x25288c[_0x94dc('0x27')])[_0x94dc('0x10')](function(_0x235930){if(_0x235930){_0x25288c[_0x94dc('0x28')]=_0x235930['id'];logger[_0x94dc('0xe')](_0x94dc('0x29'),_0x25288c['endUserId']);return _0x5d3827(_0x25288c);}searchContact(_0x35c8da,_0x2164a1,_0x94dc('0x2a'),_0x25288c[_0x94dc('0x27')])[_0x94dc('0x10')](function(_0x1ce99d){if(_0x1ce99d){_0x25288c['endUserId']=_0x1ce99d['id'];logger[_0x94dc('0xe')]('Contact\x20found\x20work_number:',_0x25288c[_0x94dc('0x28')]);return _0x5d3827(_0x25288c);}createEndUser(_0x25288c,_0x1c20d6,_0x2164a1,_0x35c8da)[_0x94dc('0x10')](function(_0x40c3d5){logger[_0x94dc('0xe')]('Contact\x20created:',_0x40c3d5['endUserId']);return _0x5d3827(_0x40c3d5);});});})['catch'](function(_0x2ac523){_0x39f50a(_0x2ac523);});});};}function createEndUser(_0x527936,_0x35c57d,_0x1237f7,_0x208040){return new Promise(function(_0x403c01,_0x2de14c){var _0x1820e0=moment();var _0x235c73={'method':_0x94dc('0x2b'),'uri':_0x208040+_0x94dc('0x2c'),'body':{'contact':{'last_name':_0x527936[_0x94dc('0x27')],'work_number':_0x527936[_0x94dc('0x27')],'mobile_number':_0x527936['contactNumber'],'owner_id':_0x527936[_0x94dc('0x1e')],'created_at':_0x1820e0[_0x94dc('0x25')]('YYYY-MM-DDTHH:mm:ss')}},'json':!![]};_0x235c73[_0x94dc('0xd')]=_0x1237f7;logger[_0x94dc('0xe')](_0x94dc('0x2d'));return rp(_0x235c73)[_0x94dc('0x10')](function(_0x462ea1){_0x527936[_0x94dc('0x28')]=_0x462ea1[_0x94dc('0x2e')]['id'];_0x403c01(_0x527936);})['catch'](function(_0x52ff6f){logger['error']('['+[_0x35c57d[_0x94dc('0x18')]()]+']',_0x52ff6f[_0x94dc('0x19')]);_0x2de14c(_0x52ff6f[_0x94dc('0x19')]);});});}function getTicket(_0x82d111,_0x1ce1ea,_0x55d014,_0x4b0fe0,_0x41a5b8){return function(_0x469723){logger['info']('Creating\x20new\x20task');return new Promise(function(_0x477b4a,_0x284524){var _0x31ec5f=moment();var _0x515e84={'method':_0x94dc('0x2b'),'uri':_0x55d014+_0x94dc('0x2f'),'body':{'title':intUtil[_0x94dc('0x30')](_0x4b0fe0[_0x94dc('0x31')],_0x41a5b8,'\x20'),'description':intUtil[_0x94dc('0x30')](_0x4b0fe0[_0x94dc('0x32')],_0x41a5b8,'\x0a'),'owner_id':_0x469723[_0x94dc('0x1e')],'creater_id':_0x469723['adminId'],'targetable_id':_0x469723[_0x94dc('0x28')],'targetable_type':'Contact','created_at':_0x31ec5f['format']('YYYY-MM-DDTHH:mm:ss'),'due_date':_0x31ec5f[_0x94dc('0x33')](0x1e,'m')[_0x94dc('0x25')](_0x94dc('0x34'))},'json':!![]};_0x515e84[_0x94dc('0xd')]=_0x1ce1ea;return rp(_0x515e84)[_0x94dc('0x10')](function(_0xd2e95d){_0x469723['ticketId']=_0xd2e95d[_0x94dc('0x35')]['id'];logger[_0x94dc('0xe')]('Task\x20created:',_0x469723['ticketId']);_0x477b4a(_0x469723);})[_0x94dc('0x16')](function(_0x1a5400){logger[_0x94dc('0x17')]('['+[_0x82d111[_0x94dc('0x18')]()]+']',_0x1a5400[_0x94dc('0x19')]);_0x284524(_0x1a5400['message']);});});};}function emit(_0x5e7ee4,_0x3fb02e,_0x2ae5ec){var _0x469a39={'uri':_0x5e7ee4+_0x94dc('0x36')+_0x2ae5ec};io['to'](util[_0x94dc('0x25')](_0x94dc('0x37'),_0x3fb02e))[_0x94dc('0x38')](_0x94dc('0x39'),_0x469a39);}exports['cs']=function(_0x15bc5a,_0x547745,_0x4e9c4f,_0x50fcd1,_0x29d9b3,_0x42c69a,_0x2e1fb8,_0xfa628e){var _0x1e8bea={};var _0x29e8de={'Authorization':_0x94dc('0x3a')+_0x42c69a[_0x94dc('0x3b')]};_0x42c69a[_0x94dc('0x3c')]=intUtil[_0x94dc('0x3d')](_0x42c69a[_0x94dc('0x3c')]);_0x42c69a[_0x94dc('0x3e')]=intUtil[_0x94dc('0x3d')](_0x42c69a['serverUrl']);var _0xe26876=_0x42c69a['remoteUri'];_0x1e8bea[_0x94dc('0x13')]=_0x42c69a[_0x94dc('0x3f')];_0x1e8bea[_0x94dc('0x27')]=_0xfa628e[_0x94dc('0x40')]()===_0x94dc('0x41')?_0x547745[_0x94dc('0x42')]:_0x547745['calleridnum'];_0x1e8bea[_0x94dc('0x43')]=_0xfa628e===_0x94dc('0x44')||_0xfa628e===_0x94dc('0x45')?_0x94dc('0x44'):_0x94dc('0x41');if(_0x50fcd1){_0x1e8bea[_0x94dc('0x1b')]=_0x50fcd1['email'];}var _0x5de690=util['format'](_0x94dc('0x46'),_0x42c69a[_0x94dc('0x3e')],_0x547745[_0x94dc('0x47')],md5(_0x547745[_0x94dc('0x47')]));if(_0x29d9b3&&_0x29d9b3[_0x94dc('0x48')]){logger['info'](_0x94dc('0x49'),_0x94dc('0x4a'));_0x547745[_0x94dc('0x4b')]=_0x5de690;}else if(_0x2e1fb8&&_0x2e1fb8[_0x94dc('0x4c')]&&_0x2e1fb8['recordingFormat']!==_0x94dc('0x4d')){logger[_0x94dc('0xe')](_0x94dc('0x4e'),'Recording\x20is\x20enabled!');_0x547745[_0x94dc('0x4b')]=_0x5de690;}else{_0x547745[_0x94dc('0x4b')]='';}return getAdminId(_0x1e8bea,_0xfa628e,_0x29e8de,_0xe26876)[_0x94dc('0x10')](getUser(_0xfa628e,_0x29e8de,_0xe26876))[_0x94dc('0x10')](getEndUser(_0xfa628e,_0x29e8de,_0xe26876))[_0x94dc('0x10')](getTicket(_0xfa628e,_0x29e8de,_0xe26876,_0x4e9c4f,_0x547745))[_0x94dc('0x10')](function(_0x7f6e43){logger[_0x94dc('0xe')](util[_0x94dc('0x25')](_0x94dc('0x4f'),_0x7f6e43[_0x94dc('0x50')]));if(_0xfa628e!==_0x94dc('0x45')){logger[_0x94dc('0xe')]('['+[_0xfa628e['toUpperCase']()]+']',_0x94dc('0x51'));emit(_0xe26876,_0x50fcd1[_0x94dc('0x52')],_0x7f6e43[_0x94dc('0x28')]);}})[_0x94dc('0x16')](function(_0x32f23){logger[_0x94dc('0x17')]('['+[_0xfa628e[_0x94dc('0x18')]()]+_0x94dc('0x53'),util[_0x94dc('0x54')](_0x32f23,{'showHidden':!![],'depth':null}));});};
\ No newline at end of file
+var _0xb3c9=['Task\x20created:','/contacts/','trigger:browser:url','apiKey','stripTrailingSlash','remoteUri','username','toLowerCase','destcalleridnum','calleridnum','callDirection','queue','unmanaged','outbound','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','serverUrl','uniqueid','monitor_format','Recording\x20is\x20enabled!','recordingURL','The\x20ticket\x20ID\x20is:\x20%s','Displaying\x20task\x20in\x20a\x20new\x20tab...','inspect','lodash','request-promise','md5','util','moment','bluebird','ioredis','./util','../../../../config/environment','redis','defaults','localhost','socket.io-emitter','GET','headers','Getting\x20admin\x20information','then','length','email','adminEmail','adminId','info','Admin\x20found:','Requested\x20Resource\x20not\x20Found','catch','error','toUpperCase','Getting\x20user\x20list','users','agentEmail','userId','User\x20found:','userEmail','message','/api/lookup?q=','&f=','&entities=contact','contacts','format','Searching\x20contact\x20with\x20phone\x20%s','mobile_number','contactNumber','endUserId','Contact\x20found\x20mobile_number:','work_number','Contact\x20found\x20work_number:','Contact\x20created:','/api/contacts','YYYY-MM-DDTHH:mm:ss','Contact\x20not\x20found,\x20creating\x20a\x20new\x20contact','Creating\x20new\x20task','POST','/api/tasks','getString','Subjects','Descriptions','Contact','ticketId','task'];(function(_0x39e283,_0x247e6b){var _0x7de89f=function(_0x2f8c50){while(--_0x2f8c50){_0x39e283['push'](_0x39e283['shift']());}};_0x7de89f(++_0x247e6b);}(_0xb3c9,0x10d));var _0x9b3c=function(_0x21343a,_0x54bc3e){_0x21343a=_0x21343a-0x0;var _0x33caef=_0xb3c9[_0x21343a];return _0x33caef;};'use strict';var _=require(_0x9b3c('0x0'));var rp=require(_0x9b3c('0x1'));var md5=require(_0x9b3c('0x2'));var util=require(_0x9b3c('0x3'));var moment=require(_0x9b3c('0x4'));var Promise=require(_0x9b3c('0x5'));var Redis=require(_0x9b3c('0x6'));var intUtil=require(_0x9b3c('0x7'));var config=require(_0x9b3c('0x8'));var logger=require('../../../../config/logger')('freshsales');config[_0x9b3c('0x9')]=_[_0x9b3c('0xa')](config[_0x9b3c('0x9')],{'host':_0x9b3c('0xb'),'port':0x18eb});var io=require(_0x9b3c('0xc'))(new Redis(config[_0x9b3c('0x9')]));function getAdminId(_0x231c1d,_0x18f218,_0xfec517,_0x4514fa){return new Promise(function(_0x4397b1,_0x2cf834){var _0x1050b3=![];var _0x410c8c={'method':_0x9b3c('0xd'),'uri':_0x4514fa+'/api/selector/owners','json':!![]};_0x410c8c[_0x9b3c('0xe')]=_0xfec517;logger['info'](_0x9b3c('0xf'));return rp(_0x410c8c)[_0x9b3c('0x10')](function(_0x1deb80){if(_0x1deb80){var _0x49209d=_0x1deb80['users'];var _0x59d17c=null;for(_0x59d17c=0x0;_0x59d17c<_0x49209d[_0x9b3c('0x11')];_0x59d17c++){if(_0x49209d[_0x59d17c][_0x9b3c('0x12')]===_0x231c1d[_0x9b3c('0x13')]){_0x231c1d[_0x9b3c('0x14')]=_0x49209d[_0x59d17c]['id'];_0x1050b3=!![];}}if(_0x1050b3){logger[_0x9b3c('0x15')](_0x9b3c('0x16'),_0x231c1d[_0x9b3c('0x14')]);_0x4397b1(_0x231c1d);}else{_0x2cf834({'statusCode':0x194,'message':_0x9b3c('0x17')});}}else{_0x2cf834({'statusCode':0x194,'message':_0x9b3c('0x17')});}})[_0x9b3c('0x18')](function(_0x3793e9){logger[_0x9b3c('0x19')]('['+[_0x18f218[_0x9b3c('0x1a')]()]+']',_0x3793e9['message']);_0x2cf834(_0x3793e9);});});}function getUser(_0x5a1f0a,_0x173510,_0x1a53ab){return function(_0x54a037){return new Promise(function(_0x81b931,_0x51bcc1){var _0x44ffec={'method':'GET','uri':_0x1a53ab+'/api/selector/owners','json':!![]};_0x44ffec[_0x9b3c('0xe')]=_0x173510;logger[_0x9b3c('0x15')](_0x9b3c('0x1b'));return rp(_0x44ffec)['then'](function(_0x9af502){if(_0x9af502){var _0x4fd4ba=_0x9af502[_0x9b3c('0x1c')];var _0x44b94e=![];var _0x10bcb6=null;if(_0x54a037['agentEmail']!==null){logger[_0x9b3c('0x15')]('Getting\x20user\x20with\x20email',_0x54a037[_0x9b3c('0x1d')]);_0x54a037['userEmail']=_0x54a037[_0x9b3c('0x1d')];for(_0x10bcb6=0x0;_0x10bcb6<_0x4fd4ba[_0x9b3c('0x11')];_0x10bcb6++){if(_0x4fd4ba[_0x10bcb6][_0x9b3c('0x12')]===_0x54a037['agentEmail']){_0x44b94e=!![];_0x54a037[_0x9b3c('0x1e')]=_0x4fd4ba[_0x10bcb6]['id'];logger['info'](_0x9b3c('0x1f'),_0x54a037[_0x9b3c('0x1e')]);}}}if(!_0x44b94e){logger[_0x9b3c('0x15')]('Admin\x20selected');_0x54a037[_0x9b3c('0x20')]=_0x54a037[_0x9b3c('0x13')];_0x54a037[_0x9b3c('0x1e')]=_0x54a037['adminId'];_0x44b94e=!![];}if(_0x44b94e){_0x81b931(_0x54a037);}else{_0x51bcc1({'statusCode':0x194,'message':_0x9b3c('0x17')});}}else{_0x51bcc1({'statusCode':0x194,'message':_0x9b3c('0x17')});}})[_0x9b3c('0x18')](function(_0x3acf76){logger[_0x9b3c('0x19')]('['+[_0x5a1f0a['toUpperCase']()]+']',_0x3acf76[_0x9b3c('0x21')]);_0x51bcc1(_0x3acf76);});});};}function searchContact(_0x542ddc,_0x36c5f4,_0x3a3906,_0x798c90){return new Promise(function(_0x7751fa,_0x4b87e5){var _0x21c387={'method':_0x9b3c('0xd'),'headers':_0x36c5f4,'uri':_0x542ddc+_0x9b3c('0x22')+_0x798c90+_0x9b3c('0x23')+_0x3a3906+_0x9b3c('0x24'),'json':!![]};rp(_0x21c387)[_0x9b3c('0x10')](function(_0x226e6e){var _0x109c2f=_['find'](_0x226e6e[_0x9b3c('0x25')][_0x9b3c('0x25')],[_0x3a3906,_0x798c90]);_0x7751fa(_0x109c2f);})[_0x9b3c('0x18')](function(_0x4372b2){_0x4b87e5(_0x4372b2);});});}function getEndUser(_0x5d4b0d,_0x23c45c,_0x348910){return function(_0x3b2cc4){return new Promise(function(_0x5b4f92,_0x44bc96){logger['info'](util[_0x9b3c('0x26')](_0x9b3c('0x27'),_0x3b2cc4['contactNumber']));searchContact(_0x348910,_0x23c45c,_0x9b3c('0x28'),_0x3b2cc4[_0x9b3c('0x29')])[_0x9b3c('0x10')](function(_0x4f0794){if(_0x4f0794){_0x3b2cc4[_0x9b3c('0x2a')]=_0x4f0794['id'];logger[_0x9b3c('0x15')](_0x9b3c('0x2b'),_0x3b2cc4['endUserId']);return _0x5b4f92(_0x3b2cc4);}searchContact(_0x348910,_0x23c45c,_0x9b3c('0x2c'),_0x3b2cc4[_0x9b3c('0x29')])[_0x9b3c('0x10')](function(_0x4f71ac){if(_0x4f71ac){_0x3b2cc4[_0x9b3c('0x2a')]=_0x4f71ac['id'];logger[_0x9b3c('0x15')](_0x9b3c('0x2d'),_0x3b2cc4[_0x9b3c('0x2a')]);return _0x5b4f92(_0x3b2cc4);}createEndUser(_0x3b2cc4,_0x5d4b0d,_0x23c45c,_0x348910)[_0x9b3c('0x10')](function(_0x2e7f39){logger[_0x9b3c('0x15')](_0x9b3c('0x2e'),_0x2e7f39[_0x9b3c('0x2a')]);return _0x5b4f92(_0x2e7f39);});});})[_0x9b3c('0x18')](function(_0x484711){_0x44bc96(_0x484711);});});};}function createEndUser(_0x57f4b9,_0x45fd16,_0x431f42,_0x69f4e5){return new Promise(function(_0x1b5c34,_0x454b0f){var _0x20830c=moment();var _0x2464fb={'method':'POST','uri':_0x69f4e5+_0x9b3c('0x2f'),'body':{'contact':{'last_name':_0x57f4b9[_0x9b3c('0x29')],'work_number':_0x57f4b9[_0x9b3c('0x29')],'mobile_number':_0x57f4b9[_0x9b3c('0x29')],'owner_id':_0x57f4b9[_0x9b3c('0x1e')],'created_at':_0x20830c[_0x9b3c('0x26')](_0x9b3c('0x30'))}},'json':!![]};_0x2464fb[_0x9b3c('0xe')]=_0x431f42;logger['info'](_0x9b3c('0x31'));return rp(_0x2464fb)[_0x9b3c('0x10')](function(_0x31dbfd){_0x57f4b9[_0x9b3c('0x2a')]=_0x31dbfd['contact']['id'];_0x1b5c34(_0x57f4b9);})[_0x9b3c('0x18')](function(_0x323790){logger['error']('['+[_0x45fd16[_0x9b3c('0x1a')]()]+']',_0x323790['message']);_0x454b0f(_0x323790[_0x9b3c('0x21')]);});});}function getTicket(_0xe789b4,_0xf7934f,_0x2dc936,_0x628297,_0xe35e9a){return function(_0x1a3f11){logger[_0x9b3c('0x15')](_0x9b3c('0x32'));return new Promise(function(_0x2fba1c,_0x4f93f6){var _0x1ec9bb=moment();var _0x2dbb9e={'method':_0x9b3c('0x33'),'uri':_0x2dc936+_0x9b3c('0x34'),'body':{'title':intUtil[_0x9b3c('0x35')](_0x628297[_0x9b3c('0x36')],_0xe35e9a,'\x20'),'description':intUtil[_0x9b3c('0x35')](_0x628297[_0x9b3c('0x37')],_0xe35e9a,'\x0a'),'owner_id':_0x1a3f11[_0x9b3c('0x1e')],'creater_id':_0x1a3f11['adminId'],'targetable_id':_0x1a3f11[_0x9b3c('0x2a')],'targetable_type':_0x9b3c('0x38'),'created_at':_0x1ec9bb['format'](_0x9b3c('0x30')),'due_date':_0x1ec9bb['add'](0x1e,'m')[_0x9b3c('0x26')](_0x9b3c('0x30'))},'json':!![]};_0x2dbb9e[_0x9b3c('0xe')]=_0xf7934f;return rp(_0x2dbb9e)[_0x9b3c('0x10')](function(_0x289e3a){_0x1a3f11[_0x9b3c('0x39')]=_0x289e3a[_0x9b3c('0x3a')]['id'];logger[_0x9b3c('0x15')](_0x9b3c('0x3b'),_0x1a3f11[_0x9b3c('0x39')]);_0x2fba1c(_0x1a3f11);})[_0x9b3c('0x18')](function(_0x4404c7){logger[_0x9b3c('0x19')]('['+[_0xe789b4['toUpperCase']()]+']',_0x4404c7[_0x9b3c('0x21')]);_0x4f93f6(_0x4404c7[_0x9b3c('0x21')]);});});};}function emit(_0x2a930a,_0x1758aa,_0x57b956){var _0x4fe93d={'uri':_0x2a930a+_0x9b3c('0x3c')+_0x57b956};io['to'](util[_0x9b3c('0x26')]('user:%s',_0x1758aa))['emit'](_0x9b3c('0x3d'),_0x4fe93d);}exports['cs']=function(_0x55fa4a,_0x552208,_0x190949,_0x527f7f,_0x3f9520,_0x569b64,_0x579314,_0x411a53){var _0x4e04f0={};var _0x48352f={'Authorization':'Token\x20token='+_0x569b64[_0x9b3c('0x3e')]};_0x569b64['remoteUri']=intUtil[_0x9b3c('0x3f')](_0x569b64[_0x9b3c('0x40')]);_0x569b64['serverUrl']=intUtil['stripTrailingSlash'](_0x569b64['serverUrl']);var _0x141121=_0x569b64[_0x9b3c('0x40')];_0x4e04f0['adminEmail']=_0x569b64[_0x9b3c('0x41')];_0x4e04f0['contactNumber']=_0x411a53[_0x9b3c('0x42')]()==='outbound'?_0x552208[_0x9b3c('0x43')]:_0x552208[_0x9b3c('0x44')];_0x4e04f0[_0x9b3c('0x45')]=_0x411a53===_0x9b3c('0x46')||_0x411a53===_0x9b3c('0x47')?_0x9b3c('0x46'):_0x9b3c('0x48');if(_0x527f7f){_0x4e04f0[_0x9b3c('0x1d')]=_0x527f7f[_0x9b3c('0x12')];}var _0x413bc9=util[_0x9b3c('0x26')](_0x9b3c('0x49'),_0x569b64[_0x9b3c('0x4a')],_0x552208[_0x9b3c('0x4b')],md5(_0x552208['uniqueid']));if(_0x3f9520&&_0x3f9520[_0x9b3c('0x4c')]){logger[_0x9b3c('0x15')]('[QUEUE]',_0x9b3c('0x4d'));_0x552208['recordingURL']=_0x413bc9;}else if(_0x579314&&_0x579314['recordingFormat']&&_0x579314['recordingFormat']!=='none'){logger[_0x9b3c('0x15')]('[OUTBOUND]',_0x9b3c('0x4d'));_0x552208[_0x9b3c('0x4e')]=_0x413bc9;}else{_0x552208[_0x9b3c('0x4e')]='';}return getAdminId(_0x4e04f0,_0x411a53,_0x48352f,_0x141121)['then'](getUser(_0x411a53,_0x48352f,_0x141121))[_0x9b3c('0x10')](getEndUser(_0x411a53,_0x48352f,_0x141121))[_0x9b3c('0x10')](getTicket(_0x411a53,_0x48352f,_0x141121,_0x190949,_0x552208))[_0x9b3c('0x10')](function(_0x2bb93f){logger[_0x9b3c('0x15')](util[_0x9b3c('0x26')](_0x9b3c('0x4f'),_0x2bb93f[_0x9b3c('0x39')]));if(_0x411a53!=='unmanaged'){logger['info']('['+[_0x411a53[_0x9b3c('0x1a')]()]+']',_0x9b3c('0x50'));emit(_0x141121,_0x527f7f['name'],_0x2bb93f[_0x9b3c('0x2a')]);}})[_0x9b3c('0x18')](function(_0x30d4a6){logger[_0x9b3c('0x19')]('['+[_0x411a53[_0x9b3c('0x1a')]()]+']\x20Error\x20running\x20Freshsales\x20integration',util[_0x9b3c('0x51')](_0x30d4a6,{'showHidden':!![],'depth':null}));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x37df=['vtiger','dynamics365','exec','includes','data1','toLowerCase','data2','Configurations','data3','queue','routeId','outbound','EVENT\x20UNKNOWN','unmanaged','freshsales','log','unknown\x20integration','error','[EXEC]','%s\x20configuration\x20#%s\x20not\x20found','format','%s\x20account\x20#%s\x20not\x20found','lodash','util','./zendesk','./salesforce','./sugarcrm','./freshdesk','./zoho','./desk','./vtiger','./servicenow','./dynamics365','./freshsales','zendesk','salesforce','sugarcrm','freshdesk','zoho','desk'];(function(_0xb7279e,_0x5e85c4){var _0x3d3c68=function(_0x23f155){while(--_0x23f155){_0xb7279e['push'](_0xb7279e['shift']());}};_0x3d3c68(++_0x5e85c4);}(_0x37df,0x66));var _0xf37d=function(_0x47aa64,_0xfb8a07){_0x47aa64=_0x47aa64-0x0;var _0x549c7a=_0x37df[_0x47aa64];return _0x549c7a;};'use strict';var _=require(_0xf37d('0x0'));var util=require(_0xf37d('0x1'));var zendesk=require(_0xf37d('0x2'));var salesforce=require(_0xf37d('0x3'));var sugarcrm=require(_0xf37d('0x4'));var freshdesk=require(_0xf37d('0x5'));var zoho=require(_0xf37d('0x6'));var desk=require(_0xf37d('0x7'));var vtiger=require(_0xf37d('0x8'));var servicenow=require(_0xf37d('0x9'));var dynamics365=require(_0xf37d('0xa'));var freshsales=require(_0xf37d('0xb'));var integrations=[_0xf37d('0xc'),_0xf37d('0xd'),_0xf37d('0xe'),_0xf37d('0xf'),_0xf37d('0x10'),_0xf37d('0x11'),_0xf37d('0x12'),_0xf37d('0x13'),'freshsales','servicenow'];exports[_0xf37d('0x14')]=function(_0xe6968d,_0x41a1d2,_0x4b997a,_0x313f1f,_0x32705c,_0x5bc92c){if(_0x4b997a){if(_[_0xf37d('0x15')](integrations,_0xe6968d['data1']['toLowerCase']())){try{var _0x41d221=null;var _0x37cd8b='';var _0x5dfd0d=_0x4b997a[_0xe6968d[_0xf37d('0x16')][_0xf37d('0x17')]()];if(_0x5dfd0d){var _0x51b12e=_0x5dfd0d[_0xe6968d[_0xf37d('0x18')]];if(_0x51b12e){var _0x1e1856=_['find'](_0x51b12e[_0xf37d('0x19')],{'id':parseInt(_0xe6968d[_0xf37d('0x1a')],0xa)});if(_0x1e1856){if(_0x313f1f){if(_0x32705c&&_0x41a1d2[_0xf37d('0x1b')]){_0x37cd8b=_0xf37d('0x1b');}else if(_0x41a1d2[_0xf37d('0x1c')]){_0x37cd8b=_0xf37d('0x1d');}else{console['log'](_0xf37d('0x1e'),_0x41a1d2);}}else{_0x37cd8b=_0xf37d('0x1f');}switch(_0xe6968d['data1'][_0xf37d('0x17')]()){case _0xf37d('0xc'):zendesk[_0x37cd8b](_0xe6968d,_0x41a1d2,_0x1e1856,_0x313f1f,_0x32705c,_0x51b12e,_0x5bc92c);break;case _0xf37d('0xd'):salesforce[_0x37cd8b](_0xe6968d,_0x41a1d2,_0x1e1856,_0x313f1f,_0x32705c,_0x51b12e,_0x5bc92c);break;case'sugarcrm':sugarcrm[_0x37cd8b](_0xe6968d,_0x41a1d2,_0x1e1856,_0x313f1f,_0x32705c,_0x51b12e,_0x5bc92c);break;case'freshdesk':freshdesk[_0x37cd8b](_0xe6968d,_0x41a1d2,_0x1e1856,_0x313f1f,_0x32705c,_0x51b12e,_0x5bc92c);break;case'zoho':zoho[_0x37cd8b](_0xe6968d,_0x41a1d2,_0x1e1856,_0x313f1f,_0x32705c,_0x51b12e,_0x5bc92c);break;case _0xf37d('0x11'):desk[_0x37cd8b](_0xe6968d,_0x41a1d2,_0x1e1856,_0x313f1f,_0x32705c,_0x51b12e,_0x5bc92c);break;case _0xf37d('0x12'):vtiger[_0x37cd8b](_0xe6968d,_0x41a1d2,_0x1e1856,_0x313f1f,_0x32705c,_0x51b12e,_0x5bc92c);break;case _0xf37d('0x20'):freshsales['cs'](_0xe6968d,_0x41a1d2,_0x1e1856,_0x313f1f,_0x32705c,_0x51b12e,_0x5bc92c,_0x37cd8b);break;case'servicenow':servicenow['cs'](_0xe6968d,_0x41a1d2,_0x1e1856,_0x313f1f,_0x32705c,_0x51b12e,_0x5bc92c,_0x37cd8b);break;case _0xf37d('0x13'):dynamics365['cs'](_0xe6968d,_0x41a1d2,_0x1e1856,_0x313f1f,_0x32705c,_0x51b12e,_0x5bc92c,_0x37cd8b);break;default:console[_0xf37d('0x21')](_0xf37d('0x22'));}}else{_0x41d221=require('../../../../config/logger')(_0xe6968d[_0xf37d('0x16')][_0xf37d('0x17')]());_0x41d221[_0xf37d('0x23')](_0xf37d('0x24'),util['format'](_0xf37d('0x25'),_0xe6968d[_0xf37d('0x16')][_0xf37d('0x17')](),_0xe6968d[_0xf37d('0x1a')]));}}else{_0x41d221=require('../../../../config/logger')(_0xe6968d[_0xf37d('0x16')][_0xf37d('0x17')]());_0x41d221['error'](_0xf37d('0x24'),util[_0xf37d('0x26')](_0xf37d('0x27'),_0xe6968d['data1'][_0xf37d('0x17')](),_0xe6968d['data2']));}}else{}}catch(_0x1890c8){console[_0xf37d('0x23')](_0x1890c8);}}}};
\ No newline at end of file
+var _0x2eb6=['freshsales','servicenow','exec','includes','toLowerCase','data1','data2','find','Configurations','queue','log','unmanaged','freshdesk','zoho','unknown\x20integration','[EXEC]','format','%s\x20configuration\x20#%s\x20not\x20found','../../../../config/logger','error','lodash','util','./zendesk','./sugarcrm','./freshdesk','./zoho','./desk','./vtiger','./servicenow','./dynamics365','./freshsales','salesforce','sugarcrm','desk','vtiger'];(function(_0x5178fb,_0x121e19){var _0x348183=function(_0x52c2ec){while(--_0x52c2ec){_0x5178fb['push'](_0x5178fb['shift']());}};_0x348183(++_0x121e19);}(_0x2eb6,0x109));var _0x62eb=function(_0x271dd9,_0x3da3e3){_0x271dd9=_0x271dd9-0x0;var _0x4ba682=_0x2eb6[_0x271dd9];return _0x4ba682;};'use strict';var _=require(_0x62eb('0x0'));var util=require(_0x62eb('0x1'));var zendesk=require(_0x62eb('0x2'));var salesforce=require('./salesforce');var sugarcrm=require(_0x62eb('0x3'));var freshdesk=require(_0x62eb('0x4'));var zoho=require(_0x62eb('0x5'));var desk=require(_0x62eb('0x6'));var vtiger=require(_0x62eb('0x7'));var servicenow=require(_0x62eb('0x8'));var dynamics365=require(_0x62eb('0x9'));var freshsales=require(_0x62eb('0xa'));var integrations=['zendesk',_0x62eb('0xb'),_0x62eb('0xc'),'freshdesk','zoho',_0x62eb('0xd'),_0x62eb('0xe'),'dynamics365',_0x62eb('0xf'),_0x62eb('0x10')];exports[_0x62eb('0x11')]=function(_0x50fb54,_0x5dec84,_0x2eda9a,_0xdc5417,_0x7a06a5,_0x154df5){if(_0x2eda9a){if(_[_0x62eb('0x12')](integrations,_0x50fb54['data1'][_0x62eb('0x13')]())){try{var _0x3ec4d3=null;var _0x16db56='';var _0x4ad7cb=_0x2eda9a[_0x50fb54[_0x62eb('0x14')][_0x62eb('0x13')]()];if(_0x4ad7cb){var _0x4be517=_0x4ad7cb[_0x50fb54[_0x62eb('0x15')]];if(_0x4be517){var _0x4d5f34=_[_0x62eb('0x16')](_0x4be517[_0x62eb('0x17')],{'id':parseInt(_0x50fb54['data3'],0xa)});if(_0x4d5f34){if(_0xdc5417){if(_0x7a06a5&&_0x5dec84[_0x62eb('0x18')]){_0x16db56=_0x62eb('0x18');}else if(_0x5dec84['routeId']){_0x16db56='outbound';}else{console[_0x62eb('0x19')]('EVENT\x20UNKNOWN',_0x5dec84);}}else{_0x16db56=_0x62eb('0x1a');}switch(_0x50fb54['data1'][_0x62eb('0x13')]()){case'zendesk':zendesk[_0x16db56](_0x50fb54,_0x5dec84,_0x4d5f34,_0xdc5417,_0x7a06a5,_0x4be517,_0x154df5);break;case _0x62eb('0xb'):salesforce[_0x16db56](_0x50fb54,_0x5dec84,_0x4d5f34,_0xdc5417,_0x7a06a5,_0x4be517,_0x154df5);break;case'sugarcrm':sugarcrm[_0x16db56](_0x50fb54,_0x5dec84,_0x4d5f34,_0xdc5417,_0x7a06a5,_0x4be517,_0x154df5);break;case _0x62eb('0x1b'):freshdesk[_0x16db56](_0x50fb54,_0x5dec84,_0x4d5f34,_0xdc5417,_0x7a06a5,_0x4be517,_0x154df5);break;case _0x62eb('0x1c'):zoho[_0x16db56](_0x50fb54,_0x5dec84,_0x4d5f34,_0xdc5417,_0x7a06a5,_0x4be517,_0x154df5);break;case _0x62eb('0xd'):desk[_0x16db56](_0x50fb54,_0x5dec84,_0x4d5f34,_0xdc5417,_0x7a06a5,_0x4be517,_0x154df5);break;case _0x62eb('0xe'):vtiger[_0x16db56](_0x50fb54,_0x5dec84,_0x4d5f34,_0xdc5417,_0x7a06a5,_0x4be517,_0x154df5);break;case _0x62eb('0xf'):freshsales['cs'](_0x50fb54,_0x5dec84,_0x4d5f34,_0xdc5417,_0x7a06a5,_0x4be517,_0x154df5,_0x16db56);break;case _0x62eb('0x10'):servicenow['cs'](_0x50fb54,_0x5dec84,_0x4d5f34,_0xdc5417,_0x7a06a5,_0x4be517,_0x154df5,_0x16db56);break;case'dynamics365':dynamics365['cs'](_0x50fb54,_0x5dec84,_0x4d5f34,_0xdc5417,_0x7a06a5,_0x4be517,_0x154df5,_0x16db56);break;default:console['log'](_0x62eb('0x1d'));}}else{_0x3ec4d3=require('../../../../config/logger')(_0x50fb54['data1']['toLowerCase']());_0x3ec4d3['error'](_0x62eb('0x1e'),util[_0x62eb('0x1f')](_0x62eb('0x20'),_0x50fb54[_0x62eb('0x14')]['toLowerCase'](),_0x50fb54['data3']));}}else{_0x3ec4d3=require(_0x62eb('0x21'))(_0x50fb54[_0x62eb('0x14')][_0x62eb('0x13')]());_0x3ec4d3[_0x62eb('0x22')](_0x62eb('0x1e'),util[_0x62eb('0x1f')]('%s\x20account\x20#%s\x20not\x20found',_0x50fb54['data1'][_0x62eb('0x13')](),_0x50fb54[_0x62eb('0x15')]));}}else{}}catch(_0x345995){console['error'](_0x345995);}}}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb0b7=['./util','../../../../config/logger','salesforce','redis','defaults','emit','assign','Subjects','getString','Descriptions','ticketType','Task','ActivityDate','utc','IsReminderSet','IsRecurrence','endUserType','lead','WhoId','account','contact','ContactId','leadId','info','Association\x20between\x20Case\x20and\x20Lead\x20skipped','create','isNil','validateEmail','sobject','then','length','find','Email','Agent\x20%s\x20found.','resolve','Agent\x20%s\x20not\x20found.\x20Switch\x20to\x20the\x20admin\x20account.','identity','user_id','display_name','Searching\x20enduser\x20with\x20phone\x20%s.\x20Serching\x20method\x20used\x20%s.','moduleSearch','contact_lead','cloneDeep','additionalSearchContact','merge','$or','execute','additionalSearchLead','account_contact_lead','additionalSearchAccount','Account','Contact','Lead','first','Name','attributes','type','moduleCreate','Enduser\x20with\x20phone\x20%s.\x20Creating\x20method\x20used\x20%s.','format','Caller\x20-\x20%s','LastName','<unknown>','Company','No\x20Company','forEach','includes','picklist','idField','content','toString','variableName','customVariable','Variable','name','toLowerCase','password','concat','securityToken','Connection','clientId','clientSecret','username','Connection\x20established.','queue','serverUrl','stripTrailingSlash','remoteUri','[QUEUE]','Recording\x20is\x20enabled!','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','recordingURL','email','calleridname','calleridnum','[QUEUE]\x20Ticket\x20%s\x20created','[QUEUE]\x20Displaying\x20ticket\x20%s\x20to\x20agent\x20%s.\x20Integration\x20account\x20type\x20%s.','user:%s','newTab','trigger:browser:url','instanceUrl','error','[QUEUE]\x20Salesforce\x20account\x20type\x20not\x20recognized.','catch','recordingFormat','none','[OUTBOUND]','destcalleridname','destcalleridnum','outbound','[OUTBOUND]\x20Ticket\x20%s\x20created.','trigger:salesforce:display','%s/%s/e','Salesforce\x20account\x20type\x20not\x20recognized','monitor_format','lastevent','toUpperCase','Fields',']\x20Ticket\x20%s\x20created.',']\x20Integration\x20account\x20type\x20%s.','lodash','request-promise','moment','bluebird','jsforce','util','ioredis'];(function(_0x2b66d9,_0x463bcf){var _0x2228e4=function(_0x5d023a){while(--_0x5d023a){_0x2b66d9['push'](_0x2b66d9['shift']());}};_0x2228e4(++_0x463bcf);}(_0xb0b7,0x179));var _0x7b0b=function(_0xc67084,_0x3e2efc){_0xc67084=_0xc67084-0x0;var _0x4d06c6=_0xb0b7[_0xc67084];return _0x4d06c6;};'use strict';var _=require(_0x7b0b('0x0'));var rp=require(_0x7b0b('0x1'));var moment=require(_0x7b0b('0x2'));var BPromise=require(_0x7b0b('0x3'));var md5=require('md5');var jsforce=require(_0x7b0b('0x4'));var util=require(_0x7b0b('0x5'));var Redis=require(_0x7b0b('0x6'));var intUtil=require(_0x7b0b('0x7'));var config=require('../../../../config/environment');var logger=require(_0x7b0b('0x8'))(_0x7b0b('0x9'));config[_0x7b0b('0xa')]=_[_0x7b0b('0xb')](config[_0x7b0b('0xa')],{'host':'localhost','port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x7b0b('0xa')]));function emit(_0x3de992,_0x3da7a4,_0x2a3980){io['to'](_0x3de992)[_0x7b0b('0xc')](_0x3da7a4,_0x2a3980);}function getTicket(_0x11e1ed,_0x4c2374,_0x43baa2,_0x1fc002,_0x562701,_0x5eaddb,_0x2a952a,_0xf5d9b9){var _0xeb2c08=Object[_0x7b0b('0xd')]({},{'OwnerId':_0x4c2374['id'],'Subject':intUtil['getString'](_0x1fc002[_0x7b0b('0xe')],_0x562701,'\x20'),'Description':intUtil[_0x7b0b('0xf')](_0x1fc002[_0x7b0b('0x10')],_0x562701,'\x0a')},getCustomFields(_0x5eaddb,_0x562701));if(_0x43baa2){if(_0x1fc002[_0x7b0b('0x11')]===_0x7b0b('0x12')){_0xeb2c08[_0x7b0b('0x13')]=moment[_0x7b0b('0x14')]();_0xeb2c08[_0x7b0b('0x15')]=![];_0xeb2c08[_0x7b0b('0x16')]=![];if(_0x43baa2['endUserType']==='contact'||_0x43baa2[_0x7b0b('0x17')]===_0x7b0b('0x18')){_0xeb2c08[_0x7b0b('0x19')]=_0x43baa2['id'];}else if(_0x43baa2['endUserType']===_0x7b0b('0x1a')){_0xeb2c08['WhatId']=_0x43baa2['id'];}}else if(_0x1fc002['ticketType']==='Case'){if(_0x43baa2[_0x7b0b('0x17')]===_0x7b0b('0x1b')){_0xeb2c08[_0x7b0b('0x1c')]=_0x43baa2['id'];}else if(_0x43baa2['endUserType']==='account'){_0xeb2c08['AccountId']=_0x43baa2['id'];}else if(_0x43baa2[_0x7b0b('0x17')]===_0x7b0b('0x18')&&_0x1fc002[_0x7b0b('0x1d')]){_0xeb2c08[_0x1fc002[_0x7b0b('0x1d')]]=_0x43baa2['id'];}else{logger[_0x7b0b('0x1e')](_0x7b0b('0x1f'));}}}return _0x2a952a['sobject'](_0x1fc002[_0x7b0b('0x11')])[_0x7b0b('0x20')](_0xeb2c08);}function getUser(_0x4ef246,_0x1a7a34,_0x3019a3){if(!_[_0x7b0b('0x21')](_0x1a7a34)&&intUtil[_0x7b0b('0x22')](_0x1a7a34)){var _0x19c41d={'Email':_0x1a7a34};var _0x384e44={'Id':!![],'Username':!![],'Name':!![],'Email':!![]};return _0x3019a3[_0x7b0b('0x23')]('User')['find'](_0x19c41d,_0x384e44)['execute']()[_0x7b0b('0x24')](function(_0x52f6bc){if(_0x52f6bc[_0x7b0b('0x25')]){var _0x5c5084=_[_0x7b0b('0x26')](_0x52f6bc,function(_0x493bcb){return _0x493bcb[_0x7b0b('0x27')]===_0x1a7a34;});if(_0x5c5084){logger[_0x7b0b('0x1e')](_0x7b0b('0x28'),_0x1a7a34);return BPromise[_0x7b0b('0x29')]({'id':_0x5c5084['Id'],'name':_0x5c5084['Name']});}}else{logger[_0x7b0b('0x1e')](_0x7b0b('0x2a'),_0x1a7a34);return _0x3019a3[_0x7b0b('0x2b')]()['then'](function(_0x599e30){return BPromise['resolve']({'id':_0x599e30[_0x7b0b('0x2c')],'name':_0x599e30[_0x7b0b('0x2d')]});});}});}else{logger[_0x7b0b('0x1e')](_0x7b0b('0x2a'),_0x1a7a34);return _0x3019a3[_0x7b0b('0x2b')]()[_0x7b0b('0x24')](function(_0x31c9de){return BPromise[_0x7b0b('0x29')]({'id':_0x31c9de['user_id'],'name':_0x31c9de[_0x7b0b('0x2d')]});});}}function getEndUser(_0x591ca4,_0x1aec4b,_0x16a71c,_0x33c71f,_0x180c8f){var _0x521f1c={'$or':{'Phone':_0x33c71f}};var _0x2c3387={'Id':!![],'Name':!![],'Phone':!![]};return BPromise[_0x7b0b('0x29')]()[_0x7b0b('0x24')](function(){logger[_0x7b0b('0x1e')](_0x7b0b('0x2e'),_0x33c71f,_0x1aec4b[_0x7b0b('0x2f')]);switch(_0x1aec4b[_0x7b0b('0x2f')]){case _0x7b0b('0x30'):var _0x580309=_[_0x7b0b('0x31')](_0x521f1c);if(_0x1aec4b[_0x7b0b('0x32')]){var _0x347dcc={};_0x347dcc[_0x1aec4b['additionalSearchContact']]=_0x33c71f;_[_0x7b0b('0x33')](_0x580309[_0x7b0b('0x34')],_0x347dcc);}return _0x180c8f[_0x7b0b('0x23')]('Contact')['find'](_0x580309,_0x2c3387)[_0x7b0b('0x35')]()['then'](function(_0x27d407){if(_0x27d407&&_0x27d407[_0x7b0b('0x25')]){return _0x27d407;}else{var _0x49da1f=_['cloneDeep'](_0x521f1c);if(_0x1aec4b['additionalSearchLead']){var _0x45c559={};_0x45c559[_0x1aec4b[_0x7b0b('0x36')]]=_0x33c71f;_['merge'](_0x49da1f['$or'],_0x45c559);}return _0x180c8f['sobject']('Lead')[_0x7b0b('0x26')](_0x49da1f,_0x2c3387);}});case _0x7b0b('0x37'):var _0x313713=_[_0x7b0b('0x31')](_0x521f1c);if(_0x1aec4b[_0x7b0b('0x38')]){var _0x347dcc={};_0x347dcc[_0x1aec4b[_0x7b0b('0x38')]]=_0x33c71f;_[_0x7b0b('0x33')](_0x313713[_0x7b0b('0x34')],_0x347dcc);}return _0x180c8f[_0x7b0b('0x23')](_0x7b0b('0x39'))['find'](_0x313713,_0x2c3387)['execute']()[_0x7b0b('0x24')](function(_0xf36e3b){if(_0xf36e3b&&_0xf36e3b['length']){return _0xf36e3b;}else{var _0xf63d64=_[_0x7b0b('0x31')](_0x521f1c);if(_0x1aec4b[_0x7b0b('0x32')]){var _0x4ff0b4={};_0x4ff0b4[_0x1aec4b[_0x7b0b('0x32')]]=_0x33c71f;_[_0x7b0b('0x33')](_0xf63d64['$or'],_0x4ff0b4);}return _0x180c8f[_0x7b0b('0x23')](_0x7b0b('0x3a'))[_0x7b0b('0x26')](_0xf63d64,_0x2c3387)[_0x7b0b('0x24')](function(_0x3dfcff){if(_0x3dfcff&&_0x3dfcff[_0x7b0b('0x25')]){return _0x3dfcff;}else{var _0x460734=_[_0x7b0b('0x31')](_0x521f1c);if(_0x1aec4b[_0x7b0b('0x36')]){var _0x5e2c90={};_0x5e2c90[_0x1aec4b[_0x7b0b('0x36')]]=_0x33c71f;_[_0x7b0b('0x33')](_0x460734[_0x7b0b('0x34')],_0x5e2c90);}return _0x180c8f[_0x7b0b('0x23')](_0x7b0b('0x3b'))[_0x7b0b('0x26')](_0x460734,_0x2c3387);}});}});case _0x7b0b('0x1b'):var _0x580309=_['cloneDeep'](_0x521f1c);if(_0x1aec4b[_0x7b0b('0x32')]){var _0x347dcc={};_0x347dcc[_0x1aec4b['additionalSearchContact']]=_0x33c71f;_['merge'](_0x580309[_0x7b0b('0x34')],_0x347dcc);}return _0x180c8f[_0x7b0b('0x23')](_0x7b0b('0x3a'))[_0x7b0b('0x26')](_0x580309,_0x2c3387)['execute']();case'lead':var _0x254859=_[_0x7b0b('0x31')](_0x521f1c);if(_0x1aec4b[_0x7b0b('0x36')]){var _0x347dcc={};_0x347dcc[_0x1aec4b[_0x7b0b('0x36')]]=_0x33c71f;_['merge'](_0x254859[_0x7b0b('0x34')],_0x347dcc);}return _0x180c8f[_0x7b0b('0x23')](_0x7b0b('0x3b'))[_0x7b0b('0x26')](_0x254859,_0x2c3387);case _0x7b0b('0x1a'):var _0x313713=_[_0x7b0b('0x31')](_0x521f1c);if(_0x1aec4b[_0x7b0b('0x38')]){var _0x347dcc={};_0x347dcc[_0x1aec4b[_0x7b0b('0x38')]]=_0x33c71f;_[_0x7b0b('0x33')](_0x313713[_0x7b0b('0x34')],_0x347dcc);}return _0x180c8f['sobject'](_0x7b0b('0x39'))[_0x7b0b('0x26')](_0x313713,_0x2c3387);default:return null;}})[_0x7b0b('0x24')](function(_0x2b0394){if(_0x2b0394&&_0x2b0394[_0x7b0b('0x25')]){var _0x2c1347=_[_0x7b0b('0x3c')](_0x2b0394);if(_0x2c1347){return BPromise[_0x7b0b('0x29')]({'id':_0x2c1347['Id'],'name':_0x2c1347[_0x7b0b('0x3d')],'phone':_0x2c1347['Phone'],'endUserType':_0x2c1347[_0x7b0b('0x3e')][_0x7b0b('0x3f')]['toLowerCase']()});}}})[_0x7b0b('0x24')](function(_0x12f769){if(_0x12f769){logger[_0x7b0b('0x1e')]('Enduser\x20(%s)\x20with\x20phone\x20%s\x20found',_0x12f769[_0x7b0b('0x17')],_0x33c71f);return BPromise[_0x7b0b('0x29')](_0x12f769);}else{logger['info']('Enduser\x20with\x20phone\x20%s\x20not\x20found',_0x33c71f);var _0x16d5c7={'Phone':_0x33c71f};if(_0x1aec4b[_0x7b0b('0x40')]){if(_0x1aec4b[_0x7b0b('0x40')]===_0x7b0b('0x1b')){logger[_0x7b0b('0x1e')](_0x7b0b('0x41'),_0x33c71f,_0x1aec4b[_0x7b0b('0x40')]);_0x16d5c7['LastName']=_0x16a71c!=='<unknown>'?_0x16a71c:util[_0x7b0b('0x42')](_0x7b0b('0x43'),_0x33c71f);}else if(_0x1aec4b[_0x7b0b('0x40')]===_0x7b0b('0x18')){logger['info'](_0x7b0b('0x41'),_0x33c71f,_0x1aec4b[_0x7b0b('0x40')]);_0x16d5c7[_0x7b0b('0x44')]=_0x16a71c!==_0x7b0b('0x45')?_0x16a71c:util[_0x7b0b('0x42')](_0x7b0b('0x43'),_0x33c71f);_0x16d5c7[_0x7b0b('0x46')]=_0x7b0b('0x47');}else if(_0x1aec4b['moduleCreate']===_0x7b0b('0x1a')){logger['info'](_0x7b0b('0x41'),_0x33c71f,_0x1aec4b[_0x7b0b('0x40')]);_0x16d5c7[_0x7b0b('0x3d')]=_0x16a71c!=='<unknown>'?_0x16a71c:util[_0x7b0b('0x42')](_0x7b0b('0x43'),_0x33c71f);}else{return null;}}return _0x180c8f[_0x7b0b('0x23')](_['upperFirst'](_0x1aec4b['moduleCreate']))[_0x7b0b('0x20')](_0x16d5c7)[_0x7b0b('0x24')](function(_0x3d1500){return BPromise[_0x7b0b('0x29')]({'id':_0x3d1500['id'],'endUserType':_0x1aec4b[_0x7b0b('0x40')]});});}});}function getCustomFields(_0x2dcae4,_0x2758b1){var _0x3e443c={};if(_0x2dcae4['length']>0x0){_[_0x7b0b('0x48')](_0x2dcae4,function(_0x235c8f){if(_[_0x7b0b('0x49')](['string',_0x7b0b('0x4a')],_0x235c8f['type'])&&_0x235c8f[_0x7b0b('0x4b')]){_0x3e443c[_0x235c8f[_0x7b0b('0x4b')]]=_0x235c8f[_0x7b0b('0x4c')][_0x7b0b('0x4d')]();}else if(_0x235c8f[_0x7b0b('0x3f')]==='variable'&&_0x235c8f['variableName']&&_0x235c8f[_0x7b0b('0x4b')]){_0x2758b1[_0x235c8f[_0x7b0b('0x4e')]]&&(_0x3e443c[_0x235c8f['idField']]=_0x2758b1[_0x235c8f[_0x7b0b('0x4e')]]['toString']());}else if(_0x235c8f[_0x7b0b('0x3f')]===_0x7b0b('0x4f')&&_0x235c8f[_0x7b0b('0x50')]&&_0x235c8f[_0x7b0b('0x50')]['name']&&_0x235c8f[_0x7b0b('0x4b')]){_0x2758b1[_0x235c8f[_0x7b0b('0x50')][_0x7b0b('0x51')]['toLowerCase']()]&&(_0x3e443c[_0x235c8f['idField']]=_0x2758b1[_0x235c8f[_0x7b0b('0x50')]['name'][_0x7b0b('0x52')]()][_0x7b0b('0x4d')]());}});}return _0x3e443c;}function getConnection(_0xef7d38){var _0x5ef971=_0xef7d38[_0x7b0b('0x53')][_0x7b0b('0x54')](_0xef7d38[_0x7b0b('0x55')]);var _0x247284=new jsforce[(_0x7b0b('0x56'))]({'oauth2':{'loginUrl':_0xef7d38['remoteUri']||'https://login.salesforce.com','clientId':_0xef7d38[_0x7b0b('0x57')],'clientSecret':_0xef7d38[_0x7b0b('0x58')]}});return _0x247284['login'](_0xef7d38[_0x7b0b('0x59')],_0x5ef971)[_0x7b0b('0x24')](function(){logger['info'](_0x7b0b('0x5a'));return _0x247284;});}exports[_0x7b0b('0x5b')]=function(_0x33872f,_0x14723e,_0x96ca6a,_0x3845db,_0x3c8189,_0x11bdce){var _0x37cc4a,_0x205188,_0x2559b8,_0xcf935;_0x11bdce['serverUrl']=intUtil['stripTrailingSlash'](_0x11bdce[_0x7b0b('0x5c')]);_0x11bdce['remoteUri']=intUtil[_0x7b0b('0x5d')](_0x11bdce[_0x7b0b('0x5e')]);if(_0x3c8189&&_0x3c8189['monitor_format']){logger['info'](_0x7b0b('0x5f'),_0x7b0b('0x60'));_0x14723e['recordingURL']=util[_0x7b0b('0x42')](_0x7b0b('0x61'),_0x11bdce['serverUrl'],_0x14723e['uniqueid'],md5(_0x14723e[_0x7b0b('0x62')]));}else{_0x14723e[_0x7b0b('0x63')]='';}return getConnection(_0x11bdce)['then'](function(_0x381240){_0xcf935=_0x381240;return getUser(_0x11bdce,_0x3845db[_0x7b0b('0x64')],_0xcf935);})[_0x7b0b('0x24')](function(_0x395b65){_0x37cc4a=_0x395b65;return getEndUser(_0x11bdce,_0x96ca6a,_0x14723e[_0x7b0b('0x65')],_0x14723e[_0x7b0b('0x66')],_0xcf935);})[_0x7b0b('0x24')](function(_0x4e5ed1){_0x205188=_0x4e5ed1;return getTicket(_0x11bdce,_0x37cc4a,_0x205188,_0x96ca6a,_0x14723e,_0x96ca6a['Fields'],_0xcf935,_0x7b0b('0x5b'));})[_0x7b0b('0x24')](function(_0x409279){_0x2559b8=_0x409279;logger['info'](_0x7b0b('0x67'),_0x2559b8['id']);logger['info'](_0x7b0b('0x68'),_0x2559b8['id'],_0x3845db[_0x7b0b('0x51')],_0x11bdce['type']);switch(_0x11bdce[_0x7b0b('0x3f')]){case'integrationTab':emit(util[_0x7b0b('0x42')](_0x7b0b('0x69'),_0x3845db['name']),'trigger:salesforce:display',{'recordId':_0x2559b8['id']});break;case _0x7b0b('0x6a'):emit(util[_0x7b0b('0x42')]('user:%s',_0x3845db[_0x7b0b('0x51')]),_0x7b0b('0x6b'),{'uri':util[_0x7b0b('0x42')]('%s/%s/e',_0xcf935[_0x7b0b('0x6c')],_0x2559b8['id'])});break;default:logger[_0x7b0b('0x6d')](_0x7b0b('0x6e'));}})[_0x7b0b('0x6f')](function(_0xa56077){logger[_0x7b0b('0x6d')]('[QUEUE]',_0xa56077);});};exports['outbound']=function(_0x36ecea,_0x65853e,_0x30fd92,_0x109eaa,_0x3f1ee1,_0x463c17,_0x521179){var _0x518c9b,_0x3647ca,_0x1432ef,_0x10ae08;_0x463c17['serverUrl']=intUtil[_0x7b0b('0x5d')](_0x463c17['serverUrl']);_0x463c17[_0x7b0b('0x5e')]=intUtil[_0x7b0b('0x5d')](_0x463c17['remoteUri']);if(_0x521179&&_0x521179['recordingFormat']&&_0x521179[_0x7b0b('0x70')]!==_0x7b0b('0x71')){logger['info'](_0x7b0b('0x72'),_0x7b0b('0x60'));_0x65853e[_0x7b0b('0x63')]=util['format'](_0x7b0b('0x61'),_0x463c17[_0x7b0b('0x5c')],_0x65853e[_0x7b0b('0x62')],md5(_0x65853e['uniqueid']));}return getConnection(_0x463c17)[_0x7b0b('0x24')](function(_0xf5d0a4){_0x10ae08=_0xf5d0a4;return getUser(_0x463c17,_0x109eaa[_0x7b0b('0x64')],_0x10ae08);})['then'](function(_0x2cb68e){_0x518c9b=_0x2cb68e;return getEndUser(_0x463c17,_0x30fd92,_0x65853e[_0x7b0b('0x73')],_0x65853e[_0x7b0b('0x74')],_0x10ae08);})[_0x7b0b('0x24')](function(_0x17116a){_0x3647ca=_0x17116a;return getTicket(_0x463c17,_0x518c9b,_0x3647ca,_0x30fd92,_0x65853e,_0x30fd92['Fields'],_0x10ae08,_0x7b0b('0x75'));})[_0x7b0b('0x24')](function(_0x56d83b){_0x1432ef=_0x56d83b;logger[_0x7b0b('0x1e')](_0x7b0b('0x76'),_0x1432ef['id']);logger[_0x7b0b('0x1e')]('[OUTBOUND]\x20Displaying\x20ticket\x20%s\x20to\x20agent\x20%s.\x20Integration\x20account\x20type\x20%s.',_0x1432ef['id'],_0x109eaa[_0x7b0b('0x51')],_0x463c17[_0x7b0b('0x3f')]);switch(_0x463c17[_0x7b0b('0x3f')]){case'integrationTab':emit(util[_0x7b0b('0x42')]('user:%s',_0x109eaa[_0x7b0b('0x51')]),_0x7b0b('0x77'),{'recordId':_0x1432ef['id']});break;case _0x7b0b('0x6a'):emit(util[_0x7b0b('0x42')]('user:%s',_0x109eaa[_0x7b0b('0x51')]),'trigger:browser:url',{'uri':util['format'](_0x7b0b('0x78'),_0x10ae08['instanceUrl'],_0x1432ef['id'])});break;default:logger[_0x7b0b('0x6d')](_0x7b0b('0x72'),_0x7b0b('0x79'));}})[_0x7b0b('0x6f')](function(_0x59a775){logger[_0x7b0b('0x6d')]('[OUTBOUND]',_0x59a775);});};exports['unmanaged']=function(_0x127d2d,_0x2e2e71,_0x42b4e9,_0x54c250,_0x651dc,_0x4db060){var _0x2bad04,_0x1c8222,_0x34f97e,_0x433344;_0x4db060[_0x7b0b('0x5c')]=intUtil[_0x7b0b('0x5d')](_0x4db060['serverUrl']);_0x4db060[_0x7b0b('0x5e')]=intUtil['stripTrailingSlash'](_0x4db060[_0x7b0b('0x5e')]);if(_0x651dc&&_0x651dc[_0x7b0b('0x7a')]){logger['info']('['+_0x2e2e71[_0x7b0b('0x7b')][_0x7b0b('0x7c')]()+']',_0x7b0b('0x60'));_0x2e2e71['recordingURL']=util['format'](_0x7b0b('0x61'),_0x4db060[_0x7b0b('0x5c')],_0x2e2e71[_0x7b0b('0x62')],md5(_0x2e2e71[_0x7b0b('0x62')]));}else{_0x2e2e71['recordingURL']='';}return getConnection(_0x4db060)[_0x7b0b('0x24')](function(_0x340641){_0x433344=_0x340641;if(!_['isNil'](_0x54c250)){return getUser(_0x4db060,_0x54c250[_0x7b0b('0x51')],_0x433344);}else{return getUser(_0x4db060,null,_0x433344);}})[_0x7b0b('0x24')](function(_0x2d47b3){_0x2bad04=_0x2d47b3;return getEndUser(_0x4db060,_0x42b4e9,_0x2e2e71[_0x7b0b('0x65')],_0x2e2e71[_0x7b0b('0x66')],_0x433344);})[_0x7b0b('0x24')](function(_0x1b333e){_0x1c8222=_0x1b333e;return getTicket(_0x4db060,_0x2bad04,_0x1c8222,_0x42b4e9,_0x2e2e71,_0x42b4e9[_0x7b0b('0x7d')],_0x433344);})[_0x7b0b('0x24')](function(_0x3eefcf){_0x34f97e=_0x3eefcf;logger[_0x7b0b('0x1e')]('['+_0x2e2e71[_0x7b0b('0x7b')][_0x7b0b('0x7c')]()+_0x7b0b('0x7e'),_0x34f97e['id']);logger[_0x7b0b('0x1e')]('['+_0x2e2e71[_0x7b0b('0x7b')][_0x7b0b('0x7c')]()+_0x7b0b('0x7f'),_0x4db060[_0x7b0b('0x3f')]);})[_0x7b0b('0x6f')](function(_0x3a40f7){logger[_0x7b0b('0x6d')]('['+_0x2e2e71['lastevent'][_0x7b0b('0x7c')]()+']',_0x3a40f7);});};
\ No newline at end of file
+var _0xd0d1=['./util','../../../../config/environment','defaults','localhost','socket.io-emitter','redis','emit','assign','getString','Subjects','Task','ActivityDate','utc','IsReminderSet','IsRecurrence','endUserType','contact','lead','WhoId','account','WhatId','ticketType','Case','AccountId','leadId','info','Association\x20between\x20Case\x20and\x20Lead\x20skipped','sobject','create','isNil','validateEmail','User','find','execute','then','length','Email','Agent\x20%s\x20found.','Name','Agent\x20%s\x20not\x20found.\x20Switch\x20to\x20the\x20admin\x20account.','identity','resolve','user_id','display_name','Searching\x20enduser\x20with\x20phone\x20%s.\x20Serching\x20method\x20used\x20%s.','moduleSearch','contact_lead','cloneDeep','additionalSearchContact','merge','$or','Contact','additionalSearchLead','Lead','account_contact_lead','additionalSearchAccount','Account','Phone','attributes','type','toLowerCase','Enduser\x20(%s)\x20with\x20phone\x20%s\x20found','moduleCreate','Enduser\x20with\x20phone\x20%s.\x20Creating\x20method\x20used\x20%s.','LastName','<unknown>','format','No\x20Company','Caller\x20-\x20%s','upperFirst','forEach','string','picklist','toString','variable','variableName','idField','customVariable','Variable','name','password','concat','securityToken','Connection','remoteUri','https://login.salesforce.com','clientId','login','username','Connection\x20established.','queue','serverUrl','stripTrailingSlash','monitor_format','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','email','calleridname','calleridnum','Fields','[QUEUE]\x20Displaying\x20ticket\x20%s\x20to\x20agent\x20%s.\x20Integration\x20account\x20type\x20%s.','integrationTab','user:%s','trigger:browser:url','%s/%s/e','instanceUrl','error','[QUEUE]\x20Salesforce\x20account\x20type\x20not\x20recognized.','catch','outbound','recordingFormat','none','[OUTBOUND]','destcalleridnum','trigger:salesforce:display','Salesforce\x20account\x20type\x20not\x20recognized','unmanaged','lastevent','toUpperCase',']\x20Ticket\x20%s\x20created.','lodash','request-promise','moment','md5','jsforce','util'];(function(_0x4a53d,_0x58a95e){var _0x27410e=function(_0x38fc90){while(--_0x38fc90){_0x4a53d['push'](_0x4a53d['shift']());}};_0x27410e(++_0x58a95e);}(_0xd0d1,0xfc));var _0x1d0d=function(_0x142d53,_0x251193){_0x142d53=_0x142d53-0x0;var _0x4e0bc2=_0xd0d1[_0x142d53];return _0x4e0bc2;};'use strict';var _=require(_0x1d0d('0x0'));var rp=require(_0x1d0d('0x1'));var moment=require(_0x1d0d('0x2'));var BPromise=require('bluebird');var md5=require(_0x1d0d('0x3'));var jsforce=require(_0x1d0d('0x4'));var util=require(_0x1d0d('0x5'));var Redis=require('ioredis');var intUtil=require(_0x1d0d('0x6'));var config=require(_0x1d0d('0x7'));var logger=require('../../../../config/logger')('salesforce');config['redis']=_[_0x1d0d('0x8')](config['redis'],{'host':_0x1d0d('0x9'),'port':0x18eb});var io=require(_0x1d0d('0xa'))(new Redis(config[_0x1d0d('0xb')]));function emit(_0x4c1096,_0x36a056,_0xe92045){io['to'](_0x4c1096)[_0x1d0d('0xc')](_0x36a056,_0xe92045);}function getTicket(_0x48f91d,_0x15e8ac,_0x38d59d,_0x4f9159,_0x26391c,_0x57e128,_0x9b70f2,_0x1a0eac){var _0x1b2b35=Object[_0x1d0d('0xd')]({},{'OwnerId':_0x15e8ac['id'],'Subject':intUtil[_0x1d0d('0xe')](_0x4f9159[_0x1d0d('0xf')],_0x26391c,'\x20'),'Description':intUtil[_0x1d0d('0xe')](_0x4f9159['Descriptions'],_0x26391c,'\x0a')},getCustomFields(_0x57e128,_0x26391c));if(_0x38d59d){if(_0x4f9159['ticketType']===_0x1d0d('0x10')){_0x1b2b35[_0x1d0d('0x11')]=moment[_0x1d0d('0x12')]();_0x1b2b35[_0x1d0d('0x13')]=![];_0x1b2b35[_0x1d0d('0x14')]=![];if(_0x38d59d[_0x1d0d('0x15')]===_0x1d0d('0x16')||_0x38d59d[_0x1d0d('0x15')]===_0x1d0d('0x17')){_0x1b2b35[_0x1d0d('0x18')]=_0x38d59d['id'];}else if(_0x38d59d['endUserType']===_0x1d0d('0x19')){_0x1b2b35[_0x1d0d('0x1a')]=_0x38d59d['id'];}}else if(_0x4f9159[_0x1d0d('0x1b')]===_0x1d0d('0x1c')){if(_0x38d59d[_0x1d0d('0x15')]===_0x1d0d('0x16')){_0x1b2b35['ContactId']=_0x38d59d['id'];}else if(_0x38d59d['endUserType']===_0x1d0d('0x19')){_0x1b2b35[_0x1d0d('0x1d')]=_0x38d59d['id'];}else if(_0x38d59d[_0x1d0d('0x15')]==='lead'&&_0x4f9159[_0x1d0d('0x1e')]){_0x1b2b35[_0x4f9159['leadId']]=_0x38d59d['id'];}else{logger[_0x1d0d('0x1f')](_0x1d0d('0x20'));}}}return _0x9b70f2[_0x1d0d('0x21')](_0x4f9159[_0x1d0d('0x1b')])[_0x1d0d('0x22')](_0x1b2b35);}function getUser(_0x13e58e,_0x369f90,_0x4f527b){if(!_[_0x1d0d('0x23')](_0x369f90)&&intUtil[_0x1d0d('0x24')](_0x369f90)){var _0x42ee05={'Email':_0x369f90};var _0x3693b2={'Id':!![],'Username':!![],'Name':!![],'Email':!![]};return _0x4f527b['sobject'](_0x1d0d('0x25'))[_0x1d0d('0x26')](_0x42ee05,_0x3693b2)[_0x1d0d('0x27')]()[_0x1d0d('0x28')](function(_0x25071a){if(_0x25071a[_0x1d0d('0x29')]){var _0x33a77e=_[_0x1d0d('0x26')](_0x25071a,function(_0x5b3300){return _0x5b3300[_0x1d0d('0x2a')]===_0x369f90;});if(_0x33a77e){logger[_0x1d0d('0x1f')](_0x1d0d('0x2b'),_0x369f90);return BPromise['resolve']({'id':_0x33a77e['Id'],'name':_0x33a77e[_0x1d0d('0x2c')]});}}else{logger[_0x1d0d('0x1f')](_0x1d0d('0x2d'),_0x369f90);return _0x4f527b[_0x1d0d('0x2e')]()[_0x1d0d('0x28')](function(_0x3f05bc){return BPromise[_0x1d0d('0x2f')]({'id':_0x3f05bc[_0x1d0d('0x30')],'name':_0x3f05bc[_0x1d0d('0x31')]});});}});}else{logger[_0x1d0d('0x1f')](_0x1d0d('0x2d'),_0x369f90);return _0x4f527b['identity']()[_0x1d0d('0x28')](function(_0x3229f4){return BPromise[_0x1d0d('0x2f')]({'id':_0x3229f4[_0x1d0d('0x30')],'name':_0x3229f4[_0x1d0d('0x31')]});});}}function getEndUser(_0x492c50,_0x59ae1e,_0x3d5c13,_0x2a565b,_0x564435){var _0x486457={'$or':{'Phone':_0x2a565b}};var _0xb2c1e5={'Id':!![],'Name':!![],'Phone':!![]};return BPromise[_0x1d0d('0x2f')]()['then'](function(){logger[_0x1d0d('0x1f')](_0x1d0d('0x32'),_0x2a565b,_0x59ae1e[_0x1d0d('0x33')]);switch(_0x59ae1e[_0x1d0d('0x33')]){case _0x1d0d('0x34'):var _0x3a9242=_[_0x1d0d('0x35')](_0x486457);if(_0x59ae1e[_0x1d0d('0x36')]){var _0x1c6477={};_0x1c6477[_0x59ae1e[_0x1d0d('0x36')]]=_0x2a565b;_[_0x1d0d('0x37')](_0x3a9242[_0x1d0d('0x38')],_0x1c6477);}return _0x564435[_0x1d0d('0x21')](_0x1d0d('0x39'))[_0x1d0d('0x26')](_0x3a9242,_0xb2c1e5)[_0x1d0d('0x27')]()['then'](function(_0x28caad){if(_0x28caad&&_0x28caad['length']){return _0x28caad;}else{var _0x5284a7=_[_0x1d0d('0x35')](_0x486457);if(_0x59ae1e[_0x1d0d('0x3a')]){var _0x2e768e={};_0x2e768e[_0x59ae1e[_0x1d0d('0x3a')]]=_0x2a565b;_[_0x1d0d('0x37')](_0x5284a7[_0x1d0d('0x38')],_0x2e768e);}return _0x564435[_0x1d0d('0x21')](_0x1d0d('0x3b'))[_0x1d0d('0x26')](_0x5284a7,_0xb2c1e5);}});case _0x1d0d('0x3c'):var _0x110ab1=_['cloneDeep'](_0x486457);if(_0x59ae1e['additionalSearchAccount']){var _0x1c6477={};_0x1c6477[_0x59ae1e[_0x1d0d('0x3d')]]=_0x2a565b;_[_0x1d0d('0x37')](_0x110ab1[_0x1d0d('0x38')],_0x1c6477);}return _0x564435[_0x1d0d('0x21')](_0x1d0d('0x3e'))['find'](_0x110ab1,_0xb2c1e5)['execute']()[_0x1d0d('0x28')](function(_0x259278){if(_0x259278&&_0x259278['length']){return _0x259278;}else{var _0x20ef1d=_[_0x1d0d('0x35')](_0x486457);if(_0x59ae1e[_0x1d0d('0x36')]){var _0x2a3ad7={};_0x2a3ad7[_0x59ae1e[_0x1d0d('0x36')]]=_0x2a565b;_['merge'](_0x20ef1d[_0x1d0d('0x38')],_0x2a3ad7);}return _0x564435[_0x1d0d('0x21')](_0x1d0d('0x39'))[_0x1d0d('0x26')](_0x20ef1d,_0xb2c1e5)[_0x1d0d('0x28')](function(_0x216e52){if(_0x216e52&&_0x216e52[_0x1d0d('0x29')]){return _0x216e52;}else{var _0x2471cc=_['cloneDeep'](_0x486457);if(_0x59ae1e[_0x1d0d('0x3a')]){var _0xb3b654={};_0xb3b654[_0x59ae1e[_0x1d0d('0x3a')]]=_0x2a565b;_[_0x1d0d('0x37')](_0x2471cc[_0x1d0d('0x38')],_0xb3b654);}return _0x564435['sobject']('Lead')[_0x1d0d('0x26')](_0x2471cc,_0xb2c1e5);}});}});case'contact':var _0x3a9242=_[_0x1d0d('0x35')](_0x486457);if(_0x59ae1e['additionalSearchContact']){var _0x1c6477={};_0x1c6477[_0x59ae1e[_0x1d0d('0x36')]]=_0x2a565b;_['merge'](_0x3a9242[_0x1d0d('0x38')],_0x1c6477);}return _0x564435[_0x1d0d('0x21')]('Contact')[_0x1d0d('0x26')](_0x3a9242,_0xb2c1e5)[_0x1d0d('0x27')]();case _0x1d0d('0x17'):var _0x3471a8=_[_0x1d0d('0x35')](_0x486457);if(_0x59ae1e[_0x1d0d('0x3a')]){var _0x1c6477={};_0x1c6477[_0x59ae1e['additionalSearchLead']]=_0x2a565b;_[_0x1d0d('0x37')](_0x3471a8[_0x1d0d('0x38')],_0x1c6477);}return _0x564435[_0x1d0d('0x21')]('Lead')['find'](_0x3471a8,_0xb2c1e5);case'account':var _0x110ab1=_[_0x1d0d('0x35')](_0x486457);if(_0x59ae1e[_0x1d0d('0x3d')]){var _0x1c6477={};_0x1c6477[_0x59ae1e['additionalSearchAccount']]=_0x2a565b;_[_0x1d0d('0x37')](_0x110ab1[_0x1d0d('0x38')],_0x1c6477);}return _0x564435[_0x1d0d('0x21')]('Account')[_0x1d0d('0x26')](_0x110ab1,_0xb2c1e5);default:return null;}})['then'](function(_0x28cf10){if(_0x28cf10&&_0x28cf10[_0x1d0d('0x29')]){var _0x370b18=_['first'](_0x28cf10);if(_0x370b18){return BPromise[_0x1d0d('0x2f')]({'id':_0x370b18['Id'],'name':_0x370b18[_0x1d0d('0x2c')],'phone':_0x370b18[_0x1d0d('0x3f')],'endUserType':_0x370b18[_0x1d0d('0x40')][_0x1d0d('0x41')][_0x1d0d('0x42')]()});}}})[_0x1d0d('0x28')](function(_0x479347){if(_0x479347){logger[_0x1d0d('0x1f')](_0x1d0d('0x43'),_0x479347['endUserType'],_0x2a565b);return BPromise[_0x1d0d('0x2f')](_0x479347);}else{logger['info']('Enduser\x20with\x20phone\x20%s\x20not\x20found',_0x2a565b);var _0x487786={'Phone':_0x2a565b};if(_0x59ae1e['moduleCreate']){if(_0x59ae1e[_0x1d0d('0x44')]===_0x1d0d('0x16')){logger['info'](_0x1d0d('0x45'),_0x2a565b,_0x59ae1e[_0x1d0d('0x44')]);_0x487786[_0x1d0d('0x46')]=_0x3d5c13!==_0x1d0d('0x47')?_0x3d5c13:util[_0x1d0d('0x48')]('Caller\x20-\x20%s',_0x2a565b);}else if(_0x59ae1e[_0x1d0d('0x44')]===_0x1d0d('0x17')){logger[_0x1d0d('0x1f')](_0x1d0d('0x45'),_0x2a565b,_0x59ae1e[_0x1d0d('0x44')]);_0x487786[_0x1d0d('0x46')]=_0x3d5c13!=='<unknown>'?_0x3d5c13:util[_0x1d0d('0x48')]('Caller\x20-\x20%s',_0x2a565b);_0x487786['Company']=_0x1d0d('0x49');}else if(_0x59ae1e[_0x1d0d('0x44')]===_0x1d0d('0x19')){logger[_0x1d0d('0x1f')]('Enduser\x20with\x20phone\x20%s.\x20Creating\x20method\x20used\x20%s.',_0x2a565b,_0x59ae1e[_0x1d0d('0x44')]);_0x487786[_0x1d0d('0x2c')]=_0x3d5c13!==_0x1d0d('0x47')?_0x3d5c13:util['format'](_0x1d0d('0x4a'),_0x2a565b);}else{return null;}}return _0x564435[_0x1d0d('0x21')](_[_0x1d0d('0x4b')](_0x59ae1e[_0x1d0d('0x44')]))[_0x1d0d('0x22')](_0x487786)['then'](function(_0x38d863){return BPromise[_0x1d0d('0x2f')]({'id':_0x38d863['id'],'endUserType':_0x59ae1e['moduleCreate']});});}});}function getCustomFields(_0x262881,_0x30a378){var _0x3305f9={};if(_0x262881[_0x1d0d('0x29')]>0x0){_[_0x1d0d('0x4c')](_0x262881,function(_0x2f528d){if(_['includes']([_0x1d0d('0x4d'),_0x1d0d('0x4e')],_0x2f528d[_0x1d0d('0x41')])&&_0x2f528d['idField']){_0x3305f9[_0x2f528d['idField']]=_0x2f528d['content'][_0x1d0d('0x4f')]();}else if(_0x2f528d['type']===_0x1d0d('0x50')&&_0x2f528d[_0x1d0d('0x51')]&&_0x2f528d['idField']){_0x30a378[_0x2f528d[_0x1d0d('0x51')]]&&(_0x3305f9[_0x2f528d[_0x1d0d('0x52')]]=_0x30a378[_0x2f528d[_0x1d0d('0x51')]][_0x1d0d('0x4f')]());}else if(_0x2f528d[_0x1d0d('0x41')]===_0x1d0d('0x53')&&_0x2f528d[_0x1d0d('0x54')]&&_0x2f528d[_0x1d0d('0x54')]['name']&&_0x2f528d[_0x1d0d('0x52')]){_0x30a378[_0x2f528d[_0x1d0d('0x54')][_0x1d0d('0x55')][_0x1d0d('0x42')]()]&&(_0x3305f9[_0x2f528d[_0x1d0d('0x52')]]=_0x30a378[_0x2f528d[_0x1d0d('0x54')][_0x1d0d('0x55')][_0x1d0d('0x42')]()][_0x1d0d('0x4f')]());}});}return _0x3305f9;}function getConnection(_0x281337){var _0x345a44=_0x281337[_0x1d0d('0x56')][_0x1d0d('0x57')](_0x281337[_0x1d0d('0x58')]);var _0x648fe=new jsforce[(_0x1d0d('0x59'))]({'oauth2':{'loginUrl':_0x281337[_0x1d0d('0x5a')]||_0x1d0d('0x5b'),'clientId':_0x281337[_0x1d0d('0x5c')],'clientSecret':_0x281337['clientSecret']}});return _0x648fe[_0x1d0d('0x5d')](_0x281337[_0x1d0d('0x5e')],_0x345a44)['then'](function(){logger[_0x1d0d('0x1f')](_0x1d0d('0x5f'));return _0x648fe;});}exports[_0x1d0d('0x60')]=function(_0x440e6d,_0x1e59b3,_0x5424ea,_0x94597f,_0x64e127,_0x4baf20){var _0x7070d7,_0x50a47d,_0x37e4d9,_0xe33814;_0x4baf20[_0x1d0d('0x61')]=intUtil[_0x1d0d('0x62')](_0x4baf20[_0x1d0d('0x61')]);_0x4baf20['remoteUri']=intUtil[_0x1d0d('0x62')](_0x4baf20['remoteUri']);if(_0x64e127&&_0x64e127[_0x1d0d('0x63')]){logger['info'](_0x1d0d('0x64'),_0x1d0d('0x65'));_0x1e59b3[_0x1d0d('0x66')]=util[_0x1d0d('0x48')](_0x1d0d('0x67'),_0x4baf20[_0x1d0d('0x61')],_0x1e59b3[_0x1d0d('0x68')],md5(_0x1e59b3[_0x1d0d('0x68')]));}else{_0x1e59b3['recordingURL']='';}return getConnection(_0x4baf20)[_0x1d0d('0x28')](function(_0x4db18c){_0xe33814=_0x4db18c;return getUser(_0x4baf20,_0x94597f[_0x1d0d('0x69')],_0xe33814);})[_0x1d0d('0x28')](function(_0x4755c5){_0x7070d7=_0x4755c5;return getEndUser(_0x4baf20,_0x5424ea,_0x1e59b3[_0x1d0d('0x6a')],_0x1e59b3[_0x1d0d('0x6b')],_0xe33814);})[_0x1d0d('0x28')](function(_0x592b77){_0x50a47d=_0x592b77;return getTicket(_0x4baf20,_0x7070d7,_0x50a47d,_0x5424ea,_0x1e59b3,_0x5424ea[_0x1d0d('0x6c')],_0xe33814,'queue');})[_0x1d0d('0x28')](function(_0x48aac8){_0x37e4d9=_0x48aac8;logger['info']('[QUEUE]\x20Ticket\x20%s\x20created',_0x37e4d9['id']);logger['info'](_0x1d0d('0x6d'),_0x37e4d9['id'],_0x94597f[_0x1d0d('0x55')],_0x4baf20[_0x1d0d('0x41')]);switch(_0x4baf20[_0x1d0d('0x41')]){case _0x1d0d('0x6e'):emit(util[_0x1d0d('0x48')]('user:%s',_0x94597f[_0x1d0d('0x55')]),'trigger:salesforce:display',{'recordId':_0x37e4d9['id']});break;case'newTab':emit(util[_0x1d0d('0x48')](_0x1d0d('0x6f'),_0x94597f[_0x1d0d('0x55')]),_0x1d0d('0x70'),{'uri':util[_0x1d0d('0x48')](_0x1d0d('0x71'),_0xe33814[_0x1d0d('0x72')],_0x37e4d9['id'])});break;default:logger[_0x1d0d('0x73')](_0x1d0d('0x74'));}})[_0x1d0d('0x75')](function(_0xcb1de8){logger[_0x1d0d('0x73')](_0x1d0d('0x64'),_0xcb1de8);});};exports[_0x1d0d('0x76')]=function(_0xafe268,_0x1cee2b,_0x4a30d3,_0x48a738,_0x308060,_0x1ea947,_0x3cbc66){var _0x40ad3a,_0x3adea8,_0x3b91d2,_0x4a63de;_0x1ea947[_0x1d0d('0x61')]=intUtil[_0x1d0d('0x62')](_0x1ea947[_0x1d0d('0x61')]);_0x1ea947['remoteUri']=intUtil['stripTrailingSlash'](_0x1ea947[_0x1d0d('0x5a')]);if(_0x3cbc66&&_0x3cbc66[_0x1d0d('0x77')]&&_0x3cbc66[_0x1d0d('0x77')]!==_0x1d0d('0x78')){logger[_0x1d0d('0x1f')](_0x1d0d('0x79'),'Recording\x20is\x20enabled!');_0x1cee2b[_0x1d0d('0x66')]=util[_0x1d0d('0x48')](_0x1d0d('0x67'),_0x1ea947[_0x1d0d('0x61')],_0x1cee2b[_0x1d0d('0x68')],md5(_0x1cee2b[_0x1d0d('0x68')]));}return getConnection(_0x1ea947)[_0x1d0d('0x28')](function(_0x10ad12){_0x4a63de=_0x10ad12;return getUser(_0x1ea947,_0x48a738[_0x1d0d('0x69')],_0x4a63de);})['then'](function(_0x545ef7){_0x40ad3a=_0x545ef7;return getEndUser(_0x1ea947,_0x4a30d3,_0x1cee2b['destcalleridname'],_0x1cee2b[_0x1d0d('0x7a')],_0x4a63de);})[_0x1d0d('0x28')](function(_0x4bdd81){_0x3adea8=_0x4bdd81;return getTicket(_0x1ea947,_0x40ad3a,_0x3adea8,_0x4a30d3,_0x1cee2b,_0x4a30d3['Fields'],_0x4a63de,_0x1d0d('0x76'));})['then'](function(_0x56791f){_0x3b91d2=_0x56791f;logger[_0x1d0d('0x1f')]('[OUTBOUND]\x20Ticket\x20%s\x20created.',_0x3b91d2['id']);logger[_0x1d0d('0x1f')]('[OUTBOUND]\x20Displaying\x20ticket\x20%s\x20to\x20agent\x20%s.\x20Integration\x20account\x20type\x20%s.',_0x3b91d2['id'],_0x48a738[_0x1d0d('0x55')],_0x1ea947[_0x1d0d('0x41')]);switch(_0x1ea947[_0x1d0d('0x41')]){case _0x1d0d('0x6e'):emit(util[_0x1d0d('0x48')](_0x1d0d('0x6f'),_0x48a738[_0x1d0d('0x55')]),_0x1d0d('0x7b'),{'recordId':_0x3b91d2['id']});break;case'newTab':emit(util[_0x1d0d('0x48')](_0x1d0d('0x6f'),_0x48a738['name']),_0x1d0d('0x70'),{'uri':util[_0x1d0d('0x48')](_0x1d0d('0x71'),_0x4a63de[_0x1d0d('0x72')],_0x3b91d2['id'])});break;default:logger[_0x1d0d('0x73')]('[OUTBOUND]',_0x1d0d('0x7c'));}})[_0x1d0d('0x75')](function(_0x54498d){logger[_0x1d0d('0x73')](_0x1d0d('0x79'),_0x54498d);});};exports[_0x1d0d('0x7d')]=function(_0x53d783,_0x2e74c8,_0x4ccab8,_0x4d75d6,_0x16c07d,_0x70ba67){var _0x90fcab,_0x43d457,_0x513705,_0x4a1b83;_0x70ba67[_0x1d0d('0x61')]=intUtil[_0x1d0d('0x62')](_0x70ba67[_0x1d0d('0x61')]);_0x70ba67['remoteUri']=intUtil[_0x1d0d('0x62')](_0x70ba67[_0x1d0d('0x5a')]);if(_0x16c07d&&_0x16c07d[_0x1d0d('0x63')]){logger[_0x1d0d('0x1f')]('['+_0x2e74c8[_0x1d0d('0x7e')][_0x1d0d('0x7f')]()+']','Recording\x20is\x20enabled!');_0x2e74c8[_0x1d0d('0x66')]=util[_0x1d0d('0x48')](_0x1d0d('0x67'),_0x70ba67[_0x1d0d('0x61')],_0x2e74c8['uniqueid'],md5(_0x2e74c8['uniqueid']));}else{_0x2e74c8[_0x1d0d('0x66')]='';}return getConnection(_0x70ba67)[_0x1d0d('0x28')](function(_0x24acea){_0x4a1b83=_0x24acea;if(!_[_0x1d0d('0x23')](_0x4d75d6)){return getUser(_0x70ba67,_0x4d75d6[_0x1d0d('0x55')],_0x4a1b83);}else{return getUser(_0x70ba67,null,_0x4a1b83);}})['then'](function(_0x1eb77d){_0x90fcab=_0x1eb77d;return getEndUser(_0x70ba67,_0x4ccab8,_0x2e74c8[_0x1d0d('0x6a')],_0x2e74c8[_0x1d0d('0x6b')],_0x4a1b83);})[_0x1d0d('0x28')](function(_0x4326cd){_0x43d457=_0x4326cd;return getTicket(_0x70ba67,_0x90fcab,_0x43d457,_0x4ccab8,_0x2e74c8,_0x4ccab8[_0x1d0d('0x6c')],_0x4a1b83);})[_0x1d0d('0x28')](function(_0x5db36b){_0x513705=_0x5db36b;logger[_0x1d0d('0x1f')]('['+_0x2e74c8[_0x1d0d('0x7e')]['toUpperCase']()+_0x1d0d('0x80'),_0x513705['id']);logger[_0x1d0d('0x1f')]('['+_0x2e74c8[_0x1d0d('0x7e')][_0x1d0d('0x7f')]()+']\x20Integration\x20account\x20type\x20%s.',_0x70ba67[_0x1d0d('0x41')]);})[_0x1d0d('0x75')](function(_0x398a44){logger['error']('['+_0x2e74c8[_0x1d0d('0x7e')]['toUpperCase']()+']',_0x398a44);});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x47c1=['calleridnum','callDirection','queue','uniqueid','[QUEUE]','Recording\x20is\x20enabled!','recordingFormat','none','[OUTBOUND]','recordingURL','format','call\x20direction:\x20%s','Displaying\x20call\x20in\x20a\x20new\x20tab...',']\x20Error\x20running\x20ServiceNow\x20integration','inspect','lodash','request-promise','util','md5','ioredis','./util','../../../../config/logger','servicenow','redis','defaults','localhost','socket.io-emitter','GET','sys_user?sysparm_query=user_name%3Dadmin','then','result','length','toUpperCase','],\x20getAdminUser\x20crm','message','],\x20getUser\x20input\x20crm','validateEmail','userEmail','info','],\x20getUser\x20rp\x20obj','],\x20getUser\x20entity','sys_id','userId','adminId','adminEmail','],\x20getUser\x20crm','catch','error','],\x20createEndUser\x20input\x20crm','POST','sys_user?','endUserNumber','user','System','],\x20EndUser\x20schema','],\x20getEndUser\x20input\x20crm','endUserId','],\x20getEndUser\x20crm','],\x20createEndUser\x20crm','forEach','includes','string','picklist','type','customField','nameField','toLowerCase','content','toString','variableName','idField','customVariable','Variable','name','outbound','incident','assign','true','Subjects','Descriptions',']\x20POST\x20incident\x20entity\x20schema','ticketId','ticketNumber',']\x20getTicket\x20crm','?sysparm_query=name%3D','label_entry','Incident','Incident\x20-\x20','push',']\x20arrayPromises:\x20IDs\x20in\x20table\x20label','all','Tags','map','%26sysparm_record_target%3Dincident','%26sysparm_record_row%3D1%26sysparm_record_rows%3D39','%26sysparm_record_list%3Dactive%253Dtrue','%255EORDERBYDESCnumber','emit','password','sysparm_limit=1','sysparm_display_value=true','remoteUri','serverUrl','%s/api/now/table/','isNil','email'];(function(_0x10a904,_0x2bf292){var _0x53815a=function(_0x2e6ce4){while(--_0x2e6ce4){_0x10a904['push'](_0x10a904['shift']());}};_0x53815a(++_0x2bf292);}(_0x47c1,0x14d));var _0x147c=function(_0x4ff239,_0x9da7c9){_0x4ff239=_0x4ff239-0x0;var _0x4cdd91=_0x47c1[_0x4ff239];return _0x4cdd91;};'use strict';var _=require(_0x147c('0x0'));var Promise=require('bluebird');var rp=require(_0x147c('0x1'));var util=require(_0x147c('0x2'));var md5=require(_0x147c('0x3'));var Redis=require(_0x147c('0x4'));var intUtil=require(_0x147c('0x5'));var config=require('../../../../config/environment');var logger=require(_0x147c('0x6'))(_0x147c('0x7'));config[_0x147c('0x8')]=_[_0x147c('0x9')](config[_0x147c('0x8')],{'host':_0x147c('0xa'),'port':0x18eb});var io=require(_0x147c('0xb'))(new Redis(config[_0x147c('0x8')]));function getAdminUser(_0x3a0b23,_0x6dbf79,_0x194ae3,_0x5c6e24,_0x2fba55,_0x4ddeed){return new Promise(function(_0x5a8da5,_0x4b9f40){var _0x50efbf={'method':_0x147c('0xc'),'uri':_0x5c6e24+_0x147c('0xd')+'&'+_0x2fba55+'&'+_0x4ddeed,'auth':_0x6dbf79,'json':!![]};return rp(_0x50efbf)[_0x147c('0xe')](function(_0x18f906){if(_0x18f906[_0x147c('0xf')][_0x147c('0x10')]>0x0){_0x194ae3['adminId']=_0x18f906['result'][0x0]['sys_id'];}logger['info']('['+[_0x3a0b23[_0x147c('0x11')]()]+_0x147c('0x12'),_0x194ae3);_0x5a8da5(_0x194ae3);})['catch'](function(_0x2bcbc1){logger['error']('['+[_0x3a0b23[_0x147c('0x11')]()]+']',_0x2bcbc1[_0x147c('0x13')]);_0x4b9f40(_0x2bcbc1[_0x147c('0x13')]);});});}function getUser(_0x39ff70,_0xf01075,_0x1ae2c8,_0x8d714b,_0x4ae5f3){return function(_0x1910ad){logger['info']('['+[_0x39ff70[_0x147c('0x11')]()]+_0x147c('0x14'),_0x1910ad);return new Promise(function(_0x3a2585,_0x407c25){if(intUtil[_0x147c('0x15')](_0x1910ad[_0x147c('0x16')])){var _0x4d34b2={'method':_0x147c('0xc'),'uri':_0x1ae2c8+'sys_user?sysparm_query=email%3D'+_0x1910ad[_0x147c('0x16')]+'&'+_0x8d714b+'&'+_0x4ae5f3,'auth':_0xf01075,'json':!![]};logger[_0x147c('0x17')]('['+[_0x39ff70[_0x147c('0x11')]()]+_0x147c('0x18'),_0x4d34b2);return rp(_0x4d34b2)['then'](function(_0x19ec67){logger[_0x147c('0x17')]('['+[_0x39ff70[_0x147c('0x11')]()]+_0x147c('0x19'),_0x19ec67);if(_0x19ec67[_0x147c('0xf')][_0x147c('0x10')]>0x0&&String(_0x19ec67[_0x147c('0xf')][0x0]['active'])==='true'){_0x1910ad['userId']=_0x19ec67['result'][0x0][_0x147c('0x1a')];}else{_0x1910ad[_0x147c('0x1b')]=_0x1910ad[_0x147c('0x1c')];_0x1910ad[_0x147c('0x16')]=_0x1910ad[_0x147c('0x1d')];}logger[_0x147c('0x17')]('['+[_0x39ff70[_0x147c('0x11')]()]+_0x147c('0x1e'),_0x1910ad);_0x3a2585(_0x1910ad);})[_0x147c('0x1f')](function(_0xef91c3){logger[_0x147c('0x20')]('['+[_0x39ff70[_0x147c('0x11')]()]+']',_0xef91c3[_0x147c('0x13')]);_0x407c25(_0xef91c3['message']);});}else{logger[_0x147c('0x17')]('['+[_0x39ff70['toUpperCase']()]+']\x20using\x20admin\x20profile');_0x1910ad[_0x147c('0x1b')]=_0x1910ad[_0x147c('0x1c')];_0x1910ad['userEmail']=_0x1910ad[_0x147c('0x1d')];_0x3a2585(_0x1910ad);}});};}function createEndUser(_0xc4d9d0,_0x35e0d6,_0x176022,_0x38b82c,_0x568777){logger[_0x147c('0x17')]('['+[_0xc4d9d0[_0x147c('0x11')]()]+_0x147c('0x21'),_0x176022);return new Promise(function(_0x151445,_0x205799){var _0x2f801a={'method':_0x147c('0x22'),'uri':_0x38b82c+_0x147c('0x23')+_0x568777,'body':{'user_name':_0x176022[_0x147c('0x24')],'roles':_0x147c('0x25'),'first_name':_0x176022[_0x147c('0x24')],'active':'true','date_format':_0x147c('0x26'),'phone':_0x176022[_0x147c('0x24')]},'auth':_0x35e0d6,'json':!![]};return rp(_0x2f801a)[_0x147c('0xe')](function(_0x400bc5){logger['info']('['+[_0xc4d9d0[_0x147c('0x11')]()]+_0x147c('0x27'),_0x400bc5['result']);_0x176022['endUserId']=_0x400bc5[_0x147c('0xf')][_0x147c('0x1a')];_0x151445(_0x176022);})['catch'](function(_0x4feba4){logger[_0x147c('0x20')]('['+[_0xc4d9d0[_0x147c('0x11')]()]+']',_0x4feba4[_0x147c('0x13')]);_0x205799(_0x4feba4[_0x147c('0x13')]);});});}function getEndUser(_0x2db9da,_0x544419,_0x3649ed,_0x9f68be,_0x243b4c){return function(_0x12f10d){logger[_0x147c('0x17')]('['+[_0x2db9da[_0x147c('0x11')]()]+_0x147c('0x28'),_0x12f10d);return new Promise(function(_0x3776ec,_0x2edc6f){var _0x320f74={'method':_0x147c('0xc'),'uri':_0x3649ed+'sys_user?sysparm_query=phone%3D'+_0x12f10d['endUserNumber']+'&'+_0x9f68be+'&'+_0x243b4c,'auth':_0x544419,'json':!![]};return rp(_0x320f74)[_0x147c('0xe')](function(_0x14e1d6){if(_0x14e1d6[_0x147c('0xf')][_0x147c('0x10')]>0x0){_0x12f10d[_0x147c('0x29')]=_0x14e1d6[_0x147c('0xf')][0x0][_0x147c('0x1a')];logger[_0x147c('0x17')]('['+[_0x2db9da[_0x147c('0x11')]()]+_0x147c('0x2a'),_0x12f10d);_0x3776ec(_0x12f10d);}else{return createEndUser(_0x2db9da,_0x544419,_0x12f10d,_0x3649ed,_0x9f68be)[_0x147c('0xe')](function(_0xeb49c){logger[_0x147c('0x17')]('['+[_0x2db9da[_0x147c('0x11')]()]+_0x147c('0x2b'),_0xeb49c);_0x3776ec(_0xeb49c);});}})[_0x147c('0x1f')](function(_0x55a7ac){logger[_0x147c('0x20')]('['+[_0x2db9da[_0x147c('0x11')]()]+']',_0x55a7ac[_0x147c('0x13')]);_0x2edc6f(_0x55a7ac[_0x147c('0x13')]);});});};}function getCustomFields(_0x30a259,_0x7cd03e){var _0x453567={};if(_0x30a259['length']>0x0){_[_0x147c('0x2c')](_0x30a259,function(_0x117298){if(_[_0x147c('0x2d')]([_0x147c('0x2e'),_0x147c('0x2f')],_0x117298[_0x147c('0x30')])&&_0x117298['nameField']&&!_0x117298[_0x147c('0x31')]){_0x453567[_0x117298[_0x147c('0x32')][_0x147c('0x33')]()]=_0x117298[_0x147c('0x34')][_0x147c('0x35')]();}else if(_[_0x147c('0x2d')](['string','picklist'],_0x117298['type'])&&_0x117298['idField']&&_0x117298[_0x147c('0x31')]){_0x453567[_0x117298['idField']['toLowerCase']()]=_0x117298[_0x147c('0x34')][_0x147c('0x35')]();}else if(_0x117298['type']==='variable'&&_0x117298[_0x147c('0x36')]&&_0x117298[_0x147c('0x37')]&&_0x117298['customField']){_0x453567[_0x117298['idField'][_0x147c('0x33')]()]=_0x7cd03e[_0x117298[_0x147c('0x36')]]['toString']();}else if(_0x117298['type']===_0x147c('0x38')&&_0x117298[_0x147c('0x39')]&&_0x117298['Variable'][_0x147c('0x3a')]&&_0x117298[_0x147c('0x37')]&&_0x117298[_0x147c('0x31')]){_0x453567[_0x117298[_0x147c('0x37')][_0x147c('0x33')]()]=_0x7cd03e[_0x117298[_0x147c('0x39')]['name'][_0x147c('0x33')]()]['toString']();}});}return _0x453567;}function getTicket(_0x3bf7e8,_0x481718,_0x3afb87,_0x291633,_0x217d36,_0x549e85){return function(_0xba1fc){logger[_0x147c('0x17')]('['+[_0x3bf7e8[_0x147c('0x11')]()]+']\x20getTicket\x20input\x20crm',_0xba1fc);return new Promise(function(_0x4a48c8,_0x3a1e7e){var _0x5e0cbe=_0x3bf7e8['toLowerCase']()===_0x147c('0x3b')?_0xba1fc[_0x147c('0x1b')]:_0xba1fc[_0x147c('0x29')];var _0x340d58={'method':_0x147c('0x22'),'uri':_0x3afb87+_0x147c('0x3c')+'?'+_0x549e85,'body':Object[_0x147c('0x3d')]({},{'active':_0x147c('0x3e'),'caller_id':_0x5e0cbe,'assigned_to':_0xba1fc[_0x147c('0x1b')],'short_description':intUtil['getString'](_0x291633[_0x147c('0x3f')],_0x217d36,'\x20'),'description':intUtil['getString'](_0x291633[_0x147c('0x40')],_0x217d36,'\x0a')},getCustomFields(_0x291633['Fields'],_0x217d36)),'auth':_0x481718,'json':!![]};return rp(_0x340d58)['then'](function(_0x20c5ca){logger[_0x147c('0x17')]('['+[_0x3bf7e8[_0x147c('0x11')]()]+_0x147c('0x41'),_0x20c5ca[_0x147c('0xf')]);_0xba1fc[_0x147c('0x42')]=_0x20c5ca['result'][_0x147c('0x1a')];_0xba1fc[_0x147c('0x43')]=_0x20c5ca[_0x147c('0xf')]['number'];logger[_0x147c('0x17')]('['+[_0x3bf7e8['toUpperCase']()]+_0x147c('0x44'),_0xba1fc);_0x4a48c8(_0xba1fc);})[_0x147c('0x1f')](function(_0x5a2d97){logger['error']('['+[_0x3bf7e8[_0x147c('0x11')]()]+']',_0x5a2d97[_0x147c('0x13')]);_0x3a1e7e(_0x5a2d97[_0x147c('0x13')]);});});};}function createRemoteTag(_0x162fdf,_0xe655c9,_0x1e3fec,_0x9db45a){return new Promise(function(_0x5a98e0,_0x1b0216){var _0x1642fe={'method':'POST','uri':_0x1e3fec+'label'+'?'+_0x9db45a,'body':{'short_description':_0x162fdf,'global':!![],'active':!![],'name':_0x162fdf},'auth':_0xe655c9,'json':!![]};return rp(_0x1642fe)[_0x147c('0xe')](function(_0x5f3d6a){var _0x5751ef=_0x5f3d6a[_0x147c('0xf')][_0x147c('0x1a')];_0x5a98e0(_0x5751ef);});});}function getRemoteTag(_0x70c27d,_0x3fc8e6,_0x467419,_0x4b7609,_0x581698){return new Promise(function(_0x21f97d,_0x438f42){var _0x21d8f8={'method':_0x147c('0xc'),'uri':_0x467419+'label'+_0x147c('0x45')+_0x70c27d+'&'+_0x4b7609,'auth':_0x3fc8e6,'json':!![]};return rp(_0x21d8f8)[_0x147c('0xe')](function(_0x345d13){if(_0x345d13[_0x147c('0xf')][_0x147c('0x10')]>0x0){var _0x173f18=_0x345d13[_0x147c('0xf')][0x0][_0x147c('0x1a')];_0x21f97d(_0x173f18);}else{return createRemoteTag(_0x70c27d,_0x3fc8e6,_0x467419,_0x4b7609)[_0x147c('0xe')](function(_0x2251e8){_0x21f97d(_0x2251e8);});}});});}function assignTagToIncident(_0x64263c,_0x215931,_0x3d2e24,_0x7d503b,_0x5ac2e4){return new Promise(function(_0x44ad13,_0x606682){var _0x48b298={'method':_0x147c('0x22'),'uri':_0x3d2e24+_0x147c('0x46')+'?'+_0x5ac2e4,'body':{'label':_0x64263c,'table':'incident','id_type':_0x147c('0x47'),'table_key':_0x7d503b['ticketId'],'title':_0x147c('0x48')+_0x7d503b[_0x147c('0x43')],'id_display':_0x7d503b[_0x147c('0x43')]},'auth':_0x215931,'json':!![]};return rp(_0x48b298)[_0x147c('0xe')](function(_0x1dba31){_0x44ad13();})[_0x147c('0x1f')](function(){_0x44ad13();});});}function manageTags(_0x239d88,_0x546c17,_0x553730,_0x55f9ac,_0x4d87cc,_0x1223fd,_0x1d03fd){return new Promise(function(_0x1c7a45,_0xf0dfaa){var _0x44f665=[];_0x546c17[_0x147c('0x2c')](function(_0x563ea0){_0x44f665[_0x147c('0x49')](getRemoteTag(_0x563ea0,_0x553730,_0x55f9ac,_0x1223fd,_0x1d03fd));});return Promise['all'](_0x44f665)[_0x147c('0xe')](function(_0x3d04b4){if(_0x3d04b4[_0x147c('0x10')]){logger[_0x147c('0x17')]('['+[_0x239d88[_0x147c('0x11')]()]+_0x147c('0x4a'),_0x3d04b4);var _0x13773d=[];_0x3d04b4['forEach'](function(_0x3443a4){_0x13773d[_0x147c('0x49')](assignTagToIncident(_0x3443a4,_0x553730,_0x55f9ac,_0x4d87cc,_0x1223fd));});return Promise[_0x147c('0x4b')](_0x13773d)[_0x147c('0xe')](function(){_0x1c7a45();})[_0x147c('0x1f')](function(){_0x1c7a45();});}else{_0x1c7a45();}});});}function getTags(_0x1c43af,_0x4f5948,_0x18bbf2,_0x56ef22,_0x193af8,_0x386cc9){return function(_0x347d89){return new Promise(function(_0x527d36,_0x35e295){var _0x34706f=[];var _0x56eb59=_0x56ef22[_0x147c('0x4c')];if(_0x56eb59&&_0x56eb59[_0x147c('0x10')]>0x0){_0x34706f=_[_0x147c('0x4d')](_0x56eb59,_0x147c('0x3a'));}if(_0x34706f[_0x147c('0x10')]>0x0){return manageTags(_0x1c43af,_0x34706f,_0x4f5948,_0x18bbf2,_0x347d89,_0x193af8,_0x386cc9)['then'](function(){_0x527d36(_0x347d89);});}else{_0x527d36(_0x347d89);}});};}function emit(_0x3cf8cc,_0x551c6a,_0x11fa5b){var _0x32c513=_0x147c('0x4e')+_0x147c('0x4f')+_0x147c('0x50')+_0x147c('0x51');var _0x27068c={'uri':_0x3cf8cc+'/nav_to.do?uri=incident.do?sys_id%3D'+_0x11fa5b+_0x32c513};io['to'](util['format']('user:%s',_0x551c6a))[_0x147c('0x52')]('trigger:browser:url',_0x27068c);}exports['cs']=function(_0x45533a,_0xe7e5c6,_0x13319e,_0x545e6d,_0x4f7eaf,_0x2fd45f,_0x3ec36e,_0x455b58){var _0x515481={};var _0x95aeaf={'user':_0x2fd45f['username'],'pass':_0x2fd45f[_0x147c('0x53')]};var _0x42c4c4=_0x147c('0x54');var _0x15acdc=_0x147c('0x55');_0x2fd45f['remoteUri']=intUtil['stripTrailingSlash'](_0x2fd45f[_0x147c('0x56')]);_0x2fd45f[_0x147c('0x57')]=intUtil['stripTrailingSlash'](_0x2fd45f[_0x147c('0x57')]);var _0x4005d5=util['format'](_0x147c('0x58'),_0x2fd45f[_0x147c('0x56')]);_0x515481[_0x147c('0x16')]=!_[_0x147c('0x59')](_0x545e6d)?_0x545e6d[_0x147c('0x5a')]:null;_0x515481[_0x147c('0x1d')]=_0x2fd45f[_0x147c('0x5a')];_0x515481[_0x147c('0x24')]=_0x455b58[_0x147c('0x33')]()===_0x147c('0x3b')?_0xe7e5c6['destcalleridnum']:_0xe7e5c6[_0x147c('0x5b')];_0x515481[_0x147c('0x5c')]=_0x455b58===_0x147c('0x5d')||_0x455b58==='unmanaged'?_0x147c('0x5d'):_0x147c('0x3b');var _0x3b3bf4=util['format']('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x2fd45f['serverUrl'],_0xe7e5c6[_0x147c('0x5e')],md5(_0xe7e5c6['uniqueid']));if(_0x4f7eaf&&_0x4f7eaf['monitor_format']){logger[_0x147c('0x17')](_0x147c('0x5f'),_0x147c('0x60'));_0xe7e5c6['recordingURL']=_0x3b3bf4;}else if(_0x3ec36e&&_0x3ec36e['recordingFormat']&&_0x3ec36e[_0x147c('0x61')]!==_0x147c('0x62')){logger[_0x147c('0x17')](_0x147c('0x63'),_0x147c('0x60'));_0xe7e5c6[_0x147c('0x64')]=_0x3b3bf4;}else{_0xe7e5c6[_0x147c('0x64')]='';}return getAdminUser(_0x455b58,_0x95aeaf,_0x515481,_0x4005d5,_0x15acdc,_0x42c4c4)['then'](getUser(_0x455b58,_0x95aeaf,_0x4005d5,_0x15acdc,_0x42c4c4))['then'](getEndUser(_0x455b58,_0x95aeaf,_0x4005d5,_0x15acdc,_0x42c4c4))[_0x147c('0xe')](getTicket(_0x455b58,_0x95aeaf,_0x4005d5,_0x13319e,_0xe7e5c6,_0x15acdc))[_0x147c('0xe')](function(_0x3bc988){logger[_0x147c('0x17')](util['format']('The\x20ticket\x20ID\x20is:\x20%s',_0x3bc988[_0x147c('0x42')]));logger[_0x147c('0x17')](util[_0x147c('0x65')](_0x147c('0x66'),_0x455b58));if(_0x455b58!=='unmanaged'){logger[_0x147c('0x17')]('['+[_0x455b58[_0x147c('0x11')]()]+']',_0x147c('0x67'));emit(_0x2fd45f[_0x147c('0x56')],_0x545e6d[_0x147c('0x3a')],_0x3bc988[_0x147c('0x42')]);}})['catch'](function(_0x2bd14c){logger[_0x147c('0x20')]('['+[_0x455b58[_0x147c('0x11')]()]+_0x147c('0x68'),util[_0x147c('0x69')](_0x2bd14c,{'showHidden':!![],'depth':null}));});};
\ No newline at end of file
+var _0xcc76=['../../../../config/logger','servicenow','defaults','redis','localhost','socket.io-emitter','sys_user?sysparm_query=user_name%3Dadmin','length','result','sys_id','toUpperCase','],\x20getAdminUser\x20crm','catch','info','validateEmail','GET','sys_user?sysparm_query=email%3D','userEmail','],\x20getUser\x20rp\x20obj','then','],\x20getUser\x20entity','true','userId','adminId','adminEmail','error','message','],\x20createEndUser\x20input\x20crm','POST','user','endUserNumber','System','],\x20EndUser\x20schema','],\x20getEndUser\x20input\x20crm','sys_user?sysparm_query=phone%3D','],\x20getEndUser\x20crm','],\x20createEndUser\x20crm','includes','nameField','customField','toLowerCase','content','toString','type','idField','variable','Variable','name',']\x20getTicket\x20input\x20crm','outbound','endUserId','assign','Subjects','getString','Fields',']\x20POST\x20incident\x20entity\x20schema','ticketId','ticketNumber','number',']\x20getTicket\x20crm','label','?sysparm_query=name%3D','label_entry','forEach','push','all',']\x20arrayPromises:\x20IDs\x20in\x20table\x20label','Tags','map','%26sysparm_record_target%3Dincident','%26sysparm_record_row%3D1%26sysparm_record_rows%3D39','%26sysparm_record_list%3Dactive%253Dtrue','%255EORDERBYDESCnumber','format','user:%s','emit','trigger:browser:url','username','password','sysparm_limit=1','sysparm_display_value=true','remoteUri','serverUrl','stripTrailingSlash','%s/api/now/table/','email','destcalleridnum','queue','uniqueid','[QUEUE]','Recording\x20is\x20enabled!','recordingURL','recordingFormat','none','[OUTBOUND]','The\x20ticket\x20ID\x20is:\x20%s','call\x20direction:\x20%s',']\x20Error\x20running\x20ServiceNow\x20integration','lodash','bluebird','request-promise','md5','ioredis','./util'];(function(_0x56f223,_0x276a5a){var _0x25b4df=function(_0x540e3c){while(--_0x540e3c){_0x56f223['push'](_0x56f223['shift']());}};_0x25b4df(++_0x276a5a);}(_0xcc76,0xca));var _0x6cc7=function(_0x1bf307,_0x3655a0){_0x1bf307=_0x1bf307-0x0;var _0x21d80a=_0xcc76[_0x1bf307];return _0x21d80a;};'use strict';var _=require(_0x6cc7('0x0'));var Promise=require(_0x6cc7('0x1'));var rp=require(_0x6cc7('0x2'));var util=require('util');var md5=require(_0x6cc7('0x3'));var Redis=require(_0x6cc7('0x4'));var intUtil=require(_0x6cc7('0x5'));var config=require('../../../../config/environment');var logger=require(_0x6cc7('0x6'))(_0x6cc7('0x7'));config['redis']=_[_0x6cc7('0x8')](config[_0x6cc7('0x9')],{'host':_0x6cc7('0xa'),'port':0x18eb});var io=require(_0x6cc7('0xb'))(new Redis(config[_0x6cc7('0x9')]));function getAdminUser(_0x54644d,_0x20029d,_0x48e5fa,_0x36310e,_0x40d405,_0x38bdc3){return new Promise(function(_0x456890,_0x16af4b){var _0x129ec4={'method':'GET','uri':_0x36310e+_0x6cc7('0xc')+'&'+_0x40d405+'&'+_0x38bdc3,'auth':_0x20029d,'json':!![]};return rp(_0x129ec4)['then'](function(_0x480076){if(_0x480076['result'][_0x6cc7('0xd')]>0x0){_0x48e5fa['adminId']=_0x480076[_0x6cc7('0xe')][0x0][_0x6cc7('0xf')];}logger['info']('['+[_0x54644d[_0x6cc7('0x10')]()]+_0x6cc7('0x11'),_0x48e5fa);_0x456890(_0x48e5fa);})[_0x6cc7('0x12')](function(_0x1d3419){logger['error']('['+[_0x54644d[_0x6cc7('0x10')]()]+']',_0x1d3419['message']);_0x16af4b(_0x1d3419['message']);});});}function getUser(_0x2212f7,_0x577ee6,_0x166486,_0x1a836f,_0x256382){return function(_0x4b44ee){logger[_0x6cc7('0x13')]('['+[_0x2212f7[_0x6cc7('0x10')]()]+'],\x20getUser\x20input\x20crm',_0x4b44ee);return new Promise(function(_0x405fb1,_0x3a1b25){if(intUtil[_0x6cc7('0x14')](_0x4b44ee['userEmail'])){var _0x3f5562={'method':_0x6cc7('0x15'),'uri':_0x166486+_0x6cc7('0x16')+_0x4b44ee[_0x6cc7('0x17')]+'&'+_0x1a836f+'&'+_0x256382,'auth':_0x577ee6,'json':!![]};logger[_0x6cc7('0x13')]('['+[_0x2212f7[_0x6cc7('0x10')]()]+_0x6cc7('0x18'),_0x3f5562);return rp(_0x3f5562)[_0x6cc7('0x19')](function(_0x19d2a4){logger[_0x6cc7('0x13')]('['+[_0x2212f7[_0x6cc7('0x10')]()]+_0x6cc7('0x1a'),_0x19d2a4);if(_0x19d2a4[_0x6cc7('0xe')][_0x6cc7('0xd')]>0x0&&String(_0x19d2a4[_0x6cc7('0xe')][0x0]['active'])===_0x6cc7('0x1b')){_0x4b44ee[_0x6cc7('0x1c')]=_0x19d2a4['result'][0x0][_0x6cc7('0xf')];}else{_0x4b44ee['userId']=_0x4b44ee[_0x6cc7('0x1d')];_0x4b44ee[_0x6cc7('0x17')]=_0x4b44ee[_0x6cc7('0x1e')];}logger[_0x6cc7('0x13')]('['+[_0x2212f7[_0x6cc7('0x10')]()]+'],\x20getUser\x20crm',_0x4b44ee);_0x405fb1(_0x4b44ee);})['catch'](function(_0x275f8e){logger[_0x6cc7('0x1f')]('['+[_0x2212f7[_0x6cc7('0x10')]()]+']',_0x275f8e[_0x6cc7('0x20')]);_0x3a1b25(_0x275f8e['message']);});}else{logger[_0x6cc7('0x13')]('['+[_0x2212f7[_0x6cc7('0x10')]()]+']\x20using\x20admin\x20profile');_0x4b44ee[_0x6cc7('0x1c')]=_0x4b44ee[_0x6cc7('0x1d')];_0x4b44ee[_0x6cc7('0x17')]=_0x4b44ee[_0x6cc7('0x1e')];_0x405fb1(_0x4b44ee);}});};}function createEndUser(_0x19b2e2,_0x4c9614,_0x43b5ed,_0x138185,_0x39b9b8){logger[_0x6cc7('0x13')]('['+[_0x19b2e2[_0x6cc7('0x10')]()]+_0x6cc7('0x21'),_0x43b5ed);return new Promise(function(_0x175c67,_0x538e36){var _0x5966f2={'method':_0x6cc7('0x22'),'uri':_0x138185+'sys_user?'+_0x39b9b8,'body':{'user_name':_0x43b5ed['endUserNumber'],'roles':_0x6cc7('0x23'),'first_name':_0x43b5ed[_0x6cc7('0x24')],'active':_0x6cc7('0x1b'),'date_format':_0x6cc7('0x25'),'phone':_0x43b5ed[_0x6cc7('0x24')]},'auth':_0x4c9614,'json':!![]};return rp(_0x5966f2)[_0x6cc7('0x19')](function(_0x2a70f8){logger['info']('['+[_0x19b2e2['toUpperCase']()]+_0x6cc7('0x26'),_0x2a70f8['result']);_0x43b5ed['endUserId']=_0x2a70f8[_0x6cc7('0xe')]['sys_id'];_0x175c67(_0x43b5ed);})[_0x6cc7('0x12')](function(_0x37fdb8){logger[_0x6cc7('0x1f')]('['+[_0x19b2e2[_0x6cc7('0x10')]()]+']',_0x37fdb8[_0x6cc7('0x20')]);_0x538e36(_0x37fdb8[_0x6cc7('0x20')]);});});}function getEndUser(_0x26c124,_0x1038d3,_0x20080f,_0x30104d,_0x2aeeb4){return function(_0xb0fee){logger[_0x6cc7('0x13')]('['+[_0x26c124[_0x6cc7('0x10')]()]+_0x6cc7('0x27'),_0xb0fee);return new Promise(function(_0x5649a6,_0x28088){var _0x77e8ec={'method':_0x6cc7('0x15'),'uri':_0x20080f+_0x6cc7('0x28')+_0xb0fee[_0x6cc7('0x24')]+'&'+_0x30104d+'&'+_0x2aeeb4,'auth':_0x1038d3,'json':!![]};return rp(_0x77e8ec)['then'](function(_0x415a1a){if(_0x415a1a[_0x6cc7('0xe')][_0x6cc7('0xd')]>0x0){_0xb0fee['endUserId']=_0x415a1a[_0x6cc7('0xe')][0x0]['sys_id'];logger['info']('['+[_0x26c124[_0x6cc7('0x10')]()]+_0x6cc7('0x29'),_0xb0fee);_0x5649a6(_0xb0fee);}else{return createEndUser(_0x26c124,_0x1038d3,_0xb0fee,_0x20080f,_0x30104d)['then'](function(_0x64117d){logger[_0x6cc7('0x13')]('['+[_0x26c124[_0x6cc7('0x10')]()]+_0x6cc7('0x2a'),_0x64117d);_0x5649a6(_0x64117d);});}})['catch'](function(_0x412e2b){logger['error']('['+[_0x26c124[_0x6cc7('0x10')]()]+']',_0x412e2b['message']);_0x28088(_0x412e2b[_0x6cc7('0x20')]);});});};}function getCustomFields(_0x4e4687,_0x3fe219){var _0x673158={};if(_0x4e4687[_0x6cc7('0xd')]>0x0){_['forEach'](_0x4e4687,function(_0x5e1d3d){if(_[_0x6cc7('0x2b')](['string','picklist'],_0x5e1d3d['type'])&&_0x5e1d3d[_0x6cc7('0x2c')]&&!_0x5e1d3d[_0x6cc7('0x2d')]){_0x673158[_0x5e1d3d[_0x6cc7('0x2c')][_0x6cc7('0x2e')]()]=_0x5e1d3d[_0x6cc7('0x2f')][_0x6cc7('0x30')]();}else if(_[_0x6cc7('0x2b')](['string','picklist'],_0x5e1d3d[_0x6cc7('0x31')])&&_0x5e1d3d['idField']&&_0x5e1d3d['customField']){_0x673158[_0x5e1d3d[_0x6cc7('0x32')][_0x6cc7('0x2e')]()]=_0x5e1d3d[_0x6cc7('0x2f')][_0x6cc7('0x30')]();}else if(_0x5e1d3d[_0x6cc7('0x31')]===_0x6cc7('0x33')&&_0x5e1d3d['variableName']&&_0x5e1d3d[_0x6cc7('0x32')]&&_0x5e1d3d['customField']){_0x673158[_0x5e1d3d[_0x6cc7('0x32')][_0x6cc7('0x2e')]()]=_0x3fe219[_0x5e1d3d['variableName']][_0x6cc7('0x30')]();}else if(_0x5e1d3d[_0x6cc7('0x31')]==='customVariable'&&_0x5e1d3d['Variable']&&_0x5e1d3d[_0x6cc7('0x34')][_0x6cc7('0x35')]&&_0x5e1d3d[_0x6cc7('0x32')]&&_0x5e1d3d[_0x6cc7('0x2d')]){_0x673158[_0x5e1d3d[_0x6cc7('0x32')][_0x6cc7('0x2e')]()]=_0x3fe219[_0x5e1d3d[_0x6cc7('0x34')][_0x6cc7('0x35')][_0x6cc7('0x2e')]()]['toString']();}});}return _0x673158;}function getTicket(_0x4c34dc,_0x1c0472,_0x481ed1,_0x3c3848,_0x3959ec,_0x48ade9){return function(_0x35b274){logger[_0x6cc7('0x13')]('['+[_0x4c34dc[_0x6cc7('0x10')]()]+_0x6cc7('0x36'),_0x35b274);return new Promise(function(_0x4d0d11,_0x3c3bf8){var _0x47b342=_0x4c34dc[_0x6cc7('0x2e')]()===_0x6cc7('0x37')?_0x35b274[_0x6cc7('0x1c')]:_0x35b274[_0x6cc7('0x38')];var _0xcdb766={'method':'POST','uri':_0x481ed1+'incident'+'?'+_0x48ade9,'body':Object[_0x6cc7('0x39')]({},{'active':'true','caller_id':_0x47b342,'assigned_to':_0x35b274['userId'],'short_description':intUtil['getString'](_0x3c3848[_0x6cc7('0x3a')],_0x3959ec,'\x20'),'description':intUtil[_0x6cc7('0x3b')](_0x3c3848['Descriptions'],_0x3959ec,'\x0a')},getCustomFields(_0x3c3848[_0x6cc7('0x3c')],_0x3959ec)),'auth':_0x1c0472,'json':!![]};return rp(_0xcdb766)['then'](function(_0x3a2d5a){logger['info']('['+[_0x4c34dc[_0x6cc7('0x10')]()]+_0x6cc7('0x3d'),_0x3a2d5a[_0x6cc7('0xe')]);_0x35b274[_0x6cc7('0x3e')]=_0x3a2d5a[_0x6cc7('0xe')][_0x6cc7('0xf')];_0x35b274[_0x6cc7('0x3f')]=_0x3a2d5a[_0x6cc7('0xe')][_0x6cc7('0x40')];logger['info']('['+[_0x4c34dc[_0x6cc7('0x10')]()]+_0x6cc7('0x41'),_0x35b274);_0x4d0d11(_0x35b274);})['catch'](function(_0xf237c4){logger[_0x6cc7('0x1f')]('['+[_0x4c34dc['toUpperCase']()]+']',_0xf237c4['message']);_0x3c3bf8(_0xf237c4[_0x6cc7('0x20')]);});});};}function createRemoteTag(_0x3fe8e8,_0x1f4a3a,_0x56e38e,_0x589bcf){return new Promise(function(_0xf8dcaf,_0x2490d){var _0x2b2e05={'method':'POST','uri':_0x56e38e+_0x6cc7('0x42')+'?'+_0x589bcf,'body':{'short_description':_0x3fe8e8,'global':!![],'active':!![],'name':_0x3fe8e8},'auth':_0x1f4a3a,'json':!![]};return rp(_0x2b2e05)[_0x6cc7('0x19')](function(_0x5e4791){var _0x1c891d=_0x5e4791[_0x6cc7('0xe')][_0x6cc7('0xf')];_0xf8dcaf(_0x1c891d);});});}function getRemoteTag(_0x46565d,_0x5e2e77,_0x46543a,_0x1db0ee,_0x14ef16){return new Promise(function(_0xdf42b2,_0x468d28){var _0x515eed={'method':'GET','uri':_0x46543a+_0x6cc7('0x42')+_0x6cc7('0x43')+_0x46565d+'&'+_0x1db0ee,'auth':_0x5e2e77,'json':!![]};return rp(_0x515eed)[_0x6cc7('0x19')](function(_0x540c95){if(_0x540c95[_0x6cc7('0xe')]['length']>0x0){var _0x4c96c6=_0x540c95['result'][0x0]['sys_id'];_0xdf42b2(_0x4c96c6);}else{return createRemoteTag(_0x46565d,_0x5e2e77,_0x46543a,_0x1db0ee)[_0x6cc7('0x19')](function(_0x18b877){_0xdf42b2(_0x18b877);});}});});}function assignTagToIncident(_0x458914,_0x1156bf,_0x26b0c8,_0x5eee03,_0x267431){return new Promise(function(_0x393fdc,_0x4ebc42){var _0x13334d={'method':_0x6cc7('0x22'),'uri':_0x26b0c8+_0x6cc7('0x44')+'?'+_0x267431,'body':{'label':_0x458914,'table':'incident','id_type':'Incident','table_key':_0x5eee03['ticketId'],'title':'Incident\x20-\x20'+_0x5eee03[_0x6cc7('0x3f')],'id_display':_0x5eee03[_0x6cc7('0x3f')]},'auth':_0x1156bf,'json':!![]};return rp(_0x13334d)['then'](function(_0x1dfdfc){_0x393fdc();})[_0x6cc7('0x12')](function(){_0x393fdc();});});}function manageTags(_0x28b6bb,_0x5c955c,_0x4ed14d,_0x36fc59,_0x35c1d3,_0x84da41,_0x49c46f){return new Promise(function(_0x53d5c0,_0x415eb4){var _0x48fdc3=[];_0x5c955c[_0x6cc7('0x45')](function(_0x2d4cd3){_0x48fdc3[_0x6cc7('0x46')](getRemoteTag(_0x2d4cd3,_0x4ed14d,_0x36fc59,_0x84da41,_0x49c46f));});return Promise[_0x6cc7('0x47')](_0x48fdc3)[_0x6cc7('0x19')](function(_0x482cde){if(_0x482cde[_0x6cc7('0xd')]){logger[_0x6cc7('0x13')]('['+[_0x28b6bb[_0x6cc7('0x10')]()]+_0x6cc7('0x48'),_0x482cde);var _0x230d6e=[];_0x482cde[_0x6cc7('0x45')](function(_0x2009d8){_0x230d6e[_0x6cc7('0x46')](assignTagToIncident(_0x2009d8,_0x4ed14d,_0x36fc59,_0x35c1d3,_0x84da41));});return Promise['all'](_0x230d6e)[_0x6cc7('0x19')](function(){_0x53d5c0();})[_0x6cc7('0x12')](function(){_0x53d5c0();});}else{_0x53d5c0();}});});}function getTags(_0x5a499e,_0x43c87a,_0x3c3d0e,_0x19e8f8,_0x3f5105,_0x313740){return function(_0x1c0aa8){return new Promise(function(_0x227809,_0x589318){var _0x56e3b8=[];var _0x5b6654=_0x19e8f8[_0x6cc7('0x49')];if(_0x5b6654&&_0x5b6654[_0x6cc7('0xd')]>0x0){_0x56e3b8=_[_0x6cc7('0x4a')](_0x5b6654,_0x6cc7('0x35'));}if(_0x56e3b8['length']>0x0){return manageTags(_0x5a499e,_0x56e3b8,_0x43c87a,_0x3c3d0e,_0x1c0aa8,_0x3f5105,_0x313740)[_0x6cc7('0x19')](function(){_0x227809(_0x1c0aa8);});}else{_0x227809(_0x1c0aa8);}});};}function emit(_0x5f1286,_0x243157,_0x61e9d4){var _0x2683ac=_0x6cc7('0x4b')+_0x6cc7('0x4c')+_0x6cc7('0x4d')+_0x6cc7('0x4e');var _0x57082f={'uri':_0x5f1286+'/nav_to.do?uri=incident.do?sys_id%3D'+_0x61e9d4+_0x2683ac};io['to'](util[_0x6cc7('0x4f')](_0x6cc7('0x50'),_0x243157))[_0x6cc7('0x51')](_0x6cc7('0x52'),_0x57082f);}exports['cs']=function(_0x107aa4,_0x28eede,_0x131f0d,_0x1cb531,_0x241e9f,_0x231167,_0x8bce2b,_0x414efb){var _0x1c7a24={};var _0x25968e={'user':_0x231167[_0x6cc7('0x53')],'pass':_0x231167[_0x6cc7('0x54')]};var _0x22c69c=_0x6cc7('0x55');var _0x4a40fc=_0x6cc7('0x56');_0x231167[_0x6cc7('0x57')]=intUtil['stripTrailingSlash'](_0x231167['remoteUri']);_0x231167[_0x6cc7('0x58')]=intUtil[_0x6cc7('0x59')](_0x231167['serverUrl']);var _0x288a44=util[_0x6cc7('0x4f')](_0x6cc7('0x5a'),_0x231167[_0x6cc7('0x57')]);_0x1c7a24[_0x6cc7('0x17')]=!_['isNil'](_0x1cb531)?_0x1cb531['email']:null;_0x1c7a24[_0x6cc7('0x1e')]=_0x231167[_0x6cc7('0x5b')];_0x1c7a24[_0x6cc7('0x24')]=_0x414efb['toLowerCase']()==='outbound'?_0x28eede[_0x6cc7('0x5c')]:_0x28eede['calleridnum'];_0x1c7a24['callDirection']=_0x414efb===_0x6cc7('0x5d')||_0x414efb==='unmanaged'?_0x6cc7('0x5d'):_0x6cc7('0x37');var _0x1fbca5=util[_0x6cc7('0x4f')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x231167[_0x6cc7('0x58')],_0x28eede[_0x6cc7('0x5e')],md5(_0x28eede[_0x6cc7('0x5e')]));if(_0x241e9f&&_0x241e9f['monitor_format']){logger[_0x6cc7('0x13')](_0x6cc7('0x5f'),_0x6cc7('0x60'));_0x28eede[_0x6cc7('0x61')]=_0x1fbca5;}else if(_0x8bce2b&&_0x8bce2b['recordingFormat']&&_0x8bce2b[_0x6cc7('0x62')]!==_0x6cc7('0x63')){logger[_0x6cc7('0x13')](_0x6cc7('0x64'),_0x6cc7('0x60'));_0x28eede['recordingURL']=_0x1fbca5;}else{_0x28eede[_0x6cc7('0x61')]='';}return getAdminUser(_0x414efb,_0x25968e,_0x1c7a24,_0x288a44,_0x4a40fc,_0x22c69c)[_0x6cc7('0x19')](getUser(_0x414efb,_0x25968e,_0x288a44,_0x4a40fc,_0x22c69c))[_0x6cc7('0x19')](getEndUser(_0x414efb,_0x25968e,_0x288a44,_0x4a40fc,_0x22c69c))['then'](getTicket(_0x414efb,_0x25968e,_0x288a44,_0x131f0d,_0x28eede,_0x4a40fc))[_0x6cc7('0x19')](function(_0x5b3d5d){logger[_0x6cc7('0x13')](util[_0x6cc7('0x4f')](_0x6cc7('0x65'),_0x5b3d5d[_0x6cc7('0x3e')]));logger['info'](util[_0x6cc7('0x4f')](_0x6cc7('0x66'),_0x414efb));if(_0x414efb!=='unmanaged'){logger[_0x6cc7('0x13')]('['+[_0x414efb[_0x6cc7('0x10')]()]+']','Displaying\x20call\x20in\x20a\x20new\x20tab...');emit(_0x231167[_0x6cc7('0x57')],_0x1cb531['name'],_0x5b3d5d[_0x6cc7('0x3e')]);}})['catch'](function(_0x42097c){logger[_0x6cc7('0x1f')]('['+[_0x414efb[_0x6cc7('0x10')]()]+_0x6cc7('0x67'),util['inspect'](_0x42097c,{'showHidden':!![],'depth':null}));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4396=['stripTrailingSlash','serverUrl','uri','%s/service/v4_1/rest.php','[QUEUE]','uniqueid','The\x20User\x20ID\x20is:','calleridname','calleridnum','The\x20Enduser\x20ID\x20is:','Inbound','Ticket\x20created!','The\x20Ticket\x20ID\x20is:','users','contacts','version','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s','trigger:browser:url','catch','error','recordingFormat','none','[OUTBOUND]','Recording\x20is\x20enabled!','recordingURL','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','destcalleridname','destcalleridnum','Fields','Outbound','charAt','%s/index.php?action=ajaxui#ajaxUILoc=index.php%3Fmodule%3DCalls%26action%3DEditView%26record%3D%s','%s/#bwc/index.php?module=Calls&action=EditView&record=%s','monitor_format','toUpperCase','lastevent','bluebird','ioredis','../../../../config/environment','redis','defaults','POST','emit','info','Creating\x20new\x20ticket...','getString','Subjects','assigned_user_id','description','Descriptions','date_start','slice','duration_minutes','parent_name','name','length','forEach','idField','variableName','JSON','format','Basic\x20%s','apiKey','toString','base64','isNil','Getting\x20agent\x20with\x20name','get_entry_list','stringify','INSTR\x20(\x20users.user_name,\x20\x22%s\x22)\x20>\x200','then','entry_list','find','name_value_list','user_name','value','resolve','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','Agent\x20not\x20available,\x20using\x20the\x20admin\x20account!','user_id','Searching\x20enduser\x20with\x20phone','Contacts','contacts.phone_home\x20=\x20\x22%s\x22','phone_home','Enduser\x20found!','set_entry','first_name','<unknown>','Caller\x20-\x20%s','Enduser\x20created.','debug','merge','map','type','string','customField','nameField','toLowerCase','content','custom_fields','variable','customVariable','Variable','login','username','password','PLAIN','xCALLY\x20Motion\x20integration','Account\x20%d\x20is\x20not\x20valid','set_relationship','Calls','queue','remoteUri'];(function(_0x5dd456,_0xfc7ba){var _0x39519c=function(_0x3a9538){while(--_0x3a9538){_0x5dd456['push'](_0x5dd456['shift']());}};_0x39519c(++_0xfc7ba);}(_0x4396,0x97));var _0x6439=function(_0x3600be,_0x249fd6){_0x3600be=_0x3600be-0x0;var _0x26044a=_0x4396[_0x3600be];return _0x26044a;};'use strict';var _=require('lodash');var rp=require('request-promise');var BPromise=require(_0x6439('0x0'));var md5=require('md5');var util=require('util');var Redis=require(_0x6439('0x1'));var intUtil=require('./util');var config=require(_0x6439('0x2'));var logger=require('../../../../config/logger')('sugarcrm');config[_0x6439('0x3')]=_[_0x6439('0x4')](config[_0x6439('0x3')],{'host':'localhost','port':0x18eb});var io=require('socket.io-emitter')(new Redis(config['redis']));var def={'method':_0x6439('0x5'),'json':!![]};function emit(_0x2ceea4,_0x18acc8,_0x5df516){io['to'](_0x2ceea4)[_0x6439('0x6')](_0x18acc8,_0x5df516);}function getTicket(_0x460248,_0x1d88f0,_0xd09ea,_0x40f402,_0x30c59e,_0x78eeec,_0x2d54ef,_0x93dabd){logger[_0x6439('0x7')](_0x6439('0x8'));var _0x4c45f4=new Date();var _0x108a7d=[{'name':'name','value':intUtil[_0x6439('0x9')](_0x40f402[_0x6439('0xa')],_0x30c59e,'\x20')},{'name':_0x6439('0xb'),'value':_0x1d88f0['id']},{'name':'created_by','value':_0x1d88f0['id']},{'name':_0x6439('0xc'),'value':intUtil[_0x6439('0x9')](_0x40f402[_0x6439('0xd')],_0x30c59e,'\x0a')},{'name':_0x6439('0xe'),'value':_0x4c45f4['toISOString']()[_0x6439('0xf')](0x0,0x13)['replace']('T','\x20')},{'name':'duration_hours','value':'0'},{'name':_0x6439('0x10'),'value':'15'},{'name':'parent_id','value':_0xd09ea['id']},{'name':'parent_type','value':'Contacts'},{'name':_0x6439('0x11'),'value':_0xd09ea[_0x6439('0x12')]},{'name':'direction','value':_0x93dabd}];if(_0x78eeec[_0x6439('0x13')]){_[_0x6439('0x14')](_0x78eeec,function(_0x4b94d4){if(_0x30c59e[_0x4b94d4['variableName']]){_0x108a7d['push']({'name':_0x4b94d4[_0x6439('0x15')],'value':_0x30c59e[_0x4b94d4[_0x6439('0x16')]]});}});}return request({'form':{'method':'set_entry','input_type':'JSON','response_type':_0x6439('0x17'),'rest_data':JSON['stringify']({'session':_0x2d54ef['id'],'module_name':'Calls','name_value_list':_0x108a7d})}});}function getAuth(_0x1456ee){return util[_0x6439('0x18')](_0x6439('0x19'),new Buffer(_0x1456ee[_0x6439('0x1a')]+':X')[_0x6439('0x1b')](_0x6439('0x1c')));}function getServerInfo(_0x5e58b5){return request({'form':{'method':'get_server_info','input_type':_0x6439('0x17'),'response_type':'JSON','rest_data':JSON['stringify']({'session':_0x5e58b5['id']})}});}function getUser(_0x3a9346,_0x471aa7,_0x54a58e){if(!_[_0x6439('0x1d')](_0x471aa7)){logger['info'](_0x6439('0x1e'),_0x471aa7);return request({'form':{'method':_0x6439('0x1f'),'input_type':'JSON','response_type':_0x6439('0x17'),'rest_data':JSON[_0x6439('0x20')]({'session':_0x54a58e['id'],'module_name':'Employees','query':util['format'](_0x6439('0x21'),_0x471aa7),'order_by':'','offset':'0','select_fields':['id','name','user_name'],'link_name_to_fields_array':[],'max_results':-0x1,'deleted':'0'})}})[_0x6439('0x22')](function(_0xd93a77){if(_0xd93a77[_0x6439('0x23')][_0x6439('0x13')]){var _0x27ff57=_[_0x6439('0x24')](_0xd93a77[_0x6439('0x23')],function(_0x53d295){return _0x53d295[_0x6439('0x25')][_0x6439('0x26')][_0x6439('0x27')]===_0x471aa7;});if(_0x27ff57){logger[_0x6439('0x7')]('Agent\x20found!');return BPromise[_0x6439('0x28')]({'id':_0x27ff57[_0x6439('0x25')]['id'][_0x6439('0x27')],'name':_0x27ff57['name_value_list']['name'][_0x6439('0x27')]});}}logger[_0x6439('0x7')](_0x6439('0x29'));return BPromise[_0x6439('0x28')]({'id':_0x54a58e[_0x6439('0x25')]['user_id']['value'],'name':_0x54a58e[_0x6439('0x25')][_0x6439('0x26')][_0x6439('0x27')]});});}else{logger[_0x6439('0x7')](_0x6439('0x2a'));return BPromise[_0x6439('0x28')]({'id':_0x54a58e[_0x6439('0x25')][_0x6439('0x2b')][_0x6439('0x27')],'name':_0x54a58e[_0x6439('0x25')][_0x6439('0x26')][_0x6439('0x27')]});}}function getEndUser(_0x347532,_0x1bf61f,_0x6d3d5d,_0x7fbede){logger[_0x6439('0x7')](_0x6439('0x2c'),_0x6d3d5d);return request({'form':{'method':_0x6439('0x1f'),'input_type':_0x6439('0x17'),'response_type':_0x6439('0x17'),'rest_data':JSON['stringify']({'session':_0x7fbede['id'],'module_name':_0x6439('0x2d'),'query':util[_0x6439('0x18')](_0x6439('0x2e'),_0x6d3d5d),'order_by':'','offset':'0','select_fields':['id',_0x6439('0x12'),'phone_home'],'link_name_to_fields_array':[],'max_results':-0x1,'deleted':'0'})}})[_0x6439('0x22')](function(_0x4b51b6){if(_0x4b51b6[_0x6439('0x23')][_0x6439('0x13')]){var _0x200a71=_[_0x6439('0x24')](_0x4b51b6[_0x6439('0x23')],function(_0x4dc54b){return _0x4dc54b[_0x6439('0x25')][_0x6439('0x2f')][_0x6439('0x27')]===_0x6d3d5d;});if(_0x200a71){logger['info'](_0x6439('0x30'));return BPromise[_0x6439('0x28')]({'id':_0x200a71[_0x6439('0x25')]['id'][_0x6439('0x27')],'name':_0x200a71['name_value_list'][_0x6439('0x12')][_0x6439('0x27')],'phone':_0x200a71[_0x6439('0x25')][_0x6439('0x2f')][_0x6439('0x27')]});}}else{logger['info']('Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!');return request({'form':{'method':_0x6439('0x31'),'input_type':_0x6439('0x17'),'response_type':_0x6439('0x17'),'rest_data':JSON['stringify']({'session':_0x7fbede['id'],'module_name':_0x6439('0x2d'),'name_value_list':[{'name':_0x6439('0x32'),'value':_0x1bf61f!==_0x6439('0x33')?_0x1bf61f:util[_0x6439('0x18')](_0x6439('0x34'),_0x6d3d5d)},{'name':_0x6439('0x2f'),'value':_0x6d3d5d}]})}})[_0x6439('0x22')](function(_0x4d33c6){logger[_0x6439('0x7')](_0x6439('0x35'));return BPromise[_0x6439('0x28')]({'id':_0x4d33c6['id'],'name':_0x4d33c6[_0x6439('0x23')][_0x6439('0x32')][_0x6439('0x27')],'phone':_0x4d33c6[_0x6439('0x23')][_0x6439('0x2f')]['value']});});}});}function request(_0x1eda12){logger[_0x6439('0x36')]('[HTTP]',JSON[_0x6439('0x20')](_0x1eda12));return rp(_[_0x6439('0x37')](def,_0x1eda12));}function getTags(_0x4e71c9,_0x128603){var _0x5d290a=[];if(_0x4e71c9&&_0x4e71c9['length']>0x0){_0x5d290a=_[_0x6439('0x38')](_0x4e71c9,_0x128603);}return _0x5d290a;}function getCustomFields(_0x5d365a,_0x27e716){var _0x4911d5=[];var _0x42c112={'custom_fields':[]};if(_0x5d365a[_0x6439('0x13')]>0x0){_[_0x6439('0x14')](_0x5d365a,function(_0x459a82){if(_0x459a82[_0x6439('0x39')]===_0x6439('0x3a')&&_0x459a82['nameField']&&!_0x459a82[_0x6439('0x3b')]){_0x42c112[_0x459a82[_0x6439('0x3c')][_0x6439('0x3d')]()]=_0x459a82[_0x6439('0x3e')]['toString']();}else if(_0x459a82[_0x6439('0x39')]===_0x6439('0x3a')&&_0x459a82[_0x6439('0x15')]&&_0x459a82[_0x6439('0x3b')]){_0x42c112[_0x6439('0x3f')]['push']({'id':_0x459a82[_0x6439('0x15')],'value':_0x459a82[_0x6439('0x3e')]['toString']()});}else if(_0x459a82[_0x6439('0x39')]===_0x6439('0x40')&&_0x459a82[_0x6439('0x16')]&&_0x459a82[_0x6439('0x15')]&&_0x459a82[_0x6439('0x3b')]){_0x27e716[_0x459a82['variableName']]&&_0x42c112[_0x6439('0x3f')]['push']({'id':_0x459a82[_0x6439('0x15')],'value':_0x27e716[_0x459a82[_0x6439('0x16')]][_0x6439('0x1b')]()});}else if(_0x459a82['type']===_0x6439('0x41')&&_0x459a82[_0x6439('0x42')]&&_0x459a82[_0x6439('0x42')][_0x6439('0x12')]&&_0x459a82[_0x6439('0x15')]&&_0x459a82[_0x6439('0x3b')]){_0x27e716[_0x459a82[_0x6439('0x42')][_0x6439('0x12')][_0x6439('0x3d')]()]&&_0x42c112[_0x6439('0x3f')]['push']({'id':_0x459a82[_0x6439('0x15')],'value':_0x27e716[_0x459a82[_0x6439('0x42')][_0x6439('0x12')][_0x6439('0x3d')]()][_0x6439('0x1b')]()});}});}return _0x42c112;}function getConnection(_0x160f12){return request({'method':_0x6439('0x5'),'form':{'method':_0x6439('0x43'),'input_type':_0x6439('0x17'),'response_type':'JSON','rest_data':JSON[_0x6439('0x20')]({'user_auth':{'user_name':_0x160f12[_0x6439('0x44')],'password':_0x160f12[_0x6439('0x45')],'encryption':_0x6439('0x46')},'application':_0x6439('0x47')})}})[_0x6439('0x22')](function(_0x10a7ad){var _0x49f635=_0x10a7ad;if(_0x49f635['id']){def['sessionID']=_0x49f635['id'];return BPromise[_0x6439('0x28')](_0x49f635);}else{throw new Error(util[_0x6439('0x18')](_0x6439('0x48'),_0x160f12['id']));}});}function setRelationship(_0x52fcc3,_0x135d3f,_0x1bb664,_0x212ce3){return request({'form':{'method':_0x6439('0x49'),'input_type':_0x6439('0x17'),'response_type':'JSON','rest_data':JSON[_0x6439('0x20')]({'session':_0x52fcc3['id'],'module_name':_0x6439('0x4a'),'module_id':_0x1bb664['id'],'link_field_name':_0x212ce3,'related_ids':[_0x135d3f['id']],'name_value_list':[],'delete':0x0})}});}exports[_0x6439('0x4b')]=function(_0x3a8341,_0x3183a4,_0x53330a,_0xc71842,_0x4d44d0,_0x577eeb){var _0x2d4422,_0x50e93a,_0x276209,_0x1138a9;_0x577eeb[_0x6439('0x4c')]=intUtil[_0x6439('0x4d')](_0x577eeb[_0x6439('0x4c')]);_0x577eeb[_0x6439('0x4e')]=intUtil[_0x6439('0x4d')](_0x577eeb[_0x6439('0x4e')]);def[_0x6439('0x4f')]=util[_0x6439('0x18')](_0x6439('0x50'),_0x577eeb[_0x6439('0x4c')]);if(_0x4d44d0&&_0x4d44d0['monitor_format']){logger[_0x6439('0x7')](_0x6439('0x51'),'Recording\x20is\x20enabled!');_0x3183a4['recordingURL']=util[_0x6439('0x18')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x577eeb[_0x6439('0x4e')],_0x3183a4[_0x6439('0x52')],md5(_0x3183a4[_0x6439('0x52')]));}else{_0x3183a4['recordingURL']='';}return getConnection(_0x577eeb)[_0x6439('0x22')](function(_0x4f4406){_0x1138a9=_0x4f4406;return getUser(_0x577eeb,_0xc71842['name'],_0x1138a9);})[_0x6439('0x22')](function(_0x5301fc){_0x2d4422=_0x5301fc;logger[_0x6439('0x7')](_0x6439('0x53'),_0x2d4422['id']);return getEndUser(_0x577eeb,_0x3183a4[_0x6439('0x54')],_0x3183a4[_0x6439('0x55')],_0x1138a9);})[_0x6439('0x22')](function(_0x51cd23){_0x50e93a=_0x51cd23;logger['info'](_0x6439('0x56'),_0x50e93a['id']);return getTicket(_0x577eeb,_0x2d4422,_0x50e93a,_0x53330a,_0x3183a4,_0x53330a['Fields'],_0x1138a9,_0x6439('0x57'));})[_0x6439('0x22')](function(_0x5b4e6c){_0x276209=_0x5b4e6c;logger[_0x6439('0x7')](_0x6439('0x58'));logger[_0x6439('0x7')](_0x6439('0x59'),_0x276209['id']);return setRelationship(_0x1138a9,_0x2d4422,_0x276209,_0x6439('0x5a'));})[_0x6439('0x22')](function(){return setRelationship(_0x1138a9,_0x50e93a,_0x276209,_0x6439('0x5b'));})[_0x6439('0x22')](function(){return getServerInfo(_0x1138a9);})[_0x6439('0x22')](function(_0x336014){var _0x199bbc=parseInt(_0x336014[_0x6439('0x5c')]['charAt'](0x0));var _0x511ace=util[_0x6439('0x18')]('%s/index.php?action=ajaxui#ajaxUILoc=index.php%3Fmodule%3DCalls%26action%3DEditView%26record%3D%s',_0x577eeb[_0x6439('0x4c')],_0x276209['id']);if(_0x199bbc>0x6){_0x511ace=util[_0x6439('0x18')]('%s/#bwc/index.php?module=Calls&action=EditView&record=%s',_0x577eeb[_0x6439('0x4c')],_0x276209['id']);}logger[_0x6439('0x7')]('[QUEUE]',_0x6439('0x5d'));emit(util[_0x6439('0x18')](_0x6439('0x5e'),_0xc71842['name']),_0x6439('0x5f'),{'uri':_0x511ace});})[_0x6439('0x60')](function(_0x285513){logger[_0x6439('0x61')](_0x6439('0x51'),JSON['stringify'](_0x285513));});};exports['outbound']=function(_0x522fbb,_0x555308,_0xbbabbf,_0x723022,_0x1a654c,_0x18b195,_0x5b04cb){var _0x5ee0e0,_0x156466,_0x2b1f8e,_0x2f44b2;_0x18b195[_0x6439('0x4c')]=intUtil[_0x6439('0x4d')](_0x18b195[_0x6439('0x4c')]);_0x18b195[_0x6439('0x4e')]=intUtil[_0x6439('0x4d')](_0x18b195[_0x6439('0x4e')]);def[_0x6439('0x4f')]=util[_0x6439('0x18')](_0x6439('0x50'),_0x18b195['remoteUri']);if(_0x5b04cb&&_0x5b04cb[_0x6439('0x62')]&&_0x5b04cb['recordingFormat']!==_0x6439('0x63')){logger[_0x6439('0x7')](_0x6439('0x64'),_0x6439('0x65'));_0x555308[_0x6439('0x66')]=util['format'](_0x6439('0x67'),_0x18b195[_0x6439('0x4e')],_0x555308[_0x6439('0x52')],md5(_0x555308['uniqueid']));}return getConnection(_0x18b195)[_0x6439('0x22')](function(_0x1806fe){_0x2f44b2=_0x1806fe;return getUser(_0x18b195,_0x723022['name'],_0x2f44b2);})[_0x6439('0x22')](function(_0x1df88c){_0x5ee0e0=_0x1df88c;logger[_0x6439('0x7')]('The\x20User\x20ID\x20is:',_0x5ee0e0['id']);return getEndUser(_0x18b195,_0x555308[_0x6439('0x68')],_0x555308[_0x6439('0x69')],_0x2f44b2);})[_0x6439('0x22')](function(_0x4a7443){_0x156466=_0x4a7443;logger[_0x6439('0x7')](_0x6439('0x56'),_0x156466['id']);return getTicket(_0x18b195,_0x5ee0e0,_0x156466,_0xbbabbf,_0x555308,_0xbbabbf[_0x6439('0x6a')],_0x2f44b2,_0x6439('0x6b'));})[_0x6439('0x22')](function(_0x446894){_0x2b1f8e=_0x446894;logger[_0x6439('0x7')](_0x6439('0x58'));logger['info']('The\x20Ticket\x20ID\x20is:',_0x2b1f8e['id']);return setRelationship(_0x2f44b2,_0x5ee0e0,_0x2b1f8e,_0x6439('0x5a'));})['then'](function(){return setRelationship(_0x2f44b2,_0x156466,_0x2b1f8e,_0x6439('0x5b'));})[_0x6439('0x22')](function(){return getServerInfo(_0x2f44b2);})[_0x6439('0x22')](function(_0x2ca987){var _0x3788f0=parseInt(_0x2ca987[_0x6439('0x5c')][_0x6439('0x6c')](0x0));var _0xaa4ffc=util['format'](_0x6439('0x6d'),_0x18b195[_0x6439('0x4c')],_0x2b1f8e['id']);if(_0x3788f0>0x6){_0xaa4ffc=util['format'](_0x6439('0x6e'),_0x18b195[_0x6439('0x4c')],_0x2b1f8e['id']);}logger[_0x6439('0x7')](_0x6439('0x64'),_0x6439('0x5d'));emit(util['format'](_0x6439('0x5e'),_0x723022[_0x6439('0x12')]),_0x6439('0x5f'),{'uri':_0xaa4ffc});})[_0x6439('0x60')](function(_0x4e3a0d){logger[_0x6439('0x61')](_0x6439('0x64'),JSON[_0x6439('0x20')](_0x4e3a0d));});};exports['unmanaged']=function(_0x4605b0,_0x37ccea,_0x4187cb,_0x2e36a0,_0x275cbc,_0x2d56af){var _0xe0dd67,_0x4236d9,_0x48dada,_0x279029;_0x2d56af[_0x6439('0x4c')]=intUtil[_0x6439('0x4d')](_0x2d56af['remoteUri']);_0x2d56af['serverUrl']=intUtil[_0x6439('0x4d')](_0x2d56af[_0x6439('0x4e')]);def[_0x6439('0x4f')]=util[_0x6439('0x18')]('%s/service/v4_1/rest.php',_0x2d56af['remoteUri']);if(_0x275cbc&&_0x275cbc[_0x6439('0x6f')]){logger['info']('['+_0x37ccea['lastevent'][_0x6439('0x70')]()+']',_0x6439('0x65'));_0x37ccea['recordingURL']=util[_0x6439('0x18')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x2d56af[_0x6439('0x4e')],_0x37ccea[_0x6439('0x52')],md5(_0x37ccea[_0x6439('0x52')]));}else{_0x37ccea[_0x6439('0x66')]='';}return getConnection(_0x2d56af)[_0x6439('0x22')](function(_0x5539d6){_0x279029=_0x5539d6;if(!_[_0x6439('0x1d')](_0x2e36a0)){return getUser(_0x2d56af,_0x2e36a0['name'],_0x279029);}else{return getUser(_0x2d56af,null,_0x279029);}})['then'](function(_0x5d1b11){_0xe0dd67=_0x5d1b11;logger[_0x6439('0x7')](_0x6439('0x53'),_0xe0dd67['id']);return getEndUser(_0x2d56af,_0x37ccea[_0x6439('0x54')],_0x37ccea[_0x6439('0x55')],_0x279029);})['then'](function(_0x29fcc9){_0x4236d9=_0x29fcc9;logger[_0x6439('0x7')]('The\x20Enduser\x20ID\x20is:',_0x4236d9['id']);return getTicket(_0x2d56af,_0xe0dd67,_0x4236d9,_0x4187cb,_0x37ccea,_0x4187cb[_0x6439('0x6a')],_0x279029,_0x6439('0x57'));})[_0x6439('0x22')](function(_0x4bc07e){_0x48dada=_0x4bc07e;logger[_0x6439('0x7')](_0x6439('0x58'));logger['info'](_0x6439('0x59'),_0x48dada['id']);return setRelationship(_0x279029,_0xe0dd67,_0x48dada,_0x6439('0x5a'));})[_0x6439('0x22')](function(){return setRelationship(_0x279029,_0x4236d9,_0x48dada,_0x6439('0x5b'));})[_0x6439('0x22')](function(){return getServerInfo(_0x279029);})[_0x6439('0x60')](function(_0x513d71){logger[_0x6439('0x61')]('['+_0x37ccea[_0x6439('0x71')][_0x6439('0x70')]()+']',JSON[_0x6439('0x20')](_0x513d71));});};
\ No newline at end of file
+var _0x8f27=['Subjects','assigned_user_id','description','Descriptions','date_start','toISOString','slice','duration_minutes','parent_id','parent_type','Contacts','parent_name','name','direction','length','push','set_entry','JSON','stringify','Calls','Basic\x20%s','apiKey','toString','base64','get_server_info','isNil','Getting\x20agent\x20with\x20name','get_entry_list','INSTR\x20(\x20users.user_name,\x20\x22%s\x22)\x20>\x200','user_name','then','entry_list','resolve','name_value_list','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','value','Agent\x20not\x20available,\x20using\x20the\x20admin\x20account!','Searching\x20enduser\x20with\x20phone','format','contacts.phone_home\x20=\x20\x22%s\x22','phone_home','find','Enduser\x20found!','first_name','<unknown>','Caller\x20-\x20%s','Enduser\x20created.','debug','[HTTP]','merge','map','string','nameField','customField','content','type','idField','custom_fields','variable','variableName','customVariable','Variable','toLowerCase','login','username','password','PLAIN','sessionID','set_relationship','queue','remoteUri','stripTrailingSlash','serverUrl','%s/service/v4_1/rest.php','monitor_format','recordingURL','The\x20User\x20ID\x20is:','calleridname','calleridnum','The\x20Enduser\x20ID\x20is:','Inbound','Ticket\x20created!','The\x20Ticket\x20ID\x20is:','users','contacts','version','charAt','%s/index.php?action=ajaxui#ajaxUILoc=index.php%3Fmodule%3DCalls%26action%3DEditView%26record%3D%s','%s/#bwc/index.php?module=Calls&action=EditView&record=%s','[QUEUE]','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s','trigger:browser:url','catch','error','outbound','uri','recordingFormat','none','[OUTBOUND]','Recording\x20is\x20enabled!','uniqueid','Fields','Outbound','unmanaged','toUpperCase','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','request-promise','bluebird','util','ioredis','./util','../../../../config/logger','sugarcrm','redis','defaults','localhost','socket.io-emitter','POST','emit','info','Creating\x20new\x20ticket...','getString'];(function(_0x4a8cba,_0x130e8b){var _0x595ed4=function(_0x5968a2){while(--_0x5968a2){_0x4a8cba['push'](_0x4a8cba['shift']());}};_0x595ed4(++_0x130e8b);}(_0x8f27,0x6b));var _0x78f2=function(_0x501d0d,_0x38b758){_0x501d0d=_0x501d0d-0x0;var _0x37a8b8=_0x8f27[_0x501d0d];return _0x37a8b8;};'use strict';var _=require('lodash');var rp=require(_0x78f2('0x0'));var BPromise=require(_0x78f2('0x1'));var md5=require('md5');var util=require(_0x78f2('0x2'));var Redis=require(_0x78f2('0x3'));var intUtil=require(_0x78f2('0x4'));var config=require('../../../../config/environment');var logger=require(_0x78f2('0x5'))(_0x78f2('0x6'));config[_0x78f2('0x7')]=_[_0x78f2('0x8')](config[_0x78f2('0x7')],{'host':_0x78f2('0x9'),'port':0x18eb});var io=require(_0x78f2('0xa'))(new Redis(config[_0x78f2('0x7')]));var def={'method':_0x78f2('0xb'),'json':!![]};function emit(_0x5e9beb,_0x5c42ed,_0x26b61e){io['to'](_0x5e9beb)[_0x78f2('0xc')](_0x5c42ed,_0x26b61e);}function getTicket(_0x4d1456,_0x21b145,_0x5b62e6,_0x5ebcee,_0x4e1d92,_0x2e7f60,_0x1be0f7,_0x5d51e7){logger[_0x78f2('0xd')](_0x78f2('0xe'));var _0x3d4902=new Date();var _0x217ce6=[{'name':'name','value':intUtil[_0x78f2('0xf')](_0x5ebcee[_0x78f2('0x10')],_0x4e1d92,'\x20')},{'name':_0x78f2('0x11'),'value':_0x21b145['id']},{'name':'created_by','value':_0x21b145['id']},{'name':_0x78f2('0x12'),'value':intUtil[_0x78f2('0xf')](_0x5ebcee[_0x78f2('0x13')],_0x4e1d92,'\x0a')},{'name':_0x78f2('0x14'),'value':_0x3d4902[_0x78f2('0x15')]()[_0x78f2('0x16')](0x0,0x13)['replace']('T','\x20')},{'name':'duration_hours','value':'0'},{'name':_0x78f2('0x17'),'value':'15'},{'name':_0x78f2('0x18'),'value':_0x5b62e6['id']},{'name':_0x78f2('0x19'),'value':_0x78f2('0x1a')},{'name':_0x78f2('0x1b'),'value':_0x5b62e6[_0x78f2('0x1c')]},{'name':_0x78f2('0x1d'),'value':_0x5d51e7}];if(_0x2e7f60[_0x78f2('0x1e')]){_['forEach'](_0x2e7f60,function(_0x2ef25f){if(_0x4e1d92[_0x2ef25f['variableName']]){_0x217ce6[_0x78f2('0x1f')]({'name':_0x2ef25f['idField'],'value':_0x4e1d92[_0x2ef25f['variableName']]});}});}return request({'form':{'method':_0x78f2('0x20'),'input_type':_0x78f2('0x21'),'response_type':_0x78f2('0x21'),'rest_data':JSON[_0x78f2('0x22')]({'session':_0x1be0f7['id'],'module_name':_0x78f2('0x23'),'name_value_list':_0x217ce6})}});}function getAuth(_0x566532){return util['format'](_0x78f2('0x24'),new Buffer(_0x566532[_0x78f2('0x25')]+':X')[_0x78f2('0x26')](_0x78f2('0x27')));}function getServerInfo(_0x2307c2){return request({'form':{'method':_0x78f2('0x28'),'input_type':_0x78f2('0x21'),'response_type':'JSON','rest_data':JSON[_0x78f2('0x22')]({'session':_0x2307c2['id']})}});}function getUser(_0x5be780,_0x51f77e,_0x2b712f){if(!_[_0x78f2('0x29')](_0x51f77e)){logger['info'](_0x78f2('0x2a'),_0x51f77e);return request({'form':{'method':_0x78f2('0x2b'),'input_type':_0x78f2('0x21'),'response_type':'JSON','rest_data':JSON[_0x78f2('0x22')]({'session':_0x2b712f['id'],'module_name':'Employees','query':util['format'](_0x78f2('0x2c'),_0x51f77e),'order_by':'','offset':'0','select_fields':['id',_0x78f2('0x1c'),_0x78f2('0x2d')],'link_name_to_fields_array':[],'max_results':-0x1,'deleted':'0'})}})[_0x78f2('0x2e')](function(_0x3a2db5){if(_0x3a2db5[_0x78f2('0x2f')]['length']){var _0x2aa74a=_['find'](_0x3a2db5[_0x78f2('0x2f')],function(_0x1dd3e3){return _0x1dd3e3['name_value_list'][_0x78f2('0x2d')]['value']===_0x51f77e;});if(_0x2aa74a){logger[_0x78f2('0xd')]('Agent\x20found!');return BPromise[_0x78f2('0x30')]({'id':_0x2aa74a['name_value_list']['id']['value'],'name':_0x2aa74a[_0x78f2('0x31')]['name']['value']});}}logger[_0x78f2('0xd')](_0x78f2('0x32'));return BPromise['resolve']({'id':_0x2b712f[_0x78f2('0x31')]['user_id'][_0x78f2('0x33')],'name':_0x2b712f[_0x78f2('0x31')][_0x78f2('0x2d')]['value']});});}else{logger[_0x78f2('0xd')](_0x78f2('0x34'));return BPromise['resolve']({'id':_0x2b712f[_0x78f2('0x31')]['user_id'][_0x78f2('0x33')],'name':_0x2b712f[_0x78f2('0x31')]['user_name'][_0x78f2('0x33')]});}}function getEndUser(_0x3daa16,_0x5cd820,_0x287414,_0x520468){logger[_0x78f2('0xd')](_0x78f2('0x35'),_0x287414);return request({'form':{'method':_0x78f2('0x2b'),'input_type':_0x78f2('0x21'),'response_type':_0x78f2('0x21'),'rest_data':JSON['stringify']({'session':_0x520468['id'],'module_name':_0x78f2('0x1a'),'query':util[_0x78f2('0x36')](_0x78f2('0x37'),_0x287414),'order_by':'','offset':'0','select_fields':['id','name',_0x78f2('0x38')],'link_name_to_fields_array':[],'max_results':-0x1,'deleted':'0'})}})[_0x78f2('0x2e')](function(_0x1a653a){if(_0x1a653a[_0x78f2('0x2f')][_0x78f2('0x1e')]){var _0x792ce4=_[_0x78f2('0x39')](_0x1a653a['entry_list'],function(_0x59693e){return _0x59693e['name_value_list'][_0x78f2('0x38')][_0x78f2('0x33')]===_0x287414;});if(_0x792ce4){logger[_0x78f2('0xd')](_0x78f2('0x3a'));return BPromise[_0x78f2('0x30')]({'id':_0x792ce4[_0x78f2('0x31')]['id'][_0x78f2('0x33')],'name':_0x792ce4['name_value_list'][_0x78f2('0x1c')][_0x78f2('0x33')],'phone':_0x792ce4[_0x78f2('0x31')][_0x78f2('0x38')][_0x78f2('0x33')]});}}else{logger[_0x78f2('0xd')]('Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!');return request({'form':{'method':_0x78f2('0x20'),'input_type':'JSON','response_type':_0x78f2('0x21'),'rest_data':JSON['stringify']({'session':_0x520468['id'],'module_name':_0x78f2('0x1a'),'name_value_list':[{'name':_0x78f2('0x3b'),'value':_0x5cd820!==_0x78f2('0x3c')?_0x5cd820:util['format'](_0x78f2('0x3d'),_0x287414)},{'name':'phone_home','value':_0x287414}]})}})[_0x78f2('0x2e')](function(_0x193bbc){logger[_0x78f2('0xd')](_0x78f2('0x3e'));return BPromise[_0x78f2('0x30')]({'id':_0x193bbc['id'],'name':_0x193bbc[_0x78f2('0x2f')][_0x78f2('0x3b')][_0x78f2('0x33')],'phone':_0x193bbc[_0x78f2('0x2f')]['phone_home'][_0x78f2('0x33')]});});}});}function request(_0x4c2f8d){logger[_0x78f2('0x3f')](_0x78f2('0x40'),JSON['stringify'](_0x4c2f8d));return rp(_[_0x78f2('0x41')](def,_0x4c2f8d));}function getTags(_0x25b6a2,_0x421c0c){var _0x1eb602=[];if(_0x25b6a2&&_0x25b6a2['length']>0x0){_0x1eb602=_[_0x78f2('0x42')](_0x25b6a2,_0x421c0c);}return _0x1eb602;}function getCustomFields(_0x2d9bce,_0x4cf2e8){var _0x190947=[];var _0xdc4033={'custom_fields':[]};if(_0x2d9bce[_0x78f2('0x1e')]>0x0){_['forEach'](_0x2d9bce,function(_0x2e35fd){if(_0x2e35fd['type']===_0x78f2('0x43')&&_0x2e35fd[_0x78f2('0x44')]&&!_0x2e35fd[_0x78f2('0x45')]){_0xdc4033[_0x2e35fd['nameField']['toLowerCase']()]=_0x2e35fd[_0x78f2('0x46')][_0x78f2('0x26')]();}else if(_0x2e35fd[_0x78f2('0x47')]===_0x78f2('0x43')&&_0x2e35fd[_0x78f2('0x48')]&&_0x2e35fd['customField']){_0xdc4033[_0x78f2('0x49')][_0x78f2('0x1f')]({'id':_0x2e35fd[_0x78f2('0x48')],'value':_0x2e35fd[_0x78f2('0x46')]['toString']()});}else if(_0x2e35fd['type']===_0x78f2('0x4a')&&_0x2e35fd[_0x78f2('0x4b')]&&_0x2e35fd['idField']&&_0x2e35fd[_0x78f2('0x45')]){_0x4cf2e8[_0x2e35fd['variableName']]&&_0xdc4033[_0x78f2('0x49')][_0x78f2('0x1f')]({'id':_0x2e35fd[_0x78f2('0x48')],'value':_0x4cf2e8[_0x2e35fd[_0x78f2('0x4b')]][_0x78f2('0x26')]()});}else if(_0x2e35fd[_0x78f2('0x47')]===_0x78f2('0x4c')&&_0x2e35fd[_0x78f2('0x4d')]&&_0x2e35fd[_0x78f2('0x4d')]['name']&&_0x2e35fd['idField']&&_0x2e35fd[_0x78f2('0x45')]){_0x4cf2e8[_0x2e35fd[_0x78f2('0x4d')]['name'][_0x78f2('0x4e')]()]&&_0xdc4033[_0x78f2('0x49')]['push']({'id':_0x2e35fd[_0x78f2('0x48')],'value':_0x4cf2e8[_0x2e35fd[_0x78f2('0x4d')][_0x78f2('0x1c')][_0x78f2('0x4e')]()]['toString']()});}});}return _0xdc4033;}function getConnection(_0xeef37a){return request({'method':'POST','form':{'method':_0x78f2('0x4f'),'input_type':_0x78f2('0x21'),'response_type':_0x78f2('0x21'),'rest_data':JSON[_0x78f2('0x22')]({'user_auth':{'user_name':_0xeef37a[_0x78f2('0x50')],'password':_0xeef37a[_0x78f2('0x51')],'encryption':_0x78f2('0x52')},'application':'xCALLY\x20Motion\x20integration'})}})[_0x78f2('0x2e')](function(_0x1447ec){var _0x13faf3=_0x1447ec;if(_0x13faf3['id']){def[_0x78f2('0x53')]=_0x13faf3['id'];return BPromise[_0x78f2('0x30')](_0x13faf3);}else{throw new Error(util['format']('Account\x20%d\x20is\x20not\x20valid',_0xeef37a['id']));}});}function setRelationship(_0x51152e,_0x53393,_0x9b2ffe,_0x200d7b){return request({'form':{'method':_0x78f2('0x54'),'input_type':_0x78f2('0x21'),'response_type':'JSON','rest_data':JSON[_0x78f2('0x22')]({'session':_0x51152e['id'],'module_name':_0x78f2('0x23'),'module_id':_0x9b2ffe['id'],'link_field_name':_0x200d7b,'related_ids':[_0x53393['id']],'name_value_list':[],'delete':0x0})}});}exports[_0x78f2('0x55')]=function(_0x356c5c,_0x5b8680,_0x47aeef,_0x35a132,_0x3596ff,_0x2a5c14){var _0x57a355,_0x835955,_0x594c90,_0x3ed2a6;_0x2a5c14[_0x78f2('0x56')]=intUtil[_0x78f2('0x57')](_0x2a5c14['remoteUri']);_0x2a5c14[_0x78f2('0x58')]=intUtil['stripTrailingSlash'](_0x2a5c14['serverUrl']);def['uri']=util[_0x78f2('0x36')](_0x78f2('0x59'),_0x2a5c14[_0x78f2('0x56')]);if(_0x3596ff&&_0x3596ff[_0x78f2('0x5a')]){logger[_0x78f2('0xd')]('[QUEUE]','Recording\x20is\x20enabled!');_0x5b8680['recordingURL']=util[_0x78f2('0x36')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x2a5c14[_0x78f2('0x58')],_0x5b8680['uniqueid'],md5(_0x5b8680['uniqueid']));}else{_0x5b8680[_0x78f2('0x5b')]='';}return getConnection(_0x2a5c14)[_0x78f2('0x2e')](function(_0x14ca9f){_0x3ed2a6=_0x14ca9f;return getUser(_0x2a5c14,_0x35a132[_0x78f2('0x1c')],_0x3ed2a6);})[_0x78f2('0x2e')](function(_0x288642){_0x57a355=_0x288642;logger[_0x78f2('0xd')](_0x78f2('0x5c'),_0x57a355['id']);return getEndUser(_0x2a5c14,_0x5b8680[_0x78f2('0x5d')],_0x5b8680[_0x78f2('0x5e')],_0x3ed2a6);})[_0x78f2('0x2e')](function(_0x58ff69){_0x835955=_0x58ff69;logger[_0x78f2('0xd')](_0x78f2('0x5f'),_0x835955['id']);return getTicket(_0x2a5c14,_0x57a355,_0x835955,_0x47aeef,_0x5b8680,_0x47aeef['Fields'],_0x3ed2a6,_0x78f2('0x60'));})[_0x78f2('0x2e')](function(_0x14a105){_0x594c90=_0x14a105;logger[_0x78f2('0xd')](_0x78f2('0x61'));logger[_0x78f2('0xd')](_0x78f2('0x62'),_0x594c90['id']);return setRelationship(_0x3ed2a6,_0x57a355,_0x594c90,_0x78f2('0x63'));})['then'](function(){return setRelationship(_0x3ed2a6,_0x835955,_0x594c90,_0x78f2('0x64'));})[_0x78f2('0x2e')](function(){return getServerInfo(_0x3ed2a6);})[_0x78f2('0x2e')](function(_0xbe0fa9){var _0x22cba5=parseInt(_0xbe0fa9[_0x78f2('0x65')][_0x78f2('0x66')](0x0));var _0x81676e=util[_0x78f2('0x36')](_0x78f2('0x67'),_0x2a5c14[_0x78f2('0x56')],_0x594c90['id']);if(_0x22cba5>0x6){_0x81676e=util['format'](_0x78f2('0x68'),_0x2a5c14[_0x78f2('0x56')],_0x594c90['id']);}logger[_0x78f2('0xd')](_0x78f2('0x69'),_0x78f2('0x6a'));emit(util[_0x78f2('0x36')](_0x78f2('0x6b'),_0x35a132[_0x78f2('0x1c')]),_0x78f2('0x6c'),{'uri':_0x81676e});})[_0x78f2('0x6d')](function(_0x8e5d38){logger[_0x78f2('0x6e')](_0x78f2('0x69'),JSON['stringify'](_0x8e5d38));});};exports[_0x78f2('0x6f')]=function(_0x525fc4,_0x34e5a0,_0x5b9045,_0x2dcd89,_0x33555c,_0x1d3a2c,_0x5754f8){var _0x577bcf,_0x111856,_0xecf9c6,_0x1bcfbb;_0x1d3a2c[_0x78f2('0x56')]=intUtil[_0x78f2('0x57')](_0x1d3a2c[_0x78f2('0x56')]);_0x1d3a2c[_0x78f2('0x58')]=intUtil[_0x78f2('0x57')](_0x1d3a2c[_0x78f2('0x58')]);def[_0x78f2('0x70')]=util['format'](_0x78f2('0x59'),_0x1d3a2c['remoteUri']);if(_0x5754f8&&_0x5754f8[_0x78f2('0x71')]&&_0x5754f8[_0x78f2('0x71')]!==_0x78f2('0x72')){logger['info'](_0x78f2('0x73'),_0x78f2('0x74'));_0x34e5a0[_0x78f2('0x5b')]=util[_0x78f2('0x36')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x1d3a2c[_0x78f2('0x58')],_0x34e5a0['uniqueid'],md5(_0x34e5a0[_0x78f2('0x75')]));}return getConnection(_0x1d3a2c)[_0x78f2('0x2e')](function(_0x27ef69){_0x1bcfbb=_0x27ef69;return getUser(_0x1d3a2c,_0x2dcd89['name'],_0x1bcfbb);})[_0x78f2('0x2e')](function(_0x314543){_0x577bcf=_0x314543;logger[_0x78f2('0xd')]('The\x20User\x20ID\x20is:',_0x577bcf['id']);return getEndUser(_0x1d3a2c,_0x34e5a0['destcalleridname'],_0x34e5a0['destcalleridnum'],_0x1bcfbb);})['then'](function(_0x351fa9){_0x111856=_0x351fa9;logger['info'](_0x78f2('0x5f'),_0x111856['id']);return getTicket(_0x1d3a2c,_0x577bcf,_0x111856,_0x5b9045,_0x34e5a0,_0x5b9045[_0x78f2('0x76')],_0x1bcfbb,_0x78f2('0x77'));})['then'](function(_0x1c40b2){_0xecf9c6=_0x1c40b2;logger['info'](_0x78f2('0x61'));logger['info'](_0x78f2('0x62'),_0xecf9c6['id']);return setRelationship(_0x1bcfbb,_0x577bcf,_0xecf9c6,'users');})[_0x78f2('0x2e')](function(){return setRelationship(_0x1bcfbb,_0x111856,_0xecf9c6,_0x78f2('0x64'));})[_0x78f2('0x2e')](function(){return getServerInfo(_0x1bcfbb);})[_0x78f2('0x2e')](function(_0x4d621e){var _0x2bf67b=parseInt(_0x4d621e[_0x78f2('0x65')][_0x78f2('0x66')](0x0));var _0xa769c0=util[_0x78f2('0x36')](_0x78f2('0x67'),_0x1d3a2c[_0x78f2('0x56')],_0xecf9c6['id']);if(_0x2bf67b>0x6){_0xa769c0=util[_0x78f2('0x36')](_0x78f2('0x68'),_0x1d3a2c[_0x78f2('0x56')],_0xecf9c6['id']);}logger['info'](_0x78f2('0x73'),'Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...');emit(util[_0x78f2('0x36')](_0x78f2('0x6b'),_0x2dcd89['name']),'trigger:browser:url',{'uri':_0xa769c0});})[_0x78f2('0x6d')](function(_0x4d1395){logger[_0x78f2('0x6e')](_0x78f2('0x73'),JSON[_0x78f2('0x22')](_0x4d1395));});};exports[_0x78f2('0x78')]=function(_0x34ed12,_0x404e5f,_0xc928ac,_0x567d8a,_0x373b3c,_0x300e7a){var _0x283543,_0x73ea22,_0x478206,_0x31f963;_0x300e7a[_0x78f2('0x56')]=intUtil[_0x78f2('0x57')](_0x300e7a['remoteUri']);_0x300e7a[_0x78f2('0x58')]=intUtil[_0x78f2('0x57')](_0x300e7a[_0x78f2('0x58')]);def[_0x78f2('0x70')]=util[_0x78f2('0x36')]('%s/service/v4_1/rest.php',_0x300e7a[_0x78f2('0x56')]);if(_0x373b3c&&_0x373b3c[_0x78f2('0x5a')]){logger[_0x78f2('0xd')]('['+_0x404e5f['lastevent'][_0x78f2('0x79')]()+']',_0x78f2('0x74'));_0x404e5f[_0x78f2('0x5b')]=util[_0x78f2('0x36')](_0x78f2('0x7a'),_0x300e7a[_0x78f2('0x58')],_0x404e5f[_0x78f2('0x75')],md5(_0x404e5f[_0x78f2('0x75')]));}else{_0x404e5f[_0x78f2('0x5b')]='';}return getConnection(_0x300e7a)[_0x78f2('0x2e')](function(_0x3c3106){_0x31f963=_0x3c3106;if(!_[_0x78f2('0x29')](_0x567d8a)){return getUser(_0x300e7a,_0x567d8a[_0x78f2('0x1c')],_0x31f963);}else{return getUser(_0x300e7a,null,_0x31f963);}})[_0x78f2('0x2e')](function(_0x285e45){_0x283543=_0x285e45;logger['info']('The\x20User\x20ID\x20is:',_0x283543['id']);return getEndUser(_0x300e7a,_0x404e5f[_0x78f2('0x5d')],_0x404e5f['calleridnum'],_0x31f963);})['then'](function(_0x41c34c){_0x73ea22=_0x41c34c;logger['info'](_0x78f2('0x5f'),_0x73ea22['id']);return getTicket(_0x300e7a,_0x283543,_0x73ea22,_0xc928ac,_0x404e5f,_0xc928ac[_0x78f2('0x76')],_0x31f963,'Inbound');})[_0x78f2('0x2e')](function(_0x451830){_0x478206=_0x451830;logger[_0x78f2('0xd')](_0x78f2('0x61'));logger[_0x78f2('0xd')](_0x78f2('0x62'),_0x478206['id']);return setRelationship(_0x31f963,_0x283543,_0x478206,_0x78f2('0x63'));})[_0x78f2('0x2e')](function(){return setRelationship(_0x31f963,_0x73ea22,_0x478206,_0x78f2('0x64'));})[_0x78f2('0x2e')](function(){return getServerInfo(_0x31f963);})[_0x78f2('0x6d')](function(_0x2529ce){logger[_0x78f2('0x6e')]('['+_0x404e5f['lastevent'][_0x78f2('0x79')]()+']',JSON[_0x78f2('0x22')](_0x2529ce));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4cae=['Variable','name','toLowerCase','keyValue','keyType','key','%s:\x20%s','keyContent','format','join','slice','substring','lastIndexOf','validateEmail','test','lodash','util','getString','length','sortBy','string','push','type','variable','variableName','toString','customVariable'];(function(_0x44585b,_0x5c43fc){var _0x173bf9=function(_0x21787c){while(--_0x21787c){_0x44585b['push'](_0x44585b['shift']());}};_0x173bf9(++_0x5c43fc);}(_0x4cae,0xb1));var _0xe4ca=function(_0x3e3cf3,_0x531300){_0x3e3cf3=_0x3e3cf3-0x0;var _0x358881=_0x4cae[_0x3e3cf3];return _0x358881;};'use strict';var _=require(_0xe4ca('0x0'));var util=require(_0xe4ca('0x1'));exports[_0xe4ca('0x2')]=function(_0x589bbd,_0x497850,_0x46338c){var _0x3b20cb=[];if(_0x589bbd[_0xe4ca('0x3')]>0x0){var _0x34fd3b=_[_0xe4ca('0x4')](_0x589bbd,['id']);for(var _0x2df473=0x0;_0x2df473<_0x34fd3b['length'];_0x2df473++){var _0x17ece6=_0x34fd3b[_0x2df473];if(_0x17ece6['type']===_0xe4ca('0x5')){_0x3b20cb[_0xe4ca('0x6')](_0x17ece6['content']);}else if(_0x17ece6[_0xe4ca('0x7')]===_0xe4ca('0x8')&&_0x17ece6[_0xe4ca('0x9')]){_0x497850[_0x17ece6[_0xe4ca('0x9')]]&&_0x3b20cb[_0xe4ca('0x6')](_0x497850[_0x17ece6['variableName']][_0xe4ca('0xa')]());}else if(_0x17ece6['type']===_0xe4ca('0xb')&&_0x17ece6[_0xe4ca('0xc')]&&_0x17ece6['Variable'][_0xe4ca('0xd')]){_0x497850[_0x17ece6['Variable']['name']['toLowerCase']()]&&_0x3b20cb[_0xe4ca('0x6')](_0x497850[_0x17ece6[_0xe4ca('0xc')][_0xe4ca('0xd')][_0xe4ca('0xe')]()][_0xe4ca('0xa')]());}else if(_0x17ece6[_0xe4ca('0x7')]===_0xe4ca('0xf')){if(_0x17ece6[_0xe4ca('0x10')]==='string'&&_0x17ece6[_0xe4ca('0x11')]){_0x3b20cb[_0xe4ca('0x6')](util['format'](_0xe4ca('0x12'),_0x17ece6[_0xe4ca('0x11')],_0x17ece6[_0xe4ca('0x13')]));}else if(_0x17ece6[_0xe4ca('0x10')]===_0xe4ca('0x8')&&_0x17ece6[_0xe4ca('0x9')]&&_0x17ece6[_0xe4ca('0x11')]){_0x497850[_0x17ece6[_0xe4ca('0x9')]]&&_0x3b20cb[_0xe4ca('0x6')](util['format'](_0xe4ca('0x12'),_0x17ece6['key'],_0x497850[_0x17ece6[_0xe4ca('0x9')]]));}else if(_0x17ece6[_0xe4ca('0x10')]===_0xe4ca('0xb')&&_0x17ece6[_0xe4ca('0xc')]&&_0x17ece6[_0xe4ca('0xc')][_0xe4ca('0xd')]&&_0x17ece6['key']){_0x497850[_0x17ece6[_0xe4ca('0xc')]['name'][_0xe4ca('0xe')]()]&&_0x3b20cb[_0xe4ca('0x6')](util[_0xe4ca('0x14')](_0xe4ca('0x12'),_0x17ece6['key'],_0x497850[_0x17ece6[_0xe4ca('0xc')]['name'][_0xe4ca('0xe')]()]));}}}}return _0x3b20cb[_0xe4ca('0x15')](_0x46338c);};exports['stripTrailingSlash']=function(_0x8b4caa){var _0xc22cc6=_0x8b4caa[_0xe4ca('0x16')](-0x1);if(_0xc22cc6==='/'){_0x8b4caa=_0x8b4caa[_0xe4ca('0x17')](0x0,_0x8b4caa[_0xe4ca('0x18')](_0xc22cc6));}return _0x8b4caa;};exports[_0xe4ca('0x19')]=function(_0x3ee7c2){if(!_['isNil'](_0x3ee7c2)&&_0x3ee7c2!==''){var _0x4bfbde=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;return _0x4bfbde[_0xe4ca('0x1a')](String(_0x3ee7c2)[_0xe4ca('0xe')]());}else{return![];}};
\ No newline at end of file
+var _0x6f30=['lodash','util','getString','sortBy','length','type','string','push','content','variableName','toString','Variable','name','toLowerCase','keyValue','keyType','key','format','%s:\x20%s','keyContent','customVariable','join','stripTrailingSlash','slice','isNil','test'];(function(_0x567534,_0x19334c){var _0x538292=function(_0x1d69a3){while(--_0x1d69a3){_0x567534['push'](_0x567534['shift']());}};_0x538292(++_0x19334c);}(_0x6f30,0x138));var _0x06f3=function(_0x1aa3fe,_0x27c5fa){_0x1aa3fe=_0x1aa3fe-0x0;var _0x163cee=_0x6f30[_0x1aa3fe];return _0x163cee;};'use strict';var _=require(_0x06f3('0x0'));var util=require(_0x06f3('0x1'));exports[_0x06f3('0x2')]=function(_0x2855ef,_0x4e16bb,_0x334fad){var _0x226932=[];if(_0x2855ef['length']>0x0){var _0x241970=_[_0x06f3('0x3')](_0x2855ef,['id']);for(var _0x52c05a=0x0;_0x52c05a<_0x241970[_0x06f3('0x4')];_0x52c05a++){var _0x19c3d1=_0x241970[_0x52c05a];if(_0x19c3d1[_0x06f3('0x5')]===_0x06f3('0x6')){_0x226932[_0x06f3('0x7')](_0x19c3d1[_0x06f3('0x8')]);}else if(_0x19c3d1[_0x06f3('0x5')]==='variable'&&_0x19c3d1[_0x06f3('0x9')]){_0x4e16bb[_0x19c3d1[_0x06f3('0x9')]]&&_0x226932[_0x06f3('0x7')](_0x4e16bb[_0x19c3d1[_0x06f3('0x9')]][_0x06f3('0xa')]());}else if(_0x19c3d1[_0x06f3('0x5')]==='customVariable'&&_0x19c3d1[_0x06f3('0xb')]&&_0x19c3d1['Variable']['name']){_0x4e16bb[_0x19c3d1[_0x06f3('0xb')][_0x06f3('0xc')][_0x06f3('0xd')]()]&&_0x226932['push'](_0x4e16bb[_0x19c3d1['Variable'][_0x06f3('0xc')]['toLowerCase']()]['toString']());}else if(_0x19c3d1[_0x06f3('0x5')]===_0x06f3('0xe')){if(_0x19c3d1[_0x06f3('0xf')]===_0x06f3('0x6')&&_0x19c3d1[_0x06f3('0x10')]){_0x226932[_0x06f3('0x7')](util[_0x06f3('0x11')](_0x06f3('0x12'),_0x19c3d1[_0x06f3('0x10')],_0x19c3d1[_0x06f3('0x13')]));}else if(_0x19c3d1[_0x06f3('0xf')]==='variable'&&_0x19c3d1[_0x06f3('0x9')]&&_0x19c3d1['key']){_0x4e16bb[_0x19c3d1[_0x06f3('0x9')]]&&_0x226932[_0x06f3('0x7')](util[_0x06f3('0x11')](_0x06f3('0x12'),_0x19c3d1[_0x06f3('0x10')],_0x4e16bb[_0x19c3d1['variableName']]));}else if(_0x19c3d1['keyType']===_0x06f3('0x14')&&_0x19c3d1[_0x06f3('0xb')]&&_0x19c3d1['Variable'][_0x06f3('0xc')]&&_0x19c3d1[_0x06f3('0x10')]){_0x4e16bb[_0x19c3d1[_0x06f3('0xb')][_0x06f3('0xc')][_0x06f3('0xd')]()]&&_0x226932[_0x06f3('0x7')](util[_0x06f3('0x11')]('%s:\x20%s',_0x19c3d1[_0x06f3('0x10')],_0x4e16bb[_0x19c3d1['Variable'][_0x06f3('0xc')][_0x06f3('0xd')]()]));}}}}return _0x226932[_0x06f3('0x15')](_0x334fad);};exports[_0x06f3('0x16')]=function(_0x4533e8){var _0x2cc2d4=_0x4533e8[_0x06f3('0x17')](-0x1);if(_0x2cc2d4==='/'){_0x4533e8=_0x4533e8['substring'](0x0,_0x4533e8['lastIndexOf'](_0x2cc2d4));}return _0x4533e8;};exports['validateEmail']=function(_0x25145e){if(!_[_0x06f3('0x18')](_0x25145e)&&_0x25145e!==''){var _0xfa0599=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;return _0xfa0599[_0x06f3('0x19')](String(_0x25145e)[_0x06f3('0xd')]());}else{return![];}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x34e8=['redis','defaults','localhost','emit','length','forEach','includes','string','picklist','type','idField','toString','variableName','Variable','name','toLowerCase','info','Creating\x20new\x20ticket...','merge','Normal','getString','Subjects','POST','format','remoteUri','create','sessionName','HelpDesk','stringify','success','error','catch','statusCode','Getting\x20agent\x20with\x20email','GET','%s/webservice.php','query','username','SELECT\x20first_name,\x20last_name,\x20email1\x20FROM\x20Users\x20WHERE\x20email1=\x27%s\x27;','result','Agent\x20found!','resolve','email1','first_name','last_name','userId','[vTiger],\x20%s,\x20%s,\x20%s','getUser','admin','SELECT\x20id,\x20firstname,\x20lastname,\x20email,\x20phone,\x20mobile,\x20homephone,\x20otherphone,\x20assistantphone\x20FROM\x20Contacts\x20WHERE\x20phone\x20=\x20\x27%s\x27\x20OR\x20mobile\x20=\x27%s\x27\x20OR\x20homephone\x20=\x27%s\x27\x20OR\x20otherphone\x20=\x27%s\x27\x20OR\x20assistantphone\x20=\x27%s\x27;','Enduser\x20found!','firstname','lastname','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','phone','getEndUser','accessKey','getchallenge','then','login','token','Account\x20%d\x20is\x20not\x20valid','getConnection','[HTTP]','queue','Recording\x20is\x20enabled!','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','serverUrl','recordingURL','email','The\x20User\x20ID\x20is:','calleridnum','Fields','Ticket\x20created!','The\x20Ticket\x20ID\x20is:','%s/index.php?module=HelpDesk&view=Detail&record=%s&app=SUPPORT','[QUEUE]','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s','trigger:browser:url','outbound','stripTrailingSlash','recordingFormat','none','[OUTBOUND]','uniqueid','destcalleridname','destcalleridnum','The\x20Enduser\x20ID\x20is:','split','unmanaged','lastevent','toUpperCase','calleridname','lodash','request-promise','bluebird','md5','ioredis','./util','../../../../config/environment','../../../../config/logger','vTiger'];(function(_0x2f8320,_0x1608fe){var _0x119eb8=function(_0x16d47f){while(--_0x16d47f){_0x2f8320['push'](_0x2f8320['shift']());}};_0x119eb8(++_0x1608fe);}(_0x34e8,0x12c));var _0x834e=function(_0x460ee5,_0x53ab05){_0x460ee5=_0x460ee5-0x0;var _0x2d49a6=_0x34e8[_0x460ee5];return _0x2d49a6;};'use strict';var _=require(_0x834e('0x0'));var rp=require(_0x834e('0x1'));var BPromise=require(_0x834e('0x2'));var md5=require(_0x834e('0x3'));var util=require('util');var Redis=require(_0x834e('0x4'));var intUtil=require(_0x834e('0x5'));var config=require(_0x834e('0x6'));var logger=require(_0x834e('0x7'))(_0x834e('0x8'));config[_0x834e('0x9')]=_[_0x834e('0xa')](config['redis'],{'host':_0x834e('0xb'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x834e('0x9')]));function emit(_0x3cc2e3,_0x3a3ef6,_0x2e69e2){io['to'](_0x3cc2e3)[_0x834e('0xc')](_0x3a3ef6,_0x2e69e2);}function getCustomFields(_0x23501c,_0x363786){var _0x1af45a={};if(_0x23501c[_0x834e('0xd')]>0x0){_[_0x834e('0xe')](_0x23501c,function(_0x1e41fe){if(_[_0x834e('0xf')]([_0x834e('0x10'),_0x834e('0x11')],_0x1e41fe[_0x834e('0x12')])&&_0x1e41fe[_0x834e('0x13')]){_0x1af45a[_0x1e41fe[_0x834e('0x13')]]=_0x1e41fe['content'][_0x834e('0x14')]();}else if(_0x1e41fe[_0x834e('0x12')]==='variable'&&_0x1e41fe[_0x834e('0x15')]&&_0x1e41fe[_0x834e('0x13')]&&_0x363786[_0x1e41fe[_0x834e('0x15')]]){_0x1af45a[_0x1e41fe[_0x834e('0x13')]]=_0x363786[_0x1e41fe['variableName']][_0x834e('0x14')]();}else if(_0x1e41fe[_0x834e('0x12')]==='customVariable'&&_0x1e41fe[_0x834e('0x16')]&&_0x1e41fe['Variable'][_0x834e('0x17')]&&_0x1e41fe[_0x834e('0x13')]&&_0x363786[_0x1e41fe['Variable'][_0x834e('0x17')][_0x834e('0x18')]()]){_0x1af45a[_0x1e41fe[_0x834e('0x13')]]=_0x363786[_0x1e41fe['Variable'][_0x834e('0x17')][_0x834e('0x18')]()][_0x834e('0x14')]();}});}return _0x1af45a;}function createTicket(_0xb993a1,_0x237947,_0x254677,_0x1dd214,_0x595515,_0x2545b4,_0x1fd2c6){logger[_0x834e('0x19')](_0x834e('0x1a'));var _0x4ab05d=_[_0x834e('0x1b')]({'parent_id':'','assigned_user_id':_0x237947['id'],'ticketpriorities':_0x834e('0x1c'),'ticketstatus':'Open','ticket_title':intUtil[_0x834e('0x1d')](_0x1dd214[_0x834e('0x1e')],_0x595515,'\x20'),'description':intUtil[_0x834e('0x1d')](_0x1dd214['Descriptions'],_0x595515,'\x0a'),'contact_id':_0x254677['id']},getCustomFields(_0x2545b4,_0x595515));var _0x4e3f48={'method':_0x834e('0x1f'),'uri':util[_0x834e('0x20')]('%s/webservice.php',_0xb993a1[_0x834e('0x21')]),'form':{'operation':_0x834e('0x22'),'username':_0xb993a1['username'],'sessionName':_0x1fd2c6[_0x834e('0x23')],'elementType':_0x834e('0x24'),'element':JSON[_0x834e('0x25')](_0x4ab05d)},'json':!![]};return request(_0x4e3f48)['then'](function(_0x24fcf7){if(_0x24fcf7[_0x834e('0x26')]){return BPromise['resolve']({'id':_0x24fcf7['result']['id']});}else{throw new Error(util[_0x834e('0x20')]('Ticket\x20could\x20not\x20be\x20created\x20due\x20to:\x20%s',JSON[_0x834e('0x25')](_0x24fcf7[_0x834e('0x27')])));}})[_0x834e('0x28')](function(_0x2cc2eb){var _0x3cd928=_0x2cc2eb[_0x834e('0x29')]||0x1f4;logger['error']('[vTiger],\x20%s,\x20%s,\x20%s','createTicket',_0x3cd928,JSON['stringify'](_0x2cc2eb));});}function getUser(_0x2c7a8d,_0x567cea,_0x106d6a){if(intUtil['validateEmail'](_0x567cea)){logger[_0x834e('0x19')](_0x834e('0x2a'),_0x567cea);return request({'method':_0x834e('0x2b'),'uri':util[_0x834e('0x20')](_0x834e('0x2c'),_0x2c7a8d[_0x834e('0x21')]),'qs':{'operation':_0x834e('0x2d'),'username':_0x2c7a8d[_0x834e('0x2e')],'sessionName':_0x106d6a[_0x834e('0x23')],'query':util['format'](_0x834e('0x2f'),_0x567cea)},'json':!![]})['then'](function(_0x2c75c2){if(_0x2c75c2[_0x834e('0x26')]&&_0x2c75c2[_0x834e('0x30')][_0x834e('0xd')]){logger[_0x834e('0x19')](_0x834e('0x31'));return BPromise[_0x834e('0x32')]({'id':_0x2c75c2[_0x834e('0x30')][0x0]['id'],'email':_0x2c75c2[_0x834e('0x30')][0x0][_0x834e('0x33')],'name':_0x2c75c2['result'][0x0][_0x834e('0x34')]+'\x20'+_0x2c75c2[_0x834e('0x30')][_0x834e('0x35')]});}else{logger[_0x834e('0x19')]('Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!');return BPromise[_0x834e('0x32')]({'id':_0x106d6a[_0x834e('0x36')],'email':_0x2c7a8d['username'],'name':'admin'});}})['catch'](function(_0x3e58fa){var _0x41bf4d=_0x3e58fa[_0x834e('0x29')]||0x1f4;logger[_0x834e('0x27')](_0x834e('0x37'),_0x834e('0x38'),_0x41bf4d,JSON['stringify'](_0x3e58fa));});}else{logger[_0x834e('0x19')]('Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!');return BPromise[_0x834e('0x32')]({'id':_0x106d6a[_0x834e('0x36')],'email':_0x2c7a8d['username'],'name':_0x834e('0x39')})[_0x834e('0x28')](function(_0x491c28){var _0x481f70=_0x491c28[_0x834e('0x29')]||0x1f4;logger[_0x834e('0x27')](_0x834e('0x37'),_0x834e('0x38'),_0x481f70,JSON[_0x834e('0x25')](_0x491c28));});}}function getEndUser(_0x4ca43c,_0x1c5ed6,_0x548d1d,_0x50c243){logger[_0x834e('0x19')]('Searching\x20end\x20user\x20with\x20phone',_0x548d1d);return request({'method':_0x834e('0x2b'),'uri':util[_0x834e('0x20')](_0x834e('0x2c'),_0x4ca43c[_0x834e('0x21')]),'qs':{'operation':_0x834e('0x2d'),'username':_0x4ca43c['username'],'sessionName':_0x50c243[_0x834e('0x23')],'query':util[_0x834e('0x20')](_0x834e('0x3a'),_0x548d1d,_0x548d1d,_0x548d1d,_0x548d1d,_0x548d1d)},'json':!![]})['then'](function(_0x35380e){if(_0x35380e[_0x834e('0x26')]&&_0x35380e['result'][_0x834e('0xd')]){logger['info'](_0x834e('0x3b'));return BPromise[_0x834e('0x32')]({'id':_0x35380e['result'][0x0]['id'],'name':_0x35380e['result'][0x0][_0x834e('0x3c')]+'\x20'+_0x35380e[_0x834e('0x30')][0x0][_0x834e('0x3d')],'phone':_0x548d1d});}else{logger[_0x834e('0x19')](_0x834e('0x3e'));return request({'method':_0x834e('0x1f'),'uri':util[_0x834e('0x20')]('%s/webservice.php',_0x4ca43c[_0x834e('0x21')]),'form':{'operation':'create','sessionName':_0x50c243[_0x834e('0x23')],'elementType':'Contacts','element':JSON[_0x834e('0x25')]({'lastname':_0x1c5ed6,'phone':_0x548d1d,'assigned_user_id':'\x20'})},'json':!![]})['then'](function(_0x361f60){logger[_0x834e('0x19')]('Enduser\x20created.');return BPromise[_0x834e('0x32')]({'id':_0x361f60[_0x834e('0x30')]['id'],'name':_0x361f60[_0x834e('0x30')][_0x834e('0x3d')],'phone':_0x361f60[_0x834e('0x30')][_0x834e('0x3f')]});})[_0x834e('0x28')](function(_0x3ccd8e){var _0x5dc63b=_0x3ccd8e[_0x834e('0x29')]||0x1f4;logger['error'](_0x834e('0x37'),_0x834e('0x40'),_0x5dc63b,JSON['stringify'](_0x3ccd8e));});}});}function getConnection(_0x112306){var _0x42fd90=_0x112306[_0x834e('0x2e')];var _0x2112d5=_0x112306[_0x834e('0x41')];return request({'method':_0x834e('0x2b'),'uri':util['format']('%s/webservice.php',_0x112306[_0x834e('0x21')]),'qs':{'operation':_0x834e('0x42'),'username':_0x42fd90},'json':!![]})[_0x834e('0x43')](function(_0x40ff5a){if(_0x40ff5a[_0x834e('0x26')]){return request({'method':_0x834e('0x1f'),'uri':util[_0x834e('0x20')](_0x834e('0x2c'),_0x112306[_0x834e('0x21')]),'form':{'operation':_0x834e('0x44'),'username':_0x42fd90,'accessKey':md5(_0x40ff5a[_0x834e('0x30')][_0x834e('0x45')]+_0x2112d5)},'json':!![]});}})[_0x834e('0x43')](function(_0x1a3237){if(_0x1a3237[_0x834e('0x26')]){return BPromise[_0x834e('0x32')](_0x1a3237[_0x834e('0x30')]);}else{throw new Error(util[_0x834e('0x20')](_0x834e('0x46'),_0x112306['id']));}})[_0x834e('0x28')](function(_0x4cfacd){var _0x1cc0b8=_0x4cfacd[_0x834e('0x29')]||0x1f4;logger['error'](_0x834e('0x37'),_0x834e('0x47'),_0x1cc0b8,JSON['stringify'](_0x4cfacd));});}function request(_0x3dcca3){logger[_0x834e('0x19')](_0x834e('0x48'),JSON[_0x834e('0x25')](_0x3dcca3));return rp(_0x3dcca3);}exports[_0x834e('0x49')]=function(_0xb77aab,_0x4549ba,_0x4a8b32,_0x1ad7fe,_0x8bc6c6,_0x3e0550){var _0x363675,_0x86ad2b,_0x396bbe,_0x344b51;_0x3e0550[_0x834e('0x21')]=intUtil['stripTrailingSlash'](_0x3e0550[_0x834e('0x21')]);if(_0x8bc6c6&&_0x8bc6c6['monitor_format']){logger[_0x834e('0x19')]('[QUEUE]',_0x834e('0x4a'));_0x4549ba['recordingURL']=util['format'](_0x834e('0x4b'),_0x3e0550[_0x834e('0x4c')],_0x4549ba['uniqueid'],md5(_0x4549ba['uniqueid']));}else{_0x4549ba[_0x834e('0x4d')]='';}return getConnection(_0x3e0550)[_0x834e('0x43')](function(_0x138ed2){_0x344b51=_0x138ed2;return getUser(_0x3e0550,_0x1ad7fe[_0x834e('0x4e')],_0x344b51);})[_0x834e('0x43')](function(_0x315858){_0x363675=_0x315858;logger[_0x834e('0x19')](_0x834e('0x4f'),_0x363675['id']);return getEndUser(_0x3e0550,_0x4549ba['calleridname'],_0x4549ba[_0x834e('0x50')],_0x344b51);})[_0x834e('0x43')](function(_0x5d5ac2){_0x86ad2b=_0x5d5ac2;logger[_0x834e('0x19')]('The\x20Enduser\x20ID\x20is:',_0x86ad2b['id']);return createTicket(_0x3e0550,_0x363675,_0x86ad2b,_0x4a8b32,_0x4549ba,_0x4a8b32[_0x834e('0x51')],_0x344b51);})[_0x834e('0x43')](function(_0x5160c4){_0x396bbe=_0x5160c4;logger[_0x834e('0x19')](_0x834e('0x52'));logger[_0x834e('0x19')](_0x834e('0x53'),_0x396bbe['id']);var _0x5a2924=util[_0x834e('0x20')](_0x834e('0x54'),_0x3e0550[_0x834e('0x21')],_['split'](_0x396bbe['id'],'x')[0x1]);logger[_0x834e('0x19')](_0x834e('0x55'),_0x834e('0x56'));emit(util[_0x834e('0x20')](_0x834e('0x57'),_0x1ad7fe[_0x834e('0x17')]),_0x834e('0x58'),{'uri':_0x5a2924});})[_0x834e('0x28')](function(_0x208c21){logger[_0x834e('0x27')](_0x834e('0x55'),JSON[_0x834e('0x25')](_0x208c21));});};exports[_0x834e('0x59')]=function(_0x1659c8,_0x460a7a,_0x17b8e3,_0x297cce,_0x14ed83,_0x193a15,_0x3e3467){var _0xed4081,_0x2cb233,_0x5c83eb,_0x2145cf;_0x193a15[_0x834e('0x21')]=intUtil[_0x834e('0x5a')](_0x193a15[_0x834e('0x21')]);_0x193a15['serverUrl']=intUtil[_0x834e('0x5a')](_0x193a15['serverUrl']);if(_0x3e3467&&_0x3e3467['recordingFormat']&&_0x3e3467[_0x834e('0x5b')]!==_0x834e('0x5c')){logger[_0x834e('0x19')](_0x834e('0x5d'),_0x834e('0x4a'));_0x460a7a[_0x834e('0x4d')]=util[_0x834e('0x20')](_0x834e('0x4b'),_0x193a15['serverUrl'],_0x460a7a[_0x834e('0x5e')],md5(_0x460a7a['uniqueid']));}return getConnection(_0x193a15)[_0x834e('0x43')](function(_0xd35dda){_0x2145cf=_0xd35dda;return getUser(_0x193a15,_0x297cce['email'],_0x2145cf);})['then'](function(_0x4a4def){_0xed4081=_0x4a4def;logger[_0x834e('0x19')](_0x834e('0x4f'),_0xed4081['id']);return getEndUser(_0x193a15,_0x460a7a[_0x834e('0x5f')],_0x460a7a[_0x834e('0x60')],_0x2145cf);})['then'](function(_0x2b0d93){_0x2cb233=_0x2b0d93;logger[_0x834e('0x19')](_0x834e('0x61'),_0x2cb233['id']);return createTicket(_0x193a15,_0xed4081,_0x2cb233,_0x17b8e3,_0x460a7a,_0x17b8e3[_0x834e('0x51')],_0x2145cf);})[_0x834e('0x43')](function(_0x28b5c9){_0x5c83eb=_0x28b5c9;logger[_0x834e('0x19')](_0x834e('0x52'));logger[_0x834e('0x19')](_0x834e('0x53'),_0x5c83eb['id']);var _0x5b2bf6=util[_0x834e('0x20')](_0x834e('0x54'),_0x193a15[_0x834e('0x21')],_[_0x834e('0x62')](_0x5c83eb['id'],'x')[0x1]);logger['info'](_0x834e('0x5d'),'Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...');emit(util['format']('user:%s',_0x297cce[_0x834e('0x17')]),_0x834e('0x58'),{'uri':_0x5b2bf6});})['catch'](function(_0x2645df){logger[_0x834e('0x27')]('[OUTBOUND]',JSON[_0x834e('0x25')](_0x2645df));});};exports[_0x834e('0x63')]=function(_0x4b88e7,_0x5df169,_0x346be5,_0x2a42a3,_0x8bc7d9,_0x44c909){var _0x1d8e7,_0x493239,_0x264a6f,_0x520367;_0x44c909[_0x834e('0x21')]=intUtil[_0x834e('0x5a')](_0x44c909[_0x834e('0x21')]);_0x44c909['serverUrl']=intUtil[_0x834e('0x5a')](_0x44c909[_0x834e('0x4c')]);if(_0x8bc7d9&&_0x8bc7d9['monitor_format']){logger[_0x834e('0x19')]('['+_0x5df169[_0x834e('0x64')][_0x834e('0x65')]()+']','Recording\x20is\x20enabled!');_0x5df169[_0x834e('0x4d')]=util[_0x834e('0x20')](_0x834e('0x4b'),_0x44c909[_0x834e('0x4c')],_0x5df169[_0x834e('0x5e')],md5(_0x5df169[_0x834e('0x5e')]));}else{_0x5df169[_0x834e('0x4d')]='';}return getConnection(_0x44c909)[_0x834e('0x43')](function(_0xd49002){_0x520367=_0xd49002;return getUser(_0x44c909,'',_0x520367);})[_0x834e('0x43')](function(_0x57d898){_0x1d8e7=_0x57d898;logger['info']('The\x20User\x20ID\x20is:',_0x1d8e7['id']);return getEndUser(_0x44c909,_0x5df169[_0x834e('0x66')],_0x5df169[_0x834e('0x50')],_0x520367);})[_0x834e('0x43')](function(_0x37fa2c){_0x493239=_0x37fa2c;logger[_0x834e('0x19')]('The\x20Enduser\x20ID\x20is:',_0x493239['id']);return createTicket(_0x44c909,_0x1d8e7,_0x493239,_0x346be5,_0x5df169,_0x346be5['Fields'],_0x520367);})[_0x834e('0x43')](function(_0x1ad428){_0x264a6f=_0x1ad428;logger[_0x834e('0x19')](_0x834e('0x52'));logger[_0x834e('0x19')]('The\x20Ticket\x20ID\x20is:',_0x264a6f['id']);})[_0x834e('0x28')](function(_0x2b162a){logger[_0x834e('0x27')]('['+_0x5df169['lastevent'][_0x834e('0x65')]()+']',JSON[_0x834e('0x25')](_0x2b162a));});};
\ No newline at end of file
+var _0x9c44=['stringify','validateEmail','Getting\x20agent\x20with\x20email','GET','%s/webservice.php','SELECT\x20first_name,\x20last_name,\x20email1\x20FROM\x20Users\x20WHERE\x20email1=\x27%s\x27;','success','length','Agent\x20found!','email1','first_name','last_name','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','userId','getUser','admin','Searching\x20end\x20user\x20with\x20phone','SELECT\x20id,\x20firstname,\x20lastname,\x20email,\x20phone,\x20mobile,\x20homephone,\x20otherphone,\x20assistantphone\x20FROM\x20Contacts\x20WHERE\x20phone\x20=\x20\x27%s\x27\x20OR\x20mobile\x20=\x27%s\x27\x20OR\x20homephone\x20=\x27%s\x27\x20OR\x20otherphone\x20=\x27%s\x27\x20OR\x20assistantphone\x20=\x27%s\x27;','Enduser\x20found!','firstname','lastname','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','Contacts','Enduser\x20created.','phone','getEndUser','accessKey','login','Account\x20%d\x20is\x20not\x20valid','getConnection','[HTTP]','queue','stripTrailingSlash','[QUEUE]','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','serverUrl','uniqueid','recordingURL','email','The\x20User\x20ID\x20is:','calleridname','The\x20Enduser\x20ID\x20is:','Fields','The\x20Ticket\x20ID\x20is:','split','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s','recordingFormat','none','[OUTBOUND]','Recording\x20is\x20enabled!','destcalleridname','destcalleridnum','Ticket\x20created!','%s/index.php?module=HelpDesk&view=Detail&record=%s&app=SUPPORT','trigger:browser:url','unmanaged','monitor_format','toUpperCase','calleridnum','lastevent','bluebird','md5','util','ioredis','./util','../../../../config/environment','redis','localhost','socket.io-emitter','emit','forEach','string','picklist','idField','content','type','variable','variableName','toString','customVariable','Variable','name','toLowerCase','info','Creating\x20new\x20ticket...','merge','Normal','Open','getString','Subjects','POST','remoteUri','create','username','sessionName','then','resolve','result','format','Ticket\x20could\x20not\x20be\x20created\x20due\x20to:\x20%s','catch','statusCode','error','[vTiger],\x20%s,\x20%s,\x20%s'];(function(_0x531ccc,_0x27a697){var _0x19c8d1=function(_0x2586d1){while(--_0x2586d1){_0x531ccc['push'](_0x531ccc['shift']());}};_0x19c8d1(++_0x27a697);}(_0x9c44,0x178));var _0x49c4=function(_0x1035c1,_0x2d8583){_0x1035c1=_0x1035c1-0x0;var _0x308d67=_0x9c44[_0x1035c1];return _0x308d67;};'use strict';var _=require('lodash');var rp=require('request-promise');var BPromise=require(_0x49c4('0x0'));var md5=require(_0x49c4('0x1'));var util=require(_0x49c4('0x2'));var Redis=require(_0x49c4('0x3'));var intUtil=require(_0x49c4('0x4'));var config=require(_0x49c4('0x5'));var logger=require('../../../../config/logger')('vTiger');config[_0x49c4('0x6')]=_['defaults'](config[_0x49c4('0x6')],{'host':_0x49c4('0x7'),'port':0x18eb});var io=require(_0x49c4('0x8'))(new Redis(config[_0x49c4('0x6')]));function emit(_0x436234,_0x511d53,_0x11c586){io['to'](_0x436234)[_0x49c4('0x9')](_0x511d53,_0x11c586);}function getCustomFields(_0x1d13fb,_0x4487ca){var _0x4c7d3a={};if(_0x1d13fb['length']>0x0){_[_0x49c4('0xa')](_0x1d13fb,function(_0x313e73){if(_['includes']([_0x49c4('0xb'),_0x49c4('0xc')],_0x313e73['type'])&&_0x313e73['idField']){_0x4c7d3a[_0x313e73[_0x49c4('0xd')]]=_0x313e73[_0x49c4('0xe')]['toString']();}else if(_0x313e73[_0x49c4('0xf')]===_0x49c4('0x10')&&_0x313e73['variableName']&&_0x313e73[_0x49c4('0xd')]&&_0x4487ca[_0x313e73[_0x49c4('0x11')]]){_0x4c7d3a[_0x313e73[_0x49c4('0xd')]]=_0x4487ca[_0x313e73[_0x49c4('0x11')]][_0x49c4('0x12')]();}else if(_0x313e73[_0x49c4('0xf')]===_0x49c4('0x13')&&_0x313e73[_0x49c4('0x14')]&&_0x313e73['Variable'][_0x49c4('0x15')]&&_0x313e73[_0x49c4('0xd')]&&_0x4487ca[_0x313e73[_0x49c4('0x14')][_0x49c4('0x15')][_0x49c4('0x16')]()]){_0x4c7d3a[_0x313e73['idField']]=_0x4487ca[_0x313e73[_0x49c4('0x14')][_0x49c4('0x15')]['toLowerCase']()]['toString']();}});}return _0x4c7d3a;}function createTicket(_0x3c782d,_0x2f82d5,_0x3addb2,_0x59f29b,_0x24856d,_0x50b151,_0x2cbd50){logger[_0x49c4('0x17')](_0x49c4('0x18'));var _0x291526=_[_0x49c4('0x19')]({'parent_id':'','assigned_user_id':_0x2f82d5['id'],'ticketpriorities':_0x49c4('0x1a'),'ticketstatus':_0x49c4('0x1b'),'ticket_title':intUtil[_0x49c4('0x1c')](_0x59f29b[_0x49c4('0x1d')],_0x24856d,'\x20'),'description':intUtil['getString'](_0x59f29b['Descriptions'],_0x24856d,'\x0a'),'contact_id':_0x3addb2['id']},getCustomFields(_0x50b151,_0x24856d));var _0x57f502={'method':_0x49c4('0x1e'),'uri':util['format']('%s/webservice.php',_0x3c782d[_0x49c4('0x1f')]),'form':{'operation':_0x49c4('0x20'),'username':_0x3c782d[_0x49c4('0x21')],'sessionName':_0x2cbd50[_0x49c4('0x22')],'elementType':'HelpDesk','element':JSON['stringify'](_0x291526)},'json':!![]};return request(_0x57f502)[_0x49c4('0x23')](function(_0x9cb797){if(_0x9cb797['success']){return BPromise[_0x49c4('0x24')]({'id':_0x9cb797[_0x49c4('0x25')]['id']});}else{throw new Error(util[_0x49c4('0x26')](_0x49c4('0x27'),JSON['stringify'](_0x9cb797['error'])));}})[_0x49c4('0x28')](function(_0x53c199){var _0x3800b7=_0x53c199[_0x49c4('0x29')]||0x1f4;logger[_0x49c4('0x2a')](_0x49c4('0x2b'),'createTicket',_0x3800b7,JSON[_0x49c4('0x2c')](_0x53c199));});}function getUser(_0x2b2793,_0x46e04d,_0x4f28a2){if(intUtil[_0x49c4('0x2d')](_0x46e04d)){logger[_0x49c4('0x17')](_0x49c4('0x2e'),_0x46e04d);return request({'method':_0x49c4('0x2f'),'uri':util[_0x49c4('0x26')](_0x49c4('0x30'),_0x2b2793[_0x49c4('0x1f')]),'qs':{'operation':'query','username':_0x2b2793['username'],'sessionName':_0x4f28a2['sessionName'],'query':util[_0x49c4('0x26')](_0x49c4('0x31'),_0x46e04d)},'json':!![]})[_0x49c4('0x23')](function(_0x27e467){if(_0x27e467[_0x49c4('0x32')]&&_0x27e467['result'][_0x49c4('0x33')]){logger[_0x49c4('0x17')](_0x49c4('0x34'));return BPromise[_0x49c4('0x24')]({'id':_0x27e467['result'][0x0]['id'],'email':_0x27e467['result'][0x0][_0x49c4('0x35')],'name':_0x27e467[_0x49c4('0x25')][0x0][_0x49c4('0x36')]+'\x20'+_0x27e467[_0x49c4('0x25')][_0x49c4('0x37')]});}else{logger['info'](_0x49c4('0x38'));return BPromise[_0x49c4('0x24')]({'id':_0x4f28a2[_0x49c4('0x39')],'email':_0x2b2793['username'],'name':'admin'});}})[_0x49c4('0x28')](function(_0x1991e9){var _0x3bec0a=_0x1991e9[_0x49c4('0x29')]||0x1f4;logger[_0x49c4('0x2a')](_0x49c4('0x2b'),_0x49c4('0x3a'),_0x3bec0a,JSON[_0x49c4('0x2c')](_0x1991e9));});}else{logger[_0x49c4('0x17')]('Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!');return BPromise[_0x49c4('0x24')]({'id':_0x4f28a2['userId'],'email':_0x2b2793[_0x49c4('0x21')],'name':_0x49c4('0x3b')})[_0x49c4('0x28')](function(_0x1c2830){var _0x4ed4f8=_0x1c2830[_0x49c4('0x29')]||0x1f4;logger[_0x49c4('0x2a')](_0x49c4('0x2b'),'getUser',_0x4ed4f8,JSON[_0x49c4('0x2c')](_0x1c2830));});}}function getEndUser(_0x21d8c7,_0x178987,_0x5e5366,_0x1ba7a0){logger[_0x49c4('0x17')](_0x49c4('0x3c'),_0x5e5366);return request({'method':_0x49c4('0x2f'),'uri':util[_0x49c4('0x26')](_0x49c4('0x30'),_0x21d8c7[_0x49c4('0x1f')]),'qs':{'operation':'query','username':_0x21d8c7[_0x49c4('0x21')],'sessionName':_0x1ba7a0[_0x49c4('0x22')],'query':util[_0x49c4('0x26')](_0x49c4('0x3d'),_0x5e5366,_0x5e5366,_0x5e5366,_0x5e5366,_0x5e5366)},'json':!![]})[_0x49c4('0x23')](function(_0x29dd5d){if(_0x29dd5d[_0x49c4('0x32')]&&_0x29dd5d[_0x49c4('0x25')][_0x49c4('0x33')]){logger[_0x49c4('0x17')](_0x49c4('0x3e'));return BPromise[_0x49c4('0x24')]({'id':_0x29dd5d[_0x49c4('0x25')][0x0]['id'],'name':_0x29dd5d['result'][0x0][_0x49c4('0x3f')]+'\x20'+_0x29dd5d['result'][0x0][_0x49c4('0x40')],'phone':_0x5e5366});}else{logger[_0x49c4('0x17')](_0x49c4('0x41'));return request({'method':_0x49c4('0x1e'),'uri':util[_0x49c4('0x26')](_0x49c4('0x30'),_0x21d8c7['remoteUri']),'form':{'operation':'create','sessionName':_0x1ba7a0[_0x49c4('0x22')],'elementType':_0x49c4('0x42'),'element':JSON[_0x49c4('0x2c')]({'lastname':_0x178987,'phone':_0x5e5366,'assigned_user_id':'\x20'})},'json':!![]})[_0x49c4('0x23')](function(_0x490823){logger[_0x49c4('0x17')](_0x49c4('0x43'));return BPromise[_0x49c4('0x24')]({'id':_0x490823[_0x49c4('0x25')]['id'],'name':_0x490823[_0x49c4('0x25')][_0x49c4('0x40')],'phone':_0x490823[_0x49c4('0x25')][_0x49c4('0x44')]});})[_0x49c4('0x28')](function(_0x5640d3){var _0x2ad771=_0x5640d3['statusCode']||0x1f4;logger[_0x49c4('0x2a')](_0x49c4('0x2b'),_0x49c4('0x45'),_0x2ad771,JSON[_0x49c4('0x2c')](_0x5640d3));});}});}function getConnection(_0x2d93d8){var _0x5b296d=_0x2d93d8[_0x49c4('0x21')];var _0x15b674=_0x2d93d8[_0x49c4('0x46')];return request({'method':_0x49c4('0x2f'),'uri':util[_0x49c4('0x26')](_0x49c4('0x30'),_0x2d93d8[_0x49c4('0x1f')]),'qs':{'operation':'getchallenge','username':_0x5b296d},'json':!![]})[_0x49c4('0x23')](function(_0x5cfff9){if(_0x5cfff9[_0x49c4('0x32')]){return request({'method':_0x49c4('0x1e'),'uri':util[_0x49c4('0x26')](_0x49c4('0x30'),_0x2d93d8[_0x49c4('0x1f')]),'form':{'operation':_0x49c4('0x47'),'username':_0x5b296d,'accessKey':md5(_0x5cfff9[_0x49c4('0x25')]['token']+_0x15b674)},'json':!![]});}})[_0x49c4('0x23')](function(_0x3feaf0){if(_0x3feaf0['success']){return BPromise[_0x49c4('0x24')](_0x3feaf0[_0x49c4('0x25')]);}else{throw new Error(util[_0x49c4('0x26')](_0x49c4('0x48'),_0x2d93d8['id']));}})['catch'](function(_0x5d8bf0){var _0x144fd2=_0x5d8bf0['statusCode']||0x1f4;logger[_0x49c4('0x2a')](_0x49c4('0x2b'),_0x49c4('0x49'),_0x144fd2,JSON[_0x49c4('0x2c')](_0x5d8bf0));});}function request(_0x240c20){logger[_0x49c4('0x17')](_0x49c4('0x4a'),JSON['stringify'](_0x240c20));return rp(_0x240c20);}exports[_0x49c4('0x4b')]=function(_0x1550ce,_0x3936d3,_0x3d944c,_0x17ef75,_0x2644c0,_0x156748){var _0x25d174,_0x1e0b4f,_0x1856be,_0x5b822f;_0x156748['remoteUri']=intUtil[_0x49c4('0x4c')](_0x156748[_0x49c4('0x1f')]);if(_0x2644c0&&_0x2644c0['monitor_format']){logger['info'](_0x49c4('0x4d'),'Recording\x20is\x20enabled!');_0x3936d3['recordingURL']=util[_0x49c4('0x26')](_0x49c4('0x4e'),_0x156748[_0x49c4('0x4f')],_0x3936d3[_0x49c4('0x50')],md5(_0x3936d3[_0x49c4('0x50')]));}else{_0x3936d3[_0x49c4('0x51')]='';}return getConnection(_0x156748)[_0x49c4('0x23')](function(_0x50798e){_0x5b822f=_0x50798e;return getUser(_0x156748,_0x17ef75[_0x49c4('0x52')],_0x5b822f);})[_0x49c4('0x23')](function(_0x207572){_0x25d174=_0x207572;logger[_0x49c4('0x17')](_0x49c4('0x53'),_0x25d174['id']);return getEndUser(_0x156748,_0x3936d3[_0x49c4('0x54')],_0x3936d3['calleridnum'],_0x5b822f);})['then'](function(_0x1ef0c1){_0x1e0b4f=_0x1ef0c1;logger[_0x49c4('0x17')](_0x49c4('0x55'),_0x1e0b4f['id']);return createTicket(_0x156748,_0x25d174,_0x1e0b4f,_0x3d944c,_0x3936d3,_0x3d944c[_0x49c4('0x56')],_0x5b822f);})[_0x49c4('0x23')](function(_0x6b2592){_0x1856be=_0x6b2592;logger[_0x49c4('0x17')]('Ticket\x20created!');logger[_0x49c4('0x17')](_0x49c4('0x57'),_0x1856be['id']);var _0x4ba4eb=util[_0x49c4('0x26')]('%s/index.php?module=HelpDesk&view=Detail&record=%s&app=SUPPORT',_0x156748[_0x49c4('0x1f')],_[_0x49c4('0x58')](_0x1856be['id'],'x')[0x1]);logger[_0x49c4('0x17')](_0x49c4('0x4d'),_0x49c4('0x59'));emit(util[_0x49c4('0x26')](_0x49c4('0x5a'),_0x17ef75[_0x49c4('0x15')]),'trigger:browser:url',{'uri':_0x4ba4eb});})[_0x49c4('0x28')](function(_0x27b9c2){logger['error'](_0x49c4('0x4d'),JSON[_0x49c4('0x2c')](_0x27b9c2));});};exports['outbound']=function(_0x39c455,_0x42e0e6,_0x4f50bf,_0x4dc54d,_0x589484,_0x513879,_0xc43386){var _0x54947d,_0xb20a5d,_0x32f344,_0x515240;_0x513879[_0x49c4('0x1f')]=intUtil[_0x49c4('0x4c')](_0x513879['remoteUri']);_0x513879[_0x49c4('0x4f')]=intUtil[_0x49c4('0x4c')](_0x513879[_0x49c4('0x4f')]);if(_0xc43386&&_0xc43386[_0x49c4('0x5b')]&&_0xc43386['recordingFormat']!==_0x49c4('0x5c')){logger[_0x49c4('0x17')](_0x49c4('0x5d'),_0x49c4('0x5e'));_0x42e0e6['recordingURL']=util[_0x49c4('0x26')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x513879['serverUrl'],_0x42e0e6['uniqueid'],md5(_0x42e0e6['uniqueid']));}return getConnection(_0x513879)[_0x49c4('0x23')](function(_0x32eaef){_0x515240=_0x32eaef;return getUser(_0x513879,_0x4dc54d[_0x49c4('0x52')],_0x515240);})[_0x49c4('0x23')](function(_0x5b056e){_0x54947d=_0x5b056e;logger['info'](_0x49c4('0x53'),_0x54947d['id']);return getEndUser(_0x513879,_0x42e0e6[_0x49c4('0x5f')],_0x42e0e6[_0x49c4('0x60')],_0x515240);})[_0x49c4('0x23')](function(_0x102c15){_0xb20a5d=_0x102c15;logger[_0x49c4('0x17')](_0x49c4('0x55'),_0xb20a5d['id']);return createTicket(_0x513879,_0x54947d,_0xb20a5d,_0x4f50bf,_0x42e0e6,_0x4f50bf[_0x49c4('0x56')],_0x515240);})['then'](function(_0x2276db){_0x32f344=_0x2276db;logger['info'](_0x49c4('0x61'));logger[_0x49c4('0x17')](_0x49c4('0x57'),_0x32f344['id']);var _0x1ea1b4=util[_0x49c4('0x26')](_0x49c4('0x62'),_0x513879[_0x49c4('0x1f')],_[_0x49c4('0x58')](_0x32f344['id'],'x')[0x1]);logger[_0x49c4('0x17')](_0x49c4('0x5d'),_0x49c4('0x59'));emit(util[_0x49c4('0x26')](_0x49c4('0x5a'),_0x4dc54d[_0x49c4('0x15')]),_0x49c4('0x63'),{'uri':_0x1ea1b4});})[_0x49c4('0x28')](function(_0x371e49){logger[_0x49c4('0x2a')]('[OUTBOUND]',JSON['stringify'](_0x371e49));});};exports[_0x49c4('0x64')]=function(_0x16b3e8,_0x4af680,_0x1a15f3,_0x38ad50,_0x2939fd,_0x16e7b1){var _0x4d6aaa,_0x5a14a5,_0x4a85d4,_0x2e90d8;_0x16e7b1[_0x49c4('0x1f')]=intUtil[_0x49c4('0x4c')](_0x16e7b1[_0x49c4('0x1f')]);_0x16e7b1[_0x49c4('0x4f')]=intUtil[_0x49c4('0x4c')](_0x16e7b1[_0x49c4('0x4f')]);if(_0x2939fd&&_0x2939fd[_0x49c4('0x65')]){logger[_0x49c4('0x17')]('['+_0x4af680['lastevent'][_0x49c4('0x66')]()+']',_0x49c4('0x5e'));_0x4af680[_0x49c4('0x51')]=util['format'](_0x49c4('0x4e'),_0x16e7b1[_0x49c4('0x4f')],_0x4af680[_0x49c4('0x50')],md5(_0x4af680[_0x49c4('0x50')]));}else{_0x4af680[_0x49c4('0x51')]='';}return getConnection(_0x16e7b1)[_0x49c4('0x23')](function(_0x35fa39){_0x2e90d8=_0x35fa39;return getUser(_0x16e7b1,'',_0x2e90d8);})[_0x49c4('0x23')](function(_0x4ba198){_0x4d6aaa=_0x4ba198;logger[_0x49c4('0x17')](_0x49c4('0x53'),_0x4d6aaa['id']);return getEndUser(_0x16e7b1,_0x4af680[_0x49c4('0x54')],_0x4af680[_0x49c4('0x67')],_0x2e90d8);})[_0x49c4('0x23')](function(_0x4a204d){_0x5a14a5=_0x4a204d;logger['info'](_0x49c4('0x55'),_0x5a14a5['id']);return createTicket(_0x16e7b1,_0x4d6aaa,_0x5a14a5,_0x1a15f3,_0x4af680,_0x1a15f3['Fields'],_0x2e90d8);})[_0x49c4('0x23')](function(_0x558880){_0x4a85d4=_0x558880;logger[_0x49c4('0x17')](_0x49c4('0x61'));logger[_0x49c4('0x17')](_0x49c4('0x57'),_0x4a85d4['id']);})['catch'](function(_0x123060){logger[_0x49c4('0x2a')]('['+_0x4af680[_0x49c4('0x68')][_0x49c4('0x66')]()+']',JSON[_0x49c4('0x2c')](_0x123060));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x299c=['destcalleridname','destcalleridnum','newTab','user:%s','replace','Zendesk\x20account\x20type\x20not\x20recognized','[OUTBOUND]\x20Error\x20running\x20Zendesk\x20integration','unmanaged','lastevent','Recording\x20is\x20enabled!','request-promise','md5','util','ioredis','./util','../../../../config/environment','zendesk','redis','defaults','localhost','emit','application/json','info','Creating\x20new\x20ticket...','format','%s/tickets.json','POST','merge','Tags','name','getString','Subjects','Descriptions','then','Ticket\x20created!','ticket','validateEmail','Getting\x20agent\x20with\x20email','%s/search.json','remoteUri','type:user\x20role:agent\x20email:%s','Agent\x20found!','find','results','agent','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','Admin\x20account\x20selected.','user','%s/users/me.json','Searching\x20enduser\x20with\x20phone','length','filter','end-user','Caller\x20-\x20%s','Enduser\x20created.','authType','password','token','%s/token:%s','username','Basic\x20%s','toString','base64','debug','[HTTP]','GET','map','forEach','includes','string','picklist','type','nameField','customField','content','idField','custom_fields','push','variable','variableName','customVariable','Variable','toLowerCase','serverUrl','stripTrailingSlash','monitor_format','[QUEUE]','recordingURL','%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s','uniqueid','Authorization','The\x20User\x20ID\x20is:','calleridname','calleridnum','The\x20Enduser\x20ID\x20is:','The\x20Ticket\x20ID\x20is:','integrationTab','Displaying\x20ticket\x20to\x20agent...','%s/channels/voice/agents/%d/tickets/%d/display.json','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','trigger:browser:url','%s/agent/tickets/%s','/api/v2','error','catch','[QUEUE]\x20Error\x20running\x20Zendesk\x20integration','inspect','outbound','[OUTBOUND]','email'];(function(_0x1dbf73,_0x4096b7){var _0x5b15eb=function(_0x3ea999){while(--_0x3ea999){_0x1dbf73['push'](_0x1dbf73['shift']());}};_0x5b15eb(++_0x4096b7);}(_0x299c,0x1c2));var _0xc299=function(_0x386187,_0x1ad2ac){_0x386187=_0x386187-0x0;var _0x4abeaa=_0x299c[_0x386187];return _0x4abeaa;};'use strict';var _=require('lodash');var rp=require(_0xc299('0x0'));var md5=require(_0xc299('0x1'));var util=require(_0xc299('0x2'));var Redis=require(_0xc299('0x3'));var intUtil=require(_0xc299('0x4'));var config=require(_0xc299('0x5'));var logger=require('../../../../config/logger')(_0xc299('0x6'));config[_0xc299('0x7')]=_[_0xc299('0x8')](config[_0xc299('0x7')],{'host':_0xc299('0x9'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0xc299('0x7')]));function emit(_0x4b72f8,_0x20d6cf,_0xfde1){io['to'](_0x4b72f8)[_0xc299('0xa')](_0x20d6cf,_0xfde1);}var headers={'Content-Type':_0xc299('0xb'),'Accept':_0xc299('0xb')};function getTicket(_0x23d6af,_0x47bb88,_0x7ab343,_0x2b68b6,_0x377077){logger[_0xc299('0xc')](_0xc299('0xd'));return request({'uri':util[_0xc299('0xe')](_0xc299('0xf'),_0x23d6af['remoteUri']),'method':_0xc299('0x10'),'body':{'ticket':_[_0xc299('0x11')]({'requester_id':_0x7ab343['id'],'submitter_id':_0x47bb88?_0x47bb88['id']:undefined,'assignee_id':_0x47bb88?_0x47bb88['id']:undefined,'tags':getTags(_0x2b68b6[_0xc299('0x12')],_0xc299('0x13')),'subject':intUtil[_0xc299('0x14')](_0x2b68b6[_0xc299('0x15')],_0x377077,'\x20'),'description':intUtil[_0xc299('0x14')](_0x2b68b6['Descriptions'],_0x377077,'\x0a'),'comment':{'public':![],'body':intUtil[_0xc299('0x14')](_0x2b68b6[_0xc299('0x16')],_0x377077,'\x0a')}},getCustomFields(_0x2b68b6['Fields'],_0x377077))}})[_0xc299('0x17')](function(_0x17d326){logger[_0xc299('0xc')](_0xc299('0x18'));return _0x17d326[_0xc299('0x19')];});}function getUser(_0xfdd30,_0x5f1557){if(intUtil[_0xc299('0x1a')](_0x5f1557)){logger[_0xc299('0xc')](_0xc299('0x1b'),_0x5f1557);return request({'uri':util[_0xc299('0xe')](_0xc299('0x1c'),_0xfdd30[_0xc299('0x1d')]),'qs':{'query':util[_0xc299('0xe')](_0xc299('0x1e'),_0x5f1557)}})[_0xc299('0x17')](function(_0x1c8931){if(_0x1c8931['count']){logger[_0xc299('0xc')](_0xc299('0x1f'));return _[_0xc299('0x20')](_0x1c8931[_0xc299('0x21')],{'email':_0x5f1557,'role':_0xc299('0x22')});}else{logger['info'](_0xc299('0x23'));return request({'uri':util['format']('%s/users/me.json',_0xfdd30[_0xc299('0x1d')])})['then'](function(_0x538adf){logger[_0xc299('0xc')](_0xc299('0x24'));return _0x538adf[_0xc299('0x25')];});}});}else{logger[_0xc299('0xc')]('Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!');return request({'uri':util[_0xc299('0xe')](_0xc299('0x26'),_0xfdd30[_0xc299('0x1d')])})[_0xc299('0x17')](function(_0x42db79){logger[_0xc299('0xc')](_0xc299('0x24'));return _0x42db79[_0xc299('0x25')];});}}function getEndUser(_0x5163af,_0x1a42eb,_0x1bb47d){logger[_0xc299('0xc')](_0xc299('0x27'),_0x1bb47d);return request({'uri':util[_0xc299('0xe')](_0xc299('0x1c'),_0x5163af[_0xc299('0x1d')]),'qs':{'query':util[_0xc299('0xe')]('type:user\x20role:end-user\x20phone:%s',_0x1bb47d)}})[_0xc299('0x17')](function(_0x5d15d6){var _0x49ba9c;if(_0x5d15d6[_0xc299('0x21')][_0xc299('0x28')]){_0x5d15d6[_0xc299('0x21')]=_[_0xc299('0x29')](_0x5d15d6[_0xc299('0x21')],{'suspended':![],'role':'end-user'});if(_0x5d15d6[_0xc299('0x21')][_0xc299('0x28')]){_0x49ba9c=_['first'](_0x5d15d6[_0xc299('0x21')]);}}if(_0x49ba9c){logger[_0xc299('0xc')]('Enduser\x20found!');return _0x49ba9c;}else{logger[_0xc299('0xc')]('Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!');return request({'uri':util[_0xc299('0xe')]('%s/users.json',_0x5163af[_0xc299('0x1d')]),'method':'POST','body':{'user':{'role':_0xc299('0x2a'),'name':util[_0xc299('0xe')](_0xc299('0x2b'),_0x1a42eb||_0x1bb47d),'phone':_0x1bb47d}}})[_0xc299('0x17')](function(_0x3e1b30){logger[_0xc299('0xc')](_0xc299('0x2c'));return _0x3e1b30[_0xc299('0x25')];});}});}function getAuth(_0x32aa02){var _0x344014;if(_0x32aa02[_0xc299('0x2d')]==='password'){_0x344014=util[_0xc299('0xe')]('%s:%s',_0x32aa02['username'],_0x32aa02[_0xc299('0x2e')]);}else if(_0x32aa02['authType']===_0xc299('0x2f')){_0x344014=util[_0xc299('0xe')](_0xc299('0x30'),_0x32aa02[_0xc299('0x31')],_0x32aa02[_0xc299('0x2f')]);}return util[_0xc299('0xe')](_0xc299('0x32'),new Buffer(_0x344014)[_0xc299('0x33')](_0xc299('0x34')));}function request(_0x45302b){logger[_0xc299('0x35')](_0xc299('0x36'),JSON['stringify'](_0x45302b));return rp(_['defaults'](_0x45302b,{'method':_0xc299('0x37'),'headers':headers,'json':!![]}));}function getTags(_0x57872e,_0x26950e){var _0x48e6d0=[];if(_0x57872e&&_0x57872e['length']>0x0){_0x48e6d0=_[_0xc299('0x38')](_0x57872e,_0x26950e);}return _0x48e6d0;}function getCustomFields(_0x59ddbf,_0x5c3920){var _0x8f9746=[];var _0x1186b9={'custom_fields':[]};if(_0x59ddbf[_0xc299('0x28')]>0x0){_[_0xc299('0x39')](_0x59ddbf,function(_0x3b3539){if(_[_0xc299('0x3a')]([_0xc299('0x3b'),_0xc299('0x3c')],_0x3b3539[_0xc299('0x3d')])&&_0x3b3539[_0xc299('0x3e')]&&!_0x3b3539[_0xc299('0x3f')]){_0x1186b9[_0x3b3539[_0xc299('0x3e')]['toLowerCase']()]=_0x3b3539[_0xc299('0x40')][_0xc299('0x33')]();}else if(_['includes'](['string','picklist'],_0x3b3539[_0xc299('0x3d')])&&_0x3b3539[_0xc299('0x41')]&&_0x3b3539[_0xc299('0x3f')]){_0x1186b9[_0xc299('0x42')][_0xc299('0x43')]({'id':_0x3b3539[_0xc299('0x41')],'value':_0x3b3539[_0xc299('0x40')][_0xc299('0x33')]()});}else if(_0x3b3539['type']===_0xc299('0x44')&&_0x3b3539[_0xc299('0x45')]&&_0x3b3539[_0xc299('0x41')]&&_0x3b3539['customField']){_0x5c3920[_0x3b3539['variableName']]&&_0x1186b9[_0xc299('0x42')][_0xc299('0x43')]({'id':_0x3b3539[_0xc299('0x41')],'value':_0x5c3920[_0x3b3539[_0xc299('0x45')]][_0xc299('0x33')]()});}else if(_0x3b3539[_0xc299('0x3d')]===_0xc299('0x46')&&_0x3b3539['Variable']&&_0x3b3539[_0xc299('0x47')][_0xc299('0x13')]&&_0x3b3539[_0xc299('0x41')]&&_0x3b3539[_0xc299('0x3f')]){_0x5c3920[_0x3b3539[_0xc299('0x47')][_0xc299('0x13')][_0xc299('0x48')]()]&&_0x1186b9[_0xc299('0x42')]['push']({'id':_0x3b3539[_0xc299('0x41')],'value':_0x5c3920[_0x3b3539[_0xc299('0x47')][_0xc299('0x13')][_0xc299('0x48')]()]['toString']()});}});}return _0x1186b9;}exports['queue']=function(_0x55b7e5,_0x1dcd69,_0x4bbbc0,_0x33c844,_0x3c76d1,_0x26cc5d){var _0x1296d1,_0x4ff679;_0x26cc5d['remoteUri']=intUtil['stripTrailingSlash'](_0x26cc5d[_0xc299('0x1d')]);_0x26cc5d[_0xc299('0x49')]=intUtil[_0xc299('0x4a')](_0x26cc5d[_0xc299('0x49')]);if(_0x3c76d1&&_0x3c76d1[_0xc299('0x4b')]){logger[_0xc299('0xc')](_0xc299('0x4c'),'Recording\x20is\x20enabled!');_0x1dcd69[_0xc299('0x4d')]=util['format'](_0xc299('0x4e'),_0x26cc5d[_0xc299('0x49')],_0x1dcd69['uniqueid'],md5(_0x1dcd69[_0xc299('0x4f')]));}else{_0x1dcd69[_0xc299('0x4d')]='';}headers[_0xc299('0x50')]=getAuth(_0x26cc5d);return getUser(_0x26cc5d,_0x33c844['email'])['then'](function(_0x2e8ab8){_0x1296d1=_0x2e8ab8;logger[_0xc299('0xc')](_0xc299('0x51'),_0x1296d1['id']);return getEndUser(_0x26cc5d,_0x1dcd69[_0xc299('0x52')],_0x1dcd69[_0xc299('0x53')]);})[_0xc299('0x17')](function(_0x7019bf){_0x4ff679=_0x7019bf;logger['info'](_0xc299('0x54'),_0x4ff679['id']);return getTicket(_0x26cc5d,_0x1296d1,_0x4ff679,_0x4bbbc0,_0x1dcd69);})['then'](function(_0x53211e){if(_0x53211e){logger[_0xc299('0xc')](_0xc299('0x55'),_0x53211e['id']);switch(_0x26cc5d[_0xc299('0x3d')]){case _0xc299('0x56'):logger[_0xc299('0xc')]('[QUEUE]',_0xc299('0x57'));return request({'uri':util[_0xc299('0xe')](_0xc299('0x58'),_0x26cc5d['remoteUri'],_0x1296d1['id'],_0x53211e['id']),'method':_0xc299('0x10')});case'newTab':logger[_0xc299('0xc')](_0xc299('0x4c'),_0xc299('0x59'));emit(util['format']('user:%s',_0x33c844[_0xc299('0x13')]),_0xc299('0x5a'),{'uri':util[_0xc299('0xe')](_0xc299('0x5b'),_0x26cc5d[_0xc299('0x1d')]['replace'](_0xc299('0x5c'),''),_0x53211e['id'])});break;default:logger[_0xc299('0x5d')](_0xc299('0x4c'),'Zendesk\x20account\x20type\x20not\x20recognized');}}})[_0xc299('0x5e')](function(_0x2276a0){logger[_0xc299('0x5d')](_0xc299('0x5f'),util[_0xc299('0x60')](_0x2276a0,{'showHidden':!![],'depth':null}));});};exports[_0xc299('0x61')]=function(_0x3ed617,_0x3176d9,_0x5b5920,_0x21b0ee,_0x190e4e,_0x311775,_0x58e55e){var _0x26d347,_0x379e4c;_0x311775[_0xc299('0x1d')]=intUtil[_0xc299('0x4a')](_0x311775[_0xc299('0x1d')]);_0x311775[_0xc299('0x49')]=intUtil[_0xc299('0x4a')](_0x311775[_0xc299('0x49')]);if(_0x58e55e&&_0x58e55e['recordingFormat']&&_0x58e55e['recordingFormat']!=='none'){logger[_0xc299('0xc')](_0xc299('0x62'),'Recording\x20is\x20enabled!');_0x3176d9[_0xc299('0x4d')]=util['format'](_0xc299('0x4e'),_0x311775[_0xc299('0x49')],_0x3176d9['uniqueid'],md5(_0x3176d9[_0xc299('0x4f')]));}headers[_0xc299('0x50')]=getAuth(_0x311775);return getUser(_0x311775,_0x21b0ee[_0xc299('0x63')])[_0xc299('0x17')](function(_0xf8034e){_0x26d347=_0xf8034e;logger['info']('The\x20User\x20ID\x20is:',_0x26d347['id']);return getEndUser(_0x311775,_0x3176d9[_0xc299('0x64')],_0x3176d9[_0xc299('0x65')]);})['then'](function(_0x1dd181){_0x379e4c=_0x1dd181;logger[_0xc299('0xc')](_0xc299('0x54'),_0x379e4c['id']);return getTicket(_0x311775,_0x26d347,_0x379e4c,_0x5b5920,_0x3176d9);})[_0xc299('0x17')](function(_0x32b64b){if(_0x32b64b){logger[_0xc299('0xc')](_0xc299('0x55'),_0x32b64b['id']);switch(_0x311775[_0xc299('0x3d')]){case _0xc299('0x56'):logger[_0xc299('0xc')]('[OUTBOUND]',_0xc299('0x57'));return request({'uri':util[_0xc299('0xe')]('%s/channels/voice/agents/%d/tickets/%d/display.json',_0x311775[_0xc299('0x1d')],_0x26d347['id'],_0x32b64b['id']),'method':_0xc299('0x10')});case _0xc299('0x66'):logger[_0xc299('0xc')](_0xc299('0x62'),_0xc299('0x59'));emit(util['format'](_0xc299('0x67'),_0x21b0ee[_0xc299('0x13')]),_0xc299('0x5a'),{'uri':util[_0xc299('0xe')](_0xc299('0x5b'),_0x311775[_0xc299('0x1d')][_0xc299('0x68')](_0xc299('0x5c'),''),_0x32b64b['id'])});break;default:logger[_0xc299('0x5d')](_0xc299('0x62'),_0xc299('0x69'));}}})[_0xc299('0x5e')](function(_0x1e2ce6){logger[_0xc299('0x5d')](_0xc299('0x6a'),util[_0xc299('0x60')](_0x1e2ce6,{'showHidden':!![],'depth':null}));});};exports[_0xc299('0x6b')]=function(_0x132dae,_0x5c1bca,_0x57e423,_0x22c048,_0x572555,_0x483762){var _0x2d1918,_0x570e45;_0x483762['remoteUri']=intUtil['stripTrailingSlash'](_0x483762[_0xc299('0x1d')]);_0x483762[_0xc299('0x49')]=intUtil[_0xc299('0x4a')](_0x483762[_0xc299('0x49')]);if(_0x572555&&_0x572555[_0xc299('0x4b')]){logger[_0xc299('0xc')]('['+_0x5c1bca[_0xc299('0x6c')]['toUpperCase']()+']',_0xc299('0x6d'));_0x5c1bca[_0xc299('0x4d')]=util[_0xc299('0xe')](_0xc299('0x4e'),_0x483762[_0xc299('0x49')],_0x5c1bca['uniqueid'],md5(_0x5c1bca[_0xc299('0x4f')]));}else{_0x5c1bca[_0xc299('0x4d')]='';}headers[_0xc299('0x50')]=getAuth(_0x483762);return getUser(_0x483762)[_0xc299('0x17')](function(_0x38e9f9){_0x2d1918=_0x38e9f9;logger['info']('The\x20User\x20ID\x20is:',_0x2d1918['id']);return getEndUser(_0x483762,_0x5c1bca[_0xc299('0x52')],_0x5c1bca[_0xc299('0x53')]);})[_0xc299('0x17')](function(_0x4b960f){_0x570e45=_0x4b960f;logger[_0xc299('0xc')](_0xc299('0x54'),_0x570e45['id']);return getTicket(_0x483762,_0x2d1918,_0x570e45,_0x57e423,_0x5c1bca);})[_0xc299('0x17')](function(_0x237845){if(_0x237845){logger['info'](_0xc299('0x55'),_0x237845['id']);}})['catch'](function(_0x5b5d4f){logger[_0xc299('0x5d')]('['+_0x5c1bca[_0xc299('0x6c')]['toUpperCase']()+']'+'\x20Error\x20running\x20Zendesk\x20integration',util[_0xc299('0x60')](_0x5b5d4f,{'showHidden':!![],'depth':null}));});};
\ No newline at end of file
+var _0xa19b=['Descriptions','Fields','then','info','Ticket\x20created!','validateEmail','Getting\x20agent\x20with\x20email','%s/search.json','type:user\x20role:agent\x20email:%s','count','Agent\x20found!','results','%s/users/me.json','remoteUri','Admin\x20account\x20selected.','Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!','user','Searching\x20enduser\x20with\x20phone','type:user\x20role:end-user\x20phone:%s','length','filter','first','Enduser\x20found!','Enduser\x20not\x20found,\x20creating\x20a\x20new\x20enduser!','%s/users.json','end-user','Enduser\x20created.','authType','%s:%s','username','token','%s/token:%s','toString','debug','[HTTP]','stringify','GET','map','forEach','includes','string','picklist','nameField','toLowerCase','content','idField','push','type','variable','variableName','customField','custom_fields','customVariable','Variable','queue','stripTrailingSlash','serverUrl','monitor_format','Recording\x20is\x20enabled!','uniqueid','recordingURL','Authorization','email','The\x20User\x20ID\x20is:','calleridname','calleridnum','The\x20Ticket\x20ID\x20is:','integrationTab','[QUEUE]','newTab','Displaying\x20ticket\x20to\x20agent\x20in\x20a\x20new\x20tab...','trigger:browser:url','replace','/api/v2','error','catch','[QUEUE]\x20Error\x20running\x20Zendesk\x20integration','inspect','outbound','recordingFormat','none','[OUTBOUND]','destcalleridname','destcalleridnum','The\x20Enduser\x20ID\x20is:','Displaying\x20ticket\x20to\x20agent...','user:%s','%s/agent/tickets/%s','Zendesk\x20account\x20type\x20not\x20recognized','[OUTBOUND]\x20Error\x20running\x20Zendesk\x20integration','unmanaged','toUpperCase','lastevent','\x20Error\x20running\x20Zendesk\x20integration','lodash','request-promise','md5','util','ioredis','./util','../../../../config/environment','../../../../config/logger','zendesk','redis','defaults','localhost','socket.io-emitter','application/json','Creating\x20new\x20ticket...','format','%s/tickets.json','POST','merge','Tags','name','Subjects'];(function(_0x4d0f4a,_0x16d439){var _0x73fb57=function(_0x1ad42b){while(--_0x1ad42b){_0x4d0f4a['push'](_0x4d0f4a['shift']());}};_0x73fb57(++_0x16d439);}(_0xa19b,0x146));var _0xba19=function(_0x3947c9,_0x4d6c97){_0x3947c9=_0x3947c9-0x0;var _0x2e7871=_0xa19b[_0x3947c9];return _0x2e7871;};'use strict';var _=require(_0xba19('0x0'));var rp=require(_0xba19('0x1'));var md5=require(_0xba19('0x2'));var util=require(_0xba19('0x3'));var Redis=require(_0xba19('0x4'));var intUtil=require(_0xba19('0x5'));var config=require(_0xba19('0x6'));var logger=require(_0xba19('0x7'))(_0xba19('0x8'));config[_0xba19('0x9')]=_[_0xba19('0xa')](config['redis'],{'host':_0xba19('0xb'),'port':0x18eb});var io=require(_0xba19('0xc'))(new Redis(config[_0xba19('0x9')]));function emit(_0x2c2ee2,_0x5ea2bb,_0x36d8c6){io['to'](_0x2c2ee2)['emit'](_0x5ea2bb,_0x36d8c6);}var headers={'Content-Type':'application/json','Accept':_0xba19('0xd')};function getTicket(_0x41d54d,_0x38c22f,_0x3c5791,_0x431776,_0x4a962f){logger['info'](_0xba19('0xe'));return request({'uri':util[_0xba19('0xf')](_0xba19('0x10'),_0x41d54d['remoteUri']),'method':_0xba19('0x11'),'body':{'ticket':_[_0xba19('0x12')]({'requester_id':_0x3c5791['id'],'submitter_id':_0x38c22f?_0x38c22f['id']:undefined,'assignee_id':_0x38c22f?_0x38c22f['id']:undefined,'tags':getTags(_0x431776[_0xba19('0x13')],_0xba19('0x14')),'subject':intUtil['getString'](_0x431776[_0xba19('0x15')],_0x4a962f,'\x20'),'description':intUtil['getString'](_0x431776[_0xba19('0x16')],_0x4a962f,'\x0a'),'comment':{'public':![],'body':intUtil['getString'](_0x431776[_0xba19('0x16')],_0x4a962f,'\x0a')}},getCustomFields(_0x431776[_0xba19('0x17')],_0x4a962f))}})[_0xba19('0x18')](function(_0x449df6){logger[_0xba19('0x19')](_0xba19('0x1a'));return _0x449df6['ticket'];});}function getUser(_0x45e0eb,_0xe9e3af){if(intUtil[_0xba19('0x1b')](_0xe9e3af)){logger[_0xba19('0x19')](_0xba19('0x1c'),_0xe9e3af);return request({'uri':util[_0xba19('0xf')](_0xba19('0x1d'),_0x45e0eb['remoteUri']),'qs':{'query':util[_0xba19('0xf')](_0xba19('0x1e'),_0xe9e3af)}})['then'](function(_0x1f48d6){if(_0x1f48d6[_0xba19('0x1f')]){logger['info'](_0xba19('0x20'));return _['find'](_0x1f48d6[_0xba19('0x21')],{'email':_0xe9e3af,'role':'agent'});}else{logger[_0xba19('0x19')]('Agent\x20not\x20found,\x20using\x20the\x20admin\x20account!');return request({'uri':util[_0xba19('0xf')](_0xba19('0x22'),_0x45e0eb[_0xba19('0x23')])})[_0xba19('0x18')](function(_0x5177d7){logger[_0xba19('0x19')](_0xba19('0x24'));return _0x5177d7['user'];});}});}else{logger[_0xba19('0x19')](_0xba19('0x25'));return request({'uri':util['format'](_0xba19('0x22'),_0x45e0eb[_0xba19('0x23')])})[_0xba19('0x18')](function(_0x5436f5){logger[_0xba19('0x19')](_0xba19('0x24'));return _0x5436f5[_0xba19('0x26')];});}}function getEndUser(_0x1034d6,_0x4bbf19,_0x85bdee){logger[_0xba19('0x19')](_0xba19('0x27'),_0x85bdee);return request({'uri':util[_0xba19('0xf')](_0xba19('0x1d'),_0x1034d6[_0xba19('0x23')]),'qs':{'query':util[_0xba19('0xf')](_0xba19('0x28'),_0x85bdee)}})[_0xba19('0x18')](function(_0xa9615){var _0x578b78;if(_0xa9615[_0xba19('0x21')][_0xba19('0x29')]){_0xa9615[_0xba19('0x21')]=_[_0xba19('0x2a')](_0xa9615[_0xba19('0x21')],{'suspended':![],'role':'end-user'});if(_0xa9615[_0xba19('0x21')][_0xba19('0x29')]){_0x578b78=_[_0xba19('0x2b')](_0xa9615['results']);}}if(_0x578b78){logger[_0xba19('0x19')](_0xba19('0x2c'));return _0x578b78;}else{logger[_0xba19('0x19')](_0xba19('0x2d'));return request({'uri':util[_0xba19('0xf')](_0xba19('0x2e'),_0x1034d6['remoteUri']),'method':_0xba19('0x11'),'body':{'user':{'role':_0xba19('0x2f'),'name':util['format']('Caller\x20-\x20%s',_0x4bbf19||_0x85bdee),'phone':_0x85bdee}}})['then'](function(_0x464cf0){logger[_0xba19('0x19')](_0xba19('0x30'));return _0x464cf0[_0xba19('0x26')];});}});}function getAuth(_0x199bfc){var _0x1d3ffd;if(_0x199bfc[_0xba19('0x31')]==='password'){_0x1d3ffd=util['format'](_0xba19('0x32'),_0x199bfc[_0xba19('0x33')],_0x199bfc['password']);}else if(_0x199bfc['authType']===_0xba19('0x34')){_0x1d3ffd=util[_0xba19('0xf')](_0xba19('0x35'),_0x199bfc[_0xba19('0x33')],_0x199bfc[_0xba19('0x34')]);}return util['format']('Basic\x20%s',new Buffer(_0x1d3ffd)[_0xba19('0x36')]('base64'));}function request(_0x4571d7){logger[_0xba19('0x37')](_0xba19('0x38'),JSON[_0xba19('0x39')](_0x4571d7));return rp(_[_0xba19('0xa')](_0x4571d7,{'method':_0xba19('0x3a'),'headers':headers,'json':!![]}));}function getTags(_0x16adde,_0x1ac764){var _0x1ffe7e=[];if(_0x16adde&&_0x16adde[_0xba19('0x29')]>0x0){_0x1ffe7e=_[_0xba19('0x3b')](_0x16adde,_0x1ac764);}return _0x1ffe7e;}function getCustomFields(_0x44943d,_0x1748e8){var _0x3a880f=[];var _0x13a06d={'custom_fields':[]};if(_0x44943d['length']>0x0){_[_0xba19('0x3c')](_0x44943d,function(_0x3cf402){if(_[_0xba19('0x3d')]([_0xba19('0x3e'),_0xba19('0x3f')],_0x3cf402['type'])&&_0x3cf402[_0xba19('0x40')]&&!_0x3cf402['customField']){_0x13a06d[_0x3cf402[_0xba19('0x40')][_0xba19('0x41')]()]=_0x3cf402[_0xba19('0x42')]['toString']();}else if(_['includes']([_0xba19('0x3e'),_0xba19('0x3f')],_0x3cf402['type'])&&_0x3cf402[_0xba19('0x43')]&&_0x3cf402['customField']){_0x13a06d['custom_fields'][_0xba19('0x44')]({'id':_0x3cf402[_0xba19('0x43')],'value':_0x3cf402[_0xba19('0x42')][_0xba19('0x36')]()});}else if(_0x3cf402[_0xba19('0x45')]===_0xba19('0x46')&&_0x3cf402[_0xba19('0x47')]&&_0x3cf402[_0xba19('0x43')]&&_0x3cf402[_0xba19('0x48')]){_0x1748e8[_0x3cf402['variableName']]&&_0x13a06d[_0xba19('0x49')][_0xba19('0x44')]({'id':_0x3cf402[_0xba19('0x43')],'value':_0x1748e8[_0x3cf402[_0xba19('0x47')]][_0xba19('0x36')]()});}else if(_0x3cf402[_0xba19('0x45')]===_0xba19('0x4a')&&_0x3cf402[_0xba19('0x4b')]&&_0x3cf402[_0xba19('0x4b')][_0xba19('0x14')]&&_0x3cf402['idField']&&_0x3cf402[_0xba19('0x48')]){_0x1748e8[_0x3cf402[_0xba19('0x4b')][_0xba19('0x14')][_0xba19('0x41')]()]&&_0x13a06d[_0xba19('0x49')][_0xba19('0x44')]({'id':_0x3cf402[_0xba19('0x43')],'value':_0x1748e8[_0x3cf402['Variable'][_0xba19('0x14')][_0xba19('0x41')]()][_0xba19('0x36')]()});}});}return _0x13a06d;}exports[_0xba19('0x4c')]=function(_0x521317,_0xe4825b,_0xa59c00,_0x43beb3,_0x32f8b3,_0x38273f){var _0x52a6b6,_0x3512a4;_0x38273f['remoteUri']=intUtil[_0xba19('0x4d')](_0x38273f[_0xba19('0x23')]);_0x38273f[_0xba19('0x4e')]=intUtil['stripTrailingSlash'](_0x38273f[_0xba19('0x4e')]);if(_0x32f8b3&&_0x32f8b3[_0xba19('0x4f')]){logger[_0xba19('0x19')]('[QUEUE]',_0xba19('0x50'));_0xe4825b['recordingURL']=util['format']('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x38273f['serverUrl'],_0xe4825b[_0xba19('0x51')],md5(_0xe4825b[_0xba19('0x51')]));}else{_0xe4825b[_0xba19('0x52')]='';}headers[_0xba19('0x53')]=getAuth(_0x38273f);return getUser(_0x38273f,_0x43beb3[_0xba19('0x54')])[_0xba19('0x18')](function(_0x2a251d){_0x52a6b6=_0x2a251d;logger['info'](_0xba19('0x55'),_0x52a6b6['id']);return getEndUser(_0x38273f,_0xe4825b[_0xba19('0x56')],_0xe4825b[_0xba19('0x57')]);})[_0xba19('0x18')](function(_0x3ba35b){_0x3512a4=_0x3ba35b;logger['info']('The\x20Enduser\x20ID\x20is:',_0x3512a4['id']);return getTicket(_0x38273f,_0x52a6b6,_0x3512a4,_0xa59c00,_0xe4825b);})['then'](function(_0x329fb3){if(_0x329fb3){logger[_0xba19('0x19')](_0xba19('0x58'),_0x329fb3['id']);switch(_0x38273f[_0xba19('0x45')]){case _0xba19('0x59'):logger[_0xba19('0x19')](_0xba19('0x5a'),'Displaying\x20ticket\x20to\x20agent...');return request({'uri':util[_0xba19('0xf')]('%s/channels/voice/agents/%d/tickets/%d/display.json',_0x38273f[_0xba19('0x23')],_0x52a6b6['id'],_0x329fb3['id']),'method':'POST'});case _0xba19('0x5b'):logger[_0xba19('0x19')]('[QUEUE]',_0xba19('0x5c'));emit(util[_0xba19('0xf')]('user:%s',_0x43beb3[_0xba19('0x14')]),_0xba19('0x5d'),{'uri':util[_0xba19('0xf')]('%s/agent/tickets/%s',_0x38273f[_0xba19('0x23')][_0xba19('0x5e')](_0xba19('0x5f'),''),_0x329fb3['id'])});break;default:logger[_0xba19('0x60')](_0xba19('0x5a'),'Zendesk\x20account\x20type\x20not\x20recognized');}}})[_0xba19('0x61')](function(_0x3fc7a2){logger[_0xba19('0x60')](_0xba19('0x62'),util[_0xba19('0x63')](_0x3fc7a2,{'showHidden':!![],'depth':null}));});};exports[_0xba19('0x64')]=function(_0x52ed0b,_0x5ec959,_0x1d9302,_0x227520,_0x1ca462,_0x96a3b3,_0x4d46f6){var _0x34d5c6,_0x4b7971;_0x96a3b3['remoteUri']=intUtil[_0xba19('0x4d')](_0x96a3b3[_0xba19('0x23')]);_0x96a3b3[_0xba19('0x4e')]=intUtil[_0xba19('0x4d')](_0x96a3b3['serverUrl']);if(_0x4d46f6&&_0x4d46f6[_0xba19('0x65')]&&_0x4d46f6[_0xba19('0x65')]!==_0xba19('0x66')){logger[_0xba19('0x19')](_0xba19('0x67'),_0xba19('0x50'));_0x5ec959[_0xba19('0x52')]=util[_0xba19('0xf')]('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x96a3b3[_0xba19('0x4e')],_0x5ec959[_0xba19('0x51')],md5(_0x5ec959[_0xba19('0x51')]));}headers[_0xba19('0x53')]=getAuth(_0x96a3b3);return getUser(_0x96a3b3,_0x227520['email'])[_0xba19('0x18')](function(_0x2f7bd2){_0x34d5c6=_0x2f7bd2;logger[_0xba19('0x19')](_0xba19('0x55'),_0x34d5c6['id']);return getEndUser(_0x96a3b3,_0x5ec959[_0xba19('0x68')],_0x5ec959[_0xba19('0x69')]);})[_0xba19('0x18')](function(_0x4beb56){_0x4b7971=_0x4beb56;logger[_0xba19('0x19')](_0xba19('0x6a'),_0x4b7971['id']);return getTicket(_0x96a3b3,_0x34d5c6,_0x4b7971,_0x1d9302,_0x5ec959);})[_0xba19('0x18')](function(_0x45948c){if(_0x45948c){logger['info'](_0xba19('0x58'),_0x45948c['id']);switch(_0x96a3b3[_0xba19('0x45')]){case'integrationTab':logger['info'](_0xba19('0x67'),_0xba19('0x6b'));return request({'uri':util[_0xba19('0xf')]('%s/channels/voice/agents/%d/tickets/%d/display.json',_0x96a3b3['remoteUri'],_0x34d5c6['id'],_0x45948c['id']),'method':_0xba19('0x11')});case'newTab':logger[_0xba19('0x19')](_0xba19('0x67'),_0xba19('0x5c'));emit(util['format'](_0xba19('0x6c'),_0x227520['name']),_0xba19('0x5d'),{'uri':util[_0xba19('0xf')](_0xba19('0x6d'),_0x96a3b3[_0xba19('0x23')][_0xba19('0x5e')]('/api/v2',''),_0x45948c['id'])});break;default:logger[_0xba19('0x60')](_0xba19('0x67'),_0xba19('0x6e'));}}})[_0xba19('0x61')](function(_0x25ba60){logger['error'](_0xba19('0x6f'),util[_0xba19('0x63')](_0x25ba60,{'showHidden':!![],'depth':null}));});};exports[_0xba19('0x70')]=function(_0x213ed9,_0x1e7b65,_0x4ab81f,_0x9d6062,_0x28ac05,_0x14fbc7){var _0x3848e2,_0x4e36f2;_0x14fbc7[_0xba19('0x23')]=intUtil[_0xba19('0x4d')](_0x14fbc7[_0xba19('0x23')]);_0x14fbc7['serverUrl']=intUtil[_0xba19('0x4d')](_0x14fbc7[_0xba19('0x4e')]);if(_0x28ac05&&_0x28ac05['monitor_format']){logger['info']('['+_0x1e7b65['lastevent'][_0xba19('0x71')]()+']',_0xba19('0x50'));_0x1e7b65[_0xba19('0x52')]=util['format']('%s/api/voice/recordings/%s/downloads?type=uniqueid&token=%s',_0x14fbc7[_0xba19('0x4e')],_0x1e7b65[_0xba19('0x51')],md5(_0x1e7b65[_0xba19('0x51')]));}else{_0x1e7b65[_0xba19('0x52')]='';}headers[_0xba19('0x53')]=getAuth(_0x14fbc7);return getUser(_0x14fbc7)[_0xba19('0x18')](function(_0x2ba037){_0x3848e2=_0x2ba037;logger['info'](_0xba19('0x55'),_0x3848e2['id']);return getEndUser(_0x14fbc7,_0x1e7b65['calleridname'],_0x1e7b65['calleridnum']);})[_0xba19('0x18')](function(_0x32cd22){_0x4e36f2=_0x32cd22;logger[_0xba19('0x19')]('The\x20Enduser\x20ID\x20is:',_0x4e36f2['id']);return getTicket(_0x14fbc7,_0x3848e2,_0x4e36f2,_0x4ab81f,_0x1e7b65);})[_0xba19('0x18')](function(_0x38d8a3){if(_0x38d8a3){logger[_0xba19('0x19')](_0xba19('0x58'),_0x38d8a3['id']);}})[_0xba19('0x61')](function(_0xa80000){logger[_0xba19('0x60')]('['+_0x1e7b65[_0xba19('0x72')][_0xba19('0x71')]()+']'+_0xba19('0x73'),util[_0xba19('0x63')](_0xa80000,{'showHidden':!![],'depth':null}));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x43ae=['catch','error','Failing\x20creating\x20the\x20access_token','stack','info','Search\x20user','GET','format','Zoho-oauthtoken\x20','users','isArrayLikeObject','findIndex','email','Agent\x20found!','Using\x20the\x20admin\x20account!','profile','Administrator','user','stringify','Unable\x20to\x20retrieve\x20zoho\x20account\x20users:\x20','The\x20failing\x20result\x20is','enduserType','https://www.zohoapis.','/crm/v2/','startCase','moduleCreate','role','first_name','last_name','data','SUCCESS','Error:\x20','log','CREATE\x20ERROR','moduleSearch','contact_lead','/crm/v2/Contacts/search?criteria=((Phone:equals:','Contacts','uri','Leads','nothing','contact','lead','/crm/v2/Leads/search?criteria=((Phone:equals:','Owner','administrator','Subject','getString','Subjects','Description','Descriptions','Who_Id','Full_Name','First_Name','Last_Name','What_Id','Call_Duration','utc','mm:ss','answertime','endtime','diff','YYYY-MM-DDTHH:mm:ss','lastevent','Called','complete','connect','Call_Result','rejected','Rejected','abandoned','Timeout','Call_Start_Time','outbound','agentcalledAt','Call_Type','Inbound','Fields','/crm/v2/Calls','code','details','queue','host','serverUrl','monitor_format','[QUEUE]','recordingURL','uniqueid','/downloads?type=uniqueid&token=','calleridnum','The\x20Call\x20ID\x20is:','Displaying\x20call\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s','trigger:browser:url','https://crm.','/crm/EntityInfo.do?module=Calls&id=','stripTrailingSlash','recordingFormat','[OUTBOUND]','Recording\x20is\x20enabled!','/api/voice/recordings/','zoho.eu','destcalleridname','destcalleridnum','Outbound','unmanaged','com','lodash','request-promise','util','./util','ioredis','bluebird','../../../../config/environment','zoho','redis','defaults','localhost','socket.io-emitter','emit','debug','[HTTP]','length','forEach','includes','string','picklist','type','toString','variableName','idField','customVariable','Variable','name','toLowerCase','indexOf','isNil','access_token','isBefore','zone','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.eu','https://accounts.zoho.in','https://accounts.zoho.com.cn','POST','clientId','clientSecret','refresh_token','then','add'];(function(_0x3fc97b,_0x20ca29){var _0x3a0c82=function(_0x1c15ec){while(--_0x1c15ec){_0x3fc97b['push'](_0x3fc97b['shift']());}};_0x3a0c82(++_0x20ca29);}(_0x43ae,0x199));var _0xe43a=function(_0x20c368,_0x99a819){_0x20c368=_0x20c368-0x0;var _0x39d2ee=_0x43ae[_0x20c368];return _0x39d2ee;};'use strict';var _=require(_0xe43a('0x0'));var rp=require(_0xe43a('0x1'));var md5=require('md5');var util=require(_0xe43a('0x2'));var intUtil=require(_0xe43a('0x3'));var moment=require('moment');var Redis=require(_0xe43a('0x4'));var BPromise=require(_0xe43a('0x5'));var config=require(_0xe43a('0x6'));var logger=require('../../../../config/logger')(_0xe43a('0x7'));config[_0xe43a('0x8')]=_[_0xe43a('0x9')](config[_0xe43a('0x8')],{'host':_0xe43a('0xa'),'port':0x18eb});var io=require(_0xe43a('0xb'))(new Redis(config[_0xe43a('0x8')]));function emit(_0x5ab977,_0x55048a,_0x2d7332){io['to'](_0x5ab977)[_0xe43a('0xc')](_0x55048a,_0x2d7332);}function request(_0x376d8e){logger[_0xe43a('0xd')](_0xe43a('0xe'),JSON['stringify'](_0x376d8e));return rp(_0x376d8e);}function getCustomFields(_0x43cd61,_0x590fa5){var _0x4e6a8d={};if(_0x43cd61[_0xe43a('0xf')]>0x0){_[_0xe43a('0x10')](_0x43cd61,function(_0x4c6a31){if(_[_0xe43a('0x11')]([_0xe43a('0x12'),_0xe43a('0x13')],_0x4c6a31[_0xe43a('0x14')])&&_0x4c6a31['idField']){_0x4e6a8d[_0x4c6a31['idField']]=_0x4c6a31['content'][_0xe43a('0x15')]();}else if(_0x4c6a31[_0xe43a('0x14')]==='variable'&&_0x4c6a31[_0xe43a('0x16')]&&_0x4c6a31[_0xe43a('0x17')]&&_0x590fa5[_0x4c6a31[_0xe43a('0x16')]]){_0x4e6a8d[_0x4c6a31['idField']]=_0x590fa5[_0x4c6a31['variableName']][_0xe43a('0x15')]();}else if(_0x4c6a31['type']===_0xe43a('0x18')&&_0x4c6a31[_0xe43a('0x19')]&&_0x4c6a31[_0xe43a('0x19')][_0xe43a('0x1a')]&&_0x4c6a31[_0xe43a('0x17')]&&_0x590fa5[_0x4c6a31[_0xe43a('0x19')][_0xe43a('0x1a')][_0xe43a('0x1b')]()]){_0x4e6a8d[_0x4c6a31[_0xe43a('0x17')]]=_0x590fa5[_0x4c6a31[_0xe43a('0x19')][_0xe43a('0x1a')]['toLowerCase']()][_0xe43a('0x15')]();}});}return _0x4e6a8d;}function getName(_0x394045){if(_0x394045[_0xe43a('0x1c')]('\x20')>0x0){var _0x4e39b0=_0x394045['split'](/ (.+)/);if(_0x4e39b0[0x1]){return _0x4e39b0;}}return[_0x394045,_0x394045];}var accountsTokens={};function getAccessToken(_0x379ad1){return new Promise(function(_0x531bea,_0x5cb4cc){if(!_[_0xe43a('0x1d')](accountsTokens[_0x379ad1['id']])&&!_['isNil'](accountsTokens[_0x379ad1['id']][_0xe43a('0x1e')])){if(moment()[_0xe43a('0x1f')](accountsTokens[_0x379ad1['id']]['expires_in'])){_0x531bea(accountsTokens[_0x379ad1['id']][_0xe43a('0x1e')]);}}var _0x230c65;switch(_0x379ad1[_0xe43a('0x20')]){case'US':_0x230c65=_0xe43a('0x21');break;case'AU':_0x230c65=_0xe43a('0x22');break;case'EU':_0x230c65=_0xe43a('0x23');break;case'IN':_0x230c65=_0xe43a('0x24');break;case'CN':_0x230c65=_0xe43a('0x25');break;default:_0x230c65=_0xe43a('0x23');break;}var _0x2aff59={'method':_0xe43a('0x26'),'uri':_0x230c65+'/oauth/v2/token','qs':{'refresh_token':_0x379ad1['refreshToken'],'client_id':_0x379ad1[_0xe43a('0x27')],'client_secret':_0x379ad1[_0xe43a('0x28')],'grant_type':_0xe43a('0x29')},'json':!![]};return rp(_0x2aff59)[_0xe43a('0x2a')](function(_0x503dea){accountsTokens[_0x379ad1['id']]={'access_token':_0x503dea[_0xe43a('0x1e')],'expires_in':moment()[_0xe43a('0x2b')](_0x503dea['expires_in'],'seconds')};_0x531bea(_0x503dea[_0xe43a('0x1e')]);})[_0xe43a('0x2c')](function(_0x5e332a){logger[_0xe43a('0x2d')](_0xe43a('0x2e'),_0x5e332a[_0xe43a('0x2f')]);_0x5cb4cc(_0x5e332a);});});}function getUser(_0x4d45fd,_0x1de79c,_0x4268fd,_0x264cfb){logger[_0xe43a('0x30')](_0xe43a('0x31'));return request({'method':_0xe43a('0x32'),'uri':util[_0xe43a('0x33')]('https://www.zohoapis.%s/crm/v2/users',_0x1de79c),'qs':{'type':'ActiveUsers'},'headers':{'Authorization':_0xe43a('0x34')+_0x4d45fd},'json':!![]})[_0xe43a('0x2a')](function(_0x235c7a){if(_0x235c7a[_0xe43a('0x35')]){var _0x5d4b18=-0x1;if(_[_0xe43a('0x36')](_0x235c7a['users'])){if(!_['isNil'](_0x264cfb)){_0x5d4b18=_[_0xe43a('0x37')](_0x235c7a['users'],function(_0x39afa8){return _0x39afa8[_0xe43a('0x38')]===_0x264cfb;});}if(_0x5d4b18>=0x0){logger[_0xe43a('0x30')](_0xe43a('0x39'));}else{logger[_0xe43a('0x30')](_0xe43a('0x3a'));_0x5d4b18=_[_0xe43a('0x37')](_0x235c7a[_0xe43a('0x35')],function(_0x1d5d56){return _0x1d5d56[_0xe43a('0x3b')][_0xe43a('0x1a')]===_0xe43a('0x3c');});}return _0x235c7a['users'][_0x5d4b18];}else{if(_0x235c7a[_0xe43a('0x3d')]['profile']['name']===_0xe43a('0x3c')){logger['info']('Using\x20the\x20admin\x20account!');user=_0x235c7a['user'];return user;}else{logger[_0xe43a('0x2d')]('The\x20failing\x20result\x20is',JSON[_0xe43a('0x3e')](_0x235c7a));throw new Error(_0xe43a('0x3f')+JSON[_0xe43a('0x3e')](_0x235c7a));}}}else{logger[_0xe43a('0x2d')](_0xe43a('0x40'),JSON['stringify'](_0x235c7a));throw new Error(_0xe43a('0x3f')+JSON[_0xe43a('0x3e')](_0x235c7a));}})[_0xe43a('0x2c')](function(_0x4d8e0f){console[_0xe43a('0x2d')](_0x4d8e0f);});}function getZohoUser(_0x2ff9ae,_0x518034){return new BPromise(function(_0x4cb09f,_0xd484fc){request(_0x2ff9ae)[_0xe43a('0x2a')](function(_0x57a455){var _0x32489f=null;if(_0x57a455){_0x32489f=_0x57a455['data'][0x0];_0x32489f[_0xe43a('0x41')]=_0x518034;}_0x4cb09f(_0x32489f);})['catch'](function(_0x495b12){_0xd484fc(_0x495b12);});});}function createEndUser(_0x4aaf0,_0xde37c6,_0x3273ae,_0x5a2e36,_0x2fed9c,_0x39b647){var _0x3273ae=getName(_0x3273ae);return request({'method':_0xe43a('0x26'),'uri':_0xe43a('0x42')+_0xde37c6+_0xe43a('0x43')+_[_0xe43a('0x44')](_0x39b647[_0xe43a('0x45')])+'s','body':{'data':[{'Last_Name':_0x3273ae[0x1],'First_Name':_0x3273ae[0x0],'Phone':_0x5a2e36,'Owner':{'name':!_[_0xe43a('0x1d')](_0x2fed9c['role'][_0xe43a('0x1a')])?_0x2fed9c[_0xe43a('0x46')][_0xe43a('0x1a')]:!_[_0xe43a('0x1d')](_0x2fed9c[_0xe43a('0x47')])?_0x2fed9c[_0xe43a('0x47')]+'\x20'+_0x2fed9c['last_name']:_0x2fed9c[_0xe43a('0x48')],'id':_0x2fed9c['id']}}]},'headers':{'Authorization':_0xe43a('0x34')+_0x4aaf0},'json':!![]})[_0xe43a('0x2a')](function(_0x2a4c96){if(_0x2a4c96&&_0x2a4c96[_0xe43a('0x49')][0x0]['code']===_0xe43a('0x4a')){var _0x458a91=_0x2a4c96[_0xe43a('0x49')][0x0]['details'];_0x458a91['enduserType']=_[_0xe43a('0x44')](_0x39b647[_0xe43a('0x45')])+'s';return _0x458a91;}logger[_0xe43a('0x2d')]('The\x20failing\x20result\x20is',JSON[_0xe43a('0x3e')](data));throw new Error(_0xe43a('0x4b')+JSON[_0xe43a('0x3e')](data));})['catch'](function(_0x218b39){console[_0xe43a('0x4c')](_0xe43a('0x4d'),_0x218b39);});}function getEndUser(_0x2633f4,_0x1c13d8,_0x4e8804,_0x58456a,_0x34e03b,_0x56b0d8,_0x540fb8){var _0x2e11a9={'method':_0xe43a('0x32'),'uri':'','headers':{'Authorization':_0xe43a('0x34')+_0x2633f4},'json':!![]};switch(_0x540fb8[_0xe43a('0x4e')]){case _0xe43a('0x4f'):_0x2e11a9['uri']=_0xe43a('0x42')+_0x1c13d8+_0xe43a('0x50')+_0x34e03b+'))';return getZohoUser(_0x2e11a9,_0xe43a('0x51'))[_0xe43a('0x2a')](function(_0x16f180){if(_0x16f180)return _0x16f180;_0x2e11a9[_0xe43a('0x52')]='https://www.zohoapis.'+_0x1c13d8+'/crm/v2/Leads/search?criteria=((Phone:equals:'+_0x34e03b+'))';return getZohoUser(_0x2e11a9,_0xe43a('0x53'))[_0xe43a('0x2a')](function(_0x39ec3e){if(_0x39ec3e)return _0x39ec3e;if(_0x540fb8[_0xe43a('0x45')]!=_0xe43a('0x54')){return createEndUser(_0x2633f4,_0x1c13d8,_0x58456a,_0x34e03b,_0x56b0d8,_0x540fb8);}else{return{};}});});break;case _0xe43a('0x55'):_0x2e11a9[_0xe43a('0x52')]=_0xe43a('0x42')+_0x1c13d8+_0xe43a('0x50')+_0x34e03b+'))';return getZohoUser(_0x2e11a9,_0xe43a('0x51'))[_0xe43a('0x2a')](function(_0x18e5b0){if(_0x18e5b0)return _0x18e5b0;if(_0x540fb8['moduleCreate']!='nothing'){return createEndUser(_0x2633f4,_0x1c13d8,_0x58456a,_0x34e03b,_0x56b0d8,_0x540fb8);}else{return{};}});break;case _0xe43a('0x56'):_0x2e11a9[_0xe43a('0x52')]=_0xe43a('0x42')+_0x1c13d8+_0xe43a('0x57')+_0x34e03b+'))';return getZohoUser(_0x2e11a9,_0xe43a('0x53'))[_0xe43a('0x2a')](function(_0x40d39a){if(_0x40d39a)return _0x40d39a;if(_0x540fb8['moduleCreate']!=_0xe43a('0x54')){return createEndUser(_0x2633f4,_0x1c13d8,_0x58456a,_0x34e03b,_0x56b0d8,_0x540fb8);}else{return{};}});break;}}function getCall(_0x4bceee,_0x47b15d,_0x2ab869,_0x148d8f,_0x5216fe,_0x164ec4,_0x3ab112,_0x444102){logger[_0xe43a('0x30')]('Creating\x20new\x20call...');var _0x127836={};_0x127836[_0xe43a('0x58')]={'name':!_[_0xe43a('0x1d')](_0x148d8f[_0xe43a('0x46')][_0xe43a('0x1a')])&&!_['isNil'](_0x148d8f[_0xe43a('0x3b')]['name'])&&_0x148d8f['profile'][_0xe43a('0x1a')]===_0xe43a('0x59')?_0x148d8f[_0xe43a('0x46')][_0xe43a('0x1a')]:!_['isNil'](_0x148d8f[_0xe43a('0x47')])?_0x148d8f[_0xe43a('0x47')]+'\x20'+_0x148d8f[_0xe43a('0x48')]:_0x148d8f[_0xe43a('0x48')],'id':_0x148d8f['id']};_0x127836[_0xe43a('0x5a')]=intUtil[_0xe43a('0x5b')](_0x164ec4[_0xe43a('0x5c')],_0x3ab112,'\x20');_0x127836[_0xe43a('0x5d')]=intUtil[_0xe43a('0x5b')](_0x164ec4[_0xe43a('0x5e')],_0x3ab112,'\x0a');if(_0x5216fe['enduserType']==='Contacts'){_0x127836[_0xe43a('0x5f')]={'name':!_['isNil'](_0x5216fe[_0xe43a('0x60')])?_0x5216fe[_0xe43a('0x60')]:!_['isNil'](_0x5216fe[_0xe43a('0x61')])?_0x5216fe[_0xe43a('0x61')]+'\x20'+_0x5216fe[_0xe43a('0x62')]:_0x5216fe[_0xe43a('0x62')],'id':_0x5216fe['id']};}if(_0x5216fe[_0xe43a('0x41')]===_0xe43a('0x53')){_0x127836[_0xe43a('0x63')]={'name':!_[_0xe43a('0x1d')](_0x5216fe[_0xe43a('0x60')])?_0x5216fe[_0xe43a('0x60')]:!_[_0xe43a('0x1d')](_0x5216fe[_0xe43a('0x61')])?_0x5216fe[_0xe43a('0x61')]+'\x20'+_0x5216fe[_0xe43a('0x62')]:_0x5216fe[_0xe43a('0x62')],'id':_0x5216fe['id']};_0x127836['$se_module']=_['startCase'](_0x5216fe[_0xe43a('0x41')]);}if(_0x3ab112['talktime']){_0x127836[_0xe43a('0x64')]=moment[_0xe43a('0x65')](parseInt(_0x3ab112['talktime'])*0x3e8)[_0xe43a('0x33')](_0xe43a('0x66'));}else if(_0x3ab112[_0xe43a('0x67')]&&_0x3ab112[_0xe43a('0x68')]){_0x127836[_0xe43a('0x64')]=moment[_0xe43a('0x65')](moment(_0x3ab112['endtime'],'YYYY-MM-DDTHH:mm:ss')[_0xe43a('0x69')](moment(_0x3ab112['starttime'],_0xe43a('0x6a'))))[_0xe43a('0x33')](_0xe43a('0x66'));}switch(_0x3ab112[_0xe43a('0x6b')]){case'called':_0x127836['Call_Result']=_0xe43a('0x6c');break;case _0xe43a('0x6d'):case _0xe43a('0x6e'):_0x127836[_0xe43a('0x6f')]='Answered';break;case _0xe43a('0x70'):_0x127836[_0xe43a('0x6f')]=_0xe43a('0x71');break;case _0xe43a('0x72'):_0x127836[_0xe43a('0x6f')]='Abandoned';break;case'timeout':_0x127836['Call_Result']=_0xe43a('0x73');default:}_0x127836[_0xe43a('0x74')]=(_0x444102===_0xe43a('0x75')?moment(_0x3ab112['starttime'])['format'](_0xe43a('0x6a')):moment(_0x3ab112[_0xe43a('0x76')])[_0xe43a('0x33')](_0xe43a('0x6a')))||moment()[_0xe43a('0x33')](_0xe43a('0x6a'));_0x127836[_0xe43a('0x77')]=_0x444102||_0xe43a('0x78');_0x127836=_['merge'](_0x127836,getCustomFields(_0x164ec4[_0xe43a('0x79')],_0x3ab112));return request({'method':_0xe43a('0x26'),'uri':_0xe43a('0x42')+_0x47b15d+_0xe43a('0x7a'),'headers':{'Authorization':_0xe43a('0x34')+_0x4bceee},'body':{'data':[_0x127836]},'json':!![]})[_0xe43a('0x2a')](function(_0x143559){if(_0x143559&&_0x143559['data'][0x0][_0xe43a('0x7b')]===_0xe43a('0x4a')){logger[_0xe43a('0x30')]('Call\x20created!');return{'id':_0x143559['data'][0x0][_0xe43a('0x7c')]['id']};}})[_0xe43a('0x2c')](function(_0x446693){logger['info']('err',_0x446693[_0xe43a('0x2f')]);console[_0xe43a('0x4c')]('err',_0x446693);});}exports[_0xe43a('0x7d')]=function(_0x5e15cf,_0x1349d4,_0x16bcfe,_0x447e1f,_0x3c0449,_0x190625){var _0x20775c,_0x14d7a2,_0x477726;_0x190625[_0xe43a('0x7e')]=intUtil['stripTrailingSlash'](_0x190625[_0xe43a('0x7e')]);_0x190625[_0xe43a('0x7f')]=intUtil['stripTrailingSlash'](_0x190625[_0xe43a('0x7f')]);if(_0x3c0449&&_0x3c0449[_0xe43a('0x80')]){logger['info'](_0xe43a('0x81'),'Recording\x20is\x20enabled!');_0x1349d4[_0xe43a('0x82')]=_0x190625[_0xe43a('0x7f')]+'/api/voice/recordings/'+_0x1349d4[_0xe43a('0x83')]+_0xe43a('0x84')+md5(_0x1349d4[_0xe43a('0x83')]);}else{_0x1349d4[_0xe43a('0x82')]='';}var _0x32e859=_0x190625[_0xe43a('0x7e')]==='zoho.eu'?'eu':'com';return getAccessToken(_0x190625)[_0xe43a('0x2a')](function(_0x12a808){_0x477726=_0x12a808;return getUser(_0x477726,_0x32e859,_0x190625,_0x447e1f[_0xe43a('0x38')]);})[_0xe43a('0x2a')](function(_0x2d94c5){_0x20775c=_0x2d94c5;logger['info']('The\x20User\x20ID\x20is:',_0x20775c['id']);return getEndUser(_0x477726,_0x32e859,_0x190625,_0x1349d4['calleridname'],_0x1349d4[_0xe43a('0x85')],_0x20775c,_0x16bcfe);})[_0xe43a('0x2a')](function(_0x2f44d2){_0x14d7a2=_0x2f44d2;return getCall(_0x477726,_0x32e859,_0x190625,_0x20775c,_0x14d7a2,_0x16bcfe,_0x1349d4,_0xe43a('0x78'));})[_0xe43a('0x2a')](function(_0x738003){if(_0x738003){logger['info'](_0xe43a('0x86'),_0x738003['id']);logger[_0xe43a('0x30')](_0xe43a('0x81'),_0xe43a('0x87'));emit(util['format'](_0xe43a('0x88'),_0x447e1f[_0xe43a('0x1a')]),_0xe43a('0x89'),{'uri':_0xe43a('0x8a')+_0x190625[_0xe43a('0x7e')]+_0xe43a('0x8b')+_0x738003['id']});}})[_0xe43a('0x2c')](function(_0x3dda23){logger[_0xe43a('0x2d')](_0xe43a('0x81'),JSON['stringify'](_0x3dda23));});};exports[_0xe43a('0x75')]=function(_0xaac749,_0x5b17b3,_0x2abc17,_0x19a783,_0x3f2bed,_0x1d1672,_0x4bb93f){var _0x52eca0,_0x2d1e05,_0x56b601;_0x1d1672['host']=intUtil[_0xe43a('0x8c')](_0x1d1672['host']);_0x1d1672[_0xe43a('0x7f')]=intUtil[_0xe43a('0x8c')](_0x1d1672[_0xe43a('0x7f')]);if(_0x4bb93f&&_0x4bb93f[_0xe43a('0x8d')]&&_0x4bb93f[_0xe43a('0x8d')]!=='none'){logger[_0xe43a('0x30')](_0xe43a('0x8e'),_0xe43a('0x8f'));_0x5b17b3[_0xe43a('0x82')]=_0x1d1672[_0xe43a('0x7f')]+_0xe43a('0x90')+_0x5b17b3['uniqueid']+_0xe43a('0x84')+md5(_0x5b17b3[_0xe43a('0x83')]);}var _0x1ccc37=_0x1d1672[_0xe43a('0x7e')]===_0xe43a('0x91')?'eu':'com';return getAccessToken(_0x1d1672)[_0xe43a('0x2a')](function(_0xd64ddb){_0x56b601=_0xd64ddb;return getUser(_0x56b601,_0x1ccc37,_0x1d1672,_0x19a783[_0xe43a('0x38')]);})[_0xe43a('0x2a')](function(_0x173809){_0x52eca0=_0x173809;logger[_0xe43a('0x30')]('The\x20User\x20ID\x20is:',_0x52eca0['id']);return getEndUser(_0x56b601,_0x1ccc37,_0x1d1672,_0x5b17b3[_0xe43a('0x92')],_0x5b17b3[_0xe43a('0x93')],_0x52eca0,_0x2abc17);})['then'](function(_0x1ef16f){_0x2d1e05=_0x1ef16f;return getCall(_0x56b601,_0x1ccc37,_0x1d1672,_0x52eca0,_0x2d1e05,_0x2abc17,_0x5b17b3,_0xe43a('0x94'));})[_0xe43a('0x2a')](function(_0x43951f){if(_0x43951f){logger[_0xe43a('0x30')](_0xe43a('0x86'),_0x43951f['id']);logger[_0xe43a('0x30')](_0xe43a('0x8e'),_0xe43a('0x87'));emit(util[_0xe43a('0x33')](_0xe43a('0x88'),_0x19a783[_0xe43a('0x1a')]),'trigger:browser:url',{'uri':_0xe43a('0x8a')+_0x1d1672['host']+'/crm/EntityInfo.do?module=Calls&id='+_0x43951f['id']});}})[_0xe43a('0x2c')](function(_0x7aea){logger[_0xe43a('0x2d')](_0xe43a('0x8e'),JSON['stringify'](_0x7aea));});};exports[_0xe43a('0x95')]=function(_0x2e8cd8,_0x1b627c,_0x21e9b1,_0x430603,_0x1c9697,_0x5c5f1c){var _0x37e617,_0x5dc040,_0x2f4aea;_0x5c5f1c[_0xe43a('0x7e')]=intUtil[_0xe43a('0x8c')](_0x5c5f1c[_0xe43a('0x7e')]);_0x5c5f1c[_0xe43a('0x7f')]=intUtil[_0xe43a('0x8c')](_0x5c5f1c['serverUrl']);if(_0x1c9697&&_0x1c9697[_0xe43a('0x80')]){logger[_0xe43a('0x30')]('['+_0x1b627c[_0xe43a('0x6b')]['toUpperCase']()+']','Recording\x20is\x20enabled!');_0x1b627c['recordingURL']=_0x5c5f1c['serverUrl']+_0xe43a('0x90')+_0x1b627c[_0xe43a('0x83')]+_0xe43a('0x84')+md5(_0x1b627c[_0xe43a('0x83')]);}else{_0x1b627c[_0xe43a('0x82')]='';}var _0x593900=_0x5c5f1c['host']===_0xe43a('0x91')?'eu':_0xe43a('0x96');return getAccessToken(_0x5c5f1c)[_0xe43a('0x2a')](function(_0x5f745a){_0x2f4aea=_0x5f745a;return getUser(_0x2f4aea,_0x593900,_0x5c5f1c);})[_0xe43a('0x2a')](function(_0x408c2d){_0x37e617=_0x408c2d;logger['info']('The\x20User\x20ID\x20is:',_0x37e617['id']);return getEndUser(_0x2f4aea,_0x593900,_0x5c5f1c,_0x1b627c['calleridname'],_0x1b627c[_0xe43a('0x85')],_0x37e617,_0x21e9b1);})[_0xe43a('0x2a')](function(_0x3a24ff){_0x5dc040=_0x3a24ff;return getCall(_0x2f4aea,_0x593900,_0x5c5f1c,_0x37e617,_0x5dc040,_0x21e9b1,_0x1b627c,_0xe43a('0x78'));})[_0xe43a('0x2a')](function(_0x32aeb7){if(_0x32aeb7){logger['info'](_0xe43a('0x86'),_0x32aeb7['id']);}})[_0xe43a('0x2c')](function(_0x528a44){logger[_0xe43a('0x2d')]('['+_0x1b627c['lastevent']['toUpperCase']()+']',JSON[_0xe43a('0x3e')](_0x528a44));});};
\ No newline at end of file
+var _0xcbdd=['contact','lead','Creating\x20new\x20call...','Subject','getString','Subjects','Description','Descriptions','Who_Id','Full_Name','First_Name','Last_Name','What_Id','$se_module','talktime','Call_Duration','utc','mm:ss','answertime','endtime','YYYY-MM-DDTHH:mm:ss','diff','starttime','lastevent','Call_Result','Called','complete','connect','Answered','rejected','Rejected','abandoned','Abandoned','timeout','Timeout','outbound','agentcalledAt','Call_Type','merge','Fields','/crm/v2/Calls','Call\x20created!','details','err','queue','stripTrailingSlash','host','serverUrl','monitor_format','recordingURL','/api/voice/recordings/','/downloads?type=uniqueid&token=','zoho.eu','com','The\x20User\x20ID\x20is:','calleridname','calleridnum','Inbound','The\x20Call\x20ID\x20is:','[QUEUE]','Displaying\x20call\x20to\x20agent\x20in\x20a\x20new\x20tab...','user:%s','trigger:browser:url','https://crm.','recordingFormat','none','[OUTBOUND]','Recording\x20is\x20enabled!','destcalleridname','destcalleridnum','Outbound','/crm/EntityInfo.do?module=Calls&id=','unmanaged','uniqueid','lodash','md5','util','./util','ioredis','bluebird','../../../../config/environment','zoho','defaults','redis','localhost','socket.io-emitter','debug','[HTTP]','stringify','length','forEach','includes','string','picklist','type','idField','content','toString','variable','variableName','customVariable','Variable','toLowerCase','name','indexOf','split','isNil','expires_in','access_token','zone','https://accounts.zoho.com','https://accounts.zoho.com.au','https://accounts.zoho.eu','https://accounts.zoho.in','https://accounts.zoho.com.cn','POST','refreshToken','clientSecret','refresh_token','then','seconds','error','Failing\x20creating\x20the\x20access_token','stack','info','Search\x20user','format','https://www.zohoapis.%s/crm/v2/users','ActiveUsers','Zoho-oauthtoken\x20','users','isArrayLikeObject','findIndex','email','Using\x20the\x20admin\x20account!','profile','Administrator','user','The\x20failing\x20result\x20is','Unable\x20to\x20retrieve\x20zoho\x20account\x20users:\x20','enduserType','catch','https://www.zohoapis.','/crm/v2/','startCase','moduleCreate','role','first_name','last_name','code','SUCCESS','data','log','CREATE\x20ERROR','GET','moduleSearch','contact_lead','uri','/crm/v2/Contacts/search?criteria=((Phone:equals:','/crm/v2/Leads/search?criteria=((Phone:equals:','Leads','nothing'];(function(_0x782554,_0x1f1e1b){var _0xdfb436=function(_0xdc7f95){while(--_0xdc7f95){_0x782554['push'](_0x782554['shift']());}};_0xdfb436(++_0x1f1e1b);}(_0xcbdd,0xec));var _0xdcbd=function(_0x2439d6,_0x46c63e){_0x2439d6=_0x2439d6-0x0;var _0x2bf3d9=_0xcbdd[_0x2439d6];return _0x2bf3d9;};'use strict';var _=require(_0xdcbd('0x0'));var rp=require('request-promise');var md5=require(_0xdcbd('0x1'));var util=require(_0xdcbd('0x2'));var intUtil=require(_0xdcbd('0x3'));var moment=require('moment');var Redis=require(_0xdcbd('0x4'));var BPromise=require(_0xdcbd('0x5'));var config=require(_0xdcbd('0x6'));var logger=require('../../../../config/logger')(_0xdcbd('0x7'));config['redis']=_[_0xdcbd('0x8')](config[_0xdcbd('0x9')],{'host':_0xdcbd('0xa'),'port':0x18eb});var io=require(_0xdcbd('0xb'))(new Redis(config[_0xdcbd('0x9')]));function emit(_0x3dcc40,_0x852ee2,_0x915cd6){io['to'](_0x3dcc40)['emit'](_0x852ee2,_0x915cd6);}function request(_0x5ded4a){logger[_0xdcbd('0xc')](_0xdcbd('0xd'),JSON[_0xdcbd('0xe')](_0x5ded4a));return rp(_0x5ded4a);}function getCustomFields(_0x165a4d,_0x272a59){var _0x1c7d77={};if(_0x165a4d[_0xdcbd('0xf')]>0x0){_[_0xdcbd('0x10')](_0x165a4d,function(_0x28d006){if(_[_0xdcbd('0x11')]([_0xdcbd('0x12'),_0xdcbd('0x13')],_0x28d006[_0xdcbd('0x14')])&&_0x28d006[_0xdcbd('0x15')]){_0x1c7d77[_0x28d006[_0xdcbd('0x15')]]=_0x28d006[_0xdcbd('0x16')][_0xdcbd('0x17')]();}else if(_0x28d006[_0xdcbd('0x14')]===_0xdcbd('0x18')&&_0x28d006['variableName']&&_0x28d006[_0xdcbd('0x15')]&&_0x272a59[_0x28d006[_0xdcbd('0x19')]]){_0x1c7d77[_0x28d006[_0xdcbd('0x15')]]=_0x272a59[_0x28d006[_0xdcbd('0x19')]][_0xdcbd('0x17')]();}else if(_0x28d006['type']===_0xdcbd('0x1a')&&_0x28d006['Variable']&&_0x28d006[_0xdcbd('0x1b')]['name']&&_0x28d006[_0xdcbd('0x15')]&&_0x272a59[_0x28d006[_0xdcbd('0x1b')]['name'][_0xdcbd('0x1c')]()]){_0x1c7d77[_0x28d006['idField']]=_0x272a59[_0x28d006[_0xdcbd('0x1b')][_0xdcbd('0x1d')][_0xdcbd('0x1c')]()]['toString']();}});}return _0x1c7d77;}function getName(_0x5c8f6c){if(_0x5c8f6c[_0xdcbd('0x1e')]('\x20')>0x0){var _0x2d4e2d=_0x5c8f6c[_0xdcbd('0x1f')](/ (.+)/);if(_0x2d4e2d[0x1]){return _0x2d4e2d;}}return[_0x5c8f6c,_0x5c8f6c];}var accountsTokens={};function getAccessToken(_0x460b92){return new Promise(function(_0x51f41e,_0x598d4a){if(!_[_0xdcbd('0x20')](accountsTokens[_0x460b92['id']])&&!_[_0xdcbd('0x20')](accountsTokens[_0x460b92['id']]['access_token'])){if(moment()['isBefore'](accountsTokens[_0x460b92['id']][_0xdcbd('0x21')])){_0x51f41e(accountsTokens[_0x460b92['id']][_0xdcbd('0x22')]);}}var _0x508740;switch(_0x460b92[_0xdcbd('0x23')]){case'US':_0x508740=_0xdcbd('0x24');break;case'AU':_0x508740=_0xdcbd('0x25');break;case'EU':_0x508740=_0xdcbd('0x26');break;case'IN':_0x508740=_0xdcbd('0x27');break;case'CN':_0x508740=_0xdcbd('0x28');break;default:_0x508740='https://accounts.zoho.eu';break;}var _0x328da8={'method':_0xdcbd('0x29'),'uri':_0x508740+'/oauth/v2/token','qs':{'refresh_token':_0x460b92[_0xdcbd('0x2a')],'client_id':_0x460b92['clientId'],'client_secret':_0x460b92[_0xdcbd('0x2b')],'grant_type':_0xdcbd('0x2c')},'json':!![]};return rp(_0x328da8)[_0xdcbd('0x2d')](function(_0x3ac9f4){accountsTokens[_0x460b92['id']]={'access_token':_0x3ac9f4[_0xdcbd('0x22')],'expires_in':moment()['add'](_0x3ac9f4['expires_in'],_0xdcbd('0x2e'))};_0x51f41e(_0x3ac9f4[_0xdcbd('0x22')]);})['catch'](function(_0x285100){logger[_0xdcbd('0x2f')](_0xdcbd('0x30'),_0x285100[_0xdcbd('0x31')]);_0x598d4a(_0x285100);});});}function getUser(_0x493311,_0x2d4205,_0x1a4e90,_0xb2c44f){logger[_0xdcbd('0x32')](_0xdcbd('0x33'));return request({'method':'GET','uri':util[_0xdcbd('0x34')](_0xdcbd('0x35'),_0x2d4205),'qs':{'type':_0xdcbd('0x36')},'headers':{'Authorization':_0xdcbd('0x37')+_0x493311},'json':!![]})[_0xdcbd('0x2d')](function(_0x44d665){if(_0x44d665[_0xdcbd('0x38')]){var _0x2ea4d7=-0x1;if(_[_0xdcbd('0x39')](_0x44d665[_0xdcbd('0x38')])){if(!_[_0xdcbd('0x20')](_0xb2c44f)){_0x2ea4d7=_[_0xdcbd('0x3a')](_0x44d665['users'],function(_0x54b5fb){return _0x54b5fb[_0xdcbd('0x3b')]===_0xb2c44f;});}if(_0x2ea4d7>=0x0){logger[_0xdcbd('0x32')]('Agent\x20found!');}else{logger[_0xdcbd('0x32')](_0xdcbd('0x3c'));_0x2ea4d7=_[_0xdcbd('0x3a')](_0x44d665[_0xdcbd('0x38')],function(_0x5de7c9){return _0x5de7c9[_0xdcbd('0x3d')][_0xdcbd('0x1d')]===_0xdcbd('0x3e');});}return _0x44d665[_0xdcbd('0x38')][_0x2ea4d7];}else{if(_0x44d665['user'][_0xdcbd('0x3d')][_0xdcbd('0x1d')]==='Administrator'){logger[_0xdcbd('0x32')](_0xdcbd('0x3c'));user=_0x44d665[_0xdcbd('0x3f')];return user;}else{logger[_0xdcbd('0x2f')](_0xdcbd('0x40'),JSON[_0xdcbd('0xe')](_0x44d665));throw new Error(_0xdcbd('0x41')+JSON[_0xdcbd('0xe')](_0x44d665));}}}else{logger['error'](_0xdcbd('0x40'),JSON[_0xdcbd('0xe')](_0x44d665));throw new Error(_0xdcbd('0x41')+JSON['stringify'](_0x44d665));}})['catch'](function(_0x51e096){console[_0xdcbd('0x2f')](_0x51e096);});}function getZohoUser(_0x37cb8e,_0x4523be){return new BPromise(function(_0x2e2d86,_0x5f0b14){request(_0x37cb8e)[_0xdcbd('0x2d')](function(_0x251ecb){var _0x1410ea=null;if(_0x251ecb){_0x1410ea=_0x251ecb['data'][0x0];_0x1410ea[_0xdcbd('0x42')]=_0x4523be;}_0x2e2d86(_0x1410ea);})[_0xdcbd('0x43')](function(_0x2a6a60){_0x5f0b14(_0x2a6a60);});});}function createEndUser(_0x1ae4c7,_0x374f4b,_0x4bb9d7,_0x130407,_0x207544,_0x409a69){var _0x4bb9d7=getName(_0x4bb9d7);return request({'method':_0xdcbd('0x29'),'uri':_0xdcbd('0x44')+_0x374f4b+_0xdcbd('0x45')+_[_0xdcbd('0x46')](_0x409a69[_0xdcbd('0x47')])+'s','body':{'data':[{'Last_Name':_0x4bb9d7[0x1],'First_Name':_0x4bb9d7[0x0],'Phone':_0x130407,'Owner':{'name':!_[_0xdcbd('0x20')](_0x207544[_0xdcbd('0x48')]['name'])?_0x207544['role'][_0xdcbd('0x1d')]:!_[_0xdcbd('0x20')](_0x207544[_0xdcbd('0x49')])?_0x207544[_0xdcbd('0x49')]+'\x20'+_0x207544[_0xdcbd('0x4a')]:_0x207544[_0xdcbd('0x4a')],'id':_0x207544['id']}}]},'headers':{'Authorization':'Zoho-oauthtoken\x20'+_0x1ae4c7},'json':!![]})[_0xdcbd('0x2d')](function(_0x2c3f30){if(_0x2c3f30&&_0x2c3f30['data'][0x0][_0xdcbd('0x4b')]===_0xdcbd('0x4c')){var _0xb1b23c=_0x2c3f30[_0xdcbd('0x4d')][0x0]['details'];_0xb1b23c[_0xdcbd('0x42')]=_['startCase'](_0x409a69['moduleCreate'])+'s';return _0xb1b23c;}logger[_0xdcbd('0x2f')](_0xdcbd('0x40'),JSON[_0xdcbd('0xe')](data));throw new Error('Error:\x20'+JSON[_0xdcbd('0xe')](data));})[_0xdcbd('0x43')](function(_0x350703){console[_0xdcbd('0x4e')](_0xdcbd('0x4f'),_0x350703);});}function getEndUser(_0x55799c,_0x1e7f35,_0x29c7c7,_0x37995f,_0x2241f9,_0x23ea2b,_0x33e5fc){var _0x277a5a={'method':_0xdcbd('0x50'),'uri':'','headers':{'Authorization':_0xdcbd('0x37')+_0x55799c},'json':!![]};switch(_0x33e5fc[_0xdcbd('0x51')]){case _0xdcbd('0x52'):_0x277a5a[_0xdcbd('0x53')]='https://www.zohoapis.'+_0x1e7f35+_0xdcbd('0x54')+_0x2241f9+'))';return getZohoUser(_0x277a5a,'Contacts')[_0xdcbd('0x2d')](function(_0x27e3fe){if(_0x27e3fe)return _0x27e3fe;_0x277a5a[_0xdcbd('0x53')]=_0xdcbd('0x44')+_0x1e7f35+_0xdcbd('0x55')+_0x2241f9+'))';return getZohoUser(_0x277a5a,_0xdcbd('0x56'))[_0xdcbd('0x2d')](function(_0x5e5fcc){if(_0x5e5fcc)return _0x5e5fcc;if(_0x33e5fc['moduleCreate']!=_0xdcbd('0x57')){return createEndUser(_0x55799c,_0x1e7f35,_0x37995f,_0x2241f9,_0x23ea2b,_0x33e5fc);}else{return{};}});});break;case _0xdcbd('0x58'):_0x277a5a['uri']=_0xdcbd('0x44')+_0x1e7f35+_0xdcbd('0x54')+_0x2241f9+'))';return getZohoUser(_0x277a5a,'Contacts')[_0xdcbd('0x2d')](function(_0x47262f){if(_0x47262f)return _0x47262f;if(_0x33e5fc['moduleCreate']!=_0xdcbd('0x57')){return createEndUser(_0x55799c,_0x1e7f35,_0x37995f,_0x2241f9,_0x23ea2b,_0x33e5fc);}else{return{};}});break;case _0xdcbd('0x59'):_0x277a5a[_0xdcbd('0x53')]=_0xdcbd('0x44')+_0x1e7f35+_0xdcbd('0x55')+_0x2241f9+'))';return getZohoUser(_0x277a5a,_0xdcbd('0x56'))['then'](function(_0x3667e5){if(_0x3667e5)return _0x3667e5;if(_0x33e5fc['moduleCreate']!=_0xdcbd('0x57')){return createEndUser(_0x55799c,_0x1e7f35,_0x37995f,_0x2241f9,_0x23ea2b,_0x33e5fc);}else{return{};}});break;}}function getCall(_0x5998cf,_0x15edbb,_0x3aefc2,_0x1f7e8e,_0x4b2d70,_0x4629f5,_0x39da5b,_0x4fa6eb){logger['info'](_0xdcbd('0x5a'));var _0x2bc19a={};_0x2bc19a['Owner']={'name':!_[_0xdcbd('0x20')](_0x1f7e8e[_0xdcbd('0x48')][_0xdcbd('0x1d')])&&!_[_0xdcbd('0x20')](_0x1f7e8e['profile']['name'])&&_0x1f7e8e[_0xdcbd('0x3d')][_0xdcbd('0x1d')]==='administrator'?_0x1f7e8e[_0xdcbd('0x48')][_0xdcbd('0x1d')]:!_[_0xdcbd('0x20')](_0x1f7e8e[_0xdcbd('0x49')])?_0x1f7e8e[_0xdcbd('0x49')]+'\x20'+_0x1f7e8e[_0xdcbd('0x4a')]:_0x1f7e8e[_0xdcbd('0x4a')],'id':_0x1f7e8e['id']};_0x2bc19a[_0xdcbd('0x5b')]=intUtil[_0xdcbd('0x5c')](_0x4629f5[_0xdcbd('0x5d')],_0x39da5b,'\x20');_0x2bc19a[_0xdcbd('0x5e')]=intUtil[_0xdcbd('0x5c')](_0x4629f5[_0xdcbd('0x5f')],_0x39da5b,'\x0a');if(_0x4b2d70[_0xdcbd('0x42')]==='Contacts'){_0x2bc19a[_0xdcbd('0x60')]={'name':!_[_0xdcbd('0x20')](_0x4b2d70[_0xdcbd('0x61')])?_0x4b2d70[_0xdcbd('0x61')]:!_[_0xdcbd('0x20')](_0x4b2d70['First_Name'])?_0x4b2d70[_0xdcbd('0x62')]+'\x20'+_0x4b2d70[_0xdcbd('0x63')]:_0x4b2d70[_0xdcbd('0x63')],'id':_0x4b2d70['id']};}if(_0x4b2d70[_0xdcbd('0x42')]===_0xdcbd('0x56')){_0x2bc19a[_0xdcbd('0x64')]={'name':!_[_0xdcbd('0x20')](_0x4b2d70[_0xdcbd('0x61')])?_0x4b2d70[_0xdcbd('0x61')]:!_[_0xdcbd('0x20')](_0x4b2d70[_0xdcbd('0x62')])?_0x4b2d70[_0xdcbd('0x62')]+'\x20'+_0x4b2d70[_0xdcbd('0x63')]:_0x4b2d70[_0xdcbd('0x63')],'id':_0x4b2d70['id']};_0x2bc19a[_0xdcbd('0x65')]=_[_0xdcbd('0x46')](_0x4b2d70[_0xdcbd('0x42')]);}if(_0x39da5b[_0xdcbd('0x66')]){_0x2bc19a[_0xdcbd('0x67')]=moment[_0xdcbd('0x68')](parseInt(_0x39da5b[_0xdcbd('0x66')])*0x3e8)[_0xdcbd('0x34')](_0xdcbd('0x69'));}else if(_0x39da5b[_0xdcbd('0x6a')]&&_0x39da5b[_0xdcbd('0x6b')]){_0x2bc19a[_0xdcbd('0x67')]=moment['utc'](moment(_0x39da5b[_0xdcbd('0x6b')],_0xdcbd('0x6c'))[_0xdcbd('0x6d')](moment(_0x39da5b[_0xdcbd('0x6e')],_0xdcbd('0x6c'))))[_0xdcbd('0x34')]('mm:ss');}switch(_0x39da5b[_0xdcbd('0x6f')]){case'called':_0x2bc19a[_0xdcbd('0x70')]=_0xdcbd('0x71');break;case _0xdcbd('0x72'):case _0xdcbd('0x73'):_0x2bc19a[_0xdcbd('0x70')]=_0xdcbd('0x74');break;case _0xdcbd('0x75'):_0x2bc19a[_0xdcbd('0x70')]=_0xdcbd('0x76');break;case _0xdcbd('0x77'):_0x2bc19a['Call_Result']=_0xdcbd('0x78');break;case _0xdcbd('0x79'):_0x2bc19a[_0xdcbd('0x70')]=_0xdcbd('0x7a');default:}_0x2bc19a['Call_Start_Time']=(_0x4fa6eb===_0xdcbd('0x7b')?moment(_0x39da5b[_0xdcbd('0x6e')])[_0xdcbd('0x34')]('YYYY-MM-DDTHH:mm:ss'):moment(_0x39da5b[_0xdcbd('0x7c')])['format'](_0xdcbd('0x6c')))||moment()['format'](_0xdcbd('0x6c'));_0x2bc19a[_0xdcbd('0x7d')]=_0x4fa6eb||'Inbound';_0x2bc19a=_[_0xdcbd('0x7e')](_0x2bc19a,getCustomFields(_0x4629f5[_0xdcbd('0x7f')],_0x39da5b));return request({'method':_0xdcbd('0x29'),'uri':_0xdcbd('0x44')+_0x15edbb+_0xdcbd('0x80'),'headers':{'Authorization':_0xdcbd('0x37')+_0x5998cf},'body':{'data':[_0x2bc19a]},'json':!![]})['then'](function(_0x3fcc07){if(_0x3fcc07&&_0x3fcc07[_0xdcbd('0x4d')][0x0][_0xdcbd('0x4b')]==='SUCCESS'){logger[_0xdcbd('0x32')](_0xdcbd('0x81'));return{'id':_0x3fcc07[_0xdcbd('0x4d')][0x0][_0xdcbd('0x82')]['id']};}})[_0xdcbd('0x43')](function(_0x517181){logger[_0xdcbd('0x32')](_0xdcbd('0x83'),_0x517181[_0xdcbd('0x31')]);console[_0xdcbd('0x4e')](_0xdcbd('0x83'),_0x517181);});}exports[_0xdcbd('0x84')]=function(_0x58cbf6,_0x3d7d37,_0x3ceb51,_0x525790,_0x346ca5,_0x7ba76e){var _0x197207,_0x50cdec,_0x4501e5;_0x7ba76e['host']=intUtil[_0xdcbd('0x85')](_0x7ba76e[_0xdcbd('0x86')]);_0x7ba76e[_0xdcbd('0x87')]=intUtil[_0xdcbd('0x85')](_0x7ba76e[_0xdcbd('0x87')]);if(_0x346ca5&&_0x346ca5[_0xdcbd('0x88')]){logger['info']('[QUEUE]','Recording\x20is\x20enabled!');_0x3d7d37[_0xdcbd('0x89')]=_0x7ba76e[_0xdcbd('0x87')]+_0xdcbd('0x8a')+_0x3d7d37['uniqueid']+_0xdcbd('0x8b')+md5(_0x3d7d37['uniqueid']);}else{_0x3d7d37[_0xdcbd('0x89')]='';}var _0x21c22a=_0x7ba76e[_0xdcbd('0x86')]===_0xdcbd('0x8c')?'eu':_0xdcbd('0x8d');return getAccessToken(_0x7ba76e)['then'](function(_0x5edcab){_0x4501e5=_0x5edcab;return getUser(_0x4501e5,_0x21c22a,_0x7ba76e,_0x525790[_0xdcbd('0x3b')]);})['then'](function(_0x5da084){_0x197207=_0x5da084;logger[_0xdcbd('0x32')](_0xdcbd('0x8e'),_0x197207['id']);return getEndUser(_0x4501e5,_0x21c22a,_0x7ba76e,_0x3d7d37[_0xdcbd('0x8f')],_0x3d7d37[_0xdcbd('0x90')],_0x197207,_0x3ceb51);})[_0xdcbd('0x2d')](function(_0x276c53){_0x50cdec=_0x276c53;return getCall(_0x4501e5,_0x21c22a,_0x7ba76e,_0x197207,_0x50cdec,_0x3ceb51,_0x3d7d37,_0xdcbd('0x91'));})['then'](function(_0x315db8){if(_0x315db8){logger[_0xdcbd('0x32')](_0xdcbd('0x92'),_0x315db8['id']);logger['info'](_0xdcbd('0x93'),_0xdcbd('0x94'));emit(util[_0xdcbd('0x34')](_0xdcbd('0x95'),_0x525790[_0xdcbd('0x1d')]),_0xdcbd('0x96'),{'uri':_0xdcbd('0x97')+_0x7ba76e[_0xdcbd('0x86')]+'/crm/EntityInfo.do?module=Calls&id='+_0x315db8['id']});}})[_0xdcbd('0x43')](function(_0x3795b5){logger['error'](_0xdcbd('0x93'),JSON[_0xdcbd('0xe')](_0x3795b5));});};exports[_0xdcbd('0x7b')]=function(_0x26dfc0,_0x410839,_0x3fd1dd,_0x34554a,_0x231d8a,_0x18d41d,_0x52bb63){var _0xff04d2,_0xa2b16f,_0x4d598d;_0x18d41d[_0xdcbd('0x86')]=intUtil['stripTrailingSlash'](_0x18d41d[_0xdcbd('0x86')]);_0x18d41d[_0xdcbd('0x87')]=intUtil['stripTrailingSlash'](_0x18d41d['serverUrl']);if(_0x52bb63&&_0x52bb63[_0xdcbd('0x98')]&&_0x52bb63[_0xdcbd('0x98')]!==_0xdcbd('0x99')){logger[_0xdcbd('0x32')](_0xdcbd('0x9a'),_0xdcbd('0x9b'));_0x410839[_0xdcbd('0x89')]=_0x18d41d[_0xdcbd('0x87')]+_0xdcbd('0x8a')+_0x410839['uniqueid']+'/downloads?type=uniqueid&token='+md5(_0x410839['uniqueid']);}var _0x5a08d9=_0x18d41d[_0xdcbd('0x86')]===_0xdcbd('0x8c')?'eu':'com';return getAccessToken(_0x18d41d)[_0xdcbd('0x2d')](function(_0x34a067){_0x4d598d=_0x34a067;return getUser(_0x4d598d,_0x5a08d9,_0x18d41d,_0x34554a['email']);})[_0xdcbd('0x2d')](function(_0x12d424){_0xff04d2=_0x12d424;logger[_0xdcbd('0x32')]('The\x20User\x20ID\x20is:',_0xff04d2['id']);return getEndUser(_0x4d598d,_0x5a08d9,_0x18d41d,_0x410839[_0xdcbd('0x9c')],_0x410839[_0xdcbd('0x9d')],_0xff04d2,_0x3fd1dd);})[_0xdcbd('0x2d')](function(_0xef0742){_0xa2b16f=_0xef0742;return getCall(_0x4d598d,_0x5a08d9,_0x18d41d,_0xff04d2,_0xa2b16f,_0x3fd1dd,_0x410839,_0xdcbd('0x9e'));})[_0xdcbd('0x2d')](function(_0x1a99e8){if(_0x1a99e8){logger[_0xdcbd('0x32')](_0xdcbd('0x92'),_0x1a99e8['id']);logger['info'](_0xdcbd('0x9a'),_0xdcbd('0x94'));emit(util['format'](_0xdcbd('0x95'),_0x34554a[_0xdcbd('0x1d')]),_0xdcbd('0x96'),{'uri':_0xdcbd('0x97')+_0x18d41d[_0xdcbd('0x86')]+_0xdcbd('0x9f')+_0x1a99e8['id']});}})[_0xdcbd('0x43')](function(_0x93f2ce){logger['error'](_0xdcbd('0x9a'),JSON[_0xdcbd('0xe')](_0x93f2ce));});};exports[_0xdcbd('0xa0')]=function(_0x2ff535,_0x2f2c72,_0x294408,_0x1e87ce,_0x4b7544,_0x4c80bc){var _0x164ef9,_0x5c484d,_0x347107;_0x4c80bc[_0xdcbd('0x86')]=intUtil[_0xdcbd('0x85')](_0x4c80bc[_0xdcbd('0x86')]);_0x4c80bc[_0xdcbd('0x87')]=intUtil[_0xdcbd('0x85')](_0x4c80bc[_0xdcbd('0x87')]);if(_0x4b7544&&_0x4b7544[_0xdcbd('0x88')]){logger['info']('['+_0x2f2c72[_0xdcbd('0x6f')]['toUpperCase']()+']',_0xdcbd('0x9b'));_0x2f2c72[_0xdcbd('0x89')]=_0x4c80bc[_0xdcbd('0x87')]+_0xdcbd('0x8a')+_0x2f2c72[_0xdcbd('0xa1')]+_0xdcbd('0x8b')+md5(_0x2f2c72[_0xdcbd('0xa1')]);}else{_0x2f2c72[_0xdcbd('0x89')]='';}var _0x2f33e7=_0x4c80bc[_0xdcbd('0x86')]==='zoho.eu'?'eu':_0xdcbd('0x8d');return getAccessToken(_0x4c80bc)[_0xdcbd('0x2d')](function(_0x41c9db){_0x347107=_0x41c9db;return getUser(_0x347107,_0x2f33e7,_0x4c80bc);})[_0xdcbd('0x2d')](function(_0xc2c9da){_0x164ef9=_0xc2c9da;logger[_0xdcbd('0x32')](_0xdcbd('0x8e'),_0x164ef9['id']);return getEndUser(_0x347107,_0x2f33e7,_0x4c80bc,_0x2f2c72[_0xdcbd('0x8f')],_0x2f2c72[_0xdcbd('0x90')],_0x164ef9,_0x294408);})[_0xdcbd('0x2d')](function(_0x5af85e){_0x5c484d=_0x5af85e;return getCall(_0x347107,_0x2f33e7,_0x4c80bc,_0x164ef9,_0x5c484d,_0x294408,_0x2f2c72,'Inbound');})['then'](function(_0x11a26d){if(_0x11a26d){logger[_0xdcbd('0x32')](_0xdcbd('0x92'),_0x11a26d['id']);}})[_0xdcbd('0x43')](function(_0x382fe2){logger[_0xdcbd('0x2f')]('['+_0x2f2c72[_0xdcbd('0x6f')]['toUpperCase']()+']',JSON['stringify'](_0x382fe2));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x24f7=['format','%s\x20\x27%s\x27\x20failed\x20with\x20code\x20%d\x20and\x20error:\x20%s','info','%s\x20\x27%s\x27\x20succeeded\x20with\x20output:\x20%s','util','trigger','exec','data2','Script','data3','error'];(function(_0x29cc56,_0x572e53){var _0x816a75=function(_0x452807){while(--_0x452807){_0x29cc56['push'](_0x29cc56['shift']());}};_0x816a75(++_0x572e53);}(_0x24f7,0x117));var _0x724f=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0x24f7[_0xa464c9];return _0x3d73c4;};'use strict';var util=require(_0x724f('0x0'));var sh=require('shelljs');var Mustache=require('mustache');var logger=require('../../../../config/logger')(_0x724f('0x1'));exports[_0x724f('0x2')]=function(_0x2922ab,_0x33363c){var _0x396733=_0x2922ab[_0x724f('0x3')]?_0x2922ab[_0x724f('0x3')]:_0x724f('0x4');var _0x42b5a1=_0x2922ab['data3']?Mustache['render'](_0x2922ab[_0x724f('0x5')],_0x33363c):_0x33363c;sh[_0x724f('0x2')](_0x42b5a1,function(_0x176cf9,_0x240c54,_0xcfd3c){if(_0x176cf9!==0x0){logger[_0x724f('0x6')](util[_0x724f('0x7')](_0x724f('0x8'),_0x396733,_0x42b5a1,_0x176cf9,_0xcfd3c));}else{logger[_0x724f('0x9')](util[_0x724f('0x7')](_0x724f('0xa'),_0x396733,_0x42b5a1,_0x240c54));}});};
\ No newline at end of file
+var _0x9caf=['error','format','%s\x20\x27%s\x27\x20failed\x20with\x20code\x20%d\x20and\x20error:\x20%s','info','%s\x20\x27%s\x27\x20succeeded\x20with\x20output:\x20%s','util','mustache','trigger','data2','Script','data3'];(function(_0x45e021,_0x17910a){var _0x37edb4=function(_0x2c4d79){while(--_0x2c4d79){_0x45e021['push'](_0x45e021['shift']());}};_0x37edb4(++_0x17910a);}(_0x9caf,0x15a));var _0xf9ca=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x9caf[_0x3dd15e];return _0x231fd0;};'use strict';var util=require(_0xf9ca('0x0'));var sh=require('shelljs');var Mustache=require(_0xf9ca('0x1'));var logger=require('../../../../config/logger')(_0xf9ca('0x2'));exports['exec']=function(_0x378d68,_0x457784){var _0x19fe95=_0x378d68[_0xf9ca('0x3')]?_0x378d68['data2']:_0xf9ca('0x4');var _0x274e31=_0x378d68['data3']?Mustache['render'](_0x378d68[_0xf9ca('0x5')],_0x457784):_0x457784;sh['exec'](_0x274e31,function(_0x42e5a5,_0x495824,_0xa67fea){if(_0x42e5a5!==0x0){logger[_0xf9ca('0x6')](util[_0xf9ca('0x7')](_0xf9ca('0x8'),_0x19fe95,_0x274e31,_0x42e5a5,_0xa67fea));}else{logger[_0xf9ca('0x9')](util[_0xf9ca('0x7')](_0xf9ca('0xa'),_0x19fe95,_0x274e31,_0x495824));}});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8b1c=['data6','toUpperCase','GET','PUT','data7','body','error','stack','body\x20has\x20been\x20passed\x20to\x20URLforward\x20in\x20a\x20wrong\x20format','info','format','%s\x20%s\x20sending\x20request\x20with\x20following\x20options:\x20%s','data2','then','stringify','statusCode','%s\x20%s\x20failed\x20with\x20status:\x20%d\x20and\x20error:\x20%s\x20%s','name','message','util','lodash','trigger','exec','data1','render','data5','number','headers','parse'];(function(_0x3d34f0,_0x4a5dc0){var _0x135ecd=function(_0x9a81d5){while(--_0x9a81d5){_0x3d34f0['push'](_0x3d34f0['shift']());}};_0x135ecd(++_0x4a5dc0);}(_0x8b1c,0x6a));var _0xc8b1=function(_0x278d7f,_0x16f690){_0x278d7f=_0x278d7f-0x0;var _0x37274c=_0x8b1c[_0x278d7f];return _0x37274c;};'use strict';var rp=require('request-promise');var util=require(_0xc8b1('0x0'));var _=require(_0xc8b1('0x1'));var Mustache=require('mustache');var logger=require('../../../../config/logger')(_0xc8b1('0x2'));exports[_0xc8b1('0x3')]=function(_0x34cc03,_0x297f2f){var _0x53cb98,_0x1c8741;var _0x39370c={'method':_0x34cc03[_0xc8b1('0x4')]['toUpperCase'](),'uri':Mustache[_0xc8b1('0x5')](_0x34cc03['data2'],_0x297f2f),'json':!![],'resolveWithFullResponse':!![],'timeout':typeof parseInt(_0x34cc03[_0xc8b1('0x6')])===_0xc8b1('0x7')&&parseInt(_0x34cc03[_0xc8b1('0x6')])>=0x1&&parseInt(_0x34cc03[_0xc8b1('0x6')])<=0xa?parseInt(_0x34cc03[_0xc8b1('0x6')])*0x3e8:0x5*0x3e8};try{_0x39370c[_0xc8b1('0x8')]=_0x34cc03['data6']?JSON[_0xc8b1('0x9')](Mustache['render'](_0x34cc03[_0xc8b1('0xa')],_0x297f2f)):{};}catch(_0x50ed51){logger['error'](_0x50ed51['stack']);}switch(_0x34cc03[_0xc8b1('0x4')][_0xc8b1('0xb')]()){case _0xc8b1('0xc'):case'DELETE':_0x53cb98=null;_0x39370c['qs']=_0x297f2f;break;case'POST':case _0xc8b1('0xd'):if(_0x34cc03[_0xc8b1('0xe')]){try{_0x53cb98=JSON[_0xc8b1('0x9')](Mustache[_0xc8b1('0x5')](_0x34cc03[_0xc8b1('0xe')],_0x297f2f));_0x39370c[_0xc8b1('0xf')]=_0x53cb98;}catch(_0x32d21e){logger[_0xc8b1('0x10')](_0x32d21e[_0xc8b1('0x11')]);logger['error'](_0xc8b1('0x12'));}}else{_0x53cb98=_0x297f2f;_0x39370c['body']=_0x53cb98;}break;}logger[_0xc8b1('0x13')](util[_0xc8b1('0x14')](_0xc8b1('0x15'),_0x34cc03[_0xc8b1('0x4')],_0x34cc03[_0xc8b1('0x16')],JSON['stringify'](_0x39370c)));rp(_0x39370c)[_0xc8b1('0x17')](function(_0x5b8c26){_0x53cb98=!_['isNil'](_0x53cb98)?',\x20request\x20body:\x20'+_0x53cb98:'';_0x1c8741=typeof _0x5b8c26['body']==='object'?JSON[_0xc8b1('0x18')](_0x5b8c26[_0xc8b1('0xf')]):_0x5b8c26[_0xc8b1('0xf')];logger[_0xc8b1('0x13')](util[_0xc8b1('0x14')]('%s\x20%s\x20succeeded\x20with\x20status:\x20%d\x20and\x20response:\x20%s',_0x34cc03[_0xc8b1('0x4')],_0x34cc03['data2'],_0x5b8c26[_0xc8b1('0x19')],_0x1c8741));})['catch'](function(_0x37e052){logger[_0xc8b1('0x10')](util[_0xc8b1('0x14')](_0xc8b1('0x1a'),_0x34cc03[_0xc8b1('0x4')],_0x34cc03[_0xc8b1('0x16')],_0x37e052[_0xc8b1('0x19')],_0x37e052[_0xc8b1('0x1b')],_0x37e052[_0xc8b1('0x1c')]));});};
\ No newline at end of file
+var _0x3b94=['PUT','data7','body','info','format','%s\x20%s\x20sending\x20request\x20with\x20following\x20options:\x20%s','stringify','then',',\x20request\x20body:\x20','object','%s\x20%s\x20succeeded\x20with\x20status:\x20%d\x20and\x20response:\x20%s','statusCode','catch','%s\x20%s\x20failed\x20with\x20status:\x20%d\x20and\x20error:\x20%s\x20%s','name','message','request-promise','util','lodash','mustache','../../../../config/logger','trigger','data1','toUpperCase','render','data2','data5','number','headers','data6','parse','error','stack','GET','DELETE','POST'];(function(_0x501510,_0x61caa9){var _0x1e6ee5=function(_0x32845b){while(--_0x32845b){_0x501510['push'](_0x501510['shift']());}};_0x1e6ee5(++_0x61caa9);}(_0x3b94,0x178));var _0x43b9=function(_0x512c2a,_0x29da1a){_0x512c2a=_0x512c2a-0x0;var _0x130956=_0x3b94[_0x512c2a];return _0x130956;};'use strict';var rp=require(_0x43b9('0x0'));var util=require(_0x43b9('0x1'));var _=require(_0x43b9('0x2'));var Mustache=require(_0x43b9('0x3'));var logger=require(_0x43b9('0x4'))(_0x43b9('0x5'));exports['exec']=function(_0x210db4,_0xc1e78b){var _0x390677,_0x1e7d15;var _0x1abe2b={'method':_0x210db4[_0x43b9('0x6')][_0x43b9('0x7')](),'uri':Mustache[_0x43b9('0x8')](_0x210db4[_0x43b9('0x9')],_0xc1e78b),'json':!![],'resolveWithFullResponse':!![],'timeout':typeof parseInt(_0x210db4[_0x43b9('0xa')])===_0x43b9('0xb')&&parseInt(_0x210db4[_0x43b9('0xa')])>=0x1&&parseInt(_0x210db4[_0x43b9('0xa')])<=0xa?parseInt(_0x210db4[_0x43b9('0xa')])*0x3e8:0x5*0x3e8};try{_0x1abe2b[_0x43b9('0xc')]=_0x210db4[_0x43b9('0xd')]?JSON[_0x43b9('0xe')](Mustache[_0x43b9('0x8')](_0x210db4['data6'],_0xc1e78b)):{};}catch(_0x2faf6a){logger[_0x43b9('0xf')](_0x2faf6a[_0x43b9('0x10')]);}switch(_0x210db4[_0x43b9('0x6')][_0x43b9('0x7')]()){case _0x43b9('0x11'):case _0x43b9('0x12'):_0x390677=null;_0x1abe2b['qs']=_0xc1e78b;break;case _0x43b9('0x13'):case _0x43b9('0x14'):if(_0x210db4[_0x43b9('0x15')]){try{_0x390677=JSON[_0x43b9('0xe')](Mustache[_0x43b9('0x8')](_0x210db4[_0x43b9('0x15')],_0xc1e78b));_0x1abe2b['body']=_0x390677;}catch(_0x245d55){logger[_0x43b9('0xf')](_0x245d55[_0x43b9('0x10')]);logger[_0x43b9('0xf')]('body\x20has\x20been\x20passed\x20to\x20URLforward\x20in\x20a\x20wrong\x20format');}}else{_0x390677=_0xc1e78b;_0x1abe2b[_0x43b9('0x16')]=_0x390677;}break;}logger[_0x43b9('0x17')](util[_0x43b9('0x18')](_0x43b9('0x19'),_0x210db4[_0x43b9('0x6')],_0x210db4['data2'],JSON[_0x43b9('0x1a')](_0x1abe2b)));rp(_0x1abe2b)[_0x43b9('0x1b')](function(_0x259419){_0x390677=!_['isNil'](_0x390677)?_0x43b9('0x1c')+_0x390677:'';_0x1e7d15=typeof _0x259419[_0x43b9('0x16')]===_0x43b9('0x1d')?JSON[_0x43b9('0x1a')](_0x259419[_0x43b9('0x16')]):_0x259419[_0x43b9('0x16')];logger[_0x43b9('0x17')](util['format'](_0x43b9('0x1e'),_0x210db4[_0x43b9('0x6')],_0x210db4[_0x43b9('0x9')],_0x259419[_0x43b9('0x1f')],_0x1e7d15));})[_0x43b9('0x20')](function(_0x232336){logger[_0x43b9('0xf')](util['format'](_0x43b9('0x21'),_0x210db4[_0x43b9('0x6')],_0x210db4['data2'],_0x232336[_0x43b9('0x1f')],_0x232336[_0x43b9('0x22')],_0x232336[_0x43b9('0x23')]));});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0503=['message','catch','exports','jayson/promise','bluebird','routing','http','request','then','debug','rpc','error'];(function(_0x65a0db,_0x55c5a0){var _0x987620=function(_0x23d53f){while(--_0x23d53f){_0x65a0db['push'](_0x65a0db['shift']());}};_0x987620(++_0x55c5a0);}(_0x0503,0x6f));var _0x3050=function(_0x4fbfd9,_0x3ab91a){_0x4fbfd9=_0x4fbfd9-0x0;var _0x31dc94=_0x0503[_0x4fbfd9];return _0x31dc94;};'use strict';var jayson=require(_0x3050('0x0'));var BPromise=require(_0x3050('0x1'));var logger=require('../../config/logger')(_0x3050('0x2'));var client=jayson['client'][_0x3050('0x3')]({'port':0x2329});client['Request']=function(_0xcb722,_0xb7afc4){return new BPromise(function(_0x412e1b,_0x1d17b9){return client[_0x3050('0x4')](_0xcb722,_0xb7afc4)[_0x3050('0x5')](function(_0x32d57d){logger[_0x3050('0x6')](_0x3050('0x7'),_0x3050('0x2'),_0xcb722,_0xb7afc4,_0x32d57d);if(_0x32d57d[_0x3050('0x8')]){logger[_0x3050('0x8')](_0x3050('0x7'),_0x3050('0x2'),_0xcb722,_0x32d57d[_0x3050('0x8')][_0x3050('0x9')],_0xb7afc4);return _0x1d17b9(_0x32d57d['error']['message']);}else{return _0x412e1b(_0x32d57d['result']);}})[_0x3050('0xa')](function(_0x35631a){logger[_0x3050('0x8')](_0x3050('0x7'),_0x3050('0x2'),_0xcb722,_0x35631a,_0xb7afc4);return _0x1d17b9(_0x35631a);});});};module[_0x3050('0xb')]=client;
\ No newline at end of file
+var _0xa36d=['error','message','result','catch','jayson/promise','../../config/logger','routing','client','http','Request','request','debug'];(function(_0x2df2c4,_0x3b183b){var _0x3244d3=function(_0x26e5b2){while(--_0x26e5b2){_0x2df2c4['push'](_0x2df2c4['shift']());}};_0x3244d3(++_0x3b183b);}(_0xa36d,0x160));var _0xda36=function(_0x424694,_0x35a642){_0x424694=_0x424694-0x0;var _0x126823=_0xa36d[_0x424694];return _0x126823;};'use strict';var jayson=require(_0xda36('0x0'));var BPromise=require('bluebird');var logger=require(_0xda36('0x1'))(_0xda36('0x2'));var client=jayson[_0xda36('0x3')][_0xda36('0x4')]({'port':0x2329});client[_0xda36('0x5')]=function(_0x59f96d,_0x45f5c3){return new BPromise(function(_0x360468,_0x2e2385){return client[_0xda36('0x6')](_0x59f96d,_0x45f5c3)['then'](function(_0x1e1dfa){logger[_0xda36('0x7')]('rpc',_0xda36('0x2'),_0x59f96d,_0x45f5c3,_0x1e1dfa);if(_0x1e1dfa[_0xda36('0x8')]){logger['error']('rpc',_0xda36('0x2'),_0x59f96d,_0x1e1dfa[_0xda36('0x8')][_0xda36('0x9')],_0x45f5c3);return _0x2e2385(_0x1e1dfa[_0xda36('0x8')][_0xda36('0x9')]);}else{return _0x360468(_0x1e1dfa[_0xda36('0xa')]);}})[_0xda36('0xb')](function(_0xee56ce){logger['error']('rpc',_0xda36('0x2'),_0x59f96d,_0xee56ce,_0x45f5c3);return _0x2e2385(_0xee56ce);});});};module['exports']=client;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0659=['mailAccounts','loginMailFrequency','catch','log','bluebird','./server','./realtime','./lib/email','resolve','then','initMailAccounts'];(function(_0x284ffc,_0x11ac29){var _0x3baa39=function(_0x4d70b5){while(--_0x4d70b5){_0x284ffc['push'](_0x284ffc['shift']());}};_0x3baa39(++_0x11ac29);}(_0x0659,0x122));var _0x9065=function(_0x4f0f27,_0x51deba){_0x4f0f27=_0x4f0f27-0x0;var _0x2ce661=_0x0659[_0x4f0f27];return _0x2ce661;};'use strict';var BPromise=require(_0x9065('0x0'));var server=require(_0x9065('0x1'));var Realtime=require(_0x9065('0x2'));var EmailChannel=require(_0x9065('0x3'));var mailAccount=require('./rpc/mailAccount');var setting=require('./rpc/setting');var realtime=new Realtime();var email=new EmailChannel(realtime);function initRealtime(){return BPromise[_0x9065('0x4')]()[_0x9065('0x5')](mailAccount['getMailAccounts']())[_0x9065('0x5')](realtime[_0x9065('0x6')]())[_0x9065('0x5')](function(){email['refresh'](realtime[_0x9065('0x7')]);return realtime;});}function main(){return server['listen'](realtime,email)[_0x9065('0x5')](function(){return initRealtime();})[_0x9065('0x5')](function(){return setting['getSettings']();})[_0x9065('0x5')](function(_0x5389e3){return setInterval(initRealtime,_0x5389e3[_0x9065('0x8')]*0x3e8);})[_0x9065('0x9')](function(_0xff0a9b){console[_0x9065('0xa')](_0xff0a9b);});}main();
\ No newline at end of file
+var _0xbd4e=['loginMailFrequency','catch','log','bluebird','./server','./lib/email','./rpc/mailAccount','then','initMailAccounts','refresh','mailAccounts','getSettings'];(function(_0x38b33a,_0x5d7a7c){var _0x546f58=function(_0x44ae36){while(--_0x44ae36){_0x38b33a['push'](_0x38b33a['shift']());}};_0x546f58(++_0x5d7a7c);}(_0xbd4e,0x1cb));var _0xebd4=function(_0x252efa,_0x4978bf){_0x252efa=_0x252efa-0x0;var _0x2881f6=_0xbd4e[_0x252efa];return _0x2881f6;};'use strict';var BPromise=require(_0xebd4('0x0'));var server=require(_0xebd4('0x1'));var Realtime=require('./realtime');var EmailChannel=require(_0xebd4('0x2'));var mailAccount=require(_0xebd4('0x3'));var setting=require('./rpc/setting');var realtime=new Realtime();var email=new EmailChannel(realtime);function initRealtime(){return BPromise['resolve']()[_0xebd4('0x4')](mailAccount['getMailAccounts']())[_0xebd4('0x4')](realtime[_0xebd4('0x5')]())['then'](function(){email[_0xebd4('0x6')](realtime[_0xebd4('0x7')]);return realtime;});}function main(){return server['listen'](realtime,email)[_0xebd4('0x4')](function(){return initRealtime();})[_0xebd4('0x4')](function(){return setting[_0xebd4('0x8')]();})['then'](function(_0x5968a0){return setInterval(initRealtime,_0x5968a0[_0xebd4('0x9')]*0x3e8);})[_0xebd4('0xa')](function(_0x4b6c6e){console[_0xebd4('0xb')](_0x4b6c6e);});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9062=['then','verified','lodash','moment','bluebird','md5','ioredis','../../../config/environment','../../../config/logger','email','redis','localhost','socket.io-emitter','./imap','./smtp','info','start\x20email\x20channel','mailAccounts','imapAccounts','smtp','prototype','emit','name','key','Imap','status','total','isNil','stringify','mailAccount:update','refresh','active','hasOwnProperty','box','handleImapBox','bind','handleImapEmail','handleImapEnd','error','disabled','connected','messages','lastName','from','notify','Mail\x20accepted\x20from\x20routing','Mail\x20not\x20accepted\x20from\x20routing\x20%s','lastSync','handleImapError','messageStatus','sendMail','verifySmtp','Smtp','verify'];(function(_0x10f9d9,_0x318d6d){var _0x48cdef=function(_0x4e2564){while(--_0x4e2564){_0x10f9d9['push'](_0x10f9d9['shift']());}};_0x48cdef(++_0x318d6d);}(_0x9062,0x6e));var _0x2906=function(_0x9890d7,_0x208c22){_0x9890d7=_0x9890d7-0x0;var _0x41b356=_0x9062[_0x9890d7];return _0x41b356;};'use strict';var _=require(_0x2906('0x0'));var moment=require(_0x2906('0x1'));var BPromise=require(_0x2906('0x2'));var md5=require(_0x2906('0x3'));var Redis=require(_0x2906('0x4'));var config=require(_0x2906('0x5'));var logger=require(_0x2906('0x6'))(_0x2906('0x7'));config[_0x2906('0x8')]=_['defaults'](config['redis'],{'host':_0x2906('0x9'),'port':0x18eb});var io=require(_0x2906('0xa'))(new Redis(config[_0x2906('0x8')]));var EmailImap=require(_0x2906('0xb'));var EmailSmtp=require(_0x2906('0xc'));var mailAccount=require('../rpc/mailAccount');var md5Accounts={};function EmailChannel(_0x37dab3){logger[_0x2906('0xd')](_0x2906('0xe'));this[_0x2906('0xf')]=_0x37dab3[_0x2906('0xf')];this[_0x2906('0x10')]={};this[_0x2906('0x11')]=new EmailSmtp();}EmailChannel[_0x2906('0x12')][_0x2906('0x13')]=function(_0x44275c){var _0xa9a8c8=this[_0x2906('0xf')][_0x44275c];var _0x188a10={'id':_0xa9a8c8['id'],'name':_0xa9a8c8[_0x2906('0x14')],'key':_0xa9a8c8[_0x2906('0x15')],'active':_0xa9a8c8['active'],'Imap':{'status':_0xa9a8c8[_0x2906('0x16')][_0x2906('0x17')],'messageStatus':_0xa9a8c8[_0x2906('0x16')]['messageStatus'],'total':_0xa9a8c8[_0x2906('0x16')][_0x2906('0x18')]}};if(_[_0x2906('0x19')](md5Accounts[_0x44275c])){md5Accounts[_0x44275c]={};}var _0x560028=md5(JSON[_0x2906('0x1a')](_0x188a10));if(md5Accounts[_0x44275c][_0x2906('0x3')]!==_0x560028){md5Accounts[_0x44275c]['md5']=_0x560028;io[_0x2906('0x13')](_0x2906('0x1b'),_0x188a10);}};EmailChannel['prototype'][_0x2906('0x1c')]=function(_0x2e78d2){for(var _0x3d104a in _0x2e78d2){if(_0x2e78d2['hasOwnProperty'](_0x3d104a)){if(_0x2e78d2[_0x3d104a][_0x2906('0x16')]&&_0x2e78d2[_0x3d104a][_0x2906('0x1d')]){var _0x2ba563=_0x2e78d2[_0x3d104a][_0x2906('0x16')];if(!this[_0x2906('0x10')][_0x2906('0x1e')](_0x2ba563['id'])){this[_0x2906('0x10')][_0x2ba563['id']]=new EmailImap(_0x2ba563,_0x2e78d2[_0x3d104a][_0x2906('0x7')]);this['imapAccounts'][_0x2ba563['id']]['on'](_0x2906('0x1f'),this[_0x2906('0x20')][_0x2906('0x21')](this,_0x3d104a));this['imapAccounts'][_0x2ba563['id']]['on'](_0x2906('0x7'),this[_0x2906('0x22')][_0x2906('0x21')](this,_0x3d104a));this[_0x2906('0x10')][_0x2ba563['id']]['on']('end',this[_0x2906('0x23')][_0x2906('0x21')](this,_0x3d104a));this[_0x2906('0x10')][_0x2ba563['id']]['on'](_0x2906('0x24'),this['handleImapError'][_0x2906('0x21')](this,_0x3d104a));}}else{if(_[_0x2906('0x19')](this['mailAccounts'][_0x3d104a][_0x2906('0x16')])){this[_0x2906('0xf')][_0x3d104a][_0x2906('0x16')]={};}this[_0x2906('0xf')][_0x3d104a][_0x2906('0x16')][_0x2906('0x17')]=_0x2906('0x25');this['mailAccounts'][_0x3d104a][_0x2906('0x16')]['messageStatus']='';this[_0x2906('0x13')](_0x3d104a);}}}};EmailChannel[_0x2906('0x12')][_0x2906('0x20')]=function(_0x3de76a,_0x172c4b){if(this[_0x2906('0xf')][_0x3de76a]){this[_0x2906('0xf')][_0x3de76a]['Imap'][_0x2906('0x17')]=_0x2906('0x26');this['mailAccounts'][_0x3de76a]['Imap']['messageStatus']=_0x172c4b['name'];if(_0x172c4b[_0x2906('0x27')]){this[_0x2906('0xf')][_0x3de76a][_0x2906('0x16')][_0x2906('0x18')]=_0x172c4b[_0x2906('0x27')][_0x2906('0x18')];}return this[_0x2906('0x13')](_0x3de76a);}};EmailChannel[_0x2906('0x12')][_0x2906('0x22')]=function(_0x3fed30,_0x44c3d0){logger[_0x2906('0xd')]('New\x20email\x20from\x20%s\x20%s\x20%s\x20to\x20%s',_0x44c3d0['firstName'],_0x44c3d0[_0x2906('0x28')],_0x44c3d0[_0x2906('0x29')],_0x3fed30);if(this['mailAccounts'][_0x3fed30]){return mailAccount[_0x2906('0x2a')](_0x3fed30,_0x44c3d0)['then'](function(_0x401c9d){if(_0x401c9d){logger[_0x2906('0xd')](_0x2906('0x2b'));}})['catch'](function(_0x4700e3){logger[_0x2906('0x24')](_0x2906('0x2c'),JSON[_0x2906('0x1a')](_0x4700e3));});}};EmailChannel['prototype'][_0x2906('0x23')]=function(_0x1010da){if(this['mailAccounts'][_0x1010da]&&this[_0x2906('0xf')][_0x1010da][_0x2906('0x16')]){if(this['imapAccounts'][this['mailAccounts'][_0x1010da][_0x2906('0x16')]['id']]){delete this[_0x2906('0x10')][this[_0x2906('0xf')][_0x1010da]['Imap']['id']];}this[_0x2906('0xf')][_0x1010da][_0x2906('0x16')][_0x2906('0x2d')]=moment();this[_0x2906('0x13')](_0x1010da);}};EmailChannel[_0x2906('0x12')][_0x2906('0x2e')]=function(_0x45a6e2,_0x4c46e3){if(this[_0x2906('0xf')][_0x45a6e2]){this[_0x2906('0xf')][_0x45a6e2][_0x2906('0x16')][_0x2906('0x17')]='error';this[_0x2906('0xf')][_0x45a6e2][_0x2906('0x16')][_0x2906('0x2f')]=_0x4c46e3;return this[_0x2906('0x13')](_0x45a6e2);}};EmailChannel[_0x2906('0x12')][_0x2906('0x30')]=function(_0x4c0a91,_0x4207b1){return this[_0x2906('0x11')]['send'](_0x4c0a91,_0x4207b1);};EmailChannel[_0x2906('0x12')][_0x2906('0x31')]=function(_0x1762c9){var _0x1406c8=this;if(this[_0x2906('0xf')][_0x1762c9['id']]){if(_[_0x2906('0x19')](this[_0x2906('0xf')][_0x1762c9['id']][_0x2906('0x32')])){this['mailAccounts'][_0x1762c9['id']][_0x2906('0x32')]={};}this[_0x2906('0xf')][_0x1762c9['id']][_0x2906('0x32')]['lastSync']=moment();return new BPromise(function(_0x31f511,_0x1249cb){return _0x1406c8['smtp'][_0x2906('0x33')](_0x1762c9)[_0x2906('0x34')](function(_0x3c553d){_0x1406c8[_0x2906('0xf')][_0x1762c9['id']][_0x2906('0x32')][_0x2906('0x17')]=_0x2906('0x35');_0x1406c8['mailAccounts'][_0x1762c9['id']][_0x2906('0x32')][_0x2906('0x2f')]='';_0x1406c8[_0x2906('0x13')](_0x1762c9['id']);_0x31f511(_0x3c553d);})['catch'](function(_0x224865){_0x1406c8[_0x2906('0xf')][_0x1762c9['id']][_0x2906('0x32')]['status']=_0x2906('0x24');_0x1406c8[_0x2906('0xf')][_0x1762c9['id']]['Smtp'][_0x2906('0x2f')]=_0x224865;_0x1406c8[_0x2906('0x13')](_0x1762c9['id']);_0x1249cb(_0x224865);});});}return this[_0x2906('0x11')]['verify'](_0x1762c9);};module['exports']=EmailChannel;
\ No newline at end of file
+var _0xc8db=['prototype','handleImapBox','connected','messages','firstName','from','notify','then','Mail\x20accepted\x20from\x20routing','catch','stringify','handleImapError','error','sendMail','send','verifySmtp','Smtp','lastSync','verify','exports','moment','bluebird','md5','ioredis','../../../config/environment','email','defaults','redis','localhost','socket.io-emitter','./smtp','info','imapAccounts','smtp','emit','mailAccounts','name','key','active','Imap','messageStatus','total','isNil','mailAccount:update','refresh','hasOwnProperty','box','bind','handleImapEmail','handleImapEnd','status','disabled'];(function(_0x257e8f,_0xdc7fc9){var _0x2d8b1e=function(_0x24739a){while(--_0x24739a){_0x257e8f['push'](_0x257e8f['shift']());}};_0x2d8b1e(++_0xdc7fc9);}(_0xc8db,0x1e8));var _0xbc8d=function(_0x27af45,_0x1b57aa){_0x27af45=_0x27af45-0x0;var _0x18df21=_0xc8db[_0x27af45];return _0x18df21;};'use strict';var _=require('lodash');var moment=require(_0xbc8d('0x0'));var BPromise=require(_0xbc8d('0x1'));var md5=require(_0xbc8d('0x2'));var Redis=require(_0xbc8d('0x3'));var config=require(_0xbc8d('0x4'));var logger=require('../../../config/logger')(_0xbc8d('0x5'));config['redis']=_[_0xbc8d('0x6')](config[_0xbc8d('0x7')],{'host':_0xbc8d('0x8'),'port':0x18eb});var io=require(_0xbc8d('0x9'))(new Redis(config[_0xbc8d('0x7')]));var EmailImap=require('./imap');var EmailSmtp=require(_0xbc8d('0xa'));var mailAccount=require('../rpc/mailAccount');var md5Accounts={};function EmailChannel(_0x1a6e36){logger[_0xbc8d('0xb')]('start\x20email\x20channel');this['mailAccounts']=_0x1a6e36['mailAccounts'];this[_0xbc8d('0xc')]={};this[_0xbc8d('0xd')]=new EmailSmtp();}EmailChannel['prototype'][_0xbc8d('0xe')]=function(_0x451e28){var _0x2ce24b=this[_0xbc8d('0xf')][_0x451e28];var _0x11246b={'id':_0x2ce24b['id'],'name':_0x2ce24b[_0xbc8d('0x10')],'key':_0x2ce24b[_0xbc8d('0x11')],'active':_0x2ce24b[_0xbc8d('0x12')],'Imap':{'status':_0x2ce24b[_0xbc8d('0x13')]['status'],'messageStatus':_0x2ce24b['Imap'][_0xbc8d('0x14')],'total':_0x2ce24b[_0xbc8d('0x13')][_0xbc8d('0x15')]}};if(_[_0xbc8d('0x16')](md5Accounts[_0x451e28])){md5Accounts[_0x451e28]={};}var _0x17bbb1=md5(JSON['stringify'](_0x11246b));if(md5Accounts[_0x451e28][_0xbc8d('0x2')]!==_0x17bbb1){md5Accounts[_0x451e28][_0xbc8d('0x2')]=_0x17bbb1;io[_0xbc8d('0xe')](_0xbc8d('0x17'),_0x11246b);}};EmailChannel['prototype'][_0xbc8d('0x18')]=function(_0x4c50f7){for(var _0x492cd0 in _0x4c50f7){if(_0x4c50f7['hasOwnProperty'](_0x492cd0)){if(_0x4c50f7[_0x492cd0][_0xbc8d('0x13')]&&_0x4c50f7[_0x492cd0][_0xbc8d('0x12')]){var _0x172c9e=_0x4c50f7[_0x492cd0][_0xbc8d('0x13')];if(!this['imapAccounts'][_0xbc8d('0x19')](_0x172c9e['id'])){this['imapAccounts'][_0x172c9e['id']]=new EmailImap(_0x172c9e,_0x4c50f7[_0x492cd0]['email']);this[_0xbc8d('0xc')][_0x172c9e['id']]['on'](_0xbc8d('0x1a'),this['handleImapBox'][_0xbc8d('0x1b')](this,_0x492cd0));this[_0xbc8d('0xc')][_0x172c9e['id']]['on']('email',this[_0xbc8d('0x1c')][_0xbc8d('0x1b')](this,_0x492cd0));this['imapAccounts'][_0x172c9e['id']]['on']('end',this[_0xbc8d('0x1d')][_0xbc8d('0x1b')](this,_0x492cd0));this[_0xbc8d('0xc')][_0x172c9e['id']]['on']('error',this['handleImapError']['bind'](this,_0x492cd0));}}else{if(_[_0xbc8d('0x16')](this[_0xbc8d('0xf')][_0x492cd0][_0xbc8d('0x13')])){this[_0xbc8d('0xf')][_0x492cd0][_0xbc8d('0x13')]={};}this[_0xbc8d('0xf')][_0x492cd0][_0xbc8d('0x13')][_0xbc8d('0x1e')]=_0xbc8d('0x1f');this['mailAccounts'][_0x492cd0]['Imap'][_0xbc8d('0x14')]='';this[_0xbc8d('0xe')](_0x492cd0);}}}};EmailChannel[_0xbc8d('0x20')][_0xbc8d('0x21')]=function(_0x43bff5,_0x57c980){if(this[_0xbc8d('0xf')][_0x43bff5]){this[_0xbc8d('0xf')][_0x43bff5][_0xbc8d('0x13')][_0xbc8d('0x1e')]=_0xbc8d('0x22');this['mailAccounts'][_0x43bff5][_0xbc8d('0x13')][_0xbc8d('0x14')]=_0x57c980[_0xbc8d('0x10')];if(_0x57c980[_0xbc8d('0x23')]){this[_0xbc8d('0xf')][_0x43bff5][_0xbc8d('0x13')][_0xbc8d('0x15')]=_0x57c980[_0xbc8d('0x23')][_0xbc8d('0x15')];}return this[_0xbc8d('0xe')](_0x43bff5);}};EmailChannel[_0xbc8d('0x20')]['handleImapEmail']=function(_0x209906,_0x422b74){logger[_0xbc8d('0xb')]('New\x20email\x20from\x20%s\x20%s\x20%s\x20to\x20%s',_0x422b74[_0xbc8d('0x24')],_0x422b74['lastName'],_0x422b74[_0xbc8d('0x25')],_0x209906);if(this[_0xbc8d('0xf')][_0x209906]){return mailAccount[_0xbc8d('0x26')](_0x209906,_0x422b74)[_0xbc8d('0x27')](function(_0xdc1583){if(_0xdc1583){logger[_0xbc8d('0xb')](_0xbc8d('0x28'));}})[_0xbc8d('0x29')](function(_0x119d7e){logger['error']('Mail\x20not\x20accepted\x20from\x20routing\x20%s',JSON[_0xbc8d('0x2a')](_0x119d7e));});}};EmailChannel['prototype']['handleImapEnd']=function(_0x5930d3){if(this['mailAccounts'][_0x5930d3]&&this[_0xbc8d('0xf')][_0x5930d3]['Imap']){if(this['imapAccounts'][this[_0xbc8d('0xf')][_0x5930d3]['Imap']['id']]){delete this[_0xbc8d('0xc')][this['mailAccounts'][_0x5930d3][_0xbc8d('0x13')]['id']];}this[_0xbc8d('0xf')][_0x5930d3][_0xbc8d('0x13')]['lastSync']=moment();this[_0xbc8d('0xe')](_0x5930d3);}};EmailChannel[_0xbc8d('0x20')][_0xbc8d('0x2b')]=function(_0x470b75,_0x22fdbc){if(this[_0xbc8d('0xf')][_0x470b75]){this[_0xbc8d('0xf')][_0x470b75][_0xbc8d('0x13')][_0xbc8d('0x1e')]=_0xbc8d('0x2c');this[_0xbc8d('0xf')][_0x470b75]['Imap'][_0xbc8d('0x14')]=_0x22fdbc;return this[_0xbc8d('0xe')](_0x470b75);}};EmailChannel['prototype'][_0xbc8d('0x2d')]=function(_0x3037e0,_0x399217){return this[_0xbc8d('0xd')][_0xbc8d('0x2e')](_0x3037e0,_0x399217);};EmailChannel[_0xbc8d('0x20')][_0xbc8d('0x2f')]=function(_0x2dacb1){var _0x10dba3=this;if(this['mailAccounts'][_0x2dacb1['id']]){if(_[_0xbc8d('0x16')](this['mailAccounts'][_0x2dacb1['id']][_0xbc8d('0x30')])){this[_0xbc8d('0xf')][_0x2dacb1['id']][_0xbc8d('0x30')]={};}this[_0xbc8d('0xf')][_0x2dacb1['id']][_0xbc8d('0x30')][_0xbc8d('0x31')]=moment();return new BPromise(function(_0x47c6f5,_0xdf478e){return _0x10dba3[_0xbc8d('0xd')][_0xbc8d('0x32')](_0x2dacb1)[_0xbc8d('0x27')](function(_0x688f62){_0x10dba3['mailAccounts'][_0x2dacb1['id']][_0xbc8d('0x30')]['status']='verified';_0x10dba3['mailAccounts'][_0x2dacb1['id']][_0xbc8d('0x30')]['messageStatus']='';_0x10dba3[_0xbc8d('0xe')](_0x2dacb1['id']);_0x47c6f5(_0x688f62);})[_0xbc8d('0x29')](function(_0x391845){_0x10dba3[_0xbc8d('0xf')][_0x2dacb1['id']][_0xbc8d('0x30')][_0xbc8d('0x1e')]=_0xbc8d('0x2c');_0x10dba3[_0xbc8d('0xf')][_0x2dacb1['id']]['Smtp'][_0xbc8d('0x14')]=_0x391845;_0x10dba3[_0xbc8d('0xe')](_0x2dacb1['id']);_0xdf478e(_0x391845);});});}return this['smtp']['verify'](_0x2dacb1);};module[_0xbc8d('0x33')]=EmailChannel;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x008d=['password','host','port','tls','autotls','required','getHost','prototype','handleOpenBox','handleError','box','readUnseen','search','UNSEEN','handleReadUnseen','once','handleFetchError','closeBox','handleCloseBox','handleFetchMessage','body','handleMessageBody','attributes','handleMessageAttributes','handleMessageEnd','handleSimpleParser','parser','emit','stringify','textCode','hasOwnProperty','path','util','imap','lodash','randomstring','mailparser','simpleParser','iconv','Iconv','EventEmitter','./utils','../../../config/logger','email','mailbox','INBOX','account','ready','handleReady','bind','end','handleEnd','error','connect','inherits','getAccount','connTimeout','authTimeout','isNil','service','authentication','user'];(function(_0x416f79,_0x3b39cd){var _0x4bc068=function(_0x4d36ef){while(--_0x4d36ef){_0x416f79['push'](_0x416f79['shift']());}};_0x4bc068(++_0x3b39cd);}(_0x008d,0x9b));var _0xd008=function(_0x122ef9,_0x451d2a){_0x122ef9=_0x122ef9-0x0;var _0x42fba0=_0x008d[_0x122ef9];return _0x42fba0;};'use strict';var fs=require('fs');var path=require(_0xd008('0x0'));var util=require(_0xd008('0x1'));var Imap=require(_0xd008('0x2'));var _=require(_0xd008('0x3'));var rs=require(_0xd008('0x4'));var simpleParser=require(_0xd008('0x5'))[_0xd008('0x6')];var Iconv=require(_0xd008('0x7'))[_0xd008('0x8')];var EventEmitter=require('events')[_0xd008('0x9')];var utils=require(_0xd008('0xa'));var logger=require(_0xd008('0xb'))(_0xd008('0xc'));function EmailImap(_0x367e24,_0x376da2){this[_0xd008('0xd')]=_0xd008('0xe');this[_0xd008('0xf')]=this['getAccount'](_0x367e24,_0x376da2);this[_0xd008('0x2')]=new Imap(this['account']);this[_0xd008('0x2')]['once'](_0xd008('0x10'),this[_0xd008('0x11')][_0xd008('0x12')](this));this['imap']['once'](_0xd008('0x13'),this[_0xd008('0x14')][_0xd008('0x12')](this));this[_0xd008('0x2')]['on'](_0xd008('0x15'),this['handleError'][_0xd008('0x12')](this));this[_0xd008('0x2')][_0xd008('0x16')]();}util[_0xd008('0x17')](EmailImap,EventEmitter);EmailImap['prototype'][_0xd008('0x18')]=function(_0x172f8a,_0x46ac0b){var _0x37563d={'connTimeout':_0x172f8a[_0xd008('0x19')]?_0x172f8a['connTimeout']*0x3e8:0x2710,'authTimeout':_0x172f8a['authTimeout']?_0x172f8a[_0xd008('0x1a')]*0x3e8:0x1388};if(_[_0xd008('0x1b')](_0x172f8a[_0xd008('0x1c')])){if(_0x172f8a[_0xd008('0x1d')]){_0x37563d[_0xd008('0x1e')]=_0x172f8a['user'];_0x37563d[_0xd008('0x1f')]=_0x172f8a['password'];}_0x37563d[_0xd008('0x20')]=_0x172f8a[_0xd008('0x20')];_0x37563d[_0xd008('0x21')]=_0x172f8a['port']||0x3e1;if(_0x172f8a[_0xd008('0x22')]){_0x37563d[_0xd008('0x22')]=!![];}else{_0x37563d[_0xd008('0x22')]=![];_0x37563d[_0xd008('0x23')]=_0xd008('0x24');}}else{_0x37563d[_0xd008('0x1e')]=_0x172f8a[_0xd008('0x1e')];_0x37563d[_0xd008('0x1f')]=_0x172f8a[_0xd008('0x1f')];_0x37563d['host']=utils[_0xd008('0x25')](_0x172f8a['service']);_0x37563d['port']=0x3e1;_0x37563d[_0xd008('0x22')]=!![];}_0x37563d['email']=_0x46ac0b||_0x172f8a['user']||'anonymous@xcally.com';return _0x37563d;};EmailImap[_0xd008('0x26')][_0xd008('0x11')]=function(){this[_0xd008('0x2')]['openBox'](this[_0xd008('0xd')],![],this[_0xd008('0x27')]['bind'](this));};EmailImap[_0xd008('0x26')]['handleOpenBox']=function(_0x22b944,_0x37bab0){if(_0x22b944){this[_0xd008('0x28')](_0x22b944,!![]);}else{this['emit'](_0xd008('0x29'),_0x37bab0);this[_0xd008('0x2a')]();}};EmailImap[_0xd008('0x26')]['handleCloseBox']=function(_0x20e9ca){if(_0x20e9ca){this[_0xd008('0x28')](_0x20e9ca,!![]);}else{this['imap']['end']();}};EmailImap[_0xd008('0x26')][_0xd008('0x2a')]=function(){this[_0xd008('0x2')][_0xd008('0x2b')]([_0xd008('0x2c')],this[_0xd008('0x2d')][_0xd008('0x12')](this));};EmailImap[_0xd008('0x26')][_0xd008('0x2d')]=function(_0x257103,_0x3b59c6){if(_0x257103){this[_0xd008('0x28')](_0x257103,!![]);}else{if(_0x3b59c6['length']){try{var _0x30cae1=this[_0xd008('0x2')]['fetch'](_0x3b59c6,{'bodies':'','markSeen':!![]});_0x30cae1['on']('message',this['handleFetchMessage'][_0xd008('0x12')](this));_0x30cae1[_0xd008('0x2e')]('error',this[_0xd008('0x2f')][_0xd008('0x12')](this));_0x30cae1[_0xd008('0x2e')](_0xd008('0x13'),this['handleFetchEnd'][_0xd008('0x12')](this));}catch(_0x10f51c){logger[_0xd008('0x15')](_0x10f51c);}}else{this[_0xd008('0x2')][_0xd008('0x30')](!![],this[_0xd008('0x31')][_0xd008('0x12')](this));}}};EmailImap[_0xd008('0x26')][_0xd008('0x32')]=function(_0x25affc,_0x17b224){_0x25affc['on'](_0xd008('0x33'),this[_0xd008('0x34')][_0xd008('0x12')](this));_0x25affc[_0xd008('0x2e')](_0xd008('0x35'),this[_0xd008('0x36')][_0xd008('0x12')](this));_0x25affc[_0xd008('0x2e')]('end',this[_0xd008('0x37')][_0xd008('0x12')](this));};EmailImap['prototype']['handleMessageBody']=function(_0xd65e80,_0x3197e1){simpleParser(_0xd65e80,{'Iconv':Iconv},this[_0xd008('0x38')]['bind'](this));};EmailImap['prototype'][_0xd008('0x36')]=function(_0x59d10f){};EmailImap[_0xd008('0x26')][_0xd008('0x37')]=function(){};EmailImap[_0xd008('0x26')][_0xd008('0x38')]=function(_0x24fe36,_0x4058a4){if(_0x24fe36){logger[_0xd008('0x15')](_0x24fe36);}else{var _0x4d28c8=this;utils[_0xd008('0x39')](this[_0xd008('0xf')],_0x4058a4,function(_0x3402bf){_0x4d28c8[_0xd008('0x3a')](_0xd008('0xc'),_0x3402bf);});}};EmailImap[_0xd008('0x26')]['handleFetchEnd']=function(){this[_0xd008('0x2')][_0xd008('0x30')](!![],this['handleCloseBox'][_0xd008('0x12')](this));};EmailImap[_0xd008('0x26')][_0xd008('0x2f')]=function(_0x59e4a7){this[_0xd008('0x28')](_0x59e4a7);this[_0xd008('0x2')][_0xd008('0x30')](!![],this[_0xd008('0x31')]['bind'](this));};EmailImap[_0xd008('0x26')]['handleEnd']=function(){this[_0xd008('0x3a')](_0xd008('0x13'));};EmailImap[_0xd008('0x26')][_0xd008('0x28')]=function(_0x26cb59,_0x2adb4a){logger[_0xd008('0x15')]('handleError',this['account'][_0xd008('0xc')],JSON[_0xd008('0x3b')](_0x26cb59));var _0x797e53='';if(_0x26cb59){if(_0x26cb59[_0xd008('0x3c')]){_0x797e53=_0x26cb59[_0xd008('0x3c')];}else{for(var _0x4c71c1 in _0x26cb59){if(_0x26cb59[_0xd008('0x3d')](_0x4c71c1)){_0x797e53+=_['upperFirst'](_0x4c71c1)+':\x20'+_0x26cb59[_0x4c71c1]+'\x0a';}}}}if(_0x2adb4a){this['imap'][_0xd008('0x13')]();}else{this['emit'](_0xd008('0x15'),_0x797e53);this[_0xd008('0x3a')]('end');}};module['exports']=EmailImap;
\ No newline at end of file
+var _0xb93f=['end','handleEnd','error','handleError','bind','connect','inherits','connTimeout','authTimeout','isNil','service','user','password','host','port','tls','autotls','required','getHost','anonymous@xcally.com','prototype','handleOpenBox','box','readUnseen','search','UNSEEN','handleReadUnseen','length','fetch','message','handleFetchMessage','handleMessageBody','attributes','handleMessageAttributes','handleMessageEnd','handleSimpleParser','parser','handleCloseBox','handleFetchError','stringify','textCode','upperFirst','emit','exports','path','util','mailparser','simpleParser','iconv','EventEmitter','./utils','email','mailbox','INBOX','account','imap','once','ready','handleReady'];(function(_0x5837d1,_0x4661e0){var _0x43b3b7=function(_0x22c638){while(--_0x22c638){_0x5837d1['push'](_0x5837d1['shift']());}};_0x43b3b7(++_0x4661e0);}(_0xb93f,0x67));var _0xfb93=function(_0x6d6a66,_0x2924af){_0x6d6a66=_0x6d6a66-0x0;var _0x11eb6e=_0xb93f[_0x6d6a66];return _0x11eb6e;};'use strict';var fs=require('fs');var path=require(_0xfb93('0x0'));var util=require(_0xfb93('0x1'));var Imap=require('imap');var _=require('lodash');var rs=require('randomstring');var simpleParser=require(_0xfb93('0x2'))[_0xfb93('0x3')];var Iconv=require(_0xfb93('0x4'))['Iconv'];var EventEmitter=require('events')[_0xfb93('0x5')];var utils=require(_0xfb93('0x6'));var logger=require('../../../config/logger')(_0xfb93('0x7'));function EmailImap(_0x5118b2,_0x3602d5){this[_0xfb93('0x8')]=_0xfb93('0x9');this[_0xfb93('0xa')]=this['getAccount'](_0x5118b2,_0x3602d5);this[_0xfb93('0xb')]=new Imap(this[_0xfb93('0xa')]);this['imap'][_0xfb93('0xc')](_0xfb93('0xd'),this[_0xfb93('0xe')]['bind'](this));this[_0xfb93('0xb')][_0xfb93('0xc')](_0xfb93('0xf'),this[_0xfb93('0x10')]['bind'](this));this[_0xfb93('0xb')]['on'](_0xfb93('0x11'),this[_0xfb93('0x12')][_0xfb93('0x13')](this));this[_0xfb93('0xb')][_0xfb93('0x14')]();}util[_0xfb93('0x15')](EmailImap,EventEmitter);EmailImap['prototype']['getAccount']=function(_0x484e68,_0x12a0a1){var _0x2b4bb8={'connTimeout':_0x484e68['connTimeout']?_0x484e68[_0xfb93('0x16')]*0x3e8:0x2710,'authTimeout':_0x484e68['authTimeout']?_0x484e68[_0xfb93('0x17')]*0x3e8:0x1388};if(_[_0xfb93('0x18')](_0x484e68[_0xfb93('0x19')])){if(_0x484e68['authentication']){_0x2b4bb8['user']=_0x484e68[_0xfb93('0x1a')];_0x2b4bb8['password']=_0x484e68[_0xfb93('0x1b')];}_0x2b4bb8[_0xfb93('0x1c')]=_0x484e68[_0xfb93('0x1c')];_0x2b4bb8[_0xfb93('0x1d')]=_0x484e68[_0xfb93('0x1d')]||0x3e1;if(_0x484e68[_0xfb93('0x1e')]){_0x2b4bb8['tls']=!![];}else{_0x2b4bb8['tls']=![];_0x2b4bb8[_0xfb93('0x1f')]=_0xfb93('0x20');}}else{_0x2b4bb8[_0xfb93('0x1a')]=_0x484e68[_0xfb93('0x1a')];_0x2b4bb8[_0xfb93('0x1b')]=_0x484e68[_0xfb93('0x1b')];_0x2b4bb8[_0xfb93('0x1c')]=utils[_0xfb93('0x21')](_0x484e68[_0xfb93('0x19')]);_0x2b4bb8[_0xfb93('0x1d')]=0x3e1;_0x2b4bb8[_0xfb93('0x1e')]=!![];}_0x2b4bb8['email']=_0x12a0a1||_0x484e68['user']||_0xfb93('0x22');return _0x2b4bb8;};EmailImap[_0xfb93('0x23')][_0xfb93('0xe')]=function(){this[_0xfb93('0xb')]['openBox'](this[_0xfb93('0x8')],![],this[_0xfb93('0x24')][_0xfb93('0x13')](this));};EmailImap[_0xfb93('0x23')][_0xfb93('0x24')]=function(_0x4df18d,_0x545620){if(_0x4df18d){this['handleError'](_0x4df18d,!![]);}else{this['emit'](_0xfb93('0x25'),_0x545620);this[_0xfb93('0x26')]();}};EmailImap['prototype']['handleCloseBox']=function(_0x573daf){if(_0x573daf){this[_0xfb93('0x12')](_0x573daf,!![]);}else{this[_0xfb93('0xb')][_0xfb93('0xf')]();}};EmailImap[_0xfb93('0x23')][_0xfb93('0x26')]=function(){this[_0xfb93('0xb')][_0xfb93('0x27')]([_0xfb93('0x28')],this['handleReadUnseen']['bind'](this));};EmailImap[_0xfb93('0x23')][_0xfb93('0x29')]=function(_0x2812a0,_0x22d663){if(_0x2812a0){this[_0xfb93('0x12')](_0x2812a0,!![]);}else{if(_0x22d663[_0xfb93('0x2a')]){try{var _0x2b35f3=this['imap'][_0xfb93('0x2b')](_0x22d663,{'bodies':'','markSeen':!![]});_0x2b35f3['on'](_0xfb93('0x2c'),this[_0xfb93('0x2d')][_0xfb93('0x13')](this));_0x2b35f3['once'](_0xfb93('0x11'),this['handleFetchError'][_0xfb93('0x13')](this));_0x2b35f3[_0xfb93('0xc')](_0xfb93('0xf'),this['handleFetchEnd'][_0xfb93('0x13')](this));}catch(_0x2f5fc6){logger[_0xfb93('0x11')](_0x2f5fc6);}}else{this[_0xfb93('0xb')]['closeBox'](!![],this['handleCloseBox'][_0xfb93('0x13')](this));}}};EmailImap[_0xfb93('0x23')][_0xfb93('0x2d')]=function(_0x13fda7,_0x5d36a4){_0x13fda7['on']('body',this[_0xfb93('0x2e')][_0xfb93('0x13')](this));_0x13fda7[_0xfb93('0xc')](_0xfb93('0x2f'),this[_0xfb93('0x30')][_0xfb93('0x13')](this));_0x13fda7[_0xfb93('0xc')](_0xfb93('0xf'),this[_0xfb93('0x31')][_0xfb93('0x13')](this));};EmailImap[_0xfb93('0x23')]['handleMessageBody']=function(_0x6594e3,_0x10272a){simpleParser(_0x6594e3,{'Iconv':Iconv},this[_0xfb93('0x32')][_0xfb93('0x13')](this));};EmailImap[_0xfb93('0x23')][_0xfb93('0x30')]=function(_0xd379e){};EmailImap['prototype'][_0xfb93('0x31')]=function(){};EmailImap[_0xfb93('0x23')][_0xfb93('0x32')]=function(_0x21d073,_0x41e603){if(_0x21d073){logger[_0xfb93('0x11')](_0x21d073);}else{var _0x2e7578=this;utils[_0xfb93('0x33')](this[_0xfb93('0xa')],_0x41e603,function(_0xc40f45){_0x2e7578['emit'](_0xfb93('0x7'),_0xc40f45);});}};EmailImap[_0xfb93('0x23')]['handleFetchEnd']=function(){this[_0xfb93('0xb')]['closeBox'](!![],this[_0xfb93('0x34')][_0xfb93('0x13')](this));};EmailImap[_0xfb93('0x23')][_0xfb93('0x35')]=function(_0x44eb5f){this[_0xfb93('0x12')](_0x44eb5f);this[_0xfb93('0xb')]['closeBox'](!![],this[_0xfb93('0x34')]['bind'](this));};EmailImap['prototype'][_0xfb93('0x10')]=function(){this['emit'](_0xfb93('0xf'));};EmailImap[_0xfb93('0x23')][_0xfb93('0x12')]=function(_0x16f609,_0x7c1def){logger[_0xfb93('0x11')](_0xfb93('0x12'),this['account'][_0xfb93('0x7')],JSON[_0xfb93('0x36')](_0x16f609));var _0x345df4='';if(_0x16f609){if(_0x16f609[_0xfb93('0x37')]){_0x345df4=_0x16f609[_0xfb93('0x37')];}else{for(var _0x1a51bb in _0x16f609){if(_0x16f609['hasOwnProperty'](_0x1a51bb)){_0x345df4+=_[_0xfb93('0x38')](_0x1a51bb)+':\x20'+_0x16f609[_0x1a51bb]+'\x0a';}}}}if(_0x7c1def){this[_0xfb93('0xb')][_0xfb93('0xf')]();}else{this[_0xfb93('0x39')]('error',_0x345df4);this[_0xfb93('0x39')](_0xfb93('0xf'));}};module[_0xfb93('0x3a')]=EmailImap;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9e77=['sendMail','toString','verify','createTransport','Not\x20verifired','exports','bluebird','nodemailer-plugin-inline-base64','prototype','compile'];(function(_0x408de5,_0x24fa7b){var _0x2015a1=function(_0x13082c){while(--_0x13082c){_0x408de5['push'](_0x408de5['shift']());}};_0x2015a1(++_0x24fa7b);}(_0x9e77,0x146));var _0x79e7=function(_0x3f3c8f,_0x486c6a){_0x3f3c8f=_0x3f3c8f-0x0;var _0x357286=_0x9e77[_0x3f3c8f];return _0x357286;};'use strict';var nodemailer=require('nodemailer');var BPromise=require(_0x79e7('0x0'));var inlineBase64=require(_0x79e7('0x1'));function EmailSmtp(){}EmailSmtp[_0x79e7('0x2')]['send']=function(_0x3e957f,_0x57a8ff){return new BPromise(function(_0x435736,_0x371375){var _0x197bca=nodemailer['createTransport'](_0x3e957f);_0x197bca['use'](_0x79e7('0x3'),inlineBase64());_0x197bca[_0x79e7('0x4')](_0x57a8ff,function(_0xd2693c,_0xd25a77){if(_0xd2693c){_0x371375(_0xd2693c[_0x79e7('0x5')]());}else{_0x435736(_0xd25a77);}});});};EmailSmtp[_0x79e7('0x2')][_0x79e7('0x6')]=function(_0x5d7562){return new BPromise(function(_0x3acc5d,_0x3d53ce){var _0x3fc7e8=nodemailer[_0x79e7('0x7')](_0x5d7562);_0x3fc7e8['verify'](function(_0x539a6b,_0x1465da){if(_0x539a6b){_0x3d53ce(_0x539a6b[_0x79e7('0x5')]());}else{if(_0x1465da){_0x3acc5d(_0x1465da);}else{_0x3d53ce(_0x79e7('0x8'));}}});});};module[_0x79e7('0x9')]=EmailSmtp;
\ No newline at end of file
+var _0x49e4=['prototype','send','use','sendMail','toString','verify','createTransport','exports','nodemailer'];(function(_0x125299,_0x582f74){var _0x326766=function(_0x37f3ec){while(--_0x37f3ec){_0x125299['push'](_0x125299['shift']());}};_0x326766(++_0x582f74);}(_0x49e4,0xbc));var _0x449e=function(_0x29e69b,_0x54201d){_0x29e69b=_0x29e69b-0x0;var _0xbe343c=_0x49e4[_0x29e69b];return _0xbe343c;};'use strict';var nodemailer=require(_0x449e('0x0'));var BPromise=require('bluebird');var inlineBase64=require('nodemailer-plugin-inline-base64');function EmailSmtp(){}EmailSmtp[_0x449e('0x1')][_0x449e('0x2')]=function(_0xdc314e,_0x2efe74){return new BPromise(function(_0x36cac0,_0x496633){var _0x1a825e=nodemailer['createTransport'](_0xdc314e);_0x1a825e[_0x449e('0x3')]('compile',inlineBase64());_0x1a825e[_0x449e('0x4')](_0x2efe74,function(_0x20fac3,_0xc98cc6){if(_0x20fac3){_0x496633(_0x20fac3[_0x449e('0x5')]());}else{_0x36cac0(_0xc98cc6);}});});};EmailSmtp[_0x449e('0x1')][_0x449e('0x6')]=function(_0x2ce115){return new BPromise(function(_0x3f6391,_0x4b0809){var _0x450376=nodemailer[_0x449e('0x7')](_0x2ce115);_0x450376[_0x449e('0x6')](function(_0x321fbc,_0x4d2416){if(_0x321fbc){_0x4b0809(_0x321fbc[_0x449e('0x5')]());}else{if(_0x4d2416){_0x3f6391(_0x4d2416);}else{_0x4b0809('Not\x20verifired');}}});});};module[_0x449e('0x8')]=EmailSmtp;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2015=['parseBuffer','first','<p>Empty\x20message</p>','Attachments','Title','Data','getHost','gmail','yahoo','imap.mail.yahoo.com','imap-mail.outlook.com','outlook365','127.0.0.1','lodash','moment','randomstring','path','util','node-tnef','../../../config/logger','email','head','value','address','anonymous','generate','@xcally.com','name','indexOf','split','length','slice','join','Anonymous','pop','isEmpty','test','html','replace','<img','attachments','forEach','push','filename','_SRC','\x20]</span>','body','textAsHtml','originTo','message','originCc','includes','bcc','attach','type','attachment','attachment-','now','root','server/files/attachments/','writeFileSync','contentType','headerLines','Auto-Submitted:\x20auto-replied','X-Auto-Response-Suppress:\x20All','Precedence:\x20auto_reply','line','isAutoreply','parser','from','subject','messageId','inReplyTo','date','filter','info','format','Email\x20message\x20%s\x20is\x20in\x20TNEF\x20format:\x20message\x20content\x20will\x20be\x20converted\x20by\x20the\x20system'];(function(_0x254f6d,_0x450652){var _0x1bca96=function(_0x5207b4){while(--_0x5207b4){_0x254f6d['push'](_0x254f6d['shift']());}};_0x1bca96(++_0x450652);}(_0x2015,0x193));var _0x5201=function(_0x572e03,_0x24f143){_0x572e03=_0x572e03-0x0;var _0x8fcb6e=_0x2015[_0x572e03];return _0x8fcb6e;};'use strict';var _=require(_0x5201('0x0'));var moment=require(_0x5201('0x1'));var random=require(_0x5201('0x2'));var fs=require('fs');var path=require(_0x5201('0x3'));var util=require(_0x5201('0x4'));var tnef=require(_0x5201('0x5'));var logger=require(_0x5201('0x6'))(_0x5201('0x7'));var config=require('../../../config/environment');function getAddress(_0x95d6ae){var _0x2fa026=_[_0x5201('0x8')](_0x95d6ae[_0x5201('0x9')]);return _0x2fa026&&_0x2fa026[_0x5201('0xa')]?_0x2fa026[_0x5201('0xa')]:_0x5201('0xb')+random[_0x5201('0xc')](0x6)+_0x5201('0xd');}function getFirstName(_0x6fc2c3){var _0x516b4e=_[_0x5201('0x8')](_0x6fc2c3[_0x5201('0x9')]);if(_0x516b4e&&_0x516b4e['name']){if(_0x516b4e[_0x5201('0xe')]==_0x516b4e[_0x5201('0xa')]){return _0x516b4e[_0x5201('0xe')]['substring'](0x0,_0x516b4e[_0x5201('0xe')][_0x5201('0xf')]('@'));}var _0x356a38=_0x516b4e[_0x5201('0xe')][_0x5201('0x10')](/\s+/);return _0x356a38[_0x5201('0x11')]>0x1?_0x356a38[_0x5201('0x12')](0x0,-0x1)[_0x5201('0x13')]('\x20'):_0x516b4e[_0x5201('0xe')];}return _0x5201('0x14');}function getLastName(_0x341ea8){var _0x6629bc=_['head'](_0x341ea8[_0x5201('0x9')]);if(_0x6629bc&&_0x6629bc[_0x5201('0xe')]){var _0x578325=_0x6629bc['name'][_0x5201('0x10')](/\s+/);return _0x578325[_0x5201('0x11')]>0x1?_0x578325[_0x5201('0x15')]():'';}return'';}function getMails(_0x5b3184,_0x4c6d67){var _0x26856f='';for(var _0x582210=0x0;_0x582210<_0x4c6d67[_0x5201('0x9')]['length'];_0x582210+=0x1){if(_0x4c6d67[_0x5201('0x9')][_0x582210]['address']!==_0x5b3184){if(!_[_0x5201('0x16')](_0x26856f)){_0x26856f+=',';}_0x26856f+=_0x4c6d67[_0x5201('0x9')][_0x582210][_0x5201('0xe')]||_0x4c6d67[_0x5201('0x9')][_0x582210]['address']||'';_0x26856f+='\x20<';_0x26856f+=_0x4c6d67['value'][_0x582210][_0x5201('0xa')]?_0x4c6d67[_0x5201('0x9')][_0x582210][_0x5201('0xa')]:'anonymous'+random[_0x5201('0xc')](0x6)+_0x5201('0xd');_0x26856f+='>';}}return _0x26856f;}function parseEmail(_0x2ffb57,_0x446bee,_0xb6f07d){if(_0x446bee['html']){var _0x15fade=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x15fade[_0x5201('0x17')](_0x446bee[_0x5201('0x18')])){_0x446bee[_0x5201('0x18')]=_0x446bee[_0x5201('0x18')][_0x5201('0x19')](_0x15fade,'');}if(_0x446bee[_0x5201('0x18')]['includes'](_0x5201('0x1a'))){var _0x428ce9=[];_0x446bee[_0x5201('0x1b')][_0x5201('0x1c')](_0x3c655b=>{_0x428ce9[_0x5201('0x1d')](_0x3c655b[_0x5201('0x1e')]);});var _0x43ca02=/<img.*? _SRC(.*?)[^>]+>/g;var _0x171d20=/src="data:image\/([a-zA-Z]*);base64,([^"]*)"/g;var _0x2c7a2c=_0x446bee['html'][_0x5201('0x19')](_0x171d20,_0x5201('0x1f'));var _0x48404e=_0x2c7a2c[_0x5201('0x19')](_0x43ca02,'_IMG');for(let _0x4edc6a=0x0;_0x4edc6a<_0x428ce9[_0x5201('0x11')];_0x4edc6a++){var _0x1707f5=_0x48404e[_0x5201('0x19')]('_IMG','<span\x20style=font-weight:bold>\x20[Attachment:\x20'+_0x428ce9[_0x4edc6a]+_0x5201('0x20'));_0x48404e=_0x1707f5;}_0x446bee[_0x5201('0x18')]=_0x48404e;}_0xb6f07d[_0x5201('0x21')]=_0x446bee[_0x5201('0x18')];}else{_0xb6f07d['body']=_0x446bee[_0x5201('0x22')];}if(_0xb6f07d[_0x5201('0x21')]){_0xb6f07d[_0x5201('0x21')]=_0xb6f07d[_0x5201('0x21')][_0x5201('0x19')](/<a\s+/gi,'<a\x20target=\x22_blank\x22\x20');}if(_0x446bee['to']){_0xb6f07d['message'][_0x5201('0x23')]=getMails(null,_0x446bee['to']);var _0x408255=getMails(_0x2ffb57[_0x5201('0x7')],_0x446bee['to']);if(!_[_0x5201('0x16')](_0x408255)){_0xb6f07d[_0x5201('0x24')]['cc']+=_0x408255;}}if(_0x446bee['cc']){_0xb6f07d[_0x5201('0x24')][_0x5201('0x25')]=getMails(null,_0x446bee['cc']);var _0x4f0537=getMails(_0x2ffb57[_0x5201('0x7')],_0x446bee['cc']);if(!_[_0x5201('0x16')](_0x4f0537)){if(!_[_0x5201('0x16')](_0xb6f07d['message']['cc'])){_0xb6f07d[_0x5201('0x24')]['cc']+=',';}_0xb6f07d[_0x5201('0x24')]['cc']+=_0x4f0537;}}if(!_[_0x5201('0x26')](_0xb6f07d[_0x5201('0x24')][_0x5201('0x23')],_0x2ffb57[_0x5201('0x7')])&&!_[_0x5201('0x26')](_0xb6f07d[_0x5201('0x24')][_0x5201('0x25')],_0x2ffb57[_0x5201('0x7')])){_0xb6f07d[_0x5201('0x24')][_0x5201('0x27')]=_0x2ffb57['email'];}if(_0x446bee['attachments']&&_0x446bee[_0x5201('0x1b')][_0x5201('0x11')]){_0xb6f07d[_0x5201('0x24')][_0x5201('0x28')]=_0x446bee[_0x5201('0x1b')][_0x5201('0x11')];for(var _0x210f7c=0x0,_0x4f2f24,_0x4311fa,_0x111501;_0x210f7c<_0x446bee[_0x5201('0x1b')]['length'];_0x210f7c+=0x1){if(_0x446bee[_0x5201('0x1b')][_0x210f7c][_0x5201('0x29')]===_0x5201('0x2a')){_0x111501=_0x446bee['attachments'][_0x210f7c][_0x5201('0x1e')]||_0x5201('0x2b')+_0x210f7c;_0x4f2f24=util['format']('%s-%s',Date[_0x5201('0x2c')](),_0x111501);_0x4311fa=path[_0x5201('0x13')](config[_0x5201('0x2d')],_0x5201('0x2e'),_0x4f2f24);fs[_0x5201('0x2f')](_0x4311fa,_0x446bee[_0x5201('0x1b')][_0x210f7c]['content']);_0xb6f07d[_0x5201('0x24')]['attachments']['push']({'name':_0x111501,'basename':_0x4f2f24,'type':_0x446bee[_0x5201('0x1b')][_0x210f7c][_0x5201('0x30')],'filepath':_0x4311fa});}}}if(_0x446bee[_0x5201('0x31')]&&_0x446bee[_0x5201('0x31')][_0x5201('0x11')]>0x0){var _0x50a4ec=[_0x5201('0x32'),_0x5201('0x33'),_0x5201('0x34')];for(var _0x2cdf39=0x0;_0x2cdf39<_0x446bee[_0x5201('0x31')][_0x5201('0x11')];_0x2cdf39++){var _0x1686d8=_['indexOf'](_0x50a4ec,_0x446bee['headerLines'][_0x2cdf39][_0x5201('0x35')]);if(_0x1686d8>=0x0){_0xb6f07d[_0x5201('0x36')]=!![];}}}return _0xb6f07d;}exports[_0x5201('0x37')]=function(_0x105959,_0x3bf92c,_0x4cdea7){var _0x4ac957={'from':getAddress(_0x3bf92c[_0x5201('0x38')]),'firstName':getFirstName(_0x3bf92c[_0x5201('0x38')]),'lastName':getLastName(_0x3bf92c[_0x5201('0x38')]),'mapKey':_0x5201('0x7'),'message':{'from':getMails(_0x105959[_0x5201('0x7')],_0x3bf92c[_0x5201('0x38')]),'to':_0x105959[_0x5201('0x7')],'cc':'','subject':_0x3bf92c[_0x5201('0x39')]||'','messageId':_0x3bf92c[_0x5201('0x3a')],'inReplyTo':_0x3bf92c[_0x5201('0x3b')],'sentAt':moment(_0x3bf92c[_0x5201('0x3c')])['format']('YYYY-MM-DD\x20HH:mm:ss'),'attach':![],'attachments':[]}};if(!_0x3bf92c[_0x5201('0x18')]&&!_0x3bf92c[_0x5201('0x22')]){var _0x32a15c=_[_0x5201('0x3d')](_0x3bf92c[_0x5201('0x1b')],{'contentType':'application/ms-tnef'});if(_0x32a15c['length']){logger[_0x5201('0x3e')](util[_0x5201('0x3f')](_0x5201('0x40'),_0x3bf92c[_0x5201('0x3a')]));tnef[_0x5201('0x41')](_[_0x5201('0x42')](_0x32a15c)['content'],function(_0x5669f1,_0x5a3d95){if(_0x5a3d95){_0x3bf92c[_0x5201('0x18')]=_0x5a3d95['BodyHTML']||_0x5201('0x43');if(_0x5a3d95[_0x5201('0x44')]){for(var _0x3dea26=0x0;_0x3dea26<_0x5a3d95[_0x5201('0x44')][_0x5201('0x11')];_0x3dea26++){var _0x57286a=_0x5a3d95[_0x5201('0x44')][_0x3dea26];_0x4ac957[_0x5201('0x24')][_0x5201('0x1b')][_0x5201('0x1d')]({'filename':_0x57286a[_0x5201('0x45')],'content':Buffer[_0x5201('0x38')](_0x57286a[_0x5201('0x46')])});}}}_0x4cdea7(parseEmail(_0x105959,_0x3bf92c,_0x4ac957));});}else{_0x3bf92c[_0x5201('0x18')]=_0x5201('0x43');_0x4cdea7(parseEmail(_0x105959,_0x3bf92c,_0x4ac957));}}else{_0x4cdea7(parseEmail(_0x105959,_0x3bf92c,_0x4ac957));}};exports[_0x5201('0x47')]=function(_0x4c193d){switch(_0x4c193d){case _0x5201('0x48'):return'imap.gmail.com';case _0x5201('0x49'):return _0x5201('0x4a');case'hotmail':return _0x5201('0x4b');case _0x5201('0x4c'):return'outlook.office365.com';}return _0x5201('0x4d');};
\ No newline at end of file
+var _0x8af6=['type','attachment','attachment-','format','%s-%s','now','join','root','writeFileSync','push','contentType','Auto-Submitted:\x20auto-replied','Precedence:\x20auto_reply','headerLines','line','isAutoreply','parser','from','subject','inReplyTo','date','filter','application/ms-tnef','Email\x20message\x20%s\x20is\x20in\x20TNEF\x20format:\x20message\x20content\x20will\x20be\x20converted\x20by\x20the\x20system','messageId','parseBuffer','content','<p>Empty\x20message</p>','Attachments','Title','Data','getHost','imap.gmail.com','yahoo','imap.mail.yahoo.com','imap-mail.outlook.com','outlook365','outlook.office365.com','127.0.0.1','lodash','moment','randomstring','path','util','node-tnef','../../../config/logger','email','../../../config/environment','head','address','anonymous','generate','@xcally.com','name','substring','indexOf','slice','Anonymous','value','split','length','pop','isEmpty','html','replace','includes','<img','attachments','forEach','filename','_SRC','\x20]</span>','body','textAsHtml','<a\x20target=\x22_blank\x22\x20','message','originTo','originCc','attach'];(function(_0x327bf7,_0x5357fc){var _0x239e07=function(_0x4b22dd){while(--_0x4b22dd){_0x327bf7['push'](_0x327bf7['shift']());}};_0x239e07(++_0x5357fc);}(_0x8af6,0x76));var _0x68af=function(_0x5aabe4,_0x2c262c){_0x5aabe4=_0x5aabe4-0x0;var _0xc251cf=_0x8af6[_0x5aabe4];return _0xc251cf;};'use strict';var _=require(_0x68af('0x0'));var moment=require(_0x68af('0x1'));var random=require(_0x68af('0x2'));var fs=require('fs');var path=require(_0x68af('0x3'));var util=require(_0x68af('0x4'));var tnef=require(_0x68af('0x5'));var logger=require(_0x68af('0x6'))(_0x68af('0x7'));var config=require(_0x68af('0x8'));function getAddress(_0x3d1c16){var _0x52bd87=_[_0x68af('0x9')](_0x3d1c16['value']);return _0x52bd87&&_0x52bd87[_0x68af('0xa')]?_0x52bd87[_0x68af('0xa')]:_0x68af('0xb')+random[_0x68af('0xc')](0x6)+_0x68af('0xd');}function getFirstName(_0x20d61c){var _0x2a6bda=_['head'](_0x20d61c['value']);if(_0x2a6bda&&_0x2a6bda[_0x68af('0xe')]){if(_0x2a6bda[_0x68af('0xe')]==_0x2a6bda['address']){return _0x2a6bda[_0x68af('0xe')][_0x68af('0xf')](0x0,_0x2a6bda[_0x68af('0xe')][_0x68af('0x10')]('@'));}var _0x407d44=_0x2a6bda[_0x68af('0xe')]['split'](/\s+/);return _0x407d44['length']>0x1?_0x407d44[_0x68af('0x11')](0x0,-0x1)['join']('\x20'):_0x2a6bda['name'];}return _0x68af('0x12');}function getLastName(_0x7e53d7){var _0xdba0d=_['head'](_0x7e53d7[_0x68af('0x13')]);if(_0xdba0d&&_0xdba0d['name']){var _0x3a6d18=_0xdba0d[_0x68af('0xe')][_0x68af('0x14')](/\s+/);return _0x3a6d18[_0x68af('0x15')]>0x1?_0x3a6d18[_0x68af('0x16')]():'';}return'';}function getMails(_0x58764e,_0x43c1d9){var _0xcdf590='';for(var _0x326b12=0x0;_0x326b12<_0x43c1d9[_0x68af('0x13')]['length'];_0x326b12+=0x1){if(_0x43c1d9['value'][_0x326b12][_0x68af('0xa')]!==_0x58764e){if(!_[_0x68af('0x17')](_0xcdf590)){_0xcdf590+=',';}_0xcdf590+=_0x43c1d9['value'][_0x326b12][_0x68af('0xe')]||_0x43c1d9[_0x68af('0x13')][_0x326b12][_0x68af('0xa')]||'';_0xcdf590+='\x20<';_0xcdf590+=_0x43c1d9[_0x68af('0x13')][_0x326b12]['address']?_0x43c1d9[_0x68af('0x13')][_0x326b12][_0x68af('0xa')]:'anonymous'+random['generate'](0x6)+_0x68af('0xd');_0xcdf590+='>';}}return _0xcdf590;}function parseEmail(_0x3f6750,_0x14b930,_0x2383f8){if(_0x14b930[_0x68af('0x18')]){var _0x34906b=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;while(_0x34906b['test'](_0x14b930[_0x68af('0x18')])){_0x14b930[_0x68af('0x18')]=_0x14b930['html'][_0x68af('0x19')](_0x34906b,'');}if(_0x14b930['html'][_0x68af('0x1a')](_0x68af('0x1b'))){var _0xa489c3=[];_0x14b930[_0x68af('0x1c')][_0x68af('0x1d')](_0x218811=>{_0xa489c3['push'](_0x218811[_0x68af('0x1e')]);});var _0x29f003=/<img.*? _SRC(.*?)[^>]+>/g;var _0x6c175e=/src="data:image\/([a-zA-Z]*);base64,([^"]*)"/g;var _0x351909=_0x14b930[_0x68af('0x18')][_0x68af('0x19')](_0x6c175e,_0x68af('0x1f'));var _0x1839f9=_0x351909[_0x68af('0x19')](_0x29f003,'_IMG');for(let _0x1f3963=0x0;_0x1f3963<_0xa489c3[_0x68af('0x15')];_0x1f3963++){var _0xec7c01=_0x1839f9[_0x68af('0x19')]('_IMG','<span\x20style=font-weight:bold>\x20[Attachment:\x20'+_0xa489c3[_0x1f3963]+_0x68af('0x20'));_0x1839f9=_0xec7c01;}_0x14b930[_0x68af('0x18')]=_0x1839f9;}_0x2383f8[_0x68af('0x21')]=_0x14b930['html'];}else{_0x2383f8['body']=_0x14b930[_0x68af('0x22')];}if(_0x2383f8[_0x68af('0x21')]){_0x2383f8['body']=_0x2383f8[_0x68af('0x21')][_0x68af('0x19')](/<a\s+/gi,_0x68af('0x23'));}if(_0x14b930['to']){_0x2383f8[_0x68af('0x24')][_0x68af('0x25')]=getMails(null,_0x14b930['to']);var _0x38de14=getMails(_0x3f6750[_0x68af('0x7')],_0x14b930['to']);if(!_['isEmpty'](_0x38de14)){_0x2383f8[_0x68af('0x24')]['cc']+=_0x38de14;}}if(_0x14b930['cc']){_0x2383f8[_0x68af('0x24')][_0x68af('0x26')]=getMails(null,_0x14b930['cc']);var _0x5d984b=getMails(_0x3f6750[_0x68af('0x7')],_0x14b930['cc']);if(!_[_0x68af('0x17')](_0x5d984b)){if(!_['isEmpty'](_0x2383f8[_0x68af('0x24')]['cc'])){_0x2383f8[_0x68af('0x24')]['cc']+=',';}_0x2383f8['message']['cc']+=_0x5d984b;}}if(!_[_0x68af('0x1a')](_0x2383f8['message']['originTo'],_0x3f6750[_0x68af('0x7')])&&!_[_0x68af('0x1a')](_0x2383f8[_0x68af('0x24')][_0x68af('0x26')],_0x3f6750[_0x68af('0x7')])){_0x2383f8[_0x68af('0x24')]['bcc']=_0x3f6750['email'];}if(_0x14b930['attachments']&&_0x14b930[_0x68af('0x1c')][_0x68af('0x15')]){_0x2383f8['message'][_0x68af('0x27')]=_0x14b930[_0x68af('0x1c')][_0x68af('0x15')];for(var _0x486242=0x0,_0x3c6ffd,_0x1775c9,_0x2d1aaa;_0x486242<_0x14b930[_0x68af('0x1c')][_0x68af('0x15')];_0x486242+=0x1){if(_0x14b930['attachments'][_0x486242][_0x68af('0x28')]===_0x68af('0x29')){_0x2d1aaa=_0x14b930[_0x68af('0x1c')][_0x486242][_0x68af('0x1e')]||_0x68af('0x2a')+_0x486242;_0x3c6ffd=util[_0x68af('0x2b')](_0x68af('0x2c'),Date[_0x68af('0x2d')](),_0x2d1aaa);_0x1775c9=path[_0x68af('0x2e')](config[_0x68af('0x2f')],'server/files/attachments/',_0x3c6ffd);fs[_0x68af('0x30')](_0x1775c9,_0x14b930[_0x68af('0x1c')][_0x486242]['content']);_0x2383f8[_0x68af('0x24')][_0x68af('0x1c')][_0x68af('0x31')]({'name':_0x2d1aaa,'basename':_0x3c6ffd,'type':_0x14b930[_0x68af('0x1c')][_0x486242][_0x68af('0x32')],'filepath':_0x1775c9});}}}if(_0x14b930['headerLines']&&_0x14b930['headerLines']['length']>0x0){var _0x2777f0=[_0x68af('0x33'),'X-Auto-Response-Suppress:\x20All',_0x68af('0x34')];for(var _0x7e1a4d=0x0;_0x7e1a4d<_0x14b930[_0x68af('0x35')][_0x68af('0x15')];_0x7e1a4d++){var _0x47b879=_[_0x68af('0x10')](_0x2777f0,_0x14b930[_0x68af('0x35')][_0x7e1a4d][_0x68af('0x36')]);if(_0x47b879>=0x0){_0x2383f8[_0x68af('0x37')]=!![];}}}return _0x2383f8;}exports[_0x68af('0x38')]=function(_0x3b5f44,_0x3b0953,_0x8e9475){var _0x3c4d92={'from':getAddress(_0x3b0953[_0x68af('0x39')]),'firstName':getFirstName(_0x3b0953['from']),'lastName':getLastName(_0x3b0953['from']),'mapKey':_0x68af('0x7'),'message':{'from':getMails(_0x3b5f44[_0x68af('0x7')],_0x3b0953[_0x68af('0x39')]),'to':_0x3b5f44[_0x68af('0x7')],'cc':'','subject':_0x3b0953[_0x68af('0x3a')]||'','messageId':_0x3b0953['messageId'],'inReplyTo':_0x3b0953[_0x68af('0x3b')],'sentAt':moment(_0x3b0953[_0x68af('0x3c')])[_0x68af('0x2b')]('YYYY-MM-DD\x20HH:mm:ss'),'attach':![],'attachments':[]}};if(!_0x3b0953[_0x68af('0x18')]&&!_0x3b0953[_0x68af('0x22')]){var _0x4c850d=_[_0x68af('0x3d')](_0x3b0953[_0x68af('0x1c')],{'contentType':_0x68af('0x3e')});if(_0x4c850d[_0x68af('0x15')]){logger['info'](util[_0x68af('0x2b')](_0x68af('0x3f'),_0x3b0953[_0x68af('0x40')]));tnef[_0x68af('0x41')](_['first'](_0x4c850d)[_0x68af('0x42')],function(_0x1603af,_0x527128){if(_0x527128){_0x3b0953[_0x68af('0x18')]=_0x527128['BodyHTML']||_0x68af('0x43');if(_0x527128['Attachments']){for(var _0xbec158=0x0;_0xbec158<_0x527128[_0x68af('0x44')][_0x68af('0x15')];_0xbec158++){var _0x7740db=_0x527128[_0x68af('0x44')][_0xbec158];_0x3c4d92[_0x68af('0x24')][_0x68af('0x1c')][_0x68af('0x31')]({'filename':_0x7740db[_0x68af('0x45')],'content':Buffer[_0x68af('0x39')](_0x7740db[_0x68af('0x46')])});}}}_0x8e9475(parseEmail(_0x3b5f44,_0x3b0953,_0x3c4d92));});}else{_0x3b0953[_0x68af('0x18')]='<p>Empty\x20message</p>';_0x8e9475(parseEmail(_0x3b5f44,_0x3b0953,_0x3c4d92));}}else{_0x8e9475(parseEmail(_0x3b5f44,_0x3b0953,_0x3c4d92));}};exports[_0x68af('0x47')]=function(_0x1a399f){switch(_0x1a399f){case'gmail':return _0x68af('0x48');case _0x68af('0x49'):return _0x68af('0x4a');case'hotmail':return _0x68af('0x4b');case _0x68af('0x4c'):return _0x68af('0x4d');}return _0x68af('0x4e');};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8ac6=['Service','key','SERV','active','Imap','Smtp','exports','name'];(function(_0x1c2432,_0x25ba2e){var _0x2bfb5b=function(_0x18fdd9){while(--_0x18fdd9){_0x1c2432['push'](_0x1c2432['shift']());}};_0x2bfb5b(++_0x25ba2e);}(_0x8ac6,0x147));var _0x68ac=function(_0xf17dd5,_0x5c345e){_0xf17dd5=_0xf17dd5-0x0;var _0x41da34=_0x8ac6[_0xf17dd5];return _0x41da34;};'use strict';var _=require('lodash');function MailAccount(_0x44dbef){this['id']=_0x44dbef['id']||0x0;this[_0x68ac('0x0')]=_0x44dbef[_0x68ac('0x0')]||_0x68ac('0x1');this[_0x68ac('0x2')]=_0x44dbef[_0x68ac('0x2')]||_0x68ac('0x3');this[_0x68ac('0x4')]=_0x44dbef[_0x68ac('0x4')]||![];this[_0x68ac('0x5')]=_0x44dbef['Imap']||[];this[_0x68ac('0x6')]=_0x44dbef['Smtp']||[];}module[_0x68ac('0x7')]=MailAccount;
\ No newline at end of file
+var _0x74ba=['active','Imap','Smtp','lodash','name','Service','key'];(function(_0x3054d6,_0xdca866){var _0x141e9b=function(_0x5f10b7){while(--_0x5f10b7){_0x3054d6['push'](_0x3054d6['shift']());}};_0x141e9b(++_0xdca866);}(_0x74ba,0x1df));var _0xa74b=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x74ba[_0x321bb2];return _0x9c12ed;};'use strict';var _=require(_0xa74b('0x0'));function MailAccount(_0xdcd7ec){this['id']=_0xdcd7ec['id']||0x0;this[_0xa74b('0x1')]=_0xdcd7ec[_0xa74b('0x1')]||_0xa74b('0x2');this[_0xa74b('0x3')]=_0xdcd7ec[_0xa74b('0x3')]||'SERV';this['active']=_0xdcd7ec[_0xa74b('0x4')]||![];this['Imap']=_0xdcd7ec[_0xa74b('0x5')]||[];this['Smtp']=_0xdcd7ec[_0xa74b('0x6')]||[];}module['exports']=MailAccount;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6a7d=['merge','lodash','mapKeys','hasOwnProperty','initMailAccounts','mailAccounts','isUndefined'];(function(_0x406e9f,_0x255ac1){var _0x23f1c6=function(_0x285e1a){while(--_0x285e1a){_0x406e9f['push'](_0x406e9f['shift']());}};_0x23f1c6(++_0x255ac1);}(_0x6a7d,0x9b));var _0xd6a7=function(_0x4c463a,_0x4411bb){_0x4c463a=_0x4c463a-0x0;var _0x54f816=_0x6a7d[_0x4c463a];return _0x54f816;};'use strict';var _=require(_0xd6a7('0x0'));var MailAccount=require('../model/mailAccount');var Realtime=function(){this['mailAccounts']={};};function freeIsNotKey(_0x295e9,_0x1b6049,_0xc9836a){var _0x61f1dc=_[_0xd6a7('0x1')](_0x295e9,function(_0x44642b,_0x364c17){return _0x44642b[_0xc9836a];});for(var _0x34aeb3 in _0x1b6049){if(_0x1b6049[_0xd6a7('0x2')](_0x34aeb3)){if(!_0x61f1dc[_0x34aeb3]){delete _0x1b6049[_0x34aeb3];}}}}Realtime['prototype']['mergeFromDatabase']=function(_0x21fde8,_0x5794e4){for(var _0x33acf8 in _0x5794e4){if(_0x21fde8[_0xd6a7('0x2')](_0x33acf8)){_0x21fde8[_0x33acf8]=_0x5794e4[_0x33acf8];}}};Realtime['prototype'][_0xd6a7('0x3')]=function(){var _0x577b2e=this;return function(_0x4cdf7c){if(_0x4cdf7c){freeIsNotKey(_0x4cdf7c,_0x577b2e[_0xd6a7('0x4')],'id');for(var _0x7b0c72=0x0,_0x571ea9={},_0x322289={};_0x7b0c72<_0x4cdf7c['length'];_0x7b0c72+=0x1){_0x571ea9=_0x4cdf7c[_0x7b0c72];if(_[_0xd6a7('0x5')](_0x577b2e[_0xd6a7('0x4')][_0x571ea9['id']])){_0x577b2e['mailAccounts'][_0x571ea9['id']]=new MailAccount(_0x571ea9);}else{_[_0xd6a7('0x6')](_0x577b2e['mailAccounts'][_0x571ea9['id']],_0x571ea9);}}}return _0x577b2e['mailAccounts'];};};module['exports']=Realtime;
\ No newline at end of file
+var _0x0276=['mapKeys','hasOwnProperty','prototype','mergeFromDatabase','initMailAccounts','length','isUndefined','merge','exports','lodash','mailAccounts'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0x0276,0x8d));var _0x6027=function(_0x450032,_0x3465e8){_0x450032=_0x450032-0x0;var _0x1dcf2c=_0x0276[_0x450032];return _0x1dcf2c;};'use strict';var _=require(_0x6027('0x0'));var MailAccount=require('../model/mailAccount');var Realtime=function(){this[_0x6027('0x1')]={};};function freeIsNotKey(_0x2f64c2,_0x5619db,_0x3f1da3){var _0x6cabd5=_[_0x6027('0x2')](_0x2f64c2,function(_0x4a7b9c,_0x175cf9){return _0x4a7b9c[_0x3f1da3];});for(var _0xaa4b8b in _0x5619db){if(_0x5619db[_0x6027('0x3')](_0xaa4b8b)){if(!_0x6cabd5[_0xaa4b8b]){delete _0x5619db[_0xaa4b8b];}}}}Realtime[_0x6027('0x4')][_0x6027('0x5')]=function(_0x48fece,_0x1430bc){for(var _0x575dbe in _0x1430bc){if(_0x48fece[_0x6027('0x3')](_0x575dbe)){_0x48fece[_0x575dbe]=_0x1430bc[_0x575dbe];}}};Realtime[_0x6027('0x4')][_0x6027('0x6')]=function(){var _0x21f34d=this;return function(_0x353b02){if(_0x353b02){freeIsNotKey(_0x353b02,_0x21f34d[_0x6027('0x1')],'id');for(var _0x44be5e=0x0,_0x3856b0={},_0x4d60eb={};_0x44be5e<_0x353b02[_0x6027('0x7')];_0x44be5e+=0x1){_0x3856b0=_0x353b02[_0x44be5e];if(_[_0x6027('0x8')](_0x21f34d[_0x6027('0x1')][_0x3856b0['id']])){_0x21f34d[_0x6027('0x1')][_0x3856b0['id']]=new MailAccount(_0x3856b0);}else{_[_0x6027('0x9')](_0x21f34d[_0x6027('0x1')][_0x3856b0['id']],_0x3856b0);}}}return _0x21f34d[_0x6027('0x1')];};};module[_0x6027('0xa')]=Realtime;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa68e=['MailServerIn','MailServerOut','Smtp','getMailAccount','notify','Request','NotifyMailAccount','../client','getMailAccounts','GetMailAccount','name','service','email','active','key','ListId','TemplateId'];(function(_0x40e474,_0xbc7857){var _0x4d59fe=function(_0x12ff06){while(--_0x12ff06){_0x40e474['push'](_0x40e474['shift']());}};_0x4d59fe(++_0xbc7857);}(_0xa68e,0xd3));var _0xea68=function(_0x2c6805,_0x46f0c5){_0x2c6805=_0x2c6805-0x0;var _0x523793=_0xa68e[_0x2c6805];return _0x523793;};'use strict';var client=require(_0xea68('0x0'));exports[_0xea68('0x1')]=function(){return function(){return client['Request'](_0xea68('0x2'),{'options':{'attributes':['id',_0xea68('0x3'),_0xea68('0x4'),_0xea68('0x5'),_0xea68('0x6'),_0xea68('0x7'),_0xea68('0x8'),_0xea68('0x9')],'raw':![],'include':[{'model':_0xea68('0xa'),'as':'Imap'},{'model':_0xea68('0xb'),'as':_0xea68('0xc')}]},'log':_0xea68('0xd')});};};exports[_0xea68('0xe')]=function(_0xddd0a3,_0x33a901){return client[_0xea68('0xf')](_0xea68('0x10'),{'account':{'id':_0xddd0a3},'body':_0x33a901,'log':_0xea68('0x10')});};
\ No newline at end of file
+var _0xf58a=['NotifyMailAccount','getMailAccounts','Request','name','service','active','key','ListId','MailServerIn','MailServerOut','Smtp','getMailAccount','notify'];(function(_0x4c1ffd,_0x369f3c){var _0x396c78=function(_0x37cd42){while(--_0x37cd42){_0x4c1ffd['push'](_0x4c1ffd['shift']());}};_0x396c78(++_0x369f3c);}(_0xf58a,0xde));var _0xaf58=function(_0x1d9dfe,_0x556a07){_0x1d9dfe=_0x1d9dfe-0x0;var _0x1f9c68=_0xf58a[_0x1d9dfe];return _0x1f9c68;};'use strict';var client=require('../client');exports[_0xaf58('0x0')]=function(){return function(){return client[_0xaf58('0x1')]('GetMailAccount',{'options':{'attributes':['id',_0xaf58('0x2'),_0xaf58('0x3'),'email',_0xaf58('0x4'),_0xaf58('0x5'),_0xaf58('0x6'),'TemplateId'],'raw':![],'include':[{'model':_0xaf58('0x7'),'as':'Imap'},{'model':_0xaf58('0x8'),'as':_0xaf58('0x9')}]},'log':_0xaf58('0xa')});};};exports[_0xaf58('0xb')]=function(_0x4564c7,_0x5e6a9e){return client[_0xaf58('0x1')](_0xaf58('0xc'),{'account':{'id':_0x4564c7},'body':_0x5e6a9e,'log':_0xaf58('0xc')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6439=['loginMailFrequency','GetSettings','../client','getSettings','Request'];(function(_0xd24486,_0xbda3a){var _0x10aa91=function(_0x4c09a4){while(--_0x4c09a4){_0xd24486['push'](_0xd24486['shift']());}};_0x10aa91(++_0xbda3a);}(_0x6439,0x147));var _0x9643=function(_0x363ef8,_0x4ecb1a){_0x363ef8=_0x363ef8-0x0;var _0x148822=_0x6439[_0x363ef8];return _0x148822;};'use strict';var client=require(_0x9643('0x0'));exports[_0x9643('0x1')]=function(){return client[_0x9643('0x2')]('ShowSetting',{'options':{'raw':!![],'where':{'id':0x1},'attributes':[_0x9643('0x3')]},'log':_0x9643('0x4')});};
\ No newline at end of file
+var _0x287e=['Request','loginMailFrequency','GetSettings','getSettings'];(function(_0x1203f,_0x554bbc){var _0x365f0a=function(_0x3531d0){while(--_0x3531d0){_0x1203f['push'](_0x1203f['shift']());}};_0x365f0a(++_0x554bbc);}(_0x287e,0x143));var _0xe287=function(_0x21dbba,_0x1381c4){_0x21dbba=_0x21dbba-0x0;var _0x62cc44=_0x287e[_0x21dbba];return _0x62cc44;};'use strict';var client=require('../client');exports[_0xe287('0x0')]=function(){return client[_0xe287('0x1')]('ShowSetting',{'options':{'raw':!![],'where':{'id':0x1},'attributes':[_0xe287('0x2')]},'log':_0xe287('0x3')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['catch','values','mailAccounts','length','Imap','password','Smtp','pass','server','http','stringify','127.0.0.1','log','Email\x20RPC\x20server\x20listening\x20on\x20127.0.0.1:%d!','RPC\x20listening\x20on\x20port:','jayson/promise','bluebird','lodash','listen','sendMail','then','error','Verified'];(function(_0x2c91e9,_0x2fb965){var _0x13f0ff=function(_0xb39edf){while(--_0xb39edf){_0x2c91e9['push'](_0x2c91e9['shift']());}};_0x13f0ff(++_0x2fb965);}(_0xa9e0,0x123));var _0x0a9e=function(_0x1c546c,_0x5c57cb){_0x1c546c=_0x1c546c-0x0;var _0x2cc384=_0xa9e0[_0x1c546c];return _0x2cc384;};'use strict';var jayson=require(_0x0a9e('0x0'));var BPromise=require(_0x0a9e('0x1'));var _=require(_0x0a9e('0x2'));var logger=require('../../../config/logger')('email');exports[_0x0a9e('0x3')]=function(_0x4ce2f1,_0x333808){return new BPromise(function(_0x432180,_0x2ab90b){var _0x991246={'SendMail':function(_0x981158){var _0x57b080=this;return new Promise(function(_0x219af0,_0x441e3a){_0x333808[_0x0a9e('0x4')](_0x981158['account'],_0x981158['message'])[_0x0a9e('0x5')](function(_0x56465b){_0x219af0({'code':0xc8,'message':_0x56465b});})['catch'](function(_0x39753a){_0x441e3a(_0x57b080[_0x0a9e('0x6')](0x1f4,_0x39753a));});});},'VerifySmtp':function(_0x307b3e){var _0x3ab53f=this;return new Promise(function(_0xfeb75b,_0xbd1168){_0x333808['verifySmtp'](_0x307b3e['account'])['then'](function(_0x4cfe67){_0xfeb75b({'code':0xc8,'message':_0x0a9e('0x7')});})[_0x0a9e('0x8')](function(_0xd5b662){_0xbd1168(_0x3ab53f[_0x0a9e('0x6')](0x1f4,_0xd5b662));});});},'MailAccounts':function(_0x32d742){return new Promise(function(_0x69aeb7,_0x5db4b0){var _0x4283ce=_[_0x0a9e('0x9')](_0x4ce2f1[_0x0a9e('0xa')]);for(var _0x281129=0x0;_0x281129<_0x4283ce[_0x0a9e('0xb')];_0x281129+=0x1){if(_0x4283ce[_0x281129][_0x0a9e('0xc')]&&_0x4283ce[_0x281129]['Imap'][_0x0a9e('0xd')]){delete _0x4283ce[_0x281129]['Imap'][_0x0a9e('0xd')];}if(_0x4283ce[_0x281129]['Smtp']&&_0x4283ce[_0x281129][_0x0a9e('0xe')][_0x0a9e('0xf')]){delete _0x4283ce[_0x281129]['Smtp'][_0x0a9e('0xf')];}}_0x69aeb7({'count':_0x4283ce['length'],'rows':_0x4283ce});});}};var _0x459eb1=jayson[_0x0a9e('0x10')](_0x991246)[_0x0a9e('0x11')]();_0x459eb1['on'](_0x0a9e('0x6'),function(_0x31b1ca){logger[_0x0a9e('0x6')](JSON[_0x0a9e('0x12')](_0x31b1ca));return _0x2ab90b(_0x31b1ca);});_0x459eb1[_0x0a9e('0x3')](0x232b,_0x0a9e('0x13'),function(){console[_0x0a9e('0x14')](_0x0a9e('0x15'),0x232b);return _0x432180(_0x0a9e('0x16')+0x232b);});});};
\ No newline at end of file
+var _0xa9e0=['catch','values','mailAccounts','length','Imap','password','Smtp','pass','server','http','stringify','127.0.0.1','log','Email\x20RPC\x20server\x20listening\x20on\x20127.0.0.1:%d!','RPC\x20listening\x20on\x20port:','jayson/promise','bluebird','lodash','listen','sendMail','then','error','Verified'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0xa9e0,0x123));var _0x0a9e=function(_0xbb091,_0x3fe7ee){_0xbb091=_0xbb091-0x0;var _0x467a04=_0xa9e0[_0xbb091];return _0x467a04;};'use strict';var jayson=require(_0x0a9e('0x0'));var BPromise=require(_0x0a9e('0x1'));var _=require(_0x0a9e('0x2'));var logger=require('../../../config/logger')('email');exports[_0x0a9e('0x3')]=function(_0x4ce2f1,_0x333808){return new BPromise(function(_0x432180,_0x2ab90b){var _0x991246={'SendMail':function(_0x981158){var _0x57b080=this;return new Promise(function(_0x219af0,_0x441e3a){_0x333808[_0x0a9e('0x4')](_0x981158['account'],_0x981158['message'])[_0x0a9e('0x5')](function(_0x56465b){_0x219af0({'code':0xc8,'message':_0x56465b});})['catch'](function(_0x39753a){_0x441e3a(_0x57b080[_0x0a9e('0x6')](0x1f4,_0x39753a));});});},'VerifySmtp':function(_0x307b3e){var _0x3ab53f=this;return new Promise(function(_0xfeb75b,_0xbd1168){_0x333808['verifySmtp'](_0x307b3e['account'])['then'](function(_0x4cfe67){_0xfeb75b({'code':0xc8,'message':_0x0a9e('0x7')});})[_0x0a9e('0x8')](function(_0xd5b662){_0xbd1168(_0x3ab53f[_0x0a9e('0x6')](0x1f4,_0xd5b662));});});},'MailAccounts':function(_0x32d742){return new Promise(function(_0x69aeb7,_0x5db4b0){var _0x4283ce=_[_0x0a9e('0x9')](_0x4ce2f1[_0x0a9e('0xa')]);for(var _0x281129=0x0;_0x281129<_0x4283ce[_0x0a9e('0xb')];_0x281129+=0x1){if(_0x4283ce[_0x281129][_0x0a9e('0xc')]&&_0x4283ce[_0x281129]['Imap'][_0x0a9e('0xd')]){delete _0x4283ce[_0x281129]['Imap'][_0x0a9e('0xd')];}if(_0x4283ce[_0x281129]['Smtp']&&_0x4283ce[_0x281129][_0x0a9e('0xe')][_0x0a9e('0xf')]){delete _0x4283ce[_0x281129]['Smtp'][_0x0a9e('0xf')];}}_0x69aeb7({'count':_0x4283ce['length'],'rows':_0x4283ce});});}};var _0x459eb1=jayson[_0x0a9e('0x10')](_0x991246)[_0x0a9e('0x11')]();_0x459eb1['on'](_0x0a9e('0x6'),function(_0x31b1ca){logger[_0x0a9e('0x6')](JSON[_0x0a9e('0x12')](_0x31b1ca));return _0x2ab90b(_0x31b1ca);});_0x459eb1[_0x0a9e('0x3')](0x232b,_0x0a9e('0x13'),function(){console[_0x0a9e('0x14')](_0x0a9e('0x15'),0x232b);return _0x432180(_0x0a9e('0x16')+0x232b);});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x831f=['defaults','localhost','adapter','socket.io-redis','../../config/triggers','default','../../config/socketio','../../config/express','once','listening','log','http','express','../../config/environment','createServer','timeout','listen','port','socket.io','websocket','polling','redis'];(function(_0x43d11d,_0xccff91){var _0x38cd08=function(_0x131ae2){while(--_0x131ae2){_0x43d11d['push'](_0x43d11d['shift']());}};_0x38cd08(++_0xccff91);}(_0x831f,0xd1));var _0xf831=function(_0x3782f1,_0xdb9da7){_0x3782f1=_0x3782f1-0x0;var _0x59aa2c=_0x831f[_0x3782f1];return _0x59aa2c;};'use strict';var _=require('lodash');var http=require(_0xf831('0x0'));var express=require(_0xf831('0x1'));var sticky=require('sticky-session');var Redis=require('ioredis');var config=require(_0xf831('0x2'));var app=express();var server=http[_0xf831('0x3')](app);server[_0xf831('0x4')]=0xdbba0;if(sticky[_0xf831('0x5')](server,config[_0xf831('0x6')])){var socketio=require(_0xf831('0x7'))(server,{'transports':[_0xf831('0x8'),_0xf831('0x9')]});config[_0xf831('0xa')]=_[_0xf831('0xb')](config[_0xf831('0xa')],{'host':_0xf831('0xc'),'port':0x18eb});socketio[_0xf831('0xd')](require(_0xf831('0xe'))({'pubClient':new Redis(config[_0xf831('0xa')]),'subClient':new Redis(config[_0xf831('0xa')])}));require(_0xf831('0xf'))[_0xf831('0x10')]();require(_0xf831('0x11'))[_0xf831('0x10')](socketio);require(_0xf831('0x12'))[_0xf831('0x10')](app);require('../../routes')[_0xf831('0x10')](app);}else{server[_0xf831('0x13')](_0xf831('0x14'),function(){console[_0xf831('0x15')]('Express\x20server\x20listening\x20on\x20port\x20%d!',config[_0xf831('0x6')]);});}exports=module['exports']=app;
\ No newline at end of file
+var _0xd180=['defaults','localhost','adapter','socket.io-redis','../../config/triggers','default','../../config/socketio','../../config/express','once','listening','Express\x20server\x20listening\x20on\x20port\x20%d!','exports','lodash','http','sticky-session','ioredis','../../config/environment','createServer','timeout','port','socket.io','websocket','polling','redis'];(function(_0x44d72d,_0x2bb49c){var _0x2cb82f=function(_0x3c93b0){while(--_0x3c93b0){_0x44d72d['push'](_0x44d72d['shift']());}};_0x2cb82f(++_0x2bb49c);}(_0xd180,0x6c));var _0x0d18=function(_0x2f8db7,_0x5a7566){_0x2f8db7=_0x2f8db7-0x0;var _0x5c1d7e=_0xd180[_0x2f8db7];return _0x5c1d7e;};'use strict';var _=require(_0x0d18('0x0'));var http=require(_0x0d18('0x1'));var express=require('express');var sticky=require(_0x0d18('0x2'));var Redis=require(_0x0d18('0x3'));var config=require(_0x0d18('0x4'));var app=express();var server=http[_0x0d18('0x5')](app);server[_0x0d18('0x6')]=0xdbba0;if(sticky['listen'](server,config[_0x0d18('0x7')])){var socketio=require(_0x0d18('0x8'))(server,{'transports':[_0x0d18('0x9'),_0x0d18('0xa')]});config[_0x0d18('0xb')]=_[_0x0d18('0xc')](config[_0x0d18('0xb')],{'host':_0x0d18('0xd'),'port':0x18eb});socketio[_0x0d18('0xe')](require(_0x0d18('0xf'))({'pubClient':new Redis(config[_0x0d18('0xb')]),'subClient':new Redis(config['redis'])}));require(_0x0d18('0x10'))[_0x0d18('0x11')]();require(_0x0d18('0x12'))[_0x0d18('0x11')](socketio);require(_0x0d18('0x13'))[_0x0d18('0x11')](app);require('../../routes')[_0x0d18('0x11')](app);}else{server[_0x0d18('0x14')](_0x0d18('0x15'),function(){console['log'](_0x0d18('0x16'),config[_0x0d18('0x7')]);});}exports=module[_0x0d18('0x17')]=app;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x767d=['error','message','result','catch','exports','jayson/promise','bluebird','../../config/logger','routing','client','http','Request','then','debug','rpc'];(function(_0x3c42d4,_0x61f3f3){var _0x16af57=function(_0x5b7b25){while(--_0x5b7b25){_0x3c42d4['push'](_0x3c42d4['shift']());}};_0x16af57(++_0x61f3f3);}(_0x767d,0x19a));var _0xd767=function(_0x1c1cb3,_0x3c1b90){_0x1c1cb3=_0x1c1cb3-0x0;var _0x4766b7=_0x767d[_0x1c1cb3];return _0x4766b7;};'use strict';var jayson=require(_0xd767('0x0'));var BPromise=require(_0xd767('0x1'));var logger=require(_0xd767('0x2'))(_0xd767('0x3'));var client=jayson[_0xd767('0x4')][_0xd767('0x5')]({'port':0x2329});client[_0xd767('0x6')]=function(_0x1e8edf,_0x1d9afd){return new BPromise(function(_0x63ce62,_0x29ece6){return client['request'](_0x1e8edf,_0x1d9afd)[_0xd767('0x7')](function(_0xcb766c){logger[_0xd767('0x8')](_0xd767('0x9'),_0xd767('0x3'),_0x1e8edf,_0x1d9afd,_0xcb766c);if(_0xcb766c[_0xd767('0xa')]){logger[_0xd767('0xa')](_0xd767('0x9'),_0xd767('0x3'),_0x1e8edf,_0xcb766c['error'][_0xd767('0xb')],_0x1d9afd);return _0x29ece6(_0xcb766c[_0xd767('0xa')]['message']);}else{return _0x63ce62(_0xcb766c[_0xd767('0xc')]);}})[_0xd767('0xd')](function(_0x4c0ef2){logger[_0xd767('0xa')](_0xd767('0x9'),_0xd767('0x3'),_0x1e8edf,_0x4c0ef2,_0x1d9afd);return _0x29ece6(_0x4c0ef2);});});};module[_0xd767('0xe')]=client;
\ No newline at end of file
+var _0x04fd=['message','result','exports','jayson/promise','bluebird','../../config/logger','client','http','request','then','debug','rpc','routing','error'];(function(_0x4eb809,_0x5bf8a2){var _0x3da14d=function(_0x392e4c){while(--_0x392e4c){_0x4eb809['push'](_0x4eb809['shift']());}};_0x3da14d(++_0x5bf8a2);}(_0x04fd,0xb9));var _0xd04f=function(_0x46baa9,_0x3e5328){_0x46baa9=_0x46baa9-0x0;var _0x52bc49=_0x04fd[_0x46baa9];return _0x52bc49;};'use strict';var jayson=require(_0xd04f('0x0'));var BPromise=require(_0xd04f('0x1'));var logger=require(_0xd04f('0x2'))('routing');var client=jayson[_0xd04f('0x3')][_0xd04f('0x4')]({'port':0x2329});client['Request']=function(_0x338b36,_0x1c9664){return new BPromise(function(_0x54c183,_0x1c2154){return client[_0xd04f('0x5')](_0x338b36,_0x1c9664)[_0xd04f('0x6')](function(_0xa07a2e){logger[_0xd04f('0x7')](_0xd04f('0x8'),_0xd04f('0x9'),_0x338b36,_0x1c9664,_0xa07a2e);if(_0xa07a2e[_0xd04f('0xa')]){logger[_0xd04f('0xa')](_0xd04f('0x8'),'routing',_0x338b36,_0xa07a2e['error'][_0xd04f('0xb')],_0x1c9664);return _0x1c2154(_0xa07a2e[_0xd04f('0xa')][_0xd04f('0xb')]);}else{return _0x54c183(_0xa07a2e[_0xd04f('0xc')]);}})['catch'](function(_0x2f8ebc){logger[_0xd04f('0xa')]('rpc','routing',_0x338b36,_0x2f8ebc,_0x1c9664);return _0x1c2154(_0x2f8ebc);});});};module[_0xd04f('0xd')]=client;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5432=['initSmsQueues','initMailQueues','initFaxQueues','getWhatsappQueues','initWhatsappQueues','listen','catch','log','bluebird','./realtime','./rpc/user','./rpc/interval','./rpc/openchannelQueue','./rpc/chatQueue','./rpc/smsQueue','./rpc/mailQueue','./rpc/faxQueue','./rpc/whatsappQueue','resolve','then','initAgents','initIntervals','initOpenchannelQueues','initChatQueues','getSmsQueues'];(function(_0x2c91e9,_0x2fb965){var _0x13f0ff=function(_0xb39edf){while(--_0xb39edf){_0x2c91e9['push'](_0x2c91e9['shift']());}};_0x13f0ff(++_0x2fb965);}(_0x5432,0x166));var _0x2543=function(_0xa061e2,_0x234cc3){_0xa061e2=_0xa061e2-0x0;var _0x7e7294=_0x5432[_0xa061e2];return _0x7e7294;};'use strict';var BPromise=require(_0x2543('0x0'));var server=require('./server');var Realtime=require(_0x2543('0x1'));var user=require(_0x2543('0x2'));var interval=require(_0x2543('0x3'));var openchannelQueue=require(_0x2543('0x4'));var chatQueue=require(_0x2543('0x5'));var smsQueue=require(_0x2543('0x6'));var mailQueue=require(_0x2543('0x7'));var faxQueue=require(_0x2543('0x8'));var whatsappQueue=require(_0x2543('0x9'));var realtime=new Realtime();function initRealtime(){return BPromise[_0x2543('0xa')]()[_0x2543('0xb')](user['getAgents']())[_0x2543('0xb')](realtime[_0x2543('0xc')]())[_0x2543('0xb')](interval['getIntervals']())[_0x2543('0xb')](realtime[_0x2543('0xd')]())['then'](openchannelQueue['getOpenchannelQueues']())[_0x2543('0xb')](realtime[_0x2543('0xe')]())[_0x2543('0xb')](chatQueue['getChatQueues']())['then'](realtime[_0x2543('0xf')]())[_0x2543('0xb')](smsQueue[_0x2543('0x10')]())[_0x2543('0xb')](realtime[_0x2543('0x11')]())[_0x2543('0xb')](mailQueue['getMailQueues']())['then'](realtime[_0x2543('0x12')]())[_0x2543('0xb')](faxQueue['getFaxQueues']())[_0x2543('0xb')](realtime[_0x2543('0x13')]())[_0x2543('0xb')](whatsappQueue[_0x2543('0x14')]())[_0x2543('0xb')](realtime[_0x2543('0x15')]())[_0x2543('0xb')](function(){return realtime;});}function main(){return server[_0x2543('0x16')](realtime)[_0x2543('0xb')](function(_0x11e9e5){return initRealtime();})[_0x2543('0xb')](function(_0xaa3a77){return setInterval(initRealtime,0x1388);})[_0x2543('0x17')](function(_0xc19108){console[_0x2543('0x18')](_0xc19108);});}main();
\ No newline at end of file
+var _0xba98=['getMailQueues','initMailQueues','getFaxQueues','initFaxQueues','initWhatsappQueues','listen','log','bluebird','./realtime','./rpc/user','./rpc/interval','./rpc/smsQueue','./rpc/mailQueue','./rpc/faxQueue','then','getAgents','initAgents','getIntervals','initIntervals','getOpenchannelQueues','initOpenchannelQueues','getChatQueues','initChatQueues','getSmsQueues','initSmsQueues'];(function(_0x1fd8cb,_0x4b2651){var _0x1f7412=function(_0x51617c){while(--_0x51617c){_0x1fd8cb['push'](_0x1fd8cb['shift']());}};_0x1f7412(++_0x4b2651);}(_0xba98,0x133));var _0x8ba9=function(_0xe45ead,_0x3aae9f){_0xe45ead=_0xe45ead-0x0;var _0x5de529=_0xba98[_0xe45ead];return _0x5de529;};'use strict';var BPromise=require(_0x8ba9('0x0'));var server=require('./server');var Realtime=require(_0x8ba9('0x1'));var user=require(_0x8ba9('0x2'));var interval=require(_0x8ba9('0x3'));var openchannelQueue=require('./rpc/openchannelQueue');var chatQueue=require('./rpc/chatQueue');var smsQueue=require(_0x8ba9('0x4'));var mailQueue=require(_0x8ba9('0x5'));var faxQueue=require(_0x8ba9('0x6'));var whatsappQueue=require('./rpc/whatsappQueue');var realtime=new Realtime();function initRealtime(){return BPromise['resolve']()[_0x8ba9('0x7')](user[_0x8ba9('0x8')]())[_0x8ba9('0x7')](realtime[_0x8ba9('0x9')]())[_0x8ba9('0x7')](interval[_0x8ba9('0xa')]())[_0x8ba9('0x7')](realtime[_0x8ba9('0xb')]())['then'](openchannelQueue[_0x8ba9('0xc')]())[_0x8ba9('0x7')](realtime[_0x8ba9('0xd')]())[_0x8ba9('0x7')](chatQueue[_0x8ba9('0xe')]())[_0x8ba9('0x7')](realtime[_0x8ba9('0xf')]())[_0x8ba9('0x7')](smsQueue[_0x8ba9('0x10')]())[_0x8ba9('0x7')](realtime[_0x8ba9('0x11')]())[_0x8ba9('0x7')](mailQueue[_0x8ba9('0x12')]())[_0x8ba9('0x7')](realtime[_0x8ba9('0x13')]())['then'](faxQueue[_0x8ba9('0x14')]())['then'](realtime[_0x8ba9('0x15')]())['then'](whatsappQueue['getWhatsappQueues']())[_0x8ba9('0x7')](realtime[_0x8ba9('0x16')]())['then'](function(){return realtime;});}function main(){return server[_0x8ba9('0x17')](realtime)[_0x8ba9('0x7')](function(_0x4c158f){return initRealtime();})[_0x8ba9('0x7')](function(_0x5666fd){return setInterval(initRealtime,0x1388);})['catch'](function(_0x5b2e0f){console[_0x8ba9('0x18')](_0x5b2e0f);});}main();
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe14b=['next','restart','condition','noop','findRules','matches','turn','length','prioritize','priority','toJSON','map','toString','fromJSON','isString','object','register','exports','lodash','util','isNil','ignoreFactChanges','inherits','prototype','init','rules','activeRules','isArray','concat','push','sync','filter','orderBy','asc','execute','result','clone','consequence','ruleRef','name','index_','nextTick','call'];(function(_0x112f8d,_0x3546ae){var _0x7b1ab5=function(_0x170be9){while(--_0x170be9){_0x112f8d['push'](_0x112f8d['shift']());}};_0x7b1ab5(++_0x3546ae);}(_0xe14b,0x93));var _0xbe14=function(_0x3c2932,_0x1f968a){_0x3c2932=_0x3c2932-0x0;var _0x1cdd99=_0xe14b[_0x3c2932];return _0x1cdd99;};'use strict';var _=require(_0xbe14('0x0'));var util=require(_0xbe14('0x1'));var EventEmitter=require('events')['EventEmitter'];function RuleEngine(_0x11c3a0,_0x36393a){this['init']();if(!_[_0xbe14('0x2')](_0x11c3a0)){this['register'](_0x11c3a0);}if(_0x36393a){this['ignoreFactChanges']=_0x36393a[_0xbe14('0x3')];}return this;}util[_0xbe14('0x4')](RuleEngine,EventEmitter);RuleEngine[_0xbe14('0x5')][_0xbe14('0x6')]=function(_0x1d9ade){this[_0xbe14('0x7')]=[];this[_0xbe14('0x8')]=[];};RuleEngine['prototype']['register']=function(_0x496063){if(Array[_0xbe14('0x9')](_0x496063)){this[_0xbe14('0x7')]=this[_0xbe14('0x7')][_0xbe14('0xa')](_0x496063);}else if(_0x496063!==null&&_['isObject'](_0x496063)){this['rules'][_0xbe14('0xb')](_0x496063);}this[_0xbe14('0xc')]();};RuleEngine['prototype'][_0xbe14('0xc')]=function(){this[_0xbe14('0x8')]=this[_0xbe14('0x7')][_0xbe14('0xd')](function(_0x27792f){if(_[_0xbe14('0x2')](_0x27792f['on'])){_0x27792f['on']=!![];}if(_0x27792f['on']===!![]){return _0x27792f;}});this[_0xbe14('0x8')]=_[_0xbe14('0xe')](this[_0xbe14('0x8')],['p'],[_0xbe14('0xf')]);};RuleEngine[_0xbe14('0x5')][_0xbe14('0x10')]=function(_0x813399,_0x530538){var _0x55b3a7=![];_0x813399[_0xbe14('0x11')]=!![];var _0x3dc4a9=_[_0xbe14('0x12')](_0x813399);var _0x37ce4e=_['clone'](_0x813399);var _0x21c789=this[_0xbe14('0x8')];var _0xfd7b8f=[];var _0x123ede=this[_0xbe14('0x3')];(function FnRuleLoop(_0x29ab73){var _0x17ae86={'rules':function(){return _0x21c789;},'rule':function(){return _0x21c789[_0x29ab73];},'when':function(_0x5ea1f8){if(_0x5ea1f8){var _0x137ee5=_0x21c789[_0x29ab73][_0xbe14('0x13')];_0x137ee5[_0xbe14('0x14')]=_0x21c789[_0x29ab73]['id']||_0x21c789[_0x29ab73][_0xbe14('0x15')]||_0xbe14('0x16')+_0x29ab73;process[_0xbe14('0x17')](function(){_0xfd7b8f['push'](_0x137ee5[_0xbe14('0x14')]);_0x137ee5[_0xbe14('0x18')](_0x3dc4a9,_0x17ae86);});}else{process[_0xbe14('0x17')](function(){_0x17ae86[_0xbe14('0x19')]();});}},'restart':function(){return FnRuleLoop(0x0);},'stop':function(){_0x55b3a7=!![];return FnRuleLoop(0x0);},'next':function(_0x188ec4){if(!_0x123ede&&!_['isEqual'](_0x37ce4e,_0x3dc4a9)){_0x37ce4e=_[_0xbe14('0x12')](_0x3dc4a9);process['nextTick'](function(){_0x17ae86[_0xbe14('0x1a')]();});}else{process['nextTick'](function(){if(_[_0xbe14('0x2')](_0x188ec4)){return FnRuleLoop(_0x29ab73+0x1);}else{return FnRuleLoop(_0x188ec4);}});}}};if(_0x29ab73<_0x21c789['length']&&_0x55b3a7===![]){var _0x274018=_0x21c789[_0x29ab73][_0xbe14('0x1b')];_0x274018['call'](_0x3dc4a9,_0x17ae86);}else{process[_0xbe14('0x17')](function(){_0x3dc4a9['matchPath']=_0xfd7b8f;return _0x530538?_0x530538(_0x3dc4a9):_[_0xbe14('0x1c')]();});}}(0x0));};RuleEngine['prototype'][_0xbe14('0x1d')]=function(_0x5fa043){if(_[_0xbe14('0x2')](_0x5fa043)){return this[_0xbe14('0x7')];}else{var _0x15ef02=_[_0xbe14('0x1e')](_0x5fa043);return _['filter'](this[_0xbe14('0x7')],_0x15ef02);}};RuleEngine[_0xbe14('0x5')][_0xbe14('0x1f')]=function(_0x169369,_0x5dd475){var _0x16f884=_0x169369==='on'||_0x169369==='ON'?!![]:![];var _0x29fc64=this['findRules'](_0x5dd475);for(var _0x3c3613=0x0,_0x3b3e84=_0x29fc64[_0xbe14('0x20')];_0x3c3613<_0x3b3e84;_0x3c3613+=0x1){_0x29fc64[_0x3c3613]['on']=_0x16f884;}this[_0xbe14('0xc')]();};RuleEngine[_0xbe14('0x5')][_0xbe14('0x21')]=function(_0x31a664,_0x2b05cb){_0x31a664=parseInt(_0x31a664,0xa);var _0x4168c8=this[_0xbe14('0x1d')](_0x2b05cb);for(var _0x40538f=0x0,_0x3bf43c=_0x4168c8[_0xbe14('0x20')];_0x40538f<_0x3bf43c;_0x40538f+=0x1){_0x4168c8[_0x40538f][_0xbe14('0x22')]=_0x31a664;}this[_0xbe14('0xc')]();};RuleEngine[_0xbe14('0x5')][_0xbe14('0x23')]=function(){var _0x2ff48e=this[_0xbe14('0x7')];if(_0x2ff48e instanceof Array){_0x2ff48e=_0x2ff48e[_0xbe14('0x24')](function(_0x581e86){_0x581e86[_0xbe14('0x1b')]=_0x581e86['condition']['toString']();_0x581e86[_0xbe14('0x13')]=_0x581e86['consequence'][_0xbe14('0x25')]();return _0x581e86;});}else if(!_[_0xbe14('0x2')](_0x2ff48e)){_0x2ff48e['condition']=_0x2ff48e['condition']['toString']();_0x2ff48e[_0xbe14('0x13')]=_0x2ff48e[_0xbe14('0x13')]['toString']();}return _0x2ff48e;};RuleEngine[_0xbe14('0x5')][_0xbe14('0x26')]=function(_0x452635){this[_0xbe14('0x6')]();if(_[_0xbe14('0x27')](_0x452635)){_0x452635=JSON['parse'](_0x452635);}if(_0x452635 instanceof Array){_0x452635=_0x452635['map'](function(_0x15a997){_0x15a997['condition']=eval('('+_0x15a997['condition']+')');_0x15a997['consequence']=eval('('+_0x15a997[_0xbe14('0x13')]+')');return _0x15a997;});}else if(_0x452635!==null&&typeof _0x452635==_0xbe14('0x28')){_0x452635[_0xbe14('0x1b')]=eval('('+_0x452635[_0xbe14('0x1b')]+')');_0x452635[_0xbe14('0x13')]=eval('('+_0x452635[_0xbe14('0x13')]+')');}this[_0xbe14('0x29')](_0x452635);};module[_0xbe14('0x2a')]=RuleEngine;
\ No newline at end of file
+var _0x2ef3=['next','isEqual','restart','condition','matches','filter','turn','prioritize','findRules','length','priority','toJSON','map','toString','fromJSON','parse','object','exports','lodash','util','events','EventEmitter','isNil','register','ignoreFactChanges','inherits','rules','activeRules','prototype','isArray','concat','push','sync','orderBy','result','clone','consequence','name','index_','nextTick','ruleRef','call'];(function(_0x5167fa,_0x362734){var _0x3233b=function(_0x1ef588){while(--_0x1ef588){_0x5167fa['push'](_0x5167fa['shift']());}};_0x3233b(++_0x362734);}(_0x2ef3,0xba));var _0x32ef=function(_0x4710dc,_0xf5091){_0x4710dc=_0x4710dc-0x0;var _0xc81bfc=_0x2ef3[_0x4710dc];return _0xc81bfc;};'use strict';var _=require(_0x32ef('0x0'));var util=require(_0x32ef('0x1'));var EventEmitter=require(_0x32ef('0x2'))[_0x32ef('0x3')];function RuleEngine(_0x3944df,_0x38047b){this['init']();if(!_[_0x32ef('0x4')](_0x3944df)){this[_0x32ef('0x5')](_0x3944df);}if(_0x38047b){this['ignoreFactChanges']=_0x38047b[_0x32ef('0x6')];}return this;}util[_0x32ef('0x7')](RuleEngine,EventEmitter);RuleEngine['prototype']['init']=function(_0x2c0089){this[_0x32ef('0x8')]=[];this[_0x32ef('0x9')]=[];};RuleEngine[_0x32ef('0xa')][_0x32ef('0x5')]=function(_0x298066){if(Array[_0x32ef('0xb')](_0x298066)){this[_0x32ef('0x8')]=this[_0x32ef('0x8')][_0x32ef('0xc')](_0x298066);}else if(_0x298066!==null&&_['isObject'](_0x298066)){this['rules'][_0x32ef('0xd')](_0x298066);}this[_0x32ef('0xe')]();};RuleEngine[_0x32ef('0xa')][_0x32ef('0xe')]=function(){this['activeRules']=this[_0x32ef('0x8')]['filter'](function(_0x1a5106){if(_['isNil'](_0x1a5106['on'])){_0x1a5106['on']=!![];}if(_0x1a5106['on']===!![]){return _0x1a5106;}});this[_0x32ef('0x9')]=_[_0x32ef('0xf')](this['activeRules'],['p'],['asc']);};RuleEngine[_0x32ef('0xa')]['execute']=function(_0x326fce,_0x40a6e6){var _0x93d492=![];_0x326fce[_0x32ef('0x10')]=!![];var _0x57aff1=_['clone'](_0x326fce);var _0x531e30=_[_0x32ef('0x11')](_0x326fce);var _0x3950e6=this[_0x32ef('0x9')];var _0x53a5ca=[];var _0x5d559b=this[_0x32ef('0x6')];(function FnRuleLoop(_0x1a9476){var _0x286bfb={'rules':function(){return _0x3950e6;},'rule':function(){return _0x3950e6[_0x1a9476];},'when':function(_0x57863c){if(_0x57863c){var _0xbe37f6=_0x3950e6[_0x1a9476][_0x32ef('0x12')];_0xbe37f6['ruleRef']=_0x3950e6[_0x1a9476]['id']||_0x3950e6[_0x1a9476][_0x32ef('0x13')]||_0x32ef('0x14')+_0x1a9476;process[_0x32ef('0x15')](function(){_0x53a5ca[_0x32ef('0xd')](_0xbe37f6[_0x32ef('0x16')]);_0xbe37f6[_0x32ef('0x17')](_0x57aff1,_0x286bfb);});}else{process['nextTick'](function(){_0x286bfb[_0x32ef('0x18')]();});}},'restart':function(){return FnRuleLoop(0x0);},'stop':function(){_0x93d492=!![];return FnRuleLoop(0x0);},'next':function(_0x5cc3ef){if(!_0x5d559b&&!_[_0x32ef('0x19')](_0x531e30,_0x57aff1)){_0x531e30=_[_0x32ef('0x11')](_0x57aff1);process['nextTick'](function(){_0x286bfb[_0x32ef('0x1a')]();});}else{process[_0x32ef('0x15')](function(){if(_[_0x32ef('0x4')](_0x5cc3ef)){return FnRuleLoop(_0x1a9476+0x1);}else{return FnRuleLoop(_0x5cc3ef);}});}}};if(_0x1a9476<_0x3950e6['length']&&_0x93d492===![]){var _0x57f5e5=_0x3950e6[_0x1a9476][_0x32ef('0x1b')];_0x57f5e5[_0x32ef('0x17')](_0x57aff1,_0x286bfb);}else{process[_0x32ef('0x15')](function(){_0x57aff1['matchPath']=_0x53a5ca;return _0x40a6e6?_0x40a6e6(_0x57aff1):_['noop']();});}}(0x0));};RuleEngine[_0x32ef('0xa')]['findRules']=function(_0x51a412){if(_[_0x32ef('0x4')](_0x51a412)){return this[_0x32ef('0x8')];}else{var _0x371540=_[_0x32ef('0x1c')](_0x51a412);return _[_0x32ef('0x1d')](this[_0x32ef('0x8')],_0x371540);}};RuleEngine[_0x32ef('0xa')][_0x32ef('0x1e')]=function(_0x338f19,_0x2f52d7){var _0x1335e2=_0x338f19==='on'||_0x338f19==='ON'?!![]:![];var _0xba4b3f=this['findRules'](_0x2f52d7);for(var _0xd65fde=0x0,_0x2f5d06=_0xba4b3f['length'];_0xd65fde<_0x2f5d06;_0xd65fde+=0x1){_0xba4b3f[_0xd65fde]['on']=_0x1335e2;}this[_0x32ef('0xe')]();};RuleEngine[_0x32ef('0xa')][_0x32ef('0x1f')]=function(_0x26e207,_0x50a95b){_0x26e207=parseInt(_0x26e207,0xa);var _0x10e38c=this[_0x32ef('0x20')](_0x50a95b);for(var _0x31dbc3=0x0,_0x2ac686=_0x10e38c[_0x32ef('0x21')];_0x31dbc3<_0x2ac686;_0x31dbc3+=0x1){_0x10e38c[_0x31dbc3][_0x32ef('0x22')]=_0x26e207;}this[_0x32ef('0xe')]();};RuleEngine['prototype'][_0x32ef('0x23')]=function(){var _0x537214=this[_0x32ef('0x8')];if(_0x537214 instanceof Array){_0x537214=_0x537214[_0x32ef('0x24')](function(_0x5a9565){_0x5a9565[_0x32ef('0x1b')]=_0x5a9565[_0x32ef('0x1b')][_0x32ef('0x25')]();_0x5a9565[_0x32ef('0x12')]=_0x5a9565[_0x32ef('0x12')]['toString']();return _0x5a9565;});}else if(!_['isNil'](_0x537214)){_0x537214[_0x32ef('0x1b')]=_0x537214['condition'][_0x32ef('0x25')]();_0x537214[_0x32ef('0x12')]=_0x537214[_0x32ef('0x12')][_0x32ef('0x25')]();}return _0x537214;};RuleEngine[_0x32ef('0xa')][_0x32ef('0x26')]=function(_0x566b56){this['init']();if(_['isString'](_0x566b56)){_0x566b56=JSON[_0x32ef('0x27')](_0x566b56);}if(_0x566b56 instanceof Array){_0x566b56=_0x566b56[_0x32ef('0x24')](function(_0x136b02){_0x136b02['condition']=eval('('+_0x136b02['condition']+')');_0x136b02[_0x32ef('0x12')]=eval('('+_0x136b02[_0x32ef('0x12')]+')');return _0x136b02;});}else if(_0x566b56!==null&&typeof _0x566b56==_0x32ef('0x28')){_0x566b56['condition']=eval('('+_0x566b56['condition']+')');_0x566b56[_0x32ef('0x12')]=eval('('+_0x566b56[_0x32ef('0x12')]+')');}this[_0x32ef('0x5')](_0x566b56);};module[_0x32ef('0x29')]=RuleEngine;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1917=['then','error','message','result','catch','sendMailMessage','SendMail','bluebird','jayson/promise','client','http'];(function(_0x31212b,_0x233664){var _0x6598e6=function(_0x3099b0){while(--_0x3099b0){_0x31212b['push'](_0x31212b['shift']());}};_0x6598e6(++_0x233664);}(_0x1917,0x19e));var _0x7191=function(_0x2b037c,_0x1917cb){_0x2b037c=_0x2b037c-0x0;var _0x1adf7d=_0x1917[_0x2b037c];return _0x1adf7d;};'use strict';var BPromise=require(_0x7191('0x0'));var jayson=require(_0x7191('0x1'));var client=jayson[_0x7191('0x2')][_0x7191('0x3')]({'port':0x232b});function request(_0x1aedce,_0x185c50){return new BPromise(function(_0x321a63,_0x2616da){return client['request'](_0x1aedce,_0x185c50)[_0x7191('0x4')](function(_0x3919cc){if(_0x3919cc[_0x7191('0x5')]){return _0x2616da(_0x3919cc[_0x7191('0x5')][_0x7191('0x6')]);}else{return _0x321a63(_0x3919cc[_0x7191('0x7')]);}})[_0x7191('0x8')](function(_0x362a77){return _0x2616da(_0x362a77);});});}exports[_0x7191('0x9')]=function(_0xac9002,_0x23fbc3){return request(_0x7191('0xa'),{'account':_0xac9002,'message':_0x23fbc3});};
\ No newline at end of file
+var _0x36be=['error','message','result','sendMailMessage','SendMail','client','http','request'];(function(_0x4ef451,_0x1c9d5b){var _0x20237d=function(_0x3dba7c){while(--_0x3dba7c){_0x4ef451['push'](_0x4ef451['shift']());}};_0x20237d(++_0x1c9d5b);}(_0x36be,0x165));var _0xe36b=function(_0x4b055c,_0x4b870b){_0x4b055c=_0x4b055c-0x0;var _0x4b62bb=_0x36be[_0x4b055c];return _0x4b62bb;};'use strict';var BPromise=require('bluebird');var jayson=require('jayson/promise');var client=jayson[_0xe36b('0x0')][_0xe36b('0x1')]({'port':0x232b});function request(_0x3be8f6,_0x4964eb){return new BPromise(function(_0x412d0c,_0x565168){return client[_0xe36b('0x2')](_0x3be8f6,_0x4964eb)['then'](function(_0x57b4af){if(_0x57b4af[_0xe36b('0x3')]){return _0x565168(_0x57b4af[_0xe36b('0x3')][_0xe36b('0x4')]);}else{return _0x412d0c(_0x57b4af[_0xe36b('0x5')]);}})['catch'](function(_0x1422d2){return _0x565168(_0x1422d2);});});}exports[_0xe36b('0x6')]=function(_0x4a64bc,_0x239697){return request(_0xe36b('0x7'),{'account':_0x4a64bc,'message':_0x239697});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xebda=['openchannelPause','chatStatus','unknown','chatStatusTime','chatCapacity','mailStatusTime','mailCapacity','mailCurrentCapacity','faxStatus','faxStatusTime','faxCapacity','smsStatus','smsStatusTime','smsCapacity','smsCurrentCapacity','whatsappStatusTime','whatsappCapacity','whatsappCurrentCapacity','openchannelStatus','openchannelCurrentCapacity','busy','busyQueue','updateRealtime','prototype','getChannelStatus','CurrentCapacity','Capacity','maxcapacity','idle','mail','chat','openchannel','whatsapp','length','Status','StatusTime','toNumber','format','chatCurrentCapacity','mailStatus','faxCurrentCapacity','whatsappStatus','openchannelCapacity','stringify','emit','user:save','exports','moment','md5','ioredis','../../../config/environment','redis','localhost','socket.io-emitter','name','online','voicePause','chatPause','mailPause','faxPause','smsPause'];(function(_0x28c61a,_0x236495){var _0x3c2fc5=function(_0x1daba7){while(--_0x1daba7){_0x28c61a['push'](_0x28c61a['shift']());}};_0x3c2fc5(++_0x236495);}(_0xebda,0xa9));var _0xaebd=function(_0x3c8e9a,_0x384306){_0x3c8e9a=_0x3c8e9a-0x0;var _0x2d4c57=_0xebda[_0x3c8e9a];return _0x2d4c57;};'use strict';var _=require('lodash');var moment=require(_0xaebd('0x0'));var md5=require(_0xaebd('0x1'));var Redis=require(_0xaebd('0x2'));var config=require(_0xaebd('0x3'));config[_0xaebd('0x4')]=_['defaults'](config[_0xaebd('0x4')],{'host':_0xaebd('0x5'),'port':0x18eb});var io=require(_0xaebd('0x6'))(new Redis(config[_0xaebd('0x4')]));function Agent(_0x11b9ed){this['id']=_0x11b9ed['id']||0x0;this[_0xaebd('0x7')]=_0x11b9ed[_0xaebd('0x7')]||'';this[_0xaebd('0x8')]=_0x11b9ed['online']||!![];this[_0xaebd('0x9')]=_0x11b9ed[_0xaebd('0x9')]||![];this['chatPause']=_0x11b9ed[_0xaebd('0xa')]||![];this[_0xaebd('0xb')]=_0x11b9ed['mailPause']||![];this[_0xaebd('0xc')]=_0x11b9ed[_0xaebd('0xc')]||![];this[_0xaebd('0xd')]=_0x11b9ed[_0xaebd('0xd')]||![];this[_0xaebd('0xe')]=_0x11b9ed[_0xaebd('0xe')]||![];this[_0xaebd('0xf')]=_0xaebd('0x10');this[_0xaebd('0x11')]=0x0;this[_0xaebd('0x12')]=_0x11b9ed[_0xaebd('0x12')]||0x0;this['chatCurrentCapacity']=0x0;this['mailStatus']=_0xaebd('0x10');this[_0xaebd('0x13')]=0x0;this[_0xaebd('0x14')]=_0x11b9ed[_0xaebd('0x14')]||0x0;this[_0xaebd('0x15')]=0x0;this[_0xaebd('0x16')]=_0xaebd('0x10');this[_0xaebd('0x17')]=0x0;this[_0xaebd('0x18')]=_0x11b9ed[_0xaebd('0x18')]||0x0;this['faxCurrentCapacity']=0x0;this[_0xaebd('0x19')]=_0xaebd('0x10');this[_0xaebd('0x1a')]=0x0;this[_0xaebd('0x1b')]=_0x11b9ed['smsCapacity']||0x0;this[_0xaebd('0x1c')]=0x0;this['whatsappStatus']=_0xaebd('0x10');this[_0xaebd('0x1d')]=0x0;this['whatsappCapacity']=_0x11b9ed[_0xaebd('0x1e')]||0x0;this[_0xaebd('0x1f')]=0x0;this[_0xaebd('0x20')]='unknown';this['openchannelStatusTime']=0x0;this['openchannelCapacity']=_0x11b9ed['openchannelCapacity']||0x0;this[_0xaebd('0x21')]=0x0;this[_0xaebd('0x22')]=![];this[_0xaebd('0x23')]=undefined;this['md5']='';this[_0xaebd('0x24')]();}Agent[_0xaebd('0x25')][_0xaebd('0x26')]=function(_0x57de44){if(this[_0x57de44+_0xaebd('0x27')]>0x0){if(this[_0x57de44+_0xaebd('0x28')]>0x0&&this[_0x57de44+_0xaebd('0x27')]>=this[_0x57de44+_0xaebd('0x28')]){return _0xaebd('0x29');}else{return'working';}}else{return _0xaebd('0x2a');}};Agent['prototype'][_0xaebd('0x24')]=function(){var _0x59289a=[_0xaebd('0x2b'),_0xaebd('0x2c'),_0xaebd('0x2d'),'fax','sms',_0xaebd('0x2e')];for(var _0x34189a=0x0;_0x34189a<_0x59289a[_0xaebd('0x2f')];_0x34189a+=0x1){var _0x3bb94b=this['getChannelStatus'](_0x59289a[_0x34189a]);if(this[_0x59289a[_0x34189a]+_0xaebd('0x30')]!==_0x3bb94b){this[_0x59289a[_0x34189a]+_0xaebd('0x31')]=_[_0xaebd('0x32')](moment()[_0xaebd('0x33')]('x'));}this[_0x59289a[_0x34189a]+'Status']=_0x3bb94b;}var _0x4824f5={'id':this['id'],'name':this[_0xaebd('0x7')],'online':this[_0xaebd('0x8')],'voicePause':this[_0xaebd('0x9')],'chatPause':this['chatPause'],'mailPause':this[_0xaebd('0xb')],'smsPause':this[_0xaebd('0xd')],'faxPause':this[_0xaebd('0xc')],'openchannelPause':this['openchannelPause'],'chatStatus':this['chatStatus'],'chatStatusTime':this['chatStatusTime'],'chatCapacity':this['chatCapacity'],'chatCurrentCapacity':this[_0xaebd('0x34')],'mailStatus':this[_0xaebd('0x35')],'mailStatusTime':this['mailStatusTime'],'mailCapacity':this[_0xaebd('0x14')],'mailCurrentCapacity':this[_0xaebd('0x15')],'faxStatus':this[_0xaebd('0x16')],'faxStatusTime':this['faxStatusTime'],'faxCapacity':this[_0xaebd('0x18')],'faxCurrentCapacity':this[_0xaebd('0x36')],'smsStatus':this['smsStatus'],'smsStatusTime':this[_0xaebd('0x1a')],'smsCapacity':this[_0xaebd('0x1b')],'smsCurrentCapacity':this[_0xaebd('0x1c')],'whatsappStatus':this[_0xaebd('0x37')],'whatsappStatusTime':this['whatsappStatusTime'],'whatsappCapacity':this[_0xaebd('0x1e')],'whatsappCurrentCapacity':this[_0xaebd('0x1f')],'openchannelStatus':this[_0xaebd('0x20')],'openchannelStatusTime':this['openchannelStatusTime'],'openchannelCapacity':this[_0xaebd('0x38')],'openchannelCurrentCapacity':this[_0xaebd('0x21')],'busy':this['busy'],'busyQueue':this[_0xaebd('0x23')]};var _0x364c35=md5(JSON[_0xaebd('0x39')](_0x4824f5));if(this[_0xaebd('0x1')]!==_0x364c35){this[_0xaebd('0x1')]=_0x364c35;io[_0xaebd('0x3a')](_0xaebd('0x3b'),_0x4824f5);}};module[_0xaebd('0x3c')]=Agent;
\ No newline at end of file
+var _0x7136=['faxCurrentCapacity','openchannelStatus','busy','emit','exports','moment','md5','ioredis','redis','defaults','localhost','socket.io-emitter','name','online','voicePause','chatPause','mailPause','faxPause','smsPause','openchannelPause','chatStatus','unknown','chatStatusTime','chatCapacity','chatCurrentCapacity','mailStatus','mailStatusTime','mailCapacity','mailCurrentCapacity','faxStatus','faxStatusTime','faxCapacity','smsStatus','smsStatusTime','smsCapacity','smsCurrentCapacity','whatsappStatus','whatsappCapacity','whatsappCurrentCapacity','openchannelStatusTime','openchannelCapacity','openchannelCurrentCapacity','busyQueue','updateRealtime','prototype','getChannelStatus','CurrentCapacity','Capacity','idle','chat','openchannel','fax','sms','length','StatusTime','toNumber','Status'];(function(_0x13f154,_0x891143){var _0x3cb4a3=function(_0x4bbbdb){while(--_0x4bbbdb){_0x13f154['push'](_0x13f154['shift']());}};_0x3cb4a3(++_0x891143);}(_0x7136,0xe9));var _0x6713=function(_0x3ab54a,_0xf327f1){_0x3ab54a=_0x3ab54a-0x0;var _0x2b8fcd=_0x7136[_0x3ab54a];return _0x2b8fcd;};'use strict';var _=require('lodash');var moment=require(_0x6713('0x0'));var md5=require(_0x6713('0x1'));var Redis=require(_0x6713('0x2'));var config=require('../../../config/environment');config[_0x6713('0x3')]=_[_0x6713('0x4')](config[_0x6713('0x3')],{'host':_0x6713('0x5'),'port':0x18eb});var io=require(_0x6713('0x6'))(new Redis(config[_0x6713('0x3')]));function Agent(_0x1aa683){this['id']=_0x1aa683['id']||0x0;this[_0x6713('0x7')]=_0x1aa683['name']||'';this['online']=_0x1aa683[_0x6713('0x8')]||!![];this[_0x6713('0x9')]=_0x1aa683[_0x6713('0x9')]||![];this['chatPause']=_0x1aa683[_0x6713('0xa')]||![];this[_0x6713('0xb')]=_0x1aa683[_0x6713('0xb')]||![];this[_0x6713('0xc')]=_0x1aa683[_0x6713('0xc')]||![];this[_0x6713('0xd')]=_0x1aa683[_0x6713('0xd')]||![];this[_0x6713('0xe')]=_0x1aa683[_0x6713('0xe')]||![];this[_0x6713('0xf')]=_0x6713('0x10');this[_0x6713('0x11')]=0x0;this[_0x6713('0x12')]=_0x1aa683[_0x6713('0x12')]||0x0;this[_0x6713('0x13')]=0x0;this[_0x6713('0x14')]='unknown';this[_0x6713('0x15')]=0x0;this[_0x6713('0x16')]=_0x1aa683['mailCapacity']||0x0;this[_0x6713('0x17')]=0x0;this[_0x6713('0x18')]='unknown';this[_0x6713('0x19')]=0x0;this[_0x6713('0x1a')]=_0x1aa683[_0x6713('0x1a')]||0x0;this['faxCurrentCapacity']=0x0;this[_0x6713('0x1b')]=_0x6713('0x10');this[_0x6713('0x1c')]=0x0;this[_0x6713('0x1d')]=_0x1aa683[_0x6713('0x1d')]||0x0;this[_0x6713('0x1e')]=0x0;this[_0x6713('0x1f')]=_0x6713('0x10');this['whatsappStatusTime']=0x0;this['whatsappCapacity']=_0x1aa683[_0x6713('0x20')]||0x0;this[_0x6713('0x21')]=0x0;this['openchannelStatus']=_0x6713('0x10');this[_0x6713('0x22')]=0x0;this[_0x6713('0x23')]=_0x1aa683[_0x6713('0x23')]||0x0;this[_0x6713('0x24')]=0x0;this['busy']=![];this[_0x6713('0x25')]=undefined;this[_0x6713('0x1')]='';this[_0x6713('0x26')]();}Agent[_0x6713('0x27')][_0x6713('0x28')]=function(_0x2f4b83){if(this[_0x2f4b83+_0x6713('0x29')]>0x0){if(this[_0x2f4b83+_0x6713('0x2a')]>0x0&&this[_0x2f4b83+_0x6713('0x29')]>=this[_0x2f4b83+'Capacity']){return'maxcapacity';}else{return'working';}}else{return _0x6713('0x2b');}};Agent['prototype'][_0x6713('0x26')]=function(){var _0x3f43f3=['mail',_0x6713('0x2c'),_0x6713('0x2d'),_0x6713('0x2e'),_0x6713('0x2f'),'whatsapp'];for(var _0x3469cb=0x0;_0x3469cb<_0x3f43f3[_0x6713('0x30')];_0x3469cb+=0x1){var _0x4bac3e=this[_0x6713('0x28')](_0x3f43f3[_0x3469cb]);if(this[_0x3f43f3[_0x3469cb]+'Status']!==_0x4bac3e){this[_0x3f43f3[_0x3469cb]+_0x6713('0x31')]=_[_0x6713('0x32')](moment()['format']('x'));}this[_0x3f43f3[_0x3469cb]+_0x6713('0x33')]=_0x4bac3e;}var _0x58e4cc={'id':this['id'],'name':this[_0x6713('0x7')],'online':this[_0x6713('0x8')],'voicePause':this[_0x6713('0x9')],'chatPause':this[_0x6713('0xa')],'mailPause':this[_0x6713('0xb')],'smsPause':this[_0x6713('0xd')],'faxPause':this['faxPause'],'openchannelPause':this[_0x6713('0xe')],'chatStatus':this[_0x6713('0xf')],'chatStatusTime':this[_0x6713('0x11')],'chatCapacity':this[_0x6713('0x12')],'chatCurrentCapacity':this['chatCurrentCapacity'],'mailStatus':this['mailStatus'],'mailStatusTime':this[_0x6713('0x15')],'mailCapacity':this['mailCapacity'],'mailCurrentCapacity':this[_0x6713('0x17')],'faxStatus':this[_0x6713('0x18')],'faxStatusTime':this[_0x6713('0x19')],'faxCapacity':this[_0x6713('0x1a')],'faxCurrentCapacity':this[_0x6713('0x34')],'smsStatus':this['smsStatus'],'smsStatusTime':this['smsStatusTime'],'smsCapacity':this[_0x6713('0x1d')],'smsCurrentCapacity':this['smsCurrentCapacity'],'whatsappStatus':this[_0x6713('0x1f')],'whatsappStatusTime':this['whatsappStatusTime'],'whatsappCapacity':this[_0x6713('0x20')],'whatsappCurrentCapacity':this[_0x6713('0x21')],'openchannelStatus':this[_0x6713('0x35')],'openchannelStatusTime':this[_0x6713('0x22')],'openchannelCapacity':this[_0x6713('0x23')],'openchannelCurrentCapacity':this[_0x6713('0x24')],'busy':this[_0x6713('0x36')],'busyQueue':this['busyQueue']};var _0x2a7868=md5(JSON['stringify'](_0x58e4cc));if(this[_0x6713('0x1')]!==_0x2a7868){this[_0x6713('0x1')]=_0x2a7868;io[_0x6713('0x37')]('user:save',_0x58e4cc);}};module[_0x6713('0x38')]=Agent;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe454=['_rr','map','paused','length','online','loggedIn','chatPause','available','waiting','stringify','format','emit','chat_queue:save','ioredis','../../../config/environment','redis','defaults','localhost','socket.io-emitter','name','timeout','strategy','beepall','Agents','mapAgentsId','md5','updateRouting','updateRealtime','prototype'];(function(_0x10475c,_0x4a4add){var _0x14a68a=function(_0x2fba43){while(--_0x2fba43){_0x10475c['push'](_0x10475c['shift']());}};_0x14a68a(++_0x4a4add);}(_0xe454,0x1dd));var _0x4e45=function(_0x39e844,_0x1e882f){_0x39e844=_0x39e844-0x0;var _0x1fb930=_0xe454[_0x39e844];return _0x1fb930;};'use strict';var _=require('lodash');var md5=require('md5');var util=require('util');var Redis=require(_0x4e45('0x0'));var config=require(_0x4e45('0x1'));config[_0x4e45('0x2')]=_[_0x4e45('0x3')](config[_0x4e45('0x2')],{'host':_0x4e45('0x4'),'port':0x18eb});var io=require(_0x4e45('0x5'))(new Redis(config[_0x4e45('0x2')]));function ChatQueue(_0x131272){this['id']=_0x131272['id']||0x0;this['name']=_0x131272[_0x4e45('0x6')]||'';this[_0x4e45('0x7')]=_0x131272['timeout']||0xa;this[_0x4e45('0x8')]=_0x131272['strategy']||_0x4e45('0x9');this['Agents']=_0x131272[_0x4e45('0xa')];this[_0x4e45('0xb')]={};this['waiting']=0x0;this[_0x4e45('0xc')]='';this[_0x4e45('0xd')]();this[_0x4e45('0xe')]();}ChatQueue[_0x4e45('0xf')][_0x4e45('0xd')]=function(){var _0x9b44c2=this[_0x4e45('0xb')][_0x4e45('0x10')];this['mapAgentsId']=_[_0x4e45('0x11')](this[_0x4e45('0xa')],'id');this['mapAgentsId'][_0x4e45('0x10')]=_0x9b44c2;};ChatQueue[_0x4e45('0xf')]['updateRealtime']=function(){this['loggedIn']=0x0;this[_0x4e45('0x12')]=0x0;for(var _0x4cb7b8=0x0;_0x4cb7b8<this[_0x4e45('0xa')][_0x4e45('0x13')];_0x4cb7b8+=0x1){if(this[_0x4e45('0xa')][_0x4cb7b8][_0x4e45('0x14')]){this[_0x4e45('0x15')]+=0x1;}if(this[_0x4e45('0xa')][_0x4cb7b8][_0x4e45('0x16')]){this[_0x4e45('0x12')]+=0x1;}}this[_0x4e45('0x17')]=this['loggedIn']-this[_0x4e45('0x12')];this[_0x4e45('0x17')]=this[_0x4e45('0x17')]>=0x0?this['available']:0x0;var _0x25dbbf={'id':this['id'],'available':this[_0x4e45('0x17')],'loggedIn':this[_0x4e45('0x15')],'name':this['name'],'paused':this[_0x4e45('0x12')],'waiting':this[_0x4e45('0x18')]};var _0x690b89=md5(JSON[_0x4e45('0x19')](_0x25dbbf));if(this[_0x4e45('0xc')]!==_0x690b89){this[_0x4e45('0xc')]=_0x690b89;io['to'](util[_0x4e45('0x1a')]('chat:queue:%s',_0x25dbbf['name']))[_0x4e45('0x1b')](_0x4e45('0x1c'),_0x25dbbf);}};module['exports']=ChatQueue;
\ No newline at end of file
+var _0xffb0=['paused','online','chatPause','available','waiting','stringify','format','chat:queue:%s','emit','chat_queue:save','exports','md5','util','ioredis','defaults','localhost','socket.io-emitter','redis','name','timeout','strategy','beepall','Agents','mapAgentsId','updateRealtime','prototype','updateRouting','_rr','map','loggedIn'];(function(_0x4de5fc,_0x1278fc){var _0x2baa14=function(_0x26d408){while(--_0x26d408){_0x4de5fc['push'](_0x4de5fc['shift']());}};_0x2baa14(++_0x1278fc);}(_0xffb0,0xdd));var _0x0ffb=function(_0x4cb939,_0x2a70a6){_0x4cb939=_0x4cb939-0x0;var _0x4fc9de=_0xffb0[_0x4cb939];return _0x4fc9de;};'use strict';var _=require('lodash');var md5=require(_0x0ffb('0x0'));var util=require(_0x0ffb('0x1'));var Redis=require(_0x0ffb('0x2'));var config=require('../../../config/environment');config['redis']=_[_0x0ffb('0x3')](config['redis'],{'host':_0x0ffb('0x4'),'port':0x18eb});var io=require(_0x0ffb('0x5'))(new Redis(config[_0x0ffb('0x6')]));function ChatQueue(_0x5ce78d){this['id']=_0x5ce78d['id']||0x0;this[_0x0ffb('0x7')]=_0x5ce78d[_0x0ffb('0x7')]||'';this[_0x0ffb('0x8')]=_0x5ce78d['timeout']||0xa;this['strategy']=_0x5ce78d[_0x0ffb('0x9')]||_0x0ffb('0xa');this[_0x0ffb('0xb')]=_0x5ce78d[_0x0ffb('0xb')];this[_0x0ffb('0xc')]={};this['waiting']=0x0;this[_0x0ffb('0x0')]='';this['updateRouting']();this[_0x0ffb('0xd')]();}ChatQueue[_0x0ffb('0xe')][_0x0ffb('0xf')]=function(){var _0x121169=this[_0x0ffb('0xc')][_0x0ffb('0x10')];this[_0x0ffb('0xc')]=_[_0x0ffb('0x11')](this[_0x0ffb('0xb')],'id');this[_0x0ffb('0xc')][_0x0ffb('0x10')]=_0x121169;};ChatQueue[_0x0ffb('0xe')][_0x0ffb('0xd')]=function(){this[_0x0ffb('0x12')]=0x0;this[_0x0ffb('0x13')]=0x0;for(var _0x336a12=0x0;_0x336a12<this[_0x0ffb('0xb')]['length'];_0x336a12+=0x1){if(this[_0x0ffb('0xb')][_0x336a12][_0x0ffb('0x14')]){this[_0x0ffb('0x12')]+=0x1;}if(this[_0x0ffb('0xb')][_0x336a12][_0x0ffb('0x15')]){this[_0x0ffb('0x13')]+=0x1;}}this['available']=this[_0x0ffb('0x12')]-this[_0x0ffb('0x13')];this['available']=this['available']>=0x0?this[_0x0ffb('0x16')]:0x0;var _0x3b95ea={'id':this['id'],'available':this['available'],'loggedIn':this[_0x0ffb('0x12')],'name':this[_0x0ffb('0x7')],'paused':this[_0x0ffb('0x13')],'waiting':this[_0x0ffb('0x17')]};var _0x4adbef=md5(JSON[_0x0ffb('0x18')](_0x3b95ea));if(this[_0x0ffb('0x0')]!==_0x4adbef){this[_0x0ffb('0x0')]=_0x4adbef;io['to'](util[_0x0ffb('0x19')](_0x0ffb('0x1a'),_0x3b95ea[_0x0ffb('0x7')]))[_0x0ffb('0x1b')](_0x0ffb('0x1c'),_0x3b95ea);}};module[_0x0ffb('0x1d')]=ChatQueue;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1b5e=['online','faxPause','available','waiting','stringify','fax:queue:%s','emit','fax_queue:save','exports','lodash','md5','../../../config/environment','redis','localhost','socket.io-emitter','name','timeout','strategy','beepall','Agents','mapAgentsId','updateRealtime','prototype','updateRouting','_rr','map','loggedIn','paused'];(function(_0x89b7fc,_0x2664e6){var _0x546451=function(_0x454e50){while(--_0x454e50){_0x89b7fc['push'](_0x89b7fc['shift']());}};_0x546451(++_0x2664e6);}(_0x1b5e,0x121));var _0xe1b5=function(_0x26e4de,_0xe4ec24){_0x26e4de=_0x26e4de-0x0;var _0x90bb32=_0x1b5e[_0x26e4de];return _0x90bb32;};'use strict';var _=require(_0xe1b5('0x0'));var md5=require(_0xe1b5('0x1'));var util=require('util');var Redis=require('ioredis');var config=require(_0xe1b5('0x2'));config['redis']=_['defaults'](config[_0xe1b5('0x3')],{'host':_0xe1b5('0x4'),'port':0x18eb});var io=require(_0xe1b5('0x5'))(new Redis(config[_0xe1b5('0x3')]));function FaxQueue(_0x496802){this['id']=_0x496802['id']||0x0;this[_0xe1b5('0x6')]=_0x496802[_0xe1b5('0x6')]||'';this[_0xe1b5('0x7')]=_0x496802[_0xe1b5('0x7')]||0xa;this['strategy']=_0x496802[_0xe1b5('0x8')]||_0xe1b5('0x9');this[_0xe1b5('0xa')]=_0x496802[_0xe1b5('0xa')];this[_0xe1b5('0xb')]={};this['waiting']=0x0;this[_0xe1b5('0x1')]='';this['updateRouting']();this[_0xe1b5('0xc')]();}FaxQueue[_0xe1b5('0xd')][_0xe1b5('0xe')]=function(){var _0x13e9e8=this[_0xe1b5('0xb')][_0xe1b5('0xf')];this['mapAgentsId']=_[_0xe1b5('0x10')](this[_0xe1b5('0xa')],'id');this['mapAgentsId'][_0xe1b5('0xf')]=_0x13e9e8;};FaxQueue[_0xe1b5('0xd')]['updateRealtime']=function(){this[_0xe1b5('0x11')]=0x0;this[_0xe1b5('0x12')]=0x0;for(var _0x1be705=0x0;_0x1be705<this[_0xe1b5('0xa')]['length'];_0x1be705+=0x1){if(this['Agents'][_0x1be705][_0xe1b5('0x13')]){this[_0xe1b5('0x11')]+=0x1;}if(this['Agents'][_0x1be705][_0xe1b5('0x14')]){this['paused']+=0x1;}}this[_0xe1b5('0x15')]=this['loggedIn']-this['paused'];this['available']=this[_0xe1b5('0x15')]>=0x0?this[_0xe1b5('0x15')]:0x0;var _0x1d1856={'id':this['id'],'available':this[_0xe1b5('0x15')],'loggedIn':this['loggedIn'],'name':this[_0xe1b5('0x6')],'paused':this[_0xe1b5('0x12')],'waiting':this[_0xe1b5('0x16')]};var _0x524c57=md5(JSON[_0xe1b5('0x17')](_0x1d1856));if(this[_0xe1b5('0x1')]!==_0x524c57){this[_0xe1b5('0x1')]=_0x524c57;io['to'](util['format'](_0xe1b5('0x18'),_0x1d1856[_0xe1b5('0x6')]))[_0xe1b5('0x19')](_0xe1b5('0x1a'),_0x1d1856);}};module[_0xe1b5('0x1b')]=FaxQueue;
\ No newline at end of file
+var _0xce91=['available','stringify','format','fax:queue:%s','emit','fax_queue:save','exports','lodash','md5','util','ioredis','../../../config/environment','redis','localhost','socket.io-emitter','name','timeout','strategy','beepall','Agents','waiting','updateRealtime','prototype','updateRouting','mapAgentsId','_rr','map','paused','online','loggedIn','faxPause'];(function(_0x1f239e,_0x367b43){var _0x826971=function(_0x2c5777){while(--_0x2c5777){_0x1f239e['push'](_0x1f239e['shift']());}};_0x826971(++_0x367b43);}(_0xce91,0xe0));var _0x1ce9=function(_0x4acc66,_0x29585f){_0x4acc66=_0x4acc66-0x0;var _0x349952=_0xce91[_0x4acc66];return _0x349952;};'use strict';var _=require(_0x1ce9('0x0'));var md5=require(_0x1ce9('0x1'));var util=require(_0x1ce9('0x2'));var Redis=require(_0x1ce9('0x3'));var config=require(_0x1ce9('0x4'));config[_0x1ce9('0x5')]=_['defaults'](config[_0x1ce9('0x5')],{'host':_0x1ce9('0x6'),'port':0x18eb});var io=require(_0x1ce9('0x7'))(new Redis(config[_0x1ce9('0x5')]));function FaxQueue(_0x35c8fa){this['id']=_0x35c8fa['id']||0x0;this[_0x1ce9('0x8')]=_0x35c8fa[_0x1ce9('0x8')]||'';this[_0x1ce9('0x9')]=_0x35c8fa[_0x1ce9('0x9')]||0xa;this[_0x1ce9('0xa')]=_0x35c8fa[_0x1ce9('0xa')]||_0x1ce9('0xb');this['Agents']=_0x35c8fa[_0x1ce9('0xc')];this['mapAgentsId']={};this[_0x1ce9('0xd')]=0x0;this['md5']='';this['updateRouting']();this[_0x1ce9('0xe')]();}FaxQueue[_0x1ce9('0xf')][_0x1ce9('0x10')]=function(){var _0x5c9283=this[_0x1ce9('0x11')][_0x1ce9('0x12')];this['mapAgentsId']=_[_0x1ce9('0x13')](this['Agents'],'id');this[_0x1ce9('0x11')][_0x1ce9('0x12')]=_0x5c9283;};FaxQueue[_0x1ce9('0xf')]['updateRealtime']=function(){this['loggedIn']=0x0;this[_0x1ce9('0x14')]=0x0;for(var _0xfd6f1=0x0;_0xfd6f1<this[_0x1ce9('0xc')]['length'];_0xfd6f1+=0x1){if(this['Agents'][_0xfd6f1][_0x1ce9('0x15')]){this[_0x1ce9('0x16')]+=0x1;}if(this[_0x1ce9('0xc')][_0xfd6f1][_0x1ce9('0x17')]){this['paused']+=0x1;}}this[_0x1ce9('0x18')]=this['loggedIn']-this[_0x1ce9('0x14')];this[_0x1ce9('0x18')]=this[_0x1ce9('0x18')]>=0x0?this[_0x1ce9('0x18')]:0x0;var _0x3c5138={'id':this['id'],'available':this['available'],'loggedIn':this[_0x1ce9('0x16')],'name':this[_0x1ce9('0x8')],'paused':this['paused'],'waiting':this[_0x1ce9('0xd')]};var _0x6ed6e3=md5(JSON[_0x1ce9('0x19')](_0x3c5138));if(this[_0x1ce9('0x1')]!==_0x6ed6e3){this['md5']=_0x6ed6e3;io['to'](util[_0x1ce9('0x1a')](_0x1ce9('0x1b'),_0x3c5138[_0x1ce9('0x8')]))[_0x1ce9('0x1c')](_0x1ce9('0x1d'),_0x3c5138);}};module[_0x1ce9('0x1e')]=FaxQueue;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3b51=['Intervals','exports','name'];(function(_0x5a19fc,_0x58f9f4){var _0x34b413=function(_0x344feb){while(--_0x344feb){_0x5a19fc['push'](_0x5a19fc['shift']());}};_0x34b413(++_0x58f9f4);}(_0x3b51,0x77));var _0x13b5=function(_0x5e848d,_0x1dbd20){_0x5e848d=_0x5e848d-0x0;var _0x3785e5=_0x3b51[_0x5e848d];return _0x3785e5;};'use strict';function Interval(_0x22d300){this['id']=_0x22d300['id']||0x0;this[_0x13b5('0x0')]=_0x22d300[_0x13b5('0x0')]||'';this[_0x13b5('0x1')]=_0x22d300[_0x13b5('0x1')]||{};}module[_0x13b5('0x2')]=Interval;
\ No newline at end of file
+var _0x280f=['Intervals','name'];(function(_0x829616,_0x5d9318){var _0x35857a=function(_0x502cb9){while(--_0x502cb9){_0x829616['push'](_0x829616['shift']());}};_0x35857a(++_0x5d9318);}(_0x280f,0x1cd));var _0xf280=function(_0x566168,_0x4c39af){_0x566168=_0x566168-0x0;var _0x4e1f7a=_0x280f[_0x566168];return _0x4e1f7a;};'use strict';function Interval(_0x30206c){this['id']=_0x30206c['id']||0x0;this[_0xf280('0x0')]=_0x30206c['name']||'';this[_0xf280('0x1')]=_0x30206c[_0xf280('0x1')]||{};}module['exports']=Interval;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x3dfa=['md5','updateRouting','mapAgentsId','_rr','map','prototype','loggedIn','paused','length','online','available','format','mail:queue:%s','mail_queue:save','exports','lodash','util','ioredis','../../../config/environment','redis','defaults','localhost','socket.io-emitter','name','timeout','strategy','beepall','Agents','waiting'];(function(_0x4565bf,_0x5ad9d6){var _0x5610ba=function(_0x170988){while(--_0x170988){_0x4565bf['push'](_0x4565bf['shift']());}};_0x5610ba(++_0x5ad9d6);}(_0x3dfa,0x83));var _0xa3df=function(_0x1b0cc8,_0x6e3392){_0x1b0cc8=_0x1b0cc8-0x0;var _0x441d1a=_0x3dfa[_0x1b0cc8];return _0x441d1a;};'use strict';var _=require(_0xa3df('0x0'));var md5=require('md5');var util=require(_0xa3df('0x1'));var Redis=require(_0xa3df('0x2'));var config=require(_0xa3df('0x3'));config[_0xa3df('0x4')]=_[_0xa3df('0x5')](config[_0xa3df('0x4')],{'host':_0xa3df('0x6'),'port':0x18eb});var io=require(_0xa3df('0x7'))(new Redis(config[_0xa3df('0x4')]));function MailQueue(_0x255496){this['id']=_0x255496['id']||0x0;this[_0xa3df('0x8')]=_0x255496[_0xa3df('0x8')]||'';this['timeout']=_0x255496[_0xa3df('0x9')]||0xa;this['strategy']=_0x255496[_0xa3df('0xa')]||_0xa3df('0xb');this[_0xa3df('0xc')]=_0x255496[_0xa3df('0xc')];this['mapAgentsId']={};this[_0xa3df('0xd')]=0x0;this[_0xa3df('0xe')]='';this['updateRouting']();this['updateRealtime']();}MailQueue['prototype'][_0xa3df('0xf')]=function(){var _0x28ce54=this[_0xa3df('0x10')][_0xa3df('0x11')];this[_0xa3df('0x10')]=_[_0xa3df('0x12')](this['Agents'],'id');this['mapAgentsId'][_0xa3df('0x11')]=_0x28ce54;};MailQueue[_0xa3df('0x13')]['updateRealtime']=function(){this[_0xa3df('0x14')]=0x0;this[_0xa3df('0x15')]=0x0;for(var _0x2a2503=0x0;_0x2a2503<this['Agents'][_0xa3df('0x16')];_0x2a2503+=0x1){if(this[_0xa3df('0xc')][_0x2a2503][_0xa3df('0x17')]){this[_0xa3df('0x14')]+=0x1;}if(this['Agents'][_0x2a2503]['mailPause']){this['paused']+=0x1;}}this[_0xa3df('0x18')]=this['loggedIn']-this['paused'];this[_0xa3df('0x18')]=this[_0xa3df('0x18')]>=0x0?this[_0xa3df('0x18')]:0x0;var _0x51acb2={'id':this['id'],'available':this['available'],'loggedIn':this[_0xa3df('0x14')],'name':this[_0xa3df('0x8')],'paused':this['paused'],'waiting':this[_0xa3df('0xd')]};var _0x22feba=md5(JSON['stringify'](_0x51acb2));if(this['md5']!==_0x22feba){this[_0xa3df('0xe')]=_0x22feba;io['to'](util[_0xa3df('0x19')](_0xa3df('0x1a'),_0x51acb2['name']))['emit'](_0xa3df('0x1b'),_0x51acb2);}};module[_0xa3df('0x1c')]=MailQueue;
\ No newline at end of file
+var _0xeb9a=['redis','defaults','localhost','socket.io-emitter','name','timeout','strategy','beepall','Agents','mapAgentsId','waiting','updateRouting','updateRealtime','prototype','map','_rr','paused','online','loggedIn','mailPause','available','stringify','format','mail:queue:%s','emit','mail_queue:save','exports','lodash','md5','util','ioredis','../../../config/environment'];(function(_0x267692,_0x229aaa){var _0x209905=function(_0x252e4c){while(--_0x252e4c){_0x267692['push'](_0x267692['shift']());}};_0x209905(++_0x229aaa);}(_0xeb9a,0x7b));var _0xaeb9=function(_0x19b3f9,_0xade753){_0x19b3f9=_0x19b3f9-0x0;var _0x18c3f6=_0xeb9a[_0x19b3f9];return _0x18c3f6;};'use strict';var _=require(_0xaeb9('0x0'));var md5=require(_0xaeb9('0x1'));var util=require(_0xaeb9('0x2'));var Redis=require(_0xaeb9('0x3'));var config=require(_0xaeb9('0x4'));config[_0xaeb9('0x5')]=_[_0xaeb9('0x6')](config['redis'],{'host':_0xaeb9('0x7'),'port':0x18eb});var io=require(_0xaeb9('0x8'))(new Redis(config['redis']));function MailQueue(_0x47d29c){this['id']=_0x47d29c['id']||0x0;this[_0xaeb9('0x9')]=_0x47d29c[_0xaeb9('0x9')]||'';this[_0xaeb9('0xa')]=_0x47d29c[_0xaeb9('0xa')]||0xa;this[_0xaeb9('0xb')]=_0x47d29c[_0xaeb9('0xb')]||_0xaeb9('0xc');this['Agents']=_0x47d29c[_0xaeb9('0xd')];this[_0xaeb9('0xe')]={};this[_0xaeb9('0xf')]=0x0;this[_0xaeb9('0x1')]='';this[_0xaeb9('0x10')]();this[_0xaeb9('0x11')]();}MailQueue[_0xaeb9('0x12')][_0xaeb9('0x10')]=function(){var _0x4b7763=this[_0xaeb9('0xe')]['_rr'];this[_0xaeb9('0xe')]=_[_0xaeb9('0x13')](this[_0xaeb9('0xd')],'id');this['mapAgentsId'][_0xaeb9('0x14')]=_0x4b7763;};MailQueue[_0xaeb9('0x12')][_0xaeb9('0x11')]=function(){this['loggedIn']=0x0;this[_0xaeb9('0x15')]=0x0;for(var _0x5a5f89=0x0;_0x5a5f89<this[_0xaeb9('0xd')]['length'];_0x5a5f89+=0x1){if(this[_0xaeb9('0xd')][_0x5a5f89][_0xaeb9('0x16')]){this[_0xaeb9('0x17')]+=0x1;}if(this[_0xaeb9('0xd')][_0x5a5f89][_0xaeb9('0x18')]){this[_0xaeb9('0x15')]+=0x1;}}this[_0xaeb9('0x19')]=this[_0xaeb9('0x17')]-this[_0xaeb9('0x15')];this['available']=this['available']>=0x0?this[_0xaeb9('0x19')]:0x0;var _0x152146={'id':this['id'],'available':this[_0xaeb9('0x19')],'loggedIn':this[_0xaeb9('0x17')],'name':this[_0xaeb9('0x9')],'paused':this[_0xaeb9('0x15')],'waiting':this[_0xaeb9('0xf')]};var _0x4894ef=md5(JSON[_0xaeb9('0x1a')](_0x152146));if(this[_0xaeb9('0x1')]!==_0x4894ef){this[_0xaeb9('0x1')]=_0x4894ef;io['to'](util[_0xaeb9('0x1b')](_0xaeb9('0x1c'),_0x152146[_0xaeb9('0x9')]))[_0xaeb9('0x1d')](_0xaeb9('0x1e'),_0x152146);}};module[_0xaeb9('0x1f')]=MailQueue;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1261=['available','stringify','openchannel:queue:%s','openchannel_queue:save','exports','md5','util','ioredis','../../../config/environment','redis','defaults','localhost','socket.io-emitter','name','timeout','strategy','beepall','Agents','waiting','updateRouting','prototype','mapAgentsId','map','_rr','updateRealtime','loggedIn','paused','length','online'];(function(_0x16b9ed,_0x56517a){var _0x66b1f8=function(_0x1c883){while(--_0x1c883){_0x16b9ed['push'](_0x16b9ed['shift']());}};_0x66b1f8(++_0x56517a);}(_0x1261,0x144));var _0x1126=function(_0x51d129,_0x175d7d){_0x51d129=_0x51d129-0x0;var _0x44c377=_0x1261[_0x51d129];return _0x44c377;};'use strict';var _=require('lodash');var md5=require(_0x1126('0x0'));var util=require(_0x1126('0x1'));var Redis=require(_0x1126('0x2'));var config=require(_0x1126('0x3'));config[_0x1126('0x4')]=_[_0x1126('0x5')](config[_0x1126('0x4')],{'host':_0x1126('0x6'),'port':0x18eb});var io=require(_0x1126('0x7'))(new Redis(config[_0x1126('0x4')]));function OpenchannelQueue(_0x5a2189){this['id']=_0x5a2189['id']||0x0;this['name']=_0x5a2189[_0x1126('0x8')]||'';this[_0x1126('0x9')]=_0x5a2189['timeout']||0xa;this[_0x1126('0xa')]=_0x5a2189[_0x1126('0xa')]||_0x1126('0xb');this[_0x1126('0xc')]=_0x5a2189[_0x1126('0xc')];this['mapAgentsId']={};this[_0x1126('0xd')]=0x0;this[_0x1126('0x0')]='';this[_0x1126('0xe')]();this['updateRealtime']();}OpenchannelQueue[_0x1126('0xf')]['updateRouting']=function(){var _0x52ef15=this[_0x1126('0x10')]['_rr'];this[_0x1126('0x10')]=_[_0x1126('0x11')](this[_0x1126('0xc')],'id');this[_0x1126('0x10')][_0x1126('0x12')]=_0x52ef15;};OpenchannelQueue[_0x1126('0xf')][_0x1126('0x13')]=function(){this[_0x1126('0x14')]=0x0;this[_0x1126('0x15')]=0x0;for(var _0x53a8f0=0x0;_0x53a8f0<this['Agents'][_0x1126('0x16')];_0x53a8f0+=0x1){if(this[_0x1126('0xc')][_0x53a8f0][_0x1126('0x17')]){this['loggedIn']+=0x1;}if(this[_0x1126('0xc')][_0x53a8f0]['openchannelPause']){this[_0x1126('0x15')]+=0x1;}}this[_0x1126('0x18')]=this[_0x1126('0x14')]-this['paused'];this[_0x1126('0x18')]=this[_0x1126('0x18')]>=0x0?this['available']:0x0;var _0x4d2b38={'id':this['id'],'available':this[_0x1126('0x18')],'loggedIn':this[_0x1126('0x14')],'name':this['name'],'paused':this['paused'],'waiting':this[_0x1126('0xd')]};var _0x58b109=md5(JSON[_0x1126('0x19')](_0x4d2b38));if(this[_0x1126('0x0')]!==_0x58b109){this[_0x1126('0x0')]=_0x58b109;io['to'](util['format'](_0x1126('0x1a'),_0x4d2b38['name']))['emit'](_0x1126('0x1b'),_0x4d2b38);}};module[_0x1126('0x1c')]=OpenchannelQueue;
\ No newline at end of file
+var _0xadb5=['../../../config/environment','redis','localhost','socket.io-emitter','name','timeout','strategy','beepall','Agents','mapAgentsId','waiting','updateRouting','_rr','prototype','updateRealtime','paused','loggedIn','openchannelPause','available','stringify','format','openchannel:queue:%s','emit','md5','ioredis'];(function(_0x3d3ddd,_0x59b504){var _0x52a4f9=function(_0x349a69){while(--_0x349a69){_0x3d3ddd['push'](_0x3d3ddd['shift']());}};_0x52a4f9(++_0x59b504);}(_0xadb5,0xad));var _0x5adb=function(_0x39363c,_0x2902e1){_0x39363c=_0x39363c-0x0;var _0x2f3e8a=_0xadb5[_0x39363c];return _0x2f3e8a;};'use strict';var _=require('lodash');var md5=require(_0x5adb('0x0'));var util=require('util');var Redis=require(_0x5adb('0x1'));var config=require(_0x5adb('0x2'));config[_0x5adb('0x3')]=_['defaults'](config[_0x5adb('0x3')],{'host':_0x5adb('0x4'),'port':0x18eb});var io=require(_0x5adb('0x5'))(new Redis(config['redis']));function OpenchannelQueue(_0x35a5d3){this['id']=_0x35a5d3['id']||0x0;this[_0x5adb('0x6')]=_0x35a5d3[_0x5adb('0x6')]||'';this[_0x5adb('0x7')]=_0x35a5d3[_0x5adb('0x7')]||0xa;this[_0x5adb('0x8')]=_0x35a5d3[_0x5adb('0x8')]||_0x5adb('0x9');this[_0x5adb('0xa')]=_0x35a5d3[_0x5adb('0xa')];this[_0x5adb('0xb')]={};this[_0x5adb('0xc')]=0x0;this[_0x5adb('0x0')]='';this[_0x5adb('0xd')]();this['updateRealtime']();}OpenchannelQueue['prototype'][_0x5adb('0xd')]=function(){var _0x1ea238=this[_0x5adb('0xb')]['_rr'];this[_0x5adb('0xb')]=_['map'](this[_0x5adb('0xa')],'id');this['mapAgentsId'][_0x5adb('0xe')]=_0x1ea238;};OpenchannelQueue[_0x5adb('0xf')][_0x5adb('0x10')]=function(){this['loggedIn']=0x0;this[_0x5adb('0x11')]=0x0;for(var _0x34af2c=0x0;_0x34af2c<this[_0x5adb('0xa')]['length'];_0x34af2c+=0x1){if(this[_0x5adb('0xa')][_0x34af2c]['online']){this[_0x5adb('0x12')]+=0x1;}if(this[_0x5adb('0xa')][_0x34af2c][_0x5adb('0x13')]){this[_0x5adb('0x11')]+=0x1;}}this[_0x5adb('0x14')]=this[_0x5adb('0x12')]-this[_0x5adb('0x11')];this[_0x5adb('0x14')]=this[_0x5adb('0x14')]>=0x0?this['available']:0x0;var _0x3fff62={'id':this['id'],'available':this['available'],'loggedIn':this[_0x5adb('0x12')],'name':this['name'],'paused':this[_0x5adb('0x11')],'waiting':this['waiting']};var _0x5e218c=md5(JSON[_0x5adb('0x15')](_0x3fff62));if(this[_0x5adb('0x0')]!==_0x5e218c){this[_0x5adb('0x0')]=_0x5e218c;io['to'](util[_0x5adb('0x16')](_0x5adb('0x17'),_0x3fff62['name']))[_0x5adb('0x18')]('openchannel_queue:save',_0x3fff62);}};module['exports']=OpenchannelQueue;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x0cfa=['timeout','strategy','beepall','Agents','mapAgentsId','waiting','updateRouting','updateRealtime','_rr','map','prototype','loggedIn','length','online','smsPause','paused','available','format','sms:queue:%s','emit','sms_queue:save','exports','lodash','md5','util','ioredis','redis','socket.io-emitter','name'];(function(_0xf72786,_0x1a0ddd){var _0x113f3e=function(_0x57337a){while(--_0x57337a){_0xf72786['push'](_0xf72786['shift']());}};_0x113f3e(++_0x1a0ddd);}(_0x0cfa,0x18f));var _0xa0cf=function(_0x1ca2ad,_0x587694){_0x1ca2ad=_0x1ca2ad-0x0;var _0x3351fb=_0x0cfa[_0x1ca2ad];return _0x3351fb;};'use strict';var _=require(_0xa0cf('0x0'));var md5=require(_0xa0cf('0x1'));var util=require(_0xa0cf('0x2'));var Redis=require(_0xa0cf('0x3'));var config=require('../../../config/environment');config['redis']=_['defaults'](config[_0xa0cf('0x4')],{'host':'localhost','port':0x18eb});var io=require(_0xa0cf('0x5'))(new Redis(config[_0xa0cf('0x4')]));function SmsQueue(_0x19f827){this['id']=_0x19f827['id']||0x0;this[_0xa0cf('0x6')]=_0x19f827['name']||'';this[_0xa0cf('0x7')]=_0x19f827['timeout']||0xa;this[_0xa0cf('0x8')]=_0x19f827['strategy']||_0xa0cf('0x9');this['Agents']=_0x19f827[_0xa0cf('0xa')];this[_0xa0cf('0xb')]={};this[_0xa0cf('0xc')]=0x0;this['md5']='';this[_0xa0cf('0xd')]();this[_0xa0cf('0xe')]();}SmsQueue['prototype']['updateRouting']=function(){var _0xe98d2a=this[_0xa0cf('0xb')][_0xa0cf('0xf')];this['mapAgentsId']=_[_0xa0cf('0x10')](this[_0xa0cf('0xa')],'id');this[_0xa0cf('0xb')][_0xa0cf('0xf')]=_0xe98d2a;};SmsQueue[_0xa0cf('0x11')][_0xa0cf('0xe')]=function(){this[_0xa0cf('0x12')]=0x0;this['paused']=0x0;for(var _0x560c9b=0x0;_0x560c9b<this[_0xa0cf('0xa')][_0xa0cf('0x13')];_0x560c9b+=0x1){if(this['Agents'][_0x560c9b][_0xa0cf('0x14')]){this[_0xa0cf('0x12')]+=0x1;}if(this[_0xa0cf('0xa')][_0x560c9b][_0xa0cf('0x15')]){this[_0xa0cf('0x16')]+=0x1;}}this['available']=this[_0xa0cf('0x12')]-this[_0xa0cf('0x16')];this['available']=this[_0xa0cf('0x17')]>=0x0?this[_0xa0cf('0x17')]:0x0;var _0x53a186={'id':this['id'],'available':this[_0xa0cf('0x17')],'loggedIn':this[_0xa0cf('0x12')],'name':this[_0xa0cf('0x6')],'paused':this[_0xa0cf('0x16')],'waiting':this[_0xa0cf('0xc')]};var _0x8bb2ab=md5(JSON['stringify'](_0x53a186));if(this[_0xa0cf('0x1')]!==_0x8bb2ab){this[_0xa0cf('0x1')]=_0x8bb2ab;io['to'](util[_0xa0cf('0x18')](_0xa0cf('0x19'),_0x53a186[_0xa0cf('0x6')]))[_0xa0cf('0x1a')](_0xa0cf('0x1b'),_0x53a186);}};module[_0xa0cf('0x1c')]=SmsQueue;
\ No newline at end of file
+var _0xd58c=['waiting','updateRouting','prototype','_rr','map','updateRealtime','loggedIn','paused','online','available','format','sms:queue:%s','sms_queue:save','exports','lodash','md5','util','../../../config/environment','defaults','localhost','socket.io-emitter','redis','name','timeout','strategy','beepall','Agents','mapAgentsId'];(function(_0x2e25da,_0xbf4c57){var _0x409b18=function(_0x4f9621){while(--_0x4f9621){_0x2e25da['push'](_0x2e25da['shift']());}};_0x409b18(++_0xbf4c57);}(_0xd58c,0xb6));var _0xcd58=function(_0x3a2855,_0x3495e1){_0x3a2855=_0x3a2855-0x0;var _0x1fc9cc=_0xd58c[_0x3a2855];return _0x1fc9cc;};'use strict';var _=require(_0xcd58('0x0'));var md5=require(_0xcd58('0x1'));var util=require(_0xcd58('0x2'));var Redis=require('ioredis');var config=require(_0xcd58('0x3'));config['redis']=_[_0xcd58('0x4')](config['redis'],{'host':_0xcd58('0x5'),'port':0x18eb});var io=require(_0xcd58('0x6'))(new Redis(config[_0xcd58('0x7')]));function SmsQueue(_0x159971){this['id']=_0x159971['id']||0x0;this[_0xcd58('0x8')]=_0x159971['name']||'';this['timeout']=_0x159971[_0xcd58('0x9')]||0xa;this[_0xcd58('0xa')]=_0x159971[_0xcd58('0xa')]||_0xcd58('0xb');this[_0xcd58('0xc')]=_0x159971['Agents'];this[_0xcd58('0xd')]={};this[_0xcd58('0xe')]=0x0;this['md5']='';this[_0xcd58('0xf')]();this['updateRealtime']();}SmsQueue[_0xcd58('0x10')][_0xcd58('0xf')]=function(){var _0x440cf1=this['mapAgentsId'][_0xcd58('0x11')];this['mapAgentsId']=_[_0xcd58('0x12')](this['Agents'],'id');this[_0xcd58('0xd')][_0xcd58('0x11')]=_0x440cf1;};SmsQueue[_0xcd58('0x10')][_0xcd58('0x13')]=function(){this[_0xcd58('0x14')]=0x0;this[_0xcd58('0x15')]=0x0;for(var _0xda9091=0x0;_0xda9091<this[_0xcd58('0xc')]['length'];_0xda9091+=0x1){if(this['Agents'][_0xda9091][_0xcd58('0x16')]){this[_0xcd58('0x14')]+=0x1;}if(this[_0xcd58('0xc')][_0xda9091]['smsPause']){this['paused']+=0x1;}}this[_0xcd58('0x17')]=this[_0xcd58('0x14')]-this[_0xcd58('0x15')];this['available']=this['available']>=0x0?this[_0xcd58('0x17')]:0x0;var _0x53ad6a={'id':this['id'],'available':this[_0xcd58('0x17')],'loggedIn':this[_0xcd58('0x14')],'name':this[_0xcd58('0x8')],'paused':this[_0xcd58('0x15')],'waiting':this['waiting']};var _0x2ec37e=md5(JSON['stringify'](_0x53ad6a));if(this['md5']!==_0x2ec37e){this['md5']=_0x2ec37e;io['to'](util[_0xcd58('0x18')](_0xcd58('0x19'),_0x53ad6a[_0xcd58('0x8')]))['emit'](_0xcd58('0x1a'),_0x53ad6a);}};module[_0xcd58('0x1b')]=SmsQueue;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1a7f=['../../../config/environment','redis','defaults','localhost','socket.io-emitter','name','timeout','strategy','beepall','Agents','mapAgentsId','waiting','updateRouting','updateRealtime','map','_rr','prototype','loggedIn','paused','length','whatsappPause','available','stringify','format','whatsapp:queue:%s','emit','whatsapp_queue:save','exports','md5','util','ioredis'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x1a7f,0x190));var _0xf1a7=function(_0x2641f9,_0x26715f){_0x2641f9=_0x2641f9-0x0;var _0x585741=_0x1a7f[_0x2641f9];return _0x585741;};'use strict';var _=require('lodash');var md5=require(_0xf1a7('0x0'));var util=require(_0xf1a7('0x1'));var Redis=require(_0xf1a7('0x2'));var config=require(_0xf1a7('0x3'));config[_0xf1a7('0x4')]=_[_0xf1a7('0x5')](config[_0xf1a7('0x4')],{'host':_0xf1a7('0x6'),'port':0x18eb});var io=require(_0xf1a7('0x7'))(new Redis(config['redis']));function WhatsappQueue(_0x329d2c){this['id']=_0x329d2c['id']||0x0;this[_0xf1a7('0x8')]=_0x329d2c[_0xf1a7('0x8')]||'';this[_0xf1a7('0x9')]=_0x329d2c[_0xf1a7('0x9')]||0xa;this[_0xf1a7('0xa')]=_0x329d2c[_0xf1a7('0xa')]||_0xf1a7('0xb');this[_0xf1a7('0xc')]=_0x329d2c[_0xf1a7('0xc')];this[_0xf1a7('0xd')]={};this[_0xf1a7('0xe')]=0x0;this[_0xf1a7('0x0')]='';this[_0xf1a7('0xf')]();this[_0xf1a7('0x10')]();}WhatsappQueue['prototype'][_0xf1a7('0xf')]=function(){var _0x2ea7c0=this[_0xf1a7('0xd')]['_rr'];this['mapAgentsId']=_[_0xf1a7('0x11')](this[_0xf1a7('0xc')],'id');this[_0xf1a7('0xd')][_0xf1a7('0x12')]=_0x2ea7c0;};WhatsappQueue[_0xf1a7('0x13')][_0xf1a7('0x10')]=function(){this[_0xf1a7('0x14')]=0x0;this[_0xf1a7('0x15')]=0x0;for(var _0x447431=0x0;_0x447431<this[_0xf1a7('0xc')][_0xf1a7('0x16')];_0x447431+=0x1){if(this[_0xf1a7('0xc')][_0x447431]['online']){this[_0xf1a7('0x14')]+=0x1;}if(this[_0xf1a7('0xc')][_0x447431][_0xf1a7('0x17')]){this['paused']+=0x1;}}this[_0xf1a7('0x18')]=this[_0xf1a7('0x14')]-this[_0xf1a7('0x15')];this[_0xf1a7('0x18')]=this[_0xf1a7('0x18')]>=0x0?this[_0xf1a7('0x18')]:0x0;var _0x15a366={'id':this['id'],'available':this[_0xf1a7('0x18')],'loggedIn':this['loggedIn'],'name':this['name'],'paused':this[_0xf1a7('0x15')],'waiting':this[_0xf1a7('0xe')]};var _0x477757=md5(JSON[_0xf1a7('0x19')](_0x15a366));if(this[_0xf1a7('0x0')]!==_0x477757){this[_0xf1a7('0x0')]=_0x477757;io['to'](util[_0xf1a7('0x1a')](_0xf1a7('0x1b'),_0x15a366[_0xf1a7('0x8')]))[_0xf1a7('0x1c')](_0xf1a7('0x1d'),_0x15a366);}};module[_0xf1a7('0x1e')]=WhatsappQueue;
\ No newline at end of file
+var _0x3b03=['lodash','md5','util','ioredis','redis','defaults','localhost','name','timeout','strategy','Agents','mapAgentsId','waiting','updateRouting','prototype','map','paused','length','online','loggedIn','whatsappPause','available','stringify','format','whatsapp:queue:%s','whatsapp_queue:save','exports'];(function(_0x4b5f91,_0x26c295){var _0x3c3a04=function(_0x25dbb6){while(--_0x25dbb6){_0x4b5f91['push'](_0x4b5f91['shift']());}};_0x3c3a04(++_0x26c295);}(_0x3b03,0x1e6));var _0x33b0=function(_0xefd519,_0xc62635){_0xefd519=_0xefd519-0x0;var _0x4bb882=_0x3b03[_0xefd519];return _0x4bb882;};'use strict';var _=require(_0x33b0('0x0'));var md5=require(_0x33b0('0x1'));var util=require(_0x33b0('0x2'));var Redis=require(_0x33b0('0x3'));var config=require('../../../config/environment');config[_0x33b0('0x4')]=_[_0x33b0('0x5')](config[_0x33b0('0x4')],{'host':_0x33b0('0x6'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x33b0('0x4')]));function WhatsappQueue(_0x45cbe6){this['id']=_0x45cbe6['id']||0x0;this[_0x33b0('0x7')]=_0x45cbe6[_0x33b0('0x7')]||'';this[_0x33b0('0x8')]=_0x45cbe6[_0x33b0('0x8')]||0xa;this[_0x33b0('0x9')]=_0x45cbe6[_0x33b0('0x9')]||'beepall';this[_0x33b0('0xa')]=_0x45cbe6[_0x33b0('0xa')];this[_0x33b0('0xb')]={};this[_0x33b0('0xc')]=0x0;this[_0x33b0('0x1')]='';this[_0x33b0('0xd')]();this['updateRealtime']();}WhatsappQueue[_0x33b0('0xe')][_0x33b0('0xd')]=function(){var _0x1c48ce=this[_0x33b0('0xb')]['_rr'];this[_0x33b0('0xb')]=_[_0x33b0('0xf')](this[_0x33b0('0xa')],'id');this[_0x33b0('0xb')]['_rr']=_0x1c48ce;};WhatsappQueue['prototype']['updateRealtime']=function(){this['loggedIn']=0x0;this[_0x33b0('0x10')]=0x0;for(var _0x5b6a6b=0x0;_0x5b6a6b<this['Agents'][_0x33b0('0x11')];_0x5b6a6b+=0x1){if(this[_0x33b0('0xa')][_0x5b6a6b][_0x33b0('0x12')]){this[_0x33b0('0x13')]+=0x1;}if(this[_0x33b0('0xa')][_0x5b6a6b][_0x33b0('0x14')]){this[_0x33b0('0x10')]+=0x1;}}this[_0x33b0('0x15')]=this[_0x33b0('0x13')]-this[_0x33b0('0x10')];this[_0x33b0('0x15')]=this[_0x33b0('0x15')]>=0x0?this[_0x33b0('0x15')]:0x0;var _0x57ce9b={'id':this['id'],'available':this[_0x33b0('0x15')],'loggedIn':this[_0x33b0('0x13')],'name':this['name'],'paused':this[_0x33b0('0x10')],'waiting':this['waiting']};var _0x4cdc72=md5(JSON[_0x33b0('0x16')](_0x57ce9b));if(this[_0x33b0('0x1')]!==_0x4cdc72){this['md5']=_0x4cdc72;io['to'](util[_0x33b0('0x17')](_0x33b0('0x18'),_0x57ce9b[_0x33b0('0x7')]))['emit'](_0x33b0('0x19'),_0x57ce9b);}};module[_0x33b0('0x1a')]=WhatsappQueue;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['isUndefined','initIntervals','updateRealtime','updateRouting','initSmsQueues','smsQueues','initMailQueues','mailQueues','initWhatsappQueues','whatsappQueues','exports','bluebird','util','lodash','../model/interval','../model/chatQueue','../model/smsQueue','../model/mailQueue','../model/faxQueue','../model/whatsappQueue','intervals','openchannelQueues','chatQueues','faxQueues','mailQueuesWaitingInteractions','openchannelQueuesWaitingInteractions','smsQueuesWaitingInteractions','faxQueuesWaitingInteractions','whatsappQueuesWaitingInteractions','hasOwnProperty','prototype','mergeFromDatabase','initAgents','agents','length'];(function(_0x321bb2,_0x202794){var _0x9c12ed=function(_0x263dd3){while(--_0x263dd3){_0x321bb2['push'](_0x321bb2['shift']());}};_0x9c12ed(++_0x202794);}(_0xa9e0,0x123));var _0x0a9e=function(_0x92c450,_0x41f1e3){_0x92c450=_0x92c450-0x0;var _0x2a9599=_0xa9e0[_0x92c450];return _0x2a9599;};'use strict';var BPromise=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var _=require(_0x0a9e('0x2'));var moment=require('moment');var Agent=require('../model/agent');var Interval=require(_0x0a9e('0x3'));var OpenchannelQueue=require('../model/openchannelQueue');var ChatQueue=require(_0x0a9e('0x4'));var SmsQueue=require(_0x0a9e('0x5'));var MailQueue=require(_0x0a9e('0x6'));var FaxQueue=require(_0x0a9e('0x7'));var WhatsappQueue=require(_0x0a9e('0x8'));var Realtime=function(){this['agents']={};this[_0x0a9e('0x9')]={};this[_0x0a9e('0xa')]={};this[_0x0a9e('0xb')]={};this['smsQueues']={};this['mailQueues']={};this[_0x0a9e('0xc')]={};this['whatsappQueues']={};this['chatQueuesWaitingInteractions']={};this[_0x0a9e('0xd')]={};this[_0x0a9e('0xe')]={};this[_0x0a9e('0xf')]={};this[_0x0a9e('0x10')]={};this[_0x0a9e('0x11')]={};};function freeIsNotKey(_0xbd1168,_0x4a4c56,_0x50dfb2){var _0x527cdd=_['mapKeys'](_0xbd1168,function(_0x273d4d,_0x36471c){return _0x273d4d[_0x50dfb2];});for(var _0xd5b662 in _0x4a4c56){if(_0x4a4c56[_0x0a9e('0x12')](_0xd5b662)){if(!_0x527cdd[_0xd5b662]){delete _0x4a4c56[_0xd5b662];}}}}Realtime[_0x0a9e('0x13')][_0x0a9e('0x14')]=function(_0x5db4b0,_0x4283ce){for(var _0x239b12 in _0x4283ce){if(_0x5db4b0[_0x0a9e('0x12')](_0x239b12)){_0x5db4b0[_0x239b12]=_0x4283ce[_0x239b12];}}};Realtime[_0x0a9e('0x13')][_0x0a9e('0x15')]=function(){var _0x4d5611=this;return function(_0x52a03d){if(_0x52a03d){freeIsNotKey(_0x52a03d,_0x4d5611[_0x0a9e('0x16')],'id');for(var _0x5d0880=0x0,_0x1985b6={},_0x519dfd={};_0x5d0880<_0x52a03d[_0x0a9e('0x17')];_0x5d0880+=0x1){_0x1985b6=_0x52a03d[_0x5d0880];if(_[_0x0a9e('0x18')](_0x4d5611['agents'][_0x1985b6['id']])){_0x4d5611[_0x0a9e('0x16')][_0x1985b6['id']]=new Agent(_0x1985b6);}else{_0x4d5611['mergeFromDatabase'](_0x4d5611[_0x0a9e('0x16')][_0x1985b6['id']],_0x1985b6);}}}return _0x4d5611[_0x0a9e('0x16')];};};Realtime[_0x0a9e('0x13')][_0x0a9e('0x19')]=function(){var _0x31b1ca=this;return function(_0x2eb11f){if(_0x2eb11f){freeIsNotKey(_0x2eb11f,_0x31b1ca[_0x0a9e('0x9')],'id');for(var _0x20559e=0x0,_0x1314ae={},_0x112016={};_0x20559e<_0x2eb11f[_0x0a9e('0x17')];_0x20559e+=0x1){_0x1314ae=_0x2eb11f[_0x20559e];if(_[_0x0a9e('0x18')](_0x31b1ca['intervals'][_0x1314ae['id']])){_0x31b1ca[_0x0a9e('0x9')][_0x1314ae['id']]=new Interval(_0x1314ae);}else{_0x31b1ca[_0x0a9e('0x14')](_0x31b1ca['intervals'][_0x1314ae['id']],_0x1314ae);}}}return _0x31b1ca[_0x0a9e('0x9')];};};Realtime['prototype']['initOpenchannelQueues']=function(){var _0x3a02e1=this;return function(_0x432e56){if(_0x432e56){freeIsNotKey(_0x432e56,_0x3a02e1[_0x0a9e('0xa')],'id');for(var _0x30bae6=0x0,_0x4abc77={},_0xfb6e48={};_0x30bae6<_0x432e56[_0x0a9e('0x17')];_0x30bae6+=0x1){_0x4abc77=_0x432e56[_0x30bae6];if(_[_0x0a9e('0x18')](_0x3a02e1[_0x0a9e('0xa')][_0x4abc77['id']])){_0x3a02e1[_0x0a9e('0xa')][_0x4abc77['id']]=new OpenchannelQueue(_0x4abc77);}else{_0x3a02e1[_0x0a9e('0x14')](_0x3a02e1[_0x0a9e('0xa')][_0x4abc77['id']],_0x4abc77);}_0x3a02e1['openchannelQueues'][_0x4abc77['id']]['updateRouting']();_0x3a02e1[_0x0a9e('0xa')][_0x4abc77['id']][_0x0a9e('0x1a')]();}}return _0x3a02e1[_0x0a9e('0xa')];};};Realtime[_0x0a9e('0x13')]['initChatQueues']=function(){var _0x384319=this;return function(_0x479bc4){if(_0x479bc4){freeIsNotKey(_0x479bc4,_0x384319[_0x0a9e('0xb')],'id');for(var _0x5bfb33=0x0,_0x1dc186={},_0x34dc65={};_0x5bfb33<_0x479bc4[_0x0a9e('0x17')];_0x5bfb33+=0x1){_0x1dc186=_0x479bc4[_0x5bfb33];if(_[_0x0a9e('0x18')](_0x384319[_0x0a9e('0xb')][_0x1dc186['id']])){_0x384319[_0x0a9e('0xb')][_0x1dc186['id']]=new ChatQueue(_0x1dc186);}else{_0x384319[_0x0a9e('0x14')](_0x384319[_0x0a9e('0xb')][_0x1dc186['id']],_0x1dc186);}_0x384319['chatQueues'][_0x1dc186['id']][_0x0a9e('0x1b')]();_0x384319[_0x0a9e('0xb')][_0x1dc186['id']][_0x0a9e('0x1a')]();}}return _0x384319[_0x0a9e('0xb')];};};Realtime['prototype'][_0x0a9e('0x1c')]=function(){var _0x40e7a3=this;return function(_0x1843b2){if(_0x1843b2){freeIsNotKey(_0x1843b2,_0x40e7a3[_0x0a9e('0x1d')],'id');for(var _0x58b06f=0x0,_0x563b45={},_0x296f41={};_0x58b06f<_0x1843b2[_0x0a9e('0x17')];_0x58b06f+=0x1){_0x563b45=_0x1843b2[_0x58b06f];if(_[_0x0a9e('0x18')](_0x40e7a3['smsQueues'][_0x563b45['id']])){_0x40e7a3[_0x0a9e('0x1d')][_0x563b45['id']]=new SmsQueue(_0x563b45);}else{_0x40e7a3['mergeFromDatabase'](_0x40e7a3[_0x0a9e('0x1d')][_0x563b45['id']],_0x563b45);}_0x40e7a3[_0x0a9e('0x1d')][_0x563b45['id']][_0x0a9e('0x1b')]();_0x40e7a3[_0x0a9e('0x1d')][_0x563b45['id']][_0x0a9e('0x1a')]();}}return _0x40e7a3['smsQueues'];};};Realtime[_0x0a9e('0x13')][_0x0a9e('0x1e')]=function(){var _0x40cb85=this;return function(_0x2da5c0){if(_0x2da5c0){freeIsNotKey(_0x2da5c0,_0x40cb85[_0x0a9e('0x1f')],'id');for(var _0x409319=0x0,_0x332d35={},_0x39e565={};_0x409319<_0x2da5c0['length'];_0x409319+=0x1){_0x332d35=_0x2da5c0[_0x409319];if(_[_0x0a9e('0x18')](_0x40cb85['mailQueues'][_0x332d35['id']])){_0x40cb85[_0x0a9e('0x1f')][_0x332d35['id']]=new MailQueue(_0x332d35);}else{_0x40cb85[_0x0a9e('0x14')](_0x40cb85[_0x0a9e('0x1f')][_0x332d35['id']],_0x332d35);}_0x40cb85[_0x0a9e('0x1f')][_0x332d35['id']]['updateRouting']();_0x40cb85[_0x0a9e('0x1f')][_0x332d35['id']][_0x0a9e('0x1a')]();}}return _0x40cb85[_0x0a9e('0x1f')];};};Realtime[_0x0a9e('0x13')]['initFaxQueues']=function(){var _0x54135e=this;return function(_0x1e8694){if(_0x1e8694){freeIsNotKey(_0x1e8694,_0x54135e['faxQueues'],'id');for(var _0x24936a=0x0,_0x3d9717={},_0x381c37={};_0x24936a<_0x1e8694[_0x0a9e('0x17')];_0x24936a+=0x1){_0x3d9717=_0x1e8694[_0x24936a];if(_['isUndefined'](_0x54135e[_0x0a9e('0xc')][_0x3d9717['id']])){_0x54135e[_0x0a9e('0xc')][_0x3d9717['id']]=new FaxQueue(_0x3d9717);}else{_0x54135e[_0x0a9e('0x14')](_0x54135e['faxQueues'][_0x3d9717['id']],_0x3d9717);}_0x54135e[_0x0a9e('0xc')][_0x3d9717['id']][_0x0a9e('0x1b')]();_0x54135e[_0x0a9e('0xc')][_0x3d9717['id']]['updateRealtime']();}}return _0x54135e['faxQueues'];};};Realtime[_0x0a9e('0x13')][_0x0a9e('0x20')]=function(){var _0x5adda1=this;return function(_0x2b814e){if(_0x2b814e){freeIsNotKey(_0x2b814e,_0x5adda1[_0x0a9e('0x21')],'id');for(var _0x2e1b3a=0x0,_0x148f55={},_0x4b38d9={};_0x2e1b3a<_0x2b814e['length'];_0x2e1b3a+=0x1){_0x148f55=_0x2b814e[_0x2e1b3a];if(_[_0x0a9e('0x18')](_0x5adda1[_0x0a9e('0x21')][_0x148f55['id']])){_0x5adda1['whatsappQueues'][_0x148f55['id']]=new WhatsappQueue(_0x148f55);}else{_0x5adda1[_0x0a9e('0x14')](_0x5adda1[_0x0a9e('0x21')][_0x148f55['id']],_0x148f55);}_0x5adda1[_0x0a9e('0x21')][_0x148f55['id']]['updateRouting']();_0x5adda1[_0x0a9e('0x21')][_0x148f55['id']][_0x0a9e('0x1a')]();}}return _0x5adda1[_0x0a9e('0x21')];};};module[_0x0a9e('0x22')]=Realtime;
\ No newline at end of file
+var _0xa9e0=['isUndefined','initIntervals','updateRealtime','updateRouting','initSmsQueues','smsQueues','initMailQueues','mailQueues','initWhatsappQueues','whatsappQueues','exports','bluebird','util','lodash','../model/interval','../model/chatQueue','../model/smsQueue','../model/mailQueue','../model/faxQueue','../model/whatsappQueue','intervals','openchannelQueues','chatQueues','faxQueues','mailQueuesWaitingInteractions','openchannelQueuesWaitingInteractions','smsQueuesWaitingInteractions','faxQueuesWaitingInteractions','whatsappQueuesWaitingInteractions','hasOwnProperty','prototype','mergeFromDatabase','initAgents','agents','length'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xa9e0,0x123));var _0x0a9e=function(_0x2763f2,_0x416af8){_0x2763f2=_0x2763f2-0x0;var _0x3ef471=_0xa9e0[_0x2763f2];return _0x3ef471;};'use strict';var BPromise=require(_0x0a9e('0x0'));var util=require(_0x0a9e('0x1'));var _=require(_0x0a9e('0x2'));var moment=require('moment');var Agent=require('../model/agent');var Interval=require(_0x0a9e('0x3'));var OpenchannelQueue=require('../model/openchannelQueue');var ChatQueue=require(_0x0a9e('0x4'));var SmsQueue=require(_0x0a9e('0x5'));var MailQueue=require(_0x0a9e('0x6'));var FaxQueue=require(_0x0a9e('0x7'));var WhatsappQueue=require(_0x0a9e('0x8'));var Realtime=function(){this['agents']={};this[_0x0a9e('0x9')]={};this[_0x0a9e('0xa')]={};this[_0x0a9e('0xb')]={};this['smsQueues']={};this['mailQueues']={};this[_0x0a9e('0xc')]={};this['whatsappQueues']={};this['chatQueuesWaitingInteractions']={};this[_0x0a9e('0xd')]={};this[_0x0a9e('0xe')]={};this[_0x0a9e('0xf')]={};this[_0x0a9e('0x10')]={};this[_0x0a9e('0x11')]={};};function freeIsNotKey(_0xbd1168,_0x4a4c56,_0x50dfb2){var _0x527cdd=_['mapKeys'](_0xbd1168,function(_0x273d4d,_0x36471c){return _0x273d4d[_0x50dfb2];});for(var _0xd5b662 in _0x4a4c56){if(_0x4a4c56[_0x0a9e('0x12')](_0xd5b662)){if(!_0x527cdd[_0xd5b662]){delete _0x4a4c56[_0xd5b662];}}}}Realtime[_0x0a9e('0x13')][_0x0a9e('0x14')]=function(_0x5db4b0,_0x4283ce){for(var _0x239b12 in _0x4283ce){if(_0x5db4b0[_0x0a9e('0x12')](_0x239b12)){_0x5db4b0[_0x239b12]=_0x4283ce[_0x239b12];}}};Realtime[_0x0a9e('0x13')][_0x0a9e('0x15')]=function(){var _0x4d5611=this;return function(_0x52a03d){if(_0x52a03d){freeIsNotKey(_0x52a03d,_0x4d5611[_0x0a9e('0x16')],'id');for(var _0x5d0880=0x0,_0x1985b6={},_0x519dfd={};_0x5d0880<_0x52a03d[_0x0a9e('0x17')];_0x5d0880+=0x1){_0x1985b6=_0x52a03d[_0x5d0880];if(_[_0x0a9e('0x18')](_0x4d5611['agents'][_0x1985b6['id']])){_0x4d5611[_0x0a9e('0x16')][_0x1985b6['id']]=new Agent(_0x1985b6);}else{_0x4d5611['mergeFromDatabase'](_0x4d5611[_0x0a9e('0x16')][_0x1985b6['id']],_0x1985b6);}}}return _0x4d5611[_0x0a9e('0x16')];};};Realtime[_0x0a9e('0x13')][_0x0a9e('0x19')]=function(){var _0x31b1ca=this;return function(_0x2eb11f){if(_0x2eb11f){freeIsNotKey(_0x2eb11f,_0x31b1ca[_0x0a9e('0x9')],'id');for(var _0x20559e=0x0,_0x1314ae={},_0x112016={};_0x20559e<_0x2eb11f[_0x0a9e('0x17')];_0x20559e+=0x1){_0x1314ae=_0x2eb11f[_0x20559e];if(_[_0x0a9e('0x18')](_0x31b1ca['intervals'][_0x1314ae['id']])){_0x31b1ca[_0x0a9e('0x9')][_0x1314ae['id']]=new Interval(_0x1314ae);}else{_0x31b1ca[_0x0a9e('0x14')](_0x31b1ca['intervals'][_0x1314ae['id']],_0x1314ae);}}}return _0x31b1ca[_0x0a9e('0x9')];};};Realtime['prototype']['initOpenchannelQueues']=function(){var _0x3a02e1=this;return function(_0x432e56){if(_0x432e56){freeIsNotKey(_0x432e56,_0x3a02e1[_0x0a9e('0xa')],'id');for(var _0x30bae6=0x0,_0x4abc77={},_0xfb6e48={};_0x30bae6<_0x432e56[_0x0a9e('0x17')];_0x30bae6+=0x1){_0x4abc77=_0x432e56[_0x30bae6];if(_[_0x0a9e('0x18')](_0x3a02e1[_0x0a9e('0xa')][_0x4abc77['id']])){_0x3a02e1[_0x0a9e('0xa')][_0x4abc77['id']]=new OpenchannelQueue(_0x4abc77);}else{_0x3a02e1[_0x0a9e('0x14')](_0x3a02e1[_0x0a9e('0xa')][_0x4abc77['id']],_0x4abc77);}_0x3a02e1['openchannelQueues'][_0x4abc77['id']]['updateRouting']();_0x3a02e1[_0x0a9e('0xa')][_0x4abc77['id']][_0x0a9e('0x1a')]();}}return _0x3a02e1[_0x0a9e('0xa')];};};Realtime[_0x0a9e('0x13')]['initChatQueues']=function(){var _0x384319=this;return function(_0x479bc4){if(_0x479bc4){freeIsNotKey(_0x479bc4,_0x384319[_0x0a9e('0xb')],'id');for(var _0x5bfb33=0x0,_0x1dc186={},_0x34dc65={};_0x5bfb33<_0x479bc4[_0x0a9e('0x17')];_0x5bfb33+=0x1){_0x1dc186=_0x479bc4[_0x5bfb33];if(_[_0x0a9e('0x18')](_0x384319[_0x0a9e('0xb')][_0x1dc186['id']])){_0x384319[_0x0a9e('0xb')][_0x1dc186['id']]=new ChatQueue(_0x1dc186);}else{_0x384319[_0x0a9e('0x14')](_0x384319[_0x0a9e('0xb')][_0x1dc186['id']],_0x1dc186);}_0x384319['chatQueues'][_0x1dc186['id']][_0x0a9e('0x1b')]();_0x384319[_0x0a9e('0xb')][_0x1dc186['id']][_0x0a9e('0x1a')]();}}return _0x384319[_0x0a9e('0xb')];};};Realtime['prototype'][_0x0a9e('0x1c')]=function(){var _0x40e7a3=this;return function(_0x1843b2){if(_0x1843b2){freeIsNotKey(_0x1843b2,_0x40e7a3[_0x0a9e('0x1d')],'id');for(var _0x58b06f=0x0,_0x563b45={},_0x296f41={};_0x58b06f<_0x1843b2[_0x0a9e('0x17')];_0x58b06f+=0x1){_0x563b45=_0x1843b2[_0x58b06f];if(_[_0x0a9e('0x18')](_0x40e7a3['smsQueues'][_0x563b45['id']])){_0x40e7a3[_0x0a9e('0x1d')][_0x563b45['id']]=new SmsQueue(_0x563b45);}else{_0x40e7a3['mergeFromDatabase'](_0x40e7a3[_0x0a9e('0x1d')][_0x563b45['id']],_0x563b45);}_0x40e7a3[_0x0a9e('0x1d')][_0x563b45['id']][_0x0a9e('0x1b')]();_0x40e7a3[_0x0a9e('0x1d')][_0x563b45['id']][_0x0a9e('0x1a')]();}}return _0x40e7a3['smsQueues'];};};Realtime[_0x0a9e('0x13')][_0x0a9e('0x1e')]=function(){var _0x40cb85=this;return function(_0x2da5c0){if(_0x2da5c0){freeIsNotKey(_0x2da5c0,_0x40cb85[_0x0a9e('0x1f')],'id');for(var _0x409319=0x0,_0x332d35={},_0x39e565={};_0x409319<_0x2da5c0['length'];_0x409319+=0x1){_0x332d35=_0x2da5c0[_0x409319];if(_[_0x0a9e('0x18')](_0x40cb85['mailQueues'][_0x332d35['id']])){_0x40cb85[_0x0a9e('0x1f')][_0x332d35['id']]=new MailQueue(_0x332d35);}else{_0x40cb85[_0x0a9e('0x14')](_0x40cb85[_0x0a9e('0x1f')][_0x332d35['id']],_0x332d35);}_0x40cb85[_0x0a9e('0x1f')][_0x332d35['id']]['updateRouting']();_0x40cb85[_0x0a9e('0x1f')][_0x332d35['id']][_0x0a9e('0x1a')]();}}return _0x40cb85[_0x0a9e('0x1f')];};};Realtime[_0x0a9e('0x13')]['initFaxQueues']=function(){var _0x54135e=this;return function(_0x1e8694){if(_0x1e8694){freeIsNotKey(_0x1e8694,_0x54135e['faxQueues'],'id');for(var _0x24936a=0x0,_0x3d9717={},_0x381c37={};_0x24936a<_0x1e8694[_0x0a9e('0x17')];_0x24936a+=0x1){_0x3d9717=_0x1e8694[_0x24936a];if(_['isUndefined'](_0x54135e[_0x0a9e('0xc')][_0x3d9717['id']])){_0x54135e[_0x0a9e('0xc')][_0x3d9717['id']]=new FaxQueue(_0x3d9717);}else{_0x54135e[_0x0a9e('0x14')](_0x54135e['faxQueues'][_0x3d9717['id']],_0x3d9717);}_0x54135e[_0x0a9e('0xc')][_0x3d9717['id']][_0x0a9e('0x1b')]();_0x54135e[_0x0a9e('0xc')][_0x3d9717['id']]['updateRealtime']();}}return _0x54135e['faxQueues'];};};Realtime[_0x0a9e('0x13')][_0x0a9e('0x20')]=function(){var _0x5adda1=this;return function(_0x2b814e){if(_0x2b814e){freeIsNotKey(_0x2b814e,_0x5adda1[_0x0a9e('0x21')],'id');for(var _0x2e1b3a=0x0,_0x148f55={},_0x4b38d9={};_0x2e1b3a<_0x2b814e['length'];_0x2e1b3a+=0x1){_0x148f55=_0x2b814e[_0x2e1b3a];if(_[_0x0a9e('0x18')](_0x5adda1[_0x0a9e('0x21')][_0x148f55['id']])){_0x5adda1['whatsappQueues'][_0x148f55['id']]=new WhatsappQueue(_0x148f55);}else{_0x5adda1[_0x0a9e('0x14')](_0x5adda1[_0x0a9e('0x21')][_0x148f55['id']],_0x148f55);}_0x5adda1[_0x0a9e('0x21')][_0x148f55['id']]['updateRouting']();_0x5adda1[_0x0a9e('0x21')][_0x148f55['id']][_0x0a9e('0x1a')]();}}return _0x5adda1[_0x0a9e('0x21')];};};module[_0x0a9e('0x22')]=Realtime;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa640=['addTagsToChatInteraction','../client','update','UpdateChatInteraction','updateChatInteraction','addTags','Request'];(function(_0xa2995d,_0x42f28d){var _0x3011c9=function(_0x182135){while(--_0x182135){_0xa2995d['push'](_0xa2995d['shift']());}};_0x3011c9(++_0x42f28d);}(_0xa640,0xa9));var _0x0a64=function(_0x3482a8,_0x1472e7){_0x3482a8=_0x3482a8-0x0;var _0x5c0db6=_0xa640[_0x3482a8];return _0x5c0db6;};'use strict';var client=require(_0x0a64('0x0'));exports[_0x0a64('0x1')]=function(_0x55e60d,_0x580cbd){return client['Request'](_0x0a64('0x2'),{'body':_0x580cbd,'options':{'where':{'id':_0x55e60d}},'log':_0x0a64('0x3')});};exports[_0x0a64('0x4')]=function(_0x468380,_0x37301f){return client[_0x0a64('0x5')]('AddTagsToChatInteraction',{'body':_0x37301f,'options':{'where':{'id':_0x468380}},'log':_0x0a64('0x6')});};
\ No newline at end of file
+var _0xfe76=['AddTagsToChatInteraction','addTagsToChatInteraction','update','Request','UpdateChatInteraction','updateChatInteraction'];(function(_0xf6eaea,_0x202da9){var _0xb356bc=function(_0x35f386){while(--_0x35f386){_0xf6eaea['push'](_0xf6eaea['shift']());}};_0xb356bc(++_0x202da9);}(_0xfe76,0x17c));var _0x6fe7=function(_0xa60623,_0x2d4e4f){_0xa60623=_0xa60623-0x0;var _0x4a6487=_0xfe76[_0xa60623];return _0x4a6487;};'use strict';var client=require('../client');exports[_0x6fe7('0x0')]=function(_0x2b11dd,_0x293b29){return client[_0x6fe7('0x1')](_0x6fe7('0x2'),{'body':_0x293b29,'options':{'where':{'id':_0x2b11dd}},'log':_0x6fe7('0x3')});};exports['addTags']=function(_0x2be025,_0x15c045){return client[_0x6fe7('0x1')](_0x6fe7('0x4'),{'body':_0x15c045,'options':{'where':{'id':_0x2be025}},'log':_0x6fe7('0x5')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x21c7=['create','CreateChatMessage','createChatMessage','../client'];(function(_0x447d04,_0x17d2ce){var _0x36a9e7=function(_0x49aa85){while(--_0x49aa85){_0x447d04['push'](_0x447d04['shift']());}};_0x36a9e7(++_0x17d2ce);}(_0x21c7,0x14f));var _0x721c=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x21c7[_0x3dd15e];return _0x231fd0;};'use strict';var client=require(_0x721c('0x0'));exports[_0x721c('0x1')]=function(_0x528f5f){return client['Request'](_0x721c('0x2'),{'body':_0x528f5f,'log':_0x721c('0x3')});};
\ No newline at end of file
+var _0x28ab=['createChatMessage','create'];(function(_0x35e89d,_0x22b60d){var _0x5b2d2d=function(_0x52ca43){while(--_0x52ca43){_0x35e89d['push'](_0x35e89d['shift']());}};_0x5b2d2d(++_0x22b60d);}(_0x28ab,0x1c1));var _0xb28a=function(_0x3aafa4,_0x34da4f){_0x3aafa4=_0x3aafa4-0x0;var _0x12539b=_0x28ab[_0x3aafa4];return _0x12539b;};'use strict';var client=require('../client');exports[_0xb28a('0x0')]=function(_0x3058c0){return client['Request']('CreateChatMessage',{'body':_0x3058c0,'log':_0xb28a('0x1')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6347=['GetChatQueue','name','timeout','strategy','Agents','online','chatPause','../client','getChatQueues'];(function(_0x58e469,_0x95ee3e){var _0x4c01c5=function(_0x1ef7ae){while(--_0x1ef7ae){_0x58e469['push'](_0x58e469['shift']());}};_0x4c01c5(++_0x95ee3e);}(_0x6347,0x1c9));var _0x7634=function(_0x1938d2,_0x5a4864){_0x1938d2=_0x1938d2-0x0;var _0x319859=_0x6347[_0x1938d2];return _0x319859;};'use strict';var client=require(_0x7634('0x0'));exports[_0x7634('0x1')]=function(){return function(){return client['Request'](_0x7634('0x2'),{'options':{'raw':![],'attributes':['id',_0x7634('0x3'),_0x7634('0x4'),_0x7634('0x5')],'include':[{'model':'User','as':_0x7634('0x6'),'attributes':['id','name',_0x7634('0x7'),_0x7634('0x8')]}]},'log':'getChatQueues'});};};
\ No newline at end of file
+var _0x6808=['getChatQueues','Request','GetChatQueue','name','timeout','strategy','User','online','chatPause','../client'];(function(_0x3e5086,_0x48f4a2){var _0xfeb102=function(_0x5a945f){while(--_0x5a945f){_0x3e5086['push'](_0x3e5086['shift']());}};_0xfeb102(++_0x48f4a2);}(_0x6808,0xd1));var _0x8680=function(_0x54a225,_0x512d8e){_0x54a225=_0x54a225-0x0;var _0x7451ec=_0x6808[_0x54a225];return _0x7451ec;};'use strict';var client=require(_0x8680('0x0'));exports[_0x8680('0x1')]=function(){return function(){return client[_0x8680('0x2')](_0x8680('0x3'),{'options':{'raw':![],'attributes':['id',_0x8680('0x4'),_0x8680('0x5'),_0x8680('0x6')],'include':[{'model':_0x8680('0x7'),'as':'Agents','attributes':['id',_0x8680('0x4'),_0x8680('0x8'),_0x8680('0x9')]}]},'log':_0x8680('0x1')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x581a=['UpdateChatQueueReport','../client','create','Request','CreateChatQueueReport','update'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x581a,0x127));var _0xa581=function(_0x5ce962,_0x53bed5){_0x5ce962=_0x5ce962-0x0;var _0x544f4e=_0x581a[_0x5ce962];return _0x544f4e;};'use strict';var client=require(_0xa581('0x0'));exports[_0xa581('0x1')]=function(_0x5795e7){return client[_0xa581('0x2')](_0xa581('0x3'),{'body':_0x5795e7,'log':_0xa581('0x3')});};exports[_0xa581('0x4')]=function(_0x3f5c21,_0x4e64cc){return client['Request'](_0xa581('0x5'),{'body':_0x4e64cc,'options':{'where':{'uniqueid':_0x3f5c21},'order':[['id','DESC']],'limit':0x1},'log':_0xa581('0x5')});};
\ No newline at end of file
+var _0x5c12=['Request','UpdateChatQueueReport','create','CreateChatQueueReport','update'];(function(_0x219daf,_0x36b307){var _0x4c2e61=function(_0x42f490){while(--_0x42f490){_0x219daf['push'](_0x219daf['shift']());}};_0x4c2e61(++_0x36b307);}(_0x5c12,0x188));var _0x25c1=function(_0x318dda,_0x1aa800){_0x318dda=_0x318dda-0x0;var _0x3f97ca=_0x5c12[_0x318dda];return _0x3f97ca;};'use strict';var client=require('../client');exports[_0x25c1('0x0')]=function(_0x1e452d){return client['Request'](_0x25c1('0x1'),{'body':_0x1e452d,'log':_0x25c1('0x1')});};exports[_0x25c1('0x2')]=function(_0x10f10c,_0x2c5df0){return client[_0x25c1('0x3')](_0x25c1('0x4'),{'body':_0x2c5df0,'options':{'where':{'uniqueid':_0x10f10c},'order':[['id','DESC']],'limit':0x1},'log':_0x25c1('0x4')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7a54=['Request','UpdateFaxInteraction','addTags','AddTagsToFaxInteraction','../client','update'];(function(_0xa1e3e3,_0x29fe0e){var _0xc980e9=function(_0x1f5adc){while(--_0x1f5adc){_0xa1e3e3['push'](_0xa1e3e3['shift']());}};_0xc980e9(++_0x29fe0e);}(_0x7a54,0x106));var _0x47a5=function(_0x56cc5a,_0x5cd636){_0x56cc5a=_0x56cc5a-0x0;var _0x526296=_0x7a54[_0x56cc5a];return _0x526296;};'use strict';var client=require(_0x47a5('0x0'));exports[_0x47a5('0x1')]=function(_0x44b31e,_0x58157c){return client[_0x47a5('0x2')](_0x47a5('0x3'),{'body':_0x58157c,'options':{'where':{'id':_0x44b31e}},'log':'updateFaxInteraction'});};exports[_0x47a5('0x4')]=function(_0x11bf85,_0x2a1a7e){return client[_0x47a5('0x2')](_0x47a5('0x5'),{'body':_0x2a1a7e,'options':{'where':{'id':_0x11bf85}},'log':'addTagsToFaxInteraction'});};
\ No newline at end of file
+var _0x9957=['Request','AddTagsToFaxInteraction','addTagsToFaxInteraction','../client','update','UpdateFaxInteraction','updateFaxInteraction','addTags'];(function(_0x4864ad,_0x4c865b){var _0x2c7f82=function(_0xea17a2){while(--_0xea17a2){_0x4864ad['push'](_0x4864ad['shift']());}};_0x2c7f82(++_0x4c865b);}(_0x9957,0x93));var _0x7995=function(_0x1ac595,_0x5d2081){_0x1ac595=_0x1ac595-0x0;var _0x455fff=_0x9957[_0x1ac595];return _0x455fff;};'use strict';var client=require(_0x7995('0x0'));exports[_0x7995('0x1')]=function(_0x2722a3,_0x10a05d){return client['Request'](_0x7995('0x2'),{'body':_0x10a05d,'options':{'where':{'id':_0x2722a3}},'log':_0x7995('0x3')});};exports[_0x7995('0x4')]=function(_0x462a03,_0x576d89){return client[_0x7995('0x5')](_0x7995('0x6'),{'body':_0x576d89,'options':{'where':{'id':_0x462a03}},'log':_0x7995('0x7')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8ac5=['create','Request','CreateFaxMessage','createFaxMessage'];(function(_0xdf028b,_0xfa90c4){var _0x24e4de=function(_0x4d8a00){while(--_0x4d8a00){_0xdf028b['push'](_0xdf028b['shift']());}};_0x24e4de(++_0xfa90c4);}(_0x8ac5,0x1a8));var _0x58ac=function(_0x25360b,_0x2b3343){_0x25360b=_0x25360b-0x0;var _0x190751=_0x8ac5[_0x25360b];return _0x190751;};'use strict';var client=require('../client');exports[_0x58ac('0x0')]=function(_0x26e93a){return client[_0x58ac('0x1')](_0x58ac('0x2'),{'body':_0x26e93a,'log':_0x58ac('0x3')});};
\ No newline at end of file
+var _0xfdfe=['Request','CreateFaxMessage','createFaxMessage','create'];(function(_0x21ccfc,_0x48834e){var _0x279454=function(_0x12b780){while(--_0x12b780){_0x21ccfc['push'](_0x21ccfc['shift']());}};_0x279454(++_0x48834e);}(_0xfdfe,0x67));var _0xefdf=function(_0x325453,_0x552936){_0x325453=_0x325453-0x0;var _0x477660=_0xfdfe[_0x325453];return _0x477660;};'use strict';var client=require('../client');exports[_0xefdf('0x0')]=function(_0x2be95a){return client[_0xefdf('0x1')](_0xefdf('0x2'),{'body':_0x2be95a,'log':_0xefdf('0x3')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2478=['getFaxQueues','Request','GetFaxQueue','timeout','strategy','online','faxPause','../client'];(function(_0x44affd,_0x4f46d3){var _0x33bf69=function(_0x519fd3){while(--_0x519fd3){_0x44affd['push'](_0x44affd['shift']());}};_0x33bf69(++_0x4f46d3);}(_0x2478,0x19f));var _0x8247=function(_0x40220a,_0x22feb1){_0x40220a=_0x40220a-0x0;var _0x3903cc=_0x2478[_0x40220a];return _0x3903cc;};'use strict';var client=require(_0x8247('0x0'));exports[_0x8247('0x1')]=function(){return function(){return client[_0x8247('0x2')](_0x8247('0x3'),{'options':{'raw':![],'attributes':['id','name',_0x8247('0x4'),_0x8247('0x5')],'include':[{'model':'User','as':'Agents','attributes':['id','name',_0x8247('0x6'),_0x8247('0x7')]}]},'log':_0x8247('0x1')});};};
\ No newline at end of file
+var _0x1ce3=['../client','getFaxQueues','Request','GetFaxQueue','name','timeout','strategy','User','Agents'];(function(_0x57d13b,_0x52d8cb){var _0x467696=function(_0x153000){while(--_0x153000){_0x57d13b['push'](_0x57d13b['shift']());}};_0x467696(++_0x52d8cb);}(_0x1ce3,0x19e));var _0x31ce=function(_0x5ea891,_0x327fe2){_0x5ea891=_0x5ea891-0x0;var _0x2992ee=_0x1ce3[_0x5ea891];return _0x2992ee;};'use strict';var client=require(_0x31ce('0x0'));exports[_0x31ce('0x1')]=function(){return function(){return client[_0x31ce('0x2')](_0x31ce('0x3'),{'options':{'raw':![],'attributes':['id',_0x31ce('0x4'),_0x31ce('0x5'),_0x31ce('0x6')],'include':[{'model':_0x31ce('0x7'),'as':_0x31ce('0x8'),'attributes':['id',_0x31ce('0x4'),'online','faxPause']}]},'log':_0x31ce('0x1')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x33a5=['create','Request','CreateFaxQueueReport','update','DESC','UpdateFaxQueueReport'];(function(_0x245ff8,_0x2e81f8){var _0x5a4faa=function(_0x26af9e){while(--_0x26af9e){_0x245ff8['push'](_0x245ff8['shift']());}};_0x5a4faa(++_0x2e81f8);}(_0x33a5,0x126));var _0x533a=function(_0x467b34,_0x2c0742){_0x467b34=_0x467b34-0x0;var _0x553524=_0x33a5[_0x467b34];return _0x553524;};'use strict';var client=require('../client');exports[_0x533a('0x0')]=function(_0x34e65b){return client[_0x533a('0x1')](_0x533a('0x2'),{'body':_0x34e65b,'log':_0x533a('0x2')});};exports[_0x533a('0x3')]=function(_0x14b1ab,_0x1f64d9){return client[_0x533a('0x1')]('UpdateFaxQueueReport',{'body':_0x1f64d9,'options':{'where':{'uniqueid':_0x14b1ab},'order':[['id',_0x533a('0x4')]],'limit':0x1},'log':_0x533a('0x5')});};
\ No newline at end of file
+var _0xf919=['DESC','../client','create','Request','CreateFaxQueueReport','update','UpdateFaxQueueReport'];(function(_0x3b9961,_0x4b8df2){var _0x2b16f6=function(_0x41bdd4){while(--_0x41bdd4){_0x3b9961['push'](_0x3b9961['shift']());}};_0x2b16f6(++_0x4b8df2);}(_0xf919,0xef));var _0x9f91=function(_0x4e783c,_0x51a362){_0x4e783c=_0x4e783c-0x0;var _0x2fbd6d=_0xf919[_0x4e783c];return _0x2fbd6d;};'use strict';var client=require(_0x9f91('0x0'));exports[_0x9f91('0x1')]=function(_0x3f2df2){return client[_0x9f91('0x2')](_0x9f91('0x3'),{'body':_0x3f2df2,'log':_0x9f91('0x3')});};exports[_0x9f91('0x4')]=function(_0x206bc7,_0x3d5109){return client[_0x9f91('0x2')](_0x9f91('0x5'),{'body':_0x3d5109,'options':{'where':{'uniqueid':_0x206bc7},'order':[['id',_0x9f91('0x6')]],'limit':0x1},'log':'UpdateFaxQueueReport'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1af9=['getIntervals','../client','Request','name','Interval','Intervals','interval'];(function(_0x47020a,_0x11cb91){var _0x2f1e7f=function(_0x3f6558){while(--_0x3f6558){_0x47020a['push'](_0x47020a['shift']());}};_0x2f1e7f(++_0x11cb91);}(_0x1af9,0x1a5));var _0x91af=function(_0x28128f,_0xa57fd3){_0x28128f=_0x28128f-0x0;var _0x101342=_0x1af9[_0x28128f];return _0x101342;};'use strict';var client=require(_0x91af('0x0'));exports['getIntervals']=function(){return function(){return client[_0x91af('0x1')]('GetInterval',{'options':{'raw':![],'where':{'IntervalId':null},'attributes':['id',_0x91af('0x2')],'include':[{'model':_0x91af('0x3'),'as':_0x91af('0x4'),'attributes':['id',_0x91af('0x2'),_0x91af('0x5')]}]},'log':_0x91af('0x6')});};};
\ No newline at end of file
+var _0xb8fd=['../client','GetInterval','name','Interval','Intervals','getIntervals'];(function(_0xd9175c,_0x2823fc){var _0x2f65e9=function(_0x348447){while(--_0x348447){_0xd9175c['push'](_0xd9175c['shift']());}};_0x2f65e9(++_0x2823fc);}(_0xb8fd,0xd2));var _0xdb8f=function(_0x2973f5,_0x21bd8e){_0x2973f5=_0x2973f5-0x0;var _0x3b7c6e=_0xb8fd[_0x2973f5];return _0x3b7c6e;};'use strict';var client=require(_0xdb8f('0x0'));exports['getIntervals']=function(){return function(){return client['Request'](_0xdb8f('0x1'),{'options':{'raw':![],'where':{'IntervalId':null},'attributes':['id',_0xdb8f('0x2')],'include':[{'model':_0xdb8f('0x3'),'as':_0xdb8f('0x4'),'attributes':['id',_0xdb8f('0x2'),'interval']}]},'log':_0xdb8f('0x5')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4e2e=['UpdateMailInteraction','updateMailInteraction','AddTagsToMailInteraction','update','Request'];(function(_0x54c9dd,_0x233a86){var _0x855156=function(_0x2dd60b){while(--_0x2dd60b){_0x54c9dd['push'](_0x54c9dd['shift']());}};_0x855156(++_0x233a86);}(_0x4e2e,0x1f2));var _0xe4e2=function(_0x4c84ff,_0x10760d){_0x4c84ff=_0x4c84ff-0x0;var _0x21a4c7=_0x4e2e[_0x4c84ff];return _0x21a4c7;};'use strict';var client=require('../client');exports[_0xe4e2('0x0')]=function(_0x219d18,_0x2ae450){return client[_0xe4e2('0x1')](_0xe4e2('0x2'),{'body':_0x2ae450,'options':{'where':{'id':_0x219d18}},'log':_0xe4e2('0x3')});};exports['addTags']=function(_0xfd2203,_0x417dd4){return client[_0xe4e2('0x1')](_0xe4e2('0x4'),{'body':_0x417dd4,'options':{'where':{'id':_0xfd2203}},'log':'addTagsToChatInteraction'});};
\ No newline at end of file
+var _0x896e=['update','Request','UpdateMailInteraction','updateMailInteraction','addTags','AddTagsToMailInteraction','../client'];(function(_0x500419,_0x549162){var _0x241c1a=function(_0x3bea1a){while(--_0x3bea1a){_0x500419['push'](_0x500419['shift']());}};_0x241c1a(++_0x549162);}(_0x896e,0x1e9));var _0xe896=function(_0x419149,_0x124d99){_0x419149=_0x419149-0x0;var _0x2d7417=_0x896e[_0x419149];return _0x2d7417;};'use strict';var client=require(_0xe896('0x0'));exports[_0xe896('0x1')]=function(_0x3feebe,_0x229b59){return client[_0xe896('0x2')](_0xe896('0x3'),{'body':_0x229b59,'options':{'where':{'id':_0x3feebe}},'log':_0xe896('0x4')});};exports[_0xe896('0x5')]=function(_0x3f85e5,_0x2d3521){return client[_0xe896('0x2')](_0xe896('0x6'),{'body':_0x2d3521,'options':{'where':{'id':_0x3f85e5}},'log':'addTagsToChatInteraction'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc15c=['create','Request','CreateMailMessage','createMailMessage','../client'];(function(_0x25f115,_0x4de485){var _0x1c5852=function(_0x25f0ef){while(--_0x25f0ef){_0x25f115['push'](_0x25f115['shift']());}};_0x1c5852(++_0x4de485);}(_0xc15c,0x1d5));var _0xcc15=function(_0x189b96,_0x52027b){_0x189b96=_0x189b96-0x0;var _0x546f3c=_0xc15c[_0x189b96];return _0x546f3c;};'use strict';var client=require(_0xcc15('0x0'));exports[_0xcc15('0x1')]=function(_0x4fc0cf){return client[_0xcc15('0x2')](_0xcc15('0x3'),{'body':_0x4fc0cf,'log':_0xcc15('0x4')});};
\ No newline at end of file
+var _0x59fb=['create','CreateMailMessage','createMailMessage'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x59fb,0x1cb));var _0xb59f=function(_0x152db2,_0x8dc4e4){_0x152db2=_0x152db2-0x0;var _0xd714ec=_0x59fb[_0x152db2];return _0xd714ec;};'use strict';var client=require('../client');exports[_0xb59f('0x0')]=function(_0x1c0f5f){return client['Request'](_0xb59f('0x1'),{'body':_0x1c0f5f,'log':_0xb59f('0x2')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x88c7=['User','Agents','mailPause','../client','getMailQueues','GetMailQueue','name','timeout','strategy'];(function(_0xed707a,_0x29f42f){var _0x44d0bf=function(_0xaef974){while(--_0xaef974){_0xed707a['push'](_0xed707a['shift']());}};_0x44d0bf(++_0x29f42f);}(_0x88c7,0x1c5));var _0x788c=function(_0x81f85a,_0x2202d7){_0x81f85a=_0x81f85a-0x0;var _0xbcc0a5=_0x88c7[_0x81f85a];return _0xbcc0a5;};'use strict';var client=require(_0x788c('0x0'));exports[_0x788c('0x1')]=function(){return function(){return client['Request'](_0x788c('0x2'),{'options':{'raw':![],'attributes':['id',_0x788c('0x3'),_0x788c('0x4'),_0x788c('0x5')],'include':[{'model':_0x788c('0x6'),'as':_0x788c('0x7'),'attributes':['id',_0x788c('0x3'),'online',_0x788c('0x8')]}]},'log':_0x788c('0x1')});};};
\ No newline at end of file
+var _0x9219=['online','mailPause','name','User'];(function(_0x1fbf08,_0x14ecf2){var _0xe7f554=function(_0x5949b){while(--_0x5949b){_0x1fbf08['push'](_0x1fbf08['shift']());}};_0xe7f554(++_0x14ecf2);}(_0x9219,0x19e));var _0x9921=function(_0x211a27,_0x579115){_0x211a27=_0x211a27-0x0;var _0x144918=_0x9219[_0x211a27];return _0x144918;};'use strict';var client=require('../client');exports['getMailQueues']=function(){return function(){return client['Request']('GetMailQueue',{'options':{'raw':![],'attributes':['id',_0x9921('0x0'),'timeout','strategy'],'include':[{'model':_0x9921('0x1'),'as':'Agents','attributes':['id','name',_0x9921('0x2'),_0x9921('0x3')]}]},'log':'getMailQueues'});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4031=['../client','Request','CreateMailQueueReport','update','UpdateMailQueueReport'];(function(_0x51e935,_0x408210){var _0x4f7c4=function(_0x21c4ae){while(--_0x21c4ae){_0x51e935['push'](_0x51e935['shift']());}};_0x4f7c4(++_0x408210);}(_0x4031,0xc8));var _0x1403=function(_0x2de37d,_0x13d433){_0x2de37d=_0x2de37d-0x0;var _0x1c6a8e=_0x4031[_0x2de37d];return _0x1c6a8e;};'use strict';var client=require(_0x1403('0x0'));exports['create']=function(_0x337344){return client[_0x1403('0x1')]('CreateMailQueueReport',{'body':_0x337344,'log':_0x1403('0x2')});};exports[_0x1403('0x3')]=function(_0x2604ce,_0x1a0a1f){return client[_0x1403('0x1')]('UpdateMailQueueReport',{'body':_0x1a0a1f,'options':{'where':{'uniqueid':_0x2604ce},'order':[['id','DESC']],'limit':0x1},'log':_0x1403('0x4')});};
\ No newline at end of file
+var _0x3140=['UpdateMailQueueReport','DESC','create','CreateMailQueueReport','update'];(function(_0x5bdec6,_0x32195b){var _0x6db61b=function(_0x517194){while(--_0x517194){_0x5bdec6['push'](_0x5bdec6['shift']());}};_0x6db61b(++_0x32195b);}(_0x3140,0xca));var _0x0314=function(_0x273502,_0x1c173c){_0x273502=_0x273502-0x0;var _0x379e87=_0x3140[_0x273502];return _0x379e87;};'use strict';var client=require('../client');exports[_0x0314('0x0')]=function(_0x554804){return client['Request']('CreateMailQueueReport',{'body':_0x554804,'log':_0x0314('0x1')});};exports[_0x0314('0x2')]=function(_0x4c817c,_0x4152f6){return client['Request'](_0x0314('0x3'),{'body':_0x4152f6,'options':{'where':{'uniqueid':_0x4c817c},'order':[['id',_0x0314('0x4')]],'limit':0x1},'log':_0x0314('0x3')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x9d70=['AddTagsToOpenchannelInteraction','addTagsToChatInteraction','../client','update','updateOpenchannelInteraction','addTags','Request'];(function(_0x27df81,_0x245341){var _0x5c38ff=function(_0x565113){while(--_0x565113){_0x27df81['push'](_0x27df81['shift']());}};_0x5c38ff(++_0x245341);}(_0x9d70,0xbf));var _0x09d7=function(_0x486f4a,_0x478dc7){_0x486f4a=_0x486f4a-0x0;var _0x135d99=_0x9d70[_0x486f4a];return _0x135d99;};'use strict';var client=require(_0x09d7('0x0'));exports[_0x09d7('0x1')]=function(_0xf3c7f7,_0x4f46e5){return client['Request']('UpdateOpenchannelInteraction',{'body':_0x4f46e5,'options':{'where':{'id':_0xf3c7f7}},'log':_0x09d7('0x2')});};exports[_0x09d7('0x3')]=function(_0x38c396,_0x10456){return client[_0x09d7('0x4')](_0x09d7('0x5'),{'body':_0x10456,'options':{'where':{'id':_0x38c396}},'log':_0x09d7('0x6')});};
\ No newline at end of file
+var _0xc4a4=['../client','update','Request','updateOpenchannelInteraction','AddTagsToOpenchannelInteraction'];(function(_0x5e2b5e,_0x398ae8){var _0x1a76f3=function(_0x5d3d60){while(--_0x5d3d60){_0x5e2b5e['push'](_0x5e2b5e['shift']());}};_0x1a76f3(++_0x398ae8);}(_0xc4a4,0x195));var _0x4c4a=function(_0x55e08b,_0x421620){_0x55e08b=_0x55e08b-0x0;var _0xd1a7ff=_0xc4a4[_0x55e08b];return _0xd1a7ff;};'use strict';var client=require(_0x4c4a('0x0'));exports[_0x4c4a('0x1')]=function(_0x517c1a,_0x140805){return client[_0x4c4a('0x2')]('UpdateOpenchannelInteraction',{'body':_0x140805,'options':{'where':{'id':_0x517c1a}},'log':_0x4c4a('0x3')});};exports['addTags']=function(_0x18596d,_0x4f7e56){return client['Request'](_0x4c4a('0x4'),{'body':_0x4f7e56,'options':{'where':{'id':_0x18596d}},'log':'addTagsToChatInteraction'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xbf31=['CreateOpenchannelMessage','createOpenchannelMessage','../client','Request'];(function(_0x33f9f9,_0x213acb){var _0x113dd0=function(_0x1ba5a5){while(--_0x1ba5a5){_0x33f9f9['push'](_0x33f9f9['shift']());}};_0x113dd0(++_0x213acb);}(_0xbf31,0x1ae));var _0x1bf3=function(_0x560472,_0x36bd9b){_0x560472=_0x560472-0x0;var _0x404bf4=_0xbf31[_0x560472];return _0x404bf4;};'use strict';var client=require(_0x1bf3('0x0'));exports['create']=function(_0x37201d){return client[_0x1bf3('0x1')](_0x1bf3('0x2'),{'body':_0x37201d,'log':_0x1bf3('0x3')});};
\ No newline at end of file
+var _0x1114=['../client','create','Request','CreateOpenchannelMessage','createOpenchannelMessage'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x1114,0x113));var _0x4111=function(_0x38e8b0,_0x5b8cb5){_0x38e8b0=_0x38e8b0-0x0;var _0x139697=_0x1114[_0x38e8b0];return _0x139697;};'use strict';var client=require(_0x4111('0x0'));exports[_0x4111('0x1')]=function(_0x463990){return client[_0x4111('0x2')](_0x4111('0x3'),{'body':_0x463990,'log':_0x4111('0x4')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd14e=['online','openchannelPause','../client','getOpenchannelQueues','GetOpenchannelQueue','name','timeout','strategy','User','Agents'];(function(_0x386c3e,_0x44a375){var _0x4b8e13=function(_0x583c8f){while(--_0x583c8f){_0x386c3e['push'](_0x386c3e['shift']());}};_0x4b8e13(++_0x44a375);}(_0xd14e,0x17e));var _0xed14=function(_0x335afd,_0x2bc9f0){_0x335afd=_0x335afd-0x0;var _0x20e267=_0xd14e[_0x335afd];return _0x20e267;};'use strict';var client=require(_0xed14('0x0'));exports[_0xed14('0x1')]=function(){return function(){return client['Request'](_0xed14('0x2'),{'options':{'raw':![],'attributes':['id',_0xed14('0x3'),_0xed14('0x4'),_0xed14('0x5')],'include':[{'model':_0xed14('0x6'),'as':_0xed14('0x7'),'attributes':['id',_0xed14('0x3'),_0xed14('0x8'),_0xed14('0x9')]}]},'log':_0xed14('0x1')});};};
\ No newline at end of file
+var _0xc606=['User','Agents','../client','getOpenchannelQueues','Request','GetOpenchannelQueue','name','timeout','strategy'];(function(_0x4914de,_0x28f254){var _0x2ee264=function(_0x19b9e1){while(--_0x19b9e1){_0x4914de['push'](_0x4914de['shift']());}};_0x2ee264(++_0x28f254);}(_0xc606,0x17c));var _0x6c60=function(_0xabbd2f,_0x44d05a){_0xabbd2f=_0xabbd2f-0x0;var _0x34a040=_0xc606[_0xabbd2f];return _0x34a040;};'use strict';var client=require(_0x6c60('0x0'));exports[_0x6c60('0x1')]=function(){return function(){return client[_0x6c60('0x2')](_0x6c60('0x3'),{'options':{'raw':![],'attributes':['id',_0x6c60('0x4'),_0x6c60('0x5'),_0x6c60('0x6')],'include':[{'model':_0x6c60('0x7'),'as':_0x6c60('0x8'),'attributes':['id',_0x6c60('0x4'),'online','openchannelPause']}]},'log':_0x6c60('0x1')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfdb8=['CreateOpenchannelQueueReport','update','DESC','UpdateOpenchannelQueueReport','../client','Request'];(function(_0x272243,_0x32f3e4){var _0x5aaf13=function(_0x47649c){while(--_0x47649c){_0x272243['push'](_0x272243['shift']());}};_0x5aaf13(++_0x32f3e4);}(_0xfdb8,0x184));var _0x8fdb=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xfdb8[_0x3dd15e];return _0x231fd0;};'use strict';var client=require(_0x8fdb('0x0'));exports['create']=function(_0x38358d){return client[_0x8fdb('0x1')](_0x8fdb('0x2'),{'body':_0x38358d,'log':_0x8fdb('0x2')});};exports[_0x8fdb('0x3')]=function(_0x3cc321,_0x3db8b3){return client['Request']('UpdateOpenchannelQueueReport',{'body':_0x3db8b3,'options':{'where':{'uniqueid':_0x3cc321},'order':[['id',_0x8fdb('0x4')]],'limit':0x1},'log':_0x8fdb('0x5')});};
\ No newline at end of file
+var _0xb01c=['CreateOpenchannelQueueReport','update','UpdateOpenchannelQueueReport','DESC','../client','Request'];(function(_0x417a49,_0x3efdb2){var _0x15346e=function(_0x4b31c1){while(--_0x4b31c1){_0x417a49['push'](_0x417a49['shift']());}};_0x15346e(++_0x3efdb2);}(_0xb01c,0xbe));var _0xcb01=function(_0x293ea7,_0x3f99e3){_0x293ea7=_0x293ea7-0x0;var _0x59ce46=_0xb01c[_0x293ea7];return _0x59ce46;};'use strict';var client=require(_0xcb01('0x0'));exports['create']=function(_0x34ad0e){return client[_0xcb01('0x1')](_0xcb01('0x2'),{'body':_0x34ad0e,'log':_0xcb01('0x2')});};exports[_0xcb01('0x3')]=function(_0x2c782a,_0x106c60){return client['Request'](_0xcb01('0x4'),{'body':_0x106c60,'options':{'where':{'uniqueid':_0x2c782a},'order':[['id',_0xcb01('0x5')]],'limit':0x1},'log':_0xcb01('0x4')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5075=['../client','update','Request','UpdateSmsInteraction','updateSmsInteraction'];(function(_0x2b94b4,_0x8f878){var _0x41b774=function(_0x80cfc5){while(--_0x80cfc5){_0x2b94b4['push'](_0x2b94b4['shift']());}};_0x41b774(++_0x8f878);}(_0x5075,0x73));var _0x5507=function(_0x47d5ca,_0x341796){_0x47d5ca=_0x47d5ca-0x0;var _0xd9de9a=_0x5075[_0x47d5ca];return _0xd9de9a;};'use strict';var client=require(_0x5507('0x0'));exports[_0x5507('0x1')]=function(_0x701161,_0x1a552a){return client[_0x5507('0x2')](_0x5507('0x3'),{'body':_0x1a552a,'options':{'where':{'id':_0x701161}},'log':_0x5507('0x4')});};exports['addTags']=function(_0x3e96ee,_0x19a7ab){return client[_0x5507('0x2')]('AddTagsToSmsInteraction',{'body':_0x19a7ab,'options':{'where':{'id':_0x3e96ee}},'log':'addTagsToSmsInteraction'});};
\ No newline at end of file
+var _0xef39=['Request','UpdateSmsInteraction','updateSmsInteraction','addTags','AddTagsToSmsInteraction','addTagsToSmsInteraction','update'];(function(_0x50a6a7,_0x1a21f6){var _0x54be8c=function(_0x540b85){while(--_0x540b85){_0x50a6a7['push'](_0x50a6a7['shift']());}};_0x54be8c(++_0x1a21f6);}(_0xef39,0x92));var _0x9ef3=function(_0x9807c5,_0x252343){_0x9807c5=_0x9807c5-0x0;var _0x42398c=_0xef39[_0x9807c5];return _0x42398c;};'use strict';var client=require('../client');exports[_0x9ef3('0x0')]=function(_0x2730ff,_0x363265){return client[_0x9ef3('0x1')](_0x9ef3('0x2'),{'body':_0x363265,'options':{'where':{'id':_0x2730ff}},'log':_0x9ef3('0x3')});};exports[_0x9ef3('0x4')]=function(_0x162196,_0x2c4541){return client[_0x9ef3('0x1')](_0x9ef3('0x5'),{'body':_0x2c4541,'options':{'where':{'id':_0x162196}},'log':_0x9ef3('0x6')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x64a7=['createSmsMessage','../client','Request','CreateSmsMessage'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x64a7,0x171));var _0x764a=function(_0x3f6d80,_0x3ee399){_0x3f6d80=_0x3f6d80-0x0;var _0x424942=_0x64a7[_0x3f6d80];return _0x424942;};'use strict';var client=require(_0x764a('0x0'));exports['create']=function(_0xccc8af){return client[_0x764a('0x1')](_0x764a('0x2'),{'body':_0xccc8af,'log':_0x764a('0x3')});};
\ No newline at end of file
+var _0x666e=['Request','CreateSmsMessage','createSmsMessage','../client','create'];(function(_0x1ca332,_0x3a34e0){var _0x3e8b53=function(_0x437667){while(--_0x437667){_0x1ca332['push'](_0x1ca332['shift']());}};_0x3e8b53(++_0x3a34e0);}(_0x666e,0x198));var _0xe666=function(_0x3e35e9,_0x343705){_0x3e35e9=_0x3e35e9-0x0;var _0x5a9829=_0x666e[_0x3e35e9];return _0x5a9829;};'use strict';var client=require(_0xe666('0x0'));exports[_0xe666('0x1')]=function(_0x39bc24){return client[_0xe666('0x2')](_0xe666('0x3'),{'body':_0x39bc24,'log':_0xe666('0x4')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xb7e7=['online','../client','Request','name','strategy','Agents'];(function(_0x5c2bb3,_0x2bf912){var _0x4886a9=function(_0x4b3264){while(--_0x4b3264){_0x5c2bb3['push'](_0x5c2bb3['shift']());}};_0x4886a9(++_0x2bf912);}(_0xb7e7,0x121));var _0x7b7e=function(_0x13d07a,_0x41efc3){_0x13d07a=_0x13d07a-0x0;var _0x5ee0ee=_0xb7e7[_0x13d07a];return _0x5ee0ee;};'use strict';var client=require(_0x7b7e('0x0'));exports['getSmsQueues']=function(){return function(){return client[_0x7b7e('0x1')]('GetSmsQueue',{'options':{'raw':![],'attributes':['id',_0x7b7e('0x2'),'timeout',_0x7b7e('0x3')],'include':[{'model':'User','as':_0x7b7e('0x4'),'attributes':['id',_0x7b7e('0x2'),_0x7b7e('0x5'),'smsPause']}]},'log':'getSmsQueues'});};};
\ No newline at end of file
+var _0x0713=['getSmsQueues','Request','GetSmsQueue','name','timeout','strategy','Agents','online','smsPause'];(function(_0x2f3b14,_0x554f94){var _0x20e924=function(_0x3f4c1c){while(--_0x3f4c1c){_0x2f3b14['push'](_0x2f3b14['shift']());}};_0x20e924(++_0x554f94);}(_0x0713,0x1ba));var _0x3071=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x0713[_0x3dd15e];return _0x231fd0;};'use strict';var client=require('../client');exports['getSmsQueues']=function(){return function(){return client[_0x3071('0x0')](_0x3071('0x1'),{'options':{'raw':![],'attributes':['id',_0x3071('0x2'),_0x3071('0x3'),_0x3071('0x4')],'include':[{'model':'User','as':_0x3071('0x5'),'attributes':['id',_0x3071('0x2'),_0x3071('0x6'),_0x3071('0x7')]}]},'log':_0x3071('0x8')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xedd9=['create','Request','CreateSmsQueueReport','update','UpdateSmsQueueReport','DESC'];(function(_0x120376,_0x571898){var _0x28c529=function(_0x4f130c){while(--_0x4f130c){_0x120376['push'](_0x120376['shift']());}};_0x28c529(++_0x571898);}(_0xedd9,0xfc));var _0x9edd=function(_0x3dabc0,_0x1c0f3e){_0x3dabc0=_0x3dabc0-0x0;var _0x5a3550=_0xedd9[_0x3dabc0];return _0x5a3550;};'use strict';var client=require('../client');exports[_0x9edd('0x0')]=function(_0x2d7989){return client[_0x9edd('0x1')](_0x9edd('0x2'),{'body':_0x2d7989,'log':_0x9edd('0x2')});};exports[_0x9edd('0x3')]=function(_0x3e6d3a,_0x36b53f){return client['Request'](_0x9edd('0x4'),{'body':_0x36b53f,'options':{'where':{'uniqueid':_0x3e6d3a},'order':[['id',_0x9edd('0x5')]],'limit':0x1},'log':_0x9edd('0x4')});};
\ No newline at end of file
+var _0x008c=['../client','create','Request','CreateSmsQueueReport','update','UpdateSmsQueueReport','DESC'];(function(_0x3768f3,_0x4a40f1){var _0x526a13=function(_0x350126){while(--_0x350126){_0x3768f3['push'](_0x3768f3['shift']());}};_0x526a13(++_0x4a40f1);}(_0x008c,0x188));var _0xc008=function(_0x37dbbb,_0x1909de){_0x37dbbb=_0x37dbbb-0x0;var _0x10068f=_0x008c[_0x37dbbb];return _0x10068f;};'use strict';var client=require(_0xc008('0x0'));exports[_0xc008('0x1')]=function(_0x15aadc){return client[_0xc008('0x2')](_0xc008('0x3'),{'body':_0x15aadc,'log':'CreateSmsQueueReport'});};exports[_0xc008('0x4')]=function(_0x47063f,_0x10b33c){return client[_0xc008('0x2')](_0xc008('0x5'),{'body':_0x10b33c,'options':{'where':{'uniqueid':_0x47063f},'order':[['id',_0xc008('0x6')]],'limit':0x1},'log':_0xc008('0x5')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xa9e0=['name','pauseType','lastPauseAt','voicePause','chatPause','mailPause','smsPause','whatsappPause','openchannelPause','faxCapacity','openchannelCapacity','../client','getAgents','Request'];(function(_0x4f1598,_0x450348){var _0x130994=function(_0x307162){while(--_0x307162){_0x4f1598['push'](_0x4f1598['shift']());}};_0x130994(++_0x450348);}(_0xa9e0,0x123));var _0x0a9e=function(_0x1ddedd,_0x485606){_0x1ddedd=_0x1ddedd-0x0;var _0xa3e1ac=_0xa9e0[_0x1ddedd];return _0xa3e1ac;};'use strict';var client=require(_0x0a9e('0x0'));exports[_0x0a9e('0x1')]=function(){return function(){return client[_0x0a9e('0x2')]('GetUser',{'options':{'raw':!![],'where':{'role':'agent'},'attributes':['id',_0x0a9e('0x3'),'online',_0x0a9e('0x4'),_0x0a9e('0x5'),_0x0a9e('0x6'),_0x0a9e('0x7'),_0x0a9e('0x8'),'faxPause',_0x0a9e('0x9'),_0x0a9e('0xa'),_0x0a9e('0xb'),'chatCapacity','mailCapacity',_0x0a9e('0xc'),'smsCapacity','whatsappCapacity',_0x0a9e('0xd')]},'log':_0x0a9e('0x1')});};};
\ No newline at end of file
+var _0xa9e0=['name','pauseType','lastPauseAt','voicePause','chatPause','mailPause','smsPause','whatsappPause','openchannelPause','faxCapacity','openchannelCapacity','../client','getAgents','Request'];(function(_0xdbb69f,_0x1a0860){var _0x4fd322=function(_0x483261){while(--_0x483261){_0xdbb69f['push'](_0xdbb69f['shift']());}};_0x4fd322(++_0x1a0860);}(_0xa9e0,0x123));var _0x0a9e=function(_0x1b828b,_0x344400){_0x1b828b=_0x1b828b-0x0;var _0x98da1a=_0xa9e0[_0x1b828b];return _0x98da1a;};'use strict';var client=require(_0x0a9e('0x0'));exports[_0x0a9e('0x1')]=function(){return function(){return client[_0x0a9e('0x2')]('GetUser',{'options':{'raw':!![],'where':{'role':'agent'},'attributes':['id',_0x0a9e('0x3'),'online',_0x0a9e('0x4'),_0x0a9e('0x5'),_0x0a9e('0x6'),_0x0a9e('0x7'),_0x0a9e('0x8'),'faxPause',_0x0a9e('0x9'),_0x0a9e('0xa'),_0x0a9e('0xb'),'chatCapacity','mailCapacity',_0x0a9e('0xc'),'smsCapacity','whatsappCapacity',_0x0a9e('0xd')]},'log':_0x0a9e('0x1')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7923=['update','Request','UpdateWhatsappInteraction','updateWhatsappInteraction','AddTagsToWhatsappInteraction','../client'];(function(_0x25025e,_0x59dc79){var _0x49de6f=function(_0x51616b){while(--_0x51616b){_0x25025e['push'](_0x25025e['shift']());}};_0x49de6f(++_0x59dc79);}(_0x7923,0x8f));var _0x3792=function(_0x2d435a,_0x4839a4){_0x2d435a=_0x2d435a-0x0;var _0x3a66d3=_0x7923[_0x2d435a];return _0x3a66d3;};'use strict';var client=require(_0x3792('0x0'));exports[_0x3792('0x1')]=function(_0x2fb5a5,_0xdc0c64){return client[_0x3792('0x2')](_0x3792('0x3'),{'body':_0xdc0c64,'options':{'where':{'id':_0x2fb5a5}},'log':_0x3792('0x4')});};exports['addTags']=function(_0x21134d,_0x51d334){return client['Request'](_0x3792('0x5'),{'body':_0x51d334,'options':{'where':{'id':_0x21134d}},'log':'addTagsToWhatsappInteraction'});};
\ No newline at end of file
+var _0x3fa4=['../client','Request','UpdateWhatsappInteraction','updateWhatsappInteraction','addTags','addTagsToWhatsappInteraction'];(function(_0x5f06c0,_0x429cf1){var _0x125fa7=function(_0x343035){while(--_0x343035){_0x5f06c0['push'](_0x5f06c0['shift']());}};_0x125fa7(++_0x429cf1);}(_0x3fa4,0xf0));var _0x43fa=function(_0x3a8c18,_0x52eb67){_0x3a8c18=_0x3a8c18-0x0;var _0xe1ff00=_0x3fa4[_0x3a8c18];return _0xe1ff00;};'use strict';var client=require(_0x43fa('0x0'));exports['update']=function(_0x56dbea,_0x51997a){return client[_0x43fa('0x1')](_0x43fa('0x2'),{'body':_0x51997a,'options':{'where':{'id':_0x56dbea}},'log':_0x43fa('0x3')});};exports[_0x43fa('0x4')]=function(_0x2defb2,_0x6b36ce){return client[_0x43fa('0x1')]('AddTagsToWhatsappInteraction',{'body':_0x6b36ce,'options':{'where':{'id':_0x2defb2}},'log':_0x43fa('0x5')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc3c3=['../client','Request','createWhatsappMessage'];(function(_0x350258,_0x4e0a50){var _0x3714b3=function(_0x8918f7){while(--_0x8918f7){_0x350258['push'](_0x350258['shift']());}};_0x3714b3(++_0x4e0a50);}(_0xc3c3,0xc6));var _0x3c3c=function(_0x502e42,_0x16d404){_0x502e42=_0x502e42-0x0;var _0x1278fd=_0xc3c3[_0x502e42];return _0x1278fd;};'use strict';var client=require(_0x3c3c('0x0'));exports['create']=function(_0x47491f){return client[_0x3c3c('0x1')]('CreateWhatsappMessage',{'body':_0x47491f,'log':_0x3c3c('0x2')});};
\ No newline at end of file
+var _0x0663=['Request','CreateWhatsappMessage','createWhatsappMessage','../client','create'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x0663,0x76));var _0x3066=function(_0x5422d5,_0x515af8){_0x5422d5=_0x5422d5-0x0;var _0x4cc011=_0x0663[_0x5422d5];return _0x4cc011;};'use strict';var client=require(_0x3066('0x0'));exports[_0x3066('0x1')]=function(_0x550f95){return client[_0x3066('0x2')](_0x3066('0x3'),{'body':_0x550f95,'log':_0x3066('0x4')});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5435=['online','whatsappPause','getWhatsappQueues','../client','Request','GetWhatsappQueue','timeout','strategy','User','Agents','name'];(function(_0x58dd0b,_0x39de95){var _0x30fd30=function(_0x31d052){while(--_0x31d052){_0x58dd0b['push'](_0x58dd0b['shift']());}};_0x30fd30(++_0x39de95);}(_0x5435,0x1c6));var _0x5543=function(_0x50cf8a,_0x2c31ac){_0x50cf8a=_0x50cf8a-0x0;var _0x50163f=_0x5435[_0x50cf8a];return _0x50163f;};'use strict';var client=require(_0x5543('0x0'));exports['getWhatsappQueues']=function(){return function(){return client[_0x5543('0x1')](_0x5543('0x2'),{'options':{'raw':![],'attributes':['id','name',_0x5543('0x3'),_0x5543('0x4')],'include':[{'model':_0x5543('0x5'),'as':_0x5543('0x6'),'attributes':['id',_0x5543('0x7'),_0x5543('0x8'),_0x5543('0x9')]}]},'log':_0x5543('0xa')});};};
\ No newline at end of file
+var _0x8704=['name','online','getWhatsappQueues','../client','Request','GetWhatsappQueue','timeout','strategy','User','Agents'];(function(_0x198bde,_0x3d6184){var _0x3bd964=function(_0x501c7b){while(--_0x501c7b){_0x198bde['push'](_0x198bde['shift']());}};_0x3bd964(++_0x3d6184);}(_0x8704,0x8f));var _0x4870=function(_0x20cc29,_0x30a46d){_0x20cc29=_0x20cc29-0x0;var _0x28d513=_0x8704[_0x20cc29];return _0x28d513;};'use strict';var client=require(_0x4870('0x0'));exports['getWhatsappQueues']=function(){return function(){return client[_0x4870('0x1')](_0x4870('0x2'),{'options':{'raw':![],'attributes':['id','name',_0x4870('0x3'),_0x4870('0x4')],'include':[{'model':_0x4870('0x5'),'as':_0x4870('0x6'),'attributes':['id',_0x4870('0x7'),_0x4870('0x8'),'whatsappPause']}]},'log':_0x4870('0x9')});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x94f8=['DESC','create','Request','CreateWhatsappQueueReport','UpdateWhatsappQueueReport'];(function(_0x3535ea,_0x25e3fd){var _0x7660dc=function(_0x3f06b1){while(--_0x3f06b1){_0x3535ea['push'](_0x3535ea['shift']());}};_0x7660dc(++_0x25e3fd);}(_0x94f8,0x19b));var _0x894f=function(_0x46aad3,_0x5c363f){_0x46aad3=_0x46aad3-0x0;var _0x20e425=_0x94f8[_0x46aad3];return _0x20e425;};'use strict';var client=require('../client');exports[_0x894f('0x0')]=function(_0x215882){return client[_0x894f('0x1')](_0x894f('0x2'),{'body':_0x215882,'log':_0x894f('0x2')});};exports['update']=function(_0x1a1a77,_0x385266){return client[_0x894f('0x1')](_0x894f('0x3'),{'body':_0x385266,'options':{'where':{'uniqueid':_0x1a1a77},'order':[['id',_0x894f('0x4')]],'limit':0x1},'log':_0x894f('0x3')});};
\ No newline at end of file
+var _0x2d29=['UpdateWhatsappQueueReport','DESC','../client','create','Request'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x2d29,0x11a));var _0x92d2=function(_0x75f1ee,_0x3ef661){_0x75f1ee=_0x75f1ee-0x0;var _0x560c52=_0x2d29[_0x75f1ee];return _0x560c52;};'use strict';var client=require(_0x92d2('0x0'));exports[_0x92d2('0x1')]=function(_0x379c35){return client[_0x92d2('0x2')]('CreateWhatsappQueueReport',{'body':_0x379c35,'log':'CreateWhatsappQueueReport'});};exports['update']=function(_0xca204d,_0x42c926){return client[_0x92d2('0x2')](_0x92d2('0x3'),{'body':_0x42c926,'options':{'where':{'uniqueid':_0xca204d},'order':[['id',_0x92d2('0x4')]],'limit':0x1},'log':'UpdateWhatsappQueueReport'});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf25c=['[%s][AGENT]\x20agent\x20not\x20found\x20%s','log','[%s][QUEUE]\x20%s','validate','lodash','util','seq-queue','../../../../config/logger','./strategy','timeout\x20is\x20a\x20number','info','format','[%s][AGENT][NAME:%s][STATUS:%s]','name','toLowerCase','consequence','length','[%s][AGENT]\x20%s','map','stop','find','agents','createQueue','atimeout','channel','end','[%s][AGENT]\x20ROUTING\x20STOPPED','close','rules','complete','[%s][AGENT]\x20ROUTING\x20END','next','agent','error'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xf25c,0xf1));var _0xcf25=function(_0x366388,_0x4595a6){_0x366388=_0x366388-0x0;var _0x41c97e=_0xf25c[_0x366388];return _0x41c97e;};'use strict';var schema=require(_0xcf25('0x0'));var _=require(_0xcf25('0x1'));var util=require(_0xcf25('0x2'));var seqqueue=require(_0xcf25('0x3'));var logger=require(_0xcf25('0x4'))('routing');var strategy=require(_0xcf25('0x5'));var queue=schema({'name':{'type':'string','required':!![],'message':'name\x20is\x20a\x20string\x20and\x20it\x20is\x20required'},'timeout':{'type':'number','message':_0xcf25('0x6')}});function writeLog(_0x19e03a,_0x4fea92,_0x23738b){return logger[_0xcf25('0x7')](util[_0xcf25('0x8')](_0xcf25('0x9'),_0x19e03a,_0x4fea92[_0xcf25('0xa')],_0x23738b));}function handleFindAgent(_0x4221a1){return function(_0x35e6e){return _0x35e6e[_0xcf25('0xa')][_0xcf25('0xb')]()===_0x4221a1[_0xcf25('0xb')]();};}exports[_0xcf25('0xc')]=function(_0x434892,_0x8699d1,_0x2a4960,_0x1c1738){return function(_0x444c49){try{var _0x56c58e={'name':_0x8699d1[0x0],'timeout':_0x8699d1[0x1]};var _0x3c54ab=queue[_0xcf25('0x0')](_0x56c58e,{'typecast':!![]});if(_0x3c54ab[_0xcf25('0xd')]){logger['error'](_0xcf25('0xe'),_0x434892,_[_0xcf25('0xf')](_0x3c54ab,'message')['join'](',\x20'));_0x444c49[_0xcf25('0x10')]();}else{var _0xdc9006=_[_0xcf25('0x11')](_0x2a4960[_0xcf25('0x12')],handleFindAgent(_0x56c58e['name']));if(_0xdc9006){var _0x167ce3=(_0x56c58e['timeout']||0xa)*0x3e8;var _0x5c78ec,_0x491699;var _0x367bc3=seqqueue[_0xcf25('0x13')](_0x167ce3);_0x367bc3['id']=_0x434892;_0x367bc3[_0xcf25('0x14')]=_0x167ce3;_0x367bc3[_0xcf25('0x15')]=_0x1c1738[_0xcf25('0x15')];writeLog(_0x434892,_0xdc9006,util[_0xcf25('0x8')]('START:%s',_0x167ce3));_0x2a4960['rules'][_0x434892]['on'](_0xcf25('0x16'),function(){logger[_0xcf25('0x7')](_0xcf25('0x17'),_0x434892);clearTimeout(_0x491699);_0x491699=undefined;_0x367bc3[_0xcf25('0x18')]();if(_0x2a4960[_0xcf25('0x19')][_0x434892]){delete _0x2a4960[_0xcf25('0x19')][_0x434892];}_0x444c49[_0xcf25('0x10')]();});_0x2a4960[_0xcf25('0x19')][_0x434892]['on'](_0xcf25('0x1a'),function(){if(_0x2a4960['rules'][_0x434892]){delete _0x2a4960[_0xcf25('0x19')][_0x434892];}});_0x491699=setTimeout(function(){logger[_0xcf25('0x7')](_0xcf25('0x1b'),_0x434892);clearTimeout(_0x491699);_0x367bc3['close']();_0x444c49[_0xcf25('0x1c')]();},_0x167ce3);strategy[_0xcf25('0x1d')](_0x367bc3,_0xdc9006,_0x2a4960,_0x1c1738);}else{logger[_0xcf25('0x1e')](_0xcf25('0x1f'),_0x434892,_0x56c58e[_0xcf25('0xa')]);_0x444c49[_0xcf25('0x10')]();}}}catch(_0x1f46eb){console[_0xcf25('0x20')](_0x1f46eb);logger[_0xcf25('0x1e')](_0xcf25('0x21'),_0x434892,_0x1f46eb['stack']);_0x444c49['stop']();}};};
\ No newline at end of file
+var _0x4b91=['error','[%s][AGENT]\x20%s','map','stop','find','timeout','channel','START:%s','[%s][AGENT]\x20ROUTING\x20STOPPED','close','rules','complete','next','agent','[%s][AGENT]\x20agent\x20not\x20found\x20%s','stack','validate','lodash','util','seq-queue','routing','./strategy','name\x20is\x20a\x20string\x20and\x20it\x20is\x20required','number','info','format','[%s][AGENT][NAME:%s][STATUS:%s]','name','toLowerCase','consequence','length'];(function(_0x2ee93b,_0x82445f){var _0x37c343=function(_0x1632b8){while(--_0x1632b8){_0x2ee93b['push'](_0x2ee93b['shift']());}};_0x37c343(++_0x82445f);}(_0x4b91,0xab));var _0x14b9=function(_0x2a82a3,_0x1bb9ed){_0x2a82a3=_0x2a82a3-0x0;var _0x5286c7=_0x4b91[_0x2a82a3];return _0x5286c7;};'use strict';var schema=require(_0x14b9('0x0'));var _=require(_0x14b9('0x1'));var util=require(_0x14b9('0x2'));var seqqueue=require(_0x14b9('0x3'));var logger=require('../../../../config/logger')(_0x14b9('0x4'));var strategy=require(_0x14b9('0x5'));var queue=schema({'name':{'type':'string','required':!![],'message':_0x14b9('0x6')},'timeout':{'type':_0x14b9('0x7'),'message':'timeout\x20is\x20a\x20number'}});function writeLog(_0x6a0893,_0x33f7f5,_0x22cf3e){return logger[_0x14b9('0x8')](util[_0x14b9('0x9')](_0x14b9('0xa'),_0x6a0893,_0x33f7f5[_0x14b9('0xb')],_0x22cf3e));}function handleFindAgent(_0x47e1be){return function(_0x4d4273){return _0x4d4273[_0x14b9('0xb')][_0x14b9('0xc')]()===_0x47e1be['toLowerCase']();};}exports[_0x14b9('0xd')]=function(_0x5ac337,_0x15453d,_0x4f335d,_0x41cf14){return function(_0x334b9e){try{var _0x15837a={'name':_0x15453d[0x0],'timeout':_0x15453d[0x1]};var _0x378d5e=queue[_0x14b9('0x0')](_0x15837a,{'typecast':!![]});if(_0x378d5e[_0x14b9('0xe')]){logger[_0x14b9('0xf')](_0x14b9('0x10'),_0x5ac337,_[_0x14b9('0x11')](_0x378d5e,'message')['join'](',\x20'));_0x334b9e[_0x14b9('0x12')]();}else{var _0x2f4090=_[_0x14b9('0x13')](_0x4f335d['agents'],handleFindAgent(_0x15837a[_0x14b9('0xb')]));if(_0x2f4090){var _0x24a19c=(_0x15837a[_0x14b9('0x14')]||0xa)*0x3e8;var _0x598cfc,_0x23789a;var _0xfb490=seqqueue['createQueue'](_0x24a19c);_0xfb490['id']=_0x5ac337;_0xfb490['atimeout']=_0x24a19c;_0xfb490[_0x14b9('0x15')]=_0x41cf14['channel'];writeLog(_0x5ac337,_0x2f4090,util[_0x14b9('0x9')](_0x14b9('0x16'),_0x24a19c));_0x4f335d['rules'][_0x5ac337]['on']('end',function(){logger['info'](_0x14b9('0x17'),_0x5ac337);clearTimeout(_0x23789a);_0x23789a=undefined;_0xfb490[_0x14b9('0x18')]();if(_0x4f335d[_0x14b9('0x19')][_0x5ac337]){delete _0x4f335d['rules'][_0x5ac337];}_0x334b9e[_0x14b9('0x12')]();});_0x4f335d[_0x14b9('0x19')][_0x5ac337]['on'](_0x14b9('0x1a'),function(){if(_0x4f335d[_0x14b9('0x19')][_0x5ac337]){delete _0x4f335d[_0x14b9('0x19')][_0x5ac337];}});_0x23789a=setTimeout(function(){logger['info']('[%s][AGENT]\x20ROUTING\x20END',_0x5ac337);clearTimeout(_0x23789a);_0xfb490[_0x14b9('0x18')]();_0x334b9e[_0x14b9('0x1b')]();},_0x24a19c);strategy[_0x14b9('0x1c')](_0xfb490,_0x2f4090,_0x4f335d,_0x41cf14);}else{logger[_0x14b9('0xf')](_0x14b9('0x1d'),_0x5ac337,_0x15837a[_0x14b9('0xb')]);_0x334b9e[_0x14b9('0x12')]();}}}catch(_0xe80f17){console['log'](_0xe80f17);logger[_0x14b9('0xf')]('[%s][QUEUE]\x20%s',_0x5ac337,_0xe80f17[_0x14b9('0x1e')]);_0x334b9e[_0x14b9('0x12')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5877=['LexRuntime','message','toString','postText','error','amazonlex','providerName','providerResponse','create','dialogState','Failed','catch','moment','aws-sdk','./utils','../../../../config/logger','routing','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/faxMessage','../../rpc/whatsappMessage','interaction','UserId','info','[%s][AMAZONLEX]\x20%s','Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.','next','contact','YYYY-MM-DD\x20HH:mm:ss','out','channel','sms','whatsapp','phone','chat','ChatWebsiteId','account','upperFirst','AccountId','InteractionId','created','body','getMustacheRender','Message','then','stringify','finally','[%s][AMAZONLEX]\x20Welcome\x20Message\x20has\x20been\x20sent!','stop','[%s][AMAZONLEX]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!'];(function(_0x5e7ea9,_0x1422ea){var _0x4a7990=function(_0x5d70c1){while(--_0x5d70c1){_0x5e7ea9['push'](_0x5e7ea9['shift']());}};_0x4a7990(++_0x1422ea);}(_0x5877,0x74));var _0x7587=function(_0x14add3,_0x13ce8d){_0x14add3=_0x14add3-0x0;var _0x4a174f=_0x5877[_0x14add3];return _0x4a174f;};'use strict';var _=require('lodash');var moment=require(_0x7587('0x0'));var AWS=require(_0x7587('0x1'));var utils=require(_0x7587('0x2'));var logger=require(_0x7587('0x3'))(_0x7587('0x4'));var rpc={'chatMessage':require(_0x7587('0x5')),'openchannelMessage':require(_0x7587('0x6')),'mailMessage':require(_0x7587('0x7')),'smsMessage':require(_0x7587('0x8')),'faxMessage':require(_0x7587('0x9')),'whatsappMessage':require(_0x7587('0xa'))};exports['consequence']=function(_0x28f158,_0x5af7ac){return function(_0x29a31d){try{if(!_['isNil'](this[_0x7587('0xb')][_0x7587('0xc')])){logger[_0x7587('0xd')](_0x7587('0xe'),_0x28f158,_0x7587('0xf'));return _0x29a31d[_0x7587('0x10')]();}var _0x179ae3={'ContactId':this[_0x7587('0x11')]['id'],'sentAt':moment()['format'](_0x7587('0x12')),'direction':_0x7587('0x13')};if(this[_0x7587('0x14')]===_0x7587('0x15')||this[_0x7587('0x14')]===_0x7587('0x16')){_0x179ae3[_0x7587('0x17')]=this[_0x7587('0xb')][_0x7587('0x17')];}var _0x14f6d2=this[_0x7587('0x14')];if(_0x14f6d2===_0x7587('0x18')){_0x179ae3[_0x7587('0x19')]=this[_0x7587('0x1a')]['id'];}else{_0x179ae3[_[_0x7587('0x1b')](_0x14f6d2)+_0x7587('0x1c')]=this['account']['id'];}_0x179ae3[_[_0x7587('0x1b')](_0x14f6d2)+_0x7587('0x1d')]=this[_0x7587('0xb')]['id'];if(this[_0x7587('0xb')][_0x7587('0x1e')]){var _0x20c3c8=_0x5af7ac[0x4];if(!_['isEmpty'](_0x20c3c8)){_0x179ae3[_0x7587('0x1f')]=utils[_0x7587('0x20')](_0x20c3c8,this);return rpc[_0x14f6d2+_0x7587('0x21')]['create'](_0x179ae3)[_0x7587('0x22')](function(_0x16dfce){logger[_0x7587('0xd')](_0x7587('0xe'),_0x28f158,_0x179ae3[_0x7587('0x1f')]);})['catch'](function(_0x2f4884){logger['error'](_0x7587('0xe'),_0x28f158,JSON[_0x7587('0x23')](_0x2f4884));})[_0x7587('0x24')](function(){logger[_0x7587('0xd')](_0x7587('0x25'),_0x28f158);_0x29a31d[_0x7587('0x26')]();});}else{logger[_0x7587('0xd')](_0x7587('0x27'),_0x28f158);_0x29a31d['stop']();}}else{var _0x292579=this;var _0x366dd4=new AWS[(_0x7587('0x28'))]({'accessKeyId':_0x5af7ac[0x0],'secretAccessKey':_0x5af7ac[0x1],'region':_0x5af7ac[0x2]});var _0x431131={'botAlias':'$LATEST','botName':_0x5af7ac[0x3],'inputText':this[_0x7587('0x29')][_0x7587('0x1f')],'userId':this[_0x7587('0x14')]+':'+this['interaction']['id'][_0x7587('0x2a')]()};_0x366dd4[_0x7587('0x2b')](_0x431131,function(_0x4c12d7,_0x32eec1){if(_0x4c12d7){logger[_0x7587('0x2c')](_0x7587('0xe'),_0x28f158,_0x4c12d7['message']);_0x29a31d['next']();}else if(_0x32eec1&&_0x32eec1[_0x7587('0x29')]){_0x292579[_0x7587('0x1f')][_0x7587('0x2d')]=_0x32eec1;_0x179ae3[_0x7587('0x1f')]=_0x32eec1[_0x7587('0x29')];_0x179ae3[_0x7587('0x2e')]=_0x7587('0x2d');_0x179ae3[_0x7587('0x2f')]=JSON[_0x7587('0x23')](_0x32eec1);return rpc[_0x14f6d2+'Message'][_0x7587('0x30')](_0x179ae3)[_0x7587('0x22')](function(_0x5971d0){logger[_0x7587('0xd')]('[%s][AMAZONLEX]\x20%s',_0x28f158,_0x179ae3[_0x7587('0x1f')]);if(_0x32eec1[_0x7587('0x31')]==_0x7587('0x32')){_0x29a31d[_0x7587('0x10')]();}else{_0x29a31d[_0x7587('0x26')]();}})[_0x7587('0x33')](function(_0x225bfe){logger[_0x7587('0x2c')](_0x7587('0xe'),_0x28f158,JSON[_0x7587('0x23')](_0x225bfe));_0x29a31d[_0x7587('0x10')]();});}else{_0x29a31d[_0x7587('0x10')]();}});}}catch(_0x433866){logger[_0x7587('0x2c')](_0x7587('0xe'),_0x28f158,JSON[_0x7587('0x23')](_0x433866));_0x29a31d[_0x7587('0x26')]();}};};
\ No newline at end of file
+var _0x0586=['phone','channel','chat','ChatWebsiteId','account','upperFirst','InteractionId','created','body','getMustacheRender','Message','create','then','finally','[%s][AMAZONLEX]\x20Welcome\x20Message\x20has\x20been\x20sent!','stop','[%s][AMAZONLEX]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','$LATEST','message','toString','postText','amazonlex','providerResponse','stringify','dialogState','Failed','catch','error','aws-sdk','./utils','routing','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/faxMessage','isNil','interaction','UserId','info','[%s][AMAZONLEX]\x20%s','Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.','next','YYYY-MM-DD\x20HH:mm:ss','sms','whatsapp'];(function(_0x261b84,_0x5bda10){var _0x1fcf21=function(_0x1dcc8e){while(--_0x1dcc8e){_0x261b84['push'](_0x261b84['shift']());}};_0x1fcf21(++_0x5bda10);}(_0x0586,0x102));var _0x6058=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x0586[_0x3dd15e];return _0x231fd0;};'use strict';var _=require('lodash');var moment=require('moment');var AWS=require(_0x6058('0x0'));var utils=require(_0x6058('0x1'));var logger=require('../../../../config/logger')(_0x6058('0x2'));var rpc={'chatMessage':require(_0x6058('0x3')),'openchannelMessage':require(_0x6058('0x4')),'mailMessage':require(_0x6058('0x5')),'smsMessage':require(_0x6058('0x6')),'faxMessage':require(_0x6058('0x7')),'whatsappMessage':require('../../rpc/whatsappMessage')};exports['consequence']=function(_0x2c620d,_0x111d2d){return function(_0x3a641b){try{if(!_[_0x6058('0x8')](this[_0x6058('0x9')][_0x6058('0xa')])){logger[_0x6058('0xb')](_0x6058('0xc'),_0x2c620d,_0x6058('0xd'));return _0x3a641b[_0x6058('0xe')]();}var _0x3453f1={'ContactId':this['contact']['id'],'sentAt':moment()['format'](_0x6058('0xf')),'direction':'out'};if(this['channel']===_0x6058('0x10')||this['channel']===_0x6058('0x11')){_0x3453f1[_0x6058('0x12')]=this[_0x6058('0x9')][_0x6058('0x12')];}var _0x2b9cf5=this[_0x6058('0x13')];if(_0x2b9cf5===_0x6058('0x14')){_0x3453f1[_0x6058('0x15')]=this[_0x6058('0x16')]['id'];}else{_0x3453f1[_[_0x6058('0x17')](_0x2b9cf5)+'AccountId']=this[_0x6058('0x16')]['id'];}_0x3453f1[_[_0x6058('0x17')](_0x2b9cf5)+_0x6058('0x18')]=this[_0x6058('0x9')]['id'];if(this[_0x6058('0x9')][_0x6058('0x19')]){var _0x2f8568=_0x111d2d[0x4];if(!_['isEmpty'](_0x2f8568)){_0x3453f1[_0x6058('0x1a')]=utils[_0x6058('0x1b')](_0x2f8568,this);return rpc[_0x2b9cf5+_0x6058('0x1c')][_0x6058('0x1d')](_0x3453f1)[_0x6058('0x1e')](function(_0x548cd3){logger[_0x6058('0xb')]('[%s][AMAZONLEX]\x20%s',_0x2c620d,_0x3453f1['body']);})['catch'](function(_0x27a5c2){logger['error'](_0x6058('0xc'),_0x2c620d,JSON['stringify'](_0x27a5c2));})[_0x6058('0x1f')](function(){logger[_0x6058('0xb')](_0x6058('0x20'),_0x2c620d);_0x3a641b[_0x6058('0x21')]();});}else{logger[_0x6058('0xb')](_0x6058('0x22'),_0x2c620d);_0x3a641b[_0x6058('0x21')]();}}else{var _0x2039a5=this;var _0x1c8ef5=new AWS['LexRuntime']({'accessKeyId':_0x111d2d[0x0],'secretAccessKey':_0x111d2d[0x1],'region':_0x111d2d[0x2]});var _0x1b16cb={'botAlias':_0x6058('0x23'),'botName':_0x111d2d[0x3],'inputText':this[_0x6058('0x24')][_0x6058('0x1a')],'userId':this['channel']+':'+this[_0x6058('0x9')]['id'][_0x6058('0x25')]()};_0x1c8ef5[_0x6058('0x26')](_0x1b16cb,function(_0x1b7a7f,_0x49c008){if(_0x1b7a7f){logger['error'](_0x6058('0xc'),_0x2c620d,_0x1b7a7f[_0x6058('0x24')]);_0x3a641b[_0x6058('0xe')]();}else if(_0x49c008&&_0x49c008[_0x6058('0x24')]){_0x2039a5[_0x6058('0x1a')]['amazonlex']=_0x49c008;_0x3453f1[_0x6058('0x1a')]=_0x49c008[_0x6058('0x24')];_0x3453f1['providerName']=_0x6058('0x27');_0x3453f1[_0x6058('0x28')]=JSON[_0x6058('0x29')](_0x49c008);return rpc[_0x2b9cf5+_0x6058('0x1c')][_0x6058('0x1d')](_0x3453f1)[_0x6058('0x1e')](function(_0x28d164){logger[_0x6058('0xb')]('[%s][AMAZONLEX]\x20%s',_0x2c620d,_0x3453f1[_0x6058('0x1a')]);if(_0x49c008[_0x6058('0x2a')]==_0x6058('0x2b')){_0x3a641b['next']();}else{_0x3a641b['stop']();}})[_0x6058('0x2c')](function(_0x510b3a){logger['error'](_0x6058('0xc'),_0x2c620d,JSON[_0x6058('0x29')](_0x510b3a));_0x3a641b[_0x6058('0xe')]();});}else{_0x3a641b['next']();}});}}catch(_0x32da62){logger[_0x6058('0x2d')](_0x6058('0xc'),_0x2c620d,JSON[_0x6058('0x29')](_0x32da62));_0x3a641b[_0x6058('0x21')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x61c6=['then','[%s][AUTOREPLY]\x20SMTP\x20SENT','stringify','error','[RPC][%s][AUTOREPLY]\x20%s','finally','resolve','Interaction','update','catch','[RPC][%s][AUTOREPLY][autoreplyExecuted]\x20%s','create','stop','lodash','moment','./utils','../../../../config/logger','routing','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/whatsappMessage','../../rpc/chatInteraction','../../rpc/mailInteraction','../../rpc/smsInteraction','../../rpc/faxInteraction','../../mailRpc','consequence','body','isAutoreply','info','[%s][AUTOREPLY]\x20%s','Autoreply\x20not\x20executed\x20(message\x20is\x20autoreply)','next','isNil','interaction','created','Autoreply\x20already\x20sent','autoreplyExecuted','[%s][AUTOREPLY][autoreplyExecuted]\x20%s','One\x20Time\x20already\x20sent','contact','format','YYYY-MM-DD\x20HH:mm:ss','channel','mail','getMustacheRender','message','from','phone','subject','startsWith','Re:','Re:\x20','chat','ChatWebsiteId','account','upperFirst','InteractionId','Message','Smtp','service','host','port','authentication','auth','user','inReplyTo','<div\x20id=\x22xm-mail-content\x22>','replace','<div\x20id=\x22xm-mail-content\x22','<div','</div>','auto-replied','All','auto_reply','sendMailMessage'];(function(_0x59b341,_0x122518){var _0x5690b1=function(_0x3e9204){while(--_0x3e9204){_0x59b341['push'](_0x59b341['shift']());}};_0x5690b1(++_0x122518);}(_0x61c6,0x1db));var _0x661c=function(_0x1b2ac2,_0x46bdd1){_0x1b2ac2=_0x1b2ac2-0x0;var _0x140c33=_0x61c6[_0x1b2ac2];return _0x140c33;};'use strict';var _=require(_0x661c('0x0'));var moment=require(_0x661c('0x1'));var utils=require(_0x661c('0x2'));var logger=require(_0x661c('0x3'))(_0x661c('0x4'));var rpc={'chatMessage':require(_0x661c('0x5')),'openchannelMessage':require(_0x661c('0x6')),'mailMessage':require(_0x661c('0x7')),'smsMessage':require('../../rpc/smsMessage'),'faxMessage':require('../../rpc/faxMessage'),'whatsappMessage':require(_0x661c('0x8')),'chatInteraction':require(_0x661c('0x9')),'openchannelInteraction':require('../../rpc/openchannelInteraction'),'mailInteraction':require(_0x661c('0xa')),'smsInteraction':require(_0x661c('0xb')),'faxInteraction':require(_0x661c('0xc')),'whatsappInteraction':require('../../rpc/whatsappInteraction')};var mailRpc=require(_0x661c('0xd'));exports[_0x661c('0xe')]=function(_0x3ff90a,_0x4d4893,_0x43ab46,_0x1e1332){return function(_0xcdd89a){try{var _0x56c97b=this['channel'];if(_0x56c97b==='mail'&&_0x1e1332[_0x661c('0xf')][_0x661c('0x10')]){logger[_0x661c('0x11')](_0x661c('0x12'),_0x3ff90a,_0x661c('0x13'));return _0xcdd89a[_0x661c('0x14')]();}if(_0x4d4893[0x0]==='1'&&(_[_0x661c('0x15')](this[_0x661c('0x16')][_0x661c('0x17')])||!this[_0x661c('0x16')][_0x661c('0x17')])){logger[_0x661c('0x11')](_0x661c('0x12'),_0x3ff90a,_0x661c('0x18'));return _0xcdd89a['next']();}if(_0x4d4893[0x0]==='2'&&this['interaction'][_0x661c('0x19')]){logger[_0x661c('0x11')](_0x661c('0x1a'),_0x3ff90a,_0x661c('0x1b'));return _0xcdd89a[_0x661c('0x14')]();}var _0x337d75={'ContactId':this[_0x661c('0x1c')]['id'],'sentAt':moment()[_0x661c('0x1d')](_0x661c('0x1e')),'direction':'out'};if(this[_0x661c('0x1f')]===_0x661c('0x20')){_0x337d75['body']=utils['getMustacheRender'](_0x4d4893[0x2],this);}else{_0x337d75[_0x661c('0xf')]=utils[_0x661c('0x21')](_0x4d4893[0x1],this);}if(this[_0x661c('0x22')]){_0x337d75['to']=this[_0x661c('0x22')]['from']||'';if(this[_0x661c('0x1f')]===_0x661c('0x20')&&_0x4d4893[0x1]==='1'){_0x337d75['cc']=this[_0x661c('0x22')]['cc']||'';}_0x337d75[_0x661c('0x23')]=this[_0x661c('0x22')]['to']||'';_0x337d75[_0x661c('0x24')]=this['message'][_0x661c('0x24')]||'';_0x337d75['read']=!![];if(this[_0x661c('0x22')][_0x661c('0x25')]){_0x337d75[_0x661c('0x25')]='';_0x337d75[_0x661c('0x25')]+=_[_0x661c('0x26')](this[_0x661c('0x22')][_0x661c('0x25')],_0x661c('0x27'))?'':_0x661c('0x28');_0x337d75['subject']+=this[_0x661c('0x22')]['subject'];}}if(this[_0x661c('0x1f')]===_0x661c('0x29')){_0x337d75[_0x661c('0x2a')]=this[_0x661c('0x2b')]['id'];}else{_0x337d75[_[_0x661c('0x2c')](this[_0x661c('0x1f')])+'AccountId']=this[_0x661c('0x2b')]['id'];}_0x337d75[_['upperFirst'](this[_0x661c('0x1f')])+_0x661c('0x2d')]=this['interaction']['id'];var _0x3dd683=this[_0x661c('0x16')];if(rpc[this[_0x661c('0x1f')]+_0x661c('0x2e')]){if(this[_0x661c('0x1f')]===_0x661c('0x20')){var _0x17de8d={'tls':{'rejectUnauthorized':![]}};if(this['account'][_0x661c('0x2f')][_0x661c('0x30')]){_0x17de8d[_0x661c('0x30')]=this[_0x661c('0x2b')][_0x661c('0x2f')][_0x661c('0x30')];}else{_0x17de8d['host']=this[_0x661c('0x2b')]['Smtp'][_0x661c('0x31')];_0x17de8d[_0x661c('0x32')]=this[_0x661c('0x2b')][_0x661c('0x2f')]['port'];_0x17de8d['secure']=this[_0x661c('0x2b')][_0x661c('0x2f')]['secure'];}if(this[_0x661c('0x2b')][_0x661c('0x2f')][_0x661c('0x33')]){_0x17de8d[_0x661c('0x34')]={'user':this[_0x661c('0x2b')][_0x661c('0x2f')][_0x661c('0x35')],'pass':this[_0x661c('0x2b')]['Smtp']['pass']};}_0x337d75[_0x661c('0x36')]=this[_0x661c('0x22')]['messageId'];_0x337d75['html']=_0x661c('0x37')+_[_0x661c('0x38')](_0x337d75[_0x661c('0xf')],_0x661c('0x39'),_0x661c('0x3a'))+_0x661c('0x3b');_0x337d75['headers']={'Auto-Submitted':_0x661c('0x3c'),'X-Auto-Response-Suppress':_0x661c('0x3d'),'Precedence':_0x661c('0x3e')};return mailRpc[_0x661c('0x3f')](_0x17de8d,_0x337d75)[_0x661c('0x40')](function(_0x385217){logger[_0x661c('0x11')](_0x661c('0x41'),_0x3ff90a);_0x337d75['messageId']=_0x385217[_0x661c('0x22')]['messageId'];return rpc[_0x56c97b+_0x661c('0x2e')]['create'](_0x337d75);})[_0x661c('0x40')](function(_0x1c7adf){logger[_0x661c('0x11')](_0x661c('0x12'),_0x3ff90a,JSON[_0x661c('0x42')](_0x1c7adf));})['catch'](function(_0x424506){logger[_0x661c('0x43')](_0x661c('0x44'),_0x3ff90a,JSON[_0x661c('0x42')](_0x424506));})[_0x661c('0x45')](function(){Promise[_0x661c('0x46')]()[_0x661c('0x40')](function(){if(_0x4d4893[0x0]!=='2'||_0x3dd683['autoreplyExecuted'])return;return rpc[_0x56c97b+_0x661c('0x47')][_0x661c('0x48')](_0x3dd683['id'],{'autoreplyExecuted':!![]})[_0x661c('0x40')](function(_0x409e74){logger['info'](_0x661c('0x1a'),_0x3ff90a,JSON[_0x661c('0x42')](_0x409e74));})[_0x661c('0x49')](function(_0x53e6bf){logger[_0x661c('0x43')](_0x661c('0x4a'),_0x3ff90a,JSON[_0x661c('0x42')](_0x53e6bf));});})[_0x661c('0x40')](function(){_0xcdd89a['next']();});});}else{return rpc[this[_0x661c('0x1f')]+_0x661c('0x2e')][_0x661c('0x4b')](_0x337d75)[_0x661c('0x40')](function(_0xbcf96f){logger[_0x661c('0x11')](_0x661c('0x12'),_0x3ff90a,_0x337d75[_0x661c('0xf')]);})[_0x661c('0x49')](function(_0x346ae0){logger[_0x661c('0x43')]('[%s][AUTOREPLY]\x20%s',_0x3ff90a,JSON['stringify'](_0x346ae0));})[_0x661c('0x45')](function(){Promise['resolve']()[_0x661c('0x40')](function(){if(_0x4d4893[0x0]!=='2'||_0x3dd683[_0x661c('0x19')])return;return rpc[_0x56c97b+_0x661c('0x47')][_0x661c('0x48')](_0x3dd683['id'],{'autoreplyExecuted':!![]})[_0x661c('0x40')](function(_0x4c9a7c){logger[_0x661c('0x11')](_0x661c('0x1a'),_0x3ff90a,JSON[_0x661c('0x42')](_0x4c9a7c));})[_0x661c('0x49')](function(_0x96f84c){logger[_0x661c('0x43')](_0x661c('0x4a'),_0x3ff90a,JSON[_0x661c('0x42')](_0x96f84c));});})[_0x661c('0x40')](function(){_0xcdd89a[_0x661c('0x14')]();});});}}}catch(_0x443e9d){logger[_0x661c('0x43')](_0x661c('0x12'),_0x3ff90a,JSON[_0x661c('0x42')](_0x443e9d));_0xcdd89a[_0x661c('0x4c')]();}};};
\ No newline at end of file
+var _0xbeb2=['subject','startsWith','Re:','Re:\x20','ChatWebsiteId','account','AccountId','upperFirst','InteractionId','Smtp','service','host','secure','user','pass','html','replace','<div\x20id=\x22xm-mail-content\x22','<div','auto-replied','All','auto_reply','sendMailMessage','then','[%s][AUTOREPLY]\x20SMTP\x20SENT','messageId','Message','create','stringify','catch','[RPC][%s][AUTOREPLY]\x20%s','resolve','update','[%s][AUTOREPLY][autoreplyExecuted]\x20%s','error','[RPC][%s][AUTOREPLY][autoreplyExecuted]\x20%s','finally','Interaction','stop','lodash','moment','./utils','../../../../config/logger','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/faxMessage','../../rpc/whatsappMessage','../../rpc/chatInteraction','../../rpc/mailInteraction','../../rpc/smsInteraction','../../rpc/faxInteraction','consequence','mail','body','isAutoreply','info','[%s][AUTOREPLY]\x20%s','Autoreply\x20not\x20executed\x20(message\x20is\x20autoreply)','next','isNil','interaction','created','Autoreply\x20already\x20sent','autoreplyExecuted','One\x20Time\x20already\x20sent','contact','format','out','channel','getMustacheRender','from','message','phone'];(function(_0x4b91e1,_0x48c27c){var _0x5ab481=function(_0x3fe96c){while(--_0x3fe96c){_0x4b91e1['push'](_0x4b91e1['shift']());}};_0x5ab481(++_0x48c27c);}(_0xbeb2,0x105));var _0x2beb=function(_0x5b300b,_0x214f97){_0x5b300b=_0x5b300b-0x0;var _0x2e6892=_0xbeb2[_0x5b300b];return _0x2e6892;};'use strict';var _=require(_0x2beb('0x0'));var moment=require(_0x2beb('0x1'));var utils=require(_0x2beb('0x2'));var logger=require(_0x2beb('0x3'))('routing');var rpc={'chatMessage':require('../../rpc/chatMessage'),'openchannelMessage':require(_0x2beb('0x4')),'mailMessage':require(_0x2beb('0x5')),'smsMessage':require(_0x2beb('0x6')),'faxMessage':require(_0x2beb('0x7')),'whatsappMessage':require(_0x2beb('0x8')),'chatInteraction':require(_0x2beb('0x9')),'openchannelInteraction':require('../../rpc/openchannelInteraction'),'mailInteraction':require(_0x2beb('0xa')),'smsInteraction':require(_0x2beb('0xb')),'faxInteraction':require(_0x2beb('0xc')),'whatsappInteraction':require('../../rpc/whatsappInteraction')};var mailRpc=require('../../mailRpc');exports[_0x2beb('0xd')]=function(_0x17a521,_0x2a1d7c,_0x2ede13,_0x26875f){return function(_0x3ee413){try{var _0x4f50b2=this['channel'];if(_0x4f50b2===_0x2beb('0xe')&&_0x26875f[_0x2beb('0xf')][_0x2beb('0x10')]){logger[_0x2beb('0x11')](_0x2beb('0x12'),_0x17a521,_0x2beb('0x13'));return _0x3ee413[_0x2beb('0x14')]();}if(_0x2a1d7c[0x0]==='1'&&(_[_0x2beb('0x15')](this[_0x2beb('0x16')][_0x2beb('0x17')])||!this[_0x2beb('0x16')][_0x2beb('0x17')])){logger[_0x2beb('0x11')](_0x2beb('0x12'),_0x17a521,_0x2beb('0x18'));return _0x3ee413['next']();}if(_0x2a1d7c[0x0]==='2'&&this['interaction'][_0x2beb('0x19')]){logger[_0x2beb('0x11')]('[%s][AUTOREPLY][autoreplyExecuted]\x20%s',_0x17a521,_0x2beb('0x1a'));return _0x3ee413[_0x2beb('0x14')]();}var _0x1c395a={'ContactId':this[_0x2beb('0x1b')]['id'],'sentAt':moment()[_0x2beb('0x1c')]('YYYY-MM-DD\x20HH:mm:ss'),'direction':_0x2beb('0x1d')};if(this[_0x2beb('0x1e')]===_0x2beb('0xe')){_0x1c395a[_0x2beb('0xf')]=utils[_0x2beb('0x1f')](_0x2a1d7c[0x2],this);}else{_0x1c395a[_0x2beb('0xf')]=utils[_0x2beb('0x1f')](_0x2a1d7c[0x1],this);}if(this['message']){_0x1c395a['to']=this['message'][_0x2beb('0x20')]||'';if(this[_0x2beb('0x1e')]===_0x2beb('0xe')&&_0x2a1d7c[0x1]==='1'){_0x1c395a['cc']=this['message']['cc']||'';}_0x1c395a[_0x2beb('0x20')]=this[_0x2beb('0x21')]['to']||'';_0x1c395a[_0x2beb('0x22')]=this[_0x2beb('0x21')][_0x2beb('0x22')]||'';_0x1c395a['read']=!![];if(this[_0x2beb('0x21')]['subject']){_0x1c395a[_0x2beb('0x23')]='';_0x1c395a[_0x2beb('0x23')]+=_[_0x2beb('0x24')](this[_0x2beb('0x21')][_0x2beb('0x23')],_0x2beb('0x25'))?'':_0x2beb('0x26');_0x1c395a[_0x2beb('0x23')]+=this[_0x2beb('0x21')]['subject'];}}if(this[_0x2beb('0x1e')]==='chat'){_0x1c395a[_0x2beb('0x27')]=this[_0x2beb('0x28')]['id'];}else{_0x1c395a[_['upperFirst'](this[_0x2beb('0x1e')])+_0x2beb('0x29')]=this['account']['id'];}_0x1c395a[_[_0x2beb('0x2a')](this[_0x2beb('0x1e')])+_0x2beb('0x2b')]=this[_0x2beb('0x16')]['id'];var _0x52e72d=this['interaction'];if(rpc[this['channel']+'Message']){if(this[_0x2beb('0x1e')]===_0x2beb('0xe')){var _0x508f2c={'tls':{'rejectUnauthorized':![]}};if(this[_0x2beb('0x28')][_0x2beb('0x2c')][_0x2beb('0x2d')]){_0x508f2c[_0x2beb('0x2d')]=this[_0x2beb('0x28')][_0x2beb('0x2c')]['service'];}else{_0x508f2c['host']=this[_0x2beb('0x28')]['Smtp'][_0x2beb('0x2e')];_0x508f2c['port']=this['account']['Smtp']['port'];_0x508f2c[_0x2beb('0x2f')]=this[_0x2beb('0x28')][_0x2beb('0x2c')]['secure'];}if(this[_0x2beb('0x28')]['Smtp']['authentication']){_0x508f2c['auth']={'user':this[_0x2beb('0x28')]['Smtp'][_0x2beb('0x30')],'pass':this[_0x2beb('0x28')]['Smtp'][_0x2beb('0x31')]};}_0x1c395a['inReplyTo']=this[_0x2beb('0x21')]['messageId'];_0x1c395a[_0x2beb('0x32')]='<div\x20id=\x22xm-mail-content\x22>'+_[_0x2beb('0x33')](_0x1c395a[_0x2beb('0xf')],_0x2beb('0x34'),_0x2beb('0x35'))+'</div>';_0x1c395a['headers']={'Auto-Submitted':_0x2beb('0x36'),'X-Auto-Response-Suppress':_0x2beb('0x37'),'Precedence':_0x2beb('0x38')};return mailRpc[_0x2beb('0x39')](_0x508f2c,_0x1c395a)[_0x2beb('0x3a')](function(_0x3cbccc){logger[_0x2beb('0x11')](_0x2beb('0x3b'),_0x17a521);_0x1c395a['messageId']=_0x3cbccc[_0x2beb('0x21')][_0x2beb('0x3c')];return rpc[_0x4f50b2+_0x2beb('0x3d')][_0x2beb('0x3e')](_0x1c395a);})[_0x2beb('0x3a')](function(_0x489429){logger['info']('[%s][AUTOREPLY]\x20%s',_0x17a521,JSON[_0x2beb('0x3f')](_0x489429));})[_0x2beb('0x40')](function(_0x42d167){logger['error'](_0x2beb('0x41'),_0x17a521,JSON[_0x2beb('0x3f')](_0x42d167));})['finally'](function(){Promise[_0x2beb('0x42')]()[_0x2beb('0x3a')](function(){if(_0x2a1d7c[0x0]!=='2'||_0x52e72d[_0x2beb('0x19')])return;return rpc[_0x4f50b2+'Interaction'][_0x2beb('0x43')](_0x52e72d['id'],{'autoreplyExecuted':!![]})[_0x2beb('0x3a')](function(_0xb366d){logger[_0x2beb('0x11')](_0x2beb('0x44'),_0x17a521,JSON[_0x2beb('0x3f')](_0xb366d));})[_0x2beb('0x40')](function(_0x5f11ef){logger[_0x2beb('0x45')](_0x2beb('0x46'),_0x17a521,JSON[_0x2beb('0x3f')](_0x5f11ef));});})[_0x2beb('0x3a')](function(){_0x3ee413['next']();});});}else{return rpc[this['channel']+_0x2beb('0x3d')][_0x2beb('0x3e')](_0x1c395a)[_0x2beb('0x3a')](function(_0x19a745){logger['info']('[%s][AUTOREPLY]\x20%s',_0x17a521,_0x1c395a[_0x2beb('0xf')]);})[_0x2beb('0x40')](function(_0x102605){logger[_0x2beb('0x45')](_0x2beb('0x12'),_0x17a521,JSON[_0x2beb('0x3f')](_0x102605));})[_0x2beb('0x47')](function(){Promise[_0x2beb('0x42')]()[_0x2beb('0x3a')](function(){if(_0x2a1d7c[0x0]!=='2'||_0x52e72d[_0x2beb('0x19')])return;return rpc[_0x4f50b2+_0x2beb('0x48')][_0x2beb('0x43')](_0x52e72d['id'],{'autoreplyExecuted':!![]})[_0x2beb('0x3a')](function(_0xf86e71){logger[_0x2beb('0x11')](_0x2beb('0x44'),_0x17a521,JSON[_0x2beb('0x3f')](_0xf86e71));})[_0x2beb('0x40')](function(_0x4deea8){logger[_0x2beb('0x45')](_0x2beb('0x46'),_0x17a521,JSON[_0x2beb('0x3f')](_0x4deea8));});})['then'](function(){_0x3ee413[_0x2beb('0x14')]();});});}}}catch(_0x44d444){logger[_0x2beb('0x45')](_0x2beb('0x12'),_0x17a521,JSON[_0x2beb('0x3f')](_0x44d444));_0x3ee413[_0x2beb('0x49')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc294=['update','interaction','then','info','[%s][CLOSE]\x20interaction\x20%s\x20has\x20been\x20closed!','catch','[%s][CLOSE]\x20%s','stringify','finally','stop','moment','../../rpc/chatInteraction','../../rpc/openchannelInteraction','../../rpc/faxInteraction','[%s][CLOSE]\x20reason\x20%s','YYYY-MM-DD\x20HH:mm:ss','system','channel','Interaction'];(function(_0x589d2f,_0xc49372){var _0x1db27c=function(_0x25d0d3){while(--_0x25d0d3){_0x589d2f['push'](_0x589d2f['shift']());}};_0x1db27c(++_0xc49372);}(_0xc294,0x114));var _0x4c29=function(_0x913b85,_0x213182){_0x913b85=_0x913b85-0x0;var _0x1ce434=_0xc294[_0x913b85];return _0x1ce434;};'use strict';var moment=require(_0x4c29('0x0'));var logger=require('../../../../config/logger')('routing');var rpc={'chatInteraction':require(_0x4c29('0x1')),'openchannelInteraction':require(_0x4c29('0x2')),'smsInteraction':require('../../rpc/smsInteraction'),'mailInteraction':require('../../rpc/mailInteraction'),'faxInteraction':require(_0x4c29('0x3')),'whatsappInteraction':require('../../rpc/whatsappInteraction')};exports['consequence']=function(_0x54ec9b,_0x554ec3,_0x2334bb,_0x9aec1f){return function(_0x4d4ec6){try{logger['info'](_0x4c29('0x4'),_0x54ec9b,_0x554ec3[0x0]);var _0x997c40={'closed':0x1,'closedAt':moment()['format'](_0x4c29('0x5')),'closeReason':_0x4c29('0x6'),'disposition':_0x554ec3[0x0]};if(rpc[_0x9aec1f[_0x4c29('0x7')]+_0x4c29('0x8')]){rpc[_0x9aec1f[_0x4c29('0x7')]+'Interaction'][_0x4c29('0x9')](_0x9aec1f[_0x4c29('0xa')]['id'],_0x997c40)[_0x4c29('0xb')](function(_0xed4198){logger[_0x4c29('0xc')](_0x4c29('0xd'),_0x54ec9b,_0x9aec1f[_0x4c29('0xa')]['id']);})[_0x4c29('0xe')](function(_0x49dea5){logger['error'](_0x4c29('0xf'),_0x54ec9b,JSON[_0x4c29('0x10')](_0x49dea5));})[_0x4c29('0x11')](function(){_0x4d4ec6['stop']();});}}catch(_0x196f97){logger['error'](_0x4c29('0xf'),_0x54ec9b,JSON['stringify'](_0x196f97));_0x4d4ec6[_0x4c29('0x12')]();}};};
\ No newline at end of file
+var _0x96a5=['finally','stop','moment','../../../../config/logger','routing','../../rpc/chatInteraction','../../rpc/faxInteraction','../../rpc/whatsappInteraction','YYYY-MM-DD\x20HH:mm:ss','system','channel','Interaction','[%s][CLOSE]\x20interaction\x20%s\x20has\x20been\x20closed!','interaction','catch','error','[%s][CLOSE]\x20%s'];(function(_0x59790c,_0x3f21a9){var _0x58ae3a=function(_0x2f3805){while(--_0x2f3805){_0x59790c['push'](_0x59790c['shift']());}};_0x58ae3a(++_0x3f21a9);}(_0x96a5,0x167));var _0x596a=function(_0x4f6e04,_0x49b803){_0x4f6e04=_0x4f6e04-0x0;var _0x183f53=_0x96a5[_0x4f6e04];return _0x183f53;};'use strict';var moment=require(_0x596a('0x0'));var logger=require(_0x596a('0x1'))(_0x596a('0x2'));var rpc={'chatInteraction':require(_0x596a('0x3')),'openchannelInteraction':require('../../rpc/openchannelInteraction'),'smsInteraction':require('../../rpc/smsInteraction'),'mailInteraction':require('../../rpc/mailInteraction'),'faxInteraction':require(_0x596a('0x4')),'whatsappInteraction':require(_0x596a('0x5'))};exports['consequence']=function(_0x2d676e,_0x1c7910,_0x3852fe,_0x20acdf){return function(_0x2d43b9){try{logger['info']('[%s][CLOSE]\x20reason\x20%s',_0x2d676e,_0x1c7910[0x0]);var _0x4068df={'closed':0x1,'closedAt':moment()['format'](_0x596a('0x6')),'closeReason':_0x596a('0x7'),'disposition':_0x1c7910[0x0]};if(rpc[_0x20acdf[_0x596a('0x8')]+'Interaction']){rpc[_0x20acdf['channel']+_0x596a('0x9')]['update'](_0x20acdf['interaction']['id'],_0x4068df)['then'](function(_0x375ffe){logger['info'](_0x596a('0xa'),_0x2d676e,_0x20acdf[_0x596a('0xb')]['id']);})[_0x596a('0xc')](function(_0x20ebce){logger[_0x596a('0xd')](_0x596a('0xe'),_0x2d676e,JSON['stringify'](_0x20ebce));})[_0x596a('0xf')](function(){_0x2d43b9[_0x596a('0x10')]();});}}catch(_0x2ff9e2){logger[_0x596a('0xd')](_0x596a('0xe'),_0x2d676e,JSON['stringify'](_0x2ff9e2));_0x2d43b9[_0x596a('0x10')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf69d=['endConversation','next','message','lodash','moment','apiai-promise','md5','./utils','routing','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/faxMessage','../../rpc/whatsappMessage','consequence','isNil','interaction','UserId','info','[%s][DIALOGFLOW]\x20%s','Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.','contact','format','YYYY-MM-DD\x20HH:mm:ss','out','channel','phone','chat','ChatWebsiteId','upperFirst','AccountId','account','created','body','getMustacheRender','Message','create','catch','error','stringify','finally','stop','[%s][DIALOGFLOW]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','textRequest','then','dialogflow','result','fulfillment','providerName','providerResponse','metadata'];(function(_0x1203f,_0x554bbc){var _0x365f0a=function(_0x3531d0){while(--_0x3531d0){_0x1203f['push'](_0x1203f['shift']());}};_0x365f0a(++_0x554bbc);}(_0xf69d,0xd3));var _0xdf69=function(_0x4a6f06,_0x5c5345){_0x4a6f06=_0x4a6f06-0x0;var _0x4fd715=_0xf69d[_0x4a6f06];return _0x4fd715;};'use strict';var _=require(_0xdf69('0x0'));var moment=require(_0xdf69('0x1'));var apiai=require(_0xdf69('0x2'));var md5=require(_0xdf69('0x3'));var utils=require(_0xdf69('0x4'));var logger=require('../../../../config/logger')(_0xdf69('0x5'));var rpc={'chatMessage':require(_0xdf69('0x6')),'openchannelMessage':require(_0xdf69('0x7')),'mailMessage':require(_0xdf69('0x8')),'smsMessage':require(_0xdf69('0x9')),'faxMessage':require(_0xdf69('0xa')),'whatsappMessage':require(_0xdf69('0xb'))};exports[_0xdf69('0xc')]=function(_0x1d2501,_0x12c186){return function(_0x18a08e){try{if(!_[_0xdf69('0xd')](this[_0xdf69('0xe')][_0xdf69('0xf')])){logger[_0xdf69('0x10')](_0xdf69('0x11'),_0x1d2501,_0xdf69('0x12'));return _0x18a08e['next']();}var _0x305726={'ContactId':this[_0xdf69('0x13')]['id'],'sentAt':moment()[_0xdf69('0x14')](_0xdf69('0x15')),'direction':_0xdf69('0x16')};if(this[_0xdf69('0x17')]==='sms'||this['channel']==='whatsapp'){_0x305726['phone']=this[_0xdf69('0xe')][_0xdf69('0x18')];}var _0x3b557c=this[_0xdf69('0x17')];if(_0x3b557c===_0xdf69('0x19')){_0x305726[_0xdf69('0x1a')]=this['account']['id'];}else{_0x305726[_[_0xdf69('0x1b')](_0x3b557c)+_0xdf69('0x1c')]=this[_0xdf69('0x1d')]['id'];}_0x305726[_[_0xdf69('0x1b')](_0x3b557c)+'InteractionId']=this[_0xdf69('0xe')]['id'];if(this['interaction'][_0xdf69('0x1e')]){var _0x1899a2=_0x12c186[0x2];if(!_['isEmpty'](_0x1899a2)){_0x305726[_0xdf69('0x1f')]=utils[_0xdf69('0x20')](_0x1899a2,this);return rpc[_0x3b557c+_0xdf69('0x21')][_0xdf69('0x22')](_0x305726)['then'](function(_0x5ae237){logger[_0xdf69('0x10')](_0xdf69('0x11'),_0x1d2501,_0x305726['body']);})[_0xdf69('0x23')](function(_0x259e90){logger[_0xdf69('0x24')]('[%s][DIALOGFLOW]\x20%s',_0x1d2501,JSON[_0xdf69('0x25')](_0x259e90));})[_0xdf69('0x26')](function(){logger['info']('[%s][DIALOGFLOW]\x20Welcome\x20Message\x20has\x20been\x20sent!',_0x1d2501);_0x18a08e[_0xdf69('0x27')]();});}else{logger[_0xdf69('0x10')](_0xdf69('0x28'),_0x1d2501);_0x18a08e['stop']();}}else{var _0x50ef18=this;var _0x5be7dd=apiai(_0x12c186[0x0],{'language':_0x12c186[0x1]||'en'});return _0x5be7dd[_0xdf69('0x29')](this['message'][_0xdf69('0x1f')],{'sessionId':md5(this[_0xdf69('0xe')]['id'])})[_0xdf69('0x2a')](function(_0x54d2ca){_0x50ef18['body'][_0xdf69('0x2b')]=_0x54d2ca;_0x305726[_0xdf69('0x1f')]=_0x54d2ca[_0xdf69('0x2c')][_0xdf69('0x2d')]['speech'];_0x305726[_0xdf69('0x2e')]=_0xdf69('0x2b');_0x305726[_0xdf69('0x2f')]=JSON['stringify'](_0x54d2ca);return rpc[_0x3b557c+_0xdf69('0x21')]['create'](_0x305726)['then'](function(_0x4acf8e){logger['info'](_0xdf69('0x11'),_0x1d2501,_0x305726[_0xdf69('0x1f')]);if(_0x54d2ca['result'][_0xdf69('0x30')][_0xdf69('0x31')]){_0x18a08e[_0xdf69('0x32')]();}else{_0x18a08e[_0xdf69('0x27')]();}})[_0xdf69('0x23')](function(_0x1b57b3){logger[_0xdf69('0x24')](_0xdf69('0x11'),_0x1d2501,JSON[_0xdf69('0x25')](_0x1b57b3));_0x18a08e[_0xdf69('0x32')]();});})[_0xdf69('0x23')](function(_0x2a23ed){logger[_0xdf69('0x24')](_0xdf69('0x11'),_0x1d2501,_0x2a23ed[_0xdf69('0x33')]);_0x18a08e[_0xdf69('0x32')]();});}}catch(_0x1f4602){logger['error'](_0xdf69('0x11'),_0x1d2501,JSON[_0xdf69('0x25')](_0x1f4602));_0x18a08e[_0xdf69('0x27')]();}};};
\ No newline at end of file
+var _0x1c3b=['create','then','info','catch','error','stringify','finally','[%s][DIALOGFLOW]\x20Welcome\x20Message\x20has\x20been\x20sent!','stop','[%s][DIALOGFLOW]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','message','dialogflow','result','fulfillment','speech','providerName','metadata','endConversation','lodash','moment','apiai-promise','../../../../config/logger','routing','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/whatsappMessage','consequence','UserId','[%s][DIALOGFLOW]\x20%s','Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.','next','contact','format','YYYY-MM-DD\x20HH:mm:ss','channel','sms','whatsapp','interaction','phone','chat','ChatWebsiteId','upperFirst','AccountId','account','InteractionId','created','isEmpty','body','Message'];(function(_0x2892da,_0x191a40){var _0x28cff2=function(_0x57023d){while(--_0x57023d){_0x2892da['push'](_0x2892da['shift']());}};_0x28cff2(++_0x191a40);}(_0x1c3b,0xab));var _0xb1c3=function(_0x2b5b39,_0x355d09){_0x2b5b39=_0x2b5b39-0x0;var _0x53beed=_0x1c3b[_0x2b5b39];return _0x53beed;};'use strict';var _=require(_0xb1c3('0x0'));var moment=require(_0xb1c3('0x1'));var apiai=require(_0xb1c3('0x2'));var md5=require('md5');var utils=require('./utils');var logger=require(_0xb1c3('0x3'))(_0xb1c3('0x4'));var rpc={'chatMessage':require(_0xb1c3('0x5')),'openchannelMessage':require(_0xb1c3('0x6')),'mailMessage':require(_0xb1c3('0x7')),'smsMessage':require(_0xb1c3('0x8')),'faxMessage':require('../../rpc/faxMessage'),'whatsappMessage':require(_0xb1c3('0x9'))};exports[_0xb1c3('0xa')]=function(_0x211254,_0x4c26fd){return function(_0x504fc9){try{if(!_['isNil'](this['interaction'][_0xb1c3('0xb')])){logger['info'](_0xb1c3('0xc'),_0x211254,_0xb1c3('0xd'));return _0x504fc9[_0xb1c3('0xe')]();}var _0x47c82b={'ContactId':this[_0xb1c3('0xf')]['id'],'sentAt':moment()[_0xb1c3('0x10')](_0xb1c3('0x11')),'direction':'out'};if(this[_0xb1c3('0x12')]===_0xb1c3('0x13')||this[_0xb1c3('0x12')]===_0xb1c3('0x14')){_0x47c82b['phone']=this[_0xb1c3('0x15')][_0xb1c3('0x16')];}var _0x6b67b5=this['channel'];if(_0x6b67b5===_0xb1c3('0x17')){_0x47c82b[_0xb1c3('0x18')]=this['account']['id'];}else{_0x47c82b[_[_0xb1c3('0x19')](_0x6b67b5)+_0xb1c3('0x1a')]=this[_0xb1c3('0x1b')]['id'];}_0x47c82b[_[_0xb1c3('0x19')](_0x6b67b5)+_0xb1c3('0x1c')]=this['interaction']['id'];if(this[_0xb1c3('0x15')][_0xb1c3('0x1d')]){var _0x26ca1d=_0x4c26fd[0x2];if(!_[_0xb1c3('0x1e')](_0x26ca1d)){_0x47c82b[_0xb1c3('0x1f')]=utils['getMustacheRender'](_0x26ca1d,this);return rpc[_0x6b67b5+_0xb1c3('0x20')][_0xb1c3('0x21')](_0x47c82b)[_0xb1c3('0x22')](function(_0x36b25f){logger[_0xb1c3('0x23')](_0xb1c3('0xc'),_0x211254,_0x47c82b[_0xb1c3('0x1f')]);})[_0xb1c3('0x24')](function(_0x367013){logger[_0xb1c3('0x25')](_0xb1c3('0xc'),_0x211254,JSON[_0xb1c3('0x26')](_0x367013));})[_0xb1c3('0x27')](function(){logger['info'](_0xb1c3('0x28'),_0x211254);_0x504fc9[_0xb1c3('0x29')]();});}else{logger[_0xb1c3('0x23')](_0xb1c3('0x2a'),_0x211254);_0x504fc9[_0xb1c3('0x29')]();}}else{var _0x236dd6=this;var _0x585d4b=apiai(_0x4c26fd[0x0],{'language':_0x4c26fd[0x1]||'en'});return _0x585d4b['textRequest'](this[_0xb1c3('0x2b')][_0xb1c3('0x1f')],{'sessionId':md5(this['interaction']['id'])})[_0xb1c3('0x22')](function(_0x3778fa){_0x236dd6[_0xb1c3('0x1f')][_0xb1c3('0x2c')]=_0x3778fa;_0x47c82b['body']=_0x3778fa[_0xb1c3('0x2d')][_0xb1c3('0x2e')][_0xb1c3('0x2f')];_0x47c82b[_0xb1c3('0x30')]=_0xb1c3('0x2c');_0x47c82b['providerResponse']=JSON[_0xb1c3('0x26')](_0x3778fa);return rpc[_0x6b67b5+_0xb1c3('0x20')][_0xb1c3('0x21')](_0x47c82b)[_0xb1c3('0x22')](function(_0x3a55e5){logger[_0xb1c3('0x23')](_0xb1c3('0xc'),_0x211254,_0x47c82b[_0xb1c3('0x1f')]);if(_0x3778fa[_0xb1c3('0x2d')][_0xb1c3('0x31')][_0xb1c3('0x32')]){_0x504fc9[_0xb1c3('0xe')]();}else{_0x504fc9[_0xb1c3('0x29')]();}})['catch'](function(_0x2b82ff){logger['error'](_0xb1c3('0xc'),_0x211254,JSON['stringify'](_0x2b82ff));_0x504fc9[_0xb1c3('0xe')]();});})[_0xb1c3('0x24')](function(_0x194f94){logger[_0xb1c3('0x25')](_0xb1c3('0xc'),_0x211254,_0x194f94[_0xb1c3('0x2b')]);_0x504fc9['next']();});}}catch(_0x5168d5){logger[_0xb1c3('0x25')](_0xb1c3('0xc'),_0x211254,JSON[_0xb1c3('0x26')](_0x5168d5));_0x504fc9[_0xb1c3('0x29')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x81e2=['stringify','consequence','interaction','Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.','contact','format','YYYY-MM-DD\x20HH:mm:ss','channel','sms','whatsapp','phone','chat','ChatWebsiteId','account','AccountId','upperFirst','InteractionId','created','isEmpty','getMustacheRender','finally','replace','SessionsClient','sessionPath','message','detectIntent','length','diagnosticInfo','queryResult','fields','boolValue','DIALOGFLOWV2_ACTION','action','DIALOGFLOWV2_ENDCONVERSATION','intent','displayName','DIALOGFLOWV2_ISFALLBACKINTENT','DIALOGFLOWV2_LANGUAGECODE','languageCode','DIALOGFLOWV2_QUERYTEXT','intentDetectionConfidence','providerName','providerResponse','fulfillmentText','push','next','stop','lodash','dialogflow','md5','bluebird','routing','./utils','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/faxMessage','../../rpc/whatsappMessage','clone','body','Message','create','then','info','[%s][DIALOGFLOWV2]\x20%s','catch','error'];(function(_0x158ac8,_0x6ed71b){var _0x17b1d6=function(_0x5c8822){while(--_0x5c8822){_0x158ac8['push'](_0x158ac8['shift']());}};_0x17b1d6(++_0x6ed71b);}(_0x81e2,0x1c1));var _0x281e=function(_0xb22371,_0xe5c350){_0xb22371=_0xb22371-0x0;var _0x3e03b7=_0x81e2[_0xb22371];return _0x3e03b7;};'use strict';var _=require(_0x281e('0x0'));var dialogflow=require(_0x281e('0x1'));var md5=require(_0x281e('0x2'));var moment=require('moment');var Promise=require(_0x281e('0x3'));var logger=require('../../../../config/logger')(_0x281e('0x4'));var utils=require(_0x281e('0x5'));var rpc={'chatMessage':require(_0x281e('0x6')),'openchannelMessage':require(_0x281e('0x7')),'mailMessage':require(_0x281e('0x8')),'smsMessage':require('../../rpc/smsMessage'),'faxMessage':require(_0x281e('0x9')),'whatsappMessage':require(_0x281e('0xa'))};function createMessage(_0x5aa0ee,_0x100159,_0x385e23,_0x5b0058){return new Promise(function(_0x208afb,_0x454f94){var _0x16473d=_[_0x281e('0xb')](_0x385e23);_0x16473d[_0x281e('0xc')]=_0x5b0058;return rpc[_0x100159+_0x281e('0xd')][_0x281e('0xe')](_0x16473d)[_0x281e('0xf')](function(){logger[_0x281e('0x10')](_0x281e('0x11'),_0x5aa0ee,_0x16473d['body']);_0x208afb();})[_0x281e('0x12')](function(_0x2cf822){logger[_0x281e('0x13')](_0x281e('0x11'),_0x5aa0ee,JSON[_0x281e('0x14')](_0x2cf822));_0x454f94(_0x2cf822);});});}exports[_0x281e('0x15')]=function(_0x3a61b6,_0x37a69d){return function(_0xd44100){try{if(!_['isNil'](this[_0x281e('0x16')]['UserId'])){logger['info'](_0x281e('0x11'),_0x3a61b6,_0x281e('0x17'));return _0xd44100['next']();}var _0x2b78fa={'ContactId':this[_0x281e('0x18')]['id'],'sentAt':moment()[_0x281e('0x19')](_0x281e('0x1a')),'direction':'out'};if(this[_0x281e('0x1b')]===_0x281e('0x1c')||this['channel']===_0x281e('0x1d')){_0x2b78fa['phone']=this[_0x281e('0x16')][_0x281e('0x1e')];}var _0x27fddd=this[_0x281e('0x1b')];if(_0x27fddd===_0x281e('0x1f')){_0x2b78fa[_0x281e('0x20')]=this[_0x281e('0x21')]['id'];}else{_0x2b78fa[_['upperFirst'](_0x27fddd)+_0x281e('0x22')]=this[_0x281e('0x21')]['id'];}_0x2b78fa[_[_0x281e('0x23')](_0x27fddd)+_0x281e('0x24')]=this[_0x281e('0x16')]['id'];if(this[_0x281e('0x16')][_0x281e('0x25')]){var _0x318b92=_0x37a69d[0x4];if(!_[_0x281e('0x26')](_0x318b92)){_0x2b78fa[_0x281e('0xc')]=utils[_0x281e('0x27')](_0x318b92,this);return rpc[_0x27fddd+_0x281e('0xd')][_0x281e('0xe')](_0x2b78fa)['then'](function(_0x4d7af2){logger[_0x281e('0x10')](_0x281e('0x11'),_0x3a61b6,_0x2b78fa[_0x281e('0xc')]);})[_0x281e('0x12')](function(_0x2328df){logger[_0x281e('0x13')](_0x281e('0x11'),_0x3a61b6,JSON[_0x281e('0x14')](_0x2328df));})[_0x281e('0x28')](function(){logger[_0x281e('0x10')]('[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20has\x20been\x20sent!',_0x3a61b6);_0xd44100['stop']();});}else{logger[_0x281e('0x10')]('[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!',_0x3a61b6);_0xd44100['stop']();}}else{var _0x5042c1=this;var _0x4dab7d=_0x37a69d[0x2][_0x281e('0x29')](/\\n/g,'\x0a');var _0x11b313={'credentials':{'private_key':_0x4dab7d,'client_email':_0x37a69d[0x1]}};var _0x29c20b=new dialogflow[(_0x281e('0x2a'))](_0x11b313);var _0x45c8d5=_0x29c20b[_0x281e('0x2b')](_0x37a69d[0x0],md5(_0x5042c1[_0x281e('0x16')]['id']));var _0x3db984={'session':_0x45c8d5,'queryInput':{'text':{'text':_0x5042c1[_0x281e('0x2c')][_0x281e('0xc')],'languageCode':_0x37a69d[0x3]||'en'}}};return _0x29c20b[_0x281e('0x2d')](_0x3db984)['then'](function(_0x498b21){if(_0x498b21&&_0x498b21[_0x281e('0x2e')]){_0x5042c1[_0x281e('0xc')]['dialogflowV2']=_0x498b21;var _0x507dd8=_0x498b21[0x0];var _0x3ed3aa=_0x507dd8['queryResult'][_0x281e('0x2f')]&&_0x507dd8[_0x281e('0x30')][_0x281e('0x2f')][_0x281e('0x31')]?_0x507dd8[_0x281e('0x30')]['diagnosticInfo'][_0x281e('0x31')]['end_conversation'][_0x281e('0x32')]:![];_0x5042c1[_0x281e('0xc')][_0x281e('0x33')]=_0x507dd8[_0x281e('0x30')][_0x281e('0x34')];_0x5042c1[_0x281e('0xc')]['DIALOGFLOWV2_ALLREQUIREDPARAMSPRESENT']=_0x507dd8[_0x281e('0x30')]['allRequiredParamsPresent'];_0x5042c1[_0x281e('0xc')][_0x281e('0x35')]=_0x507dd8['queryResult'][_0x281e('0x2f')]&&_0x507dd8['queryResult']['diagnosticInfo'][_0x281e('0x31')]?_0x507dd8[_0x281e('0x30')][_0x281e('0x2f')]['fields']['end_conversation'][_0x281e('0x32')]:![];_0x5042c1[_0x281e('0xc')]['DIALOGFLOWV2_INTENTNAME']=_0x507dd8[_0x281e('0x30')][_0x281e('0x36')]['name'];_0x5042c1[_0x281e('0xc')]['DIALOGFLOWV2_INTENTDISPLAYNAME']=_0x507dd8[_0x281e('0x30')][_0x281e('0x36')][_0x281e('0x37')];_0x5042c1[_0x281e('0xc')][_0x281e('0x38')]=_0x507dd8[_0x281e('0x30')]['intent']['isFallback'];_0x5042c1['body'][_0x281e('0x39')]=_0x507dd8[_0x281e('0x30')][_0x281e('0x3a')];_0x5042c1[_0x281e('0xc')][_0x281e('0x3b')]=_0x507dd8[_0x281e('0x30')]['queryText'];_0x5042c1[_0x281e('0xc')]['DIALOGFLOWV2_SCORE']=_0x507dd8[_0x281e('0x30')][_0x281e('0x3c')];_0x2b78fa[_0x281e('0x3d')]='dialogflowV2';_0x2b78fa[_0x281e('0x3e')]=JSON[_0x281e('0x14')](_0x498b21);var _0x343422=[];for(var _0x2ec038=0x0;_0x2ec038<_0x498b21[_0x281e('0x2e')];_0x2ec038++){var _0x447747=_0x498b21[_0x2ec038];if(_0x447747&&_0x447747[_0x281e('0x30')]&&_0x447747[_0x281e('0x30')][_0x281e('0x3f')]){_0x343422[_0x281e('0x40')](createMessage(_0x3a61b6,_0x27fddd,_0x2b78fa,_0x447747[_0x281e('0x30')][_0x281e('0x3f')]));}}return Promise['all'](_0x343422)[_0x281e('0xf')](function(){if(_0x3ed3aa){_0xd44100[_0x281e('0x41')]();}else{_0xd44100[_0x281e('0x42')]();}})[_0x281e('0x12')](function(_0x4c7db7){logger['error'](_0x281e('0x11'),_0x3a61b6,JSON[_0x281e('0x14')](_0x4c7db7));_0xd44100[_0x281e('0x41')]();});}})[_0x281e('0x12')](function(_0x4490eb){logger[_0x281e('0x13')](_0x281e('0x11'),_0x3a61b6,_0x4490eb['message']);_0xd44100[_0x281e('0x41')]();});}}catch(_0x40ca1d){logger[_0x281e('0x13')](_0x281e('0x11'),_0x3a61b6,JSON[_0x281e('0x14')](_0x40ca1d));_0xd44100[_0x281e('0x42')]();}};};
\ No newline at end of file
+var _0xeedf=['action','DIALOGFLOWV2_ALLREQUIREDPARAMSPRESENT','DIALOGFLOWV2_ENDCONVERSATION','DIALOGFLOWV2_INTENTNAME','intent','name','DIALOGFLOWV2_INTENTDISPLAYNAME','displayName','DIALOGFLOWV2_ISFALLBACKINTENT','isFallback','languageCode','DIALOGFLOWV2_SCORE','providerName','providerResponse','push','message','lodash','dialogflow','md5','bluebird','routing','./utils','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/smsMessage','../../rpc/faxMessage','body','Message','create','then','[%s][DIALOGFLOWV2]\x20%s','catch','stringify','consequence','isNil','UserId','info','Agent\x20is\x20managing\x20the\x20interaction.\x20Go\x20to\x20next\x20application.','next','contact','format','YYYY-MM-DD\x20HH:mm:ss','out','channel','sms','whatsapp','interaction','phone','chat','ChatWebsiteId','account','upperFirst','AccountId','InteractionId','isEmpty','getMustacheRender','error','[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20has\x20been\x20sent!','[%s][DIALOGFLOWV2]\x20Welcome\x20Message\x20is\x20empty.\x20It\x20will\x20wait\x20for\x20a\x20message\x20from\x20customer!','stop','replace','sessionPath','detectIntent','length','dialogflowV2','queryResult','diagnosticInfo','fields','end_conversation','boolValue','DIALOGFLOWV2_ACTION'];(function(_0x3dee73,_0xb749c){var _0x2a28c0=function(_0xca9b76){while(--_0xca9b76){_0x3dee73['push'](_0x3dee73['shift']());}};_0x2a28c0(++_0xb749c);}(_0xeedf,0x12c));var _0xfeed=function(_0x1e0b5b,_0x26eb91){_0x1e0b5b=_0x1e0b5b-0x0;var _0x15367d=_0xeedf[_0x1e0b5b];return _0x15367d;};'use strict';var _=require(_0xfeed('0x0'));var dialogflow=require(_0xfeed('0x1'));var md5=require(_0xfeed('0x2'));var moment=require('moment');var Promise=require(_0xfeed('0x3'));var logger=require('../../../../config/logger')(_0xfeed('0x4'));var utils=require(_0xfeed('0x5'));var rpc={'chatMessage':require(_0xfeed('0x6')),'openchannelMessage':require(_0xfeed('0x7')),'mailMessage':require('../../rpc/mailMessage'),'smsMessage':require(_0xfeed('0x8')),'faxMessage':require(_0xfeed('0x9')),'whatsappMessage':require('../../rpc/whatsappMessage')};function createMessage(_0x19f2de,_0x52286c,_0x22fd66,_0x5c147d){return new Promise(function(_0x124bdf,_0x55a598){var _0x527ea1=_['clone'](_0x22fd66);_0x527ea1[_0xfeed('0xa')]=_0x5c147d;return rpc[_0x52286c+_0xfeed('0xb')][_0xfeed('0xc')](_0x527ea1)[_0xfeed('0xd')](function(){logger['info'](_0xfeed('0xe'),_0x19f2de,_0x527ea1[_0xfeed('0xa')]);_0x124bdf();})[_0xfeed('0xf')](function(_0x1aa14a){logger['error']('[%s][DIALOGFLOWV2]\x20%s',_0x19f2de,JSON[_0xfeed('0x10')](_0x1aa14a));_0x55a598(_0x1aa14a);});});}exports[_0xfeed('0x11')]=function(_0x8b5c3e,_0xd0523b){return function(_0x23b516){try{if(!_[_0xfeed('0x12')](this['interaction'][_0xfeed('0x13')])){logger[_0xfeed('0x14')](_0xfeed('0xe'),_0x8b5c3e,_0xfeed('0x15'));return _0x23b516[_0xfeed('0x16')]();}var _0x31d5f5={'ContactId':this[_0xfeed('0x17')]['id'],'sentAt':moment()[_0xfeed('0x18')](_0xfeed('0x19')),'direction':_0xfeed('0x1a')};if(this[_0xfeed('0x1b')]===_0xfeed('0x1c')||this[_0xfeed('0x1b')]===_0xfeed('0x1d')){_0x31d5f5['phone']=this[_0xfeed('0x1e')][_0xfeed('0x1f')];}var _0x1acdd7=this[_0xfeed('0x1b')];if(_0x1acdd7===_0xfeed('0x20')){_0x31d5f5[_0xfeed('0x21')]=this[_0xfeed('0x22')]['id'];}else{_0x31d5f5[_[_0xfeed('0x23')](_0x1acdd7)+_0xfeed('0x24')]=this[_0xfeed('0x22')]['id'];}_0x31d5f5[_['upperFirst'](_0x1acdd7)+_0xfeed('0x25')]=this[_0xfeed('0x1e')]['id'];if(this[_0xfeed('0x1e')]['created']){var _0x149ebe=_0xd0523b[0x4];if(!_[_0xfeed('0x26')](_0x149ebe)){_0x31d5f5[_0xfeed('0xa')]=utils[_0xfeed('0x27')](_0x149ebe,this);return rpc[_0x1acdd7+_0xfeed('0xb')][_0xfeed('0xc')](_0x31d5f5)[_0xfeed('0xd')](function(_0x12fd9c){logger[_0xfeed('0x14')](_0xfeed('0xe'),_0x8b5c3e,_0x31d5f5[_0xfeed('0xa')]);})[_0xfeed('0xf')](function(_0x46957d){logger[_0xfeed('0x28')]('[%s][DIALOGFLOWV2]\x20%s',_0x8b5c3e,JSON['stringify'](_0x46957d));})['finally'](function(){logger[_0xfeed('0x14')](_0xfeed('0x29'),_0x8b5c3e);_0x23b516['stop']();});}else{logger[_0xfeed('0x14')](_0xfeed('0x2a'),_0x8b5c3e);_0x23b516[_0xfeed('0x2b')]();}}else{var _0x69ebae=this;var _0x50e114=_0xd0523b[0x2][_0xfeed('0x2c')](/\\n/g,'\x0a');var _0x330942={'credentials':{'private_key':_0x50e114,'client_email':_0xd0523b[0x1]}};var _0x4487c5=new dialogflow['SessionsClient'](_0x330942);var _0x228e71=_0x4487c5[_0xfeed('0x2d')](_0xd0523b[0x0],md5(_0x69ebae['interaction']['id']));var _0x44ef4e={'session':_0x228e71,'queryInput':{'text':{'text':_0x69ebae['message'][_0xfeed('0xa')],'languageCode':_0xd0523b[0x3]||'en'}}};return _0x4487c5[_0xfeed('0x2e')](_0x44ef4e)[_0xfeed('0xd')](function(_0x137441){if(_0x137441&&_0x137441[_0xfeed('0x2f')]){_0x69ebae[_0xfeed('0xa')][_0xfeed('0x30')]=_0x137441;var _0x387be2=_0x137441[0x0];var _0x460649=_0x387be2[_0xfeed('0x31')][_0xfeed('0x32')]&&_0x387be2['queryResult']['diagnosticInfo'][_0xfeed('0x33')]?_0x387be2[_0xfeed('0x31')][_0xfeed('0x32')][_0xfeed('0x33')][_0xfeed('0x34')][_0xfeed('0x35')]:![];_0x69ebae[_0xfeed('0xa')][_0xfeed('0x36')]=_0x387be2['queryResult'][_0xfeed('0x37')];_0x69ebae['body'][_0xfeed('0x38')]=_0x387be2[_0xfeed('0x31')]['allRequiredParamsPresent'];_0x69ebae[_0xfeed('0xa')][_0xfeed('0x39')]=_0x387be2['queryResult'][_0xfeed('0x32')]&&_0x387be2['queryResult'][_0xfeed('0x32')][_0xfeed('0x33')]?_0x387be2[_0xfeed('0x31')][_0xfeed('0x32')]['fields'][_0xfeed('0x34')]['boolValue']:![];_0x69ebae['body'][_0xfeed('0x3a')]=_0x387be2[_0xfeed('0x31')][_0xfeed('0x3b')][_0xfeed('0x3c')];_0x69ebae[_0xfeed('0xa')][_0xfeed('0x3d')]=_0x387be2[_0xfeed('0x31')][_0xfeed('0x3b')][_0xfeed('0x3e')];_0x69ebae['body'][_0xfeed('0x3f')]=_0x387be2[_0xfeed('0x31')]['intent'][_0xfeed('0x40')];_0x69ebae[_0xfeed('0xa')]['DIALOGFLOWV2_LANGUAGECODE']=_0x387be2[_0xfeed('0x31')][_0xfeed('0x41')];_0x69ebae[_0xfeed('0xa')]['DIALOGFLOWV2_QUERYTEXT']=_0x387be2[_0xfeed('0x31')]['queryText'];_0x69ebae['body'][_0xfeed('0x42')]=_0x387be2[_0xfeed('0x31')]['intentDetectionConfidence'];_0x31d5f5[_0xfeed('0x43')]=_0xfeed('0x30');_0x31d5f5[_0xfeed('0x44')]=JSON[_0xfeed('0x10')](_0x137441);var _0x45add8=[];for(var _0x1b569f=0x0;_0x1b569f<_0x137441['length'];_0x1b569f++){var _0xf9ae83=_0x137441[_0x1b569f];if(_0xf9ae83&&_0xf9ae83[_0xfeed('0x31')]&&_0xf9ae83[_0xfeed('0x31')]['fulfillmentText']){_0x45add8[_0xfeed('0x45')](createMessage(_0x8b5c3e,_0x1acdd7,_0x31d5f5,_0xf9ae83[_0xfeed('0x31')]['fulfillmentText']));}}return Promise['all'](_0x45add8)[_0xfeed('0xd')](function(){if(_0x460649){_0x23b516['next']();}else{_0x23b516['stop']();}})[_0xfeed('0xf')](function(_0x3db4de){logger[_0xfeed('0x28')](_0xfeed('0xe'),_0x8b5c3e,JSON[_0xfeed('0x10')](_0x3db4de));_0x23b516['next']();});}})['catch'](function(_0x280855){logger[_0xfeed('0x28')](_0xfeed('0xe'),_0x8b5c3e,_0x280855[_0xfeed('0x46')]);_0x23b516['next']();});}}catch(_0x33c91e){logger['error'](_0xfeed('0xe'),_0x8b5c3e,JSON[_0xfeed('0x10')](_0x33c91e));_0x23b516['stop']();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x57e6=['[%s][GOTOIF]\x20priority\x20%s\x20not\x20found','[%s][GOTOIF]\x20eval\x20error:\x20%s','stop','[%s][GOTOIF]\x20%s','lodash','./utils','../../../../config/logger','routing','string','condition\x20is\x20a\x20string\x20and\x20it\x20is\x20required','priority\x20true\x20is\x20a\x20number','number','priority\x20false\x20is\x20a\x20number','consequence','replace','validate','length','error','map','message','join','priorityTrue','priorityFalse','info','[%s][GOTOIF]\x20condition\x20%s\x20is\x20%s\x20try\x20goto\x20priority\x20%s','condition','next','findIndex','rules','[%s][GOTOIF]\x20priority\x20%s\x20found\x20at\x20index:\x20%s'];(function(_0x8e7440,_0x343427){var _0x1bb618=function(_0x42f615){while(--_0x42f615){_0x8e7440['push'](_0x8e7440['shift']());}};_0x1bb618(++_0x343427);}(_0x57e6,0xb8));var _0x657e=function(_0x2ac4af,_0x288c53){_0x2ac4af=_0x2ac4af-0x0;var _0x3a36df=_0x57e6[_0x2ac4af];return _0x3a36df;};'use strict';var schema=require('validate');var _=require(_0x657e('0x0'));var htmlToText=require('html-to-text');var utils=require(_0x657e('0x1'));var logger=require(_0x657e('0x2'))(_0x657e('0x3'));var gotoif=schema({'condition':{'type':_0x657e('0x4'),'required':!![],'message':_0x657e('0x5')},'priorityTrue':{'type':'number','message':_0x657e('0x6')},'priorityFalse':{'type':_0x657e('0x7'),'message':_0x657e('0x8')}});exports[_0x657e('0x9')]=function(_0x2bf746,_0x475fee){return function(_0x4198ba){try{var _0x4942a2={'condition':htmlToText['fromString'](utils['getMustacheRender'](_0x475fee[0x0],this),{'wordwrap':![]})[_0x657e('0xa')](/<\/?[^>]+(>|$)/g,''),'priorityTrue':_0x475fee[0x1],'priorityFalse':_0x475fee[0x2]};var _0x868e79=gotoif[_0x657e('0xb')](_0x4942a2,{'typecast':!![]});if(_0x868e79[_0x657e('0xc')]){logger[_0x657e('0xd')]('[%s][GOTOIF]\x20%s',_0x2bf746,_[_0x657e('0xe')](_0x868e79,_0x657e('0xf'))[_0x657e('0x10')](',\x20'));_0x4198ba['stop']();}else{try{var _0xa4023d=eval('('+_0x4942a2['condition']+')');var _0x13df33=_0xa4023d?_0x4942a2[_0x657e('0x11')]:_0x4942a2[_0x657e('0x12')];logger[_0x657e('0x13')](_0x657e('0x14'),_0x2bf746,_0x4942a2[_0x657e('0x15')],_0xa4023d,_0x13df33||_0x657e('0x16'));if(_0x13df33){var _0x133ca0=_[_0x657e('0x17')](_0x4198ba[_0x657e('0x18')](),{'p':_0x13df33});if(_0x133ca0>=0x0){logger[_0x657e('0x13')](_0x657e('0x19'),_0x2bf746,_0x13df33||_0x657e('0x16'),_0x133ca0);_0x4198ba[_0x657e('0x16')](_0x133ca0);}else{logger[_0x657e('0x13')](_0x657e('0x1a'),_0x2bf746,_0x13df33||_0x657e('0x16'));_0x4198ba['stop']();}}else{_0x4198ba[_0x657e('0x16')]();}}catch(_0x801186){logger[_0x657e('0xd')](_0x657e('0x1b'),_0x2bf746,_0x801186['message']);_0x4198ba[_0x657e('0x1c')]();}}}catch(_0x1d7888){logger[_0x657e('0xd')](_0x657e('0x1d'),_0x2bf746,JSON['stringify'](_0x1d7888));_0x4198ba['stop']();}};};
\ No newline at end of file
+var _0x8dae=['consequence','fromString','getMustacheRender','replace','error','[%s][GOTOIF]\x20%s','map','join','stop','condition','priorityFalse','info','[%s][GOTOIF]\x20condition\x20%s\x20is\x20%s\x20try\x20goto\x20priority\x20%s','next','findIndex','rules','[%s][GOTOIF]\x20priority\x20%s\x20found\x20at\x20index:\x20%s','[%s][GOTOIF]\x20priority\x20%s\x20not\x20found','[%s][GOTOIF]\x20eval\x20error:\x20%s','message','stringify','validate','lodash','html-to-text','../../../../config/logger','routing','string','condition\x20is\x20a\x20string\x20and\x20it\x20is\x20required','number','priority\x20true\x20is\x20a\x20number','priority\x20false\x20is\x20a\x20number'];(function(_0xbd08b4,_0x4790ed){var _0x314f1e=function(_0x161589){while(--_0x161589){_0xbd08b4['push'](_0xbd08b4['shift']());}};_0x314f1e(++_0x4790ed);}(_0x8dae,0xcf));var _0xe8da=function(_0x494de3,_0x8f453b){_0x494de3=_0x494de3-0x0;var _0x13fc39=_0x8dae[_0x494de3];return _0x13fc39;};'use strict';var schema=require(_0xe8da('0x0'));var _=require(_0xe8da('0x1'));var htmlToText=require(_0xe8da('0x2'));var utils=require('./utils');var logger=require(_0xe8da('0x3'))(_0xe8da('0x4'));var gotoif=schema({'condition':{'type':_0xe8da('0x5'),'required':!![],'message':_0xe8da('0x6')},'priorityTrue':{'type':_0xe8da('0x7'),'message':_0xe8da('0x8')},'priorityFalse':{'type':_0xe8da('0x7'),'message':_0xe8da('0x9')}});exports[_0xe8da('0xa')]=function(_0x804a7b,_0x2be030){return function(_0x51dc60){try{var _0x58e8e1={'condition':htmlToText[_0xe8da('0xb')](utils[_0xe8da('0xc')](_0x2be030[0x0],this),{'wordwrap':![]})[_0xe8da('0xd')](/<\/?[^>]+(>|$)/g,''),'priorityTrue':_0x2be030[0x1],'priorityFalse':_0x2be030[0x2]};var _0x2f8384=gotoif[_0xe8da('0x0')](_0x58e8e1,{'typecast':!![]});if(_0x2f8384['length']){logger[_0xe8da('0xe')](_0xe8da('0xf'),_0x804a7b,_[_0xe8da('0x10')](_0x2f8384,'message')[_0xe8da('0x11')](',\x20'));_0x51dc60[_0xe8da('0x12')]();}else{try{var _0x1e774c=eval('('+_0x58e8e1[_0xe8da('0x13')]+')');var _0x562e85=_0x1e774c?_0x58e8e1['priorityTrue']:_0x58e8e1[_0xe8da('0x14')];logger[_0xe8da('0x15')](_0xe8da('0x16'),_0x804a7b,_0x58e8e1[_0xe8da('0x13')],_0x1e774c,_0x562e85||_0xe8da('0x17'));if(_0x562e85){var _0x4a7c86=_[_0xe8da('0x18')](_0x51dc60[_0xe8da('0x19')](),{'p':_0x562e85});if(_0x4a7c86>=0x0){logger[_0xe8da('0x15')](_0xe8da('0x1a'),_0x804a7b,_0x562e85||_0xe8da('0x17'),_0x4a7c86);_0x51dc60[_0xe8da('0x17')](_0x4a7c86);}else{logger['info'](_0xe8da('0x1b'),_0x804a7b,_0x562e85||_0xe8da('0x17'));_0x51dc60[_0xe8da('0x12')]();}}else{_0x51dc60[_0xe8da('0x17')]();}}catch(_0x5a57d7){logger[_0xe8da('0xe')](_0xe8da('0x1c'),_0x804a7b,_0x5a57d7[_0xe8da('0x1d')]);_0x51dc60[_0xe8da('0x12')]();}}}catch(_0x11811d){logger[_0xe8da('0xe')](_0xe8da('0xf'),_0x804a7b,JSON[_0xe8da('0x1e')](_0x11811d));_0x51dc60[_0xe8da('0x12')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xba9f=['next','[%s][GOTOP]\x20priority\x20%s\x20not\x20found','stringify','validate','../../../../config/logger','number','consequence','length','error','[%s][GOTOP]\x20%s','map','message','join','stop','info','[%s][GOTOP]\x20priority\x20%s','priority','findIndex','rules'];(function(_0x333d4d,_0x50440f){var _0x21b5ca=function(_0x1c7080){while(--_0x1c7080){_0x333d4d['push'](_0x333d4d['shift']());}};_0x21b5ca(++_0x50440f);}(_0xba9f,0x192));var _0xfba9=function(_0x4d8f22,_0x300d3b){_0x4d8f22=_0x4d8f22-0x0;var _0x2af781=_0xba9f[_0x4d8f22];return _0x2af781;};'use strict';var schema=require(_0xfba9('0x0'));var _=require('lodash');var logger=require(_0xfba9('0x1'))('routing');var gotop=schema({'priority':{'type':_0xfba9('0x2'),'required':!![],'message':'priority\x20is\x20a\x20number\x20and\x20it\x20is\x20required'}});exports[_0xfba9('0x3')]=function(_0x51cc15,_0x3c1489){return function(_0x7ef51d){try{var _0x54735c={'priority':_0x3c1489[0x0]};var _0x354979=gotop[_0xfba9('0x0')](_0x54735c,{'typecast':!![]});if(_0x354979[_0xfba9('0x4')]){logger[_0xfba9('0x5')](_0xfba9('0x6'),_0x51cc15,_[_0xfba9('0x7')](_0x354979,_0xfba9('0x8'))[_0xfba9('0x9')](',\x20'));_0x7ef51d[_0xfba9('0xa')]();}else{logger[_0xfba9('0xb')](_0xfba9('0xc'),_0x51cc15,_0x54735c['priority']);if(_0x54735c[_0xfba9('0xd')]){var _0x270e48=_[_0xfba9('0xe')](_0x7ef51d[_0xfba9('0xf')](),{'p':_0x54735c[_0xfba9('0xd')]});if(_0x270e48>=0x0){logger[_0xfba9('0xb')]('[%s][GOTOP]\x20priority\x20%s\x20found\x20at\x20index:\x20%s',_0x51cc15,_0x54735c[_0xfba9('0xd')]||_0xfba9('0x10'),_0x270e48);_0x7ef51d[_0xfba9('0x10')](_0x270e48);}else{logger[_0xfba9('0xb')](_0xfba9('0x11'),_0x51cc15,_0x54735c['priority']||_0xfba9('0x10'));_0x7ef51d[_0xfba9('0xa')]();}}else{_0x7ef51d[_0xfba9('0x10')]();}}}catch(_0x35c9ed){logger[_0xfba9('0x5')](_0xfba9('0x6'),_0x51cc15,JSON[_0xfba9('0x12')](_0x35c9ed));_0x7ef51d['stop']();}};};
\ No newline at end of file
+var _0x56bd=['findIndex','rules','[%s][GOTOP]\x20priority\x20%s\x20found\x20at\x20index:\x20%s','next','[%s][GOTOP]\x20priority\x20%s\x20not\x20found','stringify','lodash','../../../../config/logger','routing','number','priority\x20is\x20a\x20number\x20and\x20it\x20is\x20required','validate','length','error','[%s][GOTOP]\x20%s','map','message','join','stop','info','priority'];(function(_0x1646fa,_0x4e5bd7){var _0x5a47a5=function(_0x2db820){while(--_0x2db820){_0x1646fa['push'](_0x1646fa['shift']());}};_0x5a47a5(++_0x4e5bd7);}(_0x56bd,0x99));var _0xd56b=function(_0x3b8023,_0x190e40){_0x3b8023=_0x3b8023-0x0;var _0x5b18b0=_0x56bd[_0x3b8023];return _0x5b18b0;};'use strict';var schema=require('validate');var _=require(_0xd56b('0x0'));var logger=require(_0xd56b('0x1'))(_0xd56b('0x2'));var gotop=schema({'priority':{'type':_0xd56b('0x3'),'required':!![],'message':_0xd56b('0x4')}});exports['consequence']=function(_0x18ec3b,_0x1773eb){return function(_0x4c4d43){try{var _0x5c82e2={'priority':_0x1773eb[0x0]};var _0x3ce196=gotop[_0xd56b('0x5')](_0x5c82e2,{'typecast':!![]});if(_0x3ce196[_0xd56b('0x6')]){logger[_0xd56b('0x7')](_0xd56b('0x8'),_0x18ec3b,_[_0xd56b('0x9')](_0x3ce196,_0xd56b('0xa'))[_0xd56b('0xb')](',\x20'));_0x4c4d43[_0xd56b('0xc')]();}else{logger[_0xd56b('0xd')]('[%s][GOTOP]\x20priority\x20%s',_0x18ec3b,_0x5c82e2[_0xd56b('0xe')]);if(_0x5c82e2[_0xd56b('0xe')]){var _0x5dc68c=_[_0xd56b('0xf')](_0x4c4d43[_0xd56b('0x10')](),{'p':_0x5c82e2[_0xd56b('0xe')]});if(_0x5dc68c>=0x0){logger[_0xd56b('0xd')](_0xd56b('0x11'),_0x18ec3b,_0x5c82e2[_0xd56b('0xe')]||'next',_0x5dc68c);_0x4c4d43[_0xd56b('0x12')](_0x5dc68c);}else{logger[_0xd56b('0xd')](_0xd56b('0x13'),_0x18ec3b,_0x5c82e2[_0xd56b('0xe')]||_0xd56b('0x12'));_0x4c4d43['stop']();}}else{_0x4c4d43['next']();}}}catch(_0x5ba128){logger['error'](_0xd56b('0x8'),_0x18ec3b,JSON[_0xd56b('0x14')](_0x5ba128));_0x4c4d43[_0xd56b('0xc')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x2b79=['../../rpc/faxMessage','../../rpc/whatsappMessage','consequence','getMustacheRender','contact','chat','ChatWebsiteId','upperFirst','channel','AccountId','InteractionId','interaction','Message','create','then','info','next','catch','error','stringify','stop','[%s][MESSAGE]\x20%s','./utils','../../../../config/logger','routing','../../rpc/chatMessage','../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/smsMessage'];(function(_0x59e125,_0x55309c){var _0x4d6539=function(_0x1f329c){while(--_0x1f329c){_0x59e125['push'](_0x59e125['shift']());}};_0x4d6539(++_0x55309c);}(_0x2b79,0x138));var _0x92b7=function(_0x754ab4,_0x56daa7){_0x754ab4=_0x754ab4-0x0;var _0x34079a=_0x2b79[_0x754ab4];return _0x34079a;};'use strict';var _=require('lodash');var utils=require(_0x92b7('0x0'));var logger=require(_0x92b7('0x1'))(_0x92b7('0x2'));var rpc={'chatMessage':require(_0x92b7('0x3')),'openchannelMessage':require(_0x92b7('0x4')),'mailMessage':require(_0x92b7('0x5')),'smsMessage':require(_0x92b7('0x6')),'faxMessage':require(_0x92b7('0x7')),'whatsappMessage':require(_0x92b7('0x8'))};exports[_0x92b7('0x9')]=function(_0x8baab,_0x510a54){return function(_0x2c1628){try{var _0x55817e={'body':utils[_0x92b7('0xa')](_0x510a54[0x0],this),'ContactId':this[_0x92b7('0xb')]['id']};if(this['channel']===_0x92b7('0xc')){_0x55817e[_0x92b7('0xd')]=this['account']['id'];}else{_0x55817e[_[_0x92b7('0xe')](this[_0x92b7('0xf')])+_0x92b7('0x10')]=this['account']['id'];}_0x55817e[_[_0x92b7('0xe')](this[_0x92b7('0xf')])+_0x92b7('0x11')]=this[_0x92b7('0x12')]['id'];if(rpc[this[_0x92b7('0xf')]+_0x92b7('0x13')]){return rpc[this['channel']+'Message'][_0x92b7('0x14')](_0x55817e)[_0x92b7('0x15')](function(_0xeaafbd){logger[_0x92b7('0x16')]('[%s][MESSAGE]\x20%s',_0x8baab,_0x55817e['body']);_0x2c1628[_0x92b7('0x17')]();})[_0x92b7('0x18')](function(_0xa6712a){logger[_0x92b7('0x19')]('[%s][MESSAGE]\x20%s',_0x8baab,JSON[_0x92b7('0x1a')](_0xa6712a));_0x2c1628[_0x92b7('0x1b')]();});}}catch(_0x262ff5){logger[_0x92b7('0x19')](_0x92b7('0x1c'),_0x8baab,JSON[_0x92b7('0x1a')](_0x262ff5));_0x2c1628[_0x92b7('0x1b')]();}};};
\ No newline at end of file
+var _0x5513=['../../rpc/openchannelMessage','../../rpc/mailMessage','../../rpc/smsMessage','../../rpc/whatsappMessage','consequence','getMustacheRender','contact','channel','chat','ChatWebsiteId','account','upperFirst','InteractionId','Message','create','info','[%s][MESSAGE]\x20%s','body','next','catch','stop','stringify','lodash','./utils','../../../../config/logger','routing','../../rpc/chatMessage'];(function(_0x1742bd,_0xd7dded){var _0x31c32d=function(_0x9612ed){while(--_0x9612ed){_0x1742bd['push'](_0x1742bd['shift']());}};_0x31c32d(++_0xd7dded);}(_0x5513,0x175));var _0x3551=function(_0x52f159,_0x419d8a){_0x52f159=_0x52f159-0x0;var _0x156799=_0x5513[_0x52f159];return _0x156799;};'use strict';var _=require(_0x3551('0x0'));var utils=require(_0x3551('0x1'));var logger=require(_0x3551('0x2'))(_0x3551('0x3'));var rpc={'chatMessage':require(_0x3551('0x4')),'openchannelMessage':require(_0x3551('0x5')),'mailMessage':require(_0x3551('0x6')),'smsMessage':require(_0x3551('0x7')),'faxMessage':require('../../rpc/faxMessage'),'whatsappMessage':require(_0x3551('0x8'))};exports[_0x3551('0x9')]=function(_0x41997c,_0x51bca6){return function(_0xdacdeb){try{var _0x1565c7={'body':utils[_0x3551('0xa')](_0x51bca6[0x0],this),'ContactId':this[_0x3551('0xb')]['id']};if(this[_0x3551('0xc')]===_0x3551('0xd')){_0x1565c7[_0x3551('0xe')]=this[_0x3551('0xf')]['id'];}else{_0x1565c7[_['upperFirst'](this[_0x3551('0xc')])+'AccountId']=this[_0x3551('0xf')]['id'];}_0x1565c7[_[_0x3551('0x10')](this['channel'])+_0x3551('0x11')]=this['interaction']['id'];if(rpc[this[_0x3551('0xc')]+_0x3551('0x12')]){return rpc[this[_0x3551('0xc')]+_0x3551('0x12')][_0x3551('0x13')](_0x1565c7)['then'](function(_0x59cb6c){logger[_0x3551('0x14')](_0x3551('0x15'),_0x41997c,_0x1565c7[_0x3551('0x16')]);_0xdacdeb[_0x3551('0x17')]();})[_0x3551('0x18')](function(_0x1c23e1){logger['error'](_0x3551('0x15'),_0x41997c,JSON['stringify'](_0x1c23e1));_0xdacdeb[_0x3551('0x19')]();});}}catch(_0x452af6){logger['error']('[%s][MESSAGE]\x20%s',_0x41997c,JSON[_0x3551('0x1a')](_0x452af6));_0xdacdeb[_0x3551('0x19')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8cee=['next','error','stringify','./utils','../../../../config/logger','routing','consequence','info','[%s][NOOP]\x20%s','getMustacheRender'];(function(_0x426d65,_0x47972d){var _0x3d30b1=function(_0x3400da){while(--_0x3400da){_0x426d65['push'](_0x426d65['shift']());}};_0x3d30b1(++_0x47972d);}(_0x8cee,0x161));var _0xe8ce=function(_0x3f54e1,_0x2aac41){_0x3f54e1=_0x3f54e1-0x0;var _0x5a0d29=_0x8cee[_0x3f54e1];return _0x5a0d29;};'use strict';var utils=require(_0xe8ce('0x0'));var logger=require(_0xe8ce('0x1'))(_0xe8ce('0x2'));exports[_0xe8ce('0x3')]=function(_0x13777d,_0x38841f){return function(_0x45fd37){try{logger[_0xe8ce('0x4')](_0xe8ce('0x5'),_0x13777d,utils[_0xe8ce('0x6')](_0x38841f[0x0],this));_0x45fd37[_0xe8ce('0x7')]();}catch(_0x400e4a){logger[_0xe8ce('0x8')]('[%s][NOOP]\x20%s',_0x13777d,JSON[_0xe8ce('0x9')](_0x400e4a));_0x45fd37['stop']();}};};
\ No newline at end of file
+var _0x6fe4=['next','error','[%s][NOOP]\x20%s','stringify','./utils','../../../../config/logger','routing','consequence','getMustacheRender'];(function(_0x97a2fa,_0x21dfac){var _0x1cf2a7=function(_0xcc3dbe){while(--_0xcc3dbe){_0x97a2fa['push'](_0x97a2fa['shift']());}};_0x1cf2a7(++_0x21dfac);}(_0x6fe4,0x151));var _0x46fe=function(_0x378126,_0x31aee9){_0x378126=_0x378126-0x0;var _0x53038f=_0x6fe4[_0x378126];return _0x53038f;};'use strict';var utils=require(_0x46fe('0x0'));var logger=require(_0x46fe('0x1'))(_0x46fe('0x2'));exports[_0x46fe('0x3')]=function(_0x43a768,_0x48d2f6){return function(_0x41569b){try{logger['info']('[%s][NOOP]\x20%s',_0x43a768,utils[_0x46fe('0x4')](_0x48d2f6[0x0],this));_0x41569b[_0x46fe('0x5')]();}catch(_0x219a26){logger[_0x46fe('0x6')](_0x46fe('0x7'),_0x43a768,JSON[_0x46fe('0x8')](_0x219a26));_0x41569b['stop']();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x1a99=['string','name\x20is\x20a\x20string\x20and\x20it\x20is\x20required','number','waiting','body','from','YYYY-MM-DD\x20HH:mm:ss','contact','list','upperFirst','channel','QueueId','InteractionId','interaction','message','WebsiteId','info','[%s][START:QUEUE][NAME:%s]','name','QueueReport','create','error','create\x20queue\x20report','accepted','[%s][STOP:QUEUE][NAME:%s]','update','catch','update\x20queue\x20report','timeout','toLowerCase','consequence','length','[%s][QUEUE]\x20%s','map','join','find','Queues','createQueue','atimeout','qtimeout','rules','close','stop','complete','[%s][QUEUE]\x20APPLICATION\x20END','strategy','rrmemory','beepall','[%s][QUEUE]\x20queue\x20not\x20found\x20%s','log','stack','lodash','util','moment','ioredis','../../../../config/environment','routing','./strategy','redis','localhost','account','queue','joinAt','emit','clone','queue_id','format','%sQueuesWaitingInteractions','pick','%s:queue:%s','remove','../../rpc/openchannelQueueReport','../../rpc/chatQueueReport','../../rpc/smsQueueReport'];(function(_0x1ef9a8,_0x50a344){var _0x52391e=function(_0x1df9b4){while(--_0x1df9b4){_0x1ef9a8['push'](_0x1ef9a8['shift']());}};_0x52391e(++_0x50a344);}(_0x1a99,0x7d));var _0x91a9=function(_0x7f287d,_0xe3b36e){_0x7f287d=_0x7f287d-0x0;var _0x21514f=_0x1a99[_0x7f287d];return _0x21514f;};'use strict';var schema=require('validate');var _=require(_0x91a9('0x0'));var util=require(_0x91a9('0x1'));var seqqueue=require('seq-queue');var moment=require(_0x91a9('0x2'));var Redis=require(_0x91a9('0x3'));var config=require(_0x91a9('0x4'));var logger=require('../../../../config/logger')(_0x91a9('0x5'));var strategy=require(_0x91a9('0x6'));config['redis']=_['defaults'](config[_0x91a9('0x7')],{'host':_0x91a9('0x8'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x91a9('0x7')]));var attributes=['id','queue_id',_0x91a9('0x9'),_0x91a9('0xa'),'from',_0x91a9('0xb')];function emit(_0x50d8ba,_0x11fb7b,_0x1649fd){io['to'](_0x50d8ba)[_0x91a9('0xc')](_0x11fb7b,_0x1649fd);}function emitChannelQueueInteraction(_0x381aca,_0x397641,_0x232748,_0x48d440,_0x21cd37,_0x22af3b,_0xcf7617,_0x59a5d8){var _0x548570=_[_0x91a9('0xd')](_0x232748);_0x548570[_0x91a9('0xe')]=_0x59a5d8;_0x548570['queue']=_0x397641;_0x548570[_0x91a9('0x9')]=_0x48d440;_0x548570['id']=_0x21cd37;if(_0x22af3b){_0xcf7617[util[_0x91a9('0xf')](_0x91a9('0x10'),_0x381aca)][_0x21cd37]=_[_0x91a9('0x11')](_0x548570,attributes);}else{delete _0xcf7617[util[_0x91a9('0xf')](_0x91a9('0x10'),_0x381aca)][_0x21cd37];}emit(util[_0x91a9('0xf')](_0x91a9('0x12'),_0x381aca,_0x397641),util['format']('%s_queue_waiting_interaction:%s',_0x381aca,_0x22af3b?'save':_0x91a9('0x13')),_[_0x91a9('0x11')](_0x548570,attributes));}var rpc={'openchannelQueueReport':require(_0x91a9('0x14')),'mailQueueReport':require('../../rpc/mailQueueReport'),'chatQueueReport':require(_0x91a9('0x15')),'smsQueueReport':require(_0x91a9('0x16')),'faxQueueReport':require('../../rpc/faxQueueReport'),'whatsappQueueReport':require('../../rpc/whatsappQueueReport')};var queue=schema({'name':{'type':_0x91a9('0x17'),'required':!![],'message':_0x91a9('0x18')},'timeout':{'type':_0x91a9('0x19'),'message':'timeout\x20is\x20a\x20number'}});function startRouting(_0x341adf,_0x5c7910,_0x1d58c7,_0x13e10e){if(_0x341adf&&_0x5c7910&&_0x1d58c7){_0x5c7910[_0x91a9('0x1a')]+=0x1;var _0x2d61ce={'uniqueid':_0x341adf,'from':_0x1d58c7['body']?_0x1d58c7[_0x91a9('0x1b')][_0x91a9('0x1c')]:'','joinAt':moment()['format'](_0x91a9('0x1d')),'ContactId':_0x1d58c7[_0x91a9('0x1e')]?_0x1d58c7[_0x91a9('0x1e')]['id']:null,'ListId':_0x1d58c7[_0x91a9('0x1f')]?_0x1d58c7['list']['id']:null};_0x2d61ce[_[_0x91a9('0x20')](_0x1d58c7[_0x91a9('0x21')])+_0x91a9('0x22')]=_0x5c7910['id']||null;_0x2d61ce[_[_0x91a9('0x20')](_0x1d58c7[_0x91a9('0x21')])+_0x91a9('0x23')]=_0x1d58c7[_0x91a9('0x24')]?_0x1d58c7[_0x91a9('0x24')]['id']:null;_0x2d61ce[_['upperFirst'](_0x1d58c7['channel'])+'MessageId']=_0x1d58c7['message']?_0x1d58c7[_0x91a9('0x25')]['id']:null;_0x2d61ce[_['upperFirst'](_0x1d58c7[_0x91a9('0x21')])+(_0x1d58c7['channel']!=='chat'?'AccountId':_0x91a9('0x26'))]=_0x1d58c7['account']?_0x1d58c7[_0x91a9('0x9')]['id']:null;logger[_0x91a9('0x27')](util[_0x91a9('0xf')](_0x91a9('0x28'),_0x341adf,_0x5c7910[_0x91a9('0x29')]));emitChannelQueueInteraction(_0x1d58c7['channel'],_0x5c7910['name'],_0x2d61ce,_0x1d58c7[_0x91a9('0x9')][_0x91a9('0x29')],_0x1d58c7[_0x91a9('0x25')]['id'],!![],_0x13e10e,_0x5c7910['id']);if(rpc[_0x1d58c7['channel']+_0x91a9('0x2a')]){return rpc[_0x1d58c7['channel']+_0x91a9('0x2a')][_0x91a9('0x2b')](_0x2d61ce)['catch'](function(_0x333560){logger[_0x91a9('0x2c')](_0x91a9('0x2d'));});}}}function stopRouting(_0x31bde7,_0x4a4964,_0x3430ec,_0x42f865){if(_0x31bde7&&_0x4a4964){_0x4a4964['waiting']-=0x1;var _0x3f90a2={'leaveAt':moment()[_0x91a9('0xf')](_0x91a9('0x1d')),'acceptAt':moment()[_0x91a9('0xf')](_0x91a9('0x1d')),'reason':_0x91a9('0x2e')};logger[_0x91a9('0x27')](util['format'](_0x91a9('0x2f'),_0x31bde7,_0x4a4964[_0x91a9('0x29')]));emitChannelQueueInteraction(_0x3430ec[_0x91a9('0x21')],_0x4a4964[_0x91a9('0x29')],_0x3430ec['body'],_0x3430ec['account']['name'],_0x3430ec[_0x91a9('0x25')]['id'],![],_0x42f865,_0x4a4964['id']);if(rpc[_0x3430ec['channel']+_0x91a9('0x2a')]){return rpc[_0x3430ec[_0x91a9('0x21')]+_0x91a9('0x2a')][_0x91a9('0x30')](_0x31bde7,_0x3f90a2)[_0x91a9('0x31')](function(_0x281a74){logger['error'](_0x91a9('0x32'));});}}}function endRouting(_0x5e3b1f,_0x458560,_0x425ef8,_0x11c630){if(_0x5e3b1f&&_0x458560){_0x458560[_0x91a9('0x1a')]-=0x1;var _0x102fa8={'leaveAt':moment()['format'](_0x91a9('0x1d')),'exitAt':moment()[_0x91a9('0xf')](_0x91a9('0x1d')),'reason':_0x91a9('0x33')};logger[_0x91a9('0x27')](util[_0x91a9('0xf')]('[%s][END:QUEUE][NAME:%s]',_0x5e3b1f,_0x458560['name']));emitChannelQueueInteraction(_0x425ef8[_0x91a9('0x21')],_0x458560[_0x91a9('0x29')],_0x425ef8['body'],_0x425ef8[_0x91a9('0x9')][_0x91a9('0x29')],_0x425ef8[_0x91a9('0x25')]['id'],![],_0x11c630);if(rpc[_0x425ef8[_0x91a9('0x21')]+_0x91a9('0x2a')]){return rpc[_0x425ef8['channel']+_0x91a9('0x2a')][_0x91a9('0x30')](_0x5e3b1f,_0x102fa8)[_0x91a9('0x31')](function(_0x240b25){logger[_0x91a9('0x2c')](_0x91a9('0x32'));});}}}function handleFindQueue(_0x539054){return function(_0x2bf753){return _0x2bf753[_0x91a9('0x29')][_0x91a9('0x34')]()===_0x539054[_0x91a9('0x34')]();};}exports[_0x91a9('0x35')]=function(_0x18568f,_0x54611a,_0x2d86da,_0x35efb2){return function(_0x32812e){try{var _0x4cae93={'name':_0x54611a[0x0],'timeout':_0x54611a[0x1]};var _0x4342ce=queue['validate'](_0x4cae93,{'typecast':!![]});if(_0x4342ce[_0x91a9('0x36')]){logger[_0x91a9('0x2c')](_0x91a9('0x37'),_0x18568f,_[_0x91a9('0x38')](_0x4342ce,_0x91a9('0x25'))[_0x91a9('0x39')](',\x20'));_0x32812e['stop']();}else{var _0x3641f1=_[_0x91a9('0x3a')](_0x2d86da[_0x35efb2[_0x91a9('0x21')]+_0x91a9('0x3b')],handleFindQueue(_0x4cae93[_0x91a9('0x29')]));if(_0x3641f1){startRouting(_0x18568f,_0x3641f1,_0x35efb2,_0x2d86da);var _0x428c00=(_0x3641f1[_0x91a9('0x33')]||0xa)*0x3e8;var _0x56dfdf=(_0x4cae93[_0x91a9('0x33')]||0x14)*0x3e8;var _0x3621ef,_0x4a53c7;if(_0x428c00>_0x56dfdf){_0x56dfdf=_0x428c00;}var _0x4079e4=seqqueue[_0x91a9('0x3c')](_0x428c00);_0x4079e4['id']=_0x18568f;_0x4079e4[_0x91a9('0x3d')]=_0x428c00;_0x4079e4[_0x91a9('0x3e')]=_0x56dfdf;_0x4079e4[_0x91a9('0x21')]=_0x35efb2['channel'];_0x2d86da[_0x91a9('0x3f')][_0x18568f]['on']('end',function(){logger['info']('[%s][QUEUE]\x20ROUTING\x20STOPPED',_0x18568f);stopRouting(_0x18568f,_0x3641f1,_0x35efb2,_0x2d86da);clearTimeout(_0x3621ef);_0x3621ef=undefined;_0x4079e4[_0x91a9('0x40')](!![]);if(_0x2d86da[_0x91a9('0x3f')][_0x18568f]){delete _0x2d86da[_0x91a9('0x3f')][_0x18568f];}_0x32812e[_0x91a9('0x41')]();});_0x2d86da['rules'][_0x18568f]['on'](_0x91a9('0x42'),function(){if(_0x2d86da[_0x91a9('0x3f')][_0x18568f]){delete _0x2d86da[_0x91a9('0x3f')][_0x18568f];}});_0x3621ef=setTimeout(function(){logger['info'](_0x91a9('0x43'),_0x18568f);endRouting(_0x18568f,_0x3641f1,_0x35efb2,_0x2d86da);clearTimeout(_0x3621ef);_0x4079e4[_0x91a9('0x40')](!![]);_0x32812e['next']();},_0x56dfdf);switch(_0x3641f1[_0x91a9('0x44')]){case _0x91a9('0x45'):strategy[_0x91a9('0x45')](_0x4079e4,_0x3641f1,_0x2d86da,_0x35efb2);break;default:strategy[_0x91a9('0x46')](_0x4079e4,_0x3641f1,_0x2d86da,_0x35efb2);}}else{logger[_0x91a9('0x2c')](_0x91a9('0x47'),_0x18568f,_0x4cae93[_0x91a9('0x29')]);_0x32812e[_0x91a9('0x41')]();}}}catch(_0x43f5cc){console[_0x91a9('0x48')](_0x43f5cc);logger[_0x91a9('0x2c')](_0x91a9('0x37'),_0x18568f,_0x43f5cc[_0x91a9('0x49')]);_0x32812e[_0x91a9('0x41')]();}};};
\ No newline at end of file
+var _0x1177=['info','[%s][START:QUEUE][NAME:%s]','name','QueueReport','create','catch','error','create\x20queue\x20report','[%s][STOP:QUEUE][NAME:%s]','update','update\x20queue\x20report','timeout','[%s][END:QUEUE][NAME:%s]','toLowerCase','consequence','[%s][QUEUE]\x20%s','join','find','Queues','createQueue','atimeout','qtimeout','rules','end','close','stop','rrmemory','beepall','[%s][QUEUE]\x20queue\x20not\x20found\x20%s','log','stack','validate','util','seq-queue','moment','../../../../config/environment','../../../../config/logger','routing','./strategy','redis','defaults','localhost','socket.io-emitter','queue_id','account','queue','joinAt','clone','pick','format','%sQueuesWaitingInteractions','save','remove','../../rpc/openchannelQueueReport','../../rpc/chatQueueReport','../../rpc/smsQueueReport','string','name\x20is\x20a\x20string\x20and\x20it\x20is\x20required','timeout\x20is\x20a\x20number','waiting','body','from','YYYY-MM-DD\x20HH:mm:ss','contact','list','upperFirst','channel','InteractionId','interaction','MessageId','message','chat','WebsiteId'];(function(_0x26b58e,_0x150306){var _0x1fa9a0=function(_0x1b7793){while(--_0x1b7793){_0x26b58e['push'](_0x26b58e['shift']());}};_0x1fa9a0(++_0x150306);}(_0x1177,0x143));var _0x7117=function(_0x1b2136,_0x4b6968){_0x1b2136=_0x1b2136-0x0;var _0x1cdde2=_0x1177[_0x1b2136];return _0x1cdde2;};'use strict';var schema=require(_0x7117('0x0'));var _=require('lodash');var util=require(_0x7117('0x1'));var seqqueue=require(_0x7117('0x2'));var moment=require(_0x7117('0x3'));var Redis=require('ioredis');var config=require(_0x7117('0x4'));var logger=require(_0x7117('0x5'))(_0x7117('0x6'));var strategy=require(_0x7117('0x7'));config[_0x7117('0x8')]=_[_0x7117('0x9')](config[_0x7117('0x8')],{'host':_0x7117('0xa'),'port':0x18eb});var io=require(_0x7117('0xb'))(new Redis(config['redis']));var attributes=['id',_0x7117('0xc'),_0x7117('0xd'),_0x7117('0xe'),'from',_0x7117('0xf')];function emit(_0x43cdf6,_0x37ace7,_0x3a731c){io['to'](_0x43cdf6)['emit'](_0x37ace7,_0x3a731c);}function emitChannelQueueInteraction(_0xaa0a97,_0xf7af4,_0x5e99fa,_0x289288,_0x2fb191,_0x129b60,_0x587d0f,_0x4d352f){var _0x165b1a=_[_0x7117('0x10')](_0x5e99fa);_0x165b1a['queue_id']=_0x4d352f;_0x165b1a[_0x7117('0xe')]=_0xf7af4;_0x165b1a['account']=_0x289288;_0x165b1a['id']=_0x2fb191;if(_0x129b60){_0x587d0f[util['format']('%sQueuesWaitingInteractions',_0xaa0a97)][_0x2fb191]=_[_0x7117('0x11')](_0x165b1a,attributes);}else{delete _0x587d0f[util[_0x7117('0x12')](_0x7117('0x13'),_0xaa0a97)][_0x2fb191];}emit(util[_0x7117('0x12')]('%s:queue:%s',_0xaa0a97,_0xf7af4),util[_0x7117('0x12')]('%s_queue_waiting_interaction:%s',_0xaa0a97,_0x129b60?_0x7117('0x14'):_0x7117('0x15')),_[_0x7117('0x11')](_0x165b1a,attributes));}var rpc={'openchannelQueueReport':require(_0x7117('0x16')),'mailQueueReport':require('../../rpc/mailQueueReport'),'chatQueueReport':require(_0x7117('0x17')),'smsQueueReport':require(_0x7117('0x18')),'faxQueueReport':require('../../rpc/faxQueueReport'),'whatsappQueueReport':require('../../rpc/whatsappQueueReport')};var queue=schema({'name':{'type':_0x7117('0x19'),'required':!![],'message':_0x7117('0x1a')},'timeout':{'type':'number','message':_0x7117('0x1b')}});function startRouting(_0x308e39,_0x19c79e,_0x316142,_0x3e9998){if(_0x308e39&&_0x19c79e&&_0x316142){_0x19c79e[_0x7117('0x1c')]+=0x1;var _0x56b843={'uniqueid':_0x308e39,'from':_0x316142[_0x7117('0x1d')]?_0x316142['body'][_0x7117('0x1e')]:'','joinAt':moment()[_0x7117('0x12')](_0x7117('0x1f')),'ContactId':_0x316142[_0x7117('0x20')]?_0x316142['contact']['id']:null,'ListId':_0x316142[_0x7117('0x21')]?_0x316142[_0x7117('0x21')]['id']:null};_0x56b843[_[_0x7117('0x22')](_0x316142[_0x7117('0x23')])+'QueueId']=_0x19c79e['id']||null;_0x56b843[_[_0x7117('0x22')](_0x316142[_0x7117('0x23')])+_0x7117('0x24')]=_0x316142[_0x7117('0x25')]?_0x316142['interaction']['id']:null;_0x56b843[_[_0x7117('0x22')](_0x316142['channel'])+_0x7117('0x26')]=_0x316142['message']?_0x316142[_0x7117('0x27')]['id']:null;_0x56b843[_[_0x7117('0x22')](_0x316142[_0x7117('0x23')])+(_0x316142[_0x7117('0x23')]!==_0x7117('0x28')?'AccountId':_0x7117('0x29'))]=_0x316142[_0x7117('0xd')]?_0x316142[_0x7117('0xd')]['id']:null;logger[_0x7117('0x2a')](util[_0x7117('0x12')](_0x7117('0x2b'),_0x308e39,_0x19c79e[_0x7117('0x2c')]));emitChannelQueueInteraction(_0x316142[_0x7117('0x23')],_0x19c79e[_0x7117('0x2c')],_0x56b843,_0x316142['account']['name'],_0x316142[_0x7117('0x27')]['id'],!![],_0x3e9998,_0x19c79e['id']);if(rpc[_0x316142[_0x7117('0x23')]+_0x7117('0x2d')]){return rpc[_0x316142[_0x7117('0x23')]+_0x7117('0x2d')][_0x7117('0x2e')](_0x56b843)[_0x7117('0x2f')](function(_0x54c566){logger[_0x7117('0x30')](_0x7117('0x31'));});}}}function stopRouting(_0x1fd401,_0x33d762,_0x651b1d,_0x1bf315){if(_0x1fd401&&_0x33d762){_0x33d762[_0x7117('0x1c')]-=0x1;var _0x129471={'leaveAt':moment()[_0x7117('0x12')](_0x7117('0x1f')),'acceptAt':moment()[_0x7117('0x12')]('YYYY-MM-DD\x20HH:mm:ss'),'reason':'accepted'};logger[_0x7117('0x2a')](util[_0x7117('0x12')](_0x7117('0x32'),_0x1fd401,_0x33d762[_0x7117('0x2c')]));emitChannelQueueInteraction(_0x651b1d[_0x7117('0x23')],_0x33d762[_0x7117('0x2c')],_0x651b1d[_0x7117('0x1d')],_0x651b1d['account']['name'],_0x651b1d[_0x7117('0x27')]['id'],![],_0x1bf315,_0x33d762['id']);if(rpc[_0x651b1d[_0x7117('0x23')]+_0x7117('0x2d')]){return rpc[_0x651b1d[_0x7117('0x23')]+_0x7117('0x2d')][_0x7117('0x33')](_0x1fd401,_0x129471)[_0x7117('0x2f')](function(_0x5363ab){logger[_0x7117('0x30')](_0x7117('0x34'));});}}}function endRouting(_0x4e1bbb,_0x82154d,_0x2e88aa,_0x57eb89){if(_0x4e1bbb&&_0x82154d){_0x82154d[_0x7117('0x1c')]-=0x1;var _0x1b0836={'leaveAt':moment()['format'](_0x7117('0x1f')),'exitAt':moment()[_0x7117('0x12')]('YYYY-MM-DD\x20HH:mm:ss'),'reason':_0x7117('0x35')};logger[_0x7117('0x2a')](util['format'](_0x7117('0x36'),_0x4e1bbb,_0x82154d[_0x7117('0x2c')]));emitChannelQueueInteraction(_0x2e88aa[_0x7117('0x23')],_0x82154d[_0x7117('0x2c')],_0x2e88aa[_0x7117('0x1d')],_0x2e88aa[_0x7117('0xd')][_0x7117('0x2c')],_0x2e88aa[_0x7117('0x27')]['id'],![],_0x57eb89);if(rpc[_0x2e88aa[_0x7117('0x23')]+_0x7117('0x2d')]){return rpc[_0x2e88aa[_0x7117('0x23')]+'QueueReport'][_0x7117('0x33')](_0x4e1bbb,_0x1b0836)[_0x7117('0x2f')](function(_0x3aa997){logger[_0x7117('0x30')](_0x7117('0x34'));});}}}function handleFindQueue(_0x3e9188){return function(_0xca9ae){return _0xca9ae[_0x7117('0x2c')][_0x7117('0x37')]()===_0x3e9188['toLowerCase']();};}exports[_0x7117('0x38')]=function(_0x4bc8a4,_0x476101,_0xdc4c94,_0x3fb8ed){return function(_0x1f6b52){try{var _0x287617={'name':_0x476101[0x0],'timeout':_0x476101[0x1]};var _0x29e9cd=queue[_0x7117('0x0')](_0x287617,{'typecast':!![]});if(_0x29e9cd['length']){logger[_0x7117('0x30')](_0x7117('0x39'),_0x4bc8a4,_['map'](_0x29e9cd,_0x7117('0x27'))[_0x7117('0x3a')](',\x20'));_0x1f6b52['stop']();}else{var _0x4f0de8=_[_0x7117('0x3b')](_0xdc4c94[_0x3fb8ed[_0x7117('0x23')]+_0x7117('0x3c')],handleFindQueue(_0x287617[_0x7117('0x2c')]));if(_0x4f0de8){startRouting(_0x4bc8a4,_0x4f0de8,_0x3fb8ed,_0xdc4c94);var _0x454229=(_0x4f0de8[_0x7117('0x35')]||0xa)*0x3e8;var _0x545b01=(_0x287617[_0x7117('0x35')]||0x14)*0x3e8;var _0x15491f,_0xb2f0c4;if(_0x454229>_0x545b01){_0x545b01=_0x454229;}var _0x59b981=seqqueue[_0x7117('0x3d')](_0x454229);_0x59b981['id']=_0x4bc8a4;_0x59b981[_0x7117('0x3e')]=_0x454229;_0x59b981[_0x7117('0x3f')]=_0x545b01;_0x59b981['channel']=_0x3fb8ed[_0x7117('0x23')];_0xdc4c94[_0x7117('0x40')][_0x4bc8a4]['on'](_0x7117('0x41'),function(){logger['info']('[%s][QUEUE]\x20ROUTING\x20STOPPED',_0x4bc8a4);stopRouting(_0x4bc8a4,_0x4f0de8,_0x3fb8ed,_0xdc4c94);clearTimeout(_0x15491f);_0x15491f=undefined;_0x59b981[_0x7117('0x42')](!![]);if(_0xdc4c94[_0x7117('0x40')][_0x4bc8a4]){delete _0xdc4c94[_0x7117('0x40')][_0x4bc8a4];}_0x1f6b52[_0x7117('0x43')]();});_0xdc4c94[_0x7117('0x40')][_0x4bc8a4]['on']('complete',function(){if(_0xdc4c94['rules'][_0x4bc8a4]){delete _0xdc4c94[_0x7117('0x40')][_0x4bc8a4];}});_0x15491f=setTimeout(function(){logger[_0x7117('0x2a')]('[%s][QUEUE]\x20APPLICATION\x20END',_0x4bc8a4);endRouting(_0x4bc8a4,_0x4f0de8,_0x3fb8ed,_0xdc4c94);clearTimeout(_0x15491f);_0x59b981[_0x7117('0x42')](!![]);_0x1f6b52['next']();},_0x545b01);switch(_0x4f0de8['strategy']){case _0x7117('0x44'):strategy['rrmemory'](_0x59b981,_0x4f0de8,_0xdc4c94,_0x3fb8ed);break;default:strategy[_0x7117('0x45')](_0x59b981,_0x4f0de8,_0xdc4c94,_0x3fb8ed);}}else{logger[_0x7117('0x30')](_0x7117('0x46'),_0x4bc8a4,_0x287617['name']);_0x1f6b52[_0x7117('0x43')]();}}}catch(_0x1616f5){console[_0x7117('0x47')](_0x1616f5);logger[_0x7117('0x30')](_0x7117('0x39'),_0x4bc8a4,_0x1616f5[_0x7117('0x48')]);_0x1f6b52[_0x7117('0x43')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x5c80=['channel','busy','busyQueue','showNotification','writeLog','RINGING',':FORCED','[%s][AGENT]\x20agent\x20%s\x20is\x20not\x20available','[%s][AGENT]\x20timeout\x20with\x20%s','hideNotification','STOP','TIMEOUT','exports','../../../../../config/logger','notificationId','squeue','agent','realtime','routing','push','handleRun','bind','handleTimeout','timeout','drained','handleDrained','prototype','info','isNil','[%s][AGENT]\x20agent\x20skipped,\x20unknown\x20id\x20%s','forcedOwnership','isAgentAvailable','agents'];(function(_0x57b54c,_0x54ce0d){var _0x59cc19=function(_0xa33bc6){while(--_0xa33bc6){_0x57b54c['push'](_0x57b54c['shift']());}};_0x59cc19(++_0x54ce0d);}(_0x5c80,0x178));var _0x05c8=function(_0x5891e1,_0x46fb69){_0x5891e1=_0x5891e1-0x0;var _0x30cbc7=_0x5c80[_0x5891e1];return _0x30cbc7;};'use strict';var _=require('lodash');var uuid=require('uuid');var util=require('./util');var logger=require(_0x05c8('0x0'))('routing');var Agent=function(_0x4e0426,_0x2233a3,_0x208501,_0xe6af16){this[_0x05c8('0x1')]=uuid['v4']();this[_0x05c8('0x2')]=_0x4e0426;this[_0x05c8('0x3')]=_0x2233a3;this[_0x05c8('0x4')]=_0x208501;this[_0x05c8('0x5')]=_0xe6af16;this[_0x05c8('0x2')][_0x05c8('0x6')](this[_0x05c8('0x7')][_0x05c8('0x8')](this),this[_0x05c8('0x9')][_0x05c8('0x8')](this));this[_0x05c8('0x2')]['on'](_0x05c8('0xa'),this[_0x05c8('0x9')][_0x05c8('0x8')](this));this[_0x05c8('0x2')]['on'](_0x05c8('0xb'),this[_0x05c8('0xc')][_0x05c8('0x8')](this));};Agent['prototype'][_0x05c8('0x6')]=function(){this[_0x05c8('0x2')][_0x05c8('0x6')](this[_0x05c8('0x7')][_0x05c8('0x8')](this),this[_0x05c8('0x9')][_0x05c8('0x8')](this));};Agent[_0x05c8('0xd')][_0x05c8('0xc')]=function(){this[_0x05c8('0x9')](!![]);};Agent[_0x05c8('0xd')][_0x05c8('0x7')]=function(_0x215189){logger[_0x05c8('0xe')]('[%s][AGENT]\x20try\x20with\x20%s',this['squeue']['id'],this[_0x05c8('0x3')]['id']);if(_[_0x05c8('0xf')](this[_0x05c8('0x4')]['agents'][this[_0x05c8('0x3')]['id']])){logger['info'](_0x05c8('0x10'),this['squeue']['id'],this[_0x05c8('0x3')]['id']);setTimeout(this[_0x05c8('0x6')][_0x05c8('0x8')](this),0x3e8);}else{if(this[_0x05c8('0x5')][_0x05c8('0x11')]||util[_0x05c8('0x12')](this['squeue']['id'],this[_0x05c8('0x4')][_0x05c8('0x13')][this[_0x05c8('0x3')]['id']],this['squeue'][_0x05c8('0x14')],![])){this[_0x05c8('0x4')][_0x05c8('0x13')][this[_0x05c8('0x3')]['id']][_0x05c8('0x15')]=!![];this[_0x05c8('0x4')][_0x05c8('0x13')][this['agent']['id']][_0x05c8('0x16')]=undefined;util[_0x05c8('0x17')](this[_0x05c8('0x1')],this['squeue']['id'],this['realtime']['agents'][this[_0x05c8('0x3')]['id']],null,this[_0x05c8('0x5')]);util[_0x05c8('0x18')](this[_0x05c8('0x2')]['id'],this[_0x05c8('0x4')]['agents'][this[_0x05c8('0x3')]['id']],_0x05c8('0x19')+(this['routing'][_0x05c8('0x11')]?_0x05c8('0x1a'):''));}else{logger[_0x05c8('0xe')](_0x05c8('0x1b'),this[_0x05c8('0x2')]['id'],this['agent']['id']);setTimeout(this[_0x05c8('0x6')][_0x05c8('0x8')](this),0x3e8);}}};Agent[_0x05c8('0xd')]['handleTimeout']=function(_0x5b31ea){if(_['isNil'](this['realtime'][_0x05c8('0x13')][this[_0x05c8('0x3')]['id']])){return logger[_0x05c8('0xe')](_0x05c8('0x10'),this['squeue']['id'],this[_0x05c8('0x3')]['id']);}else{logger[_0x05c8('0xe')](_0x05c8('0x1c'),this[_0x05c8('0x2')]['id'],this[_0x05c8('0x3')]['id']);util[_0x05c8('0x1d')](this[_0x05c8('0x1')],this[_0x05c8('0x2')]['id'],this[_0x05c8('0x4')][_0x05c8('0x13')][this[_0x05c8('0x3')]['id']],null,this[_0x05c8('0x5')]);this[_0x05c8('0x4')][_0x05c8('0x13')][this[_0x05c8('0x3')]['id']][_0x05c8('0x15')]=![];this[_0x05c8('0x4')][_0x05c8('0x13')][this[_0x05c8('0x3')]['id']][_0x05c8('0x16')]=undefined;util[_0x05c8('0x18')](this[_0x05c8('0x2')]['id'],this[_0x05c8('0x4')][_0x05c8('0x13')][this[_0x05c8('0x3')]['id']],_0x5b31ea?_0x05c8('0x1e'):_0x05c8('0x1f'));}if(!_0x5b31ea){setTimeout(this[_0x05c8('0x6')][_0x05c8('0x8')](this),0x3e8);}};function agent(_0x5520ec,_0x5ecd66,_0x58ecb3,_0x18e05a){return new Agent(_0x5520ec,_0x5ecd66,_0x58ecb3,_0x18e05a);}module[_0x05c8('0x20')]=agent;
\ No newline at end of file
+var _0x19d4=['handleDrained','prototype','info','[%s][AGENT]\x20try\x20with\x20%s','isNil','forcedOwnership','agents','channel','busy','writeLog','RINGING',':FORCED','[%s][AGENT]\x20agent\x20skipped,\x20unknown\x20id\x20%s','hideNotification','busyQueue','STOP','TIMEOUT','exports','lodash','uuid','./util','../../../../../config/logger','routing','notificationId','squeue','agent','realtime','push','handleRun','bind','handleTimeout','timeout','drained'];(function(_0x42245d,_0x51758f){var _0x4b211a=function(_0x2634e){while(--_0x2634e){_0x42245d['push'](_0x42245d['shift']());}};_0x4b211a(++_0x51758f);}(_0x19d4,0x1bf));var _0x419d=function(_0x292dfc,_0x30c837){_0x292dfc=_0x292dfc-0x0;var _0x4c6624=_0x19d4[_0x292dfc];return _0x4c6624;};'use strict';var _=require(_0x419d('0x0'));var uuid=require(_0x419d('0x1'));var util=require(_0x419d('0x2'));var logger=require(_0x419d('0x3'))(_0x419d('0x4'));var Agent=function(_0x5aa8a4,_0x5becd5,_0x11e0ee,_0x30dd13){this[_0x419d('0x5')]=uuid['v4']();this[_0x419d('0x6')]=_0x5aa8a4;this[_0x419d('0x7')]=_0x5becd5;this[_0x419d('0x8')]=_0x11e0ee;this[_0x419d('0x4')]=_0x30dd13;this['squeue'][_0x419d('0x9')](this[_0x419d('0xa')][_0x419d('0xb')](this),this[_0x419d('0xc')][_0x419d('0xb')](this));this['squeue']['on'](_0x419d('0xd'),this[_0x419d('0xc')]['bind'](this));this[_0x419d('0x6')]['on'](_0x419d('0xe'),this[_0x419d('0xf')][_0x419d('0xb')](this));};Agent[_0x419d('0x10')][_0x419d('0x9')]=function(){this[_0x419d('0x6')][_0x419d('0x9')](this[_0x419d('0xa')][_0x419d('0xb')](this),this[_0x419d('0xc')][_0x419d('0xb')](this));};Agent[_0x419d('0x10')][_0x419d('0xf')]=function(){this[_0x419d('0xc')](!![]);};Agent[_0x419d('0x10')][_0x419d('0xa')]=function(_0x5aeaaf){logger[_0x419d('0x11')](_0x419d('0x12'),this[_0x419d('0x6')]['id'],this[_0x419d('0x7')]['id']);if(_[_0x419d('0x13')](this[_0x419d('0x8')]['agents'][this[_0x419d('0x7')]['id']])){logger[_0x419d('0x11')]('[%s][AGENT]\x20agent\x20skipped,\x20unknown\x20id\x20%s',this[_0x419d('0x6')]['id'],this[_0x419d('0x7')]['id']);setTimeout(this[_0x419d('0x9')]['bind'](this),0x3e8);}else{if(this[_0x419d('0x4')][_0x419d('0x14')]||util['isAgentAvailable'](this[_0x419d('0x6')]['id'],this[_0x419d('0x8')][_0x419d('0x15')][this[_0x419d('0x7')]['id']],this['squeue'][_0x419d('0x16')],![])){this[_0x419d('0x8')][_0x419d('0x15')][this[_0x419d('0x7')]['id']][_0x419d('0x17')]=!![];this['realtime'][_0x419d('0x15')][this[_0x419d('0x7')]['id']]['busyQueue']=undefined;util['showNotification'](this['notificationId'],this['squeue']['id'],this[_0x419d('0x8')][_0x419d('0x15')][this[_0x419d('0x7')]['id']],null,this[_0x419d('0x4')]);util[_0x419d('0x18')](this['squeue']['id'],this[_0x419d('0x8')][_0x419d('0x15')][this[_0x419d('0x7')]['id']],_0x419d('0x19')+(this['routing'][_0x419d('0x14')]?_0x419d('0x1a'):''));}else{logger['info']('[%s][AGENT]\x20agent\x20%s\x20is\x20not\x20available',this[_0x419d('0x6')]['id'],this[_0x419d('0x7')]['id']);setTimeout(this[_0x419d('0x9')][_0x419d('0xb')](this),0x3e8);}}};Agent[_0x419d('0x10')][_0x419d('0xc')]=function(_0x48abf4){if(_[_0x419d('0x13')](this[_0x419d('0x8')][_0x419d('0x15')][this[_0x419d('0x7')]['id']])){return logger[_0x419d('0x11')](_0x419d('0x1b'),this['squeue']['id'],this[_0x419d('0x7')]['id']);}else{logger[_0x419d('0x11')]('[%s][AGENT]\x20timeout\x20with\x20%s',this[_0x419d('0x6')]['id'],this[_0x419d('0x7')]['id']);util[_0x419d('0x1c')](this[_0x419d('0x5')],this[_0x419d('0x6')]['id'],this[_0x419d('0x8')][_0x419d('0x15')][this[_0x419d('0x7')]['id']],null,this[_0x419d('0x4')]);this[_0x419d('0x8')]['agents'][this[_0x419d('0x7')]['id']][_0x419d('0x17')]=![];this['realtime'][_0x419d('0x15')][this[_0x419d('0x7')]['id']][_0x419d('0x1d')]=undefined;util[_0x419d('0x18')](this['squeue']['id'],this[_0x419d('0x8')][_0x419d('0x15')][this[_0x419d('0x7')]['id']],_0x48abf4?_0x419d('0x1e'):_0x419d('0x1f'));}if(!_0x48abf4){setTimeout(this[_0x419d('0x9')][_0x419d('0xb')](this),0x3e8);}};function agent(_0x13db91,_0x298caf,_0x4e082b,_0x303d61){return new Agent(_0x13db91,_0x298caf,_0x4e082b,_0x303d61);}module[_0x419d('0x20')]=agent;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6eed=['Agents','length','agents','info','[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s','channel','writeLog','RINGING','busyQueue','name','[%s][QUEUE]\x20ALL\x20AGENTS\x20ARE\x20BUSY','[%s][QUEUE]\x20EMPTY','hideNotification','notificationId','STOP','TIMEOUT','busy','lodash','uuid','./util','../../../../../config/logger','routing','squeue','queue','realtime','bind','timeout','handleTimeout','drained','handleDrained','push','handleRun','prototype','isNil'];(function(_0x298ed3,_0x4ab5e1){var _0x5aad28=function(_0x168687){while(--_0x168687){_0x298ed3['push'](_0x298ed3['shift']());}};_0x5aad28(++_0x4ab5e1);}(_0x6eed,0xff));var _0xd6ee=function(_0x5e1a3e,_0xaf5f51){_0x5e1a3e=_0x5e1a3e-0x0;var _0x3a04b4=_0x6eed[_0x5e1a3e];return _0x3a04b4;};'use strict';var _=require(_0xd6ee('0x0'));var uuid=require(_0xd6ee('0x1'));var util=require(_0xd6ee('0x2'));var logger=require(_0xd6ee('0x3'))(_0xd6ee('0x4'));var Beepall=function(_0x4e325a,_0x25a92a,_0x315fdb,_0x588715){this['notificationId']=uuid['v4']();this[_0xd6ee('0x5')]=_0x4e325a;this[_0xd6ee('0x6')]=_0x25a92a;this[_0xd6ee('0x7')]=_0x315fdb;this[_0xd6ee('0x4')]=_0x588715;this[_0xd6ee('0x5')]['push'](this['handleRun'][_0xd6ee('0x8')](this),this['handleTimeout']['bind'](this));this['squeue']['on'](_0xd6ee('0x9'),this[_0xd6ee('0xa')]['bind'](this));this[_0xd6ee('0x5')]['on'](_0xd6ee('0xb'),this[_0xd6ee('0xc')][_0xd6ee('0x8')](this));};Beepall['prototype'][_0xd6ee('0xd')]=function(){this[_0xd6ee('0x5')][_0xd6ee('0xd')](this[_0xd6ee('0xe')][_0xd6ee('0x8')](this),this[_0xd6ee('0xa')]['bind'](this));};Beepall[_0xd6ee('0xf')][_0xd6ee('0xc')]=function(_0x54d3eb){this[_0xd6ee('0xa')](!![]);};Beepall[_0xd6ee('0xf')][_0xd6ee('0xe')]=function(_0x372d1d){var _0x219ba6=!![];if(!_[_0xd6ee('0x10')](this['queue'])&&!_[_0xd6ee('0x10')](this[_0xd6ee('0x6')][_0xd6ee('0x11')])&&this['queue'][_0xd6ee('0x11')]['length']>0x0){for(var _0x3a82bf=0x0,_0x2b0495;_0x3a82bf<this[_0xd6ee('0x6')]['Agents'][_0xd6ee('0x12')];_0x3a82bf+=0x1){_0x2b0495=this['queue'][_0xd6ee('0x11')][_0x3a82bf]['id'];if(_['isNil'](this[_0xd6ee('0x7')][_0xd6ee('0x13')][_0x2b0495])){logger[_0xd6ee('0x14')](_0xd6ee('0x15'),this[_0xd6ee('0x5')]['id'],_0x2b0495);}else{if(util['isAgentAvailable'](this[_0xd6ee('0x5')]['id'],this['realtime'][_0xd6ee('0x13')][_0x2b0495],this[_0xd6ee('0x5')][_0xd6ee('0x16')],!![])){_0x219ba6=![];util[_0xd6ee('0x17')](this[_0xd6ee('0x5')]['id'],this['realtime']['agents'][_0x2b0495],_0xd6ee('0x18'));this['realtime'][_0xd6ee('0x13')][_0x2b0495]['busy']=!![];this[_0xd6ee('0x7')][_0xd6ee('0x13')][_0x2b0495][_0xd6ee('0x19')]=this[_0xd6ee('0x6')][_0xd6ee('0x1a')];util['showNotification'](this['notificationId'],this[_0xd6ee('0x5')]['id'],this[_0xd6ee('0x7')]['agents'][_0x2b0495],this[_0xd6ee('0x6')],this[_0xd6ee('0x4')]);}}}if(_0x219ba6){logger[_0xd6ee('0x14')](_0xd6ee('0x1b'),this[_0xd6ee('0x5')]['id']);setTimeout(this[_0xd6ee('0xd')][_0xd6ee('0x8')](this),0x3e8);}}else{logger['info'](_0xd6ee('0x1c'),this[_0xd6ee('0x5')]['id']);setTimeout(this['push']['bind'](this),0x3e8);}};Beepall[_0xd6ee('0xf')][_0xd6ee('0xa')]=function(_0xddca){if(!_[_0xd6ee('0x10')](this[_0xd6ee('0x6')])&&!_['isNil'](this[_0xd6ee('0x6')][_0xd6ee('0x11')])){for(var _0x21ce09=0x0,_0x4a9bdb;_0x21ce09<this[_0xd6ee('0x6')][_0xd6ee('0x11')][_0xd6ee('0x12')];_0x21ce09+=0x1){_0x4a9bdb=this['queue'][_0xd6ee('0x11')][_0x21ce09]['id'];if(_[_0xd6ee('0x10')](this[_0xd6ee('0x7')][_0xd6ee('0x13')][_0x4a9bdb])){logger[_0xd6ee('0x14')](_0xd6ee('0x15'),this['squeue']['id'],_0x4a9bdb);}else{util[_0xd6ee('0x1d')](this[_0xd6ee('0x1e')],this[_0xd6ee('0x5')]['id'],this[_0xd6ee('0x7')]['agents'][_0x4a9bdb],this[_0xd6ee('0x6')],this[_0xd6ee('0x4')]);util[_0xd6ee('0x17')](this['squeue']['id'],this['realtime'][_0xd6ee('0x13')][_0x4a9bdb],_0xddca?_0xd6ee('0x1f'):_0xd6ee('0x20'));this[_0xd6ee('0x7')][_0xd6ee('0x13')][_0x4a9bdb][_0xd6ee('0x21')]=![];this[_0xd6ee('0x7')][_0xd6ee('0x13')][_0x4a9bdb][_0xd6ee('0x19')]=undefined;}}}if(!_0xddca){setTimeout(this[_0xd6ee('0xd')][_0xd6ee('0x8')](this),0x3e8);}};function beepall(_0x1ef8e5,_0x228f3d,_0x15b752,_0x19be90){return new Beepall(_0x1ef8e5,_0x228f3d,_0x15b752,_0x19be90);}module['exports']=beepall;
\ No newline at end of file
+var _0xef8b=['./util','../../../../../config/logger','routing','notificationId','squeue','queue','push','bind','handleTimeout','drained','handleDrained','prototype','handleRun','isNil','Agents','length','realtime','info','[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s','agents','channel','RINGING','busyQueue','name','[%s][QUEUE]\x20ALL\x20AGENTS\x20ARE\x20BUSY','[%s][QUEUE]\x20EMPTY','STOP','TIMEOUT','busy','exports','uuid'];(function(_0x3ca52c,_0x8420f){var _0x2fb640=function(_0xec6b8e){while(--_0xec6b8e){_0x3ca52c['push'](_0x3ca52c['shift']());}};_0x2fb640(++_0x8420f);}(_0xef8b,0x192));var _0xbef8=function(_0x20acdb,_0x210c8e){_0x20acdb=_0x20acdb-0x0;var _0x383b0d=_0xef8b[_0x20acdb];return _0x383b0d;};'use strict';var _=require('lodash');var uuid=require(_0xbef8('0x0'));var util=require(_0xbef8('0x1'));var logger=require(_0xbef8('0x2'))(_0xbef8('0x3'));var Beepall=function(_0x3bed55,_0x361696,_0x336519,_0x224dd2){this[_0xbef8('0x4')]=uuid['v4']();this[_0xbef8('0x5')]=_0x3bed55;this[_0xbef8('0x6')]=_0x361696;this['realtime']=_0x336519;this[_0xbef8('0x3')]=_0x224dd2;this[_0xbef8('0x5')][_0xbef8('0x7')](this['handleRun'][_0xbef8('0x8')](this),this[_0xbef8('0x9')]['bind'](this));this['squeue']['on']('timeout',this[_0xbef8('0x9')][_0xbef8('0x8')](this));this[_0xbef8('0x5')]['on'](_0xbef8('0xa'),this[_0xbef8('0xb')][_0xbef8('0x8')](this));};Beepall[_0xbef8('0xc')][_0xbef8('0x7')]=function(){this[_0xbef8('0x5')]['push'](this[_0xbef8('0xd')][_0xbef8('0x8')](this),this[_0xbef8('0x9')]['bind'](this));};Beepall['prototype']['handleDrained']=function(_0x24f17d){this['handleTimeout'](!![]);};Beepall[_0xbef8('0xc')][_0xbef8('0xd')]=function(_0x51e53e){var _0x35c917=!![];if(!_['isNil'](this['queue'])&&!_[_0xbef8('0xe')](this['queue']['Agents'])&&this[_0xbef8('0x6')][_0xbef8('0xf')][_0xbef8('0x10')]>0x0){for(var _0x321ad0=0x0,_0x5d745b;_0x321ad0<this[_0xbef8('0x6')]['Agents'][_0xbef8('0x10')];_0x321ad0+=0x1){_0x5d745b=this[_0xbef8('0x6')]['Agents'][_0x321ad0]['id'];if(_[_0xbef8('0xe')](this[_0xbef8('0x11')]['agents'][_0x5d745b])){logger[_0xbef8('0x12')](_0xbef8('0x13'),this[_0xbef8('0x5')]['id'],_0x5d745b);}else{if(util['isAgentAvailable'](this['squeue']['id'],this[_0xbef8('0x11')][_0xbef8('0x14')][_0x5d745b],this[_0xbef8('0x5')][_0xbef8('0x15')],!![])){_0x35c917=![];util['writeLog'](this['squeue']['id'],this[_0xbef8('0x11')][_0xbef8('0x14')][_0x5d745b],_0xbef8('0x16'));this[_0xbef8('0x11')][_0xbef8('0x14')][_0x5d745b]['busy']=!![];this[_0xbef8('0x11')][_0xbef8('0x14')][_0x5d745b][_0xbef8('0x17')]=this['queue'][_0xbef8('0x18')];util['showNotification'](this[_0xbef8('0x4')],this['squeue']['id'],this[_0xbef8('0x11')]['agents'][_0x5d745b],this[_0xbef8('0x6')],this['routing']);}}}if(_0x35c917){logger[_0xbef8('0x12')](_0xbef8('0x19'),this[_0xbef8('0x5')]['id']);setTimeout(this[_0xbef8('0x7')][_0xbef8('0x8')](this),0x3e8);}}else{logger['info'](_0xbef8('0x1a'),this[_0xbef8('0x5')]['id']);setTimeout(this[_0xbef8('0x7')]['bind'](this),0x3e8);}};Beepall[_0xbef8('0xc')][_0xbef8('0x9')]=function(_0x256e48){if(!_[_0xbef8('0xe')](this['queue'])&&!_['isNil'](this[_0xbef8('0x6')][_0xbef8('0xf')])){for(var _0x4a5e03=0x0,_0x3bc1ef;_0x4a5e03<this['queue'][_0xbef8('0xf')]['length'];_0x4a5e03+=0x1){_0x3bc1ef=this[_0xbef8('0x6')][_0xbef8('0xf')][_0x4a5e03]['id'];if(_[_0xbef8('0xe')](this[_0xbef8('0x11')]['agents'][_0x3bc1ef])){logger[_0xbef8('0x12')](_0xbef8('0x13'),this[_0xbef8('0x5')]['id'],_0x3bc1ef);}else{util['hideNotification'](this['notificationId'],this[_0xbef8('0x5')]['id'],this[_0xbef8('0x11')][_0xbef8('0x14')][_0x3bc1ef],this[_0xbef8('0x6')],this['routing']);util['writeLog'](this[_0xbef8('0x5')]['id'],this[_0xbef8('0x11')][_0xbef8('0x14')][_0x3bc1ef],_0x256e48?_0xbef8('0x1b'):_0xbef8('0x1c'));this[_0xbef8('0x11')]['agents'][_0x3bc1ef][_0xbef8('0x1d')]=![];this[_0xbef8('0x11')][_0xbef8('0x14')][_0x3bc1ef][_0xbef8('0x17')]=undefined;}}}if(!_0x256e48){setTimeout(this[_0xbef8('0x7')][_0xbef8('0x8')](this),0x3e8);}};function beepall(_0x2fe527,_0x17ece7,_0x31a7b8,_0x25d8f3){return new Beepall(_0x2fe527,_0x17ece7,_0x31a7b8,_0x25d8f3);}module[_0xbef8('0x1e')]=beepall;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xeaf3=['exports','./rrmemory','./beepall','./agent'];(function(_0xfa5f6f,_0x4305ea){var _0x52ca44=function(_0x2b3fe0){while(--_0x2b3fe0){_0xfa5f6f['push'](_0xfa5f6f['shift']());}};_0x52ca44(++_0x4305ea);}(_0xeaf3,0x94));var _0x3eaf=function(_0x51e999,_0x1e7e76){_0x51e999=_0x51e999-0x0;var _0x46a243=_0xeaf3[_0x51e999];return _0x46a243;};'use strict';module[_0x3eaf('0x0')]={'rrmemory':require(_0x3eaf('0x1')),'beepall':require(_0x3eaf('0x2')),'agent':require(_0x3eaf('0x3'))};
\ No newline at end of file
+var _0xb1e1=['./beepall','./agent'];(function(_0xce8e4,_0xac6d00){var _0x516b14=function(_0x19375f){while(--_0x19375f){_0xce8e4['push'](_0xce8e4['shift']());}};_0x516b14(++_0xac6d00);}(_0xb1e1,0x160));var _0x1b1e=function(_0x2dd068,_0x1b28f1){_0x2dd068=_0x2dd068-0x0;var _0x1f3551=_0xb1e1[_0x2dd068];return _0x1f3551;};'use strict';module['exports']={'rrmemory':require('./rrmemory'),'beepall':require(_0x1b1e('0x0')),'agent':require(_0x1b1e('0x1'))};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x6b00=['handleCheckReject','isAgentAvailable','agents','agentId','channel','[%s][QUEUE]\x20available\x20again\x20%s','done','mapAgentsId','info','[%s][QUEUE]\x20try\x20with\x20%s','isNil','[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s','push','name','showNotification','writeLog','RINGING','[%s][QUEUE]\x20agent\x20skipped,\x20not\x20available\x20id\x20%s','[%s][QUEUE]\x20timeout\x20with\x20%s','busy','busyQueue','exports','../../../../../config/logger','routing','notificationId','squeue','queue','realtime','intervals','handleTimeout','bind','module','timeout','drained','prototype','handleRun','handleDrained'];(function(_0x473738,_0x15ea31){var _0x1df4ae=function(_0x417a72){while(--_0x417a72){_0x473738['push'](_0x473738['shift']());}};_0x1df4ae(++_0x15ea31);}(_0x6b00,0x119));var _0x06b0=function(_0x501510,_0x61caa9){_0x501510=_0x501510-0x0;var _0x1e6ee5=_0x6b00[_0x501510];return _0x1e6ee5;};'use strict';var rr=require('rr');var _=require('lodash');var uuid=require('uuid');var util=require('./util');var logger=require(_0x06b0('0x0'))(_0x06b0('0x1'));var RRMemory=function(_0xfe8e10,_0x1bfc67,_0x406b13,_0x5e4fb6){this[_0x06b0('0x2')]=uuid['v4']();this[_0x06b0('0x3')]=_0xfe8e10;this[_0x06b0('0x4')]=_0x1bfc67;this[_0x06b0('0x5')]=_0x406b13;this[_0x06b0('0x1')]=_0x5e4fb6;this[_0x06b0('0x6')]={};this[_0x06b0('0x3')]['push'](this['handleRun']['bind'](this),this[_0x06b0('0x7')][_0x06b0('0x8')](this),this[_0x06b0('0x9')]);this[_0x06b0('0x3')]['on'](_0x06b0('0xa'),this[_0x06b0('0x7')][_0x06b0('0x8')](this));this[_0x06b0('0x3')]['on'](_0x06b0('0xb'),this['handleDrained'][_0x06b0('0x8')](this));};RRMemory[_0x06b0('0xc')]['push']=function(){this[_0x06b0('0x3')]['push'](this[_0x06b0('0xd')][_0x06b0('0x8')](this),this[_0x06b0('0x7')][_0x06b0('0x8')](this));};RRMemory[_0x06b0('0xc')][_0x06b0('0xe')]=function(_0x43c798){this[_0x06b0('0x7')](!![]);};RRMemory['prototype'][_0x06b0('0xf')]=function(_0x36774a){if(util[_0x06b0('0x10')](this[_0x06b0('0x3')]['id'],this[_0x06b0('0x5')][_0x06b0('0x11')][this[_0x06b0('0x12')]],this[_0x06b0('0x3')][_0x06b0('0x13')],!![])){logger['info'](_0x06b0('0x14'),this['squeue']['id'],this[_0x06b0('0x12')]);clearInterval(this['intervals'][this['agentId']]);_0x36774a[_0x06b0('0x15')]();setTimeout(this['push'][_0x06b0('0x8')](this),0x3e8);}};RRMemory['prototype'][_0x06b0('0xd')]=function(_0x365711){this[_0x06b0('0x12')]=rr(this['queue'][_0x06b0('0x16')]);logger[_0x06b0('0x17')](_0x06b0('0x18'),this['squeue']['id'],this[_0x06b0('0x12')]);if(_[_0x06b0('0x19')](this['realtime'][_0x06b0('0x11')][this['agentId']])){logger['info'](_0x06b0('0x1a'),this[_0x06b0('0x3')]['id'],this[_0x06b0('0x12')]);_0x365711[_0x06b0('0x15')]();setTimeout(this[_0x06b0('0x1b')]['bind'](this),0x3e8);}else{if(util[_0x06b0('0x10')](this['squeue']['id'],this[_0x06b0('0x5')][_0x06b0('0x11')][this[_0x06b0('0x12')]],this[_0x06b0('0x3')][_0x06b0('0x13')],!![])){this['realtime'][_0x06b0('0x11')][this[_0x06b0('0x12')]]['busy']=!![];this[_0x06b0('0x5')][_0x06b0('0x11')][this[_0x06b0('0x12')]]['busyQueue']=this[_0x06b0('0x4')][_0x06b0('0x1c')];util[_0x06b0('0x1d')](this[_0x06b0('0x2')],this[_0x06b0('0x3')]['id'],this[_0x06b0('0x5')][_0x06b0('0x11')][this[_0x06b0('0x12')]],this[_0x06b0('0x4')],this[_0x06b0('0x1')]);util[_0x06b0('0x1e')](this[_0x06b0('0x3')]['id'],this[_0x06b0('0x5')][_0x06b0('0x11')][this[_0x06b0('0x12')]],_0x06b0('0x1f'));this[_0x06b0('0x6')][this[_0x06b0('0x12')]]=setInterval(this[_0x06b0('0xf')][_0x06b0('0x8')](this,_0x365711),0x3e8);}else{logger['info'](_0x06b0('0x20'),this[_0x06b0('0x3')]['id'],this[_0x06b0('0x12')]);_0x365711['done']();setTimeout(this[_0x06b0('0x1b')]['bind'](this),0x3e8);}}};RRMemory[_0x06b0('0xc')][_0x06b0('0x7')]=function(_0x24d5b){logger[_0x06b0('0x17')](_0x06b0('0x21'),this[_0x06b0('0x3')]['id'],this[_0x06b0('0x12')]);if(_[_0x06b0('0x19')](this['realtime'][_0x06b0('0x11')][this[_0x06b0('0x12')]])){logger[_0x06b0('0x17')]('[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s',this[_0x06b0('0x3')]['id'],this['agentId']);}else{clearInterval(this[_0x06b0('0x6')][this[_0x06b0('0x12')]]);util['hideNotification'](this[_0x06b0('0x2')],this[_0x06b0('0x3')]['id'],this[_0x06b0('0x5')][_0x06b0('0x11')][this['agentId']],this[_0x06b0('0x4')],this['routing']);util[_0x06b0('0x1e')](this[_0x06b0('0x3')]['id'],this[_0x06b0('0x5')][_0x06b0('0x11')][this['agentId']],'TIMEOUT');this[_0x06b0('0x5')]['agents'][this[_0x06b0('0x12')]][_0x06b0('0x22')]=![];this['realtime'][_0x06b0('0x11')][this[_0x06b0('0x12')]][_0x06b0('0x23')]=undefined;}if(!_0x24d5b){setTimeout(this[_0x06b0('0x1b')]['bind'](this),0x3e8);}};function rrmemory(_0x2d5a6b,_0xf9ca1b,_0x3e6742,_0x2afdbc){return new RRMemory(_0x2d5a6b,_0xf9ca1b,_0x3e6742,_0x2afdbc);}module[_0x06b0('0x24')]=rrmemory;
\ No newline at end of file
+var _0x7036=['module','timeout','drained','handleDrained','prototype','push','handleRun','handleCheckReject','isAgentAvailable','agents','channel','info','[%s][QUEUE]\x20available\x20again\x20%s','agentId','intervals','done','mapAgentsId','[%s][QUEUE]\x20try\x20with\x20%s','isNil','busy','busyQueue','name','showNotification','writeLog','RINGING','[%s][QUEUE]\x20agent\x20skipped,\x20not\x20available\x20id\x20%s','[%s][QUEUE]\x20timeout\x20with\x20%s','[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s','hideNotification','lodash','./util','../../../../../config/logger','routing','notificationId','squeue','queue','realtime','bind','handleTimeout'];(function(_0x142f90,_0x4a19b0){var _0x3c31b6=function(_0x163c8e){while(--_0x163c8e){_0x142f90['push'](_0x142f90['shift']());}};_0x3c31b6(++_0x4a19b0);}(_0x7036,0x17c));var _0x6703=function(_0x41273c,_0x4c0c04){_0x41273c=_0x41273c-0x0;var _0x453ce4=_0x7036[_0x41273c];return _0x453ce4;};'use strict';var rr=require('rr');var _=require(_0x6703('0x0'));var uuid=require('uuid');var util=require(_0x6703('0x1'));var logger=require(_0x6703('0x2'))(_0x6703('0x3'));var RRMemory=function(_0x1e812c,_0x37c6c3,_0x531f45,_0x35e068){this[_0x6703('0x4')]=uuid['v4']();this[_0x6703('0x5')]=_0x1e812c;this[_0x6703('0x6')]=_0x37c6c3;this[_0x6703('0x7')]=_0x531f45;this[_0x6703('0x3')]=_0x35e068;this['intervals']={};this[_0x6703('0x5')]['push'](this['handleRun'][_0x6703('0x8')](this),this[_0x6703('0x9')][_0x6703('0x8')](this),this[_0x6703('0xa')]);this['squeue']['on'](_0x6703('0xb'),this[_0x6703('0x9')][_0x6703('0x8')](this));this[_0x6703('0x5')]['on'](_0x6703('0xc'),this[_0x6703('0xd')]['bind'](this));};RRMemory[_0x6703('0xe')][_0x6703('0xf')]=function(){this[_0x6703('0x5')]['push'](this[_0x6703('0x10')]['bind'](this),this[_0x6703('0x9')]['bind'](this));};RRMemory['prototype'][_0x6703('0xd')]=function(_0x3125b3){this[_0x6703('0x9')](!![]);};RRMemory[_0x6703('0xe')][_0x6703('0x11')]=function(_0x3b1af4){if(util[_0x6703('0x12')](this[_0x6703('0x5')]['id'],this[_0x6703('0x7')][_0x6703('0x13')][this['agentId']],this[_0x6703('0x5')][_0x6703('0x14')],!![])){logger[_0x6703('0x15')](_0x6703('0x16'),this[_0x6703('0x5')]['id'],this[_0x6703('0x17')]);clearInterval(this[_0x6703('0x18')][this['agentId']]);_0x3b1af4[_0x6703('0x19')]();setTimeout(this['push'][_0x6703('0x8')](this),0x3e8);}};RRMemory[_0x6703('0xe')]['handleRun']=function(_0x101ecf){this[_0x6703('0x17')]=rr(this['queue'][_0x6703('0x1a')]);logger[_0x6703('0x15')](_0x6703('0x1b'),this[_0x6703('0x5')]['id'],this[_0x6703('0x17')]);if(_[_0x6703('0x1c')](this[_0x6703('0x7')][_0x6703('0x13')][this[_0x6703('0x17')]])){logger['info']('[%s][QUEUE]\x20agent\x20skipped,\x20unknown\x20id\x20%s',this[_0x6703('0x5')]['id'],this[_0x6703('0x17')]);_0x101ecf[_0x6703('0x19')]();setTimeout(this[_0x6703('0xf')][_0x6703('0x8')](this),0x3e8);}else{if(util['isAgentAvailable'](this[_0x6703('0x5')]['id'],this[_0x6703('0x7')][_0x6703('0x13')][this[_0x6703('0x17')]],this['squeue'][_0x6703('0x14')],!![])){this[_0x6703('0x7')][_0x6703('0x13')][this[_0x6703('0x17')]][_0x6703('0x1d')]=!![];this[_0x6703('0x7')][_0x6703('0x13')][this[_0x6703('0x17')]][_0x6703('0x1e')]=this[_0x6703('0x6')][_0x6703('0x1f')];util[_0x6703('0x20')](this[_0x6703('0x4')],this['squeue']['id'],this['realtime'][_0x6703('0x13')][this[_0x6703('0x17')]],this['queue'],this[_0x6703('0x3')]);util[_0x6703('0x21')](this[_0x6703('0x5')]['id'],this['realtime'][_0x6703('0x13')][this['agentId']],_0x6703('0x22'));this['intervals'][this[_0x6703('0x17')]]=setInterval(this[_0x6703('0x11')]['bind'](this,_0x101ecf),0x3e8);}else{logger[_0x6703('0x15')](_0x6703('0x23'),this['squeue']['id'],this['agentId']);_0x101ecf['done']();setTimeout(this['push']['bind'](this),0x3e8);}}};RRMemory[_0x6703('0xe')][_0x6703('0x9')]=function(_0x5ecdcc){logger[_0x6703('0x15')](_0x6703('0x24'),this[_0x6703('0x5')]['id'],this[_0x6703('0x17')]);if(_[_0x6703('0x1c')](this[_0x6703('0x7')][_0x6703('0x13')][this['agentId']])){logger['info'](_0x6703('0x25'),this['squeue']['id'],this[_0x6703('0x17')]);}else{clearInterval(this[_0x6703('0x18')][this[_0x6703('0x17')]]);util[_0x6703('0x26')](this[_0x6703('0x4')],this[_0x6703('0x5')]['id'],this['realtime'][_0x6703('0x13')][this['agentId']],this[_0x6703('0x6')],this[_0x6703('0x3')]);util[_0x6703('0x21')](this[_0x6703('0x5')]['id'],this[_0x6703('0x7')][_0x6703('0x13')][this[_0x6703('0x17')]],'TIMEOUT');this[_0x6703('0x7')][_0x6703('0x13')][this[_0x6703('0x17')]][_0x6703('0x1d')]=![];this[_0x6703('0x7')][_0x6703('0x13')][this['agentId']][_0x6703('0x1e')]=undefined;}if(!_0x5ecdcc){setTimeout(this[_0x6703('0xf')][_0x6703('0x8')](this),0x3e8);}};function rrmemory(_0x57acf4,_0x4b3be6,_0x50724e,_0x2ddc01){return new RRMemory(_0x57acf4,_0x4b3be6,_0x50724e,_0x2ddc01);}module['exports']=rrmemory;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x8ca9=['user:%s','name','user:save','\x20interaction','account','notificationShake','body','queue','msg','getMustacheRender','notificationTemplate','I\x20can\x27t\x20render\x20your\x20template','error','[%s][QUEUE]\x20%s','message','save','remove','info','isAgentAvailable','busy','BUSY','online','OFFLINE','Pause','PAUSE','Capacity','CurrentCapacity','\x20MAXCAPACITY','hideNotification','writeLog','lodash','util','../utils','mustache','ioredis','../../../../../config/environment','../../../../../config/logger','defaults','localhost','redis','emit','format'];(function(_0x487f8e,_0x701353){var _0x3ee1ba=function(_0x1a8720){while(--_0x1a8720){_0x487f8e['push'](_0x487f8e['shift']());}};_0x3ee1ba(++_0x701353);}(_0x8ca9,0x9c));var _0x98ca=function(_0x11d7c8,_0x5e314d){_0x11d7c8=_0x11d7c8-0x0;var _0x13f99b=_0x8ca9[_0x11d7c8];return _0x13f99b;};'use strict';var _=require(_0x98ca('0x0'));var util=require(_0x98ca('0x1'));var utils=require(_0x98ca('0x2'));var Mustache=require(_0x98ca('0x3'));var Redis=require(_0x98ca('0x4'));var config=require(_0x98ca('0x5'));var logger=require(_0x98ca('0x6'))('routing');config['redis']=_[_0x98ca('0x7')](config['redis'],{'host':_0x98ca('0x8'),'port':0x18eb});var io=require('socket.io-emitter')(new Redis(config[_0x98ca('0x9')]));function emit(_0xca4097,_0x18c349,_0x2852a0){io['to'](_0xca4097)[_0x98ca('0xa')](_0x18c349,_0x2852a0);}function sendNotification(_0x28a37a,_0x162bd0,_0x210234,_0x277c29,_0x404cc1,_0x572858){io['to'](util[_0x98ca('0xb')](_0x98ca('0xc'),_0x277c29[_0x98ca('0xd')]))[_0x98ca('0xa')](_0x98ca('0xe'),_0x277c29);var _0x276213=_0x572858||{};var _0x17ee87=_0x210234['split']('.');var _0x16221a={'uniqueid':_0x162bd0,'channel':_0x17ee87[0x0],'id':_0x17ee87[0x1],'title':_0x17ee87[0x0]+_0x98ca('0xf'),'interactionId':_0x17ee87[0x2],'queue':_0x404cc1?_0x404cc1[_0x98ca('0xd')]:null,'sound':_0x276213[_0x98ca('0x10')]['notificationSound'],'shake':_0x276213[_0x98ca('0x10')][_0x98ca('0x11')]};try{if(!_0x276213[_0x98ca('0x12')]){_0x276213[_0x98ca('0x12')]={};}if(_0x404cc1){_0x276213[_0x98ca('0x12')][_0x98ca('0x13')]=_0x404cc1;}else if(_0x276213[_0x98ca('0x12')]['queue']){delete _0x276213[_0x98ca('0x12')][_0x98ca('0x13')];}_0x16221a[_0x98ca('0x14')]=utils[_0x98ca('0x15')](_0x276213['account'][_0x98ca('0x16')],_0x276213);}catch(_0x3c2f65){_0x16221a[_0x98ca('0x14')]=_0x98ca('0x17');logger[_0x98ca('0x18')](util[_0x98ca('0xb')](_0x98ca('0x19'),_0x162bd0,_0x3c2f65[_0x98ca('0x1a')]));}io['to'](util[_0x98ca('0xb')](_0x98ca('0xc'),_0x277c29[_0x98ca('0xd')]))['emit'](util[_0x98ca('0xb')]('notification:%s',_0x28a37a?_0x98ca('0x1b'):_0x98ca('0x1c')),_0x16221a);}function writeLog(_0x50f8b4,_0x5ca905,_0x4620e3){return logger[_0x98ca('0x1d')](util[_0x98ca('0xb')]('[%s][QUEUE][AGENT:%s][STATUS:%s]',_0x50f8b4,_0x5ca905[_0x98ca('0xd')],_0x4620e3));}exports[_0x98ca('0x1e')]=function(_0x56f799,_0x6651c8,_0x5dc400,_0x3fd0bd){if(_0x6651c8[_0x98ca('0x1f')]){writeLog(_0x56f799,_0x6651c8,_0x98ca('0x20'));return![];}if(!_0x6651c8[_0x98ca('0x21')]){writeLog(_0x56f799,_0x6651c8,_0x98ca('0x22'));return![];}if(_0x6651c8[_0x5dc400+_0x98ca('0x23')]){writeLog(_0x56f799,_0x6651c8,_0x98ca('0x24'));return![];}if(_0x3fd0bd&&_0x6651c8['hasOwnProperty'](_0x5dc400+_0x98ca('0x25'))&&_0x6651c8['hasOwnProperty'](_0x5dc400+_0x98ca('0x26'))){if(_0x6651c8[_0x5dc400+_0x98ca('0x25')]>0x0&&_0x6651c8[_0x5dc400+'CurrentCapacity']>=_0x6651c8[_0x5dc400+_0x98ca('0x25')]){writeLog(_0x56f799,_0x6651c8,_0x5dc400['toUpperCase']()+_0x98ca('0x27'));return![];}}return!![];};exports['showNotification']=function(_0x5bf77d,_0x14bfb4,_0x540f45,_0x342a83,_0x35b920){return sendNotification(!![],_0x5bf77d,_0x14bfb4,_0x540f45,_0x342a83,_0x35b920);};exports[_0x98ca('0x28')]=function(_0x21a12a,_0x3b3e60,_0x1e7fcf,_0x11389a,_0x1bf154){return sendNotification(![],_0x21a12a,_0x3b3e60,_0x1e7fcf,_0x11389a,_0x1bf154);};exports[_0x98ca('0x29')]=writeLog;
\ No newline at end of file
+var _0x7278=['redis','defaults','localhost','socket.io-emitter','emit','format','user:%s','name','user:save','split','\x20interaction','account','notificationSound','notificationShake','body','queue','msg','notificationTemplate','I\x20can\x27t\x20render\x20your\x20template','error','message','notification:%s','remove','info','[%s][QUEUE][AGENT:%s][STATUS:%s]','isAgentAvailable','busy','BUSY','Pause','PAUSE','hasOwnProperty','CurrentCapacity','Capacity','toUpperCase','\x20MAXCAPACITY','showNotification','hideNotification','writeLog','lodash','util','../utils','mustache','ioredis','../../../../../config/logger','routing'];(function(_0x153ecf,_0x50f25c){var _0x1dd71d=function(_0x54216a){while(--_0x54216a){_0x153ecf['push'](_0x153ecf['shift']());}};_0x1dd71d(++_0x50f25c);}(_0x7278,0x161));var _0x8727=function(_0x363d37,_0x5a95d6){_0x363d37=_0x363d37-0x0;var _0x3f5fb9=_0x7278[_0x363d37];return _0x3f5fb9;};'use strict';var _=require(_0x8727('0x0'));var util=require(_0x8727('0x1'));var utils=require(_0x8727('0x2'));var Mustache=require(_0x8727('0x3'));var Redis=require(_0x8727('0x4'));var config=require('../../../../../config/environment');var logger=require(_0x8727('0x5'))(_0x8727('0x6'));config[_0x8727('0x7')]=_[_0x8727('0x8')](config[_0x8727('0x7')],{'host':_0x8727('0x9'),'port':0x18eb});var io=require(_0x8727('0xa'))(new Redis(config['redis']));function emit(_0xfd1902,_0x2f491c,_0xffd783){io['to'](_0xfd1902)[_0x8727('0xb')](_0x2f491c,_0xffd783);}function sendNotification(_0x4160c3,_0x4c5b50,_0x4b1985,_0x4df6f8,_0xb575a3,_0x336193){io['to'](util[_0x8727('0xc')](_0x8727('0xd'),_0x4df6f8[_0x8727('0xe')]))[_0x8727('0xb')](_0x8727('0xf'),_0x4df6f8);var _0xefa0bf=_0x336193||{};var _0x4af9d2=_0x4b1985[_0x8727('0x10')]('.');var _0x2d9d47={'uniqueid':_0x4c5b50,'channel':_0x4af9d2[0x0],'id':_0x4af9d2[0x1],'title':_0x4af9d2[0x0]+_0x8727('0x11'),'interactionId':_0x4af9d2[0x2],'queue':_0xb575a3?_0xb575a3['name']:null,'sound':_0xefa0bf[_0x8727('0x12')][_0x8727('0x13')],'shake':_0xefa0bf['account'][_0x8727('0x14')]};try{if(!_0xefa0bf[_0x8727('0x15')]){_0xefa0bf[_0x8727('0x15')]={};}if(_0xb575a3){_0xefa0bf[_0x8727('0x15')][_0x8727('0x16')]=_0xb575a3;}else if(_0xefa0bf[_0x8727('0x15')][_0x8727('0x16')]){delete _0xefa0bf[_0x8727('0x15')][_0x8727('0x16')];}_0x2d9d47[_0x8727('0x17')]=utils['getMustacheRender'](_0xefa0bf[_0x8727('0x12')][_0x8727('0x18')],_0xefa0bf);}catch(_0x16d1b7){_0x2d9d47[_0x8727('0x17')]=_0x8727('0x19');logger[_0x8727('0x1a')](util['format']('[%s][QUEUE]\x20%s',_0x4c5b50,_0x16d1b7[_0x8727('0x1b')]));}io['to'](util['format'](_0x8727('0xd'),_0x4df6f8[_0x8727('0xe')]))[_0x8727('0xb')](util[_0x8727('0xc')](_0x8727('0x1c'),_0x4160c3?'save':_0x8727('0x1d')),_0x2d9d47);}function writeLog(_0x286856,_0x8cde82,_0x1d78df){return logger[_0x8727('0x1e')](util[_0x8727('0xc')](_0x8727('0x1f'),_0x286856,_0x8cde82[_0x8727('0xe')],_0x1d78df));}exports[_0x8727('0x20')]=function(_0x56ffd5,_0x268a13,_0x1a69d5,_0x4c699b){if(_0x268a13[_0x8727('0x21')]){writeLog(_0x56ffd5,_0x268a13,_0x8727('0x22'));return![];}if(!_0x268a13['online']){writeLog(_0x56ffd5,_0x268a13,'OFFLINE');return![];}if(_0x268a13[_0x1a69d5+_0x8727('0x23')]){writeLog(_0x56ffd5,_0x268a13,_0x8727('0x24'));return![];}if(_0x4c699b&&_0x268a13[_0x8727('0x25')](_0x1a69d5+'Capacity')&&_0x268a13[_0x8727('0x25')](_0x1a69d5+_0x8727('0x26'))){if(_0x268a13[_0x1a69d5+_0x8727('0x27')]>0x0&&_0x268a13[_0x1a69d5+_0x8727('0x26')]>=_0x268a13[_0x1a69d5+_0x8727('0x27')]){writeLog(_0x56ffd5,_0x268a13,_0x1a69d5[_0x8727('0x28')]()+_0x8727('0x29'));return![];}}return!![];};exports[_0x8727('0x2a')]=function(_0x5d03f2,_0x243f15,_0x307055,_0x54034d,_0x23325f){return sendNotification(!![],_0x5d03f2,_0x243f15,_0x307055,_0x54034d,_0x23325f);};exports[_0x8727('0x2b')]=function(_0x3ecd6a,_0x228ca9,_0x416da8,_0x1e21b9,_0x57733d){return sendNotification(![],_0x3ecd6a,_0x228ca9,_0x416da8,_0x1e21b9,_0x57733d);};exports[_0x8727('0x2c')]=writeLog;
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe9ad=['join','info','[%s][SYSTEM]\x20no\x20command\x20executed,\x20force\x20next','next','getMustacheRender','[%s][SYSTEM]\x20commnad:\x20%s','trim','[%s][SYSTEM]\x20result\x20code:\x20%s','replace','isNil','[%s][SYSTEM]\x20no\x20variable','body','[%s][SYSTEM]\x20set\x20variable\x20%s:\x20%s','stringify','validate','shelljs','lodash','./utils','routing','length','error','[%s][SYSTEM]\x20%s','map','message'];(function(_0x183903,_0x2b47c2){var _0x58d0b4=function(_0x5269cd){while(--_0x5269cd){_0x183903['push'](_0x183903['shift']());}};_0x58d0b4(++_0x2b47c2);}(_0xe9ad,0x1be));var _0xde9a=function(_0x182094,_0x269200){_0x182094=_0x182094-0x0;var _0x2e74ff=_0xe9ad[_0x182094];return _0x2e74ff;};'use strict';var schema=require(_0xde9a('0x0'));var sh=require(_0xde9a('0x1'));var _=require(_0xde9a('0x2'));var utils=require(_0xde9a('0x3'));var logger=require('../../../../config/logger')(_0xde9a('0x4'));var system=schema({'command':{'type':'string','required':!![],'message':'command\x20is\x20a\x20string\x20and\x20it\x20is\x20required'}});exports['consequence']=function(_0x1107e7,_0x46e99f){return function(_0x30f5ec){try{var _0x2429c4={'command':_0x46e99f[0x0]};var _0x54a5b2=system[_0xde9a('0x0')](_0x2429c4,{'typecast':!![]});if(_0x54a5b2[_0xde9a('0x5')]){logger[_0xde9a('0x6')](_0xde9a('0x7'),_0x1107e7,_[_0xde9a('0x8')](_0x54a5b2,_0xde9a('0x9'))[_0xde9a('0xa')](',\x20'));logger[_0xde9a('0xb')](_0xde9a('0xc'),_0x1107e7);_0x30f5ec[_0xde9a('0xd')]();}else{var _0x1c7559=this;var _0x2a4544=utils[_0xde9a('0xe')](_0x46e99f[0x0],this);logger[_0xde9a('0xb')](_0xde9a('0xf'),_0x1107e7,_0x2a4544);sh['exec'](_[_0xde9a('0x10')](_0x2a4544),function(_0xed9e38,_0x4553dd){logger['info'](_0xde9a('0x11'),_0x1107e7,_0xed9e38);if(_0xed9e38==0x0){var _0x979374=_0x4553dd[_0xde9a('0x12')](/(\r\n|\n|\r)/gm,'');if(_[_0xde9a('0x13')](_0x46e99f[0x1])||_['isEmpty'](_0x46e99f[0x1])){logger['info'](_0xde9a('0x14'),_0x1107e7);_0x1c7559[_0xde9a('0x15')][_0x46e99f[0x1]]=_0x979374;}else{logger[_0xde9a('0xb')](_0xde9a('0x16'),_0x1107e7,_0x46e99f[0x1],_0x979374);_0x1c7559[_0xde9a('0x15')][_0x46e99f[0x1]]=_0x979374;}}_0x30f5ec[_0xde9a('0xd')]();});}}catch(_0x3fc1aa){logger['error'](_0xde9a('0x7'),_0x1107e7,_['isObject'](_0x3fc1aa)?JSON[_0xde9a('0x17')](_0x3fc1aa):_0x3fc1aa);logger[_0xde9a('0xb')](_0xde9a('0xc'),_0x1107e7);_0x30f5ec[_0xde9a('0xd')]();}};};
\ No newline at end of file
+var _0xd1a8=['trim','[%s][SYSTEM]\x20result\x20code:\x20%s','replace','isNil','[%s][SYSTEM]\x20no\x20variable','body','[%s][SYSTEM]\x20set\x20variable\x20%s:\x20%s','next','isObject','stringify','shelljs','lodash','./utils','../../../../config/logger','routing','string','consequence','validate','length','error','message','join','info','[%s][SYSTEM]\x20no\x20command\x20executed,\x20force\x20next','getMustacheRender','[%s][SYSTEM]\x20commnad:\x20%s'];(function(_0x55ca59,_0x30b9c0){var _0x4c8262=function(_0x3415c1){while(--_0x3415c1){_0x55ca59['push'](_0x55ca59['shift']());}};_0x4c8262(++_0x30b9c0);}(_0xd1a8,0xc0));var _0x8d1a=function(_0x41bc0e,_0x55b9ed){_0x41bc0e=_0x41bc0e-0x0;var _0xf4d917=_0xd1a8[_0x41bc0e];return _0xf4d917;};'use strict';var schema=require('validate');var sh=require(_0x8d1a('0x0'));var _=require(_0x8d1a('0x1'));var utils=require(_0x8d1a('0x2'));var logger=require(_0x8d1a('0x3'))(_0x8d1a('0x4'));var system=schema({'command':{'type':_0x8d1a('0x5'),'required':!![],'message':'command\x20is\x20a\x20string\x20and\x20it\x20is\x20required'}});exports[_0x8d1a('0x6')]=function(_0xdd9c12,_0x57356f){return function(_0x1baf87){try{var _0x49513e={'command':_0x57356f[0x0]};var _0x329446=system[_0x8d1a('0x7')](_0x49513e,{'typecast':!![]});if(_0x329446[_0x8d1a('0x8')]){logger[_0x8d1a('0x9')]('[%s][SYSTEM]\x20%s',_0xdd9c12,_['map'](_0x329446,_0x8d1a('0xa'))[_0x8d1a('0xb')](',\x20'));logger[_0x8d1a('0xc')](_0x8d1a('0xd'),_0xdd9c12);_0x1baf87['next']();}else{var _0x27ef10=this;var _0x13e7ef=utils[_0x8d1a('0xe')](_0x57356f[0x0],this);logger[_0x8d1a('0xc')](_0x8d1a('0xf'),_0xdd9c12,_0x13e7ef);sh['exec'](_[_0x8d1a('0x10')](_0x13e7ef),function(_0x31788f,_0x132529){logger[_0x8d1a('0xc')](_0x8d1a('0x11'),_0xdd9c12,_0x31788f);if(_0x31788f==0x0){var _0x4798e8=_0x132529[_0x8d1a('0x12')](/(\r\n|\n|\r)/gm,'');if(_[_0x8d1a('0x13')](_0x57356f[0x1])||_['isEmpty'](_0x57356f[0x1])){logger[_0x8d1a('0xc')](_0x8d1a('0x14'),_0xdd9c12);_0x27ef10[_0x8d1a('0x15')][_0x57356f[0x1]]=_0x4798e8;}else{logger[_0x8d1a('0xc')](_0x8d1a('0x16'),_0xdd9c12,_0x57356f[0x1],_0x4798e8);_0x27ef10[_0x8d1a('0x15')][_0x57356f[0x1]]=_0x4798e8;}}_0x1baf87[_0x8d1a('0x17')]();});}}catch(_0x4d56e5){logger['error']('[%s][SYSTEM]\x20%s',_0xdd9c12,_[_0x8d1a('0x18')](_0x4d56e5)?JSON[_0x8d1a('0x19')](_0x4d56e5):_0x4d56e5);logger[_0x8d1a('0xc')]('[%s][SYSTEM]\x20no\x20command\x20executed,\x20force\x20next',_0xdd9c12);_0x1baf87[_0x8d1a('0x17')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xe9a6=['../../rpc/openchannelInteraction','../../rpc/smsInteraction','../../rpc/mailInteraction','../../rpc/faxInteraction','../../rpc/whatsappInteraction','../../../../config/logger','routing','consequence','length','error','[%s][TAG]\x20%s','map','message','join','info','[%s][TAG]\x20no\x20tags\x20saved,\x20force\x20next','next','channel','Interaction','addTags','interaction','[%s][TAG]\x20tag\x20\x22%s\x22\x20added\x20to\x20%s\x20interaction\x20%s','catch','stringify','validate','../../rpc/chatInteraction'];(function(_0x3e312d,_0x4957e2){var _0x594500=function(_0x10222d){while(--_0x10222d){_0x3e312d['push'](_0x3e312d['shift']());}};_0x594500(++_0x4957e2);}(_0xe9a6,0x1b8));var _0x6e9a=function(_0x1a7a20,_0x14371f){_0x1a7a20=_0x1a7a20-0x0;var _0x137954=_0xe9a6[_0x1a7a20];return _0x137954;};'use strict';var schema=require(_0x6e9a('0x0'));var _=require('lodash');var rpc={'chatInteraction':require(_0x6e9a('0x1')),'openchannelInteraction':require(_0x6e9a('0x2')),'smsInteraction':require(_0x6e9a('0x3')),'mailInteraction':require(_0x6e9a('0x4')),'faxInteraction':require(_0x6e9a('0x5')),'whatsappInteraction':require(_0x6e9a('0x6'))};var logger=require(_0x6e9a('0x7'))(_0x6e9a('0x8'));var tag=schema({'tag':{'type':'number','required':!![],'message':'TagId\x20is\x20a\x20string\x20and\x20it\x20is\x20required'}});exports[_0x6e9a('0x9')]=function(_0x3c651e,_0x417742,_0x102c11,_0x35af1e){return function(_0x5e8122){try{var _0x12ca27={'tag':_0x417742[0x0]};var _0x3fec28=tag['validate'](_0x12ca27,{'typecast':!![]});if(_0x3fec28[_0x6e9a('0xa')]){logger[_0x6e9a('0xb')](_0x6e9a('0xc'),_0x3c651e,_[_0x6e9a('0xd')](_0x3fec28,_0x6e9a('0xe'))[_0x6e9a('0xf')](',\x20'));logger[_0x6e9a('0x10')](_0x6e9a('0x11'),_0x3c651e);_0x5e8122[_0x6e9a('0x12')]();}else{var _0x517f0c={'ids':[_0x417742[0x0]]};if(rpc[_0x35af1e[_0x6e9a('0x13')]+_0x6e9a('0x14')]){rpc[_0x35af1e['channel']+'Interaction'][_0x6e9a('0x15')](_0x35af1e[_0x6e9a('0x16')]['id'],_0x517f0c)['then'](function(_0x412530){logger[_0x6e9a('0x10')](_0x6e9a('0x17'),_0x3c651e,_0x417742[0x1],_0x35af1e['channel'],_0x35af1e['interaction']['id']);})[_0x6e9a('0x18')](function(_0x499f19){logger['error'](_0x6e9a('0xc'),_0x3c651e,JSON[_0x6e9a('0x19')](_0x499f19));logger[_0x6e9a('0x10')](_0x6e9a('0x11'),_0x3c651e);})['finally'](function(){_0x5e8122[_0x6e9a('0x12')]();});}}}catch(_0x5a2896){logger[_0x6e9a('0xb')]('[%s][TAG]\x20%s',_0x3c651e,_['isObject'](_0x5a2896)?JSON['stringify'](_0x5a2896):_0x5a2896);logger['info'](_0x6e9a('0x11'),_0x3c651e);_0x5e8122[_0x6e9a('0x12')]();}};};
\ No newline at end of file
+var _0x52de=['[%s][TAG]\x20tag\x20\x22%s\x22\x20added\x20to\x20%s\x20interaction\x20%s','catch','error','finally','next','validate','../../rpc/openchannelInteraction','../../rpc/smsInteraction','../../rpc/mailInteraction','../../rpc/faxInteraction','../../rpc/whatsappInteraction','../../../../config/logger','number','TagId\x20is\x20a\x20string\x20and\x20it\x20is\x20required','consequence','[%s][TAG]\x20%s','map','message','join','info','[%s][TAG]\x20no\x20tags\x20saved,\x20force\x20next','channel','Interaction','addTags'];(function(_0x412e27,_0x20a978){var _0x53da42=function(_0x43cae5){while(--_0x43cae5){_0x412e27['push'](_0x412e27['shift']());}};_0x53da42(++_0x20a978);}(_0x52de,0xc5));var _0xe52d=function(_0x40a045,_0x516f0e){_0x40a045=_0x40a045-0x0;var _0x1a687c=_0x52de[_0x40a045];return _0x1a687c;};'use strict';var schema=require(_0xe52d('0x0'));var _=require('lodash');var rpc={'chatInteraction':require('../../rpc/chatInteraction'),'openchannelInteraction':require(_0xe52d('0x1')),'smsInteraction':require(_0xe52d('0x2')),'mailInteraction':require(_0xe52d('0x3')),'faxInteraction':require(_0xe52d('0x4')),'whatsappInteraction':require(_0xe52d('0x5'))};var logger=require(_0xe52d('0x6'))('routing');var tag=schema({'tag':{'type':_0xe52d('0x7'),'required':!![],'message':_0xe52d('0x8')}});exports[_0xe52d('0x9')]=function(_0x520b42,_0x342a4f,_0x2cdeee,_0x25091d){return function(_0x5dd689){try{var _0x59c753={'tag':_0x342a4f[0x0]};var _0x3cfb37=tag['validate'](_0x59c753,{'typecast':!![]});if(_0x3cfb37['length']){logger['error'](_0xe52d('0xa'),_0x520b42,_[_0xe52d('0xb')](_0x3cfb37,_0xe52d('0xc'))[_0xe52d('0xd')](',\x20'));logger[_0xe52d('0xe')](_0xe52d('0xf'),_0x520b42);_0x5dd689['next']();}else{var _0x5c49db={'ids':[_0x342a4f[0x0]]};if(rpc[_0x25091d[_0xe52d('0x10')]+_0xe52d('0x11')]){rpc[_0x25091d['channel']+_0xe52d('0x11')][_0xe52d('0x12')](_0x25091d['interaction']['id'],_0x5c49db)['then'](function(_0x43a0d5){logger[_0xe52d('0xe')](_0xe52d('0x13'),_0x520b42,_0x342a4f[0x1],_0x25091d[_0xe52d('0x10')],_0x25091d['interaction']['id']);})[_0xe52d('0x14')](function(_0x33840a){logger[_0xe52d('0x15')]('[%s][TAG]\x20%s',_0x520b42,JSON['stringify'](_0x33840a));logger[_0xe52d('0xe')](_0xe52d('0xf'),_0x520b42);})[_0xe52d('0x16')](function(){_0x5dd689[_0xe52d('0x17')]();});}}}catch(_0x32e002){logger[_0xe52d('0x15')]('[%s][TAG]\x20%s',_0x520b42,_['isObject'](_0x32e002)?JSON['stringify'](_0x32e002):_0x32e002);logger['info']('[%s][TAG]\x20no\x20tags\x20saved,\x20force\x20next',_0x520b42);_0x5dd689[_0xe52d('0x17')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xfc24=['info','[%s][TVOX]\x20Application\x20already\x20executed\x20for\x20the\x20current\x20session,\x20force\x20next','next','request-promise','../../../../config/logger','routing','lodash','consequence','replace','includes','push','urlOnAnswer','?params=','urlOnRing','title','jsonrpc','method','login','params','stringify','utf8','POST','parse','result','logged','Unable\x20to\x20login\x20with\x20TVox\x20application','channelId=','&serviceId=','&sessionId=','&data=','[%s][TVOX]\x20Request\x20sent\x20to\x20TVox:\x20%s','stop','catch','error','[%s][TVOX]\x20%s'];(function(_0x243ee4,_0x3b86dd){var _0x269a68=function(_0x59be2e){while(--_0x59be2e){_0x243ee4['push'](_0x243ee4['shift']());}};_0x269a68(++_0x3b86dd);}(_0xfc24,0xb2));var _0x4fc2=function(_0x45c981,_0x2ad2d4){_0x45c981=_0x45c981-0x0;var _0x4f62c8=_0xfc24[_0x45c981];return _0x4f62c8;};'use strict';var rp=require(_0x4fc2('0x0'));var logger=require(_0x4fc2('0x1'))(_0x4fc2('0x2'));var _=require(_0x4fc2('0x3'));var arr=[];exports[_0x4fc2('0x4')]=function(_0x4d2164,_0x7d4d14){return function(_0x3a8ae7){var _0x2b493d=_0x7d4d14[0xa];var _0x29a189=_0x7d4d14[0xb];var _0xd04beb=_0x7d4d14[0xc];var _0x58fee7=_0x7d4d14[0xd];var _0x2920bf=_0x7d4d14[0xe];var _0x2283bd=_0x7d4d14[0xf][_0x4fc2('0x5')](/\n/g,'\x20-\x20');var _0x290b83=_0x7d4d14[0x10][_0x4fc2('0x5')](/\n/g,'\x20');if(!arr[_0x4fc2('0x6')](_0x29a189)){arr[_0x4fc2('0x7')](_0x29a189);var _0x52885a=_0x7d4d14[0x3];var _0x4f58d1=_0x7d4d14[0x4];var _0x36e4bd=_0x7d4d14[0x1];var _0x436dfb=_0x7d4d14[0x0];var _0x3d10fa={};_0x3d10fa[_0x4fc2('0x8')]=_0x7d4d14[0x8]+_0x4fc2('0x9')+_0xd04beb+'|'+_0x2b493d+'|'+_0x58fee7+'|'+_0x29a189+'|'+_0x2920bf;_0x3d10fa[_0x4fc2('0xa')]=_0x7d4d14[0x7]+_0x4fc2('0x9')+_0xd04beb+'|'+_0x2b493d+'|'+_0x58fee7+'|'+_0x29a189+'|'+_0x2920bf+'|'+_0x2283bd+'|'+_0x290b83;_0x3d10fa[_0x4fc2('0xb')]=_0x7d4d14[0x9];var _0x156b61={};_0x156b61[_0x4fc2('0xc')]='2.0';_0x156b61[_0x4fc2('0xd')]=_0x4fc2('0xe');var _0x46b3e3=[];_0x46b3e3[_0x4fc2('0x7')](_0x7d4d14[0x2]);_0x46b3e3[_0x4fc2('0x7')](_0x7d4d14[0x5]);_0x46b3e3['push'](_0x7d4d14[0x6]);_0x156b61[_0x4fc2('0xf')]=_0x46b3e3;_0x156b61['id']=0x1;var _0x1a90cf=JSON[_0x4fc2('0x10')](_0x156b61);var _0x53f6ab={'encoding':_0x4fc2('0x11'),'method':_0x4fc2('0x12'),'timeout':0x2710,'url':_0x52885a,'headers':{'Content-Type':'application/json-rpc'},'body':_0x1a90cf};return rp(_0x53f6ab)['then'](function(_0x4a8838){const _0x3504a2=JSON[_0x4fc2('0x13')](_0x4a8838);if(!_0x3504a2[_0x4fc2('0x14')][_0x4fc2('0x15')]){throw new Error(_0x4fc2('0x16'));}var _0x4939cd=_0x29a189;var _0x2a66cc=_0x4fc2('0x17')+_0x36e4bd+_0x4fc2('0x18')+_0x436dfb+_0x4fc2('0x19')+_0x4939cd+_0x4fc2('0x1a')+JSON[_0x4fc2('0x10')](_0x3d10fa);var _0x2533be=_0x4f58d1+'?'+_0x2a66cc;return rp(_0x2533be);})['then'](function(_0x3588cc){logger['info'](_0x4fc2('0x1b'),_0x4d2164,_0x3588cc);_0x3a8ae7[_0x4fc2('0x1c')]();})[_0x4fc2('0x1d')](function(_0x51760c){logger[_0x4fc2('0x1e')](_0x4fc2('0x1f'),_0x4d2164,_['isObject'](_0x51760c)?JSON[_0x4fc2('0x10')](_0x51760c):_0x51760c);_0x3a8ae7[_0x4fc2('0x1c')]();});}else{logger[_0x4fc2('0x20')](_0x4fc2('0x21'),_0x4d2164);_0x3a8ae7[_0x4fc2('0x22')]();}};};
\ No newline at end of file
+var _0x2d27=['utf8','application/json-rpc','then','parse','result','Unable\x20to\x20login\x20with\x20TVox\x20application','channelId=','&serviceId=','&sessionId=','&data=','stringify','[%s][TVOX]\x20Request\x20sent\x20to\x20TVox:\x20%s','catch','[%s][TVOX]\x20%s','isObject','stop','info','[%s][TVOX]\x20Application\x20already\x20executed\x20for\x20the\x20current\x20session,\x20force\x20next','next','request-promise','routing','consequence','replace','\x20-\x20','?params=','title','jsonrpc','2.0','method','login','push'];(function(_0x39407e,_0x32f408){var _0x8a4bee=function(_0x1f9198){while(--_0x1f9198){_0x39407e['push'](_0x39407e['shift']());}};_0x8a4bee(++_0x32f408);}(_0x2d27,0x8f));var _0x72d2=function(_0x35f901,_0x4f5415){_0x35f901=_0x35f901-0x0;var _0x5ac5cb=_0x2d27[_0x35f901];return _0x5ac5cb;};'use strict';var rp=require(_0x72d2('0x0'));var logger=require('../../../../config/logger')(_0x72d2('0x1'));var _=require('lodash');var arr=[];exports[_0x72d2('0x2')]=function(_0xc4deb1,_0x58b73b){return function(_0x2f7c72){var _0x4b25ee=_0x58b73b[0xa];var _0x2aeda8=_0x58b73b[0xb];var _0x4eed92=_0x58b73b[0xc];var _0x4f77b9=_0x58b73b[0xd];var _0x4ee76c=_0x58b73b[0xe];var _0x521efb=_0x58b73b[0xf][_0x72d2('0x3')](/\n/g,_0x72d2('0x4'));var _0x14db0c=_0x58b73b[0x10][_0x72d2('0x3')](/\n/g,'\x20');if(!arr['includes'](_0x2aeda8)){arr['push'](_0x2aeda8);var _0x3dc6ae=_0x58b73b[0x3];var _0x23d565=_0x58b73b[0x4];var _0x57725c=_0x58b73b[0x1];var _0x18c4a8=_0x58b73b[0x0];var _0x2b4a8f={};_0x2b4a8f['urlOnAnswer']=_0x58b73b[0x8]+_0x72d2('0x5')+_0x4eed92+'|'+_0x4b25ee+'|'+_0x4f77b9+'|'+_0x2aeda8+'|'+_0x4ee76c;_0x2b4a8f['urlOnRing']=_0x58b73b[0x7]+_0x72d2('0x5')+_0x4eed92+'|'+_0x4b25ee+'|'+_0x4f77b9+'|'+_0x2aeda8+'|'+_0x4ee76c+'|'+_0x521efb+'|'+_0x14db0c;_0x2b4a8f[_0x72d2('0x6')]=_0x58b73b[0x9];var _0x3b83eb={};_0x3b83eb[_0x72d2('0x7')]=_0x72d2('0x8');_0x3b83eb[_0x72d2('0x9')]=_0x72d2('0xa');var _0x30d7b4=[];_0x30d7b4[_0x72d2('0xb')](_0x58b73b[0x2]);_0x30d7b4[_0x72d2('0xb')](_0x58b73b[0x5]);_0x30d7b4[_0x72d2('0xb')](_0x58b73b[0x6]);_0x3b83eb['params']=_0x30d7b4;_0x3b83eb['id']=0x1;var _0x782f71=JSON['stringify'](_0x3b83eb);var _0x1d2e86={'encoding':_0x72d2('0xc'),'method':'POST','timeout':0x2710,'url':_0x3dc6ae,'headers':{'Content-Type':_0x72d2('0xd')},'body':_0x782f71};return rp(_0x1d2e86)[_0x72d2('0xe')](function(_0x3b6917){const _0x29ece1=JSON[_0x72d2('0xf')](_0x3b6917);if(!_0x29ece1[_0x72d2('0x10')]['logged']){throw new Error(_0x72d2('0x11'));}var _0x4c4ece=_0x2aeda8;var _0x49ff68=_0x72d2('0x12')+_0x57725c+_0x72d2('0x13')+_0x18c4a8+_0x72d2('0x14')+_0x4c4ece+_0x72d2('0x15')+JSON[_0x72d2('0x16')](_0x2b4a8f);var _0x53c9fa=_0x23d565+'?'+_0x49ff68;return rp(_0x53c9fa);})['then'](function(_0x5539d1){logger['info'](_0x72d2('0x17'),_0xc4deb1,_0x5539d1);_0x2f7c72['stop']();})[_0x72d2('0x18')](function(_0x3dd5bc){logger['error'](_0x72d2('0x19'),_0xc4deb1,_[_0x72d2('0x1a')](_0x3dd5bc)?JSON[_0x72d2('0x16')](_0x3dd5bc):_0x3dd5bc);_0x2f7c72[_0x72d2('0x1b')]();});}else{logger[_0x72d2('0x1c')](_0x72d2('0x1d'),_0xc4deb1);_0x2f7c72[_0x72d2('0x1e')]();}};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd8b0=['merge','body','contact','message','list','mustache','lodash','render'];(function(_0x5d0851,_0x42857f){var _0x594d80=function(_0x309314){while(--_0x309314){_0x5d0851['push'](_0x5d0851['shift']());}};_0x594d80(++_0x42857f);}(_0xd8b0,0xad));var _0x0d8b=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0xd8b0[_0x20a584];return _0x4b41a8;};'use strict';var Mustache=require(_0x0d8b('0x0'));var _=require(_0x0d8b('0x1'));module['exports']={'getMustacheRender':function(_0x585166,_0x4b72b0){return Mustache[_0x0d8b('0x2')](_0x585166,_[_0x0d8b('0x3')](_0x4b72b0[_0x0d8b('0x4')],{'contact':_0x4b72b0[_0x0d8b('0x5')],'message':_0x4b72b0[_0x0d8b('0x6')],'account':_0x4b72b0['account'],'interaction':_0x4b72b0['interaction'],'list':_0x4b72b0[_0x0d8b('0x7')]}))||'';}};
\ No newline at end of file
+var _0xe706=['exports','render','merge','body','contact','message','account','interaction','list','mustache','lodash'];(function(_0x26a853,_0x1e565d){var _0x307a19=function(_0x17ce14){while(--_0x17ce14){_0x26a853['push'](_0x26a853['shift']());}};_0x307a19(++_0x1e565d);}(_0xe706,0xa3));var _0x6e70=function(_0x4eaa3e,_0x24031c){_0x4eaa3e=_0x4eaa3e-0x0;var _0x18d712=_0xe706[_0x4eaa3e];return _0x18d712;};'use strict';var Mustache=require(_0x6e70('0x0'));var _=require(_0x6e70('0x1'));module[_0x6e70('0x2')]={'getMustacheRender':function(_0x5e8446,_0x2cae77){return Mustache[_0x6e70('0x3')](_0x5e8446,_[_0x6e70('0x4')](_0x2cae77[_0x6e70('0x5')],{'contact':_0x2cae77[_0x6e70('0x6')],'message':_0x2cae77[_0x6e70('0x7')],'account':_0x2cae77[_0x6e70('0x8')],'interaction':_0x2cae77[_0x6e70('0x9')],'list':_0x2cae77[_0x6e70('0xa')]}))||'';}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf46a=['tvox','getMustacheRender','account','ChatWebsiteId','ContactId','body','%s:%s:%s','./interval','condition','intervals','./applications/','consequence','priority','info','Push\x20new\x20rule','on\x20interval','\x20|\x20','Please\x20create\x20a\x20new\x20file\x20under','execute','Applications\x20executed','emit','No\x20applications\x20to\x20execute','stack','error','routing\x20is\x20empty','agent','agents','busyQueue','end','QueueReport','update','UserId','catch','error\x20update\x20queue\x20report','message\x20is\x20empty','busy','hasOwnProperty','capacity','CurrentCapacity','updateRealtime','agent\x20not\x20found','values','chatQueues','loggedIn','paused','waiting','mailQueues','name','openchannelQueues','available','smsQueues','faxQueues','whatsappQueues','chatQueuesWaitingInteractions','mailQueuesWaitingInteractions','openchannelQueuesWaitingInteractions','faxQueuesWaitingInteractions','server','stringify','127.0.0.1','log','lodash','path','jayson/promise','uuid','./applications/utils','../../../config/environment','../../../config/logger','routing','../rpc/openchannelQueueReport','../rpc/mailQueueReport','../rpc/chatQueueReport','../rpc/smsQueueReport','../rpc/faxQueueReport','../rpc/whatsappQueueReport','../lib/rule-engine','format','isNil','IntervalId','Intervals','interval','listen','rules','channel','message','interaction','applications','isArray','app','.js','autoreply','appdata','split','mail','push','slice','length','join','dialogflow','dialogflowv2','amazonlex','tag','TagId'];(function(_0x14add3,_0x13ce8d){var _0x4a174f=function(_0x2b3ed7){while(--_0x2b3ed7){_0x14add3['push'](_0x14add3['shift']());}};_0x4a174f(++_0x13ce8d);}(_0xf46a,0xa4));var _0xaf46=function(_0x3a14b3,_0x3cdfe8){_0x3a14b3=_0x3a14b3-0x0;var _0x591d40=_0xf46a[_0x3a14b3];return _0x591d40;};'use strict';var _=require(_0xaf46('0x0'));var util=require('util');var path=require(_0xaf46('0x1'));var fs=require('fs');var jayson=require(_0xaf46('0x2'));var BPromise=require('bluebird');var uuid=require(_0xaf46('0x3'));var utils=require(_0xaf46('0x4'));var config=require(_0xaf46('0x5'));var logger=require(_0xaf46('0x6'))(_0xaf46('0x7'));var rpc={'openchannelQueueReport':require(_0xaf46('0x8')),'mailQueueReport':require(_0xaf46('0x9')),'chatQueueReport':require(_0xaf46('0xa')),'smsQueueReport':require(_0xaf46('0xb')),'faxQueueReport':require(_0xaf46('0xc')),'whatsappQueueReport':require(_0xaf46('0xd'))};var RuleEngine=require(_0xaf46('0xe'));function getId(_0x105943,_0x328d92,_0x56f9c8){return util[_0xaf46('0xf')]('%s.%s.%s',_0x105943,_0x328d92||0x0,_0x56f9c8||0x0);}function getIntervals(_0x54eb46,_0x51f679){var _0x179cad=[];if(!_[_0xaf46('0x10')](_0x51f679['IntervalId'])&&!_[_0xaf46('0x10')](_0x54eb46[_0x51f679[_0xaf46('0x11')]])&&!_[_0xaf46('0x10')](_0x54eb46[_0x51f679['IntervalId']][_0xaf46('0x12')])){_0x179cad=_['map'](_0x54eb46[_0x51f679[_0xaf46('0x11')]]['Intervals'],_0xaf46('0x13'));}else if(!_['isNil'](_0x51f679[_0xaf46('0x13')])){_0x179cad=[_0x51f679[_0xaf46('0x13')]];}return _0x179cad;}exports[_0xaf46('0x14')]=function(_0x38f7da){_0x38f7da[_0xaf46('0x15')]={};return new BPromise(function(_0x38e6c8,_0x370941){var _0x1b961d={'Start':function(_0x548bfd){var _0x4e2279=this;return new Promise(function(_0x5819e3,_0x1693e4){if(_0x548bfd){try{var _0x5bccdf=[];var _0x498720=getId(_0x548bfd[_0xaf46('0x16')],_0x548bfd[_0xaf46('0x17')]?_0x548bfd['message']['id']:0x0,_0x548bfd[_0xaf46('0x18')]?_0x548bfd[_0xaf46('0x18')]['id']:0x0);if(_0x548bfd[_0xaf46('0x19')]&&_[_0xaf46('0x1a')](_0x548bfd[_0xaf46('0x19')])&&_0x548bfd[_0xaf46('0x19')]['length']){for(var _0x260a5e=0x0;_0x260a5e<_0x548bfd[_0xaf46('0x19')]['length'];_0x260a5e+=0x1){var _0x166c8d=_0x548bfd[_0xaf46('0x19')][_0x260a5e];if(fs['existsSync'](path['join'](__dirname,'applications',_0x166c8d[_0xaf46('0x1b')]+_0xaf46('0x1c')))){var _0x4d1c36=[];switch(_0x166c8d[_0xaf46('0x1b')]['toLowerCase']()){case _0xaf46('0x1d'):var _0x31915a=_0x166c8d[_0xaf46('0x1e')][_0xaf46('0x1f')](',');if(_0x548bfd[_0xaf46('0x16')]===_0xaf46('0x20')){_0x4d1c36[_0xaf46('0x21')](_0x31915a[0x0]);_0x4d1c36[_0xaf46('0x21')](_0x31915a[0x1]);_0x4d1c36[_0xaf46('0x21')](_0x31915a[_0xaf46('0x22')](0x2,_0x31915a['length'])['join'](','));}else{_0x4d1c36[_0xaf46('0x21')](_0x31915a[0x0]);_0x4d1c36[_0xaf46('0x21')](_0x31915a[_0xaf46('0x22')](0x1,_0x31915a[_0xaf46('0x23')])[_0xaf46('0x24')](','));}break;case _0xaf46('0x25'):var _0x2b4c69=_0x166c8d[_0xaf46('0x1e')]['split'](',');_0x4d1c36[_0xaf46('0x21')](_0x2b4c69[0x0]);_0x4d1c36[_0xaf46('0x21')](_0x2b4c69[0x1]);_0x4d1c36['push'](_0x2b4c69[_0xaf46('0x22')](0x2,_0x2b4c69[_0xaf46('0x23')])[_0xaf46('0x24')](','));break;case _0xaf46('0x26'):var _0x3b04d6=_0x166c8d[_0xaf46('0x1e')]['split'](',');_0x4d1c36[_0xaf46('0x21')](_0x3b04d6[0x0]);_0x4d1c36[_0xaf46('0x21')](_0x3b04d6[0x1]);_0x4d1c36['push'](_0x3b04d6[0x2]);_0x4d1c36[_0xaf46('0x21')](_0x3b04d6[0x3]);_0x4d1c36[_0xaf46('0x21')](_0x3b04d6[_0xaf46('0x22')](0x4,_0x3b04d6[_0xaf46('0x23')])[_0xaf46('0x24')](','));break;case _0xaf46('0x27'):var _0x1dfa19=_0x166c8d[_0xaf46('0x1e')][_0xaf46('0x1f')](',');_0x4d1c36[_0xaf46('0x21')](_0x1dfa19[0x0]);_0x4d1c36[_0xaf46('0x21')](_0x1dfa19[0x1]);_0x4d1c36['push'](_0x1dfa19[0x2]);_0x4d1c36[_0xaf46('0x21')](_0x1dfa19[0x3]);_0x4d1c36['push'](_0x1dfa19[_0xaf46('0x22')](0x4,_0x1dfa19[_0xaf46('0x23')])[_0xaf46('0x24')](','));break;case _0xaf46('0x17'):_0x4d1c36['push'](_0x166c8d[_0xaf46('0x1e')]);break;case _0xaf46('0x28'):_0x4d1c36[_0xaf46('0x21')](_0x166c8d[_0xaf46('0x29')]);_0x4d1c36['push'](_0x166c8d['appdata']);break;case _0xaf46('0x2a'):var _0x42c66b=utils[_0xaf46('0x2b')](_0x548bfd[_0xaf46('0x2c')]['notificationTemplate'],_0x548bfd);var _0x2e6fc1=_0x166c8d[_0xaf46('0x1e')][_0xaf46('0x1f')](',');_0x4d1c36[_0xaf46('0x21')](_0x2e6fc1[0x0]);_0x4d1c36[_0xaf46('0x21')](_0x2e6fc1[0x1]);_0x4d1c36[_0xaf46('0x21')](_0x2e6fc1[0x2]);_0x4d1c36['push'](_0x2e6fc1[0x3]);_0x4d1c36[_0xaf46('0x21')](_0x2e6fc1[0x4]);_0x4d1c36['push'](_0x2e6fc1[0x5]);_0x4d1c36[_0xaf46('0x21')](_0x2e6fc1[0x6]);_0x4d1c36[_0xaf46('0x21')](_0x2e6fc1[0x7]);_0x4d1c36['push'](_0x2e6fc1[0x8]);_0x4d1c36[_0xaf46('0x21')](_0x2e6fc1[0x9]);_0x4d1c36[_0xaf46('0x21')](_0x2e6fc1[0xa]);_0x4d1c36[_0xaf46('0x21')](_0x548bfd[_0xaf46('0x18')]['id']);_0x4d1c36[_0xaf46('0x21')](_0x548bfd['message']['id']);_0x4d1c36[_0xaf46('0x21')](_0x166c8d[_0xaf46('0x2d')]);_0x4d1c36[_0xaf46('0x21')](_0x548bfd['interaction'][_0xaf46('0x2e')]);_0x4d1c36['push'](_0x548bfd[_0xaf46('0x2f')][_0xaf46('0x2f')]);_0x4d1c36['push'](_0x42c66b);break;default:_0x4d1c36=_[_0xaf46('0x10')](_0x166c8d[_0xaf46('0x1e')])?[]:_0x166c8d[_0xaf46('0x1e')][_0xaf46('0x1f')](',');}var _0x1d9a56={'id':util[_0xaf46('0xf')](_0xaf46('0x30'),_0x498720,_0x166c8d['id'],_0x166c8d[_0xaf46('0x1b')]),'condition':require(_0xaf46('0x31'))[_0xaf46('0x32')](_0x498720,getIntervals(_0x38f7da[_0xaf46('0x33')],_0x166c8d),_0x38f7da),'consequence':require(_0xaf46('0x34')+_0x166c8d[_0xaf46('0x1b')])[_0xaf46('0x35')](_0x498720,_0x4d1c36,_0x38f7da,_0x548bfd),'p':_0x166c8d[_0xaf46('0x36')]||0x0};logger[_0xaf46('0x37')](_0xaf46('0x38'),_0x1d9a56['id'],_0xaf46('0x39'),getIntervals(_0x38f7da[_0xaf46('0x33')],_0x166c8d)[_0xaf46('0x24')](_0xaf46('0x3a')));_0x5bccdf[_0xaf46('0x21')](_0x1d9a56);}else{logger['error'](_0xaf46('0x3b'),path['join'](__dirname,_0xaf46('0x19'),_0x166c8d[_0xaf46('0x1b')]+_0xaf46('0x1c')));}}_0x38f7da[_0xaf46('0x15')][_0x498720]=new RuleEngine(_0x5bccdf);_0x38f7da[_0xaf46('0x15')][_0x498720][_0xaf46('0x3c')](_0x548bfd,function(_0x463ad7){logger[_0xaf46('0x37')](_0xaf46('0x3d'),JSON['stringify'](_0x463ad7['matchPath']));if(_0x38f7da['rules'][_0x498720]){_0x38f7da[_0xaf46('0x15')][_0x498720][_0xaf46('0x3e')]('complete');}});return _0x5819e3({'code':0xc8,'message':_0x548bfd});}else{logger[_0xaf46('0x37')](_0xaf46('0x3f'));return _0x5819e3({'code':0xc8,'message':_0x548bfd});}}catch(_0x8fa954){logger['error'](_0x8fa954[_0xaf46('0x40')]);return _0x1693e4(_0x4e2279[_0xaf46('0x41')](0x1f4,_0x8fa954));}}return _0x1693e4(_0xaf46('0x42'));});},'AcceptMessage':function(_0x162b2d){var _0x10ada4=this;return new Promise(function(_0x4881a6,_0x3090ee){if(_0x162b2d[_0xaf46('0x43')]&&_0x162b2d[_0xaf46('0x43')]['id']){if(_0x38f7da[_0xaf46('0x44')][_0x162b2d['agent']['id']]){_0x38f7da[_0xaf46('0x44')][_0x162b2d[_0xaf46('0x43')]['id']]['busy']=![];_0x38f7da[_0xaf46('0x44')][_0x162b2d[_0xaf46('0x43')]['id']][_0xaf46('0x45')]=undefined;}}if(_0x162b2d['message']&&_0x162b2d[_0xaf46('0x17')]['id']){try{var _0x407b5b=getId(_0x162b2d[_0xaf46('0x16')],_0x162b2d[_0xaf46('0x17')]?_0x162b2d[_0xaf46('0x17')]['id']:0x0,_0x162b2d['interaction']?_0x162b2d[_0xaf46('0x18')]['id']:0x0);if(_0x38f7da[_0xaf46('0x15')][_0x407b5b]){_0x38f7da['rules'][_0x407b5b][_0xaf46('0x3e')](_0xaf46('0x46'));if(rpc[_0x162b2d[_0xaf46('0x16')]+_0xaf46('0x47')]){rpc[_0x162b2d[_0xaf46('0x16')]+_0xaf46('0x47')][_0xaf46('0x48')](_0x407b5b,{'UserId':_0x162b2d[_0xaf46('0x17')][_0xaf46('0x49')]})[_0xaf46('0x4a')](function(_0x30d1d2){logger[_0xaf46('0x41')](_0xaf46('0x4b'));});}}return _0x4881a6({'code':0xc8,'message':_0x162b2d});}catch(_0x164c62){logger[_0xaf46('0x41')](_0x164c62[_0xaf46('0x40')]);return _0x3090ee(_0x10ada4['error'](0x1f4,_0x164c62));}}logger[_0xaf46('0x41')](_0xaf46('0x4c'));return _0x3090ee(_0x10ada4['error'](0x1f4,'message\x20is\x20empty'));});},'RejectMessage':function(_0x44fdf4){var _0x3ad2fa=this;return new Promise(function(_0x1729c9,_0x5a819e){if(_0x44fdf4[_0xaf46('0x43')]&&_0x44fdf4[_0xaf46('0x43')]['id']){try{if(_0x38f7da[_0xaf46('0x44')][_0x44fdf4['agent']['id']]){_0x38f7da[_0xaf46('0x44')][_0x44fdf4[_0xaf46('0x43')]['id']][_0xaf46('0x4d')]=![];_0x38f7da[_0xaf46('0x44')][_0x44fdf4['agent']['id']][_0xaf46('0x45')]=undefined;}return _0x1729c9({'code':0xc8,'message':_0x44fdf4});}catch(_0x3dd2c0){logger[_0xaf46('0x41')](_0x3dd2c0[_0xaf46('0x40')]);return _0x5a819e(_0x3ad2fa[_0xaf46('0x41')](0x1f4,_0x3dd2c0));}}logger[_0xaf46('0x41')]('message\x20is\x20empty');return _0x5a819e(_0x3ad2fa[_0xaf46('0x41')](0x1f4,_0xaf46('0x4c')));});},'AbandonInteraction':function(_0x8f83b6){var _0x42385b=this;return new Promise(function(_0x2a6f7b,_0x48bfe3){if(_0x8f83b6[_0xaf46('0x16')]&&_0x8f83b6[_0xaf46('0x18')]&&_0x8f83b6[_0xaf46('0x18')]['id']){try{var _0x1af03e=getId(_0x8f83b6[_0xaf46('0x16')],_0x8f83b6['message']?_0x8f83b6['message']['id']:0x0,_0x8f83b6[_0xaf46('0x18')]?_0x8f83b6[_0xaf46('0x18')]['id']:0x0);if(_0x38f7da[_0xaf46('0x15')][_0x1af03e]){_0x38f7da[_0xaf46('0x15')][_0x1af03e]['emit'](_0xaf46('0x46'));}return _0x2a6f7b({'code':0xc8,'message':_0x8f83b6});}catch(_0x5d8a51){logger['error'](_0x5d8a51[_0xaf46('0x40')]);return _0x48bfe3(_0x42385b['error'](0x1f4,_0x5d8a51));}}logger[_0xaf46('0x41')]('message\x20is\x20empty');return _0x48bfe3(_0x42385b['error'](0x1f4,_0xaf46('0x4c')));});},'AgentCapacity':function(_0x280d12){var _0x2b90ea=this;return new Promise(function(_0x554525,_0x498175){if(_0x38f7da[_0xaf46('0x44')][_0xaf46('0x4e')](_0x280d12['id'])){for(var _0x5a8f25 in _0x280d12['capacity']){if(_0x280d12[_0xaf46('0x4f')]['hasOwnProperty'](_0x5a8f25)){if(_0x38f7da[_0xaf46('0x44')][_0x280d12['id']]['hasOwnProperty'](_0x5a8f25+'CurrentCapacity')){_0x38f7da['agents'][_0x280d12['id']][_0x5a8f25+_0xaf46('0x50')]=parseInt(_0x280d12[_0xaf46('0x4f')][_0x5a8f25],0xa);}}}_0x38f7da['agents'][_0x280d12['id']][_0xaf46('0x51')]();return _0x554525({'code':0xc8,'message':_0x38f7da[_0xaf46('0x44')][_0x280d12['id']]});}else{return _0x498175(_0x2b90ea[_0xaf46('0x41')](0x1f4,_0xaf46('0x52')));}});},'Agents':function(_0x252448){return new Promise(function(_0x94c503,_0xbf3945){var _0x13c951=_[_0xaf46('0x53')](_0x38f7da[_0xaf46('0x44')]);_0x94c503({'count':_0x13c951[_0xaf46('0x23')],'rows':_0x13c951});});},'ChatQueues':function(_0x4508c9){return new Promise(function(_0x4b9d89,_0x3d3709){var _0x20ecab=[];for(var _0x567ca8 in _0x38f7da['chatQueues']){if(_0x38f7da[_0xaf46('0x54')][_0xaf46('0x4e')](_0x567ca8)){var _0x4280d8=_0x38f7da[_0xaf46('0x54')][_0x567ca8];var _0x1d3107={'id':_0x4280d8['id'],'available':_0x4280d8['available'],'loggedIn':_0x4280d8[_0xaf46('0x55')],'name':_0x4280d8['name'],'paused':_0x4280d8[_0xaf46('0x56')],'waiting':_0x4280d8[_0xaf46('0x57')]};_0x20ecab[_0xaf46('0x21')](_0x1d3107);}}_0x4b9d89({'count':_0x20ecab[_0xaf46('0x23')],'rows':_0x20ecab});});},'MailQueues':function(_0x3e1ea7){return new Promise(function(_0x135df7,_0x1d2398){var _0x23068a=[];for(var _0x57d52c in _0x38f7da['mailQueues']){if(_0x38f7da['mailQueues']['hasOwnProperty'](_0x57d52c)){var _0x4869e1=_0x38f7da[_0xaf46('0x58')][_0x57d52c];var _0x5914e0={'id':_0x4869e1['id'],'available':_0x4869e1['available'],'loggedIn':_0x4869e1[_0xaf46('0x55')],'name':_0x4869e1[_0xaf46('0x59')],'paused':_0x4869e1[_0xaf46('0x56')],'waiting':_0x4869e1[_0xaf46('0x57')]};_0x23068a[_0xaf46('0x21')](_0x5914e0);}}_0x135df7({'count':_0x23068a[_0xaf46('0x23')],'rows':_0x23068a});});},'OpenchannelQueues':function(_0x36c058){return new Promise(function(_0x20ba3a,_0x464fed){var _0x10e4d0=[];for(var _0x3d19bd in _0x38f7da['openchannelQueues']){if(_0x38f7da[_0xaf46('0x5a')]['hasOwnProperty'](_0x3d19bd)){var _0x519ed7=_0x38f7da[_0xaf46('0x5a')][_0x3d19bd];var _0x1c7722={'id':_0x519ed7['id'],'available':_0x519ed7[_0xaf46('0x5b')],'loggedIn':_0x519ed7[_0xaf46('0x55')],'name':_0x519ed7['name'],'paused':_0x519ed7['paused'],'waiting':_0x519ed7['waiting']};_0x10e4d0[_0xaf46('0x21')](_0x1c7722);}}_0x20ba3a({'count':_0x10e4d0[_0xaf46('0x23')],'rows':_0x10e4d0});});},'SmsQueues':function(_0x45d63e){return new Promise(function(_0x3ca165,_0x9a77b1){var _0x244978=[];for(var _0xea774f in _0x38f7da[_0xaf46('0x5c')]){if(_0x38f7da['smsQueues'][_0xaf46('0x4e')](_0xea774f)){var _0x43133d=_0x38f7da['smsQueues'][_0xea774f];var _0x6764af={'id':_0x43133d['id'],'available':_0x43133d[_0xaf46('0x5b')],'loggedIn':_0x43133d[_0xaf46('0x55')],'name':_0x43133d[_0xaf46('0x59')],'paused':_0x43133d[_0xaf46('0x56')],'waiting':_0x43133d[_0xaf46('0x57')]};_0x244978[_0xaf46('0x21')](_0x6764af);}}_0x3ca165({'count':_0x244978[_0xaf46('0x23')],'rows':_0x244978});});},'FaxQueues':function(_0x40642b){return new Promise(function(_0x135da8,_0x2173bf){var _0x5ba44c=[];for(var _0x5099d8 in _0x38f7da[_0xaf46('0x5d')]){if(_0x38f7da['faxQueues'][_0xaf46('0x4e')](_0x5099d8)){var _0x5d8b3a=_0x38f7da[_0xaf46('0x5d')][_0x5099d8];var _0x1011c4={'id':_0x5d8b3a['id'],'available':_0x5d8b3a[_0xaf46('0x5b')],'loggedIn':_0x5d8b3a[_0xaf46('0x55')],'name':_0x5d8b3a[_0xaf46('0x59')],'paused':_0x5d8b3a[_0xaf46('0x56')],'waiting':_0x5d8b3a[_0xaf46('0x57')]};_0x5ba44c[_0xaf46('0x21')](_0x1011c4);}}_0x135da8({'count':_0x5ba44c['length'],'rows':_0x5ba44c});});},'WhatsappQueues':function(_0x4329a7){return new Promise(function(_0x3b7168,_0xb39b6c){var _0x522f9a=[];for(var _0x304b04 in _0x38f7da[_0xaf46('0x5e')]){if(_0x38f7da[_0xaf46('0x5e')][_0xaf46('0x4e')](_0x304b04)){var _0xb7eac4=_0x38f7da[_0xaf46('0x5e')][_0x304b04];var _0x2788b4={'id':_0xb7eac4['id'],'available':_0xb7eac4['available'],'loggedIn':_0xb7eac4[_0xaf46('0x55')],'name':_0xb7eac4[_0xaf46('0x59')],'paused':_0xb7eac4[_0xaf46('0x56')],'waiting':_0xb7eac4[_0xaf46('0x57')]};_0x522f9a['push'](_0x2788b4);}}_0x3b7168({'count':_0x522f9a[_0xaf46('0x23')],'rows':_0x522f9a});});},'ChatQueuesWaitingInteractions':function(_0x5a7d89){return new Promise(function(_0x135107,_0x40408a){var _0x19ac96=_['values'](_0x38f7da[_0xaf46('0x5f')]);_0x135107({'count':_0x19ac96['length'],'rows':_0x19ac96});});},'MailQueuesWaitingInteractions':function(_0x4119ee){return new Promise(function(_0xe70b93,_0xce579e){var _0x4f35fa=_[_0xaf46('0x53')](_0x38f7da[_0xaf46('0x60')]);_0xe70b93({'count':_0x4f35fa[_0xaf46('0x23')],'rows':_0x4f35fa});});},'OpenchannelQueuesWaitingInteractions':function(_0x2f7a15){return new Promise(function(_0x4db6b9,_0x2fad40){var _0x3afe79=_['values'](_0x38f7da[_0xaf46('0x61')]);_0x4db6b9({'count':_0x3afe79[_0xaf46('0x23')],'rows':_0x3afe79});});},'SmsQueuesWaitingInteractions':function(_0xf56ed5){return new Promise(function(_0x560887,_0xd625b3){var _0x4397b9=_[_0xaf46('0x53')](_0x38f7da['smsQueuesWaitingInteractions']);_0x560887({'count':_0x4397b9['length'],'rows':_0x4397b9});});},'FaxQueuesWaitingInteractions':function(_0x234710){return new Promise(function(_0x629dd9,_0x395cf3){var _0x359e28=_[_0xaf46('0x53')](_0x38f7da[_0xaf46('0x62')]);_0x629dd9({'count':_0x359e28['length'],'rows':_0x359e28});});},'WhatsappQueuesWaitingInteractions':function(_0x9ac603){return new Promise(function(_0x3f5cac,_0x3e8825){var _0x45bf4a=_['values'](_0x38f7da['whatsappQueuesWaitingInteractions']);_0x3f5cac({'count':_0x45bf4a[_0xaf46('0x23')],'rows':_0x45bf4a});});}};var _0xe910bf=jayson[_0xaf46('0x63')](_0x1b961d)['http']();_0xe910bf['on'](_0xaf46('0x41'),function(_0x4ba8de){logger['error'](JSON[_0xaf46('0x64')](_0x4ba8de));return _0x370941(_0x4ba8de);});_0xe910bf[_0xaf46('0x14')](0x232c,_0xaf46('0x65'),function(){console[_0xaf46('0x66')]('Routing\x20RPC\x20server\x20listening\x20on\x20127.0.0.1:%d!',0x232c);return _0x38e6c8('RPC\x20listening\x20on\x20port:'+0x232c);});});};
\ No newline at end of file
+var _0x5d70=['complete','No\x20applications\x20to\x20execute','error','routing\x20is\x20empty','agent','agents','busy','busyQueue','emit','QueueReport','update','UserId','catch','error\x20update\x20queue\x20report','stack','message\x20is\x20empty','end','hasOwnProperty','capacity','CurrentCapacity','updateRealtime','agent\x20not\x20found','values','chatQueues','available','loggedIn','name','paused','mailQueues','openchannelQueues','waiting','smsQueues','faxQueues','whatsappQueues','mailQueuesWaitingInteractions','openchannelQueuesWaitingInteractions','faxQueuesWaitingInteractions','whatsappQueuesWaitingInteractions','server','http','127.0.0.1','log','lodash','util','jayson/promise','bluebird','uuid','./applications/utils','../../../config/environment','../../../config/logger','../rpc/openchannelQueueReport','../rpc/mailQueueReport','../rpc/chatQueueReport','../rpc/smsQueueReport','../lib/rule-engine','%s.%s.%s','isNil','IntervalId','Intervals','map','interval','listen','rules','interaction','applications','isArray','length','join','.js','app','toLowerCase','autoreply','appdata','split','channel','mail','push','slice','dialogflow','dialogflowv2','message','tvox','getMustacheRender','account','ChatWebsiteId','format','%s:%s:%s','./interval','condition','intervals','./applications/','consequence','priority','info','on\x20interval','\x20|\x20','Please\x20create\x20a\x20new\x20file\x20under','Applications\x20executed','stringify'];(function(_0x328c41,_0x3c1085){var _0x344f6d=function(_0x41cd73){while(--_0x41cd73){_0x328c41['push'](_0x328c41['shift']());}};_0x344f6d(++_0x3c1085);}(_0x5d70,0x8d));var _0x05d7=function(_0x22d013,_0x13b207){_0x22d013=_0x22d013-0x0;var _0x18e705=_0x5d70[_0x22d013];return _0x18e705;};'use strict';var _=require(_0x05d7('0x0'));var util=require(_0x05d7('0x1'));var path=require('path');var fs=require('fs');var jayson=require(_0x05d7('0x2'));var BPromise=require(_0x05d7('0x3'));var uuid=require(_0x05d7('0x4'));var utils=require(_0x05d7('0x5'));var config=require(_0x05d7('0x6'));var logger=require(_0x05d7('0x7'))('routing');var rpc={'openchannelQueueReport':require(_0x05d7('0x8')),'mailQueueReport':require(_0x05d7('0x9')),'chatQueueReport':require(_0x05d7('0xa')),'smsQueueReport':require(_0x05d7('0xb')),'faxQueueReport':require('../rpc/faxQueueReport'),'whatsappQueueReport':require('../rpc/whatsappQueueReport')};var RuleEngine=require(_0x05d7('0xc'));function getId(_0x29a5e0,_0x147340,_0x50d2b6){return util['format'](_0x05d7('0xd'),_0x29a5e0,_0x147340||0x0,_0x50d2b6||0x0);}function getIntervals(_0x40a1f6,_0x2d3d67){var _0x2ae2ea=[];if(!_[_0x05d7('0xe')](_0x2d3d67[_0x05d7('0xf')])&&!_[_0x05d7('0xe')](_0x40a1f6[_0x2d3d67[_0x05d7('0xf')]])&&!_[_0x05d7('0xe')](_0x40a1f6[_0x2d3d67[_0x05d7('0xf')]][_0x05d7('0x10')])){_0x2ae2ea=_[_0x05d7('0x11')](_0x40a1f6[_0x2d3d67[_0x05d7('0xf')]][_0x05d7('0x10')],_0x05d7('0x12'));}else if(!_[_0x05d7('0xe')](_0x2d3d67[_0x05d7('0x12')])){_0x2ae2ea=[_0x2d3d67[_0x05d7('0x12')]];}return _0x2ae2ea;}exports[_0x05d7('0x13')]=function(_0x34cd5b){_0x34cd5b[_0x05d7('0x14')]={};return new BPromise(function(_0x14bf0b,_0x2dafd7){var _0x586306={'Start':function(_0x38b3c7){var _0x5ba163=this;return new Promise(function(_0x42c95f,_0x252ab3){if(_0x38b3c7){try{var _0x51d854=[];var _0x559545=getId(_0x38b3c7['channel'],_0x38b3c7['message']?_0x38b3c7['message']['id']:0x0,_0x38b3c7[_0x05d7('0x15')]?_0x38b3c7[_0x05d7('0x15')]['id']:0x0);if(_0x38b3c7[_0x05d7('0x16')]&&_[_0x05d7('0x17')](_0x38b3c7[_0x05d7('0x16')])&&_0x38b3c7[_0x05d7('0x16')][_0x05d7('0x18')]){for(var _0x24e4df=0x0;_0x24e4df<_0x38b3c7[_0x05d7('0x16')][_0x05d7('0x18')];_0x24e4df+=0x1){var _0x2cd1bb=_0x38b3c7[_0x05d7('0x16')][_0x24e4df];if(fs['existsSync'](path[_0x05d7('0x19')](__dirname,'applications',_0x2cd1bb['app']+_0x05d7('0x1a')))){var _0x356fe7=[];switch(_0x2cd1bb[_0x05d7('0x1b')][_0x05d7('0x1c')]()){case _0x05d7('0x1d'):var _0x7266ed=_0x2cd1bb[_0x05d7('0x1e')][_0x05d7('0x1f')](',');if(_0x38b3c7[_0x05d7('0x20')]===_0x05d7('0x21')){_0x356fe7[_0x05d7('0x22')](_0x7266ed[0x0]);_0x356fe7[_0x05d7('0x22')](_0x7266ed[0x1]);_0x356fe7[_0x05d7('0x22')](_0x7266ed[_0x05d7('0x23')](0x2,_0x7266ed[_0x05d7('0x18')])[_0x05d7('0x19')](','));}else{_0x356fe7['push'](_0x7266ed[0x0]);_0x356fe7['push'](_0x7266ed['slice'](0x1,_0x7266ed[_0x05d7('0x18')])[_0x05d7('0x19')](','));}break;case _0x05d7('0x24'):var _0xc8e961=_0x2cd1bb[_0x05d7('0x1e')][_0x05d7('0x1f')](',');_0x356fe7[_0x05d7('0x22')](_0xc8e961[0x0]);_0x356fe7['push'](_0xc8e961[0x1]);_0x356fe7[_0x05d7('0x22')](_0xc8e961[_0x05d7('0x23')](0x2,_0xc8e961[_0x05d7('0x18')])[_0x05d7('0x19')](','));break;case _0x05d7('0x25'):var _0x13464d=_0x2cd1bb[_0x05d7('0x1e')][_0x05d7('0x1f')](',');_0x356fe7[_0x05d7('0x22')](_0x13464d[0x0]);_0x356fe7['push'](_0x13464d[0x1]);_0x356fe7[_0x05d7('0x22')](_0x13464d[0x2]);_0x356fe7[_0x05d7('0x22')](_0x13464d[0x3]);_0x356fe7[_0x05d7('0x22')](_0x13464d[_0x05d7('0x23')](0x4,_0x13464d[_0x05d7('0x18')])[_0x05d7('0x19')](','));break;case'amazonlex':var _0x139e32=_0x2cd1bb[_0x05d7('0x1e')][_0x05d7('0x1f')](',');_0x356fe7['push'](_0x139e32[0x0]);_0x356fe7[_0x05d7('0x22')](_0x139e32[0x1]);_0x356fe7[_0x05d7('0x22')](_0x139e32[0x2]);_0x356fe7[_0x05d7('0x22')](_0x139e32[0x3]);_0x356fe7['push'](_0x139e32['slice'](0x4,_0x139e32[_0x05d7('0x18')])[_0x05d7('0x19')](','));break;case _0x05d7('0x26'):_0x356fe7[_0x05d7('0x22')](_0x2cd1bb[_0x05d7('0x1e')]);break;case'tag':_0x356fe7[_0x05d7('0x22')](_0x2cd1bb['TagId']);_0x356fe7[_0x05d7('0x22')](_0x2cd1bb[_0x05d7('0x1e')]);break;case _0x05d7('0x27'):var _0xfb5986=utils[_0x05d7('0x28')](_0x38b3c7[_0x05d7('0x29')]['notificationTemplate'],_0x38b3c7);var _0x546890=_0x2cd1bb[_0x05d7('0x1e')]['split'](',');_0x356fe7[_0x05d7('0x22')](_0x546890[0x0]);_0x356fe7[_0x05d7('0x22')](_0x546890[0x1]);_0x356fe7[_0x05d7('0x22')](_0x546890[0x2]);_0x356fe7[_0x05d7('0x22')](_0x546890[0x3]);_0x356fe7[_0x05d7('0x22')](_0x546890[0x4]);_0x356fe7[_0x05d7('0x22')](_0x546890[0x5]);_0x356fe7[_0x05d7('0x22')](_0x546890[0x6]);_0x356fe7['push'](_0x546890[0x7]);_0x356fe7[_0x05d7('0x22')](_0x546890[0x8]);_0x356fe7['push'](_0x546890[0x9]);_0x356fe7[_0x05d7('0x22')](_0x546890[0xa]);_0x356fe7[_0x05d7('0x22')](_0x38b3c7[_0x05d7('0x15')]['id']);_0x356fe7['push'](_0x38b3c7[_0x05d7('0x26')]['id']);_0x356fe7[_0x05d7('0x22')](_0x2cd1bb[_0x05d7('0x2a')]);_0x356fe7['push'](_0x38b3c7[_0x05d7('0x15')]['ContactId']);_0x356fe7['push'](_0x38b3c7['body']['body']);_0x356fe7[_0x05d7('0x22')](_0xfb5986);break;default:_0x356fe7=_[_0x05d7('0xe')](_0x2cd1bb[_0x05d7('0x1e')])?[]:_0x2cd1bb[_0x05d7('0x1e')][_0x05d7('0x1f')](',');}var _0x445b65={'id':util[_0x05d7('0x2b')](_0x05d7('0x2c'),_0x559545,_0x2cd1bb['id'],_0x2cd1bb[_0x05d7('0x1b')]),'condition':require(_0x05d7('0x2d'))[_0x05d7('0x2e')](_0x559545,getIntervals(_0x34cd5b[_0x05d7('0x2f')],_0x2cd1bb),_0x34cd5b),'consequence':require(_0x05d7('0x30')+_0x2cd1bb[_0x05d7('0x1b')])[_0x05d7('0x31')](_0x559545,_0x356fe7,_0x34cd5b,_0x38b3c7),'p':_0x2cd1bb[_0x05d7('0x32')]||0x0};logger[_0x05d7('0x33')]('Push\x20new\x20rule',_0x445b65['id'],_0x05d7('0x34'),getIntervals(_0x34cd5b[_0x05d7('0x2f')],_0x2cd1bb)['join'](_0x05d7('0x35')));_0x51d854[_0x05d7('0x22')](_0x445b65);}else{logger['error'](_0x05d7('0x36'),path['join'](__dirname,_0x05d7('0x16'),_0x2cd1bb['app']+_0x05d7('0x1a')));}}_0x34cd5b[_0x05d7('0x14')][_0x559545]=new RuleEngine(_0x51d854);_0x34cd5b['rules'][_0x559545]['execute'](_0x38b3c7,function(_0x2bebc3){logger[_0x05d7('0x33')](_0x05d7('0x37'),JSON[_0x05d7('0x38')](_0x2bebc3['matchPath']));if(_0x34cd5b['rules'][_0x559545]){_0x34cd5b['rules'][_0x559545]['emit'](_0x05d7('0x39'));}});return _0x42c95f({'code':0xc8,'message':_0x38b3c7});}else{logger['info'](_0x05d7('0x3a'));return _0x42c95f({'code':0xc8,'message':_0x38b3c7});}}catch(_0x4eb3a9){logger[_0x05d7('0x3b')](_0x4eb3a9['stack']);return _0x252ab3(_0x5ba163['error'](0x1f4,_0x4eb3a9));}}return _0x252ab3(_0x05d7('0x3c'));});},'AcceptMessage':function(_0x3e01ca){var _0x2a3dcb=this;return new Promise(function(_0x293453,_0x18a29b){if(_0x3e01ca[_0x05d7('0x3d')]&&_0x3e01ca[_0x05d7('0x3d')]['id']){if(_0x34cd5b[_0x05d7('0x3e')][_0x3e01ca[_0x05d7('0x3d')]['id']]){_0x34cd5b[_0x05d7('0x3e')][_0x3e01ca[_0x05d7('0x3d')]['id']][_0x05d7('0x3f')]=![];_0x34cd5b[_0x05d7('0x3e')][_0x3e01ca['agent']['id']][_0x05d7('0x40')]=undefined;}}if(_0x3e01ca['message']&&_0x3e01ca[_0x05d7('0x26')]['id']){try{var _0x516a52=getId(_0x3e01ca['channel'],_0x3e01ca[_0x05d7('0x26')]?_0x3e01ca[_0x05d7('0x26')]['id']:0x0,_0x3e01ca[_0x05d7('0x15')]?_0x3e01ca[_0x05d7('0x15')]['id']:0x0);if(_0x34cd5b[_0x05d7('0x14')][_0x516a52]){_0x34cd5b[_0x05d7('0x14')][_0x516a52][_0x05d7('0x41')]('end');if(rpc[_0x3e01ca[_0x05d7('0x20')]+_0x05d7('0x42')]){rpc[_0x3e01ca[_0x05d7('0x20')]+_0x05d7('0x42')][_0x05d7('0x43')](_0x516a52,{'UserId':_0x3e01ca[_0x05d7('0x26')][_0x05d7('0x44')]})[_0x05d7('0x45')](function(_0x212d39){logger[_0x05d7('0x3b')](_0x05d7('0x46'));});}}return _0x293453({'code':0xc8,'message':_0x3e01ca});}catch(_0x252b2d){logger[_0x05d7('0x3b')](_0x252b2d[_0x05d7('0x47')]);return _0x18a29b(_0x2a3dcb[_0x05d7('0x3b')](0x1f4,_0x252b2d));}}logger[_0x05d7('0x3b')](_0x05d7('0x48'));return _0x18a29b(_0x2a3dcb['error'](0x1f4,_0x05d7('0x48')));});},'RejectMessage':function(_0x5ba65e){var _0x142d1e=this;return new Promise(function(_0x85309b,_0x4efd41){if(_0x5ba65e[_0x05d7('0x3d')]&&_0x5ba65e[_0x05d7('0x3d')]['id']){try{if(_0x34cd5b[_0x05d7('0x3e')][_0x5ba65e['agent']['id']]){_0x34cd5b[_0x05d7('0x3e')][_0x5ba65e['agent']['id']][_0x05d7('0x3f')]=![];_0x34cd5b[_0x05d7('0x3e')][_0x5ba65e[_0x05d7('0x3d')]['id']][_0x05d7('0x40')]=undefined;}return _0x85309b({'code':0xc8,'message':_0x5ba65e});}catch(_0x56e2fe){logger[_0x05d7('0x3b')](_0x56e2fe[_0x05d7('0x47')]);return _0x4efd41(_0x142d1e[_0x05d7('0x3b')](0x1f4,_0x56e2fe));}}logger[_0x05d7('0x3b')](_0x05d7('0x48'));return _0x4efd41(_0x142d1e['error'](0x1f4,_0x05d7('0x48')));});},'AbandonInteraction':function(_0x314456){var _0x45ac39=this;return new Promise(function(_0x44ed17,_0x593be7){if(_0x314456['channel']&&_0x314456[_0x05d7('0x15')]&&_0x314456[_0x05d7('0x15')]['id']){try{var _0x31a7ca=getId(_0x314456[_0x05d7('0x20')],_0x314456[_0x05d7('0x26')]?_0x314456['message']['id']:0x0,_0x314456['interaction']?_0x314456[_0x05d7('0x15')]['id']:0x0);if(_0x34cd5b[_0x05d7('0x14')][_0x31a7ca]){_0x34cd5b[_0x05d7('0x14')][_0x31a7ca]['emit'](_0x05d7('0x49'));}return _0x44ed17({'code':0xc8,'message':_0x314456});}catch(_0x5028e1){logger[_0x05d7('0x3b')](_0x5028e1[_0x05d7('0x47')]);return _0x593be7(_0x45ac39[_0x05d7('0x3b')](0x1f4,_0x5028e1));}}logger[_0x05d7('0x3b')](_0x05d7('0x48'));return _0x593be7(_0x45ac39[_0x05d7('0x3b')](0x1f4,_0x05d7('0x48')));});},'AgentCapacity':function(_0x235378){var _0xff4d75=this;return new Promise(function(_0x3fd315,_0x4a4b40){if(_0x34cd5b[_0x05d7('0x3e')][_0x05d7('0x4a')](_0x235378['id'])){for(var _0x5d1490 in _0x235378['capacity']){if(_0x235378[_0x05d7('0x4b')][_0x05d7('0x4a')](_0x5d1490)){if(_0x34cd5b['agents'][_0x235378['id']][_0x05d7('0x4a')](_0x5d1490+_0x05d7('0x4c'))){_0x34cd5b[_0x05d7('0x3e')][_0x235378['id']][_0x5d1490+_0x05d7('0x4c')]=parseInt(_0x235378[_0x05d7('0x4b')][_0x5d1490],0xa);}}}_0x34cd5b['agents'][_0x235378['id']][_0x05d7('0x4d')]();return _0x3fd315({'code':0xc8,'message':_0x34cd5b[_0x05d7('0x3e')][_0x235378['id']]});}else{return _0x4a4b40(_0xff4d75['error'](0x1f4,_0x05d7('0x4e')));}});},'Agents':function(_0x5732f9){return new Promise(function(_0x20725b,_0x54f009){var _0xef70e7=_[_0x05d7('0x4f')](_0x34cd5b['agents']);_0x20725b({'count':_0xef70e7[_0x05d7('0x18')],'rows':_0xef70e7});});},'ChatQueues':function(_0x22ae59){return new Promise(function(_0x342580,_0x3178e2){var _0xce73b9=[];for(var _0x387848 in _0x34cd5b[_0x05d7('0x50')]){if(_0x34cd5b[_0x05d7('0x50')][_0x05d7('0x4a')](_0x387848)){var _0x3a6081=_0x34cd5b[_0x05d7('0x50')][_0x387848];var _0x18c8d7={'id':_0x3a6081['id'],'available':_0x3a6081[_0x05d7('0x51')],'loggedIn':_0x3a6081[_0x05d7('0x52')],'name':_0x3a6081[_0x05d7('0x53')],'paused':_0x3a6081[_0x05d7('0x54')],'waiting':_0x3a6081['waiting']};_0xce73b9['push'](_0x18c8d7);}}_0x342580({'count':_0xce73b9[_0x05d7('0x18')],'rows':_0xce73b9});});},'MailQueues':function(_0x3524b9){return new Promise(function(_0x47918b,_0x75d06){var _0x471ea1=[];for(var _0x5c73eb in _0x34cd5b['mailQueues']){if(_0x34cd5b[_0x05d7('0x55')][_0x05d7('0x4a')](_0x5c73eb)){var _0x6e945c=_0x34cd5b[_0x05d7('0x55')][_0x5c73eb];var _0x58b441={'id':_0x6e945c['id'],'available':_0x6e945c[_0x05d7('0x51')],'loggedIn':_0x6e945c[_0x05d7('0x52')],'name':_0x6e945c[_0x05d7('0x53')],'paused':_0x6e945c[_0x05d7('0x54')],'waiting':_0x6e945c['waiting']};_0x471ea1['push'](_0x58b441);}}_0x47918b({'count':_0x471ea1['length'],'rows':_0x471ea1});});},'OpenchannelQueues':function(_0x2c06ca){return new Promise(function(_0x2e39d8,_0x26d489){var _0x5b6fee=[];for(var _0x11e4cd in _0x34cd5b[_0x05d7('0x56')]){if(_0x34cd5b[_0x05d7('0x56')]['hasOwnProperty'](_0x11e4cd)){var _0x2b0192=_0x34cd5b[_0x05d7('0x56')][_0x11e4cd];var _0x2f20c3={'id':_0x2b0192['id'],'available':_0x2b0192['available'],'loggedIn':_0x2b0192[_0x05d7('0x52')],'name':_0x2b0192['name'],'paused':_0x2b0192[_0x05d7('0x54')],'waiting':_0x2b0192[_0x05d7('0x57')]};_0x5b6fee[_0x05d7('0x22')](_0x2f20c3);}}_0x2e39d8({'count':_0x5b6fee[_0x05d7('0x18')],'rows':_0x5b6fee});});},'SmsQueues':function(_0x3a4a4b){return new Promise(function(_0x8b36cd,_0x345482){var _0x55c094=[];for(var _0x308ecb in _0x34cd5b[_0x05d7('0x58')]){if(_0x34cd5b[_0x05d7('0x58')]['hasOwnProperty'](_0x308ecb)){var _0x32e09b=_0x34cd5b[_0x05d7('0x58')][_0x308ecb];var _0x4509ad={'id':_0x32e09b['id'],'available':_0x32e09b[_0x05d7('0x51')],'loggedIn':_0x32e09b[_0x05d7('0x52')],'name':_0x32e09b['name'],'paused':_0x32e09b[_0x05d7('0x54')],'waiting':_0x32e09b[_0x05d7('0x57')]};_0x55c094['push'](_0x4509ad);}}_0x8b36cd({'count':_0x55c094[_0x05d7('0x18')],'rows':_0x55c094});});},'FaxQueues':function(_0x4dc0d6){return new Promise(function(_0x55b213,_0x106b6a){var _0x43126b=[];for(var _0x14c57c in _0x34cd5b[_0x05d7('0x59')]){if(_0x34cd5b[_0x05d7('0x59')]['hasOwnProperty'](_0x14c57c)){var _0x3be4bd=_0x34cd5b['faxQueues'][_0x14c57c];var _0x21fedc={'id':_0x3be4bd['id'],'available':_0x3be4bd[_0x05d7('0x51')],'loggedIn':_0x3be4bd['loggedIn'],'name':_0x3be4bd[_0x05d7('0x53')],'paused':_0x3be4bd[_0x05d7('0x54')],'waiting':_0x3be4bd['waiting']};_0x43126b[_0x05d7('0x22')](_0x21fedc);}}_0x55b213({'count':_0x43126b[_0x05d7('0x18')],'rows':_0x43126b});});},'WhatsappQueues':function(_0x19eeb3){return new Promise(function(_0xfb39bc,_0x2e929c){var _0x12d84f=[];for(var _0x4cd17f in _0x34cd5b['whatsappQueues']){if(_0x34cd5b[_0x05d7('0x5a')][_0x05d7('0x4a')](_0x4cd17f)){var _0x220932=_0x34cd5b['whatsappQueues'][_0x4cd17f];var _0x5b5dce={'id':_0x220932['id'],'available':_0x220932[_0x05d7('0x51')],'loggedIn':_0x220932[_0x05d7('0x52')],'name':_0x220932[_0x05d7('0x53')],'paused':_0x220932['paused'],'waiting':_0x220932['waiting']};_0x12d84f['push'](_0x5b5dce);}}_0xfb39bc({'count':_0x12d84f['length'],'rows':_0x12d84f});});},'ChatQueuesWaitingInteractions':function(_0xf6163){return new Promise(function(_0x2eb997,_0x4ab711){var _0x10eedb=_['values'](_0x34cd5b['chatQueuesWaitingInteractions']);_0x2eb997({'count':_0x10eedb[_0x05d7('0x18')],'rows':_0x10eedb});});},'MailQueuesWaitingInteractions':function(_0x31f8e6){return new Promise(function(_0xb4d7f4,_0x5cad96){var _0x2ad68a=_[_0x05d7('0x4f')](_0x34cd5b[_0x05d7('0x5b')]);_0xb4d7f4({'count':_0x2ad68a[_0x05d7('0x18')],'rows':_0x2ad68a});});},'OpenchannelQueuesWaitingInteractions':function(_0x396e70){return new Promise(function(_0x13ca87,_0x341f41){var _0x3025b=_[_0x05d7('0x4f')](_0x34cd5b[_0x05d7('0x5c')]);_0x13ca87({'count':_0x3025b[_0x05d7('0x18')],'rows':_0x3025b});});},'SmsQueuesWaitingInteractions':function(_0x27b3ea){return new Promise(function(_0x3c1103,_0x3cfcab){var _0x115e0d=_[_0x05d7('0x4f')](_0x34cd5b['smsQueuesWaitingInteractions']);_0x3c1103({'count':_0x115e0d[_0x05d7('0x18')],'rows':_0x115e0d});});},'FaxQueuesWaitingInteractions':function(_0x59a77f){return new Promise(function(_0x10b5fd,_0x477f9c){var _0x30d28e=_[_0x05d7('0x4f')](_0x34cd5b[_0x05d7('0x5d')]);_0x10b5fd({'count':_0x30d28e[_0x05d7('0x18')],'rows':_0x30d28e});});},'WhatsappQueuesWaitingInteractions':function(_0x15cba1){return new Promise(function(_0x3f4f39,_0x4c31a9){var _0x22a825=_[_0x05d7('0x4f')](_0x34cd5b[_0x05d7('0x5e')]);_0x3f4f39({'count':_0x22a825[_0x05d7('0x18')],'rows':_0x22a825});});}};var _0x4725e2=jayson[_0x05d7('0x5f')](_0x586306)[_0x05d7('0x60')]();_0x4725e2['on'](_0x05d7('0x3b'),function(_0x5554e0){logger['error'](JSON[_0x05d7('0x38')](_0x5554e0));return _0x2dafd7(_0x5554e0);});_0x4725e2['listen'](0x232c,_0x05d7('0x61'),function(){console[_0x05d7('0x62')]('Routing\x20RPC\x20server\x20listening\x20on\x20127.0.0.1:%d!',0x232c);return _0x14bf0b('RPC\x20listening\x20on\x20port:'+0x232c);});});};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x88e6=['log','stack','jayson/promise','lodash','../../../config/logger','routing','client','http','request','then','error','message','catch','condition','rules','info','push','Command','format','iftime\x20%s','indexOf','true','[%s][INTERVAL]\x20%s','all','some','[%s][INTERVAL]\x20%s\x20%s','join','\x20|\x20','when'];(function(_0xd254c7,_0x586ec2){var _0x1ed0b4=function(_0x2b3085){while(--_0x2b3085){_0xd254c7['push'](_0xd254c7['shift']());}};_0x1ed0b4(++_0x586ec2);}(_0x88e6,0xea));var _0x688e=function(_0x3c9cba,_0x7e0260){_0x3c9cba=_0x3c9cba-0x0;var _0x49be20=_0x88e6[_0x3c9cba];return _0x49be20;};'use strict';var util=require('util');var BPromise=require('bluebird');var jayson=require(_0x688e('0x0'));var _=require(_0x688e('0x1'));var logger=require(_0x688e('0x2'))(_0x688e('0x3'));var client=jayson[_0x688e('0x4')][_0x688e('0x5')]({'port':0x232a});function request(_0x457d37,_0x31252f){return new BPromise(function(_0x3bdeee,_0x289d40){return client[_0x688e('0x6')](_0x457d37,_0x31252f)[_0x688e('0x7')](function(_0x4faac9){if(_0x4faac9[_0x688e('0x8')]){return _0x289d40(_0x4faac9[_0x688e('0x8')][_0x688e('0x9')]);}else{return _0x3bdeee(_0x4faac9['result']);}})[_0x688e('0xa')](function(_0x120db6){return _0x289d40(_0x120db6);});});}exports[_0x688e('0xb')]=function(_0x277f96,_0x481be3,_0x3af051){return function(_0x521ad7){if(_0x3af051[_0x688e('0xc')]&&!_0x3af051[_0x688e('0xc')][_0x277f96]){logger[_0x688e('0xd')]('[%s][INTERVAL]\x20ROUTING\x20STOPPED',_0x277f96);return _0x521ad7['stop']();}var _0x4505c1=[];for(var _0x369f83=0x0;_0x369f83<_0x481be3['length'];_0x369f83+=0x1){_0x4505c1[_0x688e('0xe')](request(_0x688e('0xf'),{'command':util[_0x688e('0x10')](_0x688e('0x11'),_0x481be3[_0x369f83])})['then'](function(_0x17feae){return _0x17feae&&_0x17feae['message']&&_0x17feae['message'][_0x688e('0x12')](_0x688e('0x13'))>=0x0?!![]:![];})[_0x688e('0xa')](function(_0x421ce1){logger[_0x688e('0x8')](_0x688e('0x14'),_0x277f96,_0x481be3[_0x369f83]);}));}BPromise[_0x688e('0x15')](_0x4505c1)['then'](function(_0x30d6e1){var _0x540391=_[_0x688e('0x16')](_0x30d6e1);logger['info'](_0x688e('0x17'),_0x277f96,_0x481be3[_0x688e('0x18')](_0x688e('0x19')),_0x540391);_0x521ad7[_0x688e('0x1a')](_0x540391);})[_0x688e('0xa')](function(_0x23e886){console[_0x688e('0x1b')](_0x23e886);logger[_0x688e('0x8')]('[%s][INTERVAL]\x20%s\x20%s',_0x277f96,_0x481be3[_0x688e('0x18')](_0x688e('0x19')),_0x23e886[_0x688e('0x1c')]);_0x521ad7['stop']();});};};
\ No newline at end of file
+var _0xed6f=['request','error','message','result','catch','condition','rules','info','[%s][INTERVAL]\x20ROUTING\x20STOPPED','stop','length','Command','format','iftime\x20%s','indexOf','then','some','[%s][INTERVAL]\x20%s\x20%s','join','stack','bluebird','jayson/promise','lodash','../../../config/logger','routing','client','http'];(function(_0x341096,_0x2bcaf8){var _0x70246e=function(_0x39cbf9){while(--_0x39cbf9){_0x341096['push'](_0x341096['shift']());}};_0x70246e(++_0x2bcaf8);}(_0xed6f,0x80));var _0xfed6=function(_0x17d0ea,_0x4d9dcc){_0x17d0ea=_0x17d0ea-0x0;var _0x30cb3e=_0xed6f[_0x17d0ea];return _0x30cb3e;};'use strict';var util=require('util');var BPromise=require(_0xfed6('0x0'));var jayson=require(_0xfed6('0x1'));var _=require(_0xfed6('0x2'));var logger=require(_0xfed6('0x3'))(_0xfed6('0x4'));var client=jayson[_0xfed6('0x5')][_0xfed6('0x6')]({'port':0x232a});function request(_0x5de637,_0x98817e){return new BPromise(function(_0x1bb49f,_0x4cf50c){return client[_0xfed6('0x7')](_0x5de637,_0x98817e)['then'](function(_0x4645b4){if(_0x4645b4[_0xfed6('0x8')]){return _0x4cf50c(_0x4645b4[_0xfed6('0x8')][_0xfed6('0x9')]);}else{return _0x1bb49f(_0x4645b4[_0xfed6('0xa')]);}})[_0xfed6('0xb')](function(_0xb3d2b3){return _0x4cf50c(_0xb3d2b3);});});}exports[_0xfed6('0xc')]=function(_0xb40b09,_0x3eac76,_0x50f632){return function(_0x5ac744){if(_0x50f632[_0xfed6('0xd')]&&!_0x50f632[_0xfed6('0xd')][_0xb40b09]){logger[_0xfed6('0xe')](_0xfed6('0xf'),_0xb40b09);return _0x5ac744[_0xfed6('0x10')]();}var _0x2bff47=[];for(var _0x17b0f9=0x0;_0x17b0f9<_0x3eac76[_0xfed6('0x11')];_0x17b0f9+=0x1){_0x2bff47['push'](request(_0xfed6('0x12'),{'command':util[_0xfed6('0x13')](_0xfed6('0x14'),_0x3eac76[_0x17b0f9])})['then'](function(_0x568d19){return _0x568d19&&_0x568d19['message']&&_0x568d19[_0xfed6('0x9')][_0xfed6('0x15')]('true')>=0x0?!![]:![];})[_0xfed6('0xb')](function(_0x17907d){logger[_0xfed6('0x8')]('[%s][INTERVAL]\x20%s',_0xb40b09,_0x3eac76[_0x17b0f9]);}));}BPromise['all'](_0x2bff47)[_0xfed6('0x16')](function(_0x369930){var _0x99b128=_[_0xfed6('0x17')](_0x369930);logger[_0xfed6('0xe')](_0xfed6('0x18'),_0xb40b09,_0x3eac76['join']('\x20|\x20'),_0x99b128);_0x5ac744['when'](_0x99b128);})[_0xfed6('0xb')](function(_0x59a2ea){console['log'](_0x59a2ea);logger[_0xfed6('0x8')](_0xfed6('0x18'),_0xb40b09,_0x3eac76[_0xfed6('0x19')]('\x20|\x20'),_0x59a2ea[_0xfed6('0x1a')]);_0x5ac744[_0xfed6('0x10')]();});};};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x087b=['calleridname','secondtransfererlinkedid','secondtransfererexten','transfertargetuniqueid','[%s][agents][hangup]','cause','rejected','[%s][agents][hangup]\x20agent:%s\x20reason:%s\x20lastevent:%s','indexOf','splice','agent','diffTime','lodash','util','format','[%s][agents][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s','uniqueid','channel','queue','membername','interface','calleridnum','connectedlinenum','lastevent','getVoiceQueueByName','then','type','agentcomplete','acw','acwtime','agentacw','acwTimeout','request','CreateVoiceAgentReport','destuniqueid','debug','[%s][agents][agentcalled]','agentcalledAt','now','called','connectedlinename','info','[%s][agents][agentcalled]\x20agent:%s\x20destuniqueid:%s\x20lastevent:called','error','[%s][agents][agentringnoanswer]','agentringnoanswerAt','reason','timeout','holdtime','ringtime','talktime','push','queuecallerabandon','forIn','includes','[%s][agents][queuecallerabandon]','[%s][agents][queuecallerabandon]\x20agent:%s\x20destuniqueid:%s\x20lastevent:abandoned','agentringnoanswer','abandoned','agentconnect','[%s][agents][agentconnect]','[%s][agents][agentconnect]\x20agent:%s\x20destuniqueid:%s\x20lastevent:connect','agentconnectAt','answeredelsewheredestinationuniqueid','[%s][agents][agentcomplete]','[%s][agents][agentcomplete]\x20agent:%s\x20destuniqueid:%s\x20lastevent:complete','agentcompleteAt','complete','blindtransfer','transfereruniqueid','[%s][agents][blindtransfer]','[%s][agents][blindtransfer]\x20agent:%s\x20transferuniqueid:%s','transfer','transfertype','blind','transferexten','extension','transferuniqueid','attendedtransfer','[%s][agents][attendedtransfer]','origtransfereruniqueid','origtransfererlinkedid','isNil','secondtransfereruniqueid','[%s][agents][attendedtransfer]\x20agent:%s','ATTENDED','origtransfererexten','transfereeuniqueid','agententerreason','clone'];(function(_0x360125,_0x807e24){var _0x3412ca=function(_0xde8c5f){while(--_0xde8c5f){_0x360125['push'](_0x360125['shift']());}};_0x3412ca(++_0x807e24);}(_0x087b,0x11a));var _0xb087=function(_0x576170,_0x1712ae){_0x576170=_0x576170-0x0;var _0x397c70=_0x087b[_0x576170];return _0x397c70;};'use strict';var _=require(_0xb087('0x0'));var util=require(_0xb087('0x1'));var utils=require('./utils');var agents={};var transfers={};var unanswered=[];function writeDB(_0x5f3606,_0x40e6d6){utils['info'](util[_0xb087('0x2')](_0xb087('0x3'),_0x5f3606[_0xb087('0x4')],_0x5f3606[_0xb087('0x5')],_0x5f3606[_0xb087('0x6')],_0x5f3606[_0xb087('0x7')],_0x5f3606[_0xb087('0x8')],_0x5f3606[_0xb087('0x9')],_0x5f3606[_0xb087('0xa')],_0x5f3606[_0xb087('0xb')]));if(_0x5f3606[_0xb087('0x6')]){utils[_0xb087('0xc')](_0x5f3606[_0xb087('0x6')])[_0xb087('0xd')](function(_0x2f14bc){if(_0x2f14bc){_0x5f3606[_0xb087('0xe')]=_0x2f14bc[_0xb087('0xe')];_0x5f3606['agentacw']=_0x5f3606[_0xb087('0xf')]?_0x2f14bc[_0xb087('0x10')]:![];_0x5f3606[_0xb087('0x11')]=_0x5f3606[_0xb087('0x12')]?_0x2f14bc[_0xb087('0x13')]:0x0;}utils[_0xb087('0x14')](_0xb087('0x15'),_0x5f3606);});}else{utils['request'](_0xb087('0x15'),_0x5f3606);}if(_0x40e6d6){delete transfers[_0x5f3606[_0xb087('0x4')]];}else{delete agents[_0x5f3606[_0xb087('0x16')]];}}exports['agentcalled']=function(_0x3001e3){try{utils[_0xb087('0x17')](util[_0xb087('0x2')](_0xb087('0x18'),_0x3001e3[_0xb087('0x4')]),_0x3001e3);agents[_0x3001e3[_0xb087('0x16')]]=_0x3001e3;agents[_0x3001e3[_0xb087('0x16')]][_0xb087('0x19')]=utils[_0xb087('0x1a')]();agents[_0x3001e3[_0xb087('0x16')]]['lastevent']=_0xb087('0x1b');agents[_0x3001e3[_0xb087('0x16')]]['connectedlinenum']=null;agents[_0x3001e3[_0xb087('0x16')]][_0xb087('0x1c')]=null;utils[_0xb087('0x1d')](util['format'](_0xb087('0x1e'),_0x3001e3[_0xb087('0x4')],agents[_0x3001e3[_0xb087('0x16')]][_0xb087('0x7')],_0x3001e3['destuniqueid']));}catch(_0x13d534){utils[_0xb087('0x1f')](util[_0xb087('0x2')](_0xb087('0x18'),_0x3001e3['uniqueid']),_0x13d534);}};exports['agentringnoanswer']=function(_0x5ea3dc){try{if(!_['isNil'](agents[_0x5ea3dc[_0xb087('0x16')]])){utils[_0xb087('0x17')](util[_0xb087('0x2')](_0xb087('0x20'),_0x5ea3dc[_0xb087('0x4')]),_0x5ea3dc);utils[_0xb087('0x1d')](util[_0xb087('0x2')]('[%s][agents][agentringnoanswer]\x20agent:%s\x20destuniqueid:%s\x20lastevent:timeout',_0x5ea3dc[_0xb087('0x4')],agents[_0x5ea3dc[_0xb087('0x16')]][_0xb087('0x7')],_0x5ea3dc[_0xb087('0x16')]));agents[_0x5ea3dc[_0xb087('0x16')]]['agentringnoanswer']=!![];agents[_0x5ea3dc[_0xb087('0x16')]][_0xb087('0x21')]=utils['now']();agents[_0x5ea3dc['destuniqueid']]['lastevent']='timeout';agents[_0x5ea3dc['destuniqueid']][_0xb087('0x22')]=_0xb087('0x23');agents[_0x5ea3dc[_0xb087('0x16')]][_0xb087('0x24')]=_0x5ea3dc[_0xb087('0x25')]?parseInt(_0x5ea3dc[_0xb087('0x25')])/0x3e8:0x0;agents[_0x5ea3dc[_0xb087('0x16')]][_0xb087('0x26')]=0x0;unanswered[_0xb087('0x27')](_0x5ea3dc[_0xb087('0x16')]);}}catch(_0x18058c){utils[_0xb087('0x1f')](util[_0xb087('0x2')](_0xb087('0x20'),_0x5ea3dc['uniqueid']),_0x18058c);}};exports[_0xb087('0x28')]=function(_0x1335d9){try{_[_0xb087('0x29')](agents,function(_0x15c9ac,_0x22d441){if(_0x15c9ac[_0xb087('0x4')]==_0x1335d9[_0xb087('0x4')]&&!_[_0xb087('0x2a')](unanswered,_0x15c9ac['destuniqueid'])){utils['debug'](util[_0xb087('0x2')](_0xb087('0x2b'),_0x1335d9['uniqueid']),_0x1335d9);utils[_0xb087('0x1d')](util[_0xb087('0x2')](_0xb087('0x2c'),_0x1335d9[_0xb087('0x4')],_0x15c9ac[_0xb087('0x7')],_0x15c9ac[_0xb087('0x16')]));_0x15c9ac[_0xb087('0x2d')]=!![];_0x15c9ac[_0xb087('0x21')]=utils[_0xb087('0x1a')]();_0x15c9ac[_0xb087('0xb')]=_0xb087('0x2e');_0x15c9ac[_0xb087('0x22')]='abandoned';_0x15c9ac[_0xb087('0x24')]=_0x1335d9['holdtime'];_0x15c9ac[_0xb087('0x26')]=0x0;writeDB(_0x15c9ac);}});}catch(_0x296e9b){utils[_0xb087('0x1f')](util[_0xb087('0x2')](_0xb087('0x2b'),_0x1335d9[_0xb087('0x4')]),_0x296e9b);}};exports[_0xb087('0x2f')]=function(_0x29df58){try{if(agents[_0x29df58[_0xb087('0x16')]]){utils['debug'](util['format'](_0xb087('0x30'),_0x29df58[_0xb087('0x4')]),_0x29df58);utils[_0xb087('0x1d')](util[_0xb087('0x2')](_0xb087('0x31'),_0x29df58['uniqueid'],agents[_0x29df58[_0xb087('0x16')]][_0xb087('0x7')],_0x29df58['destuniqueid']));agents[_0x29df58['destuniqueid']][_0xb087('0x32')]=utils[_0xb087('0x1a')]();agents[_0x29df58[_0xb087('0x16')]]['connectedlinenum']=_0x29df58[_0xb087('0xa')];agents[_0x29df58[_0xb087('0x16')]][_0xb087('0x1c')]=_0x29df58[_0xb087('0x1c')];agents[_0x29df58[_0xb087('0x16')]]['holdtime']=_0x29df58[_0xb087('0x25')];agents[_0x29df58['destuniqueid']][_0xb087('0xb')]='connect';_[_0xb087('0x29')](agents,function(_0xc9f9e9,_0x513332){if(_0xc9f9e9[_0xb087('0x16')]!=_0x29df58['destuniqueid']&&_0xc9f9e9[_0xb087('0x4')]==_0x29df58['uniqueid']){_0xc9f9e9[_0xb087('0x26')]=0x0;_0xc9f9e9[_0xb087('0x24')]=_0x29df58[_0xb087('0x25')];_0xc9f9e9[_0xb087('0x2d')]=!![];_0xc9f9e9[_0xb087('0x21')]=utils[_0xb087('0x1a')]();_0xc9f9e9[_0xb087('0xb')]='answered_elsewhere';_0xc9f9e9[_0xb087('0x22')]='answered_elsewhere';_0xc9f9e9[_0xb087('0x33')]=_0x29df58[_0xb087('0x16')];_0xc9f9e9['answeredelsewheremembername']=_0x29df58[_0xb087('0x7')];writeDB(_0xc9f9e9);}});}}catch(_0x45dc6f){utils[_0xb087('0x1f')](util['format'](_0xb087('0x30'),_0x29df58['uniqueid']),_0x45dc6f);}};exports[_0xb087('0xf')]=function(_0x32b9d3){try{if(!_['isNil'](agents[_0x32b9d3[_0xb087('0x16')]])){utils[_0xb087('0x17')](util['format'](_0xb087('0x34'),_0x32b9d3[_0xb087('0x4')]),_0x32b9d3);utils['info'](util[_0xb087('0x2')](_0xb087('0x35'),_0x32b9d3[_0xb087('0x4')],agents[_0x32b9d3[_0xb087('0x16')]]['membername'],_0x32b9d3['destuniqueid']));agents[_0x32b9d3[_0xb087('0x16')]][_0xb087('0xf')]=!![];agents[_0x32b9d3[_0xb087('0x16')]][_0xb087('0x36')]=utils[_0xb087('0x1a')]();agents[_0x32b9d3[_0xb087('0x16')]]['talktime']=utils['diffTime'](agents[_0x32b9d3[_0xb087('0x16')]]['agentcompleteAt'],agents[_0x32b9d3[_0xb087('0x16')]][_0xb087('0x32')]);agents[_0x32b9d3[_0xb087('0x16')]][_0xb087('0x22')]=_0x32b9d3['reason'];agents[_0x32b9d3[_0xb087('0x16')]]['lastevent']=_0xb087('0x37');writeDB(agents[_0x32b9d3[_0xb087('0x16')]]);}}catch(_0xcb56c7){utils[_0xb087('0x1f')](util[_0xb087('0x2')]('[%s][agents][agentcomplete]',_0x32b9d3[_0xb087('0x4')]),_0xcb56c7);}};exports[_0xb087('0x38')]=function(_0x588d96){try{if(!_['isNil'](agents[_0x588d96[_0xb087('0x39')]])){utils['debug'](util['format'](_0xb087('0x3a'),_0x588d96[_0xb087('0x4')]),_0x588d96);utils['info'](util[_0xb087('0x2')](_0xb087('0x3b'),_0x588d96[_0xb087('0x4')],agents[_0x588d96['transfereruniqueid']]['membername'],agents[_0x588d96[_0xb087('0x39')]]['uniqueid']));agents[_0x588d96['transfereruniqueid']][_0xb087('0x3c')]=!![];agents[_0x588d96[_0xb087('0x39')]][_0xb087('0x3d')]=_0xb087('0x3e');agents[_0x588d96[_0xb087('0x39')]][_0xb087('0x3f')]=_0x588d96[_0xb087('0x40')];agents[_0x588d96[_0xb087('0x39')]][_0xb087('0x41')]=agents[_0x588d96[_0xb087('0x39')]][_0xb087('0x4')];}}catch(_0x2cfc44){utils['error'](util[_0xb087('0x2')](_0xb087('0x3a'),_0x588d96['uniqueid']),_0x2cfc44);}};exports[_0xb087('0x42')]=function(_0x458301){try{utils[_0xb087('0x17')](util[_0xb087('0x2')](_0xb087('0x43'),_0x458301[_0xb087('0x44')]),_0x458301);if(_0x458301[_0xb087('0x44')]==_0x458301[_0xb087('0x45')]){if(!_[_0xb087('0x46')](agents[_0x458301[_0xb087('0x47')]])){utils[_0xb087('0x1d')](util['format'](_0xb087('0x48'),_0x458301['origtransfereruniqueid'],agents[_0x458301[_0xb087('0x47')]]['membername']));agents[_0x458301[_0xb087('0x47')]][_0xb087('0x3c')]=!![];agents[_0x458301[_0xb087('0x47')]][_0xb087('0x3d')]=_0xb087('0x49');agents[_0x458301[_0xb087('0x47')]][_0xb087('0x3f')]=_0x458301[_0xb087('0x4a')];agents[_0x458301[_0xb087('0x47')]][_0xb087('0x41')]=_0x458301[_0xb087('0x44')];}if(_0x458301[_0xb087('0x4b')]&&agents[_0x458301[_0xb087('0x4b')]]){agents[_0x458301[_0xb087('0x4b')]][_0xb087('0x4c')]=0x1;transfers[_0x458301[_0xb087('0x4b')]]=_[_0xb087('0x4d')](agents[_0x458301[_0xb087('0x4b')]]);transfers[_0x458301[_0xb087('0x4b')]][_0xb087('0x9')]=agents[_0x458301[_0xb087('0x47')]][_0xb087('0x9')];transfers[_0x458301['transfereeuniqueid']][_0xb087('0x4e')]=agents[_0x458301[_0xb087('0x47')]][_0xb087('0x4e')];transfers[_0x458301['transfereeuniqueid']][_0xb087('0x19')]=utils[_0xb087('0x1a')]();transfers[_0x458301['transfereeuniqueid']][_0xb087('0x32')]=utils[_0xb087('0x1a')]();transfers[_0x458301[_0xb087('0x4b')]]['holdtime']=0x0;transfers[_0x458301[_0xb087('0x4b')]][_0xb087('0x4c')]=0x2;}}else if(_0x458301[_0xb087('0x47')]==_0x458301[_0xb087('0x4f')]){if(!_[_0xb087('0x46')](agents[_0x458301[_0xb087('0x44')]])){utils[_0xb087('0x1d')](util[_0xb087('0x2')]('[%s][agents][attendedtransfer]\x20agent:%s',_0x458301[_0xb087('0x44')],agents[_0x458301[_0xb087('0x44')]][_0xb087('0x7')]));agents[_0x458301['origtransfereruniqueid']][_0xb087('0x3c')]=!![];agents[_0x458301['origtransfereruniqueid']]['transfertype']=_0xb087('0x49');agents[_0x458301[_0xb087('0x44')]]['transferexten']=_0x458301[_0xb087('0x50')];agents[_0x458301['origtransfereruniqueid']][_0xb087('0x41')]=_0x458301[_0xb087('0x47')];}if(_0x458301['transfertargetuniqueid']&&agents[_0x458301['transfertargetuniqueid']]){agents[_0x458301[_0xb087('0x51')]]['agententerreason']=0x1;transfers[_0x458301['transfertargetuniqueid']]=_[_0xb087('0x4d')](agents[_0x458301['transfertargetuniqueid']]);transfers[_0x458301[_0xb087('0x51')]]['calleridnum']=agents[_0x458301[_0xb087('0x44')]][_0xb087('0x9')];transfers[_0x458301[_0xb087('0x51')]][_0xb087('0x4e')]=agents[_0x458301[_0xb087('0x44')]][_0xb087('0x4e')];transfers[_0x458301['transfertargetuniqueid']][_0xb087('0x19')]=utils['now']();transfers[_0x458301[_0xb087('0x51')]][_0xb087('0x32')]=utils[_0xb087('0x1a')]();transfers[_0x458301['transfertargetuniqueid']][_0xb087('0x24')]=0x0;transfers[_0x458301['transfertargetuniqueid']][_0xb087('0x4c')]=0x2;}}}catch(_0x3784f7){utils[_0xb087('0x1f')](util[_0xb087('0x2')](_0xb087('0x43'),_0x458301[_0xb087('0x44')]),_0x3784f7);}};exports['hangup']=function(_0x245d68){try{utils[_0xb087('0x17')](util['format'](_0xb087('0x52'),_0x245d68['uniqueid']),_0x245d68);if(agents[_0x245d68[_0xb087('0x4')]]&&agents[_0x245d68[_0xb087('0x4')]][_0xb087('0x22')]===_0xb087('0x23')){if(_0x245d68[_0xb087('0x53')]==='21'){agents[_0x245d68[_0xb087('0x4')]][_0xb087('0x22')]=_0xb087('0x54');agents[_0x245d68['uniqueid']]['lastevent']='rejected';}utils[_0xb087('0x1d')](util['format'](_0xb087('0x55'),_0x245d68['uniqueid'],agents[_0x245d68[_0xb087('0x4')]][_0xb087('0x7')],agents[_0x245d68[_0xb087('0x4')]][_0xb087('0x22')],agents[_0x245d68['uniqueid']][_0xb087('0xb')]));writeDB(agents[_0x245d68['uniqueid']]);var _0x185102=unanswered[_0xb087('0x56')](_0x245d68[_0xb087('0x4')]);if(_0x185102>-0x1){unanswered[_0xb087('0x57')](_0x185102,0x1);}}if(transfers[_0x245d68['uniqueid']]){transfers[_0x245d68['uniqueid']][_0xb087('0xf')]=!![];transfers[_0x245d68['uniqueid']][_0xb087('0x36')]=utils[_0xb087('0x1a')]();transfers[_0x245d68[_0xb087('0x4')]][_0xb087('0x26')]=utils['diffTime'](transfers[_0x245d68['uniqueid']][_0xb087('0x36')],transfers[_0x245d68['uniqueid']][_0xb087('0x32')]);transfers[_0x245d68[_0xb087('0x4')]][_0xb087('0x22')]=_0xb087('0x58');transfers[_0x245d68[_0xb087('0x4')]]['lastevent']=_0xb087('0x37');utils[_0xb087('0x1d')](util['format']('[%s][agents][hangup]\x20agent:%s\x20reason:%s\x20lastevent:%s',_0x245d68['uniqueid'],transfers[_0x245d68[_0xb087('0x4')]][_0xb087('0x7')],transfers[_0x245d68[_0xb087('0x4')]][_0xb087('0x22')],transfers[_0x245d68[_0xb087('0x4')]][_0xb087('0xb')]));writeDB(transfers[_0x245d68['uniqueid']],!![]);}if(agents[_0x245d68[_0xb087('0x4')]]&&agents[_0x245d68[_0xb087('0x4')]][_0xb087('0x32')]){agents[_0x245d68[_0xb087('0x4')]][_0xb087('0xf')]=!![];agents[_0x245d68[_0xb087('0x4')]][_0xb087('0x36')]=utils['now']();agents[_0x245d68[_0xb087('0x4')]][_0xb087('0x26')]=utils[_0xb087('0x59')](agents[_0x245d68['uniqueid']][_0xb087('0x36')],agents[_0x245d68['uniqueid']][_0xb087('0x32')]);agents[_0x245d68[_0xb087('0x4')]][_0xb087('0x22')]=agents[_0x245d68[_0xb087('0x4')]][_0xb087('0x3c')]?_0xb087('0x3c'):'agent';agents[_0x245d68['uniqueid']][_0xb087('0xb')]=_0xb087('0x37');utils['info'](util[_0xb087('0x2')](_0xb087('0x55'),_0x245d68[_0xb087('0x4')],agents[_0x245d68[_0xb087('0x4')]][_0xb087('0x7')],agents[_0x245d68[_0xb087('0x4')]]['reason'],agents[_0x245d68[_0xb087('0x4')]][_0xb087('0xb')]));writeDB(agents[_0x245d68[_0xb087('0x4')]]);}}catch(_0x3114ce){utils[_0xb087('0x1f')](util[_0xb087('0x2')](_0xb087('0x52'),_0x245d68[_0xb087('0x4')]),_0x3114ce);}};
\ No newline at end of file
+var _0xeb74=['timeout','reason','holdtime','ringtime','talktime','push','error','includes','debug','[%s][agents][queuecallerabandon]','[%s][agents][queuecallerabandon]\x20agent:%s\x20destuniqueid:%s\x20lastevent:abandoned','abandoned','agentconnect','[%s][agents][agentconnect]\x20agent:%s\x20destuniqueid:%s\x20lastevent:connect','connectedlinename','forIn','answered_elsewhere','answeredelsewheredestinationuniqueid','answeredelsewheremembername','[%s][agents][agentconnect]','agentcomplete','agentcompleteAt','diffTime','agentconnectAt','complete','[%s][agents][agentcomplete]','blindtransfer','[%s][agents][blindtransfer]','[%s][agents][blindtransfer]\x20agent:%s\x20transferuniqueid:%s','transfereruniqueid','transfer','transfertype','blind','transferexten','extension','attendedtransfer','origtransfereruniqueid','origtransfererlinkedid','[%s][agents][attendedtransfer]\x20agent:%s','secondtransfereruniqueid','origtransfererexten','transferuniqueid','transfereeuniqueid','agententerreason','calleridnum','calleridname','ATTENDED','transfertargetuniqueid','clone','[%s][agents][attendedtransfer]','[%s][agents][hangup]','rejected','[%s][agents][hangup]\x20agent:%s\x20reason:%s\x20lastevent:%s','indexOf','agent','lodash','util','./utils','info','format','uniqueid','channel','queue','membername','interface','connectedlinenum','getVoiceQueueByName','type','agentacw','acw','acwtime','request','CreateVoiceAgentReport','destuniqueid','agentcalled','[%s][agents][agentcalled]','agentcalledAt','now','lastevent','called','[%s][agents][agentcalled]\x20agent:%s\x20destuniqueid:%s\x20lastevent:called','agentringnoanswer','isNil','[%s][agents][agentringnoanswer]','[%s][agents][agentringnoanswer]\x20agent:%s\x20destuniqueid:%s\x20lastevent:timeout','agentringnoanswerAt'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xeb74,0xe3));var _0x4eb7=function(_0x2183ff,_0x158b74){_0x2183ff=_0x2183ff-0x0;var _0x1de873=_0xeb74[_0x2183ff];return _0x1de873;};'use strict';var _=require(_0x4eb7('0x0'));var util=require(_0x4eb7('0x1'));var utils=require(_0x4eb7('0x2'));var agents={};var transfers={};var unanswered=[];function writeDB(_0x9b674c,_0x2b5a60){utils[_0x4eb7('0x3')](util[_0x4eb7('0x4')]('[%s][agents][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s',_0x9b674c[_0x4eb7('0x5')],_0x9b674c[_0x4eb7('0x6')],_0x9b674c[_0x4eb7('0x7')],_0x9b674c[_0x4eb7('0x8')],_0x9b674c[_0x4eb7('0x9')],_0x9b674c['calleridnum'],_0x9b674c[_0x4eb7('0xa')],_0x9b674c['lastevent']));if(_0x9b674c[_0x4eb7('0x7')]){utils[_0x4eb7('0xb')](_0x9b674c['queue'])['then'](function(_0xe07330){if(_0xe07330){_0x9b674c[_0x4eb7('0xc')]=_0xe07330['type'];_0x9b674c[_0x4eb7('0xd')]=_0x9b674c['agentcomplete']?_0xe07330[_0x4eb7('0xe')]:![];_0x9b674c[_0x4eb7('0xf')]=_0x9b674c[_0x4eb7('0xd')]?_0xe07330['acwTimeout']:0x0;}utils[_0x4eb7('0x10')](_0x4eb7('0x11'),_0x9b674c);});}else{utils[_0x4eb7('0x10')](_0x4eb7('0x11'),_0x9b674c);}if(_0x2b5a60){delete transfers[_0x9b674c[_0x4eb7('0x5')]];}else{delete agents[_0x9b674c[_0x4eb7('0x12')]];}}exports[_0x4eb7('0x13')]=function(_0x4c27a4){try{utils['debug'](util['format'](_0x4eb7('0x14'),_0x4c27a4['uniqueid']),_0x4c27a4);agents[_0x4c27a4[_0x4eb7('0x12')]]=_0x4c27a4;agents[_0x4c27a4[_0x4eb7('0x12')]][_0x4eb7('0x15')]=utils[_0x4eb7('0x16')]();agents[_0x4c27a4[_0x4eb7('0x12')]][_0x4eb7('0x17')]=_0x4eb7('0x18');agents[_0x4c27a4[_0x4eb7('0x12')]][_0x4eb7('0xa')]=null;agents[_0x4c27a4[_0x4eb7('0x12')]]['connectedlinename']=null;utils[_0x4eb7('0x3')](util[_0x4eb7('0x4')](_0x4eb7('0x19'),_0x4c27a4[_0x4eb7('0x5')],agents[_0x4c27a4[_0x4eb7('0x12')]][_0x4eb7('0x8')],_0x4c27a4[_0x4eb7('0x12')]));}catch(_0x16c024){utils['error'](util[_0x4eb7('0x4')](_0x4eb7('0x14'),_0x4c27a4[_0x4eb7('0x5')]),_0x16c024);}};exports[_0x4eb7('0x1a')]=function(_0x32f0f5){try{if(!_[_0x4eb7('0x1b')](agents[_0x32f0f5[_0x4eb7('0x12')]])){utils['debug'](util[_0x4eb7('0x4')](_0x4eb7('0x1c'),_0x32f0f5[_0x4eb7('0x5')]),_0x32f0f5);utils[_0x4eb7('0x3')](util[_0x4eb7('0x4')](_0x4eb7('0x1d'),_0x32f0f5[_0x4eb7('0x5')],agents[_0x32f0f5[_0x4eb7('0x12')]][_0x4eb7('0x8')],_0x32f0f5[_0x4eb7('0x12')]));agents[_0x32f0f5['destuniqueid']][_0x4eb7('0x1a')]=!![];agents[_0x32f0f5[_0x4eb7('0x12')]][_0x4eb7('0x1e')]=utils[_0x4eb7('0x16')]();agents[_0x32f0f5[_0x4eb7('0x12')]][_0x4eb7('0x17')]=_0x4eb7('0x1f');agents[_0x32f0f5[_0x4eb7('0x12')]][_0x4eb7('0x20')]=_0x4eb7('0x1f');agents[_0x32f0f5[_0x4eb7('0x12')]][_0x4eb7('0x21')]=_0x32f0f5[_0x4eb7('0x22')]?parseInt(_0x32f0f5[_0x4eb7('0x22')])/0x3e8:0x0;agents[_0x32f0f5[_0x4eb7('0x12')]][_0x4eb7('0x23')]=0x0;unanswered[_0x4eb7('0x24')](_0x32f0f5[_0x4eb7('0x12')]);}}catch(_0x33a2c1){utils[_0x4eb7('0x25')](util[_0x4eb7('0x4')](_0x4eb7('0x1c'),_0x32f0f5[_0x4eb7('0x5')]),_0x33a2c1);}};exports['queuecallerabandon']=function(_0x34515c){try{_['forIn'](agents,function(_0x446872,_0x13f71a){if(_0x446872[_0x4eb7('0x5')]==_0x34515c[_0x4eb7('0x5')]&&!_[_0x4eb7('0x26')](unanswered,_0x446872[_0x4eb7('0x12')])){utils[_0x4eb7('0x27')](util[_0x4eb7('0x4')](_0x4eb7('0x28'),_0x34515c['uniqueid']),_0x34515c);utils[_0x4eb7('0x3')](util['format'](_0x4eb7('0x29'),_0x34515c[_0x4eb7('0x5')],_0x446872['membername'],_0x446872['destuniqueid']));_0x446872[_0x4eb7('0x1a')]=!![];_0x446872[_0x4eb7('0x1e')]=utils[_0x4eb7('0x16')]();_0x446872[_0x4eb7('0x17')]='abandoned';_0x446872[_0x4eb7('0x20')]=_0x4eb7('0x2a');_0x446872[_0x4eb7('0x21')]=_0x34515c[_0x4eb7('0x21')];_0x446872[_0x4eb7('0x23')]=0x0;writeDB(_0x446872);}});}catch(_0x5ab58d){utils[_0x4eb7('0x25')](util[_0x4eb7('0x4')](_0x4eb7('0x28'),_0x34515c['uniqueid']),_0x5ab58d);}};exports[_0x4eb7('0x2b')]=function(_0xe1cc8f){try{if(agents[_0xe1cc8f[_0x4eb7('0x12')]]){utils['debug'](util[_0x4eb7('0x4')]('[%s][agents][agentconnect]',_0xe1cc8f[_0x4eb7('0x5')]),_0xe1cc8f);utils[_0x4eb7('0x3')](util[_0x4eb7('0x4')](_0x4eb7('0x2c'),_0xe1cc8f['uniqueid'],agents[_0xe1cc8f[_0x4eb7('0x12')]][_0x4eb7('0x8')],_0xe1cc8f[_0x4eb7('0x12')]));agents[_0xe1cc8f[_0x4eb7('0x12')]]['agentconnectAt']=utils['now']();agents[_0xe1cc8f['destuniqueid']][_0x4eb7('0xa')]=_0xe1cc8f[_0x4eb7('0xa')];agents[_0xe1cc8f[_0x4eb7('0x12')]][_0x4eb7('0x2d')]=_0xe1cc8f[_0x4eb7('0x2d')];agents[_0xe1cc8f[_0x4eb7('0x12')]][_0x4eb7('0x21')]=_0xe1cc8f[_0x4eb7('0x22')];agents[_0xe1cc8f[_0x4eb7('0x12')]][_0x4eb7('0x17')]='connect';_[_0x4eb7('0x2e')](agents,function(_0x38218f,_0xe04d76){if(_0x38218f[_0x4eb7('0x12')]!=_0xe1cc8f[_0x4eb7('0x12')]&&_0x38218f[_0x4eb7('0x5')]==_0xe1cc8f[_0x4eb7('0x5')]){_0x38218f[_0x4eb7('0x23')]=0x0;_0x38218f[_0x4eb7('0x21')]=_0xe1cc8f[_0x4eb7('0x22')];_0x38218f[_0x4eb7('0x1a')]=!![];_0x38218f[_0x4eb7('0x1e')]=utils[_0x4eb7('0x16')]();_0x38218f[_0x4eb7('0x17')]=_0x4eb7('0x2f');_0x38218f[_0x4eb7('0x20')]=_0x4eb7('0x2f');_0x38218f[_0x4eb7('0x30')]=_0xe1cc8f[_0x4eb7('0x12')];_0x38218f[_0x4eb7('0x31')]=_0xe1cc8f['membername'];writeDB(_0x38218f);}});}}catch(_0x2fd5c2){utils[_0x4eb7('0x25')](util[_0x4eb7('0x4')](_0x4eb7('0x32'),_0xe1cc8f[_0x4eb7('0x5')]),_0x2fd5c2);}};exports[_0x4eb7('0x33')]=function(_0x3cd9e5){try{if(!_[_0x4eb7('0x1b')](agents[_0x3cd9e5[_0x4eb7('0x12')]])){utils['debug'](util[_0x4eb7('0x4')]('[%s][agents][agentcomplete]',_0x3cd9e5[_0x4eb7('0x5')]),_0x3cd9e5);utils[_0x4eb7('0x3')](util[_0x4eb7('0x4')]('[%s][agents][agentcomplete]\x20agent:%s\x20destuniqueid:%s\x20lastevent:complete',_0x3cd9e5[_0x4eb7('0x5')],agents[_0x3cd9e5[_0x4eb7('0x12')]][_0x4eb7('0x8')],_0x3cd9e5[_0x4eb7('0x12')]));agents[_0x3cd9e5['destuniqueid']][_0x4eb7('0x33')]=!![];agents[_0x3cd9e5['destuniqueid']][_0x4eb7('0x34')]=utils[_0x4eb7('0x16')]();agents[_0x3cd9e5[_0x4eb7('0x12')]][_0x4eb7('0x23')]=utils[_0x4eb7('0x35')](agents[_0x3cd9e5['destuniqueid']]['agentcompleteAt'],agents[_0x3cd9e5[_0x4eb7('0x12')]][_0x4eb7('0x36')]);agents[_0x3cd9e5[_0x4eb7('0x12')]][_0x4eb7('0x20')]=_0x3cd9e5[_0x4eb7('0x20')];agents[_0x3cd9e5['destuniqueid']][_0x4eb7('0x17')]=_0x4eb7('0x37');writeDB(agents[_0x3cd9e5['destuniqueid']]);}}catch(_0x22e09c){utils[_0x4eb7('0x25')](util['format'](_0x4eb7('0x38'),_0x3cd9e5[_0x4eb7('0x5')]),_0x22e09c);}};exports[_0x4eb7('0x39')]=function(_0x5774d5){try{if(!_[_0x4eb7('0x1b')](agents[_0x5774d5['transfereruniqueid']])){utils['debug'](util[_0x4eb7('0x4')](_0x4eb7('0x3a'),_0x5774d5[_0x4eb7('0x5')]),_0x5774d5);utils[_0x4eb7('0x3')](util[_0x4eb7('0x4')](_0x4eb7('0x3b'),_0x5774d5[_0x4eb7('0x5')],agents[_0x5774d5[_0x4eb7('0x3c')]][_0x4eb7('0x8')],agents[_0x5774d5[_0x4eb7('0x3c')]][_0x4eb7('0x5')]));agents[_0x5774d5[_0x4eb7('0x3c')]][_0x4eb7('0x3d')]=!![];agents[_0x5774d5[_0x4eb7('0x3c')]][_0x4eb7('0x3e')]=_0x4eb7('0x3f');agents[_0x5774d5[_0x4eb7('0x3c')]][_0x4eb7('0x40')]=_0x5774d5[_0x4eb7('0x41')];agents[_0x5774d5[_0x4eb7('0x3c')]]['transferuniqueid']=agents[_0x5774d5[_0x4eb7('0x3c')]]['uniqueid'];}}catch(_0x4db5f7){utils[_0x4eb7('0x25')](util[_0x4eb7('0x4')](_0x4eb7('0x3a'),_0x5774d5[_0x4eb7('0x5')]),_0x4db5f7);}};exports[_0x4eb7('0x42')]=function(_0x553736){try{utils['debug'](util[_0x4eb7('0x4')]('[%s][agents][attendedtransfer]',_0x553736[_0x4eb7('0x43')]),_0x553736);if(_0x553736[_0x4eb7('0x43')]==_0x553736[_0x4eb7('0x44')]){if(!_[_0x4eb7('0x1b')](agents[_0x553736['secondtransfereruniqueid']])){utils[_0x4eb7('0x3')](util[_0x4eb7('0x4')](_0x4eb7('0x45'),_0x553736[_0x4eb7('0x43')],agents[_0x553736['secondtransfereruniqueid']][_0x4eb7('0x8')]));agents[_0x553736[_0x4eb7('0x46')]]['transfer']=!![];agents[_0x553736[_0x4eb7('0x46')]][_0x4eb7('0x3e')]='ATTENDED';agents[_0x553736[_0x4eb7('0x46')]]['transferexten']=_0x553736[_0x4eb7('0x47')];agents[_0x553736['secondtransfereruniqueid']][_0x4eb7('0x48')]=_0x553736[_0x4eb7('0x43')];}if(_0x553736[_0x4eb7('0x49')]&&agents[_0x553736[_0x4eb7('0x49')]]){agents[_0x553736[_0x4eb7('0x49')]][_0x4eb7('0x4a')]=0x1;transfers[_0x553736['transfereeuniqueid']]=_['clone'](agents[_0x553736[_0x4eb7('0x49')]]);transfers[_0x553736[_0x4eb7('0x49')]][_0x4eb7('0x4b')]=agents[_0x553736[_0x4eb7('0x46')]]['calleridnum'];transfers[_0x553736[_0x4eb7('0x49')]][_0x4eb7('0x4c')]=agents[_0x553736['secondtransfereruniqueid']][_0x4eb7('0x4c')];transfers[_0x553736[_0x4eb7('0x49')]][_0x4eb7('0x15')]=utils[_0x4eb7('0x16')]();transfers[_0x553736[_0x4eb7('0x49')]][_0x4eb7('0x36')]=utils[_0x4eb7('0x16')]();transfers[_0x553736['transfereeuniqueid']]['holdtime']=0x0;transfers[_0x553736[_0x4eb7('0x49')]]['agententerreason']=0x2;}}else if(_0x553736[_0x4eb7('0x46')]==_0x553736['secondtransfererlinkedid']){if(!_[_0x4eb7('0x1b')](agents[_0x553736['origtransfereruniqueid']])){utils['info'](util[_0x4eb7('0x4')](_0x4eb7('0x45'),_0x553736['origtransfereruniqueid'],agents[_0x553736[_0x4eb7('0x43')]]['membername']));agents[_0x553736[_0x4eb7('0x43')]][_0x4eb7('0x3d')]=!![];agents[_0x553736['origtransfereruniqueid']][_0x4eb7('0x3e')]=_0x4eb7('0x4d');agents[_0x553736['origtransfereruniqueid']]['transferexten']=_0x553736['secondtransfererexten'];agents[_0x553736['origtransfereruniqueid']][_0x4eb7('0x48')]=_0x553736['secondtransfereruniqueid'];}if(_0x553736[_0x4eb7('0x4e')]&&agents[_0x553736[_0x4eb7('0x4e')]]){agents[_0x553736['transfertargetuniqueid']][_0x4eb7('0x4a')]=0x1;transfers[_0x553736[_0x4eb7('0x4e')]]=_[_0x4eb7('0x4f')](agents[_0x553736[_0x4eb7('0x4e')]]);transfers[_0x553736[_0x4eb7('0x4e')]][_0x4eb7('0x4b')]=agents[_0x553736['origtransfereruniqueid']]['calleridnum'];transfers[_0x553736['transfertargetuniqueid']][_0x4eb7('0x4c')]=agents[_0x553736[_0x4eb7('0x43')]][_0x4eb7('0x4c')];transfers[_0x553736[_0x4eb7('0x4e')]][_0x4eb7('0x15')]=utils['now']();transfers[_0x553736['transfertargetuniqueid']][_0x4eb7('0x36')]=utils[_0x4eb7('0x16')]();transfers[_0x553736[_0x4eb7('0x4e')]][_0x4eb7('0x21')]=0x0;transfers[_0x553736[_0x4eb7('0x4e')]]['agententerreason']=0x2;}}}catch(_0x439861){utils[_0x4eb7('0x25')](util[_0x4eb7('0x4')](_0x4eb7('0x50'),_0x553736['origtransfereruniqueid']),_0x439861);}};exports['hangup']=function(_0x3bcbd1){try{utils[_0x4eb7('0x27')](util['format'](_0x4eb7('0x51'),_0x3bcbd1['uniqueid']),_0x3bcbd1);if(agents[_0x3bcbd1[_0x4eb7('0x5')]]&&agents[_0x3bcbd1[_0x4eb7('0x5')]][_0x4eb7('0x20')]===_0x4eb7('0x1f')){if(_0x3bcbd1['cause']==='21'){agents[_0x3bcbd1[_0x4eb7('0x5')]][_0x4eb7('0x20')]=_0x4eb7('0x52');agents[_0x3bcbd1[_0x4eb7('0x5')]][_0x4eb7('0x17')]=_0x4eb7('0x52');}utils[_0x4eb7('0x3')](util[_0x4eb7('0x4')](_0x4eb7('0x53'),_0x3bcbd1[_0x4eb7('0x5')],agents[_0x3bcbd1[_0x4eb7('0x5')]][_0x4eb7('0x8')],agents[_0x3bcbd1[_0x4eb7('0x5')]][_0x4eb7('0x20')],agents[_0x3bcbd1[_0x4eb7('0x5')]][_0x4eb7('0x17')]));writeDB(agents[_0x3bcbd1[_0x4eb7('0x5')]]);var _0x31e6d2=unanswered[_0x4eb7('0x54')](_0x3bcbd1['uniqueid']);if(_0x31e6d2>-0x1){unanswered['splice'](_0x31e6d2,0x1);}}if(transfers[_0x3bcbd1[_0x4eb7('0x5')]]){transfers[_0x3bcbd1[_0x4eb7('0x5')]][_0x4eb7('0x33')]=!![];transfers[_0x3bcbd1[_0x4eb7('0x5')]][_0x4eb7('0x34')]=utils[_0x4eb7('0x16')]();transfers[_0x3bcbd1[_0x4eb7('0x5')]][_0x4eb7('0x23')]=utils['diffTime'](transfers[_0x3bcbd1[_0x4eb7('0x5')]][_0x4eb7('0x34')],transfers[_0x3bcbd1[_0x4eb7('0x5')]]['agentconnectAt']);transfers[_0x3bcbd1['uniqueid']][_0x4eb7('0x20')]=_0x4eb7('0x55');transfers[_0x3bcbd1[_0x4eb7('0x5')]]['lastevent']='complete';utils[_0x4eb7('0x3')](util[_0x4eb7('0x4')](_0x4eb7('0x53'),_0x3bcbd1[_0x4eb7('0x5')],transfers[_0x3bcbd1[_0x4eb7('0x5')]][_0x4eb7('0x8')],transfers[_0x3bcbd1[_0x4eb7('0x5')]][_0x4eb7('0x20')],transfers[_0x3bcbd1[_0x4eb7('0x5')]][_0x4eb7('0x17')]));writeDB(transfers[_0x3bcbd1[_0x4eb7('0x5')]],!![]);}if(agents[_0x3bcbd1[_0x4eb7('0x5')]]&&agents[_0x3bcbd1['uniqueid']]['agentconnectAt']){agents[_0x3bcbd1[_0x4eb7('0x5')]][_0x4eb7('0x33')]=!![];agents[_0x3bcbd1[_0x4eb7('0x5')]][_0x4eb7('0x34')]=utils[_0x4eb7('0x16')]();agents[_0x3bcbd1[_0x4eb7('0x5')]]['talktime']=utils['diffTime'](agents[_0x3bcbd1[_0x4eb7('0x5')]][_0x4eb7('0x34')],agents[_0x3bcbd1[_0x4eb7('0x5')]][_0x4eb7('0x36')]);agents[_0x3bcbd1[_0x4eb7('0x5')]][_0x4eb7('0x20')]=agents[_0x3bcbd1[_0x4eb7('0x5')]][_0x4eb7('0x3d')]?_0x4eb7('0x3d'):_0x4eb7('0x55');agents[_0x3bcbd1[_0x4eb7('0x5')]][_0x4eb7('0x17')]=_0x4eb7('0x37');utils[_0x4eb7('0x3')](util['format'](_0x4eb7('0x53'),_0x3bcbd1[_0x4eb7('0x5')],agents[_0x3bcbd1[_0x4eb7('0x5')]][_0x4eb7('0x8')],agents[_0x3bcbd1['uniqueid']][_0x4eb7('0x20')],agents[_0x3bcbd1[_0x4eb7('0x5')]]['lastevent']));writeDB(agents[_0x3bcbd1[_0x4eb7('0x5')]]);}}catch(_0x2448a1){utils[_0x4eb7('0x25')](util['format'](_0x4eb7('0x51'),_0x3bcbd1[_0x4eb7('0x5')]),_0x2448a1);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x39e6=['transfereechannel','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','secondtransfererchannel','userfield','_attended','transfertargetchannel','origtransfererchannel','musiconholdstart','musiconholdstartAt','[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s','musiconholdstop','[%s][calls][musiconholdstop]','[%s][calls][musiconholdstop]\x20mohtime:%s','[%s][calls][varset]','[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s','value','source','variable','xmd-phone','[%s][calls][varset]\x20variable:xmd-phone\x20value:%s','destination','xmd-callerid-preview','xmd-callerid','[%s][calls][varset]\x20variable:%s\x20value:%s','xmd-queue','xmcs-queue','lastdata','[%s][calls][varset]\x20variable:xmd-contactid\x20value:%s','ContactId','xmd-cdrtype','[%s][calls][varset]\x20variable:xmd-cdrtype\x20value:%s','type','outboundrouteid','[%s][calls][varset]\x20variable:outboundrouteid\x20value:%s','routeid','[%s][calls][varset]\x20variable:sipcallid\x20value:%s','sipcallid','newexten','[%s][calls][newexten]','[%s][calls][newexten]\x20application:%s\x20appdata:%s','application','toLowerCase','set','startsWith','appdata','split','substring','lastIndexOf','noop','execif','gotoif','lodash','./utils','FAILED','NO\x20ANSWER','ANSWERED','BUSY','blinds','uniqueid','transfereeuniqueid','info','format','channel','queue','membername','interface','calleridnum','connectedlinenum','lastevent','accountcode','then','UserId','request','CreateVoiceCallReport','debug','[%s][calls][newchannel]','OutgoingSpoolFailed','context','exten','DOCUMENTATION','error','newstate','[%s][calls][newstate]','isNil','channelstate','[%s][calls][newstate]\x20context:%s\x20channel:%s','systemanswertime','now','linkedid','transfer','[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s','destinationchannel','answertime','toNumber','hangup','[%s][calls][hangup]','callerid','calleridname','[%s][calls][hangup]\x20callerid:%s\x20reason:%s','endtime','diffTime','starttime','billableseconds','attendedtransfer','localtwolinkedid','[%s][calls][attendedtransfer]','origtransfereruniqueid'];(function(_0x320128,_0x2def41){var _0x334bc5=function(_0x1bba48){while(--_0x1bba48){_0x320128['push'](_0x320128['shift']());}};_0x334bc5(++_0x2def41);}(_0x39e6,0x9e));var _0x639e=function(_0x4f1ff9,_0x2214ee){_0x4f1ff9=_0x4f1ff9-0x0;var _0x367540=_0x39e6[_0x4f1ff9];return _0x367540;};'use strict';var _=require(_0x639e('0x0'));var util=require('util');var utils=require(_0x639e('0x1'));var transfers=require('./transfers.controller');var dispositions=['NO\x20ANSWER',_0x639e('0x2'),_0x639e('0x2'),'NO\x20ANSWER',_0x639e('0x3'),_0x639e('0x3'),_0x639e('0x4'),_0x639e('0x5'),_0x639e('0x2'),_0x639e('0x2'),_0x639e('0x2')];var channels={};function writeDB(_0x21db36){var _0x36b11f;if(transfers[_0x639e('0x6')][_0x21db36[_0x639e('0x7')]]){_0x36b11f=_0x21db36[_0x639e('0x7')];_0x21db36[_0x639e('0x7')]=transfers[_0x639e('0x6')][_0x21db36[_0x639e('0x7')]][_0x639e('0x8')];}utils[_0x639e('0x9')](util[_0x639e('0xa')]('[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s',_0x21db36['uniqueid'],_0x21db36[_0x639e('0xb')],_0x21db36[_0x639e('0xc')],_0x21db36[_0x639e('0xd')],_0x21db36[_0x639e('0xe')],_0x21db36[_0x639e('0xf')],_0x21db36[_0x639e('0x10')],_0x21db36[_0x639e('0x11')]));if(_0x21db36['accountcode']){utils['getUserByInternal'](_0x21db36[_0x639e('0x12')])[_0x639e('0x13')](function(_0x89302c){if(_0x89302c){_0x21db36[_0x639e('0x14')]=_0x89302c['id'];}utils[_0x639e('0x15')](_0x639e('0x16'),_0x21db36);});}else{utils['request'](_0x639e('0x16'),_0x21db36);}if(channels[_0x21db36[_0x639e('0x7')]]){delete channels[_0x21db36[_0x639e('0x7')]];}else if(_0x36b11f&&channels[_0x36b11f]){if(!transfers[_0x639e('0x6')][_0x36b11f]['recording'])delete transfers[_0x639e('0x6')][_0x36b11f];delete channels[_0x36b11f];}}exports['newchannel']=function(_0x13a93c){try{utils[_0x639e('0x17')](util[_0x639e('0xa')](_0x639e('0x18'),_0x13a93c[_0x639e('0x7')]),_0x13a93c);if(_0x13a93c[_0x639e('0x7')]==_0x13a93c['linkedid']&&_0x13a93c[_0x639e('0xb')]!=_0x639e('0x19')){utils[_0x639e('0x9')](util[_0x639e('0xa')]('[%s][calls][newchannel]\x20context:%s\x20exten:%s',_0x13a93c[_0x639e('0x7')],_0x13a93c[_0x639e('0x1a')],_0x13a93c[_0x639e('0x1b')]));channels[_0x13a93c[_0x639e('0x7')]]={'uniqueid':_0x13a93c[_0x639e('0x7')],'accountcode':_0x13a93c['accountcode'],'source':_0x13a93c[_0x639e('0xf')],'destination':_0x13a93c[_0x639e('0x1b')],'destinationcontext':_0x13a93c['context'],'channel':_0x13a93c[_0x639e('0xb')],'starttime':utils['now'](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':'NO\x20ANSWER','amaflags':_0x639e('0x1c')};}}catch(_0x3813f6){utils[_0x639e('0x1d')](util[_0x639e('0xa')](_0x639e('0x18'),_0x13a93c['uniqueid']),_0x3813f6);}};exports[_0x639e('0x1e')]=function(_0x3647d9){try{utils[_0x639e('0x17')](util[_0x639e('0xa')](_0x639e('0x1f'),_0x3647d9['uniqueid']),_0x3647d9);if(!_[_0x639e('0x20')](channels[_0x3647d9[_0x639e('0x7')]])&&_0x3647d9[_0x639e('0x21')]==0x6){utils[_0x639e('0x9')](util['format'](_0x639e('0x22'),_0x3647d9[_0x639e('0x7')],_0x3647d9[_0x639e('0x1a')],_0x3647d9['channel']));if(_[_0x639e('0x20')](channels[_0x3647d9['uniqueid']][_0x639e('0x23')])){channels[_0x3647d9['uniqueid']]['systemanswertime']=utils[_0x639e('0x24')]();}}else if(!_[_0x639e('0x20')](channels[_0x3647d9[_0x639e('0x25')]])&&_0x3647d9[_0x639e('0x21')]==0x6&&_0x3647d9[_0x639e('0x1a')]!=_0x639e('0x26')){utils['info'](util[_0x639e('0xa')](_0x639e('0x27'),_0x3647d9['uniqueid'],_0x3647d9['linkedid'],_0x3647d9[_0x639e('0x1a')],_0x3647d9[_0x639e('0xb')]));channels[_0x3647d9[_0x639e('0x25')]]['accountcode']=_0x3647d9[_0x639e('0x12')];channels[_0x3647d9['linkedid']][_0x639e('0x28')]=_0x3647d9[_0x639e('0xb')];if(_[_0x639e('0x20')](channels[_0x3647d9['linkedid']][_0x639e('0x29')])){channels[_0x3647d9['linkedid']][_0x639e('0x29')]=utils[_0x639e('0x24')]();}channels[_0x3647d9[_0x639e('0x25')]]['disposition']=dispositions[_[_0x639e('0x2a')](_0x3647d9[_0x639e('0x21')])]||_0x639e('0x4');}}catch(_0x49289c){utils[_0x639e('0x1d')](util['format'](_0x639e('0x1f'),_0x3647d9[_0x639e('0x7')]),_0x49289c);}};exports[_0x639e('0x2b')]=function(_0x339981){try{if(!_[_0x639e('0x20')](channels[_0x339981['uniqueid']])){utils[_0x639e('0x17')](util[_0x639e('0xa')](_0x639e('0x2c'),_0x339981[_0x639e('0x7')]),_0x339981);if(_['isNil'](channels[_0x339981[_0x639e('0x7')]][_0x639e('0x2d')])){channels[_0x339981[_0x639e('0x7')]]['callerid']=_0x339981[_0x639e('0x2e')]+'\x20<'+_0x339981['calleridnum']+'>';}utils[_0x639e('0x9')](util[_0x639e('0xa')](_0x639e('0x2f'),_0x339981[_0x639e('0x7')],channels[_0x339981[_0x639e('0x7')]][_0x639e('0x2d')],_0x339981['cause-txt']));channels[_0x339981[_0x639e('0x7')]][_0x639e('0x30')]=utils['now']();channels[_0x339981[_0x639e('0x7')]]['duration']=utils[_0x639e('0x31')](channels[_0x339981[_0x639e('0x7')]][_0x639e('0x30')],channels[_0x339981[_0x639e('0x7')]][_0x639e('0x32')]);channels[_0x339981[_0x639e('0x7')]][_0x639e('0x33')]=channels[_0x339981[_0x639e('0x7')]]['answertime']?utils['diffTime'](channels[_0x339981['uniqueid']]['endtime'],channels[_0x339981[_0x639e('0x7')]][_0x639e('0x29')]):0x0;writeDB(channels[_0x339981['uniqueid']]);}}catch(_0x2fa730){utils[_0x639e('0x1d')](util[_0x639e('0xa')]('[%s][calls][hangup]',_0x339981[_0x639e('0x7')]),_0x2fa730);}};exports[_0x639e('0x34')]=function(_0x235f9c){try{if(!_[_0x639e('0x20')](channels[_0x235f9c[_0x639e('0x35')]])){utils[_0x639e('0x17')](util[_0x639e('0xa')](_0x639e('0x36'),_0x235f9c[_0x639e('0x37')]),_0x235f9c);if(channels[_0x235f9c['localtwolinkedid']][_0x639e('0xb')]==_0x235f9c[_0x639e('0x38')]){utils[_0x639e('0x9')](util[_0x639e('0xa')](_0x639e('0x39'),_0x235f9c[_0x639e('0x37')],_0x235f9c['localtwolinkedid'],_0x235f9c[_0x639e('0x3a')]));channels[_0x235f9c[_0x639e('0x35')]][_0x639e('0x28')]=_0x235f9c[_0x639e('0x3a')];channels[_0x235f9c[_0x639e('0x35')]][_0x639e('0x3b')]=_0x639e('0x3c');}else if(channels[_0x235f9c[_0x639e('0x35')]][_0x639e('0xb')]=_0x235f9c[_0x639e('0x3d')]){utils[_0x639e('0x9')](util[_0x639e('0xa')]('[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s',_0x235f9c[_0x639e('0x37')],_0x235f9c['localtwolinkedid'],_0x235f9c['origtransfererchannel']));channels[_0x235f9c[_0x639e('0x35')]][_0x639e('0x28')]=_0x235f9c[_0x639e('0x3e')];channels[_0x235f9c[_0x639e('0x35')]][_0x639e('0x3b')]='_attended';}}}catch(_0x2b0dbb){utils[_0x639e('0x1d')](util['format'](_0x639e('0x36'),_0x235f9c[_0x639e('0x37')]),_0x2b0dbb);}};exports[_0x639e('0x3f')]=function(_0x4c5899){try{if(!_[_0x639e('0x20')](channels[_0x4c5899[_0x639e('0x7')]])){utils[_0x639e('0x17')](util[_0x639e('0xa')]('[%s][calls][musiconholdstart]',_0x4c5899[_0x639e('0x7')]),_0x4c5899);channels[_0x4c5899['uniqueid']][_0x639e('0x40')]=utils['now']();utils[_0x639e('0x9')](util[_0x639e('0xa')](_0x639e('0x41'),_0x4c5899[_0x639e('0x7')],channels[_0x4c5899[_0x639e('0x7')]]['musiconholdstartAt']));}}catch(_0x1b8aab){utils[_0x639e('0x1d')](util[_0x639e('0xa')]('[%s][calls][musiconholdstart]',_0x4c5899[_0x639e('0x7')]),_0x1b8aab);}};exports[_0x639e('0x42')]=function(_0x1b9ec2){try{if(!_[_0x639e('0x20')](channels[_0x1b9ec2['uniqueid']])){utils[_0x639e('0x17')](util['format'](_0x639e('0x43'),_0x1b9ec2[_0x639e('0x7')]),_0x1b9ec2);if(!_[_0x639e('0x20')](channels[_0x1b9ec2[_0x639e('0x7')]]['musiconholdstartAt'])){channels[_0x1b9ec2[_0x639e('0x7')]]['mohtime']+=utils['diffTime'](utils[_0x639e('0x24')](),channels[_0x1b9ec2[_0x639e('0x7')]][_0x639e('0x40')]);utils[_0x639e('0x9')](util['format'](_0x639e('0x44'),_0x1b9ec2[_0x639e('0x7')],channels[_0x1b9ec2[_0x639e('0x7')]]['mohtime']));delete channels[_0x1b9ec2[_0x639e('0x7')]][_0x639e('0x40')];}}}catch(_0x44a1cd){utils[_0x639e('0x1d')](util[_0x639e('0xa')](_0x639e('0x43'),_0x1b9ec2[_0x639e('0x7')]),_0x44a1cd);}};exports['varset']=function(_0x349cc6){try{if(!_[_0x639e('0x20')](channels[_0x349cc6[_0x639e('0x7')]])){utils[_0x639e('0x17')](util['format'](_0x639e('0x45'),_0x349cc6[_0x639e('0x7')]),_0x349cc6);if(!_[_0x639e('0x20')](_0x349cc6['variable']['xmd-originatecalleridnum'])){utils['info'](util[_0x639e('0xa')](_0x639e('0x46'),_0x349cc6['uniqueid'],_0x349cc6[_0x639e('0x47')]));channels[_0x349cc6[_0x639e('0x7')]][_0x639e('0x48')]=_0x349cc6[_0x639e('0x47')];}if(!_[_0x639e('0x20')](_0x349cc6[_0x639e('0x49')][_0x639e('0x4a')])){utils[_0x639e('0x9')](util['format'](_0x639e('0x4b'),_0x349cc6[_0x639e('0x7')],_0x349cc6['value']));channels[_0x349cc6['uniqueid']][_0x639e('0x4c')]=_0x349cc6['value'];channels[_0x349cc6[_0x639e('0x7')]][_0x639e('0x2d')]='\x22'+_0x349cc6[_0x639e('0x47')]+'\x22\x20<'+_0x349cc6[_0x639e('0x47')]+'>';}if(!_[_0x639e('0x20')](_0x349cc6[_0x639e('0x49')][_0x639e('0x4d')])||!_['isNil'](_0x349cc6[_0x639e('0x49')][_0x639e('0x4e')])){utils['info'](util[_0x639e('0xa')](_0x639e('0x4f'),_0x349cc6[_0x639e('0x7')],!_[_0x639e('0x20')](_0x349cc6[_0x639e('0x49')]['xmd-callerid-preview'])?_0x639e('0x4d'):_0x639e('0x4e'),_0x349cc6[_0x639e('0x47')]));channels[_0x349cc6[_0x639e('0x7')]][_0x639e('0x2d')]=_0x349cc6[_0x639e('0x47')];}if(!_[_0x639e('0x20')](_0x349cc6[_0x639e('0x49')][_0x639e('0x50')])||!_[_0x639e('0x20')](_0x349cc6['variable']['xmcs-queue'])){utils[_0x639e('0x9')](util[_0x639e('0xa')](_0x639e('0x4f'),_0x349cc6[_0x639e('0x7')],!_[_0x639e('0x20')](_0x349cc6['variable'][_0x639e('0x50')])?'xmd-queue':_0x639e('0x51'),_0x349cc6[_0x639e('0x47')]));channels[_0x349cc6[_0x639e('0x7')]]['lastapplication']='Queue';channels[_0x349cc6[_0x639e('0x7')]][_0x639e('0x52')]=_0x349cc6[_0x639e('0x47')];channels[_0x349cc6['uniqueid']]['queue']=!![];}if(!_[_0x639e('0x20')](_0x349cc6[_0x639e('0x49')]['xmd-contactid'])){utils[_0x639e('0x9')](util[_0x639e('0xa')](_0x639e('0x53'),_0x349cc6[_0x639e('0x7')],_0x349cc6['value']));channels[_0x349cc6[_0x639e('0x7')]][_0x639e('0x54')]=_0x349cc6[_0x639e('0x47')];}if(!_[_0x639e('0x20')](_0x349cc6['variable'][_0x639e('0x55')])){utils[_0x639e('0x9')](util[_0x639e('0xa')](_0x639e('0x56'),_0x349cc6[_0x639e('0x7')],_0x349cc6['value']));channels[_0x349cc6[_0x639e('0x7')]][_0x639e('0x57')]=_0x349cc6[_0x639e('0x47')];}if(!_[_0x639e('0x20')](_0x349cc6[_0x639e('0x49')][_0x639e('0x58')])){utils[_0x639e('0x9')](util[_0x639e('0xa')](_0x639e('0x59'),_0x349cc6['uniqueid'],_0x349cc6[_0x639e('0x47')]));channels[_0x349cc6[_0x639e('0x7')]][_0x639e('0x5a')]=_0x349cc6[_0x639e('0x47')];}if(!_[_0x639e('0x20')](_0x349cc6['variable']['sipcallid'])){utils[_0x639e('0x9')](util['format'](_0x639e('0x5b'),_0x349cc6[_0x639e('0x7')],_0x349cc6['value']));channels[_0x349cc6[_0x639e('0x7')]][_0x639e('0x5c')]=_0x349cc6[_0x639e('0x47')];}}}catch(_0x3f347b){utils['error'](util[_0x639e('0xa')](_0x639e('0x45'),_0x349cc6[_0x639e('0x7')]),_0x3f347b);}};exports[_0x639e('0x5d')]=function(_0x5c475c){try{if(!_[_0x639e('0x20')](channels[_0x5c475c['uniqueid']])){utils[_0x639e('0x17')](util[_0x639e('0xa')](_0x639e('0x5e'),_0x5c475c['uniqueid']),_0x5c475c);utils[_0x639e('0x9')](util[_0x639e('0xa')](_0x639e('0x5f'),_0x5c475c[_0x639e('0x7')],_0x5c475c[_0x639e('0x60')],_0x5c475c['appdata']));if(_0x5c475c['application'][_0x639e('0x61')]()==_0x639e('0x62')&&_[_0x639e('0x63')](_0x5c475c[_0x639e('0x64')][_0x639e('0x61')](),'cdr')){var _0x9ed894=_0x5c475c[_0x639e('0x64')][_0x639e('0x65')]('=');var _0x32c832=_0x9ed894[0x0][_0x639e('0x66')](_0x9ed894[0x0][_0x639e('0x67')]('(')+0x1,_0x9ed894[0x0][_0x639e('0x67')](')'));var _0x12f684=_0x9ed894[0x1];channels[_0x5c475c['uniqueid']][_0x32c832]=_0x12f684;}if(!_['includes'](['hangup',_0x639e('0x68'),_0x639e('0x69'),_0x639e('0x62'),_0x639e('0x6a')],_0x5c475c[_0x639e('0x60')][_0x639e('0x61')]())){channels[_0x5c475c[_0x639e('0x7')]]['lastapplication']=_0x5c475c[_0x639e('0x60')];channels[_0x5c475c['uniqueid']][_0x639e('0x52')]=_0x5c475c[_0x639e('0x64')];}}}catch(_0x4e2d49){utils[_0x639e('0x1d')](util['format'](_0x639e('0x5e'),_0x5c475c[_0x639e('0x7')]),_0x4e2d49);}};
\ No newline at end of file
+var _0x02b6=['[%s][calls][varset]\x20variable:xmd-originatecalleridnum\x20value:%s','value','source','\x22\x20<','xmd-callerid-preview','xmd-callerid','xmd-queue','xmcs-queue','lastapplication','lastdata','queue','xmd-contactid','[%s][calls][varset]\x20variable:xmd-contactid\x20value:%s','ContactId','[%s][calls][varset]\x20variable:xmd-cdrtype\x20value:%s','outboundrouteid','[%s][calls][varset]\x20variable:outboundrouteid\x20value:%s','routeid','sipcallid','[%s][calls][varset]\x20variable:sipcallid\x20value:%s','newexten','[%s][calls][newexten]','[%s][calls][newexten]\x20application:%s\x20appdata:%s','application','toLowerCase','set','startsWith','appdata','cdr','split','lastIndexOf','includes','noop','gotoif','lodash','./utils','./transfers.controller','NO\x20ANSWER','ANSWERED','FAILED','blinds','uniqueid','transfereeuniqueid','format','channel','membername','interface','connectedlinenum','lastevent','accountcode','then','UserId','request','CreateVoiceCallReport','recording','newchannel','debug','[%s][calls][newchannel]','linkedid','info','exten','calleridnum','context','DOCUMENTATION','error','newstate','[%s][calls][newstate]','isNil','[%s][calls][newstate]\x20context:%s\x20channel:%s','systemanswertime','channelstate','transfer','[%s][calls][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s','destinationchannel','answertime','disposition','toNumber','hangup','[%s][calls][hangup]','callerid','[%s][calls][hangup]\x20callerid:%s\x20reason:%s','cause-txt','endtime','duration','diffTime','starttime','billableseconds','[%s][calls][attendedtransfer]','origtransfereruniqueid','localtwolinkedid','transfereechannel','[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s','secondtransfererchannel','userfield','_attended','transfertargetchannel','origtransfererchannel','musiconholdstart','[%s][calls][musiconholdstart]','musiconholdstartAt','now','[%s][calls][musiconholdstart]\x20musiconholdstartAt:%s','musiconholdstop','[%s][calls][musiconholdstop]','mohtime','[%s][calls][musiconholdstop]\x20mohtime:%s','varset','[%s][calls][varset]','variable','xmd-originatecalleridnum'];(function(_0x1facfa,_0x1acf7d){var _0x9ec701=function(_0x115e37){while(--_0x115e37){_0x1facfa['push'](_0x1facfa['shift']());}};_0x9ec701(++_0x1acf7d);}(_0x02b6,0xfe));var _0x602b=function(_0x56b5cd,_0xfda85f){_0x56b5cd=_0x56b5cd-0x0;var _0x559108=_0x02b6[_0x56b5cd];return _0x559108;};'use strict';var _=require(_0x602b('0x0'));var util=require('util');var utils=require(_0x602b('0x1'));var transfers=require(_0x602b('0x2'));var dispositions=[_0x602b('0x3'),'FAILED','FAILED',_0x602b('0x3'),_0x602b('0x3'),_0x602b('0x3'),_0x602b('0x4'),'BUSY',_0x602b('0x5'),'FAILED',_0x602b('0x5')];var channels={};function writeDB(_0xac6c85){var _0x140c8a;if(transfers[_0x602b('0x6')][_0xac6c85[_0x602b('0x7')]]){_0x140c8a=_0xac6c85[_0x602b('0x7')];_0xac6c85[_0x602b('0x7')]=transfers[_0x602b('0x6')][_0xac6c85[_0x602b('0x7')]][_0x602b('0x8')];}utils['info'](util[_0x602b('0x9')]('[%s][calls][writeDB]\x20channel:%s\x20queue:%s\x20agent:%s\x20interface:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20lastevent:%s',_0xac6c85['uniqueid'],_0xac6c85[_0x602b('0xa')],_0xac6c85['queue'],_0xac6c85[_0x602b('0xb')],_0xac6c85[_0x602b('0xc')],_0xac6c85['calleridnum'],_0xac6c85[_0x602b('0xd')],_0xac6c85[_0x602b('0xe')]));if(_0xac6c85[_0x602b('0xf')]){utils['getUserByInternal'](_0xac6c85[_0x602b('0xf')])[_0x602b('0x10')](function(_0x2c7f9a){if(_0x2c7f9a){_0xac6c85[_0x602b('0x11')]=_0x2c7f9a['id'];}utils[_0x602b('0x12')](_0x602b('0x13'),_0xac6c85);});}else{utils[_0x602b('0x12')]('CreateVoiceCallReport',_0xac6c85);}if(channels[_0xac6c85['uniqueid']]){delete channels[_0xac6c85[_0x602b('0x7')]];}else if(_0x140c8a&&channels[_0x140c8a]){if(!transfers[_0x602b('0x6')][_0x140c8a][_0x602b('0x14')])delete transfers[_0x602b('0x6')][_0x140c8a];delete channels[_0x140c8a];}}exports[_0x602b('0x15')]=function(_0x3f540c){try{utils[_0x602b('0x16')](util[_0x602b('0x9')](_0x602b('0x17'),_0x3f540c['uniqueid']),_0x3f540c);if(_0x3f540c[_0x602b('0x7')]==_0x3f540c[_0x602b('0x18')]&&_0x3f540c[_0x602b('0xa')]!='OutgoingSpoolFailed'){utils[_0x602b('0x19')](util['format']('[%s][calls][newchannel]\x20context:%s\x20exten:%s',_0x3f540c[_0x602b('0x7')],_0x3f540c['context'],_0x3f540c[_0x602b('0x1a')]));channels[_0x3f540c['uniqueid']]={'uniqueid':_0x3f540c[_0x602b('0x7')],'accountcode':_0x3f540c[_0x602b('0xf')],'source':_0x3f540c[_0x602b('0x1b')],'destination':_0x3f540c['exten'],'destinationcontext':_0x3f540c[_0x602b('0x1c')],'channel':_0x3f540c[_0x602b('0xa')],'starttime':utils['now'](),'answertime':null,'systemanswertime':null,'mohtime':0x0,'disposition':_0x602b('0x3'),'amaflags':_0x602b('0x1d')};}}catch(_0x2c59f3){utils[_0x602b('0x1e')](util[_0x602b('0x9')](_0x602b('0x17'),_0x3f540c[_0x602b('0x7')]),_0x2c59f3);}};exports[_0x602b('0x1f')]=function(_0x3f0e0c){try{utils['debug'](util[_0x602b('0x9')](_0x602b('0x20'),_0x3f0e0c['uniqueid']),_0x3f0e0c);if(!_[_0x602b('0x21')](channels[_0x3f0e0c[_0x602b('0x7')]])&&_0x3f0e0c['channelstate']==0x6){utils[_0x602b('0x19')](util[_0x602b('0x9')](_0x602b('0x22'),_0x3f0e0c[_0x602b('0x7')],_0x3f0e0c[_0x602b('0x1c')],_0x3f0e0c[_0x602b('0xa')]));if(_[_0x602b('0x21')](channels[_0x3f0e0c[_0x602b('0x7')]][_0x602b('0x23')])){channels[_0x3f0e0c[_0x602b('0x7')]][_0x602b('0x23')]=utils['now']();}}else if(!_[_0x602b('0x21')](channels[_0x3f0e0c['linkedid']])&&_0x3f0e0c[_0x602b('0x24')]==0x6&&_0x3f0e0c[_0x602b('0x1c')]!=_0x602b('0x25')){utils[_0x602b('0x19')](util[_0x602b('0x9')](_0x602b('0x26'),_0x3f0e0c[_0x602b('0x7')],_0x3f0e0c[_0x602b('0x18')],_0x3f0e0c[_0x602b('0x1c')],_0x3f0e0c[_0x602b('0xa')]));channels[_0x3f0e0c[_0x602b('0x18')]]['accountcode']=_0x3f0e0c['accountcode'];channels[_0x3f0e0c[_0x602b('0x18')]][_0x602b('0x27')]=_0x3f0e0c[_0x602b('0xa')];if(_[_0x602b('0x21')](channels[_0x3f0e0c['linkedid']][_0x602b('0x28')])){channels[_0x3f0e0c[_0x602b('0x18')]][_0x602b('0x28')]=utils['now']();}channels[_0x3f0e0c[_0x602b('0x18')]][_0x602b('0x29')]=dispositions[_[_0x602b('0x2a')](_0x3f0e0c[_0x602b('0x24')])]||'ANSWERED';}}catch(_0x441be0){utils['error'](util[_0x602b('0x9')](_0x602b('0x20'),_0x3f0e0c[_0x602b('0x7')]),_0x441be0);}};exports[_0x602b('0x2b')]=function(_0x3277f3){try{if(!_[_0x602b('0x21')](channels[_0x3277f3['uniqueid']])){utils[_0x602b('0x16')](util[_0x602b('0x9')](_0x602b('0x2c'),_0x3277f3['uniqueid']),_0x3277f3);if(_[_0x602b('0x21')](channels[_0x3277f3['uniqueid']][_0x602b('0x2d')])){channels[_0x3277f3[_0x602b('0x7')]]['callerid']=_0x3277f3['calleridname']+'\x20<'+_0x3277f3['calleridnum']+'>';}utils[_0x602b('0x19')](util[_0x602b('0x9')](_0x602b('0x2e'),_0x3277f3[_0x602b('0x7')],channels[_0x3277f3[_0x602b('0x7')]][_0x602b('0x2d')],_0x3277f3[_0x602b('0x2f')]));channels[_0x3277f3[_0x602b('0x7')]][_0x602b('0x30')]=utils['now']();channels[_0x3277f3[_0x602b('0x7')]][_0x602b('0x31')]=utils[_0x602b('0x32')](channels[_0x3277f3['uniqueid']][_0x602b('0x30')],channels[_0x3277f3[_0x602b('0x7')]][_0x602b('0x33')]);channels[_0x3277f3['uniqueid']][_0x602b('0x34')]=channels[_0x3277f3[_0x602b('0x7')]][_0x602b('0x28')]?utils[_0x602b('0x32')](channels[_0x3277f3[_0x602b('0x7')]]['endtime'],channels[_0x3277f3[_0x602b('0x7')]][_0x602b('0x28')]):0x0;writeDB(channels[_0x3277f3['uniqueid']]);}}catch(_0x2838c5){utils[_0x602b('0x1e')](util[_0x602b('0x9')](_0x602b('0x2c'),_0x3277f3['uniqueid']),_0x2838c5);}};exports['attendedtransfer']=function(_0x2f4372){try{if(!_['isNil'](channels[_0x2f4372['localtwolinkedid']])){utils[_0x602b('0x16')](util['format'](_0x602b('0x35'),_0x2f4372[_0x602b('0x36')]),_0x2f4372);if(channels[_0x2f4372[_0x602b('0x37')]]['channel']==_0x2f4372[_0x602b('0x38')]){utils['info'](util['format'](_0x602b('0x39'),_0x2f4372[_0x602b('0x36')],_0x2f4372[_0x602b('0x37')],_0x2f4372[_0x602b('0x3a')]));channels[_0x2f4372[_0x602b('0x37')]][_0x602b('0x27')]=_0x2f4372[_0x602b('0x3a')];channels[_0x2f4372[_0x602b('0x37')]][_0x602b('0x3b')]=_0x602b('0x3c');}else if(channels[_0x2f4372[_0x602b('0x37')]]['channel']=_0x2f4372[_0x602b('0x3d')]){utils[_0x602b('0x19')](util[_0x602b('0x9')]('[%s][calls][attendedtransfer]\x20localtwolinkedid:%s\x20destinationchannel:%s',_0x2f4372[_0x602b('0x36')],_0x2f4372[_0x602b('0x37')],_0x2f4372['origtransfererchannel']));channels[_0x2f4372[_0x602b('0x37')]]['destinationchannel']=_0x2f4372[_0x602b('0x3e')];channels[_0x2f4372[_0x602b('0x37')]][_0x602b('0x3b')]=_0x602b('0x3c');}}}catch(_0x196e16){utils[_0x602b('0x1e')](util[_0x602b('0x9')](_0x602b('0x35'),_0x2f4372[_0x602b('0x36')]),_0x196e16);}};exports[_0x602b('0x3f')]=function(_0xc52909){try{if(!_[_0x602b('0x21')](channels[_0xc52909['uniqueid']])){utils['debug'](util['format'](_0x602b('0x40'),_0xc52909[_0x602b('0x7')]),_0xc52909);channels[_0xc52909[_0x602b('0x7')]][_0x602b('0x41')]=utils[_0x602b('0x42')]();utils[_0x602b('0x19')](util[_0x602b('0x9')](_0x602b('0x43'),_0xc52909['uniqueid'],channels[_0xc52909[_0x602b('0x7')]]['musiconholdstartAt']));}}catch(_0x43d2b4){utils[_0x602b('0x1e')](util['format'](_0x602b('0x40'),_0xc52909['uniqueid']),_0x43d2b4);}};exports[_0x602b('0x44')]=function(_0x4546d7){try{if(!_[_0x602b('0x21')](channels[_0x4546d7[_0x602b('0x7')]])){utils[_0x602b('0x16')](util[_0x602b('0x9')](_0x602b('0x45'),_0x4546d7['uniqueid']),_0x4546d7);if(!_[_0x602b('0x21')](channels[_0x4546d7[_0x602b('0x7')]][_0x602b('0x41')])){channels[_0x4546d7['uniqueid']][_0x602b('0x46')]+=utils[_0x602b('0x32')](utils[_0x602b('0x42')](),channels[_0x4546d7['uniqueid']][_0x602b('0x41')]);utils['info'](util[_0x602b('0x9')](_0x602b('0x47'),_0x4546d7[_0x602b('0x7')],channels[_0x4546d7[_0x602b('0x7')]][_0x602b('0x46')]));delete channels[_0x4546d7[_0x602b('0x7')]][_0x602b('0x41')];}}}catch(_0x1f7b02){utils[_0x602b('0x1e')](util[_0x602b('0x9')](_0x602b('0x45'),_0x4546d7[_0x602b('0x7')]),_0x1f7b02);}};exports[_0x602b('0x48')]=function(_0x2431ea){try{if(!_[_0x602b('0x21')](channels[_0x2431ea[_0x602b('0x7')]])){utils[_0x602b('0x16')](util[_0x602b('0x9')](_0x602b('0x49'),_0x2431ea['uniqueid']),_0x2431ea);if(!_[_0x602b('0x21')](_0x2431ea[_0x602b('0x4a')][_0x602b('0x4b')])){utils[_0x602b('0x19')](util[_0x602b('0x9')](_0x602b('0x4c'),_0x2431ea[_0x602b('0x7')],_0x2431ea[_0x602b('0x4d')]));channels[_0x2431ea[_0x602b('0x7')]][_0x602b('0x4e')]=_0x2431ea[_0x602b('0x4d')];}if(!_[_0x602b('0x21')](_0x2431ea[_0x602b('0x4a')]['xmd-phone'])){utils['info'](util[_0x602b('0x9')]('[%s][calls][varset]\x20variable:xmd-phone\x20value:%s',_0x2431ea[_0x602b('0x7')],_0x2431ea[_0x602b('0x4d')]));channels[_0x2431ea[_0x602b('0x7')]]['destination']=_0x2431ea[_0x602b('0x4d')];channels[_0x2431ea['uniqueid']]['callerid']='\x22'+_0x2431ea[_0x602b('0x4d')]+_0x602b('0x4f')+_0x2431ea[_0x602b('0x4d')]+'>';}if(!_['isNil'](_0x2431ea[_0x602b('0x4a')][_0x602b('0x50')])||!_[_0x602b('0x21')](_0x2431ea[_0x602b('0x4a')]['xmd-callerid'])){utils[_0x602b('0x19')](util[_0x602b('0x9')]('[%s][calls][varset]\x20variable:%s\x20value:%s',_0x2431ea[_0x602b('0x7')],!_[_0x602b('0x21')](_0x2431ea['variable'][_0x602b('0x50')])?_0x602b('0x50'):_0x602b('0x51'),_0x2431ea[_0x602b('0x4d')]));channels[_0x2431ea['uniqueid']][_0x602b('0x2d')]=_0x2431ea[_0x602b('0x4d')];}if(!_['isNil'](_0x2431ea[_0x602b('0x4a')][_0x602b('0x52')])||!_[_0x602b('0x21')](_0x2431ea['variable'][_0x602b('0x53')])){utils[_0x602b('0x19')](util['format']('[%s][calls][varset]\x20variable:%s\x20value:%s',_0x2431ea[_0x602b('0x7')],!_['isNil'](_0x2431ea[_0x602b('0x4a')]['xmd-queue'])?_0x602b('0x52'):_0x602b('0x53'),_0x2431ea[_0x602b('0x4d')]));channels[_0x2431ea[_0x602b('0x7')]][_0x602b('0x54')]='Queue';channels[_0x2431ea['uniqueid']][_0x602b('0x55')]=_0x2431ea['value'];channels[_0x2431ea['uniqueid']][_0x602b('0x56')]=!![];}if(!_[_0x602b('0x21')](_0x2431ea[_0x602b('0x4a')][_0x602b('0x57')])){utils[_0x602b('0x19')](util['format'](_0x602b('0x58'),_0x2431ea[_0x602b('0x7')],_0x2431ea[_0x602b('0x4d')]));channels[_0x2431ea[_0x602b('0x7')]][_0x602b('0x59')]=_0x2431ea[_0x602b('0x4d')];}if(!_[_0x602b('0x21')](_0x2431ea[_0x602b('0x4a')]['xmd-cdrtype'])){utils[_0x602b('0x19')](util[_0x602b('0x9')](_0x602b('0x5a'),_0x2431ea['uniqueid'],_0x2431ea['value']));channels[_0x2431ea['uniqueid']]['type']=_0x2431ea[_0x602b('0x4d')];}if(!_[_0x602b('0x21')](_0x2431ea[_0x602b('0x4a')][_0x602b('0x5b')])){utils[_0x602b('0x19')](util[_0x602b('0x9')](_0x602b('0x5c'),_0x2431ea[_0x602b('0x7')],_0x2431ea[_0x602b('0x4d')]));channels[_0x2431ea[_0x602b('0x7')]][_0x602b('0x5d')]=_0x2431ea[_0x602b('0x4d')];}if(!_['isNil'](_0x2431ea[_0x602b('0x4a')][_0x602b('0x5e')])){utils[_0x602b('0x19')](util[_0x602b('0x9')](_0x602b('0x5f'),_0x2431ea[_0x602b('0x7')],_0x2431ea[_0x602b('0x4d')]));channels[_0x2431ea[_0x602b('0x7')]][_0x602b('0x5e')]=_0x2431ea[_0x602b('0x4d')];}}}catch(_0x58f42d){utils[_0x602b('0x1e')](util[_0x602b('0x9')]('[%s][calls][varset]',_0x2431ea[_0x602b('0x7')]),_0x58f42d);}};exports[_0x602b('0x60')]=function(_0x3c9d89){try{if(!_[_0x602b('0x21')](channels[_0x3c9d89[_0x602b('0x7')]])){utils[_0x602b('0x16')](util[_0x602b('0x9')](_0x602b('0x61'),_0x3c9d89[_0x602b('0x7')]),_0x3c9d89);utils[_0x602b('0x19')](util[_0x602b('0x9')](_0x602b('0x62'),_0x3c9d89[_0x602b('0x7')],_0x3c9d89['application'],_0x3c9d89['appdata']));if(_0x3c9d89[_0x602b('0x63')][_0x602b('0x64')]()==_0x602b('0x65')&&_[_0x602b('0x66')](_0x3c9d89[_0x602b('0x67')][_0x602b('0x64')](),_0x602b('0x68'))){var _0x56336f=_0x3c9d89[_0x602b('0x67')][_0x602b('0x69')]('=');var _0x6f8a2d=_0x56336f[0x0]['substring'](_0x56336f[0x0]['lastIndexOf']('(')+0x1,_0x56336f[0x0][_0x602b('0x6a')](')'));var _0x2eb070=_0x56336f[0x1];channels[_0x3c9d89['uniqueid']][_0x6f8a2d]=_0x2eb070;}if(!_[_0x602b('0x6b')]([_0x602b('0x2b'),_0x602b('0x6c'),'execif',_0x602b('0x65'),_0x602b('0x6d')],_0x3c9d89[_0x602b('0x63')][_0x602b('0x64')]())){channels[_0x3c9d89[_0x602b('0x7')]][_0x602b('0x54')]=_0x3c9d89[_0x602b('0x63')];channels[_0x3c9d89[_0x602b('0x7')]]['lastdata']=_0x3c9d89['appdata'];}}}catch(_0x442a74){utils[_0x602b('0x1e')](util[_0x602b('0x9')](_0x602b('0x61'),_0x3c9d89['uniqueid']),_0x442a74);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xf2f6=['./utils','info','[core]\x20connected','shutdown','[core]\x20shutdown','fullybooted','[core]\x20fullybooted','error','[core]\x20close','managerevent'];(function(_0x4bceb0,_0x384991){var _0x18f7a6=function(_0x5ab68e){while(--_0x5ab68e){_0x4bceb0['push'](_0x4bceb0['shift']());}};_0x18f7a6(++_0x384991);}(_0xf2f6,0x1f4));var _0x6f2f=function(_0x39c633,_0x1bf078){_0x39c633=_0x39c633-0x0;var _0x45ba26=_0xf2f6[_0x39c633];return _0x45ba26;};'use strict';var utils=require(_0x6f2f('0x0'));exports['connect']=function(){utils[_0x6f2f('0x1')](_0x6f2f('0x2'));};exports[_0x6f2f('0x3')]=function(){utils[_0x6f2f('0x1')](_0x6f2f('0x4'));};exports[_0x6f2f('0x5')]=function(){utils['info'](_0x6f2f('0x6'));};exports[_0x6f2f('0x7')]=function(_0x5f4878){utils[_0x6f2f('0x7')]('[core]\x20error',_0x5f4878);};exports['close']=function(){utils[_0x6f2f('0x1')](_0x6f2f('0x8'));};exports[_0x6f2f('0x9')]=function(_0x175aff){};
\ No newline at end of file
+var _0xea2f=['info','[core]\x20connected','[core]\x20shutdown','fullybooted','error','[core]\x20error','close','[core]\x20close','managerevent','./utils'];(function(_0x25cddc,_0x4f1836){var _0x1e2fb0=function(_0x2a35bd){while(--_0x2a35bd){_0x25cddc['push'](_0x25cddc['shift']());}};_0x1e2fb0(++_0x4f1836);}(_0xea2f,0x6d));var _0xfea2=function(_0x2979c6,_0x4553ae){_0x2979c6=_0x2979c6-0x0;var _0x20562e=_0xea2f[_0x2979c6];return _0x20562e;};'use strict';var utils=require(_0xfea2('0x0'));exports['connect']=function(){utils[_0xfea2('0x1')](_0xfea2('0x2'));};exports['shutdown']=function(){utils[_0xfea2('0x1')](_0xfea2('0x3'));};exports[_0xfea2('0x4')]=function(){utils['info']('[core]\x20fullybooted');};exports[_0xfea2('0x5')]=function(_0x36f839){utils[_0xfea2('0x5')](_0xfea2('0x6'),_0x36f839);};exports[_0xfea2('0x7')]=function(){utils[_0xfea2('0x1')](_0xfea2('0x8'));};exports[_0xfea2('0x9')]=function(_0x458639){};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xd992=['diffTime','endtime','billableseconds','util','./utils','info','format','uniqueid','dialstring','calleridnum','connectedlinenum','dialstatus','request','debug','[%s][dials][newexten]','appdata','set','startsWith','error','varset','isNil','variable','outboundrouteid','[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s','value','assign','starttime','now','lastevent','[%s][dials][hangup]\x20starttime:%s\x20lastevent:called','dialend','[%s][dials][dialend]','ANSWER','answertime','connect','[%s][dials][dialend]\x20dialstatus:%s','hangup','[%s][dials][hangup]','[%s][dials][hangup]\x20calleridnum:%s\x20calleridname:%s\x20lastevent:complete\x20reason:%s','calleridname','cause-txt','complete','duration'];(function(_0x4b6778,_0x505a76){var _0x22dbb9=function(_0x4881eb){while(--_0x4881eb){_0x4b6778['push'](_0x4b6778['shift']());}};_0x22dbb9(++_0x505a76);}(_0xd992,0x130));var _0x2d99=function(_0x152ca2,_0x5abd1b){_0x152ca2=_0x152ca2-0x0;var _0x58fbd2=_0xd992[_0x152ca2];return _0x58fbd2;};'use strict';var _=require('lodash');var util=require(_0x2d99('0x0'));var utils=require(_0x2d99('0x1'));var dials={};function writeDB(_0x4f9037){utils[_0x2d99('0x2')](util[_0x2d99('0x3')]('[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s',_0x4f9037[_0x2d99('0x4')],_0x4f9037['channel'],_0x4f9037[_0x2d99('0x5')],_0x4f9037[_0x2d99('0x6')],_0x4f9037[_0x2d99('0x7')],_0x4f9037[_0x2d99('0x8')]));utils[_0x2d99('0x9')]('CreateVoiceDialReport',_0x4f9037);delete dials[_0x4f9037[_0x2d99('0x4')]];}exports['newexten']=function(_0x52ad9f){try{utils[_0x2d99('0xa')](util[_0x2d99('0x3')](_0x2d99('0xb'),_0x52ad9f[_0x2d99('0x4')]),_0x52ad9f);utils[_0x2d99('0x2')](util[_0x2d99('0x3')]('[%s][dials][newexten]\x20application:%s\x20appdata:%s',_0x52ad9f[_0x2d99('0x4')],_0x52ad9f['application'],_0x52ad9f[_0x2d99('0xc')]));if(_0x52ad9f['application']['toLowerCase']()==_0x2d99('0xd')&&_[_0x2d99('0xe')](_0x52ad9f[_0x2d99('0xc')]['toLowerCase'](),'cdr(routeid)')){var _0x365d7e=_0x52ad9f['appdata']['split']('=');dials[_0x52ad9f[_0x2d99('0x4')]]={'routeId':_0x365d7e[0x1]};}}catch(_0x1c8bc3){utils[_0x2d99('0xf')](util[_0x2d99('0x3')]('[%s][dials][newexten]',_0x52ad9f[_0x2d99('0x4')]),_0x1c8bc3);}};exports[_0x2d99('0x10')]=function(_0x2fcd24){try{utils[_0x2d99('0xa')](util[_0x2d99('0x3')]('[%s][dials][varset]',_0x2fcd24[_0x2d99('0x4')]),_0x2fcd24);if(!_[_0x2d99('0x11')](_0x2fcd24[_0x2d99('0x12')][_0x2d99('0x13')])){utils[_0x2d99('0x2')](util[_0x2d99('0x3')](_0x2d99('0x14'),_0x2fcd24[_0x2d99('0x4')],_0x2fcd24[_0x2d99('0x15')]));dials[_0x2fcd24[_0x2d99('0x4')]]={'routeId':_0x2fcd24['value']};}}catch(_0x127431){utils[_0x2d99('0xf')](util[_0x2d99('0x3')]('[%s][dials][varset]',_0x2fcd24['uniqueid']),_0x127431);}};exports['dialbegin']=function(_0x110895){try{if(!_['isNil'](dials[_0x110895[_0x2d99('0x4')]])){utils[_0x2d99('0xa')](util[_0x2d99('0x3')]('[%s][dials][dialbegin]',_0x110895[_0x2d99('0x4')]),_0x110895);dials[_0x110895[_0x2d99('0x4')]]=_[_0x2d99('0x16')](dials[_0x110895[_0x2d99('0x4')]],_0x110895);dials[_0x110895[_0x2d99('0x4')]][_0x2d99('0x17')]=utils[_0x2d99('0x18')]();dials[_0x110895[_0x2d99('0x4')]][_0x2d99('0x19')]='called';utils[_0x2d99('0x2')](util[_0x2d99('0x3')](_0x2d99('0x1a'),_0x110895[_0x2d99('0x4')],dials[_0x110895[_0x2d99('0x4')]][_0x2d99('0x17')]));}}catch(_0x1c7459){utils['error'](util[_0x2d99('0x3')]('[%s][dials][dialbegin]',_0x110895[_0x2d99('0x4')]),_0x1c7459);}};exports[_0x2d99('0x1b')]=function(_0x214ebd){try{if(!_[_0x2d99('0x11')](dials[_0x214ebd[_0x2d99('0x4')]])){utils[_0x2d99('0xa')](util[_0x2d99('0x3')](_0x2d99('0x1c'),_0x214ebd['uniqueid']),_0x214ebd);dials[_0x214ebd['uniqueid']]['dialstatus']=_0x214ebd[_0x2d99('0x8')];if(_0x214ebd[_0x2d99('0x8')]==_0x2d99('0x1d')){dials[_0x214ebd['uniqueid']]=_['assign'](dials[_0x214ebd['uniqueid']],_0x214ebd);dials[_0x214ebd[_0x2d99('0x4')]][_0x2d99('0x1e')]=utils[_0x2d99('0x18')]();dials[_0x214ebd[_0x2d99('0x4')]][_0x2d99('0x19')]=_0x2d99('0x1f');utils[_0x2d99('0x2')](util[_0x2d99('0x3')]('[%s][dials][dialend]\x20dialstatus:%s\x20answertime:%s\x20lastevent:connect',_0x214ebd[_0x2d99('0x4')],_0x214ebd[_0x2d99('0x8')],dials[_0x214ebd[_0x2d99('0x4')]]['answertime']));}else{utils[_0x2d99('0x2')](util[_0x2d99('0x3')](_0x2d99('0x20'),_0x214ebd[_0x2d99('0x4')],_0x214ebd[_0x2d99('0x8')]));}}}catch(_0x40af06){utils[_0x2d99('0xf')](util[_0x2d99('0x3')](_0x2d99('0x1c'),_0x214ebd['uniqueid']),_0x40af06);}};exports[_0x2d99('0x21')]=function(_0x45c0d5){try{if(!_[_0x2d99('0x11')](dials[_0x45c0d5[_0x2d99('0x4')]])){utils[_0x2d99('0xa')](util['format'](_0x2d99('0x22'),_0x45c0d5[_0x2d99('0x4')]),_0x45c0d5);utils[_0x2d99('0x2')](util[_0x2d99('0x3')](_0x2d99('0x23'),_0x45c0d5[_0x2d99('0x4')],_0x45c0d5[_0x2d99('0x6')],_0x45c0d5[_0x2d99('0x24')],_0x45c0d5[_0x2d99('0x25')]));dials[_0x45c0d5[_0x2d99('0x4')]]=_[_0x2d99('0x16')](dials[_0x45c0d5['uniqueid']],{'endtime':utils[_0x2d99('0x18')](),'lastevent':_0x2d99('0x26')});dials[_0x45c0d5[_0x2d99('0x4')]][_0x2d99('0x27')]=utils[_0x2d99('0x28')](dials[_0x45c0d5['uniqueid']][_0x2d99('0x29')],dials[_0x45c0d5[_0x2d99('0x4')]]['starttime']);dials[_0x45c0d5['uniqueid']]['holdtime']=utils[_0x2d99('0x28')](dials[_0x45c0d5['uniqueid']][_0x2d99('0x1e')]||dials[_0x45c0d5[_0x2d99('0x4')]]['endtime'],dials[_0x45c0d5[_0x2d99('0x4')]][_0x2d99('0x17')]);dials[_0x45c0d5[_0x2d99('0x4')]][_0x2d99('0x2a')]=dials[_0x45c0d5[_0x2d99('0x4')]][_0x2d99('0x1e')]?utils[_0x2d99('0x28')](dials[_0x45c0d5[_0x2d99('0x4')]][_0x2d99('0x29')],dials[_0x45c0d5[_0x2d99('0x4')]]['answertime']):0x0;writeDB(dials[_0x45c0d5[_0x2d99('0x4')]]);}}catch(_0x4444b3){utils[_0x2d99('0xf')](util[_0x2d99('0x3')](_0x2d99('0x22'),_0x45c0d5[_0x2d99('0x4')]),_0x4444b3);}};
\ No newline at end of file
+var _0x39f9=['cause-txt','complete','duration','endtime','holdtime','billableseconds','diffTime','util','./utils','format','uniqueid','channel','calleridnum','connectedlinenum','dialstatus','request','CreateVoiceDialReport','newexten','[%s][dials][newexten]\x20application:%s\x20appdata:%s','appdata','application','set','toLowerCase','cdr(routeid)','split','varset','[%s][dials][varset]','variable','outboundrouteid','info','value','isNil','debug','assign','starttime','now','lastevent','called','[%s][dials][hangup]\x20starttime:%s\x20lastevent:called','dialend','[%s][dials][dialend]','ANSWER','answertime','connect','[%s][dials][dialend]\x20dialstatus:%s\x20answertime:%s\x20lastevent:connect','[%s][dials][dialend]\x20dialstatus:%s','error','hangup','[%s][dials][hangup]','[%s][dials][hangup]\x20calleridnum:%s\x20calleridname:%s\x20lastevent:complete\x20reason:%s','calleridname'];(function(_0x3b5587,_0x22a6f4){var _0x3fbb62=function(_0x41f5ce){while(--_0x41f5ce){_0x3b5587['push'](_0x3b5587['shift']());}};_0x3fbb62(++_0x22a6f4);}(_0x39f9,0x19f));var _0x939f=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x39f9[_0x321bb2];return _0x9c12ed;};'use strict';var _=require('lodash');var util=require(_0x939f('0x0'));var utils=require(_0x939f('0x1'));var dials={};function writeDB(_0x446060){utils['info'](util[_0x939f('0x2')]('[%s][dials][writeDB]\x20channel:%s\x20dialstring:%s\x20calleridnum:%s\x20connectedlinenum:%s\x20dialstatus:%s',_0x446060[_0x939f('0x3')],_0x446060[_0x939f('0x4')],_0x446060['dialstring'],_0x446060[_0x939f('0x5')],_0x446060[_0x939f('0x6')],_0x446060[_0x939f('0x7')]));utils[_0x939f('0x8')](_0x939f('0x9'),_0x446060);delete dials[_0x446060[_0x939f('0x3')]];}exports[_0x939f('0xa')]=function(_0x4b3ee1){try{utils['debug'](util[_0x939f('0x2')]('[%s][dials][newexten]',_0x4b3ee1[_0x939f('0x3')]),_0x4b3ee1);utils['info'](util['format'](_0x939f('0xb'),_0x4b3ee1[_0x939f('0x3')],_0x4b3ee1['application'],_0x4b3ee1[_0x939f('0xc')]));if(_0x4b3ee1[_0x939f('0xd')]['toLowerCase']()==_0x939f('0xe')&&_['startsWith'](_0x4b3ee1[_0x939f('0xc')][_0x939f('0xf')](),_0x939f('0x10'))){var _0x2fe2ed=_0x4b3ee1['appdata'][_0x939f('0x11')]('=');dials[_0x4b3ee1[_0x939f('0x3')]]={'routeId':_0x2fe2ed[0x1]};}}catch(_0x1e00bb){utils['error'](util[_0x939f('0x2')]('[%s][dials][newexten]',_0x4b3ee1[_0x939f('0x3')]),_0x1e00bb);}};exports[_0x939f('0x12')]=function(_0x2659e1){try{utils['debug'](util['format'](_0x939f('0x13'),_0x2659e1[_0x939f('0x3')]),_0x2659e1);if(!_['isNil'](_0x2659e1[_0x939f('0x14')][_0x939f('0x15')])){utils[_0x939f('0x16')](util[_0x939f('0x2')]('[%s][dials][varset]\x20variable:outboundrouteid\x20value:%s',_0x2659e1[_0x939f('0x3')],_0x2659e1[_0x939f('0x17')]));dials[_0x2659e1[_0x939f('0x3')]]={'routeId':_0x2659e1['value']};}}catch(_0x181078){utils['error'](util['format']('[%s][dials][varset]',_0x2659e1[_0x939f('0x3')]),_0x181078);}};exports['dialbegin']=function(_0x5945f9){try{if(!_[_0x939f('0x18')](dials[_0x5945f9[_0x939f('0x3')]])){utils[_0x939f('0x19')](util[_0x939f('0x2')]('[%s][dials][dialbegin]',_0x5945f9[_0x939f('0x3')]),_0x5945f9);dials[_0x5945f9['uniqueid']]=_[_0x939f('0x1a')](dials[_0x5945f9[_0x939f('0x3')]],_0x5945f9);dials[_0x5945f9[_0x939f('0x3')]][_0x939f('0x1b')]=utils[_0x939f('0x1c')]();dials[_0x5945f9[_0x939f('0x3')]][_0x939f('0x1d')]=_0x939f('0x1e');utils[_0x939f('0x16')](util[_0x939f('0x2')](_0x939f('0x1f'),_0x5945f9[_0x939f('0x3')],dials[_0x5945f9['uniqueid']][_0x939f('0x1b')]));}}catch(_0x4ce214){utils['error'](util['format']('[%s][dials][dialbegin]',_0x5945f9['uniqueid']),_0x4ce214);}};exports[_0x939f('0x20')]=function(_0x45f213){try{if(!_['isNil'](dials[_0x45f213[_0x939f('0x3')]])){utils['debug'](util['format'](_0x939f('0x21'),_0x45f213[_0x939f('0x3')]),_0x45f213);dials[_0x45f213[_0x939f('0x3')]]['dialstatus']=_0x45f213[_0x939f('0x7')];if(_0x45f213[_0x939f('0x7')]==_0x939f('0x22')){dials[_0x45f213[_0x939f('0x3')]]=_[_0x939f('0x1a')](dials[_0x45f213['uniqueid']],_0x45f213);dials[_0x45f213['uniqueid']][_0x939f('0x23')]=utils[_0x939f('0x1c')]();dials[_0x45f213['uniqueid']][_0x939f('0x1d')]=_0x939f('0x24');utils[_0x939f('0x16')](util['format'](_0x939f('0x25'),_0x45f213['uniqueid'],_0x45f213[_0x939f('0x7')],dials[_0x45f213[_0x939f('0x3')]][_0x939f('0x23')]));}else{utils['info'](util['format'](_0x939f('0x26'),_0x45f213[_0x939f('0x3')],_0x45f213['dialstatus']));}}}catch(_0x382820){utils[_0x939f('0x27')](util['format'](_0x939f('0x21'),_0x45f213[_0x939f('0x3')]),_0x382820);}};exports[_0x939f('0x28')]=function(_0x3be353){try{if(!_[_0x939f('0x18')](dials[_0x3be353[_0x939f('0x3')]])){utils[_0x939f('0x19')](util[_0x939f('0x2')](_0x939f('0x29'),_0x3be353[_0x939f('0x3')]),_0x3be353);utils[_0x939f('0x16')](util[_0x939f('0x2')](_0x939f('0x2a'),_0x3be353[_0x939f('0x3')],_0x3be353[_0x939f('0x5')],_0x3be353[_0x939f('0x2b')],_0x3be353[_0x939f('0x2c')]));dials[_0x3be353[_0x939f('0x3')]]=_['assign'](dials[_0x3be353[_0x939f('0x3')]],{'endtime':utils[_0x939f('0x1c')](),'lastevent':_0x939f('0x2d')});dials[_0x3be353[_0x939f('0x3')]][_0x939f('0x2e')]=utils['diffTime'](dials[_0x3be353[_0x939f('0x3')]][_0x939f('0x2f')],dials[_0x3be353[_0x939f('0x3')]][_0x939f('0x1b')]);dials[_0x3be353[_0x939f('0x3')]][_0x939f('0x30')]=utils['diffTime'](dials[_0x3be353[_0x939f('0x3')]][_0x939f('0x23')]||dials[_0x3be353[_0x939f('0x3')]][_0x939f('0x2f')],dials[_0x3be353[_0x939f('0x3')]][_0x939f('0x1b')]);dials[_0x3be353['uniqueid']][_0x939f('0x31')]=dials[_0x3be353[_0x939f('0x3')]][_0x939f('0x23')]?utils[_0x939f('0x32')](dials[_0x3be353[_0x939f('0x3')]][_0x939f('0x2f')],dials[_0x3be353['uniqueid']][_0x939f('0x23')]):0x0;writeDB(dials[_0x3be353['uniqueid']]);}}catch(_0x4e014a){utils[_0x939f('0x27')](util[_0x939f('0x2')](_0x939f('0x29'),_0x3be353[_0x939f('0x3')]),_0x4e014a);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x7acc=['blindtransfer','[%s][index][blindtransfer]','[%s][index][attendedtransfer]','origtransfereruniqueid','attendedtransfer','varset','[%s][index][varset]','[%s][index][newexten]','newexten','newchannel','[%s][index][newchannel]','dialbegin','[%s][index][dialbegin]','dialend','[%s][index][dialend]','../../config/environment','./utils','util','port','asterisk','username','password','keepConnected','xdr','disabled','./agents.controller','./calls.controller','./queues.controller','./recordings.controller','./members.controller','./dials.controller','./transfers.controller','./core.controller','connect','shutdown','fullybooted','error','close','debug','[%s][index][devicestatechange]','device','devicestatechange','format','[%s][index][agentcalled]','agentcalled','uniqueid','agentringnoanswer','[%s][index][agentringnoanswer]','agentconnect','[%s][index][agentconnect]','agentcomplete','queuecallerabandon','[%s][index][queuecallerabandon]','queuecallerjoin','[%s][index][queuecallerjoin]','[%s][index][queuecallerleave]','queuecallerleave','musiconholdstart','[%s][index][musiconholdstart]','musiconholdstop','[%s][index][musiconholdstop]','newstate','[%s][index][newstate]','hangup','[%s][index][hangup]','[%s][index][cdr]'];(function(_0x37fca5,_0x39f11d){var _0x506fc0=function(_0x4bb213){while(--_0x4bb213){_0x37fca5['push'](_0x37fca5['shift']());}};_0x506fc0(++_0x39f11d);}(_0x7acc,0x19b));var _0xc7ac=function(_0x1ffba9,_0x44dcf5){_0x1ffba9=_0x1ffba9-0x0;var _0x376543=_0x7acc[_0x1ffba9];return _0x376543;};var AsteriskManager=require('asterisk-manager');var config=require(_0xc7ac('0x0'));var utils=require(_0xc7ac('0x1'));var util=require(_0xc7ac('0x2'));var ami=new AsteriskManager(config['asterisk'][_0xc7ac('0x3')],config['asterisk']['ip'],config[_0xc7ac('0x4')][_0xc7ac('0x5')],config['asterisk'][_0xc7ac('0x6')],!![]);ami[_0xc7ac('0x7')]();if(config['xdr']&&config[_0xc7ac('0x8')][_0xc7ac('0x9')]){utils['info']('XDR\x20DISABLED');}else{var agents=require(_0xc7ac('0xa'));var calls=require(_0xc7ac('0xb'));var queues=require(_0xc7ac('0xc'));var recordings=require(_0xc7ac('0xd'));var members=require(_0xc7ac('0xe'));var dials=require(_0xc7ac('0xf'));var transfers=require(_0xc7ac('0x10'));var core=require(_0xc7ac('0x11'));ami['on'](_0xc7ac('0x12'),core[_0xc7ac('0x12')]);ami['on'](_0xc7ac('0x13'),core[_0xc7ac('0x13')]);ami['on'](_0xc7ac('0x14'),core[_0xc7ac('0x14')]);ami['on'](_0xc7ac('0x15'),core[_0xc7ac('0x15')]);ami['on'](_0xc7ac('0x16'),core[_0xc7ac('0x16')]);ami['on']('managerevent',core['managerevent']);ami['on']('devicestatechange',function(_0x390415){try{utils[_0xc7ac('0x17')](util['format'](_0xc7ac('0x18'),_0x390415[_0xc7ac('0x19')]),_0x390415);members[_0xc7ac('0x1a')](_0x390415);}catch(_0x50015d){utils['error'](util[_0xc7ac('0x1b')](_0xc7ac('0x18'),_0x390415['device']),_0x50015d);}});ami['on']('agentcalled',function(_0x2f45af){try{utils[_0xc7ac('0x17')](util['format'](_0xc7ac('0x1c'),_0x2f45af['uniqueid']),_0x2f45af);agents[_0xc7ac('0x1d')](_0x2f45af);}catch(_0x582bf9){utils['error'](util['format'](_0xc7ac('0x1c'),_0x2f45af[_0xc7ac('0x1e')]),_0x582bf9);}});ami['on'](_0xc7ac('0x1f'),function(_0x2d529b){try{utils['debug'](util[_0xc7ac('0x1b')](_0xc7ac('0x20'),_0x2d529b['uniqueid']),_0x2d529b);agents[_0xc7ac('0x1f')](_0x2d529b);}catch(_0x33aff0){utils[_0xc7ac('0x15')](util['format']('[%s][index][agentringnoanswer]',_0x2d529b['uniqueid']),_0x33aff0);}});ami['on'](_0xc7ac('0x21'),function(_0x3e7b18){try{utils[_0xc7ac('0x17')](util[_0xc7ac('0x1b')](_0xc7ac('0x22'),_0x3e7b18['uniqueid']),_0x3e7b18);agents[_0xc7ac('0x21')](_0x3e7b18);queues[_0xc7ac('0x21')](_0x3e7b18);}catch(_0x1c1b22){utils[_0xc7ac('0x15')](util[_0xc7ac('0x1b')](_0xc7ac('0x22'),_0x3e7b18['uniqueid']),_0x1c1b22);}});ami['on']('agentcomplete',function(_0x3e901f){try{utils[_0xc7ac('0x17')](util[_0xc7ac('0x1b')]('[%s][index][agentcomplete]',_0x3e901f[_0xc7ac('0x1e')]),_0x3e901f);agents[_0xc7ac('0x23')](_0x3e901f);queues[_0xc7ac('0x23')](_0x3e901f);members[_0xc7ac('0x23')](_0x3e901f);}catch(_0x39f189){utils[_0xc7ac('0x15')](util['format']('[%s][index][agentcomplete]',_0x3e901f[_0xc7ac('0x1e')]),_0x39f189);}});ami['on'](_0xc7ac('0x24'),function(_0xe7f6b3){try{utils['debug'](util[_0xc7ac('0x1b')](_0xc7ac('0x25'),_0xe7f6b3[_0xc7ac('0x1e')]),_0xe7f6b3);agents[_0xc7ac('0x24')](_0xe7f6b3);queues[_0xc7ac('0x24')](_0xe7f6b3);}catch(_0x37c136){utils[_0xc7ac('0x15')](util['format'](_0xc7ac('0x25'),_0xe7f6b3[_0xc7ac('0x1e')]),_0x37c136);}});ami['on'](_0xc7ac('0x26'),function(_0x385013){try{utils[_0xc7ac('0x17')](util[_0xc7ac('0x1b')](_0xc7ac('0x27'),_0x385013['uniqueid']),_0x385013);queues[_0xc7ac('0x26')](_0x385013);recordings[_0xc7ac('0x26')](_0x385013);}catch(_0x3ec1ca){utils[_0xc7ac('0x15')](util[_0xc7ac('0x1b')]('[%s][index][queuecallerjoin]',_0x385013[_0xc7ac('0x1e')]),_0x3ec1ca);}});ami['on']('queuecallerleave',function(_0x59c7af){try{utils[_0xc7ac('0x17')](util[_0xc7ac('0x1b')](_0xc7ac('0x28'),_0x59c7af[_0xc7ac('0x1e')]),_0x59c7af);queues[_0xc7ac('0x29')](_0x59c7af);}catch(_0x3eee96){utils['error'](util[_0xc7ac('0x1b')]('[%s][index][queuecallerleave]',_0x59c7af['uniqueid']),_0x3eee96);}});ami['on'](_0xc7ac('0x2a'),function(_0x56f17c){try{utils[_0xc7ac('0x17')](util['format']('[%s][index][musiconholdstart]',_0x56f17c[_0xc7ac('0x1e')]),_0x56f17c);queues['musiconholdstart'](_0x56f17c);calls[_0xc7ac('0x2a')](_0x56f17c);}catch(_0x2329dc){utils[_0xc7ac('0x15')](util['format'](_0xc7ac('0x2b'),_0x56f17c[_0xc7ac('0x1e')]),_0x2329dc);}});ami['on'](_0xc7ac('0x2c'),function(_0x4bd4ed){try{utils['debug'](util['format'](_0xc7ac('0x2d'),_0x4bd4ed[_0xc7ac('0x1e')]),_0x4bd4ed);queues[_0xc7ac('0x2c')](_0x4bd4ed);calls[_0xc7ac('0x2c')](_0x4bd4ed);}catch(_0x1009b6){utils[_0xc7ac('0x15')](util[_0xc7ac('0x1b')]('[%s][index][musiconholdstop]',_0x4bd4ed[_0xc7ac('0x1e')]),_0x1009b6);}});ami['on'](_0xc7ac('0x2e'),function(_0x42d1da){try{utils[_0xc7ac('0x17')](util[_0xc7ac('0x1b')]('[%s][index][newstate]',_0x42d1da[_0xc7ac('0x1e')]),_0x42d1da);calls[_0xc7ac('0x2e')](_0x42d1da);recordings[_0xc7ac('0x2e')](_0x42d1da);}catch(_0x5e63ee){utils[_0xc7ac('0x15')](util['format'](_0xc7ac('0x2f'),_0x42d1da[_0xc7ac('0x1e')]),_0x5e63ee);}});ami['on']('hangup',function(_0x3cb60a){try{utils[_0xc7ac('0x17')](util['format']('[%s][index][hangup]',_0x3cb60a['uniqueid']),_0x3cb60a);calls[_0xc7ac('0x30')](_0x3cb60a);recordings[_0xc7ac('0x30')](_0x3cb60a);dials[_0xc7ac('0x30')](_0x3cb60a);agents[_0xc7ac('0x30')](_0x3cb60a);queues[_0xc7ac('0x30')](_0x3cb60a);}catch(_0x3664e2){utils[_0xc7ac('0x15')](util[_0xc7ac('0x1b')](_0xc7ac('0x31'),_0x3cb60a[_0xc7ac('0x1e')]),_0x3664e2);}});ami['on']('cdr',function(_0x3bf63d){try{utils[_0xc7ac('0x17')](util[_0xc7ac('0x1b')](_0xc7ac('0x32'),_0x3bf63d[_0xc7ac('0x1e')]),_0x3bf63d);members['cdr'](_0x3bf63d);}catch(_0x2c16ee){utils[_0xc7ac('0x15')](util[_0xc7ac('0x1b')](_0xc7ac('0x32'),_0x3bf63d['uniqueid']),_0x2c16ee);}});ami['on'](_0xc7ac('0x33'),function(_0x521909){try{utils[_0xc7ac('0x17')](util[_0xc7ac('0x1b')](_0xc7ac('0x34'),_0x521909[_0xc7ac('0x1e')]),_0x521909);queues[_0xc7ac('0x33')](_0x521909);agents['blindtransfer'](_0x521909);transfers[_0xc7ac('0x33')](_0x521909);recordings[_0xc7ac('0x33')](_0x521909);}catch(_0x18dcfb){utils[_0xc7ac('0x15')](util[_0xc7ac('0x1b')](_0xc7ac('0x34'),_0x521909['uniqueid']),_0x18dcfb);}});ami['on']('attendedtransfer',function(_0xc687d1){try{utils[_0xc7ac('0x17')](util[_0xc7ac('0x1b')](_0xc7ac('0x35'),_0xc687d1[_0xc7ac('0x36')]),_0xc687d1);queues[_0xc7ac('0x37')](_0xc687d1);transfers['attendedtransfer'](_0xc687d1);agents[_0xc7ac('0x37')](_0xc687d1);calls[_0xc7ac('0x37')](_0xc687d1);}catch(_0x39d654){utils['error'](util[_0xc7ac('0x1b')](_0xc7ac('0x35'),_0xc687d1['origtransfereruniqueid']),_0x39d654);}});ami['on'](_0xc7ac('0x38'),function(_0x5b8586){try{utils[_0xc7ac('0x17')](util[_0xc7ac('0x1b')](_0xc7ac('0x39'),_0x5b8586[_0xc7ac('0x1e')]),_0x5b8586);queues[_0xc7ac('0x38')](_0x5b8586);recordings[_0xc7ac('0x38')](_0x5b8586);calls[_0xc7ac('0x38')](_0x5b8586);dials[_0xc7ac('0x38')](_0x5b8586);}catch(_0xdd0c3){utils[_0xc7ac('0x15')](util[_0xc7ac('0x1b')](_0xc7ac('0x39'),_0x5b8586['uniqueid']),_0xdd0c3);}});ami['on']('newexten',function(_0x16a610){try{utils[_0xc7ac('0x17')](util[_0xc7ac('0x1b')](_0xc7ac('0x3a'),_0x16a610[_0xc7ac('0x1e')]),_0x16a610);calls[_0xc7ac('0x3b')](_0x16a610);recordings[_0xc7ac('0x3b')](_0x16a610);dials[_0xc7ac('0x3b')](_0x16a610);}catch(_0x3193f5){utils[_0xc7ac('0x15')](util[_0xc7ac('0x1b')]('[%s][index][newexten]',_0x16a610['uniqueid']),_0x3193f5);}});ami['on'](_0xc7ac('0x3c'),function(_0x1b6e23){try{utils[_0xc7ac('0x17')](util['format'](_0xc7ac('0x3d'),_0x1b6e23['uniqueid']),_0x1b6e23);calls[_0xc7ac('0x3c')](_0x1b6e23);recordings[_0xc7ac('0x3c')](_0x1b6e23);}catch(_0x10484d){utils['error'](util[_0xc7ac('0x1b')]('[%s][index][newchannel]',_0x1b6e23[_0xc7ac('0x1e')]),_0x10484d);}});ami['on'](_0xc7ac('0x3e'),function(_0x3c697f){try{utils[_0xc7ac('0x17')](util['format'](_0xc7ac('0x3f'),_0x3c697f[_0xc7ac('0x1e')]),_0x3c697f);dials['dialbegin'](_0x3c697f);}catch(_0x54e84b){utils[_0xc7ac('0x15')](util[_0xc7ac('0x1b')]('[%s]dialbegin',_0x3c697f[_0xc7ac('0x1e')]),_0x54e84b);}});ami['on'](_0xc7ac('0x40'),function(_0x1dcffe){try{utils[_0xc7ac('0x17')](util['format']('[%s][index][dialend]',_0x1dcffe[_0xc7ac('0x1e')]),_0x1dcffe);dials[_0xc7ac('0x40')](_0x1dcffe);}catch(_0x565d44){utils[_0xc7ac('0x15')](util[_0xc7ac('0x1b')](_0xc7ac('0x41'),_0x1dcffe[_0xc7ac('0x1e')]),_0x565d44);}});}
\ No newline at end of file
+var _0x325a=['[%s][index][agentcomplete]','queuecallerabandon','[%s][index][queuecallerabandon]','queuecallerjoin','[%s][index][queuecallerjoin]','queuecallerleave','[%s][index][queuecallerleave]','musiconholdstart','[%s][index][musiconholdstart]','musiconholdstop','[%s][index][musiconholdstop]','newstate','[%s][index][newstate]','hangup','[%s][index][hangup]','[%s][index][cdr]','cdr','blindtransfer','[%s][index][blindtransfer]','attendedtransfer','[%s][index][attendedtransfer]','origtransfereruniqueid','varset','[%s][index][varset]','newexten','[%s][index][newexten]','newchannel','[%s][index][newchannel]','dialbegin','[%s]dialbegin','dialend','[%s][index][dialend]','asterisk-manager','./utils','util','asterisk','port','username','password','xdr','info','XDR\x20DISABLED','./agents.controller','./queues.controller','./recordings.controller','./members.controller','./transfers.controller','./core.controller','connect','shutdown','fullybooted','error','managerevent','debug','format','[%s][index][devicestatechange]','device','devicestatechange','agentcalled','[%s][index][agentcalled]','uniqueid','[%s][index][agentringnoanswer]','agentconnect','[%s][index][agentconnect]','agentcomplete'];(function(_0x648163,_0x241576){var _0x199d4d=function(_0x23055d){while(--_0x23055d){_0x648163['push'](_0x648163['shift']());}};_0x199d4d(++_0x241576);}(_0x325a,0x165));var _0xa325=function(_0x185b36,_0x20e1a4){_0x185b36=_0x185b36-0x0;var _0x246211=_0x325a[_0x185b36];return _0x246211;};var AsteriskManager=require(_0xa325('0x0'));var config=require('../../config/environment');var utils=require(_0xa325('0x1'));var util=require(_0xa325('0x2'));var ami=new AsteriskManager(config[_0xa325('0x3')][_0xa325('0x4')],config[_0xa325('0x3')]['ip'],config[_0xa325('0x3')][_0xa325('0x5')],config['asterisk'][_0xa325('0x6')],!![]);ami['keepConnected']();if(config[_0xa325('0x7')]&&config[_0xa325('0x7')]['disabled']){utils[_0xa325('0x8')](_0xa325('0x9'));}else{var agents=require(_0xa325('0xa'));var calls=require('./calls.controller');var queues=require(_0xa325('0xb'));var recordings=require(_0xa325('0xc'));var members=require(_0xa325('0xd'));var dials=require('./dials.controller');var transfers=require(_0xa325('0xe'));var core=require(_0xa325('0xf'));ami['on'](_0xa325('0x10'),core[_0xa325('0x10')]);ami['on'](_0xa325('0x11'),core[_0xa325('0x11')]);ami['on'](_0xa325('0x12'),core[_0xa325('0x12')]);ami['on'](_0xa325('0x13'),core[_0xa325('0x13')]);ami['on']('close',core['close']);ami['on'](_0xa325('0x14'),core[_0xa325('0x14')]);ami['on']('devicestatechange',function(_0x53de97){try{utils[_0xa325('0x15')](util[_0xa325('0x16')](_0xa325('0x17'),_0x53de97[_0xa325('0x18')]),_0x53de97);members[_0xa325('0x19')](_0x53de97);}catch(_0x2b1412){utils[_0xa325('0x13')](util[_0xa325('0x16')](_0xa325('0x17'),_0x53de97[_0xa325('0x18')]),_0x2b1412);}});ami['on'](_0xa325('0x1a'),function(_0x593e59){try{utils[_0xa325('0x15')](util['format'](_0xa325('0x1b'),_0x593e59[_0xa325('0x1c')]),_0x593e59);agents[_0xa325('0x1a')](_0x593e59);}catch(_0x3841ff){utils[_0xa325('0x13')](util[_0xa325('0x16')](_0xa325('0x1b'),_0x593e59[_0xa325('0x1c')]),_0x3841ff);}});ami['on']('agentringnoanswer',function(_0x570bea){try{utils[_0xa325('0x15')](util[_0xa325('0x16')](_0xa325('0x1d'),_0x570bea[_0xa325('0x1c')]),_0x570bea);agents['agentringnoanswer'](_0x570bea);}catch(_0x16d687){utils[_0xa325('0x13')](util[_0xa325('0x16')](_0xa325('0x1d'),_0x570bea[_0xa325('0x1c')]),_0x16d687);}});ami['on'](_0xa325('0x1e'),function(_0x28ea52){try{utils[_0xa325('0x15')](util['format']('[%s][index][agentconnect]',_0x28ea52[_0xa325('0x1c')]),_0x28ea52);agents[_0xa325('0x1e')](_0x28ea52);queues[_0xa325('0x1e')](_0x28ea52);}catch(_0x54e4ca){utils[_0xa325('0x13')](util['format'](_0xa325('0x1f'),_0x28ea52[_0xa325('0x1c')]),_0x54e4ca);}});ami['on'](_0xa325('0x20'),function(_0xc50567){try{utils['debug'](util[_0xa325('0x16')](_0xa325('0x21'),_0xc50567[_0xa325('0x1c')]),_0xc50567);agents[_0xa325('0x20')](_0xc50567);queues[_0xa325('0x20')](_0xc50567);members[_0xa325('0x20')](_0xc50567);}catch(_0x1e668a){utils[_0xa325('0x13')](util['format'](_0xa325('0x21'),_0xc50567['uniqueid']),_0x1e668a);}});ami['on'](_0xa325('0x22'),function(_0x28f72a){try{utils[_0xa325('0x15')](util['format'](_0xa325('0x23'),_0x28f72a[_0xa325('0x1c')]),_0x28f72a);agents['queuecallerabandon'](_0x28f72a);queues['queuecallerabandon'](_0x28f72a);}catch(_0x459bd9){utils[_0xa325('0x13')](util['format'](_0xa325('0x23'),_0x28f72a['uniqueid']),_0x459bd9);}});ami['on'](_0xa325('0x24'),function(_0x2bcc8e){try{utils[_0xa325('0x15')](util[_0xa325('0x16')](_0xa325('0x25'),_0x2bcc8e[_0xa325('0x1c')]),_0x2bcc8e);queues['queuecallerjoin'](_0x2bcc8e);recordings[_0xa325('0x24')](_0x2bcc8e);}catch(_0x5c2a3c){utils[_0xa325('0x13')](util[_0xa325('0x16')]('[%s][index][queuecallerjoin]',_0x2bcc8e[_0xa325('0x1c')]),_0x5c2a3c);}});ami['on'](_0xa325('0x26'),function(_0x3e6297){try{utils[_0xa325('0x15')](util[_0xa325('0x16')]('[%s][index][queuecallerleave]',_0x3e6297[_0xa325('0x1c')]),_0x3e6297);queues[_0xa325('0x26')](_0x3e6297);}catch(_0x496201){utils[_0xa325('0x13')](util[_0xa325('0x16')](_0xa325('0x27'),_0x3e6297[_0xa325('0x1c')]),_0x496201);}});ami['on'](_0xa325('0x28'),function(_0x44add7){try{utils[_0xa325('0x15')](util['format'](_0xa325('0x29'),_0x44add7['uniqueid']),_0x44add7);queues['musiconholdstart'](_0x44add7);calls[_0xa325('0x28')](_0x44add7);}catch(_0x2a7990){utils[_0xa325('0x13')](util['format'](_0xa325('0x29'),_0x44add7[_0xa325('0x1c')]),_0x2a7990);}});ami['on'](_0xa325('0x2a'),function(_0x56d897){try{utils[_0xa325('0x15')](util[_0xa325('0x16')](_0xa325('0x2b'),_0x56d897[_0xa325('0x1c')]),_0x56d897);queues['musiconholdstop'](_0x56d897);calls['musiconholdstop'](_0x56d897);}catch(_0x46d55b){utils[_0xa325('0x13')](util[_0xa325('0x16')](_0xa325('0x2b'),_0x56d897['uniqueid']),_0x46d55b);}});ami['on'](_0xa325('0x2c'),function(_0xe8221a){try{utils[_0xa325('0x15')](util[_0xa325('0x16')](_0xa325('0x2d'),_0xe8221a[_0xa325('0x1c')]),_0xe8221a);calls[_0xa325('0x2c')](_0xe8221a);recordings[_0xa325('0x2c')](_0xe8221a);}catch(_0x25aa4c){utils['error'](util[_0xa325('0x16')](_0xa325('0x2d'),_0xe8221a[_0xa325('0x1c')]),_0x25aa4c);}});ami['on'](_0xa325('0x2e'),function(_0x2cb19f){try{utils[_0xa325('0x15')](util[_0xa325('0x16')](_0xa325('0x2f'),_0x2cb19f[_0xa325('0x1c')]),_0x2cb19f);calls[_0xa325('0x2e')](_0x2cb19f);recordings[_0xa325('0x2e')](_0x2cb19f);dials[_0xa325('0x2e')](_0x2cb19f);agents[_0xa325('0x2e')](_0x2cb19f);queues[_0xa325('0x2e')](_0x2cb19f);}catch(_0x4dcd0c){utils[_0xa325('0x13')](util[_0xa325('0x16')](_0xa325('0x2f'),_0x2cb19f[_0xa325('0x1c')]),_0x4dcd0c);}});ami['on']('cdr',function(_0x326c01){try{utils[_0xa325('0x15')](util[_0xa325('0x16')](_0xa325('0x30'),_0x326c01[_0xa325('0x1c')]),_0x326c01);members[_0xa325('0x31')](_0x326c01);}catch(_0x3212ff){utils[_0xa325('0x13')](util[_0xa325('0x16')]('[%s][index][cdr]',_0x326c01[_0xa325('0x1c')]),_0x3212ff);}});ami['on'](_0xa325('0x32'),function(_0x4f5588){try{utils['debug'](util[_0xa325('0x16')](_0xa325('0x33'),_0x4f5588[_0xa325('0x1c')]),_0x4f5588);queues['blindtransfer'](_0x4f5588);agents[_0xa325('0x32')](_0x4f5588);transfers[_0xa325('0x32')](_0x4f5588);recordings[_0xa325('0x32')](_0x4f5588);}catch(_0x4aaf0e){utils['error'](util['format'](_0xa325('0x33'),_0x4f5588[_0xa325('0x1c')]),_0x4aaf0e);}});ami['on'](_0xa325('0x34'),function(_0xb0d1c7){try{utils[_0xa325('0x15')](util['format'](_0xa325('0x35'),_0xb0d1c7[_0xa325('0x36')]),_0xb0d1c7);queues['attendedtransfer'](_0xb0d1c7);transfers[_0xa325('0x34')](_0xb0d1c7);agents[_0xa325('0x34')](_0xb0d1c7);calls[_0xa325('0x34')](_0xb0d1c7);}catch(_0x579251){utils['error'](util[_0xa325('0x16')](_0xa325('0x35'),_0xb0d1c7[_0xa325('0x36')]),_0x579251);}});ami['on'](_0xa325('0x37'),function(_0xe88bf2){try{utils[_0xa325('0x15')](util[_0xa325('0x16')](_0xa325('0x38'),_0xe88bf2[_0xa325('0x1c')]),_0xe88bf2);queues[_0xa325('0x37')](_0xe88bf2);recordings['varset'](_0xe88bf2);calls['varset'](_0xe88bf2);dials[_0xa325('0x37')](_0xe88bf2);}catch(_0x4ca384){utils[_0xa325('0x13')](util['format'](_0xa325('0x38'),_0xe88bf2[_0xa325('0x1c')]),_0x4ca384);}});ami['on'](_0xa325('0x39'),function(_0x100365){try{utils[_0xa325('0x15')](util[_0xa325('0x16')](_0xa325('0x3a'),_0x100365[_0xa325('0x1c')]),_0x100365);calls[_0xa325('0x39')](_0x100365);recordings[_0xa325('0x39')](_0x100365);dials[_0xa325('0x39')](_0x100365);}catch(_0x369337){utils[_0xa325('0x13')](util[_0xa325('0x16')](_0xa325('0x3a'),_0x100365[_0xa325('0x1c')]),_0x369337);}});ami['on'](_0xa325('0x3b'),function(_0x5bf4b2){try{utils[_0xa325('0x15')](util[_0xa325('0x16')]('[%s][index][newchannel]',_0x5bf4b2[_0xa325('0x1c')]),_0x5bf4b2);calls[_0xa325('0x3b')](_0x5bf4b2);recordings['newchannel'](_0x5bf4b2);}catch(_0xa9c27c){utils[_0xa325('0x13')](util[_0xa325('0x16')](_0xa325('0x3c'),_0x5bf4b2['uniqueid']),_0xa9c27c);}});ami['on']('dialbegin',function(_0x1acee5){try{utils[_0xa325('0x15')](util[_0xa325('0x16')]('[%s][index][dialbegin]',_0x1acee5['uniqueid']),_0x1acee5);dials[_0xa325('0x3d')](_0x1acee5);}catch(_0x2c6626){utils['error'](util[_0xa325('0x16')](_0xa325('0x3e'),_0x1acee5['uniqueid']),_0x2c6626);}});ami['on'](_0xa325('0x3f'),function(_0x4fc77f){try{utils[_0xa325('0x15')](util['format'](_0xa325('0x40'),_0x4fc77f['uniqueid']),_0x4fc77f);dials[_0xa325('0x3f')](_0x4fc77f);}catch(_0x11408e){utils[_0xa325('0x13')](util[_0xa325('0x16')](_0xa325('0x40'),_0x4fc77f[_0xa325('0x1c')]),_0x11408e);}});}
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x500a=['enterAt','agentcomplete','[%s][members][agentcomplete]','queue','cdr','[%s][members][cdr]','channel','assign','data1','source','data3','[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s','destinationchannel','destination','util','Local/_attended@transfer','info','format','[%s][members][writeDB]\x20interface:%s\x20channel:%s\x20data2:%s\x20agent:%s\x20type:%s','uniqueid','data2','membername','type','interface','getUserByInterface','name','internal','request','CreateMemberReport','getUserByName','split','then','catch','error','[%s][members][writeDB]','some','debug','[%s][members][devicestatechange]','device','state','INUSE','BUSY','voice','TALKING','now','agent','NOT_INUSE','isNil','exitAt','duration'];(function(_0x83f21f,_0x3ce6ce){var _0x360eaa=function(_0x428ab1){while(--_0x428ab1){_0x83f21f['push'](_0x83f21f['shift']());}};_0x360eaa(++_0x3ce6ce);}(_0x500a,0xd6));var _0xa500=function(_0x228a85,_0x255e55){_0x228a85=_0x228a85-0x0;var _0x2819d9=_0x500a[_0x228a85];return _0x2819d9;};'use strict';var _=require('lodash');var util=require(_0xa500('0x0'));var utils=require('./utils');var members={};var exclude=[_0xa500('0x1'),'Queue:'];function writeDB(_0x5560da){utils[_0xa500('0x2')](util[_0xa500('0x3')](_0xa500('0x4'),_0x5560da[_0xa500('0x5')],_0x5560da['interface'],_0x5560da['channel'],_0x5560da[_0xa500('0x6')],_0x5560da[_0xa500('0x7')],_0x5560da[_0xa500('0x8')]));if(_0x5560da[_0xa500('0x9')]){utils[_0xa500('0xa')](_0x5560da['interface'])['then'](function(_0x28aab7){if(_0x28aab7){_0x5560da[_0xa500('0x7')]=_0x28aab7[_0xa500('0xb')];_0x5560da[_0xa500('0xc')]=_0x28aab7['internal'];utils[_0xa500('0xd')](_0xa500('0xe'),_0x5560da);}else{utils[_0xa500('0xf')](_0x5560da[_0xa500('0x9')][_0xa500('0x10')]('/')[0x1])[_0xa500('0x11')](function(_0x246f24){if(_0x246f24){_0x5560da[_0xa500('0x7')]=_0x246f24[_0xa500('0xb')];_0x5560da[_0xa500('0xc')]=_0x246f24[_0xa500('0xc')];utils[_0xa500('0xd')](_0xa500('0xe'),_0x5560da);}});}})[_0xa500('0x12')](function(_0x5c2931){utils[_0xa500('0x13')](util[_0xa500('0x3')](_0xa500('0x14'),_0x5560da[_0xa500('0x5')]),_0x5c2931);});}delete members[_0x5560da[_0xa500('0x9')]];}function startsWith(_0x2f7d44,_0x4562de){return _[_0xa500('0x15')](_0x2f7d44,function(_0x3eb1eb){return _['startsWith'](_0x4562de,_0x3eb1eb);});}exports['devicestatechange']=function(_0x159ae0){try{utils[_0xa500('0x16')](util['format'](_0xa500('0x17'),members[_0x159ae0[_0xa500('0x18')]]?members[_0x159ae0[_0xa500('0x18')]][_0xa500('0x5')]:_0x159ae0[_0xa500('0x18')]),_0x159ae0);utils[_0xa500('0x2')](util[_0xa500('0x3')]('[%s][members][devicestatechange]\x20state:%s\x20interface:%s',members[_0x159ae0[_0xa500('0x18')]]?members[_0x159ae0[_0xa500('0x18')]][_0xa500('0x5')]:_0x159ae0[_0xa500('0x18')],_0x159ae0[_0xa500('0x19')],_0x159ae0[_0xa500('0x18')]));switch(_0x159ae0[_0xa500('0x19')]){case _0xa500('0x1a'):case _0xa500('0x1b'):if(!startsWith(exclude,_0x159ae0[_0xa500('0x18')])){members[_0x159ae0[_0xa500('0x18')]]={'channel':_0xa500('0x1c'),'interface':_0x159ae0[_0xa500('0x18')],'type':_0xa500('0x1d'),'enterAt':utils[_0xa500('0x1e')](),'role':_0xa500('0x1f')};}break;case _0xa500('0x20'):if(!_[_0xa500('0x21')](members[_0x159ae0[_0xa500('0x18')]])){members[_0x159ae0['device']][_0xa500('0x22')]=utils[_0xa500('0x1e')]();members[_0x159ae0[_0xa500('0x18')]][_0xa500('0x23')]=utils['diffTime'](members[_0x159ae0['device']][_0xa500('0x22')],members[_0x159ae0[_0xa500('0x18')]][_0xa500('0x24')]);if(members[_0x159ae0[_0xa500('0x18')]][_0xa500('0x5')]){writeDB(members[_0x159ae0[_0xa500('0x18')]]);}}break;default:break;}}catch(_0x24d913){utils[_0xa500('0x13')](util[_0xa500('0x3')]('[%s][members][devicestatechange]',members[_0x159ae0['device']]?members[_0x159ae0['device']][_0xa500('0x5')]:_0x159ae0[_0xa500('0x18')]),_0x24d913);}};exports[_0xa500('0x25')]=function(_0x3ddbc9){try{if(!_[_0xa500('0x21')](members[_0x3ddbc9[_0xa500('0x9')]])){utils[_0xa500('0x16')](util[_0xa500('0x3')](_0xa500('0x26'),_0x3ddbc9[_0xa500('0x5')]),_0x3ddbc9);utils[_0xa500('0x2')](util['format']('[%s][members][agentcomplete]\x20interface:%s\x20queue:%s',_0x3ddbc9[_0xa500('0x5')],_0x3ddbc9[_0xa500('0x9')],_0x3ddbc9[_0xa500('0x27')]));members[_0x3ddbc9[_0xa500('0x9')]]=_['assign'](members[_0x3ddbc9['interface']],{'data4':_0x3ddbc9['queue'],'uniqueid':_0x3ddbc9[_0xa500('0x5')]});}}catch(_0x954f80){utils['error'](util[_0xa500('0x3')](_0xa500('0x26'),_0x3ddbc9[_0xa500('0x5')]),_0x954f80);}};exports[_0xa500('0x28')]=function(_0x49d5e2){try{utils[_0xa500('0x16')](util[_0xa500('0x3')](_0xa500('0x29'),_0x49d5e2[_0xa500('0x5')]),_0x49d5e2);if(_0x49d5e2[_0xa500('0x2a')]){var _0x5139b5=_0x49d5e2[_0xa500('0x2a')][_0xa500('0x10')]('-')[0x0];if(!_[_0xa500('0x21')](members[_0x5139b5])){members[_0x5139b5]=_[_0xa500('0x2b')](members[_0x5139b5],{'data1':members[_0x5139b5][_0xa500('0x2c')]||_0x49d5e2[_0xa500('0x8')],'data2':members[_0x5139b5][_0xa500('0x6')]||_0x49d5e2[_0xa500('0x2d')],'data3':members[_0x5139b5][_0xa500('0x2e')]||_0x49d5e2['destination'],'uniqueid':members[_0x5139b5]['uniqueid']||_0x49d5e2[_0xa500('0x5')]});utils[_0xa500('0x2')](util[_0xa500('0x3')](_0xa500('0x2f'),_0x49d5e2[_0xa500('0x5')],members[_0x5139b5]['data1'],members[_0x5139b5][_0xa500('0x6')],members[_0x5139b5][_0xa500('0x2e')]));if(members[_0x5139b5]['exitAt']){writeDB(members[_0x5139b5]);}}}if(_0x49d5e2[_0xa500('0x30')]){var _0x376c0e=_0x49d5e2[_0xa500('0x30')][_0xa500('0x10')]('-')[0x0];if(!_[_0xa500('0x21')](members[_0x376c0e])){members[_0x376c0e]=_[_0xa500('0x2b')](members[_0x376c0e],{'data1':members[_0x376c0e][_0xa500('0x2c')]||_0x49d5e2[_0xa500('0x8')],'data2':members[_0x376c0e][_0xa500('0x6')]||_0x49d5e2['source'],'data3':members[_0x376c0e][_0xa500('0x2e')]||_0x49d5e2[_0xa500('0x31')],'uniqueid':members[_0x376c0e][_0xa500('0x5')]||_0x49d5e2['uniqueid']});utils[_0xa500('0x2')](util[_0xa500('0x3')](_0xa500('0x2f'),_0x49d5e2[_0xa500('0x5')],members[_0x376c0e][_0xa500('0x2c')],members[_0x376c0e]['data2'],members[_0x376c0e][_0xa500('0x2e')]));if(members[_0x376c0e][_0xa500('0x22')]){writeDB(members[_0x376c0e]);}}}}catch(_0x16dc99){utils[_0xa500('0x13')](util[_0xa500('0x3')](_0xa500('0x29'),_0x49d5e2[_0xa500('0x5')]),_0x16dc99);}};
\ No newline at end of file
+var _0xf149=['voice','now','agent','NOT_INUSE','exitAt','duration','diffTime','agentcomplete','[%s][members][agentcomplete]','[%s][members][agentcomplete]\x20interface:%s\x20queue:%s','queue','[%s][members][cdr]','channel','isNil','data2','destination','[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s','data3','destinationchannel','data1','source','lodash','util','./utils','Queue:','info','format','[%s][members][writeDB]\x20interface:%s\x20channel:%s\x20data2:%s\x20agent:%s\x20type:%s','uniqueid','interface','membername','type','getUserByInterface','then','internal','request','getUserByName','split','CreateMemberReport','catch','error','[%s][members][writeDB]','some','startsWith','debug','[%s][members][devicestatechange]','device','[%s][members][devicestatechange]\x20state:%s\x20interface:%s','state','INUSE','BUSY'];(function(_0x569d04,_0x40fbf7){var _0x505cf2=function(_0x54453f){while(--_0x54453f){_0x569d04['push'](_0x569d04['shift']());}};_0x505cf2(++_0x40fbf7);}(_0xf149,0xe1));var _0x9f14=function(_0x3ea343,_0x168e7e){_0x3ea343=_0x3ea343-0x0;var _0x1ae8e5=_0xf149[_0x3ea343];return _0x1ae8e5;};'use strict';var _=require(_0x9f14('0x0'));var util=require(_0x9f14('0x1'));var utils=require(_0x9f14('0x2'));var members={};var exclude=['Local/_attended@transfer',_0x9f14('0x3')];function writeDB(_0x243a69){utils[_0x9f14('0x4')](util[_0x9f14('0x5')](_0x9f14('0x6'),_0x243a69[_0x9f14('0x7')],_0x243a69[_0x9f14('0x8')],_0x243a69['channel'],_0x243a69['data2'],_0x243a69[_0x9f14('0x9')],_0x243a69[_0x9f14('0xa')]));if(_0x243a69[_0x9f14('0x8')]){utils[_0x9f14('0xb')](_0x243a69[_0x9f14('0x8')])[_0x9f14('0xc')](function(_0x4ec25d){if(_0x4ec25d){_0x243a69['membername']=_0x4ec25d['name'];_0x243a69[_0x9f14('0xd')]=_0x4ec25d[_0x9f14('0xd')];utils[_0x9f14('0xe')]('CreateMemberReport',_0x243a69);}else{utils[_0x9f14('0xf')](_0x243a69[_0x9f14('0x8')][_0x9f14('0x10')]('/')[0x1])[_0x9f14('0xc')](function(_0x29563d){if(_0x29563d){_0x243a69[_0x9f14('0x9')]=_0x29563d['name'];_0x243a69[_0x9f14('0xd')]=_0x29563d[_0x9f14('0xd')];utils[_0x9f14('0xe')](_0x9f14('0x11'),_0x243a69);}});}})[_0x9f14('0x12')](function(_0x187f86){utils[_0x9f14('0x13')](util[_0x9f14('0x5')](_0x9f14('0x14'),_0x243a69[_0x9f14('0x7')]),_0x187f86);});}delete members[_0x243a69[_0x9f14('0x8')]];}function startsWith(_0x548d19,_0x314dd6){return _[_0x9f14('0x15')](_0x548d19,function(_0xb337fd){return _[_0x9f14('0x16')](_0x314dd6,_0xb337fd);});}exports['devicestatechange']=function(_0x380e67){try{utils[_0x9f14('0x17')](util[_0x9f14('0x5')](_0x9f14('0x18'),members[_0x380e67[_0x9f14('0x19')]]?members[_0x380e67['device']][_0x9f14('0x7')]:_0x380e67[_0x9f14('0x19')]),_0x380e67);utils[_0x9f14('0x4')](util[_0x9f14('0x5')](_0x9f14('0x1a'),members[_0x380e67[_0x9f14('0x19')]]?members[_0x380e67['device']][_0x9f14('0x7')]:_0x380e67[_0x9f14('0x19')],_0x380e67[_0x9f14('0x1b')],_0x380e67[_0x9f14('0x19')]));switch(_0x380e67['state']){case _0x9f14('0x1c'):case _0x9f14('0x1d'):if(!startsWith(exclude,_0x380e67[_0x9f14('0x19')])){members[_0x380e67[_0x9f14('0x19')]]={'channel':_0x9f14('0x1e'),'interface':_0x380e67['device'],'type':'TALKING','enterAt':utils[_0x9f14('0x1f')](),'role':_0x9f14('0x20')};}break;case _0x9f14('0x21'):if(!_['isNil'](members[_0x380e67['device']])){members[_0x380e67['device']][_0x9f14('0x22')]=utils[_0x9f14('0x1f')]();members[_0x380e67[_0x9f14('0x19')]][_0x9f14('0x23')]=utils[_0x9f14('0x24')](members[_0x380e67[_0x9f14('0x19')]][_0x9f14('0x22')],members[_0x380e67['device']]['enterAt']);if(members[_0x380e67[_0x9f14('0x19')]]['uniqueid']){writeDB(members[_0x380e67[_0x9f14('0x19')]]);}}break;default:break;}}catch(_0xd11422){utils[_0x9f14('0x13')](util['format']('[%s][members][devicestatechange]',members[_0x380e67[_0x9f14('0x19')]]?members[_0x380e67[_0x9f14('0x19')]][_0x9f14('0x7')]:_0x380e67[_0x9f14('0x19')]),_0xd11422);}};exports[_0x9f14('0x25')]=function(_0x55d0c3){try{if(!_['isNil'](members[_0x55d0c3[_0x9f14('0x8')]])){utils[_0x9f14('0x17')](util['format'](_0x9f14('0x26'),_0x55d0c3[_0x9f14('0x7')]),_0x55d0c3);utils['info'](util['format'](_0x9f14('0x27'),_0x55d0c3[_0x9f14('0x7')],_0x55d0c3[_0x9f14('0x8')],_0x55d0c3['queue']));members[_0x55d0c3['interface']]=_['assign'](members[_0x55d0c3[_0x9f14('0x8')]],{'data4':_0x55d0c3[_0x9f14('0x28')],'uniqueid':_0x55d0c3[_0x9f14('0x7')]});}}catch(_0x438b09){utils[_0x9f14('0x13')](util[_0x9f14('0x5')](_0x9f14('0x26'),_0x55d0c3['uniqueid']),_0x438b09);}};exports['cdr']=function(_0x13fd94){try{utils[_0x9f14('0x17')](util['format'](_0x9f14('0x29'),_0x13fd94[_0x9f14('0x7')]),_0x13fd94);if(_0x13fd94[_0x9f14('0x2a')]){var _0x3ec6f6=_0x13fd94[_0x9f14('0x2a')][_0x9f14('0x10')]('-')[0x0];if(!_[_0x9f14('0x2b')](members[_0x3ec6f6])){members[_0x3ec6f6]=_['assign'](members[_0x3ec6f6],{'data1':members[_0x3ec6f6]['data1']||_0x13fd94[_0x9f14('0xa')],'data2':members[_0x3ec6f6][_0x9f14('0x2c')]||_0x13fd94['source'],'data3':members[_0x3ec6f6]['data3']||_0x13fd94[_0x9f14('0x2d')],'uniqueid':members[_0x3ec6f6][_0x9f14('0x7')]||_0x13fd94[_0x9f14('0x7')]});utils['info'](util[_0x9f14('0x5')](_0x9f14('0x2e'),_0x13fd94[_0x9f14('0x7')],members[_0x3ec6f6]['data1'],members[_0x3ec6f6][_0x9f14('0x2c')],members[_0x3ec6f6][_0x9f14('0x2f')]));if(members[_0x3ec6f6]['exitAt']){writeDB(members[_0x3ec6f6]);}}}if(_0x13fd94[_0x9f14('0x30')]){var _0x1110d7=_0x13fd94[_0x9f14('0x30')][_0x9f14('0x10')]('-')[0x0];if(!_[_0x9f14('0x2b')](members[_0x1110d7])){members[_0x1110d7]=_['assign'](members[_0x1110d7],{'data1':members[_0x1110d7][_0x9f14('0x31')]||_0x13fd94[_0x9f14('0xa')],'data2':members[_0x1110d7][_0x9f14('0x2c')]||_0x13fd94[_0x9f14('0x32')],'data3':members[_0x1110d7]['data3']||_0x13fd94[_0x9f14('0x2d')],'uniqueid':members[_0x1110d7]['uniqueid']||_0x13fd94[_0x9f14('0x7')]});utils[_0x9f14('0x4')](util[_0x9f14('0x5')](_0x9f14('0x2e'),_0x13fd94[_0x9f14('0x7')],members[_0x1110d7][_0x9f14('0x31')],members[_0x1110d7]['data2'],members[_0x1110d7][_0x9f14('0x2f')]));if(members[_0x1110d7]['exitAt']){writeDB(members[_0x1110d7]);}}}}catch(_0x24a019){utils[_0x9f14('0x13')](util[_0x9f14('0x5')](_0x9f14('0x29'),_0x13fd94[_0x9f14('0x7')]),_0x24a019);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xc87b=['[%s][queues][hangup]\x20name:%s\x20transfereduniqueid:%s','queuecallerenterreason','error','varset','[%s][queues][varset]','toUpperCase','CONTINUE','queuecallerexitAt','now','value','variable','queueposition','EXITWITHKEY','[%s][queues][varset]\x20name:%s\x20variable:queueposition\x20value:%s\x20queuecallerexitreason:%s','[%s][queues][queuecallerabandon]','queuecallerabandonAt','ABANDONED','[%s][queues][queuecallerabandon]\x20name:%s\x20queuecallerexitreason:%s','queuecallerleave','[%s][queues][queuecallerleave]','[%s][queues][queuecallerleave]\x20name:%s\x20connectedlinenum:%s\x20connectedlinename:%s','connectedlinenum','connectedlinename','holdtime','queuecallerjoinAt','count','agentconnect','[%s][queues][agentconnect]','[%s][queues][agentconnect]\x20name:%s\x20agent:%s\x20accountcode:%s','membername','destaccountcode','assigned','lastAssignedTo','agentcomplete','[%s][queues][agentcomplete]','queuecallercomplete','reason','TRANSFER','COMPLETEDBY','[%s][queues][agentcomplete]\x20name:%s\x20agent:%s\x20queuecallerexitreason:%s','blindtransfer','[%s][queues][blindtransfer]','transfereeuniqueid','transfer','transfertype','transferexten','extension','BLINDTRANSFER','[%s][queues][blindtransfer]\x20name:%s\x20transferuniqueid:%s\x20transferexten:%s\x20queuecallerexitreason:BLINDTRANSFER','attendedtransfer','origtransfereruniqueid','[%s][queues][attendedtransfer]\x20name:%s\x20transferexten:%s\x20queuecallerexitreason:ATTENDEDTRANSFER','origtransfererexten','secondtransfererlinkedid','transfereelinkedid','clone','calleridnum','calleridname','mohtime','[%s][queues][attendedtransfer]\x20name:%s\x20calleridnum:%s\x20calleridname:%s','[%s][queues][attendedtransfer]\x20name:%s\x20transfereduniqueid:%s','origtransfererlinkedid','secondtransfereruniqueid','[%s][queues][attendedtransfer]\x20name:%s\x20transferuniqueid:%s\x20transferexten:%s\x20queuecallerexitreason:ATTENDEDTRANSFER','ATTENDED','secondtransfererexten','transferuniqueid','transfertargetlinkedid','transfertargetuniqueid','[%s][queues][attendedtransfer]\x20name:%s\x20transfereduniqueid:%s\x20calleridnum:%s\x20calleridname:%s','musiconholdstart','[%s][queues][musiconholdstart]','musiconholdstartAt','musiconholdstop','[%s][queues][musiconholdstop]','diffTime','[%s][queues][musiconholdstop]\x20name:%s\x20mohtime:%s','lodash','util','./utils','info','format','[%s][queues][writeDB]\x20channel:%s\x20queue:%s\x20lastAssignedTo:%s\x20calleridnum:%s\x20accountcode:%s\x20queuecallerexitreason:%s','uniqueid','channel','accountcode','queuecallerexitreason','queue','getVoiceQueueByName','then','type','request','CreateVoiceQueueReport','transfereduniqueid','debug','[%s][queues][queuecallerjoin]','position','assign','hangup','isNil','[%s][queues][hangup]','queuecallerleaveAt','queuecallerabandon','queuecallerexit','COMPLETEDBYAGENT','[%s][queues][hangup]\x20name:%s\x20queuecallerexitreason:%s','name'];(function(_0x4320a4,_0x1471e6){var _0x5dfd11=function(_0x26ae4a){while(--_0x26ae4a){_0x4320a4['push'](_0x4320a4['shift']());}};_0x5dfd11(++_0x1471e6);}(_0xc87b,0x18e));var _0xbc87=function(_0x5783f4,_0x4a9e0a){_0x5783f4=_0x5783f4-0x0;var _0x28e380=_0xc87b[_0x5783f4];return _0x28e380;};'use strict';var _=require(_0xbc87('0x0'));var util=require(_0xbc87('0x1'));var utils=require(_0xbc87('0x2'));var queues={};function writeDB(_0x3e9b68){utils[_0xbc87('0x3')](util[_0xbc87('0x4')](_0xbc87('0x5'),_0x3e9b68[_0xbc87('0x6')],_0x3e9b68[_0xbc87('0x7')],_0x3e9b68['queue'],_0x3e9b68['lastAssignedTo'],_0x3e9b68['calleridnum'],_0x3e9b68[_0xbc87('0x8')],_0x3e9b68[_0xbc87('0x9')]));if(_0x3e9b68[_0xbc87('0xa')]){utils[_0xbc87('0xb')](_0x3e9b68['queue'])[_0xbc87('0xc')](function(_0x1c230b){if(_0x1c230b){_0x3e9b68['type']=_0x1c230b[_0xbc87('0xd')];}utils[_0xbc87('0xe')]('CreateVoiceQueueReport',_0x3e9b68);});}else{utils[_0xbc87('0xe')](_0xbc87('0xf'),_0x3e9b68);}if(_0x3e9b68[_0xbc87('0x10')]){delete queues[_0x3e9b68[_0xbc87('0x10')]];}else{delete queues[_0x3e9b68[_0xbc87('0x6')]];}}exports['queuecallerjoin']=function(_0x44e31c){try{utils[_0xbc87('0x11')](util[_0xbc87('0x4')](_0xbc87('0x12'),_0x44e31c[_0xbc87('0x6')]),_0x44e31c);utils[_0xbc87('0x3')](util[_0xbc87('0x4')]('[%s][queues][queuecallerjoin]\x20name:%s\x20position:%s',_0x44e31c[_0xbc87('0x6')],_0x44e31c[_0xbc87('0xa')],_0x44e31c[_0xbc87('0x13')]));queues[_0x44e31c[_0xbc87('0x6')]]=_[_0xbc87('0x14')](_0x44e31c,{'originalposition':_0x44e31c['position'],'queuecallerjoinAt':utils['now'](),'mohtime':0x0});}catch(_0x408783){utils['error'](util[_0xbc87('0x4')](_0xbc87('0x12'),_0x44e31c[_0xbc87('0x6')]),_0x408783);}};exports[_0xbc87('0x15')]=function(_0x47a290){try{if(!_[_0xbc87('0x16')](queues[_0x47a290[_0xbc87('0x6')]])){utils[_0xbc87('0x11')](util[_0xbc87('0x4')](_0xbc87('0x17'),_0x47a290[_0xbc87('0x6')]),_0x47a290);if(queues[_0x47a290[_0xbc87('0x6')]][_0xbc87('0x18')]){if(!queues[_0x47a290[_0xbc87('0x6')]][_0xbc87('0x19')]&&!queues[_0x47a290[_0xbc87('0x6')]][_0xbc87('0x1a')]){queues[_0x47a290[_0xbc87('0x6')]]['queuecallercomplete']=!![];queues[_0x47a290[_0xbc87('0x6')]]['queuecallercompleteAt']=utils['now']();queues[_0x47a290[_0xbc87('0x6')]][_0xbc87('0x9')]=_0xbc87('0x1b');}utils['info'](util[_0xbc87('0x4')](_0xbc87('0x1c'),_0x47a290[_0xbc87('0x6')],queues[_0x47a290['uniqueid']][_0xbc87('0x1d')],queues[_0x47a290['uniqueid']][_0xbc87('0x9')]));writeDB(queues[_0x47a290[_0xbc87('0x6')]]);}else if(queues[_0x47a290['uniqueid']][_0xbc87('0x10')]){utils[_0xbc87('0x3')](util[_0xbc87('0x4')](_0xbc87('0x1e'),_0x47a290['uniqueid'],queues[_0x47a290[_0xbc87('0x6')]]['name'],queues[_0x47a290[_0xbc87('0x6')]][_0xbc87('0x10')]));queues[queues[_0x47a290[_0xbc87('0x6')]][_0xbc87('0x10')]]=queues[_0x47a290[_0xbc87('0x6')]];queues[queues[_0x47a290['uniqueid']]['transfereduniqueid']][_0xbc87('0x1f')]=0x2;delete queues[_0x47a290['uniqueid']];}}}catch(_0x583e80){utils[_0xbc87('0x20')](util[_0xbc87('0x4')](_0xbc87('0x17'),_0x47a290[_0xbc87('0x6')]),_0x583e80);}};exports[_0xbc87('0x21')]=function(_0xe2c40a){try{utils[_0xbc87('0x11')](util[_0xbc87('0x4')](_0xbc87('0x22'),_0xe2c40a['uniqueid']),_0xe2c40a);if(!_[_0xbc87('0x16')](_0xe2c40a['variable']['queuestatus'])&&_0xe2c40a['value'][_0xbc87('0x23')]()!==_0xbc87('0x24')){if(!_['isNil'](queues[_0xe2c40a['uniqueid']])){queues[_0xe2c40a[_0xbc87('0x6')]][_0xbc87('0x19')]=![];queues[_0xe2c40a[_0xbc87('0x6')]]['queuecallerabandonAt']=null;queues[_0xe2c40a['uniqueid']][_0xbc87('0x1a')]=!![];queues[_0xe2c40a[_0xbc87('0x6')]][_0xbc87('0x25')]=utils[_0xbc87('0x26')]();queues[_0xe2c40a['uniqueid']][_0xbc87('0x9')]=_0xe2c40a[_0xbc87('0x27')][_0xbc87('0x23')]();utils[_0xbc87('0x3')](util['format']('[%s][queues][varset]\x20name:%s\x20variable:queuestatus\x20value:%s\x20queuecallerexitreason:%s',_0xe2c40a[_0xbc87('0x6')],queues[_0xe2c40a['uniqueid']]['name'],_0xe2c40a['value'],queues[_0xe2c40a['uniqueid']][_0xbc87('0x9')]));writeDB(queues[_0xe2c40a[_0xbc87('0x6')]]);}}else if(!_[_0xbc87('0x16')](_0xe2c40a[_0xbc87('0x28')][_0xbc87('0x29')])){if(!_[_0xbc87('0x16')](queues[_0xe2c40a[_0xbc87('0x6')]])&&!queues[_0xe2c40a[_0xbc87('0x6')]][_0xbc87('0x19')]){queues[_0xe2c40a['uniqueid']][_0xbc87('0x19')]=![];queues[_0xe2c40a[_0xbc87('0x6')]]['queuecallerabandonAt']=null;queues[_0xe2c40a[_0xbc87('0x6')]]['queuecallerexit']=!![];queues[_0xe2c40a[_0xbc87('0x6')]][_0xbc87('0x25')]=utils[_0xbc87('0x26')]();queues[_0xe2c40a[_0xbc87('0x6')]][_0xbc87('0x9')]=_0xbc87('0x2a');utils[_0xbc87('0x3')](util['format'](_0xbc87('0x2b'),_0xe2c40a[_0xbc87('0x6')],queues[_0xe2c40a[_0xbc87('0x6')]][_0xbc87('0x1d')],_0xe2c40a[_0xbc87('0x27')],queues[_0xe2c40a[_0xbc87('0x6')]]['queuecallerexitreason']));}}}catch(_0xfac74c){utils[_0xbc87('0x20')](util[_0xbc87('0x4')](_0xbc87('0x22'),_0xe2c40a[_0xbc87('0x6')]),_0xfac74c);}};exports[_0xbc87('0x19')]=function(_0x3e29c1){try{if(!_[_0xbc87('0x16')](queues[_0x3e29c1[_0xbc87('0x6')]])){utils[_0xbc87('0x11')](util[_0xbc87('0x4')](_0xbc87('0x2c'),_0x3e29c1[_0xbc87('0x6')]),_0x3e29c1);queues[_0x3e29c1[_0xbc87('0x6')]]['queuecallerexit']=![];queues[_0x3e29c1[_0xbc87('0x6')]][_0xbc87('0x25')]=null;queues[_0x3e29c1[_0xbc87('0x6')]][_0xbc87('0x19')]=!![];queues[_0x3e29c1[_0xbc87('0x6')]][_0xbc87('0x2d')]=utils[_0xbc87('0x26')]();queues[_0x3e29c1[_0xbc87('0x6')]][_0xbc87('0x9')]=_0xbc87('0x2e');utils[_0xbc87('0x3')](util[_0xbc87('0x4')](_0xbc87('0x2f'),_0x3e29c1['uniqueid'],queues[_0x3e29c1['uniqueid']][_0xbc87('0x1d')],queues[_0x3e29c1[_0xbc87('0x6')]]['queuecallerexitreason']));}}catch(_0xb5a376){utils['error'](util[_0xbc87('0x4')](_0xbc87('0x2c'),_0x3e29c1[_0xbc87('0x6')]),_0xb5a376);}};exports[_0xbc87('0x30')]=function(_0x1e3e7f){try{if(!_['isNil'](queues[_0x1e3e7f[_0xbc87('0x6')]])){utils[_0xbc87('0x11')](util['format'](_0xbc87('0x31'),_0x1e3e7f[_0xbc87('0x6')]),_0x1e3e7f);utils[_0xbc87('0x3')](util[_0xbc87('0x4')](_0xbc87('0x32'),_0x1e3e7f[_0xbc87('0x6')],queues[_0x1e3e7f[_0xbc87('0x6')]]['name'],_0x1e3e7f[_0xbc87('0x33')],_0x1e3e7f[_0xbc87('0x34')]));queues[_0x1e3e7f[_0xbc87('0x6')]]['queuecallerleave']=!![];queues[_0x1e3e7f[_0xbc87('0x6')]]['queuecallerleaveAt']=utils[_0xbc87('0x26')]();queues[_0x1e3e7f[_0xbc87('0x6')]][_0xbc87('0x35')]=utils['diffTime'](queues[_0x1e3e7f[_0xbc87('0x6')]][_0xbc87('0x18')],queues[_0x1e3e7f[_0xbc87('0x6')]][_0xbc87('0x36')]);queues[_0x1e3e7f[_0xbc87('0x6')]][_0xbc87('0x13')]=_0x1e3e7f[_0xbc87('0x13')];queues[_0x1e3e7f[_0xbc87('0x6')]]['count']=_0x1e3e7f[_0xbc87('0x37')];queues[_0x1e3e7f[_0xbc87('0x6')]][_0xbc87('0x33')]=_0x1e3e7f[_0xbc87('0x33')];queues[_0x1e3e7f['uniqueid']]['connectedlinename']=_0x1e3e7f[_0xbc87('0x34')];}}catch(_0x46d91b){utils[_0xbc87('0x20')](util[_0xbc87('0x4')](_0xbc87('0x31'),_0x1e3e7f[_0xbc87('0x6')]),_0x46d91b);}};exports[_0xbc87('0x38')]=function(_0x1b7106){try{if(!_[_0xbc87('0x16')](queues[_0x1b7106[_0xbc87('0x6')]])){utils['debug'](util[_0xbc87('0x4')](_0xbc87('0x39'),_0x1b7106[_0xbc87('0x6')]),_0x1b7106);utils[_0xbc87('0x3')](util[_0xbc87('0x4')](_0xbc87('0x3a'),_0x1b7106['uniqueid'],queues[_0x1b7106[_0xbc87('0x6')]][_0xbc87('0x1d')],_0x1b7106[_0xbc87('0x3b')],_0x1b7106[_0xbc87('0x3c')]));queues[_0x1b7106[_0xbc87('0x6')]][_0xbc87('0x19')]=![];queues[_0x1b7106[_0xbc87('0x6')]]['queuecallerabandon']=![];queues[_0x1b7106['uniqueid']][_0xbc87('0x2d')]=null;queues[_0x1b7106[_0xbc87('0x6')]][_0xbc87('0x1a')]=![];queues[_0x1b7106['uniqueid']]['queuecallerexitreason']=null;queues[_0x1b7106['uniqueid']][_0xbc87('0x25')]=null;queues[_0x1b7106[_0xbc87('0x6')]][_0xbc87('0x3d')]=!![];queues[_0x1b7106[_0xbc87('0x6')]][_0xbc87('0x8')]=_0x1b7106[_0xbc87('0x3c')];queues[_0x1b7106[_0xbc87('0x6')]][_0xbc87('0x3e')]=_0x1b7106['membername'];}}catch(_0x5d19e9){utils[_0xbc87('0x20')](util[_0xbc87('0x4')](_0xbc87('0x39'),_0x1b7106[_0xbc87('0x6')]),_0x5d19e9);}};exports[_0xbc87('0x3f')]=function(_0x21be3c){try{if(!_[_0xbc87('0x16')](queues[_0x21be3c['uniqueid']])){if(queues[_0x21be3c[_0xbc87('0x6')]][_0xbc87('0x18')]){utils[_0xbc87('0x11')](util[_0xbc87('0x4')](_0xbc87('0x40'),_0x21be3c['uniqueid']),_0x21be3c);queues[_0x21be3c[_0xbc87('0x6')]][_0xbc87('0x19')]=![];queues[_0x21be3c['uniqueid']][_0xbc87('0x19')]=![];queues[_0x21be3c[_0xbc87('0x6')]]['queuecallerabandonAt']=null;queues[_0x21be3c['uniqueid']][_0xbc87('0x1a')]=![];queues[_0x21be3c[_0xbc87('0x6')]][_0xbc87('0x25')]=null;queues[_0x21be3c['uniqueid']][_0xbc87('0x3d')]=!![];queues[_0x21be3c[_0xbc87('0x6')]][_0xbc87('0x3e')]=_0x21be3c[_0xbc87('0x3b')];queues[_0x21be3c['uniqueid']][_0xbc87('0x41')]=!![];queues[_0x21be3c[_0xbc87('0x6')]]['queuecallercompleteAt']=utils[_0xbc87('0x26')]();if(_0x21be3c[_0xbc87('0x42')]=='transfer'){if(!queues[_0x21be3c[_0xbc87('0x6')]]['transfer']){queues[_0x21be3c[_0xbc87('0x6')]]['queuecallerexitreason']=_0xbc87('0x43');}}else{queues[_0x21be3c[_0xbc87('0x6')]][_0xbc87('0x9')]=_0xbc87('0x44')+_0x21be3c[_0xbc87('0x42')]['toUpperCase']();}utils['info'](util[_0xbc87('0x4')](_0xbc87('0x45'),_0x21be3c['uniqueid'],queues[_0x21be3c['uniqueid']][_0xbc87('0x1d')],_0x21be3c[_0xbc87('0x3b')],queues[_0x21be3c[_0xbc87('0x6')]][_0xbc87('0x9')]));writeDB(queues[_0x21be3c['uniqueid']]);}}}catch(_0x45394d){utils[_0xbc87('0x20')](util[_0xbc87('0x4')]('[%s][queues][agentcomplete]',_0x21be3c[_0xbc87('0x6')]),_0x45394d);}};exports[_0xbc87('0x46')]=function(_0x244921){try{if(!_[_0xbc87('0x16')](queues[_0x244921['transfereeuniqueid']])){utils['debug'](util[_0xbc87('0x4')](_0xbc87('0x47'),_0x244921['uniqueid']),_0x244921);queues[_0x244921[_0xbc87('0x48')]][_0xbc87('0x49')]=!![];queues[_0x244921['transfereeuniqueid']][_0xbc87('0x4a')]='BLIND';queues[_0x244921[_0xbc87('0x48')]][_0xbc87('0x4b')]=_0x244921[_0xbc87('0x4c')];queues[_0x244921['transfereeuniqueid']]['transferuniqueid']=_0x244921[_0xbc87('0x48')];queues[_0x244921[_0xbc87('0x48')]][_0xbc87('0x9')]=_0xbc87('0x4d');utils[_0xbc87('0x3')](util[_0xbc87('0x4')](_0xbc87('0x4e'),_0x244921[_0xbc87('0x6')],queues[_0x244921[_0xbc87('0x48')]]['name'],_0x244921[_0xbc87('0x48')],_0x244921[_0xbc87('0x4c')]));}}catch(_0xeba222){utils[_0xbc87('0x20')](util[_0xbc87('0x4')](_0xbc87('0x47'),_0x244921[_0xbc87('0x6')]),_0xeba222);}};exports[_0xbc87('0x4f')]=function(_0x253725){try{utils[_0xbc87('0x11')](util[_0xbc87('0x4')]('[%s][queues][attendedtransfer]',_0x253725['origtransfereruniqueid']),_0x253725);if(_0x253725[_0xbc87('0x50')]==_0x253725['origtransfererlinkedid']){if(!_[_0xbc87('0x16')](queues[_0x253725['secondtransfererlinkedid']])){utils[_0xbc87('0x3')](util[_0xbc87('0x4')](_0xbc87('0x51'),_0x253725[_0xbc87('0x50')],queues[_0x253725['secondtransfererlinkedid']][_0xbc87('0x1d')],_0x253725[_0xbc87('0x52')]));queues[_0x253725['secondtransfererlinkedid']][_0xbc87('0x49')]=!![];queues[_0x253725['secondtransfererlinkedid']]['transfertype']='ATTENDED';queues[_0x253725[_0xbc87('0x53')]][_0xbc87('0x4b')]=_0x253725[_0xbc87('0x52')];queues[_0x253725[_0xbc87('0x53')]]['transferuniqueid']=_0x253725[_0xbc87('0x50')];queues[_0x253725[_0xbc87('0x53')]][_0xbc87('0x9')]='ATTENDEDTRANSFER';}if(!_[_0xbc87('0x16')](queues[_0x253725['origtransfererlinkedid']])){if(_0x253725['transfereelinkedid']&&queues[_0x253725['transfereelinkedid']]){queues[_0x253725[_0xbc87('0x54')]]['queuecallerenterreason']=0x1;queues[_0x253725[_0xbc87('0x48')]]=_[_0xbc87('0x55')](queues[_0x253725[_0xbc87('0x54')]]);queues[_0x253725[_0xbc87('0x48')]][_0xbc87('0x10')]=_0x253725['transfertargetuniqueid'];queues[_0x253725[_0xbc87('0x48')]][_0xbc87('0x1f')]=0x2;queues[_0x253725[_0xbc87('0x48')]][_0xbc87('0x56')]=queues[_0x253725['secondtransfererlinkedid']][_0xbc87('0x56')];queues[_0x253725[_0xbc87('0x48')]][_0xbc87('0x57')]=queues[_0x253725[_0xbc87('0x53')]][_0xbc87('0x57')];queues[_0x253725[_0xbc87('0x48')]][_0xbc87('0x36')]=utils['now']();queues[_0x253725[_0xbc87('0x48')]][_0xbc87('0x18')]=utils['now']();queues[_0x253725[_0xbc87('0x48')]]['holdtime']=0x0;queues[_0x253725[_0xbc87('0x48')]][_0xbc87('0x58')]=0x0;utils['info'](util[_0xbc87('0x4')](_0xbc87('0x59'),_0x253725[_0xbc87('0x50')],queues[_0x253725[_0xbc87('0x48')]][_0xbc87('0x1d')],queues[_0x253725[_0xbc87('0x48')]][_0xbc87('0x56')],queues[_0x253725['transfereeuniqueid']][_0xbc87('0x57')]));}else{utils[_0xbc87('0x3')](util[_0xbc87('0x4')](_0xbc87('0x5a'),_0x253725[_0xbc87('0x50')],queues[_0x253725['origtransfererlinkedid']][_0xbc87('0x1d')],_0x253725['secondtransfererlinkedid']));queues[_0x253725[_0xbc87('0x5b')]][_0xbc87('0x10')]=_0x253725[_0xbc87('0x53')];}}}else if(_0x253725[_0xbc87('0x5c')]==_0x253725[_0xbc87('0x53')]){if(!_[_0xbc87('0x16')](queues[_0x253725[_0xbc87('0x5b')]])){utils[_0xbc87('0x3')](util[_0xbc87('0x4')](_0xbc87('0x5d'),_0x253725[_0xbc87('0x50')],queues[_0x253725[_0xbc87('0x5b')]][_0xbc87('0x1d')],_0x253725['secondtransfereruniqueid'],_0x253725['secondtransfererexten']));queues[_0x253725['origtransfererlinkedid']][_0xbc87('0x49')]=!![];queues[_0x253725[_0xbc87('0x5b')]][_0xbc87('0x4a')]=_0xbc87('0x5e');queues[_0x253725[_0xbc87('0x5b')]][_0xbc87('0x4b')]=_0x253725[_0xbc87('0x5f')];queues[_0x253725[_0xbc87('0x5b')]][_0xbc87('0x60')]=_0x253725['secondtransfereruniqueid'];queues[_0x253725[_0xbc87('0x5b')]]['queuecallerexitreason']='ATTENDEDTRANSFER';}if(!_[_0xbc87('0x16')](queues[_0x253725[_0xbc87('0x53')]])){if(_0x253725[_0xbc87('0x61')]&&queues[_0x253725[_0xbc87('0x61')]]){queues[_0x253725['transfertargetlinkedid']][_0xbc87('0x1f')]=0x1;queues[_0x253725[_0xbc87('0x62')]]=_[_0xbc87('0x55')](queues[_0x253725[_0xbc87('0x61')]]);queues[_0x253725[_0xbc87('0x62')]][_0xbc87('0x10')]=_0x253725[_0xbc87('0x62')];queues[_0x253725['transfertargetuniqueid']][_0xbc87('0x1f')]=0x2;queues[_0x253725[_0xbc87('0x62')]][_0xbc87('0x56')]=queues[_0x253725[_0xbc87('0x5b')]]['calleridnum'];queues[_0x253725[_0xbc87('0x62')]]['calleridname']=queues[_0x253725[_0xbc87('0x5b')]]['calleridname'];queues[_0x253725[_0xbc87('0x62')]][_0xbc87('0x36')]=utils[_0xbc87('0x26')]();queues[_0x253725[_0xbc87('0x62')]][_0xbc87('0x18')]=utils[_0xbc87('0x26')]();queues[_0x253725['transfertargetuniqueid']][_0xbc87('0x35')]=0x0;queues[_0x253725[_0xbc87('0x62')]]['mohtime']=0x0;utils[_0xbc87('0x3')](util[_0xbc87('0x4')](_0xbc87('0x63'),_0x253725[_0xbc87('0x50')],queues[_0x253725[_0xbc87('0x62')]][_0xbc87('0x1d')],queues[_0x253725[_0xbc87('0x62')]][_0xbc87('0x10')],queues[_0x253725[_0xbc87('0x62')]][_0xbc87('0x56')],queues[_0x253725[_0xbc87('0x62')]]['calleridname']));}else{utils['info'](util[_0xbc87('0x4')](_0xbc87('0x5a'),_0x253725[_0xbc87('0x50')],queues[_0x253725['secondtransfererlinkedid']]['name'],_0x253725[_0xbc87('0x5b')]));queues[_0x253725['secondtransfererlinkedid']]['transfereduniqueid']=_0x253725[_0xbc87('0x5b')];}}}}catch(_0x35faf6){utils[_0xbc87('0x20')](util[_0xbc87('0x4')]('[%s][queues][attendedtransfer]',_0x253725[_0xbc87('0x50')]),_0x35faf6);}};exports[_0xbc87('0x64')]=function(_0x4571e1){try{if(!_['isNil'](queues[_0x4571e1[_0xbc87('0x6')]])){utils[_0xbc87('0x11')](util['format'](_0xbc87('0x65'),_0x4571e1[_0xbc87('0x6')]),_0x4571e1);queues[_0x4571e1[_0xbc87('0x6')]][_0xbc87('0x66')]=utils[_0xbc87('0x26')]();utils[_0xbc87('0x3')](util[_0xbc87('0x4')]('[%s][queues][musiconholdstop]\x20name:%s\x20musiconholdstartAt:%s',_0x4571e1['uniqueid'],queues[_0x4571e1[_0xbc87('0x6')]]['name'],queues[_0x4571e1[_0xbc87('0x6')]][_0xbc87('0x66')]));}}catch(_0x5eff36){utils[_0xbc87('0x20')](util[_0xbc87('0x4')](_0xbc87('0x65'),_0x4571e1[_0xbc87('0x6')]),_0x5eff36);}};exports[_0xbc87('0x67')]=function(_0x4fdd76){try{if(!_[_0xbc87('0x16')](queues[_0x4fdd76['uniqueid']])){if(!_[_0xbc87('0x16')](queues[_0x4fdd76['uniqueid']][_0xbc87('0x66')])){utils['debug'](util[_0xbc87('0x4')](_0xbc87('0x68'),_0x4fdd76[_0xbc87('0x6')]),_0x4fdd76);queues[_0x4fdd76[_0xbc87('0x6')]]['mohtime']+=utils[_0xbc87('0x69')](utils[_0xbc87('0x26')](),queues[_0x4fdd76[_0xbc87('0x6')]]['musiconholdstartAt']);utils[_0xbc87('0x3')](util[_0xbc87('0x4')](_0xbc87('0x6a'),_0x4fdd76[_0xbc87('0x6')],queues[_0x4fdd76['uniqueid']]['name'],queues[_0x4fdd76[_0xbc87('0x6')]][_0xbc87('0x58')]));delete queues[_0x4fdd76[_0xbc87('0x6')]][_0xbc87('0x66')];}}}catch(_0x369a4e){utils[_0xbc87('0x20')](util[_0xbc87('0x4')](_0xbc87('0x68'),_0x4fdd76[_0xbc87('0x6')]),_0x369a4e);}};
\ No newline at end of file
+var _0xfdca=['musiconholdstart','musiconholdstartAt','[%s][queues][musiconholdstop]\x20name:%s\x20musiconholdstartAt:%s','musiconholdstop','[%s][queues][musiconholdstop]','util','./utils','info','format','[%s][queues][writeDB]\x20channel:%s\x20queue:%s\x20lastAssignedTo:%s\x20calleridnum:%s\x20accountcode:%s\x20queuecallerexitreason:%s','channel','queue','lastAssignedTo','accountcode','queuecallerexitreason','getVoiceQueueByName','then','type','request','CreateVoiceQueueReport','transfereduniqueid','uniqueid','queuecallerjoin','debug','[%s][queues][queuecallerjoin]','[%s][queues][queuecallerjoin]\x20name:%s\x20position:%s','position','assign','error','hangup','isNil','queuecallerabandon','queuecallercompleteAt','now','COMPLETEDBYAGENT','[%s][queues][hangup]\x20name:%s\x20queuecallerexitreason:%s','name','[%s][queues][hangup]\x20name:%s\x20transfereduniqueid:%s','queuecallerenterreason','[%s][queues][hangup]','[%s][queues][varset]','queuestatus','toUpperCase','CONTINUE','queuecallerexit','queuecallerexitAt','value','[%s][queues][varset]\x20name:%s\x20variable:queuestatus\x20value:%s\x20queuecallerexitreason:%s','queueposition','queuecallerabandonAt','EXITWITHKEY','[%s][queues][varset]\x20name:%s\x20variable:queueposition\x20value:%s\x20queuecallerexitreason:%s','ABANDONED','[%s][queues][queuecallerabandon]','queuecallerleave','[%s][queues][queuecallerleave]','[%s][queues][queuecallerleave]\x20name:%s\x20connectedlinenum:%s\x20connectedlinename:%s','connectedlinenum','queuecallerleaveAt','holdtime','diffTime','queuecallerjoinAt','count','connectedlinename','[%s][queues][agentconnect]','[%s][queues][agentconnect]\x20name:%s\x20agent:%s\x20accountcode:%s','membername','destaccountcode','assigned','agentcomplete','[%s][queues][agentcomplete]','queuecallercomplete','reason','transfer','TRANSFER','[%s][queues][agentcomplete]\x20name:%s\x20agent:%s\x20queuecallerexitreason:%s','blindtransfer','transfereeuniqueid','[%s][queues][blindtransfer]','BLIND','transferexten','extension','BLINDTRANSFER','[%s][queues][blindtransfer]\x20name:%s\x20transferuniqueid:%s\x20transferexten:%s\x20queuecallerexitreason:BLINDTRANSFER','[%s][queues][attendedtransfer]','origtransfereruniqueid','origtransfererlinkedid','[%s][queues][attendedtransfer]\x20name:%s\x20transferexten:%s\x20queuecallerexitreason:ATTENDEDTRANSFER','secondtransfererlinkedid','origtransfererexten','transfertype','ATTENDED','transferuniqueid','ATTENDEDTRANSFER','transfereelinkedid','clone','calleridnum','calleridname','mohtime','[%s][queues][attendedtransfer]\x20name:%s\x20calleridnum:%s\x20calleridname:%s','secondtransfereruniqueid','[%s][queues][attendedtransfer]\x20name:%s\x20transferuniqueid:%s\x20transferexten:%s\x20queuecallerexitreason:ATTENDEDTRANSFER','secondtransfererexten','transfertargetlinkedid','transfertargetuniqueid','[%s][queues][attendedtransfer]\x20name:%s\x20transfereduniqueid:%s\x20calleridnum:%s\x20calleridname:%s','[%s][queues][attendedtransfer]\x20name:%s\x20transfereduniqueid:%s'];(function(_0x4469d0,_0x3845b6){var _0x4c14f6=function(_0x50cd36){while(--_0x50cd36){_0x4469d0['push'](_0x4469d0['shift']());}};_0x4c14f6(++_0x3845b6);}(_0xfdca,0xdb));var _0xafdc=function(_0x4d39ab,_0x2314d2){_0x4d39ab=_0x4d39ab-0x0;var _0x4f509c=_0xfdca[_0x4d39ab];return _0x4f509c;};'use strict';var _=require('lodash');var util=require(_0xafdc('0x0'));var utils=require(_0xafdc('0x1'));var queues={};function writeDB(_0x23381c){utils[_0xafdc('0x2')](util[_0xafdc('0x3')](_0xafdc('0x4'),_0x23381c['uniqueid'],_0x23381c[_0xafdc('0x5')],_0x23381c[_0xafdc('0x6')],_0x23381c[_0xafdc('0x7')],_0x23381c['calleridnum'],_0x23381c[_0xafdc('0x8')],_0x23381c[_0xafdc('0x9')]));if(_0x23381c['queue']){utils[_0xafdc('0xa')](_0x23381c[_0xafdc('0x6')])[_0xafdc('0xb')](function(_0x2b6752){if(_0x2b6752){_0x23381c[_0xafdc('0xc')]=_0x2b6752[_0xafdc('0xc')];}utils[_0xafdc('0xd')](_0xafdc('0xe'),_0x23381c);});}else{utils[_0xafdc('0xd')](_0xafdc('0xe'),_0x23381c);}if(_0x23381c['transfereduniqueid']){delete queues[_0x23381c[_0xafdc('0xf')]];}else{delete queues[_0x23381c[_0xafdc('0x10')]];}}exports[_0xafdc('0x11')]=function(_0x108e01){try{utils[_0xafdc('0x12')](util['format'](_0xafdc('0x13'),_0x108e01[_0xafdc('0x10')]),_0x108e01);utils[_0xafdc('0x2')](util[_0xafdc('0x3')](_0xafdc('0x14'),_0x108e01[_0xafdc('0x10')],_0x108e01[_0xafdc('0x6')],_0x108e01[_0xafdc('0x15')]));queues[_0x108e01['uniqueid']]=_[_0xafdc('0x16')](_0x108e01,{'originalposition':_0x108e01[_0xafdc('0x15')],'queuecallerjoinAt':utils['now'](),'mohtime':0x0});}catch(_0x4e92f4){utils[_0xafdc('0x17')](util[_0xafdc('0x3')]('[%s][queues][queuecallerjoin]',_0x108e01['uniqueid']),_0x4e92f4);}};exports[_0xafdc('0x18')]=function(_0x31eb82){try{if(!_[_0xafdc('0x19')](queues[_0x31eb82[_0xafdc('0x10')]])){utils['debug'](util[_0xafdc('0x3')]('[%s][queues][hangup]',_0x31eb82[_0xafdc('0x10')]),_0x31eb82);if(queues[_0x31eb82[_0xafdc('0x10')]]['queuecallerleaveAt']){if(!queues[_0x31eb82[_0xafdc('0x10')]][_0xafdc('0x1a')]&&!queues[_0x31eb82['uniqueid']]['queuecallerexit']){queues[_0x31eb82['uniqueid']]['queuecallercomplete']=!![];queues[_0x31eb82[_0xafdc('0x10')]][_0xafdc('0x1b')]=utils[_0xafdc('0x1c')]();queues[_0x31eb82['uniqueid']]['queuecallerexitreason']=_0xafdc('0x1d');}utils[_0xafdc('0x2')](util['format'](_0xafdc('0x1e'),_0x31eb82[_0xafdc('0x10')],queues[_0x31eb82[_0xafdc('0x10')]][_0xafdc('0x1f')],queues[_0x31eb82[_0xafdc('0x10')]][_0xafdc('0x9')]));writeDB(queues[_0x31eb82[_0xafdc('0x10')]]);}else if(queues[_0x31eb82[_0xafdc('0x10')]][_0xafdc('0xf')]){utils[_0xafdc('0x2')](util[_0xafdc('0x3')](_0xafdc('0x20'),_0x31eb82[_0xafdc('0x10')],queues[_0x31eb82['uniqueid']][_0xafdc('0x1f')],queues[_0x31eb82[_0xafdc('0x10')]]['transfereduniqueid']));queues[queues[_0x31eb82[_0xafdc('0x10')]]['transfereduniqueid']]=queues[_0x31eb82[_0xafdc('0x10')]];queues[queues[_0x31eb82[_0xafdc('0x10')]][_0xafdc('0xf')]][_0xafdc('0x21')]=0x2;delete queues[_0x31eb82[_0xafdc('0x10')]];}}}catch(_0x1d4449){utils[_0xafdc('0x17')](util['format'](_0xafdc('0x22'),_0x31eb82[_0xafdc('0x10')]),_0x1d4449);}};exports['varset']=function(_0x2fba08){try{utils[_0xafdc('0x12')](util[_0xafdc('0x3')](_0xafdc('0x23'),_0x2fba08['uniqueid']),_0x2fba08);if(!_[_0xafdc('0x19')](_0x2fba08['variable'][_0xafdc('0x24')])&&_0x2fba08['value'][_0xafdc('0x25')]()!==_0xafdc('0x26')){if(!_[_0xafdc('0x19')](queues[_0x2fba08[_0xafdc('0x10')]])){queues[_0x2fba08[_0xafdc('0x10')]][_0xafdc('0x1a')]=![];queues[_0x2fba08['uniqueid']]['queuecallerabandonAt']=null;queues[_0x2fba08[_0xafdc('0x10')]][_0xafdc('0x27')]=!![];queues[_0x2fba08[_0xafdc('0x10')]][_0xafdc('0x28')]=utils[_0xafdc('0x1c')]();queues[_0x2fba08[_0xafdc('0x10')]][_0xafdc('0x9')]=_0x2fba08[_0xafdc('0x29')][_0xafdc('0x25')]();utils['info'](util[_0xafdc('0x3')](_0xafdc('0x2a'),_0x2fba08[_0xafdc('0x10')],queues[_0x2fba08['uniqueid']][_0xafdc('0x1f')],_0x2fba08[_0xafdc('0x29')],queues[_0x2fba08['uniqueid']][_0xafdc('0x9')]));writeDB(queues[_0x2fba08[_0xafdc('0x10')]]);}}else if(!_[_0xafdc('0x19')](_0x2fba08['variable'][_0xafdc('0x2b')])){if(!_[_0xafdc('0x19')](queues[_0x2fba08['uniqueid']])&&!queues[_0x2fba08[_0xafdc('0x10')]][_0xafdc('0x1a')]){queues[_0x2fba08[_0xafdc('0x10')]]['queuecallerabandon']=![];queues[_0x2fba08[_0xafdc('0x10')]][_0xafdc('0x2c')]=null;queues[_0x2fba08[_0xafdc('0x10')]][_0xafdc('0x27')]=!![];queues[_0x2fba08[_0xafdc('0x10')]][_0xafdc('0x28')]=utils[_0xafdc('0x1c')]();queues[_0x2fba08[_0xafdc('0x10')]][_0xafdc('0x9')]=_0xafdc('0x2d');utils[_0xafdc('0x2')](util[_0xafdc('0x3')](_0xafdc('0x2e'),_0x2fba08[_0xafdc('0x10')],queues[_0x2fba08[_0xafdc('0x10')]][_0xafdc('0x1f')],_0x2fba08[_0xafdc('0x29')],queues[_0x2fba08[_0xafdc('0x10')]][_0xafdc('0x9')]));}}}catch(_0x39bd00){utils[_0xafdc('0x17')](util['format'](_0xafdc('0x23'),_0x2fba08['uniqueid']),_0x39bd00);}};exports[_0xafdc('0x1a')]=function(_0x53ca97){try{if(!_['isNil'](queues[_0x53ca97[_0xafdc('0x10')]])){utils[_0xafdc('0x12')](util[_0xafdc('0x3')]('[%s][queues][queuecallerabandon]',_0x53ca97[_0xafdc('0x10')]),_0x53ca97);queues[_0x53ca97[_0xafdc('0x10')]][_0xafdc('0x27')]=![];queues[_0x53ca97[_0xafdc('0x10')]]['queuecallerexitAt']=null;queues[_0x53ca97[_0xafdc('0x10')]][_0xafdc('0x1a')]=!![];queues[_0x53ca97['uniqueid']][_0xafdc('0x2c')]=utils[_0xafdc('0x1c')]();queues[_0x53ca97[_0xafdc('0x10')]]['queuecallerexitreason']=_0xafdc('0x2f');utils[_0xafdc('0x2')](util[_0xafdc('0x3')]('[%s][queues][queuecallerabandon]\x20name:%s\x20queuecallerexitreason:%s',_0x53ca97[_0xafdc('0x10')],queues[_0x53ca97[_0xafdc('0x10')]][_0xafdc('0x1f')],queues[_0x53ca97['uniqueid']]['queuecallerexitreason']));}}catch(_0x239229){utils[_0xafdc('0x17')](util[_0xafdc('0x3')](_0xafdc('0x30'),_0x53ca97[_0xafdc('0x10')]),_0x239229);}};exports[_0xafdc('0x31')]=function(_0x367568){try{if(!_['isNil'](queues[_0x367568[_0xafdc('0x10')]])){utils[_0xafdc('0x12')](util[_0xafdc('0x3')](_0xafdc('0x32'),_0x367568[_0xafdc('0x10')]),_0x367568);utils[_0xafdc('0x2')](util['format'](_0xafdc('0x33'),_0x367568[_0xafdc('0x10')],queues[_0x367568[_0xafdc('0x10')]]['name'],_0x367568[_0xafdc('0x34')],_0x367568['connectedlinename']));queues[_0x367568[_0xafdc('0x10')]][_0xafdc('0x31')]=!![];queues[_0x367568[_0xafdc('0x10')]][_0xafdc('0x35')]=utils['now']();queues[_0x367568[_0xafdc('0x10')]][_0xafdc('0x36')]=utils[_0xafdc('0x37')](queues[_0x367568[_0xafdc('0x10')]][_0xafdc('0x35')],queues[_0x367568['uniqueid']][_0xafdc('0x38')]);queues[_0x367568[_0xafdc('0x10')]][_0xafdc('0x15')]=_0x367568[_0xafdc('0x15')];queues[_0x367568['uniqueid']][_0xafdc('0x39')]=_0x367568[_0xafdc('0x39')];queues[_0x367568[_0xafdc('0x10')]][_0xafdc('0x34')]=_0x367568[_0xafdc('0x34')];queues[_0x367568[_0xafdc('0x10')]][_0xafdc('0x3a')]=_0x367568[_0xafdc('0x3a')];}}catch(_0x22a475){utils[_0xafdc('0x17')](util[_0xafdc('0x3')](_0xafdc('0x32'),_0x367568[_0xafdc('0x10')]),_0x22a475);}};exports['agentconnect']=function(_0xe1ecd3){try{if(!_[_0xafdc('0x19')](queues[_0xe1ecd3[_0xafdc('0x10')]])){utils[_0xafdc('0x12')](util[_0xafdc('0x3')](_0xafdc('0x3b'),_0xe1ecd3[_0xafdc('0x10')]),_0xe1ecd3);utils['info'](util[_0xafdc('0x3')](_0xafdc('0x3c'),_0xe1ecd3['uniqueid'],queues[_0xe1ecd3[_0xafdc('0x10')]][_0xafdc('0x1f')],_0xe1ecd3[_0xafdc('0x3d')],_0xe1ecd3[_0xafdc('0x3e')]));queues[_0xe1ecd3[_0xafdc('0x10')]][_0xafdc('0x1a')]=![];queues[_0xe1ecd3[_0xafdc('0x10')]]['queuecallerabandon']=![];queues[_0xe1ecd3[_0xafdc('0x10')]][_0xafdc('0x2c')]=null;queues[_0xe1ecd3[_0xafdc('0x10')]][_0xafdc('0x27')]=![];queues[_0xe1ecd3['uniqueid']][_0xafdc('0x9')]=null;queues[_0xe1ecd3[_0xafdc('0x10')]][_0xafdc('0x28')]=null;queues[_0xe1ecd3[_0xafdc('0x10')]][_0xafdc('0x3f')]=!![];queues[_0xe1ecd3['uniqueid']][_0xafdc('0x8')]=_0xe1ecd3[_0xafdc('0x3e')];queues[_0xe1ecd3['uniqueid']]['lastAssignedTo']=_0xe1ecd3[_0xafdc('0x3d')];}}catch(_0x2d2fc1){utils[_0xafdc('0x17')](util[_0xafdc('0x3')](_0xafdc('0x3b'),_0xe1ecd3['uniqueid']),_0x2d2fc1);}};exports[_0xafdc('0x40')]=function(_0x45f3cf){try{if(!_[_0xafdc('0x19')](queues[_0x45f3cf[_0xafdc('0x10')]])){if(queues[_0x45f3cf[_0xafdc('0x10')]][_0xafdc('0x35')]){utils[_0xafdc('0x12')](util['format'](_0xafdc('0x41'),_0x45f3cf[_0xafdc('0x10')]),_0x45f3cf);queues[_0x45f3cf[_0xafdc('0x10')]][_0xafdc('0x1a')]=![];queues[_0x45f3cf['uniqueid']][_0xafdc('0x1a')]=![];queues[_0x45f3cf[_0xafdc('0x10')]][_0xafdc('0x2c')]=null;queues[_0x45f3cf['uniqueid']]['queuecallerexit']=![];queues[_0x45f3cf[_0xafdc('0x10')]][_0xafdc('0x28')]=null;queues[_0x45f3cf['uniqueid']][_0xafdc('0x3f')]=!![];queues[_0x45f3cf[_0xafdc('0x10')]]['lastAssignedTo']=_0x45f3cf['membername'];queues[_0x45f3cf['uniqueid']][_0xafdc('0x42')]=!![];queues[_0x45f3cf[_0xafdc('0x10')]][_0xafdc('0x1b')]=utils['now']();if(_0x45f3cf[_0xafdc('0x43')]==_0xafdc('0x44')){if(!queues[_0x45f3cf[_0xafdc('0x10')]][_0xafdc('0x44')]){queues[_0x45f3cf['uniqueid']]['queuecallerexitreason']=_0xafdc('0x45');}}else{queues[_0x45f3cf[_0xafdc('0x10')]][_0xafdc('0x9')]='COMPLETEDBY'+_0x45f3cf[_0xafdc('0x43')][_0xafdc('0x25')]();}utils['info'](util[_0xafdc('0x3')](_0xafdc('0x46'),_0x45f3cf[_0xafdc('0x10')],queues[_0x45f3cf[_0xafdc('0x10')]][_0xafdc('0x1f')],_0x45f3cf[_0xafdc('0x3d')],queues[_0x45f3cf[_0xafdc('0x10')]][_0xafdc('0x9')]));writeDB(queues[_0x45f3cf['uniqueid']]);}}}catch(_0x3a3a91){utils[_0xafdc('0x17')](util[_0xafdc('0x3')](_0xafdc('0x41'),_0x45f3cf[_0xafdc('0x10')]),_0x3a3a91);}};exports[_0xafdc('0x47')]=function(_0x2af308){try{if(!_[_0xafdc('0x19')](queues[_0x2af308[_0xafdc('0x48')]])){utils[_0xafdc('0x12')](util['format'](_0xafdc('0x49'),_0x2af308[_0xafdc('0x10')]),_0x2af308);queues[_0x2af308[_0xafdc('0x48')]]['transfer']=!![];queues[_0x2af308['transfereeuniqueid']]['transfertype']=_0xafdc('0x4a');queues[_0x2af308['transfereeuniqueid']][_0xafdc('0x4b')]=_0x2af308[_0xafdc('0x4c')];queues[_0x2af308['transfereeuniqueid']]['transferuniqueid']=_0x2af308[_0xafdc('0x48')];queues[_0x2af308[_0xafdc('0x48')]][_0xafdc('0x9')]=_0xafdc('0x4d');utils['info'](util[_0xafdc('0x3')](_0xafdc('0x4e'),_0x2af308[_0xafdc('0x10')],queues[_0x2af308['transfereeuniqueid']][_0xafdc('0x1f')],_0x2af308[_0xafdc('0x48')],_0x2af308['extension']));}}catch(_0x3a297a){utils[_0xafdc('0x17')](util[_0xafdc('0x3')]('[%s][queues][blindtransfer]',_0x2af308[_0xafdc('0x10')]),_0x3a297a);}};exports['attendedtransfer']=function(_0x40e20f){try{utils[_0xafdc('0x12')](util[_0xafdc('0x3')](_0xafdc('0x4f'),_0x40e20f[_0xafdc('0x50')]),_0x40e20f);if(_0x40e20f[_0xafdc('0x50')]==_0x40e20f[_0xafdc('0x51')]){if(!_[_0xafdc('0x19')](queues[_0x40e20f['secondtransfererlinkedid']])){utils['info'](util[_0xafdc('0x3')](_0xafdc('0x52'),_0x40e20f[_0xafdc('0x50')],queues[_0x40e20f[_0xafdc('0x53')]][_0xafdc('0x1f')],_0x40e20f[_0xafdc('0x54')]));queues[_0x40e20f[_0xafdc('0x53')]]['transfer']=!![];queues[_0x40e20f['secondtransfererlinkedid']][_0xafdc('0x55')]=_0xafdc('0x56');queues[_0x40e20f[_0xafdc('0x53')]][_0xafdc('0x4b')]=_0x40e20f['origtransfererexten'];queues[_0x40e20f['secondtransfererlinkedid']][_0xafdc('0x57')]=_0x40e20f['origtransfereruniqueid'];queues[_0x40e20f[_0xafdc('0x53')]][_0xafdc('0x9')]=_0xafdc('0x58');}if(!_[_0xafdc('0x19')](queues[_0x40e20f[_0xafdc('0x51')]])){if(_0x40e20f['transfereelinkedid']&&queues[_0x40e20f[_0xafdc('0x59')]]){queues[_0x40e20f[_0xafdc('0x59')]][_0xafdc('0x21')]=0x1;queues[_0x40e20f['transfereeuniqueid']]=_[_0xafdc('0x5a')](queues[_0x40e20f[_0xafdc('0x59')]]);queues[_0x40e20f[_0xafdc('0x48')]]['transfereduniqueid']=_0x40e20f['transfertargetuniqueid'];queues[_0x40e20f['transfereeuniqueid']][_0xafdc('0x21')]=0x2;queues[_0x40e20f[_0xafdc('0x48')]][_0xafdc('0x5b')]=queues[_0x40e20f[_0xafdc('0x53')]][_0xafdc('0x5b')];queues[_0x40e20f[_0xafdc('0x48')]][_0xafdc('0x5c')]=queues[_0x40e20f[_0xafdc('0x53')]][_0xafdc('0x5c')];queues[_0x40e20f[_0xafdc('0x48')]]['queuecallerjoinAt']=utils[_0xafdc('0x1c')]();queues[_0x40e20f[_0xafdc('0x48')]][_0xafdc('0x35')]=utils[_0xafdc('0x1c')]();queues[_0x40e20f[_0xafdc('0x48')]][_0xafdc('0x36')]=0x0;queues[_0x40e20f[_0xafdc('0x48')]][_0xafdc('0x5d')]=0x0;utils['info'](util[_0xafdc('0x3')](_0xafdc('0x5e'),_0x40e20f['origtransfereruniqueid'],queues[_0x40e20f[_0xafdc('0x48')]][_0xafdc('0x1f')],queues[_0x40e20f[_0xafdc('0x48')]][_0xafdc('0x5b')],queues[_0x40e20f[_0xafdc('0x48')]]['calleridname']));}else{utils[_0xafdc('0x2')](util[_0xafdc('0x3')]('[%s][queues][attendedtransfer]\x20name:%s\x20transfereduniqueid:%s',_0x40e20f['origtransfereruniqueid'],queues[_0x40e20f[_0xafdc('0x51')]]['name'],_0x40e20f[_0xafdc('0x53')]));queues[_0x40e20f[_0xafdc('0x51')]]['transfereduniqueid']=_0x40e20f[_0xafdc('0x53')];}}}else if(_0x40e20f[_0xafdc('0x5f')]==_0x40e20f[_0xafdc('0x53')]){if(!_[_0xafdc('0x19')](queues[_0x40e20f[_0xafdc('0x51')]])){utils[_0xafdc('0x2')](util[_0xafdc('0x3')](_0xafdc('0x60'),_0x40e20f[_0xafdc('0x50')],queues[_0x40e20f[_0xafdc('0x51')]]['name'],_0x40e20f[_0xafdc('0x5f')],_0x40e20f['secondtransfererexten']));queues[_0x40e20f['origtransfererlinkedid']][_0xafdc('0x44')]=!![];queues[_0x40e20f[_0xafdc('0x51')]][_0xafdc('0x55')]='ATTENDED';queues[_0x40e20f[_0xafdc('0x51')]][_0xafdc('0x4b')]=_0x40e20f[_0xafdc('0x61')];queues[_0x40e20f['origtransfererlinkedid']][_0xafdc('0x57')]=_0x40e20f['secondtransfereruniqueid'];queues[_0x40e20f[_0xafdc('0x51')]][_0xafdc('0x9')]='ATTENDEDTRANSFER';}if(!_[_0xafdc('0x19')](queues[_0x40e20f[_0xafdc('0x53')]])){if(_0x40e20f[_0xafdc('0x62')]&&queues[_0x40e20f['transfertargetlinkedid']]){queues[_0x40e20f[_0xafdc('0x62')]][_0xafdc('0x21')]=0x1;queues[_0x40e20f[_0xafdc('0x63')]]=_[_0xafdc('0x5a')](queues[_0x40e20f[_0xafdc('0x62')]]);queues[_0x40e20f[_0xafdc('0x63')]]['transfereduniqueid']=_0x40e20f['transfertargetuniqueid'];queues[_0x40e20f[_0xafdc('0x63')]][_0xafdc('0x21')]=0x2;queues[_0x40e20f['transfertargetuniqueid']][_0xafdc('0x5b')]=queues[_0x40e20f[_0xafdc('0x51')]][_0xafdc('0x5b')];queues[_0x40e20f['transfertargetuniqueid']]['calleridname']=queues[_0x40e20f[_0xafdc('0x51')]][_0xafdc('0x5c')];queues[_0x40e20f[_0xafdc('0x63')]][_0xafdc('0x38')]=utils[_0xafdc('0x1c')]();queues[_0x40e20f[_0xafdc('0x63')]][_0xafdc('0x35')]=utils[_0xafdc('0x1c')]();queues[_0x40e20f['transfertargetuniqueid']]['holdtime']=0x0;queues[_0x40e20f[_0xafdc('0x63')]]['mohtime']=0x0;utils['info'](util[_0xafdc('0x3')](_0xafdc('0x64'),_0x40e20f[_0xafdc('0x50')],queues[_0x40e20f[_0xafdc('0x63')]]['name'],queues[_0x40e20f['transfertargetuniqueid']][_0xafdc('0xf')],queues[_0x40e20f[_0xafdc('0x63')]]['calleridnum'],queues[_0x40e20f[_0xafdc('0x63')]][_0xafdc('0x5c')]));}else{utils['info'](util[_0xafdc('0x3')](_0xafdc('0x65'),_0x40e20f[_0xafdc('0x50')],queues[_0x40e20f[_0xafdc('0x53')]][_0xafdc('0x1f')],_0x40e20f[_0xafdc('0x51')]));queues[_0x40e20f[_0xafdc('0x53')]][_0xafdc('0xf')]=_0x40e20f['origtransfererlinkedid'];}}}}catch(_0x2dfc14){utils[_0xafdc('0x17')](util[_0xafdc('0x3')](_0xafdc('0x4f'),_0x40e20f[_0xafdc('0x50')]),_0x2dfc14);}};exports[_0xafdc('0x66')]=function(_0x1581dc){try{if(!_[_0xafdc('0x19')](queues[_0x1581dc[_0xafdc('0x10')]])){utils[_0xafdc('0x12')](util[_0xafdc('0x3')]('[%s][queues][musiconholdstart]',_0x1581dc[_0xafdc('0x10')]),_0x1581dc);queues[_0x1581dc[_0xafdc('0x10')]][_0xafdc('0x67')]=utils['now']();utils[_0xafdc('0x2')](util[_0xafdc('0x3')](_0xafdc('0x68'),_0x1581dc[_0xafdc('0x10')],queues[_0x1581dc[_0xafdc('0x10')]]['name'],queues[_0x1581dc[_0xafdc('0x10')]][_0xafdc('0x67')]));}}catch(_0x3d31bc){utils[_0xafdc('0x17')](util[_0xafdc('0x3')]('[%s][queues][musiconholdstart]',_0x1581dc[_0xafdc('0x10')]),_0x3d31bc);}};exports[_0xafdc('0x69')]=function(_0x337a8b){try{if(!_['isNil'](queues[_0x337a8b['uniqueid']])){if(!_[_0xafdc('0x19')](queues[_0x337a8b[_0xafdc('0x10')]][_0xafdc('0x67')])){utils['debug'](util[_0xafdc('0x3')](_0xafdc('0x6a'),_0x337a8b[_0xafdc('0x10')]),_0x337a8b);queues[_0x337a8b[_0xafdc('0x10')]]['mohtime']+=utils[_0xafdc('0x37')](utils[_0xafdc('0x1c')](),queues[_0x337a8b[_0xafdc('0x10')]][_0xafdc('0x67')]);utils['info'](util[_0xafdc('0x3')]('[%s][queues][musiconholdstop]\x20name:%s\x20mohtime:%s',_0x337a8b['uniqueid'],queues[_0x337a8b[_0xafdc('0x10')]][_0xafdc('0x1f')],queues[_0x337a8b[_0xafdc('0x10')]][_0xafdc('0x5d')]));delete queues[_0x337a8b[_0xafdc('0x10')]][_0xafdc('0x67')];}}}catch(_0x3ec4ee){utils[_0xafdc('0x17')](util[_0xafdc('0x3')](_0xafdc('0x6a'),_0x337a8b['uniqueid']),_0x3ec4ee);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xda96=['[%s][recordings][queuecallerjoin]','[%s][recordings][queuecallerjoin]\x20queue:%s','queue','blindtransfer','[%s][recordings][blindtransfer]','[%s][recordings][blindtransfer]\x20transferercalleridnum:%s\x20transferercalleridname:%s\x20transfereecalleridnum:%s\x20transfereecalleridname:%s','transferercalleridnum','transferercalleridname','transfereecalleridnum','transfereecalleridname','transfereruniqueid','recording','util','./utils','./transfers.controller','info','format','[%s][recordings][writeDB]','uniqueid','blinds','transfereeuniqueid','accountcode','getUserByInternal','then','membername','request','CreateVoiceRecording','newchannel','debug','[%s][recordings][newchannel]','linkedid','context','exten','[%s][recordings][newstate]','[%s][recordings][newstate]\x20context:%s\x20channel:%s','channel','transfer','[%s][recordings][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s','error','isNil','variable','[%s][recordings][varset]','value','endsWith','replace','.wav49','monitors','push','hangup','[%s][recordings][hangup]','[%s][recordings][hangup]\x20calleridnum:%s\x20calleridname:%s\x20reason:%s','cause-txt','calleridnum','calleridname','connectedlinename','type','outbound','connectedlinenum','newexten','[%s][recordings][newexten]','application','toLowerCase','set','appdata','cdr','split','lastIndexOf','queuecallerjoin'];(function(_0x2d554f,_0x284acd){var _0x579473=function(_0x4f155c){while(--_0x4f155c){_0x2d554f['push'](_0x2d554f['shift']());}};_0x579473(++_0x284acd);}(_0xda96,0x11c));var _0x6da9=function(_0x242152,_0x2f7b09){_0x242152=_0x242152-0x0;var _0x167a0d=_0xda96[_0x242152];return _0x167a0d;};'use strict';var _=require('lodash');var util=require(_0x6da9('0x0'));var utils=require(_0x6da9('0x1'));var transfers=require(_0x6da9('0x2'));var recordings={};function writeDB(_0x596ac3){var _0x4d5648;utils[_0x6da9('0x3')](util[_0x6da9('0x4')](_0x6da9('0x5'),_0x596ac3[_0x6da9('0x6')]));if(transfers[_0x6da9('0x7')][_0x596ac3[_0x6da9('0x6')]]){_0x4d5648=_0x596ac3[_0x6da9('0x6')];_0x596ac3['uniqueid']=transfers['blinds'][_0x596ac3['uniqueid']][_0x6da9('0x8')];}if(_0x596ac3[_0x6da9('0x9')]){utils[_0x6da9('0xa')](_0x596ac3[_0x6da9('0x9')])[_0x6da9('0xb')](function(_0x150181){if(_0x150181){_0x596ac3[_0x6da9('0xc')]=_0x150181['name'];_0x596ac3['UserId']=_0x150181['id'];}utils[_0x6da9('0xd')]('CreateVoiceRecording',_0x596ac3);});}else{utils[_0x6da9('0xd')](_0x6da9('0xe'),_0x596ac3);}if(_0x4d5648)delete transfers[_0x6da9('0x7')][_0x4d5648];}exports[_0x6da9('0xf')]=function(_0x1e376b){try{utils[_0x6da9('0x10')](util[_0x6da9('0x4')](_0x6da9('0x11'),_0x1e376b[_0x6da9('0x6')]),_0x1e376b);if(_0x1e376b[_0x6da9('0x6')]==_0x1e376b[_0x6da9('0x12')]){utils[_0x6da9('0x3')](util[_0x6da9('0x4')]('[%s][recordings][newchannel]\x20context:%s\x20exten:%s',_0x1e376b[_0x6da9('0x6')],_0x1e376b[_0x6da9('0x13')],_0x1e376b[_0x6da9('0x14')]));recordings[_0x1e376b[_0x6da9('0x6')]]={'uniqueid':_0x1e376b[_0x6da9('0x6')],'accountcode':_0x1e376b['accountcode'],'exten':_0x1e376b['exten'],'context':_0x1e376b[_0x6da9('0x13')],'channel':_0x1e376b['channel'],'monitors':[]};}}catch(_0x2887da){utils['error'](util[_0x6da9('0x4')]('[%s][recordings][newchannel]',_0x1e376b[_0x6da9('0x6')]),_0x2887da);}};exports['newstate']=function(_0x22c9fb){try{utils[_0x6da9('0x10')](util[_0x6da9('0x4')](_0x6da9('0x15'),_0x22c9fb[_0x6da9('0x6')]),_0x22c9fb);if(!_['isNil'](recordings[_0x22c9fb[_0x6da9('0x6')]])&&_0x22c9fb['channelstate']==0x6){utils[_0x6da9('0x3')](util[_0x6da9('0x4')](_0x6da9('0x16'),_0x22c9fb[_0x6da9('0x6')],_0x22c9fb['context'],_0x22c9fb[_0x6da9('0x17')]));}else if(!_['isNil'](recordings[_0x22c9fb['linkedid']])&&_0x22c9fb['channelstate']==0x6&&_0x22c9fb['context']!=_0x6da9('0x18')){utils['info'](util[_0x6da9('0x4')](_0x6da9('0x19'),_0x22c9fb['uniqueid'],_0x22c9fb[_0x6da9('0x12')],_0x22c9fb[_0x6da9('0x13')],_0x22c9fb[_0x6da9('0x17')]));recordings[_0x22c9fb[_0x6da9('0x12')]][_0x6da9('0x9')]=_0x22c9fb[_0x6da9('0x9')];}}catch(_0x3a6acd){utils[_0x6da9('0x1a')](util[_0x6da9('0x4')](_0x6da9('0x15'),_0x22c9fb['uniqueid']),_0x3a6acd);}};exports['varset']=function(_0x388f46){try{if(!_[_0x6da9('0x1b')](_0x388f46[_0x6da9('0x1c')])&&!_[_0x6da9('0x1b')](_0x388f46[_0x6da9('0x1c')]['mixmonitor_filename'])){utils[_0x6da9('0x10')](util[_0x6da9('0x4')](_0x6da9('0x1d'),_0x388f46[_0x6da9('0x6')]),_0x388f46);utils[_0x6da9('0x3')](util['format']('[%s][recordings][varset]\x20variable:%s\x20value:%s',_0x388f46[_0x6da9('0x6')],_0x388f46[_0x6da9('0x1c')],_0x388f46[_0x6da9('0x1e')]));if(_[_0x6da9('0x1f')](_0x388f46[_0x6da9('0x1e')],'.wav49')){_0x388f46[_0x6da9('0x1e')]=_0x388f46['value'][_0x6da9('0x20')](_0x6da9('0x21'),'.WAV');}if(recordings[_0x388f46[_0x6da9('0x12')]]){var _0x400ffc=_['find'](recordings[_0x388f46['linkedid']]['monitors'],{'value':_0x388f46[_0x6da9('0x1e')]});if(_['isNil'](_0x400ffc)){recordings[_0x388f46['linkedid']][_0x6da9('0x22')][_0x6da9('0x23')]({'value':_0x388f46[_0x6da9('0x1e')]});}}}}catch(_0x2f6389){utils[_0x6da9('0x1a')](util['format'](_0x6da9('0x1d'),_0x388f46[_0x6da9('0x6')]),_0x2f6389);}};exports[_0x6da9('0x24')]=function(_0x44fd69){try{if(!_[_0x6da9('0x1b')](recordings[_0x44fd69['uniqueid']])){utils[_0x6da9('0x10')](util['format'](_0x6da9('0x25'),_0x44fd69[_0x6da9('0x6')]),_0x44fd69);utils['info'](util[_0x6da9('0x4')](_0x6da9('0x26'),_0x44fd69[_0x6da9('0x6')],_0x44fd69['calleridnum'],_0x44fd69['calleridname'],_0x44fd69[_0x6da9('0x27')]));recordings[_0x44fd69[_0x6da9('0x6')]][_0x6da9('0x28')]=_0x44fd69['calleridnum'];recordings[_0x44fd69[_0x6da9('0x6')]][_0x6da9('0x29')]=_0x44fd69['calleridname'];recordings[_0x44fd69[_0x6da9('0x6')]]['connectedlinenum']=_0x44fd69['connectedlinenum'];recordings[_0x44fd69['uniqueid']][_0x6da9('0x2a')]=_0x44fd69[_0x6da9('0x2a')];if(recordings[_0x44fd69['uniqueid']][_0x6da9('0x2b')]==_0x6da9('0x2c')&&recordings[_0x44fd69[_0x6da9('0x6')]][_0x6da9('0x9')]){recordings[_0x44fd69[_0x6da9('0x6')]][_0x6da9('0x2d')]=recordings[_0x44fd69[_0x6da9('0x6')]][_0x6da9('0x9')];recordings[_0x44fd69['uniqueid']][_0x6da9('0x2a')]='';}recordings[_0x44fd69[_0x6da9('0x6')]][_0x6da9('0x22')]['forEach'](function(_0x23599f){var _0x47bf70=_['clone'](recordings[_0x44fd69[_0x6da9('0x6')]]);_0x47bf70[_0x6da9('0x1e')]=_0x23599f[_0x6da9('0x1e')];writeDB(_0x47bf70);});delete recordings[_0x44fd69[_0x6da9('0x6')]];}}catch(_0x83c1b3){utils['error'](util[_0x6da9('0x4')](_0x6da9('0x25'),_0x44fd69[_0x6da9('0x6')]),_0x83c1b3);}};exports[_0x6da9('0x2e')]=function(_0x256da5){try{if(!_[_0x6da9('0x1b')](recordings[_0x256da5[_0x6da9('0x6')]])){utils[_0x6da9('0x10')](util[_0x6da9('0x4')](_0x6da9('0x2f'),_0x256da5['uniqueid']),_0x256da5);utils[_0x6da9('0x3')](util[_0x6da9('0x4')]('[%s][recordings][newexten]\x20application:%s\x20appdata:%s',_0x256da5[_0x6da9('0x6')],_0x256da5[_0x6da9('0x30')],_0x256da5['appdata']));if(_0x256da5[_0x6da9('0x30')][_0x6da9('0x31')]()==_0x6da9('0x32')&&_['startsWith'](_0x256da5[_0x6da9('0x33')]['toLowerCase'](),_0x6da9('0x34'))){var _0x2aee81=_0x256da5[_0x6da9('0x33')][_0x6da9('0x35')]('=');var _0x49081e=_0x2aee81[0x0]['substring'](_0x2aee81[0x0][_0x6da9('0x36')]('(')+0x1,_0x2aee81[0x0]['lastIndexOf'](')'));var _0x4b10b8=_0x2aee81[0x1];recordings[_0x256da5[_0x6da9('0x6')]][_0x49081e]=_0x4b10b8;}}}catch(_0x39d32b){utils[_0x6da9('0x1a')](util[_0x6da9('0x4')](_0x6da9('0x2f'),_0x256da5['uniqueid']),_0x39d32b);}};exports[_0x6da9('0x37')]=function(_0x797f57){try{if(!_[_0x6da9('0x1b')](recordings[_0x797f57[_0x6da9('0x6')]])){utils['debug'](util[_0x6da9('0x4')](_0x6da9('0x38'),_0x797f57[_0x6da9('0x6')]),_0x797f57);utils['info'](util[_0x6da9('0x4')](_0x6da9('0x39'),_0x797f57[_0x6da9('0x6')],_0x797f57[_0x6da9('0x3a')]));recordings[_0x797f57[_0x6da9('0x6')]][_0x6da9('0x3a')]=_0x797f57[_0x6da9('0x3a')];}}catch(_0x4173b5){utils['error'](util['format'](_0x6da9('0x38'),_0x797f57[_0x6da9('0x6')]),_0x4173b5);}};exports[_0x6da9('0x3b')]=function(_0x110e96){try{utils[_0x6da9('0x10')](util[_0x6da9('0x4')](_0x6da9('0x3c'),_0x110e96[_0x6da9('0x6')]),_0x110e96);utils[_0x6da9('0x3')](util['format'](_0x6da9('0x3d'),_0x110e96[_0x6da9('0x6')],_0x110e96[_0x6da9('0x3e')],_0x110e96[_0x6da9('0x3f')],_0x110e96[_0x6da9('0x40')],_0x110e96[_0x6da9('0x41')]));if(recordings[_0x110e96['transfereruniqueid']]&&transfers[_0x6da9('0x7')][_0x110e96[_0x6da9('0x42')]]){transfers[_0x6da9('0x7')][_0x110e96[_0x6da9('0x42')]][_0x6da9('0x43')]=!![];}}catch(_0x1af17b){utils[_0x6da9('0x1a')](util['format'](_0x6da9('0x3c'),_0x110e96[_0x6da9('0x6')]),_0x1af17b);}};
\ No newline at end of file
+var _0x9927=['queuecallerjoin','[%s][recordings][queuecallerjoin]','[%s][recordings][queuecallerjoin]\x20queue:%s','queue','blindtransfer','[%s][recordings][blindtransfer]','[%s][recordings][blindtransfer]\x20transferercalleridnum:%s\x20transferercalleridname:%s\x20transfereecalleridnum:%s\x20transfereecalleridname:%s','transferercalleridnum','transferercalleridname','transfereecalleridnum','transfereecalleridname','transfereruniqueid','recording','lodash','util','./transfers.controller','info','format','[%s][recordings][writeDB]','uniqueid','blinds','transfereeuniqueid','accountcode','getUserByInternal','then','membername','name','UserId','request','CreateVoiceRecording','debug','linkedid','[%s][recordings][newchannel]\x20context:%s\x20exten:%s','context','channel','error','[%s][recordings][newchannel]','newstate','[%s][recordings][newstate]','isNil','channelstate','[%s][recordings][newstate]\x20context:%s\x20channel:%s','[%s][recordings][newstate]\x20linkedid:%s\x20context:%s\x20channel:%s','variable','mixmonitor_filename','[%s][recordings][varset]','[%s][recordings][varset]\x20variable:%s\x20value:%s','value','.wav49','.WAV','find','monitors','hangup','[%s][recordings][hangup]','[%s][recordings][hangup]\x20calleridnum:%s\x20calleridname:%s\x20reason:%s','calleridname','calleridnum','connectedlinenum','connectedlinename','type','outbound','forEach','clone','newexten','[%s][recordings][newexten]\x20application:%s\x20appdata:%s','application','appdata','toLowerCase','startsWith','cdr','split','lastIndexOf','[%s][recordings][newexten]'];(function(_0x5648f3,_0x5892b5){var _0x4d272c=function(_0x13a562){while(--_0x13a562){_0x5648f3['push'](_0x5648f3['shift']());}};_0x4d272c(++_0x5892b5);}(_0x9927,0x131));var _0x7992=function(_0x3e5086,_0x48f4a2){_0x3e5086=_0x3e5086-0x0;var _0xfeb102=_0x9927[_0x3e5086];return _0xfeb102;};'use strict';var _=require(_0x7992('0x0'));var util=require(_0x7992('0x1'));var utils=require('./utils');var transfers=require(_0x7992('0x2'));var recordings={};function writeDB(_0x456526){var _0x51fdaf;utils[_0x7992('0x3')](util[_0x7992('0x4')](_0x7992('0x5'),_0x456526[_0x7992('0x6')]));if(transfers['blinds'][_0x456526[_0x7992('0x6')]]){_0x51fdaf=_0x456526[_0x7992('0x6')];_0x456526[_0x7992('0x6')]=transfers[_0x7992('0x7')][_0x456526[_0x7992('0x6')]][_0x7992('0x8')];}if(_0x456526[_0x7992('0x9')]){utils[_0x7992('0xa')](_0x456526[_0x7992('0x9')])[_0x7992('0xb')](function(_0x5d45fa){if(_0x5d45fa){_0x456526[_0x7992('0xc')]=_0x5d45fa[_0x7992('0xd')];_0x456526[_0x7992('0xe')]=_0x5d45fa['id'];}utils[_0x7992('0xf')](_0x7992('0x10'),_0x456526);});}else{utils[_0x7992('0xf')](_0x7992('0x10'),_0x456526);}if(_0x51fdaf)delete transfers[_0x7992('0x7')][_0x51fdaf];}exports['newchannel']=function(_0x52c6f0){try{utils[_0x7992('0x11')](util['format']('[%s][recordings][newchannel]',_0x52c6f0['uniqueid']),_0x52c6f0);if(_0x52c6f0[_0x7992('0x6')]==_0x52c6f0[_0x7992('0x12')]){utils['info'](util[_0x7992('0x4')](_0x7992('0x13'),_0x52c6f0[_0x7992('0x6')],_0x52c6f0[_0x7992('0x14')],_0x52c6f0['exten']));recordings[_0x52c6f0['uniqueid']]={'uniqueid':_0x52c6f0[_0x7992('0x6')],'accountcode':_0x52c6f0['accountcode'],'exten':_0x52c6f0['exten'],'context':_0x52c6f0[_0x7992('0x14')],'channel':_0x52c6f0[_0x7992('0x15')],'monitors':[]};}}catch(_0x341edc){utils[_0x7992('0x16')](util[_0x7992('0x4')](_0x7992('0x17'),_0x52c6f0[_0x7992('0x6')]),_0x341edc);}};exports[_0x7992('0x18')]=function(_0x3baa6b){try{utils[_0x7992('0x11')](util[_0x7992('0x4')](_0x7992('0x19'),_0x3baa6b[_0x7992('0x6')]),_0x3baa6b);if(!_[_0x7992('0x1a')](recordings[_0x3baa6b[_0x7992('0x6')]])&&_0x3baa6b[_0x7992('0x1b')]==0x6){utils['info'](util[_0x7992('0x4')](_0x7992('0x1c'),_0x3baa6b[_0x7992('0x6')],_0x3baa6b[_0x7992('0x14')],_0x3baa6b[_0x7992('0x15')]));}else if(!_[_0x7992('0x1a')](recordings[_0x3baa6b[_0x7992('0x12')]])&&_0x3baa6b[_0x7992('0x1b')]==0x6&&_0x3baa6b[_0x7992('0x14')]!='transfer'){utils['info'](util[_0x7992('0x4')](_0x7992('0x1d'),_0x3baa6b[_0x7992('0x6')],_0x3baa6b[_0x7992('0x12')],_0x3baa6b[_0x7992('0x14')],_0x3baa6b[_0x7992('0x15')]));recordings[_0x3baa6b[_0x7992('0x12')]][_0x7992('0x9')]=_0x3baa6b[_0x7992('0x9')];}}catch(_0x5e5181){utils[_0x7992('0x16')](util[_0x7992('0x4')]('[%s][recordings][newstate]',_0x3baa6b[_0x7992('0x6')]),_0x5e5181);}};exports['varset']=function(_0x28bad4){try{if(!_[_0x7992('0x1a')](_0x28bad4[_0x7992('0x1e')])&&!_[_0x7992('0x1a')](_0x28bad4[_0x7992('0x1e')][_0x7992('0x1f')])){utils['debug'](util[_0x7992('0x4')](_0x7992('0x20'),_0x28bad4['uniqueid']),_0x28bad4);utils[_0x7992('0x3')](util[_0x7992('0x4')](_0x7992('0x21'),_0x28bad4[_0x7992('0x6')],_0x28bad4[_0x7992('0x1e')],_0x28bad4[_0x7992('0x22')]));if(_['endsWith'](_0x28bad4['value'],'.wav49')){_0x28bad4['value']=_0x28bad4[_0x7992('0x22')]['replace'](_0x7992('0x23'),_0x7992('0x24'));}if(recordings[_0x28bad4['linkedid']]){var _0x1779bb=_[_0x7992('0x25')](recordings[_0x28bad4[_0x7992('0x12')]][_0x7992('0x26')],{'value':_0x28bad4[_0x7992('0x22')]});if(_[_0x7992('0x1a')](_0x1779bb)){recordings[_0x28bad4[_0x7992('0x12')]][_0x7992('0x26')]['push']({'value':_0x28bad4[_0x7992('0x22')]});}}}}catch(_0x427d57){utils[_0x7992('0x16')](util[_0x7992('0x4')]('[%s][recordings][varset]',_0x28bad4[_0x7992('0x6')]),_0x427d57);}};exports[_0x7992('0x27')]=function(_0x9db33d){try{if(!_[_0x7992('0x1a')](recordings[_0x9db33d[_0x7992('0x6')]])){utils[_0x7992('0x11')](util['format'](_0x7992('0x28'),_0x9db33d['uniqueid']),_0x9db33d);utils['info'](util[_0x7992('0x4')](_0x7992('0x29'),_0x9db33d['uniqueid'],_0x9db33d['calleridnum'],_0x9db33d[_0x7992('0x2a')],_0x9db33d['cause-txt']));recordings[_0x9db33d[_0x7992('0x6')]][_0x7992('0x2b')]=_0x9db33d[_0x7992('0x2b')];recordings[_0x9db33d[_0x7992('0x6')]]['calleridname']=_0x9db33d['calleridname'];recordings[_0x9db33d[_0x7992('0x6')]][_0x7992('0x2c')]=_0x9db33d[_0x7992('0x2c')];recordings[_0x9db33d['uniqueid']][_0x7992('0x2d')]=_0x9db33d['connectedlinename'];if(recordings[_0x9db33d[_0x7992('0x6')]][_0x7992('0x2e')]==_0x7992('0x2f')&&recordings[_0x9db33d[_0x7992('0x6')]][_0x7992('0x9')]){recordings[_0x9db33d['uniqueid']]['connectedlinenum']=recordings[_0x9db33d[_0x7992('0x6')]][_0x7992('0x9')];recordings[_0x9db33d['uniqueid']]['connectedlinename']='';}recordings[_0x9db33d[_0x7992('0x6')]][_0x7992('0x26')][_0x7992('0x30')](function(_0xa4608){var _0x16bea3=_[_0x7992('0x31')](recordings[_0x9db33d[_0x7992('0x6')]]);_0x16bea3[_0x7992('0x22')]=_0xa4608[_0x7992('0x22')];writeDB(_0x16bea3);});delete recordings[_0x9db33d[_0x7992('0x6')]];}}catch(_0x9beb3){utils[_0x7992('0x16')](util[_0x7992('0x4')]('[%s][recordings][hangup]',_0x9db33d[_0x7992('0x6')]),_0x9beb3);}};exports[_0x7992('0x32')]=function(_0x719d0b){try{if(!_[_0x7992('0x1a')](recordings[_0x719d0b['uniqueid']])){utils['debug'](util[_0x7992('0x4')]('[%s][recordings][newexten]',_0x719d0b[_0x7992('0x6')]),_0x719d0b);utils[_0x7992('0x3')](util['format'](_0x7992('0x33'),_0x719d0b[_0x7992('0x6')],_0x719d0b[_0x7992('0x34')],_0x719d0b[_0x7992('0x35')]));if(_0x719d0b[_0x7992('0x34')][_0x7992('0x36')]()=='set'&&_[_0x7992('0x37')](_0x719d0b[_0x7992('0x35')][_0x7992('0x36')](),_0x7992('0x38'))){var _0x144909=_0x719d0b[_0x7992('0x35')][_0x7992('0x39')]('=');var _0x414907=_0x144909[0x0]['substring'](_0x144909[0x0][_0x7992('0x3a')]('(')+0x1,_0x144909[0x0][_0x7992('0x3a')](')'));var _0x6f188d=_0x144909[0x1];recordings[_0x719d0b['uniqueid']][_0x414907]=_0x6f188d;}}}catch(_0x2c79df){utils[_0x7992('0x16')](util['format'](_0x7992('0x3b'),_0x719d0b[_0x7992('0x6')]),_0x2c79df);}};exports[_0x7992('0x3c')]=function(_0x3ffc85){try{if(!_[_0x7992('0x1a')](recordings[_0x3ffc85['uniqueid']])){utils['debug'](util[_0x7992('0x4')](_0x7992('0x3d'),_0x3ffc85[_0x7992('0x6')]),_0x3ffc85);utils['info'](util[_0x7992('0x4')](_0x7992('0x3e'),_0x3ffc85[_0x7992('0x6')],_0x3ffc85['queue']));recordings[_0x3ffc85[_0x7992('0x6')]][_0x7992('0x3f')]=_0x3ffc85[_0x7992('0x3f')];}}catch(_0x13a8c1){utils[_0x7992('0x16')](util['format'](_0x7992('0x3d'),_0x3ffc85[_0x7992('0x6')]),_0x13a8c1);}};exports[_0x7992('0x40')]=function(_0x2316a4){try{utils[_0x7992('0x11')](util[_0x7992('0x4')](_0x7992('0x41'),_0x2316a4[_0x7992('0x6')]),_0x2316a4);utils[_0x7992('0x3')](util[_0x7992('0x4')](_0x7992('0x42'),_0x2316a4[_0x7992('0x6')],_0x2316a4[_0x7992('0x43')],_0x2316a4[_0x7992('0x44')],_0x2316a4[_0x7992('0x45')],_0x2316a4[_0x7992('0x46')]));if(recordings[_0x2316a4[_0x7992('0x47')]]&&transfers[_0x7992('0x7')][_0x2316a4[_0x7992('0x47')]]){transfers[_0x7992('0x7')][_0x2316a4[_0x7992('0x47')]][_0x7992('0x48')]=!![];}}catch(_0x36d415){utils[_0x7992('0x16')](util[_0x7992('0x4')]('[%s][recordings][blindtransfer]',_0x2316a4[_0x7992('0x6')]),_0x36d415);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0xdfca=['attended','origtransfereruniqueid','uniqueid','request','CreateVoiceTransferReport','debug','info','[%s][transfers][blindtransfer]\x20transferercalleridnum:%s\x20transferercalleridname:%s\x20transfereecalleridnum:%s\x20transfereecalleridname:%s','transferercalleridnum','transfereecalleridnum','transfereecalleridname','blind','error','[%s][transfers][blindtransfer]','attendedtransfer','origtransferercalleridname','transfertargetcalleridnum','assign','origtransferercalleridnum','secondtransfererconnectedlinenum','origtransfereraccountcode','secondtransferercontext','secondtransfererexten','origtransfererlinkedid','origtransferercontext','isNil','transfereechannel','transfertargetchannel','transfertargetconnectedlinenum','transfertargetconnectedlinename','transfertargetaccountcode','transfertargetcontext','[%s][transfers][attendedtransfer]','lodash','util','./utils','format','[%s][transfers][writeDB]\x20type:%s','type'];(function(_0x1f7716,_0x4eb8ed){var _0x5ae718=function(_0x2ad8e1){while(--_0x2ad8e1){_0x1f7716['push'](_0x1f7716['shift']());}};_0x5ae718(++_0x4eb8ed);}(_0xdfca,0x10b));var _0xadfc=function(_0x29df1f,_0x18b078){_0x29df1f=_0x29df1f-0x0;var _0x15b4ed=_0xdfca[_0x29df1f];return _0x15b4ed;};'use strict';var _=require(_0xadfc('0x0'));var util=require(_0xadfc('0x1'));var utils=require(_0xadfc('0x2'));function writeDB(_0x1baa9d){utils['info'](util[_0xadfc('0x3')](_0xadfc('0x4'),_0x1baa9d[_0xadfc('0x5')]===_0xadfc('0x6')?_0x1baa9d[_0xadfc('0x7')]:_0x1baa9d[_0xadfc('0x8')],_0x1baa9d[_0xadfc('0x5')]));utils[_0xadfc('0x9')](_0xadfc('0xa'),_0x1baa9d);}exports['blinds']={};exports['blindtransfer']=function(_0xd57906){try{utils[_0xadfc('0xb')](util['format']('[%s][transfers][blindtransfer]',_0xd57906['uniqueid']),_0xd57906);utils[_0xadfc('0xc')](util[_0xadfc('0x3')](_0xadfc('0xd'),_0xd57906[_0xadfc('0x8')],_0xd57906[_0xadfc('0xe')],_0xd57906['transferercalleridname'],_0xd57906[_0xadfc('0xf')],_0xd57906[_0xadfc('0x10')]));_0xd57906[_0xadfc('0x5')]=_0xadfc('0x11');exports['blinds'][_0xd57906['transfereruniqueid']]=_0xd57906;writeDB(_0xd57906);}catch(_0x4aaa3b){utils[_0xadfc('0x12')](util[_0xadfc('0x3')](_0xadfc('0x13'),_0xd57906[_0xadfc('0x8')]),_0x4aaa3b);}};exports[_0xadfc('0x14')]=function(_0x130525){try{utils[_0xadfc('0xb')](util[_0xadfc('0x3')]('[%s][transfers][attendedtransfer]',_0x130525['origtransfereruniqueid']),_0x130525);utils[_0xadfc('0xc')](util[_0xadfc('0x3')]('[%s][transfers][attendedtransfer]\x20transferercalleridnum:%s\x20transferercalleridname:%s\x20transfereecalleridnum:%s\x20transfereecalleridname:%s',_0x130525[_0xadfc('0x7')],_0x130525['origtransferercalleridnum'],_0x130525[_0xadfc('0x15')],_0x130525[_0xadfc('0x16')],_0x130525['transfertargetcalleridname']));_0x130525=_[_0xadfc('0x17')](_0x130525,{'transfererchannel':_0x130525['origtransfererchannel'],'transferercalleridnum':_0x130525[_0xadfc('0x18')],'transferercalleridname':_0x130525[_0xadfc('0x15')],'transfererconnectedlinenum':_0x130525[_0xadfc('0x19')],'transfererconnectedlinename':_0x130525['secondtransfererconnectedlinename'],'transfereraccountcode':_0x130525[_0xadfc('0x1a')],'transferercontext':_0x130525[_0xadfc('0x1b')],'transfererexten':_0x130525[_0xadfc('0x1c')],'transfererlinkedid':_0x130525[_0xadfc('0x1d')],'context':_0x130525[_0xadfc('0x1e')],'extension':_0x130525['origtransfererexten'],'type':_0xadfc('0x6')});if(_[_0xadfc('0x1f')](_0x130525[_0xadfc('0x20')])){_0x130525=_[_0xadfc('0x17')](_0x130525,{'transfereechannel':_0x130525[_0xadfc('0x21')],'transfereecalleridnum':_0x130525[_0xadfc('0x16')],'transfereecalleridname':_0x130525['transfertargetcalleridname'],'transfereeconnectedlinenum':_0x130525[_0xadfc('0x22')],'transfereeconnectedlinename':_0x130525[_0xadfc('0x23')],'transfereeaccountcode':_0x130525[_0xadfc('0x24')],'transfereecontext':_0x130525[_0xadfc('0x25')],'transfereeexten':_0x130525['transfertargetexten'],'transfereelinkedid':_0x130525['transfertargetlinkedid']});}writeDB(_0x130525);}catch(_0x274790){utils['error'](util[_0xadfc('0x3')](_0xadfc('0x26'),_0x130525[_0xadfc('0x7')]),_0x274790);}};
\ No newline at end of file
+var _0x0f2d=['secondtransfererconnectedlinenum','secondtransfererconnectedlinename','origtransfereraccountcode','secondtransferercontext','secondtransfererexten','origtransfererlinkedid','origtransferercontext','origtransfererexten','isNil','transfertargetcalleridnum','transfertargetconnectedlinenum','transfertargetexten','transfertargetlinkedid','[%s][transfers][attendedtransfer]','./utils','format','[%s][transfers][writeDB]\x20type:%s','type','attended','origtransfereruniqueid','uniqueid','request','blindtransfer','[%s][transfers][blindtransfer]','[%s][transfers][blindtransfer]\x20transferercalleridnum:%s\x20transferercalleridname:%s\x20transfereecalleridnum:%s\x20transfereecalleridname:%s','transferercalleridnum','transferercalleridname','transfereecalleridnum','blind','transfereruniqueid','error','attendedtransfer','debug','origtransferercalleridname','transfertargetcalleridname','assign'];(function(_0x47a0c4,_0x1c5051){var _0x1b4022=function(_0x264728){while(--_0x264728){_0x47a0c4['push'](_0x47a0c4['shift']());}};_0x1b4022(++_0x1c5051);}(_0x0f2d,0xe6));var _0xd0f2=function(_0x4b3f8d,_0x207835){_0x4b3f8d=_0x4b3f8d-0x0;var _0x26b65c=_0x0f2d[_0x4b3f8d];return _0x26b65c;};'use strict';var _=require('lodash');var util=require('util');var utils=require(_0xd0f2('0x0'));function writeDB(_0x5c6646){utils['info'](util[_0xd0f2('0x1')](_0xd0f2('0x2'),_0x5c6646[_0xd0f2('0x3')]===_0xd0f2('0x4')?_0x5c6646[_0xd0f2('0x5')]:_0x5c6646[_0xd0f2('0x6')],_0x5c6646[_0xd0f2('0x3')]));utils[_0xd0f2('0x7')]('CreateVoiceTransferReport',_0x5c6646);}exports['blinds']={};exports[_0xd0f2('0x8')]=function(_0x3ec644){try{utils['debug'](util['format'](_0xd0f2('0x9'),_0x3ec644[_0xd0f2('0x6')]),_0x3ec644);utils['info'](util[_0xd0f2('0x1')](_0xd0f2('0xa'),_0x3ec644[_0xd0f2('0x6')],_0x3ec644[_0xd0f2('0xb')],_0x3ec644[_0xd0f2('0xc')],_0x3ec644[_0xd0f2('0xd')],_0x3ec644['transfereecalleridname']));_0x3ec644[_0xd0f2('0x3')]=_0xd0f2('0xe');exports['blinds'][_0x3ec644[_0xd0f2('0xf')]]=_0x3ec644;writeDB(_0x3ec644);}catch(_0x4c7d82){utils[_0xd0f2('0x10')](util[_0xd0f2('0x1')](_0xd0f2('0x9'),_0x3ec644[_0xd0f2('0x6')]),_0x4c7d82);}};exports[_0xd0f2('0x11')]=function(_0xe79d8b){try{utils[_0xd0f2('0x12')](util[_0xd0f2('0x1')]('[%s][transfers][attendedtransfer]',_0xe79d8b[_0xd0f2('0x5')]),_0xe79d8b);utils['info'](util[_0xd0f2('0x1')]('[%s][transfers][attendedtransfer]\x20transferercalleridnum:%s\x20transferercalleridname:%s\x20transfereecalleridnum:%s\x20transfereecalleridname:%s',_0xe79d8b['origtransfereruniqueid'],_0xe79d8b['origtransferercalleridnum'],_0xe79d8b[_0xd0f2('0x13')],_0xe79d8b['transfertargetcalleridnum'],_0xe79d8b[_0xd0f2('0x14')]));_0xe79d8b=_[_0xd0f2('0x15')](_0xe79d8b,{'transfererchannel':_0xe79d8b['origtransfererchannel'],'transferercalleridnum':_0xe79d8b['origtransferercalleridnum'],'transferercalleridname':_0xe79d8b[_0xd0f2('0x13')],'transfererconnectedlinenum':_0xe79d8b[_0xd0f2('0x16')],'transfererconnectedlinename':_0xe79d8b[_0xd0f2('0x17')],'transfereraccountcode':_0xe79d8b[_0xd0f2('0x18')],'transferercontext':_0xe79d8b[_0xd0f2('0x19')],'transfererexten':_0xe79d8b[_0xd0f2('0x1a')],'transfererlinkedid':_0xe79d8b[_0xd0f2('0x1b')],'context':_0xe79d8b[_0xd0f2('0x1c')],'extension':_0xe79d8b[_0xd0f2('0x1d')],'type':_0xd0f2('0x4')});if(_[_0xd0f2('0x1e')](_0xe79d8b['transfereechannel'])){_0xe79d8b=_[_0xd0f2('0x15')](_0xe79d8b,{'transfereechannel':_0xe79d8b['transfertargetchannel'],'transfereecalleridnum':_0xe79d8b[_0xd0f2('0x1f')],'transfereecalleridname':_0xe79d8b[_0xd0f2('0x14')],'transfereeconnectedlinenum':_0xe79d8b[_0xd0f2('0x20')],'transfereeconnectedlinename':_0xe79d8b['transfertargetconnectedlinename'],'transfereeaccountcode':_0xe79d8b['transfertargetaccountcode'],'transfereecontext':_0xe79d8b['transfertargetcontext'],'transfereeexten':_0xe79d8b[_0xd0f2('0x21')],'transfereelinkedid':_0xe79d8b[_0xd0f2('0x22')]});}writeDB(_0xe79d8b);}catch(_0x3d8654){utils[_0xd0f2('0x10')](util[_0xd0f2('0x1')](_0xd0f2('0x23'),_0xe79d8b[_0xd0f2('0x5')]),_0x3d8654);}};
\ No newline at end of file
// * treaties. The SOFTWARE PRODUCT is licensed, not sold. *
// * *
// *************************************************************************
-var _0x4a9c=['[utils][request]\x20name:%s','internal','name','interface','[utils][getUser]\x20where:%s','length','result','getUserByInternal','[utils][getUserByInternal]\x20internal:%s\x20%s','found','notfound','catch','[utils][getUserByInternal]','[utils][getUserByInterface]\x20interface:%s\x20%s','[utils][getUserByInterface]','getUserByName','[utils][getUserByName]\x20name:%s\x20%s','[utils][getUserByName]','getVoiceQueueByName','acw','acwTimeout','[utils][getVoiceQueueByName]\x20name:%s','[utils][getVoiceQueueByName]\x20name:%s\x20%s','addTime','add','subtractTime','seconds','diffTime','diff','sumTime','now','format','YYYY-MM-DD\x20HH:mm:ss','isAfter','isBefore','bluebird','jayson/promise','moment','util','client','../../config/logger','xdr','info','debug','error','inspect','request','then'];(function(_0x254d47,_0x50ae3b){var _0x377bd0=function(_0x3c31bb){while(--_0x3c31bb){_0x254d47['push'](_0x254d47['shift']());}};_0x377bd0(++_0x50ae3b);}(_0x4a9c,0x1d3));var _0xc4a9=function(_0x5016f1,_0x8d02dd){_0x5016f1=_0x5016f1-0x0;var _0x18b3c7=_0x4a9c[_0x5016f1];return _0x18b3c7;};'use strict';var BPromise=require(_0xc4a9('0x0'));var jayson=require(_0xc4a9('0x1'));var moment=require(_0xc4a9('0x2'));var util=require(_0xc4a9('0x3'));var client=jayson[_0xc4a9('0x4')]['http']({'port':0x2329});var logger=require(_0xc4a9('0x5'))(_0xc4a9('0x6'));exports[_0xc4a9('0x7')]=function(_0x6952ec,_0x4bc9eb){logger[_0xc4a9('0x7')](_0x6952ec,_0x4bc9eb?util['inspect'](_0x4bc9eb,{'showHidden':![],'depth':null}):'');};exports['debug']=function(_0x217d74,_0x14701b){logger[_0xc4a9('0x8')](_0x217d74,_0x14701b?util['inspect'](_0x14701b,{'showHidden':![],'depth':null}):'');};exports[_0xc4a9('0x9')]=function(_0xf01a2b,_0x522cb6){logger[_0xc4a9('0x9')](_0xf01a2b,_0x522cb6?util[_0xc4a9('0xa')](_0x522cb6,{'showHidden':![],'depth':null}):'');};exports[_0xc4a9('0xb')]=function(_0x101acc,_0x5ba53d){return client['request'](_0x101acc,{'body':_0x5ba53d})[_0xc4a9('0xc')](function(_0x1dc430){logger[_0xc4a9('0x8')](_0xc4a9('0xd'),_0x101acc,_0x1dc430?util['inspect'](_0x1dc430,{'showHidden':![],'depth':null}):'');})['catch'](function(_0x266f51){logger['error'](_0xc4a9('0xd'),_0x101acc,_0x266f51?util[_0xc4a9('0xa')](_0x266f51,{'showHidden':![],'depth':null}):'');});};function getUser(_0x403211){return client['request']('GetUser',{'options':{'raw':!![],'attributes':['id',_0xc4a9('0xe'),_0xc4a9('0xf'),_0xc4a9('0x10')],'where':_0x403211,'limit':0x1}})[_0xc4a9('0xc')](function(_0x164f3d){logger[_0xc4a9('0x8')](_0xc4a9('0x11'),JSON['stringify'](_0x403211),_0x164f3d?util[_0xc4a9('0xa')](_0x164f3d,{'showHidden':![],'depth':null}):'');return _0x164f3d['result'][_0xc4a9('0x12')]?_0x164f3d[_0xc4a9('0x13')][0x0]:null;});}exports[_0xc4a9('0x14')]=function(_0x5f0287){return new BPromise(function(_0x147cb6,_0x577af2){if(_0x5f0287){return getUser({'internal':_0x5f0287})[_0xc4a9('0xc')](function(_0x3d509b){logger[_0xc4a9('0x7')](_0xc4a9('0x15'),_0x5f0287,_0x3d509b?_0xc4a9('0x16'):_0xc4a9('0x17'));return _0x147cb6(_0x3d509b);})[_0xc4a9('0x18')](function(_0x214351){logger['error'](_0xc4a9('0x19'),_0x214351?util[_0xc4a9('0xa')](_0x214351,{'showHidden':![],'depth':null}):'');return _0x147cb6(null);});}return _0x147cb6(null);});};exports['getUserByInterface']=function(_0x3774c4){return new BPromise(function(_0x496ff1,_0x558285){if(_0x3774c4){return getUser({'interface':_0x3774c4})['then'](function(_0x55c813){logger[_0xc4a9('0x7')](_0xc4a9('0x1a'),_0x3774c4,_0x55c813?_0xc4a9('0x16'):'notfound');return _0x496ff1(_0x55c813);})[_0xc4a9('0x18')](function(_0x1e73ff){logger[_0xc4a9('0x9')](_0xc4a9('0x1b'),_0x1e73ff?util['inspect'](_0x1e73ff,{'showHidden':![],'depth':null}):'');return _0x496ff1(null);});}return _0x496ff1(null);});};exports[_0xc4a9('0x1c')]=function(_0x1fb935){return new BPromise(function(_0x31ce2d,_0x3a3a50){if(_0x1fb935){return getUser({'name':_0x1fb935})[_0xc4a9('0xc')](function(_0x815017){logger[_0xc4a9('0x7')](_0xc4a9('0x1d'),_0x1fb935,_0x815017?'found':'notfound');return _0x31ce2d(_0x815017);})[_0xc4a9('0x18')](function(_0x532121){logger['error'](_0xc4a9('0x1e'),_0x532121?util[_0xc4a9('0xa')](_0x532121,{'showHidden':![],'depth':null}):'');return _0x31ce2d(null);});}return _0x31ce2d(null);});};exports[_0xc4a9('0x1f')]=function(_0x431e4d){return new BPromise(function(_0x1a6bbd,_0xe6937a){if(_0x431e4d){return client[_0xc4a9('0xb')]('GetVoiceQueue',{'options':{'raw':!![],'attributes':['id',_0xc4a9('0xf'),'type',_0xc4a9('0x20'),_0xc4a9('0x21')],'where':{'name':_0x431e4d},'limit':0x1}})[_0xc4a9('0xc')](function(_0x56659b){logger[_0xc4a9('0x8')](_0xc4a9('0x22'),_0x431e4d,_0x56659b?util[_0xc4a9('0xa')](_0x56659b,{'showHidden':![],'depth':null}):'');logger[_0xc4a9('0x7')](_0xc4a9('0x23'),_0x431e4d,_0x56659b?_0xc4a9('0x16'):_0xc4a9('0x17'));return _0x1a6bbd(_0x56659b['result']['length']?_0x56659b[_0xc4a9('0x13')][0x0]:null);})[_0xc4a9('0x18')](function(_0x2e495d){logger['error']('[utils][getVoiceQueueByName]',_0x2e495d?util[_0xc4a9('0xa')](_0x2e495d,{'showHidden':![],'depth':null}):'');return _0x1a6bbd(null);});}return _0x1a6bbd(null);});};exports[_0xc4a9('0x24')]=function(_0x5a3b30,_0x1e446d){return moment(_0x5a3b30)[_0xc4a9('0x25')](_0x1e446d,'seconds')['format']('YYYY-MM-DD\x20HH:mm:ss');};exports[_0xc4a9('0x26')]=function(_0x5a71d9,_0x327832){return moment(_0x5a71d9)['subtract'](_0x327832,_0xc4a9('0x27'))['format']('YYYY-MM-DD\x20HH:mm:ss');};exports[_0xc4a9('0x28')]=function(_0x22d097,_0x38196e){return moment(_0x22d097)[_0xc4a9('0x29')](moment(_0x38196e),_0xc4a9('0x27'));};exports[_0xc4a9('0x2a')]=function(_0x35b0c4,_0x4a000a){return parseInt(_0x35b0c4,0xa)+parseInt(_0x4a000a,0xa);};exports[_0xc4a9('0x2b')]=function(){return moment()[_0xc4a9('0x2c')](_0xc4a9('0x2d'));};exports[_0xc4a9('0x2e')]=function(_0x376e89,_0x433215){if(_0x433215){return moment(_0x376e89)[_0xc4a9('0x2e')](_0x433215);}return!![];};exports['isBefore']=function(_0x266304,_0x3e48cb){if(_0x3e48cb){return moment(_0x266304)[_0xc4a9('0x2f')](_0x3e48cb);}else if(_0x266304){return!![];}return![];};
\ No newline at end of file
+var _0xb296=['[utils][getUserByInternal]','getUserByInterface','[utils][getUserByInterface]\x20interface:%s\x20%s','getUserByName','[utils][getUserByName]\x20name:%s\x20%s','[utils][getUserByName]','getVoiceQueueByName','type','acw','acwTimeout','[utils][getVoiceQueueByName]\x20name:%s','[utils][getVoiceQueueByName]\x20name:%s\x20%s','[utils][getVoiceQueueByName]','addTime','YYYY-MM-DD\x20HH:mm:ss','subtractTime','subtract','seconds','format','diff','isAfter','isBefore','bluebird','jayson/promise','moment','util','client','http','../../config/logger','info','debug','inspect','error','request','[utils][request]\x20name:%s','catch','GetUser','name','interface','then','[utils][getUser]\x20where:%s','stringify','result','length','[utils][getUserByInternal]\x20internal:%s\x20%s','found','notfound'];(function(_0x4289a6,_0x1bdee0){var _0x15236b=function(_0x42156e){while(--_0x42156e){_0x4289a6['push'](_0x4289a6['shift']());}};_0x15236b(++_0x1bdee0);}(_0xb296,0xa3));var _0x6b29=function(_0x4dd925,_0x432edd){_0x4dd925=_0x4dd925-0x0;var _0xb87df3=_0xb296[_0x4dd925];return _0xb87df3;};'use strict';var BPromise=require(_0x6b29('0x0'));var jayson=require(_0x6b29('0x1'));var moment=require(_0x6b29('0x2'));var util=require(_0x6b29('0x3'));var client=jayson[_0x6b29('0x4')][_0x6b29('0x5')]({'port':0x2329});var logger=require(_0x6b29('0x6'))('xdr');exports[_0x6b29('0x7')]=function(_0x5c1cf5,_0x50a1ba){logger[_0x6b29('0x7')](_0x5c1cf5,_0x50a1ba?util['inspect'](_0x50a1ba,{'showHidden':![],'depth':null}):'');};exports[_0x6b29('0x8')]=function(_0xf1b5ac,_0x22e7af){logger[_0x6b29('0x8')](_0xf1b5ac,_0x22e7af?util[_0x6b29('0x9')](_0x22e7af,{'showHidden':![],'depth':null}):'');};exports['error']=function(_0x533b28,_0x13ed7f){logger[_0x6b29('0xa')](_0x533b28,_0x13ed7f?util[_0x6b29('0x9')](_0x13ed7f,{'showHidden':![],'depth':null}):'');};exports[_0x6b29('0xb')]=function(_0x3c6e6f,_0x2c2823){return client[_0x6b29('0xb')](_0x3c6e6f,{'body':_0x2c2823})['then'](function(_0x27c1dd){logger[_0x6b29('0x8')](_0x6b29('0xc'),_0x3c6e6f,_0x27c1dd?util['inspect'](_0x27c1dd,{'showHidden':![],'depth':null}):'');})[_0x6b29('0xd')](function(_0x4ca75d){logger['error'](_0x6b29('0xc'),_0x3c6e6f,_0x4ca75d?util['inspect'](_0x4ca75d,{'showHidden':![],'depth':null}):'');});};function getUser(_0x562b88){return client[_0x6b29('0xb')](_0x6b29('0xe'),{'options':{'raw':!![],'attributes':['id','internal',_0x6b29('0xf'),_0x6b29('0x10')],'where':_0x562b88,'limit':0x1}})[_0x6b29('0x11')](function(_0x35ff76){logger[_0x6b29('0x8')](_0x6b29('0x12'),JSON[_0x6b29('0x13')](_0x562b88),_0x35ff76?util['inspect'](_0x35ff76,{'showHidden':![],'depth':null}):'');return _0x35ff76[_0x6b29('0x14')][_0x6b29('0x15')]?_0x35ff76[_0x6b29('0x14')][0x0]:null;});}exports['getUserByInternal']=function(_0x4b348d){return new BPromise(function(_0xc9511c,_0x298470){if(_0x4b348d){return getUser({'internal':_0x4b348d})[_0x6b29('0x11')](function(_0x39d888){logger[_0x6b29('0x7')](_0x6b29('0x16'),_0x4b348d,_0x39d888?_0x6b29('0x17'):_0x6b29('0x18'));return _0xc9511c(_0x39d888);})['catch'](function(_0x18da5b){logger[_0x6b29('0xa')](_0x6b29('0x19'),_0x18da5b?util['inspect'](_0x18da5b,{'showHidden':![],'depth':null}):'');return _0xc9511c(null);});}return _0xc9511c(null);});};exports[_0x6b29('0x1a')]=function(_0x2f2fdc){return new BPromise(function(_0x53e884,_0x35d3e4){if(_0x2f2fdc){return getUser({'interface':_0x2f2fdc})[_0x6b29('0x11')](function(_0x57b212){logger[_0x6b29('0x7')](_0x6b29('0x1b'),_0x2f2fdc,_0x57b212?_0x6b29('0x17'):_0x6b29('0x18'));return _0x53e884(_0x57b212);})[_0x6b29('0xd')](function(_0x4e6b2e){logger[_0x6b29('0xa')]('[utils][getUserByInterface]',_0x4e6b2e?util[_0x6b29('0x9')](_0x4e6b2e,{'showHidden':![],'depth':null}):'');return _0x53e884(null);});}return _0x53e884(null);});};exports[_0x6b29('0x1c')]=function(_0x1fa6da){return new BPromise(function(_0x5ab584,_0x308142){if(_0x1fa6da){return getUser({'name':_0x1fa6da})[_0x6b29('0x11')](function(_0x269d55){logger['info'](_0x6b29('0x1d'),_0x1fa6da,_0x269d55?_0x6b29('0x17'):_0x6b29('0x18'));return _0x5ab584(_0x269d55);})[_0x6b29('0xd')](function(_0x5546b4){logger['error'](_0x6b29('0x1e'),_0x5546b4?util[_0x6b29('0x9')](_0x5546b4,{'showHidden':![],'depth':null}):'');return _0x5ab584(null);});}return _0x5ab584(null);});};exports[_0x6b29('0x1f')]=function(_0x18ea35){return new BPromise(function(_0x370d50,_0x28339f){if(_0x18ea35){return client[_0x6b29('0xb')]('GetVoiceQueue',{'options':{'raw':!![],'attributes':['id',_0x6b29('0xf'),_0x6b29('0x20'),_0x6b29('0x21'),_0x6b29('0x22')],'where':{'name':_0x18ea35},'limit':0x1}})[_0x6b29('0x11')](function(_0x2343c0){logger['debug'](_0x6b29('0x23'),_0x18ea35,_0x2343c0?util[_0x6b29('0x9')](_0x2343c0,{'showHidden':![],'depth':null}):'');logger[_0x6b29('0x7')](_0x6b29('0x24'),_0x18ea35,_0x2343c0?_0x6b29('0x17'):_0x6b29('0x18'));return _0x370d50(_0x2343c0[_0x6b29('0x14')]['length']?_0x2343c0[_0x6b29('0x14')][0x0]:null);})[_0x6b29('0xd')](function(_0x2e3477){logger[_0x6b29('0xa')](_0x6b29('0x25'),_0x2e3477?util[_0x6b29('0x9')](_0x2e3477,{'showHidden':![],'depth':null}):'');return _0x370d50(null);});}return _0x370d50(null);});};exports[_0x6b29('0x26')]=function(_0x42356b,_0x57cc14){return moment(_0x42356b)['add'](_0x57cc14,'seconds')['format'](_0x6b29('0x27'));};exports[_0x6b29('0x28')]=function(_0x34e25e,_0x50664d){return moment(_0x34e25e)[_0x6b29('0x29')](_0x50664d,_0x6b29('0x2a'))[_0x6b29('0x2b')](_0x6b29('0x27'));};exports['diffTime']=function(_0x5cf631,_0x24ee15){return moment(_0x5cf631)[_0x6b29('0x2c')](moment(_0x24ee15),'seconds');};exports['sumTime']=function(_0x31fe46,_0x5b8e0f){return parseInt(_0x31fe46,0xa)+parseInt(_0x5b8e0f,0xa);};exports['now']=function(){return moment()[_0x6b29('0x2b')](_0x6b29('0x27'));};exports[_0x6b29('0x2d')]=function(_0x274357,_0x521c4d){if(_0x521c4d){return moment(_0x274357)[_0x6b29('0x2d')](_0x521c4d);}return!![];};exports['isBefore']=function(_0xbb6e00,_0x2dda09){if(_0x2dda09){return moment(_0xbb6e00)[_0x6b29('0x2e')](_0x2dda09);}else if(_0xbb6e00){return!![];}return![];};
\ No newline at end of file